From ec7aabb573bc350b1b9c9ae2cbc4136c87a5a6fe Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 21:08:43 +0100 Subject: [PATCH 01/27] bot --- bot/bot.go | 17 +++++++++++++++++ main.go | 6 ++++++ 2 files changed, 23 insertions(+) create mode 100644 bot/bot.go diff --git a/bot/bot.go b/bot/bot.go new file mode 100644 index 00000000..a02123d5 --- /dev/null +++ b/bot/bot.go @@ -0,0 +1,17 @@ +package bot + +import ( + "github.com/nlopes/slack" +) + +type Bot struct { + slackClient *slack.Client +} + +func New(token string) *Bot { + client := slack.New(token) + + return &Bot{ + slackClient: client, + } +} diff --git a/main.go b/main.go index 78128088..d01953b8 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "golang.org/x/net/context" + "github.com/rusenask/keel/bot" "github.com/rusenask/keel/provider" "github.com/rusenask/keel/provider/kubernetes" "github.com/rusenask/keel/trigger/http" @@ -21,6 +22,7 @@ import ( const ( EnvTriggerPubSub = "PUBSUB" // set to 1 or something to enable pub/sub trigger EnvProjectID = "PROJECT_ID" + EnvSlackToken = "SLACK_TOKEN" ) // kubernetes config, if empty - will default to InCluster @@ -120,6 +122,10 @@ func setupProviders(k8sImplementer kubernetes.Implementer) (providers map[string return providers, teardown } +func setupBot(k8sImplementer kubernetes.Implementer) (*bot.Bot, error) { + +} + // setupTriggers - setting up triggers. New triggers should be added to this function. Each trigger // should go through all providers (or not if there is a reason) and submit events) func setupTriggers(ctx context.Context, k8sImplementer kubernetes.Implementer, providers map[string]provider.Provider) (teardown func()) { From fa9c11adf68785c0c4f141f1ccdda109cf1a3c63 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 21:10:13 +0100 Subject: [PATCH 02/27] slack deps --- vendor/github.com/nlopes/slack/.gitignore | 2 + vendor/github.com/nlopes/slack/.travis.yml | 24 + vendor/github.com/nlopes/slack/CHANGELOG.md | 12 + vendor/github.com/nlopes/slack/LICENSE | 23 + vendor/github.com/nlopes/slack/README.md | 87 ++ vendor/github.com/nlopes/slack/TODO.txt | 3 + vendor/github.com/nlopes/slack/admin.go | 190 ++++ vendor/github.com/nlopes/slack/attachments.go | 96 +++ vendor/github.com/nlopes/slack/backoff.go | 57 ++ vendor/github.com/nlopes/slack/bots.go | 44 + vendor/github.com/nlopes/slack/bots_test.go | 51 ++ vendor/github.com/nlopes/slack/channels.go | 275 ++++++ vendor/github.com/nlopes/slack/chat.go | 289 +++++++ vendor/github.com/nlopes/slack/comment.go | 10 + .../github.com/nlopes/slack/conversation.go | 37 + .../nlopes/slack/conversation_test.go | 200 +++++ vendor/github.com/nlopes/slack/dnd.go | 123 +++ vendor/github.com/nlopes/slack/dnd_test.go | 159 ++++ vendor/github.com/nlopes/slack/emoji.go | 27 + vendor/github.com/nlopes/slack/emoji_test.go | 40 + .../slack/examples/channels/channels.go | 19 + .../nlopes/slack/examples/files/example.txt | 1 + .../nlopes/slack/examples/files/files.go | 30 + .../nlopes/slack/examples/groups/groups.go | 22 + .../slack/examples/messages/messages.go | 32 + .../nlopes/slack/examples/pins/pins.go | 123 +++ .../slack/examples/reactions/reactions.go | 126 +++ .../nlopes/slack/examples/stars/stars.go | 46 + .../nlopes/slack/examples/team/team.go | 25 + .../nlopes/slack/examples/users/users.go | 17 + .../slack/examples/websocket/websocket.go | 54 ++ vendor/github.com/nlopes/slack/files.go | 280 ++++++ vendor/github.com/nlopes/slack/groups.go | 293 +++++++ vendor/github.com/nlopes/slack/history.go | 36 + vendor/github.com/nlopes/slack/im.go | 130 +++ vendor/github.com/nlopes/slack/info.go | 210 +++++ vendor/github.com/nlopes/slack/item.go | 75 ++ vendor/github.com/nlopes/slack/item_test.go | 125 +++ vendor/github.com/nlopes/slack/messageID.go | 30 + vendor/github.com/nlopes/slack/messages.go | 144 ++++ .../github.com/nlopes/slack/messages_test.go | 814 ++++++++++++++++++ vendor/github.com/nlopes/slack/misc.go | 179 ++++ vendor/github.com/nlopes/slack/misc_test.go | 85 ++ vendor/github.com/nlopes/slack/oauth.go | 56 ++ vendor/github.com/nlopes/slack/pagination.go | 20 + vendor/github.com/nlopes/slack/pins.go | 79 ++ vendor/github.com/nlopes/slack/pins_test.go | 231 +++++ vendor/github.com/nlopes/slack/reactions.go | 246 ++++++ .../github.com/nlopes/slack/reactions_test.go | 376 ++++++++ vendor/github.com/nlopes/slack/rtm.go | 94 ++ vendor/github.com/nlopes/slack/search.go | 137 +++ vendor/github.com/nlopes/slack/slack.go | 88 ++ vendor/github.com/nlopes/slack/slack_test.go | 22 + vendor/github.com/nlopes/slack/stars.go | 135 +++ vendor/github.com/nlopes/slack/stars_test.go | 260 ++++++ vendor/github.com/nlopes/slack/team.go | 160 ++++ vendor/github.com/nlopes/slack/team_test.go | 171 ++++ vendor/github.com/nlopes/slack/usergroups.go | 174 ++++ .../nlopes/slack/usergroups_test.go | 180 ++++ vendor/github.com/nlopes/slack/users.go | 309 +++++++ vendor/github.com/nlopes/slack/users_test.go | 179 ++++ vendor/github.com/nlopes/slack/websocket.go | 93 ++ .../nlopes/slack/websocket_channels.go | 72 ++ .../github.com/nlopes/slack/websocket_dm.go | 23 + .../github.com/nlopes/slack/websocket_dnd.go | 8 + .../nlopes/slack/websocket_files.go | 49 ++ .../nlopes/slack/websocket_groups.go | 49 ++ .../nlopes/slack/websocket_internals.go | 92 ++ .../nlopes/slack/websocket_managed_conn.go | 451 ++++++++++ .../github.com/nlopes/slack/websocket_misc.go | 121 +++ .../github.com/nlopes/slack/websocket_pins.go | 16 + .../nlopes/slack/websocket_proxy.go | 83 ++ .../nlopes/slack/websocket_reactions.go | 25 + .../nlopes/slack/websocket_stars.go | 14 + .../nlopes/slack/websocket_teams.go | 33 + .../nlopes/slack/websocket_utils.go | 20 + 76 files changed, 8711 insertions(+) create mode 100644 vendor/github.com/nlopes/slack/.gitignore create mode 100644 vendor/github.com/nlopes/slack/.travis.yml create mode 100644 vendor/github.com/nlopes/slack/CHANGELOG.md create mode 100644 vendor/github.com/nlopes/slack/LICENSE create mode 100644 vendor/github.com/nlopes/slack/README.md create mode 100644 vendor/github.com/nlopes/slack/TODO.txt create mode 100644 vendor/github.com/nlopes/slack/admin.go create mode 100644 vendor/github.com/nlopes/slack/attachments.go create mode 100644 vendor/github.com/nlopes/slack/backoff.go create mode 100644 vendor/github.com/nlopes/slack/bots.go create mode 100644 vendor/github.com/nlopes/slack/bots_test.go create mode 100644 vendor/github.com/nlopes/slack/channels.go create mode 100644 vendor/github.com/nlopes/slack/chat.go create mode 100644 vendor/github.com/nlopes/slack/comment.go create mode 100644 vendor/github.com/nlopes/slack/conversation.go create mode 100644 vendor/github.com/nlopes/slack/conversation_test.go create mode 100644 vendor/github.com/nlopes/slack/dnd.go create mode 100644 vendor/github.com/nlopes/slack/dnd_test.go create mode 100644 vendor/github.com/nlopes/slack/emoji.go create mode 100644 vendor/github.com/nlopes/slack/emoji_test.go create mode 100644 vendor/github.com/nlopes/slack/examples/channels/channels.go create mode 100644 vendor/github.com/nlopes/slack/examples/files/example.txt create mode 100644 vendor/github.com/nlopes/slack/examples/files/files.go create mode 100644 vendor/github.com/nlopes/slack/examples/groups/groups.go create mode 100644 vendor/github.com/nlopes/slack/examples/messages/messages.go create mode 100644 vendor/github.com/nlopes/slack/examples/pins/pins.go create mode 100644 vendor/github.com/nlopes/slack/examples/reactions/reactions.go create mode 100644 vendor/github.com/nlopes/slack/examples/stars/stars.go create mode 100644 vendor/github.com/nlopes/slack/examples/team/team.go create mode 100644 vendor/github.com/nlopes/slack/examples/users/users.go create mode 100644 vendor/github.com/nlopes/slack/examples/websocket/websocket.go create mode 100644 vendor/github.com/nlopes/slack/files.go create mode 100644 vendor/github.com/nlopes/slack/groups.go create mode 100644 vendor/github.com/nlopes/slack/history.go create mode 100644 vendor/github.com/nlopes/slack/im.go create mode 100644 vendor/github.com/nlopes/slack/info.go create mode 100644 vendor/github.com/nlopes/slack/item.go create mode 100644 vendor/github.com/nlopes/slack/item_test.go create mode 100644 vendor/github.com/nlopes/slack/messageID.go create mode 100644 vendor/github.com/nlopes/slack/messages.go create mode 100644 vendor/github.com/nlopes/slack/messages_test.go create mode 100644 vendor/github.com/nlopes/slack/misc.go create mode 100644 vendor/github.com/nlopes/slack/misc_test.go create mode 100644 vendor/github.com/nlopes/slack/oauth.go create mode 100644 vendor/github.com/nlopes/slack/pagination.go create mode 100644 vendor/github.com/nlopes/slack/pins.go create mode 100644 vendor/github.com/nlopes/slack/pins_test.go create mode 100644 vendor/github.com/nlopes/slack/reactions.go create mode 100644 vendor/github.com/nlopes/slack/reactions_test.go create mode 100644 vendor/github.com/nlopes/slack/rtm.go create mode 100644 vendor/github.com/nlopes/slack/search.go create mode 100644 vendor/github.com/nlopes/slack/slack.go create mode 100644 vendor/github.com/nlopes/slack/slack_test.go create mode 100644 vendor/github.com/nlopes/slack/stars.go create mode 100644 vendor/github.com/nlopes/slack/stars_test.go create mode 100644 vendor/github.com/nlopes/slack/team.go create mode 100644 vendor/github.com/nlopes/slack/team_test.go create mode 100644 vendor/github.com/nlopes/slack/usergroups.go create mode 100644 vendor/github.com/nlopes/slack/usergroups_test.go create mode 100644 vendor/github.com/nlopes/slack/users.go create mode 100644 vendor/github.com/nlopes/slack/users_test.go create mode 100644 vendor/github.com/nlopes/slack/websocket.go create mode 100644 vendor/github.com/nlopes/slack/websocket_channels.go create mode 100644 vendor/github.com/nlopes/slack/websocket_dm.go create mode 100644 vendor/github.com/nlopes/slack/websocket_dnd.go create mode 100644 vendor/github.com/nlopes/slack/websocket_files.go create mode 100644 vendor/github.com/nlopes/slack/websocket_groups.go create mode 100644 vendor/github.com/nlopes/slack/websocket_internals.go create mode 100644 vendor/github.com/nlopes/slack/websocket_managed_conn.go create mode 100644 vendor/github.com/nlopes/slack/websocket_misc.go create mode 100644 vendor/github.com/nlopes/slack/websocket_pins.go create mode 100644 vendor/github.com/nlopes/slack/websocket_proxy.go create mode 100644 vendor/github.com/nlopes/slack/websocket_reactions.go create mode 100644 vendor/github.com/nlopes/slack/websocket_stars.go create mode 100644 vendor/github.com/nlopes/slack/websocket_teams.go create mode 100644 vendor/github.com/nlopes/slack/websocket_utils.go diff --git a/vendor/github.com/nlopes/slack/.gitignore b/vendor/github.com/nlopes/slack/.gitignore new file mode 100644 index 00000000..dd2440d5 --- /dev/null +++ b/vendor/github.com/nlopes/slack/.gitignore @@ -0,0 +1,2 @@ +*.test +*~ diff --git a/vendor/github.com/nlopes/slack/.travis.yml b/vendor/github.com/nlopes/slack/.travis.yml new file mode 100644 index 00000000..4089c6fa --- /dev/null +++ b/vendor/github.com/nlopes/slack/.travis.yml @@ -0,0 +1,24 @@ +language: go + +go: + - 1.4 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.x + - tip + +before_install: + - export PATH=$HOME/gopath/bin:$PATH + +script: + - go test -race ./... + - go test -cover ./... + +matrix: + allow_failures: + - go: tip + +git: + depth: 10 diff --git a/vendor/github.com/nlopes/slack/CHANGELOG.md b/vendor/github.com/nlopes/slack/CHANGELOG.md new file mode 100644 index 00000000..8c4772da --- /dev/null +++ b/vendor/github.com/nlopes/slack/CHANGELOG.md @@ -0,0 +1,12 @@ +### v0.1.0 - May 28, 2017 + +This is released before adding context support. +As the used context package is the one from Go 1.7 this will be the last +compatible with Go < 1.7. + +Please check [0.1.0](https://github.com/nlopes/slack/releases/tag/v0.1.0) + +### v0.0.1 - Jul 26, 2015 + +If you just updated from master and it broke your implementation, please +check [0.0.1](https://github.com/nlopes/slack/releases/tag/v0.0.1) diff --git a/vendor/github.com/nlopes/slack/LICENSE b/vendor/github.com/nlopes/slack/LICENSE new file mode 100644 index 00000000..5145171f --- /dev/null +++ b/vendor/github.com/nlopes/slack/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2015, Norberto Lopes +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/nlopes/slack/README.md b/vendor/github.com/nlopes/slack/README.md new file mode 100644 index 00000000..5efc3203 --- /dev/null +++ b/vendor/github.com/nlopes/slack/README.md @@ -0,0 +1,87 @@ +Slack API in Go [![GoDoc](https://godoc.org/github.com/nlopes/slack?status.svg)](https://godoc.org/github.com/nlopes/slack) [![Build Status](https://travis-ci.org/nlopes/slack.svg)](https://travis-ci.org/nlopes/slack) +=============== + +This library supports most if not all of the `api.slack.com` REST +calls, as well as the Real-Time Messaging protocol over websocket, in +a fully managed way. + +## Change log + +### v0.1.0 - May 28, 2017 + +This is released before adding context support. +As the used context package is the one from Go 1.7 this will be the last +compatible with Go < 1.7. + +Please check [0.1.0](https://github.com/nlopes/slack/releases/tag/v0.1.0) + +### CHANGELOG.md + +As of this version a [CHANGELOG.md](https://github.com/nlopes/slack/blob/master/README.md) is available. Please visit it for updates. + +## Installing + +### *go get* + + $ go get -u github.com/nlopes/slack + +## Example + +### Getting all groups + +```golang +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + // If you set debugging, it will log all requests to the console + // Useful when encountering issues + // api.SetDebug(true) + groups, err := api.GetGroups(false) + if err != nil { + fmt.Printf("%s\n", err) + return + } + for _, group := range groups { + fmt.Printf("ID: %s, Name: %s\n", group.ID, group.Name) + } +} +``` + +### Getting User Information + +```golang +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + user, err := api.GetUserInfo("U023BECGF") + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("ID: %s, Fullname: %s, Email: %s\n", user.ID, user.Profile.RealName, user.Profile.Email) +} +``` + +## Minimal RTM usage: + +See https://github.com/nlopes/slack/blob/master/examples/websocket/websocket.go + + +## Contributing + +You are more than welcome to contribute to this project. Fork and +make a Pull Request, or create an Issue if you see any problem. + +## License + +BSD 2 Clause license diff --git a/vendor/github.com/nlopes/slack/TODO.txt b/vendor/github.com/nlopes/slack/TODO.txt new file mode 100644 index 00000000..8607960b --- /dev/null +++ b/vendor/github.com/nlopes/slack/TODO.txt @@ -0,0 +1,3 @@ +- Add more tests!!! +- Add support to have markdown hints + - See section Message Formatting at https://api.slack.com/docs/formatting diff --git a/vendor/github.com/nlopes/slack/admin.go b/vendor/github.com/nlopes/slack/admin.go new file mode 100644 index 00000000..393b2880 --- /dev/null +++ b/vendor/github.com/nlopes/slack/admin.go @@ -0,0 +1,190 @@ +package slack + +import ( + "errors" + "fmt" + "net/url" +) + +type adminResponse struct { + OK bool `json:"ok"` + Error string `json:"error"` +} + +func adminRequest(method string, teamName string, values url.Values, debug bool) (*adminResponse, error) { + adminResponse := &adminResponse{} + err := parseAdminResponse(method, teamName, values, adminResponse, debug) + if err != nil { + return nil, err + } + + if !adminResponse.OK { + return nil, errors.New(adminResponse.Error) + } + + return adminResponse, nil +} + +// DisableUser disabled a user account, given a user ID +func (api *Client) DisableUser(teamName string, uid string) error { + values := url.Values{ + "user": {uid}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("setInactive", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to disable user with id '%s': %s", uid, err) + } + + return nil +} + +// InviteGuest invites a user to Slack as a single-channel guest +func (api *Client) InviteGuest( + teamName string, + channel string, + firstName string, + lastName string, + emailAddress string, +) error { + values := url.Values{ + "email": {emailAddress}, + "channels": {channel}, + "first_name": {firstName}, + "last_name": {lastName}, + "ultra_restricted": {"1"}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("invite", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to invite single-channel guest: %s", err) + } + + return nil +} + +// InviteRestricted invites a user to Slack as a restricted account +func (api *Client) InviteRestricted( + teamName string, + channel string, + firstName string, + lastName string, + emailAddress string, +) error { + values := url.Values{ + "email": {emailAddress}, + "channels": {channel}, + "first_name": {firstName}, + "last_name": {lastName}, + "restricted": {"1"}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("invite", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to restricted account: %s", err) + } + + return nil +} + +// InviteToTeam invites a user to a Slack team +func (api *Client) InviteToTeam( + teamName string, + firstName string, + lastName string, + emailAddress string, +) error { + values := url.Values{ + "email": {emailAddress}, + "first_name": {firstName}, + "last_name": {lastName}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("invite", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to invite to team: %s", err) + } + + return nil +} + +// SetRegular enables the specified user +func (api *Client) SetRegular(teamName string, user string) error { + values := url.Values{ + "user": {user}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("setRegular", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to change the user (%s) to a regular user: %s", user, err) + } + + return nil +} + +// SendSSOBindingEmail sends an SSO binding email to the specified user +func (api *Client) SendSSOBindingEmail(teamName string, user string) error { + values := url.Values{ + "user": {user}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("sendSSOBind", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to send SSO binding email for user (%s): %s", user, err) + } + + return nil +} + +// SetUltraRestricted converts a user into a single-channel guest +func (api *Client) SetUltraRestricted(teamName, uid, channel string) error { + values := url.Values{ + "user": {uid}, + "channel": {channel}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("setUltraRestricted", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to ultra-restrict account: %s", err) + } + + return nil +} + +// SetRestricted converts a user into a restricted account +func (api *Client) SetRestricted(teamName, uid string) error { + values := url.Values{ + "user": {uid}, + "token": {api.config.token}, + "set_active": {"true"}, + "_attempts": {"1"}, + } + + _, err := adminRequest("setRestricted", teamName, values, api.debug) + if err != nil { + return fmt.Errorf("Failed to restrict account: %s", err) + } + + return nil +} diff --git a/vendor/github.com/nlopes/slack/attachments.go b/vendor/github.com/nlopes/slack/attachments.go new file mode 100644 index 00000000..c5a66d96 --- /dev/null +++ b/vendor/github.com/nlopes/slack/attachments.go @@ -0,0 +1,96 @@ +package slack + +import "encoding/json" + +// AttachmentField contains information for an attachment field +// An Attachment can contain multiple of these +type AttachmentField struct { + Title string `json:"title"` + Value string `json:"value"` + Short bool `json:"short"` +} + +// AttachmentAction is a button or menu to be included in the attachment. Required when +// using message buttons or menus and otherwise not useful. A maximum of 5 actions may be +// provided per attachment. +type AttachmentAction struct { + Name string `json:"name"` // Required. + Text string `json:"text"` // Required. + Style string `json:"style,omitempty"` // Optional. Allowed values: "default", "primary", "danger". + Type string `json:"type"` // Required. Must be set to "button" or "select". + Value string `json:"value,omitempty"` // Optional. + DataSource string `json:"data_source,omitempty"` // Optional. + MinQueryLength int `json:"min_query_length,omitempty"` // Optional. Default value is 1. + Options []AttachmentActionOption `json:"options,omitempty"` // Optional. Maximum of 100 options can be provided in each menu. + SelectedOptions []AttachmentActionOption `json:"selected_options,omitempty"` // Optional. The first element of this array will be set as the pre-selected option for this menu. + OptionGroups []AttachmentActionOptionGroup `json:"option_groups,omitempty"` // Optional. + Confirm *ConfirmationField `json:"confirm,omitempty"` // Optional. +} + +// AttachmentActionOption the individual option to appear in action menu. +type AttachmentActionOption struct { + Text string `json:"text"` // Required. + Value string `json:"value"` // Required. + Description string `json:"description,omitempty"` // Optional. Up to 30 characters. +} + +// AttachmentActionOptionGroup is a semi-hierarchal way to list available options to appear in action menu. +type AttachmentActionOptionGroup struct { + Text string `json:"text"` // Required. + Options []AttachmentActionOption `json:"options"` // Required. +} + +// AttachmentActionCallback is sent from Slack when a user clicks a button in an interactive message (aka AttachmentAction) +type AttachmentActionCallback struct { + Actions []AttachmentAction `json:"actions"` + CallbackID string `json:"callback_id"` + Team Team `json:"team"` + Channel Channel `json:"channel"` + User User `json:"user"` + + OriginalMessage Message `json:"original_message"` + + ActionTs string `json:"action_ts"` + MessageTs string `json:"message_ts"` + AttachmentID string `json:"attachment_id"` + Token string `json:"token"` + ResponseURL string `json:"response_url"` +} + +// ConfirmationField are used to ask users to confirm actions +type ConfirmationField struct { + Title string `json:"title,omitempty"` // Optional. + Text string `json:"text"` // Required. + OkText string `json:"ok_text,omitempty"` // Optional. Defaults to "Okay" + DismissText string `json:"dismiss_text,omitempty"` // Optional. Defaults to "Cancel" +} + +// Attachment contains all the information for an attachment +type Attachment struct { + Color string `json:"color,omitempty"` + Fallback string `json:"fallback"` + + CallbackID string `json:"callback_id,omitempty"` + + AuthorName string `json:"author_name,omitempty"` + AuthorSubname string `json:"author_subname,omitempty"` + AuthorLink string `json:"author_link,omitempty"` + AuthorIcon string `json:"author_icon,omitempty"` + + Title string `json:"title,omitempty"` + TitleLink string `json:"title_link,omitempty"` + Pretext string `json:"pretext,omitempty"` + Text string `json:"text"` + + ImageURL string `json:"image_url,omitempty"` + ThumbURL string `json:"thumb_url,omitempty"` + + Fields []AttachmentField `json:"fields,omitempty"` + Actions []AttachmentAction `json:"actions,omitempty"` + MarkdownIn []string `json:"mrkdwn_in,omitempty"` + + Footer string `json:"footer,omitempty"` + FooterIcon string `json:"footer_icon,omitempty"` + + Ts json.Number `json:"ts,omitempty"` +} diff --git a/vendor/github.com/nlopes/slack/backoff.go b/vendor/github.com/nlopes/slack/backoff.go new file mode 100644 index 00000000..e555a1ad --- /dev/null +++ b/vendor/github.com/nlopes/slack/backoff.go @@ -0,0 +1,57 @@ +package slack + +import ( + "math" + "math/rand" + "time" +) + +// This one was ripped from https://github.com/jpillora/backoff/blob/master/backoff.go + +// Backoff is a time.Duration counter. It starts at Min. After every +// call to Duration() it is multiplied by Factor. It is capped at +// Max. It returns to Min on every call to Reset(). Used in +// conjunction with the time package. +type backoff struct { + attempts int + //Factor is the multiplying factor for each increment step + Factor float64 + //Jitter eases contention by randomizing backoff steps + Jitter bool + //Min and Max are the minimum and maximum values of the counter + Min, Max time.Duration +} + +// Returns the current value of the counter and then multiplies it +// Factor +func (b *backoff) Duration() time.Duration { + //Zero-values are nonsensical, so we use + //them to apply defaults + if b.Min == 0 { + b.Min = 100 * time.Millisecond + } + if b.Max == 0 { + b.Max = 10 * time.Second + } + if b.Factor == 0 { + b.Factor = 2 + } + //calculate this duration + dur := float64(b.Min) * math.Pow(b.Factor, float64(b.attempts)) + if b.Jitter == true { + dur = rand.Float64()*(dur-float64(b.Min)) + float64(b.Min) + } + //cap! + if dur > float64(b.Max) { + return b.Max + } + //bump attempts count + b.attempts++ + //return as a time.Duration + return time.Duration(dur) +} + +//Resets the current value of the counter back to Min +func (b *backoff) Reset() { + b.attempts = 0 +} diff --git a/vendor/github.com/nlopes/slack/bots.go b/vendor/github.com/nlopes/slack/bots.go new file mode 100644 index 00000000..555915e4 --- /dev/null +++ b/vendor/github.com/nlopes/slack/bots.go @@ -0,0 +1,44 @@ +package slack + +import ( + "errors" + "net/url" +) + +// Bot contains information about a bot +type Bot struct { + ID string `json:"id"` + Name string `json:"name"` + Deleted bool `json:"deleted"` + Icons Icons `json:"icons"` +} + +type botResponseFull struct { + Bot `json:"bot,omitempty"` // GetBotInfo + SlackResponse +} + +func botRequest(path string, values url.Values, debug bool) (*botResponseFull, error) { + response := &botResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// GetBotInfo will retrieve the complete bot information +func (api *Client) GetBotInfo(bot string) (*Bot, error) { + values := url.Values{ + "token": {api.config.token}, + "bot": {bot}, + } + response, err := botRequest("bots.info", values, api.debug) + if err != nil { + return nil, err + } + return &response.Bot, nil +} diff --git a/vendor/github.com/nlopes/slack/bots_test.go b/vendor/github.com/nlopes/slack/bots_test.go new file mode 100644 index 00000000..7066e78f --- /dev/null +++ b/vendor/github.com/nlopes/slack/bots_test.go @@ -0,0 +1,51 @@ +package slack + +import ( + "net/http" + "testing" +) + +func getBotInfo(rw http.ResponseWriter, r *http.Request) { + rw.Header().Set("Content-Type", "application/json") + response := []byte(`{"ok": true, "bot": { + "id":"B02875YLA", + "deleted":false, + "name":"github", + "icons": { + "image_36":"https:\/\/a.slack-edge.com\/2fac\/plugins\/github\/assets\/service_36.png", + "image_48":"https:\/\/a.slack-edge.com\/2fac\/plugins\/github\/assets\/service_48.png", + "image_72":"https:\/\/a.slack-edge.com\/2fac\/plugins\/github\/assets\/service_72.png" + } + }}`) + rw.Write(response) +} + +func TestGetBotInfo(t *testing.T) { + http.HandleFunc("/bots.info", getBotInfo) + + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + + bot, err := api.GetBotInfo("B02875YLA") + if err != nil { + t.Errorf("Unexpected error: %s", err) + return + } + + if bot.ID != "B02875YLA" { + t.Fatal("Incorrect ID") + } + if bot.Name != "github" { + t.Fatal("Incorrect Name") + } + if len(bot.Icons.Image36) == 0 { + t.Fatal("Missing Image36") + } + if len(bot.Icons.Image48) == 0 { + t.Fatal("Missing Image38") + } + if len(bot.Icons.Image72) == 0 { + t.Fatal("Missing Image72") + } +} diff --git a/vendor/github.com/nlopes/slack/channels.go b/vendor/github.com/nlopes/slack/channels.go new file mode 100644 index 00000000..b868e775 --- /dev/null +++ b/vendor/github.com/nlopes/slack/channels.go @@ -0,0 +1,275 @@ +package slack + +import ( + "errors" + "net/url" + "strconv" +) + +type channelResponseFull struct { + Channel Channel `json:"channel"` + Channels []Channel `json:"channels"` + Purpose string `json:"purpose"` + Topic string `json:"topic"` + NotInChannel bool `json:"not_in_channel"` + History + SlackResponse +} + +// Channel contains information about the channel +type Channel struct { + groupConversation + IsChannel bool `json:"is_channel"` + IsGeneral bool `json:"is_general"` + IsMember bool `json:"is_member"` +} + +func channelRequest(path string, values url.Values, debug bool) (*channelResponseFull, error) { + response := &channelResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// ArchiveChannel archives the given channel +func (api *Client) ArchiveChannel(channel string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + _, err := channelRequest("channels.archive", values, api.debug) + if err != nil { + return err + } + return nil +} + +// UnarchiveChannel unarchives the given channel +func (api *Client) UnarchiveChannel(channel string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + _, err := channelRequest("channels.unarchive", values, api.debug) + if err != nil { + return err + } + return nil +} + +// CreateChannel creates a channel with the given name and returns a *Channel +func (api *Client) CreateChannel(channel string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "name": {channel}, + } + response, err := channelRequest("channels.create", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil +} + +// GetChannelHistory retrieves the channel history +func (api *Client) GetChannelHistory(channel string, params HistoryParameters) (*History, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + if params.Latest != DEFAULT_HISTORY_LATEST { + values.Add("latest", params.Latest) + } + if params.Oldest != DEFAULT_HISTORY_OLDEST { + values.Add("oldest", params.Oldest) + } + if params.Count != DEFAULT_HISTORY_COUNT { + values.Add("count", strconv.Itoa(params.Count)) + } + if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { + if params.Inclusive { + values.Add("inclusive", "1") + } else { + values.Add("inclusive", "0") + } + } + if params.Unreads != DEFAULT_HISTORY_UNREADS { + if params.Unreads { + values.Add("unreads", "1") + } else { + values.Add("unreads", "0") + } + } + response, err := channelRequest("channels.history", values, api.debug) + if err != nil { + return nil, err + } + return &response.History, nil +} + +// GetChannelInfo retrieves the given channel +func (api *Client) GetChannelInfo(channel string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + response, err := channelRequest("channels.info", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil +} + +// InviteUserToChannel invites a user to a given channel and returns a *Channel +func (api *Client) InviteUserToChannel(channel, user string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "user": {user}, + } + response, err := channelRequest("channels.invite", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil +} + +// JoinChannel joins the currently authenticated user to a channel +func (api *Client) JoinChannel(channel string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "name": {channel}, + } + response, err := channelRequest("channels.join", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil +} + +// LeaveChannel makes the authenticated user leave the given channel +func (api *Client) LeaveChannel(channel string) (bool, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + response, err := channelRequest("channels.leave", values, api.debug) + if err != nil { + return false, err + } + if response.NotInChannel { + return response.NotInChannel, nil + } + return false, nil +} + +// KickUserFromChannel kicks a user from a given channel +func (api *Client) KickUserFromChannel(channel, user string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "user": {user}, + } + _, err := channelRequest("channels.kick", values, api.debug) + if err != nil { + return err + } + return nil +} + +// GetChannels retrieves all the channels +func (api *Client) GetChannels(excludeArchived bool) ([]Channel, error) { + values := url.Values{ + "token": {api.config.token}, + } + if excludeArchived { + values.Add("exclude_archived", "1") + } + response, err := channelRequest("channels.list", values, api.debug) + if err != nil { + return nil, err + } + return response.Channels, nil +} + +// SetChannelReadMark sets the read mark of a given channel to a specific point +// Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a +// timer before making the call. In this way, any further updates needed during the timeout will not generate extra calls +// (just one per channel). This is useful for when reading scroll-back history, or following a busy live channel. A +// timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout. +func (api *Client) SetChannelReadMark(channel, ts string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "ts": {ts}, + } + _, err := channelRequest("channels.mark", values, api.debug) + if err != nil { + return err + } + return nil +} + +// RenameChannel renames a given channel +func (api *Client) RenameChannel(channel, name string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "name": {name}, + } + // XXX: the created entry in this call returns a string instead of a number + // so I may have to do some workaround to solve it. + response, err := channelRequest("channels.rename", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil + +} + +// SetChannelPurpose sets the channel purpose and returns the purpose that was +// successfully set +func (api *Client) SetChannelPurpose(channel, purpose string) (string, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "purpose": {purpose}, + } + response, err := channelRequest("channels.setPurpose", values, api.debug) + if err != nil { + return "", err + } + return response.Purpose, nil +} + +// SetChannelTopic sets the channel topic and returns the topic that was successfully set +func (api *Client) SetChannelTopic(channel, topic string) (string, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "topic": {topic}, + } + response, err := channelRequest("channels.setTopic", values, api.debug) + if err != nil { + return "", err + } + return response.Topic, nil +} + +// GetChannelReplies gets an entire thread (a message plus all the messages in reply to it). +func (api *Client) GetChannelReplies(channel, thread_ts string) ([]Message, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "thread_ts": {thread_ts}, + } + response, err := channelRequest("channels.replies", values, api.debug) + if err != nil { + return nil, err + } + return response.History.Messages, nil +} diff --git a/vendor/github.com/nlopes/slack/chat.go b/vendor/github.com/nlopes/slack/chat.go new file mode 100644 index 00000000..d494c7b9 --- /dev/null +++ b/vendor/github.com/nlopes/slack/chat.go @@ -0,0 +1,289 @@ +package slack + +import ( + "encoding/json" + "errors" + "net/url" + "strings" +) + +const ( + DEFAULT_MESSAGE_USERNAME = "" + DEFAULT_MESSAGE_THREAD_TIMESTAMP = "" + DEFAULT_MESSAGE_ASUSER = false + DEFAULT_MESSAGE_PARSE = "" + DEFAULT_MESSAGE_LINK_NAMES = 0 + DEFAULT_MESSAGE_UNFURL_LINKS = false + DEFAULT_MESSAGE_UNFURL_MEDIA = true + DEFAULT_MESSAGE_ICON_URL = "" + DEFAULT_MESSAGE_ICON_EMOJI = "" + DEFAULT_MESSAGE_MARKDOWN = true + DEFAULT_MESSAGE_ESCAPE_TEXT = true +) + +type chatResponseFull struct { + Channel string `json:"channel"` + Timestamp string `json:"ts"` + Text string `json:"text"` + SlackResponse +} + +// PostMessageParameters contains all the parameters necessary (including the optional ones) for a PostMessage() request +type PostMessageParameters struct { + Text string `json:"text"` + Username string `json:"user_name"` + AsUser bool `json:"as_user"` + Parse string `json:"parse"` + ThreadTimestamp string `json:"thread_ts"` + LinkNames int `json:"link_names"` + Attachments []Attachment `json:"attachments"` + UnfurlLinks bool `json:"unfurl_links"` + UnfurlMedia bool `json:"unfurl_media"` + IconURL string `json:"icon_url"` + IconEmoji string `json:"icon_emoji"` + Markdown bool `json:"mrkdwn,omitempty"` + EscapeText bool `json:"escape_text"` +} + +// NewPostMessageParameters provides an instance of PostMessageParameters with all the sane default values set +func NewPostMessageParameters() PostMessageParameters { + return PostMessageParameters{ + Username: DEFAULT_MESSAGE_USERNAME, + AsUser: DEFAULT_MESSAGE_ASUSER, + Parse: DEFAULT_MESSAGE_PARSE, + LinkNames: DEFAULT_MESSAGE_LINK_NAMES, + Attachments: nil, + UnfurlLinks: DEFAULT_MESSAGE_UNFURL_LINKS, + UnfurlMedia: DEFAULT_MESSAGE_UNFURL_MEDIA, + IconURL: DEFAULT_MESSAGE_ICON_URL, + IconEmoji: DEFAULT_MESSAGE_ICON_EMOJI, + Markdown: DEFAULT_MESSAGE_MARKDOWN, + EscapeText: DEFAULT_MESSAGE_ESCAPE_TEXT, + } +} + +// DeleteMessage deletes a message in a channel +func (api *Client) DeleteMessage(channel, messageTimestamp string) (string, string, error) { + respChannel, respTimestamp, _, err := api.SendMessage(channel, MsgOptionDelete(messageTimestamp)) + return respChannel, respTimestamp, err +} + +// PostMessage sends a message to a channel. +// Message is escaped by default according to https://api.slack.com/docs/formatting +// Use http://davestevens.github.io/slack-message-builder/ to help crafting your message. +func (api *Client) PostMessage(channel, text string, params PostMessageParameters) (string, string, error) { + respChannel, respTimestamp, _, err := api.SendMessage( + channel, + MsgOptionText(text, params.EscapeText), + MsgOptionAttachments(params.Attachments...), + MsgOptionPostMessageParameters(params), + ) + return respChannel, respTimestamp, err +} + +// UpdateMessage updates a message in a channel +func (api *Client) UpdateMessage(channel, timestamp, text string) (string, string, string, error) { + return api.SendMessage(channel, MsgOptionUpdate(timestamp), MsgOptionText(text, true)) +} + +// SendMessage more flexible method for configuring messages. +func (api *Client) SendMessage(channel string, options ...MsgOption) (string, string, string, error) { + channel, values, err := ApplyMsgOptions(api.config.token, channel, options...) + if err != nil { + return "", "", "", err + } + + response, err := chatRequest(channel, values, api.debug) + if err != nil { + return "", "", "", err + } + + return response.Channel, response.Timestamp, response.Text, nil +} + +// ApplyMsgOptions utility function for debugging/testing chat requests. +func ApplyMsgOptions(token, channel string, options ...MsgOption) (string, url.Values, error) { + config := sendConfig{ + mode: chatPostMessage, + values: url.Values{ + "token": {token}, + "channel": {channel}, + }, + } + + for _, opt := range options { + if err := opt(&config); err != nil { + return string(config.mode), config.values, err + } + } + + return string(config.mode), config.values, nil +} + +func escapeMessage(message string) string { + replacer := strings.NewReplacer("&", "&", "<", "<", ">", ">") + return replacer.Replace(message) +} + +func chatRequest(path string, values url.Values, debug bool) (*chatResponseFull, error) { + response := &chatResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +type sendMode string + +const ( + chatUpdate sendMode = "chat.update" + chatPostMessage sendMode = "chat.postMessage" + chatDelete sendMode = "chat.delete" +) + +type sendConfig struct { + mode sendMode + values url.Values +} + +// MsgOption option provided when sending a message. +type MsgOption func(*sendConfig) error + +// MsgOptionPost posts a messages, this is the default. +func MsgOptionPost() MsgOption { + return func(config *sendConfig) error { + config.mode = chatPostMessage + config.values.Del("ts") + return nil + } +} + +// MsgOptionUpdate updates a message based on the timestamp. +func MsgOptionUpdate(timestamp string) MsgOption { + return func(config *sendConfig) error { + config.mode = chatUpdate + config.values.Add("ts", timestamp) + return nil + } +} + +// MsgOptionDelete deletes a message based on the timestamp. +func MsgOptionDelete(timestamp string) MsgOption { + return func(config *sendConfig) error { + config.mode = chatDelete + config.values.Add("ts", timestamp) + return nil + } +} + +// MsgOptionAsUser whether or not to send the message as the user. +func MsgOptionAsUser(b bool) MsgOption { + return func(config *sendConfig) error { + if b != DEFAULT_MESSAGE_ASUSER { + config.values.Set("as_user", "true") + } + return nil + } +} + +// MsgOptionText provide the text for the message, optionally escape the provided +// text. +func MsgOptionText(text string, escape bool) MsgOption { + return func(config *sendConfig) error { + if escape { + text = escapeMessage(text) + } + config.values.Add("text", text) + return nil + } +} + +// MsgOptionAttachments provide attachments for the message. +func MsgOptionAttachments(attachments ...Attachment) MsgOption { + return func(config *sendConfig) error { + if attachments == nil { + return nil + } + + attachments, err := json.Marshal(attachments) + if err == nil { + config.values.Set("attachments", string(attachments)) + } + return err + } +} + +// MsgOptionEnableLinkUnfurl enables link unfurling +func MsgOptionEnableLinkUnfurl() MsgOption { + return func(config *sendConfig) error { + config.values.Set("unfurl_links", "true") + return nil + } +} + +// MsgOptionDisableMediaUnfurl disables media unfurling. +func MsgOptionDisableMediaUnfurl() MsgOption { + return func(config *sendConfig) error { + config.values.Set("unfurl_media", "false") + return nil + } +} + +// MsgOptionDisableMarkdown disables markdown. +func MsgOptionDisableMarkdown() MsgOption { + return func(config *sendConfig) error { + config.values.Set("mrkdwn", "false") + return nil + } +} + +// MsgOptionPostMessageParameters maintain backwards compatibility. +func MsgOptionPostMessageParameters(params PostMessageParameters) MsgOption { + return func(config *sendConfig) error { + if params.Username != DEFAULT_MESSAGE_USERNAME { + config.values.Set("username", string(params.Username)) + } + + // never generates an error. + MsgOptionAsUser(params.AsUser)(config) + + if params.Parse != DEFAULT_MESSAGE_PARSE { + config.values.Set("parse", string(params.Parse)) + } + if params.LinkNames != DEFAULT_MESSAGE_LINK_NAMES { + config.values.Set("link_names", "1") + } + + if params.UnfurlLinks != DEFAULT_MESSAGE_UNFURL_LINKS { + config.values.Set("unfurl_links", "true") + } + + // I want to send a message with explicit `as_user` `true` and `unfurl_links` `false` in request. + // Because setting `as_user` to `true` will change the default value for `unfurl_links` to `true` on Slack API side. + if params.AsUser != DEFAULT_MESSAGE_ASUSER && params.UnfurlLinks == DEFAULT_MESSAGE_UNFURL_LINKS { + config.values.Set("unfurl_links", "false") + } + if params.UnfurlMedia != DEFAULT_MESSAGE_UNFURL_MEDIA { + config.values.Set("unfurl_media", "false") + } + if params.IconURL != DEFAULT_MESSAGE_ICON_URL { + config.values.Set("icon_url", params.IconURL) + } + if params.IconEmoji != DEFAULT_MESSAGE_ICON_EMOJI { + config.values.Set("icon_emoji", params.IconEmoji) + } + if params.Markdown != DEFAULT_MESSAGE_MARKDOWN { + config.values.Set("mrkdwn", "false") + } + + if params.ThreadTimestamp != DEFAULT_MESSAGE_THREAD_TIMESTAMP { + config.values.Set("thread_ts", params.ThreadTimestamp) + } + + return nil + } +} diff --git a/vendor/github.com/nlopes/slack/comment.go b/vendor/github.com/nlopes/slack/comment.go new file mode 100644 index 00000000..7d1c0d4e --- /dev/null +++ b/vendor/github.com/nlopes/slack/comment.go @@ -0,0 +1,10 @@ +package slack + +// Comment contains all the information relative to a comment +type Comment struct { + ID string `json:"id,omitempty"` + Created JSONTime `json:"created,omitempty"` + Timestamp JSONTime `json:"timestamp,omitempty"` + User string `json:"user,omitempty"` + Comment string `json:"comment,omitempty"` +} diff --git a/vendor/github.com/nlopes/slack/conversation.go b/vendor/github.com/nlopes/slack/conversation.go new file mode 100644 index 00000000..83a1d4ee --- /dev/null +++ b/vendor/github.com/nlopes/slack/conversation.go @@ -0,0 +1,37 @@ +package slack + +// Conversation is the foundation for IM and BaseGroupConversation +type conversation struct { + ID string `json:"id"` + Created JSONTime `json:"created"` + IsOpen bool `json:"is_open"` + LastRead string `json:"last_read,omitempty"` + Latest *Message `json:"latest,omitempty"` + UnreadCount int `json:"unread_count,omitempty"` + UnreadCountDisplay int `json:"unread_count_display,omitempty"` +} + +// GroupConversation is the foundation for Group and Channel +type groupConversation struct { + conversation + Name string `json:"name"` + Creator string `json:"creator"` + IsArchived bool `json:"is_archived"` + Members []string `json:"members"` + Topic Topic `json:"topic"` + Purpose Purpose `json:"purpose"` +} + +// Topic contains information about the topic +type Topic struct { + Value string `json:"value"` + Creator string `json:"creator"` + LastSet JSONTime `json:"last_set"` +} + +// Purpose contains information about the purpose +type Purpose struct { + Value string `json:"value"` + Creator string `json:"creator"` + LastSet JSONTime `json:"last_set"` +} diff --git a/vendor/github.com/nlopes/slack/conversation_test.go b/vendor/github.com/nlopes/slack/conversation_test.go new file mode 100644 index 00000000..59c53ec8 --- /dev/null +++ b/vendor/github.com/nlopes/slack/conversation_test.go @@ -0,0 +1,200 @@ +package slack + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" +) + +// Channel +var simpleChannel = `{ + "id": "C024BE91L", + "name": "fun", + "is_channel": true, + "created": 1360782804, + "creator": "U024BE7LH", + "is_archived": false, + "is_general": false, + "members": [ + "U024BE7LH" + ], + "topic": { + "value": "Fun times", + "creator": "U024BE7LV", + "last_set": 1369677212 + }, + "purpose": { + "value": "This channel is for fun", + "creator": "U024BE7LH", + "last_set": 1360782804 + }, + "is_member": true, + "last_read": "1401383885.000061", + "unread_count": 0, + "unread_count_display": 0 +}` + +func unmarshalChannel(j string) (*Channel, error) { + channel := &Channel{} + if err := json.Unmarshal([]byte(j), &channel); err != nil { + return nil, err + } + return channel, nil +} + +func TestSimpleChannel(t *testing.T) { + channel, err := unmarshalChannel(simpleChannel) + assert.Nil(t, err) + assertSimpleChannel(t, channel) +} + +func assertSimpleChannel(t *testing.T, channel *Channel) { + assert.NotNil(t, channel) + assert.Equal(t, "C024BE91L", channel.ID) + assert.Equal(t, "fun", channel.Name) + assert.Equal(t, true, channel.IsChannel) + assert.Equal(t, JSONTime(1360782804), channel.Created) + assert.Equal(t, "U024BE7LH", channel.Creator) + assert.Equal(t, false, channel.IsArchived) + assert.Equal(t, false, channel.IsGeneral) + assert.Equal(t, true, channel.IsMember) + assert.Equal(t, "1401383885.000061", channel.LastRead) + assert.Equal(t, 0, channel.UnreadCount) + assert.Equal(t, 0, channel.UnreadCountDisplay) +} + +func TestCreateSimpleChannel(t *testing.T) { + channel := &Channel{} + channel.ID = "C024BE91L" + channel.Name = "fun" + channel.IsChannel = true + channel.Created = JSONTime(1360782804) + channel.Creator = "U024BE7LH" + channel.IsArchived = false + channel.IsGeneral = false + channel.IsMember = true + channel.LastRead = "1401383885.000061" + channel.UnreadCount = 0 + channel.UnreadCountDisplay = 0 + assertSimpleChannel(t, channel) +} + +// Group +var simpleGroup = `{ + "id": "G024BE91L", + "name": "secretplans", + "is_group": true, + "created": 1360782804, + "creator": "U024BE7LH", + "is_archived": false, + "members": [ + "U024BE7LH" + ], + "topic": { + "value": "Secret plans on hold", + "creator": "U024BE7LV", + "last_set": 1369677212 + }, + "purpose": { + "value": "Discuss secret plans that no-one else should know", + "creator": "U024BE7LH", + "last_set": 1360782804 + }, + "last_read": "1401383885.000061", + "unread_count": 0, + "unread_count_display": 0 +}` + +func unmarshalGroup(j string) (*Group, error) { + group := &Group{} + if err := json.Unmarshal([]byte(j), &group); err != nil { + return nil, err + } + return group, nil +} + +func TestSimpleGroup(t *testing.T) { + group, err := unmarshalGroup(simpleGroup) + assert.Nil(t, err) + assertSimpleGroup(t, group) +} + +func assertSimpleGroup(t *testing.T, group *Group) { + assert.NotNil(t, group) + assert.Equal(t, "G024BE91L", group.ID) + assert.Equal(t, "secretplans", group.Name) + assert.Equal(t, true, group.IsGroup) + assert.Equal(t, JSONTime(1360782804), group.Created) + assert.Equal(t, "U024BE7LH", group.Creator) + assert.Equal(t, false, group.IsArchived) + assert.Equal(t, "1401383885.000061", group.LastRead) + assert.Equal(t, 0, group.UnreadCount) + assert.Equal(t, 0, group.UnreadCountDisplay) +} + +func TestCreateSimpleGroup(t *testing.T) { + group := &Group{} + group.ID = "G024BE91L" + group.Name = "secretplans" + group.IsGroup = true + group.Created = JSONTime(1360782804) + group.Creator = "U024BE7LH" + group.IsArchived = false + group.LastRead = "1401383885.000061" + group.UnreadCount = 0 + group.UnreadCountDisplay = 0 + assertSimpleGroup(t, group) +} + +// IM +var simpleIM = `{ + "id": "D024BFF1M", + "is_im": true, + "user": "U024BE7LH", + "created": 1360782804, + "is_user_deleted": false, + "is_open": true, + "last_read": "1401383885.000061", + "unread_count": 0, + "unread_count_display": 0 +}` + +func unmarshalIM(j string) (*IM, error) { + im := &IM{} + if err := json.Unmarshal([]byte(j), &im); err != nil { + return nil, err + } + return im, nil +} + +func TestSimpleIM(t *testing.T) { + im, err := unmarshalIM(simpleIM) + assert.Nil(t, err) + assertSimpleIM(t, im) +} + +func assertSimpleIM(t *testing.T, im *IM) { + assert.NotNil(t, im) + assert.Equal(t, "D024BFF1M", im.ID) + assert.Equal(t, true, im.IsIM) + assert.Equal(t, JSONTime(1360782804), im.Created) + assert.Equal(t, false, im.IsUserDeleted) + assert.Equal(t, true, im.IsOpen) + assert.Equal(t, "1401383885.000061", im.LastRead) + assert.Equal(t, 0, im.UnreadCount) + assert.Equal(t, 0, im.UnreadCountDisplay) +} + +func TestCreateSimpleIM(t *testing.T) { + im := &IM{} + im.ID = "D024BFF1M" + im.IsIM = true + im.Created = JSONTime(1360782804) + im.IsUserDeleted = false + im.IsOpen = true + im.LastRead = "1401383885.000061" + im.UnreadCount = 0 + im.UnreadCountDisplay = 0 + assertSimpleIM(t, im) +} diff --git a/vendor/github.com/nlopes/slack/dnd.go b/vendor/github.com/nlopes/slack/dnd.go new file mode 100644 index 00000000..ac87758d --- /dev/null +++ b/vendor/github.com/nlopes/slack/dnd.go @@ -0,0 +1,123 @@ +package slack + +import ( + "errors" + "net/url" + "strconv" + "strings" +) + +type SnoozeDebug struct { + SnoozeEndDate string `json:"snooze_end_date"` +} + +type SnoozeInfo struct { + SnoozeEnabled bool `json:"snooze_enabled,omitempty"` + SnoozeEndTime int `json:"snooze_endtime,omitempty"` + SnoozeRemaining int `json:"snooze_remaining,omitempty"` + SnoozeDebug SnoozeDebug `json:"snooze_debug,omitempty"` +} + +type DNDStatus struct { + Enabled bool `json:"dnd_enabled"` + NextStartTimestamp int `json:"next_dnd_start_ts"` + NextEndTimestamp int `json:"next_dnd_end_ts"` + SnoozeInfo +} + +type dndResponseFull struct { + DNDStatus + SlackResponse +} + +type dndTeamInfoResponse struct { + Users map[string]DNDStatus `json:"users"` + SlackResponse +} + +func dndRequest(path string, values url.Values, debug bool) (*dndResponseFull, error) { + response := &dndResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// EndDND ends the user's scheduled Do Not Disturb session +func (api *Client) EndDND() error { + values := url.Values{ + "token": {api.config.token}, + } + + response := &SlackResponse{} + if err := post("dnd.endDnd", values, response, api.debug); err != nil { + return err + } + if !response.Ok { + return errors.New(response.Error) + } + return nil +} + +// EndSnooze ends the current user's snooze mode +func (api *Client) EndSnooze() (*DNDStatus, error) { + values := url.Values{ + "token": {api.config.token}, + } + + response, err := dndRequest("dnd.endSnooze", values, api.debug) + if err != nil { + return nil, err + } + return &response.DNDStatus, nil +} + +// GetDNDInfo provides information about a user's current Do Not Disturb settings. +func (api *Client) GetDNDInfo(user *string) (*DNDStatus, error) { + values := url.Values{ + "token": {api.config.token}, + } + if user != nil { + values.Set("user", *user) + } + response, err := dndRequest("dnd.info", values, api.debug) + if err != nil { + return nil, err + } + return &response.DNDStatus, nil +} + +// GetDNDTeamInfo provides information about a user's current Do Not Disturb settings. +func (api *Client) GetDNDTeamInfo(users []string) (map[string]DNDStatus, error) { + values := url.Values{ + "token": {api.config.token}, + "users": {strings.Join(users, ",")}, + } + response := &dndTeamInfoResponse{} + if err := post("dnd.teamInfo", values, response, api.debug); err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response.Users, nil +} + +// SetSnooze adjusts the snooze duration for a user's Do Not Disturb +// settings. If a snooze session is not already active for the user, invoking +// this method will begin one for the specified duration. +func (api *Client) SetSnooze(minutes int) (*DNDStatus, error) { + values := url.Values{ + "token": {api.config.token}, + "num_minutes": {strconv.Itoa(minutes)}, + } + response, err := dndRequest("dnd.setSnooze", values, api.debug) + if err != nil { + return nil, err + } + return &response.DNDStatus, nil +} diff --git a/vendor/github.com/nlopes/slack/dnd_test.go b/vendor/github.com/nlopes/slack/dnd_test.go new file mode 100644 index 00000000..6bde2b3a --- /dev/null +++ b/vendor/github.com/nlopes/slack/dnd_test.go @@ -0,0 +1,159 @@ +package slack + +import ( + "net/http" + "reflect" + "testing" +) + +func TestSlack_EndDND(t *testing.T) { + http.HandleFunc("/dnd.endDnd", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ "ok": true }`)) + }) + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + err := api.EndDND() + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } +} + +func TestSlack_EndSnooze(t *testing.T) { + http.HandleFunc("/dnd.endSnooze", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ "ok": true, + "dnd_enabled": true, + "next_dnd_start_ts": 1450418400, + "next_dnd_end_ts": 1450454400, + "snooze_enabled": false }`)) + }) + state := DNDStatus{ + Enabled: true, + NextStartTimestamp: 1450418400, + NextEndTimestamp: 1450454400, + SnoozeInfo: SnoozeInfo{SnoozeEnabled: false}, + } + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + snoozeState, err := api.EndSnooze() + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + eq := reflect.DeepEqual(snoozeState, &state) + if !eq { + t.Errorf("got %v; want %v", snoozeState, &state) + } +} + +func TestSlack_GetDNDInfo(t *testing.T) { + http.HandleFunc("/dnd.info", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "ok": true, + "dnd_enabled": true, + "next_dnd_start_ts": 1450416600, + "next_dnd_end_ts": 1450452600, + "snooze_enabled": true, + "snooze_endtime": 1450416600, + "snooze_remaining": 1196 + }`)) + }) + userDNDInfo := DNDStatus{ + Enabled: true, + NextStartTimestamp: 1450416600, + NextEndTimestamp: 1450452600, + SnoozeInfo: SnoozeInfo{ + SnoozeEnabled: true, + SnoozeEndTime: 1450416600, + SnoozeRemaining: 1196, + }, + } + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + userDNDInfoResponse, err := api.GetDNDInfo(nil) + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + eq := reflect.DeepEqual(userDNDInfoResponse, &userDNDInfo) + if !eq { + t.Errorf("got %v; want %v", userDNDInfoResponse, &userDNDInfo) + } +} + +func TestSlack_GetDNDTeamInfo(t *testing.T) { + http.HandleFunc("/dnd.teamInfo", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "ok": true, + "users": { + "U023BECGF": { + "dnd_enabled": true, + "next_dnd_start_ts": 1450387800, + "next_dnd_end_ts": 1450423800 + }, + "U058CJVAA": { + "dnd_enabled": false, + "next_dnd_start_ts": 1, + "next_dnd_end_ts": 1 + } + } + }`)) + }) + usersDNDInfo := map[string]DNDStatus{ + "U023BECGF": DNDStatus{ + Enabled: true, + NextStartTimestamp: 1450387800, + NextEndTimestamp: 1450423800, + }, + "U058CJVAA": DNDStatus{ + Enabled: false, + NextStartTimestamp: 1, + NextEndTimestamp: 1, + }, + } + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + usersDNDInfoResponse, err := api.GetDNDTeamInfo(nil) + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + eq := reflect.DeepEqual(usersDNDInfoResponse, usersDNDInfo) + if !eq { + t.Errorf("got %v; want %v", usersDNDInfoResponse, usersDNDInfo) + } +} + +func TestSlack_SetSnooze(t *testing.T) { + http.HandleFunc("/dnd.setSnooze", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "ok": true, + "dnd_enabled": true, + "snooze_endtime": 1450373897, + "snooze_remaining": 60 + }`)) + }) + snooze := DNDStatus{ + Enabled: true, + SnoozeInfo: SnoozeInfo{ + SnoozeEndTime: 1450373897, + SnoozeRemaining: 60, + }, + } + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + snoozeResponse, err := api.SetSnooze(60) + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + eq := reflect.DeepEqual(snoozeResponse, &snooze) + if !eq { + t.Errorf("got %v; want %v", snoozeResponse, &snooze) + } +} diff --git a/vendor/github.com/nlopes/slack/emoji.go b/vendor/github.com/nlopes/slack/emoji.go new file mode 100644 index 00000000..776c4a5f --- /dev/null +++ b/vendor/github.com/nlopes/slack/emoji.go @@ -0,0 +1,27 @@ +package slack + +import ( + "errors" + "net/url" +) + +type emojiResponseFull struct { + Emoji map[string]string `json:"emoji"` + SlackResponse +} + +// GetEmoji retrieves all the emojis +func (api *Client) GetEmoji() (map[string]string, error) { + values := url.Values{ + "token": {api.config.token}, + } + response := &emojiResponseFull{} + err := post("emoji.list", values, response, api.debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response.Emoji, nil +} diff --git a/vendor/github.com/nlopes/slack/emoji_test.go b/vendor/github.com/nlopes/slack/emoji_test.go new file mode 100644 index 00000000..1aa086da --- /dev/null +++ b/vendor/github.com/nlopes/slack/emoji_test.go @@ -0,0 +1,40 @@ +package slack + +import ( + "net/http" + "reflect" + "testing" +) + +func getEmojiHandler(rw http.ResponseWriter, r *http.Request) { + rw.Header().Set("Content-Type", "application/json") + response := []byte(`{"ok": true, "emoji": { + "bowtie": "https://my.slack.com/emoji/bowtie/46ec6f2bb0.png", + "squirrel": "https://my.slack.com/emoji/squirrel/f35f40c0e0.png", + "shipit": "alias:squirrel" + }}`) + rw.Write(response) +} + +func TestGetEmoji(t *testing.T) { + http.HandleFunc("/emoji.list", getEmojiHandler) + + once.Do(startServer) + SLACK_API = "http://" + serverAddr + "/" + api := New("testing-token") + emojisResponse := map[string]string{ + "bowtie": "https://my.slack.com/emoji/bowtie/46ec6f2bb0.png", + "squirrel": "https://my.slack.com/emoji/squirrel/f35f40c0e0.png", + "shipit": "alias:squirrel", + } + + emojis, err := api.GetEmoji() + if err != nil { + t.Errorf("Unexpected error: %s", err) + return + } + eq := reflect.DeepEqual(emojis, emojisResponse) + if !eq { + t.Errorf("got %v; want %v", emojis, emojisResponse) + } +} diff --git a/vendor/github.com/nlopes/slack/examples/channels/channels.go b/vendor/github.com/nlopes/slack/examples/channels/channels.go new file mode 100644 index 00000000..a4465bdb --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/channels/channels.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + channels, err := api.GetChannels(false) + if err != nil { + fmt.Printf("%s\n", err) + return + } + for _, channel := range channels { + fmt.Println(channel.ID) + } +} diff --git a/vendor/github.com/nlopes/slack/examples/files/example.txt b/vendor/github.com/nlopes/slack/examples/files/example.txt new file mode 100644 index 00000000..0e3504a5 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/files/example.txt @@ -0,0 +1 @@ +Nan Nan Nan Nan Nan Nan Nan Nan Batman diff --git a/vendor/github.com/nlopes/slack/examples/files/files.go b/vendor/github.com/nlopes/slack/examples/files/files.go new file mode 100644 index 00000000..bb7b4e50 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/files/files.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + params := slack.FileUploadParameters{ + Title: "Batman Example", + //Filetype: "txt", + File: "example.txt", + //Content: "Nan Nan Nan Nan Nan Nan Nan Nan Batman", + } + file, err := api.UploadFile(params) + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("Name: %s, URL: %s\n", file.Name, file.URL) + + err = api.DeleteFile(file.ID) + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("File %s deleted successfully.\n", file.Name) +} diff --git a/vendor/github.com/nlopes/slack/examples/groups/groups.go b/vendor/github.com/nlopes/slack/examples/groups/groups.go new file mode 100644 index 00000000..2af215d1 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/groups/groups.go @@ -0,0 +1,22 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + // If you set debugging, it will log all requests to the console + // Useful when encountering issues + // api.SetDebug(true) + groups, err := api.GetGroups(false) + if err != nil { + fmt.Printf("%s\n", err) + return + } + for _, group := range groups { + fmt.Printf("ID: %s, Name: %s\n", group.ID, group.Name) + } +} diff --git a/vendor/github.com/nlopes/slack/examples/messages/messages.go b/vendor/github.com/nlopes/slack/examples/messages/messages.go new file mode 100644 index 00000000..b3ea87f3 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/messages/messages.go @@ -0,0 +1,32 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + params := slack.PostMessageParameters{} + attachment := slack.Attachment{ + Pretext: "some pretext", + Text: "some text", + // Uncomment the following part to send a field too + /* + Fields: []slack.AttachmentField{ + slack.AttachmentField{ + Title: "a", + Value: "no", + }, + }, + */ + } + params.Attachments = []slack.Attachment{attachment} + channelID, timestamp, err := api.PostMessage("CHANNEL_ID", "Some text", params) + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("Message successfully sent to channel %s at %s", channelID, timestamp) +} diff --git a/vendor/github.com/nlopes/slack/examples/pins/pins.go b/vendor/github.com/nlopes/slack/examples/pins/pins.go new file mode 100644 index 00000000..d225184c --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/pins/pins.go @@ -0,0 +1,123 @@ +package main + +import ( + "flag" + "fmt" + + "github.com/nlopes/slack" +) + +/* + WARNING: This example is destructive in the sense that it create a channel called testpinning +*/ +func main() { + var ( + apiToken string + debug bool + ) + + flag.StringVar(&apiToken, "token", "YOUR_TOKEN_HERE", "Your Slack API Token") + flag.BoolVar(&debug, "debug", false, "Show JSON output") + flag.Parse() + + api := slack.New(apiToken) + if debug { + api.SetDebug(true) + } + + var ( + postAsUserName string + postAsUserID string + postToChannelID string + ) + + // Find the user to post as. + authTest, err := api.AuthTest() + if err != nil { + fmt.Printf("Error getting channels: %s\n", err) + return + } + + channelName := "testpinning" + + // Post as the authenticated user. + postAsUserName = authTest.User + postAsUserID = authTest.UserID + + // Create a temporary channel + channel, err := api.CreateChannel(channelName) + + if err != nil { + // If the channel exists, that means we just need to unarchive it + if err.Error() == "name_taken" { + err = nil + channels, err := api.GetChannels(false) + if err != nil { + fmt.Println("Could not retrieve channels") + return + } + for _, archivedChannel := range channels { + if archivedChannel.Name == channelName { + if archivedChannel.IsArchived { + err = api.UnarchiveChannel(archivedChannel.ID) + if err != nil { + fmt.Printf("Could not unarchive %s: %s\n", archivedChannel.ID, err) + return + } + } + channel = &archivedChannel + break + } + } + } + if err != nil { + fmt.Printf("Error setting test channel for pinning: %s\n", err) + return + } + } + postToChannelID = channel.ID + + fmt.Printf("Posting as %s (%s) in channel %s\n", postAsUserName, postAsUserID, postToChannelID) + + // Post a message. + postParams := slack.PostMessageParameters{} + channelID, timestamp, err := api.PostMessage(postToChannelID, "Is this any good?", postParams) + if err != nil { + fmt.Printf("Error posting message: %s\n", err) + return + } + + // Grab a reference to the message. + msgRef := slack.NewRefToMessage(channelID, timestamp) + + // Add message pin to channel + if err := api.AddPin(channelID, msgRef); err != nil { + fmt.Printf("Error adding pin: %s\n", err) + return + } + + // List all of the users pins. + listPins, _, err := api.ListPins(channelID) + if err != nil { + fmt.Printf("Error listing pins: %s\n", err) + return + } + fmt.Printf("\n") + fmt.Printf("All pins by %s...\n", authTest.User) + for _, item := range listPins { + fmt.Printf(" > Item type: %s\n", item.Type) + } + + // Remove the pin. + err = api.RemovePin(channelID, msgRef) + if err != nil { + fmt.Printf("Error remove pin: %s\n", err) + return + } + + if err = api.ArchiveChannel(channelID); err != nil { + fmt.Printf("Error archiving channel: %s\n", err) + return + } + +} diff --git a/vendor/github.com/nlopes/slack/examples/reactions/reactions.go b/vendor/github.com/nlopes/slack/examples/reactions/reactions.go new file mode 100644 index 00000000..753f0d25 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/reactions/reactions.go @@ -0,0 +1,126 @@ +package main + +import ( + "flag" + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + var ( + apiToken string + debug bool + ) + + flag.StringVar(&apiToken, "token", "YOUR_TOKEN_HERE", "Your Slack API Token") + flag.BoolVar(&debug, "debug", false, "Show JSON output") + flag.Parse() + + api := slack.New(apiToken) + if debug { + api.SetDebug(true) + } + + var ( + postAsUserName string + postAsUserID string + postToUserName string + postToUserID string + postToChannelID string + ) + + // Find the user to post as. + authTest, err := api.AuthTest() + if err != nil { + fmt.Printf("Error getting channels: %s\n", err) + return + } + + // Post as the authenticated user. + postAsUserName = authTest.User + postAsUserID = authTest.UserID + + // Posting to DM with self causes a conversation with slackbot. + postToUserName = authTest.User + postToUserID = authTest.UserID + + // Find the channel. + _, _, chanID, err := api.OpenIMChannel(postToUserID) + if err != nil { + fmt.Printf("Error opening IM: %s\n", err) + return + } + postToChannelID = chanID + + fmt.Printf("Posting as %s (%s) in DM with %s (%s), channel %s\n", postAsUserName, postAsUserID, postToUserName, postToUserID, postToChannelID) + + // Post a message. + postParams := slack.PostMessageParameters{} + channelID, timestamp, err := api.PostMessage(postToChannelID, "Is this any good?", postParams) + if err != nil { + fmt.Printf("Error posting message: %s\n", err) + return + } + + // Grab a reference to the message. + msgRef := slack.NewRefToMessage(channelID, timestamp) + + // React with :+1: + if err := api.AddReaction("+1", msgRef); err != nil { + fmt.Printf("Error adding reaction: %s\n", err) + return + } + + // React with :-1: + if err := api.AddReaction("cry", msgRef); err != nil { + fmt.Printf("Error adding reaction: %s\n", err) + return + } + + // Get all reactions on the message. + msgReactions, err := api.GetReactions(msgRef, slack.NewGetReactionsParameters()) + if err != nil { + fmt.Printf("Error getting reactions: %s\n", err) + return + } + fmt.Printf("\n") + fmt.Printf("%d reactions to message...\n", len(msgReactions)) + for _, r := range msgReactions { + fmt.Printf(" %d users say %s\n", r.Count, r.Name) + } + + // List all of the users reactions. + listReactions, _, err := api.ListReactions(slack.NewListReactionsParameters()) + if err != nil { + fmt.Printf("Error listing reactions: %s\n", err) + return + } + fmt.Printf("\n") + fmt.Printf("All reactions by %s...\n", authTest.User) + for _, item := range listReactions { + fmt.Printf("%d on a %s...\n", len(item.Reactions), item.Type) + for _, r := range item.Reactions { + fmt.Printf(" %s (along with %d others)\n", r.Name, r.Count-1) + } + } + + // Remove the :cry: reaction. + err = api.RemoveReaction("cry", msgRef) + if err != nil { + fmt.Printf("Error remove reaction: %s\n", err) + return + } + + // Get all reactions on the message. + msgReactions, err = api.GetReactions(msgRef, slack.NewGetReactionsParameters()) + if err != nil { + fmt.Printf("Error getting reactions: %s\n", err) + return + } + fmt.Printf("\n") + fmt.Printf("%d reactions to message after removing cry...\n", len(msgReactions)) + for _, r := range msgReactions { + fmt.Printf(" %d users say %s\n", r.Count, r.Name) + } +} diff --git a/vendor/github.com/nlopes/slack/examples/stars/stars.go b/vendor/github.com/nlopes/slack/examples/stars/stars.go new file mode 100644 index 00000000..d20c3dcf --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/stars/stars.go @@ -0,0 +1,46 @@ +package main + +import ( + "flag" + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + var ( + apiToken string + debug bool + ) + + flag.StringVar(&apiToken, "token", "YOUR_TOKEN_HERE", "Your Slack API Token") + flag.BoolVar(&debug, "debug", false, "Show JSON output") + flag.Parse() + + api := slack.New(apiToken) + if debug { + api.SetDebug(true) + } + + // Get all stars for the usr. + params := slack.NewStarsParameters() + starredItems, _, err := api.GetStarred(params) + if err != nil { + fmt.Printf("Error getting stars: %s\n", err) + return + } + for _, s := range starredItems { + var desc string + switch s.Type { + case slack.TYPE_MESSAGE: + desc = s.Message.Text + case slack.TYPE_FILE: + desc = s.File.Name + case slack.TYPE_FILE_COMMENT: + desc = s.File.Name + " - " + s.Comment.Comment + case slack.TYPE_CHANNEL, slack.TYPE_IM, slack.TYPE_GROUP: + desc = s.Channel + } + fmt.Printf("Starred %s: %s\n", s.Type, desc) + } +} diff --git a/vendor/github.com/nlopes/slack/examples/team/team.go b/vendor/github.com/nlopes/slack/examples/team/team.go new file mode 100644 index 00000000..38223d86 --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/team/team.go @@ -0,0 +1,25 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + //Example for single user + billingActive, err := api.GetBillableInfo("U023BECGF") + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("ID: U023BECGF, BillingActive: %v\n\n\n", billingActive["U023BECGF"]) + + //Example for team + billingActiveForTeam, err := api.GetBillableInfoForTeam() + for id, value := range billingActiveForTeam { + fmt.Printf("ID: %v, BillingActive: %v\n", id, value) + } + +} diff --git a/vendor/github.com/nlopes/slack/examples/users/users.go b/vendor/github.com/nlopes/slack/examples/users/users.go new file mode 100644 index 00000000..9a6e1f6f --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/users/users.go @@ -0,0 +1,17 @@ +package main + +import ( + "fmt" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR_TOKEN_HERE") + user, err := api.GetUserInfo("U023BECGF") + if err != nil { + fmt.Printf("%s\n", err) + return + } + fmt.Printf("ID: %s, Fullname: %s, Email: %s\n", user.ID, user.Profile.RealName, user.Profile.Email) +} diff --git a/vendor/github.com/nlopes/slack/examples/websocket/websocket.go b/vendor/github.com/nlopes/slack/examples/websocket/websocket.go new file mode 100644 index 00000000..d02caadd --- /dev/null +++ b/vendor/github.com/nlopes/slack/examples/websocket/websocket.go @@ -0,0 +1,54 @@ +package main + +import ( + "fmt" + "log" + "os" + + "github.com/nlopes/slack" +) + +func main() { + api := slack.New("YOUR TOKEN HERE") + logger := log.New(os.Stdout, "slack-bot: ", log.Lshortfile|log.LstdFlags) + slack.SetLogger(logger) + api.SetDebug(true) + + rtm := api.NewRTM() + go rtm.ManageConnection() + + for msg := range rtm.IncomingEvents { + fmt.Print("Event Received: ") + switch ev := msg.Data.(type) { + case *slack.HelloEvent: + // Ignore hello + + case *slack.ConnectedEvent: + fmt.Println("Infos:", ev.Info) + fmt.Println("Connection counter:", ev.ConnectionCount) + // Replace #general with your Channel ID + rtm.SendMessage(rtm.NewOutgoingMessage("Hello world", "#general")) + + case *slack.MessageEvent: + fmt.Printf("Message: %v\n", ev) + + case *slack.PresenceChangeEvent: + fmt.Printf("Presence Change: %v\n", ev) + + case *slack.LatencyReport: + fmt.Printf("Current latency: %v\n", ev.Value) + + case *slack.RTMError: + fmt.Printf("Error: %s\n", ev.Error()) + + case *slack.InvalidAuthEvent: + fmt.Printf("Invalid credentials") + return + + default: + + // Ignore other events.. + // fmt.Printf("Unexpected: %v\n", msg.Data) + } + } +} diff --git a/vendor/github.com/nlopes/slack/files.go b/vendor/github.com/nlopes/slack/files.go new file mode 100644 index 00000000..0808ed91 --- /dev/null +++ b/vendor/github.com/nlopes/slack/files.go @@ -0,0 +1,280 @@ +package slack + +import ( + "errors" + "io" + "net/url" + "strconv" + "strings" +) + +const ( + // Add here the defaults in the siten + DEFAULT_FILES_USER = "" + DEFAULT_FILES_CHANNEL = "" + DEFAULT_FILES_TS_FROM = 0 + DEFAULT_FILES_TS_TO = -1 + DEFAULT_FILES_TYPES = "all" + DEFAULT_FILES_COUNT = 100 + DEFAULT_FILES_PAGE = 1 +) + +// File contains all the information for a file +type File struct { + ID string `json:"id"` + Created JSONTime `json:"created"` + Timestamp JSONTime `json:"timestamp"` + + Name string `json:"name"` + Title string `json:"title"` + Mimetype string `json:"mimetype"` + ImageExifRotation int `json:"image_exif_rotation"` + Filetype string `json:"filetype"` + PrettyType string `json:"pretty_type"` + User string `json:"user"` + + Mode string `json:"mode"` + Editable bool `json:"editable"` + IsExternal bool `json:"is_external"` + ExternalType string `json:"external_type"` + + Size int `json:"size"` + + URL string `json:"url"` // Deprecated - never set + URLDownload string `json:"url_download"` // Deprecated - never set + URLPrivate string `json:"url_private"` + URLPrivateDownload string `json:"url_private_download"` + + OriginalH int `json:"original_h"` + OriginalW int `json:"original_w"` + Thumb64 string `json:"thumb_64"` + Thumb80 string `json:"thumb_80"` + Thumb160 string `json:"thumb_160"` + Thumb360 string `json:"thumb_360"` + Thumb360Gif string `json:"thumb_360_gif"` + Thumb360W int `json:"thumb_360_w"` + Thumb360H int `json:"thumb_360_h"` + Thumb480 string `json:"thumb_480"` + Thumb480W int `json:"thumb_480_w"` + Thumb480H int `json:"thumb_480_h"` + Thumb720 string `json:"thumb_720"` + Thumb720W int `json:"thumb_720_w"` + Thumb720H int `json:"thumb_720_h"` + Thumb960 string `json:"thumb_960"` + Thumb960W int `json:"thumb_960_w"` + Thumb960H int `json:"thumb_960_h"` + Thumb1024 string `json:"thumb_1024"` + Thumb1024W int `json:"thumb_1024_w"` + Thumb1024H int `json:"thumb_1024_h"` + + Permalink string `json:"permalink"` + PermalinkPublic string `json:"permalink_public"` + + EditLink string `json:"edit_link"` + Preview string `json:"preview"` + PreviewHighlight string `json:"preview_highlight"` + Lines int `json:"lines"` + LinesMore int `json:"lines_more"` + + IsPublic bool `json:"is_public"` + PublicURLShared bool `json:"public_url_shared"` + Channels []string `json:"channels"` + Groups []string `json:"groups"` + IMs []string `json:"ims"` + InitialComment Comment `json:"initial_comment"` + CommentsCount int `json:"comments_count"` + NumStars int `json:"num_stars"` + IsStarred bool `json:"is_starred"` +} + +// FileUploadParameters contains all the parameters necessary (including the optional ones) for an UploadFile() request. +// +// There are three ways to upload a file. You can either set Content if file is small, set Reader if file is large, +// or provide a local file path in File to upload it from your filesystem. +type FileUploadParameters struct { + File string + Content string + Reader io.Reader + Filetype string + Filename string + Title string + InitialComment string + Channels []string +} + +// GetFilesParameters contains all the parameters necessary (including the optional ones) for a GetFiles() request +type GetFilesParameters struct { + User string + Channel string + TimestampFrom JSONTime + TimestampTo JSONTime + Types string + Count int + Page int +} + +type fileResponseFull struct { + File `json:"file"` + Paging `json:"paging"` + Comments []Comment `json:"comments"` + Files []File `json:"files"` + + SlackResponse +} + +// NewGetFilesParameters provides an instance of GetFilesParameters with all the sane default values set +func NewGetFilesParameters() GetFilesParameters { + return GetFilesParameters{ + User: DEFAULT_FILES_USER, + Channel: DEFAULT_FILES_CHANNEL, + TimestampFrom: DEFAULT_FILES_TS_FROM, + TimestampTo: DEFAULT_FILES_TS_TO, + Types: DEFAULT_FILES_TYPES, + Count: DEFAULT_FILES_COUNT, + Page: DEFAULT_FILES_PAGE, + } +} + +func fileRequest(path string, values url.Values, debug bool) (*fileResponseFull, error) { + response := &fileResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// GetFileInfo retrieves a file and related comments +func (api *Client) GetFileInfo(fileID string, count, page int) (*File, []Comment, *Paging, error) { + values := url.Values{ + "token": {api.config.token}, + "file": {fileID}, + "count": {strconv.Itoa(count)}, + "page": {strconv.Itoa(page)}, + } + response, err := fileRequest("files.info", values, api.debug) + if err != nil { + return nil, nil, nil, err + } + return &response.File, response.Comments, &response.Paging, nil +} + +// GetFiles retrieves all files according to the parameters given +func (api *Client) GetFiles(params GetFilesParameters) ([]File, *Paging, error) { + values := url.Values{ + "token": {api.config.token}, + } + if params.User != DEFAULT_FILES_USER { + values.Add("user", params.User) + } + if params.Channel != DEFAULT_FILES_CHANNEL { + values.Add("channel", params.Channel) + } + if params.TimestampFrom != DEFAULT_FILES_TS_FROM { + values.Add("ts_from", strconv.FormatInt(int64(params.TimestampFrom), 10)) + } + if params.TimestampTo != DEFAULT_FILES_TS_TO { + values.Add("ts_to", strconv.FormatInt(int64(params.TimestampTo), 10)) + } + if params.Types != DEFAULT_FILES_TYPES { + values.Add("types", params.Types) + } + if params.Count != DEFAULT_FILES_COUNT { + values.Add("count", strconv.Itoa(params.Count)) + } + if params.Page != DEFAULT_FILES_PAGE { + values.Add("page", strconv.Itoa(params.Page)) + } + response, err := fileRequest("files.list", values, api.debug) + if err != nil { + return nil, nil, err + } + return response.Files, &response.Paging, nil +} + +// UploadFile uploads a file +func (api *Client) UploadFile(params FileUploadParameters) (file *File, err error) { + // Test if user token is valid. This helps because client.Do doesn't like this for some reason. XXX: More + // investigation needed, but for now this will do. + _, err = api.AuthTest() + if err != nil { + return nil, err + } + response := &fileResponseFull{} + values := url.Values{ + "token": {api.config.token}, + } + if params.Filetype != "" { + values.Add("filetype", params.Filetype) + } + if params.Filename != "" { + values.Add("filename", params.Filename) + } + if params.Title != "" { + values.Add("title", params.Title) + } + if params.InitialComment != "" { + values.Add("initial_comment", params.InitialComment) + } + if len(params.Channels) != 0 { + values.Add("channels", strings.Join(params.Channels, ",")) + } + if params.Content != "" { + values.Add("content", params.Content) + err = post("files.upload", values, response, api.debug) + } else if params.File != "" { + err = postLocalWithMultipartResponse("files.upload", params.File, "file", values, response, api.debug) + } else if params.Reader != nil { + err = postWithMultipartResponse("files.upload", params.Filename, "file", values, params.Reader, response, api.debug) + } + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return &response.File, nil +} + +// DeleteFile deletes a file +func (api *Client) DeleteFile(fileID string) error { + values := url.Values{ + "token": {api.config.token}, + "file": {fileID}, + } + _, err := fileRequest("files.delete", values, api.debug) + if err != nil { + return err + } + return nil + +} + +// RevokeFilePublicURL disables public/external sharing for a file +func (api *Client) RevokeFilePublicURL(fileID string) (*File, error) { + values := url.Values{ + "token": {api.config.token}, + "file": {fileID}, + } + response, err := fileRequest("files.revokePublicURL", values, api.debug) + if err != nil { + return nil, err + } + return &response.File, nil +} + +// ShareFilePublicURL enabled public/external sharing for a file +func (api *Client) ShareFilePublicURL(fileID string) (*File, []Comment, *Paging, error) { + values := url.Values{ + "token": {api.config.token}, + "file": {fileID}, + } + response, err := fileRequest("files.sharedPublicURL", values, api.debug) + if err != nil { + return nil, nil, nil, err + } + return &response.File, response.Comments, &response.Paging, nil +} diff --git a/vendor/github.com/nlopes/slack/groups.go b/vendor/github.com/nlopes/slack/groups.go new file mode 100644 index 00000000..ec4a3b65 --- /dev/null +++ b/vendor/github.com/nlopes/slack/groups.go @@ -0,0 +1,293 @@ +package slack + +import ( + "errors" + "net/url" + "strconv" +) + +// Group contains all the information for a group +type Group struct { + groupConversation + IsGroup bool `json:"is_group"` +} + +type groupResponseFull struct { + Group Group `json:"group"` + Groups []Group `json:"groups"` + Purpose string `json:"purpose"` + Topic string `json:"topic"` + NotInGroup bool `json:"not_in_group"` + NoOp bool `json:"no_op"` + AlreadyClosed bool `json:"already_closed"` + AlreadyOpen bool `json:"already_open"` + AlreadyInGroup bool `json:"already_in_group"` + Channel Channel `json:"channel"` + History + SlackResponse +} + +func groupRequest(path string, values url.Values, debug bool) (*groupResponseFull, error) { + response := &groupResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// ArchiveGroup archives a private group +func (api *Client) ArchiveGroup(group string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + _, err := groupRequest("groups.archive", values, api.debug) + if err != nil { + return err + } + return nil +} + +// UnarchiveGroup unarchives a private group +func (api *Client) UnarchiveGroup(group string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + _, err := groupRequest("groups.unarchive", values, api.debug) + if err != nil { + return err + } + return nil +} + +// CreateGroup creates a private group +func (api *Client) CreateGroup(group string) (*Group, error) { + values := url.Values{ + "token": {api.config.token}, + "name": {group}, + } + response, err := groupRequest("groups.create", values, api.debug) + if err != nil { + return nil, err + } + return &response.Group, nil +} + +// CreateChildGroup creates a new private group archiving the old one +// This method takes an existing private group and performs the following steps: +// 1. Renames the existing group (from "example" to "example-archived"). +// 2. Archives the existing group. +// 3. Creates a new group with the name of the existing group. +// 4. Adds all members of the existing group to the new group. +func (api *Client) CreateChildGroup(group string) (*Group, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + response, err := groupRequest("groups.createChild", values, api.debug) + if err != nil { + return nil, err + } + return &response.Group, nil +} + +// CloseGroup closes a private group +func (api *Client) CloseGroup(group string) (bool, bool, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + response, err := imRequest("groups.close", values, api.debug) + if err != nil { + return false, false, err + } + return response.NoOp, response.AlreadyClosed, nil +} + +// GetGroupHistory fetches all the history for a private group +func (api *Client) GetGroupHistory(group string, params HistoryParameters) (*History, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + if params.Latest != DEFAULT_HISTORY_LATEST { + values.Add("latest", params.Latest) + } + if params.Oldest != DEFAULT_HISTORY_OLDEST { + values.Add("oldest", params.Oldest) + } + if params.Count != DEFAULT_HISTORY_COUNT { + values.Add("count", strconv.Itoa(params.Count)) + } + if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { + if params.Inclusive { + values.Add("inclusive", "1") + } else { + values.Add("inclusive", "0") + } + } + if params.Unreads != DEFAULT_HISTORY_UNREADS { + if params.Unreads { + values.Add("unreads", "1") + } else { + values.Add("unreads", "0") + } + } + response, err := groupRequest("groups.history", values, api.debug) + if err != nil { + return nil, err + } + return &response.History, nil +} + +// InviteUserToGroup invites a specific user to a private group +func (api *Client) InviteUserToGroup(group, user string) (*Group, bool, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "user": {user}, + } + response, err := groupRequest("groups.invite", values, api.debug) + if err != nil { + return nil, false, err + } + return &response.Group, response.AlreadyInGroup, nil +} + +// LeaveGroup makes authenticated user leave the group +func (api *Client) LeaveGroup(group string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + _, err := groupRequest("groups.leave", values, api.debug) + if err != nil { + return err + } + return nil +} + +// KickUserFromGroup kicks a user from a group +func (api *Client) KickUserFromGroup(group, user string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "user": {user}, + } + _, err := groupRequest("groups.kick", values, api.debug) + if err != nil { + return err + } + return nil +} + +// GetGroups retrieves all groups +func (api *Client) GetGroups(excludeArchived bool) ([]Group, error) { + values := url.Values{ + "token": {api.config.token}, + } + if excludeArchived { + values.Add("exclude_archived", "1") + } + response, err := groupRequest("groups.list", values, api.debug) + if err != nil { + return nil, err + } + return response.Groups, nil +} + +// GetGroupInfo retrieves the given group +func (api *Client) GetGroupInfo(group string) (*Group, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + response, err := groupRequest("groups.info", values, api.debug) + if err != nil { + return nil, err + } + return &response.Group, nil +} + +// SetGroupReadMark sets the read mark on a private group +// Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a +// timer before making the call. In this way, any further updates needed during the timeout will not generate extra +// calls (just one per channel). This is useful for when reading scroll-back history, or following a busy live +// channel. A timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout. +func (api *Client) SetGroupReadMark(group, ts string) error { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "ts": {ts}, + } + _, err := groupRequest("groups.mark", values, api.debug) + if err != nil { + return err + } + return nil +} + +// OpenGroup opens a private group +func (api *Client) OpenGroup(group string) (bool, bool, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + } + response, err := groupRequest("groups.open", values, api.debug) + if err != nil { + return false, false, err + } + return response.NoOp, response.AlreadyOpen, nil +} + +// RenameGroup renames a group +// XXX: They return a channel, not a group. What is this crap? :( +// Inconsistent api it seems. +func (api *Client) RenameGroup(group, name string) (*Channel, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "name": {name}, + } + // XXX: the created entry in this call returns a string instead of a number + // so I may have to do some workaround to solve it. + response, err := groupRequest("groups.rename", values, api.debug) + if err != nil { + return nil, err + } + return &response.Channel, nil + +} + +// SetGroupPurpose sets the group purpose +func (api *Client) SetGroupPurpose(group, purpose string) (string, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "purpose": {purpose}, + } + response, err := groupRequest("groups.setPurpose", values, api.debug) + if err != nil { + return "", err + } + return response.Purpose, nil +} + +// SetGroupTopic sets the group topic +func (api *Client) SetGroupTopic(group, topic string) (string, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {group}, + "topic": {topic}, + } + response, err := groupRequest("groups.setTopic", values, api.debug) + if err != nil { + return "", err + } + return response.Topic, nil +} diff --git a/vendor/github.com/nlopes/slack/history.go b/vendor/github.com/nlopes/slack/history.go new file mode 100644 index 00000000..87b2e1ed --- /dev/null +++ b/vendor/github.com/nlopes/slack/history.go @@ -0,0 +1,36 @@ +package slack + +const ( + DEFAULT_HISTORY_LATEST = "" + DEFAULT_HISTORY_OLDEST = "0" + DEFAULT_HISTORY_COUNT = 100 + DEFAULT_HISTORY_INCLUSIVE = false + DEFAULT_HISTORY_UNREADS = false +) + +// HistoryParameters contains all the necessary information to help in the retrieval of history for Channels/Groups/DMs +type HistoryParameters struct { + Latest string + Oldest string + Count int + Inclusive bool + Unreads bool +} + +// History contains message history information needed to navigate a Channel / Group / DM history +type History struct { + Latest string `json:"latest"` + Messages []Message `json:"messages"` + HasMore bool `json:"has_more"` +} + +// NewHistoryParameters provides an instance of HistoryParameters with all the sane default values set +func NewHistoryParameters() HistoryParameters { + return HistoryParameters{ + Latest: DEFAULT_HISTORY_LATEST, + Oldest: DEFAULT_HISTORY_OLDEST, + Count: DEFAULT_HISTORY_COUNT, + Inclusive: DEFAULT_HISTORY_INCLUSIVE, + Unreads: DEFAULT_HISTORY_UNREADS, + } +} diff --git a/vendor/github.com/nlopes/slack/im.go b/vendor/github.com/nlopes/slack/im.go new file mode 100644 index 00000000..6fbc39e9 --- /dev/null +++ b/vendor/github.com/nlopes/slack/im.go @@ -0,0 +1,130 @@ +package slack + +import ( + "errors" + "net/url" + "strconv" +) + +type imChannel struct { + ID string `json:"id"` +} + +type imResponseFull struct { + NoOp bool `json:"no_op"` + AlreadyClosed bool `json:"already_closed"` + AlreadyOpen bool `json:"already_open"` + Channel imChannel `json:"channel"` + IMs []IM `json:"ims"` + History + SlackResponse +} + +// IM contains information related to the Direct Message channel +type IM struct { + conversation + IsIM bool `json:"is_im"` + User string `json:"user"` + IsUserDeleted bool `json:"is_user_deleted"` +} + +func imRequest(path string, values url.Values, debug bool) (*imResponseFull, error) { + response := &imResponseFull{} + err := post(path, values, response, debug) + if err != nil { + return nil, err + } + if !response.Ok { + return nil, errors.New(response.Error) + } + return response, nil +} + +// CloseIMChannel closes the direct message channel +func (api *Client) CloseIMChannel(channel string) (bool, bool, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + response, err := imRequest("im.close", values, api.debug) + if err != nil { + return false, false, err + } + return response.NoOp, response.AlreadyClosed, nil +} + +// OpenIMChannel opens a direct message channel to the user provided as argument +// Returns some status and the channel ID +func (api *Client) OpenIMChannel(user string) (bool, bool, string, error) { + values := url.Values{ + "token": {api.config.token}, + "user": {user}, + } + response, err := imRequest("im.open", values, api.debug) + if err != nil { + return false, false, "", err + } + return response.NoOp, response.AlreadyOpen, response.Channel.ID, nil +} + +// MarkIMChannel sets the read mark of a direct message channel to a specific point +func (api *Client) MarkIMChannel(channel, ts string) (err error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + "ts": {ts}, + } + _, err = imRequest("im.mark", values, api.debug) + if err != nil { + return err + } + return +} + +// GetIMHistory retrieves the direct message channel history +func (api *Client) GetIMHistory(channel string, params HistoryParameters) (*History, error) { + values := url.Values{ + "token": {api.config.token}, + "channel": {channel}, + } + if params.Latest != DEFAULT_HISTORY_LATEST { + values.Add("latest", params.Latest) + } + if params.Oldest != DEFAULT_HISTORY_OLDEST { + values.Add("oldest", params.Oldest) + } + if params.Count != DEFAULT_HISTORY_COUNT { + values.Add("count", strconv.Itoa(params.Count)) + } + if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { + if params.Inclusive { + values.Add("inclusive", "1") + } else { + values.Add("inclusive", "0") + } + } + if params.Unreads != DEFAULT_HISTORY_UNREADS { + if params.Unreads { + values.Add("unreads", "1") + } else { + values.Add("unreads", "0") + } + } + response, err := imRequest("im.history", values, api.debug) + if err != nil { + return nil, err + } + return &response.History, nil +} + +// GetIMChannels returns the list of direct message channels +func (api *Client) GetIMChannels() ([]IM, error) { + values := url.Values{ + "token": {api.config.token}, + } + response, err := imRequest("im.list", values, api.debug) + if err != nil { + return nil, err + } + return response.IMs, nil +} diff --git a/vendor/github.com/nlopes/slack/info.go b/vendor/github.com/nlopes/slack/info.go new file mode 100644 index 00000000..49db5327 --- /dev/null +++ b/vendor/github.com/nlopes/slack/info.go @@ -0,0 +1,210 @@ +package slack + +import ( + "fmt" + "time" +) + +// UserPrefs needs to be implemented +type UserPrefs struct { + // "highlight_words":"", + // "user_colors":"", + // "color_names_in_list":true, + // "growls_enabled":true, + // "tz":"Europe\/London", + // "push_dm_alert":true, + // "push_mention_alert":true, + // "push_everything":true, + // "push_idle_wait":2, + // "push_sound":"b2.mp3", + // "push_loud_channels":"", + // "push_mention_channels":"", + // "push_loud_channels_set":"", + // "email_alerts":"instant", + // "email_alerts_sleep_until":0, + // "email_misc":false, + // "email_weekly":true, + // "welcome_message_hidden":false, + // "all_channels_loud":true, + // "loud_channels":"", + // "never_channels":"", + // "loud_channels_set":"", + // "show_member_presence":true, + // "search_sort":"timestamp", + // "expand_inline_imgs":true, + // "expand_internal_inline_imgs":true, + // "expand_snippets":false, + // "posts_formatting_guide":true, + // "seen_welcome_2":true, + // "seen_ssb_prompt":false, + // "search_only_my_channels":false, + // "emoji_mode":"default", + // "has_invited":true, + // "has_uploaded":false, + // "has_created_channel":true, + // "search_exclude_channels":"", + // "messages_theme":"default", + // "webapp_spellcheck":true, + // "no_joined_overlays":false, + // "no_created_overlays":true, + // "dropbox_enabled":false, + // "seen_user_menu_tip_card":true, + // "seen_team_menu_tip_card":true, + // "seen_channel_menu_tip_card":true, + // "seen_message_input_tip_card":true, + // "seen_channels_tip_card":true, + // "seen_domain_invite_reminder":false, + // "seen_member_invite_reminder":false, + // "seen_flexpane_tip_card":true, + // "seen_search_input_tip_card":true, + // "mute_sounds":false, + // "arrow_history":false, + // "tab_ui_return_selects":true, + // "obey_inline_img_limit":true, + // "new_msg_snd":"knock_brush.mp3", + // "collapsible":false, + // "collapsible_by_click":true, + // "require_at":false, + // "mac_ssb_bounce":"", + // "mac_ssb_bullet":true, + // "win_ssb_bullet":true, + // "expand_non_media_attachments":true, + // "show_typing":true, + // "pagekeys_handled":true, + // "last_snippet_type":"", + // "display_real_names_override":0, + // "time24":false, + // "enter_is_special_in_tbt":false, + // "graphic_emoticons":false, + // "convert_emoticons":true, + // "autoplay_chat_sounds":true, + // "ss_emojis":true, + // "sidebar_behavior":"", + // "mark_msgs_read_immediately":true, + // "start_scroll_at_oldest":true, + // "snippet_editor_wrap_long_lines":false, + // "ls_disabled":false, + // "sidebar_theme":"default", + // "sidebar_theme_custom_values":"", + // "f_key_search":false, + // "k_key_omnibox":true, + // "speak_growls":false, + // "mac_speak_voice":"com.apple.speech.synthesis.voice.Alex", + // "mac_speak_speed":250, + // "comma_key_prefs":false, + // "at_channel_suppressed_channels":"", + // "push_at_channel_suppressed_channels":"", + // "prompted_for_email_disabling":false, + // "full_text_extracts":false, + // "no_text_in_notifications":false, + // "muted_channels":"", + // "no_macssb1_banner":false, + // "privacy_policy_seen":true, + // "search_exclude_bots":false, + // "fuzzy_matching":false +} + +// UserDetails contains user details coming in the initial response from StartRTM +type UserDetails struct { + ID string `json:"id"` + Name string `json:"name"` + Created JSONTime `json:"created"` + ManualPresence string `json:"manual_presence"` + Prefs UserPrefs `json:"prefs"` +} + +// JSONTime exists so that we can have a String method converting the date +type JSONTime int64 + +// String converts the unix timestamp into a string +func (t JSONTime) String() string { + tm := t.Time() + return fmt.Sprintf("\"%s\"", tm.Format("Mon Jan _2")) +} + +// Time returns a `time.Time` representation of this value. +func (t JSONTime) Time() time.Time { + return time.Unix(int64(t), 0) +} + +// Team contains details about a team +type Team struct { + ID string `json:"id"` + Name string `json:"name"` + Domain string `json:"domain"` +} + +// Icons XXX: needs further investigation +type Icons struct { + Image36 string `json:"image_36,omitempty"` + Image48 string `json:"image_48,omitempty"` + Image72 string `json:"image_72,omitempty"` +} + +// Info contains various details about Users, Channels, Bots and the authenticated user. +// It is returned by StartRTM or included in the "ConnectedEvent" RTM event. +type Info struct { + URL string `json:"url,omitempty"` + User *UserDetails `json:"self,omitempty"` + Team *Team `json:"team,omitempty"` + Users []User `json:"users,omitempty"` + Channels []Channel `json:"channels,omitempty"` + Groups []Group `json:"groups,omitempty"` + Bots []Bot `json:"bots,omitempty"` + IMs []IM `json:"ims,omitempty"` +} + +type infoResponseFull struct { + Info + WebResponse +} + +// GetBotByID returns a bot given a bot id +func (info Info) GetBotByID(botID string) *Bot { + for _, bot := range info.Bots { + if bot.ID == botID { + return &bot + } + } + return nil +} + +// GetUserByID returns a user given a user id +func (info Info) GetUserByID(userID string) *User { + for _, user := range info.Users { + if user.ID == userID { + return &user + } + } + return nil +} + +// GetChannelByID returns a channel given a channel id +func (info Info) GetChannelByID(channelID string) *Channel { + for _, channel := range info.Channels { + if channel.ID == channelID { + return &channel + } + } + return nil +} + +// GetGroupByID returns a group given a group id +func (info Info) GetGroupByID(groupID string) *Group { + for _, group := range info.Groups { + if group.ID == groupID { + return &group + } + } + return nil +} + +// GetIMByID returns an IM given an IM id +func (info Info) GetIMByID(imID string) *IM { + for _, im := range info.IMs { + if im.ID == imID { + return &im + } + } + return nil +} diff --git a/vendor/github.com/nlopes/slack/item.go b/vendor/github.com/nlopes/slack/item.go new file mode 100644 index 00000000..89af4eb1 --- /dev/null +++ b/vendor/github.com/nlopes/slack/item.go @@ -0,0 +1,75 @@ +package slack + +const ( + TYPE_MESSAGE = "message" + TYPE_FILE = "file" + TYPE_FILE_COMMENT = "file_comment" + TYPE_CHANNEL = "channel" + TYPE_IM = "im" + TYPE_GROUP = "group" +) + +// Item is any type of slack message - message, file, or file comment. +type Item struct { + Type string `json:"type"` + Channel string `json:"channel,omitempty"` + Message *Message `json:"message,omitempty"` + File *File `json:"file,omitempty"` + Comment *Comment `json:"comment,omitempty"` + Timestamp string `json:"ts,omitempty"` +} + +// NewMessageItem turns a message on a channel into a typed message struct. +func NewMessageItem(ch string, m *Message) Item { + return Item{Type: TYPE_MESSAGE, Channel: ch, Message: m} +} + +// NewFileItem turns a file into a typed file struct. +func NewFileItem(f *File) Item { + return Item{Type: TYPE_FILE, File: f} +} + +// NewFileCommentItem turns a file and comment into a typed file_comment struct. +func NewFileCommentItem(f *File, c *Comment) Item { + return Item{Type: TYPE_FILE_COMMENT, File: f, Comment: c} +} + +// NewChannelItem turns a channel id into a typed channel struct. +func NewChannelItem(ch string) Item { + return Item{Type: TYPE_CHANNEL, Channel: ch} +} + +// NewIMItem turns a channel id into a typed im struct. +func NewIMItem(ch string) Item { + return Item{Type: TYPE_IM, Channel: ch} +} + +// NewGroupItem turns a channel id into a typed group struct. +func NewGroupItem(ch string) Item { + return Item{Type: TYPE_GROUP, Channel: ch} +} + +// ItemRef is a reference to a message of any type. One of FileID, +// CommentId, or the combination of ChannelId and Timestamp must be +// specified. +type ItemRef struct { + Channel string `json:"channel"` + Timestamp string `json:"timestamp"` + File string `json:"file"` + Comment string `json:"file_comment"` +} + +// NewRefToMessage initializes a reference to to a message. +func NewRefToMessage(channel, timestamp string) ItemRef { + return ItemRef{Channel: channel, Timestamp: timestamp} +} + +// NewRefToFile initializes a reference to a file. +func NewRefToFile(file string) ItemRef { + return ItemRef{File: file} +} + +// NewRefToComment initializes a reference to a file comment. +func NewRefToComment(comment string) ItemRef { + return ItemRef{Comment: comment} +} diff --git a/vendor/github.com/nlopes/slack/item_test.go b/vendor/github.com/nlopes/slack/item_test.go new file mode 100644 index 00000000..e1c969cd --- /dev/null +++ b/vendor/github.com/nlopes/slack/item_test.go @@ -0,0 +1,125 @@ +package slack + +import "testing" + +func TestNewMessageItem(t *testing.T) { + c := "C1" + m := &Message{} + mi := NewMessageItem(c, m) + if mi.Type != TYPE_MESSAGE { + t.Errorf("want Type %s, got %s", mi.Type, TYPE_MESSAGE) + } + if mi.Channel != c { + t.Errorf("got Channel %s, want %s", mi.Channel, c) + } + if mi.Message != m { + t.Errorf("got Message %v, want %v", mi.Message, m) + } +} + +func TestNewFileItem(t *testing.T) { + f := &File{} + fi := NewFileItem(f) + if fi.Type != TYPE_FILE { + t.Errorf("got Type %s, want %s", fi.Type, TYPE_FILE) + } + if fi.File != f { + t.Errorf("got File %v, want %v", fi.File, f) + } +} + +func TestNewFileCommentItem(t *testing.T) { + f := &File{} + c := &Comment{} + fci := NewFileCommentItem(f, c) + if fci.Type != TYPE_FILE_COMMENT { + t.Errorf("got Type %s, want %s", fci.Type, TYPE_FILE_COMMENT) + } + if fci.File != f { + t.Errorf("got File %v, want %v", fci.File, f) + } + if fci.Comment != c { + t.Errorf("got Comment %v, want %v", fci.Comment, c) + } +} + +func TestNewChannelItem(t *testing.T) { + c := "C1" + ci := NewChannelItem(c) + if ci.Type != TYPE_CHANNEL { + t.Errorf("got Type %s, want %s", ci.Type, TYPE_CHANNEL) + } + if ci.Channel != "C1" { + t.Errorf("got Channel %v, want %v", ci.Channel, "C1") + } +} + +func TestNewIMItem(t *testing.T) { + c := "D1" + ci := NewIMItem(c) + if ci.Type != TYPE_IM { + t.Errorf("got Type %s, want %s", ci.Type, TYPE_IM) + } + if ci.Channel != "D1" { + t.Errorf("got Channel %v, want %v", ci.Channel, "D1") + } +} + +func TestNewGroupItem(t *testing.T) { + c := "G1" + ci := NewGroupItem(c) + if ci.Type != TYPE_GROUP { + t.Errorf("got Type %s, want %s", ci.Type, TYPE_GROUP) + } + if ci.Channel != "G1" { + t.Errorf("got Channel %v, want %v", ci.Channel, "G1") + } +} + +func TestNewRefToMessage(t *testing.T) { + ref := NewRefToMessage("chan", "ts") + if got, want := ref.Channel, "chan"; got != want { + t.Errorf("Channel got %s, want %s", got, want) + } + if got, want := ref.Timestamp, "ts"; got != want { + t.Errorf("Timestamp got %s, want %s", got, want) + } + if got, want := ref.File, ""; got != want { + t.Errorf("File got %s, want %s", got, want) + } + if got, want := ref.Comment, ""; got != want { + t.Errorf("Comment got %s, want %s", got, want) + } +} + +func TestNewRefToFile(t *testing.T) { + ref := NewRefToFile("file") + if got, want := ref.Channel, ""; got != want { + t.Errorf("Channel got %s, want %s", got, want) + } + if got, want := ref.Timestamp, ""; got != want { + t.Errorf("Timestamp got %s, want %s", got, want) + } + if got, want := ref.File, "file"; got != want { + t.Errorf("File got %s, want %s", got, want) + } + if got, want := ref.Comment, ""; got != want { + t.Errorf("Comment got %s, want %s", got, want) + } +} + +func TestNewRefToComment(t *testing.T) { + ref := NewRefToComment("file_comment") + if got, want := ref.Channel, ""; got != want { + t.Errorf("Channel got %s, want %s", got, want) + } + if got, want := ref.Timestamp, ""; got != want { + t.Errorf("Timestamp got %s, want %s", got, want) + } + if got, want := ref.File, ""; got != want { + t.Errorf("File got %s, want %s", got, want) + } + if got, want := ref.Comment, "file_comment"; got != want { + t.Errorf("Comment got %s, want %s", got, want) + } +} diff --git a/vendor/github.com/nlopes/slack/messageID.go b/vendor/github.com/nlopes/slack/messageID.go new file mode 100644 index 00000000..a17472b4 --- /dev/null +++ b/vendor/github.com/nlopes/slack/messageID.go @@ -0,0 +1,30 @@ +package slack + +import "sync" + +// IDGenerator provides an interface for generating integer ID values. +type IDGenerator interface { + Next() int +} + +// NewSafeID returns a new instance of an IDGenerator which is safe for +// concurrent use by multiple goroutines. +func NewSafeID(startID int) IDGenerator { + return &safeID{ + nextID: startID, + mutex: &sync.Mutex{}, + } +} + +type safeID struct { + nextID int + mutex *sync.Mutex +} + +func (s *safeID) Next() int { + s.mutex.Lock() + defer s.mutex.Unlock() + id := s.nextID + s.nextID++ + return id +} diff --git a/vendor/github.com/nlopes/slack/messages.go b/vendor/github.com/nlopes/slack/messages.go new file mode 100644 index 00000000..39f0d6b1 --- /dev/null +++ b/vendor/github.com/nlopes/slack/messages.go @@ -0,0 +1,144 @@ +package slack + +// OutgoingMessage is used for the realtime API, and seems incomplete. +type OutgoingMessage struct { + ID int `json:"id"` + Channel string `json:"channel,omitempty"` + Text string `json:"text,omitempty"` + Type string `json:"type,omitempty"` + ThreadTimestamp string `json:"thread_ts,omitempty"` +} + +// Message is an auxiliary type to allow us to have a message containing sub messages +type Message struct { + Msg + SubMessage *Msg `json:"message,omitempty"` +} + +// Msg contains information about a slack message +type Msg struct { + // Basic Message + Type string `json:"type,omitempty"` + Channel string `json:"channel,omitempty"` + User string `json:"user,omitempty"` + Text string `json:"text,omitempty"` + Timestamp string `json:"ts,omitempty"` + ThreadTimestamp string `json:"thread_ts,omitempty"` + IsStarred bool `json:"is_starred,omitempty"` + PinnedTo []string `json:"pinned_to, omitempty"` + Attachments []Attachment `json:"attachments,omitempty"` + Edited *Edited `json:"edited,omitempty"` + + // Message Subtypes + SubType string `json:"subtype,omitempty"` + + // Hidden Subtypes + Hidden bool `json:"hidden,omitempty"` // message_changed, message_deleted, unpinned_item + DeletedTimestamp string `json:"deleted_ts,omitempty"` // message_deleted + EventTimestamp string `json:"event_ts,omitempty"` + + // bot_message (https://api.slack.com/events/message/bot_message) + BotID string `json:"bot_id,omitempty"` + Username string `json:"username,omitempty"` + Icons *Icon `json:"icons,omitempty"` + + // channel_join, group_join + Inviter string `json:"inviter,omitempty"` + + // channel_topic, group_topic + Topic string `json:"topic,omitempty"` + + // channel_purpose, group_purpose + Purpose string `json:"purpose,omitempty"` + + // channel_name, group_name + Name string `json:"name,omitempty"` + OldName string `json:"old_name,omitempty"` + + // channel_archive, group_archive + Members []string `json:"members,omitempty"` + + // channels.replies, groups.replies, im.replies, mpim.replies + ReplyCount int `json:"reply_count,omitempty"` + Replies []Reply `json:"replies,omitempty"` + ParentUserId string `json:"parent_user_id,omitempty"` + + // file_share, file_comment, file_mention + File *File `json:"file,omitempty"` + + // file_share + Upload bool `json:"upload,omitempty"` + + // file_comment + Comment *Comment `json:"comment,omitempty"` + + // pinned_item + ItemType string `json:"item_type,omitempty"` + + // https://api.slack.com/rtm + ReplyTo int `json:"reply_to,omitempty"` + Team string `json:"team,omitempty"` + + // reactions + Reactions []ItemReaction `json:"reactions,omitempty"` +} + +// Icon is used for bot messages +type Icon struct { + IconURL string `json:"icon_url,omitempty"` + IconEmoji string `json:"icon_emoji,omitempty"` +} + +// Edited indicates that a message has been edited. +type Edited struct { + User string `json:"user,omitempty"` + Timestamp string `json:"ts,omitempty"` +} + +// Reply contains information about a reply for a thread +type Reply struct { + User string `json:"user,omitempty"` + Timestamp string `json:"ts,omitempty"` +} + +// Event contains the event type +type Event struct { + Type string `json:"type,omitempty"` +} + +// Ping contains information about a Ping Event +type Ping struct { + ID int `json:"id"` + Type string `json:"type"` +} + +// Pong contains information about a Pong Event +type Pong struct { + Type string `json:"type"` + ReplyTo int `json:"reply_to"` +} + +// NewOutgoingMessage prepares an OutgoingMessage that the user can +// use to send a message. Use this function to properly set the +// messageID. +func (rtm *RTM) NewOutgoingMessage(text string, channel string) *OutgoingMessage { + id := rtm.idGen.Next() + return &OutgoingMessage{ + ID: id, + Type: "message", + Channel: channel, + Text: text, + } +} + +// NewTypingMessage prepares an OutgoingMessage that the user can +// use to send as a typing indicator. Use this function to properly set the +// messageID. +func (rtm *RTM) NewTypingMessage(channel string) *OutgoingMessage { + id := rtm.idGen.Next() + return &OutgoingMessage{ + ID: id, + Type: "typing", + Channel: channel, + } +} diff --git a/vendor/github.com/nlopes/slack/messages_test.go b/vendor/github.com/nlopes/slack/messages_test.go new file mode 100644 index 00000000..acdc020a --- /dev/null +++ b/vendor/github.com/nlopes/slack/messages_test.go @@ -0,0 +1,814 @@ +package slack + +import ( + "encoding/json" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" +) + +var simpleMessage = `{ + "type": "message", + "channel": "C2147483705", + "user": "U2147483697", + "text": "Hello world", + "ts": "1355517523.000005" +}` + +func unmarshalMessage(j string) (*Message, error) { + message := &Message{} + if err := json.Unmarshal([]byte(j), &message); err != nil { + return nil, err + } + return message, nil +} + +func TestSimpleMessage(t *testing.T) { + message, err := unmarshalMessage(simpleMessage) + assert.Nil(t, err) + assert.NotNil(t, message) + assert.Equal(t, "message", message.Type) + assert.Equal(t, "C2147483705", message.Channel) + assert.Equal(t, "U2147483697", message.User) + assert.Equal(t, "Hello world", message.Text) + assert.Equal(t, "1355517523.000005", message.Timestamp) +} + +var starredMessage = `{ + "text": "is testing", + "type": "message", + "subtype": "me_message", + "user": "U2147483697", + "ts": "1433314126.000003", + "is_starred": true +}` + +func TestStarredMessage(t *testing.T) { + message, err := unmarshalMessage(starredMessage) + assert.Nil(t, err) + assert.NotNil(t, message) + assert.Equal(t, "is testing", message.Text) + assert.Equal(t, "message", message.Type) + assert.Equal(t, "me_message", message.SubType) + assert.Equal(t, "U2147483697", message.User) + assert.Equal(t, "1433314126.000003", message.Timestamp) + assert.Equal(t, true, message.IsStarred) +} + +var editedMessage = `{ + "type": "message", + "user": "U2147483697", + "text": "hello edited", + "edited": { + "user": "U2147483697", + "ts": "1433314416.000000" + }, + "ts": "1433314408.000004" +}` + +func TestEditedMessage(t *testing.T) { + message, err := unmarshalMessage(editedMessage) + assert.Nil(t, err) + assert.NotNil(t, message) + assert.Equal(t, "message", message.Type) + assert.Equal(t, "U2147483697", message.User) + assert.Equal(t, "hello edited", message.Text) + assert.NotNil(t, message.Edited) + assert.Equal(t, "U2147483697", message.Edited.User) + assert.Equal(t, "1433314416.000000", message.Edited.Timestamp) + assert.Equal(t, "1433314408.000004", message.Timestamp) +} + +var uploadedFile = `{ + "type": "message", + "subtype": "file_share", + "text": "<@U2147483697|tester> uploaded a file: and commented: test comment here", + "file": { + "id": "abc", + "created": 1433314757, + "timestamp": 1433314757, + "name": "test.txt", + "title": "test.txt", + "mimetype": "text\/plain", + "filetype": "text", + "pretty_type": "Plain Text", + "user": "U2147483697", + "editable": true, + "size": 5, + "mode": "snippet", + "is_external": false, + "external_type": "", + "is_public": true, + "public_url_shared": false, + "url": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/test.txt", + "url_download": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/download\/test.txt", + "url_private": "https:\/\/files.slack.com\/files-pri\/abc-def\/test.txt", + "url_private_download": "https:\/\/files.slack.com\/files-pri\/abc-def\/download\/test.txt", + "permalink": "https:\/\/test.slack.com\/files\/tester\/abc\/test.txt", + "permalink_public": "https:\/\/slack-files.com\/abc-def-ghi", + "edit_link": "https:\/\/test.slack.com\/files\/tester\/abc\/test.txt\/edit", + "preview": "test\n", + "preview_highlight": "
test<\/pre><\/div>\n
<\/pre><\/div>\n<\/div>",
+        "lines": 2,
+        "lines_more": 0,
+        "channels": [
+            "C2147483705"
+        ],
+        "groups": [],
+        "ims": [],
+        "comments_count": 1,
+        "initial_comment": {
+            "id": "Fc066YLGKH",
+            "created": 1433314757,
+            "timestamp": 1433314757,
+            "user": "U2147483697",
+            "comment": "test comment here"
+        }
+    },
+    "user": "U2147483697",
+    "upload": true,
+    "ts": "1433314757.000006"
+}`
+
+func TestUploadedFile(t *testing.T) {
+	message, err := unmarshalMessage(uploadedFile)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "file_share", message.SubType)
+	assert.Equal(t, "<@U2147483697|tester> uploaded a file:  and commented: test comment here", message.Text)
+	// TODO: Assert File
+	assert.Equal(t, "U2147483697", message.User)
+	assert.True(t, message.Upload)
+	assert.Equal(t, "1433314757.000006", message.Timestamp)
+}
+
+var testPost = `{
+    "type": "message",
+    "subtype": "file_share",
+    "text": "<@U2147483697|tester> shared a file: ",
+    "file": {
+        "id": "abc",
+        "created": 1433315398,
+        "timestamp": 1433315398,
+        "name": "test_post",
+        "title": "test post",
+        "mimetype": "text\/plain",
+        "filetype": "post",
+        "pretty_type": "Post",
+        "user": "U2147483697",
+        "editable": true,
+        "size": 14,
+        "mode": "post",
+        "is_external": false,
+        "external_type": "",
+        "is_public": true,
+        "public_url_shared": false,
+        "url": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/test_post",
+        "url_download": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/download\/test_post",
+        "url_private": "https:\/\/files.slack.com\/files-pri\/abc-def\/test_post",
+        "url_private_download": "https:\/\/files.slack.com\/files-pri\/abc-def\/download\/test_post",
+        "permalink": "https:\/\/test.slack.com\/files\/tester\/abc\/test_post",
+        "permalink_public": "https:\/\/slack-files.com\/abc-def-ghi",
+        "edit_link": "https:\/\/test.slack.com\/files\/tester\/abc\/test_post\/edit",
+        "preview": "test post body",
+        "channels": [
+            "C2147483705"
+        ],
+        "groups": [],
+        "ims": [],
+        "comments_count": 1
+    },
+    "user": "U2147483697",
+    "upload": false,
+    "ts": "1433315416.000008"
+}`
+
+func TestPost(t *testing.T) {
+	message, err := unmarshalMessage(testPost)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "file_share", message.SubType)
+	assert.Equal(t, "<@U2147483697|tester> shared a file: ", message.Text)
+	// TODO: Assert File
+	assert.Equal(t, "U2147483697", message.User)
+	assert.False(t, message.Upload)
+	assert.Equal(t, "1433315416.000008", message.Timestamp)
+}
+
+var testComment = `{
+    "type": "message",
+    "subtype": "file_comment",
+    "text": "<@U2147483697|tester> commented on <@U2147483697|tester>'s file : another comment",
+    "file": {
+        "id": "abc",
+        "created": 1433315398,
+        "timestamp": 1433315398,
+        "name": "test_post",
+        "title": "test post",
+        "mimetype": "text\/plain",
+        "filetype": "post",
+        "pretty_type": "Post",
+        "user": "U2147483697",
+        "editable": true,
+        "size": 14,
+        "mode": "post",
+        "is_external": false,
+        "external_type": "",
+        "is_public": true,
+        "public_url_shared": false,
+        "url": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/test_post",
+        "url_download": "https:\/\/slack-files.com\/files-pub\/abc-def-ghi\/download\/test_post",
+        "url_private": "https:\/\/files.slack.com\/files-pri\/abc-def\/test_post",
+        "url_private_download": "https:\/\/files.slack.com\/files-pri\/abc-def\/download\/test_post",
+        "permalink": "https:\/\/test.slack.com\/files\/tester\/abc\/test_post",
+        "permalink_public": "https:\/\/slack-files.com\/abc-def-ghi",
+        "edit_link": "https:\/\/test.slack.com\/files\/tester\/abc\/test_post\/edit",
+        "preview": "test post body",
+        "channels": [
+            "C2147483705"
+        ],
+        "groups": [],
+        "ims": [],
+        "comments_count": 2
+    },
+    "comment": {
+        "id": "xyz",
+        "created": 1433316360,
+        "timestamp": 1433316360,
+        "user": "U2147483697",
+        "comment": "another comment"
+    },
+    "ts": "1433316360.000009"
+}`
+
+func TestComment(t *testing.T) {
+	message, err := unmarshalMessage(testComment)
+	fmt.Println(err)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "file_comment", message.SubType)
+	assert.Equal(t, "<@U2147483697|tester> commented on <@U2147483697|tester>'s file : another comment", message.Text)
+	// TODO: Assert File
+	// TODO: Assert Comment
+	assert.Equal(t, "1433316360.000009", message.Timestamp)
+}
+
+var botMessage = `{
+    "type": "message",
+    "subtype": "bot_message",
+    "ts": "1358877455.000010",
+    "text": "Pushing is the answer",
+    "bot_id": "BB12033",
+    "username": "github",
+    "icons": {}
+}`
+
+func TestBotMessage(t *testing.T) {
+	message, err := unmarshalMessage(botMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "bot_message", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "Pushing is the answer", message.Text)
+	assert.Equal(t, "BB12033", message.BotID)
+	assert.Equal(t, "github", message.Username)
+	assert.NotNil(t, message.Icons)
+	assert.Empty(t, message.Icons.IconURL)
+	assert.Empty(t, message.Icons.IconEmoji)
+}
+
+var meMessage = `{
+    "type": "message",
+    "subtype": "me_message",
+    "channel": "C2147483705",
+    "user": "U2147483697",
+    "text": "is doing that thing",
+    "ts": "1355517523.000005"
+}`
+
+func TestMeMessage(t *testing.T) {
+	message, err := unmarshalMessage(meMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "me_message", message.SubType)
+	assert.Equal(t, "C2147483705", message.Channel)
+	assert.Equal(t, "U2147483697", message.User)
+	assert.Equal(t, "is doing that thing", message.Text)
+	assert.Equal(t, "1355517523.000005", message.Timestamp)
+}
+
+var messageChangedMessage = `{
+    "type": "message",
+    "subtype": "message_changed",
+    "hidden": true,
+    "channel": "C2147483705",
+    "ts": "1358878755.000001",
+    "message": {
+        "type": "message",
+        "user": "U2147483697",
+        "text": "Hello, world!",
+        "ts": "1355517523.000005",
+        "edited": {
+            "user": "U2147483697",
+            "ts": "1358878755.000001"
+        }
+    }
+}`
+
+func TestMessageChangedMessage(t *testing.T) {
+	message, err := unmarshalMessage(messageChangedMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "message_changed", message.SubType)
+	assert.True(t, message.Hidden)
+	assert.Equal(t, "C2147483705", message.Channel)
+	assert.NotNil(t, message.SubMessage)
+	assert.Equal(t, "message", message.SubMessage.Type)
+	assert.Equal(t, "U2147483697", message.SubMessage.User)
+	assert.Equal(t, "Hello, world!", message.SubMessage.Text)
+	assert.Equal(t, "1355517523.000005", message.SubMessage.Timestamp)
+	assert.NotNil(t, message.SubMessage.Edited)
+	assert.Equal(t, "U2147483697", message.SubMessage.Edited.User)
+	assert.Equal(t, "1358878755.000001", message.SubMessage.Edited.Timestamp)
+	assert.Equal(t, "1358878755.000001", message.Timestamp)
+}
+
+var messageDeletedMessage = `{
+    "type": "message",
+    "subtype": "message_deleted",
+    "hidden": true,
+    "channel": "C2147483705",
+    "ts": "1358878755.000001",
+    "deleted_ts": "1358878749.000002"
+}`
+
+func TestMessageDeletedMessage(t *testing.T) {
+	message, err := unmarshalMessage(messageDeletedMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "message_deleted", message.SubType)
+	assert.True(t, message.Hidden)
+	assert.Equal(t, "C2147483705", message.Channel)
+	assert.Equal(t, "1358878755.000001", message.Timestamp)
+	assert.Equal(t, "1358878749.000002", message.DeletedTimestamp)
+}
+
+var channelJoinMessage = `{
+    "type": "message",
+    "subtype": "channel_join",
+    "ts": "1358877458.000011",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has joined the channel"
+}`
+
+func TestChannelJoinMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelJoinMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_join", message.SubType)
+	assert.Equal(t, "1358877458.000011", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has joined the channel", message.Text)
+}
+
+var channelJoinInvitedMessage = `{
+    "type": "message",
+    "subtype": "channel_join",
+    "ts": "1358877458.000011",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has joined the channel",
+		"inviter": "U2147483829"
+}`
+
+func TestChannelJoinInvitedMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelJoinInvitedMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_join", message.SubType)
+	assert.Equal(t, "1358877458.000011", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has joined the channel", message.Text)
+	assert.Equal(t, "U2147483829", message.Inviter)
+}
+
+var channelLeaveMessage = `{
+    "type": "message",
+    "subtype": "channel_leave",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has left the channel"
+}`
+
+func TestChannelLeaveMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelLeaveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_leave", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has left the channel", message.Text)
+}
+
+var channelTopicMessage = `{
+    "type": "message",
+    "subtype": "channel_topic",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "topic": "hello world",
+    "text": "<@U2147483828|cal> set the channel topic: hello world"
+}`
+
+func TestChannelTopicMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelTopicMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_topic", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "hello world", message.Topic)
+	assert.Equal(t, "<@U2147483828|cal> set the channel topic: hello world", message.Text)
+}
+
+var channelPurposeMessage = `{
+    "type": "message",
+    "subtype": "channel_purpose",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "purpose": "whatever",
+    "text": "<@U2147483828|cal> set the channel purpose: whatever"
+}`
+
+func TestChannelPurposeMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelPurposeMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_purpose", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "whatever", message.Purpose)
+	assert.Equal(t, "<@U2147483828|cal> set the channel purpose: whatever", message.Text)
+}
+
+var channelNameMessage = `{
+    "type": "message",
+    "subtype": "channel_name",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "old_name": "random",
+    "name": "watercooler",
+    "text": "<@U2147483828|cal> has renamed the channel from \"random\" to \"watercooler\""
+}`
+
+func TestChannelNameMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelNameMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_name", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "random", message.OldName)
+	assert.Equal(t, "watercooler", message.Name)
+	assert.Equal(t, "<@U2147483828|cal> has renamed the channel from \"random\" to \"watercooler\"", message.Text)
+}
+
+var channelArchiveMessage = `{
+    "type": "message",
+    "subtype": "channel_archive",
+    "ts": "1361482916.000003",
+    "text": " archived the channel",
+    "user": "U1234",
+    "members": ["U1234", "U5678"]
+}`
+
+func TestChannelArchiveMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelArchiveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_archive", message.SubType)
+	assert.Equal(t, "1361482916.000003", message.Timestamp)
+	assert.Equal(t, " archived the channel", message.Text)
+	assert.Equal(t, "U1234", message.User)
+	assert.NotNil(t, message.Members)
+	assert.Equal(t, 2, len(message.Members))
+}
+
+var channelUnarchiveMessage = `{
+    "type": "message",
+    "subtype": "channel_unarchive",
+    "ts": "1361482916.000003",
+    "text": " un-archived the channel",
+    "user": "U1234"
+}`
+
+func TestChannelUnarchiveMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelUnarchiveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "channel_unarchive", message.SubType)
+	assert.Equal(t, "1361482916.000003", message.Timestamp)
+	assert.Equal(t, " un-archived the channel", message.Text)
+	assert.Equal(t, "U1234", message.User)
+}
+
+var channelRepliesParentMessage = `{
+    "type": "message",
+    "user": "U1234",
+    "text": "test",
+    "thread_ts": "1493305433.915644",
+    "reply_count": 2,
+    "replies": [
+        {
+            "user": "U5678",
+            "ts": "1493305444.920992"
+        },
+        {
+            "user": "U9012",
+            "ts": "1493305894.133936"
+        }
+    ],
+    "subscribed": true,
+    "last_read": "1493305894.133936",
+    "unread_count": 0,
+    "ts": "1493305433.915644"
+}`
+
+func TestChannelRepliesParentMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelRepliesParentMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "U1234", message.User)
+	assert.Equal(t, "test", message.Text)
+	assert.Equal(t, "1493305433.915644", message.ThreadTimestamp)
+	assert.Equal(t, 2, message.ReplyCount)
+	assert.Equal(t, "U5678", message.Replies[0].User)
+	assert.Equal(t, "1493305444.920992", message.Replies[0].Timestamp)
+	assert.Equal(t, "U9012", message.Replies[1].User)
+	assert.Equal(t, "1493305894.133936", message.Replies[1].Timestamp)
+	assert.Equal(t, "1493305433.915644", message.Timestamp)
+}
+
+var channelRepliesChildMessage = `{
+    "type": "message",
+    "user": "U5678",
+    "text": "foo",
+    "thread_ts": "1493305433.915644",
+    "parent_user_id": "U1234",
+    "ts": "1493305444.920992"
+}`
+
+func TestChannelRepliesChildMessage(t *testing.T) {
+	message, err := unmarshalMessage(channelRepliesChildMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "U5678", message.User)
+	assert.Equal(t, "foo", message.Text)
+	assert.Equal(t, "1493305433.915644", message.ThreadTimestamp)
+	assert.Equal(t, "U1234", message.ParentUserId)
+	assert.Equal(t, "1493305444.920992", message.Timestamp)
+}
+
+var groupJoinMessage = `{
+    "type": "message",
+    "subtype": "group_join",
+    "ts": "1358877458.000011",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has joined the group"
+}`
+
+func TestGroupJoinMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupJoinMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_join", message.SubType)
+	assert.Equal(t, "1358877458.000011", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has joined the group", message.Text)
+}
+
+var groupJoinInvitedMessage = `{
+    "type": "message",
+    "subtype": "group_join",
+    "ts": "1358877458.000011",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has joined the group",
+		"inviter": "U2147483829"
+}`
+
+func TestGroupJoinInvitedMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupJoinInvitedMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_join", message.SubType)
+	assert.Equal(t, "1358877458.000011", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has joined the group", message.Text)
+	assert.Equal(t, "U2147483829", message.Inviter)
+}
+
+var groupLeaveMessage = `{
+    "type": "message",
+    "subtype": "group_leave",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "text": "<@U2147483828|cal> has left the group"
+}`
+
+func TestGroupLeaveMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupLeaveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_leave", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "<@U2147483828|cal> has left the group", message.Text)
+}
+
+var groupTopicMessage = `{
+    "type": "message",
+    "subtype": "group_topic",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "topic": "hello world",
+    "text": "<@U2147483828|cal> set the group topic: hello world"
+}`
+
+func TestGroupTopicMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupTopicMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_topic", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "hello world", message.Topic)
+	assert.Equal(t, "<@U2147483828|cal> set the group topic: hello world", message.Text)
+}
+
+var groupPurposeMessage = `{
+    "type": "message",
+    "subtype": "group_purpose",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "purpose": "whatever",
+    "text": "<@U2147483828|cal> set the group purpose: whatever"
+}`
+
+func TestGroupPurposeMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupPurposeMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_purpose", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "whatever", message.Purpose)
+	assert.Equal(t, "<@U2147483828|cal> set the group purpose: whatever", message.Text)
+}
+
+var groupNameMessage = `{
+    "type": "message",
+    "subtype": "group_name",
+    "ts": "1358877455.000010",
+    "user": "U2147483828",
+    "old_name": "random",
+    "name": "watercooler",
+    "text": "<@U2147483828|cal> has renamed the group from \"random\" to \"watercooler\""
+}`
+
+func TestGroupNameMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupNameMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_name", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "U2147483828", message.User)
+	assert.Equal(t, "random", message.OldName)
+	assert.Equal(t, "watercooler", message.Name)
+	assert.Equal(t, "<@U2147483828|cal> has renamed the group from \"random\" to \"watercooler\"", message.Text)
+}
+
+var groupArchiveMessage = `{
+    "type": "message",
+    "subtype": "group_archive",
+    "ts": "1361482916.000003",
+    "text": " archived the group",
+    "user": "U1234",
+    "members": ["U1234", "U5678"]
+}`
+
+func TestGroupArchiveMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupArchiveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_archive", message.SubType)
+	assert.Equal(t, "1361482916.000003", message.Timestamp)
+	assert.Equal(t, " archived the group", message.Text)
+	assert.Equal(t, "U1234", message.User)
+	assert.NotNil(t, message.Members)
+	assert.Equal(t, 2, len(message.Members))
+}
+
+var groupUnarchiveMessage = `{
+    "type": "message",
+    "subtype": "group_unarchive",
+    "ts": "1361482916.000003",
+    "text": " un-archived the group",
+    "user": "U1234"
+}`
+
+func TestGroupUnarchiveMessage(t *testing.T) {
+	message, err := unmarshalMessage(groupUnarchiveMessage)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "group_unarchive", message.SubType)
+	assert.Equal(t, "1361482916.000003", message.Timestamp)
+	assert.Equal(t, " un-archived the group", message.Text)
+	assert.Equal(t, "U1234", message.User)
+}
+
+var fileShareMessage = `{
+    "type": "message",
+    "subtype": "file_share",
+    "ts": "1358877455.000010",
+    "text": "<@cal> uploaded a file: ",
+    "file": {
+        "id" : "F2147483862",
+        "created" : 1356032811,
+        "timestamp" : 1356032811,
+        "name" : "file.htm",
+        "title" : "My HTML file",
+        "mimetype" : "text\/plain",
+        "filetype" : "text",
+        "pretty_type": "Text",
+        "user" : "U2147483697",
+        "mode" : "hosted",
+        "editable" : true,
+        "is_external": false,
+        "external_type": "",
+        "size" : 12345,
+        "url": "https:\/\/slack-files.com\/files-pub\/T024BE7LD-F024BERPE-09acb6\/1.png",
+        "url_download": "https:\/\/slack-files.com\/files-pub\/T024BE7LD-F024BERPE-09acb6\/download\/1.png",
+        "url_private": "https:\/\/slack.com\/files-pri\/T024BE7LD-F024BERPE\/1.png",
+        "url_private_download": "https:\/\/slack.com\/files-pri\/T024BE7LD-F024BERPE\/download\/1.png",
+        "thumb_64": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_64.png",
+        "thumb_80": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_80.png",
+        "thumb_360": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_360.png",
+        "thumb_360_gif": "https:\/\/slack-files.com\/files-tmb\/T024BE7LD-F024BERPE-c66246\/1_360.gif",
+        "thumb_360_w": 100,
+        "thumb_360_h": 100,
+        "permalink" : "https:\/\/tinyspeck.slack.com\/files\/cal\/F024BERPE\/1.png",
+        "edit_link" : "https:\/\/tinyspeck.slack.com\/files\/cal\/F024BERPE\/1.png/edit",
+        "preview" : "<!DOCTYPE html>\n<html>\n<meta charset='utf-8'>",
+        "preview_highlight" : "<div class=\"sssh-code\"><div class=\"sssh-line\"><pre><!DOCTYPE html...",
+        "lines" : 123,
+        "lines_more": 118,
+        "is_public": true,
+        "public_url_shared": false,
+        "channels": ["C024BE7LT"],
+        "groups": ["G12345"],
+        "ims": ["D12345"],
+        "initial_comment": {},
+        "num_stars": 7,
+        "is_starred": true
+    },
+    "user": "U2147483697",
+    "upload": true
+}`
+
+func TestFileShareMessage(t *testing.T) {
+	message, err := unmarshalMessage(fileShareMessage)
+	fmt.Println(err)
+	assert.Nil(t, err)
+	assert.NotNil(t, message)
+	assert.Equal(t, "message", message.Type)
+	assert.Equal(t, "file_share", message.SubType)
+	assert.Equal(t, "1358877455.000010", message.Timestamp)
+	assert.Equal(t, "<@cal> uploaded a file: ", message.Text)
+	assert.Equal(t, "U2147483697", message.User)
+	assert.True(t, message.Upload)
+	assert.NotNil(t, message.File)
+}
diff --git a/vendor/github.com/nlopes/slack/misc.go b/vendor/github.com/nlopes/slack/misc.go
new file mode 100644
index 00000000..9b5e7c5f
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/misc.go
@@ -0,0 +1,179 @@
+package slack
+
+import (
+	"bytes"
+	"encoding/json"
+	"fmt"
+	"io"
+	"io/ioutil"
+	"mime/multipart"
+	"net/http"
+	"net/http/httputil"
+	"net/url"
+	"os"
+	"path/filepath"
+	"strings"
+	"time"
+)
+
+// HTTPRequester defines the minimal interface needed for an http.Client to be implemented.
+//
+// Use it in conjunction with the SetHTTPClient function to allow for other capabilities
+// like a tracing http.Client
+type HTTPRequester interface {
+	Do(*http.Request) (*http.Response, error)
+}
+
+var customHTTPClient HTTPRequester
+
+// HTTPClient sets a custom http.Client
+// deprecated: in favor of SetHTTPClient()
+var HTTPClient = &http.Client{}
+
+type WebResponse struct {
+	Ok    bool      `json:"ok"`
+	Error *WebError `json:"error"`
+}
+
+type WebError string
+
+func (s WebError) Error() string {
+	return string(s)
+}
+
+func fileUploadReq(path, fieldname, filename string, values url.Values, r io.Reader) (*http.Request, error) {
+	body := &bytes.Buffer{}
+	wr := multipart.NewWriter(body)
+
+	ioWriter, err := wr.CreateFormFile(fieldname, filename)
+	if err != nil {
+		wr.Close()
+		return nil, err
+	}
+	_, err = io.Copy(ioWriter, r)
+	if err != nil {
+		wr.Close()
+		return nil, err
+	}
+	// Close the multipart writer or the footer won't be written
+	wr.Close()
+	req, err := http.NewRequest("POST", path, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header.Add("Content-Type", wr.FormDataContentType())
+	req.URL.RawQuery = (values).Encode()
+	return req, nil
+}
+
+func parseResponseBody(body io.ReadCloser, intf *interface{}, debug bool) error {
+	response, err := ioutil.ReadAll(body)
+	if err != nil {
+		return err
+	}
+
+	// FIXME: will be api.Debugf
+	if debug {
+		logger.Printf("parseResponseBody: %s\n", string(response))
+	}
+
+	err = json.Unmarshal(response, &intf)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func postLocalWithMultipartResponse(path, fpath, fieldname string, values url.Values, intf interface{}, debug bool) error {
+	fullpath, err := filepath.Abs(fpath)
+	if err != nil {
+		return err
+	}
+	file, err := os.Open(fullpath)
+	if err != nil {
+		return err
+	}
+	defer file.Close()
+	return postWithMultipartResponse(path, filepath.Base(fpath), fieldname, values, file, intf, debug)
+}
+
+func postWithMultipartResponse(path, name, fieldname string, values url.Values, r io.Reader, intf interface{}, debug bool) error {
+	req, err := fileUploadReq(SLACK_API+path, fieldname, name, values, r)
+	if err != nil {
+		return err
+	}
+	resp, err := getHTTPClient().Do(req)
+	if err != nil {
+		return err
+	}
+	defer resp.Body.Close()
+
+	// Slack seems to send an HTML body along with 5xx error codes. Don't parse it.
+	if resp.StatusCode != 200 {
+		logResponse(resp, debug)
+		return fmt.Errorf("Slack server error: %s.", resp.Status)
+	}
+
+	return parseResponseBody(resp.Body, &intf, debug)
+}
+
+func postForm(endpoint string, values url.Values, intf interface{}, debug bool) error {
+	reqBody := strings.NewReader(values.Encode())
+	req, err := http.NewRequest("POST", endpoint, reqBody)
+	if err != nil {
+		return err
+	}
+	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
+
+	resp, err := getHTTPClient().Do(req)
+	if err != nil {
+		return err
+	}
+	defer resp.Body.Close()
+
+	// Slack seems to send an HTML body along with 5xx error codes. Don't parse it.
+	if resp.StatusCode != 200 {
+		logResponse(resp, debug)
+		return fmt.Errorf("Slack server error: %s.", resp.Status)
+	}
+
+	return parseResponseBody(resp.Body, &intf, debug)
+}
+
+func post(path string, values url.Values, intf interface{}, debug bool) error {
+	return postForm(SLACK_API+path, values, intf, debug)
+}
+
+func parseAdminResponse(method string, teamName string, values url.Values, intf interface{}, debug bool) error {
+	endpoint := fmt.Sprintf(SLACK_WEB_API_FORMAT, teamName, method, time.Now().Unix())
+	return postForm(endpoint, values, intf, debug)
+}
+
+func logResponse(resp *http.Response, debug bool) error {
+	if debug {
+		text, err := httputil.DumpResponse(resp, true)
+		if err != nil {
+			return err
+		}
+
+		logger.Print(string(text))
+	}
+
+	return nil
+}
+
+func getHTTPClient() HTTPRequester {
+	if customHTTPClient != nil {
+		return customHTTPClient
+	}
+
+	return HTTPClient
+}
+
+// SetHTTPClient allows you to specify a custom http.Client
+// Use this instead of the package level HTTPClient variable if you want to use a custom client like the
+// Stackdriver Trace HTTPClient https://godoc.org/cloud.google.com/go/trace#HTTPClient
+func SetHTTPClient(client HTTPRequester) {
+	customHTTPClient = client
+}
diff --git a/vendor/github.com/nlopes/slack/misc_test.go b/vendor/github.com/nlopes/slack/misc_test.go
new file mode 100644
index 00000000..faf64258
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/misc_test.go
@@ -0,0 +1,85 @@
+package slack
+
+import (
+	"log"
+	"net/http"
+	"net/url"
+	"sync"
+	"testing"
+)
+
+var (
+	parseResponseOnce sync.Once
+)
+
+func parseResponseHandler(rw http.ResponseWriter, r *http.Request) {
+	rw.Header().Set("Content-Type", "application/json")
+	token := r.FormValue("token")
+	log.Println(token)
+	if token == "" {
+		rw.Write([]byte(`{"ok":false,"error":"not_authed"}`))
+		return
+	}
+	if token != validToken {
+		rw.Write([]byte(`{"ok":false,"error":"invalid_auth"}`))
+		return
+	}
+	response := []byte(`{"ok": true}`)
+	rw.Write(response)
+}
+
+func setParseResponseHandler() {
+	http.HandleFunc("/parseResponse", parseResponseHandler)
+}
+
+func TestParseResponse(t *testing.T) {
+	parseResponseOnce.Do(setParseResponseHandler)
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	values := url.Values{
+		"token": {validToken},
+	}
+	responsePartial := &SlackResponse{}
+	err := post("parseResponse", values, responsePartial, false)
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+	}
+}
+
+func TestParseResponseNoToken(t *testing.T) {
+	parseResponseOnce.Do(setParseResponseHandler)
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	values := url.Values{}
+	responsePartial := &SlackResponse{}
+	err := post("parseResponse", values, responsePartial, false)
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+	if responsePartial.Ok == true {
+		t.Errorf("Unexpected error: %s", err)
+	} else if responsePartial.Error != "not_authed" {
+		t.Errorf("got %v; want %v", responsePartial.Error, "not_authed")
+	}
+}
+
+func TestParseResponseInvalidToken(t *testing.T) {
+	parseResponseOnce.Do(setParseResponseHandler)
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	values := url.Values{
+		"token": {"whatever"},
+	}
+	responsePartial := &SlackResponse{}
+	err := post("parseResponse", values, responsePartial, false)
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+	if responsePartial.Ok == true {
+		t.Errorf("Unexpected error: %s", err)
+	} else if responsePartial.Error != "invalid_auth" {
+		t.Errorf("got %v; want %v", responsePartial.Error, "invalid_auth")
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/oauth.go b/vendor/github.com/nlopes/slack/oauth.go
new file mode 100644
index 00000000..1285abbd
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/oauth.go
@@ -0,0 +1,56 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+)
+
+type OAuthResponseIncomingWebhook struct {
+	URL              string `json:"url"`
+	Channel          string `json:"channel"`
+	ChannelID        string `json:"channel_id,omitempty"`
+	ConfigurationURL string `json:"configuration_url"`
+}
+
+type OAuthResponseBot struct {
+	BotUserID      string `json:"bot_user_id"`
+	BotAccessToken string `json:"bot_access_token"`
+}
+
+type OAuthResponse struct {
+	AccessToken     string                       `json:"access_token"`
+	Scope           string                       `json:"scope"`
+	TeamName        string                       `json:"team_name"`
+	TeamID          string                       `json:"team_id"`
+	IncomingWebhook OAuthResponseIncomingWebhook `json:"incoming_webhook"`
+	Bot             OAuthResponseBot             `json:"bot"`
+	UserID          string                       `json:"user_id,omitempty"`
+	SlackResponse
+}
+
+// GetOAuthToken retrieves an AccessToken
+func GetOAuthToken(clientID, clientSecret, code, redirectURI string, debug bool) (accessToken string, scope string, err error) {
+	response, err := GetOAuthResponse(clientID, clientSecret, code, redirectURI, debug)
+	if err != nil {
+		return "", "", err
+	}
+	return response.AccessToken, response.Scope, nil
+}
+
+func GetOAuthResponse(clientID, clientSecret, code, redirectURI string, debug bool) (resp *OAuthResponse, err error) {
+	values := url.Values{
+		"client_id":     {clientID},
+		"client_secret": {clientSecret},
+		"code":          {code},
+		"redirect_uri":  {redirectURI},
+	}
+	response := &OAuthResponse{}
+	err = post("oauth.access", values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+}
diff --git a/vendor/github.com/nlopes/slack/pagination.go b/vendor/github.com/nlopes/slack/pagination.go
new file mode 100644
index 00000000..87dd136a
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/pagination.go
@@ -0,0 +1,20 @@
+package slack
+
+// Paging contains paging information
+type Paging struct {
+	Count int `json:"count"`
+	Total int `json:"total"`
+	Page  int `json:"page"`
+	Pages int `json:"pages"`
+}
+
+// Pagination contains pagination information
+// This is different from Paging in that it contains additional details
+type Pagination struct {
+	TotalCount int `json:"total_count"`
+	Page       int `json:"page"`
+	PerPage    int `json:"per_page"`
+	PageCount  int `json:"page_count"`
+	First      int `json:"first"`
+	Last       int `json:"last"`
+}
diff --git a/vendor/github.com/nlopes/slack/pins.go b/vendor/github.com/nlopes/slack/pins.go
new file mode 100644
index 00000000..b95efbb6
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/pins.go
@@ -0,0 +1,79 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+)
+
+type listPinsResponseFull struct {
+	Items  []Item
+	Paging `json:"paging"`
+	SlackResponse
+}
+
+// AddPin pins an item in a channel
+func (api *Client) AddPin(channel string, item ItemRef) error {
+	values := url.Values{
+		"channel": {channel},
+		"token":   {api.config.token},
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("pins.add", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// RemovePin un-pins an item from a channel
+func (api *Client) RemovePin(channel string, item ItemRef) error {
+	values := url.Values{
+		"channel": {channel},
+		"token":   {api.config.token},
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("pins.remove", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// ListPins returns information about the items a user reacted to.
+func (api *Client) ListPins(channel string) ([]Item, *Paging, error) {
+	values := url.Values{
+		"channel": {channel},
+		"token":   {api.config.token},
+	}
+	response := &listPinsResponseFull{}
+	err := post("pins.list", values, response, api.debug)
+	if err != nil {
+		return nil, nil, err
+	}
+	if !response.Ok {
+		return nil, nil, errors.New(response.Error)
+	}
+	return response.Items, &response.Paging, nil
+}
diff --git a/vendor/github.com/nlopes/slack/pins_test.go b/vendor/github.com/nlopes/slack/pins_test.go
new file mode 100644
index 00000000..40727a88
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/pins_test.go
@@ -0,0 +1,231 @@
+package slack
+
+import (
+	"fmt"
+	"net/http"
+	"reflect"
+	"testing"
+)
+
+type pinsHandler struct {
+	gotParams map[string]string
+	response  string
+}
+
+func newPinsHandler() *pinsHandler {
+	return &pinsHandler{
+		gotParams: make(map[string]string),
+		response:  `{ "ok": true }`,
+	}
+}
+
+func (rh *pinsHandler) accumulateFormValue(k string, r *http.Request) {
+	if v := r.FormValue(k); v != "" {
+		rh.gotParams[k] = v
+	}
+}
+
+func (rh *pinsHandler) handler(w http.ResponseWriter, r *http.Request) {
+	rh.accumulateFormValue("channel", r)
+	rh.accumulateFormValue("count", r)
+	rh.accumulateFormValue("file", r)
+	rh.accumulateFormValue("file_comment", r)
+	rh.accumulateFormValue("page", r)
+	rh.accumulateFormValue("timestamp", r)
+	w.Header().Set("Content-Type", "application/json")
+	w.Write([]byte(rh.response))
+}
+
+func TestSlack_AddPin(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		channel    string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"ChannelID",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"channel": "ChannelID",
+				"file":    "FileID",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"channel":      "ChannelID",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *pinsHandler
+	http.HandleFunc("/pins.add", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newPinsHandler()
+		err := api.AddPin(test.channel, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_RemovePin(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		channel    string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"ChannelID",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"channel": "ChannelID",
+				"file":    "FileID",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"channel":      "ChannelID",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *pinsHandler
+	http.HandleFunc("/pins.remove", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newPinsHandler()
+		err := api.RemovePin(test.channel, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_ListPins(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	rh := newPinsHandler()
+	http.HandleFunc("/pins.list", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	rh.response = `{"ok": true,
+    "items": [
+        {
+            "type": "message",
+            "channel": "C1",
+            "message": {
+                "text": "hello",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    },
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file",
+            "file": {
+                "name": "toy",
+                "reactions": [
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file_comment",
+            "file": {
+                "name": "toy"
+            },
+            "comment": {
+                "comment": "cool toy",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    }
+                ]
+            }
+        }
+    ],
+    "paging": {
+        "count": 100,
+        "total": 4,
+        "page": 1,
+        "pages": 1
+    }}`
+	want := []Item{
+		NewMessageItem("C1", &Message{Msg: Msg{
+			Text: "hello",
+			Reactions: []ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		}}),
+		NewFileItem(&File{Name: "toy"}),
+		NewFileCommentItem(&File{Name: "toy"}, &Comment{Comment: "cool toy"}),
+	}
+	wantParams := map[string]string{
+		"channel": "ChannelID",
+	}
+	got, paging, err := api.ListPins("ChannelID")
+	if err != nil {
+		t.Fatalf("Unexpected error: %s", err)
+	}
+	if !reflect.DeepEqual(got, want) {
+		t.Errorf("Got Pins %#v, want %#v", got, want)
+		for i, item := range got {
+			fmt.Printf("Item %d, Type: %s\n", i, item.Type)
+			fmt.Printf("Message  %#v\n", item.Message)
+			fmt.Printf("File     %#v\n", item.File)
+			fmt.Printf("Comment  %#v\n", item.Comment)
+		}
+	}
+	if !reflect.DeepEqual(rh.gotParams, wantParams) {
+		t.Errorf("Got params %#v, want %#v", rh.gotParams, wantParams)
+	}
+	if reflect.DeepEqual(paging, Paging{}) {
+		t.Errorf("Want paging data, got empty struct")
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/reactions.go b/vendor/github.com/nlopes/slack/reactions.go
new file mode 100644
index 00000000..8769543d
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/reactions.go
@@ -0,0 +1,246 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+	"strconv"
+)
+
+// ItemReaction is the reactions that have happened on an item.
+type ItemReaction struct {
+	Name  string   `json:"name"`
+	Count int      `json:"count"`
+	Users []string `json:"users"`
+}
+
+// ReactedItem is an item that was reacted to, and the details of the
+// reactions.
+type ReactedItem struct {
+	Item
+	Reactions []ItemReaction
+}
+
+// GetReactionsParameters is the inputs to get reactions to an item.
+type GetReactionsParameters struct {
+	Full bool
+}
+
+// NewGetReactionsParameters initializes the inputs to get reactions to an item.
+func NewGetReactionsParameters() GetReactionsParameters {
+	return GetReactionsParameters{
+		Full: false,
+	}
+}
+
+type getReactionsResponseFull struct {
+	Type string
+	M    struct {
+		Reactions []ItemReaction
+	} `json:"message"`
+	F struct {
+		Reactions []ItemReaction
+	} `json:"file"`
+	FC struct {
+		Reactions []ItemReaction
+	} `json:"comment"`
+	SlackResponse
+}
+
+func (res getReactionsResponseFull) extractReactions() []ItemReaction {
+	switch res.Type {
+	case "message":
+		return res.M.Reactions
+	case "file":
+		return res.F.Reactions
+	case "file_comment":
+		return res.FC.Reactions
+	}
+	return []ItemReaction{}
+}
+
+const (
+	DEFAULT_REACTIONS_USER  = ""
+	DEFAULT_REACTIONS_COUNT = 100
+	DEFAULT_REACTIONS_PAGE  = 1
+	DEFAULT_REACTIONS_FULL  = false
+)
+
+// ListReactionsParameters is the inputs to find all reactions by a user.
+type ListReactionsParameters struct {
+	User  string
+	Count int
+	Page  int
+	Full  bool
+}
+
+// NewListReactionsParameters initializes the inputs to find all reactions
+// performed by a user.
+func NewListReactionsParameters() ListReactionsParameters {
+	return ListReactionsParameters{
+		User:  DEFAULT_REACTIONS_USER,
+		Count: DEFAULT_REACTIONS_COUNT,
+		Page:  DEFAULT_REACTIONS_PAGE,
+		Full:  DEFAULT_REACTIONS_FULL,
+	}
+}
+
+type listReactionsResponseFull struct {
+	Items []struct {
+		Type    string
+		Channel string
+		M       struct {
+			*Message
+		} `json:"message"`
+		F struct {
+			*File
+			Reactions []ItemReaction
+		} `json:"file"`
+		FC struct {
+			*Comment
+			Reactions []ItemReaction
+		} `json:"comment"`
+	}
+	Paging `json:"paging"`
+	SlackResponse
+}
+
+func (res listReactionsResponseFull) extractReactedItems() []ReactedItem {
+	items := make([]ReactedItem, len(res.Items))
+	for i, input := range res.Items {
+		item := ReactedItem{}
+		item.Type = input.Type
+		switch input.Type {
+		case "message":
+			item.Channel = input.Channel
+			item.Message = input.M.Message
+			item.Reactions = input.M.Reactions
+		case "file":
+			item.File = input.F.File
+			item.Reactions = input.F.Reactions
+		case "file_comment":
+			item.File = input.F.File
+			item.Comment = input.FC.Comment
+			item.Reactions = input.FC.Reactions
+		}
+		items[i] = item
+	}
+	return items
+}
+
+// AddReaction adds a reaction emoji to a message, file or file comment.
+func (api *Client) AddReaction(name string, item ItemRef) error {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if name != "" {
+		values.Set("name", name)
+	}
+	if item.Channel != "" {
+		values.Set("channel", string(item.Channel))
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("reactions.add", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// RemoveReaction removes a reaction emoji from a message, file or file comment.
+func (api *Client) RemoveReaction(name string, item ItemRef) error {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if name != "" {
+		values.Set("name", name)
+	}
+	if item.Channel != "" {
+		values.Set("channel", string(item.Channel))
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("reactions.remove", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// GetReactions returns details about the reactions on an item.
+func (api *Client) GetReactions(item ItemRef, params GetReactionsParameters) ([]ItemReaction, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if item.Channel != "" {
+		values.Set("channel", string(item.Channel))
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	if params.Full != DEFAULT_REACTIONS_FULL {
+		values.Set("full", strconv.FormatBool(params.Full))
+	}
+	response := &getReactionsResponseFull{}
+	if err := post("reactions.get", values, response, api.debug); err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response.extractReactions(), nil
+}
+
+// ListReactions returns information about the items a user reacted to.
+func (api *Client) ListReactions(params ListReactionsParameters) ([]ReactedItem, *Paging, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if params.User != DEFAULT_REACTIONS_USER {
+		values.Add("user", params.User)
+	}
+	if params.Count != DEFAULT_REACTIONS_COUNT {
+		values.Add("count", strconv.Itoa(params.Count))
+	}
+	if params.Page != DEFAULT_REACTIONS_PAGE {
+		values.Add("page", strconv.Itoa(params.Page))
+	}
+	if params.Full != DEFAULT_REACTIONS_FULL {
+		values.Add("full", strconv.FormatBool(params.Full))
+	}
+	response := &listReactionsResponseFull{}
+	err := post("reactions.list", values, response, api.debug)
+	if err != nil {
+		return nil, nil, err
+	}
+	if !response.Ok {
+		return nil, nil, errors.New(response.Error)
+	}
+	return response.extractReactedItems(), &response.Paging, nil
+}
diff --git a/vendor/github.com/nlopes/slack/reactions_test.go b/vendor/github.com/nlopes/slack/reactions_test.go
new file mode 100644
index 00000000..7fd41590
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/reactions_test.go
@@ -0,0 +1,376 @@
+package slack
+
+import (
+	"fmt"
+	"net/http"
+	"reflect"
+	"testing"
+)
+
+type reactionsHandler struct {
+	gotParams map[string]string
+	response  string
+}
+
+func newReactionsHandler() *reactionsHandler {
+	return &reactionsHandler{
+		gotParams: make(map[string]string),
+		response:  `{ "ok": true }`,
+	}
+}
+
+func (rh *reactionsHandler) accumulateFormValue(k string, r *http.Request) {
+	if v := r.FormValue(k); v != "" {
+		rh.gotParams[k] = v
+	}
+}
+
+func (rh *reactionsHandler) handler(w http.ResponseWriter, r *http.Request) {
+	rh.accumulateFormValue("channel", r)
+	rh.accumulateFormValue("count", r)
+	rh.accumulateFormValue("file", r)
+	rh.accumulateFormValue("file_comment", r)
+	rh.accumulateFormValue("full", r)
+	rh.accumulateFormValue("name", r)
+	rh.accumulateFormValue("page", r)
+	rh.accumulateFormValue("timestamp", r)
+	rh.accumulateFormValue("user", r)
+	w.Header().Set("Content-Type", "application/json")
+	w.Write([]byte(rh.response))
+}
+
+func TestSlack_AddReaction(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		name       string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"thumbsup",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"name":      "thumbsup",
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"thumbsup",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"name": "thumbsup",
+				"file": "FileID",
+			},
+		},
+		{
+			"thumbsup",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"name":         "thumbsup",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *reactionsHandler
+	http.HandleFunc("/reactions.add", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newReactionsHandler()
+		err := api.AddReaction(test.name, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_RemoveReaction(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		name       string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"thumbsup",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"name":      "thumbsup",
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"thumbsup",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"name": "thumbsup",
+				"file": "FileID",
+			},
+		},
+		{
+			"thumbsup",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"name":         "thumbsup",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *reactionsHandler
+	http.HandleFunc("/reactions.remove", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newReactionsHandler()
+		err := api.RemoveReaction(test.name, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_GetReactions(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		ref           ItemRef
+		params        GetReactionsParameters
+		wantParams    map[string]string
+		json          string
+		wantReactions []ItemReaction
+	}{
+		{
+			NewRefToMessage("ChannelID", "123"),
+			GetReactionsParameters{},
+			map[string]string{
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+			`{"ok": true,
+    "type": "message",
+    "message": {
+        "reactions": [
+            {
+                "name": "astonished",
+                "count": 3,
+                "users": [ "U1", "U2", "U3" ]
+            },
+            {
+                "name": "clock1",
+                "count": 3,
+                "users": [ "U1", "U2" ]
+            }
+        ]
+    }}`,
+			[]ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		},
+		{
+			NewRefToFile("FileID"),
+			GetReactionsParameters{Full: true},
+			map[string]string{
+				"file": "FileID",
+				"full": "true",
+			},
+			`{"ok": true,
+    "type": "file",
+    "file": {
+        "reactions": [
+            {
+                "name": "astonished",
+                "count": 3,
+                "users": [ "U1", "U2", "U3" ]
+            },
+            {
+                "name": "clock1",
+                "count": 3,
+                "users": [ "U1", "U2" ]
+            }
+        ]
+    }}`,
+			[]ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		},
+		{
+
+			NewRefToComment("FileCommentID"),
+			GetReactionsParameters{},
+			map[string]string{
+				"file_comment": "FileCommentID",
+			},
+			`{"ok": true,
+    "type": "file_comment",
+    "file": {},
+    "comment": {
+        "reactions": [
+            {
+                "name": "astonished",
+                "count": 3,
+                "users": [ "U1", "U2", "U3" ]
+            },
+            {
+                "name": "clock1",
+                "count": 3,
+                "users": [ "U1", "U2" ]
+            }
+        ]
+    }}`,
+			[]ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		},
+	}
+	var rh *reactionsHandler
+	http.HandleFunc("/reactions.get", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newReactionsHandler()
+		rh.response = test.json
+		got, err := api.GetReactions(test.ref, test.params)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(got, test.wantReactions) {
+			t.Errorf("%d: Got reaction %#v, want %#v", i, got, test.wantReactions)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_ListReactions(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	rh := newReactionsHandler()
+	http.HandleFunc("/reactions.list", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	rh.response = `{"ok": true,
+    "items": [
+        {
+            "type": "message",
+            "channel": "C1",
+            "message": {
+                "text": "hello",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    },
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file",
+            "file": {
+                "name": "toy",
+                "reactions": [
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file_comment",
+            "file": {
+                "name": "toy"
+            },
+            "comment": {
+                "comment": "cool toy",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    }
+                ]
+            }
+        }
+    ],
+    "paging": {
+        "count": 100,
+        "total": 4,
+        "page": 1,
+        "pages": 1
+    }}`
+	want := []ReactedItem{
+		ReactedItem{
+			Item: NewMessageItem("C1", &Message{Msg: Msg{
+				Text: "hello",
+				Reactions: []ItemReaction{
+					ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+					ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+				},
+			}}),
+			Reactions: []ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		},
+		ReactedItem{
+			Item: NewFileItem(&File{Name: "toy"}),
+			Reactions: []ItemReaction{
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		},
+		ReactedItem{
+			Item: NewFileCommentItem(&File{Name: "toy"}, &Comment{Comment: "cool toy"}),
+			Reactions: []ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+			},
+		},
+	}
+	wantParams := map[string]string{
+		"user":  "User",
+		"count": "200",
+		"page":  "2",
+		"full":  "true",
+	}
+	params := NewListReactionsParameters()
+	params.User = "User"
+	params.Count = 200
+	params.Page = 2
+	params.Full = true
+	got, paging, err := api.ListReactions(params)
+	if err != nil {
+		t.Fatalf("Unexpected error: %s", err)
+	}
+	if !reflect.DeepEqual(got, want) {
+		t.Errorf("Got reaction %#v, want %#v", got, want)
+		for i, item := range got {
+			fmt.Printf("Item %d, Type: %s\n", i, item.Type)
+			fmt.Printf("Message  %#v\n", item.Message)
+			fmt.Printf("File     %#v\n", item.File)
+			fmt.Printf("Comment  %#v\n", item.Comment)
+			fmt.Printf("Reactions %#v\n", item.Reactions)
+		}
+	}
+	if !reflect.DeepEqual(rh.gotParams, wantParams) {
+		t.Errorf("Got params %#v, want %#v", rh.gotParams, wantParams)
+	}
+	if reflect.DeepEqual(paging, Paging{}) {
+		t.Errorf("Want paging data, got empty struct")
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/rtm.go b/vendor/github.com/nlopes/slack/rtm.go
new file mode 100644
index 00000000..e79f7d44
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/rtm.go
@@ -0,0 +1,94 @@
+package slack
+
+import (
+	"encoding/json"
+	"fmt"
+	"net/url"
+	"time"
+)
+
+// StartRTM calls the "rtm.start" endpoint and returns the provided URL and the full Info
+// block.
+//
+// To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()`
+// on it.
+func (api *Client) StartRTM() (info *Info, websocketURL string, err error) {
+	response := &infoResponseFull{}
+	err = post("rtm.start", url.Values{"token": {api.config.token}}, response, api.debug)
+	if err != nil {
+		return nil, "", fmt.Errorf("post: %s", err)
+	}
+	if !response.Ok {
+		return nil, "", response.Error
+	}
+
+	// websocket.Dial does not accept url without the port (yet)
+	// Fixed by: https://github.com/golang/net/commit/5058c78c3627b31e484a81463acd51c7cecc06f3
+	// but slack returns the address with no port, so we have to fix it
+	api.Debugln("Using URL:", response.Info.URL)
+	websocketURL, err = websocketizeURLPort(response.Info.URL)
+	if err != nil {
+		return nil, "", fmt.Errorf("parsing response URL: %s", err)
+	}
+
+	return &response.Info, websocketURL, nil
+}
+
+// ConnectRTM calls the "rtm.connect" endpoint and returns the provided URL and the compact Info
+// block.
+//
+// To have a fully managed Websocket connection, use `NewRTM`, and call `ManageConnection()`
+// on it.
+func (api *Client) ConnectRTM() (info *Info, websocketURL string, err error) {
+	response := &infoResponseFull{}
+	err = post("rtm.connect", url.Values{"token": {api.config.token}}, response, api.debug)
+	if err != nil {
+		return nil, "", fmt.Errorf("post: %s", err)
+	}
+	if !response.Ok {
+		return nil, "", response.Error
+	}
+
+	// websocket.Dial does not accept url without the port (yet)
+	// Fixed by: https://github.com/golang/net/commit/5058c78c3627b31e484a81463acd51c7cecc06f3
+	// but slack returns the address with no port, so we have to fix it
+	api.Debugln("Using URL:", response.Info.URL)
+	websocketURL, err = websocketizeURLPort(response.Info.URL)
+	if err != nil {
+		return nil, "", fmt.Errorf("parsing response URL: %s", err)
+	}
+
+	return &response.Info, websocketURL, nil
+}
+
+// NewRTM returns a RTM, which provides a fully managed connection to
+// Slack's websocket-based Real-Time Messaging protocol.
+func (api *Client) NewRTM() *RTM {
+	return api.NewRTMWithOptions(nil)
+}
+
+// NewRTMWithOptions returns a RTM, which provides a fully managed connection to
+// Slack's websocket-based Real-Time Messaging protocol.
+// This also allows to configure various options available for RTM API.
+func (api *Client) NewRTMWithOptions(options *RTMOptions) *RTM {
+	result := &RTM{
+		Client:           *api,
+		IncomingEvents:   make(chan RTMEvent, 50),
+		outgoingMessages: make(chan OutgoingMessage, 20),
+		pings:            make(map[int]time.Time),
+		isConnected:      false,
+		wasIntentional:   true,
+		killChannel:      make(chan bool),
+		forcePing:        make(chan bool),
+		rawEvents:        make(chan json.RawMessage),
+		idGen:            NewSafeID(1),
+	}
+
+	if options != nil {
+		result.useRTMStart = options.UseRTMStart
+	} else {
+		result.useRTMStart = true
+	}
+
+	return result
+}
diff --git a/vendor/github.com/nlopes/slack/search.go b/vendor/github.com/nlopes/slack/search.go
new file mode 100644
index 00000000..ab3c5dad
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/search.go
@@ -0,0 +1,137 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+	"strconv"
+)
+
+const (
+	DEFAULT_SEARCH_SORT      = "score"
+	DEFAULT_SEARCH_SORT_DIR  = "desc"
+	DEFAULT_SEARCH_HIGHLIGHT = false
+	DEFAULT_SEARCH_COUNT     = 100
+	DEFAULT_SEARCH_PAGE      = 1
+)
+
+type SearchParameters struct {
+	Sort          string
+	SortDirection string
+	Highlight     bool
+	Count         int
+	Page          int
+}
+
+type CtxChannel struct {
+	ID   string `json:"id"`
+	Name string `json:"name"`
+}
+
+type CtxMessage struct {
+	User      string `json:"user"`
+	Username  string `json:"username"`
+	Text      string `json:"text"`
+	Timestamp string `json:"ts"`
+	Type      string `json:"type"`
+}
+
+type SearchMessage struct {
+	Type      string     `json:"type"`
+	Channel   CtxChannel `json:"channel"`
+	User      string     `json:"user"`
+	Username  string     `json:"username"`
+	Timestamp string     `json:"ts"`
+	Text      string     `json:"text"`
+	Permalink string     `json:"permalink"`
+	Previous  CtxMessage `json:"previous"`
+	Previous2 CtxMessage `json:"previous_2"`
+	Next      CtxMessage `json:"next"`
+	Next2     CtxMessage `json:"next_2"`
+}
+
+type SearchMessages struct {
+	Matches    []SearchMessage `json:"matches"`
+	Paging     `json:"paging"`
+	Pagination `json:"pagination"`
+	Total      int `json:"total"`
+}
+
+type SearchFiles struct {
+	Matches    []File `json:"matches"`
+	Paging     `json:"paging"`
+	Pagination `json:"pagination"`
+	Total      int `json:"total"`
+}
+
+type searchResponseFull struct {
+	Query          string `json:"query"`
+	SearchMessages `json:"messages"`
+	SearchFiles    `json:"files"`
+	SlackResponse
+}
+
+func NewSearchParameters() SearchParameters {
+	return SearchParameters{
+		Sort:          DEFAULT_SEARCH_SORT,
+		SortDirection: DEFAULT_SEARCH_SORT_DIR,
+		Highlight:     DEFAULT_SEARCH_HIGHLIGHT,
+		Count:         DEFAULT_SEARCH_COUNT,
+		Page:          DEFAULT_SEARCH_PAGE,
+	}
+}
+
+func (api *Client) _search(path, query string, params SearchParameters, files, messages bool) (response *searchResponseFull, error error) {
+	values := url.Values{
+		"token": {api.config.token},
+		"query": {query},
+	}
+	if params.Sort != DEFAULT_SEARCH_SORT {
+		values.Add("sort", params.Sort)
+	}
+	if params.SortDirection != DEFAULT_SEARCH_SORT_DIR {
+		values.Add("sort_dir", params.SortDirection)
+	}
+	if params.Highlight != DEFAULT_SEARCH_HIGHLIGHT {
+		values.Add("highlight", strconv.Itoa(1))
+	}
+	if params.Count != DEFAULT_SEARCH_COUNT {
+		values.Add("count", strconv.Itoa(params.Count))
+	}
+	if params.Page != DEFAULT_SEARCH_PAGE {
+		values.Add("page", strconv.Itoa(params.Page))
+	}
+	response = &searchResponseFull{}
+	err := post(path, values, response, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+
+}
+
+func (api *Client) Search(query string, params SearchParameters) (*SearchMessages, *SearchFiles, error) {
+	response, err := api._search("search.all", query, params, true, true)
+	if err != nil {
+		return nil, nil, err
+	}
+	return &response.SearchMessages, &response.SearchFiles, nil
+}
+
+func (api *Client) SearchFiles(query string, params SearchParameters) (*SearchFiles, error) {
+	response, err := api._search("search.files", query, params, true, false)
+	if err != nil {
+		return nil, err
+	}
+	return &response.SearchFiles, nil
+}
+
+func (api *Client) SearchMessages(query string, params SearchParameters) (*SearchMessages, error) {
+	response, err := api._search("search.messages", query, params, false, true)
+	if err != nil {
+		return nil, err
+	}
+	return &response.SearchMessages, nil
+}
diff --git a/vendor/github.com/nlopes/slack/slack.go b/vendor/github.com/nlopes/slack/slack.go
new file mode 100644
index 00000000..eb686354
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/slack.go
@@ -0,0 +1,88 @@
+package slack
+
+import (
+	"errors"
+	"log"
+	"net/url"
+	"os"
+)
+
+var logger *log.Logger // A logger that can be set by consumers
+/*
+  Added as a var so that we can change this for testing purposes
+*/
+var SLACK_API string = "https://slack.com/api/"
+var SLACK_WEB_API_FORMAT string = "https://%s.slack.com/api/users.admin.%s?t=%s"
+
+type SlackResponse struct {
+	Ok    bool   `json:"ok"`
+	Error string `json:"error"`
+}
+
+type AuthTestResponse struct {
+	URL    string `json:"url"`
+	Team   string `json:"team"`
+	User   string `json:"user"`
+	TeamID string `json:"team_id"`
+	UserID string `json:"user_id"`
+}
+
+type authTestResponseFull struct {
+	SlackResponse
+	AuthTestResponse
+}
+
+type Client struct {
+	config struct {
+		token string
+	}
+	info  Info
+	debug bool
+}
+
+// SetLogger let's library users supply a logger, so that api debugging
+// can be logged along with the application's debugging info.
+func SetLogger(l *log.Logger) {
+	logger = l
+}
+
+func New(token string) *Client {
+	s := &Client{}
+	s.config.token = token
+	return s
+}
+
+// AuthTest tests if the user is able to do authenticated requests or not
+func (api *Client) AuthTest() (response *AuthTestResponse, error error) {
+	responseFull := &authTestResponseFull{}
+	err := post("auth.test", url.Values{"token": {api.config.token}}, responseFull, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	if !responseFull.Ok {
+		return nil, errors.New(responseFull.Error)
+	}
+	return &responseFull.AuthTestResponse, nil
+}
+
+// SetDebug switches the api into debug mode
+// When in debug mode, it logs various info about what its doing
+// If you ever use this in production, don't call SetDebug(true)
+func (api *Client) SetDebug(debug bool) {
+	api.debug = debug
+	if debug && logger == nil {
+		logger = log.New(os.Stdout, "nlopes/slack", log.LstdFlags | log.Lshortfile)
+	}
+}
+
+func (api *Client) Debugf(format string, v ...interface{}) {
+	if api.debug {
+		logger.Printf(format, v...)
+	}
+}
+
+func (api *Client) Debugln(v ...interface{}) {
+	if api.debug {
+		logger.Println(v...)
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/slack_test.go b/vendor/github.com/nlopes/slack/slack_test.go
new file mode 100644
index 00000000..f504898a
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/slack_test.go
@@ -0,0 +1,22 @@
+package slack
+
+import (
+	"log"
+	"net/http/httptest"
+	"sync"
+)
+
+const (
+	validToken = "testing-token"
+)
+
+var (
+	serverAddr string
+	once       sync.Once
+)
+
+func startServer() {
+	server := httptest.NewServer(nil)
+	serverAddr = server.Listener.Addr().String()
+	log.Print("Test WebSocket server listening on ", serverAddr)
+}
diff --git a/vendor/github.com/nlopes/slack/stars.go b/vendor/github.com/nlopes/slack/stars.go
new file mode 100644
index 00000000..cc12e6ec
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/stars.go
@@ -0,0 +1,135 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+	"strconv"
+)
+
+const (
+	DEFAULT_STARS_USER  = ""
+	DEFAULT_STARS_COUNT = 100
+	DEFAULT_STARS_PAGE  = 1
+)
+
+type StarsParameters struct {
+	User  string
+	Count int
+	Page  int
+}
+
+type StarredItem Item
+
+type listResponseFull struct {
+	Items  []Item `json:"items"`
+	Paging `json:"paging"`
+	SlackResponse
+}
+
+// NewStarsParameters initialises StarsParameters with default values
+func NewStarsParameters() StarsParameters {
+	return StarsParameters{
+		User:  DEFAULT_STARS_USER,
+		Count: DEFAULT_STARS_COUNT,
+		Page:  DEFAULT_STARS_PAGE,
+	}
+}
+
+// AddStar stars an item in a channel
+func (api *Client) AddStar(channel string, item ItemRef) error {
+	values := url.Values{
+		"channel": {channel},
+		"token":   {api.config.token},
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("stars.add", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// RemoveStar removes a starred item from a channel
+func (api *Client) RemoveStar(channel string, item ItemRef) error {
+	values := url.Values{
+		"channel": {channel},
+		"token":   {api.config.token},
+	}
+	if item.Timestamp != "" {
+		values.Set("timestamp", string(item.Timestamp))
+	}
+	if item.File != "" {
+		values.Set("file", string(item.File))
+	}
+	if item.Comment != "" {
+		values.Set("file_comment", string(item.Comment))
+	}
+	response := &SlackResponse{}
+	if err := post("stars.remove", values, response, api.debug); err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// ListStars returns information about the stars a user added
+func (api *Client) ListStars(params StarsParameters) ([]Item, *Paging, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if params.User != DEFAULT_STARS_USER {
+		values.Add("user", params.User)
+	}
+	if params.Count != DEFAULT_STARS_COUNT {
+		values.Add("count", strconv.Itoa(params.Count))
+	}
+	if params.Page != DEFAULT_STARS_PAGE {
+		values.Add("page", strconv.Itoa(params.Page))
+	}
+	response := &listResponseFull{}
+	err := post("stars.list", values, response, api.debug)
+	if err != nil {
+		return nil, nil, err
+	}
+	if !response.Ok {
+		return nil, nil, errors.New(response.Error)
+	}
+	return response.Items, &response.Paging, nil
+}
+
+// GetStarred returns a list of StarredItem items. The user then has to iterate over them and figure out what they should
+// be looking at according to what is in the Type.
+//    for _, item := range items {
+//        switch c.Type {
+//        case "file_comment":
+//            log.Println(c.Comment)
+//        case "file":
+//             ...
+//
+//    }
+// This function still exists to maintain backwards compatibility.
+// I exposed it as returning []StarredItem, so it shall stay as StarredItem
+func (api *Client) GetStarred(params StarsParameters) ([]StarredItem, *Paging, error) {
+	items, paging, err := api.ListStars(params)
+	if err != nil {
+		return nil, nil, err
+	}
+	starredItems := make([]StarredItem, len(items))
+	for i, item := range items {
+		starredItems[i] = StarredItem(item)
+	}
+	return starredItems, paging, nil
+}
diff --git a/vendor/github.com/nlopes/slack/stars_test.go b/vendor/github.com/nlopes/slack/stars_test.go
new file mode 100644
index 00000000..43ddb99b
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/stars_test.go
@@ -0,0 +1,260 @@
+package slack
+
+import (
+	"fmt"
+	"net/http"
+	"reflect"
+	"testing"
+)
+
+type starsHandler struct {
+	gotParams map[string]string
+	response  string
+}
+
+func newStarsHandler() *starsHandler {
+	return &starsHandler{
+		gotParams: make(map[string]string),
+		response:  `{ "ok": true }`,
+	}
+}
+
+func (sh *starsHandler) accumulateFormValue(k string, r *http.Request) {
+	if v := r.FormValue(k); v != "" {
+		sh.gotParams[k] = v
+	}
+}
+
+func (sh *starsHandler) handler(w http.ResponseWriter, r *http.Request) {
+	sh.accumulateFormValue("user", r)
+	sh.accumulateFormValue("count", r)
+	sh.accumulateFormValue("channel", r)
+	sh.accumulateFormValue("file", r)
+	sh.accumulateFormValue("file_comment", r)
+	sh.accumulateFormValue("page", r)
+	sh.accumulateFormValue("timestamp", r)
+	w.Header().Set("Content-Type", "application/json")
+	w.Write([]byte(sh.response))
+}
+
+func TestSlack_AddStar(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		channel    string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"ChannelID",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"channel": "ChannelID",
+				"file":    "FileID",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"channel":      "ChannelID",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *starsHandler
+	http.HandleFunc("/stars.add", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newStarsHandler()
+		err := api.AddStar(test.channel, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_RemoveStar(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	tests := []struct {
+		channel    string
+		ref        ItemRef
+		wantParams map[string]string
+	}{
+		{
+			"ChannelID",
+			NewRefToMessage("ChannelID", "123"),
+			map[string]string{
+				"channel":   "ChannelID",
+				"timestamp": "123",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToFile("FileID"),
+			map[string]string{
+				"channel": "ChannelID",
+				"file":    "FileID",
+			},
+		},
+		{
+			"ChannelID",
+			NewRefToComment("FileCommentID"),
+			map[string]string{
+				"channel":      "ChannelID",
+				"file_comment": "FileCommentID",
+			},
+		},
+	}
+	var rh *starsHandler
+	http.HandleFunc("/stars.remove", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	for i, test := range tests {
+		rh = newStarsHandler()
+		err := api.RemoveStar(test.channel, test.ref)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func TestSlack_ListStars(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+	rh := newStarsHandler()
+	http.HandleFunc("/stars.list", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+	rh.response = `{"ok": true,
+    "items": [
+        {
+            "type": "message",
+            "channel": "C1",
+            "message": {
+                "text": "hello",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    },
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file",
+            "file": {
+                "name": "toy",
+                "reactions": [
+                    {
+                        "name": "clock1",
+                        "count": 3,
+                        "users": [ "U1", "U2" ]
+                    }
+                ]
+            }
+        },
+        {
+            "type": "file_comment",
+            "file": {
+                "name": "toy"
+            },
+            "comment": {
+                "comment": "cool toy",
+                "reactions": [
+                    {
+                        "name": "astonished",
+                        "count": 3,
+                        "users": [ "U1", "U2", "U3" ]
+                    }
+                ]
+            }
+        }
+    ],
+    "paging": {
+        "count": 100,
+        "total": 4,
+        "page": 1,
+        "pages": 1
+    }}`
+	want := []Item{
+		NewMessageItem("C1", &Message{Msg: Msg{
+			Text: "hello",
+			Reactions: []ItemReaction{
+				ItemReaction{Name: "astonished", Count: 3, Users: []string{"U1", "U2", "U3"}},
+				ItemReaction{Name: "clock1", Count: 3, Users: []string{"U1", "U2"}},
+			},
+		}}),
+		NewFileItem(&File{Name: "toy"}),
+		NewFileCommentItem(&File{Name: "toy"}, &Comment{Comment: "cool toy"}),
+	}
+	wantStarred := make([]StarredItem, len(want))
+	for i, item := range want {
+		wantStarred[i] = StarredItem(item)
+	}
+	wantParams := map[string]string{
+		"count": "200",
+		"page":  "2",
+	}
+	params := NewStarsParameters()
+	params.Count = 200
+	params.Page = 2
+	got, paging, err := api.ListStars(params)
+	if err != nil {
+		t.Fatalf("Unexpected error: %s", err)
+	}
+	if !reflect.DeepEqual(got, want) {
+		t.Errorf("Got Stars %#v, want %#v", got, want)
+		for i, item := range got {
+			fmt.Printf("Item %d, Type: %s\n", i, item.Type)
+			fmt.Printf("Message  %#v\n", item.Message)
+			fmt.Printf("File     %#v\n", item.File)
+			fmt.Printf("Comment  %#v\n", item.Comment)
+		}
+	}
+	if !reflect.DeepEqual(rh.gotParams, wantParams) {
+		t.Errorf("Got params %#v, want %#v", rh.gotParams, wantParams)
+	}
+	if reflect.DeepEqual(paging, Paging{}) {
+		t.Errorf("Want paging data, got empty struct")
+	}
+	// Test GetStarred
+	gotStarred, paging, err := api.GetStarred(params)
+	if err != nil {
+		t.Fatalf("Unexpected error: %s", err)
+	}
+	if !reflect.DeepEqual(gotStarred, wantStarred) {
+		t.Errorf("Got Stars %#v, want %#v", gotStarred, wantStarred)
+		for i, item := range got {
+			fmt.Printf("Item %d, Type: %s\n", i, item.Type)
+			fmt.Printf("Message  %#v\n", item.Message)
+			fmt.Printf("File     %#v\n", item.File)
+			fmt.Printf("Comment  %#v\n", item.Comment)
+		}
+	}
+	if !reflect.DeepEqual(rh.gotParams, wantParams) {
+		t.Errorf("Got params %#v, want %#v", rh.gotParams, wantParams)
+	}
+	if reflect.DeepEqual(paging, Paging{}) {
+		t.Errorf("Want paging data, got empty struct")
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/team.go b/vendor/github.com/nlopes/slack/team.go
new file mode 100644
index 00000000..61b6a0a1
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/team.go
@@ -0,0 +1,160 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+	"strconv"
+)
+
+const (
+	DEFAULT_LOGINS_COUNT   = 100
+	DEFAULT_LOGINS_PAGE    = 1
+)
+
+type TeamResponse struct {
+	Team TeamInfo `json:"team"`
+	SlackResponse
+}
+
+type TeamInfo struct {
+	ID          string                 `json:"id"`
+	Name        string                 `json:"name"`
+	Domain      string                 `json:"domain"`
+	EmailDomain string                 `json:"email_domain"`
+	Icon        map[string]interface{} `json:"icon"`
+}
+
+type LoginResponse struct {
+	Logins []Login `json:"logins"`
+	Paging         `json:"paging"`
+	SlackResponse
+}
+
+
+type Login struct {
+	UserID    string `json:"user_id"`
+	Username  string `json:"username"`
+	DateFirst int    `json:"date_first"`
+	DateLast  int    `json:"date_last"`
+	Count     int    `json:"count"`
+	IP        string `json:"ip"`
+	UserAgent string `json:"user_agent"`
+	ISP       string `json:"isp"`
+	Country   string `json:"country"`
+	Region    string `json:"region"`
+}
+
+type BillableInfoResponse struct {
+	BillableInfo map[string]BillingActive `json:"billable_info"`
+	SlackResponse
+
+}
+
+type BillingActive struct {
+	BillingActive bool `json:"billing_active"`
+}
+
+// AccessLogParameters contains all the parameters necessary (including the optional ones) for a GetAccessLogs() request
+type AccessLogParameters struct {
+	Count         int
+	Page          int
+}
+
+// NewAccessLogParameters provides an instance of AccessLogParameters with all the sane default values set
+func NewAccessLogParameters() AccessLogParameters {
+	return AccessLogParameters{
+		Count: DEFAULT_LOGINS_COUNT,
+		Page:  DEFAULT_LOGINS_PAGE,
+	}
+}
+
+
+func teamRequest(path string, values url.Values, debug bool) (*TeamResponse, error) {
+	response := &TeamResponse{}
+	err := post(path, values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+
+	return response, nil
+}
+
+func billableInfoRequest(path string, values url.Values, debug bool) (map[string]BillingActive, error) {
+	response := &BillableInfoResponse{}
+	err := post(path, values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+
+	return response.BillableInfo, nil
+}
+
+func accessLogsRequest(path string, values url.Values, debug bool) (*LoginResponse, error) {
+	response := &LoginResponse{}
+	err := post(path, values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+}
+
+
+// GetTeamInfo gets the Team Information of the user
+func (api *Client) GetTeamInfo() (*TeamInfo, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+
+	response, err := teamRequest("team.info", values, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	return &response.Team, nil
+}
+
+// GetAccessLogs retrieves a page of logins according to the parameters given
+func (api *Client) GetAccessLogs(params AccessLogParameters) ([]Login, *Paging, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if params.Count != DEFAULT_LOGINS_COUNT {
+		values.Add("count", strconv.Itoa(params.Count))
+	}
+	if params.Page != DEFAULT_LOGINS_PAGE {
+		values.Add("page", strconv.Itoa(params.Page))
+	}
+	response, err := accessLogsRequest("team.accessLogs", values, api.debug)
+	if err != nil {
+		return nil, nil, err
+	}
+	return response.Logins, &response.Paging, nil
+}
+
+func (api *Client) GetBillableInfo(user string) (map[string]BillingActive, error) {
+	values := url.Values{
+		"token": {api.config.token},
+		"user": {user},
+	}
+
+	return billableInfoRequest("team.billableInfo", values, api.debug)
+}
+
+// GetBillableInfoForTeam returns the billing_active status of all users on the team.
+func (api *Client) GetBillableInfoForTeam() (map[string]BillingActive, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+
+	return billableInfoRequest("team.billableInfo", values, api.debug)
+}
diff --git a/vendor/github.com/nlopes/slack/team_test.go b/vendor/github.com/nlopes/slack/team_test.go
new file mode 100644
index 00000000..a2608215
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/team_test.go
@@ -0,0 +1,171 @@
+package slack
+
+import (
+	"errors"
+	"net/http"
+	"testing"
+	"strings"
+)
+
+var (
+	ErrIncorrectResponse = errors.New("Response is incorrect")
+)
+
+func getTeamInfo(rw http.ResponseWriter, r *http.Request) {
+	rw.Header().Set("Content-Type", "application/json")
+	response := []byte(`{"ok": true, "team": {
+			"id": "F0UWHUX",
+			"name": "notalar",
+			"domain": "notalar",
+			"icon": {
+              "image_34": "https://slack.global.ssl.fastly.net/66f9/img/avatars-teams/ava_0002-34.png",
+              "image_44": "https://slack.global.ssl.fastly.net/66f9/img/avatars-teams/ava_0002-44.png",
+              "image_55": "https://slack.global.ssl.fastly.net/66f9/img/avatars-teams/ava_0002-55.png",
+              "image_default": true
+          }
+		}}`)
+	rw.Write(response)
+}
+
+func TestGetTeamInfo(t *testing.T) {
+	http.HandleFunc("/team.info", getTeamInfo)
+
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	teamInfo, err := api.GetTeamInfo()
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+
+	// t.Fatal refers to -> t.Errorf & return
+	if teamInfo.ID != "F0UWHUX" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if teamInfo.Domain != "notalar" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if teamInfo.Name != "notalar" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if teamInfo.Icon == nil {
+		t.Fatal(ErrIncorrectResponse)
+	}
+}
+
+func getTeamAccessLogs(rw http.ResponseWriter, r *http.Request) {
+	rw.Header().Set("Content-Type", "application/json")
+	response := []byte(`{"ok": true, "logins": [{
+			"user_id": "F0UWHUX",
+			"username": "notalar",
+			"date_first": 1475684477,
+			"date_last": 1475684645,
+			"count": 8,
+			"ip": "127.0.0.1",
+			"user_agent": "SlackWeb/3abb0ae2380d48a9ae20c58cc624ebcd Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Slack/1.2.6 Chrome/45.0.2454.85 AtomShell/0.34.3 Safari/537.36 Slack_SSB/1.2.6",
+			"isp": "AT&T U-verse",
+                        "country": "US",
+                        "region": "IN"
+                        },
+                        {
+                        "user_id": "XUHWU0F",
+			"username": "ralaton",
+			"date_first": 1447395893,
+			"date_last": 1447395965,
+			"count": 5,
+			"ip": "192.168.0.1",
+			"user_agent": "com.tinyspeck.chatlyio/2.60 (iPhone; iOS 9.1; Scale/3.00)",
+			"isp": null,
+                        "country": null,
+                        "region": null
+                        }],
+                        "paging": {
+    			"count": 2,
+    			"total": 2,
+    			"page": 1,
+    			"pages": 1
+    			}
+  }`)
+	rw.Write(response)
+}
+
+func TestGetAccessLogs(t *testing.T) {
+	http.HandleFunc("/team.accessLogs", getTeamAccessLogs)
+
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	logins, paging, err := api.GetAccessLogs(NewAccessLogParameters())
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+
+	if len(logins) != 2 {
+		t.Fatal("Should have been 2 logins")
+	}
+
+	// test the first login
+	login1 := logins[0]
+	login2 := logins[1]
+
+	if (login1.UserID != "F0UWHUX") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.Username != "notalar") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.DateFirst != 1475684477) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.DateLast != 1475684645) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.Count != 8) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.IP != "127.0.0.1") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (!strings.HasPrefix(login1.UserAgent, "SlackWeb")) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.ISP != "AT&T U-verse") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.Country != "US") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login1.Region != "IN") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+
+	// test that the null values from login2 are coming across correctly
+	if (login2.ISP != "") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login2.Country != "") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (login2.Region != "") {
+		t.Fatal(ErrIncorrectResponse)
+	}
+
+	// test the paging
+	if (paging.Count != 2) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (paging.Total != 2) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (paging.Page != 1) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if (paging.Pages != 1) {
+		t.Fatal(ErrIncorrectResponse)
+	}
+}
+
diff --git a/vendor/github.com/nlopes/slack/usergroups.go b/vendor/github.com/nlopes/slack/usergroups.go
new file mode 100644
index 00000000..5cf62a91
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/usergroups.go
@@ -0,0 +1,174 @@
+package slack
+
+import (
+	"errors"
+	"net/url"
+	"strings"
+)
+
+// UserGroup contains all the information of a user group
+type UserGroup struct {
+	ID          string         `json:"id"`
+	TeamID      string         `json:"team_id"`
+	IsUserGroup bool           `json:"is_usergroup"`
+	Name        string         `json:"name"`
+	Description string         `json:"description"`
+	Handle      string         `json:"handle"`
+	IsExternal  bool           `json:"is_external"`
+	DateCreate  JSONTime       `json:"date_create"`
+	DateUpdate  JSONTime       `json:"date_update"`
+	DateDelete  JSONTime       `json:"date_delete"`
+	AutoType    string         `json:"auto_type"`
+	CreatedBy   string         `json:"created_by"`
+	UpdatedBy   string         `json:"updated_by"`
+	DeletedBy   string         `json:"deleted_by"`
+	Prefs       UserGroupPrefs `json:"prefs"`
+	UserCount   int            `json:"user_count"`
+}
+
+// UserGroupPrefs contains default channels and groups (private channels)
+type UserGroupPrefs struct {
+	Channels []string `json:"channels"`
+	Groups   []string `json:"groups"`
+}
+
+type userGroupResponseFull struct {
+	UserGroups []UserGroup `json:"usergroups"`
+	UserGroup  UserGroup   `json:"usergroup"`
+	Users      []string    `json:"users"`
+	SlackResponse
+}
+
+func userGroupRequest(path string, values url.Values, debug bool) (*userGroupResponseFull, error) {
+	response := &userGroupResponseFull{}
+	err := post(path, values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+}
+
+// CreateUserGroup creates a new user group
+func (api *Client) CreateUserGroup(userGroup UserGroup) (UserGroup, error) {
+	values := url.Values{
+		"token": {api.config.token},
+		"name":  {userGroup.Name},
+	}
+
+	if userGroup.Handle != "" {
+		values["handle"] = []string{userGroup.Handle}
+	}
+
+	if userGroup.Description != "" {
+		values["description"] = []string{userGroup.Description}
+	}
+
+	if len(userGroup.Prefs.Channels) > 0 {
+		values["channels"] = []string{strings.Join(userGroup.Prefs.Channels, ",")}
+	}
+
+	response, err := userGroupRequest("usergroups.create", values, api.debug)
+	if err != nil {
+		return UserGroup{}, err
+	}
+	return response.UserGroup, nil
+}
+
+// DisableUserGroup disables an existing user group
+func (api *Client) DisableUserGroup(userGroup string) (UserGroup, error) {
+	values := url.Values{
+		"token":     {api.config.token},
+		"usergroup": {userGroup},
+	}
+
+	response, err := userGroupRequest("usergroups.disable", values, api.debug)
+	if err != nil {
+		return UserGroup{}, err
+	}
+	return response.UserGroup, nil
+}
+
+// EnableUserGroup enables an existing user group
+func (api *Client) EnableUserGroup(userGroup string) (UserGroup, error) {
+	values := url.Values{
+		"token":     {api.config.token},
+		"usergroup": {userGroup},
+	}
+
+	response, err := userGroupRequest("usergroups.enable", values, api.debug)
+	if err != nil {
+		return UserGroup{}, err
+	}
+	return response.UserGroup, nil
+}
+
+// GetUserGroups returns a list of user groups for the team
+func (api *Client) GetUserGroups() ([]UserGroup, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+
+	response, err := userGroupRequest("usergroups.list", values, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	return response.UserGroups, nil
+}
+
+// UpdateUserGroup will update an existing user group
+func (api *Client) UpdateUserGroup(userGroup UserGroup) (UserGroup, error) {
+	values := url.Values{
+		"token":     {api.config.token},
+		"usergroup": {userGroup.ID},
+	}
+
+	if userGroup.Name != "" {
+		values["name"] = []string{userGroup.Name}
+	}
+
+	if userGroup.Handle != "" {
+		values["handle"] = []string{userGroup.Handle}
+	}
+
+	if userGroup.Description != "" {
+		values["description"] = []string{userGroup.Description}
+	}
+
+	response, err := userGroupRequest("usergroups.update", values, api.debug)
+	if err != nil {
+		return UserGroup{}, err
+	}
+	return response.UserGroup, nil
+}
+
+// GetUserGroupMembers will retrieve the current list of users in a group
+func (api *Client) GetUserGroupMembers(userGroup string) ([]string, error) {
+	values := url.Values{
+		"token":     {api.config.token},
+		"usergroup": {userGroup},
+	}
+
+	response, err := userGroupRequest("usergroups.users.list", values, api.debug)
+	if err != nil {
+		return []string{}, err
+	}
+	return response.Users, nil
+}
+
+// UpdateUserGroupMembers will update the members of an existing user group
+func (api *Client) UpdateUserGroupMembers(userGroup string, members string) (UserGroup, error) {
+	values := url.Values{
+		"token":     {api.config.token},
+		"usergroup": {userGroup},
+		"users":     {members},
+	}
+
+	response, err := userGroupRequest("usergroups.users.update", values, api.debug)
+	if err != nil {
+		return UserGroup{}, err
+	}
+	return response.UserGroup, nil
+}
diff --git a/vendor/github.com/nlopes/slack/usergroups_test.go b/vendor/github.com/nlopes/slack/usergroups_test.go
new file mode 100644
index 00000000..b544a45c
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/usergroups_test.go
@@ -0,0 +1,180 @@
+package slack
+
+import (
+	"net/http"
+	"reflect"
+	"testing"
+)
+
+type userGroupsHandler struct {
+	gotParams map[string]string
+	response  string
+}
+
+func newUserGroupsHandler() *userGroupsHandler {
+	return &userGroupsHandler{
+		gotParams: make(map[string]string),
+		response: `{
+    "ok": true,
+    "usergroup": {
+        "id": "S0615G0KT",
+        "team_id": "T060RNRCH",
+        "is_usergroup": true,
+        "name": "Marketing Team",
+        "description": "Marketing gurus, PR experts and product advocates.",
+        "handle": "marketing-team",
+        "is_external": false,
+        "date_create": 1446746793,
+        "date_update": 1446746793,
+        "date_delete": 0,
+        "auto_type": null,
+        "created_by": "U060RNRCZ",
+        "updated_by": "U060RNRCZ",
+        "deleted_by": null,
+        "prefs": {
+            "channels": [
+
+            ],
+            "groups": [
+
+            ]
+        },
+        "user_count": 0
+    }
+}`,
+	}
+}
+
+func (ugh *userGroupsHandler) accumulateFormValue(k string, r *http.Request) {
+	if v := r.FormValue(k); v != "" {
+		ugh.gotParams[k] = v
+	}
+}
+
+func (ugh *userGroupsHandler) handler(w http.ResponseWriter, r *http.Request) {
+	ugh.accumulateFormValue("name", r)
+	ugh.accumulateFormValue("description", r)
+	ugh.accumulateFormValue("handle", r)
+	w.Header().Set("Content-Type", "application/json")
+	w.Write([]byte(ugh.response))
+}
+
+func TestCreateUserGroup(t *testing.T) {
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	tests := []struct {
+		userGroup  UserGroup
+		wantParams map[string]string
+	}{
+		{
+			UserGroup{
+				Name:        "Marketing Team",
+				Description: "Marketing gurus, PR experts and product advocates.",
+				Handle:      "marketing-team"},
+			map[string]string{
+				"name":        "Marketing Team",
+				"description": "Marketing gurus, PR experts and product advocates.",
+				"handle":      "marketing-team",
+			},
+		},
+	}
+
+	var rh *userGroupsHandler
+	http.HandleFunc("/usergroups.create", func(w http.ResponseWriter, r *http.Request) { rh.handler(w, r) })
+
+	for i, test := range tests {
+		rh = newUserGroupsHandler()
+		_, err := api.CreateUserGroup(test.userGroup)
+		if err != nil {
+			t.Fatalf("%d: Unexpected error: %s", i, err)
+		}
+		if !reflect.DeepEqual(rh.gotParams, test.wantParams) {
+			t.Errorf("%d: Got params %#v, want %#v", i, rh.gotParams, test.wantParams)
+		}
+	}
+}
+
+func getUserGroups(rw http.ResponseWriter, r *http.Request) {
+	rw.Header().Set("Content-Type", "application/json")
+	response := []byte(`{
+    "ok": true,
+    "usergroups": [
+        {
+            "id": "S0614TZR7",
+            "team_id": "T060RNRCH",
+            "is_usergroup": true,
+            "name": "Team Admins",
+            "description": "A group of all Administrators on your team.",
+            "handle": "admins",
+            "is_external": false,
+            "date_create": 1446598059,
+            "date_update": 1446670362,
+            "date_delete": 0,
+            "auto_type": "admin",
+            "created_by": "USLACKBOT",
+            "updated_by": "U060RNRCZ",
+            "deleted_by": null,
+            "prefs": {
+                "channels": [
+                  "channel1",
+                  "channel2"
+                ],
+                "groups": [
+                  "group1",
+                  "group2",
+                  "group3"
+                ]
+            },
+            "user_count": 2
+        }
+    ]
+}`)
+	rw.Write(response)
+}
+
+func TestGetUserGroups(t *testing.T) {
+	http.HandleFunc("/usergroups.list", getUserGroups)
+
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	userGroups, err := api.GetUserGroups()
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+
+	// t.Fatal refers to -> t.Errorf & return
+	if len(userGroups) != 1 {
+		t.Fatal(ErrIncorrectResponse)
+	}
+
+	S0614TZR7 := UserGroup{
+		ID:          "S0614TZR7",
+		TeamID:      "T060RNRCH",
+		IsUserGroup: true,
+		Name:        "Team Admins",
+		Description: "A group of all Administrators on your team.",
+		Handle:      "admins",
+		IsExternal:  false,
+		DateCreate:  1446598059,
+		DateUpdate:  1446670362,
+		DateDelete:  0,
+		AutoType:    "admin",
+		CreatedBy:   "USLACKBOT",
+		UpdatedBy:   "U060RNRCZ",
+		DeletedBy:   "",
+		Prefs: UserGroupPrefs{
+			Channels: []string{"channel1", "channel2"},
+			Groups:   []string{"group1", "group2", "group3"},
+		},
+		UserCount: 2,
+	}
+
+	if !reflect.DeepEqual(userGroups[0], S0614TZR7) {
+		t.Errorf("Got %#v, want %#v", userGroups[0], S0614TZR7)
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/users.go b/vendor/github.com/nlopes/slack/users.go
new file mode 100644
index 00000000..126798a6
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/users.go
@@ -0,0 +1,309 @@
+package slack
+
+import (
+	"encoding/json"
+	"errors"
+	"net/url"
+)
+
+const (
+	DEFAULT_USER_PHOTO_CROP_X = -1
+	DEFAULT_USER_PHOTO_CROP_Y = -1
+	DEFAULT_USER_PHOTO_CROP_W = -1
+)
+
+// UserProfile contains all the information details of a given user
+type UserProfile struct {
+	FirstName          string `json:"first_name"`
+	LastName           string `json:"last_name"`
+	RealName           string `json:"real_name"`
+	RealNameNormalized string `json:"real_name_normalized"`
+	Email              string `json:"email"`
+	Skype              string `json:"skype"`
+	Phone              string `json:"phone"`
+	Image24            string `json:"image_24"`
+	Image32            string `json:"image_32"`
+	Image48            string `json:"image_48"`
+	Image72            string `json:"image_72"`
+	Image192           string `json:"image_192"`
+	ImageOriginal      string `json:"image_original"`
+	Title              string `json:"title"`
+	BotID              string `json:"bot_id,omitempty"`
+	ApiAppID           string `json:"api_app_id,omitempty"`
+	StatusText         string `json:"status_text,omitempty"`
+	StatusEmoji        string `json:"status_emoji,omitempty"`
+}
+
+// User contains all the information of a user
+type User struct {
+	ID                string      `json:"id"`
+	Name              string      `json:"name"`
+	Deleted           bool        `json:"deleted"`
+	Color             string      `json:"color"`
+	RealName          string      `json:"real_name"`
+	TZ                string      `json:"tz,omitempty"`
+	TZLabel           string      `json:"tz_label"`
+	TZOffset          int         `json:"tz_offset"`
+	Profile           UserProfile `json:"profile"`
+	IsBot             bool        `json:"is_bot"`
+	IsAdmin           bool        `json:"is_admin"`
+	IsOwner           bool        `json:"is_owner"`
+	IsPrimaryOwner    bool        `json:"is_primary_owner"`
+	IsRestricted      bool        `json:"is_restricted"`
+	IsUltraRestricted bool        `json:"is_ultra_restricted"`
+	Has2FA            bool        `json:"has_2fa"`
+	HasFiles          bool        `json:"has_files"`
+	Presence          string      `json:"presence"`
+}
+
+// UserPresence contains details about a user online status
+type UserPresence struct {
+	Presence        string   `json:"presence,omitempty"`
+	Online          bool     `json:"online,omitempty"`
+	AutoAway        bool     `json:"auto_away,omitempty"`
+	ManualAway      bool     `json:"manual_away,omitempty"`
+	ConnectionCount int      `json:"connection_count,omitempty"`
+	LastActivity    JSONTime `json:"last_activity,omitempty"`
+}
+
+type UserIdentityResponse struct {
+	User UserIdentity `json:"user"`
+	Team TeamIdentity `json:"team"`
+	SlackResponse
+}
+
+type UserIdentity struct {
+	ID       string `json:"id"`
+	Name     string `json:"name"`
+	Email    string `json:"email"`
+	Image24  string `json:"image_24"`
+	Image32  string `json:"image_32"`
+	Image48  string `json:"image_48"`
+	Image72  string `json:"image_72"`
+	Image192 string `json:"image_192"`
+	Image512 string `json:"image_512"`
+}
+
+type TeamIdentity struct {
+	ID            string `json:"id"`
+	Name          string `json:"name"`
+	Domain        string `json:"domain"`
+	Image34       string `json:"image_34"`
+	Image44       string `json:"image_44"`
+	Image68       string `json:"image_68"`
+	Image88       string `json:"image_88"`
+	Image102      string `json:"image_102"`
+	Image132      string `json:"image_132"`
+	Image230      string `json:"image_230"`
+	ImageDefault  bool   `json:"image_default"`
+	ImageOriginal string `json:"image_original"`
+}
+
+type userResponseFull struct {
+	Members      []User                  `json:"members,omitempty"` // ListUsers
+	User         `json:"user,omitempty"` // GetUserInfo
+	UserPresence                         // GetUserPresence
+	SlackResponse
+}
+
+type UserSetPhotoParams struct {
+	CropX int
+	CropY int
+	CropW int
+}
+
+func NewUserSetPhotoParams() UserSetPhotoParams {
+	return UserSetPhotoParams{
+		CropX: DEFAULT_USER_PHOTO_CROP_X,
+		CropY: DEFAULT_USER_PHOTO_CROP_Y,
+		CropW: DEFAULT_USER_PHOTO_CROP_W,
+	}
+}
+
+func userRequest(path string, values url.Values, debug bool) (*userResponseFull, error) {
+	response := &userResponseFull{}
+	err := post(path, values, response, debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+}
+
+// GetUserPresence will retrieve the current presence status of given user.
+func (api *Client) GetUserPresence(user string) (*UserPresence, error) {
+	values := url.Values{
+		"token": {api.config.token},
+		"user":  {user},
+	}
+	response, err := userRequest("users.getPresence", values, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	return &response.UserPresence, nil
+}
+
+// GetUserInfo will retrieve the complete user information
+func (api *Client) GetUserInfo(user string) (*User, error) {
+	values := url.Values{
+		"token": {api.config.token},
+		"user":  {user},
+	}
+	response, err := userRequest("users.info", values, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	return &response.User, nil
+}
+
+// GetUsers returns the list of users (with their detailed information)
+func (api *Client) GetUsers() ([]User, error) {
+	values := url.Values{
+		"token":    {api.config.token},
+		"presence": {"1"},
+	}
+	response, err := userRequest("users.list", values, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	return response.Members, nil
+}
+
+// SetUserAsActive marks the currently authenticated user as active
+func (api *Client) SetUserAsActive() error {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	_, err := userRequest("users.setActive", values, api.debug)
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// SetUserPresence changes the currently authenticated user presence
+func (api *Client) SetUserPresence(presence string) error {
+	values := url.Values{
+		"token":    {api.config.token},
+		"presence": {presence},
+	}
+	_, err := userRequest("users.setPresence", values, api.debug)
+	if err != nil {
+		return err
+	}
+	return nil
+
+}
+
+// GetUserIdentity will retrieve user info available per identity scopes
+func (api *Client) GetUserIdentity() (*UserIdentityResponse, error) {
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	response := &UserIdentityResponse{}
+	err := post("users.identity", values, response, api.debug)
+	if err != nil {
+		return nil, err
+	}
+	if !response.Ok {
+		return nil, errors.New(response.Error)
+	}
+	return response, nil
+}
+
+// SetUserPhoto changes the currently authenticated user's profile image
+func (api *Client) SetUserPhoto(image string, params UserSetPhotoParams) error {
+	response := &SlackResponse{}
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	if params.CropX != DEFAULT_USER_PHOTO_CROP_X {
+		values.Add("crop_x", string(params.CropX))
+	}
+	if params.CropY != DEFAULT_USER_PHOTO_CROP_Y {
+		values.Add("crop_y", string(params.CropY))
+	}
+	if params.CropW != DEFAULT_USER_PHOTO_CROP_W {
+		values.Add("crop_w", string(params.CropW))
+	}
+	err := postLocalWithMultipartResponse("users.setPhoto", image, "image", values, response, api.debug)
+	if err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// DeleteUserPhoto deletes the current authenticated user's profile image
+func (api *Client) DeleteUserPhoto() error {
+	response := &SlackResponse{}
+	values := url.Values{
+		"token": {api.config.token},
+	}
+	err := post("users.deletePhoto", values, response, api.debug)
+	if err != nil {
+		return err
+	}
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+	return nil
+}
+
+// SetUserCustomStatus will set a custom status and emoji for the currently
+// authenticated user. If statusEmoji is "" and statusText is not, the Slack API
+// will automatically set it to ":speech_balloon:". Otherwise, if both are ""
+// the Slack API will unset the custom status/emoji.
+func (api *Client) SetUserCustomStatus(statusText, statusEmoji string) error {
+	// XXX(theckman): this anonymous struct is for making requests to the Slack
+	// API for setting and unsetting a User's Custom Status/Emoji. To change
+	// these values we must provide a JSON document as the profile POST field.
+	//
+	// We use an anonymous struct over UserProfile because to unset the values
+	// on the User's profile we cannot use the `json:"omitempty"` tag. This is
+	// because an empty string ("") is what's used to unset the values. Check
+	// out the API docs for more details:
+	//
+	// - https://api.slack.com/docs/presence-and-status#custom_status
+	profile, err := json.Marshal(
+		&struct {
+			StatusText  string `json:"status_text"`
+			StatusEmoji string `json:"status_emoji"`
+		}{
+			StatusText:  statusText,
+			StatusEmoji: statusEmoji,
+		},
+	)
+
+	if err != nil {
+		return err
+	}
+
+	values := url.Values{
+		"token":   {api.config.token},
+		"profile": {string(profile)},
+	}
+
+	response := &userResponseFull{}
+
+	if err = post("users.profile.set", values, response, api.debug); err != nil {
+		return err
+	}
+
+	if !response.Ok {
+		return errors.New(response.Error)
+	}
+
+	return nil
+}
+
+// UnsetUserCustomStatus removes the custom status message for the currently
+// authenticated user. This is a convenience method that wraps
+// (*Client).SetUserCustomStatus().
+func (api *Client) UnsetUserCustomStatus() error {
+	return api.SetUserCustomStatus("", "")
+}
diff --git a/vendor/github.com/nlopes/slack/users_test.go b/vendor/github.com/nlopes/slack/users_test.go
new file mode 100644
index 00000000..5ee30e5d
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/users_test.go
@@ -0,0 +1,179 @@
+package slack
+
+import (
+	"encoding/json"
+	"fmt"
+	"net/http"
+	"testing"
+)
+
+func getUserIdentity(rw http.ResponseWriter, r *http.Request) {
+	rw.Header().Set("Content-Type", "application/json")
+	response := []byte(`{
+  "ok": true,
+  "user": {
+    "id": "UXXXXXXXX",
+    "name": "Test User",
+    "email": "test@test.com",
+    "image_24": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_24.jpg",
+    "image_32": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_32.jpg",
+    "image_48": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_48.jpg",
+    "image_72": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_72.jpg",
+    "image_192": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_192.jpg",
+    "image_512": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_512.jpg"
+  },
+  "team": {
+    "id": "TXXXXXXXX",
+    "name": "team-name",
+    "domain": "team-domain",
+    "image_34": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_34.jpg",
+    "image_44": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_44.jpg",
+    "image_68": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_68.jpg",
+    "image_88": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_88.jpg",
+    "image_102": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_102.jpg",
+    "image_132": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_132.jpg",
+    "image_230": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_230.jpg",
+    "image_original": "https:\/\/s3-us-west-2.amazonaws.com\/slack-files2\/avatars\/2016-10-18\/92962080834_ef14c1469fc0741caea1_original.jpg"
+  }
+}`)
+	rw.Write(response)
+}
+
+func httpTestErrReply(w http.ResponseWriter, clientErr bool, msg string) {
+	if clientErr {
+		w.WriteHeader(http.StatusBadRequest)
+	} else {
+		w.WriteHeader(http.StatusInternalServerError)
+	}
+
+	w.Header().Set("Content-Type", "application/json")
+
+	body, _ := json.Marshal(&SlackResponse{
+		Ok: false, Error: msg,
+	})
+
+	w.Write(body)
+}
+
+func newProfileHandler(up *UserProfile) (setter func(http.ResponseWriter, *http.Request)) {
+	return func(w http.ResponseWriter, r *http.Request) {
+		if up == nil {
+			httpTestErrReply(w, false, "err: UserProfile is nil")
+			return
+		}
+
+		if err := r.ParseForm(); err != nil {
+			httpTestErrReply(w, true, fmt.Sprintf("err parsing form: %s", err.Error()))
+			return
+		}
+
+		values := r.Form
+
+		if len(values["profile"]) == 0 {
+			httpTestErrReply(w, true, `POST data must include a "profile" field`)
+			return
+		}
+
+		profile := []byte(values["profile"][0])
+
+		userProfile := UserProfile{}
+
+		if err := json.Unmarshal(profile, &userProfile); err != nil {
+			httpTestErrReply(w, true, fmt.Sprintf("err parsing JSON: %s\n\njson: `%s`", err.Error(), profile))
+			return
+		}
+
+		*up = userProfile
+
+		// TODO(theckman): enhance this to return a full User object
+		fmt.Fprint(w, `{"ok":true}`)
+	}
+}
+
+func TestGetUserIdentity(t *testing.T) {
+	http.HandleFunc("/users.identity", getUserIdentity)
+
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	identity, err := api.GetUserIdentity()
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+		return
+	}
+
+	// t.Fatal refers to -> t.Errorf & return
+	if identity.User.ID != "UXXXXXXXX" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.User.Name != "Test User" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.User.Email != "test@test.com" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.Team.ID != "TXXXXXXXX" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.Team.Name != "team-name" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.Team.Domain != "team-domain" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.User.Image24 == "" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+	if identity.Team.Image34 == "" {
+		t.Fatal(ErrIncorrectResponse)
+	}
+}
+
+func TestUserCustomStatus(t *testing.T) {
+	up := &UserProfile{}
+
+	setUserProfile := newProfileHandler(up)
+
+	http.HandleFunc("/users.profile.set", setUserProfile)
+
+	once.Do(startServer)
+	SLACK_API = "http://" + serverAddr + "/"
+	api := New("testing-token")
+
+	testSetUserCustomStatus(api, up, t)
+	testUnsetUserCustomStatus(api, up, t)
+}
+
+func testSetUserCustomStatus(api *Client, up *UserProfile, t *testing.T) {
+	const (
+		statusText  = "testStatus"
+		statusEmoji = ":construction:"
+	)
+
+	if err := api.SetUserCustomStatus(statusText, statusEmoji); err != nil {
+		t.Fatalf(`SetUserCustomStatus(%q, %q) = %#v, want `, statusText, statusEmoji, err)
+	}
+
+	if up.StatusText != statusText {
+		t.Fatalf(`UserProfile.StatusText = %q, want %q`, up.StatusText, statusText)
+	}
+
+	if up.StatusEmoji != statusEmoji {
+		t.Fatalf(`UserProfile.StatusEmoji = %q, want %q`, up.StatusEmoji, statusEmoji)
+	}
+}
+
+func testUnsetUserCustomStatus(api *Client, up *UserProfile, t *testing.T) {
+	if err := api.UnsetUserCustomStatus(); err != nil {
+		t.Fatalf(`UnsetUserCustomStatus() = %#v, want `, err)
+	}
+
+	if up.StatusText != "" {
+		t.Fatalf(`UserProfile.StatusText = %q, want %q`, up.StatusText, "")
+	}
+
+	if up.StatusEmoji != "" {
+		t.Fatalf(`UserProfile.StatusEmoji = %q, want %q`, up.StatusEmoji, "")
+	}
+}
diff --git a/vendor/github.com/nlopes/slack/websocket.go b/vendor/github.com/nlopes/slack/websocket.go
new file mode 100644
index 00000000..f3c9cbd8
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket.go
@@ -0,0 +1,93 @@
+package slack
+
+import (
+	"encoding/json"
+	"errors"
+	"time"
+
+	"golang.org/x/net/websocket"
+)
+
+const (
+	// MaxMessageTextLength is the current maximum message length in number of characters as defined here
+	// https://api.slack.com/rtm#limits
+	MaxMessageTextLength = 4000
+)
+
+// RTM represents a managed websocket connection. It also supports
+// all the methods of the `Client` type.
+//
+// Create this element with Client's NewRTM() or NewRTMWithOptions(*RTMOptions)
+type RTM struct {
+	idGen IDGenerator
+	pings map[int]time.Time
+
+	// Connection life-cycle
+	conn             *websocket.Conn
+	IncomingEvents   chan RTMEvent
+	outgoingMessages chan OutgoingMessage
+	killChannel      chan bool
+	forcePing        chan bool
+	rawEvents        chan json.RawMessage
+	wasIntentional   bool
+	isConnected      bool
+
+	// Client is the main API, embedded
+	Client
+	websocketURL string
+
+	// UserDetails upon connection
+	info *Info
+
+	// useRTMStart should be set to true if you want to use
+	// rtm.start to connect to Slack, otherwise it will use
+	// rtm.connect
+	useRTMStart bool
+}
+
+// RTMOptions allows configuration of various options available for RTM messaging
+//
+// This structure will evolve in time so please make sure you are always using the
+// named keys for every entry available as per Go 1 compatibility promise adding fields
+// to this structure should not be considered a breaking change.
+type RTMOptions struct {
+	// UseRTMStart set to true in order to use rtm.start or false to use rtm.connect
+	// As of 11th July 2017 you should prefer setting this to false, see:
+	// https://api.slack.com/changelog/2017-04-start-using-rtm-connect-and-stop-using-rtm-start
+	UseRTMStart bool
+}
+
+// Disconnect and wait, blocking until a successful disconnection.
+func (rtm *RTM) Disconnect() error {
+	if !rtm.isConnected {
+		return errors.New("Invalid call to Disconnect - Slack API is already disconnected")
+	}
+	rtm.killChannel <- true
+	return nil
+}
+
+// Reconnect only makes sense if you've successfully disconnectd with Disconnect().
+func (rtm *RTM) Reconnect() error {
+	logger.Println("RTM::Reconnect not implemented!")
+	return nil
+}
+
+// GetInfo returns the info structure received when calling
+// "startrtm", holding all channels, groups and other metadata needed
+// to implement a full chat client. It will be non-nil after a call to
+// StartRTM().
+func (rtm *RTM) GetInfo() *Info {
+	return rtm.info
+}
+
+// SendMessage submits a simple message through the websocket.  For
+// more complicated messages, use `rtm.PostMessage` with a complete
+// struct describing your attachments and all.
+func (rtm *RTM) SendMessage(msg *OutgoingMessage) {
+	if msg == nil {
+		rtm.Debugln("Error: Attempted to SendMessage(nil)")
+		return
+	}
+
+	rtm.outgoingMessages <- *msg
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_channels.go b/vendor/github.com/nlopes/slack/websocket_channels.go
new file mode 100644
index 00000000..7dd3319b
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_channels.go
@@ -0,0 +1,72 @@
+package slack
+
+// ChannelCreatedEvent represents the Channel created event
+type ChannelCreatedEvent struct {
+	Type           string             `json:"type"`
+	Channel        ChannelCreatedInfo `json:"channel"`
+	EventTimestamp string             `json:"event_ts"`
+}
+
+// ChannelCreatedInfo represents the information associated with the Channel created event
+type ChannelCreatedInfo struct {
+	ID        string `json:"id"`
+	IsChannel bool   `json:"is_channel"`
+	Name      string `json:"name"`
+	Created   int    `json:"created"`
+	Creator   string `json:"creator"`
+}
+
+// ChannelJoinedEvent represents the Channel joined event
+type ChannelJoinedEvent struct {
+	Type    string  `json:"type"`
+	Channel Channel `json:"channel"`
+}
+
+// ChannelInfoEvent represents the Channel info event
+type ChannelInfoEvent struct {
+	// channel_left
+	// channel_deleted
+	// channel_archive
+	// channel_unarchive
+	Type      string `json:"type"`
+	Channel   string `json:"channel"`
+	User      string `json:"user,omitempty"`
+	Timestamp string `json:"ts,omitempty"`
+}
+
+// ChannelRenameEvent represents the Channel rename event
+type ChannelRenameEvent struct {
+	Type      string            `json:"type"`
+	Channel   ChannelRenameInfo `json:"channel"`
+	Timestamp string            `json:"event_ts"`
+}
+
+// ChannelRenameInfo represents the information associated with a Channel rename event
+type ChannelRenameInfo struct {
+	ID      string `json:"id"`
+	Name    string `json:"name"`
+	Created string `json:"created"`
+}
+
+// ChannelHistoryChangedEvent represents the Channel history changed event
+type ChannelHistoryChangedEvent struct {
+	Type           string `json:"type"`
+	Latest         string `json:"latest"`
+	Timestamp      string `json:"ts"`
+	EventTimestamp string `json:"event_ts"`
+}
+
+// ChannelMarkedEvent represents the Channel marked event
+type ChannelMarkedEvent ChannelInfoEvent
+
+// ChannelLeftEvent represents the Channel left event
+type ChannelLeftEvent ChannelInfoEvent
+
+// ChannelDeletedEvent represents the Channel deleted event
+type ChannelDeletedEvent ChannelInfoEvent
+
+// ChannelArchiveEvent represents the Channel archive event
+type ChannelArchiveEvent ChannelInfoEvent
+
+// ChannelUnarchiveEvent represents the Channel unarchive event
+type ChannelUnarchiveEvent ChannelInfoEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_dm.go b/vendor/github.com/nlopes/slack/websocket_dm.go
new file mode 100644
index 00000000..98bf6f88
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_dm.go
@@ -0,0 +1,23 @@
+package slack
+
+// IMCreatedEvent represents the IM created event
+type IMCreatedEvent struct {
+	Type    string             `json:"type"`
+	User    string             `json:"user"`
+	Channel ChannelCreatedInfo `json:"channel"`
+}
+
+// IMHistoryChangedEvent represents the IM history changed event
+type IMHistoryChangedEvent ChannelHistoryChangedEvent
+
+// IMOpenEvent represents the IM open event
+type IMOpenEvent ChannelInfoEvent
+
+// IMCloseEvent represents the IM close event
+type IMCloseEvent ChannelInfoEvent
+
+// IMMarkedEvent represents the IM marked event
+type IMMarkedEvent ChannelInfoEvent
+
+// IMMarkedHistoryChanged represents the IM marked history changed event
+type IMMarkedHistoryChanged ChannelInfoEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_dnd.go b/vendor/github.com/nlopes/slack/websocket_dnd.go
new file mode 100644
index 00000000..62ddea3a
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_dnd.go
@@ -0,0 +1,8 @@
+package slack
+
+// DNDUpdatedEvent represents the update event for Do Not Disturb
+type DNDUpdatedEvent struct {
+	Type   string    `json:"type"`
+	User   string    `json:"user"`
+	Status DNDStatus `json:"dnd_status"`
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_files.go b/vendor/github.com/nlopes/slack/websocket_files.go
new file mode 100644
index 00000000..8c5bd4f8
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_files.go
@@ -0,0 +1,49 @@
+package slack
+
+// FileActionEvent represents the File action event
+type fileActionEvent struct {
+	Type           string `json:"type"`
+	EventTimestamp string `json:"event_ts"`
+	File           File   `json:"file"`
+	// FileID is used for FileDeletedEvent
+	FileID string `json:"file_id,omitempty"`
+}
+
+// FileCreatedEvent represents the File created event
+type FileCreatedEvent fileActionEvent
+
+// FileSharedEvent represents the File shared event
+type FileSharedEvent fileActionEvent
+
+// FilePublicEvent represents the File public event
+type FilePublicEvent fileActionEvent
+
+// FileUnsharedEvent represents the File unshared event
+type FileUnsharedEvent fileActionEvent
+
+// FileChangeEvent represents the File change event
+type FileChangeEvent fileActionEvent
+
+// FileDeletedEvent represents the File deleted event
+type FileDeletedEvent fileActionEvent
+
+// FilePrivateEvent represents the File private event
+type FilePrivateEvent fileActionEvent
+
+// FileCommentAddedEvent represents the File comment added event
+type FileCommentAddedEvent struct {
+	fileActionEvent
+	Comment Comment `json:"comment"`
+}
+
+// FileCommentEditedEvent represents the File comment edited event
+type FileCommentEditedEvent struct {
+	fileActionEvent
+	Comment Comment `json:"comment"`
+}
+
+// FileCommentDeletedEvent represents the File comment deleted event
+type FileCommentDeletedEvent struct {
+	fileActionEvent
+	Comment string `json:"comment"`
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_groups.go b/vendor/github.com/nlopes/slack/websocket_groups.go
new file mode 100644
index 00000000..eb88985c
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_groups.go
@@ -0,0 +1,49 @@
+package slack
+
+// GroupCreatedEvent represents the Group created event
+type GroupCreatedEvent struct {
+	Type    string             `json:"type"`
+	User    string             `json:"user"`
+	Channel ChannelCreatedInfo `json:"channel"`
+}
+
+// XXX: Should we really do this? event.Group is probably nicer than event.Channel
+// even though the api returns "channel"
+
+// GroupMarkedEvent represents the Group marked event
+type GroupMarkedEvent ChannelInfoEvent
+
+// GroupOpenEvent represents the Group open event
+type GroupOpenEvent ChannelInfoEvent
+
+// GroupCloseEvent represents the Group close event
+type GroupCloseEvent ChannelInfoEvent
+
+// GroupArchiveEvent represents the Group archive event
+type GroupArchiveEvent ChannelInfoEvent
+
+// GroupUnarchiveEvent represents the Group unarchive event
+type GroupUnarchiveEvent ChannelInfoEvent
+
+// GroupLeftEvent represents the Group left event
+type GroupLeftEvent ChannelInfoEvent
+
+// GroupJoinedEvent represents the Group joined event
+type GroupJoinedEvent ChannelJoinedEvent
+
+// GroupRenameEvent represents the Group rename event
+type GroupRenameEvent struct {
+	Type      string          `json:"type"`
+	Group     GroupRenameInfo `json:"channel"`
+	Timestamp string          `json:"ts"`
+}
+
+// GroupRenameInfo represents the group info related to the renamed group
+type GroupRenameInfo struct {
+	ID      string `json:"id"`
+	Name    string `json:"name"`
+	Created string `json:"created"`
+}
+
+// GroupHistoryChangedEvent represents the Group history changed event
+type GroupHistoryChangedEvent ChannelHistoryChangedEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_internals.go b/vendor/github.com/nlopes/slack/websocket_internals.go
new file mode 100644
index 00000000..2a8abe6e
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_internals.go
@@ -0,0 +1,92 @@
+package slack
+
+import (
+	"fmt"
+	"time"
+)
+
+/**
+ * Internal events, created by this lib and not mapped to Slack APIs.
+ */
+
+// ConnectedEvent is used for when we connect to Slack
+type ConnectedEvent struct {
+	ConnectionCount int // 1 = first time, 2 = second time
+	Info            *Info
+}
+
+// ConnectionErrorEvent contains information about a connection error
+type ConnectionErrorEvent struct {
+	Attempt  int
+	ErrorObj error
+}
+
+func (c *ConnectionErrorEvent) Error() string {
+	return c.ErrorObj.Error()
+}
+
+// ConnectingEvent contains information about our connection attempt
+type ConnectingEvent struct {
+	Attempt         int // 1 = first attempt, 2 = second attempt
+	ConnectionCount int
+}
+
+// DisconnectedEvent contains information about how we disconnected
+type DisconnectedEvent struct {
+	Intentional bool
+}
+
+// LatencyReport contains information about connection latency
+type LatencyReport struct {
+	Value time.Duration
+}
+
+// InvalidAuthEvent is used in case we can't even authenticate with the API
+type InvalidAuthEvent struct{}
+
+// UnmarshallingErrorEvent is used when there are issues deconstructing a response
+type UnmarshallingErrorEvent struct {
+	ErrorObj error
+}
+
+func (u UnmarshallingErrorEvent) Error() string {
+	return u.ErrorObj.Error()
+}
+
+// MessageTooLongEvent is used when sending a message that is too long
+type MessageTooLongEvent struct {
+	Message   OutgoingMessage
+	MaxLength int
+}
+
+func (m *MessageTooLongEvent) Error() string {
+	return fmt.Sprintf("Message too long (max %d characters)", m.MaxLength)
+}
+
+// OutgoingErrorEvent contains information in case there were errors sending messages
+type OutgoingErrorEvent struct {
+	Message  OutgoingMessage
+	ErrorObj error
+}
+
+func (o OutgoingErrorEvent) Error() string {
+	return o.ErrorObj.Error()
+}
+
+// IncomingEventError contains information about an unexpected error receiving a websocket event
+type IncomingEventError struct {
+	ErrorObj error
+}
+
+func (i *IncomingEventError) Error() string {
+	return i.ErrorObj.Error()
+}
+
+// AckErrorEvent i
+type AckErrorEvent struct {
+	ErrorObj error
+}
+
+func (a *AckErrorEvent) Error() string {
+	return a.ErrorObj.Error()
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_managed_conn.go b/vendor/github.com/nlopes/slack/websocket_managed_conn.go
new file mode 100644
index 00000000..762b8f11
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_managed_conn.go
@@ -0,0 +1,451 @@
+package slack
+
+import (
+	"encoding/json"
+	"fmt"
+	"io"
+	"reflect"
+	"time"
+
+	"golang.org/x/net/websocket"
+)
+
+// ManageConnection can be called on a Slack RTM instance returned by the
+// NewRTM method. It will connect to the slack RTM API and handle all incoming
+// and outgoing events. If a connection fails then it will attempt to reconnect
+// and will notify any listeners through an error event on the IncomingEvents
+// channel.
+//
+// If the connection ends and the disconnect was unintentional then this will
+// attempt to reconnect.
+//
+// This should only be called once per slack API! Otherwise expect undefined
+// behavior.
+//
+// The defined error events are located in websocket_internals.go.
+func (rtm *RTM) ManageConnection() {
+	var connectionCount int
+	for {
+		connectionCount++
+		// start trying to connect
+		// the returned err is already passed onto the IncomingEvents channel
+		info, conn, err := rtm.connect(connectionCount, rtm.useRTMStart)
+		// if err != nil then the connection is sucessful - otherwise it is
+		// fatal
+		if err != nil {
+			return
+		}
+		rtm.info = info
+		rtm.IncomingEvents <- RTMEvent{"connected", &ConnectedEvent{
+			ConnectionCount: connectionCount,
+			Info:            info,
+		}}
+
+		rtm.conn = conn
+		rtm.isConnected = true
+
+		keepRunning := make(chan bool)
+		// we're now connected (or have failed fatally) so we can set up
+		// listeners
+		go rtm.handleIncomingEvents(keepRunning)
+
+		// this should be a blocking call until the connection has ended
+		rtm.handleEvents(keepRunning, 30*time.Second)
+
+		// after being disconnected we need to check if it was intentional
+		// if not then we should try to reconnect
+		if rtm.wasIntentional {
+			return
+		}
+		// else continue and run the loop again to connect
+	}
+}
+
+// connect attempts to connect to the slack websocket API. It handles any
+// errors that occur while connecting and will return once a connection
+// has been successfully opened.
+// If useRTMStart is false then it uses rtm.connect to create the connection,
+// otherwise it uses rtm.start.
+func (rtm *RTM) connect(connectionCount int, useRTMStart bool) (*Info, *websocket.Conn, error) {
+	// used to provide exponential backoff wait time with jitter before trying
+	// to connect to slack again
+	boff := &backoff{
+		Min:    100 * time.Millisecond,
+		Max:    5 * time.Minute,
+		Factor: 2,
+		Jitter: true,
+	}
+
+	for {
+		// send connecting event
+		rtm.IncomingEvents <- RTMEvent{"connecting", &ConnectingEvent{
+			Attempt:         boff.attempts + 1,
+			ConnectionCount: connectionCount,
+		}}
+		// attempt to start the connection
+		info, conn, err := rtm.startRTMAndDial(useRTMStart)
+		if err == nil {
+			return info, conn, nil
+		}
+		// check for fatal errors - currently only invalid_auth
+		if sErr, ok := err.(*WebError); ok && (sErr.Error() == "invalid_auth" || sErr.Error() == "account_inactive") {
+			rtm.IncomingEvents <- RTMEvent{"invalid_auth", &InvalidAuthEvent{}}
+			return nil, nil, sErr
+		}
+
+		// any other errors are treated as recoverable and we try again after
+		// sending the event along the IncomingEvents channel
+		rtm.IncomingEvents <- RTMEvent{"connection_error", &ConnectionErrorEvent{
+			Attempt:  boff.attempts,
+			ErrorObj: err,
+		}}
+		// get time we should wait before attempting to connect again
+		dur := boff.Duration()
+		rtm.Debugf("reconnection %d failed: %s", boff.attempts+1, err)
+		rtm.Debugln(" -> reconnecting in", dur)
+		time.Sleep(dur)
+	}
+}
+
+// startRTMAndDial attempts to connect to the slack websocket. If useRTMStart is true,
+// then it returns the  full information returned by the "rtm.start" method on the
+// slack API. Else it uses the "rtm.connect" method to connect
+func (rtm *RTM) startRTMAndDial(useRTMStart bool) (*Info, *websocket.Conn, error) {
+	var info *Info
+	var url string
+	var err error
+
+	if useRTMStart {
+		info, url, err = rtm.StartRTM()
+	} else {
+		info, url, err = rtm.ConnectRTM()
+	}
+	if err != nil {
+		return nil, nil, err
+	}
+
+	conn, err := websocketProxyDial(url, "http://api.slack.com")
+	if err != nil {
+		return nil, nil, err
+	}
+	return info, conn, err
+}
+
+// killConnection stops the websocket connection and signals to all goroutines
+// that they should cease listening to the connection for events.
+//
+// This should not be called directly! Instead a boolean value (true for
+// intentional, false otherwise) should be sent to the killChannel on the RTM.
+func (rtm *RTM) killConnection(keepRunning chan bool, intentional bool) error {
+	rtm.Debugln("killing connection")
+	if rtm.isConnected {
+		close(keepRunning)
+	}
+	rtm.isConnected = false
+	rtm.wasIntentional = intentional
+	err := rtm.conn.Close()
+	rtm.IncomingEvents <- RTMEvent{"disconnected", &DisconnectedEvent{intentional}}
+	return err
+}
+
+// handleEvents is a blocking function that handles all events. This sends
+// pings when asked to (on rtm.forcePing) and upon every given elapsed
+// interval. This also sends outgoing messages that are received from the RTM's
+// outgoingMessages channel. This also handles incoming raw events from the RTM
+// rawEvents channel.
+func (rtm *RTM) handleEvents(keepRunning chan bool, interval time.Duration) {
+	ticker := time.NewTicker(interval)
+	defer ticker.Stop()
+	for {
+		select {
+		// catch "stop" signal on channel close
+		case intentional := <-rtm.killChannel:
+			_ = rtm.killConnection(keepRunning, intentional)
+			return
+			// send pings on ticker interval
+		case <-ticker.C:
+			err := rtm.ping()
+			if err != nil {
+				_ = rtm.killConnection(keepRunning, false)
+				return
+			}
+		case <-rtm.forcePing:
+			err := rtm.ping()
+			if err != nil {
+				_ = rtm.killConnection(keepRunning, false)
+				return
+			}
+		// listen for messages that need to be sent
+		case msg := <-rtm.outgoingMessages:
+			rtm.sendOutgoingMessage(msg)
+		// listen for incoming messages that need to be parsed
+		case rawEvent := <-rtm.rawEvents:
+			rtm.handleRawEvent(rawEvent)
+		}
+	}
+}
+
+// handleIncomingEvents monitors the RTM's opened websocket for any incoming
+// events. It pushes the raw events onto the RTM channel rawEvents.
+//
+// This will stop executing once the RTM's keepRunning channel has been closed
+// or has anything sent to it.
+func (rtm *RTM) handleIncomingEvents(keepRunning <-chan bool) {
+	for {
+		// non-blocking listen to see if channel is closed
+		select {
+		// catch "stop" signal on channel close
+		case <-keepRunning:
+			return
+		default:
+			rtm.receiveIncomingEvent()
+		}
+	}
+}
+
+func (rtm *RTM) sendWithDeadline(msg interface{}) error {
+	// set a write deadline on the connection
+	if err := rtm.conn.SetWriteDeadline(time.Now().Add(10 * time.Second)); err != nil {
+		return err
+	}
+	if err := websocket.JSON.Send(rtm.conn, msg); err != nil {
+		return err
+	}
+	// remove write deadline
+	return rtm.conn.SetWriteDeadline(time.Time{})
+}
+
+// sendOutgoingMessage sends the given OutgoingMessage to the slack websocket.
+//
+// It does not currently detect if a outgoing message fails due to a disconnect
+// and instead lets a future failed 'PING' detect the failed connection.
+func (rtm *RTM) sendOutgoingMessage(msg OutgoingMessage) {
+	rtm.Debugln("Sending message:", msg)
+	if len(msg.Text) > MaxMessageTextLength {
+		rtm.IncomingEvents <- RTMEvent{"outgoing_error", &MessageTooLongEvent{
+			Message:   msg,
+			MaxLength: MaxMessageTextLength,
+		}}
+		return
+	}
+
+	if err := rtm.sendWithDeadline(msg); err != nil {
+		rtm.IncomingEvents <- RTMEvent{"outgoing_error", &OutgoingErrorEvent{
+			Message:  msg,
+			ErrorObj: err,
+		}}
+		// TODO force ping?
+	}
+}
+
+// ping sends a 'PING' message to the RTM's websocket. If the 'PING' message
+// fails to send then this returns an error signifying that the connection
+// should be considered disconnected.
+//
+// This does not handle incoming 'PONG' responses but does store the time of
+// each successful 'PING' send so latency can be detected upon a 'PONG'
+// response.
+func (rtm *RTM) ping() error {
+	id := rtm.idGen.Next()
+	rtm.Debugln("Sending PING ", id)
+	rtm.pings[id] = time.Now()
+
+	msg := &Ping{ID: id, Type: "ping"}
+
+	if err := rtm.sendWithDeadline(msg); err != nil {
+		rtm.Debugf("RTM Error sending 'PING %d': %s", id, err.Error())
+		return err
+	}
+	return nil
+}
+
+// receiveIncomingEvent attempts to receive an event from the RTM's websocket.
+// This will block until a frame is available from the websocket.
+func (rtm *RTM) receiveIncomingEvent() {
+	event := json.RawMessage{}
+	err := websocket.JSON.Receive(rtm.conn, &event)
+	if err == io.EOF {
+		// EOF's don't seem to signify a failed connection so instead we ignore
+		// them here and detect a failed connection upon attempting to send a
+		// 'PING' message
+
+		// trigger a 'PING' to detect pontential websocket disconnect
+		rtm.forcePing <- true
+		return
+	} else if err != nil {
+		rtm.IncomingEvents <- RTMEvent{"incoming_error", &IncomingEventError{
+			ErrorObj: err,
+		}}
+		// force a ping here too?
+		return
+	} else if len(event) == 0 {
+		rtm.Debugln("Received empty event")
+		return
+	}
+	rtm.Debugln("Incoming Event:", string(event[:]))
+	rtm.rawEvents <- event
+}
+
+// handleRawEvent takes a raw JSON message received from the slack websocket
+// and handles the encoded event.
+func (rtm *RTM) handleRawEvent(rawEvent json.RawMessage) {
+	event := &Event{}
+	err := json.Unmarshal(rawEvent, event)
+	if err != nil {
+		rtm.IncomingEvents <- RTMEvent{"unmarshalling_error", &UnmarshallingErrorEvent{err}}
+		return
+	}
+	switch event.Type {
+	case "":
+		rtm.handleAck(rawEvent)
+	case "hello":
+		rtm.IncomingEvents <- RTMEvent{"hello", &HelloEvent{}}
+	case "pong":
+		rtm.handlePong(rawEvent)
+	default:
+		rtm.handleEvent(event.Type, rawEvent)
+	}
+}
+
+// handleAck handles an incoming 'ACK' message.
+func (rtm *RTM) handleAck(event json.RawMessage) {
+	ack := &AckMessage{}
+	if err := json.Unmarshal(event, ack); err != nil {
+		rtm.Debugln("RTM Error unmarshalling 'ack' event:", err)
+		rtm.Debugln(" -> Erroneous 'ack' event:", string(event))
+		return
+	}
+	if ack.Ok {
+		rtm.IncomingEvents <- RTMEvent{"ack", ack}
+	} else {
+		rtm.IncomingEvents <- RTMEvent{"ack_error", &AckErrorEvent{ack.Error}}
+	}
+}
+
+// handlePong handles an incoming 'PONG' message which should be in response to
+// a previously sent 'PING' message. This is then used to compute the
+// connection's latency.
+func (rtm *RTM) handlePong(event json.RawMessage) {
+	pong := &Pong{}
+	if err := json.Unmarshal(event, pong); err != nil {
+		rtm.Debugln("RTM Error unmarshalling 'pong' event:", err)
+		rtm.Debugln(" -> Erroneous 'ping' event:", string(event))
+		return
+	}
+	if pingTime, exists := rtm.pings[pong.ReplyTo]; exists {
+		latency := time.Since(pingTime)
+		rtm.IncomingEvents <- RTMEvent{"latency_report", &LatencyReport{Value: latency}}
+		delete(rtm.pings, pong.ReplyTo)
+	} else {
+		rtm.Debugln("RTM Error - unmatched 'pong' event:", string(event))
+	}
+}
+
+// handleEvent is the "default" response to an event that does not have a
+// special case. It matches the command's name to a mapping of defined events
+// and then sends the corresponding event struct to the IncomingEvents channel.
+// If the event type is not found or the event cannot be unmarshalled into the
+// correct struct then this sends an UnmarshallingErrorEvent to the
+// IncomingEvents channel.
+func (rtm *RTM) handleEvent(typeStr string, event json.RawMessage) {
+	v, exists := eventMapping[typeStr]
+	if !exists {
+		rtm.Debugf("RTM Error, received unmapped event %q: %s\n", typeStr, string(event))
+		err := fmt.Errorf("RTM Error: Received unmapped event %q: %s\n", typeStr, string(event))
+		rtm.IncomingEvents <- RTMEvent{"unmarshalling_error", &UnmarshallingErrorEvent{err}}
+		return
+	}
+	t := reflect.TypeOf(v)
+	recvEvent := reflect.New(t).Interface()
+	err := json.Unmarshal(event, recvEvent)
+	if err != nil {
+		rtm.Debugf("RTM Error, could not unmarshall event %q: %s\n", typeStr, string(event))
+		err := fmt.Errorf("RTM Error: Could not unmarshall event %q: %s\n", typeStr, string(event))
+		rtm.IncomingEvents <- RTMEvent{"unmarshalling_error", &UnmarshallingErrorEvent{err}}
+		return
+	}
+	rtm.IncomingEvents <- RTMEvent{typeStr, recvEvent}
+}
+
+// eventMapping holds a mapping of event names to their corresponding struct
+// implementations. The structs should be instances of the unmarshalling
+// target for the matching event type.
+var eventMapping = map[string]interface{}{
+	"message":         MessageEvent{},
+	"presence_change": PresenceChangeEvent{},
+	"user_typing":     UserTypingEvent{},
+
+	"channel_marked":          ChannelMarkedEvent{},
+	"channel_created":         ChannelCreatedEvent{},
+	"channel_joined":          ChannelJoinedEvent{},
+	"channel_left":            ChannelLeftEvent{},
+	"channel_deleted":         ChannelDeletedEvent{},
+	"channel_rename":          ChannelRenameEvent{},
+	"channel_archive":         ChannelArchiveEvent{},
+	"channel_unarchive":       ChannelUnarchiveEvent{},
+	"channel_history_changed": ChannelHistoryChangedEvent{},
+
+	"dnd_updated":      DNDUpdatedEvent{},
+	"dnd_updated_user": DNDUpdatedEvent{},
+
+	"im_created":         IMCreatedEvent{},
+	"im_open":            IMOpenEvent{},
+	"im_close":           IMCloseEvent{},
+	"im_marked":          IMMarkedEvent{},
+	"im_history_changed": IMHistoryChangedEvent{},
+
+	"group_marked":          GroupMarkedEvent{},
+	"group_open":            GroupOpenEvent{},
+	"group_joined":          GroupJoinedEvent{},
+	"group_left":            GroupLeftEvent{},
+	"group_close":           GroupCloseEvent{},
+	"group_rename":          GroupRenameEvent{},
+	"group_archive":         GroupArchiveEvent{},
+	"group_unarchive":       GroupUnarchiveEvent{},
+	"group_history_changed": GroupHistoryChangedEvent{},
+
+	"file_created":         FileCreatedEvent{},
+	"file_shared":          FileSharedEvent{},
+	"file_unshared":        FileUnsharedEvent{},
+	"file_public":          FilePublicEvent{},
+	"file_private":         FilePrivateEvent{},
+	"file_change":          FileChangeEvent{},
+	"file_deleted":         FileDeletedEvent{},
+	"file_comment_added":   FileCommentAddedEvent{},
+	"file_comment_edited":  FileCommentEditedEvent{},
+	"file_comment_deleted": FileCommentDeletedEvent{},
+
+	"pin_added":   PinAddedEvent{},
+	"pin_removed": PinRemovedEvent{},
+
+	"star_added":   StarAddedEvent{},
+	"star_removed": StarRemovedEvent{},
+
+	"reaction_added":   ReactionAddedEvent{},
+	"reaction_removed": ReactionRemovedEvent{},
+
+	"pref_change": PrefChangeEvent{},
+
+	"team_join":              TeamJoinEvent{},
+	"team_rename":            TeamRenameEvent{},
+	"team_pref_change":       TeamPrefChangeEvent{},
+	"team_domain_change":     TeamDomainChangeEvent{},
+	"team_migration_started": TeamMigrationStartedEvent{},
+
+	"manual_presence_change": ManualPresenceChangeEvent{},
+
+	"user_change": UserChangeEvent{},
+
+	"emoji_changed": EmojiChangedEvent{},
+
+	"commands_changed": CommandsChangedEvent{},
+
+	"email_domain_changed": EmailDomainChangedEvent{},
+
+	"bot_added":   BotAddedEvent{},
+	"bot_changed": BotChangedEvent{},
+
+	"accounts_changed": AccountsChangedEvent{},
+
+	"reconnect_url": ReconnectUrlEvent{},
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_misc.go b/vendor/github.com/nlopes/slack/websocket_misc.go
new file mode 100644
index 00000000..ad283ea1
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_misc.go
@@ -0,0 +1,121 @@
+package slack
+
+import (
+	"encoding/json"
+	"fmt"
+)
+
+// AckMessage is used for messages received in reply to other messages
+type AckMessage struct {
+	ReplyTo   int    `json:"reply_to"`
+	Timestamp string `json:"ts"`
+	Text      string `json:"text"`
+	RTMResponse
+}
+
+// RTMResponse encapsulates response details as returned by the Slack API
+type RTMResponse struct {
+	Ok    bool      `json:"ok"`
+	Error *RTMError `json:"error"`
+}
+
+// RTMError encapsulates error information as returned by the Slack API
+type RTMError struct {
+	Code int
+	Msg  string
+}
+
+func (s RTMError) Error() string {
+	return fmt.Sprintf("Code %d - %s", s.Code, s.Msg)
+}
+
+// MessageEvent represents a Slack Message (used as the event type for an incoming message)
+type MessageEvent Message
+
+// RTMEvent is the main wrapper. You will find all the other messages attached
+type RTMEvent struct {
+	Type string
+	Data interface{}
+}
+
+// HelloEvent represents the hello event
+type HelloEvent struct{}
+
+// PresenceChangeEvent represents the presence change event
+type PresenceChangeEvent struct {
+	Type     string `json:"type"`
+	Presence string `json:"presence"`
+	User     string `json:"user"`
+}
+
+// UserTypingEvent represents the user typing event
+type UserTypingEvent struct {
+	Type    string `json:"type"`
+	User    string `json:"user"`
+	Channel string `json:"channel"`
+}
+
+// PrefChangeEvent represents a user preferences change event
+type PrefChangeEvent struct {
+	Type  string          `json:"type"`
+	Name  string          `json:"name"`
+	Value json.RawMessage `json:"value"`
+}
+
+// ManualPresenceChangeEvent represents the manual presence change event
+type ManualPresenceChangeEvent struct {
+	Type     string `json:"type"`
+	Presence string `json:"presence"`
+}
+
+// UserChangeEvent represents the user change event
+type UserChangeEvent struct {
+	Type string `json:"type"`
+	User User   `json:"user"`
+}
+
+// EmojiChangedEvent represents the emoji changed event
+type EmojiChangedEvent struct {
+	Type           string   `json:"type"`
+	SubType        string   `json:"subtype"`
+	Name           string   `json:"name"`
+	Names          []string `json:"names"`
+	Value          string   `json:"value"` 
+	EventTimestamp string   `json:"event_ts"`
+}
+
+// CommandsChangedEvent represents the commands changed event
+type CommandsChangedEvent struct {
+	Type           string `json:"type"`
+	EventTimestamp string `json:"event_ts"`
+}
+
+// EmailDomainChangedEvent represents the email domain changed event
+type EmailDomainChangedEvent struct {
+	Type           string `json:"type"`
+	EventTimestamp string `json:"event_ts"`
+	EmailDomain    string `json:"email_domain"`
+}
+
+// BotAddedEvent represents the bot added event
+type BotAddedEvent struct {
+	Type string `json:"type"`
+	Bot  Bot    `json:"bot"`
+}
+
+// BotChangedEvent represents the bot changed event
+type BotChangedEvent struct {
+	Type string `json:"type"`
+	Bot  Bot    `json:"bot"`
+}
+
+// AccountsChangedEvent represents the accounts changed event
+type AccountsChangedEvent struct {
+	Type string `json:"type"`
+}
+
+// ReconnectUrlEvent represents the receiving reconnect url event
+type ReconnectUrlEvent struct {
+	Type string `json:"type"`
+	URL  string `json:"url"`
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_pins.go b/vendor/github.com/nlopes/slack/websocket_pins.go
new file mode 100644
index 00000000..95445e28
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_pins.go
@@ -0,0 +1,16 @@
+package slack
+
+type pinEvent struct {
+	Type           string `json:"type"`
+	User           string `json:"user"`
+	Item           Item   `json:"item"`
+	Channel        string `json:"channel_id"`
+	EventTimestamp string `json:"event_ts"`
+	HasPins        bool   `json:"has_pins,omitempty"`
+}
+
+// PinAddedEvent represents the Pin added event
+type PinAddedEvent pinEvent
+
+// PinRemovedEvent represents the Pin removed event
+type PinRemovedEvent pinEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_proxy.go b/vendor/github.com/nlopes/slack/websocket_proxy.go
new file mode 100644
index 00000000..440015d6
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_proxy.go
@@ -0,0 +1,83 @@
+package slack
+
+import (
+	"crypto/tls"
+	"errors"
+	"net"
+	"net/http"
+	"net/http/httputil"
+	"net/url"
+	"os"
+	"strings"
+
+	"golang.org/x/net/websocket"
+)
+
+// Taken and reworked from: https://gist.github.com/madmo/8548738
+func websocketHTTPConnect(proxy, urlString string) (net.Conn, error) {
+	p, err := net.Dial("tcp", proxy)
+	if err != nil {
+		return nil, err
+	}
+
+	turl, err := url.Parse(urlString)
+	if err != nil {
+		return nil, err
+	}
+
+	req := http.Request{
+		Method: "CONNECT",
+		URL:    &url.URL{},
+		Host:   turl.Host,
+	}
+
+	cc := httputil.NewProxyClientConn(p, nil)
+	cc.Do(&req)
+	if err != nil && err != httputil.ErrPersistEOF {
+		return nil, err
+	}
+
+	rwc, _ := cc.Hijack()
+
+	return rwc, nil
+}
+
+func websocketProxyDial(urlString, origin string) (ws *websocket.Conn, err error) {
+	if os.Getenv("HTTP_PROXY") == "" {
+		return websocket.Dial(urlString, "", origin)
+	}
+
+	purl, err := url.Parse(os.Getenv("HTTP_PROXY"))
+	if err != nil {
+		return nil, err
+	}
+
+	config, err := websocket.NewConfig(urlString, origin)
+	if err != nil {
+		return nil, err
+	}
+
+	client, err := websocketHTTPConnect(purl.Host, urlString)
+	if err != nil {
+		return nil, err
+	}
+
+	switch config.Location.Scheme {
+	case "ws":
+	case "wss":
+		tlsClient := tls.Client(client, &tls.Config{
+			ServerName: strings.Split(config.Location.Host, ":")[0],
+		})
+		err := tlsClient.Handshake()
+		if err != nil {
+			tlsClient.Close()
+			return nil, err
+		}
+		client = tlsClient
+
+	default:
+		return nil, errors.New("invalid websocket schema")
+	}
+
+	return websocket.NewClient(config, client)
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_reactions.go b/vendor/github.com/nlopes/slack/websocket_reactions.go
new file mode 100644
index 00000000..e4973878
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_reactions.go
@@ -0,0 +1,25 @@
+package slack
+
+// reactionItem is a lighter-weight item than is returned by the reactions list.
+type reactionItem struct {
+	Type        string `json:"type"`
+	Channel     string `json:"channel,omitempty"`
+	File        string `json:"file,omitempty"`
+	FileComment string `json:"file_comment,omitempty"`
+	Timestamp   string `json:"ts,omitempty"`
+}
+
+type reactionEvent struct {
+	Type           string       `json:"type"`
+	User           string       `json:"user"`
+	ItemUser       string       `json:"item_user"`
+	Item           reactionItem `json:"item"`
+	Reaction       string       `json:"reaction"`
+	EventTimestamp string       `json:"event_ts"`
+}
+
+// ReactionAddedEvent represents the Reaction added event
+type ReactionAddedEvent reactionEvent
+
+// ReactionRemovedEvent represents the Reaction removed event
+type ReactionRemovedEvent reactionEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_stars.go b/vendor/github.com/nlopes/slack/websocket_stars.go
new file mode 100644
index 00000000..e0f2dda3
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_stars.go
@@ -0,0 +1,14 @@
+package slack
+
+type starEvent struct {
+	Type           string      `json:"type"`
+	User           string      `json:"user"`
+	Item           StarredItem `json:"item"`
+	EventTimestamp string      `json:"event_ts"`
+}
+
+// StarAddedEvent represents the Star added event
+type StarAddedEvent starEvent
+
+// StarRemovedEvent represents the Star removed event
+type StarRemovedEvent starEvent
diff --git a/vendor/github.com/nlopes/slack/websocket_teams.go b/vendor/github.com/nlopes/slack/websocket_teams.go
new file mode 100644
index 00000000..3898c833
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_teams.go
@@ -0,0 +1,33 @@
+package slack
+
+// TeamJoinEvent represents the Team join event
+type TeamJoinEvent struct {
+	Type string `json:"type"`
+	User User   `json:"user"`
+}
+
+// TeamRenameEvent represents the Team rename event
+type TeamRenameEvent struct {
+	Type           string `json:"type"`
+	Name           string `json:"name,omitempty"`
+	EventTimestamp string `json:"event_ts,omitempty"`
+}
+
+// TeamPrefChangeEvent represents the Team preference change event
+type TeamPrefChangeEvent struct {
+	Type  string   `json:"type"`
+	Name  string   `json:"name,omitempty"`
+	Value []string `json:"value,omitempty"`
+}
+
+// TeamDomainChangeEvent represents the Team domain change event
+type TeamDomainChangeEvent struct {
+	Type   string `json:"type"`
+	URL    string `json:"url"`
+	Domain string `json:"domain"`
+}
+
+// TeamMigrationStartedEvent represents the Team migration started event
+type TeamMigrationStartedEvent struct {
+	Type string `json:"type"`
+}
diff --git a/vendor/github.com/nlopes/slack/websocket_utils.go b/vendor/github.com/nlopes/slack/websocket_utils.go
new file mode 100644
index 00000000..b3d0ec89
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_utils.go
@@ -0,0 +1,20 @@
+package slack
+
+import (
+	"net"
+	"net/url"
+)
+
+var portMapping = map[string]string{"ws": "80", "wss": "443"}
+
+func websocketizeURLPort(orig string) (string, error) {
+	urlObj, err := url.ParseRequestURI(orig)
+	if err != nil {
+		return "", err
+	}
+	_, _, err = net.SplitHostPort(urlObj.Host)
+	if err != nil {
+		return urlObj.Scheme + "://" + urlObj.Host + ":" + portMapping[urlObj.Scheme] + urlObj.Path, nil
+	}
+	return orig, nil
+}

From bb73bb6b1a8e5a0f66bdb7dcd90fd80d224fdf3a Mon Sep 17 00:00:00 2001
From: Karolis Rusenas 
Date: Tue, 27 Jun 2017 21:33:33 +0100
Subject: [PATCH 03/27] general vendor deps updated

---
 vendor/github.com/Sirupsen/logrus/.travis.yml |     1 +
 .../github.com/coreos/go-semver/.travis.yml   |     8 +
 vendor/github.com/coreos/go-semver/LICENSE    |   202 +
 vendor/github.com/coreos/go-semver/README.md  |    28 +
 vendor/github.com/coreos/go-semver/example.go |    20 +
 .../coreos/go-semver/semver/semver.go         |   268 +
 .../coreos/go-semver/semver/semver_test.go    |   370 +
 .../coreos/go-semver/semver/sort.go           |    38 +
 vendor/github.com/gogo/protobuf/.gitignore    |     2 +
 vendor/github.com/gogo/protobuf/.travis.yml   |    17 +-
 vendor/github.com/gogo/protobuf/AUTHORS       |    14 +
 vendor/github.com/gogo/protobuf/CONTRIBUTORS  |     3 +
 vendor/github.com/gogo/protobuf/LICENSE       |     6 +-
 vendor/github.com/gogo/protobuf/Makefile      |    36 +-
 vendor/github.com/gogo/protobuf/README        |    44 +
 vendor/github.com/gogo/protobuf/Readme.md     |    99 +-
 .../gogo/protobuf/_conformance/Makefile       |    40 +
 .../gogo/protobuf/_conformance/conformance.go |   161 +
 .../conformance_proto/conformance.pb.go       |  1890 +
 .../conformance_proto/conformance.proto       |   285 +
 vendor/github.com/gogo/protobuf/bench.md      |   190 +
 .../github.com/gogo/protobuf/codec/codec.go   |     6 +-
 .../gogo/protobuf/codec/codec_test.go         |     6 +-
 .../github.com/gogo/protobuf/custom_types.md  |    68 +
 vendor/github.com/gogo/protobuf/extensions.md |   161 +
 .../gogo/protobuf/gogoproto/Makefile          |     7 +-
 .../github.com/gogo/protobuf/gogoproto/doc.go |     7 +-
 .../gogo/protobuf/gogoproto/gogo.pb.go        |   285 +-
 .../gogo/protobuf/gogoproto/gogo.proto        |    16 +-
 .../gogo/protobuf/gogoproto/helper.go         |    51 +-
 .../gogo/protobuf/gogoreplace/main.go         |    25 +
 vendor/github.com/gogo/protobuf/io/full.go    |     6 +-
 vendor/github.com/gogo/protobuf/io/io.go      |     6 +-
 vendor/github.com/gogo/protobuf/io/io_test.go |     6 +-
 vendor/github.com/gogo/protobuf/io/uint32.go  |     6 +-
 vendor/github.com/gogo/protobuf/io/varint.go  |     6 +-
 .../github.com/gogo/protobuf/jsonpb/jsonpb.go |   425 +-
 .../gogo/protobuf/jsonpb/jsonpb_test.go       |   184 +-
 .../jsonpb/jsonpb_test_proto/Makefile         |     2 +-
 .../jsonpb_test_proto/more_test_objects.pb.go |   137 +-
 .../jsonpb_test_proto/more_test_objects.proto |    11 +
 .../jsonpb_test_proto/test_objects.pb.go      |   306 +-
 .../jsonpb_test_proto/test_objects.proto      |    24 +
 .../gogo/protobuf/plugin/compare/compare.go   |    22 +-
 .../protobuf/plugin/compare/comparetest.go    |    19 +-
 .../plugin/defaultcheck/defaultcheck.go       |     4 +-
 .../plugin/description/description.go         |     4 +-
 .../plugin/description/descriptiontest.go     |     4 +-
 .../protobuf/plugin/embedcheck/embedcheck.go  |     4 +-
 .../plugin/enumstringer/enumstringer.go       |     6 +-
 .../gogo/protobuf/plugin/equal/equal.go       |    67 +-
 .../gogo/protobuf/plugin/equal/equaltest.go   |    21 +-
 .../gogo/protobuf/plugin/face/face.go         |     4 +-
 .../gogo/protobuf/plugin/face/facetest.go     |     4 +-
 .../gogo/protobuf/plugin/gostring/gostring.go |    77 +-
 .../protobuf/plugin/gostring/gostringtest.go  |     4 +-
 .../protobuf/plugin/marshalto/marshalto.go    |   350 +-
 .../protobuf/plugin/oneofcheck/oneofcheck.go  |     4 +-
 .../gogo/protobuf/plugin/populate/populate.go |   133 +-
 .../gogo/protobuf/plugin/size/size.go         |   111 +-
 .../gogo/protobuf/plugin/size/sizetest.go     |    10 +-
 .../gogo/protobuf/plugin/stringer/stringer.go |    11 +-
 .../protobuf/plugin/stringer/stringertest.go  |     4 +-
 .../gogo/protobuf/plugin/testgen/testgen.go   |    89 +-
 .../gogo/protobuf/plugin/union/union.go       |     4 +-
 .../gogo/protobuf/plugin/union/uniontest.go   |     4 +-
 .../protobuf/plugin/unmarshal/unmarshal.go    |   284 +-
 .../github.com/gogo/protobuf/proto/Makefile   |     2 +-
 .../gogo/protobuf/proto/all_test.go           |   130 +-
 .../gogo/protobuf/proto/any_test.go           |   300 +
 .../github.com/gogo/protobuf/proto/clone.go   |    14 +-
 .../gogo/protobuf/proto/clone_test.go         |    33 +
 .../github.com/gogo/protobuf/proto/decode.go  |   137 +-
 .../gogo/protobuf/proto/decode_gogo.go        |    11 +-
 .../gogo/protobuf/proto/decode_test.go        |   260 +
 .../gogo/protobuf/proto/duration.go           |   100 +
 .../gogo/protobuf/proto/duration_gogo.go      |   203 +
 .../github.com/gogo/protobuf/proto/encode.go  |    73 +-
 .../gogo/protobuf/proto/encode_gogo.go        |    22 +-
 .../gogo/protobuf/proto/encode_test.go        |    82 +
 .../github.com/gogo/protobuf/proto/equal.go   |    34 +-
 .../gogo/protobuf/proto/equal_test.go         |    12 +
 .../gogo/protobuf/proto/extensions.go         |   413 +-
 .../gogo/protobuf/proto/extensions_gogo.go    |    88 +-
 .../gogo/protobuf/proto/extensions_test.go    |   110 +-
 vendor/github.com/gogo/protobuf/proto/lib.go  |     6 +-
 .../gogo/protobuf/proto/lib_gogo.go           |     6 +-
 .../gogo/protobuf/proto/map_test.go           |    46 +
 .../gogo/protobuf/proto/message_set.go        |    43 +-
 .../gogo/protobuf/proto/message_set_test.go   |     8 +-
 .../gogo/protobuf/proto/pointer_reflect.go    |     7 +-
 .../protobuf/proto/pointer_reflect_gogo.go    |    85 +
 .../gogo/protobuf/proto/pointer_unsafe.go     |     6 +-
 .../protobuf/proto/pointer_unsafe_gogo.go     |    42 +-
 .../gogo/protobuf/proto/properties.go         |    93 +-
 .../gogo/protobuf/proto/properties_gogo.go    |    51 +-
 .../protobuf/proto/proto3_proto/proto3.pb.go  |   247 +-
 .../protobuf/proto/proto3_proto/proto3.proto  |    23 +-
 .../gogo/protobuf/proto/proto3_test.go        |    10 +
 .../gogo/protobuf/proto/skip_gogo.go          |     6 +-
 .../gogo/protobuf/proto/testdata/test.pb.go   |  1092 +-
 .../gogo/protobuf/proto/testdata/test.proto   |    13 +
 vendor/github.com/gogo/protobuf/proto/text.go |   213 +-
 .../gogo/protobuf/proto/text_gogo.go          |    12 +-
 .../gogo/protobuf/proto/text_parser.go        |   270 +-
 .../gogo/protobuf/proto/text_parser_test.go   |   122 +-
 .../gogo/protobuf/proto/timestamp.go          |   113 +
 .../gogo/protobuf/proto/timestamp_gogo.go     |   229 +
 .../gogo/protobuf/protobuf/Makefile           |    30 +
 .../protobuf/google/protobuf/any.proto        |   139 +
 .../google/protobuf/compiler/plugin.proto     |    15 +-
 .../protobuf/google/protobuf/descriptor.proto |    89 +-
 .../protobuf/google/protobuf/duration.proto   |   104 +
 .../protobuf/google/protobuf/empty.proto      |    52 +
 .../protobuf/google/protobuf/field_mask.proto |   246 +
 .../protobuf/google/protobuf/struct.proto     |    96 +
 .../protobuf/google/protobuf/timestamp.proto  |   108 +
 .../protobuf/google/protobuf/wrappers.proto   |   118 +
 .../gogo/protobuf/protoc-gen-combo/combo.go   |    68 +-
 .../gogo/protobuf/protoc-gen-gofast/main.go   |     6 +-
 .../protoc-gen-gogo/descriptor/Makefile       |     3 +
 .../protoc-gen-gogo/descriptor/descriptor.go  |   118 +
 .../descriptor/descriptor.pb.go               |   619 +-
 ...gostring.go => descriptor_gostring.gen.go} |   142 +-
 .../descriptor/descriptor_test.go             |    31 +
 .../protoc-gen-gogo/descriptor/helper.go      |    37 +-
 .../protoc-gen-gogo/generator/generator.go    |   517 +-
 .../protoc-gen-gogo/generator/helper.go       |    65 +-
 .../protobuf/protoc-gen-gogo/grpc/grpc.go     |     4 +-
 .../protobuf/protoc-gen-gogo/plugin/Makefile  |     2 +-
 .../protoc-gen-gogo/plugin/plugin.pb.go       |   116 +-
 .../protoc-gen-gogo/testdata/Makefile         |     2 +-
 .../testdata/my_test/test.pb.go               |   188 +-
 .../protoc-gen-gogo/testdata/proto3.proto     |     1 +
 .../gogo/protobuf/protoc-gen-gogofast/main.go |     8 +-
 .../protobuf/protoc-gen-gogofaster/main.go    |     8 +-
 .../protobuf/protoc-gen-gogoslick/main.go     |     8 +-
 .../protobuf/protoc-gen-gogotypes/main.go     |    75 +
 .../gogo/protobuf/protoc-gen-gostring/main.go |    42 +
 .../protobuf/protoc-min-version/minversion.go |     6 +-
 .../gogo/protobuf/sortkeys/sortkeys.go        |     4 +-
 vendor/github.com/gogo/protobuf/test/Makefile |     9 +-
 .../protobuf/test/asymetric-issue125/Makefile |     6 +-
 .../test/asymetric-issue125/asym.pb.go        |   145 +-
 .../test/asymetric-issue125/asym.proto        |     8 +-
 .../test/asymetric-issue125/asym_test.go      |     6 +-
 .../test/asymetric-issue125/asympb_test.go    |    44 +-
 .../protobuf/test/asymetric-issue125/pop.go   |     6 +-
 .../github.com/gogo/protobuf/test/bug_test.go |     6 +-
 .../gogo/protobuf/test/casttype/Makefile      |     9 +-
 .../protobuf/test/casttype/casttype.proto     |     7 +-
 .../test/casttype/combos/both/casttype.pb.go  |  1447 +-
 .../test/casttype/combos/both/casttype.proto  |     7 +-
 .../casttype/combos/both/casttypepb_test.go   |   104 +-
 .../casttype/combos/marshaler/casttype.pb.go  |   941 +-
 .../casttype/combos/marshaler/casttype.proto  |     7 +-
 .../combos/marshaler/casttypepb_test.go       |   104 +-
 .../casttype/combos/neither/casttype.pb.go    |   738 +-
 .../casttype/combos/neither/casttype.proto    |     7 +-
 .../combos/neither/casttypepb_test.go         |    76 +-
 .../combos/unmarshaler/casttype.pb.go         |  1245 +-
 .../combos/unmarshaler/casttype.proto         |     7 +-
 .../combos/unmarshaler/casttypepb_test.go     |    76 +-
 .../casttype/combos/unsafeboth/casttype.pb.go |  1447 +-
 .../casttype/combos/unsafeboth/casttype.proto |     7 +-
 .../combos/unsafeboth/casttypepb_test.go      |   129 +-
 .../combos/unsafemarshaler/casttype.pb.go     |   942 +-
 .../combos/unsafemarshaler/casttype.proto     |     7 +-
 .../combos/unsafemarshaler/casttypepb_test.go |   129 +-
 .../combos/unsafeunmarshaler/casttype.pb.go   |  1246 +-
 .../combos/unsafeunmarshaler/casttype.proto   |     7 +-
 .../unsafeunmarshaler/casttypepb_test.go      |    93 +-
 .../gogo/protobuf/test/casttype/mytypes.go    |     6 +-
 .../gogo/protobuf/test/castvalue/Makefile     |     7 +-
 .../protobuf/test/castvalue/castvalue.pb.go   |   565 +-
 .../protobuf/test/castvalue/castvalue.proto   |     6 +-
 .../test/castvalue/castvaluepb_test.go        |    76 +-
 .../castvalue/combos/both/castvalue.pb.go     |   914 +-
 .../castvalue/combos/both/castvalue.proto     |     6 +-
 .../castvalue/combos/both/castvaluepb_test.go |   104 +-
 .../test/castvalue/combos/both/mytypes.go     |     6 +-
 .../combos/marshaler/castvalue.pb.go          |   693 +-
 .../combos/marshaler/castvalue.proto          |     6 +-
 .../combos/marshaler/castvaluepb_test.go      |   104 +-
 .../castvalue/combos/marshaler/mytypes.go     |     6 +-
 .../combos/unmarshaler/castvalue.pb.go        |   796 +-
 .../combos/unmarshaler/castvalue.proto        |     6 +-
 .../combos/unmarshaler/castvaluepb_test.go    |    76 +-
 .../castvalue/combos/unmarshaler/mytypes.go   |     6 +-
 .../combos/unsafeboth/castvalue.pb.go         |   915 +-
 .../combos/unsafeboth/castvalue.proto         |     6 +-
 .../combos/unsafeboth/castvaluepb_test.go     |   129 +-
 .../castvalue/combos/unsafeboth/mytypes.go    |     6 +-
 .../combos/unsafemarshaler/castvalue.pb.go    |   693 +-
 .../combos/unsafemarshaler/castvalue.proto    |     6 +-
 .../unsafemarshaler/castvaluepb_test.go       |   129 +-
 .../combos/unsafemarshaler/mytypes.go         |     6 +-
 .../combos/unsafeunmarshaler/castvalue.pb.go  |   796 +-
 .../combos/unsafeunmarshaler/castvalue.proto  |     6 +-
 .../unsafeunmarshaler/castvaluepb_test.go     |    93 +-
 .../combos/unsafeunmarshaler/mytypes.go       |     6 +-
 .../gogo/protobuf/test/castvalue/mytypes.go   |     6 +-
 .../protobuf/test/combos/both/bug_test.go     |     6 +-
 .../gogo/protobuf/test/combos/both/t.go       |    77 +
 .../protobuf/test/combos/both/thetest.pb.go   | 14605 +++--
 .../protobuf/test/combos/both/thetest.proto   |    29 +-
 .../test/combos/both/thetestpb_test.go        |  5468 +-
 .../gogo/protobuf/test/combos/both/uuid.go    |    21 +-
 .../test/combos/marshaler/bug_test.go         |     6 +-
 .../gogo/protobuf/test/combos/marshaler/t.go  |    77 +
 .../test/combos/marshaler/thetest.pb.go       |  6446 ++-
 .../test/combos/marshaler/thetest.proto       |    29 +-
 .../test/combos/marshaler/thetestpb_test.go   |  5468 +-
 .../protobuf/test/combos/marshaler/uuid.go    |    21 +-
 .../test/combos/unmarshaler/bug_test.go       |     6 +-
 .../protobuf/test/combos/unmarshaler/t.go     |    73 +
 .../test/combos/unmarshaler/thetest.pb.go     | 10714 ++--
 .../test/combos/unmarshaler/thetest.proto     |    29 +-
 .../test/combos/unmarshaler/thetestpb_test.go |  4432 +-
 .../protobuf/test/combos/unmarshaler/uuid.go  |    21 +-
 .../test/combos/unsafeboth/bug_test.go        |     6 +-
 .../gogo/protobuf/test/combos/unsafeboth/t.go |    77 +
 .../test/combos/unsafeboth/thetest.pb.go      | 14086 +++--
 .../test/combos/unsafeboth/thetest.proto      |    29 +-
 .../test/combos/unsafeboth/thetestpb_test.go  |  6563 ++-
 .../protobuf/test/combos/unsafeboth/uuid.go   |    21 +-
 .../test/combos/unsafemarshaler/bug_test.go   |     6 +-
 .../protobuf/test/combos/unsafemarshaler/t.go |    77 +
 .../test/combos/unsafemarshaler/thetest.pb.go |  6083 ++-
 .../test/combos/unsafemarshaler/thetest.proto |    29 +-
 .../combos/unsafemarshaler/thetestpb_test.go  |  6563 ++-
 .../test/combos/unsafemarshaler/uuid.go       |    21 +-
 .../test/combos/unsafeunmarshaler/bug_test.go |     6 +-
 .../test/combos/unsafeunmarshaler/t.go        |    73 +
 .../combos/unsafeunmarshaler/thetest.pb.go    |  9671 +++-
 .../combos/unsafeunmarshaler/thetest.proto    |    29 +-
 .../unsafeunmarshaler/thetestpb_test.go       |  5251 +-
 .../test/combos/unsafeunmarshaler/uuid.go     |    21 +-
 .../test/custom-dash-type/customdash.go       |     4 +-
 .../gogo/protobuf/test/custom/custom.go       |    15 +-
 .../gogo/protobuf/test/custom/custom_test.go  |     4 +-
 .../test/custombytesnonstruct/Makefile        |     4 +-
 .../custombytesnonstruct_test.go              |    28 +
 .../test/custombytesnonstruct/customtype.go   |    28 +
 .../test/custombytesnonstruct/proto.pb.go     |    52 +-
 .../test/custombytesnonstruct/proto.proto     |    28 +
 .../test/dashfilename/dash-filename.proto     |    28 +
 .../protobuf/test/dashfilename/df_test.go     |    28 +
 .../gogo/protobuf/test/data/Makefile          |    33 +
 .../gogo/protobuf/test/data/data.pb.go        |   491 +
 .../gogo/protobuf/test/data/data.proto        |    49 +
 .../gogo/protobuf/test/data/datapb_test.go    |   263 +
 .../protobuf/test/defaultconflict/df.proto    |     6 +-
 .../protobuf/test/defaultconflict/dg.proto    |     6 +-
 .../protobuf/test/defaultconflict/nc.proto    |     6 +-
 .../protobuf/test/defaultconflict/nc_test.go  |     6 +-
 .../protobuf/test/defaultconflict/ne.proto    |     6 +-
 .../protobuf/test/defaultconflict/nx.proto    |     6 +-
 .../gogo/protobuf/test/embedconflict/eb.proto |     6 +-
 .../gogo/protobuf/test/embedconflict/ec.proto |     6 +-
 .../protobuf/test/embedconflict/ec_test.go    |     6 +-
 .../gogo/protobuf/test/embedconflict/ee.proto |     6 +-
 .../gogo/protobuf/test/embedconflict/em.proto |     6 +-
 .../gogo/protobuf/test/embedconflict/en.proto |     6 +-
 .../gogo/protobuf/test/embedconflict/er.proto |     6 +-
 .../gogo/protobuf/test/empty-issue70/Makefile |     4 +-
 .../protobuf/test/empty-issue70/empty.pb.go   |    38 +-
 .../protobuf/test/empty-issue70/empty.proto   |    30 +-
 .../protobuf/test/empty-issue70/empty_test.go |    28 +
 .../protobuf/test/enumcustomname/Makefile     |     4 +-
 .../test/enumcustomname/enumcustomname.pb.go  |    78 +-
 .../test/enumcustomname/enumcustomname.proto  |    28 +
 .../gogo/protobuf/test/enumdecl/Makefile      |     3 +
 .../protobuf/test/enumdecl/enumdecl.pb.go     |   471 +
 .../protobuf/test/enumdecl/enumdecl.proto     |    27 +
 .../protobuf/test/enumdecl/enumdeclpb_test.go |   239 +
 .../gogo/protobuf/test/enumdecl/models.go     |     8 +
 .../gogo/protobuf/test/enumdecl_all/Makefile  |     3 +
 .../test/enumdecl_all/enumdeclall.pb.go       |   539 +
 .../test/enumdecl_all/enumdeclall.proto       |    35 +
 .../test/enumdecl_all/enumdeclallpb_test.go   |   239 +
 .../gogo/protobuf/test/enumdecl_all/models.go |     8 +
 .../gogo/protobuf/test/enumprefix/Makefile    |     4 +-
 .../protobuf/test/enumprefix/enumprefix.pb.go |    18 +-
 .../protobuf/test/enumprefix/enumprefix.proto |     6 +-
 .../gogo/protobuf/test/enumstringer/Makefile  |     4 +-
 .../test/enumstringer/enumstringer.pb.go      |    72 +-
 .../test/enumstringer/enumstringer.proto      |     6 +-
 .../test/enumstringer/enumstringerpb_test.go  |    96 +-
 .../gogo/protobuf/test/enumstringer/string.go |     6 +-
 .../gogo/protobuf/test/example/Makefile       |     4 +-
 .../gogo/protobuf/test/example/example.pb.go  |   895 +-
 .../gogo/protobuf/test/example/example.proto  |     4 +-
 .../protobuf/test/example/example_test.go     |     6 +-
 .../protobuf/test/example/examplepb_test.go   |   364 +-
 .../gogo/protobuf/test/extension_test.go      |     6 +-
 .../gogo/protobuf/test/filedotname/Makefile   |     6 +-
 .../protobuf/test/filedotname/file.dot.pb.go  |   527 +-
 .../protobuf/test/filedotname/file.dot.proto  |     6 +-
 .../test/filedotname/file.dotpb_test.go       |    38 +-
 .../gogo/protobuf/test/fuzztests/Makefile     |     8 +-
 .../gogo/protobuf/test/fuzztests/fuzz.pb.go   |  1194 +-
 .../gogo/protobuf/test/fuzztests/fuzz.proto   |     6 +-
 .../gogo/protobuf/test/fuzztests/fuzz_test.go |     6 +-
 .../gogo/protobuf/test/group/Makefile         |     4 +-
 .../gogo/protobuf/test/group/group.pb.go      |   529 +-
 .../gogo/protobuf/test/group/group.proto      |     6 +-
 .../gogo/protobuf/test/group/grouppb_test.go  |    96 +-
 .../gogo/protobuf/test/importdedup/Makefile   |     4 +-
 .../test/importdedup/importdedup_test.go      |     6 +-
 .../protobuf/test/importdedup/proto.pb.go     |    21 +-
 .../protobuf/test/importdedup/proto.proto     |     6 +-
 .../test/importdedup/subpkg/customtype.go     |     6 +-
 .../test/importdedup/subpkg/subproto.pb.go    |     8 +-
 .../test/importdedup/subpkg/subproto.proto    |     6 +-
 .../test/indeximport-issue72/Makefile         |     4 +-
 .../indeximport-issue72/index/index.pb.go     |   152 +-
 .../indeximport-issue72/index/index.proto     |     6 +-
 .../indeximport-issue72/index/indexpb_test.go |    40 +-
 .../indeximport-issue72/indeximport.pb.go     |   136 +-
 .../indeximport-issue72/indeximport.proto     |     6 +-
 .../indeximport-issue72/indeximportpb_test.go |    40 +-
 .../gogo/protobuf/test/issue260/Makefile      |     3 +
 .../gogo/protobuf/test/issue260/README.md     |    11 +
 .../protobuf/test/issue260/issue260.pb.go     |  1028 +
 .../protobuf/test/issue260/issue260.proto     |    36 +
 .../protobuf/test/issue260/issue260pb_test.go |   658 +
 .../gogo/protobuf/test/issue260/models.go     |    19 +
 .../gogo/protobuf/test/issue261/Makefile      |     7 +
 .../protobuf/test/issue261/issue261.pb.go     |   546 +
 .../protobuf/test/issue261/issue261.proto     |    11 +
 .../gogo/protobuf/test/issue262/Makefile      |     5 +
 .../protobuf/test/issue262/timefail.pb.go     |   414 +
 .../protobuf/test/issue262/timefail.proto     |    10 +
 .../gogo/protobuf/test/issue34/Makefile       |     4 +-
 .../protobuf/test/issue34/issue34_test.go     |     6 +-
 .../gogo/protobuf/test/issue34/proto.pb.go    |    58 +-
 .../gogo/protobuf/test/issue34/proto.proto    |    28 +
 .../gogo/protobuf/test/issue42order/Makefile  |     4 +-
 .../protobuf/test/issue42order/issue42.pb.go  |   206 +-
 .../protobuf/test/issue42order/issue42.proto  |     4 +-
 .../protobuf/test/issue42order/order_test.go  |     6 +-
 .../gogo/protobuf/test/issue8/Makefile        |     4 +-
 .../gogo/protobuf/test/issue8/proto.pb.go     |    76 +-
 .../gogo/protobuf/test/issue8/proto.proto     |    28 +
 .../gogo/protobuf/test/issue8/protopb_test.go |    20 +-
 .../gogo/protobuf/test/mapsproto2/Makefile    |    12 +-
 .../mapsproto2/combos/both/mapsproto2.pb.go   |  5429 +-
 .../mapsproto2/combos/both/mapsproto2.proto   |    13 +-
 .../mapsproto2/combos/both/mapsproto2_test.go |   104 +
 .../combos/both/mapsproto2pb_test.go          |   395 +-
 .../combos/marshaler/mapsproto2.pb.go         |  2236 +-
 .../combos/marshaler/mapsproto2.proto         |    13 +-
 .../combos/marshaler/mapsproto2_test.go       |   104 +
 .../combos/marshaler/mapsproto2pb_test.go     |   395 +-
 .../combos/neither/mapsproto2.pb.go           |  1521 +-
 .../combos/neither/mapsproto2.proto           |    13 +-
 .../combos/neither/mapsproto2_test.go         |   104 +
 .../combos/neither/mapsproto2pb_test.go       |   325 +-
 .../combos/unmarshaler/mapsproto2.pb.go       |  4572 +-
 .../combos/unmarshaler/mapsproto2.proto       |    13 +-
 .../combos/unmarshaler/mapsproto2_test.go     |   104 +
 .../combos/unmarshaler/mapsproto2pb_test.go   |   325 +-
 .../combos/unsafeboth/mapsproto2.pb.go        |  5408 +-
 .../combos/unsafeboth/mapsproto2.proto        |    13 +-
 .../combos/unsafeboth/mapsproto2_test.go      |   104 +
 .../combos/unsafeboth/mapsproto2pb_test.go    |   444 +-
 .../combos/unsafemarshaler/mapsproto2.pb.go   |  2240 +-
 .../combos/unsafemarshaler/mapsproto2.proto   |    13 +-
 .../combos/unsafemarshaler/mapsproto2_test.go |   104 +
 .../unsafemarshaler/mapsproto2pb_test.go      |   444 +-
 .../combos/unsafeunmarshaler/mapsproto2.pb.go |  4559 +-
 .../combos/unsafeunmarshaler/mapsproto2.proto |    13 +-
 .../unsafeunmarshaler/mapsproto2_test.go      |   104 +
 .../unsafeunmarshaler/mapsproto2pb_test.go    |   358 +-
 .../protobuf/test/mapsproto2/header.proto     |    13 +-
 .../protobuf/test/mapsproto2/mapsproto2.proto |    13 +-
 .../test/mapsproto2/mapsproto2_test.go.in     |   104 +
 .../gogo/protobuf/test/mixbench/mixbench.go   |     6 +-
 .../gogo/protobuf/test/moredefaults/Makefile  |     4 +-
 .../gogo/protobuf/test/moredefaults/md.pb.go  |    85 +-
 .../gogo/protobuf/test/moredefaults/md.proto  |     6 +-
 .../protobuf/test/moredefaults/md_test.go     |     6 +-
 .../protobuf/test/moredefaults/mdpb_test.go   |    40 +-
 .../gogo/protobuf/test/nopackage/Makefile     |     4 +-
 .../protobuf/test/nopackage/nopackage.pb.go   |   171 +-
 .../protobuf/test/nopackage/nopackage.proto   |    28 +
 .../protobuf/test/nopackage/nopackage_test.go |    28 +
 .../gogo/protobuf/test/oneof/Makefile         |     9 +-
 .../protobuf/test/oneof/combos/both/one.pb.go |  1178 +-
 .../protobuf/test/oneof/combos/both/one.proto |     6 +-
 .../test/oneof/combos/both/onepb_test.go      |   176 +-
 .../test/oneof/combos/marshaler/one.pb.go     |   971 +-
 .../test/oneof/combos/marshaler/one.proto     |     6 +-
 .../test/oneof/combos/marshaler/onepb_test.go |   176 +-
 .../test/oneof/combos/neither/one.pb.go       |   685 +-
 .../test/oneof/combos/neither/one.proto       |     6 +-
 .../test/oneof/combos/neither/onepb_test.go   |   120 +-
 .../test/oneof/combos/unmarshaler/one.pb.go   |   892 +-
 .../test/oneof/combos/unmarshaler/one.proto   |     6 +-
 .../oneof/combos/unmarshaler/onepb_test.go    |   120 +-
 .../test/oneof/combos/unsafeboth/one.pb.go    |  1097 +-
 .../test/oneof/combos/unsafeboth/one.proto    |     6 +-
 .../oneof/combos/unsafeboth/onepb_test.go     |   225 +-
 .../oneof/combos/unsafemarshaler/one.pb.go    |   972 +-
 .../oneof/combos/unsafemarshaler/one.proto    |     6 +-
 .../combos/unsafemarshaler/onepb_test.go      |   225 +-
 .../oneof/combos/unsafeunmarshaler/one.pb.go  |   812 +-
 .../oneof/combos/unsafeunmarshaler/one.proto  |     6 +-
 .../combos/unsafeunmarshaler/onepb_test.go    |   153 +-
 .../gogo/protobuf/test/oneof/one.proto        |     6 +-
 .../gogo/protobuf/test/oneof3/Makefile        |     9 +-
 .../test/oneof3/combos/both/one.pb.go         |   913 +-
 .../test/oneof3/combos/both/one.proto         |     6 +-
 .../test/oneof3/combos/both/onepb_test.go     |    88 +-
 .../test/oneof3/combos/marshaler/one.pb.go    |   781 +-
 .../test/oneof3/combos/marshaler/one.proto    |     6 +-
 .../oneof3/combos/marshaler/onepb_test.go     |    88 +-
 .../test/oneof3/combos/neither/one.pb.go      |   613 +-
 .../test/oneof3/combos/neither/one.proto      |     6 +-
 .../test/oneof3/combos/neither/onepb_test.go  |    60 +-
 .../test/oneof3/combos/unmarshaler/one.pb.go  |   745 +-
 .../test/oneof3/combos/unmarshaler/one.proto  |     6 +-
 .../oneof3/combos/unmarshaler/onepb_test.go   |    60 +-
 .../test/oneof3/combos/unsafeboth/one.pb.go   |   853 +-
 .../test/oneof3/combos/unsafeboth/one.proto   |     6 +-
 .../oneof3/combos/unsafeboth/onepb_test.go    |   113 +-
 .../oneof3/combos/unsafemarshaler/one.pb.go   |   782 +-
 .../oneof3/combos/unsafemarshaler/one.proto   |     6 +-
 .../combos/unsafemarshaler/onepb_test.go      |   113 +-
 .../oneof3/combos/unsafeunmarshaler/one.pb.go |   686 +-
 .../oneof3/combos/unsafeunmarshaler/one.proto |     6 +-
 .../combos/unsafeunmarshaler/onepb_test.go    |    77 +-
 .../gogo/protobuf/test/oneof3/one.proto       |     6 +-
 .../gogo/protobuf/test/oneofembed/Makefile    |     9 +-
 .../protobuf/test/oneofembed/oneofembed.pb.go |    56 +-
 .../protobuf/test/oneofembed/oneofembed.proto |    30 +-
 .../test/oneofembed/oneofembedpb_test.go      |    40 +-
 .../gogo/protobuf/test/packed/Makefile        |     4 +-
 .../gogo/protobuf/test/packed/packed.pb.go    |  3155 +-
 .../gogo/protobuf/test/packed/packed.proto    |     6 +-
 .../gogo/protobuf/test/packed/packed_test.go  |    19 +-
 .../protobuf/test/proto3extension/Makefile    |    32 +
 .../test/proto3extension/proto3ext.pb.go      |    67 +
 .../test/proto3extension/proto3ext.proto      |    11 +
 .../gogo/protobuf/test/protosize/Makefile     |     4 +-
 .../protobuf/test/protosize/protosize.pb.go   |   170 +-
 .../protobuf/test/protosize/protosize.proto   |    28 +
 .../protobuf/test/protosize/protosize_test.go |    28 +
 .../test/protosize/protosizepb_test.go        |    40 +-
 .../protobuf/test/registration/.gitignore     |     2 +
 .../gogo/protobuf/test/registration/Makefile  |    33 +
 .../test/registration/registration.proto      |    45 +
 .../test/registration/registration_test.go.in |    85 +
 .../gogo/protobuf/test/required/Makefile      |     4 +-
 .../test/required/requiredexample.pb.go       |   674 +-
 .../test/required/requiredexample.proto       |    28 +
 .../test/required/requiredexamplepb_test.go   |    28 +
 .../test/sizerconflict/sizerconflict.proto    |    43 +
 .../test/sizerconflict/sizerconflict_test.go  |    48 +
 .../protobuf/test/sizeunderscore/Makefile     |     4 +-
 .../test/sizeunderscore/sizeunderscore.pb.go  |   160 +-
 .../test/sizeunderscore/sizeunderscore.proto  |    28 +
 .../sizeunderscore/sizeunderscorepb_test.go   |    40 +-
 .../gogo/protobuf/test/stdtypes/Makefile      |    37 +
 .../protobuf/test/stdtypes/stdtypes.pb.go     |  1348 +
 .../protobuf/test/stdtypes/stdtypes.proto     |    78 +
 .../protobuf/test/stdtypes/stdtypespb_test.go |   809 +
 vendor/github.com/gogo/protobuf/test/t.go     |    73 +
 .../gogo/protobuf/test/tags/Makefile          |     4 +-
 .../gogo/protobuf/test/tags/tags.pb.go        |    70 +-
 .../gogo/protobuf/test/tags/tags.proto        |     6 +-
 .../gogo/protobuf/test/tags/tags_test.go      |     6 +-
 .../gogo/protobuf/test/theproto3/Makefile     |    11 +-
 .../test/theproto3/combos/both/proto3_test.go |   106 +-
 .../theproto3/combos/both/theproto3.pb.go     |  5854 +-
 .../theproto3/combos/both/theproto3.proto     |    10 +-
 .../theproto3/combos/both/theproto3pb_test.go |   707 +-
 .../theproto3/combos/marshaler/proto3_test.go |   106 +-
 .../combos/marshaler/theproto3.pb.go          |  2412 +-
 .../combos/marshaler/theproto3.proto          |    10 +-
 .../combos/marshaler/theproto3pb_test.go      |   707 +-
 .../theproto3/combos/neither/proto3_test.go   |   106 +-
 .../theproto3/combos/neither/theproto3.pb.go  |  1494 +-
 .../theproto3/combos/neither/theproto3.proto  |    10 +-
 .../combos/neither/theproto3pb_test.go        |   553 +-
 .../combos/unmarshaler/proto3_test.go         |   106 +-
 .../combos/unmarshaler/theproto3.pb.go        |  4978 +-
 .../combos/unmarshaler/theproto3.proto        |    10 +-
 .../combos/unmarshaler/theproto3pb_test.go    |   553 +-
 .../combos/unsafeboth/proto3_test.go          |   106 +-
 .../combos/unsafeboth/theproto3.pb.go         |  5839 +-
 .../combos/unsafeboth/theproto3.proto         |    10 +-
 .../combos/unsafeboth/theproto3pb_test.go     |   828 +-
 .../combos/unsafemarshaler/proto3_test.go     |   106 +-
 .../combos/unsafemarshaler/theproto3.pb.go    |  2412 +-
 .../combos/unsafemarshaler/theproto3.proto    |    10 +-
 .../unsafemarshaler/theproto3pb_test.go       |   828 +-
 .../combos/unsafeunmarshaler/proto3_test.go   |   106 +-
 .../combos/unsafeunmarshaler/theproto3.pb.go  |  4931 +-
 .../combos/unsafeunmarshaler/theproto3.proto  |    10 +-
 .../unsafeunmarshaler/theproto3pb_test.go     |   634 +-
 .../gogo/protobuf/test/theproto3/footer.proto |     4 +
 .../gogo/protobuf/test/theproto3/header.proto |     6 +-
 .../protobuf/test/theproto3/proto3_test.go.in |   106 +-
 .../protobuf/test/theproto3/theproto3.proto   |    10 +-
 .../gogo/protobuf/test/thetest.pb.go          |  3284 +-
 .../gogo/protobuf/test/thetest.proto          |    29 +-
 .../gogo/protobuf/test/thetestpb_test.go      |  4432 +-
 .../gogo/protobuf/test/typedecl/Makefile      |     3 +
 .../gogo/protobuf/test/typedecl/models.go     |    19 +
 .../protobuf/test/typedecl/typedecl.pb.go     |   971 +
 .../protobuf/test/typedecl/typedecl.proto     |    34 +
 .../protobuf/test/typedecl/typedeclpb_test.go |   657 +
 .../gogo/protobuf/test/typedecl_all/Makefile  |     3 +
 .../gogo/protobuf/test/typedecl_all/models.go |    19 +
 .../test/typedecl_all/typedeclall.pb.go       |   971 +
 .../test/typedecl_all/typedeclall.proto       |    34 +
 .../test/typedecl_all/typedeclallpb_test.go   |   657 +
 .../gogo/protobuf/test/types/Makefile         |    39 +
 .../test/types/combos/both/types.pb.go        |  5910 ++
 .../test/types/combos/both/types.proto        |   131 +
 .../test/types/combos/both/types_test.go      |   242 +
 .../test/types/combos/both/typespb_test.go    |  1986 +
 .../test/types/combos/marshaler/types.pb.go   |  3475 ++
 .../test/types/combos/marshaler/types.proto   |   131 +
 .../test/types/combos/marshaler/types_test.go |   242 +
 .../types/combos/marshaler/typespb_test.go    |  1986 +
 .../test/types/combos/neither/types.pb.go     |  2728 +
 .../test/types/combos/neither/types.proto     |   131 +
 .../test/types/combos/neither/types_test.go   |   242 +
 .../test/types/combos/neither/typespb_test.go |  1734 +
 .../test/types/combos/unmarshaler/types.pb.go |  5163 ++
 .../test/types/combos/unmarshaler/types.proto |   131 +
 .../types/combos/unmarshaler/types_test.go    |   242 +
 .../types/combos/unmarshaler/typespb_test.go  |  1734 +
 .../test/types/combos/unsafeboth/types.pb.go  |  5910 ++
 .../test/types/combos/unsafeboth/types.proto  |   131 +
 .../types/combos/unsafeboth/types_test.go     |   242 +
 .../types/combos/unsafeboth/typespb_test.go   |  2107 +
 .../types/combos/unsafemarshaler/types.pb.go  |  3476 ++
 .../types/combos/unsafemarshaler/types.proto  |   131 +
 .../combos/unsafemarshaler/types_test.go      |   242 +
 .../combos/unsafemarshaler/typespb_test.go    |  2107 +
 .../combos/unsafeunmarshaler/types.pb.go      |  5164 ++
 .../combos/unsafeunmarshaler/types.proto      |   131 +
 .../combos/unsafeunmarshaler/types_test.go    |   242 +
 .../combos/unsafeunmarshaler/typespb_test.go  |  1819 +
 .../gogo/protobuf/test/types/types.proto      |   131 +
 .../gogo/protobuf/test/types/types_test.go.in |   243 +
 .../protobuf/test/unmarshalmerge/Makefile     |     4 +-
 .../test/unmarshalmerge/unmarshalmerge.pb.go  |   290 +-
 .../test/unmarshalmerge/unmarshalmerge.proto  |     6 +-
 .../unmarshalmerge/unmarshalmerge_test.go     |    28 +
 .../unmarshalmerge/unmarshalmergepb_test.go   |   137 +-
 .../gogo/protobuf/test/unrecognized/Makefile  |     4 +-
 .../protobuf/test/unrecognized/oldnew_test.go |     6 +-
 .../test/unrecognized/unrecognized.pb.go      |  1416 +-
 .../test/unrecognized/unrecognized.proto      |     6 +-
 .../test/unrecognized/unrecognizedpb_test.go  |   444 +-
 .../protobuf/test/unrecognizedgroup/Makefile  |     4 +-
 .../test/unrecognizedgroup/oldnew_test.go     |     6 +-
 .../unrecognizedgroup/unrecognizedgroup.pb.go |   772 +-
 .../unrecognizedgroup/unrecognizedgroup.proto |     6 +-
 .../unrecognizedgrouppb_test.go               |   160 +-
 vendor/github.com/gogo/protobuf/test/uuid.go  |    21 +-
 .../gogo/protobuf/test/uuid_test.go           |    28 +
 .../github.com/gogo/protobuf/types/Makefile   |    39 +
 vendor/github.com/gogo/protobuf/types/any.go  |   135 +
 .../github.com/gogo/protobuf/types/any.pb.go  |   666 +
 .../gogo/protobuf/types/any_test.go           |   112 +
 vendor/github.com/gogo/protobuf/types/doc.go  |    35 +
 .../gogo/protobuf/types/duration.go           |   100 +
 .../gogo/protobuf/types/duration.pb.go        |   500 +
 .../gogo/protobuf/types/duration_gogo.go      |   100 +
 .../gogo/protobuf/types/duration_test.go      |   120 +
 .../gogo/protobuf/types/empty.pb.go           |   457 +
 .../gogo/protobuf/types/field_mask.pb.go      |   738 +
 .../gogo/protobuf/types/struct.pb.go          |  1888 +
 .../gogo/protobuf/types/timestamp.go          |   123 +
 .../gogo/protobuf/types/timestamp.pb.go       |   504 +
 .../gogo/protobuf/types/timestamp_gogo.go     |    94 +
 .../gogo/protobuf/types/timestamp_test.go     |   137 +
 .../gogo/protobuf/types/wrappers.pb.go        |  2259 +
 .../gogo/protobuf/vanity/command/command.go   |   103 +-
 .../github.com/gogo/protobuf/vanity/enum.go   |     6 +-
 .../github.com/gogo/protobuf/vanity/field.go  |     6 +-
 .../github.com/gogo/protobuf/vanity/file.go   |    18 +-
 .../gogo/protobuf/vanity/foreach.go           |     6 +-
 vendor/github.com/gogo/protobuf/vanity/msg.go |    10 +-
 .../gogo/protobuf/vanity/test/Makefile        |    28 +
 .../vanity/test/fast/gogovanity.pb.go         |   116 +-
 .../protobuf/vanity/test/fast/proto3.pb.go    |   100 +-
 .../protobuf/vanity/test/fast/vanity.pb.go    |   108 +-
 .../vanity/test/faster/gogovanity.pb.go       |   116 +-
 .../protobuf/vanity/test/faster/proto3.pb.go  |   101 +-
 .../protobuf/vanity/test/faster/vanity.pb.go  |   104 +-
 .../protobuf/vanity/test/gogovanity.proto     |     6 +-
 .../gogo/protobuf/vanity/test/proto3.proto    |     8 +-
 .../vanity/test/slick/gogovanity.pb.go        |   138 +-
 .../protobuf/vanity/test/slick/proto3.pb.go   |   124 +-
 .../protobuf/vanity/test/slick/vanity.pb.go   |   129 +-
 .../gogo/protobuf/vanity/test/vanity.proto    |     6 +-
 .../gogo/protobuf/vanity/test/vanity_test.go  |     6 +-
 .../gogo/protobuf/version/version.go          |     6 +-
 vendor/github.com/golang/protobuf/.gitignore  |    15 +
 vendor/github.com/golang/protobuf/AUTHORS     |     3 +
 .../github.com/golang/protobuf/CONTRIBUTORS   |     3 +
 vendor/github.com/golang/protobuf/LICENSE     |    31 +
 .../github.com/golang/protobuf/Make.protobuf  |    40 +
 vendor/github.com/golang/protobuf/Makefile    |    54 +
 vendor/github.com/golang/protobuf/README.md   |   199 +
 .../golang/protobuf/jsonpb/jsonpb.go          |   799 +
 .../golang/protobuf/jsonpb/jsonpb_test.go     |   548 +
 .../jsonpb/jsonpb_test_proto/Makefile         |    33 +
 .../jsonpb_test_proto/more_test_objects.pb.go |   163 +
 .../jsonpb_test_proto/more_test_objects.proto |    53 +
 .../jsonpb_test_proto/test_objects.pb.go      |   739 +
 .../jsonpb_test_proto/test_objects.proto      |   134 +
 .../github.com/golang/protobuf/proto/Makefile |    43 +
 .../golang/protobuf/proto/all_test.go         |  2252 +
 .../golang/protobuf/proto/any_test.go         |   272 +
 .../github.com/golang/protobuf/proto/clone.go |   229 +
 .../golang/protobuf/proto/clone_test.go       |   267 +
 .../golang/protobuf/proto/decode.go           |   869 +
 .../golang/protobuf/proto/encode.go           |  1363 +
 .../github.com/golang/protobuf/proto/equal.go |   296 +
 .../golang/protobuf/proto/equal_test.go       |   212 +
 .../golang/protobuf/proto/extensions.go       |   555 +
 .../golang/protobuf/proto/extensions_test.go  |   455 +
 .../github.com/golang/protobuf/proto/lib.go   |   898 +
 .../golang/protobuf/proto/message_set.go      |   311 +
 .../golang/protobuf/proto/message_set_test.go |    66 +
 .../golang/protobuf/proto/pointer_reflect.go  |   484 +
 .../golang/protobuf/proto/pointer_unsafe.go   |   270 +
 .../golang/protobuf/proto/properties.go       |   864 +
 .../protobuf/proto/proto3_proto/proto3.pb.go  |   198 +
 .../protobuf/proto/proto3_proto/proto3.proto  |    73 +
 .../golang/protobuf/proto/proto3_test.go      |   125 +
 .../golang/protobuf/proto/size2_test.go       |    63 +
 .../golang/protobuf/proto/size_test.go        |   164 +
 .../golang/protobuf/proto/testdata/Makefile   |    50 +
 .../protobuf/proto/testdata/golden_test.go    |    86 +
 .../golang/protobuf/proto/testdata/test.pb.go |  4004 ++
 .../golang/protobuf/proto/testdata/test.proto |   540 +
 .../github.com/golang/protobuf/proto/text.go  |   854 +
 .../golang/protobuf/proto/text_parser.go      |   880 +
 .../golang/protobuf/proto/text_parser_test.go |   573 +
 .../golang/protobuf/proto/text_test.go        |   474 +
 .../golang/protobuf/protoc-gen-go/Makefile    |    33 +
 .../protoc-gen-go/descriptor/Makefile         |    39 +
 .../protoc-gen-go/descriptor/descriptor.pb.go |  2037 +
 .../golang/protobuf/protoc-gen-go/doc.go      |    51 +
 .../protobuf/protoc-gen-go/generator/Makefile |    40 +
 .../protoc-gen-go/generator/generator.go      |  2778 +
 .../protoc-gen-go/generator/name_test.go      |    85 +
 .../protobuf/protoc-gen-go/grpc/grpc.go       |   462 +
 .../protobuf/protoc-gen-go/link_grpc.go       |    34 +
 .../golang/protobuf/protoc-gen-go/main.go     |    98 +
 .../protobuf/protoc-gen-go/plugin/Makefile    |    45 +
 .../protoc-gen-go/plugin/plugin.pb.go         |   229 +
 .../protoc-gen-go/plugin/plugin.pb.golden     |    83 +
 .../protobuf/protoc-gen-go/testdata/Makefile  |    72 +
 .../testdata/extension_base.proto             |    46 +
 .../testdata/extension_extra.proto            |    38 +
 .../protoc-gen-go/testdata/extension_test.go  |   210 +
 .../testdata/extension_user.proto             |   100 +
 .../protoc-gen-go/testdata/grpc.proto         |    59 +
 .../protoc-gen-go/testdata/imp.pb.go.golden   |   113 +
 .../protobuf/protoc-gen-go/testdata/imp.proto |    70 +
 .../protoc-gen-go/testdata/imp2.proto         |    43 +
 .../protoc-gen-go/testdata/imp3.proto         |    38 +
 .../protoc-gen-go/testdata/main_test.go       |    46 +
 .../protoc-gen-go/testdata/multi/multi1.proto |    44 +
 .../protoc-gen-go/testdata/multi/multi2.proto |    46 +
 .../protoc-gen-go/testdata/multi/multi3.proto |    43 +
 .../protoc-gen-go/testdata/my_test/test.pb.go |   882 +
 .../testdata/my_test/test.pb.go.golden        |   882 +
 .../protoc-gen-go/testdata/my_test/test.proto |   156 +
 .../protoc-gen-go/testdata/proto3.proto       |    52 +
 .../github.com/golang/protobuf/ptypes/any.go  |   136 +
 .../golang/protobuf/ptypes/any/any.pb.go      |   145 +
 .../golang/protobuf/ptypes/any/any.proto      |   130 +
 .../golang/protobuf/ptypes/any_test.go        |   113 +
 .../github.com/golang/protobuf/ptypes/doc.go  |    35 +
 .../golang/protobuf/ptypes/duration.go        |   102 +
 .../protobuf/ptypes/duration/duration.pb.go   |   114 +
 .../protobuf/ptypes/duration/duration.proto   |    98 +
 .../golang/protobuf/ptypes/duration_test.go   |   121 +
 .../golang/protobuf/ptypes/empty/empty.pb.go  |    69 +
 .../golang/protobuf/ptypes/empty/empty.proto  |    53 +
 .../golang/protobuf/ptypes/regen.sh           |    66 +
 .../protobuf/ptypes/struct/struct.pb.go       |   382 +
 .../protobuf/ptypes/struct/struct.proto       |    96 +
 .../golang/protobuf/ptypes/timestamp.go       |   125 +
 .../protobuf/ptypes/timestamp/timestamp.pb.go |   126 +
 .../protobuf/ptypes/timestamp/timestamp.proto |   111 +
 .../golang/protobuf/ptypes/timestamp_test.go  |   138 +
 .../protobuf/ptypes/wrappers/wrappers.pb.go   |   200 +
 .../protobuf/ptypes/wrappers/wrappers.proto   |   119 +
 .../github.com/googleapis/gax-go/.gitignore   |     1 +
 .../github.com/googleapis/gax-go/.travis.yml  |    15 +
 .../googleapis/gax-go/CONTRIBUTING.md         |    27 +
 vendor/github.com/googleapis/gax-go/LICENSE   |    27 +
 vendor/github.com/googleapis/gax-go/README.md |    24 +
 .../googleapis/gax-go/call_option.go          |   157 +
 .../googleapis/gax-go/call_option_test.go     |    88 +
 vendor/github.com/googleapis/gax-go/gax.go    |    40 +
 vendor/github.com/googleapis/gax-go/header.go |    24 +
 .../googleapis/gax-go/header_test.go          |    19 +
 vendor/github.com/googleapis/gax-go/invoke.go |    90 +
 .../googleapis/gax-go/invoke_test.go          |   156 +
 .../googleapis/gax-go/path_template.go        |   176 +
 .../googleapis/gax-go/path_template_parser.go |   227 +
 .../googleapis/gax-go/path_template_test.go   |   211 +
 vendor/github.com/gorilla/context/.travis.yml |    19 +
 vendor/github.com/gorilla/context/LICENSE     |    27 +
 vendor/github.com/gorilla/context/README.md   |    10 +
 vendor/github.com/gorilla/context/context.go  |   143 +
 .../gorilla/context/context_test.go           |   161 +
 vendor/github.com/gorilla/context/doc.go      |    88 +
 vendor/github.com/gorilla/mux/.travis.yml     |    22 +
 vendor/github.com/gorilla/mux/LICENSE         |    27 +
 vendor/github.com/gorilla/mux/README.md       |   351 +
 vendor/github.com/gorilla/mux/bench_test.go   |    49 +
 .../github.com/gorilla/mux/context_gorilla.go |    26 +
 .../gorilla/mux/context_gorilla_test.go       |    40 +
 .../github.com/gorilla/mux/context_native.go  |    24 +
 .../gorilla/mux/context_native_test.go        |    32 +
 vendor/github.com/gorilla/mux/doc.go          |   240 +
 vendor/github.com/gorilla/mux/mux.go          |   542 +
 vendor/github.com/gorilla/mux/mux_test.go     |  1771 +
 vendor/github.com/gorilla/mux/old_test.go     |   710 +
 vendor/github.com/gorilla/mux/regexp.go       |   323 +
 vendor/github.com/gorilla/mux/route.go        |   677 +
 vendor/github.com/howeyc/gopass/.travis.yml   |    11 +
 vendor/github.com/howeyc/gopass/LICENSE.txt   |    15 +
 .../howeyc/gopass/OPENSOLARIS.LICENSE         |   384 +
 vendor/github.com/howeyc/gopass/README.md     |    27 +
 vendor/github.com/howeyc/gopass/pass.go       |    91 +
 vendor/github.com/howeyc/gopass/pass_test.go  |   228 +
 vendor/github.com/howeyc/gopass/terminal.go   |    25 +
 .../howeyc/gopass/terminal_solaris.go         |    69 +
 vendor/github.com/imdario/mergo/.travis.yml   |     2 +
 vendor/github.com/imdario/mergo/LICENSE       |    28 +
 vendor/github.com/imdario/mergo/README.md     |    68 +
 vendor/github.com/imdario/mergo/doc.go        |    44 +
 vendor/github.com/imdario/mergo/map.go        |   146 +
 vendor/github.com/imdario/mergo/merge.go      |    99 +
 vendor/github.com/imdario/mergo/mergo.go      |    90 +
 vendor/github.com/imdario/mergo/mergo_test.go |   288 +
 .../imdario/mergo/testdata/license.yml        |     3 +
 .../imdario/mergo/testdata/thing.yml          |     5 +
 vendor/github.com/urfave/negroni/.gitignore   |     1 +
 vendor/github.com/urfave/negroni/.travis.yml  |    26 +
 vendor/github.com/urfave/negroni/CHANGELOG.md |    37 +
 vendor/github.com/urfave/negroni/LICENSE      |    21 +
 vendor/github.com/urfave/negroni/README.md    |   505 +
 vendor/github.com/urfave/negroni/doc.go       |    25 +
 vendor/github.com/urfave/negroni/logger.go    |    80 +
 .../github.com/urfave/negroni/logger_test.go  |    33 +
 vendor/github.com/urfave/negroni/negroni.go   |   159 +
 .../github.com/urfave/negroni/negroni_test.go |   136 +
 vendor/github.com/urfave/negroni/recovery.go  |    65 +
 .../urfave/negroni/recovery_test.go           |    71 +
 .../urfave/negroni/response_writer.go         |   113 +
 .../urfave/negroni/response_writer_test.go    |   187 +
 vendor/github.com/urfave/negroni/static.go    |    88 +
 .../github.com/urfave/negroni/static_test.go  |   113 +
 .../negroni/translations/README_de_de.md      |   177 +
 .../negroni/translations/README_ja_JP.md      |   374 +
 .../negroni/translations/README_pt_br.md      |   170 +
 .../negroni/translations/README_zh_cn.md      |   439 +
 .../negroni/translations/README_zh_tw.md      |   446 +
 vendor/golang.org/x/crypto/.gitattributes     |    10 +
 vendor/golang.org/x/crypto/.gitignore         |     2 +
 vendor/golang.org/x/crypto/AUTHORS            |     3 +
 vendor/golang.org/x/crypto/CONTRIBUTING.md    |    31 +
 vendor/golang.org/x/crypto/CONTRIBUTORS       |     3 +
 vendor/golang.org/x/crypto/LICENSE            |    27 +
 vendor/golang.org/x/crypto/PATENTS            |    22 +
 vendor/golang.org/x/crypto/README             |     3 +
 vendor/golang.org/x/crypto/acme/acme.go       |   944 +
 vendor/golang.org/x/crypto/acme/acme_test.go  |  1185 +
 .../x/crypto/acme/autocert/autocert.go        |   776 +
 .../x/crypto/acme/autocert/autocert_test.go   |   390 +
 .../x/crypto/acme/autocert/cache.go           |   130 +
 .../x/crypto/acme/autocert/cache_test.go      |    58 +
 .../x/crypto/acme/autocert/renewal.go         |   125 +
 .../x/crypto/acme/autocert/renewal_test.go    |   190 +
 vendor/golang.org/x/crypto/acme/jws.go        |   153 +
 vendor/golang.org/x/crypto/acme/jws_test.go   |   266 +
 vendor/golang.org/x/crypto/acme/types.go      |   209 +
 vendor/golang.org/x/crypto/bcrypt/base64.go   |    35 +
 vendor/golang.org/x/crypto/bcrypt/bcrypt.go   |   294 +
 .../golang.org/x/crypto/bcrypt/bcrypt_test.go |   226 +
 vendor/golang.org/x/crypto/blowfish/block.go  |   159 +
 .../x/crypto/blowfish/blowfish_test.go        |   274 +
 vendor/golang.org/x/crypto/blowfish/cipher.go |    91 +
 vendor/golang.org/x/crypto/blowfish/const.go  |   199 +
 vendor/golang.org/x/crypto/bn256/bn256.go     |   404 +
 .../golang.org/x/crypto/bn256/bn256_test.go   |   304 +
 vendor/golang.org/x/crypto/bn256/constants.go |    44 +
 vendor/golang.org/x/crypto/bn256/curve.go     |   278 +
 .../golang.org/x/crypto/bn256/example_test.go |    43 +
 vendor/golang.org/x/crypto/bn256/gfp12.go     |   200 +
 vendor/golang.org/x/crypto/bn256/gfp2.go      |   219 +
 vendor/golang.org/x/crypto/bn256/gfp6.go      |   296 +
 vendor/golang.org/x/crypto/bn256/optate.go    |   395 +
 vendor/golang.org/x/crypto/bn256/twist.go     |   249 +
 vendor/golang.org/x/crypto/cast5/cast5.go     |   526 +
 .../golang.org/x/crypto/cast5/cast5_test.go   |   106 +
 vendor/golang.org/x/crypto/codereview.cfg     |     1 +
 .../x/crypto/curve25519/const_amd64.s         |    20 +
 .../x/crypto/curve25519/cswap_amd64.s         |    88 +
 .../x/crypto/curve25519/curve25519.go         |   841 +
 .../x/crypto/curve25519/curve25519_test.go    |    29 +
 vendor/golang.org/x/crypto/curve25519/doc.go  |    23 +
 .../x/crypto/curve25519/freeze_amd64.s        |    94 +
 .../x/crypto/curve25519/ladderstep_amd64.s    |  1398 +
 .../x/crypto/curve25519/mont25519_amd64.go    |   240 +
 .../x/crypto/curve25519/mul_amd64.s           |   191 +
 .../x/crypto/curve25519/square_amd64.s        |   153 +
 vendor/golang.org/x/crypto/ed25519/ed25519.go |   181 +
 .../x/crypto/ed25519/ed25519_test.go          |   183 +
 .../ed25519/internal/edwards25519/const.go    |  1422 +
 .../internal/edwards25519/edwards25519.go     |  1771 +
 .../x/crypto/ed25519/testdata/sign.input.gz   |   Bin 0 -> 50330 bytes
 .../golang.org/x/crypto/hkdf/example_test.go  |    61 +
 vendor/golang.org/x/crypto/hkdf/hkdf.go       |    75 +
 vendor/golang.org/x/crypto/hkdf/hkdf_test.go  |   370 +
 vendor/golang.org/x/crypto/md4/md4.go         |   118 +
 vendor/golang.org/x/crypto/md4/md4_test.go    |    71 +
 vendor/golang.org/x/crypto/md4/md4block.go    |    89 +
 vendor/golang.org/x/crypto/nacl/box/box.go    |    86 +
 .../golang.org/x/crypto/nacl/box/box_test.go  |    78 +
 .../x/crypto/nacl/secretbox/example_test.go   |    53 +
 .../x/crypto/nacl/secretbox/secretbox.go      |   149 +
 .../x/crypto/nacl/secretbox/secretbox_test.go |    91 +
 vendor/golang.org/x/crypto/ocsp/ocsp.go       |   714 +
 vendor/golang.org/x/crypto/ocsp/ocsp_test.go  |   778 +
 .../x/crypto/openpgp/armor/armor.go           |   219 +
 .../x/crypto/openpgp/armor/armor_test.go      |    95 +
 .../x/crypto/openpgp/armor/encode.go          |   160 +
 .../x/crypto/openpgp/canonical_text.go        |    59 +
 .../x/crypto/openpgp/canonical_text_test.go   |    52 +
 .../x/crypto/openpgp/clearsign/clearsign.go   |   376 +
 .../openpgp/clearsign/clearsign_test.go       |   210 +
 .../x/crypto/openpgp/elgamal/elgamal.go       |   122 +
 .../x/crypto/openpgp/elgamal/elgamal_test.go  |    49 +
 .../x/crypto/openpgp/errors/errors.go         |    72 +
 vendor/golang.org/x/crypto/openpgp/keys.go    |   639 +
 .../golang.org/x/crypto/openpgp/keys_test.go  |   404 +
 .../x/crypto/openpgp/packet/compressed.go     |   123 +
 .../crypto/openpgp/packet/compressed_test.go  |    41 +
 .../x/crypto/openpgp/packet/config.go         |    91 +
 .../x/crypto/openpgp/packet/encrypted_key.go  |   199 +
 .../openpgp/packet/encrypted_key_test.go      |   146 +
 .../x/crypto/openpgp/packet/literal.go        |    89 +
 .../x/crypto/openpgp/packet/ocfb.go           |   143 +
 .../x/crypto/openpgp/packet/ocfb_test.go      |    46 +
 .../openpgp/packet/one_pass_signature.go      |    73 +
 .../x/crypto/openpgp/packet/opaque.go         |   162 +
 .../x/crypto/openpgp/packet/opaque_test.go    |    67 +
 .../x/crypto/openpgp/packet/packet.go         |   539 +
 .../x/crypto/openpgp/packet/packet_test.go    |   255 +
 .../x/crypto/openpgp/packet/private_key.go    |   380 +
 .../crypto/openpgp/packet/private_key_test.go |   270 +
 .../x/crypto/openpgp/packet/public_key.go     |   750 +
 .../crypto/openpgp/packet/public_key_test.go  |   202 +
 .../x/crypto/openpgp/packet/public_key_v3.go  |   280 +
 .../openpgp/packet/public_key_v3_test.go      |    82 +
 .../x/crypto/openpgp/packet/reader.go         |    76 +
 .../x/crypto/openpgp/packet/signature.go      |   731 +
 .../x/crypto/openpgp/packet/signature_test.go |    78 +
 .../x/crypto/openpgp/packet/signature_v3.go   |   146 +
 .../openpgp/packet/signature_v3_test.go       |    92 +
 .../openpgp/packet/symmetric_key_encrypted.go |   155 +
 .../packet/symmetric_key_encrypted_test.go    |   103 +
 .../openpgp/packet/symmetrically_encrypted.go |   290 +
 .../packet/symmetrically_encrypted_test.go    |   123 +
 .../x/crypto/openpgp/packet/userattribute.go  |    91 +
 .../openpgp/packet/userattribute_test.go      |   109 +
 .../x/crypto/openpgp/packet/userid.go         |   160 +
 .../x/crypto/openpgp/packet/userid_test.go    |    87 +
 vendor/golang.org/x/crypto/openpgp/read.go    |   442 +
 .../golang.org/x/crypto/openpgp/read_test.go  |   613 +
 vendor/golang.org/x/crypto/openpgp/s2k/s2k.go |   273 +
 .../x/crypto/openpgp/s2k/s2k_test.go          |   137 +
 vendor/golang.org/x/crypto/openpgp/write.go   |   378 +
 .../golang.org/x/crypto/openpgp/write_test.go |   273 +
 .../x/crypto/otr/libotr_test_helper.c         |   197 +
 vendor/golang.org/x/crypto/otr/otr.go         |  1408 +
 vendor/golang.org/x/crypto/otr/otr_test.go    |   470 +
 vendor/golang.org/x/crypto/otr/smp.go         |   572 +
 vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go   |    77 +
 .../golang.org/x/crypto/pbkdf2/pbkdf2_test.go |   157 +
 .../golang.org/x/crypto/pkcs12/bmp-string.go  |    50 +
 .../x/crypto/pkcs12/bmp-string_test.go        |    63 +
 vendor/golang.org/x/crypto/pkcs12/crypto.go   |   131 +
 .../golang.org/x/crypto/pkcs12/crypto_test.go |   125 +
 vendor/golang.org/x/crypto/pkcs12/errors.go   |    23 +
 .../crypto/pkcs12/internal/rc2/bench_test.go  |    27 +
 .../x/crypto/pkcs12/internal/rc2/rc2.go       |   274 +
 .../x/crypto/pkcs12/internal/rc2/rc2_test.go  |    93 +
 vendor/golang.org/x/crypto/pkcs12/mac.go      |    45 +
 vendor/golang.org/x/crypto/pkcs12/mac_test.go |    42 +
 vendor/golang.org/x/crypto/pkcs12/pbkdf.go    |   170 +
 .../golang.org/x/crypto/pkcs12/pbkdf_test.go  |    34 +
 vendor/golang.org/x/crypto/pkcs12/pkcs12.go   |   342 +
 .../golang.org/x/crypto/pkcs12/pkcs12_test.go |   138 +
 vendor/golang.org/x/crypto/pkcs12/safebags.go |    57 +
 .../golang.org/x/crypto/poly1305/poly1305.go  |    32 +
 .../x/crypto/poly1305/poly1305_amd64.s        |   133 +
 .../x/crypto/poly1305/poly1305_arm.s          |   379 +
 .../x/crypto/poly1305/poly1305_test.go        |    92 +
 .../golang.org/x/crypto/poly1305/sum_amd64.go |    24 +
 .../golang.org/x/crypto/poly1305/sum_arm.go   |    24 +
 .../golang.org/x/crypto/poly1305/sum_ref.go   |  1531 +
 .../x/crypto/ripemd160/ripemd160.go           |   120 +
 .../x/crypto/ripemd160/ripemd160_test.go      |    64 +
 .../x/crypto/ripemd160/ripemd160block.go      |   161 +
 .../x/crypto/salsa20/salsa/hsalsa20.go        |   144 +
 .../x/crypto/salsa20/salsa/salsa2020_amd64.s  |   902 +
 .../x/crypto/salsa20/salsa/salsa208.go        |   199 +
 .../x/crypto/salsa20/salsa/salsa20_amd64.go   |    23 +
 .../x/crypto/salsa20/salsa/salsa20_ref.go     |   234 +
 .../x/crypto/salsa20/salsa/salsa_test.go      |    35 +
 vendor/golang.org/x/crypto/salsa20/salsa20.go |    54 +
 .../x/crypto/salsa20/salsa20_test.go          |   139 +
 vendor/golang.org/x/crypto/scrypt/scrypt.go   |   243 +
 .../golang.org/x/crypto/scrypt/scrypt_test.go |   160 +
 vendor/golang.org/x/crypto/sha3/doc.go        |    66 +
 vendor/golang.org/x/crypto/sha3/hashes.go     |    65 +
 vendor/golang.org/x/crypto/sha3/keccakf.go    |   412 +
 .../golang.org/x/crypto/sha3/keccakf_amd64.go |    13 +
 .../golang.org/x/crypto/sha3/keccakf_amd64.s  |   392 +
 vendor/golang.org/x/crypto/sha3/register.go   |    18 +
 vendor/golang.org/x/crypto/sha3/sha3.go       |   193 +
 vendor/golang.org/x/crypto/sha3/sha3_test.go  |   306 +
 vendor/golang.org/x/crypto/sha3/shake.go      |    60 +
 .../sha3/testdata/keccakKats.json.deflate     |   Bin 0 -> 521342 bytes
 vendor/golang.org/x/crypto/sha3/xor.go        |    16 +
 .../golang.org/x/crypto/sha3/xor_generic.go   |    28 +
 .../golang.org/x/crypto/sha3/xor_unaligned.go |    58 +
 .../golang.org/x/crypto/ssh/agent/client.go   |   659 +
 .../x/crypto/ssh/agent/client_test.go         |   343 +
 .../x/crypto/ssh/agent/example_test.go        |    40 +
 .../golang.org/x/crypto/ssh/agent/forward.go  |   103 +
 .../golang.org/x/crypto/ssh/agent/keyring.go  |   215 +
 .../x/crypto/ssh/agent/keyring_test.go        |    76 +
 .../golang.org/x/crypto/ssh/agent/server.go   |   451 +
 .../x/crypto/ssh/agent/server_test.go         |   207 +
 .../x/crypto/ssh/agent/testdata_test.go       |    64 +
 .../golang.org/x/crypto/ssh/benchmark_test.go |   122 +
 vendor/golang.org/x/crypto/ssh/buffer.go      |    98 +
 vendor/golang.org/x/crypto/ssh/buffer_test.go |    87 +
 vendor/golang.org/x/crypto/ssh/certs.go       |   503 +
 vendor/golang.org/x/crypto/ssh/certs_test.go  |   216 +
 vendor/golang.org/x/crypto/ssh/channel.go     |   633 +
 vendor/golang.org/x/crypto/ssh/cipher.go      |   579 +
 vendor/golang.org/x/crypto/ssh/cipher_test.go |   127 +
 vendor/golang.org/x/crypto/ssh/client.go      |   213 +
 vendor/golang.org/x/crypto/ssh/client_auth.go |   473 +
 .../x/crypto/ssh/client_auth_test.go          |   472 +
 vendor/golang.org/x/crypto/ssh/client_test.go |    39 +
 vendor/golang.org/x/crypto/ssh/common.go      |   356 +
 vendor/golang.org/x/crypto/ssh/connection.go  |   143 +
 vendor/golang.org/x/crypto/ssh/doc.go         |    18 +
 .../golang.org/x/crypto/ssh/example_test.go   |   262 +
 vendor/golang.org/x/crypto/ssh/handshake.go   |   460 +
 .../golang.org/x/crypto/ssh/handshake_test.go |   486 +
 vendor/golang.org/x/crypto/ssh/kex.go         |   526 +
 vendor/golang.org/x/crypto/ssh/kex_test.go    |    50 +
 vendor/golang.org/x/crypto/ssh/keys.go        |   880 +
 vendor/golang.org/x/crypto/ssh/keys_test.go   |   456 +
 vendor/golang.org/x/crypto/ssh/mac.go         |    57 +
 .../golang.org/x/crypto/ssh/mempipe_test.go   |   110 +
 vendor/golang.org/x/crypto/ssh/messages.go    |   758 +
 .../golang.org/x/crypto/ssh/messages_test.go  |   288 +
 vendor/golang.org/x/crypto/ssh/mux.go         |   330 +
 vendor/golang.org/x/crypto/ssh/mux_test.go    |   502 +
 vendor/golang.org/x/crypto/ssh/server.go      |   488 +
 vendor/golang.org/x/crypto/ssh/session.go     |   627 +
 .../golang.org/x/crypto/ssh/session_test.go   |   770 +
 vendor/golang.org/x/crypto/ssh/tcpip.go       |   407 +
 vendor/golang.org/x/crypto/ssh/tcpip_test.go  |    20 +
 .../x/crypto/ssh/terminal/terminal.go         |   892 +
 .../x/crypto/ssh/terminal/terminal_test.go    |   291 +
 .../golang.org/x/crypto/ssh/terminal/util.go  |   133 +
 .../x/crypto/ssh/terminal/util_bsd.go         |    12 +
 .../x/crypto/ssh/terminal/util_linux.go       |    11 +
 .../x/crypto/ssh/terminal/util_plan9.go       |    58 +
 .../x/crypto/ssh/terminal/util_solaris.go     |    73 +
 .../x/crypto/ssh/terminal/util_windows.go     |   174 +
 .../x/crypto/ssh/test/agent_unix_test.go      |    59 +
 .../golang.org/x/crypto/ssh/test/cert_test.go |    47 +
 vendor/golang.org/x/crypto/ssh/test/doc.go    |     7 +
 .../x/crypto/ssh/test/forward_unix_test.go    |   160 +
 .../x/crypto/ssh/test/session_test.go         |   365 +
 .../x/crypto/ssh/test/tcpip_test.go           |    46 +
 .../x/crypto/ssh/test/test_unix_test.go       |   268 +
 .../x/crypto/ssh/test/testdata_test.go        |    64 +
 .../golang.org/x/crypto/ssh/testdata/doc.go   |     8 +
 .../golang.org/x/crypto/ssh/testdata/keys.go  |   120 +
 .../golang.org/x/crypto/ssh/testdata_test.go  |    63 +
 vendor/golang.org/x/crypto/ssh/transport.go   |   333 +
 .../golang.org/x/crypto/ssh/transport_test.go |   109 +
 vendor/golang.org/x/crypto/tea/cipher.go      |   109 +
 vendor/golang.org/x/crypto/tea/tea_test.go    |    93 +
 vendor/golang.org/x/crypto/twofish/twofish.go |   342 +
 .../x/crypto/twofish/twofish_test.go          |   129 +
 vendor/golang.org/x/crypto/xtea/block.go      |    66 +
 vendor/golang.org/x/crypto/xtea/cipher.go     |    82 +
 vendor/golang.org/x/crypto/xtea/xtea_test.go  |   229 +
 vendor/golang.org/x/crypto/xts/xts.go         |   138 +
 vendor/golang.org/x/crypto/xts/xts_test.go    |    85 +
 vendor/golang.org/x/oauth2/.travis.yml        |    13 +
 vendor/golang.org/x/oauth2/AUTHORS            |     3 +
 vendor/golang.org/x/oauth2/CONTRIBUTING.md    |    31 +
 vendor/golang.org/x/oauth2/CONTRIBUTORS       |     3 +
 vendor/golang.org/x/oauth2/LICENSE            |    27 +
 vendor/golang.org/x/oauth2/README.md          |    65 +
 .../x/oauth2/bitbucket/bitbucket.go           |    16 +
 .../golang.org/x/oauth2/client_appengine.go   |    25 +
 .../clientcredentials/clientcredentials.go    |   112 +
 .../clientcredentials_test.go                 |    95 +
 vendor/golang.org/x/oauth2/example_test.go    |    47 +
 .../golang.org/x/oauth2/facebook/facebook.go  |    16 +
 vendor/golang.org/x/oauth2/fitbit/fitbit.go   |    16 +
 vendor/golang.org/x/oauth2/github/github.go   |    16 +
 .../golang.org/x/oauth2/google/appengine.go   |    86 +
 .../x/oauth2/google/appengine_hook.go         |    13 +
 .../x/oauth2/google/appenginevm_hook.go       |    14 +
 vendor/golang.org/x/oauth2/google/default.go  |   155 +
 .../x/oauth2/google/example_test.go           |   150 +
 vendor/golang.org/x/oauth2/google/google.go   |   153 +
 .../golang.org/x/oauth2/google/google_test.go |   116 +
 vendor/golang.org/x/oauth2/google/jwt.go      |    74 +
 vendor/golang.org/x/oauth2/google/jwt_test.go |    91 +
 vendor/golang.org/x/oauth2/google/sdk.go      |   168 +
 vendor/golang.org/x/oauth2/google/sdk_test.go |    46 +
 .../oauth2/google/testdata/gcloud/credentials |   122 +
 .../oauth2/google/testdata/gcloud/properties  |     2 +
 vendor/golang.org/x/oauth2/heroku/heroku.go   |    16 +
 vendor/golang.org/x/oauth2/hipchat/hipchat.go |    60 +
 vendor/golang.org/x/oauth2/internal/oauth2.go |    76 +
 .../x/oauth2/internal/oauth2_test.go          |    62 +
 vendor/golang.org/x/oauth2/internal/token.go  |   225 +
 .../x/oauth2/internal/token_test.go           |    35 +
 .../golang.org/x/oauth2/internal/transport.go |    69 +
 .../x/oauth2/internal/transport_test.go       |    38 +
 vendor/golang.org/x/oauth2/jws/jws.go         |   182 +
 vendor/golang.org/x/oauth2/jws/jws_test.go    |    46 +
 .../golang.org/x/oauth2/jwt/example_test.go   |    33 +
 vendor/golang.org/x/oauth2/jwt/jwt.go         |   157 +
 vendor/golang.org/x/oauth2/jwt/jwt_test.go    |   133 +
 .../golang.org/x/oauth2/linkedin/linkedin.go  |    16 +
 .../x/oauth2/mediamath/mediamath.go           |    22 +
 .../x/oauth2/microsoft/microsoft.go           |    16 +
 vendor/golang.org/x/oauth2/oauth2.go          |   341 +
 vendor/golang.org/x/oauth2/oauth2_test.go     |   456 +
 .../x/oauth2/odnoklassniki/odnoklassniki.go   |    16 +
 vendor/golang.org/x/oauth2/paypal/paypal.go   |    22 +
 vendor/golang.org/x/oauth2/slack/slack.go     |    16 +
 vendor/golang.org/x/oauth2/token.go           |   158 +
 vendor/golang.org/x/oauth2/token_test.go      |    72 +
 vendor/golang.org/x/oauth2/transport.go       |   132 +
 vendor/golang.org/x/oauth2/transport_test.go  |   108 +
 vendor/golang.org/x/oauth2/uber/uber.go       |    16 +
 vendor/golang.org/x/oauth2/vk/vk.go           |    16 +
 vendor/golang.org/x/sync/AUTHORS              |     3 +
 vendor/golang.org/x/sync/CONTRIBUTING.md      |    31 +
 vendor/golang.org/x/sync/CONTRIBUTORS         |     3 +
 vendor/golang.org/x/sync/LICENSE              |    27 +
 vendor/golang.org/x/sync/PATENTS              |    22 +
 vendor/golang.org/x/sync/README               |     2 +
 vendor/golang.org/x/sync/codereview.cfg       |     1 +
 vendor/golang.org/x/sync/errgroup/errgroup.go |    67 +
 .../errgroup/errgroup_example_md5all_test.go  |   101 +
 .../x/sync/errgroup/errgroup_test.go          |   176 +
 .../golang.org/x/sync/semaphore/semaphore.go  |   131 +
 .../x/sync/semaphore/semaphore_bench_test.go  |   130 +
 .../x/sync/semaphore/semaphore_test.go        |   170 +
 .../x/sync/singleflight/singleflight.go       |   111 +
 .../x/sync/singleflight/singleflight_test.go  |    87 +
 vendor/golang.org/x/sync/syncmap/map.go       |   372 +
 .../x/sync/syncmap/map_bench_test.go          |   216 +
 .../x/sync/syncmap/map_reference_test.go      |   151 +
 vendor/golang.org/x/sync/syncmap/map_test.go  |   172 +
 .../golang.org/x/sys/unix/asm_linux_mipsx.s   |    31 +
 .../x/sys/unix/flock_linux_32bit.go           |     2 +-
 .../x/sys/unix/gccgo_linux_sparc64.go         |    20 +
 vendor/golang.org/x/sys/unix/mkall.sh         |     7 +
 vendor/golang.org/x/sys/unix/mkerrors.sh      |     9 +
 .../golang.org/x/sys/unix/mksysnum_linux.pl   |    12 +-
 vendor/golang.org/x/sys/unix/syscall_bsd.go   |    18 +-
 vendor/golang.org/x/sys/unix/syscall_linux.go |    65 +-
 .../x/sys/unix/syscall_linux_amd64.go         |     5 -
 .../x/sys/unix/syscall_linux_amd64_gc.go      |    13 +
 .../x/sys/unix/syscall_linux_arm64.go         |     2 -
 .../x/sys/unix/syscall_linux_mips64x.go       |     7 -
 .../x/sys/unix/syscall_linux_mipsx.go         |   241 +
 .../x/sys/unix/syscall_linux_sparc64.go       |   169 +
 vendor/golang.org/x/sys/unix/syscall_unix.go  |     5 -
 .../golang.org/x/sys/unix/syscall_unix_gc.go  |    15 +
 vendor/golang.org/x/sys/unix/types_linux.go   |    15 +-
 .../x/sys/unix/zerrors_linux_386.go           |    19 +
 .../x/sys/unix/zerrors_linux_amd64.go         |    19 +
 .../x/sys/unix/zerrors_linux_arm.go           |    19 +
 .../x/sys/unix/zerrors_linux_arm64.go         |    19 +
 .../x/sys/unix/zerrors_linux_mips.go          |  1814 +
 .../x/sys/unix/zerrors_linux_mipsle.go        |  2020 +
 .../x/sys/unix/zerrors_linux_ppc64.go         |    19 +
 .../x/sys/unix/zerrors_linux_ppc64le.go       |    19 +
 .../x/sys/unix/zerrors_linux_s390x.go         |    19 +
 .../x/sys/unix/zerrors_linux_sparc64.go       |  2096 +
 .../x/sys/unix/zsyscall_linux_386.go          |    21 +-
 .../x/sys/unix/zsyscall_linux_amd64.go        |    21 +-
 .../x/sys/unix/zsyscall_linux_arm.go          |    21 +-
 .../x/sys/unix/zsyscall_linux_arm64.go        |    21 +-
 .../x/sys/unix/zsyscall_linux_mips.go         |  1829 +
 .../x/sys/unix/zsyscall_linux_mips64.go       |    21 +-
 .../x/sys/unix/zsyscall_linux_mips64le.go     |    21 +-
 .../x/sys/unix/zsyscall_linux_mipsle.go       |  1829 +
 .../x/sys/unix/zsyscall_linux_ppc64.go        |    21 +-
 .../x/sys/unix/zsyscall_linux_ppc64le.go      |    21 +-
 .../x/sys/unix/zsyscall_linux_s390x.go        |    21 +-
 .../x/sys/unix/zsyscall_linux_sparc64.go      |  1845 +
 .../x/sys/unix/zsysnum_linux_mips.go          |   359 +
 .../x/sys/unix/zsysnum_linux_mipsle.go        |   359 +
 .../x/sys/unix/zsysnum_linux_sparc64.go       |   348 +
 .../golang.org/x/sys/unix/ztypes_linux_386.go |     8 +
 .../x/sys/unix/ztypes_linux_amd64.go          |     8 +
 .../golang.org/x/sys/unix/ztypes_linux_arm.go |    19 +-
 .../x/sys/unix/ztypes_linux_arm64.go          |     8 +
 .../x/sys/unix/ztypes_linux_mips.go           |   642 +
 .../x/sys/unix/ztypes_linux_mips64.go         |     8 +
 .../x/sys/unix/ztypes_linux_mips64le.go       |     8 +
 .../x/sys/unix/ztypes_linux_mipsle.go         |   642 +
 .../x/sys/unix/ztypes_linux_ppc64.go          |     8 +
 .../x/sys/unix/ztypes_linux_ppc64le.go        |     8 +
 .../x/sys/unix/ztypes_linux_s390x.go          |     8 +
 .../x/sys/unix/ztypes_linux_sparc64.go        |   648 +
 .../golang.org/x/sys/windows/registry/key.go  |    32 +-
 .../x/sys/windows/registry/syscall.go         |     1 +
 .../sys/windows/registry/zsyscall_windows.go  |    39 +-
 .../x/sys/windows/zsyscall_windows.go         |   309 +-
 .../sunzi-bingfa-simplified-utf-8.txt         |   107 +
 .../sunzi-bingfa-traditional-big5.txt         |   106 +
 .../sunzi-bingfa-traditional-utf-8.txt        |   106 +
 .../testdata/unsu-joh-eun-nal-euc-kr.txt      |   175 +
 .../testdata/unsu-joh-eun-nal-utf-8.txt       |   175 +
 .../encoding/traditionalchinese/all_test.go   |    45 +
 .../text/encoding/traditionalchinese/big5.go  |   198 +
 .../encoding/traditionalchinese/maketables.go |   140 +
 .../encoding/traditionalchinese/tables.go     | 37142 +++++++++++++
 .../x/text/encoding/unicode/override.go       |    82 +
 .../x/text/encoding/unicode/unicode.go        |   434 +
 .../x/text/encoding/unicode/unicode_test.go   |   178 +
 .../x/text/encoding/unicode/utf32/utf32.go    |   296 +
 .../text/encoding/unicode/utf32/utf32_test.go |   210 +
 vendor/golang.org/x/text/gen.go               |   177 +
 .../x/text/internal/colltab/colltab.go        |   105 +
 .../x/text/internal/colltab/colltab_test.go   |    64 +
 .../x/text/internal/colltab/contract.go       |   145 +
 .../x/text/internal/colltab/contract_test.go  |   135 +
 .../x/text/internal/colltab/iter.go           |   182 +
 .../x/text/internal/colltab/iter_test.go      |    77 +
 .../x/text/internal/format/format.go          |    43 +
 .../x/text/internal/format/plural/plural.go   |    38 +
 vendor/golang.org/x/text/internal/gen.go      |    52 +
 vendor/golang.org/x/text/internal/gen/code.go |   338 +
 vendor/golang.org/x/text/internal/gen/gen.go  |   226 +
 vendor/golang.org/x/text/internal/gen_test.go |    38 +
 vendor/golang.org/x/text/internal/internal.go |    51 +
 .../x/text/internal/internal_test.go          |    38 +
 vendor/golang.org/x/text/internal/match.go    |    65 +
 .../golang.org/x/text/internal/match_test.go  |    56 +
 .../x/text/internal/number/common.go          |    92 +
 .../x/text/internal/number/data_test.go       |   194 +
 .../x/text/internal/number/decimal.go         |   416 +
 .../x/text/internal/number/extfloat.go        |   671 +
 .../golang.org/x/text/internal/number/ftoa.go |   448 +
 .../golang.org/x/text/internal/number/gen.go  |   466 +
 .../x/text/internal/number/gen_common.go      |    96 +
 .../x/text/internal/number/gen_plural.go      |   471 +
 .../golang.org/x/text/internal/number/itoa.go |   111 +
 .../x/text/internal/number/number.go          |   145 +
 .../x/text/internal/number/number_test.go     |    90 +
 .../x/text/internal/number/pattern.go         |   386 +
 .../x/text/internal/number/pattern_test.go    |   300 +
 .../x/text/internal/number/plural.go          |   119 +
 .../x/text/internal/number/plural_test.go     |   110 +
 .../x/text/internal/number/tables.go          |  1633 +
 .../x/text/internal/number/tables_test.go     |   125 +
 .../x/text/internal/stringset/set.go          |    86 +
 .../x/text/internal/stringset/set_test.go     |    53 +
 vendor/golang.org/x/text/internal/tables.go   |   116 +
 vendor/golang.org/x/text/internal/tag/tag.go  |   100 +
 .../x/text/internal/tag/tag_test.go           |    67 +
 .../x/text/internal/testtext/codesize.go      |    53 +
 .../x/text/internal/testtext/flag.go          |    22 +
 .../golang.org/x/text/internal/testtext/gc.go |    14 +
 .../x/text/internal/testtext/gccgo.go         |    11 +
 .../x/text/internal/testtext/go1_6.go         |    14 +
 .../x/text/internal/testtext/go1_7.go         |    13 +
 .../x/text/internal/testtext/text.go          |   105 +
 .../x/text/internal/triegen/compact.go        |    58 +
 .../x/text/internal/triegen/data_test.go      |   875 +
 .../internal/triegen/example_compact_test.go  |    71 +
 .../x/text/internal/triegen/example_test.go   |   148 +
 .../x/text/internal/triegen/gen_test.go       |    68 +
 .../x/text/internal/triegen/print.go          |   251 +
 .../x/text/internal/triegen/triegen.go        |   494 +
 .../x/text/internal/ucd/example_test.go       |    81 +
 vendor/golang.org/x/text/internal/ucd/ucd.go  |   363 +
 .../x/text/internal/ucd/ucd_test.go           |   105 +
 .../internal/utf8internal/utf8internal.go     |    87 +
 vendor/golang.org/x/text/language/Makefile    |    16 +
 vendor/golang.org/x/text/language/common.go   |    16 +
 vendor/golang.org/x/text/language/coverage.go |   197 +
 .../x/text/language/coverage_test.go          |   154 +
 .../golang.org/x/text/language/data_test.go   |   416 +
 .../x/text/language/display/dict.go           |    92 +
 .../x/text/language/display/dict_test.go      |    39 +
 .../x/text/language/display/display.go        |   343 +
 .../x/text/language/display/display_test.go   |   632 +
 .../x/text/language/display/examples_test.go  |    98 +
 .../x/text/language/display/lookup.go         |   238 +
 .../x/text/language/display/maketables.go     |   596 +
 .../x/text/language/display/tables.go         | 45235 ++++++++++++++++
 .../x/text/language/examples_test.go          |   396 +
 .../golang.org/x/text/language/gen_common.go  |    20 +
 .../golang.org/x/text/language/gen_index.go   |   162 +
 vendor/golang.org/x/text/language/go1_1.go    |    38 +
 vendor/golang.org/x/text/language/go1_2.go    |    11 +
 .../x/text/language/httpexample_test.go       |    48 +
 vendor/golang.org/x/text/language/index.go    |   762 +
 vendor/golang.org/x/text/language/language.go |   975 +
 .../x/text/language/language_test.go          |   878 +
 vendor/golang.org/x/text/language/lookup.go   |   396 +
 .../golang.org/x/text/language/lookup_test.go |   457 +
 .../golang.org/x/text/language/maketables.go  |  1635 +
 vendor/golang.org/x/text/language/match.go    |   840 +
 .../golang.org/x/text/language/match_test.go  |   392 +
 vendor/golang.org/x/text/language/parse.go    |   859 +
 .../golang.org/x/text/language/parse_test.go  |   517 +
 vendor/golang.org/x/text/language/tables.go   |  2791 +
 vendor/golang.org/x/text/language/tags.go     |   143 +
 vendor/golang.org/x/text/message/catalog.go   |   113 +
 .../golang.org/x/text/message/catalog_test.go |    98 +
 vendor/golang.org/x/text/message/message.go   |   185 +
 .../golang.org/x/text/message/message_test.go |   149 +
 vendor/golang.org/x/text/runes/cond.go        |   126 +
 vendor/golang.org/x/text/runes/cond_test.go   |   233 +
 .../golang.org/x/text/runes/example_test.go   |    60 +
 vendor/golang.org/x/text/runes/runes.go       |   278 +
 vendor/golang.org/x/text/runes/runes_test.go  |   583 +
 vendor/golang.org/x/text/search/index.go      |    47 +
 vendor/golang.org/x/text/search/pattern.go    |   156 +
 .../golang.org/x/text/search/pattern_test.go  |   357 +
 vendor/golang.org/x/text/search/search.go     |   238 +
 vendor/golang.org/x/text/search/tables.go     | 12448 +++++
 .../x/text/secure/bidirule/bidirule.go        |   290 +
 .../x/text/secure/bidirule/bidirule_test.go   |   697 +
 .../x/text/secure/bidirule/go1_6_test.go      |    24 +
 .../x/text/secure/bidirule/go1_7_test.go      |    66 +
 vendor/golang.org/x/text/secure/doc.go        |     6 +
 .../x/text/secure/precis/benchmark_test.go    |    78 +
 .../golang.org/x/text/secure/precis/class.go  |    36 +
 .../x/text/secure/precis/class_test.go        |    50 +
 .../x/text/secure/precis/context.go           |   139 +
 vendor/golang.org/x/text/secure/precis/doc.go |    14 +
 .../x/text/secure/precis/enforce_test.go      |   280 +
 vendor/golang.org/x/text/secure/precis/gen.go |   310 +
 .../x/text/secure/precis/gen_trieval.go       |    68 +
 .../x/text/secure/precis/go1_6_test.go        |    24 +
 .../x/text/secure/precis/go1_7_test.go        |    23 +
 .../x/text/secure/precis/nickname.go          |    70 +
 .../x/text/secure/precis/options.go           |   106 +
 .../x/text/secure/precis/profile.go           |   330 +
 .../x/text/secure/precis/profiles.go          |    56 +
 .../golang.org/x/text/secure/precis/tables.go |  3788 ++
 .../x/text/secure/precis/tables_test.go       |    69 +
 .../x/text/secure/precis/transformer.go       |    32 +
 .../x/text/secure/precis/trieval.go           |    64 +
 .../x/text/transform/examples_test.go         |    37 +
 .../golang.org/x/text/transform/transform.go  |   661 +
 .../x/text/transform/transform_test.go        |  1317 +
 vendor/golang.org/x/text/unicode/bidi/bidi.go |   198 +
 .../golang.org/x/text/unicode/bidi/bracket.go |   307 +
 vendor/golang.org/x/text/unicode/bidi/core.go |  1055 +
 .../x/text/unicode/bidi/core_test.go          |   224 +
 vendor/golang.org/x/text/unicode/bidi/gen.go  |   133 +
 .../x/text/unicode/bidi/gen_ranges.go         |    57 +
 .../x/text/unicode/bidi/gen_trieval.go        |    64 +
 vendor/golang.org/x/text/unicode/bidi/prop.go |   206 +
 .../x/text/unicode/bidi/ranges_test.go        |    53 +
 .../golang.org/x/text/unicode/bidi/tables.go  |  1779 +
 .../x/text/unicode/bidi/tables_test.go        |    82 +
 .../golang.org/x/text/unicode/bidi/trieval.go |    60 +
 vendor/golang.org/x/text/unicode/cldr/base.go |   110 +
 vendor/golang.org/x/text/unicode/cldr/cldr.go |   130 +
 .../x/text/unicode/cldr/cldr_test.go          |    27 +
 .../golang.org/x/text/unicode/cldr/collate.go |   359 +
 .../x/text/unicode/cldr/collate_test.go       |   275 +
 .../x/text/unicode/cldr/data_test.go          |   186 +
 .../golang.org/x/text/unicode/cldr/decode.go  |   171 +
 .../x/text/unicode/cldr/examples_test.go      |    21 +
 .../golang.org/x/text/unicode/cldr/makexml.go |   400 +
 .../golang.org/x/text/unicode/cldr/resolve.go |   602 +
 .../x/text/unicode/cldr/resolve_test.go       |   368 +
 .../golang.org/x/text/unicode/cldr/slice.go   |   144 +
 .../x/text/unicode/cldr/slice_test.go         |   175 +
 vendor/golang.org/x/text/unicode/cldr/xml.go  |  1440 +
 vendor/golang.org/x/text/unicode/doc.go       |     8 +
 .../x/text/unicode/norm/composition.go        |   514 +
 .../x/text/unicode/norm/composition_test.go   |   130 +
 .../x/text/unicode/norm/example_iter_test.go  |    82 +
 .../x/text/unicode/norm/example_test.go       |    27 +
 .../x/text/unicode/norm/forminfo.go           |   256 +
 .../x/text/unicode/norm/forminfo_test.go      |    54 +
 .../golang.org/x/text/unicode/norm/input.go   |   105 +
 vendor/golang.org/x/text/unicode/norm/iter.go |   450 +
 .../x/text/unicode/norm/iter_test.go          |    98 +
 .../x/text/unicode/norm/maketables.go         |   978 +
 .../x/text/unicode/norm/norm_test.go          |    14 +
 .../x/text/unicode/norm/normalize.go          |   576 +
 .../x/text/unicode/norm/normalize_test.go     |  1195 +
 .../x/text/unicode/norm/readwriter.go         |   126 +
 .../x/text/unicode/norm/readwriter_test.go    |    56 +
 .../golang.org/x/text/unicode/norm/tables.go  |  7627 +++
 .../x/text/unicode/norm/transform.go          |    88 +
 .../x/text/unicode/norm/transform_test.go     |   101 +
 vendor/golang.org/x/text/unicode/norm/trie.go |    54 +
 .../golang.org/x/text/unicode/norm/triegen.go |   117 +
 .../x/text/unicode/norm/ucd_test.go           |   275 +
 .../x/text/unicode/rangetable/gen.go          |   113 +
 .../x/text/unicode/rangetable/merge.go        |   260 +
 .../x/text/unicode/rangetable/merge_test.go   |   184 +
 .../x/text/unicode/rangetable/rangetable.go   |    70 +
 .../unicode/rangetable/rangetable_test.go     |    55 +
 .../x/text/unicode/rangetable/tables.go       |  5735 ++
 vendor/golang.org/x/text/width/common_test.go |    92 +
 .../golang.org/x/text/width/example_test.go   |    52 +
 vendor/golang.org/x/text/width/gen.go         |   115 +
 vendor/golang.org/x/text/width/gen_common.go  |    96 +
 vendor/golang.org/x/text/width/gen_trieval.go |    34 +
 vendor/golang.org/x/text/width/kind_string.go |    16 +
 vendor/golang.org/x/text/width/runes_test.go  |   461 +
 vendor/golang.org/x/text/width/tables.go      |  1284 +
 vendor/golang.org/x/text/width/tables_test.go |    59 +
 vendor/golang.org/x/text/width/transform.go   |   162 +
 .../golang.org/x/text/width/transform_test.go |   567 +
 vendor/golang.org/x/text/width/trieval.go     |    30 +
 vendor/golang.org/x/text/width/width.go       |   201 +
 vendor/gopkg.in/inf.v0/LICENSE                |    28 +
 vendor/gopkg.in/inf.v0/benchmark_test.go      |   210 +
 vendor/gopkg.in/inf.v0/dec.go                 |   615 +
 vendor/gopkg.in/inf.v0/dec_go1_2_test.go      |    33 +
 vendor/gopkg.in/inf.v0/dec_internal_test.go   |    40 +
 vendor/gopkg.in/inf.v0/dec_test.go            |   379 +
 vendor/gopkg.in/inf.v0/example_test.go        |    62 +
 vendor/gopkg.in/inf.v0/rounder.go             |   145 +
 .../gopkg.in/inf.v0/rounder_example_test.go   |    72 +
 vendor/gopkg.in/inf.v0/rounder_test.go        |   109 +
 vendor/gopkg.in/yaml.v2/LICENSE               |   188 +
 vendor/gopkg.in/yaml.v2/LICENSE.libyaml       |    31 +
 vendor/gopkg.in/yaml.v2/README.md             |   131 +
 vendor/gopkg.in/yaml.v2/apic.go               |   742 +
 vendor/gopkg.in/yaml.v2/decode.go             |   683 +
 vendor/gopkg.in/yaml.v2/decode_test.go        |   966 +
 vendor/gopkg.in/yaml.v2/emitterc.go           |  1685 +
 vendor/gopkg.in/yaml.v2/encode.go             |   306 +
 vendor/gopkg.in/yaml.v2/encode_test.go        |   501 +
 vendor/gopkg.in/yaml.v2/parserc.go            |  1096 +
 vendor/gopkg.in/yaml.v2/readerc.go            |   391 +
 vendor/gopkg.in/yaml.v2/resolve.go            |   203 +
 vendor/gopkg.in/yaml.v2/scannerc.go           |  2710 +
 vendor/gopkg.in/yaml.v2/sorter.go             |   104 +
 vendor/gopkg.in/yaml.v2/suite_test.go         |    12 +
 vendor/gopkg.in/yaml.v2/writerc.go            |    89 +
 vendor/gopkg.in/yaml.v2/yaml.go               |   346 +
 vendor/gopkg.in/yaml.v2/yamlh.go              |   716 +
 vendor/gopkg.in/yaml.v2/yamlprivateh.go       |   173 +
 1386 files changed, 512491 insertions(+), 81765 deletions(-)
 create mode 100644 vendor/github.com/coreos/go-semver/.travis.yml
 create mode 100644 vendor/github.com/coreos/go-semver/LICENSE
 create mode 100644 vendor/github.com/coreos/go-semver/README.md
 create mode 100644 vendor/github.com/coreos/go-semver/example.go
 create mode 100644 vendor/github.com/coreos/go-semver/semver/semver.go
 create mode 100644 vendor/github.com/coreos/go-semver/semver/semver_test.go
 create mode 100644 vendor/github.com/coreos/go-semver/semver/sort.go
 create mode 100644 vendor/github.com/gogo/protobuf/AUTHORS
 create mode 100644 vendor/github.com/gogo/protobuf/_conformance/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/_conformance/conformance.go
 create mode 100644 vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.proto
 create mode 100644 vendor/github.com/gogo/protobuf/bench.md
 create mode 100644 vendor/github.com/gogo/protobuf/custom_types.md
 create mode 100644 vendor/github.com/gogo/protobuf/extensions.md
 create mode 100644 vendor/github.com/gogo/protobuf/gogoreplace/main.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/any_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/decode_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/duration.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/duration_gogo.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/encode_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/map_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/timestamp.go
 create mode 100644 vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto
 create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go
 rename vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/{gostring.go => descriptor_gostring.gen.go} (84%)
 create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogotypes/main.go
 create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gostring/main.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/both/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/marshaler/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/unmarshaler/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/data/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/data/data.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/data/data.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/data/datapb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl/models.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl_all/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/enumdecl_all/models.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/README.md
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/issue260.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue260/models.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue261/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue261/issue261.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue262/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/issue262/timefail.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2_test.go.in
 create mode 100644 vendor/github.com/gogo/protobuf/test/proto3extension/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/registration/.gitignore
 create mode 100644 vendor/github.com/gogo/protobuf/test/registration/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/registration/registration.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/registration/registration_test.go.in
 create mode 100644 vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/stdtypes/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/t.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl/models.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl/typedecl.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl_all/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl_all/models.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/both/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/both/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/neither/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/neither/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/types.proto
 create mode 100644 vendor/github.com/gogo/protobuf/test/types/types_test.go.in
 create mode 100644 vendor/github.com/gogo/protobuf/types/Makefile
 create mode 100644 vendor/github.com/gogo/protobuf/types/any.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/any.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/any_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/doc.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/duration.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/duration.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/duration_gogo.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/duration_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/empty.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/field_mask.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/struct.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/timestamp.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/timestamp.pb.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/timestamp_gogo.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/timestamp_test.go
 create mode 100644 vendor/github.com/gogo/protobuf/types/wrappers.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/.gitignore
 create mode 100644 vendor/github.com/golang/protobuf/AUTHORS
 create mode 100644 vendor/github.com/golang/protobuf/CONTRIBUTORS
 create mode 100644 vendor/github.com/golang/protobuf/LICENSE
 create mode 100644 vendor/github.com/golang/protobuf/Make.protobuf
 create mode 100644 vendor/github.com/golang/protobuf/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/README.md
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb.go
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test.go
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto
 create mode 100644 vendor/github.com/golang/protobuf/proto/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/proto/all_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/any_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/clone.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/clone_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/decode.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/encode.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/equal.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/equal_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/extensions.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/extensions_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/lib.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/message_set.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/message_set_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/pointer_reflect.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/pointer_unsafe.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/properties.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.proto
 create mode 100644 vendor/github.com/golang/protobuf/proto/proto3_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/size2_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/size_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/testdata/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/proto/testdata/golden_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/testdata/test.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/testdata/test.proto
 create mode 100644 vendor/github.com/golang/protobuf/proto/text.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/text_parser.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/text_parser_test.go
 create mode 100644 vendor/github.com/golang/protobuf/proto/text_test.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/doc.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/generator/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/generator/generator.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/generator/name_test.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/grpc/grpc.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/link_grpc.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/main.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/plugin/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.golden
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/Makefile
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_base.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_extra.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_test.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_user.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/grpc.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.pb.go.golden
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp2.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp3.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/main_test.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi1.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi2.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi3.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go.golden
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.proto
 create mode 100644 vendor/github.com/golang/protobuf/protoc-gen-go/testdata/proto3.proto
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/any.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.proto
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/any_test.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/doc.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.proto
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration_test.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/empty/empty.proto
 create mode 100755 vendor/github.com/golang/protobuf/ptypes/regen.sh
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/struct/struct.proto
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp_test.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go
 create mode 100644 vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto
 create mode 100644 vendor/github.com/googleapis/gax-go/.gitignore
 create mode 100644 vendor/github.com/googleapis/gax-go/.travis.yml
 create mode 100644 vendor/github.com/googleapis/gax-go/CONTRIBUTING.md
 create mode 100644 vendor/github.com/googleapis/gax-go/LICENSE
 create mode 100644 vendor/github.com/googleapis/gax-go/README.md
 create mode 100644 vendor/github.com/googleapis/gax-go/call_option.go
 create mode 100644 vendor/github.com/googleapis/gax-go/call_option_test.go
 create mode 100644 vendor/github.com/googleapis/gax-go/gax.go
 create mode 100644 vendor/github.com/googleapis/gax-go/header.go
 create mode 100644 vendor/github.com/googleapis/gax-go/header_test.go
 create mode 100644 vendor/github.com/googleapis/gax-go/invoke.go
 create mode 100644 vendor/github.com/googleapis/gax-go/invoke_test.go
 create mode 100644 vendor/github.com/googleapis/gax-go/path_template.go
 create mode 100644 vendor/github.com/googleapis/gax-go/path_template_parser.go
 create mode 100644 vendor/github.com/googleapis/gax-go/path_template_test.go
 create mode 100644 vendor/github.com/gorilla/context/.travis.yml
 create mode 100644 vendor/github.com/gorilla/context/LICENSE
 create mode 100644 vendor/github.com/gorilla/context/README.md
 create mode 100644 vendor/github.com/gorilla/context/context.go
 create mode 100644 vendor/github.com/gorilla/context/context_test.go
 create mode 100644 vendor/github.com/gorilla/context/doc.go
 create mode 100644 vendor/github.com/gorilla/mux/.travis.yml
 create mode 100644 vendor/github.com/gorilla/mux/LICENSE
 create mode 100644 vendor/github.com/gorilla/mux/README.md
 create mode 100644 vendor/github.com/gorilla/mux/bench_test.go
 create mode 100644 vendor/github.com/gorilla/mux/context_gorilla.go
 create mode 100644 vendor/github.com/gorilla/mux/context_gorilla_test.go
 create mode 100644 vendor/github.com/gorilla/mux/context_native.go
 create mode 100644 vendor/github.com/gorilla/mux/context_native_test.go
 create mode 100644 vendor/github.com/gorilla/mux/doc.go
 create mode 100644 vendor/github.com/gorilla/mux/mux.go
 create mode 100644 vendor/github.com/gorilla/mux/mux_test.go
 create mode 100644 vendor/github.com/gorilla/mux/old_test.go
 create mode 100644 vendor/github.com/gorilla/mux/regexp.go
 create mode 100644 vendor/github.com/gorilla/mux/route.go
 create mode 100644 vendor/github.com/howeyc/gopass/.travis.yml
 create mode 100644 vendor/github.com/howeyc/gopass/LICENSE.txt
 create mode 100644 vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE
 create mode 100644 vendor/github.com/howeyc/gopass/README.md
 create mode 100644 vendor/github.com/howeyc/gopass/pass.go
 create mode 100644 vendor/github.com/howeyc/gopass/pass_test.go
 create mode 100644 vendor/github.com/howeyc/gopass/terminal.go
 create mode 100644 vendor/github.com/howeyc/gopass/terminal_solaris.go
 create mode 100644 vendor/github.com/imdario/mergo/.travis.yml
 create mode 100644 vendor/github.com/imdario/mergo/LICENSE
 create mode 100644 vendor/github.com/imdario/mergo/README.md
 create mode 100644 vendor/github.com/imdario/mergo/doc.go
 create mode 100644 vendor/github.com/imdario/mergo/map.go
 create mode 100644 vendor/github.com/imdario/mergo/merge.go
 create mode 100644 vendor/github.com/imdario/mergo/mergo.go
 create mode 100644 vendor/github.com/imdario/mergo/mergo_test.go
 create mode 100644 vendor/github.com/imdario/mergo/testdata/license.yml
 create mode 100644 vendor/github.com/imdario/mergo/testdata/thing.yml
 create mode 100644 vendor/github.com/urfave/negroni/.gitignore
 create mode 100644 vendor/github.com/urfave/negroni/.travis.yml
 create mode 100644 vendor/github.com/urfave/negroni/CHANGELOG.md
 create mode 100644 vendor/github.com/urfave/negroni/LICENSE
 create mode 100644 vendor/github.com/urfave/negroni/README.md
 create mode 100644 vendor/github.com/urfave/negroni/doc.go
 create mode 100644 vendor/github.com/urfave/negroni/logger.go
 create mode 100644 vendor/github.com/urfave/negroni/logger_test.go
 create mode 100644 vendor/github.com/urfave/negroni/negroni.go
 create mode 100644 vendor/github.com/urfave/negroni/negroni_test.go
 create mode 100644 vendor/github.com/urfave/negroni/recovery.go
 create mode 100644 vendor/github.com/urfave/negroni/recovery_test.go
 create mode 100644 vendor/github.com/urfave/negroni/response_writer.go
 create mode 100644 vendor/github.com/urfave/negroni/response_writer_test.go
 create mode 100644 vendor/github.com/urfave/negroni/static.go
 create mode 100644 vendor/github.com/urfave/negroni/static_test.go
 create mode 100644 vendor/github.com/urfave/negroni/translations/README_de_de.md
 create mode 100644 vendor/github.com/urfave/negroni/translations/README_ja_JP.md
 create mode 100644 vendor/github.com/urfave/negroni/translations/README_pt_br.md
 create mode 100644 vendor/github.com/urfave/negroni/translations/README_zh_cn.md
 create mode 100644 vendor/github.com/urfave/negroni/translations/README_zh_tw.md
 create mode 100644 vendor/golang.org/x/crypto/.gitattributes
 create mode 100644 vendor/golang.org/x/crypto/.gitignore
 create mode 100644 vendor/golang.org/x/crypto/AUTHORS
 create mode 100644 vendor/golang.org/x/crypto/CONTRIBUTING.md
 create mode 100644 vendor/golang.org/x/crypto/CONTRIBUTORS
 create mode 100644 vendor/golang.org/x/crypto/LICENSE
 create mode 100644 vendor/golang.org/x/crypto/PATENTS
 create mode 100644 vendor/golang.org/x/crypto/README
 create mode 100644 vendor/golang.org/x/crypto/acme/acme.go
 create mode 100644 vendor/golang.org/x/crypto/acme/acme_test.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/autocert.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/autocert_test.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/cache.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/cache_test.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/renewal.go
 create mode 100644 vendor/golang.org/x/crypto/acme/autocert/renewal_test.go
 create mode 100644 vendor/golang.org/x/crypto/acme/jws.go
 create mode 100644 vendor/golang.org/x/crypto/acme/jws_test.go
 create mode 100644 vendor/golang.org/x/crypto/acme/types.go
 create mode 100644 vendor/golang.org/x/crypto/bcrypt/base64.go
 create mode 100644 vendor/golang.org/x/crypto/bcrypt/bcrypt.go
 create mode 100644 vendor/golang.org/x/crypto/bcrypt/bcrypt_test.go
 create mode 100644 vendor/golang.org/x/crypto/blowfish/block.go
 create mode 100644 vendor/golang.org/x/crypto/blowfish/blowfish_test.go
 create mode 100644 vendor/golang.org/x/crypto/blowfish/cipher.go
 create mode 100644 vendor/golang.org/x/crypto/blowfish/const.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/bn256.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/bn256_test.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/constants.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/curve.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/example_test.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/gfp12.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/gfp2.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/gfp6.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/optate.go
 create mode 100644 vendor/golang.org/x/crypto/bn256/twist.go
 create mode 100644 vendor/golang.org/x/crypto/cast5/cast5.go
 create mode 100644 vendor/golang.org/x/crypto/cast5/cast5_test.go
 create mode 100644 vendor/golang.org/x/crypto/codereview.cfg
 create mode 100644 vendor/golang.org/x/crypto/curve25519/const_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/curve25519/cswap_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519.go
 create mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519_test.go
 create mode 100644 vendor/golang.org/x/crypto/curve25519/doc.go
 create mode 100644 vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go
 create mode 100644 vendor/golang.org/x/crypto/curve25519/mul_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/curve25519/square_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/ed25519/ed25519.go
 create mode 100644 vendor/golang.org/x/crypto/ed25519/ed25519_test.go
 create mode 100644 vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go
 create mode 100644 vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go
 create mode 100644 vendor/golang.org/x/crypto/ed25519/testdata/sign.input.gz
 create mode 100644 vendor/golang.org/x/crypto/hkdf/example_test.go
 create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf.go
 create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf_test.go
 create mode 100644 vendor/golang.org/x/crypto/md4/md4.go
 create mode 100644 vendor/golang.org/x/crypto/md4/md4_test.go
 create mode 100644 vendor/golang.org/x/crypto/md4/md4block.go
 create mode 100644 vendor/golang.org/x/crypto/nacl/box/box.go
 create mode 100644 vendor/golang.org/x/crypto/nacl/box/box_test.go
 create mode 100644 vendor/golang.org/x/crypto/nacl/secretbox/example_test.go
 create mode 100644 vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go
 create mode 100644 vendor/golang.org/x/crypto/nacl/secretbox/secretbox_test.go
 create mode 100644 vendor/golang.org/x/crypto/ocsp/ocsp.go
 create mode 100644 vendor/golang.org/x/crypto/ocsp/ocsp_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/armor.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/armor_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/encode.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/canonical_text.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/canonical_text_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/clearsign/clearsign.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/clearsign/clearsign_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/elgamal/elgamal_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/errors/errors.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/keys.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/keys_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/compressed.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/compressed_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/config.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/encrypted_key_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/literal.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/ocfb.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/ocfb_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/opaque.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/opaque_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/packet.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/packet_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/private_key.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/private_key_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_v3_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/reader.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_v3_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userattribute.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userattribute_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userid.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userid_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/read.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/read_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/s2k/s2k.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/s2k/s2k_test.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/write.go
 create mode 100644 vendor/golang.org/x/crypto/openpgp/write_test.go
 create mode 100644 vendor/golang.org/x/crypto/otr/libotr_test_helper.c
 create mode 100644 vendor/golang.org/x/crypto/otr/otr.go
 create mode 100644 vendor/golang.org/x/crypto/otr/otr_test.go
 create mode 100644 vendor/golang.org/x/crypto/otr/smp.go
 create mode 100644 vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go
 create mode 100644 vendor/golang.org/x/crypto/pbkdf2/pbkdf2_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/bmp-string.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/bmp-string_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/crypto.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/crypto_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/errors.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/mac.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/mac_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/pbkdf.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/pbkdf_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/pkcs12.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/pkcs12_test.go
 create mode 100644 vendor/golang.org/x/crypto/pkcs12/safebags.go
 create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305.go
 create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305_arm.s
 create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305_test.go
 create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_amd64.go
 create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_arm.go
 create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_ref.go
 create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160.go
 create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160_test.go
 create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160block.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa2020_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa208.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa20_ref.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa_test.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa20.go
 create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa20_test.go
 create mode 100644 vendor/golang.org/x/crypto/scrypt/scrypt.go
 create mode 100644 vendor/golang.org/x/crypto/scrypt/scrypt_test.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/doc.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/hashes.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.s
 create mode 100644 vendor/golang.org/x/crypto/sha3/register.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/sha3.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_test.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/shake.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate
 create mode 100644 vendor/golang.org/x/crypto/sha3/xor.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/xor_generic.go
 create mode 100644 vendor/golang.org/x/crypto/sha3/xor_unaligned.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/client.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/client_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/example_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/forward.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/server.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/server_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/agent/testdata_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/benchmark_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/buffer.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/buffer_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/certs.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/certs_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/channel.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/cipher.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/cipher_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/client.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/client_auth.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/client_auth_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/client_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/common.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/connection.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/doc.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/example_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/handshake.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/handshake_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/kex.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/kex_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/keys.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/keys_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/mac.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/mempipe_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/messages.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/messages_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/mux.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/mux_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/server.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/session.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/session_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/tcpip.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/tcpip_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_linux.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/cert_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/doc.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/session_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/tcpip_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/test_unix_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/test/testdata_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/testdata/doc.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/testdata/keys.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/testdata_test.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/transport.go
 create mode 100644 vendor/golang.org/x/crypto/ssh/transport_test.go
 create mode 100644 vendor/golang.org/x/crypto/tea/cipher.go
 create mode 100644 vendor/golang.org/x/crypto/tea/tea_test.go
 create mode 100644 vendor/golang.org/x/crypto/twofish/twofish.go
 create mode 100644 vendor/golang.org/x/crypto/twofish/twofish_test.go
 create mode 100644 vendor/golang.org/x/crypto/xtea/block.go
 create mode 100644 vendor/golang.org/x/crypto/xtea/cipher.go
 create mode 100644 vendor/golang.org/x/crypto/xtea/xtea_test.go
 create mode 100644 vendor/golang.org/x/crypto/xts/xts.go
 create mode 100644 vendor/golang.org/x/crypto/xts/xts_test.go
 create mode 100644 vendor/golang.org/x/oauth2/.travis.yml
 create mode 100644 vendor/golang.org/x/oauth2/AUTHORS
 create mode 100644 vendor/golang.org/x/oauth2/CONTRIBUTING.md
 create mode 100644 vendor/golang.org/x/oauth2/CONTRIBUTORS
 create mode 100644 vendor/golang.org/x/oauth2/LICENSE
 create mode 100644 vendor/golang.org/x/oauth2/README.md
 create mode 100644 vendor/golang.org/x/oauth2/bitbucket/bitbucket.go
 create mode 100644 vendor/golang.org/x/oauth2/client_appengine.go
 create mode 100644 vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go
 create mode 100644 vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go
 create mode 100644 vendor/golang.org/x/oauth2/example_test.go
 create mode 100644 vendor/golang.org/x/oauth2/facebook/facebook.go
 create mode 100644 vendor/golang.org/x/oauth2/fitbit/fitbit.go
 create mode 100644 vendor/golang.org/x/oauth2/github/github.go
 create mode 100644 vendor/golang.org/x/oauth2/google/appengine.go
 create mode 100644 vendor/golang.org/x/oauth2/google/appengine_hook.go
 create mode 100644 vendor/golang.org/x/oauth2/google/appenginevm_hook.go
 create mode 100644 vendor/golang.org/x/oauth2/google/default.go
 create mode 100644 vendor/golang.org/x/oauth2/google/example_test.go
 create mode 100644 vendor/golang.org/x/oauth2/google/google.go
 create mode 100644 vendor/golang.org/x/oauth2/google/google_test.go
 create mode 100644 vendor/golang.org/x/oauth2/google/jwt.go
 create mode 100644 vendor/golang.org/x/oauth2/google/jwt_test.go
 create mode 100644 vendor/golang.org/x/oauth2/google/sdk.go
 create mode 100644 vendor/golang.org/x/oauth2/google/sdk_test.go
 create mode 100644 vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials
 create mode 100644 vendor/golang.org/x/oauth2/google/testdata/gcloud/properties
 create mode 100644 vendor/golang.org/x/oauth2/heroku/heroku.go
 create mode 100644 vendor/golang.org/x/oauth2/hipchat/hipchat.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/oauth2.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/oauth2_test.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/token.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/token_test.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/transport.go
 create mode 100644 vendor/golang.org/x/oauth2/internal/transport_test.go
 create mode 100644 vendor/golang.org/x/oauth2/jws/jws.go
 create mode 100644 vendor/golang.org/x/oauth2/jws/jws_test.go
 create mode 100644 vendor/golang.org/x/oauth2/jwt/example_test.go
 create mode 100644 vendor/golang.org/x/oauth2/jwt/jwt.go
 create mode 100644 vendor/golang.org/x/oauth2/jwt/jwt_test.go
 create mode 100644 vendor/golang.org/x/oauth2/linkedin/linkedin.go
 create mode 100644 vendor/golang.org/x/oauth2/mediamath/mediamath.go
 create mode 100644 vendor/golang.org/x/oauth2/microsoft/microsoft.go
 create mode 100644 vendor/golang.org/x/oauth2/oauth2.go
 create mode 100644 vendor/golang.org/x/oauth2/oauth2_test.go
 create mode 100644 vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go
 create mode 100644 vendor/golang.org/x/oauth2/paypal/paypal.go
 create mode 100644 vendor/golang.org/x/oauth2/slack/slack.go
 create mode 100644 vendor/golang.org/x/oauth2/token.go
 create mode 100644 vendor/golang.org/x/oauth2/token_test.go
 create mode 100644 vendor/golang.org/x/oauth2/transport.go
 create mode 100644 vendor/golang.org/x/oauth2/transport_test.go
 create mode 100644 vendor/golang.org/x/oauth2/uber/uber.go
 create mode 100644 vendor/golang.org/x/oauth2/vk/vk.go
 create mode 100644 vendor/golang.org/x/sync/AUTHORS
 create mode 100644 vendor/golang.org/x/sync/CONTRIBUTING.md
 create mode 100644 vendor/golang.org/x/sync/CONTRIBUTORS
 create mode 100644 vendor/golang.org/x/sync/LICENSE
 create mode 100644 vendor/golang.org/x/sync/PATENTS
 create mode 100644 vendor/golang.org/x/sync/README
 create mode 100644 vendor/golang.org/x/sync/codereview.cfg
 create mode 100644 vendor/golang.org/x/sync/errgroup/errgroup.go
 create mode 100644 vendor/golang.org/x/sync/errgroup/errgroup_example_md5all_test.go
 create mode 100644 vendor/golang.org/x/sync/errgroup/errgroup_test.go
 create mode 100644 vendor/golang.org/x/sync/semaphore/semaphore.go
 create mode 100644 vendor/golang.org/x/sync/semaphore/semaphore_bench_test.go
 create mode 100644 vendor/golang.org/x/sync/semaphore/semaphore_test.go
 create mode 100644 vendor/golang.org/x/sync/singleflight/singleflight.go
 create mode 100644 vendor/golang.org/x/sync/singleflight/singleflight_test.go
 create mode 100644 vendor/golang.org/x/sync/syncmap/map.go
 create mode 100644 vendor/golang.org/x/sync/syncmap/map_bench_test.go
 create mode 100644 vendor/golang.org/x/sync/syncmap/map_reference_test.go
 create mode 100644 vendor/golang.org/x/sync/syncmap/map_test.go
 create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
 create mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go
 create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
 create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go
 create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
 create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
 create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
 create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
 create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
 create mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt
 create mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt
 create mode 100644 vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt
 create mode 100644 vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt
 create mode 100644 vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt
 create mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go
 create mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
 create mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go
 create mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/tables.go
 create mode 100644 vendor/golang.org/x/text/encoding/unicode/override.go
 create mode 100644 vendor/golang.org/x/text/encoding/unicode/unicode.go
 create mode 100644 vendor/golang.org/x/text/encoding/unicode/unicode_test.go
 create mode 100644 vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go
 create mode 100644 vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go
 create mode 100644 vendor/golang.org/x/text/gen.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/colltab.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/colltab_test.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/contract.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/contract_test.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/iter.go
 create mode 100644 vendor/golang.org/x/text/internal/colltab/iter_test.go
 create mode 100644 vendor/golang.org/x/text/internal/format/format.go
 create mode 100644 vendor/golang.org/x/text/internal/format/plural/plural.go
 create mode 100644 vendor/golang.org/x/text/internal/gen.go
 create mode 100644 vendor/golang.org/x/text/internal/gen/code.go
 create mode 100644 vendor/golang.org/x/text/internal/gen/gen.go
 create mode 100644 vendor/golang.org/x/text/internal/gen_test.go
 create mode 100644 vendor/golang.org/x/text/internal/internal.go
 create mode 100644 vendor/golang.org/x/text/internal/internal_test.go
 create mode 100644 vendor/golang.org/x/text/internal/match.go
 create mode 100644 vendor/golang.org/x/text/internal/match_test.go
 create mode 100644 vendor/golang.org/x/text/internal/number/common.go
 create mode 100644 vendor/golang.org/x/text/internal/number/data_test.go
 create mode 100644 vendor/golang.org/x/text/internal/number/decimal.go
 create mode 100644 vendor/golang.org/x/text/internal/number/extfloat.go
 create mode 100644 vendor/golang.org/x/text/internal/number/ftoa.go
 create mode 100644 vendor/golang.org/x/text/internal/number/gen.go
 create mode 100644 vendor/golang.org/x/text/internal/number/gen_common.go
 create mode 100644 vendor/golang.org/x/text/internal/number/gen_plural.go
 create mode 100644 vendor/golang.org/x/text/internal/number/itoa.go
 create mode 100644 vendor/golang.org/x/text/internal/number/number.go
 create mode 100644 vendor/golang.org/x/text/internal/number/number_test.go
 create mode 100644 vendor/golang.org/x/text/internal/number/pattern.go
 create mode 100644 vendor/golang.org/x/text/internal/number/pattern_test.go
 create mode 100644 vendor/golang.org/x/text/internal/number/plural.go
 create mode 100644 vendor/golang.org/x/text/internal/number/plural_test.go
 create mode 100644 vendor/golang.org/x/text/internal/number/tables.go
 create mode 100644 vendor/golang.org/x/text/internal/number/tables_test.go
 create mode 100644 vendor/golang.org/x/text/internal/stringset/set.go
 create mode 100644 vendor/golang.org/x/text/internal/stringset/set_test.go
 create mode 100644 vendor/golang.org/x/text/internal/tables.go
 create mode 100644 vendor/golang.org/x/text/internal/tag/tag.go
 create mode 100644 vendor/golang.org/x/text/internal/tag/tag_test.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/codesize.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/flag.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/gc.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/gccgo.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/go1_6.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/go1_7.go
 create mode 100644 vendor/golang.org/x/text/internal/testtext/text.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/compact.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/data_test.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/example_compact_test.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/example_test.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/gen_test.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/print.go
 create mode 100644 vendor/golang.org/x/text/internal/triegen/triegen.go
 create mode 100644 vendor/golang.org/x/text/internal/ucd/example_test.go
 create mode 100644 vendor/golang.org/x/text/internal/ucd/ucd.go
 create mode 100644 vendor/golang.org/x/text/internal/ucd/ucd_test.go
 create mode 100644 vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
 create mode 100644 vendor/golang.org/x/text/language/Makefile
 create mode 100644 vendor/golang.org/x/text/language/common.go
 create mode 100644 vendor/golang.org/x/text/language/coverage.go
 create mode 100644 vendor/golang.org/x/text/language/coverage_test.go
 create mode 100644 vendor/golang.org/x/text/language/data_test.go
 create mode 100644 vendor/golang.org/x/text/language/display/dict.go
 create mode 100644 vendor/golang.org/x/text/language/display/dict_test.go
 create mode 100644 vendor/golang.org/x/text/language/display/display.go
 create mode 100644 vendor/golang.org/x/text/language/display/display_test.go
 create mode 100644 vendor/golang.org/x/text/language/display/examples_test.go
 create mode 100644 vendor/golang.org/x/text/language/display/lookup.go
 create mode 100644 vendor/golang.org/x/text/language/display/maketables.go
 create mode 100644 vendor/golang.org/x/text/language/display/tables.go
 create mode 100644 vendor/golang.org/x/text/language/examples_test.go
 create mode 100644 vendor/golang.org/x/text/language/gen_common.go
 create mode 100644 vendor/golang.org/x/text/language/gen_index.go
 create mode 100644 vendor/golang.org/x/text/language/go1_1.go
 create mode 100644 vendor/golang.org/x/text/language/go1_2.go
 create mode 100644 vendor/golang.org/x/text/language/httpexample_test.go
 create mode 100644 vendor/golang.org/x/text/language/index.go
 create mode 100644 vendor/golang.org/x/text/language/language.go
 create mode 100644 vendor/golang.org/x/text/language/language_test.go
 create mode 100644 vendor/golang.org/x/text/language/lookup.go
 create mode 100644 vendor/golang.org/x/text/language/lookup_test.go
 create mode 100644 vendor/golang.org/x/text/language/maketables.go
 create mode 100644 vendor/golang.org/x/text/language/match.go
 create mode 100644 vendor/golang.org/x/text/language/match_test.go
 create mode 100644 vendor/golang.org/x/text/language/parse.go
 create mode 100644 vendor/golang.org/x/text/language/parse_test.go
 create mode 100644 vendor/golang.org/x/text/language/tables.go
 create mode 100644 vendor/golang.org/x/text/language/tags.go
 create mode 100644 vendor/golang.org/x/text/message/catalog.go
 create mode 100644 vendor/golang.org/x/text/message/catalog_test.go
 create mode 100644 vendor/golang.org/x/text/message/message.go
 create mode 100644 vendor/golang.org/x/text/message/message_test.go
 create mode 100644 vendor/golang.org/x/text/runes/cond.go
 create mode 100644 vendor/golang.org/x/text/runes/cond_test.go
 create mode 100644 vendor/golang.org/x/text/runes/example_test.go
 create mode 100644 vendor/golang.org/x/text/runes/runes.go
 create mode 100644 vendor/golang.org/x/text/runes/runes_test.go
 create mode 100644 vendor/golang.org/x/text/search/index.go
 create mode 100644 vendor/golang.org/x/text/search/pattern.go
 create mode 100644 vendor/golang.org/x/text/search/pattern_test.go
 create mode 100644 vendor/golang.org/x/text/search/search.go
 create mode 100644 vendor/golang.org/x/text/search/tables.go
 create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule.go
 create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule_test.go
 create mode 100644 vendor/golang.org/x/text/secure/bidirule/go1_6_test.go
 create mode 100644 vendor/golang.org/x/text/secure/bidirule/go1_7_test.go
 create mode 100644 vendor/golang.org/x/text/secure/doc.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/benchmark_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/class.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/class_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/context.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/doc.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/enforce_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/gen.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/gen_trieval.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/go1_6_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/go1_7_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/nickname.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/options.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/profile.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/profiles.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/tables.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/tables_test.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/transformer.go
 create mode 100644 vendor/golang.org/x/text/secure/precis/trieval.go
 create mode 100644 vendor/golang.org/x/text/transform/examples_test.go
 create mode 100644 vendor/golang.org/x/text/transform/transform.go
 create mode 100644 vendor/golang.org/x/text/transform/transform_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/bidi.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/bracket.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/core.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/core_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/gen.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/gen_ranges.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/gen_trieval.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/prop.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/ranges_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/bidi/trieval.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/base.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/cldr.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/cldr_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/collate.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/collate_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/data_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/decode.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/examples_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/makexml.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/resolve.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/resolve_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/slice.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/slice_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/cldr/xml.go
 create mode 100644 vendor/golang.org/x/text/unicode/doc.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/composition.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/composition_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/example_iter_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/example_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/forminfo.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/forminfo_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/input.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/iter.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/iter_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/maketables.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/norm_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/normalize.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/normalize_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/readwriter.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/readwriter_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/tables.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/transform.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/transform_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/trie.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/triegen.go
 create mode 100644 vendor/golang.org/x/text/unicode/norm/ucd_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/gen.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/merge.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/merge_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/rangetable.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/rangetable_test.go
 create mode 100644 vendor/golang.org/x/text/unicode/rangetable/tables.go
 create mode 100644 vendor/golang.org/x/text/width/common_test.go
 create mode 100644 vendor/golang.org/x/text/width/example_test.go
 create mode 100644 vendor/golang.org/x/text/width/gen.go
 create mode 100644 vendor/golang.org/x/text/width/gen_common.go
 create mode 100644 vendor/golang.org/x/text/width/gen_trieval.go
 create mode 100644 vendor/golang.org/x/text/width/kind_string.go
 create mode 100644 vendor/golang.org/x/text/width/runes_test.go
 create mode 100644 vendor/golang.org/x/text/width/tables.go
 create mode 100644 vendor/golang.org/x/text/width/tables_test.go
 create mode 100644 vendor/golang.org/x/text/width/transform.go
 create mode 100644 vendor/golang.org/x/text/width/transform_test.go
 create mode 100644 vendor/golang.org/x/text/width/trieval.go
 create mode 100644 vendor/golang.org/x/text/width/width.go
 create mode 100644 vendor/gopkg.in/inf.v0/LICENSE
 create mode 100644 vendor/gopkg.in/inf.v0/benchmark_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/dec.go
 create mode 100644 vendor/gopkg.in/inf.v0/dec_go1_2_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/dec_internal_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/dec_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/example_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/rounder.go
 create mode 100644 vendor/gopkg.in/inf.v0/rounder_example_test.go
 create mode 100644 vendor/gopkg.in/inf.v0/rounder_test.go
 create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE
 create mode 100644 vendor/gopkg.in/yaml.v2/LICENSE.libyaml
 create mode 100644 vendor/gopkg.in/yaml.v2/README.md
 create mode 100644 vendor/gopkg.in/yaml.v2/apic.go
 create mode 100644 vendor/gopkg.in/yaml.v2/decode.go
 create mode 100644 vendor/gopkg.in/yaml.v2/decode_test.go
 create mode 100644 vendor/gopkg.in/yaml.v2/emitterc.go
 create mode 100644 vendor/gopkg.in/yaml.v2/encode.go
 create mode 100644 vendor/gopkg.in/yaml.v2/encode_test.go
 create mode 100644 vendor/gopkg.in/yaml.v2/parserc.go
 create mode 100644 vendor/gopkg.in/yaml.v2/readerc.go
 create mode 100644 vendor/gopkg.in/yaml.v2/resolve.go
 create mode 100644 vendor/gopkg.in/yaml.v2/scannerc.go
 create mode 100644 vendor/gopkg.in/yaml.v2/sorter.go
 create mode 100644 vendor/gopkg.in/yaml.v2/suite_test.go
 create mode 100644 vendor/gopkg.in/yaml.v2/writerc.go
 create mode 100644 vendor/gopkg.in/yaml.v2/yaml.go
 create mode 100644 vendor/gopkg.in/yaml.v2/yamlh.go
 create mode 100644 vendor/gopkg.in/yaml.v2/yamlprivateh.go

diff --git a/vendor/github.com/Sirupsen/logrus/.travis.yml b/vendor/github.com/Sirupsen/logrus/.travis.yml
index ceace13b..924f3c46 100644
--- a/vendor/github.com/Sirupsen/logrus/.travis.yml
+++ b/vendor/github.com/Sirupsen/logrus/.travis.yml
@@ -10,3 +10,4 @@ install:
   - go get github.com/stretchr/testify/assert
 script:
   - go test -race -v .
+  - cd hooks/null && go test -race -v .
diff --git a/vendor/github.com/coreos/go-semver/.travis.yml b/vendor/github.com/coreos/go-semver/.travis.yml
new file mode 100644
index 00000000..05f548c9
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+sudo: false
+go:
+  - 1.4
+  - 1.5
+  - 1.6
+  - tip
+script: cd semver && go test
diff --git a/vendor/github.com/coreos/go-semver/LICENSE b/vendor/github.com/coreos/go-semver/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/vendor/github.com/coreos/go-semver/README.md b/vendor/github.com/coreos/go-semver/README.md
new file mode 100644
index 00000000..5bc9263c
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/README.md
@@ -0,0 +1,28 @@
+# go-semver - Semantic Versioning Library
+
+[![Build Status](https://travis-ci.org/coreos/go-semver.svg?branch=master)](https://travis-ci.org/coreos/go-semver)
+[![GoDoc](https://godoc.org/github.com/coreos/go-semver/semver?status.svg)](https://godoc.org/github.com/coreos/go-semver/semver)
+
+go-semver is a [semantic versioning][semver] library for Go. It lets you parse
+and compare two semantic version strings.
+
+[semver]: http://semver.org/
+
+## Usage
+
+```go
+vA := semver.New("1.2.3")
+vB := semver.New("3.2.1")
+
+fmt.Printf("%s < %s == %t\n", vA, vB, vA.LessThan(*vB))
+```
+
+## Example Application
+
+```
+$ go run example.go 1.2.3 3.2.1
+1.2.3 < 3.2.1 == true
+
+$ go run example.go 5.2.3 3.2.1
+5.2.3 < 3.2.1 == false
+```
diff --git a/vendor/github.com/coreos/go-semver/example.go b/vendor/github.com/coreos/go-semver/example.go
new file mode 100644
index 00000000..fd2ee5af
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/example.go
@@ -0,0 +1,20 @@
+package main
+
+import (
+	"fmt"
+	"github.com/coreos/go-semver/semver"
+	"os"
+)
+
+func main() {
+	vA, err := semver.NewVersion(os.Args[1])
+	if err != nil {
+		fmt.Println(err.Error())
+	}
+	vB, err := semver.NewVersion(os.Args[2])
+	if err != nil {
+		fmt.Println(err.Error())
+	}
+
+	fmt.Printf("%s < %s == %t\n", vA, vB, vA.LessThan(*vB))
+}
diff --git a/vendor/github.com/coreos/go-semver/semver/semver.go b/vendor/github.com/coreos/go-semver/semver/semver.go
new file mode 100644
index 00000000..110fc23e
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/semver/semver.go
@@ -0,0 +1,268 @@
+// Copyright 2013-2015 CoreOS, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Semantic Versions http://semver.org
+package semver
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"strconv"
+	"strings"
+)
+
+type Version struct {
+	Major      int64
+	Minor      int64
+	Patch      int64
+	PreRelease PreRelease
+	Metadata   string
+}
+
+type PreRelease string
+
+func splitOff(input *string, delim string) (val string) {
+	parts := strings.SplitN(*input, delim, 2)
+
+	if len(parts) == 2 {
+		*input = parts[0]
+		val = parts[1]
+	}
+
+	return val
+}
+
+func New(version string) *Version {
+	return Must(NewVersion(version))
+}
+
+func NewVersion(version string) (*Version, error) {
+	v := Version{}
+
+	if err := v.Set(version); err != nil {
+		return nil, err
+	}
+
+	return &v, nil
+}
+
+// Must is a helper for wrapping NewVersion and will panic if err is not nil.
+func Must(v *Version, err error) *Version {
+	if err != nil {
+		panic(err)
+	}
+	return v
+}
+
+// Set parses and updates v from the given version string. Implements flag.Value
+func (v *Version) Set(version string) error {
+	metadata := splitOff(&version, "+")
+	preRelease := PreRelease(splitOff(&version, "-"))
+	dotParts := strings.SplitN(version, ".", 3)
+
+	if len(dotParts) != 3 {
+		return fmt.Errorf("%s is not in dotted-tri format", version)
+	}
+
+	parsed := make([]int64, 3, 3)
+
+	for i, v := range dotParts[:3] {
+		val, err := strconv.ParseInt(v, 10, 64)
+		parsed[i] = val
+		if err != nil {
+			return err
+		}
+	}
+
+	v.Metadata = metadata
+	v.PreRelease = preRelease
+	v.Major = parsed[0]
+	v.Minor = parsed[1]
+	v.Patch = parsed[2]
+	return nil
+}
+
+func (v Version) String() string {
+	var buffer bytes.Buffer
+
+	fmt.Fprintf(&buffer, "%d.%d.%d", v.Major, v.Minor, v.Patch)
+
+	if v.PreRelease != "" {
+		fmt.Fprintf(&buffer, "-%s", v.PreRelease)
+	}
+
+	if v.Metadata != "" {
+		fmt.Fprintf(&buffer, "+%s", v.Metadata)
+	}
+
+	return buffer.String()
+}
+
+func (v *Version) UnmarshalYAML(unmarshal func(interface{}) error) error {
+	var data string
+	if err := unmarshal(&data); err != nil {
+		return err
+	}
+	return v.Set(data)
+}
+
+func (v Version) MarshalJSON() ([]byte, error) {
+	return []byte(`"` + v.String() + `"`), nil
+}
+
+func (v *Version) UnmarshalJSON(data []byte) error {
+	l := len(data)
+	if l == 0 || string(data) == `""` {
+		return nil
+	}
+	if l < 2 || data[0] != '"' || data[l-1] != '"' {
+		return errors.New("invalid semver string")
+	}
+	return v.Set(string(data[1 : l-1]))
+}
+
+// Compare tests if v is less than, equal to, or greater than versionB,
+// returning -1, 0, or +1 respectively.
+func (v Version) Compare(versionB Version) int {
+	if cmp := recursiveCompare(v.Slice(), versionB.Slice()); cmp != 0 {
+		return cmp
+	}
+	return preReleaseCompare(v, versionB)
+}
+
+// Equal tests if v is equal to versionB.
+func (v Version) Equal(versionB Version) bool {
+	return v.Compare(versionB) == 0
+}
+
+// LessThan tests if v is less than versionB.
+func (v Version) LessThan(versionB Version) bool {
+	return v.Compare(versionB) < 0
+}
+
+// Slice converts the comparable parts of the semver into a slice of integers.
+func (v Version) Slice() []int64 {
+	return []int64{v.Major, v.Minor, v.Patch}
+}
+
+func (p PreRelease) Slice() []string {
+	preRelease := string(p)
+	return strings.Split(preRelease, ".")
+}
+
+func preReleaseCompare(versionA Version, versionB Version) int {
+	a := versionA.PreRelease
+	b := versionB.PreRelease
+
+	/* Handle the case where if two versions are otherwise equal it is the
+	 * one without a PreRelease that is greater */
+	if len(a) == 0 && (len(b) > 0) {
+		return 1
+	} else if len(b) == 0 && (len(a) > 0) {
+		return -1
+	}
+
+	// If there is a prerelease, check and compare each part.
+	return recursivePreReleaseCompare(a.Slice(), b.Slice())
+}
+
+func recursiveCompare(versionA []int64, versionB []int64) int {
+	if len(versionA) == 0 {
+		return 0
+	}
+
+	a := versionA[0]
+	b := versionB[0]
+
+	if a > b {
+		return 1
+	} else if a < b {
+		return -1
+	}
+
+	return recursiveCompare(versionA[1:], versionB[1:])
+}
+
+func recursivePreReleaseCompare(versionA []string, versionB []string) int {
+	// A larger set of pre-release fields has a higher precedence than a smaller set,
+	// if all of the preceding identifiers are equal.
+	if len(versionA) == 0 {
+		if len(versionB) > 0 {
+			return -1
+		}
+		return 0
+	} else if len(versionB) == 0 {
+		// We're longer than versionB so return 1.
+		return 1
+	}
+
+	a := versionA[0]
+	b := versionB[0]
+
+	aInt := false
+	bInt := false
+
+	aI, err := strconv.Atoi(versionA[0])
+	if err == nil {
+		aInt = true
+	}
+
+	bI, err := strconv.Atoi(versionB[0])
+	if err == nil {
+		bInt = true
+	}
+
+	// Handle Integer Comparison
+	if aInt && bInt {
+		if aI > bI {
+			return 1
+		} else if aI < bI {
+			return -1
+		}
+	}
+
+	// Handle String Comparison
+	if a > b {
+		return 1
+	} else if a < b {
+		return -1
+	}
+
+	return recursivePreReleaseCompare(versionA[1:], versionB[1:])
+}
+
+// BumpMajor increments the Major field by 1 and resets all other fields to their default values
+func (v *Version) BumpMajor() {
+	v.Major += 1
+	v.Minor = 0
+	v.Patch = 0
+	v.PreRelease = PreRelease("")
+	v.Metadata = ""
+}
+
+// BumpMinor increments the Minor field by 1 and resets all other fields to their default values
+func (v *Version) BumpMinor() {
+	v.Minor += 1
+	v.Patch = 0
+	v.PreRelease = PreRelease("")
+	v.Metadata = ""
+}
+
+// BumpPatch increments the Patch field by 1 and resets all other fields to their default values
+func (v *Version) BumpPatch() {
+	v.Patch += 1
+	v.PreRelease = PreRelease("")
+	v.Metadata = ""
+}
diff --git a/vendor/github.com/coreos/go-semver/semver/semver_test.go b/vendor/github.com/coreos/go-semver/semver/semver_test.go
new file mode 100644
index 00000000..876c68e0
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/semver/semver_test.go
@@ -0,0 +1,370 @@
+// Copyright 2013-2015 CoreOS, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package semver
+
+import (
+	"bytes"
+	"encoding/json"
+	"errors"
+	"flag"
+	"fmt"
+	"math/rand"
+	"reflect"
+	"testing"
+	"time"
+
+	"gopkg.in/yaml.v2"
+)
+
+type fixture struct {
+	GreaterVersion string
+	LesserVersion  string
+}
+
+var fixtures = []fixture{
+	fixture{"0.0.0", "0.0.0-foo"},
+	fixture{"0.0.1", "0.0.0"},
+	fixture{"1.0.0", "0.9.9"},
+	fixture{"0.10.0", "0.9.0"},
+	fixture{"0.99.0", "0.10.0"},
+	fixture{"2.0.0", "1.2.3"},
+	fixture{"0.0.0", "0.0.0-foo"},
+	fixture{"0.0.1", "0.0.0"},
+	fixture{"1.0.0", "0.9.9"},
+	fixture{"0.10.0", "0.9.0"},
+	fixture{"0.99.0", "0.10.0"},
+	fixture{"2.0.0", "1.2.3"},
+	fixture{"0.0.0", "0.0.0-foo"},
+	fixture{"0.0.1", "0.0.0"},
+	fixture{"1.0.0", "0.9.9"},
+	fixture{"0.10.0", "0.9.0"},
+	fixture{"0.99.0", "0.10.0"},
+	fixture{"2.0.0", "1.2.3"},
+	fixture{"1.2.3", "1.2.3-asdf"},
+	fixture{"1.2.3", "1.2.3-4"},
+	fixture{"1.2.3", "1.2.3-4-foo"},
+	fixture{"1.2.3-5-foo", "1.2.3-5"},
+	fixture{"1.2.3-5", "1.2.3-4"},
+	fixture{"1.2.3-5-foo", "1.2.3-5-Foo"},
+	fixture{"3.0.0", "2.7.2+asdf"},
+	fixture{"3.0.0+foobar", "2.7.2"},
+	fixture{"1.2.3-a.10", "1.2.3-a.5"},
+	fixture{"1.2.3-a.b", "1.2.3-a.5"},
+	fixture{"1.2.3-a.b", "1.2.3-a"},
+	fixture{"1.2.3-a.b.c.10.d.5", "1.2.3-a.b.c.5.d.100"},
+	fixture{"1.0.0", "1.0.0-rc.1"},
+	fixture{"1.0.0-rc.2", "1.0.0-rc.1"},
+	fixture{"1.0.0-rc.1", "1.0.0-beta.11"},
+	fixture{"1.0.0-beta.11", "1.0.0-beta.2"},
+	fixture{"1.0.0-beta.2", "1.0.0-beta"},
+	fixture{"1.0.0-beta", "1.0.0-alpha.beta"},
+	fixture{"1.0.0-alpha.beta", "1.0.0-alpha.1"},
+	fixture{"1.0.0-alpha.1", "1.0.0-alpha"},
+}
+
+func TestCompare(t *testing.T) {
+	for _, v := range fixtures {
+		gt, err := NewVersion(v.GreaterVersion)
+		if err != nil {
+			t.Error(err)
+		}
+
+		lt, err := NewVersion(v.LesserVersion)
+		if err != nil {
+			t.Error(err)
+		}
+
+		if gt.LessThan(*lt) {
+			t.Errorf("%s should not be less than %s", gt, lt)
+		}
+		if gt.Equal(*lt) {
+			t.Errorf("%s should not be equal to %s", gt, lt)
+		}
+		if gt.Compare(*lt) <= 0 {
+			t.Errorf("%s should be greater than %s", gt, lt)
+		}
+		if !lt.LessThan(*gt) {
+			t.Errorf("%s should be less than %s", lt, gt)
+		}
+		if !lt.Equal(*lt) {
+			t.Errorf("%s should be equal to %s", lt, lt)
+		}
+		if lt.Compare(*gt) > 0 {
+			t.Errorf("%s should not be greater than %s", lt, gt)
+		}
+	}
+}
+
+func testString(t *testing.T, orig string, version *Version) {
+	if orig != version.String() {
+		t.Errorf("%s != %s", orig, version)
+	}
+}
+
+func TestString(t *testing.T) {
+	for _, v := range fixtures {
+		gt, err := NewVersion(v.GreaterVersion)
+		if err != nil {
+			t.Error(err)
+		}
+		testString(t, v.GreaterVersion, gt)
+
+		lt, err := NewVersion(v.LesserVersion)
+		if err != nil {
+			t.Error(err)
+		}
+		testString(t, v.LesserVersion, lt)
+	}
+}
+
+func shuffleStringSlice(src []string) []string {
+	dest := make([]string, len(src))
+	rand.Seed(time.Now().Unix())
+	perm := rand.Perm(len(src))
+	for i, v := range perm {
+		dest[v] = src[i]
+	}
+	return dest
+}
+
+func TestSort(t *testing.T) {
+	sortedVersions := []string{"1.0.0", "1.0.2", "1.2.0", "3.1.1"}
+	unsortedVersions := shuffleStringSlice(sortedVersions)
+
+	semvers := []*Version{}
+	for _, v := range unsortedVersions {
+		sv, err := NewVersion(v)
+		if err != nil {
+			t.Fatal(err)
+		}
+		semvers = append(semvers, sv)
+	}
+
+	Sort(semvers)
+
+	for idx, sv := range semvers {
+		if sv.String() != sortedVersions[idx] {
+			t.Fatalf("incorrect sort at index %v", idx)
+		}
+	}
+}
+
+func TestBumpMajor(t *testing.T) {
+	version, _ := NewVersion("1.0.0")
+	version.BumpMajor()
+	if version.Major != 2 {
+		t.Fatalf("bumping major on 1.0.0 resulted in %v", version)
+	}
+
+	version, _ = NewVersion("1.5.2")
+	version.BumpMajor()
+	if version.Minor != 0 && version.Patch != 0 {
+		t.Fatalf("bumping major on 1.5.2 resulted in %v", version)
+	}
+
+	version, _ = NewVersion("1.0.0+build.1-alpha.1")
+	version.BumpMajor()
+	if version.PreRelease != "" && version.PreRelease != "" {
+		t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version)
+	}
+}
+
+func TestBumpMinor(t *testing.T) {
+	version, _ := NewVersion("1.0.0")
+	version.BumpMinor()
+
+	if version.Major != 1 {
+		t.Fatalf("bumping minor on 1.0.0 resulted in %v", version)
+	}
+
+	if version.Minor != 1 {
+		t.Fatalf("bumping major on 1.0.0 resulted in %v", version)
+	}
+
+	version, _ = NewVersion("1.0.0+build.1-alpha.1")
+	version.BumpMinor()
+	if version.PreRelease != "" && version.PreRelease != "" {
+		t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version)
+	}
+}
+
+func TestBumpPatch(t *testing.T) {
+	version, _ := NewVersion("1.0.0")
+	version.BumpPatch()
+
+	if version.Major != 1 {
+		t.Fatalf("bumping minor on 1.0.0 resulted in %v", version)
+	}
+
+	if version.Minor != 0 {
+		t.Fatalf("bumping major on 1.0.0 resulted in %v", version)
+	}
+
+	if version.Patch != 1 {
+		t.Fatalf("bumping major on 1.0.0 resulted in %v", version)
+	}
+
+	version, _ = NewVersion("1.0.0+build.1-alpha.1")
+	version.BumpPatch()
+	if version.PreRelease != "" && version.PreRelease != "" {
+		t.Fatalf("bumping major on 1.0.0+build.1-alpha.1 resulted in %v", version)
+	}
+}
+
+func TestMust(t *testing.T) {
+	tests := []struct {
+		versionStr string
+
+		version *Version
+		recov   interface{}
+	}{
+		{
+			versionStr: "1.0.0",
+			version:    &Version{Major: 1},
+		},
+		{
+			versionStr: "version number",
+			recov:      errors.New("version number is not in dotted-tri format"),
+		},
+	}
+
+	for _, tt := range tests {
+		func() {
+			defer func() {
+				recov := recover()
+				if !reflect.DeepEqual(tt.recov, recov) {
+					t.Fatalf("incorrect panic for %q: want %v, got %v", tt.versionStr, tt.recov, recov)
+				}
+			}()
+
+			version := Must(NewVersion(tt.versionStr))
+			if !reflect.DeepEqual(tt.version, version) {
+				t.Fatalf("incorrect version for %q: want %+v, got %+v", tt.versionStr, tt.version, version)
+			}
+		}()
+	}
+}
+
+type fixtureJSON struct {
+	GreaterVersion *Version
+	LesserVersion  *Version
+}
+
+func TestJSON(t *testing.T) {
+	fj := make([]fixtureJSON, len(fixtures))
+	for i, v := range fixtures {
+		var err error
+		fj[i].GreaterVersion, err = NewVersion(v.GreaterVersion)
+		if err != nil {
+			t.Fatal(err)
+		}
+		fj[i].LesserVersion, err = NewVersion(v.LesserVersion)
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+
+	fromStrings, err := json.Marshal(fixtures)
+	if err != nil {
+		t.Fatal(err)
+	}
+	fromVersions, err := json.Marshal(fj)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if !bytes.Equal(fromStrings, fromVersions) {
+		t.Errorf("Expected:   %s", fromStrings)
+		t.Errorf("Unexpected: %s", fromVersions)
+	}
+
+	fromJson := make([]fixtureJSON, 0, len(fj))
+	err = json.Unmarshal(fromStrings, &fromJson)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if !reflect.DeepEqual(fromJson, fj) {
+		t.Error("Expected:   ", fj)
+		t.Error("Unexpected: ", fromJson)
+	}
+}
+
+func TestYAML(t *testing.T) {
+	document, err := yaml.Marshal(fixtures)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	expected := make([]fixtureJSON, len(fixtures))
+	for i, v := range fixtures {
+		var err error
+		expected[i].GreaterVersion, err = NewVersion(v.GreaterVersion)
+		if err != nil {
+			t.Fatal(err)
+		}
+		expected[i].LesserVersion, err = NewVersion(v.LesserVersion)
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+
+	fromYAML := make([]fixtureJSON, 0, len(fixtures))
+	err = yaml.Unmarshal(document, &fromYAML)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if !reflect.DeepEqual(fromYAML, expected) {
+		t.Error("Expected:   ", expected)
+		t.Error("Unexpected: ", fromYAML)
+	}
+}
+
+func TestBadInput(t *testing.T) {
+	bad := []string{
+		"1.2",
+		"1.2.3x",
+		"0x1.3.4",
+		"-1.2.3",
+		"1.2.3.4",
+	}
+	for _, b := range bad {
+		if _, err := NewVersion(b); err == nil {
+			t.Error("Improperly accepted value: ", b)
+		}
+	}
+}
+
+func TestFlag(t *testing.T) {
+	v := Version{}
+	f := flag.NewFlagSet("version", flag.ContinueOnError)
+	f.Var(&v, "version", "set version")
+
+	if err := f.Set("version", "1.2.3"); err != nil {
+		t.Fatal(err)
+	}
+
+	if v.String() != "1.2.3" {
+		t.Errorf("Set wrong value %q", v)
+	}
+}
+
+func ExampleVersion_LessThan() {
+	vA := New("1.2.3")
+	vB := New("3.2.1")
+
+	fmt.Printf("%s < %s == %t\n", vA, vB, vA.LessThan(*vB))
+	// Output:
+	// 1.2.3 < 3.2.1 == true
+}
diff --git a/vendor/github.com/coreos/go-semver/semver/sort.go b/vendor/github.com/coreos/go-semver/semver/sort.go
new file mode 100644
index 00000000..e256b41a
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/semver/sort.go
@@ -0,0 +1,38 @@
+// Copyright 2013-2015 CoreOS, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package semver
+
+import (
+	"sort"
+)
+
+type Versions []*Version
+
+func (s Versions) Len() int {
+	return len(s)
+}
+
+func (s Versions) Swap(i, j int) {
+	s[i], s[j] = s[j], s[i]
+}
+
+func (s Versions) Less(i, j int) bool {
+	return s[i].LessThan(*s[j])
+}
+
+// Sort sorts the given slice of Version
+func Sort(versions []*Version) {
+	sort.Sort(Versions(versions))
+}
diff --git a/vendor/github.com/gogo/protobuf/.gitignore b/vendor/github.com/gogo/protobuf/.gitignore
index ea050e9b..76009479 100644
--- a/vendor/github.com/gogo/protobuf/.gitignore
+++ b/vendor/github.com/gogo/protobuf/.gitignore
@@ -1 +1,3 @@
 ._*
+*.js
+*.js.map
diff --git a/vendor/github.com/gogo/protobuf/.travis.yml b/vendor/github.com/gogo/protobuf/.travis.yml
index 5cebf109..5ac9a939 100644
--- a/vendor/github.com/gogo/protobuf/.travis.yml
+++ b/vendor/github.com/gogo/protobuf/.travis.yml
@@ -1,7 +1,7 @@
 env:
-  - PROTOBUF_VERSION=2.5.0
   - PROTOBUF_VERSION=2.6.1
-  - PROTOBUF_VERSION=3.0.0-beta-2
+  - PROTOBUF_VERSION=3.0.2
+  - PROTOBUF_VERSION=3.2.0
 
 before_install:
   - ./install-protobuf.sh
@@ -10,12 +10,15 @@ before_install:
 script:
   - PATH=/home/travis/bin:$PATH make buildserverall
   - echo $TRAVIS_GO_VERSION
-  - if [ "$TRAVIS_GO_VERSION" == 1.6 ] && [[ "$PROTOBUF_VERSION" == 3.0.0* ]]; then ! git status --porcelain | read || (git status; git diff; exit 1); fi
+  - if [ "$TRAVIS_GO_VERSION" == 1.8 ] && [[ "$PROTOBUF_VERSION" == 3.2.0 ]]; then ! git status --porcelain | read || (git status; git diff; exit 1); fi
 
 language: go
 
 go:
-  - 1.3.3
-  - 1.4.2
-  - 1.5.3
-  - 1.6
+  - 1.6.3
+  - 1.7.1
+  - 1.8
+
+matrix:
+  allow_failures:
+    - go: 1.6.3
diff --git a/vendor/github.com/gogo/protobuf/AUTHORS b/vendor/github.com/gogo/protobuf/AUTHORS
new file mode 100644
index 00000000..2eaf4d53
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/AUTHORS
@@ -0,0 +1,14 @@
+# This is the official list of GoGo authors for copyright purposes.
+# This file is distinct from the CONTRIBUTORS file, which
+# lists people.  For example, employees are listed in CONTRIBUTORS,
+# but not in AUTHORS, because the employer holds the copyright.
+
+# Names should be added to this file as one of
+#     Organization's name
+#     Individual's name 
+#     Individual's name   
+
+# Please keep the list sorted.
+
+Vastech SA (PTY) LTD
+Walter Schulze 
diff --git a/vendor/github.com/gogo/protobuf/CONTRIBUTORS b/vendor/github.com/gogo/protobuf/CONTRIBUTORS
index d2c3b418..84a85b1e 100644
--- a/vendor/github.com/gogo/protobuf/CONTRIBUTORS
+++ b/vendor/github.com/gogo/protobuf/CONTRIBUTORS
@@ -5,9 +5,12 @@ DongYun Kang 
 Dwayne Schultz 
 Georg Apitz 
 Gustav Paul 
+Johan Brandhorst 
+John Shahid 
 John Tuley 
 Laurent 
 Patrick Lee 
+Sergio Arbeo 
 Stephen J Day 
 Tamir Duberstein 
 Todd Eisenberger 
diff --git a/vendor/github.com/gogo/protobuf/LICENSE b/vendor/github.com/gogo/protobuf/LICENSE
index 335e38e1..7be0cc7b 100644
--- a/vendor/github.com/gogo/protobuf/LICENSE
+++ b/vendor/github.com/gogo/protobuf/LICENSE
@@ -1,7 +1,7 @@
-Extensions for Protocol Buffers to create more go like structures.
+Protocol Buffers for Go with Gadgets
 
-Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved.
-http://github.com/gogo/protobuf/gogoproto
+Copyright (c) 2013, The GoGo Authors. All rights reserved.
+http://github.com/gogo/protobuf
 
 Go support for Protocol Buffers - Google's data interchange format
 
diff --git a/vendor/github.com/gogo/protobuf/Makefile b/vendor/github.com/gogo/protobuf/Makefile
index 095ab880..0dcb4ab7 100644
--- a/vendor/github.com/gogo/protobuf/Makefile
+++ b/vendor/github.com/gogo/protobuf/Makefile
@@ -1,7 +1,7 @@
-# Extensions for Protocol Buffers to create more go like structures.
+# Protocol Buffers for Go with Gadgets
 #
-# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved.
-# http://github.com/gogo/protobuf/gogoproto
+# Copyright (c) 2013, The GoGo Authors. All rights reserved.
+# http://github.com/gogo/protobuf
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
@@ -26,11 +26,13 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+GO_VERSION:=$(shell go version)
+
 .PHONY: nuke regenerate tests clean install gofmt vet contributors
 
 all: clean install regenerate install tests errcheck vet
 
-buildserverall: clean install regenerate install tests vet
+buildserverall: clean install regenerate install tests vet js
 
 install:
 	go install ./proto
@@ -41,8 +43,10 @@ install:
 	go install ./protoc-gen-gogofast
 	go install ./protoc-gen-gogofaster
 	go install ./protoc-gen-gogoslick
+	go install ./protoc-gen-gostring
 	go install ./protoc-min-version
 	go install ./protoc-gen-combo
+	go install ./gogoreplace
 
 clean:
 	go clean ./...
@@ -60,6 +64,8 @@ regenerate:
 	make -C gogoproto regenerate
 	make -C proto/testdata regenerate
 	make -C jsonpb/jsonpb_test_proto regenerate
+	make -C _conformance regenerate
+	make -C types regenerate
 	make -C test regenerate
 	make -C test/example regenerate
 	make -C test/unrecognized regenerate
@@ -95,6 +101,17 @@ regenerate:
 	make -C test/asymetric-issue125 regenerate
 	make -C test/filedotname regenerate
 	make -C test/nopackage regenerate
+	make -C test/types regenerate
+	make -C test/proto3extension regenerate
+	make -C test/stdtypes regenerate
+	make -C test/data regenerate
+	make -C test/typedecl regenerate
+	make -C test/issue260 regenerate
+	make -C test/issue261 regenerate
+	make -C test/issue262 regenerate
+	make -C test/enumdecl regenerate
+	make -C test/typedecl_all regenerate
+	make -C test/enumdecl_all regenerate
 	make gofmt
 
 tests:
@@ -106,7 +123,7 @@ vet:
 	go tool vet --shadow .
 
 errcheck:
-	go get -u github.com/kisielk/errcheck
+	go get github.com/kisielk/errcheck
 	errcheck ./test/...
 
 drone:
@@ -114,8 +131,10 @@ drone:
 	(cd $(GOPATH)/src/github.com/gogo/protobuf && make buildserverall)
 
 testall:
+	go get -u github.com/golang/protobuf/proto
 	make -C protoc-gen-gogo/testdata test
 	make -C vanity/test test
+	make -C test/registration test
 	make tests
 
 bench:
@@ -125,4 +144,11 @@ bench:
 contributors:
 	git log --format='%aN <%aE>' | sort -fu > CONTRIBUTORS
 
+js:
+ifeq (go1.8, $(findstring go1.8, $(GO_VERSION)))
+	go get github.com/gopherjs/gopherjs
+	gopherjs build github.com/gogo/protobuf/protoc-gen-gogo
+endif
 
+update:
+	(cd protobuf && make update)
diff --git a/vendor/github.com/gogo/protobuf/README b/vendor/github.com/gogo/protobuf/README
index b4accc0c..0ad51363 100644
--- a/vendor/github.com/gogo/protobuf/README
+++ b/vendor/github.com/gogo/protobuf/README
@@ -207,6 +207,50 @@ the --go_out argument to protoc:
 
 	protoc --gogo_out=plugins=grpc:. *.proto
 
+## Compatibility ##
+
+The library and the generated code are expected to be stable over time.
+However, we reserve the right to make breaking changes without notice for the
+following reasons:
+
+- Security. A security issue in the specification or implementation may come to
+  light whose resolution requires breaking compatibility. We reserve the right
+  to address such security issues.
+- Unspecified behavior.  There are some aspects of the Protocol Buffers
+  specification that are undefined.  Programs that depend on such unspecified
+  behavior may break in future releases.
+- Specification errors or changes. If it becomes necessary to address an
+  inconsistency, incompleteness, or change in the Protocol Buffers
+  specification, resolving the issue could affect the meaning or legality of
+  existing programs.  We reserve the right to address such issues, including
+  updating the implementations.
+- Bugs.  If the library has a bug that violates the specification, a program
+  that depends on the buggy behavior may break if the bug is fixed.  We reserve
+  the right to fix such bugs.
+- Adding methods or fields to generated structs.  These may conflict with field
+  names that already exist in a schema, causing applications to break.  When the
+  code generator encounters a field in the schema that would collide with a
+  generated field or method name, the code generator will append an underscore
+  to the generated field or method name.
+- Adding, removing, or changing methods or fields in generated structs that
+  start with `XXX`.  These parts of the generated code are exported out of
+  necessity, but should not be considered part of the public API.
+- Adding, removing, or changing unexported symbols in generated code.
+
+Any breaking changes outside of these will be announced 6 months in advance to
+protobuf@googlegroups.com.
+
+You should, whenever possible, use generated code created by the `protoc-gen-go`
+tool built at the same commit as the `proto` package.  The `proto` package
+declares package-level constants in the form `ProtoPackageIsVersionX`.
+Application code and generated code may depend on one of these constants to
+ensure that compilation will fail if the available version of the proto library
+is too old.  Whenever we make a change to the generated code that requires newer
+library support, in the same commit we will increment the version number of the
+generated code and declare a new package-level constant whose name incorporates
+the latest version number.  Removing a compatibility constant is considered a
+breaking change and would be subject to the announcement policy stated above.
+
 ## Plugins ##
 
 The `protoc-gen-go/generator` package exposes a plugin interface,
diff --git a/vendor/github.com/gogo/protobuf/Readme.md b/vendor/github.com/gogo/protobuf/Readme.md
index 293da37b..e97bb1ba 100644
--- a/vendor/github.com/gogo/protobuf/Readme.md
+++ b/vendor/github.com/gogo/protobuf/Readme.md
@@ -1,8 +1,70 @@
 # Protocol Buffers for Go with Gadgets
 
-Travis CI Matrix Builds: [![Build Status](https://travis-ci.org/gogo/protobuf.svg?branch=master)](https://travis-ci.org/gogo/protobuf)
+[![Build Status](https://travis-ci.org/gogo/protobuf.svg?branch=master)](https://travis-ci.org/gogo/protobuf)
 
-### Getting Started (Give me the speed I don't care about the rest)
+gogoprotobuf is a fork of golang/protobuf with extra code generation features.
+
+This code generation is used to achieve:
+
+  - fast marshalling and unmarshalling
+  - more canonical Go structures
+  - goprotobuf compatibility
+  - less typing by optionally generating extra helper code
+  - peace of mind by optionally generating test and benchmark code
+  - other serialization formats
+
+Keeping track of how up to date gogoprotobuf is relative to golang/protobuf is done in this
+issue
+
+## Users
+
+These projects use gogoprotobuf:
+
+  - etcd - blog - sample proto file
+  - spacemonkey - blog
+  - badoo - sample proto file
+  - mesos-go - sample proto file
+  - heka - the switch from golang/protobuf to gogo/protobuf when it was still on code.google.com
+  - cockroachdb - sample proto file
+  - go-ipfs - sample proto file
+  - rkive-go - sample proto file
+  - dropbox
+  - srclib - sample proto file
+  - adyoulike
+  - cloudfoundry - sample proto file
+  - kubernetes - go2idl built on top of gogoprotobuf
+  - dgraph - release notes - benchmarks
+  - centrifugo - release notes - blog
+  - docker swarmkit - sample proto file
+  - nats.io - go-nats-streaming
+  - tidb - Communication between tidb and tikv
+  - protoactor-go - vanity command that also generates actors from service definitions
+
+Please lets us know if you are using gogoprotobuf by posting on our GoogleGroup.
+
+### Mentioned
+
+  - Cloudflare - go serialization talk - Albert Strasheim
+  - gophercon
+  - alecthomas' go serialization benchmarks
+
+## Getting Started
+
+There are several ways to use gogoprotobuf, but for all you need to install go and protoc.
+After that you can choose:
+
+  - Speed
+  - More Speed and more generated code
+  - Most Speed and most customization
+
+### Installation
+
+To install it, you must first have Go (at least version 1.6.3) installed (see [http://golang.org/doc/install](http://golang.org/doc/install)).  Go 1.7.1 and 1.8 are continuously tested.
+
+Next, install the standard protocol buffer implementation from [https://github.com/google/protobuf](https://github.com/google/protobuf).
+Most versions from 2.3.1 should not give any problems, but 2.6.1, 3.0.2 and 3.2.0 are continuously tested.
+
+### Speed
 
 Install the protoc-gen-gofast binary
 
@@ -12,7 +74,12 @@ Use it to generate faster marshaling and unmarshaling go code for your protocol
 
     protoc --gofast_out=. myproto.proto
 
-### Getting started (I have heard about fields without pointers and more code generation)
+This does not allow you to use any of the other gogoprotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md).
+
+### More Speed and more generated code
+
+Fields without pointers cause less time in the garbage collector.
+More code generation results in more convenient methods.
 
 Other binaries are also included:
 
@@ -20,29 +87,29 @@ Other binaries are also included:
     protoc-gen-gogofaster (same as gogofast, without XXX_unrecognized, less pointer fields)
     protoc-gen-gogoslick (same as gogofaster, but with generated string, gostring and equal methods)
 
-### Getting started (I want more customization power over fields, speed, other serialization formats and tests, etc.)
+Installing any of these binaries is easy.  Simply run:
 
-Please visit the [homepage](http://gogo.github.io) for more documentation.
+    go get github.com/gogo/protobuf/proto
+    go get github.com/gogo/protobuf/{binary}
+    go get github.com/gogo/protobuf/gogoproto
 
-### Installation
+These binaries allow you to using gogoprotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md).
 
-To install it, you must first have Go (at least version 1.3.3) installed (see [http://golang.org/doc/install](http://golang.org/doc/install)).  Go 1.3.3, 1.4.2, 1.5.3 and 1.6 are continiuosly tested.
+### Most Speed and most customization
 
-Next, install the standard protocol buffer implementation from [https://github.com/google/protobuf](https://github.com/google/protobuf).
-Most versions from 2.3.1 should not give any problems, but 2.5.0, 2.6.1 and 3 alpha are continuously tested.
+Customizing the fields of the messages to be the fields that you actually want to use removes the need to copy between the structs you use and structs you use to serialize.
+gogoprotobuf also offers more serialization formats and generation of tests and even more methods.
 
-Finally run:
+Please visit the [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md) page for more documentation.
+
+Install protoc-gen-gogo:
 
     go get github.com/gogo/protobuf/proto
+    go get github.com/gogo/protobuf/jsonpb
     go get github.com/gogo/protobuf/protoc-gen-gogo
     go get github.com/gogo/protobuf/gogoproto
 
-### Proto3
-
-Proto3 is supported, but most of the new native types are not supported yet.
-[See Proto3 Issue](https://github.com/gogo/protobuf/issues/57) for more details.
-
-### GRPC
+## GRPC
 
 It works the same as golang/protobuf, simply specify the plugin.
 Here is an example using gofast:
diff --git a/vendor/github.com/gogo/protobuf/_conformance/Makefile b/vendor/github.com/gogo/protobuf/_conformance/Makefile
new file mode 100644
index 00000000..74aa200e
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/_conformance/Makefile
@@ -0,0 +1,40 @@
+# Go support for Protocol Buffers - Google's data interchange format
+#
+# Copyright 2016 The Go Authors.  All rights reserved.
+# https://github.com/golang/protobuf
+#
+# 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.
+
+regenerate:
+	protoc-min-version --version="3.0.0" --proto_path=$(GOPATH)/src:$(GOPATH)/src/github.com/gogo/protobuf/protobuf:. --gogo_out=\
+	Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\
+	Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\
+	Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\
+	Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\
+	Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types,\
+	Mgoogle/protobuf/field_mask.proto=github.com/gogo/protobuf/types\
+	:. conformance_proto/conformance.proto
diff --git a/vendor/github.com/gogo/protobuf/_conformance/conformance.go b/vendor/github.com/gogo/protobuf/_conformance/conformance.go
new file mode 100644
index 00000000..45b37881
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/_conformance/conformance.go
@@ -0,0 +1,161 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2016 The Go Authors.  All rights reserved.
+// https://github.com/golang/protobuf
+//
+// 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.
+
+// conformance implements the conformance test subprocess protocol as
+// documented in conformance.proto.
+package main
+
+import (
+	"encoding/binary"
+	"fmt"
+	"io"
+	"os"
+
+	pb "github.com/gogo/protobuf/_conformance/conformance_proto"
+	"github.com/gogo/protobuf/jsonpb"
+	"github.com/gogo/protobuf/proto"
+)
+
+func main() {
+	var sizeBuf [4]byte
+	inbuf := make([]byte, 0, 4096)
+	outbuf := proto.NewBuffer(nil)
+	for {
+		if _, err := io.ReadFull(os.Stdin, sizeBuf[:]); err == io.EOF {
+			break
+		} else if err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: read request:", err)
+			os.Exit(1)
+		}
+		size := binary.LittleEndian.Uint32(sizeBuf[:])
+		if int(size) > cap(inbuf) {
+			inbuf = make([]byte, size)
+		}
+		inbuf = inbuf[:size]
+		if _, err := io.ReadFull(os.Stdin, inbuf); err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: read request:", err)
+			os.Exit(1)
+		}
+
+		req := new(pb.ConformanceRequest)
+		if err := proto.Unmarshal(inbuf, req); err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: parse request:", err)
+			os.Exit(1)
+		}
+		res := handle(req)
+
+		if err := outbuf.Marshal(res); err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: marshal response:", err)
+			os.Exit(1)
+		}
+		binary.LittleEndian.PutUint32(sizeBuf[:], uint32(len(outbuf.Bytes())))
+		if _, err := os.Stdout.Write(sizeBuf[:]); err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: write response:", err)
+			os.Exit(1)
+		}
+		if _, err := os.Stdout.Write(outbuf.Bytes()); err != nil {
+			fmt.Fprintln(os.Stderr, "go conformance: write response:", err)
+			os.Exit(1)
+		}
+		outbuf.Reset()
+	}
+}
+
+var jsonMarshaler = jsonpb.Marshaler{
+	OrigName: true,
+}
+
+func handle(req *pb.ConformanceRequest) *pb.ConformanceResponse {
+	var err error
+	var msg pb.TestAllTypes
+	switch p := req.Payload.(type) {
+	case *pb.ConformanceRequest_ProtobufPayload:
+		err = proto.Unmarshal(p.ProtobufPayload, &msg)
+	case *pb.ConformanceRequest_JsonPayload:
+		err = jsonpb.UnmarshalString(p.JsonPayload, &msg)
+		if err != nil && err.Error() == "unmarshaling Any not supported yet" {
+			return &pb.ConformanceResponse{
+				Result: &pb.ConformanceResponse_Skipped{
+					Skipped: err.Error(),
+				},
+			}
+		}
+	default:
+		return &pb.ConformanceResponse{
+			Result: &pb.ConformanceResponse_RuntimeError{
+				RuntimeError: "unknown request payload type",
+			},
+		}
+	}
+	if err != nil {
+		return &pb.ConformanceResponse{
+			Result: &pb.ConformanceResponse_ParseError{
+				ParseError: err.Error(),
+			},
+		}
+	}
+	switch req.RequestedOutputFormat {
+	case pb.WireFormat_PROTOBUF:
+		p, err := proto.Marshal(&msg)
+		if err != nil {
+			return &pb.ConformanceResponse{
+				Result: &pb.ConformanceResponse_SerializeError{
+					SerializeError: err.Error(),
+				},
+			}
+		}
+		return &pb.ConformanceResponse{
+			Result: &pb.ConformanceResponse_ProtobufPayload{
+				ProtobufPayload: p,
+			},
+		}
+	case pb.WireFormat_JSON:
+		p, err := jsonMarshaler.MarshalToString(&msg)
+		if err != nil {
+			return &pb.ConformanceResponse{
+				Result: &pb.ConformanceResponse_SerializeError{
+					SerializeError: err.Error(),
+				},
+			}
+		}
+		return &pb.ConformanceResponse{
+			Result: &pb.ConformanceResponse_JsonPayload{
+				JsonPayload: p,
+			},
+		}
+	default:
+		return &pb.ConformanceResponse{
+			Result: &pb.ConformanceResponse_RuntimeError{
+				RuntimeError: "unknown output format",
+			},
+		}
+	}
+}
diff --git a/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go
new file mode 100644
index 00000000..59b429b5
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go
@@ -0,0 +1,1890 @@
+// Code generated by protoc-gen-gogo.
+// source: conformance_proto/conformance.proto
+// DO NOT EDIT!
+
+/*
+Package conformance is a generated protocol buffer package.
+
+It is generated from these files:
+	conformance_proto/conformance.proto
+
+It has these top-level messages:
+	ConformanceRequest
+	ConformanceResponse
+	TestAllTypes
+	ForeignMessage
+*/
+package conformance
+
+import proto "github.com/gogo/protobuf/proto"
+import fmt "fmt"
+import math "math"
+import google_protobuf "github.com/gogo/protobuf/types"
+import google_protobuf1 "github.com/gogo/protobuf/types"
+import google_protobuf2 "github.com/gogo/protobuf/types"
+import google_protobuf3 "github.com/gogo/protobuf/types"
+import google_protobuf4 "github.com/gogo/protobuf/types"
+import google_protobuf5 "github.com/gogo/protobuf/types"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
+
+type WireFormat int32
+
+const (
+	WireFormat_UNSPECIFIED WireFormat = 0
+	WireFormat_PROTOBUF    WireFormat = 1
+	WireFormat_JSON        WireFormat = 2
+)
+
+var WireFormat_name = map[int32]string{
+	0: "UNSPECIFIED",
+	1: "PROTOBUF",
+	2: "JSON",
+}
+var WireFormat_value = map[string]int32{
+	"UNSPECIFIED": 0,
+	"PROTOBUF":    1,
+	"JSON":        2,
+}
+
+func (x WireFormat) String() string {
+	return proto.EnumName(WireFormat_name, int32(x))
+}
+func (WireFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptorConformance, []int{0} }
+
+type ForeignEnum int32
+
+const (
+	ForeignEnum_FOREIGN_FOO ForeignEnum = 0
+	ForeignEnum_FOREIGN_BAR ForeignEnum = 1
+	ForeignEnum_FOREIGN_BAZ ForeignEnum = 2
+)
+
+var ForeignEnum_name = map[int32]string{
+	0: "FOREIGN_FOO",
+	1: "FOREIGN_BAR",
+	2: "FOREIGN_BAZ",
+}
+var ForeignEnum_value = map[string]int32{
+	"FOREIGN_FOO": 0,
+	"FOREIGN_BAR": 1,
+	"FOREIGN_BAZ": 2,
+}
+
+func (x ForeignEnum) String() string {
+	return proto.EnumName(ForeignEnum_name, int32(x))
+}
+func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorConformance, []int{1} }
+
+type TestAllTypes_NestedEnum int32
+
+const (
+	TestAllTypes_FOO TestAllTypes_NestedEnum = 0
+	TestAllTypes_BAR TestAllTypes_NestedEnum = 1
+	TestAllTypes_BAZ TestAllTypes_NestedEnum = 2
+	TestAllTypes_NEG TestAllTypes_NestedEnum = -1
+)
+
+var TestAllTypes_NestedEnum_name = map[int32]string{
+	0:  "FOO",
+	1:  "BAR",
+	2:  "BAZ",
+	-1: "NEG",
+}
+var TestAllTypes_NestedEnum_value = map[string]int32{
+	"FOO": 0,
+	"BAR": 1,
+	"BAZ": 2,
+	"NEG": -1,
+}
+
+func (x TestAllTypes_NestedEnum) String() string {
+	return proto.EnumName(TestAllTypes_NestedEnum_name, int32(x))
+}
+func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptorConformance, []int{2, 0}
+}
+
+// Represents a single test case's input.  The testee should:
+//
+//   1. parse this proto (which should always succeed)
+//   2. parse the protobuf or JSON payload in "payload" (which may fail)
+//   3. if the parse succeeded, serialize the message in the requested format.
+type ConformanceRequest struct {
+	// The payload (whether protobuf of JSON) is always for a TestAllTypes proto
+	// (see below).
+	//
+	// Types that are valid to be assigned to Payload:
+	//	*ConformanceRequest_ProtobufPayload
+	//	*ConformanceRequest_JsonPayload
+	Payload isConformanceRequest_Payload `protobuf_oneof:"payload"`
+	// Which format should the testee serialize its message to?
+	RequestedOutputFormat WireFormat `protobuf:"varint,3,opt,name=requested_output_format,json=requestedOutputFormat,proto3,enum=conformance.WireFormat" json:"requested_output_format,omitempty"`
+}
+
+func (m *ConformanceRequest) Reset()                    { *m = ConformanceRequest{} }
+func (m *ConformanceRequest) String() string            { return proto.CompactTextString(m) }
+func (*ConformanceRequest) ProtoMessage()               {}
+func (*ConformanceRequest) Descriptor() ([]byte, []int) { return fileDescriptorConformance, []int{0} }
+
+type isConformanceRequest_Payload interface {
+	isConformanceRequest_Payload()
+}
+
+type ConformanceRequest_ProtobufPayload struct {
+	ProtobufPayload []byte `protobuf:"bytes,1,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"`
+}
+type ConformanceRequest_JsonPayload struct {
+	JsonPayload string `protobuf:"bytes,2,opt,name=json_payload,json=jsonPayload,proto3,oneof"`
+}
+
+func (*ConformanceRequest_ProtobufPayload) isConformanceRequest_Payload() {}
+func (*ConformanceRequest_JsonPayload) isConformanceRequest_Payload()     {}
+
+func (m *ConformanceRequest) GetPayload() isConformanceRequest_Payload {
+	if m != nil {
+		return m.Payload
+	}
+	return nil
+}
+
+func (m *ConformanceRequest) GetProtobufPayload() []byte {
+	if x, ok := m.GetPayload().(*ConformanceRequest_ProtobufPayload); ok {
+		return x.ProtobufPayload
+	}
+	return nil
+}
+
+func (m *ConformanceRequest) GetJsonPayload() string {
+	if x, ok := m.GetPayload().(*ConformanceRequest_JsonPayload); ok {
+		return x.JsonPayload
+	}
+	return ""
+}
+
+func (m *ConformanceRequest) GetRequestedOutputFormat() WireFormat {
+	if m != nil {
+		return m.RequestedOutputFormat
+	}
+	return WireFormat_UNSPECIFIED
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ConformanceRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _ConformanceRequest_OneofMarshaler, _ConformanceRequest_OneofUnmarshaler, _ConformanceRequest_OneofSizer, []interface{}{
+		(*ConformanceRequest_ProtobufPayload)(nil),
+		(*ConformanceRequest_JsonPayload)(nil),
+	}
+}
+
+func _ConformanceRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*ConformanceRequest)
+	// payload
+	switch x := m.Payload.(type) {
+	case *ConformanceRequest_ProtobufPayload:
+		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
+		_ = b.EncodeRawBytes(x.ProtobufPayload)
+	case *ConformanceRequest_JsonPayload:
+		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.JsonPayload)
+	case nil:
+	default:
+		return fmt.Errorf("ConformanceRequest.Payload has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _ConformanceRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*ConformanceRequest)
+	switch tag {
+	case 1: // payload.protobuf_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.Payload = &ConformanceRequest_ProtobufPayload{x}
+		return true, err
+	case 2: // payload.json_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Payload = &ConformanceRequest_JsonPayload{x}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _ConformanceRequest_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*ConformanceRequest)
+	// payload
+	switch x := m.Payload.(type) {
+	case *ConformanceRequest_ProtobufPayload:
+		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
+		n += len(x.ProtobufPayload)
+	case *ConformanceRequest_JsonPayload:
+		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
+		n += len(x.JsonPayload)
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// Represents a single test case's output.
+type ConformanceResponse struct {
+	// Types that are valid to be assigned to Result:
+	//	*ConformanceResponse_ParseError
+	//	*ConformanceResponse_SerializeError
+	//	*ConformanceResponse_RuntimeError
+	//	*ConformanceResponse_ProtobufPayload
+	//	*ConformanceResponse_JsonPayload
+	//	*ConformanceResponse_Skipped
+	Result isConformanceResponse_Result `protobuf_oneof:"result"`
+}
+
+func (m *ConformanceResponse) Reset()                    { *m = ConformanceResponse{} }
+func (m *ConformanceResponse) String() string            { return proto.CompactTextString(m) }
+func (*ConformanceResponse) ProtoMessage()               {}
+func (*ConformanceResponse) Descriptor() ([]byte, []int) { return fileDescriptorConformance, []int{1} }
+
+type isConformanceResponse_Result interface {
+	isConformanceResponse_Result()
+}
+
+type ConformanceResponse_ParseError struct {
+	ParseError string `protobuf:"bytes,1,opt,name=parse_error,json=parseError,proto3,oneof"`
+}
+type ConformanceResponse_SerializeError struct {
+	SerializeError string `protobuf:"bytes,6,opt,name=serialize_error,json=serializeError,proto3,oneof"`
+}
+type ConformanceResponse_RuntimeError struct {
+	RuntimeError string `protobuf:"bytes,2,opt,name=runtime_error,json=runtimeError,proto3,oneof"`
+}
+type ConformanceResponse_ProtobufPayload struct {
+	ProtobufPayload []byte `protobuf:"bytes,3,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"`
+}
+type ConformanceResponse_JsonPayload struct {
+	JsonPayload string `protobuf:"bytes,4,opt,name=json_payload,json=jsonPayload,proto3,oneof"`
+}
+type ConformanceResponse_Skipped struct {
+	Skipped string `protobuf:"bytes,5,opt,name=skipped,proto3,oneof"`
+}
+
+func (*ConformanceResponse_ParseError) isConformanceResponse_Result()      {}
+func (*ConformanceResponse_SerializeError) isConformanceResponse_Result()  {}
+func (*ConformanceResponse_RuntimeError) isConformanceResponse_Result()    {}
+func (*ConformanceResponse_ProtobufPayload) isConformanceResponse_Result() {}
+func (*ConformanceResponse_JsonPayload) isConformanceResponse_Result()     {}
+func (*ConformanceResponse_Skipped) isConformanceResponse_Result()         {}
+
+func (m *ConformanceResponse) GetResult() isConformanceResponse_Result {
+	if m != nil {
+		return m.Result
+	}
+	return nil
+}
+
+func (m *ConformanceResponse) GetParseError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_ParseError); ok {
+		return x.ParseError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetSerializeError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_SerializeError); ok {
+		return x.SerializeError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetRuntimeError() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_RuntimeError); ok {
+		return x.RuntimeError
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetProtobufPayload() []byte {
+	if x, ok := m.GetResult().(*ConformanceResponse_ProtobufPayload); ok {
+		return x.ProtobufPayload
+	}
+	return nil
+}
+
+func (m *ConformanceResponse) GetJsonPayload() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_JsonPayload); ok {
+		return x.JsonPayload
+	}
+	return ""
+}
+
+func (m *ConformanceResponse) GetSkipped() string {
+	if x, ok := m.GetResult().(*ConformanceResponse_Skipped); ok {
+		return x.Skipped
+	}
+	return ""
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ConformanceResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _ConformanceResponse_OneofMarshaler, _ConformanceResponse_OneofUnmarshaler, _ConformanceResponse_OneofSizer, []interface{}{
+		(*ConformanceResponse_ParseError)(nil),
+		(*ConformanceResponse_SerializeError)(nil),
+		(*ConformanceResponse_RuntimeError)(nil),
+		(*ConformanceResponse_ProtobufPayload)(nil),
+		(*ConformanceResponse_JsonPayload)(nil),
+		(*ConformanceResponse_Skipped)(nil),
+	}
+}
+
+func _ConformanceResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*ConformanceResponse)
+	// result
+	switch x := m.Result.(type) {
+	case *ConformanceResponse_ParseError:
+		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.ParseError)
+	case *ConformanceResponse_SerializeError:
+		_ = b.EncodeVarint(6<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.SerializeError)
+	case *ConformanceResponse_RuntimeError:
+		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.RuntimeError)
+	case *ConformanceResponse_ProtobufPayload:
+		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
+		_ = b.EncodeRawBytes(x.ProtobufPayload)
+	case *ConformanceResponse_JsonPayload:
+		_ = b.EncodeVarint(4<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.JsonPayload)
+	case *ConformanceResponse_Skipped:
+		_ = b.EncodeVarint(5<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.Skipped)
+	case nil:
+	default:
+		return fmt.Errorf("ConformanceResponse.Result has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _ConformanceResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*ConformanceResponse)
+	switch tag {
+	case 1: // result.parse_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_ParseError{x}
+		return true, err
+	case 6: // result.serialize_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_SerializeError{x}
+		return true, err
+	case 2: // result.runtime_error
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_RuntimeError{x}
+		return true, err
+	case 3: // result.protobuf_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.Result = &ConformanceResponse_ProtobufPayload{x}
+		return true, err
+	case 4: // result.json_payload
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_JsonPayload{x}
+		return true, err
+	case 5: // result.skipped
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.Result = &ConformanceResponse_Skipped{x}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _ConformanceResponse_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*ConformanceResponse)
+	// result
+	switch x := m.Result.(type) {
+	case *ConformanceResponse_ParseError:
+		n += proto.SizeVarint(1<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ParseError)))
+		n += len(x.ParseError)
+	case *ConformanceResponse_SerializeError:
+		n += proto.SizeVarint(6<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.SerializeError)))
+		n += len(x.SerializeError)
+	case *ConformanceResponse_RuntimeError:
+		n += proto.SizeVarint(2<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.RuntimeError)))
+		n += len(x.RuntimeError)
+	case *ConformanceResponse_ProtobufPayload:
+		n += proto.SizeVarint(3<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.ProtobufPayload)))
+		n += len(x.ProtobufPayload)
+	case *ConformanceResponse_JsonPayload:
+		n += proto.SizeVarint(4<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.JsonPayload)))
+		n += len(x.JsonPayload)
+	case *ConformanceResponse_Skipped:
+		n += proto.SizeVarint(5<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.Skipped)))
+		n += len(x.Skipped)
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+// This proto includes every type of field in both singular and repeated
+// forms.
+type TestAllTypes struct {
+	// Singular
+	OptionalInt32          int32                       `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32,proto3" json:"optional_int32,omitempty"`
+	OptionalInt64          int64                       `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64,proto3" json:"optional_int64,omitempty"`
+	OptionalUint32         uint32                      `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32,proto3" json:"optional_uint32,omitempty"`
+	OptionalUint64         uint64                      `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64,proto3" json:"optional_uint64,omitempty"`
+	OptionalSint32         int32                       `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32,proto3" json:"optional_sint32,omitempty"`
+	OptionalSint64         int64                       `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64,proto3" json:"optional_sint64,omitempty"`
+	OptionalFixed32        uint32                      `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32,proto3" json:"optional_fixed32,omitempty"`
+	OptionalFixed64        uint64                      `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64,proto3" json:"optional_fixed64,omitempty"`
+	OptionalSfixed32       int32                       `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32,proto3" json:"optional_sfixed32,omitempty"`
+	OptionalSfixed64       int64                       `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64,proto3" json:"optional_sfixed64,omitempty"`
+	OptionalFloat          float32                     `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat,proto3" json:"optional_float,omitempty"`
+	OptionalDouble         float64                     `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble,proto3" json:"optional_double,omitempty"`
+	OptionalBool           bool                        `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool,proto3" json:"optional_bool,omitempty"`
+	OptionalString         string                      `protobuf:"bytes,14,opt,name=optional_string,json=optionalString,proto3" json:"optional_string,omitempty"`
+	OptionalBytes          []byte                      `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"`
+	OptionalNestedMessage  *TestAllTypes_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
+	OptionalForeignMessage *ForeignMessage             `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"`
+	OptionalNestedEnum     TestAllTypes_NestedEnum     `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,proto3,enum=conformance.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"`
+	OptionalForeignEnum    ForeignEnum                 `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,proto3,enum=conformance.ForeignEnum" json:"optional_foreign_enum,omitempty"`
+	OptionalStringPiece    string                      `protobuf:"bytes,24,opt,name=optional_string_piece,json=optionalStringPiece,proto3" json:"optional_string_piece,omitempty"`
+	OptionalCord           string                      `protobuf:"bytes,25,opt,name=optional_cord,json=optionalCord,proto3" json:"optional_cord,omitempty"`
+	RecursiveMessage       *TestAllTypes               `protobuf:"bytes,27,opt,name=recursive_message,json=recursiveMessage" json:"recursive_message,omitempty"`
+	// Repeated
+	RepeatedInt32          []int32                       `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
+	RepeatedInt64          []int64                       `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"`
+	RepeatedUint32         []uint32                      `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"`
+	RepeatedUint64         []uint64                      `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"`
+	RepeatedSint32         []int32                       `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"`
+	RepeatedSint64         []int64                       `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"`
+	RepeatedFixed32        []uint32                      `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"`
+	RepeatedFixed64        []uint64                      `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"`
+	RepeatedSfixed32       []int32                       `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"`
+	RepeatedSfixed64       []int64                       `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"`
+	RepeatedFloat          []float32                     `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"`
+	RepeatedDouble         []float64                     `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"`
+	RepeatedBool           []bool                        `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
+	RepeatedString         []string                      `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"`
+	RepeatedBytes          [][]byte                      `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"`
+	RepeatedNestedMessage  []*TestAllTypes_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"`
+	RepeatedForeignMessage []*ForeignMessage             `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"`
+	RepeatedNestedEnum     []TestAllTypes_NestedEnum     `protobuf:"varint,51,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,enum=conformance.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"`
+	RepeatedForeignEnum    []ForeignEnum                 `protobuf:"varint,52,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=conformance.ForeignEnum" json:"repeated_foreign_enum,omitempty"`
+	RepeatedStringPiece    []string                      `protobuf:"bytes,54,rep,name=repeated_string_piece,json=repeatedStringPiece" json:"repeated_string_piece,omitempty"`
+	RepeatedCord           []string                      `protobuf:"bytes,55,rep,name=repeated_cord,json=repeatedCord" json:"repeated_cord,omitempty"`
+	// Map
+	MapInt32Int32           map[int32]int32                        `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+	MapInt64Int64           map[int64]int64                        `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+	MapUint32Uint32         map[uint32]uint32                      `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+	MapUint64Uint64         map[uint64]uint64                      `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+	MapSint32Sint32         map[int32]int32                        `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"`
+	MapSint64Sint64         map[int64]int64                        `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"`
+	MapFixed32Fixed32       map[uint32]uint32                      `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
+	MapFixed64Fixed64       map[uint64]uint64                      `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
+	MapSfixed32Sfixed32     map[int32]int32                        `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
+	MapSfixed64Sfixed64     map[int64]int64                        `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
+	MapInt32Float           map[int32]float32                      `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
+	MapInt32Double          map[int32]float64                      `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
+	MapBoolBool             map[bool]bool                          `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+	MapStringString         map[string]string                      `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	MapStringBytes          map[string][]byte                      `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	MapStringNestedMessage  map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"`
+	MapStringForeignMessage map[string]*ForeignMessage             `protobuf:"bytes,72,rep,name=map_string_foreign_message,json=mapStringForeignMessage" json:"map_string_foreign_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"`
+	MapStringNestedEnum     map[string]TestAllTypes_NestedEnum     `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=conformance.TestAllTypes_NestedEnum"`
+	MapStringForeignEnum    map[string]ForeignEnum                 `protobuf:"bytes,74,rep,name=map_string_foreign_enum,json=mapStringForeignEnum" json:"map_string_foreign_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=conformance.ForeignEnum"`
+	// Types that are valid to be assigned to OneofField:
+	//	*TestAllTypes_OneofUint32
+	//	*TestAllTypes_OneofNestedMessage
+	//	*TestAllTypes_OneofString
+	//	*TestAllTypes_OneofBytes
+	//	*TestAllTypes_OneofBool
+	//	*TestAllTypes_OneofUint64
+	//	*TestAllTypes_OneofFloat
+	//	*TestAllTypes_OneofDouble
+	//	*TestAllTypes_OneofEnum
+	OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"`
+	// Well-known types
+	OptionalBoolWrapper   *google_protobuf5.BoolValue     `protobuf:"bytes,201,opt,name=optional_bool_wrapper,json=optionalBoolWrapper" json:"optional_bool_wrapper,omitempty"`
+	OptionalInt32Wrapper  *google_protobuf5.Int32Value    `protobuf:"bytes,202,opt,name=optional_int32_wrapper,json=optionalInt32Wrapper" json:"optional_int32_wrapper,omitempty"`
+	OptionalInt64Wrapper  *google_protobuf5.Int64Value    `protobuf:"bytes,203,opt,name=optional_int64_wrapper,json=optionalInt64Wrapper" json:"optional_int64_wrapper,omitempty"`
+	OptionalUint32Wrapper *google_protobuf5.UInt32Value   `protobuf:"bytes,204,opt,name=optional_uint32_wrapper,json=optionalUint32Wrapper" json:"optional_uint32_wrapper,omitempty"`
+	OptionalUint64Wrapper *google_protobuf5.UInt64Value   `protobuf:"bytes,205,opt,name=optional_uint64_wrapper,json=optionalUint64Wrapper" json:"optional_uint64_wrapper,omitempty"`
+	OptionalFloatWrapper  *google_protobuf5.FloatValue    `protobuf:"bytes,206,opt,name=optional_float_wrapper,json=optionalFloatWrapper" json:"optional_float_wrapper,omitempty"`
+	OptionalDoubleWrapper *google_protobuf5.DoubleValue   `protobuf:"bytes,207,opt,name=optional_double_wrapper,json=optionalDoubleWrapper" json:"optional_double_wrapper,omitempty"`
+	OptionalStringWrapper *google_protobuf5.StringValue   `protobuf:"bytes,208,opt,name=optional_string_wrapper,json=optionalStringWrapper" json:"optional_string_wrapper,omitempty"`
+	OptionalBytesWrapper  *google_protobuf5.BytesValue    `protobuf:"bytes,209,opt,name=optional_bytes_wrapper,json=optionalBytesWrapper" json:"optional_bytes_wrapper,omitempty"`
+	RepeatedBoolWrapper   []*google_protobuf5.BoolValue   `protobuf:"bytes,211,rep,name=repeated_bool_wrapper,json=repeatedBoolWrapper" json:"repeated_bool_wrapper,omitempty"`
+	RepeatedInt32Wrapper  []*google_protobuf5.Int32Value  `protobuf:"bytes,212,rep,name=repeated_int32_wrapper,json=repeatedInt32Wrapper" json:"repeated_int32_wrapper,omitempty"`
+	RepeatedInt64Wrapper  []*google_protobuf5.Int64Value  `protobuf:"bytes,213,rep,name=repeated_int64_wrapper,json=repeatedInt64Wrapper" json:"repeated_int64_wrapper,omitempty"`
+	RepeatedUint32Wrapper []*google_protobuf5.UInt32Value `protobuf:"bytes,214,rep,name=repeated_uint32_wrapper,json=repeatedUint32Wrapper" json:"repeated_uint32_wrapper,omitempty"`
+	RepeatedUint64Wrapper []*google_protobuf5.UInt64Value `protobuf:"bytes,215,rep,name=repeated_uint64_wrapper,json=repeatedUint64Wrapper" json:"repeated_uint64_wrapper,omitempty"`
+	RepeatedFloatWrapper  []*google_protobuf5.FloatValue  `protobuf:"bytes,216,rep,name=repeated_float_wrapper,json=repeatedFloatWrapper" json:"repeated_float_wrapper,omitempty"`
+	RepeatedDoubleWrapper []*google_protobuf5.DoubleValue `protobuf:"bytes,217,rep,name=repeated_double_wrapper,json=repeatedDoubleWrapper" json:"repeated_double_wrapper,omitempty"`
+	RepeatedStringWrapper []*google_protobuf5.StringValue `protobuf:"bytes,218,rep,name=repeated_string_wrapper,json=repeatedStringWrapper" json:"repeated_string_wrapper,omitempty"`
+	RepeatedBytesWrapper  []*google_protobuf5.BytesValue  `protobuf:"bytes,219,rep,name=repeated_bytes_wrapper,json=repeatedBytesWrapper" json:"repeated_bytes_wrapper,omitempty"`
+	OptionalDuration      *google_protobuf1.Duration      `protobuf:"bytes,301,opt,name=optional_duration,json=optionalDuration" json:"optional_duration,omitempty"`
+	OptionalTimestamp     *google_protobuf4.Timestamp     `protobuf:"bytes,302,opt,name=optional_timestamp,json=optionalTimestamp" json:"optional_timestamp,omitempty"`
+	OptionalFieldMask     *google_protobuf2.FieldMask     `protobuf:"bytes,303,opt,name=optional_field_mask,json=optionalFieldMask" json:"optional_field_mask,omitempty"`
+	OptionalStruct        *google_protobuf3.Struct        `protobuf:"bytes,304,opt,name=optional_struct,json=optionalStruct" json:"optional_struct,omitempty"`
+	OptionalAny           *google_protobuf.Any            `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny" json:"optional_any,omitempty"`
+	OptionalValue         *google_protobuf3.Value         `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue" json:"optional_value,omitempty"`
+	RepeatedDuration      []*google_protobuf1.Duration    `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration" json:"repeated_duration,omitempty"`
+	RepeatedTimestamp     []*google_protobuf4.Timestamp   `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp" json:"repeated_timestamp,omitempty"`
+	RepeatedFieldmask     []*google_protobuf2.FieldMask   `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask" json:"repeated_fieldmask,omitempty"`
+	RepeatedStruct        []*google_protobuf3.Struct      `protobuf:"bytes,324,rep,name=repeated_struct,json=repeatedStruct" json:"repeated_struct,omitempty"`
+	RepeatedAny           []*google_protobuf.Any          `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny" json:"repeated_any,omitempty"`
+	RepeatedValue         []*google_protobuf3.Value       `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue" json:"repeated_value,omitempty"`
+	// Test field-name-to-JSON-name convention.
+	// (protobuf says names can be any valid C/C++ identifier.)
+	Fieldname1    int32 `protobuf:"varint,401,opt,name=fieldname1,proto3" json:"fieldname1,omitempty"`
+	FieldName2    int32 `protobuf:"varint,402,opt,name=field_name2,json=fieldName2,proto3" json:"field_name2,omitempty"`
+	XFieldName3   int32 `protobuf:"varint,403,opt,name=_field_name3,json=FieldName3,proto3" json:"_field_name3,omitempty"`
+	Field_Name4_  int32 `protobuf:"varint,404,opt,name=field__name4_,json=fieldName4,proto3" json:"field__name4_,omitempty"`
+	Field0Name5   int32 `protobuf:"varint,405,opt,name=field0name5,proto3" json:"field0name5,omitempty"`
+	Field_0Name6  int32 `protobuf:"varint,406,opt,name=field_0_name6,json=field0Name6,proto3" json:"field_0_name6,omitempty"`
+	FieldName7    int32 `protobuf:"varint,407,opt,name=fieldName7,proto3" json:"fieldName7,omitempty"`
+	FieldName8    int32 `protobuf:"varint,408,opt,name=FieldName8,proto3" json:"FieldName8,omitempty"`
+	Field_Name9   int32 `protobuf:"varint,409,opt,name=field_Name9,json=fieldName9,proto3" json:"field_Name9,omitempty"`
+	Field_Name10  int32 `protobuf:"varint,410,opt,name=Field_Name10,json=FieldName10,proto3" json:"Field_Name10,omitempty"`
+	FIELD_NAME11  int32 `protobuf:"varint,411,opt,name=FIELD_NAME11,json=FIELDNAME11,proto3" json:"FIELD_NAME11,omitempty"`
+	FIELDName12   int32 `protobuf:"varint,412,opt,name=FIELD_name12,json=FIELDName12,proto3" json:"FIELD_name12,omitempty"`
+	XFieldName13  int32 `protobuf:"varint,413,opt,name=__field_name13,json=FieldName13,proto3" json:"__field_name13,omitempty"`
+	X_FieldName14 int32 `protobuf:"varint,414,opt,name=__Field_name14,json=FieldName14,proto3" json:"__Field_name14,omitempty"`
+	Field_Name15  int32 `protobuf:"varint,415,opt,name=field__name15,json=fieldName15,proto3" json:"field__name15,omitempty"`
+	Field__Name16 int32 `protobuf:"varint,416,opt,name=field__Name16,json=fieldName16,proto3" json:"field__Name16,omitempty"`
+	FieldName17__ int32 `protobuf:"varint,417,opt,name=field_name17__,json=fieldName17,proto3" json:"field_name17__,omitempty"`
+	FieldName18__ int32 `protobuf:"varint,418,opt,name=Field_name18__,json=FieldName18,proto3" json:"Field_name18__,omitempty"`
+}
+
+func (m *TestAllTypes) Reset()                    { *m = TestAllTypes{} }
+func (m *TestAllTypes) String() string            { return proto.CompactTextString(m) }
+func (*TestAllTypes) ProtoMessage()               {}
+func (*TestAllTypes) Descriptor() ([]byte, []int) { return fileDescriptorConformance, []int{2} }
+
+type isTestAllTypes_OneofField interface {
+	isTestAllTypes_OneofField()
+}
+
+type TestAllTypes_OneofUint32 struct {
+	OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,proto3,oneof"`
+}
+type TestAllTypes_OneofNestedMessage struct {
+	OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"`
+}
+type TestAllTypes_OneofString struct {
+	OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,proto3,oneof"`
+}
+type TestAllTypes_OneofBytes struct {
+	OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"`
+}
+type TestAllTypes_OneofBool struct {
+	OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,proto3,oneof"`
+}
+type TestAllTypes_OneofUint64 struct {
+	OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,proto3,oneof"`
+}
+type TestAllTypes_OneofFloat struct {
+	OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,proto3,oneof"`
+}
+type TestAllTypes_OneofDouble struct {
+	OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,proto3,oneof"`
+}
+type TestAllTypes_OneofEnum struct {
+	OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,proto3,enum=conformance.TestAllTypes_NestedEnum,oneof"`
+}
+
+func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {}
+func (*TestAllTypes_OneofString) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField()         {}
+func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField()          {}
+func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField()         {}
+func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField()        {}
+func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField()          {}
+
+func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField {
+	if m != nil {
+		return m.OneofField
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt32() int32 {
+	if m != nil {
+		return m.OptionalInt32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalInt64() int64 {
+	if m != nil {
+		return m.OptionalInt64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalUint32() uint32 {
+	if m != nil {
+		return m.OptionalUint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalUint64() uint64 {
+	if m != nil {
+		return m.OptionalUint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSint32() int32 {
+	if m != nil {
+		return m.OptionalSint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSint64() int64 {
+	if m != nil {
+		return m.OptionalSint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFixed32() uint32 {
+	if m != nil {
+		return m.OptionalFixed32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFixed64() uint64 {
+	if m != nil {
+		return m.OptionalFixed64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSfixed32() int32 {
+	if m != nil {
+		return m.OptionalSfixed32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalSfixed64() int64 {
+	if m != nil {
+		return m.OptionalSfixed64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalFloat() float32 {
+	if m != nil {
+		return m.OptionalFloat
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalDouble() float64 {
+	if m != nil {
+		return m.OptionalDouble
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOptionalBool() bool {
+	if m != nil {
+		return m.OptionalBool
+	}
+	return false
+}
+
+func (m *TestAllTypes) GetOptionalString() string {
+	if m != nil {
+		return m.OptionalString
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOptionalBytes() []byte {
+	if m != nil {
+		return m.OptionalBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.OptionalNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage {
+	if m != nil {
+		return m.OptionalForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.OptionalNestedEnum
+	}
+	return TestAllTypes_FOO
+}
+
+func (m *TestAllTypes) GetOptionalForeignEnum() ForeignEnum {
+	if m != nil {
+		return m.OptionalForeignEnum
+	}
+	return ForeignEnum_FOREIGN_FOO
+}
+
+func (m *TestAllTypes) GetOptionalStringPiece() string {
+	if m != nil {
+		return m.OptionalStringPiece
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOptionalCord() string {
+	if m != nil {
+		return m.OptionalCord
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetRecursiveMessage() *TestAllTypes {
+	if m != nil {
+		return m.RecursiveMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt32() []int32 {
+	if m != nil {
+		return m.RepeatedInt32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt64() []int64 {
+	if m != nil {
+		return m.RepeatedInt64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint32() []uint32 {
+	if m != nil {
+		return m.RepeatedUint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint64() []uint64 {
+	if m != nil {
+		return m.RepeatedUint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSint32() []int32 {
+	if m != nil {
+		return m.RepeatedSint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSint64() []int64 {
+	if m != nil {
+		return m.RepeatedSint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFixed32() []uint32 {
+	if m != nil {
+		return m.RepeatedFixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFixed64() []uint64 {
+	if m != nil {
+		return m.RepeatedFixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSfixed32() []int32 {
+	if m != nil {
+		return m.RepeatedSfixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedSfixed64() []int64 {
+	if m != nil {
+		return m.RepeatedSfixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFloat() []float32 {
+	if m != nil {
+		return m.RepeatedFloat
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDouble() []float64 {
+	if m != nil {
+		return m.RepeatedDouble
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBool() []bool {
+	if m != nil {
+		return m.RepeatedBool
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedString() []string {
+	if m != nil {
+		return m.RepeatedString
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBytes() [][]byte {
+	if m != nil {
+		return m.RepeatedBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.RepeatedNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage {
+	if m != nil {
+		return m.RepeatedForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.RepeatedNestedEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum {
+	if m != nil {
+		return m.RepeatedForeignEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStringPiece() []string {
+	if m != nil {
+		return m.RepeatedStringPiece
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedCord() []string {
+	if m != nil {
+		return m.RepeatedCord
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Int32() map[int32]int32 {
+	if m != nil {
+		return m.MapInt32Int32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt64Int64() map[int64]int64 {
+	if m != nil {
+		return m.MapInt64Int64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 {
+	if m != nil {
+		return m.MapUint32Uint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 {
+	if m != nil {
+		return m.MapUint64Uint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSint32Sint32() map[int32]int32 {
+	if m != nil {
+		return m.MapSint32Sint32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSint64Sint64() map[int64]int64 {
+	if m != nil {
+		return m.MapSint64Sint64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 {
+	if m != nil {
+		return m.MapFixed32Fixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 {
+	if m != nil {
+		return m.MapFixed64Fixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 {
+	if m != nil {
+		return m.MapSfixed32Sfixed32
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 {
+	if m != nil {
+		return m.MapSfixed64Sfixed64
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Float() map[int32]float32 {
+	if m != nil {
+		return m.MapInt32Float
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapInt32Double() map[int32]float64 {
+	if m != nil {
+		return m.MapInt32Double
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapBoolBool() map[bool]bool {
+	if m != nil {
+		return m.MapBoolBool
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringString() map[string]string {
+	if m != nil {
+		return m.MapStringString
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringBytes() map[string][]byte {
+	if m != nil {
+		return m.MapStringBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage {
+	if m != nil {
+		return m.MapStringNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringForeignMessage() map[string]*ForeignMessage {
+	if m != nil {
+		return m.MapStringForeignMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum {
+	if m != nil {
+		return m.MapStringNestedEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetMapStringForeignEnum() map[string]ForeignEnum {
+	if m != nil {
+		return m.MapStringForeignEnum
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofUint32() uint32 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint32); ok {
+		return x.OneofUint32
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok {
+		return x.OneofNestedMessage
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofString() string {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofString); ok {
+		return x.OneofString
+	}
+	return ""
+}
+
+func (m *TestAllTypes) GetOneofBytes() []byte {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBytes); ok {
+		return x.OneofBytes
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOneofBool() bool {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBool); ok {
+		return x.OneofBool
+	}
+	return false
+}
+
+func (m *TestAllTypes) GetOneofUint64() uint64 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint64); ok {
+		return x.OneofUint64
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofFloat() float32 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofFloat); ok {
+		return x.OneofFloat
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofDouble() float64 {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofDouble); ok {
+		return x.OneofDouble
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum {
+	if x, ok := m.GetOneofField().(*TestAllTypes_OneofEnum); ok {
+		return x.OneofEnum
+	}
+	return TestAllTypes_FOO
+}
+
+func (m *TestAllTypes) GetOptionalBoolWrapper() *google_protobuf5.BoolValue {
+	if m != nil {
+		return m.OptionalBoolWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt32Wrapper() *google_protobuf5.Int32Value {
+	if m != nil {
+		return m.OptionalInt32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalInt64Wrapper() *google_protobuf5.Int64Value {
+	if m != nil {
+		return m.OptionalInt64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalUint32Wrapper() *google_protobuf5.UInt32Value {
+	if m != nil {
+		return m.OptionalUint32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalUint64Wrapper() *google_protobuf5.UInt64Value {
+	if m != nil {
+		return m.OptionalUint64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalFloatWrapper() *google_protobuf5.FloatValue {
+	if m != nil {
+		return m.OptionalFloatWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalDoubleWrapper() *google_protobuf5.DoubleValue {
+	if m != nil {
+		return m.OptionalDoubleWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalStringWrapper() *google_protobuf5.StringValue {
+	if m != nil {
+		return m.OptionalStringWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalBytesWrapper() *google_protobuf5.BytesValue {
+	if m != nil {
+		return m.OptionalBytesWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBoolWrapper() []*google_protobuf5.BoolValue {
+	if m != nil {
+		return m.RepeatedBoolWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt32Wrapper() []*google_protobuf5.Int32Value {
+	if m != nil {
+		return m.RepeatedInt32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedInt64Wrapper() []*google_protobuf5.Int64Value {
+	if m != nil {
+		return m.RepeatedInt64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint32Wrapper() []*google_protobuf5.UInt32Value {
+	if m != nil {
+		return m.RepeatedUint32Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedUint64Wrapper() []*google_protobuf5.UInt64Value {
+	if m != nil {
+		return m.RepeatedUint64Wrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFloatWrapper() []*google_protobuf5.FloatValue {
+	if m != nil {
+		return m.RepeatedFloatWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDoubleWrapper() []*google_protobuf5.DoubleValue {
+	if m != nil {
+		return m.RepeatedDoubleWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStringWrapper() []*google_protobuf5.StringValue {
+	if m != nil {
+		return m.RepeatedStringWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedBytesWrapper() []*google_protobuf5.BytesValue {
+	if m != nil {
+		return m.RepeatedBytesWrapper
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalDuration() *google_protobuf1.Duration {
+	if m != nil {
+		return m.OptionalDuration
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalTimestamp() *google_protobuf4.Timestamp {
+	if m != nil {
+		return m.OptionalTimestamp
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalFieldMask() *google_protobuf2.FieldMask {
+	if m != nil {
+		return m.OptionalFieldMask
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalStruct() *google_protobuf3.Struct {
+	if m != nil {
+		return m.OptionalStruct
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalAny() *google_protobuf.Any {
+	if m != nil {
+		return m.OptionalAny
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetOptionalValue() *google_protobuf3.Value {
+	if m != nil {
+		return m.OptionalValue
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedDuration() []*google_protobuf1.Duration {
+	if m != nil {
+		return m.RepeatedDuration
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedTimestamp() []*google_protobuf4.Timestamp {
+	if m != nil {
+		return m.RepeatedTimestamp
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedFieldmask() []*google_protobuf2.FieldMask {
+	if m != nil {
+		return m.RepeatedFieldmask
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedStruct() []*google_protobuf3.Struct {
+	if m != nil {
+		return m.RepeatedStruct
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedAny() []*google_protobuf.Any {
+	if m != nil {
+		return m.RepeatedAny
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetRepeatedValue() []*google_protobuf3.Value {
+	if m != nil {
+		return m.RepeatedValue
+	}
+	return nil
+}
+
+func (m *TestAllTypes) GetFieldname1() int32 {
+	if m != nil {
+		return m.Fieldname1
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName2() int32 {
+	if m != nil {
+		return m.FieldName2
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetXFieldName3() int32 {
+	if m != nil {
+		return m.XFieldName3
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name4_() int32 {
+	if m != nil {
+		return m.Field_Name4_
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField0Name5() int32 {
+	if m != nil {
+		return m.Field0Name5
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_0Name6() int32 {
+	if m != nil {
+		return m.Field_0Name6
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName7() int32 {
+	if m != nil {
+		return m.FieldName7
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName8() int32 {
+	if m != nil {
+		return m.FieldName8
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name9() int32 {
+	if m != nil {
+		return m.Field_Name9
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name10() int32 {
+	if m != nil {
+		return m.Field_Name10
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFIELD_NAME11() int32 {
+	if m != nil {
+		return m.FIELD_NAME11
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFIELDName12() int32 {
+	if m != nil {
+		return m.FIELDName12
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetXFieldName13() int32 {
+	if m != nil {
+		return m.XFieldName13
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetX_FieldName14() int32 {
+	if m != nil {
+		return m.X_FieldName14
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField_Name15() int32 {
+	if m != nil {
+		return m.Field_Name15
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetField__Name16() int32 {
+	if m != nil {
+		return m.Field__Name16
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName17__() int32 {
+	if m != nil {
+		return m.FieldName17__
+	}
+	return 0
+}
+
+func (m *TestAllTypes) GetFieldName18__() int32 {
+	if m != nil {
+		return m.FieldName18__
+	}
+	return 0
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*TestAllTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+	return _TestAllTypes_OneofMarshaler, _TestAllTypes_OneofUnmarshaler, _TestAllTypes_OneofSizer, []interface{}{
+		(*TestAllTypes_OneofUint32)(nil),
+		(*TestAllTypes_OneofNestedMessage)(nil),
+		(*TestAllTypes_OneofString)(nil),
+		(*TestAllTypes_OneofBytes)(nil),
+		(*TestAllTypes_OneofBool)(nil),
+		(*TestAllTypes_OneofUint64)(nil),
+		(*TestAllTypes_OneofFloat)(nil),
+		(*TestAllTypes_OneofDouble)(nil),
+		(*TestAllTypes_OneofEnum)(nil),
+	}
+}
+
+func _TestAllTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+	m := msg.(*TestAllTypes)
+	// oneof_field
+	switch x := m.OneofField.(type) {
+	case *TestAllTypes_OneofUint32:
+		_ = b.EncodeVarint(111<<3 | proto.WireVarint)
+		_ = b.EncodeVarint(uint64(x.OneofUint32))
+	case *TestAllTypes_OneofNestedMessage:
+		_ = b.EncodeVarint(112<<3 | proto.WireBytes)
+		if err := b.EncodeMessage(x.OneofNestedMessage); err != nil {
+			return err
+		}
+	case *TestAllTypes_OneofString:
+		_ = b.EncodeVarint(113<<3 | proto.WireBytes)
+		_ = b.EncodeStringBytes(x.OneofString)
+	case *TestAllTypes_OneofBytes:
+		_ = b.EncodeVarint(114<<3 | proto.WireBytes)
+		_ = b.EncodeRawBytes(x.OneofBytes)
+	case *TestAllTypes_OneofBool:
+		t := uint64(0)
+		if x.OneofBool {
+			t = 1
+		}
+		_ = b.EncodeVarint(115<<3 | proto.WireVarint)
+		_ = b.EncodeVarint(t)
+	case *TestAllTypes_OneofUint64:
+		_ = b.EncodeVarint(116<<3 | proto.WireVarint)
+		_ = b.EncodeVarint(uint64(x.OneofUint64))
+	case *TestAllTypes_OneofFloat:
+		_ = b.EncodeVarint(117<<3 | proto.WireFixed32)
+		_ = b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat)))
+	case *TestAllTypes_OneofDouble:
+		_ = b.EncodeVarint(118<<3 | proto.WireFixed64)
+		_ = b.EncodeFixed64(math.Float64bits(x.OneofDouble))
+	case *TestAllTypes_OneofEnum:
+		_ = b.EncodeVarint(119<<3 | proto.WireVarint)
+		_ = b.EncodeVarint(uint64(x.OneofEnum))
+	case nil:
+	default:
+		return fmt.Errorf("TestAllTypes.OneofField has unexpected type %T", x)
+	}
+	return nil
+}
+
+func _TestAllTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+	m := msg.(*TestAllTypes)
+	switch tag {
+	case 111: // oneof_field.oneof_uint32
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofUint32{uint32(x)}
+		return true, err
+	case 112: // oneof_field.oneof_nested_message
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		msg := new(TestAllTypes_NestedMessage)
+		err := b.DecodeMessage(msg)
+		m.OneofField = &TestAllTypes_OneofNestedMessage{msg}
+		return true, err
+	case 113: // oneof_field.oneof_string
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeStringBytes()
+		m.OneofField = &TestAllTypes_OneofString{x}
+		return true, err
+	case 114: // oneof_field.oneof_bytes
+		if wire != proto.WireBytes {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeRawBytes(true)
+		m.OneofField = &TestAllTypes_OneofBytes{x}
+		return true, err
+	case 115: // oneof_field.oneof_bool
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofBool{x != 0}
+		return true, err
+	case 116: // oneof_field.oneof_uint64
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofUint64{x}
+		return true, err
+	case 117: // oneof_field.oneof_float
+		if wire != proto.WireFixed32 {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeFixed32()
+		m.OneofField = &TestAllTypes_OneofFloat{math.Float32frombits(uint32(x))}
+		return true, err
+	case 118: // oneof_field.oneof_double
+		if wire != proto.WireFixed64 {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeFixed64()
+		m.OneofField = &TestAllTypes_OneofDouble{math.Float64frombits(x)}
+		return true, err
+	case 119: // oneof_field.oneof_enum
+		if wire != proto.WireVarint {
+			return true, proto.ErrInternalBadWireType
+		}
+		x, err := b.DecodeVarint()
+		m.OneofField = &TestAllTypes_OneofEnum{TestAllTypes_NestedEnum(x)}
+		return true, err
+	default:
+		return false, nil
+	}
+}
+
+func _TestAllTypes_OneofSizer(msg proto.Message) (n int) {
+	m := msg.(*TestAllTypes)
+	// oneof_field
+	switch x := m.OneofField.(type) {
+	case *TestAllTypes_OneofUint32:
+		n += proto.SizeVarint(111<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofUint32))
+	case *TestAllTypes_OneofNestedMessage:
+		s := proto.Size(x.OneofNestedMessage)
+		n += proto.SizeVarint(112<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(s))
+		n += s
+	case *TestAllTypes_OneofString:
+		n += proto.SizeVarint(113<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.OneofString)))
+		n += len(x.OneofString)
+	case *TestAllTypes_OneofBytes:
+		n += proto.SizeVarint(114<<3 | proto.WireBytes)
+		n += proto.SizeVarint(uint64(len(x.OneofBytes)))
+		n += len(x.OneofBytes)
+	case *TestAllTypes_OneofBool:
+		n += proto.SizeVarint(115<<3 | proto.WireVarint)
+		n += 1
+	case *TestAllTypes_OneofUint64:
+		n += proto.SizeVarint(116<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofUint64))
+	case *TestAllTypes_OneofFloat:
+		n += proto.SizeVarint(117<<3 | proto.WireFixed32)
+		n += 4
+	case *TestAllTypes_OneofDouble:
+		n += proto.SizeVarint(118<<3 | proto.WireFixed64)
+		n += 8
+	case *TestAllTypes_OneofEnum:
+		n += proto.SizeVarint(119<<3 | proto.WireVarint)
+		n += proto.SizeVarint(uint64(x.OneofEnum))
+	case nil:
+	default:
+		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+	}
+	return n
+}
+
+type TestAllTypes_NestedMessage struct {
+	A           int32         `protobuf:"varint,1,opt,name=a,proto3" json:"a,omitempty"`
+	Corecursive *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"`
+}
+
+func (m *TestAllTypes_NestedMessage) Reset()         { *m = TestAllTypes_NestedMessage{} }
+func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) }
+func (*TestAllTypes_NestedMessage) ProtoMessage()    {}
+func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) {
+	return fileDescriptorConformance, []int{2, 0}
+}
+
+func (m *TestAllTypes_NestedMessage) GetA() int32 {
+	if m != nil {
+		return m.A
+	}
+	return 0
+}
+
+func (m *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes {
+	if m != nil {
+		return m.Corecursive
+	}
+	return nil
+}
+
+type ForeignMessage struct {
+	C int32 `protobuf:"varint,1,opt,name=c,proto3" json:"c,omitempty"`
+}
+
+func (m *ForeignMessage) Reset()                    { *m = ForeignMessage{} }
+func (m *ForeignMessage) String() string            { return proto.CompactTextString(m) }
+func (*ForeignMessage) ProtoMessage()               {}
+func (*ForeignMessage) Descriptor() ([]byte, []int) { return fileDescriptorConformance, []int{3} }
+
+func (m *ForeignMessage) GetC() int32 {
+	if m != nil {
+		return m.C
+	}
+	return 0
+}
+
+func init() {
+	proto.RegisterType((*ConformanceRequest)(nil), "conformance.ConformanceRequest")
+	proto.RegisterType((*ConformanceResponse)(nil), "conformance.ConformanceResponse")
+	proto.RegisterType((*TestAllTypes)(nil), "conformance.TestAllTypes")
+	proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "conformance.TestAllTypes.NestedMessage")
+	proto.RegisterType((*ForeignMessage)(nil), "conformance.ForeignMessage")
+	proto.RegisterEnum("conformance.WireFormat", WireFormat_name, WireFormat_value)
+	proto.RegisterEnum("conformance.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
+	proto.RegisterEnum("conformance.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
+}
+
+func init() { proto.RegisterFile("conformance_proto/conformance.proto", fileDescriptorConformance) }
+
+var fileDescriptorConformance = []byte{
+	// 2737 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xd9, 0x72, 0xdb, 0xc8,
+	0xd5, 0x16, 0x08, 0x59, 0x4b, 0x93, 0x92, 0xa8, 0xd6, 0xd6, 0x96, 0x5d, 0x63, 0x58, 0xb2, 0x7f,
+	0xd3, 0xf6, 0x8c, 0xac, 0x05, 0x86, 0x65, 0xcf, 0x3f, 0x8e, 0x45, 0x9b, 0xb4, 0xe4, 0x8c, 0x25,
+	0x17, 0x64, 0x8d, 0xab, 0x9c, 0x0b, 0x06, 0xa6, 0x20, 0x15, 0xc7, 0x24, 0xc1, 0x01, 0x48, 0x4f,
+	0x94, 0xcb, 0xbc, 0x41, 0xf6, 0x7d, 0xbd, 0xcf, 0x7a, 0x93, 0xa4, 0x92, 0xab, 0x54, 0x6e, 0xb2,
+	0x27, 0x95, 0x3d, 0x79, 0x85, 0xbc, 0x43, 0x52, 0xbd, 0xa2, 0xbb, 0x01, 0x50, 0xf4, 0x54, 0x0d,
+	0x25, 0x1e, 0x7c, 0xfd, 0x9d, 0xd3, 0xe7, 0x1c, 0x7c, 0x2d, 0x1c, 0x18, 0x2c, 0xd7, 0x83, 0xf6,
+	0x51, 0x10, 0xb6, 0xbc, 0x76, 0xdd, 0xaf, 0x75, 0xc2, 0xa0, 0x1b, 0xdc, 0x90, 0x2c, 0x2b, 0xc4,
+	0x02, 0xf3, 0x92, 0x69, 0xf1, 0xec, 0x71, 0x10, 0x1c, 0x37, 0xfd, 0x1b, 0xe4, 0xd2, 0x8b, 0xde,
+	0xd1, 0x0d, 0xaf, 0x7d, 0x42, 0x71, 0x8b, 0x6f, 0xe8, 0x97, 0x0e, 0x7b, 0xa1, 0xd7, 0x6d, 0x04,
+	0x6d, 0x76, 0xdd, 0xd2, 0xaf, 0x1f, 0x35, 0xfc, 0xe6, 0x61, 0xad, 0xe5, 0x45, 0x2f, 0x19, 0xe2,
+	0xbc, 0x8e, 0x88, 0xba, 0x61, 0xaf, 0xde, 0x65, 0x57, 0x2f, 0xe8, 0x57, 0xbb, 0x8d, 0x96, 0x1f,
+	0x75, 0xbd, 0x56, 0x27, 0x2b, 0x80, 0x0f, 0x43, 0xaf, 0xd3, 0xf1, 0xc3, 0x88, 0x5e, 0x5f, 0xfa,
+	0x85, 0x01, 0xe0, 0xfd, 0x78, 0x2f, 0xae, 0xff, 0x41, 0xcf, 0x8f, 0xba, 0xf0, 0x3a, 0x28, 0xf2,
+	0x15, 0xb5, 0x8e, 0x77, 0xd2, 0x0c, 0xbc, 0x43, 0x64, 0x58, 0x46, 0xa9, 0xb0, 0x3d, 0xe4, 0x4e,
+	0xf1, 0x2b, 0x4f, 0xe8, 0x05, 0xb8, 0x0c, 0x0a, 0xef, 0x47, 0x41, 0x5b, 0x00, 0x73, 0x96, 0x51,
+	0x1a, 0xdf, 0x1e, 0x72, 0xf3, 0xd8, 0xca, 0x41, 0x7b, 0x60, 0x21, 0xa4, 0xe4, 0xfe, 0x61, 0x2d,
+	0xe8, 0x75, 0x3b, 0xbd, 0x6e, 0x8d, 0x78, 0xed, 0x22, 0xd3, 0x32, 0x4a, 0x93, 0xeb, 0x0b, 0x2b,
+	0x72, 0x9a, 0x9f, 0x35, 0x42, 0xbf, 0x4a, 0x2e, 0xbb, 0x73, 0x62, 0xdd, 0x1e, 0x59, 0x46, 0xcd,
+	0xe5, 0x71, 0x30, 0xca, 0x1c, 0x2e, 0x7d, 0x2a, 0x07, 0x66, 0x94, 0x4d, 0x44, 0x9d, 0xa0, 0x1d,
+	0xf9, 0xf0, 0x22, 0xc8, 0x77, 0xbc, 0x30, 0xf2, 0x6b, 0x7e, 0x18, 0x06, 0x21, 0xd9, 0x00, 0x8e,
+	0x0b, 0x10, 0x63, 0x05, 0xdb, 0xe0, 0x55, 0x30, 0x15, 0xf9, 0x61, 0xc3, 0x6b, 0x36, 0x3e, 0xc9,
+	0x61, 0x23, 0x0c, 0x36, 0x29, 0x2e, 0x50, 0xe8, 0x65, 0x30, 0x11, 0xf6, 0xda, 0x38, 0xc1, 0x0c,
+	0xc8, 0xf7, 0x59, 0x60, 0x66, 0x0a, 0x4b, 0x4b, 0x9d, 0x39, 0x68, 0xea, 0x86, 0xd3, 0x52, 0xb7,
+	0x08, 0x46, 0xa3, 0x97, 0x8d, 0x4e, 0xc7, 0x3f, 0x44, 0x67, 0xd8, 0x75, 0x6e, 0x28, 0x8f, 0x81,
+	0x91, 0xd0, 0x8f, 0x7a, 0xcd, 0xee, 0xd2, 0x7f, 0xaa, 0xa0, 0xf0, 0xd4, 0x8f, 0xba, 0x5b, 0xcd,
+	0xe6, 0xd3, 0x93, 0x8e, 0x1f, 0xc1, 0xcb, 0x60, 0x32, 0xe8, 0xe0, 0x5e, 0xf3, 0x9a, 0xb5, 0x46,
+	0xbb, 0xbb, 0xb1, 0x4e, 0x12, 0x70, 0xc6, 0x9d, 0xe0, 0xd6, 0x1d, 0x6c, 0xd4, 0x61, 0x8e, 0x4d,
+	0xf6, 0x65, 0x2a, 0x30, 0xc7, 0x86, 0x57, 0xc0, 0x94, 0x80, 0xf5, 0x28, 0x1d, 0xde, 0xd5, 0x84,
+	0x2b, 0x56, 0x1f, 0x10, 0x6b, 0x02, 0xe8, 0xd8, 0x64, 0x57, 0xc3, 0x2a, 0x50, 0x63, 0x8c, 0x28,
+	0x23, 0xde, 0xde, 0x74, 0x0c, 0xdc, 0x4f, 0x32, 0x46, 0x94, 0x11, 0xd7, 0x08, 0xaa, 0x40, 0xc7,
+	0x86, 0x57, 0x41, 0x51, 0x00, 0x8f, 0x1a, 0x9f, 0xf0, 0x0f, 0x37, 0xd6, 0xd1, 0xa8, 0x65, 0x94,
+	0x46, 0x5d, 0x41, 0x50, 0xa5, 0xe6, 0x24, 0xd4, 0xb1, 0xd1, 0x98, 0x65, 0x94, 0x46, 0x34, 0xa8,
+	0x63, 0xc3, 0xeb, 0x60, 0x3a, 0x76, 0xcf, 0x69, 0xc7, 0x2d, 0xa3, 0x34, 0xe5, 0x0a, 0x8e, 0x7d,
+	0x66, 0x4f, 0x01, 0x3b, 0x36, 0x02, 0x96, 0x51, 0x2a, 0xea, 0x60, 0xc7, 0x56, 0x52, 0x7f, 0xd4,
+	0x0c, 0xbc, 0x2e, 0xca, 0x5b, 0x46, 0x29, 0x17, 0xa7, 0xbe, 0x8a, 0x8d, 0xca, 0xfe, 0x0f, 0x83,
+	0xde, 0x8b, 0xa6, 0x8f, 0x0a, 0x96, 0x51, 0x32, 0xe2, 0xfd, 0x3f, 0x20, 0x56, 0xb8, 0x0c, 0xc4,
+	0xca, 0xda, 0x8b, 0x20, 0x68, 0xa2, 0x09, 0xcb, 0x28, 0x8d, 0xb9, 0x05, 0x6e, 0x2c, 0x07, 0x41,
+	0x53, 0xcd, 0x66, 0x37, 0x6c, 0xb4, 0x8f, 0xd1, 0x24, 0xee, 0x2a, 0x29, 0x9b, 0xc4, 0xaa, 0x44,
+	0xf7, 0xe2, 0xa4, 0xeb, 0x47, 0x68, 0x0a, 0xb7, 0x71, 0x1c, 0x5d, 0x19, 0x1b, 0x61, 0x0d, 0x2c,
+	0x08, 0x58, 0x9b, 0xde, 0xde, 0x2d, 0x3f, 0x8a, 0xbc, 0x63, 0x1f, 0x41, 0xcb, 0x28, 0xe5, 0xd7,
+	0xaf, 0x28, 0x37, 0xb6, 0xdc, 0xa2, 0x2b, 0xbb, 0x04, 0xff, 0x98, 0xc2, 0xdd, 0x39, 0xce, 0xa3,
+	0x98, 0xe1, 0x01, 0x40, 0x71, 0x96, 0x82, 0xd0, 0x6f, 0x1c, 0xb7, 0x85, 0x87, 0x19, 0xe2, 0xe1,
+	0x9c, 0xe2, 0xa1, 0x4a, 0x31, 0x9c, 0x75, 0x5e, 0x24, 0x53, 0xb1, 0xc3, 0xf7, 0xc0, 0xac, 0x1e,
+	0xb7, 0xdf, 0xee, 0xb5, 0xd0, 0x1c, 0x51, 0xa3, 0x4b, 0xa7, 0x05, 0x5d, 0x69, 0xf7, 0x5a, 0x2e,
+	0x54, 0x23, 0xc6, 0x36, 0xf8, 0x2e, 0x98, 0x4b, 0x84, 0x4b, 0x88, 0xe7, 0x09, 0x31, 0x4a, 0x8b,
+	0x95, 0x90, 0xcd, 0x68, 0x81, 0x12, 0x36, 0x47, 0x62, 0xa3, 0xd5, 0xaa, 0x75, 0x1a, 0x7e, 0xdd,
+	0x47, 0x08, 0xd7, 0xac, 0x9c, 0x1b, 0xcb, 0xc5, 0xeb, 0x68, 0xdd, 0x9e, 0xe0, 0xcb, 0xf0, 0x8a,
+	0xd4, 0x0a, 0xf5, 0x20, 0x3c, 0x44, 0x67, 0x19, 0xde, 0x88, 0xdb, 0xe1, 0x7e, 0x10, 0x1e, 0xc2,
+	0x2a, 0x98, 0x0e, 0xfd, 0x7a, 0x2f, 0x8c, 0x1a, 0xaf, 0x7c, 0x91, 0xd6, 0x73, 0x24, 0xad, 0x67,
+	0x33, 0x73, 0xe0, 0x16, 0xc5, 0x1a, 0x9e, 0xce, 0xcb, 0x60, 0x32, 0xf4, 0x3b, 0xbe, 0x87, 0xf3,
+	0x48, 0x6f, 0xe6, 0x0b, 0x96, 0x89, 0xd5, 0x86, 0x5b, 0x85, 0xda, 0xc8, 0x30, 0xc7, 0x46, 0x96,
+	0x65, 0x62, 0xb5, 0x91, 0x60, 0x54, 0x1b, 0x04, 0x8c, 0xa9, 0xcd, 0x45, 0xcb, 0xc4, 0x6a, 0xc3,
+	0xcd, 0xb1, 0xda, 0x28, 0x40, 0xc7, 0x46, 0x4b, 0x96, 0x89, 0xd5, 0x46, 0x06, 0x6a, 0x8c, 0x4c,
+	0x6d, 0x96, 0x2d, 0x13, 0xab, 0x0d, 0x37, 0xef, 0x27, 0x19, 0x99, 0xda, 0x5c, 0xb2, 0x4c, 0xac,
+	0x36, 0x32, 0x90, 0xaa, 0x8d, 0x00, 0x72, 0x59, 0xb8, 0x6c, 0x99, 0x58, 0x6d, 0xb8, 0x5d, 0x52,
+	0x1b, 0x15, 0xea, 0xd8, 0xe8, 0xff, 0x2c, 0x13, 0xab, 0x8d, 0x02, 0xa5, 0x6a, 0x13, 0xbb, 0xe7,
+	0xb4, 0x57, 0x2c, 0x13, 0xab, 0x8d, 0x08, 0x40, 0x52, 0x1b, 0x0d, 0xec, 0xd8, 0xa8, 0x64, 0x99,
+	0x58, 0x6d, 0x54, 0x30, 0x55, 0x9b, 0x38, 0x08, 0xa2, 0x36, 0x57, 0x2d, 0x13, 0xab, 0x8d, 0x08,
+	0x81, 0xab, 0x8d, 0x80, 0x31, 0xb5, 0xb9, 0x66, 0x99, 0x58, 0x6d, 0xb8, 0x39, 0x56, 0x1b, 0x01,
+	0x24, 0x6a, 0x73, 0xdd, 0x32, 0xb1, 0xda, 0x70, 0x23, 0x57, 0x9b, 0x38, 0x42, 0xaa, 0x36, 0x6f,
+	0x5a, 0x26, 0x56, 0x1b, 0x11, 0x9f, 0x50, 0x9b, 0x98, 0x8d, 0xa8, 0xcd, 0x5b, 0x96, 0x89, 0xd5,
+	0x46, 0xd0, 0x71, 0xb5, 0x11, 0x30, 0x4d, 0x6d, 0x56, 0x2d, 0xf3, 0xb5, 0xd4, 0x86, 0xf3, 0x24,
+	0xd4, 0x26, 0xce, 0x92, 0xa6, 0x36, 0x6b, 0xc4, 0x43, 0x7f, 0xb5, 0x11, 0xc9, 0x4c, 0xa8, 0x8d,
+	0x1e, 0x37, 0x11, 0x85, 0x0d, 0xcb, 0x1c, 0x5c, 0x6d, 0xd4, 0x88, 0xb9, 0xda, 0x24, 0xc2, 0x25,
+	0xc4, 0x36, 0x21, 0xee, 0xa3, 0x36, 0x5a, 0xa0, 0x5c, 0x6d, 0xb4, 0x6a, 0x31, 0xb5, 0x71, 0x70,
+	0xcd, 0xa8, 0xda, 0xa8, 0x75, 0x13, 0x6a, 0x23, 0xd6, 0x11, 0xb5, 0xb9, 0xc5, 0xf0, 0x46, 0xdc,
+	0x0e, 0x44, 0x6d, 0x9e, 0x82, 0xa9, 0x96, 0xd7, 0xa1, 0x02, 0xc1, 0x64, 0x62, 0x93, 0x24, 0xf5,
+	0xcd, 0xec, 0x0c, 0x3c, 0xf6, 0x3a, 0x44, 0x3b, 0xc8, 0x47, 0xa5, 0xdd, 0x0d, 0x4f, 0xdc, 0x89,
+	0x96, 0x6c, 0x93, 0x58, 0x1d, 0x9b, 0xa9, 0xca, 0xed, 0xc1, 0x58, 0x1d, 0x9b, 0x7c, 0x28, 0xac,
+	0xcc, 0x06, 0x9f, 0x83, 0x69, 0xcc, 0x4a, 0xe5, 0x87, 0xab, 0xd0, 0x1d, 0xc2, 0xbb, 0xd2, 0x97,
+	0x97, 0x4a, 0x13, 0xfd, 0xa4, 0xcc, 0x38, 0x3c, 0xd9, 0x2a, 0x73, 0x3b, 0x36, 0x17, 0xae, 0xb7,
+	0x07, 0xe4, 0x76, 0x6c, 0xfa, 0xa9, 0x72, 0x73, 0x2b, 0xe7, 0xa6, 0x22, 0xc7, 0xb5, 0xee, 0xff,
+	0x07, 0xe0, 0xa6, 0x02, 0xb8, 0xaf, 0xc5, 0x2d, 0x5b, 0x65, 0x6e, 0xc7, 0xe6, 0xf2, 0xf8, 0xce,
+	0x80, 0xdc, 0x8e, 0xbd, 0xaf, 0xc5, 0x2d, 0x5b, 0xe1, 0xc7, 0xc1, 0x0c, 0xe6, 0x66, 0xda, 0x26,
+	0x24, 0xf5, 0x2e, 0x61, 0x5f, 0xed, 0xcb, 0xce, 0x74, 0x96, 0xfd, 0xa0, 0xfc, 0x38, 0x50, 0xd5,
+	0xae, 0x78, 0x70, 0x6c, 0xa1, 0xc4, 0x1f, 0x19, 0xd4, 0x83, 0x63, 0xb3, 0x1f, 0x9a, 0x07, 0x61,
+	0x87, 0x47, 0x60, 0x8e, 0xe4, 0x87, 0x6f, 0x42, 0x28, 0xf8, 0x3d, 0xe2, 0x63, 0xbd, 0x7f, 0x8e,
+	0x18, 0x98, 0xff, 0xa4, 0x5e, 0x70, 0xc8, 0xfa, 0x15, 0xd5, 0x0f, 0xae, 0x04, 0xdf, 0xcb, 0xd6,
+	0xc0, 0x7e, 0x1c, 0x9b, 0xff, 0xd4, 0xfd, 0xc4, 0x57, 0xd4, 0xfb, 0x95, 0x1e, 0x1a, 0xe5, 0x41,
+	0xef, 0x57, 0x72, 0x9c, 0x68, 0xf7, 0x2b, 0x3d, 0x62, 0x9e, 0x81, 0x62, 0xcc, 0xca, 0xce, 0x98,
+	0xfb, 0x84, 0xf6, 0xad, 0xd3, 0x69, 0xe9, 0xe9, 0x43, 0x79, 0x27, 0x5b, 0x8a, 0x11, 0xee, 0x02,
+	0xec, 0x89, 0x9c, 0x46, 0xf4, 0x48, 0x7a, 0x40, 0x58, 0xaf, 0xf5, 0x65, 0xc5, 0xe7, 0x14, 0xfe,
+	0x9f, 0x52, 0xe6, 0x5b, 0xb1, 0x45, 0xb4, 0x3b, 0x95, 0x42, 0x76, 0x7e, 0x55, 0x06, 0x69, 0x77,
+	0x02, 0xa5, 0x9f, 0x52, 0xbb, 0x4b, 0x56, 0x9e, 0x04, 0xc6, 0x4d, 0x8f, 0xbc, 0xea, 0x00, 0x49,
+	0xa0, 0xcb, 0xc9, 0x69, 0x18, 0x27, 0x41, 0x32, 0xc2, 0x0e, 0x38, 0x2b, 0x11, 0x6b, 0x87, 0xe4,
+	0x43, 0xe2, 0xe1, 0xe6, 0x00, 0x1e, 0x94, 0x63, 0x91, 0x7a, 0x9a, 0x6f, 0xa5, 0x5e, 0x84, 0x11,
+	0x58, 0x94, 0x3c, 0xea, 0xa7, 0xe6, 0x36, 0x71, 0xe9, 0x0c, 0xe0, 0x52, 0x3d, 0x33, 0xa9, 0xcf,
+	0x85, 0x56, 0xfa, 0x55, 0x78, 0x0c, 0xe6, 0x93, 0xdb, 0x24, 0x47, 0xdf, 0xce, 0x20, 0xf7, 0x80,
+	0xb4, 0x0d, 0x7c, 0xf4, 0x49, 0xf7, 0x80, 0x76, 0x05, 0xbe, 0x0f, 0x16, 0x52, 0x76, 0x47, 0x3c,
+	0x3d, 0x22, 0x9e, 0x36, 0x06, 0xdf, 0x5a, 0xec, 0x6a, 0xb6, 0x95, 0x72, 0x09, 0x2e, 0x83, 0x42,
+	0xd0, 0xf6, 0x83, 0x23, 0x7e, 0xdc, 0x04, 0xf8, 0x11, 0x7b, 0x7b, 0xc8, 0xcd, 0x13, 0x2b, 0x3b,
+	0x3c, 0x3e, 0x06, 0x66, 0x29, 0x48, 0xab, 0x6d, 0xe7, 0xb5, 0x1e, 0xb7, 0xb6, 0x87, 0x5c, 0x48,
+	0x68, 0xd4, 0x5a, 0x8a, 0x08, 0x58, 0xb7, 0x7f, 0xc0, 0x27, 0x12, 0xc4, 0xca, 0x7a, 0xf7, 0x22,
+	0xa0, 0x5f, 0x59, 0xdb, 0x86, 0x6c, 0xbc, 0x01, 0x88, 0x91, 0x76, 0xe1, 0x05, 0x00, 0x18, 0x04,
+	0xdf, 0x87, 0x11, 0x7e, 0x10, 0xdd, 0x1e, 0x72, 0xc7, 0x29, 0x02, 0xdf, 0x5b, 0xca, 0x56, 0x1d,
+	0x1b, 0x75, 0x2d, 0xa3, 0x34, 0xac, 0x6c, 0xd5, 0xb1, 0x63, 0x47, 0x54, 0x7b, 0x7a, 0xf8, 0xf1,
+	0x58, 0x38, 0xa2, 0x62, 0x22, 0x78, 0x98, 0x90, 0xbc, 0xc2, 0x8f, 0xc6, 0x82, 0x87, 0x09, 0x43,
+	0x85, 0x47, 0x43, 0xca, 0xf6, 0xe1, 0xe0, 0x8f, 0x78, 0x22, 0x66, 0x52, 0x9e, 0x3d, 0xe9, 0x69,
+	0x8c, 0x88, 0x0c, 0x9b, 0xa6, 0xa1, 0x5f, 0x19, 0x24, 0xf7, 0x8b, 0x2b, 0x74, 0xdc, 0xb6, 0xc2,
+	0xe7, 0x3c, 0x2b, 0x78, 0xab, 0xef, 0x79, 0xcd, 0x9e, 0x1f, 0x3f, 0xa6, 0x61, 0xd3, 0x33, 0xba,
+	0x0e, 0xba, 0x60, 0x5e, 0x9d, 0xd1, 0x08, 0xc6, 0x5f, 0x1b, 0xec, 0xd1, 0x56, 0x67, 0x24, 0x7a,
+	0x47, 0x29, 0x67, 0x95, 0x49, 0x4e, 0x06, 0xa7, 0x63, 0x0b, 0xce, 0xdf, 0xf4, 0xe1, 0x74, 0xec,
+	0x24, 0xa7, 0x63, 0x73, 0xce, 0x03, 0xe9, 0x21, 0xbf, 0xa7, 0x06, 0xfa, 0x5b, 0x4a, 0x7a, 0x3e,
+	0x41, 0x7a, 0x20, 0x45, 0x3a, 0xa7, 0x0e, 0x89, 0xb2, 0x68, 0xa5, 0x58, 0x7f, 0xd7, 0x8f, 0x96,
+	0x07, 0x3b, 0xa7, 0x8e, 0x94, 0xd2, 0x32, 0x40, 0x1a, 0x47, 0xb0, 0xfe, 0x3e, 0x2b, 0x03, 0xa4,
+	0x97, 0xb4, 0x0c, 0x10, 0x5b, 0x5a, 0xa8, 0xb4, 0xd3, 0x04, 0xe9, 0x1f, 0xb2, 0x42, 0xa5, 0xcd,
+	0xa7, 0x85, 0x4a, 0x8d, 0x69, 0xb4, 0x4c, 0x61, 0x38, 0xed, 0x1f, 0xb3, 0x68, 0xe9, 0x4d, 0xa8,
+	0xd1, 0x52, 0x63, 0x5a, 0x06, 0xc8, 0x3d, 0x2a, 0x58, 0xff, 0x94, 0x95, 0x01, 0x72, 0xdb, 0x6a,
+	0x19, 0x20, 0x36, 0xce, 0xb9, 0x27, 0x3d, 0x1c, 0x28, 0xcd, 0xff, 0x67, 0x83, 0xc8, 0x60, 0xdf,
+	0xe6, 0x97, 0x1f, 0x0a, 0xa5, 0x20, 0xd5, 0x91, 0x81, 0x60, 0xfc, 0x8b, 0xc1, 0x9e, 0xb4, 0xfa,
+	0x35, 0xbf, 0x32, 0x58, 0xc8, 0xe0, 0x94, 0x1a, 0xea, 0xaf, 0x7d, 0x38, 0x45, 0xf3, 0x2b, 0x53,
+	0x08, 0xa9, 0x46, 0xda, 0x30, 0x42, 0x90, 0xfe, 0x8d, 0x92, 0x9e, 0xd2, 0xfc, 0xea, 0xcc, 0x22,
+	0x8b, 0x56, 0x8a, 0xf5, 0xef, 0xfd, 0x68, 0x45, 0xf3, 0xab, 0x13, 0x8e, 0xb4, 0x0c, 0xa8, 0xcd,
+	0xff, 0x8f, 0xac, 0x0c, 0xc8, 0xcd, 0xaf, 0x0c, 0x03, 0xd2, 0x42, 0xd5, 0x9a, 0xff, 0x9f, 0x59,
+	0xa1, 0x2a, 0xcd, 0xaf, 0x8e, 0x0e, 0xd2, 0x68, 0xb5, 0xe6, 0xff, 0x57, 0x16, 0xad, 0xd2, 0xfc,
+	0xea, 0xb3, 0x68, 0x5a, 0x06, 0xd4, 0xe6, 0xff, 0x77, 0x56, 0x06, 0xe4, 0xe6, 0x57, 0x06, 0x0e,
+	0x9c, 0xf3, 0xa1, 0x34, 0xd7, 0xe5, 0xef, 0x70, 0xd0, 0x77, 0x73, 0x6c, 0x4e, 0x96, 0xd8, 0x3b,
+	0x43, 0xc4, 0x33, 0x5f, 0x6e, 0x81, 0x8f, 0x80, 0x18, 0x1a, 0xd6, 0xc4, 0xcb, 0x1a, 0xf4, 0xbd,
+	0x5c, 0xc6, 0xf9, 0xf1, 0x94, 0x43, 0x5c, 0xe1, 0x5f, 0x98, 0xe0, 0x47, 0xc1, 0x8c, 0x34, 0xc4,
+	0xe6, 0x2f, 0x8e, 0xd0, 0xf7, 0xb3, 0xc8, 0xaa, 0x18, 0xf3, 0xd8, 0x8b, 0x5e, 0xc6, 0x64, 0xc2,
+	0x04, 0xb7, 0xd4, 0xb9, 0x70, 0xaf, 0xde, 0x45, 0x3f, 0xa0, 0x44, 0x0b, 0x69, 0x45, 0xe8, 0xd5,
+	0xbb, 0xca, 0xc4, 0xb8, 0x57, 0xef, 0xc2, 0x4d, 0x20, 0x66, 0x8b, 0x35, 0xaf, 0x7d, 0x82, 0x7e,
+	0x48, 0xd7, 0xcf, 0x26, 0xd6, 0x6f, 0xb5, 0x4f, 0xdc, 0x3c, 0x87, 0x6e, 0xb5, 0x4f, 0xe0, 0x5d,
+	0x69, 0xd6, 0xfc, 0x0a, 0x97, 0x01, 0xfd, 0x88, 0xae, 0x9d, 0x4f, 0xac, 0xa5, 0x55, 0x12, 0xd3,
+	0x4d, 0xf2, 0x15, 0x97, 0x27, 0x6e, 0x50, 0x5e, 0x9e, 0x1f, 0xe7, 0x48, 0xb5, 0xfb, 0x95, 0x47,
+	0xf4, 0xa5, 0x54, 0x1e, 0x41, 0x14, 0x97, 0xe7, 0x27, 0xb9, 0x0c, 0x85, 0x93, 0xca, 0xc3, 0x97,
+	0xc5, 0xe5, 0x91, 0xb9, 0x48, 0x79, 0x48, 0x75, 0x7e, 0x9a, 0xc5, 0x25, 0x55, 0x27, 0x1e, 0x0a,
+	0xb2, 0x55, 0xb8, 0x3a, 0xf2, 0xad, 0x82, 0xab, 0xf3, 0x4b, 0x4a, 0x94, 0x5d, 0x1d, 0xe9, 0xee,
+	0x60, 0xd5, 0x11, 0x14, 0xb8, 0x3a, 0x3f, 0xa3, 0xeb, 0x33, 0xaa, 0xc3, 0xa1, 0xac, 0x3a, 0x62,
+	0x25, 0xad, 0xce, 0xcf, 0xe9, 0xda, 0xcc, 0xea, 0x70, 0x38, 0xad, 0xce, 0x05, 0x00, 0xc8, 0xfe,
+	0xdb, 0x5e, 0xcb, 0x5f, 0x43, 0x9f, 0x36, 0xc9, 0x6b, 0x28, 0xc9, 0x04, 0x2d, 0x90, 0xa7, 0xfd,
+	0x8b, 0xbf, 0xae, 0xa3, 0xcf, 0xc8, 0x88, 0x5d, 0x6c, 0x82, 0x17, 0x41, 0xa1, 0x16, 0x43, 0x36,
+	0xd0, 0x67, 0x19, 0xa4, 0xca, 0x21, 0x1b, 0x70, 0x09, 0x4c, 0x50, 0x04, 0x81, 0xd8, 0x35, 0xf4,
+	0x39, 0x9d, 0x86, 0xfc, 0x3d, 0x49, 0xbe, 0xad, 0x62, 0xc8, 0x4d, 0xf4, 0x79, 0x8a, 0x90, 0x6d,
+	0x70, 0x99, 0xd3, 0xac, 0x12, 0x1e, 0x07, 0x7d, 0x41, 0x01, 0x61, 0x1e, 0x47, 0xec, 0x08, 0x7f,
+	0xbb, 0x85, 0xbe, 0xa8, 0x3b, 0xba, 0x85, 0x01, 0x22, 0xb4, 0x4d, 0xf4, 0x25, 0x3d, 0xda, 0xcd,
+	0x78, 0xcb, 0xf8, 0xeb, 0x6d, 0xf4, 0x65, 0x9d, 0xe2, 0x36, 0x5c, 0x02, 0x85, 0xaa, 0x40, 0xac,
+	0xad, 0xa2, 0xaf, 0xb0, 0x38, 0x04, 0xc9, 0xda, 0x2a, 0xc1, 0xec, 0x54, 0xde, 0x7d, 0x50, 0xdb,
+	0xdd, 0x7a, 0x5c, 0x59, 0x5b, 0x43, 0x5f, 0xe5, 0x18, 0x6c, 0xa4, 0xb6, 0x18, 0x43, 0x72, 0xbd,
+	0x8e, 0xbe, 0xa6, 0x60, 0x88, 0x0d, 0x5e, 0x02, 0x93, 0x35, 0x29, 0xbf, 0x6b, 0x1b, 0xe8, 0xeb,
+	0x09, 0x6f, 0x1b, 0x14, 0x55, 0x8d, 0x51, 0x36, 0xfa, 0x46, 0x02, 0x65, 0xc7, 0x09, 0xa4, 0xa0,
+	0x9b, 0xe8, 0x9b, 0x72, 0x02, 0x09, 0x48, 0xca, 0x32, 0xdd, 0x9d, 0x83, 0xbe, 0x95, 0x00, 0x39,
+	0xd8, 0x9f, 0x14, 0xd3, 0xad, 0x5a, 0x0d, 0x7d, 0x3b, 0x81, 0xba, 0x85, 0x51, 0x52, 0x4c, 0x9b,
+	0xb5, 0x1a, 0xfa, 0x4e, 0x22, 0xaa, 0xcd, 0xc5, 0xe7, 0x60, 0x42, 0x7d, 0xd0, 0x29, 0x00, 0xc3,
+	0x63, 0x6f, 0x44, 0x0d, 0x0f, 0xbe, 0x0d, 0xf2, 0xf5, 0x40, 0xbc, 0xd4, 0x40, 0xb9, 0xd3, 0x5e,
+	0x80, 0xc8, 0xe8, 0xc5, 0x7b, 0x00, 0x26, 0x87, 0x94, 0xb0, 0x08, 0xcc, 0x97, 0xfe, 0x09, 0x73,
+	0x81, 0x7f, 0x85, 0xb3, 0xe0, 0x0c, 0xbd, 0x7d, 0x72, 0xc4, 0x46, 0xbf, 0xdc, 0xc9, 0x6d, 0x1a,
+	0x31, 0x83, 0x3c, 0x90, 0x94, 0x19, 0xcc, 0x14, 0x06, 0x53, 0x66, 0x28, 0x83, 0xd9, 0xb4, 0xd1,
+	0xa3, 0xcc, 0x31, 0x91, 0xc2, 0x31, 0x91, 0xce, 0xa1, 0x8c, 0x18, 0x65, 0x8e, 0xe1, 0x14, 0x8e,
+	0xe1, 0x24, 0x47, 0x62, 0x94, 0x28, 0x73, 0x4c, 0xa7, 0x70, 0x4c, 0xa7, 0x73, 0x28, 0x23, 0x43,
+	0x99, 0x03, 0xa6, 0x70, 0x40, 0x99, 0xe3, 0x01, 0x98, 0x4f, 0x1f, 0x0c, 0xca, 0x2c, 0xa3, 0x29,
+	0x2c, 0xa3, 0x19, 0x2c, 0xea, 0xf0, 0x4f, 0x66, 0x19, 0x49, 0x61, 0x19, 0x91, 0x59, 0xaa, 0x00,
+	0x65, 0x8d, 0xf7, 0x64, 0x9e, 0xa9, 0x14, 0x9e, 0xa9, 0x2c, 0x1e, 0x6d, 0x7c, 0x27, 0xf3, 0x14,
+	0x53, 0x78, 0x8a, 0xa9, 0xdd, 0x26, 0x0f, 0xe9, 0x4e, 0xeb, 0xd7, 0x9c, 0xcc, 0xb0, 0x05, 0x66,
+	0x52, 0xe6, 0x71, 0xa7, 0x51, 0x18, 0x32, 0xc5, 0x5d, 0x50, 0xd4, 0x87, 0x6f, 0xf2, 0xfa, 0xb1,
+	0x94, 0xf5, 0x63, 0x29, 0x4d, 0xa2, 0x0f, 0xda, 0x64, 0x8e, 0xf1, 0x14, 0x8e, 0xf1, 0xe4, 0x36,
+	0xf4, 0x89, 0xda, 0x69, 0x14, 0x05, 0x99, 0x22, 0x04, 0xe7, 0xfa, 0x8c, 0xcc, 0x52, 0xa8, 0xde,
+	0x91, 0xa9, 0x5e, 0xe3, 0x7d, 0x95, 0xe4, 0xf3, 0x18, 0x9c, 0xef, 0x37, 0x33, 0x4b, 0x71, 0xba,
+	0xa6, 0x3a, 0xed, 0xfb, 0x0a, 0x4b, 0x72, 0xd4, 0xa4, 0x0d, 0x97, 0x36, 0x2b, 0x4b, 0x71, 0x72,
+	0x47, 0x76, 0x32, 0xe8, 0x4b, 0x2d, 0xc9, 0x9b, 0x07, 0xce, 0x66, 0xce, 0xcb, 0x52, 0xdc, 0xad,
+	0xa8, 0xee, 0xb2, 0x5f, 0x75, 0xc5, 0x2e, 0x96, 0x6e, 0x03, 0x20, 0x4d, 0xf6, 0x46, 0x81, 0x59,
+	0xdd, 0xdb, 0x2b, 0x0e, 0xe1, 0x5f, 0xca, 0x5b, 0x6e, 0xd1, 0xa0, 0xbf, 0x3c, 0x2f, 0xe6, 0xb0,
+	0xbb, 0xdd, 0xca, 0xc3, 0xe2, 0x7f, 0xf9, 0x7f, 0x46, 0x79, 0x42, 0x8c, 0xa2, 0xf0, 0xa9, 0xb2,
+	0xf4, 0x06, 0x98, 0xd4, 0x06, 0x92, 0x05, 0x60, 0xd4, 0xf9, 0x81, 0x52, 0xbf, 0x76, 0x13, 0x80,
+	0xf8, 0xdf, 0x30, 0xc1, 0x29, 0x90, 0x3f, 0xd8, 0xdd, 0x7f, 0x52, 0xb9, 0xbf, 0x53, 0xdd, 0xa9,
+	0x3c, 0x28, 0x0e, 0xc1, 0x02, 0x18, 0x7b, 0xe2, 0xee, 0x3d, 0xdd, 0x2b, 0x1f, 0x54, 0x8b, 0x06,
+	0x1c, 0x03, 0xc3, 0x8f, 0xf6, 0xf7, 0x76, 0x8b, 0xb9, 0x6b, 0xf7, 0x40, 0x5e, 0x9e, 0x07, 0x4e,
+	0x81, 0x7c, 0x75, 0xcf, 0xad, 0xec, 0x3c, 0xdc, 0xad, 0xd1, 0x48, 0x25, 0x03, 0x8d, 0x58, 0x31,
+	0x3c, 0x2f, 0xe6, 0xca, 0x17, 0xc1, 0x85, 0x7a, 0xd0, 0x4a, 0xfc, 0x61, 0x26, 0x25, 0xe7, 0xc5,
+	0x08, 0xb1, 0x6e, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x33, 0xc2, 0x0c, 0xb6, 0xeb, 0x26, 0x00,
+	0x00,
+}
diff --git a/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.proto b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.proto
new file mode 100644
index 00000000..95a8fd13
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.proto
@@ -0,0 +1,285 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc.  All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// 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.
+
+syntax = "proto3";
+package conformance;
+option java_package = "com.google.protobuf.conformance";
+
+import "google/protobuf/any.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+import "google/protobuf/wrappers.proto";
+
+// This defines the conformance testing protocol.  This protocol exists between
+// the conformance test suite itself and the code being tested.  For each test,
+// the suite will send a ConformanceRequest message and expect a
+// ConformanceResponse message.
+//
+// You can either run the tests in two different ways:
+//
+//   1. in-process (using the interface in conformance_test.h).
+//
+//   2. as a sub-process communicating over a pipe.  Information about how to
+//      do this is in conformance_test_runner.cc.
+//
+// Pros/cons of the two approaches:
+//
+//   - running as a sub-process is much simpler for languages other than C/C++.
+//
+//   - running as a sub-process may be more tricky in unusual environments like
+//     iOS apps, where fork/stdin/stdout are not available.
+
+enum WireFormat {
+  UNSPECIFIED = 0;
+  PROTOBUF = 1;
+  JSON = 2;
+}
+
+// Represents a single test case's input.  The testee should:
+//
+//   1. parse this proto (which should always succeed)
+//   2. parse the protobuf or JSON payload in "payload" (which may fail)
+//   3. if the parse succeeded, serialize the message in the requested format.
+message ConformanceRequest {
+  // The payload (whether protobuf of JSON) is always for a TestAllTypes proto
+  // (see below).
+  oneof payload {
+    bytes protobuf_payload = 1;
+    string json_payload = 2;
+  }
+
+  // Which format should the testee serialize its message to?
+  WireFormat requested_output_format = 3;
+}
+
+// Represents a single test case's output.
+message ConformanceResponse {
+  oneof result {
+    // This string should be set to indicate parsing failed.  The string can
+    // provide more information about the parse error if it is available.
+    //
+    // Setting this string does not necessarily mean the testee failed the
+    // test.  Some of the test cases are intentionally invalid input.
+    string parse_error = 1;
+
+    // If the input was successfully parsed but errors occurred when
+    // serializing it to the requested output format, set the error message in
+    // this field.
+    string serialize_error = 6;
+
+    // This should be set if some other error occurred.  This will always
+    // indicate that the test failed.  The string can provide more information
+    // about the failure.
+    string runtime_error = 2;
+
+    // If the input was successfully parsed and the requested output was
+    // protobuf, serialize it to protobuf and set it in this field.
+    bytes protobuf_payload = 3;
+
+    // If the input was successfully parsed and the requested output was JSON,
+    // serialize to JSON and set it in this field.
+    string json_payload = 4;
+
+    // For when the testee skipped the test, likely because a certain feature
+    // wasn't supported, like JSON input/output.
+    string skipped = 5;
+  }
+}
+
+// This proto includes every type of field in both singular and repeated
+// forms.
+message TestAllTypes {
+  message NestedMessage {
+    int32 a = 1;
+    TestAllTypes corecursive = 2;
+  }
+
+  enum NestedEnum {
+    FOO = 0;
+    BAR = 1;
+    BAZ = 2;
+    NEG = -1;  // Intentionally negative.
+  }
+
+  // Singular
+  int32 optional_int32    =  1;
+  int64 optional_int64    =  2;
+  uint32 optional_uint32   =  3;
+  uint64 optional_uint64   =  4;
+  sint32 optional_sint32   =  5;
+  sint64 optional_sint64   =  6;
+  fixed32 optional_fixed32  =  7;
+  fixed64 optional_fixed64  =  8;
+  sfixed32 optional_sfixed32 =  9;
+  sfixed64 optional_sfixed64 = 10;
+  float optional_float    = 11;
+  double optional_double   = 12;
+  bool optional_bool     = 13;
+  string optional_string   = 14;
+  bytes optional_bytes    = 15;
+
+  NestedMessage                        optional_nested_message  = 18;
+  ForeignMessage                       optional_foreign_message = 19;
+
+  NestedEnum                           optional_nested_enum     = 21;
+  ForeignEnum                          optional_foreign_enum    = 22;
+
+  string optional_string_piece = 24 [ctype=STRING_PIECE];
+  string optional_cord = 25 [ctype=CORD];
+
+  TestAllTypes recursive_message = 27;
+
+  // Repeated
+  repeated    int32 repeated_int32    = 31;
+  repeated    int64 repeated_int64    = 32;
+  repeated   uint32 repeated_uint32   = 33;
+  repeated   uint64 repeated_uint64   = 34;
+  repeated   sint32 repeated_sint32   = 35;
+  repeated   sint64 repeated_sint64   = 36;
+  repeated  fixed32 repeated_fixed32  = 37;
+  repeated  fixed64 repeated_fixed64  = 38;
+  repeated sfixed32 repeated_sfixed32 = 39;
+  repeated sfixed64 repeated_sfixed64 = 40;
+  repeated    float repeated_float    = 41;
+  repeated   double repeated_double   = 42;
+  repeated     bool repeated_bool     = 43;
+  repeated   string repeated_string   = 44;
+  repeated    bytes repeated_bytes    = 45;
+
+  repeated NestedMessage                        repeated_nested_message  = 48;
+  repeated ForeignMessage                       repeated_foreign_message = 49;
+
+  repeated NestedEnum                           repeated_nested_enum     = 51;
+  repeated ForeignEnum                          repeated_foreign_enum    = 52;
+
+  repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
+  repeated string repeated_cord = 55 [ctype=CORD];
+
+  // Map
+  map <   int32, int32>    map_int32_int32 = 56;
+  map <   int64, int64>    map_int64_int64 = 57;
+  map <  uint32, uint32>   map_uint32_uint32 = 58;
+  map <  uint64, uint64>   map_uint64_uint64 = 59;
+  map <  sint32, sint32>   map_sint32_sint32 = 60;
+  map <  sint64, sint64>   map_sint64_sint64 = 61;
+  map < fixed32, fixed32>  map_fixed32_fixed32 = 62;
+  map < fixed64, fixed64>  map_fixed64_fixed64 = 63;
+  map  map_sfixed32_sfixed32 = 64;
+  map  map_sfixed64_sfixed64 = 65;
+  map <   int32, float>    map_int32_float = 66;
+  map <   int32, double>   map_int32_double = 67;
+  map <    bool, bool>     map_bool_bool = 68;
+  map <  string, string>   map_string_string = 69;
+  map <  string, bytes>    map_string_bytes = 70;
+  map <  string, NestedMessage>  map_string_nested_message = 71;
+  map <  string, ForeignMessage> map_string_foreign_message = 72;
+  map <  string, NestedEnum>     map_string_nested_enum = 73;
+  map <  string, ForeignEnum>    map_string_foreign_enum = 74;
+
+  oneof oneof_field {
+    uint32 oneof_uint32 = 111;
+    NestedMessage oneof_nested_message = 112;
+    string oneof_string = 113;
+    bytes oneof_bytes = 114;
+    bool oneof_bool = 115;
+    uint64 oneof_uint64 = 116;
+    float oneof_float = 117;
+    double oneof_double = 118;
+    NestedEnum oneof_enum = 119;
+  }
+
+  // Well-known types
+  google.protobuf.BoolValue optional_bool_wrapper = 201;
+  google.protobuf.Int32Value optional_int32_wrapper = 202;
+  google.protobuf.Int64Value optional_int64_wrapper = 203;
+  google.protobuf.UInt32Value optional_uint32_wrapper = 204;
+  google.protobuf.UInt64Value optional_uint64_wrapper = 205;
+  google.protobuf.FloatValue optional_float_wrapper = 206;
+  google.protobuf.DoubleValue optional_double_wrapper = 207;
+  google.protobuf.StringValue optional_string_wrapper = 208;
+  google.protobuf.BytesValue optional_bytes_wrapper = 209;
+
+  repeated google.protobuf.BoolValue repeated_bool_wrapper = 211;
+  repeated google.protobuf.Int32Value repeated_int32_wrapper = 212;
+  repeated google.protobuf.Int64Value repeated_int64_wrapper = 213;
+  repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 214;
+  repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 215;
+  repeated google.protobuf.FloatValue repeated_float_wrapper = 216;
+  repeated google.protobuf.DoubleValue repeated_double_wrapper = 217;
+  repeated google.protobuf.StringValue repeated_string_wrapper = 218;
+  repeated google.protobuf.BytesValue repeated_bytes_wrapper = 219;
+
+  google.protobuf.Duration optional_duration = 301;
+  google.protobuf.Timestamp optional_timestamp = 302;
+  google.protobuf.FieldMask optional_field_mask = 303;
+  google.protobuf.Struct optional_struct = 304;
+  google.protobuf.Any optional_any = 305;
+  google.protobuf.Value optional_value = 306;
+
+  repeated google.protobuf.Duration repeated_duration = 311;
+  repeated google.protobuf.Timestamp repeated_timestamp = 312;
+  repeated google.protobuf.FieldMask repeated_fieldmask = 313;
+  repeated google.protobuf.Struct repeated_struct = 324;
+  repeated google.protobuf.Any repeated_any = 315;
+  repeated google.protobuf.Value repeated_value = 316;
+
+  // Test field-name-to-JSON-name convention.
+  // (protobuf says names can be any valid C/C++ identifier.)
+  int32 fieldname1 = 401;
+  int32 field_name2 = 402;
+  int32 _field_name3 = 403;
+  int32 field__name4_ = 404;
+  int32 field0name5 = 405;
+  int32 field_0_name6 = 406;
+  int32 fieldName7 = 407;
+  int32 FieldName8 = 408;
+  int32 field_Name9 = 409;
+  int32 Field_Name10 = 410;
+  int32 FIELD_NAME11 = 411;
+  int32 FIELD_name12 = 412;
+  int32 __field_name13 = 413;
+  int32 __Field_name14 = 414;
+  int32 field__name15 = 415;
+  int32 field__Name16 = 416;
+  int32 field_name17__ = 417;
+  int32 Field_name18__ = 418;
+}
+
+message ForeignMessage {
+  int32 c = 1;
+}
+
+enum ForeignEnum {
+  FOREIGN_FOO = 0;
+  FOREIGN_BAR = 1;
+  FOREIGN_BAZ = 2;
+}
diff --git a/vendor/github.com/gogo/protobuf/bench.md b/vendor/github.com/gogo/protobuf/bench.md
new file mode 100644
index 00000000..16da66ad
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/bench.md
@@ -0,0 +1,190 @@
+# Benchmarks
+
+## How to reproduce
+
+For a comparison run:
+
+    make bench
+
+followed by [benchcmp](http://code.google.com/p/go/source/browse/misc/benchcmp benchcmp) on the resulting files:
+
+    $GOROOT/misc/benchcmp $GOPATH/src/github.com/gogo/protobuf/test/mixbench/marshal.txt $GOPATH/src/github.com/gogo/protobuf/test/mixbench/marshaler.txt
+    $GOROOT/misc/benchcmp $GOPATH/src/github.com/gogo/protobuf/test/mixbench/unmarshal.txt $GOPATH/src/github.com/gogo/protobuf/test/mixbench/unmarshaler.txt
+
+Benchmarks ran on Revision:  11c56be39364
+
+June 2013
+
+Processor 2,66 GHz Intel Core i7 
+
+Memory 8 GB 1067 MHz DDR3 
+
+## Marshaler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
benchmarkold ns/opnew ns/opdelta
BenchmarkNidOptNativeProtoMarshal2656889-66.53%
BenchmarkNinOptNativeProtoMarshal26511015-61.71%
BenchmarkNidRepNativeProtoMarshal4266112519-70.65%
BenchmarkNinRepNativeProtoMarshal4230612354-70.80%
BenchmarkNidRepPackedNativeProtoMarshal3414811902-65.15%
BenchmarkNinRepPackedNativeProtoMarshal3337511969-64.14%
BenchmarkNidOptStructProtoMarshal71483727-47.86%
BenchmarkNinOptStructProtoMarshal69563481-49.96%
BenchmarkNidRepStructProtoMarshal4655119492-58.13%
BenchmarkNinRepStructProtoMarshal4671519043-59.24%
BenchmarkNidEmbeddedStructProtoMarshal52312050-60.81%
BenchmarkNinEmbeddedStructProtoMarshal46652000-57.13%
BenchmarkNidNestedStructProtoMarshal181106103604-42.79%
BenchmarkNinNestedStructProtoMarshal182053102069-43.93%
BenchmarkNidOptCustomProtoMarshal1209310-74.36%
BenchmarkNinOptCustomProtoMarshal1435277-80.70%
BenchmarkNidRepCustomProtoMarshal4126763-81.51%
BenchmarkNinRepCustomProtoMarshal3972769-80.64%
BenchmarkNinOptNativeUnionProtoMarshal973303-68.86%
BenchmarkNinOptStructUnionProtoMarshal1536521-66.08%
BenchmarkNinEmbeddedStructUnionProtoMarshal2327884-62.01%
BenchmarkNinNestedStructUnionProtoMarshal2070743-64.11%
BenchmarkTreeProtoMarshal1554838-46.07%
BenchmarkOrBranchProtoMarshal31562012-36.25%
BenchmarkAndBranchProtoMarshal31831996-37.29%
BenchmarkLeafProtoMarshal965606-37.20%
BenchmarkDeepTreeProtoMarshal23161283-44.60%
BenchmarkADeepBranchProtoMarshal27191492-45.13%
BenchmarkAndDeepBranchProtoMarshal46632922-37.34%
BenchmarkDeepLeafProtoMarshal18491016-45.05%
BenchmarkNilProtoMarshal43976-82.53%
BenchmarkNidOptEnumProtoMarshal514152-70.43%
BenchmarkNinOptEnumProtoMarshal550158-71.27%
BenchmarkNidRepEnumProtoMarshal647207-68.01%
BenchmarkNinRepEnumProtoMarshal662213-67.82%
BenchmarkTimerProtoMarshal934271-70.99%
BenchmarkMyExtendableProtoMarshal608185-69.57%
BenchmarkOtherExtenableProtoMarshal1112332-70.14%
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
benchmarkold MB/snew MB/sspeedup
BenchmarkNidOptNativeProtoMarshal126.86378.862.99x
BenchmarkNinOptNativeProtoMarshal114.27298.422.61x
BenchmarkNidRepNativeProtoMarshal164.25561.203.42x
BenchmarkNinRepNativeProtoMarshal166.10568.233.42x
BenchmarkNidRepPackedNativeProtoMarshal99.10283.972.87x
BenchmarkNinRepPackedNativeProtoMarshal101.30282.312.79x
BenchmarkNidOptStructProtoMarshal176.83339.071.92x
BenchmarkNinOptStructProtoMarshal163.59326.572.00x
BenchmarkNidRepStructProtoMarshal178.84427.492.39x
BenchmarkNinRepStructProtoMarshal178.70437.692.45x
BenchmarkNidEmbeddedStructProtoMarshal124.24317.562.56x
BenchmarkNinEmbeddedStructProtoMarshal132.03307.992.33x
BenchmarkNidNestedStructProtoMarshal192.91337.861.75x
BenchmarkNinNestedStructProtoMarshal192.44344.451.79x
BenchmarkNidOptCustomProtoMarshal29.77116.033.90x
BenchmarkNinOptCustomProtoMarshal22.29115.385.18x
BenchmarkNidRepCustomProtoMarshal35.14189.805.40x
BenchmarkNinRepCustomProtoMarshal36.50188.405.16x
BenchmarkNinOptNativeUnionProtoMarshal32.87105.393.21x
BenchmarkNinOptStructUnionProtoMarshal66.40195.762.95x
BenchmarkNinEmbeddedStructUnionProtoMarshal93.24245.262.63x
BenchmarkNinNestedStructUnionProtoMarshal57.49160.062.78x
BenchmarkTreeProtoMarshal137.64255.121.85x
BenchmarkOrBranchProtoMarshal137.80216.101.57x
BenchmarkAndBranchProtoMarshal136.64217.891.59x
BenchmarkLeafProtoMarshal214.48341.531.59x
BenchmarkDeepTreeProtoMarshal95.85173.031.81x
BenchmarkADeepBranchProtoMarshal82.73150.781.82x
BenchmarkAndDeepBranchProtoMarshal96.72153.981.59x
BenchmarkDeepLeafProtoMarshal117.34213.411.82x
BenchmarkNidOptEnumProtoMarshal3.8913.163.38x
BenchmarkNinOptEnumProtoMarshal1.826.303.46x
BenchmarkNidRepEnumProtoMarshal12.3638.503.11x
BenchmarkNinRepEnumProtoMarshal12.0837.533.11x
BenchmarkTimerProtoMarshal73.81253.873.44x
BenchmarkMyExtendableProtoMarshal13.1543.083.28x
BenchmarkOtherExtenableProtoMarshal24.2881.093.34x
+ +## Unmarshaler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
benchmarkold ns/opnew ns/opdelta
BenchmarkNidOptNativeProtoUnmarshal25211006-60.10%
BenchmarkNinOptNativeProtoUnmarshal25291750-30.80%
BenchmarkNidRepNativeProtoUnmarshal4906735299-28.06%
BenchmarkNinRepNativeProtoUnmarshal4799035456-26.12%
BenchmarkNidRepPackedNativeProtoUnmarshal2645623950-9.47%
BenchmarkNinRepPackedNativeProtoUnmarshal2649924037-9.29%
BenchmarkNidOptStructProtoUnmarshal68033873-43.07%
BenchmarkNinOptStructProtoUnmarshal67864154-38.79%
BenchmarkNidRepStructProtoUnmarshal5627631970-43.19%
BenchmarkNinRepStructProtoUnmarshal4875031832-34.70%
BenchmarkNidEmbeddedStructProtoUnmarshal45561973-56.69%
BenchmarkNinEmbeddedStructProtoUnmarshal44851975-55.96%
BenchmarkNidNestedStructProtoUnmarshal223395135844-39.19%
BenchmarkNinNestedStructProtoUnmarshal226446134022-40.82%
BenchmarkNidOptCustomProtoUnmarshal1859300-83.86%
BenchmarkNinOptCustomProtoUnmarshal1486402-72.95%
BenchmarkNidRepCustomProtoUnmarshal82291669-79.72%
BenchmarkNinRepCustomProtoUnmarshal82531649-80.02%
BenchmarkNinOptNativeUnionProtoUnmarshal840307-63.45%
BenchmarkNinOptStructUnionProtoUnmarshal1395639-54.19%
BenchmarkNinEmbeddedStructUnionProtoUnmarshal22971167-49.19%
BenchmarkNinNestedStructUnionProtoUnmarshal1820889-51.15%
BenchmarkTreeProtoUnmarshal1521720-52.66%
BenchmarkOrBranchProtoUnmarshal26691385-48.11%
BenchmarkAndBranchProtoUnmarshal26671420-46.76%
BenchmarkLeafProtoUnmarshal1171584-50.13%
BenchmarkDeepTreeProtoUnmarshal20651081-47.65%
BenchmarkADeepBranchProtoUnmarshal26951178-56.29%
BenchmarkAndDeepBranchProtoUnmarshal40551918-52.70%
BenchmarkDeepLeafProtoUnmarshal1758865-50.80%
BenchmarkNilProtoUnmarshal56463-88.79%
BenchmarkNidOptEnumProtoUnmarshal76273-90.34%
BenchmarkNinOptEnumProtoUnmarshal764163-78.66%
BenchmarkNidRepEnumProtoUnmarshal1078447-58.53%
BenchmarkNinRepEnumProtoUnmarshal1071479-55.28%
BenchmarkTimerProtoUnmarshal1128362-67.91%
BenchmarkMyExtendableProtoUnmarshal808217-73.14%
BenchmarkOtherExtenableProtoUnmarshal1233517-58.07%
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
benchmarkold MB/snew MB/sspeedup
BenchmarkNidOptNativeProtoUnmarshal133.67334.982.51x
BenchmarkNinOptNativeProtoUnmarshal119.77173.081.45x
BenchmarkNidRepNativeProtoUnmarshal143.23199.121.39x
BenchmarkNinRepNativeProtoUnmarshal146.07198.161.36x
BenchmarkNidRepPackedNativeProtoUnmarshal127.80141.041.10x
BenchmarkNinRepPackedNativeProtoUnmarshal127.55140.781.10x
BenchmarkNidOptStructProtoUnmarshal185.79326.311.76x
BenchmarkNinOptStructProtoUnmarshal167.68273.661.63x
BenchmarkNidRepStructProtoUnmarshal147.88260.391.76x
BenchmarkNinRepStructProtoUnmarshal171.20261.971.53x
BenchmarkNidEmbeddedStructProtoUnmarshal142.86329.422.31x
BenchmarkNinEmbeddedStructProtoUnmarshal137.33311.832.27x
BenchmarkNidNestedStructProtoUnmarshal154.97259.471.67x
BenchmarkNinNestedStructProtoUnmarshal154.32258.421.67x
BenchmarkNidOptCustomProtoUnmarshal19.36119.666.18x
BenchmarkNinOptCustomProtoUnmarshal21.5279.503.69x
BenchmarkNidRepCustomProtoUnmarshal17.6286.864.93x
BenchmarkNinRepCustomProtoUnmarshal17.5787.925.00x
BenchmarkNinOptNativeUnionProtoUnmarshal38.07104.122.73x
BenchmarkNinOptStructUnionProtoUnmarshal73.08159.542.18x
BenchmarkNinEmbeddedStructUnionProtoUnmarshal94.00185.921.98x
BenchmarkNinNestedStructUnionProtoUnmarshal65.35133.752.05x
BenchmarkTreeProtoUnmarshal141.28297.132.10x
BenchmarkOrBranchProtoUnmarshal162.56313.961.93x
BenchmarkAndBranchProtoUnmarshal163.06306.151.88x
BenchmarkLeafProtoUnmarshal176.72354.192.00x
BenchmarkDeepTreeProtoUnmarshal107.50205.301.91x
BenchmarkADeepBranchProtoUnmarshal83.48190.882.29x
BenchmarkAndDeepBranchProtoUnmarshal110.97234.602.11x
BenchmarkDeepLeafProtoUnmarshal123.40250.732.03x
BenchmarkNidOptEnumProtoUnmarshal2.6227.1610.37x
BenchmarkNinOptEnumProtoUnmarshal1.316.114.66x
BenchmarkNidRepEnumProtoUnmarshal7.4217.882.41x
BenchmarkNinRepEnumProtoUnmarshal7.4716.692.23x
BenchmarkTimerProtoUnmarshal61.12190.343.11x
BenchmarkMyExtendableProtoUnmarshal9.9036.713.71x
BenchmarkOtherExtenableProtoUnmarshal21.9052.132.38x
\ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/codec/codec.go b/vendor/github.com/gogo/protobuf/codec/codec.go index a7fd6974..91d10fe7 100644 --- a/vendor/github.com/gogo/protobuf/codec/codec.go +++ b/vendor/github.com/gogo/protobuf/codec/codec.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/codec/codec_test.go b/vendor/github.com/gogo/protobuf/codec/codec_test.go index ce108cfd..de2c9bc4 100644 --- a/vendor/github.com/gogo/protobuf/codec/codec_test.go +++ b/vendor/github.com/gogo/protobuf/codec/codec_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/custom_types.md b/vendor/github.com/gogo/protobuf/custom_types.md new file mode 100644 index 00000000..3eed249b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/custom_types.md @@ -0,0 +1,68 @@ +# Custom types + +Custom types is a gogo protobuf extensions that allows for using a custom +struct type to decorate the underlying structure of the protocol message. + +# How to use + +## Defining the protobuf message + +```proto +message CustomType { + optional ProtoType Field = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field = 1; +} +``` + +or alternatively you can declare the field type in the protocol message to be +`bytes`: + +```proto +message BytesCustomType { + optional bytes Field = 1 [(gogoproto.customtype) = "T"]; +} +``` + +The downside of using `bytes` is that it makes it harder to generate protobuf +code in other languages. In either case, it is the user responsibility to +ensure that the custom type marshals and unmarshals to the expected wire +format. That is, in the first example, gogo protobuf will not attempt to ensure +that the wire format of `ProtoType` and `T` are wire compatible. + +## Custom type method signatures + +The custom type must define the following methods with the given +signatures. Assuming the custom type is called `T`: + +```go +func (t T) Marshal() ([]byte, error) {} +func (t *T) MarshalTo(data []byte) (n int, err error) {} +func (t *T) Unmarshal(data []byte) error {} + +func (t T) MarshalJSON() ([]byte, error) {} +func (t *T) UnmarshalJSON(data []byte) error {} + +// only required if the compare option is set +func (t T) Compare(other T) int {} +// only required if the equal option is set +func (t T) Equal(other T) bool {} +// only required if populate option is set +func NewPopulatedT(r randyThetest) *T {} +``` + +Check [t.go](test/t.go) for a full example + +# Warnings and issues + +`Warning about customtype: It is your responsibility to test all cases of your marshaling, unmarshaling and size methods implemented for your custom type.` + +Issues with customtype include: + * A Bytes method is not allowed. + * Defining a customtype as a fake proto message is broken. + * proto.Clone is broken. + * Using a proto message as a customtype is not allowed. + * cusomtype of type map can not UnmarshalText + * customtype of type struct cannot jsonpb unmarshal diff --git a/vendor/github.com/gogo/protobuf/extensions.md b/vendor/github.com/gogo/protobuf/extensions.md new file mode 100644 index 00000000..891359ac --- /dev/null +++ b/vendor/github.com/gogo/protobuf/extensions.md @@ -0,0 +1,161 @@ +# gogoprotobuf Extensions + +Here is an [example.proto](https://github.com/gogo/protobuf/blob/master/test/example/example.proto) which uses most of the gogoprotobuf code generation plugins. + +Please also look at the example [Makefile](https://github.com/gogo/protobuf/blob/master/test/example/Makefile) which shows how to specify the `descriptor.proto` and `gogo.proto` in your proto_path + +The documentation at [http://godoc.org/github.com/gogo/protobuf/gogoproto](http://godoc.org/github.com/gogo/protobuf/gogoproto) describes the extensions made to goprotobuf in more detail. + +Also see [http://godoc.org/github.com/gogo/protobuf/plugin/](http://godoc.org/github.com/gogo/protobuf/plugin/) for documentation of each of the extensions which have their own plugins. + +# Fast Marshalling and Unmarshalling + +Generating a `Marshal`, `MarshalTo`, `Size` (or `ProtoSize`) and `Unmarshal` method for a struct results in faster marshalling and unmarshalling than when using reflect. + +See [BenchComparison](https://github.com/gogo/protobuf/blob/master/bench.md) for a comparison between reflect and generated code used for marshalling and unmarshalling. + + + + + + + + + + + +
NameOptionTypeDescriptionDefault
marshalerMessageboolif true, a Marshal and MarshalTo method is generated for the specific messagefalse
sizerMessageboolif true, a Size method is generated for the specific messagefalse
unmarshaler Message bool if true, an Unmarshal method is generated for the specific message false
protosizerMessageboolif true, a ProtoSize method is generated for the specific messagefalse
unsafe_marshaler Message bool if true, a Marshal and MarshalTo method is generated for the specific message. The generated code uses the unsafe package and is not compatible with big endian CPUs. false
unsafe_unmarshaler Message bool if true, an Unmarshal method is generated for the specific message. The generated code uses the unsafe package and is not compatible with big endian CPUs. false
stable_marshaler Message bool if true, a Marshal and MarshalTo method is generated for the specific message, but unlike marshaler the output is guaranteed to be deterministic, at the sacrifice of some speed false
typedecl (beta) Message bool if false, type declaration of the message is excluded from the generated output. Requires the marshaler and unmarshaler to be generated. true
+ +# More Canonical Go Structures + +Lots of times working with a goprotobuf struct will lead you to a place where you create another struct that is easier to work with and then have a function to copy the values between the two structs. + +You might also find that basic structs that started their life as part of an API need to be sent over the wire. With gob, you could just send it. With goprotobuf, you need to make a new struct. + +`gogoprotobuf` tries to fix these problems with the nullable, embed, customtype, customname, casttype, castkey and castvalue field extensions. + + + + + + + + + + + + + + + +
NameOptionTypeDescriptionDefault
nullable Field bool if false, a field is generated without a pointer (see warning below). true
embed Field bool if true, the field is generated as an embedded field. false
customtype Field string It works with the Marshal and Unmarshal methods, to allow you to have your own types in your struct, but marshal to bytes. For example, custom.Uuid or custom.Fixed128. For more information please refer to the CustomTypes document goprotobuf type
customname (beta) Field string Changes the generated fieldname. This is especially useful when generated methods conflict with fieldnames. goprotobuf field name
casttype (beta) Field string Changes the generated field type. It assumes that this type is castable to the original goprotobuf field type. It currently does not support maps, structs or enums. goprotobuf field type
castkey (beta) Field string Changes the generated fieldtype for a map key. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps. goprotobuf field type
castvalue (beta) Field string Changes the generated fieldtype for a map value. All generated code assumes that this type is castable to the protocol buffer field type. Only supported on maps. goprotobuf field type
enum_customname (beta) Enum string Sets the type name of an enum. If goproto_enum_prefix is enabled, this value will be used as a prefix when generating enum values.goprotobuf enum type name. Helps with golint issues.
enumdecl (beta) Enum bool if false, type declaration of the enum is excluded from the generated output. Requires the marshaler and unmarshaler to be generated. true
enumvalue_customname (beta) Enum Value string Changes the generated enum name. Helps with golint issues.goprotobuf enum value name
stdtime Timestamp Field bool Changes the Well Known Timestamp Type to time.TimeTimestamp
stdduration Duration Field bool Changes the Well Known Duration Type to time.DurationDuration
+ +`Warning about nullable: according to the Protocol Buffer specification, you should be able to tell whether a field is set or unset. With the option nullable=false this feature is lost, since your non-nullable fields will always be set.` + +# Goprotobuf Compatibility + +Gogoprotobuf is compatible with Goprotobuf, because it is compatible with protocol buffers (see the section on tests below). + +Gogoprotobuf generates the same code as goprotobuf if no extensions are used. + +The enumprefix, getters and stringer extensions can be used to remove some of the unnecessary code generated by goprotobuf. + + + + + + + + + + +
NameOptionTypeDescriptionDefault
gogoproto_import File bool if false, the generated code imports github.com/golang/protobuf/proto instead of github.com/gogo/protobuf/proto. true
goproto_enum_prefix Enum bool if false, generates the enum constant names without the messagetype prefix true
goproto_getters Message bool if false, the message is generated without get methods, this is useful when you would rather want to use face true
goproto_stringer Message bool if false, the message is generated without the default string method, this is useful for rather using stringer true
goproto_enum_stringer (experimental) Enum bool if false, the enum is generated without the default string method, this is useful for rather using enum_stringer true
goproto_extensions_map (beta) Message bool if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension true
goproto_unrecognized (beta) Message bool if false, XXX_unrecognized field is not generated. This is useful to reduce GC pressure at the cost of losing information about unrecognized fields. true
+ +# Less Typing + +The Protocol Buffer language is very parseable and extra code can be easily generated for structures. + +Helper methods, functions and interfaces can be generated by triggering certain extensions like gostring. + + + + + + + + + + + + + +
NameOptionTypeDescriptionDefault
gostring Message bool if true, a `GoString` method is generated. This returns a string representing valid go code to reproduce the current state of the struct. false
onlyone (deprecated) Message bool if true, all fields must be nullable and only one of the fields may be set, like a union. Two methods are generated: `GetValue() interface{}` and `SetValue(v interface{}) (set bool)`. These provide easier interaction with a union. false
equal Message bool if true, an Equal method is generated false
compare Message bool if true, a Compare method is generated. This is very useful for quickly implementing sort on a list of protobuf structs false
verbose_equal Message bool if true, a verbose equal method is generated for the message. This returns an error which describes the exact element which is not equal to the exact element in the other struct. false
stringer Message bool if true, a String method is generated for the message. false
face Message bool if true, a function will be generated which can convert a structure which satisfies an interface (face) to the specified structure. This interface contains getters for each of the fields in the struct. The specified struct is also generated with the getters. This allows it to satisfy its own face. false
description (beta) Message bool if true, a Description method is generated for the message. false
populate Message bool if true, a `NewPopulated` function is generated. This is necessary for generated tests. false
enum_stringer (experimental) Enum bool if true, a String method is generated for an Enum false
+ +Issues with Compare include: + * Oneof is not supported yet + * Not all Well Known Types are supported yet + * Maps are not supported + +#Peace of Mind + +Test and Benchmark generation is done with the following extensions: + + + + +
testgen Message bool if true, tests are generated for proto, json and prototext marshalling as well as for some of the other enabled plugins false
benchgen Message bool if true, benchmarks are generated for proto, json and prototext marshalling as well as for some of the other enabled plugins false
+ +# More Serialization Formats + +Other serialization formats like xml and json typically use reflect to marshal and unmarshal structured data. Manipulating these structs into something other than the default Go requires editing tags. The following extensions provide ways of editing these tags for the generated protobuf structs. + + + + +
jsontag (beta) Field string if set, the json tag value between the double quotes is replaced with this string fieldname
moretags (beta) Field string if set, this string is appended to the tag string empty
+ +Here is a longer explanation of jsontag and moretags + +# File Options + +Each of the boolean message and enum extensions also have a file extension: + + * `marshaler_all` + * `sizer_all` + * `protosizer_all` + * `unmarshaler_all` + * `unsafe_marshaler_all` + * `unsafe_unmarshaler_all` + * `stable_marshaler_all` + * `goproto_enum_prefix_all` + * `goproto_getters_all` + * `goproto_stringer_all` + * `goproto_enum_stringer_all` + * `goproto_extensions_map_all` + * `goproto_unrecognized_all` + * `gostring_all` + * `onlyone_all` + * `equal_all` + * `compare_all` + * `verbose_equal_all` + * `stringer_all` + * `enum_stringer_all` + * `face_all` + * `description_all` + * `populate_all` + * `testgen_all` + * `benchgen_all` + * `enumdecl_all` + * `typedecl_all` + +Each of these are the same as their Message Option counterparts, except they apply to all messages in the file. Their Message option counterparts can also be used to overwrite their effect. + +# Tests + + * The normal barrage of tests are run with: `make tests` + * A few weird tests: `make testall` + * Tests for compatibility with [golang/protobuf](https://github.com/golang/protobuf) are handled by a different project [harmonytests](https://github.com/gogo/harmonytests), since it requires goprotobuf. + * Cross version tests are made with [Travis CI](https://travis-ci.org/gogo/protobuf). + * GRPC Tests are also handled by a different project [grpctests](https://github.com/gogo/grpctests), since it depends on a lot of grpc libraries. + * Thanks to [go-fuzz](https://github.com/dvyukov/go-fuzz/) we have proper [fuzztests](https://github.com/gogo/fuzztests). + diff --git a/vendor/github.com/gogo/protobuf/gogoproto/Makefile b/vendor/github.com/gogo/protobuf/gogoproto/Makefile index 557f2949..02f9c62c 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/Makefile +++ b/vendor/github.com/gogo/protobuf/gogoproto/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -27,6 +27,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../:../protobuf/:. *.proto restore: diff --git a/vendor/github.com/gogo/protobuf/gogoproto/doc.go b/vendor/github.com/gogo/protobuf/gogoproto/doc.go index f0424d4f..147b5ecc 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/doc.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/doc.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -148,6 +148,7 @@ The enumprefix, getters and stringer extensions can be used to remove some of th - goproto_stringer, if false, the message is generated without the default string method, this is useful for rather using stringer, or allowing you to write your own string method. - goproto_extensions_map (beta), if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension - goproto_unrecognized (beta), if false, XXX_unrecognized field is not generated. This is useful in conjunction with gogoproto.nullable=false, to generate structures completely devoid of pointers and reduce GC pressure at the cost of losing information about unrecognized fields. + - goproto_registration (beta), if true, the generated files will register all messages and types against both gogo/protobuf and golang/protobuf. This is necessary when using third-party packages which read registrations from golang/protobuf (such as the grpc-gateway). Less Typing and Peace of Mind is explained in their specific plugin folders godoc: diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go index f97c2338..9506b6fb 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go @@ -24,7 +24,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package var E_GoprotoEnumPrefix = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumOptions)(nil), @@ -32,6 +34,7 @@ var E_GoprotoEnumPrefix = &proto.ExtensionDesc{ Field: 62001, Name: "gogoproto.goproto_enum_prefix", Tag: "varint,62001,opt,name=goproto_enum_prefix,json=goprotoEnumPrefix", + Filename: "gogo.proto", } var E_GoprotoEnumStringer = &proto.ExtensionDesc{ @@ -40,6 +43,7 @@ var E_GoprotoEnumStringer = &proto.ExtensionDesc{ Field: 62021, Name: "gogoproto.goproto_enum_stringer", Tag: "varint,62021,opt,name=goproto_enum_stringer,json=goprotoEnumStringer", + Filename: "gogo.proto", } var E_EnumStringer = &proto.ExtensionDesc{ @@ -48,6 +52,7 @@ var E_EnumStringer = &proto.ExtensionDesc{ Field: 62022, Name: "gogoproto.enum_stringer", Tag: "varint,62022,opt,name=enum_stringer,json=enumStringer", + Filename: "gogo.proto", } var E_EnumCustomname = &proto.ExtensionDesc{ @@ -56,6 +61,16 @@ var E_EnumCustomname = &proto.ExtensionDesc{ Field: 62023, Name: "gogoproto.enum_customname", Tag: "bytes,62023,opt,name=enum_customname,json=enumCustomname", + Filename: "gogo.proto", +} + +var E_Enumdecl = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 62024, + Name: "gogoproto.enumdecl", + Tag: "varint,62024,opt,name=enumdecl", + Filename: "gogo.proto", } var E_EnumvalueCustomname = &proto.ExtensionDesc{ @@ -64,6 +79,7 @@ var E_EnumvalueCustomname = &proto.ExtensionDesc{ Field: 66001, Name: "gogoproto.enumvalue_customname", Tag: "bytes,66001,opt,name=enumvalue_customname,json=enumvalueCustomname", + Filename: "gogo.proto", } var E_GoprotoGettersAll = &proto.ExtensionDesc{ @@ -72,6 +88,7 @@ var E_GoprotoGettersAll = &proto.ExtensionDesc{ Field: 63001, Name: "gogoproto.goproto_getters_all", Tag: "varint,63001,opt,name=goproto_getters_all,json=goprotoGettersAll", + Filename: "gogo.proto", } var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{ @@ -80,6 +97,7 @@ var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{ Field: 63002, Name: "gogoproto.goproto_enum_prefix_all", Tag: "varint,63002,opt,name=goproto_enum_prefix_all,json=goprotoEnumPrefixAll", + Filename: "gogo.proto", } var E_GoprotoStringerAll = &proto.ExtensionDesc{ @@ -88,6 +106,7 @@ var E_GoprotoStringerAll = &proto.ExtensionDesc{ Field: 63003, Name: "gogoproto.goproto_stringer_all", Tag: "varint,63003,opt,name=goproto_stringer_all,json=goprotoStringerAll", + Filename: "gogo.proto", } var E_VerboseEqualAll = &proto.ExtensionDesc{ @@ -96,6 +115,7 @@ var E_VerboseEqualAll = &proto.ExtensionDesc{ Field: 63004, Name: "gogoproto.verbose_equal_all", Tag: "varint,63004,opt,name=verbose_equal_all,json=verboseEqualAll", + Filename: "gogo.proto", } var E_FaceAll = &proto.ExtensionDesc{ @@ -104,6 +124,7 @@ var E_FaceAll = &proto.ExtensionDesc{ Field: 63005, Name: "gogoproto.face_all", Tag: "varint,63005,opt,name=face_all,json=faceAll", + Filename: "gogo.proto", } var E_GostringAll = &proto.ExtensionDesc{ @@ -112,6 +133,7 @@ var E_GostringAll = &proto.ExtensionDesc{ Field: 63006, Name: "gogoproto.gostring_all", Tag: "varint,63006,opt,name=gostring_all,json=gostringAll", + Filename: "gogo.proto", } var E_PopulateAll = &proto.ExtensionDesc{ @@ -120,6 +142,7 @@ var E_PopulateAll = &proto.ExtensionDesc{ Field: 63007, Name: "gogoproto.populate_all", Tag: "varint,63007,opt,name=populate_all,json=populateAll", + Filename: "gogo.proto", } var E_StringerAll = &proto.ExtensionDesc{ @@ -128,6 +151,7 @@ var E_StringerAll = &proto.ExtensionDesc{ Field: 63008, Name: "gogoproto.stringer_all", Tag: "varint,63008,opt,name=stringer_all,json=stringerAll", + Filename: "gogo.proto", } var E_OnlyoneAll = &proto.ExtensionDesc{ @@ -136,6 +160,7 @@ var E_OnlyoneAll = &proto.ExtensionDesc{ Field: 63009, Name: "gogoproto.onlyone_all", Tag: "varint,63009,opt,name=onlyone_all,json=onlyoneAll", + Filename: "gogo.proto", } var E_EqualAll = &proto.ExtensionDesc{ @@ -144,6 +169,7 @@ var E_EqualAll = &proto.ExtensionDesc{ Field: 63013, Name: "gogoproto.equal_all", Tag: "varint,63013,opt,name=equal_all,json=equalAll", + Filename: "gogo.proto", } var E_DescriptionAll = &proto.ExtensionDesc{ @@ -152,6 +178,7 @@ var E_DescriptionAll = &proto.ExtensionDesc{ Field: 63014, Name: "gogoproto.description_all", Tag: "varint,63014,opt,name=description_all,json=descriptionAll", + Filename: "gogo.proto", } var E_TestgenAll = &proto.ExtensionDesc{ @@ -160,6 +187,7 @@ var E_TestgenAll = &proto.ExtensionDesc{ Field: 63015, Name: "gogoproto.testgen_all", Tag: "varint,63015,opt,name=testgen_all,json=testgenAll", + Filename: "gogo.proto", } var E_BenchgenAll = &proto.ExtensionDesc{ @@ -168,6 +196,7 @@ var E_BenchgenAll = &proto.ExtensionDesc{ Field: 63016, Name: "gogoproto.benchgen_all", Tag: "varint,63016,opt,name=benchgen_all,json=benchgenAll", + Filename: "gogo.proto", } var E_MarshalerAll = &proto.ExtensionDesc{ @@ -176,6 +205,7 @@ var E_MarshalerAll = &proto.ExtensionDesc{ Field: 63017, Name: "gogoproto.marshaler_all", Tag: "varint,63017,opt,name=marshaler_all,json=marshalerAll", + Filename: "gogo.proto", } var E_UnmarshalerAll = &proto.ExtensionDesc{ @@ -184,6 +214,7 @@ var E_UnmarshalerAll = &proto.ExtensionDesc{ Field: 63018, Name: "gogoproto.unmarshaler_all", Tag: "varint,63018,opt,name=unmarshaler_all,json=unmarshalerAll", + Filename: "gogo.proto", } var E_StableMarshalerAll = &proto.ExtensionDesc{ @@ -192,6 +223,7 @@ var E_StableMarshalerAll = &proto.ExtensionDesc{ Field: 63019, Name: "gogoproto.stable_marshaler_all", Tag: "varint,63019,opt,name=stable_marshaler_all,json=stableMarshalerAll", + Filename: "gogo.proto", } var E_SizerAll = &proto.ExtensionDesc{ @@ -200,6 +232,7 @@ var E_SizerAll = &proto.ExtensionDesc{ Field: 63020, Name: "gogoproto.sizer_all", Tag: "varint,63020,opt,name=sizer_all,json=sizerAll", + Filename: "gogo.proto", } var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{ @@ -208,6 +241,7 @@ var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{ Field: 63021, Name: "gogoproto.goproto_enum_stringer_all", Tag: "varint,63021,opt,name=goproto_enum_stringer_all,json=goprotoEnumStringerAll", + Filename: "gogo.proto", } var E_EnumStringerAll = &proto.ExtensionDesc{ @@ -216,6 +250,7 @@ var E_EnumStringerAll = &proto.ExtensionDesc{ Field: 63022, Name: "gogoproto.enum_stringer_all", Tag: "varint,63022,opt,name=enum_stringer_all,json=enumStringerAll", + Filename: "gogo.proto", } var E_UnsafeMarshalerAll = &proto.ExtensionDesc{ @@ -224,6 +259,7 @@ var E_UnsafeMarshalerAll = &proto.ExtensionDesc{ Field: 63023, Name: "gogoproto.unsafe_marshaler_all", Tag: "varint,63023,opt,name=unsafe_marshaler_all,json=unsafeMarshalerAll", + Filename: "gogo.proto", } var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{ @@ -232,6 +268,7 @@ var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{ Field: 63024, Name: "gogoproto.unsafe_unmarshaler_all", Tag: "varint,63024,opt,name=unsafe_unmarshaler_all,json=unsafeUnmarshalerAll", + Filename: "gogo.proto", } var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{ @@ -240,6 +277,7 @@ var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{ Field: 63025, Name: "gogoproto.goproto_extensions_map_all", Tag: "varint,63025,opt,name=goproto_extensions_map_all,json=goprotoExtensionsMapAll", + Filename: "gogo.proto", } var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{ @@ -248,6 +286,7 @@ var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{ Field: 63026, Name: "gogoproto.goproto_unrecognized_all", Tag: "varint,63026,opt,name=goproto_unrecognized_all,json=goprotoUnrecognizedAll", + Filename: "gogo.proto", } var E_GogoprotoImport = &proto.ExtensionDesc{ @@ -256,6 +295,7 @@ var E_GogoprotoImport = &proto.ExtensionDesc{ Field: 63027, Name: "gogoproto.gogoproto_import", Tag: "varint,63027,opt,name=gogoproto_import,json=gogoprotoImport", + Filename: "gogo.proto", } var E_ProtosizerAll = &proto.ExtensionDesc{ @@ -264,6 +304,7 @@ var E_ProtosizerAll = &proto.ExtensionDesc{ Field: 63028, Name: "gogoproto.protosizer_all", Tag: "varint,63028,opt,name=protosizer_all,json=protosizerAll", + Filename: "gogo.proto", } var E_CompareAll = &proto.ExtensionDesc{ @@ -272,6 +313,34 @@ var E_CompareAll = &proto.ExtensionDesc{ Field: 63029, Name: "gogoproto.compare_all", Tag: "varint,63029,opt,name=compare_all,json=compareAll", + Filename: "gogo.proto", +} + +var E_TypedeclAll = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63030, + Name: "gogoproto.typedecl_all", + Tag: "varint,63030,opt,name=typedecl_all,json=typedeclAll", + Filename: "gogo.proto", +} + +var E_EnumdeclAll = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63031, + Name: "gogoproto.enumdecl_all", + Tag: "varint,63031,opt,name=enumdecl_all,json=enumdeclAll", + Filename: "gogo.proto", +} + +var E_GoprotoRegistration = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 63032, + Name: "gogoproto.goproto_registration", + Tag: "varint,63032,opt,name=goproto_registration,json=goprotoRegistration", + Filename: "gogo.proto", } var E_GoprotoGetters = &proto.ExtensionDesc{ @@ -280,6 +349,7 @@ var E_GoprotoGetters = &proto.ExtensionDesc{ Field: 64001, Name: "gogoproto.goproto_getters", Tag: "varint,64001,opt,name=goproto_getters,json=goprotoGetters", + Filename: "gogo.proto", } var E_GoprotoStringer = &proto.ExtensionDesc{ @@ -288,6 +358,7 @@ var E_GoprotoStringer = &proto.ExtensionDesc{ Field: 64003, Name: "gogoproto.goproto_stringer", Tag: "varint,64003,opt,name=goproto_stringer,json=goprotoStringer", + Filename: "gogo.proto", } var E_VerboseEqual = &proto.ExtensionDesc{ @@ -296,6 +367,7 @@ var E_VerboseEqual = &proto.ExtensionDesc{ Field: 64004, Name: "gogoproto.verbose_equal", Tag: "varint,64004,opt,name=verbose_equal,json=verboseEqual", + Filename: "gogo.proto", } var E_Face = &proto.ExtensionDesc{ @@ -304,6 +376,7 @@ var E_Face = &proto.ExtensionDesc{ Field: 64005, Name: "gogoproto.face", Tag: "varint,64005,opt,name=face", + Filename: "gogo.proto", } var E_Gostring = &proto.ExtensionDesc{ @@ -312,6 +385,7 @@ var E_Gostring = &proto.ExtensionDesc{ Field: 64006, Name: "gogoproto.gostring", Tag: "varint,64006,opt,name=gostring", + Filename: "gogo.proto", } var E_Populate = &proto.ExtensionDesc{ @@ -320,6 +394,7 @@ var E_Populate = &proto.ExtensionDesc{ Field: 64007, Name: "gogoproto.populate", Tag: "varint,64007,opt,name=populate", + Filename: "gogo.proto", } var E_Stringer = &proto.ExtensionDesc{ @@ -328,6 +403,7 @@ var E_Stringer = &proto.ExtensionDesc{ Field: 67008, Name: "gogoproto.stringer", Tag: "varint,67008,opt,name=stringer", + Filename: "gogo.proto", } var E_Onlyone = &proto.ExtensionDesc{ @@ -336,6 +412,7 @@ var E_Onlyone = &proto.ExtensionDesc{ Field: 64009, Name: "gogoproto.onlyone", Tag: "varint,64009,opt,name=onlyone", + Filename: "gogo.proto", } var E_Equal = &proto.ExtensionDesc{ @@ -344,6 +421,7 @@ var E_Equal = &proto.ExtensionDesc{ Field: 64013, Name: "gogoproto.equal", Tag: "varint,64013,opt,name=equal", + Filename: "gogo.proto", } var E_Description = &proto.ExtensionDesc{ @@ -352,6 +430,7 @@ var E_Description = &proto.ExtensionDesc{ Field: 64014, Name: "gogoproto.description", Tag: "varint,64014,opt,name=description", + Filename: "gogo.proto", } var E_Testgen = &proto.ExtensionDesc{ @@ -360,6 +439,7 @@ var E_Testgen = &proto.ExtensionDesc{ Field: 64015, Name: "gogoproto.testgen", Tag: "varint,64015,opt,name=testgen", + Filename: "gogo.proto", } var E_Benchgen = &proto.ExtensionDesc{ @@ -368,6 +448,7 @@ var E_Benchgen = &proto.ExtensionDesc{ Field: 64016, Name: "gogoproto.benchgen", Tag: "varint,64016,opt,name=benchgen", + Filename: "gogo.proto", } var E_Marshaler = &proto.ExtensionDesc{ @@ -376,6 +457,7 @@ var E_Marshaler = &proto.ExtensionDesc{ Field: 64017, Name: "gogoproto.marshaler", Tag: "varint,64017,opt,name=marshaler", + Filename: "gogo.proto", } var E_Unmarshaler = &proto.ExtensionDesc{ @@ -384,6 +466,7 @@ var E_Unmarshaler = &proto.ExtensionDesc{ Field: 64018, Name: "gogoproto.unmarshaler", Tag: "varint,64018,opt,name=unmarshaler", + Filename: "gogo.proto", } var E_StableMarshaler = &proto.ExtensionDesc{ @@ -392,6 +475,7 @@ var E_StableMarshaler = &proto.ExtensionDesc{ Field: 64019, Name: "gogoproto.stable_marshaler", Tag: "varint,64019,opt,name=stable_marshaler,json=stableMarshaler", + Filename: "gogo.proto", } var E_Sizer = &proto.ExtensionDesc{ @@ -400,6 +484,7 @@ var E_Sizer = &proto.ExtensionDesc{ Field: 64020, Name: "gogoproto.sizer", Tag: "varint,64020,opt,name=sizer", + Filename: "gogo.proto", } var E_UnsafeMarshaler = &proto.ExtensionDesc{ @@ -408,6 +493,7 @@ var E_UnsafeMarshaler = &proto.ExtensionDesc{ Field: 64023, Name: "gogoproto.unsafe_marshaler", Tag: "varint,64023,opt,name=unsafe_marshaler,json=unsafeMarshaler", + Filename: "gogo.proto", } var E_UnsafeUnmarshaler = &proto.ExtensionDesc{ @@ -416,6 +502,7 @@ var E_UnsafeUnmarshaler = &proto.ExtensionDesc{ Field: 64024, Name: "gogoproto.unsafe_unmarshaler", Tag: "varint,64024,opt,name=unsafe_unmarshaler,json=unsafeUnmarshaler", + Filename: "gogo.proto", } var E_GoprotoExtensionsMap = &proto.ExtensionDesc{ @@ -424,6 +511,7 @@ var E_GoprotoExtensionsMap = &proto.ExtensionDesc{ Field: 64025, Name: "gogoproto.goproto_extensions_map", Tag: "varint,64025,opt,name=goproto_extensions_map,json=goprotoExtensionsMap", + Filename: "gogo.proto", } var E_GoprotoUnrecognized = &proto.ExtensionDesc{ @@ -432,6 +520,7 @@ var E_GoprotoUnrecognized = &proto.ExtensionDesc{ Field: 64026, Name: "gogoproto.goproto_unrecognized", Tag: "varint,64026,opt,name=goproto_unrecognized,json=goprotoUnrecognized", + Filename: "gogo.proto", } var E_Protosizer = &proto.ExtensionDesc{ @@ -440,6 +529,7 @@ var E_Protosizer = &proto.ExtensionDesc{ Field: 64028, Name: "gogoproto.protosizer", Tag: "varint,64028,opt,name=protosizer", + Filename: "gogo.proto", } var E_Compare = &proto.ExtensionDesc{ @@ -448,6 +538,16 @@ var E_Compare = &proto.ExtensionDesc{ Field: 64029, Name: "gogoproto.compare", Tag: "varint,64029,opt,name=compare", + Filename: "gogo.proto", +} + +var E_Typedecl = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 64030, + Name: "gogoproto.typedecl", + Tag: "varint,64030,opt,name=typedecl", + Filename: "gogo.proto", } var E_Nullable = &proto.ExtensionDesc{ @@ -456,6 +556,7 @@ var E_Nullable = &proto.ExtensionDesc{ Field: 65001, Name: "gogoproto.nullable", Tag: "varint,65001,opt,name=nullable", + Filename: "gogo.proto", } var E_Embed = &proto.ExtensionDesc{ @@ -464,6 +565,7 @@ var E_Embed = &proto.ExtensionDesc{ Field: 65002, Name: "gogoproto.embed", Tag: "varint,65002,opt,name=embed", + Filename: "gogo.proto", } var E_Customtype = &proto.ExtensionDesc{ @@ -472,6 +574,7 @@ var E_Customtype = &proto.ExtensionDesc{ Field: 65003, Name: "gogoproto.customtype", Tag: "bytes,65003,opt,name=customtype", + Filename: "gogo.proto", } var E_Customname = &proto.ExtensionDesc{ @@ -480,6 +583,7 @@ var E_Customname = &proto.ExtensionDesc{ Field: 65004, Name: "gogoproto.customname", Tag: "bytes,65004,opt,name=customname", + Filename: "gogo.proto", } var E_Jsontag = &proto.ExtensionDesc{ @@ -488,6 +592,7 @@ var E_Jsontag = &proto.ExtensionDesc{ Field: 65005, Name: "gogoproto.jsontag", Tag: "bytes,65005,opt,name=jsontag", + Filename: "gogo.proto", } var E_Moretags = &proto.ExtensionDesc{ @@ -496,6 +601,7 @@ var E_Moretags = &proto.ExtensionDesc{ Field: 65006, Name: "gogoproto.moretags", Tag: "bytes,65006,opt,name=moretags", + Filename: "gogo.proto", } var E_Casttype = &proto.ExtensionDesc{ @@ -504,6 +610,7 @@ var E_Casttype = &proto.ExtensionDesc{ Field: 65007, Name: "gogoproto.casttype", Tag: "bytes,65007,opt,name=casttype", + Filename: "gogo.proto", } var E_Castkey = &proto.ExtensionDesc{ @@ -512,6 +619,7 @@ var E_Castkey = &proto.ExtensionDesc{ Field: 65008, Name: "gogoproto.castkey", Tag: "bytes,65008,opt,name=castkey", + Filename: "gogo.proto", } var E_Castvalue = &proto.ExtensionDesc{ @@ -520,6 +628,25 @@ var E_Castvalue = &proto.ExtensionDesc{ Field: 65009, Name: "gogoproto.castvalue", Tag: "bytes,65009,opt,name=castvalue", + Filename: "gogo.proto", +} + +var E_Stdtime = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65010, + Name: "gogoproto.stdtime", + Tag: "varint,65010,opt,name=stdtime", + Filename: "gogo.proto", +} + +var E_Stdduration = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 65011, + Name: "gogoproto.stdduration", + Tag: "varint,65011,opt,name=stdduration", + Filename: "gogo.proto", } func init() { @@ -527,6 +654,7 @@ func init() { proto.RegisterExtension(E_GoprotoEnumStringer) proto.RegisterExtension(E_EnumStringer) proto.RegisterExtension(E_EnumCustomname) + proto.RegisterExtension(E_Enumdecl) proto.RegisterExtension(E_EnumvalueCustomname) proto.RegisterExtension(E_GoprotoGettersAll) proto.RegisterExtension(E_GoprotoEnumPrefixAll) @@ -554,6 +682,9 @@ func init() { proto.RegisterExtension(E_GogoprotoImport) proto.RegisterExtension(E_ProtosizerAll) proto.RegisterExtension(E_CompareAll) + proto.RegisterExtension(E_TypedeclAll) + proto.RegisterExtension(E_EnumdeclAll) + proto.RegisterExtension(E_GoprotoRegistration) proto.RegisterExtension(E_GoprotoGetters) proto.RegisterExtension(E_GoprotoStringer) proto.RegisterExtension(E_VerboseEqual) @@ -576,6 +707,7 @@ func init() { proto.RegisterExtension(E_GoprotoUnrecognized) proto.RegisterExtension(E_Protosizer) proto.RegisterExtension(E_Compare) + proto.RegisterExtension(E_Typedecl) proto.RegisterExtension(E_Nullable) proto.RegisterExtension(E_Embed) proto.RegisterExtension(E_Customtype) @@ -585,77 +717,88 @@ func init() { proto.RegisterExtension(E_Casttype) proto.RegisterExtension(E_Castkey) proto.RegisterExtension(E_Castvalue) + proto.RegisterExtension(E_Stdtime) + proto.RegisterExtension(E_Stdduration) } +func init() { proto.RegisterFile("gogo.proto", fileDescriptorGogo) } + var fileDescriptorGogo = []byte{ - // 1096 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x97, 0xcb, 0x6f, 0xdc, 0x54, - 0x14, 0x87, 0x85, 0x48, 0x95, 0x99, 0x93, 0x17, 0x99, 0x84, 0x50, 0x2a, 0x10, 0xed, 0x8e, 0x55, - 0xba, 0x42, 0xa8, 0xae, 0x10, 0x6a, 0xab, 0x34, 0x2a, 0x22, 0x10, 0x05, 0x52, 0x40, 0x2c, 0x46, - 0x9e, 0xc9, 0x8d, 0x3b, 0xe0, 0xf1, 0x35, 0xbe, 0x76, 0xd5, 0xb0, 0x43, 0xe5, 0x21, 0x84, 0x78, - 0x23, 0x41, 0x4b, 0xcb, 0x63, 0xc1, 0xfb, 0x59, 0x1e, 0x7b, 0x36, 0xc0, 0x9a, 0xff, 0x81, 0x0d, - 0x10, 0x5e, 0x52, 0x76, 0xd9, 0xf4, 0x1e, 0xfb, 0x1c, 0xcf, 0xb5, 0x67, 0xa4, 0x7b, 0x67, 0xe7, - 0x64, 0xee, 0xf7, 0xcd, 0xf5, 0x39, 0xbe, 0xe7, 0x37, 0x06, 0x08, 0x64, 0x20, 0x97, 0xe3, 0x44, - 0xa6, 0xb2, 0xd5, 0xc4, 0xeb, 0xfc, 0xf2, 0xd0, 0xe1, 0x40, 0xca, 0x20, 0x14, 0x47, 0xf3, 0xbf, - 0x3a, 0xd9, 0xf6, 0xd1, 0x2d, 0xa1, 0xba, 0x49, 0x2f, 0x4e, 0x65, 0x52, 0x2c, 0xf6, 0x1e, 0x80, - 0x05, 0x5a, 0xdc, 0x16, 0x51, 0xd6, 0x6f, 0xc7, 0x89, 0xd8, 0xee, 0x5d, 0x68, 0xdd, 0xb6, 0x5c, - 0x90, 0xcb, 0x4c, 0x2e, 0xaf, 0xe8, 0x4f, 0x1f, 0x8c, 0xd3, 0x9e, 0x8c, 0xd4, 0xc1, 0x6b, 0xbf, - 0xdf, 0x78, 0xf8, 0x86, 0x3b, 0x1b, 0x1b, 0xf3, 0x84, 0xe2, 0x67, 0xeb, 0x39, 0xe8, 0x6d, 0xc0, - 0xcd, 0x15, 0x9f, 0x4a, 0x93, 0x5e, 0x14, 0x88, 0xc4, 0x62, 0xfc, 0x99, 0x8c, 0x0b, 0x86, 0xf1, - 0x21, 0x42, 0xbd, 0x53, 0x30, 0x33, 0x8e, 0xeb, 0x17, 0x72, 0x4d, 0x0b, 0x53, 0xb2, 0x0a, 0x73, - 0xb9, 0xa4, 0x9b, 0xa9, 0x54, 0xf6, 0x23, 0xbf, 0x2f, 0x2c, 0x9a, 0x5f, 0x73, 0x4d, 0x73, 0x63, - 0x16, 0xb1, 0x53, 0x25, 0xe5, 0x9d, 0x85, 0x45, 0xfc, 0xcf, 0x79, 0x3f, 0xcc, 0x84, 0x69, 0x3b, - 0x32, 0xd2, 0x76, 0x16, 0x97, 0xb1, 0xf2, 0xb7, 0x8b, 0x13, 0xb9, 0x72, 0xa1, 0x14, 0x18, 0x5e, - 0xa3, 0x13, 0x81, 0x48, 0x53, 0x91, 0xa8, 0xb6, 0x1f, 0x86, 0x23, 0x36, 0x79, 0xba, 0x17, 0x96, - 0xc6, 0x4b, 0xbb, 0xd5, 0x4e, 0xac, 0x16, 0xe4, 0x89, 0x30, 0xf4, 0x36, 0xe1, 0x96, 0x11, 0x9d, - 0x75, 0x70, 0x5e, 0x26, 0xe7, 0xe2, 0x50, 0x77, 0x51, 0xbb, 0x0e, 0xfc, 0xff, 0xb2, 0x1f, 0x0e, - 0xce, 0x77, 0xc9, 0xd9, 0x22, 0x96, 0xdb, 0x82, 0xc6, 0xfb, 0x60, 0xfe, 0xbc, 0x48, 0x3a, 0x52, - 0x89, 0xb6, 0x78, 0x2a, 0xf3, 0x43, 0x07, 0xdd, 0x15, 0xd2, 0xcd, 0x11, 0xb8, 0x82, 0x1c, 0xba, - 0x8e, 0x41, 0x63, 0xdb, 0xef, 0x0a, 0x07, 0xc5, 0x55, 0x52, 0x4c, 0xe2, 0x7a, 0x44, 0x4f, 0xc0, - 0x74, 0x20, 0x8b, 0x5b, 0x72, 0xc0, 0xdf, 0x23, 0x7c, 0x8a, 0x19, 0x52, 0xc4, 0x32, 0xce, 0x42, - 0x3f, 0x75, 0xd9, 0xc1, 0xfb, 0xac, 0x60, 0x86, 0x14, 0x63, 0x94, 0xf5, 0x03, 0x56, 0x28, 0xa3, - 0x9e, 0xf7, 0xc2, 0x94, 0x8c, 0xc2, 0x1d, 0x19, 0xb9, 0x6c, 0xe2, 0x43, 0x32, 0x00, 0x21, 0x28, - 0x38, 0x0e, 0x4d, 0xd7, 0x46, 0x7c, 0x44, 0x78, 0x43, 0x70, 0x07, 0xf4, 0x39, 0xe3, 0x21, 0xa3, - 0x57, 0x38, 0x28, 0x3e, 0x26, 0xc5, 0xac, 0x81, 0xd1, 0x6d, 0xa4, 0x42, 0xa5, 0x81, 0x70, 0x91, - 0x7c, 0xc2, 0xb7, 0x41, 0x08, 0x95, 0xb2, 0x23, 0xa2, 0xee, 0x39, 0x37, 0xc3, 0xa7, 0x5c, 0x4a, - 0x66, 0x50, 0xa1, 0x27, 0x4f, 0xdf, 0x4f, 0xd4, 0x39, 0x3f, 0x74, 0x6a, 0xc7, 0x67, 0xe4, 0x98, - 0x2e, 0x21, 0xaa, 0x48, 0x16, 0x8d, 0xa3, 0xf9, 0x9c, 0x2b, 0x62, 0x60, 0x74, 0xf4, 0x54, 0xea, - 0x77, 0x42, 0xd1, 0x1e, 0xc7, 0xf6, 0x05, 0x1f, 0xbd, 0x82, 0x5d, 0x33, 0x8d, 0xba, 0xd3, 0xaa, - 0xf7, 0xb4, 0x93, 0xe6, 0x4b, 0xee, 0x74, 0x0e, 0x20, 0xfc, 0x18, 0xdc, 0x3a, 0x72, 0xd4, 0x3b, - 0xc8, 0xbe, 0x22, 0xd9, 0xd2, 0x88, 0x71, 0x4f, 0x23, 0x61, 0x5c, 0xe5, 0xd7, 0x3c, 0x12, 0x44, - 0xcd, 0xa5, 0xab, 0x96, 0x45, 0xca, 0xdf, 0x1e, 0xaf, 0x6a, 0xdf, 0x70, 0xd5, 0x0a, 0xb6, 0x52, - 0xb5, 0x87, 0x61, 0x89, 0x8c, 0xe3, 0xf5, 0xf5, 0x5b, 0x1e, 0xac, 0x05, 0xbd, 0x59, 0xed, 0xee, - 0xe3, 0x70, 0xa8, 0x2c, 0xe7, 0x85, 0x54, 0x44, 0x0a, 0x19, 0xbd, 0xe7, 0xd8, 0xc1, 0x7c, 0x8d, - 0xcc, 0x3c, 0xf1, 0x57, 0x4a, 0xc1, 0x9a, 0x1f, 0xa3, 0xfc, 0x51, 0x38, 0xc8, 0xf2, 0x2c, 0x4a, - 0x44, 0x57, 0x06, 0x91, 0x6e, 0xe3, 0x96, 0x83, 0xfa, 0xbb, 0x5a, 0xab, 0x36, 0x0d, 0x1c, 0xcd, - 0x67, 0xe0, 0xa6, 0xf2, 0xf7, 0x46, 0xbb, 0xd7, 0x8f, 0x65, 0x92, 0x5a, 0x8c, 0xdf, 0x73, 0xa7, - 0x4a, 0xee, 0x4c, 0x8e, 0x79, 0x2b, 0x30, 0x9b, 0xff, 0xe9, 0xfa, 0x48, 0xfe, 0x40, 0xa2, 0x99, - 0x01, 0x45, 0x83, 0xa3, 0x2b, 0xfb, 0xb1, 0x9f, 0xb8, 0xcc, 0xbf, 0x1f, 0x79, 0x70, 0x10, 0x52, - 0x3c, 0x7d, 0x73, 0xb5, 0x24, 0x6e, 0xdd, 0x31, 0x24, 0x59, 0x13, 0x4a, 0xf9, 0x41, 0xe9, 0x79, - 0x66, 0x8f, 0xce, 0x6c, 0x35, 0x88, 0xbd, 0xfb, 0xb1, 0x3c, 0xd5, 0xb8, 0xb4, 0xcb, 0x2e, 0xee, - 0x95, 0x15, 0xaa, 0xa4, 0xa5, 0x77, 0x1a, 0x66, 0x2a, 0x51, 0x69, 0x57, 0x3d, 0x4b, 0xaa, 0x69, - 0x33, 0x29, 0xbd, 0xbb, 0x60, 0x02, 0x63, 0xcf, 0x8e, 0x3f, 0x47, 0x78, 0xbe, 0xdc, 0xbb, 0x07, - 0x1a, 0x1c, 0x77, 0x76, 0xf4, 0x79, 0x42, 0x4b, 0x04, 0x71, 0x8e, 0x3a, 0x3b, 0xfe, 0x02, 0xe3, - 0x8c, 0x20, 0xee, 0x5e, 0xc2, 0x9f, 0x5e, 0x9a, 0xa0, 0x71, 0xc5, 0xb5, 0x3b, 0x0e, 0x93, 0x94, - 0x71, 0x76, 0xfa, 0x45, 0xfa, 0x72, 0x26, 0xbc, 0xbb, 0xe1, 0x80, 0x63, 0xc1, 0x5f, 0x26, 0xb4, - 0x58, 0xaf, 0x13, 0x64, 0xca, 0xc8, 0x35, 0x3b, 0xfe, 0x0a, 0xe1, 0x26, 0x85, 0x5b, 0xa7, 0x5c, - 0xb3, 0x0b, 0x5e, 0xe5, 0xad, 0x13, 0x81, 0x65, 0xe3, 0x48, 0xb3, 0xd3, 0xaf, 0x71, 0xd5, 0x19, - 0xd1, 0xa7, 0xa9, 0x59, 0x8e, 0x29, 0x3b, 0xff, 0x3a, 0xf1, 0x03, 0x06, 0x2b, 0x60, 0x8c, 0x49, - 0xbb, 0xe2, 0x0d, 0xae, 0x80, 0x41, 0xe1, 0x31, 0xaa, 0x47, 0x9f, 0xdd, 0xf4, 0x26, 0x1f, 0xa3, - 0x5a, 0xf2, 0x61, 0x37, 0xf3, 0x69, 0x61, 0x57, 0xbc, 0xc5, 0xdd, 0xcc, 0xd7, 0xe3, 0x36, 0xea, - 0x59, 0x62, 0x77, 0xbc, 0xcd, 0xdb, 0xa8, 0x45, 0x89, 0x4e, 0xa6, 0xd6, 0x70, 0x8e, 0xd8, 0x7d, - 0xef, 0x90, 0x6f, 0x7e, 0x28, 0x46, 0xbc, 0x47, 0x60, 0x69, 0x74, 0x86, 0xd8, 0xad, 0x97, 0xf6, - 0x6a, 0xbf, 0xfa, 0xcd, 0x08, 0xd1, 0x91, 0xb7, 0x38, 0x2a, 0x3f, 0xec, 0xda, 0xcb, 0x7b, 0xd5, - 0x17, 0x3b, 0x33, 0x3e, 0xf4, 0x2f, 0x34, 0x18, 0x8c, 0x6e, 0xbb, 0xeb, 0x0a, 0xb9, 0x0c, 0x08, - 0x8f, 0x06, 0x4d, 0x6e, 0x3b, 0x7f, 0x95, 0x8f, 0x06, 0x11, 0x1a, 0x6e, 0x44, 0x59, 0x18, 0xe2, - 0xc3, 0xd1, 0xba, 0x7d, 0x44, 0x4c, 0x88, 0x70, 0x8b, 0xd9, 0x3f, 0xf6, 0xe9, 0x60, 0x30, 0xa0, - 0x67, 0xe8, 0x01, 0xd1, 0xef, 0xe8, 0x1a, 0x58, 0xc8, 0x3f, 0xf7, 0x79, 0x20, 0xe0, 0x6a, 0x7d, - 0x9e, 0xa0, 0x78, 0x69, 0x4c, 0x77, 0x62, 0xeb, 0xb7, 0xfe, 0xb5, 0x5f, 0xbc, 0x83, 0x1a, 0xc8, - 0x40, 0x90, 0xbf, 0x75, 0x5a, 0x04, 0xbb, 0x55, 0x41, 0xfe, 0xa2, 0x79, 0x0c, 0x26, 0x9f, 0x50, - 0x32, 0x4a, 0xfd, 0xc0, 0x46, 0xff, 0x4d, 0x34, 0xaf, 0xc7, 0x82, 0xf5, 0x65, 0x22, 0xf4, 0xa5, - 0xb2, 0xb1, 0xff, 0x10, 0x5b, 0x02, 0x08, 0x77, 0x7d, 0x95, 0xba, 0xdc, 0xf7, 0xbf, 0x0c, 0x33, - 0x80, 0x9b, 0xc6, 0xeb, 0x27, 0xc5, 0x8e, 0x8d, 0xfd, 0x8f, 0x37, 0x4d, 0xeb, 0xf5, 0x00, 0x6c, - 0xe2, 0x65, 0xfe, 0xbe, 0x6d, 0x83, 0xff, 0x27, 0x78, 0x40, 0x9c, 0x3c, 0x02, 0x0b, 0xfa, 0x79, - 0xa9, 0x63, 0x27, 0x61, 0x55, 0xae, 0xca, 0xf5, 0xfc, 0x41, 0xbc, 0x1e, 0x00, 0x00, 0xff, 0xff, - 0x87, 0x5c, 0xee, 0x2b, 0x7e, 0x11, 0x00, 0x00, + // 1201 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0xcb, 0x6f, 0x1c, 0x45, + 0x13, 0xc0, 0xf5, 0xe9, 0x73, 0x64, 0x6f, 0xf9, 0x85, 0xd7, 0xc6, 0x84, 0x08, 0x44, 0x72, 0xe3, + 0xe4, 0x9c, 0x22, 0x94, 0xb6, 0x22, 0xcb, 0xb1, 0x1c, 0x2b, 0x11, 0x06, 0x63, 0xe2, 0x00, 0xe2, + 0xb0, 0x9a, 0xdd, 0x6d, 0x4f, 0x06, 0x66, 0xa6, 0x87, 0x99, 0x9e, 0x28, 0xce, 0x0d, 0x85, 0x87, + 0x10, 0xe2, 0x8d, 0x04, 0x09, 0x49, 0x80, 0x03, 0xef, 0x67, 0x78, 0x1f, 0xb9, 0xf0, 0xb8, 0xf2, + 0x3f, 0x70, 0x01, 0xcc, 0xdb, 0x37, 0x5f, 0x50, 0xcd, 0x56, 0xcd, 0xf6, 0xac, 0x57, 0xea, 0xde, + 0xdb, 0xec, 0xba, 0x7f, 0xbf, 0xad, 0xa9, 0x9a, 0xae, 0xea, 0x31, 0x80, 0xaf, 0x7c, 0x35, 0x97, + 0xa4, 0x4a, 0xab, 0x7a, 0x0d, 0xaf, 0x8b, 0xcb, 0x03, 0x07, 0x7d, 0xa5, 0xfc, 0x50, 0x1e, 0x2e, + 0x3e, 0x35, 0xf3, 0xcd, 0xc3, 0x6d, 0x99, 0xb5, 0xd2, 0x20, 0xd1, 0x2a, 0xed, 0x2c, 0x16, 0x77, + 0xc1, 0x34, 0x2d, 0x6e, 0xc8, 0x38, 0x8f, 0x1a, 0x49, 0x2a, 0x37, 0x83, 0xf3, 0xf5, 0x5b, 0xe6, + 0x3a, 0xe4, 0x1c, 0x93, 0x73, 0xcb, 0x71, 0x1e, 0xdd, 0x9d, 0xe8, 0x40, 0xc5, 0xd9, 0xfe, 0xeb, + 0x3f, 0xff, 0xff, 0xe0, 0xff, 0x6e, 0x1f, 0x59, 0x9f, 0x22, 0x14, 0xff, 0xb6, 0x56, 0x80, 0x62, + 0x1d, 0x6e, 0xac, 0xf8, 0x32, 0x9d, 0x06, 0xb1, 0x2f, 0x53, 0x8b, 0xf1, 0x3b, 0x32, 0x4e, 0x1b, + 0xc6, 0x7b, 0x09, 0x15, 0x4b, 0x30, 0x3e, 0x88, 0xeb, 0x7b, 0x72, 0x8d, 0x49, 0x53, 0xb2, 0x02, + 0x93, 0x85, 0xa4, 0x95, 0x67, 0x5a, 0x45, 0xb1, 0x17, 0x49, 0x8b, 0xe6, 0x87, 0x42, 0x53, 0x5b, + 0x9f, 0x40, 0x6c, 0xa9, 0xa4, 0x84, 0x80, 0x11, 0xfc, 0xa6, 0x2d, 0x5b, 0xa1, 0xc5, 0xf0, 0x23, + 0x05, 0x52, 0xae, 0x17, 0x67, 0x60, 0x06, 0xaf, 0xcf, 0x79, 0x61, 0x2e, 0xcd, 0x48, 0x0e, 0xf5, + 0xf5, 0x9c, 0xc1, 0x65, 0x2c, 0xfb, 0xe9, 0xe2, 0x50, 0x11, 0xce, 0x74, 0x29, 0x30, 0x62, 0x32, + 0xaa, 0xe8, 0x4b, 0xad, 0x65, 0x9a, 0x35, 0xbc, 0xb0, 0x5f, 0x78, 0x27, 0x82, 0xb0, 0x34, 0x5e, + 0xda, 0xae, 0x56, 0x71, 0xa5, 0x43, 0x2e, 0x86, 0xa1, 0xd8, 0x80, 0x9b, 0xfa, 0x3c, 0x15, 0x0e, + 0xce, 0xcb, 0xe4, 0x9c, 0xd9, 0xf3, 0x64, 0xa0, 0x76, 0x0d, 0xf8, 0xfb, 0xb2, 0x96, 0x0e, 0xce, + 0xd7, 0xc8, 0x59, 0x27, 0x96, 0x4b, 0x8a, 0xc6, 0x53, 0x30, 0x75, 0x4e, 0xa6, 0x4d, 0x95, 0xc9, + 0x86, 0x7c, 0x24, 0xf7, 0x42, 0x07, 0xdd, 0x15, 0xd2, 0x4d, 0x12, 0xb8, 0x8c, 0x1c, 0xba, 0x8e, + 0xc2, 0xc8, 0xa6, 0xd7, 0x92, 0x0e, 0x8a, 0xab, 0xa4, 0x18, 0xc6, 0xf5, 0x88, 0x2e, 0xc2, 0x98, + 0xaf, 0x3a, 0xb7, 0xe4, 0x80, 0x5f, 0x23, 0x7c, 0x94, 0x19, 0x52, 0x24, 0x2a, 0xc9, 0x43, 0x4f, + 0xbb, 0x44, 0xf0, 0x3a, 0x2b, 0x98, 0x21, 0xc5, 0x00, 0x69, 0x7d, 0x83, 0x15, 0x99, 0x91, 0xcf, + 0x05, 0x18, 0x55, 0x71, 0xb8, 0xa5, 0x62, 0x97, 0x20, 0xde, 0x24, 0x03, 0x10, 0x82, 0x82, 0x79, + 0xa8, 0xb9, 0x16, 0xe2, 0xad, 0x6d, 0xde, 0x1e, 0x5c, 0x81, 0x15, 0x98, 0xe4, 0x06, 0x15, 0xa8, + 0xd8, 0x41, 0xf1, 0x36, 0x29, 0x26, 0x0c, 0x8c, 0x6e, 0x43, 0xcb, 0x4c, 0xfb, 0xd2, 0x45, 0xf2, + 0x0e, 0xdf, 0x06, 0x21, 0x94, 0xca, 0xa6, 0x8c, 0x5b, 0x67, 0xdd, 0x0c, 0xef, 0x72, 0x2a, 0x99, + 0x41, 0xc5, 0x12, 0x8c, 0x47, 0x5e, 0x9a, 0x9d, 0xf5, 0x42, 0xa7, 0x72, 0xbc, 0x47, 0x8e, 0xb1, + 0x12, 0xa2, 0x8c, 0xe4, 0xf1, 0x20, 0x9a, 0xf7, 0x39, 0x23, 0x06, 0x46, 0x5b, 0x2f, 0xd3, 0x5e, + 0x33, 0x94, 0x8d, 0x41, 0x6c, 0x1f, 0xf0, 0xd6, 0xeb, 0xb0, 0xab, 0xa6, 0x71, 0x1e, 0x6a, 0x59, + 0x70, 0xc1, 0x49, 0xf3, 0x21, 0x57, 0xba, 0x00, 0x10, 0x7e, 0x00, 0x6e, 0xee, 0x3b, 0x26, 0x1c, + 0x64, 0x1f, 0x91, 0x6c, 0xb6, 0xcf, 0xa8, 0xa0, 0x96, 0x30, 0xa8, 0xf2, 0x63, 0x6e, 0x09, 0xb2, + 0xc7, 0xb5, 0x06, 0x33, 0x79, 0x9c, 0x79, 0x9b, 0x83, 0x65, 0xed, 0x13, 0xce, 0x5a, 0x87, 0xad, + 0x64, 0xed, 0x34, 0xcc, 0x92, 0x71, 0xb0, 0xba, 0x7e, 0xca, 0x8d, 0xb5, 0x43, 0x6f, 0x54, 0xab, + 0xfb, 0x20, 0x1c, 0x28, 0xd3, 0x79, 0x5e, 0xcb, 0x38, 0x43, 0xa6, 0x11, 0x79, 0x89, 0x83, 0xf9, + 0x3a, 0x99, 0xb9, 0xe3, 0x2f, 0x97, 0x82, 0x55, 0x2f, 0x41, 0xf9, 0xfd, 0xb0, 0x9f, 0xe5, 0x79, + 0x9c, 0xca, 0x96, 0xf2, 0xe3, 0xe0, 0x82, 0x6c, 0x3b, 0xa8, 0x3f, 0xeb, 0x29, 0xd5, 0x86, 0x81, + 0xa3, 0xf9, 0x24, 0xdc, 0x50, 0x9e, 0x55, 0x1a, 0x41, 0x94, 0xa8, 0x54, 0x5b, 0x8c, 0x9f, 0x73, + 0xa5, 0x4a, 0xee, 0x64, 0x81, 0x89, 0x65, 0x98, 0x28, 0x3e, 0xba, 0x3e, 0x92, 0x5f, 0x90, 0x68, + 0xbc, 0x4b, 0x51, 0xe3, 0x68, 0xa9, 0x28, 0xf1, 0x52, 0x97, 0xfe, 0xf7, 0x25, 0x37, 0x0e, 0x42, + 0xa8, 0x71, 0xe8, 0xad, 0x44, 0xe2, 0xb4, 0x77, 0x30, 0x7c, 0xc5, 0x8d, 0x83, 0x19, 0x52, 0xf0, + 0x81, 0xc1, 0x41, 0xf1, 0x35, 0x2b, 0x98, 0x41, 0xc5, 0x3d, 0xdd, 0x41, 0x9b, 0x4a, 0x3f, 0xc8, + 0x74, 0xea, 0xe1, 0x6a, 0x8b, 0xea, 0x9b, 0xed, 0xea, 0x21, 0x6c, 0xdd, 0x40, 0xc5, 0x29, 0x98, + 0xec, 0x39, 0x62, 0xd4, 0x6f, 0xdb, 0x63, 0x5b, 0x95, 0x59, 0xe6, 0xf9, 0xa5, 0xf0, 0xd1, 0x1d, + 0x6a, 0x46, 0xd5, 0x13, 0x86, 0xb8, 0x13, 0xeb, 0x5e, 0x3d, 0x07, 0xd8, 0x65, 0x17, 0x77, 0xca, + 0xd2, 0x57, 0x8e, 0x01, 0xe2, 0x04, 0x8c, 0x57, 0xce, 0x00, 0x76, 0xd5, 0x63, 0xa4, 0x1a, 0x33, + 0x8f, 0x00, 0xe2, 0x08, 0x0c, 0xe1, 0x3c, 0xb7, 0xe3, 0x8f, 0x13, 0x5e, 0x2c, 0x17, 0xc7, 0x60, + 0x84, 0xe7, 0xb8, 0x1d, 0x7d, 0x82, 0xd0, 0x12, 0x41, 0x9c, 0x67, 0xb8, 0x1d, 0x7f, 0x92, 0x71, + 0x46, 0x10, 0x77, 0x4f, 0xe1, 0xb7, 0x4f, 0x0f, 0x51, 0x1f, 0xe6, 0xdc, 0xcd, 0xc3, 0x30, 0x0d, + 0x6f, 0x3b, 0xfd, 0x14, 0xfd, 0x38, 0x13, 0xe2, 0x0e, 0xd8, 0xe7, 0x98, 0xf0, 0x67, 0x08, 0xed, + 0xac, 0x17, 0x4b, 0x30, 0x6a, 0x0c, 0x6c, 0x3b, 0xfe, 0x2c, 0xe1, 0x26, 0x85, 0xa1, 0xd3, 0xc0, + 0xb6, 0x0b, 0x9e, 0xe3, 0xd0, 0x89, 0xc0, 0xb4, 0xf1, 0xac, 0xb6, 0xd3, 0xcf, 0x73, 0xd6, 0x19, + 0x11, 0x0b, 0x50, 0x2b, 0xfb, 0xaf, 0x9d, 0x7f, 0x81, 0xf8, 0x2e, 0x83, 0x19, 0x30, 0xfa, 0xbf, + 0x5d, 0xf1, 0x22, 0x67, 0xc0, 0xa0, 0x70, 0x1b, 0xf5, 0xce, 0x74, 0xbb, 0xe9, 0x25, 0xde, 0x46, + 0x3d, 0x23, 0x1d, 0xab, 0x59, 0xb4, 0x41, 0xbb, 0xe2, 0x65, 0xae, 0x66, 0xb1, 0x1e, 0xc3, 0xe8, + 0x1d, 0x92, 0x76, 0xc7, 0x2b, 0x1c, 0x46, 0xcf, 0x8c, 0x14, 0x6b, 0x50, 0xdf, 0x3b, 0x20, 0xed, + 0xbe, 0x57, 0xc9, 0x37, 0xb5, 0x67, 0x3e, 0x8a, 0xfb, 0x60, 0xb6, 0xff, 0x70, 0xb4, 0x5b, 0x2f, + 0xed, 0xf4, 0xbc, 0xce, 0x98, 0xb3, 0x51, 0x9c, 0xee, 0x76, 0x59, 0x73, 0x30, 0xda, 0xb5, 0x97, + 0x77, 0xaa, 0x8d, 0xd6, 0x9c, 0x8b, 0x62, 0x11, 0xa0, 0x3b, 0x93, 0xec, 0xae, 0x2b, 0xe4, 0x32, + 0x20, 0xdc, 0x1a, 0x34, 0x92, 0xec, 0xfc, 0x55, 0xde, 0x1a, 0x44, 0xe0, 0xd6, 0xe0, 0x69, 0x64, + 0xa7, 0xaf, 0xf1, 0xd6, 0x60, 0x44, 0xcc, 0xc3, 0x48, 0x9c, 0x87, 0x21, 0x3e, 0x5b, 0xf5, 0x5b, + 0xfb, 0x8c, 0x1b, 0x19, 0xb6, 0x19, 0xfe, 0x65, 0x97, 0x60, 0x06, 0xc4, 0x11, 0xd8, 0x27, 0xa3, + 0xa6, 0x6c, 0xdb, 0xc8, 0x5f, 0x77, 0xb9, 0x9f, 0xe0, 0x6a, 0xb1, 0x00, 0xd0, 0x79, 0x99, 0xc6, + 0x28, 0x6c, 0xec, 0x6f, 0xbb, 0x9d, 0xf7, 0x7a, 0x03, 0xe9, 0x0a, 0x8a, 0xb7, 0x71, 0x8b, 0x60, + 0xbb, 0x2a, 0x28, 0x5e, 0xc0, 0x8f, 0xc2, 0xf0, 0x43, 0x99, 0x8a, 0xb5, 0xe7, 0xdb, 0xe8, 0xdf, + 0x89, 0xe6, 0xf5, 0x98, 0xb0, 0x48, 0xa5, 0x52, 0x7b, 0x7e, 0x66, 0x63, 0xff, 0x20, 0xb6, 0x04, + 0x10, 0x6e, 0x79, 0x99, 0x76, 0xb9, 0xef, 0x3f, 0x19, 0x66, 0x00, 0x83, 0xc6, 0xeb, 0x87, 0xe5, + 0x96, 0x8d, 0xfd, 0x8b, 0x83, 0xa6, 0xf5, 0xe2, 0x18, 0xd4, 0xf0, 0xb2, 0xf8, 0x3f, 0x84, 0x0d, + 0xfe, 0x9b, 0xe0, 0x2e, 0x81, 0xbf, 0x9c, 0xe9, 0xb6, 0x0e, 0xec, 0xc9, 0xfe, 0x87, 0x2a, 0xcd, + 0xeb, 0xc5, 0x22, 0x8c, 0x66, 0xba, 0xdd, 0xce, 0xe9, 0x44, 0x63, 0xc1, 0xff, 0xdd, 0x2d, 0x5f, + 0x72, 0x4b, 0xe6, 0xf8, 0x21, 0x98, 0x6e, 0xa9, 0xa8, 0x17, 0x3c, 0x0e, 0x2b, 0x6a, 0x45, 0xad, + 0x15, 0xbb, 0xe8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x9c, 0xec, 0xd8, 0x50, 0x13, 0x00, + 0x00, } diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto index e8e3edb6..fbca44cd 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -37,6 +39,7 @@ extend google.protobuf.EnumOptions { optional bool goproto_enum_stringer = 62021; optional bool enum_stringer = 62022; optional string enum_customname = 62023; + optional bool enumdecl = 62024; } extend google.protobuf.EnumValueOptions { @@ -75,6 +78,10 @@ extend google.protobuf.FileOptions { optional bool gogoproto_import = 63027; optional bool protosizer_all = 63028; optional bool compare_all = 63029; + optional bool typedecl_all = 63030; + optional bool enumdecl_all = 63031; + + optional bool goproto_registration = 63032; } extend google.protobuf.MessageOptions { @@ -105,6 +112,8 @@ extend google.protobuf.MessageOptions { optional bool protosizer = 64028; optional bool compare = 64029; + + optional bool typedecl = 64030; } extend google.protobuf.FieldOptions { @@ -117,4 +126,7 @@ extend google.protobuf.FieldOptions { optional string casttype = 65007; optional string castkey = 65008; optional string castvalue = 65009; + + optional bool stdtime = 65010; + optional bool stdduration = 65011; } diff --git a/vendor/github.com/gogo/protobuf/gogoproto/helper.go b/vendor/github.com/gogo/protobuf/gogoproto/helper.go index 8c29dbc0..6b851c56 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/helper.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/helper.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -37,6 +39,14 @@ func IsNullable(field *google_protobuf.FieldDescriptorProto) bool { return proto.GetBoolExtension(field.Options, E_Nullable, true) } +func IsStdTime(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Stdtime, false) +} + +func IsStdDuration(field *google_protobuf.FieldDescriptorProto) bool { + return proto.GetBoolExtension(field.Options, E_Stdduration, false) +} + func NeedsNilCheck(proto3 bool, field *google_protobuf.FieldDescriptorProto) bool { nullable := IsNullable(field) if field.IsMessage() || IsCustomType(field) { @@ -80,7 +90,18 @@ func IsCastValue(field *google_protobuf.FieldDescriptorProto) bool { return false } +func HasEnumDecl(file *google_protobuf.FileDescriptorProto, enum *google_protobuf.EnumDescriptorProto) bool { + return proto.GetBoolExtension(enum.Options, E_Enumdecl, proto.GetBoolExtension(file.Options, E_EnumdeclAll, true)) +} + +func HasTypeDecl(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { + return proto.GetBoolExtension(message.Options, E_Typedecl, proto.GetBoolExtension(file.Options, E_TypedeclAll, true)) +} + func GetCustomType(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Customtype) if err == nil && v.(*string) != nil { @@ -91,6 +112,9 @@ func GetCustomType(field *google_protobuf.FieldDescriptorProto) string { } func GetCastType(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Casttype) if err == nil && v.(*string) != nil { @@ -101,6 +125,9 @@ func GetCastType(field *google_protobuf.FieldDescriptorProto) string { } func GetCastKey(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Castkey) if err == nil && v.(*string) != nil { @@ -111,6 +138,9 @@ func GetCastKey(field *google_protobuf.FieldDescriptorProto) string { } func GetCastValue(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Castvalue) if err == nil && v.(*string) != nil { @@ -145,6 +175,9 @@ func IsEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) bool } func GetCustomName(field *google_protobuf.FieldDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Customname) if err == nil && v.(*string) != nil { @@ -155,6 +188,9 @@ func GetCustomName(field *google_protobuf.FieldDescriptorProto) string { } func GetEnumCustomName(field *google_protobuf.EnumDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_EnumCustomname) if err == nil && v.(*string) != nil { @@ -165,6 +201,9 @@ func GetEnumCustomName(field *google_protobuf.EnumDescriptorProto) string { } func GetEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) string { + if field == nil { + return "" + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_EnumvalueCustomname) if err == nil && v.(*string) != nil { @@ -175,6 +214,9 @@ func GetEnumValueCustomName(field *google_protobuf.EnumValueDescriptorProto) str } func GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string { + if field == nil { + return nil + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Jsontag) if err == nil && v.(*string) != nil { @@ -185,6 +227,9 @@ func GetJsonTag(field *google_protobuf.FieldDescriptorProto) *string { } func GetMoreTags(field *google_protobuf.FieldDescriptorProto) *string { + if field == nil { + return nil + } if field.Options != nil { v, err := proto.GetExtension(field.Options, E_Moretags) if err == nil && v.(*string) != nil { @@ -306,3 +351,7 @@ func ImportsGoGoProto(file *google_protobuf.FileDescriptorProto) bool { func HasCompare(file *google_protobuf.FileDescriptorProto, message *google_protobuf.DescriptorProto) bool { return proto.GetBoolExtension(message.Options, E_Compare, proto.GetBoolExtension(file.Options, E_CompareAll, false)) } + +func RegistersGolangProto(file *google_protobuf.FileDescriptorProto) bool { + return proto.GetBoolExtension(file.Options, E_GoprotoRegistration, false) +} diff --git a/vendor/github.com/gogo/protobuf/gogoreplace/main.go b/vendor/github.com/gogo/protobuf/gogoreplace/main.go new file mode 100644 index 00000000..3eab5651 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoreplace/main.go @@ -0,0 +1,25 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" +) + +func main() { + args := os.Args + if len(args) != 4 { + fmt.Println("gogoreplace wants three arguments") + fmt.Println(" gogoreplace oldsubstring newsubstring filename") + os.Exit(1) + } + data, err := ioutil.ReadFile(args[3]) + if err != nil { + panic(err) + } + data = bytes.Replace(data, []byte(args[1]), []byte(args[2]), -1) + if err := ioutil.WriteFile(args[3], data, 0666); err != nil { + panic(err) + } +} diff --git a/vendor/github.com/gogo/protobuf/io/full.go b/vendor/github.com/gogo/protobuf/io/full.go index 4a0841c2..550726a3 100644 --- a/vendor/github.com/gogo/protobuf/io/full.go +++ b/vendor/github.com/gogo/protobuf/io/full.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/io/io.go b/vendor/github.com/gogo/protobuf/io/io.go index 037b09da..6dca519a 100644 --- a/vendor/github.com/gogo/protobuf/io/io.go +++ b/vendor/github.com/gogo/protobuf/io/io.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/io/io_test.go b/vendor/github.com/gogo/protobuf/io/io_test.go index 603c10c6..0b74b310 100644 --- a/vendor/github.com/gogo/protobuf/io/io_test.go +++ b/vendor/github.com/gogo/protobuf/io/io_test.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/io/uint32.go b/vendor/github.com/gogo/protobuf/io/uint32.go index 609eb273..c3dad1ae 100644 --- a/vendor/github.com/gogo/protobuf/io/uint32.go +++ b/vendor/github.com/gogo/protobuf/io/uint32.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/io/varint.go b/vendor/github.com/gogo/protobuf/io/varint.go index 2d9de82e..a72e14a5 100644 --- a/vendor/github.com/gogo/protobuf/io/varint.go +++ b/vendor/github.com/gogo/protobuf/io/varint.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go index 687256ea..6e268e9a 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go @@ -41,14 +41,17 @@ package jsonpb import ( "bytes" "encoding/json" + "errors" "fmt" "io" "reflect" "sort" "strconv" "strings" + "time" "github.com/gogo/protobuf/proto" + "github.com/gogo/protobuf/types" ) // Marshaler is a configurable object for converting between @@ -73,7 +76,7 @@ type Marshaler struct { // Marshal marshals a protocol buffer into JSON. func (m *Marshaler) Marshal(out io.Writer, pb proto.Message) error { writer := &errWriter{writer: out} - return m.marshalObject(writer, pb, "") + return m.marshalObject(writer, pb, "", "") } // MarshalToString converts a protocol buffer object to JSON string. @@ -92,15 +95,83 @@ func (s int32Slice) Len() int { return len(s) } func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +type isWkt interface { + XXX_WellKnownType() string +} + // marshalObject writes a struct to the Writer. -func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent string) error { +func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeURL string) error { + s := reflect.ValueOf(v).Elem() + + // Handle well-known types. + if wkt, ok := v.(isWkt); ok { + switch wkt.XXX_WellKnownType() { + case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", + "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": + // "Wrappers use the same representation in JSON + // as the wrapped primitive type, ..." + sprop := proto.GetProperties(s.Type()) + return m.marshalValue(out, sprop.Prop[0], s.Field(0), indent) + case "Any": + // Any is a bit more involved. + return m.marshalAny(out, v, indent) + case "Duration": + // "Generated output always contains 3, 6, or 9 fractional digits, + // depending on required precision." + s, ns := s.Field(0).Int(), s.Field(1).Int() + d := time.Duration(s)*time.Second + time.Duration(ns)*time.Nanosecond + x := fmt.Sprintf("%.9f", d.Seconds()) + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + out.write(`"`) + out.write(x) + out.write(`s"`) + return out.err + case "Struct": + // Let marshalValue handle the `fields` map. + // TODO: pass the correct Properties if needed. + return m.marshalValue(out, &proto.Properties{}, s.Field(0), indent) + case "Timestamp": + // "RFC 3339, where generated output will always be Z-normalized + // and uses 3, 6 or 9 fractional digits." + s, ns := s.Field(0).Int(), s.Field(1).Int() + t := time.Unix(s, ns).UTC() + // time.RFC3339Nano isn't exactly right (we need to get 3/6/9 fractional digits). + x := t.Format("2006-01-02T15:04:05.000000000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + out.write(`"`) + out.write(x) + out.write(`Z"`) + return out.err + case "Value": + // Value has a single oneof. + kind := s.Field(0) + if kind.IsNil() { + // "absence of any variant indicates an error" + return errors.New("nil Value") + } + // oneof -> *T -> T -> T.F + x := kind.Elem().Elem().Field(0) + // TODO: pass the correct Properties if needed. + return m.marshalValue(out, &proto.Properties{}, x, indent) + } + } + out.write("{") if m.Indent != "" { out.write("\n") } - s := reflect.ValueOf(v).Elem() firstField := true + + if typeURL != "" { + if err := m.marshalTypeURL(out, indent, typeURL); err != nil { + return err + } + firstField = false + } + for i := 0; i < s.NumField(); i++ { value := s.Field(i) valueField := s.Type().Field(i) @@ -175,12 +246,14 @@ func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent string } // Handle proto2 extensions. - if ep, ok := v.(extendableProto); ok { + if ep, ok := v.(proto.Message); ok { extensions := proto.RegisteredExtensions(v) - extensionMap := ep.ExtensionMap() // Sort extensions for stable output. - ids := make([]int32, 0, len(extensionMap)) - for id := range extensionMap { + ids := make([]int32, 0, len(extensions)) + for id, desc := range extensions { + if !proto.HasExtension(ep, desc) { + continue + } ids = append(ids, id) } sort.Sort(int32Slice(ids)) @@ -225,6 +298,76 @@ func (m *Marshaler) writeSep(out *errWriter) { } } +func (m *Marshaler) marshalAny(out *errWriter, any proto.Message, indent string) error { + // "If the Any contains a value that has a special JSON mapping, + // it will be converted as follows: {"@type": xxx, "value": yyy}. + // Otherwise, the value will be converted into a JSON object, + // and the "@type" field will be inserted to indicate the actual data type." + v := reflect.ValueOf(any).Elem() + turl := v.Field(0).String() + val := v.Field(1).Bytes() + + // Only the part of type_url after the last slash is relevant. + mname := turl + if slash := strings.LastIndex(mname, "/"); slash >= 0 { + mname = mname[slash+1:] + } + mt := proto.MessageType(mname) + if mt == nil { + return fmt.Errorf("unknown message type %q", mname) + } + msg := reflect.New(mt.Elem()).Interface().(proto.Message) + if err := proto.Unmarshal(val, msg); err != nil { + return err + } + + if _, ok := msg.(isWkt); ok { + out.write("{") + if m.Indent != "" { + out.write("\n") + } + if err := m.marshalTypeURL(out, indent, turl); err != nil { + return err + } + m.writeSep(out) + if m.Indent != "" { + out.write(indent) + out.write(m.Indent) + out.write(`"value": `) + } else { + out.write(`"value":`) + } + if err := m.marshalObject(out, msg, indent+m.Indent, ""); err != nil { + return err + } + if m.Indent != "" { + out.write("\n") + out.write(indent) + } + out.write("}") + return out.err + } + + return m.marshalObject(out, msg, indent, turl) +} + +func (m *Marshaler) marshalTypeURL(out *errWriter, indent, typeURL string) error { + if m.Indent != "" { + out.write(indent) + out.write(m.Indent) + } + out.write(`"@type":`) + if m.Indent != "" { + out.write(" ") + } + b, err := json.Marshal(typeURL) + if err != nil { + return err + } + out.write(string(b)) + return out.err +} + // marshalField writes field description and value to the Writer. func (m *Marshaler) marshalField(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { if m.Indent != "" { @@ -261,7 +404,9 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle out.write(m.Indent) out.write(m.Indent) } - m.marshalValue(out, prop, sliceVal, indent+m.Indent) + if err := m.marshalValue(out, prop, sliceVal, indent+m.Indent); err != nil { + return err + } comma = "," } if m.Indent != "" { @@ -273,6 +418,29 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle return out.err } + // Handle well-known types. + // Most are handled up in marshalObject (because 99% are messages). + if wkt, ok := v.Interface().(isWkt); ok { + switch wkt.XXX_WellKnownType() { + case "NullValue": + out.write("null") + return out.err + } + } + + if t, ok := v.Interface().(time.Time); ok { + ts, err := types.TimestampProto(t) + if err != nil { + return err + } + return m.marshalValue(out, prop, reflect.ValueOf(ts), indent) + } + + if d, ok := v.Interface().(time.Duration); ok { + dur := types.DurationProto(d) + return m.marshalValue(out, prop, reflect.ValueOf(dur), indent) + } + // Handle enumerations. if !m.EnumsAsInts && prop.Enum != "" { // Unknown enum values will are stringified by the proto library as their @@ -326,6 +494,18 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle out.write(`null`) return out.err } + + if m, ok := v.Interface().(interface { + MarshalJSON() ([]byte, error) + }); ok { + data, err := m.MarshalJSON() + if err != nil { + return err + } + out.write(string(data)) + return nil + } + pm, ok := iface.(proto.Message) if !ok { if prop.CustomType == "" { @@ -337,7 +517,7 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle } pm = i.Convert(t).Interface().(proto.Message) } - return m.marshalObject(out, pm, indent+m.Indent) + return m.marshalObject(out, pm, indent+m.Indent, "") } // Handle maps. @@ -407,44 +587,178 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle return out.err } +// Unmarshaler is a configurable object for converting from a JSON +// representation to a protocol buffer object. +type Unmarshaler struct { + // Whether to allow messages to contain unknown fields, as opposed to + // failing to unmarshal. + AllowUnknownFields bool +} + // UnmarshalNext unmarshals the next protocol buffer from a JSON object stream. // This function is lenient and will decode any options permutations of the // related Marshaler. -func UnmarshalNext(dec *json.Decoder, pb proto.Message) error { +func (u *Unmarshaler) UnmarshalNext(dec *json.Decoder, pb proto.Message) error { inputValue := json.RawMessage{} if err := dec.Decode(&inputValue); err != nil { return err } - return unmarshalValue(reflect.ValueOf(pb).Elem(), inputValue) + return u.unmarshalValue(reflect.ValueOf(pb).Elem(), inputValue, nil) } // Unmarshal unmarshals a JSON object stream into a protocol // buffer. This function is lenient and will decode any options // permutations of the related Marshaler. -func Unmarshal(r io.Reader, pb proto.Message) error { +func (u *Unmarshaler) Unmarshal(r io.Reader, pb proto.Message) error { dec := json.NewDecoder(r) - return UnmarshalNext(dec, pb) + return u.UnmarshalNext(dec, pb) +} + +// UnmarshalNext unmarshals the next protocol buffer from a JSON object stream. +// This function is lenient and will decode any options permutations of the +// related Marshaler. +func UnmarshalNext(dec *json.Decoder, pb proto.Message) error { + return new(Unmarshaler).UnmarshalNext(dec, pb) +} + +// Unmarshal unmarshals a JSON object stream into a protocol +// buffer. This function is lenient and will decode any options +// permutations of the related Marshaler. +func Unmarshal(r io.Reader, pb proto.Message) error { + return new(Unmarshaler).Unmarshal(r, pb) } // UnmarshalString will populate the fields of a protocol buffer based // on a JSON string. This function is lenient and will decode any options // permutations of the related Marshaler. func UnmarshalString(str string, pb proto.Message) error { - return Unmarshal(strings.NewReader(str), pb) + return new(Unmarshaler).Unmarshal(strings.NewReader(str), pb) } // unmarshalValue converts/copies a value into the target. -func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { +// prop may be nil. +func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMessage, prop *proto.Properties) error { targetType := target.Type() // Allocate memory for pointer fields. if targetType.Kind() == reflect.Ptr { target.Set(reflect.New(targetType.Elem())) - return unmarshalValue(target.Elem(), inputValue) + return u.unmarshalValue(target.Elem(), inputValue, prop) + } + + // Handle well-known types. + if wkt, ok := target.Addr().Interface().(isWkt); ok { + switch wkt.XXX_WellKnownType() { + case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", + "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": + // "Wrappers use the same representation in JSON + // as the wrapped primitive type, except that null is allowed." + // encoding/json will turn JSON `null` into Go `nil`, + // so we don't have to do any extra work. + return u.unmarshalValue(target.Field(0), inputValue, prop) + case "Any": + return fmt.Errorf("unmarshaling Any not supported yet") + case "Duration": + ivStr := string(inputValue) + if ivStr == "null" { + target.Field(0).SetInt(0) + target.Field(1).SetInt(0) + return nil + } + + unq, err := strconv.Unquote(ivStr) + if err != nil { + return err + } + d, err := time.ParseDuration(unq) + if err != nil { + return fmt.Errorf("bad Duration: %v", err) + } + ns := d.Nanoseconds() + s := ns / 1e9 + ns %= 1e9 + target.Field(0).SetInt(s) + target.Field(1).SetInt(ns) + return nil + case "Timestamp": + ivStr := string(inputValue) + if ivStr == "null" { + target.Field(0).SetInt(0) + target.Field(1).SetInt(0) + return nil + } + + unq, err := strconv.Unquote(ivStr) + if err != nil { + return err + } + t, err := time.Parse(time.RFC3339Nano, unq) + if err != nil { + return fmt.Errorf("bad Timestamp: %v", err) + } + target.Field(0).SetInt(int64(t.Unix())) + target.Field(1).SetInt(int64(t.Nanosecond())) + return nil + } + } + + if t, ok := target.Addr().Interface().(*time.Time); ok { + ts := &types.Timestamp{} + if err := u.unmarshalValue(reflect.ValueOf(ts).Elem(), inputValue, prop); err != nil { + return err + } + tt, err := types.TimestampFromProto(ts) + if err != nil { + return err + } + *t = tt + return nil + } + + if d, ok := target.Addr().Interface().(*time.Duration); ok { + dur := &types.Duration{} + if err := u.unmarshalValue(reflect.ValueOf(dur).Elem(), inputValue, prop); err != nil { + return err + } + dd, err := types.DurationFromProto(dur) + if err != nil { + return err + } + *d = dd + return nil + } + + // Handle enums, which have an underlying type of int32, + // and may appear as strings. + // The case of an enum appearing as a number is handled + // at the bottom of this function. + if inputValue[0] == '"' && prop != nil && prop.Enum != "" { + vmap := proto.EnumValueMap(prop.Enum) + // Don't need to do unquoting; valid enum names + // are from a limited character set. + s := inputValue[1 : len(inputValue)-1] + n, ok := vmap[string(s)] + if !ok { + return fmt.Errorf("unknown value %q for enum %s", s, prop.Enum) + } + if target.Kind() == reflect.Ptr { // proto2 + target.Set(reflect.New(targetType.Elem())) + target = target.Elem() + } + target.SetInt(int64(n)) + return nil } // Handle nested messages. if targetType.Kind() == reflect.Struct { + if target.CanAddr() { + if m, ok := target.Addr().Interface().(interface { + UnmarshalJSON([]byte) error + }); ok { + return json.Unmarshal(inputValue, m) + } + } + var jsonFields map[string]json.RawMessage if err := json.Unmarshal(inputValue, &jsonFields); err != nil { return err @@ -483,29 +797,7 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { continue } - // Handle enums, which have an underlying type of int32, - // and may appear as strings. We do this while handling - // the struct so we have access to the enum info. - // The case of an enum appearing as a number is handled - // by the recursive call to unmarshalValue. - if enum := sprops.Prop[i].Enum; valueForField[0] == '"' && enum != "" { - vmap := proto.EnumValueMap(enum) - // Don't need to do unquoting; valid enum names - // are from a limited character set. - s := valueForField[1 : len(valueForField)-1] - n, ok := vmap[string(s)] - if !ok { - return fmt.Errorf("unknown value %q for enum %s", s, enum) - } - f := target.Field(i) - if f.Kind() == reflect.Ptr { // proto2 - f.Set(reflect.New(f.Type().Elem())) - f = f.Elem() - } - f.SetInt(int64(n)) - continue - } - if err := unmarshalValue(target.Field(i), valueForField); err != nil { + if err := u.unmarshalValue(target.Field(i), valueForField, sprops.Prop[i]); err != nil { return err } } @@ -518,12 +810,12 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { } nv := reflect.New(oop.Type.Elem()) target.Field(oop.Field).Set(nv) - if err := unmarshalValue(nv.Elem().Field(0), raw); err != nil { + if err := u.unmarshalValue(nv.Elem().Field(0), raw, oop.Prop); err != nil { return err } } } - if len(jsonFields) > 0 { + if !u.AllowUnknownFields && len(jsonFields) > 0 { // Pick any field to be the scapegoat. var f string for fname := range jsonFields { @@ -537,11 +829,23 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { // Handle arrays if targetType.Kind() == reflect.Slice { - // Special case for encoded bytes. Pre-go1.5 doesn't support unmarshalling - // strings into aliased []byte types. - // https://github.com/golang/go/commit/4302fd0409da5e4f1d71471a6770dacdc3301197 - // https://github.com/golang/go/commit/c60707b14d6be26bf4213114d13070bff00d0b0a if targetType.Elem().Kind() == reflect.Uint8 { + outRef := reflect.New(targetType) + outVal := outRef.Interface() + //CustomType with underlying type []byte + if _, ok := outVal.(interface { + UnmarshalJSON([]byte) error + }); ok { + if err := json.Unmarshal(inputValue, outVal); err != nil { + return err + } + target.Set(outRef.Elem()) + return nil + } + // Special case for encoded bytes. Pre-go1.5 doesn't support unmarshalling + // strings into aliased []byte types. + // https://github.com/golang/go/commit/4302fd0409da5e4f1d71471a6770dacdc3301197 + // https://github.com/golang/go/commit/c60707b14d6be26bf4213114d13070bff00d0b0a var out []byte if err := json.Unmarshal(inputValue, &out); err != nil { return err @@ -557,7 +861,7 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { len := len(slc) target.Set(reflect.MakeSlice(targetType, len, len)) for i := 0; i < len; i++ { - if err := unmarshalValue(target.Index(i), slc[i]); err != nil { + if err := u.unmarshalValue(target.Index(i), slc[i], prop); err != nil { return err } } @@ -571,6 +875,13 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { return err } target.Set(reflect.MakeMap(targetType)) + var keyprop, valprop *proto.Properties + if prop != nil { + // These could still be nil if the protobuf metadata is broken somehow. + // TODO: This won't work because the fields are unexported. + // We should probably just reparse them. + //keyprop, valprop = prop.mkeyprop, prop.mvalprop + } for ks, raw := range mp { // Unmarshal map key. The core json library already decoded the key into a // string, so we handle that specially. Other types were quoted post-serialization. @@ -579,7 +890,7 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { k = reflect.ValueOf(ks) } else { k = reflect.New(targetType.Key()).Elem() - if err := unmarshalValue(k, json.RawMessage(ks)); err != nil { + if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { return err } } @@ -590,7 +901,7 @@ func unmarshalValue(target reflect.Value, inputValue json.RawMessage) error { // Unmarshal map value. v := reflect.New(targetType.Elem()).Elem() - if err := unmarshalValue(v, raw); err != nil { + if err := u.unmarshalValue(v, raw, valprop); err != nil { return err } target.SetMapIndex(k, v) @@ -631,13 +942,6 @@ func acceptedJSONFieldNames(prop *proto.Properties) fieldNames { return opts } -// extendableProto is an interface implemented by any protocol buffer that may be extended. -type extendableProto interface { - proto.Message - ExtensionRangeArray() []proto.ExtensionRange - ExtensionMap() map[int32]proto.Extension -} - // Writer wrapper inspired by https://blog.golang.org/errors-are-values type errWriter struct { writer io.Writer @@ -655,10 +959,21 @@ func (w *errWriter) write(str string) { // The easiest way to sort them in some deterministic order is to use fmt. // If this turns out to be inefficient we can always consider other options, // such as doing a Schwartzian transform. +// +// Numeric keys are sorted in numeric order per +// https://developers.google.com/protocol-buffers/docs/proto#maps. type mapKeys []reflect.Value func (s mapKeys) Len() int { return len(s) } func (s mapKeys) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s mapKeys) Less(i, j int) bool { + if k := s[i].Kind(); k == s[j].Kind() { + switch k { + case reflect.Int32, reflect.Int64: + return s[i].Int() < s[j].Int() + case reflect.Uint32, reflect.Uint64: + return s[i].Uint() < s[j].Uint() + } + } return fmt.Sprint(s[i].Interface()) < fmt.Sprint(s[j].Interface()) } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go index 0c15e7d1..5c859a14 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go @@ -36,11 +36,13 @@ import ( "encoding/json" "io" "reflect" + "strings" "testing" pb "github.com/gogo/protobuf/jsonpb/jsonpb_test_proto" "github.com/gogo/protobuf/proto" proto3pb "github.com/gogo/protobuf/proto/proto3_proto" + "github.com/gogo/protobuf/types" ) var ( @@ -104,7 +106,7 @@ var ( RSint32: []int32{-1, -2, -3}, RSint64: []int64{-6789012345, -3456789012}, RFloat: []float32{3.14, 6.28}, - RDouble: []float64{299792458, 6.62606957e-34}, + RDouble: []float64{299792458 * 1e20, 6.62606957e-34}, RString: []string{"happy", "days"}, RBytes: [][]byte{[]byte("skittles"), []byte("m&m's")}, } @@ -118,7 +120,7 @@ var ( `"rSint32":[-1,-2,-3],` + `"rSint64":["-6789012345","-3456789012"],` + `"rFloat":[3.14,6.28],` + - `"rDouble":[2.99792458e+08,6.62606957e-34],` + + `"rDouble":[2.99792458e+28,6.62606957e-34],` + `"rString":["happy","days"],` + `"rBytes":["c2tpdHRsZXM=","bSZtJ3M="]` + `}` @@ -161,7 +163,7 @@ var ( 6.28 ], "rDouble": [ - 2.99792458e+08, + 2.99792458e+28, 6.62606957e-34 ], "rString": [ @@ -268,6 +270,41 @@ var ( `"[jsonpb.Complex.real_extension]":{"imaginary":0.5772156649},` + `"[jsonpb.name]":"Pi"` + `}` + + anySimple = &pb.KnownTypes{ + An: &types.Any{ + TypeUrl: "something.example.com/jsonpb.Simple", + Value: []byte{ + // &pb.Simple{OBool:true} + 1 << 3, 1, + }, + }, + } + anySimpleJSON = `{"an":{"@type":"something.example.com/jsonpb.Simple","oBool":true}}` + anySimplePrettyJSON = `{ + "an": { + "@type": "something.example.com/jsonpb.Simple", + "oBool": true + } +}` + + anyWellKnown = &pb.KnownTypes{ + An: &types.Any{ + TypeUrl: "type.googleapis.com/google.protobuf.Duration", + Value: []byte{ + // &durpb.Duration{Seconds: 1, Nanos: 212000000 } + 1 << 3, 1, // seconds + 2 << 3, 0x80, 0xba, 0x8b, 0x65, // nanos + }, + }, + } + anyWellKnownJSON = `{"an":{"@type":"type.googleapis.com/google.protobuf.Duration","value":"1.212s"}}` + anyWellKnownPrettyJSON = `{ + "an": { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } +}` ) func init() { @@ -297,6 +334,18 @@ var marshalingTests = []struct { &pb.Widget{Color: pb.Widget_BLUE.Enum()}, colorPrettyJSON}, {"unknown enum value object", marshalerAllOptions, &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}, colorListPrettyJSON}, + {"repeated proto3 enum", Marshaler{}, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}, + `{"rFunny":["PUNS","SLAPSTICK"]}`}, + {"repeated proto3 enum as int", Marshaler{EnumsAsInts: true}, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}, + `{"rFunny":[1,2]}`}, {"empty value", marshaler, &pb.Simple3{}, `{}`}, {"empty value emitted", Marshaler{EmitDefaults: true}, &pb.Simple3{}, `{"dub":0}`}, {"map", marshaler, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, `{"nummy":{"1":2,"3":4}}`}, @@ -311,6 +360,13 @@ var marshalingTests = []struct { {"map", marshaler, &pb.Mappy{Buggy: map[int64]string{1234: "yup"}}, `{"buggy":{"1234":"yup"}}`}, {"map", marshaler, &pb.Mappy{Booly: map[bool]bool{false: true}}, `{"booly":{"false":true}}`}, + // TODO: This is broken. + //{"map", marshaler, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}, `{"enumy":{"XIV":"ROMAN"}`}, + {"map", Marshaler{EnumsAsInts: true}, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}, `{"enumy":{"XIV":2}}`}, + {"map", marshaler, &pb.Mappy{S32Booly: map[int32]bool{1: true, 3: false, 10: true, 12: false}}, `{"s32booly":{"1":true,"3":false,"10":true,"12":false}}`}, + {"map", marshaler, &pb.Mappy{S64Booly: map[int64]bool{1: true, 3: false, 10: true, 12: false}}, `{"s64booly":{"1":true,"3":false,"10":true,"12":false}}`}, + {"map", marshaler, &pb.Mappy{U32Booly: map[uint32]bool{1: true, 3: false, 10: true, 12: false}}, `{"u32booly":{"1":true,"3":false,"10":true,"12":false}}`}, + {"map", marshaler, &pb.Mappy{U64Booly: map[uint64]bool{1: true, 3: false, 10: true, 12: false}}, `{"u64booly":{"1":true,"3":false,"10":true,"12":false}}`}, {"proto2 map", marshaler, &pb.Maps{MInt64Str: map[int64]string{213: "cat"}}, `{"mInt64Str":{"213":"cat"}}`}, {"proto2 map", marshaler, @@ -321,6 +377,27 @@ var marshalingTests = []struct { {"force orig_name", Marshaler{OrigName: true}, &pb.Simple{OInt32: proto.Int32(4)}, `{"o_int32":4}`}, {"proto2 extension", marshaler, realNumber, realNumberJSON}, + {"Any with message", marshaler, anySimple, anySimpleJSON}, + {"Any with message and indent", marshalerAllOptions, anySimple, anySimplePrettyJSON}, + {"Any with WKT", marshaler, anyWellKnown, anyWellKnownJSON}, + {"Any with WKT and indent", marshalerAllOptions, anyWellKnown, anyWellKnownPrettyJSON}, + {"Duration", marshaler, &pb.KnownTypes{Dur: &types.Duration{Seconds: 3}}, `{"dur":"3.000s"}`}, + {"Struct", marshaler, &pb.KnownTypes{St: &types.Struct{ + Fields: map[string]*types.Value{ + "one": {Kind: &types.Value_StringValue{StringValue: "loneliest number"}}, + "two": {Kind: &types.Value_NullValue{NullValue: types.NULL_VALUE}}, + }, + }}, `{"st":{"one":"loneliest number","two":null}}`}, + {"Timestamp", marshaler, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 14e8, Nanos: 21e6}}, `{"ts":"2014-05-13T16:53:20.021Z"}`}, + {"DoubleValue", marshaler, &pb.KnownTypes{Dbl: &types.DoubleValue{Value: 1.2}}, `{"dbl":1.2}`}, + {"FloatValue", marshaler, &pb.KnownTypes{Flt: &types.FloatValue{Value: 1.2}}, `{"flt":1.2}`}, + {"Int64Value", marshaler, &pb.KnownTypes{I64: &types.Int64Value{Value: -3}}, `{"i64":"-3"}`}, + {"UInt64Value", marshaler, &pb.KnownTypes{U64: &types.UInt64Value{Value: 3}}, `{"u64":"3"}`}, + {"Int32Value", marshaler, &pb.KnownTypes{I32: &types.Int32Value{Value: -4}}, `{"i32":-4}`}, + {"UInt32Value", marshaler, &pb.KnownTypes{U32: &types.UInt32Value{Value: 4}}, `{"u32":4}`}, + {"BoolValue", marshaler, &pb.KnownTypes{Bool: &types.BoolValue{Value: true}}, `{"bool":true}`}, + {"StringValue", marshaler, &pb.KnownTypes{Str: &types.StringValue{Value: "plush"}}, `{"str":"plush"}`}, + {"BytesValue", marshaler, &pb.KnownTypes{Bytes: &types.BytesValue{Value: []byte("wow")}}, `{"bytes":"d293"}`}, } func TestMarshaling(t *testing.T) { @@ -335,40 +412,81 @@ func TestMarshaling(t *testing.T) { } var unmarshalingTests = []struct { - desc string - json string - pb proto.Message + desc string + unmarshaler Unmarshaler + json string + pb proto.Message }{ - {"simple flat object", simpleObjectJSON, simpleObject}, - {"simple pretty object", simpleObjectPrettyJSON, simpleObject}, - {"repeated fields flat object", repeatsObjectJSON, repeatsObject}, - {"repeated fields pretty object", repeatsObjectPrettyJSON, repeatsObject}, - {"nested message/enum flat object", complexObjectJSON, complexObject}, - {"nested message/enum pretty object", complexObjectPrettyJSON, complexObject}, - {"enum-string object", `{"color":"BLUE"}`, &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, - {"enum-value object", "{\n \"color\": 2\n}", &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, - {"proto3 enum string", `{"hilarity":"PUNS"}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, - {"proto3 enum value", `{"hilarity":1}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, + {"simple flat object", Unmarshaler{}, simpleObjectJSON, simpleObject}, + {"simple pretty object", Unmarshaler{}, simpleObjectPrettyJSON, simpleObject}, + {"repeated fields flat object", Unmarshaler{}, repeatsObjectJSON, repeatsObject}, + {"repeated fields pretty object", Unmarshaler{}, repeatsObjectPrettyJSON, repeatsObject}, + {"nested message/enum flat object", Unmarshaler{}, complexObjectJSON, complexObject}, + {"nested message/enum pretty object", Unmarshaler{}, complexObjectPrettyJSON, complexObject}, + {"enum-string object", Unmarshaler{}, `{"color":"BLUE"}`, &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, + {"enum-value object", Unmarshaler{}, "{\n \"color\": 2\n}", &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, + {"unknown field with allowed option", Unmarshaler{AllowUnknownFields: true}, `{"unknown": "foo"}`, new(pb.Simple)}, + {"proto3 enum string", Unmarshaler{}, `{"hilarity":"PUNS"}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, + {"proto3 enum value", Unmarshaler{}, `{"hilarity":1}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, {"unknown enum value object", + Unmarshaler{}, "{\n \"color\": 1000,\n \"r_color\": [\n \"RED\"\n ]\n}", &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}}, - {"unquoted int64 object", `{"oInt64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, - {"unquoted uint64 object", `{"oUint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, - {"map", `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, - {"map", `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, - {"map", `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}}, - {"oneof", `{"salary":31000}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Salary{Salary: 31000}}}, - {"oneof spec name", `{"country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{Country: "Australia"}}}, - {"oneof orig_name", `{"Country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{Country: "Australia"}}}, - {"orig_name input", `{"o_bool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, - {"camelName input", `{"oBool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, + {"repeated proto3 enum", Unmarshaler{}, `{"rFunny":["PUNS","SLAPSTICK"]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"repeated proto3 enum as int", Unmarshaler{}, `{"rFunny":[1,2]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"repeated proto3 enum as mix of strings and ints", Unmarshaler{}, `{"rFunny":["PUNS",2]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"unquoted int64 object", Unmarshaler{}, `{"oInt64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, + {"unquoted uint64 object", Unmarshaler{}, `{"oUint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, + {"map", Unmarshaler{}, `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, + {"map", Unmarshaler{}, `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, + {"map", Unmarshaler{}, `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}}, + // TODO: This is broken. + //{"map", Unmarshaler{}, `{"enumy":{"XIV":"ROMAN"}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, + {"map", Unmarshaler{}, `{"enumy":{"XIV":2}}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, + {"oneof", Unmarshaler{}, `{"salary":31000}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Salary{Salary: 31000}}}, + {"oneof spec name", Unmarshaler{}, `{"Country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{Country: "Australia"}}}, + {"oneof orig_name", Unmarshaler{}, `{"Country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{Country: "Australia"}}}, + {"oneof spec name2", Unmarshaler{}, `{"homeAddress":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_HomeAddress{HomeAddress: "Australia"}}}, + {"oneof orig_name2", Unmarshaler{}, `{"home_address":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_HomeAddress{HomeAddress: "Australia"}}}, + {"orig_name input", Unmarshaler{}, `{"o_bool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, + {"camelName input", Unmarshaler{}, `{"oBool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, + {"Duration", Unmarshaler{}, `{"dur":"3.000s"}`, &pb.KnownTypes{Dur: &types.Duration{Seconds: 3}}}, + {"null Duration", Unmarshaler{}, `{"dur":null}`, &pb.KnownTypes{Dur: &types.Duration{Seconds: 0}}}, + {"Timestamp", Unmarshaler{}, `{"ts":"2014-05-13T16:53:20.021Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 14e8, Nanos: 21e6}}}, + {"PreEpochTimestamp", Unmarshaler{}, `{"ts":"1969-12-31T23:59:58.999999995Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: -2, Nanos: 999999995}}}, + {"ZeroTimeTimestamp", Unmarshaler{}, `{"ts":"0001-01-01T00:00:00Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: -62135596800, Nanos: 0}}}, + {"null Timestamp", Unmarshaler{}, `{"ts":null}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 0, Nanos: 0}}}, + {"DoubleValue", Unmarshaler{}, `{"dbl":1.2}`, &pb.KnownTypes{Dbl: &types.DoubleValue{Value: 1.2}}}, + {"FloatValue", Unmarshaler{}, `{"flt":1.2}`, &pb.KnownTypes{Flt: &types.FloatValue{Value: 1.2}}}, + {"Int64Value", Unmarshaler{}, `{"i64":"-3"}`, &pb.KnownTypes{I64: &types.Int64Value{Value: -3}}}, + {"UInt64Value", Unmarshaler{}, `{"u64":"3"}`, &pb.KnownTypes{U64: &types.UInt64Value{Value: 3}}}, + {"Int32Value", Unmarshaler{}, `{"i32":-4}`, &pb.KnownTypes{I32: &types.Int32Value{Value: -4}}}, + {"UInt32Value", Unmarshaler{}, `{"u32":4}`, &pb.KnownTypes{U32: &types.UInt32Value{Value: 4}}}, + {"BoolValue", Unmarshaler{}, `{"bool":true}`, &pb.KnownTypes{Bool: &types.BoolValue{Value: true}}}, + {"StringValue", Unmarshaler{}, `{"str":"plush"}`, &pb.KnownTypes{Str: &types.StringValue{Value: "plush"}}}, + {"BytesValue", Unmarshaler{}, `{"bytes":"d293"}`, &pb.KnownTypes{Bytes: &types.BytesValue{Value: []byte("wow")}}}, + // `null` is also a permissible value. Let's just test one. + {"null DoubleValue", Unmarshaler{}, `{"dbl":null}`, &pb.KnownTypes{Dbl: &types.DoubleValue{}}}, } func TestUnmarshaling(t *testing.T) { for _, tt := range unmarshalingTests { // Make a new instance of the type of our expected object. p := reflect.New(reflect.TypeOf(tt.pb).Elem()).Interface().(proto.Message) - err := UnmarshalString(tt.json, p) + + err := tt.unmarshaler.Unmarshal(strings.NewReader(tt.json), p) if err != nil { t.Errorf("%s: %v", tt.desc, err) continue @@ -384,18 +502,21 @@ func TestUnmarshaling(t *testing.T) { } func TestUnmarshalNext(t *testing.T) { + // We only need to check against a few, not all of them. + tests := unmarshalingTests[:5] + // Create a buffer with many concatenated JSON objects. var b bytes.Buffer - for _, tt := range unmarshalingTests { + for _, tt := range tests { b.WriteString(tt.json) } dec := json.NewDecoder(&b) - for _, tt := range unmarshalingTests { + for _, tt := range tests { // Make a new instance of the type of our expected object. p := reflect.New(reflect.TypeOf(tt.pb).Elem()).Interface().(proto.Message) - err := UnmarshalNext(dec, p) + err := tt.unmarshaler.UnmarshalNext(dec, p) if err != nil { t.Errorf("%s: %v", tt.desc, err) continue @@ -410,7 +531,7 @@ func TestUnmarshalNext(t *testing.T) { } p := &pb.Simple{} - err := UnmarshalNext(dec, p) + err := new(Unmarshaler).UnmarshalNext(dec, p) if err != io.EOF { t.Errorf("eof: got %v, expected io.EOF", err) } @@ -423,6 +544,7 @@ var unmarshalingShouldError = []struct { }{ {"a value", "666", new(pb.Simple)}, {"gibberish", "{adskja123;l23=-=", new(pb.Simple)}, + {"unknown field", `{"unknown": "foo"}`, new(pb.Simple)}, {"unknown enum name", `{"hilarity":"DAVE"}`, new(proto3pb.Message)}, } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile index 079b3df7..e294f68d 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/Makefile @@ -30,4 +30,4 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: - protoc-min-version --version="3.0.0" --gogo_out=. *.proto -I . -I ../../ -I ../../protobuf/ + protoc-min-version --version="3.0.0" --gogo_out=Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types:. *.proto -I . -I ../../ -I ../../protobuf/ diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go index 5a74a294..edcc4ed0 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go @@ -19,6 +19,7 @@ It has these top-level messages: MsgWithOneof Real Complex + KnownTypes */ package jsonpb @@ -33,7 +34,33 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Numeral int32 + +const ( + Numeral_UNKNOWN Numeral = 0 + Numeral_ARABIC Numeral = 1 + Numeral_ROMAN Numeral = 2 +) + +var Numeral_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ARABIC", + 2: "ROMAN", +} +var Numeral_value = map[string]int32{ + "UNKNOWN": 0, + "ARABIC": 1, + "ROMAN": 2, +} + +func (x Numeral) String() string { + return proto.EnumName(Numeral_name, int32(x)) +} +func (Numeral) EnumDescriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{0} } type Simple3 struct { Dub float64 `protobuf:"fixed64,1,opt,name=dub,proto3" json:"dub,omitempty"` @@ -44,12 +71,24 @@ func (m *Simple3) String() string { return proto.CompactTextString(m) func (*Simple3) ProtoMessage() {} func (*Simple3) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{0} } +func (m *Simple3) GetDub() float64 { + if m != nil { + return m.Dub + } + return 0 +} + type Mappy struct { - Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Strry map[string]string `protobuf:"bytes,2,rep,name=strry" json:"strry,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Objjy map[int32]*Simple3 `protobuf:"bytes,3,rep,name=objjy" json:"objjy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Buggy map[int64]string `protobuf:"bytes,4,rep,name=buggy" json:"buggy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Booly map[bool]bool `protobuf:"bytes,5,rep,name=booly" json:"booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Strry map[string]string `protobuf:"bytes,2,rep,name=strry" json:"strry,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Objjy map[int32]*Simple3 `protobuf:"bytes,3,rep,name=objjy" json:"objjy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Buggy map[int64]string `protobuf:"bytes,4,rep,name=buggy" json:"buggy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Booly map[bool]bool `protobuf:"bytes,5,rep,name=booly" json:"booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Enumy map[string]Numeral `protobuf:"bytes,6,rep,name=enumy" json:"enumy,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=jsonpb.Numeral"` + S32Booly map[int32]bool `protobuf:"bytes,7,rep,name=s32booly" json:"s32booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + S64Booly map[int64]bool `protobuf:"bytes,8,rep,name=s64booly" json:"s64booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + U32Booly map[uint32]bool `protobuf:"bytes,9,rep,name=u32booly" json:"u32booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + U64Booly map[uint64]bool `protobuf:"bytes,10,rep,name=u64booly" json:"u64booly,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (m *Mappy) Reset() { *m = Mappy{} } @@ -92,29 +131,77 @@ func (m *Mappy) GetBooly() map[bool]bool { return nil } +func (m *Mappy) GetEnumy() map[string]Numeral { + if m != nil { + return m.Enumy + } + return nil +} + +func (m *Mappy) GetS32Booly() map[int32]bool { + if m != nil { + return m.S32Booly + } + return nil +} + +func (m *Mappy) GetS64Booly() map[int64]bool { + if m != nil { + return m.S64Booly + } + return nil +} + +func (m *Mappy) GetU32Booly() map[uint32]bool { + if m != nil { + return m.U32Booly + } + return nil +} + +func (m *Mappy) GetU64Booly() map[uint64]bool { + if m != nil { + return m.U64Booly + } + return nil +} + func init() { proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3") proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy") + proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value) } +func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptorMoreTestObjects) } + var fileDescriptorMoreTestObjects = []byte{ - // 288 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x92, 0x41, 0x4b, 0xc3, 0x30, - 0x14, 0xc7, 0xe9, 0xba, 0xcc, 0xf5, 0xed, 0xa0, 0x14, 0xc1, 0xa0, 0x17, 0x19, 0x08, 0x3d, 0xe5, - 0xb0, 0x5d, 0x86, 0x47, 0xc1, 0x83, 0x07, 0x15, 0xba, 0x0f, 0x30, 0x16, 0x0d, 0xc3, 0xda, 0x36, - 0x21, 0x4d, 0x85, 0x7c, 0x25, 0x3f, 0xa5, 0x7d, 0x69, 0x67, 0xc3, 0x08, 0xec, 0xf6, 0xca, 0xff, - 0xf7, 0x83, 0xf7, 0x7f, 0x0d, 0xdc, 0x54, 0x52, 0x8b, 0x9d, 0x11, 0x8d, 0xd9, 0x49, 0x5e, 0x88, - 0x0f, 0xd3, 0x30, 0xa5, 0xa5, 0x91, 0xe9, 0xac, 0x68, 0x64, 0xad, 0xf8, 0xf2, 0x0e, 0x2e, 0xb6, - 0x5f, 0x95, 0x2a, 0xc5, 0x3a, 0xbd, 0x82, 0xf8, 0xb3, 0xe5, 0x34, 0xba, 0x8f, 0xb2, 0x28, 0xc7, - 0x71, 0xf9, 0x3b, 0x05, 0xf2, 0xba, 0x57, 0xca, 0xa6, 0x0c, 0x48, 0xdd, 0x56, 0x95, 0xed, 0xd2, - 0x38, 0x5b, 0xac, 0x28, 0xeb, 0x75, 0xe6, 0x52, 0xf6, 0x86, 0xd1, 0x73, 0x6d, 0xb4, 0xcd, 0x7b, - 0x0c, 0xf9, 0xc6, 0x68, 0x6d, 0xe9, 0x24, 0xc4, 0x6f, 0x31, 0x1a, 0x78, 0x87, 0x21, 0xdf, 0xed, - 0x57, 0x58, 0x1a, 0x87, 0xf8, 0x77, 0x8c, 0x06, 0xde, 0x61, 0xc8, 0xf3, 0xf6, 0x70, 0xb0, 0x74, - 0x1a, 0xe2, 0x9f, 0x30, 0x1a, 0x78, 0x87, 0x39, 0x5e, 0xca, 0xd2, 0x52, 0x12, 0xe4, 0x31, 0x3a, - 0xf2, 0x38, 0xdf, 0x6e, 0x00, 0xc6, 0x52, 0x78, 0x99, 0x6f, 0x61, 0xdd, 0x65, 0xe2, 0x1c, 0xc7, - 0xf4, 0x1a, 0xc8, 0xcf, 0xbe, 0x6c, 0x45, 0xd7, 0x2f, 0xca, 0x48, 0xde, 0x7f, 0x3c, 0x4e, 0x36, - 0x11, 0x9a, 0x63, 0x3d, 0xdf, 0x4c, 0x02, 0x66, 0xe2, 0x9b, 0x2f, 0x00, 0x63, 0x51, 0xdf, 0x24, - 0xbd, 0xf9, 0xe0, 0x9b, 0x8b, 0xd5, 0xe5, 0xb1, 0xc3, 0xf0, 0xff, 0x4e, 0x96, 0x18, 0x6f, 0x70, - 0x6e, 0xfd, 0xe4, 0xd4, 0xfc, 0xbf, 0x86, 0x6f, 0xce, 0x03, 0xe6, 0xdc, 0x33, 0xf9, 0xcc, 0x3d, - 0xac, 0xf5, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0x61, 0xe7, 0x9b, 0x73, 0x02, 0x00, 0x00, + // 444 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xc1, 0x6b, 0xdb, 0x30, + 0x14, 0x87, 0xe7, 0xa4, 0x4e, 0xec, 0x17, 0xba, 0x19, 0x31, 0x98, 0x58, 0x2f, 0xa1, 0x30, 0x08, + 0x83, 0xf9, 0x90, 0x8c, 0xad, 0x6c, 0xa7, 0x74, 0xf4, 0x50, 0x46, 0x1d, 0x70, 0x09, 0x3b, 0x96, + 0x78, 0x13, 0x65, 0x9e, 0x6d, 0x19, 0xdb, 0x1a, 0xe8, 0x8f, 0x1f, 0x8c, 0x27, 0xcb, 0xb5, 0x6c, + 0x14, 0xd2, 0x9b, 0xcc, 0xef, 0xfb, 0xf2, 0x9e, 0xf4, 0x1e, 0x81, 0x37, 0x39, 0xaf, 0xd8, 0x43, + 0xc3, 0xea, 0xe6, 0x81, 0x27, 0x29, 0xfb, 0xd9, 0xd4, 0x61, 0x59, 0xf1, 0x86, 0x93, 0x59, 0x5a, + 0xf3, 0xa2, 0x4c, 0x2e, 0x2f, 0x60, 0x7e, 0xff, 0x3b, 0x2f, 0x33, 0xb6, 0x21, 0x01, 0x4c, 0x7f, + 0x89, 0x84, 0x3a, 0x4b, 0x67, 0xe5, 0xc4, 0x78, 0xbc, 0xfc, 0xe7, 0x81, 0x7b, 0x77, 0x28, 0x4b, + 0x49, 0x42, 0x70, 0x0b, 0x91, 0xe7, 0x92, 0x3a, 0xcb, 0xe9, 0x6a, 0xb1, 0xa6, 0x61, 0xab, 0x87, + 0x2a, 0x0d, 0x23, 0x8c, 0x6e, 0x8a, 0xa6, 0x92, 0x71, 0x8b, 0x21, 0x5f, 0x37, 0x55, 0x25, 0xe9, + 0xc4, 0xc6, 0xdf, 0x63, 0xa4, 0x79, 0x85, 0x21, 0xcf, 0x93, 0x34, 0x95, 0x74, 0x6a, 0xe3, 0x77, + 0x18, 0x69, 0x5e, 0x61, 0xc8, 0x27, 0xe2, 0xf1, 0x51, 0xd2, 0x33, 0x1b, 0x7f, 0x8d, 0x91, 0xe6, + 0x15, 0xa6, 0x78, 0xce, 0x33, 0x49, 0x5d, 0x2b, 0x8f, 0x51, 0xc7, 0xe3, 0x19, 0x79, 0x56, 0x88, + 0x5c, 0xd2, 0x99, 0x8d, 0xbf, 0xc1, 0x48, 0xf3, 0x0a, 0x23, 0x9f, 0xc1, 0xab, 0x37, 0xeb, 0xb6, + 0xc4, 0x5c, 0x29, 0x17, 0xa3, 0x2b, 0xeb, 0xb4, 0xb5, 0x9e, 0x60, 0x25, 0x7e, 0xfa, 0xd8, 0x8a, + 0x9e, 0x55, 0xd4, 0x69, 0x27, 0xea, 0x4f, 0x14, 0x45, 0x57, 0xd1, 0xb7, 0x89, 0xfb, 0x61, 0x45, + 0x61, 0x54, 0x14, 0x5d, 0x45, 0xb0, 0x8a, 0xc3, 0x8a, 0x1d, 0xfc, 0xf6, 0x0a, 0xa0, 0x1f, 0x34, + 0x6e, 0xcb, 0x1f, 0x26, 0xd5, 0xb6, 0x4c, 0x63, 0x3c, 0x92, 0xd7, 0xe0, 0xfe, 0x3d, 0x64, 0x82, + 0xd1, 0xc9, 0xd2, 0x59, 0xb9, 0x71, 0xfb, 0xf1, 0x65, 0x72, 0xe5, 0xa0, 0xd9, 0x8f, 0xdc, 0x34, + 0x7d, 0x8b, 0xe9, 0x9b, 0xe6, 0x2d, 0x40, 0x3f, 0x7c, 0xd3, 0x74, 0x5b, 0xf3, 0x9d, 0x69, 0x2e, + 0xd6, 0xaf, 0xba, 0x9b, 0xe8, 0x9d, 0x1e, 0x35, 0xd1, 0xef, 0xc5, 0xa9, 0xf6, 0xfd, 0xb1, 0xf9, + 0xf4, 0x20, 0xa6, 0xe9, 0x59, 0x4c, 0x6f, 0xd4, 0x7e, 0xbf, 0x2b, 0x96, 0x8b, 0x0f, 0xda, 0x7f, + 0xd9, 0xb7, 0x1f, 0x89, 0x9c, 0x55, 0x87, 0xcc, 0xfc, 0xa9, 0xaf, 0x70, 0x3e, 0xd8, 0x21, 0xcb, + 0x63, 0x1c, 0xef, 0x03, 0x65, 0x73, 0xaa, 0xa7, 0xae, 0x3f, 0x96, 0xf7, 0xc7, 0x2a, 0x9f, 0x3f, + 0x47, 0x3e, 0x56, 0xf9, 0xec, 0x84, 0xfc, 0xfe, 0x03, 0xcc, 0xf5, 0x4b, 0x90, 0x05, 0xcc, 0xf7, + 0xd1, 0xf7, 0x68, 0xf7, 0x23, 0x0a, 0x5e, 0x10, 0x80, 0xd9, 0x36, 0xde, 0x5e, 0xdf, 0x7e, 0x0b, + 0x1c, 0xe2, 0x83, 0x1b, 0xef, 0xee, 0xb6, 0x51, 0x30, 0x49, 0x66, 0xea, 0xaf, 0x6d, 0xf3, 0x3f, + 0x00, 0x00, 0xff, 0xff, 0xa2, 0x4b, 0xe1, 0x77, 0xf5, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto index 65357916..43b440e2 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto @@ -37,10 +37,21 @@ message Simple3 { double dub = 1; } +enum Numeral { + UNKNOWN = 0; + ARABIC = 1; + ROMAN = 2; +} + message Mappy { map nummy = 1; map strry = 2; map objjy = 3; map buggy = 4; map booly = 5; + map enumy = 6; + map s32booly = 7; + map s64booly = 8; + map u32booly = 9; + map u64booly = 10; } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go index 2104b464..75e63319 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go @@ -7,6 +7,11 @@ package jsonpb import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import google_protobuf "github.com/gogo/protobuf/types" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" +import google_protobuf4 "github.com/gogo/protobuf/types" // skipping weak import gogoproto "gogoproto" @@ -344,6 +349,7 @@ type MsgWithOneof struct { // *MsgWithOneof_Title // *MsgWithOneof_Salary // *MsgWithOneof_Country + // *MsgWithOneof_HomeAddress Union isMsgWithOneof_Union `protobuf_oneof:"union"` XXX_unrecognized []byte `json:"-"` } @@ -364,12 +370,16 @@ type MsgWithOneof_Salary struct { Salary int64 `protobuf:"varint,2,opt,name=salary,oneof"` } type MsgWithOneof_Country struct { - Country string `protobuf:"bytes,3,opt,name=Country,json=country,oneof"` + Country string `protobuf:"bytes,3,opt,name=Country,oneof"` +} +type MsgWithOneof_HomeAddress struct { + HomeAddress string `protobuf:"bytes,4,opt,name=home_address,json=homeAddress,oneof"` } -func (*MsgWithOneof_Title) isMsgWithOneof_Union() {} -func (*MsgWithOneof_Salary) isMsgWithOneof_Union() {} -func (*MsgWithOneof_Country) isMsgWithOneof_Union() {} +func (*MsgWithOneof_Title) isMsgWithOneof_Union() {} +func (*MsgWithOneof_Salary) isMsgWithOneof_Union() {} +func (*MsgWithOneof_Country) isMsgWithOneof_Union() {} +func (*MsgWithOneof_HomeAddress) isMsgWithOneof_Union() {} func (m *MsgWithOneof) GetUnion() isMsgWithOneof_Union { if m != nil { @@ -399,12 +409,20 @@ func (m *MsgWithOneof) GetCountry() string { return "" } +func (m *MsgWithOneof) GetHomeAddress() string { + if x, ok := m.GetUnion().(*MsgWithOneof_HomeAddress); ok { + return x.HomeAddress + } + return "" +} + // XXX_OneofFuncs is for the internal use of the proto package. func (*MsgWithOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _MsgWithOneof_OneofMarshaler, _MsgWithOneof_OneofUnmarshaler, _MsgWithOneof_OneofSizer, []interface{}{ (*MsgWithOneof_Title)(nil), (*MsgWithOneof_Salary)(nil), (*MsgWithOneof_Country)(nil), + (*MsgWithOneof_HomeAddress)(nil), } } @@ -421,6 +439,9 @@ func _MsgWithOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { case *MsgWithOneof_Country: _ = b.EncodeVarint(3<<3 | proto.WireBytes) _ = b.EncodeStringBytes(x.Country) + case *MsgWithOneof_HomeAddress: + _ = b.EncodeVarint(4<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.HomeAddress) case nil: default: return fmt.Errorf("MsgWithOneof.Union has unexpected type %T", x) @@ -452,6 +473,13 @@ func _MsgWithOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.B x, err := b.DecodeStringBytes() m.Union = &MsgWithOneof_Country{x} return true, err + case 4: // union.home_address + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &MsgWithOneof_HomeAddress{x} + return true, err default: return false, nil } @@ -472,6 +500,10 @@ func _MsgWithOneof_OneofSizer(msg proto.Message) (n int) { n += proto.SizeVarint(3<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.Country))) n += len(x.Country) + case *MsgWithOneof_HomeAddress: + n += proto.SizeVarint(4<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.HomeAddress))) + n += len(x.HomeAddress) case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) @@ -480,9 +512,9 @@ func _MsgWithOneof_OneofSizer(msg proto.Message) (n int) { } type Real struct { - Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *Real) Reset() { *m = Real{} } @@ -491,18 +523,12 @@ func (*Real) ProtoMessage() {} func (*Real) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{5} } var extRange_Real = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*Real) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Real } -func (m *Real) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *Real) GetValue() float64 { if m != nil && m.Value != nil { @@ -512,9 +538,9 @@ func (m *Real) GetValue() float64 { } type Complex struct { - Imaginary *float64 `protobuf:"fixed64,1,opt,name=imaginary" json:"imaginary,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Imaginary *float64 `protobuf:"fixed64,1,opt,name=imaginary" json:"imaginary,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *Complex) Reset() { *m = Complex{} } @@ -523,18 +549,12 @@ func (*Complex) ProtoMessage() {} func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{6} } var extRange_Complex = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*Complex) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Complex } -func (m *Complex) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *Complex) GetImaginary() float64 { if m != nil && m.Imaginary != nil { @@ -549,6 +569,120 @@ var E_Complex_RealExtension = &proto.ExtensionDesc{ Field: 123, Name: "jsonpb.Complex.real_extension", Tag: "bytes,123,opt,name=real_extension,json=realExtension", + Filename: "test_objects.proto", +} + +type KnownTypes struct { + An *google_protobuf.Any `protobuf:"bytes,14,opt,name=an" json:"an,omitempty"` + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + St *google_protobuf2.Struct `protobuf:"bytes,12,opt,name=st" json:"st,omitempty"` + Ts *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf4.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf4.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf4.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf4.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf4.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf4.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf4.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf4.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf4.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{7} } + +func (m *KnownTypes) GetAn() *google_protobuf.Any { + if m != nil { + return m.An + } + return nil +} + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetSt() *google_protobuf2.Struct { + if m != nil { + return m.St + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf3.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf4.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf4.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf4.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf4.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf4.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf4.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf4.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf4.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf4.BytesValue { + if m != nil { + return m.Bytes + } + return nil } var E_Name = &proto.ExtensionDesc{ @@ -557,6 +691,7 @@ var E_Name = &proto.ExtensionDesc{ Field: 124, Name: "jsonpb.name", Tag: "bytes,124,opt,name=name", + Filename: "test_objects.proto", } func init() { @@ -567,60 +702,83 @@ func init() { proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof") proto.RegisterType((*Real)(nil), "jsonpb.Real") proto.RegisterType((*Complex)(nil), "jsonpb.Complex") + proto.RegisterType((*KnownTypes)(nil), "jsonpb.KnownTypes") proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value) proto.RegisterExtension(E_Complex_RealExtension) proto.RegisterExtension(E_Name) } +func init() { proto.RegisterFile("test_objects.proto", fileDescriptorTestObjects) } + var fileDescriptorTestObjects = []byte{ - // 784 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x94, 0xdf, 0x6e, 0xd3, 0x48, - 0x14, 0xc6, 0x1b, 0x4f, 0x1c, 0xdb, 0x93, 0x34, 0x9b, 0x1d, 0xa5, 0xbb, 0xde, 0xec, 0xae, 0xb6, - 0x8a, 0x76, 0xab, 0xa5, 0x40, 0x90, 0x42, 0x55, 0xa1, 0xc2, 0x0d, 0x69, 0xc3, 0x1f, 0x89, 0x16, - 0x69, 0xaa, 0xaa, 0xdc, 0x45, 0x4e, 0xea, 0x06, 0x17, 0xc7, 0x13, 0x1d, 0x3b, 0xd0, 0x08, 0x2e, - 0x78, 0x08, 0x9e, 0x81, 0x47, 0xe0, 0x41, 0x78, 0x00, 0x1e, 0x84, 0x2b, 0xe6, 0xcc, 0xd8, 0x9e, - 0xb4, 0x15, 0xbd, 0xe9, 0x9c, 0xf9, 0xce, 0xf7, 0x65, 0xe6, 0x37, 0x47, 0xa6, 0x2c, 0x0b, 0xd3, - 0x6c, 0x24, 0xc6, 0x17, 0xe1, 0x24, 0x4b, 0x7b, 0x73, 0x10, 0x99, 0x60, 0xb5, 0x8b, 0x54, 0x24, - 0xf3, 0x71, 0xa7, 0x3d, 0x15, 0x53, 0xa1, 0xb6, 0xee, 0xe1, 0x4a, 0xab, 0xdd, 0xaf, 0x16, 0xad, - 0x1d, 0x47, 0xb3, 0x79, 0x1c, 0xb2, 0x0d, 0x5a, 0x13, 0xa3, 0xb1, 0x10, 0xb1, 0x5f, 0xd9, 0xac, - 0xfc, 0xef, 0x72, 0x5b, 0x0c, 0x64, 0xc1, 0x7e, 0xa7, 0x8e, 0x18, 0x45, 0x49, 0x76, 0xbf, 0xef, - 0x5b, 0x72, 0xdf, 0xe6, 0x35, 0xf1, 0x1c, 0xab, 0x52, 0xd8, 0xdd, 0xf1, 0x89, 0x14, 0x88, 0x16, - 0x76, 0x77, 0xd8, 0x1f, 0xd4, 0x15, 0xa3, 0x85, 0xb6, 0x54, 0xa5, 0xb2, 0xce, 0x1d, 0x71, 0xa2, - 0x4a, 0x23, 0x49, 0x93, 0x2d, 0xa5, 0x6a, 0x2e, 0x15, 0xae, 0x54, 0xbb, 0x6a, 0x52, 0xfa, 0x55, - 0x4a, 0xc7, 0x2b, 0xae, 0x54, 0xbb, 0x1c, 0x29, 0xb1, 0x5c, 0x92, 0x2e, 0x75, 0x88, 0xf3, 0x58, - 0x04, 0x99, 0xef, 0x4a, 0xc5, 0x92, 0x87, 0x78, 0x82, 0x95, 0xf6, 0x9c, 0x89, 0xc5, 0x38, 0x0e, - 0x7d, 0x4f, 0x2a, 0x15, 0xe9, 0x39, 0x50, 0x65, 0x1e, 0x97, 0x41, 0x94, 0x4c, 0x7d, 0x2a, 0x25, - 0x0f, 0xe3, 0x54, 0xa9, 0xe3, 0xc6, 0x4b, 0x89, 0xd1, 0xaf, 0x4b, 0xa5, 0x21, 0xe3, 0x06, 0x58, - 0xb1, 0xdb, 0xb4, 0x21, 0x46, 0x93, 0x40, 0xd2, 0xd5, 0x6a, 0x03, 0xd5, 0x81, 0xf7, 0xfd, 0xdb, - 0x3f, 0xb6, 0x6a, 0xe0, 0x54, 0xec, 0x4b, 0x55, 0xad, 0xbb, 0x9f, 0x2d, 0xea, 0xf0, 0x70, 0x1e, - 0x06, 0x59, 0x8a, 0x54, 0xa1, 0xa0, 0x4a, 0x90, 0x2a, 0x14, 0x54, 0xa1, 0xa4, 0x4a, 0x90, 0x2a, - 0x94, 0x54, 0xa1, 0xa4, 0x4a, 0x90, 0x2a, 0x94, 0x54, 0xc1, 0x50, 0x25, 0x48, 0x15, 0x0c, 0x55, - 0x30, 0x54, 0x09, 0x52, 0x05, 0x43, 0x15, 0x0c, 0x55, 0x82, 0x54, 0xe1, 0x78, 0xc5, 0x55, 0x52, - 0x25, 0x48, 0x15, 0x0c, 0x55, 0x28, 0xa9, 0x12, 0xa4, 0x0a, 0x25, 0x55, 0x30, 0x54, 0x09, 0x52, - 0x05, 0x43, 0x15, 0x0c, 0x55, 0x82, 0x54, 0xc1, 0x50, 0x85, 0x92, 0x2a, 0x41, 0xaa, 0xa0, 0x41, - 0x7d, 0x91, 0xd3, 0x77, 0x1a, 0x9d, 0x4d, 0xc3, 0x8c, 0x6d, 0x53, 0x7b, 0x22, 0x62, 0x01, 0x6a, - 0xf8, 0x9a, 0xfd, 0x76, 0x4f, 0x8f, 0x6d, 0x4f, 0xcb, 0xbd, 0x7d, 0xd4, 0xb8, 0x6e, 0x61, 0x77, - 0x31, 0x4f, 0x77, 0x23, 0xbc, 0x9f, 0x75, 0xd7, 0x40, 0xfd, 0x67, 0x5b, 0xb4, 0x96, 0xaa, 0x11, - 0x57, 0xaf, 0x5d, 0xef, 0x37, 0x8b, 0x6e, 0x3d, 0xf8, 0x3c, 0x57, 0xd9, 0x2d, 0x0d, 0x44, 0x75, - 0xe2, 0x39, 0x6f, 0x76, 0x22, 0xa0, 0xbc, 0xd5, 0x01, 0xfd, 0xc0, 0x7e, 0x5b, 0x65, 0xfe, 0x52, - 0x74, 0xe6, 0xef, 0xce, 0x0b, 0x9d, 0xdd, 0xa1, 0x1e, 0x8c, 0x8a, 0xe6, 0x0d, 0x15, 0x7b, 0xa3, - 0xd9, 0x85, 0x7c, 0xd5, 0xfd, 0x8f, 0xda, 0xfa, 0xd0, 0x0e, 0x25, 0x7c, 0x78, 0xd0, 0x5a, 0x63, - 0x1e, 0xb5, 0x9f, 0xf2, 0xe1, 0xf0, 0xa8, 0x55, 0x61, 0x2e, 0xad, 0x0e, 0x5e, 0x9c, 0x0c, 0x5b, - 0x56, 0xf7, 0x93, 0x45, 0xab, 0x87, 0xc1, 0x3c, 0x65, 0x0f, 0x69, 0x7d, 0xa6, 0xc7, 0x05, 0xd9, - 0xab, 0x19, 0xab, 0xf7, 0xff, 0x2c, 0xf2, 0xb1, 0xa5, 0x77, 0xa8, 0xe6, 0x47, 0x3e, 0xc5, 0x30, - 0xc9, 0x60, 0xc9, 0xbd, 0x59, 0x51, 0xb3, 0xc7, 0x74, 0x7d, 0xa6, 0x66, 0xb3, 0xb8, 0xb5, 0xa5, - 0xec, 0x7f, 0x5f, 0xb5, 0xe3, 0xbc, 0xea, 0x6b, 0xeb, 0x80, 0xfa, 0xcc, 0xec, 0x74, 0x1e, 0xd1, - 0xe6, 0xd5, 0x7c, 0xd6, 0xa2, 0xe4, 0x4d, 0xb8, 0x54, 0xcf, 0x48, 0x38, 0x2e, 0x59, 0x9b, 0xda, - 0x6f, 0x83, 0x78, 0x11, 0xaa, 0xef, 0x87, 0xc7, 0x75, 0xb1, 0x67, 0x3d, 0xa8, 0x74, 0x8e, 0x68, - 0xeb, 0x7a, 0xfc, 0xaa, 0xdf, 0xd5, 0xfe, 0x7f, 0x57, 0xfd, 0x37, 0x1f, 0xc5, 0xe4, 0x75, 0x43, - 0xda, 0x38, 0x4c, 0xa7, 0xa7, 0x51, 0xf6, 0xfa, 0x65, 0x12, 0x8a, 0x73, 0xf6, 0x1b, 0xb5, 0xb3, - 0x28, 0x93, 0x17, 0xc3, 0x34, 0xef, 0xd9, 0x1a, 0xd7, 0x25, 0xf3, 0xe5, 0x44, 0x04, 0x71, 0x00, - 0x4b, 0x15, 0x49, 0xa4, 0x90, 0xd7, 0xac, 0x43, 0x9d, 0x7d, 0xb1, 0xc0, 0x83, 0xa8, 0x8f, 0x1a, - 0x7a, 0x9c, 0x89, 0xde, 0x18, 0x38, 0xd4, 0x5e, 0x24, 0x91, 0x48, 0xba, 0x5b, 0xb4, 0xca, 0xc3, - 0x20, 0x36, 0x17, 0xab, 0xa8, 0x0f, 0x8c, 0x2e, 0xb6, 0x5d, 0xf7, 0xac, 0xf5, 0x51, 0xfe, 0x59, - 0xdd, 0x77, 0x18, 0x86, 0x67, 0xbc, 0x64, 0x7f, 0x51, 0x2f, 0x9a, 0x05, 0xd3, 0x28, 0xc1, 0x1f, - 0xd5, 0xed, 0x66, 0xc3, 0x58, 0xfa, 0x07, 0xb4, 0x09, 0x32, 0x7a, 0x14, 0x5e, 0x66, 0x61, 0x92, - 0xca, 0x1f, 0x63, 0x0d, 0x33, 0x2c, 0x41, 0xec, 0xbf, 0xbf, 0x3a, 0x6d, 0x79, 0x3c, 0x5f, 0x47, - 0xd3, 0xb0, 0xf0, 0xec, 0x6d, 0xd2, 0x6a, 0x12, 0xcc, 0xc2, 0x6b, 0xde, 0x0f, 0x0a, 0xbf, 0x52, - 0x5e, 0xad, 0xfd, 0x08, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x95, 0x80, 0x0d, 0x2c, 0x06, 0x00, 0x00, + // 1098 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x95, 0xdd, 0x72, 0xdb, 0x44, + 0x14, 0xc7, 0x2b, 0xc9, 0xf2, 0xc7, 0xda, 0x0d, 0x66, 0x27, 0xa5, 0x8a, 0x09, 0x54, 0x63, 0x4a, + 0x11, 0x2d, 0x75, 0x06, 0xc5, 0xe3, 0x61, 0x0a, 0x37, 0xf9, 0x30, 0x94, 0x81, 0x94, 0x99, 0x4d, + 0x43, 0xb9, 0xf3, 0xc8, 0xf1, 0xc6, 0x55, 0x91, 0xb5, 0x9e, 0xdd, 0x15, 0xa9, 0x07, 0x2e, 0x72, + 0xcd, 0x35, 0xcf, 0xc0, 0x23, 0xf0, 0x20, 0x3c, 0x00, 0x57, 0x3c, 0x05, 0x57, 0xcc, 0x39, 0x2b, + 0x59, 0x89, 0x1d, 0x5f, 0x59, 0xbb, 0xe7, 0x7f, 0xfe, 0x5e, 0xfd, 0xf6, 0xe8, 0x1c, 0x42, 0x35, + 0x57, 0x7a, 0x24, 0xc6, 0x6f, 0xf8, 0xb9, 0x56, 0xbd, 0xb9, 0x14, 0x5a, 0xd0, 0xea, 0x1b, 0x25, + 0xd2, 0xf9, 0xb8, 0xb3, 0x33, 0x15, 0x62, 0x9a, 0xf0, 0x3d, 0xdc, 0x1d, 0x67, 0x17, 0x7b, 0x51, + 0xba, 0x30, 0x92, 0xce, 0x87, 0xab, 0xa1, 0x49, 0x26, 0x23, 0x1d, 0x8b, 0x34, 0x8f, 0xef, 0xae, + 0xc6, 0x95, 0x96, 0xd9, 0xb9, 0xce, 0xa3, 0x0f, 0x56, 0xa3, 0x3a, 0x9e, 0x71, 0xa5, 0xa3, 0xd9, + 0x7c, 0x93, 0xfd, 0xa5, 0x8c, 0xe6, 0x73, 0x2e, 0xf3, 0x13, 0x76, 0xb6, 0xa7, 0x62, 0x2a, 0xf0, + 0x71, 0x0f, 0x9e, 0xcc, 0x6e, 0xf7, 0x6f, 0x9b, 0x54, 0x4f, 0xe3, 0xd9, 0x3c, 0xe1, 0xf4, 0x1e, + 0xa9, 0x8a, 0xd1, 0x58, 0x88, 0xc4, 0xb3, 0x7c, 0x2b, 0xa8, 0x33, 0x57, 0x1c, 0x0a, 0x91, 0xd0, + 0xfb, 0xa4, 0x26, 0x46, 0x71, 0xaa, 0xf7, 0x43, 0xcf, 0xf6, 0xad, 0xc0, 0x65, 0x55, 0xf1, 0x2d, + 0xac, 0x96, 0x81, 0x41, 0xdf, 0x73, 0x7c, 0x2b, 0x70, 0x4c, 0x60, 0xd0, 0xa7, 0x3b, 0xa4, 0x2e, + 0x46, 0x99, 0x49, 0xa9, 0xf8, 0x56, 0x70, 0x97, 0xd5, 0xc4, 0x19, 0x2e, 0xcb, 0xd0, 0xa0, 0xef, + 0xb9, 0xbe, 0x15, 0x54, 0xf2, 0x50, 0x91, 0xa5, 0x4c, 0x56, 0xd5, 0xb7, 0x82, 0x77, 0x59, 0x4d, + 0x9c, 0x5e, 0xcb, 0x52, 0x26, 0xab, 0xe6, 0x5b, 0x01, 0xcd, 0x43, 0x83, 0xbe, 0x39, 0xc4, 0x45, + 0x22, 0x22, 0xed, 0xd5, 0x7d, 0x2b, 0xb0, 0x59, 0x55, 0x7c, 0x0d, 0x2b, 0x93, 0x33, 0x11, 0xd9, + 0x38, 0xe1, 0x5e, 0xc3, 0xb7, 0x02, 0x8b, 0xd5, 0xc4, 0x31, 0x2e, 0x73, 0x3b, 0x2d, 0xe3, 0x74, + 0xea, 0x11, 0xdf, 0x0a, 0x1a, 0x60, 0x87, 0x4b, 0x63, 0x37, 0x5e, 0x68, 0xae, 0xbc, 0xa6, 0x6f, + 0x05, 0x2d, 0x56, 0x15, 0x87, 0xb0, 0xa2, 0x4f, 0x48, 0x4b, 0x8c, 0xce, 0x23, 0xa5, 0xf3, 0x68, + 0x0b, 0xa2, 0x87, 0x8d, 0xff, 0xfe, 0x79, 0xe0, 0xa2, 0x80, 0x11, 0x71, 0x14, 0x29, 0x8d, 0xcf, + 0xdd, 0x3f, 0x6d, 0x52, 0x63, 0x7c, 0xce, 0x23, 0xad, 0x80, 0xaa, 0x2c, 0xa8, 0x3a, 0x40, 0x55, + 0x16, 0x54, 0xe5, 0x92, 0xaa, 0x03, 0x54, 0xe5, 0x92, 0xaa, 0x5c, 0x52, 0x75, 0x80, 0xaa, 0x5c, + 0x52, 0x95, 0x25, 0x55, 0x07, 0xa8, 0xca, 0x92, 0xaa, 0x2c, 0xa9, 0x3a, 0x40, 0x55, 0x96, 0x54, + 0x65, 0x49, 0xd5, 0x01, 0xaa, 0xf2, 0xf4, 0x5a, 0xd6, 0x92, 0xaa, 0x03, 0x54, 0x65, 0x49, 0x55, + 0x2e, 0xa9, 0x3a, 0x40, 0x55, 0x2e, 0xa9, 0xca, 0x92, 0xaa, 0x03, 0x54, 0x65, 0x49, 0x55, 0x96, + 0x54, 0x1d, 0xa0, 0x2a, 0x4b, 0xaa, 0x72, 0x49, 0xd5, 0x01, 0xaa, 0xd2, 0x80, 0xfa, 0xcb, 0x26, + 0xd5, 0x57, 0xf1, 0x64, 0xca, 0x35, 0x7d, 0x4c, 0xdc, 0x73, 0x91, 0x08, 0x89, 0xc5, 0xb7, 0x15, + 0x6e, 0xf7, 0xcc, 0x07, 0xd5, 0x33, 0xe1, 0xde, 0x11, 0xc4, 0x98, 0x91, 0xd0, 0xa7, 0xe0, 0x67, + 0xd4, 0x00, 0x6f, 0x93, 0xba, 0x2a, 0xf1, 0x97, 0x3e, 0x22, 0x55, 0x85, 0x25, 0x8e, 0xb7, 0xdd, + 0x0c, 0xb7, 0x0a, 0xb5, 0x29, 0x7c, 0x96, 0x47, 0xe9, 0xa7, 0x06, 0x08, 0x2a, 0xe1, 0x9c, 0xeb, + 0x4a, 0x00, 0x94, 0x4b, 0x6b, 0xd2, 0x5c, 0xb0, 0xb7, 0x8d, 0x9e, 0xef, 0x14, 0xca, 0xfc, 0xde, + 0x59, 0x11, 0xa7, 0x9f, 0x91, 0x86, 0x1c, 0x15, 0xe2, 0x7b, 0x68, 0xbb, 0x26, 0xae, 0xcb, 0xfc, + 0xa9, 0xfb, 0x31, 0x71, 0xcd, 0xa1, 0x6b, 0xc4, 0x61, 0xc3, 0xe3, 0xf6, 0x1d, 0xda, 0x20, 0xee, + 0x37, 0x6c, 0x38, 0x7c, 0xd1, 0xb6, 0x68, 0x9d, 0x54, 0x0e, 0xbf, 0x3f, 0x1b, 0xb6, 0xed, 0xee, + 0x1f, 0x36, 0xa9, 0x9c, 0x44, 0x73, 0x45, 0xbf, 0x24, 0xcd, 0x99, 0x29, 0x17, 0x60, 0x8f, 0x35, + 0xd6, 0x0c, 0xdf, 0x2f, 0xfc, 0x41, 0xd2, 0x3b, 0xc1, 0xfa, 0x39, 0xd5, 0x72, 0x98, 0x6a, 0xb9, + 0x60, 0x8d, 0x59, 0xb1, 0xa6, 0x07, 0xe4, 0xee, 0x0c, 0x6b, 0xb3, 0x78, 0x6b, 0x1b, 0xd3, 0x3f, + 0xb8, 0x99, 0x0e, 0xf5, 0x6a, 0x5e, 0xdb, 0x18, 0x34, 0x67, 0xe5, 0x4e, 0xe7, 0x2b, 0xb2, 0x75, + 0xd3, 0x9f, 0xb6, 0x89, 0xf3, 0x33, 0x5f, 0xe0, 0x35, 0x3a, 0x0c, 0x1e, 0xe9, 0x36, 0x71, 0x7f, + 0x89, 0x92, 0x8c, 0x63, 0xff, 0x68, 0x30, 0xb3, 0x78, 0x66, 0x7f, 0x61, 0x75, 0x5e, 0x90, 0xf6, + 0xaa, 0xfd, 0xf5, 0xfc, 0xba, 0xc9, 0x7f, 0x78, 0x3d, 0x7f, 0xfd, 0x52, 0x4a, 0xbf, 0xee, 0xef, + 0x16, 0x69, 0x9d, 0xa8, 0xe9, 0xab, 0x58, 0xbf, 0xfe, 0x21, 0xe5, 0xe2, 0x82, 0xbe, 0x47, 0x5c, + 0x1d, 0xeb, 0x84, 0xa3, 0x5d, 0xe3, 0xf9, 0x1d, 0x66, 0x96, 0xd4, 0x23, 0x55, 0x15, 0x25, 0x91, + 0x5c, 0xa0, 0xa7, 0xf3, 0xfc, 0x0e, 0xcb, 0xd7, 0xb4, 0x43, 0x6a, 0x47, 0x22, 0x83, 0x93, 0x60, + 0x57, 0x83, 0x9c, 0x62, 0x83, 0x7e, 0x44, 0x5a, 0xaf, 0xc5, 0x8c, 0x8f, 0xa2, 0xc9, 0x44, 0x72, + 0xa5, 0xb0, 0xb9, 0x81, 0xa0, 0x09, 0xbb, 0x07, 0x66, 0xf3, 0xb0, 0x46, 0xdc, 0x2c, 0x8d, 0x45, + 0xda, 0x7d, 0x44, 0x2a, 0x8c, 0x47, 0x49, 0xf9, 0xfa, 0x16, 0xb6, 0x21, 0xb3, 0x78, 0x5c, 0xaf, + 0x4f, 0xda, 0x57, 0x57, 0x57, 0x57, 0x76, 0xf7, 0x12, 0xfe, 0x11, 0xde, 0xe4, 0x2d, 0xdd, 0x25, + 0x8d, 0x78, 0x16, 0x4d, 0xe3, 0x14, 0x4e, 0x66, 0xe4, 0xe5, 0x46, 0x99, 0x12, 0x1e, 0x93, 0x2d, + 0xc9, 0xa3, 0x64, 0xc4, 0xdf, 0x6a, 0x9e, 0xaa, 0x58, 0xa4, 0xb4, 0x55, 0x96, 0x54, 0x94, 0x78, + 0xbf, 0xde, 0xac, 0xc9, 0xdc, 0x9e, 0xdd, 0x85, 0xa4, 0x61, 0x91, 0xd3, 0xfd, 0xb7, 0x42, 0xc8, + 0x77, 0xa9, 0xb8, 0x4c, 0x5f, 0x2e, 0xe6, 0x5c, 0xd1, 0x87, 0xc4, 0x8e, 0x52, 0x6f, 0x0b, 0x53, + 0xb7, 0x7b, 0x66, 0x9a, 0xf4, 0x8a, 0x69, 0xd2, 0x3b, 0x48, 0x17, 0xcc, 0x8e, 0x52, 0xfa, 0x84, + 0x38, 0x93, 0xcc, 0x7c, 0xa5, 0xcd, 0x70, 0x67, 0x4d, 0x76, 0x9c, 0xcf, 0x34, 0x06, 0x2a, 0xfa, + 0x09, 0xb1, 0x95, 0xc6, 0x5e, 0xd9, 0x0c, 0xef, 0xaf, 0x69, 0x4f, 0x71, 0xbe, 0x31, 0x5b, 0xc1, + 0xd7, 0x6f, 0x6b, 0x95, 0xdf, 0x6f, 0x67, 0x4d, 0xf8, 0xb2, 0x18, 0x75, 0xcc, 0xd6, 0x8a, 0xf6, + 0x88, 0x33, 0x19, 0x27, 0x78, 0x3b, 0xcd, 0x70, 0x77, 0xfd, 0x04, 0xd8, 0x8e, 0x7e, 0x04, 0xc8, + 0x0c, 0x84, 0xf4, 0x29, 0x71, 0x2e, 0x12, 0x8d, 0x97, 0x05, 0x9f, 0xc6, 0xaa, 0x1e, 0x1b, 0x5b, + 0x2e, 0xbf, 0x48, 0x34, 0xc8, 0xe3, 0x7c, 0x3a, 0xdd, 0x26, 0xc7, 0x62, 0xcf, 0xe5, 0xf1, 0xa0, + 0x0f, 0xa7, 0xc9, 0x06, 0x7d, 0x9c, 0x58, 0xb7, 0x9d, 0xe6, 0xec, 0xba, 0x3e, 0x1b, 0xf4, 0xd1, + 0x7e, 0x3f, 0xc4, 0x31, 0xb6, 0xc1, 0x7e, 0x3f, 0x2c, 0xec, 0xf7, 0x43, 0xb4, 0xdf, 0x0f, 0x71, + 0xb6, 0x6d, 0xb2, 0x5f, 0xea, 0x33, 0xd4, 0x57, 0x70, 0xd8, 0x34, 0x36, 0xa0, 0x84, 0xaf, 0xcd, + 0xc8, 0x51, 0x07, 0xfe, 0xd0, 0x37, 0xc8, 0x06, 0x7f, 0xd3, 0xc0, 0x73, 0x7f, 0xa5, 0x25, 0xfd, + 0x9c, 0xb8, 0xe5, 0x78, 0xbc, 0xed, 0x05, 0xb0, 0xb1, 0x9b, 0x04, 0xa3, 0x7c, 0xe6, 0x93, 0x4a, + 0x1a, 0xcd, 0xf8, 0x4a, 0x89, 0xfe, 0x86, 0xbd, 0x00, 0x23, 0x3f, 0xb9, 0xff, 0x07, 0x00, 0x00, + 0xff, 0xff, 0x17, 0x38, 0x3a, 0x54, 0x53, 0x09, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto index c1333ed1..18d2adda 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto @@ -31,6 +31,12 @@ syntax = "proto2"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + package jsonpb; import weak "gogoproto/gogo.proto"; @@ -93,6 +99,7 @@ message MsgWithOneof { string title = 1; int64 salary = 2; string Country = 3; + string home_address = 4; } } @@ -112,3 +119,20 @@ message Complex { optional double imaginary = 1; extensions 100 to max; } + +message KnownTypes { + optional google.protobuf.Any an = 14; + optional google.protobuf.Duration dur = 1; + optional google.protobuf.Struct st = 12; + optional google.protobuf.Timestamp ts = 2; + + optional google.protobuf.DoubleValue dbl = 3; + optional google.protobuf.FloatValue flt = 4; + optional google.protobuf.Int64Value i64 = 5; + optional google.protobuf.UInt64Value u64 = 6; + optional google.protobuf.Int32Value i32 = 7; + optional google.protobuf.UInt32Value u32 = 8; + optional google.protobuf.BoolValue bool = 9; + optional google.protobuf.StringValue str = 10; + optional google.protobuf.BytesValue bytes = 11; +} diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/compare.go b/vendor/github.com/gogo/protobuf/plugin/compare/compare.go index 9f54d194..75c0399a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/compare/compare.go +++ b/vendor/github.com/gogo/protobuf/plugin/compare/compare.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -40,6 +42,7 @@ type plugin struct { fmtPkg generator.Single bytesPkg generator.Single sortkeysPkg generator.Single + protoPkg generator.Single } func NewPlugin() *plugin { @@ -59,6 +62,7 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.fmtPkg = p.NewImport("fmt") p.bytesPkg = p.NewImport("bytes") p.sortkeysPkg = p.NewImport("github.com/gogo/protobuf/sortkeys") + p.protoPkg = p.NewImport("github.com/gogo/protobuf/proto") for _, msg := range file.Messages() { if msg.DescriptorProto.GetOptions().GetMapEntry() { @@ -431,17 +435,18 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera } } if message.DescriptorProto.HasExtension() { - fieldname := "XXX_extensions" if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`extkeys := make([]int32, 0, len(this.`, fieldname, `)+len(that1.`, fieldname, `))`) - p.P(`for k, _ := range this.`, fieldname, ` {`) + p.P(`thismap := `, p.protoPkg.Use(), `.GetUnsafeExtensionsMap(this)`) + p.P(`thatmap := `, p.protoPkg.Use(), `.GetUnsafeExtensionsMap(that1)`) + p.P(`extkeys := make([]int32, 0, len(thismap)+len(thatmap))`) + p.P(`for k, _ := range thismap {`) p.In() p.P(`extkeys = append(extkeys, k)`) p.Out() p.P(`}`) - p.P(`for k, _ := range that1.`, fieldname, ` {`) + p.P(`for k, _ := range thatmap {`) p.In() - p.P(`if _, ok := this.`, fieldname, `[k]; !ok {`) + p.P(`if _, ok := thismap[k]; !ok {`) p.In() p.P(`extkeys = append(extkeys, k)`) p.Out() @@ -451,9 +456,9 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.P(p.sortkeysPkg.Use(), `.Int32s(extkeys)`) p.P(`for _, k := range extkeys {`) p.In() - p.P(`if v, ok := this.`, fieldname, `[k]; ok {`) + p.P(`if v, ok := thismap[k]; ok {`) p.In() - p.P(`if v2, ok := that1.`, fieldname, `[k]; ok {`) + p.P(`if v2, ok := thatmap[k]; ok {`) p.In() p.P(`if c := v.Compare(&v2); c != 0 {`) p.In() @@ -475,6 +480,7 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.Out() p.P(`}`) } else { + fieldname := "XXX_extensions" p.P(`if c := `, p.bytesPkg.Use(), `.Compare(this.`, fieldname, `, that1.`, fieldname, `); c != 0 {`) p.In() p.P(`return c`) diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/comparetest.go b/vendor/github.com/gogo/protobuf/plugin/compare/comparetest.go index db715717..4fbdbc63 100644 --- a/vendor/github.com/gogo/protobuf/plugin/compare/comparetest.go +++ b/vendor/github.com/gogo/protobuf/plugin/compare/comparetest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -46,6 +48,7 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes timePkg := imports.NewImport("time") testingPkg := imports.NewImport("testing") protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") + unsafePkg := imports.NewImport("unsafe") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { protoPkg = imports.NewImport("github.com/golang/protobuf/proto") } @@ -60,18 +63,28 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { used = true + hasUnsafe := gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) || + gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) p.P(`func Test`, ccTypeName, `Compare(t *`, testingPkg.Use(), `.T) {`) p.In() + if hasUnsafe { + p.P(`var bigendian uint32 = 0x01020304`) + p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) + p.In() + p.P(`t.Skip("unsafe does not work on big endian architectures")`) + p.Out() + p.P(`}`) + } p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(p)`) p.P(`if err != nil {`) p.In() p.P(`panic(err)`) p.Out() p.P(`}`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.Unmarshal(dAtA, msg); err != nil {`) p.In() p.P(`panic(err)`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/defaultcheck.go b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/defaultcheck.go index 690ad0df..486f2877 100644 --- a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/defaultcheck.go +++ b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/defaultcheck.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/description/description.go b/vendor/github.com/gogo/protobuf/plugin/description/description.go index a2f08aa0..f72efba6 100644 --- a/vendor/github.com/gogo/protobuf/plugin/description/description.go +++ b/vendor/github.com/gogo/protobuf/plugin/description/description.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/description/descriptiontest.go b/vendor/github.com/gogo/protobuf/plugin/description/descriptiontest.go index 7feaf320..babcd311 100644 --- a/vendor/github.com/gogo/protobuf/plugin/description/descriptiontest.go +++ b/vendor/github.com/gogo/protobuf/plugin/description/descriptiontest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/embedcheck/embedcheck.go b/vendor/github.com/gogo/protobuf/plugin/embedcheck/embedcheck.go index af8fd968..1cb77cac 100644 --- a/vendor/github.com/gogo/protobuf/plugin/embedcheck/embedcheck.go +++ b/vendor/github.com/gogo/protobuf/plugin/embedcheck/embedcheck.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/enumstringer/enumstringer.go b/vendor/github.com/gogo/protobuf/plugin/enumstringer/enumstringer.go index 7feb8be1..04d6e547 100644 --- a/vendor/github.com/gogo/protobuf/plugin/enumstringer/enumstringer.go +++ b/vendor/github.com/gogo/protobuf/plugin/enumstringer/enumstringer.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -74,7 +76,7 @@ func (p *enumstringer) Generate(file *generator.FileDescriptor) { continue } if gogoproto.IsGoEnumStringer(file.FileDescriptorProto, enum.EnumDescriptorProto) { - panic("old enum string method needs to be disabled, please use gogoproto.old_enum_stringer or gogoproto.old_enum_string_all and set it to false") + panic("Go enum stringer conflicts with new enumstringer plugin: please use gogoproto.goproto_enum_stringer or gogoproto.goproto_enum_string_all and set it to false") } p.atleastOne = true ccTypeName := generator.CamelCaseSlice(enum.TypeName()) diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/equal.go b/vendor/github.com/gogo/protobuf/plugin/equal/equal.go index 8c7cd6be..6a422635 100644 --- a/vendor/github.com/gogo/protobuf/plugin/equal/equal.go +++ b/vendor/github.com/gogo/protobuf/plugin/equal/equal.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -145,12 +147,12 @@ and the following test code: func TestBVerboseEqual(t *testing8.T) { popr := math_rand8.New(math_rand8.NewSource(time8.Now().UnixNano())) p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto2.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto2.Marshal(p) if err != nil { panic(err) } msg := &B{} - if err := github_com_gogo_protobuf_proto2.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto2.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -173,6 +175,7 @@ type plugin struct { generator.PluginImports fmtPkg generator.Single bytesPkg generator.Single + protoPkg generator.Single } func NewPlugin() *plugin { @@ -191,6 +194,7 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.PluginImports = generator.NewPluginImports(p.Generator) p.fmtPkg = p.NewImport("fmt") p.bytesPkg = p.NewImport("bytes") + p.protoPkg = p.NewImport("github.com/gogo/protobuf/proto") for _, msg := range file.Messages() { if msg.DescriptorProto.GetOptions().GetMapEntry() { @@ -302,9 +306,11 @@ func (p *plugin) generateField(file *generator.FileDescriptor, message *generato repeated := field.IsRepeated() ctype := gogoproto.IsCustomType(field) nullable := gogoproto.IsNullable(field) + isDuration := gogoproto.IsStdDuration(field) + isTimestamp := gogoproto.IsStdTime(field) // oneof := field.OneofIndex != nil if !repeated { - if ctype { + if ctype || isTimestamp { if nullable { p.P(`if that1.`, fieldname, ` == nil {`) p.In() @@ -330,6 +336,20 @@ func (p *plugin) generateField(file *generator.FileDescriptor, message *generato } p.Out() p.P(`}`) + } else if isDuration { + if nullable { + p.generateNullableField(fieldname, verbose) + } else { + p.P(`if this.`, fieldname, ` != that1.`, fieldname, `{`) + } + p.In() + if verbose { + p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this(%v) Not Equal that(%v)", this.`, fieldname, `, that1.`, fieldname, `)`) + } else { + p.P(`return false`) + } + p.Out() + p.P(`}`) } else { if field.IsMessage() || p.IsGroup(field) { if nullable { @@ -373,8 +393,20 @@ func (p *plugin) generateField(file *generator.FileDescriptor, message *generato p.P(`}`) p.P(`for i := range this.`, fieldname, ` {`) p.In() - if ctype { + if ctype && !p.IsMap(field) { p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) {`) + } else if isTimestamp { + if nullable { + p.P(`if !this.`, fieldname, `[i].Equal(*that1.`, fieldname, `[i]) {`) + } else { + p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) {`) + } + } else if isDuration { + if nullable { + p.P(`if dthis, dthat := this.`, fieldname, `[i], that1.`, fieldname, `[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) {`) + } else { + p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) + } } else { if p.IsMap(field) { m := p.GoMapType(nil, field) @@ -404,7 +436,15 @@ func (p *plugin) generateField(file *generator.FileDescriptor, message *generato } } } else if mapValue.IsBytes() { - p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `[i], that1.`, fieldname, `[i]) {`) + if ctype { + if nullable { + p.P(`if !this.`, fieldname, `[i].Equal(*that1.`, fieldname, `[i]) { //nullable`) + } else { + p.P(`if !this.`, fieldname, `[i].Equal(that1.`, fieldname, `[i]) { //not nullable`) + } + } else { + p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `[i], that1.`, fieldname, `[i]) {`) + } } else if mapValue.IsString() { p.P(`if this.`, fieldname, `[i] != that1.`, fieldname, `[i] {`) } else { @@ -495,16 +535,18 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera } } if message.DescriptorProto.HasExtension() { - fieldname := "XXX_extensions" if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`for k, v := range this.`, fieldname, ` {`) + fieldname := "XXX_InternalExtensions" + p.P(`thismap := `, p.protoPkg.Use(), `.GetUnsafeExtensionsMap(this)`) + p.P(`thatmap := `, p.protoPkg.Use(), `.GetUnsafeExtensionsMap(that1)`) + p.P(`for k, v := range thismap {`) p.In() - p.P(`if v2, ok := that1.`, fieldname, `[k]; ok {`) + p.P(`if v2, ok := thatmap[k]; ok {`) p.In() p.P(`if !v.Equal(&v2) {`) p.In() if verbose { - p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this[%v](%v) Not Equal that[%v](%v)", k, this.`, fieldname, `[k], k, that1.`, fieldname, `[k])`) + p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, ` this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k])`) } else { p.P(`return false`) } @@ -523,9 +565,9 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.Out() p.P(`}`) - p.P(`for k, _ := range that1.`, fieldname, ` {`) + p.P(`for k, _ := range thatmap {`) p.In() - p.P(`if _, ok := this.`, fieldname, `[k]; !ok {`) + p.P(`if _, ok := thismap[k]; !ok {`) p.In() if verbose { p.P(`return `, p.fmtPkg.Use(), `.Errorf("`, fieldname, `[%v] Not In this", k)`) @@ -537,6 +579,7 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.Out() p.P(`}`) } else { + fieldname := "XXX_extensions" p.P(`if !`, p.bytesPkg.Use(), `.Equal(this.`, fieldname, `, that1.`, fieldname, `) {`) p.In() if verbose { diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/equaltest.go b/vendor/github.com/gogo/protobuf/plugin/equal/equaltest.go index 2fec8355..1233647a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/equal/equaltest.go +++ b/vendor/github.com/gogo/protobuf/plugin/equal/equaltest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -46,6 +48,7 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes timePkg := imports.NewImport("time") testingPkg := imports.NewImport("testing") protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") + unsafePkg := imports.NewImport("unsafe") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { protoPkg = imports.NewImport("github.com/golang/protobuf/proto") } @@ -60,18 +63,30 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { used = true + hasUnsafe := gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) || + gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) p.P(`func Test`, ccTypeName, `VerboseEqual(t *`, testingPkg.Use(), `.T) {`) p.In() + if hasUnsafe { + if hasUnsafe { + p.P(`var bigendian uint32 = 0x01020304`) + p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) + p.In() + p.P(`t.Skip("unsafe does not work on big endian architectures")`) + p.Out() + p.P(`}`) + } + } p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(`, timePkg.Use(), `.Now().UnixNano()))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(p)`) p.P(`if err != nil {`) p.In() p.P(`panic(err)`) p.Out() p.P(`}`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.Unmarshal(dAtA, msg); err != nil {`) p.In() p.P(`panic(err)`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/face/face.go b/vendor/github.com/gogo/protobuf/plugin/face/face.go index 3c0c25b3..a0293452 100644 --- a/vendor/github.com/gogo/protobuf/plugin/face/face.go +++ b/vendor/github.com/gogo/protobuf/plugin/face/face.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/face/facetest.go b/vendor/github.com/gogo/protobuf/plugin/face/facetest.go index 305e092e..467cc0a6 100644 --- a/vendor/github.com/gogo/protobuf/plugin/face/facetest.go +++ b/vendor/github.com/gogo/protobuf/plugin/face/facetest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go b/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go index 0b355fb1..024c9f0a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -95,8 +97,10 @@ not print their values, while the generated GoString method will always print al package gostring import ( + "fmt" "github.com/gogo/protobuf/gogoproto" "github.com/gogo/protobuf/protoc-gen-gogo/generator" + "os" "strconv" "strings" ) @@ -106,6 +110,7 @@ type gostring struct { generator.PluginImports atleastOne bool localName string + overwrite bool } func NewGoString() *gostring { @@ -116,6 +121,10 @@ func (p *gostring) Name() string { return "gostring" } +func (p *gostring) Overwrite() { + p.overwrite = true +} + func (p *gostring) Init(g *generator.Generator) { p.Generator = g } @@ -138,8 +147,9 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { reflectPkg := p.NewImport("reflect") sortKeysPkg := p.NewImport("github.com/gogo/protobuf/sortkeys") + extensionToGoStringUsed := false for _, message := range file.Messages() { - if !gogoproto.HasGoString(file.FileDescriptorProto, message.DescriptorProto) { + if !p.overwrite && !gogoproto.HasGoString(file.FileDescriptorProto, message.DescriptorProto) { continue } if message.DescriptorProto.GetOptions().GetMapEntry() { @@ -214,7 +224,7 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { p.P(`s = append(s, "`, fieldname, `: " + `, mapName, `+ ",\n")`) p.Out() p.P(`}`) - } else if field.IsMessage() || p.IsGroup(field) { + } else if (field.IsMessage() && !gogoproto.IsCustomType(field) && !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field)) || p.IsGroup(field) { if nullable || repeated { p.P(`if this.`, fieldname, ` != nil {`) p.In() @@ -255,15 +265,16 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { } } if message.DescriptorProto.HasExtension() { - p.P(`if this.XXX_extensions != nil {`) - p.In() if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`s = append(s, "XXX_extensions: " + extensionToGoString`, p.localName, `(this.XXX_extensions) + ",\n")`) + p.P(`s = append(s, "XXX_InternalExtensions: " + extensionToGoString`, p.localName, `(this) + ",\n")`) + extensionToGoStringUsed = true } else { + p.P(`if this.XXX_extensions != nil {`) + p.In() p.P(`s = append(s, "XXX_extensions: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.XXX_extensions) + ",\n")`) + p.Out() + p.P(`}`) } - p.Out() - p.P(`}`) } if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { p.P(`if this.XXX_unrecognized != nil {`) @@ -331,28 +342,34 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { p.Out() p.P(`}`) - p.P(`func extensionToGoString`, p.localName, `(e map[int32]`, protoPkg.Use(), `.Extension) string {`) - p.In() - p.P(`if e == nil { return "nil" }`) - p.P(`s := "map[int32]proto.Extension{"`) - p.P(`keys := make([]int, 0, len(e))`) - p.P(`for k := range e {`) - p.In() - p.P(`keys = append(keys, int(k))`) - p.Out() - p.P(`}`) - p.P(sortPkg.Use(), `.Ints(keys)`) - p.P(`ss := []string{}`) - p.P(`for _, k := range keys {`) - p.In() - p.P(`ss = append(ss, `, strconvPkg.Use(), `.Itoa(k) + ": " + e[int32(k)].GoString())`) - p.Out() - p.P(`}`) - p.P(`s+=`, stringsPkg.Use(), `.Join(ss, ",") + "}"`) - p.P(`return s`) - p.Out() - p.P(`}`) - + if extensionToGoStringUsed { + if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { + fmt.Fprintf(os.Stderr, "The GoString plugin for messages with extensions requires importing gogoprotobuf. Please see file %s", file.GetName()) + os.Exit(1) + } + p.P(`func extensionToGoString`, p.localName, `(m `, protoPkg.Use(), `.Message) string {`) + p.In() + p.P(`e := `, protoPkg.Use(), `.GetUnsafeExtensionsMap(m)`) + p.P(`if e == nil { return "nil" }`) + p.P(`s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{"`) + p.P(`keys := make([]int, 0, len(e))`) + p.P(`for k := range e {`) + p.In() + p.P(`keys = append(keys, int(k))`) + p.Out() + p.P(`}`) + p.P(sortPkg.Use(), `.Ints(keys)`) + p.P(`ss := []string{}`) + p.P(`for _, k := range keys {`) + p.In() + p.P(`ss = append(ss, `, strconvPkg.Use(), `.Itoa(k) + ": " + e[int32(k)].GoString())`) + p.Out() + p.P(`}`) + p.P(`s+=`, stringsPkg.Use(), `.Join(ss, ",") + "})"`) + p.P(`return s`) + p.Out() + p.P(`}`) + } } func init() { diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go b/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go index 53977490..c7e6c169 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go b/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go index 27a4dfb6..b2631e67 100644 --- a/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go +++ b/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -73,35 +75,35 @@ message B { given to the marshalto plugin, will generate the following code: - func (m *B) Marshal() (data []byte, err error) { + func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } - func (m *B) MarshalTo(data []byte) (int, error) { + func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintExample(data, i, uint64(m.A.Size())) - n2, err := m.A.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(m.A.Size())) + n2, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 if len(m.G) > 0 { for _, msg := range m.G { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintExample(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -109,7 +111,7 @@ given to the marshalto plugin, will generate the following code: } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } @@ -175,6 +177,7 @@ type marshalto struct { protoPkg generator.Single sortKeysPkg generator.Single mathPkg generator.Single + typesPkg generator.Single localName string unsafe bool } @@ -199,66 +202,66 @@ func (p *marshalto) Init(g *generator.Generator) { } func (p *marshalto) callFixed64(varName ...string) { - p.P(`i = encodeFixed64`, p.localName, `(data, i, uint64(`, strings.Join(varName, ""), `))`) + p.P(`i = encodeFixed64`, p.localName, `(dAtA, i, uint64(`, strings.Join(varName, ""), `))`) } func (p *marshalto) callFixed32(varName ...string) { - p.P(`i = encodeFixed32`, p.localName, `(data, i, uint32(`, strings.Join(varName, ""), `))`) + p.P(`i = encodeFixed32`, p.localName, `(dAtA, i, uint32(`, strings.Join(varName, ""), `))`) } func (p *marshalto) callVarint(varName ...string) { - p.P(`i = encodeVarint`, p.localName, `(data, i, uint64(`, strings.Join(varName, ""), `))`) + p.P(`i = encodeVarint`, p.localName, `(dAtA, i, uint64(`, strings.Join(varName, ""), `))`) } func (p *marshalto) encodeVarint(varName string) { p.P(`for `, varName, ` >= 1<<7 {`) p.In() - p.P(`data[i] = uint8(uint64(`, varName, `)&0x7f|0x80)`) + p.P(`dAtA[i] = uint8(uint64(`, varName, `)&0x7f|0x80)`) p.P(varName, ` >>= 7`) p.P(`i++`) p.Out() p.P(`}`) - p.P(`data[i] = uint8(`, varName, `)`) + p.P(`dAtA[i] = uint8(`, varName, `)`) p.P(`i++`) } func (p *marshalto) encodeFixed64(varName string) { - p.P(`data[i] = uint8(`, varName, `)`) + p.P(`dAtA[i] = uint8(`, varName, `)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 8)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 8)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 16)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 16)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 24)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 24)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 32)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 32)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 40)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 40)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 48)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 48)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 56)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 56)`) p.P(`i++`) } func (p *marshalto) unsafeFixed64(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&data[i])) = `, varName) + p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[i])) = `, varName) p.P(`i+=8`) } func (p *marshalto) encodeFixed32(varName string) { - p.P(`data[i] = uint8(`, varName, `)`) + p.P(`dAtA[i] = uint8(`, varName, `)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 8)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 8)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 16)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 16)`) p.P(`i++`) - p.P(`data[i] = uint8(`, varName, ` >> 24)`) + p.P(`dAtA[i] = uint8(`, varName, ` >> 24)`) p.P(`i++`) } func (p *marshalto) unsafeFixed32(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&data[i])) = `, varName) + p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[i])) = `, varName) p.P(`i+=4`) } @@ -272,7 +275,7 @@ func (p *marshalto) encodeKey(fieldNumber int32, wireType int) { } keybuf = append(keybuf, uint8(x)) for _, b := range keybuf { - p.P(`data[i] = `, fmt.Sprintf("%#v", b)) + p.P(`dAtA[i] = `, fmt.Sprintf("%#v", b)) p.P(`i++`) } } @@ -307,8 +310,8 @@ func wireToType(wire string) int { panic("unreachable") } -func (p *marshalto) mapField(numGen NumGen, fieldTyp descriptor.FieldDescriptorProto_Type, varName string, protoSizer bool) { - switch fieldTyp { +func (p *marshalto) mapField(numGen NumGen, field *descriptor.FieldDescriptorProto, kvField *descriptor.FieldDescriptorProto, varName string, protoSizer bool) { + switch kvField.GetType() { case descriptor.FieldDescriptorProto_TYPE_DOUBLE: p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(`, varName, `))`) case descriptor.FieldDescriptorProto_TYPE_FLOAT: @@ -328,29 +331,47 @@ func (p *marshalto) mapField(numGen NumGen, fieldTyp descriptor.FieldDescriptorP case descriptor.FieldDescriptorProto_TYPE_BOOL: p.P(`if `, varName, ` {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) case descriptor.FieldDescriptorProto_TYPE_STRING, descriptor.FieldDescriptorProto_TYPE_BYTES: - p.callVarint(`len(`, varName, `)`) - p.P(`i+=copy(data[i:], `, varName, `)`) + if gogoproto.IsCustomType(field) && kvField.IsBytes() { + p.callVarint(varName, `.Size()`) + p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(dAtA[i:])`) + p.P(`if err != nil {`) + p.In() + p.P(`return 0, err`) + p.Out() + p.P(`}`) + p.P(`i+=n`, numGen.Current()) + } else { + p.callVarint(`len(`, varName, `)`) + p.P(`i+=copy(dAtA[i:], `, varName, `)`) + } case descriptor.FieldDescriptorProto_TYPE_SINT32: p.callVarint(`(uint32(`, varName, `) << 1) ^ uint32((`, varName, ` >> 31))`) case descriptor.FieldDescriptorProto_TYPE_SINT64: p.callVarint(`(uint64(`, varName, `) << 1) ^ uint64((`, varName, ` >> 63))`) case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - if protoSizer { + if gogoproto.IsStdTime(field) { + p.callVarint(p.typesPkg.Use(), `.SizeOfStdTime(*`, varName, `)`) + p.P(`n`, numGen.Next(), `, err := `, p.typesPkg.Use(), `.StdTimeMarshalTo(*`, varName, `, dAtA[i:])`) + } else if gogoproto.IsStdDuration(field) { + p.callVarint(p.typesPkg.Use(), `.SizeOfStdDuration(*`, varName, `)`) + p.P(`n`, numGen.Next(), `, err := `, p.typesPkg.Use(), `.StdDurationMarshalTo(*`, varName, `, dAtA[i:])`) + } else if protoSizer { p.callVarint(varName, `.ProtoSize()`) + p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(dAtA[i:])`) } else { p.callVarint(varName, `.Size()`) + p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(dAtA[i:])`) } - p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(data[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -399,7 +420,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.P(`if m.`, fieldname, ` != nil {`) p.In() } - packed := field.IsPacked() + packed := field.IsPacked() || (proto3 && field.IsPacked3()) wireType := field.WireType() fieldNumber := field.GetNumber() if packed { @@ -541,7 +562,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi descriptor.FieldDescriptorProto_TYPE_ENUM: if packed { jvar := "j" + numGen.Next() - p.P(`data`, numGen.Next(), ` := make([]byte, len(m.`, fieldname, `)*10)`) + p.P(`dAtA`, numGen.Next(), ` := make([]byte, len(m.`, fieldname, `)*10)`) p.P(`var `, jvar, ` int`) if *field.Type == descriptor.FieldDescriptorProto_TYPE_INT64 || *field.Type == descriptor.FieldDescriptorProto_TYPE_INT32 { @@ -554,18 +575,18 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } p.P(`for num >= 1<<7 {`) p.In() - p.P(`data`, numGen.Current(), `[`, jvar, `] = uint8(uint64(num)&0x7f|0x80)`) + p.P(`dAtA`, numGen.Current(), `[`, jvar, `] = uint8(uint64(num)&0x7f|0x80)`) p.P(`num >>= 7`) p.P(jvar, `++`) p.Out() p.P(`}`) - p.P(`data`, numGen.Current(), `[`, jvar, `] = uint8(num)`) + p.P(`dAtA`, numGen.Current(), `[`, jvar, `] = uint8(num)`) p.P(jvar, `++`) p.Out() p.P(`}`) p.encodeKey(fieldNumber, wireType) p.callVarint(jvar) - p.P(`i += copy(data[i:], data`, numGen.Current(), `[:`, jvar, `])`) + p.P(`i += copy(dAtA[i:], dAtA`, numGen.Current(), `[:`, jvar, `])`) } else if repeated { p.P(`for _, num := range m.`, fieldname, ` {`) p.In() @@ -729,11 +750,11 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.In() p.P(`if b {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) @@ -745,11 +766,11 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.encodeKey(fieldNumber, wireType) p.P(`if b {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) @@ -761,11 +782,11 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.encodeKey(fieldNumber, wireType) p.P(`if m.`, fieldname, ` {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) @@ -775,11 +796,11 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.encodeKey(fieldNumber, wireType) p.P(`if m.`, fieldname, ` {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) @@ -787,11 +808,11 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.encodeKey(fieldNumber, wireType) p.P(`if *m.`, fieldname, ` {`) p.In() - p.P(`data[i] = 1`) + p.P(`dAtA[i] = 1`) p.Out() p.P(`} else {`) p.In() - p.P(`data[i] = 0`) + p.P(`dAtA[i] = 0`) p.Out() p.P(`}`) p.P(`i++`) @@ -803,7 +824,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.encodeKey(fieldNumber, wireType) p.P(`l = len(s)`) p.encodeVarint("l") - p.P(`i+=copy(data[i:], s)`) + p.P(`i+=copy(dAtA[i:], s)`) p.Out() p.P(`}`) } else if proto3 { @@ -811,17 +832,17 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.In() p.encodeKey(fieldNumber, wireType) p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) + p.P(`i+=copy(dAtA[i:], m.`, fieldname, `)`) p.Out() p.P(`}`) } else if !nullable { p.encodeKey(fieldNumber, wireType) p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) + p.P(`i+=copy(dAtA[i:], m.`, fieldname, `)`) } else { p.encodeKey(fieldNumber, wireType) p.callVarint(`len(*m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], *m.`, fieldname, `)`) + p.P(`i+=copy(dAtA[i:], *m.`, fieldname, `)`) } case descriptor.FieldDescriptorProto_TYPE_GROUP: panic(fmt.Errorf("marshaler does not support group %v", fieldname)) @@ -885,39 +906,65 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.P(`v := m.`, fieldname, `[k]`) } accessor := `v` - sum = append(sum, strconv.Itoa(valueKeySize)) switch m.ValueField.GetType() { case descriptor.FieldDescriptorProto_TYPE_DOUBLE, descriptor.FieldDescriptorProto_TYPE_FIXED64, descriptor.FieldDescriptorProto_TYPE_SFIXED64: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, strconv.Itoa(8)) case descriptor.FieldDescriptorProto_TYPE_FLOAT, descriptor.FieldDescriptorProto_TYPE_FIXED32, descriptor.FieldDescriptorProto_TYPE_SFIXED32: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, strconv.Itoa(4)) case descriptor.FieldDescriptorProto_TYPE_INT64, descriptor.FieldDescriptorProto_TYPE_UINT64, descriptor.FieldDescriptorProto_TYPE_UINT32, descriptor.FieldDescriptorProto_TYPE_ENUM, descriptor.FieldDescriptorProto_TYPE_INT32: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `sov`+p.localName+`(uint64(v))`) case descriptor.FieldDescriptorProto_TYPE_BOOL: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: + case descriptor.FieldDescriptorProto_TYPE_STRING: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `len(v)+sov`+p.localName+`(uint64(len(v)))`) - case descriptor.FieldDescriptorProto_TYPE_SINT32, - descriptor.FieldDescriptorProto_TYPE_SINT64: - sum = append(sum, `soz`+p.localName+`(uint64(v))`) - case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - if nullable { - p.P(`if v == nil {`) + case descriptor.FieldDescriptorProto_TYPE_BYTES: + if gogoproto.IsCustomType(field) { + p.P(`cSize := 0`) + if gogoproto.IsNullable(field) { + p.P(`if `, accessor, ` != nil {`) + p.In() + } + p.P(`cSize = `, accessor, `.Size()`) + p.P(`cSize += `, strconv.Itoa(valueKeySize), ` + sov`+p.localName+`(uint64(cSize))`) + if gogoproto.IsNullable(field) { + p.Out() + p.P(`}`) + } + sum = append(sum, `cSize`) + } else { + p.P(`byteSize := 0`) + if proto3 { + p.P(`if len(v) > 0 {`) + } else { + p.P(`if v != nil {`) + } p.In() - p.P(`return 0, `, p.errorsPkg.Use(), `.New("proto: map has nil element")`) + p.P(`byteSize = `, strconv.Itoa(valueKeySize), ` + len(v)+sov`+p.localName+`(uint64(len(v)))`) p.Out() p.P(`}`) + sum = append(sum, `byteSize`) } - if valuegoTyp != valuegoAliasTyp { + case descriptor.FieldDescriptorProto_TYPE_SINT32, + descriptor.FieldDescriptorProto_TYPE_SINT64: + sum = append(sum, strconv.Itoa(valueKeySize)) + sum = append(sum, `soz`+p.localName+`(uint64(v))`) + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + if valuegoTyp != valuegoAliasTyp && + !gogoproto.IsStdTime(field) && + !gogoproto.IsStdDuration(field) { if nullable { // cast back to the type that has the generated methods on it accessor = `((` + valuegoTyp + `)(` + accessor + `))` @@ -927,31 +974,73 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } else if !nullable { accessor = `(&v)` } - if protoSizer { - p.P(`msgSize := `, accessor, `.ProtoSize()`) + p.P(`msgSize := 0`) + p.P(`if `, accessor, ` != nil {`) + p.In() + if gogoproto.IsStdTime(field) { + p.P(`msgSize = `, p.typesPkg.Use(), `.SizeOfStdTime(*`, accessor, `)`) + } else if gogoproto.IsStdDuration(field) { + p.P(`msgSize = `, p.typesPkg.Use(), `.SizeOfStdDuration(*`, accessor, `)`) + } else if protoSizer { + p.P(`msgSize = `, accessor, `.ProtoSize()`) } else { - p.P(`msgSize := `, accessor, `.Size()`) + p.P(`msgSize = `, accessor, `.Size()`) } - sum = append(sum, `msgSize + sov`+p.localName+`(uint64(msgSize))`) + p.P(`msgSize += `, strconv.Itoa(valueKeySize), ` + sov`+p.localName+`(uint64(msgSize))`) + p.Out() + p.P(`}`) + sum = append(sum, `msgSize`) } p.P(`mapSize := `, strings.Join(sum, " + ")) p.callVarint("mapSize") p.encodeKey(1, wireToType(keywire)) - p.mapField(numGen, m.KeyField.GetType(), "k", protoSizer) + p.mapField(numGen, field, m.KeyField, "k", protoSizer) + nullableMsg := nullable && (m.ValueField.GetType() == descriptor.FieldDescriptorProto_TYPE_MESSAGE || + gogoproto.IsCustomType(field) && m.ValueField.IsBytes()) + plainBytes := m.ValueField.IsBytes() && !gogoproto.IsCustomType(field) + if nullableMsg { + p.P(`if `, accessor, ` != nil { `) + p.In() + } else if plainBytes { + if proto3 { + p.P(`if len(`, accessor, `) > 0 {`) + } else { + p.P(`if `, accessor, ` != nil {`) + } + p.In() + } p.encodeKey(2, wireToType(valuewire)) - p.mapField(numGen, m.ValueField.GetType(), accessor, protoSizer) + p.mapField(numGen, field, m.ValueField, accessor, protoSizer) + if nullableMsg || plainBytes { + p.Out() + p.P(`}`) + } p.Out() p.P(`}`) } else if repeated { p.P(`for _, msg := range m.`, fieldname, ` {`) p.In() p.encodeKey(fieldNumber, wireType) - if protoSizer { - p.callVarint("msg.ProtoSize()") + varName := "msg" + if gogoproto.IsStdTime(field) { + if gogoproto.IsNullable(field) { + varName = "*" + varName + } + p.callVarint(p.typesPkg.Use(), `.SizeOfStdTime(`, varName, `)`) + p.P(`n, err := `, p.typesPkg.Use(), `.StdTimeMarshalTo(`, varName, `, dAtA[i:])`) + } else if gogoproto.IsStdDuration(field) { + if gogoproto.IsNullable(field) { + varName = "*" + varName + } + p.callVarint(p.typesPkg.Use(), `.SizeOfStdDuration(`, varName, `)`) + p.P(`n, err := `, p.typesPkg.Use(), `.StdDurationMarshalTo(`, varName, `, dAtA[i:])`) + } else if protoSizer { + p.callVarint(varName, ".ProtoSize()") + p.P(`n, err := `, varName, `.MarshalTo(dAtA[i:])`) } else { - p.callVarint("msg.Size()") + p.callVarint(varName, ".Size()") + p.P(`n, err := `, varName, `.MarshalTo(dAtA[i:])`) } - p.P(`n, err := msg.MarshalTo(data[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -962,12 +1051,26 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.P(`}`) } else { p.encodeKey(fieldNumber, wireType) - if protoSizer { - p.callVarint(`m.`, fieldname, `.ProtoSize()`) + varName := `m.` + fieldname + if gogoproto.IsStdTime(field) { + if gogoproto.IsNullable(field) { + varName = "*" + varName + } + p.callVarint(p.typesPkg.Use(), `.SizeOfStdTime(`, varName, `)`) + p.P(`n`, numGen.Next(), `, err := `, p.typesPkg.Use(), `.StdTimeMarshalTo(`, varName, `, dAtA[i:])`) + } else if gogoproto.IsStdDuration(field) { + if gogoproto.IsNullable(field) { + varName = "*" + varName + } + p.callVarint(p.typesPkg.Use(), `.SizeOfStdDuration(`, varName, `)`) + p.P(`n`, numGen.Next(), `, err := `, p.typesPkg.Use(), `.StdDurationMarshalTo(`, varName, `, dAtA[i:])`) + } else if protoSizer { + p.callVarint(varName, `.ProtoSize()`) + p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(dAtA[i:])`) } else { - p.callVarint(`m.`, fieldname, `.Size()`) + p.callVarint(varName, `.Size()`) + p.P(`n`, numGen.Next(), `, err := `, varName, `.MarshalTo(dAtA[i:])`) } - p.P(`n`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -982,7 +1085,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.In() p.encodeKey(fieldNumber, wireType) p.callVarint("len(b)") - p.P(`i+=copy(data[i:], b)`) + p.P(`i+=copy(dAtA[i:], b)`) p.Out() p.P(`}`) } else if proto3 { @@ -990,13 +1093,13 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.In() p.encodeKey(fieldNumber, wireType) p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) + p.P(`i+=copy(dAtA[i:], m.`, fieldname, `)`) p.Out() p.P(`}`) } else { p.encodeKey(fieldNumber, wireType) p.callVarint(`len(m.`, fieldname, `)`) - p.P(`i+=copy(data[i:], m.`, fieldname, `)`) + p.P(`i+=copy(dAtA[i:], m.`, fieldname, `)`) } } else { if repeated { @@ -1008,7 +1111,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } else { p.callVarint(`msg.Size()`) } - p.P(`n, err := msg.MarshalTo(data[i:])`) + p.P(`n, err := msg.MarshalTo(dAtA[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -1024,7 +1127,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } else { p.callVarint(`m.`, fieldname, `.Size()`) } - p.P(`n`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) + p.P(`n`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(dAtA[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -1035,7 +1138,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } case descriptor.FieldDescriptorProto_TYPE_SINT32: if packed { - datavar := "data" + numGen.Next() + datavar := "dAtA" + numGen.Next() jvar := "j" + numGen.Next() p.P(datavar, ` := make([]byte, len(m.`, fieldname, ")*5)") p.P(`var `, jvar, ` int`) @@ -1056,7 +1159,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.P(`}`) p.encodeKey(fieldNumber, wireType) p.callVarint(jvar) - p.P(`i+=copy(data[i:], `, datavar, `[:`, jvar, `])`) + p.P(`i+=copy(dAtA[i:], `, datavar, `[:`, jvar, `])`) } else if repeated { p.P(`for _, num := range m.`, fieldname, ` {`) p.In() @@ -1083,7 +1186,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi if packed { jvar := "j" + numGen.Next() xvar := "x" + numGen.Next() - datavar := "data" + numGen.Next() + datavar := "dAtA" + numGen.Next() p.P(`var `, jvar, ` int`) p.P(datavar, ` := make([]byte, len(m.`, fieldname, `)*10)`) p.P(`for _, num := range m.`, fieldname, ` {`) @@ -1102,7 +1205,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi p.P(`}`) p.encodeKey(fieldNumber, wireType) p.callVarint(jvar) - p.P(`i+=copy(data[i:], `, datavar, `[:`, jvar, `])`) + p.P(`i+=copy(dAtA[i:], `, datavar, `[:`, jvar, `])`) } else if repeated { p.P(`for _, num := range m.`, fieldname, ` {`) p.In() @@ -1148,6 +1251,7 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { } p.unsafePkg = p.NewImport("unsafe") p.errorsPkg = p.NewImport("errors") + p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") for _, message := range file.Messages() { if message.DescriptorProto.GetOptions().GetMapEntry() { @@ -1172,25 +1276,25 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { } p.atleastOne = true - p.P(`func (m *`, ccTypeName, `) Marshal() (data []byte, err error) {`) + p.P(`func (m *`, ccTypeName, `) Marshal() (dAtA []byte, err error) {`) p.In() if gogoproto.IsProtoSizer(file.FileDescriptorProto, message.DescriptorProto) { p.P(`size := m.ProtoSize()`) } else { p.P(`size := m.Size()`) } - p.P(`data = make([]byte, size)`) - p.P(`n, err := m.MarshalTo(data)`) + p.P(`dAtA = make([]byte, size)`) + p.P(`n, err := m.MarshalTo(dAtA)`) p.P(`if err != nil {`) p.In() p.P(`return nil, err`) p.Out() p.P(`}`) - p.P(`return data[:n], nil`) + p.P(`return dAtA[:n], nil`) p.Out() p.P(`}`) p.P(``) - p.P(`func (m *`, ccTypeName, `) MarshalTo(data []byte) (int, error) {`) + p.P(`func (m *`, ccTypeName, `) MarshalTo(dAtA []byte) (int, error) {`) p.In() p.P(`var i int`) p.P(`_ = i`) @@ -1210,7 +1314,7 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { oneofs[fieldname] = struct{}{} p.P(`if m.`, fieldname, ` != nil {`) p.In() - p.P(`nn`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(data[i:])`) + p.P(`nn`, numGen.Next(), `, err := m.`, fieldname, `.MarshalTo(dAtA[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) @@ -1224,21 +1328,17 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { } if message.DescriptorProto.HasExtension() { if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`if len(m.XXX_extensions) > 0 {`) - p.In() - p.P(`n, err := `, p.protoPkg.Use(), `.EncodeExtensionMap(m.XXX_extensions, data[i:])`) + p.P(`n, err := `, p.protoPkg.Use(), `.EncodeInternalExtension(m, dAtA[i:])`) p.P(`if err != nil {`) p.In() p.P(`return 0, err`) p.Out() p.P(`}`) p.P(`i+=n`) - p.Out() - p.P(`}`) } else { p.P(`if m.XXX_extensions != nil {`) p.In() - p.P(`i+=copy(data[i:], m.XXX_extensions)`) + p.P(`i+=copy(dAtA[i:], m.XXX_extensions)`) p.Out() p.P(`}`) } @@ -1246,7 +1346,7 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { p.P(`if m.XXX_unrecognized != nil {`) p.In() - p.P(`i+=copy(data[i:], m.XXX_unrecognized)`) + p.P(`i+=copy(dAtA[i:], m.XXX_unrecognized)`) p.Out() p.P(`}`) } @@ -1264,7 +1364,7 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { continue } ccTypeName := p.OneOfTypeName(message, field) - p.P(`func (m *`, ccTypeName, `) MarshalTo(data []byte) (int, error) {`) + p.P(`func (m *`, ccTypeName, `) MarshalTo(dAtA []byte) (int, error) {`) p.In() p.P(`i := 0`) vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) @@ -1276,40 +1376,40 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { } if p.atleastOne { - p.P(`func encodeFixed64`, p.localName, `(data []byte, offset int, v uint64) int {`) + p.P(`func encodeFixed64`, p.localName, `(dAtA []byte, offset int, v uint64) int {`) p.In() - p.P(`data[offset] = uint8(v)`) - p.P(`data[offset+1] = uint8(v >> 8)`) - p.P(`data[offset+2] = uint8(v >> 16)`) - p.P(`data[offset+3] = uint8(v >> 24)`) - p.P(`data[offset+4] = uint8(v >> 32)`) - p.P(`data[offset+5] = uint8(v >> 40)`) - p.P(`data[offset+6] = uint8(v >> 48)`) - p.P(`data[offset+7] = uint8(v >> 56)`) + p.P(`dAtA[offset] = uint8(v)`) + p.P(`dAtA[offset+1] = uint8(v >> 8)`) + p.P(`dAtA[offset+2] = uint8(v >> 16)`) + p.P(`dAtA[offset+3] = uint8(v >> 24)`) + p.P(`dAtA[offset+4] = uint8(v >> 32)`) + p.P(`dAtA[offset+5] = uint8(v >> 40)`) + p.P(`dAtA[offset+6] = uint8(v >> 48)`) + p.P(`dAtA[offset+7] = uint8(v >> 56)`) p.P(`return offset+8`) p.Out() p.P(`}`) - p.P(`func encodeFixed32`, p.localName, `(data []byte, offset int, v uint32) int {`) + p.P(`func encodeFixed32`, p.localName, `(dAtA []byte, offset int, v uint32) int {`) p.In() - p.P(`data[offset] = uint8(v)`) - p.P(`data[offset+1] = uint8(v >> 8)`) - p.P(`data[offset+2] = uint8(v >> 16)`) - p.P(`data[offset+3] = uint8(v >> 24)`) + p.P(`dAtA[offset] = uint8(v)`) + p.P(`dAtA[offset+1] = uint8(v >> 8)`) + p.P(`dAtA[offset+2] = uint8(v >> 16)`) + p.P(`dAtA[offset+3] = uint8(v >> 24)`) p.P(`return offset+4`) p.Out() p.P(`}`) - p.P(`func encodeVarint`, p.localName, `(data []byte, offset int, v uint64) int {`) + p.P(`func encodeVarint`, p.localName, `(dAtA []byte, offset int, v uint64) int {`) p.In() p.P(`for v >= 1<<7 {`) p.In() - p.P(`data[offset] = uint8(v&0x7f|0x80)`) + p.P(`dAtA[offset] = uint8(v&0x7f|0x80)`) p.P(`v >>= 7`) p.P(`offset++`) p.Out() p.P(`}`) - p.P(`data[offset] = uint8(v)`) + p.P(`dAtA[offset] = uint8(v)`) p.P(`return offset+1`) p.Out() p.P(`}`) diff --git a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/oneofcheck.go b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/oneofcheck.go index cd0d19a7..0f822e8a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/oneofcheck.go +++ b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/oneofcheck.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/populate/populate.go b/vendor/github.com/gogo/protobuf/plugin/populate/populate.go index c95d9f28..16aee324 100644 --- a/vendor/github.com/gogo/protobuf/plugin/populate/populate.go +++ b/vendor/github.com/gogo/protobuf/plugin/populate/populate.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -83,14 +85,15 @@ package populate import ( "fmt" + "math" + "strconv" + "strings" + "github.com/gogo/protobuf/gogoproto" "github.com/gogo/protobuf/proto" descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" "github.com/gogo/protobuf/protoc-gen-gogo/generator" "github.com/gogo/protobuf/vanity" - "math" - "strconv" - "strings" ) type VarGen interface { @@ -121,6 +124,7 @@ type plugin struct { varGen VarGen atleastOne bool localName string + typesPkg generator.Single } func NewPlugin() *plugin { @@ -178,7 +182,7 @@ func negative(fieldType descriptor.FieldDescriptorProto_Type) bool { return true } -func getFuncName(goTypName string) string { +func (p *plugin) getFuncName(goTypName string) string { funcName := "NewPopulated" + goTypName goTypNames := strings.Split(goTypName, ".") if len(goTypNames) == 2 { @@ -186,17 +190,23 @@ func getFuncName(goTypName string) string { } else if len(goTypNames) != 1 { panic(fmt.Errorf("unreachable: too many dots in %v", goTypName)) } + switch funcName { + case "time.NewPopulatedTime": + funcName = p.typesPkg.Use() + ".NewPopulatedStdTime" + case "time.NewPopulatedDuration": + funcName = p.typesPkg.Use() + ".NewPopulatedStdDuration" + } return funcName } -func getFuncCall(goTypName string) string { - funcName := getFuncName(goTypName) +func (p *plugin) getFuncCall(goTypName string) string { + funcName := p.getFuncName(goTypName) funcCall := funcName + "(r, easy)" return funcCall } -func getCustomFuncCall(goTypName string) string { - funcName := getFuncName(goTypName) +func (p *plugin) getCustomFuncCall(goTypName string) string { + funcName := p.getFuncName(goTypName) funcCall := funcName + "(r)" return funcCall } @@ -246,10 +256,17 @@ func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generato if keygoAliasTyp != keygoTyp { keyval = keygoAliasTyp + `(` + keyval + `)` } - if m.ValueField.IsMessage() || p.IsGroup(field) { + if m.ValueField.IsMessage() || p.IsGroup(field) || + (m.ValueField.IsBytes() && gogoproto.IsCustomType(field)) { s := `this.` + fieldname + `[` + keyval + `] = ` - goTypName = generator.GoTypeToName(valuegoTyp) - funcCall := getFuncCall(goTypName) + if gogoproto.IsStdTime(field) || gogoproto.IsStdDuration(field) { + valuegoTyp = valuegoAliasTyp + } + funcCall := p.getCustomFuncCall(goTypName) + if !gogoproto.IsCustomType(field) { + goTypName = generator.GoTypeToName(valuegoTyp) + funcCall = p.getFuncCall(goTypName) + } if !nullable { funcCall = `*` + funcCall } @@ -287,8 +304,25 @@ func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generato } p.Out() p.P(`}`) + } else if gogoproto.IsCustomType(field) { + funcCall := p.getCustomFuncCall(goTypName) + if field.IsRepeated() { + p.P(p.varGen.Next(), ` := r.Intn(10)`) + p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) + p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) + p.In() + p.P(p.varGen.Next(), `:= `, funcCall) + p.P(`this.`, fieldname, `[i] = *`, p.varGen.Current()) + p.Out() + p.P(`}`) + } else if gogoproto.IsNullable(field) { + p.P(`this.`, fieldname, ` = `, funcCall) + } else { + p.P(p.varGen.Next(), `:= `, funcCall) + p.P(`this.`, fieldname, ` = *`, p.varGen.Current()) + } } else if field.IsMessage() || p.IsGroup(field) { - funcCall := getFuncCall(goTypName) + funcCall := p.getFuncCall(goTypName) if field.IsRepeated() { p.P(p.varGen.Next(), ` := r.Intn(5)`) p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) @@ -327,23 +361,6 @@ func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generato p.P(p.varGen.Next(), ` := `, val) p.P(`this.`, fieldname, ` = &`, p.varGen.Current()) } - } else if gogoproto.IsCustomType(field) { - funcCall := getCustomFuncCall(goTypName) - if field.IsRepeated() { - p.P(p.varGen.Next(), ` := r.Intn(10)`) - p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) - p.P(`for i := 0; i < `, p.varGen.Current(), `; i++ {`) - p.In() - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, `[i] = *`, p.varGen.Current()) - p.Out() - p.P(`}`) - } else if gogoproto.IsNullable(field) { - p.P(`this.`, fieldname, ` = `, funcCall) - } else { - p.P(p.varGen.Next(), `:= `, funcCall) - p.P(`this.`, fieldname, ` = *`, p.varGen.Current()) - } } else if field.IsBytes() { if field.IsRepeated() { p.P(p.varGen.Next(), ` := r.Intn(10)`) @@ -369,7 +386,8 @@ func (p *plugin) GenerateField(file *generator.FileDescriptor, message *generato p.P(`}`) } } else if field.IsString() { - val := fmt.Sprintf("randString%v(r)", p.localName) + typName := generator.GoTypeToName(goTyp) + val := fmt.Sprintf("%s(randString%v(r))", typName, p.localName) if field.IsRepeated() { p.P(p.varGen.Next(), ` := r.Intn(10)`) p.P(`this.`, fieldname, ` = make(`, goTyp, `, `, p.varGen.Current(), `)`) @@ -449,11 +467,14 @@ func (p *plugin) hasLoop(field *descriptor.FieldDescriptorProto, visited []*gene return fieldMessage } } + pkg := strings.Split(field.GetTypeName(), ".")[1] for _, f := range fieldMessage.Field { - visited = append(visited, fieldMessage) - loopTo := p.hasLoop(f, visited, excludes) - if loopTo != nil { - return loopTo + if strings.HasPrefix(f.GetTypeName(), "."+pkg+".") { + visited = append(visited, fieldMessage) + loopTo := p.hasLoop(f, visited, excludes) + if loopTo != nil { + return loopTo + } } } } @@ -482,7 +503,7 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.PluginImports = generator.NewPluginImports(p.Generator) p.varGen = NewVarGen() proto3 := gogoproto.IsProto3(file.FileDescriptorProto) - + p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") p.localName = generator.FileName(file) protoPkg := p.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { @@ -612,8 +633,8 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { } p.P(`wire := r.Intn(4)`) p.P(`if wire == 3 { wire = 5 }`) - p.P(`data := randField`, p.localName, `(nil, r, fieldNumber, wire)`) - p.P(protoPkg.Use(), `.SetRawExtension(this, int32(fieldNumber), data)`) + p.P(`dAtA := randField`, p.localName, `(nil, r, fieldNumber, wire)`) + p.P(protoPkg.Use(), `.SetRawExtension(this, int32(fieldNumber), dAtA)`) p.Out() p.P(`}`) p.Out() @@ -698,7 +719,7 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.Out() p.P(`}`) - p.P(`func randUnrecognized`, p.localName, `(r randy`, p.localName, `, maxFieldNumber int) (data []byte) {`) + p.P(`func randUnrecognized`, p.localName, `(r randy`, p.localName, `, maxFieldNumber int) (dAtA []byte) {`) p.In() p.P(`l := r.Intn(5)`) p.P(`for i := 0; i < l; i++ {`) @@ -706,64 +727,64 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.P(`wire := r.Intn(4)`) p.P(`if wire == 3 { wire = 5 }`) p.P(`fieldNumber := maxFieldNumber + r.Intn(100)`) - p.P(`data = randField`, p.localName, `(data, r, fieldNumber, wire)`) + p.P(`dAtA = randField`, p.localName, `(dAtA, r, fieldNumber, wire)`) p.Out() p.P(`}`) - p.P(`return data`) + p.P(`return dAtA`) p.Out() p.P(`}`) - p.P(`func randField`, p.localName, `(data []byte, r randy`, p.localName, `, fieldNumber int, wire int) []byte {`) + p.P(`func randField`, p.localName, `(dAtA []byte, r randy`, p.localName, `, fieldNumber int, wire int) []byte {`) p.In() p.P(`key := uint32(fieldNumber)<<3 | uint32(wire)`) p.P(`switch wire {`) p.P(`case 0:`) p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(key))`) p.P(p.varGen.Next(), ` := r.Int63()`) p.P(`if r.Intn(2) == 0 {`) p.In() p.P(p.varGen.Current(), ` *= -1`) p.Out() p.P(`}`) - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(`, p.varGen.Current(), `))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(`, p.varGen.Current(), `))`) p.Out() p.P(`case 1:`) p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(`data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(key))`) + p.P(`dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) p.Out() p.P(`case 2:`) p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(key))`) p.P(`ll := r.Intn(100)`) - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(ll))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(ll))`) p.P(`for j := 0; j < ll; j++ {`) p.In() - p.P(`data = append(data, byte(r.Intn(256)))`) + p.P(`dAtA = append(dAtA, byte(r.Intn(256)))`) p.Out() p.P(`}`) p.Out() p.P(`default:`) p.In() - p.P(`data = encodeVarintPopulate`, p.localName, `(data, uint64(key))`) - p.P(`data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) + p.P(`dAtA = encodeVarintPopulate`, p.localName, `(dAtA, uint64(key))`) + p.P(`dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))`) p.Out() p.P(`}`) - p.P(`return data`) + p.P(`return dAtA`) p.Out() p.P(`}`) - p.P(`func encodeVarintPopulate`, p.localName, `(data []byte, v uint64) []byte {`) + p.P(`func encodeVarintPopulate`, p.localName, `(dAtA []byte, v uint64) []byte {`) p.In() p.P(`for v >= 1<<7 {`) p.In() - p.P(`data = append(data, uint8(uint64(v)&0x7f|0x80))`) + p.P(`dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))`) p.P(`v >>= 7`) p.Out() p.P(`}`) - p.P(`data = append(data, uint8(v))`) - p.P(`return data`) + p.P(`dAtA = append(dAtA, uint8(v))`) + p.P(`return dAtA`) p.Out() p.P(`}`) diff --git a/vendor/github.com/gogo/protobuf/plugin/size/size.go b/vendor/github.com/gogo/protobuf/plugin/size/size.go index 7e507c31..014831b1 100644 --- a/vendor/github.com/gogo/protobuf/plugin/size/size.go +++ b/vendor/github.com/gogo/protobuf/plugin/size/size.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -88,13 +90,13 @@ and the following test code: func TestBSize(t *testing5.T) { popr := math_rand5.New(math_rand5.NewSource(time5.Now().UnixNano())) p := NewPopulatedB(popr, true) - data, err := github_com_gogo_protobuf_proto2.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto2.Marshal(p) if err != nil { panic(err) } size := p.Size() - if len(data) != size { - t.Fatalf("size %v != marshalled size %v", size, len(data)) + if len(dAtA) != size { + t.Fatalf("size %v != marshalled size %v", size, len(dAtA)) } } @@ -119,6 +121,7 @@ package size import ( "fmt" + "os" "strconv" "strings" @@ -134,6 +137,7 @@ type size struct { generator.PluginImports atleastOne bool localName string + typesPkg generator.Single } func NewSize() *size { @@ -198,6 +202,23 @@ func (p *size) sizeZigZag() { }`) } +func (p *size) std(field *descriptor.FieldDescriptorProto, name string) (string, bool) { + if gogoproto.IsStdTime(field) { + if gogoproto.IsNullable(field) { + return p.typesPkg.Use() + `.SizeOfStdTime(*` + name + `)`, true + } else { + return p.typesPkg.Use() + `.SizeOfStdTime(` + name + `)`, true + } + } else if gogoproto.IsStdDuration(field) { + if gogoproto.IsNullable(field) { + return p.typesPkg.Use() + `.SizeOfStdDuration(*` + name + `)`, true + } else { + return p.typesPkg.Use() + `.SizeOfStdDuration(` + name + `)`, true + } + } + return "", false +} + func (p *size) generateField(proto3 bool, file *generator.FileDescriptor, message *generator.Descriptor, field *descriptor.FieldDescriptorProto, sizeName string) { fieldname := p.GetOneOfFieldName(message, field) nullable := gogoproto.IsNullable(field) @@ -210,7 +231,7 @@ func (p *size) generateField(proto3 bool, file *generator.FileDescriptor, messag p.P(`if m.`, fieldname, ` != nil {`) p.In() } - packed := field.IsPacked() + packed := field.IsPacked() || (proto3 && field.IsPacked3()) _, wire := p.GoType(message, field) wireType := wireToType(wire) fieldNumber := field.GetNumber() @@ -367,50 +388,89 @@ func (p *size) generateField(proto3 bool, file *generator.FileDescriptor, messag descriptor.FieldDescriptorProto_TYPE_SINT64: sum = append(sum, `soz`+p.localName+`(uint64(k))`) } - sum = append(sum, strconv.Itoa(valueKeySize)) switch m.ValueField.GetType() { case descriptor.FieldDescriptorProto_TYPE_DOUBLE, descriptor.FieldDescriptorProto_TYPE_FIXED64, descriptor.FieldDescriptorProto_TYPE_SFIXED64: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, strconv.Itoa(8)) case descriptor.FieldDescriptorProto_TYPE_FLOAT, descriptor.FieldDescriptorProto_TYPE_FIXED32, descriptor.FieldDescriptorProto_TYPE_SFIXED32: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, strconv.Itoa(4)) case descriptor.FieldDescriptorProto_TYPE_INT64, descriptor.FieldDescriptorProto_TYPE_UINT64, descriptor.FieldDescriptorProto_TYPE_UINT32, descriptor.FieldDescriptorProto_TYPE_ENUM, descriptor.FieldDescriptorProto_TYPE_INT32: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `sov`+p.localName+`(uint64(v))`) case descriptor.FieldDescriptorProto_TYPE_BOOL: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `1`) - case descriptor.FieldDescriptorProto_TYPE_STRING, - descriptor.FieldDescriptorProto_TYPE_BYTES: + case descriptor.FieldDescriptorProto_TYPE_STRING: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `len(v)+sov`+p.localName+`(uint64(len(v)))`) + case descriptor.FieldDescriptorProto_TYPE_BYTES: + if gogoproto.IsCustomType(field) { + p.P(`l = 0`) + if nullable { + p.P(`if v != nil {`) + p.In() + } + p.P(`l = v.`, sizeName, `()`) + p.P(`l += `, strconv.Itoa(valueKeySize), ` + sov`+p.localName+`(uint64(l))`) + if nullable { + p.Out() + p.P(`}`) + } + sum = append(sum, `l`) + } else { + p.P(`l = 0`) + if proto3 { + p.P(`if len(v) > 0 {`) + } else { + p.P(`if v != nil {`) + } + p.In() + p.P(`l = `, strconv.Itoa(valueKeySize), ` + len(v)+sov`+p.localName+`(uint64(len(v)))`) + p.Out() + p.P(`}`) + sum = append(sum, `l`) + } case descriptor.FieldDescriptorProto_TYPE_SINT32, descriptor.FieldDescriptorProto_TYPE_SINT64: + sum = append(sum, strconv.Itoa(valueKeySize)) sum = append(sum, `soz`+p.localName+`(uint64(v))`) case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + stdSizeCall, stdOk := p.std(field, "v") if nullable { p.P(`l = 0`) p.P(`if v != nil {`) p.In() - if valuegoTyp != valuegoAliasTyp { + if stdOk { + p.P(`l = `, stdSizeCall) + } else if valuegoTyp != valuegoAliasTyp { p.P(`l = ((`, valuegoTyp, `)(v)).`, sizeName, `()`) } else { p.P(`l = v.`, sizeName, `()`) } + p.P(`l += `, strconv.Itoa(valueKeySize), ` + sov`+p.localName+`(uint64(l))`) p.Out() p.P(`}`) + sum = append(sum, `l`) } else { - if valuegoTyp != valuegoAliasTyp { + if stdOk { + p.P(`l = `, stdSizeCall) + } else if valuegoTyp != valuegoAliasTyp { p.P(`l = ((*`, valuegoTyp, `)(&v)).`, sizeName, `()`) } else { p.P(`l = v.`, sizeName, `()`) } + sum = append(sum, strconv.Itoa(valueKeySize)) + sum = append(sum, `l+sov`+p.localName+`(uint64(l))`) } - sum = append(sum, `l+sov`+p.localName+`(uint64(l))`) } p.P(`mapEntrySize := `, strings.Join(sum, "+")) p.P(`n+=mapEntrySize+`, fieldKeySize, `+sov`, p.localName, `(uint64(mapEntrySize))`) @@ -419,12 +479,22 @@ func (p *size) generateField(proto3 bool, file *generator.FileDescriptor, messag } else if repeated { p.P(`for _, e := range m.`, fieldname, ` { `) p.In() - p.P(`l=e.`, sizeName, `()`) + stdSizeCall, stdOk := p.std(field, "e") + if stdOk { + p.P(`l=`, stdSizeCall) + } else { + p.P(`l=e.`, sizeName, `()`) + } p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) p.Out() p.P(`}`) } else { - p.P(`l=m.`, fieldname, `.`, sizeName, `()`) + stdSizeCall, stdOk := p.std(field, "m."+fieldname) + if stdOk { + p.P(`l=`, stdSizeCall) + } else { + p.P(`l=m.`, fieldname, `.`, sizeName, `()`) + } p.P(`n+=`, strconv.Itoa(key), `+l+sov`, p.localName, `(uint64(l))`) } case descriptor.FieldDescriptorProto_TYPE_BYTES: @@ -500,12 +570,17 @@ func (p *size) Generate(file *generator.FileDescriptor) { p.PluginImports = generator.NewPluginImports(p.Generator) p.atleastOne = false p.localName = generator.FileName(file) + p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") protoPkg := p.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { protoPkg = p.NewImport("github.com/golang/protobuf/proto") } for _, message := range file.Messages() { sizeName := "" + if gogoproto.IsSizer(file.FileDescriptorProto, message.DescriptorProto) && gogoproto.IsProtoSizer(file.FileDescriptorProto, message.DescriptorProto) { + fmt.Fprintf(os.Stderr, "ERROR: message %v cannot support both sizer and protosizer plugins\n", generator.CamelCase(*message.Name)) + os.Exit(1) + } if gogoproto.IsSizer(file.FileDescriptorProto, message.DescriptorProto) { sizeName = "Size" } else if gogoproto.IsProtoSizer(file.FileDescriptorProto, message.DescriptorProto) { @@ -543,15 +618,15 @@ func (p *size) Generate(file *generator.FileDescriptor) { } } if message.DescriptorProto.HasExtension() { - p.P(`if m.XXX_extensions != nil {`) - p.In() if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`n += `, protoPkg.Use(), `.SizeOfExtensionMap(m.XXX_extensions)`) + p.P(`n += `, protoPkg.Use(), `.SizeOfInternalExtension(m)`) } else { + p.P(`if m.XXX_extensions != nil {`) + p.In() p.P(`n+=len(m.XXX_extensions)`) + p.Out() + p.P(`}`) } - p.Out() - p.P(`}`) } if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { p.P(`if m.XXX_unrecognized != nil {`) diff --git a/vendor/github.com/gogo/protobuf/plugin/size/sizetest.go b/vendor/github.com/gogo/protobuf/plugin/size/sizetest.go index 4fa946e5..1df98730 100644 --- a/vendor/github.com/gogo/protobuf/plugin/size/sizetest.go +++ b/vendor/github.com/gogo/protobuf/plugin/size/sizetest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -71,16 +73,16 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) p.P(`size2 := `, protoPkg.Use(), `.Size(p)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(p)`) p.P(`if err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() p.P(`}`) p.P(`size := p.`, sizeName, `()`) - p.P(`if len(data) != size {`) + p.P(`if len(dAtA) != size {`) p.In() - p.P(`t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data))`) + p.P(`t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA))`) p.Out() p.P(`}`) p.P(`if size2 != size {`) diff --git a/vendor/github.com/gogo/protobuf/plugin/stringer/stringer.go b/vendor/github.com/gogo/protobuf/plugin/stringer/stringer.go index 1bd17bbc..098a9db7 100644 --- a/vendor/github.com/gogo/protobuf/plugin/stringer/stringer.go +++ b/vendor/github.com/gogo/protobuf/plugin/stringer/stringer.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -126,6 +128,7 @@ func (p *stringer) Generate(file *generator.FileDescriptor) { stringsPkg := p.NewImport("strings") reflectPkg := p.NewImport("reflect") sortKeysPkg := p.NewImport("github.com/gogo/protobuf/sortkeys") + protoPkg := p.NewImport("github.com/gogo/protobuf/proto") for _, message := range file.Messages() { if !gogoproto.IsStringer(file.FileDescriptorProto, message.DescriptorProto) { continue @@ -200,7 +203,7 @@ func (p *stringer) Generate(file *generator.FileDescriptor) { } else if p.IsMap(field) { mapName := `mapStringFor` + fieldname p.P("`", fieldname, ":`", ` + `, mapName, " + `,", "`,") - } else if field.IsMessage() || p.IsGroup(field) { + } else if (field.IsMessage() && !gogoproto.IsCustomType(field)) || p.IsGroup(field) { desc := p.ObjectNamed(field.GetTypeName()) msgname := p.TypeName(desc) msgnames := strings.Split(msgname, ".") @@ -222,9 +225,9 @@ func (p *stringer) Generate(file *generator.FileDescriptor) { } if message.DescriptorProto.HasExtension() { if gogoproto.HasExtensionsMap(file.FileDescriptorProto, message.DescriptorProto) { - p.P("`XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`,") + p.P("`XXX_InternalExtensions:` + ", protoPkg.Use(), ".StringFromInternalExtension(this) + `,`,") } else { - p.P("`XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`,") + p.P("`XXX_extensions:` + ", protoPkg.Use(), ".StringFromExtensionsBytes(this.XXX_extensions) + `,`,") } } if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { diff --git a/vendor/github.com/gogo/protobuf/plugin/stringer/stringertest.go b/vendor/github.com/gogo/protobuf/plugin/stringer/stringertest.go index df615ba7..0912a22d 100644 --- a/vendor/github.com/gogo/protobuf/plugin/stringer/stringertest.go +++ b/vendor/github.com/gogo/protobuf/plugin/stringer/stringertest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go b/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go index a48a1c2c..a9364f99 100644 --- a/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go +++ b/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -61,16 +63,16 @@ given to the testgen plugin, will generate the following test code: func TestAProto(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("%#v !VerboseProto %#v, since %v", msg, p, err) @@ -89,11 +91,11 @@ given to the testgen plugin, will generate the following test code: } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -103,11 +105,11 @@ given to the testgen plugin, will generate the following test code: total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &A{} b.ResetTimer() @@ -144,9 +146,9 @@ given to the testgen plugin, will generate the following test code: func TestAProtoText(t *testing2.T) { popr := math_rand2.New(math_rand2.NewSource(time2.Now().UnixNano())) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto1.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto1.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto1.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto1.UnmarshalText(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -160,9 +162,9 @@ given to the testgen plugin, will generate the following test code: func TestAProtoCompactText(t *testing2.T) { popr := math_rand2.New(math_rand2.NewSource(time2.Now().UnixNano())) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto1.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto1.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto1.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto1.UnmarshalText(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -268,6 +270,7 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi testingPkg := imports.NewImport("testing") randPkg := imports.NewImport("math/rand") timePkg := imports.NewImport("time") + unsafePkg := imports.NewImport("unsafe") protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { protoPkg = imports.NewImport("github.com/golang/protobuf/proto") @@ -277,31 +280,41 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi if message.DescriptorProto.GetOptions().GetMapEntry() { continue } + hasUnsafe := gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) || + gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { used = true p.P(`func Test`, ccTypeName, `Proto(t *`, testingPkg.Use(), `.T) {`) p.In() + if hasUnsafe { + p.P(`var bigendian uint32 = 0x01020304`) + p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) + p.In() + p.P(`t.Skip("unsafe does not work on big endian architectures")`) + p.Out() + p.P(`}`) + } p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) - p.P(`data, err := `, protoPkg.Use(), `.Marshal(p)`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(p)`) p.P(`if err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() p.P(`}`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.Unmarshal(dAtA, msg); err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() p.P(`}`) - p.P(`littlefuzz := make([]byte, len(data))`) - p.P(`copy(littlefuzz, data)`) - p.P(`for i := range data {`) + p.P(`littlefuzz := make([]byte, len(dAtA))`) + p.P(`copy(littlefuzz, dAtA)`) + p.P(`for i := range dAtA {`) p.In() - p.P(`data[i] = byte(popr.Intn(256))`) + p.P(`dAtA[i] = byte(popr.Intn(256))`) p.Out() p.P(`}`) if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { @@ -338,6 +351,14 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi if gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) || gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { p.P(`func Test`, ccTypeName, `MarshalTo(t *`, testingPkg.Use(), `.T) {`) p.In() + if hasUnsafe { + p.P(`var bigendian uint32 = 0x01020304`) + p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) + p.In() + p.P(`t.Skip("unsafe does not work on big endian architectures")`) + p.Out() + p.P(`}`) + } p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) @@ -346,27 +367,27 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi } else { p.P(`size := p.Size()`) } - p.P(`data := make([]byte, size)`) - p.P(`for i := range data {`) + p.P(`dAtA := make([]byte, size)`) + p.P(`for i := range dAtA {`) p.In() - p.P(`data[i] = byte(popr.Intn(256))`) + p.P(`dAtA[i] = byte(popr.Intn(256))`) p.Out() p.P(`}`) - p.P(`_, err := p.MarshalTo(data)`) + p.P(`_, err := p.MarshalTo(dAtA)`) p.P(`if err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() p.P(`}`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.Unmarshal(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.Unmarshal(dAtA, msg); err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() p.P(`}`) - p.P(`for i := range data {`) + p.P(`for i := range dAtA {`) p.In() - p.P(`data[i] = byte(popr.Intn(256))`) + p.P(`dAtA[i] = byte(popr.Intn(256))`) p.Out() p.P(`}`) if gogoproto.HasVerboseEqual(file.FileDescriptorProto, message.DescriptorProto) { @@ -402,13 +423,13 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi p.P(`b.ResetTimer()`) p.P(`for i := 0; i < b.N; i++ {`) p.In() - p.P(`data, err := `, protoPkg.Use(), `.Marshal(pops[i%10000])`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(pops[i%10000])`) p.P(`if err != nil {`) p.In() p.P(`panic(err)`) p.Out() p.P(`}`) - p.P(`total += len(data)`) + p.P(`total += len(dAtA)`) p.Out() p.P(`}`) p.P(`b.SetBytes(int64(total / b.N))`) @@ -423,13 +444,13 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi p.P(`datas := make([][]byte, 10000)`) p.P(`for i := 0; i < 10000; i++ {`) p.In() - p.P(`data, err := `, protoPkg.Use(), `.Marshal(NewPopulated`, ccTypeName, `(popr, false))`) + p.P(`dAtA, err := `, protoPkg.Use(), `.Marshal(NewPopulated`, ccTypeName, `(popr, false))`) p.P(`if err != nil {`) p.In() p.P(`panic(err)`) p.Out() p.P(`}`) - p.P(`datas[i] = data`) + p.P(`datas[i] = dAtA`) p.Out() p.P(`}`) p.P(`msg := &`, ccTypeName, `{}`) @@ -543,9 +564,9 @@ func (p *testText) Generate(imports generator.PluginImports, file *generator.Fil p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`data := `, protoPkg.Use(), `.MarshalTextString(p)`) + p.P(`dAtA := `, protoPkg.Use(), `.MarshalTextString(p)`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(dAtA, msg); err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() @@ -571,9 +592,9 @@ func (p *testText) Generate(imports generator.PluginImports, file *generator.Fil p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, true)`) - p.P(`data := `, protoPkg.Use(), `.CompactTextString(p)`) + p.P(`dAtA := `, protoPkg.Use(), `.CompactTextString(p)`) p.P(`msg := &`, ccTypeName, `{}`) - p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(data, msg); err != nil {`) + p.P(`if err := `, protoPkg.Use(), `.UnmarshalText(dAtA, msg); err != nil {`) p.In() p.P(`t.Fatalf("seed = %d, err = %v", seed, err)`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/union/union.go b/vendor/github.com/gogo/protobuf/plugin/union/union.go index 68404777..72edb249 100644 --- a/vendor/github.com/gogo/protobuf/plugin/union/union.go +++ b/vendor/github.com/gogo/protobuf/plugin/union/union.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/union/uniontest.go b/vendor/github.com/gogo/protobuf/plugin/union/uniontest.go index 75e68ed5..949cf833 100644 --- a/vendor/github.com/gogo/protobuf/plugin/union/uniontest.go +++ b/vendor/github.com/gogo/protobuf/plugin/union/uniontest.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go index e87f4726..6b67914b 100644 --- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -73,8 +75,8 @@ The following message: given to the unmarshal plugin, will generate the following code: - func (m *B) Unmarshal(data []byte) error { - l := len(data) + func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -82,7 +84,7 @@ given to the unmarshal plugin, will generate the following code: if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -101,7 +103,7 @@ given to the unmarshal plugin, will generate the following code: if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -112,7 +114,7 @@ given to the unmarshal plugin, will generate the following code: if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -125,7 +127,7 @@ given to the unmarshal plugin, will generate the following code: if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -137,7 +139,7 @@ given to the unmarshal plugin, will generate the following code: return io.ErrUnexpectedEOF } m.G = append(m.G, github_com_gogo_protobuf_test_custom.Uint128{}) - if err := m.G[len(m.G)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.G[len(m.G)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -151,14 +153,14 @@ given to the unmarshal plugin, will generate the following code: } } iNdEx -= sizeOfWire - skippy, err := skip(data[iNdEx:]) + skippy, err := skip(dAtA[iNdEx:]) if err != nil { return err } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -191,6 +193,7 @@ type unmarshal struct { ioPkg generator.Single mathPkg generator.Single unsafePkg generator.Single + typesPkg generator.Single localName string } @@ -226,7 +229,7 @@ func (p *unmarshal) decodeVarint(varName string, typName string) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(`b := data[iNdEx]`) + p.P(`b := dAtA[iNdEx]`) p.P(`iNdEx++`) p.P(varName, ` |= (`, typName, `(b) & 0x7F) << shift`) p.P(`if b < 0x80 {`) @@ -245,10 +248,10 @@ func (p *unmarshal) decodeFixed32(varName string, typeName string) { p.Out() p.P(`}`) p.P(`iNdEx += 4`) - p.P(varName, ` = `, typeName, `(data[iNdEx-4])`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 8`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 16`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 24`) + p.P(varName, ` = `, typeName, `(dAtA[iNdEx-4])`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 8`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 16`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 24`) } func (p *unmarshal) unsafeFixed32(varName string, typeName string) { @@ -257,7 +260,7 @@ func (p *unmarshal) unsafeFixed32(varName string, typeName string) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`) + p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`) p.P(`iNdEx += 4`) } @@ -268,14 +271,14 @@ func (p *unmarshal) decodeFixed64(varName string, typeName string) { p.Out() p.P(`}`) p.P(`iNdEx += 8`) - p.P(varName, ` = `, typeName, `(data[iNdEx-8])`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-7]) << 8`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-6]) << 16`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-5]) << 24`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-4]) << 32`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 40`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 48`) - p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 56`) + p.P(varName, ` = `, typeName, `(dAtA[iNdEx-8])`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-7]) << 8`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-6]) << 16`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-5]) << 24`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-4]) << 32`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 40`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 48`) + p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 56`) } func (p *unmarshal) unsafeFixed64(varName string, typeName string) { @@ -284,11 +287,11 @@ func (p *unmarshal) unsafeFixed64(varName string, typeName string) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`) + p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`) p.P(`iNdEx += 8`) } -func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorProto) { +func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.FieldDescriptorProto) { switch field.GetType() { case descriptor.FieldDescriptorProto_TYPE_DOUBLE: p.P(`var `, varName, `temp uint64`) @@ -334,7 +337,7 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr p.P(`}`) cast, _ := p.GoType(nil, field) cast = strings.Replace(cast, "*", "", 1) - p.P(varName, ` := `, cast, `(data[iNdEx:postStringIndex`, varName, `])`) + p.P(varName, ` := `, cast, `(dAtA[iNdEx:postStringIndex`, varName, `])`) p.P(`iNdEx = postStringIndex`, varName) case descriptor.FieldDescriptorProto_TYPE_MESSAGE: p.P(`var mapmsglen int`) @@ -357,8 +360,17 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr p.P(`}`) desc := p.ObjectNamed(field.GetTypeName()) msgname := p.TypeName(desc) - p.P(varName, ` := &`, msgname, `{}`) - p.P(`if err := `, varName, `.Unmarshal(data[iNdEx:postmsgIndex]); err != nil {`) + buf := `dAtA[iNdEx:postmsgIndex]` + if gogoproto.IsStdTime(field) { + p.P(varName, ` := new(time.Time)`) + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(`, varName, `, `, buf, `); err != nil {`) + } else if gogoproto.IsStdDuration(field) { + p.P(varName, ` := new(time.Duration)`) + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(`, varName, `, `, buf, `); err != nil {`) + } else { + p.P(varName, ` := &`, msgname, `{}`) + p.P(`if err := `, varName, `.Unmarshal(`, buf, `); err != nil {`) + } p.In() p.P(`return err`) p.Out() @@ -379,8 +391,22 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(varName, ` := make([]byte, mapbyteLen)`) - p.P(`copy(`, varName, `, data[iNdEx:postbytesIndex])`) + if customType { + _, ctyp, err := generator.GetCustomType(field) + if err != nil { + panic(err) + } + p.P(`var `, varName, `1 `, ctyp) + p.P(`var `, varName, ` = &`, varName, `1`) + p.P(`if err := `, varName, `.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil {`) + p.In() + p.P(`return err`) + p.Out() + p.P(`}`) + } else { + p.P(varName, ` := make([]byte, mapbyteLen)`) + p.P(`copy(`, varName, `, dAtA[iNdEx:postbytesIndex])`) + } p.P(`iNdEx = postbytesIndex`) case descriptor.FieldDescriptorProto_TYPE_UINT32: p.P(`var `, varName, ` uint32`) @@ -640,13 +666,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip p.Out() p.P(`}`) if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(data[iNdEx:postIndex])}`) + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(dAtA[iNdEx:postIndex])}`) } else if repeated { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(data[iNdEx:postIndex]))`) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(dAtA[iNdEx:postIndex]))`) } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, `(data[iNdEx:postIndex])`) + p.P(`m.`, fieldname, ` = `, typ, `(dAtA[iNdEx:postIndex])`) } else { - p.P(`s := `, typ, `(data[iNdEx:postIndex])`) + p.P(`s := `, typ, `(dAtA[iNdEx:postIndex])`) p.P(`m.`, fieldname, ` = &s`) } p.P(`iNdEx = postIndex`) @@ -669,8 +695,27 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip p.Out() p.P(`}`) if oneof { - p.P(`v := &`, msgname, `{}`) - p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + buf := `dAtA[iNdEx:postIndex]` + if gogoproto.IsStdTime(field) { + if nullable { + p.P(`v := new(time.Time)`) + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(v, `, buf, `); err != nil {`) + } else { + p.P(`v := time.Time{}`) + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&v, `, buf, `); err != nil {`) + } + } else if gogoproto.IsStdDuration(field) { + if nullable { + p.P(`v := new(time.Duration)`) + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(v, `, buf, `); err != nil {`) + } else { + p.P(`v := time.Duration(0)`) + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&v, `, buf, `); err != nil {`) + } + } else { + p.P(`v := &`, msgname, `{}`) + p.P(`if err := v.Unmarshal(`, buf, `); err != nil {`) + } p.In() p.P(`return err`) p.Out() @@ -690,17 +735,21 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip // if the map type is an alias and key or values are aliases (type Foo map[Bar]Baz), // we need to explicitly record their use here. - p.RecordTypeUse(m.KeyAliasField.GetTypeName()) - p.RecordTypeUse(m.ValueAliasField.GetTypeName()) + if gogoproto.IsCastKey(field) { + p.RecordTypeUse(m.KeyAliasField.GetTypeName()) + } + if gogoproto.IsCastValue(field) { + p.RecordTypeUse(m.ValueAliasField.GetTypeName()) + } nullable, valuegoTyp, valuegoAliasTyp = generator.GoMapValueTypes(field, m.ValueField, valuegoTyp, valuegoAliasTyp) + if gogoproto.IsStdTime(field) || gogoproto.IsStdDuration(field) { + valuegoTyp = valuegoAliasTyp + } p.P(`var keykey uint64`) p.decodeVarint("keykey", "uint64") - p.mapField("mapkey", m.KeyAliasField) - p.P(`var valuekey uint64`) - p.decodeVarint("valuekey", "uint64") - p.mapField("mapvalue", m.ValueAliasField) + p.mapField("mapkey", false, m.KeyAliasField) p.P(`if m.`, fieldname, ` == nil {`) p.In() p.P(`m.`, fieldname, ` = make(`, m.GoType, `)`) @@ -713,20 +762,79 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip s += `[` + keygoAliasTyp + `(mapkey)]` } v := `mapvalue` - if m.ValueField.IsMessage() && !nullable { + if (m.ValueField.IsMessage() || gogoproto.IsCustomType(field)) && !nullable { v = `*` + v } if valuegoTyp != valuegoAliasTyp { v = `((` + valuegoAliasTyp + `)(` + v + `))` } + p.P(`if iNdEx < postIndex {`) + p.In() + p.P(`var valuekey uint64`) + p.decodeVarint("valuekey", "uint64") + p.mapField("mapvalue", gogoproto.IsCustomType(field), m.ValueAliasField) p.P(s, ` = `, v) + p.Out() + p.P(`} else {`) + p.In() + if gogoproto.IsStdTime(field) { + p.P(`var mapvalue = new(time.Time)`) + if nullable { + p.P(s, ` = mapvalue`) + } else { + p.P(s, ` = *mapvalue`) + } + } else if gogoproto.IsStdDuration(field) { + p.P(`var mapvalue = new(time.Duration)`) + if nullable { + p.P(s, ` = mapvalue`) + } else { + p.P(s, ` = *mapvalue`) + } + } else { + p.P(`var mapvalue `, valuegoAliasTyp) + p.P(s, ` = mapvalue`) + } + p.Out() + p.P(`}`) } else if repeated { - if nullable { + if gogoproto.IsStdTime(field) { + if nullable { + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, new(time.Time))`) + } else { + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, time.Time{})`) + } + } else if gogoproto.IsStdDuration(field) { + if nullable { + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, new(time.Duration))`) + } else { + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, time.Duration(0))`) + } + } else if nullable && !gogoproto.IsCustomType(field) { p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, &`, msgname, `{})`) } else { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, msgname, `{})`) + goType, _ := p.GoType(nil, field) + // remove the slice from the type, i.e. []*T -> *T + goType = goType[2:] + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, goType, `{})`) + } + varName := `m.` + fieldname + `[len(m.` + fieldname + `)-1]` + buf := `dAtA[iNdEx:postIndex]` + if gogoproto.IsStdTime(field) { + if nullable { + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(`, varName, `,`, buf, `); err != nil {`) + } else { + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&(`, varName, `),`, buf, `); err != nil {`) + } + } else if gogoproto.IsStdDuration(field) { + if nullable { + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(`, varName, `,`, buf, `); err != nil {`) + } else { + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&(`, varName, `),`, buf, `); err != nil {`) + } + } else { + p.P(`if err := `, varName, `.Unmarshal(`, buf, `); err != nil {`) } - p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() @@ -734,22 +842,43 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip } else if nullable { p.P(`if m.`, fieldname, ` == nil {`) p.In() - p.P(`m.`, fieldname, ` = &`, msgname, `{}`) + if gogoproto.IsStdTime(field) { + p.P(`m.`, fieldname, ` = new(time.Time)`) + } else if gogoproto.IsStdDuration(field) { + p.P(`m.`, fieldname, ` = new(time.Duration)`) + } else { + goType, _ := p.GoType(nil, field) + // remove the star from the type + p.P(`m.`, fieldname, ` = &`, goType[1:], `{}`) + } p.Out() p.P(`}`) - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + if gogoproto.IsStdTime(field) { + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`) + } else if gogoproto.IsStdDuration(field) { + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`) + } else { + p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) + } p.In() p.P(`return err`) p.Out() p.P(`}`) } else { - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + if gogoproto.IsStdTime(field) { + p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`) + } else if gogoproto.IsStdDuration(field) { + p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`) + } else { + p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) + } p.In() p.P(`return err`) p.Out() p.P(`}`) } p.P(`iNdEx = postIndex`) + case descriptor.FieldDescriptorProto_TYPE_BYTES: p.P(`var byteLen int`) p.decodeVarint("byteLen", "int") @@ -767,13 +896,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip if !gogoproto.IsCustomType(field) { if oneof { p.P(`v := make([]byte, postIndex-iNdEx)`) - p.P(`copy(v, data[iNdEx:postIndex])`) + p.P(`copy(v, dAtA[iNdEx:postIndex])`) p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) } else if repeated { p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, make([]byte, postIndex-iNdEx))`) - p.P(`copy(m.`, fieldname, `[len(m.`, fieldname, `)-1], data[iNdEx:postIndex])`) + p.P(`copy(m.`, fieldname, `[len(m.`, fieldname, `)-1], dAtA[iNdEx:postIndex])`) } else { - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `[:0] , data[iNdEx:postIndex]...)`) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `[:0] , dAtA[iNdEx:postIndex]...)`) p.P(`if m.`, fieldname, ` == nil {`) p.In() p.P(`m.`, fieldname, ` = []byte{}`) @@ -788,7 +917,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip if oneof { p.P(`var vv `, ctyp) p.P(`v := &vv`) - p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + p.P(`if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() @@ -797,7 +926,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip } else if repeated { p.P(`var v `, ctyp) p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`) + p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() @@ -805,13 +934,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip } else if nullable { p.P(`var v `, ctyp) p.P(`m.`, fieldname, ` = &v`) - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() p.P(`}`) } else { - p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`) + p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() @@ -968,6 +1097,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.ioPkg = p.NewImport("io") p.mathPkg = p.NewImport("math") p.unsafePkg = p.NewImport("unsafe") + p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") fmtPkg := p.NewImport("fmt") protoPkg := p.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { @@ -1008,12 +1138,12 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { } rfCount := len(rfMap) - p.P(`func (m *`, ccTypeName, `) Unmarshal(data []byte) error {`) + p.P(`func (m *`, ccTypeName, `) Unmarshal(dAtA []byte) error {`) p.In() if rfCount > 0 { p.P(`var hasFields [`, strconv.Itoa(1+(rfCount-1)/64), `]uint64`) } - p.P(`l := len(data)`) + p.P(`l := len(dAtA)`) p.P(`iNdEx := 0`) p.P(`for iNdEx < l {`) p.In() @@ -1044,12 +1174,16 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { if field.OneofIndex != nil { errFieldname = p.GetOneOfFieldName(message, field) } - packed := field.IsPacked() + possiblyPacked := field.IsScalar() && field.IsRepeated() p.P(`case `, strconv.Itoa(int(field.GetNumber())), `:`) p.In() wireType := field.WireType() - if packed { - p.P(`if wireType == `, strconv.Itoa(proto.WireBytes), `{`) + if possiblyPacked { + p.P(`if wireType == `, strconv.Itoa(wireType), `{`) + p.In() + p.field(file, message, field, fieldname, false) + p.Out() + p.P(`} else if wireType == `, strconv.Itoa(proto.WireBytes), `{`) p.In() p.P(`var packedLen int`) p.decodeVarint("packedLen", "int") @@ -1070,10 +1204,6 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.Out() p.P(`}`) p.Out() - p.P(`} else if wireType == `, strconv.Itoa(wireType), `{`) - p.In() - p.field(file, message, field, fieldname, false) - p.Out() p.P(`} else {`) p.In() p.P(`return ` + fmtPkg.Use() + `.Errorf("proto: wrong wireType = %d for field ` + errFieldname + `", wireType)`) @@ -1119,7 +1249,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.Out() p.P(`}`) p.P(`iNdEx-=sizeOfWire`) - p.P(`skippy, err := skip`, p.localName+`(data[iNdEx:])`) + p.P(`skippy, err := skip`, p.localName+`(dAtA[iNdEx:])`) p.P(`if err != nil {`) p.In() p.P(`return err`) @@ -1135,14 +1265,14 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(protoPkg.Use(), `.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy])`) + p.P(protoPkg.Use(), `.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy])`) p.P(`iNdEx += skippy`) p.Out() p.P(`} else {`) p.In() } p.P(`iNdEx=preIndex`) - p.P(`skippy, err := skip`, p.localName, `(data[iNdEx:])`) + p.P(`skippy, err := skip`, p.localName, `(dAtA[iNdEx:])`) p.P(`if err != nil {`) p.In() p.P(`return err`) @@ -1159,7 +1289,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.Out() p.P(`}`) if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) { - p.P(`m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)`) + p.P(`m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)`) } p.P(`iNdEx += skippy`) p.Out() @@ -1206,8 +1336,8 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { return } - p.P(`func skip` + p.localName + `(data []byte) (n int, err error) { - l := len(data) + p.P(`func skip` + p.localName + `(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1218,7 +1348,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { if iNdEx >= l { return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1236,7 +1366,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1253,7 +1383,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { if iNdEx >= l { return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1276,7 +1406,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { if iNdEx >= l { return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1287,7 +1417,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { if innerWireType == 4 { break } - next, err := skip` + p.localName + `(data[start:]) + next, err := skip` + p.localName + `(dAtA[start:]) if err != nil { return 0, err } diff --git a/vendor/github.com/gogo/protobuf/proto/Makefile b/vendor/github.com/gogo/protobuf/proto/Makefile index 23a6b173..41c71757 100644 --- a/vendor/github.com/gogo/protobuf/proto/Makefile +++ b/vendor/github.com/gogo/protobuf/proto/Makefile @@ -39,5 +39,5 @@ test: install generate-test-pbs generate-test-pbs: make install make -C testdata - protoc-min-version --version="3.0.0" --proto_path=.:../../../../ --gogo_out=. proto3_proto/proto3.proto + protoc-min-version --version="3.0.0" --proto_path=.:../../../../:../protobuf --gogo_out=Mtestdata/test.proto=github.com/gogo/protobuf/proto/testdata,Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types:. proto3_proto/proto3.proto make diff --git a/vendor/github.com/gogo/protobuf/proto/all_test.go b/vendor/github.com/gogo/protobuf/proto/all_test.go index d33469e6..b5f8709d 100644 --- a/vendor/github.com/gogo/protobuf/proto/all_test.go +++ b/vendor/github.com/gogo/protobuf/proto/all_test.go @@ -420,7 +420,7 @@ func TestMarshalerEncoding(t *testing.T) { name string m Message want []byte - wantErr error + errType reflect.Type }{ { name: "Marshaler that fails", @@ -428,9 +428,11 @@ func TestMarshalerEncoding(t *testing.T) { err: errors.New("some marshal err"), b: []byte{5, 6, 7}, }, - // Since there's an error, nothing should be written to buffer. - want: nil, - wantErr: errors.New("some marshal err"), + // Since the Marshal method returned bytes, they should be written to the + // buffer. (For efficiency, we assume that Marshal implementations are + // always correct w.r.t. RequiredNotSetError and output.) + want: []byte{5, 6, 7}, + errType: reflect.TypeOf(errors.New("some marshal err")), }, { name: "Marshaler that fails with RequiredNotSetError", @@ -446,30 +448,37 @@ func TestMarshalerEncoding(t *testing.T) { 10, 3, // for &msgWithFakeMarshaler 5, 6, 7, // for &fakeMarshaler }, - wantErr: &RequiredNotSetError{}, + errType: reflect.TypeOf(&RequiredNotSetError{}), }, { name: "Marshaler that succeeds", m: &fakeMarshaler{ b: []byte{0, 1, 2, 3, 4, 127, 255}, }, - want: []byte{0, 1, 2, 3, 4, 127, 255}, - wantErr: nil, + want: []byte{0, 1, 2, 3, 4, 127, 255}, }, } for _, test := range tests { b := NewBuffer(nil) err := b.Marshal(test.m) - if _, ok := err.(*RequiredNotSetError); ok { - // We're not in package proto, so we can only assert the type in this case. - err = &RequiredNotSetError{} - } - if !reflect.DeepEqual(test.wantErr, err) { - t.Errorf("%s: got err %v wanted %v", test.name, err, test.wantErr) + if reflect.TypeOf(err) != test.errType { + t.Errorf("%s: got err %T(%v) wanted %T", test.name, err, err, test.errType) } if !reflect.DeepEqual(test.want, b.Bytes()) { t.Errorf("%s: got bytes %v wanted %v", test.name, b.Bytes(), test.want) } + if size := Size(test.m); size != len(b.Bytes()) { + t.Errorf("%s: Size(_) = %v, but marshaled to %v bytes", test.name, size, len(b.Bytes())) + } + + m, mErr := Marshal(test.m) + if !bytes.Equal(b.Bytes(), m) { + t.Errorf("%s: Marshal returned %v, but (*Buffer).Marshal wrote %v", test.name, m, b.Bytes()) + } + if !reflect.DeepEqual(err, mErr) { + t.Errorf("%s: Marshal err = %q, but (*Buffer).Marshal returned %q", + test.name, fmt.Sprint(mErr), fmt.Sprint(err)) + } } } @@ -1311,7 +1320,7 @@ func TestRequiredFieldEnforcement(t *testing.T) { _, err := Marshal(pb) if err == nil { t.Error("marshal: expected error, got nil") - } else if strings.Index(err.Error(), "Label") < 0 { + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Label") { t.Errorf("marshal: bad error type: %v", err) } @@ -1322,7 +1331,24 @@ func TestRequiredFieldEnforcement(t *testing.T) { err = Unmarshal(buf, pb) if err == nil { t.Error("unmarshal: expected error, got nil") - } else if strings.Index(err.Error(), "{Unknown}") < 0 { + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "{Unknown}") { + t.Errorf("unmarshal: bad error type: %v", err) + } +} + +// Verify that absent required fields in groups cause Marshal/Unmarshal to return errors. +func TestRequiredFieldEnforcementGroups(t *testing.T) { + pb := &GoTestRequiredGroupField{Group: &GoTestRequiredGroupField_Group{}} + if _, err := Marshal(pb); err == nil { + t.Error("marshal: expected error, got nil") + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Group.Field") { + t.Errorf("marshal: bad error type: %v", err) + } + + buf := []byte{11, 12} + if err := Unmarshal(buf, pb); err == nil { + t.Error("unmarshal: expected error, got nil") + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Group.{Unknown}") { t.Errorf("unmarshal: bad error type: %v", err) } } @@ -1337,7 +1363,7 @@ func TestTypedNilMarshal(t *testing.T) { } { - m := &Communique{Union: &Communique_Msg{nil}} + m := &Communique{Union: &Communique_Msg{Msg: nil}} if _, err := Marshal(m); err == nil || err == ErrNil { t.Errorf("Marshal(%#v): got %v, want errOneofHasNil", m, err) } @@ -1822,42 +1848,42 @@ func TestRequiredNotSetError(t *testing.T) { "b8067f" // field 103, encoding 0, 0x7f zigzag64 o := old() - bytes, err := Marshal(pb) + mbytes, err := Marshal(pb) if _, ok := err.(*RequiredNotSetError); !ok { fmt.Printf("marshal-1 err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) + o.DebugPrint("", mbytes) t.Fatalf("expected = %s", expected) } if strings.Index(err.Error(), "RequiredField.Label") < 0 { t.Errorf("marshal-1 wrong err msg: %v", err) } - if !equal(bytes, expected, t) { - o.DebugPrint("neq 1", bytes) + if !equal(mbytes, expected, t) { + o.DebugPrint("neq 1", mbytes) t.Fatalf("expected = %s", expected) } // Now test Unmarshal by recreating the original buffer. pbd := new(GoTest) - err = Unmarshal(bytes, pbd) + err = Unmarshal(mbytes, pbd) if _, ok := err.(*RequiredNotSetError); !ok { t.Fatalf("unmarshal err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) + o.DebugPrint("", mbytes) t.Fatalf("string = %s", expected) } if strings.Index(err.Error(), "RequiredField.{Unknown}") < 0 { t.Errorf("unmarshal wrong err msg: %v", err) } - bytes, err = Marshal(pbd) + mbytes, err = Marshal(pbd) if _, ok := err.(*RequiredNotSetError); !ok { t.Errorf("marshal-2 err = %v, want *RequiredNotSetError", err) - o.DebugPrint("", bytes) + o.DebugPrint("", mbytes) t.Fatalf("string = %s", expected) } if strings.Index(err.Error(), "RequiredField.Label") < 0 { t.Errorf("marshal-2 wrong err msg: %v", err) } - if !equal(bytes, expected, t) { - o.DebugPrint("neq 2", bytes) + if !equal(mbytes, expected, t) { + o.DebugPrint("neq 2", mbytes) t.Fatalf("string = %s", expected) } } @@ -1956,14 +1982,54 @@ func TestMapFieldRoundTrips(t *testing.T) { } func TestMapFieldWithNil(t *testing.T) { - m := &MessageWithMap{ + m1 := &MessageWithMap{ MsgMapping: map[int64]*FloatingPoint{ 1: nil, }, } - b, err := Marshal(m) - if err == nil { - t.Fatalf("Marshal of bad map should have failed, got these bytes: %v", b) + b, err := Marshal(m1) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + m2 := new(MessageWithMap) + if err := Unmarshal(b, m2); err != nil { + t.Fatalf("Unmarshal: %v, got these bytes: %v", err, b) + } + if v, ok := m2.MsgMapping[1]; !ok { + t.Error("msg_mapping[1] not present") + } else if v != nil { + t.Errorf("msg_mapping[1] not nil: %v", v) + } +} + +func TestMapFieldWithNilBytes(t *testing.T) { + m1 := &MessageWithMap{ + ByteMapping: map[bool][]byte{ + false: {}, + true: nil, + }, + } + n := Size(m1) + b, err := Marshal(m1) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + if n != len(b) { + t.Errorf("Size(m1) = %d; want len(Marshal(m1)) = %d", n, len(b)) + } + m2 := new(MessageWithMap) + if err := Unmarshal(b, m2); err != nil { + t.Fatalf("Unmarshal: %v, got these bytes: %v", err, b) + } + if v, ok := m2.ByteMapping[false]; !ok { + t.Error("byte_mapping[false] not present") + } else if len(v) != 0 { + t.Errorf("byte_mapping[false] not empty: %#v", v) + } + if v, ok := m2.ByteMapping[true]; !ok { + t.Error("byte_mapping[true] not present") + } else if len(v) != 0 { + t.Errorf("byte_mapping[true] not empty: %#v", v) } } @@ -2012,7 +2078,7 @@ func TestOneof(t *testing.T) { } m = &Communique{ - Union: &Communique_Name{"Barry"}, + Union: &Communique_Name{Name: "Barry"}, } // Round-trip. @@ -2035,7 +2101,7 @@ func TestOneof(t *testing.T) { } // Let's try with a message in the oneof. - m.Union = &Communique_Msg{&Strings{StringField: String("deep deep string")}} + m.Union = &Communique_Msg{Msg: &Strings{StringField: String("deep deep string")}} b, err = Marshal(m) if err != nil { t.Fatalf("Marshal of message with oneof set to message: %v", err) diff --git a/vendor/github.com/gogo/protobuf/proto/any_test.go b/vendor/github.com/gogo/protobuf/proto/any_test.go new file mode 100644 index 00000000..f098d828 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/any_test.go @@ -0,0 +1,300 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "strings" + "testing" + + "github.com/gogo/protobuf/proto" + + pb "github.com/gogo/protobuf/proto/proto3_proto" + testpb "github.com/gogo/protobuf/proto/testdata" + "github.com/gogo/protobuf/types" +) + +var ( + expandedMarshaler = proto.TextMarshaler{ExpandAny: true} + expandedCompactMarshaler = proto.TextMarshaler{Compact: true, ExpandAny: true} +) + +// anyEqual reports whether two messages which may be google.protobuf.Any or may +// contain google.protobuf.Any fields are equal. We can't use proto.Equal for +// comparison, because semantically equivalent messages may be marshaled to +// binary in different tag order. Instead, trust that TextMarshaler with +// ExpandAny option works and compare the text marshaling results. +func anyEqual(got, want proto.Message) bool { + // if messages are proto.Equal, no need to marshal. + if proto.Equal(got, want) { + return true + } + g := expandedMarshaler.Text(got) + w := expandedMarshaler.Text(want) + return g == w +} + +type golden struct { + m proto.Message + t, c string +} + +var goldenMessages = makeGolden() + +func makeGolden() []golden { + nested := &pb.Nested{Bunny: "Monty"} + nb, err := proto.Marshal(nested) + if err != nil { + panic(err) + } + m1 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &types.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(nested), Value: nb}, + } + m2 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &types.Any{TypeUrl: "http://[::1]/type.googleapis.com/" + proto.MessageName(nested), Value: nb}, + } + m3 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &types.Any{TypeUrl: `type.googleapis.com/"/` + proto.MessageName(nested), Value: nb}, + } + m4 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &types.Any{TypeUrl: "type.googleapis.com/a/path/" + proto.MessageName(nested), Value: nb}, + } + m5 := &types.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(nested), Value: nb} + + any1 := &testpb.MyMessage{Count: proto.Int32(47), Name: proto.String("David")} + proto.SetExtension(any1, testpb.E_Ext_More, &testpb.Ext{Data: proto.String("foo")}) + proto.SetExtension(any1, testpb.E_Ext_Text, proto.String("bar")) + any1b, err := proto.Marshal(any1) + if err != nil { + panic(err) + } + any2 := &testpb.MyMessage{Count: proto.Int32(42), Bikeshed: testpb.MyMessage_GREEN.Enum(), RepBytes: [][]byte{[]byte("roboto")}} + proto.SetExtension(any2, testpb.E_Ext_More, &testpb.Ext{Data: proto.String("baz")}) + any2b, err := proto.Marshal(any2) + if err != nil { + panic(err) + } + m6 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &types.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(any1), Value: any1b}, + ManyThings: []*types.Any{ + {TypeUrl: "type.googleapis.com/" + proto.MessageName(any2), Value: any2b}, + {TypeUrl: "type.googleapis.com/" + proto.MessageName(any1), Value: any1b}, + }, + } + + const ( + m1Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/proto3_proto.Nested]: < + bunny: "Monty" + > +> +` + m2Golden = ` +name: "David" +result_count: 47 +anything: < + ["http://[::1]/type.googleapis.com/proto3_proto.Nested"]: < + bunny: "Monty" + > +> +` + m3Golden = ` +name: "David" +result_count: 47 +anything: < + ["type.googleapis.com/\"/proto3_proto.Nested"]: < + bunny: "Monty" + > +> +` + m4Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/a/path/proto3_proto.Nested]: < + bunny: "Monty" + > +> +` + m5Golden = ` +[type.googleapis.com/proto3_proto.Nested]: < + bunny: "Monty" +> +` + m6Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/testdata.MyMessage]: < + count: 47 + name: "David" + [testdata.Ext.more]: < + data: "foo" + > + [testdata.Ext.text]: "bar" + > +> +many_things: < + [type.googleapis.com/testdata.MyMessage]: < + count: 42 + bikeshed: GREEN + rep_bytes: "roboto" + [testdata.Ext.more]: < + data: "baz" + > + > +> +many_things: < + [type.googleapis.com/testdata.MyMessage]: < + count: 47 + name: "David" + [testdata.Ext.more]: < + data: "foo" + > + [testdata.Ext.text]: "bar" + > +> +` + ) + return []golden{ + {m1, strings.TrimSpace(m1Golden) + "\n", strings.TrimSpace(compact(m1Golden)) + " "}, + {m2, strings.TrimSpace(m2Golden) + "\n", strings.TrimSpace(compact(m2Golden)) + " "}, + {m3, strings.TrimSpace(m3Golden) + "\n", strings.TrimSpace(compact(m3Golden)) + " "}, + {m4, strings.TrimSpace(m4Golden) + "\n", strings.TrimSpace(compact(m4Golden)) + " "}, + {m5, strings.TrimSpace(m5Golden) + "\n", strings.TrimSpace(compact(m5Golden)) + " "}, + {m6, strings.TrimSpace(m6Golden) + "\n", strings.TrimSpace(compact(m6Golden)) + " "}, + } +} + +func TestMarshalGolden(t *testing.T) { + for _, tt := range goldenMessages { + if got, want := expandedMarshaler.Text(tt.m), tt.t; got != want { + t.Errorf("message %v: got:\n%s\nwant:\n%s", tt.m, got, want) + } + if got, want := expandedCompactMarshaler.Text(tt.m), tt.c; got != want { + t.Errorf("message %v: got:\n`%s`\nwant:\n`%s`", tt.m, got, want) + } + } +} + +func TestUnmarshalGolden(t *testing.T) { + for _, tt := range goldenMessages { + want := tt.m + got := proto.Clone(tt.m) + got.Reset() + if err := proto.UnmarshalText(tt.t, got); err != nil { + t.Errorf("failed to unmarshal\n%s\nerror: %v", tt.t, err) + } + if !anyEqual(got, want) { + t.Errorf("message:\n%s\ngot:\n%s\nwant:\n%s", tt.t, got, want) + } + got.Reset() + if err := proto.UnmarshalText(tt.c, got); err != nil { + t.Errorf("failed to unmarshal\n%s\nerror: %v", tt.c, err) + } + if !anyEqual(got, want) { + t.Errorf("message:\n%s\ngot:\n%s\nwant:\n%s", tt.c, got, want) + } + } +} + +func TestMarshalUnknownAny(t *testing.T) { + m := &pb.Message{ + Anything: &types.Any{ + TypeUrl: "foo", + Value: []byte("bar"), + }, + } + want := `anything: < + type_url: "foo" + value: "bar" +> +` + got := expandedMarshaler.Text(m) + if got != want { + t.Errorf("got\n`%s`\nwant\n`%s`", got, want) + } +} + +func TestAmbiguousAny(t *testing.T) { + pb := &types.Any{} + err := proto.UnmarshalText(` + type_url: "ttt/proto3_proto.Nested" + value: "\n\x05Monty" + `, pb) + t.Logf("result: %v (error: %v)", expandedMarshaler.Text(pb), err) + if err != nil { + t.Errorf("failed to parse ambiguous Any message: %v", err) + } +} + +func TestUnmarshalOverwriteAny(t *testing.T) { + pb := &types.Any{} + err := proto.UnmarshalText(` + [type.googleapis.com/a/path/proto3_proto.Nested]: < + bunny: "Monty" + > + [type.googleapis.com/a/path/proto3_proto.Nested]: < + bunny: "Rabbit of Caerbannog" + > + `, pb) + want := `line 7: Any message unpacked multiple times, or "type_url" already set` + if err.Error() != want { + t.Errorf("incorrect error.\nHave: %v\nWant: %v", err.Error(), want) + } +} + +func TestUnmarshalAnyMixAndMatch(t *testing.T) { + pb := &types.Any{} + err := proto.UnmarshalText(` + value: "\n\x05Monty" + [type.googleapis.com/a/path/proto3_proto.Nested]: < + bunny: "Rabbit of Caerbannog" + > + `, pb) + want := `line 5: Any message unpacked multiple times, or "value" already set` + if err.Error() != want { + t.Errorf("incorrect error.\nHave: %v\nWant: %v", err.Error(), want) + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/clone.go b/vendor/github.com/gogo/protobuf/proto/clone.go index 79edb861..5d4cba4b 100644 --- a/vendor/github.com/gogo/protobuf/proto/clone.go +++ b/vendor/github.com/gogo/protobuf/proto/clone.go @@ -84,14 +84,20 @@ func mergeStruct(out, in reflect.Value) { mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) } - if emIn, ok := in.Addr().Interface().(extensionsMap); ok { - emOut := out.Addr().Interface().(extensionsMap) - mergeExtension(emOut.ExtensionMap(), emIn.ExtensionMap()) - } else if emIn, ok := in.Addr().Interface().(extensionsBytes); ok { + if emIn, ok := in.Addr().Interface().(extensionsBytes); ok { emOut := out.Addr().Interface().(extensionsBytes) bIn := emIn.GetExtensions() bOut := emOut.GetExtensions() *bOut = append(*bOut, *bIn...) + } else if emIn, ok := extendable(in.Addr().Interface()); ok { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } } uf := in.FieldByName("XXX_unrecognized") diff --git a/vendor/github.com/gogo/protobuf/proto/clone_test.go b/vendor/github.com/gogo/protobuf/proto/clone_test.go index f065210b..1a16eb55 100644 --- a/vendor/github.com/gogo/protobuf/proto/clone_test.go +++ b/vendor/github.com/gogo/protobuf/proto/clone_test.go @@ -195,6 +195,9 @@ var mergeTests = []struct { NameMapping: map[int32]string{6: "Nigel"}, MsgMapping: map[int64]*pb.FloatingPoint{ 0x4001: {F: proto.Float64(2.0)}, + 0x4002: { + F: proto.Float64(2.0), + }, }, ByteMapping: map[bool][]byte{true: []byte("wowsa")}, }, @@ -203,6 +206,12 @@ var mergeTests = []struct { 6: "Bruce", // should be overwritten 7: "Andrew", }, + MsgMapping: map[int64]*pb.FloatingPoint{ + 0x4002: { + F: proto.Float64(3.0), + Exact: proto.Bool(true), + }, // the entire message should be overwritten + }, }, want: &pb.MessageWithMap{ NameMapping: map[int32]string{ @@ -211,6 +220,9 @@ var mergeTests = []struct { }, MsgMapping: map[int64]*pb.FloatingPoint{ 0x4001: {F: proto.Float64(2.0)}, + 0x4002: { + F: proto.Float64(2.0), + }, }, ByteMapping: map[bool][]byte{true: []byte("wowsa")}, }, @@ -254,6 +266,27 @@ var mergeTests = []struct { Union: &pb.Communique_Name{Name: "Bobby Tables"}, }, }, + { + src: &proto3pb.Message{ + Terrain: map[string]*proto3pb.Nested{ + "kay_a": {Cute: true}, // replace + "kay_b": {Bunny: "rabbit"}, // insert + }, + }, + dst: &proto3pb.Message{ + Terrain: map[string]*proto3pb.Nested{ + "kay_a": {Bunny: "lost"}, // replaced + "kay_c": {Bunny: "bunny"}, // keep + }, + }, + want: &proto3pb.Message{ + Terrain: map[string]*proto3pb.Nested{ + "kay_a": {Cute: true}, + "kay_b": {Bunny: "rabbit"}, + "kay_c": {Bunny: "bunny"}, + }, + }, + }, } func TestMerge(t *testing.T) { diff --git a/vendor/github.com/gogo/protobuf/proto/decode.go b/vendor/github.com/gogo/protobuf/proto/decode.go index 7b06266d..737f2731 100644 --- a/vendor/github.com/gogo/protobuf/proto/decode.go +++ b/vendor/github.com/gogo/protobuf/proto/decode.go @@ -61,7 +61,6 @@ var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for // int32, int64, uint32, uint64, bool, and enum // protocol buffer types. func DecodeVarint(buf []byte) (x uint64, n int) { - // x, n already 0 for shift := uint(0); shift < 64; shift += 7 { if n >= len(buf) { return 0, 0 @@ -78,13 +77,7 @@ func DecodeVarint(buf []byte) (x uint64, n int) { return 0, 0 } -// DecodeVarint reads a varint-encoded integer from the Buffer. -// This is the format for the -// int32, int64, uint32, uint64, bool, and enum -// protocol buffer types. -func (p *Buffer) DecodeVarint() (x uint64, err error) { - // x, err already 0 - +func (p *Buffer) decodeVarintSlow() (x uint64, err error) { i := p.index l := len(p.buf) @@ -107,6 +100,107 @@ func (p *Buffer) DecodeVarint() (x uint64, err error) { return } +// DecodeVarint reads a varint-encoded integer from the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) DecodeVarint() (x uint64, err error) { + i := p.index + buf := p.buf + + if i >= len(buf) { + return 0, io.ErrUnexpectedEOF + } else if buf[i] < 0x80 { + p.index++ + return uint64(buf[i]), nil + } else if len(buf)-i < 10 { + return p.decodeVarintSlow() + } + + var b uint64 + // we already checked the first byte + x = uint64(buf[i]) - 0x80 + i++ + + b = uint64(buf[i]) + i++ + x += b << 7 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 7 + + b = uint64(buf[i]) + i++ + x += b << 14 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 14 + + b = uint64(buf[i]) + i++ + x += b << 21 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 21 + + b = uint64(buf[i]) + i++ + x += b << 28 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 28 + + b = uint64(buf[i]) + i++ + x += b << 35 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 35 + + b = uint64(buf[i]) + i++ + x += b << 42 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 42 + + b = uint64(buf[i]) + i++ + x += b << 49 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 49 + + b = uint64(buf[i]) + i++ + x += b << 56 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 56 + + b = uint64(buf[i]) + i++ + x += b << 63 + if b&0x80 == 0 { + goto done + } + // x -= 0x80 << 63 // Always zero. + + return 0, errOverflow + +done: + p.index = i + return x, nil +} + // DecodeFixed64 reads a 64-bit integer from the Buffer. // This is the format for the // fixed64, sfixed64, and double protocol buffer types. @@ -340,6 +434,8 @@ func (p *Buffer) DecodeGroup(pb Message) error { // Buffer and places the decoded result in pb. If the struct // underlying pb does not match the data in the buffer, the results can be // unpredictable. +// +// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal. func (p *Buffer) Unmarshal(pb Message) error { // If the object can unmarshal itself, let it. if u, ok := pb.(Unmarshaler); ok { @@ -378,6 +474,11 @@ func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group wire := int(u & 0x7) if wire == WireEndGroup { if is_group { + if required > 0 { + // Not enough information to determine the exact field. + // (See below.) + return &RequiredNotSetError{"{Unknown}"} + } return nil // input is satisfied } return fmt.Errorf("proto: %s: wiretype end group for non-group", st) @@ -390,16 +491,20 @@ func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group if !ok { // Maybe it's an extension? if prop.extendable { - if e := structPointer_Interface(base, st).(extendableProto); isExtensionField(e, int32(tag)) { - if err = o.skip(st, tag, wire); err == nil { - if ee, eok := e.(extensionsMap); eok { - ext := ee.ExtensionMap()[int32(tag)] // may be missing - ext.enc = append(ext.enc, o.buf[oi:o.index]...) - ee.ExtensionMap()[int32(tag)] = ext - } else if ee, eok := e.(extensionsBytes); eok { - ext := ee.GetExtensions() + if e, eok := structPointer_Interface(base, st).(extensionsBytes); eok { + if isExtensionField(e, int32(tag)) { + if err = o.skip(st, tag, wire); err == nil { + ext := e.GetExtensions() *ext = append(*ext, o.buf[oi:o.index]...) } + continue + } + } else if e, _ := extendable(structPointer_Interface(base, st)); isExtensionField(e, int32(tag)) { + if err = o.skip(st, tag, wire); err == nil { + extmap := e.extensionsWrite() + ext := extmap[int32(tag)] // may be missing + ext.enc = append(ext.enc, o.buf[oi:o.index]...) + extmap[int32(tag)] = ext } continue } diff --git a/vendor/github.com/gogo/protobuf/proto/decode_gogo.go b/vendor/github.com/gogo/protobuf/proto/decode_gogo.go index 603dabec..6fb74de4 100644 --- a/vendor/github.com/gogo/protobuf/proto/decode_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/decode_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -96,7 +98,7 @@ func setPtrCustomType(base structPointer, f field, v interface{}) { if v == nil { return } - structPointer_SetStructPointer(base, f, structPointer(reflect.ValueOf(v).Pointer())) + structPointer_SetStructPointer(base, f, toStructPointer(reflect.ValueOf(v))) } func setCustomType(base structPointer, f field, value interface{}) { @@ -163,7 +165,8 @@ func (o *Buffer) dec_custom_slice_bytes(p *Properties, base structPointer) error } newBas := appendStructPointer(base, p.field, p.ctype) - setCustomType(newBas, 0, custom) + var zero field + setCustomType(newBas, zero, custom) return nil } diff --git a/vendor/github.com/gogo/protobuf/proto/decode_test.go b/vendor/github.com/gogo/protobuf/proto/decode_test.go new file mode 100644 index 00000000..0cfae71e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/decode_test.go @@ -0,0 +1,260 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "testing" + + "github.com/gogo/protobuf/proto" + tpb "github.com/gogo/protobuf/proto/proto3_proto" +) + +var ( + bytesBlackhole []byte + msgBlackhole = new(tpb.Message) +) + +// Disabled this Benchmark because it is using features (b.Run) from go1.7 and gogoprotobuf still have compatibility with go1.5 +// BenchmarkVarint32ArraySmall shows the performance on an array of small int32 fields (1 and +// 2 bytes long). +// func BenchmarkVarint32ArraySmall(b *testing.B) { +// for i := uint(1); i <= 10; i++ { +// dist := genInt32Dist([7]int{0, 3, 1}, 1< maxSeconds { + return fmt.Errorf("duration: %#v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %#v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %#v: seconds and nanos have different signs", d) + } + return nil +} + +// DurationFromProto converts a Duration to a time.Duration. DurationFromProto +// returns an error if the Duration is invalid or is too large to be +// represented in a time.Duration. +func durationFromProto(p *duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a Duration. +func durationProto(d time.Duration) *duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/duration_gogo.go b/vendor/github.com/gogo/protobuf/proto/duration_gogo.go new file mode 100644 index 00000000..18e2a5f7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/duration_gogo.go @@ -0,0 +1,203 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" + "time" +) + +var durationType = reflect.TypeOf((*time.Duration)(nil)).Elem() + +type duration struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *duration) Reset() { *m = duration{} } +func (*duration) ProtoMessage() {} +func (*duration) String() string { return "duration" } + +func init() { + RegisterType((*duration)(nil), "gogo.protobuf.proto.duration") +} + +func (o *Buffer) decDuration() (time.Duration, error) { + b, err := o.DecodeRawBytes(true) + if err != nil { + return 0, err + } + dproto := &duration{} + if err := Unmarshal(b, dproto); err != nil { + return 0, err + } + return durationFromProto(dproto) +} + +func (o *Buffer) dec_duration(p *Properties, base structPointer) error { + d, err := o.decDuration() + if err != nil { + return err + } + word64_Set(structPointer_Word64(base, p.field), o, uint64(d)) + return nil +} + +func (o *Buffer) dec_ref_duration(p *Properties, base structPointer) error { + d, err := o.decDuration() + if err != nil { + return err + } + word64Val_Set(structPointer_Word64Val(base, p.field), o, uint64(d)) + return nil +} + +func (o *Buffer) dec_slice_duration(p *Properties, base structPointer) error { + d, err := o.decDuration() + if err != nil { + return err + } + newBas := appendStructPointer(base, p.field, reflect.SliceOf(reflect.PtrTo(durationType))) + var zero field + setPtrCustomType(newBas, zero, &d) + return nil +} + +func (o *Buffer) dec_slice_ref_duration(p *Properties, base structPointer) error { + d, err := o.decDuration() + if err != nil { + return err + } + structPointer_Word64Slice(base, p.field).Append(uint64(d)) + return nil +} + +func size_duration(p *Properties, base structPointer) (n int) { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return 0 + } + dur := structPointer_Interface(structp, durationType).(*time.Duration) + d := durationProto(*dur) + size := Size(d) + return size + sizeVarint(uint64(size)) + len(p.tagcode) +} + +func (o *Buffer) enc_duration(p *Properties, base structPointer) error { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return ErrNil + } + dur := structPointer_Interface(structp, durationType).(*time.Duration) + d := durationProto(*dur) + data, err := Marshal(d) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return nil +} + +func size_ref_duration(p *Properties, base structPointer) (n int) { + dur := structPointer_InterfaceAt(base, p.field, durationType).(*time.Duration) + d := durationProto(*dur) + size := Size(d) + return size + sizeVarint(uint64(size)) + len(p.tagcode) +} + +func (o *Buffer) enc_ref_duration(p *Properties, base structPointer) error { + dur := structPointer_InterfaceAt(base, p.field, durationType).(*time.Duration) + d := durationProto(*dur) + data, err := Marshal(d) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return nil +} + +func size_slice_duration(p *Properties, base structPointer) (n int) { + pdurs := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(reflect.PtrTo(durationType))).(*[]*time.Duration) + durs := *pdurs + for i := 0; i < len(durs); i++ { + if durs[i] == nil { + return 0 + } + dproto := durationProto(*durs[i]) + size := Size(dproto) + n += len(p.tagcode) + size + sizeVarint(uint64(size)) + } + return n +} + +func (o *Buffer) enc_slice_duration(p *Properties, base structPointer) error { + pdurs := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(reflect.PtrTo(durationType))).(*[]*time.Duration) + durs := *pdurs + for i := 0; i < len(durs); i++ { + if durs[i] == nil { + return errRepeatedHasNil + } + dproto := durationProto(*durs[i]) + data, err := Marshal(dproto) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + } + return nil +} + +func size_slice_ref_duration(p *Properties, base structPointer) (n int) { + pdurs := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(durationType)).(*[]time.Duration) + durs := *pdurs + for i := 0; i < len(durs); i++ { + dproto := durationProto(durs[i]) + size := Size(dproto) + n += len(p.tagcode) + size + sizeVarint(uint64(size)) + } + return n +} + +func (o *Buffer) enc_slice_ref_duration(p *Properties, base structPointer) error { + pdurs := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(durationType)).(*[]time.Duration) + durs := *pdurs + for i := 0; i < len(durs); i++ { + dproto := durationProto(durs[i]) + data, err := Marshal(dproto) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/proto/encode.go b/vendor/github.com/gogo/protobuf/proto/encode.go index eb7e0474..2b30f846 100644 --- a/vendor/github.com/gogo/protobuf/proto/encode.go +++ b/vendor/github.com/gogo/protobuf/proto/encode.go @@ -70,6 +70,10 @@ var ( // ErrNil is the error returned if Marshal is called with nil. ErrNil = errors.New("proto: Marshal called with nil") + + // ErrTooLarge is the error returned if Marshal is called with a + // message that encodes to >2GB. + ErrTooLarge = errors.New("proto: message encodes to over 2 GB") ) // The fundamental encoders that put bytes on the wire. @@ -78,6 +82,10 @@ var ( const maxVarintBytes = 10 // maximum length of a varint +// maxMarshalSize is the largest allowed size of an encoded protobuf, +// since C++ and Java use signed int32s for the size. +const maxMarshalSize = 1<<31 - 1 + // EncodeVarint returns the varint encoding of x. // This is the format for the // int32, int64, uint32, uint64, bool, and enum @@ -226,10 +234,6 @@ func Marshal(pb Message) ([]byte, error) { } p := NewBuffer(nil) err := p.Marshal(pb) - var state errorState - if err != nil && !state.shouldContinue(err, nil) { - return nil, err - } if p.buf == nil && err == nil { // Return a non-nil slice on success. return []byte{}, nil @@ -258,11 +262,8 @@ func (p *Buffer) Marshal(pb Message) error { // Can the object marshal itself? if m, ok := pb.(Marshaler); ok { data, err := m.Marshal() - if err != nil { - return err - } p.buf = append(p.buf, data...) - return nil + return err } t, base, err := getbase(pb) @@ -274,9 +275,12 @@ func (p *Buffer) Marshal(pb Message) error { } if collectStats { - stats.Encode++ + (stats).Encode++ // Parens are to work around a goimports bug. } + if len(p.buf) > maxMarshalSize { + return ErrTooLarge + } return err } @@ -298,7 +302,7 @@ func Size(pb Message) (n int) { } if collectStats { - stats.Size++ + (stats).Size++ // Parens are to work around a goimports bug. } return @@ -1003,7 +1007,6 @@ func size_slice_struct_message(p *Properties, base structPointer) (n int) { if p.isMarshaler { m := structPointer_Interface(structp, p.stype).(Marshaler) data, _ := m.Marshal() - n += len(p.tagcode) n += sizeRawBytes(data) continue } @@ -1062,10 +1065,32 @@ func size_slice_struct_group(p *Properties, base structPointer) (n int) { // Encode an extension map. func (o *Buffer) enc_map(p *Properties, base structPointer) error { - v := *structPointer_ExtMap(base, p.field) - if err := encodeExtensionMap(v); err != nil { + exts := structPointer_ExtMap(base, p.field) + if err := encodeExtensionsMap(*exts); err != nil { return err } + + return o.enc_map_body(*exts) +} + +func (o *Buffer) enc_exts(p *Properties, base structPointer) error { + exts := structPointer_Extensions(base, p.field) + + v, mu := exts.extensionsRead() + if v == nil { + return nil + } + + mu.Lock() + defer mu.Unlock() + if err := encodeExtensionsMap(v); err != nil { + return err + } + + return o.enc_map_body(v) +} + +func (o *Buffer) enc_map_body(v map[int32]Extension) error { // Fast-path for common cases: zero or one extensions. if len(v) <= 1 { for _, e := range v { @@ -1088,8 +1113,13 @@ func (o *Buffer) enc_map(p *Properties, base structPointer) error { } func size_map(p *Properties, base structPointer) int { - v := *structPointer_ExtMap(base, p.field) - return sizeExtensionMap(v) + v := structPointer_ExtMap(base, p.field) + return extensionsMapSize(*v) +} + +func size_exts(p *Properties, base structPointer) int { + v := structPointer_Extensions(base, p.field) + return extensionsSize(v) } // Encode a map field. @@ -1118,7 +1148,7 @@ func (o *Buffer) enc_new_map(p *Properties, base structPointer) error { if err := p.mkeyprop.enc(o, p.mkeyprop, keybase); err != nil { return err } - if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil { + if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil && err != ErrNil { return err } return nil @@ -1128,11 +1158,6 @@ func (o *Buffer) enc_new_map(p *Properties, base structPointer) error { for _, key := range v.MapKeys() { val := v.MapIndex(key) - // The only illegal map entry values are nil message pointers. - if val.Kind() == reflect.Ptr && val.IsNil() { - return errors.New("proto: map has nil element") - } - keycopy.Set(key) valcopy.Set(val) @@ -1220,6 +1245,9 @@ func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error { return err } } + if len(o.buf) > maxMarshalSize { + return ErrTooLarge + } } } @@ -1236,6 +1264,9 @@ func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error { // Add unrecognized fields at the end. if prop.unrecField.IsValid() { v := *structPointer_Bytes(base, prop.unrecField) + if len(o.buf)+len(v) > maxMarshalSize { + return ErrTooLarge + } if len(v) > 0 { o.buf = append(o.buf, v...) } diff --git a/vendor/github.com/gogo/protobuf/proto/encode_gogo.go b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go index f77cfb1e..32111b7f 100644 --- a/vendor/github.com/gogo/protobuf/proto/encode_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -196,12 +196,10 @@ func size_ref_struct_message(p *Properties, base structPointer) int { // Encode a slice of references to message struct pointers ([]struct). func (o *Buffer) enc_slice_ref_struct_message(p *Properties, base structPointer) error { var state errorState - ss := structPointer_GetStructPointer(base, p.field) - ss1 := structPointer_GetRefStructPointer(ss, field(0)) - size := p.stype.Size() - l := structPointer_Len(base, p.field) + ss := structPointer_StructRefSlice(base, p.field, p.stype.Size()) + l := ss.Len() for i := 0; i < l; i++ { - structp := structPointer_Add(ss1, field(uintptr(i)*size)) + structp := ss.Index(i) if structPointer_IsNil(structp) { return errRepeatedHasNil } @@ -233,13 +231,11 @@ func (o *Buffer) enc_slice_ref_struct_message(p *Properties, base structPointer) //TODO this is only copied, please fix this func size_slice_ref_struct_message(p *Properties, base structPointer) (n int) { - ss := structPointer_GetStructPointer(base, p.field) - ss1 := structPointer_GetRefStructPointer(ss, field(0)) - size := p.stype.Size() - l := structPointer_Len(base, p.field) + ss := structPointer_StructRefSlice(base, p.field, p.stype.Size()) + l := ss.Len() n += l * len(p.tagcode) for i := 0; i < l; i++ { - structp := structPointer_Add(ss1, field(uintptr(i)*size)) + structp := ss.Index(i) if structPointer_IsNil(structp) { return // return the size up to this point } diff --git a/vendor/github.com/gogo/protobuf/proto/encode_test.go b/vendor/github.com/gogo/protobuf/proto/encode_test.go new file mode 100644 index 00000000..bc7e18ab --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/encode_test.go @@ -0,0 +1,82 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "testing" + + "github.com/gogo/protobuf/proto" + tpb "github.com/gogo/protobuf/proto/proto3_proto" +) + +var ( + blackhole []byte +) + +// Disabled this Benchmark because it is using features (b.Run) from go1.7 and gogoprotobuf still have compatibility with go1.5 +// BenchmarkAny creates increasingly large arbitrary Any messages. The type is always the +// same. +// func BenchmarkAny(b *testing.B) { +// data := make([]byte, 1<<20) +// quantum := 1 << 10 +// for i := uint(0); i <= 10; i++ { +// b.Run(strconv.Itoa(quantum< 0; n-- { + go func() { + _, err := proto.Marshal(m) + errChan <- err + }() + } + for i := 0; i < 3; i++ { + err := <-errChan + if err != nil { + t.Fatal(err) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go index 2e35ae2d..7580bb45 100644 --- a/vendor/github.com/gogo/protobuf/proto/lib.go +++ b/vendor/github.com/gogo/protobuf/proto/lib.go @@ -308,7 +308,7 @@ func GetStats() Stats { return stats } // temporary Buffer and are fine for most applications. type Buffer struct { buf []byte // encode/decode byte stream - index int // write point + index int // read point // pools of basic types to amortize allocation. bools []bool @@ -889,6 +889,10 @@ func isProto3Zero(v reflect.Value) bool { return false } +// ProtoPackageIsVersion2 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const GoGoProtoPackageIsVersion2 = true + // ProtoPackageIsVersion1 is referenced from generated protocol buffer files // to assert that that code is compatible with this version of the proto package. const GoGoProtoPackageIsVersion1 = true diff --git a/vendor/github.com/gogo/protobuf/proto/lib_gogo.go b/vendor/github.com/gogo/protobuf/proto/lib_gogo.go index a6c2c06b..4b4f7c90 100644 --- a/vendor/github.com/gogo/protobuf/proto/lib_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/lib_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/proto/map_test.go b/vendor/github.com/gogo/protobuf/proto/map_test.go new file mode 100644 index 00000000..18b946d0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/map_test.go @@ -0,0 +1,46 @@ +package proto_test + +import ( + "fmt" + "testing" + + "github.com/gogo/protobuf/proto" + ppb "github.com/gogo/protobuf/proto/proto3_proto" +) + +func marshalled() []byte { + m := &ppb.IntMaps{} + for i := 0; i < 1000; i++ { + m.Maps = append(m.Maps, &ppb.IntMap{ + Rtt: map[int32]int32{1: 2}, + }) + } + b, err := proto.Marshal(m) + if err != nil { + panic(fmt.Sprintf("Can't marshal %+v: %v", m, err)) + } + return b +} + +func BenchmarkConcurrentMapUnmarshal(b *testing.B) { + in := marshalled() + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + var out ppb.IntMaps + if err := proto.Unmarshal(in, &out); err != nil { + b.Errorf("Can't unmarshal ppb.IntMaps: %v", err) + } + } + }) +} + +func BenchmarkSequentialMapUnmarshal(b *testing.B) { + in := marshalled() + b.ResetTimer() + for i := 0; i < b.N; i++ { + var out ppb.IntMaps + if err := proto.Unmarshal(in, &out); err != nil { + b.Errorf("Can't unmarshal ppb.IntMaps: %v", err) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/proto/message_set.go b/vendor/github.com/gogo/protobuf/proto/message_set.go index e25e01e6..fd982dec 100644 --- a/vendor/github.com/gogo/protobuf/proto/message_set.go +++ b/vendor/github.com/gogo/protobuf/proto/message_set.go @@ -149,9 +149,21 @@ func skipVarint(buf []byte) []byte { // MarshalMessageSet encodes the extension map represented by m in the message set wire format. // It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option. -func MarshalMessageSet(m map[int32]Extension) ([]byte, error) { - if err := encodeExtensionMap(m); err != nil { - return nil, err +func MarshalMessageSet(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + if err := encodeExtensions(exts); err != nil { + return nil, err + } + m, _ = exts.extensionsRead() + case map[int32]Extension: + if err := encodeExtensionsMap(exts); err != nil { + return nil, err + } + m = exts + default: + return nil, errors.New("proto: not an extension map") } // Sort extension IDs to provide a deterministic encoding. @@ -178,7 +190,17 @@ func MarshalMessageSet(m map[int32]Extension) ([]byte, error) { // UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. // It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option. -func UnmarshalMessageSet(buf []byte, m map[int32]Extension) error { +func UnmarshalMessageSet(buf []byte, exts interface{}) error { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m = exts.extensionsWrite() + case map[int32]Extension: + m = exts + default: + return errors.New("proto: not an extension map") + } + ms := new(messageSet) if err := Unmarshal(buf, ms); err != nil { return err @@ -209,7 +231,16 @@ func UnmarshalMessageSet(buf []byte, m map[int32]Extension) error { // MarshalMessageSetJSON encodes the extension map represented by m in JSON format. // It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option. -func MarshalMessageSetJSON(m map[int32]Extension) ([]byte, error) { +func MarshalMessageSetJSON(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m, _ = exts.extensionsRead() + case map[int32]Extension: + m = exts + default: + return nil, errors.New("proto: not an extension map") + } var b bytes.Buffer b.WriteByte('{') @@ -252,7 +283,7 @@ func MarshalMessageSetJSON(m map[int32]Extension) ([]byte, error) { // UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format. // It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option. -func UnmarshalMessageSetJSON(buf []byte, m map[int32]Extension) error { +func UnmarshalMessageSetJSON(buf []byte, exts interface{}) error { // Common-case fast path. if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) { return nil diff --git a/vendor/github.com/gogo/protobuf/proto/message_set_test.go b/vendor/github.com/gogo/protobuf/proto/message_set_test.go index ab8ac2f0..353a3ea7 100644 --- a/vendor/github.com/gogo/protobuf/proto/message_set_test.go +++ b/vendor/github.com/gogo/protobuf/proto/message_set_test.go @@ -50,13 +50,13 @@ func TestUnmarshalMessageSetWithDuplicate(t *testing.T) { } t.Logf("Marshaled bytes: %q", b) - m := make(map[int32]Extension) - if err := UnmarshalMessageSet(b, m); err != nil { + var extensions XXX_InternalExtensions + if err := UnmarshalMessageSet(b, &extensions); err != nil { t.Fatalf("UnmarshalMessageSet: %v", err) } - ext, ok := m[12345] + ext, ok := extensions.p.extensionMap[12345] if !ok { - t.Fatalf("Didn't retrieve extension 12345; map is %v", m) + t.Fatalf("Didn't retrieve extension 12345; map is %v", extensions.p.extensionMap) } // Skip wire type/field number and length varints. got := skipVarint(skipVarint(ext.enc)) diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go b/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go index 749919d2..fb512e2e 100644 --- a/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go +++ b/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go @@ -29,7 +29,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// +build appengine +// +build appengine js // This file contains an implementation of proto field accesses using package reflect. // It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can @@ -139,6 +139,11 @@ func structPointer_StringSlice(p structPointer, f field) *[]string { return structPointer_ifield(p, f).(*[]string) } +// Extensions returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return structPointer_ifield(p, f).(*XXX_InternalExtensions) +} + // ExtMap returns the address of an extension map field in the struct. func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { return structPointer_ifield(p, f).(*map[int32]Extension) diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go b/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go new file mode 100644 index 00000000..1763a5f2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go @@ -0,0 +1,85 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// +build appengine js + +package proto + +import ( + "reflect" +) + +func structPointer_FieldPointer(p structPointer, f field) structPointer { + panic("not implemented") +} + +func appendStructPointer(base structPointer, f field, typ reflect.Type) structPointer { + panic("not implemented") +} + +func structPointer_InterfaceAt(p structPointer, f field, t reflect.Type) interface{} { + panic("not implemented") +} + +func structPointer_InterfaceRef(p structPointer, f field, t reflect.Type) interface{} { + panic("not implemented") +} + +func structPointer_GetRefStructPointer(p structPointer, f field) structPointer { + panic("not implemented") +} + +func structPointer_Add(p structPointer, size field) structPointer { + panic("not implemented") +} + +func structPointer_Len(p structPointer, f field) int { + panic("not implemented") +} + +func structPointer_GetSliceHeader(p structPointer, f field) *reflect.SliceHeader { + panic("not implemented") +} + +func structPointer_Copy(oldptr structPointer, newptr structPointer, size int) { + panic("not implemented") +} + +func structPointer_StructRefSlice(p structPointer, f field, size uintptr) *structRefSlice { + panic("not implemented") +} + +type structRefSlice struct{} + +func (v *structRefSlice) Len() int { + panic("not implemented") +} + +func (v *structRefSlice) Index(i int) structPointer { + panic("not implemented") +} diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go index e9be0fe9..6b5567d4 100644 --- a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go +++ b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go @@ -29,7 +29,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// +build !appengine +// +build !appengine,!js // This file contains the implementation of the proto field accesses using package unsafe. @@ -126,6 +126,10 @@ func structPointer_StringSlice(p structPointer, f field) *[]string { } // ExtMap returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return (*XXX_InternalExtensions)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { return (*map[int32]Extension)(unsafe.Pointer(uintptr(p) + uintptr(f))) } diff --git a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go index 6bc85fa9..f156a29f 100644 --- a/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -24,7 +26,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// +build !appengine +// +build !appengine,!js // This file contains the implementation of the proto field accesses using package unsafe. @@ -70,16 +72,13 @@ func structPointer_Copy(oldptr structPointer, newptr structPointer, size int) { func appendStructPointer(base structPointer, f field, typ reflect.Type) structPointer { size := typ.Elem().Size() + oldHeader := structPointer_GetSliceHeader(base, f) + oldSlice := reflect.NewAt(typ, unsafe.Pointer(oldHeader)).Elem() newLen := oldHeader.Len + 1 - slice := reflect.MakeSlice(typ, newLen, newLen) - bas := toStructPointer(slice) - for i := 0; i < oldHeader.Len; i++ { - newElemptr := uintptr(bas) + uintptr(i)*size - oldElemptr := oldHeader.Data + uintptr(i)*size - copyUintPtr(oldElemptr, newElemptr, int(size)) - } - + newSlice := reflect.MakeSlice(typ, newLen, newLen) + reflect.Copy(newSlice, oldSlice) + bas := toStructPointer(newSlice) oldHeader.Data = uintptr(bas) oldHeader.Len = newLen oldHeader.Cap = newLen @@ -106,3 +105,24 @@ func structPointer_Add(p structPointer, size field) structPointer { func structPointer_Len(p structPointer, f field) int { return len(*(*[]interface{})(unsafe.Pointer(structPointer_GetRefStructPointer(p, f)))) } + +func structPointer_StructRefSlice(p structPointer, f field, size uintptr) *structRefSlice { + return &structRefSlice{p: p, f: f, size: size} +} + +// A structRefSlice represents a slice of structs (themselves submessages or groups). +type structRefSlice struct { + p structPointer + f field + size uintptr +} + +func (v *structRefSlice) Len() int { + return structPointer_Len(v.p, v.f) +} + +func (v *structRefSlice) Index(i int) structPointer { + ss := structPointer_GetStructPointer(v.p, v.f) + ss1 := structPointer_GetRefStructPointer(ss, 0) + return structPointer_Add(ss1, field(uintptr(i)*v.size)) +} diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go index 5e6a0b3b..44b33205 100644 --- a/vendor/github.com/gogo/protobuf/proto/properties.go +++ b/vendor/github.com/gogo/protobuf/proto/properties.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -190,10 +190,11 @@ type Properties struct { proto3 bool // whether this is known to be a proto3 field; set for []byte only oneof bool // whether this is a oneof field - Default string // default value - HasDefault bool // whether an explicit default was provided - CustomType string - def_uint64 uint64 + Default string // default value + HasDefault bool // whether an explicit default was provided + CustomType string + StdTime bool + StdDuration bool enc encoder valEnc valueEncoder // set for bool and numeric types only @@ -340,6 +341,10 @@ func (p *Properties) Parse(s string) { p.OrigName = strings.Split(f, "=")[1] case strings.HasPrefix(f, "customtype="): p.CustomType = strings.Split(f, "=")[1] + case f == "stdtime": + p.StdTime = true + case f == "stdduration": + p.StdDuration = true } } } @@ -355,11 +360,22 @@ func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lock p.enc = nil p.dec = nil p.size = nil - if len(p.CustomType) > 0 { + isMap := typ.Kind() == reflect.Map + if len(p.CustomType) > 0 && !isMap { p.setCustomEncAndDec(typ) p.setTag(lockGetProp) return } + if p.StdTime && !isMap { + p.setTimeEncAndDec(typ) + p.setTag(lockGetProp) + return + } + if p.StdDuration && !isMap { + p.setDurationEncAndDec(typ) + p.setTag(lockGetProp) + return + } switch t1 := typ; t1.Kind() { default: fmt.Fprintf(os.Stderr, "proto: no coders for %v\n", t1) @@ -542,17 +558,13 @@ func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lock p.dec = (*Buffer).dec_slice_int64 p.packedDec = (*Buffer).dec_slice_packed_int64 case reflect.Uint8: - p.enc = (*Buffer).enc_slice_byte p.dec = (*Buffer).dec_slice_byte - p.size = size_slice_byte - // This is a []byte, which is either a bytes field, - // or the value of a map field. In the latter case, - // we always encode an empty []byte, so we should not - // use the proto3 enc/size funcs. - // f == nil iff this is the key/value of a map field. - if p.proto3 && f != nil { + if p.proto3 { p.enc = (*Buffer).enc_proto3_slice_byte p.size = size_proto3_slice_byte + } else { + p.enc = (*Buffer).enc_slice_byte + p.size = size_slice_byte } case reflect.Float32, reflect.Float64: switch t2.Bits() { @@ -634,6 +646,10 @@ func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lock // so we need encoders for the pointer to this type. vtype = reflect.PtrTo(vtype) } + + p.mvalprop.CustomType = p.CustomType + p.mvalprop.StdDuration = p.StdDuration + p.mvalprop.StdTime = p.StdTime p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) } p.setTag(lockGetProp) @@ -744,7 +760,9 @@ func getPropertiesLocked(t reflect.Type) *StructProperties { propertiesMap[t] = prop // build properties - prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) + prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) || + reflect.PtrTo(t).Implements(extendableProtoV1Type) || + reflect.PtrTo(t).Implements(extendableBytesType) prop.unrecField = invalidField prop.Prop = make([]*Properties, t.NumField()) prop.order = make([]int, t.NumField()) @@ -756,7 +774,11 @@ func getPropertiesLocked(t reflect.Type) *StructProperties { name := f.Name p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) - if f.Name == "XXX_extensions" { // special case + if f.Name == "XXX_InternalExtensions" { // special case + p.enc = (*Buffer).enc_exts + p.dec = nil // not needed + p.size = size_exts + } else if f.Name == "XXX_extensions" { // special case if len(f.Tag.Get("protobuf")) > 0 { p.enc = (*Buffer).enc_ext_slice_byte p.dec = nil // not needed @@ -766,13 +788,14 @@ func getPropertiesLocked(t reflect.Type) *StructProperties { p.dec = nil // not needed p.size = size_map } - } - if f.Name == "XXX_unrecognized" { // special case + } else if f.Name == "XXX_unrecognized" { // special case prop.unrecField = toField(&f) } - oneof := f.Tag.Get("protobuf_oneof") != "" // special case - if oneof { + oneof := f.Tag.Get("protobuf_oneof") // special case + if oneof != "" { isOneofMessage = true + // Oneof fields don't use the traditional protobuf tag. + p.OrigName = oneof } prop.Prop[i] = p prop.order[i] = i @@ -783,7 +806,7 @@ func getPropertiesLocked(t reflect.Type) *StructProperties { } print("\n") } - if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && !oneof { + if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && oneof == "" { fmt.Fprintln(os.Stderr, "proto: no encoder for", f.Name, f.Type.String(), "[GetProperties]") } } @@ -917,7 +940,29 @@ func RegisterType(x Message, name string) { } // MessageName returns the fully-qualified proto name for the given message type. -func MessageName(x Message) string { return revProtoTypes[reflect.TypeOf(x)] } +func MessageName(x Message) string { + type xname interface { + XXX_MessageName() string + } + if m, ok := x.(xname); ok { + return m.XXX_MessageName() + } + return revProtoTypes[reflect.TypeOf(x)] +} // MessageType returns the message type (pointer to struct) for a named message. func MessageType(name string) reflect.Type { return protoTypes[name] } + +// A registry of all linked proto files. +var ( + protoFiles = make(map[string][]byte) // file name => fileDescriptor +) + +// RegisterFile is called from generated code and maps from the +// full file name of a .proto file to its compressed FileDescriptorProto. +func RegisterFile(filename string, fileDescriptor []byte) { + protoFiles[filename] = fileDescriptor +} + +// FileDescriptor returns the compressed FileDescriptorProto for a .proto file. +func FileDescriptor(filename string) []byte { return protoFiles[filename] } diff --git a/vendor/github.com/gogo/protobuf/proto/properties_gogo.go b/vendor/github.com/gogo/protobuf/proto/properties_gogo.go index 8daf9f77..b6b7176c 100644 --- a/vendor/github.com/gogo/protobuf/proto/properties_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/properties_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -49,6 +51,51 @@ func (p *Properties) setCustomEncAndDec(typ reflect.Type) { } } +func (p *Properties) setDurationEncAndDec(typ reflect.Type) { + if p.Repeated { + if typ.Elem().Kind() == reflect.Ptr { + p.enc = (*Buffer).enc_slice_duration + p.dec = (*Buffer).dec_slice_duration + p.size = size_slice_duration + } else { + p.enc = (*Buffer).enc_slice_ref_duration + p.dec = (*Buffer).dec_slice_ref_duration + p.size = size_slice_ref_duration + } + } else if typ.Kind() == reflect.Ptr { + p.enc = (*Buffer).enc_duration + p.dec = (*Buffer).dec_duration + p.size = size_duration + } else { + p.enc = (*Buffer).enc_ref_duration + p.dec = (*Buffer).dec_ref_duration + p.size = size_ref_duration + } +} + +func (p *Properties) setTimeEncAndDec(typ reflect.Type) { + if p.Repeated { + if typ.Elem().Kind() == reflect.Ptr { + p.enc = (*Buffer).enc_slice_time + p.dec = (*Buffer).dec_slice_time + p.size = size_slice_time + } else { + p.enc = (*Buffer).enc_slice_ref_time + p.dec = (*Buffer).dec_slice_ref_time + p.size = size_slice_ref_time + } + } else if typ.Kind() == reflect.Ptr { + p.enc = (*Buffer).enc_time + p.dec = (*Buffer).dec_time + p.size = size_time + } else { + p.enc = (*Buffer).enc_ref_time + p.dec = (*Buffer).dec_ref_time + p.size = size_ref_time + } + +} + func (p *Properties) setSliceOfNonPointerStructs(typ reflect.Type) { t2 := typ.Elem() p.sstype = typ diff --git a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go index 28303e17..6630a0ab 100644 --- a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go @@ -12,12 +12,15 @@ It has these top-level messages: Message Nested MessageWithMap + IntMap + IntMaps */ package proto3_proto import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import google_protobuf "github.com/gogo/protobuf/types" import testdata "github.com/gogo/protobuf/proto/testdata" // Reference imports to suppress errors if they are not otherwise used. @@ -27,7 +30,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Message_Humour int32 @@ -64,11 +69,17 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` + ShortKey []int32 `protobuf:"varint,19,rep,packed,name=short_key,json=shortKey" json:"short_key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` + RFunny []Message_Humour `protobuf:"varint,16,rep,packed,name=r_funny,json=rFunny,enum=proto3_proto.Message_Humour" json:"r_funny,omitempty"` Terrain map[string]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *testdata.SubDefaults `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` Proto2Value map[string]*testdata.SubDefaults `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Anything *google_protobuf.Any `protobuf:"bytes,14,opt,name=anything" json:"anything,omitempty"` + ManyThings []*google_protobuf.Any `protobuf:"bytes,15,rep,name=many_things,json=manyThings" json:"many_things,omitempty"` + Submessage *Message `protobuf:"bytes,17,opt,name=submessage" json:"submessage,omitempty"` + Children []*Message `protobuf:"bytes,18,rep,name=children" json:"children,omitempty"` } func (m *Message) Reset() { *m = Message{} } @@ -76,6 +87,69 @@ func (m *Message) String() string { return proto.CompactTextString(m) func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{0} } +func (m *Message) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Message) GetHilarity() Message_Humour { + if m != nil { + return m.Hilarity + } + return Message_UNKNOWN +} + +func (m *Message) GetHeightInCm() uint32 { + if m != nil { + return m.HeightInCm + } + return 0 +} + +func (m *Message) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *Message) GetResultCount() int64 { + if m != nil { + return m.ResultCount + } + return 0 +} + +func (m *Message) GetTrueScotsman() bool { + if m != nil { + return m.TrueScotsman + } + return false +} + +func (m *Message) GetScore() float32 { + if m != nil { + return m.Score + } + return 0 +} + +func (m *Message) GetKey() []uint64 { + if m != nil { + return m.Key + } + return nil +} + +func (m *Message) GetShortKey() []int32 { + if m != nil { + return m.ShortKey + } + return nil +} + func (m *Message) GetNested() *Nested { if m != nil { return m.Nested @@ -83,6 +157,13 @@ func (m *Message) GetNested() *Nested { return nil } +func (m *Message) GetRFunny() []Message_Humour { + if m != nil { + return m.RFunny + } + return nil +} + func (m *Message) GetTerrain() map[string]*Nested { if m != nil { return m.Terrain @@ -104,8 +185,37 @@ func (m *Message) GetProto2Value() map[string]*testdata.SubDefaults { return nil } +func (m *Message) GetAnything() *google_protobuf.Any { + if m != nil { + return m.Anything + } + return nil +} + +func (m *Message) GetManyThings() []*google_protobuf.Any { + if m != nil { + return m.ManyThings + } + return nil +} + +func (m *Message) GetSubmessage() *Message { + if m != nil { + return m.Submessage + } + return nil +} + +func (m *Message) GetChildren() []*Message { + if m != nil { + return m.Children + } + return nil +} + type Nested struct { Bunny string `protobuf:"bytes,1,opt,name=bunny,proto3" json:"bunny,omitempty"` + Cute bool `protobuf:"varint,2,opt,name=cute,proto3" json:"cute,omitempty"` } func (m *Nested) Reset() { *m = Nested{} } @@ -113,6 +223,20 @@ func (m *Nested) String() string { return proto.CompactTextString(m) func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{1} } +func (m *Nested) GetBunny() string { + if m != nil { + return m.Bunny + } + return "" +} + +func (m *Nested) GetCute() bool { + if m != nil { + return m.Cute + } + return false +} + type MessageWithMap struct { ByteMapping map[bool][]byte `protobuf:"bytes,1,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -129,48 +253,95 @@ func (m *MessageWithMap) GetByteMapping() map[bool][]byte { return nil } +type IntMap struct { + Rtt map[int32]int32 `protobuf:"bytes,1,rep,name=rtt" json:"rtt,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (m *IntMap) Reset() { *m = IntMap{} } +func (m *IntMap) String() string { return proto.CompactTextString(m) } +func (*IntMap) ProtoMessage() {} +func (*IntMap) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{3} } + +func (m *IntMap) GetRtt() map[int32]int32 { + if m != nil { + return m.Rtt + } + return nil +} + +type IntMaps struct { + Maps []*IntMap `protobuf:"bytes,1,rep,name=maps" json:"maps,omitempty"` +} + +func (m *IntMaps) Reset() { *m = IntMaps{} } +func (m *IntMaps) String() string { return proto.CompactTextString(m) } +func (*IntMaps) ProtoMessage() {} +func (*IntMaps) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{4} } + +func (m *IntMaps) GetMaps() []*IntMap { + if m != nil { + return m.Maps + } + return nil +} + func init() { proto.RegisterType((*Message)(nil), "proto3_proto.Message") proto.RegisterType((*Nested)(nil), "proto3_proto.Nested") proto.RegisterType((*MessageWithMap)(nil), "proto3_proto.MessageWithMap") + proto.RegisterType((*IntMap)(nil), "proto3_proto.IntMap") + proto.RegisterType((*IntMaps)(nil), "proto3_proto.IntMaps") proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value) } +func init() { proto.RegisterFile("proto3_proto/proto3.proto", fileDescriptorProto3) } + var fileDescriptorProto3 = []byte{ - // 550 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x53, 0x6d, 0x8f, 0xd2, 0x40, - 0x10, 0x96, 0x77, 0x98, 0x96, 0xb3, 0xd9, 0x60, 0xb2, 0x12, 0x63, 0x10, 0x13, 0x73, 0xf1, 0xa5, - 0x24, 0xf8, 0xe5, 0x62, 0x8c, 0xe6, 0xc0, 0x33, 0x92, 0x03, 0x24, 0xcb, 0xe1, 0xc5, 0x4f, 0xcd, - 0x16, 0x96, 0xd2, 0x48, 0xb7, 0xa4, 0xdd, 0x9a, 0xf0, 0x77, 0xfc, 0x55, 0xfe, 0x1c, 0xb7, 0xbb, - 0xe5, 0xae, 0x77, 0xc1, 0xfb, 0xd4, 0xd9, 0x67, 0x9e, 0x99, 0x67, 0xf6, 0x99, 0x2d, 0x3c, 0xdd, - 0x45, 0xa1, 0x08, 0xdf, 0x3b, 0xea, 0xd3, 0xd3, 0x07, 0x5b, 0x7d, 0x90, 0x99, 0x4f, 0xb5, 0xfb, - 0x9e, 0x2f, 0x36, 0x89, 0x6b, 0x2f, 0xc3, 0xa0, 0xe7, 0x85, 0x5e, 0xc6, 0x75, 0x93, 0xb5, 0x0e, - 0x7a, 0x82, 0xc5, 0x62, 0x45, 0x05, 0x55, 0x81, 0xee, 0xd0, 0xfd, 0x5b, 0x81, 0xda, 0x84, 0xc5, - 0x31, 0xf5, 0x18, 0x42, 0x50, 0xe6, 0x34, 0x60, 0xb8, 0xd0, 0x29, 0x9c, 0x36, 0x88, 0x8a, 0xd1, - 0x19, 0xd4, 0x37, 0xfe, 0x96, 0x46, 0xbe, 0xd8, 0xe3, 0xa2, 0xc4, 0x4f, 0xfa, 0xcf, 0xec, 0xbc, - 0xa8, 0x9d, 0x15, 0xdb, 0xdf, 0x92, 0x20, 0x4c, 0x22, 0x72, 0xc3, 0x46, 0x1d, 0x30, 0x37, 0xcc, - 0xf7, 0x36, 0xc2, 0xf1, 0xb9, 0xb3, 0x0c, 0x70, 0x49, 0x56, 0x37, 0x09, 0x68, 0x6c, 0xc4, 0x87, - 0x41, 0xaa, 0x97, 0x8e, 0x83, 0xcb, 0x32, 0x63, 0x12, 0x15, 0xa3, 0x17, 0x60, 0x46, 0x2c, 0x4e, - 0xb6, 0xc2, 0x59, 0x86, 0x09, 0x17, 0xb8, 0x26, 0x73, 0x25, 0x62, 0x68, 0x6c, 0x98, 0x42, 0xe8, - 0x25, 0x34, 0x45, 0x94, 0x30, 0x27, 0x5e, 0x86, 0x22, 0x0e, 0x28, 0xc7, 0x75, 0xc9, 0xa9, 0x13, - 0x33, 0x05, 0xe7, 0x19, 0x86, 0x5a, 0x50, 0x91, 0xf9, 0x88, 0xe1, 0x86, 0x4c, 0x16, 0x89, 0x3e, - 0x20, 0x0b, 0x4a, 0xbf, 0xd8, 0x1e, 0x57, 0x3a, 0xa5, 0xd3, 0x32, 0x49, 0x43, 0xf4, 0x16, 0xaa, - 0x5c, 0xba, 0xc1, 0x56, 0xb8, 0x2a, 0x89, 0x46, 0xbf, 0x75, 0xf7, 0x76, 0x53, 0x95, 0x23, 0x19, - 0x07, 0x7d, 0x84, 0x9a, 0x60, 0x51, 0x44, 0x7d, 0x8e, 0x41, 0xf6, 0x30, 0xfa, 0xdd, 0xe3, 0x66, - 0x5c, 0x69, 0xd2, 0x05, 0x17, 0xd1, 0x9e, 0x1c, 0x4a, 0xa4, 0x97, 0x7a, 0x5f, 0x7d, 0x67, 0xed, - 0xb3, 0xed, 0x0a, 0x1b, 0x4a, 0xf1, 0x89, 0x7d, 0xd8, 0x8b, 0x3d, 0x4f, 0xdc, 0x2f, 0x6c, 0x4d, - 0xe5, 0x4d, 0x63, 0x62, 0x68, 0xea, 0xd7, 0x94, 0x89, 0x46, 0x37, 0x95, 0xbf, 0xe9, 0x36, 0x61, - 0xb8, 0xa9, 0xc4, 0x5f, 0x1d, 0x17, 0x9f, 0x29, 0xe6, 0x8f, 0x94, 0xa8, 0x07, 0xc8, 0x5a, 0x29, - 0xa4, 0x3d, 0x03, 0x33, 0x3f, 0xdd, 0xc1, 0x12, 0xbd, 0x73, 0x65, 0xc9, 0x6b, 0xa8, 0x68, 0x95, - 0xe2, 0x03, 0x8e, 0x68, 0xca, 0x87, 0xe2, 0x59, 0xa1, 0xbd, 0x00, 0xeb, 0xbe, 0xe4, 0x91, 0xae, - 0x6f, 0xee, 0x76, 0xfd, 0xcf, 0xad, 0x6f, 0xdb, 0x76, 0x3f, 0x43, 0x55, 0xbf, 0x29, 0x64, 0x40, - 0x6d, 0x31, 0xbd, 0x9c, 0x7e, 0xbf, 0x9e, 0x5a, 0x8f, 0x50, 0x1d, 0xca, 0xb3, 0xc5, 0x74, 0x6e, - 0x15, 0x50, 0x13, 0x1a, 0xf3, 0xf1, 0xf9, 0x6c, 0x7e, 0x35, 0x1a, 0x5e, 0x5a, 0x45, 0xf4, 0x18, - 0x8c, 0xc1, 0x68, 0x3c, 0x76, 0x06, 0xe7, 0xa3, 0xf1, 0xc5, 0x4f, 0xab, 0xd4, 0x7d, 0x0e, 0x55, - 0x3d, 0x6c, 0xfa, 0x18, 0xdc, 0x84, 0xf3, 0xc3, 0x3c, 0xfa, 0xd0, 0xfd, 0x53, 0x80, 0x93, 0xcc, - 0xb3, 0x6b, 0xf9, 0xe3, 0x4c, 0xe8, 0x0e, 0x49, 0x73, 0xdc, 0xbd, 0x60, 0x4e, 0x40, 0x77, 0x3b, - 0x9f, 0x7b, 0x92, 0x9f, 0xfa, 0xfc, 0xee, 0xa8, 0xcf, 0x59, 0x8d, 0x3d, 0x90, 0x05, 0x13, 0xcd, - 0xcf, 0xec, 0x76, 0x6f, 0x91, 0xf6, 0x27, 0xb0, 0xee, 0x13, 0xf2, 0xe6, 0xd4, 0xb5, 0x39, 0xad, - 0xbc, 0x39, 0x66, 0xce, 0x05, 0xb7, 0xaa, 0xa5, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x9d, 0xf0, - 0x9a, 0xf4, 0x05, 0x04, 0x00, 0x00, + // 733 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x53, 0x6d, 0x6f, 0xf3, 0x34, + 0x14, 0x25, 0x4d, 0x5f, 0xd2, 0x9b, 0x74, 0x0b, 0x5e, 0x91, 0xbc, 0x02, 0x52, 0x28, 0x12, 0x8a, + 0x78, 0x49, 0xa1, 0xd3, 0xd0, 0x84, 0x10, 0x68, 0x1b, 0x9b, 0xa8, 0xd6, 0x95, 0xca, 0xdd, 0x98, + 0xf8, 0x14, 0xa5, 0xad, 0xdb, 0x46, 0x34, 0x4e, 0x49, 0x1c, 0xa4, 0xfc, 0x1d, 0xfe, 0x28, 0x8f, + 0x6c, 0xa7, 0x5d, 0x36, 0x65, 0xcf, 0xf3, 0x29, 0xf6, 0xf1, 0xb9, 0xf7, 0x9c, 0x1c, 0x5f, 0xc3, + 0xe9, 0x2e, 0x89, 0x79, 0x7c, 0xe6, 0xcb, 0xcf, 0x40, 0x6d, 0x3c, 0xf9, 0x41, 0x56, 0xf9, 0xa8, + 0x77, 0xba, 0x8e, 0xe3, 0xf5, 0x96, 0x2a, 0xca, 0x3c, 0x5b, 0x0d, 0x02, 0x96, 0x2b, 0x62, 0xef, + 0x84, 0xd3, 0x94, 0x2f, 0x03, 0x1e, 0x0c, 0xc4, 0x42, 0x81, 0xfd, 0xff, 0x5b, 0xd0, 0xba, 0xa7, + 0x69, 0x1a, 0xac, 0x29, 0x42, 0x50, 0x67, 0x41, 0x44, 0xb1, 0xe6, 0x68, 0x6e, 0x9b, 0xc8, 0x35, + 0xba, 0x00, 0x63, 0x13, 0x6e, 0x83, 0x24, 0xe4, 0x39, 0xae, 0x39, 0x9a, 0x7b, 0x34, 0xfc, 0xcc, + 0x2b, 0x0b, 0x7a, 0x45, 0xb1, 0xf7, 0x7b, 0x16, 0xc5, 0x59, 0x42, 0x0e, 0x6c, 0xe4, 0x80, 0xb5, + 0xa1, 0xe1, 0x7a, 0xc3, 0xfd, 0x90, 0xf9, 0x8b, 0x08, 0xeb, 0x8e, 0xe6, 0x76, 0x08, 0x28, 0x6c, + 0xc4, 0xae, 0x23, 0xa1, 0x27, 0xec, 0xe0, 0xba, 0xa3, 0xb9, 0x16, 0x91, 0x6b, 0xf4, 0x05, 0x58, + 0x09, 0x4d, 0xb3, 0x2d, 0xf7, 0x17, 0x71, 0xc6, 0x38, 0x6e, 0x39, 0x9a, 0xab, 0x13, 0x53, 0x61, + 0xd7, 0x02, 0x42, 0x5f, 0x42, 0x87, 0x27, 0x19, 0xf5, 0xd3, 0x45, 0xcc, 0xd3, 0x28, 0x60, 0xd8, + 0x70, 0x34, 0xd7, 0x20, 0x96, 0x00, 0x67, 0x05, 0x86, 0xba, 0xd0, 0x48, 0x17, 0x71, 0x42, 0x71, + 0xdb, 0xd1, 0xdc, 0x1a, 0x51, 0x1b, 0x64, 0x83, 0xfe, 0x37, 0xcd, 0x71, 0xc3, 0xd1, 0xdd, 0x3a, + 0x11, 0x4b, 0xf4, 0x29, 0xb4, 0xd3, 0x4d, 0x9c, 0x70, 0x5f, 0xe0, 0x27, 0x8e, 0xee, 0x36, 0x88, + 0x21, 0x81, 0x3b, 0x9a, 0xa3, 0x6f, 0xa1, 0xc9, 0x68, 0xca, 0xe9, 0x12, 0x37, 0x1d, 0xcd, 0x35, + 0x87, 0xdd, 0x97, 0xbf, 0x3e, 0x91, 0x67, 0xa4, 0xe0, 0xa0, 0x73, 0x68, 0x25, 0xfe, 0x2a, 0x63, + 0x2c, 0xc7, 0xb6, 0xa3, 0x7f, 0x30, 0xa9, 0x66, 0x72, 0x2b, 0xb8, 0xe8, 0x67, 0x68, 0x71, 0x9a, + 0x24, 0x41, 0xc8, 0x30, 0x38, 0xba, 0x6b, 0x0e, 0xfb, 0xd5, 0x65, 0x0f, 0x8a, 0x74, 0xc3, 0x78, + 0x92, 0x93, 0x7d, 0x09, 0xba, 0x00, 0x75, 0xff, 0x43, 0x7f, 0x15, 0xd2, 0xed, 0x12, 0x9b, 0xd2, + 0xe8, 0x27, 0xde, 0xfe, 0xae, 0xbd, 0x59, 0x36, 0xff, 0x8d, 0xae, 0x82, 0x6c, 0xcb, 0x53, 0x62, + 0x2a, 0xea, 0xad, 0x60, 0xa2, 0xd1, 0xa1, 0xf2, 0xdf, 0x60, 0x9b, 0x51, 0xdc, 0x91, 0xe2, 0x5f, + 0x55, 0x8b, 0x4f, 0x25, 0xf3, 0x4f, 0x41, 0x54, 0x06, 0x8a, 0x56, 0x12, 0x41, 0xdf, 0x83, 0x11, + 0xb0, 0x9c, 0x6f, 0x42, 0xb6, 0xc6, 0x47, 0x45, 0x52, 0x6a, 0x0e, 0xbd, 0xfd, 0x1c, 0x7a, 0x97, + 0x2c, 0x27, 0x07, 0x16, 0x3a, 0x07, 0x33, 0x0a, 0x58, 0xee, 0xcb, 0x5d, 0x8a, 0x8f, 0xa5, 0x76, + 0x75, 0x11, 0x08, 0xe2, 0x83, 0xe4, 0xa1, 0x73, 0x80, 0x34, 0x9b, 0x47, 0xca, 0x14, 0xfe, 0xb8, + 0xf8, 0xd7, 0x2a, 0xc7, 0xa4, 0x44, 0x44, 0x3f, 0x80, 0xb1, 0xd8, 0x84, 0xdb, 0x65, 0x42, 0x19, + 0x46, 0x52, 0xea, 0x8d, 0xa2, 0x03, 0xad, 0x37, 0x05, 0xab, 0x1c, 0xf8, 0x7e, 0x72, 0xd4, 0xd3, + 0x90, 0x93, 0xf3, 0x35, 0x34, 0x54, 0x70, 0xb5, 0xf7, 0xcc, 0x86, 0xa2, 0xfc, 0x54, 0xbb, 0xd0, + 0x7a, 0x8f, 0x60, 0xbf, 0x4e, 0xb1, 0xa2, 0xeb, 0x37, 0x2f, 0xbb, 0xbe, 0x71, 0x91, 0xcf, 0x6d, + 0xfb, 0xbf, 0x42, 0x53, 0x0d, 0x14, 0x32, 0xa1, 0xf5, 0x38, 0xb9, 0x9b, 0xfc, 0xf1, 0x34, 0xb1, + 0x3f, 0x42, 0x06, 0xd4, 0xa7, 0x8f, 0x93, 0x99, 0xad, 0xa1, 0x0e, 0xb4, 0x67, 0xe3, 0xcb, 0xe9, + 0xec, 0x61, 0x74, 0x7d, 0x67, 0xd7, 0xd0, 0x31, 0x98, 0x57, 0xa3, 0xf1, 0xd8, 0xbf, 0xba, 0x1c, + 0x8d, 0x6f, 0xfe, 0xb2, 0xf5, 0xfe, 0x10, 0x9a, 0xca, 0xac, 0x78, 0x33, 0x73, 0x39, 0xbe, 0xca, + 0x8f, 0xda, 0x88, 0x57, 0xba, 0xc8, 0xb8, 0x32, 0x64, 0x10, 0xb9, 0xee, 0xff, 0xa7, 0xc1, 0x51, + 0x91, 0xd9, 0x53, 0xc8, 0x37, 0xf7, 0xc1, 0x0e, 0x4d, 0xc1, 0x9a, 0xe7, 0x9c, 0xfa, 0x51, 0xb0, + 0xdb, 0x89, 0x39, 0xd0, 0x64, 0xce, 0xdf, 0x55, 0xe6, 0x5c, 0xd4, 0x78, 0x57, 0x39, 0xa7, 0xf7, + 0x8a, 0x5f, 0x4c, 0xd5, 0xfc, 0x19, 0xe9, 0xfd, 0x02, 0xf6, 0x6b, 0x42, 0x39, 0x30, 0x43, 0x05, + 0xd6, 0x2d, 0x07, 0x66, 0x95, 0x93, 0xf9, 0x07, 0x9a, 0x23, 0xc6, 0x85, 0xb7, 0x01, 0xe8, 0x09, + 0xe7, 0x85, 0xa5, 0xcf, 0x5f, 0x5a, 0x52, 0x14, 0x8f, 0x70, 0xae, 0x2c, 0x08, 0x66, 0xef, 0x47, + 0x30, 0xf6, 0x40, 0x59, 0xb2, 0x51, 0x21, 0xd9, 0x28, 0x4b, 0x9e, 0x41, 0x4b, 0xf5, 0x4b, 0x91, + 0x0b, 0xf5, 0x28, 0xd8, 0xa5, 0x85, 0x68, 0xb7, 0x4a, 0x94, 0x48, 0xc6, 0xbc, 0xa9, 0x8e, 0xde, + 0x05, 0x00, 0x00, 0xff, 0xff, 0x75, 0x38, 0xad, 0x84, 0xe4, 0x05, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto index ca670015..85a36818 100644 --- a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto +++ b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.proto @@ -31,9 +31,10 @@ syntax = "proto3"; -package proto3_proto; +import "google/protobuf/any.proto"; +import "testdata/test.proto"; -import "github.com/gogo/protobuf/proto/testdata/test.proto"; +package proto3_proto; message Message { enum Humour { @@ -52,17 +53,35 @@ message Message { float score = 9; repeated uint64 key = 5; + repeated int32 short_key = 19; Nested nested = 6; + repeated Humour r_funny = 16; map terrain = 10; testdata.SubDefaults proto2_field = 11; map proto2_value = 13; + + google.protobuf.Any anything = 14; + repeated google.protobuf.Any many_things = 15; + + Message submessage = 17; + repeated Message children = 18; } message Nested { string bunny = 1; + bool cute = 2; } message MessageWithMap { map byte_mapping = 1; } + + +message IntMap { + map rtt = 1; +} + +message IntMaps { + repeated IntMap maps = 1; +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/proto/proto3_test.go b/vendor/github.com/gogo/protobuf/proto/proto3_test.go index 6f9cddc3..75b66c17 100644 --- a/vendor/github.com/gogo/protobuf/proto/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/proto/proto3_test.go @@ -93,6 +93,16 @@ func TestRoundTripProto3(t *testing.T) { } } +func TestGettersForBasicTypesExist(t *testing.T) { + var m pb.Message + if got := m.GetNested().GetBunny(); got != "" { + t.Errorf("m.GetNested().GetBunny() = %q, want empty string", got) + } + if got := m.GetNested().GetCute(); got { + t.Errorf("m.GetNested().GetCute() = %t, want false", got) + } +} + func TestProto3SetDefaults(t *testing.T) { in := &pb.Message{ Terrain: map[string]*pb.Nested{ diff --git a/vendor/github.com/gogo/protobuf/proto/skip_gogo.go b/vendor/github.com/gogo/protobuf/proto/skip_gogo.go index 4fe7e081..5a5fd93f 100644 --- a/vendor/github.com/gogo/protobuf/proto/skip_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/skip_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go b/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go index 72338beb..01f3ad67 100644 --- a/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go +++ b/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go @@ -12,6 +12,7 @@ It has these top-level messages: GoEnum GoTestField GoTest + GoTestRequiredGroupField GoSkipTest NonPackedTest PackedTest @@ -20,6 +21,7 @@ It has these top-level messages: NewMessage InnerMessage OtherMessage + RequiredInnerMessage MyMessage Ext ComplexExtension @@ -52,7 +54,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type FOO int32 @@ -192,7 +196,7 @@ func (x *MyMessage_Color) UnmarshalJSON(data []byte) error { *x = MyMessage_Color(value) return nil } -func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{11, 0} } +func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{13, 0} } type DefaultsMessage_DefaultsEnum int32 @@ -230,7 +234,7 @@ func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error { return nil } func (DefaultsMessage_DefaultsEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptorTest, []int{14, 0} + return fileDescriptorTest, []int{16, 0} } type Defaults_Color int32 @@ -268,7 +272,7 @@ func (x *Defaults_Color) UnmarshalJSON(data []byte) error { *x = Defaults_Color(value) return nil } -func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{19, 0} } +func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{21, 0} } type RepeatedEnum_Color int32 @@ -299,7 +303,7 @@ func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error { *x = RepeatedEnum_Color(value) return nil } -func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{21, 0} } +func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTest, []int{23, 0} } type GoEnum struct { Foo *FOO `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"` @@ -319,8 +323,8 @@ func (m *GoEnum) GetFoo() FOO { } type GoTestField struct { - Label *string `protobuf:"bytes,1,req,name=Label,json=label" json:"Label,omitempty"` - Type *string `protobuf:"bytes,2,req,name=Type,json=type" json:"Type,omitempty"` + Label *string `protobuf:"bytes,1,req,name=Label" json:"Label,omitempty"` + Type *string `protobuf:"bytes,2,req,name=Type" json:"Type,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -345,81 +349,81 @@ func (m *GoTestField) GetType() string { type GoTest struct { // Some typical parameters - Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,json=kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` - Table *string `protobuf:"bytes,2,opt,name=Table,json=table" json:"Table,omitempty"` - Param *int32 `protobuf:"varint,3,opt,name=Param,json=param" json:"Param,omitempty"` + Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` + Table *string `protobuf:"bytes,2,opt,name=Table" json:"Table,omitempty"` + Param *int32 `protobuf:"varint,3,opt,name=Param" json:"Param,omitempty"` // Required, repeated and optional foreign fields. - RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` - RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField,json=repeatedField" json:"RepeatedField,omitempty"` - OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField,json=optionalField" json:"OptionalField,omitempty"` + RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField" json:"RequiredField,omitempty"` + RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField" json:"RepeatedField,omitempty"` + OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField" json:"OptionalField,omitempty"` // Required fields of all basic types - F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required,json=fBoolRequired" json:"F_Bool_required,omitempty"` - F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required,json=fInt32Required" json:"F_Int32_required,omitempty"` - F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required,json=fInt64Required" json:"F_Int64_required,omitempty"` - F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=fFixed32Required" json:"F_Fixed32_required,omitempty"` - F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=fFixed64Required" json:"F_Fixed64_required,omitempty"` - F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required,json=fUint32Required" json:"F_Uint32_required,omitempty"` - F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required,json=fUint64Required" json:"F_Uint64_required,omitempty"` - F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=fFloatRequired" json:"F_Float_required,omitempty"` - F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=fDoubleRequired" json:"F_Double_required,omitempty"` - F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required,json=fStringRequired" json:"F_String_required,omitempty"` - F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required,json=fBytesRequired" json:"F_Bytes_required,omitempty"` - F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=fSint32Required" json:"F_Sint32_required,omitempty"` - F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=fSint64Required" json:"F_Sint64_required,omitempty"` + F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required,json=FBoolRequired" json:"F_Bool_required,omitempty"` + F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required,json=FInt32Required" json:"F_Int32_required,omitempty"` + F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required,json=FInt64Required" json:"F_Int64_required,omitempty"` + F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=FFixed32Required" json:"F_Fixed32_required,omitempty"` + F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=FFixed64Required" json:"F_Fixed64_required,omitempty"` + F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required,json=FUint32Required" json:"F_Uint32_required,omitempty"` + F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required,json=FUint64Required" json:"F_Uint64_required,omitempty"` + F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=FFloatRequired" json:"F_Float_required,omitempty"` + F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=FDoubleRequired" json:"F_Double_required,omitempty"` + F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required,json=FStringRequired" json:"F_String_required,omitempty"` + F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required,json=FBytesRequired" json:"F_Bytes_required,omitempty"` + F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=FSint32Required" json:"F_Sint32_required,omitempty"` + F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=FSint64Required" json:"F_Sint64_required,omitempty"` // Repeated fields of all basic types - F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated,json=fBoolRepeated" json:"F_Bool_repeated,omitempty"` - F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated,json=fInt32Repeated" json:"F_Int32_repeated,omitempty"` - F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated,json=fInt64Repeated" json:"F_Int64_repeated,omitempty"` - F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=fFixed32Repeated" json:"F_Fixed32_repeated,omitempty"` - F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=fFixed64Repeated" json:"F_Fixed64_repeated,omitempty"` - F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=fUint32Repeated" json:"F_Uint32_repeated,omitempty"` - F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=fUint64Repeated" json:"F_Uint64_repeated,omitempty"` - F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=fFloatRepeated" json:"F_Float_repeated,omitempty"` - F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=fDoubleRepeated" json:"F_Double_repeated,omitempty"` - F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated,json=fStringRepeated" json:"F_String_repeated,omitempty"` - F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=fBytesRepeated" json:"F_Bytes_repeated,omitempty"` - F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=fSint32Repeated" json:"F_Sint32_repeated,omitempty"` - F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=fSint64Repeated" json:"F_Sint64_repeated,omitempty"` + F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated,json=FBoolRepeated" json:"F_Bool_repeated,omitempty"` + F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated,json=FInt32Repeated" json:"F_Int32_repeated,omitempty"` + F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated,json=FInt64Repeated" json:"F_Int64_repeated,omitempty"` + F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=FFixed32Repeated" json:"F_Fixed32_repeated,omitempty"` + F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=FFixed64Repeated" json:"F_Fixed64_repeated,omitempty"` + F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=FUint32Repeated" json:"F_Uint32_repeated,omitempty"` + F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=FUint64Repeated" json:"F_Uint64_repeated,omitempty"` + F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=FFloatRepeated" json:"F_Float_repeated,omitempty"` + F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=FDoubleRepeated" json:"F_Double_repeated,omitempty"` + F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated,json=FStringRepeated" json:"F_String_repeated,omitempty"` + F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=FBytesRepeated" json:"F_Bytes_repeated,omitempty"` + F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=FSint32Repeated" json:"F_Sint32_repeated,omitempty"` + F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=FSint64Repeated" json:"F_Sint64_repeated,omitempty"` // Optional fields of all basic types - F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional,json=fBoolOptional" json:"F_Bool_optional,omitempty"` - F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional,json=fInt32Optional" json:"F_Int32_optional,omitempty"` - F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional,json=fInt64Optional" json:"F_Int64_optional,omitempty"` - F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=fFixed32Optional" json:"F_Fixed32_optional,omitempty"` - F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=fFixed64Optional" json:"F_Fixed64_optional,omitempty"` - F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional,json=fUint32Optional" json:"F_Uint32_optional,omitempty"` - F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional,json=fUint64Optional" json:"F_Uint64_optional,omitempty"` - F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=fFloatOptional" json:"F_Float_optional,omitempty"` - F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=fDoubleOptional" json:"F_Double_optional,omitempty"` - F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional,json=fStringOptional" json:"F_String_optional,omitempty"` - F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=fBytesOptional" json:"F_Bytes_optional,omitempty"` - F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=fSint32Optional" json:"F_Sint32_optional,omitempty"` - F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=fSint64Optional" json:"F_Sint64_optional,omitempty"` + F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional,json=FBoolOptional" json:"F_Bool_optional,omitempty"` + F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional,json=FInt32Optional" json:"F_Int32_optional,omitempty"` + F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional,json=FInt64Optional" json:"F_Int64_optional,omitempty"` + F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=FFixed32Optional" json:"F_Fixed32_optional,omitempty"` + F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=FFixed64Optional" json:"F_Fixed64_optional,omitempty"` + F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional,json=FUint32Optional" json:"F_Uint32_optional,omitempty"` + F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional,json=FUint64Optional" json:"F_Uint64_optional,omitempty"` + F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=FFloatOptional" json:"F_Float_optional,omitempty"` + F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=FDoubleOptional" json:"F_Double_optional,omitempty"` + F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional,json=FStringOptional" json:"F_String_optional,omitempty"` + F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=FBytesOptional" json:"F_Bytes_optional,omitempty"` + F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=FSint32Optional" json:"F_Sint32_optional,omitempty"` + F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=FSint64Optional" json:"F_Sint64_optional,omitempty"` // Default-valued fields of all basic types - F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=fBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"` - F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=fInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"` - F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=fInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"` - F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=fFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` - F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=fFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` - F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=fUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` - F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=fUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` - F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=fFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"` - F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=fDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"` - F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,json=fStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` - F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=fBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` - F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=fSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` - F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=fSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` + F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=FBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"` + F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=FInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"` + F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=FInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"` + F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=FFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` + F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=FFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` + F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=FUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` + F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=FUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` + F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=FFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"` + F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=FDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"` + F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,json=FStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` + F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=FBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` + F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=FSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` + F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=FSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` // Packed repeated fields (no string or bytes). - F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=fBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"` - F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=fInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"` - F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=fInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"` - F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=fFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"` - F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=fFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"` - F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=fUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"` - F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=fUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"` - F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=fFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"` - F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=fDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"` - F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=fSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"` - F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=fSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"` + F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=FBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"` + F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=FInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"` + F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=FInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"` + F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=FFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"` + F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=FFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"` + F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=FUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"` + F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=FUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"` + F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=FFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"` + F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=FDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"` + F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=FSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"` + F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=FSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"` Requiredgroup *GoTest_RequiredGroup `protobuf:"group,70,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` Repeatedgroup []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` Optionalgroup *GoTest_OptionalGroup `protobuf:"group,90,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` @@ -953,7 +957,7 @@ func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup { // Required, repeated, and optional groups. type GoTest_RequiredGroup struct { - RequiredField *string `protobuf:"bytes,71,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + RequiredField *string `protobuf:"bytes,71,req,name=RequiredField" json:"RequiredField,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -970,7 +974,7 @@ func (m *GoTest_RequiredGroup) GetRequiredField() string { } type GoTest_RepeatedGroup struct { - RequiredField *string `protobuf:"bytes,81,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + RequiredField *string `protobuf:"bytes,81,req,name=RequiredField" json:"RequiredField,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -987,7 +991,7 @@ func (m *GoTest_RepeatedGroup) GetRequiredField() string { } type GoTest_OptionalGroup struct { - RequiredField *string `protobuf:"bytes,91,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + RequiredField *string `protobuf:"bytes,91,req,name=RequiredField" json:"RequiredField,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1003,6 +1007,43 @@ func (m *GoTest_OptionalGroup) GetRequiredField() string { return "" } +// For testing a group containing a required field. +type GoTestRequiredGroupField struct { + Group *GoTestRequiredGroupField_Group `protobuf:"group,1,req,name=Group,json=group" json:"group,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTestRequiredGroupField) Reset() { *m = GoTestRequiredGroupField{} } +func (m *GoTestRequiredGroupField) String() string { return proto.CompactTextString(m) } +func (*GoTestRequiredGroupField) ProtoMessage() {} +func (*GoTestRequiredGroupField) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{3} } + +func (m *GoTestRequiredGroupField) GetGroup() *GoTestRequiredGroupField_Group { + if m != nil { + return m.Group + } + return nil +} + +type GoTestRequiredGroupField_Group struct { + Field *int32 `protobuf:"varint,2,req,name=Field" json:"Field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTestRequiredGroupField_Group) Reset() { *m = GoTestRequiredGroupField_Group{} } +func (m *GoTestRequiredGroupField_Group) String() string { return proto.CompactTextString(m) } +func (*GoTestRequiredGroupField_Group) ProtoMessage() {} +func (*GoTestRequiredGroupField_Group) Descriptor() ([]byte, []int) { + return fileDescriptorTest, []int{3, 0} +} + +func (m *GoTestRequiredGroupField_Group) GetField() int32 { + if m != nil && m.Field != nil { + return *m.Field + } + return 0 +} + // For testing skipping of unrecognized fields. // Numbers are all big, larger than tag numbers in GoTestField, // the message used in the corresponding test. @@ -1018,7 +1059,7 @@ type GoSkipTest struct { func (m *GoSkipTest) Reset() { *m = GoSkipTest{} } func (m *GoSkipTest) String() string { return proto.CompactTextString(m) } func (*GoSkipTest) ProtoMessage() {} -func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{3} } +func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{4} } func (m *GoSkipTest) GetSkipInt32() int32 { if m != nil && m.SkipInt32 != nil { @@ -1064,7 +1105,7 @@ type GoSkipTest_SkipGroup struct { func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} } func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) } func (*GoSkipTest_SkipGroup) ProtoMessage() {} -func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{3, 0} } +func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{4, 0} } func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 { if m != nil && m.GroupInt32 != nil { @@ -1090,7 +1131,7 @@ type NonPackedTest struct { func (m *NonPackedTest) Reset() { *m = NonPackedTest{} } func (m *NonPackedTest) String() string { return proto.CompactTextString(m) } func (*NonPackedTest) ProtoMessage() {} -func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{4} } +func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{5} } func (m *NonPackedTest) GetA() []int32 { if m != nil { @@ -1107,7 +1148,7 @@ type PackedTest struct { func (m *PackedTest) Reset() { *m = PackedTest{} } func (m *PackedTest) String() string { return proto.CompactTextString(m) } func (*PackedTest) ProtoMessage() {} -func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{5} } +func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{6} } func (m *PackedTest) GetB() []int32 { if m != nil { @@ -1125,7 +1166,7 @@ type MaxTag struct { func (m *MaxTag) Reset() { *m = MaxTag{} } func (m *MaxTag) String() string { return proto.CompactTextString(m) } func (*MaxTag) ProtoMessage() {} -func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{6} } +func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{7} } func (m *MaxTag) GetLastField() string { if m != nil && m.LastField != nil { @@ -1143,7 +1184,7 @@ type OldMessage struct { func (m *OldMessage) Reset() { *m = OldMessage{} } func (m *OldMessage) String() string { return proto.CompactTextString(m) } func (*OldMessage) ProtoMessage() {} -func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{7} } +func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{8} } func (m *OldMessage) GetNested() *OldMessage_Nested { if m != nil { @@ -1167,7 +1208,7 @@ type OldMessage_Nested struct { func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} } func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) } func (*OldMessage_Nested) ProtoMessage() {} -func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{7, 0} } +func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{8, 0} } func (m *OldMessage_Nested) GetName() string { if m != nil && m.Name != nil { @@ -1188,7 +1229,7 @@ type NewMessage struct { func (m *NewMessage) Reset() { *m = NewMessage{} } func (m *NewMessage) String() string { return proto.CompactTextString(m) } func (*NewMessage) ProtoMessage() {} -func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{8} } +func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{9} } func (m *NewMessage) GetNested() *NewMessage_Nested { if m != nil { @@ -1213,7 +1254,7 @@ type NewMessage_Nested struct { func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} } func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) } func (*NewMessage_Nested) ProtoMessage() {} -func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{8, 0} } +func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{9, 0} } func (m *NewMessage_Nested) GetName() string { if m != nil && m.Name != nil { @@ -1239,7 +1280,7 @@ type InnerMessage struct { func (m *InnerMessage) Reset() { *m = InnerMessage{} } func (m *InnerMessage) String() string { return proto.CompactTextString(m) } func (*InnerMessage) ProtoMessage() {} -func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{9} } +func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{10} } const Default_InnerMessage_Port int32 = 4000 @@ -1265,32 +1306,26 @@ func (m *InnerMessage) GetConnected() bool { } type OtherMessage struct { - Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` - Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` + Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherMessage) Reset() { *m = OtherMessage{} } func (m *OtherMessage) String() string { return proto.CompactTextString(m) } func (*OtherMessage) ProtoMessage() {} -func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{10} } +func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{11} } var extRange_OtherMessage = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*OtherMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherMessage } -func (m *OtherMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *OtherMessage) GetKey() int64 { if m != nil && m.Key != nil { @@ -1320,41 +1355,53 @@ func (m *OtherMessage) GetInner() *InnerMessage { return nil } +type RequiredInnerMessage struct { + LeoFinallyWonAnOscar *InnerMessage `protobuf:"bytes,1,req,name=leo_finally_won_an_oscar,json=leoFinallyWonAnOscar" json:"leo_finally_won_an_oscar,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequiredInnerMessage) Reset() { *m = RequiredInnerMessage{} } +func (m *RequiredInnerMessage) String() string { return proto.CompactTextString(m) } +func (*RequiredInnerMessage) ProtoMessage() {} +func (*RequiredInnerMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{12} } + +func (m *RequiredInnerMessage) GetLeoFinallyWonAnOscar() *InnerMessage { + if m != nil { + return m.LeoFinallyWonAnOscar + } + return nil +} + type MyMessage struct { - Count *int32 `protobuf:"varint,1,req,name=count" json:"count,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Quote *string `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"` - Pet []string `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"` - Inner *InnerMessage `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"` - Others []*OtherMessage `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"` - RepInner []*InnerMessage `protobuf:"bytes,12,rep,name=rep_inner,json=repInner" json:"rep_inner,omitempty"` - Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` - Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` + Count *int32 `protobuf:"varint,1,req,name=count" json:"count,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Quote *string `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"` + Pet []string `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"` + Inner *InnerMessage `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"` + Others []*OtherMessage `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"` + WeMustGoDeeper *RequiredInnerMessage `protobuf:"bytes,13,opt,name=we_must_go_deeper,json=weMustGoDeeper" json:"we_must_go_deeper,omitempty"` + RepInner []*InnerMessage `protobuf:"bytes,12,rep,name=rep_inner,json=repInner" json:"rep_inner,omitempty"` + Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` + Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` // This field becomes [][]byte in the generated code. - RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes,json=repBytes" json:"rep_bytes,omitempty"` - Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes,json=repBytes" json:"rep_bytes,omitempty"` + Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyMessage) Reset() { *m = MyMessage{} } func (m *MyMessage) String() string { return proto.CompactTextString(m) } func (*MyMessage) ProtoMessage() {} -func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{11} } +func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{13} } var extRange_MyMessage = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyMessage } -func (m *MyMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *MyMessage) GetCount() int32 { if m != nil && m.Count != nil { @@ -1398,6 +1445,13 @@ func (m *MyMessage) GetOthers() []*OtherMessage { return nil } +func (m *MyMessage) GetWeMustGoDeeper() *RequiredInnerMessage { + if m != nil { + return m.WeMustGoDeeper + } + return nil +} + func (m *MyMessage) GetRepInner() []*InnerMessage { if m != nil { return m.RepInner @@ -1441,7 +1495,7 @@ type MyMessage_SomeGroup struct { func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} } func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) } func (*MyMessage_SomeGroup) ProtoMessage() {} -func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{11, 0} } +func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{13, 0} } func (m *MyMessage_SomeGroup) GetGroupField() int32 { if m != nil && m.GroupField != nil { @@ -1458,7 +1512,7 @@ type Ext struct { func (m *Ext) Reset() { *m = Ext{} } func (m *Ext) String() string { return proto.CompactTextString(m) } func (*Ext) ProtoMessage() {} -func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{12} } +func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{14} } func (m *Ext) GetData() string { if m != nil && m.Data != nil { @@ -1473,6 +1527,7 @@ var E_Ext_More = &proto.ExtensionDesc{ Field: 103, Name: "testdata.Ext.more", Tag: "bytes,103,opt,name=more", + Filename: "test.proto", } var E_Ext_Text = &proto.ExtensionDesc{ @@ -1481,6 +1536,7 @@ var E_Ext_Text = &proto.ExtensionDesc{ Field: 104, Name: "testdata.Ext.text", Tag: "bytes,104,opt,name=text", + Filename: "test.proto", } var E_Ext_Number = &proto.ExtensionDesc{ @@ -1489,6 +1545,7 @@ var E_Ext_Number = &proto.ExtensionDesc{ Field: 105, Name: "testdata.Ext.number", Tag: "varint,105,opt,name=number", + Filename: "test.proto", } type ComplexExtension struct { @@ -1501,7 +1558,7 @@ type ComplexExtension struct { func (m *ComplexExtension) Reset() { *m = ComplexExtension{} } func (m *ComplexExtension) String() string { return proto.CompactTextString(m) } func (*ComplexExtension) ProtoMessage() {} -func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{13} } +func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{15} } func (m *ComplexExtension) GetFirst() int32 { if m != nil && m.First != nil { @@ -1525,50 +1582,44 @@ func (m *ComplexExtension) GetThird() []int32 { } type DefaultsMessage struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *DefaultsMessage) Reset() { *m = DefaultsMessage{} } func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) } func (*DefaultsMessage) ProtoMessage() {} -func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{14} } +func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{16} } var extRange_DefaultsMessage = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*DefaultsMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_DefaultsMessage } -func (m *DefaultsMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type MyMessageSet struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyMessageSet) Reset() { *m = MyMessageSet{} } func (m *MyMessageSet) String() string { return proto.CompactTextString(m) } func (*MyMessageSet) ProtoMessage() {} -func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{15} } +func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{17} } func (m *MyMessageSet) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) + return proto.MarshalMessageSet(&m.XXX_InternalExtensions) } func (m *MyMessageSet) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) + return proto.UnmarshalMessageSet(buf, &m.XXX_InternalExtensions) } func (m *MyMessageSet) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) + return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions) } func (m *MyMessageSet) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) + return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions) } // ensure MyMessageSet satisfies proto.Marshaler and proto.Unmarshaler @@ -1576,18 +1627,12 @@ var _ proto.Marshaler = (*MyMessageSet)(nil) var _ proto.Unmarshaler = (*MyMessageSet)(nil) var extRange_MyMessageSet = []proto.ExtensionRange{ - {100, 2147483646}, + {Start: 100, End: 2147483646}, } func (*MyMessageSet) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyMessageSet } -func (m *MyMessageSet) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type Empty struct { XXX_unrecognized []byte `json:"-"` @@ -1596,7 +1641,7 @@ type Empty struct { func (m *Empty) Reset() { *m = Empty{} } func (m *Empty) String() string { return proto.CompactTextString(m) } func (*Empty) ProtoMessage() {} -func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{16} } +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{18} } type MessageList struct { Message []*MessageList_Message `protobuf:"group,1,rep,name=Message,json=message" json:"message,omitempty"` @@ -1606,7 +1651,7 @@ type MessageList struct { func (m *MessageList) Reset() { *m = MessageList{} } func (m *MessageList) String() string { return proto.CompactTextString(m) } func (*MessageList) ProtoMessage() {} -func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{17} } +func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{19} } func (m *MessageList) GetMessage() []*MessageList_Message { if m != nil { @@ -1624,7 +1669,7 @@ type MessageList_Message struct { func (m *MessageList_Message) Reset() { *m = MessageList_Message{} } func (m *MessageList_Message) String() string { return proto.CompactTextString(m) } func (*MessageList_Message) ProtoMessage() {} -func (*MessageList_Message) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{17, 0} } +func (*MessageList_Message) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{19, 0} } func (m *MessageList_Message) GetName() string { if m != nil && m.Name != nil { @@ -1649,7 +1694,7 @@ type Strings struct { func (m *Strings) Reset() { *m = Strings{} } func (m *Strings) String() string { return proto.CompactTextString(m) } func (*Strings) ProtoMessage() {} -func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{18} } +func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{20} } func (m *Strings) GetStringField() string { if m != nil && m.StringField != nil { @@ -1668,24 +1713,24 @@ func (m *Strings) GetBytesField() []byte { type Defaults struct { // Default-valued fields of all basic types. // Same as GoTest, but copied here to make testing easier. - F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,def=1" json:"F_Bool,omitempty"` - F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,def=32" json:"F_Int32,omitempty"` - F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,def=64" json:"F_Int64,omitempty"` - F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,def=320" json:"F_Fixed32,omitempty"` - F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,def=640" json:"F_Fixed64,omitempty"` - F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,def=3200" json:"F_Uint32,omitempty"` - F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,def=6400" json:"F_Uint64,omitempty"` - F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,def=314159" json:"F_Float,omitempty"` - F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,def=271828" json:"F_Double,omitempty"` - F_String *string `protobuf:"bytes,10,opt,name=F_String,json=fString,def=hello, \"world!\"\n" json:"F_String,omitempty"` - F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,def=Bignose" json:"F_Bytes,omitempty"` - F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,def=-32" json:"F_Sint32,omitempty"` - F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,def=-64" json:"F_Sint64,omitempty"` - F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` + F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,json=FBool,def=1" json:"F_Bool,omitempty"` + F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,def=32" json:"F_Int32,omitempty"` + F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,def=64" json:"F_Int64,omitempty"` + F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,def=320" json:"F_Fixed32,omitempty"` + F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,def=640" json:"F_Fixed64,omitempty"` + F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,def=3200" json:"F_Uint32,omitempty"` + F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,def=6400" json:"F_Uint64,omitempty"` + F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,def=314159" json:"F_Float,omitempty"` + F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,def=271828" json:"F_Double,omitempty"` + F_String *string `protobuf:"bytes,10,opt,name=F_String,json=FString,def=hello, \"world!\"\n" json:"F_String,omitempty"` + F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,def=Bignose" json:"F_Bytes,omitempty"` + F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,def=-32" json:"F_Sint32,omitempty"` + F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,def=-64" json:"F_Sint64,omitempty"` + F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` // More fields with crazy defaults. - F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=fPinf,def=inf" json:"F_Pinf,omitempty"` - F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=fNinf,def=-inf" json:"F_Ninf,omitempty"` - F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=fNan,def=nan" json:"F_Nan,omitempty"` + F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=FPinf,def=inf" json:"F_Pinf,omitempty"` + F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=FNinf,def=-inf" json:"F_Ninf,omitempty"` + F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=FNan,def=nan" json:"F_Nan,omitempty"` // Sub-message. Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"` // Redundant but explicit defaults. @@ -1696,7 +1741,7 @@ type Defaults struct { func (m *Defaults) Reset() { *m = Defaults{} } func (m *Defaults) String() string { return proto.CompactTextString(m) } func (*Defaults) ProtoMessage() {} -func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{19} } +func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{21} } const Default_Defaults_F_Bool bool = true const Default_Defaults_F_Int32 int32 = 32 @@ -1860,7 +1905,7 @@ type SubDefaults struct { func (m *SubDefaults) Reset() { *m = SubDefaults{} } func (m *SubDefaults) String() string { return proto.CompactTextString(m) } func (*SubDefaults) ProtoMessage() {} -func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{20} } +func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{22} } const Default_SubDefaults_N int64 = 7 @@ -1879,7 +1924,7 @@ type RepeatedEnum struct { func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} } func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) } func (*RepeatedEnum) ProtoMessage() {} -func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{21} } +func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{23} } func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color { if m != nil { @@ -1902,7 +1947,7 @@ type MoreRepeated struct { func (m *MoreRepeated) Reset() { *m = MoreRepeated{} } func (m *MoreRepeated) String() string { return proto.CompactTextString(m) } func (*MoreRepeated) ProtoMessage() {} -func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{22} } +func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{24} } func (m *MoreRepeated) GetBools() []bool { if m != nil { @@ -1961,7 +2006,7 @@ type GroupOld struct { func (m *GroupOld) Reset() { *m = GroupOld{} } func (m *GroupOld) String() string { return proto.CompactTextString(m) } func (*GroupOld) ProtoMessage() {} -func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{23} } +func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{25} } func (m *GroupOld) GetG() *GroupOld_G { if m != nil { @@ -1978,7 +2023,7 @@ type GroupOld_G struct { func (m *GroupOld_G) Reset() { *m = GroupOld_G{} } func (m *GroupOld_G) String() string { return proto.CompactTextString(m) } func (*GroupOld_G) ProtoMessage() {} -func (*GroupOld_G) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{23, 0} } +func (*GroupOld_G) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{25, 0} } func (m *GroupOld_G) GetX() int32 { if m != nil && m.X != nil { @@ -1995,7 +2040,7 @@ type GroupNew struct { func (m *GroupNew) Reset() { *m = GroupNew{} } func (m *GroupNew) String() string { return proto.CompactTextString(m) } func (*GroupNew) ProtoMessage() {} -func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{24} } +func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{26} } func (m *GroupNew) GetG() *GroupNew_G { if m != nil { @@ -2013,7 +2058,7 @@ type GroupNew_G struct { func (m *GroupNew_G) Reset() { *m = GroupNew_G{} } func (m *GroupNew_G) String() string { return proto.CompactTextString(m) } func (*GroupNew_G) ProtoMessage() {} -func (*GroupNew_G) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{24, 0} } +func (*GroupNew_G) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{26, 0} } func (m *GroupNew_G) GetX() int32 { if m != nil && m.X != nil { @@ -2031,13 +2076,14 @@ func (m *GroupNew_G) GetY() int32 { type FloatingPoint struct { F *float64 `protobuf:"fixed64,1,req,name=f" json:"f,omitempty"` + Exact *bool `protobuf:"varint,2,opt,name=exact" json:"exact,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (m *FloatingPoint) String() string { return proto.CompactTextString(m) } func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{25} } +func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{27} } func (m *FloatingPoint) GetF() float64 { if m != nil && m.F != nil { @@ -2046,6 +2092,13 @@ func (m *FloatingPoint) GetF() float64 { return 0 } +func (m *FloatingPoint) GetExact() bool { + if m != nil && m.Exact != nil { + return *m.Exact + } + return false +} + type MessageWithMap struct { NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` @@ -2057,7 +2110,7 @@ type MessageWithMap struct { func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } func (*MessageWithMap) ProtoMessage() {} -func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{26} } +func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{28} } func (m *MessageWithMap) GetNameMapping() map[int32]string { if m != nil { @@ -2116,7 +2169,7 @@ type Oneof struct { func (m *Oneof) Reset() { *m = Oneof{} } func (m *Oneof) String() string { return proto.CompactTextString(m) } func (*Oneof) ProtoMessage() {} -func (*Oneof) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{27} } +func (*Oneof) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{29} } type isOneof_Union interface { isOneof_Union() @@ -2126,55 +2179,55 @@ type isOneof_Tormato interface { } type Oneof_F_Bool struct { - F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,oneof"` + F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=FBool,oneof"` } type Oneof_F_Int32 struct { - F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,oneof"` + F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,oneof"` } type Oneof_F_Int64 struct { - F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,oneof"` + F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,oneof"` } type Oneof_F_Fixed32 struct { - F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,oneof"` + F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,oneof"` } type Oneof_F_Fixed64 struct { - F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,oneof"` + F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,oneof"` } type Oneof_F_Uint32 struct { - F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,oneof"` + F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,oneof"` } type Oneof_F_Uint64 struct { - F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,oneof"` + F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,oneof"` } type Oneof_F_Float struct { - F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,oneof"` + F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,oneof"` } type Oneof_F_Double struct { - F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,oneof"` + F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,oneof"` } type Oneof_F_String struct { - F_String string `protobuf:"bytes,10,opt,name=F_String,json=fString,oneof"` + F_String string `protobuf:"bytes,10,opt,name=F_String,json=FString,oneof"` } type Oneof_F_Bytes struct { - F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,oneof"` + F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,oneof"` } type Oneof_F_Sint32 struct { - F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,oneof"` + F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,oneof"` } type Oneof_F_Sint64 struct { - F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,oneof"` + F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,oneof"` } type Oneof_F_Enum struct { - F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.MyMessage_Color,oneof"` + F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=testdata.MyMessage_Color,oneof"` } type Oneof_F_Message struct { - F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=fMessage,oneof"` + F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=FMessage,oneof"` } type Oneof_FGroup struct { FGroup *Oneof_F_Group `protobuf:"group,16,opt,name=F_Group,json=fGroup,oneof"` } type Oneof_F_Largest_Tag struct { - F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=fLargestTag,oneof"` + F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=FLargestTag,oneof"` } type Oneof_Value struct { Value int32 `protobuf:"varint,100,opt,name=value,oneof"` @@ -2662,7 +2715,7 @@ type Oneof_F_Group struct { func (m *Oneof_F_Group) Reset() { *m = Oneof_F_Group{} } func (m *Oneof_F_Group) String() string { return proto.CompactTextString(m) } func (*Oneof_F_Group) ProtoMessage() {} -func (*Oneof_F_Group) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{27, 0} } +func (*Oneof_F_Group) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{29, 0} } func (m *Oneof_F_Group) GetX() int32 { if m != nil && m.X != nil { @@ -2689,7 +2742,7 @@ type Communique struct { func (m *Communique) Reset() { *m = Communique{} } func (m *Communique) String() string { return proto.CompactTextString(m) } func (*Communique) ProtoMessage() {} -func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{28} } +func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{30} } type isCommunique_Union interface { isCommunique_Union() @@ -2910,6 +2963,7 @@ var E_Greeting = &proto.ExtensionDesc{ Field: 106, Name: "testdata.greeting", Tag: "bytes,106,rep,name=greeting", + Filename: "test.proto", } var E_Complex = &proto.ExtensionDesc{ @@ -2918,6 +2972,7 @@ var E_Complex = &proto.ExtensionDesc{ Field: 200, Name: "testdata.complex", Tag: "bytes,200,opt,name=complex", + Filename: "test.proto", } var E_RComplex = &proto.ExtensionDesc{ @@ -2926,6 +2981,7 @@ var E_RComplex = &proto.ExtensionDesc{ Field: 201, Name: "testdata.r_complex", Tag: "bytes,201,rep,name=r_complex,json=rComplex", + Filename: "test.proto", } var E_NoDefaultDouble = &proto.ExtensionDesc{ @@ -2934,6 +2990,7 @@ var E_NoDefaultDouble = &proto.ExtensionDesc{ Field: 101, Name: "testdata.no_default_double", Tag: "fixed64,101,opt,name=no_default_double,json=noDefaultDouble", + Filename: "test.proto", } var E_NoDefaultFloat = &proto.ExtensionDesc{ @@ -2942,6 +2999,7 @@ var E_NoDefaultFloat = &proto.ExtensionDesc{ Field: 102, Name: "testdata.no_default_float", Tag: "fixed32,102,opt,name=no_default_float,json=noDefaultFloat", + Filename: "test.proto", } var E_NoDefaultInt32 = &proto.ExtensionDesc{ @@ -2950,6 +3008,7 @@ var E_NoDefaultInt32 = &proto.ExtensionDesc{ Field: 103, Name: "testdata.no_default_int32", Tag: "varint,103,opt,name=no_default_int32,json=noDefaultInt32", + Filename: "test.proto", } var E_NoDefaultInt64 = &proto.ExtensionDesc{ @@ -2958,6 +3017,7 @@ var E_NoDefaultInt64 = &proto.ExtensionDesc{ Field: 104, Name: "testdata.no_default_int64", Tag: "varint,104,opt,name=no_default_int64,json=noDefaultInt64", + Filename: "test.proto", } var E_NoDefaultUint32 = &proto.ExtensionDesc{ @@ -2966,6 +3026,7 @@ var E_NoDefaultUint32 = &proto.ExtensionDesc{ Field: 105, Name: "testdata.no_default_uint32", Tag: "varint,105,opt,name=no_default_uint32,json=noDefaultUint32", + Filename: "test.proto", } var E_NoDefaultUint64 = &proto.ExtensionDesc{ @@ -2974,6 +3035,7 @@ var E_NoDefaultUint64 = &proto.ExtensionDesc{ Field: 106, Name: "testdata.no_default_uint64", Tag: "varint,106,opt,name=no_default_uint64,json=noDefaultUint64", + Filename: "test.proto", } var E_NoDefaultSint32 = &proto.ExtensionDesc{ @@ -2982,6 +3044,7 @@ var E_NoDefaultSint32 = &proto.ExtensionDesc{ Field: 107, Name: "testdata.no_default_sint32", Tag: "zigzag32,107,opt,name=no_default_sint32,json=noDefaultSint32", + Filename: "test.proto", } var E_NoDefaultSint64 = &proto.ExtensionDesc{ @@ -2990,6 +3053,7 @@ var E_NoDefaultSint64 = &proto.ExtensionDesc{ Field: 108, Name: "testdata.no_default_sint64", Tag: "zigzag64,108,opt,name=no_default_sint64,json=noDefaultSint64", + Filename: "test.proto", } var E_NoDefaultFixed32 = &proto.ExtensionDesc{ @@ -2998,6 +3062,7 @@ var E_NoDefaultFixed32 = &proto.ExtensionDesc{ Field: 109, Name: "testdata.no_default_fixed32", Tag: "fixed32,109,opt,name=no_default_fixed32,json=noDefaultFixed32", + Filename: "test.proto", } var E_NoDefaultFixed64 = &proto.ExtensionDesc{ @@ -3006,6 +3071,7 @@ var E_NoDefaultFixed64 = &proto.ExtensionDesc{ Field: 110, Name: "testdata.no_default_fixed64", Tag: "fixed64,110,opt,name=no_default_fixed64,json=noDefaultFixed64", + Filename: "test.proto", } var E_NoDefaultSfixed32 = &proto.ExtensionDesc{ @@ -3014,6 +3080,7 @@ var E_NoDefaultSfixed32 = &proto.ExtensionDesc{ Field: 111, Name: "testdata.no_default_sfixed32", Tag: "fixed32,111,opt,name=no_default_sfixed32,json=noDefaultSfixed32", + Filename: "test.proto", } var E_NoDefaultSfixed64 = &proto.ExtensionDesc{ @@ -3022,6 +3089,7 @@ var E_NoDefaultSfixed64 = &proto.ExtensionDesc{ Field: 112, Name: "testdata.no_default_sfixed64", Tag: "fixed64,112,opt,name=no_default_sfixed64,json=noDefaultSfixed64", + Filename: "test.proto", } var E_NoDefaultBool = &proto.ExtensionDesc{ @@ -3030,6 +3098,7 @@ var E_NoDefaultBool = &proto.ExtensionDesc{ Field: 113, Name: "testdata.no_default_bool", Tag: "varint,113,opt,name=no_default_bool,json=noDefaultBool", + Filename: "test.proto", } var E_NoDefaultString = &proto.ExtensionDesc{ @@ -3038,6 +3107,7 @@ var E_NoDefaultString = &proto.ExtensionDesc{ Field: 114, Name: "testdata.no_default_string", Tag: "bytes,114,opt,name=no_default_string,json=noDefaultString", + Filename: "test.proto", } var E_NoDefaultBytes = &proto.ExtensionDesc{ @@ -3046,6 +3116,7 @@ var E_NoDefaultBytes = &proto.ExtensionDesc{ Field: 115, Name: "testdata.no_default_bytes", Tag: "bytes,115,opt,name=no_default_bytes,json=noDefaultBytes", + Filename: "test.proto", } var E_NoDefaultEnum = &proto.ExtensionDesc{ @@ -3054,6 +3125,7 @@ var E_NoDefaultEnum = &proto.ExtensionDesc{ Field: 116, Name: "testdata.no_default_enum", Tag: "varint,116,opt,name=no_default_enum,json=noDefaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum", + Filename: "test.proto", } var E_DefaultDouble = &proto.ExtensionDesc{ @@ -3062,6 +3134,7 @@ var E_DefaultDouble = &proto.ExtensionDesc{ Field: 201, Name: "testdata.default_double", Tag: "fixed64,201,opt,name=default_double,json=defaultDouble,def=3.1415", + Filename: "test.proto", } var E_DefaultFloat = &proto.ExtensionDesc{ @@ -3070,6 +3143,7 @@ var E_DefaultFloat = &proto.ExtensionDesc{ Field: 202, Name: "testdata.default_float", Tag: "fixed32,202,opt,name=default_float,json=defaultFloat,def=3.14", + Filename: "test.proto", } var E_DefaultInt32 = &proto.ExtensionDesc{ @@ -3078,6 +3152,7 @@ var E_DefaultInt32 = &proto.ExtensionDesc{ Field: 203, Name: "testdata.default_int32", Tag: "varint,203,opt,name=default_int32,json=defaultInt32,def=42", + Filename: "test.proto", } var E_DefaultInt64 = &proto.ExtensionDesc{ @@ -3086,6 +3161,7 @@ var E_DefaultInt64 = &proto.ExtensionDesc{ Field: 204, Name: "testdata.default_int64", Tag: "varint,204,opt,name=default_int64,json=defaultInt64,def=43", + Filename: "test.proto", } var E_DefaultUint32 = &proto.ExtensionDesc{ @@ -3094,6 +3170,7 @@ var E_DefaultUint32 = &proto.ExtensionDesc{ Field: 205, Name: "testdata.default_uint32", Tag: "varint,205,opt,name=default_uint32,json=defaultUint32,def=44", + Filename: "test.proto", } var E_DefaultUint64 = &proto.ExtensionDesc{ @@ -3102,6 +3179,7 @@ var E_DefaultUint64 = &proto.ExtensionDesc{ Field: 206, Name: "testdata.default_uint64", Tag: "varint,206,opt,name=default_uint64,json=defaultUint64,def=45", + Filename: "test.proto", } var E_DefaultSint32 = &proto.ExtensionDesc{ @@ -3110,6 +3188,7 @@ var E_DefaultSint32 = &proto.ExtensionDesc{ Field: 207, Name: "testdata.default_sint32", Tag: "zigzag32,207,opt,name=default_sint32,json=defaultSint32,def=46", + Filename: "test.proto", } var E_DefaultSint64 = &proto.ExtensionDesc{ @@ -3118,6 +3197,7 @@ var E_DefaultSint64 = &proto.ExtensionDesc{ Field: 208, Name: "testdata.default_sint64", Tag: "zigzag64,208,opt,name=default_sint64,json=defaultSint64,def=47", + Filename: "test.proto", } var E_DefaultFixed32 = &proto.ExtensionDesc{ @@ -3126,6 +3206,7 @@ var E_DefaultFixed32 = &proto.ExtensionDesc{ Field: 209, Name: "testdata.default_fixed32", Tag: "fixed32,209,opt,name=default_fixed32,json=defaultFixed32,def=48", + Filename: "test.proto", } var E_DefaultFixed64 = &proto.ExtensionDesc{ @@ -3134,6 +3215,7 @@ var E_DefaultFixed64 = &proto.ExtensionDesc{ Field: 210, Name: "testdata.default_fixed64", Tag: "fixed64,210,opt,name=default_fixed64,json=defaultFixed64,def=49", + Filename: "test.proto", } var E_DefaultSfixed32 = &proto.ExtensionDesc{ @@ -3142,6 +3224,7 @@ var E_DefaultSfixed32 = &proto.ExtensionDesc{ Field: 211, Name: "testdata.default_sfixed32", Tag: "fixed32,211,opt,name=default_sfixed32,json=defaultSfixed32,def=50", + Filename: "test.proto", } var E_DefaultSfixed64 = &proto.ExtensionDesc{ @@ -3150,6 +3233,7 @@ var E_DefaultSfixed64 = &proto.ExtensionDesc{ Field: 212, Name: "testdata.default_sfixed64", Tag: "fixed64,212,opt,name=default_sfixed64,json=defaultSfixed64,def=51", + Filename: "test.proto", } var E_DefaultBool = &proto.ExtensionDesc{ @@ -3158,6 +3242,7 @@ var E_DefaultBool = &proto.ExtensionDesc{ Field: 213, Name: "testdata.default_bool", Tag: "varint,213,opt,name=default_bool,json=defaultBool,def=1", + Filename: "test.proto", } var E_DefaultString = &proto.ExtensionDesc{ @@ -3166,6 +3251,7 @@ var E_DefaultString = &proto.ExtensionDesc{ Field: 214, Name: "testdata.default_string", Tag: "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string", + Filename: "test.proto", } var E_DefaultBytes = &proto.ExtensionDesc{ @@ -3174,6 +3260,7 @@ var E_DefaultBytes = &proto.ExtensionDesc{ Field: 215, Name: "testdata.default_bytes", Tag: "bytes,215,opt,name=default_bytes,json=defaultBytes,def=Hello, bytes", + Filename: "test.proto", } var E_DefaultEnum = &proto.ExtensionDesc{ @@ -3182,6 +3269,7 @@ var E_DefaultEnum = &proto.ExtensionDesc{ Field: 216, Name: "testdata.default_enum", Tag: "varint,216,opt,name=default_enum,json=defaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum,def=1", + Filename: "test.proto", } var E_X201 = &proto.ExtensionDesc{ @@ -3190,6 +3278,7 @@ var E_X201 = &proto.ExtensionDesc{ Field: 201, Name: "testdata.x201", Tag: "bytes,201,opt,name=x201", + Filename: "test.proto", } var E_X202 = &proto.ExtensionDesc{ @@ -3198,6 +3287,7 @@ var E_X202 = &proto.ExtensionDesc{ Field: 202, Name: "testdata.x202", Tag: "bytes,202,opt,name=x202", + Filename: "test.proto", } var E_X203 = &proto.ExtensionDesc{ @@ -3206,6 +3296,7 @@ var E_X203 = &proto.ExtensionDesc{ Field: 203, Name: "testdata.x203", Tag: "bytes,203,opt,name=x203", + Filename: "test.proto", } var E_X204 = &proto.ExtensionDesc{ @@ -3214,6 +3305,7 @@ var E_X204 = &proto.ExtensionDesc{ Field: 204, Name: "testdata.x204", Tag: "bytes,204,opt,name=x204", + Filename: "test.proto", } var E_X205 = &proto.ExtensionDesc{ @@ -3222,6 +3314,7 @@ var E_X205 = &proto.ExtensionDesc{ Field: 205, Name: "testdata.x205", Tag: "bytes,205,opt,name=x205", + Filename: "test.proto", } var E_X206 = &proto.ExtensionDesc{ @@ -3230,6 +3323,7 @@ var E_X206 = &proto.ExtensionDesc{ Field: 206, Name: "testdata.x206", Tag: "bytes,206,opt,name=x206", + Filename: "test.proto", } var E_X207 = &proto.ExtensionDesc{ @@ -3238,6 +3332,7 @@ var E_X207 = &proto.ExtensionDesc{ Field: 207, Name: "testdata.x207", Tag: "bytes,207,opt,name=x207", + Filename: "test.proto", } var E_X208 = &proto.ExtensionDesc{ @@ -3246,6 +3341,7 @@ var E_X208 = &proto.ExtensionDesc{ Field: 208, Name: "testdata.x208", Tag: "bytes,208,opt,name=x208", + Filename: "test.proto", } var E_X209 = &proto.ExtensionDesc{ @@ -3254,6 +3350,7 @@ var E_X209 = &proto.ExtensionDesc{ Field: 209, Name: "testdata.x209", Tag: "bytes,209,opt,name=x209", + Filename: "test.proto", } var E_X210 = &proto.ExtensionDesc{ @@ -3262,6 +3359,7 @@ var E_X210 = &proto.ExtensionDesc{ Field: 210, Name: "testdata.x210", Tag: "bytes,210,opt,name=x210", + Filename: "test.proto", } var E_X211 = &proto.ExtensionDesc{ @@ -3270,6 +3368,7 @@ var E_X211 = &proto.ExtensionDesc{ Field: 211, Name: "testdata.x211", Tag: "bytes,211,opt,name=x211", + Filename: "test.proto", } var E_X212 = &proto.ExtensionDesc{ @@ -3278,6 +3377,7 @@ var E_X212 = &proto.ExtensionDesc{ Field: 212, Name: "testdata.x212", Tag: "bytes,212,opt,name=x212", + Filename: "test.proto", } var E_X213 = &proto.ExtensionDesc{ @@ -3286,6 +3386,7 @@ var E_X213 = &proto.ExtensionDesc{ Field: 213, Name: "testdata.x213", Tag: "bytes,213,opt,name=x213", + Filename: "test.proto", } var E_X214 = &proto.ExtensionDesc{ @@ -3294,6 +3395,7 @@ var E_X214 = &proto.ExtensionDesc{ Field: 214, Name: "testdata.x214", Tag: "bytes,214,opt,name=x214", + Filename: "test.proto", } var E_X215 = &proto.ExtensionDesc{ @@ -3302,6 +3404,7 @@ var E_X215 = &proto.ExtensionDesc{ Field: 215, Name: "testdata.x215", Tag: "bytes,215,opt,name=x215", + Filename: "test.proto", } var E_X216 = &proto.ExtensionDesc{ @@ -3310,6 +3413,7 @@ var E_X216 = &proto.ExtensionDesc{ Field: 216, Name: "testdata.x216", Tag: "bytes,216,opt,name=x216", + Filename: "test.proto", } var E_X217 = &proto.ExtensionDesc{ @@ -3318,6 +3422,7 @@ var E_X217 = &proto.ExtensionDesc{ Field: 217, Name: "testdata.x217", Tag: "bytes,217,opt,name=x217", + Filename: "test.proto", } var E_X218 = &proto.ExtensionDesc{ @@ -3326,6 +3431,7 @@ var E_X218 = &proto.ExtensionDesc{ Field: 218, Name: "testdata.x218", Tag: "bytes,218,opt,name=x218", + Filename: "test.proto", } var E_X219 = &proto.ExtensionDesc{ @@ -3334,6 +3440,7 @@ var E_X219 = &proto.ExtensionDesc{ Field: 219, Name: "testdata.x219", Tag: "bytes,219,opt,name=x219", + Filename: "test.proto", } var E_X220 = &proto.ExtensionDesc{ @@ -3342,6 +3449,7 @@ var E_X220 = &proto.ExtensionDesc{ Field: 220, Name: "testdata.x220", Tag: "bytes,220,opt,name=x220", + Filename: "test.proto", } var E_X221 = &proto.ExtensionDesc{ @@ -3350,6 +3458,7 @@ var E_X221 = &proto.ExtensionDesc{ Field: 221, Name: "testdata.x221", Tag: "bytes,221,opt,name=x221", + Filename: "test.proto", } var E_X222 = &proto.ExtensionDesc{ @@ -3358,6 +3467,7 @@ var E_X222 = &proto.ExtensionDesc{ Field: 222, Name: "testdata.x222", Tag: "bytes,222,opt,name=x222", + Filename: "test.proto", } var E_X223 = &proto.ExtensionDesc{ @@ -3366,6 +3476,7 @@ var E_X223 = &proto.ExtensionDesc{ Field: 223, Name: "testdata.x223", Tag: "bytes,223,opt,name=x223", + Filename: "test.proto", } var E_X224 = &proto.ExtensionDesc{ @@ -3374,6 +3485,7 @@ var E_X224 = &proto.ExtensionDesc{ Field: 224, Name: "testdata.x224", Tag: "bytes,224,opt,name=x224", + Filename: "test.proto", } var E_X225 = &proto.ExtensionDesc{ @@ -3382,6 +3494,7 @@ var E_X225 = &proto.ExtensionDesc{ Field: 225, Name: "testdata.x225", Tag: "bytes,225,opt,name=x225", + Filename: "test.proto", } var E_X226 = &proto.ExtensionDesc{ @@ -3390,6 +3503,7 @@ var E_X226 = &proto.ExtensionDesc{ Field: 226, Name: "testdata.x226", Tag: "bytes,226,opt,name=x226", + Filename: "test.proto", } var E_X227 = &proto.ExtensionDesc{ @@ -3398,6 +3512,7 @@ var E_X227 = &proto.ExtensionDesc{ Field: 227, Name: "testdata.x227", Tag: "bytes,227,opt,name=x227", + Filename: "test.proto", } var E_X228 = &proto.ExtensionDesc{ @@ -3406,6 +3521,7 @@ var E_X228 = &proto.ExtensionDesc{ Field: 228, Name: "testdata.x228", Tag: "bytes,228,opt,name=x228", + Filename: "test.proto", } var E_X229 = &proto.ExtensionDesc{ @@ -3414,6 +3530,7 @@ var E_X229 = &proto.ExtensionDesc{ Field: 229, Name: "testdata.x229", Tag: "bytes,229,opt,name=x229", + Filename: "test.proto", } var E_X230 = &proto.ExtensionDesc{ @@ -3422,6 +3539,7 @@ var E_X230 = &proto.ExtensionDesc{ Field: 230, Name: "testdata.x230", Tag: "bytes,230,opt,name=x230", + Filename: "test.proto", } var E_X231 = &proto.ExtensionDesc{ @@ -3430,6 +3548,7 @@ var E_X231 = &proto.ExtensionDesc{ Field: 231, Name: "testdata.x231", Tag: "bytes,231,opt,name=x231", + Filename: "test.proto", } var E_X232 = &proto.ExtensionDesc{ @@ -3438,6 +3557,7 @@ var E_X232 = &proto.ExtensionDesc{ Field: 232, Name: "testdata.x232", Tag: "bytes,232,opt,name=x232", + Filename: "test.proto", } var E_X233 = &proto.ExtensionDesc{ @@ -3446,6 +3566,7 @@ var E_X233 = &proto.ExtensionDesc{ Field: 233, Name: "testdata.x233", Tag: "bytes,233,opt,name=x233", + Filename: "test.proto", } var E_X234 = &proto.ExtensionDesc{ @@ -3454,6 +3575,7 @@ var E_X234 = &proto.ExtensionDesc{ Field: 234, Name: "testdata.x234", Tag: "bytes,234,opt,name=x234", + Filename: "test.proto", } var E_X235 = &proto.ExtensionDesc{ @@ -3462,6 +3584,7 @@ var E_X235 = &proto.ExtensionDesc{ Field: 235, Name: "testdata.x235", Tag: "bytes,235,opt,name=x235", + Filename: "test.proto", } var E_X236 = &proto.ExtensionDesc{ @@ -3470,6 +3593,7 @@ var E_X236 = &proto.ExtensionDesc{ Field: 236, Name: "testdata.x236", Tag: "bytes,236,opt,name=x236", + Filename: "test.proto", } var E_X237 = &proto.ExtensionDesc{ @@ -3478,6 +3602,7 @@ var E_X237 = &proto.ExtensionDesc{ Field: 237, Name: "testdata.x237", Tag: "bytes,237,opt,name=x237", + Filename: "test.proto", } var E_X238 = &proto.ExtensionDesc{ @@ -3486,6 +3611,7 @@ var E_X238 = &proto.ExtensionDesc{ Field: 238, Name: "testdata.x238", Tag: "bytes,238,opt,name=x238", + Filename: "test.proto", } var E_X239 = &proto.ExtensionDesc{ @@ -3494,6 +3620,7 @@ var E_X239 = &proto.ExtensionDesc{ Field: 239, Name: "testdata.x239", Tag: "bytes,239,opt,name=x239", + Filename: "test.proto", } var E_X240 = &proto.ExtensionDesc{ @@ -3502,6 +3629,7 @@ var E_X240 = &proto.ExtensionDesc{ Field: 240, Name: "testdata.x240", Tag: "bytes,240,opt,name=x240", + Filename: "test.proto", } var E_X241 = &proto.ExtensionDesc{ @@ -3510,6 +3638,7 @@ var E_X241 = &proto.ExtensionDesc{ Field: 241, Name: "testdata.x241", Tag: "bytes,241,opt,name=x241", + Filename: "test.proto", } var E_X242 = &proto.ExtensionDesc{ @@ -3518,6 +3647,7 @@ var E_X242 = &proto.ExtensionDesc{ Field: 242, Name: "testdata.x242", Tag: "bytes,242,opt,name=x242", + Filename: "test.proto", } var E_X243 = &proto.ExtensionDesc{ @@ -3526,6 +3656,7 @@ var E_X243 = &proto.ExtensionDesc{ Field: 243, Name: "testdata.x243", Tag: "bytes,243,opt,name=x243", + Filename: "test.proto", } var E_X244 = &proto.ExtensionDesc{ @@ -3534,6 +3665,7 @@ var E_X244 = &proto.ExtensionDesc{ Field: 244, Name: "testdata.x244", Tag: "bytes,244,opt,name=x244", + Filename: "test.proto", } var E_X245 = &proto.ExtensionDesc{ @@ -3542,6 +3674,7 @@ var E_X245 = &proto.ExtensionDesc{ Field: 245, Name: "testdata.x245", Tag: "bytes,245,opt,name=x245", + Filename: "test.proto", } var E_X246 = &proto.ExtensionDesc{ @@ -3550,6 +3683,7 @@ var E_X246 = &proto.ExtensionDesc{ Field: 246, Name: "testdata.x246", Tag: "bytes,246,opt,name=x246", + Filename: "test.proto", } var E_X247 = &proto.ExtensionDesc{ @@ -3558,6 +3692,7 @@ var E_X247 = &proto.ExtensionDesc{ Field: 247, Name: "testdata.x247", Tag: "bytes,247,opt,name=x247", + Filename: "test.proto", } var E_X248 = &proto.ExtensionDesc{ @@ -3566,6 +3701,7 @@ var E_X248 = &proto.ExtensionDesc{ Field: 248, Name: "testdata.x248", Tag: "bytes,248,opt,name=x248", + Filename: "test.proto", } var E_X249 = &proto.ExtensionDesc{ @@ -3574,6 +3710,7 @@ var E_X249 = &proto.ExtensionDesc{ Field: 249, Name: "testdata.x249", Tag: "bytes,249,opt,name=x249", + Filename: "test.proto", } var E_X250 = &proto.ExtensionDesc{ @@ -3582,6 +3719,7 @@ var E_X250 = &proto.ExtensionDesc{ Field: 250, Name: "testdata.x250", Tag: "bytes,250,opt,name=x250", + Filename: "test.proto", } func init() { @@ -3591,6 +3729,8 @@ func init() { proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup") proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup") proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup") + proto.RegisterType((*GoTestRequiredGroupField)(nil), "testdata.GoTestRequiredGroupField") + proto.RegisterType((*GoTestRequiredGroupField_Group)(nil), "testdata.GoTestRequiredGroupField.Group") proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest") proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup") proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest") @@ -3602,6 +3742,7 @@ func init() { proto.RegisterType((*NewMessage_Nested)(nil), "testdata.NewMessage.Nested") proto.RegisterType((*InnerMessage)(nil), "testdata.InnerMessage") proto.RegisterType((*OtherMessage)(nil), "testdata.OtherMessage") + proto.RegisterType((*RequiredInnerMessage)(nil), "testdata.RequiredInnerMessage") proto.RegisterType((*MyMessage)(nil), "testdata.MyMessage") proto.RegisterType((*MyMessage_SomeGroup)(nil), "testdata.MyMessage.SomeGroup") proto.RegisterType((*Ext)(nil), "testdata.Ext") @@ -3721,272 +3862,287 @@ func init() { proto.RegisterExtension(E_X250) } +func init() { proto.RegisterFile("test.proto", fileDescriptorTest) } + var fileDescriptorTest = []byte{ - // 4253 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x7a, 0xd9, 0x77, 0x1b, 0x47, - 0x76, 0xbe, 0x1b, 0x3b, 0x0a, 0x20, 0xd1, 0x6c, 0xc9, 0x12, 0x44, 0x2d, 0x96, 0x31, 0x63, 0x5b, - 0x92, 0x6d, 0x0e, 0xd1, 0x00, 0x49, 0x09, 0x9e, 0xdf, 0x9c, 0x23, 0x4a, 0x24, 0x87, 0x67, 0x44, - 0x82, 0xbf, 0x26, 0xed, 0x39, 0xe3, 0x3c, 0xe0, 0x80, 0x62, 0x83, 0x84, 0x05, 0xa0, 0x21, 0x00, - 0x8c, 0xa5, 0xe4, 0x25, 0x2f, 0xc9, 0x6b, 0xb6, 0x97, 0xbc, 0xe6, 0x29, 0x4f, 0x49, 0xce, 0xc9, - 0x5f, 0x11, 0xdb, 0xb3, 0x7a, 0xd6, 0xac, 0x93, 0x7d, 0x99, 0xec, 0xdb, 0x4c, 0x92, 0x93, 0x73, - 0x92, 0x7b, 0x6f, 0xdd, 0xee, 0xae, 0x6e, 0xa0, 0x9b, 0x94, 0x1e, 0x4c, 0x74, 0xd5, 0xf7, 0xdd, - 0xba, 0x55, 0xfd, 0xd5, 0xbd, 0x75, 0xab, 0x2d, 0xc4, 0xc4, 0x1e, 0x4f, 0x96, 0x86, 0x23, 0x67, - 0xe2, 0x18, 0x39, 0xfc, 0x7d, 0xd4, 0x9e, 0xb4, 0x2b, 0xb7, 0x45, 0x66, 0xcb, 0xd9, 0x18, 0x9c, - 0xf6, 0x8d, 0x57, 0x44, 0xb2, 0xe3, 0x38, 0x65, 0xed, 0x66, 0xe2, 0xd6, 0xbc, 0x39, 0xb7, 0xe4, - 0x22, 0x96, 0x36, 0x9b, 0x4d, 0x0b, 0x7b, 0x2a, 0x6b, 0xa2, 0xb0, 0xe5, 0x1c, 0x40, 0xf3, 0x66, - 0xd7, 0xee, 0x1d, 0x19, 0x17, 0x45, 0xfa, 0x51, 0xfb, 0xd0, 0xee, 0x11, 0x23, 0x6f, 0xa5, 0x7b, - 0xf8, 0x60, 0x18, 0x22, 0x75, 0xf0, 0x7c, 0x68, 0x97, 0x13, 0xd4, 0x98, 0x9a, 0xc0, 0xef, 0xca, - 0x2f, 0xde, 0xc0, 0x41, 0x90, 0x69, 0xdc, 0x16, 0xa9, 0x2f, 0x75, 0x07, 0x47, 0x3c, 0xca, 0xcb, - 0xfe, 0x28, 0xb2, 0x7f, 0xe9, 0x4b, 0xdb, 0xbb, 0x0f, 0xad, 0xd4, 0x13, 0x80, 0xa0, 0xfd, 0x83, - 0xf6, 0x61, 0x0f, 0x4d, 0x69, 0x68, 0x7f, 0x82, 0x0f, 0xd8, 0xba, 0xd7, 0x1e, 0xb5, 0xfb, 0xe5, - 0x24, 0xb4, 0xa6, 0xad, 0xf4, 0x10, 0x1f, 0x8c, 0x77, 0xc4, 0x9c, 0x65, 0x3f, 0x3d, 0xed, 0x8e, - 0xec, 0x23, 0x72, 0xae, 0x9c, 0x02, 0xfb, 0x85, 0x69, 0xfb, 0xd4, 0x69, 0xcd, 0x8d, 0x54, 0xac, - 0x24, 0x0f, 0xed, 0xf6, 0xc4, 0x25, 0xa7, 0x6f, 0x26, 0x63, 0xc9, 0x0a, 0x16, 0xc9, 0xcd, 0xe1, - 0xa4, 0xeb, 0x0c, 0xda, 0x3d, 0x49, 0xce, 0x80, 0x5f, 0xd1, 0x64, 0x47, 0xc5, 0x1a, 0xaf, 0x8b, - 0xd2, 0x66, 0x6b, 0xdd, 0x71, 0x7a, 0x2d, 0xd7, 0xa3, 0xb2, 0x00, 0xc7, 0x73, 0xd6, 0x5c, 0x07, - 0x5b, 0xdd, 0x29, 0x19, 0xb7, 0x84, 0xbe, 0xd9, 0xda, 0x1e, 0x4c, 0x6a, 0xa6, 0x0f, 0x2c, 0x00, - 0x30, 0x6d, 0xcd, 0x77, 0xa8, 0x79, 0x0a, 0xb9, 0x5a, 0xf7, 0x91, 0x45, 0x40, 0x26, 0x25, 0x72, - 0xb5, 0xee, 0x21, 0xdf, 0x12, 0xc6, 0x66, 0x6b, 0xb3, 0xfb, 0xcc, 0x3e, 0x52, 0xad, 0xce, 0x01, - 0x36, 0x6b, 0xe9, 0x1d, 0xee, 0x98, 0x81, 0x56, 0x2d, 0xcf, 0x03, 0x3a, 0xe3, 0xa2, 0x15, 0xdb, - 0x77, 0xc4, 0xc2, 0x66, 0xeb, 0xdd, 0x6e, 0xd0, 0xe1, 0x12, 0x80, 0xe7, 0xac, 0x52, 0x47, 0xb6, - 0x4f, 0x63, 0x55, 0xc3, 0x3a, 0x60, 0x53, 0x8c, 0x55, 0xec, 0xd2, 0xec, 0x36, 0x7b, 0x4e, 0x7b, - 0xe2, 0x43, 0x17, 0x00, 0x9a, 0x80, 0xd9, 0x51, 0x73, 0xd0, 0xea, 0x43, 0xe7, 0x14, 0x24, 0xe3, - 0x43, 0x0d, 0x80, 0x6a, 0x60, 0x55, 0xb6, 0x07, 0xb1, 0xfb, 0x93, 0x51, 0x77, 0x70, 0xec, 0x63, - 0x2f, 0x90, 0x7e, 0x4b, 0x1d, 0xd9, 0x1e, 0xf4, 0x60, 0xfd, 0x39, 0xbc, 0x5c, 0x1f, 0x6a, 0x03, - 0xb4, 0x08, 0x1e, 0x50, 0x73, 0xc8, 0x6a, 0x68, 0x0d, 0x3a, 0x00, 0x5d, 0x40, 0xab, 0x33, 0xd6, - 0x60, 0x3f, 0xb4, 0x06, 0xc7, 0x80, 0x35, 0x18, 0xab, 0xac, 0x81, 0xaa, 0x19, 0x29, 0xc4, 0xf2, - 0x45, 0xd0, 0xab, 0xaf, 0x19, 0xd9, 0x18, 0xd4, 0x0c, 0x03, 0x5f, 0x06, 0xa0, 0xa2, 0x99, 0x10, - 0x92, 0x06, 0x67, 0xe4, 0x25, 0x40, 0x2a, 0x9a, 0x61, 0x64, 0x48, 0x33, 0x8c, 0xbd, 0x0c, 0xd8, - 0x80, 0x66, 0xa6, 0xd0, 0xaa, 0xe5, 0x32, 0xa0, 0x03, 0x9a, 0x61, 0x74, 0x50, 0x33, 0x0c, 0xbe, - 0x02, 0x60, 0x55, 0x33, 0x61, 0xac, 0x6a, 0x78, 0x11, 0xb0, 0xaa, 0x66, 0xd4, 0xd9, 0xb9, 0x9a, - 0x61, 0xe8, 0x55, 0x80, 0x2a, 0x9a, 0x51, 0xad, 0x7a, 0x9a, 0x61, 0xe8, 0x35, 0x80, 0xaa, 0x9a, - 0x51, 0xb1, 0x9e, 0x66, 0x18, 0x7b, 0x1d, 0xb0, 0xaa, 0x66, 0x18, 0x7b, 0x5b, 0xd5, 0x0c, 0x43, - 0x3f, 0xd2, 0x00, 0xab, 0x88, 0x86, 0xa1, 0x6f, 0x06, 0x44, 0xc3, 0xd8, 0x8f, 0x11, 0xab, 0xaa, - 0x26, 0x0c, 0x56, 0x57, 0xe1, 0x13, 0x04, 0xab, 0xb2, 0x61, 0xb0, 0x2f, 0x1b, 0x37, 0x04, 0x95, - 0x6f, 0x40, 0xa4, 0x72, 0x65, 0xe3, 0xc6, 0x30, 0x55, 0x36, 0x1e, 0xf0, 0x15, 0x0a, 0xb5, 0x2c, - 0x9b, 0x29, 0x24, 0x8c, 0xee, 0x21, 0x6f, 0x02, 0xd2, 0x93, 0x8d, 0x87, 0x0c, 0xc8, 0xc6, 0xc3, - 0xbe, 0x0a, 0x58, 0x45, 0x36, 0x33, 0xd0, 0xaa, 0xe5, 0x0a, 0xa0, 0x15, 0xd9, 0x78, 0x68, 0x55, - 0x36, 0x1e, 0xf8, 0x33, 0x00, 0xf6, 0x65, 0x33, 0x8d, 0x55, 0x0d, 0x7f, 0x16, 0xb0, 0xbe, 0x6c, - 0x82, 0xb3, 0x93, 0xb2, 0xf1, 0xa0, 0xaf, 0x01, 0xd4, 0x93, 0x4d, 0xd0, 0x2a, 0xcb, 0xc6, 0x83, - 0xbe, 0x0e, 0x50, 0x5f, 0x36, 0x41, 0x2c, 0xcb, 0xc6, 0xc3, 0xbe, 0x41, 0xf9, 0xcd, 0x95, 0x8d, - 0x87, 0x55, 0x64, 0xe3, 0x41, 0x7f, 0x13, 0x73, 0xa1, 0x27, 0x1b, 0x0f, 0xaa, 0xca, 0xc6, 0xc3, - 0xfe, 0x16, 0x62, 0x7d, 0xd9, 0x4c, 0x83, 0xd5, 0x55, 0xf8, 0x6d, 0x04, 0xfb, 0xb2, 0xf1, 0xc0, - 0x4b, 0xe4, 0x04, 0xca, 0xe6, 0xc8, 0xee, 0xb4, 0x4f, 0x7b, 0x28, 0xb1, 0x5b, 0xa8, 0x9b, 0x46, - 0x6a, 0x32, 0x3a, 0xb5, 0xd1, 0x13, 0xe8, 0x7c, 0xe8, 0xf6, 0x01, 0x7e, 0xc1, 0x95, 0x8f, 0x4f, - 0xb8, 0x8d, 0xfa, 0x69, 0x24, 0x40, 0xba, 0x25, 0xa9, 0xa1, 0x69, 0x3c, 0xf8, 0xe2, 0xe3, 0xef, - 0xa0, 0x8a, 0x1a, 0x09, 0x50, 0x6f, 0x49, 0x2a, 0xc9, 0xc7, 0xd7, 0xc4, 0x05, 0x5f, 0x4a, 0x3e, - 0xe3, 0x4d, 0xd4, 0x52, 0x23, 0x59, 0x33, 0x97, 0xad, 0x05, 0x57, 0x50, 0xb3, 0x48, 0x81, 0x61, - 0xde, 0x42, 0x49, 0x35, 0x92, 0xab, 0x75, 0x8f, 0xa4, 0x8e, 0x64, 0xa2, 0x0c, 0x59, 0x58, 0x3e, - 0xe7, 0x6d, 0x54, 0x56, 0x23, 0x05, 0x03, 0x2d, 0x83, 0x18, 0x65, 0xf7, 0x0c, 0x4e, 0x60, 0x9c, - 0x25, 0x54, 0x58, 0x23, 0x05, 0xe3, 0xb8, 0x9c, 0xe0, 0x38, 0x0b, 0xae, 0xd0, 0x7c, 0xca, 0xe7, - 0x50, 0x69, 0x8d, 0x4c, 0xad, 0x5a, 0xaf, 0xae, 0xdc, 0x83, 0x55, 0xa0, 0x7e, 0x9f, 0x53, 0xc7, - 0x71, 0x58, 0x72, 0x3e, 0x69, 0x19, 0x35, 0xd7, 0xc8, 0x98, 0x6b, 0xd5, 0xbb, 0xe6, 0x5d, 0x18, - 0x49, 0x02, 0x7c, 0xd6, 0x17, 0x90, 0xc5, 0xe2, 0xf3, 0x59, 0x55, 0x54, 0x5f, 0x43, 0x3f, 0xb1, - 0x7b, 0x3d, 0xe7, 0xad, 0x9b, 0x95, 0x0f, 0x9d, 0x51, 0xef, 0xe8, 0xd5, 0x8a, 0x00, 0xbe, 0x84, - 0xaa, 0xa3, 0x2e, 0xb8, 0x82, 0xf4, 0xe9, 0xbf, 0x8c, 0xe7, 0xb0, 0x62, 0x23, 0xbb, 0xde, 0x3d, - 0x1e, 0x38, 0x63, 0x1b, 0x7c, 0x25, 0x44, 0x68, 0x4d, 0xf6, 0xc3, 0xeb, 0xf8, 0x2b, 0x48, 0x5b, - 0x68, 0x24, 0xdf, 0x06, 0x51, 0xe8, 0xac, 0xd0, 0x19, 0x9c, 0xc0, 0x3a, 0xfe, 0x2a, 0x72, 0x0c, - 0xe0, 0x80, 0x30, 0x74, 0x16, 0xaa, 0xcf, 0x59, 0x13, 0x97, 0x42, 0x79, 0xb1, 0x35, 0x6c, 0x3f, - 0x7e, 0x02, 0x3c, 0x13, 0xd3, 0xe3, 0x7a, 0x42, 0xd7, 0xac, 0x0b, 0x81, 0x14, 0xb9, 0x47, 0xdd, - 0xc6, 0x3d, 0x71, 0x39, 0x9c, 0x28, 0x5d, 0x66, 0x0d, 0xf3, 0x25, 0x31, 0x2f, 0x06, 0x73, 0x66, - 0x88, 0xaa, 0x04, 0x60, 0x97, 0x5a, 0xc7, 0x04, 0xea, 0x53, 0xfd, 0x48, 0xcc, 0xd4, 0xff, 0x27, - 0xae, 0x4c, 0xa7, 0x52, 0x97, 0xbc, 0x82, 0x19, 0x95, 0xc8, 0x97, 0xc2, 0x59, 0x75, 0x8a, 0x3e, - 0x63, 0xec, 0x55, 0x4c, 0xb1, 0x2a, 0x7d, 0x6a, 0xf4, 0x77, 0x44, 0x79, 0x2a, 0xd9, 0xba, 0xec, - 0x35, 0xcc, 0xb9, 0xc4, 0x7e, 0x39, 0x94, 0x77, 0xc3, 0xe4, 0x19, 0x43, 0xdf, 0xc5, 0x24, 0xac, - 0x90, 0xa7, 0x46, 0xa6, 0x25, 0x0b, 0xa6, 0x63, 0x97, 0x7b, 0x0f, 0xb3, 0x32, 0x2f, 0x59, 0x20, - 0x33, 0xab, 0xe3, 0x86, 0xf2, 0xb3, 0xcb, 0x6d, 0x60, 0x9a, 0xe6, 0x71, 0x83, 0xa9, 0x9a, 0xc9, - 0x9f, 0x47, 0xf2, 0xfe, 0xec, 0x19, 0xff, 0x38, 0x89, 0x09, 0x96, 0xd9, 0xfb, 0xb3, 0xa6, 0xec, - 0xb1, 0x67, 0x4c, 0xf9, 0x27, 0xc8, 0x36, 0x14, 0xf6, 0xd4, 0x9c, 0x1f, 0x0a, 0xaf, 0xe2, 0x38, - 0x1e, 0x39, 0xa7, 0xc3, 0xf2, 0x26, 0x1c, 0xed, 0x84, 0x79, 0x63, 0xaa, 0xfa, 0x71, 0x0f, 0x79, - 0x5b, 0x88, 0xb2, 0x82, 0x24, 0x69, 0x45, 0xda, 0x95, 0x56, 0xf6, 0x60, 0xdc, 0xd9, 0x56, 0x24, - 0xca, 0xb3, 0xa2, 0x90, 0xd0, 0x8a, 0x1b, 0xf4, 0xa5, 0x95, 0xf7, 0x61, 0x53, 0xcd, 0xb2, 0xe2, - 0xa6, 0x00, 0xb6, 0x12, 0x20, 0x2d, 0xae, 0xf8, 0xf5, 0x16, 0xf5, 0x1b, 0x9f, 0x0d, 0x17, 0x60, - 0x5b, 0x74, 0x7e, 0x0e, 0x56, 0x5a, 0x92, 0xa6, 0x38, 0x37, 0x4d, 0xfb, 0xff, 0x11, 0xb4, 0x80, - 0x37, 0xd3, 0xb4, 0x9f, 0x9a, 0x41, 0xab, 0xfc, 0x9a, 0x06, 0xc5, 0x26, 0xd4, 0x93, 0x46, 0x4e, - 0xa4, 0xde, 0x6b, 0x6e, 0x3f, 0xd4, 0x5f, 0xc2, 0x5f, 0xeb, 0xcd, 0xe6, 0x23, 0x5d, 0x33, 0xf2, - 0x22, 0xbd, 0xfe, 0x95, 0x83, 0x8d, 0x7d, 0x3d, 0x61, 0x94, 0x44, 0x61, 0x73, 0x7b, 0x77, 0x6b, - 0xc3, 0xda, 0xb3, 0xb6, 0x77, 0x0f, 0xf4, 0x24, 0xf6, 0x6d, 0x3e, 0x6a, 0xde, 0x3f, 0xd0, 0x53, - 0x46, 0x56, 0x24, 0xb1, 0x2d, 0x6d, 0x08, 0x91, 0xd9, 0x3f, 0x80, 0xfe, 0x2d, 0x3d, 0x83, 0x56, - 0x0e, 0xb6, 0x77, 0x36, 0xf4, 0x2c, 0x22, 0x0f, 0xde, 0xdd, 0x7b, 0xb4, 0xa1, 0xe7, 0xf0, 0xe7, - 0x7d, 0xcb, 0xba, 0xff, 0x15, 0x3d, 0x8f, 0xa4, 0x9d, 0xfb, 0x7b, 0xba, 0xa0, 0xee, 0xfb, 0xeb, - 0xd0, 0x5d, 0x30, 0x8a, 0x22, 0xb7, 0xf9, 0xee, 0xee, 0x83, 0x83, 0xed, 0xe6, 0xae, 0x5e, 0xac, - 0xfc, 0x7a, 0x42, 0x88, 0x2d, 0x67, 0xff, 0x49, 0x77, 0x48, 0x55, 0xf1, 0x75, 0x21, 0xc6, 0xf0, - 0xbb, 0x45, 0xd2, 0xe3, 0xca, 0x2e, 0x8f, 0x2d, 0x14, 0x74, 0x8c, 0x57, 0x45, 0x91, 0xba, 0x3b, - 0x32, 0x14, 0x50, 0x41, 0x97, 0xb5, 0x0a, 0xd8, 0xc6, 0xd1, 0x21, 0x08, 0x59, 0xad, 0x53, 0x1d, - 0x97, 0x51, 0x20, 0xab, 0x75, 0xa8, 0xef, 0xe9, 0xb1, 0x35, 0xa6, 0xb0, 0x4e, 0xb5, 0x5b, 0xde, - 0xa2, 0x71, 0x65, 0xa0, 0x07, 0x91, 0xd3, 0x98, 0x52, 0x16, 0xa5, 0x69, 0x89, 0xba, 0xee, 0x2e, - 0xe1, 0x0f, 0x29, 0x0b, 0x9f, 0xb0, 0xd8, 0x14, 0x79, 0xaf, 0x1d, 0xc7, 0xa2, 0x56, 0x9e, 0x91, - 0x4e, 0x33, 0x12, 0xd4, 0xe4, 0x4d, 0x49, 0x02, 0xd8, 0x9b, 0x05, 0xf2, 0x46, 0x92, 0xa4, 0x3b, - 0x95, 0xeb, 0x62, 0x6e, 0xd7, 0x19, 0xc8, 0x2d, 0x44, 0xab, 0x54, 0x14, 0x5a, 0xbb, 0xac, 0x51, - 0x09, 0xa3, 0xb5, 0x2b, 0x37, 0x84, 0x50, 0xfa, 0x74, 0xa1, 0x1d, 0xca, 0x3e, 0xda, 0x88, 0xda, - 0x61, 0xe5, 0x4d, 0x91, 0xd9, 0x69, 0x3f, 0x3b, 0x68, 0x1f, 0xc3, 0x58, 0xa2, 0xd7, 0x1e, 0x4f, - 0x60, 0x6d, 0x50, 0x2a, 0xff, 0x0b, 0xff, 0x34, 0x3a, 0x71, 0xe5, 0xb1, 0x55, 0x4a, 0xe5, 0xa9, - 0x10, 0xcd, 0xde, 0xd1, 0x8e, 0x3d, 0x1e, 0xb7, 0x8f, 0x6d, 0x38, 0x2f, 0x64, 0x06, 0x60, 0xd4, - 0xc6, 0x6b, 0x0a, 0x2c, 0xe6, 0xaf, 0xfa, 0xab, 0xe0, 0xa3, 0x96, 0x76, 0x09, 0x62, 0x31, 0x14, - 0x3c, 0x48, 0x0e, 0x4e, 0xfb, 0x74, 0x59, 0x91, 0xb6, 0xf0, 0xe7, 0xe2, 0x35, 0x91, 0x91, 0x18, - 0xbc, 0x14, 0x19, 0xb4, 0xfb, 0x76, 0x59, 0x8e, 0x4b, 0xbf, 0x2b, 0xbf, 0xa4, 0x09, 0xb1, 0x6b, - 0x7f, 0x78, 0x8e, 0x31, 0x7d, 0x54, 0xcc, 0x98, 0x49, 0x39, 0xe6, 0x3b, 0x71, 0x63, 0xa2, 0xce, - 0x3a, 0x8e, 0x73, 0xd4, 0x92, 0xaf, 0x58, 0xde, 0xab, 0xe4, 0xb1, 0x85, 0xde, 0x5a, 0xe5, 0x7d, - 0x51, 0xdc, 0x1e, 0x0c, 0xec, 0x91, 0xeb, 0x13, 0x98, 0x38, 0x71, 0xc6, 0x13, 0xbe, 0xe0, 0xa1, - 0xdf, 0x46, 0x59, 0xa4, 0x86, 0xce, 0x68, 0x22, 0xe7, 0xd9, 0x48, 0xc1, 0x99, 0x66, 0xd9, 0xa2, - 0x16, 0xe3, 0x9a, 0xc8, 0x3f, 0x76, 0x80, 0xfe, 0x18, 0x27, 0x91, 0xa4, 0xda, 0xc2, 0x6f, 0xa8, - 0xfc, 0x82, 0x26, 0x8a, 0xcd, 0xc9, 0x89, 0x6f, 0x1c, 0x7c, 0x7f, 0x62, 0x3f, 0x27, 0xf7, 0xc0, - 0x77, 0xf8, 0x89, 0x57, 0x3b, 0x3f, 0xdd, 0xee, 0x9d, 0xca, 0x0b, 0x9f, 0xa2, 0x25, 0x1f, 0x8c, - 0x4b, 0x22, 0xf3, 0xa1, 0xdd, 0x3d, 0x3e, 0x99, 0x90, 0xcd, 0x84, 0xc5, 0x4f, 0x50, 0x26, 0xa4, - 0xbb, 0xe8, 0x6c, 0x39, 0x45, 0xeb, 0x75, 0xc9, 0x5f, 0x2f, 0x75, 0x0e, 0x96, 0x04, 0xdd, 0xc9, - 0xe5, 0x8e, 0xf4, 0x9f, 0x83, 0x7f, 0x89, 0xca, 0xff, 0x24, 0x45, 0x7e, 0xe7, 0xb9, 0xeb, 0x05, - 0x8c, 0xf9, 0xd8, 0x39, 0x1d, 0xc8, 0x39, 0xa6, 0x2d, 0xf9, 0xe0, 0xad, 0x5d, 0x42, 0x59, 0x3b, - 0x40, 0x3e, 0x3d, 0x75, 0x26, 0x36, 0xb9, 0x91, 0xb7, 0xe4, 0x03, 0xce, 0x62, 0x68, 0x4f, 0xc0, - 0x07, 0xac, 0xfc, 0xf0, 0xa7, 0xef, 0x57, 0xfa, 0x1c, 0x7e, 0xc1, 0xf9, 0x37, 0xe3, 0xe0, 0xaa, - 0x8c, 0xcb, 0x19, 0xba, 0x74, 0x52, 0xe0, 0xea, 0x6a, 0x59, 0x8c, 0x02, 0x99, 0xe4, 0x21, 0x9e, - 0xb7, 0xe4, 0x08, 0xc5, 0x30, 0x25, 0x30, 0x42, 0x0e, 0x80, 0xd4, 0x60, 0xac, 0x88, 0xdc, 0x61, - 0xf7, 0x89, 0x3d, 0x3e, 0x81, 0x17, 0x93, 0x05, 0xaf, 0xe6, 0xcd, 0x2b, 0x3e, 0xc7, 0x5b, 0x8b, - 0xa5, 0x07, 0x4e, 0xcf, 0x19, 0x59, 0x1e, 0x14, 0xf2, 0x6d, 0x7e, 0xec, 0xf4, 0x6d, 0x29, 0x96, - 0x1c, 0xa5, 0x89, 0xeb, 0xb3, 0x78, 0xfb, 0x00, 0x72, 0xc3, 0x81, 0x8b, 0x37, 0xae, 0x4a, 0x47, - 0x0f, 0xf1, 0x30, 0x58, 0x16, 0x54, 0xec, 0xa2, 0x43, 0x74, 0x38, 0x34, 0x16, 0xd1, 0xa1, 0xe3, - 0x0e, 0xe6, 0x78, 0x88, 0x76, 0x58, 0x29, 0x79, 0xcf, 0x8b, 0x6f, 0x41, 0x1c, 0x71, 0x0d, 0xfa, - 0x71, 0x44, 0xee, 0xdd, 0x3c, 0x6d, 0x2e, 0x19, 0x47, 0xe4, 0xc6, 0x7d, 0x4d, 0xa4, 0xc9, 0x6d, - 0x8c, 0xb9, 0xd6, 0x06, 0x86, 0x78, 0x88, 0xb9, 0x5b, 0xd6, 0xc6, 0xc6, 0x2e, 0xc4, 0x78, 0x8c, - 0xf6, 0x8f, 0xde, 0xdd, 0xd0, 0x13, 0xca, 0xeb, 0xff, 0x0d, 0x4d, 0x24, 0x37, 0x9e, 0xd1, 0x2b, - 0xc6, 0x69, 0xb8, 0xdb, 0x03, 0x7f, 0x9b, 0xab, 0x22, 0xd5, 0x77, 0x46, 0xb6, 0x71, 0x61, 0xc6, - 0x2c, 0xcb, 0xc7, 0xf4, 0x3a, 0x95, 0x7b, 0x51, 0xb0, 0x62, 0x11, 0xde, 0x7c, 0x43, 0xa4, 0x26, - 0x36, 0xd8, 0x9c, 0xc9, 0x3b, 0x91, 0x03, 0x20, 0xc0, 0x84, 0x98, 0x04, 0x9b, 0xf4, 0x10, 0x5e, - 0xc9, 0x4c, 0x68, 0x97, 0xa6, 0xc7, 0x90, 0xca, 0x7b, 0x42, 0x7f, 0xe0, 0xf4, 0x87, 0x3d, 0xfb, - 0x19, 0x8c, 0x64, 0x0f, 0xc6, 0x90, 0xff, 0x50, 0x84, 0x9d, 0xee, 0x88, 0xb6, 0x24, 0xdd, 0x7e, - 0xd2, 0x03, 0x6e, 0x91, 0xb1, 0x0d, 0x5b, 0xed, 0x88, 0xa3, 0x0f, 0x3f, 0x21, 0x7a, 0x72, 0xd2, - 0x1d, 0xe1, 0x6e, 0xc4, 0xa0, 0x29, 0x1f, 0x2a, 0x5b, 0xa2, 0xc4, 0xa7, 0xe6, 0x31, 0x0f, 0x5c, - 0xb9, 0x23, 0x8a, 0x6e, 0x13, 0x5d, 0x05, 0xc3, 0xc2, 0xbd, 0xbf, 0x61, 0x35, 0x61, 0x35, 0x61, - 0x59, 0x9b, 0xbb, 0x1b, 0xb0, 0x96, 0xf0, 0xe3, 0xe0, 0xcb, 0xcd, 0xc0, 0x52, 0x5e, 0x13, 0x45, - 0xcf, 0xf7, 0x7d, 0x7b, 0x42, 0x3d, 0x18, 0x5d, 0xb3, 0x8d, 0x44, 0x4e, 0xab, 0x64, 0x45, 0x7a, - 0xa3, 0x3f, 0x9c, 0x3c, 0xaf, 0xfc, 0xac, 0x28, 0x30, 0xe8, 0x51, 0x17, 0x9c, 0x5d, 0x13, 0xd9, - 0x3e, 0xcf, 0x57, 0xa3, 0x03, 0x8c, 0xaa, 0x29, 0x1f, 0xe7, 0xfe, 0xb6, 0x5c, 0xf4, 0x62, 0x4d, - 0x64, 0x95, 0xc0, 0xc4, 0xfb, 0x33, 0xa1, 0xee, 0x4f, 0xb9, 0x93, 0x93, 0xca, 0x4e, 0xae, 0xec, - 0x88, 0xac, 0x4c, 0x27, 0x63, 0x4a, 0x91, 0xb2, 0xf8, 0x91, 0x62, 0x92, 0x6f, 0xbe, 0x20, 0xdb, - 0xe4, 0x7d, 0x2c, 0xc8, 0x8d, 0x04, 0xcb, 0x08, 0x19, 0x87, 0x04, 0x35, 0x49, 0xb9, 0xfd, 0x4e, - 0x5a, 0xe4, 0xdc, 0x95, 0x02, 0x89, 0x67, 0x64, 0xc5, 0x41, 0xa6, 0xdc, 0x8a, 0x38, 0x4d, 0x35, - 0x06, 0x74, 0x66, 0xb9, 0xaa, 0xe0, 0x50, 0x89, 0xe5, 0x6f, 0x46, 0x56, 0x11, 0x5e, 0x27, 0x24, - 0xea, 0xa4, 0x57, 0xeb, 0x66, 0x64, 0x9d, 0x60, 0xdc, 0x14, 0x79, 0xaf, 0x32, 0xa0, 0xe0, 0xc6, - 0x85, 0x6d, 0xce, 0x2d, 0x05, 0x14, 0x04, 0x18, 0x48, 0xfb, 0x55, 0x6c, 0xae, 0xe3, 0xe7, 0xfa, - 0x9c, 0x7b, 0xbe, 0xa7, 0x0b, 0x69, 0xb7, 0x64, 0xcd, 0xf2, 0x89, 0xde, 0x07, 0x80, 0x85, 0xac, - 0x52, 0x9f, 0x66, 0xf9, 0xd4, 0x0e, 0x80, 0x2c, 0x9f, 0xd3, 0x69, 0xeb, 0xfb, 0xc5, 0x68, 0x46, - 0x9e, 0xcd, 0x61, 0x39, 0x73, 0xee, 0x69, 0x9c, 0xf6, 0xa5, 0x5f, 0x79, 0x66, 0xf9, 0x04, 0x6e, - 0xbc, 0x89, 0x10, 0xb9, 0xfc, 0x10, 0x02, 0x66, 0x97, 0x99, 0x59, 0x2e, 0x33, 0x61, 0x52, 0x59, - 0xae, 0x2e, 0x29, 0x24, 0x28, 0x25, 0x65, 0x46, 0x96, 0x94, 0xc6, 0x0d, 0x32, 0x27, 0x27, 0x55, - 0xf4, 0xcb, 0xc7, 0x2c, 0x1f, 0xd9, 0xfd, 0x7e, 0x3a, 0xff, 0x78, 0xa5, 0x62, 0x96, 0x0f, 0xe5, - 0xc6, 0x2a, 0xbe, 0x2f, 0xd4, 0x37, 0x9c, 0x7d, 0x30, 0x08, 0x96, 0x7d, 0xe1, 0xb9, 0xef, 0x54, - 0xc6, 0xc0, 0x86, 0x8c, 0x20, 0xf0, 0x2a, 0x69, 0x37, 0x2c, 0x22, 0x6f, 0xaf, 0x3b, 0xe8, 0xc0, - 0xa1, 0x08, 0x57, 0x22, 0x09, 0x3f, 0xa1, 0x0f, 0x5b, 0xa4, 0x06, 0x76, 0xb1, 0x4f, 0xa7, 0xbe, - 0xd4, 0xdb, 0xb2, 0x13, 0x9b, 0x20, 0x57, 0xa6, 0xa1, 0xb3, 0x3d, 0x80, 0xd3, 0x0d, 0xf1, 0x06, - 0xed, 0x81, 0x95, 0xea, 0x40, 0x83, 0xf1, 0x86, 0x48, 0x8e, 0x4f, 0x0f, 0xcb, 0x46, 0xf8, 0x5b, - 0xc1, 0xfe, 0xe9, 0xa1, 0xeb, 0x8a, 0x85, 0x08, 0xb0, 0x9f, 0x03, 0x81, 0xb6, 0x7e, 0xc6, 0x1e, - 0x39, 0xe5, 0x0b, 0xb4, 0x84, 0x2f, 0x59, 0x59, 0x68, 0x79, 0x1f, 0x1a, 0xce, 0x19, 0xfc, 0xe0, - 0xa4, 0x54, 0x50, 0xec, 0xc2, 0x71, 0x57, 0x1b, 0xc8, 0xb4, 0xdb, 0xd0, 0xd6, 0x2c, 0x6d, 0x50, - 0x39, 0x10, 0x45, 0xf7, 0x54, 0x4e, 0xf3, 0x35, 0x71, 0x27, 0x81, 0x59, 0xda, 0x9f, 0xf3, 0xe6, - 0x35, 0xdf, 0x3d, 0x15, 0xc6, 0xe9, 0x42, 0x42, 0x2b, 0x7a, 0xc8, 0x15, 0xad, 0xf2, 0x43, 0x48, - 0xf8, 0x3b, 0x10, 0x1d, 0xbd, 0x1b, 0x48, 0xd8, 0xa0, 0x87, 0xb0, 0x33, 0xc6, 0x64, 0x36, 0x67, - 0xc9, 0x07, 0xe3, 0x35, 0x51, 0xa4, 0x1f, 0x6e, 0x35, 0x95, 0xf0, 0x8a, 0xf5, 0x02, 0xb5, 0x73, - 0x09, 0x05, 0x3b, 0x1e, 0x5e, 0xe2, 0x98, 0x23, 0x19, 0xfd, 0x36, 0x3e, 0x23, 0x0a, 0xf8, 0xd7, - 0x65, 0xa6, 0xbc, 0xd3, 0x9f, 0xc0, 0x66, 0x26, 0xbe, 0x21, 0xe6, 0xe8, 0xed, 0x7b, 0xb0, 0xac, - 0x57, 0x98, 0x17, 0x65, 0x07, 0x03, 0xcb, 0x22, 0x2b, 0x43, 0xc1, 0x98, 0xbe, 0xff, 0xe4, 0x2d, - 0xf7, 0x11, 0xc3, 0x2b, 0x1d, 0xab, 0x65, 0x8e, 0xce, 0x5a, 0xfc, 0x54, 0xb9, 0x2f, 0x72, 0x94, - 0xa5, 0xe0, 0x4c, 0x68, 0x54, 0x84, 0x76, 0x5c, 0xb6, 0x29, 0x47, 0x5e, 0x54, 0xce, 0xcc, 0xdc, - 0xbd, 0xb4, 0x65, 0x69, 0xc7, 0x8b, 0x0b, 0x42, 0xdb, 0xc2, 0x43, 0xec, 0x33, 0x0e, 0xd3, 0xda, - 0xb3, 0x4a, 0x93, 0x4d, 0xc0, 0x11, 0x2f, 0xce, 0x04, 0x74, 0x4b, 0x13, 0xaf, 0x4c, 0x99, 0xc0, - 0xa7, 0xe7, 0xfc, 0x31, 0x4c, 0x7b, 0x8e, 0x87, 0x66, 0xda, 0x9e, 0xe0, 0xf8, 0x9e, 0x03, 0xf3, - 0xc3, 0xee, 0x0e, 0x1d, 0x6e, 0xe0, 0x50, 0xdc, 0xa9, 0x7c, 0x9a, 0x12, 0xf3, 0x1c, 0x44, 0xbf, - 0xdc, 0x9d, 0x9c, 0xec, 0xb4, 0x87, 0xc6, 0x23, 0x51, 0xc4, 0xf8, 0xd9, 0xea, 0xb7, 0x87, 0x43, - 0xdc, 0xa8, 0x1a, 0x1d, 0x2a, 0x6e, 0x4f, 0x05, 0x65, 0xc6, 0x2f, 0xed, 0x02, 0x78, 0x47, 0x62, - 0x37, 0x06, 0x93, 0xd1, 0x73, 0xab, 0x30, 0xf0, 0x5b, 0x8c, 0x6d, 0x51, 0xe8, 0x8f, 0x8f, 0x3d, - 0x63, 0x09, 0x32, 0x76, 0x2b, 0xd2, 0xd8, 0xce, 0xf8, 0x38, 0x60, 0x4b, 0xf4, 0xbd, 0x06, 0x74, - 0x0c, 0x23, 0xaf, 0x67, 0x2b, 0x79, 0x86, 0x63, 0x18, 0x24, 0x82, 0x8e, 0x1d, 0xfa, 0x2d, 0x50, - 0xf7, 0x0a, 0xdc, 0x48, 0x13, 0x07, 0x2b, 0x0e, 0xd2, 0x4a, 0xc1, 0x7c, 0x3d, 0xd2, 0x16, 0xc4, - 0xa4, 0x03, 0x07, 0xfe, 0x23, 0x0d, 0xe1, 0x16, 0xa4, 0xc7, 0xc5, 0x2f, 0x08, 0x3d, 0x3c, 0x7f, - 0xf5, 0x20, 0x9b, 0x9e, 0x71, 0x90, 0xcd, 0xf3, 0x41, 0xb6, 0x91, 0xb8, 0xab, 0x2d, 0xbe, 0x27, - 0x4a, 0xa1, 0x29, 0xab, 0x74, 0x43, 0xd2, 0xdf, 0x56, 0xe9, 0x05, 0xf3, 0xb2, 0xf2, 0x29, 0x56, - 0x7d, 0xb5, 0xaa, 0x5d, 0xf0, 0x2b, 0x3c, 0x7d, 0xd5, 0x70, 0x2e, 0xe6, 0x80, 0x4d, 0xfc, 0x77, - 0xc4, 0x5c, 0x60, 0xca, 0x2a, 0x39, 0x7f, 0xc6, 0xa4, 0x2a, 0x3f, 0x9f, 0x16, 0xe9, 0xe6, 0xc0, - 0x76, 0x3a, 0xc6, 0xe5, 0x60, 0x46, 0xfc, 0xe2, 0x4b, 0x6e, 0x36, 0xbc, 0x12, 0xca, 0x86, 0xd0, - 0xe3, 0xe6, 0xc2, 0x2b, 0xa1, 0x5c, 0xe8, 0x76, 0x41, 0xc0, 0xbe, 0x3e, 0x95, 0x09, 0xa1, 0xd3, - 0x4f, 0x83, 0xd7, 0xa7, 0xd2, 0xa0, 0xdf, 0x0d, 0xec, 0xab, 0xe1, 0x1c, 0x08, 0xbd, 0x5e, 0xfe, - 0xbb, 0x1a, 0xce, 0x7f, 0x5e, 0x27, 0x30, 0xaf, 0x84, 0x72, 0x1f, 0xb9, 0x24, 0xb3, 0xde, 0xd5, - 0x70, 0xd6, 0x23, 0x1e, 0xe7, 0xbb, 0xab, 0xe1, 0x7c, 0x47, 0x9d, 0x9c, 0xdf, 0xae, 0x84, 0xf2, - 0x1b, 0x19, 0x95, 0x89, 0xed, 0x6a, 0x38, 0xb1, 0x49, 0x9e, 0xe2, 0xa9, 0x9a, 0xd5, 0xbc, 0x4e, - 0xf0, 0xd4, 0x0c, 0xa5, 0xb4, 0xe8, 0x73, 0x3d, 0xbd, 0x0b, 0x0a, 0xef, 0x75, 0x5c, 0x36, 0xf7, - 0xc8, 0x59, 0x8a, 0xf9, 0x5a, 0x4d, 0xab, 0xe9, 0x1e, 0xb9, 0x4c, 0x91, 0xed, 0x70, 0xdd, 0xa8, - 0x53, 0x8c, 0x52, 0x64, 0x49, 0x2f, 0x7f, 0x69, 0xb3, 0x45, 0xb1, 0x8a, 0xe6, 0x25, 0x4f, 0xef, - 0xb7, 0x20, 0x18, 0xb5, 0x1e, 0xb5, 0x47, 0xc7, 0x00, 0x6c, 0x41, 0x25, 0xee, 0xd5, 0xde, 0xf8, - 0xfe, 0x0b, 0x1d, 0xee, 0xc1, 0x12, 0xfd, 0x92, 0x2b, 0xae, 0x23, 0xea, 0xd5, 0x58, 0x5e, 0x8b, - 0x97, 0x71, 0xd1, 0xa4, 0x31, 0x8a, 0x7a, 0x0b, 0x1c, 0xf5, 0xd6, 0xe1, 0x74, 0x79, 0x3a, 0x80, - 0x13, 0xf1, 0x7a, 0x5e, 0x64, 0x27, 0xce, 0xa8, 0xdf, 0x9e, 0x38, 0x95, 0x1f, 0x41, 0x45, 0x0d, - 0x27, 0xe6, 0x3e, 0x74, 0x3c, 0x85, 0xc2, 0x11, 0xd2, 0x5e, 0xbf, 0xfd, 0x04, 0xe2, 0x87, 0xdd, - 0x7a, 0x3c, 0x72, 0xf7, 0x41, 0x1e, 0x9b, 0x76, 0xec, 0x07, 0x20, 0xf1, 0xb2, 0x7b, 0x18, 0x27, - 0xed, 0x90, 0x24, 0xf9, 0x70, 0x7e, 0x91, 0x8f, 0x97, 0x19, 0x7e, 0x87, 0xee, 0x01, 0x53, 0x56, - 0x0c, 0x59, 0x7e, 0x7b, 0xf4, 0x84, 0x92, 0x9f, 0xd8, 0xfd, 0x61, 0xeb, 0x31, 0x49, 0x05, 0xe5, - 0x90, 0xc6, 0xe7, 0x07, 0xb0, 0x8b, 0x93, 0x90, 0x1a, 0x49, 0x24, 0x67, 0xbc, 0x17, 0xc4, 0x41, - 0x1e, 0x4c, 0x42, 0xec, 0x23, 0xd9, 0x14, 0xcc, 0x05, 0xe5, 0x44, 0x20, 0x93, 0x10, 0xc2, 0xa0, - 0xdf, 0x9b, 0xf7, 0x9d, 0x92, 0x48, 0x6e, 0x36, 0x9b, 0x98, 0xe5, 0xe1, 0x4f, 0x55, 0xd7, 0x1a, - 0x9f, 0x13, 0xb9, 0xe3, 0x91, 0x6d, 0x63, 0x78, 0x98, 0x5d, 0x5d, 0x7c, 0x40, 0x59, 0xcd, 0x03, - 0x35, 0xe0, 0x68, 0xfc, 0x58, 0xd6, 0x17, 0x46, 0x44, 0xd5, 0x59, 0xfe, 0x5d, 0x79, 0x17, 0xb1, - 0xe8, 0x77, 0x87, 0x2b, 0x12, 0xcb, 0xb5, 0xd1, 0xd8, 0x83, 0x82, 0xaf, 0x75, 0x96, 0xc1, 0x8f, - 0x64, 0x76, 0x89, 0x33, 0x98, 0x1b, 0x71, 0x53, 0x63, 0x43, 0x2c, 0x0c, 0x1c, 0xf7, 0xfe, 0xbf, - 0x75, 0x24, 0xf7, 0xd8, 0x95, 0xe9, 0x43, 0x9b, 0x6b, 0xdc, 0x96, 0xdf, 0xdc, 0x06, 0x0e, 0x77, - 0xc8, 0x5d, 0xd9, 0x78, 0x20, 0x74, 0xc5, 0x0c, 0x15, 0x99, 0x71, 0x56, 0x3a, 0xf2, 0x23, 0x9f, - 0x67, 0x85, 0xf6, 0x7d, 0xc8, 0x88, 0xdc, 0x99, 0x31, 0x46, 0x8e, 0xe5, 0x17, 0x53, 0xcf, 0x08, - 0x85, 0xba, 0x69, 0x23, 0x18, 0x6b, 0xa2, 0x8d, 0x9c, 0xc8, 0x8f, 0xa9, 0xaa, 0x91, 0xd5, 0x7a, - 0x68, 0x55, 0x4e, 0xcf, 0x74, 0xa5, 0x2b, 0xbf, 0x85, 0x7a, 0x56, 0x64, 0x00, 0x9c, 0x61, 0x26, - 0xde, 0x99, 0x0f, 0xe4, 0x67, 0xd2, 0x80, 0x99, 0x29, 0x6f, 0xc6, 0x67, 0x7a, 0xf3, 0x44, 0x7e, - 0x93, 0xf4, 0xcc, 0xec, 0xcf, 0xf2, 0x66, 0x7c, 0xa6, 0x37, 0x3d, 0xf9, 0xb5, 0x32, 0x60, 0x06, - 0xbc, 0xd9, 0x12, 0x86, 0xfa, 0xaa, 0x39, 0x4f, 0xc4, 0xd8, 0xe9, 0xcb, 0x6f, 0xd0, 0xfe, 0xcb, - 0x96, 0x94, 0x59, 0x86, 0xe2, 0x1d, 0x1a, 0xc8, 0xcf, 0xd3, 0x41, 0x43, 0xe0, 0xd1, 0xb6, 0xb8, - 0xa0, 0x4e, 0xec, 0x1c, 0x2e, 0x39, 0x60, 0xa9, 0x64, 0x2d, 0xf8, 0x53, 0x63, 0xce, 0x4c, 0x53, - 0xf1, 0x4e, 0x0d, 0xc1, 0x94, 0x3e, 0x65, 0x0a, 0xbc, 0xba, 0x2f, 0x4a, 0x8a, 0xa9, 0x43, 0xca, - 0xd0, 0xd1, 0x66, 0x9e, 0xca, 0xff, 0x4f, 0xc0, 0x33, 0x83, 0x19, 0x3d, 0xfc, 0xc6, 0x38, 0xc7, - 0x45, 0x1b, 0x19, 0xc9, 0x8f, 0xdc, 0xbe, 0x2f, 0xc4, 0x08, 0x6d, 0x09, 0xaa, 0xb4, 0xe3, 0xac, - 0x8c, 0xe5, 0xe7, 0x6f, 0xdf, 0x15, 0x24, 0x34, 0xba, 0x81, 0xe9, 0xd8, 0x98, 0xe4, 0x62, 0x6c, - 0x4c, 0x28, 0x22, 0xbf, 0x1e, 0x09, 0x58, 0x52, 0xaf, 0x42, 0x94, 0x69, 0xe3, 0x23, 0xbc, 0x84, - 0xf9, 0xf3, 0x07, 0xa4, 0x8f, 0x34, 0x59, 0x17, 0xd7, 0x96, 0xb0, 0x74, 0xb6, 0xe6, 0x8e, 0x02, - 0x71, 0x69, 0x43, 0xcc, 0x9d, 0x3b, 0x28, 0x7d, 0xac, 0xc9, 0xea, 0x12, 0x2d, 0x59, 0xc5, 0xa3, - 0x60, 0x64, 0x9a, 0x3b, 0x77, 0x58, 0xfa, 0x44, 0x93, 0x57, 0x11, 0x75, 0xd3, 0x33, 0xe2, 0x46, - 0xa6, 0xb9, 0x73, 0x87, 0xa5, 0xaf, 0xca, 0xda, 0x31, 0x51, 0xaf, 0xa9, 0x46, 0x28, 0x16, 0xcc, - 0x9f, 0x3f, 0x2c, 0x7d, 0x4d, 0xa3, 0x6b, 0x89, 0x44, 0xbd, 0xee, 0xad, 0x8b, 0x17, 0x99, 0xe6, - 0xcf, 0x1f, 0x96, 0xbe, 0xae, 0xd1, 0xe5, 0x45, 0xa2, 0xbe, 0x12, 0x30, 0x13, 0xf4, 0xe6, 0xec, - 0xb0, 0xf4, 0x0d, 0x8d, 0xee, 0x13, 0x12, 0xf5, 0x55, 0xcf, 0xcc, 0xfe, 0x94, 0x37, 0x67, 0x87, - 0xa5, 0x6f, 0xd2, 0x29, 0x1e, 0xcc, 0xac, 0x05, 0xcc, 0x50, 0x64, 0x2a, 0xbd, 0x40, 0x58, 0xfa, - 0x96, 0x46, 0xd7, 0x3e, 0x89, 0xfa, 0x5d, 0xcb, 0x1d, 0xdd, 0x8f, 0x4c, 0xa5, 0x17, 0x08, 0x4b, - 0x9f, 0x6a, 0x74, 0x3b, 0x94, 0xa8, 0xdf, 0x0b, 0x1a, 0xa2, 0xc8, 0xa4, 0xbf, 0x48, 0x58, 0xfa, - 0x36, 0x5a, 0x2a, 0x35, 0x12, 0x2b, 0xcb, 0x96, 0xeb, 0x80, 0x12, 0x99, 0xf4, 0x17, 0x09, 0x4b, - 0xdf, 0x41, 0x53, 0x3a, 0x98, 0xaa, 0x86, 0x4c, 0x81, 0x57, 0x0f, 0x44, 0xf1, 0xbc, 0x61, 0xe9, - 0xbb, 0xea, 0xad, 0x5b, 0xe1, 0x48, 0x89, 0x4d, 0x7b, 0xca, 0x3b, 0x3b, 0x33, 0x30, 0x7d, 0x8f, - 0x6a, 0x9c, 0xc6, 0xdc, 0x17, 0xe5, 0xcd, 0x94, 0x24, 0xf8, 0xaf, 0x4f, 0x86, 0xa9, 0x1d, 0x7f, - 0x7f, 0x9c, 0x19, 0xa3, 0xbe, 0xaf, 0xd1, 0xf5, 0x55, 0x91, 0x0d, 0x12, 0xde, 0xdb, 0x29, 0x32, - 0x60, 0x7d, 0xe0, 0xcf, 0xf2, 0xac, 0x68, 0xf5, 0x03, 0xed, 0x45, 0xc2, 0x55, 0x03, 0x6f, 0x6b, - 0xbd, 0xc5, 0xa0, 0x96, 0xcf, 0x8b, 0xd4, 0x33, 0x73, 0xb9, 0xaa, 0x1e, 0xc9, 0xd4, 0x5b, 0x5b, - 0x19, 0xa4, 0x0a, 0x66, 0x49, 0xb9, 0xd8, 0xc6, 0x6b, 0x5b, 0x8b, 0x58, 0xcc, 0x36, 0x23, 0xd9, - 0x1f, 0xc7, 0xb0, 0x4d, 0x66, 0xd7, 0x22, 0xd9, 0x9f, 0xc4, 0xb0, 0x6b, 0xcc, 0xae, 0x47, 0xb2, - 0xbf, 0x1a, 0xc3, 0xae, 0x33, 0x7b, 0x25, 0x92, 0xfd, 0xb5, 0x18, 0xf6, 0x0a, 0xb3, 0x57, 0x23, - 0xd9, 0x5f, 0x8f, 0x61, 0xaf, 0x32, 0x7b, 0x2d, 0x92, 0xfd, 0x8d, 0x18, 0xf6, 0x1a, 0xb3, 0xef, - 0x46, 0xb2, 0xbf, 0x19, 0xc3, 0xbe, 0xcb, 0xec, 0x7b, 0x91, 0xec, 0x6f, 0xc5, 0xb0, 0xef, 0x49, - 0x76, 0x75, 0x39, 0x92, 0xfd, 0x69, 0x34, 0xbb, 0xba, 0xcc, 0xec, 0x68, 0xad, 0x7d, 0x3b, 0x86, - 0xcd, 0x5a, 0xab, 0x46, 0x6b, 0xed, 0x3b, 0x31, 0x6c, 0xd6, 0x5a, 0x35, 0x5a, 0x6b, 0xdf, 0x8d, - 0x61, 0xb3, 0xd6, 0xaa, 0xd1, 0x5a, 0xfb, 0x5e, 0x0c, 0x9b, 0xb5, 0x56, 0x8d, 0xd6, 0xda, 0xf7, - 0x63, 0xd8, 0xac, 0xb5, 0x6a, 0xb4, 0xd6, 0x7e, 0x10, 0xc3, 0x66, 0xad, 0x55, 0xa3, 0xb5, 0xf6, - 0x7b, 0x31, 0x6c, 0xd6, 0x5a, 0x35, 0x5a, 0x6b, 0xbf, 0x1f, 0xc3, 0x66, 0xad, 0x55, 0xa3, 0xb5, - 0xf6, 0x07, 0x31, 0x6c, 0xd6, 0x9a, 0x19, 0xad, 0xb5, 0x3f, 0x8c, 0x66, 0x9b, 0xac, 0x35, 0x33, - 0x5a, 0x6b, 0x7f, 0x14, 0xc3, 0x66, 0xad, 0x99, 0xd1, 0x5a, 0xfb, 0xe3, 0x18, 0x36, 0x6b, 0xcd, - 0x8c, 0xd6, 0xda, 0x0f, 0x63, 0xd8, 0xac, 0x35, 0x33, 0x5a, 0x6b, 0x7f, 0x12, 0xc3, 0x66, 0xad, - 0x99, 0xd1, 0x5a, 0xfb, 0xd3, 0x18, 0x36, 0x6b, 0xcd, 0x8c, 0xd6, 0xda, 0x9f, 0xc5, 0xb0, 0x59, - 0x6b, 0x66, 0xb4, 0xd6, 0xfe, 0x3c, 0x86, 0xcd, 0x5a, 0x33, 0xa3, 0xb5, 0xf6, 0x17, 0x31, 0x6c, - 0xd6, 0x9a, 0x19, 0xad, 0xb5, 0xbf, 0x8c, 0x61, 0xb3, 0xd6, 0x6a, 0xd1, 0x5a, 0xfb, 0xab, 0x68, - 0x76, 0x8d, 0xb5, 0x56, 0x8b, 0xd6, 0xda, 0x5f, 0xc7, 0xb0, 0x59, 0x6b, 0xb5, 0x68, 0xad, 0xfd, - 0x4d, 0x0c, 0x9b, 0xb5, 0x56, 0x8b, 0xd6, 0xda, 0xdf, 0xc6, 0xb0, 0x59, 0x6b, 0xb5, 0x68, 0xad, - 0xfd, 0x28, 0x86, 0xcd, 0x5a, 0xab, 0x45, 0x6b, 0xed, 0xef, 0x62, 0xd8, 0xac, 0xb5, 0x5a, 0xb4, - 0xd6, 0xfe, 0x3e, 0x86, 0xcd, 0x5a, 0xab, 0x45, 0x6b, 0xed, 0x1f, 0x62, 0xd8, 0xac, 0xb5, 0x5a, - 0xb4, 0xd6, 0xfe, 0x31, 0x86, 0xcd, 0x5a, 0xab, 0x45, 0x6b, 0xed, 0x9f, 0x62, 0xd8, 0xac, 0xb5, - 0x7a, 0xb4, 0xd6, 0xfe, 0x39, 0x9a, 0x5d, 0x67, 0xad, 0xd5, 0xa3, 0xb5, 0xf6, 0x2f, 0x31, 0x6c, - 0xd6, 0x5a, 0x3d, 0x5a, 0x6b, 0xff, 0x1a, 0xc3, 0x66, 0xad, 0xd5, 0xa3, 0xb5, 0xf6, 0x6f, 0x31, - 0x6c, 0xd6, 0x5a, 0x3d, 0x5a, 0x6b, 0xff, 0x1e, 0xc3, 0x66, 0xad, 0xd5, 0xa3, 0xb5, 0xf6, 0x1f, - 0x31, 0x6c, 0xd6, 0x5a, 0x3d, 0x5a, 0x6b, 0x3f, 0x8e, 0x61, 0xb3, 0xd6, 0xea, 0xd1, 0x5a, 0xfb, - 0x49, 0x0c, 0x9b, 0xb5, 0x56, 0x8f, 0xd6, 0xda, 0x7f, 0xc6, 0xb0, 0x59, 0x6b, 0xf5, 0x68, 0xad, - 0xfd, 0x57, 0x0c, 0x9b, 0xb5, 0xb6, 0x12, 0xad, 0xb5, 0xff, 0x8e, 0x66, 0xaf, 0x2c, 0xff, 0x5f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x53, 0x6a, 0x15, 0xef, 0x13, 0x38, 0x00, 0x00, + // 4453 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xc9, 0x77, 0xdb, 0x48, + 0x7a, 0x37, 0xc0, 0xfd, 0x23, 0x25, 0x42, 0x65, 0xb5, 0x9b, 0x96, 0xbc, 0xc0, 0x9c, 0xe9, 0x6e, + 0x7a, 0xd3, 0x48, 0x20, 0x44, 0xdb, 0x74, 0xa7, 0xdf, 0xf3, 0x42, 0xca, 0x7a, 0x63, 0x89, 0x0a, + 0xa4, 0xee, 0x7e, 0xd3, 0x39, 0xf0, 0x51, 0x22, 0x44, 0xb3, 0x4d, 0x02, 0x34, 0x09, 0xc5, 0x52, + 0x72, 0xe9, 0x4b, 0x72, 0xcd, 0x76, 0xc9, 0x35, 0xa7, 0x9c, 0x92, 0xbc, 0x97, 0x7f, 0x22, 0xe9, + 0xee, 0x59, 0x7b, 0xd6, 0xac, 0x93, 0x7d, 0x99, 0xec, 0xdb, 0x4c, 0x92, 0x4b, 0xcf, 0xab, 0xaf, + 0x0a, 0x40, 0x01, 0x24, 0x20, 0xf9, 0x24, 0x56, 0xd5, 0xef, 0xf7, 0xd5, 0xf6, 0xab, 0xef, 0xab, + 0xaf, 0x20, 0x00, 0xc7, 0x9c, 0x38, 0x2b, 0xa3, 0xb1, 0xed, 0xd8, 0x24, 0x4b, 0x7f, 0x77, 0x3b, + 0x4e, 0xa7, 0x7c, 0x1d, 0xd2, 0x1b, 0x76, 0xc3, 0x3a, 0x1a, 0x92, 0xab, 0x90, 0x38, 0xb4, 0xed, + 0x92, 0xa4, 0xca, 0x95, 0x79, 0x6d, 0x6e, 0xc5, 0x45, 0xac, 0x34, 0x5b, 0x2d, 0x83, 0xb6, 0x94, + 0xef, 0x40, 0x7e, 0xc3, 0xde, 0x33, 0x27, 0x4e, 0xb3, 0x6f, 0x0e, 0xba, 0x64, 0x11, 0x52, 0x4f, + 0x3b, 0xfb, 0xe6, 0x00, 0x19, 0x39, 0x83, 0x15, 0x08, 0x81, 0xe4, 0xde, 0xc9, 0xc8, 0x2c, 0xc9, + 0x58, 0x89, 0xbf, 0xcb, 0xbf, 0x72, 0x85, 0x76, 0x42, 0x99, 0xe4, 0x3a, 0x24, 0xbf, 0xdc, 0xb7, + 0xba, 0xbc, 0x97, 0xd7, 0xfc, 0x5e, 0x58, 0xfb, 0xca, 0x97, 0x37, 0xb7, 0x1f, 0x1b, 0x08, 0xa1, + 0xf6, 0xf7, 0x3a, 0xfb, 0x03, 0x6a, 0x4a, 0xa2, 0xf6, 0xb1, 0x40, 0x6b, 0x77, 0x3a, 0xe3, 0xce, + 0xb0, 0x94, 0x50, 0xa5, 0x4a, 0xca, 0x60, 0x05, 0x72, 0x1f, 0xe6, 0x0c, 0xf3, 0xc5, 0x51, 0x7f, + 0x6c, 0x76, 0x71, 0x70, 0xa5, 0xa4, 0x2a, 0x57, 0xf2, 0xd3, 0xf6, 0xb1, 0xd1, 0x08, 0x62, 0x19, + 0x79, 0x64, 0x76, 0x1c, 0x97, 0x9c, 0x52, 0x13, 0xb1, 0x64, 0x01, 0x4b, 0xc9, 0xad, 0x91, 0xd3, + 0xb7, 0xad, 0xce, 0x80, 0x91, 0xd3, 0xaa, 0x14, 0x43, 0x0e, 0x60, 0xc9, 0x9b, 0x50, 0x6c, 0xb6, + 0x1f, 0xda, 0xf6, 0xa0, 0x3d, 0xe6, 0x23, 0x2a, 0x81, 0x2a, 0x57, 0xb2, 0xc6, 0x5c, 0x93, 0xd6, + 0xba, 0xc3, 0x24, 0x15, 0x50, 0x9a, 0xed, 0x4d, 0xcb, 0xa9, 0x6a, 0x3e, 0x30, 0xaf, 0xca, 0x95, + 0x94, 0x31, 0xdf, 0xc4, 0xea, 0x29, 0x64, 0x4d, 0xf7, 0x91, 0x05, 0x55, 0xae, 0x24, 0x18, 0xb2, + 0xa6, 0x7b, 0xc8, 0x5b, 0x40, 0x9a, 0xed, 0x66, 0xff, 0xd8, 0xec, 0x8a, 0x56, 0xe7, 0x54, 0xb9, + 0x92, 0x31, 0x94, 0x26, 0x6f, 0x98, 0x81, 0x16, 0x2d, 0xcf, 0xab, 0x72, 0x25, 0xed, 0xa2, 0x05, + 0xdb, 0x37, 0x60, 0xa1, 0xd9, 0x7e, 0xb7, 0x1f, 0x1c, 0x70, 0x51, 0x95, 0x2b, 0x73, 0x46, 0xb1, + 0xc9, 0xea, 0xa7, 0xb1, 0xa2, 0x61, 0x45, 0x95, 0x2b, 0x49, 0x8e, 0x15, 0xec, 0xe2, 0xec, 0x9a, + 0x03, 0xbb, 0xe3, 0xf8, 0xd0, 0x05, 0x55, 0xae, 0xc8, 0xc6, 0x7c, 0x13, 0xab, 0x83, 0x56, 0x1f, + 0xdb, 0x47, 0xfb, 0x03, 0xd3, 0x87, 0x12, 0x55, 0xae, 0x48, 0x46, 0xb1, 0xc9, 0xea, 0x83, 0xd8, + 0x5d, 0x67, 0xdc, 0xb7, 0x7a, 0x3e, 0xf6, 0x3c, 0xea, 0xb7, 0xd8, 0x64, 0xf5, 0xc1, 0x11, 0x3c, + 0x3c, 0x71, 0xcc, 0x89, 0x0f, 0x35, 0x55, 0xb9, 0x52, 0x30, 0xe6, 0x9b, 0x58, 0x1d, 0xb2, 0x1a, + 0x5a, 0x83, 0x43, 0x55, 0xae, 0x2c, 0x50, 0xab, 0x33, 0xd6, 0x60, 0x37, 0xb4, 0x06, 0x3d, 0x55, + 0xae, 0x10, 0x8e, 0x15, 0xd6, 0x40, 0xd4, 0x0c, 0x13, 0x62, 0x69, 0x51, 0x4d, 0x08, 0x9a, 0x61, + 0x95, 0x41, 0xcd, 0x70, 0xe0, 0x6b, 0x6a, 0x42, 0xd4, 0x4c, 0x08, 0x89, 0x9d, 0x73, 0xe4, 0x05, + 0x35, 0x21, 0x6a, 0x86, 0x23, 0x43, 0x9a, 0xe1, 0xd8, 0xd7, 0xd5, 0x44, 0x50, 0x33, 0x53, 0x68, + 0xd1, 0x72, 0x49, 0x4d, 0x04, 0x35, 0xc3, 0xd1, 0x41, 0xcd, 0x70, 0xf0, 0x45, 0x35, 0x11, 0xd0, + 0x4c, 0x18, 0x2b, 0x1a, 0x5e, 0x52, 0x13, 0x01, 0xcd, 0x88, 0xb3, 0x73, 0x35, 0xc3, 0xa1, 0xcb, + 0x6a, 0x42, 0xd4, 0x8c, 0x68, 0xd5, 0xd3, 0x0c, 0x87, 0x5e, 0x52, 0x13, 0x01, 0xcd, 0x88, 0x58, + 0x4f, 0x33, 0x1c, 0x7b, 0x59, 0x4d, 0x04, 0x34, 0xc3, 0xb1, 0xd7, 0x45, 0xcd, 0x70, 0xe8, 0xc7, + 0x92, 0x9a, 0x10, 0x45, 0xc3, 0xa1, 0x37, 0x03, 0xa2, 0xe1, 0xd8, 0x4f, 0x28, 0x56, 0x54, 0x4d, + 0x18, 0x2c, 0xae, 0xc2, 0xa7, 0x14, 0x2c, 0xca, 0x86, 0x83, 0x7d, 0xd9, 0xd8, 0xdc, 0x05, 0x95, + 0xae, 0xa8, 0x92, 0x27, 0x1b, 0xd7, 0x2f, 0x89, 0xb2, 0xf1, 0x80, 0x57, 0xd1, 0xd5, 0x72, 0xd9, + 0x4c, 0x21, 0x6b, 0xba, 0x8f, 0x54, 0x55, 0xc9, 0x97, 0x8d, 0x87, 0x0c, 0xc8, 0xc6, 0xc3, 0x5e, + 0x53, 0x25, 0x51, 0x36, 0x33, 0xd0, 0xa2, 0xe5, 0xb2, 0x2a, 0x89, 0xb2, 0xf1, 0xd0, 0xa2, 0x6c, + 0x3c, 0xf0, 0x17, 0x54, 0x49, 0x90, 0xcd, 0x34, 0x56, 0x34, 0xfc, 0x45, 0x55, 0x12, 0x64, 0x13, + 0x9c, 0x1d, 0x93, 0x8d, 0x07, 0x7d, 0x43, 0x95, 0x7c, 0xd9, 0x04, 0xad, 0x72, 0xd9, 0x78, 0xd0, + 0x37, 0x55, 0x49, 0x90, 0x4d, 0x10, 0xcb, 0x65, 0xe3, 0x61, 0xdf, 0xc2, 0xf8, 0xe6, 0xca, 0xc6, + 0xc3, 0x0a, 0xb2, 0xf1, 0xa0, 0xbf, 0x43, 0x63, 0xa1, 0x27, 0x1b, 0x0f, 0x2a, 0xca, 0xc6, 0xc3, + 0xfe, 0x2e, 0xc5, 0xfa, 0xb2, 0x99, 0x06, 0x8b, 0xab, 0xf0, 0x7b, 0x14, 0xec, 0xcb, 0xc6, 0x03, + 0xaf, 0xe0, 0x20, 0xa8, 0x6c, 0xba, 0xe6, 0x61, 0xe7, 0x68, 0x40, 0x25, 0x56, 0xa1, 0xba, 0xa9, + 0x27, 0x9d, 0xf1, 0x91, 0x49, 0x47, 0x62, 0xdb, 0x83, 0xc7, 0x6e, 0x1b, 0x59, 0xa1, 0xc6, 0x99, + 0x7c, 0x7c, 0xc2, 0x75, 0xaa, 0x9f, 0xba, 0x5c, 0xd5, 0x8c, 0x22, 0xd3, 0xd0, 0x34, 0xbe, 0xa6, + 0x0b, 0xf8, 0x1b, 0x54, 0x45, 0x75, 0xb9, 0xa6, 0x33, 0x7c, 0x4d, 0xf7, 0xf1, 0x55, 0x38, 0xef, + 0x4b, 0xc9, 0x67, 0xdc, 0xa4, 0x5a, 0xaa, 0x27, 0xaa, 0xda, 0xaa, 0xb1, 0xe0, 0x0a, 0x6a, 0x16, + 0x29, 0xd0, 0xcd, 0x2d, 0x2a, 0xa9, 0x7a, 0xa2, 0xa6, 0x7b, 0x24, 0xb1, 0x27, 0x8d, 0xca, 0x90, + 0x0b, 0xcb, 0xe7, 0xdc, 0xa6, 0xca, 0xaa, 0x27, 0xab, 0xda, 0xea, 0xaa, 0xa1, 0x70, 0x7d, 0xcd, + 0xe0, 0x04, 0xfa, 0x59, 0xa1, 0x0a, 0xab, 0x27, 0x6b, 0xba, 0xc7, 0x09, 0xf6, 0xb3, 0xe0, 0x0a, + 0xcd, 0xa7, 0x7c, 0x89, 0x2a, 0xad, 0x9e, 0xae, 0xae, 0xe9, 0x6b, 0xeb, 0xf7, 0x8c, 0x22, 0x53, + 0x9c, 0xcf, 0xd1, 0x69, 0x3f, 0x5c, 0x72, 0x3e, 0x69, 0x95, 0x6a, 0xae, 0x9e, 0xd6, 0xee, 0xac, + 0xdd, 0xd5, 0xee, 0x1a, 0x0a, 0xd7, 0x9e, 0xcf, 0x7a, 0x87, 0xb2, 0xb8, 0xf8, 0x7c, 0xd6, 0x1a, + 0x55, 0x5f, 0x5d, 0x79, 0x66, 0x0e, 0x06, 0xf6, 0x2d, 0xb5, 0xfc, 0xd2, 0x1e, 0x0f, 0xba, 0xd7, + 0xca, 0x60, 0x28, 0x5c, 0x8f, 0x62, 0xaf, 0x0b, 0xae, 0x20, 0x7d, 0xfa, 0xaf, 0xd1, 0x7b, 0x58, + 0xa1, 0x9e, 0x79, 0xd8, 0xef, 0x59, 0xf6, 0xc4, 0x34, 0x8a, 0x4c, 0x9a, 0xa1, 0x35, 0xd9, 0x0d, + 0xaf, 0xe3, 0xaf, 0x53, 0xda, 0x42, 0x3d, 0x71, 0xbb, 0xaa, 0xd1, 0x9e, 0x66, 0xad, 0xe3, 0x6e, + 0x78, 0x1d, 0x7f, 0x83, 0x72, 0x48, 0x3d, 0x71, 0xbb, 0xa6, 0x73, 0x8e, 0xb8, 0x8e, 0x77, 0xe0, + 0x42, 0x28, 0x2e, 0xb6, 0x47, 0x9d, 0x83, 0xe7, 0x66, 0xb7, 0xa4, 0xd1, 0xf0, 0xf8, 0x50, 0x56, + 0x24, 0xe3, 0x7c, 0x20, 0x44, 0xee, 0x60, 0x33, 0xb9, 0x07, 0xaf, 0x87, 0x03, 0xa5, 0xcb, 0xac, + 0xd2, 0x78, 0x89, 0xcc, 0xc5, 0x60, 0xcc, 0x0c, 0x51, 0x05, 0x07, 0xec, 0x52, 0x75, 0x1a, 0x40, + 0x7d, 0xaa, 0xef, 0x89, 0x39, 0xf5, 0x67, 0xe0, 0xe2, 0x74, 0x28, 0x75, 0xc9, 0xeb, 0x34, 0xa2, + 0x22, 0xf9, 0x42, 0x38, 0xaa, 0x4e, 0xd1, 0x67, 0xf4, 0x5d, 0xa3, 0x21, 0x56, 0xa4, 0x4f, 0xf5, + 0x7e, 0x1f, 0x4a, 0x53, 0xc1, 0xd6, 0x65, 0xdf, 0xa1, 0x31, 0x17, 0xd9, 0xaf, 0x85, 0xe2, 0x6e, + 0x98, 0x3c, 0xa3, 0xeb, 0xbb, 0x34, 0x08, 0x0b, 0xe4, 0xa9, 0x9e, 0x71, 0xc9, 0x82, 0xe1, 0xd8, + 0xe5, 0xde, 0xa3, 0x51, 0x99, 0x2f, 0x59, 0x20, 0x32, 0x8b, 0xfd, 0x86, 0xe2, 0xb3, 0xcb, 0xad, + 0xd3, 0x30, 0xcd, 0xfb, 0x0d, 0x86, 0x6a, 0x4e, 0x7e, 0x9b, 0x92, 0x77, 0x67, 0xcf, 0xf8, 0xc7, + 0x09, 0x1a, 0x60, 0x39, 0x7b, 0x77, 0xd6, 0x94, 0x3d, 0xf6, 0x8c, 0x29, 0xff, 0x84, 0xb2, 0x89, + 0xc0, 0x9e, 0x9a, 0xf3, 0x63, 0x98, 0x73, 0x6f, 0x75, 0xbd, 0xb1, 0x7d, 0x34, 0x2a, 0x35, 0x55, + 0xb9, 0x02, 0xda, 0x95, 0xa9, 0xec, 0xc7, 0xbd, 0xe4, 0x6d, 0x50, 0x94, 0x11, 0x24, 0x31, 0x2b, + 0xcc, 0x2e, 0xb3, 0xb2, 0xa3, 0x26, 0x22, 0xac, 0x30, 0x94, 0x67, 0x45, 0x20, 0x51, 0x2b, 0xae, + 0xd3, 0x67, 0x56, 0x3e, 0x50, 0xa5, 0x99, 0x56, 0xdc, 0x10, 0xc0, 0xad, 0x04, 0x48, 0x4b, 0xeb, + 0x7e, 0xbe, 0x85, 0xed, 0xe4, 0x8b, 0xe1, 0x04, 0x6c, 0x03, 0xef, 0xcf, 0xc1, 0x4a, 0x46, 0x13, + 0x06, 0x37, 0x4d, 0xfb, 0xd9, 0x08, 0x5a, 0x60, 0x34, 0xd3, 0xb4, 0x9f, 0x9b, 0x41, 0x2b, 0xff, + 0xa6, 0x04, 0x49, 0x9a, 0x4f, 0x92, 0x2c, 0x24, 0xdf, 0x6b, 0x6d, 0x3e, 0x56, 0xce, 0xd1, 0x5f, + 0x0f, 0x5b, 0xad, 0xa7, 0x8a, 0x44, 0x72, 0x90, 0x7a, 0xf8, 0x95, 0xbd, 0xc6, 0xae, 0x22, 0x93, + 0x22, 0xe4, 0x9b, 0x9b, 0xdb, 0x1b, 0x0d, 0x63, 0xc7, 0xd8, 0xdc, 0xde, 0x53, 0x12, 0xb4, 0xad, + 0xf9, 0xb4, 0xf5, 0x60, 0x4f, 0x49, 0x92, 0x0c, 0x24, 0x68, 0x5d, 0x8a, 0x00, 0xa4, 0x77, 0xf7, + 0x8c, 0xcd, 0xed, 0x0d, 0x25, 0x4d, 0xad, 0xec, 0x6d, 0x6e, 0x35, 0x94, 0x0c, 0x45, 0xee, 0xbd, + 0xbb, 0xf3, 0xb4, 0xa1, 0x64, 0xe9, 0xcf, 0x07, 0x86, 0xf1, 0xe0, 0x2b, 0x4a, 0x8e, 0x92, 0xb6, + 0x1e, 0xec, 0x28, 0x80, 0xcd, 0x0f, 0x1e, 0x3e, 0x6d, 0x28, 0x79, 0x52, 0x80, 0x6c, 0xf3, 0xdd, + 0xed, 0x47, 0x7b, 0x9b, 0xad, 0x6d, 0xa5, 0x50, 0x3e, 0x81, 0x12, 0x5b, 0xe6, 0xc0, 0x2a, 0xb2, + 0xa4, 0xf0, 0x1d, 0x48, 0xb1, 0x9d, 0x91, 0x50, 0x25, 0x95, 0xf0, 0xce, 0x4c, 0x53, 0x56, 0xd8, + 0x1e, 0x31, 0xda, 0xd2, 0x65, 0x48, 0xb1, 0x55, 0x5a, 0x84, 0x14, 0x5b, 0x1d, 0x19, 0x53, 0x45, + 0x56, 0x28, 0xff, 0x96, 0x0c, 0xb0, 0x61, 0xef, 0x3e, 0xef, 0x8f, 0x30, 0x21, 0xbf, 0x0c, 0x30, + 0x79, 0xde, 0x1f, 0xb5, 0x51, 0xf5, 0x3c, 0xa9, 0xcc, 0xd1, 0x1a, 0xf4, 0x77, 0xe4, 0x1a, 0x14, + 0xb0, 0xf9, 0x90, 0x79, 0x21, 0xcc, 0x25, 0x33, 0x46, 0x9e, 0xd6, 0x71, 0xc7, 0x14, 0x84, 0xd4, + 0x74, 0x4c, 0x21, 0xd3, 0x02, 0xa4, 0xa6, 0x93, 0xab, 0x80, 0xc5, 0xf6, 0x04, 0x23, 0x0a, 0xa6, + 0x8d, 0x39, 0x03, 0xfb, 0x65, 0x31, 0x86, 0xbc, 0x0d, 0xd8, 0x27, 0x9b, 0x77, 0x71, 0xfa, 0x74, + 0xb8, 0xc3, 0x5d, 0xa1, 0x3f, 0xd8, 0x6c, 0x7d, 0xc2, 0x52, 0x0b, 0x72, 0x5e, 0x3d, 0xed, 0x0b, + 0x6b, 0xf9, 0x8c, 0x14, 0x9c, 0x11, 0x60, 0x95, 0x37, 0x25, 0x06, 0xe0, 0xa3, 0x59, 0xc0, 0xd1, + 0x30, 0x12, 0x1b, 0x4e, 0xf9, 0x32, 0xcc, 0x6d, 0xdb, 0x16, 0x3b, 0xbd, 0xb8, 0x4a, 0x05, 0x90, + 0x3a, 0x25, 0x09, 0xb3, 0x27, 0xa9, 0x53, 0xbe, 0x02, 0x20, 0xb4, 0x29, 0x20, 0xed, 0xb3, 0x36, + 0xf4, 0x01, 0xd2, 0x7e, 0xf9, 0x26, 0xa4, 0xb7, 0x3a, 0xc7, 0x7b, 0x9d, 0x1e, 0xb9, 0x06, 0x30, + 0xe8, 0x4c, 0x9c, 0xf6, 0x21, 0xee, 0xc3, 0xe7, 0x9f, 0x7f, 0xfe, 0xb9, 0x84, 0x97, 0xbd, 0x1c, + 0xad, 0x65, 0xfb, 0xf1, 0x02, 0xa0, 0x35, 0xe8, 0x6e, 0x99, 0x93, 0x49, 0xa7, 0x67, 0x92, 0x2a, + 0xa4, 0x2d, 0x73, 0x42, 0xa3, 0x9d, 0x84, 0xef, 0x08, 0xcb, 0xfe, 0x2a, 0xf8, 0xa8, 0x95, 0x6d, + 0x84, 0x18, 0x1c, 0x4a, 0x14, 0x48, 0x58, 0x47, 0x43, 0x7c, 0x27, 0x49, 0x19, 0xf4, 0xe7, 0xd2, + 0x25, 0x48, 0x33, 0x0c, 0x21, 0x90, 0xb4, 0x3a, 0x43, 0xb3, 0xc4, 0xfa, 0xc5, 0xdf, 0xe5, 0x5f, + 0x95, 0x00, 0xb6, 0xcd, 0x97, 0x67, 0xe8, 0xd3, 0x47, 0xc5, 0xf4, 0x99, 0x60, 0x7d, 0xde, 0x8f, + 0xeb, 0x93, 0xea, 0xec, 0xd0, 0xb6, 0xbb, 0x6d, 0xb6, 0xc5, 0xec, 0x49, 0x27, 0x47, 0x6b, 0x70, + 0xd7, 0xca, 0x1f, 0x40, 0x61, 0xd3, 0xb2, 0xcc, 0xb1, 0x3b, 0x26, 0x02, 0xc9, 0x67, 0xf6, 0xc4, + 0xe1, 0x6f, 0x4b, 0xf8, 0x9b, 0x94, 0x20, 0x39, 0xb2, 0xc7, 0x0e, 0x9b, 0x67, 0x3d, 0xa9, 0xaf, + 0xae, 0xae, 0x1a, 0x58, 0x43, 0x2e, 0x41, 0xee, 0xc0, 0xb6, 0x2c, 0xf3, 0x80, 0x4e, 0x22, 0x81, + 0x69, 0x8d, 0x5f, 0x51, 0xfe, 0x65, 0x09, 0x0a, 0x2d, 0xe7, 0x99, 0x6f, 0x5c, 0x81, 0xc4, 0x73, + 0xf3, 0x04, 0x87, 0x97, 0x30, 0xe8, 0x4f, 0x7a, 0x54, 0x7e, 0xbe, 0x33, 0x38, 0x62, 0x6f, 0x4d, + 0x05, 0x83, 0x15, 0xc8, 0x05, 0x48, 0xbf, 0x34, 0xfb, 0xbd, 0x67, 0x0e, 0xda, 0x94, 0x0d, 0x5e, + 0x22, 0xb7, 0x20, 0xd5, 0xa7, 0x83, 0x2d, 0x25, 0x71, 0xbd, 0x2e, 0xf8, 0xeb, 0x25, 0xce, 0xc1, + 0x60, 0xa0, 0x1b, 0xd9, 0x6c, 0x57, 0xf9, 0xe8, 0xa3, 0x8f, 0x3e, 0x92, 0xcb, 0x87, 0xb0, 0xe8, + 0x1e, 0xde, 0xc0, 0x64, 0xb7, 0xa1, 0x34, 0x30, 0xed, 0xf6, 0x61, 0xdf, 0xea, 0x0c, 0x06, 0x27, + 0xed, 0x97, 0xb6, 0xd5, 0xee, 0x58, 0x6d, 0x7b, 0x72, 0xd0, 0x19, 0xe3, 0x02, 0x44, 0x77, 0xb1, + 0x38, 0x30, 0xed, 0x26, 0xa3, 0xbd, 0x6f, 0x5b, 0x0f, 0xac, 0x16, 0xe5, 0x94, 0xff, 0x20, 0x09, + 0xb9, 0xad, 0x13, 0xd7, 0xfa, 0x22, 0xa4, 0x0e, 0xec, 0x23, 0x8b, 0xad, 0x65, 0xca, 0x60, 0x05, + 0x6f, 0x8f, 0x64, 0x61, 0x8f, 0x16, 0x21, 0xf5, 0xe2, 0xc8, 0x76, 0x4c, 0x9c, 0x6e, 0xce, 0x60, + 0x05, 0xba, 0x5a, 0x23, 0xd3, 0x29, 0x25, 0x31, 0xb9, 0xa5, 0x3f, 0xfd, 0xf9, 0xa7, 0xce, 0x30, + 0x7f, 0xb2, 0x02, 0x69, 0x9b, 0xae, 0xfe, 0xa4, 0x94, 0xc6, 0x77, 0x35, 0x01, 0x2e, 0xee, 0x8a, + 0xc1, 0x51, 0x64, 0x13, 0x16, 0x5e, 0x9a, 0xed, 0xe1, 0xd1, 0xc4, 0x69, 0xf7, 0xec, 0x76, 0xd7, + 0x34, 0x47, 0xe6, 0xb8, 0x34, 0x87, 0x3d, 0x09, 0x3e, 0x61, 0xd6, 0x42, 0x1a, 0xf3, 0x2f, 0xcd, + 0xad, 0xa3, 0x89, 0xb3, 0x61, 0x3f, 0x46, 0x16, 0xa9, 0x42, 0x6e, 0x6c, 0x52, 0x4f, 0x40, 0x07, + 0x5b, 0x08, 0xf7, 0x1e, 0xa0, 0x66, 0xc7, 0xe6, 0x08, 0x2b, 0xc8, 0x3a, 0x64, 0xf7, 0xfb, 0xcf, + 0xcd, 0xc9, 0x33, 0xb3, 0x5b, 0xca, 0xa8, 0x52, 0x65, 0x5e, 0xbb, 0xe8, 0x73, 0xbc, 0x65, 0x5d, + 0x79, 0x64, 0x0f, 0xec, 0xb1, 0xe1, 0x41, 0xc9, 0x7d, 0xc8, 0x4d, 0xec, 0xa1, 0xc9, 0xf4, 0x9d, + 0xc5, 0xa0, 0x7a, 0x79, 0x16, 0x6f, 0xd7, 0x1e, 0x9a, 0xae, 0x07, 0x73, 0xf1, 0x64, 0x99, 0x0d, + 0x74, 0x9f, 0x5e, 0x9d, 0x4b, 0x80, 0x4f, 0x03, 0x74, 0x40, 0x78, 0x95, 0x26, 0x4b, 0x74, 0x40, + 0xbd, 0x43, 0x7a, 0x23, 0x2a, 0xe5, 0x31, 0xaf, 0xf4, 0xca, 0x4b, 0xb7, 0x20, 0xe7, 0x19, 0xf4, + 0x5d, 0x1f, 0x73, 0x37, 0x39, 0xf4, 0x07, 0xcc, 0xf5, 0x31, 0x5f, 0xf3, 0x06, 0xa4, 0x70, 0xd8, + 0x34, 0x42, 0x19, 0x0d, 0x1a, 0x10, 0x73, 0x90, 0xda, 0x30, 0x1a, 0x8d, 0x6d, 0x45, 0xc2, 0xd8, + 0xf8, 0xf4, 0xdd, 0x86, 0x22, 0x0b, 0x8a, 0xfd, 0x6d, 0x09, 0x12, 0x8d, 0x63, 0x54, 0x0b, 0x9d, + 0x86, 0x7b, 0xa2, 0xe9, 0x6f, 0xad, 0x06, 0xc9, 0xa1, 0x3d, 0x36, 0xc9, 0xf9, 0x19, 0xb3, 0x2c, + 0xf5, 0x70, 0xbf, 0x84, 0x57, 0xe4, 0xc6, 0xb1, 0x63, 0x20, 0x5e, 0x7b, 0x0b, 0x92, 0x8e, 0x79, + 0xec, 0xcc, 0xe6, 0x3d, 0x63, 0x1d, 0x50, 0x80, 0x76, 0x13, 0xd2, 0xd6, 0xd1, 0x70, 0xdf, 0x1c, + 0xcf, 0x86, 0xf6, 0x71, 0x7a, 0x1c, 0x52, 0x7e, 0x0f, 0x94, 0x47, 0xf6, 0x70, 0x34, 0x30, 0x8f, + 0x1b, 0xc7, 0x8e, 0x69, 0x4d, 0xfa, 0xb6, 0x45, 0xf5, 0x7c, 0xd8, 0x1f, 0xa3, 0x17, 0xc1, 0xb7, + 0x62, 0x2c, 0xd0, 0x53, 0x3d, 0x31, 0x0f, 0x6c, 0xab, 0xcb, 0x1d, 0x26, 0x2f, 0x51, 0xb4, 0xf3, + 0xac, 0x3f, 0xa6, 0x0e, 0x84, 0xfa, 0x79, 0x56, 0x28, 0x6f, 0x40, 0x91, 0xe7, 0x18, 0x13, 0xde, + 0x71, 0xf9, 0x06, 0x14, 0xdc, 0x2a, 0x7c, 0x38, 0xcf, 0x42, 0xf2, 0x83, 0x86, 0xd1, 0x52, 0xce, + 0xd1, 0x65, 0x6d, 0x6d, 0x37, 0x14, 0x89, 0xfe, 0xd8, 0x7b, 0xbf, 0x15, 0x58, 0xca, 0x4b, 0x50, + 0xf0, 0xc6, 0xbe, 0x6b, 0x3a, 0xd8, 0x42, 0x03, 0x42, 0xa6, 0x2e, 0x67, 0xa5, 0x72, 0x06, 0x52, + 0x8d, 0xe1, 0xc8, 0x39, 0x29, 0xff, 0x22, 0xe4, 0x39, 0xe8, 0x69, 0x7f, 0xe2, 0x90, 0x3b, 0x90, + 0x19, 0xf2, 0xf9, 0x4a, 0x78, 0xdd, 0x13, 0x35, 0xe5, 0xe3, 0xdc, 0xdf, 0x86, 0x8b, 0x5e, 0xaa, + 0x42, 0x46, 0xf0, 0xa5, 0xfc, 0xa8, 0xcb, 0xe2, 0x51, 0x67, 0x4e, 0x21, 0x21, 0x38, 0x85, 0xf2, + 0x16, 0x64, 0x58, 0x04, 0x9c, 0x60, 0x54, 0x67, 0xa9, 0x22, 0x13, 0x13, 0xdb, 0xf9, 0x3c, 0xab, + 0x63, 0x17, 0x95, 0xab, 0x90, 0x47, 0xc1, 0x72, 0x04, 0x73, 0x9d, 0x80, 0x55, 0x4c, 0x6e, 0xbf, + 0x9f, 0x82, 0xac, 0xbb, 0x52, 0x64, 0x19, 0xd2, 0x2c, 0x3f, 0x43, 0x53, 0xee, 0xfb, 0x41, 0x0a, + 0x33, 0x32, 0xb2, 0x0c, 0x19, 0x9e, 0x83, 0x71, 0xef, 0x2e, 0x57, 0x35, 0x23, 0xcd, 0x72, 0x2e, + 0xaf, 0xb1, 0xa6, 0xa3, 0x63, 0x62, 0x2f, 0x03, 0x69, 0x96, 0x55, 0x11, 0x15, 0x72, 0x5e, 0x1e, + 0x85, 0xfe, 0x98, 0x3f, 0x03, 0x64, 0xdd, 0xc4, 0x49, 0x40, 0xd4, 0x74, 0xf4, 0x58, 0x3c, 0xe7, + 0xcf, 0x36, 0xfd, 0xeb, 0x49, 0xd6, 0xcd, 0x86, 0xf0, 0xf9, 0xde, 0x4d, 0xf0, 0x33, 0x3c, 0xff, + 0xf1, 0x01, 0x35, 0x1d, 0x5d, 0x82, 0x9b, 0xcd, 0x67, 0x78, 0x8e, 0x43, 0xae, 0xd2, 0x21, 0x62, + 0xce, 0x82, 0x47, 0xdf, 0x4f, 0xdd, 0xd3, 0x2c, 0x93, 0x21, 0xd7, 0xa8, 0x05, 0x96, 0x98, 0xe0, + 0xb9, 0xf4, 0xf3, 0xf4, 0x0c, 0xcf, 0x57, 0xc8, 0x4d, 0x0a, 0x61, 0xcb, 0x5f, 0x82, 0x88, 0xa4, + 0x3c, 0xc3, 0x93, 0x72, 0xa2, 0xd2, 0x0e, 0xd1, 0x3d, 0xa0, 0x4b, 0x10, 0x12, 0xf0, 0x34, 0x4b, + 0xc0, 0xc9, 0x15, 0x34, 0xc7, 0x26, 0x55, 0xf0, 0x93, 0xed, 0x0c, 0x4f, 0x70, 0xfc, 0x76, 0xbc, + 0xb2, 0x79, 0x89, 0x75, 0x86, 0xa7, 0x30, 0xa4, 0x46, 0xf7, 0x8b, 0xea, 0xbb, 0x34, 0x8f, 0x4e, + 0xb0, 0xe4, 0x0b, 0xcf, 0xdd, 0x53, 0xe6, 0x03, 0xeb, 0xcc, 0x83, 0x18, 0xa9, 0x26, 0x9e, 0x86, + 0x25, 0xca, 0xdb, 0xe9, 0x5b, 0x87, 0xa5, 0x22, 0xae, 0x44, 0xa2, 0x6f, 0x1d, 0x1a, 0xa9, 0x26, + 0xad, 0x61, 0x1a, 0xd8, 0xa6, 0x6d, 0x0a, 0xb6, 0x25, 0x6f, 0xb3, 0x46, 0x5a, 0x45, 0x4a, 0x90, + 0x6a, 0xb6, 0xb7, 0x3b, 0x56, 0x69, 0x81, 0xf1, 0xac, 0x8e, 0x65, 0x24, 0x9b, 0xdb, 0x1d, 0x8b, + 0xbc, 0x05, 0x89, 0xc9, 0xd1, 0x7e, 0x89, 0x84, 0xbf, 0xac, 0xec, 0x1e, 0xed, 0xbb, 0x43, 0x31, + 0x28, 0x82, 0x2c, 0x43, 0x76, 0xe2, 0x8c, 0xdb, 0xbf, 0x60, 0x8e, 0xed, 0xd2, 0x79, 0x5c, 0xc2, + 0x73, 0x46, 0x66, 0xe2, 0x8c, 0x3f, 0x30, 0xc7, 0xf6, 0x19, 0x9d, 0x5f, 0xf9, 0x0a, 0xe4, 0x05, + 0xbb, 0xa4, 0x08, 0x92, 0xc5, 0x6e, 0x0a, 0x75, 0xe9, 0x8e, 0x21, 0x59, 0xe5, 0x3d, 0x28, 0xb8, + 0x39, 0x0c, 0xce, 0x57, 0xa3, 0x27, 0x69, 0x60, 0x8f, 0xf1, 0x7c, 0xce, 0x6b, 0x97, 0xc4, 0x10, + 0xe5, 0xc3, 0x78, 0xb8, 0x60, 0xd0, 0xb2, 0x12, 0x1a, 0x8a, 0x54, 0xfe, 0xa1, 0x04, 0x85, 0x2d, + 0x7b, 0xec, 0x3f, 0x30, 0x2f, 0x42, 0x6a, 0xdf, 0xb6, 0x07, 0x13, 0x34, 0x9b, 0x35, 0x58, 0x81, + 0xbc, 0x01, 0x05, 0xfc, 0xe1, 0xe6, 0x9e, 0xb2, 0xf7, 0xb4, 0x91, 0xc7, 0x7a, 0x9e, 0x70, 0x12, + 0x48, 0xf6, 0x2d, 0x67, 0xc2, 0x3d, 0x19, 0xfe, 0x26, 0x5f, 0x80, 0x3c, 0xfd, 0xeb, 0x32, 0x93, + 0xde, 0x85, 0x15, 0x68, 0x35, 0x27, 0xbe, 0x05, 0x73, 0xb8, 0xfb, 0x1e, 0x2c, 0xe3, 0x3d, 0x63, + 0x14, 0x58, 0x03, 0x07, 0x96, 0x20, 0xc3, 0x5c, 0xc1, 0x04, 0xbf, 0x96, 0xe5, 0x0c, 0xb7, 0x48, + 0xdd, 0x2b, 0x66, 0x02, 0x2c, 0xdc, 0x67, 0x0c, 0x5e, 0x2a, 0x3f, 0x80, 0x2c, 0x46, 0xa9, 0xd6, + 0xa0, 0x4b, 0xca, 0x20, 0xf5, 0x4a, 0x26, 0xc6, 0xc8, 0x45, 0xe1, 0x9a, 0xcf, 0x9b, 0x57, 0x36, + 0x0c, 0xa9, 0xb7, 0xb4, 0x00, 0xd2, 0x06, 0xbd, 0x77, 0x1f, 0x73, 0x37, 0x2d, 0x1d, 0x97, 0x5b, + 0xdc, 0xc4, 0xb6, 0xf9, 0x32, 0xce, 0xc4, 0xb6, 0xf9, 0x92, 0x99, 0xb8, 0x3a, 0x65, 0x82, 0x96, + 0x4e, 0xf8, 0xa7, 0x43, 0xe9, 0xa4, 0x5c, 0x85, 0x39, 0x3c, 0x9e, 0x7d, 0xab, 0xb7, 0x63, 0xf7, + 0x2d, 0xbc, 0xe7, 0x1f, 0xe2, 0x3d, 0x49, 0x32, 0xa4, 0x43, 0xba, 0x07, 0xe6, 0x71, 0xe7, 0x80, + 0xdd, 0x38, 0xb3, 0x06, 0x2b, 0x94, 0x3f, 0x4b, 0xc2, 0x3c, 0x77, 0xad, 0xef, 0xf7, 0x9d, 0x67, + 0x5b, 0x9d, 0x11, 0x79, 0x0a, 0x05, 0xea, 0x55, 0xdb, 0xc3, 0xce, 0x68, 0x44, 0x8f, 0xaf, 0x84, + 0x57, 0x8d, 0xeb, 0x53, 0xae, 0x9a, 0xe3, 0x57, 0xb6, 0x3b, 0x43, 0x73, 0x8b, 0x61, 0x1b, 0x96, + 0x33, 0x3e, 0x31, 0xf2, 0x96, 0x5f, 0x43, 0x36, 0x21, 0x3f, 0x9c, 0xf4, 0x3c, 0x63, 0x32, 0x1a, + 0xab, 0x44, 0x1a, 0xdb, 0x9a, 0xf4, 0x02, 0xb6, 0x60, 0xe8, 0x55, 0xd0, 0x81, 0x51, 0x7f, 0xec, + 0xd9, 0x4a, 0x9c, 0x32, 0x30, 0xea, 0x3a, 0x82, 0x03, 0xdb, 0xf7, 0x6b, 0xc8, 0x63, 0x00, 0x7a, + 0xbc, 0x1c, 0x9b, 0xa6, 0x4e, 0xa8, 0xa0, 0xbc, 0xf6, 0x66, 0xa4, 0xad, 0x5d, 0x67, 0xbc, 0x67, + 0xef, 0x3a, 0x63, 0x66, 0x88, 0x1e, 0x4c, 0x2c, 0x2e, 0xbd, 0x03, 0x4a, 0x78, 0xfe, 0xe2, 0x8d, + 0x3c, 0x35, 0xe3, 0x46, 0x9e, 0xe3, 0x37, 0xf2, 0xba, 0x7c, 0x57, 0x5a, 0x7a, 0x0f, 0x8a, 0xa1, + 0x29, 0x8b, 0x74, 0xc2, 0xe8, 0xb7, 0x45, 0x7a, 0x5e, 0x7b, 0x5d, 0xf8, 0x9c, 0x2d, 0x6e, 0xb8, + 0x68, 0xf7, 0x1d, 0x50, 0xc2, 0xd3, 0x17, 0x0d, 0x67, 0x63, 0x32, 0x05, 0xe4, 0xdf, 0x87, 0xb9, + 0xc0, 0x94, 0x45, 0x72, 0xee, 0x94, 0x49, 0x95, 0x7f, 0x29, 0x05, 0xa9, 0x96, 0x65, 0xda, 0x87, + 0xe4, 0xf5, 0x60, 0x9c, 0x7c, 0x72, 0xce, 0x8d, 0x91, 0x17, 0x43, 0x31, 0xf2, 0xc9, 0x39, 0x2f, + 0x42, 0x5e, 0x0c, 0x45, 0x48, 0xb7, 0xa9, 0xa6, 0x93, 0xcb, 0x53, 0xf1, 0xf1, 0xc9, 0x39, 0x21, + 0x38, 0x5e, 0x9e, 0x0a, 0x8e, 0x7e, 0x73, 0x4d, 0xa7, 0x0e, 0x35, 0x18, 0x19, 0x9f, 0x9c, 0xf3, + 0xa3, 0xe2, 0x72, 0x38, 0x2a, 0x7a, 0x8d, 0x35, 0x9d, 0x0d, 0x49, 0x88, 0x88, 0x38, 0x24, 0x16, + 0x0b, 0x97, 0xc3, 0xb1, 0x10, 0x79, 0x3c, 0x0a, 0x2e, 0x87, 0xa3, 0x20, 0x36, 0xf2, 0xa8, 0x77, + 0x31, 0x14, 0xf5, 0xd0, 0x28, 0x0b, 0x77, 0xcb, 0xe1, 0x70, 0xc7, 0x78, 0xc2, 0x48, 0xc5, 0x58, + 0xe7, 0x35, 0xd6, 0x74, 0xa2, 0x85, 0x02, 0x5d, 0xf4, 0x6d, 0x1f, 0xf7, 0x02, 0x9d, 0xbe, 0x4e, + 0x97, 0xcd, 0xbd, 0x88, 0x16, 0x63, 0xbe, 0xf8, 0xe3, 0x6a, 0xba, 0x17, 0x31, 0x0d, 0x32, 0x87, + 0x3c, 0x01, 0x56, 0xd0, 0x73, 0x09, 0xb2, 0xc4, 0xcd, 0x5f, 0x69, 0xb6, 0xd1, 0x83, 0xd1, 0x79, + 0x1d, 0xb2, 0x3b, 0x7d, 0x05, 0xe6, 0x9a, 0xed, 0xa7, 0x9d, 0x71, 0xcf, 0x9c, 0x38, 0xed, 0xbd, + 0x4e, 0xcf, 0x7b, 0x44, 0xa0, 0xfb, 0x9f, 0x6f, 0xf2, 0x96, 0xbd, 0x4e, 0x8f, 0x5c, 0x70, 0xc5, + 0xd5, 0xc5, 0x56, 0x89, 0xcb, 0x6b, 0xe9, 0x75, 0xba, 0x68, 0xcc, 0x18, 0xfa, 0xc2, 0x05, 0xee, + 0x0b, 0x1f, 0x66, 0x20, 0x75, 0x64, 0xf5, 0x6d, 0xeb, 0x61, 0x0e, 0x32, 0x8e, 0x3d, 0x1e, 0x76, + 0x1c, 0xbb, 0xfc, 0x23, 0x09, 0xe0, 0x91, 0x3d, 0x1c, 0x1e, 0x59, 0xfd, 0x17, 0x47, 0x26, 0xb9, + 0x02, 0xf9, 0x61, 0xe7, 0xb9, 0xd9, 0x1e, 0x9a, 0xed, 0x83, 0xb1, 0x7b, 0x0e, 0x72, 0xb4, 0x6a, + 0xcb, 0x7c, 0x34, 0x3e, 0x21, 0x25, 0xf7, 0x8a, 0x8e, 0xda, 0x41, 0x49, 0xf2, 0x2b, 0xfb, 0x22, + 0xbf, 0x74, 0xa6, 0xf9, 0x1e, 0xba, 0xd7, 0x4e, 0x96, 0x47, 0x64, 0xf8, 0xee, 0x61, 0x89, 0x4a, + 0xde, 0x31, 0x87, 0xa3, 0xf6, 0x01, 0x4a, 0x85, 0xca, 0x21, 0x45, 0xcb, 0x8f, 0xc8, 0x6d, 0x48, + 0x1c, 0xd8, 0x03, 0x14, 0xc9, 0x29, 0xfb, 0x42, 0x71, 0xe4, 0x0d, 0x48, 0x0c, 0x27, 0x4c, 0x36, + 0x79, 0x6d, 0x41, 0xb8, 0x27, 0xb0, 0xd0, 0x44, 0x61, 0xc3, 0x49, 0xcf, 0x9b, 0xf7, 0x8d, 0x22, + 0x24, 0x9a, 0xad, 0x16, 0x8d, 0xfd, 0xcd, 0x56, 0x6b, 0x4d, 0x91, 0xea, 0x5f, 0x82, 0x6c, 0x6f, + 0x6c, 0x9a, 0xd4, 0x3d, 0xcc, 0xce, 0x39, 0x3e, 0xc4, 0x58, 0xe7, 0x81, 0xea, 0x5b, 0x90, 0x39, + 0x60, 0x59, 0x07, 0x89, 0x48, 0x6b, 0x4b, 0x7f, 0xc8, 0x1e, 0x55, 0x96, 0xfc, 0xe6, 0x70, 0x9e, + 0x62, 0xb8, 0x36, 0xea, 0x3b, 0x90, 0x1b, 0xb7, 0x4f, 0x33, 0xf8, 0x31, 0x8b, 0x2e, 0x71, 0x06, + 0xb3, 0x63, 0x5e, 0x55, 0x6f, 0xc0, 0x82, 0x65, 0xbb, 0xdf, 0x50, 0xda, 0x5d, 0x76, 0xc6, 0x2e, + 0x4e, 0x5f, 0xe5, 0x5c, 0xe3, 0x26, 0xfb, 0x6e, 0x69, 0xd9, 0xbc, 0x81, 0x9d, 0xca, 0xfa, 0x23, + 0x50, 0x04, 0x33, 0x98, 0x7a, 0xc6, 0x59, 0x39, 0x64, 0x1f, 0x4a, 0x3d, 0x2b, 0x78, 0xee, 0x43, + 0x46, 0xd8, 0xc9, 0x8c, 0x31, 0xd2, 0x63, 0x5f, 0x9d, 0x3d, 0x23, 0xe8, 0xea, 0xa6, 0x8d, 0x50, + 0x5f, 0x13, 0x6d, 0xe4, 0x19, 0xfb, 0x20, 0x2d, 0x1a, 0xa9, 0xe9, 0xa1, 0x55, 0x39, 0x3a, 0x75, + 0x28, 0x7d, 0xf6, 0x3d, 0xd9, 0xb3, 0xc2, 0x1c, 0xe0, 0x0c, 0x33, 0xf1, 0x83, 0xf9, 0x90, 0x7d, + 0x6a, 0x0e, 0x98, 0x99, 0x1a, 0xcd, 0xe4, 0xd4, 0xd1, 0x3c, 0x67, 0xdf, 0x75, 0x3d, 0x33, 0xbb, + 0xb3, 0x46, 0x33, 0x39, 0x75, 0x34, 0x03, 0xf6, 0xc5, 0x37, 0x60, 0xa6, 0xa6, 0xd7, 0x37, 0x80, + 0x88, 0x5b, 0xcd, 0xe3, 0x44, 0x8c, 0x9d, 0x21, 0xfb, 0x8e, 0xef, 0x6f, 0x36, 0xa3, 0xcc, 0x32, + 0x14, 0x3f, 0x20, 0x8b, 0x7d, 0xe2, 0x0f, 0x1a, 0xaa, 0xe9, 0xf5, 0x4d, 0x38, 0x2f, 0x4e, 0xec, + 0x0c, 0x43, 0xb2, 0x55, 0xa9, 0x52, 0x34, 0x16, 0xfc, 0xa9, 0x71, 0xce, 0x4c, 0x53, 0xf1, 0x83, + 0x1a, 0xa9, 0x52, 0x45, 0x99, 0x32, 0x55, 0xd3, 0xeb, 0x0f, 0xa0, 0x28, 0x98, 0xda, 0xc7, 0x08, + 0x1d, 0x6d, 0xe6, 0x05, 0xfb, 0x5f, 0x0b, 0xcf, 0x0c, 0x8d, 0xe8, 0xe1, 0x1d, 0xe3, 0x31, 0x2e, + 0xda, 0xc8, 0x98, 0xfd, 0xa3, 0x80, 0x3f, 0x16, 0x64, 0x84, 0x8e, 0x04, 0xe6, 0xdf, 0x71, 0x56, + 0x26, 0xec, 0x5f, 0x08, 0xfc, 0xa1, 0x50, 0x42, 0xbd, 0x1f, 0x98, 0x8e, 0x49, 0x83, 0x5c, 0x8c, + 0x0d, 0x07, 0x3d, 0xf2, 0x9b, 0x91, 0x80, 0x15, 0xf1, 0x81, 0x44, 0x98, 0x36, 0x2d, 0xd6, 0x37, + 0x61, 0xfe, 0xec, 0x0e, 0xe9, 0x63, 0x89, 0x65, 0xcb, 0xd5, 0x15, 0x9a, 0x50, 0x1b, 0x73, 0xdd, + 0x80, 0x5f, 0x6a, 0xc0, 0xdc, 0x99, 0x9d, 0xd2, 0x27, 0x12, 0xcb, 0x39, 0xa9, 0x25, 0xa3, 0xd0, + 0x0d, 0x7a, 0xa6, 0xb9, 0x33, 0xbb, 0xa5, 0x4f, 0x25, 0xf6, 0x40, 0xa1, 0x6b, 0x9e, 0x11, 0xd7, + 0x33, 0xcd, 0x9d, 0xd9, 0x2d, 0x7d, 0x95, 0x65, 0x94, 0xb2, 0x5e, 0x15, 0x8d, 0xa0, 0x2f, 0x98, + 0x3f, 0xbb, 0x5b, 0xfa, 0x9a, 0x84, 0x8f, 0x15, 0xb2, 0xae, 0x7b, 0xeb, 0xe2, 0x79, 0xa6, 0xf9, + 0xb3, 0xbb, 0xa5, 0xaf, 0x4b, 0xf8, 0xa4, 0x21, 0xeb, 0xeb, 0x01, 0x33, 0xc1, 0xd1, 0x9c, 0xee, + 0x96, 0xbe, 0x21, 0xe1, 0x2b, 0x83, 0xac, 0xd7, 0x3c, 0x33, 0xbb, 0x53, 0xa3, 0x39, 0xdd, 0x2d, + 0x7d, 0x13, 0x6f, 0xf1, 0x75, 0x59, 0xbf, 0x13, 0x30, 0x83, 0x9e, 0xa9, 0xf8, 0x0a, 0x6e, 0xe9, + 0x5b, 0x12, 0x3e, 0x06, 0xc9, 0xfa, 0x5d, 0xc3, 0xed, 0xdd, 0xf7, 0x4c, 0xc5, 0x57, 0x70, 0x4b, + 0x9f, 0x49, 0xf8, 0x66, 0x24, 0xeb, 0xf7, 0x82, 0x86, 0xd0, 0x33, 0x29, 0xaf, 0xe2, 0x96, 0xbe, + 0x4d, 0x2d, 0x15, 0xeb, 0xf2, 0xfa, 0xaa, 0xe1, 0x0e, 0x40, 0xf0, 0x4c, 0xca, 0xab, 0xb8, 0xa5, + 0xef, 0x50, 0x53, 0x4a, 0x5d, 0x5e, 0x5f, 0x0b, 0x99, 0xaa, 0xe9, 0xf5, 0x47, 0x50, 0x38, 0xab, + 0x5b, 0xfa, 0xae, 0xf8, 0x16, 0x97, 0xef, 0x0a, 0xbe, 0x69, 0x47, 0xd8, 0xb3, 0x53, 0x1d, 0xd3, + 0xf7, 0x30, 0xc7, 0xa9, 0xcf, 0x3d, 0x61, 0xef, 0x55, 0x8c, 0xe0, 0x6f, 0x1f, 0x73, 0x53, 0x5b, + 0xfe, 0xf9, 0x38, 0xd5, 0x47, 0x7d, 0x5f, 0xc2, 0x47, 0xad, 0x02, 0x37, 0x88, 0x78, 0xef, 0xa4, + 0x30, 0x87, 0xf5, 0xa1, 0x3f, 0xcb, 0xd3, 0xbc, 0xd5, 0x0f, 0xa4, 0x57, 0x71, 0x57, 0xf5, 0x44, + 0x6b, 0xbb, 0xe1, 0x2d, 0x06, 0xd6, 0xbc, 0x0d, 0xc9, 0x63, 0x6d, 0x75, 0x4d, 0xbc, 0x92, 0x89, + 0x6f, 0xb9, 0xcc, 0x49, 0xe5, 0xb5, 0xa2, 0xf0, 0xdc, 0x3d, 0x1c, 0x39, 0x27, 0x06, 0xb2, 0x38, + 0x5b, 0x8b, 0x64, 0x7f, 0x12, 0xc3, 0xd6, 0x38, 0xbb, 0x1a, 0xc9, 0xfe, 0x34, 0x86, 0x5d, 0xe5, + 0x6c, 0x3d, 0x92, 0xfd, 0xd5, 0x18, 0xb6, 0xce, 0xd9, 0xeb, 0x91, 0xec, 0xaf, 0xc5, 0xb0, 0xd7, + 0x39, 0xbb, 0x16, 0xc9, 0xfe, 0x7a, 0x0c, 0xbb, 0xc6, 0xd9, 0x77, 0x22, 0xd9, 0xdf, 0x88, 0x61, + 0xdf, 0xe1, 0xec, 0xbb, 0x91, 0xec, 0x6f, 0xc6, 0xb0, 0xef, 0x72, 0xf6, 0xbd, 0x48, 0xf6, 0xb7, + 0x62, 0xd8, 0xf7, 0x18, 0x7b, 0x6d, 0x35, 0x92, 0xfd, 0x59, 0x34, 0x7b, 0x6d, 0x95, 0xb3, 0xa3, + 0xb5, 0xf6, 0xed, 0x18, 0x36, 0xd7, 0xda, 0x5a, 0xb4, 0xd6, 0xbe, 0x13, 0xc3, 0xe6, 0x5a, 0x5b, + 0x8b, 0xd6, 0xda, 0x77, 0x63, 0xd8, 0x5c, 0x6b, 0x6b, 0xd1, 0x5a, 0xfb, 0x5e, 0x0c, 0x9b, 0x6b, + 0x6d, 0x2d, 0x5a, 0x6b, 0xdf, 0x8f, 0x61, 0x73, 0xad, 0xad, 0x45, 0x6b, 0xed, 0x07, 0x31, 0x6c, + 0xae, 0xb5, 0xb5, 0x68, 0xad, 0xfd, 0x51, 0x0c, 0x9b, 0x6b, 0x6d, 0x2d, 0x5a, 0x6b, 0x7f, 0x1c, + 0xc3, 0xe6, 0x5a, 0x5b, 0x8b, 0xd6, 0xda, 0x9f, 0xc4, 0xb0, 0xb9, 0xd6, 0xb4, 0x68, 0xad, 0xfd, + 0x69, 0x34, 0x5b, 0xe3, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0x67, 0x31, 0x6c, 0xae, 0x35, 0x2d, 0x5a, + 0x6b, 0x7f, 0x1e, 0xc3, 0xe6, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0xc3, 0x18, 0x36, 0xd7, 0x9a, 0x16, + 0xad, 0xb5, 0xbf, 0x88, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xcb, 0x18, 0x36, 0xd7, 0x9a, + 0x16, 0xad, 0xb5, 0xbf, 0x8a, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xeb, 0x18, 0x36, 0xd7, + 0x9a, 0x16, 0xad, 0xb5, 0xbf, 0x89, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xdb, 0x18, 0x36, + 0xd7, 0x5a, 0x35, 0x5a, 0x6b, 0x7f, 0x17, 0xcd, 0xae, 0x72, 0xad, 0x55, 0xa3, 0xb5, 0xf6, 0xf7, + 0x31, 0x6c, 0xae, 0xb5, 0x6a, 0xb4, 0xd6, 0xfe, 0x21, 0x86, 0xcd, 0xb5, 0x56, 0x8d, 0xd6, 0xda, + 0x3f, 0xc6, 0xb0, 0xb9, 0xd6, 0xaa, 0xd1, 0x5a, 0xfb, 0x51, 0x0c, 0x9b, 0x6b, 0xad, 0x1a, 0xad, + 0xb5, 0x7f, 0x8a, 0x61, 0x73, 0xad, 0x55, 0xa3, 0xb5, 0xf6, 0xcf, 0x31, 0x6c, 0xae, 0xb5, 0x6a, + 0xb4, 0xd6, 0xfe, 0x25, 0x86, 0xcd, 0xb5, 0x56, 0x8d, 0xd6, 0xda, 0xbf, 0xc6, 0xb0, 0xb9, 0xd6, + 0xaa, 0xd1, 0x5a, 0xfb, 0xb7, 0x18, 0x36, 0xd7, 0x9a, 0x1e, 0xad, 0xb5, 0x7f, 0x8f, 0x66, 0xeb, + 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x23, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, 0x3f, 0x63, + 0xd8, 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x2b, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, 0xbf, + 0x63, 0xd8, 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x27, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, + 0xc7, 0x31, 0x6c, 0xae, 0x35, 0x3d, 0x5a, 0x6b, 0x3f, 0x89, 0x61, 0x73, 0xad, 0xe9, 0xd1, 0x5a, + 0xfb, 0xdf, 0x18, 0x36, 0xd7, 0x9a, 0x1e, 0xad, 0xb5, 0xff, 0x8b, 0x61, 0x73, 0xad, 0xad, 0x47, + 0x6b, 0xed, 0xff, 0xa3, 0xd9, 0xeb, 0xab, 0x3f, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xcd, + 0x32, 0x57, 0x39, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/proto/testdata/test.proto b/vendor/github.com/gogo/protobuf/proto/testdata/test.proto index 698c8ce2..70e3cfcd 100644 --- a/vendor/github.com/gogo/protobuf/proto/testdata/test.proto +++ b/vendor/github.com/gogo/protobuf/proto/testdata/test.proto @@ -169,6 +169,13 @@ message GoTest { }; } +// For testing a group containing a required field. +message GoTestRequiredGroupField { + required group Group = 1 { + required int32 Field = 2; + }; +} + // For testing skipping of unrecognized fields. // Numbers are all big, larger than tag numbers in GoTestField, // the message used in the corresponding test. @@ -237,6 +244,10 @@ message OtherMessage { extensions 100 to max; } +message RequiredInnerMessage { + required InnerMessage leo_finally_won_an_oscar = 1; +} + message MyMessage { required int32 count = 1; optional string name = 2; @@ -244,6 +255,7 @@ message MyMessage { repeated string pet = 4; optional InnerMessage inner = 5; repeated OtherMessage others = 6; + optional RequiredInnerMessage we_must_go_deeper = 13; repeated InnerMessage rep_inner = 12; enum Color { @@ -483,6 +495,7 @@ message GroupNew { message FloatingPoint { required double f = 1; + optional bool exact = 2; } message MessageWithMap { diff --git a/vendor/github.com/gogo/protobuf/proto/text.go b/vendor/github.com/gogo/protobuf/proto/text.go index b60be28a..d63732fc 100644 --- a/vendor/github.com/gogo/protobuf/proto/text.go +++ b/vendor/github.com/gogo/protobuf/proto/text.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -50,6 +50,8 @@ import ( "reflect" "sort" "strings" + "sync" + "time" ) var ( @@ -159,7 +161,7 @@ func (w *textWriter) indent() { w.ind++ } func (w *textWriter) unindent() { if w.ind == 0 { - log.Printf("proto: textWriter unindented too far") + log.Print("proto: textWriter unindented too far") return } w.ind-- @@ -180,7 +182,93 @@ type raw interface { Bytes() []byte } -func writeStruct(w *textWriter, sv reflect.Value) error { +func requiresQuotes(u string) bool { + // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. + for _, ch := range u { + switch { + case ch == '.' || ch == '/' || ch == '_': + continue + case '0' <= ch && ch <= '9': + continue + case 'A' <= ch && ch <= 'Z': + continue + case 'a' <= ch && ch <= 'z': + continue + default: + return true + } + } + return false +} + +// isAny reports whether sv is a google.protobuf.Any message +func isAny(sv reflect.Value) bool { + type wkt interface { + XXX_WellKnownType() string + } + t, ok := sv.Addr().Interface().(wkt) + return ok && t.XXX_WellKnownType() == "Any" +} + +// writeProto3Any writes an expanded google.protobuf.Any message. +// +// It returns (false, nil) if sv value can't be unmarshaled (e.g. because +// required messages are not linked in). +// +// It returns (true, error) when sv was written in expanded format or an error +// was encountered. +func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) { + turl := sv.FieldByName("TypeUrl") + val := sv.FieldByName("Value") + if !turl.IsValid() || !val.IsValid() { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + b, ok := val.Interface().([]byte) + if !ok { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + parts := strings.Split(turl.String(), "/") + mt := MessageType(parts[len(parts)-1]) + if mt == nil { + return false, nil + } + m := reflect.New(mt.Elem()) + if err := Unmarshal(b, m.Interface().(Message)); err != nil { + return false, nil + } + w.Write([]byte("[")) + u := turl.String() + if requiresQuotes(u) { + writeString(w, u) + } else { + w.Write([]byte(u)) + } + if w.compact { + w.Write([]byte("]:<")) + } else { + w.Write([]byte("]: <\n")) + w.ind++ + } + if err := tm.writeStruct(w, m.Elem()); err != nil { + return true, err + } + if w.compact { + w.Write([]byte("> ")) + } else { + w.ind-- + w.Write([]byte(">\n")) + } + return true, nil +} + +func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { + if tm.ExpandAny && isAny(sv) { + if canExpand, err := tm.writeProto3Any(w, sv); canExpand { + return err + } + } st := sv.Type() sprops := GetProperties(st) for i := 0; i < sv.NumField(); i++ { @@ -233,10 +321,10 @@ func writeStruct(w *textWriter, sv reflect.Value) error { continue } if len(props.Enum) > 0 { - if err := writeEnum(w, v, props); err != nil { + if err := tm.writeEnum(w, v, props); err != nil { return err } - } else if err := writeAny(w, v, props); err != nil { + } else if err := tm.writeAny(w, v, props); err != nil { return err } if err := w.WriteByte('\n'); err != nil { @@ -278,7 +366,7 @@ func writeStruct(w *textWriter, sv reflect.Value) error { return err } } - if err := writeAny(w, key, props.mkeyprop); err != nil { + if err := tm.writeAny(w, key, props.mkeyprop); err != nil { return err } if err := w.WriteByte('\n'); err != nil { @@ -295,7 +383,7 @@ func writeStruct(w *textWriter, sv reflect.Value) error { return err } } - if err := writeAny(w, val, props.mvalprop); err != nil { + if err := tm.writeAny(w, val, props.mvalprop); err != nil { return err } if err := w.WriteByte('\n'); err != nil { @@ -367,10 +455,10 @@ func writeStruct(w *textWriter, sv reflect.Value) error { } if len(props.Enum) > 0 { - if err := writeEnum(w, fv, props); err != nil { + if err := tm.writeEnum(w, fv, props); err != nil { return err } - } else if err := writeAny(w, fv, props); err != nil { + } else if err := tm.writeAny(w, fv, props); err != nil { return err } @@ -387,8 +475,8 @@ func writeStruct(w *textWriter, sv reflect.Value) error { pv = reflect.New(sv.Type()) pv.Elem().Set(sv) } - if pv.Type().Implements(extendableProtoType) { - if err := writeExtensions(w, pv); err != nil { + if pv.Type().Implements(extensionRangeType) { + if err := tm.writeExtensions(w, pv); err != nil { return err } } @@ -418,20 +506,45 @@ func writeRaw(w *textWriter, b []byte) error { } // writeAny writes an arbitrary field. -func writeAny(w *textWriter, v reflect.Value, props *Properties) error { +func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { v = reflect.Indirect(v) - if props != nil && len(props.CustomType) > 0 { - custom, ok := v.Interface().(Marshaler) - if ok { - data, err := custom.Marshal() + if props != nil { + if len(props.CustomType) > 0 { + custom, ok := v.Interface().(Marshaler) + if ok { + data, err := custom.Marshal() + if err != nil { + return err + } + if err := writeString(w, string(data)); err != nil { + return err + } + return nil + } + } else if props.StdTime { + t, ok := v.Interface().(time.Time) + if !ok { + return fmt.Errorf("stdtime is not time.Time, but %T", v.Interface()) + } + tproto, err := timestampProto(t) if err != nil { return err } - if err := writeString(w, string(data)); err != nil { - return err + props.StdTime = false + err = tm.writeAny(w, reflect.ValueOf(tproto), props) + props.StdTime = true + return err + } else if props.StdDuration { + d, ok := v.Interface().(time.Duration) + if !ok { + return fmt.Errorf("stdtime is not time.Duration, but %T", v.Interface()) } - return nil + dproto := durationProto(d) + props.StdDuration = false + err := tm.writeAny(w, reflect.ValueOf(dproto), props) + props.StdDuration = true + return err } } @@ -481,15 +594,15 @@ func writeAny(w *textWriter, v reflect.Value, props *Properties) error { } } w.indent() - if tm, ok := v.Interface().(encoding.TextMarshaler); ok { - text, err := tm.MarshalText() + if etm, ok := v.Interface().(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() if err != nil { return err } if _, err = w.Write(text); err != nil { return err } - } else if err := writeStruct(w, v); err != nil { + } else if err := tm.writeStruct(w, v); err != nil { return err } w.unindent() @@ -633,30 +746,39 @@ func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } // writeExtensions writes all the extensions in pv. // pv is assumed to be a pointer to a protocol message struct that is extendable. -func writeExtensions(w *textWriter, pv reflect.Value) error { +func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error { emap := extensionMaps[pv.Type().Elem()] - ep := pv.Interface().(extendableProto) + e := pv.Interface().(Message) - // Order the extensions by ID. - // This isn't strictly necessary, but it will give us - // canonical output, which will also make testing easier. var m map[int32]Extension - if em, ok := ep.(extensionsMap); ok { - m = em.ExtensionMap() - } else if em, ok := ep.(extensionsBytes); ok { + var mu sync.Locker + if em, ok := e.(extensionsBytes); ok { eb := em.GetExtensions() var err error m, err = BytesToExtensionsMap(*eb) if err != nil { return err } + mu = notLocker{} + } else if _, ok := e.(extendableProto); ok { + ep, _ := extendable(e) + m, mu = ep.extensionsRead() + if m == nil { + return nil + } } + // Order the extensions by ID. + // This isn't strictly necessary, but it will give us + // canonical output, which will also make testing easier. + + mu.Lock() ids := make([]int32, 0, len(m)) for id := range m { ids = append(ids, id) } sort.Sort(int32Slice(ids)) + mu.Unlock() for _, extNum := range ids { ext := m[extNum] @@ -672,20 +794,20 @@ func writeExtensions(w *textWriter, pv reflect.Value) error { continue } - pb, err := GetExtension(ep, desc) + pb, err := GetExtension(e, desc) if err != nil { return fmt.Errorf("failed getting extension: %v", err) } // Repeated extensions will appear as a slice. if !desc.repeated() { - if err := writeExtension(w, desc.Name, pb); err != nil { + if err := tm.writeExtension(w, desc.Name, pb); err != nil { return err } } else { v := reflect.ValueOf(pb) for i := 0; i < v.Len(); i++ { - if err := writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { + if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { return err } } @@ -694,7 +816,7 @@ func writeExtensions(w *textWriter, pv reflect.Value) error { return nil } -func writeExtension(w *textWriter, name string, pb interface{}) error { +func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error { if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { return err } @@ -703,7 +825,7 @@ func writeExtension(w *textWriter, name string, pb interface{}) error { return err } } - if err := writeAny(w, reflect.ValueOf(pb), nil); err != nil { + if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil { return err } if err := w.WriteByte('\n'); err != nil { @@ -730,12 +852,13 @@ func (w *textWriter) writeIndent() { // TextMarshaler is a configurable text format marshaler. type TextMarshaler struct { - Compact bool // use compact text format (one line). + Compact bool // use compact text format (one line). + ExpandAny bool // expand google.protobuf.Any messages of known types } // Marshal writes a given protocol buffer in text format. // The only errors returned are from w. -func (m *TextMarshaler) Marshal(w io.Writer, pb Message) error { +func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error { val := reflect.ValueOf(pb) if pb == nil || val.IsNil() { w.Write([]byte("")) @@ -750,11 +873,11 @@ func (m *TextMarshaler) Marshal(w io.Writer, pb Message) error { aw := &textWriter{ w: ww, complete: true, - compact: m.Compact, + compact: tm.Compact, } - if tm, ok := pb.(encoding.TextMarshaler); ok { - text, err := tm.MarshalText() + if etm, ok := pb.(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() if err != nil { return err } @@ -768,7 +891,7 @@ func (m *TextMarshaler) Marshal(w io.Writer, pb Message) error { } // Dereference the received pointer so we don't have outer < and >. v := reflect.Indirect(val) - if err := writeStruct(aw, v); err != nil { + if err := tm.writeStruct(aw, v); err != nil { return err } if bw != nil { @@ -778,9 +901,9 @@ func (m *TextMarshaler) Marshal(w io.Writer, pb Message) error { } // Text is the same as Marshal, but returns the string directly. -func (m *TextMarshaler) Text(pb Message) string { +func (tm *TextMarshaler) Text(pb Message) string { var buf bytes.Buffer - m.Marshal(&buf, pb) + tm.Marshal(&buf, pb) return buf.String() } diff --git a/vendor/github.com/gogo/protobuf/proto/text_gogo.go b/vendor/github.com/gogo/protobuf/proto/text_gogo.go index cdb23373..1d6c6aa0 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_gogo.go +++ b/vendor/github.com/gogo/protobuf/proto/text_gogo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -31,10 +33,10 @@ import ( "reflect" ) -func writeEnum(w *textWriter, v reflect.Value, props *Properties) error { +func (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props *Properties) error { m, ok := enumStringMaps[props.Enum] if !ok { - if err := writeAny(w, v, props); err != nil { + if err := tm.writeAny(w, v, props); err != nil { return err } } @@ -46,7 +48,7 @@ func writeEnum(w *textWriter, v reflect.Value, props *Properties) error { } s, ok := m[key] if !ok { - if err := writeAny(w, v, props); err != nil { + if err := tm.writeAny(w, v, props); err != nil { return err } } diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go index 61b4bc8c..9db12e96 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -46,9 +46,13 @@ import ( "reflect" "strconv" "strings" + "time" "unicode/utf8" ) +// Error string emitted when deserializing Any and fields are already set +const anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q already set" + type ParseError struct { Message string Line int // 1-based line number @@ -168,7 +172,7 @@ func (p *textParser) advance() { p.cur.offset, p.cur.line = p.offset, p.line p.cur.unquoted = "" switch p.s[0] { - case '<', '>', '{', '}', ':', '[', ']', ';', ',': + case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': // Single symbol p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] case '"', '\'': @@ -456,7 +460,10 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { fieldSet := make(map[string]bool) // A struct is a sequence of "name: value", terminated by one of // '>' or '}', or the end of the input. A name may also be - // "[extension]". + // "[extension]" or "[type/url]". + // + // The whole struct can also be an expanded Any message, like: + // [type/url] < ... struct contents ... > for { tok := p.next() if tok.err != nil { @@ -466,33 +473,74 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { break } if tok.value == "[" { - // Looks like an extension. + // Looks like an extension or an Any. // // TODO: Check whether we need to handle // namespace rooted names (e.g. ".something.Foo"). - tok = p.next() - if tok.err != nil { - return tok.err + extName, err := p.consumeExtName() + if err != nil { + return err + } + + if s := strings.LastIndex(extName, "/"); s >= 0 { + // If it contains a slash, it's an Any type URL. + messageName := extName[s+1:] + mt := MessageType(messageName) + if mt == nil { + return p.errorf("unrecognized message %q in google.protobuf.Any", messageName) + } + tok = p.next() + if tok.err != nil { + return tok.err + } + // consume an optional colon + if tok.value == ":" { + tok = p.next() + if tok.err != nil { + return tok.err + } + } + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + v := reflect.New(mt.Elem()) + if pe := p.readStruct(v.Elem(), terminator); pe != nil { + return pe + } + b, err := Marshal(v.Interface().(Message)) + if err != nil { + return p.errorf("failed to marshal message of type %q: %v", messageName, err) + } + if fieldSet["type_url"] { + return p.errorf(anyRepeatedlyUnpacked, "type_url") + } + if fieldSet["value"] { + return p.errorf(anyRepeatedlyUnpacked, "value") + } + sv.FieldByName("TypeUrl").SetString(extName) + sv.FieldByName("Value").SetBytes(b) + fieldSet["type_url"] = true + fieldSet["value"] = true + continue } + var desc *ExtensionDesc // This could be faster, but it's functional. // TODO: Do something smarter than a linear scan. for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { - if d.Name == tok.value { + if d.Name == extName { desc = d break } } if desc == nil { - return p.errorf("unrecognized extension %q", tok.value) - } - // Check the extension terminator. - tok = p.next() - if tok.err != nil { - return tok.err - } - if tok.value != "]" { - return p.errorf("unrecognized extension terminator %q", tok.value) + return p.errorf("unrecognized extension %q", extName) } props := &Properties{} @@ -519,7 +567,7 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { } reqFieldErr = err } - ep := sv.Addr().Interface().(extendableProto) + ep := sv.Addr().Interface().(Message) if !rep { SetExtension(ep, desc, ext.Interface()) } else { @@ -550,7 +598,11 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { props = oop.Prop nv := reflect.New(oop.Type.Elem()) dst = nv.Elem().Field(0) - sv.Field(oop.Field).Set(nv) + field := sv.Field(oop.Field) + if !field.IsNil() { + return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name) + } + field.Set(nv) } if !dst.IsValid() { return p.errorf("unknown field name %q in %v", name, st) @@ -571,8 +623,9 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { // The map entry should be this sequence of tokens: // < key : KEY value : VALUE > - // Technically the "key" and "value" could come in any order, - // but in practice they won't. + // However, implementations may omit key or value, and technically + // we should support them in any order. See b/28924776 for a time + // this went wrong. tok := p.next() var terminator string @@ -584,32 +637,39 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { default: return p.errorf("expected '{' or '<', found %q", tok.value) } - if err := p.consumeToken("key"); err != nil { - return err - } - if err := p.consumeToken(":"); err != nil { - return err - } - if err := p.readAny(key, props.mkeyprop); err != nil { - return err - } - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - if err := p.consumeToken("value"); err != nil { - return err - } - if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { - return err - } - if err := p.readAny(val, props.mvalprop); err != nil { - return err - } - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - if err := p.consumeToken(terminator); err != nil { - return err + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + switch tok.value { + case "key": + if err := p.consumeToken(":"); err != nil { + return err + } + if err := p.readAny(key, props.mkeyprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + case "value": + if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { + return err + } + if err := p.readAny(val, props.mvalprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + default: + p.back() + return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) + } } dst.SetMapIndex(key, val) @@ -632,7 +692,8 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { return err } reqFieldErr = err - } else if props.Required { + } + if props.Required { reqCount-- } @@ -648,6 +709,35 @@ func (p *textParser) readStruct(sv reflect.Value, terminator string) error { return reqFieldErr } +// consumeExtName consumes extension name or expanded Any type URL and the +// following ']'. It returns the name or URL consumed. +func (p *textParser) consumeExtName() (string, error) { + tok := p.next() + if tok.err != nil { + return "", tok.err + } + + // If extension name or type url is quoted, it's a single token. + if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { + name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) + if err != nil { + return "", err + } + return name, p.consumeToken("]") + } + + // Consume everything up to "]" + var parts []string + for tok.value != "]" { + parts = append(parts, tok.value) + tok = p.next() + if tok.err != nil { + return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) + } + } + return strings.Join(parts, ""), nil +} + // consumeOptionalSeparator consumes an optional semicolon or comma. // It is used in readStruct to provide backward compatibility. func (p *textParser) consumeOptionalSeparator() error { @@ -708,6 +798,80 @@ func (p *textParser) readAny(v reflect.Value, props *Properties) error { } return nil } + if props.StdTime { + fv := v + p.back() + props.StdTime = false + tproto := ×tamp{} + err := p.readAny(reflect.ValueOf(tproto).Elem(), props) + props.StdTime = true + if err != nil { + return err + } + tim, err := timestampFromProto(tproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ts := fv.Interface().([]*time.Time) + ts = append(ts, &tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } else { + ts := fv.Interface().([]time.Time) + ts = append(ts, tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&tim)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&tim))) + } + return nil + } + if props.StdDuration { + fv := v + p.back() + props.StdDuration = false + dproto := &duration{} + err := p.readAny(reflect.ValueOf(dproto).Elem(), props) + props.StdDuration = true + if err != nil { + return err + } + dur, err := durationFromProto(dproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ds := fv.Interface().([]*time.Duration) + ds = append(ds, &dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } else { + ds := fv.Interface().([]time.Duration) + ds = append(ds, dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&dur)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&dur))) + } + return nil + } switch fv := v; fv.Kind() { case reflect.Slice: at := v.Type() @@ -750,12 +914,12 @@ func (p *textParser) readAny(v reflect.Value, props *Properties) error { fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) return p.readAny(fv.Index(fv.Len()-1), props) case reflect.Bool: - // Either "true", "false", 1 or 0. + // true/1/t/True or false/f/0/False. switch tok.value { - case "true", "1": + case "true", "1", "t", "True": fv.SetBool(true) return nil - case "false", "0": + case "false", "0", "f", "False": fv.SetBool(false) return nil } diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser_test.go b/vendor/github.com/gogo/protobuf/proto/text_parser_test.go index 72fe4080..9a3a447c 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser_test.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser_test.go @@ -336,6 +336,16 @@ var unMarshalTextTests = []UnmarshalTextTest{ }, }, + // Missing required field in a required submessage + { + in: `count: 42 we_must_go_deeper < leo_finally_won_an_oscar <> >`, + err: `proto: required field "testdata.InnerMessage.host" not set`, + out: &MyMessage{ + Count: Int32(42), + WeMustGoDeeper: &RequiredInnerMessage{LeoFinallyWonAnOscar: &InnerMessage{}}, + }, + }, + // Repeated non-repeated field { in: `name: "Rob" name: "Russ"`, @@ -370,6 +380,95 @@ var unMarshalTextTests = []UnmarshalTextTest{ }, }, + // Boolean false + { + in: `count:42 inner { host: "example.com" connected: false }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(false), + }, + }, + }, + // Boolean true + { + in: `count:42 inner { host: "example.com" connected: true }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(true), + }, + }, + }, + // Boolean 0 + { + in: `count:42 inner { host: "example.com" connected: 0 }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(false), + }, + }, + }, + // Boolean 1 + { + in: `count:42 inner { host: "example.com" connected: 1 }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(true), + }, + }, + }, + // Boolean f + { + in: `count:42 inner { host: "example.com" connected: f }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(false), + }, + }, + }, + // Boolean t + { + in: `count:42 inner { host: "example.com" connected: t }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(true), + }, + }, + }, + // Boolean False + { + in: `count:42 inner { host: "example.com" connected: False }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(false), + }, + }, + }, + // Boolean True + { + in: `count:42 inner { host: "example.com" connected: True }`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("example.com"), + Connected: Bool(true), + }, + }, + }, + // Extension buildExtStructTest(`count: 42 [testdata.Ext.more]:`), buildExtStructTest(`count: 42 [testdata.Ext.more] {data:"Hello, world!"}`), @@ -498,7 +597,10 @@ func TestMapParsing(t *testing.T) { const in = `name_mapping: name_mapping:` + `msg_mapping:,>` + // separating commas are okay `msg_mapping>` + // no colon after "value" - `byte_mapping:` + `msg_mapping:>` + // omitted key + `msg_mapping:` + // omitted value + `byte_mapping:` + + `byte_mapping:<>` // omitted key and value want := &MessageWithMap{ NameMapping: map[int32]string{ 1: "Beatles", @@ -507,9 +609,12 @@ func TestMapParsing(t *testing.T) { MsgMapping: map[int64]*FloatingPoint{ -4: {F: Float64(2.0)}, -2: {F: Float64(4.0)}, + 0: {F: Float64(5.0)}, + 1: nil, }, ByteMapping: map[bool][]byte{ - true: []byte("so be it"), + false: nil, + true: []byte("so be it"), }, } if err := UnmarshalText(in, m); err != nil { @@ -523,13 +628,24 @@ func TestMapParsing(t *testing.T) { func TestOneofParsing(t *testing.T) { const in = `name:"Shrek"` m := new(Communique) - want := &Communique{Union: &Communique_Name{"Shrek"}} + want := &Communique{Union: &Communique_Name{Name: "Shrek"}} if err := UnmarshalText(in, m); err != nil { t.Fatal(err) } if !Equal(m, want) { t.Errorf("\n got %v\nwant %v", m, want) } + + const inOverwrite = `name:"Shrek" number:42` + m = new(Communique) + testErr := "line 1.13: field 'number' would overwrite already parsed oneof 'Union'" + if err := UnmarshalText(inOverwrite, m); err == nil { + t.Errorf("TestOneofParsing: Didn't get expected error: %v", testErr) + } else if err.Error() != testErr { + t.Errorf("TestOneofParsing: Incorrect error.\nHave: %v\nWant: %v", + err.Error(), testErr) + } + } var benchInput string diff --git a/vendor/github.com/gogo/protobuf/proto/timestamp.go b/vendor/github.com/gogo/protobuf/proto/timestamp.go new file mode 100644 index 00000000..9324f654 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/timestamp.go @@ -0,0 +1,113 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %#v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %#v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %#v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func timestampFromProto(ts *timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func timestampProto(t time.Time) (*timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := ×tamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} diff --git a/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go b/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go new file mode 100644 index 00000000..d4276474 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go @@ -0,0 +1,229 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "reflect" + "time" +) + +var timeType = reflect.TypeOf((*time.Time)(nil)).Elem() + +type timestamp struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *timestamp) Reset() { *m = timestamp{} } +func (*timestamp) ProtoMessage() {} +func (*timestamp) String() string { return "timestamp" } + +func init() { + RegisterType((*timestamp)(nil), "gogo.protobuf.proto.timestamp") +} + +func (o *Buffer) decTimestamp() (time.Time, error) { + b, err := o.DecodeRawBytes(true) + if err != nil { + return time.Time{}, err + } + tproto := ×tamp{} + if err := Unmarshal(b, tproto); err != nil { + return time.Time{}, err + } + return timestampFromProto(tproto) +} + +func (o *Buffer) dec_time(p *Properties, base structPointer) error { + t, err := o.decTimestamp() + if err != nil { + return err + } + setPtrCustomType(base, p.field, &t) + return nil +} + +func (o *Buffer) dec_ref_time(p *Properties, base structPointer) error { + t, err := o.decTimestamp() + if err != nil { + return err + } + setCustomType(base, p.field, &t) + return nil +} + +func (o *Buffer) dec_slice_time(p *Properties, base structPointer) error { + t, err := o.decTimestamp() + if err != nil { + return err + } + newBas := appendStructPointer(base, p.field, reflect.SliceOf(reflect.PtrTo(timeType))) + var zero field + setPtrCustomType(newBas, zero, &t) + return nil +} + +func (o *Buffer) dec_slice_ref_time(p *Properties, base structPointer) error { + t, err := o.decTimestamp() + if err != nil { + return err + } + newBas := appendStructPointer(base, p.field, reflect.SliceOf(timeType)) + var zero field + setCustomType(newBas, zero, &t) + return nil +} + +func size_time(p *Properties, base structPointer) (n int) { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return 0 + } + tim := structPointer_Interface(structp, timeType).(*time.Time) + t, err := timestampProto(*tim) + if err != nil { + return 0 + } + size := Size(t) + return size + sizeVarint(uint64(size)) + len(p.tagcode) +} + +func (o *Buffer) enc_time(p *Properties, base structPointer) error { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return ErrNil + } + tim := structPointer_Interface(structp, timeType).(*time.Time) + t, err := timestampProto(*tim) + if err != nil { + return err + } + data, err := Marshal(t) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return nil +} + +func size_ref_time(p *Properties, base structPointer) (n int) { + tim := structPointer_InterfaceAt(base, p.field, timeType).(*time.Time) + t, err := timestampProto(*tim) + if err != nil { + return 0 + } + size := Size(t) + return size + sizeVarint(uint64(size)) + len(p.tagcode) +} + +func (o *Buffer) enc_ref_time(p *Properties, base structPointer) error { + tim := structPointer_InterfaceAt(base, p.field, timeType).(*time.Time) + t, err := timestampProto(*tim) + if err != nil { + return err + } + data, err := Marshal(t) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return nil +} + +func size_slice_time(p *Properties, base structPointer) (n int) { + ptims := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(reflect.PtrTo(timeType))).(*[]*time.Time) + tims := *ptims + for i := 0; i < len(tims); i++ { + if tims[i] == nil { + return 0 + } + tproto, err := timestampProto(*tims[i]) + if err != nil { + return 0 + } + size := Size(tproto) + n += len(p.tagcode) + size + sizeVarint(uint64(size)) + } + return n +} + +func (o *Buffer) enc_slice_time(p *Properties, base structPointer) error { + ptims := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(reflect.PtrTo(timeType))).(*[]*time.Time) + tims := *ptims + for i := 0; i < len(tims); i++ { + if tims[i] == nil { + return errRepeatedHasNil + } + tproto, err := timestampProto(*tims[i]) + if err != nil { + return err + } + data, err := Marshal(tproto) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + } + return nil +} + +func size_slice_ref_time(p *Properties, base structPointer) (n int) { + ptims := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(timeType)).(*[]time.Time) + tims := *ptims + for i := 0; i < len(tims); i++ { + tproto, err := timestampProto(tims[i]) + if err != nil { + return 0 + } + size := Size(tproto) + n += len(p.tagcode) + size + sizeVarint(uint64(size)) + } + return n +} + +func (o *Buffer) enc_slice_ref_time(p *Properties, base structPointer) error { + ptims := structPointer_InterfaceAt(base, p.field, reflect.SliceOf(timeType)).(*[]time.Time) + tims := *ptims + for i := 0; i < len(tims); i++ { + tproto, err := timestampProto(tims[i]) + if err != nil { + return err + } + data, err := Marshal(tproto) + if err != nil { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/Makefile b/vendor/github.com/gogo/protobuf/protobuf/Makefile new file mode 100644 index 00000000..86b33c45 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/Makefile @@ -0,0 +1,30 @@ +URL="https://raw.githubusercontent.com/google/protobuf/master/src/google/protobuf/" + +update: + go install github.com/gogo/protobuf/gogoreplace + + (cd ./google/protobuf && rm descriptor.proto; wget ${URL}/descriptor.proto) + # gogoprotobuf requires users to import gogo.proto which imports descriptor.proto + # The descriptor.proto is only compatible with proto3 just because of the reserved keyword. + # We remove it to stay compatible with previous versions of protoc before proto3 + gogoreplace 'reserved 38;' '//reserved 38;' ./google/protobuf/descriptor.proto + + (cd ./google/protobuf/compiler && rm plugin.proto; wget ${URL}/compiler/plugin.proto) + + + (cd ./google/protobuf && rm any.proto; wget ${URL}/any.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/any";' 'go_package = "types";' ./google/protobuf/any.proto + (cd ./google/protobuf && rm empty.proto; wget ${URL}/empty.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/empty";' 'go_package = "types";' ./google/protobuf/empty.proto + (cd ./google/protobuf && rm timestamp.proto; wget ${URL}/timestamp.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/timestamp";' 'go_package = "types";' ./google/protobuf/timestamp.proto + (cd ./google/protobuf && rm duration.proto; wget ${URL}/duration.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/duration";' 'go_package = "types";' ./google/protobuf/duration.proto + (cd ./google/protobuf && rm struct.proto; wget ${URL}/struct.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/struct;structpb";' 'go_package = "types";' ./google/protobuf/struct.proto + (cd ./google/protobuf && rm wrappers.proto; wget ${URL}/wrappers.proto) + gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/wrappers";' 'go_package = "types";' ./google/protobuf/wrappers.proto + (cd ./google/protobuf && rm field_mask.proto; wget ${URL}/field_mask.proto) + gogoreplace 'option csharp_namespace = "Google.Protobuf.WellKnownTypes";' 'option csharp_namespace = "Google.Protobuf.WellKnownTypes"; option go_package = "types";' ./google/protobuf/field_mask.proto + + diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto new file mode 100644 index 00000000..7eaf2291 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto @@ -0,0 +1,139 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the scheme `http`, `https`, or no scheme, the + // following restrictions and interpretations apply: + // + // * If no scheme is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto index 5116167e..6e4da2c1 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto @@ -53,6 +53,16 @@ option go_package = "plugin_go"; import "google/protobuf/descriptor.proto"; +// The version number of protocol compiler. +message Version { + optional int32 major = 1; + optional int32 minor = 2; + optional int32 patch = 3; + // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should + // be empty for mainline stable releases. + optional string suffix = 4; +} + // An encoded CodeGeneratorRequest is written to the plugin's stdin. message CodeGeneratorRequest { // The .proto files that were explicitly listed on the command-line. The @@ -75,6 +85,9 @@ message CodeGeneratorRequest { // is not similarly optimized on protoc's end -- it will store all fields in // memory at once before sending them to the plugin. repeated FileDescriptorProto proto_file = 15; + + // The version number of protocol compiler. + optional Version compiler_version = 3; } // The plugin writes an encoded CodeGeneratorResponse to stdout. @@ -147,4 +160,4 @@ message CodeGeneratorResponse { optional string content = 15; } repeated File file = 15; -} \ No newline at end of file +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto index 14594a8c..2cc496b5 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto @@ -139,7 +139,11 @@ message FieldDescriptorProto { TYPE_FIXED32 = 7; TYPE_BOOL = 8; TYPE_STRING = 9; - TYPE_GROUP = 10; // Tag-delimited aggregate. + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; TYPE_MESSAGE = 11; // Length-delimited aggregate. // New in version 2. @@ -157,7 +161,6 @@ message FieldDescriptorProto { LABEL_OPTIONAL = 1; LABEL_REQUIRED = 2; LABEL_REPEATED = 3; - // TODO(sanjay): Should we add LABEL_MAP? }; optional string name = 1; @@ -202,6 +205,7 @@ message FieldDescriptorProto { // Describes a oneof. message OneofDescriptorProto { optional string name = 1; + optional OneofOptions options = 2; } // Describes an enum type. @@ -304,19 +308,8 @@ message FileOptions { // top-level extensions defined in the file. optional bool java_multiple_files = 10 [default=false]; - // If set true, then the Java code generator will generate equals() and - // hashCode() methods for all messages defined in the .proto file. - // This increases generated code size, potentially substantially for large - // protos, which may harm a memory-constrained application. - // - In the full runtime this is a speed optimization, as the - // AbstractMessage base class includes reflection-based implementations of - // these methods. - // - In the lite runtime, setting this option changes the semantics of - // equals() and hashCode() to more closely match those of the full runtime; - // the generated methods compute their results based on field values rather - // than object identity. (Implementations should not assume that hashcodes - // will be consistent across runtimes or versions of the protocol compiler.) - optional bool java_generate_equals_and_hash = 20 [default=false]; + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; // If set true, then the Java2 code generator will generate code that // throws an exception whenever an attempt is made to assign a non-UTF-8 @@ -377,15 +370,19 @@ message FileOptions { // Namespace for generated classes; defaults to the package. optional string csharp_namespace = 37; - // Whether the nano proto compiler should generate in the deprecated non-nano - // suffixed package. - optional bool javanano_use_deprecated_package = 38; + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; // Clients can define custom options in extensions of this message. See above. extensions 1000 to max; + + //reserved 38; } message MessageOptions { @@ -443,6 +440,9 @@ message MessageOptions { // parser. optional bool map_entry = 7; + //reserved 8; // javalite_serializable + + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -471,7 +471,6 @@ message FieldOptions { // false will avoid using packed encoding. optional bool packed = 2; - // The jstype option determines the JavaScript type used for values of the // field. The option is permitted only for 64 bit integral and fixed types // (int64, uint64, sint64, fixed64, sfixed64). By default these types are @@ -512,7 +511,7 @@ message FieldOptions { // // // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outher message + // a lazy sub-message. That is, calling IsInitialized() on the outer message // may return true even if the inner message has missing required fields. // This is necessary because otherwise the inner message would have to be // parsed in order to perform the check, defeating the purpose of lazy @@ -533,6 +532,16 @@ message FieldOptions { optional bool weak = 10 [default=false]; + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + //reserved 4; // removed jtype +} + +message OneofOptions { // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -552,6 +561,7 @@ message EnumOptions { // is a formalization for deprecating enums. optional bool deprecated = 3 [default=false]; + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -606,6 +616,17 @@ message MethodOptions { // this is a formalization for deprecating methods. optional bool deprecated = 33 [default=false]; + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = + 34 [default=IDEMPOTENCY_UNKNOWN]; + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -776,4 +797,30 @@ message SourceCodeInfo { optional string trailing_comments = 4; repeated string leading_detached_comments = 6; } -} \ No newline at end of file +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed=true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + } +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto new file mode 100644 index 00000000..318922b7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto @@ -0,0 +1,104 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// +message Duration { + + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto new file mode 100644 index 00000000..6057c852 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/empty.proto @@ -0,0 +1,52 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "EmptyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +message Empty {} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto new file mode 100644 index 00000000..994af79f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/field_mask.proto @@ -0,0 +1,246 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "FieldMaskProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option go_package = "types"; + +// `FieldMask` represents a set of symbolic field paths, for example: +// +// paths: "f.a" +// paths: "f.b.d" +// +// Here `f` represents a field in some root message, `a` and `b` +// fields in the message found in `f`, and `d` a field found in the +// message in `f.b`. +// +// Field masks are used to specify a subset of fields that should be +// returned by a get operation or modified by an update operation. +// Field masks also have a custom JSON encoding (see below). +// +// # Field Masks in Projections +// +// When used in the context of a projection, a response message or +// sub-message is filtered by the API to only contain those fields as +// specified in the mask. For example, if the mask in the previous +// example is applied to a response message as follows: +// +// f { +// a : 22 +// b { +// d : 1 +// x : 2 +// } +// y : 13 +// } +// z: 8 +// +// The result will not contain specific values for fields x,y and z +// (their value will be set to the default, and omitted in proto text +// output): +// +// +// f { +// a : 22 +// b { +// d : 1 +// } +// } +// +// A repeated field is not allowed except at the last position of a +// paths string. +// +// If a FieldMask object is not present in a get operation, the +// operation applies to all fields (as if a FieldMask of all fields +// had been specified). +// +// Note that a field mask does not necessarily apply to the +// top-level response message. In case of a REST get operation, the +// field mask applies directly to the response, but in case of a REST +// list operation, the mask instead applies to each individual message +// in the returned resource list. In case of a REST custom method, +// other definitions may be used. Where the mask applies will be +// clearly documented together with its declaration in the API. In +// any case, the effect on the returned resource/resources is required +// behavior for APIs. +// +// # Field Masks in Update Operations +// +// A field mask in update operations specifies which fields of the +// targeted resource are going to be updated. The API is required +// to only change the values of the fields as specified in the mask +// and leave the others untouched. If a resource is passed in to +// describe the updated values, the API ignores the values of all +// fields not covered by the mask. +// +// If a repeated field is specified for an update operation, the existing +// repeated values in the target resource will be overwritten by the new values. +// Note that a repeated field is only allowed in the last position of a `paths` +// string. +// +// If a sub-message is specified in the last position of the field mask for an +// update operation, then the existing sub-message in the target resource is +// overwritten. Given the target message: +// +// f { +// b { +// d : 1 +// x : 2 +// } +// c : 1 +// } +// +// And an update message: +// +// f { +// b { +// d : 10 +// } +// } +// +// then if the field mask is: +// +// paths: "f.b" +// +// then the result will be: +// +// f { +// b { +// d : 10 +// } +// c : 1 +// } +// +// However, if the update mask was: +// +// paths: "f.b.d" +// +// then the result would be: +// +// f { +// b { +// d : 10 +// x : 2 +// } +// c : 1 +// } +// +// In order to reset a field's value to the default, the field must +// be in the mask and set to the default value in the provided resource. +// Hence, in order to reset all fields of a resource, provide a default +// instance of the resource and set all fields in the mask, or do +// not provide a mask as described below. +// +// If a field mask is not present on update, the operation applies to +// all fields (as if a field mask of all fields has been specified). +// Note that in the presence of schema evolution, this may mean that +// fields the client does not know and has therefore not filled into +// the request will be reset to their default. If this is unwanted +// behavior, a specific service may require a client to always specify +// a field mask, producing an error if not. +// +// As with get operations, the location of the resource which +// describes the updated values in the request message depends on the +// operation kind. In any case, the effect of the field mask is +// required to be honored by the API. +// +// ## Considerations for HTTP REST +// +// The HTTP kind of an update operation which uses a field mask must +// be set to PATCH instead of PUT in order to satisfy HTTP semantics +// (PUT must only be used for full updates). +// +// # JSON Encoding of Field Masks +// +// In JSON, a field mask is encoded as a single string where paths are +// separated by a comma. Fields name in each path are converted +// to/from lower-camel naming conventions. +// +// As an example, consider the following message declarations: +// +// message Profile { +// User user = 1; +// Photo photo = 2; +// } +// message User { +// string display_name = 1; +// string address = 2; +// } +// +// In proto a field mask for `Profile` may look as such: +// +// mask { +// paths: "user.display_name" +// paths: "photo" +// } +// +// In JSON, the same mask is represented as below: +// +// { +// mask: "user.displayName,photo" +// } +// +// # Field Masks and Oneof Fields +// +// Field masks treat fields in oneofs just as regular fields. Consider the +// following message: +// +// message SampleMessage { +// oneof test_oneof { +// string name = 4; +// SubMessage sub_message = 9; +// } +// } +// +// The field mask can be: +// +// mask { +// paths: "name" +// } +// +// Or: +// +// mask { +// paths: "sub_message" +// } +// +// Note that oneof type names ("test_oneof" in this case) cannot be used in +// paths. +message FieldMask { + // The set of field mask paths. + repeated string paths = 1; +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto new file mode 100644 index 00000000..4f78641f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/struct.proto @@ -0,0 +1,96 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto new file mode 100644 index 00000000..c544c83e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto @@ -0,0 +1,108 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// +message Timestamp { + + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto new file mode 100644 index 00000000..c5632e5c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/wrappers.proto @@ -0,0 +1,118 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go b/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go index 24068b2e..eebcc1cf 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -44,7 +46,6 @@ type MixMatch struct { Old []string Filename string Args []string - Plugins string } func (this MixMatch) Gen(folder string, news []string) { @@ -68,8 +69,7 @@ func (this MixMatch) Gen(folder string, news []string) { if err = ioutil.WriteFile(filepath.Join(folder, this.Filename), []byte(content), 0666); err != nil { panic(err) } - args := append([]string{"--gogo_out=" + this.Plugins + "."}, this.Args...) - args = append(args, filepath.Join(folder, this.Filename)) + args := append(this.Args, filepath.Join(folder, this.Filename)) var regenerate = exec.Command("protoc", args...) out, err := regenerate.CombinedOutput() @@ -93,27 +93,56 @@ func (this MixMatch) Gen(folder string, news []string) { } } -var min = flag.String("version", "2.3.0", "minimum protoc version") -var proto_path = flag.String("proto_path", ".", "") -var def = flag.Bool("default", true, "generate the case where everything is false") -var plugins = flag.String("plugins", "", "--gogo_out=plugins=:.") +func filter(ss []string, flag string) ([]string, string) { + s := make([]string, 0, len(ss)) + var v string + for i := range ss { + if strings.Contains(ss[i], flag) { + vs := strings.Split(ss[i], "=") + v = vs[1] + continue + } + s = append(s, ss[i]) + } + return s, v +} + +func filterArgs(ss []string) ([]string, []string) { + var args []string + var flags []string + for i := range ss { + if strings.Contains(ss[i], "=") { + flags = append(flags, ss[i]) + continue + } + args = append(args, ss[i]) + } + return flags, args +} func main() { - flag.Parse() - if !version.AtLeast(*min) { + flag.String("version", "2.3.0", "minimum protoc version") + flag.Bool("default", true, "generate the case where everything is false") + flags, args := filterArgs(os.Args[1:]) + var min string + flags, min = filter(flags, "-version") + if len(min) == 0 { + min = "2.3.1" + } + if !version.AtLeast(min) { fmt.Printf("protoc version not high enough to parse this proto file\n") return } - args := flag.Args() + if len(args) != 1 { + fmt.Printf("protoc-gen-combo expects a filename\n") + os.Exit(1) + } filename := args[0] - args = append([]string{"--proto_path=" + *proto_path}) + var def string + flags, def = filter(flags, "-default") if _, err := exec.LookPath("protoc"); err != nil { panic("cannot find protoc in PATH") } - pluginStr := "" - if len(*plugins) > 0 { - pluginStr = "plugins=" + *plugins + ":" - } m := MixMatch{ Old: []string{ "option (gogoproto.unmarshaler_all) = false;", @@ -122,10 +151,9 @@ func main() { "option (gogoproto.unsafe_marshaler_all) = false;", }, Filename: filename, - Args: args, - Plugins: pluginStr, + Args: flags, } - if *def { + if def != "false" { m.Gen("./combos/neither/", []string{ "option (gogoproto.unmarshaler_all) = false;", "option (gogoproto.marshaler_all) = false;", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gofast/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gofast/main.go index b8ee60f7..3562a81e 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gofast/main.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gofast/main.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile index d80ceffe..3496dc99 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/Makefile @@ -30,4 +30,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + go install github.com/gogo/protobuf/protoc-gen-gostring protoc --gogo_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto + protoc --gostring_out=. -I=../../protobuf/google/protobuf ../../protobuf/google/protobuf/descriptor.proto diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go new file mode 100644 index 00000000..a85bf198 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.go @@ -0,0 +1,118 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package descriptor provides functions for obtaining protocol buffer +// descriptors for generated Go types. +// +// These functions cannot go in package proto because they depend on the +// generated protobuf descriptor messages, which themselves depend on proto. +package descriptor + +import ( + "bytes" + "compress/gzip" + "fmt" + "io/ioutil" + + "github.com/gogo/protobuf/proto" +) + +// extractFile extracts a FileDescriptorProto from a gzip'd buffer. +func extractFile(gz []byte) (*FileDescriptorProto, error) { + r, err := gzip.NewReader(bytes.NewReader(gz)) + if err != nil { + return nil, fmt.Errorf("failed to open gzip reader: %v", err) + } + defer r.Close() + + b, err := ioutil.ReadAll(r) + if err != nil { + return nil, fmt.Errorf("failed to uncompress descriptor: %v", err) + } + + fd := new(FileDescriptorProto) + if err := proto.Unmarshal(b, fd); err != nil { + return nil, fmt.Errorf("malformed FileDescriptorProto: %v", err) + } + + return fd, nil +} + +// Message is a proto.Message with a method to return its descriptor. +// +// Message types generated by the protocol compiler always satisfy +// the Message interface. +type Message interface { + proto.Message + Descriptor() ([]byte, []int) +} + +// ForMessage returns a FileDescriptorProto and a DescriptorProto from within it +// describing the given message. +func ForMessage(msg Message) (fd *FileDescriptorProto, md *DescriptorProto) { + gz, path := msg.Descriptor() + fd, err := extractFile(gz) + if err != nil { + panic(fmt.Sprintf("invalid FileDescriptorProto for %T: %v", msg, err)) + } + + md = fd.MessageType[path[0]] + for _, i := range path[1:] { + md = md.NestedType[i] + } + return fd, md +} + +// Is this field a scalar numeric type? +func (field *FieldDescriptorProto) IsScalar() bool { + if field.Type == nil { + return false + } + switch *field.Type { + case FieldDescriptorProto_TYPE_DOUBLE, + FieldDescriptorProto_TYPE_FLOAT, + FieldDescriptorProto_TYPE_INT64, + FieldDescriptorProto_TYPE_UINT64, + FieldDescriptorProto_TYPE_INT32, + FieldDescriptorProto_TYPE_FIXED64, + FieldDescriptorProto_TYPE_FIXED32, + FieldDescriptorProto_TYPE_BOOL, + FieldDescriptorProto_TYPE_UINT32, + FieldDescriptorProto_TYPE_ENUM, + FieldDescriptorProto_TYPE_SFIXED32, + FieldDescriptorProto_TYPE_SFIXED64, + FieldDescriptorProto_TYPE_SINT32, + FieldDescriptorProto_TYPE_SINT64: + return true + default: + return false + } +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go index 342d65a4..e2703901 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go @@ -21,12 +21,14 @@ It has these top-level messages: FileOptions MessageOptions FieldOptions + OneofOptions EnumOptions EnumValueOptions ServiceOptions MethodOptions UninterpretedOption SourceCodeInfo + GeneratedCodeInfo */ package descriptor @@ -41,7 +43,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type FieldDescriptorProto_Type int32 @@ -61,6 +65,10 @@ const ( FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // New in version 2. @@ -297,6 +305,48 @@ func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{11, 1} } +// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, +// or neither? HTTP based RPC implementation may choose GET verb for safe +// methods, and PUT verb for idempotent methods instead of the default POST. +type MethodOptions_IdempotencyLevel int32 + +const ( + MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 + MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 + MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 +) + +var MethodOptions_IdempotencyLevel_name = map[int32]string{ + 0: "IDEMPOTENCY_UNKNOWN", + 1: "NO_SIDE_EFFECTS", + 2: "IDEMPOTENT", +} +var MethodOptions_IdempotencyLevel_value = map[string]int32{ + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2, +} + +func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { + p := new(MethodOptions_IdempotencyLevel) + *p = x + return p +} +func (x MethodOptions_IdempotencyLevel) String() string { + return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x)) +} +func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel") + if err != nil { + return err + } + *x = MethodOptions_IdempotencyLevel(value) + return nil +} +func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptorDescriptor, []int{16, 0} +} + // The protocol compiler can output a FileDescriptorSet containing the .proto // files it parses. type FileDescriptorSet struct { @@ -694,8 +744,9 @@ func (m *FieldDescriptorProto) GetOptions() *FieldOptions { // Describes a oneof. type OneofDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_unrecognized []byte `json:"-"` + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` } func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } @@ -710,6 +761,13 @@ func (m *OneofDescriptorProto) GetName() string { return "" } +func (m *OneofDescriptorProto) GetOptions() *OneofOptions { + if m != nil { + return m.Options + } + return nil +} + // Describes an enum type. type EnumDescriptorProto struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` @@ -898,19 +956,8 @@ type FileOptions struct { // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` - // If set true, then the Java code generator will generate equals() and - // hashCode() methods for all messages defined in the .proto file. - // This increases generated code size, potentially substantially for large - // protos, which may harm a memory-constrained application. - // - In the full runtime this is a speed optimization, as the - // AbstractMessage base class includes reflection-based implementations of - // these methods. - // - In the lite runtime, setting this option changes the semantics of - // equals() and hashCode() to more closely match those of the full runtime; - // the generated methods compute their results based on field values rather - // than object identity. (Implementations should not assume that hashcodes - // will be consistent across runtimes or versions of the protocol compiler.) - JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash,def=0" json:"java_generate_equals_and_hash,omitempty"` + // This option does nothing. + JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` // If set true, then the Java2 code generator will generate code that // throws an exception whenever an attempt is made to assign a non-UTF-8 // byte sequence to a string field. @@ -951,13 +998,15 @@ type FileOptions struct { ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` // Namespace for generated classes; defaults to the package. CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` - // Whether the nano proto compiler should generate in the deprecated non-nano - // suffixed package. - JavananoUseDeprecatedPackage *bool `protobuf:"varint,38,opt,name=javanano_use_deprecated_package,json=javananoUseDeprecatedPackage" json:"javanano_use_deprecated_package,omitempty"` + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *FileOptions) Reset() { *m = FileOptions{} } @@ -966,21 +1015,14 @@ func (*FileOptions) ProtoMessage() {} func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{9} } var extRange_FileOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_FileOptions } -func (m *FileOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_FileOptions_JavaMultipleFiles bool = false -const Default_FileOptions_JavaGenerateEqualsAndHash bool = false const Default_FileOptions_JavaStringCheckUtf8 bool = false const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED const Default_FileOptions_CcGenericServices bool = false @@ -1014,7 +1056,7 @@ func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { if m != nil && m.JavaGenerateEqualsAndHash != nil { return *m.JavaGenerateEqualsAndHash } - return Default_FileOptions_JavaGenerateEqualsAndHash + return false } func (m *FileOptions) GetJavaStringCheckUtf8() bool { @@ -1087,11 +1129,11 @@ func (m *FileOptions) GetCsharpNamespace() string { return "" } -func (m *FileOptions) GetJavananoUseDeprecatedPackage() bool { - if m != nil && m.JavananoUseDeprecatedPackage != nil { - return *m.JavananoUseDeprecatedPackage +func (m *FileOptions) GetSwiftPrefix() string { + if m != nil && m.SwiftPrefix != nil { + return *m.SwiftPrefix } - return false + return "" } func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { @@ -1153,9 +1195,9 @@ type MessageOptions struct { // parser. MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MessageOptions) Reset() { *m = MessageOptions{} } @@ -1164,18 +1206,12 @@ func (*MessageOptions) ProtoMessage() {} func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{10} } var extRange_MessageOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MessageOptions } -func (m *MessageOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_MessageOptions_MessageSetWireFormat bool = false const Default_MessageOptions_NoStandardDescriptorAccessor bool = false @@ -1257,7 +1293,7 @@ type FieldOptions struct { // // // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outher message + // a lazy sub-message. That is, calling IsInitialized() on the outer message // may return true even if the inner message has missing required fields. // This is necessary because otherwise the inner message would have to be // parsed in order to perform the check, defeating the purpose of lazy @@ -1275,9 +1311,9 @@ type FieldOptions struct { // For Google-internal migration only. Do not use. Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *FieldOptions) Reset() { *m = FieldOptions{} } @@ -1286,18 +1322,12 @@ func (*FieldOptions) ProtoMessage() {} func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{11} } var extRange_FieldOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_FieldOptions } -func (m *FieldOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL @@ -1354,6 +1384,33 @@ func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { return nil } +type OneofOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OneofOptions) Reset() { *m = OneofOptions{} } +func (m *OneofOptions) String() string { return proto.CompactTextString(m) } +func (*OneofOptions) ProtoMessage() {} +func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{12} } + +var extRange_OneofOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OneofOptions +} + +func (m *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + type EnumOptions struct { // Set this option to true to allow mapping different tag names to the same // value. @@ -1364,29 +1421,23 @@ type EnumOptions struct { // is a formalization for deprecating enums. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *EnumOptions) Reset() { *m = EnumOptions{} } func (m *EnumOptions) String() string { return proto.CompactTextString(m) } func (*EnumOptions) ProtoMessage() {} -func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{12} } +func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{13} } var extRange_EnumOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_EnumOptions } -func (m *EnumOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_EnumOptions_Deprecated bool = false @@ -1418,29 +1469,23 @@ type EnumValueOptions struct { // this is a formalization for deprecating enum values. Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } func (*EnumValueOptions) ProtoMessage() {} -func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{13} } +func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{14} } var extRange_EnumValueOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_EnumValueOptions } -func (m *EnumValueOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_EnumValueOptions_Deprecated bool = false @@ -1465,29 +1510,23 @@ type ServiceOptions struct { // this is a formalization for deprecating services. Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } func (*ServiceOptions) ProtoMessage() {} -func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{14} } +func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{15} } var extRange_ServiceOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_ServiceOptions } -func (m *ServiceOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_ServiceOptions_Deprecated bool = false @@ -1510,33 +1549,29 @@ type MethodOptions struct { // Depending on the target platform, this can emit Deprecated annotations // for the method, or it will be completely ignored; in the very least, // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MethodOptions) Reset() { *m = MethodOptions{} } func (m *MethodOptions) String() string { return proto.CompactTextString(m) } func (*MethodOptions) ProtoMessage() {} -func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{15} } +func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{16} } var extRange_MethodOptions = []proto.ExtensionRange{ - {1000, 536870911}, + {Start: 1000, End: 536870911}, } func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MethodOptions } -func (m *MethodOptions) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} const Default_MethodOptions_Deprecated bool = false +const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN func (m *MethodOptions) GetDeprecated() bool { if m != nil && m.Deprecated != nil { @@ -1545,6 +1580,13 @@ func (m *MethodOptions) GetDeprecated() bool { return Default_MethodOptions_Deprecated } +func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { + if m != nil && m.IdempotencyLevel != nil { + return *m.IdempotencyLevel + } + return Default_MethodOptions_IdempotencyLevel +} + func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { if m != nil { return m.UninterpretedOption @@ -1574,7 +1616,7 @@ type UninterpretedOption struct { func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } func (*UninterpretedOption) ProtoMessage() {} -func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{16} } +func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{17} } func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { if m != nil { @@ -1640,7 +1682,7 @@ func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOptio func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } func (*UninterpretedOption_NamePart) ProtoMessage() {} func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{16, 0} + return fileDescriptorDescriptor, []int{17, 0} } func (m *UninterpretedOption_NamePart) GetNamePart() string { @@ -1710,7 +1752,7 @@ type SourceCodeInfo struct { func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } func (*SourceCodeInfo) ProtoMessage() {} -func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{17} } +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{18} } func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { if m != nil { @@ -1807,7 +1849,7 @@ func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } func (*SourceCodeInfo_Location) ProtoMessage() {} func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{17, 0} + return fileDescriptorDescriptor, []int{18, 0} } func (m *SourceCodeInfo_Location) GetPath() []int32 { @@ -1845,6 +1887,79 @@ func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { return nil } +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +type GeneratedCodeInfo struct { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } +func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo) ProtoMessage() {} +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{19} } + +func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { + if m != nil { + return m.Annotation + } + return nil +} + +type GeneratedCodeInfo_Annotation struct { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Identifies the filesystem path to the original source .proto. + SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} } +func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} +func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { + return fileDescriptorDescriptor, []int{19, 0} +} + +func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string { + if m != nil && m.SourceFile != nil { + return *m.SourceFile + } + return "" +} + +func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 { + if m != nil && m.Begin != nil { + return *m.Begin + } + return 0 +} + +func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + func init() { proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") @@ -1860,6 +1975,7 @@ func init() { proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") + proto.RegisterType((*OneofOptions)(nil), "google.protobuf.OneofOptions") proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") @@ -1868,150 +1984,167 @@ func init() { proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") + proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo") + proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) + proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value) } +func init() { proto.RegisterFile("descriptor.proto", fileDescriptorDescriptor) } + var fileDescriptorDescriptor = []byte{ - // 2192 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x73, 0xdb, 0xd6, - 0x11, 0x2f, 0xff, 0x8a, 0x5c, 0x52, 0x24, 0xf4, 0xac, 0xd8, 0xb4, 0x62, 0xc7, 0x31, 0x63, 0xc7, - 0x8e, 0xd3, 0xd2, 0x19, 0xb7, 0x49, 0x5c, 0xa5, 0x93, 0x0e, 0x45, 0xc2, 0x0a, 0x3d, 0x94, 0xc8, - 0x3e, 0x92, 0xad, 0x93, 0x0b, 0x06, 0x02, 0x1f, 0x29, 0xd8, 0x20, 0xc0, 0x02, 0xa0, 0x6d, 0xe5, - 0xd4, 0x99, 0x9e, 0xfa, 0x0d, 0x3a, 0x6d, 0xa7, 0x87, 0x5c, 0x32, 0xd3, 0x0f, 0xd0, 0x43, 0xef, - 0xbd, 0xf6, 0xd0, 0x73, 0x8f, 0x9d, 0x69, 0xbf, 0x41, 0xaf, 0xdd, 0xf7, 0x1e, 0x00, 0x02, 0x24, - 0x15, 0xab, 0x99, 0x49, 0x13, 0x5d, 0xc4, 0xb7, 0xfb, 0xdb, 0xc5, 0xbe, 0x7d, 0xbf, 0xb7, 0xbb, - 0x00, 0x28, 0x63, 0xe6, 0x19, 0xae, 0x39, 0xf7, 0x1d, 0xb7, 0x31, 0x77, 0x1d, 0xdf, 0x21, 0xd5, - 0xa9, 0xe3, 0x4c, 0x2d, 0x26, 0x57, 0x27, 0x8b, 0x49, 0xfd, 0x08, 0x76, 0x1e, 0x99, 0x16, 0x6b, - 0x47, 0xc0, 0x01, 0xf3, 0xc9, 0x43, 0xc8, 0x4e, 0x50, 0x58, 0x4b, 0xbd, 0x99, 0xb9, 0x5b, 0x7a, - 0x70, 0xab, 0xb1, 0x62, 0xd4, 0x48, 0x5a, 0xf4, 0xb9, 0x98, 0x0a, 0x8b, 0xfa, 0x3f, 0xb3, 0x70, - 0x69, 0x83, 0x96, 0x10, 0xc8, 0xda, 0xfa, 0x8c, 0x7b, 0x4c, 0xdd, 0x2d, 0x52, 0xf1, 0x9b, 0xd4, - 0x60, 0x6b, 0xae, 0x1b, 0xcf, 0xf4, 0x29, 0xab, 0xa5, 0x85, 0x38, 0x5c, 0x92, 0x37, 0x00, 0xc6, - 0x6c, 0xce, 0xec, 0x31, 0xb3, 0x8d, 0xb3, 0x5a, 0x06, 0xa3, 0x28, 0xd2, 0x98, 0x84, 0xbc, 0x0b, - 0x3b, 0xf3, 0xc5, 0x89, 0x65, 0x1a, 0x5a, 0x0c, 0x06, 0x08, 0xcb, 0x51, 0x45, 0x2a, 0xda, 0x4b, - 0xf0, 0x1d, 0xa8, 0xbe, 0x60, 0xfa, 0xb3, 0x38, 0xb4, 0x24, 0xa0, 0x15, 0x2e, 0x8e, 0x01, 0x5b, - 0x50, 0x9e, 0x31, 0xcf, 0xc3, 0x00, 0x34, 0xff, 0x6c, 0xce, 0x6a, 0x59, 0xb1, 0xfb, 0x37, 0xd7, - 0x76, 0xbf, 0xba, 0xf3, 0x52, 0x60, 0x35, 0x44, 0x23, 0xd2, 0x84, 0x22, 0xb3, 0x17, 0x33, 0xe9, - 0x21, 0x77, 0x4e, 0xfe, 0x54, 0x44, 0xac, 0x7a, 0x29, 0x70, 0xb3, 0xc0, 0xc5, 0x96, 0xc7, 0xdc, - 0xe7, 0xa6, 0xc1, 0x6a, 0x79, 0xe1, 0xe0, 0xce, 0x9a, 0x83, 0x81, 0xd4, 0xaf, 0xfa, 0x08, 0xed, - 0x70, 0x2b, 0x45, 0xf6, 0xd2, 0x67, 0xb6, 0x67, 0x3a, 0x76, 0x6d, 0x4b, 0x38, 0xb9, 0xbd, 0xe1, - 0x14, 0x99, 0x35, 0x5e, 0x75, 0xb1, 0xb4, 0x23, 0x1f, 0xc0, 0x96, 0x33, 0xf7, 0xf1, 0x97, 0x57, - 0x2b, 0xe0, 0xf9, 0x94, 0x1e, 0x5c, 0xdb, 0x48, 0x84, 0x9e, 0xc4, 0xd0, 0x10, 0x4c, 0x3a, 0xa0, - 0x78, 0xce, 0xc2, 0x35, 0x98, 0x66, 0x38, 0x63, 0xa6, 0x99, 0xf6, 0xc4, 0xa9, 0x15, 0x85, 0x83, - 0x1b, 0xeb, 0x1b, 0x11, 0xc0, 0x16, 0xe2, 0x3a, 0x08, 0xa3, 0x15, 0x2f, 0xb1, 0x26, 0x97, 0x21, - 0xef, 0x9d, 0xd9, 0xbe, 0xfe, 0xb2, 0x56, 0x16, 0x0c, 0x09, 0x56, 0xf5, 0xff, 0xe4, 0xa0, 0x7a, - 0x11, 0x8a, 0x7d, 0x04, 0xb9, 0x09, 0xdf, 0x25, 0x12, 0xec, 0x7f, 0xc8, 0x81, 0xb4, 0x49, 0x26, - 0x31, 0xff, 0x35, 0x93, 0xd8, 0x84, 0x92, 0xcd, 0x3c, 0x9f, 0x8d, 0x25, 0x23, 0x32, 0x17, 0xe4, - 0x14, 0x48, 0xa3, 0x75, 0x4a, 0x65, 0xbf, 0x16, 0xa5, 0x9e, 0x40, 0x35, 0x0a, 0x49, 0x73, 0x75, - 0x7b, 0x1a, 0x72, 0xf3, 0xfe, 0xab, 0x22, 0x69, 0xa8, 0xa1, 0x1d, 0xe5, 0x66, 0xb4, 0xc2, 0x12, - 0x6b, 0xd2, 0x06, 0x70, 0x6c, 0xe6, 0x4c, 0xf0, 0x7a, 0x19, 0x16, 0xf2, 0x64, 0x73, 0x96, 0x7a, - 0x1c, 0xb2, 0x96, 0x25, 0x47, 0x4a, 0x0d, 0x8b, 0xfc, 0x78, 0x49, 0xb5, 0xad, 0x73, 0x98, 0x72, - 0x24, 0x2f, 0xd9, 0x1a, 0xdb, 0x46, 0x50, 0x71, 0x19, 0xe7, 0x3d, 0xa6, 0x58, 0xee, 0xac, 0x28, - 0x82, 0x68, 0xbc, 0x72, 0x67, 0x34, 0x30, 0x93, 0x1b, 0xdb, 0x76, 0xe3, 0x4b, 0xf2, 0x16, 0x44, - 0x02, 0x4d, 0xd0, 0x0a, 0x44, 0x15, 0x2a, 0x87, 0xc2, 0x63, 0x94, 0xed, 0x3d, 0x84, 0x4a, 0x32, - 0x3d, 0x64, 0x17, 0x72, 0x9e, 0xaf, 0xbb, 0xbe, 0x60, 0x61, 0x8e, 0xca, 0x05, 0x51, 0x20, 0x83, - 0x45, 0x46, 0x54, 0xb9, 0x1c, 0xe5, 0x3f, 0xf7, 0x3e, 0x84, 0xed, 0xc4, 0xe3, 0x2f, 0x6a, 0x58, - 0xff, 0x6d, 0x1e, 0x76, 0x37, 0x71, 0x6e, 0x23, 0xfd, 0xf1, 0xfa, 0x20, 0x03, 0x4e, 0x98, 0x8b, - 0xbc, 0xe3, 0x1e, 0x82, 0x15, 0x32, 0x2a, 0x67, 0xe9, 0x27, 0xcc, 0x42, 0x36, 0xa5, 0xee, 0x56, - 0x1e, 0xbc, 0x7b, 0x21, 0x56, 0x37, 0xba, 0xdc, 0x84, 0x4a, 0x4b, 0xf2, 0x31, 0x64, 0x83, 0x12, - 0xc7, 0x3d, 0xdc, 0xbb, 0x98, 0x07, 0xce, 0x45, 0x2a, 0xec, 0xc8, 0xeb, 0x50, 0xe4, 0xff, 0x65, - 0x6e, 0xf3, 0x22, 0xe6, 0x02, 0x17, 0xf0, 0xbc, 0x92, 0x3d, 0x28, 0x08, 0x9a, 0x8d, 0x59, 0xd8, - 0x1a, 0xa2, 0x35, 0x3f, 0x98, 0x31, 0x9b, 0xe8, 0x0b, 0xcb, 0xd7, 0x9e, 0xeb, 0xd6, 0x82, 0x09, - 0xc2, 0xe0, 0xc1, 0x04, 0xc2, 0x9f, 0x73, 0x19, 0xb9, 0x01, 0x25, 0xc9, 0x4a, 0x13, 0x6d, 0x5e, - 0x8a, 0xea, 0x93, 0xa3, 0x92, 0xa8, 0x1d, 0x2e, 0xe1, 0x8f, 0x7f, 0xea, 0xe1, 0x5d, 0x08, 0x8e, - 0x56, 0x3c, 0x82, 0x0b, 0xc4, 0xe3, 0x3f, 0x5c, 0x2d, 0x7c, 0xd7, 0x37, 0x6f, 0x6f, 0x95, 0x8b, - 0xf5, 0x3f, 0xa7, 0x21, 0x2b, 0xee, 0x5b, 0x15, 0x4a, 0xc3, 0x4f, 0xfb, 0xaa, 0xd6, 0xee, 0x8d, - 0x0e, 0xba, 0xaa, 0x92, 0x22, 0x15, 0x00, 0x21, 0x78, 0xd4, 0xed, 0x35, 0x87, 0x4a, 0x3a, 0x5a, - 0x77, 0x8e, 0x87, 0x1f, 0xfc, 0x48, 0xc9, 0x44, 0x06, 0x23, 0x29, 0xc8, 0xc6, 0x01, 0x3f, 0x7c, - 0xa0, 0xe4, 0x90, 0x09, 0x65, 0xe9, 0xa0, 0xf3, 0x44, 0x6d, 0x23, 0x22, 0x9f, 0x94, 0x20, 0x66, - 0x8b, 0x6c, 0x43, 0x51, 0x48, 0x0e, 0x7a, 0xbd, 0xae, 0x52, 0x88, 0x7c, 0x0e, 0x86, 0xb4, 0x73, - 0x7c, 0xa8, 0x14, 0x23, 0x9f, 0x87, 0xb4, 0x37, 0xea, 0x2b, 0x10, 0x79, 0x38, 0x52, 0x07, 0x83, - 0xe6, 0xa1, 0xaa, 0x94, 0x22, 0xc4, 0xc1, 0xa7, 0x43, 0x75, 0xa0, 0x94, 0x13, 0x61, 0xe1, 0x23, - 0xb6, 0xa3, 0x47, 0xa8, 0xc7, 0xa3, 0x23, 0xa5, 0x42, 0x76, 0x60, 0x5b, 0x3e, 0x22, 0x0c, 0xa2, - 0xba, 0x22, 0xc2, 0x48, 0x95, 0x65, 0x20, 0xd2, 0xcb, 0x4e, 0x42, 0x80, 0x08, 0x52, 0x6f, 0x41, - 0x4e, 0xb0, 0x0b, 0x59, 0x5c, 0xe9, 0x36, 0x0f, 0xd4, 0xae, 0xd6, 0xeb, 0x0f, 0x3b, 0xbd, 0xe3, - 0x66, 0x17, 0x73, 0x17, 0xc9, 0xa8, 0xfa, 0xb3, 0x51, 0x87, 0xaa, 0x6d, 0xcc, 0x5f, 0x4c, 0xd6, - 0x57, 0x9b, 0x43, 0x94, 0x65, 0xea, 0xf7, 0x60, 0x77, 0x53, 0x9d, 0xd9, 0x74, 0x33, 0xea, 0x5f, - 0xa4, 0xe0, 0xd2, 0x86, 0x92, 0xb9, 0xf1, 0x16, 0xfd, 0x14, 0x72, 0x92, 0x69, 0xb2, 0x89, 0xbc, - 0xb3, 0xb1, 0xf6, 0x0a, 0xde, 0xad, 0x35, 0x12, 0x61, 0x17, 0x6f, 0xa4, 0x99, 0x73, 0x1a, 0x29, - 0x77, 0xb1, 0x46, 0xa7, 0x5f, 0xa7, 0xa0, 0x76, 0x9e, 0xef, 0x57, 0xdc, 0xf7, 0x74, 0xe2, 0xbe, - 0x7f, 0xb4, 0x1a, 0xc0, 0xcd, 0xf3, 0xf7, 0xb0, 0x16, 0xc5, 0x97, 0x29, 0xb8, 0xbc, 0x79, 0xde, - 0xd8, 0x18, 0xc3, 0xc7, 0x90, 0x9f, 0x31, 0xff, 0xd4, 0x09, 0x7b, 0xee, 0xdb, 0x1b, 0x2a, 0x39, - 0x57, 0xaf, 0xe6, 0x2a, 0xb0, 0x8a, 0xb7, 0x82, 0xcc, 0x79, 0x43, 0x83, 0x8c, 0x66, 0x2d, 0xd2, - 0xdf, 0xa4, 0xe1, 0xb5, 0x8d, 0xce, 0x37, 0x06, 0x7a, 0x1d, 0xc0, 0xb4, 0xe7, 0x0b, 0x5f, 0xf6, - 0x55, 0x59, 0x66, 0x8a, 0x42, 0x22, 0xae, 0x30, 0x2f, 0x21, 0x0b, 0x3f, 0xd2, 0x67, 0x84, 0x1e, - 0xa4, 0x48, 0x00, 0x1e, 0x2e, 0x03, 0xcd, 0x8a, 0x40, 0xdf, 0x38, 0x67, 0xa7, 0x6b, 0x2d, 0xeb, - 0x3d, 0x50, 0x0c, 0xcb, 0x64, 0xb6, 0xaf, 0x79, 0xbe, 0xcb, 0xf4, 0x99, 0x69, 0x4f, 0x45, 0x1d, - 0x2d, 0xec, 0xe7, 0x26, 0xba, 0xe5, 0x31, 0x5a, 0x95, 0xea, 0x41, 0xa8, 0xe5, 0x16, 0xa2, 0x59, - 0xb8, 0x31, 0x8b, 0x7c, 0xc2, 0x42, 0xaa, 0x23, 0x8b, 0xfa, 0xdf, 0xb7, 0xa0, 0x14, 0x9b, 0xce, - 0xc8, 0x4d, 0x28, 0x3f, 0xd5, 0x9f, 0xeb, 0x5a, 0x38, 0x71, 0xcb, 0x4c, 0x94, 0xb8, 0xac, 0x1f, - 0x4c, 0xdd, 0xef, 0xc1, 0xae, 0x80, 0xe0, 0x1e, 0xf1, 0x41, 0x86, 0xa5, 0x7b, 0x9e, 0x48, 0x5a, - 0x41, 0x40, 0x09, 0xd7, 0xf5, 0xb8, 0xaa, 0x15, 0x6a, 0xc8, 0xfb, 0x70, 0x49, 0x58, 0xcc, 0xb0, - 0xf0, 0x9a, 0x73, 0x8b, 0x69, 0xfc, 0x1d, 0xc0, 0x13, 0xf5, 0x34, 0x8a, 0x6c, 0x87, 0x23, 0x8e, - 0x02, 0x00, 0x8f, 0xc8, 0x23, 0x87, 0x70, 0x5d, 0x98, 0x4d, 0x99, 0xcd, 0x5c, 0xdd, 0x67, 0x1a, - 0xfb, 0xe5, 0x02, 0xb1, 0x9a, 0x6e, 0x8f, 0xb5, 0x53, 0xdd, 0x3b, 0xad, 0xed, 0xc6, 0x1d, 0x5c, - 0xe5, 0xd8, 0xc3, 0x00, 0xaa, 0x0a, 0x64, 0xd3, 0x1e, 0x7f, 0x82, 0x38, 0xb2, 0x0f, 0x97, 0x85, - 0x23, 0x4c, 0x0a, 0xee, 0x59, 0x33, 0x4e, 0x99, 0xf1, 0x4c, 0x5b, 0xf8, 0x93, 0x87, 0xb5, 0xd7, - 0xe3, 0x1e, 0x44, 0x90, 0x03, 0x81, 0x69, 0x71, 0xc8, 0x08, 0x11, 0x64, 0x00, 0x65, 0x7e, 0x1e, - 0x33, 0xf3, 0x73, 0x0c, 0xdb, 0x71, 0x45, 0x8f, 0xa8, 0x6c, 0xb8, 0xdc, 0xb1, 0x24, 0x36, 0x7a, - 0x81, 0xc1, 0x11, 0xce, 0xa7, 0xfb, 0xb9, 0x41, 0x5f, 0x55, 0xdb, 0xb4, 0x14, 0x7a, 0x79, 0xe4, - 0xb8, 0x9c, 0x53, 0x53, 0x27, 0xca, 0x71, 0x49, 0x72, 0x6a, 0xea, 0x84, 0x19, 0xc6, 0x7c, 0x19, - 0x86, 0xdc, 0x36, 0xbe, 0xbb, 0x04, 0xc3, 0xba, 0x57, 0x53, 0x12, 0xf9, 0x32, 0x8c, 0x43, 0x09, - 0x08, 0x68, 0xee, 0xe1, 0x95, 0x78, 0x6d, 0x99, 0xaf, 0xb8, 0xe1, 0xce, 0xda, 0x2e, 0x57, 0x4d, - 0xf1, 0x89, 0xf3, 0xb3, 0x75, 0x43, 0x92, 0x78, 0xe2, 0xfc, 0x6c, 0xd5, 0xec, 0xb6, 0x78, 0x01, - 0x73, 0x99, 0x81, 0x29, 0x1f, 0xd7, 0xae, 0xc4, 0xd1, 0x31, 0x05, 0xb9, 0x8f, 0x44, 0x36, 0x34, - 0x66, 0xeb, 0x27, 0x78, 0xf6, 0xba, 0x8b, 0x3f, 0xbc, 0xda, 0x8d, 0x38, 0xb8, 0x62, 0x18, 0xaa, - 0xd0, 0x36, 0x85, 0x92, 0xdc, 0x83, 0x1d, 0xe7, 0xe4, 0xa9, 0x21, 0xc9, 0xa5, 0xa1, 0x9f, 0x89, - 0xf9, 0xb2, 0x76, 0x4b, 0xa4, 0xa9, 0xca, 0x15, 0x82, 0x5a, 0x7d, 0x21, 0x26, 0xef, 0xa0, 0x73, - 0xef, 0x54, 0x77, 0xe7, 0xa2, 0x49, 0x7b, 0x98, 0x54, 0x56, 0xbb, 0x2d, 0xa1, 0x52, 0x7e, 0x1c, - 0x8a, 0x89, 0x0a, 0x37, 0xf8, 0xe6, 0x6d, 0xdd, 0x76, 0xb4, 0x85, 0xc7, 0xb4, 0x65, 0x88, 0xd1, - 0x59, 0xbc, 0xcd, 0xc3, 0xa2, 0xd7, 0x42, 0xd8, 0xc8, 0xc3, 0x62, 0x16, 0x82, 0xc2, 0xe3, 0x79, - 0x02, 0xbb, 0x0b, 0xdb, 0xb4, 0x91, 0xe2, 0xa8, 0xe1, 0xc6, 0xf2, 0xc2, 0xd6, 0xfe, 0xb5, 0x75, - 0xce, 0xd0, 0x3d, 0x8a, 0xa3, 0x25, 0x49, 0xe8, 0xa5, 0xc5, 0xba, 0xb0, 0xbe, 0x0f, 0xe5, 0x38, - 0x77, 0x48, 0x11, 0x24, 0x7b, 0xb0, 0xbb, 0x61, 0x47, 0x6d, 0xf5, 0xda, 0xbc, 0x17, 0x7e, 0xa6, - 0x62, 0x63, 0xc3, 0x9e, 0xdc, 0xed, 0x0c, 0x55, 0x8d, 0x8e, 0x8e, 0x87, 0x9d, 0x23, 0x55, 0xc9, - 0xdc, 0x2b, 0x16, 0xfe, 0xbd, 0xa5, 0xfc, 0x0a, 0xff, 0xd2, 0xf5, 0xbf, 0xa6, 0xa1, 0x92, 0x9c, - 0x83, 0xc9, 0x4f, 0xe0, 0x4a, 0xf8, 0xd2, 0xea, 0x31, 0x5f, 0x7b, 0x61, 0xba, 0x82, 0xce, 0x33, - 0x5d, 0x4e, 0x92, 0xd1, 0x49, 0xec, 0x06, 0x28, 0x7c, 0xbd, 0xff, 0x05, 0x62, 0x1e, 0x09, 0x08, - 0xe9, 0xc2, 0x0d, 0x4c, 0x19, 0xce, 0x9a, 0xf6, 0x58, 0x77, 0xc7, 0xda, 0xf2, 0x73, 0x81, 0xa6, - 0x1b, 0xc8, 0x03, 0xcf, 0x91, 0x9d, 0x24, 0xf2, 0x72, 0xcd, 0x76, 0x06, 0x01, 0x78, 0x59, 0x62, - 0x9b, 0x01, 0x74, 0x85, 0x35, 0x99, 0xf3, 0x58, 0x83, 0xb3, 0xd7, 0x4c, 0x9f, 0x23, 0x6d, 0x7c, - 0xf7, 0x4c, 0x4c, 0x6f, 0x05, 0x5a, 0x40, 0x81, 0xca, 0xd7, 0xdf, 0xdc, 0x19, 0xc4, 0xf3, 0xf8, - 0x8f, 0x0c, 0x94, 0xe3, 0x13, 0x1c, 0x1f, 0x88, 0x0d, 0x51, 0xe6, 0x53, 0xa2, 0x0a, 0xbc, 0xf5, - 0x95, 0xf3, 0x5e, 0xa3, 0xc5, 0xeb, 0xff, 0x7e, 0x5e, 0xce, 0x55, 0x54, 0x5a, 0xf2, 0xde, 0xcb, - 0xb9, 0xc6, 0xe4, 0xb4, 0x5e, 0xa0, 0xc1, 0x0a, 0x8b, 0x5d, 0xfe, 0xa9, 0x27, 0x7c, 0xe7, 0x85, - 0xef, 0x5b, 0x5f, 0xed, 0xfb, 0xf1, 0x40, 0x38, 0x2f, 0x3e, 0x1e, 0x68, 0xc7, 0x3d, 0x7a, 0xd4, - 0xec, 0xd2, 0xc0, 0x9c, 0x5c, 0x85, 0xac, 0xa5, 0x7f, 0x7e, 0x96, 0xec, 0x14, 0x42, 0x74, 0xd1, - 0xc4, 0xa3, 0x07, 0xfe, 0xc9, 0x23, 0x59, 0x9f, 0x85, 0xe8, 0x1b, 0xa4, 0xfe, 0x7d, 0xc8, 0x89, - 0x7c, 0x11, 0x80, 0x20, 0x63, 0xca, 0xf7, 0x48, 0x01, 0xb2, 0xad, 0x1e, 0xe5, 0xf4, 0x47, 0xbe, - 0x4b, 0xa9, 0xd6, 0xef, 0xa8, 0x2d, 0xbc, 0x01, 0xf5, 0xf7, 0x21, 0x2f, 0x93, 0xc0, 0xaf, 0x46, - 0x94, 0x06, 0x34, 0x92, 0xcb, 0xc0, 0x47, 0x2a, 0xd4, 0x8e, 0x8e, 0x0e, 0x54, 0xaa, 0xa4, 0xe3, - 0xc7, 0xfb, 0x97, 0x14, 0x94, 0x62, 0x03, 0x15, 0x6f, 0xe5, 0xba, 0x65, 0x39, 0x2f, 0x34, 0xdd, - 0x32, 0xb1, 0x42, 0xc9, 0xf3, 0x01, 0x21, 0x6a, 0x72, 0xc9, 0x45, 0xf3, 0xf7, 0x7f, 0xe1, 0xe6, - 0x1f, 0x53, 0xa0, 0xac, 0x0e, 0x63, 0x2b, 0x01, 0xa6, 0xbe, 0xd5, 0x00, 0xff, 0x90, 0x82, 0x4a, - 0x72, 0x02, 0x5b, 0x09, 0xef, 0xe6, 0xb7, 0x1a, 0xde, 0xef, 0x53, 0xb0, 0x9d, 0x98, 0xbb, 0xbe, - 0x53, 0xd1, 0xfd, 0x2e, 0x03, 0x97, 0x36, 0xd8, 0x61, 0x01, 0x92, 0x03, 0xaa, 0x9c, 0x99, 0x7f, - 0x70, 0x91, 0x67, 0x35, 0x78, 0xff, 0xeb, 0xeb, 0xae, 0x1f, 0xcc, 0xb3, 0xd8, 0x2f, 0xcd, 0x31, - 0x16, 0x55, 0x73, 0x62, 0xe2, 0xf8, 0x26, 0xdf, 0x58, 0xe4, 0xd4, 0x5a, 0x5d, 0xca, 0xe5, 0xeb, - 0xf1, 0xf7, 0x81, 0xcc, 0x1d, 0xcf, 0xf4, 0xcd, 0xe7, 0xfc, 0xf3, 0x5c, 0xf8, 0x22, 0xcd, 0xa7, - 0xd8, 0x2c, 0x55, 0x42, 0x4d, 0xc7, 0xf6, 0x23, 0xb4, 0xcd, 0xa6, 0xfa, 0x0a, 0x9a, 0x97, 0xa1, - 0x0c, 0x55, 0x42, 0x4d, 0x84, 0xc6, 0x41, 0x73, 0xec, 0x2c, 0xf8, 0x40, 0x20, 0x71, 0xbc, 0xea, - 0xa5, 0x68, 0x49, 0xca, 0x22, 0x48, 0x30, 0xb1, 0x2d, 0xdf, 0xe0, 0xcb, 0xb4, 0x24, 0x65, 0x12, - 0x72, 0x07, 0xaa, 0xfa, 0x74, 0xea, 0x72, 0xe7, 0xa1, 0x23, 0x39, 0x86, 0x56, 0x22, 0xb1, 0x00, - 0xee, 0x3d, 0x86, 0x42, 0x98, 0x07, 0xde, 0x58, 0x78, 0x26, 0xb0, 0xe7, 0x8b, 0xef, 0x28, 0x69, - 0xfe, 0x52, 0x6f, 0x87, 0x4a, 0x7c, 0xa8, 0xe9, 0x69, 0xcb, 0x0f, 0x7a, 0x69, 0xd4, 0x17, 0x68, - 0xc9, 0xf4, 0xa2, 0x2f, 0x38, 0xf5, 0x2f, 0xb1, 0xbd, 0x26, 0x3f, 0x48, 0x92, 0x36, 0x14, 0x2c, - 0x07, 0xf9, 0xc1, 0x2d, 0xe4, 0xd7, 0xf0, 0xbb, 0xaf, 0xf8, 0x86, 0xd9, 0xe8, 0x06, 0x78, 0x1a, - 0x59, 0xee, 0xfd, 0x2d, 0x05, 0x85, 0x50, 0x8c, 0x8d, 0x22, 0x3b, 0xd7, 0xfd, 0x53, 0xe1, 0x2e, - 0x77, 0x90, 0x56, 0x52, 0x54, 0xac, 0xb9, 0x1c, 0xa7, 0x19, 0x5b, 0x50, 0x20, 0x90, 0xf3, 0x35, - 0x3f, 0x57, 0x8b, 0xe9, 0x63, 0x31, 0xe0, 0x3a, 0xb3, 0x19, 0x9e, 0xa4, 0x17, 0x9e, 0x6b, 0x20, - 0x6f, 0x05, 0x62, 0xfe, 0x5d, 0xdc, 0x77, 0x75, 0xd3, 0x4a, 0x60, 0xb3, 0x02, 0xab, 0x84, 0x8a, - 0x08, 0xbc, 0x0f, 0x57, 0x43, 0xbf, 0x63, 0xe6, 0xeb, 0x38, 0x3c, 0x8f, 0x97, 0x46, 0x79, 0xf1, - 0xb5, 0xeb, 0x4a, 0x00, 0x68, 0x07, 0xfa, 0xd0, 0xf6, 0xe0, 0x09, 0x0e, 0xb2, 0xce, 0x6c, 0x35, - 0x13, 0x07, 0xca, 0xca, 0x7b, 0x97, 0xf7, 0x49, 0xea, 0x33, 0x58, 0x0e, 0x15, 0x5f, 0xa4, 0x33, - 0x87, 0xfd, 0x83, 0x3f, 0xa5, 0xf7, 0x0e, 0xa5, 0x5d, 0x3f, 0xcc, 0x20, 0x65, 0x13, 0x8b, 0x19, - 0x3c, 0x3b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x78, 0x42, 0x69, 0x71, 0xb3, 0x18, 0x00, 0x00, + // 2379 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x73, 0xdb, 0xc6, + 0x15, 0x37, 0xc1, 0x0f, 0x91, 0x8f, 0x14, 0xb5, 0x5a, 0x29, 0x36, 0x2c, 0xc7, 0xb1, 0xcc, 0xd8, + 0xb5, 0x6c, 0xb7, 0x74, 0x46, 0xfe, 0x88, 0xa3, 0x74, 0xd2, 0xa1, 0x48, 0x58, 0xa1, 0x4b, 0x91, + 0x2c, 0x48, 0x35, 0x76, 0x2e, 0x98, 0x15, 0xb0, 0xa4, 0x60, 0x83, 0x00, 0x02, 0x80, 0xb6, 0x95, + 0x93, 0x67, 0x7a, 0xea, 0x7f, 0xd0, 0xe9, 0x74, 0x7a, 0xc8, 0x25, 0x33, 0xed, 0xbd, 0x87, 0xde, + 0x7b, 0xed, 0x4c, 0xef, 0x3d, 0xf4, 0xd0, 0x99, 0xf6, 0x3f, 0xe8, 0xb5, 0xb3, 0xbb, 0x00, 0x08, + 0x7e, 0xd9, 0x4a, 0x66, 0x9c, 0x9c, 0xa4, 0xfd, 0xbd, 0xdf, 0x7b, 0x78, 0xfb, 0xf6, 0x87, 0xdd, + 0x87, 0x25, 0x20, 0x83, 0xfa, 0xba, 0x67, 0xba, 0x81, 0xe3, 0x55, 0x5d, 0xcf, 0x09, 0x1c, 0xbc, + 0x36, 0x74, 0x9c, 0xa1, 0x45, 0xc5, 0xe8, 0x78, 0x3c, 0xa8, 0x1c, 0xc2, 0xfa, 0x23, 0xd3, 0xa2, + 0x8d, 0x98, 0xd8, 0xa3, 0x01, 0x7e, 0x08, 0x99, 0x81, 0x69, 0x51, 0x39, 0xb5, 0x9d, 0xde, 0x29, + 0xee, 0x5e, 0xab, 0xce, 0x38, 0x55, 0xa7, 0x3d, 0xba, 0x0c, 0x56, 0xb9, 0x47, 0xe5, 0xdf, 0x19, + 0xd8, 0x58, 0x60, 0xc5, 0x18, 0x32, 0x36, 0x19, 0xb1, 0x88, 0xa9, 0x9d, 0x82, 0xca, 0xff, 0xc7, + 0x32, 0xac, 0xb8, 0x44, 0x7f, 0x4e, 0x86, 0x54, 0x96, 0x38, 0x1c, 0x0d, 0xf1, 0x07, 0x00, 0x06, + 0x75, 0xa9, 0x6d, 0x50, 0x5b, 0x3f, 0x95, 0xd3, 0xdb, 0xe9, 0x9d, 0x82, 0x9a, 0x40, 0xf0, 0x6d, + 0x58, 0x77, 0xc7, 0xc7, 0x96, 0xa9, 0x6b, 0x09, 0x1a, 0x6c, 0xa7, 0x77, 0xb2, 0x2a, 0x12, 0x86, + 0xc6, 0x84, 0x7c, 0x03, 0xd6, 0x5e, 0x52, 0xf2, 0x3c, 0x49, 0x2d, 0x72, 0x6a, 0x99, 0xc1, 0x09, + 0x62, 0x1d, 0x4a, 0x23, 0xea, 0xfb, 0x64, 0x48, 0xb5, 0xe0, 0xd4, 0xa5, 0x72, 0x86, 0xcf, 0x7e, + 0x7b, 0x6e, 0xf6, 0xb3, 0x33, 0x2f, 0x86, 0x5e, 0xfd, 0x53, 0x97, 0xe2, 0x1a, 0x14, 0xa8, 0x3d, + 0x1e, 0x89, 0x08, 0xd9, 0x25, 0xf5, 0x53, 0xec, 0xf1, 0x68, 0x36, 0x4a, 0x9e, 0xb9, 0x85, 0x21, + 0x56, 0x7c, 0xea, 0xbd, 0x30, 0x75, 0x2a, 0xe7, 0x78, 0x80, 0x1b, 0x73, 0x01, 0x7a, 0xc2, 0x3e, + 0x1b, 0x23, 0xf2, 0xc3, 0x75, 0x28, 0xd0, 0x57, 0x01, 0xb5, 0x7d, 0xd3, 0xb1, 0xe5, 0x15, 0x1e, + 0xe4, 0xfa, 0x82, 0x55, 0xa4, 0x96, 0x31, 0x1b, 0x62, 0xe2, 0x87, 0x1f, 0xc0, 0x8a, 0xe3, 0x06, + 0xa6, 0x63, 0xfb, 0x72, 0x7e, 0x3b, 0xb5, 0x53, 0xdc, 0x7d, 0x7f, 0xa1, 0x10, 0x3a, 0x82, 0xa3, + 0x46, 0x64, 0xdc, 0x04, 0xe4, 0x3b, 0x63, 0x4f, 0xa7, 0x9a, 0xee, 0x18, 0x54, 0x33, 0xed, 0x81, + 0x23, 0x17, 0x78, 0x80, 0x2b, 0xf3, 0x13, 0xe1, 0xc4, 0xba, 0x63, 0xd0, 0xa6, 0x3d, 0x70, 0xd4, + 0xb2, 0x3f, 0x35, 0xc6, 0xe7, 0x21, 0xe7, 0x9f, 0xda, 0x01, 0x79, 0x25, 0x97, 0xb8, 0x42, 0xc2, + 0x51, 0xe5, 0x7f, 0x59, 0x58, 0x3b, 0x8b, 0xc4, 0x3e, 0x85, 0xec, 0x80, 0xcd, 0x52, 0x96, 0xbe, + 0x4b, 0x0d, 0x84, 0xcf, 0x74, 0x11, 0x73, 0xdf, 0xb3, 0x88, 0x35, 0x28, 0xda, 0xd4, 0x0f, 0xa8, + 0x21, 0x14, 0x91, 0x3e, 0xa3, 0xa6, 0x40, 0x38, 0xcd, 0x4b, 0x2a, 0xf3, 0xbd, 0x24, 0xf5, 0x04, + 0xd6, 0xe2, 0x94, 0x34, 0x8f, 0xd8, 0xc3, 0x48, 0x9b, 0x77, 0xde, 0x96, 0x49, 0x55, 0x89, 0xfc, + 0x54, 0xe6, 0xa6, 0x96, 0xe9, 0xd4, 0x18, 0x37, 0x00, 0x1c, 0x9b, 0x3a, 0x03, 0xcd, 0xa0, 0xba, + 0x25, 0xe7, 0x97, 0x54, 0xa9, 0xc3, 0x28, 0x73, 0x55, 0x72, 0x04, 0xaa, 0x5b, 0xf8, 0x93, 0x89, + 0xd4, 0x56, 0x96, 0x28, 0xe5, 0x50, 0xbc, 0x64, 0x73, 0x6a, 0x3b, 0x82, 0xb2, 0x47, 0x99, 0xee, + 0xa9, 0x11, 0xce, 0xac, 0xc0, 0x93, 0xa8, 0xbe, 0x75, 0x66, 0x6a, 0xe8, 0x26, 0x26, 0xb6, 0xea, + 0x25, 0x87, 0xf8, 0x43, 0x88, 0x01, 0x8d, 0xcb, 0x0a, 0xf8, 0x2e, 0x54, 0x8a, 0xc0, 0x36, 0x19, + 0xd1, 0xad, 0x87, 0x50, 0x9e, 0x2e, 0x0f, 0xde, 0x84, 0xac, 0x1f, 0x10, 0x2f, 0xe0, 0x2a, 0xcc, + 0xaa, 0x62, 0x80, 0x11, 0xa4, 0xa9, 0x6d, 0xf0, 0x5d, 0x2e, 0xab, 0xb2, 0x7f, 0xb7, 0x3e, 0x86, + 0xd5, 0xa9, 0xc7, 0x9f, 0xd5, 0xb1, 0xf2, 0xbb, 0x1c, 0x6c, 0x2e, 0xd2, 0xdc, 0x42, 0xf9, 0x9f, + 0x87, 0x9c, 0x3d, 0x1e, 0x1d, 0x53, 0x4f, 0x4e, 0xf3, 0x08, 0xe1, 0x08, 0xd7, 0x20, 0x6b, 0x91, + 0x63, 0x6a, 0xc9, 0x99, 0xed, 0xd4, 0x4e, 0x79, 0xf7, 0xf6, 0x99, 0x54, 0x5d, 0x6d, 0x31, 0x17, + 0x55, 0x78, 0xe2, 0xcf, 0x20, 0x13, 0x6e, 0x71, 0x2c, 0xc2, 0xad, 0xb3, 0x45, 0x60, 0x5a, 0x54, + 0xb9, 0x1f, 0xbe, 0x04, 0x05, 0xf6, 0x57, 0xd4, 0x36, 0xc7, 0x73, 0xce, 0x33, 0x80, 0xd5, 0x15, + 0x6f, 0x41, 0x9e, 0xcb, 0xcc, 0xa0, 0xd1, 0xd1, 0x10, 0x8f, 0xd9, 0xc2, 0x18, 0x74, 0x40, 0xc6, + 0x56, 0xa0, 0xbd, 0x20, 0xd6, 0x98, 0x72, 0xc1, 0x14, 0xd4, 0x52, 0x08, 0xfe, 0x9a, 0x61, 0xf8, + 0x0a, 0x14, 0x85, 0x2a, 0x4d, 0xdb, 0xa0, 0xaf, 0xf8, 0xee, 0x93, 0x55, 0x85, 0x50, 0x9b, 0x0c, + 0x61, 0x8f, 0x7f, 0xe6, 0x3b, 0x76, 0xb4, 0xb4, 0xfc, 0x11, 0x0c, 0xe0, 0x8f, 0xff, 0x78, 0x76, + 0xe3, 0xbb, 0xbc, 0x78, 0x7a, 0xb3, 0x5a, 0xac, 0xfc, 0x45, 0x82, 0x0c, 0x7f, 0xdf, 0xd6, 0xa0, + 0xd8, 0x7f, 0xda, 0x55, 0xb4, 0x46, 0xe7, 0x68, 0xbf, 0xa5, 0xa0, 0x14, 0x2e, 0x03, 0x70, 0xe0, + 0x51, 0xab, 0x53, 0xeb, 0x23, 0x29, 0x1e, 0x37, 0xdb, 0xfd, 0x07, 0xf7, 0x50, 0x3a, 0x76, 0x38, + 0x12, 0x40, 0x26, 0x49, 0xb8, 0xbb, 0x8b, 0xb2, 0x18, 0x41, 0x49, 0x04, 0x68, 0x3e, 0x51, 0x1a, + 0x0f, 0xee, 0xa1, 0xdc, 0x34, 0x72, 0x77, 0x17, 0xad, 0xe0, 0x55, 0x28, 0x70, 0x64, 0xbf, 0xd3, + 0x69, 0xa1, 0x7c, 0x1c, 0xb3, 0xd7, 0x57, 0x9b, 0xed, 0x03, 0x54, 0x88, 0x63, 0x1e, 0xa8, 0x9d, + 0xa3, 0x2e, 0x82, 0x38, 0xc2, 0xa1, 0xd2, 0xeb, 0xd5, 0x0e, 0x14, 0x54, 0x8c, 0x19, 0xfb, 0x4f, + 0xfb, 0x4a, 0x0f, 0x95, 0xa6, 0xd2, 0xba, 0xbb, 0x8b, 0x56, 0xe3, 0x47, 0x28, 0xed, 0xa3, 0x43, + 0x54, 0xc6, 0xeb, 0xb0, 0x2a, 0x1e, 0x11, 0x25, 0xb1, 0x36, 0x03, 0x3d, 0xb8, 0x87, 0xd0, 0x24, + 0x11, 0x11, 0x65, 0x7d, 0x0a, 0x78, 0x70, 0x0f, 0xe1, 0x4a, 0x1d, 0xb2, 0x5c, 0x5d, 0x18, 0x43, + 0xb9, 0x55, 0xdb, 0x57, 0x5a, 0x5a, 0xa7, 0xdb, 0x6f, 0x76, 0xda, 0xb5, 0x16, 0x4a, 0x4d, 0x30, + 0x55, 0xf9, 0xd5, 0x51, 0x53, 0x55, 0x1a, 0x48, 0x4a, 0x62, 0x5d, 0xa5, 0xd6, 0x57, 0x1a, 0x28, + 0x5d, 0xd1, 0x61, 0x73, 0xd1, 0x3e, 0xb3, 0xf0, 0xcd, 0x48, 0x2c, 0xb1, 0xb4, 0x64, 0x89, 0x79, + 0xac, 0xb9, 0x25, 0xfe, 0x26, 0x05, 0x1b, 0x0b, 0xf6, 0xda, 0x85, 0x0f, 0xf9, 0x05, 0x64, 0x85, + 0x44, 0xc5, 0xe9, 0x73, 0x73, 0xe1, 0xa6, 0xcd, 0x05, 0x3b, 0x77, 0x02, 0x71, 0xbf, 0xe4, 0x09, + 0x9c, 0x5e, 0x72, 0x02, 0xb3, 0x10, 0x73, 0x49, 0xfe, 0x26, 0x05, 0xf2, 0xb2, 0xd8, 0x6f, 0xd9, + 0x28, 0xa4, 0xa9, 0x8d, 0xe2, 0xd3, 0xd9, 0x04, 0xae, 0x2e, 0x9f, 0xc3, 0x5c, 0x16, 0xdf, 0xa6, + 0xe0, 0xfc, 0xe2, 0x46, 0x65, 0x61, 0x0e, 0x9f, 0x41, 0x6e, 0x44, 0x83, 0x13, 0x27, 0x3a, 0xac, + 0x7f, 0xb2, 0xe0, 0x08, 0x60, 0xe6, 0xd9, 0x5a, 0x85, 0x5e, 0xc9, 0x33, 0x24, 0xbd, 0xac, 0xdb, + 0x10, 0xd9, 0xcc, 0x65, 0xfa, 0x5b, 0x09, 0xde, 0x5b, 0x18, 0x7c, 0x61, 0xa2, 0x97, 0x01, 0x4c, + 0xdb, 0x1d, 0x07, 0xe2, 0x40, 0x16, 0xfb, 0x53, 0x81, 0x23, 0xfc, 0xdd, 0x67, 0x7b, 0xcf, 0x38, + 0x88, 0xed, 0x69, 0x6e, 0x07, 0x01, 0x71, 0xc2, 0xc3, 0x49, 0xa2, 0x19, 0x9e, 0xe8, 0x07, 0x4b, + 0x66, 0x3a, 0x77, 0xd6, 0x7d, 0x04, 0x48, 0xb7, 0x4c, 0x6a, 0x07, 0x9a, 0x1f, 0x78, 0x94, 0x8c, + 0x4c, 0x7b, 0xc8, 0x37, 0xe0, 0xfc, 0x5e, 0x76, 0x40, 0x2c, 0x9f, 0xaa, 0x6b, 0xc2, 0xdc, 0x8b, + 0xac, 0xcc, 0x83, 0x9f, 0x32, 0x5e, 0xc2, 0x23, 0x37, 0xe5, 0x21, 0xcc, 0xb1, 0x47, 0xe5, 0xcf, + 0x2b, 0x50, 0x4c, 0xb4, 0x75, 0xf8, 0x2a, 0x94, 0x9e, 0x91, 0x17, 0x44, 0x8b, 0x5a, 0x75, 0x51, + 0x89, 0x22, 0xc3, 0xba, 0x61, 0xbb, 0xfe, 0x11, 0x6c, 0x72, 0x8a, 0x33, 0x0e, 0xa8, 0xa7, 0xe9, + 0x16, 0xf1, 0x7d, 0x5e, 0xb4, 0x3c, 0xa7, 0x62, 0x66, 0xeb, 0x30, 0x53, 0x3d, 0xb2, 0xe0, 0xfb, + 0xb0, 0xc1, 0x3d, 0x46, 0x63, 0x2b, 0x30, 0x5d, 0x8b, 0x6a, 0xec, 0xe3, 0xc1, 0xe7, 0x1b, 0x71, + 0x9c, 0xd9, 0x3a, 0x63, 0x1c, 0x86, 0x04, 0x96, 0x91, 0x8f, 0x1b, 0x70, 0x99, 0xbb, 0x0d, 0xa9, + 0x4d, 0x3d, 0x12, 0x50, 0x8d, 0x7e, 0x35, 0x26, 0x96, 0xaf, 0x11, 0xdb, 0xd0, 0x4e, 0x88, 0x7f, + 0x22, 0x6f, 0xb2, 0x00, 0xfb, 0x92, 0x9c, 0x52, 0x2f, 0x32, 0xe2, 0x41, 0xc8, 0x53, 0x38, 0xad, + 0x66, 0x1b, 0x9f, 0x13, 0xff, 0x04, 0xef, 0xc1, 0x79, 0x1e, 0xc5, 0x0f, 0x3c, 0xd3, 0x1e, 0x6a, + 0xfa, 0x09, 0xd5, 0x9f, 0x6b, 0xe3, 0x60, 0xf0, 0x50, 0xbe, 0x94, 0x7c, 0x3e, 0xcf, 0xb0, 0xc7, + 0x39, 0x75, 0x46, 0x39, 0x0a, 0x06, 0x0f, 0x71, 0x0f, 0x4a, 0x6c, 0x31, 0x46, 0xe6, 0xd7, 0x54, + 0x1b, 0x38, 0x1e, 0x3f, 0x59, 0xca, 0x0b, 0xde, 0xec, 0x44, 0x05, 0xab, 0x9d, 0xd0, 0xe1, 0xd0, + 0x31, 0xe8, 0x5e, 0xb6, 0xd7, 0x55, 0x94, 0x86, 0x5a, 0x8c, 0xa2, 0x3c, 0x72, 0x3c, 0x26, 0xa8, + 0xa1, 0x13, 0x17, 0xb8, 0x28, 0x04, 0x35, 0x74, 0xa2, 0xf2, 0xde, 0x87, 0x0d, 0x5d, 0x17, 0x73, + 0x36, 0x75, 0x2d, 0x6c, 0xf1, 0x7d, 0x19, 0x4d, 0x15, 0x4b, 0xd7, 0x0f, 0x04, 0x21, 0xd4, 0xb8, + 0x8f, 0x3f, 0x81, 0xf7, 0x26, 0xc5, 0x4a, 0x3a, 0xae, 0xcf, 0xcd, 0x72, 0xd6, 0xf5, 0x3e, 0x6c, + 0xb8, 0xa7, 0xf3, 0x8e, 0x78, 0xea, 0x89, 0xee, 0xe9, 0xac, 0xdb, 0x75, 0xfe, 0xd9, 0xe6, 0x51, + 0x9d, 0x04, 0xd4, 0x90, 0x2f, 0x24, 0xd9, 0x09, 0x03, 0xbe, 0x03, 0x48, 0xd7, 0x35, 0x6a, 0x93, + 0x63, 0x8b, 0x6a, 0xc4, 0xa3, 0x36, 0xf1, 0xe5, 0x2b, 0x49, 0x72, 0x59, 0xd7, 0x15, 0x6e, 0xad, + 0x71, 0x23, 0xbe, 0x05, 0xeb, 0xce, 0xf1, 0x33, 0x5d, 0x28, 0x4b, 0x73, 0x3d, 0x3a, 0x30, 0x5f, + 0xc9, 0xd7, 0x78, 0x99, 0xd6, 0x98, 0x81, 0xeb, 0xaa, 0xcb, 0x61, 0x7c, 0x13, 0x90, 0xee, 0x9f, + 0x10, 0xcf, 0xe5, 0x47, 0xbb, 0xef, 0x12, 0x9d, 0xca, 0xd7, 0x05, 0x55, 0xe0, 0xed, 0x08, 0x66, + 0xca, 0xf6, 0x5f, 0x9a, 0x83, 0x20, 0x8a, 0x78, 0x43, 0x28, 0x9b, 0x63, 0x61, 0xb4, 0x27, 0xb0, + 0x39, 0xb6, 0x4d, 0x3b, 0xa0, 0x9e, 0xeb, 0x51, 0xd6, 0xc4, 0x8b, 0x37, 0x51, 0xfe, 0xcf, 0xca, + 0x92, 0x36, 0xfc, 0x28, 0xc9, 0x16, 0x02, 0x50, 0x37, 0xc6, 0xf3, 0x60, 0x65, 0x0f, 0x4a, 0x49, + 0x5d, 0xe0, 0x02, 0x08, 0x65, 0xa0, 0x14, 0x3b, 0x63, 0xeb, 0x9d, 0x06, 0x3b, 0x1d, 0xbf, 0x54, + 0x90, 0xc4, 0x4e, 0xe9, 0x56, 0xb3, 0xaf, 0x68, 0xea, 0x51, 0xbb, 0xdf, 0x3c, 0x54, 0x50, 0xfa, + 0x56, 0x21, 0xff, 0xdf, 0x15, 0xf4, 0xfa, 0xf5, 0xeb, 0xd7, 0x52, 0xe5, 0x6f, 0x12, 0x94, 0xa7, + 0x3b, 0x63, 0xfc, 0x73, 0xb8, 0x10, 0x7d, 0xc6, 0xfa, 0x34, 0xd0, 0x5e, 0x9a, 0x1e, 0x97, 0xea, + 0x88, 0x88, 0xde, 0x32, 0xae, 0xf2, 0x66, 0xc8, 0xea, 0xd1, 0xe0, 0x0b, 0xd3, 0x63, 0x42, 0x1c, + 0x91, 0x00, 0xb7, 0xe0, 0x8a, 0xed, 0x68, 0x7e, 0x40, 0x6c, 0x83, 0x78, 0x86, 0x36, 0xb9, 0x40, + 0xd0, 0x88, 0xae, 0x53, 0xdf, 0x77, 0xc4, 0x11, 0x11, 0x47, 0x79, 0xdf, 0x76, 0x7a, 0x21, 0x79, + 0xb2, 0x77, 0xd6, 0x42, 0xea, 0x8c, 0x22, 0xd2, 0xcb, 0x14, 0x71, 0x09, 0x0a, 0x23, 0xe2, 0x6a, + 0xd4, 0x0e, 0xbc, 0x53, 0xde, 0xcf, 0xe5, 0xd5, 0xfc, 0x88, 0xb8, 0x0a, 0x1b, 0xbf, 0xbb, 0x35, + 0x48, 0xd6, 0xf1, 0x9f, 0x69, 0x28, 0x25, 0x7b, 0x3a, 0xd6, 0x22, 0xeb, 0x7c, 0xff, 0x4e, 0xf1, + 0x37, 0xfc, 0xc3, 0x37, 0x76, 0x80, 0xd5, 0x3a, 0xdb, 0xd8, 0xf7, 0x72, 0xa2, 0xd3, 0x52, 0x85, + 0x27, 0x3b, 0x54, 0xd9, 0x3b, 0x4d, 0x45, 0xff, 0x9e, 0x57, 0xc3, 0x11, 0x3e, 0x80, 0xdc, 0x33, + 0x9f, 0xc7, 0xce, 0xf1, 0xd8, 0xd7, 0xde, 0x1c, 0xfb, 0x71, 0x8f, 0x07, 0x2f, 0x3c, 0xee, 0x69, + 0xed, 0x8e, 0x7a, 0x58, 0x6b, 0xa9, 0xa1, 0x3b, 0xbe, 0x08, 0x19, 0x8b, 0x7c, 0x7d, 0x3a, 0x7d, + 0x04, 0x70, 0xe8, 0xac, 0x85, 0xbf, 0x08, 0x99, 0x97, 0x94, 0x3c, 0x9f, 0xde, 0x78, 0x39, 0xf4, + 0x0e, 0xa5, 0x7f, 0x07, 0xb2, 0xbc, 0x5e, 0x18, 0x20, 0xac, 0x18, 0x3a, 0x87, 0xf3, 0x90, 0xa9, + 0x77, 0x54, 0x26, 0x7f, 0x04, 0x25, 0x81, 0x6a, 0xdd, 0xa6, 0x52, 0x57, 0x90, 0x54, 0xb9, 0x0f, + 0x39, 0x51, 0x04, 0xf6, 0x6a, 0xc4, 0x65, 0x40, 0xe7, 0xc2, 0x61, 0x18, 0x23, 0x15, 0x59, 0x8f, + 0x0e, 0xf7, 0x15, 0x15, 0x49, 0xc9, 0xe5, 0xf5, 0xa1, 0x94, 0x6c, 0xe7, 0x7e, 0x18, 0x4d, 0xfd, + 0x35, 0x05, 0xc5, 0x44, 0x7b, 0xc6, 0x1a, 0x03, 0x62, 0x59, 0xce, 0x4b, 0x8d, 0x58, 0x26, 0xf1, + 0x43, 0x51, 0x00, 0x87, 0x6a, 0x0c, 0x39, 0xeb, 0xa2, 0xfd, 0x20, 0xc9, 0xff, 0x31, 0x05, 0x68, + 0xb6, 0xb5, 0x9b, 0x49, 0x30, 0xf5, 0xa3, 0x26, 0xf8, 0x87, 0x14, 0x94, 0xa7, 0xfb, 0xb9, 0x99, + 0xf4, 0xae, 0xfe, 0xa8, 0xe9, 0xfd, 0x4b, 0x82, 0xd5, 0xa9, 0x2e, 0xee, 0xac, 0xd9, 0x7d, 0x05, + 0xeb, 0xa6, 0x41, 0x47, 0xae, 0x13, 0x50, 0x5b, 0x3f, 0xd5, 0x2c, 0xfa, 0x82, 0x5a, 0x72, 0x85, + 0x6f, 0x14, 0x77, 0xde, 0xdc, 0x27, 0x56, 0x9b, 0x13, 0xbf, 0x16, 0x73, 0xdb, 0xdb, 0x68, 0x36, + 0x94, 0xc3, 0x6e, 0xa7, 0xaf, 0xb4, 0xeb, 0x4f, 0xb5, 0xa3, 0xf6, 0x2f, 0xdb, 0x9d, 0x2f, 0xda, + 0x2a, 0x32, 0x67, 0x68, 0xef, 0xf0, 0x55, 0xef, 0x02, 0x9a, 0x4d, 0x0a, 0x5f, 0x80, 0x45, 0x69, + 0xa1, 0x73, 0x78, 0x03, 0xd6, 0xda, 0x1d, 0xad, 0xd7, 0x6c, 0x28, 0x9a, 0xf2, 0xe8, 0x91, 0x52, + 0xef, 0xf7, 0xc4, 0x87, 0x73, 0xcc, 0xee, 0x4f, 0xbf, 0xd4, 0xbf, 0x4f, 0xc3, 0xc6, 0x82, 0x4c, + 0x70, 0x2d, 0xec, 0xd9, 0xc5, 0x67, 0xc4, 0xcf, 0xce, 0x92, 0x7d, 0x95, 0x75, 0x05, 0x5d, 0xe2, + 0x05, 0x61, 0x8b, 0x7f, 0x13, 0x58, 0x95, 0xec, 0xc0, 0x1c, 0x98, 0xd4, 0x0b, 0xef, 0x19, 0x44, + 0x23, 0xbf, 0x36, 0xc1, 0xc5, 0x55, 0xc3, 0x4f, 0x01, 0xbb, 0x8e, 0x6f, 0x06, 0xe6, 0x0b, 0xaa, + 0x99, 0x76, 0x74, 0x29, 0xc1, 0x1a, 0xfb, 0x8c, 0x8a, 0x22, 0x4b, 0xd3, 0x0e, 0x62, 0xb6, 0x4d, + 0x87, 0x64, 0x86, 0xcd, 0x36, 0xf0, 0xb4, 0x8a, 0x22, 0x4b, 0xcc, 0xbe, 0x0a, 0x25, 0xc3, 0x19, + 0xb3, 0x36, 0x49, 0xf0, 0xd8, 0x79, 0x91, 0x52, 0x8b, 0x02, 0x8b, 0x29, 0x61, 0x1f, 0x3b, 0xb9, + 0x0d, 0x29, 0xa9, 0x45, 0x81, 0x09, 0xca, 0x0d, 0x58, 0x23, 0xc3, 0xa1, 0xc7, 0x82, 0x47, 0x81, + 0x44, 0x67, 0x5e, 0x8e, 0x61, 0x4e, 0xdc, 0x7a, 0x0c, 0xf9, 0xa8, 0x0e, 0xec, 0x48, 0x66, 0x95, + 0xd0, 0x5c, 0x71, 0x27, 0x25, 0xed, 0x14, 0xd4, 0xbc, 0x1d, 0x19, 0xaf, 0x42, 0xc9, 0xf4, 0xb5, + 0xc9, 0xe5, 0xa8, 0xb4, 0x2d, 0xed, 0xe4, 0xd5, 0xa2, 0xe9, 0xc7, 0xb7, 0x61, 0x95, 0x6f, 0x25, + 0x28, 0x4f, 0x5f, 0xee, 0xe2, 0x06, 0xe4, 0x2d, 0x47, 0x27, 0x5c, 0x5a, 0xe2, 0x97, 0x85, 0x9d, + 0xb7, 0xdc, 0x07, 0x57, 0x5b, 0x21, 0x5f, 0x8d, 0x3d, 0xb7, 0xfe, 0x9e, 0x82, 0x7c, 0x04, 0xe3, + 0xf3, 0x90, 0x71, 0x49, 0x70, 0xc2, 0xc3, 0x65, 0xf7, 0x25, 0x94, 0x52, 0xf9, 0x98, 0xe1, 0xbe, + 0x4b, 0x6c, 0x2e, 0x81, 0x10, 0x67, 0x63, 0xb6, 0xae, 0x16, 0x25, 0x06, 0x6f, 0xfb, 0x9d, 0xd1, + 0x88, 0xda, 0x81, 0x1f, 0xad, 0x6b, 0x88, 0xd7, 0x43, 0x18, 0xdf, 0x86, 0xf5, 0xc0, 0x23, 0xa6, + 0x35, 0xc5, 0xcd, 0x70, 0x2e, 0x8a, 0x0c, 0x31, 0x79, 0x0f, 0x2e, 0x46, 0x71, 0x0d, 0x1a, 0x10, + 0xfd, 0x84, 0x1a, 0x13, 0xa7, 0x1c, 0xbf, 0x39, 0xbc, 0x10, 0x12, 0x1a, 0xa1, 0x3d, 0xf2, 0xad, + 0xfc, 0x23, 0x05, 0xeb, 0xd1, 0x87, 0x8a, 0x11, 0x17, 0xeb, 0x10, 0x80, 0xd8, 0xb6, 0x13, 0x24, + 0xcb, 0x35, 0x2f, 0xe5, 0x39, 0xbf, 0x6a, 0x2d, 0x76, 0x52, 0x13, 0x01, 0xb6, 0x46, 0x00, 0x13, + 0xcb, 0xd2, 0xb2, 0x5d, 0x81, 0x62, 0x78, 0x73, 0xcf, 0x7f, 0xfe, 0x11, 0x9f, 0xb6, 0x20, 0x20, + 0xf6, 0x45, 0x83, 0x37, 0x21, 0x7b, 0x4c, 0x87, 0xa6, 0x1d, 0xde, 0x27, 0x8a, 0x41, 0x74, 0x4b, + 0x99, 0x89, 0x6f, 0x29, 0xf7, 0x9f, 0xc0, 0x86, 0xee, 0x8c, 0x66, 0xd3, 0xdd, 0x47, 0x33, 0x9f, + 0xd7, 0xfe, 0xe7, 0xa9, 0x2f, 0x61, 0xd2, 0x62, 0x7e, 0x23, 0xa5, 0x0f, 0xba, 0xfb, 0x7f, 0x92, + 0xb6, 0x0e, 0x84, 0x5f, 0x37, 0x9a, 0xa6, 0x4a, 0x07, 0x16, 0xd5, 0x59, 0xea, 0xff, 0x0f, 0x00, + 0x00, 0xff, 0xff, 0xa0, 0xbf, 0x63, 0x15, 0xd3, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/gostring.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go similarity index 84% rename from vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/gostring.go rename to vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go index 76e2c95f..bac9913e 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/gostring.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go @@ -1,12 +1,50 @@ +// Code generated by protoc-gen-gogo. +// source: descriptor.proto +// DO NOT EDIT! + +/* +Package descriptor is a generated protocol buffer package. + +It is generated from these files: + descriptor.proto + +It has these top-level messages: + FileDescriptorSet + FileDescriptorProto + DescriptorProto + FieldDescriptorProto + OneofDescriptorProto + EnumDescriptorProto + EnumValueDescriptorProto + ServiceDescriptorProto + MethodDescriptorProto + FileOptions + MessageOptions + FieldOptions + OneofOptions + EnumOptions + EnumValueOptions + ServiceOptions + MethodOptions + UninterpretedOption + SourceCodeInfo + GeneratedCodeInfo +*/ package descriptor import fmt "fmt" - import strings "strings" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import sort "sort" import strconv "strconv" import reflect "reflect" +import proto "github.com/gogo/protobuf/proto" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf func (this *FileDescriptorSet) GoString() string { if this == nil { @@ -195,11 +233,14 @@ func (this *OneofDescriptorProto) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 5) + s := make([]string, 0, 6) s = append(s, "&descriptor.OneofDescriptorProto{") if this.Name != nil { s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -347,15 +388,13 @@ func (this *FileOptions) GoString() string { if this.CsharpNamespace != nil { s = append(s, "CsharpNamespace: "+valueToGoStringDescriptor(this.CsharpNamespace, "string")+",\n") } - if this.JavananoUseDeprecatedPackage != nil { - s = append(s, "JavananoUseDeprecatedPackage: "+valueToGoStringDescriptor(this.JavananoUseDeprecatedPackage, "bool")+",\n") + if this.SwiftPrefix != nil { + s = append(s, "SwiftPrefix: "+valueToGoStringDescriptor(this.SwiftPrefix, "string")+",\n") } if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -383,9 +422,7 @@ func (this *MessageOptions) GoString() string { if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -419,9 +456,23 @@ func (this *FieldOptions) GoString() string { if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofOptions) GoString() string { + if this == nil { + return "nil" } + s := make([]string, 0, 5) + s = append(s, "&descriptor.OneofOptions{") + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -443,9 +494,7 @@ func (this *EnumOptions) GoString() string { if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -464,9 +513,7 @@ func (this *EnumValueOptions) GoString() string { if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -485,9 +532,7 @@ func (this *ServiceOptions) GoString() string { if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -498,17 +543,18 @@ func (this *MethodOptions) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 6) + s := make([]string, 0, 7) s = append(s, "&descriptor.MethodOptions{") if this.Deprecated != nil { s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") } + if this.IdempotencyLevel != nil { + s = append(s, "IdempotencyLevel: "+valueToGoStringDescriptor(this.IdempotencyLevel, "descriptor.MethodOptions_IdempotencyLevel")+",\n") + } if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringDescriptor(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -608,6 +654,45 @@ func (this *SourceCodeInfo_Location) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *GeneratedCodeInfo) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.GeneratedCodeInfo{") + if this.Annotation != nil { + s = append(s, "Annotation: "+fmt.Sprintf("%#v", this.Annotation)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *GeneratedCodeInfo_Annotation) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&descriptor.GeneratedCodeInfo_Annotation{") + if this.Path != nil { + s = append(s, "Path: "+fmt.Sprintf("%#v", this.Path)+",\n") + } + if this.SourceFile != nil { + s = append(s, "SourceFile: "+valueToGoStringDescriptor(this.SourceFile, "string")+",\n") + } + if this.Begin != nil { + s = append(s, "Begin: "+valueToGoStringDescriptor(this.Begin, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringDescriptor(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -616,11 +701,12 @@ func valueToGoStringDescriptor(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringDescriptor(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringDescriptor(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -630,6 +716,6 @@ func extensionToGoStringDescriptor(e map[int32]github_com_gogo_protobuf_proto.Ex for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_test.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_test.go new file mode 100644 index 00000000..d4248b48 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_test.go @@ -0,0 +1,31 @@ +package descriptor_test + +import ( + "fmt" + "testing" + + tpb "github.com/gogo/protobuf/proto/testdata" + "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +) + +func TestMessage(t *testing.T) { + var msg *descriptor.DescriptorProto + fd, md := descriptor.ForMessage(msg) + if pkg, want := fd.GetPackage(), "google.protobuf"; pkg != want { + t.Errorf("descriptor.ForMessage(%T).GetPackage() = %q; want %q", msg, pkg, want) + } + if name, want := md.GetName(), "DescriptorProto"; name != want { + t.Fatalf("descriptor.ForMessage(%T).GetName() = %q; want %q", msg, name, want) + } +} + +func Example_Options() { + var msg *tpb.MyMessageSet + _, md := descriptor.ForMessage(msg) + if md.GetOptions().GetMessageSetWireFormat() { + fmt.Printf("%v uses option message_set_wire_format.\n", md.GetName()) + } + + // Output: + // MyMessageSet uses option message_set_wire_format. +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go index ab170f91..e0846a35 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/helper.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -97,6 +99,17 @@ func (field *FieldDescriptorProto) GetKeyUint64() (x uint64) { return x } +func (field *FieldDescriptorProto) GetKey3Uint64() (x uint64) { + packed := field.IsPacked3() + wireType := field.WireType() + fieldNumber := field.GetNumber() + if packed { + wireType = 2 + } + x = uint64(uint32(fieldNumber)<<3 | uint32(wireType)) + return x +} + func (field *FieldDescriptorProto) GetKey() []byte { x := field.GetKeyUint64() i := 0 @@ -109,6 +122,18 @@ func (field *FieldDescriptorProto) GetKey() []byte { return keybuf } +func (field *FieldDescriptorProto) GetKey3() []byte { + x := field.GetKey3Uint64() + i := 0 + keybuf := make([]byte, 0) + for i = 0; x > 127; i++ { + keybuf = append(keybuf, 0x80|uint8(x&0x7F)) + x >>= 7 + } + keybuf = append(keybuf, uint8(x)) + return keybuf +} + func (desc *FileDescriptorSet) GetField(packageName, messageName, fieldName string) *FieldDescriptorProto { msg := desc.GetMessage(packageName, messageName) if msg == nil { @@ -350,6 +375,16 @@ func (f *FieldDescriptorProto) IsPacked() bool { return f.Options != nil && f.GetOptions().GetPacked() } +func (f *FieldDescriptorProto) IsPacked3() bool { + if f.IsRepeated() && f.IsScalar() { + if f.Options == nil || f.GetOptions().Packed == nil { + return true + } + return f.Options != nil && f.GetOptions().GetPacked() + } + return false +} + func (m *DescriptorProto) HasExtension() bool { return len(m.ExtensionRange) > 0 } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go index 3141ae2a..a40dda23 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -68,7 +68,7 @@ import ( // It is incremented whenever an incompatibility between the generated code and // proto package is introduced; the generated code references // a constant, proto.ProtoPackageIsVersionN (where N is generatedCodeVersion). -const generatedCodeVersion = 1 +const generatedCodeVersion = 2 // A Plugin provides functionality to add to the output during Go code generation, // such as to produce RPC stubs. @@ -404,8 +404,6 @@ func (ms *messageSymbol) GenerateAlias(g *Generator, pkg string) { if ms.hasExtensions { g.P("func (*", ms.sym, ") ExtensionRangeArray() []", g.Pkg["proto"], ".ExtensionRange ", "{ return (*", remoteSym, ")(nil).ExtensionRangeArray() }") - g.P("func (m *", ms.sym, ") ExtensionMap() map[int32]", g.Pkg["proto"], ".Extension ", - "{ return (*", remoteSym, ")(m).ExtensionMap() }") if ms.isMessageSet { g.P("func (m *", ms.sym, ") Marshal() ([]byte, error) ", "{ return (*", remoteSym, ")(m).Marshal() }") @@ -670,7 +668,6 @@ func (g *Generator) CommandLineParameters(parameter string) { } } } - if pluginList == "" { return } @@ -843,9 +840,10 @@ func (g *Generator) SetPackageNames() { // Register the support package names. They might collide with the // name of a package we import. g.Pkg = map[string]string{ - "fmt": RegisterUniquePackageName("fmt", nil), - "math": RegisterUniquePackageName("math", nil), - "proto": RegisterUniquePackageName("proto", nil), + "fmt": RegisterUniquePackageName("fmt", nil), + "math": RegisterUniquePackageName("math", nil), + "proto": RegisterUniquePackageName("proto", nil), + "golang_proto": RegisterUniquePackageName("golang_proto", nil), } AllFiles: @@ -1251,17 +1249,17 @@ func (g *Generator) generate(file *FileDescriptor) { // For one file in the package, assert version compatibility. g.P("// This is a compile-time assertion to ensure that this generated file") g.P("// is compatible with the proto package it is being compiled against.") + g.P("// A compilation error at this line likely means your copy of the") + g.P("// proto package needs to be updated.") if gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { - g.P("const _ = ", g.Pkg["proto"], ".GoGoProtoPackageIsVersion", generatedCodeVersion) + g.P("const _ = ", g.Pkg["proto"], ".GoGoProtoPackageIsVersion", generatedCodeVersion, " // please upgrade the proto package") } else { - g.P("const _ = ", g.Pkg["proto"], ".ProtoPackageIsVersion", generatedCodeVersion) + g.P("const _ = ", g.Pkg["proto"], ".ProtoPackageIsVersion", generatedCodeVersion, " // please upgrade the proto package") } g.P() } - // Reset on each file g.writtenImports = make(map[string]bool) - for _, td := range g.file.imp { g.generateImported(td) } @@ -1420,6 +1418,9 @@ func (g *Generator) generateImports() { // reference it later. The same argument applies to the fmt and math packages. if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) { g.PrintImport(g.Pkg["proto"], g.ImportPrefix+"github.com/gogo/protobuf/proto") + if gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.PrintImport(g.Pkg["golang_proto"], g.ImportPrefix+"github.com/golang/protobuf/proto") + } } else { g.PrintImport(g.Pkg["proto"], g.ImportPrefix+"github.com/golang/protobuf/proto") } @@ -1466,8 +1467,17 @@ func (g *Generator) generateImports() { } g.P("// Reference imports to suppress errors if they are not otherwise used.") g.P("var _ = ", g.Pkg["proto"], ".Marshal") + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.P("var _ = ", g.Pkg["golang_proto"], ".Marshal") + } g.P("var _ = ", g.Pkg["fmt"], ".Errorf") g.P("var _ = ", g.Pkg["math"], ".Inf") + for _, cimport := range g.customImports { + if cimport == "time" { + g.P("var _ = time.Kitchen") + break + } + } g.P() } @@ -1509,23 +1519,27 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) { if !gogoproto.EnabledGoEnumPrefix(enum.file, enum.EnumDescriptorProto) { ccPrefix = "" } - g.P("type ", ccTypeName, " int32") - g.file.addExport(enum, enumSymbol{ccTypeName, enum.proto3()}) - g.P("const (") - g.In() - for i, e := range enum.Value { - g.PrintComments(fmt.Sprintf("%s,%d,%d", enum.path, enumValuePath, i)) - name := *e.Name - if gogoproto.IsEnumValueCustomName(e) { - name = gogoproto.GetEnumValueCustomName(e) - } - name = ccPrefix + name - g.P(name, " ", ccTypeName, " = ", e.Number) - g.file.addExport(enum, constOrVarSymbol{name, "const", ccTypeName}) + if gogoproto.HasEnumDecl(enum.file, enum.EnumDescriptorProto) { + g.P("type ", ccTypeName, " int32") + g.file.addExport(enum, enumSymbol{ccTypeName, enum.proto3()}) + g.P("const (") + g.In() + for i, e := range enum.Value { + g.PrintComments(fmt.Sprintf("%s,%d,%d", enum.path, enumValuePath, i)) + name := *e.Name + if gogoproto.IsEnumValueCustomName(e) { + name = gogoproto.GetEnumValueCustomName(e) + } + name = ccPrefix + name + + g.P(name, " ", ccTypeName, " = ", e.Number) + g.file.addExport(enum, constOrVarSymbol{name, "const", ccTypeName}) + } + g.Out() + g.P(")") } - g.Out() - g.P(")") + g.P("var ", ccTypeName, "_name = map[int32]string{") g.In() generated := make(map[int32]bool) // avoid duplicate values @@ -1594,7 +1608,9 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) { } indexes = append(indexes, strconv.Itoa(enum.index)) g.P("func (", ccTypeName, ") EnumDescriptor() ([]byte, []int) { return ", g.file.VarName(), ", []int{", strings.Join(indexes, ", "), "} }") - + if enum.file.GetPackage() == "google.protobuf" && enum.GetName() == "NullValue" { + g.P("func (", ccTypeName, `) XXX_WellKnownType() string { return "`, enum.GetName(), `" }`) + } g.P() } @@ -1670,7 +1686,11 @@ func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptor enum += CamelCaseSlice(obj.TypeName()) } packed := "" - if field.Options != nil && field.Options.GetPacked() { + if (field.Options != nil && field.Options.GetPacked()) || + // Per https://developers.google.com/protocol-buffers/docs/proto3#simple: + // "In proto3, repeated fields of scalar numeric types use packed encoding by default." + (message.proto3() && (field.Options == nil || field.Options.Packed == nil) && + isRepeated(field) && IsScalar(field)) { packed = ",packed" } fieldName := field.GetName() @@ -1738,7 +1758,15 @@ func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptor if field.OneofIndex != nil { oneof = ",oneof" } - return strconv.Quote(fmt.Sprintf("%s,%d,%s%s%s%s%s%s%s%s%s%s%s", + stdtime := "" + if gogoproto.IsStdTime(field) { + stdtime = ",stdtime" + } + stdduration := "" + if gogoproto.IsStdDuration(field) { + stdduration = ",stdduration" + } + return strconv.Quote(fmt.Sprintf("%s,%d,%s%s%s%s%s%s%s%s%s%s%s%s%s", wiretype, field.GetNumber(), optrepreq, @@ -1751,12 +1779,14 @@ func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptor ctype, casttype, castkey, - castvalue)) + castvalue, + stdtime, + stdduration)) } func needsStar(field *descriptor.FieldDescriptorProto, proto3 bool, allowOneOf bool) bool { if isRepeated(field) && - (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE) && + (*field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE || gogoproto.IsCustomType(field)) && (*field.Type != descriptor.FieldDescriptorProto_TYPE_GROUP) { return false } @@ -1864,8 +1894,14 @@ func (g *Generator) GoType(message *Descriptor, field *descriptor.FieldDescripto if len(packageName) > 0 { g.customImports = append(g.customImports, packageName) } + case gogoproto.IsStdTime(field): + g.customImports = append(g.customImports, "time") + typ = "time.Time" + case gogoproto.IsStdDuration(field): + g.customImports = append(g.customImports, "time") + typ = "time.Duration" } - if needsStar(field, g.file.proto3, message != nil && message.allowOneof()) { + if needsStar(field, g.file.proto3 && field.Extendee == nil, message != nil && message.allowOneof()) { typ = "*" + typ } if isRepeated(field) { @@ -1936,9 +1972,18 @@ func (g *Generator) GoMapType(d *Descriptor, field *descriptor.FieldDescriptorPr if !gogoproto.IsNullable(m.ValueAliasField) { valType = strings.TrimPrefix(valType, "*") } - g.RecordTypeUse(m.ValueAliasField.GetTypeName()) + if !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field) { + g.RecordTypeUse(m.ValueAliasField.GetTypeName()) + } default: - valType = strings.TrimPrefix(valType, "*") + if gogoproto.IsCustomType(m.ValueAliasField) { + if !gogoproto.IsNullable(m.ValueAliasField) { + valType = strings.TrimPrefix(valType, "*") + } + g.RecordTypeUse(m.ValueAliasField.GetTypeName()) + } else { + valType = strings.TrimPrefix(valType, "*") + } } m.GoType = fmt.Sprintf("map[%s]%s", keyType, valType) @@ -1954,7 +1999,8 @@ func (g *Generator) RecordTypeUse(t string) { } // Method names that may be generated. Fields with these names get an -// underscore appended. +// underscore appended. Any change to this set is a potential incompatible +// API change because it changes generated field names. var methodNames = [...]string{ "Reset", "String", @@ -1971,6 +2017,28 @@ var methodNames = [...]string{ "ProtoSize", } +// Names of messages in the `google.protobuf` package for which +// we will generate XXX_WellKnownType methods. +var wellKnownTypes = map[string]bool{ + "Any": true, + "Duration": true, + "Empty": true, + "Struct": true, + "Timestamp": true, + + "Value": true, + "ListValue": true, + "DoubleValue": true, + "FloatValue": true, + "Int64Value": true, + "UInt64Value": true, + "Int32Value": true, + "UInt32Value": true, + "BoolValue": true, + "StringValue": true, + "BytesValue": true, +} + // Generate the type and default constant definitions for this Descriptor. func (g *Generator) generateMessage(message *Descriptor) { // The full type name @@ -1995,10 +2063,6 @@ func (g *Generator) generateMessage(message *Descriptor) { oneofTypeName := make(map[*descriptor.FieldDescriptorProto]string) // without star oneofInsertPoints := make(map[int32]int) // oneof_index => offset of g.Buffer - g.PrintComments(message.path) - g.P("type ", ccTypeName, " struct {") - g.In() - // allocNames finds a conflict-free variation of the given strings, // consistently mutating their suffixes. // It returns the same number of strings. @@ -2020,7 +2084,7 @@ func (g *Generator) generateMessage(message *Descriptor) { } } - for i, field := range message.Field { + for _, field := range message.Field { // Allocate the getter and the field at the same time so name // collisions create field/method consistent names. // TODO: This allocation occurs based on the order of the fields @@ -2032,110 +2096,122 @@ func (g *Generator) generateMessage(message *Descriptor) { } ns := allocNames(base, "Get"+base) fieldName, fieldGetterName := ns[0], ns[1] - typename, wiretype := g.GoType(message, field) - jsonName := *field.Name - jsonTag := jsonName + ",omitempty" - repeatedNativeType := (!field.IsMessage() && !gogoproto.IsCustomType(field) && field.IsRepeated()) - if !gogoproto.IsNullable(field) && !repeatedNativeType { - jsonTag = jsonName - } - gogoJsonTag := gogoproto.GetJsonTag(field) - if gogoJsonTag != nil { - jsonTag = *gogoJsonTag - } - gogoMoreTags := gogoproto.GetMoreTags(field) - moreTags := "" - if gogoMoreTags != nil { - moreTags = " " + *gogoMoreTags - } - tag := fmt.Sprintf("protobuf:%s json:%q%s", g.goTag(message, field, wiretype), jsonTag, moreTags) fieldNames[field] = fieldName fieldGetterNames[field] = fieldGetterName - if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE && gogoproto.IsEmbed(field) { - fieldName = "" - } + } - oneof := field.OneofIndex != nil && message.allowOneof() - if oneof && oneofFieldName[*field.OneofIndex] == "" { - odp := message.OneofDecl[int(*field.OneofIndex)] - fname := allocNames(CamelCase(odp.GetName()))[0] + if gogoproto.HasTypeDecl(message.file, message.DescriptorProto) { + g.PrintComments(message.path) + g.P("type ", ccTypeName, " struct {") + g.In() - // This is the first field of a oneof we haven't seen before. - // Generate the union field. - com := g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageOneofPath, *field.OneofIndex)) - if com { - g.P("//") + for i, field := range message.Field { + fieldName := fieldNames[field] + typename, wiretype := g.GoType(message, field) + jsonName := *field.Name + jsonTag := jsonName + ",omitempty" + repeatedNativeType := (!field.IsMessage() && !gogoproto.IsCustomType(field) && field.IsRepeated()) + if !gogoproto.IsNullable(field) && !repeatedNativeType { + jsonTag = jsonName + } + gogoJsonTag := gogoproto.GetJsonTag(field) + if gogoJsonTag != nil { + jsonTag = *gogoJsonTag + } + gogoMoreTags := gogoproto.GetMoreTags(field) + moreTags := "" + if gogoMoreTags != nil { + moreTags = " " + *gogoMoreTags + } + tag := fmt.Sprintf("protobuf:%s json:%q%s", g.goTag(message, field, wiretype), jsonTag, moreTags) + if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE && gogoproto.IsEmbed(field) { + fieldName = "" } - g.P("// Types that are valid to be assigned to ", fname, ":") - // Generate the rest of this comment later, - // when we've computed any disambiguation. - oneofInsertPoints[*field.OneofIndex] = g.Buffer.Len() - - dname := "is" + ccTypeName + "_" + fname - oneofFieldName[*field.OneofIndex] = fname - oneofDisc[*field.OneofIndex] = dname - otag := `protobuf_oneof:"` + odp.GetName() + `"` - g.P(fname, " ", dname, " `", otag, "`") - } - if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE { - desc := g.ObjectNamed(field.GetTypeName()) - if d, ok := desc.(*Descriptor); ok && d.GetOptions().GetMapEntry() { - m := g.GoMapType(d, field) - typename = m.GoType - mapFieldTypes[field] = typename // record for the getter generation + oneof := field.OneofIndex != nil && message.allowOneof() + if oneof && oneofFieldName[*field.OneofIndex] == "" { + odp := message.OneofDecl[int(*field.OneofIndex)] + fname := allocNames(CamelCase(odp.GetName()))[0] - tag += fmt.Sprintf(" protobuf_key:%s protobuf_val:%s", m.KeyTag, m.ValueTag) + // This is the first field of a oneof we haven't seen before. + // Generate the union field. + com := g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageOneofPath, *field.OneofIndex)) + if com { + g.P("//") + } + g.P("// Types that are valid to be assigned to ", fname, ":") + // Generate the rest of this comment later, + // when we've computed any disambiguation. + oneofInsertPoints[*field.OneofIndex] = g.Buffer.Len() + + dname := "is" + ccTypeName + "_" + fname + oneofFieldName[*field.OneofIndex] = fname + oneofDisc[*field.OneofIndex] = dname + otag := `protobuf_oneof:"` + odp.GetName() + `"` + g.P(fname, " ", dname, " `", otag, "`") } - } - fieldTypes[field] = typename + if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE { + desc := g.ObjectNamed(field.GetTypeName()) + if d, ok := desc.(*Descriptor); ok && d.GetOptions().GetMapEntry() { + m := g.GoMapType(d, field) + typename = m.GoType + mapFieldTypes[field] = typename // record for the getter generation - if oneof { - tname := ccTypeName + "_" + fieldName - // It is possible for this to collide with a message or enum - // nested in this message. Check for collisions. - for { - ok := true - for _, desc := range message.nested { - if CamelCaseSlice(desc.TypeName()) == tname { - ok = false - break - } + tag += fmt.Sprintf(" protobuf_key:%s protobuf_val:%s", m.KeyTag, m.ValueTag) } - for _, enum := range message.enums { - if CamelCaseSlice(enum.TypeName()) == tname { - ok = false - break + } + + fieldTypes[field] = typename + + if oneof { + tname := ccTypeName + "_" + fieldName + // It is possible for this to collide with a message or enum + // nested in this message. Check for collisions. + for { + ok := true + for _, desc := range message.nested { + if CamelCaseSlice(desc.TypeName()) == tname { + ok = false + break + } } + for _, enum := range message.enums { + if CamelCaseSlice(enum.TypeName()) == tname { + ok = false + break + } + } + if !ok { + tname += "_" + continue + } + break } - if !ok { - tname += "_" - continue - } - break + + oneofTypeName[field] = tname + continue } - oneofTypeName[field] = tname - continue + g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageFieldPath, i)) + g.P(fieldName, "\t", typename, "\t`", tag, "`") + if !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field) { + g.RecordTypeUse(field.GetTypeName()) + } } - - g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageFieldPath, i)) - g.P(fieldName, "\t", typename, "\t`", tag, "`") - g.RecordTypeUse(field.GetTypeName()) - } - if len(message.ExtensionRange) > 0 { - if gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P("XXX_extensions\t\tmap[int32]", g.Pkg["proto"], ".Extension `json:\"-\"`") - } else { - g.P("XXX_extensions\t\t[]byte `protobuf:\"bytes,0,opt\" json:\"-\"`") + if len(message.ExtensionRange) > 0 { + if gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { + g.P(g.Pkg["proto"], ".XXX_InternalExtensions `json:\"-\"`") + } else { + g.P("XXX_extensions\t\t[]byte `protobuf:\"bytes,0,opt\" json:\"-\"`") + } } + if gogoproto.HasUnrecognized(g.file.FileDescriptorProto, message.DescriptorProto) && !message.proto3() { + g.P("XXX_unrecognized\t[]byte `json:\"-\"`") + } + g.Out() + g.P("}") } - if gogoproto.HasUnrecognized(g.file.FileDescriptorProto, message.DescriptorProto) && !message.proto3() { - g.P("XXX_unrecognized\t[]byte `json:\"-\"`") - } - g.Out() - g.P("}") // Update g.Buffer to list valid oneof types. // We do this down here, after we've disambiguated the oneof type names. @@ -2165,7 +2241,11 @@ func (g *Generator) generateMessage(message *Descriptor) { indexes = append([]string{strconv.Itoa(m.index)}, indexes...) } g.P("func (*", ccTypeName, ") Descriptor() ([]byte, []int) { return ", g.file.VarName(), ", []int{", strings.Join(indexes, ", "), "} }") - + // TODO: Revisit the decision to use a XXX_WellKnownType method + // if we change proto.MessageName to work with multiple equivalents. + if message.file.GetPackage() == "google.protobuf" && wellKnownTypes[message.GetName()] { + g.P("func (*", ccTypeName, `) XXX_WellKnownType() string { return "`, message.GetName(), `" }`) + } // Extension support methods var hasExtensions, isMessageSet bool if len(message.ExtensionRange) > 0 { @@ -2176,22 +2256,22 @@ func (g *Generator) generateMessage(message *Descriptor) { g.P() g.P("func (m *", ccTypeName, ") Marshal() ([]byte, error) {") g.In() - g.P("return ", g.Pkg["proto"], ".MarshalMessageSet(m.ExtensionMap())") + g.P("return ", g.Pkg["proto"], ".MarshalMessageSet(&m.XXX_InternalExtensions)") g.Out() g.P("}") g.P("func (m *", ccTypeName, ") Unmarshal(buf []byte) error {") g.In() - g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSet(buf, m.ExtensionMap())") + g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSet(buf, &m.XXX_InternalExtensions)") g.Out() g.P("}") g.P("func (m *", ccTypeName, ") MarshalJSON() ([]byte, error) {") g.In() - g.P("return ", g.Pkg["proto"], ".MarshalMessageSetJSON(m.XXX_extensions)") + g.P("return ", g.Pkg["proto"], ".MarshalMessageSetJSON(&m.XXX_InternalExtensions)") g.Out() g.P("}") g.P("func (m *", ccTypeName, ") UnmarshalJSON(buf []byte) error {") g.In() - g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSetJSON(buf, m.XXX_extensions)") + g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)") g.Out() g.P("}") g.P("// ensure ", ccTypeName, " satisfies proto.Marshaler and proto.Unmarshaler") @@ -2204,7 +2284,7 @@ func (g *Generator) generateMessage(message *Descriptor) { g.In() for _, r := range message.ExtensionRange { end := fmt.Sprint(*r.End - 1) // make range inclusive on both ends - g.P("{", r.Start, ", ", end, "},") + g.P("{Start: ", r.Start, ", End: ", end, "},") } g.Out() g.P("}") @@ -2213,18 +2293,7 @@ func (g *Generator) generateMessage(message *Descriptor) { g.P("return extRange_", ccTypeName) g.Out() g.P("}") - if gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { - g.P("func (m *", ccTypeName, ") ExtensionMap() map[int32]", g.Pkg["proto"], ".Extension {") - g.In() - g.P("if m.XXX_extensions == nil {") - g.In() - g.P("m.XXX_extensions = make(map[int32]", g.Pkg["proto"], ".Extension)") - g.Out() - g.P("}") - g.P("return m.XXX_extensions") - g.Out() - g.P("}") - } else { + if !gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, message.DescriptorProto) { g.P("func (m *", ccTypeName, ") GetExtensions() *[]byte {") g.In() g.P("if m.XXX_extensions == nil {") @@ -2358,7 +2427,9 @@ func (g *Generator) generateMessage(message *Descriptor) { _, wiretype := g.GoType(message, field) tag := "protobuf:" + g.goTag(message, field, wiretype) g.P("type ", oneofTypeName[field], " struct{ ", fieldNames[field], " ", fieldTypes[field], " `", tag, "` }") - g.RecordTypeUse(field.GetTypeName()) + if !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field) { + g.RecordTypeUse(field.GetTypeName()) + } } g.P() for _, field := range message.Field { @@ -2402,11 +2473,6 @@ func (g *Generator) generateMessage(message *Descriptor) { star = "*" } - // In proto3, only generate getters for message fields and oneof fields. - if message.proto3() && *field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE && !oneof { - continue - } - // Only export getter symbols for basic types, // and for messages and enums in the same package. // Groups are not exported. @@ -2471,7 +2537,11 @@ func (g *Generator) generateMessage(message *Descriptor) { g.Out() g.P("}") } else if !oneof { - g.P("if m != nil && m." + fname + " != nil {") + if message.proto3() { + g.P("if m != nil {") + } else { + g.P("if m != nil && m." + fname + " != nil {") + } g.In() g.P("return " + star + "m." + fname) g.Out() @@ -2500,7 +2570,11 @@ func (g *Generator) generateMessage(message *Descriptor) { } else { goTyp, _ := g.GoType(message, field) goTypName := GoTypeToName(goTyp) - g.P("return ", goTypName, "{}") + if !gogoproto.IsNullable(field) && gogoproto.IsStdDuration(field) { + g.P("return 0") + } else { + g.P("return ", goTypName, "{}") + } } case descriptor.FieldDescriptorProto_TYPE_BOOL: g.P("return false") @@ -2657,13 +2731,41 @@ func (g *Generator) generateMessage(message *Descriptor) { fieldWire[field] = wire g.P("_ = b.EncodeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".", wire, ")") if *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES && gogoproto.IsCustomType(field) { - g.P(`data, err := `, val, `.Marshal()`) + g.P(`dAtA, err := `, val, `.Marshal()`) + g.P(`if err != nil {`) + g.In() + g.P(`return err`) + g.Out() + g.P(`}`) + val = "dAtA" + } else if gogoproto.IsStdTime(field) { + pkg := g.useTypes() + if gogoproto.IsNullable(field) { + g.P(`dAtA, err := `, pkg, `.StdTimeMarshal(*`, val, `)`) + } else { + g.P(`dAtA, err := `, pkg, `.StdTimeMarshal(`, val, `)`) + } + g.P(`if err != nil {`) + g.In() + g.P(`return err`) + g.Out() + g.P(`}`) + val = "dAtA" + pre, post = "b.EncodeRawBytes(", ")" + } else if gogoproto.IsStdDuration(field) { + pkg := g.useTypes() + if gogoproto.IsNullable(field) { + g.P(`dAtA, err := `, pkg, `.StdDurationMarshal(*`, val, `)`) + } else { + g.P(`dAtA, err := `, pkg, `.StdDurationMarshal(`, val, `)`) + } g.P(`if err != nil {`) g.In() g.P(`return err`) g.Out() g.P(`}`) - val = "data" + val = "dAtA" + pre, post = "b.EncodeRawBytes(", ")" } if !canFail { g.P("_ = ", pre, val, post) @@ -2727,9 +2829,13 @@ func (g *Generator) generateMessage(message *Descriptor) { dec = "b.DecodeGroup(msg)" // handled specially below case descriptor.FieldDescriptorProto_TYPE_MESSAGE: - g.P("msg := new(", fieldTypes[field][1:], ")") // drop star - lhs = "err" - dec = "b.DecodeMessage(msg)" + if gogoproto.IsStdTime(field) || gogoproto.IsStdDuration(field) { + dec = "b.DecodeRawBytes(true)" + } else { + g.P("msg := new(", fieldTypes[field][1:], ")") // drop star + lhs = "err" + dec = "b.DecodeMessage(msg)" + } // handled specially below case descriptor.FieldDescriptorProto_TYPE_BYTES: dec = "b.DecodeRawBytes(true)" @@ -2764,6 +2870,34 @@ func (g *Generator) generateMessage(message *Descriptor) { g.P(`c := &cc`) g.P(`err = c.Unmarshal(`, val, `)`) val = "*c" + } else if gogoproto.IsStdTime(field) { + pkg := g.useTypes() + g.P(`if err != nil {`) + g.In() + g.P(`return true, err`) + g.Out() + g.P(`}`) + g.P(`c := new(time.Time)`) + g.P(`if err2 := `, pkg, `.StdTimeUnmarshal(c, `, val, `); err2 != nil {`) + g.In() + g.P(`return true, err`) + g.Out() + g.P(`}`) + val = "c" + } else if gogoproto.IsStdDuration(field) { + pkg := g.useTypes() + g.P(`if err != nil {`) + g.In() + g.P(`return true, err`) + g.Out() + g.P(`}`) + g.P(`c := new(time.Duration)`) + g.P(`if err2 := `, pkg, `.StdDurationUnmarshal(c, `, val, `); err2 != nil {`) + g.In() + g.P(`return true, err`) + g.Out() + g.P(`}`) + val = "c" } if cast != "" { val = cast + "(" + val + ")" @@ -2776,7 +2910,9 @@ func (g *Generator) generateMessage(message *Descriptor) { val += " != 0" case descriptor.FieldDescriptorProto_TYPE_GROUP, descriptor.FieldDescriptorProto_TYPE_MESSAGE: - val = "msg" + if !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field) { + val = "msg" + } } if gogoproto.IsCastType(field) { _, typ, err := getCastType(field) @@ -2841,7 +2977,21 @@ func (g *Generator) generateMessage(message *Descriptor) { fixed = g.Pkg["proto"] + ".Size(" + val + ")" case descriptor.FieldDescriptorProto_TYPE_MESSAGE: wire = "WireBytes" - g.P("s := ", g.Pkg["proto"], ".Size(", val, ")") + if gogoproto.IsStdTime(field) { + if gogoproto.IsNullable(field) { + val = "*" + val + } + pkg := g.useTypes() + g.P("s := ", pkg, ".SizeOfStdTime(", val, ")") + } else if gogoproto.IsStdDuration(field) { + if gogoproto.IsNullable(field) { + val = "*" + val + } + pkg := g.useTypes() + g.P("s := ", pkg, ".SizeOfStdDuration(", val, ")") + } else { + g.P("s := ", g.Pkg["proto"], ".Size(", val, ")") + } fixed = "s" varint = fixed case descriptor.FieldDescriptorProto_TYPE_BYTES: @@ -2892,6 +3042,9 @@ func (g *Generator) generateMessage(message *Descriptor) { } g.addInitf("%s.RegisterType((*%s)(nil), %q)", g.Pkg["proto"], ccTypeName, fullName) + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.addInitf("%s.RegisterType((*%s)(nil), %q)", g.Pkg["golang_proto"], ccTypeName, fullName) + } } func (g *Generator) generateExtension(ext *ExtensionDescriptor) { @@ -2941,6 +3094,7 @@ func (g *Generator) generateExtension(ext *ExtensionDescriptor) { g.P("Field: ", field.Number, ",") g.P(`Name: "`, extName, `",`) g.P("Tag: ", tag, ",") + g.P(`Filename: "`, g.file.GetName(), `",`) g.Out() g.P("}") @@ -2949,6 +3103,9 @@ func (g *Generator) generateExtension(ext *ExtensionDescriptor) { if mset { // Generate a bit more code to register with message_set.go. g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["proto"], fieldType, *field.Number, extName) + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["golang_proto"], fieldType, *field.Number, extName) + } } g.file.addExport(ext, constOrVarSymbol{ccTypeName, "var", ""}) @@ -2998,6 +3155,10 @@ func (g *Generator) generateFileDescriptor(file *FileDescriptor) { v := file.VarName() g.P() + g.P("func init() { ", g.Pkg["proto"], ".RegisterFile(", strconv.Quote(*file.Name), ", ", v, ") }") + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.P("func init() { ", g.Pkg["golang_proto"], ".RegisterFile(", strconv.Quote(*file.Name), ", ", v, ") }") + } g.P("var ", v, " = []byte{") g.In() g.P("// ", len(b), " bytes of a gzipped FileDescriptorProto") @@ -3030,10 +3191,16 @@ func (g *Generator) generateEnumRegistration(enum *EnumDescriptor) { // The full type name, CamelCased. ccTypeName := CamelCaseSlice(typeName) g.addInitf("%s.RegisterEnum(%q, %[3]s_name, %[3]s_value)", g.Pkg["proto"], pkg+ccTypeName, ccTypeName) + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.addInitf("%s.RegisterEnum(%q, %[3]s_name, %[3]s_value)", g.Pkg["golang_proto"], pkg+ccTypeName, ccTypeName) + } } func (g *Generator) generateExtensionRegistration(ext *ExtensionDescriptor) { g.addInitf("%s.RegisterExtension(%s)", g.Pkg["proto"], ext.DescName()) + if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) { + g.addInitf("%s.RegisterExtension(%s)", g.Pkg["golang_proto"], ext.DescName()) + } } // And now lots of helper functions. @@ -3117,6 +3284,32 @@ func isRepeated(field *descriptor.FieldDescriptorProto) bool { return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED } +// Is this field a scalar numeric type? +func IsScalar(field *descriptor.FieldDescriptorProto) bool { + if field.Type == nil { + return false + } + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE, + descriptor.FieldDescriptorProto_TYPE_FLOAT, + descriptor.FieldDescriptorProto_TYPE_INT64, + descriptor.FieldDescriptorProto_TYPE_UINT64, + descriptor.FieldDescriptorProto_TYPE_INT32, + descriptor.FieldDescriptorProto_TYPE_FIXED64, + descriptor.FieldDescriptorProto_TYPE_FIXED32, + descriptor.FieldDescriptorProto_TYPE_BOOL, + descriptor.FieldDescriptorProto_TYPE_UINT32, + descriptor.FieldDescriptorProto_TYPE_ENUM, + descriptor.FieldDescriptorProto_TYPE_SFIXED32, + descriptor.FieldDescriptorProto_TYPE_SFIXED64, + descriptor.FieldDescriptorProto_TYPE_SINT32, + descriptor.FieldDescriptorProto_TYPE_SINT64: + return true + default: + return false + } +} + // badToUnderscore is the mapping function used to generate Go names from package names, // which can be dotted in the input .proto file. It replaces non-identifier characters such as // dot or dash with underscore. diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go index 07f955f2..d7a406e7 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -238,18 +240,38 @@ func (g *Generator) GetMapKeyField(field, keyField *descriptor.FieldDescriptorPr } func (g *Generator) GetMapValueField(field, valField *descriptor.FieldDescriptorProto) *descriptor.FieldDescriptorProto { - if !gogoproto.IsCastValue(field) && gogoproto.IsNullable(field) { - return valField + if gogoproto.IsCustomType(field) && gogoproto.IsCastValue(field) { + g.Fail("cannot have a customtype and casttype: ", field.String()) } valField = proto.Clone(valField).(*descriptor.FieldDescriptorProto) if valField.Options == nil { valField.Options = &descriptor.FieldOptions{} } + + stdtime := gogoproto.IsStdTime(field) + if stdtime { + if err := proto.SetExtension(valField.Options, gogoproto.E_Stdtime, &stdtime); err != nil { + g.Fail(err.Error()) + } + } + + stddur := gogoproto.IsStdDuration(field) + if stddur { + if err := proto.SetExtension(valField.Options, gogoproto.E_Stdduration, &stddur); err != nil { + g.Fail(err.Error()) + } + } + if valType := gogoproto.GetCastValue(field); len(valType) > 0 { if err := proto.SetExtension(valField.Options, gogoproto.E_Casttype, &valType); err != nil { g.Fail(err.Error()) } } + if valType := gogoproto.GetCustomType(field); len(valType) > 0 { + if err := proto.SetExtension(valField.Options, gogoproto.E_Customtype, &valType); err != nil { + g.Fail(err.Error()) + } + } nullable := gogoproto.IsNullable(field) if err := proto.SetExtension(valField.Options, gogoproto.E_Nullable, &nullable); err != nil { @@ -261,7 +283,7 @@ func (g *Generator) GetMapValueField(field, valField *descriptor.FieldDescriptor // GoMapValueTypes returns the map value Go type and the alias map value Go type (for casting), taking into // account whether the map is nullable or the value is a message. func GoMapValueTypes(mapField, valueField *descriptor.FieldDescriptorProto, goValueType, goValueAliasType string) (nullable bool, outGoType string, outGoAliasType string) { - nullable = gogoproto.IsNullable(mapField) && valueField.IsMessage() + nullable = gogoproto.IsNullable(mapField) && (valueField.IsMessage() || gogoproto.IsCustomType(mapField)) if nullable { // ensure the non-aliased Go value type is a pointer for consistency if strings.HasPrefix(goValueType, "*") { @@ -294,6 +316,7 @@ func EmbedFieldName(goTyp string) string { } func (g *Generator) GeneratePlugin(p Plugin) { + plugins = []Plugin{p} p.Init(g) // Generate the output. The generator runs for every file, even the files // that we don't generate output for, so that we can collate the full list @@ -396,32 +419,6 @@ func getCastType(field *descriptor.FieldDescriptorProto) (packageName string, ty return "", "", err } -func getCastKey(field *descriptor.FieldDescriptorProto) (packageName string, typ string, err error) { - if field.Options != nil { - var v interface{} - v, err = proto.GetExtension(field.Options, gogoproto.E_Castkey) - if err == nil && v.(*string) != nil { - ctype := *(v.(*string)) - packageName, typ = splitCPackageType(ctype) - return packageName, typ, nil - } - } - return "", "", err -} - -func getCastValue(field *descriptor.FieldDescriptorProto) (packageName string, typ string, err error) { - if field.Options != nil { - var v interface{} - v, err = proto.GetExtension(field.Options, gogoproto.E_Castvalue) - if err == nil && v.(*string) != nil { - ctype := *(v.(*string)) - packageName, typ = splitCPackageType(ctype) - return packageName, typ, nil - } - } - return "", "", err -} - func FileName(file *FileDescriptor) string { fname := path.Base(file.FileDescriptorProto.GetName()) fname = strings.Replace(fname, ".proto", "", -1) @@ -442,3 +439,9 @@ func (g *Generator) AllFiles() *descriptor.FileDescriptorSet { func (d *Descriptor) Path() string { return d.path } + +func (g *Generator) useTypes() string { + pkg := strings.Map(badToUnderscore, "github.com/gogo/protobuf/types") + g.customImports = append(g.customImports, "github.com/gogo/protobuf/types") + return pkg +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go index 4b8c9dd2..359001b4 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go @@ -48,7 +48,7 @@ import ( // It is incremented whenever an incompatibility between the generated code and // the grpc package is introduced; the generated code references // a constant, grpc.SupportPackageIsVersionN (where N is generatedCodeVersion). -const generatedCodeVersion = 3 +const generatedCodeVersion = 4 // Paths for packages used by code generated in this file, // relative to the import_prefix of the generator.Generator. @@ -254,7 +254,7 @@ func (g *grpc) generateService(file *generator.FileDescriptor, service *pb.Servi g.P("},") } g.P("},") - g.P("Metadata: ", file.VarName(), ",") + g.P("Metadata: \"", file.GetName(), "\",") g.P("}") g.P() } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile index 546287ce..95234a75 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/Makefile @@ -33,5 +33,5 @@ # at src/google/protobuf/compiler/plugin.proto # Also we need to fix an import. regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. -I=../../protobuf/google/protobuf/compiler/:../../protobuf/ ../../protobuf/google/protobuf/compiler/plugin.proto - diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go index 6195da80..0f9f059c 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go @@ -9,6 +9,7 @@ It is generated from these files: plugin.proto It has these top-level messages: + Version CodeGeneratorRequest CodeGeneratorResponse */ @@ -26,7 +27,53 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// The version number of protocol compiler. +type Version struct { + Major *int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` + Minor *int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` + Patch *int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` + // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should + // be empty for mainline stable releases. + Suffix *string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Version) Reset() { *m = Version{} } +func (m *Version) String() string { return proto.CompactTextString(m) } +func (*Version) ProtoMessage() {} +func (*Version) Descriptor() ([]byte, []int) { return fileDescriptorPlugin, []int{0} } + +func (m *Version) GetMajor() int32 { + if m != nil && m.Major != nil { + return *m.Major + } + return 0 +} + +func (m *Version) GetMinor() int32 { + if m != nil && m.Minor != nil { + return *m.Minor + } + return 0 +} + +func (m *Version) GetPatch() int32 { + if m != nil && m.Patch != nil { + return *m.Patch + } + return 0 +} + +func (m *Version) GetSuffix() string { + if m != nil && m.Suffix != nil { + return *m.Suffix + } + return "" +} // An encoded CodeGeneratorRequest is written to the plugin's stdin. type CodeGeneratorRequest struct { @@ -47,14 +94,16 @@ type CodeGeneratorRequest struct { // the entire set into memory at once. However, as of this writing, this // is not similarly optimized on protoc's end -- it will store all fields in // memory at once before sending them to the plugin. - ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` - XXX_unrecognized []byte `json:"-"` + ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` + // The version number of protocol compiler. + CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"` + XXX_unrecognized []byte `json:"-"` } func (m *CodeGeneratorRequest) Reset() { *m = CodeGeneratorRequest{} } func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) } func (*CodeGeneratorRequest) ProtoMessage() {} -func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptorPlugin, []int{0} } +func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptorPlugin, []int{1} } func (m *CodeGeneratorRequest) GetFileToGenerate() []string { if m != nil { @@ -77,6 +126,13 @@ func (m *CodeGeneratorRequest) GetProtoFile() []*google_protobuf.FileDescriptorP return nil } +func (m *CodeGeneratorRequest) GetCompilerVersion() *Version { + if m != nil { + return m.CompilerVersion + } + return nil +} + // The plugin writes an encoded CodeGeneratorResponse to stdout. type CodeGeneratorResponse struct { // Error message. If non-empty, code generation failed. The plugin process @@ -95,7 +151,7 @@ type CodeGeneratorResponse struct { func (m *CodeGeneratorResponse) Reset() { *m = CodeGeneratorResponse{} } func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) } func (*CodeGeneratorResponse) ProtoMessage() {} -func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptorPlugin, []int{1} } +func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptorPlugin, []int{2} } func (m *CodeGeneratorResponse) GetError() string { if m != nil && m.Error != nil { @@ -172,7 +228,7 @@ func (m *CodeGeneratorResponse_File) Reset() { *m = CodeGeneratorRespons func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) } func (*CodeGeneratorResponse_File) ProtoMessage() {} func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { - return fileDescriptorPlugin, []int{1, 0} + return fileDescriptorPlugin, []int{2, 0} } func (m *CodeGeneratorResponse_File) GetName() string { @@ -197,30 +253,38 @@ func (m *CodeGeneratorResponse_File) GetContent() string { } func init() { + proto.RegisterType((*Version)(nil), "google.protobuf.compiler.Version") proto.RegisterType((*CodeGeneratorRequest)(nil), "google.protobuf.compiler.CodeGeneratorRequest") proto.RegisterType((*CodeGeneratorResponse)(nil), "google.protobuf.compiler.CodeGeneratorResponse") proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File") } +func init() { proto.RegisterFile("plugin.proto", fileDescriptorPlugin) } + var fileDescriptorPlugin = []byte{ - // 304 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x51, 0x4f, 0x4b, 0xfb, 0x40, - 0x14, 0x24, 0xbf, 0x5f, 0x44, 0xf2, 0x2c, 0x8d, 0x2c, 0x15, 0x42, 0xe9, 0x21, 0x14, 0xc1, 0x9e, - 0x52, 0x10, 0xc1, 0x7b, 0x2b, 0xea, 0x31, 0x04, 0x4f, 0x82, 0x84, 0x98, 0xbe, 0x86, 0x85, 0x74, - 0xdf, 0xba, 0xd9, 0x7c, 0x22, 0xbf, 0x93, 0x9f, 0xc7, 0xfd, 0x93, 0x56, 0x29, 0xf6, 0x94, 0xbc, - 0x99, 0xd9, 0x99, 0xd9, 0x7d, 0x30, 0x92, 0x6d, 0xdf, 0x70, 0x91, 0x49, 0x45, 0x9a, 0x58, 0xd2, - 0x10, 0x35, 0x2d, 0xfa, 0xe9, 0xbd, 0xdf, 0x66, 0x35, 0xed, 0x24, 0x6f, 0x51, 0x4d, 0x53, 0xcf, - 0x2c, 0xf7, 0xcc, 0x72, 0x83, 0x5d, 0xad, 0xb8, 0xd4, 0xa4, 0xbc, 0x7a, 0xfe, 0x19, 0xc0, 0x64, - 0x4d, 0x1b, 0x7c, 0x42, 0x81, 0xaa, 0x32, 0x78, 0x81, 0x1f, 0x3d, 0x76, 0x9a, 0x2d, 0xe0, 0x72, - 0x6b, 0x3c, 0x4a, 0x4d, 0x65, 0xe3, 0x39, 0x4c, 0x82, 0xf4, 0xff, 0x22, 0x2a, 0xc6, 0x16, 0x7f, - 0xa1, 0xe1, 0x04, 0xb2, 0x19, 0x44, 0xb2, 0x52, 0xd5, 0x0e, 0x35, 0xaa, 0xe4, 0x5f, 0x1a, 0x18, - 0xc9, 0x0f, 0xc0, 0xd6, 0x00, 0x2e, 0xa9, 0xb4, 0xa7, 0x92, 0xd8, 0x38, 0x5c, 0xdc, 0x5e, 0x67, - 0xc7, 0x8d, 0x1f, 0x0d, 0xf9, 0x70, 0xe8, 0x96, 0x5b, 0xd8, 0x98, 0xd8, 0x8f, 0x65, 0xe6, 0x5f, - 0x01, 0x5c, 0x1d, 0xb5, 0xec, 0x24, 0x89, 0x0e, 0xd9, 0x04, 0xce, 0x50, 0x29, 0x52, 0xa6, 0x9b, - 0x0d, 0xf6, 0x03, 0x7b, 0x86, 0xf0, 0x57, 0xdc, 0x5d, 0x76, 0xea, 0x81, 0xb2, 0x3f, 0x4d, 0x5d, - 0x9b, 0xc2, 0x39, 0x4c, 0xdf, 0x20, 0xb4, 0x13, 0x63, 0x10, 0x0a, 0x73, 0xa3, 0x21, 0xc6, 0xfd, - 0xb3, 0x1b, 0x88, 0xb9, 0x91, 0x2b, 0xcd, 0x49, 0x94, 0x92, 0xb8, 0xd0, 0xc3, 0xf5, 0xc7, 0x07, - 0x38, 0xb7, 0x28, 0x4b, 0xe0, 0xbc, 0x26, 0xa1, 0xd1, 0x08, 0x62, 0x27, 0xd8, 0x8f, 0xab, 0x7b, - 0x98, 0x99, 0x2e, 0x27, 0xfb, 0xad, 0x46, 0xb9, 0x5b, 0xb4, 0x7b, 0x90, 0xee, 0x35, 0xf2, 0x6b, - 0x2f, 0x1b, 0xfa, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x70, 0xa2, 0xbd, 0x30, 0x02, 0x02, 0x00, 0x00, + // 383 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xcd, 0x6a, 0xd5, 0x40, + 0x14, 0xc7, 0x89, 0x37, 0xb5, 0xe4, 0xb4, 0x34, 0x65, 0xa8, 0x32, 0x94, 0x2e, 0xe2, 0x45, 0x30, + 0xab, 0x14, 0x8a, 0xe0, 0xbe, 0x15, 0x75, 0xe1, 0xe2, 0x32, 0x88, 0x0b, 0x41, 0x42, 0x4c, 0x4f, + 0xe2, 0x48, 0x32, 0x67, 0x9c, 0x99, 0x88, 0x4f, 0xea, 0x7b, 0xf8, 0x06, 0x32, 0x1f, 0xa9, 0x72, + 0xf1, 0xee, 0xe6, 0xff, 0x3b, 0xf3, 0x71, 0xce, 0x8f, 0x81, 0x53, 0x3d, 0x2d, 0xa3, 0x54, 0x8d, + 0x36, 0xe4, 0x88, 0xf1, 0x91, 0x68, 0x9c, 0x30, 0xa6, 0x2f, 0xcb, 0xd0, 0xf4, 0x34, 0x6b, 0x39, + 0xa1, 0xb9, 0xac, 0x62, 0xe5, 0x7a, 0xad, 0x5c, 0xdf, 0xa3, 0xed, 0x8d, 0xd4, 0x8e, 0x4c, 0xdc, + 0xbd, 0xed, 0xe1, 0xf8, 0x23, 0x1a, 0x2b, 0x49, 0xb1, 0x0b, 0x38, 0x9a, 0xbb, 0x6f, 0x64, 0x78, + 0x56, 0x65, 0xf5, 0x91, 0x88, 0x21, 0x50, 0xa9, 0xc8, 0xf0, 0x47, 0x89, 0xfa, 0xe0, 0xa9, 0xee, + 0x5c, 0xff, 0x95, 0x6f, 0x22, 0x0d, 0x81, 0x3d, 0x85, 0xc7, 0x76, 0x19, 0x06, 0xf9, 0x93, 0xe7, + 0x55, 0x56, 0x17, 0x22, 0xa5, 0xed, 0xef, 0x0c, 0x2e, 0xee, 0xe8, 0x1e, 0xdf, 0xa2, 0x42, 0xd3, + 0x39, 0x32, 0x02, 0xbf, 0x2f, 0x68, 0x1d, 0xab, 0xe1, 0x7c, 0x90, 0x13, 0xb6, 0x8e, 0xda, 0x31, + 0xd6, 0x90, 0x67, 0xd5, 0xa6, 0x2e, 0xc4, 0x99, 0xe7, 0x1f, 0x28, 0x9d, 0x40, 0x76, 0x05, 0x85, + 0xee, 0x4c, 0x37, 0xa3, 0xc3, 0xd8, 0x4a, 0x21, 0xfe, 0x02, 0x76, 0x07, 0x10, 0xc6, 0x69, 0xfd, + 0x29, 0x5e, 0x56, 0x9b, 0xfa, 0xe4, 0xe6, 0x79, 0xb3, 0xaf, 0xe5, 0x8d, 0x9c, 0xf0, 0xf5, 0x83, + 0x80, 0x9d, 0xc7, 0xa2, 0x08, 0x55, 0x5f, 0x61, 0xef, 0xe1, 0x7c, 0x15, 0xd7, 0xfe, 0x88, 0x4e, + 0xc2, 0x78, 0x27, 0x37, 0xcf, 0x9a, 0x43, 0x86, 0x9b, 0x24, 0x4f, 0x94, 0x2b, 0x49, 0x60, 0xfb, + 0x2b, 0x83, 0x27, 0x7b, 0x33, 0x5b, 0x4d, 0xca, 0xa2, 0x77, 0x87, 0xc6, 0x24, 0xcf, 0x85, 0x88, + 0x81, 0xbd, 0x83, 0xfc, 0x9f, 0xe6, 0x5f, 0x1e, 0x7e, 0xf1, 0xbf, 0x97, 0x86, 0xd9, 0x44, 0xb8, + 0xe1, 0xf2, 0x33, 0xe4, 0x61, 0x1e, 0x06, 0xb9, 0xea, 0x66, 0x4c, 0xcf, 0x84, 0x35, 0x7b, 0x01, + 0xa5, 0x54, 0x16, 0x8d, 0x93, 0xa4, 0x5a, 0x4d, 0x52, 0xb9, 0x24, 0xf3, 0xec, 0x01, 0xef, 0x3c, + 0x65, 0x1c, 0x8e, 0x7b, 0x52, 0x0e, 0x95, 0xe3, 0x65, 0xd8, 0xb0, 0xc6, 0xdb, 0x57, 0x70, 0xd5, + 0xd3, 0x7c, 0xb0, 0xbf, 0xdb, 0xd3, 0x5d, 0xf8, 0x9b, 0x41, 0xaf, 0xfd, 0x54, 0xc4, 0x9f, 0xda, + 0x8e, 0xf4, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x72, 0x3d, 0x18, 0xb5, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile index c65a2ead..4882f194 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile @@ -52,7 +52,7 @@ testbuild: buildprotos buildprotos: # Invoke protoc once to generate three independent .pb.go files in the same package. - protoc --gogo_out=. multi/multi{1,2,3}.proto + protoc --gogo_out=. multi/multi1.proto multi/multi2.proto multi/multi3.proto #extension_test: extension_test.$O # $(LD) -L. -o $@ $< diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go index 98b63394..6605ccfc 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go @@ -33,7 +33,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type HatType int32 @@ -288,10 +290,10 @@ func (m *Request_SomeGroup) GetGroupField() int32 { } type Reply struct { - Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` - CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys,json=compactKeys" json:"compact_keys,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` + CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys,json=compactKeys" json:"compact_keys,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *Reply) Reset() { *m = Reply{} } @@ -300,18 +302,12 @@ func (*Reply) ProtoMessage() {} func (*Reply) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{1} } var extRange_Reply = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*Reply) ExtensionRangeArray() []proto.ExtensionRange { return extRange_Reply } -func (m *Reply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *Reply) GetFound() []*Reply_Entry { if m != nil { @@ -330,7 +326,7 @@ func (m *Reply) GetCompactKeys() []int32 { type Reply_Entry struct { KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng,json=keyThatNeeds1234camelCasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` - XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=myFieldName2" json:"_my_field_name_2,omitempty"` + XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=MyFieldName2" json:"_my_field_name_2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -363,9 +359,9 @@ func (m *Reply_Entry) GetXMyFieldName_2() int64 { } type OtherBase struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherBase) Reset() { *m = OtherBase{} } @@ -374,18 +370,12 @@ func (*OtherBase) ProtoMessage() {} func (*OtherBase) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{2} } var extRange_OtherBase = []proto.ExtensionRange{ - {100, 536870911}, + {Start: 100, End: 536870911}, } func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherBase } -func (m *OtherBase) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *OtherBase) GetName() string { if m != nil && m.Name != nil { @@ -409,6 +399,7 @@ var E_ReplyExtensions_Time = &proto.ExtensionDesc{ Field: 101, Name: "my.test.ReplyExtensions.time", Tag: "fixed64,101,opt,name=time", + Filename: "my_test/test.proto", } var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ @@ -417,6 +408,7 @@ var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ Field: 105, Name: "my.test.ReplyExtensions.carrot", Tag: "bytes,105,opt,name=carrot", + Filename: "my_test/test.proto", } var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ @@ -425,6 +417,7 @@ var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ Field: 101, Name: "my.test.ReplyExtensions.donut", Tag: "bytes,101,opt,name=donut", + Filename: "my_test/test.proto", } type OtherReplyExtensions struct { @@ -445,8 +438,8 @@ func (m *OtherReplyExtensions) GetKey() int32 { } type OldReply struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OldReply) Reset() { *m = OldReply{} } @@ -455,16 +448,16 @@ func (*OldReply) ProtoMessage() {} func (*OldReply) Descriptor() ([]byte, []int) { return fileDescriptorTest, []int{5} } func (m *OldReply) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) + return proto.MarshalMessageSet(&m.XXX_InternalExtensions) } func (m *OldReply) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) + return proto.UnmarshalMessageSet(buf, &m.XXX_InternalExtensions) } func (m *OldReply) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) + return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions) } func (m *OldReply) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) + return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions) } // ensure OldReply satisfies proto.Marshaler and proto.Unmarshaler @@ -472,18 +465,12 @@ var _ proto.Marshaler = (*OldReply)(nil) var _ proto.Unmarshaler = (*OldReply)(nil) var extRange_OldReply = []proto.ExtensionRange{ - {100, 2147483646}, + {Start: 100, End: 2147483646}, } func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OldReply } -func (m *OldReply) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type Communique struct { MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry,json=makeMeCry" json:"make_me_cry,omitempty"` @@ -863,6 +850,7 @@ var E_Tag = &proto.ExtensionDesc{ Field: 103, Name: "my.test.tag", Tag: "bytes,103,opt,name=tag", + Filename: "my_test/test.proto", } var E_Donut = &proto.ExtensionDesc{ @@ -871,6 +859,7 @@ var E_Donut = &proto.ExtensionDesc{ Field: 106, Name: "my.test.donut", Tag: "bytes,106,opt,name=donut", + Filename: "my_test/test.proto", } func init() { @@ -896,67 +885,70 @@ func init() { proto.RegisterExtension(E_Donut) } +func init() { proto.RegisterFile("my_test/test.proto", fileDescriptorTest) } + var fileDescriptorTest = []byte{ - // 970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x54, 0xdd, 0x6e, 0xe3, 0x54, - 0x10, 0x5e, 0xdb, 0x71, 0x7e, 0x26, 0xd9, 0xd6, 0x1c, 0xad, 0x8a, 0x15, 0xb4, 0xbb, 0xc1, 0xb0, - 0xa8, 0x54, 0x28, 0xab, 0x35, 0x48, 0xac, 0x22, 0x81, 0x68, 0x12, 0xb7, 0x5b, 0xd1, 0x24, 0xd2, - 0x69, 0x7a, 0x01, 0x37, 0x96, 0x37, 0x3e, 0x4d, 0xcd, 0xc6, 0x76, 0x88, 0x4f, 0x10, 0xbe, 0xe3, - 0x29, 0xe0, 0x35, 0xb8, 0xe7, 0x85, 0x78, 0x0b, 0x98, 0x33, 0x0e, 0x4e, 0x9a, 0xac, 0xc8, 0x45, - 0xe4, 0x99, 0xf9, 0xe6, 0x3b, 0xf3, 0x0f, 0x2c, 0xce, 0x7d, 0x29, 0x32, 0xf9, 0x52, 0xfd, 0x75, - 0x97, 0xab, 0x54, 0xa6, 0xac, 0x16, 0xe7, 0x5d, 0x25, 0xb6, 0x59, 0xbc, 0x5e, 0xc8, 0xe8, 0x25, - 0xfd, 0xbf, 0x2a, 0x8c, 0xce, 0xdf, 0x15, 0xa8, 0x71, 0xf1, 0xf3, 0x1a, 0xed, 0xcc, 0x02, 0xe3, - 0x9d, 0xc8, 0x6d, 0xad, 0x63, 0x9c, 0x1a, 0x5c, 0x7d, 0xb2, 0x53, 0x30, 0xee, 0xd7, 0xc2, 0x36, - 0x3a, 0xda, 0xe9, 0x91, 0x7b, 0xd2, 0xdd, 0x10, 0x75, 0x37, 0x0e, 0xdd, 0x41, 0xba, 0x48, 0x57, - 0x5c, 0x41, 0xd8, 0x19, 0x22, 0x03, 0x69, 0x57, 0x08, 0x69, 0x95, 0xc8, 0x37, 0x81, 0x9c, 0xe6, - 0x4b, 0xd1, 0xab, 0x5e, 0x78, 0xc3, 0x09, 0x3f, 0xe7, 0x0a, 0xc4, 0x9e, 0x43, 0x3d, 0x14, 0x41, - 0xb8, 0x88, 0x12, 0x61, 0xd7, 0xd0, 0x41, 0xef, 0x19, 0x51, 0x72, 0xc7, 0x4b, 0x25, 0x7b, 0x0d, - 0x8d, 0x2c, 0x8d, 0xc5, 0x7c, 0x95, 0xae, 0x97, 0x76, 0x1d, 0x11, 0xe0, 0xb6, 0x0f, 0x1e, 0xbf, - 0x41, 0xc4, 0xa5, 0x42, 0xf0, 0x2d, 0x98, 0x0d, 0xa1, 0x95, 0x04, 0xb1, 0xf0, 0xe3, 0x60, 0xb9, - 0x8c, 0x92, 0xb9, 0x7d, 0x84, 0xb9, 0x34, 0xdd, 0x8f, 0x0f, 0x9c, 0xc7, 0x08, 0x1a, 0x15, 0x18, - 0x2f, 0x91, 0xab, 0x9c, 0x37, 0x93, 0xad, 0x86, 0x9d, 0x43, 0x33, 0xce, 0xe6, 0x25, 0xc9, 0x31, - 0x91, 0x74, 0x0e, 0x48, 0x46, 0xd9, 0xfc, 0x01, 0x07, 0xc4, 0xa5, 0x82, 0x3d, 0x01, 0x73, 0x25, - 0x32, 0x21, 0xed, 0x16, 0x86, 0x6f, 0xf2, 0x42, 0x60, 0x1f, 0x42, 0x6d, 0x2e, 0xa4, 0xaf, 0xaa, - 0x6c, 0xa1, 0xbe, 0xc1, 0xab, 0x28, 0x7e, 0x2f, 0xf2, 0xf6, 0x17, 0xd0, 0x28, 0xf3, 0xc1, 0xfa, - 0x34, 0x29, 0x1b, 0xff, 0x2e, 0x12, 0x8b, 0xd0, 0x6e, 0x10, 0x03, 0x90, 0xea, 0x42, 0x69, 0xda, - 0xdf, 0x82, 0xb5, 0x9f, 0xc0, 0xb6, 0x79, 0x0a, 0x4c, 0xcd, 0xc3, 0x10, 0x7e, 0x09, 0x16, 0xd8, - 0x3e, 0x9d, 0x9e, 0x2a, 0x84, 0x9e, 0xfe, 0x5a, 0x6b, 0x8f, 0xe0, 0x78, 0x2f, 0xf6, 0x5d, 0x77, - 0x56, 0xb8, 0x7f, 0xba, 0xeb, 0xde, 0x74, 0x8f, 0x76, 0xd2, 0x5f, 0x2e, 0xf2, 0x1d, 0x3a, 0xe7, - 0x05, 0x98, 0x34, 0x09, 0xac, 0x06, 0x06, 0xf7, 0x86, 0xd6, 0x23, 0xd6, 0x00, 0xf3, 0x92, 0x7b, - 0xde, 0xd8, 0xd2, 0x58, 0x1d, 0x2a, 0xfd, 0xeb, 0x5b, 0xcf, 0xd2, 0x9d, 0x3f, 0x74, 0x30, 0xc9, - 0x17, 0x87, 0xc5, 0xbc, 0x4b, 0xd7, 0x49, 0x48, 0xa3, 0xd6, 0x74, 0x9f, 0x3c, 0xa4, 0xee, 0x16, - 0xd5, 0x2c, 0x20, 0xec, 0x05, 0xb4, 0x66, 0x69, 0xbc, 0x0c, 0x66, 0x54, 0xb6, 0x0c, 0xa3, 0x31, - 0x4e, 0xcd, 0xbe, 0x6e, 0x69, 0xbc, 0xb9, 0xd1, 0x63, 0xfd, 0xb2, 0xf6, 0x9f, 0x1a, 0x98, 0x45, - 0x26, 0x43, 0x78, 0x8e, 0x40, 0x5f, 0xe2, 0xa4, 0xf9, 0x89, 0x10, 0x61, 0xe6, 0xbf, 0x72, 0xbf, - 0xfc, 0x6a, 0x86, 0xf5, 0x5a, 0xf8, 0x83, 0x20, 0xbb, 0xc2, 0x86, 0x6a, 0x1d, 0x1d, 0x27, 0xfc, - 0x23, 0x84, 0x4d, 0x11, 0x35, 0x56, 0xa0, 0x12, 0x53, 0x40, 0xb0, 0x53, 0x3b, 0xd9, 0x1b, 0x3d, - 0xed, 0xeb, 0x4d, 0xc2, 0xec, 0x33, 0xb0, 0x7c, 0x5c, 0x32, 0x6a, 0x8d, 0x4f, 0xb3, 0xe6, 0xd2, - 0x7e, 0x18, 0xbc, 0x15, 0xe7, 0xd4, 0x1e, 0xd5, 0x1a, 0xd7, 0xe9, 0x40, 0xe5, 0x12, 0x3f, 0x58, - 0x0b, 0xea, 0x17, 0x93, 0xc9, 0xb4, 0x7f, 0x7e, 0x7d, 0x8d, 0xd5, 0x00, 0xa8, 0x4e, 0xbd, 0xf1, - 0xf8, 0xea, 0xc6, 0xd2, 0xcf, 0xea, 0xf5, 0xd0, 0xfa, 0x0d, 0x7f, 0xba, 0xf3, 0x39, 0x34, 0x26, - 0xf2, 0x5e, 0xac, 0xfa, 0x41, 0x26, 0x18, 0x83, 0x8a, 0xa2, 0xa5, 0x56, 0x34, 0x38, 0x7d, 0xef, - 0x40, 0xff, 0xd2, 0xe0, 0x98, 0xaa, 0xe4, 0xfd, 0x2a, 0x45, 0x92, 0x45, 0x69, 0x92, 0xb9, 0x0e, - 0x54, 0x64, 0x84, 0x4f, 0xed, 0xb5, 0xc8, 0x16, 0xc8, 0xa0, 0x71, 0xb2, 0xb9, 0xdf, 0x41, 0x75, - 0x16, 0xac, 0x70, 0xe5, 0x0f, 0x50, 0x11, 0xb5, 0xd7, 0x7e, 0xa8, 0xdd, 0xb2, 0xf3, 0x8d, 0x9f, - 0xdb, 0x07, 0x33, 0x4c, 0x93, 0xb5, 0x64, 0xac, 0x84, 0x96, 0x41, 0xd3, 0x53, 0xff, 0x47, 0x52, - 0xb8, 0x3a, 0xa7, 0xf0, 0x84, 0x7c, 0xf6, 0xcc, 0x87, 0xc3, 0xeb, 0xd8, 0x50, 0x9f, 0x2c, 0x42, - 0xc2, 0x51, 0xf6, 0xff, 0xe0, 0xaf, 0xd6, 0xd3, 0xeb, 0x9a, 0xf3, 0xbb, 0x01, 0x30, 0x48, 0xe3, - 0x78, 0x9d, 0x44, 0xb8, 0x86, 0xec, 0x19, 0xee, 0x6a, 0xf0, 0x0e, 0x37, 0x5e, 0xf8, 0xb3, 0x55, - 0x41, 0x51, 0xe7, 0x0d, 0xa5, 0x1a, 0x89, 0x01, 0x8e, 0x83, 0x0d, 0xd5, 0x64, 0x1d, 0xbf, 0x15, - 0x2b, 0xdb, 0x54, 0xec, 0x6f, 0x1e, 0xf1, 0x8d, 0x8c, 0xfb, 0x51, 0x14, 0xba, 0xaa, 0x0a, 0x8d, - 0x7a, 0x92, 0x94, 0x36, 0x0c, 0x64, 0x40, 0x87, 0xa9, 0xa5, 0xb4, 0x4a, 0xc2, 0x71, 0xa8, 0x4a, - 0x11, 0x2f, 0xfd, 0x19, 0x9d, 0x23, 0x0d, 0xf5, 0xa6, 0x92, 0x07, 0x8a, 0xfe, 0x5e, 0x44, 0xf3, - 0x7b, 0x49, 0x6b, 0xaa, 0x2b, 0xfa, 0x42, 0xc6, 0xc1, 0x35, 0x65, 0x1a, 0x06, 0xb9, 0x0d, 0x74, - 0x13, 0x1f, 0x97, 0xb5, 0x19, 0x06, 0x79, 0x46, 0x04, 0xca, 0xca, 0x4e, 0xc0, 0x8c, 0x83, 0xfc, - 0xad, 0xb0, 0x9b, 0x2a, 0x72, 0xa5, 0x27, 0x51, 0xe9, 0x43, 0xb1, 0xc0, 0x40, 0xd4, 0x01, 0xf9, - 0x40, 0xe9, 0x49, 0x64, 0x0e, 0x18, 0x78, 0x66, 0xec, 0xc7, 0xef, 0x5b, 0x4a, 0x44, 0x29, 0x23, - 0xfb, 0x66, 0xf7, 0x7e, 0x1e, 0xd1, 0xfd, 0x7c, 0x5a, 0x22, 0xb7, 0xb5, 0xdb, 0x9e, 0x50, 0x74, - 0xdc, 0x7a, 0xb4, 0x3f, 0xd9, 0x3d, 0x46, 0x27, 0x50, 0x8d, 0x05, 0xd5, 0xef, 0xb8, 0xb8, 0x58, - 0x85, 0xd4, 0xae, 0x81, 0x39, 0x54, 0x01, 0xf5, 0xf1, 0x03, 0xe9, 0xd2, 0xe4, 0xec, 0x19, 0xd4, - 0x36, 0xe7, 0x5e, 0x8d, 0x79, 0x71, 0xf0, 0x71, 0xe4, 0xf1, 0x28, 0x5c, 0x78, 0x3f, 0xe2, 0xbc, - 0x77, 0xa1, 0xa2, 0x52, 0x57, 0xc6, 0xd1, 0x64, 0x3c, 0x3c, 0xff, 0x01, 0x8d, 0x4d, 0xa8, 0x4d, - 0x6f, 0xbd, 0x1b, 0x25, 0xe8, 0xea, 0x6a, 0x5c, 0xdf, 0x8e, 0x87, 0x57, 0x96, 0xd6, 0xc6, 0xfd, - 0xee, 0x75, 0xc0, 0x90, 0xc1, 0xfc, 0x60, 0x5e, 0xe7, 0x14, 0x86, 0x32, 0xf5, 0x06, 0xff, 0x8d, - 0xe4, 0x3e, 0xe6, 0x27, 0xaa, 0xce, 0xd3, 0x87, 0x83, 0xfa, 0xfe, 0x99, 0xfc, 0x37, 0x00, 0x00, - 0xff, 0xff, 0xc7, 0xad, 0x0f, 0xe3, 0x33, 0x07, 0x00, 0x00, + // 988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xdd, 0x6e, 0xe3, 0x44, + 0x14, 0xce, 0xd8, 0x71, 0x7e, 0x4e, 0xb2, 0xad, 0x19, 0x55, 0xad, 0x15, 0xb4, 0x5b, 0x13, 0x28, + 0x32, 0x15, 0xca, 0x6a, 0x0d, 0x12, 0xab, 0x48, 0x20, 0x9a, 0x9f, 0x36, 0xd5, 0x36, 0x89, 0x34, + 0x6d, 0x2f, 0xe0, 0xc6, 0x9a, 0x8d, 0xa7, 0x8e, 0x69, 0xc6, 0xce, 0xda, 0x63, 0x84, 0xef, 0xfa, + 0x14, 0xf0, 0x1a, 0xdc, 0xf3, 0x42, 0xbc, 0x45, 0xd1, 0x8c, 0x43, 0x92, 0x36, 0xab, 0xbd, 0xb1, + 0x7c, 0xbe, 0xf9, 0xce, 0xe7, 0x39, 0x3f, 0xfe, 0x00, 0xf3, 0xdc, 0x13, 0x2c, 0x15, 0xaf, 0xe5, + 0xa3, 0xb3, 0x4c, 0x62, 0x11, 0xe3, 0x2a, 0xcf, 0x3b, 0x32, 0x6c, 0x61, 0x9e, 0x2d, 0x44, 0xf8, + 0x5a, 0x3d, 0xdf, 0x14, 0x87, 0xed, 0x7f, 0xcb, 0x50, 0x25, 0xec, 0x43, 0xc6, 0x52, 0x81, 0x4d, + 0xd0, 0xef, 0x59, 0x6e, 0x21, 0x5b, 0x77, 0x74, 0x22, 0x5f, 0xb1, 0x03, 0xfa, 0x3c, 0x63, 0x96, + 0x6e, 0x23, 0x67, 0xcf, 0x3d, 0xec, 0xac, 0x84, 0x3a, 0xab, 0x84, 0x4e, 0x3f, 0x5e, 0xc4, 0x09, + 0x91, 0x14, 0x7c, 0x0a, 0xfa, 0x9c, 0x0a, 0xab, 0xac, 0x98, 0xe6, 0x9a, 0x39, 0xa2, 0xe2, 0x26, + 0x5f, 0xb2, 0x6e, 0xe5, 0x7c, 0x38, 0x98, 0x92, 0x33, 0x22, 0x49, 0xf8, 0x18, 0x6a, 0x3e, 0xa3, + 0xfe, 0x22, 0x8c, 0x98, 0x55, 0xb5, 0x91, 0xa3, 0x75, 0xf5, 0x30, 0xba, 0x23, 0x6b, 0x10, 0xbf, + 0x85, 0x7a, 0x1a, 0x73, 0x16, 0x24, 0x71, 0xb6, 0xb4, 0x6a, 0x36, 0x72, 0xc0, 0x6d, 0xed, 0x7c, + 0xfc, 0x3a, 0xe6, 0xec, 0x42, 0x32, 0xc8, 0x86, 0x8c, 0x07, 0xd0, 0x8c, 0x28, 0x67, 0x1e, 0xa7, + 0xcb, 0x65, 0x18, 0x05, 0xd6, 0x9e, 0xad, 0x3b, 0x0d, 0xf7, 0x8b, 0x9d, 0xe4, 0x09, 0xe5, 0x6c, + 0x5c, 0x70, 0x86, 0x91, 0x48, 0x72, 0xd2, 0x88, 0x36, 0x08, 0x3e, 0x83, 0x06, 0x4f, 0x83, 0xb5, + 0xc8, 0xbe, 0x12, 0xb1, 0x77, 0x44, 0xc6, 0x69, 0xf0, 0x44, 0x03, 0xf8, 0x1a, 0xc0, 0x07, 0x60, + 0x24, 0x2c, 0x65, 0xc2, 0x6a, 0xda, 0xc8, 0x31, 0x48, 0x11, 0xe0, 0x23, 0xa8, 0x06, 0x4c, 0x78, + 0xb2, 0xcb, 0xa6, 0x8d, 0x9c, 0x3a, 0xa9, 0x04, 0x4c, 0xbc, 0x63, 0x79, 0xeb, 0x5b, 0xa8, 0xaf, + 0xeb, 0xc1, 0xc7, 0xd0, 0x50, 0xd5, 0x78, 0x77, 0x21, 0x5b, 0xf8, 0x56, 0x5d, 0x29, 0x80, 0x82, + 0xce, 0x25, 0xd2, 0xfa, 0x09, 0xcc, 0xe7, 0x05, 0x6c, 0x86, 0x27, 0xc9, 0x6a, 0x78, 0x07, 0x60, + 0xfc, 0x4e, 0x17, 0x19, 0xb3, 0x34, 0xf5, 0xa9, 0x22, 0xe8, 0x6a, 0x6f, 0x51, 0x6b, 0x0c, 0xfb, + 0xcf, 0xee, 0xbe, 0x9d, 0x8e, 0x8b, 0xf4, 0xaf, 0xb6, 0xd3, 0x1b, 0xee, 0xde, 0x56, 0xf9, 0xcb, + 0x45, 0xbe, 0x25, 0xd7, 0x3e, 0x01, 0x43, 0x6d, 0x02, 0xae, 0x82, 0x4e, 0x86, 0x03, 0xb3, 0x84, + 0xeb, 0x60, 0x5c, 0x90, 0xe1, 0x70, 0x62, 0x22, 0x5c, 0x83, 0x72, 0xef, 0xea, 0x76, 0x68, 0x6a, + 0xed, 0xbf, 0x34, 0x30, 0x54, 0x2e, 0x3e, 0x05, 0xe3, 0x2e, 0xce, 0x22, 0x5f, 0xad, 0x5a, 0xc3, + 0x3d, 0x78, 0x2a, 0xdd, 0x29, 0xba, 0x59, 0x50, 0xf0, 0x09, 0x34, 0x67, 0x31, 0x5f, 0xd2, 0x99, + 0x6a, 0x5b, 0x6a, 0x69, 0xb6, 0xee, 0x18, 0x3d, 0xcd, 0x44, 0xa4, 0xb1, 0xc2, 0xdf, 0xb1, 0x3c, + 0x6d, 0xfd, 0x8d, 0xc0, 0x28, 0x2a, 0x19, 0xc0, 0xf1, 0x3d, 0xcb, 0x3d, 0x31, 0xa7, 0xc2, 0x8b, + 0x18, 0xf3, 0x53, 0xef, 0x8d, 0xfb, 0xdd, 0xf7, 0x33, 0xca, 0xd9, 0xc2, 0xeb, 0xd3, 0xf4, 0x32, + 0x0a, 0x2c, 0x64, 0x6b, 0x8e, 0x4e, 0x3e, 0xbf, 0x67, 0xf9, 0xcd, 0x9c, 0x8a, 0x89, 0x24, 0xad, + 0x39, 0x05, 0x05, 0x1f, 0x6d, 0x57, 0xaf, 0x77, 0xd1, 0x0f, 0xab, 0x82, 0xf1, 0xd7, 0x60, 0x7a, + 0x3c, 0x2f, 0x46, 0xe3, 0xa9, 0x5d, 0x73, 0xd5, 0xff, 0xa1, 0x93, 0xe6, 0x38, 0x57, 0xe3, 0x91, + 0xa3, 0x71, 0xdb, 0x36, 0x94, 0x2f, 0x28, 0x67, 0xb8, 0x09, 0xb5, 0xf3, 0xe9, 0xf4, 0xa6, 0x77, + 0x76, 0x75, 0x65, 0x22, 0x0c, 0x50, 0xb9, 0x19, 0x4e, 0x26, 0x97, 0xd7, 0xa6, 0x76, 0x5a, 0xab, + 0xf9, 0xe6, 0xc3, 0xc3, 0xc3, 0x83, 0xd6, 0xfe, 0x06, 0xea, 0x53, 0x31, 0x67, 0x49, 0x8f, 0xa6, + 0x0c, 0x63, 0x28, 0x4b, 0x59, 0x35, 0x8a, 0x3a, 0x51, 0xef, 0x5b, 0xd4, 0x7f, 0x10, 0xec, 0xab, + 0x2e, 0x0d, 0xff, 0x10, 0x2c, 0x4a, 0xc3, 0x38, 0x4a, 0xdd, 0x36, 0x94, 0x45, 0xc8, 0x19, 0x7e, + 0x36, 0x22, 0x8b, 0xd9, 0xc8, 0x41, 0x44, 0x9d, 0xb9, 0x3f, 0x43, 0x65, 0x46, 0x93, 0x24, 0x16, + 0x3b, 0xac, 0x50, 0x8d, 0xd7, 0x7a, 0x8a, 0x6e, 0xd4, 0xc9, 0x2a, 0xcf, 0xed, 0x81, 0xe1, 0xc7, + 0x51, 0x26, 0x30, 0x5e, 0x53, 0xd7, 0x97, 0x56, 0x9f, 0xfa, 0x94, 0x48, 0x91, 0xda, 0x76, 0xe0, + 0x40, 0xe5, 0x3c, 0x3b, 0xde, 0x5d, 0xde, 0xb6, 0x05, 0xb5, 0xe9, 0xc2, 0x57, 0x3c, 0x55, 0xfd, + 0xe3, 0xe3, 0xe3, 0x63, 0xb5, 0xab, 0xd5, 0x50, 0xfb, 0x4f, 0x1d, 0xa0, 0x1f, 0x73, 0x9e, 0x45, + 0xe1, 0x87, 0x8c, 0xe1, 0x57, 0xd0, 0xe0, 0xf4, 0x9e, 0x79, 0x9c, 0x79, 0xb3, 0xa4, 0x90, 0xa8, + 0x91, 0xba, 0x84, 0xc6, 0xac, 0x9f, 0xe4, 0xd8, 0x82, 0x4a, 0x94, 0xf1, 0xf7, 0x2c, 0xb1, 0x0c, + 0xa9, 0x3e, 0x2a, 0x91, 0x55, 0x8c, 0x0f, 0x56, 0x8d, 0xae, 0xc8, 0x46, 0x8f, 0x4a, 0x45, 0xab, + 0x25, 0xea, 0x53, 0x41, 0x95, 0x31, 0x35, 0x25, 0x2a, 0x23, 0x7c, 0x04, 0x15, 0xc1, 0xf8, 0xd2, + 0x9b, 0x29, 0x3b, 0x42, 0xa3, 0x12, 0x31, 0x64, 0xdc, 0x97, 0xf2, 0x73, 0x16, 0x06, 0x73, 0xa1, + 0x7e, 0x53, 0x4d, 0xca, 0x17, 0x31, 0x3e, 0x01, 0x43, 0xc4, 0x3e, 0xcd, 0x2d, 0x50, 0x9e, 0xf8, + 0x62, 0xdd, 0x9b, 0x01, 0xcd, 0x53, 0x25, 0x20, 0x4f, 0xf1, 0x21, 0x18, 0x9c, 0xe6, 0xef, 0x99, + 0xd5, 0x90, 0x37, 0x97, 0xb8, 0x0a, 0x25, 0xee, 0xb3, 0x85, 0xa0, 0xca, 0x40, 0x3e, 0x93, 0xb8, + 0x0a, 0x71, 0x1b, 0x74, 0x9e, 0x06, 0xd6, 0x8b, 0x8f, 0xfd, 0x94, 0xa3, 0x12, 0x91, 0x87, 0xf8, + 0xc7, 0x6d, 0xff, 0xdc, 0x53, 0xfe, 0xf9, 0x72, 0xcd, 0xdc, 0xf4, 0x6e, 0x63, 0xa1, 0xa3, 0xd2, + 0x96, 0x89, 0xb6, 0xbe, 0xdc, 0x36, 0xa3, 0x43, 0xa8, 0x70, 0xa6, 0xfa, 0xb7, 0x5f, 0x38, 0x56, + 0x11, 0xb5, 0xaa, 0x60, 0x0c, 0xe4, 0x85, 0x7a, 0x55, 0x30, 0xb2, 0x28, 0x8c, 0xa3, 0xd3, 0x57, + 0x50, 0x5d, 0xd9, 0xbd, 0x5c, 0xf3, 0xc2, 0xf0, 0x4d, 0x24, 0x4d, 0xe1, 0x7c, 0xf8, 0xab, 0xa9, + 0x9d, 0x76, 0xa0, 0x2c, 0x4b, 0x97, 0x87, 0xe3, 0xe9, 0x64, 0x70, 0xf6, 0x8b, 0x89, 0x70, 0x03, + 0xaa, 0x37, 0xb7, 0xc3, 0x6b, 0x19, 0x68, 0xd2, 0x35, 0xae, 0x6e, 0x27, 0x83, 0x4b, 0x13, 0xb5, + 0x34, 0x13, 0x75, 0x6d, 0xd0, 0x05, 0x0d, 0x76, 0xf6, 0x35, 0x50, 0xd7, 0x90, 0x47, 0xdd, 0xfe, + 0xff, 0x2b, 0xf9, 0x9c, 0xf3, 0x9b, 0xea, 0xce, 0xcb, 0xa7, 0x8b, 0xfa, 0xf1, 0x9d, 0xfc, 0x2f, + 0x00, 0x00, 0xff, 0xff, 0x43, 0x23, 0x7b, 0xca, 0x33, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3.proto b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3.proto index c994914e..869b9af5 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3.proto +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3.proto @@ -44,6 +44,7 @@ message Request { repeated int64 key = 2; Flavour taste = 3; Book book = 4; + repeated int64 unpacked = 5 [packed=false]; } message Book { diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogofast/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogofast/main.go index a3dff9b2..96c18d9f 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogofast/main.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogofast/main.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -36,7 +36,7 @@ import ( func main() { req := command.Read() files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) + files = vanity.FilterFiles(files, vanity.NotGoogleProtobufDescriptorProto) vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) vanity.ForEachFile(files, vanity.TurnOnSizerAll) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogofaster/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogofaster/main.go index f7dc56b5..ba3e7e15 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogofaster/main.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogofaster/main.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -36,7 +36,7 @@ import ( func main() { req := command.Read() files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) + files = vanity.FilterFiles(files, vanity.NotGoogleProtobufDescriptorProto) vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) vanity.ForEachFile(files, vanity.TurnOnSizerAll) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogoslick/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogoslick/main.go index 192a974e..235bd64a 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogoslick/main.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogoslick/main.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -36,7 +36,7 @@ import ( func main() { req := command.Read() files := req.GetProtoFile() - files = vanity.FilterFiles(files, vanity.NotInPackageGoogleProtobuf) + files = vanity.FilterFiles(files, vanity.NotGoogleProtobufDescriptorProto) vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) vanity.ForEachFile(files, vanity.TurnOnSizerAll) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogotypes/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogotypes/main.go new file mode 100644 index 00000000..d227a264 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogotypes/main.go @@ -0,0 +1,75 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package main + +import ( + "strings" + + "github.com/gogo/protobuf/vanity" + "github.com/gogo/protobuf/vanity/command" +) + +func main() { + req := command.Read() + files := req.GetProtoFile() + files = vanity.FilterFiles(files, vanity.NotGoogleProtobufDescriptorProto) + + vanity.ForEachFile(files, vanity.TurnOnMarshalerAll) + vanity.ForEachFile(files, vanity.TurnOnSizerAll) + vanity.ForEachFile(files, vanity.TurnOnUnmarshalerAll) + + vanity.ForEachFile(files, vanity.TurnOffGoEnumPrefixAll) + vanity.ForEachFile(files, vanity.TurnOffGoEnumStringerAll) + vanity.ForEachFile(files, vanity.TurnOnEnumStringerAll) + + vanity.ForEachFile(files, vanity.TurnOnEqualAll) + vanity.ForEachFile(files, vanity.TurnOnGoStringAll) + vanity.ForEachFile(files, vanity.TurnOffGoStringerAll) + + for _, file := range files { + if strings.HasSuffix(file.GetName(), "struct.proto") { + // TODO struct can also get a compare method when + // https://github.com/gogo/protobuf/issues/221 is fixed + continue + } + vanity.TurnOnCompareAll(file) + } + + for _, file := range files { + if strings.HasSuffix(file.GetName(), "timestamp.proto") || + strings.HasSuffix(file.GetName(), "duration.proto") { + continue + } + vanity.TurnOnStringerAll(file) + vanity.TurnOnPopulateAll(file) + } + + resp := command.Generate(req) + command.Write(resp) +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gostring/main.go b/vendor/github.com/gogo/protobuf/protoc-gen-gostring/main.go new file mode 100644 index 00000000..9c7dd6b8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gostring/main.go @@ -0,0 +1,42 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package main + +import ( + "github.com/gogo/protobuf/plugin/gostring" + "github.com/gogo/protobuf/vanity/command" +) + +func main() { + req := command.Read() + p := gostring.NewGoString() + p.Overwrite() + resp := command.GeneratePlugin(req, p, "_gostring.gen.go") + command.Write(resp) +} diff --git a/vendor/github.com/gogo/protobuf/protoc-min-version/minversion.go b/vendor/github.com/gogo/protobuf/protoc-min-version/minversion.go index 3f61d0da..b8434d50 100644 --- a/vendor/github.com/gogo/protobuf/protoc-min-version/minversion.go +++ b/vendor/github.com/gogo/protobuf/protoc-min-version/minversion.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go b/vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go index c52878dd..ceadde6a 100644 --- a/vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go +++ b/vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/Makefile b/vendor/github.com/gogo/protobuf/test/Makefile index edcbe504..0a658282 100644 --- a/vendor/github.com/gogo/protobuf/test/Makefile +++ b/vendor/github.com/gogo/protobuf/test/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -27,9 +27,10 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo go install github.com/gogo/protobuf/protoc-gen-combo protoc --gogo_out=. --proto_path=../:../../../../:../protobuf/:. thetest.proto - protoc-gen-combo --default=false --proto_path=../:../../../../:../protobuf/:. thetest.proto + protoc-gen-combo --default=false --gogo_out=. --proto_path=../:../../../../:../protobuf/:. thetest.proto cp uuid.go ./combos/both/ cp uuid.go ./combos/marshaler/ cp uuid.go ./combos/unmarshaler/ diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/Makefile b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/Makefile index 9e101c88..c42b8cf6 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/Makefile +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without @@ -27,4 +27,4 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: - (protoc --proto_path=../../../../../:../../protobuf/:. --gogo_out=. asym.proto) \ No newline at end of file + (protoc --proto_path=../../../../../:../../protobuf/:. --gogo_out=. asym.proto) diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go index 5dd21853..b28b7847 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go @@ -30,7 +30,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type M struct { Arr []MyType `protobuf:"bytes,1,rep,name=arr,customtype=MyType" json:"arr"` @@ -191,27 +193,27 @@ func (this *MyType) Equal(that interface{}) bool { } return true } -func (m *M) Marshal() (data []byte, err error) { +func (m *M) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *M) MarshalTo(data []byte) (int, error) { +func (m *M) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Arr) > 0 { for _, msg := range m.Arr { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintAsym(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintAsym(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -219,36 +221,36 @@ func (m *M) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Asym(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Asym(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Asym(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Asym(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintAsym(data []byte, offset int, v uint64) int { +func encodeVarintAsym(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedM(r randyAsym, easy bool) *M { @@ -293,7 +295,7 @@ func randStringAsym(r randyAsym) string { } return string(tmps) } -func randUnrecognizedAsym(r randyAsym, maxFieldNumber int) (data []byte) { +func randUnrecognizedAsym(r randyAsym, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -301,43 +303,43 @@ func randUnrecognizedAsym(r randyAsym, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldAsym(data, r, fieldNumber, wire) + dAtA = randFieldAsym(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldAsym(data []byte, r randyAsym, fieldNumber int, wire int) []byte { +func randFieldAsym(dAtA []byte, r randyAsym, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateAsym(data, uint64(key)) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(key)) v4 := r.Int63() if r.Intn(2) == 0 { v4 *= -1 } - data = encodeVarintPopulateAsym(data, uint64(v4)) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(v4)) case 1: - data = encodeVarintPopulateAsym(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateAsym(data, uint64(key)) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateAsym(data, uint64(ll)) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateAsym(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateAsym(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateAsym(data []byte, v uint64) []byte { +func encodeVarintPopulateAsym(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *M) Size() (n int) { var l int @@ -367,8 +369,8 @@ func sovAsym(x uint64) (n int) { func sozAsym(x uint64) (n int) { return sovAsym(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *M) Unmarshal(data []byte) error { - l := len(data) +func (m *M) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -380,7 +382,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -408,7 +410,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -424,13 +426,13 @@ func (m *M) Unmarshal(data []byte) error { } var v MyType m.Arr = append(m.Arr, v) - if err := m.Arr[len(m.Arr)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Arr[len(m.Arr)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipAsym(data[iNdEx:]) + skippy, err := skipAsym(dAtA[iNdEx:]) if err != nil { return err } @@ -440,7 +442,7 @@ func (m *M) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -450,8 +452,8 @@ func (m *M) Unmarshal(data []byte) error { } return nil } -func (m *MyType) Unmarshal(data []byte) error { - l := len(data) +func (m *MyType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -463,7 +465,7 @@ func (m *MyType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -481,7 +483,7 @@ func (m *MyType) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipAsym(data[iNdEx:]) + skippy, err := skipAsym(dAtA[iNdEx:]) if err != nil { return err } @@ -491,7 +493,7 @@ func (m *MyType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -501,8 +503,8 @@ func (m *MyType) Unmarshal(data []byte) error { } return nil } -func skipAsym(data []byte) (n int, err error) { - l := len(data) +func skipAsym(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -513,7 +515,7 @@ func skipAsym(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -531,7 +533,7 @@ func skipAsym(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -548,7 +550,7 @@ func skipAsym(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -571,7 +573,7 @@ func skipAsym(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -582,7 +584,7 @@ func skipAsym(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipAsym(data[start:]) + next, err := skipAsym(dAtA[start:]) if err != nil { return 0, err } @@ -606,16 +608,19 @@ var ( ErrIntOverflowAsym = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("asym.proto", fileDescriptorAsym) } + var fileDescriptorAsym = []byte{ - // 151 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x2c, 0xae, 0xcc, + // 163 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x2c, 0xae, 0xcc, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x72, 0x31, 0xfa, 0x0a, 0x29, 0x70, 0x31, 0x27, 0x16, 0x15, 0x49, 0x30, 0x2a, 0x30, 0x6b, 0xf0, 0x38, 0xf1, 0x9d, 0xb8, 0x27, 0xcf, 0x70, 0xeb, 0x9e, 0x3c, 0x9b, 0x6f, 0x65, 0x48, 0x65, 0x41, 0x6a, 0x10, 0x48, 0x4a, 0x49, 0x8a, - 0x0b, 0xca, 0xb5, 0x12, 0xd8, 0xb1, 0x40, 0x9e, 0xe1, 0x07, 0x10, 0x77, 0x2c, 0x94, 0x67, 0x58, - 0x00, 0xc4, 0x4e, 0x32, 0x0f, 0x1e, 0xca, 0x31, 0xfe, 0x00, 0xe2, 0x15, 0x8f, 0xe4, 0x18, 0x77, - 0x00, 0xf1, 0x09, 0x20, 0xbe, 0x00, 0xc4, 0x0f, 0x80, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x9c, - 0x0b, 0x12, 0x6c, 0xa2, 0x00, 0x00, 0x00, + 0x0b, 0xca, 0xb5, 0x12, 0xd8, 0xb1, 0x40, 0x9e, 0xe1, 0xc7, 0x02, 0x79, 0x86, 0x8e, 0x85, 0xf2, + 0x0c, 0x0b, 0x16, 0xca, 0x33, 0x38, 0xc9, 0x3c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, + 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, + 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x0b, 0x12, 0x6c, 0xa2, + 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto index b73fe1eb..eb3ab956 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -47,4 +49,4 @@ message MyType { option (gogoproto.sizer) = false; option (gogoproto.populate) = false; option (gogoproto.testgen) = false; -} \ No newline at end of file +} diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym_test.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym_test.go index bc7532ec..c99b7cad 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym_test.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go index 39a886bb..ac89f9d7 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go @@ -33,18 +33,18 @@ func TestMProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -68,20 +68,20 @@ func TestMMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -116,9 +116,9 @@ func TestMProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -133,9 +133,9 @@ func TestMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -149,12 +149,12 @@ func TestMProtoCompactText(t *testing.T) { func TestMVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -166,13 +166,13 @@ func TestMSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/pop.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/pop.go index f745a707..26cad838 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/pop.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/pop.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/bug_test.go b/vendor/github.com/gogo/protobuf/test/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/casttype/Makefile b/vendor/github.com/gogo/protobuf/test/casttype/Makefile index f3f1a492..684c2e46 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/Makefile +++ b/vendor/github.com/gogo/protobuf/test/casttype/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2015, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -28,4 +28,5 @@ regenerate: go install github.com/gogo/protobuf/protoc-gen-combo - protoc-gen-combo --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. casttype.proto + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-gen-combo --gogo_out=. --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. casttype.proto diff --git a/vendor/github.com/gogo/protobuf/test/casttype/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/casttype.proto index 99195818..c726b9ef 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go index af2e9d23..3d8443de 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go @@ -28,13 +28,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -44,24 +40,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -70,7 +69,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -91,244 +90,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3791 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x36, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x2c, 0xdb, 0x72, 0x2e, - 0x5e, 0xef, 0xae, 0xe4, 0x3a, 0x8e, 0xed, 0xd0, 0xdb, 0x2c, 0x44, 0x89, 0xd6, 0xd2, 0xd0, 0xad, - 0x23, 0x71, 0x6d, 0xa7, 0x05, 0x06, 0x23, 0x72, 0x44, 0xd1, 0x1e, 0xce, 0xb0, 0x9c, 0xa1, 0x6d, - 0xed, 0x53, 0x5a, 0xb7, 0x5d, 0x6c, 0x8b, 0xde, 0x0b, 0x34, 0x9b, 0xcd, 0x6e, 0x9b, 0x00, 0x6d, - 0xd2, 0xf4, 0x96, 0xb4, 0x4d, 0x51, 0xf4, 0x29, 0x40, 0x91, 0x36, 0x4f, 0x45, 0xda, 0xa7, 0x3e, - 0x14, 0xb9, 0x35, 0x40, 0xd3, 0x36, 0x6d, 0x53, 0xc0, 0x40, 0x83, 0xe6, 0xa5, 0xe7, 0xfc, 0x97, - 0xe1, 0xf0, 0x22, 0x0d, 0xa5, 0x20, 0x4d, 0x05, 0x10, 0xe2, 0x9c, 0xff, 0x7c, 0xdf, 0x9c, 0x39, - 0xff, 0xf9, 0xcf, 0x39, 0xff, 0x3f, 0x84, 0xbf, 0xfa, 0x11, 0x38, 0x51, 0xb5, 0xed, 0xaa, 0x69, - 0xcc, 0x36, 0x9a, 0xb6, 0x6b, 0x6f, 0xb6, 0xb6, 0x66, 0x2b, 0x86, 0x53, 0x6e, 0xd6, 0x1a, 0xae, - 0xdd, 0x9c, 0x61, 0x32, 0x65, 0x94, 0x6b, 0xcc, 0x48, 0x8d, 0xe9, 0x65, 0x18, 0xbb, 0x52, 0x33, - 0x8d, 0x05, 0x4f, 0x71, 0xdd, 0x70, 0x95, 0x4b, 0x10, 0xdd, 0x42, 0x61, 0x36, 0x74, 0x22, 0x72, - 0x3a, 0x79, 0xee, 0xa1, 0x99, 0x2e, 0xd0, 0x4c, 0x27, 0x62, 0x8d, 0xc4, 0x2a, 0x43, 0x4c, 0x7f, - 0x10, 0x85, 0xf1, 0x3e, 0xa3, 0x8a, 0x02, 0x51, 0x4b, 0xaf, 0x13, 0x63, 0xe8, 0x74, 0x42, 0x65, - 0xdf, 0x95, 0x2c, 0x0c, 0x37, 0xf4, 0xf2, 0x2d, 0xbd, 0x6a, 0x64, 0xc3, 0x4c, 0x2c, 0x2f, 0x95, - 0x29, 0x80, 0x8a, 0xd1, 0x30, 0xac, 0x8a, 0x61, 0x95, 0x77, 0xb2, 0x11, 0xb4, 0x22, 0xa1, 0xfa, - 0x24, 0xca, 0x57, 0x60, 0xac, 0xd1, 0xda, 0x34, 0x6b, 0x65, 0xcd, 0xa7, 0x06, 0xa8, 0x16, 0x53, - 0x33, 0x7c, 0x60, 0xa1, 0xad, 0xfc, 0x28, 0x8c, 0xde, 0x31, 0xf4, 0x5b, 0x7e, 0xd5, 0x24, 0x53, - 0x4d, 0x93, 0xd8, 0xa7, 0x38, 0x0f, 0xa9, 0xba, 0xe1, 0x38, 0x68, 0x80, 0xe6, 0xee, 0x34, 0x8c, - 0x6c, 0x94, 0x3d, 0xfd, 0x89, 0x9e, 0xa7, 0xef, 0x7e, 0xf2, 0xa4, 0x40, 0x6d, 0x20, 0x48, 0x99, - 0x83, 0x84, 0x61, 0xb5, 0xea, 0x9c, 0x21, 0xb6, 0x8b, 0xff, 0x0a, 0xa8, 0xd1, 0xcd, 0x12, 0x27, - 0x98, 0xa0, 0x18, 0x76, 0x8c, 0xe6, 0xed, 0x5a, 0xd9, 0xc8, 0x0e, 0x31, 0x82, 0x47, 0x7b, 0x08, - 0xd6, 0xf9, 0x78, 0x37, 0x87, 0xc4, 0xe1, 0xa3, 0x24, 0x8c, 0xbb, 0xae, 0x61, 0x39, 0x35, 0xdb, - 0xca, 0x0e, 0x33, 0x92, 0x87, 0xfb, 0xcc, 0xa2, 0x61, 0x56, 0xba, 0x29, 0xda, 0x38, 0xe5, 0x02, - 0x0c, 0xdb, 0x0d, 0x17, 0xbf, 0x39, 0xd9, 0x38, 0xce, 0x4f, 0xf2, 0xdc, 0x83, 0x7d, 0x03, 0x61, - 0x95, 0xeb, 0xa8, 0x52, 0x59, 0x29, 0x42, 0xc6, 0xb1, 0x5b, 0xcd, 0xb2, 0xa1, 0x95, 0xed, 0x8a, - 0xa1, 0xd5, 0xac, 0x2d, 0x3b, 0x9b, 0x60, 0x04, 0xc7, 0x7b, 0x1f, 0x84, 0x29, 0xce, 0xa3, 0x5e, - 0x11, 0xd5, 0xd4, 0xb4, 0xd3, 0x71, 0xad, 0x1c, 0x86, 0x21, 0x67, 0xc7, 0x72, 0xf5, 0xbb, 0xd9, - 0x14, 0x8b, 0x10, 0x71, 0x35, 0xfd, 0xdf, 0x31, 0x18, 0x1d, 0x24, 0xc4, 0x2e, 0x43, 0x6c, 0x8b, - 0x9e, 0x12, 0x03, 0x6c, 0x1f, 0x3e, 0xe0, 0x98, 0x4e, 0x27, 0x0e, 0x1d, 0xd0, 0x89, 0x73, 0x90, - 0xb4, 0x0c, 0xc7, 0x35, 0x2a, 0x3c, 0x22, 0x22, 0x03, 0xc6, 0x14, 0x70, 0x50, 0x6f, 0x48, 0x45, - 0x0f, 0x14, 0x52, 0xd7, 0x61, 0xd4, 0x33, 0x49, 0x6b, 0xea, 0x56, 0x55, 0xc6, 0xe6, 0x6c, 0x90, - 0x25, 0x33, 0x05, 0x89, 0x53, 0x09, 0xa6, 0xa6, 0x8d, 0x8e, 0x6b, 0x65, 0x01, 0xc0, 0xb6, 0x0c, - 0x7b, 0x0b, 0x97, 0x57, 0xd9, 0xc4, 0x38, 0xe9, 0xef, 0xa5, 0x55, 0x52, 0xe9, 0xf1, 0x92, 0xcd, - 0xa5, 0x65, 0x53, 0x79, 0xa2, 0x1d, 0x6a, 0xc3, 0xbb, 0x44, 0xca, 0x32, 0x5f, 0x64, 0x3d, 0xd1, - 0x56, 0x82, 0x74, 0xd3, 0xa0, 0xb8, 0x47, 0x17, 0xf3, 0x27, 0x4b, 0x30, 0x23, 0x66, 0x02, 0x9f, - 0x4c, 0x15, 0x30, 0xfe, 0x60, 0x23, 0x4d, 0xff, 0xa5, 0x72, 0x0a, 0x3c, 0x81, 0xc6, 0xc2, 0x0a, - 0x58, 0x16, 0x4a, 0x49, 0xe1, 0x0a, 0xca, 0x26, 0x2f, 0x41, 0xba, 0xd3, 0x3d, 0xca, 0x04, 0xc4, - 0x1c, 0x57, 0x6f, 0xba, 0x2c, 0x0a, 0x63, 0x2a, 0xbf, 0x50, 0x32, 0x10, 0xc1, 0x24, 0xc3, 0xb2, - 0x5c, 0x4c, 0xa5, 0xaf, 0x93, 0x17, 0x61, 0xa4, 0xe3, 0xf6, 0x83, 0x02, 0xa7, 0x9f, 0x19, 0x82, - 0x89, 0x7e, 0x31, 0xd7, 0x37, 0xfc, 0x71, 0xf9, 0x60, 0x04, 0x6c, 0x1a, 0x4d, 0x8c, 0x3b, 0x62, - 0x10, 0x57, 0x18, 0x51, 0x31, 0x53, 0xdf, 0x34, 0x4c, 0x8c, 0xa6, 0xd0, 0xe9, 0xf4, 0xb9, 0xaf, - 0x0c, 0x14, 0xd5, 0x33, 0x4b, 0x04, 0x51, 0x39, 0x52, 0x79, 0x12, 0xa2, 0x22, 0xc5, 0x11, 0xc3, - 0x99, 0xc1, 0x18, 0x28, 0x16, 0x55, 0x86, 0x53, 0xbe, 0x04, 0x09, 0xfa, 0xcf, 0x7d, 0x3b, 0xc4, - 0x6c, 0x8e, 0x93, 0x80, 0xfc, 0xaa, 0x4c, 0x42, 0x9c, 0x85, 0x59, 0xc5, 0x90, 0xa5, 0xc1, 0xbb, - 0xa6, 0x89, 0xa9, 0x18, 0x5b, 0x7a, 0xcb, 0x74, 0xb5, 0xdb, 0xba, 0xd9, 0x32, 0x58, 0xc0, 0xe0, - 0xc4, 0x08, 0xe1, 0xb7, 0x48, 0xa6, 0x1c, 0x87, 0x24, 0x8f, 0xca, 0x1a, 0x62, 0xee, 0xb2, 0xec, - 0x13, 0x53, 0x79, 0xa0, 0x16, 0x49, 0x42, 0xb7, 0xbf, 0xe9, 0xe0, 0x5a, 0x10, 0x53, 0xcb, 0x6e, - 0x41, 0x02, 0x76, 0xfb, 0x8b, 0xdd, 0x89, 0xef, 0x58, 0xff, 0xc7, 0xeb, 0x8e, 0xc5, 0xe9, 0x3f, - 0x0f, 0x43, 0x94, 0xad, 0xb7, 0x51, 0x48, 0x6e, 0xdc, 0x58, 0x2b, 0x68, 0x0b, 0xab, 0xa5, 0xfc, - 0x52, 0x21, 0x13, 0x52, 0xd2, 0x00, 0x4c, 0x70, 0x65, 0x69, 0x75, 0x6e, 0x23, 0x13, 0xf6, 0xae, - 0x8b, 0x2b, 0x1b, 0x17, 0xce, 0x67, 0x22, 0x1e, 0xa0, 0xc4, 0x05, 0x51, 0xbf, 0xc2, 0x63, 0xe7, - 0x32, 0x31, 0x8c, 0x84, 0x14, 0x27, 0x28, 0x5e, 0x2f, 0x2c, 0xa0, 0xc6, 0x50, 0xa7, 0x04, 0x75, - 0x86, 0x95, 0x11, 0x48, 0x30, 0x49, 0x7e, 0x75, 0x75, 0x29, 0x13, 0xf7, 0x38, 0xd7, 0x37, 0xd4, - 0xe2, 0xca, 0x62, 0x26, 0xe1, 0x71, 0x2e, 0xaa, 0xab, 0xa5, 0xb5, 0x0c, 0x78, 0x0c, 0xcb, 0x85, - 0xf5, 0xf5, 0xb9, 0xc5, 0x42, 0x26, 0xe9, 0x69, 0xe4, 0x6f, 0x6c, 0x14, 0xd6, 0x33, 0xa9, 0x0e, - 0xb3, 0xf0, 0x16, 0x23, 0xde, 0x2d, 0x0a, 0x2b, 0xa5, 0xe5, 0x4c, 0x5a, 0x19, 0x83, 0x11, 0x7e, - 0x0b, 0x69, 0xc4, 0x68, 0x97, 0x08, 0x2d, 0xcd, 0xb4, 0x0d, 0xe1, 0x2c, 0x63, 0x1d, 0x02, 0xd4, - 0x50, 0xa6, 0xe7, 0x21, 0xc6, 0xa2, 0x0b, 0xa3, 0x38, 0xbd, 0x34, 0x97, 0x2f, 0x2c, 0x69, 0xab, - 0x6b, 0x1b, 0xc5, 0xd5, 0x95, 0xb9, 0x25, 0xf4, 0x9d, 0x27, 0x53, 0x0b, 0x3f, 0x56, 0x2a, 0xaa, - 0x85, 0x05, 0xf4, 0x9f, 0x4f, 0xb6, 0x56, 0x98, 0xdb, 0x40, 0x59, 0x64, 0xfa, 0x0c, 0x4c, 0xf4, - 0xcb, 0x33, 0xfd, 0x56, 0xc6, 0xf4, 0x0b, 0x21, 0x18, 0xef, 0x93, 0x32, 0xfb, 0xae, 0xa2, 0x6f, - 0x40, 0x8c, 0x47, 0x1a, 0x2f, 0x22, 0x5f, 0xee, 0x9b, 0x7b, 0x59, 0xdc, 0xf5, 0x14, 0x12, 0x86, - 0xf3, 0x17, 0xd2, 0xc8, 0x2e, 0x85, 0x94, 0x28, 0x7a, 0xc2, 0xe9, 0x5e, 0x08, 0xb2, 0xbb, 0x71, - 0x07, 0xac, 0xf7, 0x70, 0xc7, 0x7a, 0xbf, 0xdc, 0x6d, 0xc0, 0xc9, 0xdd, 0x9f, 0xa1, 0xc7, 0x8a, - 0x17, 0x43, 0x70, 0xb8, 0x7f, 0xbf, 0xd1, 0xd7, 0x86, 0x27, 0x61, 0xa8, 0x6e, 0xb8, 0xdb, 0xb6, - 0xac, 0xb9, 0x8f, 0xf4, 0xc9, 0xe4, 0x34, 0xdc, 0xed, 0x2b, 0x81, 0xf2, 0x97, 0x82, 0xc8, 0x6e, - 0x4d, 0x03, 0xb7, 0xa6, 0xc7, 0xd2, 0xef, 0x86, 0xe1, 0x81, 0xbe, 0xe4, 0x7d, 0x0d, 0x3d, 0x06, - 0x50, 0xb3, 0x1a, 0x2d, 0x97, 0xd7, 0x55, 0x9e, 0x66, 0x12, 0x4c, 0xc2, 0x96, 0x30, 0xa5, 0x90, - 0x96, 0xeb, 0x8d, 0x47, 0xd8, 0x38, 0x70, 0x11, 0x53, 0xb8, 0xd4, 0x36, 0x34, 0xca, 0x0c, 0x9d, - 0xda, 0xe5, 0x49, 0x7b, 0x4a, 0xd6, 0x59, 0xc8, 0x94, 0xcd, 0x9a, 0x61, 0xb9, 0x9a, 0xe3, 0x36, - 0x0d, 0xbd, 0x5e, 0xb3, 0xaa, 0x2c, 0x8f, 0xc6, 0x73, 0xb1, 0x2d, 0xdd, 0x74, 0x0c, 0x75, 0x94, - 0x0f, 0xaf, 0xcb, 0x51, 0x42, 0xb0, 0x62, 0xd1, 0xf4, 0x21, 0x86, 0x3a, 0x10, 0x7c, 0xd8, 0x43, - 0x4c, 0xff, 0xfd, 0x30, 0x24, 0x7d, 0xdd, 0x99, 0x72, 0x12, 0x52, 0x37, 0xf5, 0xdb, 0xba, 0x26, - 0x3b, 0x6e, 0xee, 0x89, 0x24, 0xc9, 0xd6, 0x44, 0xd7, 0x7d, 0x16, 0x26, 0x98, 0x0a, 0x3e, 0x23, - 0xde, 0xa8, 0x6c, 0xea, 0x8e, 0xc3, 0x9c, 0x16, 0x67, 0xaa, 0x0a, 0x8d, 0xad, 0xd2, 0xd0, 0xbc, - 0x1c, 0x51, 0x1e, 0x87, 0x71, 0x86, 0xa8, 0x63, 0xe2, 0xad, 0x35, 0x4c, 0x43, 0xa3, 0x3d, 0x80, - 0xc3, 0xf2, 0xa9, 0x67, 0xd9, 0x18, 0x69, 0x2c, 0x0b, 0x05, 0xb2, 0xc8, 0x51, 0x16, 0xe1, 0x18, - 0x83, 0x55, 0x0d, 0xcb, 0x68, 0xea, 0xae, 0xa1, 0x19, 0x3f, 0xd9, 0x42, 0x5d, 0x4d, 0xb7, 0x2a, - 0xda, 0xb6, 0xee, 0x6c, 0x67, 0x27, 0xfc, 0x04, 0x47, 0x49, 0x77, 0x51, 0xa8, 0x16, 0x98, 0xe6, - 0x9c, 0x55, 0xf9, 0x26, 0xea, 0x29, 0x39, 0x38, 0xcc, 0x88, 0xd0, 0x29, 0xf8, 0xcc, 0x5a, 0x79, - 0xdb, 0x28, 0xdf, 0xd2, 0x5a, 0xee, 0xd6, 0xa5, 0xec, 0x97, 0xfc, 0x0c, 0xcc, 0xc8, 0x75, 0xa6, - 0x33, 0x4f, 0x2a, 0x25, 0xd4, 0x50, 0xd6, 0x21, 0x45, 0xf3, 0x51, 0xaf, 0x7d, 0x1b, 0xcd, 0xb6, - 0x9b, 0xac, 0x46, 0xa4, 0xfb, 0x2c, 0x6e, 0x9f, 0x13, 0x67, 0x56, 0x05, 0x60, 0x19, 0xfb, 0xd3, - 0x5c, 0x6c, 0x7d, 0xad, 0x50, 0x58, 0x50, 0x93, 0x92, 0xe5, 0x8a, 0xdd, 0xa4, 0x98, 0xaa, 0xda, - 0x9e, 0x8f, 0x93, 0x3c, 0xa6, 0xaa, 0xb6, 0xf4, 0x30, 0xfa, 0xab, 0x5c, 0xe6, 0x8f, 0x8d, 0x7b, - 0x17, 0xd1, 0xac, 0x3b, 0xd9, 0x4c, 0x87, 0xbf, 0xca, 0xe5, 0x45, 0xae, 0x20, 0xc2, 0xdc, 0xc1, - 0x25, 0xf1, 0x40, 0xdb, 0x5f, 0x7e, 0xe0, 0x58, 0xcf, 0x53, 0x76, 0x43, 0xf1, 0x8e, 0x8d, 0x9d, - 0x5e, 0xa0, 0xd2, 0x71, 0xc7, 0xc6, 0x4e, 0x37, 0xec, 0x61, 0xb6, 0x01, 0x6b, 0x1a, 0x65, 0x74, - 0x79, 0x25, 0x7b, 0xc4, 0xaf, 0xed, 0x1b, 0x50, 0x66, 0x31, 0x90, 0xcb, 0x9a, 0x61, 0xe9, 0x9b, - 0x38, 0xf7, 0x7a, 0x13, 0xbf, 0x38, 0xd9, 0xe3, 0x7e, 0xe5, 0x74, 0xb9, 0x5c, 0x60, 0xa3, 0x73, - 0x6c, 0x50, 0x39, 0x03, 0x63, 0xf6, 0xe6, 0xcd, 0x32, 0x0f, 0x2e, 0x0d, 0x79, 0xb6, 0x6a, 0x77, - 0xb3, 0x0f, 0x31, 0x37, 0x8d, 0xd2, 0x00, 0x0b, 0xad, 0x35, 0x26, 0x56, 0xbe, 0x8c, 0xe4, 0xce, - 0xb6, 0xde, 0x6c, 0xb0, 0x22, 0xed, 0xa0, 0x53, 0x8d, 0xec, 0xc3, 0x5c, 0x95, 0xcb, 0x57, 0xa4, - 0x58, 0x29, 0xc0, 0x71, 0x7a, 0x78, 0x4b, 0xb7, 0x6c, 0xad, 0xe5, 0x18, 0x5a, 0xdb, 0x44, 0x6f, - 0x2e, 0x1e, 0x21, 0xb3, 0xd4, 0x07, 0xa5, 0x5a, 0xc9, 0xc1, 0x64, 0x26, 0x95, 0xe4, 0xf4, 0x5c, - 0x87, 0x89, 0x96, 0x55, 0xb3, 0x30, 0xc4, 0x71, 0x84, 0xc0, 0x7c, 0xc1, 0x66, 0xff, 0x79, 0x78, - 0x97, 0xa6, 0xbb, 0xe4, 0xd7, 0xe6, 0x41, 0xa2, 0x8e, 0xb7, 0x7a, 0x85, 0xd3, 0x39, 0x48, 0xf9, - 0x63, 0x47, 0x49, 0x00, 0x8f, 0x1e, 0xac, 0x6e, 0x58, 0x51, 0xe7, 0x57, 0x17, 0xa8, 0x16, 0x3e, - 0x55, 0xc0, 0xc2, 0x86, 0x35, 0x79, 0xa9, 0xb8, 0x51, 0xd0, 0xd4, 0xd2, 0xca, 0x46, 0x71, 0xb9, - 0x90, 0x89, 0x9c, 0x49, 0xc4, 0x3f, 0x1c, 0xce, 0x3c, 0x8d, 0x7f, 0xe1, 0xe9, 0x37, 0xc2, 0x90, - 0xee, 0xec, 0x83, 0x95, 0xaf, 0xc3, 0x11, 0xb9, 0x69, 0x75, 0x0c, 0x57, 0xbb, 0x53, 0x6b, 0xb2, - 0x70, 0xae, 0xeb, 0xbc, 0x93, 0xf4, 0x66, 0x62, 0x42, 0x68, 0xe1, 0xf6, 0xfe, 0x1a, 0xea, 0x5c, - 0x61, 0x2a, 0xca, 0x12, 0x1c, 0x47, 0x97, 0x61, 0xaf, 0x69, 0x55, 0xf4, 0x66, 0x45, 0x6b, 0x1f, - 0x17, 0x68, 0x7a, 0x19, 0xe3, 0xc0, 0xb1, 0x79, 0x25, 0xf1, 0x58, 0x1e, 0xb4, 0xec, 0x75, 0xa1, - 0xdc, 0x4e, 0xb1, 0x73, 0x42, 0xb5, 0x2b, 0x6a, 0x22, 0xbb, 0x45, 0x0d, 0xf6, 0x5e, 0x75, 0xbd, - 0x81, 0x61, 0xe3, 0x36, 0x77, 0x58, 0xf7, 0x16, 0x57, 0xe3, 0x28, 0x28, 0xd0, 0xf5, 0xe7, 0x37, - 0x07, 0x7e, 0x3f, 0xfe, 0x63, 0x04, 0x52, 0xfe, 0x0e, 0x8e, 0x1a, 0xe2, 0x32, 0x4b, 0xf3, 0x21, - 0x96, 0x05, 0x4e, 0xed, 0xd9, 0xef, 0xcd, 0xcc, 0x53, 0xfe, 0xcf, 0x0d, 0xf1, 0xbe, 0x4a, 0xe5, - 0x48, 0xaa, 0xbd, 0x14, 0x6b, 0x06, 0xef, 0xd6, 0xe3, 0xaa, 0xb8, 0xc2, 0x64, 0x37, 0x74, 0xd3, - 0x61, 0xdc, 0x43, 0x8c, 0xfb, 0xa1, 0xbd, 0xb9, 0xaf, 0xae, 0x33, 0xf2, 0xc4, 0xd5, 0x75, 0x6d, - 0x65, 0x55, 0x5d, 0x9e, 0x5b, 0x52, 0x05, 0x5c, 0x39, 0x0a, 0x51, 0x53, 0xff, 0xf6, 0x4e, 0x67, - 0xa5, 0x60, 0xa2, 0x41, 0x1d, 0x8f, 0x0c, 0x74, 0xe4, 0xd1, 0x99, 0x9f, 0x99, 0xe8, 0x73, 0x0c, - 0xfd, 0x59, 0x88, 0x31, 0x7f, 0x29, 0x00, 0xc2, 0x63, 0x99, 0x43, 0x4a, 0x1c, 0xa2, 0xf3, 0xab, - 0x2a, 0x85, 0x3f, 0xc6, 0x3b, 0x97, 0x6a, 0x6b, 0xc5, 0xc2, 0x3c, 0xae, 0x80, 0xe9, 0xc7, 0x61, - 0x88, 0x3b, 0x81, 0x96, 0x86, 0xe7, 0x06, 0x04, 0xf1, 0x4b, 0xc1, 0x11, 0x92, 0xa3, 0xa5, 0xe5, - 0x7c, 0x41, 0xcd, 0x84, 0xfd, 0xd3, 0xfb, 0x97, 0x21, 0x48, 0xfa, 0x1a, 0x2a, 0x2a, 0xe5, 0xba, - 0x69, 0xda, 0x77, 0x34, 0xdd, 0xac, 0x61, 0x86, 0xe2, 0xf3, 0x03, 0x4c, 0x34, 0x47, 0x92, 0x41, - 0xfd, 0xf7, 0x7f, 0x12, 0x9b, 0x3f, 0x0c, 0x41, 0xa6, 0xbb, 0x19, 0xeb, 0x32, 0x30, 0xf4, 0x85, - 0x1a, 0xf8, 0x5c, 0x08, 0xd2, 0x9d, 0x1d, 0x58, 0x97, 0x79, 0x27, 0xbf, 0x50, 0xf3, 0xbe, 0x1f, - 0x82, 0x91, 0x8e, 0xbe, 0xeb, 0xff, 0x95, 0x75, 0xcf, 0x46, 0x60, 0xbc, 0x0f, 0x0e, 0x13, 0x10, - 0x6f, 0x50, 0x79, 0xcf, 0xfc, 0xb5, 0x41, 0xee, 0x35, 0x43, 0xf5, 0x6f, 0x4d, 0x6f, 0xba, 0xa2, - 0x9f, 0xc5, 0x7a, 0x59, 0xab, 0x60, 0x52, 0xad, 0x6d, 0xd5, 0xb0, 0x7d, 0xe3, 0x3b, 0x16, 0xde, - 0xb5, 0x8e, 0xb6, 0xe5, 0x7c, 0x7b, 0xfc, 0x55, 0x50, 0x1a, 0xb6, 0x53, 0x73, 0x6b, 0xb7, 0xe9, - 0x78, 0x4e, 0x6e, 0xa4, 0xa9, 0x8b, 0x8d, 0xaa, 0x19, 0x39, 0x52, 0xb4, 0x5c, 0x4f, 0xdb, 0x32, - 0xaa, 0x7a, 0x97, 0x36, 0xa5, 0xa1, 0x88, 0x9a, 0x91, 0x23, 0x9e, 0x36, 0x36, 0x9a, 0x15, 0xbb, - 0x45, 0x0d, 0x01, 0xd7, 0xa3, 0xac, 0x17, 0x52, 0x93, 0x5c, 0xe6, 0xa9, 0x88, 0x8e, 0xad, 0xbd, - 0x83, 0x4f, 0xa9, 0x49, 0x2e, 0xe3, 0x2a, 0x8f, 0xc2, 0xa8, 0x5e, 0xad, 0x36, 0x89, 0x5c, 0x12, - 0xf1, 0x36, 0x34, 0xed, 0x89, 0x99, 0xe2, 0xe4, 0x55, 0x88, 0x4b, 0x3f, 0x50, 0x61, 0x21, 0x4f, - 0x60, 0xcd, 0x67, 0xe7, 0x28, 0x61, 0xda, 0xd4, 0x5b, 0x72, 0x10, 0x6f, 0x5a, 0x73, 0xb4, 0xf6, - 0x81, 0x5e, 0x18, 0xc7, 0xe3, 0x6a, 0xb2, 0xe6, 0x78, 0x27, 0x38, 0xd3, 0x2f, 0x62, 0x79, 0xed, - 0x3c, 0x90, 0x54, 0x16, 0x20, 0x6e, 0xda, 0x18, 0x1f, 0x84, 0xe0, 0xa7, 0xe1, 0xa7, 0x03, 0xce, - 0x30, 0x67, 0x96, 0x84, 0xbe, 0xea, 0x21, 0x27, 0xff, 0x36, 0x04, 0x71, 0x29, 0xc6, 0x42, 0x11, - 0x6d, 0xe8, 0xee, 0x36, 0xa3, 0x8b, 0xe5, 0xc3, 0x99, 0x90, 0xca, 0xae, 0x49, 0x8e, 0xdd, 0x8c, - 0xc5, 0x42, 0x40, 0xc8, 0xe9, 0x9a, 0xe6, 0xd5, 0x34, 0xf4, 0x0a, 0x6b, 0x70, 0xed, 0x7a, 0x1d, - 0x67, 0xd2, 0x91, 0xf3, 0x2a, 0xe4, 0xf3, 0x42, 0x4c, 0xe7, 0xe2, 0x6e, 0x53, 0xaf, 0x99, 0x1d, - 0xba, 0x51, 0xa6, 0x9b, 0x91, 0x03, 0x9e, 0x72, 0x0e, 0x8e, 0x4a, 0xde, 0x8a, 0xe1, 0xea, 0xd8, - 0x3c, 0x57, 0xda, 0xa0, 0x21, 0x76, 0xda, 0x75, 0x44, 0x28, 0x2c, 0x88, 0x71, 0x89, 0xcd, 0x5f, - 0xc7, 0x46, 0xd6, 0xae, 0x77, 0x7b, 0x22, 0x9f, 0xe9, 0xda, 0x77, 0x39, 0xdf, 0x0c, 0x3d, 0x05, - 0xed, 0xa6, 0xe2, 0x85, 0x70, 0x64, 0x71, 0x2d, 0xff, 0x72, 0x78, 0x72, 0x91, 0xe3, 0xd6, 0xa4, - 0x07, 0x55, 0x63, 0xcb, 0x34, 0xca, 0xe4, 0x1d, 0x78, 0xfe, 0x14, 0x7c, 0xad, 0x5a, 0x73, 0xb7, - 0x5b, 0x9b, 0x33, 0x78, 0x87, 0xd9, 0xaa, 0x5d, 0xb5, 0xdb, 0xaf, 0x33, 0xe8, 0x8a, 0x5d, 0xb0, - 0x6f, 0xe2, 0x95, 0x46, 0xc2, 0x93, 0x4e, 0x06, 0xbe, 0xff, 0xc8, 0xad, 0xc0, 0xb8, 0x50, 0xd6, - 0xd8, 0x99, 0x2a, 0x6f, 0x41, 0x95, 0x3d, 0x37, 0xe4, 0xd9, 0x57, 0x3f, 0x60, 0x25, 0x41, 0x1d, - 0x13, 0x50, 0x1a, 0xe3, 0x4d, 0x6a, 0x4e, 0x85, 0x07, 0x3a, 0xf8, 0x78, 0x0c, 0xe3, 0x96, 0x7b, - 0x6f, 0xc6, 0x37, 0x04, 0xe3, 0xb8, 0x8f, 0x71, 0x5d, 0x40, 0x73, 0xf3, 0x30, 0xb2, 0x1f, 0xae, - 0xbf, 0x16, 0x5c, 0x29, 0xc3, 0x4f, 0xb2, 0x08, 0xa3, 0x8c, 0xa4, 0xdc, 0x72, 0x5c, 0xbb, 0xce, - 0x12, 0xc4, 0xde, 0x34, 0x7f, 0xf3, 0x01, 0x0f, 0xaa, 0x34, 0xc1, 0xe6, 0x3d, 0x54, 0xee, 0x5b, - 0x30, 0x41, 0x12, 0xb6, 0x06, 0xfd, 0x6c, 0xc1, 0x47, 0x08, 0xd9, 0xbf, 0xbb, 0xc7, 0x63, 0x6f, - 0xdc, 0x23, 0xf0, 0xf1, 0xfa, 0x66, 0xa2, 0x6a, 0xb8, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x9a, 0xca, - 0x9e, 0xef, 0x18, 0xb2, 0xdf, 0xfb, 0xa8, 0x73, 0x26, 0x16, 0x39, 0x72, 0xce, 0x34, 0x73, 0x25, - 0x38, 0xd2, 0x67, 0x66, 0x07, 0xe0, 0x7c, 0x56, 0x70, 0x4e, 0xf4, 0xcc, 0x2e, 0xd1, 0xae, 0x81, - 0x94, 0x7b, 0xf3, 0x31, 0x00, 0xe7, 0xf7, 0x05, 0xa7, 0x22, 0xb0, 0x72, 0x5a, 0x88, 0xf1, 0x2a, - 0x8c, 0xe1, 0x4e, 0x7d, 0xd3, 0x76, 0xc4, 0xbe, 0x77, 0x00, 0xba, 0xe7, 0x04, 0xdd, 0xa8, 0x00, - 0xb2, 0x5d, 0x30, 0x71, 0x3d, 0x01, 0xf1, 0x2d, 0xdc, 0x00, 0x0d, 0x40, 0xf1, 0x03, 0x41, 0x31, - 0x4c, 0xfa, 0x04, 0x9d, 0x83, 0x54, 0xd5, 0x16, 0x69, 0x38, 0x18, 0xfe, 0x43, 0x01, 0x4f, 0x4a, - 0x8c, 0xa0, 0x68, 0xd8, 0x8d, 0x96, 0x49, 0x39, 0x3a, 0x98, 0xe2, 0xb7, 0x24, 0x85, 0xc4, 0x08, - 0x8a, 0x7d, 0xb8, 0xf5, 0xb7, 0x25, 0x85, 0xe3, 0xf3, 0xe7, 0x37, 0xe8, 0xac, 0xd7, 0xdc, 0xb1, - 0xad, 0x41, 0x8c, 0x78, 0x5e, 0x30, 0x80, 0x80, 0x10, 0xc1, 0x65, 0x48, 0x0c, 0x3a, 0x11, 0xbf, - 0x23, 0xe0, 0x71, 0x43, 0xce, 0x00, 0xae, 0x33, 0x99, 0x64, 0xe8, 0xdd, 0x4a, 0x30, 0xc5, 0xef, - 0x0a, 0x8a, 0xb4, 0x0f, 0x26, 0x1e, 0xc3, 0x35, 0x1c, 0x17, 0xb7, 0xea, 0x03, 0x90, 0xbc, 0x28, - 0x1f, 0x43, 0x40, 0x84, 0x2b, 0x37, 0x0d, 0xab, 0xbc, 0x3d, 0x18, 0xc3, 0x4b, 0xd2, 0x95, 0x12, - 0x43, 0x14, 0x98, 0x79, 0xea, 0x7a, 0x13, 0x37, 0xd7, 0xe6, 0x40, 0xd3, 0xf1, 0x7b, 0x82, 0x23, - 0xe5, 0x81, 0x84, 0x47, 0x5a, 0xd6, 0x7e, 0x68, 0x5e, 0x96, 0x1e, 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, - 0x9d, 0x29, 0x75, 0x12, 0xfb, 0x61, 0xfb, 0x7d, 0xb9, 0xf4, 0x38, 0x76, 0xd9, 0xcf, 0x88, 0x33, - 0xed, 0xe0, 0x16, 0x7c, 0x10, 0x9a, 0x3f, 0x90, 0x33, 0xcd, 0x00, 0x04, 0xbe, 0x01, 0x47, 0xfb, - 0xa6, 0xfa, 0x01, 0xc8, 0xfe, 0x50, 0x90, 0x1d, 0xee, 0x93, 0xee, 0x45, 0x4a, 0xd8, 0x2f, 0xe5, - 0x1f, 0xc9, 0x94, 0x60, 0x74, 0x71, 0xad, 0x51, 0x1b, 0xeb, 0xe8, 0x5b, 0xfb, 0xf3, 0xda, 0x1f, - 0x4b, 0xaf, 0x71, 0x6c, 0x87, 0xd7, 0x36, 0xe0, 0xb0, 0x60, 0xdc, 0xdf, 0xbc, 0xbe, 0x22, 0x13, - 0x2b, 0x47, 0x97, 0x3a, 0x67, 0xf7, 0xc7, 0x61, 0xd2, 0x73, 0xa7, 0xec, 0xc0, 0x1c, 0x8d, 0x0e, - 0x06, 0x82, 0x99, 0x5f, 0x15, 0xcc, 0x32, 0xe3, 0x7b, 0x2d, 0x9c, 0xb3, 0xac, 0x37, 0x88, 0xfc, - 0x3a, 0x64, 0x25, 0x79, 0xcb, 0xc2, 0x06, 0xdf, 0xae, 0x5a, 0x38, 0x8d, 0x95, 0x01, 0xa8, 0xff, - 0xa4, 0x6b, 0xaa, 0x4a, 0x3e, 0x38, 0x31, 0x17, 0x21, 0xe3, 0xf5, 0x1b, 0x5a, 0xad, 0xde, 0xb0, - 0xb1, 0xb5, 0xdc, 0x9b, 0xf1, 0x4f, 0xe5, 0x4c, 0x79, 0xb8, 0x22, 0x83, 0xe5, 0x0a, 0x90, 0x66, - 0x97, 0x83, 0x86, 0xe4, 0x9f, 0x09, 0xa2, 0x91, 0x36, 0x4a, 0x24, 0x0e, 0xec, 0x94, 0xb0, 0xe7, - 0x1d, 0x24, 0xff, 0xbd, 0x26, 0x13, 0x87, 0x80, 0xf0, 0xe8, 0x1b, 0xed, 0xaa, 0xc4, 0x4a, 0xd0, - 0xeb, 0xd7, 0xec, 0x4f, 0xdd, 0x17, 0x6b, 0xb6, 0xb3, 0x10, 0xe7, 0x96, 0xc8, 0x3d, 0x9d, 0xe5, - 0x32, 0x98, 0xec, 0xde, 0x7d, 0xcf, 0x43, 0x1d, 0xd5, 0x32, 0x77, 0x05, 0x46, 0x3a, 0x4a, 0x65, - 0x30, 0xd5, 0xcf, 0x08, 0xaa, 0x94, 0xbf, 0x52, 0xe6, 0x1e, 0x87, 0x28, 0x95, 0xbd, 0x60, 0xf8, - 0xcf, 0x0a, 0x38, 0x53, 0xcf, 0xfd, 0x28, 0xc4, 0x65, 0xb9, 0x0b, 0x86, 0xfe, 0x9c, 0x80, 0x7a, - 0x10, 0x82, 0xcb, 0x52, 0x17, 0x0c, 0xff, 0x8e, 0x84, 0x4b, 0x08, 0xc1, 0x07, 0x77, 0xe1, 0xeb, - 0xbf, 0x10, 0x15, 0xe9, 0x4a, 0xfa, 0x8e, 0xde, 0xf9, 0xf0, 0x1a, 0x17, 0x8c, 0xfe, 0xae, 0xb8, - 0xb9, 0x44, 0xe4, 0x2e, 0x42, 0x6c, 0x40, 0x87, 0xff, 0xa2, 0x80, 0x72, 0x7d, 0xac, 0x20, 0x49, - 0x5f, 0x5d, 0x0b, 0x86, 0xff, 0x92, 0x80, 0xfb, 0x51, 0x64, 0xba, 0xa8, 0x6b, 0xc1, 0x04, 0xbf, - 0x2c, 0x4d, 0x17, 0x08, 0x72, 0x9b, 0x2c, 0x69, 0xc1, 0xe8, 0x5f, 0x91, 0x5e, 0x97, 0x10, 0x5c, - 0x4d, 0x09, 0x2f, 0x4d, 0x05, 0xe3, 0x7f, 0x55, 0xe0, 0xdb, 0x18, 0xf2, 0x80, 0x2f, 0x4d, 0x06, - 0x53, 0xfc, 0x9a, 0xf4, 0x80, 0x0f, 0x45, 0xcb, 0xa8, 0xbb, 0xf4, 0x05, 0x33, 0xfd, 0xba, 0x5c, - 0x46, 0x5d, 0x95, 0x8f, 0x66, 0x93, 0x65, 0x8b, 0x60, 0x8a, 0xdf, 0x90, 0xb3, 0xc9, 0xf4, 0xc9, - 0x8c, 0xee, 0x5a, 0x12, 0xcc, 0xf1, 0x9b, 0xd2, 0x8c, 0xae, 0x52, 0x82, 0x95, 0x49, 0xe9, 0xad, - 0x23, 0xc1, 0x7c, 0xcf, 0x08, 0xbe, 0xb1, 0x9e, 0x32, 0x92, 0xbb, 0x06, 0x87, 0xfb, 0xd7, 0x90, - 0x60, 0xd6, 0xef, 0xdd, 0xef, 0xea, 0xfa, 0xfd, 0x25, 0x04, 0x4b, 0xde, 0x44, 0xbf, 0xfa, 0x11, - 0x4c, 0xfb, 0xec, 0xfd, 0xce, 0x8d, 0x9d, 0xbf, 0x7c, 0x60, 0x87, 0x06, 0xed, 0xd4, 0x1d, 0xcc, - 0xf5, 0x9c, 0xe0, 0xf2, 0x81, 0x68, 0x69, 0x88, 0xcc, 0x1d, 0x8c, 0xff, 0x81, 0x5c, 0x1a, 0x02, - 0x81, 0xe0, 0xb8, 0xd5, 0x32, 0x4d, 0x0a, 0x0e, 0x65, 0xef, 0x9f, 0x34, 0x64, 0xff, 0xe5, 0x53, - 0xb1, 0x30, 0x24, 0x00, 0x73, 0x68, 0xcc, 0xa8, 0x6f, 0xa2, 0x0f, 0x02, 0x90, 0xff, 0xfa, 0xa9, - 0x4c, 0x08, 0xa4, 0x8d, 0xeb, 0x09, 0xf8, 0xa6, 0x91, 0x9d, 0x61, 0x07, 0x60, 0xff, 0xed, 0x53, - 0xf1, 0x9a, 0xb5, 0x0d, 0x69, 0x13, 0xf0, 0x97, 0xb6, 0x7b, 0x13, 0x7c, 0xd4, 0x49, 0xc0, 0x36, - 0x9a, 0x4f, 0xc0, 0x30, 0xfd, 0xb2, 0xc3, 0xd5, 0xab, 0x41, 0xe8, 0x7f, 0x17, 0x68, 0xa9, 0x4f, - 0x0e, 0xab, 0xdb, 0x4d, 0x03, 0xbf, 0x3a, 0x41, 0xd8, 0xff, 0x10, 0x58, 0x0f, 0x40, 0xe0, 0xb2, - 0xee, 0xb8, 0x83, 0x3c, 0xf7, 0x7f, 0x4a, 0xb0, 0x04, 0x90, 0xd1, 0xf4, 0xfd, 0x96, 0xb1, 0x13, - 0x84, 0xfd, 0x58, 0x1a, 0x2d, 0xf4, 0x31, 0x01, 0x26, 0xe8, 0x2b, 0xff, 0xe9, 0x41, 0x00, 0xf8, - 0xbf, 0x04, 0xb8, 0x8d, 0xc8, 0x9f, 0xec, 0x7f, 0xb4, 0x03, 0x8b, 0xf6, 0xa2, 0xcd, 0x0f, 0x75, - 0xe0, 0xed, 0x34, 0x4c, 0xa2, 0x0e, 0xd6, 0xd7, 0xd9, 0x4d, 0xdb, 0xdd, 0x9e, 0x95, 0x56, 0x8b, - 0x03, 0x19, 0xef, 0x29, 0x26, 0xf7, 0x77, 0x92, 0x33, 0xfd, 0xcc, 0x08, 0xc4, 0xe7, 0x11, 0xab, - 0xdf, 0xd1, 0xe9, 0x9d, 0x46, 0xbc, 0x68, 0xb9, 0x8f, 0x9d, 0x5b, 0x73, 0x9b, 0xec, 0xc0, 0x3b, - 0x92, 0x4f, 0xfc, 0xcf, 0xdb, 0xc7, 0x63, 0x35, 0x92, 0xa9, 0xf1, 0x9a, 0x18, 0x52, 0x4e, 0x41, - 0x8c, 0xa9, 0xb1, 0x53, 0xfd, 0x48, 0x7e, 0xe4, 0xcd, 0xb7, 0x8f, 0x1f, 0x6a, 0xeb, 0xf1, 0x7f, - 0xca, 0x0d, 0x48, 0x2e, 0xef, 0x94, 0xf0, 0xfb, 0x85, 0xf3, 0x44, 0x47, 0xcf, 0x1c, 0xcd, 0x5f, - 0x44, 0xb5, 0xc7, 0x76, 0x35, 0x90, 0xca, 0x49, 0xfb, 0xc1, 0x24, 0x9a, 0xfd, 0x80, 0x29, 0x59, - 0x6f, 0x73, 0x29, 0xd7, 0x20, 0x2e, 0x07, 0xf9, 0x01, 0x6a, 0xfe, 0xb2, 0x30, 0xe1, 0x40, 0xdc, - 0x71, 0xc9, 0xad, 0xfc, 0x04, 0xa4, 0x96, 0x77, 0xae, 0x98, 0xb6, 0x2e, 0x7c, 0x40, 0xe7, 0xad, - 0xe1, 0xfc, 0x25, 0x24, 0x3e, 0x3f, 0x30, 0xb1, 0x80, 0x33, 0xe6, 0x54, 0xdd, 0xc7, 0xa6, 0x3c, - 0x05, 0x09, 0x6f, 0x98, 0x1d, 0xd1, 0x86, 0xf3, 0x5f, 0x17, 0x76, 0x1f, 0x8c, 0x3e, 0xe1, 0xd1, - 0xfb, 0x2c, 0xe7, 0xee, 0xa6, 0xe3, 0xdd, 0xd0, 0x41, 0x2c, 0x17, 0x3e, 0x91, 0x96, 0x73, 0x87, - 0xb7, 0x2d, 0x47, 0x8f, 0xc7, 0x19, 0xf5, 0x01, 0x2d, 0x17, 0xf4, 0x09, 0x8f, 0x5e, 0xb9, 0x0a, - 0xc3, 0xcb, 0x3b, 0xf9, 0x1d, 0xd4, 0x66, 0x3f, 0x07, 0x48, 0xe5, 0xcf, 0x22, 0xeb, 0x57, 0x07, - 0x64, 0x65, 0x38, 0x75, 0xb8, 0xce, 0x09, 0x94, 0x13, 0x90, 0x5c, 0xa1, 0x97, 0xac, 0x26, 0xe7, - 0x03, 0x7e, 0xc6, 0x6d, 0xb5, 0x45, 0x4a, 0x89, 0x9e, 0x84, 0xcf, 0xb6, 0xc3, 0x7e, 0x92, 0xfc, - 0x19, 0x62, 0x32, 0x21, 0xe3, 0xc6, 0x51, 0x6a, 0x10, 0x5b, 0xde, 0xc1, 0x22, 0x96, 0x4d, 0xb1, - 0xf3, 0xea, 0x63, 0x33, 0x1e, 0x42, 0xae, 0xad, 0x19, 0x36, 0xce, 0xde, 0xb7, 0xe6, 0xcf, 0xe3, - 0x1d, 0xcf, 0x0e, 0x7c, 0x47, 0x84, 0xb1, 0xdb, 0xc5, 0xea, 0xf4, 0x55, 0x79, 0x2d, 0x44, 0x0b, - 0x8b, 0x1f, 0xea, 0xd1, 0x1d, 0x47, 0xd8, 0x1d, 0x4f, 0xf5, 0xbd, 0xa3, 0xa7, 0xc5, 0xef, 0x6b, - 0xfd, 0xf4, 0x3b, 0xfb, 0x78, 0x52, 0xbe, 0x23, 0xa0, 0x5b, 0xff, 0xfc, 0x3b, 0x07, 0x5e, 0xb4, - 0x9e, 0x05, 0xca, 0x3d, 0x7a, 0x47, 0xb4, 0xb3, 0x22, 0x4a, 0x1b, 0x59, 0x9e, 0x16, 0x3f, 0x5c, - 0xed, 0x67, 0xb9, 0x4f, 0x8f, 0xdb, 0x7e, 0x01, 0x6d, 0x3f, 0x37, 0xb0, 0x11, 0x2c, 0x3d, 0x31, - 0x1b, 0x46, 0xea, 0x7e, 0x2e, 0xe5, 0x3b, 0xcc, 0x8a, 0x02, 0x95, 0xc9, 0x8a, 0x51, 0x21, 0x2b, - 0x46, 0xf7, 0xb0, 0xc2, 0xa7, 0xc7, 0xad, 0xc8, 0x51, 0xd4, 0x1f, 0xdc, 0x12, 0x1f, 0xdf, 0xe4, - 0x25, 0x80, 0x76, 0x48, 0xd0, 0x8f, 0x4e, 0xb1, 0x8e, 0x88, 0x5f, 0x08, 0xd1, 0x57, 0xfa, 0x71, - 0xaa, 0xfc, 0x05, 0x1c, 0xbd, 0x22, 0xe2, 0x17, 0xb9, 0xf0, 0xa5, 0xd0, 0xe4, 0x93, 0x90, 0xe9, - 0x9e, 0xda, 0x7d, 0xe1, 0x55, 0x50, 0x7a, 0x1d, 0xec, 0x67, 0x88, 0x71, 0x86, 0x47, 0xfc, 0x0c, - 0xc9, 0x73, 0x99, 0xb6, 0x8b, 0xae, 0xd5, 0x4c, 0xac, 0xd6, 0x3d, 0x9c, 0xdd, 0xee, 0xfa, 0x6c, - 0x9c, 0xd3, 0x53, 0x30, 0xc4, 0x85, 0xf4, 0x2c, 0x45, 0x96, 0xed, 0x59, 0x51, 0x62, 0x15, 0xe6, - 0xc2, 0xf9, 0xfc, 0xd2, 0x9b, 0xef, 0x4d, 0x1d, 0x7a, 0x0b, 0x3f, 0xff, 0x80, 0x9f, 0x77, 0xdf, - 0x9b, 0x0a, 0x7d, 0x88, 0x9f, 0x8f, 0xf1, 0xf3, 0x09, 0x7e, 0x9e, 0x7e, 0x7f, 0x2a, 0xf4, 0x12, - 0x7e, 0x5e, 0xc1, 0xcf, 0x5f, 0xe0, 0xe7, 0x75, 0xfc, 0xbc, 0x89, 0x9f, 0xb7, 0xf0, 0xf3, 0x2e, - 0x7e, 0x3e, 0x7c, 0x7f, 0xea, 0xd0, 0xc7, 0xf8, 0xff, 0x13, 0xfc, 0xff, 0xf4, 0x3f, 0x4d, 0x1d, - 0xfa, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x74, 0xfe, 0x5d, 0xcb, 0x31, 0x00, 0x00, + // 4124 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0xfd, + 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, + 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, + 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, + 0xeb, 0x34, 0x69, 0x9b, 0xa4, 0x6d, 0xd2, 0x4c, 0x9f, 0xf2, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, + 0x0f, 0x1d, 0xd9, 0x62, 0x3c, 0x53, 0xa7, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xf2, 0x4b, 0xe7, + 0xfe, 0x2d, 0x16, 0x3f, 0xe4, 0x82, 0xca, 0x38, 0x79, 0x22, 0xf6, 0xdc, 0xf3, 0x7d, 0x7b, 0xee, + 0xb9, 0xe7, 0x9e, 0x73, 0xf6, 0xee, 0x12, 0x7e, 0x78, 0x0e, 0x16, 0x1a, 0xb6, 0xdd, 0x30, 0xf1, + 0xa9, 0x96, 0x63, 0x7b, 0xf6, 0x4e, 0x7b, 0xf7, 0x54, 0x1d, 0xbb, 0xba, 0x63, 0xb4, 0x3c, 0xdb, + 0x59, 0xa6, 0x32, 0x34, 0xc5, 0x34, 0x96, 0x85, 0xc6, 0x62, 0x05, 0xa6, 0x2f, 0x19, 0x26, 0x5e, + 0xf5, 0x15, 0x37, 0xb1, 0x87, 0x2e, 0x40, 0x6c, 0xd7, 0x30, 0x71, 0x56, 0x5a, 0x88, 0x2e, 0xa5, + 0x4e, 0x3f, 0xb2, 0xdc, 0x07, 0x5a, 0xee, 0x45, 0xd4, 0x88, 0x58, 0xa1, 0x88, 0xc5, 0xb7, 0x63, + 0x30, 0x33, 0x64, 0x14, 0x21, 0x88, 0x59, 0x5a, 0x93, 0x30, 0x4a, 0x4b, 0x49, 0x85, 0xfe, 0x46, + 0x59, 0x98, 0x68, 0x69, 0xfa, 0x0d, 0xad, 0x81, 0xb3, 0x11, 0x2a, 0x16, 0x97, 0x28, 0x07, 0x50, + 0xc7, 0x2d, 0x6c, 0xd5, 0xb1, 0xa5, 0x77, 0xb2, 0xd1, 0x85, 0xe8, 0x52, 0x52, 0x09, 0x48, 0xd0, + 0x53, 0x30, 0xdd, 0x6a, 0xef, 0x98, 0x86, 0xae, 0x06, 0xd4, 0x60, 0x21, 0xba, 0x14, 0x57, 0x64, + 0x36, 0xb0, 0xda, 0x55, 0x7e, 0x1c, 0xa6, 0x6e, 0x61, 0xed, 0x46, 0x50, 0x35, 0x45, 0x55, 0x33, + 0x44, 0x1c, 0x50, 0x5c, 0x81, 0x74, 0x13, 0xbb, 0xae, 0xd6, 0xc0, 0xaa, 0xd7, 0x69, 0xe1, 0x6c, + 0x8c, 0xce, 0x7e, 0x61, 0x60, 0xf6, 0xfd, 0x33, 0x4f, 0x71, 0xd4, 0x56, 0xa7, 0x85, 0x51, 0x01, + 0x92, 0xd8, 0x6a, 0x37, 0x19, 0x43, 0xfc, 0x00, 0xff, 0x95, 0xac, 0x76, 0xb3, 0x9f, 0x25, 0x41, + 0x60, 0x9c, 0x62, 0xc2, 0xc5, 0xce, 0x4d, 0x43, 0xc7, 0xd9, 0x71, 0x4a, 0xf0, 0xf8, 0x00, 0xc1, + 0x26, 0x1b, 0xef, 0xe7, 0x10, 0x38, 0xb4, 0x02, 0x49, 0xfc, 0xa2, 0x87, 0x2d, 0xd7, 0xb0, 0xad, + 0xec, 0x04, 0x25, 0x79, 0x74, 0xc8, 0x2a, 0x62, 0xb3, 0xde, 0x4f, 0xd1, 0xc5, 0xa1, 0xf3, 0x30, + 0x61, 0xb7, 0x3c, 0xc3, 0xb6, 0xdc, 0x6c, 0x62, 0x41, 0x5a, 0x4a, 0x9d, 0xfe, 0xc8, 0xd0, 0x40, + 0xa8, 0x32, 0x1d, 0x45, 0x28, 0xa3, 0x32, 0xc8, 0xae, 0xdd, 0x76, 0x74, 0xac, 0xea, 0x76, 0x1d, + 0xab, 0x86, 0xb5, 0x6b, 0x67, 0x93, 0x94, 0x60, 0x7e, 0x70, 0x22, 0x54, 0x71, 0xc5, 0xae, 0xe3, + 0xb2, 0xb5, 0x6b, 0x2b, 0x19, 0xb7, 0xe7, 0x1a, 0x1d, 0x83, 0x71, 0xb7, 0x63, 0x79, 0xda, 0x8b, + 0xd9, 0x34, 0x8d, 0x10, 0x7e, 0xb5, 0xf8, 0x7f, 0x71, 0x98, 0x1a, 0x25, 0xc4, 0x2e, 0x42, 0x7c, + 0x97, 0xcc, 0x32, 0x1b, 0x39, 0x8a, 0x0f, 0x18, 0xa6, 0xd7, 0x89, 0xe3, 0xf7, 0xe9, 0xc4, 0x02, + 0xa4, 0x2c, 0xec, 0x7a, 0xb8, 0xce, 0x22, 0x22, 0x3a, 0x62, 0x4c, 0x01, 0x03, 0x0d, 0x86, 0x54, + 0xec, 0xbe, 0x42, 0xea, 0x2a, 0x4c, 0xf9, 0x26, 0xa9, 0x8e, 0x66, 0x35, 0x44, 0x6c, 0x9e, 0x0a, + 0xb3, 0x64, 0xb9, 0x24, 0x70, 0x0a, 0x81, 0x29, 0x19, 0xdc, 0x73, 0x8d, 0x56, 0x01, 0x6c, 0x0b, + 0xdb, 0xbb, 0x6a, 0x1d, 0xeb, 0x66, 0x36, 0x71, 0x80, 0x97, 0xaa, 0x44, 0x65, 0xc0, 0x4b, 0x36, + 0x93, 0xea, 0x26, 0x7a, 0xb6, 0x1b, 0x6a, 0x13, 0x07, 0x44, 0x4a, 0x85, 0x6d, 0xb2, 0x81, 0x68, + 0xdb, 0x86, 0x8c, 0x83, 0x49, 0xdc, 0xe3, 0x3a, 0x9f, 0x59, 0x92, 0x1a, 0xb1, 0x1c, 0x3a, 0x33, + 0x85, 0xc3, 0xd8, 0xc4, 0x26, 0x9d, 0xe0, 0x25, 0x7a, 0x18, 0x7c, 0x81, 0x4a, 0xc3, 0x0a, 0x68, + 0x16, 0x4a, 0x0b, 0xe1, 0x86, 0xd6, 0xc4, 0x73, 0x17, 0x20, 0xd3, 0xeb, 0x1e, 0x34, 0x0b, 0x71, + 0xd7, 0xd3, 0x1c, 0x8f, 0x46, 0x61, 0x5c, 0x61, 0x17, 0x48, 0x86, 0x28, 0xb6, 0xea, 0x34, 0xcb, + 0xc5, 0x15, 0xf2, 0x73, 0xee, 0x19, 0x98, 0xec, 0xb9, 0xfd, 0xa8, 0xc0, 0xc5, 0x2f, 0x8c, 0xc3, + 0xec, 0xb0, 0x98, 0x1b, 0x1a, 0xfe, 0xc7, 0x60, 0xdc, 0x6a, 0x37, 0x77, 0xb0, 0x93, 0x8d, 0x52, + 0x06, 0x7e, 0x85, 0x0a, 0x10, 0x37, 0xb5, 0x1d, 0x6c, 0x66, 0x63, 0x0b, 0xd2, 0x52, 0xe6, 0xf4, + 0x53, 0x23, 0x45, 0xf5, 0xf2, 0x3a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x83, 0x18, 0x4f, 0x71, 0x84, + 0xe1, 0xc9, 0xd1, 0x18, 0x48, 0x2c, 0x2a, 0x14, 0x87, 0x1e, 0x84, 0x24, 0xf9, 0xcb, 0x7c, 0x3b, + 0x4e, 0x6d, 0x4e, 0x10, 0x01, 0xf1, 0x2b, 0x9a, 0x83, 0x04, 0x0d, 0xb3, 0x3a, 0x16, 0xa5, 0xc1, + 0xbf, 0x26, 0x0b, 0x53, 0xc7, 0xbb, 0x5a, 0xdb, 0xf4, 0xd4, 0x9b, 0x9a, 0xd9, 0xc6, 0x34, 0x60, + 0x92, 0x4a, 0x9a, 0x0b, 0x3f, 0x4d, 0x64, 0x68, 0x1e, 0x52, 0x2c, 0x2a, 0x0d, 0xab, 0x8e, 0x5f, + 0xa4, 0xd9, 0x27, 0xae, 0xb0, 0x40, 0x2d, 0x13, 0x09, 0xb9, 0xfd, 0x75, 0xd7, 0xb6, 0xc4, 0xd2, + 0xd2, 0x5b, 0x10, 0x01, 0xbd, 0xfd, 0x33, 0xfd, 0x89, 0xef, 0xa1, 0xe1, 0xd3, 0xeb, 0x8f, 0xc5, + 0xc5, 0x6f, 0x47, 0x20, 0x46, 0xf7, 0xdb, 0x14, 0xa4, 0xb6, 0xae, 0xd5, 0x4a, 0xea, 0x6a, 0x75, + 0xbb, 0xb8, 0x5e, 0x92, 0x25, 0x94, 0x01, 0xa0, 0x82, 0x4b, 0xeb, 0xd5, 0xc2, 0x96, 0x1c, 0xf1, + 0xaf, 0xcb, 0x1b, 0x5b, 0xe7, 0xcf, 0xca, 0x51, 0x1f, 0xb0, 0xcd, 0x04, 0xb1, 0xa0, 0xc2, 0x99, + 0xd3, 0x72, 0x1c, 0xc9, 0x90, 0x66, 0x04, 0xe5, 0xab, 0xa5, 0xd5, 0xf3, 0x67, 0xe5, 0xf1, 0x5e, + 0xc9, 0x99, 0xd3, 0xf2, 0x04, 0x9a, 0x84, 0x24, 0x95, 0x14, 0xab, 0xd5, 0x75, 0x39, 0xe1, 0x73, + 0x6e, 0x6e, 0x29, 0xe5, 0x8d, 0x35, 0x39, 0xe9, 0x73, 0xae, 0x29, 0xd5, 0xed, 0x9a, 0x0c, 0x3e, + 0x43, 0xa5, 0xb4, 0xb9, 0x59, 0x58, 0x2b, 0xc9, 0x29, 0x5f, 0xa3, 0x78, 0x6d, 0xab, 0xb4, 0x29, + 0xa7, 0x7b, 0xcc, 0x3a, 0x73, 0x5a, 0x9e, 0xf4, 0x6f, 0x51, 0xda, 0xd8, 0xae, 0xc8, 0x19, 0x34, + 0x0d, 0x93, 0xec, 0x16, 0xc2, 0x88, 0xa9, 0x3e, 0xd1, 0xf9, 0xb3, 0xb2, 0xdc, 0x35, 0x84, 0xb1, + 0x4c, 0xf7, 0x08, 0xce, 0x9f, 0x95, 0xd1, 0xe2, 0x0a, 0xc4, 0x69, 0x74, 0x21, 0x04, 0x99, 0xf5, + 0x42, 0xb1, 0xb4, 0xae, 0x56, 0x6b, 0x5b, 0xe5, 0xea, 0x46, 0x61, 0x5d, 0x96, 0xba, 0x32, 0xa5, + 0xf4, 0xa9, 0xed, 0xb2, 0x52, 0x5a, 0x95, 0x23, 0x41, 0x59, 0xad, 0x54, 0xd8, 0x2a, 0xad, 0xca, + 0xd1, 0x45, 0x1d, 0x66, 0x87, 0xe5, 0x99, 0xa1, 0x3b, 0x23, 0xb0, 0xc4, 0x91, 0x03, 0x96, 0x98, + 0x72, 0x0d, 0x2c, 0xf1, 0x97, 0x25, 0x98, 0x19, 0x92, 0x6b, 0x87, 0xde, 0xe4, 0x79, 0x88, 0xb3, + 0x10, 0x65, 0xd5, 0xe7, 0x89, 0xa1, 0x49, 0x9b, 0x06, 0xec, 0x40, 0x05, 0xa2, 0xb8, 0x60, 0x05, + 0x8e, 0x1e, 0x50, 0x81, 0x09, 0xc5, 0x80, 0x91, 0x2f, 0x4b, 0x90, 0x3d, 0x88, 0x3b, 0x24, 0x51, + 0x44, 0x7a, 0x12, 0xc5, 0xc5, 0x7e, 0x03, 0x4e, 0x1e, 0x3c, 0x87, 0x01, 0x2b, 0x5e, 0x97, 0xe0, + 0xd8, 0xf0, 0x46, 0x65, 0xa8, 0x0d, 0xcf, 0xc1, 0x78, 0x13, 0x7b, 0x7b, 0xb6, 0x28, 0xd6, 0x8f, + 0x0d, 0x29, 0x01, 0x64, 0xb8, 0xdf, 0x57, 0x1c, 0x15, 0xac, 0x21, 0xd1, 0x83, 0xba, 0x0d, 0x66, + 0xcd, 0x80, 0xa5, 0x9f, 0x8f, 0xc0, 0x03, 0x43, 0xc9, 0x87, 0x1a, 0xfa, 0x10, 0x80, 0x61, 0xb5, + 0xda, 0x1e, 0x2b, 0xc8, 0x2c, 0x3f, 0x25, 0xa9, 0x84, 0xee, 0x7d, 0x92, 0x7b, 0xda, 0x9e, 0x3f, + 0x1e, 0xa5, 0xe3, 0xc0, 0x44, 0x54, 0xe1, 0x42, 0xd7, 0xd0, 0x18, 0x35, 0x34, 0x77, 0xc0, 0x4c, + 0x07, 0x6a, 0xdd, 0xd3, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x4f, 0x75, 0x3d, 0x07, 0x6b, 0x4d, 0xc3, + 0x6a, 0xd0, 0x04, 0x9c, 0xc8, 0xc7, 0x77, 0x35, 0xd3, 0xc5, 0xca, 0x14, 0x1b, 0xde, 0x14, 0xa3, + 0x04, 0x41, 0xab, 0x8c, 0x13, 0x40, 0x8c, 0xf7, 0x20, 0xd8, 0xb0, 0x8f, 0x58, 0xfc, 0xda, 0x04, + 0xa4, 0x02, 0x6d, 0x1d, 0x3a, 0x09, 0xe9, 0xeb, 0xda, 0x4d, 0x4d, 0x15, 0xad, 0x3a, 0xf3, 0x44, + 0x8a, 0xc8, 0x6a, 0xbc, 0x5d, 0x7f, 0x1a, 0x66, 0xa9, 0x8a, 0xdd, 0xf6, 0xb0, 0xa3, 0xea, 0xa6, + 0xe6, 0xba, 0xd4, 0x69, 0x09, 0xaa, 0x8a, 0xc8, 0x58, 0x95, 0x0c, 0xad, 0x88, 0x11, 0x74, 0x0e, + 0x66, 0x28, 0xa2, 0xd9, 0x36, 0x3d, 0xa3, 0x65, 0x62, 0x95, 0x3c, 0x3c, 0xb8, 0x34, 0x11, 0xfb, + 0x96, 0x4d, 0x13, 0x8d, 0x0a, 0x57, 0x20, 0x16, 0xb9, 0x68, 0x15, 0x1e, 0xa2, 0xb0, 0x06, 0xb6, + 0xb0, 0xa3, 0x79, 0x58, 0xc5, 0x9f, 0x69, 0x6b, 0xa6, 0xab, 0x6a, 0x56, 0x5d, 0xdd, 0xd3, 0xdc, + 0xbd, 0xec, 0x2c, 0x21, 0x28, 0x46, 0xb2, 0x92, 0x72, 0x82, 0x28, 0xae, 0x71, 0xbd, 0x12, 0x55, + 0x2b, 0x58, 0xf5, 0x4f, 0x6a, 0xee, 0x1e, 0xca, 0xc3, 0x31, 0xca, 0xe2, 0x7a, 0x8e, 0x61, 0x35, + 0x54, 0x7d, 0x0f, 0xeb, 0x37, 0xd4, 0xb6, 0xb7, 0x7b, 0x21, 0xfb, 0x60, 0xf0, 0xfe, 0xd4, 0xc2, + 0x4d, 0xaa, 0xb3, 0x42, 0x54, 0xb6, 0xbd, 0xdd, 0x0b, 0x68, 0x13, 0xd2, 0x64, 0x31, 0x9a, 0xc6, + 0x4b, 0x58, 0xdd, 0xb5, 0x1d, 0x5a, 0x59, 0x32, 0x43, 0x76, 0x76, 0xc0, 0x83, 0xcb, 0x55, 0x0e, + 0xa8, 0xd8, 0x75, 0x9c, 0x8f, 0x6f, 0xd6, 0x4a, 0xa5, 0x55, 0x25, 0x25, 0x58, 0x2e, 0xd9, 0x0e, + 0x09, 0xa8, 0x86, 0xed, 0x3b, 0x38, 0xc5, 0x02, 0xaa, 0x61, 0x0b, 0xf7, 0x9e, 0x83, 0x19, 0x5d, + 0x67, 0x73, 0x36, 0x74, 0x95, 0xb7, 0xf8, 0x6e, 0x56, 0xee, 0x71, 0x96, 0xae, 0xaf, 0x31, 0x05, + 0x1e, 0xe3, 0x2e, 0x7a, 0x16, 0x1e, 0xe8, 0x3a, 0x2b, 0x08, 0x9c, 0x1e, 0x98, 0x65, 0x3f, 0xf4, + 0x1c, 0xcc, 0xb4, 0x3a, 0x83, 0x40, 0xd4, 0x73, 0xc7, 0x56, 0xa7, 0x1f, 0xf6, 0x28, 0x7d, 0x6c, + 0x73, 0xb0, 0xae, 0x79, 0xb8, 0x9e, 0x3d, 0x1e, 0xd4, 0x0e, 0x0c, 0xa0, 0x53, 0x20, 0xeb, 0xba, + 0x8a, 0x2d, 0x6d, 0xc7, 0xc4, 0xaa, 0xe6, 0x60, 0x4b, 0x73, 0xb3, 0xf3, 0x41, 0xe5, 0x8c, 0xae, + 0x97, 0xe8, 0x68, 0x81, 0x0e, 0xa2, 0x27, 0x61, 0xda, 0xde, 0xb9, 0xae, 0xb3, 0xc8, 0x52, 0x5b, + 0x0e, 0xde, 0x35, 0x5e, 0xcc, 0x3e, 0x42, 0xdd, 0x34, 0x45, 0x06, 0x68, 0x5c, 0xd5, 0xa8, 0x18, + 0x3d, 0x01, 0xb2, 0xee, 0xee, 0x69, 0x4e, 0x8b, 0x96, 0x76, 0xb7, 0xa5, 0xe9, 0x38, 0xfb, 0x28, + 0x53, 0x65, 0xf2, 0x0d, 0x21, 0x26, 0x91, 0xed, 0xde, 0x32, 0x76, 0x3d, 0xc1, 0xf8, 0x38, 0x8b, + 0x6c, 0x2a, 0xe3, 0x6c, 0x57, 0x61, 0xb6, 0x6d, 0x19, 0x96, 0x87, 0x9d, 0x96, 0x83, 0x49, 0x13, + 0xcf, 0x76, 0x62, 0xf6, 0xdf, 0x26, 0x0e, 0x68, 0xc3, 0xb7, 0x83, 0xda, 0x2c, 0x00, 0x94, 0x99, + 0xf6, 0xa0, 0x70, 0x31, 0x0f, 0xe9, 0x60, 0x5c, 0xa0, 0x24, 0xb0, 0xc8, 0x90, 0x25, 0x52, 0x63, + 0x57, 0xaa, 0xab, 0xa4, 0x3a, 0xbe, 0x50, 0x92, 0x23, 0xa4, 0x4a, 0xaf, 0x97, 0xb7, 0x4a, 0xaa, + 0xb2, 0xbd, 0xb1, 0x55, 0xae, 0x94, 0xe4, 0xe8, 0x93, 0xc9, 0xc4, 0x3b, 0x13, 0xf2, 0xed, 0xdb, + 0xb7, 0x6f, 0x47, 0x16, 0xbf, 0x17, 0x81, 0x4c, 0x6f, 0x67, 0x8c, 0x3e, 0x0e, 0xc7, 0xc5, 0x63, + 0xac, 0x8b, 0x3d, 0xf5, 0x96, 0xe1, 0xd0, 0x50, 0x6d, 0x6a, 0xac, 0xb7, 0xf4, 0xbd, 0x3c, 0xcb, + 0xb5, 0x36, 0xb1, 0x77, 0xc5, 0x70, 0x48, 0x20, 0x36, 0x35, 0x0f, 0xad, 0xc3, 0xbc, 0x65, 0xab, + 0xae, 0xa7, 0x59, 0x75, 0xcd, 0xa9, 0xab, 0xdd, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xec, 0xba, 0x36, + 0x2b, 0x11, 0x3e, 0xcb, 0x47, 0x2c, 0x7b, 0x93, 0x2b, 0x77, 0x73, 0x67, 0x81, 0xab, 0xf6, 0x45, + 0x44, 0xf4, 0xa0, 0x88, 0x78, 0x10, 0x92, 0x4d, 0xad, 0xa5, 0x62, 0xcb, 0x73, 0x3a, 0xb4, 0x9f, + 0x4b, 0x28, 0x89, 0xa6, 0xd6, 0x2a, 0x91, 0xeb, 0x0f, 0x6f, 0x0d, 0x82, 0x7e, 0xfc, 0xd7, 0x28, + 0xa4, 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0xba, 0xc3, 0x1f, 0x3e, 0xb4, 0x03, + 0x5c, 0x5e, 0x21, 0x89, 0x3d, 0x3f, 0xce, 0x3a, 0x2d, 0x85, 0x21, 0x49, 0x51, 0x25, 0x7b, 0x1a, + 0xb3, 0xfe, 0x3d, 0xa1, 0xf0, 0x2b, 0xb4, 0x06, 0xe3, 0xd7, 0x5d, 0xca, 0x3d, 0x4e, 0xb9, 0x1f, + 0x39, 0x9c, 0xfb, 0xf2, 0x26, 0x25, 0x4f, 0x5e, 0xde, 0x54, 0x37, 0xaa, 0x4a, 0xa5, 0xb0, 0xae, + 0x70, 0x38, 0x3a, 0x01, 0x31, 0x53, 0x7b, 0xa9, 0xd3, 0x5b, 0x02, 0xa8, 0x68, 0x54, 0xc7, 0x9f, + 0x80, 0xd8, 0x2d, 0xac, 0xdd, 0xe8, 0x4d, 0xbc, 0x54, 0xf4, 0x21, 0x86, 0xfe, 0x29, 0x88, 0x53, + 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x0c, 0x25, 0x20, 0xb6, 0x52, 0x55, 0x48, 0xf8, 0xcb, 0x90, + 0x66, 0x52, 0xb5, 0x56, 0x2e, 0xad, 0x94, 0xe4, 0xc8, 0xe2, 0x39, 0x18, 0x67, 0x4e, 0x20, 0x5b, + 0xc3, 0x77, 0x83, 0x3c, 0xc6, 0x2f, 0x39, 0x87, 0x24, 0x46, 0xb7, 0x2b, 0xc5, 0x92, 0x22, 0x47, + 0x82, 0xcb, 0xeb, 0x42, 0x3a, 0xd8, 0xce, 0xfd, 0x6c, 0x62, 0xea, 0x1f, 0x24, 0x48, 0x05, 0xda, + 0x33, 0xd2, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x52, 0x35, 0xd3, 0xd0, 0x5c, 0x1e, 0x14, 0x40, 0x45, + 0x05, 0x22, 0x19, 0x75, 0xd1, 0x7e, 0x26, 0xc6, 0xbf, 0x26, 0x81, 0xdc, 0xdf, 0xda, 0xf5, 0x19, + 0x28, 0xfd, 0x5c, 0x0d, 0x7c, 0x55, 0x82, 0x4c, 0x6f, 0x3f, 0xd7, 0x67, 0xde, 0xc9, 0x9f, 0xab, + 0x79, 0x6f, 0x45, 0x60, 0xb2, 0xa7, 0x8b, 0x1b, 0xd5, 0xba, 0xcf, 0xc0, 0xb4, 0x51, 0xc7, 0xcd, + 0x96, 0xed, 0x61, 0x4b, 0xef, 0xa8, 0x26, 0xbe, 0x89, 0xcd, 0xec, 0x22, 0x4d, 0x14, 0xa7, 0x0e, + 0xef, 0x13, 0x97, 0xcb, 0x5d, 0xdc, 0x3a, 0x81, 0xe5, 0x67, 0xca, 0xab, 0xa5, 0x4a, 0xad, 0xba, + 0x55, 0xda, 0x58, 0xb9, 0xa6, 0x6e, 0x6f, 0xfc, 0xc2, 0x46, 0xf5, 0xca, 0x86, 0x22, 0x1b, 0x7d, + 0x6a, 0x1f, 0xe2, 0x56, 0xaf, 0x81, 0xdc, 0x6f, 0x14, 0x3a, 0x0e, 0xc3, 0xcc, 0x92, 0xc7, 0xd0, + 0x0c, 0x4c, 0x6d, 0x54, 0xd5, 0xcd, 0xf2, 0x6a, 0x49, 0x2d, 0x5d, 0xba, 0x54, 0x5a, 0xd9, 0xda, + 0x64, 0x0f, 0xce, 0xbe, 0xf6, 0x56, 0xef, 0xa6, 0x7e, 0x25, 0x0a, 0x33, 0x43, 0x2c, 0x41, 0x05, + 0xde, 0xb3, 0xb3, 0xc7, 0x88, 0x8f, 0x8d, 0x62, 0xfd, 0x32, 0xe9, 0x0a, 0x6a, 0x9a, 0xe3, 0xf1, + 0x16, 0xff, 0x09, 0x20, 0x5e, 0xb2, 0x3c, 0x63, 0xd7, 0xc0, 0x0e, 0x3f, 0x67, 0x60, 0x8d, 0xfc, + 0x54, 0x57, 0xce, 0x8e, 0x1a, 0x3e, 0x0a, 0xa8, 0x65, 0xbb, 0x86, 0x67, 0xdc, 0xc4, 0xaa, 0x61, + 0x89, 0x43, 0x09, 0xd2, 0xd8, 0xc7, 0x14, 0x59, 0x8c, 0x94, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x43, + 0xeb, 0xd3, 0x26, 0x09, 0x3c, 0xaa, 0xc8, 0x62, 0xc4, 0xd7, 0x3e, 0x09, 0xe9, 0xba, 0xdd, 0x26, + 0x6d, 0x12, 0xd3, 0x23, 0xf5, 0x42, 0x52, 0x52, 0x4c, 0xe6, 0xab, 0xf0, 0x3e, 0xb6, 0x7b, 0x1a, + 0x92, 0x56, 0x52, 0x4c, 0xc6, 0x54, 0x1e, 0x87, 0x29, 0xad, 0xd1, 0x70, 0x08, 0xb9, 0x20, 0x62, + 0x9d, 0x79, 0xc6, 0x17, 0x53, 0xc5, 0xb9, 0xcb, 0x90, 0x10, 0x7e, 0x20, 0x25, 0x99, 0x78, 0x42, + 0x6d, 0xb1, 0x33, 0xa9, 0xc8, 0x52, 0x52, 0x49, 0x58, 0x62, 0xf0, 0x24, 0xa4, 0x0d, 0x57, 0xed, + 0x1e, 0x8e, 0x46, 0x16, 0x22, 0x4b, 0x09, 0x25, 0x65, 0xb8, 0xfe, 0x69, 0xd8, 0xe2, 0xeb, 0x11, + 0xc8, 0xf4, 0x1e, 0xee, 0xa2, 0x55, 0x48, 0x98, 0xb6, 0xae, 0xd1, 0xd0, 0x62, 0x6f, 0x16, 0x96, + 0x42, 0xce, 0x83, 0x97, 0xd7, 0xb9, 0xbe, 0xe2, 0x23, 0xe7, 0xfe, 0x59, 0x82, 0x84, 0x10, 0xa3, + 0x63, 0x10, 0x6b, 0x69, 0xde, 0x1e, 0xa5, 0x8b, 0x17, 0x23, 0xb2, 0xa4, 0xd0, 0x6b, 0x22, 0x77, + 0x5b, 0x9a, 0x45, 0x43, 0x80, 0xcb, 0xc9, 0x35, 0x59, 0x57, 0x13, 0x6b, 0x75, 0xda, 0xf6, 0xdb, + 0xcd, 0x26, 0xb6, 0x3c, 0x57, 0xac, 0x2b, 0x97, 0xaf, 0x70, 0x31, 0x7a, 0x0a, 0xa6, 0x3d, 0x47, + 0x33, 0xcc, 0x1e, 0xdd, 0x18, 0xd5, 0x95, 0xc5, 0x80, 0xaf, 0x9c, 0x87, 0x13, 0x82, 0xb7, 0x8e, + 0x3d, 0x4d, 0xdf, 0xc3, 0xf5, 0x2e, 0x68, 0x9c, 0x9e, 0x1c, 0x1e, 0xe7, 0x0a, 0xab, 0x7c, 0x5c, + 0x60, 0x17, 0x7f, 0x20, 0xc1, 0xb4, 0x78, 0x50, 0xa9, 0xfb, 0xce, 0xaa, 0x00, 0x68, 0x96, 0x65, + 0x7b, 0x41, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xb9, 0xe0, 0x83, 0x94, 0x00, 0xc1, 0x5c, 0x13, + 0xa0, 0x3b, 0x72, 0xa0, 0xdb, 0xe6, 0x21, 0xc5, 0x4f, 0xee, 0xe9, 0xeb, 0x1f, 0xf6, 0x68, 0x0b, + 0x4c, 0x44, 0x9e, 0x68, 0xd0, 0x2c, 0xc4, 0x77, 0x70, 0xc3, 0xb0, 0xf8, 0x79, 0x22, 0xbb, 0x10, + 0xa7, 0x94, 0x31, 0xff, 0x94, 0xb2, 0x78, 0x15, 0x66, 0x74, 0xbb, 0xd9, 0x6f, 0x6e, 0x51, 0xee, + 0x7b, 0xbc, 0x76, 0x3f, 0x29, 0xbd, 0x00, 0xdd, 0x16, 0xf3, 0xcb, 0x91, 0xe8, 0x5a, 0xad, 0xf8, + 0xd5, 0xc8, 0xdc, 0x1a, 0xc3, 0xd5, 0xc4, 0x34, 0x15, 0xbc, 0x6b, 0x62, 0x9d, 0x98, 0x0e, 0x3f, + 0x7e, 0x0c, 0x3e, 0xd6, 0x30, 0xbc, 0xbd, 0xf6, 0xce, 0xb2, 0x6e, 0x37, 0x4f, 0x35, 0xec, 0x86, + 0xdd, 0x7d, 0xdd, 0x45, 0xae, 0xe8, 0x05, 0xfd, 0xc5, 0x5f, 0x79, 0x25, 0x7d, 0xe9, 0x5c, 0xe8, + 0xfb, 0xb1, 0xfc, 0x06, 0xcc, 0x70, 0x65, 0x95, 0x9e, 0xb9, 0xb3, 0x47, 0x03, 0x74, 0xe8, 0xb9, + 0x4b, 0xf6, 0x9b, 0x6f, 0xd3, 0x5a, 0xad, 0x4c, 0x73, 0x28, 0x19, 0x63, 0x0f, 0x10, 0x79, 0x05, + 0x1e, 0xe8, 0xe1, 0x63, 0xfb, 0x12, 0x3b, 0x21, 0x8c, 0xdf, 0xe3, 0x8c, 0x33, 0x01, 0xc6, 0x4d, + 0x0e, 0xcd, 0xaf, 0xc0, 0xe4, 0x51, 0xb8, 0xfe, 0x91, 0x73, 0xa5, 0x71, 0x90, 0x64, 0x0d, 0xa6, + 0x28, 0x89, 0xde, 0x76, 0x3d, 0xbb, 0x49, 0x93, 0xde, 0xe1, 0x34, 0xff, 0xf4, 0x36, 0xdb, 0x28, + 0x19, 0x02, 0x5b, 0xf1, 0x51, 0xf9, 0x3c, 0xd0, 0xd7, 0x0c, 0x75, 0xac, 0x9b, 0x21, 0x0c, 0x6f, + 0x70, 0x43, 0x7c, 0xfd, 0xfc, 0xa7, 0x61, 0x96, 0xfc, 0xa6, 0x39, 0x29, 0x68, 0x49, 0xf8, 0x29, + 0x53, 0xf6, 0x07, 0x2f, 0xb3, 0xbd, 0x38, 0xe3, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x03, 0x7b, + 0x1e, 0x76, 0x5c, 0x55, 0x33, 0x87, 0x99, 0x17, 0x78, 0x4c, 0xcf, 0x7e, 0xf1, 0xdd, 0xde, 0x55, + 0x5c, 0x63, 0xc8, 0x82, 0x69, 0xe6, 0xb7, 0xe1, 0xf8, 0x90, 0xa8, 0x18, 0x81, 0xf3, 0x15, 0xce, + 0x39, 0x3b, 0x10, 0x19, 0x84, 0xb6, 0x06, 0x42, 0xee, 0xaf, 0xe5, 0x08, 0x9c, 0x7f, 0xc4, 0x39, + 0x11, 0xc7, 0x8a, 0x25, 0x25, 0x8c, 0x97, 0x61, 0xfa, 0x26, 0x76, 0x76, 0x6c, 0x97, 0x1f, 0x8d, + 0x8c, 0x40, 0xf7, 0x2a, 0xa7, 0x9b, 0xe2, 0x40, 0x7a, 0x56, 0x42, 0xb8, 0x9e, 0x85, 0xc4, 0xae, + 0xa6, 0xe3, 0x11, 0x28, 0xbe, 0xc4, 0x29, 0x26, 0x88, 0x3e, 0x81, 0x16, 0x20, 0xdd, 0xb0, 0x79, + 0x59, 0x0a, 0x87, 0xbf, 0xc6, 0xe1, 0x29, 0x81, 0xe1, 0x14, 0x2d, 0xbb, 0xd5, 0x36, 0x49, 0xcd, + 0x0a, 0xa7, 0xf8, 0x63, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x08, 0x6e, 0xfd, 0x13, 0x41, 0xe1, 0x06, + 0xfc, 0xf9, 0x3c, 0xa4, 0x6c, 0xcb, 0xec, 0xd8, 0xd6, 0x28, 0x46, 0xfc, 0x29, 0x67, 0x00, 0x0e, + 0x21, 0x04, 0x17, 0x21, 0x39, 0xea, 0x42, 0xfc, 0xd9, 0xbb, 0x62, 0x7b, 0x88, 0x15, 0x58, 0x83, + 0x29, 0x91, 0xa0, 0x0c, 0xdb, 0x1a, 0x81, 0xe2, 0xcf, 0x39, 0x45, 0x26, 0x00, 0xe3, 0xd3, 0xf0, + 0xb0, 0xeb, 0x35, 0xf0, 0x28, 0x24, 0xaf, 0x8b, 0x69, 0x70, 0x08, 0x77, 0xe5, 0x0e, 0xb6, 0xf4, + 0xbd, 0xd1, 0x18, 0xbe, 0x22, 0x5c, 0x29, 0x30, 0x84, 0x62, 0x05, 0x26, 0x9b, 0x9a, 0xe3, 0xee, + 0x69, 0xe6, 0x48, 0xcb, 0xf1, 0x17, 0x9c, 0x23, 0xed, 0x83, 0xb8, 0x47, 0xda, 0xd6, 0x51, 0x68, + 0xbe, 0x2a, 0x3c, 0x12, 0x80, 0xf1, 0xad, 0xe7, 0x7a, 0xf4, 0x00, 0xea, 0x28, 0x6c, 0x5f, 0x13, + 0x5b, 0x8f, 0x61, 0x2b, 0x41, 0xc6, 0x8b, 0x90, 0x74, 0x8d, 0x97, 0x46, 0xa2, 0xf9, 0x4b, 0xb1, + 0xd2, 0x14, 0x40, 0xc0, 0xd7, 0xe0, 0xc4, 0xd0, 0x32, 0x31, 0x02, 0xd9, 0x5f, 0x71, 0xb2, 0x63, + 0x43, 0x4a, 0x05, 0x4f, 0x09, 0x47, 0xa5, 0xfc, 0x6b, 0x91, 0x12, 0x70, 0x1f, 0x57, 0x8d, 0x3c, + 0x28, 0xb8, 0xda, 0xee, 0xd1, 0xbc, 0xf6, 0x75, 0xe1, 0x35, 0x86, 0xed, 0xf1, 0xda, 0x16, 0x1c, + 0xe3, 0x8c, 0x47, 0x5b, 0xd7, 0x6f, 0x88, 0xc4, 0xca, 0xd0, 0xdb, 0xbd, 0xab, 0xfb, 0x8b, 0x30, + 0xe7, 0xbb, 0x53, 0x74, 0xa4, 0xae, 0xda, 0xd4, 0x5a, 0x23, 0x30, 0x7f, 0x93, 0x33, 0x8b, 0x8c, + 0xef, 0xb7, 0xb4, 0x6e, 0x45, 0x6b, 0x11, 0xf2, 0xab, 0x90, 0x15, 0xe4, 0x6d, 0xcb, 0xc1, 0xba, + 0xdd, 0xb0, 0x8c, 0x97, 0x70, 0x7d, 0x04, 0xea, 0xbf, 0xe9, 0x5b, 0xaa, 0xed, 0x00, 0x9c, 0x30, + 0x97, 0x41, 0xf6, 0x7b, 0x15, 0xd5, 0x68, 0xb6, 0x6c, 0xc7, 0x0b, 0x61, 0xfc, 0x5b, 0xb1, 0x52, + 0x3e, 0xae, 0x4c, 0x61, 0xf9, 0x12, 0x64, 0xe8, 0xe5, 0xa8, 0x21, 0xf9, 0x77, 0x9c, 0x68, 0xb2, + 0x8b, 0xe2, 0x89, 0x43, 0xb7, 0x9b, 0x2d, 0xcd, 0x19, 0x25, 0xff, 0x7d, 0x4b, 0x24, 0x0e, 0x0e, + 0xe1, 0x89, 0xc3, 0xeb, 0xb4, 0x30, 0xa9, 0xf6, 0x23, 0x30, 0x7c, 0x5b, 0x24, 0x0e, 0x81, 0xe1, + 0x14, 0xa2, 0x61, 0x18, 0x81, 0xe2, 0xef, 0x05, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0x75, 0x0b, 0xad, + 0x83, 0x1b, 0x86, 0xeb, 0x39, 0xac, 0x0f, 0x3e, 0x9c, 0xea, 0x3b, 0xef, 0xf6, 0x36, 0x61, 0x4a, + 0x00, 0x9a, 0xbf, 0x0c, 0x53, 0x7d, 0x2d, 0x06, 0x0a, 0xfb, 0x66, 0x21, 0xfb, 0xcb, 0xef, 0xf3, + 0x64, 0xd4, 0xdb, 0x61, 0xe4, 0xd7, 0xc9, 0xba, 0xf7, 0xf6, 0x01, 0xe1, 0x64, 0x2f, 0xbf, 0xef, + 0x2f, 0x7d, 0x4f, 0x1b, 0x90, 0xbf, 0x04, 0x93, 0x3d, 0x3d, 0x40, 0x38, 0xd5, 0xaf, 0x70, 0xaa, + 0x74, 0xb0, 0x05, 0xc8, 0x9f, 0x83, 0x18, 0xa9, 0xe7, 0xe1, 0xf0, 0x5f, 0xe5, 0x70, 0xaa, 0x9e, + 0xff, 0x04, 0x24, 0x44, 0x1d, 0x0f, 0x87, 0xfe, 0x1a, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, + 0x1c, 0xfe, 0x39, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xdd, 0x85, 0xdf, 0xfd, 0x8d, 0x18, 0xcf, 0xc3, + 0xc2, 0x77, 0x17, 0x61, 0x82, 0x17, 0xef, 0x70, 0xf4, 0xe7, 0xf9, 0xcd, 0x05, 0x22, 0xff, 0x0c, + 0xc4, 0x47, 0x74, 0xf8, 0x6f, 0x72, 0x28, 0xd3, 0xcf, 0xaf, 0x40, 0x2a, 0x50, 0xb0, 0xc3, 0xe1, + 0xbf, 0xc5, 0xe1, 0x41, 0x14, 0x31, 0x9d, 0x17, 0xec, 0x70, 0x82, 0xdf, 0x16, 0xa6, 0x73, 0x04, + 0x71, 0x9b, 0xa8, 0xd5, 0xe1, 0xe8, 0xdf, 0x11, 0x5e, 0x17, 0x90, 0xfc, 0xf3, 0x90, 0xf4, 0xf3, + 0x6f, 0x38, 0xfe, 0x77, 0x39, 0xbe, 0x8b, 0x21, 0x1e, 0x08, 0xe4, 0xff, 0x70, 0x8a, 0xdf, 0x13, + 0x1e, 0x08, 0xa0, 0xc8, 0x36, 0xea, 0xaf, 0xe9, 0xe1, 0x4c, 0xbf, 0x2f, 0xb6, 0x51, 0x5f, 0x49, + 0x27, 0xab, 0x49, 0xd3, 0x60, 0x38, 0xc5, 0x1f, 0x88, 0xd5, 0xa4, 0xfa, 0xc4, 0x8c, 0xfe, 0x22, + 0x19, 0xce, 0xf1, 0x87, 0xc2, 0x8c, 0xbe, 0x1a, 0x99, 0xaf, 0x01, 0x1a, 0x2c, 0x90, 0xe1, 0x7c, + 0x5f, 0xe0, 0x7c, 0xd3, 0x03, 0xf5, 0x31, 0x7f, 0x05, 0x8e, 0x0d, 0x2f, 0x8e, 0xe1, 0xac, 0x5f, + 0x7c, 0xbf, 0xef, 0x71, 0x26, 0x58, 0x1b, 0xf3, 0x5b, 0xdd, 0x2c, 0x1b, 0x2c, 0x8c, 0xe1, 0xb4, + 0xaf, 0xbc, 0xdf, 0x9b, 0x68, 0x83, 0x75, 0x31, 0x5f, 0x00, 0xe8, 0xd6, 0xa4, 0x70, 0xae, 0x57, + 0x39, 0x57, 0x00, 0x44, 0xb6, 0x06, 0x2f, 0x49, 0xe1, 0xf8, 0x2f, 0x89, 0xad, 0xc1, 0x11, 0x64, + 0x6b, 0x88, 0x6a, 0x14, 0x8e, 0x7e, 0x4d, 0x6c, 0x0d, 0x01, 0xc9, 0x5f, 0x84, 0x84, 0xd5, 0x36, + 0x4d, 0x12, 0x5b, 0xe8, 0xf0, 0xcf, 0x88, 0xb2, 0x3f, 0xfa, 0x80, 0x83, 0x05, 0x20, 0x7f, 0x0e, + 0xe2, 0xb8, 0xb9, 0x83, 0xeb, 0x61, 0xc8, 0x7f, 0xff, 0x40, 0xe4, 0x13, 0xa2, 0x9d, 0x7f, 0x1e, + 0x80, 0x3d, 0x4c, 0xd3, 0xb7, 0x44, 0x21, 0xd8, 0xff, 0xf8, 0x80, 0x7f, 0xa1, 0xd0, 0x85, 0x74, + 0x09, 0xd8, 0xf7, 0x0e, 0x87, 0x13, 0xbc, 0xdb, 0x4b, 0x40, 0x1f, 0xc0, 0x9f, 0x85, 0x89, 0xeb, + 0xae, 0x6d, 0x79, 0x5a, 0x23, 0x0c, 0xfd, 0x9f, 0x1c, 0x2d, 0xf4, 0x89, 0xc3, 0x9a, 0xb6, 0x83, + 0x3d, 0xad, 0xe1, 0x86, 0x61, 0xff, 0x8b, 0x63, 0x7d, 0x00, 0x01, 0xeb, 0x9a, 0xeb, 0x8d, 0x32, + 0xef, 0xff, 0x16, 0x60, 0x01, 0x20, 0x46, 0x93, 0xdf, 0x37, 0x70, 0x27, 0x0c, 0xfb, 0x9e, 0x30, + 0x9a, 0xeb, 0xe7, 0x3f, 0x01, 0x49, 0xf2, 0x93, 0x7d, 0xb5, 0x13, 0x02, 0xfe, 0x1f, 0x0e, 0xee, + 0x22, 0xc8, 0x9d, 0x5d, 0xaf, 0xee, 0x19, 0xe1, 0xce, 0xfe, 0x5f, 0xbe, 0xd2, 0x42, 0x3f, 0x5f, + 0x80, 0x94, 0xeb, 0xd5, 0xeb, 0x6d, 0xde, 0xd1, 0x84, 0xc0, 0x7f, 0xfc, 0x81, 0xff, 0x90, 0xeb, + 0x63, 0x8a, 0x27, 0x87, 0x1f, 0xd6, 0xc1, 0x9a, 0xbd, 0x66, 0xb3, 0x63, 0x3a, 0xf8, 0xfa, 0x14, + 0xcc, 0xe9, 0x76, 0x73, 0xc7, 0x76, 0x4f, 0xed, 0xd8, 0xde, 0xde, 0x29, 0xe1, 0x33, 0x7e, 0xc4, + 0xe6, 0xfb, 0x70, 0xee, 0x68, 0x67, 0x73, 0x8b, 0x3f, 0x9a, 0x84, 0xc4, 0x8a, 0xe6, 0x7a, 0xda, + 0x2d, 0xad, 0x83, 0x1e, 0x85, 0x44, 0xd9, 0xf2, 0xce, 0x9c, 0xae, 0x79, 0x0e, 0x7d, 0xb7, 0x14, + 0x2d, 0x26, 0xef, 0xdd, 0x99, 0x8f, 0x1b, 0x44, 0xa6, 0xf8, 0x43, 0xe8, 0x61, 0x88, 0xd3, 0xdf, + 0xf4, 0x78, 0x32, 0x5a, 0x9c, 0x7c, 0xe3, 0xce, 0xfc, 0x58, 0x57, 0x8f, 0x8d, 0xa1, 0x6b, 0x90, + 0xaa, 0x74, 0xb6, 0x0d, 0xcb, 0x3b, 0x7f, 0x96, 0xd0, 0x91, 0x59, 0xc7, 0x8a, 0xcf, 0xdc, 0xbb, + 0x33, 0x7f, 0xe6, 0x40, 0x03, 0x49, 0x2d, 0xec, 0x4e, 0x4c, 0xa0, 0xe9, 0x27, 0x8b, 0x41, 0x2e, + 0x74, 0x05, 0x12, 0xe2, 0x92, 0x1d, 0xf3, 0x17, 0x2f, 0x72, 0x13, 0xee, 0x8b, 0xdb, 0x27, 0x43, + 0xbf, 0x04, 0xe9, 0x4a, 0xe7, 0x92, 0x69, 0x6b, 0xdc, 0x07, 0xf1, 0x05, 0x69, 0x29, 0x52, 0xbc, + 0x70, 0xef, 0xce, 0xfc, 0xd9, 0x91, 0x89, 0x39, 0x9c, 0x32, 0xf7, 0xb0, 0xa1, 0x17, 0x20, 0xe9, + 0x5f, 0xd3, 0x17, 0x09, 0x91, 0xe2, 0xc7, 0xb9, 0xdd, 0xf7, 0x47, 0xdf, 0xa5, 0x0b, 0x58, 0xce, + 0xdc, 0x3d, 0xb1, 0x20, 0x2d, 0x49, 0xf7, 0x63, 0x39, 0xf7, 0x49, 0x0f, 0x5b, 0xc0, 0xf2, 0xf3, + 0x67, 0xe9, 0x9b, 0x0b, 0xe9, 0x7e, 0x2d, 0xe7, 0xf4, 0x5d, 0x3a, 0x74, 0x19, 0x26, 0x2a, 0x9d, + 0x62, 0xc7, 0xc3, 0x2e, 0xfd, 0x94, 0x27, 0x5d, 0x7c, 0xfa, 0xde, 0x9d, 0xf9, 0x8f, 0x8e, 0xc8, + 0x4a, 0x71, 0x8a, 0x20, 0x40, 0x0b, 0x90, 0xda, 0xb0, 0x9d, 0xa6, 0x66, 0x32, 0x3e, 0x60, 0x6f, + 0x62, 0x02, 0x22, 0xb4, 0x4d, 0x66, 0xc2, 0x56, 0xdb, 0xa5, 0xff, 0x84, 0xf0, 0x53, 0xc4, 0x64, + 0x97, 0x09, 0x19, 0x10, 0xaf, 0x74, 0x2a, 0x5a, 0x2b, 0x9b, 0xa6, 0xaf, 0x09, 0x1e, 0x5a, 0xf6, + 0x11, 0x62, 0x6f, 0x2d, 0xd3, 0x71, 0xfa, 0x3d, 0x45, 0xf1, 0xec, 0xbd, 0x3b, 0xf3, 0x4f, 0x8f, + 0x7c, 0xc7, 0x8a, 0xd6, 0xa2, 0xb7, 0x63, 0x77, 0x40, 0xdf, 0x92, 0xc8, 0xc6, 0x62, 0x47, 0xad, + 0xe4, 0x8e, 0x93, 0xf4, 0x8e, 0x0f, 0x0f, 0xbd, 0xa3, 0xaf, 0xc5, 0xee, 0x6b, 0x7d, 0xf6, 0xcd, + 0x23, 0xcc, 0x94, 0x3d, 0xce, 0x90, 0x5b, 0xff, 0xfa, 0x9b, 0xf7, 0xbd, 0x69, 0x7d, 0x0b, 0xd0, + 0xcb, 0x12, 0x4c, 0x56, 0x3a, 0x1b, 0xbc, 0xb0, 0x12, 0xcb, 0x33, 0xfc, 0x53, 0xf5, 0x61, 0x96, + 0x07, 0xf4, 0x98, 0xed, 0xe7, 0x3f, 0xfb, 0xe6, 0xfc, 0xe9, 0x91, 0x8d, 0xa0, 0x29, 0x88, 0xda, + 0xd0, 0x7b, 0x4f, 0xf4, 0x39, 0x6a, 0x45, 0x89, 0x14, 0xe9, 0x3a, 0xae, 0x13, 0x2b, 0xa6, 0x0e, + 0xb1, 0x22, 0xa0, 0xc7, 0xac, 0xc8, 0x93, 0xa8, 0xbf, 0x7f, 0x4b, 0x02, 0x7c, 0xa8, 0x0a, 0xe3, + 0xcc, 0xc3, 0xf4, 0x33, 0xb2, 0xe4, 0x11, 0xc3, 0xb0, 0xbb, 0x38, 0x0a, 0xa7, 0x99, 0xbb, 0x00, + 0xd0, 0x8d, 0x31, 0x24, 0x43, 0xf4, 0x06, 0xee, 0xf0, 0x6f, 0x05, 0xc9, 0x4f, 0x34, 0xdb, 0xfd, + 0x16, 0x56, 0x5a, 0x8a, 0xf1, 0x0f, 0x5c, 0xf3, 0x91, 0x0b, 0xd2, 0xdc, 0x73, 0x20, 0xf7, 0xc7, + 0xca, 0x91, 0xf0, 0x0a, 0xa0, 0xc1, 0x15, 0x0b, 0x32, 0xc4, 0x19, 0xc3, 0x63, 0x41, 0x86, 0xd4, + 0x69, 0xb9, 0xeb, 0xf3, 0x2b, 0x86, 0xe9, 0xda, 0xd6, 0x00, 0x67, 0xbf, 0xff, 0x7f, 0x3a, 0xce, + 0xc5, 0x1c, 0x8c, 0x33, 0x21, 0x99, 0x4b, 0x99, 0x96, 0x0f, 0x5a, 0xe5, 0x14, 0x76, 0x51, 0x5c, + 0x7f, 0xe3, 0x6e, 0x6e, 0xec, 0xfb, 0x77, 0x73, 0x63, 0xff, 0x72, 0x37, 0x37, 0xf6, 0xd6, 0xdd, + 0x9c, 0xf4, 0xce, 0xdd, 0x9c, 0xf4, 0xde, 0xdd, 0x9c, 0xf4, 0x93, 0xbb, 0x39, 0xe9, 0xf6, 0x7e, + 0x4e, 0xfa, 0xca, 0x7e, 0x4e, 0xfa, 0xc6, 0x7e, 0x4e, 0xfa, 0xce, 0x7e, 0x4e, 0xfa, 0xee, 0x7e, + 0x4e, 0x7a, 0x63, 0x3f, 0x27, 0x7d, 0x7f, 0x3f, 0x27, 0xbd, 0xb5, 0x9f, 0x93, 0xde, 0xd9, 0xcf, + 0x8d, 0xbd, 0xb7, 0x9f, 0x93, 0x7e, 0xb2, 0x9f, 0x1b, 0xbb, 0xfd, 0xc3, 0xdc, 0xd8, 0xff, 0x07, + 0x00, 0x00, 0xff, 0xff, 0x7c, 0x9f, 0xb9, 0x37, 0x0e, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -465,6 +485,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -591,6 +620,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -692,6 +730,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -762,6 +801,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -779,6 +822,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -809,7 +853,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -888,6 +932,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -917,223 +964,221 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int32Ptr != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int32Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(m.Int32)) + i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) if m.MyUint64Ptr != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintCasttype(data, i, uint64(*m.MyUint64Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) } - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintCasttype(data, i, uint64(m.MyUint64)) + i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) if m.MyFloat32Ptr != nil { - data[i] = 0x2d + dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) } - data[i] = 0x35 + dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) if m.MyFloat64Ptr != nil { - data[i] = 0x39 + dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) } - data[i] = 0x41 + dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) if m.MyBytes != nil { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintCasttype(data, i, uint64(len(m.MyBytes))) - i += copy(data[i:], m.MyBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) + i += copy(dAtA[i:], m.MyBytes) } if m.NormalBytes != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintCasttype(data, i, uint64(len(m.NormalBytes))) - i += copy(data[i:], m.NormalBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) + i += copy(dAtA[i:], m.NormalBytes) } if len(m.MyUint64S) > 0 { for _, num := range m.MyUint64S { - data[i] = 0x58 + dAtA[i] = 0x58 i++ - i = encodeVarintCasttype(data, i, uint64(num)) + i = encodeVarintCasttype(dAtA, i, uint64(num)) } } if len(m.MyMap) > 0 { for k := range m.MyMap { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.MyMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyCustomMap) > 0 { for k := range m.MyCustomMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.MyCustomMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyNullableMap) > 0 { for k := range m.MyNullableMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.MyNullableMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintCasttype(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCasttype(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 } - i += n1 } } if len(m.MyEmbeddedMap) > 0 { for k := range m.MyEmbeddedMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.MyEmbeddedMap[k] - msgSize := (&v).Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) + } + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCasttype(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCasttype(data, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(data[i:]) + i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) + n2, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } } + if m.String_ != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) + } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int64)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Casttype(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Casttype(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Casttype(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Casttype(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCasttype(data []byte, offset int, v uint64) int { +func encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { @@ -1227,8 +1272,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1236,11 +1285,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1267,14 +1316,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1282,43 +1331,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1375,8 +1424,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1389,6 +1439,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1480,6 +1534,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1504,8 +1559,8 @@ func valueToStringCasttype(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1517,7 +1572,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1545,7 +1600,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1565,7 +1620,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int32 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1584,7 +1639,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1604,7 +1659,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1620,10 +1675,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1635,10 +1690,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1649,14 +1704,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1668,14 +1723,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1689,7 +1744,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1703,7 +1758,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MyBytes = append(m.MyBytes[:0], data[iNdEx:postIndex]...) + m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) if m.MyBytes == nil { m.MyBytes = []byte{} } @@ -1720,7 +1775,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1734,31 +1789,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NormalBytes = append(m.NormalBytes[:0], data[iNdEx:postIndex]...) + m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) if m.NormalBytes == nil { m.NormalBytes = []byte{} } iNdEx = postIndex case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if wireType == 0 { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.MyUint64S = append(m.MyUint64S, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthCasttype + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MyUint64S = append(m.MyUint64S, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) } - m.MyUint64S = append(m.MyUint64S, v) case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) @@ -1771,7 +1868,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1793,7 +1890,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1808,7 +1905,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1823,42 +1920,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyMap == nil { + m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyMap[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.MyMap[mapkey] = mapvalue } - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1872,7 +1974,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1894,7 +1996,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1909,7 +2011,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1924,42 +2026,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(data[iNdEx:postStringIndexmapkey]) + mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyCustomMap == nil { + m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -1973,7 +2080,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1995,7 +2102,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2010,62 +2117,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if m.MyNullableMap == nil { + m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCasttype } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } else { + var mapvalue *Wilson + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -2079,7 +2191,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2101,7 +2213,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2116,29 +2228,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if m.MyEmbeddedMap == nil { + m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + } else { + var mapvalue Wilson + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) } - var mapmsglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -2146,36 +2302,27 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCasttype } - if postmsgIndex > l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) + m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCasttype(data[iNdEx:]) + skippy, err := skipCasttype(dAtA[iNdEx:]) if err != nil { return err } @@ -2185,7 +2332,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2195,8 +2342,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2208,7 +2355,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2236,7 +2383,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2246,7 +2393,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCasttype(data[iNdEx:]) + skippy, err := skipCasttype(dAtA[iNdEx:]) if err != nil { return err } @@ -2256,7 +2403,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2266,8 +2413,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCasttype(data []byte) (n int, err error) { - l := len(data) +func skipCasttype(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2278,7 +2425,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2296,7 +2443,7 @@ func skipCasttype(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2313,7 +2460,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2336,7 +2483,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2347,7 +2494,7 @@ func skipCasttype(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCasttype(data[start:]) + next, err := skipCasttype(dAtA[start:]) if err != nil { return 0, err } @@ -2371,48 +2518,52 @@ var ( ErrIntOverflowCasttype = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 668 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xcd, 0x4f, 0xd4, 0x4e, - 0x18, 0xc7, 0xb7, 0x2c, 0x85, 0x76, 0xba, 0xfb, 0xfb, 0x91, 0x89, 0x87, 0x66, 0x13, 0x0b, 0x81, - 0x60, 0x3c, 0xe8, 0x2e, 0x59, 0x36, 0x48, 0xd0, 0x78, 0x28, 0xc1, 0x04, 0x63, 0x89, 0xa9, 0x12, - 0xa2, 0xf1, 0xd2, 0x42, 0x5d, 0x1a, 0xfb, 0x42, 0xb6, 0xb3, 0x9a, 0xde, 0x88, 0x1e, 0x4c, 0xfc, - 0x0b, 0xfc, 0x13, 0x3c, 0x7a, 0x31, 0xf1, 0xe8, 0x71, 0x8f, 0x1c, 0x3d, 0xf1, 0xe6, 0x85, 0x23, - 0x47, 0xe2, 0xc9, 0x67, 0x66, 0xfa, 0x16, 0x40, 0xb3, 0x94, 0xc3, 0x93, 0x79, 0x7b, 0x9e, 0xcf, - 0xf3, 0x9d, 0xa7, 0x33, 0x53, 0xd4, 0xd8, 0x0c, 0x7d, 0x3b, 0x8c, 0x5a, 0x76, 0x48, 0xb6, 0x5b, - 0x9b, 0x56, 0x44, 0x48, 0xbc, 0xe3, 0x34, 0x77, 0x7a, 0x21, 0x09, 0xb1, 0x94, 0x8e, 0x1b, 0x77, - 0xbb, 0x2e, 0xd9, 0xee, 0xdb, 0x4d, 0x70, 0x6e, 0x75, 0xc3, 0x6e, 0xd8, 0x62, 0x0e, 0x76, 0xff, - 0x35, 0x1b, 0xb1, 0x01, 0xeb, 0xf1, 0xc0, 0xe9, 0xcf, 0x75, 0x24, 0x2d, 0x43, 0xac, 0xf5, 0xce, - 0x8a, 0xf1, 0x2c, 0x92, 0x56, 0x03, 0x32, 0xdf, 0x7e, 0x4a, 0x7a, 0xaa, 0x30, 0x25, 0xdc, 0xae, - 0xea, 0xf2, 0xef, 0xfd, 0x49, 0xd1, 0xa5, 0x73, 0xa6, 0xe4, 0x26, 0x4b, 0x78, 0x06, 0x89, 0xcc, - 0x4d, 0x1d, 0x61, 0x3e, 0xf5, 0xc1, 0xfe, 0x64, 0x25, 0xf7, 0xe3, 0x0d, 0x7e, 0x81, 0x14, 0x23, - 0x5e, 0x87, 0xfe, 0x42, 0x87, 0xe2, 0xaa, 0xe0, 0x3a, 0xaa, 0xdf, 0x03, 0xb7, 0xf9, 0xbf, 0x0a, - 0x24, 0x4e, 0x44, 0xf2, 0x8d, 0xa5, 0xd1, 0xcf, 0x61, 0x60, 0x2a, 0x7e, 0xce, 0xc2, 0x1b, 0x48, - 0x4a, 0x17, 0xd5, 0x51, 0xc6, 0xbd, 0x9f, 0x48, 0x28, 0xc5, 0x96, 0x52, 0x36, 0x7e, 0x85, 0x6a, - 0x46, 0xfc, 0xc8, 0x0b, 0xad, 0xa4, 0x06, 0x22, 0xc0, 0x47, 0xf4, 0x45, 0x00, 0x77, 0x86, 0x06, - 0x27, 0xe1, 0x8c, 0x5c, 0xf3, 0x0b, 0x34, 0xfc, 0x12, 0xc9, 0xd9, 0xb2, 0x3a, 0xc6, 0xd0, 0x0f, - 0x12, 0xdd, 0xe5, 0xf0, 0x72, 0x86, 0x2f, 0x28, 0xe7, 0xe5, 0x1e, 0x07, 0xbc, 0x50, 0x46, 0x79, - 0x52, 0x93, 0x54, 0x39, 0x2f, 0x78, 0xae, 0x1c, 0x2a, 0x2e, 0x31, 0x74, 0x49, 0xe5, 0x09, 0x5e, - 0xce, 0xf0, 0xf8, 0x31, 0x1a, 0x37, 0x62, 0x3d, 0x06, 0x6f, 0x55, 0x06, 0x72, 0x4d, 0x9f, 0x03, - 0xea, 0x9d, 0x21, 0xa9, 0x2c, 0xce, 0x1c, 0xf7, 0x39, 0x00, 0x4f, 0x21, 0x65, 0x2d, 0xec, 0xf9, - 0x96, 0xc7, 0x79, 0x88, 0xf2, 0x4c, 0x25, 0xc8, 0xa7, 0xf0, 0x3a, 0xdd, 0x09, 0xff, 0xda, 0x91, - 0xaa, 0x4c, 0x55, 0xaf, 0x73, 0x26, 0xe5, 0xf4, 0xdc, 0x44, 0xd8, 0x45, 0xa2, 0x11, 0x1b, 0xd6, - 0x8e, 0x5a, 0x03, 0xa4, 0xd2, 0xbe, 0xd9, 0xcc, 0x22, 0xd2, 0xbb, 0xd5, 0x64, 0xeb, 0x2b, 0x01, - 0xe9, 0xc5, 0x7a, 0x07, 0x32, 0xce, 0x0d, 0x9d, 0x11, 0xc2, 0x58, 0x3a, 0xd1, 0xa7, 0x5d, 0xfc, - 0x4d, 0xa0, 0x17, 0x6b, 0xb9, 0x1f, 0x91, 0xd0, 0xa7, 0x19, 0xeb, 0x2c, 0xe3, 0xcc, 0xa5, 0x19, - 0x33, 0x2f, 0x9e, 0x37, 0x78, 0x7f, 0x70, 0x85, 0x9d, 0x3e, 0x23, 0x3d, 0x37, 0xe8, 0xd2, 0xd4, - 0x9f, 0x0e, 0x4a, 0x5f, 0xda, 0x4c, 0x01, 0xfe, 0x20, 0xa0, 0xba, 0x11, 0xaf, 0xf5, 0x3d, 0xcf, - 0xb2, 0x3d, 0x87, 0x2a, 0xff, 0x8f, 0x29, 0x9f, 0xbd, 0x54, 0x79, 0xc1, 0x8f, 0x6b, 0x5f, 0x00, - 0xed, 0xed, 0xa1, 0x45, 0xb0, 0xe7, 0x89, 0x69, 0xa8, 0xfb, 0x45, 0x16, 0xfe, 0xc8, 0x54, 0xac, - 0xf8, 0xb6, 0xb3, 0xb5, 0xe5, 0x6c, 0x51, 0x15, 0xff, 0xff, 0x43, 0x45, 0xc1, 0x8f, 0xab, 0x58, - 0xa2, 0xa7, 0xbe, 0xbc, 0x92, 0x02, 0xaf, 0xb1, 0x88, 0x50, 0x7e, 0x24, 0xf0, 0x04, 0xaa, 0xbe, - 0x71, 0x62, 0xf6, 0xe8, 0xca, 0x26, 0xed, 0xe2, 0x1b, 0x48, 0x7c, 0x6b, 0x79, 0x7d, 0x87, 0x3d, - 0xb2, 0xa3, 0x26, 0x1f, 0x2c, 0x8d, 0x2c, 0x0a, 0x8d, 0x87, 0x68, 0xe2, 0xfc, 0xa7, 0xbd, 0x52, - 0xbc, 0x89, 0xf0, 0xc5, 0x02, 0x17, 0x09, 0x22, 0x27, 0xdc, 0x2a, 0x12, 0x94, 0xf6, 0x44, 0x5e, - 0xa2, 0x0d, 0xd7, 0x8b, 0xc2, 0xe0, 0x02, 0xf3, 0x7c, 0xb9, 0xae, 0xc7, 0x9c, 0xd6, 0xd0, 0x18, - 0x9f, 0xa4, 0x7b, 0x59, 0x65, 0xaf, 0x3d, 0xfb, 0x29, 0xb1, 0x3f, 0xcc, 0x42, 0x47, 0x7f, 0x32, - 0x38, 0xd2, 0x2a, 0x7b, 0x60, 0x3f, 0xc1, 0x0e, 0x8f, 0x34, 0xe1, 0x04, 0xec, 0x14, 0xec, 0x0c, - 0x6c, 0xf7, 0x58, 0x13, 0xbe, 0x80, 0x7d, 0x05, 0xfb, 0x0e, 0xf6, 0x03, 0x6c, 0x00, 0xb6, 0x07, - 0x76, 0x08, 0x76, 0x72, 0xac, 0x55, 0x4e, 0xa1, 0x3d, 0x83, 0x76, 0xf7, 0x97, 0x56, 0xf9, 0x13, - 0x00, 0x00, 0xff, 0xff, 0x22, 0x3b, 0x52, 0x73, 0x5e, 0x07, 0x00, 0x00, + // 694 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c, + 0x18, 0xc7, 0xfd, 0x34, 0x4d, 0x9b, 0x5c, 0x9a, 0xf7, 0x8d, 0x4e, 0x0c, 0x56, 0x24, 0xce, 0x56, + 0xab, 0x22, 0x0f, 0x90, 0x54, 0x69, 0x54, 0xaa, 0x82, 0x18, 0x5c, 0x15, 0xa9, 0x08, 0x17, 0x64, + 0xa8, 0x2a, 0x10, 0x8b, 0xd3, 0x9a, 0x34, 0xc2, 0x89, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01, + 0x89, 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a, + 0x56, 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0x3d, 0x77, 0xcf, 0xf3, 0x79, + 0xbe, 0xf7, 0xdc, 0x73, 0x77, 0xa8, 0xb8, 0xed, 0x36, 0x6b, 0xae, 0x57, 0xae, 0xb9, 0x74, 0xb7, + 0xbc, 0x6d, 0x79, 0x94, 0xfa, 0x6d, 0xbb, 0xd4, 0xee, 0xb8, 0xd4, 0xc5, 0x99, 0x81, 0x5d, 0xbc, + 0x57, 0x6f, 0xd0, 0xdd, 0x6e, 0xad, 0xb4, 0xed, 0x36, 0xcb, 0x75, 0xb7, 0xee, 0x96, 0xb9, 0x43, + 0xad, 0xfb, 0x96, 0x5b, 0xdc, 0xe0, 0x23, 0x11, 0x38, 0xfb, 0x3b, 0x8f, 0x32, 0xab, 0x96, 0x47, + 0xad, 0x0f, 0x96, 0x8f, 0xe7, 0x51, 0x66, 0xbd, 0x45, 0x17, 0x2b, 0xcf, 0x69, 0x47, 0x06, 0x15, + 0xb4, 0x94, 0x9e, 0xed, 0xf7, 0x94, 0x74, 0x83, 0xcd, 0x99, 0xc3, 0x25, 0x3c, 0x87, 0xd2, 0x7c, + 0x2c, 0x4f, 0x70, 0x9f, 0xfc, 0x41, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5f, 0xa1, 0x9c, 0xe1, + 0x6f, 0x36, 0x5a, 0x74, 0xa9, 0xca, 0x70, 0x29, 0x15, 0xb4, 0x49, 0xfd, 0x7e, 0xbf, 0xa7, 0x2c, + 0xfe, 0x55, 0x20, 0xb5, 0x3d, 0x1a, 0x6f, 0x6c, 0x10, 0xfd, 0xd2, 0x6f, 0xdb, 0x66, 0x92, 0x85, + 0xb7, 0x50, 0x66, 0x60, 0xca, 0x93, 0x9c, 0xfb, 0x20, 0x92, 0x30, 0x16, 0x7b, 0x08, 0xc3, 0x6f, + 0xd0, 0x8c, 0xe1, 0x3f, 0x76, 0x5c, 0x2b, 0xaa, 0x41, 0x5a, 0x05, 0x6d, 0x42, 0x5f, 0xee, 0xf7, + 0x94, 0xea, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0xcf, 0xd1, 0xf0, 0x6b, 0x94, 0x1d, 0xda, 0xf2, 0x14, + 0x47, 0x3f, 0x8c, 0x74, 0x8f, 0x87, 0x8f, 0x71, 0x09, 0xe5, 0xa2, 0xdc, 0xd3, 0x2a, 0x68, 0x30, + 0x8e, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x09, 0xe5, 0x4b, 0x55, 0x39, 0xc3, 0xd1, 0x63, 0x2a, 0x8f, + 0xf0, 0x31, 0x0e, 0x3f, 0x41, 0xd3, 0x86, 0xaf, 0xfb, 0xd4, 0xf6, 0xe4, 0xac, 0x0a, 0xda, 0x8c, + 0xbe, 0xd0, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0xc0, 0x2a, 0xca, 0x6d, 0xb8, + 0x9d, 0xa6, 0xe5, 0x08, 0x1e, 0x62, 0x3c, 0x33, 0x39, 0x85, 0x37, 0xd9, 0x4e, 0xc4, 0x69, 0x7b, + 0x72, 0x4e, 0x4d, 0xdd, 0xa4, 0x27, 0x63, 0x12, 0x6e, 0xa0, 0xb4, 0xe1, 0x1b, 0x56, 0x5b, 0x9e, + 0x51, 0x53, 0x5a, 0xae, 0x72, 0xbb, 0x34, 0x8c, 0x18, 0xdc, 0xad, 0x12, 0x5f, 0x5f, 0x6b, 0xd1, + 0x8e, 0xaf, 0x57, 0xfb, 0x3d, 0x65, 0x61, 0xe4, 0x8c, 0x86, 0xd5, 0xe6, 0xe9, 0x44, 0x06, 0xfc, + 0x0d, 0xd8, 0xc5, 0x5a, 0xed, 0x7a, 0xd4, 0x6d, 0xb2, 0x8c, 0x79, 0x9e, 0x71, 0xee, 0xca, 0x8c, + 0x43, 0x2f, 0x91, 0xb7, 0xb5, 0x7f, 0x74, 0x8d, 0x9d, 0xbe, 0xa0, 0x9d, 0x46, 0xab, 0xce, 0x52, + 0x7f, 0x3e, 0x1a, 0xfb, 0xd2, 0x0e, 0x15, 0xe0, 0x8f, 0x80, 0xf2, 0x86, 0xbf, 0xd1, 0x75, 0x1c, + 0xab, 0xe6, 0xd8, 0x4c, 0xf9, 0x7f, 0x5c, 0xf9, 0xfc, 0x95, 0xca, 0x13, 0x7e, 0x42, 0xfb, 0xd2, + 0xfe, 0x91, 0x52, 0x19, 0x59, 0x04, 0x7f, 0x82, 0xb8, 0x86, 0xf3, 0x39, 0xf1, 0x27, 0xae, 0x62, + 0xad, 0x59, 0xb3, 0x77, 0x76, 0xec, 0x1d, 0xa6, 0xe2, 0xff, 0x7f, 0xa8, 0x48, 0xf8, 0x09, 0x15, + 0x2b, 0xac, 0xeb, 0xc7, 0x57, 0x92, 0xe0, 0xe1, 0x67, 0x68, 0x4a, 0x54, 0x58, 0x2e, 0xa8, 0xa0, + 0x65, 0xaf, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0xa6, 0xb8, 0x8c, 0x50, 0xdc, 0x63, 0xb8, 0x80, + 0x52, 0xef, 0x6c, 0x9f, 0xbf, 0xe2, 0x59, 0x93, 0x0d, 0xf1, 0x2d, 0x94, 0x7e, 0x6f, 0x39, 0x5d, + 0x9b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x26, 0x96, 0xa1, 0xf8, 0x08, 0x15, 0x2e, 0xf6, 0xca, + 0xb5, 0xe2, 0x4d, 0x84, 0x2f, 0x9f, 0x58, 0x92, 0x90, 0x16, 0x84, 0x3b, 0x49, 0x42, 0xae, 0x52, + 0x88, 0x6b, 0xbe, 0xd5, 0x70, 0x3c, 0xb7, 0x75, 0x89, 0x79, 0xb1, 0xfe, 0x37, 0x63, 0xce, 0x12, + 0x34, 0x25, 0x26, 0xd9, 0x5e, 0xd6, 0xf9, 0xf7, 0xc1, 0x7f, 0x39, 0x53, 0x18, 0xfa, 0xd3, 0x83, + 0x80, 0x48, 0x87, 0x01, 0x91, 0x7e, 0x06, 0x44, 0x3a, 0x0e, 0x08, 0x9c, 0x04, 0x04, 0x4e, 0x03, + 0x02, 0x67, 0x01, 0x81, 0xbd, 0x90, 0xc0, 0x97, 0x90, 0xc0, 0xd7, 0x90, 0xc0, 0xf7, 0x90, 0xc0, + 0x8f, 0x90, 0xc0, 0x41, 0x48, 0xe0, 0x30, 0x24, 0x70, 0x1c, 0x12, 0x38, 0x09, 0x89, 0x74, 0x1a, + 0x12, 0x38, 0x0b, 0x89, 0xb4, 0xf7, 0x8b, 0x48, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x0c, + 0x8a, 0xc1, 0xaf, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto index 02d207fa..f4cb9547 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go index 813ff318..a2b49f48 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestCastawayMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +101,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +115,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -136,18 +136,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -171,20 +171,20 @@ func TestWilsonMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +203,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +217,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +280,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +297,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +314,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +331,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -350,12 +350,12 @@ func TestCasttypeDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -365,12 +365,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +424,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +460,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go index 95d3262c..3ac389e4 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go @@ -28,13 +28,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -42,24 +38,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -68,7 +67,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -89,244 +88,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3789 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x36, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x6c, 0xd9, 0x72, 0x2e, - 0x5e, 0xef, 0xae, 0xe4, 0x3a, 0x8e, 0xed, 0xd0, 0xdb, 0x2c, 0x44, 0x89, 0xd6, 0xd2, 0xd0, 0xad, - 0x23, 0x71, 0x6d, 0xa7, 0x05, 0x06, 0x23, 0x72, 0x44, 0xd1, 0x1e, 0xce, 0xb0, 0x9c, 0xa1, 0x6d, - 0xed, 0x53, 0x5a, 0xb7, 0x5d, 0x6c, 0x8b, 0xde, 0x0b, 0x34, 0x9b, 0xcd, 0x6e, 0x9b, 0x00, 0x6d, - 0xd2, 0xf4, 0x96, 0xb4, 0x4d, 0x51, 0xf4, 0x29, 0x40, 0x91, 0x36, 0x4f, 0x45, 0xda, 0xa7, 0x3e, - 0x14, 0x49, 0x73, 0x01, 0x9a, 0xb6, 0x69, 0x9b, 0x02, 0x06, 0x1a, 0x34, 0x2f, 0x3d, 0xe7, 0xbf, - 0x0c, 0x87, 0x17, 0x69, 0x28, 0x05, 0x69, 0x2a, 0x80, 0x10, 0xe7, 0xfc, 0xe7, 0xfb, 0xe6, 0xcc, - 0xf9, 0xcf, 0x7f, 0xce, 0xf9, 0xff, 0x21, 0xfc, 0xd5, 0x8f, 0xc0, 0x89, 0xaa, 0x6d, 0x57, 0x4d, - 0x63, 0xb6, 0xd1, 0xb4, 0x5d, 0x7b, 0xb3, 0xb5, 0x35, 0x5b, 0x31, 0x9c, 0x72, 0xb3, 0xd6, 0x70, - 0xed, 0xe6, 0x0c, 0x93, 0x29, 0xa3, 0x5c, 0x63, 0x46, 0x6a, 0x4c, 0x2f, 0xc3, 0xd8, 0x95, 0x9a, - 0x69, 0x2c, 0x78, 0x8a, 0xeb, 0x86, 0xab, 0x5c, 0x82, 0xe8, 0x16, 0x0a, 0xb3, 0xa1, 0x13, 0x91, - 0xd3, 0xc9, 0x73, 0x0f, 0xcd, 0x74, 0x81, 0x66, 0x3a, 0x11, 0x6b, 0x24, 0x56, 0x19, 0x62, 0xfa, - 0x83, 0x28, 0x8c, 0xf7, 0x19, 0x55, 0x14, 0x88, 0x5a, 0x7a, 0x9d, 0x18, 0x43, 0xa7, 0x13, 0x2a, - 0xfb, 0xae, 0x64, 0x61, 0xb8, 0xa1, 0x97, 0x6f, 0xe9, 0x55, 0x23, 0x1b, 0x66, 0x62, 0x79, 0xa9, - 0x1c, 0x07, 0xa8, 0x18, 0x0d, 0xc3, 0xaa, 0x18, 0x56, 0x79, 0x27, 0x1b, 0x41, 0x2b, 0x12, 0xaa, - 0x4f, 0xa2, 0x7c, 0x05, 0xc6, 0x1a, 0xad, 0x4d, 0xb3, 0x56, 0xd6, 0x7c, 0x6a, 0x80, 0x6a, 0x31, - 0x35, 0xc3, 0x07, 0x16, 0xda, 0xca, 0x8f, 0xc2, 0xe8, 0x1d, 0x43, 0xbf, 0xe5, 0x57, 0x4d, 0x32, - 0xd5, 0x34, 0x89, 0x7d, 0x8a, 0xf3, 0x90, 0xaa, 0x1b, 0x8e, 0x83, 0x06, 0x68, 0xee, 0x4e, 0xc3, - 0xc8, 0x46, 0xd9, 0xd3, 0x9f, 0xe8, 0x79, 0xfa, 0xee, 0x27, 0x4f, 0x0a, 0xd4, 0x06, 0x82, 0x94, - 0x39, 0x48, 0x18, 0x56, 0xab, 0xce, 0x19, 0x62, 0xbb, 0xf8, 0xaf, 0x80, 0x1a, 0xdd, 0x2c, 0x71, - 0x82, 0x09, 0x8a, 0x61, 0xc7, 0x68, 0xde, 0xae, 0x95, 0x8d, 0xec, 0x10, 0x23, 0x78, 0xb4, 0x87, - 0x60, 0x9d, 0x8f, 0x77, 0x73, 0x48, 0x1c, 0x3e, 0x4a, 0xc2, 0xb8, 0xeb, 0x1a, 0x96, 0x53, 0xb3, - 0xad, 0xec, 0x30, 0x23, 0x79, 0xb8, 0xcf, 0x2c, 0x1a, 0x66, 0xa5, 0x9b, 0xa2, 0x8d, 0x53, 0x2e, - 0xc0, 0xb0, 0xdd, 0x70, 0xf1, 0x9b, 0x93, 0x8d, 0xe3, 0xfc, 0x24, 0xcf, 0x3d, 0xd8, 0x37, 0x10, - 0x56, 0xb9, 0x8e, 0x2a, 0x95, 0x95, 0x22, 0x64, 0x1c, 0xbb, 0xd5, 0x2c, 0x1b, 0x5a, 0xd9, 0xae, - 0x18, 0x5a, 0xcd, 0xda, 0xb2, 0xb3, 0x09, 0x46, 0x30, 0xd5, 0xfb, 0x20, 0x4c, 0x71, 0x1e, 0xf5, - 0x8a, 0xa8, 0xa6, 0xa6, 0x9d, 0x8e, 0x6b, 0xe5, 0x30, 0x0c, 0x39, 0x3b, 0x96, 0xab, 0xdf, 0xcd, - 0xa6, 0x58, 0x84, 0x88, 0xab, 0xe9, 0xff, 0x8e, 0xc1, 0xe8, 0x20, 0x21, 0x76, 0x19, 0x62, 0x5b, - 0xf4, 0x94, 0x18, 0x60, 0xfb, 0xf0, 0x01, 0xc7, 0x74, 0x3a, 0x71, 0xe8, 0x80, 0x4e, 0x9c, 0x83, - 0xa4, 0x65, 0x38, 0xae, 0x51, 0xe1, 0x11, 0x11, 0x19, 0x30, 0xa6, 0x80, 0x83, 0x7a, 0x43, 0x2a, - 0x7a, 0xa0, 0x90, 0xba, 0x0e, 0xa3, 0x9e, 0x49, 0x5a, 0x53, 0xb7, 0xaa, 0x32, 0x36, 0x67, 0x83, - 0x2c, 0x99, 0x29, 0x48, 0x9c, 0x4a, 0x30, 0x35, 0x6d, 0x74, 0x5c, 0x2b, 0x0b, 0x00, 0xb6, 0x65, - 0xd8, 0x5b, 0xb8, 0xbc, 0xca, 0x26, 0xc6, 0x49, 0x7f, 0x2f, 0xad, 0x92, 0x4a, 0x8f, 0x97, 0x6c, - 0x2e, 0x2d, 0x9b, 0xca, 0x13, 0xed, 0x50, 0x1b, 0xde, 0x25, 0x52, 0x96, 0xf9, 0x22, 0xeb, 0x89, - 0xb6, 0x12, 0xa4, 0x9b, 0x06, 0xc5, 0x3d, 0xba, 0x98, 0x3f, 0x59, 0x82, 0x19, 0x31, 0x13, 0xf8, - 0x64, 0xaa, 0x80, 0xf1, 0x07, 0x1b, 0x69, 0xfa, 0x2f, 0x95, 0x53, 0xe0, 0x09, 0x34, 0x16, 0x56, - 0xc0, 0xb2, 0x50, 0x4a, 0x0a, 0x57, 0x50, 0x36, 0x79, 0x09, 0xd2, 0x9d, 0xee, 0x51, 0x26, 0x20, - 0xe6, 0xb8, 0x7a, 0xd3, 0x65, 0x51, 0x18, 0x53, 0xf9, 0x85, 0x92, 0x81, 0x08, 0x26, 0x19, 0x96, - 0xe5, 0x62, 0x2a, 0x7d, 0x9d, 0xbc, 0x08, 0x23, 0x1d, 0xb7, 0x1f, 0x14, 0x38, 0xfd, 0xcc, 0x10, - 0x4c, 0xf4, 0x8b, 0xb9, 0xbe, 0xe1, 0x8f, 0xcb, 0x07, 0x23, 0x60, 0xd3, 0x68, 0x62, 0xdc, 0x11, - 0x83, 0xb8, 0xc2, 0x88, 0x8a, 0x99, 0xfa, 0xa6, 0x61, 0x62, 0x34, 0x85, 0x4e, 0xa7, 0xcf, 0x7d, - 0x65, 0xa0, 0xa8, 0x9e, 0x59, 0x22, 0x88, 0xca, 0x91, 0xca, 0x93, 0x10, 0x15, 0x29, 0x8e, 0x18, - 0xce, 0x0c, 0xc6, 0x40, 0xb1, 0xa8, 0x32, 0x9c, 0xf2, 0x25, 0x48, 0xd0, 0x7f, 0xee, 0xdb, 0x21, - 0x66, 0x73, 0x9c, 0x04, 0xe4, 0x57, 0x65, 0x12, 0xe2, 0x2c, 0xcc, 0x2a, 0x86, 0x2c, 0x0d, 0xde, - 0x35, 0x4d, 0x4c, 0xc5, 0xd8, 0xd2, 0x5b, 0xa6, 0xab, 0xdd, 0xd6, 0xcd, 0x96, 0xc1, 0x02, 0x06, - 0x27, 0x46, 0x08, 0xbf, 0x45, 0x32, 0x65, 0x0a, 0x92, 0x3c, 0x2a, 0x6b, 0x88, 0xb9, 0xcb, 0xb2, - 0x4f, 0x4c, 0xe5, 0x81, 0x5a, 0x24, 0x09, 0xdd, 0xfe, 0xa6, 0x83, 0x6b, 0x41, 0x4c, 0x2d, 0xbb, - 0x05, 0x09, 0xd8, 0xed, 0x2f, 0x76, 0x27, 0xbe, 0x63, 0xfd, 0x1f, 0xaf, 0x3b, 0x16, 0xa7, 0xff, - 0x3c, 0x0c, 0x51, 0xb6, 0xde, 0x46, 0x21, 0xb9, 0x71, 0x63, 0xad, 0xa0, 0x2d, 0xac, 0x96, 0xf2, - 0x4b, 0x85, 0x4c, 0x48, 0x49, 0x03, 0x30, 0xc1, 0x95, 0xa5, 0xd5, 0xb9, 0x8d, 0x4c, 0xd8, 0xbb, - 0x2e, 0xae, 0x6c, 0x5c, 0x38, 0x9f, 0x89, 0x78, 0x80, 0x12, 0x17, 0x44, 0xfd, 0x0a, 0x8f, 0x9d, - 0xcb, 0xc4, 0x30, 0x12, 0x52, 0x9c, 0xa0, 0x78, 0xbd, 0xb0, 0x80, 0x1a, 0x43, 0x9d, 0x12, 0xd4, - 0x19, 0x56, 0x46, 0x20, 0xc1, 0x24, 0xf9, 0xd5, 0xd5, 0xa5, 0x4c, 0xdc, 0xe3, 0x5c, 0xdf, 0x50, - 0x8b, 0x2b, 0x8b, 0x99, 0x84, 0xc7, 0xb9, 0xa8, 0xae, 0x96, 0xd6, 0x32, 0xe0, 0x31, 0x2c, 0x17, - 0xd6, 0xd7, 0xe7, 0x16, 0x0b, 0x99, 0xa4, 0xa7, 0x91, 0xbf, 0xb1, 0x51, 0x58, 0xcf, 0xa4, 0x3a, - 0xcc, 0xc2, 0x5b, 0x8c, 0x78, 0xb7, 0x28, 0xac, 0x94, 0x96, 0x33, 0x69, 0x65, 0x0c, 0x46, 0xf8, - 0x2d, 0xa4, 0x11, 0xa3, 0x5d, 0x22, 0xb4, 0x34, 0xd3, 0x36, 0x84, 0xb3, 0x8c, 0x75, 0x08, 0x50, - 0x43, 0x99, 0x9e, 0x87, 0x18, 0x8b, 0x2e, 0x8c, 0xe2, 0xf4, 0xd2, 0x5c, 0xbe, 0xb0, 0xa4, 0xad, - 0xae, 0x6d, 0x14, 0x57, 0x57, 0xe6, 0x96, 0xd0, 0x77, 0x9e, 0x4c, 0x2d, 0xfc, 0x58, 0xa9, 0xa8, - 0x16, 0x16, 0xd0, 0x7f, 0x3e, 0xd9, 0x5a, 0x61, 0x6e, 0x03, 0x65, 0x91, 0xe9, 0x33, 0x30, 0xd1, - 0x2f, 0xcf, 0xf4, 0x5b, 0x19, 0xd3, 0x2f, 0x84, 0x60, 0xbc, 0x4f, 0xca, 0xec, 0xbb, 0x8a, 0xbe, - 0x01, 0x31, 0x1e, 0x69, 0xbc, 0x88, 0x7c, 0xb9, 0x6f, 0xee, 0x65, 0x71, 0xd7, 0x53, 0x48, 0x18, - 0xce, 0x5f, 0x48, 0x23, 0xbb, 0x14, 0x52, 0xa2, 0xe8, 0x09, 0xa7, 0x7b, 0x21, 0xc8, 0xee, 0xc6, - 0x1d, 0xb0, 0xde, 0xc3, 0x1d, 0xeb, 0xfd, 0x72, 0xb7, 0x01, 0x27, 0x77, 0x7f, 0x86, 0x1e, 0x2b, - 0x5e, 0x0c, 0xc1, 0xe1, 0xfe, 0xfd, 0x46, 0x5f, 0x1b, 0x9e, 0x84, 0xa1, 0xba, 0xe1, 0x6e, 0xdb, - 0xb2, 0xe6, 0x3e, 0xd2, 0x27, 0x93, 0xd3, 0x70, 0xb7, 0xaf, 0x04, 0xca, 0x5f, 0x0a, 0x22, 0xbb, - 0x35, 0x0d, 0xdc, 0x9a, 0x1e, 0x4b, 0xbf, 0x1b, 0x86, 0x07, 0xfa, 0x92, 0xf7, 0x35, 0xf4, 0x18, - 0x40, 0xcd, 0x6a, 0xb4, 0x5c, 0x5e, 0x57, 0x79, 0x9a, 0x49, 0x30, 0x09, 0x5b, 0xc2, 0x94, 0x42, - 0x5a, 0xae, 0x37, 0x1e, 0x61, 0xe3, 0xc0, 0x45, 0x4c, 0xe1, 0x52, 0xdb, 0xd0, 0x28, 0x33, 0xf4, - 0xf8, 0x2e, 0x4f, 0xda, 0x53, 0xb2, 0xce, 0x42, 0xa6, 0x6c, 0xd6, 0x0c, 0xcb, 0xd5, 0x1c, 0xb7, - 0x69, 0xe8, 0xf5, 0x9a, 0x55, 0x65, 0x79, 0x34, 0x9e, 0x8b, 0x6d, 0xe9, 0xa6, 0x63, 0xa8, 0xa3, - 0x7c, 0x78, 0x5d, 0x8e, 0x12, 0x82, 0x15, 0x8b, 0xa6, 0x0f, 0x31, 0xd4, 0x81, 0xe0, 0xc3, 0x1e, - 0x62, 0xfa, 0xef, 0x87, 0x21, 0xe9, 0xeb, 0xce, 0x94, 0x93, 0x90, 0xba, 0xa9, 0xdf, 0xd6, 0x35, - 0xd9, 0x71, 0x73, 0x4f, 0x24, 0x49, 0xb6, 0x26, 0xba, 0xee, 0xb3, 0x30, 0xc1, 0x54, 0xf0, 0x19, - 0xf1, 0x46, 0x65, 0x53, 0x77, 0x1c, 0xe6, 0xb4, 0x38, 0x53, 0x55, 0x68, 0x6c, 0x95, 0x86, 0xe6, - 0xe5, 0x88, 0xf2, 0x38, 0x8c, 0x33, 0x44, 0x1d, 0x13, 0x6f, 0xad, 0x61, 0x1a, 0x1a, 0xed, 0x01, - 0x1c, 0x96, 0x4f, 0x3d, 0xcb, 0xc6, 0x48, 0x63, 0x59, 0x28, 0x90, 0x45, 0x8e, 0xb2, 0x08, 0xc7, - 0x18, 0xac, 0x6a, 0x58, 0x46, 0x53, 0x77, 0x0d, 0xcd, 0xf8, 0xc9, 0x16, 0xea, 0x6a, 0xba, 0x55, - 0xd1, 0xb6, 0x75, 0x67, 0x3b, 0x3b, 0xe1, 0x27, 0x38, 0x4a, 0xba, 0x8b, 0x42, 0xb5, 0xc0, 0x34, - 0xe7, 0xac, 0xca, 0x37, 0x51, 0x4f, 0xc9, 0xc1, 0x61, 0x46, 0x84, 0x4e, 0xc1, 0x67, 0xd6, 0xca, - 0xdb, 0x46, 0xf9, 0x96, 0xd6, 0x72, 0xb7, 0x2e, 0x65, 0xbf, 0xe4, 0x67, 0x60, 0x46, 0xae, 0x33, - 0x9d, 0x79, 0x52, 0x29, 0xa1, 0x86, 0xb2, 0x0e, 0x29, 0x9a, 0x8f, 0x7a, 0xed, 0xdb, 0x68, 0xb6, - 0xdd, 0x64, 0x35, 0x22, 0xdd, 0x67, 0x71, 0xfb, 0x9c, 0x38, 0xb3, 0x2a, 0x00, 0xcb, 0xd8, 0x9f, - 0xe6, 0x62, 0xeb, 0x6b, 0x85, 0xc2, 0x82, 0x9a, 0x94, 0x2c, 0x57, 0xec, 0x26, 0xc5, 0x54, 0xd5, - 0xf6, 0x7c, 0x9c, 0xe4, 0x31, 0x55, 0xb5, 0xa5, 0x87, 0xd1, 0x5f, 0xe5, 0x32, 0x7f, 0x6c, 0xdc, - 0xbb, 0x88, 0x66, 0xdd, 0xc9, 0x66, 0x3a, 0xfc, 0x55, 0x2e, 0x2f, 0x72, 0x05, 0x11, 0xe6, 0x0e, - 0x2e, 0x89, 0x07, 0xda, 0xfe, 0xf2, 0x03, 0xc7, 0x7a, 0x9e, 0xb2, 0x1b, 0x8a, 0x77, 0x6c, 0xec, - 0xf4, 0x02, 0x95, 0x8e, 0x3b, 0x36, 0x76, 0xba, 0x61, 0x0f, 0xb3, 0x0d, 0x58, 0xd3, 0x28, 0xa3, - 0xcb, 0x2b, 0xd9, 0x23, 0x7e, 0x6d, 0xdf, 0x80, 0x32, 0x8b, 0x81, 0x5c, 0xd6, 0x0c, 0x4b, 0xdf, - 0xc4, 0xb9, 0xd7, 0x9b, 0xf8, 0xc5, 0xc9, 0x4e, 0xf9, 0x95, 0xd3, 0xe5, 0x72, 0x81, 0x8d, 0xce, - 0xb1, 0x41, 0xe5, 0x0c, 0x8c, 0xd9, 0x9b, 0x37, 0xcb, 0x3c, 0xb8, 0x34, 0xe4, 0xd9, 0xaa, 0xdd, - 0xcd, 0x3e, 0xc4, 0xdc, 0x34, 0x4a, 0x03, 0x2c, 0xb4, 0xd6, 0x98, 0x58, 0xf9, 0x32, 0x92, 0x3b, - 0xdb, 0x7a, 0xb3, 0xc1, 0x8a, 0xb4, 0x83, 0x4e, 0x35, 0xb2, 0x0f, 0x73, 0x55, 0x2e, 0x5f, 0x91, - 0x62, 0xa5, 0x00, 0x53, 0xf4, 0xf0, 0x96, 0x6e, 0xd9, 0x5a, 0xcb, 0x31, 0xb4, 0xb6, 0x89, 0xde, - 0x5c, 0x3c, 0x42, 0x66, 0xa9, 0x0f, 0x4a, 0xb5, 0x92, 0x83, 0xc9, 0x4c, 0x2a, 0xc9, 0xe9, 0xb9, - 0x0e, 0x13, 0x2d, 0xab, 0x66, 0x61, 0x88, 0xe3, 0x08, 0x81, 0xf9, 0x82, 0xcd, 0xfe, 0xf3, 0xf0, - 0x2e, 0x4d, 0x77, 0xc9, 0xaf, 0xcd, 0x83, 0x44, 0x1d, 0x6f, 0xf5, 0x0a, 0xa7, 0x73, 0x90, 0xf2, - 0xc7, 0x8e, 0x92, 0x00, 0x1e, 0x3d, 0x58, 0xdd, 0xb0, 0xa2, 0xce, 0xaf, 0x2e, 0x50, 0x2d, 0x7c, - 0xaa, 0x80, 0x85, 0x0d, 0x6b, 0xf2, 0x52, 0x71, 0xa3, 0xa0, 0xa9, 0xa5, 0x95, 0x8d, 0xe2, 0x72, - 0x21, 0x13, 0x39, 0x93, 0x88, 0x7f, 0x38, 0x9c, 0x79, 0x1a, 0xff, 0xc2, 0xd3, 0x6f, 0x84, 0x21, - 0xdd, 0xd9, 0x07, 0x2b, 0x5f, 0x87, 0x23, 0x72, 0xd3, 0xea, 0x18, 0xae, 0x76, 0xa7, 0xd6, 0x64, - 0xe1, 0x5c, 0xd7, 0x79, 0x27, 0xe9, 0xcd, 0xc4, 0x84, 0xd0, 0xc2, 0xed, 0xfd, 0x35, 0xd4, 0xb9, - 0xc2, 0x54, 0x94, 0x25, 0x98, 0x42, 0x97, 0x61, 0xaf, 0x69, 0x55, 0xf4, 0x66, 0x45, 0x6b, 0x1f, - 0x17, 0x68, 0x7a, 0x19, 0xe3, 0xc0, 0xb1, 0x79, 0x25, 0xf1, 0x58, 0x1e, 0xb4, 0xec, 0x75, 0xa1, - 0xdc, 0x4e, 0xb1, 0x73, 0x42, 0xb5, 0x2b, 0x6a, 0x22, 0xbb, 0x45, 0x0d, 0xf6, 0x5e, 0x75, 0xbd, - 0x81, 0x61, 0xe3, 0x36, 0x77, 0x58, 0xf7, 0x16, 0x57, 0xe3, 0x28, 0x28, 0xd0, 0xf5, 0xe7, 0x37, - 0x07, 0x7e, 0x3f, 0xfe, 0x63, 0x04, 0x52, 0xfe, 0x0e, 0x8e, 0x1a, 0xe2, 0x32, 0x4b, 0xf3, 0x21, - 0x96, 0x05, 0x4e, 0xed, 0xd9, 0xef, 0xcd, 0xcc, 0x53, 0xfe, 0xcf, 0x0d, 0xf1, 0xbe, 0x4a, 0xe5, - 0x48, 0xaa, 0xbd, 0x14, 0x6b, 0x06, 0xef, 0xd6, 0xe3, 0xaa, 0xb8, 0xc2, 0x64, 0x37, 0x74, 0xd3, - 0x61, 0xdc, 0x43, 0x8c, 0xfb, 0xa1, 0xbd, 0xb9, 0xaf, 0xae, 0x33, 0xf2, 0xc4, 0xd5, 0x75, 0x6d, - 0x65, 0x55, 0x5d, 0x9e, 0x5b, 0x52, 0x05, 0x5c, 0x39, 0x0a, 0x51, 0x53, 0xff, 0xf6, 0x4e, 0x67, - 0xa5, 0x60, 0xa2, 0x41, 0x1d, 0x8f, 0x0c, 0x74, 0xe4, 0xd1, 0x99, 0x9f, 0x99, 0xe8, 0x73, 0x0c, - 0xfd, 0x59, 0x88, 0x31, 0x7f, 0x29, 0x00, 0xc2, 0x63, 0x99, 0x43, 0x4a, 0x1c, 0xa2, 0xf3, 0xab, - 0x2a, 0x85, 0x3f, 0xc6, 0x3b, 0x97, 0x6a, 0x6b, 0xc5, 0xc2, 0x3c, 0xae, 0x80, 0xe9, 0xc7, 0x61, - 0x88, 0x3b, 0x81, 0x96, 0x86, 0xe7, 0x06, 0x04, 0xf1, 0x4b, 0xc1, 0x11, 0x92, 0xa3, 0xa5, 0xe5, - 0x7c, 0x41, 0xcd, 0x84, 0xfd, 0xd3, 0xfb, 0x97, 0x21, 0x48, 0xfa, 0x1a, 0x2a, 0x2a, 0xe5, 0xba, - 0x69, 0xda, 0x77, 0x34, 0xdd, 0xac, 0x61, 0x86, 0xe2, 0xf3, 0x03, 0x4c, 0x34, 0x47, 0x92, 0x41, - 0xfd, 0xf7, 0x7f, 0x12, 0x9b, 0x3f, 0x0c, 0x41, 0xa6, 0xbb, 0x19, 0xeb, 0x32, 0x30, 0xf4, 0x85, - 0x1a, 0xf8, 0x5c, 0x08, 0xd2, 0x9d, 0x1d, 0x58, 0x97, 0x79, 0x27, 0xbf, 0x50, 0xf3, 0xbe, 0x1f, - 0x82, 0x91, 0x8e, 0xbe, 0xeb, 0xff, 0x95, 0x75, 0xcf, 0x46, 0x60, 0xbc, 0x0f, 0x0e, 0x13, 0x10, - 0x6f, 0x50, 0x79, 0xcf, 0xfc, 0xb5, 0x41, 0xee, 0x35, 0x43, 0xf5, 0x6f, 0x4d, 0x6f, 0xba, 0xa2, - 0x9f, 0xc5, 0x7a, 0x59, 0xab, 0x60, 0x52, 0xad, 0x6d, 0xd5, 0xb0, 0x7d, 0xe3, 0x3b, 0x16, 0xde, - 0xb5, 0x8e, 0xb6, 0xe5, 0x7c, 0x7b, 0xfc, 0x55, 0x50, 0x1a, 0xb6, 0x53, 0x73, 0x6b, 0xb7, 0xe9, - 0x78, 0x4e, 0x6e, 0xa4, 0xa9, 0x8b, 0x8d, 0xaa, 0x19, 0x39, 0x52, 0xb4, 0x5c, 0x4f, 0xdb, 0x32, - 0xaa, 0x7a, 0x97, 0x36, 0xa5, 0xa1, 0x88, 0x9a, 0x91, 0x23, 0x9e, 0x36, 0x36, 0x9a, 0x15, 0xbb, - 0x45, 0x0d, 0x01, 0xd7, 0xa3, 0xac, 0x17, 0x52, 0x93, 0x5c, 0xe6, 0xa9, 0x88, 0x8e, 0xad, 0xbd, - 0x83, 0x4f, 0xa9, 0x49, 0x2e, 0xe3, 0x2a, 0x8f, 0xc2, 0xa8, 0x5e, 0xad, 0x36, 0x89, 0x5c, 0x12, - 0xf1, 0x36, 0x34, 0xed, 0x89, 0x99, 0xe2, 0xe4, 0x55, 0x88, 0x4b, 0x3f, 0x50, 0x61, 0x21, 0x4f, - 0x60, 0xcd, 0x67, 0xe7, 0x28, 0x61, 0xda, 0xd4, 0x5b, 0x72, 0x10, 0x6f, 0x5a, 0x73, 0xb4, 0xf6, - 0x81, 0x5e, 0x18, 0xc7, 0xe3, 0x6a, 0xb2, 0xe6, 0x78, 0x27, 0x38, 0xd3, 0x2f, 0x62, 0x79, 0xed, - 0x3c, 0x90, 0x54, 0x16, 0x20, 0x6e, 0xda, 0x18, 0x1f, 0x84, 0xe0, 0xa7, 0xe1, 0xa7, 0x03, 0xce, - 0x30, 0x67, 0x96, 0x84, 0xbe, 0xea, 0x21, 0x27, 0xff, 0x36, 0x04, 0x71, 0x29, 0xc6, 0x42, 0x11, - 0x6d, 0xe8, 0xee, 0x36, 0xa3, 0x8b, 0xe5, 0xc3, 0x99, 0x90, 0xca, 0xae, 0x49, 0x8e, 0xdd, 0x8c, - 0xc5, 0x42, 0x40, 0xc8, 0xe9, 0x9a, 0xe6, 0xd5, 0x34, 0xf4, 0x0a, 0x6b, 0x70, 0xed, 0x7a, 0x1d, - 0x67, 0xd2, 0x91, 0xf3, 0x2a, 0xe4, 0xf3, 0x42, 0x4c, 0xe7, 0xe2, 0x6e, 0x53, 0xaf, 0x99, 0x1d, - 0xba, 0x51, 0xa6, 0x9b, 0x91, 0x03, 0x9e, 0x72, 0x0e, 0x8e, 0x4a, 0xde, 0x8a, 0xe1, 0xea, 0xd8, - 0x3c, 0x57, 0xda, 0xa0, 0x21, 0x76, 0xda, 0x75, 0x44, 0x28, 0x2c, 0x88, 0x71, 0x89, 0xcd, 0x5f, - 0xc7, 0x46, 0xd6, 0xae, 0x77, 0x7b, 0x22, 0x9f, 0xe9, 0xda, 0x77, 0x39, 0xdf, 0x0c, 0x3d, 0x05, - 0xed, 0xa6, 0xe2, 0x85, 0x70, 0x64, 0x71, 0x2d, 0xff, 0x72, 0x78, 0x72, 0x91, 0xe3, 0xd6, 0xa4, - 0x07, 0x55, 0x63, 0xcb, 0x34, 0xca, 0xe4, 0x1d, 0x78, 0xfe, 0x14, 0x7c, 0xad, 0x5a, 0x73, 0xb7, - 0x5b, 0x9b, 0x33, 0x78, 0x87, 0xd9, 0xaa, 0x5d, 0xb5, 0xdb, 0xaf, 0x33, 0xe8, 0x8a, 0x5d, 0xb0, - 0x6f, 0xe2, 0x95, 0x46, 0xc2, 0x93, 0x4e, 0x06, 0xbe, 0xff, 0xc8, 0xad, 0xc0, 0xb8, 0x50, 0xd6, - 0xd8, 0x99, 0x2a, 0x6f, 0x41, 0x95, 0x3d, 0x37, 0xe4, 0xd9, 0x57, 0x3f, 0x60, 0x25, 0x41, 0x1d, - 0x13, 0x50, 0x1a, 0xe3, 0x4d, 0x6a, 0x4e, 0x85, 0x07, 0x3a, 0xf8, 0x78, 0x0c, 0xe3, 0x96, 0x7b, - 0x6f, 0xc6, 0x37, 0x04, 0xe3, 0xb8, 0x8f, 0x71, 0x5d, 0x40, 0x73, 0xf3, 0x30, 0xb2, 0x1f, 0xae, - 0xbf, 0x16, 0x5c, 0x29, 0xc3, 0x4f, 0xb2, 0x08, 0xa3, 0x8c, 0xa4, 0xdc, 0x72, 0x5c, 0xbb, 0xce, - 0x12, 0xc4, 0xde, 0x34, 0x7f, 0xf3, 0x01, 0x0f, 0xaa, 0x34, 0xc1, 0xe6, 0x3d, 0x54, 0xee, 0x5b, - 0x30, 0x41, 0x12, 0xb6, 0x06, 0xfd, 0x6c, 0xc1, 0x47, 0x08, 0xd9, 0xbf, 0xbb, 0xc7, 0x63, 0x6f, - 0xdc, 0x23, 0xf0, 0xf1, 0xfa, 0x66, 0xa2, 0x6a, 0xb8, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x9a, 0xca, - 0x9e, 0xef, 0x18, 0xb2, 0xdf, 0xfb, 0xa8, 0x73, 0x26, 0x16, 0x39, 0x72, 0xce, 0x34, 0x73, 0x25, - 0x38, 0xd2, 0x67, 0x66, 0x07, 0xe0, 0x7c, 0x56, 0x70, 0x4e, 0xf4, 0xcc, 0x2e, 0xd1, 0xae, 0x81, - 0x94, 0x7b, 0xf3, 0x31, 0x00, 0xe7, 0xf7, 0x05, 0xa7, 0x22, 0xb0, 0x72, 0x5a, 0x88, 0xf1, 0x2a, - 0x8c, 0xe1, 0x4e, 0x7d, 0xd3, 0x76, 0xc4, 0xbe, 0x77, 0x00, 0xba, 0xe7, 0x04, 0xdd, 0xa8, 0x00, - 0xb2, 0x5d, 0x30, 0x71, 0x3d, 0x01, 0xf1, 0x2d, 0xdc, 0x00, 0x0d, 0x40, 0xf1, 0x03, 0x41, 0x31, - 0x4c, 0xfa, 0x04, 0x9d, 0x83, 0x54, 0xd5, 0x16, 0x69, 0x38, 0x18, 0xfe, 0x43, 0x01, 0x4f, 0x4a, - 0x8c, 0xa0, 0x68, 0xd8, 0x8d, 0x96, 0x49, 0x39, 0x3a, 0x98, 0xe2, 0xb7, 0x24, 0x85, 0xc4, 0x08, - 0x8a, 0x7d, 0xb8, 0xf5, 0xb7, 0x25, 0x85, 0xe3, 0xf3, 0xe7, 0x37, 0xe8, 0xac, 0xd7, 0xdc, 0xb1, - 0xad, 0x41, 0x8c, 0x78, 0x5e, 0x30, 0x80, 0x80, 0x10, 0xc1, 0x65, 0x48, 0x0c, 0x3a, 0x11, 0xbf, - 0x23, 0xe0, 0x71, 0x43, 0xce, 0x00, 0xae, 0x33, 0x99, 0x64, 0xe8, 0xdd, 0x4a, 0x30, 0xc5, 0xef, - 0x0a, 0x8a, 0xb4, 0x0f, 0x26, 0x1e, 0xc3, 0x35, 0x1c, 0x17, 0xb7, 0xea, 0x03, 0x90, 0xbc, 0x28, - 0x1f, 0x43, 0x40, 0x84, 0x2b, 0x37, 0x0d, 0xab, 0xbc, 0x3d, 0x18, 0xc3, 0x4b, 0xd2, 0x95, 0x12, - 0x43, 0x14, 0x98, 0x79, 0xea, 0x7a, 0x13, 0x37, 0xd7, 0xe6, 0x40, 0xd3, 0xf1, 0x7b, 0x82, 0x23, - 0xe5, 0x81, 0x84, 0x47, 0x5a, 0xd6, 0x7e, 0x68, 0x5e, 0x96, 0x1e, 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, - 0x9d, 0x29, 0x75, 0x12, 0xfb, 0x61, 0xfb, 0x7d, 0xb9, 0xf4, 0x38, 0x76, 0xd9, 0xcf, 0x88, 0x33, - 0xed, 0xe0, 0x16, 0x7c, 0x10, 0x9a, 0x3f, 0x90, 0x33, 0xcd, 0x00, 0x04, 0xbe, 0x01, 0x47, 0xfb, - 0xa6, 0xfa, 0x01, 0xc8, 0xfe, 0x50, 0x90, 0x1d, 0xee, 0x93, 0xee, 0x45, 0x4a, 0xd8, 0x2f, 0xe5, - 0x1f, 0xc9, 0x94, 0x60, 0x74, 0x71, 0xad, 0x51, 0x1b, 0xeb, 0xe8, 0x5b, 0xfb, 0xf3, 0xda, 0x1f, - 0x4b, 0xaf, 0x71, 0x6c, 0x87, 0xd7, 0x36, 0xe0, 0xb0, 0x60, 0xdc, 0xdf, 0xbc, 0xbe, 0x22, 0x13, - 0x2b, 0x47, 0x97, 0x3a, 0x67, 0xf7, 0xc7, 0x61, 0xd2, 0x73, 0xa7, 0xec, 0xc0, 0x1c, 0x8d, 0x0e, - 0x06, 0x82, 0x99, 0x5f, 0x15, 0xcc, 0x32, 0xe3, 0x7b, 0x2d, 0x9c, 0xb3, 0xac, 0x37, 0x88, 0xfc, - 0x3a, 0x64, 0x25, 0x79, 0xcb, 0xc2, 0x06, 0xdf, 0xae, 0x5a, 0x38, 0x8d, 0x95, 0x01, 0xa8, 0xff, - 0xa4, 0x6b, 0xaa, 0x4a, 0x3e, 0x38, 0x31, 0x17, 0x21, 0xe3, 0xf5, 0x1b, 0x5a, 0xad, 0xde, 0xb0, - 0xb1, 0xb5, 0xdc, 0x9b, 0xf1, 0x4f, 0xe5, 0x4c, 0x79, 0xb8, 0x22, 0x83, 0xe5, 0x0a, 0x90, 0x66, - 0x97, 0x83, 0x86, 0xe4, 0x9f, 0x09, 0xa2, 0x91, 0x36, 0x4a, 0x24, 0x0e, 0xec, 0x94, 0xb0, 0xe7, - 0x1d, 0x24, 0xff, 0xbd, 0x26, 0x13, 0x87, 0x80, 0xf0, 0xe8, 0x1b, 0xed, 0xaa, 0xc4, 0x4a, 0xd0, - 0xeb, 0xd7, 0xec, 0x4f, 0xdd, 0x17, 0x6b, 0xb6, 0xb3, 0x10, 0xe7, 0x96, 0xc8, 0x3d, 0x9d, 0xe5, - 0x32, 0x98, 0xec, 0xde, 0x7d, 0xcf, 0x43, 0x1d, 0xd5, 0x32, 0x77, 0x05, 0x46, 0x3a, 0x4a, 0x65, - 0x30, 0xd5, 0xcf, 0x08, 0xaa, 0x94, 0xbf, 0x52, 0xe6, 0x1e, 0x87, 0x28, 0x95, 0xbd, 0x60, 0xf8, - 0xcf, 0x0a, 0x38, 0x53, 0xcf, 0xfd, 0x28, 0xc4, 0x65, 0xb9, 0x0b, 0x86, 0xfe, 0x9c, 0x80, 0x7a, - 0x10, 0x82, 0xcb, 0x52, 0x17, 0x0c, 0xff, 0x8e, 0x84, 0x4b, 0x08, 0xc1, 0x07, 0x77, 0xe1, 0xeb, - 0xbf, 0x10, 0x15, 0xe9, 0x4a, 0xfa, 0x8e, 0xde, 0xf9, 0xf0, 0x1a, 0x17, 0x8c, 0xfe, 0xae, 0xb8, - 0xb9, 0x44, 0xe4, 0x2e, 0x42, 0x6c, 0x40, 0x87, 0xff, 0xa2, 0x80, 0x72, 0x7d, 0xac, 0x20, 0x49, - 0x5f, 0x5d, 0x0b, 0x86, 0xff, 0x92, 0x80, 0xfb, 0x51, 0x64, 0xba, 0xa8, 0x6b, 0xc1, 0x04, 0xbf, - 0x2c, 0x4d, 0x17, 0x08, 0x72, 0x9b, 0x2c, 0x69, 0xc1, 0xe8, 0x5f, 0x91, 0x5e, 0x97, 0x10, 0x5c, - 0x4d, 0x09, 0x2f, 0x4d, 0x05, 0xe3, 0x7f, 0x55, 0xe0, 0xdb, 0x18, 0xf2, 0x80, 0x2f, 0x4d, 0x06, - 0x53, 0xfc, 0x9a, 0xf4, 0x80, 0x0f, 0x45, 0xcb, 0xa8, 0xbb, 0xf4, 0x05, 0x33, 0xfd, 0xba, 0x5c, - 0x46, 0x5d, 0x95, 0x8f, 0x66, 0x93, 0x65, 0x8b, 0x60, 0x8a, 0xdf, 0x90, 0xb3, 0xc9, 0xf4, 0xc9, - 0x8c, 0xee, 0x5a, 0x12, 0xcc, 0xf1, 0x9b, 0xd2, 0x8c, 0xae, 0x52, 0x82, 0x95, 0x49, 0xe9, 0xad, - 0x23, 0xc1, 0x7c, 0xcf, 0x08, 0xbe, 0xb1, 0x9e, 0x32, 0x92, 0xbb, 0x06, 0x87, 0xfb, 0xd7, 0x90, - 0x60, 0xd6, 0xef, 0xdd, 0xef, 0xea, 0xfa, 0xfd, 0x25, 0x04, 0x4b, 0xde, 0x44, 0xbf, 0xfa, 0x11, - 0x4c, 0xfb, 0xec, 0xfd, 0xce, 0x8d, 0x9d, 0xbf, 0x7c, 0x60, 0x87, 0x06, 0xed, 0xd4, 0x1d, 0xcc, - 0xf5, 0x9c, 0xe0, 0xf2, 0x81, 0x68, 0x69, 0x88, 0xcc, 0x1d, 0x8c, 0xff, 0x81, 0x5c, 0x1a, 0x02, - 0x81, 0xe0, 0xb8, 0xd5, 0x32, 0x4d, 0x0a, 0x0e, 0x65, 0xef, 0x9f, 0x34, 0x64, 0xff, 0xe5, 0x53, - 0xb1, 0x30, 0x24, 0x00, 0x73, 0x68, 0xcc, 0xa8, 0x6f, 0xa2, 0x0f, 0x02, 0x90, 0xff, 0xfa, 0xa9, - 0x4c, 0x08, 0xa4, 0x8d, 0xeb, 0x09, 0xf8, 0xa6, 0x91, 0x9d, 0x61, 0x07, 0x60, 0xff, 0xed, 0x53, - 0xf1, 0x9a, 0xb5, 0x0d, 0x69, 0x13, 0xf0, 0x97, 0xb6, 0x7b, 0x13, 0x7c, 0xd4, 0x49, 0xc0, 0x36, - 0x9a, 0x4f, 0xc0, 0x30, 0xfd, 0xb2, 0xc3, 0xd5, 0xab, 0x41, 0xe8, 0x7f, 0x17, 0x68, 0xa9, 0x4f, - 0x0e, 0xab, 0xdb, 0x4d, 0x03, 0xbf, 0x3a, 0x41, 0xd8, 0xff, 0x10, 0x58, 0x0f, 0x40, 0xe0, 0xb2, - 0xee, 0xb8, 0x83, 0x3c, 0xf7, 0x7f, 0x4a, 0xb0, 0x04, 0x90, 0xd1, 0xf4, 0xfd, 0x96, 0xb1, 0x13, - 0x84, 0xfd, 0x58, 0x1a, 0x2d, 0xf4, 0x31, 0x01, 0x26, 0xe8, 0x2b, 0xff, 0xe9, 0x41, 0x00, 0xf8, - 0xbf, 0x04, 0xb8, 0x8d, 0xc8, 0x9f, 0xec, 0x7f, 0xb4, 0x03, 0x8b, 0xf6, 0xa2, 0xcd, 0x0f, 0x75, - 0xe0, 0xfd, 0x34, 0x4c, 0xa1, 0x0e, 0xd6, 0xd7, 0x59, 0x6f, 0x2d, 0xce, 0x4a, 0xd3, 0xc5, 0xa9, - 0x8c, 0xf7, 0x28, 0x93, 0xfb, 0x3b, 0xce, 0x99, 0x7e, 0x66, 0x04, 0xe2, 0xf3, 0x88, 0xd5, 0xef, - 0xe8, 0xf4, 0x62, 0x23, 0x5e, 0xb4, 0xdc, 0xc7, 0xce, 0xad, 0xb9, 0x4d, 0x76, 0xea, 0x1d, 0xc9, - 0x27, 0xfe, 0xe7, 0xed, 0xa9, 0x58, 0x8d, 0x64, 0x6a, 0xbc, 0x26, 0x86, 0x94, 0x53, 0x10, 0x63, - 0x6a, 0xec, 0x68, 0x3f, 0x92, 0x1f, 0x79, 0xf3, 0xed, 0xa9, 0x43, 0x6d, 0x3d, 0xfe, 0x4f, 0xb9, - 0x01, 0xc9, 0xe5, 0x9d, 0x12, 0x7e, 0xbf, 0x70, 0x9e, 0xe8, 0xe8, 0xc1, 0xa3, 0xf9, 0x8b, 0xa8, - 0xf6, 0xd8, 0xae, 0x06, 0x52, 0x4d, 0x69, 0x3f, 0x98, 0x44, 0xb3, 0x5f, 0x31, 0x25, 0xeb, 0x6d, - 0x2e, 0xe5, 0x1a, 0xc4, 0xe5, 0x20, 0x3f, 0x45, 0xcd, 0x5f, 0x16, 0x26, 0x1c, 0x88, 0x3b, 0x2e, - 0xb9, 0x95, 0x9f, 0x80, 0xd4, 0xf2, 0xce, 0x15, 0xd3, 0xd6, 0x85, 0x0f, 0xe8, 0xd0, 0x35, 0x9c, - 0xbf, 0x84, 0xc4, 0xe7, 0x07, 0x26, 0x16, 0x70, 0xc6, 0x9c, 0xaa, 0xfb, 0xd8, 0x94, 0xa7, 0x20, - 0xe1, 0x0d, 0xb3, 0x73, 0xda, 0x70, 0xfe, 0xeb, 0xc2, 0xee, 0x83, 0xd1, 0x27, 0x3c, 0x7a, 0x9f, - 0xe5, 0xdc, 0xdd, 0x74, 0xc6, 0x1b, 0x3a, 0x88, 0xe5, 0xc2, 0x27, 0xd2, 0x72, 0xee, 0xf0, 0xb6, - 0xe5, 0xe8, 0xf1, 0x38, 0xa3, 0x3e, 0xa0, 0xe5, 0x82, 0x3e, 0xe1, 0xd1, 0x2b, 0x57, 0x61, 0x78, - 0x79, 0x27, 0xbf, 0x83, 0xda, 0xec, 0x37, 0x01, 0xa9, 0xfc, 0x59, 0x64, 0xfd, 0xea, 0x80, 0xac, - 0x0c, 0xa7, 0x0e, 0xd7, 0x39, 0x81, 0x72, 0x02, 0x92, 0x2b, 0xf4, 0xa6, 0xd5, 0xe4, 0x7c, 0xc0, - 0x0f, 0xba, 0xad, 0xb6, 0x48, 0x29, 0xd1, 0x93, 0xf0, 0xd9, 0x76, 0xd8, 0xef, 0x92, 0x3f, 0x43, - 0x4c, 0x26, 0x64, 0xdc, 0x38, 0x4a, 0x0d, 0x62, 0xcb, 0x3b, 0x58, 0xc9, 0xb2, 0x29, 0x76, 0x68, - 0x7d, 0x6c, 0xc6, 0x43, 0xc8, 0xb5, 0x35, 0xc3, 0xc6, 0xd9, 0x4b, 0xd7, 0xfc, 0x79, 0xbc, 0xe3, - 0xd9, 0x81, 0xef, 0x88, 0x30, 0x76, 0xbb, 0x58, 0x9d, 0xbe, 0x2a, 0xaf, 0x85, 0x68, 0x61, 0xf1, - 0x93, 0x3d, 0xba, 0xe3, 0x08, 0xbb, 0xe3, 0xa9, 0xbe, 0x77, 0xf4, 0xb4, 0xf8, 0x7d, 0xad, 0x9f, - 0x7e, 0x67, 0x1f, 0x4f, 0xca, 0xb7, 0x05, 0x74, 0xeb, 0x9f, 0x7f, 0xe7, 0xc0, 0x8b, 0xd6, 0xb3, - 0x40, 0xb9, 0x47, 0x2f, 0x8a, 0x76, 0x56, 0x44, 0x7d, 0x23, 0xcb, 0xd3, 0xe2, 0xd7, 0xab, 0xfd, - 0x2c, 0xf7, 0xe9, 0x71, 0xdb, 0x2f, 0xa0, 0xed, 0xe7, 0x06, 0x36, 0x82, 0xa5, 0x27, 0x66, 0xc3, - 0x48, 0xdd, 0xcf, 0xa5, 0x7c, 0x87, 0x59, 0x51, 0xa0, 0x5a, 0x59, 0x31, 0x2a, 0x64, 0xc5, 0xe8, - 0x1e, 0x56, 0xf8, 0xf4, 0xb8, 0x15, 0x39, 0x8a, 0xfa, 0x83, 0x5b, 0xe2, 0xe3, 0x9b, 0xbc, 0x04, - 0xd0, 0x0e, 0x09, 0xfa, 0xe5, 0x29, 0x16, 0x13, 0xf1, 0x33, 0x21, 0xfa, 0x4a, 0xbf, 0x50, 0x95, - 0x3f, 0x83, 0xa3, 0xf7, 0x44, 0xfc, 0x22, 0x17, 0xbe, 0x14, 0x9a, 0x7c, 0x12, 0x32, 0xdd, 0x53, - 0xbb, 0x2f, 0xbc, 0x0a, 0x4a, 0xaf, 0x83, 0xfd, 0x0c, 0x31, 0xce, 0xf0, 0x88, 0x9f, 0x21, 0x79, - 0x2e, 0xd3, 0x76, 0xd1, 0xb5, 0x9a, 0x89, 0x25, 0xbb, 0x87, 0xb3, 0xdb, 0x5d, 0x9f, 0x8d, 0x73, - 0xfa, 0x38, 0x0c, 0x71, 0x21, 0x3d, 0x4b, 0x91, 0x65, 0x7b, 0x56, 0x94, 0x58, 0x85, 0xb9, 0x70, - 0x3e, 0xbf, 0xf4, 0xe6, 0xbb, 0xc7, 0x0f, 0xbd, 0x85, 0x9f, 0x7f, 0xc0, 0xcf, 0x3f, 0xbd, 0x7b, - 0x3c, 0xf4, 0x21, 0x7e, 0x3e, 0xc6, 0xcf, 0x27, 0xf8, 0x79, 0xfa, 0xbd, 0xe3, 0xa1, 0x97, 0xf0, - 0xf3, 0x0a, 0x7e, 0xfe, 0x02, 0x3f, 0xaf, 0xe3, 0xe7, 0x4d, 0xfc, 0xbc, 0xf5, 0x1e, 0xea, 0xe2, - 0xff, 0x0f, 0xf1, 0xff, 0xc7, 0xf8, 0xff, 0x13, 0xfc, 0xff, 0xf4, 0xfb, 0xc7, 0x0f, 0xfd, 0x6f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0x34, 0x8e, 0xb2, 0xd0, 0x31, 0x00, 0x00, + // 4123 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0xfd, + 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, + 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, + 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, + 0xeb, 0x34, 0xe9, 0x4f, 0xd2, 0x26, 0x69, 0xa6, 0x4f, 0x79, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, + 0x87, 0x8e, 0x6c, 0x31, 0x9e, 0xa9, 0xd3, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x19, 0xf9, 0xa5, 0x73, + 0xff, 0x16, 0x8b, 0x1f, 0x72, 0x41, 0x65, 0x9c, 0x3c, 0x11, 0x7b, 0xee, 0xf9, 0xbe, 0x3d, 0xf7, + 0xdc, 0x73, 0xcf, 0x39, 0x7b, 0x77, 0x09, 0x3f, 0x3c, 0x07, 0x0b, 0x0d, 0xdb, 0x6e, 0x98, 0xf8, + 0x54, 0xcb, 0xb1, 0x3d, 0x7b, 0xa7, 0xbd, 0x7b, 0xaa, 0x8e, 0x5d, 0xdd, 0x31, 0x5a, 0x9e, 0xed, + 0x2c, 0x53, 0x19, 0x9a, 0x62, 0x1a, 0xcb, 0x42, 0x63, 0xb1, 0x02, 0xd3, 0x97, 0x0c, 0x13, 0xaf, + 0xfa, 0x8a, 0x9b, 0xd8, 0x43, 0x17, 0x20, 0xb6, 0x6b, 0x98, 0x38, 0x2b, 0x2d, 0x44, 0x97, 0x52, + 0xa7, 0x1f, 0x59, 0xee, 0x03, 0x2d, 0xf7, 0x22, 0x6a, 0x44, 0xac, 0x50, 0xc4, 0xe2, 0xdb, 0x31, + 0x98, 0x19, 0x32, 0x8a, 0x10, 0xc4, 0x2c, 0xad, 0x49, 0x18, 0xa5, 0xa5, 0xa4, 0x42, 0x7f, 0xa3, + 0x2c, 0x4c, 0xb4, 0x34, 0xfd, 0x86, 0xd6, 0xc0, 0xd9, 0x08, 0x15, 0x8b, 0x4b, 0x94, 0x03, 0xa8, + 0xe3, 0x16, 0xb6, 0xea, 0xd8, 0xd2, 0x3b, 0xd9, 0xe8, 0x42, 0x74, 0x29, 0xa9, 0x04, 0x24, 0xe8, + 0x29, 0x98, 0x6e, 0xb5, 0x77, 0x4c, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x10, 0x5d, 0x8a, 0x2b, 0x32, + 0x1b, 0x58, 0xed, 0x2a, 0x3f, 0x0e, 0x53, 0xb7, 0xb0, 0x76, 0x23, 0xa8, 0x9a, 0xa2, 0xaa, 0x19, + 0x22, 0x0e, 0x28, 0xae, 0x40, 0xba, 0x89, 0x5d, 0x57, 0x6b, 0x60, 0xd5, 0xeb, 0xb4, 0x70, 0x36, + 0x46, 0x67, 0xbf, 0x30, 0x30, 0xfb, 0xfe, 0x99, 0xa7, 0x38, 0x6a, 0xab, 0xd3, 0xc2, 0xa8, 0x00, + 0x49, 0x6c, 0xb5, 0x9b, 0x8c, 0x21, 0x7e, 0x80, 0xff, 0x4a, 0x56, 0xbb, 0xd9, 0xcf, 0x92, 0x20, + 0x30, 0x4e, 0x31, 0xe1, 0x62, 0xe7, 0xa6, 0xa1, 0xe3, 0xec, 0x38, 0x25, 0x78, 0x7c, 0x80, 0x60, + 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, 0x56, + 0x76, 0x82, 0x92, 0x3c, 0x3a, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, 0x98, + 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, 0x20, + 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, 0x8e, + 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, 0x71, + 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, 0xc5, + 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, 0xbe, + 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, 0x01, + 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a, + 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, 0x85, + 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, 0x85, + 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, 0x9b, + 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, 0xb4, + 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, 0x99, + 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x0c, 0xbe, 0x40, 0xa5, 0x61, 0x05, 0x34, + 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, 0xb8, + 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, 0xe5, + 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, 0x61, + 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, 0x29, + 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, 0xfa, + 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, 0xc2, + 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x42, 0x92, 0xfc, 0x65, 0xbe, 0x1d, + 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, 0xe0, + 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, 0x30, + 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, 0x2f, + 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, 0x69, + 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0xf7, 0xd0, 0xf0, 0xe9, 0xf5, 0xc7, 0xe2, + 0xe2, 0xb7, 0x23, 0x10, 0xa3, 0xfb, 0x6d, 0x0a, 0x52, 0x5b, 0xd7, 0x6a, 0x25, 0x75, 0xb5, 0xba, + 0x5d, 0x5c, 0x2f, 0xc9, 0x12, 0xca, 0x00, 0x50, 0xc1, 0xa5, 0xf5, 0x6a, 0x61, 0x4b, 0x8e, 0xf8, + 0xd7, 0xe5, 0x8d, 0xad, 0xf3, 0x67, 0xe5, 0xa8, 0x0f, 0xd8, 0x66, 0x82, 0x58, 0x50, 0xe1, 0xcc, + 0x69, 0x39, 0x8e, 0x64, 0x48, 0x33, 0x82, 0xf2, 0xd5, 0xd2, 0xea, 0xf9, 0xb3, 0xf2, 0x78, 0xaf, + 0xe4, 0xcc, 0x69, 0x79, 0x02, 0x4d, 0x42, 0x92, 0x4a, 0x8a, 0xd5, 0xea, 0xba, 0x9c, 0xf0, 0x39, + 0x37, 0xb7, 0x94, 0xf2, 0xc6, 0x9a, 0x9c, 0xf4, 0x39, 0xd7, 0x94, 0xea, 0x76, 0x4d, 0x06, 0x9f, + 0xa1, 0x52, 0xda, 0xdc, 0x2c, 0xac, 0x95, 0xe4, 0x94, 0xaf, 0x51, 0xbc, 0xb6, 0x55, 0xda, 0x94, + 0xd3, 0x3d, 0x66, 0x9d, 0x39, 0x2d, 0x4f, 0xfa, 0xb7, 0x28, 0x6d, 0x6c, 0x57, 0xe4, 0x0c, 0x9a, + 0x86, 0x49, 0x76, 0x0b, 0x61, 0xc4, 0x54, 0x9f, 0xe8, 0xfc, 0x59, 0x59, 0xee, 0x1a, 0xc2, 0x58, + 0xa6, 0x7b, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x71, 0x05, 0xe2, 0x34, 0xba, 0x10, 0x82, 0xcc, 0x7a, + 0xa1, 0x58, 0x5a, 0x57, 0xab, 0xb5, 0xad, 0x72, 0x75, 0xa3, 0xb0, 0x2e, 0x4b, 0x5d, 0x99, 0x52, + 0xfa, 0xd4, 0x76, 0x59, 0x29, 0xad, 0xca, 0x91, 0xa0, 0xac, 0x56, 0x2a, 0x6c, 0x95, 0x56, 0xe5, + 0xe8, 0xa2, 0x0e, 0xb3, 0xc3, 0xf2, 0xcc, 0xd0, 0x9d, 0x11, 0x58, 0xe2, 0xc8, 0x01, 0x4b, 0x4c, + 0xb9, 0x06, 0x96, 0xf8, 0xcb, 0x12, 0xcc, 0x0c, 0xc9, 0xb5, 0x43, 0x6f, 0xf2, 0x3c, 0xc4, 0x59, + 0x88, 0xb2, 0xea, 0xf3, 0xc4, 0xd0, 0xa4, 0x4d, 0x03, 0x76, 0xa0, 0x02, 0x51, 0x5c, 0xb0, 0x02, + 0x47, 0x0f, 0xa8, 0xc0, 0x84, 0x62, 0xc0, 0xc8, 0x97, 0x25, 0xc8, 0x1e, 0xc4, 0x1d, 0x92, 0x28, + 0x22, 0x3d, 0x89, 0xe2, 0x62, 0xbf, 0x01, 0x27, 0x0f, 0x9e, 0xc3, 0x80, 0x15, 0xaf, 0x4b, 0x70, + 0x6c, 0x78, 0xa3, 0x32, 0xd4, 0x86, 0xe7, 0x60, 0xbc, 0x89, 0xbd, 0x3d, 0x5b, 0x14, 0xeb, 0xc7, + 0x86, 0x94, 0x00, 0x32, 0xdc, 0xef, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xe8, 0x41, 0xdd, 0x06, 0xb3, + 0x66, 0xc0, 0xd2, 0xcf, 0x47, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x08, 0xc0, 0xb0, 0x5a, + 0x6d, 0x8f, 0x15, 0x64, 0x96, 0x9f, 0x92, 0x54, 0x42, 0xf7, 0x3e, 0xc9, 0x3d, 0x6d, 0xcf, 0x1f, + 0x8f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8c, 0x1a, 0x9a, 0x3b, 0x60, 0xa6, + 0x03, 0xb5, 0xee, 0x69, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb5, 0xa6, 0x61, + 0x35, 0x68, 0x02, 0x4e, 0xe4, 0xe3, 0xbb, 0x9a, 0xe9, 0x62, 0x65, 0x8a, 0x0d, 0x6f, 0x8a, 0x51, + 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xc6, 0x7b, 0x10, 0x6c, 0xd8, 0x47, 0x2c, 0x7e, 0x6d, 0x02, + 0x52, 0x81, 0xb6, 0x0e, 0x9d, 0x84, 0xf4, 0x75, 0xed, 0xa6, 0xa6, 0x8a, 0x56, 0x9d, 0x79, 0x22, + 0x45, 0x64, 0x35, 0xde, 0xae, 0x3f, 0x0d, 0xb3, 0x54, 0xc5, 0x6e, 0x7b, 0xd8, 0x51, 0x75, 0x53, + 0x73, 0x5d, 0xea, 0xb4, 0x04, 0x55, 0x45, 0x64, 0xac, 0x4a, 0x86, 0x56, 0xc4, 0x08, 0x3a, 0x07, + 0x33, 0x14, 0xd1, 0x6c, 0x9b, 0x9e, 0xd1, 0x32, 0xb1, 0x4a, 0x1e, 0x1e, 0x5c, 0x9a, 0x88, 0x7d, + 0xcb, 0xa6, 0x89, 0x46, 0x85, 0x2b, 0x10, 0x8b, 0x5c, 0xb4, 0x0a, 0x0f, 0x51, 0x58, 0x03, 0x5b, + 0xd8, 0xd1, 0x3c, 0xac, 0xe2, 0xcf, 0xb4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xae, 0xee, 0x69, 0xee, + 0x5e, 0x76, 0x96, 0x10, 0x14, 0x23, 0x59, 0x49, 0x39, 0x41, 0x14, 0xd7, 0xb8, 0x5e, 0x89, 0xaa, + 0x15, 0xac, 0xfa, 0x27, 0x35, 0x77, 0x0f, 0xe5, 0xe1, 0x18, 0x65, 0x71, 0x3d, 0xc7, 0xb0, 0x1a, + 0xaa, 0xbe, 0x87, 0xf5, 0x1b, 0x6a, 0xdb, 0xdb, 0xbd, 0x90, 0x7d, 0x30, 0x78, 0x7f, 0x6a, 0xe1, + 0x26, 0xd5, 0x59, 0x21, 0x2a, 0xdb, 0xde, 0xee, 0x05, 0xb4, 0x09, 0x69, 0xb2, 0x18, 0x4d, 0xe3, + 0x25, 0xac, 0xee, 0xda, 0x0e, 0xad, 0x2c, 0x99, 0x21, 0x3b, 0x3b, 0xe0, 0xc1, 0xe5, 0x2a, 0x07, + 0x54, 0xec, 0x3a, 0xce, 0xc7, 0x37, 0x6b, 0xa5, 0xd2, 0xaa, 0x92, 0x12, 0x2c, 0x97, 0x6c, 0x87, + 0x04, 0x54, 0xc3, 0xf6, 0x1d, 0x9c, 0x62, 0x01, 0xd5, 0xb0, 0x85, 0x7b, 0xcf, 0xc1, 0x8c, 0xae, + 0xb3, 0x39, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0x37, 0x2b, 0xf7, 0x38, 0x4b, 0xd7, 0xd7, 0x98, 0x02, + 0x8f, 0x71, 0x17, 0x3d, 0x0b, 0x0f, 0x74, 0x9d, 0x15, 0x04, 0x4e, 0x0f, 0xcc, 0xb2, 0x1f, 0x7a, + 0x0e, 0x66, 0x5a, 0x9d, 0x41, 0x20, 0xea, 0xb9, 0x63, 0xab, 0xd3, 0x0f, 0x7b, 0x94, 0x3e, 0xb6, + 0x39, 0x58, 0xd7, 0x3c, 0x5c, 0xcf, 0x1e, 0x0f, 0x6a, 0x07, 0x06, 0xd0, 0x29, 0x90, 0x75, 0x5d, + 0xc5, 0x96, 0xb6, 0x63, 0x62, 0x55, 0x73, 0xb0, 0xa5, 0xb9, 0xd9, 0xf9, 0xa0, 0x72, 0x46, 0xd7, + 0x4b, 0x74, 0xb4, 0x40, 0x07, 0xd1, 0x93, 0x30, 0x6d, 0xef, 0x5c, 0xd7, 0x59, 0x64, 0xa9, 0x2d, + 0x07, 0xef, 0x1a, 0x2f, 0x66, 0x1f, 0xa1, 0x6e, 0x9a, 0x22, 0x03, 0x34, 0xae, 0x6a, 0x54, 0x8c, + 0x9e, 0x00, 0x59, 0x77, 0xf7, 0x34, 0xa7, 0x45, 0x4b, 0xbb, 0xdb, 0xd2, 0x74, 0x9c, 0x7d, 0x94, + 0xa9, 0x32, 0xf9, 0x86, 0x10, 0x93, 0xc8, 0x76, 0x6f, 0x19, 0xbb, 0x9e, 0x60, 0x7c, 0x9c, 0x45, + 0x36, 0x95, 0x71, 0xb6, 0xab, 0x30, 0xdb, 0xb6, 0x0c, 0xcb, 0xc3, 0x4e, 0xcb, 0xc1, 0xa4, 0x89, + 0x67, 0x3b, 0x31, 0xfb, 0x6f, 0x13, 0x07, 0xb4, 0xe1, 0xdb, 0x41, 0x6d, 0x16, 0x00, 0xca, 0x4c, + 0x7b, 0x50, 0xb8, 0x98, 0x87, 0x74, 0x30, 0x2e, 0x50, 0x12, 0x58, 0x64, 0xc8, 0x12, 0xa9, 0xb1, + 0x2b, 0xd5, 0x55, 0x52, 0x1d, 0x5f, 0x28, 0xc9, 0x11, 0x52, 0xa5, 0xd7, 0xcb, 0x5b, 0x25, 0x55, + 0xd9, 0xde, 0xd8, 0x2a, 0x57, 0x4a, 0x72, 0xf4, 0xc9, 0x64, 0xe2, 0x9d, 0x09, 0xf9, 0xf6, 0xed, + 0xdb, 0xb7, 0x23, 0x8b, 0xdf, 0x8b, 0x40, 0xa6, 0xb7, 0x33, 0x46, 0x1f, 0x87, 0xe3, 0xe2, 0x31, + 0xd6, 0xc5, 0x9e, 0x7a, 0xcb, 0x70, 0x68, 0xa8, 0x36, 0x35, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe5, + 0x5a, 0x9b, 0xd8, 0xbb, 0x62, 0x38, 0x24, 0x10, 0x9b, 0x9a, 0x87, 0xd6, 0x61, 0xde, 0xb2, 0x55, + 0xd7, 0xd3, 0xac, 0xba, 0xe6, 0xd4, 0xd5, 0xee, 0x01, 0x82, 0xaa, 0xe9, 0x3a, 0x76, 0x5d, 0x9b, + 0x95, 0x08, 0x9f, 0xe5, 0x23, 0x96, 0xbd, 0xc9, 0x95, 0xbb, 0xb9, 0xb3, 0xc0, 0x55, 0xfb, 0x22, + 0x22, 0x7a, 0x50, 0x44, 0x3c, 0x08, 0xc9, 0xa6, 0xd6, 0x52, 0xb1, 0xe5, 0x39, 0x1d, 0xda, 0xcf, + 0x25, 0x94, 0x44, 0x53, 0x6b, 0x95, 0xc8, 0xf5, 0x87, 0xb7, 0x06, 0x41, 0x3f, 0xfe, 0x6b, 0x14, + 0xd2, 0xc1, 0x9e, 0x8e, 0xb4, 0xc8, 0x3a, 0xcd, 0xdf, 0x12, 0xdd, 0xe1, 0x0f, 0x1f, 0xda, 0x01, + 0x2e, 0xaf, 0x90, 0xc4, 0x9e, 0x1f, 0x67, 0x9d, 0x96, 0xc2, 0x90, 0xa4, 0xa8, 0x92, 0x3d, 0x8d, + 0x59, 0xff, 0x9e, 0x50, 0xf8, 0x15, 0x5a, 0x83, 0xf1, 0xeb, 0x2e, 0xe5, 0x1e, 0xa7, 0xdc, 0x8f, + 0x1c, 0xce, 0x7d, 0x79, 0x93, 0x92, 0x27, 0x2f, 0x6f, 0xaa, 0x1b, 0x55, 0xa5, 0x52, 0x58, 0x57, + 0x38, 0x1c, 0x9d, 0x80, 0x98, 0xa9, 0xbd, 0xd4, 0xe9, 0x2d, 0x01, 0x54, 0x34, 0xaa, 0xe3, 0x4f, + 0x40, 0xec, 0x16, 0xd6, 0x6e, 0xf4, 0x26, 0x5e, 0x2a, 0xfa, 0x10, 0x43, 0xff, 0x14, 0xc4, 0xa9, + 0xbf, 0x10, 0x00, 0xf7, 0x98, 0x3c, 0x86, 0x12, 0x10, 0x5b, 0xa9, 0x2a, 0x24, 0xfc, 0x65, 0x48, + 0x33, 0xa9, 0x5a, 0x2b, 0x97, 0x56, 0x4a, 0x72, 0x64, 0xf1, 0x1c, 0x8c, 0x33, 0x27, 0x90, 0xad, + 0xe1, 0xbb, 0x41, 0x1e, 0xe3, 0x97, 0x9c, 0x43, 0x12, 0xa3, 0xdb, 0x95, 0x62, 0x49, 0x91, 0x23, + 0xc1, 0xe5, 0x75, 0x21, 0x1d, 0x6c, 0xe7, 0x7e, 0x36, 0x31, 0xf5, 0x0f, 0x12, 0xa4, 0x02, 0xed, + 0x19, 0x69, 0x0c, 0x34, 0xd3, 0xb4, 0x6f, 0xa9, 0x9a, 0x69, 0x68, 0x2e, 0x0f, 0x0a, 0xa0, 0xa2, + 0x02, 0x91, 0x8c, 0xba, 0x68, 0x3f, 0x13, 0xe3, 0x5f, 0x93, 0x40, 0xee, 0x6f, 0xed, 0xfa, 0x0c, + 0x94, 0x7e, 0xae, 0x06, 0xbe, 0x2a, 0x41, 0xa6, 0xb7, 0x9f, 0xeb, 0x33, 0xef, 0xe4, 0xcf, 0xd5, + 0xbc, 0xb7, 0x22, 0x30, 0xd9, 0xd3, 0xc5, 0x8d, 0x6a, 0xdd, 0x67, 0x60, 0xda, 0xa8, 0xe3, 0x66, + 0xcb, 0xf6, 0xb0, 0xa5, 0x77, 0x54, 0x13, 0xdf, 0xc4, 0x66, 0x76, 0x91, 0x26, 0x8a, 0x53, 0x87, + 0xf7, 0x89, 0xcb, 0xe5, 0x2e, 0x6e, 0x9d, 0xc0, 0xf2, 0x33, 0xe5, 0xd5, 0x52, 0xa5, 0x56, 0xdd, + 0x2a, 0x6d, 0xac, 0x5c, 0x53, 0xb7, 0x37, 0x7e, 0x61, 0xa3, 0x7a, 0x65, 0x43, 0x91, 0x8d, 0x3e, + 0xb5, 0x0f, 0x71, 0xab, 0xd7, 0x40, 0xee, 0x37, 0x0a, 0x1d, 0x87, 0x61, 0x66, 0xc9, 0x63, 0x68, + 0x06, 0xa6, 0x36, 0xaa, 0xea, 0x66, 0x79, 0xb5, 0xa4, 0x96, 0x2e, 0x5d, 0x2a, 0xad, 0x6c, 0x6d, + 0xb2, 0x07, 0x67, 0x5f, 0x7b, 0xab, 0x77, 0x53, 0xbf, 0x12, 0x85, 0x99, 0x21, 0x96, 0xa0, 0x02, + 0xef, 0xd9, 0xd9, 0x63, 0xc4, 0xc7, 0x46, 0xb1, 0x7e, 0x99, 0x74, 0x05, 0x35, 0xcd, 0xf1, 0x78, + 0x8b, 0xff, 0x04, 0x10, 0x2f, 0x59, 0x9e, 0xb1, 0x6b, 0x60, 0x87, 0x9f, 0x33, 0xb0, 0x46, 0x7e, + 0xaa, 0x2b, 0x67, 0x47, 0x0d, 0x1f, 0x05, 0xd4, 0xb2, 0x5d, 0xc3, 0x33, 0x6e, 0x62, 0xd5, 0xb0, + 0xc4, 0xa1, 0x04, 0x69, 0xec, 0x63, 0x8a, 0x2c, 0x46, 0xca, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0xa1, + 0xf5, 0x69, 0x93, 0x04, 0x1e, 0x55, 0x64, 0x31, 0xe2, 0x6b, 0x9f, 0x84, 0x74, 0xdd, 0x6e, 0x93, + 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x29, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0x3d, 0x0d, + 0x49, 0x2b, 0x29, 0x26, 0x63, 0x2a, 0x8f, 0xc3, 0x94, 0xd6, 0x68, 0x38, 0x84, 0x5c, 0x10, 0xb1, + 0xce, 0x3c, 0xe3, 0x8b, 0xa9, 0xe2, 0xdc, 0x65, 0x48, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, + 0xb6, 0xd8, 0x99, 0x54, 0x64, 0x29, 0xa9, 0x24, 0x2c, 0x31, 0x78, 0x12, 0xd2, 0x86, 0xab, 0x76, + 0x0f, 0x47, 0x23, 0x0b, 0x91, 0xa5, 0x84, 0x92, 0x32, 0x5c, 0xff, 0x34, 0x6c, 0xf1, 0xf5, 0x08, + 0x64, 0x7a, 0x0f, 0x77, 0xd1, 0x2a, 0x24, 0x4c, 0x5b, 0xd7, 0x68, 0x68, 0xb1, 0x37, 0x0b, 0x4b, + 0x21, 0xe7, 0xc1, 0xcb, 0xeb, 0x5c, 0x5f, 0xf1, 0x91, 0x73, 0xff, 0x2c, 0x41, 0x42, 0x88, 0xd1, + 0x31, 0x88, 0xb5, 0x34, 0x6f, 0x8f, 0xd2, 0xc5, 0x8b, 0x11, 0x59, 0x52, 0xe8, 0x35, 0x91, 0xbb, + 0x2d, 0xcd, 0xa2, 0x21, 0xc0, 0xe5, 0xe4, 0x9a, 0xac, 0xab, 0x89, 0xb5, 0x3a, 0x6d, 0xfb, 0xed, + 0x66, 0x13, 0x5b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb, 0x57, 0xb8, 0x18, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, + 0x19, 0x66, 0x8f, 0x6e, 0x8c, 0xea, 0xca, 0x62, 0xc0, 0x57, 0xce, 0xc3, 0x09, 0xc1, 0x5b, 0xc7, + 0x9e, 0xa6, 0xef, 0xe1, 0x7a, 0x17, 0x34, 0x4e, 0x4f, 0x0e, 0x8f, 0x73, 0x85, 0x55, 0x3e, 0x2e, + 0xb0, 0x8b, 0x3f, 0x90, 0x60, 0x5a, 0x3c, 0xa8, 0xd4, 0x7d, 0x67, 0x55, 0x00, 0x34, 0xcb, 0xb2, + 0xbd, 0xa0, 0xbb, 0x06, 0x43, 0x79, 0x00, 0xb7, 0x5c, 0xf0, 0x41, 0x4a, 0x80, 0x60, 0xae, 0x09, + 0xd0, 0x1d, 0x39, 0xd0, 0x6d, 0xf3, 0x90, 0xe2, 0x27, 0xf7, 0xf4, 0xf5, 0x0f, 0x7b, 0xb4, 0x05, + 0x26, 0x22, 0x4f, 0x34, 0x68, 0x16, 0xe2, 0x3b, 0xb8, 0x61, 0x58, 0xfc, 0x3c, 0x91, 0x5d, 0x88, + 0x53, 0xca, 0x98, 0x7f, 0x4a, 0x59, 0xbc, 0x0a, 0x33, 0xba, 0xdd, 0xec, 0x37, 0xb7, 0x28, 0xf7, + 0x3d, 0x5e, 0xbb, 0x9f, 0x94, 0x5e, 0x80, 0x6e, 0x8b, 0xf9, 0xe5, 0x48, 0x74, 0xad, 0x56, 0xfc, + 0x6a, 0x64, 0x6e, 0x8d, 0xe1, 0x6a, 0x62, 0x9a, 0x0a, 0xde, 0x35, 0xb1, 0x4e, 0x4c, 0x87, 0x1f, + 0x3f, 0x06, 0x1f, 0x6b, 0x18, 0xde, 0x5e, 0x7b, 0x67, 0x59, 0xb7, 0x9b, 0xa7, 0x1a, 0x76, 0xc3, + 0xee, 0xbe, 0xee, 0x22, 0x57, 0xf4, 0x82, 0xfe, 0xe2, 0xaf, 0xbc, 0x92, 0xbe, 0x74, 0x2e, 0xf4, + 0xfd, 0x58, 0x7e, 0x03, 0x66, 0xb8, 0xb2, 0x4a, 0xcf, 0xdc, 0xd9, 0xa3, 0x01, 0x3a, 0xf4, 0xdc, + 0x25, 0xfb, 0x8d, 0xb7, 0x69, 0xad, 0x56, 0xa6, 0x39, 0x94, 0x8c, 0xb1, 0x07, 0x88, 0xbc, 0x02, + 0x0f, 0xf4, 0xf0, 0xb1, 0x7d, 0x89, 0x9d, 0x10, 0xc6, 0xef, 0x71, 0xc6, 0x99, 0x00, 0xe3, 0x26, + 0x87, 0xe6, 0x57, 0x60, 0xf2, 0x28, 0x5c, 0xff, 0xc8, 0xb9, 0xd2, 0x38, 0x48, 0xb2, 0x06, 0x53, + 0x94, 0x44, 0x6f, 0xbb, 0x9e, 0xdd, 0xa4, 0x49, 0xef, 0x70, 0x9a, 0x7f, 0x7a, 0x9b, 0x6d, 0x94, + 0x0c, 0x81, 0xad, 0xf8, 0xa8, 0x7c, 0x1e, 0xe8, 0x6b, 0x86, 0x3a, 0xd6, 0xcd, 0x10, 0x86, 0x37, + 0xb8, 0x21, 0xbe, 0x7e, 0xfe, 0xd3, 0x30, 0x4b, 0x7e, 0xd3, 0x9c, 0x14, 0xb4, 0x24, 0xfc, 0x94, + 0x29, 0xfb, 0x83, 0x97, 0xd9, 0x5e, 0x9c, 0xf1, 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x81, 0x3d, + 0x0f, 0x3b, 0xae, 0xaa, 0x99, 0xc3, 0xcc, 0x0b, 0x3c, 0xa6, 0x67, 0xbf, 0xf8, 0x6e, 0xef, 0x2a, + 0xae, 0x31, 0x64, 0xc1, 0x34, 0xf3, 0xdb, 0x70, 0x7c, 0x48, 0x54, 0x8c, 0xc0, 0xf9, 0x0a, 0xe7, + 0x9c, 0x1d, 0x88, 0x0c, 0x42, 0x5b, 0x03, 0x21, 0xf7, 0xd7, 0x72, 0x04, 0xce, 0x3f, 0xe2, 0x9c, + 0x88, 0x63, 0xc5, 0x92, 0x12, 0xc6, 0xcb, 0x30, 0x7d, 0x13, 0x3b, 0x3b, 0xb6, 0xcb, 0x8f, 0x46, + 0x46, 0xa0, 0x7b, 0x95, 0xd3, 0x4d, 0x71, 0x20, 0x3d, 0x2b, 0x21, 0x5c, 0xcf, 0x42, 0x62, 0x57, + 0xd3, 0xf1, 0x08, 0x14, 0x5f, 0xe2, 0x14, 0x13, 0x44, 0x9f, 0x40, 0x0b, 0x90, 0x6e, 0xd8, 0xbc, + 0x2c, 0x85, 0xc3, 0x5f, 0xe3, 0xf0, 0x94, 0xc0, 0x70, 0x8a, 0x96, 0xdd, 0x6a, 0x9b, 0xa4, 0x66, + 0x85, 0x53, 0xfc, 0xb1, 0xa0, 0x10, 0x18, 0x4e, 0x71, 0x04, 0xb7, 0xfe, 0x89, 0xa0, 0x70, 0x03, + 0xfe, 0x7c, 0x1e, 0x52, 0xb6, 0x65, 0x76, 0x6c, 0x6b, 0x14, 0x23, 0xfe, 0x94, 0x33, 0x00, 0x87, + 0x10, 0x82, 0x8b, 0x90, 0x1c, 0x75, 0x21, 0xfe, 0xec, 0x5d, 0xb1, 0x3d, 0xc4, 0x0a, 0xac, 0xc1, + 0x94, 0x48, 0x50, 0x86, 0x6d, 0x8d, 0x40, 0xf1, 0xe7, 0x9c, 0x22, 0x13, 0x80, 0xf1, 0x69, 0x78, + 0xd8, 0xf5, 0x1a, 0x78, 0x14, 0x92, 0xd7, 0xc5, 0x34, 0x38, 0x84, 0xbb, 0x72, 0x07, 0x5b, 0xfa, + 0xde, 0x68, 0x0c, 0x5f, 0x11, 0xae, 0x14, 0x18, 0x42, 0xb1, 0x02, 0x93, 0x4d, 0xcd, 0x71, 0xf7, + 0x34, 0x73, 0xa4, 0xe5, 0xf8, 0x0b, 0xce, 0x91, 0xf6, 0x41, 0xdc, 0x23, 0x6d, 0xeb, 0x28, 0x34, + 0x5f, 0x15, 0x1e, 0x09, 0xc0, 0xf8, 0xd6, 0x73, 0x3d, 0x7a, 0x00, 0x75, 0x14, 0xb6, 0xaf, 0x89, + 0xad, 0xc7, 0xb0, 0x95, 0x20, 0xe3, 0x45, 0x48, 0xba, 0xc6, 0x4b, 0x23, 0xd1, 0xfc, 0xa5, 0x58, + 0x69, 0x0a, 0x20, 0xe0, 0x6b, 0x70, 0x62, 0x68, 0x99, 0x18, 0x81, 0xec, 0xaf, 0x38, 0xd9, 0xb1, + 0x21, 0xa5, 0x82, 0xa7, 0x84, 0xa3, 0x52, 0xfe, 0xb5, 0x48, 0x09, 0xb8, 0x8f, 0xab, 0x46, 0x1e, + 0x14, 0x5c, 0x6d, 0xf7, 0x68, 0x5e, 0xfb, 0x1b, 0xe1, 0x35, 0x86, 0xed, 0xf1, 0xda, 0x16, 0x1c, + 0xe3, 0x8c, 0x47, 0x5b, 0xd7, 0xaf, 0x8b, 0xc4, 0xca, 0xd0, 0xdb, 0xbd, 0xab, 0xfb, 0x8b, 0x30, + 0xe7, 0xbb, 0x53, 0x74, 0xa4, 0xae, 0xda, 0xd4, 0x5a, 0x23, 0x30, 0x7f, 0x83, 0x33, 0x8b, 0x8c, + 0xef, 0xb7, 0xb4, 0x6e, 0x45, 0x6b, 0x11, 0xf2, 0xab, 0x90, 0x15, 0xe4, 0x6d, 0xcb, 0xc1, 0xba, + 0xdd, 0xb0, 0x8c, 0x97, 0x70, 0x7d, 0x04, 0xea, 0xbf, 0xed, 0x5b, 0xaa, 0xed, 0x00, 0x9c, 0x30, + 0x97, 0x41, 0xf6, 0x7b, 0x15, 0xd5, 0x68, 0xb6, 0x6c, 0xc7, 0x0b, 0x61, 0xfc, 0x3b, 0xb1, 0x52, + 0x3e, 0xae, 0x4c, 0x61, 0xf9, 0x12, 0x64, 0xe8, 0xe5, 0xa8, 0x21, 0xf9, 0x4d, 0x4e, 0x34, 0xd9, + 0x45, 0xf1, 0xc4, 0xa1, 0xdb, 0xcd, 0x96, 0xe6, 0x8c, 0x92, 0xff, 0xbe, 0x25, 0x12, 0x07, 0x87, + 0xf0, 0xc4, 0xe1, 0x75, 0x5a, 0x98, 0x54, 0xfb, 0x11, 0x18, 0xbe, 0x2d, 0x12, 0x87, 0xc0, 0x70, + 0x0a, 0xd1, 0x30, 0x8c, 0x40, 0xf1, 0xf7, 0x82, 0x42, 0x60, 0x08, 0xc5, 0xa7, 0xba, 0x85, 0xd6, + 0xc1, 0x0d, 0xc3, 0xf5, 0x1c, 0xd6, 0x07, 0x1f, 0x4e, 0xf5, 0x9d, 0x77, 0x7b, 0x9b, 0x30, 0x25, + 0x00, 0xcd, 0x5f, 0x86, 0xa9, 0xbe, 0x16, 0x03, 0x85, 0x7d, 0xb3, 0x90, 0xfd, 0xe5, 0xf7, 0x79, + 0x32, 0xea, 0xed, 0x30, 0xf2, 0xeb, 0x64, 0xdd, 0x7b, 0xfb, 0x80, 0x70, 0xb2, 0x97, 0xdf, 0xf7, + 0x97, 0xbe, 0xa7, 0x0d, 0xc8, 0x5f, 0x82, 0xc9, 0x9e, 0x1e, 0x20, 0x9c, 0xea, 0x57, 0x38, 0x55, + 0x3a, 0xd8, 0x02, 0xe4, 0xcf, 0x41, 0x8c, 0xd4, 0xf3, 0x70, 0xf8, 0xaf, 0x72, 0x38, 0x55, 0xcf, + 0x7f, 0x02, 0x12, 0xa2, 0x8e, 0x87, 0x43, 0x7f, 0x8d, 0x43, 0x7d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, + 0x0e, 0xff, 0x9c, 0x80, 0x0b, 0x08, 0x81, 0x8f, 0xee, 0xc2, 0xef, 0xfe, 0x46, 0x8c, 0xe7, 0x61, + 0xe1, 0xbb, 0x8b, 0x30, 0xc1, 0x8b, 0x77, 0x38, 0xfa, 0xf3, 0xfc, 0xe6, 0x02, 0x91, 0x7f, 0x06, + 0xe2, 0x23, 0x3a, 0xfc, 0x37, 0x39, 0x94, 0xe9, 0xe7, 0x57, 0x20, 0x15, 0x28, 0xd8, 0xe1, 0xf0, + 0xdf, 0xe2, 0xf0, 0x20, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x38, 0xc1, 0x6f, 0x0b, 0xd3, 0x39, 0x82, + 0xb8, 0x4d, 0xd4, 0xea, 0x70, 0xf4, 0xef, 0x08, 0xaf, 0x0b, 0x48, 0xfe, 0x79, 0x48, 0xfa, 0xf9, + 0x37, 0x1c, 0xff, 0xbb, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0x04, 0xf2, 0x7f, 0x38, 0xc5, 0xef, 0x09, + 0x0f, 0x04, 0x50, 0x64, 0x1b, 0xf5, 0xd7, 0xf4, 0x70, 0xa6, 0xdf, 0x17, 0xdb, 0xa8, 0xaf, 0xa4, + 0x93, 0xd5, 0xa4, 0x69, 0x30, 0x9c, 0xe2, 0x0f, 0xc4, 0x6a, 0x52, 0x7d, 0x62, 0x46, 0x7f, 0x91, + 0x0c, 0xe7, 0xf8, 0x43, 0x61, 0x46, 0x5f, 0x8d, 0xcc, 0xd7, 0x00, 0x0d, 0x16, 0xc8, 0x70, 0xbe, + 0x2f, 0x70, 0xbe, 0xe9, 0x81, 0xfa, 0x98, 0xbf, 0x02, 0xc7, 0x86, 0x17, 0xc7, 0x70, 0xd6, 0x2f, + 0xbe, 0xdf, 0xf7, 0x38, 0x13, 0xac, 0x8d, 0xf9, 0xad, 0x6e, 0x96, 0x0d, 0x16, 0xc6, 0x70, 0xda, + 0x57, 0xde, 0xef, 0x4d, 0xb4, 0xc1, 0xba, 0x98, 0x2f, 0x00, 0x74, 0x6b, 0x52, 0x38, 0xd7, 0xab, + 0x9c, 0x2b, 0x00, 0x22, 0x5b, 0x83, 0x97, 0xa4, 0x70, 0xfc, 0x97, 0xc4, 0xd6, 0xe0, 0x08, 0xb2, + 0x35, 0x44, 0x35, 0x0a, 0x47, 0xbf, 0x26, 0xb6, 0x86, 0x80, 0xe4, 0x2f, 0x42, 0xc2, 0x6a, 0x9b, + 0x26, 0x89, 0x2d, 0x74, 0xf8, 0x67, 0x44, 0xd9, 0x1f, 0x7d, 0xc0, 0xc1, 0x02, 0x90, 0x3f, 0x07, + 0x71, 0xdc, 0xdc, 0xc1, 0xf5, 0x30, 0xe4, 0xbf, 0x7f, 0x20, 0xf2, 0x09, 0xd1, 0xce, 0x3f, 0x0f, + 0xc0, 0x1e, 0xa6, 0xe9, 0x5b, 0xa2, 0x10, 0xec, 0x7f, 0x7c, 0xc0, 0xbf, 0x50, 0xe8, 0x42, 0xba, + 0x04, 0xec, 0x7b, 0x87, 0xc3, 0x09, 0xde, 0xed, 0x25, 0xa0, 0x0f, 0xe0, 0xcf, 0xc2, 0xc4, 0x75, + 0xd7, 0xb6, 0x3c, 0xad, 0x11, 0x86, 0xfe, 0x4f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x4d, 0xdb, 0xc1, + 0x9e, 0xd6, 0x70, 0xc3, 0xb0, 0xff, 0xc5, 0xb1, 0x3e, 0x80, 0x80, 0x75, 0xcd, 0xf5, 0x46, 0x99, + 0xf7, 0x7f, 0x0b, 0xb0, 0x00, 0x10, 0xa3, 0xc9, 0xef, 0x1b, 0xb8, 0x13, 0x86, 0x7d, 0x4f, 0x18, + 0xcd, 0xf5, 0xf3, 0x9f, 0x80, 0x24, 0xf9, 0xc9, 0xbe, 0xda, 0x09, 0x01, 0xff, 0x0f, 0x07, 0x77, + 0x11, 0xe4, 0xce, 0xae, 0x57, 0xf7, 0x8c, 0x70, 0x67, 0xff, 0x2f, 0x5f, 0x69, 0xa1, 0x9f, 0x2f, + 0x40, 0xca, 0xf5, 0xea, 0xf5, 0x36, 0xef, 0x68, 0x42, 0xe0, 0x3f, 0xfe, 0xc0, 0x7f, 0xc8, 0xf5, + 0x31, 0xc5, 0x93, 0xc3, 0x0f, 0xeb, 0x60, 0xcd, 0x5e, 0xb3, 0xd9, 0x31, 0x1d, 0x7c, 0x73, 0x0a, + 0xe6, 0x75, 0xbb, 0xb9, 0x63, 0xbb, 0xa7, 0xfc, 0x44, 0x72, 0x4a, 0x38, 0x8e, 0x9f, 0xb3, 0xf9, + 0x8e, 0x9c, 0x3b, 0xda, 0x01, 0xdd, 0xe2, 0x8f, 0x26, 0x21, 0xb1, 0xa2, 0xb9, 0x9e, 0x76, 0x4b, + 0xeb, 0xa0, 0x47, 0x21, 0x51, 0xb6, 0xbc, 0x33, 0xa7, 0x6b, 0x9e, 0x43, 0x5f, 0x30, 0x45, 0x8b, + 0xc9, 0x7b, 0x77, 0xe6, 0xe3, 0x06, 0x91, 0x29, 0xfe, 0x10, 0x7a, 0x18, 0xe2, 0xf4, 0x37, 0x3d, + 0xa3, 0x8c, 0x16, 0x27, 0xdf, 0xb8, 0x33, 0x3f, 0xd6, 0xd5, 0x63, 0x63, 0xe8, 0x1a, 0xa4, 0x2a, + 0x9d, 0x6d, 0xc3, 0xf2, 0xce, 0x9f, 0x25, 0x74, 0x64, 0xea, 0xb1, 0xe2, 0x33, 0xf7, 0xee, 0xcc, + 0x9f, 0x39, 0xd0, 0x40, 0x52, 0x10, 0xbb, 0x13, 0x13, 0x68, 0xfa, 0xdd, 0x62, 0x90, 0x0b, 0x5d, + 0x81, 0x84, 0xb8, 0x64, 0x67, 0xfd, 0xc5, 0x8b, 0xdc, 0x84, 0xfb, 0xe2, 0xf6, 0xc9, 0xd0, 0x2f, + 0x41, 0xba, 0xd2, 0xb9, 0x64, 0xda, 0x1a, 0xf7, 0x41, 0x7c, 0x41, 0x5a, 0x8a, 0x14, 0x2f, 0xdc, + 0xbb, 0x33, 0x7f, 0x76, 0x64, 0x62, 0x0e, 0xa7, 0xcc, 0x3d, 0x6c, 0xe8, 0x05, 0x48, 0xfa, 0xd7, + 0xf4, 0x6d, 0x42, 0xa4, 0xf8, 0x71, 0x6e, 0xf7, 0xfd, 0xd1, 0x77, 0xe9, 0x02, 0x96, 0x33, 0x77, + 0x4f, 0x2c, 0x48, 0x4b, 0xd2, 0xfd, 0x58, 0xce, 0x7d, 0xd2, 0xc3, 0x16, 0xb0, 0xfc, 0xfc, 0x59, + 0xfa, 0xfa, 0x42, 0xba, 0x5f, 0xcb, 0x39, 0x7d, 0x97, 0x0e, 0x5d, 0x86, 0x89, 0x4a, 0xa7, 0xd8, + 0xf1, 0xb0, 0x4b, 0xbf, 0xe7, 0x49, 0x17, 0x9f, 0xbe, 0x77, 0x67, 0xfe, 0xa3, 0x23, 0xb2, 0x52, + 0x9c, 0x22, 0x08, 0xd0, 0x02, 0xa4, 0x36, 0x6c, 0xa7, 0xa9, 0x99, 0x8c, 0x0f, 0xd8, 0xeb, 0x98, + 0x80, 0x08, 0x6d, 0x93, 0x99, 0xb0, 0xd5, 0x76, 0xe9, 0x7f, 0x22, 0xfc, 0x14, 0x31, 0xd9, 0x65, + 0x42, 0x06, 0xc4, 0x2b, 0x9d, 0x8a, 0xd6, 0xca, 0xa6, 0xe9, 0xbb, 0x82, 0x87, 0x96, 0x7d, 0x84, + 0xd8, 0x5b, 0xcb, 0x74, 0x9c, 0x7e, 0x54, 0x51, 0x3c, 0x7b, 0xef, 0xce, 0xfc, 0xd3, 0x23, 0xdf, + 0xb1, 0xa2, 0xb5, 0xe8, 0xed, 0xd8, 0x1d, 0xd0, 0xb7, 0x24, 0xb2, 0xb1, 0xd8, 0x79, 0x2b, 0xb9, + 0xe3, 0x24, 0xbd, 0xe3, 0xc3, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, 0x5a, 0x9f, 0x7d, 0xf3, 0x08, + 0x33, 0x65, 0xcf, 0x34, 0xe4, 0xd6, 0xbf, 0xfe, 0xe6, 0x7d, 0x6f, 0x5a, 0xdf, 0x02, 0xf4, 0xb2, + 0x04, 0x93, 0x95, 0xce, 0x06, 0xaf, 0xae, 0xc4, 0xf2, 0x0c, 0xff, 0x5e, 0x7d, 0x98, 0xe5, 0x01, + 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbe, 0x39, 0x7f, 0x7a, 0x64, 0x23, 0x68, 0x0a, 0xa2, 0x36, 0xf4, + 0xde, 0x13, 0x7d, 0x8e, 0x5a, 0x51, 0x22, 0x95, 0xba, 0x8e, 0xeb, 0xc4, 0x8a, 0xa9, 0x43, 0xac, + 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, 0x1f, 0xaa, 0xc2, 0x38, 0xf3, + 0x30, 0xfd, 0x96, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, 0x69, 0xe6, 0x2e, 0x00, 0x74, + 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0x83, 0x41, 0xf2, 0x13, 0xcd, 0x76, 0x3f, 0x88, + 0x95, 0x96, 0x62, 0xfc, 0x2b, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, 0x1c, 0xc8, 0xfd, 0xb1, 0x72, + 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, 0x58, 0x90, 0x21, 0x75, 0x5a, + 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, 0xff, 0x9f, 0x8e, 0x73, 0x31, + 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x5d, 0x14, 0xd7, 0xdf, + 0xb8, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0xbf, 0xdc, 0xcd, 0x8d, 0xbd, 0x75, 0x37, 0x27, + 0xbd, 0x73, 0x37, 0x27, 0xbd, 0x77, 0x37, 0x27, 0xfd, 0xe4, 0x6e, 0x4e, 0xba, 0xbd, 0x9f, 0x93, + 0xbe, 0xb2, 0x9f, 0x93, 0xbe, 0xbe, 0x9f, 0x93, 0xbe, 0xb3, 0x9f, 0x93, 0xbe, 0xbb, 0x9f, 0x93, + 0xde, 0xd8, 0xcf, 0x49, 0xdf, 0xdf, 0xcf, 0x8d, 0xbd, 0xb5, 0x9f, 0x93, 0xde, 0xd9, 0xcf, 0x8d, + 0xbd, 0xb7, 0x9f, 0x93, 0x7e, 0xb2, 0x9f, 0x1b, 0xbb, 0xfd, 0xc3, 0xdc, 0xd8, 0xff, 0x07, 0x00, + 0x00, 0xff, 0xff, 0x0f, 0x7e, 0x94, 0x4d, 0x13, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -463,6 +483,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -589,6 +618,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -690,6 +728,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -760,6 +799,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -777,6 +820,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -807,7 +851,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -886,6 +930,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -915,223 +962,221 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int32Ptr != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int32Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(m.Int32)) + i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) if m.MyUint64Ptr != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintCasttype(data, i, uint64(*m.MyUint64Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) } - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintCasttype(data, i, uint64(m.MyUint64)) + i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) if m.MyFloat32Ptr != nil { - data[i] = 0x2d + dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) } - data[i] = 0x35 + dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) if m.MyFloat64Ptr != nil { - data[i] = 0x39 + dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) } - data[i] = 0x41 + dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) if m.MyBytes != nil { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintCasttype(data, i, uint64(len(m.MyBytes))) - i += copy(data[i:], m.MyBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) + i += copy(dAtA[i:], m.MyBytes) } if m.NormalBytes != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintCasttype(data, i, uint64(len(m.NormalBytes))) - i += copy(data[i:], m.NormalBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) + i += copy(dAtA[i:], m.NormalBytes) } if len(m.MyUint64S) > 0 { for _, num := range m.MyUint64S { - data[i] = 0x58 + dAtA[i] = 0x58 i++ - i = encodeVarintCasttype(data, i, uint64(num)) + i = encodeVarintCasttype(dAtA, i, uint64(num)) } } if len(m.MyMap) > 0 { for k := range m.MyMap { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.MyMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyCustomMap) > 0 { for k := range m.MyCustomMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.MyCustomMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyNullableMap) > 0 { for k := range m.MyNullableMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.MyNullableMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintCasttype(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCasttype(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 } - i += n1 } } if len(m.MyEmbeddedMap) > 0 { for k := range m.MyEmbeddedMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.MyEmbeddedMap[k] - msgSize := (&v).Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) + } + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCasttype(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCasttype(data, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(data[i:]) + i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) + n2, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } } + if m.String_ != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) + } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int64)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Casttype(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Casttype(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Casttype(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Casttype(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCasttype(data []byte, offset int, v uint64) int { +func encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { @@ -1225,8 +1270,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1234,11 +1283,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1265,14 +1314,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1280,43 +1329,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1373,8 +1422,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1387,6 +1437,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1478,6 +1532,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1503,48 +1558,52 @@ func valueToStringCasttype(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 670 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0xeb, 0xa6, 0x6e, 0xed, 0x73, 0x02, 0xd1, 0x89, 0xc1, 0x8a, 0x44, 0x12, 0xb5, 0x2a, - 0x62, 0x80, 0xa4, 0x4a, 0xa3, 0x10, 0x15, 0xc4, 0xe0, 0xaa, 0x48, 0x45, 0xb8, 0x42, 0x86, 0xaa, - 0x02, 0xb1, 0x38, 0x8d, 0x49, 0x2d, 0xfc, 0x23, 0xb2, 0x1d, 0x90, 0xb7, 0x0a, 0x06, 0x24, 0xfe, - 0x02, 0xfe, 0x04, 0x46, 0x16, 0x24, 0x46, 0xc6, 0x8c, 0x1d, 0x99, 0x5a, 0x5a, 0x96, 0x8e, 0x1d, - 0x2b, 0x26, 0xde, 0xdd, 0xf9, 0x97, 0xda, 0x82, 0x52, 0x77, 0x78, 0xba, 0x5f, 0xef, 0x7d, 0xde, - 0xf7, 0x9e, 0xef, 0xce, 0xa8, 0xb6, 0xed, 0xda, 0x3d, 0xd7, 0x6f, 0xda, 0xba, 0xe7, 0xef, 0xe8, - 0x96, 0xe1, 0x35, 0xb7, 0x75, 0x3f, 0x08, 0xc2, 0xa1, 0xd1, 0x18, 0x7a, 0x6e, 0xe0, 0x62, 0x21, - 0x1e, 0x57, 0xee, 0x0e, 0xcc, 0x60, 0x67, 0xd4, 0x6b, 0x40, 0x44, 0x73, 0xe0, 0x0e, 0xdc, 0x26, - 0x75, 0xe8, 0x8d, 0x5e, 0xd3, 0x11, 0x1d, 0xd0, 0x1e, 0x0b, 0x9c, 0xff, 0x5c, 0x42, 0xc2, 0x2a, - 0xc4, 0xea, 0xef, 0xf4, 0x10, 0x2f, 0x22, 0x61, 0xdd, 0x09, 0x96, 0x5b, 0x4f, 0x03, 0x4f, 0xe6, - 0xea, 0xdc, 0xed, 0x82, 0x22, 0xfe, 0xd9, 0xaf, 0xf1, 0x26, 0x99, 0xd3, 0x04, 0x33, 0x5a, 0xc2, - 0x0b, 0x88, 0xa7, 0x6e, 0xf2, 0x34, 0xf5, 0x29, 0x8d, 0xf7, 0x6b, 0x53, 0xa9, 0x1f, 0x6b, 0xf0, - 0x0b, 0x24, 0xa9, 0xe1, 0x26, 0xf4, 0x3b, 0x6d, 0x82, 0x2b, 0x80, 0xeb, 0x8c, 0x72, 0x0f, 0xdc, - 0x96, 0xff, 0x29, 0x30, 0x30, 0xfc, 0x20, 0xdd, 0x58, 0x1c, 0xfd, 0x1c, 0x06, 0x9a, 0x64, 0xa7, - 0x2c, 0xbc, 0x85, 0x84, 0x78, 0x51, 0x9e, 0xa1, 0xdc, 0xfb, 0x91, 0x84, 0x5c, 0x6c, 0x21, 0x66, - 0xe3, 0x57, 0xa8, 0xa8, 0x86, 0x8f, 0x2c, 0x57, 0x8f, 0x6a, 0xc0, 0x03, 0x7c, 0x5a, 0xe9, 0x02, - 0xb8, 0x3d, 0x31, 0x38, 0x0a, 0xa7, 0xe4, 0xa2, 0x9d, 0xa1, 0xe1, 0x97, 0x48, 0x4c, 0x96, 0xe5, - 0x59, 0x8a, 0x7e, 0x10, 0xe9, 0xce, 0x87, 0x17, 0x13, 0x7c, 0x46, 0x39, 0x2b, 0xf7, 0x1c, 0xe0, - 0xb9, 0x3c, 0xca, 0xa3, 0x9a, 0xc4, 0xca, 0x59, 0xc1, 0x53, 0xe5, 0x50, 0x71, 0x81, 0xa2, 0x73, - 0x2a, 0x8f, 0xf0, 0x62, 0x82, 0xc7, 0x8f, 0xd1, 0x9c, 0x1a, 0x2a, 0x21, 0x78, 0xcb, 0x22, 0x90, - 0x8b, 0xca, 0x12, 0x50, 0xef, 0x4c, 0x48, 0xa5, 0x71, 0xda, 0x9c, 0xcd, 0x00, 0xb8, 0x8e, 0xa4, - 0x0d, 0xd7, 0xb3, 0x75, 0x8b, 0xf1, 0x10, 0xe1, 0x69, 0x92, 0x93, 0x4e, 0xe1, 0x4d, 0xb2, 0x13, - 0xf6, 0xb5, 0x7d, 0x59, 0xaa, 0x17, 0xae, 0x72, 0x26, 0xc5, 0xf8, 0xdc, 0xf8, 0xd8, 0x44, 0xbc, - 0x1a, 0xaa, 0xfa, 0x50, 0x2e, 0x02, 0x52, 0x6a, 0xdd, 0x6c, 0x24, 0x11, 0xf1, 0xdd, 0x6a, 0xd0, - 0xf5, 0x35, 0x27, 0xf0, 0x42, 0xa5, 0x0d, 0x19, 0x97, 0x26, 0xce, 0x08, 0x61, 0x34, 0x1d, 0x6f, - 0x93, 0x2e, 0xfe, 0xc6, 0x91, 0x8b, 0xb5, 0x3a, 0xf2, 0x03, 0xd7, 0x26, 0x19, 0x4b, 0x34, 0xe3, - 0xc2, 0x85, 0x19, 0x13, 0x2f, 0x96, 0xd7, 0x79, 0x7f, 0x70, 0x89, 0x9d, 0x3e, 0x0b, 0x3c, 0xd3, - 0x19, 0x90, 0xd4, 0x9f, 0x0e, 0x72, 0x5f, 0xda, 0x44, 0x01, 0xfe, 0xc0, 0xa1, 0x92, 0x1a, 0x6e, - 0x8c, 0x2c, 0x4b, 0xef, 0x59, 0x06, 0x51, 0x7e, 0x8d, 0x2a, 0x5f, 0xbc, 0x50, 0x79, 0xc6, 0x8f, - 0x69, 0xef, 0x80, 0xf6, 0xd6, 0xc4, 0x22, 0xe8, 0xf3, 0x44, 0x35, 0x94, 0xec, 0x2c, 0x0b, 0x7f, - 0xa4, 0x2a, 0xd6, 0xec, 0x9e, 0xd1, 0xef, 0x1b, 0x7d, 0xa2, 0xe2, 0xfa, 0x7f, 0x54, 0x64, 0xfc, - 0x98, 0x8a, 0x15, 0x72, 0xea, 0xf3, 0x2b, 0xc9, 0xf0, 0x2a, 0x5d, 0x84, 0xd2, 0x23, 0x81, 0xcb, - 0xa8, 0xf0, 0xc6, 0x08, 0xe9, 0xa3, 0x2b, 0x6a, 0xa4, 0x8b, 0x6f, 0x20, 0xfe, 0xad, 0x6e, 0x8d, - 0x0c, 0xfa, 0xc8, 0xce, 0x68, 0x6c, 0xb0, 0x32, 0xdd, 0xe5, 0x2a, 0x0f, 0x51, 0xf9, 0xec, 0xa7, - 0xbd, 0x54, 0xbc, 0x86, 0xf0, 0xf9, 0x02, 0x67, 0x09, 0x3c, 0x23, 0xdc, 0xca, 0x12, 0xa4, 0x56, - 0x39, 0x2d, 0xd1, 0x96, 0x69, 0xf9, 0xae, 0x73, 0x8e, 0x79, 0xb6, 0x5c, 0x57, 0x63, 0xce, 0x57, - 0xd1, 0x2c, 0x9b, 0x24, 0x7b, 0x59, 0xa7, 0xaf, 0x3d, 0xfd, 0x29, 0xd1, 0x3f, 0x4c, 0xa7, 0xad, - 0x3c, 0x19, 0x1f, 0x56, 0xa7, 0xf6, 0xc0, 0x7e, 0x82, 0xfd, 0x3a, 0xac, 0x72, 0xc7, 0x60, 0x27, - 0x60, 0xa7, 0x60, 0xbb, 0x47, 0x55, 0xee, 0x0b, 0xd8, 0x57, 0xb0, 0xef, 0x60, 0x3f, 0xc0, 0xc6, - 0x60, 0x7b, 0x47, 0xe0, 0x0b, 0xed, 0x31, 0xb4, 0x27, 0xd0, 0x9e, 0x42, 0xbb, 0xfb, 0xbb, 0x3a, - 0xf5, 0x37, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xbd, 0x6b, 0x7d, 0x63, 0x07, 0x00, 0x00, + // 698 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c, + 0x18, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0xe6, 0x7d, 0xa3, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5, + 0xaa, 0xc8, 0x03, 0x24, 0x55, 0x1a, 0x95, 0xaa, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x05, 0x19, + 0xaa, 0x0a, 0xc4, 0x72, 0x69, 0x4d, 0x1a, 0xe1, 0xc4, 0x91, 0x7d, 0x01, 0x79, 0xab, 0xca, 0x80, + 0xc4, 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, + 0xab, 0x4c, 0xe8, 0xee, 0x9c, 0xd8, 0xfd, 0x01, 0x4a, 0xdc, 0xed, 0x9e, 0xbb, 0xe7, 0xf9, 0x3c, + 0xdf, 0x7b, 0xee, 0xb9, 0x3b, 0xa8, 0xec, 0x38, 0xad, 0xba, 0xe3, 0x55, 0x5a, 0xc4, 0xf5, 0xf6, + 0x88, 0x6d, 0xb9, 0x95, 0x1d, 0xe2, 0x51, 0xea, 0x77, 0xac, 0x72, 0xc7, 0x75, 0xa8, 0x83, 0x72, + 0x03, 0x7b, 0xf6, 0x5e, 0xa3, 0x49, 0xf7, 0xba, 0xf5, 0xf2, 0x8e, 0xd3, 0xaa, 0x34, 0x9c, 0x86, + 0x53, 0xe1, 0x0e, 0xf5, 0xee, 0x5b, 0x6e, 0x71, 0x83, 0x8f, 0x44, 0xe0, 0xdc, 0xef, 0x22, 0xcc, + 0xad, 0x11, 0x8f, 0x92, 0x0f, 0xc4, 0x47, 0x0b, 0x30, 0xb7, 0xd1, 0xa6, 0x4b, 0xd5, 0xe7, 0xd4, + 0x95, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0xf7, 0x94, 0x6c, 0x93, 0xcd, 0x99, 0xc3, 0x25, 0x34, + 0x0f, 0xb3, 0x7c, 0x2c, 0x4f, 0x70, 0x9f, 0xe2, 0x61, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5e, + 0xc1, 0x82, 0xe1, 0x6f, 0x35, 0xdb, 0x74, 0xb9, 0xc6, 0x70, 0x19, 0x15, 0x68, 0x93, 0xfa, 0xfd, + 0x7e, 0x4f, 0x59, 0xfa, 0xab, 0x40, 0x6a, 0x79, 0x34, 0xde, 0xd8, 0x20, 0xfa, 0xa5, 0xdf, 0xb1, + 0xcc, 0x24, 0x0b, 0x6d, 0xc3, 0xdc, 0xc0, 0x94, 0x27, 0x39, 0xf7, 0x41, 0x24, 0x21, 0x15, 0x7b, + 0x08, 0x43, 0x6f, 0xe0, 0x8c, 0xe1, 0x3f, 0xb6, 0x1d, 0x12, 0xd5, 0x20, 0xab, 0x02, 0x6d, 0x42, + 0x5f, 0xe9, 0xf7, 0x94, 0xda, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0x2f, 0xd0, 0xd0, 0x6b, 0x98, 0x1f, + 0xda, 0xf2, 0x14, 0x47, 0x3f, 0x8c, 0x74, 0xa7, 0xc3, 0xc7, 0xb8, 0x84, 0x72, 0x51, 0xee, 0x69, + 0x15, 0x68, 0x20, 0x8d, 0xf2, 0xa8, 0x26, 0x17, 0x68, 0x09, 0xe5, 0xcb, 0x35, 0x39, 0xc7, 0xd1, + 0x29, 0x95, 0x47, 0xf8, 0x18, 0x87, 0x9e, 0xc0, 0x69, 0xc3, 0xd7, 0x7d, 0x6a, 0x79, 0x72, 0x5e, + 0x05, 0xda, 0x8c, 0xbe, 0xd8, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0x40, 0x2a, + 0x2c, 0x6c, 0x3a, 0x6e, 0x8b, 0xd8, 0x82, 0x07, 0x19, 0xcf, 0x4c, 0x4e, 0xa1, 0x2d, 0xb6, 0x13, + 0x71, 0xda, 0x9e, 0x5c, 0x50, 0x33, 0x37, 0xe9, 0xc9, 0x98, 0x84, 0x9a, 0x30, 0x6b, 0xf8, 0x06, + 0xe9, 0xc8, 0x33, 0x6a, 0x46, 0x2b, 0x54, 0x6f, 0x97, 0x87, 0x11, 0x83, 0xbb, 0x55, 0xe6, 0xeb, + 0xeb, 0x6d, 0xea, 0xfa, 0x7a, 0xad, 0xdf, 0x53, 0x16, 0x47, 0xce, 0x68, 0x90, 0x0e, 0x4f, 0x27, + 0x32, 0xa0, 0x6f, 0x80, 0x5d, 0xac, 0xb5, 0xae, 0x47, 0x9d, 0x16, 0xcb, 0x58, 0xe4, 0x19, 0xe7, + 0xaf, 0xcd, 0x38, 0xf4, 0x12, 0x79, 0xdb, 0x07, 0xc7, 0x63, 0xec, 0xf4, 0x05, 0x75, 0x9b, 0xed, + 0x06, 0x4b, 0xfd, 0xf9, 0x38, 0xf5, 0xa5, 0x1d, 0x2a, 0x40, 0x1f, 0x01, 0x2c, 0x1a, 0xfe, 0x66, + 0xd7, 0xb6, 0x49, 0xdd, 0xb6, 0x98, 0xf2, 0xff, 0xb8, 0xf2, 0x85, 0x6b, 0x95, 0x27, 0xfc, 0x84, + 0xf6, 0xe5, 0x83, 0x63, 0xa5, 0x3a, 0xb2, 0x08, 0xfe, 0x04, 0x71, 0x0d, 0x17, 0x73, 0xa2, 0x4f, + 0x5c, 0xc5, 0x7a, 0xab, 0x6e, 0xed, 0xee, 0x5a, 0xbb, 0x4c, 0xc5, 0xff, 0xff, 0x50, 0x91, 0xf0, + 0x13, 0x2a, 0x56, 0x59, 0xd7, 0xa7, 0x57, 0x92, 0xe0, 0xa1, 0x67, 0x70, 0x4a, 0x54, 0x58, 0x2e, + 0xa9, 0x40, 0xcb, 0x8f, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0x66, 0x76, 0x05, 0xc2, 0xb8, 0xc7, + 0x50, 0x09, 0x66, 0xde, 0x59, 0x3e, 0x7f, 0xc5, 0xf3, 0x26, 0x1b, 0xa2, 0x5b, 0x30, 0xfb, 0x9e, + 0xd8, 0x5d, 0x8b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x27, 0x56, 0xc0, 0xec, 0x23, 0x58, 0xba, + 0xdc, 0x2b, 0x63, 0xc5, 0x9b, 0x10, 0x5d, 0x3d, 0xb1, 0x24, 0x21, 0x2b, 0x08, 0x77, 0x92, 0x84, + 0x42, 0xb5, 0x14, 0xd7, 0x7c, 0xbb, 0x69, 0x7b, 0x4e, 0xfb, 0x0a, 0xf3, 0x72, 0xfd, 0x6f, 0xc6, + 0x9c, 0xc3, 0x70, 0x4a, 0x4c, 0xb2, 0xbd, 0x6c, 0xf0, 0xef, 0x83, 0xff, 0x72, 0xa6, 0x30, 0xf4, + 0xa7, 0x87, 0x01, 0x96, 0x8e, 0x02, 0x2c, 0xfd, 0x0c, 0xb0, 0x74, 0x12, 0x60, 0x70, 0x1a, 0x60, + 0x70, 0x16, 0x60, 0x70, 0x1e, 0x60, 0xb0, 0x1f, 0x62, 0xf0, 0x25, 0xc4, 0xe0, 0x6b, 0x88, 0xc1, + 0xf7, 0x10, 0x83, 0x1f, 0x21, 0x06, 0x87, 0x21, 0x06, 0x47, 0x21, 0x96, 0x4e, 0x42, 0x0c, 0x4e, + 0x43, 0x2c, 0x9d, 0x85, 0x18, 0x9c, 0x87, 0x58, 0xda, 0xff, 0x85, 0xa5, 0x3f, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xec, 0xe2, 0x9e, 0x1c, 0xb4, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto index c321f40a..5da2b734 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go index a7de0549..cc94ac28 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestCastawayMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +101,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +115,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -136,18 +136,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -171,20 +171,20 @@ func TestWilsonMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +203,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +217,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +280,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +297,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +314,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +331,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -350,12 +350,12 @@ func TestCasttypeDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -365,12 +365,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +424,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +460,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go index 4c3b7cc0..ac1ac3e7 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go @@ -28,8 +28,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -40,24 +38,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -66,7 +67,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -87,244 +88,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3789 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x36, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x7c, 0x93, 0x73, 0xf1, - 0x7a, 0x77, 0x25, 0xd7, 0x71, 0x6c, 0x87, 0xde, 0x66, 0x21, 0x4a, 0xb4, 0x96, 0x86, 0x6e, 0x1d, - 0x89, 0x6b, 0x3b, 0x2d, 0x30, 0x18, 0x91, 0x23, 0x8a, 0xf6, 0x70, 0x86, 0xe5, 0x0c, 0x6d, 0x6b, - 0x9f, 0xd2, 0xba, 0xed, 0x22, 0x2d, 0x7a, 0x2f, 0xd0, 0xdc, 0xdb, 0x04, 0x68, 0x93, 0xa6, 0xb7, - 0xa4, 0x6d, 0x8a, 0xa2, 0x4f, 0x01, 0x8a, 0xb4, 0x79, 0x2a, 0xda, 0x3e, 0xf5, 0xa1, 0xc8, 0xad, - 0x01, 0x9a, 0xb6, 0x69, 0x9b, 0x02, 0x06, 0x1a, 0x34, 0x2f, 0x3d, 0xe7, 0xbf, 0x0c, 0x87, 0x17, - 0x69, 0x28, 0x05, 0x69, 0x56, 0x00, 0x21, 0xce, 0xf9, 0xcf, 0xf7, 0xcd, 0x99, 0xf3, 0x9f, 0xff, - 0x9c, 0xf3, 0xff, 0x43, 0xf8, 0xab, 0x1f, 0x81, 0xe3, 0x55, 0xdb, 0xae, 0x9a, 0xc6, 0x4c, 0xa3, - 0x69, 0xbb, 0xf6, 0x46, 0x6b, 0x73, 0xa6, 0x62, 0x38, 0xe5, 0x66, 0xad, 0xe1, 0xda, 0xcd, 0x69, - 0x26, 0x53, 0x46, 0xb9, 0xc6, 0xb4, 0xd4, 0x98, 0x5a, 0x82, 0xb1, 0xcb, 0x35, 0xd3, 0x98, 0xf7, - 0x14, 0xd7, 0x0c, 0x57, 0xb9, 0x08, 0xd1, 0x4d, 0x14, 0x66, 0x43, 0xc7, 0x23, 0xa7, 0x92, 0x67, - 0x1f, 0x98, 0xee, 0x02, 0x4d, 0x77, 0x22, 0x56, 0x49, 0xac, 0x32, 0xc4, 0xd4, 0x47, 0x51, 0x18, - 0xef, 0x33, 0xaa, 0x28, 0x10, 0xb5, 0xf4, 0x3a, 0x31, 0x86, 0x4e, 0x25, 0x54, 0xf6, 0x5d, 0xc9, - 0xc2, 0x70, 0x43, 0x2f, 0xdf, 0xd4, 0xab, 0x46, 0x36, 0xcc, 0xc4, 0xf2, 0x52, 0x39, 0x0a, 0x50, - 0x31, 0x1a, 0x86, 0x55, 0x31, 0xac, 0xf2, 0x76, 0x36, 0x82, 0x56, 0x24, 0x54, 0x9f, 0x44, 0xf9, - 0x06, 0x8c, 0x35, 0x5a, 0x1b, 0x66, 0xad, 0xac, 0xf9, 0xd4, 0x00, 0xd5, 0x62, 0x6a, 0x86, 0x0f, - 0xcc, 0xb7, 0x95, 0x1f, 0x86, 0xd1, 0xdb, 0x86, 0x7e, 0xd3, 0xaf, 0x9a, 0x64, 0xaa, 0x69, 0x12, - 0xfb, 0x14, 0xe7, 0x20, 0x55, 0x37, 0x1c, 0x07, 0x0d, 0xd0, 0xdc, 0xed, 0x86, 0x91, 0x8d, 0xb2, - 0xa7, 0x3f, 0xde, 0xf3, 0xf4, 0xdd, 0x4f, 0x9e, 0x14, 0xa8, 0x75, 0x04, 0x29, 0xb3, 0x90, 0x30, - 0xac, 0x56, 0x9d, 0x33, 0xc4, 0x76, 0xf0, 0x5f, 0x01, 0x35, 0xba, 0x59, 0xe2, 0x04, 0x13, 0x14, - 0xc3, 0x8e, 0xd1, 0xbc, 0x55, 0x2b, 0x1b, 0xd9, 0x21, 0x46, 0xf0, 0x70, 0x0f, 0xc1, 0x1a, 0x1f, - 0xef, 0xe6, 0x90, 0x38, 0x7c, 0x94, 0x84, 0x71, 0xc7, 0x35, 0x2c, 0xa7, 0x66, 0x5b, 0xd9, 0x61, - 0x46, 0xf2, 0x60, 0x9f, 0x59, 0x34, 0xcc, 0x4a, 0x37, 0x45, 0x1b, 0xa7, 0x9c, 0x87, 0x61, 0xbb, - 0xe1, 0xe2, 0x37, 0x27, 0x1b, 0xc7, 0xf9, 0x49, 0x9e, 0xbd, 0xbf, 0x6f, 0x20, 0xac, 0x70, 0x1d, - 0x55, 0x2a, 0x2b, 0x45, 0xc8, 0x38, 0x76, 0xab, 0x59, 0x36, 0xb4, 0xb2, 0x5d, 0x31, 0xb4, 0x9a, - 0xb5, 0x69, 0x67, 0x13, 0x8c, 0xe0, 0x58, 0xef, 0x83, 0x30, 0xc5, 0x39, 0xd4, 0x2b, 0xa2, 0x9a, - 0x9a, 0x76, 0x3a, 0xae, 0x95, 0x83, 0x30, 0xe4, 0x6c, 0x5b, 0xae, 0x7e, 0x27, 0x9b, 0x62, 0x11, - 0x22, 0xae, 0xa6, 0xfe, 0x27, 0x06, 0xa3, 0x83, 0x84, 0xd8, 0x25, 0x88, 0x6d, 0xd2, 0x53, 0x62, - 0x80, 0xed, 0xc1, 0x07, 0x1c, 0xd3, 0xe9, 0xc4, 0xa1, 0x7d, 0x3a, 0x71, 0x16, 0x92, 0x96, 0xe1, - 0xb8, 0x46, 0x85, 0x47, 0x44, 0x64, 0xc0, 0x98, 0x02, 0x0e, 0xea, 0x0d, 0xa9, 0xe8, 0xbe, 0x42, - 0xea, 0x1a, 0x8c, 0x7a, 0x26, 0x69, 0x4d, 0xdd, 0xaa, 0xca, 0xd8, 0x9c, 0x09, 0xb2, 0x64, 0xba, - 0x20, 0x71, 0x2a, 0xc1, 0xd4, 0xb4, 0xd1, 0x71, 0xad, 0xcc, 0x03, 0xd8, 0x96, 0x61, 0x6f, 0xe2, - 0xf2, 0x2a, 0x9b, 0x18, 0x27, 0xfd, 0xbd, 0xb4, 0x42, 0x2a, 0x3d, 0x5e, 0xb2, 0xb9, 0xb4, 0x6c, - 0x2a, 0x8f, 0xb5, 0x43, 0x6d, 0x78, 0x87, 0x48, 0x59, 0xe2, 0x8b, 0xac, 0x27, 0xda, 0x4a, 0x90, - 0x6e, 0x1a, 0x14, 0xf7, 0xe8, 0x62, 0xfe, 0x64, 0x09, 0x66, 0xc4, 0x74, 0xe0, 0x93, 0xa9, 0x02, - 0xc6, 0x1f, 0x6c, 0xa4, 0xe9, 0xbf, 0x54, 0x4e, 0x82, 0x27, 0xd0, 0x58, 0x58, 0x01, 0xcb, 0x42, - 0x29, 0x29, 0x5c, 0x46, 0xd9, 0xe4, 0x45, 0x48, 0x77, 0xba, 0x47, 0x99, 0x80, 0x98, 0xe3, 0xea, - 0x4d, 0x97, 0x45, 0x61, 0x4c, 0xe5, 0x17, 0x4a, 0x06, 0x22, 0x98, 0x64, 0x58, 0x96, 0x8b, 0xa9, - 0xf4, 0x75, 0xf2, 0x02, 0x8c, 0x74, 0xdc, 0x7e, 0x50, 0xe0, 0xd4, 0xd3, 0x43, 0x30, 0xd1, 0x2f, - 0xe6, 0xfa, 0x86, 0x3f, 0x2e, 0x1f, 0x8c, 0x80, 0x0d, 0xa3, 0x89, 0x71, 0x47, 0x0c, 0xe2, 0x0a, - 0x23, 0x2a, 0x66, 0xea, 0x1b, 0x86, 0x89, 0xd1, 0x14, 0x3a, 0x95, 0x3e, 0xfb, 0x8d, 0x81, 0xa2, - 0x7a, 0x7a, 0x91, 0x20, 0x2a, 0x47, 0x2a, 0x8f, 0x43, 0x54, 0xa4, 0x38, 0x62, 0x38, 0x3d, 0x18, - 0x03, 0xc5, 0xa2, 0xca, 0x70, 0xca, 0xd7, 0x20, 0x41, 0xff, 0xb9, 0x6f, 0x87, 0x98, 0xcd, 0x71, - 0x12, 0x90, 0x5f, 0x95, 0x49, 0x88, 0xb3, 0x30, 0xab, 0x18, 0xb2, 0x34, 0x78, 0xd7, 0x34, 0x31, - 0x15, 0x63, 0x53, 0x6f, 0x99, 0xae, 0x76, 0x4b, 0x37, 0x5b, 0x06, 0x0b, 0x18, 0x9c, 0x18, 0x21, - 0xfc, 0x1e, 0xc9, 0x94, 0x63, 0x90, 0xe4, 0x51, 0x59, 0x43, 0xcc, 0x1d, 0x96, 0x7d, 0x62, 0x2a, - 0x0f, 0xd4, 0x22, 0x49, 0xe8, 0xf6, 0x37, 0x1c, 0x5c, 0x0b, 0x62, 0x6a, 0xd9, 0x2d, 0x48, 0xc0, - 0x6e, 0x7f, 0xa1, 0x3b, 0xf1, 0x1d, 0xe9, 0xff, 0x78, 0xdd, 0xb1, 0x38, 0xf5, 0xe7, 0x61, 0x88, - 0xb2, 0xf5, 0x36, 0x0a, 0xc9, 0xf5, 0xeb, 0xab, 0x05, 0x6d, 0x7e, 0xa5, 0x94, 0x5f, 0x2c, 0x64, - 0x42, 0x4a, 0x1a, 0x80, 0x09, 0x2e, 0x2f, 0xae, 0xcc, 0xae, 0x67, 0xc2, 0xde, 0x75, 0x71, 0x79, - 0xfd, 0xfc, 0xb9, 0x4c, 0xc4, 0x03, 0x94, 0xb8, 0x20, 0xea, 0x57, 0x78, 0xe4, 0x6c, 0x26, 0x86, - 0x91, 0x90, 0xe2, 0x04, 0xc5, 0x6b, 0x85, 0x79, 0xd4, 0x18, 0xea, 0x94, 0xa0, 0xce, 0xb0, 0x32, - 0x02, 0x09, 0x26, 0xc9, 0xaf, 0xac, 0x2c, 0x66, 0xe2, 0x1e, 0xe7, 0xda, 0xba, 0x5a, 0x5c, 0x5e, - 0xc8, 0x24, 0x3c, 0xce, 0x05, 0x75, 0xa5, 0xb4, 0x9a, 0x01, 0x8f, 0x61, 0xa9, 0xb0, 0xb6, 0x36, - 0xbb, 0x50, 0xc8, 0x24, 0x3d, 0x8d, 0xfc, 0xf5, 0xf5, 0xc2, 0x5a, 0x26, 0xd5, 0x61, 0x16, 0xde, - 0x62, 0xc4, 0xbb, 0x45, 0x61, 0xb9, 0xb4, 0x94, 0x49, 0x2b, 0x63, 0x30, 0xc2, 0x6f, 0x21, 0x8d, - 0x18, 0xed, 0x12, 0xa1, 0xa5, 0x99, 0xb6, 0x21, 0x9c, 0x65, 0xac, 0x43, 0x80, 0x1a, 0xca, 0xd4, - 0x1c, 0xc4, 0x58, 0x74, 0x61, 0x14, 0xa7, 0x17, 0x67, 0xf3, 0x85, 0x45, 0x6d, 0x65, 0x75, 0xbd, - 0xb8, 0xb2, 0x3c, 0xbb, 0x88, 0xbe, 0xf3, 0x64, 0x6a, 0xe1, 0xc7, 0x4a, 0x45, 0xb5, 0x30, 0x8f, - 0xfe, 0xf3, 0xc9, 0x56, 0x0b, 0xb3, 0xeb, 0x28, 0x8b, 0x4c, 0x9d, 0x86, 0x89, 0x7e, 0x79, 0xa6, - 0xdf, 0xca, 0x98, 0x7a, 0x39, 0x04, 0xe3, 0x7d, 0x52, 0x66, 0xdf, 0x55, 0xf4, 0x1d, 0x88, 0xf1, - 0x48, 0xe3, 0x45, 0xe4, 0xeb, 0x7d, 0x73, 0x2f, 0x8b, 0xbb, 0x9e, 0x42, 0xc2, 0x70, 0xfe, 0x42, - 0x1a, 0xd9, 0xa1, 0x90, 0x12, 0x45, 0x4f, 0x38, 0xdd, 0x0d, 0x41, 0x76, 0x27, 0xee, 0x80, 0xf5, - 0x1e, 0xee, 0x58, 0xef, 0x97, 0xba, 0x0d, 0x38, 0xb1, 0xf3, 0x33, 0xf4, 0x58, 0xf1, 0x4a, 0x08, - 0x0e, 0xf6, 0xef, 0x37, 0xfa, 0xda, 0xf0, 0x38, 0x0c, 0xd5, 0x0d, 0x77, 0xcb, 0x96, 0x35, 0xf7, - 0xa1, 0x3e, 0x99, 0x9c, 0x86, 0xbb, 0x7d, 0x25, 0x50, 0xfe, 0x52, 0x10, 0xd9, 0xa9, 0x69, 0xe0, - 0xd6, 0xf4, 0x58, 0xfa, 0x54, 0x18, 0xee, 0xeb, 0x4b, 0xde, 0xd7, 0xd0, 0x23, 0x00, 0x35, 0xab, - 0xd1, 0x72, 0x79, 0x5d, 0xe5, 0x69, 0x26, 0xc1, 0x24, 0x6c, 0x09, 0x53, 0x0a, 0x69, 0xb9, 0xde, - 0x78, 0x84, 0x8d, 0x03, 0x17, 0x31, 0x85, 0x8b, 0x6d, 0x43, 0xa3, 0xcc, 0xd0, 0xa3, 0x3b, 0x3c, - 0x69, 0x4f, 0xc9, 0x3a, 0x03, 0x99, 0xb2, 0x59, 0x33, 0x2c, 0x57, 0x73, 0xdc, 0xa6, 0xa1, 0xd7, - 0x6b, 0x56, 0x95, 0xe5, 0xd1, 0x78, 0x2e, 0xb6, 0xa9, 0x9b, 0x8e, 0xa1, 0x8e, 0xf2, 0xe1, 0x35, - 0x39, 0x4a, 0x08, 0x56, 0x2c, 0x9a, 0x3e, 0xc4, 0x50, 0x07, 0x82, 0x0f, 0x7b, 0x88, 0xa9, 0x7f, - 0x18, 0x86, 0xa4, 0xaf, 0x3b, 0x53, 0x4e, 0x40, 0xea, 0x86, 0x7e, 0x4b, 0xd7, 0x64, 0xc7, 0xcd, - 0x3d, 0x91, 0x24, 0xd9, 0xaa, 0xe8, 0xba, 0xcf, 0xc0, 0x04, 0x53, 0xc1, 0x67, 0xc4, 0x1b, 0x95, - 0x4d, 0xdd, 0x71, 0x98, 0xd3, 0xe2, 0x4c, 0x55, 0xa1, 0xb1, 0x15, 0x1a, 0x9a, 0x93, 0x23, 0xca, - 0xa3, 0x30, 0xce, 0x10, 0x75, 0x4c, 0xbc, 0xb5, 0x86, 0x69, 0x68, 0xb4, 0x07, 0x70, 0x58, 0x3e, - 0xf5, 0x2c, 0x1b, 0x23, 0x8d, 0x25, 0xa1, 0x40, 0x16, 0x39, 0xca, 0x02, 0x1c, 0x61, 0xb0, 0xaa, - 0x61, 0x19, 0x4d, 0xdd, 0x35, 0x34, 0xe3, 0x27, 0x5b, 0xa8, 0xab, 0xe9, 0x56, 0x45, 0xdb, 0xd2, - 0x9d, 0xad, 0xec, 0x84, 0x9f, 0xe0, 0x30, 0xe9, 0x2e, 0x08, 0xd5, 0x02, 0xd3, 0x9c, 0xb5, 0x2a, - 0xdf, 0x45, 0x3d, 0x25, 0x07, 0x07, 0x19, 0x11, 0x3a, 0x05, 0x9f, 0x59, 0x2b, 0x6f, 0x19, 0xe5, - 0x9b, 0x5a, 0xcb, 0xdd, 0xbc, 0x98, 0xfd, 0x9a, 0x9f, 0x81, 0x19, 0xb9, 0xc6, 0x74, 0xe6, 0x48, - 0xa5, 0x84, 0x1a, 0xca, 0x1a, 0xa4, 0x68, 0x3e, 0xea, 0xb5, 0xef, 0xa3, 0xd9, 0x76, 0x93, 0xd5, - 0x88, 0x74, 0x9f, 0xc5, 0xed, 0x73, 0xe2, 0xf4, 0x8a, 0x00, 0x2c, 0x61, 0x7f, 0x9a, 0x8b, 0xad, - 0xad, 0x16, 0x0a, 0xf3, 0x6a, 0x52, 0xb2, 0x5c, 0xb6, 0x9b, 0x14, 0x53, 0x55, 0xdb, 0xf3, 0x71, - 0x92, 0xc7, 0x54, 0xd5, 0x96, 0x1e, 0x46, 0x7f, 0x95, 0xcb, 0xfc, 0xb1, 0x71, 0xef, 0x22, 0x9a, - 0x75, 0x27, 0x9b, 0xe9, 0xf0, 0x57, 0xb9, 0xbc, 0xc0, 0x15, 0x44, 0x98, 0x3b, 0xb8, 0x24, 0xee, - 0x6b, 0xfb, 0xcb, 0x0f, 0x1c, 0xeb, 0x79, 0xca, 0x6e, 0x28, 0xde, 0xb1, 0xb1, 0xdd, 0x0b, 0x54, - 0x3a, 0xee, 0xd8, 0xd8, 0xee, 0x86, 0x3d, 0xc8, 0x36, 0x60, 0x4d, 0xa3, 0x8c, 0x2e, 0xaf, 0x64, - 0x0f, 0xf9, 0xb5, 0x7d, 0x03, 0xca, 0x0c, 0x06, 0x72, 0x59, 0x33, 0x2c, 0x7d, 0x03, 0xe7, 0x5e, - 0x6f, 0xe2, 0x17, 0x27, 0x7b, 0xcc, 0xaf, 0x9c, 0x2e, 0x97, 0x0b, 0x6c, 0x74, 0x96, 0x0d, 0x2a, - 0xa7, 0x61, 0xcc, 0xde, 0xb8, 0x51, 0xe6, 0xc1, 0xa5, 0x21, 0xcf, 0x66, 0xed, 0x4e, 0xf6, 0x01, - 0xe6, 0xa6, 0x51, 0x1a, 0x60, 0xa1, 0xb5, 0xca, 0xc4, 0xca, 0xd7, 0x91, 0xdc, 0xd9, 0xd2, 0x9b, - 0x0d, 0x56, 0xa4, 0x1d, 0x74, 0xaa, 0x91, 0x7d, 0x90, 0xab, 0x72, 0xf9, 0xb2, 0x14, 0x2b, 0x05, - 0x38, 0x46, 0x0f, 0x6f, 0xe9, 0x96, 0xad, 0xb5, 0x1c, 0x43, 0x6b, 0x9b, 0xe8, 0xcd, 0xc5, 0x43, - 0x64, 0x96, 0x7a, 0xbf, 0x54, 0x2b, 0x39, 0x98, 0xcc, 0xa4, 0x92, 0x9c, 0x9e, 0x6b, 0x30, 0xd1, - 0xb2, 0x6a, 0x16, 0x86, 0x38, 0x8e, 0x10, 0x98, 0x2f, 0xd8, 0xec, 0xbf, 0x0c, 0xef, 0xd0, 0x74, - 0x97, 0xfc, 0xda, 0x3c, 0x48, 0xd4, 0xf1, 0x56, 0xaf, 0x70, 0x2a, 0x07, 0x29, 0x7f, 0xec, 0x28, - 0x09, 0xe0, 0xd1, 0x83, 0xd5, 0x0d, 0x2b, 0xea, 0xdc, 0xca, 0x3c, 0xd5, 0xc2, 0x27, 0x0a, 0x58, - 0xd8, 0xb0, 0x26, 0x2f, 0x16, 0xd7, 0x0b, 0x9a, 0x5a, 0x5a, 0x5e, 0x2f, 0x2e, 0x15, 0x32, 0x91, - 0xd3, 0x89, 0xf8, 0xc7, 0xc3, 0x99, 0x27, 0xf1, 0x2f, 0x3c, 0xf5, 0x76, 0x18, 0xd2, 0x9d, 0x7d, - 0xb0, 0xf2, 0x6d, 0x38, 0x24, 0x37, 0xad, 0x8e, 0xe1, 0x6a, 0xb7, 0x6b, 0x4d, 0x16, 0xce, 0x75, - 0x9d, 0x77, 0x92, 0xde, 0x4c, 0x4c, 0x08, 0x2d, 0xdc, 0xde, 0x5f, 0x45, 0x9d, 0xcb, 0x4c, 0x45, - 0x59, 0x84, 0x63, 0xe8, 0x32, 0xec, 0x35, 0xad, 0x8a, 0xde, 0xac, 0x68, 0xed, 0xe3, 0x02, 0x4d, - 0x2f, 0x63, 0x1c, 0x38, 0x36, 0xaf, 0x24, 0x1e, 0xcb, 0xfd, 0x96, 0xbd, 0x26, 0x94, 0xdb, 0x29, - 0x76, 0x56, 0xa8, 0x76, 0x45, 0x4d, 0x64, 0xa7, 0xa8, 0xc1, 0xde, 0xab, 0xae, 0x37, 0x30, 0x6c, - 0xdc, 0xe6, 0x36, 0xeb, 0xde, 0xe2, 0x6a, 0x1c, 0x05, 0x05, 0xba, 0xfe, 0xf2, 0xe6, 0xc0, 0xef, - 0xc7, 0x7f, 0x8a, 0x40, 0xca, 0xdf, 0xc1, 0x51, 0x43, 0x5c, 0x66, 0x69, 0x3e, 0xc4, 0xb2, 0xc0, - 0xc9, 0x5d, 0xfb, 0xbd, 0xe9, 0x39, 0xca, 0xff, 0xb9, 0x21, 0xde, 0x57, 0xa9, 0x1c, 0x49, 0xb5, - 0x97, 0x62, 0xcd, 0xe0, 0xdd, 0x7a, 0x5c, 0x15, 0x57, 0x98, 0xec, 0x86, 0x6e, 0x38, 0x8c, 0x7b, - 0x88, 0x71, 0x3f, 0xb0, 0x3b, 0xf7, 0x95, 0x35, 0x46, 0x9e, 0xb8, 0xb2, 0xa6, 0x2d, 0xaf, 0xa8, - 0x4b, 0xb3, 0x8b, 0xaa, 0x80, 0x2b, 0x87, 0x21, 0x6a, 0xea, 0xdf, 0xdf, 0xee, 0xac, 0x14, 0x4c, - 0x34, 0xa8, 0xe3, 0x91, 0x81, 0x8e, 0x3c, 0x3a, 0xf3, 0x33, 0x13, 0x7d, 0x89, 0xa1, 0x3f, 0x03, - 0x31, 0xe6, 0x2f, 0x05, 0x40, 0x78, 0x2c, 0x73, 0x40, 0x89, 0x43, 0x74, 0x6e, 0x45, 0xa5, 0xf0, - 0xc7, 0x78, 0xe7, 0x52, 0x6d, 0xb5, 0x58, 0x98, 0xc3, 0x15, 0x30, 0xf5, 0x28, 0x0c, 0x71, 0x27, - 0xd0, 0xd2, 0xf0, 0xdc, 0x80, 0x20, 0x7e, 0x29, 0x38, 0x42, 0x72, 0xb4, 0xb4, 0x94, 0x2f, 0xa8, - 0x99, 0xb0, 0x7f, 0x7a, 0xff, 0x32, 0x04, 0x49, 0x5f, 0x43, 0x45, 0xa5, 0x5c, 0x37, 0x4d, 0xfb, - 0xb6, 0xa6, 0x9b, 0x35, 0xcc, 0x50, 0x7c, 0x7e, 0x80, 0x89, 0x66, 0x49, 0x32, 0xa8, 0xff, 0xfe, - 0x5f, 0x62, 0xf3, 0xc5, 0x10, 0x64, 0xba, 0x9b, 0xb1, 0x2e, 0x03, 0x43, 0x5f, 0xa9, 0x81, 0xcf, - 0x87, 0x20, 0xdd, 0xd9, 0x81, 0x75, 0x99, 0x77, 0xe2, 0x2b, 0x35, 0xef, 0xb9, 0x10, 0x8c, 0x74, - 0xf4, 0x5d, 0x3f, 0x54, 0xd6, 0x3d, 0x1b, 0x81, 0xf1, 0x3e, 0x38, 0x4c, 0x40, 0xbc, 0x41, 0xe5, - 0x3d, 0xf3, 0xb7, 0x06, 0xb9, 0xd7, 0x34, 0xd5, 0xbf, 0x55, 0xbd, 0xe9, 0x8a, 0x7e, 0x16, 0xeb, - 0x65, 0xad, 0x82, 0x49, 0xb5, 0xb6, 0x59, 0xc3, 0xf6, 0x8d, 0xef, 0x58, 0x78, 0xd7, 0x3a, 0xda, - 0x96, 0xf3, 0xed, 0xf1, 0x37, 0x41, 0x69, 0xd8, 0x4e, 0xcd, 0xad, 0xdd, 0xa2, 0xe3, 0x39, 0xb9, - 0x91, 0xa6, 0x2e, 0x36, 0xaa, 0x66, 0xe4, 0x48, 0xd1, 0x72, 0x3d, 0x6d, 0xcb, 0xa8, 0xea, 0x5d, - 0xda, 0x94, 0x86, 0x22, 0x6a, 0x46, 0x8e, 0x78, 0xda, 0xd8, 0x68, 0x56, 0xec, 0x16, 0x35, 0x04, - 0x5c, 0x8f, 0xb2, 0x5e, 0x48, 0x4d, 0x72, 0x99, 0xa7, 0x22, 0x3a, 0xb6, 0xf6, 0x0e, 0x3e, 0xa5, - 0x26, 0xb9, 0x8c, 0xab, 0x3c, 0x0c, 0xa3, 0x7a, 0xb5, 0xda, 0x24, 0x72, 0x49, 0xc4, 0xdb, 0xd0, - 0xb4, 0x27, 0x66, 0x8a, 0x93, 0x57, 0x20, 0x2e, 0xfd, 0x40, 0x85, 0x85, 0x3c, 0x81, 0x35, 0x9f, - 0x9d, 0xa3, 0x84, 0x69, 0x53, 0x6f, 0xc9, 0x41, 0xbc, 0x69, 0xcd, 0xd1, 0xda, 0x07, 0x7a, 0x61, - 0x1c, 0x8f, 0xab, 0xc9, 0x9a, 0xe3, 0x9d, 0xe0, 0x4c, 0xbd, 0x82, 0xe5, 0xb5, 0xf3, 0x40, 0x52, - 0x99, 0x87, 0xb8, 0x69, 0x63, 0x7c, 0x10, 0x82, 0x9f, 0x86, 0x9f, 0x0a, 0x38, 0xc3, 0x9c, 0x5e, - 0x14, 0xfa, 0xaa, 0x87, 0x9c, 0xfc, 0xdb, 0x10, 0xc4, 0xa5, 0x18, 0x0b, 0x45, 0xb4, 0xa1, 0xbb, - 0x5b, 0x8c, 0x2e, 0x96, 0x0f, 0x67, 0x42, 0x2a, 0xbb, 0x26, 0x39, 0x76, 0x33, 0x16, 0x0b, 0x01, - 0x21, 0xa7, 0x6b, 0x9a, 0x57, 0xd3, 0xd0, 0x2b, 0xac, 0xc1, 0xb5, 0xeb, 0x75, 0x9c, 0x49, 0x47, - 0xce, 0xab, 0x90, 0xcf, 0x09, 0x31, 0x9d, 0x8b, 0xbb, 0x4d, 0xbd, 0x66, 0x76, 0xe8, 0x46, 0x99, - 0x6e, 0x46, 0x0e, 0x78, 0xca, 0x39, 0x38, 0x2c, 0x79, 0x2b, 0x86, 0xab, 0x63, 0xf3, 0x5c, 0x69, - 0x83, 0x86, 0xd8, 0x69, 0xd7, 0x21, 0xa1, 0x30, 0x2f, 0xc6, 0x25, 0x36, 0x7f, 0x0d, 0x1b, 0x59, - 0xbb, 0xde, 0xed, 0x89, 0x7c, 0xa6, 0x6b, 0xdf, 0xe5, 0x7c, 0x37, 0xf4, 0x04, 0xb4, 0x9b, 0x8a, - 0x97, 0xc3, 0x91, 0x85, 0xd5, 0xfc, 0x6b, 0xe1, 0xc9, 0x05, 0x8e, 0x5b, 0x95, 0x1e, 0x54, 0x8d, - 0x4d, 0xd3, 0x28, 0x93, 0x77, 0xe0, 0xa5, 0x93, 0xf0, 0xad, 0x6a, 0xcd, 0xdd, 0x6a, 0x6d, 0x4c, - 0xe3, 0x1d, 0x66, 0xaa, 0x76, 0xd5, 0x6e, 0xbf, 0xce, 0xa0, 0x2b, 0x76, 0xc1, 0xbe, 0x89, 0x57, - 0x1a, 0x09, 0x4f, 0x3a, 0x19, 0xf8, 0xfe, 0x23, 0xb7, 0x0c, 0xe3, 0x42, 0x59, 0x63, 0x67, 0xaa, - 0xbc, 0x05, 0x55, 0x76, 0xdd, 0x90, 0x67, 0xdf, 0xf8, 0x88, 0x95, 0x04, 0x75, 0x4c, 0x40, 0x69, - 0x8c, 0x37, 0xa9, 0x39, 0x15, 0xee, 0xeb, 0xe0, 0xe3, 0x31, 0x8c, 0x5b, 0xee, 0xdd, 0x19, 0xdf, - 0x16, 0x8c, 0xe3, 0x3e, 0xc6, 0x35, 0x01, 0xcd, 0xcd, 0xc1, 0xc8, 0x5e, 0xb8, 0xfe, 0x5a, 0x70, - 0xa5, 0x0c, 0x3f, 0xc9, 0x02, 0x8c, 0x32, 0x92, 0x72, 0xcb, 0x71, 0xed, 0x3a, 0x4b, 0x10, 0xbb, - 0xd3, 0xfc, 0xcd, 0x47, 0x3c, 0xa8, 0xd2, 0x04, 0x9b, 0xf3, 0x50, 0xb9, 0xef, 0xc1, 0x04, 0x49, - 0xd8, 0x1a, 0xf4, 0xb3, 0x05, 0x1f, 0x21, 0x64, 0xff, 0xfe, 0x2e, 0x8f, 0xbd, 0x71, 0x8f, 0xc0, - 0xc7, 0xeb, 0x9b, 0x89, 0xaa, 0xe1, 0x62, 0x6e, 0xc3, 0xfd, 0x9f, 0x69, 0x2a, 0xbb, 0xbe, 0x63, - 0xc8, 0x3e, 0xf3, 0x49, 0xe7, 0x4c, 0x2c, 0x70, 0xe4, 0xac, 0x69, 0xe6, 0x4a, 0x70, 0xa8, 0xcf, - 0xcc, 0x0e, 0xc0, 0xf9, 0xac, 0xe0, 0x9c, 0xe8, 0x99, 0x5d, 0xa2, 0x5d, 0x05, 0x29, 0xf7, 0xe6, - 0x63, 0x00, 0xce, 0xe7, 0x04, 0xa7, 0x22, 0xb0, 0x72, 0x5a, 0x88, 0xf1, 0x0a, 0x8c, 0xe1, 0x4e, - 0x7d, 0xc3, 0x76, 0xc4, 0xbe, 0x77, 0x00, 0xba, 0xe7, 0x05, 0xdd, 0xa8, 0x00, 0xb2, 0x5d, 0x30, - 0x71, 0x3d, 0x06, 0xf1, 0x4d, 0xdc, 0x00, 0x0d, 0x40, 0xf1, 0x82, 0xa0, 0x18, 0x26, 0x7d, 0x82, - 0xce, 0x42, 0xaa, 0x6a, 0x8b, 0x34, 0x1c, 0x0c, 0x7f, 0x51, 0xc0, 0x93, 0x12, 0x23, 0x28, 0x1a, - 0x76, 0xa3, 0x65, 0x52, 0x8e, 0x0e, 0xa6, 0xf8, 0x2d, 0x49, 0x21, 0x31, 0x82, 0x62, 0x0f, 0x6e, - 0xfd, 0x6d, 0x49, 0xe1, 0xf8, 0xfc, 0xf9, 0x1d, 0x3a, 0xeb, 0x35, 0xb7, 0x6d, 0x6b, 0x10, 0x23, - 0x5e, 0x12, 0x0c, 0x20, 0x20, 0x44, 0x70, 0x09, 0x12, 0x83, 0x4e, 0xc4, 0xef, 0x08, 0x78, 0xdc, - 0x90, 0x33, 0x80, 0xeb, 0x4c, 0x26, 0x19, 0x7a, 0xb7, 0x12, 0x4c, 0xf1, 0xbb, 0x82, 0x22, 0xed, - 0x83, 0x89, 0xc7, 0x70, 0x0d, 0xc7, 0xc5, 0xad, 0xfa, 0x00, 0x24, 0xaf, 0xc8, 0xc7, 0x10, 0x10, - 0xe1, 0xca, 0x0d, 0xc3, 0x2a, 0x6f, 0x0d, 0xc6, 0xf0, 0xaa, 0x74, 0xa5, 0xc4, 0x10, 0x05, 0x66, - 0x9e, 0xba, 0xde, 0xc4, 0xcd, 0xb5, 0x39, 0xd0, 0x74, 0xfc, 0x9e, 0xe0, 0x48, 0x79, 0x20, 0xe1, - 0x91, 0x96, 0xb5, 0x17, 0x9a, 0xd7, 0xa4, 0x47, 0x7c, 0x30, 0xb1, 0xf4, 0x70, 0x67, 0x4a, 0x9d, - 0xc4, 0x5e, 0xd8, 0x7e, 0x5f, 0x2e, 0x3d, 0x8e, 0x5d, 0xf2, 0x33, 0xe2, 0x4c, 0x3b, 0xb8, 0x05, - 0x1f, 0x84, 0xe6, 0x0f, 0xe4, 0x4c, 0x33, 0x00, 0x81, 0xaf, 0xc3, 0xe1, 0xbe, 0xa9, 0x7e, 0x00, - 0xb2, 0x3f, 0x14, 0x64, 0x07, 0xfb, 0xa4, 0x7b, 0x91, 0x12, 0xf6, 0x4a, 0xf9, 0x47, 0x32, 0x25, - 0x18, 0x5d, 0x5c, 0xab, 0xd4, 0xc6, 0x3a, 0xfa, 0xe6, 0xde, 0xbc, 0xf6, 0xc7, 0xd2, 0x6b, 0x1c, - 0xdb, 0xe1, 0xb5, 0x75, 0x38, 0x28, 0x18, 0xf7, 0x36, 0xaf, 0xaf, 0xcb, 0xc4, 0xca, 0xd1, 0xa5, - 0xce, 0xd9, 0xfd, 0x71, 0x98, 0xf4, 0xdc, 0x29, 0x3b, 0x30, 0x47, 0xa3, 0x83, 0x81, 0x60, 0xe6, - 0x37, 0x04, 0xb3, 0xcc, 0xf8, 0x5e, 0x0b, 0xe7, 0x2c, 0xe9, 0x0d, 0x22, 0xbf, 0x06, 0x59, 0x49, - 0xde, 0xb2, 0xb0, 0xc1, 0xb7, 0xab, 0x16, 0x4e, 0x63, 0x65, 0x00, 0xea, 0x3f, 0xe9, 0x9a, 0xaa, - 0x92, 0x0f, 0x4e, 0xcc, 0x45, 0xc8, 0x78, 0xfd, 0x86, 0x56, 0xab, 0x37, 0x6c, 0x6c, 0x2d, 0x77, - 0x67, 0xfc, 0x53, 0x39, 0x53, 0x1e, 0xae, 0xc8, 0x60, 0xb9, 0x02, 0xa4, 0xd9, 0xe5, 0xa0, 0x21, - 0xf9, 0x67, 0x82, 0x68, 0xa4, 0x8d, 0x12, 0x89, 0x03, 0x3b, 0x25, 0xec, 0x79, 0x07, 0xc9, 0x7f, - 0x6f, 0xca, 0xc4, 0x21, 0x20, 0x3c, 0xfa, 0x46, 0xbb, 0x2a, 0xb1, 0x12, 0xf4, 0xfa, 0x35, 0xfb, - 0x53, 0xf7, 0xc4, 0x9a, 0xed, 0x2c, 0xc4, 0xb9, 0x45, 0x72, 0x4f, 0x67, 0xb9, 0x0c, 0x26, 0xbb, - 0x7b, 0xcf, 0xf3, 0x50, 0x47, 0xb5, 0xcc, 0x5d, 0x86, 0x91, 0x8e, 0x52, 0x19, 0x4c, 0xf5, 0x33, - 0x82, 0x2a, 0xe5, 0xaf, 0x94, 0xb9, 0x47, 0x21, 0x4a, 0x65, 0x2f, 0x18, 0xfe, 0xb3, 0x02, 0xce, - 0xd4, 0x73, 0x3f, 0x0a, 0x71, 0x59, 0xee, 0x82, 0xa1, 0x3f, 0x27, 0xa0, 0x1e, 0x84, 0xe0, 0xb2, - 0xd4, 0x05, 0xc3, 0x7f, 0x20, 0xe1, 0x12, 0x42, 0xf0, 0xc1, 0x5d, 0xf8, 0xd6, 0x2f, 0x44, 0x45, - 0xba, 0x92, 0xbe, 0xa3, 0x77, 0x3e, 0xbc, 0xc6, 0x05, 0xa3, 0x9f, 0x12, 0x37, 0x97, 0x88, 0xdc, - 0x05, 0x88, 0x0d, 0xe8, 0xf0, 0x5f, 0x14, 0x50, 0xae, 0x8f, 0x15, 0x24, 0xe9, 0xab, 0x6b, 0xc1, - 0xf0, 0x5f, 0x12, 0x70, 0x3f, 0x8a, 0x4c, 0x17, 0x75, 0x2d, 0x98, 0xe0, 0x97, 0xa5, 0xe9, 0x02, - 0x41, 0x6e, 0x93, 0x25, 0x2d, 0x18, 0xfd, 0x2b, 0xd2, 0xeb, 0x12, 0x82, 0xab, 0x29, 0xe1, 0xa5, - 0xa9, 0x60, 0xfc, 0xaf, 0x0a, 0x7c, 0x1b, 0x43, 0x1e, 0xf0, 0xa5, 0xc9, 0x60, 0x8a, 0x5f, 0x93, - 0x1e, 0xf0, 0xa1, 0x68, 0x19, 0x75, 0x97, 0xbe, 0x60, 0xa6, 0x5f, 0x97, 0xcb, 0xa8, 0xab, 0xf2, - 0xd1, 0x6c, 0xb2, 0x6c, 0x11, 0x4c, 0xf1, 0x1b, 0x72, 0x36, 0x99, 0x3e, 0x99, 0xd1, 0x5d, 0x4b, - 0x82, 0x39, 0x7e, 0x53, 0x9a, 0xd1, 0x55, 0x4a, 0xb0, 0x32, 0x29, 0xbd, 0x75, 0x24, 0x98, 0xef, - 0x69, 0xc1, 0x37, 0xd6, 0x53, 0x46, 0x72, 0x57, 0xe1, 0x60, 0xff, 0x1a, 0x12, 0xcc, 0xfa, 0xcc, - 0xbd, 0xae, 0xae, 0xdf, 0x5f, 0x42, 0xb0, 0xe4, 0x4d, 0xf4, 0xab, 0x1f, 0xc1, 0xb4, 0xcf, 0xde, - 0xeb, 0xdc, 0xd8, 0xf9, 0xcb, 0x07, 0x76, 0x68, 0xd0, 0x4e, 0xdd, 0xc1, 0x5c, 0xcf, 0x0b, 0x2e, - 0x1f, 0x88, 0x96, 0x86, 0xc8, 0xdc, 0xc1, 0xf8, 0x17, 0xe4, 0xd2, 0x10, 0x08, 0x04, 0xc7, 0xad, - 0x96, 0x69, 0x52, 0x70, 0x28, 0xbb, 0xff, 0xa4, 0x21, 0xfb, 0xaf, 0x9f, 0x8b, 0x85, 0x21, 0x01, - 0x98, 0x43, 0x63, 0x46, 0x7d, 0x03, 0x7d, 0x10, 0x80, 0xfc, 0xb7, 0xcf, 0x65, 0x42, 0x20, 0x6d, - 0x5c, 0x4f, 0xc0, 0x37, 0x8d, 0xec, 0x0c, 0x3b, 0x00, 0xfb, 0xef, 0x9f, 0x8b, 0xd7, 0xac, 0x6d, - 0x48, 0x9b, 0x80, 0xbf, 0xb4, 0xdd, 0x9d, 0xe0, 0x93, 0x4e, 0x02, 0xb6, 0xd1, 0x7c, 0x0c, 0x86, - 0xe9, 0x97, 0x1d, 0xae, 0x5e, 0x0d, 0x42, 0xff, 0x87, 0x40, 0x4b, 0x7d, 0x72, 0x58, 0xdd, 0x6e, - 0x1a, 0xf8, 0xd5, 0x09, 0xc2, 0xfe, 0xa7, 0xc0, 0x7a, 0x00, 0x02, 0x97, 0x75, 0xc7, 0x1d, 0xe4, - 0xb9, 0xff, 0x4b, 0x82, 0x25, 0x80, 0x8c, 0xa6, 0xef, 0x37, 0x8d, 0xed, 0x20, 0xec, 0xa7, 0xd2, - 0x68, 0xa1, 0x8f, 0x09, 0x30, 0x41, 0x5f, 0xf9, 0x4f, 0x0f, 0x02, 0xc0, 0xff, 0x2d, 0xc0, 0x6d, - 0x44, 0xfe, 0x44, 0xff, 0xa3, 0x1d, 0x58, 0xb0, 0x17, 0x6c, 0x7e, 0xa8, 0x03, 0x1f, 0xa4, 0xe1, - 0x08, 0xea, 0x60, 0x7d, 0x9d, 0xb1, 0x8c, 0x9a, 0xbb, 0x65, 0x34, 0x67, 0xa4, 0xe1, 0xe2, 0x4c, - 0xc6, 0x7b, 0x90, 0xc9, 0xbd, 0x1d, 0xe6, 0x4c, 0x3d, 0x3d, 0x02, 0xf1, 0x39, 0xc4, 0xea, 0xb7, - 0x75, 0x7a, 0xad, 0x11, 0x2f, 0x5a, 0xee, 0x23, 0x67, 0x57, 0xdd, 0x26, 0x3b, 0xf3, 0x8e, 0xe4, - 0x13, 0xff, 0xfb, 0xee, 0xb1, 0x58, 0x8d, 0x64, 0x6a, 0xbc, 0x26, 0x86, 0x94, 0x93, 0x10, 0x63, - 0x6a, 0xec, 0x60, 0x3f, 0x92, 0x1f, 0x79, 0xe7, 0xdd, 0x63, 0x07, 0xda, 0x7a, 0xfc, 0x9f, 0x72, - 0x1d, 0x92, 0x4b, 0xdb, 0x25, 0xfc, 0x7e, 0xfe, 0x1c, 0xd1, 0xd1, 0x63, 0x47, 0xf3, 0x17, 0x50, - 0xed, 0x91, 0x1d, 0x0d, 0xa4, 0x8a, 0xd2, 0x7e, 0x30, 0x89, 0x66, 0xbf, 0x61, 0x4a, 0xd6, 0xdb, - 0x5c, 0xca, 0x55, 0x88, 0xcb, 0x41, 0x7e, 0x86, 0x9a, 0xbf, 0x24, 0x4c, 0xd8, 0x17, 0x77, 0x5c, - 0x72, 0x2b, 0x3f, 0x01, 0xa9, 0xa5, 0xed, 0xcb, 0xa6, 0xad, 0x0b, 0x1f, 0xd0, 0x91, 0x6b, 0x38, - 0x7f, 0x11, 0x89, 0xcf, 0x0d, 0x4c, 0x2c, 0xe0, 0x8c, 0x39, 0x55, 0xf7, 0xb1, 0x29, 0x4f, 0x40, - 0xc2, 0x1b, 0x66, 0xa7, 0xb4, 0xe1, 0xfc, 0xb7, 0x85, 0xdd, 0xfb, 0xa3, 0x4f, 0x78, 0xf4, 0x3e, - 0xcb, 0xb9, 0xbb, 0xe9, 0x84, 0x37, 0xb4, 0x1f, 0xcb, 0x85, 0x4f, 0xa4, 0xe5, 0xdc, 0xe1, 0x6d, - 0xcb, 0xd1, 0xe3, 0x71, 0x46, 0xbd, 0x4f, 0xcb, 0x05, 0x7d, 0xc2, 0xa3, 0x57, 0xae, 0xc0, 0xf0, - 0xd2, 0x76, 0x7e, 0x1b, 0xb5, 0xd9, 0x2f, 0x02, 0x52, 0xf9, 0x33, 0xc8, 0xfa, 0xcd, 0x01, 0x59, - 0x19, 0x4e, 0x1d, 0xae, 0x73, 0x02, 0xe5, 0x38, 0x24, 0x97, 0xe9, 0x3d, 0xab, 0xc9, 0xf9, 0x80, - 0x1f, 0x73, 0x5b, 0x6d, 0x91, 0x52, 0xa2, 0x27, 0xe1, 0xb3, 0xed, 0xb0, 0x5f, 0x25, 0x7f, 0x81, - 0x98, 0x4c, 0xc8, 0xb8, 0x71, 0x94, 0x1a, 0xc4, 0x96, 0xb6, 0xb1, 0x8e, 0x65, 0x53, 0xec, 0xc8, - 0xfa, 0xc8, 0xb4, 0x87, 0x90, 0x6b, 0x6b, 0x9a, 0x8d, 0xb3, 0x57, 0xae, 0xf9, 0x73, 0x78, 0xc7, - 0x33, 0x03, 0xdf, 0x11, 0x61, 0xec, 0x76, 0xb1, 0x3a, 0x7d, 0x55, 0xde, 0x0c, 0xd1, 0xc2, 0xe2, - 0xe7, 0x7a, 0x74, 0xc7, 0x11, 0x76, 0xc7, 0x93, 0x7d, 0xef, 0xe8, 0x69, 0xf1, 0xfb, 0x5a, 0x3f, - 0xfd, 0xde, 0x1e, 0x9e, 0x94, 0x6f, 0x0a, 0xe8, 0xd6, 0x3f, 0xff, 0xde, 0xbe, 0x17, 0xad, 0x67, - 0x81, 0x72, 0x97, 0x5e, 0x13, 0x6d, 0x2f, 0x8b, 0xea, 0x46, 0x96, 0xa7, 0xc5, 0x6f, 0x57, 0xfb, - 0x59, 0xee, 0xd3, 0xe3, 0xb6, 0x9f, 0x47, 0xdb, 0xcf, 0x0e, 0x6c, 0x04, 0x4b, 0x4f, 0xcc, 0x86, - 0x91, 0xba, 0x9f, 0x4b, 0xf9, 0x01, 0xb3, 0xa2, 0x40, 0x95, 0xb2, 0x62, 0x54, 0xc8, 0x8a, 0xd1, - 0x5d, 0xac, 0xf0, 0xe9, 0x71, 0x2b, 0x72, 0x14, 0xf5, 0xfb, 0xb7, 0xc4, 0xc7, 0x37, 0x79, 0x11, - 0xa0, 0x1d, 0x12, 0xf4, 0xbb, 0x53, 0x2c, 0x25, 0xe2, 0x47, 0x42, 0xf4, 0x95, 0x7e, 0x9f, 0x2a, - 0x7f, 0x04, 0x47, 0x6f, 0x89, 0xf8, 0x45, 0x2e, 0x7c, 0x31, 0x34, 0xf9, 0x38, 0x64, 0xba, 0xa7, - 0x76, 0x4f, 0x78, 0x15, 0x94, 0x5e, 0x07, 0xfb, 0x19, 0x62, 0x9c, 0xe1, 0x21, 0x3f, 0x43, 0xf2, - 0x6c, 0xa6, 0xed, 0xa2, 0xab, 0x35, 0x13, 0x0b, 0x76, 0x0f, 0x67, 0xb7, 0xbb, 0xbe, 0x18, 0xe7, - 0xd4, 0x51, 0x18, 0xe2, 0x42, 0x7a, 0x96, 0x22, 0xcb, 0xf6, 0xac, 0x28, 0xb1, 0x0a, 0x73, 0xfe, - 0x5c, 0x7e, 0xf1, 0x9d, 0x0f, 0x8e, 0x1e, 0xf8, 0x3b, 0xfc, 0xfc, 0x23, 0x7e, 0xde, 0xff, 0xe0, - 0x68, 0xe8, 0x63, 0xfc, 0x7c, 0x8a, 0x9f, 0xcf, 0xf0, 0xf3, 0xe4, 0x87, 0x47, 0x43, 0xaf, 0xe2, - 0xe7, 0x75, 0xfc, 0xfc, 0x05, 0x7e, 0xde, 0xc2, 0xcf, 0x3b, 0x1f, 0xa2, 0x3e, 0x7e, 0xde, 0xc7, - 0xef, 0x1f, 0xe3, 0xff, 0x4f, 0xf1, 0xff, 0x67, 0xf8, 0xff, 0xc9, 0x7f, 0x3e, 0x7a, 0xe0, 0xff, - 0x02, 0x00, 0x00, 0xff, 0xff, 0x56, 0xee, 0xce, 0xcf, 0xce, 0x31, 0x00, 0x00, + // 4126 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x81, 0x14, 0xfd, + 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, + 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, + 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, + 0xeb, 0x34, 0xe9, 0x4f, 0x92, 0x36, 0x69, 0xa6, 0x4f, 0x79, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, + 0x87, 0x8e, 0x6c, 0x31, 0x9e, 0xa9, 0xd3, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x19, 0xf9, 0xa5, 0x73, + 0xff, 0x16, 0x8b, 0x1f, 0x72, 0x41, 0x65, 0x9c, 0x3c, 0x11, 0x7b, 0xee, 0xf9, 0xbe, 0x3d, 0xf7, + 0xdc, 0x73, 0xcf, 0x39, 0x7b, 0x77, 0x09, 0x3f, 0x3c, 0x07, 0x0b, 0x0d, 0xdb, 0x6e, 0x98, 0xf8, + 0x54, 0xcb, 0xb1, 0x3d, 0x7b, 0xa7, 0xbd, 0x7b, 0xaa, 0x8e, 0x5d, 0xdd, 0x31, 0x5a, 0x9e, 0xed, + 0x2c, 0x53, 0x19, 0x9a, 0x62, 0x1a, 0xcb, 0x42, 0x63, 0xb1, 0x02, 0xd3, 0x97, 0x0c, 0x13, 0xaf, + 0xfa, 0x8a, 0x9b, 0xd8, 0x43, 0x17, 0x20, 0xb6, 0x6b, 0x98, 0x38, 0x2b, 0x2d, 0x44, 0x97, 0x52, + 0xa7, 0x1f, 0x59, 0xee, 0x03, 0x2d, 0xf7, 0x22, 0x6a, 0x44, 0xac, 0x50, 0xc4, 0xe2, 0xdb, 0x31, + 0x98, 0x19, 0x32, 0x8a, 0x10, 0xc4, 0x2c, 0xad, 0x49, 0x18, 0xa5, 0xa5, 0xa4, 0x42, 0x7f, 0xa3, + 0x2c, 0x4c, 0xb4, 0x34, 0xfd, 0x86, 0xd6, 0xc0, 0xd9, 0x08, 0x15, 0x8b, 0x4b, 0x94, 0x03, 0xa8, + 0xe3, 0x16, 0xb6, 0xea, 0xd8, 0xd2, 0x3b, 0xd9, 0xe8, 0x42, 0x74, 0x29, 0xa9, 0x04, 0x24, 0xe8, + 0x29, 0x98, 0x6e, 0xb5, 0x77, 0x4c, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x10, 0x5d, 0x8a, 0x2b, 0x32, + 0x1b, 0x58, 0xed, 0x2a, 0x3f, 0x0e, 0x53, 0xb7, 0xb0, 0x76, 0x23, 0xa8, 0x9a, 0xa2, 0xaa, 0x19, + 0x22, 0x0e, 0x28, 0xae, 0x40, 0xba, 0x89, 0x5d, 0x57, 0x6b, 0x60, 0xd5, 0xeb, 0xb4, 0x70, 0x36, + 0x46, 0x67, 0xbf, 0x30, 0x30, 0xfb, 0xfe, 0x99, 0xa7, 0x38, 0x6a, 0xab, 0xd3, 0xc2, 0xa8, 0x00, + 0x49, 0x6c, 0xb5, 0x9b, 0x8c, 0x21, 0x7e, 0x80, 0xff, 0x4a, 0x56, 0xbb, 0xd9, 0xcf, 0x92, 0x20, + 0x30, 0x4e, 0x31, 0xe1, 0x62, 0xe7, 0xa6, 0xa1, 0xe3, 0xec, 0x38, 0x25, 0x78, 0x7c, 0x80, 0x60, + 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, 0x56, + 0x76, 0x82, 0x92, 0x3c, 0x3a, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, 0x98, + 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, 0x20, + 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, 0x8e, + 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, 0x71, + 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, 0xc5, + 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, 0xbe, + 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, 0x01, + 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a, + 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, 0x85, + 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, 0x85, + 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, 0x9b, + 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, 0xb4, + 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, 0x99, + 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x0c, 0xbe, 0x40, 0xa5, 0x61, 0x05, 0x34, + 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, 0xb8, + 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, 0xe5, + 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, 0x61, + 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, 0x29, + 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, 0xfa, + 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, 0xc2, + 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x41, 0x92, 0xfc, 0x65, 0xbe, 0x1d, + 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, 0xe0, + 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, 0x30, + 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, 0x2f, + 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, 0x69, + 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0x77, 0x62, 0xf8, 0xf4, 0xfa, 0x63, 0x71, + 0xf1, 0xdb, 0x11, 0x88, 0xd1, 0xfd, 0x36, 0x05, 0xa9, 0xad, 0x6b, 0xb5, 0x92, 0xba, 0x5a, 0xdd, + 0x2e, 0xae, 0x97, 0x64, 0x09, 0x65, 0x00, 0xa8, 0xe0, 0xd2, 0x7a, 0xb5, 0xb0, 0x25, 0x47, 0xfc, + 0xeb, 0xf2, 0xc6, 0xd6, 0xf9, 0xb3, 0x72, 0xd4, 0x07, 0x6c, 0x33, 0x41, 0x2c, 0xa8, 0x70, 0xe6, + 0xb4, 0x1c, 0x47, 0x32, 0xa4, 0x19, 0x41, 0xf9, 0x6a, 0x69, 0xf5, 0xfc, 0x59, 0x79, 0xbc, 0x57, + 0x72, 0xe6, 0xb4, 0x3c, 0x81, 0x26, 0x21, 0x49, 0x25, 0xc5, 0x6a, 0x75, 0x5d, 0x4e, 0xf8, 0x9c, + 0x9b, 0x5b, 0x4a, 0x79, 0x63, 0x4d, 0x4e, 0xfa, 0x9c, 0x6b, 0x4a, 0x75, 0xbb, 0x26, 0x83, 0xcf, + 0x50, 0x29, 0x6d, 0x6e, 0x16, 0xd6, 0x4a, 0x72, 0xca, 0xd7, 0x28, 0x5e, 0xdb, 0x2a, 0x6d, 0xca, + 0xe9, 0x1e, 0xb3, 0xce, 0x9c, 0x96, 0x27, 0xfd, 0x5b, 0x94, 0x36, 0xb6, 0x2b, 0x72, 0x06, 0x4d, + 0xc3, 0x24, 0xbb, 0x85, 0x30, 0x62, 0xaa, 0x4f, 0x74, 0xfe, 0xac, 0x2c, 0x77, 0x0d, 0x61, 0x2c, + 0xd3, 0x3d, 0x82, 0xf3, 0x67, 0x65, 0xb4, 0xb8, 0x02, 0x71, 0x1a, 0x5d, 0x08, 0x41, 0x66, 0xbd, + 0x50, 0x2c, 0xad, 0xab, 0xd5, 0xda, 0x56, 0xb9, 0xba, 0x51, 0x58, 0x97, 0xa5, 0xae, 0x4c, 0x29, + 0x7d, 0x6a, 0xbb, 0xac, 0x94, 0x56, 0xe5, 0x48, 0x50, 0x56, 0x2b, 0x15, 0xb6, 0x4a, 0xab, 0x72, + 0x74, 0x51, 0x87, 0xd9, 0x61, 0x79, 0x66, 0xe8, 0xce, 0x08, 0x2c, 0x71, 0xe4, 0x80, 0x25, 0xa6, + 0x5c, 0x03, 0x4b, 0xfc, 0x65, 0x09, 0x66, 0x86, 0xe4, 0xda, 0xa1, 0x37, 0x79, 0x1e, 0xe2, 0x2c, + 0x44, 0x59, 0xf5, 0x79, 0x62, 0x68, 0xd2, 0xa6, 0x01, 0x3b, 0x50, 0x81, 0x28, 0x2e, 0x58, 0x81, + 0xa3, 0x07, 0x54, 0x60, 0x42, 0x31, 0x60, 0xe4, 0xcb, 0x12, 0x64, 0x0f, 0xe2, 0x0e, 0x49, 0x14, + 0x91, 0x9e, 0x44, 0x71, 0xb1, 0xdf, 0x80, 0x93, 0x07, 0xcf, 0x61, 0xc0, 0x8a, 0xd7, 0x25, 0x38, + 0x36, 0xbc, 0x51, 0x19, 0x6a, 0xc3, 0x73, 0x30, 0xde, 0xc4, 0xde, 0x9e, 0x2d, 0x8a, 0xf5, 0x63, + 0x43, 0x4a, 0x00, 0x19, 0xee, 0xf7, 0x15, 0x47, 0x05, 0x6b, 0x48, 0xf4, 0xa0, 0x6e, 0x83, 0x59, + 0x33, 0x60, 0xe9, 0xe7, 0x23, 0xf0, 0xc0, 0x50, 0xf2, 0xa1, 0x86, 0x9e, 0x00, 0x30, 0xac, 0x56, + 0xdb, 0x63, 0x05, 0x99, 0xe5, 0xa7, 0x24, 0x95, 0xd0, 0xbd, 0x4f, 0x72, 0x4f, 0xdb, 0xf3, 0xc7, + 0xa3, 0x74, 0x1c, 0x98, 0x88, 0x2a, 0x5c, 0xe8, 0x1a, 0x1a, 0xa3, 0x86, 0xe6, 0x0e, 0x98, 0xe9, + 0x40, 0xad, 0x7b, 0x1a, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0xa9, 0xae, 0xe7, 0x60, 0xad, 0x69, 0x58, + 0x0d, 0x9a, 0x80, 0x13, 0xf9, 0xf8, 0xae, 0x66, 0xba, 0x58, 0x99, 0x62, 0xc3, 0x9b, 0x62, 0x94, + 0x20, 0x68, 0x95, 0x71, 0x02, 0x88, 0xf1, 0x1e, 0x04, 0x1b, 0xf6, 0x11, 0x8b, 0x5f, 0x9b, 0x80, + 0x54, 0xa0, 0xad, 0x43, 0x27, 0x21, 0x7d, 0x5d, 0xbb, 0xa9, 0xa9, 0xa2, 0x55, 0x67, 0x9e, 0x48, + 0x11, 0x59, 0x8d, 0xb7, 0xeb, 0x4f, 0xc3, 0x2c, 0x55, 0xb1, 0xdb, 0x1e, 0x76, 0x54, 0xdd, 0xd4, + 0x5c, 0x97, 0x3a, 0x2d, 0x41, 0x55, 0x11, 0x19, 0xab, 0x92, 0xa1, 0x15, 0x31, 0x82, 0xce, 0xc1, + 0x0c, 0x45, 0x34, 0xdb, 0xa6, 0x67, 0xb4, 0x4c, 0xac, 0x92, 0x87, 0x07, 0x97, 0x26, 0x62, 0xdf, + 0xb2, 0x69, 0xa2, 0x51, 0xe1, 0x0a, 0xc4, 0x22, 0x17, 0xad, 0xc2, 0x09, 0x0a, 0x6b, 0x60, 0x0b, + 0x3b, 0x9a, 0x87, 0x55, 0xfc, 0x99, 0xb6, 0x66, 0xba, 0xaa, 0x66, 0xd5, 0xd5, 0x3d, 0xcd, 0xdd, + 0xcb, 0xce, 0x12, 0x82, 0x62, 0x24, 0x2b, 0x29, 0xc7, 0x89, 0xe2, 0x1a, 0xd7, 0x2b, 0x51, 0xb5, + 0x82, 0x55, 0xff, 0xa4, 0xe6, 0xee, 0xa1, 0x3c, 0x1c, 0xa3, 0x2c, 0xae, 0xe7, 0x18, 0x56, 0x43, + 0xd5, 0xf7, 0xb0, 0x7e, 0x43, 0x6d, 0x7b, 0xbb, 0x17, 0xb2, 0x0f, 0x05, 0xef, 0x4f, 0x2d, 0xdc, + 0xa4, 0x3a, 0x2b, 0x44, 0x65, 0xdb, 0xdb, 0xbd, 0x80, 0x36, 0x21, 0x4d, 0x16, 0xa3, 0x69, 0xbc, + 0x84, 0xd5, 0x5d, 0xdb, 0xa1, 0x95, 0x25, 0x33, 0x64, 0x67, 0x07, 0x3c, 0xb8, 0x5c, 0xe5, 0x80, + 0x8a, 0x5d, 0xc7, 0xf9, 0xf8, 0x66, 0xad, 0x54, 0x5a, 0x55, 0x52, 0x82, 0xe5, 0x92, 0xed, 0x90, + 0x80, 0x6a, 0xd8, 0xbe, 0x83, 0x53, 0x2c, 0xa0, 0x1a, 0xb6, 0x70, 0xef, 0x39, 0x98, 0xd1, 0x75, + 0x36, 0x67, 0x43, 0x57, 0x79, 0x8b, 0xef, 0x66, 0xe5, 0x1e, 0x67, 0xe9, 0xfa, 0x1a, 0x53, 0xe0, + 0x31, 0xee, 0xa2, 0x67, 0xe1, 0x81, 0xae, 0xb3, 0x82, 0xc0, 0xe9, 0x81, 0x59, 0xf6, 0x43, 0xcf, + 0xc1, 0x4c, 0xab, 0x33, 0x08, 0x44, 0x3d, 0x77, 0x6c, 0x75, 0xfa, 0x61, 0x8f, 0xd2, 0xc7, 0x36, + 0x07, 0xeb, 0x9a, 0x87, 0xeb, 0xd9, 0x07, 0x83, 0xda, 0x81, 0x01, 0x74, 0x0a, 0x64, 0x5d, 0x57, + 0xb1, 0xa5, 0xed, 0x98, 0x58, 0xd5, 0x1c, 0x6c, 0x69, 0x6e, 0x76, 0x3e, 0xa8, 0x9c, 0xd1, 0xf5, + 0x12, 0x1d, 0x2d, 0xd0, 0x41, 0xf4, 0x24, 0x4c, 0xdb, 0x3b, 0xd7, 0x75, 0x16, 0x59, 0x6a, 0xcb, + 0xc1, 0xbb, 0xc6, 0x8b, 0xd9, 0x47, 0xa8, 0x9b, 0xa6, 0xc8, 0x00, 0x8d, 0xab, 0x1a, 0x15, 0xa3, + 0x27, 0x40, 0xd6, 0xdd, 0x3d, 0xcd, 0x69, 0xd1, 0xd2, 0xee, 0xb6, 0x34, 0x1d, 0x67, 0x1f, 0x65, + 0xaa, 0x4c, 0xbe, 0x21, 0xc4, 0x24, 0xb2, 0xdd, 0x5b, 0xc6, 0xae, 0x27, 0x18, 0x1f, 0x67, 0x91, + 0x4d, 0x65, 0x9c, 0xed, 0x2a, 0xcc, 0xb6, 0x2d, 0xc3, 0xf2, 0xb0, 0xd3, 0x72, 0x30, 0x69, 0xe2, + 0xd9, 0x4e, 0xcc, 0xfe, 0xdb, 0xc4, 0x01, 0x6d, 0xf8, 0x76, 0x50, 0x9b, 0x05, 0x80, 0x32, 0xd3, + 0x1e, 0x14, 0x2e, 0xe6, 0x21, 0x1d, 0x8c, 0x0b, 0x94, 0x04, 0x16, 0x19, 0xb2, 0x44, 0x6a, 0xec, + 0x4a, 0x75, 0x95, 0x54, 0xc7, 0x17, 0x4a, 0x72, 0x84, 0x54, 0xe9, 0xf5, 0xf2, 0x56, 0x49, 0x55, + 0xb6, 0x37, 0xb6, 0xca, 0x95, 0x92, 0x1c, 0x7d, 0x32, 0x99, 0x78, 0x67, 0x42, 0xbe, 0x7d, 0xfb, + 0xf6, 0xed, 0xc8, 0xe2, 0xf7, 0x22, 0x90, 0xe9, 0xed, 0x8c, 0xd1, 0xc7, 0xe1, 0x41, 0xf1, 0x18, + 0xeb, 0x62, 0x4f, 0xbd, 0x65, 0x38, 0x34, 0x54, 0x9b, 0x1a, 0xeb, 0x2d, 0x7d, 0x2f, 0xcf, 0x72, + 0xad, 0x4d, 0xec, 0x5d, 0x31, 0x1c, 0x12, 0x88, 0x4d, 0xcd, 0x43, 0xeb, 0x30, 0x6f, 0xd9, 0xaa, + 0xeb, 0x69, 0x56, 0x5d, 0x73, 0xea, 0x6a, 0xf7, 0x00, 0x41, 0xd5, 0x74, 0x1d, 0xbb, 0xae, 0xcd, + 0x4a, 0x84, 0xcf, 0xf2, 0x11, 0xcb, 0xde, 0xe4, 0xca, 0xdd, 0xdc, 0x59, 0xe0, 0xaa, 0x7d, 0x11, + 0x11, 0x3d, 0x28, 0x22, 0x1e, 0x82, 0x64, 0x53, 0x6b, 0xa9, 0xd8, 0xf2, 0x9c, 0x0e, 0xed, 0xe7, + 0x12, 0x4a, 0xa2, 0xa9, 0xb5, 0x4a, 0xe4, 0xfa, 0xc3, 0x5b, 0x83, 0xa0, 0x1f, 0xff, 0x35, 0x0a, + 0xe9, 0x60, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0xee, 0xf0, 0x87, 0x0f, 0xed, 0x00, + 0x97, 0x57, 0x48, 0x62, 0xcf, 0x8f, 0xb3, 0x4e, 0x4b, 0x61, 0x48, 0x52, 0x54, 0xc9, 0x9e, 0xc6, + 0xac, 0x7f, 0x4f, 0x28, 0xfc, 0x0a, 0xad, 0xc1, 0xf8, 0x75, 0x97, 0x72, 0x8f, 0x53, 0xee, 0x47, + 0x0e, 0xe7, 0xbe, 0xbc, 0x49, 0xc9, 0x93, 0x97, 0x37, 0xd5, 0x8d, 0xaa, 0x52, 0x29, 0xac, 0x2b, + 0x1c, 0x8e, 0x8e, 0x43, 0xcc, 0xd4, 0x5e, 0xea, 0xf4, 0x96, 0x00, 0x2a, 0x1a, 0xd5, 0xf1, 0xc7, + 0x21, 0x76, 0x0b, 0x6b, 0x37, 0x7a, 0x13, 0x2f, 0x15, 0x7d, 0x88, 0xa1, 0x7f, 0x0a, 0xe2, 0xd4, + 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x43, 0x09, 0x88, 0xad, 0x54, 0x15, 0x12, 0xfe, 0x32, 0xa4, + 0x99, 0x54, 0xad, 0x95, 0x4b, 0x2b, 0x25, 0x39, 0xb2, 0x78, 0x0e, 0xc6, 0x99, 0x13, 0xc8, 0xd6, + 0xf0, 0xdd, 0x20, 0x8f, 0xf1, 0x4b, 0xce, 0x21, 0x89, 0xd1, 0xed, 0x4a, 0xb1, 0xa4, 0xc8, 0x91, + 0xe0, 0xf2, 0xba, 0x90, 0x0e, 0xb6, 0x73, 0x3f, 0x9b, 0x98, 0xfa, 0x07, 0x09, 0x52, 0x81, 0xf6, + 0x8c, 0x34, 0x06, 0x9a, 0x69, 0xda, 0xb7, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x07, 0x05, 0x50, 0x51, + 0x81, 0x48, 0x46, 0x5d, 0xb4, 0x9f, 0x89, 0xf1, 0xaf, 0x49, 0x20, 0xf7, 0xb7, 0x76, 0x7d, 0x06, + 0x4a, 0x3f, 0x57, 0x03, 0x5f, 0x95, 0x20, 0xd3, 0xdb, 0xcf, 0xf5, 0x99, 0x77, 0xf2, 0xe7, 0x6a, + 0xde, 0x5b, 0x11, 0x98, 0xec, 0xe9, 0xe2, 0x46, 0xb5, 0xee, 0x33, 0x30, 0x6d, 0xd4, 0x71, 0xb3, + 0x65, 0x7b, 0xd8, 0xd2, 0x3b, 0xaa, 0x89, 0x6f, 0x62, 0x33, 0xbb, 0x48, 0x13, 0xc5, 0xa9, 0xc3, + 0xfb, 0xc4, 0xe5, 0x72, 0x17, 0xb7, 0x4e, 0x60, 0xf9, 0x99, 0xf2, 0x6a, 0xa9, 0x52, 0xab, 0x6e, + 0x95, 0x36, 0x56, 0xae, 0xa9, 0xdb, 0x1b, 0xbf, 0xb0, 0x51, 0xbd, 0xb2, 0xa1, 0xc8, 0x46, 0x9f, + 0xda, 0x87, 0xb8, 0xd5, 0x6b, 0x20, 0xf7, 0x1b, 0x85, 0x1e, 0x84, 0x61, 0x66, 0xc9, 0x63, 0x68, + 0x06, 0xa6, 0x36, 0xaa, 0xea, 0x66, 0x79, 0xb5, 0xa4, 0x96, 0x2e, 0x5d, 0x2a, 0xad, 0x6c, 0x6d, + 0xb2, 0x07, 0x67, 0x5f, 0x7b, 0xab, 0x77, 0x53, 0xbf, 0x12, 0x85, 0x99, 0x21, 0x96, 0xa0, 0x02, + 0xef, 0xd9, 0xd9, 0x63, 0xc4, 0xc7, 0x46, 0xb1, 0x7e, 0x99, 0x74, 0x05, 0x35, 0xcd, 0xf1, 0x78, + 0x8b, 0xff, 0x04, 0x10, 0x2f, 0x59, 0x9e, 0xb1, 0x6b, 0x60, 0x87, 0x9f, 0x33, 0xb0, 0x46, 0x7e, + 0xaa, 0x2b, 0x67, 0x47, 0x0d, 0x1f, 0x05, 0xd4, 0xb2, 0x5d, 0xc3, 0x33, 0x6e, 0x62, 0xd5, 0xb0, + 0xc4, 0xa1, 0x04, 0x69, 0xec, 0x63, 0x8a, 0x2c, 0x46, 0xca, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0xa1, + 0xf5, 0x69, 0x93, 0x04, 0x1e, 0x55, 0x64, 0x31, 0xe2, 0x6b, 0x9f, 0x84, 0x74, 0xdd, 0x6e, 0x93, + 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x29, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0x3d, 0x0d, + 0x49, 0x2b, 0x29, 0x26, 0x63, 0x2a, 0x8f, 0xc3, 0x94, 0xd6, 0x68, 0x38, 0x84, 0x5c, 0x10, 0xb1, + 0xce, 0x3c, 0xe3, 0x8b, 0xa9, 0xe2, 0xdc, 0x65, 0x48, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, + 0xb6, 0xd8, 0x99, 0x54, 0x64, 0x29, 0xa9, 0x24, 0x2c, 0x31, 0x78, 0x12, 0xd2, 0x86, 0xab, 0x76, + 0x0f, 0x47, 0x23, 0x0b, 0x91, 0xa5, 0x84, 0x92, 0x32, 0x5c, 0xff, 0x34, 0x6c, 0xf1, 0xf5, 0x08, + 0x64, 0x7a, 0x0f, 0x77, 0xd1, 0x2a, 0x24, 0x4c, 0x5b, 0xd7, 0x68, 0x68, 0xb1, 0x37, 0x0b, 0x4b, + 0x21, 0xe7, 0xc1, 0xcb, 0xeb, 0x5c, 0x5f, 0xf1, 0x91, 0x73, 0xff, 0x2c, 0x41, 0x42, 0x88, 0xd1, + 0x31, 0x88, 0xb5, 0x34, 0x6f, 0x8f, 0xd2, 0xc5, 0x8b, 0x11, 0x59, 0x52, 0xe8, 0x35, 0x91, 0xbb, + 0x2d, 0xcd, 0xa2, 0x21, 0xc0, 0xe5, 0xe4, 0x9a, 0xac, 0xab, 0x89, 0xb5, 0x3a, 0x6d, 0xfb, 0xed, + 0x66, 0x13, 0x5b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb, 0x57, 0xb8, 0x18, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, + 0x19, 0x66, 0x8f, 0x6e, 0x8c, 0xea, 0xca, 0x62, 0xc0, 0x57, 0xce, 0xc3, 0x71, 0xc1, 0x5b, 0xc7, + 0x9e, 0xa6, 0xef, 0xe1, 0x7a, 0x17, 0x34, 0x4e, 0x4f, 0x0e, 0x1f, 0xe4, 0x0a, 0xab, 0x7c, 0x5c, + 0x60, 0x17, 0x7f, 0x20, 0xc1, 0xb4, 0x78, 0x50, 0xa9, 0xfb, 0xce, 0xaa, 0x00, 0x68, 0x96, 0x65, + 0x7b, 0x41, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xb9, 0xe0, 0x83, 0x94, 0x00, 0xc1, 0x5c, 0x13, + 0xa0, 0x3b, 0x72, 0xa0, 0xdb, 0xe6, 0x21, 0xc5, 0x4f, 0xee, 0xe9, 0xeb, 0x1f, 0xf6, 0x68, 0x0b, + 0x4c, 0x44, 0x9e, 0x68, 0xd0, 0x2c, 0xc4, 0x77, 0x70, 0xc3, 0xb0, 0xf8, 0x79, 0x22, 0xbb, 0x10, + 0xa7, 0x94, 0x31, 0xff, 0x94, 0xb2, 0x78, 0x15, 0x66, 0x74, 0xbb, 0xd9, 0x6f, 0x6e, 0x51, 0xee, + 0x7b, 0xbc, 0x76, 0x3f, 0x29, 0xbd, 0x00, 0xdd, 0x16, 0xf3, 0xcb, 0x91, 0xe8, 0x5a, 0xad, 0xf8, + 0xd5, 0xc8, 0xdc, 0x1a, 0xc3, 0xd5, 0xc4, 0x34, 0x15, 0xbc, 0x6b, 0x62, 0x9d, 0x98, 0x0e, 0x3f, + 0x7e, 0x0c, 0x3e, 0xd6, 0x30, 0xbc, 0xbd, 0xf6, 0xce, 0xb2, 0x6e, 0x37, 0x4f, 0x35, 0xec, 0x86, + 0xdd, 0x7d, 0xdd, 0x45, 0xae, 0xe8, 0x05, 0xfd, 0xc5, 0x5f, 0x79, 0x25, 0x7d, 0xe9, 0x5c, 0xe8, + 0xfb, 0xb1, 0xfc, 0x06, 0xcc, 0x70, 0x65, 0x95, 0x9e, 0xb9, 0xb3, 0x47, 0x03, 0x74, 0xe8, 0xb9, + 0x4b, 0xf6, 0x1b, 0x6f, 0xd3, 0x5a, 0xad, 0x4c, 0x73, 0x28, 0x19, 0x63, 0x0f, 0x10, 0x79, 0x05, + 0x1e, 0xe8, 0xe1, 0x63, 0xfb, 0x12, 0x3b, 0x21, 0x8c, 0xdf, 0xe3, 0x8c, 0x33, 0x01, 0xc6, 0x4d, + 0x0e, 0xcd, 0xaf, 0xc0, 0xe4, 0x51, 0xb8, 0xfe, 0x91, 0x73, 0xa5, 0x71, 0x90, 0x64, 0x0d, 0xa6, + 0x28, 0x89, 0xde, 0x76, 0x3d, 0xbb, 0x49, 0x93, 0xde, 0xe1, 0x34, 0xff, 0xf4, 0x36, 0xdb, 0x28, + 0x19, 0x02, 0x5b, 0xf1, 0x51, 0xf9, 0x3c, 0xd0, 0xd7, 0x0c, 0x75, 0xac, 0x9b, 0x21, 0x0c, 0x6f, + 0x70, 0x43, 0x7c, 0xfd, 0xfc, 0xa7, 0x61, 0x96, 0xfc, 0xa6, 0x39, 0x29, 0x68, 0x49, 0xf8, 0x29, + 0x53, 0xf6, 0x07, 0x2f, 0xb3, 0xbd, 0x38, 0xe3, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x03, 0x7b, + 0x1e, 0x76, 0x5c, 0x55, 0x33, 0x87, 0x99, 0x17, 0x78, 0x4c, 0xcf, 0x7e, 0xf1, 0xdd, 0xde, 0x55, + 0x5c, 0x63, 0xc8, 0x82, 0x69, 0xe6, 0xb7, 0xe1, 0xc1, 0x21, 0x51, 0x31, 0x02, 0xe7, 0x2b, 0x9c, + 0x73, 0x76, 0x20, 0x32, 0x08, 0x6d, 0x0d, 0x84, 0xdc, 0x5f, 0xcb, 0x11, 0x38, 0xff, 0x88, 0x73, + 0x22, 0x8e, 0x15, 0x4b, 0x4a, 0x18, 0x2f, 0xc3, 0xf4, 0x4d, 0xec, 0xec, 0xd8, 0x2e, 0x3f, 0x1a, + 0x19, 0x81, 0xee, 0x55, 0x4e, 0x37, 0xc5, 0x81, 0xf4, 0xac, 0x84, 0x70, 0x3d, 0x0b, 0x89, 0x5d, + 0x4d, 0xc7, 0x23, 0x50, 0x7c, 0x89, 0x53, 0x4c, 0x10, 0x7d, 0x02, 0x2d, 0x40, 0xba, 0x61, 0xf3, + 0xb2, 0x14, 0x0e, 0x7f, 0x8d, 0xc3, 0x53, 0x02, 0xc3, 0x29, 0x5a, 0x76, 0xab, 0x6d, 0x92, 0x9a, + 0x15, 0x4e, 0xf1, 0xc7, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x11, 0xdc, 0xfa, 0x27, 0x82, 0xc2, 0x0d, + 0xf8, 0xf3, 0x79, 0x48, 0xd9, 0x96, 0xd9, 0xb1, 0xad, 0x51, 0x8c, 0xf8, 0x53, 0xce, 0x00, 0x1c, + 0x42, 0x08, 0x2e, 0x42, 0x72, 0xd4, 0x85, 0xf8, 0xb3, 0x77, 0xc5, 0xf6, 0x10, 0x2b, 0xb0, 0x06, + 0x53, 0x22, 0x41, 0x19, 0xb6, 0x35, 0x02, 0xc5, 0x9f, 0x73, 0x8a, 0x4c, 0x00, 0xc6, 0xa7, 0xe1, + 0x61, 0xd7, 0x6b, 0xe0, 0x51, 0x48, 0x5e, 0x17, 0xd3, 0xe0, 0x10, 0xee, 0xca, 0x1d, 0x6c, 0xe9, + 0x7b, 0xa3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, 0x0a, 0x4c, 0x36, 0x35, 0xc7, 0xdd, + 0xd3, 0xcc, 0x91, 0x96, 0xe3, 0x2f, 0x38, 0x47, 0xda, 0x07, 0x71, 0x8f, 0xb4, 0xad, 0xa3, 0xd0, + 0x7c, 0x55, 0x78, 0x24, 0x00, 0xe3, 0x5b, 0xcf, 0xf5, 0xe8, 0x01, 0xd4, 0x51, 0xd8, 0xbe, 0x26, + 0xb6, 0x1e, 0xc3, 0x56, 0x82, 0x8c, 0x17, 0x21, 0xe9, 0x1a, 0x2f, 0x8d, 0x44, 0xf3, 0x97, 0x62, + 0xa5, 0x29, 0x80, 0x80, 0xaf, 0xc1, 0xf1, 0xa1, 0x65, 0x62, 0x04, 0xb2, 0xbf, 0xe2, 0x64, 0xc7, + 0x86, 0x94, 0x0a, 0x9e, 0x12, 0x8e, 0x4a, 0xf9, 0xd7, 0x22, 0x25, 0xe0, 0x3e, 0xae, 0x1a, 0x79, + 0x50, 0x70, 0xb5, 0xdd, 0xa3, 0x79, 0xed, 0x6f, 0x84, 0xd7, 0x18, 0xb6, 0xc7, 0x6b, 0x5b, 0x70, + 0x8c, 0x33, 0x1e, 0x6d, 0x5d, 0xbf, 0x2e, 0x12, 0x2b, 0x43, 0x6f, 0xf7, 0xae, 0xee, 0x2f, 0xc2, + 0x9c, 0xef, 0x4e, 0xd1, 0x91, 0xba, 0x6a, 0x53, 0x6b, 0x8d, 0xc0, 0xfc, 0x0d, 0xce, 0x2c, 0x32, + 0xbe, 0xdf, 0xd2, 0xba, 0x15, 0xad, 0x45, 0xc8, 0xaf, 0x42, 0x56, 0x90, 0xb7, 0x2d, 0x07, 0xeb, + 0x76, 0xc3, 0x32, 0x5e, 0xc2, 0xf5, 0x11, 0xa8, 0xbf, 0xd9, 0xb7, 0x54, 0xdb, 0x01, 0x38, 0x61, + 0x2e, 0x83, 0xec, 0xf7, 0x2a, 0xaa, 0xd1, 0x6c, 0xd9, 0x8e, 0x17, 0xc2, 0xf8, 0xb7, 0x62, 0xa5, + 0x7c, 0x5c, 0x99, 0xc2, 0xf2, 0x25, 0xc8, 0xd0, 0xcb, 0x51, 0x43, 0xf2, 0xef, 0x38, 0xd1, 0x64, + 0x17, 0xc5, 0x13, 0x87, 0x6e, 0x37, 0x5b, 0x9a, 0x33, 0x4a, 0xfe, 0xfb, 0x96, 0x48, 0x1c, 0x1c, + 0xc2, 0x13, 0x87, 0xd7, 0x69, 0x61, 0x52, 0xed, 0x47, 0x60, 0xf8, 0xb6, 0x48, 0x1c, 0x02, 0xc3, + 0x29, 0x44, 0xc3, 0x30, 0x02, 0xc5, 0xdf, 0x0b, 0x0a, 0x81, 0x21, 0x14, 0x9f, 0xea, 0x16, 0x5a, + 0x07, 0x37, 0x0c, 0xd7, 0x73, 0x58, 0x1f, 0x7c, 0x38, 0xd5, 0x77, 0xde, 0xed, 0x6d, 0xc2, 0x94, + 0x00, 0x34, 0x7f, 0x19, 0xa6, 0xfa, 0x5a, 0x0c, 0x14, 0xf6, 0xcd, 0x42, 0xf6, 0x97, 0xdf, 0xe7, + 0xc9, 0xa8, 0xb7, 0xc3, 0xc8, 0xaf, 0x93, 0x75, 0xef, 0xed, 0x03, 0xc2, 0xc9, 0x5e, 0x7e, 0xdf, + 0x5f, 0xfa, 0x9e, 0x36, 0x20, 0x7f, 0x09, 0x26, 0x7b, 0x7a, 0x80, 0x70, 0xaa, 0x5f, 0xe1, 0x54, + 0xe9, 0x60, 0x0b, 0x90, 0x3f, 0x07, 0x31, 0x52, 0xcf, 0xc3, 0xe1, 0xbf, 0xca, 0xe1, 0x54, 0x3d, + 0xff, 0x09, 0x48, 0x88, 0x3a, 0x1e, 0x0e, 0xfd, 0x35, 0x0e, 0xf5, 0x21, 0x04, 0x2e, 0x6a, 0x78, + 0x38, 0xfc, 0x73, 0x02, 0x2e, 0x20, 0x04, 0x3e, 0xba, 0x0b, 0xbf, 0xfb, 0x1b, 0x31, 0x9e, 0x87, + 0x85, 0xef, 0x2e, 0xc2, 0x04, 0x2f, 0xde, 0xe1, 0xe8, 0xcf, 0xf3, 0x9b, 0x0b, 0x44, 0xfe, 0x19, + 0x88, 0x8f, 0xe8, 0xf0, 0xdf, 0xe4, 0x50, 0xa6, 0x9f, 0x5f, 0x81, 0x54, 0xa0, 0x60, 0x87, 0xc3, + 0x7f, 0x8b, 0xc3, 0x83, 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xe1, 0x04, 0xbf, 0x2d, 0x4c, 0xe7, 0x08, + 0xe2, 0x36, 0x51, 0xab, 0xc3, 0xd1, 0xbf, 0x23, 0xbc, 0x2e, 0x20, 0xf9, 0xe7, 0x21, 0xe9, 0xe7, + 0xdf, 0x70, 0xfc, 0xef, 0x72, 0x7c, 0x17, 0x43, 0x3c, 0x10, 0xc8, 0xff, 0xe1, 0x14, 0xbf, 0x27, + 0x3c, 0x10, 0x40, 0x91, 0x6d, 0xd4, 0x5f, 0xd3, 0xc3, 0x99, 0x7e, 0x5f, 0x6c, 0xa3, 0xbe, 0x92, + 0x4e, 0x56, 0x93, 0xa6, 0xc1, 0x70, 0x8a, 0x3f, 0x10, 0xab, 0x49, 0xf5, 0x89, 0x19, 0xfd, 0x45, + 0x32, 0x9c, 0xe3, 0x0f, 0x85, 0x19, 0x7d, 0x35, 0x32, 0x5f, 0x03, 0x34, 0x58, 0x20, 0xc3, 0xf9, + 0xbe, 0xc0, 0xf9, 0xa6, 0x07, 0xea, 0x63, 0xfe, 0x0a, 0x1c, 0x1b, 0x5e, 0x1c, 0xc3, 0x59, 0xbf, + 0xf8, 0x7e, 0xdf, 0xe3, 0x4c, 0xb0, 0x36, 0xe6, 0xb7, 0xba, 0x59, 0x36, 0x58, 0x18, 0xc3, 0x69, + 0x5f, 0x79, 0xbf, 0x37, 0xd1, 0x06, 0xeb, 0x62, 0xbe, 0x00, 0xd0, 0xad, 0x49, 0xe1, 0x5c, 0xaf, + 0x72, 0xae, 0x00, 0x88, 0x6c, 0x0d, 0x5e, 0x92, 0xc2, 0xf1, 0x5f, 0x12, 0x5b, 0x83, 0x23, 0xc8, + 0xd6, 0x10, 0xd5, 0x28, 0x1c, 0xfd, 0x9a, 0xd8, 0x1a, 0x02, 0x92, 0xbf, 0x08, 0x09, 0xab, 0x6d, + 0x9a, 0x24, 0xb6, 0xd0, 0xe1, 0x9f, 0x11, 0x65, 0x7f, 0xf4, 0x01, 0x07, 0x0b, 0x40, 0xfe, 0x1c, + 0xc4, 0x71, 0x73, 0x07, 0xd7, 0xc3, 0x90, 0xff, 0xfe, 0x81, 0xc8, 0x27, 0x44, 0x3b, 0xff, 0x3c, + 0x00, 0x7b, 0x98, 0xa6, 0x6f, 0x89, 0x42, 0xb0, 0xff, 0xf1, 0x01, 0xff, 0x42, 0xa1, 0x0b, 0xe9, + 0x12, 0xb0, 0xef, 0x1d, 0x0e, 0x27, 0x78, 0xb7, 0x97, 0x80, 0x3e, 0x80, 0x3f, 0x0b, 0x13, 0xd7, + 0x5d, 0xdb, 0xf2, 0xb4, 0x46, 0x18, 0xfa, 0x3f, 0x39, 0x5a, 0xe8, 0x13, 0x87, 0x35, 0x6d, 0x07, + 0x7b, 0x5a, 0xc3, 0x0d, 0xc3, 0xfe, 0x17, 0xc7, 0xfa, 0x00, 0x02, 0xd6, 0x35, 0xd7, 0x1b, 0x65, + 0xde, 0xff, 0x2d, 0xc0, 0x02, 0x40, 0x8c, 0x26, 0xbf, 0x6f, 0xe0, 0x4e, 0x18, 0xf6, 0x3d, 0x61, + 0x34, 0xd7, 0xcf, 0x7f, 0x02, 0x92, 0xe4, 0x27, 0xfb, 0x6a, 0x27, 0x04, 0xfc, 0x3f, 0x1c, 0xdc, + 0x45, 0x90, 0x3b, 0xbb, 0x5e, 0xdd, 0x33, 0xc2, 0x9d, 0xfd, 0xbf, 0x7c, 0xa5, 0x85, 0x7e, 0xbe, + 0x00, 0x29, 0xd7, 0xab, 0xd7, 0xdb, 0xbc, 0xa3, 0x09, 0x81, 0xff, 0xf8, 0x03, 0xff, 0x21, 0xd7, + 0xc7, 0x14, 0x4f, 0x0e, 0x3f, 0xac, 0x83, 0x35, 0x7b, 0xcd, 0x66, 0xc7, 0x74, 0xf0, 0xcd, 0x29, + 0x38, 0xa1, 0xdb, 0xcd, 0x1d, 0xdb, 0x3d, 0x65, 0x61, 0xc3, 0xdb, 0xc3, 0xce, 0x29, 0xe1, 0x36, + 0x7e, 0xca, 0xe6, 0xbb, 0x71, 0xee, 0x68, 0xc7, 0x73, 0x8b, 0x3f, 0x9a, 0x84, 0xc4, 0x8a, 0xe6, + 0x7a, 0xda, 0x2d, 0xad, 0x83, 0x1e, 0x85, 0x44, 0xd9, 0xf2, 0xce, 0x9c, 0xae, 0x79, 0x0e, 0x7d, + 0xbd, 0x14, 0x2d, 0x26, 0xef, 0xdd, 0x99, 0x8f, 0x1b, 0x44, 0xa6, 0xf8, 0x43, 0xe8, 0x61, 0x88, + 0xd3, 0xdf, 0xf4, 0x84, 0x32, 0x5a, 0x9c, 0x7c, 0xe3, 0xce, 0xfc, 0x58, 0x57, 0x8f, 0x8d, 0xa1, + 0x6b, 0x90, 0xaa, 0x74, 0xb6, 0x0d, 0xcb, 0x3b, 0x7f, 0x96, 0xd0, 0x91, 0x89, 0xc7, 0x8a, 0xcf, + 0xdc, 0xbb, 0x33, 0x7f, 0xe6, 0x40, 0x03, 0x49, 0x39, 0xec, 0x4e, 0x4c, 0xa0, 0xe9, 0x57, 0x8b, + 0x41, 0x2e, 0x74, 0x05, 0x12, 0xe2, 0x92, 0x9d, 0xf4, 0x17, 0x2f, 0x72, 0x13, 0xee, 0x8b, 0xdb, + 0x27, 0x43, 0xbf, 0x04, 0xe9, 0x4a, 0xe7, 0x92, 0x69, 0x6b, 0xdc, 0x07, 0xf1, 0x05, 0x69, 0x29, + 0x52, 0xbc, 0x70, 0xef, 0xce, 0xfc, 0xd9, 0x91, 0x89, 0x39, 0x9c, 0x32, 0xf7, 0xb0, 0xa1, 0x17, + 0x20, 0xe9, 0x5f, 0xd3, 0x77, 0x09, 0x91, 0xe2, 0xc7, 0xb9, 0xdd, 0xf7, 0x47, 0xdf, 0xa5, 0x0b, + 0x58, 0xce, 0xdc, 0x3d, 0xb1, 0x20, 0x2d, 0x49, 0xf7, 0x63, 0x39, 0xf7, 0x49, 0x0f, 0x5b, 0xc0, + 0xf2, 0xf3, 0x67, 0xe9, 0xcb, 0x0b, 0xe9, 0x7e, 0x2d, 0xe7, 0xf4, 0x5d, 0x3a, 0x74, 0x19, 0x26, + 0x2a, 0x9d, 0x62, 0xc7, 0xc3, 0x2e, 0xfd, 0x9a, 0x27, 0x5d, 0x7c, 0xfa, 0xde, 0x9d, 0xf9, 0x8f, + 0x8e, 0xc8, 0x4a, 0x71, 0x8a, 0x20, 0x40, 0x0b, 0x90, 0xda, 0xb0, 0x9d, 0xa6, 0x66, 0x32, 0x3e, + 0x60, 0x2f, 0x63, 0x02, 0x22, 0xb4, 0x4d, 0x66, 0xc2, 0x56, 0xdb, 0xa5, 0xff, 0x87, 0xf0, 0x53, + 0xc4, 0x64, 0x97, 0x09, 0x19, 0x10, 0xaf, 0x74, 0x2a, 0x5a, 0x2b, 0x9b, 0xa6, 0x6f, 0x0a, 0x4e, + 0x2c, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xa4, 0xa2, 0x78, 0xf6, 0xde, 0x9d, 0xf9, + 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x6f, 0x49, 0x64, 0x63, 0xb1, + 0xd3, 0x56, 0x72, 0xc7, 0x49, 0x7a, 0xc7, 0x87, 0x87, 0xde, 0xd1, 0xd7, 0x62, 0xf7, 0xb5, 0x3e, + 0xfb, 0xe6, 0x11, 0x66, 0xca, 0x9e, 0x68, 0xc8, 0xad, 0x7f, 0xfd, 0xcd, 0xfb, 0xde, 0xb4, 0xbe, + 0x05, 0xe8, 0x65, 0x09, 0x26, 0x2b, 0x9d, 0x0d, 0x5e, 0x5b, 0x89, 0xe5, 0x19, 0xfe, 0xb5, 0xfa, + 0x30, 0xcb, 0x03, 0x7a, 0xcc, 0xf6, 0xf3, 0x9f, 0x7d, 0x73, 0xfe, 0xf4, 0xc8, 0x46, 0xd0, 0x14, + 0x44, 0x6d, 0xe8, 0xbd, 0x27, 0xfa, 0x1c, 0xb5, 0xa2, 0x44, 0xea, 0x74, 0x1d, 0xd7, 0x89, 0x15, + 0x53, 0x87, 0x58, 0x11, 0xd0, 0x63, 0x56, 0xe4, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x01, 0x3e, 0x54, + 0x85, 0x71, 0xe6, 0x61, 0xfa, 0x25, 0x59, 0xf2, 0x88, 0x61, 0xd8, 0x5d, 0x1c, 0x85, 0xd3, 0xcc, + 0x5d, 0x00, 0xe8, 0xc6, 0x18, 0x92, 0x21, 0x7a, 0x03, 0x77, 0xf8, 0xe7, 0x82, 0xe4, 0x27, 0x9a, + 0xed, 0x7e, 0x0e, 0x2b, 0x2d, 0xc5, 0xf8, 0x37, 0xae, 0xf9, 0xc8, 0x05, 0x69, 0xee, 0x39, 0x90, + 0xfb, 0x63, 0xe5, 0x48, 0x78, 0x05, 0xd0, 0xe0, 0x8a, 0x05, 0x19, 0xe2, 0x8c, 0xe1, 0xb1, 0x20, + 0x43, 0xea, 0xb4, 0xdc, 0xf5, 0xf9, 0x15, 0xc3, 0x74, 0x6d, 0x6b, 0x80, 0xb3, 0xdf, 0xff, 0x3f, + 0x1d, 0xe7, 0x62, 0x0e, 0xc6, 0x99, 0x90, 0xcc, 0xa5, 0x4c, 0xcb, 0x07, 0xad, 0x72, 0x0a, 0xbb, + 0x28, 0xae, 0xbf, 0x71, 0x37, 0x37, 0xf6, 0xfd, 0xbb, 0xb9, 0xb1, 0x7f, 0xb9, 0x9b, 0x1b, 0x7b, + 0xeb, 0x6e, 0x4e, 0x7a, 0xe7, 0x6e, 0x4e, 0x7a, 0xef, 0x6e, 0x4e, 0xfa, 0xc9, 0xdd, 0x9c, 0x74, + 0x7b, 0x3f, 0x27, 0x7d, 0x65, 0x3f, 0x27, 0x7d, 0x7d, 0x3f, 0x27, 0x7d, 0x67, 0x3f, 0x27, 0x7d, + 0x77, 0x3f, 0x27, 0xbd, 0xb1, 0x9f, 0x1b, 0xfb, 0xfe, 0x7e, 0x6e, 0xec, 0xad, 0xfd, 0x9c, 0xf4, + 0xce, 0x7e, 0x6e, 0xec, 0xbd, 0xfd, 0x9c, 0xf4, 0x93, 0xfd, 0xdc, 0xd8, 0xed, 0x1f, 0xe6, 0xc6, + 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x04, 0x2d, 0x6f, 0x00, 0x11, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -461,6 +483,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -587,6 +618,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -688,6 +728,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -758,6 +799,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -775,6 +820,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -805,7 +851,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -884,6 +930,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -913,23 +962,6 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -1021,8 +1053,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1030,11 +1066,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1061,14 +1097,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1076,43 +1112,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1169,8 +1205,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1183,6 +1220,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1274,6 +1315,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1299,48 +1341,52 @@ func valueToStringCasttype(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/neither/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 668 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0xeb, 0xa6, 0x6e, 0xec, 0x73, 0x02, 0xd1, 0x89, 0xc1, 0x8a, 0xd4, 0x34, 0x6a, 0x55, - 0xc4, 0x00, 0x49, 0x95, 0x46, 0x21, 0x2a, 0x88, 0xc1, 0x55, 0x91, 0x8a, 0x70, 0x85, 0x0c, 0x55, - 0x05, 0x62, 0x71, 0x1a, 0x13, 0x2c, 0xfc, 0x23, 0xb2, 0x1d, 0x90, 0xb7, 0x0a, 0x06, 0x24, 0xfe, - 0x02, 0xfe, 0x04, 0x46, 0x16, 0x24, 0x46, 0xc6, 0x8c, 0x8c, 0x4c, 0xfd, 0xc5, 0xd2, 0xb1, 0x63, - 0xc5, 0xc4, 0xbb, 0x3b, 0xff, 0x52, 0x5b, 0x50, 0xea, 0x0e, 0x4f, 0xf7, 0xeb, 0xbd, 0xcf, 0xfb, - 0xde, 0xf3, 0xdd, 0x19, 0xcd, 0xed, 0xb8, 0x76, 0xcf, 0xf5, 0x9b, 0x8e, 0x61, 0x06, 0xaf, 0x0d, - 0xaf, 0xb9, 0xa3, 0xfb, 0x41, 0x10, 0x0e, 0x8d, 0xc6, 0xd0, 0x73, 0x03, 0x17, 0x0b, 0xf1, 0xb8, - 0x7a, 0x67, 0x00, 0x0e, 0xa3, 0x5e, 0x03, 0xfc, 0x9b, 0x03, 0x77, 0xe0, 0x36, 0xa9, 0x43, 0x6f, - 0xf4, 0x8a, 0x8e, 0xe8, 0x80, 0xf6, 0x58, 0xe0, 0xc2, 0xe7, 0x32, 0x12, 0xd6, 0x20, 0x56, 0x7f, - 0xa7, 0x87, 0x78, 0x09, 0x09, 0x1b, 0x4e, 0xb0, 0xd2, 0x7a, 0x12, 0x78, 0x32, 0x57, 0xe7, 0x6e, - 0x15, 0x14, 0xf1, 0xcf, 0xde, 0x3c, 0x6f, 0x92, 0x39, 0x4d, 0x30, 0xa3, 0x25, 0xbc, 0x88, 0x78, - 0xea, 0x26, 0x4f, 0x53, 0x9f, 0xf2, 0x78, 0x6f, 0x7e, 0x2a, 0xf5, 0x63, 0x0d, 0x7e, 0x8e, 0x24, - 0x35, 0xdc, 0x82, 0x7e, 0xa7, 0x4d, 0x70, 0x05, 0x70, 0x9d, 0x51, 0xee, 0x82, 0xdb, 0xca, 0x3f, - 0x05, 0x06, 0x86, 0x1f, 0xa4, 0x1b, 0x8b, 0xa3, 0x9f, 0xc1, 0x40, 0x93, 0xec, 0x94, 0x85, 0xb7, - 0x91, 0x10, 0x2f, 0xca, 0x33, 0x94, 0x7b, 0x2f, 0x92, 0x90, 0x8b, 0x2d, 0xc4, 0x6c, 0xfc, 0x12, - 0x95, 0xd4, 0xf0, 0xa1, 0xe5, 0xea, 0x51, 0x0d, 0x78, 0x80, 0x4f, 0x2b, 0x5d, 0x00, 0xb7, 0x27, - 0x06, 0x47, 0xe1, 0x94, 0x5c, 0xb2, 0x33, 0x34, 0xfc, 0x02, 0x89, 0xc9, 0xb2, 0x3c, 0x4b, 0xd1, - 0xf7, 0x23, 0xdd, 0xf9, 0xf0, 0x62, 0x82, 0xcf, 0x28, 0x67, 0xe5, 0x2e, 0x02, 0x9e, 0xcb, 0xa3, - 0x3c, 0xaa, 0x49, 0xac, 0x9c, 0x15, 0x3c, 0x55, 0x0e, 0x15, 0x17, 0x28, 0x3a, 0xa7, 0xf2, 0x08, - 0x2f, 0x26, 0x78, 0xfc, 0x08, 0x15, 0xd5, 0x50, 0x09, 0xc1, 0x5b, 0x16, 0x81, 0x5c, 0x52, 0x96, - 0x81, 0x7a, 0x7b, 0x42, 0x2a, 0x8d, 0xd3, 0x8a, 0x36, 0x03, 0xe0, 0x3a, 0x92, 0x36, 0x5d, 0xcf, - 0xd6, 0x2d, 0xc6, 0x43, 0x84, 0xa7, 0x49, 0x4e, 0x3a, 0x85, 0xb7, 0xc8, 0x4e, 0xd8, 0xd7, 0xf6, - 0x65, 0xa9, 0x5e, 0xb8, 0xca, 0x99, 0x14, 0xe3, 0x73, 0xe3, 0x63, 0x13, 0xf1, 0x6a, 0xa8, 0xea, - 0x43, 0xb9, 0x04, 0x48, 0xa9, 0x35, 0xd7, 0x48, 0x22, 0xe2, 0xbb, 0xd5, 0xa0, 0xeb, 0xeb, 0x4e, - 0xe0, 0x85, 0x4a, 0x1b, 0x32, 0x2e, 0x4f, 0x9c, 0x11, 0xc2, 0x68, 0x3a, 0xde, 0x26, 0x5d, 0xfc, - 0x8d, 0x23, 0x17, 0x6b, 0x6d, 0xe4, 0x07, 0xae, 0x4d, 0x32, 0x96, 0x69, 0xc6, 0xc5, 0x0b, 0x33, - 0x26, 0x5e, 0x2c, 0xaf, 0xf3, 0x7e, 0xff, 0x12, 0x3b, 0x7d, 0x1a, 0x78, 0xa6, 0x33, 0x20, 0xa9, - 0x3f, 0xed, 0xe7, 0xbe, 0xb4, 0x89, 0x02, 0xfc, 0x81, 0x43, 0x65, 0x35, 0xdc, 0x1c, 0x59, 0x96, - 0xde, 0xb3, 0x0c, 0xa2, 0xfc, 0x1a, 0x55, 0xbe, 0x74, 0xa1, 0xf2, 0x8c, 0x1f, 0xd3, 0xde, 0x01, - 0xed, 0xad, 0x89, 0x45, 0xd0, 0xe7, 0x89, 0x6a, 0x28, 0xdb, 0x59, 0x16, 0xfe, 0x48, 0x55, 0xac, - 0xdb, 0x3d, 0xa3, 0xdf, 0x37, 0xfa, 0x44, 0xc5, 0xf5, 0xff, 0xa8, 0xc8, 0xf8, 0x31, 0x15, 0xab, - 0xe4, 0xd4, 0xe7, 0x57, 0x92, 0xe1, 0x55, 0xbb, 0x08, 0xa5, 0x47, 0x02, 0x57, 0x50, 0xe1, 0x8d, - 0x11, 0xd2, 0x47, 0x57, 0xd4, 0x48, 0x17, 0xdf, 0x40, 0xfc, 0x5b, 0xdd, 0x1a, 0x19, 0xf4, 0x91, - 0x9d, 0xd1, 0xd8, 0x60, 0x75, 0xba, 0xcb, 0x55, 0x1f, 0xa0, 0xca, 0xd9, 0x4f, 0x7b, 0xa9, 0x78, - 0x0d, 0xe1, 0xf3, 0x05, 0xce, 0x12, 0x78, 0x46, 0xb8, 0x99, 0x25, 0x48, 0xad, 0x4a, 0x5a, 0xa2, - 0x6d, 0xd3, 0xf2, 0x5d, 0xe7, 0x1c, 0xf3, 0x6c, 0xb9, 0xae, 0xc6, 0x5c, 0xa8, 0xa1, 0x59, 0x36, - 0x49, 0xf6, 0xb2, 0x41, 0x5f, 0x7b, 0xfa, 0x53, 0xa2, 0x7f, 0x98, 0x4e, 0x5b, 0x79, 0x3c, 0x3e, - 0xac, 0x4d, 0xfd, 0x04, 0xfb, 0x05, 0x76, 0x70, 0x58, 0xe3, 0x8e, 0xc1, 0x4e, 0xc0, 0x4e, 0xc1, - 0x76, 0x8f, 0x6a, 0xdc, 0x17, 0xb0, 0xaf, 0x60, 0xdf, 0xc1, 0x7e, 0x80, 0x8d, 0x8f, 0xc0, 0x1f, - 0xec, 0x00, 0xfa, 0xc7, 0xd0, 0x9e, 0x40, 0x7b, 0x0a, 0xed, 0xee, 0xef, 0xda, 0xd4, 0xdf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xc5, 0x8d, 0x07, 0x8c, 0x61, 0x07, 0x00, 0x00, + // 695 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0xa9, 0x67, 0xab, 0x55, + 0x91, 0x07, 0x48, 0xaa, 0x34, 0x2a, 0x55, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x0b, 0x32, 0x54, + 0x15, 0x88, 0xc5, 0x69, 0x4d, 0x6a, 0xe1, 0xd8, 0x51, 0x7c, 0x01, 0x79, 0xab, 0xca, 0x80, 0xc4, + 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, 0xab, + 0x4c, 0xe8, 0xee, 0x1c, 0xdb, 0xfd, 0x01, 0x4a, 0xdd, 0xed, 0xde, 0xdd, 0x7b, 0x9f, 0xf7, 0xbd, + 0x77, 0xef, 0xee, 0xe0, 0xcc, 0xb6, 0xdb, 0x6e, 0xba, 0x5e, 0xcd, 0x31, 0x2d, 0xb2, 0x6b, 0x76, + 0x6b, 0xdb, 0x86, 0x47, 0x88, 0xdf, 0x31, 0xab, 0x9d, 0xae, 0x4b, 0x5c, 0x54, 0x18, 0xda, 0xd3, + 0xf7, 0x5b, 0x16, 0xd9, 0xed, 0x35, 0xab, 0xdb, 0x6e, 0xbb, 0xd6, 0x72, 0x5b, 0x6e, 0x8d, 0x39, + 0x34, 0x7b, 0xef, 0x98, 0xc5, 0x0c, 0x36, 0xe2, 0x81, 0xb3, 0x7f, 0xca, 0xb0, 0xb0, 0x6a, 0x78, + 0xc4, 0xf8, 0x68, 0xf8, 0x68, 0x1e, 0x16, 0xd6, 0x1d, 0xb2, 0x58, 0x7f, 0x41, 0xba, 0x22, 0x90, + 0x81, 0x92, 0x53, 0x8b, 0x83, 0xbe, 0x94, 0xb7, 0xe8, 0x9c, 0x1e, 0x2f, 0xa1, 0x39, 0x98, 0x67, + 0x63, 0x71, 0x8c, 0xf9, 0x94, 0x0f, 0xfa, 0x92, 0x90, 0xf8, 0xf1, 0x35, 0xf4, 0x1a, 0x96, 0x34, + 0x7f, 0xd3, 0x72, 0xc8, 0x52, 0x83, 0xe2, 0x72, 0x32, 0x50, 0xc6, 0xd5, 0x07, 0x83, 0xbe, 0xb4, + 0xf8, 0x4f, 0x81, 0xc4, 0xf4, 0x48, 0xb2, 0xb1, 0x61, 0xf4, 0x2b, 0xbf, 0x63, 0xea, 0x69, 0x16, + 0xda, 0x82, 0x85, 0xa1, 0x29, 0x8e, 0x33, 0xee, 0xc3, 0x48, 0x42, 0x26, 0x76, 0x0c, 0x43, 0x6f, + 0xe1, 0x94, 0xe6, 0x3f, 0xb1, 0x5d, 0x23, 0xaa, 0x41, 0x5e, 0x06, 0xca, 0x98, 0xba, 0x3c, 0xe8, + 0x4b, 0x8d, 0x91, 0xc1, 0x51, 0x38, 0x23, 0x9f, 0xa3, 0xa1, 0x37, 0xb0, 0x18, 0xdb, 0xe2, 0x04, + 0x43, 0x3f, 0x8a, 0x74, 0x67, 0xc3, 0x27, 0xb8, 0x94, 0x72, 0x5e, 0xee, 0x49, 0x19, 0x28, 0x20, + 0x8b, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x29, 0xe5, 0x4b, 0x0d, 0xb1, 0xc0, 0xd0, 0x19, 0x95, 0x47, + 0xf8, 0x04, 0x87, 0x9e, 0xc2, 0x49, 0xcd, 0x57, 0x7d, 0x62, 0x7a, 0x62, 0x51, 0x06, 0xca, 0x94, + 0xba, 0x30, 0xe8, 0x4b, 0xf7, 0x46, 0xa4, 0xb2, 0x38, 0x7d, 0x08, 0x40, 0x32, 0x2c, 0x6d, 0xb8, + 0xdd, 0xb6, 0x61, 0x73, 0x1e, 0xa4, 0x3c, 0x3d, 0x3d, 0x85, 0x36, 0xe9, 0x4e, 0xf8, 0x69, 0x7b, + 0x62, 0x49, 0xce, 0xdd, 0xa4, 0x27, 0x13, 0x12, 0xb2, 0x60, 0x5e, 0xf3, 0x35, 0xa3, 0x23, 0x4e, + 0xc9, 0x39, 0xa5, 0x54, 0x9f, 0xa9, 0xc6, 0x11, 0xc3, 0xbb, 0x55, 0x65, 0xeb, 0x6b, 0x0e, 0xe9, + 0xfa, 0x6a, 0x63, 0xd0, 0x97, 0x16, 0x46, 0xce, 0xa8, 0x19, 0x1d, 0x96, 0x8e, 0x67, 0x40, 0xdf, + 0x01, 0xbd, 0x58, 0xab, 0x3d, 0x8f, 0xb8, 0x6d, 0x9a, 0xb1, 0xcc, 0x32, 0xce, 0x5d, 0x99, 0x31, + 0xf6, 0xe2, 0x79, 0x9d, 0xfd, 0xa3, 0x6b, 0xec, 0xf4, 0x25, 0xe9, 0x5a, 0x4e, 0x8b, 0xa6, 0xfe, + 0x72, 0x94, 0xf9, 0xd2, 0xc6, 0x0a, 0xd0, 0x27, 0x00, 0xcb, 0x9a, 0xbf, 0xd1, 0xb3, 0x6d, 0xa3, + 0x69, 0x9b, 0x54, 0xf9, 0x2d, 0xa6, 0x7c, 0xfe, 0x4a, 0xe5, 0x29, 0x3f, 0xae, 0x7d, 0x69, 0xff, + 0x48, 0xaa, 0x8f, 0x2c, 0x82, 0x3d, 0x41, 0x4c, 0xc3, 0xf9, 0x9c, 0xe8, 0x33, 0x53, 0xb1, 0xd6, + 0x6e, 0x9a, 0x3b, 0x3b, 0xe6, 0x0e, 0x55, 0x71, 0xfb, 0x3f, 0x2a, 0x52, 0x7e, 0x5c, 0xc5, 0x0a, + 0xed, 0xfa, 0xec, 0x4a, 0x52, 0x3c, 0xf4, 0x1c, 0x4e, 0xf0, 0x0a, 0x8b, 0x15, 0x19, 0x28, 0xc5, + 0x6b, 0xb6, 0x61, 0x72, 0x38, 0x7a, 0x84, 0x99, 0x5e, 0x86, 0x30, 0xe9, 0x31, 0x54, 0x81, 0xb9, + 0xf7, 0xa6, 0xcf, 0x5e, 0xf1, 0xa2, 0x4e, 0x87, 0xe8, 0x0e, 0xcc, 0x7f, 0x30, 0xec, 0x9e, 0xc9, + 0x5e, 0xed, 0x71, 0x9d, 0x1b, 0x2b, 0x63, 0xcb, 0x60, 0xfa, 0x31, 0xac, 0x5c, 0xec, 0x95, 0x6b, + 0xc5, 0xeb, 0x10, 0x5d, 0x3e, 0xb1, 0x34, 0x21, 0xcf, 0x09, 0x77, 0xd3, 0x84, 0x52, 0xbd, 0x92, + 0xd4, 0x7c, 0xcb, 0xb2, 0x3d, 0xd7, 0xb9, 0xc4, 0xbc, 0x58, 0xff, 0x9b, 0x31, 0x67, 0x31, 0x9c, + 0xe0, 0x93, 0x74, 0x2f, 0xeb, 0xec, 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, 0xf5, 0xd9, 0x41, 0x80, + 0x85, 0xc3, 0x00, 0x0b, 0xbf, 0x02, 0x2c, 0x1c, 0x07, 0x18, 0x9c, 0x04, 0x18, 0x9c, 0x06, 0x18, + 0x9c, 0x05, 0x18, 0xec, 0x85, 0x18, 0x7c, 0x0d, 0x31, 0xf8, 0x16, 0x62, 0xf0, 0x23, 0xc4, 0xe0, + 0x67, 0x88, 0xc1, 0x41, 0x88, 0x85, 0xc3, 0x10, 0x0b, 0xc7, 0x21, 0x06, 0x27, 0x21, 0x16, 0x4e, + 0x43, 0x0c, 0xce, 0x42, 0x2c, 0xec, 0xfd, 0xc6, 0xc2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, + 0x22, 0x40, 0x8d, 0xb2, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto index 99195818..c726b9ef 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go index 0f1fb926..9fb730dd 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +73,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +87,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -108,18 +108,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +147,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +161,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +224,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +241,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +258,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +275,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -294,12 +294,12 @@ func TestCasttypeDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -309,12 +309,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +368,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +404,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go index 1fc4553c..82344319 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go @@ -28,8 +28,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -42,24 +40,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -68,7 +69,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -89,244 +90,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3786 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x1c, 0xf7, - 0x56, 0xcf, 0xbe, 0xec, 0xdd, 0xb3, 0xeb, 0xf5, 0x7a, 0xec, 0x26, 0x1b, 0xdf, 0xe6, 0xe5, 0xf4, - 0x91, 0x9b, 0x7b, 0xaf, 0x1d, 0xd2, 0x34, 0x49, 0x37, 0x97, 0x5e, 0x79, 0xed, 0x8d, 0xef, 0x46, - 0x7e, 0x31, 0xf6, 0xde, 0x24, 0x05, 0x69, 0x34, 0xde, 0x1d, 0xaf, 0x37, 0x99, 0x9d, 0x59, 0x76, - 0x66, 0x93, 0xf8, 0x7e, 0x2a, 0x04, 0xb8, 0x2a, 0x88, 0x37, 0x12, 0x7d, 0x43, 0x2b, 0x41, 0x4b, - 0x79, 0xb5, 0x40, 0x11, 0xe2, 0x53, 0x25, 0x54, 0xe8, 0x27, 0x04, 0x7c, 0xe2, 0x03, 0xea, 0x8b, - 0x22, 0x0a, 0x14, 0x28, 0x52, 0x24, 0x2a, 0xfa, 0x85, 0x73, 0xfe, 0x8f, 0xd9, 0xd9, 0x87, 0x3d, - 0x6b, 0x57, 0xa5, 0x58, 0x5a, 0x79, 0xe7, 0xfc, 0xcf, 0xef, 0x37, 0x67, 0xce, 0xff, 0xfc, 0xcf, - 0x39, 0xff, 0xff, 0x2c, 0xfc, 0xc5, 0x0f, 0xc1, 0xf1, 0xaa, 0x6d, 0x57, 0x4d, 0x63, 0xa6, 0xd1, - 0xb4, 0x5d, 0x7b, 0xa3, 0xb5, 0x39, 0x53, 0x31, 0x9c, 0x72, 0xb3, 0xd6, 0x70, 0xed, 0xe6, 0x34, - 0x93, 0x29, 0xa3, 0x5c, 0x63, 0x5a, 0x6a, 0x4c, 0x2d, 0xc1, 0xd8, 0xe5, 0x9a, 0x69, 0xcc, 0x7b, - 0x8a, 0x6b, 0x86, 0xab, 0x5c, 0x84, 0xe8, 0x26, 0x0a, 0xb3, 0xa1, 0xe3, 0x91, 0x53, 0xc9, 0xb3, - 0x0f, 0x4c, 0x77, 0x81, 0xa6, 0x3b, 0x11, 0xab, 0x24, 0x56, 0x19, 0x62, 0xea, 0xa3, 0x28, 0x8c, - 0xf7, 0x19, 0x55, 0x14, 0x88, 0x5a, 0x7a, 0x9d, 0x18, 0x43, 0xa7, 0x12, 0x2a, 0xfb, 0xae, 0x64, - 0x61, 0xb8, 0xa1, 0x97, 0x6f, 0xea, 0x55, 0x23, 0x1b, 0x66, 0x62, 0x79, 0xa9, 0x1c, 0x05, 0xa8, - 0x18, 0x0d, 0xc3, 0xaa, 0x18, 0x56, 0x79, 0x3b, 0x1b, 0x41, 0x2b, 0x12, 0xaa, 0x4f, 0xa2, 0x7c, - 0x03, 0xc6, 0x1a, 0xad, 0x0d, 0xb3, 0x56, 0xd6, 0x7c, 0x6a, 0x80, 0x6a, 0x31, 0x35, 0xc3, 0x07, - 0xe6, 0xdb, 0xca, 0x0f, 0xc3, 0xe8, 0x6d, 0x43, 0xbf, 0xe9, 0x57, 0x4d, 0x32, 0xd5, 0x34, 0x89, - 0x7d, 0x8a, 0x73, 0x90, 0xaa, 0x1b, 0x8e, 0x83, 0x06, 0x68, 0xee, 0x76, 0xc3, 0xc8, 0x46, 0xd9, - 0xd3, 0x1f, 0xef, 0x79, 0xfa, 0xee, 0x27, 0x4f, 0x0a, 0xd4, 0x3a, 0x82, 0x94, 0x59, 0x48, 0x18, - 0x56, 0xab, 0xce, 0x19, 0x62, 0x3b, 0xf8, 0xaf, 0x80, 0x1a, 0xdd, 0x2c, 0x71, 0x82, 0x09, 0x8a, - 0x61, 0xc7, 0x68, 0xde, 0xaa, 0x95, 0x8d, 0xec, 0x10, 0x23, 0x78, 0xb8, 0x87, 0x60, 0x8d, 0x8f, - 0x77, 0x73, 0x48, 0x1c, 0x3e, 0x4a, 0xc2, 0xb8, 0xe3, 0x1a, 0x96, 0x53, 0xb3, 0xad, 0xec, 0x30, - 0x23, 0x79, 0xb0, 0xcf, 0x2c, 0x1a, 0x66, 0xa5, 0x9b, 0xa2, 0x8d, 0x53, 0xce, 0xc3, 0xb0, 0xdd, - 0x70, 0xf1, 0x9b, 0x93, 0x8d, 0xe3, 0xfc, 0x24, 0xcf, 0xde, 0xdf, 0x37, 0x10, 0x56, 0xb8, 0x8e, - 0x2a, 0x95, 0x95, 0x22, 0x64, 0x1c, 0xbb, 0xd5, 0x2c, 0x1b, 0x5a, 0xd9, 0xae, 0x18, 0x5a, 0xcd, - 0xda, 0xb4, 0xb3, 0x09, 0x46, 0x70, 0xac, 0xf7, 0x41, 0x98, 0xe2, 0x1c, 0xea, 0x15, 0x51, 0x4d, - 0x4d, 0x3b, 0x1d, 0xd7, 0xca, 0x41, 0x18, 0x72, 0xb6, 0x2d, 0x57, 0xbf, 0x93, 0x4d, 0xb1, 0x08, - 0x11, 0x57, 0x53, 0xff, 0x1d, 0x83, 0xd1, 0x41, 0x42, 0xec, 0x12, 0xc4, 0x36, 0xe9, 0x29, 0x31, - 0xc0, 0xf6, 0xe0, 0x03, 0x8e, 0xe9, 0x74, 0xe2, 0xd0, 0x3e, 0x9d, 0x38, 0x0b, 0x49, 0xcb, 0x70, - 0x5c, 0xa3, 0xc2, 0x23, 0x22, 0x32, 0x60, 0x4c, 0x01, 0x07, 0xf5, 0x86, 0x54, 0x74, 0x5f, 0x21, - 0x75, 0x0d, 0x46, 0x3d, 0x93, 0xb4, 0xa6, 0x6e, 0x55, 0x65, 0x6c, 0xce, 0x04, 0x59, 0x32, 0x5d, - 0x90, 0x38, 0x95, 0x60, 0x6a, 0xda, 0xe8, 0xb8, 0x56, 0xe6, 0x01, 0x6c, 0xcb, 0xb0, 0x37, 0x71, - 0x79, 0x95, 0x4d, 0x8c, 0x93, 0xfe, 0x5e, 0x5a, 0x21, 0x95, 0x1e, 0x2f, 0xd9, 0x5c, 0x5a, 0x36, - 0x95, 0xc7, 0xda, 0xa1, 0x36, 0xbc, 0x43, 0xa4, 0x2c, 0xf1, 0x45, 0xd6, 0x13, 0x6d, 0x25, 0x48, - 0x37, 0x0d, 0x8a, 0x7b, 0x74, 0x31, 0x7f, 0xb2, 0x04, 0x33, 0x62, 0x3a, 0xf0, 0xc9, 0x54, 0x01, - 0xe3, 0x0f, 0x36, 0xd2, 0xf4, 0x5f, 0x2a, 0x27, 0xc1, 0x13, 0x68, 0x2c, 0xac, 0x80, 0x65, 0xa1, - 0x94, 0x14, 0x2e, 0xa3, 0x6c, 0xf2, 0x22, 0xa4, 0x3b, 0xdd, 0xa3, 0x4c, 0x40, 0xcc, 0x71, 0xf5, - 0xa6, 0xcb, 0xa2, 0x30, 0xa6, 0xf2, 0x0b, 0x25, 0x03, 0x11, 0x4c, 0x32, 0x2c, 0xcb, 0xc5, 0x54, - 0xfa, 0x3a, 0x79, 0x01, 0x46, 0x3a, 0x6e, 0x3f, 0x28, 0x70, 0xea, 0xe9, 0x21, 0x98, 0xe8, 0x17, - 0x73, 0x7d, 0xc3, 0x1f, 0x97, 0x0f, 0x46, 0xc0, 0x86, 0xd1, 0xc4, 0xb8, 0x23, 0x06, 0x71, 0x85, - 0x11, 0x15, 0x33, 0xf5, 0x0d, 0xc3, 0xc4, 0x68, 0x0a, 0x9d, 0x4a, 0x9f, 0xfd, 0xc6, 0x40, 0x51, - 0x3d, 0xbd, 0x48, 0x10, 0x95, 0x23, 0x95, 0xc7, 0x21, 0x2a, 0x52, 0x1c, 0x31, 0x9c, 0x1e, 0x8c, - 0x81, 0x62, 0x51, 0x65, 0x38, 0xe5, 0x6b, 0x90, 0xa0, 0xff, 0xdc, 0xb7, 0x43, 0xcc, 0xe6, 0x38, - 0x09, 0xc8, 0xaf, 0xca, 0x24, 0xc4, 0x59, 0x98, 0x55, 0x0c, 0x59, 0x1a, 0xbc, 0x6b, 0x9a, 0x98, - 0x8a, 0xb1, 0xa9, 0xb7, 0x4c, 0x57, 0xbb, 0xa5, 0x9b, 0x2d, 0x83, 0x05, 0x0c, 0x4e, 0x8c, 0x10, - 0x7e, 0x8f, 0x64, 0xca, 0x31, 0x48, 0xf2, 0xa8, 0xac, 0x21, 0xe6, 0x0e, 0xcb, 0x3e, 0x31, 0x95, - 0x07, 0x6a, 0x91, 0x24, 0x74, 0xfb, 0x1b, 0x0e, 0xae, 0x05, 0x31, 0xb5, 0xec, 0x16, 0x24, 0x60, - 0xb7, 0xbf, 0xd0, 0x9d, 0xf8, 0x8e, 0xf4, 0x7f, 0xbc, 0xee, 0x58, 0x9c, 0xfa, 0xd3, 0x30, 0x44, - 0xd9, 0x7a, 0x1b, 0x85, 0xe4, 0xfa, 0xf5, 0xd5, 0x82, 0x36, 0xbf, 0x52, 0xca, 0x2f, 0x16, 0x32, - 0x21, 0x25, 0x0d, 0xc0, 0x04, 0x97, 0x17, 0x57, 0x66, 0xd7, 0x33, 0x61, 0xef, 0xba, 0xb8, 0xbc, - 0x7e, 0xfe, 0x5c, 0x26, 0xe2, 0x01, 0x4a, 0x5c, 0x10, 0xf5, 0x2b, 0x3c, 0x72, 0x36, 0x13, 0xc3, - 0x48, 0x48, 0x71, 0x82, 0xe2, 0xb5, 0xc2, 0x3c, 0x6a, 0x0c, 0x75, 0x4a, 0x50, 0x67, 0x58, 0x19, - 0x81, 0x04, 0x93, 0xe4, 0x57, 0x56, 0x16, 0x33, 0x71, 0x8f, 0x73, 0x6d, 0x5d, 0x2d, 0x2e, 0x2f, - 0x64, 0x12, 0x1e, 0xe7, 0x82, 0xba, 0x52, 0x5a, 0xcd, 0x80, 0xc7, 0xb0, 0x54, 0x58, 0x5b, 0x9b, - 0x5d, 0x28, 0x64, 0x92, 0x9e, 0x46, 0xfe, 0xfa, 0x7a, 0x61, 0x2d, 0x93, 0xea, 0x30, 0x0b, 0x6f, - 0x31, 0xe2, 0xdd, 0xa2, 0xb0, 0x5c, 0x5a, 0xca, 0xa4, 0x95, 0x31, 0x18, 0xe1, 0xb7, 0x90, 0x46, - 0x8c, 0x76, 0x89, 0xd0, 0xd2, 0x4c, 0xdb, 0x10, 0xce, 0x32, 0xd6, 0x21, 0x40, 0x0d, 0x65, 0x6a, - 0x0e, 0x62, 0x2c, 0xba, 0x30, 0x8a, 0xd3, 0x8b, 0xb3, 0xf9, 0xc2, 0xa2, 0xb6, 0xb2, 0xba, 0x5e, - 0x5c, 0x59, 0x9e, 0x5d, 0x44, 0xdf, 0x79, 0x32, 0xb5, 0xf0, 0x23, 0xa5, 0xa2, 0x5a, 0x98, 0x47, - 0xff, 0xf9, 0x64, 0xab, 0x85, 0xd9, 0x75, 0x94, 0x45, 0xa6, 0x4e, 0xc3, 0x44, 0xbf, 0x3c, 0xd3, - 0x6f, 0x65, 0x4c, 0xbd, 0x1c, 0x82, 0xf1, 0x3e, 0x29, 0xb3, 0xef, 0x2a, 0xfa, 0x0e, 0xc4, 0x78, - 0xa4, 0xf1, 0x22, 0xf2, 0xf5, 0xbe, 0xb9, 0x97, 0xc5, 0x5d, 0x4f, 0x21, 0x61, 0x38, 0x7f, 0x21, - 0x8d, 0xec, 0x50, 0x48, 0x89, 0xa2, 0x27, 0x9c, 0xee, 0x86, 0x20, 0xbb, 0x13, 0x77, 0xc0, 0x7a, - 0x0f, 0x77, 0xac, 0xf7, 0x4b, 0xdd, 0x06, 0x9c, 0xd8, 0xf9, 0x19, 0x7a, 0xac, 0x78, 0x25, 0x04, - 0x07, 0xfb, 0xf7, 0x1b, 0x7d, 0x6d, 0x78, 0x1c, 0x86, 0xea, 0x86, 0xbb, 0x65, 0xcb, 0x9a, 0xfb, - 0x50, 0x9f, 0x4c, 0x4e, 0xc3, 0xdd, 0xbe, 0x12, 0x28, 0x7f, 0x29, 0x88, 0xec, 0xd4, 0x34, 0x70, - 0x6b, 0x7a, 0x2c, 0x7d, 0x2a, 0x0c, 0xf7, 0xf5, 0x25, 0xef, 0x6b, 0xe8, 0x11, 0x80, 0x9a, 0xd5, - 0x68, 0xb9, 0xbc, 0xae, 0xf2, 0x34, 0x93, 0x60, 0x12, 0xb6, 0x84, 0x29, 0x85, 0xb4, 0x5c, 0x6f, - 0x3c, 0xc2, 0xc6, 0x81, 0x8b, 0x98, 0xc2, 0xc5, 0xb6, 0xa1, 0x51, 0x66, 0xe8, 0xd1, 0x1d, 0x9e, - 0xb4, 0xa7, 0x64, 0x9d, 0x81, 0x4c, 0xd9, 0xac, 0x19, 0x96, 0xab, 0x39, 0x6e, 0xd3, 0xd0, 0xeb, - 0x35, 0xab, 0xca, 0xf2, 0x68, 0x3c, 0x17, 0xdb, 0xd4, 0x4d, 0xc7, 0x50, 0x47, 0xf9, 0xf0, 0x9a, - 0x1c, 0x25, 0x04, 0x2b, 0x16, 0x4d, 0x1f, 0x62, 0xa8, 0x03, 0xc1, 0x87, 0x3d, 0xc4, 0xd4, 0xdf, - 0x0d, 0x43, 0xd2, 0xd7, 0x9d, 0x29, 0x27, 0x20, 0x75, 0x43, 0xbf, 0xa5, 0x6b, 0xb2, 0xe3, 0xe6, - 0x9e, 0x48, 0x92, 0x6c, 0x55, 0x74, 0xdd, 0x67, 0x60, 0x82, 0xa9, 0xe0, 0x33, 0xe2, 0x8d, 0xca, - 0xa6, 0xee, 0x38, 0xcc, 0x69, 0x71, 0xa6, 0xaa, 0xd0, 0xd8, 0x0a, 0x0d, 0xcd, 0xc9, 0x11, 0xe5, - 0x51, 0x18, 0x67, 0x88, 0x3a, 0x26, 0xde, 0x5a, 0xc3, 0x34, 0x34, 0xda, 0x03, 0x38, 0x2c, 0x9f, - 0x7a, 0x96, 0x8d, 0x91, 0xc6, 0x92, 0x50, 0x20, 0x8b, 0x1c, 0x65, 0x01, 0x8e, 0x30, 0x58, 0xd5, - 0xb0, 0x8c, 0xa6, 0xee, 0x1a, 0x9a, 0xf1, 0xe3, 0x2d, 0xd4, 0xd5, 0x74, 0xab, 0xa2, 0x6d, 0xe9, - 0xce, 0x56, 0x76, 0xc2, 0x4f, 0x70, 0x98, 0x74, 0x17, 0x84, 0x6a, 0x81, 0x69, 0xce, 0x5a, 0x95, - 0xef, 0xa2, 0x9e, 0x92, 0x83, 0x83, 0x8c, 0x08, 0x9d, 0x82, 0xcf, 0xac, 0x95, 0xb7, 0x8c, 0xf2, - 0x4d, 0xad, 0xe5, 0x6e, 0x5e, 0xcc, 0x7e, 0xcd, 0xcf, 0xc0, 0x8c, 0x5c, 0x63, 0x3a, 0x73, 0xa4, - 0x52, 0x42, 0x0d, 0x65, 0x0d, 0x52, 0x34, 0x1f, 0xf5, 0xda, 0xf7, 0xd1, 0x6c, 0xbb, 0xc9, 0x6a, - 0x44, 0xba, 0xcf, 0xe2, 0xf6, 0x39, 0x71, 0x7a, 0x45, 0x00, 0x96, 0xb0, 0x3f, 0xcd, 0xc5, 0xd6, - 0x56, 0x0b, 0x85, 0x79, 0x35, 0x29, 0x59, 0x2e, 0xdb, 0x4d, 0x8a, 0xa9, 0xaa, 0xed, 0xf9, 0x38, - 0xc9, 0x63, 0xaa, 0x6a, 0x4b, 0x0f, 0xa3, 0xbf, 0xca, 0x65, 0xfe, 0xd8, 0xb8, 0x77, 0x11, 0xcd, - 0xba, 0x93, 0xcd, 0x74, 0xf8, 0xab, 0x5c, 0x5e, 0xe0, 0x0a, 0x22, 0xcc, 0x1d, 0x5c, 0x12, 0xf7, - 0xb5, 0xfd, 0xe5, 0x07, 0x8e, 0xf5, 0x3c, 0x65, 0x37, 0x14, 0xef, 0xd8, 0xd8, 0xee, 0x05, 0x2a, - 0x1d, 0x77, 0x6c, 0x6c, 0x77, 0xc3, 0x1e, 0x64, 0x1b, 0xb0, 0xa6, 0x51, 0x46, 0x97, 0x57, 0xb2, - 0x87, 0xfc, 0xda, 0xbe, 0x01, 0x65, 0x06, 0x03, 0xb9, 0xac, 0x19, 0x96, 0xbe, 0x81, 0x73, 0xaf, - 0x37, 0xf1, 0x8b, 0x93, 0x3d, 0xe6, 0x57, 0x4e, 0x97, 0xcb, 0x05, 0x36, 0x3a, 0xcb, 0x06, 0x95, - 0xd3, 0x30, 0x66, 0x6f, 0xdc, 0x28, 0xf3, 0xe0, 0xd2, 0x90, 0x67, 0xb3, 0x76, 0x27, 0xfb, 0x00, - 0x73, 0xd3, 0x28, 0x0d, 0xb0, 0xd0, 0x5a, 0x65, 0x62, 0xe5, 0xeb, 0x48, 0xee, 0x6c, 0xe9, 0xcd, - 0x06, 0x2b, 0xd2, 0x0e, 0x3a, 0xd5, 0xc8, 0x3e, 0xc8, 0x55, 0xb9, 0x7c, 0x59, 0x8a, 0x95, 0x02, - 0x1c, 0xa3, 0x87, 0xb7, 0x74, 0xcb, 0xd6, 0x5a, 0x8e, 0xa1, 0xb5, 0x4d, 0xf4, 0xe6, 0xe2, 0x21, - 0x32, 0x4b, 0xbd, 0x5f, 0xaa, 0x95, 0x1c, 0x4c, 0x66, 0x52, 0x49, 0x4e, 0xcf, 0x35, 0x98, 0x68, - 0x59, 0x35, 0x0b, 0x43, 0x1c, 0x47, 0x08, 0xcc, 0x17, 0x6c, 0xf6, 0x9f, 0x87, 0x77, 0x68, 0xba, - 0x4b, 0x7e, 0x6d, 0x1e, 0x24, 0xea, 0x78, 0xab, 0x57, 0x38, 0x95, 0x83, 0x94, 0x3f, 0x76, 0x94, - 0x04, 0xf0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0x6e, 0x65, 0x9e, 0x6a, 0xe1, 0x13, 0x05, 0x2c, - 0x6c, 0x58, 0x93, 0x17, 0x8b, 0xeb, 0x05, 0x4d, 0x2d, 0x2d, 0xaf, 0x17, 0x97, 0x0a, 0x99, 0xc8, - 0xe9, 0x44, 0xfc, 0xe3, 0xe1, 0xcc, 0x93, 0xf8, 0x17, 0x9e, 0x7a, 0x3b, 0x0c, 0xe9, 0xce, 0x3e, - 0x58, 0xf9, 0x36, 0x1c, 0x92, 0x9b, 0x56, 0xc7, 0x70, 0xb5, 0xdb, 0xb5, 0x26, 0x0b, 0xe7, 0xba, - 0xce, 0x3b, 0x49, 0x6f, 0x26, 0x26, 0x84, 0x16, 0x6e, 0xef, 0xaf, 0xa2, 0xce, 0x65, 0xa6, 0xa2, - 0x2c, 0xc2, 0x31, 0x74, 0x19, 0xf6, 0x9a, 0x56, 0x45, 0x6f, 0x56, 0xb4, 0xf6, 0x71, 0x81, 0xa6, - 0x97, 0x31, 0x0e, 0x1c, 0x9b, 0x57, 0x12, 0x8f, 0xe5, 0x7e, 0xcb, 0x5e, 0x13, 0xca, 0xed, 0x14, - 0x3b, 0x2b, 0x54, 0xbb, 0xa2, 0x26, 0xb2, 0x53, 0xd4, 0x60, 0xef, 0x55, 0xd7, 0x1b, 0x18, 0x36, - 0x6e, 0x73, 0x9b, 0x75, 0x6f, 0x71, 0x35, 0x8e, 0x82, 0x02, 0x5d, 0x7f, 0x79, 0x73, 0xe0, 0xf7, - 0xe3, 0x3f, 0x44, 0x20, 0xe5, 0xef, 0xe0, 0xa8, 0x21, 0x2e, 0xb3, 0x34, 0x1f, 0x62, 0x59, 0xe0, - 0xe4, 0xae, 0xfd, 0xde, 0xf4, 0x1c, 0xe5, 0xff, 0xdc, 0x10, 0xef, 0xab, 0x54, 0x8e, 0xa4, 0xda, - 0x4b, 0xb1, 0x66, 0xf0, 0x6e, 0x3d, 0xae, 0x8a, 0x2b, 0x4c, 0x76, 0x43, 0x37, 0x1c, 0xc6, 0x3d, - 0xc4, 0xb8, 0x1f, 0xd8, 0x9d, 0xfb, 0xca, 0x1a, 0x23, 0x4f, 0x5c, 0x59, 0xd3, 0x96, 0x57, 0xd4, - 0xa5, 0xd9, 0x45, 0x55, 0xc0, 0x95, 0xc3, 0x10, 0x35, 0xf5, 0xef, 0x6f, 0x77, 0x56, 0x0a, 0x26, - 0x1a, 0xd4, 0xf1, 0xc8, 0x40, 0x47, 0x1e, 0x9d, 0xf9, 0x99, 0x89, 0xbe, 0xc4, 0xd0, 0x9f, 0x81, - 0x18, 0xf3, 0x97, 0x02, 0x20, 0x3c, 0x96, 0x39, 0xa0, 0xc4, 0x21, 0x3a, 0xb7, 0xa2, 0x52, 0xf8, - 0x63, 0xbc, 0x73, 0xa9, 0xb6, 0x5a, 0x2c, 0xcc, 0xe1, 0x0a, 0x98, 0x7a, 0x14, 0x86, 0xb8, 0x13, - 0x68, 0x69, 0x78, 0x6e, 0x40, 0x10, 0xbf, 0x14, 0x1c, 0x21, 0x39, 0x5a, 0x5a, 0xca, 0x17, 0xd4, - 0x4c, 0xd8, 0x3f, 0xbd, 0x7f, 0x1e, 0x82, 0xa4, 0xaf, 0xa1, 0xa2, 0x52, 0xae, 0x9b, 0xa6, 0x7d, - 0x5b, 0xd3, 0xcd, 0x1a, 0x66, 0x28, 0x3e, 0x3f, 0xc0, 0x44, 0xb3, 0x24, 0x19, 0xd4, 0x7f, 0xff, - 0x27, 0xb1, 0xf9, 0x62, 0x08, 0x32, 0xdd, 0xcd, 0x58, 0x97, 0x81, 0xa1, 0xaf, 0xd4, 0xc0, 0xe7, - 0x43, 0x90, 0xee, 0xec, 0xc0, 0xba, 0xcc, 0x3b, 0xf1, 0x95, 0x9a, 0xf7, 0x5c, 0x08, 0x46, 0x3a, - 0xfa, 0xae, 0xff, 0x57, 0xd6, 0x3d, 0x1b, 0x81, 0xf1, 0x3e, 0x38, 0x4c, 0x40, 0xbc, 0x41, 0xe5, - 0x3d, 0xf3, 0xb7, 0x06, 0xb9, 0xd7, 0x34, 0xd5, 0xbf, 0x55, 0xbd, 0xe9, 0x8a, 0x7e, 0x16, 0xeb, - 0x65, 0xad, 0x82, 0x49, 0xb5, 0xb6, 0x59, 0xc3, 0xf6, 0x8d, 0xef, 0x58, 0x78, 0xd7, 0x3a, 0xda, - 0x96, 0xf3, 0xed, 0xf1, 0x37, 0x41, 0x69, 0xd8, 0x4e, 0xcd, 0xad, 0xdd, 0xa2, 0xe3, 0x39, 0xb9, - 0x91, 0xa6, 0x2e, 0x36, 0xaa, 0x66, 0xe4, 0x48, 0xd1, 0x72, 0x3d, 0x6d, 0xcb, 0xa8, 0xea, 0x5d, - 0xda, 0x94, 0x86, 0x22, 0x6a, 0x46, 0x8e, 0x78, 0xda, 0xd8, 0x68, 0x56, 0xec, 0x16, 0x35, 0x04, - 0x5c, 0x8f, 0xb2, 0x5e, 0x48, 0x4d, 0x72, 0x99, 0xa7, 0x22, 0x3a, 0xb6, 0xf6, 0x0e, 0x3e, 0xa5, - 0x26, 0xb9, 0x8c, 0xab, 0x3c, 0x0c, 0xa3, 0x7a, 0xb5, 0xda, 0x24, 0x72, 0x49, 0xc4, 0xdb, 0xd0, - 0xb4, 0x27, 0x66, 0x8a, 0x93, 0x57, 0x20, 0x2e, 0xfd, 0x40, 0x85, 0x85, 0x3c, 0x81, 0x35, 0x9f, - 0x9d, 0xa3, 0x84, 0x69, 0x53, 0x6f, 0xc9, 0x41, 0xbc, 0x69, 0xcd, 0xd1, 0xda, 0x07, 0x7a, 0x61, - 0x1c, 0x8f, 0xab, 0xc9, 0x9a, 0xe3, 0x9d, 0xe0, 0x4c, 0xbd, 0x82, 0xe5, 0xb5, 0xf3, 0x40, 0x52, - 0x99, 0x87, 0xb8, 0x69, 0x63, 0x7c, 0x10, 0x82, 0x9f, 0x86, 0x9f, 0x0a, 0x38, 0xc3, 0x9c, 0x5e, - 0x14, 0xfa, 0xaa, 0x87, 0x9c, 0xfc, 0xeb, 0x10, 0xc4, 0xa5, 0x18, 0x0b, 0x45, 0xb4, 0xa1, 0xbb, - 0x5b, 0x8c, 0x2e, 0x96, 0x0f, 0x67, 0x42, 0x2a, 0xbb, 0x26, 0x39, 0x76, 0x33, 0x16, 0x0b, 0x01, - 0x21, 0xa7, 0x6b, 0x9a, 0x57, 0xd3, 0xd0, 0x2b, 0xac, 0xc1, 0xb5, 0xeb, 0x75, 0x9c, 0x49, 0x47, - 0xce, 0xab, 0x90, 0xcf, 0x09, 0x31, 0x9d, 0x8b, 0xbb, 0x4d, 0xbd, 0x66, 0x76, 0xe8, 0x46, 0x99, - 0x6e, 0x46, 0x0e, 0x78, 0xca, 0x39, 0x38, 0x2c, 0x79, 0x2b, 0x86, 0xab, 0x63, 0xf3, 0x5c, 0x69, - 0x83, 0x86, 0xd8, 0x69, 0xd7, 0x21, 0xa1, 0x30, 0x2f, 0xc6, 0x25, 0x36, 0x7f, 0x0d, 0x1b, 0x59, - 0xbb, 0xde, 0xed, 0x89, 0x7c, 0xa6, 0x6b, 0xdf, 0xe5, 0x7c, 0x37, 0xf4, 0x04, 0xb4, 0x9b, 0x8a, - 0x97, 0xc3, 0x91, 0x85, 0xd5, 0xfc, 0x6b, 0xe1, 0xc9, 0x05, 0x8e, 0x5b, 0x95, 0x1e, 0x54, 0x8d, - 0x4d, 0xd3, 0x28, 0x93, 0x77, 0xe0, 0xa5, 0x93, 0xf0, 0xad, 0x6a, 0xcd, 0xdd, 0x6a, 0x6d, 0x4c, - 0xe3, 0x1d, 0x66, 0xaa, 0x76, 0xd5, 0x6e, 0xbf, 0xce, 0xa0, 0x2b, 0x76, 0xc1, 0xbe, 0x89, 0x57, - 0x1a, 0x09, 0x4f, 0x3a, 0x19, 0xf8, 0xfe, 0x23, 0xb7, 0x0c, 0xe3, 0x42, 0x59, 0x63, 0x67, 0xaa, - 0xbc, 0x05, 0x55, 0x76, 0xdd, 0x90, 0x67, 0xdf, 0xf8, 0x88, 0x95, 0x04, 0x75, 0x4c, 0x40, 0x69, - 0x8c, 0x37, 0xa9, 0x39, 0x15, 0xee, 0xeb, 0xe0, 0xe3, 0x31, 0x8c, 0x5b, 0xee, 0xdd, 0x19, 0xdf, - 0x16, 0x8c, 0xe3, 0x3e, 0xc6, 0x35, 0x01, 0xcd, 0xcd, 0xc1, 0xc8, 0x5e, 0xb8, 0xfe, 0x52, 0x70, - 0xa5, 0x0c, 0x3f, 0xc9, 0x02, 0x8c, 0x32, 0x92, 0x72, 0xcb, 0x71, 0xed, 0x3a, 0x4b, 0x10, 0xbb, - 0xd3, 0xfc, 0xd5, 0x47, 0x3c, 0xa8, 0xd2, 0x04, 0x9b, 0xf3, 0x50, 0xb9, 0xef, 0xc1, 0x04, 0x49, - 0xd8, 0x1a, 0xf4, 0xb3, 0x05, 0x1f, 0x21, 0x64, 0xff, 0xf6, 0x2e, 0x8f, 0xbd, 0x71, 0x8f, 0xc0, - 0xc7, 0xeb, 0x9b, 0x89, 0xaa, 0xe1, 0x62, 0x6e, 0xc3, 0xfd, 0x9f, 0x69, 0x2a, 0xbb, 0xbe, 0x63, - 0xc8, 0x3e, 0xf3, 0x49, 0xe7, 0x4c, 0x2c, 0x70, 0xe4, 0xac, 0x69, 0xe6, 0x4a, 0x70, 0xa8, 0xcf, - 0xcc, 0x0e, 0xc0, 0xf9, 0xac, 0xe0, 0x9c, 0xe8, 0x99, 0x5d, 0xa2, 0x5d, 0x05, 0x29, 0xf7, 0xe6, - 0x63, 0x00, 0xce, 0xe7, 0x04, 0xa7, 0x22, 0xb0, 0x72, 0x5a, 0x88, 0xf1, 0x0a, 0x8c, 0xe1, 0x4e, - 0x7d, 0xc3, 0x76, 0xc4, 0xbe, 0x77, 0x00, 0xba, 0xe7, 0x05, 0xdd, 0xa8, 0x00, 0xb2, 0x5d, 0x30, - 0x71, 0x3d, 0x06, 0xf1, 0x4d, 0xdc, 0x00, 0x0d, 0x40, 0xf1, 0x82, 0xa0, 0x18, 0x26, 0x7d, 0x82, - 0xce, 0x42, 0xaa, 0x6a, 0x8b, 0x34, 0x1c, 0x0c, 0x7f, 0x51, 0xc0, 0x93, 0x12, 0x23, 0x28, 0x1a, - 0x76, 0xa3, 0x65, 0x52, 0x8e, 0x0e, 0xa6, 0xf8, 0x0d, 0x49, 0x21, 0x31, 0x82, 0x62, 0x0f, 0x6e, - 0xfd, 0x4d, 0x49, 0xe1, 0xf8, 0xfc, 0xf9, 0x1d, 0x3a, 0xeb, 0x35, 0xb7, 0x6d, 0x6b, 0x10, 0x23, - 0x5e, 0x12, 0x0c, 0x20, 0x20, 0x44, 0x70, 0x09, 0x12, 0x83, 0x4e, 0xc4, 0x6f, 0x09, 0x78, 0xdc, - 0x90, 0x33, 0x80, 0xeb, 0x4c, 0x26, 0x19, 0x7a, 0xb7, 0x12, 0x4c, 0xf1, 0xdb, 0x82, 0x22, 0xed, - 0x83, 0x89, 0xc7, 0x70, 0x0d, 0xc7, 0xc5, 0xad, 0xfa, 0x00, 0x24, 0xaf, 0xc8, 0xc7, 0x10, 0x10, - 0xe1, 0xca, 0x0d, 0xc3, 0x2a, 0x6f, 0x0d, 0xc6, 0xf0, 0xaa, 0x74, 0xa5, 0xc4, 0x10, 0x05, 0x66, - 0x9e, 0xba, 0xde, 0xc4, 0xcd, 0xb5, 0x39, 0xd0, 0x74, 0xfc, 0x8e, 0xe0, 0x48, 0x79, 0x20, 0xe1, - 0x91, 0x96, 0xb5, 0x17, 0x9a, 0xd7, 0xa4, 0x47, 0x7c, 0x30, 0xb1, 0xf4, 0x70, 0x67, 0x4a, 0x9d, - 0xc4, 0x5e, 0xd8, 0x7e, 0x57, 0x2e, 0x3d, 0x8e, 0x5d, 0xf2, 0x33, 0xe2, 0x4c, 0x3b, 0xb8, 0x05, - 0x1f, 0x84, 0xe6, 0xf7, 0xe4, 0x4c, 0x33, 0x00, 0x81, 0xaf, 0xc3, 0xe1, 0xbe, 0xa9, 0x7e, 0x00, - 0xb2, 0xdf, 0x17, 0x64, 0x07, 0xfb, 0xa4, 0x7b, 0x91, 0x12, 0xf6, 0x4a, 0xf9, 0x07, 0x32, 0x25, - 0x18, 0x5d, 0x5c, 0xab, 0xd4, 0xc6, 0x3a, 0xfa, 0xe6, 0xde, 0xbc, 0xf6, 0x87, 0xd2, 0x6b, 0x1c, - 0xdb, 0xe1, 0xb5, 0x75, 0x38, 0x28, 0x18, 0xf7, 0x36, 0xaf, 0xaf, 0xcb, 0xc4, 0xca, 0xd1, 0xa5, - 0xce, 0xd9, 0xfd, 0x51, 0x98, 0xf4, 0xdc, 0x29, 0x3b, 0x30, 0x47, 0xa3, 0x83, 0x81, 0x60, 0xe6, - 0x37, 0x04, 0xb3, 0xcc, 0xf8, 0x5e, 0x0b, 0xe7, 0x2c, 0xe9, 0x0d, 0x22, 0xbf, 0x06, 0x59, 0x49, - 0xde, 0xb2, 0xb0, 0xc1, 0xb7, 0xab, 0x16, 0x4e, 0x63, 0x65, 0x00, 0xea, 0x3f, 0xea, 0x9a, 0xaa, - 0x92, 0x0f, 0x4e, 0xcc, 0x45, 0xc8, 0x78, 0xfd, 0x86, 0x56, 0xab, 0x37, 0x6c, 0x6c, 0x2d, 0x77, - 0x67, 0xfc, 0x63, 0x39, 0x53, 0x1e, 0xae, 0xc8, 0x60, 0xb9, 0x02, 0xa4, 0xd9, 0xe5, 0xa0, 0x21, - 0xf9, 0x27, 0x82, 0x68, 0xa4, 0x8d, 0x12, 0x89, 0x03, 0x3b, 0x25, 0xec, 0x79, 0x07, 0xc9, 0x7f, - 0x6f, 0xca, 0xc4, 0x21, 0x20, 0x3c, 0xfa, 0x46, 0xbb, 0x2a, 0xb1, 0x12, 0xf4, 0xfa, 0x35, 0xfb, - 0x13, 0xf7, 0xc4, 0x9a, 0xed, 0x2c, 0xc4, 0xb9, 0x45, 0x72, 0x4f, 0x67, 0xb9, 0x0c, 0x26, 0xbb, - 0x7b, 0xcf, 0xf3, 0x50, 0x47, 0xb5, 0xcc, 0x5d, 0x86, 0x91, 0x8e, 0x52, 0x19, 0x4c, 0xf5, 0x53, - 0x82, 0x2a, 0xe5, 0xaf, 0x94, 0xb9, 0x47, 0x21, 0x4a, 0x65, 0x2f, 0x18, 0xfe, 0xd3, 0x02, 0xce, - 0xd4, 0x73, 0x3f, 0x0c, 0x71, 0x59, 0xee, 0x82, 0xa1, 0x3f, 0x23, 0xa0, 0x1e, 0x84, 0xe0, 0xb2, - 0xd4, 0x05, 0xc3, 0x7f, 0x20, 0xe1, 0x12, 0x42, 0xf0, 0xc1, 0x5d, 0xf8, 0xd6, 0xcf, 0x45, 0x45, - 0xba, 0x92, 0xbe, 0xa3, 0x77, 0x3e, 0xbc, 0xc6, 0x05, 0xa3, 0x9f, 0x12, 0x37, 0x97, 0x88, 0xdc, - 0x05, 0x88, 0x0d, 0xe8, 0xf0, 0x9f, 0x17, 0x50, 0xae, 0x8f, 0x15, 0x24, 0xe9, 0xab, 0x6b, 0xc1, - 0xf0, 0x5f, 0x10, 0x70, 0x3f, 0x8a, 0x4c, 0x17, 0x75, 0x2d, 0x98, 0xe0, 0x17, 0xa5, 0xe9, 0x02, - 0x41, 0x6e, 0x93, 0x25, 0x2d, 0x18, 0xfd, 0x4b, 0xd2, 0xeb, 0x12, 0x82, 0xab, 0x29, 0xe1, 0xa5, - 0xa9, 0x60, 0xfc, 0x2f, 0x0b, 0x7c, 0x1b, 0x43, 0x1e, 0xf0, 0xa5, 0xc9, 0x60, 0x8a, 0x5f, 0x91, - 0x1e, 0xf0, 0xa1, 0x68, 0x19, 0x75, 0x97, 0xbe, 0x60, 0xa6, 0x5f, 0x95, 0xcb, 0xa8, 0xab, 0xf2, - 0xd1, 0x6c, 0xb2, 0x6c, 0x11, 0x4c, 0xf1, 0x6b, 0x72, 0x36, 0x99, 0x3e, 0x99, 0xd1, 0x5d, 0x4b, - 0x82, 0x39, 0x7e, 0x5d, 0x9a, 0xd1, 0x55, 0x4a, 0xb0, 0x32, 0x29, 0xbd, 0x75, 0x24, 0x98, 0xef, - 0x69, 0xc1, 0x37, 0xd6, 0x53, 0x46, 0x72, 0x57, 0xe1, 0x60, 0xff, 0x1a, 0x12, 0xcc, 0xfa, 0xcc, - 0xbd, 0xae, 0xae, 0xdf, 0x5f, 0x42, 0xb0, 0xe4, 0x4d, 0xf4, 0xab, 0x1f, 0xc1, 0xb4, 0xcf, 0xde, - 0xeb, 0xdc, 0xd8, 0xf9, 0xcb, 0x07, 0x76, 0x68, 0xd0, 0x4e, 0xdd, 0xc1, 0x5c, 0xcf, 0x0b, 0x2e, - 0x1f, 0x88, 0x96, 0x86, 0xc8, 0xdc, 0xc1, 0xf8, 0x17, 0xe4, 0xd2, 0x10, 0x08, 0x04, 0xc7, 0xad, - 0x96, 0x69, 0x52, 0x70, 0x28, 0xbb, 0xff, 0xa4, 0x21, 0xfb, 0x2f, 0x9f, 0x8b, 0x85, 0x21, 0x01, - 0x98, 0x43, 0x63, 0x46, 0x7d, 0x03, 0x7d, 0x10, 0x80, 0xfc, 0xd7, 0xcf, 0x65, 0x42, 0x20, 0x6d, - 0x5c, 0x4f, 0xc0, 0x37, 0x8d, 0xec, 0x0c, 0x3b, 0x00, 0xfb, 0x6f, 0x9f, 0x8b, 0xd7, 0xac, 0x6d, - 0x48, 0x9b, 0x80, 0xbf, 0xb4, 0xdd, 0x9d, 0xe0, 0x93, 0x4e, 0x02, 0xb6, 0xd1, 0x7c, 0x0c, 0x86, - 0xe9, 0x97, 0x1d, 0xae, 0x5e, 0x0d, 0x42, 0xff, 0xbb, 0x40, 0x4b, 0x7d, 0x72, 0x58, 0xdd, 0x6e, - 0x1a, 0xf8, 0xd5, 0x09, 0xc2, 0xfe, 0x87, 0xc0, 0x7a, 0x00, 0x02, 0x97, 0x75, 0xc7, 0x1d, 0xe4, - 0xb9, 0xff, 0x53, 0x82, 0x25, 0x80, 0x8c, 0xa6, 0xef, 0x37, 0x8d, 0xed, 0x20, 0xec, 0xa7, 0xd2, - 0x68, 0xa1, 0x8f, 0x09, 0x30, 0x41, 0x5f, 0xf9, 0x4f, 0x0f, 0x02, 0xc0, 0xff, 0x25, 0xc0, 0x6d, - 0x44, 0xfe, 0x44, 0xff, 0xa3, 0x1d, 0x58, 0xb0, 0x17, 0x6c, 0x7e, 0xa8, 0x03, 0xff, 0x94, 0x86, - 0x13, 0xa8, 0x83, 0xf5, 0x75, 0xc6, 0xb7, 0x92, 0x67, 0xa4, 0xf1, 0xe2, 0x5c, 0xc6, 0x7b, 0x98, - 0xc9, 0xbd, 0x1d, 0xe8, 0x4c, 0x3d, 0x3d, 0x02, 0xf1, 0x39, 0xc4, 0xea, 0xb7, 0x75, 0x7a, 0xb5, - 0x11, 0x2f, 0x5a, 0xee, 0x23, 0x67, 0x57, 0xdd, 0x26, 0x3b, 0xf7, 0x8e, 0xe4, 0x13, 0xff, 0xf3, - 0xee, 0xb1, 0x58, 0x8d, 0x64, 0x6a, 0xbc, 0x26, 0x86, 0x94, 0x93, 0x10, 0x63, 0x6a, 0xec, 0x70, - 0x3f, 0x92, 0x1f, 0x79, 0xe7, 0xdd, 0x63, 0x07, 0xda, 0x7a, 0xfc, 0x9f, 0x72, 0x1d, 0x92, 0x4b, - 0xdb, 0x25, 0xfc, 0x7e, 0xfe, 0x1c, 0xd1, 0xd1, 0xa3, 0x47, 0xf3, 0x17, 0x50, 0xed, 0x91, 0x1d, - 0x0d, 0xa4, 0xaa, 0xd2, 0x7e, 0x30, 0x89, 0x66, 0xbf, 0x63, 0x4a, 0xd6, 0xdb, 0x5c, 0xca, 0x55, - 0x88, 0xcb, 0x41, 0x7e, 0x8e, 0x9a, 0xbf, 0x24, 0x4c, 0xd8, 0x17, 0x77, 0x5c, 0x72, 0x2b, 0x3f, - 0x06, 0xa9, 0xa5, 0xed, 0xcb, 0xa6, 0xad, 0x0b, 0x1f, 0xd0, 0xb1, 0x6b, 0x38, 0x7f, 0x11, 0x89, - 0xcf, 0x0d, 0x4c, 0x2c, 0xe0, 0x8c, 0x39, 0x55, 0xf7, 0xb1, 0x29, 0x4f, 0x40, 0xc2, 0x1b, 0x66, - 0x27, 0xb5, 0xe1, 0xfc, 0xb7, 0x85, 0xdd, 0xfb, 0xa3, 0x4f, 0x78, 0xf4, 0x3e, 0xcb, 0xb9, 0xbb, - 0xe9, 0x94, 0x37, 0xb4, 0x1f, 0xcb, 0x85, 0x4f, 0xa4, 0xe5, 0xdc, 0xe1, 0x6d, 0xcb, 0xd1, 0xe3, - 0x71, 0x46, 0xbd, 0x4f, 0xcb, 0x05, 0x7d, 0xc2, 0xa3, 0x57, 0xae, 0xc0, 0xf0, 0xd2, 0x76, 0x7e, - 0x1b, 0xb5, 0xd9, 0xaf, 0x02, 0x52, 0xf9, 0x33, 0xc8, 0xfa, 0xcd, 0x01, 0x59, 0x19, 0x4e, 0x1d, - 0xae, 0x73, 0x02, 0xe5, 0x38, 0x24, 0x97, 0xe9, 0x5d, 0xab, 0xc9, 0xf9, 0x80, 0x1f, 0x75, 0x5b, - 0x6d, 0x91, 0x52, 0xa2, 0x27, 0xe1, 0xb3, 0xed, 0xb0, 0x5f, 0x26, 0x7f, 0x81, 0x98, 0x4c, 0xc8, - 0xb8, 0x71, 0x94, 0x1a, 0xc4, 0x96, 0xb6, 0xb1, 0x96, 0x65, 0x53, 0xec, 0xd8, 0xfa, 0xc8, 0xb4, - 0x87, 0x90, 0x6b, 0x6b, 0x9a, 0x8d, 0xb3, 0xd7, 0xae, 0xf9, 0x73, 0x78, 0xc7, 0x33, 0x03, 0xdf, - 0x11, 0x61, 0xec, 0x76, 0xb1, 0x3a, 0x7d, 0x55, 0xde, 0x0c, 0xd1, 0xc2, 0xe2, 0x67, 0x7b, 0x74, - 0xc7, 0x11, 0x76, 0xc7, 0x93, 0x7d, 0xef, 0xe8, 0x69, 0xf1, 0xfb, 0x5a, 0x3f, 0xf9, 0xde, 0x1e, - 0x9e, 0x94, 0x6f, 0x0c, 0xe8, 0xd6, 0x3f, 0xfb, 0xde, 0xbe, 0x17, 0xad, 0x67, 0x81, 0x72, 0x97, - 0x5e, 0x15, 0x6d, 0x2f, 0x8b, 0x0a, 0x47, 0x96, 0xa7, 0xc5, 0xef, 0x57, 0xfb, 0x59, 0xee, 0xd3, - 0xe3, 0xb6, 0x9f, 0x47, 0xdb, 0xcf, 0x0e, 0x6c, 0x04, 0x4b, 0x4f, 0xcc, 0x86, 0x91, 0xba, 0x9f, - 0x4b, 0xf9, 0x01, 0xb3, 0xa2, 0x40, 0xd5, 0xb2, 0x62, 0x54, 0xc8, 0x8a, 0xd1, 0x5d, 0xac, 0xf0, - 0xe9, 0x71, 0x2b, 0x72, 0x14, 0xf5, 0xfb, 0xb7, 0xc4, 0xc7, 0x37, 0x79, 0x11, 0xa0, 0x1d, 0x12, - 0xf4, 0xdb, 0x53, 0x2c, 0x27, 0xe2, 0x87, 0x42, 0xf4, 0x95, 0x7e, 0xa3, 0x2a, 0x7f, 0x08, 0x47, - 0x6f, 0x8a, 0xf8, 0x45, 0x2e, 0x7c, 0x31, 0x34, 0xf9, 0x38, 0x64, 0xba, 0xa7, 0x76, 0x4f, 0x78, - 0x15, 0x94, 0x5e, 0x07, 0xfb, 0x19, 0x62, 0x9c, 0xe1, 0x21, 0x3f, 0x43, 0xf2, 0x6c, 0xa6, 0xed, - 0xa2, 0xab, 0x35, 0x13, 0x8b, 0x76, 0x0f, 0x67, 0xb7, 0xbb, 0xbe, 0x18, 0xe7, 0xd4, 0x51, 0x18, - 0xe2, 0x42, 0x7a, 0x96, 0x22, 0xcb, 0xf6, 0xac, 0x28, 0xb1, 0x0a, 0x73, 0xfe, 0x5c, 0x7e, 0xf1, - 0x9d, 0x0f, 0x8e, 0x1e, 0xf8, 0x1b, 0xfc, 0xfc, 0x3d, 0x7e, 0xde, 0xff, 0xe0, 0x68, 0xe8, 0x63, - 0xfc, 0x7c, 0x8a, 0x9f, 0xcf, 0xf0, 0xf3, 0xe4, 0x87, 0x47, 0x43, 0xaf, 0xe2, 0xe7, 0x75, 0xfc, - 0xfc, 0x19, 0x7e, 0xde, 0xc2, 0xcf, 0x3b, 0x1f, 0xa2, 0x3e, 0xfe, 0x7f, 0x1f, 0x3f, 0x1f, 0xe3, - 0xf7, 0x4f, 0xf1, 0xff, 0x67, 0xf8, 0xff, 0xc9, 0x7f, 0x3c, 0x7a, 0xe0, 0x7f, 0x03, 0x00, 0x00, - 0xff, 0xff, 0x6f, 0xce, 0x5c, 0x69, 0xd2, 0x31, 0x00, 0x00, + // 4125 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0x3f, 0x17, 0x1f, 0x24, 0x70, 0x00, 0x82, 0xcb, 0x4b, 0x5a, 0x82, 0xe8, 0x18, 0xa4, 0xe8, + 0x2f, 0xda, 0x4e, 0x28, 0x8f, 0xbe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0xd0, 0x9f, 0x20, + 0x90, 0x25, 0x19, 0x49, 0xfe, 0x77, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, + 0x0b, 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0x7e, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, + 0x66, 0x5a, 0xa7, 0x49, 0x3f, 0x92, 0xb6, 0x71, 0x33, 0x7d, 0xca, 0x4b, 0x5a, 0x3f, 0x75, 0x92, + 0xb7, 0x3e, 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc8, 0x2f, + 0x9d, 0xfb, 0xb5, 0x58, 0x7c, 0x90, 0x0b, 0x2a, 0xe3, 0xe4, 0x89, 0xd8, 0x73, 0xcf, 0xef, 0xb7, + 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x2e, 0xe1, 0x87, 0xe7, 0x60, 0xa1, 0x61, 0xdb, 0x0d, + 0x13, 0x9f, 0x6a, 0x39, 0xb6, 0x67, 0xef, 0xb4, 0x77, 0x4f, 0xd5, 0xb1, 0xab, 0x3b, 0x46, 0xcb, + 0xb3, 0x9d, 0x65, 0x2a, 0x43, 0x53, 0x4c, 0x63, 0x59, 0x68, 0x2c, 0x56, 0x60, 0xfa, 0x92, 0x61, + 0xe2, 0x55, 0x5f, 0x71, 0x13, 0x7b, 0xe8, 0x02, 0xc4, 0x76, 0x0d, 0x13, 0x67, 0xa5, 0x85, 0xe8, + 0x52, 0xea, 0xf4, 0x23, 0xcb, 0x7d, 0xa0, 0xe5, 0x5e, 0x44, 0x8d, 0x88, 0x15, 0x8a, 0x58, 0x7c, + 0x27, 0x06, 0x33, 0x43, 0x46, 0x11, 0x82, 0x98, 0xa5, 0x35, 0x09, 0xa3, 0xb4, 0x94, 0x54, 0xe8, + 0x6f, 0x94, 0x85, 0x89, 0x96, 0xa6, 0xdf, 0xd0, 0x1a, 0x38, 0x1b, 0xa1, 0x62, 0x71, 0x89, 0x72, + 0x00, 0x75, 0xdc, 0xc2, 0x56, 0x1d, 0x5b, 0x7a, 0x27, 0x1b, 0x5d, 0x88, 0x2e, 0x25, 0x95, 0x80, + 0x04, 0x3d, 0x05, 0xd3, 0xad, 0xf6, 0x8e, 0x69, 0xe8, 0x6a, 0x40, 0x0d, 0x16, 0xa2, 0x4b, 0x71, + 0x45, 0x66, 0x03, 0xab, 0x5d, 0xe5, 0xc7, 0x61, 0xea, 0x16, 0xd6, 0x6e, 0x04, 0x55, 0x53, 0x54, + 0x35, 0x43, 0xc4, 0x01, 0xc5, 0x15, 0x48, 0x37, 0xb1, 0xeb, 0x6a, 0x0d, 0xac, 0x7a, 0x9d, 0x16, + 0xce, 0xc6, 0xe8, 0xec, 0x17, 0x06, 0x66, 0xdf, 0x3f, 0xf3, 0x14, 0x47, 0x6d, 0x75, 0x5a, 0x18, + 0x15, 0x20, 0x89, 0xad, 0x76, 0x93, 0x31, 0xc4, 0x0f, 0xf0, 0x5f, 0xc9, 0x6a, 0x37, 0xfb, 0x59, + 0x12, 0x04, 0xc6, 0x29, 0x26, 0x5c, 0xec, 0xdc, 0x34, 0x74, 0x9c, 0x1d, 0xa7, 0x04, 0x8f, 0x0f, + 0x10, 0x6c, 0xb2, 0xf1, 0x7e, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc4, 0x2f, 0x7a, 0xd8, 0x72, 0x0d, + 0xdb, 0xca, 0x4e, 0x50, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xeb, 0xfd, 0x14, 0x5d, 0x1c, 0x3a, + 0x0f, 0x13, 0x76, 0xcb, 0x33, 0x6c, 0xcb, 0xcd, 0x26, 0x16, 0xa4, 0xa5, 0xd4, 0xe9, 0x8f, 0x0d, + 0x0d, 0x84, 0x2a, 0xd3, 0x51, 0x84, 0x32, 0x2a, 0x83, 0xec, 0xda, 0x6d, 0x47, 0xc7, 0xaa, 0x6e, + 0xd7, 0xb1, 0x6a, 0x58, 0xbb, 0x76, 0x36, 0x49, 0x09, 0xe6, 0x07, 0x27, 0x42, 0x15, 0x57, 0xec, + 0x3a, 0x2e, 0x5b, 0xbb, 0xb6, 0x92, 0x71, 0x7b, 0xae, 0xd1, 0x31, 0x18, 0x77, 0x3b, 0x96, 0xa7, + 0xbd, 0x98, 0x4d, 0xd3, 0x08, 0xe1, 0x57, 0x8b, 0xff, 0x1b, 0x87, 0xa9, 0x51, 0x42, 0xec, 0x22, + 0xc4, 0x77, 0xc9, 0x2c, 0xb3, 0x91, 0xa3, 0xf8, 0x80, 0x61, 0x7a, 0x9d, 0x38, 0x7e, 0x9f, 0x4e, + 0x2c, 0x40, 0xca, 0xc2, 0xae, 0x87, 0xeb, 0x2c, 0x22, 0xa2, 0x23, 0xc6, 0x14, 0x30, 0xd0, 0x60, + 0x48, 0xc5, 0xee, 0x2b, 0xa4, 0xae, 0xc2, 0x94, 0x6f, 0x92, 0xea, 0x68, 0x56, 0x43, 0xc4, 0xe6, + 0xa9, 0x30, 0x4b, 0x96, 0x4b, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc1, 0x3d, 0xd7, 0x68, 0x15, 0xc0, + 0xb6, 0xb0, 0xbd, 0xab, 0xd6, 0xb1, 0x6e, 0x66, 0x13, 0x07, 0x78, 0xa9, 0x4a, 0x54, 0x06, 0xbc, + 0x64, 0x33, 0xa9, 0x6e, 0xa2, 0x67, 0xbb, 0xa1, 0x36, 0x71, 0x40, 0xa4, 0x54, 0xd8, 0x26, 0x1b, + 0x88, 0xb6, 0x6d, 0xc8, 0x38, 0x98, 0xc4, 0x3d, 0xae, 0xf3, 0x99, 0x25, 0xa9, 0x11, 0xcb, 0xa1, + 0x33, 0x53, 0x38, 0x8c, 0x4d, 0x6c, 0xd2, 0x09, 0x5e, 0xa2, 0x87, 0xc1, 0x17, 0xa8, 0x34, 0xac, + 0x80, 0x66, 0xa1, 0xb4, 0x10, 0x6e, 0x68, 0x4d, 0x3c, 0x77, 0x01, 0x32, 0xbd, 0xee, 0x41, 0xb3, + 0x10, 0x77, 0x3d, 0xcd, 0xf1, 0x68, 0x14, 0xc6, 0x15, 0x76, 0x81, 0x64, 0x88, 0x62, 0xab, 0x4e, + 0xb3, 0x5c, 0x5c, 0x21, 0x3f, 0xe7, 0x9e, 0x81, 0xc9, 0x9e, 0xdb, 0x8f, 0x0a, 0x5c, 0xfc, 0xd2, + 0x38, 0xcc, 0x0e, 0x8b, 0xb9, 0xa1, 0xe1, 0x7f, 0x0c, 0xc6, 0xad, 0x76, 0x73, 0x07, 0x3b, 0xd9, + 0x28, 0x65, 0xe0, 0x57, 0xa8, 0x00, 0x71, 0x53, 0xdb, 0xc1, 0x66, 0x36, 0xb6, 0x20, 0x2d, 0x65, + 0x4e, 0x3f, 0x35, 0x52, 0x54, 0x2f, 0xaf, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x39, 0x88, 0xf1, 0x14, + 0x47, 0x18, 0x9e, 0x1c, 0x8d, 0x81, 0xc4, 0xa2, 0x42, 0x71, 0xe8, 0x41, 0x48, 0x92, 0xbf, 0xcc, + 0xb7, 0xe3, 0xd4, 0xe6, 0x04, 0x11, 0x10, 0xbf, 0xa2, 0x39, 0x48, 0xd0, 0x30, 0xab, 0x63, 0x51, + 0x1a, 0xfc, 0x6b, 0xb2, 0x30, 0x75, 0xbc, 0xab, 0xb5, 0x4d, 0x4f, 0xbd, 0xa9, 0x99, 0x6d, 0x4c, + 0x03, 0x26, 0xa9, 0xa4, 0xb9, 0xf0, 0xb3, 0x44, 0x86, 0xe6, 0x21, 0xc5, 0xa2, 0xd2, 0xb0, 0xea, + 0xf8, 0x45, 0x9a, 0x7d, 0xe2, 0x0a, 0x0b, 0xd4, 0x32, 0x91, 0x90, 0xdb, 0x5f, 0x77, 0x6d, 0x4b, + 0x2c, 0x2d, 0xbd, 0x05, 0x11, 0xd0, 0xdb, 0x3f, 0xd3, 0x9f, 0xf8, 0x1e, 0x1a, 0x3e, 0xbd, 0xfe, + 0x58, 0x5c, 0x7c, 0x23, 0x02, 0x31, 0xba, 0xdf, 0xa6, 0x20, 0xb5, 0x75, 0xad, 0x56, 0x52, 0x57, + 0xab, 0xdb, 0xc5, 0xf5, 0x92, 0x2c, 0xa1, 0x0c, 0x00, 0x15, 0x5c, 0x5a, 0xaf, 0x16, 0xb6, 0xe4, + 0x88, 0x7f, 0x5d, 0xde, 0xd8, 0x3a, 0x7f, 0x56, 0x8e, 0xfa, 0x80, 0x6d, 0x26, 0x88, 0x05, 0x15, + 0xce, 0x9c, 0x96, 0xe3, 0x48, 0x86, 0x34, 0x23, 0x28, 0x5f, 0x2d, 0xad, 0x9e, 0x3f, 0x2b, 0x8f, + 0xf7, 0x4a, 0xce, 0x9c, 0x96, 0x27, 0xd0, 0x24, 0x24, 0xa9, 0xa4, 0x58, 0xad, 0xae, 0xcb, 0x09, + 0x9f, 0x73, 0x73, 0x4b, 0x29, 0x6f, 0xac, 0xc9, 0x49, 0x9f, 0x73, 0x4d, 0xa9, 0x6e, 0xd7, 0x64, + 0xf0, 0x19, 0x2a, 0xa5, 0xcd, 0xcd, 0xc2, 0x5a, 0x49, 0x4e, 0xf9, 0x1a, 0xc5, 0x6b, 0x5b, 0xa5, + 0x4d, 0x39, 0xdd, 0x63, 0xd6, 0x99, 0xd3, 0xf2, 0xa4, 0x7f, 0x8b, 0xd2, 0xc6, 0x76, 0x45, 0xce, + 0xa0, 0x69, 0x98, 0x64, 0xb7, 0x10, 0x46, 0x4c, 0xf5, 0x89, 0xce, 0x9f, 0x95, 0xe5, 0xae, 0x21, + 0x8c, 0x65, 0xba, 0x47, 0x70, 0xfe, 0xac, 0x8c, 0x16, 0x57, 0x20, 0x4e, 0xa3, 0x0b, 0x21, 0xc8, + 0xac, 0x17, 0x8a, 0xa5, 0x75, 0xb5, 0x5a, 0xdb, 0x2a, 0x57, 0x37, 0x0a, 0xeb, 0xb2, 0xd4, 0x95, + 0x29, 0xa5, 0xcf, 0x6c, 0x97, 0x95, 0xd2, 0xaa, 0x1c, 0x09, 0xca, 0x6a, 0xa5, 0xc2, 0x56, 0x69, + 0x55, 0x8e, 0x2e, 0xea, 0x30, 0x3b, 0x2c, 0xcf, 0x0c, 0xdd, 0x19, 0x81, 0x25, 0x8e, 0x1c, 0xb0, + 0xc4, 0x94, 0x6b, 0x60, 0x89, 0xbf, 0x2a, 0xc1, 0xcc, 0x90, 0x5c, 0x3b, 0xf4, 0x26, 0xcf, 0x43, + 0x9c, 0x85, 0x28, 0xab, 0x3e, 0x4f, 0x0c, 0x4d, 0xda, 0x34, 0x60, 0x07, 0x2a, 0x10, 0xc5, 0x05, + 0x2b, 0x70, 0xf4, 0x80, 0x0a, 0x4c, 0x28, 0x06, 0x8c, 0x7c, 0x59, 0x82, 0xec, 0x41, 0xdc, 0x21, + 0x89, 0x22, 0xd2, 0x93, 0x28, 0x2e, 0xf6, 0x1b, 0x70, 0xf2, 0xe0, 0x39, 0x0c, 0x58, 0xf1, 0xba, + 0x04, 0xc7, 0x86, 0x37, 0x2a, 0x43, 0x6d, 0x78, 0x0e, 0xc6, 0x9b, 0xd8, 0xdb, 0xb3, 0x45, 0xb1, + 0x7e, 0x6c, 0x48, 0x09, 0x20, 0xc3, 0xfd, 0xbe, 0xe2, 0xa8, 0x60, 0x0d, 0x89, 0x1e, 0xd4, 0x6d, + 0x30, 0x6b, 0x06, 0x2c, 0xfd, 0x62, 0x04, 0x1e, 0x18, 0x4a, 0x3e, 0xd4, 0xd0, 0x87, 0x00, 0x0c, + 0xab, 0xd5, 0xf6, 0x58, 0x41, 0x66, 0xf9, 0x29, 0x49, 0x25, 0x74, 0xef, 0x93, 0xdc, 0xd3, 0xf6, + 0xfc, 0xf1, 0x28, 0x1d, 0x07, 0x26, 0xa2, 0x0a, 0x17, 0xba, 0x86, 0xc6, 0xa8, 0xa1, 0xb9, 0x03, + 0x66, 0x3a, 0x50, 0xeb, 0x9e, 0x06, 0x59, 0x37, 0x0d, 0x6c, 0x79, 0xaa, 0xeb, 0x39, 0x58, 0x6b, + 0x1a, 0x56, 0x83, 0x26, 0xe0, 0x44, 0x3e, 0xbe, 0xab, 0x99, 0x2e, 0x56, 0xa6, 0xd8, 0xf0, 0xa6, + 0x18, 0x25, 0x08, 0x5a, 0x65, 0x9c, 0x00, 0x62, 0xbc, 0x07, 0xc1, 0x86, 0x7d, 0xc4, 0xe2, 0x37, + 0x26, 0x20, 0x15, 0x68, 0xeb, 0xd0, 0x49, 0x48, 0x5f, 0xd7, 0x6e, 0x6a, 0xaa, 0x68, 0xd5, 0x99, + 0x27, 0x52, 0x44, 0x56, 0xe3, 0xed, 0xfa, 0xd3, 0x30, 0x4b, 0x55, 0xec, 0xb6, 0x87, 0x1d, 0x55, + 0x37, 0x35, 0xd7, 0xa5, 0x4e, 0x4b, 0x50, 0x55, 0x44, 0xc6, 0xaa, 0x64, 0x68, 0x45, 0x8c, 0xa0, + 0x73, 0x30, 0x43, 0x11, 0xcd, 0xb6, 0xe9, 0x19, 0x2d, 0x13, 0xab, 0xe4, 0xe1, 0xc1, 0xa5, 0x89, + 0xd8, 0xb7, 0x6c, 0x9a, 0x68, 0x54, 0xb8, 0x02, 0xb1, 0xc8, 0x45, 0xab, 0xf0, 0x10, 0x85, 0x35, + 0xb0, 0x85, 0x1d, 0xcd, 0xc3, 0x2a, 0xfe, 0x5c, 0x5b, 0x33, 0x5d, 0x55, 0xb3, 0xea, 0xea, 0x9e, + 0xe6, 0xee, 0x65, 0x67, 0x09, 0x41, 0x31, 0x92, 0x95, 0x94, 0x13, 0x44, 0x71, 0x8d, 0xeb, 0x95, + 0xa8, 0x5a, 0xc1, 0xaa, 0x7f, 0x5a, 0x73, 0xf7, 0x50, 0x1e, 0x8e, 0x51, 0x16, 0xd7, 0x73, 0x0c, + 0xab, 0xa1, 0xea, 0x7b, 0x58, 0xbf, 0xa1, 0xb6, 0xbd, 0xdd, 0x0b, 0xd9, 0x07, 0x83, 0xf7, 0xa7, + 0x16, 0x6e, 0x52, 0x9d, 0x15, 0xa2, 0xb2, 0xed, 0xed, 0x5e, 0x40, 0x9b, 0x90, 0x26, 0x8b, 0xd1, + 0x34, 0x5e, 0xc2, 0xea, 0xae, 0xed, 0xd0, 0xca, 0x92, 0x19, 0xb2, 0xb3, 0x03, 0x1e, 0x5c, 0xae, + 0x72, 0x40, 0xc5, 0xae, 0xe3, 0x7c, 0x7c, 0xb3, 0x56, 0x2a, 0xad, 0x2a, 0x29, 0xc1, 0x72, 0xc9, + 0x76, 0x48, 0x40, 0x35, 0x6c, 0xdf, 0xc1, 0x29, 0x16, 0x50, 0x0d, 0x5b, 0xb8, 0xf7, 0x1c, 0xcc, + 0xe8, 0x3a, 0x9b, 0xb3, 0xa1, 0xab, 0xbc, 0xc5, 0x77, 0xb3, 0x72, 0x8f, 0xb3, 0x74, 0x7d, 0x8d, + 0x29, 0xf0, 0x18, 0x77, 0xd1, 0xb3, 0xf0, 0x40, 0xd7, 0x59, 0x41, 0xe0, 0xf4, 0xc0, 0x2c, 0xfb, + 0xa1, 0xe7, 0x60, 0xa6, 0xd5, 0x19, 0x04, 0xa2, 0x9e, 0x3b, 0xb6, 0x3a, 0xfd, 0xb0, 0x47, 0xe9, + 0x63, 0x9b, 0x83, 0x75, 0xcd, 0xc3, 0xf5, 0xec, 0xf1, 0xa0, 0x76, 0x60, 0x00, 0x9d, 0x02, 0x59, + 0xd7, 0x55, 0x6c, 0x69, 0x3b, 0x26, 0x56, 0x35, 0x07, 0x5b, 0x9a, 0x9b, 0x9d, 0x0f, 0x2a, 0x67, + 0x74, 0xbd, 0x44, 0x47, 0x0b, 0x74, 0x10, 0x3d, 0x09, 0xd3, 0xf6, 0xce, 0x75, 0x9d, 0x45, 0x96, + 0xda, 0x72, 0xf0, 0xae, 0xf1, 0x62, 0xf6, 0x11, 0xea, 0xa6, 0x29, 0x32, 0x40, 0xe3, 0xaa, 0x46, + 0xc5, 0xe8, 0x09, 0x90, 0x75, 0x77, 0x4f, 0x73, 0x5a, 0xb4, 0xb4, 0xbb, 0x2d, 0x4d, 0xc7, 0xd9, + 0x47, 0x99, 0x2a, 0x93, 0x6f, 0x08, 0x31, 0x89, 0x6c, 0xf7, 0x96, 0xb1, 0xeb, 0x09, 0xc6, 0xc7, + 0x59, 0x64, 0x53, 0x19, 0x67, 0xbb, 0x0a, 0xb3, 0x6d, 0xcb, 0xb0, 0x3c, 0xec, 0xb4, 0x1c, 0x4c, + 0x9a, 0x78, 0xb6, 0x13, 0xb3, 0xff, 0x3a, 0x71, 0x40, 0x1b, 0xbe, 0x1d, 0xd4, 0x66, 0x01, 0xa0, + 0xcc, 0xb4, 0x07, 0x85, 0x8b, 0x79, 0x48, 0x07, 0xe3, 0x02, 0x25, 0x81, 0x45, 0x86, 0x2c, 0x91, + 0x1a, 0xbb, 0x52, 0x5d, 0x25, 0xd5, 0xf1, 0x85, 0x92, 0x1c, 0x21, 0x55, 0x7a, 0xbd, 0xbc, 0x55, + 0x52, 0x95, 0xed, 0x8d, 0xad, 0x72, 0xa5, 0x24, 0x47, 0x9f, 0x4c, 0x26, 0xde, 0x9d, 0x90, 0x6f, + 0xdf, 0xbe, 0x7d, 0x3b, 0xb2, 0xf8, 0xbd, 0x08, 0x64, 0x7a, 0x3b, 0x63, 0xf4, 0x49, 0x38, 0x2e, + 0x1e, 0x63, 0x5d, 0xec, 0xa9, 0xb7, 0x0c, 0x87, 0x86, 0x6a, 0x53, 0x63, 0xbd, 0xa5, 0xef, 0xe5, + 0x59, 0xae, 0xb5, 0x89, 0xbd, 0x2b, 0x86, 0x43, 0x02, 0xb1, 0xa9, 0x79, 0x68, 0x1d, 0xe6, 0x2d, + 0x5b, 0x75, 0x3d, 0xcd, 0xaa, 0x6b, 0x4e, 0x5d, 0xed, 0x1e, 0x20, 0xa8, 0x9a, 0xae, 0x63, 0xd7, + 0xb5, 0x59, 0x89, 0xf0, 0x59, 0x3e, 0x66, 0xd9, 0x9b, 0x5c, 0xb9, 0x9b, 0x3b, 0x0b, 0x5c, 0xb5, + 0x2f, 0x22, 0xa2, 0x07, 0x45, 0xc4, 0x83, 0x90, 0x6c, 0x6a, 0x2d, 0x15, 0x5b, 0x9e, 0xd3, 0xa1, + 0xfd, 0x5c, 0x42, 0x49, 0x34, 0xb5, 0x56, 0x89, 0x5c, 0x7f, 0x74, 0x6b, 0x10, 0xf4, 0xe3, 0xbf, + 0x44, 0x21, 0x1d, 0xec, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x1d, 0xfe, 0xf0, 0xa1, + 0x1d, 0xe0, 0xf2, 0x0a, 0x49, 0xec, 0xf9, 0x71, 0xd6, 0x69, 0x29, 0x0c, 0x49, 0x8a, 0x2a, 0xd9, + 0xd3, 0x98, 0xf5, 0xef, 0x09, 0x85, 0x5f, 0xa1, 0x35, 0x18, 0xbf, 0xee, 0x52, 0xee, 0x71, 0xca, + 0xfd, 0xc8, 0xe1, 0xdc, 0x97, 0x37, 0x29, 0x79, 0xf2, 0xf2, 0xa6, 0xba, 0x51, 0x55, 0x2a, 0x85, + 0x75, 0x85, 0xc3, 0xd1, 0x09, 0x88, 0x99, 0xda, 0x4b, 0x9d, 0xde, 0x12, 0x40, 0x45, 0xa3, 0x3a, + 0xfe, 0x04, 0xc4, 0x6e, 0x61, 0xed, 0x46, 0x6f, 0xe2, 0xa5, 0xa2, 0x8f, 0x30, 0xf4, 0x4f, 0x41, + 0x9c, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x63, 0x28, 0x01, 0xb1, 0x95, 0xaa, 0x42, 0xc2, 0x5f, + 0x86, 0x34, 0x93, 0xaa, 0xb5, 0x72, 0x69, 0xa5, 0x24, 0x47, 0x16, 0xcf, 0xc1, 0x38, 0x73, 0x02, + 0xd9, 0x1a, 0xbe, 0x1b, 0xe4, 0x31, 0x7e, 0xc9, 0x39, 0x24, 0x31, 0xba, 0x5d, 0x29, 0x96, 0x14, + 0x39, 0x12, 0x5c, 0x5e, 0x17, 0xd2, 0xc1, 0x76, 0xee, 0x67, 0x13, 0x53, 0x7f, 0x2f, 0x41, 0x2a, + 0xd0, 0x9e, 0x91, 0xc6, 0x40, 0x33, 0x4d, 0xfb, 0x96, 0xaa, 0x99, 0x86, 0xe6, 0xf2, 0xa0, 0x00, + 0x2a, 0x2a, 0x10, 0xc9, 0xa8, 0x8b, 0xf6, 0x33, 0x31, 0xfe, 0x35, 0x09, 0xe4, 0xfe, 0xd6, 0xae, + 0xcf, 0x40, 0xe9, 0xe7, 0x6a, 0xe0, 0xab, 0x12, 0x64, 0x7a, 0xfb, 0xb9, 0x3e, 0xf3, 0x4e, 0xfe, + 0x5c, 0xcd, 0x7b, 0x3b, 0x02, 0x93, 0x3d, 0x5d, 0xdc, 0xa8, 0xd6, 0x7d, 0x0e, 0xa6, 0x8d, 0x3a, + 0x6e, 0xb6, 0x6c, 0x0f, 0x5b, 0x7a, 0x47, 0x35, 0xf1, 0x4d, 0x6c, 0x66, 0x17, 0x69, 0xa2, 0x38, + 0x75, 0x78, 0x9f, 0xb8, 0x5c, 0xee, 0xe2, 0xd6, 0x09, 0x2c, 0x3f, 0x53, 0x5e, 0x2d, 0x55, 0x6a, + 0xd5, 0xad, 0xd2, 0xc6, 0xca, 0x35, 0x75, 0x7b, 0xe3, 0xff, 0x6d, 0x54, 0xaf, 0x6c, 0x28, 0xb2, + 0xd1, 0xa7, 0xf6, 0x11, 0x6e, 0xf5, 0x1a, 0xc8, 0xfd, 0x46, 0xa1, 0xe3, 0x30, 0xcc, 0x2c, 0x79, + 0x0c, 0xcd, 0xc0, 0xd4, 0x46, 0x55, 0xdd, 0x2c, 0xaf, 0x96, 0xd4, 0xd2, 0xa5, 0x4b, 0xa5, 0x95, + 0xad, 0x4d, 0xf6, 0xe0, 0xec, 0x6b, 0x6f, 0xf5, 0x6e, 0xea, 0x57, 0xa2, 0x30, 0x33, 0xc4, 0x12, + 0x54, 0xe0, 0x3d, 0x3b, 0x7b, 0x8c, 0xf8, 0xc4, 0x28, 0xd6, 0x2f, 0x93, 0xae, 0xa0, 0xa6, 0x39, + 0x1e, 0x6f, 0xf1, 0x9f, 0x00, 0xe2, 0x25, 0xcb, 0x33, 0x76, 0x0d, 0xec, 0xf0, 0x73, 0x06, 0xd6, + 0xc8, 0x4f, 0x75, 0xe5, 0xec, 0xa8, 0xe1, 0xe3, 0x80, 0x5a, 0xb6, 0x6b, 0x78, 0xc6, 0x4d, 0xac, + 0x1a, 0x96, 0x38, 0x94, 0x20, 0x8d, 0x7d, 0x4c, 0x91, 0xc5, 0x48, 0xd9, 0xf2, 0x7c, 0x6d, 0x0b, + 0x37, 0xb4, 0x3e, 0x6d, 0x92, 0xc0, 0xa3, 0x8a, 0x2c, 0x46, 0x7c, 0xed, 0x93, 0x90, 0xae, 0xdb, + 0x6d, 0xd2, 0x26, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, 0xc5, 0x64, 0xbe, 0x0a, 0xef, 0x63, 0xbb, + 0xa7, 0x21, 0x69, 0x25, 0xc5, 0x64, 0x4c, 0xe5, 0x71, 0x98, 0xd2, 0x1a, 0x0d, 0x87, 0x90, 0x0b, + 0x22, 0xd6, 0x99, 0x67, 0x7c, 0x31, 0x55, 0x9c, 0xbb, 0x0c, 0x09, 0xe1, 0x07, 0x52, 0x92, 0x89, + 0x27, 0xd4, 0x16, 0x3b, 0x93, 0x8a, 0x2c, 0x25, 0x95, 0x84, 0x25, 0x06, 0x4f, 0x42, 0xda, 0x70, + 0xd5, 0xee, 0xe1, 0x68, 0x64, 0x21, 0xb2, 0x94, 0x50, 0x52, 0x86, 0xeb, 0x9f, 0x86, 0x2d, 0xbe, + 0x1e, 0x81, 0x4c, 0xef, 0xe1, 0x2e, 0x5a, 0x85, 0x84, 0x69, 0xeb, 0x1a, 0x0d, 0x2d, 0xf6, 0x66, + 0x61, 0x29, 0xe4, 0x3c, 0x78, 0x79, 0x9d, 0xeb, 0x2b, 0x3e, 0x72, 0xee, 0x9f, 0x24, 0x48, 0x08, + 0x31, 0x3a, 0x06, 0xb1, 0x96, 0xe6, 0xed, 0x51, 0xba, 0x78, 0x31, 0x22, 0x4b, 0x0a, 0xbd, 0x26, + 0x72, 0xb7, 0xa5, 0x59, 0x34, 0x04, 0xb8, 0x9c, 0x5c, 0x93, 0x75, 0x35, 0xb1, 0x56, 0xa7, 0x6d, + 0xbf, 0xdd, 0x6c, 0x62, 0xcb, 0x73, 0xc5, 0xba, 0x72, 0xf9, 0x0a, 0x17, 0xa3, 0xa7, 0x60, 0xda, + 0x73, 0x34, 0xc3, 0xec, 0xd1, 0x8d, 0x51, 0x5d, 0x59, 0x0c, 0xf8, 0xca, 0x79, 0x38, 0x21, 0x78, + 0xeb, 0xd8, 0xd3, 0xf4, 0x3d, 0x5c, 0xef, 0x82, 0xc6, 0xe9, 0xc9, 0xe1, 0x71, 0xae, 0xb0, 0xca, + 0xc7, 0x05, 0x76, 0xf1, 0x07, 0x12, 0x4c, 0x8b, 0x07, 0x95, 0xba, 0xef, 0xac, 0x0a, 0x80, 0x66, + 0x59, 0xb6, 0x17, 0x74, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0x96, 0x0b, 0x3e, 0x48, 0x09, 0x10, 0xcc, + 0x35, 0x01, 0xba, 0x23, 0x07, 0xba, 0x6d, 0x1e, 0x52, 0xfc, 0xe4, 0x9e, 0xbe, 0xfe, 0x61, 0x8f, + 0xb6, 0xc0, 0x44, 0xe4, 0x89, 0x06, 0xcd, 0x42, 0x7c, 0x07, 0x37, 0x0c, 0x8b, 0x9f, 0x27, 0xb2, + 0x0b, 0x71, 0x4a, 0x19, 0xf3, 0x4f, 0x29, 0x8b, 0x57, 0x61, 0x46, 0xb7, 0x9b, 0xfd, 0xe6, 0x16, + 0xe5, 0xbe, 0xc7, 0x6b, 0xf7, 0xd3, 0xd2, 0x0b, 0xd0, 0x6d, 0x31, 0xbf, 0x1a, 0x89, 0xae, 0xd5, + 0x8a, 0x5f, 0x8f, 0xcc, 0xad, 0x31, 0x5c, 0x4d, 0x4c, 0x53, 0xc1, 0xbb, 0x26, 0xd6, 0x89, 0xe9, + 0xf0, 0xe3, 0xc7, 0xe0, 0x13, 0x0d, 0xc3, 0xdb, 0x6b, 0xef, 0x2c, 0xeb, 0x76, 0xf3, 0x54, 0xc3, + 0x6e, 0xd8, 0xdd, 0xd7, 0x5d, 0xe4, 0x8a, 0x5e, 0xd0, 0x5f, 0xfc, 0x95, 0x57, 0xd2, 0x97, 0xce, + 0x85, 0xbe, 0x1f, 0xcb, 0x6f, 0xc0, 0x0c, 0x57, 0x56, 0xe9, 0x99, 0x3b, 0x7b, 0x34, 0x40, 0x87, + 0x9e, 0xbb, 0x64, 0xbf, 0xf5, 0x0e, 0xad, 0xd5, 0xca, 0x34, 0x87, 0x92, 0x31, 0xf6, 0x00, 0x91, + 0x57, 0xe0, 0x81, 0x1e, 0x3e, 0xb6, 0x2f, 0xb1, 0x13, 0xc2, 0xf8, 0x3d, 0xce, 0x38, 0x13, 0x60, + 0xdc, 0xe4, 0xd0, 0xfc, 0x0a, 0x4c, 0x1e, 0x85, 0xeb, 0x1f, 0x38, 0x57, 0x1a, 0x07, 0x49, 0xd6, + 0x60, 0x8a, 0x92, 0xe8, 0x6d, 0xd7, 0xb3, 0x9b, 0x34, 0xe9, 0x1d, 0x4e, 0xf3, 0x8f, 0xef, 0xb0, + 0x8d, 0x92, 0x21, 0xb0, 0x15, 0x1f, 0x95, 0xcf, 0x03, 0x7d, 0xcd, 0x50, 0xc7, 0xba, 0x19, 0xc2, + 0xf0, 0x26, 0x37, 0xc4, 0xd7, 0xcf, 0x7f, 0x16, 0x66, 0xc9, 0x6f, 0x9a, 0x93, 0x82, 0x96, 0x84, + 0x9f, 0x32, 0x65, 0x7f, 0xf0, 0x32, 0xdb, 0x8b, 0x33, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2a, 0x36, + 0xb0, 0xe7, 0x61, 0xc7, 0x55, 0x35, 0x73, 0x98, 0x79, 0x81, 0xc7, 0xf4, 0xec, 0x97, 0xdf, 0xeb, + 0x5d, 0xc5, 0x35, 0x86, 0x2c, 0x98, 0x66, 0x7e, 0x1b, 0x8e, 0x0f, 0x89, 0x8a, 0x11, 0x38, 0x5f, + 0xe1, 0x9c, 0xb3, 0x03, 0x91, 0x41, 0x68, 0x6b, 0x20, 0xe4, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0x07, + 0x9c, 0x13, 0x71, 0xac, 0x58, 0x52, 0xc2, 0x78, 0x19, 0xa6, 0x6f, 0x62, 0x67, 0xc7, 0x76, 0xf9, + 0xd1, 0xc8, 0x08, 0x74, 0xaf, 0x72, 0xba, 0x29, 0x0e, 0xa4, 0x67, 0x25, 0x84, 0xeb, 0x59, 0x48, + 0xec, 0x6a, 0x3a, 0x1e, 0x81, 0xe2, 0x2b, 0x9c, 0x62, 0x82, 0xe8, 0x13, 0x68, 0x01, 0xd2, 0x0d, + 0x9b, 0x97, 0xa5, 0x70, 0xf8, 0x6b, 0x1c, 0x9e, 0x12, 0x18, 0x4e, 0xd1, 0xb2, 0x5b, 0x6d, 0x93, + 0xd4, 0xac, 0x70, 0x8a, 0x3f, 0x14, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0x3f, 0x12, 0x14, + 0x6e, 0xc0, 0x9f, 0xcf, 0x43, 0xca, 0xb6, 0xcc, 0x8e, 0x6d, 0x8d, 0x62, 0xc4, 0x1f, 0x73, 0x06, + 0xe0, 0x10, 0x42, 0x70, 0x11, 0x92, 0xa3, 0x2e, 0xc4, 0x9f, 0xbc, 0x27, 0xb6, 0x87, 0x58, 0x81, + 0x35, 0x98, 0x12, 0x09, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x94, 0x53, 0x64, 0x02, 0x30, 0x3e, + 0x0d, 0x0f, 0xbb, 0x5e, 0x03, 0x8f, 0x42, 0xf2, 0xba, 0x98, 0x06, 0x87, 0x70, 0x57, 0xee, 0x60, + 0x4b, 0xdf, 0x1b, 0x8d, 0xe1, 0x6b, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, 0xb2, 0xa9, 0x39, + 0xee, 0x9e, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc6, 0x39, 0xd2, 0x3e, 0x88, 0x7b, 0xa4, 0x6d, 0x1d, + 0x85, 0xe6, 0xeb, 0xc2, 0x23, 0x01, 0x18, 0xdf, 0x7a, 0xae, 0x47, 0x0f, 0xa0, 0x8e, 0xc2, 0xf6, + 0x0d, 0xb1, 0xf5, 0x18, 0xb6, 0x12, 0x64, 0xbc, 0x08, 0x49, 0xd7, 0x78, 0x69, 0x24, 0x9a, 0x3f, + 0x17, 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x0d, 0x4e, 0x0c, 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x05, 0x27, + 0x3b, 0x36, 0xa4, 0x54, 0xf0, 0x94, 0x70, 0x54, 0xca, 0xbf, 0x14, 0x29, 0x01, 0xf7, 0x71, 0xd5, + 0xc8, 0x83, 0x82, 0xab, 0xed, 0x1e, 0xcd, 0x6b, 0x7f, 0x25, 0xbc, 0xc6, 0xb0, 0x3d, 0x5e, 0xdb, + 0x82, 0x63, 0x9c, 0xf1, 0x68, 0xeb, 0xfa, 0x4d, 0x91, 0x58, 0x19, 0x7a, 0xbb, 0x77, 0x75, 0xff, + 0x3f, 0xcc, 0xf9, 0xee, 0x14, 0x1d, 0xa9, 0xab, 0x36, 0xb5, 0xd6, 0x08, 0xcc, 0xdf, 0xe2, 0xcc, + 0x22, 0xe3, 0xfb, 0x2d, 0xad, 0x5b, 0xd1, 0x5a, 0x84, 0xfc, 0x2a, 0x64, 0x05, 0x79, 0xdb, 0x72, + 0xb0, 0x6e, 0x37, 0x2c, 0xe3, 0x25, 0x5c, 0x1f, 0x81, 0xfa, 0xaf, 0xfb, 0x96, 0x6a, 0x3b, 0x00, + 0x27, 0xcc, 0x65, 0x90, 0xfd, 0x5e, 0x45, 0x35, 0x9a, 0x2d, 0xdb, 0xf1, 0x42, 0x18, 0xff, 0x46, + 0xac, 0x94, 0x8f, 0x2b, 0x53, 0x58, 0xbe, 0x04, 0x19, 0x7a, 0x39, 0x6a, 0x48, 0xfe, 0x2d, 0x27, + 0x9a, 0xec, 0xa2, 0x78, 0xe2, 0xd0, 0xed, 0x66, 0x4b, 0x73, 0x46, 0xc9, 0x7f, 0xdf, 0x16, 0x89, + 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x3a, 0x2d, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, 0x6f, 0x88, 0xc4, 0x21, + 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0x9d, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0x99, 0x6e, + 0xa1, 0x75, 0x70, 0xc3, 0x70, 0x3d, 0x87, 0xf5, 0xc1, 0x87, 0x53, 0x7d, 0xe7, 0xbd, 0xde, 0x26, + 0x4c, 0x09, 0x40, 0xf3, 0x97, 0x61, 0xaa, 0xaf, 0xc5, 0x40, 0x61, 0xdf, 0x2c, 0x64, 0x7f, 0xf1, + 0x03, 0x9e, 0x8c, 0x7a, 0x3b, 0x8c, 0xfc, 0x3a, 0x59, 0xf7, 0xde, 0x3e, 0x20, 0x9c, 0xec, 0xe5, + 0x0f, 0xfc, 0xa5, 0xef, 0x69, 0x03, 0xf2, 0x97, 0x60, 0xb2, 0xa7, 0x07, 0x08, 0xa7, 0xfa, 0x25, + 0x4e, 0x95, 0x0e, 0xb6, 0x00, 0xf9, 0x73, 0x10, 0x23, 0xf5, 0x3c, 0x1c, 0xfe, 0xcb, 0x1c, 0x4e, + 0xd5, 0xf3, 0x9f, 0x82, 0x84, 0xa8, 0xe3, 0xe1, 0xd0, 0x5f, 0xe1, 0x50, 0x1f, 0x42, 0xe0, 0xa2, + 0x86, 0x87, 0xc3, 0xbf, 0x20, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, 0xbb, 0xbf, 0x16, 0xe3, + 0x79, 0x58, 0xf8, 0xee, 0x22, 0x4c, 0xf0, 0xe2, 0x1d, 0x8e, 0xfe, 0x22, 0xbf, 0xb9, 0x40, 0xe4, + 0x9f, 0x81, 0xf8, 0x88, 0x0e, 0xff, 0x75, 0x0e, 0x65, 0xfa, 0xf9, 0x15, 0x48, 0x05, 0x0a, 0x76, + 0x38, 0xfc, 0x37, 0x38, 0x3c, 0x88, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4e, 0xf0, 0x9b, 0xc2, 0x74, + 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1c, 0xfd, 0x5b, 0xc2, 0xeb, 0x02, 0x92, 0x7f, 0x1e, 0x92, + 0x7e, 0xfe, 0x0d, 0xc7, 0xff, 0x36, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4e, 0xf1, + 0x3b, 0xc2, 0x03, 0x01, 0x14, 0xd9, 0x46, 0xfd, 0x35, 0x3d, 0x9c, 0xe9, 0x77, 0xc5, 0x36, 0xea, + 0x2b, 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x0c, 0xa7, 0xf8, 0x3d, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0xd1, + 0x5f, 0x24, 0xc3, 0x39, 0x7e, 0x5f, 0x98, 0xd1, 0x57, 0x23, 0xf3, 0x35, 0x40, 0x83, 0x05, 0x32, + 0x9c, 0xef, 0x4b, 0x9c, 0x6f, 0x7a, 0xa0, 0x3e, 0xe6, 0xaf, 0xc0, 0xb1, 0xe1, 0xc5, 0x31, 0x9c, + 0xf5, 0xcb, 0x1f, 0xf4, 0x3d, 0xce, 0x04, 0x6b, 0x63, 0x7e, 0xab, 0x9b, 0x65, 0x83, 0x85, 0x31, + 0x9c, 0xf6, 0x95, 0x0f, 0x7a, 0x13, 0x6d, 0xb0, 0x2e, 0xe6, 0x0b, 0x00, 0xdd, 0x9a, 0x14, 0xce, + 0xf5, 0x2a, 0xe7, 0x0a, 0x80, 0xc8, 0xd6, 0xe0, 0x25, 0x29, 0x1c, 0xff, 0x15, 0xb1, 0x35, 0x38, + 0x82, 0x6c, 0x0d, 0x51, 0x8d, 0xc2, 0xd1, 0xaf, 0x89, 0xad, 0x21, 0x20, 0xf9, 0x8b, 0x90, 0xb0, + 0xda, 0xa6, 0x49, 0x62, 0x0b, 0x1d, 0xfe, 0x19, 0x51, 0xf6, 0x47, 0x1f, 0x72, 0xb0, 0x00, 0xe4, + 0xcf, 0x41, 0x1c, 0x37, 0x77, 0x70, 0x3d, 0x0c, 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0xf3, + 0xcf, 0x03, 0xb0, 0x87, 0x69, 0xfa, 0x96, 0x28, 0x04, 0xfb, 0xef, 0x1f, 0xf2, 0x2f, 0x14, 0xba, + 0x90, 0x2e, 0x01, 0xfb, 0xde, 0xe1, 0x70, 0x82, 0xf7, 0x7a, 0x09, 0xe8, 0x03, 0xf8, 0xb3, 0x30, + 0x71, 0xdd, 0xb5, 0x2d, 0x4f, 0x6b, 0x84, 0xa1, 0xff, 0x83, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xd3, + 0x76, 0xb0, 0xa7, 0x35, 0xdc, 0x30, 0xec, 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x5d, 0x73, 0xbd, + 0x51, 0xe6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xfb, 0x06, 0xee, 0x84, 0x61, 0xdf, + 0x17, 0x46, 0x73, 0xfd, 0xfc, 0xa7, 0x20, 0x49, 0x7e, 0xb2, 0xaf, 0x76, 0x42, 0xc0, 0xff, 0xcd, + 0xc1, 0x5d, 0x04, 0xb9, 0xb3, 0xeb, 0xd5, 0x3d, 0x23, 0xdc, 0xd9, 0xff, 0xc3, 0x57, 0x5a, 0xe8, + 0xe7, 0x0b, 0x90, 0x72, 0xbd, 0x7a, 0xbd, 0xcd, 0x3b, 0x9a, 0x10, 0xf8, 0x8f, 0x3f, 0xf4, 0x1f, + 0x72, 0x7d, 0x4c, 0xf1, 0xe4, 0xf0, 0xc3, 0x3a, 0x58, 0xb3, 0xd7, 0x6c, 0x76, 0x4c, 0x07, 0x6f, + 0x4c, 0xc1, 0x49, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0xa9, 0x40, 0x1a, 0x3a, 0x25, 0x5c, 0xc7, 0x4f, + 0xda, 0x7c, 0x57, 0xce, 0x1d, 0xed, 0x88, 0x6e, 0xf1, 0x47, 0x93, 0x90, 0x58, 0xd1, 0x5c, 0x4f, + 0xbb, 0xa5, 0x75, 0xd0, 0xa3, 0x90, 0x28, 0x5b, 0xde, 0x99, 0xd3, 0x35, 0xcf, 0xa1, 0xaf, 0x98, + 0xa2, 0xc5, 0xe4, 0xbd, 0x3b, 0xf3, 0x71, 0x83, 0xc8, 0x14, 0x7f, 0x08, 0x3d, 0x0c, 0x71, 0xfa, + 0x9b, 0x9e, 0x52, 0x46, 0x8b, 0x93, 0x6f, 0xde, 0x99, 0x1f, 0xeb, 0xea, 0xb1, 0x31, 0x74, 0x0d, + 0x52, 0x95, 0xce, 0xb6, 0x61, 0x79, 0xe7, 0xcf, 0x12, 0x3a, 0x32, 0xf9, 0x58, 0xf1, 0x99, 0x7b, + 0x77, 0xe6, 0xcf, 0x1c, 0x68, 0x20, 0x29, 0x89, 0xdd, 0x89, 0x09, 0x34, 0xfd, 0x72, 0x31, 0xc8, + 0x85, 0xae, 0x40, 0x42, 0x5c, 0xb2, 0xd3, 0xfe, 0xe2, 0x45, 0x6e, 0xc2, 0x7d, 0x71, 0xfb, 0x64, + 0xe8, 0x17, 0x20, 0x5d, 0xe9, 0x5c, 0x32, 0x6d, 0x8d, 0xfb, 0x20, 0xbe, 0x20, 0x2d, 0x45, 0x8a, + 0x17, 0xee, 0xdd, 0x99, 0x3f, 0x3b, 0x32, 0x31, 0x87, 0x53, 0xe6, 0x1e, 0x36, 0xf4, 0x02, 0x24, + 0xfd, 0x6b, 0xfa, 0x3e, 0x21, 0x52, 0xfc, 0x24, 0xb7, 0xfb, 0xfe, 0xe8, 0xbb, 0x74, 0x01, 0xcb, + 0x99, 0xbb, 0x27, 0x16, 0xa4, 0x25, 0xe9, 0x7e, 0x2c, 0xe7, 0x3e, 0xe9, 0x61, 0x0b, 0x58, 0x7e, + 0xfe, 0x2c, 0x7d, 0x81, 0x21, 0xdd, 0xaf, 0xe5, 0x9c, 0xbe, 0x4b, 0x87, 0x2e, 0xc3, 0x44, 0xa5, + 0x53, 0xec, 0x78, 0xd8, 0xa5, 0x5f, 0xf4, 0xa4, 0x8b, 0x4f, 0xdf, 0xbb, 0x33, 0xff, 0xf1, 0x11, + 0x59, 0x29, 0x4e, 0x11, 0x04, 0x68, 0x01, 0x52, 0x1b, 0xb6, 0xd3, 0xd4, 0x4c, 0xc6, 0x07, 0xec, + 0x85, 0x4c, 0x40, 0x84, 0xb6, 0xc9, 0x4c, 0xd8, 0x6a, 0xbb, 0xf4, 0x7f, 0x11, 0x7e, 0x8a, 0x98, + 0xec, 0x32, 0x21, 0x03, 0xe2, 0x95, 0x4e, 0x45, 0x6b, 0x65, 0xd3, 0xf4, 0x6d, 0xc1, 0x43, 0xcb, + 0x3e, 0x42, 0xec, 0xad, 0x65, 0x3a, 0x4e, 0x3f, 0xab, 0x28, 0x9e, 0xbd, 0x77, 0x67, 0xfe, 0xe9, + 0x91, 0xef, 0x58, 0xd1, 0x5a, 0xf4, 0x76, 0xec, 0x0e, 0xe8, 0xdb, 0x12, 0xd9, 0x58, 0xec, 0xc4, + 0x95, 0xdc, 0x71, 0x92, 0xde, 0xf1, 0xe1, 0xa1, 0x77, 0xf4, 0xb5, 0xd8, 0x7d, 0xad, 0xcf, 0xbf, + 0x75, 0x84, 0x99, 0xb2, 0xa7, 0x1a, 0x72, 0xeb, 0x5f, 0x7d, 0xeb, 0xbe, 0x37, 0xad, 0x6f, 0x01, + 0x7a, 0x59, 0x82, 0xc9, 0x4a, 0x67, 0x83, 0xd7, 0x57, 0x62, 0x79, 0x86, 0x7f, 0xb1, 0x3e, 0xcc, + 0xf2, 0x80, 0x1e, 0xb3, 0xfd, 0xfc, 0xe7, 0xdf, 0x9a, 0x3f, 0x3d, 0xb2, 0x11, 0x34, 0x05, 0x51, + 0x1b, 0x7a, 0xef, 0x89, 0xbe, 0x40, 0xad, 0x28, 0x91, 0x5a, 0x5d, 0xc7, 0x75, 0x62, 0xc5, 0xd4, + 0x21, 0x56, 0x04, 0xf4, 0x98, 0x15, 0x79, 0x12, 0xf5, 0xf7, 0x6f, 0x49, 0x80, 0x0f, 0x55, 0x61, + 0x9c, 0x79, 0x98, 0x7e, 0x4d, 0x96, 0x3c, 0x62, 0x18, 0x76, 0x17, 0x47, 0xe1, 0x34, 0x73, 0x17, + 0x00, 0xba, 0x31, 0x86, 0x64, 0x88, 0xde, 0xc0, 0x1d, 0xfe, 0xc9, 0x20, 0xf9, 0x89, 0x66, 0xbb, + 0x9f, 0xc4, 0x4a, 0x4b, 0x31, 0xfe, 0x9d, 0x6b, 0x3e, 0x72, 0x41, 0x9a, 0x7b, 0x0e, 0xe4, 0xfe, + 0x58, 0x39, 0x12, 0x5e, 0x01, 0x34, 0xb8, 0x62, 0x41, 0x86, 0x38, 0x63, 0x78, 0x2c, 0xc8, 0x90, + 0x3a, 0x2d, 0x77, 0x7d, 0x7e, 0xc5, 0x30, 0x5d, 0xdb, 0x1a, 0xe0, 0xec, 0xf7, 0xff, 0x4f, 0xc7, + 0xb9, 0x98, 0x83, 0x71, 0x26, 0x24, 0x73, 0x29, 0xd3, 0xf2, 0x41, 0xab, 0x9c, 0xc2, 0x2e, 0x8a, + 0xeb, 0x6f, 0xde, 0xcd, 0x8d, 0x7d, 0xff, 0x6e, 0x6e, 0xec, 0x9f, 0xef, 0xe6, 0xc6, 0xde, 0xbe, + 0x9b, 0x93, 0xde, 0xbd, 0x9b, 0x93, 0xde, 0xbf, 0x9b, 0x93, 0x7e, 0x72, 0x37, 0x27, 0xdd, 0xde, + 0xcf, 0x49, 0x5f, 0xdb, 0xcf, 0x49, 0xdf, 0xdc, 0xcf, 0x49, 0xdf, 0xd9, 0xcf, 0x49, 0xdf, 0xdd, + 0xcf, 0x49, 0x6f, 0xee, 0xe7, 0xc6, 0xbe, 0xbf, 0x9f, 0x93, 0xde, 0xde, 0xcf, 0x49, 0xef, 0xee, + 0xe7, 0xc6, 0xde, 0xdf, 0xcf, 0x49, 0x3f, 0xd9, 0xcf, 0x8d, 0xdd, 0xfe, 0x61, 0x6e, 0xec, 0xff, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xa3, 0xe7, 0xd4, 0x15, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -463,6 +485,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -589,6 +620,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -690,6 +730,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -760,6 +801,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -777,6 +822,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -807,7 +853,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -886,6 +932,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -915,23 +964,6 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -1023,8 +1055,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1032,11 +1068,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1063,14 +1099,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1078,43 +1114,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1171,8 +1207,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1185,6 +1222,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1276,6 +1317,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1300,8 +1342,8 @@ func valueToStringCasttype(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1313,7 +1355,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1341,7 +1383,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1361,7 +1403,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int32 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1380,7 +1422,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1400,7 +1442,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1416,10 +1458,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1431,10 +1473,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1445,14 +1487,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1464,14 +1506,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1485,7 +1527,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1499,7 +1541,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MyBytes = append(m.MyBytes[:0], data[iNdEx:postIndex]...) + m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) if m.MyBytes == nil { m.MyBytes = []byte{} } @@ -1516,7 +1558,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1530,31 +1572,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NormalBytes = append(m.NormalBytes[:0], data[iNdEx:postIndex]...) + m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) if m.NormalBytes == nil { m.NormalBytes = []byte{} } iNdEx = postIndex case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if wireType == 0 { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.MyUint64S = append(m.MyUint64S, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthCasttype + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MyUint64S = append(m.MyUint64S, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) } - m.MyUint64S = append(m.MyUint64S, v) case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) @@ -1567,7 +1651,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1589,7 +1673,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1604,7 +1688,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1619,42 +1703,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyMap == nil { + m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyMap[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.MyMap[mapkey] = mapvalue } - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1668,7 +1757,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1690,7 +1779,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1705,7 +1794,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1720,42 +1809,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(data[iNdEx:postStringIndexmapkey]) + mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyCustomMap == nil { + m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -1769,7 +1863,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1791,7 +1885,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1806,62 +1900,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if m.MyNullableMap == nil { + m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCasttype } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } else { + var mapvalue *Wilson + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -1875,7 +1974,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1897,7 +1996,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1912,29 +2011,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + if m.MyEmbeddedMap == nil { + m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + } else { + var mapvalue Wilson + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - var mapmsglen int + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -1942,36 +2085,27 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCasttype } - if postmsgIndex > l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) + m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCasttype(data[iNdEx:]) + skippy, err := skipCasttype(dAtA[iNdEx:]) if err != nil { return err } @@ -1981,7 +2115,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1991,8 +2125,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2004,7 +2138,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2032,7 +2166,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2042,7 +2176,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCasttype(data[iNdEx:]) + skippy, err := skipCasttype(dAtA[iNdEx:]) if err != nil { return err } @@ -2052,7 +2186,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2062,8 +2196,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCasttype(data []byte) (n int, err error) { - l := len(data) +func skipCasttype(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2074,7 +2208,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2092,7 +2226,7 @@ func skipCasttype(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2109,7 +2243,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2132,7 +2266,7 @@ func skipCasttype(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2143,7 +2277,7 @@ func skipCasttype(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCasttype(data[start:]) + next, err := skipCasttype(dAtA[start:]) if err != nil { return 0, err } @@ -2167,49 +2301,52 @@ var ( ErrIntOverflowCasttype = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 673 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xbb, 0x6f, 0xd3, 0x5e, - 0x14, 0xc7, 0xeb, 0xa6, 0x6e, 0xed, 0xeb, 0xe4, 0xf7, 0xab, 0xae, 0x18, 0xac, 0x48, 0xa4, 0xa1, - 0x55, 0x11, 0x03, 0x24, 0x55, 0x1a, 0x85, 0xa8, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x15, 0x32, - 0x54, 0x15, 0x88, 0xc5, 0x69, 0x4c, 0x6a, 0xe1, 0x47, 0xe4, 0x07, 0xc8, 0x5b, 0x05, 0x03, 0x12, - 0x7f, 0x01, 0x7f, 0x02, 0x23, 0x0b, 0x12, 0x23, 0x63, 0x46, 0x46, 0xa6, 0xbe, 0x58, 0x3a, 0x76, - 0xac, 0x98, 0x38, 0xf7, 0x5e, 0xbf, 0xd4, 0x16, 0x94, 0xba, 0xc3, 0xd1, 0x7d, 0x9d, 0xf3, 0x39, - 0xdf, 0x7b, 0x7c, 0xef, 0x35, 0xba, 0xb1, 0xed, 0xda, 0x3d, 0xd7, 0x6f, 0x86, 0x8e, 0xad, 0x7b, - 0xfe, 0x8e, 0x6e, 0x19, 0x5e, 0x73, 0x5b, 0xf7, 0x83, 0x20, 0x1a, 0x1a, 0x8d, 0xa1, 0xe7, 0x06, - 0x2e, 0x16, 0x92, 0x71, 0xf5, 0xce, 0xc0, 0x0c, 0x76, 0xc2, 0x5e, 0x03, 0x62, 0x9a, 0x03, 0x77, - 0xe0, 0x36, 0xa9, 0x43, 0x2f, 0x7c, 0x45, 0x47, 0x74, 0x40, 0x7b, 0x2c, 0x70, 0xfe, 0x53, 0x05, - 0x09, 0xab, 0x10, 0xab, 0xbf, 0xd5, 0x23, 0xbc, 0x88, 0x84, 0x75, 0x27, 0x58, 0x6e, 0x3d, 0x09, - 0x3c, 0x99, 0xab, 0x73, 0xb7, 0x4a, 0x8a, 0xf8, 0x7b, 0x6f, 0x8e, 0x37, 0xc9, 0x9c, 0x26, 0x98, - 0xf1, 0x12, 0x5e, 0x40, 0x3c, 0x75, 0x93, 0x27, 0xa9, 0x4f, 0x65, 0xb4, 0x37, 0x37, 0x91, 0xf9, - 0xb1, 0x06, 0x3f, 0x47, 0x92, 0x1a, 0x6d, 0x42, 0xbf, 0xd3, 0x26, 0xb8, 0x12, 0xb8, 0x4e, 0x29, - 0x77, 0xc1, 0x6d, 0xf9, 0xaf, 0x02, 0x03, 0xc3, 0x0f, 0xb2, 0x8d, 0x25, 0xd1, 0xcf, 0x60, 0xa0, - 0x49, 0x76, 0xc6, 0xc2, 0x5b, 0x48, 0x48, 0x16, 0xe5, 0x29, 0xca, 0xbd, 0x17, 0x4b, 0x28, 0xc4, - 0x16, 0x12, 0x36, 0x7e, 0x89, 0xca, 0x6a, 0xf4, 0xd0, 0x72, 0xf5, 0xb8, 0x06, 0x3c, 0xc0, 0x27, - 0x95, 0x2e, 0x80, 0xdb, 0x63, 0x83, 0xe3, 0x70, 0x4a, 0x2e, 0xdb, 0x39, 0x1a, 0x7e, 0x81, 0xc4, - 0x74, 0x59, 0x9e, 0xa6, 0xe8, 0xfb, 0xb1, 0xee, 0x62, 0x78, 0x31, 0xc5, 0xe7, 0x94, 0xb3, 0x72, - 0xcf, 0x00, 0x9e, 0x2b, 0xa2, 0x3c, 0xae, 0x49, 0xa2, 0x9c, 0x15, 0x3c, 0x53, 0x0e, 0x15, 0x17, - 0x28, 0xba, 0xa0, 0xf2, 0x18, 0x2f, 0xa6, 0x78, 0xfc, 0x08, 0xcd, 0xa8, 0x91, 0x12, 0x81, 0xb7, - 0x2c, 0x02, 0xb9, 0xac, 0x2c, 0x01, 0xf5, 0xf6, 0x98, 0x54, 0x1a, 0xa7, 0xcd, 0xd8, 0x0c, 0x80, - 0xeb, 0x48, 0xda, 0x70, 0x3d, 0x5b, 0xb7, 0x18, 0x0f, 0x11, 0x9e, 0x26, 0x39, 0xd9, 0x14, 0xde, - 0x24, 0x3b, 0x61, 0x5f, 0xdb, 0x97, 0xa5, 0x7a, 0xe9, 0x2a, 0x67, 0x52, 0x4c, 0xce, 0x8d, 0x8f, - 0x4d, 0xc4, 0xab, 0x91, 0xaa, 0x0f, 0xe5, 0x32, 0x20, 0xa5, 0xd6, 0xf5, 0x46, 0x1a, 0x91, 0xdc, - 0xad, 0x06, 0x5d, 0x5f, 0x73, 0x02, 0x2f, 0x52, 0xda, 0x90, 0x71, 0x69, 0xec, 0x8c, 0x10, 0x46, - 0xd3, 0xf1, 0x36, 0xe9, 0xe2, 0xaf, 0x1c, 0xb9, 0x58, 0xab, 0xa1, 0x1f, 0xb8, 0x36, 0xc9, 0x58, - 0xa1, 0x19, 0x17, 0x2e, 0xcc, 0x98, 0x7a, 0xb1, 0xbc, 0xce, 0xbb, 0xfd, 0x4b, 0xec, 0xf4, 0x69, - 0xe0, 0x99, 0xce, 0x80, 0xa4, 0xfe, 0xb8, 0x5f, 0xf8, 0xd2, 0xa6, 0x0a, 0xf0, 0x7b, 0x0e, 0x55, - 0xd4, 0x68, 0x23, 0xb4, 0x2c, 0xbd, 0x67, 0x19, 0x44, 0xf9, 0x7f, 0x54, 0xf9, 0xe2, 0x85, 0xca, - 0x73, 0x7e, 0x4c, 0x7b, 0x07, 0xb4, 0xb7, 0xc6, 0x16, 0x41, 0x9f, 0x27, 0xaa, 0xa1, 0x62, 0xe7, - 0x59, 0xf8, 0x03, 0x55, 0xb1, 0x66, 0xf7, 0x8c, 0x7e, 0xdf, 0xe8, 0x13, 0x15, 0xff, 0xff, 0x43, - 0x45, 0xce, 0x8f, 0xa9, 0x58, 0x21, 0xa7, 0xbe, 0xb8, 0x92, 0x1c, 0xaf, 0xda, 0x45, 0x28, 0x3b, - 0x12, 0x78, 0x16, 0x95, 0x5e, 0x1b, 0x11, 0x7d, 0x74, 0x45, 0x8d, 0x74, 0xf1, 0x35, 0xc4, 0xbf, - 0xd1, 0xad, 0xd0, 0xa0, 0x8f, 0xec, 0x94, 0xc6, 0x06, 0x2b, 0x93, 0x5d, 0xae, 0xfa, 0x00, 0xcd, - 0x9e, 0xfd, 0xb4, 0x97, 0x8a, 0xd7, 0x10, 0x3e, 0x5f, 0xe0, 0x3c, 0x81, 0x67, 0x84, 0x9b, 0x79, - 0x82, 0xd4, 0x9a, 0xcd, 0x4a, 0xb4, 0x65, 0x5a, 0xbe, 0xeb, 0x9c, 0x63, 0x9e, 0x2d, 0xd7, 0xd5, - 0x98, 0xf3, 0x35, 0x34, 0xcd, 0x26, 0xc9, 0x5e, 0xd6, 0xe9, 0x6b, 0x4f, 0x7f, 0x4a, 0xf4, 0x0f, - 0xd3, 0x69, 0x2b, 0x8f, 0x47, 0x87, 0xb5, 0x89, 0x1f, 0x60, 0x3f, 0xc1, 0x0e, 0x0e, 0x6b, 0xdc, - 0x31, 0xd8, 0x09, 0xd8, 0x29, 0xd8, 0xee, 0x51, 0x8d, 0xfb, 0x0c, 0xf6, 0x05, 0xec, 0x1b, 0xd8, - 0x77, 0xb0, 0xd1, 0x11, 0xf8, 0x43, 0x7b, 0x00, 0x76, 0x0c, 0xfd, 0x13, 0x68, 0x4f, 0xa1, 0xdd, - 0xfd, 0x55, 0x9b, 0xf8, 0x13, 0x00, 0x00, 0xff, 0xff, 0x72, 0x82, 0xd6, 0x2b, 0x65, 0x07, 0x00, - 0x00, + // 698 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0x89, 0xb3, 0x69, 0x55, + 0xe4, 0x01, 0x92, 0x2a, 0x8d, 0x4a, 0x55, 0x10, 0x83, 0xab, 0x22, 0x15, 0xe1, 0x82, 0x0c, 0x55, + 0x05, 0x62, 0xb9, 0xb4, 0x26, 0x8d, 0x70, 0xec, 0xc8, 0xbe, 0x80, 0xbc, 0x55, 0x65, 0x40, 0xe2, + 0x2f, 0x61, 0x64, 0x41, 0x62, 0x64, 0xec, 0xd8, 0x91, 0x29, 0xad, 0xcd, 0x52, 0xb6, 0x8e, 0x55, + 0x26, 0x74, 0x77, 0x4e, 0xec, 0xfe, 0x00, 0xa5, 0xe9, 0x76, 0xef, 0xee, 0xbd, 0xcf, 0xfb, 0xde, + 0xbb, 0x77, 0x77, 0xf0, 0xce, 0x96, 0xdb, 0xaa, 0xbb, 0x7e, 0xa5, 0xe3, 0xb4, 0x88, 0xe7, 0xef, + 0x10, 0xdb, 0xf2, 0x2a, 0x5b, 0xc4, 0xa7, 0x34, 0x68, 0x5b, 0xe5, 0xb6, 0xe7, 0x52, 0x17, 0xe5, + 0xfa, 0xf6, 0xf4, 0xfd, 0x46, 0x93, 0xee, 0x74, 0xea, 0xe5, 0x2d, 0xb7, 0x55, 0x69, 0xb8, 0x0d, + 0xb7, 0xc2, 0x1d, 0xea, 0x9d, 0x77, 0xdc, 0xe2, 0x06, 0x1f, 0x89, 0xc0, 0x99, 0x3f, 0x45, 0x98, + 0x5b, 0x21, 0x3e, 0x25, 0x1f, 0x49, 0x80, 0xe6, 0x60, 0x6e, 0xcd, 0xa1, 0x0b, 0xd5, 0x17, 0xd4, + 0x93, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0x75, 0x95, 0x6c, 0x93, 0xcd, 0x99, 0x83, 0x25, 0x34, + 0x0b, 0xb3, 0x7c, 0x2c, 0x8f, 0x71, 0x9f, 0xe2, 0x7e, 0x57, 0x91, 0x12, 0x3f, 0xb1, 0x86, 0x5e, + 0xc3, 0x82, 0x11, 0x6c, 0x34, 0x1d, 0xba, 0x58, 0x63, 0xb8, 0x8c, 0x0a, 0xb4, 0x71, 0xfd, 0x41, + 0xaf, 0xab, 0x2c, 0xfc, 0x53, 0x20, 0xb5, 0x7c, 0x9a, 0x6c, 0xac, 0x1f, 0xfd, 0x2a, 0x68, 0x5b, + 0x66, 0x9a, 0x85, 0x36, 0x61, 0xae, 0x6f, 0xca, 0xe3, 0x9c, 0xfb, 0x30, 0x96, 0x30, 0x12, 0x7b, + 0x00, 0x43, 0x6f, 0xe1, 0x94, 0x11, 0x3c, 0xb1, 0x5d, 0x12, 0xd7, 0x20, 0xab, 0x02, 0x6d, 0x4c, + 0x5f, 0xea, 0x75, 0x95, 0xda, 0xd0, 0xe0, 0x38, 0x9c, 0x93, 0xcf, 0xd0, 0xd0, 0x1b, 0x98, 0x1f, + 0xd8, 0xf2, 0x04, 0x47, 0x3f, 0x8a, 0x75, 0x8f, 0x86, 0x4f, 0x70, 0x29, 0xe5, 0xa2, 0xdc, 0x93, + 0x2a, 0xd0, 0xc0, 0x28, 0xca, 0xe3, 0x9a, 0x9c, 0xa1, 0xa5, 0x94, 0x2f, 0xd6, 0xe4, 0x1c, 0x47, + 0x8f, 0xa8, 0x3c, 0xc6, 0x27, 0x38, 0xf4, 0x14, 0x4e, 0x1a, 0x81, 0x1e, 0x50, 0xcb, 0x97, 0xf3, + 0x2a, 0xd0, 0xa6, 0xf4, 0xf9, 0x5e, 0x57, 0xb9, 0x37, 0x24, 0x95, 0xc7, 0x99, 0x7d, 0x00, 0x52, + 0x61, 0x61, 0xdd, 0xf5, 0x5a, 0xc4, 0x16, 0x3c, 0xc8, 0x78, 0x66, 0x7a, 0x0a, 0x6d, 0xb0, 0x9d, + 0x88, 0xd3, 0xf6, 0xe5, 0x82, 0x9a, 0xb9, 0x4e, 0x4f, 0x26, 0x24, 0xd4, 0x84, 0x59, 0x23, 0x30, + 0x48, 0x5b, 0x9e, 0x52, 0x33, 0x5a, 0xa1, 0x7a, 0xbb, 0x3c, 0x88, 0xe8, 0xdf, 0xad, 0x32, 0x5f, + 0x5f, 0x75, 0xa8, 0x17, 0xe8, 0xb5, 0x5e, 0x57, 0x99, 0x1f, 0x3a, 0xa3, 0x41, 0xda, 0x3c, 0x9d, + 0xc8, 0x80, 0xbe, 0x03, 0x76, 0xb1, 0x56, 0x3a, 0x3e, 0x75, 0x5b, 0x2c, 0x63, 0x91, 0x67, 0x9c, + 0xbd, 0x34, 0xe3, 0xc0, 0x4b, 0xe4, 0x75, 0xf6, 0x0e, 0xaf, 0xb0, 0xd3, 0x97, 0xd4, 0x6b, 0x3a, + 0x0d, 0x96, 0xfa, 0xcb, 0xe1, 0xc8, 0x97, 0x76, 0xa0, 0x00, 0x7d, 0x02, 0xb0, 0x68, 0x04, 0xeb, + 0x1d, 0xdb, 0x26, 0x75, 0xdb, 0x62, 0xca, 0x6f, 0x70, 0xe5, 0x73, 0x97, 0x2a, 0x4f, 0xf9, 0x09, + 0xed, 0x8b, 0x7b, 0x87, 0x4a, 0x75, 0x68, 0x11, 0xfc, 0x09, 0xe2, 0x1a, 0xce, 0xe6, 0x44, 0x9f, + 0xb9, 0x8a, 0xd5, 0x56, 0xdd, 0xda, 0xde, 0xb6, 0xb6, 0x99, 0x8a, 0x9b, 0xff, 0x51, 0x91, 0xf2, + 0x13, 0x2a, 0x96, 0x59, 0xd7, 0x8f, 0xae, 0x24, 0xc5, 0x43, 0xcf, 0xe1, 0x84, 0xa8, 0xb0, 0x5c, + 0x52, 0x81, 0x96, 0xbf, 0x62, 0x1b, 0x26, 0x87, 0x63, 0xc6, 0x98, 0xe9, 0x25, 0x08, 0x93, 0x1e, + 0x43, 0x25, 0x98, 0x79, 0x6f, 0x05, 0xfc, 0x15, 0xcf, 0x9b, 0x6c, 0x88, 0x6e, 0xc1, 0xec, 0x07, + 0x62, 0x77, 0x2c, 0xfe, 0x6a, 0x8f, 0x9b, 0xc2, 0x58, 0x1e, 0x5b, 0x02, 0xd3, 0x8f, 0x61, 0xe9, + 0x7c, 0xaf, 0x5c, 0x29, 0xde, 0x84, 0xe8, 0xe2, 0x89, 0xa5, 0x09, 0x59, 0x41, 0xb8, 0x9b, 0x26, + 0x14, 0xaa, 0xa5, 0xa4, 0xe6, 0x9b, 0x4d, 0xdb, 0x77, 0x9d, 0x0b, 0xcc, 0xf3, 0xf5, 0xbf, 0x1e, + 0x73, 0x06, 0xc3, 0x09, 0x31, 0xc9, 0xf6, 0xb2, 0xc6, 0xbf, 0x0f, 0xfe, 0xcb, 0x99, 0xc2, 0xd0, + 0x9f, 0xed, 0x87, 0x58, 0x3a, 0x08, 0xb1, 0xf4, 0x2b, 0xc4, 0xd2, 0x51, 0x88, 0xc1, 0x71, 0x88, + 0xc1, 0x49, 0x88, 0xc1, 0x69, 0x88, 0xc1, 0x6e, 0x84, 0xc1, 0xd7, 0x08, 0x83, 0x6f, 0x11, 0x06, + 0x3f, 0x22, 0x0c, 0x7e, 0x46, 0x18, 0xec, 0x47, 0x58, 0x3a, 0x88, 0x30, 0x38, 0x8a, 0x30, 0x38, + 0x8e, 0xb0, 0x74, 0x12, 0x61, 0x70, 0x1a, 0x61, 0x69, 0xf7, 0x37, 0x96, 0xfe, 0x06, 0x00, 0x00, + 0xff, 0xff, 0xa8, 0xc0, 0xa5, 0xf1, 0xb6, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto index e42bf2b7..f43d2c25 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go index 4b331acd..5e3b07cb 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +73,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +87,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -108,18 +108,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +147,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +161,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +224,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +241,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +258,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +275,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -294,12 +294,12 @@ func TestCasttypeDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -309,12 +309,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +368,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +404,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go index 3eba6c0d..d7fd7a45 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go @@ -28,13 +28,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -44,24 +40,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -70,7 +69,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -91,244 +90,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3788 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x0e, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x7c, 0x93, 0x73, 0xf1, - 0x7a, 0x77, 0x25, 0xd7, 0x71, 0x6c, 0x87, 0xde, 0x66, 0x21, 0x4a, 0xb4, 0x96, 0x86, 0x6e, 0x1d, - 0x89, 0x6b, 0x3b, 0x2d, 0x30, 0x18, 0x91, 0x23, 0x8a, 0xf6, 0x70, 0x86, 0xe5, 0x0c, 0x6d, 0x6b, - 0x9f, 0xd2, 0xba, 0xed, 0x22, 0x2d, 0x7a, 0x2f, 0xd0, 0xdc, 0xdb, 0x04, 0x68, 0x93, 0xa6, 0xb7, - 0xa4, 0x6d, 0x8a, 0xa2, 0x4f, 0x01, 0x8a, 0xb4, 0x79, 0x2a, 0xda, 0x3e, 0xf5, 0xa1, 0xc8, 0xad, - 0x06, 0x9a, 0xb6, 0x69, 0x9b, 0x02, 0x06, 0x1a, 0x34, 0x2f, 0x3d, 0xe7, 0xbf, 0x0c, 0x87, 0x17, - 0x69, 0x28, 0x05, 0x69, 0x56, 0x00, 0x21, 0xce, 0xf9, 0xcf, 0xf7, 0xcd, 0x99, 0xf3, 0x9f, 0xff, - 0x9c, 0xf3, 0xff, 0x43, 0xf8, 0xab, 0x1f, 0x81, 0x63, 0x55, 0xdb, 0xae, 0x9a, 0xc6, 0x4c, 0xa3, - 0x69, 0xbb, 0xf6, 0x46, 0x6b, 0x73, 0xa6, 0x62, 0x38, 0xe5, 0x66, 0xad, 0xe1, 0xda, 0xcd, 0x69, - 0x26, 0x53, 0x46, 0xb9, 0xc6, 0xb4, 0xd4, 0x98, 0x5a, 0x82, 0xb1, 0x4b, 0x35, 0xd3, 0x98, 0xf7, - 0x14, 0xd7, 0x0c, 0x57, 0xb9, 0x00, 0xd1, 0x4d, 0x14, 0x66, 0x43, 0xc7, 0x22, 0x27, 0x93, 0x67, - 0x1e, 0x9c, 0xee, 0x02, 0x4d, 0x77, 0x22, 0x56, 0x49, 0xac, 0x32, 0xc4, 0xd4, 0xdd, 0x28, 0x8c, - 0xf7, 0x19, 0x55, 0x14, 0x88, 0x5a, 0x7a, 0x9d, 0x18, 0x43, 0x27, 0x13, 0x2a, 0xfb, 0xae, 0x64, - 0x61, 0xb8, 0xa1, 0x97, 0x6f, 0xe8, 0x55, 0x23, 0x1b, 0x66, 0x62, 0x79, 0xa9, 0x1c, 0x01, 0xa8, - 0x18, 0x0d, 0xc3, 0xaa, 0x18, 0x56, 0x79, 0x3b, 0x1b, 0x41, 0x2b, 0x12, 0xaa, 0x4f, 0xa2, 0x7c, - 0x03, 0xc6, 0x1a, 0xad, 0x0d, 0xb3, 0x56, 0xd6, 0x7c, 0x6a, 0x80, 0x6a, 0x31, 0x35, 0xc3, 0x07, - 0xe6, 0xdb, 0xca, 0x8f, 0xc0, 0xe8, 0x2d, 0x43, 0xbf, 0xe1, 0x57, 0x4d, 0x32, 0xd5, 0x34, 0x89, - 0x7d, 0x8a, 0x73, 0x90, 0xaa, 0x1b, 0x8e, 0x83, 0x06, 0x68, 0xee, 0x76, 0xc3, 0xc8, 0x46, 0xd9, - 0xd3, 0x1f, 0xeb, 0x79, 0xfa, 0xee, 0x27, 0x4f, 0x0a, 0xd4, 0x3a, 0x82, 0x94, 0x59, 0x48, 0x18, - 0x56, 0xab, 0xce, 0x19, 0x62, 0x3b, 0xf8, 0xaf, 0x80, 0x1a, 0xdd, 0x2c, 0x71, 0x82, 0x09, 0x8a, - 0x61, 0xc7, 0x68, 0xde, 0xac, 0x95, 0x8d, 0xec, 0x10, 0x23, 0x78, 0xa4, 0x87, 0x60, 0x8d, 0x8f, - 0x77, 0x73, 0x48, 0x1c, 0x3e, 0x4a, 0xc2, 0xb8, 0xed, 0x1a, 0x96, 0x53, 0xb3, 0xad, 0xec, 0x30, - 0x23, 0x79, 0xa8, 0xcf, 0x2c, 0x1a, 0x66, 0xa5, 0x9b, 0xa2, 0x8d, 0x53, 0xce, 0xc1, 0xb0, 0xdd, - 0x70, 0xf1, 0x9b, 0x93, 0x8d, 0xe3, 0xfc, 0x24, 0xcf, 0x3c, 0xd0, 0x37, 0x10, 0x56, 0xb8, 0x8e, - 0x2a, 0x95, 0x95, 0x22, 0x64, 0x1c, 0xbb, 0xd5, 0x2c, 0x1b, 0x5a, 0xd9, 0xae, 0x18, 0x5a, 0xcd, - 0xda, 0xb4, 0xb3, 0x09, 0x46, 0x70, 0xb4, 0xf7, 0x41, 0x98, 0xe2, 0x1c, 0xea, 0x15, 0x51, 0x4d, - 0x4d, 0x3b, 0x1d, 0xd7, 0xca, 0x01, 0x18, 0x72, 0xb6, 0x2d, 0x57, 0xbf, 0x9d, 0x4d, 0xb1, 0x08, - 0x11, 0x57, 0x53, 0xff, 0x13, 0x83, 0xd1, 0x41, 0x42, 0xec, 0x22, 0xc4, 0x36, 0xe9, 0x29, 0x31, - 0xc0, 0xf6, 0xe0, 0x03, 0x8e, 0xe9, 0x74, 0xe2, 0xd0, 0x3e, 0x9d, 0x38, 0x0b, 0x49, 0xcb, 0x70, - 0x5c, 0xa3, 0xc2, 0x23, 0x22, 0x32, 0x60, 0x4c, 0x01, 0x07, 0xf5, 0x86, 0x54, 0x74, 0x5f, 0x21, - 0x75, 0x15, 0x46, 0x3d, 0x93, 0xb4, 0xa6, 0x6e, 0x55, 0x65, 0x6c, 0xce, 0x04, 0x59, 0x32, 0x5d, - 0x90, 0x38, 0x95, 0x60, 0x6a, 0xda, 0xe8, 0xb8, 0x56, 0xe6, 0x01, 0x6c, 0xcb, 0xb0, 0x37, 0x71, - 0x79, 0x95, 0x4d, 0x8c, 0x93, 0xfe, 0x5e, 0x5a, 0x21, 0x95, 0x1e, 0x2f, 0xd9, 0x5c, 0x5a, 0x36, - 0x95, 0xc7, 0xdb, 0xa1, 0x36, 0xbc, 0x43, 0xa4, 0x2c, 0xf1, 0x45, 0xd6, 0x13, 0x6d, 0x25, 0x48, - 0x37, 0x0d, 0x8a, 0x7b, 0x74, 0x31, 0x7f, 0xb2, 0x04, 0x33, 0x62, 0x3a, 0xf0, 0xc9, 0x54, 0x01, - 0xe3, 0x0f, 0x36, 0xd2, 0xf4, 0x5f, 0x2a, 0x27, 0xc0, 0x13, 0x68, 0x2c, 0xac, 0x80, 0x65, 0xa1, - 0x94, 0x14, 0x2e, 0xa3, 0x6c, 0xf2, 0x02, 0xa4, 0x3b, 0xdd, 0xa3, 0x4c, 0x40, 0xcc, 0x71, 0xf5, - 0xa6, 0xcb, 0xa2, 0x30, 0xa6, 0xf2, 0x0b, 0x25, 0x03, 0x11, 0x4c, 0x32, 0x2c, 0xcb, 0xc5, 0x54, - 0xfa, 0x3a, 0x79, 0x1e, 0x46, 0x3a, 0x6e, 0x3f, 0x28, 0x70, 0xea, 0x99, 0x21, 0x98, 0xe8, 0x17, - 0x73, 0x7d, 0xc3, 0x1f, 0x97, 0x0f, 0x46, 0xc0, 0x86, 0xd1, 0xc4, 0xb8, 0x23, 0x06, 0x71, 0x85, - 0x11, 0x15, 0x33, 0xf5, 0x0d, 0xc3, 0xc4, 0x68, 0x0a, 0x9d, 0x4c, 0x9f, 0xf9, 0xc6, 0x40, 0x51, - 0x3d, 0xbd, 0x48, 0x10, 0x95, 0x23, 0x95, 0x27, 0x20, 0x2a, 0x52, 0x1c, 0x31, 0x9c, 0x1a, 0x8c, - 0x81, 0x62, 0x51, 0x65, 0x38, 0xe5, 0x6b, 0x90, 0xa0, 0xff, 0xdc, 0xb7, 0x43, 0xcc, 0xe6, 0x38, - 0x09, 0xc8, 0xaf, 0xca, 0x24, 0xc4, 0x59, 0x98, 0x55, 0x0c, 0x59, 0x1a, 0xbc, 0x6b, 0x9a, 0x98, - 0x8a, 0xb1, 0xa9, 0xb7, 0x4c, 0x57, 0xbb, 0xa9, 0x9b, 0x2d, 0x83, 0x05, 0x0c, 0x4e, 0x8c, 0x10, - 0x7e, 0x8f, 0x64, 0xca, 0x51, 0x48, 0xf2, 0xa8, 0xac, 0x21, 0xe6, 0x36, 0xcb, 0x3e, 0x31, 0x95, - 0x07, 0x6a, 0x91, 0x24, 0x74, 0xfb, 0xeb, 0x0e, 0xae, 0x05, 0x31, 0xb5, 0xec, 0x16, 0x24, 0x60, - 0xb7, 0x3f, 0xdf, 0x9d, 0xf8, 0x0e, 0xf7, 0x7f, 0xbc, 0xee, 0x58, 0x9c, 0xfa, 0xf3, 0x30, 0x44, - 0xd9, 0x7a, 0x1b, 0x85, 0xe4, 0xfa, 0xb5, 0xd5, 0x82, 0x36, 0xbf, 0x52, 0xca, 0x2f, 0x16, 0x32, - 0x21, 0x25, 0x0d, 0xc0, 0x04, 0x97, 0x16, 0x57, 0x66, 0xd7, 0x33, 0x61, 0xef, 0xba, 0xb8, 0xbc, - 0x7e, 0xee, 0x6c, 0x26, 0xe2, 0x01, 0x4a, 0x5c, 0x10, 0xf5, 0x2b, 0x3c, 0x7a, 0x26, 0x13, 0xc3, - 0x48, 0x48, 0x71, 0x82, 0xe2, 0xd5, 0xc2, 0x3c, 0x6a, 0x0c, 0x75, 0x4a, 0x50, 0x67, 0x58, 0x19, - 0x81, 0x04, 0x93, 0xe4, 0x57, 0x56, 0x16, 0x33, 0x71, 0x8f, 0x73, 0x6d, 0x5d, 0x2d, 0x2e, 0x2f, - 0x64, 0x12, 0x1e, 0xe7, 0x82, 0xba, 0x52, 0x5a, 0xcd, 0x80, 0xc7, 0xb0, 0x54, 0x58, 0x5b, 0x9b, - 0x5d, 0x28, 0x64, 0x92, 0x9e, 0x46, 0xfe, 0xda, 0x7a, 0x61, 0x2d, 0x93, 0xea, 0x30, 0x0b, 0x6f, - 0x31, 0xe2, 0xdd, 0xa2, 0xb0, 0x5c, 0x5a, 0xca, 0xa4, 0x95, 0x31, 0x18, 0xe1, 0xb7, 0x90, 0x46, - 0x8c, 0x76, 0x89, 0xd0, 0xd2, 0x4c, 0xdb, 0x10, 0xce, 0x32, 0xd6, 0x21, 0x40, 0x0d, 0x65, 0x6a, - 0x0e, 0x62, 0x2c, 0xba, 0x30, 0x8a, 0xd3, 0x8b, 0xb3, 0xf9, 0xc2, 0xa2, 0xb6, 0xb2, 0xba, 0x5e, - 0x5c, 0x59, 0x9e, 0x5d, 0x44, 0xdf, 0x79, 0x32, 0xb5, 0xf0, 0x63, 0xa5, 0xa2, 0x5a, 0x98, 0x47, - 0xff, 0xf9, 0x64, 0xab, 0x85, 0xd9, 0x75, 0x94, 0x45, 0xa6, 0x4e, 0xc1, 0x44, 0xbf, 0x3c, 0xd3, - 0x6f, 0x65, 0x4c, 0xbd, 0x12, 0x82, 0xf1, 0x3e, 0x29, 0xb3, 0xef, 0x2a, 0xfa, 0x0e, 0xc4, 0x78, - 0xa4, 0xf1, 0x22, 0xf2, 0xf5, 0xbe, 0xb9, 0x97, 0xc5, 0x5d, 0x4f, 0x21, 0x61, 0x38, 0x7f, 0x21, - 0x8d, 0xec, 0x50, 0x48, 0x89, 0xa2, 0x27, 0x9c, 0xee, 0x84, 0x20, 0xbb, 0x13, 0x77, 0xc0, 0x7a, - 0x0f, 0x77, 0xac, 0xf7, 0x8b, 0xdd, 0x06, 0x1c, 0xdf, 0xf9, 0x19, 0x7a, 0xac, 0x78, 0x35, 0x04, - 0x07, 0xfa, 0xf7, 0x1b, 0x7d, 0x6d, 0x78, 0x02, 0x86, 0xea, 0x86, 0xbb, 0x65, 0xcb, 0x9a, 0xfb, - 0x70, 0x9f, 0x4c, 0x4e, 0xc3, 0xdd, 0xbe, 0x12, 0x28, 0x7f, 0x29, 0x88, 0xec, 0xd4, 0x34, 0x70, - 0x6b, 0x7a, 0x2c, 0x7d, 0x3a, 0x0c, 0xf7, 0xf7, 0x25, 0xef, 0x6b, 0xe8, 0x61, 0x80, 0x9a, 0xd5, - 0x68, 0xb9, 0xbc, 0xae, 0xf2, 0x34, 0x93, 0x60, 0x12, 0xb6, 0x84, 0x29, 0x85, 0xb4, 0x5c, 0x6f, - 0x3c, 0xc2, 0xc6, 0x81, 0x8b, 0x98, 0xc2, 0x85, 0xb6, 0xa1, 0x51, 0x66, 0xe8, 0x91, 0x1d, 0x9e, - 0xb4, 0xa7, 0x64, 0x9d, 0x86, 0x4c, 0xd9, 0xac, 0x19, 0x96, 0xab, 0x39, 0x6e, 0xd3, 0xd0, 0xeb, - 0x35, 0xab, 0xca, 0xf2, 0x68, 0x3c, 0x17, 0xdb, 0xd4, 0x4d, 0xc7, 0x50, 0x47, 0xf9, 0xf0, 0x9a, - 0x1c, 0x25, 0x04, 0x2b, 0x16, 0x4d, 0x1f, 0x62, 0xa8, 0x03, 0xc1, 0x87, 0x3d, 0xc4, 0xd4, 0x3f, - 0x0c, 0x43, 0xd2, 0xd7, 0x9d, 0x29, 0xc7, 0x21, 0x75, 0x5d, 0xbf, 0xa9, 0x6b, 0xb2, 0xe3, 0xe6, - 0x9e, 0x48, 0x92, 0x6c, 0x55, 0x74, 0xdd, 0xa7, 0x61, 0x82, 0xa9, 0xe0, 0x33, 0xe2, 0x8d, 0xca, - 0xa6, 0xee, 0x38, 0xcc, 0x69, 0x71, 0xa6, 0xaa, 0xd0, 0xd8, 0x0a, 0x0d, 0xcd, 0xc9, 0x11, 0xe5, - 0x31, 0x18, 0x67, 0x88, 0x3a, 0x26, 0xde, 0x5a, 0xc3, 0x34, 0x34, 0xda, 0x03, 0x38, 0x2c, 0x9f, - 0x7a, 0x96, 0x8d, 0x91, 0xc6, 0x92, 0x50, 0x20, 0x8b, 0x1c, 0x65, 0x01, 0x0e, 0x33, 0x58, 0xd5, - 0xb0, 0x8c, 0xa6, 0xee, 0x1a, 0x9a, 0xf1, 0x93, 0x2d, 0xd4, 0xd5, 0x74, 0xab, 0xa2, 0x6d, 0xe9, - 0xce, 0x56, 0x76, 0xc2, 0x4f, 0x70, 0x88, 0x74, 0x17, 0x84, 0x6a, 0x81, 0x69, 0xce, 0x5a, 0x95, - 0xef, 0xa2, 0x9e, 0x92, 0x83, 0x03, 0x8c, 0x08, 0x9d, 0x82, 0xcf, 0xac, 0x95, 0xb7, 0x8c, 0xf2, - 0x0d, 0xad, 0xe5, 0x6e, 0x5e, 0xc8, 0x7e, 0xcd, 0xcf, 0xc0, 0x8c, 0x5c, 0x63, 0x3a, 0x73, 0xa4, - 0x52, 0x42, 0x0d, 0x65, 0x0d, 0x52, 0x34, 0x1f, 0xf5, 0xda, 0xf7, 0xd1, 0x6c, 0xbb, 0xc9, 0x6a, - 0x44, 0xba, 0xcf, 0xe2, 0xf6, 0x39, 0x71, 0x7a, 0x45, 0x00, 0x96, 0xb0, 0x3f, 0xcd, 0xc5, 0xd6, - 0x56, 0x0b, 0x85, 0x79, 0x35, 0x29, 0x59, 0x2e, 0xd9, 0x4d, 0x8a, 0xa9, 0xaa, 0xed, 0xf9, 0x38, - 0xc9, 0x63, 0xaa, 0x6a, 0x4b, 0x0f, 0xa3, 0xbf, 0xca, 0x65, 0xfe, 0xd8, 0xb8, 0x77, 0x11, 0xcd, - 0xba, 0x93, 0xcd, 0x74, 0xf8, 0xab, 0x5c, 0x5e, 0xe0, 0x0a, 0x22, 0xcc, 0x1d, 0x5c, 0x12, 0xf7, - 0xb7, 0xfd, 0xe5, 0x07, 0x8e, 0xf5, 0x3c, 0x65, 0x37, 0x14, 0xef, 0xd8, 0xd8, 0xee, 0x05, 0x2a, - 0x1d, 0x77, 0x6c, 0x6c, 0x77, 0xc3, 0x1e, 0x62, 0x1b, 0xb0, 0xa6, 0x51, 0x46, 0x97, 0x57, 0xb2, - 0x07, 0xfd, 0xda, 0xbe, 0x01, 0x65, 0x06, 0x03, 0xb9, 0xac, 0x19, 0x96, 0xbe, 0x81, 0x73, 0xaf, - 0x37, 0xf1, 0x8b, 0x93, 0x3d, 0xea, 0x57, 0x4e, 0x97, 0xcb, 0x05, 0x36, 0x3a, 0xcb, 0x06, 0x95, - 0x53, 0x30, 0x66, 0x6f, 0x5c, 0x2f, 0xf3, 0xe0, 0xd2, 0x90, 0x67, 0xb3, 0x76, 0x3b, 0xfb, 0x20, - 0x73, 0xd3, 0x28, 0x0d, 0xb0, 0xd0, 0x5a, 0x65, 0x62, 0xe5, 0xeb, 0x48, 0xee, 0x6c, 0xe9, 0xcd, - 0x06, 0x2b, 0xd2, 0x0e, 0x3a, 0xd5, 0xc8, 0x3e, 0xc4, 0x55, 0xb9, 0x7c, 0x59, 0x8a, 0x95, 0x02, - 0x1c, 0xa5, 0x87, 0xb7, 0x74, 0xcb, 0xd6, 0x5a, 0x8e, 0xa1, 0xb5, 0x4d, 0xf4, 0xe6, 0xe2, 0x61, - 0x32, 0x4b, 0x7d, 0x40, 0xaa, 0x95, 0x1c, 0x4c, 0x66, 0x52, 0x49, 0x4e, 0xcf, 0x55, 0x98, 0x68, - 0x59, 0x35, 0x0b, 0x43, 0x1c, 0x47, 0x08, 0xcc, 0x17, 0x6c, 0xf6, 0x5f, 0x86, 0x77, 0x68, 0xba, - 0x4b, 0x7e, 0x6d, 0x1e, 0x24, 0xea, 0x78, 0xab, 0x57, 0x38, 0x95, 0x83, 0x94, 0x3f, 0x76, 0x94, - 0x04, 0xf0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0x6e, 0x65, 0x9e, 0x6a, 0xe1, 0x93, 0x05, 0x2c, - 0x6c, 0x58, 0x93, 0x17, 0x8b, 0xeb, 0x05, 0x4d, 0x2d, 0x2d, 0xaf, 0x17, 0x97, 0x0a, 0x99, 0xc8, - 0xa9, 0x44, 0xfc, 0xe3, 0xe1, 0xcc, 0x53, 0xf8, 0x17, 0x9e, 0x7a, 0x27, 0x0c, 0xe9, 0xce, 0x3e, - 0x58, 0xf9, 0x36, 0x1c, 0x94, 0x9b, 0x56, 0xc7, 0x70, 0xb5, 0x5b, 0xb5, 0x26, 0x0b, 0xe7, 0xba, - 0xce, 0x3b, 0x49, 0x6f, 0x26, 0x26, 0x84, 0x16, 0x6e, 0xef, 0xaf, 0xa0, 0xce, 0x25, 0xa6, 0xa2, - 0x2c, 0xc2, 0x51, 0x74, 0x19, 0xf6, 0x9a, 0x56, 0x45, 0x6f, 0x56, 0xb4, 0xf6, 0x71, 0x81, 0xa6, - 0x97, 0x31, 0x0e, 0x1c, 0x9b, 0x57, 0x12, 0x8f, 0xe5, 0x01, 0xcb, 0x5e, 0x13, 0xca, 0xed, 0x14, - 0x3b, 0x2b, 0x54, 0xbb, 0xa2, 0x26, 0xb2, 0x53, 0xd4, 0x60, 0xef, 0x55, 0xd7, 0x1b, 0x18, 0x36, - 0x6e, 0x73, 0x9b, 0x75, 0x6f, 0x71, 0x35, 0x8e, 0x82, 0x02, 0x5d, 0x7f, 0x79, 0x73, 0xe0, 0xf7, - 0xe3, 0x3f, 0x45, 0x20, 0xe5, 0xef, 0xe0, 0xa8, 0x21, 0x2e, 0xb3, 0x34, 0x1f, 0x62, 0x59, 0xe0, - 0xc4, 0xae, 0xfd, 0xde, 0xf4, 0x1c, 0xe5, 0xff, 0xdc, 0x10, 0xef, 0xab, 0x54, 0x8e, 0xa4, 0xda, - 0x4b, 0xb1, 0x66, 0xf0, 0x6e, 0x3d, 0xae, 0x8a, 0x2b, 0x4c, 0x76, 0x43, 0xd7, 0x1d, 0xc6, 0x3d, - 0xc4, 0xb8, 0x1f, 0xdc, 0x9d, 0xfb, 0xf2, 0x1a, 0x23, 0x4f, 0x5c, 0x5e, 0xd3, 0x96, 0x57, 0xd4, - 0xa5, 0xd9, 0x45, 0x55, 0xc0, 0x95, 0x43, 0x10, 0x35, 0xf5, 0xef, 0x6f, 0x77, 0x56, 0x0a, 0x26, - 0x1a, 0xd4, 0xf1, 0xc8, 0x40, 0x47, 0x1e, 0x9d, 0xf9, 0x99, 0x89, 0xbe, 0xc4, 0xd0, 0x9f, 0x81, - 0x18, 0xf3, 0x97, 0x02, 0x20, 0x3c, 0x96, 0xb9, 0x4f, 0x89, 0x43, 0x74, 0x6e, 0x45, 0xa5, 0xf0, - 0xc7, 0x78, 0xe7, 0x52, 0x6d, 0xb5, 0x58, 0x98, 0xc3, 0x15, 0x30, 0xf5, 0x18, 0x0c, 0x71, 0x27, - 0xd0, 0xd2, 0xf0, 0xdc, 0x80, 0x20, 0x7e, 0x29, 0x38, 0x42, 0x72, 0xb4, 0xb4, 0x94, 0x2f, 0xa8, - 0x99, 0xb0, 0x7f, 0x7a, 0xff, 0x32, 0x04, 0x49, 0x5f, 0x43, 0x45, 0xa5, 0x5c, 0x37, 0x4d, 0xfb, - 0x96, 0xa6, 0x9b, 0x35, 0xcc, 0x50, 0x7c, 0x7e, 0x80, 0x89, 0x66, 0x49, 0x32, 0xa8, 0xff, 0xfe, - 0x5f, 0x62, 0xf3, 0xa5, 0x10, 0x64, 0xba, 0x9b, 0xb1, 0x2e, 0x03, 0x43, 0x5f, 0xa9, 0x81, 0x2f, - 0x84, 0x20, 0xdd, 0xd9, 0x81, 0x75, 0x99, 0x77, 0xfc, 0x2b, 0x35, 0xef, 0xf9, 0x10, 0x8c, 0x74, - 0xf4, 0x5d, 0x3f, 0x54, 0xd6, 0x3d, 0x17, 0x81, 0xf1, 0x3e, 0x38, 0x4c, 0x40, 0xbc, 0x41, 0xe5, - 0x3d, 0xf3, 0xb7, 0x06, 0xb9, 0xd7, 0x34, 0xd5, 0xbf, 0x55, 0xbd, 0xe9, 0x8a, 0x7e, 0x16, 0xeb, - 0x65, 0xad, 0x82, 0x49, 0xb5, 0xb6, 0x59, 0xc3, 0xf6, 0x8d, 0xef, 0x58, 0x78, 0xd7, 0x3a, 0xda, - 0x96, 0xf3, 0xed, 0xf1, 0x37, 0x41, 0x69, 0xd8, 0x4e, 0xcd, 0xad, 0xdd, 0xa4, 0xe3, 0x39, 0xb9, - 0x91, 0xa6, 0x2e, 0x36, 0xaa, 0x66, 0xe4, 0x48, 0xd1, 0x72, 0x3d, 0x6d, 0xcb, 0xa8, 0xea, 0x5d, - 0xda, 0x94, 0x86, 0x22, 0x6a, 0x46, 0x8e, 0x78, 0xda, 0xd8, 0x68, 0x56, 0xec, 0x16, 0x35, 0x04, - 0x5c, 0x8f, 0xb2, 0x5e, 0x48, 0x4d, 0x72, 0x99, 0xa7, 0x22, 0x3a, 0xb6, 0xf6, 0x0e, 0x3e, 0xa5, - 0x26, 0xb9, 0x8c, 0xab, 0x3c, 0x02, 0xa3, 0x7a, 0xb5, 0xda, 0x24, 0x72, 0x49, 0xc4, 0xdb, 0xd0, - 0xb4, 0x27, 0x66, 0x8a, 0x93, 0x97, 0x21, 0x2e, 0xfd, 0x40, 0x85, 0x85, 0x3c, 0x81, 0x35, 0x9f, - 0x9d, 0xa3, 0x84, 0x69, 0x53, 0x6f, 0xc9, 0x41, 0xbc, 0x69, 0xcd, 0xd1, 0xda, 0x07, 0x7a, 0x61, - 0x1c, 0x8f, 0xab, 0xc9, 0x9a, 0xe3, 0x9d, 0xe0, 0x4c, 0xbd, 0x8a, 0xe5, 0xb5, 0xf3, 0x40, 0x52, - 0x99, 0x87, 0xb8, 0x69, 0x63, 0x7c, 0x10, 0x82, 0x9f, 0x86, 0x9f, 0x0c, 0x38, 0xc3, 0x9c, 0x5e, - 0x14, 0xfa, 0xaa, 0x87, 0x9c, 0xfc, 0xdb, 0x10, 0xc4, 0xa5, 0x18, 0x0b, 0x45, 0xb4, 0xa1, 0xbb, - 0x5b, 0x8c, 0x2e, 0x96, 0x0f, 0x67, 0x42, 0x2a, 0xbb, 0x26, 0x39, 0x76, 0x33, 0x16, 0x0b, 0x01, - 0x21, 0xa7, 0x6b, 0x9a, 0x57, 0xd3, 0xd0, 0x2b, 0xac, 0xc1, 0xb5, 0xeb, 0x75, 0x9c, 0x49, 0x47, - 0xce, 0xab, 0x90, 0xcf, 0x09, 0x31, 0x9d, 0x8b, 0xbb, 0x4d, 0xbd, 0x66, 0x76, 0xe8, 0x46, 0x99, - 0x6e, 0x46, 0x0e, 0x78, 0xca, 0x39, 0x38, 0x24, 0x79, 0x2b, 0x86, 0xab, 0x63, 0xf3, 0x5c, 0x69, - 0x83, 0x86, 0xd8, 0x69, 0xd7, 0x41, 0xa1, 0x30, 0x2f, 0xc6, 0x25, 0x36, 0x7f, 0x15, 0x1b, 0x59, - 0xbb, 0xde, 0xed, 0x89, 0x7c, 0xa6, 0x6b, 0xdf, 0xe5, 0x7c, 0x37, 0xf4, 0x24, 0xb4, 0x9b, 0x8a, - 0x57, 0xc2, 0x91, 0x85, 0xd5, 0xfc, 0xeb, 0xe1, 0xc9, 0x05, 0x8e, 0x5b, 0x95, 0x1e, 0x54, 0x8d, - 0x4d, 0xd3, 0x28, 0x93, 0x77, 0xe0, 0xe5, 0x13, 0xf0, 0xad, 0x6a, 0xcd, 0xdd, 0x6a, 0x6d, 0x4c, - 0xe3, 0x1d, 0x66, 0xaa, 0x76, 0xd5, 0x6e, 0xbf, 0xce, 0xa0, 0x2b, 0x76, 0xc1, 0xbe, 0x89, 0x57, - 0x1a, 0x09, 0x4f, 0x3a, 0x19, 0xf8, 0xfe, 0x23, 0xb7, 0x0c, 0xe3, 0x42, 0x59, 0x63, 0x67, 0xaa, - 0xbc, 0x05, 0x55, 0x76, 0xdd, 0x90, 0x67, 0xdf, 0xbc, 0xcb, 0x4a, 0x82, 0x3a, 0x26, 0xa0, 0x34, - 0xc6, 0x9b, 0xd4, 0x9c, 0x0a, 0xf7, 0x77, 0xf0, 0xf1, 0x18, 0xc6, 0x2d, 0xf7, 0xee, 0x8c, 0xef, - 0x08, 0xc6, 0x71, 0x1f, 0xe3, 0x9a, 0x80, 0xe6, 0xe6, 0x60, 0x64, 0x2f, 0x5c, 0x7f, 0x2d, 0xb8, - 0x52, 0x86, 0x9f, 0x64, 0x01, 0x46, 0x19, 0x49, 0xb9, 0xe5, 0xb8, 0x76, 0x9d, 0x25, 0x88, 0xdd, - 0x69, 0xfe, 0xe6, 0x2e, 0x0f, 0xaa, 0x34, 0xc1, 0xe6, 0x3c, 0x54, 0xee, 0x7b, 0x30, 0x41, 0x12, - 0xb6, 0x06, 0xfd, 0x6c, 0xc1, 0x47, 0x08, 0xd9, 0xbf, 0xbf, 0xc3, 0x63, 0x6f, 0xdc, 0x23, 0xf0, - 0xf1, 0xfa, 0x66, 0xa2, 0x6a, 0xb8, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x9a, 0xca, 0xae, 0xef, 0x18, - 0xb2, 0xcf, 0x7e, 0xd2, 0x39, 0x13, 0x0b, 0x1c, 0x39, 0x6b, 0x9a, 0xb9, 0x12, 0x1c, 0xec, 0x33, - 0xb3, 0x03, 0x70, 0x3e, 0x27, 0x38, 0x27, 0x7a, 0x66, 0x97, 0x68, 0x57, 0x41, 0xca, 0xbd, 0xf9, - 0x18, 0x80, 0xf3, 0x79, 0xc1, 0xa9, 0x08, 0xac, 0x9c, 0x16, 0x62, 0xbc, 0x0c, 0x63, 0xb8, 0x53, - 0xdf, 0xb0, 0x1d, 0xb1, 0xef, 0x1d, 0x80, 0xee, 0x05, 0x41, 0x37, 0x2a, 0x80, 0x6c, 0x17, 0x4c, - 0x5c, 0x8f, 0x43, 0x7c, 0x13, 0x37, 0x40, 0x03, 0x50, 0xbc, 0x28, 0x28, 0x86, 0x49, 0x9f, 0xa0, - 0xb3, 0x90, 0xaa, 0xda, 0x22, 0x0d, 0x07, 0xc3, 0x5f, 0x12, 0xf0, 0xa4, 0xc4, 0x08, 0x8a, 0x86, - 0xdd, 0x68, 0x99, 0x94, 0xa3, 0x83, 0x29, 0x7e, 0x4b, 0x52, 0x48, 0x8c, 0xa0, 0xd8, 0x83, 0x5b, - 0x7f, 0x5b, 0x52, 0x38, 0x3e, 0x7f, 0x7e, 0x87, 0xce, 0x7a, 0xcd, 0x6d, 0xdb, 0x1a, 0xc4, 0x88, - 0x97, 0x05, 0x03, 0x08, 0x08, 0x11, 0x5c, 0x84, 0xc4, 0xa0, 0x13, 0xf1, 0x3b, 0x02, 0x1e, 0x37, - 0xe4, 0x0c, 0xe0, 0x3a, 0x93, 0x49, 0x86, 0xde, 0xad, 0x04, 0x53, 0xfc, 0xae, 0xa0, 0x48, 0xfb, - 0x60, 0xe2, 0x31, 0x5c, 0xc3, 0x71, 0x71, 0xab, 0x3e, 0x00, 0xc9, 0xab, 0xf2, 0x31, 0x04, 0x44, - 0xb8, 0x72, 0xc3, 0xb0, 0xca, 0x5b, 0x83, 0x31, 0xbc, 0x26, 0x5d, 0x29, 0x31, 0x44, 0x81, 0x99, - 0xa7, 0xae, 0x37, 0x71, 0x73, 0x6d, 0x0e, 0x34, 0x1d, 0xbf, 0x27, 0x38, 0x52, 0x1e, 0x48, 0x78, - 0xa4, 0x65, 0xed, 0x85, 0xe6, 0x75, 0xe9, 0x11, 0x1f, 0x4c, 0x2c, 0x3d, 0xdc, 0x99, 0x52, 0x27, - 0xb1, 0x17, 0xb6, 0xdf, 0x97, 0x4b, 0x8f, 0x63, 0x97, 0xfc, 0x8c, 0x38, 0xd3, 0x0e, 0x6e, 0xc1, - 0x07, 0xa1, 0xf9, 0x03, 0x39, 0xd3, 0x0c, 0x40, 0xe0, 0x6b, 0x70, 0xa8, 0x6f, 0xaa, 0x1f, 0x80, - 0xec, 0x0f, 0x05, 0xd9, 0x81, 0x3e, 0xe9, 0x5e, 0xa4, 0x84, 0xbd, 0x52, 0xfe, 0x91, 0x4c, 0x09, - 0x46, 0x17, 0xd7, 0x2a, 0xb5, 0xb1, 0x8e, 0xbe, 0xb9, 0x37, 0xaf, 0xfd, 0xb1, 0xf4, 0x1a, 0xc7, - 0x76, 0x78, 0x6d, 0x1d, 0x0e, 0x08, 0xc6, 0xbd, 0xcd, 0xeb, 0x1b, 0x32, 0xb1, 0x72, 0x74, 0xa9, - 0x73, 0x76, 0x7f, 0x1c, 0x26, 0x3d, 0x77, 0xca, 0x0e, 0xcc, 0xd1, 0xe8, 0x60, 0x20, 0x98, 0xf9, - 0x4d, 0xc1, 0x2c, 0x33, 0xbe, 0xd7, 0xc2, 0x39, 0x4b, 0x7a, 0x83, 0xc8, 0xaf, 0x42, 0x56, 0x92, - 0xb7, 0x2c, 0x6c, 0xf0, 0xed, 0xaa, 0x85, 0xd3, 0x58, 0x19, 0x80, 0xfa, 0x4f, 0xba, 0xa6, 0xaa, - 0xe4, 0x83, 0x13, 0x73, 0x11, 0x32, 0x5e, 0xbf, 0xa1, 0xd5, 0xea, 0x0d, 0x1b, 0x5b, 0xcb, 0xdd, - 0x19, 0xff, 0x54, 0xce, 0x94, 0x87, 0x2b, 0x32, 0x58, 0xae, 0x00, 0x69, 0x76, 0x39, 0x68, 0x48, - 0xfe, 0x99, 0x20, 0x1a, 0x69, 0xa3, 0x44, 0xe2, 0xc0, 0x4e, 0x09, 0x7b, 0xde, 0x41, 0xf2, 0xdf, - 0x5b, 0x32, 0x71, 0x08, 0x08, 0x8f, 0xbe, 0xd1, 0xae, 0x4a, 0xac, 0x04, 0xbd, 0x7e, 0xcd, 0xfe, - 0xd4, 0x3d, 0xb1, 0x66, 0x3b, 0x0b, 0x71, 0x6e, 0x91, 0xdc, 0xd3, 0x59, 0x2e, 0x83, 0xc9, 0xee, - 0xdc, 0xf3, 0x3c, 0xd4, 0x51, 0x2d, 0x73, 0x97, 0x60, 0xa4, 0xa3, 0x54, 0x06, 0x53, 0xfd, 0x8c, - 0xa0, 0x4a, 0xf9, 0x2b, 0x65, 0xee, 0x31, 0x88, 0x52, 0xd9, 0x0b, 0x86, 0xff, 0xac, 0x80, 0x33, - 0xf5, 0xdc, 0x8f, 0x42, 0x5c, 0x96, 0xbb, 0x60, 0xe8, 0xcf, 0x09, 0xa8, 0x07, 0x21, 0xb8, 0x2c, - 0x75, 0xc1, 0xf0, 0x1f, 0x48, 0xb8, 0x84, 0x10, 0x7c, 0x70, 0x17, 0xbe, 0xfd, 0x0b, 0x51, 0x91, - 0xae, 0xa4, 0xef, 0xe8, 0x9d, 0x0f, 0xaf, 0x71, 0xc1, 0xe8, 0xa7, 0xc5, 0xcd, 0x25, 0x22, 0x77, - 0x1e, 0x62, 0x03, 0x3a, 0xfc, 0x17, 0x05, 0x94, 0xeb, 0x63, 0x05, 0x49, 0xfa, 0xea, 0x5a, 0x30, - 0xfc, 0x97, 0x04, 0xdc, 0x8f, 0x22, 0xd3, 0x45, 0x5d, 0x0b, 0x26, 0xf8, 0x65, 0x69, 0xba, 0x40, - 0x90, 0xdb, 0x64, 0x49, 0x0b, 0x46, 0xff, 0x8a, 0xf4, 0xba, 0x84, 0xe0, 0x6a, 0x4a, 0x78, 0x69, - 0x2a, 0x18, 0xff, 0xab, 0x02, 0xdf, 0xc6, 0x90, 0x07, 0x7c, 0x69, 0x32, 0x98, 0xe2, 0xd7, 0xa4, - 0x07, 0x7c, 0x28, 0x5a, 0x46, 0xdd, 0xa5, 0x2f, 0x98, 0xe9, 0xd7, 0xe5, 0x32, 0xea, 0xaa, 0x7c, - 0x34, 0x9b, 0x2c, 0x5b, 0x04, 0x53, 0xfc, 0x86, 0x9c, 0x4d, 0xa6, 0x4f, 0x66, 0x74, 0xd7, 0x92, - 0x60, 0x8e, 0xdf, 0x94, 0x66, 0x74, 0x95, 0x12, 0xac, 0x4c, 0x4a, 0x6f, 0x1d, 0x09, 0xe6, 0x7b, - 0x46, 0xf0, 0x8d, 0xf5, 0x94, 0x91, 0xdc, 0x15, 0x38, 0xd0, 0xbf, 0x86, 0x04, 0xb3, 0x3e, 0x7b, - 0xaf, 0xab, 0xeb, 0xf7, 0x97, 0x10, 0x2c, 0x79, 0x13, 0xfd, 0xea, 0x47, 0x30, 0xed, 0x73, 0xf7, - 0x3a, 0x37, 0x76, 0xfe, 0xf2, 0x81, 0x1d, 0x1a, 0xb4, 0x53, 0x77, 0x30, 0xd7, 0x0b, 0x82, 0xcb, - 0x07, 0xa2, 0xa5, 0x21, 0x32, 0x77, 0x30, 0xfe, 0x45, 0xb9, 0x34, 0x04, 0x02, 0xc1, 0x71, 0xab, - 0x65, 0x9a, 0x14, 0x1c, 0xca, 0xee, 0x3f, 0x69, 0xc8, 0xfe, 0xeb, 0xe7, 0x62, 0x61, 0x48, 0x00, - 0xe6, 0xd0, 0x98, 0x51, 0xdf, 0x40, 0x1f, 0x04, 0x20, 0xff, 0xed, 0x73, 0x99, 0x10, 0x48, 0x1b, - 0xd7, 0x13, 0xf0, 0x4d, 0x23, 0x3b, 0xc3, 0x0e, 0xc0, 0xfe, 0xfb, 0xe7, 0xe2, 0x35, 0x6b, 0x1b, - 0xd2, 0x26, 0xe0, 0x2f, 0x6d, 0x77, 0x27, 0xf8, 0xa4, 0x93, 0x80, 0x6d, 0x34, 0x1f, 0x87, 0x61, - 0xfa, 0x65, 0x87, 0xab, 0x57, 0x83, 0xd0, 0xff, 0x21, 0xd0, 0x52, 0x9f, 0x1c, 0x56, 0xb7, 0x9b, - 0x06, 0x7e, 0x75, 0x82, 0xb0, 0xff, 0x29, 0xb0, 0x1e, 0x80, 0xc0, 0x65, 0xdd, 0x71, 0x07, 0x79, - 0xee, 0xff, 0x92, 0x60, 0x09, 0x20, 0xa3, 0xe9, 0xfb, 0x0d, 0x63, 0x3b, 0x08, 0xfb, 0xa9, 0x34, - 0x5a, 0xe8, 0x63, 0x02, 0x4c, 0xd0, 0x57, 0xfe, 0xd3, 0x83, 0x00, 0xf0, 0x7f, 0x0b, 0x70, 0x1b, - 0x91, 0x3f, 0xde, 0xff, 0x68, 0x07, 0x16, 0xec, 0x05, 0x9b, 0x1f, 0xea, 0xc0, 0xdd, 0x34, 0x1c, - 0x43, 0x1d, 0xac, 0xaf, 0x33, 0x7c, 0x4d, 0x6e, 0xd8, 0xee, 0xd6, 0x8c, 0xb4, 0x5d, 0x1c, 0xcb, - 0x78, 0xcf, 0x32, 0xb9, 0xb7, 0xf3, 0x9c, 0xa9, 0x67, 0x46, 0x20, 0x3e, 0x87, 0x58, 0xfd, 0x96, - 0x4e, 0x6f, 0x36, 0xe2, 0x45, 0xcb, 0x7d, 0xf4, 0xcc, 0xaa, 0xdb, 0x64, 0xc7, 0xde, 0x91, 0x7c, - 0xe2, 0x7f, 0xdf, 0x3b, 0x1a, 0xab, 0x91, 0x4c, 0x8d, 0xd7, 0xc4, 0x90, 0x72, 0x02, 0x62, 0x4c, - 0x8d, 0x9d, 0xed, 0x47, 0xf2, 0x23, 0xef, 0xbe, 0x77, 0xf4, 0xbe, 0xb6, 0x1e, 0xff, 0xa7, 0x5c, - 0x83, 0xe4, 0xd2, 0x76, 0x09, 0xbf, 0x9f, 0x3b, 0x4b, 0x74, 0xf4, 0xe4, 0xd1, 0xfc, 0x79, 0x54, - 0x7b, 0x74, 0x47, 0x03, 0xa9, 0xa8, 0xb4, 0x1f, 0x4c, 0xa2, 0xd9, 0xcf, 0x98, 0x92, 0xf5, 0x36, - 0x97, 0x72, 0x05, 0xe2, 0x72, 0x90, 0x1f, 0xa3, 0xe6, 0x2f, 0x0a, 0x13, 0xf6, 0xc5, 0x1d, 0x97, - 0xdc, 0xca, 0x4f, 0x40, 0x6a, 0x69, 0xfb, 0x92, 0x69, 0xeb, 0xc2, 0x07, 0x74, 0xea, 0x1a, 0xce, - 0x5f, 0x40, 0xe2, 0xb3, 0x03, 0x13, 0x0b, 0x38, 0x63, 0x4e, 0xd5, 0x7d, 0x6c, 0xca, 0x93, 0x90, - 0xf0, 0x86, 0xd9, 0x41, 0x6d, 0x38, 0xff, 0x6d, 0x61, 0xf7, 0xfe, 0xe8, 0x13, 0x1e, 0xbd, 0xcf, - 0x72, 0xee, 0x6e, 0x3a, 0xe4, 0x0d, 0xed, 0xc7, 0x72, 0xe1, 0x13, 0x69, 0x39, 0x77, 0x78, 0xdb, - 0x72, 0xf4, 0x78, 0x9c, 0x51, 0xef, 0xd3, 0x72, 0x41, 0x9f, 0xf0, 0xe8, 0x95, 0xcb, 0x30, 0xbc, - 0xb4, 0x9d, 0xdf, 0x46, 0x6d, 0xf6, 0xa3, 0x80, 0x54, 0xfe, 0x34, 0xb2, 0x7e, 0x73, 0x40, 0x56, - 0x86, 0x53, 0x87, 0xeb, 0x9c, 0x40, 0x39, 0x06, 0xc9, 0x65, 0x7a, 0xd5, 0x6a, 0x72, 0x3e, 0xe0, - 0x27, 0xdd, 0x56, 0x5b, 0xa4, 0x94, 0xe8, 0x49, 0xf8, 0x6c, 0x3b, 0xec, 0x87, 0xc9, 0x5f, 0x20, - 0x26, 0x13, 0x32, 0x6e, 0x1c, 0xa5, 0x06, 0xb1, 0xa5, 0x6d, 0x2c, 0x65, 0xd9, 0x14, 0x3b, 0xb5, - 0x3e, 0x3c, 0xed, 0x21, 0xe4, 0xda, 0x9a, 0x66, 0xe3, 0xec, 0xad, 0x6b, 0xfe, 0x2c, 0xde, 0xf1, - 0xf4, 0xc0, 0x77, 0x44, 0x18, 0xbb, 0x5d, 0xac, 0x4e, 0x5f, 0x95, 0xb7, 0x42, 0xb4, 0xb0, 0xf8, - 0xd1, 0x1e, 0xdd, 0x71, 0x84, 0xdd, 0xf1, 0x44, 0xdf, 0x3b, 0x7a, 0x5a, 0xfc, 0xbe, 0xd6, 0x4f, - 0xbf, 0xbf, 0x87, 0x27, 0xe5, 0xfb, 0x02, 0xba, 0xf5, 0xcf, 0xbf, 0xbf, 0xef, 0x45, 0xeb, 0x59, - 0xa0, 0xdc, 0xa1, 0x37, 0x45, 0xdb, 0xcb, 0xa2, 0xc0, 0x91, 0xe5, 0x69, 0xf1, 0xf3, 0xd5, 0x7e, - 0x96, 0xfb, 0xf4, 0xb8, 0xed, 0xe7, 0xd0, 0xf6, 0x33, 0x03, 0x1b, 0xc1, 0xd2, 0x13, 0xb3, 0x61, - 0xa4, 0xee, 0xe7, 0x52, 0x7e, 0xc0, 0xac, 0x28, 0x50, 0xb1, 0xac, 0x18, 0x15, 0xb2, 0x62, 0x74, - 0x17, 0x2b, 0x7c, 0x7a, 0xdc, 0x8a, 0x1c, 0x45, 0xfd, 0xfe, 0x2d, 0xf1, 0xf1, 0x4d, 0x5e, 0x00, - 0x68, 0x87, 0x04, 0xfd, 0xf4, 0x14, 0xab, 0x89, 0xf8, 0x9d, 0x10, 0x7d, 0xa5, 0x9f, 0xa8, 0xca, - 0xdf, 0xc1, 0xd1, 0x8b, 0x22, 0x7e, 0x91, 0x0b, 0x5f, 0x08, 0x4d, 0x3e, 0x01, 0x99, 0xee, 0xa9, - 0xdd, 0x13, 0x5e, 0x05, 0xa5, 0xd7, 0xc1, 0x7e, 0x86, 0x18, 0x67, 0x78, 0xd8, 0xcf, 0x90, 0x3c, - 0x93, 0x69, 0xbb, 0xe8, 0x4a, 0xcd, 0xc4, 0x9a, 0xdd, 0xc3, 0xd9, 0xed, 0xae, 0x2f, 0xc6, 0x39, - 0x75, 0x04, 0x86, 0xb8, 0x90, 0x9e, 0xa5, 0xc8, 0xb2, 0x3d, 0x2b, 0x4a, 0xac, 0xc2, 0x9c, 0x3b, - 0x9b, 0x5f, 0x7c, 0xf7, 0xc3, 0x23, 0xf7, 0xfd, 0x1d, 0x7e, 0xfe, 0x11, 0x3f, 0x1f, 0x7c, 0x78, - 0x24, 0xf4, 0x31, 0x7e, 0x3e, 0xc5, 0xcf, 0x67, 0xf8, 0x79, 0xea, 0xa3, 0x23, 0xa1, 0xd7, 0xf0, - 0xf3, 0x06, 0x7e, 0xfe, 0x02, 0x3f, 0x6f, 0xe3, 0xe7, 0xdd, 0x8f, 0x50, 0x1f, 0x3f, 0x1f, 0xe0, - 0xf7, 0x8f, 0xf1, 0xff, 0xa7, 0xf8, 0xff, 0x33, 0xfc, 0x3c, 0xf5, 0xcf, 0x47, 0x42, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0x14, 0x3a, 0xfe, 0x24, 0xd1, 0x31, 0x00, 0x00, + // 4128 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0x3f, 0x17, 0x1f, 0x24, 0x70, 0x00, 0x82, 0xcb, 0x4b, 0x5a, 0x82, 0xe8, 0x18, 0xa4, 0xe8, + 0x2f, 0xda, 0x4e, 0x28, 0x8f, 0xbe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0xd0, 0x9f, 0x20, + 0x90, 0x25, 0x19, 0x49, 0xfe, 0x77, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, + 0x0b, 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0x7e, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, + 0x66, 0x5a, 0xa7, 0x49, 0x3f, 0x92, 0xb6, 0x4e, 0x33, 0x7d, 0xca, 0x4b, 0x5a, 0x3f, 0x75, 0x92, + 0xb7, 0x3e, 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc8, 0x2f, + 0x9d, 0xfb, 0xb5, 0x58, 0x7c, 0x90, 0x0b, 0x2a, 0xe3, 0xe4, 0x89, 0xd8, 0x73, 0xcf, 0xef, 0xb7, + 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x2e, 0xe1, 0x87, 0xe7, 0x60, 0xa1, 0x61, 0xdb, 0x0d, + 0x13, 0x9f, 0x6a, 0x39, 0xb6, 0x67, 0xef, 0xb4, 0x77, 0x4f, 0xd5, 0xb1, 0xab, 0x3b, 0x46, 0xcb, + 0xb3, 0x9d, 0x65, 0x2a, 0x43, 0x53, 0x4c, 0x63, 0x59, 0x68, 0x2c, 0x56, 0x60, 0xfa, 0x92, 0x61, + 0xe2, 0x55, 0x5f, 0x71, 0x13, 0x7b, 0xe8, 0x02, 0xc4, 0x76, 0x0d, 0x13, 0x67, 0xa5, 0x85, 0xe8, + 0x52, 0xea, 0xf4, 0x23, 0xcb, 0x7d, 0xa0, 0xe5, 0x5e, 0x44, 0x8d, 0x88, 0x15, 0x8a, 0x58, 0x7c, + 0x27, 0x06, 0x33, 0x43, 0x46, 0x11, 0x82, 0x98, 0xa5, 0x35, 0x09, 0xa3, 0xb4, 0x94, 0x54, 0xe8, + 0x6f, 0x94, 0x85, 0x89, 0x96, 0xa6, 0xdf, 0xd0, 0x1a, 0x38, 0x1b, 0xa1, 0x62, 0x71, 0x89, 0x72, + 0x00, 0x75, 0xdc, 0xc2, 0x56, 0x1d, 0x5b, 0x7a, 0x27, 0x1b, 0x5d, 0x88, 0x2e, 0x25, 0x95, 0x80, + 0x04, 0x3d, 0x05, 0xd3, 0xad, 0xf6, 0x8e, 0x69, 0xe8, 0x6a, 0x40, 0x0d, 0x16, 0xa2, 0x4b, 0x71, + 0x45, 0x66, 0x03, 0xab, 0x5d, 0xe5, 0xc7, 0x61, 0xea, 0x16, 0xd6, 0x6e, 0x04, 0x55, 0x53, 0x54, + 0x35, 0x43, 0xc4, 0x01, 0xc5, 0x15, 0x48, 0x37, 0xb1, 0xeb, 0x6a, 0x0d, 0xac, 0x7a, 0x9d, 0x16, + 0xce, 0xc6, 0xe8, 0xec, 0x17, 0x06, 0x66, 0xdf, 0x3f, 0xf3, 0x14, 0x47, 0x6d, 0x75, 0x5a, 0x18, + 0x15, 0x20, 0x89, 0xad, 0x76, 0x93, 0x31, 0xc4, 0x0f, 0xf0, 0x5f, 0xc9, 0x6a, 0x37, 0xfb, 0x59, + 0x12, 0x04, 0xc6, 0x29, 0x26, 0x5c, 0xec, 0xdc, 0x34, 0x74, 0x9c, 0x1d, 0xa7, 0x04, 0x8f, 0x0f, + 0x10, 0x6c, 0xb2, 0xf1, 0x7e, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc4, 0x2f, 0x7a, 0xd8, 0x72, 0x0d, + 0xdb, 0xca, 0x4e, 0x50, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xeb, 0xfd, 0x14, 0x5d, 0x1c, 0x3a, + 0x0f, 0x13, 0x76, 0xcb, 0x33, 0x6c, 0xcb, 0xcd, 0x26, 0x16, 0xa4, 0xa5, 0xd4, 0xe9, 0x8f, 0x0d, + 0x0d, 0x84, 0x2a, 0xd3, 0x51, 0x84, 0x32, 0x2a, 0x83, 0xec, 0xda, 0x6d, 0x47, 0xc7, 0xaa, 0x6e, + 0xd7, 0xb1, 0x6a, 0x58, 0xbb, 0x76, 0x36, 0x49, 0x09, 0xe6, 0x07, 0x27, 0x42, 0x15, 0x57, 0xec, + 0x3a, 0x2e, 0x5b, 0xbb, 0xb6, 0x92, 0x71, 0x7b, 0xae, 0xd1, 0x31, 0x18, 0x77, 0x3b, 0x96, 0xa7, + 0xbd, 0x98, 0x4d, 0xd3, 0x08, 0xe1, 0x57, 0x8b, 0xff, 0x1b, 0x87, 0xa9, 0x51, 0x42, 0xec, 0x22, + 0xc4, 0x77, 0xc9, 0x2c, 0xb3, 0x91, 0xa3, 0xf8, 0x80, 0x61, 0x7a, 0x9d, 0x38, 0x7e, 0x9f, 0x4e, + 0x2c, 0x40, 0xca, 0xc2, 0xae, 0x87, 0xeb, 0x2c, 0x22, 0xa2, 0x23, 0xc6, 0x14, 0x30, 0xd0, 0x60, + 0x48, 0xc5, 0xee, 0x2b, 0xa4, 0xae, 0xc2, 0x94, 0x6f, 0x92, 0xea, 0x68, 0x56, 0x43, 0xc4, 0xe6, + 0xa9, 0x30, 0x4b, 0x96, 0x4b, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc1, 0x3d, 0xd7, 0x68, 0x15, 0xc0, + 0xb6, 0xb0, 0xbd, 0xab, 0xd6, 0xb1, 0x6e, 0x66, 0x13, 0x07, 0x78, 0xa9, 0x4a, 0x54, 0x06, 0xbc, + 0x64, 0x33, 0xa9, 0x6e, 0xa2, 0x67, 0xbb, 0xa1, 0x36, 0x71, 0x40, 0xa4, 0x54, 0xd8, 0x26, 0x1b, + 0x88, 0xb6, 0x6d, 0xc8, 0x38, 0x98, 0xc4, 0x3d, 0xae, 0xf3, 0x99, 0x25, 0xa9, 0x11, 0xcb, 0xa1, + 0x33, 0x53, 0x38, 0x8c, 0x4d, 0x6c, 0xd2, 0x09, 0x5e, 0xa2, 0x87, 0xc1, 0x17, 0xa8, 0x34, 0xac, + 0x80, 0x66, 0xa1, 0xb4, 0x10, 0x6e, 0x68, 0x4d, 0x3c, 0x77, 0x01, 0x32, 0xbd, 0xee, 0x41, 0xb3, + 0x10, 0x77, 0x3d, 0xcd, 0xf1, 0x68, 0x14, 0xc6, 0x15, 0x76, 0x81, 0x64, 0x88, 0x62, 0xab, 0x4e, + 0xb3, 0x5c, 0x5c, 0x21, 0x3f, 0xe7, 0x9e, 0x81, 0xc9, 0x9e, 0xdb, 0x8f, 0x0a, 0x5c, 0xfc, 0xd2, + 0x38, 0xcc, 0x0e, 0x8b, 0xb9, 0xa1, 0xe1, 0x7f, 0x0c, 0xc6, 0xad, 0x76, 0x73, 0x07, 0x3b, 0xd9, + 0x28, 0x65, 0xe0, 0x57, 0xa8, 0x00, 0x71, 0x53, 0xdb, 0xc1, 0x66, 0x36, 0xb6, 0x20, 0x2d, 0x65, + 0x4e, 0x3f, 0x35, 0x52, 0x54, 0x2f, 0xaf, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x39, 0x88, 0xf1, 0x14, + 0x47, 0x18, 0x9e, 0x1c, 0x8d, 0x81, 0xc4, 0xa2, 0x42, 0x71, 0xe8, 0x41, 0x48, 0x92, 0xbf, 0xcc, + 0xb7, 0xe3, 0xd4, 0xe6, 0x04, 0x11, 0x10, 0xbf, 0xa2, 0x39, 0x48, 0xd0, 0x30, 0xab, 0x63, 0x51, + 0x1a, 0xfc, 0x6b, 0xb2, 0x30, 0x75, 0xbc, 0xab, 0xb5, 0x4d, 0x4f, 0xbd, 0xa9, 0x99, 0x6d, 0x4c, + 0x03, 0x26, 0xa9, 0xa4, 0xb9, 0xf0, 0xb3, 0x44, 0x86, 0xe6, 0x21, 0xc5, 0xa2, 0xd2, 0xb0, 0xea, + 0xf8, 0x45, 0x9a, 0x7d, 0xe2, 0x0a, 0x0b, 0xd4, 0x32, 0x91, 0x90, 0xdb, 0x5f, 0x77, 0x6d, 0x4b, + 0x2c, 0x2d, 0xbd, 0x05, 0x11, 0xd0, 0xdb, 0x3f, 0xd3, 0x9f, 0xf8, 0x1e, 0x1a, 0x3e, 0xbd, 0xfe, + 0x58, 0x5c, 0xfc, 0x76, 0x04, 0x62, 0x74, 0xbf, 0x4d, 0x41, 0x6a, 0xeb, 0x5a, 0xad, 0xa4, 0xae, + 0x56, 0xb7, 0x8b, 0xeb, 0x25, 0x59, 0x42, 0x19, 0x00, 0x2a, 0xb8, 0xb4, 0x5e, 0x2d, 0x6c, 0xc9, + 0x11, 0xff, 0xba, 0xbc, 0xb1, 0x75, 0xfe, 0xac, 0x1c, 0xf5, 0x01, 0xdb, 0x4c, 0x10, 0x0b, 0x2a, + 0x9c, 0x39, 0x2d, 0xc7, 0x91, 0x0c, 0x69, 0x46, 0x50, 0xbe, 0x5a, 0x5a, 0x3d, 0x7f, 0x56, 0x1e, + 0xef, 0x95, 0x9c, 0x39, 0x2d, 0x4f, 0xa0, 0x49, 0x48, 0x52, 0x49, 0xb1, 0x5a, 0x5d, 0x97, 0x13, + 0x3e, 0xe7, 0xe6, 0x96, 0x52, 0xde, 0x58, 0x93, 0x93, 0x3e, 0xe7, 0x9a, 0x52, 0xdd, 0xae, 0xc9, + 0xe0, 0x33, 0x54, 0x4a, 0x9b, 0x9b, 0x85, 0xb5, 0x92, 0x9c, 0xf2, 0x35, 0x8a, 0xd7, 0xb6, 0x4a, + 0x9b, 0x72, 0xba, 0xc7, 0xac, 0x33, 0xa7, 0xe5, 0x49, 0xff, 0x16, 0xa5, 0x8d, 0xed, 0x8a, 0x9c, + 0x41, 0xd3, 0x30, 0xc9, 0x6e, 0x21, 0x8c, 0x98, 0xea, 0x13, 0x9d, 0x3f, 0x2b, 0xcb, 0x5d, 0x43, + 0x18, 0xcb, 0x74, 0x8f, 0xe0, 0xfc, 0x59, 0x19, 0x2d, 0xae, 0x40, 0x9c, 0x46, 0x17, 0x42, 0x90, + 0x59, 0x2f, 0x14, 0x4b, 0xeb, 0x6a, 0xb5, 0xb6, 0x55, 0xae, 0x6e, 0x14, 0xd6, 0x65, 0xa9, 0x2b, + 0x53, 0x4a, 0x9f, 0xd9, 0x2e, 0x2b, 0xa5, 0x55, 0x39, 0x12, 0x94, 0xd5, 0x4a, 0x85, 0xad, 0xd2, + 0xaa, 0x1c, 0x5d, 0xd4, 0x61, 0x76, 0x58, 0x9e, 0x19, 0xba, 0x33, 0x02, 0x4b, 0x1c, 0x39, 0x60, + 0x89, 0x29, 0xd7, 0xc0, 0x12, 0x7f, 0x55, 0x82, 0x99, 0x21, 0xb9, 0x76, 0xe8, 0x4d, 0x9e, 0x87, + 0x38, 0x0b, 0x51, 0x56, 0x7d, 0x9e, 0x18, 0x9a, 0xb4, 0x69, 0xc0, 0x0e, 0x54, 0x20, 0x8a, 0x0b, + 0x56, 0xe0, 0xe8, 0x01, 0x15, 0x98, 0x50, 0x0c, 0x18, 0xf9, 0xb2, 0x04, 0xd9, 0x83, 0xb8, 0x43, + 0x12, 0x45, 0xa4, 0x27, 0x51, 0x5c, 0xec, 0x37, 0xe0, 0xe4, 0xc1, 0x73, 0x18, 0xb0, 0xe2, 0x75, + 0x09, 0x8e, 0x0d, 0x6f, 0x54, 0x86, 0xda, 0xf0, 0x1c, 0x8c, 0x37, 0xb1, 0xb7, 0x67, 0x8b, 0x62, + 0xfd, 0xd8, 0x90, 0x12, 0x40, 0x86, 0xfb, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3d, 0xa8, 0xdb, + 0x60, 0xd6, 0x0c, 0x58, 0xfa, 0xc5, 0x08, 0x3c, 0x30, 0x94, 0x7c, 0xa8, 0xa1, 0x0f, 0x01, 0x18, + 0x56, 0xab, 0xed, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x92, 0x4a, 0xe8, 0xde, 0x27, 0xb9, 0xa7, 0xed, + 0xf9, 0xe3, 0x51, 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0x2e, 0x74, 0x0d, 0x8d, 0x51, 0x43, 0x73, 0x07, + 0xcc, 0x74, 0xa0, 0xd6, 0x3d, 0x0d, 0xb2, 0x6e, 0x1a, 0xd8, 0xf2, 0x54, 0xd7, 0x73, 0xb0, 0xd6, + 0x34, 0xac, 0x06, 0x4d, 0xc0, 0x89, 0x7c, 0x7c, 0x57, 0x33, 0x5d, 0xac, 0x4c, 0xb1, 0xe1, 0x4d, + 0x31, 0x4a, 0x10, 0xb4, 0xca, 0x38, 0x01, 0xc4, 0x78, 0x0f, 0x82, 0x0d, 0xfb, 0x88, 0xc5, 0x6f, + 0x4c, 0x40, 0x2a, 0xd0, 0xd6, 0xa1, 0x93, 0x90, 0xbe, 0xae, 0xdd, 0xd4, 0x54, 0xd1, 0xaa, 0x33, + 0x4f, 0xa4, 0x88, 0xac, 0xc6, 0xdb, 0xf5, 0xa7, 0x61, 0x96, 0xaa, 0xd8, 0x6d, 0x0f, 0x3b, 0xaa, + 0x6e, 0x6a, 0xae, 0x4b, 0x9d, 0x96, 0xa0, 0xaa, 0x88, 0x8c, 0x55, 0xc9, 0xd0, 0x8a, 0x18, 0x41, + 0xe7, 0x60, 0x86, 0x22, 0x9a, 0x6d, 0xd3, 0x33, 0x5a, 0x26, 0x56, 0xc9, 0xc3, 0x83, 0x4b, 0x13, + 0xb1, 0x6f, 0xd9, 0x34, 0xd1, 0xa8, 0x70, 0x05, 0x62, 0x91, 0x8b, 0x56, 0xe1, 0x21, 0x0a, 0x6b, + 0x60, 0x0b, 0x3b, 0x9a, 0x87, 0x55, 0xfc, 0xb9, 0xb6, 0x66, 0xba, 0xaa, 0x66, 0xd5, 0xd5, 0x3d, + 0xcd, 0xdd, 0xcb, 0xce, 0x12, 0x82, 0x62, 0x24, 0x2b, 0x29, 0x27, 0x88, 0xe2, 0x1a, 0xd7, 0x2b, + 0x51, 0xb5, 0x82, 0x55, 0xff, 0xb4, 0xe6, 0xee, 0xa1, 0x3c, 0x1c, 0xa3, 0x2c, 0xae, 0xe7, 0x18, + 0x56, 0x43, 0xd5, 0xf7, 0xb0, 0x7e, 0x43, 0x6d, 0x7b, 0xbb, 0x17, 0xb2, 0x0f, 0x06, 0xef, 0x4f, + 0x2d, 0xdc, 0xa4, 0x3a, 0x2b, 0x44, 0x65, 0xdb, 0xdb, 0xbd, 0x80, 0x36, 0x21, 0x4d, 0x16, 0xa3, + 0x69, 0xbc, 0x84, 0xd5, 0x5d, 0xdb, 0xa1, 0x95, 0x25, 0x33, 0x64, 0x67, 0x07, 0x3c, 0xb8, 0x5c, + 0xe5, 0x80, 0x8a, 0x5d, 0xc7, 0xf9, 0xf8, 0x66, 0xad, 0x54, 0x5a, 0x55, 0x52, 0x82, 0xe5, 0x92, + 0xed, 0x90, 0x80, 0x6a, 0xd8, 0xbe, 0x83, 0x53, 0x2c, 0xa0, 0x1a, 0xb6, 0x70, 0xef, 0x39, 0x98, + 0xd1, 0x75, 0x36, 0x67, 0x43, 0x57, 0x79, 0x8b, 0xef, 0x66, 0xe5, 0x1e, 0x67, 0xe9, 0xfa, 0x1a, + 0x53, 0xe0, 0x31, 0xee, 0xa2, 0x67, 0xe1, 0x81, 0xae, 0xb3, 0x82, 0xc0, 0xe9, 0x81, 0x59, 0xf6, + 0x43, 0xcf, 0xc1, 0x4c, 0xab, 0x33, 0x08, 0x44, 0x3d, 0x77, 0x6c, 0x75, 0xfa, 0x61, 0x8f, 0xd2, + 0xc7, 0x36, 0x07, 0xeb, 0x9a, 0x87, 0xeb, 0xd9, 0xe3, 0x41, 0xed, 0xc0, 0x00, 0x3a, 0x05, 0xb2, + 0xae, 0xab, 0xd8, 0xd2, 0x76, 0x4c, 0xac, 0x6a, 0x0e, 0xb6, 0x34, 0x37, 0x3b, 0x1f, 0x54, 0xce, + 0xe8, 0x7a, 0x89, 0x8e, 0x16, 0xe8, 0x20, 0x7a, 0x12, 0xa6, 0xed, 0x9d, 0xeb, 0x3a, 0x8b, 0x2c, + 0xb5, 0xe5, 0xe0, 0x5d, 0xe3, 0xc5, 0xec, 0x23, 0xd4, 0x4d, 0x53, 0x64, 0x80, 0xc6, 0x55, 0x8d, + 0x8a, 0xd1, 0x13, 0x20, 0xeb, 0xee, 0x9e, 0xe6, 0xb4, 0x68, 0x69, 0x77, 0x5b, 0x9a, 0x8e, 0xb3, + 0x8f, 0x32, 0x55, 0x26, 0xdf, 0x10, 0x62, 0x12, 0xd9, 0xee, 0x2d, 0x63, 0xd7, 0x13, 0x8c, 0x8f, + 0xb3, 0xc8, 0xa6, 0x32, 0xce, 0x76, 0x15, 0x66, 0xdb, 0x96, 0x61, 0x79, 0xd8, 0x69, 0x39, 0x98, + 0x34, 0xf1, 0x6c, 0x27, 0x66, 0xff, 0x75, 0xe2, 0x80, 0x36, 0x7c, 0x3b, 0xa8, 0xcd, 0x02, 0x40, + 0x99, 0x69, 0x0f, 0x0a, 0x17, 0xf3, 0x90, 0x0e, 0xc6, 0x05, 0x4a, 0x02, 0x8b, 0x0c, 0x59, 0x22, + 0x35, 0x76, 0xa5, 0xba, 0x4a, 0xaa, 0xe3, 0x0b, 0x25, 0x39, 0x42, 0xaa, 0xf4, 0x7a, 0x79, 0xab, + 0xa4, 0x2a, 0xdb, 0x1b, 0x5b, 0xe5, 0x4a, 0x49, 0x8e, 0x3e, 0x99, 0x4c, 0xbc, 0x3b, 0x21, 0xdf, + 0xbe, 0x7d, 0xfb, 0x76, 0x64, 0xf1, 0x7b, 0x11, 0xc8, 0xf4, 0x76, 0xc6, 0xe8, 0x93, 0x70, 0x5c, + 0x3c, 0xc6, 0xba, 0xd8, 0x53, 0x6f, 0x19, 0x0e, 0x0d, 0xd5, 0xa6, 0xc6, 0x7a, 0x4b, 0xdf, 0xcb, + 0xb3, 0x5c, 0x6b, 0x13, 0x7b, 0x57, 0x0c, 0x87, 0x04, 0x62, 0x53, 0xf3, 0xd0, 0x3a, 0xcc, 0x5b, + 0xb6, 0xea, 0x7a, 0x9a, 0x55, 0xd7, 0x9c, 0xba, 0xda, 0x3d, 0x40, 0x50, 0x35, 0x5d, 0xc7, 0xae, + 0x6b, 0xb3, 0x12, 0xe1, 0xb3, 0x7c, 0xcc, 0xb2, 0x37, 0xb9, 0x72, 0x37, 0x77, 0x16, 0xb8, 0x6a, + 0x5f, 0x44, 0x44, 0x0f, 0x8a, 0x88, 0x07, 0x21, 0xd9, 0xd4, 0x5a, 0x2a, 0xb6, 0x3c, 0xa7, 0x43, + 0xfb, 0xb9, 0x84, 0x92, 0x68, 0x6a, 0xad, 0x12, 0xb9, 0xfe, 0xe8, 0xd6, 0x20, 0xe8, 0xc7, 0x7f, + 0x89, 0x42, 0x3a, 0xd8, 0xd3, 0x91, 0x16, 0x59, 0xa7, 0xf9, 0x5b, 0xa2, 0x3b, 0xfc, 0xe1, 0x43, + 0x3b, 0xc0, 0xe5, 0x15, 0x92, 0xd8, 0xf3, 0xe3, 0xac, 0xd3, 0x52, 0x18, 0x92, 0x14, 0x55, 0xb2, + 0xa7, 0x31, 0xeb, 0xdf, 0x13, 0x0a, 0xbf, 0x42, 0x6b, 0x30, 0x7e, 0xdd, 0xa5, 0xdc, 0xe3, 0x94, + 0xfb, 0x91, 0xc3, 0xb9, 0x2f, 0x6f, 0x52, 0xf2, 0xe4, 0xe5, 0x4d, 0x75, 0xa3, 0xaa, 0x54, 0x0a, + 0xeb, 0x0a, 0x87, 0xa3, 0x13, 0x10, 0x33, 0xb5, 0x97, 0x3a, 0xbd, 0x25, 0x80, 0x8a, 0x46, 0x75, + 0xfc, 0x09, 0x88, 0xdd, 0xc2, 0xda, 0x8d, 0xde, 0xc4, 0x4b, 0x45, 0x1f, 0x61, 0xe8, 0x9f, 0x82, + 0x38, 0xf5, 0x17, 0x02, 0xe0, 0x1e, 0x93, 0xc7, 0x50, 0x02, 0x62, 0x2b, 0x55, 0x85, 0x84, 0xbf, + 0x0c, 0x69, 0x26, 0x55, 0x6b, 0xe5, 0xd2, 0x4a, 0x49, 0x8e, 0x2c, 0x9e, 0x83, 0x71, 0xe6, 0x04, + 0xb2, 0x35, 0x7c, 0x37, 0xc8, 0x63, 0xfc, 0x92, 0x73, 0x48, 0x62, 0x74, 0xbb, 0x52, 0x2c, 0x29, + 0x72, 0x24, 0xb8, 0xbc, 0x2e, 0xa4, 0x83, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xfe, 0x5e, 0x82, 0x54, + 0xa0, 0x3d, 0x23, 0x8d, 0x81, 0x66, 0x9a, 0xf6, 0x2d, 0x55, 0x33, 0x0d, 0xcd, 0xe5, 0x41, 0x01, + 0x54, 0x54, 0x20, 0x92, 0x51, 0x17, 0xed, 0x67, 0x62, 0xfc, 0x6b, 0x12, 0xc8, 0xfd, 0xad, 0x5d, + 0x9f, 0x81, 0xd2, 0xcf, 0xd5, 0xc0, 0x57, 0x25, 0xc8, 0xf4, 0xf6, 0x73, 0x7d, 0xe6, 0x9d, 0xfc, + 0xb9, 0x9a, 0xf7, 0x76, 0x04, 0x26, 0x7b, 0xba, 0xb8, 0x51, 0xad, 0xfb, 0x1c, 0x4c, 0x1b, 0x75, + 0xdc, 0x6c, 0xd9, 0x1e, 0xb6, 0xf4, 0x8e, 0x6a, 0xe2, 0x9b, 0xd8, 0xcc, 0x2e, 0xd2, 0x44, 0x71, + 0xea, 0xf0, 0x3e, 0x71, 0xb9, 0xdc, 0xc5, 0xad, 0x13, 0x58, 0x7e, 0xa6, 0xbc, 0x5a, 0xaa, 0xd4, + 0xaa, 0x5b, 0xa5, 0x8d, 0x95, 0x6b, 0xea, 0xf6, 0xc6, 0xff, 0xdb, 0xa8, 0x5e, 0xd9, 0x50, 0x64, + 0xa3, 0x4f, 0xed, 0x23, 0xdc, 0xea, 0x35, 0x90, 0xfb, 0x8d, 0x42, 0xc7, 0x61, 0x98, 0x59, 0xf2, + 0x18, 0x9a, 0x81, 0xa9, 0x8d, 0xaa, 0xba, 0x59, 0x5e, 0x2d, 0xa9, 0xa5, 0x4b, 0x97, 0x4a, 0x2b, + 0x5b, 0x9b, 0xec, 0xc1, 0xd9, 0xd7, 0xde, 0xea, 0xdd, 0xd4, 0xaf, 0x44, 0x61, 0x66, 0x88, 0x25, + 0xa8, 0xc0, 0x7b, 0x76, 0xf6, 0x18, 0xf1, 0x89, 0x51, 0xac, 0x5f, 0x26, 0x5d, 0x41, 0x4d, 0x73, + 0x3c, 0xde, 0xe2, 0x3f, 0x01, 0xc4, 0x4b, 0x96, 0x67, 0xec, 0x1a, 0xd8, 0xe1, 0xe7, 0x0c, 0xac, + 0x91, 0x9f, 0xea, 0xca, 0xd9, 0x51, 0xc3, 0xc7, 0x01, 0xb5, 0x6c, 0xd7, 0xf0, 0x8c, 0x9b, 0x58, + 0x35, 0x2c, 0x71, 0x28, 0x41, 0x1a, 0xfb, 0x98, 0x22, 0x8b, 0x91, 0xb2, 0xe5, 0xf9, 0xda, 0x16, + 0x6e, 0x68, 0x7d, 0xda, 0x24, 0x81, 0x47, 0x15, 0x59, 0x8c, 0xf8, 0xda, 0x27, 0x21, 0x5d, 0xb7, + 0xdb, 0xa4, 0x4d, 0x62, 0x7a, 0xa4, 0x5e, 0x48, 0x4a, 0x8a, 0xc9, 0x7c, 0x15, 0xde, 0xc7, 0x76, + 0x4f, 0x43, 0xd2, 0x4a, 0x8a, 0xc9, 0x98, 0xca, 0xe3, 0x30, 0xa5, 0x35, 0x1a, 0x0e, 0x21, 0x17, + 0x44, 0xac, 0x33, 0xcf, 0xf8, 0x62, 0xaa, 0x38, 0x77, 0x19, 0x12, 0xc2, 0x0f, 0xa4, 0x24, 0x13, + 0x4f, 0xa8, 0x2d, 0x76, 0x26, 0x15, 0x59, 0x4a, 0x2a, 0x09, 0x4b, 0x0c, 0x9e, 0x84, 0xb4, 0xe1, + 0xaa, 0xdd, 0xc3, 0xd1, 0xc8, 0x42, 0x64, 0x29, 0xa1, 0xa4, 0x0c, 0xd7, 0x3f, 0x0d, 0x5b, 0x7c, + 0x3d, 0x02, 0x99, 0xde, 0xc3, 0x5d, 0xb4, 0x0a, 0x09, 0xd3, 0xd6, 0x35, 0x1a, 0x5a, 0xec, 0xcd, + 0xc2, 0x52, 0xc8, 0x79, 0xf0, 0xf2, 0x3a, 0xd7, 0x57, 0x7c, 0xe4, 0xdc, 0x3f, 0x49, 0x90, 0x10, + 0x62, 0x74, 0x0c, 0x62, 0x2d, 0xcd, 0xdb, 0xa3, 0x74, 0xf1, 0x62, 0x44, 0x96, 0x14, 0x7a, 0x4d, + 0xe4, 0x6e, 0x4b, 0xb3, 0x68, 0x08, 0x70, 0x39, 0xb9, 0x26, 0xeb, 0x6a, 0x62, 0xad, 0x4e, 0xdb, + 0x7e, 0xbb, 0xd9, 0xc4, 0x96, 0xe7, 0x8a, 0x75, 0xe5, 0xf2, 0x15, 0x2e, 0x46, 0x4f, 0xc1, 0xb4, + 0xe7, 0x68, 0x86, 0xd9, 0xa3, 0x1b, 0xa3, 0xba, 0xb2, 0x18, 0xf0, 0x95, 0xf3, 0x70, 0x42, 0xf0, + 0xd6, 0xb1, 0xa7, 0xe9, 0x7b, 0xb8, 0xde, 0x05, 0x8d, 0xd3, 0x93, 0xc3, 0xe3, 0x5c, 0x61, 0x95, + 0x8f, 0x0b, 0xec, 0xe2, 0x0f, 0x24, 0x98, 0x16, 0x0f, 0x2a, 0x75, 0xdf, 0x59, 0x15, 0x00, 0xcd, + 0xb2, 0x6c, 0x2f, 0xe8, 0xae, 0xc1, 0x50, 0x1e, 0xc0, 0x2d, 0x17, 0x7c, 0x90, 0x12, 0x20, 0x98, + 0x6b, 0x02, 0x74, 0x47, 0x0e, 0x74, 0xdb, 0x3c, 0xa4, 0xf8, 0xc9, 0x3d, 0x7d, 0xfd, 0xc3, 0x1e, + 0x6d, 0x81, 0x89, 0xc8, 0x13, 0x0d, 0x9a, 0x85, 0xf8, 0x0e, 0x6e, 0x18, 0x16, 0x3f, 0x4f, 0x64, + 0x17, 0xe2, 0x94, 0x32, 0xe6, 0x9f, 0x52, 0x16, 0xaf, 0xc2, 0x8c, 0x6e, 0x37, 0xfb, 0xcd, 0x2d, + 0xca, 0x7d, 0x8f, 0xd7, 0xee, 0xa7, 0xa5, 0x17, 0xa0, 0xdb, 0x62, 0x7e, 0x35, 0x12, 0x5d, 0xab, + 0x15, 0xbf, 0x1e, 0x99, 0x5b, 0x63, 0xb8, 0x9a, 0x98, 0xa6, 0x82, 0x77, 0x4d, 0xac, 0x13, 0xd3, + 0xe1, 0xc7, 0x8f, 0xc1, 0x27, 0x1a, 0x86, 0xb7, 0xd7, 0xde, 0x59, 0xd6, 0xed, 0xe6, 0xa9, 0x86, + 0xdd, 0xb0, 0xbb, 0xaf, 0xbb, 0xc8, 0x15, 0xbd, 0xa0, 0xbf, 0xf8, 0x2b, 0xaf, 0xa4, 0x2f, 0x9d, + 0x0b, 0x7d, 0x3f, 0x96, 0xdf, 0x80, 0x19, 0xae, 0xac, 0xd2, 0x33, 0x77, 0xf6, 0x68, 0x80, 0x0e, + 0x3d, 0x77, 0xc9, 0x7e, 0xeb, 0x1d, 0x5a, 0xab, 0x95, 0x69, 0x0e, 0x25, 0x63, 0xec, 0x01, 0x22, + 0xaf, 0xc0, 0x03, 0x3d, 0x7c, 0x6c, 0x5f, 0x62, 0x27, 0x84, 0xf1, 0x7b, 0x9c, 0x71, 0x26, 0xc0, + 0xb8, 0xc9, 0xa1, 0xf9, 0x15, 0x98, 0x3c, 0x0a, 0xd7, 0x3f, 0x70, 0xae, 0x34, 0x0e, 0x92, 0xac, + 0xc1, 0x14, 0x25, 0xd1, 0xdb, 0xae, 0x67, 0x37, 0x69, 0xd2, 0x3b, 0x9c, 0xe6, 0x1f, 0xdf, 0x61, + 0x1b, 0x25, 0x43, 0x60, 0x2b, 0x3e, 0x2a, 0x9f, 0x07, 0xfa, 0x9a, 0xa1, 0x8e, 0x75, 0x33, 0x84, + 0xe1, 0x4d, 0x6e, 0x88, 0xaf, 0x9f, 0xff, 0x2c, 0xcc, 0x92, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x09, + 0x3f, 0x65, 0xca, 0xfe, 0xe0, 0x65, 0xb6, 0x17, 0x67, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x55, 0x6c, + 0x60, 0xcf, 0xc3, 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf3, 0x02, 0x8f, 0xe9, 0xd9, 0x2f, 0xbf, 0xd7, + 0xbb, 0x8a, 0x6b, 0x0c, 0x59, 0x30, 0xcd, 0xfc, 0x36, 0x1c, 0x1f, 0x12, 0x15, 0x23, 0x70, 0xbe, + 0xc2, 0x39, 0x67, 0x07, 0x22, 0x83, 0xd0, 0xd6, 0x40, 0xc8, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0x0f, + 0x38, 0x27, 0xe2, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x32, 0x4c, 0xdf, 0xc4, 0xce, 0x8e, 0xed, 0xf2, + 0xa3, 0x91, 0x11, 0xe8, 0x5e, 0xe5, 0x74, 0x53, 0x1c, 0x48, 0xcf, 0x4a, 0x08, 0xd7, 0xb3, 0x90, + 0xd8, 0xd5, 0x74, 0x3c, 0x02, 0xc5, 0x57, 0x38, 0xc5, 0x04, 0xd1, 0x27, 0xd0, 0x02, 0xa4, 0x1b, + 0x36, 0x2f, 0x4b, 0xe1, 0xf0, 0xd7, 0x38, 0x3c, 0x25, 0x30, 0x9c, 0xa2, 0x65, 0xb7, 0xda, 0x26, + 0xa9, 0x59, 0xe1, 0x14, 0x7f, 0x28, 0x28, 0x04, 0x86, 0x53, 0x1c, 0xc1, 0xad, 0x7f, 0x24, 0x28, + 0xdc, 0x80, 0x3f, 0x9f, 0x87, 0x94, 0x6d, 0x99, 0x1d, 0xdb, 0x1a, 0xc5, 0x88, 0x3f, 0xe6, 0x0c, + 0xc0, 0x21, 0x84, 0xe0, 0x22, 0x24, 0x47, 0x5d, 0x88, 0x3f, 0x79, 0x4f, 0x6c, 0x0f, 0xb1, 0x02, + 0x6b, 0x30, 0x25, 0x12, 0x94, 0x61, 0x5b, 0x23, 0x50, 0xfc, 0x29, 0xa7, 0xc8, 0x04, 0x60, 0x7c, + 0x1a, 0x1e, 0x76, 0xbd, 0x06, 0x1e, 0x85, 0xe4, 0x75, 0x31, 0x0d, 0x0e, 0xe1, 0xae, 0xdc, 0xc1, + 0x96, 0xbe, 0x37, 0x1a, 0xc3, 0xd7, 0x84, 0x2b, 0x05, 0x86, 0x50, 0xac, 0xc0, 0x64, 0x53, 0x73, + 0xdc, 0x3d, 0xcd, 0x1c, 0x69, 0x39, 0xfe, 0x8c, 0x73, 0xa4, 0x7d, 0x10, 0xf7, 0x48, 0xdb, 0x3a, + 0x0a, 0xcd, 0xd7, 0x85, 0x47, 0x02, 0x30, 0xbe, 0xf5, 0x5c, 0x8f, 0x1e, 0x40, 0x1d, 0x85, 0xed, + 0x1b, 0x62, 0xeb, 0x31, 0x6c, 0x25, 0xc8, 0x78, 0x11, 0x92, 0xae, 0xf1, 0xd2, 0x48, 0x34, 0x7f, + 0x2e, 0x56, 0x9a, 0x02, 0x08, 0xf8, 0x1a, 0x9c, 0x18, 0x5a, 0x26, 0x46, 0x20, 0xfb, 0x0b, 0x4e, + 0x76, 0x6c, 0x48, 0xa9, 0xe0, 0x29, 0xe1, 0xa8, 0x94, 0x7f, 0x29, 0x52, 0x02, 0xee, 0xe3, 0xaa, + 0x91, 0x07, 0x05, 0x57, 0xdb, 0x3d, 0x9a, 0xd7, 0xfe, 0x4a, 0x78, 0x8d, 0x61, 0x7b, 0xbc, 0xb6, + 0x05, 0xc7, 0x38, 0xe3, 0xd1, 0xd6, 0xf5, 0x9b, 0x22, 0xb1, 0x32, 0xf4, 0x76, 0xef, 0xea, 0xfe, + 0x7f, 0x98, 0xf3, 0xdd, 0x29, 0x3a, 0x52, 0x57, 0x6d, 0x6a, 0xad, 0x11, 0x98, 0xbf, 0xc5, 0x99, + 0x45, 0xc6, 0xf7, 0x5b, 0x5a, 0xb7, 0xa2, 0xb5, 0x08, 0xf9, 0x55, 0xc8, 0x0a, 0xf2, 0xb6, 0xe5, + 0x60, 0xdd, 0x6e, 0x58, 0xc6, 0x4b, 0xb8, 0x3e, 0x02, 0xf5, 0x5f, 0xf7, 0x2d, 0xd5, 0x76, 0x00, + 0x4e, 0x98, 0xcb, 0x20, 0xfb, 0xbd, 0x8a, 0x6a, 0x34, 0x5b, 0xb6, 0xe3, 0x85, 0x30, 0xfe, 0x8d, + 0x58, 0x29, 0x1f, 0x57, 0xa6, 0xb0, 0x7c, 0x09, 0x32, 0xf4, 0x72, 0xd4, 0x90, 0xfc, 0x5b, 0x4e, + 0x34, 0xd9, 0x45, 0xf1, 0xc4, 0xa1, 0xdb, 0xcd, 0x96, 0xe6, 0x8c, 0x92, 0xff, 0xde, 0x10, 0x89, + 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x3a, 0x2d, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, 0xdf, 0x16, 0x89, 0x43, + 0x60, 0x38, 0x85, 0x68, 0x18, 0x46, 0xa0, 0xf8, 0x3b, 0x41, 0x21, 0x30, 0x84, 0xe2, 0x33, 0xdd, + 0x42, 0xeb, 0xe0, 0x86, 0xe1, 0x7a, 0x0e, 0xeb, 0x83, 0x0f, 0xa7, 0xfa, 0xce, 0x7b, 0xbd, 0x4d, + 0x98, 0x12, 0x80, 0xe6, 0x2f, 0xc3, 0x54, 0x5f, 0x8b, 0x81, 0xc2, 0xbe, 0x59, 0xc8, 0xfe, 0xe2, + 0x07, 0x3c, 0x19, 0xf5, 0x76, 0x18, 0xf9, 0x75, 0xb2, 0xee, 0xbd, 0x7d, 0x40, 0x38, 0xd9, 0xcb, + 0x1f, 0xf8, 0x4b, 0xdf, 0xd3, 0x06, 0xe4, 0x2f, 0xc1, 0x64, 0x4f, 0x0f, 0x10, 0x4e, 0xf5, 0x4b, + 0x9c, 0x2a, 0x1d, 0x6c, 0x01, 0xf2, 0xe7, 0x20, 0x46, 0xea, 0x79, 0x38, 0xfc, 0x97, 0x39, 0x9c, + 0xaa, 0xe7, 0x3f, 0x05, 0x09, 0x51, 0xc7, 0xc3, 0xa1, 0xbf, 0xc2, 0xa1, 0x3e, 0x84, 0xc0, 0x45, + 0x0d, 0x0f, 0x87, 0x7f, 0x41, 0xc0, 0x05, 0x84, 0xc0, 0x47, 0x77, 0xe1, 0x77, 0x7f, 0x2d, 0xc6, + 0xf3, 0xb0, 0xf0, 0xdd, 0x45, 0x98, 0xe0, 0xc5, 0x3b, 0x1c, 0xfd, 0x45, 0x7e, 0x73, 0x81, 0xc8, + 0x3f, 0x03, 0xf1, 0x11, 0x1d, 0xfe, 0xeb, 0x1c, 0xca, 0xf4, 0xf3, 0x2b, 0x90, 0x0a, 0x14, 0xec, + 0x70, 0xf8, 0x6f, 0x70, 0x78, 0x10, 0x45, 0x4c, 0xe7, 0x05, 0x3b, 0x9c, 0xe0, 0x37, 0x85, 0xe9, + 0x1c, 0x41, 0xdc, 0x26, 0x6a, 0x75, 0x38, 0xfa, 0xb7, 0x84, 0xd7, 0x05, 0x24, 0xff, 0x3c, 0x24, + 0xfd, 0xfc, 0x1b, 0x8e, 0xff, 0x6d, 0x8e, 0xef, 0x62, 0x88, 0x07, 0x02, 0xf9, 0x3f, 0x9c, 0xe2, + 0x77, 0x84, 0x07, 0x02, 0x28, 0xb2, 0x8d, 0xfa, 0x6b, 0x7a, 0x38, 0xd3, 0xef, 0x8a, 0x6d, 0xd4, + 0x57, 0xd2, 0xc9, 0x6a, 0xd2, 0x34, 0x18, 0x4e, 0xf1, 0x7b, 0x62, 0x35, 0xa9, 0x3e, 0x31, 0xa3, + 0xbf, 0x48, 0x86, 0x73, 0xfc, 0xbe, 0x30, 0xa3, 0xaf, 0x46, 0xe6, 0x6b, 0x80, 0x06, 0x0b, 0x64, + 0x38, 0xdf, 0x97, 0x38, 0xdf, 0xf4, 0x40, 0x7d, 0xcc, 0x5f, 0x81, 0x63, 0xc3, 0x8b, 0x63, 0x38, + 0xeb, 0x97, 0x3f, 0xe8, 0x7b, 0x9c, 0x09, 0xd6, 0xc6, 0xfc, 0x56, 0x37, 0xcb, 0x06, 0x0b, 0x63, + 0x38, 0xed, 0x2b, 0x1f, 0xf4, 0x26, 0xda, 0x60, 0x5d, 0xcc, 0x17, 0x00, 0xba, 0x35, 0x29, 0x9c, + 0xeb, 0x55, 0xce, 0x15, 0x00, 0x91, 0xad, 0xc1, 0x4b, 0x52, 0x38, 0xfe, 0x2b, 0x62, 0x6b, 0x70, + 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x85, 0xa3, 0x5f, 0x13, 0x5b, 0x43, 0x40, 0xf2, 0x17, 0x21, 0x61, + 0xb5, 0x4d, 0x93, 0xc4, 0x16, 0x3a, 0xfc, 0x33, 0xa2, 0xec, 0x8f, 0x3e, 0xe4, 0x60, 0x01, 0xc8, + 0x9f, 0x83, 0x38, 0x6e, 0xee, 0xe0, 0x7a, 0x18, 0xf2, 0xdf, 0x3e, 0x14, 0xf9, 0x84, 0x68, 0xe7, + 0x9f, 0x07, 0x60, 0x0f, 0xd3, 0xf4, 0x2d, 0x51, 0x08, 0xf6, 0xdf, 0x3f, 0xe4, 0x5f, 0x28, 0x74, + 0x21, 0x5d, 0x02, 0xf6, 0xbd, 0xc3, 0xe1, 0x04, 0xef, 0xf5, 0x12, 0xd0, 0x07, 0xf0, 0x67, 0x61, + 0xe2, 0xba, 0x6b, 0x5b, 0x9e, 0xd6, 0x08, 0x43, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0xa6, + 0xed, 0x60, 0x4f, 0x6b, 0xb8, 0x61, 0xd8, 0xff, 0xe4, 0x58, 0x1f, 0x40, 0xc0, 0xba, 0xe6, 0x7a, + 0xa3, 0xcc, 0xfb, 0xbf, 0x04, 0x58, 0x00, 0x88, 0xd1, 0xe4, 0xf7, 0x0d, 0xdc, 0x09, 0xc3, 0xbe, + 0x2f, 0x8c, 0xe6, 0xfa, 0xf9, 0x4f, 0x41, 0x92, 0xfc, 0x64, 0x5f, 0xed, 0x84, 0x80, 0xff, 0x9b, + 0x83, 0xbb, 0x08, 0x72, 0x67, 0xd7, 0xab, 0x7b, 0x46, 0xb8, 0xb3, 0xff, 0x87, 0xaf, 0xb4, 0xd0, + 0xcf, 0x17, 0x20, 0xe5, 0x7a, 0xf5, 0x7a, 0x9b, 0x77, 0x34, 0x21, 0xf0, 0x1f, 0x7f, 0xe8, 0x3f, + 0xe4, 0xfa, 0x98, 0xe2, 0xc9, 0xe1, 0x87, 0x75, 0xb0, 0x66, 0xaf, 0xd9, 0xec, 0x98, 0x0e, 0xde, + 0x98, 0x82, 0x05, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0x29, 0x96, 0x50, 0x76, 0x6c, 0x6f, 0xef, 0x94, + 0xf0, 0x1c, 0x3f, 0x68, 0xf3, 0x3d, 0x39, 0x77, 0xb4, 0x13, 0xba, 0xc5, 0x1f, 0x4d, 0x42, 0x62, + 0x45, 0x73, 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x8f, 0x42, 0xa2, 0x6c, 0x79, 0x67, 0x4e, 0xd7, 0x3c, + 0x87, 0xbe, 0x61, 0x8a, 0x16, 0x93, 0xf7, 0xee, 0xcc, 0xc7, 0x0d, 0x22, 0x53, 0xfc, 0x21, 0xf4, + 0x30, 0xc4, 0xe9, 0x6f, 0x7a, 0x48, 0x19, 0x2d, 0x4e, 0xbe, 0x79, 0x67, 0x7e, 0xac, 0xab, 0xc7, + 0xc6, 0xd0, 0x35, 0x48, 0x55, 0x3a, 0xdb, 0x86, 0xe5, 0x9d, 0x3f, 0x4b, 0xe8, 0xc8, 0xdc, 0x63, + 0xc5, 0x67, 0xee, 0xdd, 0x99, 0x3f, 0x73, 0xa0, 0x81, 0xa4, 0x22, 0x76, 0x27, 0x26, 0xd0, 0xf4, + 0xc3, 0xc5, 0x20, 0x17, 0xba, 0x02, 0x09, 0x71, 0xc9, 0x0e, 0xfb, 0x8b, 0x17, 0xb9, 0x09, 0xf7, + 0xc5, 0xed, 0x93, 0xa1, 0x5f, 0x80, 0x74, 0xa5, 0x73, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xf8, 0x82, + 0xb4, 0x14, 0x29, 0x5e, 0xb8, 0x77, 0x67, 0xfe, 0xec, 0xc8, 0xc4, 0x1c, 0x4e, 0x99, 0x7b, 0xd8, + 0xd0, 0x0b, 0x90, 0xf4, 0xaf, 0xe9, 0xeb, 0x84, 0x48, 0xf1, 0x93, 0xdc, 0xee, 0xfb, 0xa3, 0xef, + 0xd2, 0x05, 0x2c, 0x67, 0xee, 0x9e, 0x58, 0x90, 0x96, 0xa4, 0xfb, 0xb1, 0x9c, 0xfb, 0xa4, 0x87, + 0x2d, 0x60, 0xf9, 0xf9, 0xb3, 0xf4, 0xfd, 0x85, 0x74, 0xbf, 0x96, 0x73, 0xfa, 0x2e, 0x1d, 0xba, + 0x0c, 0x13, 0x95, 0x4e, 0xb1, 0xe3, 0x61, 0x97, 0x7e, 0xd0, 0x93, 0x2e, 0x3e, 0x7d, 0xef, 0xce, + 0xfc, 0xc7, 0x47, 0x64, 0xa5, 0x38, 0x45, 0x10, 0xa0, 0x05, 0x48, 0x6d, 0xd8, 0x4e, 0x53, 0x33, + 0x19, 0x1f, 0xb0, 0xf7, 0x31, 0x01, 0x11, 0xda, 0x26, 0x33, 0x61, 0xab, 0xed, 0xd2, 0x7f, 0x45, + 0xf8, 0x29, 0x62, 0xb2, 0xcb, 0x84, 0x0c, 0x88, 0x57, 0x3a, 0x15, 0xad, 0x95, 0x4d, 0xd3, 0x97, + 0x05, 0x0f, 0x2d, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xaa, 0xa2, 0x78, 0xf6, 0xde, + 0x9d, 0xf9, 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x37, 0x24, 0xb2, + 0xb1, 0xd8, 0x81, 0x2b, 0xb9, 0xe3, 0x24, 0xbd, 0xe3, 0xc3, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, + 0x5a, 0x9f, 0x7f, 0xeb, 0x08, 0x33, 0x65, 0x0f, 0x35, 0xe4, 0xd6, 0xbf, 0xfa, 0xd6, 0x7d, 0x6f, + 0x5a, 0xdf, 0x02, 0xf4, 0xb2, 0x04, 0x93, 0x95, 0xce, 0x06, 0x2f, 0xaf, 0xc4, 0xf2, 0x0c, 0xff, + 0x60, 0x7d, 0x98, 0xe5, 0x01, 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbf, 0x35, 0x7f, 0x7a, 0x64, 0x23, + 0x68, 0x0a, 0xa2, 0x36, 0xf4, 0xde, 0x13, 0x7d, 0x81, 0x5a, 0x51, 0x22, 0xa5, 0xba, 0x8e, 0xeb, + 0xc4, 0x8a, 0xa9, 0x43, 0xac, 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, + 0x1f, 0xaa, 0xc2, 0x38, 0xf3, 0x30, 0xfd, 0x98, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, + 0x69, 0xe6, 0x2e, 0x00, 0x74, 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0x8b, 0x41, 0xf2, + 0x13, 0xcd, 0x76, 0xbf, 0x88, 0x95, 0x96, 0x62, 0xfc, 0x33, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, + 0x1c, 0xc8, 0xfd, 0xb1, 0x72, 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, + 0x58, 0x90, 0x21, 0x75, 0x5a, 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, + 0xff, 0x9f, 0x8e, 0x73, 0x31, 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, + 0x85, 0x5d, 0x14, 0xd7, 0xdf, 0xbc, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0x3f, 0xdf, 0xcd, + 0x8d, 0xbd, 0x7d, 0x37, 0x27, 0xbd, 0x7b, 0x37, 0x27, 0xbd, 0x7f, 0x37, 0x27, 0xfd, 0xe4, 0x6e, + 0x4e, 0xba, 0xbd, 0x9f, 0x93, 0xbe, 0xb6, 0x9f, 0x93, 0xbe, 0xb9, 0x9f, 0x93, 0xbe, 0xb3, 0x9f, + 0x93, 0xbe, 0xbb, 0x9f, 0x93, 0xde, 0xdc, 0xcf, 0x8d, 0x7d, 0x7f, 0x3f, 0x37, 0xf6, 0xf6, 0x7e, + 0x4e, 0x7a, 0x77, 0x3f, 0x37, 0xf6, 0xfe, 0x7e, 0x4e, 0xfa, 0xc9, 0x7e, 0x4e, 0xba, 0xfd, 0xc3, + 0x9c, 0xf4, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x47, 0x86, 0x16, 0x42, 0x14, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -465,6 +485,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -591,6 +620,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -692,6 +730,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -762,6 +801,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -779,6 +822,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -809,7 +853,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -888,6 +932,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -917,23 +964,6 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -1025,8 +1055,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1034,11 +1068,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1065,14 +1099,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1080,43 +1114,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1173,8 +1207,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1187,6 +1222,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1278,6 +1317,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1302,210 +1342,225 @@ func valueToStringCasttype(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int32Ptr != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int32Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(m.Int32)) + i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) if m.MyUint64Ptr != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintCasttype(data, i, uint64(*m.MyUint64Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) } - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintCasttype(data, i, uint64(m.MyUint64)) + i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) if m.MyFloat32Ptr != nil { - data[i] = 0x2d + dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) } - data[i] = 0x35 + dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) if m.MyFloat64Ptr != nil { - data[i] = 0x39 + dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) } - data[i] = 0x41 + dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) if m.MyBytes != nil { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintCasttype(data, i, uint64(len(m.MyBytes))) - i += copy(data[i:], m.MyBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) + i += copy(dAtA[i:], m.MyBytes) } if m.NormalBytes != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintCasttype(data, i, uint64(len(m.NormalBytes))) - i += copy(data[i:], m.NormalBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) + i += copy(dAtA[i:], m.NormalBytes) } if len(m.MyUint64S) > 0 { for _, num := range m.MyUint64S { - data[i] = 0x58 + dAtA[i] = 0x58 i++ - i = encodeVarintCasttype(data, i, uint64(num)) + i = encodeVarintCasttype(dAtA, i, uint64(num)) } } if len(m.MyMap) > 0 { for k := range m.MyMap { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.MyMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyCustomMap) > 0 { for k := range m.MyCustomMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.MyCustomMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyNullableMap) > 0 { for k := range m.MyNullableMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.MyNullableMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintCasttype(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCasttype(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 } - i += n1 } } if len(m.MyEmbeddedMap) > 0 { for k := range m.MyEmbeddedMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.MyEmbeddedMap[k] - msgSize := (&v).Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) + } + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCasttype(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCasttype(data, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(data[i:]) + i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) + n2, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } } + if m.String_ != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) + } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int64)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Casttype(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Casttype(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Casttype(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Casttype(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCasttype(data []byte, offset int, v uint64) int { +func encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1517,7 +1572,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1545,7 +1600,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1565,7 +1620,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int32 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1584,7 +1639,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1604,7 +1659,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1620,10 +1675,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1635,10 +1690,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1649,14 +1704,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1668,14 +1723,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1689,7 +1744,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1703,7 +1758,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MyBytes = append(m.MyBytes[:0], data[iNdEx:postIndex]...) + m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) if m.MyBytes == nil { m.MyBytes = []byte{} } @@ -1720,7 +1775,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1734,31 +1789,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NormalBytes = append(m.NormalBytes[:0], data[iNdEx:postIndex]...) + m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) if m.NormalBytes == nil { m.NormalBytes = []byte{} } iNdEx = postIndex case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if wireType == 0 { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.MyUint64S = append(m.MyUint64S, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MyUint64S = append(m.MyUint64S, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) } - m.MyUint64S = append(m.MyUint64S, v) case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) @@ -1771,7 +1868,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1793,7 +1890,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1808,7 +1905,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1823,42 +1920,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyMap == nil { + m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyMap[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.MyMap[mapkey] = mapvalue } - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1872,7 +1974,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1894,7 +1996,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1909,7 +2011,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1924,42 +2026,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(data[iNdEx:postStringIndexmapkey]) + mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyCustomMap == nil { + m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -1973,7 +2080,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1995,7 +2102,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2010,62 +2117,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if m.MyNullableMap == nil { + m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } else { + var mapvalue *Wilson + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -2079,7 +2191,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2101,7 +2213,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2116,29 +2228,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if m.MyEmbeddedMap == nil { + m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + } else { + var mapvalue Wilson + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) } - var mapmsglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttypeUnsafe @@ -2146,36 +2302,27 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCasttypeUnsafe } - if postmsgIndex > l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) + m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(data[iNdEx:]) + skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2185,7 +2332,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2195,8 +2342,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2208,7 +2355,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2236,7 +2383,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2246,7 +2393,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(data[iNdEx:]) + skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2256,7 +2403,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2266,8 +2413,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCasttypeUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipCasttypeUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2278,7 +2425,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2296,7 +2443,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2313,7 +2460,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2336,7 +2483,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2347,7 +2494,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCasttypeUnsafe(data[start:]) + next, err := skipCasttypeUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -2371,48 +2518,52 @@ var ( ErrIntOverflowCasttypeUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 672 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xcd, 0x4f, 0xd4, 0x4e, - 0x18, 0xc7, 0x29, 0x4b, 0xa1, 0x9d, 0xee, 0xfe, 0x7e, 0x64, 0xe2, 0xa1, 0x21, 0x71, 0xd9, 0x40, - 0x30, 0x1e, 0x74, 0x97, 0x2c, 0x1b, 0x24, 0x68, 0x3c, 0x94, 0x60, 0x82, 0xb1, 0xc4, 0x54, 0x09, - 0xd1, 0x78, 0x69, 0xa1, 0x2c, 0x8d, 0x7d, 0xd9, 0x6c, 0xa7, 0x9a, 0xde, 0x88, 0x1e, 0x4c, 0xfc, - 0x0b, 0xfc, 0x13, 0x3c, 0x7a, 0x31, 0xf1, 0xe8, 0x71, 0x8f, 0x1e, 0x3d, 0xf1, 0xe6, 0x85, 0x23, - 0x47, 0xe2, 0xc9, 0x67, 0x66, 0xfa, 0x16, 0x40, 0xb3, 0x94, 0xc3, 0x93, 0x79, 0x7b, 0x9e, 0xcf, - 0xf3, 0x9d, 0xa7, 0x33, 0x53, 0xd4, 0xd8, 0x0a, 0x3c, 0x2b, 0x08, 0x5b, 0x91, 0x1f, 0x9a, 0x3b, - 0xb6, 0x15, 0x90, 0xdd, 0xd6, 0x96, 0x19, 0x12, 0x12, 0xf7, 0xec, 0x66, 0xaf, 0x1f, 0x90, 0x00, - 0x4b, 0xe9, 0x78, 0xea, 0x6e, 0xd7, 0x21, 0xbb, 0x91, 0xd5, 0x84, 0x90, 0x56, 0x37, 0xe8, 0x06, - 0x2d, 0xe6, 0x60, 0x45, 0x3b, 0x6c, 0xc4, 0x06, 0xac, 0xc7, 0x03, 0x67, 0x3e, 0xd5, 0x90, 0xb4, - 0x02, 0xb1, 0xe6, 0x5b, 0x33, 0xc6, 0x73, 0x48, 0x5a, 0xf3, 0xc9, 0x42, 0xfb, 0x29, 0xe9, 0xab, - 0x42, 0x43, 0xb8, 0x5d, 0xd1, 0xe4, 0xdf, 0xfb, 0xd3, 0xa2, 0x43, 0xe7, 0x0c, 0xc9, 0x49, 0x96, - 0xf0, 0x2c, 0x12, 0x99, 0x9b, 0x3a, 0xca, 0x7c, 0x6a, 0x83, 0xfd, 0xe9, 0x91, 0xdc, 0x8f, 0x37, - 0xf8, 0x05, 0x52, 0xf4, 0x78, 0x03, 0xfa, 0x8b, 0x1d, 0x8a, 0xab, 0x80, 0xeb, 0x98, 0x76, 0x0f, - 0xdc, 0x16, 0xfe, 0x2a, 0x90, 0xd8, 0x21, 0xc9, 0x37, 0x96, 0x46, 0x3f, 0x87, 0x81, 0xa1, 0x78, - 0x39, 0x0b, 0x6f, 0x22, 0x29, 0x5d, 0x54, 0xc7, 0x18, 0xf7, 0x7e, 0x22, 0xa1, 0x14, 0x5b, 0x4a, - 0xd9, 0xf8, 0x15, 0xaa, 0xea, 0xf1, 0x23, 0x37, 0x30, 0x93, 0x1a, 0x88, 0x00, 0x1f, 0xd5, 0x96, - 0x00, 0xdc, 0x19, 0x1a, 0x9c, 0x84, 0x33, 0x72, 0xd5, 0x2b, 0xd0, 0xf0, 0x4b, 0x24, 0x67, 0xcb, - 0xea, 0x38, 0x43, 0x3f, 0x48, 0x74, 0x97, 0xc3, 0xcb, 0x19, 0xbe, 0xa0, 0x9c, 0x97, 0x7b, 0x02, - 0xf0, 0x42, 0x19, 0xe5, 0x49, 0x4d, 0x52, 0xe5, 0xbc, 0xe0, 0xb9, 0x72, 0xa8, 0xb8, 0xc4, 0xd0, - 0x25, 0x95, 0x27, 0x78, 0x39, 0xc3, 0xe3, 0xc7, 0x68, 0x42, 0x8f, 0xb5, 0x18, 0xbc, 0x55, 0x19, - 0xc8, 0x55, 0x6d, 0x1e, 0xa8, 0x77, 0x86, 0xa4, 0xb2, 0x38, 0x63, 0xc2, 0xe3, 0x00, 0xdc, 0x40, - 0xca, 0x7a, 0xd0, 0xf7, 0x4c, 0x97, 0xf3, 0x10, 0xe5, 0x19, 0x8a, 0x9f, 0x4f, 0xe1, 0x0d, 0xba, - 0x13, 0xfe, 0xb5, 0x43, 0x55, 0x69, 0x54, 0xae, 0x73, 0x26, 0xe5, 0xf4, 0xdc, 0x84, 0xd8, 0x41, - 0xa2, 0x1e, 0xeb, 0x66, 0x4f, 0xad, 0x02, 0x52, 0x69, 0xdf, 0x6c, 0x66, 0x11, 0xe9, 0xdd, 0x6a, - 0xb2, 0xf5, 0x55, 0x9f, 0xf4, 0x63, 0xad, 0x03, 0x19, 0xe7, 0x87, 0xce, 0x08, 0x61, 0x2c, 0x9d, - 0xe8, 0xd1, 0x2e, 0xfe, 0x2a, 0xd0, 0x8b, 0xb5, 0x12, 0x85, 0x24, 0xf0, 0x68, 0xc6, 0x1a, 0xcb, - 0x38, 0x7b, 0x69, 0xc6, 0xcc, 0x8b, 0xe7, 0xf5, 0xdf, 0x1d, 0x5c, 0x61, 0xa7, 0xcf, 0x48, 0xdf, - 0xf1, 0xbb, 0x34, 0xf5, 0xc7, 0x83, 0xd2, 0x97, 0x36, 0x53, 0x80, 0xdf, 0x0b, 0xa8, 0xa6, 0xc7, - 0xeb, 0x91, 0xeb, 0x9a, 0x96, 0x6b, 0x53, 0xe5, 0xff, 0x31, 0xe5, 0x73, 0x97, 0x2a, 0x2f, 0xf8, - 0x71, 0xed, 0x8b, 0xa0, 0xbd, 0x3d, 0xb4, 0x08, 0xf6, 0x3c, 0x31, 0x0d, 0x35, 0xaf, 0xc8, 0xc2, - 0x1f, 0x98, 0x8a, 0x55, 0xcf, 0xb2, 0xb7, 0xb7, 0xed, 0x6d, 0xaa, 0xe2, 0xff, 0x7f, 0xa8, 0x28, - 0xf8, 0x71, 0x15, 0xcb, 0xf4, 0xd4, 0x97, 0x57, 0x52, 0xe0, 0x4d, 0x2d, 0x21, 0x94, 0x1f, 0x09, - 0x3c, 0x89, 0x2a, 0xaf, 0xed, 0x98, 0x3d, 0xba, 0xb2, 0x41, 0xbb, 0xf8, 0x06, 0x12, 0xdf, 0x98, - 0x6e, 0x64, 0xb3, 0x47, 0x76, 0xcc, 0xe0, 0x83, 0xe5, 0xd1, 0x25, 0x61, 0xea, 0x21, 0x9a, 0x3c, - 0xff, 0x69, 0xaf, 0x14, 0x6f, 0x20, 0x7c, 0xb1, 0xc0, 0x45, 0x82, 0xc8, 0x09, 0xb7, 0x8a, 0x04, - 0xa5, 0x3d, 0x99, 0x97, 0x68, 0xd3, 0x71, 0xc3, 0xc0, 0xbf, 0xc0, 0x3c, 0x5f, 0xae, 0xeb, 0x31, - 0x67, 0xea, 0x68, 0x9c, 0x4f, 0xd2, 0xbd, 0xac, 0xb1, 0xd7, 0x9e, 0xfd, 0x94, 0xd8, 0x1f, 0x66, - 0xb1, 0xa3, 0x3d, 0x19, 0x1c, 0xd5, 0x47, 0x7e, 0x80, 0xfd, 0x04, 0x3b, 0x3c, 0xaa, 0x0b, 0x27, - 0x60, 0xa7, 0x60, 0x67, 0x60, 0x7b, 0xc7, 0x75, 0xe1, 0x33, 0xd8, 0x17, 0xb0, 0x6f, 0x60, 0xdf, - 0xc1, 0x06, 0xc7, 0xe0, 0x0f, 0x76, 0x08, 0xfd, 0x13, 0x68, 0x4f, 0xa1, 0x3d, 0x03, 0xdb, 0xfb, - 0x55, 0x17, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0xe1, 0xc4, 0xb4, 0x9d, 0x64, 0x07, 0x00, 0x00, + // 697 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xfd, 0x9a, 0xa6, 0x4d, 0x2e, 0x0d, 0x44, 0x27, 0x06, 0xab, 0x12, 0x67, 0xab, 0x55, + 0x91, 0x07, 0x48, 0xaa, 0x34, 0x2a, 0x55, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x0b, 0x32, 0x54, + 0x15, 0x88, 0xc5, 0x69, 0xdd, 0x34, 0xc2, 0xb1, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01, 0x89, + 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a, 0x56, + 0x99, 0x90, 0xef, 0x9c, 0xd8, 0xfd, 0x01, 0x4a, 0xdd, 0xed, 0xde, 0xdd, 0x7b, 0x9f, 0xf7, 0xbd, + 0x77, 0xef, 0xee, 0x90, 0xbc, 0xe5, 0xb4, 0xea, 0x8e, 0x5b, 0xe9, 0xda, 0xae, 0xb1, 0x63, 0xd6, + 0x1d, 0xba, 0x5b, 0xd9, 0x32, 0x5c, 0x4a, 0xbd, 0xb6, 0x59, 0x6e, 0x77, 0x1c, 0xea, 0xe0, 0xdc, + 0xc0, 0x9e, 0x7e, 0xd0, 0x68, 0xd2, 0xdd, 0x6e, 0xbd, 0xbc, 0xe5, 0xb4, 0x2a, 0x0d, 0xa7, 0xe1, + 0x54, 0x98, 0x43, 0xbd, 0xbb, 0xc3, 0x2c, 0x66, 0xb0, 0x11, 0x0f, 0x9c, 0xf9, 0x53, 0x44, 0xb9, + 0x15, 0xc3, 0xa5, 0xc6, 0x47, 0xc3, 0xc3, 0x73, 0x28, 0xb7, 0x66, 0xd3, 0x85, 0xea, 0x4b, 0xda, + 0x11, 0x41, 0x06, 0x25, 0xa3, 0xe6, 0xfb, 0x3d, 0x29, 0xdb, 0x0c, 0xe7, 0xf4, 0xe1, 0x12, 0x9e, + 0x45, 0x59, 0x36, 0x16, 0xc7, 0x98, 0x4f, 0xf1, 0xa0, 0x27, 0x09, 0xb1, 0x1f, 0x5f, 0xc3, 0x6f, + 0x50, 0x41, 0xf3, 0x36, 0x9a, 0x36, 0x5d, 0xac, 0x85, 0xb8, 0x8c, 0x0c, 0xca, 0xb8, 0xfa, 0xb0, + 0xdf, 0x93, 0x16, 0xfe, 0x29, 0x90, 0x9a, 0x2e, 0x8d, 0x37, 0x36, 0x88, 0x7e, 0xed, 0xb5, 0x4d, + 0x3d, 0xc9, 0xc2, 0x9b, 0x28, 0x37, 0x30, 0xc5, 0x71, 0xc6, 0x7d, 0x14, 0x49, 0x48, 0xc5, 0x1e, + 0xc2, 0xf0, 0x3b, 0x34, 0xa5, 0x79, 0x4f, 0x2d, 0xc7, 0x88, 0x6a, 0x90, 0x95, 0x41, 0x19, 0x53, + 0x97, 0xfa, 0x3d, 0xa9, 0x36, 0x32, 0x38, 0x0a, 0x67, 0xe4, 0x73, 0x34, 0xfc, 0x16, 0xe5, 0x87, + 0xb6, 0x38, 0xc1, 0xd0, 0x8f, 0x23, 0xdd, 0xe9, 0xf0, 0x31, 0x2e, 0xa1, 0x9c, 0x97, 0x7b, 0x52, + 0x06, 0x05, 0xd2, 0x28, 0x8f, 0x6a, 0x72, 0x8e, 0x96, 0x50, 0xbe, 0x58, 0x13, 0x73, 0x0c, 0x9d, + 0x52, 0x79, 0x84, 0x8f, 0x71, 0xf8, 0x19, 0x9a, 0xd4, 0x3c, 0xd5, 0xa3, 0xa6, 0x2b, 0xe6, 0x65, + 0x50, 0xa6, 0xd4, 0xf9, 0x7e, 0x4f, 0xba, 0x3f, 0x22, 0x95, 0xc5, 0xe9, 0x03, 0x00, 0x96, 0x51, + 0x61, 0xdd, 0xe9, 0xb4, 0x0c, 0x8b, 0xf3, 0x50, 0xc8, 0xd3, 0x93, 0x53, 0x78, 0x23, 0xdc, 0x09, + 0x3f, 0x6d, 0x57, 0x2c, 0xc8, 0x99, 0x9b, 0xf4, 0x64, 0x4c, 0xc2, 0x4d, 0x94, 0xd5, 0x3c, 0xcd, + 0x68, 0x8b, 0x53, 0x72, 0x46, 0x29, 0x54, 0xef, 0x96, 0x87, 0x11, 0x83, 0xbb, 0x55, 0x66, 0xeb, + 0xab, 0x36, 0xed, 0x78, 0x6a, 0xad, 0xdf, 0x93, 0xe6, 0x47, 0xce, 0xa8, 0x19, 0x6d, 0x96, 0x8e, + 0x67, 0xc0, 0xdf, 0x21, 0xbc, 0x58, 0x2b, 0x5d, 0x97, 0x3a, 0xad, 0x30, 0x63, 0x91, 0x65, 0x9c, + 0xbd, 0x32, 0xe3, 0xd0, 0x8b, 0xe7, 0xb5, 0xf7, 0x8f, 0xae, 0xb1, 0xd3, 0x57, 0xb4, 0xd3, 0xb4, + 0x1b, 0x61, 0xea, 0x2f, 0x47, 0xa9, 0x2f, 0xed, 0x50, 0x01, 0xfe, 0x04, 0xa8, 0xa8, 0x79, 0xeb, + 0x5d, 0xcb, 0x32, 0xea, 0x96, 0x19, 0x2a, 0xbf, 0xc5, 0x94, 0xcf, 0x5d, 0xa9, 0x3c, 0xe1, 0xc7, + 0xb5, 0x2f, 0xee, 0x1f, 0x49, 0xd5, 0x91, 0x45, 0xb0, 0x27, 0x88, 0x69, 0x38, 0x9f, 0x13, 0x7f, + 0x66, 0x2a, 0x56, 0x5b, 0x75, 0x73, 0x7b, 0xdb, 0xdc, 0x0e, 0x55, 0xdc, 0xfe, 0x8f, 0x8a, 0x84, + 0x1f, 0x57, 0xb1, 0x1c, 0x76, 0x7d, 0x7a, 0x25, 0x09, 0x1e, 0x7e, 0x81, 0x26, 0x78, 0x85, 0xc5, + 0x92, 0x0c, 0x4a, 0xfe, 0x9a, 0x6d, 0x18, 0x1f, 0x8e, 0x1e, 0x61, 0xa6, 0x97, 0x10, 0x8a, 0x7b, + 0x0c, 0x97, 0x50, 0xe6, 0xbd, 0xe9, 0xb1, 0x57, 0x3c, 0xaf, 0x87, 0x43, 0x7c, 0x07, 0x65, 0x3f, + 0x18, 0x56, 0xd7, 0x64, 0xaf, 0xf6, 0xb8, 0xce, 0x8d, 0xe5, 0xb1, 0x25, 0x98, 0x7e, 0x82, 0x4a, + 0x17, 0x7b, 0xe5, 0x5a, 0xf1, 0x3a, 0xc2, 0x97, 0x4f, 0x2c, 0x49, 0xc8, 0x72, 0xc2, 0xbd, 0x24, + 0xa1, 0x50, 0x2d, 0xc5, 0x35, 0xdf, 0x6c, 0x5a, 0xae, 0x63, 0x5f, 0x62, 0x5e, 0xac, 0xff, 0xcd, + 0x98, 0x33, 0x04, 0x4d, 0xf0, 0xc9, 0x70, 0x2f, 0x6b, 0xec, 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, + 0xf5, 0xf9, 0x81, 0x4f, 0x84, 0x43, 0x9f, 0x08, 0xbf, 0x7c, 0x22, 0x1c, 0xfb, 0x04, 0x4e, 0x7c, + 0x02, 0xa7, 0x3e, 0x81, 0x33, 0x9f, 0xc0, 0x5e, 0x40, 0xe0, 0x6b, 0x40, 0xe0, 0x5b, 0x40, 0xe0, + 0x47, 0x40, 0xe0, 0x67, 0x40, 0xe0, 0x20, 0x20, 0xc2, 0x61, 0x40, 0x84, 0xe3, 0x80, 0xc0, 0x49, + 0x40, 0x84, 0xd3, 0x80, 0xc0, 0x59, 0x40, 0x60, 0xef, 0x37, 0x81, 0xbf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xef, 0x87, 0x35, 0x71, 0xb5, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto index 305e135b..2111b43c 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go index 5709d6ab..1518a9c4 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go @@ -17,6 +17,7 @@ package casttype import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestCastawayProto(t *testing.T) { } func TestCastawayMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +110,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +124,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -133,21 +142,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -167,24 +180,28 @@ func TestWilsonProto(t *testing.T) { } func TestWilsonMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +220,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +234,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +297,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +314,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +331,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +348,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +365,18 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +384,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +449,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +485,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go index d2d2ef2c..757a7756 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go @@ -28,13 +28,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -42,24 +38,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -68,7 +67,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -89,244 +88,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3790 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x36, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x7c, 0x93, 0xe3, 0xc4, - 0xeb, 0xdd, 0x95, 0x5c, 0xc7, 0xb1, 0x1d, 0x7a, 0x9b, 0x85, 0x28, 0xd1, 0x5a, 0x1a, 0xba, 0x75, - 0x24, 0xae, 0xed, 0xb4, 0xc0, 0x60, 0x44, 0x8e, 0x28, 0xda, 0xc3, 0x19, 0x96, 0x33, 0xb4, 0xad, - 0x7d, 0x4a, 0xeb, 0xb6, 0x8b, 0x6d, 0xd1, 0x7b, 0x81, 0x66, 0xb3, 0x49, 0xda, 0x04, 0x68, 0x93, - 0xa6, 0xb7, 0xa4, 0x6d, 0x8a, 0xa2, 0x4f, 0x01, 0x8a, 0xb4, 0x79, 0x2a, 0xda, 0x3e, 0xf5, 0xa1, - 0xc8, 0xad, 0x01, 0x9a, 0xb4, 0x69, 0x9b, 0x02, 0x06, 0x1a, 0x34, 0x2f, 0x3d, 0xe7, 0xbf, 0x0c, - 0x87, 0x17, 0x69, 0x28, 0x05, 0x69, 0x2a, 0x80, 0x10, 0xe7, 0xfc, 0xe7, 0xfb, 0xe6, 0xfc, 0xe7, - 0x3f, 0xff, 0x39, 0x67, 0xfe, 0x21, 0xfc, 0xd5, 0x8f, 0xc0, 0xf1, 0xaa, 0x6d, 0x57, 0x4d, 0x63, - 0xa6, 0xd1, 0xb4, 0x5d, 0x7b, 0xa3, 0xb5, 0x39, 0x53, 0x31, 0x9c, 0x72, 0xb3, 0xd6, 0x70, 0xed, - 0xe6, 0x34, 0x93, 0x29, 0xa3, 0x5c, 0x63, 0x5a, 0x6a, 0x4c, 0x2d, 0xc1, 0xd8, 0x95, 0x9a, 0x69, - 0xcc, 0x7b, 0x8a, 0x6b, 0x86, 0xab, 0x5c, 0x82, 0xe8, 0x26, 0x0a, 0xb3, 0xa1, 0xe3, 0x91, 0xd3, - 0xc9, 0x73, 0x0f, 0x4d, 0x77, 0x81, 0xa6, 0x3b, 0x11, 0xab, 0x24, 0x56, 0x19, 0x62, 0xea, 0x83, - 0x28, 0x8c, 0xf7, 0x19, 0x55, 0x14, 0x88, 0x5a, 0x7a, 0x9d, 0x18, 0x43, 0xa7, 0x13, 0x2a, 0xfb, - 0xae, 0x64, 0x61, 0xb8, 0xa1, 0x97, 0x6f, 0xe9, 0x55, 0x23, 0x1b, 0x66, 0x62, 0x79, 0xa9, 0x1c, - 0x05, 0xa8, 0x18, 0x0d, 0xc3, 0xaa, 0x18, 0x56, 0x79, 0x3b, 0x1b, 0x41, 0x2b, 0x12, 0xaa, 0x4f, - 0xa2, 0x7c, 0x0d, 0xc6, 0x1a, 0xad, 0x0d, 0xb3, 0x56, 0xd6, 0x7c, 0x6a, 0x80, 0x6a, 0x31, 0x35, - 0xc3, 0x07, 0xe6, 0xdb, 0xca, 0x8f, 0xc0, 0xe8, 0x1d, 0x43, 0xbf, 0xe5, 0x57, 0x4d, 0x32, 0xd5, - 0x34, 0x89, 0x7d, 0x8a, 0x73, 0x90, 0xaa, 0x1b, 0x8e, 0x83, 0x06, 0x68, 0xee, 0x76, 0xc3, 0xc8, - 0x46, 0xd9, 0xec, 0x8f, 0xf7, 0xcc, 0xbe, 0x7b, 0xe6, 0x49, 0x81, 0x5a, 0x47, 0x90, 0x32, 0x0b, - 0x09, 0xc3, 0x6a, 0xd5, 0x39, 0x43, 0x6c, 0x07, 0xff, 0x15, 0x50, 0xa3, 0x9b, 0x25, 0x4e, 0x30, - 0x41, 0x31, 0xec, 0x18, 0xcd, 0xdb, 0xb5, 0xb2, 0x91, 0x1d, 0x62, 0x04, 0x8f, 0xf4, 0x10, 0xac, - 0xf1, 0xf1, 0x6e, 0x0e, 0x89, 0xc3, 0xa9, 0x24, 0x8c, 0xbb, 0xae, 0x61, 0x39, 0x35, 0xdb, 0xca, - 0x0e, 0x33, 0x92, 0x53, 0x7d, 0x56, 0xd1, 0x30, 0x2b, 0xdd, 0x14, 0x6d, 0x9c, 0x72, 0x01, 0x86, - 0xed, 0x86, 0x8b, 0xdf, 0x9c, 0x6c, 0x1c, 0xd7, 0x27, 0x79, 0xee, 0xc1, 0xbe, 0x81, 0xb0, 0xc2, - 0x75, 0x54, 0xa9, 0xac, 0x14, 0x21, 0xe3, 0xd8, 0xad, 0x66, 0xd9, 0xd0, 0xca, 0x76, 0xc5, 0xd0, - 0x6a, 0xd6, 0xa6, 0x9d, 0x4d, 0x30, 0x82, 0x63, 0xbd, 0x13, 0x61, 0x8a, 0x73, 0xa8, 0x57, 0x44, - 0x35, 0x35, 0xed, 0x74, 0x5c, 0x2b, 0x07, 0x61, 0xc8, 0xd9, 0xb6, 0x5c, 0xfd, 0x6e, 0x36, 0xc5, - 0x22, 0x44, 0x5c, 0x4d, 0xfd, 0x77, 0x0c, 0x46, 0x07, 0x09, 0xb1, 0xcb, 0x10, 0xdb, 0xa4, 0x59, - 0x62, 0x80, 0xed, 0xc1, 0x07, 0x1c, 0xd3, 0xe9, 0xc4, 0xa1, 0x7d, 0x3a, 0x71, 0x16, 0x92, 0x96, - 0xe1, 0xb8, 0x46, 0x85, 0x47, 0x44, 0x64, 0xc0, 0x98, 0x02, 0x0e, 0xea, 0x0d, 0xa9, 0xe8, 0xbe, - 0x42, 0xea, 0x3a, 0x8c, 0x7a, 0x26, 0x69, 0x4d, 0xdd, 0xaa, 0xca, 0xd8, 0x9c, 0x09, 0xb2, 0x64, - 0xba, 0x20, 0x71, 0x2a, 0xc1, 0xd4, 0xb4, 0xd1, 0x71, 0xad, 0xcc, 0x03, 0xd8, 0x96, 0x61, 0x6f, - 0xe2, 0xf6, 0x2a, 0x9b, 0x18, 0x27, 0xfd, 0xbd, 0xb4, 0x42, 0x2a, 0x3d, 0x5e, 0xb2, 0xb9, 0xb4, - 0x6c, 0x2a, 0x8f, 0xb7, 0x43, 0x6d, 0x78, 0x87, 0x48, 0x59, 0xe2, 0x9b, 0xac, 0x27, 0xda, 0x4a, - 0x90, 0x6e, 0x1a, 0x14, 0xf7, 0xe8, 0x62, 0x3e, 0xb3, 0x04, 0x33, 0x62, 0x3a, 0x70, 0x66, 0xaa, - 0x80, 0xf1, 0x89, 0x8d, 0x34, 0xfd, 0x97, 0xca, 0x49, 0xf0, 0x04, 0x1a, 0x0b, 0x2b, 0x60, 0x59, - 0x28, 0x25, 0x85, 0xcb, 0x28, 0x9b, 0xbc, 0x04, 0xe9, 0x4e, 0xf7, 0x28, 0x13, 0x10, 0x73, 0x5c, - 0xbd, 0xe9, 0xb2, 0x28, 0x8c, 0xa9, 0xfc, 0x42, 0xc9, 0x40, 0x04, 0x93, 0x0c, 0xcb, 0x72, 0x31, - 0x95, 0xbe, 0x4e, 0x5e, 0x84, 0x91, 0x8e, 0xdb, 0x0f, 0x0a, 0x9c, 0x7a, 0x7a, 0x08, 0x26, 0xfa, - 0xc5, 0x5c, 0xdf, 0xf0, 0xc7, 0xed, 0x83, 0x11, 0xb0, 0x61, 0x34, 0x31, 0xee, 0x88, 0x41, 0x5c, - 0x61, 0x44, 0xc5, 0x4c, 0x7d, 0xc3, 0x30, 0x31, 0x9a, 0x42, 0xa7, 0xd3, 0xe7, 0xbe, 0x36, 0x50, - 0x54, 0x4f, 0x2f, 0x12, 0x44, 0xe5, 0x48, 0xe5, 0x09, 0x88, 0x8a, 0x14, 0x47, 0x0c, 0x67, 0x06, - 0x63, 0xa0, 0x58, 0x54, 0x19, 0x4e, 0xf9, 0x0a, 0x24, 0xe8, 0x3f, 0xf7, 0xed, 0x10, 0xb3, 0x39, - 0x4e, 0x02, 0xf2, 0xab, 0x32, 0x09, 0x71, 0x16, 0x66, 0x15, 0x43, 0x96, 0x06, 0xef, 0x9a, 0x16, - 0xa6, 0x62, 0x6c, 0xea, 0x2d, 0xd3, 0xd5, 0x6e, 0xeb, 0x66, 0xcb, 0x60, 0x01, 0x83, 0x0b, 0x23, - 0x84, 0xdf, 0x21, 0x99, 0x72, 0x0c, 0x92, 0x3c, 0x2a, 0x6b, 0x88, 0xb9, 0xcb, 0xb2, 0x4f, 0x4c, - 0xe5, 0x81, 0x5a, 0x24, 0x09, 0xdd, 0xfe, 0xa6, 0x83, 0x7b, 0x41, 0x2c, 0x2d, 0xbb, 0x05, 0x09, - 0xd8, 0xed, 0x2f, 0x76, 0x27, 0xbe, 0x23, 0xfd, 0xa7, 0xd7, 0x1d, 0x8b, 0x53, 0x7f, 0x1e, 0x86, - 0x28, 0xdb, 0x6f, 0xa3, 0x90, 0x5c, 0xbf, 0xb1, 0x5a, 0xd0, 0xe6, 0x57, 0x4a, 0xf9, 0xc5, 0x42, - 0x26, 0xa4, 0xa4, 0x01, 0x98, 0xe0, 0xca, 0xe2, 0xca, 0xec, 0x7a, 0x26, 0xec, 0x5d, 0x17, 0x97, - 0xd7, 0x2f, 0x9c, 0xcf, 0x44, 0x3c, 0x40, 0x89, 0x0b, 0xa2, 0x7e, 0x85, 0x47, 0xcf, 0x65, 0x62, - 0x18, 0x09, 0x29, 0x4e, 0x50, 0xbc, 0x5e, 0x98, 0x47, 0x8d, 0xa1, 0x4e, 0x09, 0xea, 0x0c, 0x2b, - 0x23, 0x90, 0x60, 0x92, 0xfc, 0xca, 0xca, 0x62, 0x26, 0xee, 0x71, 0xae, 0xad, 0xab, 0xc5, 0xe5, - 0x85, 0x4c, 0xc2, 0xe3, 0x5c, 0x50, 0x57, 0x4a, 0xab, 0x19, 0xf0, 0x18, 0x96, 0x0a, 0x6b, 0x6b, - 0xb3, 0x0b, 0x85, 0x4c, 0xd2, 0xd3, 0xc8, 0xdf, 0x58, 0x2f, 0xac, 0x65, 0x52, 0x1d, 0x66, 0xe1, - 0x2d, 0x46, 0xbc, 0x5b, 0x14, 0x96, 0x4b, 0x4b, 0x99, 0xb4, 0x32, 0x06, 0x23, 0xfc, 0x16, 0xd2, - 0x88, 0xd1, 0x2e, 0x11, 0x5a, 0x9a, 0x69, 0x1b, 0xc2, 0x59, 0xc6, 0x3a, 0x04, 0xa8, 0xa1, 0x4c, - 0xcd, 0x41, 0x8c, 0x45, 0x17, 0x46, 0x71, 0x7a, 0x71, 0x36, 0x5f, 0x58, 0xd4, 0x56, 0x56, 0xd7, - 0x8b, 0x2b, 0xcb, 0xb3, 0x8b, 0xe8, 0x3b, 0x4f, 0xa6, 0x16, 0x7e, 0xac, 0x54, 0x54, 0x0b, 0xf3, - 0xe8, 0x3f, 0x9f, 0x6c, 0xb5, 0x30, 0xbb, 0x8e, 0xb2, 0xc8, 0xd4, 0x19, 0x98, 0xe8, 0x97, 0x67, - 0xfa, 0xed, 0x8c, 0xa9, 0x17, 0x43, 0x30, 0xde, 0x27, 0x65, 0xf6, 0xdd, 0x45, 0xdf, 0x82, 0x18, - 0x8f, 0x34, 0x5e, 0x44, 0xbe, 0xda, 0x37, 0xf7, 0xb2, 0xb8, 0xeb, 0x29, 0x24, 0x0c, 0xe7, 0x2f, - 0xa4, 0x91, 0x1d, 0x0a, 0x29, 0x51, 0xf4, 0x84, 0xd3, 0xbd, 0x10, 0x64, 0x77, 0xe2, 0x0e, 0xd8, - 0xef, 0xe1, 0x8e, 0xfd, 0x7e, 0xb9, 0xdb, 0x80, 0x13, 0x3b, 0xcf, 0xa1, 0xc7, 0x8a, 0x97, 0x42, - 0x70, 0xb0, 0x7f, 0xbf, 0xd1, 0xd7, 0x86, 0x27, 0x60, 0xa8, 0x6e, 0xb8, 0x5b, 0xb6, 0xac, 0xb9, - 0x0f, 0xf7, 0xc9, 0xe4, 0x34, 0xdc, 0xed, 0x2b, 0x81, 0xf2, 0x97, 0x82, 0xc8, 0x4e, 0x4d, 0x03, - 0xb7, 0xa6, 0xc7, 0xd2, 0xef, 0x87, 0xe1, 0x81, 0xbe, 0xe4, 0x7d, 0x0d, 0x3d, 0x02, 0x50, 0xb3, - 0x1a, 0x2d, 0x97, 0xd7, 0x55, 0x9e, 0x66, 0x12, 0x4c, 0xc2, 0xb6, 0x30, 0xa5, 0x90, 0x96, 0xeb, - 0x8d, 0x47, 0xd8, 0x38, 0x70, 0x11, 0x53, 0xb8, 0xd4, 0x36, 0x34, 0xca, 0x0c, 0x3d, 0xba, 0xc3, - 0x4c, 0x7b, 0x4a, 0xd6, 0x59, 0xc8, 0x94, 0xcd, 0x9a, 0x61, 0xb9, 0x9a, 0xe3, 0x36, 0x0d, 0xbd, - 0x5e, 0xb3, 0xaa, 0x2c, 0x8f, 0xc6, 0x73, 0xb1, 0x4d, 0xdd, 0x74, 0x0c, 0x75, 0x94, 0x0f, 0xaf, - 0xc9, 0x51, 0x42, 0xb0, 0x62, 0xd1, 0xf4, 0x21, 0x86, 0x3a, 0x10, 0x7c, 0xd8, 0x43, 0x4c, 0xfd, - 0xc3, 0x30, 0x24, 0x7d, 0xdd, 0x99, 0x72, 0x02, 0x52, 0x37, 0xf5, 0xdb, 0xba, 0x26, 0x3b, 0x6e, - 0xee, 0x89, 0x24, 0xc9, 0x56, 0x45, 0xd7, 0x7d, 0x16, 0x26, 0x98, 0x0a, 0xce, 0x11, 0x6f, 0x54, - 0x36, 0x75, 0xc7, 0x61, 0x4e, 0x8b, 0x33, 0x55, 0x85, 0xc6, 0x56, 0x68, 0x68, 0x4e, 0x8e, 0x28, - 0x8f, 0xc1, 0x38, 0x43, 0xd4, 0x31, 0xf1, 0xd6, 0x1a, 0xa6, 0xa1, 0xd1, 0x33, 0x80, 0xc3, 0xf2, - 0xa9, 0x67, 0xd9, 0x18, 0x69, 0x2c, 0x09, 0x05, 0xb2, 0xc8, 0x51, 0x16, 0xe0, 0x08, 0x83, 0x55, - 0x0d, 0xcb, 0x68, 0xea, 0xae, 0xa1, 0x19, 0x3f, 0xd9, 0x42, 0x5d, 0x4d, 0xb7, 0x2a, 0xda, 0x96, - 0xee, 0x6c, 0x65, 0x27, 0xfc, 0x04, 0x87, 0x49, 0x77, 0x41, 0xa8, 0x16, 0x98, 0xe6, 0xac, 0x55, - 0xf9, 0x36, 0xea, 0x29, 0x39, 0x38, 0xc8, 0x88, 0xd0, 0x29, 0x38, 0x67, 0xad, 0xbc, 0x65, 0x94, - 0x6f, 0x69, 0x2d, 0x77, 0xf3, 0x52, 0xf6, 0x2b, 0x7e, 0x06, 0x66, 0xe4, 0x1a, 0xd3, 0x99, 0x23, - 0x95, 0x12, 0x6a, 0x28, 0x6b, 0x90, 0xa2, 0xf5, 0xa8, 0xd7, 0xbe, 0x8b, 0x66, 0xdb, 0x4d, 0x56, - 0x23, 0xd2, 0x7d, 0x36, 0xb7, 0xcf, 0x89, 0xd3, 0x2b, 0x02, 0xb0, 0x84, 0xfd, 0x69, 0x2e, 0xb6, - 0xb6, 0x5a, 0x28, 0xcc, 0xab, 0x49, 0xc9, 0x72, 0xc5, 0x6e, 0x52, 0x4c, 0x55, 0x6d, 0xcf, 0xc7, - 0x49, 0x1e, 0x53, 0x55, 0x5b, 0x7a, 0x18, 0xfd, 0x55, 0x2e, 0xf3, 0x69, 0xe3, 0xb3, 0x8b, 0x68, - 0xd6, 0x9d, 0x6c, 0xa6, 0xc3, 0x5f, 0xe5, 0xf2, 0x02, 0x57, 0x10, 0x61, 0xee, 0xe0, 0x96, 0x78, - 0xa0, 0xed, 0x2f, 0x3f, 0x70, 0xac, 0x67, 0x96, 0xdd, 0x50, 0xbc, 0x63, 0x63, 0xbb, 0x17, 0xa8, - 0x74, 0xdc, 0xb1, 0xb1, 0xdd, 0x0d, 0x3b, 0xc5, 0x1e, 0xc0, 0x9a, 0x46, 0x19, 0x5d, 0x5e, 0xc9, - 0x1e, 0xf2, 0x6b, 0xfb, 0x06, 0x94, 0x19, 0x0c, 0xe4, 0xb2, 0x66, 0x58, 0xfa, 0x06, 0xae, 0xbd, - 0xde, 0xc4, 0x2f, 0x4e, 0xf6, 0x98, 0x5f, 0x39, 0x5d, 0x2e, 0x17, 0xd8, 0xe8, 0x2c, 0x1b, 0x54, - 0xce, 0xc0, 0x98, 0xbd, 0x71, 0xb3, 0xcc, 0x83, 0x4b, 0x43, 0x9e, 0xcd, 0xda, 0xdd, 0xec, 0x43, - 0xcc, 0x4d, 0xa3, 0x34, 0xc0, 0x42, 0x6b, 0x95, 0x89, 0x95, 0xaf, 0x22, 0xb9, 0xb3, 0xa5, 0x37, - 0x1b, 0xac, 0x48, 0x3b, 0xe8, 0x54, 0x23, 0x7b, 0x8a, 0xab, 0x72, 0xf9, 0xb2, 0x14, 0x2b, 0x05, - 0x38, 0x46, 0x93, 0xb7, 0x74, 0xcb, 0xd6, 0x5a, 0x8e, 0xa1, 0xb5, 0x4d, 0xf4, 0xd6, 0xe2, 0x61, - 0x32, 0x4b, 0x7d, 0x50, 0xaa, 0x95, 0x1c, 0x4c, 0x66, 0x52, 0x49, 0x2e, 0xcf, 0x75, 0x98, 0x68, - 0x59, 0x35, 0x0b, 0x43, 0x1c, 0x47, 0x08, 0xcc, 0x37, 0x6c, 0xf6, 0x5f, 0x86, 0x77, 0x68, 0xba, - 0x4b, 0x7e, 0x6d, 0x1e, 0x24, 0xea, 0x78, 0xab, 0x57, 0x38, 0x95, 0x83, 0x94, 0x3f, 0x76, 0x94, - 0x04, 0xf0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0x6e, 0x65, 0x9e, 0x6a, 0xe1, 0x93, 0x05, 0x2c, - 0x6c, 0x58, 0x93, 0x17, 0x8b, 0xeb, 0x05, 0x4d, 0x2d, 0x2d, 0xaf, 0x17, 0x97, 0x0a, 0x99, 0xc8, - 0x99, 0x44, 0xfc, 0xc3, 0xe1, 0xcc, 0x53, 0xf8, 0x17, 0x9e, 0x7a, 0x33, 0x0c, 0xe9, 0xce, 0x3e, - 0x58, 0xf9, 0x26, 0x1c, 0x92, 0x0f, 0xad, 0x8e, 0xe1, 0x6a, 0x77, 0x6a, 0x4d, 0x16, 0xce, 0x75, - 0x9d, 0x77, 0x92, 0xde, 0x4a, 0x4c, 0x08, 0x2d, 0x7c, 0xbc, 0xbf, 0x86, 0x3a, 0x57, 0x98, 0x8a, - 0xb2, 0x08, 0xc7, 0xd0, 0x65, 0xd8, 0x6b, 0x5a, 0x15, 0xbd, 0x59, 0xd1, 0xda, 0xc7, 0x05, 0x9a, - 0x5e, 0xc6, 0x38, 0x70, 0x6c, 0x5e, 0x49, 0x3c, 0x96, 0x07, 0x2d, 0x7b, 0x4d, 0x28, 0xb7, 0x53, - 0xec, 0xac, 0x50, 0xed, 0x8a, 0x9a, 0xc8, 0x4e, 0x51, 0x83, 0xbd, 0x57, 0x5d, 0x6f, 0x60, 0xd8, - 0xb8, 0xcd, 0x6d, 0xd6, 0xbd, 0xc5, 0xd5, 0x38, 0x0a, 0x0a, 0x74, 0xfd, 0xc5, 0xad, 0x81, 0xdf, - 0x8f, 0xff, 0x14, 0x81, 0x94, 0xbf, 0x83, 0xa3, 0x86, 0xb8, 0xcc, 0xd2, 0x7c, 0x88, 0x65, 0x81, - 0x93, 0xbb, 0xf6, 0x7b, 0xd3, 0x73, 0x94, 0xff, 0x73, 0x43, 0xbc, 0xaf, 0x52, 0x39, 0x92, 0x6a, - 0x2f, 0xc5, 0x9a, 0xc1, 0xbb, 0xf5, 0xb8, 0x2a, 0xae, 0x30, 0xd9, 0x0d, 0xdd, 0x74, 0x18, 0xf7, - 0x10, 0xe3, 0x7e, 0x68, 0x77, 0xee, 0xab, 0x6b, 0x8c, 0x3c, 0x71, 0x75, 0x4d, 0x5b, 0x5e, 0x51, - 0x97, 0x66, 0x17, 0x55, 0x01, 0x57, 0x0e, 0x43, 0xd4, 0xd4, 0xbf, 0xbb, 0xdd, 0x59, 0x29, 0x98, - 0x68, 0x50, 0xc7, 0x23, 0x03, 0x1d, 0x79, 0x74, 0xe6, 0x67, 0x26, 0xfa, 0x02, 0x43, 0x7f, 0x06, - 0x62, 0xcc, 0x5f, 0x0a, 0x80, 0xf0, 0x58, 0xe6, 0x80, 0x12, 0x87, 0xe8, 0xdc, 0x8a, 0x4a, 0xe1, - 0x8f, 0xf1, 0xce, 0xa5, 0xda, 0x6a, 0xb1, 0x30, 0x87, 0x3b, 0x60, 0xea, 0x31, 0x18, 0xe2, 0x4e, - 0xa0, 0xad, 0xe1, 0xb9, 0x01, 0x41, 0xfc, 0x52, 0x70, 0x84, 0xe4, 0x68, 0x69, 0x29, 0x5f, 0x50, - 0x33, 0x61, 0xff, 0xf2, 0xfe, 0x65, 0x08, 0x92, 0xbe, 0x86, 0x8a, 0x4a, 0xb9, 0x6e, 0x9a, 0xf6, - 0x1d, 0x4d, 0x37, 0x6b, 0x98, 0xa1, 0xf8, 0xfa, 0x00, 0x13, 0xcd, 0x92, 0x64, 0x50, 0xff, 0xfd, - 0x9f, 0xc4, 0xe6, 0xf3, 0x21, 0xc8, 0x74, 0x37, 0x63, 0x5d, 0x06, 0x86, 0xbe, 0x54, 0x03, 0x9f, - 0x0d, 0x41, 0xba, 0xb3, 0x03, 0xeb, 0x32, 0xef, 0xc4, 0x97, 0x6a, 0xde, 0x0f, 0x43, 0x30, 0xd2, - 0xd1, 0x77, 0xfd, 0xbf, 0xb2, 0xee, 0x99, 0x08, 0x8c, 0xf7, 0xc1, 0x61, 0x02, 0xe2, 0x0d, 0x2a, - 0xef, 0x99, 0xbf, 0x31, 0xc8, 0xbd, 0xa6, 0xa9, 0xfe, 0xad, 0xea, 0x4d, 0x57, 0xf4, 0xb3, 0x58, - 0x2f, 0x6b, 0x15, 0x4c, 0xaa, 0xb5, 0xcd, 0x1a, 0xb6, 0x6f, 0xfc, 0x89, 0x85, 0x77, 0xad, 0xa3, - 0x6d, 0x39, 0x7f, 0x3c, 0xfe, 0x3a, 0x28, 0x0d, 0xdb, 0xa9, 0xb9, 0xb5, 0xdb, 0x74, 0x3c, 0x27, - 0x1f, 0xa4, 0xa9, 0x8b, 0x8d, 0xaa, 0x19, 0x39, 0x52, 0xb4, 0x5c, 0x4f, 0xdb, 0x32, 0xaa, 0x7a, - 0x97, 0x36, 0xa5, 0xa1, 0x88, 0x9a, 0x91, 0x23, 0x9e, 0x36, 0x36, 0x9a, 0x15, 0xbb, 0x45, 0x0d, - 0x01, 0xd7, 0xa3, 0xac, 0x17, 0x52, 0x93, 0x5c, 0xe6, 0xa9, 0x88, 0x8e, 0xad, 0xfd, 0x04, 0x9f, - 0x52, 0x93, 0x5c, 0xc6, 0x55, 0x1e, 0x81, 0x51, 0xbd, 0x5a, 0x6d, 0x12, 0xb9, 0x24, 0xe2, 0x6d, - 0x68, 0xda, 0x13, 0x33, 0xc5, 0xc9, 0xab, 0x10, 0x97, 0x7e, 0xa0, 0xc2, 0x42, 0x9e, 0xc0, 0x9a, - 0xcf, 0xce, 0x51, 0xc2, 0xf4, 0x50, 0x6f, 0xc9, 0x41, 0xbc, 0x69, 0xcd, 0xd1, 0xda, 0x07, 0x7a, - 0x61, 0x1c, 0x8f, 0xab, 0xc9, 0x9a, 0xe3, 0x9d, 0xe0, 0x4c, 0xbd, 0x84, 0xe5, 0xb5, 0xf3, 0x40, - 0x52, 0x99, 0x87, 0xb8, 0x69, 0x63, 0x7c, 0x10, 0x82, 0x9f, 0x86, 0x9f, 0x0e, 0x38, 0xc3, 0x9c, - 0x5e, 0x14, 0xfa, 0xaa, 0x87, 0x9c, 0xfc, 0xdb, 0x10, 0xc4, 0xa5, 0x18, 0x0b, 0x45, 0xb4, 0xa1, - 0xbb, 0x5b, 0x8c, 0x2e, 0x96, 0x0f, 0x67, 0x42, 0x2a, 0xbb, 0x26, 0x39, 0x76, 0x33, 0x16, 0x0b, - 0x01, 0x21, 0xa7, 0x6b, 0x5a, 0x57, 0xd3, 0xd0, 0x2b, 0xac, 0xc1, 0xb5, 0xeb, 0x75, 0x5c, 0x49, - 0x47, 0xae, 0xab, 0x90, 0xcf, 0x09, 0x31, 0x9d, 0x8b, 0xbb, 0x4d, 0xbd, 0x66, 0x76, 0xe8, 0x46, - 0x99, 0x6e, 0x46, 0x0e, 0x78, 0xca, 0x39, 0x38, 0x2c, 0x79, 0x2b, 0x86, 0xab, 0x63, 0xf3, 0x5c, - 0x69, 0x83, 0x86, 0xd8, 0x69, 0xd7, 0x21, 0xa1, 0x30, 0x2f, 0xc6, 0x25, 0x36, 0x7f, 0x1d, 0x1b, - 0x59, 0xbb, 0xde, 0xed, 0x89, 0x7c, 0xa6, 0xeb, 0xb9, 0xcb, 0xf9, 0x76, 0xe8, 0x49, 0x68, 0x37, - 0x15, 0x2f, 0x86, 0x23, 0x0b, 0xab, 0xf9, 0x57, 0xc2, 0x93, 0x0b, 0x1c, 0xb7, 0x2a, 0x3d, 0xa8, - 0x1a, 0x9b, 0xa6, 0x51, 0x26, 0xef, 0xc0, 0x0b, 0x27, 0xe1, 0x1b, 0xd5, 0x9a, 0xbb, 0xd5, 0xda, - 0x98, 0xc6, 0x3b, 0xcc, 0x54, 0xed, 0xaa, 0xdd, 0x7e, 0x9d, 0x41, 0x57, 0xec, 0x82, 0x7d, 0x13, - 0xaf, 0x34, 0x12, 0x9e, 0x74, 0x32, 0xf0, 0xfd, 0x47, 0x6e, 0x19, 0xc6, 0x85, 0xb2, 0xc6, 0xce, - 0x54, 0x79, 0x0b, 0xaa, 0xec, 0xfa, 0x40, 0x9e, 0x7d, 0xed, 0x03, 0x56, 0x12, 0xd4, 0x31, 0x01, - 0xa5, 0x31, 0xde, 0xa4, 0xe6, 0x54, 0x78, 0xa0, 0x83, 0x8f, 0xc7, 0x30, 0x3e, 0x72, 0xef, 0xce, - 0xf8, 0xa6, 0x60, 0x1c, 0xf7, 0x31, 0xae, 0x09, 0x68, 0x6e, 0x0e, 0x46, 0xf6, 0xc2, 0xf5, 0xd7, - 0x82, 0x2b, 0x65, 0xf8, 0x49, 0x16, 0x60, 0x94, 0x91, 0x94, 0x5b, 0x8e, 0x6b, 0xd7, 0x59, 0x82, - 0xd8, 0x9d, 0xe6, 0x6f, 0x3e, 0xe0, 0x41, 0x95, 0x26, 0xd8, 0x9c, 0x87, 0xca, 0x7d, 0x07, 0x26, - 0x48, 0xc2, 0xf6, 0xa0, 0x9f, 0x2d, 0xf8, 0x08, 0x21, 0xfb, 0xf7, 0xf7, 0x78, 0xec, 0x8d, 0x7b, - 0x04, 0x3e, 0x5e, 0xdf, 0x4a, 0x54, 0x0d, 0x17, 0x73, 0x1b, 0x3e, 0xff, 0x99, 0xa6, 0xb2, 0xeb, - 0x3b, 0x86, 0xec, 0x0f, 0x3e, 0xee, 0x5c, 0x89, 0x05, 0x8e, 0x9c, 0x35, 0xcd, 0x5c, 0x09, 0x0e, - 0xf5, 0x59, 0xd9, 0x01, 0x38, 0x9f, 0x11, 0x9c, 0x13, 0x3d, 0xab, 0x4b, 0xb4, 0xab, 0x20, 0xe5, - 0xde, 0x7a, 0x0c, 0xc0, 0xf9, 0x43, 0xc1, 0xa9, 0x08, 0xac, 0x5c, 0x16, 0x62, 0xbc, 0x0a, 0x63, - 0xf8, 0xa4, 0xbe, 0x61, 0x3b, 0xe2, 0xb9, 0x77, 0x00, 0xba, 0x67, 0x05, 0xdd, 0xa8, 0x00, 0xb2, - 0xa7, 0x60, 0xe2, 0x7a, 0x1c, 0xe2, 0x9b, 0xf8, 0x00, 0x34, 0x00, 0xc5, 0x73, 0x82, 0x62, 0x98, - 0xf4, 0x09, 0x3a, 0x0b, 0xa9, 0xaa, 0x2d, 0xd2, 0x70, 0x30, 0xfc, 0x79, 0x01, 0x4f, 0x4a, 0x8c, - 0xa0, 0x68, 0xd8, 0x8d, 0x96, 0x49, 0x39, 0x3a, 0x98, 0xe2, 0xb7, 0x24, 0x85, 0xc4, 0x08, 0x8a, - 0x3d, 0xb8, 0xf5, 0xb7, 0x25, 0x85, 0xe3, 0xf3, 0xe7, 0xb7, 0xe8, 0xac, 0xd7, 0xdc, 0xb6, 0xad, - 0x41, 0x8c, 0x78, 0x41, 0x30, 0x80, 0x80, 0x10, 0xc1, 0x65, 0x48, 0x0c, 0xba, 0x10, 0xbf, 0x23, - 0xe0, 0x71, 0x43, 0xae, 0x00, 0xee, 0x33, 0x99, 0x64, 0xe8, 0xdd, 0x4a, 0x30, 0xc5, 0xef, 0x0a, - 0x8a, 0xb4, 0x0f, 0x26, 0xa6, 0xe1, 0x1a, 0x8e, 0x8b, 0x8f, 0xea, 0x03, 0x90, 0xbc, 0x24, 0xa7, - 0x21, 0x20, 0xc2, 0x95, 0x1b, 0x86, 0x55, 0xde, 0x1a, 0x8c, 0xe1, 0x65, 0xe9, 0x4a, 0x89, 0x21, - 0x0a, 0xcc, 0x3c, 0x75, 0xbd, 0x89, 0x0f, 0xd7, 0xe6, 0x40, 0xcb, 0xf1, 0x7b, 0x82, 0x23, 0xe5, - 0x81, 0x84, 0x47, 0x5a, 0xd6, 0x5e, 0x68, 0x5e, 0x91, 0x1e, 0xf1, 0xc1, 0xc4, 0xd6, 0xc3, 0x27, - 0x53, 0xea, 0x24, 0xf6, 0xc2, 0xf6, 0xfb, 0x72, 0xeb, 0x71, 0xec, 0x92, 0x9f, 0x11, 0x57, 0xda, - 0xc1, 0x47, 0xf0, 0x41, 0x68, 0xfe, 0x40, 0xae, 0x34, 0x03, 0x10, 0xf8, 0x06, 0x1c, 0xee, 0x9b, - 0xea, 0x07, 0x20, 0xfb, 0x43, 0x41, 0x76, 0xb0, 0x4f, 0xba, 0x17, 0x29, 0x61, 0xaf, 0x94, 0x7f, - 0x24, 0x53, 0x82, 0xd1, 0xc5, 0xb5, 0x4a, 0x6d, 0xac, 0xa3, 0x6f, 0xee, 0xcd, 0x6b, 0x7f, 0x2c, - 0xbd, 0xc6, 0xb1, 0x1d, 0x5e, 0x5b, 0x87, 0x83, 0x82, 0x71, 0x6f, 0xeb, 0xfa, 0xaa, 0x4c, 0xac, - 0x1c, 0x5d, 0xea, 0x5c, 0xdd, 0x1f, 0x87, 0x49, 0xcf, 0x9d, 0xb2, 0x03, 0x73, 0x34, 0x3a, 0x18, - 0x08, 0x66, 0x7e, 0x4d, 0x30, 0xcb, 0x8c, 0xef, 0xb5, 0x70, 0xce, 0x92, 0xde, 0x20, 0xf2, 0xeb, - 0x90, 0x95, 0xe4, 0x2d, 0x0b, 0x1b, 0x7c, 0xbb, 0x6a, 0xe1, 0x32, 0x56, 0x06, 0xa0, 0xfe, 0x93, - 0xae, 0xa5, 0x2a, 0xf9, 0xe0, 0xc4, 0x5c, 0x84, 0x8c, 0xd7, 0x6f, 0x68, 0xb5, 0x7a, 0xc3, 0xc6, - 0xd6, 0x72, 0x77, 0xc6, 0x3f, 0x95, 0x2b, 0xe5, 0xe1, 0x8a, 0x0c, 0x96, 0x2b, 0x40, 0x9a, 0x5d, - 0x0e, 0x1a, 0x92, 0x7f, 0x26, 0x88, 0x46, 0xda, 0x28, 0x91, 0x38, 0xb0, 0x53, 0xc2, 0x9e, 0x77, - 0x90, 0xfc, 0xf7, 0xba, 0x4c, 0x1c, 0x02, 0xc2, 0xa3, 0x6f, 0xb4, 0xab, 0x12, 0x2b, 0x41, 0xaf, - 0x5f, 0xb3, 0x3f, 0x75, 0x5f, 0xec, 0xd9, 0xce, 0x42, 0x9c, 0x5b, 0x24, 0xf7, 0x74, 0x96, 0xcb, - 0x60, 0xb2, 0x7b, 0xf7, 0x3d, 0x0f, 0x75, 0x54, 0xcb, 0xdc, 0x15, 0x18, 0xe9, 0x28, 0x95, 0xc1, - 0x54, 0x3f, 0x23, 0xa8, 0x52, 0xfe, 0x4a, 0x99, 0x7b, 0x0c, 0xa2, 0x54, 0xf6, 0x82, 0xe1, 0x3f, - 0x2b, 0xe0, 0x4c, 0x3d, 0xf7, 0xa3, 0x10, 0x97, 0xe5, 0x2e, 0x18, 0xfa, 0x73, 0x02, 0xea, 0x41, - 0x08, 0x2e, 0x4b, 0x5d, 0x30, 0xfc, 0x7b, 0x12, 0x2e, 0x21, 0x04, 0x1f, 0xdc, 0x85, 0x6f, 0xfc, - 0x42, 0x54, 0xa4, 0x2b, 0xe9, 0x3b, 0x7a, 0xe7, 0xc3, 0x6b, 0x5c, 0x30, 0xfa, 0xfb, 0xe2, 0xe6, - 0x12, 0x91, 0xbb, 0x08, 0xb1, 0x01, 0x1d, 0xfe, 0x8b, 0x02, 0xca, 0xf5, 0xb1, 0x82, 0x24, 0x7d, - 0x75, 0x2d, 0x18, 0xfe, 0x4b, 0x02, 0xee, 0x47, 0x91, 0xe9, 0xa2, 0xae, 0x05, 0x13, 0xfc, 0xb2, - 0x34, 0x5d, 0x20, 0xc8, 0x6d, 0xb2, 0xa4, 0x05, 0xa3, 0x7f, 0x45, 0x7a, 0x5d, 0x42, 0x70, 0x37, - 0x25, 0xbc, 0x34, 0x15, 0x8c, 0xff, 0x55, 0x81, 0x6f, 0x63, 0xc8, 0x03, 0xbe, 0x34, 0x19, 0x4c, - 0xf1, 0x6b, 0xd2, 0x03, 0x3e, 0x14, 0x6d, 0xa3, 0xee, 0xd2, 0x17, 0xcc, 0xf4, 0xeb, 0x72, 0x1b, - 0x75, 0x55, 0x3e, 0x5a, 0x4d, 0x96, 0x2d, 0x82, 0x29, 0x7e, 0x43, 0xae, 0x26, 0xd3, 0x27, 0x33, - 0xba, 0x6b, 0x49, 0x30, 0xc7, 0x6f, 0x4a, 0x33, 0xba, 0x4a, 0x09, 0x56, 0x26, 0xa5, 0xb7, 0x8e, - 0x04, 0xf3, 0x3d, 0x2d, 0xf8, 0xc6, 0x7a, 0xca, 0x48, 0xee, 0x1a, 0x1c, 0xec, 0x5f, 0x43, 0x82, - 0x59, 0x7f, 0x70, 0xbf, 0xab, 0xeb, 0xf7, 0x97, 0x10, 0x2c, 0x79, 0x13, 0xfd, 0xea, 0x47, 0x30, - 0xed, 0x33, 0xf7, 0x3b, 0x1f, 0xec, 0xfc, 0xe5, 0x03, 0x3b, 0x34, 0x68, 0xa7, 0xee, 0x60, 0xae, - 0x67, 0x05, 0x97, 0x0f, 0x44, 0x5b, 0x43, 0x64, 0xee, 0x60, 0xfc, 0x73, 0x72, 0x6b, 0x08, 0x04, - 0x82, 0xe3, 0x56, 0xcb, 0x34, 0x29, 0x38, 0x94, 0xdd, 0x7f, 0xd2, 0x90, 0xfd, 0xe8, 0x33, 0xb1, - 0x31, 0x24, 0x00, 0x73, 0x68, 0xcc, 0xa8, 0x6f, 0xa0, 0x0f, 0x02, 0x90, 0xff, 0xfa, 0x99, 0x4c, - 0x08, 0xa4, 0x8d, 0xfb, 0x09, 0xf8, 0x43, 0x23, 0x3b, 0xc3, 0x0e, 0xc0, 0xfe, 0xdb, 0x67, 0xe2, - 0x35, 0x6b, 0x1b, 0xd2, 0x26, 0xe0, 0x2f, 0x6d, 0x77, 0x27, 0xf8, 0xb8, 0x93, 0x80, 0x3d, 0x68, - 0x3e, 0x0e, 0xc3, 0xf4, 0xcb, 0x0e, 0x57, 0xaf, 0x06, 0xa1, 0xff, 0x5d, 0xa0, 0xa5, 0x3e, 0x39, - 0xac, 0x6e, 0x37, 0x0d, 0xfc, 0xea, 0x04, 0x61, 0xff, 0x43, 0x60, 0x3d, 0x00, 0x81, 0xcb, 0xba, - 0xe3, 0x0e, 0x32, 0xef, 0xff, 0x94, 0x60, 0x09, 0x20, 0xa3, 0xe9, 0xfb, 0x2d, 0x63, 0x3b, 0x08, - 0xfb, 0x89, 0x34, 0x5a, 0xe8, 0x63, 0x02, 0x4c, 0xd0, 0x57, 0xfe, 0xd3, 0x83, 0x00, 0xf0, 0x7f, - 0x09, 0x70, 0x1b, 0x91, 0x3f, 0xd1, 0xff, 0x68, 0x07, 0x16, 0xec, 0x05, 0x9b, 0x1f, 0xea, 0xc0, - 0x47, 0x69, 0x38, 0x85, 0x3a, 0x58, 0x5f, 0x67, 0xf8, 0x9e, 0xf4, 0x76, 0xe4, 0x8c, 0x9c, 0x80, - 0x38, 0x9b, 0xf1, 0x26, 0x34, 0xb9, 0xb7, 0x43, 0x9d, 0xa9, 0xa7, 0x47, 0x20, 0x3e, 0x87, 0x58, - 0xfd, 0x8e, 0x4e, 0xaf, 0x37, 0xe2, 0x45, 0xcb, 0x7d, 0xf4, 0xdc, 0xaa, 0xdb, 0x64, 0x67, 0xdf, - 0x91, 0x7c, 0xe2, 0x7f, 0xde, 0x3e, 0x16, 0xab, 0x91, 0x4c, 0x8d, 0xd7, 0xc4, 0x90, 0x72, 0x12, - 0x62, 0x4c, 0x8d, 0x1d, 0xf0, 0x47, 0xf2, 0x23, 0x6f, 0xbd, 0x7d, 0xec, 0x40, 0x5b, 0x8f, 0xff, - 0x53, 0x6e, 0x40, 0x72, 0x69, 0xbb, 0x84, 0xdf, 0x2f, 0x9c, 0x27, 0x3a, 0x9a, 0x7e, 0x34, 0x7f, - 0x11, 0xd5, 0x1e, 0xdd, 0xd1, 0x40, 0xaa, 0x2c, 0xed, 0x89, 0x49, 0x34, 0xfb, 0x2d, 0x53, 0xb2, - 0xde, 0xe6, 0x52, 0xae, 0x41, 0x5c, 0x0e, 0xf2, 0xb3, 0xd4, 0xfc, 0x65, 0x61, 0xc2, 0xbe, 0xb8, - 0xe3, 0x92, 0x5b, 0xf9, 0x09, 0x48, 0x2d, 0x6d, 0x5f, 0x31, 0x6d, 0x5d, 0xf8, 0x80, 0x8e, 0x5e, - 0xc3, 0xf9, 0x4b, 0x48, 0x7c, 0x7e, 0x60, 0x62, 0x01, 0x67, 0xcc, 0xa9, 0xba, 0x8f, 0x4d, 0x79, - 0x12, 0x12, 0xde, 0x30, 0x3b, 0xad, 0x0d, 0xe7, 0xbf, 0x29, 0xec, 0xde, 0x1f, 0x7d, 0xc2, 0xa3, - 0xf7, 0x59, 0xce, 0xdd, 0x4d, 0x27, 0xbd, 0xa1, 0xfd, 0x58, 0x2e, 0x7c, 0x22, 0x2d, 0xe7, 0x0e, - 0x6f, 0x5b, 0x8e, 0x1e, 0x8f, 0x33, 0xea, 0x7d, 0x5a, 0x2e, 0xe8, 0x13, 0x1e, 0xbd, 0x72, 0x15, - 0x86, 0x97, 0xb6, 0xf3, 0xdb, 0xa8, 0xcd, 0x7e, 0x19, 0x90, 0xca, 0x9f, 0x45, 0xd6, 0xaf, 0x0f, - 0xc8, 0xca, 0x70, 0xea, 0x70, 0x9d, 0x13, 0x28, 0xc7, 0x21, 0xb9, 0x4c, 0xef, 0x5b, 0x4d, 0xce, - 0x07, 0xfc, 0xb8, 0xdb, 0x6a, 0x8b, 0x94, 0x12, 0xcd, 0x84, 0xaf, 0xb6, 0xc3, 0x7e, 0x9d, 0xfc, - 0x39, 0x62, 0x32, 0x21, 0xe3, 0xc6, 0x51, 0x6a, 0x10, 0x5b, 0xda, 0xc6, 0x7a, 0x96, 0x4d, 0xb1, - 0xa3, 0xeb, 0x23, 0xd3, 0x1e, 0x42, 0xee, 0xad, 0x69, 0x36, 0xce, 0x5e, 0xbd, 0xe6, 0xcf, 0xe3, - 0x1d, 0xcf, 0x0e, 0x7c, 0x47, 0x84, 0xb1, 0xdb, 0xc5, 0xea, 0xf4, 0x55, 0x79, 0x3d, 0x44, 0x1b, - 0x8b, 0x9f, 0xef, 0xd1, 0x1d, 0x47, 0xd8, 0x1d, 0x4f, 0xf6, 0xbd, 0xa3, 0xa7, 0xc5, 0xef, 0x6b, - 0xfd, 0xf4, 0x3b, 0x7b, 0x98, 0x29, 0x7f, 0x38, 0xa0, 0x5b, 0xff, 0xfc, 0x3b, 0xfb, 0xde, 0xb4, - 0x9e, 0x05, 0xca, 0x3d, 0x7a, 0x5d, 0xb4, 0xbd, 0x2c, 0xaa, 0x1c, 0x59, 0x9e, 0x16, 0xbf, 0x61, - 0xed, 0x67, 0xb9, 0x4f, 0x8f, 0xdb, 0x7e, 0x01, 0x6d, 0x3f, 0x37, 0xb0, 0x11, 0x2c, 0x3d, 0x31, - 0x1b, 0x46, 0xea, 0x7e, 0x2e, 0xe5, 0x7b, 0xcc, 0x8a, 0x02, 0x55, 0xcc, 0x8a, 0x51, 0x21, 0x2b, - 0x46, 0x77, 0xb1, 0xc2, 0xa7, 0xc7, 0xad, 0xc8, 0x51, 0xd4, 0xef, 0xdf, 0x12, 0x1f, 0xdf, 0xe4, - 0x25, 0x80, 0x76, 0x48, 0xd0, 0xef, 0x4f, 0xb1, 0xa4, 0x88, 0x1f, 0x0b, 0xd1, 0x57, 0xfa, 0x9d, - 0xaa, 0xfc, 0x31, 0x1c, 0xbd, 0x2d, 0xe2, 0x17, 0xb9, 0xf0, 0xa5, 0xd0, 0xe4, 0x13, 0x90, 0xe9, - 0x5e, 0xda, 0x3d, 0xe1, 0x55, 0x50, 0x7a, 0x1d, 0xec, 0x67, 0x88, 0x71, 0x86, 0x87, 0xfd, 0x0c, - 0xc9, 0x73, 0x99, 0xb6, 0x8b, 0xae, 0xd5, 0x4c, 0x2c, 0xdc, 0x3d, 0x9c, 0xdd, 0xee, 0xfa, 0x7c, - 0x9c, 0x53, 0x47, 0x61, 0x88, 0x0b, 0x69, 0x2e, 0x45, 0x96, 0xed, 0x59, 0x51, 0x62, 0x15, 0xe6, - 0xc2, 0xf9, 0xfc, 0xe2, 0x5b, 0xef, 0x1d, 0x3d, 0xf0, 0x77, 0xf8, 0xf9, 0x47, 0xfc, 0xbc, 0xfb, - 0xde, 0xd1, 0xd0, 0x87, 0xf8, 0xf9, 0x04, 0x3f, 0x9f, 0xe2, 0xe7, 0xa9, 0xf7, 0x8f, 0x86, 0x5e, - 0xc6, 0xcf, 0xab, 0xf8, 0xf9, 0x0b, 0xfc, 0xbc, 0x81, 0x9f, 0xb7, 0xde, 0x47, 0x7d, 0xfc, 0xbc, - 0x8b, 0xdf, 0x3f, 0xc4, 0xff, 0x9f, 0xe0, 0xff, 0x4f, 0xf1, 0xf3, 0xd4, 0x3f, 0x1f, 0x3d, 0xf0, - 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xca, 0x2d, 0xe1, 0xd1, 0xd6, 0x31, 0x00, 0x00, + // 4126 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x83, 0x14, 0x6d, + 0xd9, 0xb4, 0x9d, 0x50, 0x1e, 0xfd, 0x59, 0x86, 0x12, 0x7b, 0x00, 0x12, 0x62, 0xa0, 0x12, 0x04, + 0xb2, 0x24, 0x23, 0xc9, 0xed, 0xcc, 0xce, 0x72, 0x71, 0x09, 0xae, 0xb4, 0xd8, 0x45, 0x76, 0x17, + 0x92, 0xe1, 0x27, 0x35, 0x6e, 0x9b, 0x49, 0x3b, 0xfd, 0xef, 0x4c, 0x13, 0xd7, 0x71, 0xdb, 0xcc, + 0xb4, 0x4e, 0x93, 0xfe, 0x24, 0x6d, 0x93, 0x66, 0xf2, 0x94, 0x97, 0xb4, 0x7e, 0xea, 0x24, 0x6f, + 0x7d, 0xe8, 0xc8, 0x16, 0xe3, 0x99, 0x3a, 0xad, 0xdb, 0xba, 0x8d, 0x67, 0x9a, 0x91, 0x5f, 0x3a, + 0xf7, 0x6f, 0xb1, 0xf8, 0x21, 0x17, 0x54, 0xc6, 0xc9, 0x13, 0xb1, 0xe7, 0x9e, 0xef, 0xdb, 0x73, + 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x97, 0xf0, 0xc3, 0x73, 0xb0, 0xd0, 0xb0, 0xed, 0x86, 0x89, + 0x4f, 0xb5, 0x1c, 0xdb, 0xb3, 0x77, 0xda, 0xbb, 0xa7, 0xea, 0xd8, 0xd5, 0x1d, 0xa3, 0xe5, 0xd9, + 0xce, 0x32, 0x95, 0xa1, 0x29, 0xa6, 0xb1, 0x2c, 0x34, 0x16, 0x2b, 0x30, 0x7d, 0xc9, 0x30, 0xf1, + 0xaa, 0xaf, 0xb8, 0x89, 0x3d, 0x74, 0x01, 0x62, 0xbb, 0x86, 0x89, 0xb3, 0xd2, 0x42, 0x74, 0x29, + 0x75, 0xfa, 0xd1, 0xe5, 0x3e, 0xd0, 0x72, 0x2f, 0xa2, 0x46, 0xc4, 0x0a, 0x45, 0x2c, 0xbe, 0x1d, + 0x83, 0x99, 0x21, 0xa3, 0x08, 0x41, 0xcc, 0xd2, 0x9a, 0x84, 0x51, 0x5a, 0x4a, 0x2a, 0xf4, 0x37, + 0xca, 0xc2, 0x44, 0x4b, 0xd3, 0x6f, 0x68, 0x0d, 0x9c, 0x8d, 0x50, 0xb1, 0xb8, 0x44, 0x39, 0x80, + 0x3a, 0x6e, 0x61, 0xab, 0x8e, 0x2d, 0xbd, 0x93, 0x8d, 0x2e, 0x44, 0x97, 0x92, 0x4a, 0x40, 0x82, + 0x9e, 0x82, 0xe9, 0x56, 0x7b, 0xc7, 0x34, 0x74, 0x35, 0xa0, 0x06, 0x0b, 0xd1, 0xa5, 0xb8, 0x22, + 0xb3, 0x81, 0xd5, 0xae, 0xf2, 0xe3, 0x30, 0x75, 0x0b, 0x6b, 0x37, 0x82, 0xaa, 0x29, 0xaa, 0x9a, + 0x21, 0xe2, 0x80, 0xe2, 0x0a, 0xa4, 0x9b, 0xd8, 0x75, 0xb5, 0x06, 0x56, 0xbd, 0x4e, 0x0b, 0x67, + 0x63, 0x74, 0xf6, 0x0b, 0x03, 0xb3, 0xef, 0x9f, 0x79, 0x8a, 0xa3, 0xb6, 0x3a, 0x2d, 0x8c, 0x0a, + 0x90, 0xc4, 0x56, 0xbb, 0xc9, 0x18, 0xe2, 0x07, 0xf8, 0xaf, 0x64, 0xb5, 0x9b, 0xfd, 0x2c, 0x09, + 0x02, 0xe3, 0x14, 0x13, 0x2e, 0x76, 0x6e, 0x1a, 0x3a, 0xce, 0x8e, 0x53, 0x82, 0xc7, 0x07, 0x08, + 0x36, 0xd9, 0x78, 0x3f, 0x87, 0xc0, 0xa1, 0x15, 0x48, 0xe2, 0x17, 0x3d, 0x6c, 0xb9, 0x86, 0x6d, + 0x65, 0x27, 0x28, 0xc9, 0xc9, 0x21, 0xab, 0x88, 0xcd, 0x7a, 0x3f, 0x45, 0x17, 0x87, 0xce, 0xc3, + 0x84, 0xdd, 0xf2, 0x0c, 0xdb, 0x72, 0xb3, 0x89, 0x05, 0x69, 0x29, 0x75, 0xfa, 0x23, 0x43, 0x03, + 0xa1, 0xca, 0x74, 0x14, 0xa1, 0x8c, 0xca, 0x20, 0xbb, 0x76, 0xdb, 0xd1, 0xb1, 0xaa, 0xdb, 0x75, + 0xac, 0x1a, 0xd6, 0xae, 0x9d, 0x4d, 0x52, 0x82, 0xf9, 0xc1, 0x89, 0x50, 0xc5, 0x15, 0xbb, 0x8e, + 0xcb, 0xd6, 0xae, 0xad, 0x64, 0xdc, 0x9e, 0x6b, 0x74, 0x0c, 0xc6, 0xdd, 0x8e, 0xe5, 0x69, 0x2f, + 0x66, 0xd3, 0x34, 0x42, 0xf8, 0xd5, 0xe2, 0xff, 0xc5, 0x61, 0x6a, 0x94, 0x10, 0xbb, 0x08, 0xf1, + 0x5d, 0x32, 0xcb, 0x6c, 0xe4, 0x28, 0x3e, 0x60, 0x98, 0x5e, 0x27, 0x8e, 0xdf, 0xa7, 0x13, 0x0b, + 0x90, 0xb2, 0xb0, 0xeb, 0xe1, 0x3a, 0x8b, 0x88, 0xe8, 0x88, 0x31, 0x05, 0x0c, 0x34, 0x18, 0x52, + 0xb1, 0xfb, 0x0a, 0xa9, 0xab, 0x30, 0xe5, 0x9b, 0xa4, 0x3a, 0x9a, 0xd5, 0x10, 0xb1, 0x79, 0x2a, + 0xcc, 0x92, 0xe5, 0x92, 0xc0, 0x29, 0x04, 0xa6, 0x64, 0x70, 0xcf, 0x35, 0x5a, 0x05, 0xb0, 0x2d, + 0x6c, 0xef, 0xaa, 0x75, 0xac, 0x9b, 0xd9, 0xc4, 0x01, 0x5e, 0xaa, 0x12, 0x95, 0x01, 0x2f, 0xd9, + 0x4c, 0xaa, 0x9b, 0xe8, 0xd9, 0x6e, 0xa8, 0x4d, 0x1c, 0x10, 0x29, 0x15, 0xb6, 0xc9, 0x06, 0xa2, + 0x6d, 0x1b, 0x32, 0x0e, 0x26, 0x71, 0x8f, 0xeb, 0x7c, 0x66, 0x49, 0x6a, 0xc4, 0x72, 0xe8, 0xcc, + 0x14, 0x0e, 0x63, 0x13, 0x9b, 0x74, 0x82, 0x97, 0xe8, 0x11, 0xf0, 0x05, 0x2a, 0x0d, 0x2b, 0xa0, + 0x59, 0x28, 0x2d, 0x84, 0x1b, 0x5a, 0x13, 0xcf, 0x5d, 0x80, 0x4c, 0xaf, 0x7b, 0xd0, 0x2c, 0xc4, + 0x5d, 0x4f, 0x73, 0x3c, 0x1a, 0x85, 0x71, 0x85, 0x5d, 0x20, 0x19, 0xa2, 0xd8, 0xaa, 0xd3, 0x2c, + 0x17, 0x57, 0xc8, 0xcf, 0xb9, 0x67, 0x60, 0xb2, 0xe7, 0xf6, 0xa3, 0x02, 0x17, 0xbf, 0x30, 0x0e, + 0xb3, 0xc3, 0x62, 0x6e, 0x68, 0xf8, 0x1f, 0x83, 0x71, 0xab, 0xdd, 0xdc, 0xc1, 0x4e, 0x36, 0x4a, + 0x19, 0xf8, 0x15, 0x2a, 0x40, 0xdc, 0xd4, 0x76, 0xb0, 0x99, 0x8d, 0x2d, 0x48, 0x4b, 0x99, 0xd3, + 0x4f, 0x8d, 0x14, 0xd5, 0xcb, 0xeb, 0x04, 0xa2, 0x30, 0x24, 0x7a, 0x0e, 0x62, 0x3c, 0xc5, 0x11, + 0x86, 0x27, 0x47, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0x7a, 0x08, 0x92, 0xe4, 0x2f, 0xf3, 0xed, + 0x38, 0xb5, 0x39, 0x41, 0x04, 0xc4, 0xaf, 0x68, 0x0e, 0x12, 0x34, 0xcc, 0xea, 0x58, 0x94, 0x06, + 0xff, 0x9a, 0x2c, 0x4c, 0x1d, 0xef, 0x6a, 0x6d, 0xd3, 0x53, 0x6f, 0x6a, 0x66, 0x1b, 0xd3, 0x80, + 0x49, 0x2a, 0x69, 0x2e, 0xfc, 0x34, 0x91, 0xa1, 0x79, 0x48, 0xb1, 0xa8, 0x34, 0xac, 0x3a, 0x7e, + 0x91, 0x66, 0x9f, 0xb8, 0xc2, 0x02, 0xb5, 0x4c, 0x24, 0xe4, 0xf6, 0xd7, 0x5d, 0xdb, 0x12, 0x4b, + 0x4b, 0x6f, 0x41, 0x04, 0xf4, 0xf6, 0xcf, 0xf4, 0x27, 0xbe, 0x87, 0x87, 0x4f, 0xaf, 0x3f, 0x16, + 0x17, 0xbf, 0x15, 0x81, 0x18, 0xdd, 0x6f, 0x53, 0x90, 0xda, 0xba, 0x56, 0x2b, 0xa9, 0xab, 0xd5, + 0xed, 0xe2, 0x7a, 0x49, 0x96, 0x50, 0x06, 0x80, 0x0a, 0x2e, 0xad, 0x57, 0x0b, 0x5b, 0x72, 0xc4, + 0xbf, 0x2e, 0x6f, 0x6c, 0x9d, 0x3f, 0x2b, 0x47, 0x7d, 0xc0, 0x36, 0x13, 0xc4, 0x82, 0x0a, 0x67, + 0x4e, 0xcb, 0x71, 0x24, 0x43, 0x9a, 0x11, 0x94, 0xaf, 0x96, 0x56, 0xcf, 0x9f, 0x95, 0xc7, 0x7b, + 0x25, 0x67, 0x4e, 0xcb, 0x13, 0x68, 0x12, 0x92, 0x54, 0x52, 0xac, 0x56, 0xd7, 0xe5, 0x84, 0xcf, + 0xb9, 0xb9, 0xa5, 0x94, 0x37, 0xd6, 0xe4, 0xa4, 0xcf, 0xb9, 0xa6, 0x54, 0xb7, 0x6b, 0x32, 0xf8, + 0x0c, 0x95, 0xd2, 0xe6, 0x66, 0x61, 0xad, 0x24, 0xa7, 0x7c, 0x8d, 0xe2, 0xb5, 0xad, 0xd2, 0xa6, + 0x9c, 0xee, 0x31, 0xeb, 0xcc, 0x69, 0x79, 0xd2, 0xbf, 0x45, 0x69, 0x63, 0xbb, 0x22, 0x67, 0xd0, + 0x34, 0x4c, 0xb2, 0x5b, 0x08, 0x23, 0xa6, 0xfa, 0x44, 0xe7, 0xcf, 0xca, 0x72, 0xd7, 0x10, 0xc6, + 0x32, 0xdd, 0x23, 0x38, 0x7f, 0x56, 0x46, 0x8b, 0x2b, 0x10, 0xa7, 0xd1, 0x85, 0x10, 0x64, 0xd6, + 0x0b, 0xc5, 0xd2, 0xba, 0x5a, 0xad, 0x6d, 0x95, 0xab, 0x1b, 0x85, 0x75, 0x59, 0xea, 0xca, 0x94, + 0xd2, 0xa7, 0xb6, 0xcb, 0x4a, 0x69, 0x55, 0x8e, 0x04, 0x65, 0xb5, 0x52, 0x61, 0xab, 0xb4, 0x2a, + 0x47, 0x17, 0x75, 0x98, 0x1d, 0x96, 0x67, 0x86, 0xee, 0x8c, 0xc0, 0x12, 0x47, 0x0e, 0x58, 0x62, + 0xca, 0x35, 0xb0, 0xc4, 0x5f, 0x96, 0x60, 0x66, 0x48, 0xae, 0x1d, 0x7a, 0x93, 0xe7, 0x21, 0xce, + 0x42, 0x94, 0x55, 0x9f, 0x27, 0x86, 0x26, 0x6d, 0x1a, 0xb0, 0x03, 0x15, 0x88, 0xe2, 0x82, 0x15, + 0x38, 0x7a, 0x40, 0x05, 0x26, 0x14, 0x03, 0x46, 0xbe, 0x2c, 0x41, 0xf6, 0x20, 0xee, 0x90, 0x44, + 0x11, 0xe9, 0x49, 0x14, 0x17, 0xfb, 0x0d, 0x38, 0x71, 0xf0, 0x1c, 0x06, 0xac, 0x78, 0x5d, 0x82, + 0x63, 0xc3, 0x1b, 0x95, 0xa1, 0x36, 0x3c, 0x07, 0xe3, 0x4d, 0xec, 0xed, 0xd9, 0xa2, 0x58, 0x3f, + 0x36, 0xa4, 0x04, 0x90, 0xe1, 0x7e, 0x5f, 0x71, 0x54, 0xb0, 0x86, 0x44, 0x0f, 0xea, 0x36, 0x98, + 0x35, 0x03, 0x96, 0x7e, 0x3e, 0x02, 0x0f, 0x0c, 0x25, 0x1f, 0x6a, 0xe8, 0xc3, 0x00, 0x86, 0xd5, + 0x6a, 0x7b, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa4, 0x12, 0xba, 0xf7, 0x49, 0xee, 0x69, 0x7b, 0xfe, + 0x78, 0x94, 0x8e, 0x03, 0x13, 0x51, 0x85, 0x0b, 0x5d, 0x43, 0x63, 0xd4, 0xd0, 0xdc, 0x01, 0x33, + 0x1d, 0xa8, 0x75, 0x4f, 0x83, 0xac, 0x9b, 0x06, 0xb6, 0x3c, 0xd5, 0xf5, 0x1c, 0xac, 0x35, 0x0d, + 0xab, 0x41, 0x13, 0x70, 0x22, 0x1f, 0xdf, 0xd5, 0x4c, 0x17, 0x2b, 0x53, 0x6c, 0x78, 0x53, 0x8c, + 0x12, 0x04, 0xad, 0x32, 0x4e, 0x00, 0x31, 0xde, 0x83, 0x60, 0xc3, 0x3e, 0x62, 0xf1, 0x6b, 0x13, + 0x90, 0x0a, 0xb4, 0x75, 0xe8, 0x04, 0xa4, 0xaf, 0x6b, 0x37, 0x35, 0x55, 0xb4, 0xea, 0xcc, 0x13, + 0x29, 0x22, 0xab, 0xf1, 0x76, 0xfd, 0x69, 0x98, 0xa5, 0x2a, 0x76, 0xdb, 0xc3, 0x8e, 0xaa, 0x9b, + 0x9a, 0xeb, 0x52, 0xa7, 0x25, 0xa8, 0x2a, 0x22, 0x63, 0x55, 0x32, 0xb4, 0x22, 0x46, 0xd0, 0x39, + 0x98, 0xa1, 0x88, 0x66, 0xdb, 0xf4, 0x8c, 0x96, 0x89, 0x55, 0xf2, 0xf0, 0xe0, 0xd2, 0x44, 0xec, + 0x5b, 0x36, 0x4d, 0x34, 0x2a, 0x5c, 0x81, 0x58, 0xe4, 0xa2, 0x55, 0x78, 0x98, 0xc2, 0x1a, 0xd8, + 0xc2, 0x8e, 0xe6, 0x61, 0x15, 0x7f, 0xa6, 0xad, 0x99, 0xae, 0xaa, 0x59, 0x75, 0x75, 0x4f, 0x73, + 0xf7, 0xb2, 0xb3, 0x84, 0xa0, 0x18, 0xc9, 0x4a, 0xca, 0x71, 0xa2, 0xb8, 0xc6, 0xf5, 0x4a, 0x54, + 0xad, 0x60, 0xd5, 0x3f, 0xa9, 0xb9, 0x7b, 0x28, 0x0f, 0xc7, 0x28, 0x8b, 0xeb, 0x39, 0x86, 0xd5, + 0x50, 0xf5, 0x3d, 0xac, 0xdf, 0x50, 0xdb, 0xde, 0xee, 0x85, 0xec, 0x43, 0xc1, 0xfb, 0x53, 0x0b, + 0x37, 0xa9, 0xce, 0x0a, 0x51, 0xd9, 0xf6, 0x76, 0x2f, 0xa0, 0x4d, 0x48, 0x93, 0xc5, 0x68, 0x1a, + 0x2f, 0x61, 0x75, 0xd7, 0x76, 0x68, 0x65, 0xc9, 0x0c, 0xd9, 0xd9, 0x01, 0x0f, 0x2e, 0x57, 0x39, + 0xa0, 0x62, 0xd7, 0x71, 0x3e, 0xbe, 0x59, 0x2b, 0x95, 0x56, 0x95, 0x94, 0x60, 0xb9, 0x64, 0x3b, + 0x24, 0xa0, 0x1a, 0xb6, 0xef, 0xe0, 0x14, 0x0b, 0xa8, 0x86, 0x2d, 0xdc, 0x7b, 0x0e, 0x66, 0x74, + 0x9d, 0xcd, 0xd9, 0xd0, 0x55, 0xde, 0xe2, 0xbb, 0x59, 0xb9, 0xc7, 0x59, 0xba, 0xbe, 0xc6, 0x14, + 0x78, 0x8c, 0xbb, 0xe8, 0x59, 0x78, 0xa0, 0xeb, 0xac, 0x20, 0x70, 0x7a, 0x60, 0x96, 0xfd, 0xd0, + 0x73, 0x30, 0xd3, 0xea, 0x0c, 0x02, 0x51, 0xcf, 0x1d, 0x5b, 0x9d, 0x7e, 0xd8, 0x49, 0xfa, 0xd8, + 0xe6, 0x60, 0x5d, 0xf3, 0x70, 0x3d, 0xfb, 0x60, 0x50, 0x3b, 0x30, 0x80, 0x4e, 0x81, 0xac, 0xeb, + 0x2a, 0xb6, 0xb4, 0x1d, 0x13, 0xab, 0x9a, 0x83, 0x2d, 0xcd, 0xcd, 0xce, 0x07, 0x95, 0x33, 0xba, + 0x5e, 0xa2, 0xa3, 0x05, 0x3a, 0x88, 0x9e, 0x84, 0x69, 0x7b, 0xe7, 0xba, 0xce, 0x22, 0x4b, 0x6d, + 0x39, 0x78, 0xd7, 0x78, 0x31, 0xfb, 0x28, 0x75, 0xd3, 0x14, 0x19, 0xa0, 0x71, 0x55, 0xa3, 0x62, + 0xf4, 0x04, 0xc8, 0xba, 0xbb, 0xa7, 0x39, 0x2d, 0x5a, 0xda, 0xdd, 0x96, 0xa6, 0xe3, 0xec, 0x49, + 0xa6, 0xca, 0xe4, 0x1b, 0x42, 0x4c, 0x22, 0xdb, 0xbd, 0x65, 0xec, 0x7a, 0x82, 0xf1, 0x71, 0x16, + 0xd9, 0x54, 0xc6, 0xd9, 0xae, 0xc2, 0x6c, 0xdb, 0x32, 0x2c, 0x0f, 0x3b, 0x2d, 0x07, 0x93, 0x26, + 0x9e, 0xed, 0xc4, 0xec, 0xbf, 0x4d, 0x1c, 0xd0, 0x86, 0x6f, 0x07, 0xb5, 0x59, 0x00, 0x28, 0x33, + 0xed, 0x41, 0xe1, 0x62, 0x1e, 0xd2, 0xc1, 0xb8, 0x40, 0x49, 0x60, 0x91, 0x21, 0x4b, 0xa4, 0xc6, + 0xae, 0x54, 0x57, 0x49, 0x75, 0x7c, 0xa1, 0x24, 0x47, 0x48, 0x95, 0x5e, 0x2f, 0x6f, 0x95, 0x54, + 0x65, 0x7b, 0x63, 0xab, 0x5c, 0x29, 0xc9, 0xd1, 0x27, 0x93, 0x89, 0x77, 0x26, 0xe4, 0xdb, 0xb7, + 0x6f, 0xdf, 0x8e, 0x2c, 0x7e, 0x2f, 0x02, 0x99, 0xde, 0xce, 0x18, 0x7d, 0x1c, 0x1e, 0x14, 0x8f, + 0xb1, 0x2e, 0xf6, 0xd4, 0x5b, 0x86, 0x43, 0x43, 0xb5, 0xa9, 0xb1, 0xde, 0xd2, 0xf7, 0xf2, 0x2c, + 0xd7, 0xda, 0xc4, 0xde, 0x15, 0xc3, 0x21, 0x81, 0xd8, 0xd4, 0x3c, 0xb4, 0x0e, 0xf3, 0x96, 0xad, + 0xba, 0x9e, 0x66, 0xd5, 0x35, 0xa7, 0xae, 0x76, 0x0f, 0x10, 0x54, 0x4d, 0xd7, 0xb1, 0xeb, 0xda, + 0xac, 0x44, 0xf8, 0x2c, 0x1f, 0xb1, 0xec, 0x4d, 0xae, 0xdc, 0xcd, 0x9d, 0x05, 0xae, 0xda, 0x17, + 0x11, 0xd1, 0x83, 0x22, 0xe2, 0x21, 0x48, 0x36, 0xb5, 0x96, 0x8a, 0x2d, 0xcf, 0xe9, 0xd0, 0x7e, + 0x2e, 0xa1, 0x24, 0x9a, 0x5a, 0xab, 0x44, 0xae, 0x3f, 0xbc, 0x35, 0x08, 0xfa, 0xf1, 0x5f, 0xa3, + 0x90, 0x0e, 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x0e, 0x7f, 0xe4, 0xd0, 0x0e, + 0x70, 0x79, 0x85, 0x24, 0xf6, 0xfc, 0x38, 0xeb, 0xb4, 0x14, 0x86, 0x24, 0x45, 0x95, 0xec, 0x69, + 0xcc, 0xfa, 0xf7, 0x84, 0xc2, 0xaf, 0xd0, 0x1a, 0x8c, 0x5f, 0x77, 0x29, 0xf7, 0x38, 0xe5, 0x7e, + 0xf4, 0x70, 0xee, 0xcb, 0x9b, 0x94, 0x3c, 0x79, 0x79, 0x53, 0xdd, 0xa8, 0x2a, 0x95, 0xc2, 0xba, + 0xc2, 0xe1, 0xe8, 0x38, 0xc4, 0x4c, 0xed, 0xa5, 0x4e, 0x6f, 0x09, 0xa0, 0xa2, 0x51, 0x1d, 0x7f, + 0x1c, 0x62, 0xb7, 0xb0, 0x76, 0xa3, 0x37, 0xf1, 0x52, 0xd1, 0x87, 0x18, 0xfa, 0xa7, 0x20, 0x4e, + 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x31, 0x94, 0x80, 0xd8, 0x4a, 0x55, 0x21, 0xe1, 0x2f, 0x43, + 0x9a, 0x49, 0xd5, 0x5a, 0xb9, 0xb4, 0x52, 0x92, 0x23, 0x8b, 0xe7, 0x60, 0x9c, 0x39, 0x81, 0x6c, + 0x0d, 0xdf, 0x0d, 0xf2, 0x18, 0xbf, 0xe4, 0x1c, 0x92, 0x18, 0xdd, 0xae, 0x14, 0x4b, 0x8a, 0x1c, + 0x09, 0x2e, 0xaf, 0x0b, 0xe9, 0x60, 0x3b, 0xf7, 0xb3, 0x89, 0xa9, 0xef, 0x48, 0x90, 0x0a, 0xb4, + 0x67, 0xa4, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xa5, 0x6a, 0xa6, 0xa1, 0xb9, 0x3c, 0x28, 0x80, 0x8a, + 0x0a, 0x44, 0x32, 0xea, 0xa2, 0xfd, 0x4c, 0x8c, 0x7f, 0x4d, 0x02, 0xb9, 0xbf, 0xb5, 0xeb, 0x33, + 0x50, 0xfa, 0xb9, 0x1a, 0xf8, 0xaa, 0x04, 0x99, 0xde, 0x7e, 0xae, 0xcf, 0xbc, 0x13, 0x3f, 0x57, + 0xf3, 0xde, 0x8a, 0xc0, 0x64, 0x4f, 0x17, 0x37, 0xaa, 0x75, 0x9f, 0x81, 0x69, 0xa3, 0x8e, 0x9b, + 0x2d, 0xdb, 0xc3, 0x96, 0xde, 0x51, 0x4d, 0x7c, 0x13, 0x9b, 0xd9, 0x45, 0x9a, 0x28, 0x4e, 0x1d, + 0xde, 0x27, 0x2e, 0x97, 0xbb, 0xb8, 0x75, 0x02, 0xcb, 0xcf, 0x94, 0x57, 0x4b, 0x95, 0x5a, 0x75, + 0xab, 0xb4, 0xb1, 0x72, 0x4d, 0xdd, 0xde, 0xf8, 0x85, 0x8d, 0xea, 0x95, 0x0d, 0x45, 0x36, 0xfa, + 0xd4, 0x3e, 0xc4, 0xad, 0x5e, 0x03, 0xb9, 0xdf, 0x28, 0xf4, 0x20, 0x0c, 0x33, 0x4b, 0x1e, 0x43, + 0x33, 0x30, 0xb5, 0x51, 0x55, 0x37, 0xcb, 0xab, 0x25, 0xb5, 0x74, 0xe9, 0x52, 0x69, 0x65, 0x6b, + 0x93, 0x3d, 0x38, 0xfb, 0xda, 0x5b, 0xbd, 0x9b, 0xfa, 0x95, 0x28, 0xcc, 0x0c, 0xb1, 0x04, 0x15, + 0x78, 0xcf, 0xce, 0x1e, 0x23, 0x3e, 0x36, 0x8a, 0xf5, 0xcb, 0xa4, 0x2b, 0xa8, 0x69, 0x8e, 0xc7, + 0x5b, 0xfc, 0x27, 0x80, 0x78, 0xc9, 0xf2, 0x8c, 0x5d, 0x03, 0x3b, 0xfc, 0x9c, 0x81, 0x35, 0xf2, + 0x53, 0x5d, 0x39, 0x3b, 0x6a, 0xf8, 0x28, 0xa0, 0x96, 0xed, 0x1a, 0x9e, 0x71, 0x13, 0xab, 0x86, + 0x25, 0x0e, 0x25, 0x48, 0x63, 0x1f, 0x53, 0x64, 0x31, 0x52, 0xb6, 0x3c, 0x5f, 0xdb, 0xc2, 0x0d, + 0xad, 0x4f, 0x9b, 0x24, 0xf0, 0xa8, 0x22, 0x8b, 0x11, 0x5f, 0xfb, 0x04, 0xa4, 0xeb, 0x76, 0x9b, + 0xb4, 0x49, 0x4c, 0x8f, 0xd4, 0x0b, 0x49, 0x49, 0x31, 0x99, 0xaf, 0xc2, 0xfb, 0xd8, 0xee, 0x69, + 0x48, 0x5a, 0x49, 0x31, 0x19, 0x53, 0x79, 0x1c, 0xa6, 0xb4, 0x46, 0xc3, 0x21, 0xe4, 0x82, 0x88, + 0x75, 0xe6, 0x19, 0x5f, 0x4c, 0x15, 0xe7, 0x2e, 0x43, 0x42, 0xf8, 0x81, 0x94, 0x64, 0xe2, 0x09, + 0xb5, 0xc5, 0xce, 0xa4, 0x22, 0x4b, 0x49, 0x25, 0x61, 0x89, 0xc1, 0x13, 0x90, 0x36, 0x5c, 0xb5, + 0x7b, 0x38, 0x1a, 0x59, 0x88, 0x2c, 0x25, 0x94, 0x94, 0xe1, 0xfa, 0xa7, 0x61, 0x8b, 0xaf, 0x47, + 0x20, 0xd3, 0x7b, 0xb8, 0x8b, 0x56, 0x21, 0x61, 0xda, 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x59, 0x58, + 0x0a, 0x39, 0x0f, 0x5e, 0x5e, 0xe7, 0xfa, 0x8a, 0x8f, 0x9c, 0xfb, 0x67, 0x09, 0x12, 0x42, 0x8c, + 0x8e, 0x41, 0xac, 0xa5, 0x79, 0x7b, 0x94, 0x2e, 0x5e, 0x8c, 0xc8, 0x92, 0x42, 0xaf, 0x89, 0xdc, + 0x6d, 0x69, 0x16, 0x0d, 0x01, 0x2e, 0x27, 0xd7, 0x64, 0x5d, 0x4d, 0xac, 0xd5, 0x69, 0xdb, 0x6f, + 0x37, 0x9b, 0xd8, 0xf2, 0x5c, 0xb1, 0xae, 0x5c, 0xbe, 0xc2, 0xc5, 0xe8, 0x29, 0x98, 0xf6, 0x1c, + 0xcd, 0x30, 0x7b, 0x74, 0x63, 0x54, 0x57, 0x16, 0x03, 0xbe, 0x72, 0x1e, 0x8e, 0x0b, 0xde, 0x3a, + 0xf6, 0x34, 0x7d, 0x0f, 0xd7, 0xbb, 0xa0, 0x71, 0x7a, 0x72, 0xf8, 0x20, 0x57, 0x58, 0xe5, 0xe3, + 0x02, 0xbb, 0xf8, 0x03, 0x09, 0xa6, 0xc5, 0x83, 0x4a, 0xdd, 0x77, 0x56, 0x05, 0x40, 0xb3, 0x2c, + 0xdb, 0x0b, 0xba, 0x6b, 0x30, 0x94, 0x07, 0x70, 0xcb, 0x05, 0x1f, 0xa4, 0x04, 0x08, 0xe6, 0x9a, + 0x00, 0xdd, 0x91, 0x03, 0xdd, 0x36, 0x0f, 0x29, 0x7e, 0x72, 0x4f, 0x5f, 0xff, 0xb0, 0x47, 0x5b, + 0x60, 0x22, 0xf2, 0x44, 0x83, 0x66, 0x21, 0xbe, 0x83, 0x1b, 0x86, 0xc5, 0xcf, 0x13, 0xd9, 0x85, + 0x38, 0xa5, 0x8c, 0xf9, 0xa7, 0x94, 0xc5, 0xab, 0x30, 0xa3, 0xdb, 0xcd, 0x7e, 0x73, 0x8b, 0x72, + 0xdf, 0xe3, 0xb5, 0xfb, 0x49, 0xe9, 0x05, 0xe8, 0xb6, 0x98, 0x5f, 0x8e, 0x44, 0xd7, 0x6a, 0xc5, + 0xaf, 0x46, 0xe6, 0xd6, 0x18, 0xae, 0x26, 0xa6, 0xa9, 0xe0, 0x5d, 0x13, 0xeb, 0xc4, 0x74, 0xf8, + 0xf1, 0x63, 0xf0, 0xb1, 0x86, 0xe1, 0xed, 0xb5, 0x77, 0x96, 0x75, 0xbb, 0x79, 0xaa, 0x61, 0x37, + 0xec, 0xee, 0xeb, 0x2e, 0x72, 0x45, 0x2f, 0xe8, 0x2f, 0xfe, 0xca, 0x2b, 0xe9, 0x4b, 0xe7, 0x42, + 0xdf, 0x8f, 0xe5, 0x37, 0x60, 0x86, 0x2b, 0xab, 0xf4, 0xcc, 0x9d, 0x3d, 0x1a, 0xa0, 0x43, 0xcf, + 0x5d, 0xb2, 0xdf, 0x78, 0x9b, 0xd6, 0x6a, 0x65, 0x9a, 0x43, 0xc9, 0x18, 0x7b, 0x80, 0xc8, 0x2b, + 0xf0, 0x40, 0x0f, 0x1f, 0xdb, 0x97, 0xd8, 0x09, 0x61, 0xfc, 0x1e, 0x67, 0x9c, 0x09, 0x30, 0x6e, + 0x72, 0x68, 0x7e, 0x05, 0x26, 0x8f, 0xc2, 0xf5, 0x8f, 0x9c, 0x2b, 0x8d, 0x83, 0x24, 0x6b, 0x30, + 0x45, 0x49, 0xf4, 0xb6, 0xeb, 0xd9, 0x4d, 0x9a, 0xf4, 0x0e, 0xa7, 0xf9, 0xa7, 0xb7, 0xd9, 0x46, + 0xc9, 0x10, 0xd8, 0x8a, 0x8f, 0xca, 0xe7, 0x81, 0xbe, 0x66, 0xa8, 0x63, 0xdd, 0x0c, 0x61, 0x78, + 0x83, 0x1b, 0xe2, 0xeb, 0xe7, 0x3f, 0x0d, 0xb3, 0xe4, 0x37, 0xcd, 0x49, 0x41, 0x4b, 0xc2, 0x4f, + 0x99, 0xb2, 0x3f, 0x78, 0x99, 0xed, 0xc5, 0x19, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x1b, 0xd8, + 0xf3, 0xb0, 0xe3, 0xaa, 0x9a, 0x39, 0xcc, 0xbc, 0xc0, 0x63, 0x7a, 0xf6, 0x8b, 0xef, 0xf6, 0xae, + 0xe2, 0x1a, 0x43, 0x16, 0x4c, 0x33, 0xbf, 0x0d, 0x0f, 0x0e, 0x89, 0x8a, 0x11, 0x38, 0x5f, 0xe1, + 0x9c, 0xb3, 0x03, 0x91, 0x41, 0x68, 0x6b, 0x20, 0xe4, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0x47, 0x9c, + 0x13, 0x71, 0xac, 0x58, 0x52, 0xc2, 0x78, 0x19, 0xa6, 0x6f, 0x62, 0x67, 0xc7, 0x76, 0xf9, 0xd1, + 0xc8, 0x08, 0x74, 0xaf, 0x72, 0xba, 0x29, 0x0e, 0xa4, 0x67, 0x25, 0x84, 0xeb, 0x59, 0x48, 0xec, + 0x6a, 0x3a, 0x1e, 0x81, 0xe2, 0x4b, 0x9c, 0x62, 0x82, 0xe8, 0x13, 0x68, 0x01, 0xd2, 0x0d, 0x9b, + 0x97, 0xa5, 0x70, 0xf8, 0x6b, 0x1c, 0x9e, 0x12, 0x18, 0x4e, 0xd1, 0xb2, 0x5b, 0x6d, 0x93, 0xd4, + 0xac, 0x70, 0x8a, 0x3f, 0x16, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0x3f, 0x11, 0x14, 0x6e, + 0xc0, 0x9f, 0xcf, 0x43, 0xca, 0xb6, 0xcc, 0x8e, 0x6d, 0x8d, 0x62, 0xc4, 0x9f, 0x72, 0x06, 0xe0, + 0x10, 0x42, 0x70, 0x11, 0x92, 0xa3, 0x2e, 0xc4, 0x9f, 0xbd, 0x2b, 0xb6, 0x87, 0x58, 0x81, 0x35, + 0x98, 0x12, 0x09, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x9c, 0x53, 0x64, 0x02, 0x30, 0x3e, 0x0d, + 0x0f, 0xbb, 0x5e, 0x03, 0x8f, 0x42, 0xf2, 0xba, 0x98, 0x06, 0x87, 0x70, 0x57, 0xee, 0x60, 0x4b, + 0xdf, 0x1b, 0x8d, 0xe1, 0x2b, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, 0xb2, 0xa9, 0x39, 0xee, + 0x9e, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc1, 0x39, 0xd2, 0x3e, 0x88, 0x7b, 0xa4, 0x6d, 0x1d, 0x85, + 0xe6, 0xab, 0xc2, 0x23, 0x01, 0x18, 0xdf, 0x7a, 0xae, 0x47, 0x0f, 0xa0, 0x8e, 0xc2, 0xf6, 0x35, + 0xb1, 0xf5, 0x18, 0xb6, 0x12, 0x64, 0xbc, 0x08, 0x49, 0xd7, 0x78, 0x69, 0x24, 0x9a, 0xbf, 0x14, + 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x0d, 0x8e, 0x0f, 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x15, 0x27, 0x3b, + 0x36, 0xa4, 0x54, 0xf0, 0x94, 0x70, 0x54, 0xca, 0xbf, 0x16, 0x29, 0x01, 0xf7, 0x71, 0xd5, 0xc8, + 0x83, 0x82, 0xab, 0xed, 0x1e, 0xcd, 0x6b, 0x7f, 0x23, 0xbc, 0xc6, 0xb0, 0x3d, 0x5e, 0xdb, 0x82, + 0x63, 0x9c, 0xf1, 0x68, 0xeb, 0xfa, 0x75, 0x91, 0x58, 0x19, 0x7a, 0xbb, 0x77, 0x75, 0x7f, 0x11, + 0xe6, 0x7c, 0x77, 0x8a, 0x8e, 0xd4, 0x55, 0x9b, 0x5a, 0x6b, 0x04, 0xe6, 0x6f, 0x70, 0x66, 0x91, + 0xf1, 0xfd, 0x96, 0xd6, 0xad, 0x68, 0x2d, 0x42, 0x7e, 0x15, 0xb2, 0x82, 0xbc, 0x6d, 0x39, 0x58, + 0xb7, 0x1b, 0x96, 0xf1, 0x12, 0xae, 0x8f, 0x40, 0xfd, 0xb7, 0x7d, 0x4b, 0xb5, 0x1d, 0x80, 0x13, + 0xe6, 0x32, 0xc8, 0x7e, 0xaf, 0xa2, 0x1a, 0xcd, 0x96, 0xed, 0x78, 0x21, 0x8c, 0x7f, 0x27, 0x56, + 0xca, 0xc7, 0x95, 0x29, 0x2c, 0x5f, 0x82, 0x0c, 0xbd, 0x1c, 0x35, 0x24, 0xff, 0x9e, 0x13, 0x4d, + 0x76, 0x51, 0x3c, 0x71, 0xe8, 0x76, 0xb3, 0xa5, 0x39, 0xa3, 0xe4, 0xbf, 0x6f, 0x8a, 0xc4, 0xc1, + 0x21, 0x3c, 0x71, 0x78, 0x9d, 0x16, 0x26, 0xd5, 0x7e, 0x04, 0x86, 0x6f, 0x89, 0xc4, 0x21, 0x30, + 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0x83, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xa9, 0x6e, 0xa1, + 0x75, 0x70, 0xc3, 0x70, 0x3d, 0x87, 0xf5, 0xc1, 0x87, 0x53, 0x7d, 0xfb, 0xdd, 0xde, 0x26, 0x4c, + 0x09, 0x40, 0xf3, 0x97, 0x61, 0xaa, 0xaf, 0xc5, 0x40, 0x61, 0xdf, 0x2c, 0x64, 0x7f, 0xf9, 0x7d, + 0x9e, 0x8c, 0x7a, 0x3b, 0x8c, 0xfc, 0x3a, 0x59, 0xf7, 0xde, 0x3e, 0x20, 0x9c, 0xec, 0xe5, 0xf7, + 0xfd, 0xa5, 0xef, 0x69, 0x03, 0xf2, 0x97, 0x60, 0xb2, 0xa7, 0x07, 0x08, 0xa7, 0xfa, 0x15, 0x4e, + 0x95, 0x0e, 0xb6, 0x00, 0xf9, 0x73, 0x10, 0x23, 0xf5, 0x3c, 0x1c, 0xfe, 0xab, 0x1c, 0x4e, 0xd5, + 0xf3, 0x9f, 0x80, 0x84, 0xa8, 0xe3, 0xe1, 0xd0, 0x5f, 0xe3, 0x50, 0x1f, 0x42, 0xe0, 0xa2, 0x86, + 0x87, 0xc3, 0x3f, 0x27, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, 0xbb, 0xbf, 0x11, 0xe3, 0x79, + 0x58, 0xf8, 0xee, 0x22, 0x4c, 0xf0, 0xe2, 0x1d, 0x8e, 0xfe, 0x3c, 0xbf, 0xb9, 0x40, 0xe4, 0x9f, + 0x81, 0xf8, 0x88, 0x0e, 0xff, 0x4d, 0x0e, 0x65, 0xfa, 0xf9, 0x15, 0x48, 0x05, 0x0a, 0x76, 0x38, + 0xfc, 0xb7, 0x38, 0x3c, 0x88, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4e, 0xf0, 0xdb, 0xc2, 0x74, 0x8e, + 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1c, 0xfd, 0x3b, 0xc2, 0xeb, 0x02, 0x92, 0x7f, 0x1e, 0x92, 0x7e, + 0xfe, 0x0d, 0xc7, 0xff, 0x2e, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4e, 0xf1, 0x7b, + 0xc2, 0x03, 0x01, 0x14, 0xd9, 0x46, 0xfd, 0x35, 0x3d, 0x9c, 0xe9, 0xf7, 0xc5, 0x36, 0xea, 0x2b, + 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x0c, 0xa7, 0xf8, 0x03, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0xd1, 0x5f, + 0x24, 0xc3, 0x39, 0xfe, 0x50, 0x98, 0xd1, 0x57, 0x23, 0xf3, 0x35, 0x40, 0x83, 0x05, 0x32, 0x9c, + 0xef, 0x0b, 0x9c, 0x6f, 0x7a, 0xa0, 0x3e, 0xe6, 0xaf, 0xc0, 0xb1, 0xe1, 0xc5, 0x31, 0x9c, 0xf5, + 0x8b, 0xef, 0xf7, 0x3d, 0xce, 0x04, 0x6b, 0x63, 0x7e, 0xab, 0x9b, 0x65, 0x83, 0x85, 0x31, 0x9c, + 0xf6, 0x95, 0xf7, 0x7b, 0x13, 0x6d, 0xb0, 0x2e, 0xe6, 0x0b, 0x00, 0xdd, 0x9a, 0x14, 0xce, 0xf5, + 0x2a, 0xe7, 0x0a, 0x80, 0xc8, 0xd6, 0xe0, 0x25, 0x29, 0x1c, 0xff, 0x25, 0xb1, 0x35, 0x38, 0x82, + 0x6c, 0x0d, 0x51, 0x8d, 0xc2, 0xd1, 0xaf, 0x89, 0xad, 0x21, 0x20, 0xf9, 0x8b, 0x90, 0xb0, 0xda, + 0xa6, 0x49, 0x62, 0x0b, 0x1d, 0xfe, 0x19, 0x51, 0xf6, 0x47, 0x1f, 0x70, 0xb0, 0x00, 0xe4, 0xcf, + 0x41, 0x1c, 0x37, 0x77, 0x70, 0x3d, 0x0c, 0xf9, 0xef, 0x1f, 0x88, 0x7c, 0x42, 0xb4, 0xf3, 0xcf, + 0x03, 0xb0, 0x87, 0x69, 0xfa, 0x96, 0x28, 0x04, 0xfb, 0x1f, 0x1f, 0xf0, 0x2f, 0x14, 0xba, 0x90, + 0x2e, 0x01, 0xfb, 0xde, 0xe1, 0x70, 0x82, 0x77, 0x7b, 0x09, 0xe8, 0x03, 0xf8, 0xb3, 0x30, 0x71, + 0xdd, 0xb5, 0x2d, 0x4f, 0x6b, 0x84, 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xd3, 0x76, + 0xb0, 0xa7, 0x35, 0xdc, 0x30, 0xec, 0x7f, 0x71, 0xac, 0x0f, 0x20, 0x60, 0x5d, 0x73, 0xbd, 0x51, + 0xe6, 0xfd, 0xdf, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xfb, 0x06, 0xee, 0x84, 0x61, 0xdf, 0x13, + 0x46, 0x73, 0xfd, 0xfc, 0x27, 0x20, 0x49, 0x7e, 0xb2, 0xaf, 0x76, 0x42, 0xc0, 0xff, 0xc3, 0xc1, + 0x5d, 0x04, 0xb9, 0xb3, 0xeb, 0xd5, 0x3d, 0x23, 0xdc, 0xd9, 0xff, 0xcb, 0x57, 0x5a, 0xe8, 0xe7, + 0x0b, 0x90, 0x72, 0xbd, 0x7a, 0xbd, 0xcd, 0x3b, 0x9a, 0x10, 0xf8, 0x8f, 0x3f, 0xf0, 0x1f, 0x72, + 0x7d, 0x4c, 0xf1, 0xc4, 0xf0, 0xc3, 0x3a, 0x58, 0xb3, 0xd7, 0x6c, 0x76, 0x4c, 0x07, 0xdf, 0x99, + 0x82, 0x93, 0xba, 0xdd, 0xdc, 0xb1, 0xdd, 0x53, 0x2c, 0xa1, 0xf8, 0xe9, 0xe4, 0x94, 0x70, 0x1f, + 0x3f, 0x6d, 0xf3, 0xdd, 0x39, 0x77, 0xb4, 0x63, 0xba, 0xc5, 0x1f, 0x4d, 0x42, 0x62, 0x45, 0x73, + 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x27, 0x21, 0x51, 0xb6, 0xbc, 0x33, 0xa7, 0x6b, 0x9e, 0x43, 0x5f, + 0x33, 0x45, 0x8b, 0xc9, 0x7b, 0x77, 0xe6, 0xe3, 0x06, 0x91, 0x29, 0xfe, 0x10, 0x7a, 0x04, 0xe2, + 0xf4, 0x37, 0x3d, 0xa9, 0x8c, 0x16, 0x27, 0xdf, 0xb8, 0x33, 0x3f, 0xd6, 0xd5, 0x63, 0x63, 0xe8, + 0x1a, 0xa4, 0x2a, 0x9d, 0x6d, 0xc3, 0xf2, 0xce, 0x9f, 0x25, 0x74, 0xc4, 0x01, 0xb1, 0xe2, 0x33, + 0xf7, 0xee, 0xcc, 0x9f, 0x39, 0xd0, 0x40, 0x52, 0x16, 0xbb, 0x13, 0x13, 0x68, 0xfa, 0xf5, 0x62, + 0x90, 0x0b, 0x5d, 0x81, 0x84, 0xb8, 0x64, 0x27, 0xfe, 0xc5, 0x8b, 0xdc, 0x84, 0xfb, 0xe2, 0xf6, + 0xc9, 0xd0, 0x2f, 0x41, 0xba, 0xd2, 0xb9, 0x64, 0xda, 0x1a, 0xf7, 0x41, 0x7c, 0x41, 0x5a, 0x8a, + 0x14, 0x2f, 0xdc, 0xbb, 0x33, 0x7f, 0x76, 0x64, 0x62, 0x0e, 0xa7, 0xcc, 0x3d, 0x6c, 0xe8, 0x05, + 0x48, 0xfa, 0xd7, 0xf4, 0x9d, 0x42, 0xa4, 0xf8, 0x71, 0x6e, 0xf7, 0xfd, 0xd1, 0x77, 0xe9, 0x02, + 0x96, 0x33, 0x77, 0x4f, 0x2c, 0x48, 0x4b, 0xd2, 0xfd, 0x58, 0xce, 0x7d, 0xd2, 0xc3, 0x16, 0xb0, + 0xfc, 0xfc, 0x59, 0xfa, 0x12, 0x43, 0xba, 0x5f, 0xcb, 0x39, 0x7d, 0x97, 0x0e, 0x5d, 0x86, 0x89, + 0x4a, 0xa7, 0xd8, 0xf1, 0xb0, 0x4b, 0xbf, 0xea, 0x49, 0x17, 0x9f, 0xbe, 0x77, 0x67, 0xfe, 0xa3, + 0x23, 0xb2, 0x52, 0x9c, 0x22, 0x08, 0xd0, 0x02, 0xa4, 0x36, 0x6c, 0xa7, 0xa9, 0x99, 0x8c, 0x0f, + 0xd8, 0x4b, 0x99, 0x80, 0x08, 0x6d, 0x93, 0x99, 0xb0, 0xd5, 0x76, 0xe9, 0xff, 0x23, 0xfc, 0x14, + 0x31, 0xd9, 0x65, 0x42, 0x06, 0xc4, 0x2b, 0x9d, 0x8a, 0xd6, 0xca, 0xa6, 0xe9, 0x1b, 0x83, 0x87, + 0x97, 0x7d, 0x84, 0xd8, 0x5b, 0xcb, 0x74, 0x9c, 0x7e, 0x5a, 0x51, 0x3c, 0x7b, 0xef, 0xce, 0xfc, + 0xd3, 0x23, 0xdf, 0xb1, 0xa2, 0xb5, 0xe8, 0xed, 0xd8, 0x1d, 0xd0, 0x37, 0x25, 0xb2, 0xb1, 0xd8, + 0xa9, 0x2b, 0xb9, 0xe3, 0x24, 0xbd, 0xe3, 0x23, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, 0x5a, 0x9f, + 0x7d, 0xf3, 0x08, 0x33, 0x65, 0x4f, 0x36, 0xe4, 0xd6, 0xbf, 0xfe, 0xe6, 0x7d, 0x6f, 0x5a, 0xdf, + 0x02, 0xf4, 0xb2, 0x04, 0x93, 0x95, 0xce, 0x06, 0xaf, 0xb1, 0xc4, 0xf2, 0x0c, 0xff, 0x6a, 0x7d, + 0x98, 0xe5, 0x01, 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbe, 0x39, 0x7f, 0x7a, 0x64, 0x23, 0x68, 0x0a, + 0xa2, 0x36, 0xf4, 0xde, 0x13, 0x7d, 0x8e, 0x5a, 0x51, 0x22, 0xf5, 0xba, 0x8e, 0xeb, 0xc4, 0x8a, + 0xa9, 0x43, 0xac, 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, 0x1f, 0xaa, + 0xc2, 0x38, 0xf3, 0x30, 0xfd, 0xa2, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, 0x69, 0xe6, + 0x2e, 0x00, 0x74, 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0xb3, 0x41, 0xf2, 0x13, 0xcd, + 0x76, 0x3f, 0x8b, 0x95, 0x96, 0x62, 0xfc, 0x5b, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, 0x1c, 0xc8, + 0xfd, 0xb1, 0x72, 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, 0x58, 0x90, + 0x21, 0x75, 0x5a, 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, 0xff, 0x9f, + 0x8e, 0x73, 0x31, 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x5d, + 0x14, 0xd7, 0xdf, 0xb8, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0xbf, 0xdc, 0xcd, 0x8d, 0xbd, + 0x75, 0x37, 0x27, 0xbd, 0x73, 0x37, 0x27, 0xbd, 0x77, 0x37, 0x27, 0xfd, 0xe4, 0x6e, 0x4e, 0xba, + 0xbd, 0x9f, 0x93, 0xbe, 0xb2, 0x9f, 0x93, 0xbe, 0xbe, 0x9f, 0x93, 0xbe, 0xbd, 0x9f, 0x93, 0xbe, + 0xbb, 0x9f, 0x93, 0xde, 0xd8, 0xcf, 0x8d, 0x7d, 0x7f, 0x3f, 0x37, 0xf6, 0xd6, 0x7e, 0x4e, 0x7a, + 0x67, 0x3f, 0x37, 0xf6, 0xde, 0x7e, 0x4e, 0xfa, 0xc9, 0x7e, 0x4e, 0xba, 0xfd, 0xc3, 0xdc, 0xd8, + 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x35, 0xe3, 0x7e, 0xf9, 0x19, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -463,6 +483,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -589,6 +618,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -690,6 +728,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -760,6 +799,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -777,6 +820,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -807,7 +851,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -886,6 +930,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -915,23 +962,6 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -1023,8 +1053,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1032,11 +1066,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1063,14 +1097,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1078,43 +1112,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1171,8 +1205,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1185,6 +1220,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1276,6 +1315,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1300,252 +1340,270 @@ func valueToStringCasttype(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int32Ptr != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int32Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(m.Int32)) + i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) if m.MyUint64Ptr != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintCasttype(data, i, uint64(*m.MyUint64Ptr)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) } - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintCasttype(data, i, uint64(m.MyUint64)) + i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) if m.MyFloat32Ptr != nil { - data[i] = 0x2d + dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) } - data[i] = 0x35 + dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(data, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) if m.MyFloat64Ptr != nil { - data[i] = 0x39 + dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) } - data[i] = 0x41 + dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(data, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) if m.MyBytes != nil { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintCasttype(data, i, uint64(len(m.MyBytes))) - i += copy(data[i:], m.MyBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) + i += copy(dAtA[i:], m.MyBytes) } if m.NormalBytes != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintCasttype(data, i, uint64(len(m.NormalBytes))) - i += copy(data[i:], m.NormalBytes) + i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) + i += copy(dAtA[i:], m.NormalBytes) } if len(m.MyUint64S) > 0 { for _, num := range m.MyUint64S { - data[i] = 0x58 + dAtA[i] = 0x58 i++ - i = encodeVarintCasttype(data, i, uint64(num)) + i = encodeVarintCasttype(dAtA, i, uint64(num)) } } if len(m.MyMap) > 0 { for k := range m.MyMap { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.MyMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyCustomMap) > 0 { for k := range m.MyCustomMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.MyCustomMap[k] mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintCasttype(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintCasttype(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintCasttype(data, i, uint64(v)) + i = encodeVarintCasttype(dAtA, i, uint64(v)) } } if len(m.MyNullableMap) > 0 { for k := range m.MyNullableMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.MyNullableMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintCasttype(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCasttype(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 } - i += n1 } } if len(m.MyEmbeddedMap) > 0 { for k := range m.MyEmbeddedMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.MyEmbeddedMap[k] - msgSize := (&v).Size() - mapSize := 1 + sovCasttype(uint64(k)) + 1 + msgSize + sovCasttype(uint64(msgSize)) - i = encodeVarintCasttype(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovCasttype(uint64(msgSize)) + } + mapSize := 1 + sovCasttype(uint64(k)) + msgSize + i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCasttype(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCasttype(data, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(data[i:]) + i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) + n2, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } } + if m.String_ != nil { + dAtA[i] = 0x82 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) + } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCasttype(data, i, uint64(*m.Int64)) + i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Casttype(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Casttype(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Casttype(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Casttype(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCasttype(data []byte, offset int, v uint64) int { +func encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 676 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0xbb, 0x6f, 0xd3, 0x5e, - 0x14, 0xc7, 0xeb, 0xa6, 0x6e, 0xed, 0xeb, 0xe4, 0xf7, 0xab, 0xae, 0x18, 0xac, 0x4a, 0xa4, 0x51, - 0xab, 0x20, 0x06, 0x48, 0xaa, 0x34, 0x0a, 0x51, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x2b, 0x64, - 0xa8, 0x2a, 0x10, 0x8b, 0xd3, 0xb8, 0xa9, 0x85, 0x1f, 0x91, 0x1f, 0x20, 0x6f, 0x15, 0x0c, 0x48, - 0xfc, 0x05, 0xfc, 0x09, 0x8c, 0x2c, 0x48, 0x8c, 0x8c, 0x19, 0x19, 0x99, 0xfa, 0x62, 0xe9, 0xd8, - 0xb1, 0x62, 0xe2, 0xdc, 0x7b, 0xfd, 0x52, 0x5b, 0x50, 0xea, 0x0e, 0x47, 0xf7, 0x75, 0xce, 0xe7, - 0x7c, 0xef, 0xf1, 0xbd, 0xd7, 0xa8, 0xbe, 0xed, 0xda, 0x3d, 0xd7, 0x6f, 0x86, 0x8e, 0xaf, 0xef, - 0x18, 0xb6, 0xee, 0xf9, 0xbb, 0xba, 0x65, 0x78, 0xcd, 0x6d, 0xdd, 0x0f, 0x82, 0x68, 0x68, 0x34, - 0x86, 0x9e, 0x1b, 0xb8, 0x58, 0x48, 0xc6, 0x73, 0x77, 0x07, 0x66, 0xb0, 0x1b, 0xf6, 0x1a, 0x10, - 0xd7, 0x1c, 0xb8, 0x03, 0xb7, 0x49, 0x1d, 0x7a, 0xe1, 0x0e, 0x1d, 0xd1, 0x01, 0xed, 0xb1, 0xc0, - 0x85, 0x4f, 0x15, 0x24, 0xac, 0x42, 0xac, 0xfe, 0x56, 0x8f, 0x70, 0x1d, 0x09, 0xeb, 0x4e, 0xb0, - 0xdc, 0x7a, 0x1a, 0x78, 0x32, 0x57, 0xe3, 0x6e, 0x97, 0x14, 0xf1, 0xf7, 0xfe, 0x3c, 0x6f, 0x92, - 0x39, 0x4d, 0x30, 0xe3, 0x25, 0xbc, 0x88, 0x78, 0xea, 0x26, 0x4f, 0x52, 0x9f, 0xca, 0x68, 0x7f, - 0x7e, 0x22, 0xf3, 0x63, 0x0d, 0x7e, 0x81, 0x24, 0x35, 0xda, 0x84, 0x7e, 0xa7, 0x4d, 0x70, 0x25, - 0x70, 0x9d, 0x52, 0xee, 0x81, 0xdb, 0xf2, 0x5f, 0x05, 0x06, 0x86, 0x1f, 0x64, 0x1b, 0x4b, 0xa2, - 0x9f, 0xc3, 0x40, 0x93, 0xec, 0x8c, 0x85, 0xb7, 0x90, 0x90, 0x2c, 0xca, 0x53, 0x94, 0x7b, 0x3f, - 0x96, 0x50, 0x88, 0x2d, 0x24, 0x6c, 0xfc, 0x0a, 0x95, 0xd5, 0xe8, 0x91, 0xe5, 0xea, 0x71, 0x0d, - 0x78, 0x80, 0x4f, 0x2a, 0x5d, 0x00, 0xb7, 0xc7, 0x06, 0xc7, 0xe1, 0x94, 0x5c, 0xb6, 0x73, 0x34, - 0xfc, 0x12, 0x89, 0xe9, 0xb2, 0x3c, 0x4d, 0xd1, 0x0f, 0x62, 0xdd, 0xc5, 0xf0, 0x62, 0x8a, 0xcf, - 0x29, 0x67, 0xe5, 0x9e, 0x01, 0x3c, 0x57, 0x44, 0x79, 0x5c, 0x93, 0x44, 0x39, 0x2b, 0x78, 0xa6, - 0x1c, 0x2a, 0x2e, 0x50, 0x74, 0x41, 0xe5, 0x31, 0x5e, 0x4c, 0xf1, 0xf8, 0x31, 0x9a, 0x51, 0x23, - 0x25, 0x02, 0x6f, 0x59, 0x04, 0x72, 0x59, 0x59, 0x02, 0xea, 0x9d, 0x31, 0xa9, 0x34, 0x4e, 0x9b, - 0xb1, 0x19, 0x00, 0xd7, 0x90, 0xb4, 0xe1, 0x7a, 0xb6, 0x6e, 0x31, 0x1e, 0x22, 0x3c, 0x4d, 0x72, - 0xb2, 0x29, 0xbc, 0x49, 0x76, 0xc2, 0xbe, 0xb6, 0x2f, 0x4b, 0xb5, 0xd2, 0x75, 0xce, 0xa4, 0x98, - 0x9c, 0x1b, 0x1f, 0x9b, 0x88, 0x57, 0x23, 0x55, 0x1f, 0xca, 0x65, 0x40, 0x4a, 0xad, 0x9b, 0x8d, - 0x34, 0x22, 0xb9, 0x5b, 0x0d, 0xba, 0xbe, 0xe6, 0x04, 0x5e, 0xa4, 0xb4, 0x21, 0xe3, 0xd2, 0xd8, - 0x19, 0x21, 0x8c, 0xa6, 0xe3, 0x6d, 0xd2, 0xc5, 0x5f, 0x39, 0x72, 0xb1, 0x56, 0x43, 0x3f, 0x70, - 0x6d, 0x92, 0xb1, 0x42, 0x33, 0x2e, 0x5e, 0x9a, 0x31, 0xf5, 0x62, 0x79, 0x9d, 0x77, 0x07, 0x57, - 0xd8, 0xe9, 0xb3, 0xc0, 0x33, 0x9d, 0x01, 0x49, 0xfd, 0xf1, 0xa0, 0xf0, 0xa5, 0x4d, 0x15, 0xe0, - 0xf7, 0x1c, 0xaa, 0xa8, 0xd1, 0x46, 0x68, 0x59, 0x7a, 0xcf, 0x32, 0x88, 0xf2, 0xff, 0xa8, 0xf2, - 0xfa, 0xa5, 0xca, 0x73, 0x7e, 0x4c, 0x7b, 0x07, 0xb4, 0xb7, 0xc6, 0x16, 0x41, 0x9f, 0x27, 0xaa, - 0xa1, 0x62, 0xe7, 0x59, 0xf8, 0x03, 0x55, 0xb1, 0x66, 0xf7, 0x8c, 0x7e, 0xdf, 0xe8, 0x13, 0x15, - 0xff, 0xff, 0x43, 0x45, 0xce, 0x8f, 0xa9, 0x58, 0x21, 0xa7, 0xbe, 0xb8, 0x92, 0x1c, 0x6f, 0xae, - 0x8b, 0x50, 0x76, 0x24, 0xf0, 0x2c, 0x2a, 0xbd, 0x36, 0x22, 0xfa, 0xe8, 0x8a, 0x1a, 0xe9, 0xe2, - 0x1b, 0x88, 0x7f, 0xa3, 0x5b, 0xa1, 0x41, 0x1f, 0xd9, 0x29, 0x8d, 0x0d, 0x56, 0x26, 0xbb, 0xdc, - 0xdc, 0x43, 0x34, 0x7b, 0xfe, 0xd3, 0x5e, 0x29, 0x5e, 0x43, 0xf8, 0x62, 0x81, 0xf3, 0x04, 0x9e, - 0x11, 0x6e, 0xe5, 0x09, 0x52, 0x6b, 0x36, 0x2b, 0xd1, 0x96, 0x69, 0xf9, 0xae, 0x73, 0x81, 0x79, - 0xbe, 0x5c, 0xd7, 0x63, 0x2e, 0x54, 0xd1, 0x34, 0x9b, 0x24, 0x7b, 0x59, 0xa7, 0xaf, 0x3d, 0xfd, - 0x29, 0xd1, 0x3f, 0x4c, 0xa7, 0xad, 0x3c, 0x19, 0x1d, 0x55, 0x27, 0x7e, 0x80, 0xfd, 0x04, 0x3b, - 0x3c, 0xaa, 0x72, 0x27, 0x60, 0xa7, 0x60, 0x67, 0x60, 0x7b, 0xc7, 0x55, 0xee, 0x33, 0xd8, 0x17, - 0xb0, 0x6f, 0x60, 0xdf, 0xc1, 0x46, 0xc7, 0xe0, 0x0f, 0x76, 0x08, 0xfd, 0x13, 0x68, 0x4f, 0xa1, - 0x3d, 0x03, 0xdb, 0xfb, 0x55, 0x9d, 0xf8, 0x13, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xe5, 0x25, 0x59, - 0x69, 0x07, 0x00, 0x00, + // 701 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5, 0xaa, + 0xc8, 0x03, 0x24, 0x55, 0x1a, 0x95, 0xaa, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x05, 0x19, 0xaa, + 0x0a, 0xc4, 0x72, 0x69, 0xdd, 0x34, 0xc2, 0xb1, 0x23, 0xfb, 0x02, 0xf2, 0x56, 0x95, 0x01, 0x89, + 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a, 0x56, + 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0xbd, 0xbb, 0xf7, 0x3e, 0xef, 0x7b, + 0xef, 0xde, 0xdd, 0xc1, 0xb9, 0x2d, 0xb7, 0x55, 0x77, 0xfd, 0x4a, 0xc7, 0xf1, 0xc9, 0x8e, 0xd5, + 0x22, 0x9e, 0xbf, 0x4b, 0x6c, 0xcb, 0xab, 0x6c, 0x11, 0x9f, 0xd2, 0xa0, 0x6d, 0x95, 0xdb, 0x9e, + 0x4b, 0x5d, 0x94, 0xeb, 0xdb, 0xd3, 0x0f, 0x1a, 0x4d, 0xba, 0xdb, 0xa9, 0x97, 0xb7, 0xdc, 0x56, + 0xa5, 0xe1, 0x36, 0xdc, 0x0a, 0x77, 0xa8, 0x77, 0x76, 0xb8, 0xc5, 0x0d, 0x3e, 0x12, 0x81, 0x33, + 0x7f, 0x8a, 0x30, 0xb7, 0x42, 0x7c, 0x4a, 0x3e, 0x92, 0x00, 0xcd, 0xc1, 0xdc, 0x9a, 0x43, 0x17, + 0xaa, 0x2f, 0xa9, 0x27, 0x03, 0x15, 0x68, 0x19, 0x3d, 0xdf, 0xeb, 0x2a, 0xd9, 0x26, 0x9b, 0x33, + 0x07, 0x4b, 0x68, 0x16, 0x66, 0xf9, 0x58, 0x1e, 0xe3, 0x3e, 0xc5, 0x83, 0xae, 0x22, 0x25, 0x7e, + 0x62, 0x0d, 0xbd, 0x81, 0x05, 0x23, 0xd8, 0x68, 0x3a, 0x74, 0xb1, 0xc6, 0x70, 0x19, 0x15, 0x68, + 0xe3, 0xfa, 0xc3, 0x5e, 0x57, 0x59, 0xf8, 0xa7, 0x40, 0x6a, 0xf9, 0x34, 0xd9, 0x58, 0x3f, 0xfa, + 0x75, 0xd0, 0xb6, 0xcc, 0x34, 0x0b, 0x6d, 0xc2, 0x5c, 0xdf, 0x94, 0xc7, 0x39, 0xf7, 0x51, 0x2c, + 0x61, 0x24, 0xf6, 0x00, 0x86, 0xde, 0xc1, 0x29, 0x23, 0x78, 0x6a, 0xbb, 0x24, 0xae, 0x41, 0x56, + 0x05, 0xda, 0x98, 0xbe, 0xd4, 0xeb, 0x2a, 0xb5, 0xa1, 0xc1, 0x71, 0x38, 0x27, 0x9f, 0xa3, 0xa1, + 0xb7, 0x30, 0x3f, 0xb0, 0xe5, 0x09, 0x8e, 0x7e, 0x1c, 0xeb, 0x1e, 0x0d, 0x9f, 0xe0, 0x52, 0xca, + 0x45, 0xb9, 0x27, 0x55, 0xa0, 0x81, 0x51, 0x94, 0xc7, 0x35, 0x39, 0x47, 0x4b, 0x29, 0x5f, 0xac, + 0xc9, 0x39, 0x8e, 0x1e, 0x51, 0x79, 0x8c, 0x4f, 0x70, 0xe8, 0x19, 0x9c, 0x34, 0x02, 0x3d, 0xa0, + 0x96, 0x2f, 0xe7, 0x55, 0xa0, 0x4d, 0xe9, 0xf3, 0xbd, 0xae, 0x72, 0x7f, 0x48, 0x2a, 0x8f, 0x33, + 0xfb, 0x00, 0xa4, 0xc2, 0xc2, 0xba, 0xeb, 0xb5, 0x88, 0x2d, 0x78, 0x90, 0xf1, 0xcc, 0xf4, 0x14, + 0xda, 0x60, 0x3b, 0x11, 0xa7, 0xed, 0xcb, 0x05, 0x35, 0x73, 0x93, 0x9e, 0x4c, 0x48, 0xa8, 0x09, + 0xb3, 0x46, 0x60, 0x90, 0xb6, 0x3c, 0xa5, 0x66, 0xb4, 0x42, 0xf5, 0x6e, 0x79, 0x10, 0xd1, 0xbf, + 0x5b, 0x65, 0xbe, 0xbe, 0xea, 0x50, 0x2f, 0xd0, 0x6b, 0xbd, 0xae, 0x32, 0x3f, 0x74, 0x46, 0x83, + 0xb4, 0x79, 0x3a, 0x91, 0x01, 0x7d, 0x07, 0xec, 0x62, 0xad, 0x74, 0x7c, 0xea, 0xb6, 0x58, 0xc6, + 0x22, 0xcf, 0x38, 0x7b, 0x65, 0xc6, 0x81, 0x97, 0xc8, 0xeb, 0xec, 0x1f, 0x5d, 0x63, 0xa7, 0xaf, + 0xa8, 0xd7, 0x74, 0x1a, 0x2c, 0xf5, 0x97, 0xa3, 0x91, 0x2f, 0xed, 0x40, 0x01, 0xfa, 0x04, 0x60, + 0xd1, 0x08, 0xd6, 0x3b, 0xb6, 0x4d, 0xea, 0xb6, 0xc5, 0x94, 0xdf, 0xe2, 0xca, 0xe7, 0xae, 0x54, + 0x9e, 0xf2, 0x13, 0xda, 0x17, 0xf7, 0x8f, 0x94, 0xea, 0xd0, 0x22, 0xf8, 0x13, 0xc4, 0x35, 0x9c, + 0xcf, 0x89, 0x3e, 0x73, 0x15, 0xab, 0xad, 0xba, 0xb5, 0xbd, 0x6d, 0x6d, 0x33, 0x15, 0xb7, 0xff, + 0xa3, 0x22, 0xe5, 0x27, 0x54, 0x2c, 0xb3, 0xae, 0x1f, 0x5d, 0x49, 0x8a, 0x87, 0x5e, 0xc0, 0x09, + 0x51, 0x61, 0xb9, 0xa4, 0x02, 0x2d, 0x7f, 0xcd, 0x36, 0x4c, 0x0e, 0xc7, 0x8c, 0x31, 0xd3, 0x4b, + 0x10, 0x26, 0x3d, 0x86, 0x4a, 0x30, 0xf3, 0xde, 0x0a, 0xf8, 0x2b, 0x9e, 0x37, 0xd9, 0x10, 0xdd, + 0x81, 0xd9, 0x0f, 0xc4, 0xee, 0x58, 0xfc, 0xd5, 0x1e, 0x37, 0x85, 0xb1, 0x3c, 0xb6, 0x04, 0xa6, + 0x9f, 0xc0, 0xd2, 0xc5, 0x5e, 0xb9, 0x56, 0xbc, 0x09, 0xd1, 0xe5, 0x13, 0x4b, 0x13, 0xb2, 0x82, + 0x70, 0x2f, 0x4d, 0x28, 0x54, 0x4b, 0x49, 0xcd, 0x37, 0x9b, 0xb6, 0xef, 0x3a, 0x97, 0x98, 0x17, + 0xeb, 0x7f, 0x33, 0xe6, 0x0c, 0x86, 0x13, 0x62, 0x92, 0xed, 0x65, 0x8d, 0x7f, 0x1f, 0xfc, 0x97, + 0x33, 0x85, 0xa1, 0x3f, 0x3f, 0x08, 0xb1, 0x74, 0x18, 0x62, 0xe9, 0x57, 0x88, 0xa5, 0xe3, 0x10, + 0x83, 0x93, 0x10, 0x83, 0xd3, 0x10, 0x83, 0xb3, 0x10, 0x83, 0xbd, 0x08, 0x83, 0xaf, 0x11, 0x06, + 0xdf, 0x22, 0x0c, 0x7e, 0x44, 0x18, 0xfc, 0x8c, 0x30, 0x38, 0x88, 0xb0, 0x74, 0x18, 0x61, 0xe9, + 0x38, 0xc2, 0xe0, 0x24, 0xc2, 0xd2, 0x69, 0x84, 0xc1, 0x59, 0x84, 0xc1, 0xde, 0x6f, 0x2c, 0xfd, + 0x0d, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x47, 0x3b, 0xeb, 0xba, 0x07, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto index 45e8e516..767c0398 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go index 31bb75e7..240e96a8 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go @@ -17,6 +17,7 @@ package casttype import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestCastawayProto(t *testing.T) { } func TestCastawayMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +110,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +124,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -133,21 +142,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -167,24 +180,28 @@ func TestWilsonProto(t *testing.T) { } func TestWilsonMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +220,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +234,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +297,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +314,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +331,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +348,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +365,18 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +384,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +449,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +485,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go index 38cc9150..4eeaca0d 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go @@ -28,8 +28,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -42,24 +40,27 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,json=int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,json=myUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,json=myUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,json=myFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,json=myFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,json=myFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,json=myFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,json=myBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes,json=normalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,json=myUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,json=myMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,json=myCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,json=myNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,json=myEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` + MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` + MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` + MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` + MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` + MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` + MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` + MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` + NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` + MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` + MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -68,7 +69,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -89,244 +90,265 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3788 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0x67, - 0x76, 0x0e, 0x6f, 0x12, 0x79, 0x48, 0x51, 0xd4, 0x48, 0xb1, 0x69, 0x6d, 0x7c, 0x93, 0x93, 0xd8, - 0xeb, 0xdd, 0x95, 0x5c, 0xc7, 0xb1, 0x1d, 0x7a, 0x9b, 0x85, 0x28, 0xd1, 0x5a, 0x1a, 0xba, 0x75, - 0x24, 0xae, 0xed, 0xb4, 0xc0, 0x60, 0x44, 0x8e, 0x28, 0xda, 0xc3, 0x19, 0x96, 0x33, 0xb4, 0xad, - 0x7d, 0x4a, 0xeb, 0xb6, 0x8b, 0x6d, 0xd1, 0x7b, 0x81, 0xe6, 0xde, 0x26, 0x40, 0x9b, 0x34, 0xbd, - 0x25, 0x6d, 0x53, 0x14, 0x7d, 0x0a, 0x50, 0xa4, 0xcd, 0x53, 0xd1, 0xf6, 0xa9, 0x0f, 0x45, 0x6e, - 0x0d, 0xd0, 0xb4, 0x49, 0xdb, 0x14, 0x30, 0xd0, 0xa0, 0x79, 0xe9, 0x39, 0xff, 0x65, 0x38, 0xbc, - 0x48, 0x43, 0x29, 0x48, 0x53, 0x01, 0x84, 0x38, 0xe7, 0x3f, 0xdf, 0x37, 0x67, 0xce, 0x7f, 0xfe, - 0x73, 0xce, 0xff, 0x0f, 0xe1, 0xaf, 0x7e, 0x04, 0x8e, 0x55, 0x6d, 0xbb, 0x6a, 0x1a, 0x33, 0x8d, - 0xa6, 0xed, 0xda, 0x1b, 0xad, 0xcd, 0x99, 0x8a, 0xe1, 0x94, 0x9b, 0xb5, 0x86, 0x6b, 0x37, 0xa7, - 0x99, 0x4c, 0x19, 0xe5, 0x1a, 0xd3, 0x52, 0x63, 0x6a, 0x09, 0xc6, 0x2e, 0xd7, 0x4c, 0x63, 0xde, - 0x53, 0x5c, 0x33, 0x5c, 0xe5, 0x22, 0x44, 0x37, 0x51, 0x98, 0x0d, 0x1d, 0x8b, 0x9c, 0x4a, 0x9e, - 0x7d, 0x70, 0xba, 0x0b, 0x34, 0xdd, 0x89, 0x58, 0x25, 0xb1, 0xca, 0x10, 0x53, 0x1f, 0x46, 0x61, - 0xbc, 0xcf, 0xa8, 0xa2, 0x40, 0xd4, 0xd2, 0xeb, 0xc4, 0x18, 0x3a, 0x95, 0x50, 0xd9, 0x77, 0x25, - 0x0b, 0xc3, 0x0d, 0xbd, 0x7c, 0x53, 0xaf, 0x1a, 0xd9, 0x30, 0x13, 0xcb, 0x4b, 0xe5, 0x08, 0x40, - 0xc5, 0x68, 0x18, 0x56, 0xc5, 0xb0, 0xca, 0xdb, 0xd9, 0x08, 0x5a, 0x91, 0x50, 0x7d, 0x12, 0xe5, - 0x1b, 0x30, 0xd6, 0x68, 0x6d, 0x98, 0xb5, 0xb2, 0xe6, 0x53, 0x03, 0x54, 0x8b, 0xa9, 0x19, 0x3e, - 0x30, 0xdf, 0x56, 0x3e, 0x09, 0xa3, 0xb7, 0x0d, 0xfd, 0xa6, 0x5f, 0x35, 0xc9, 0x54, 0xd3, 0x24, - 0xf6, 0x29, 0xce, 0x41, 0xaa, 0x6e, 0x38, 0x0e, 0x1a, 0xa0, 0xb9, 0xdb, 0x0d, 0x23, 0x1b, 0x65, - 0x4f, 0x7f, 0xac, 0xe7, 0xe9, 0xbb, 0x9f, 0x3c, 0x29, 0x50, 0xeb, 0x08, 0x52, 0x66, 0x21, 0x61, - 0x58, 0xad, 0x3a, 0x67, 0x88, 0xed, 0xe0, 0xbf, 0x02, 0x6a, 0x74, 0xb3, 0xc4, 0x09, 0x26, 0x28, - 0x86, 0x1d, 0xa3, 0x79, 0xab, 0x56, 0x36, 0xb2, 0x43, 0x8c, 0xe0, 0x64, 0x0f, 0xc1, 0x1a, 0x1f, - 0xef, 0xe6, 0x90, 0x38, 0x7c, 0x94, 0x84, 0x71, 0xc7, 0x35, 0x2c, 0xa7, 0x66, 0x5b, 0xd9, 0x61, - 0x46, 0xf2, 0x50, 0x9f, 0x59, 0x34, 0xcc, 0x4a, 0x37, 0x45, 0x1b, 0xa7, 0x9c, 0x87, 0x61, 0xbb, - 0xe1, 0xe2, 0x37, 0x27, 0x1b, 0xc7, 0xf9, 0x49, 0x9e, 0x7d, 0xa0, 0x6f, 0x20, 0xac, 0x70, 0x1d, - 0x55, 0x2a, 0x2b, 0x45, 0xc8, 0x38, 0x76, 0xab, 0x59, 0x36, 0xb4, 0xb2, 0x5d, 0x31, 0xb4, 0x9a, - 0xb5, 0x69, 0x67, 0x13, 0x8c, 0xe0, 0x68, 0xef, 0x83, 0x30, 0xc5, 0x39, 0xd4, 0x2b, 0xa2, 0x9a, - 0x9a, 0x76, 0x3a, 0xae, 0x95, 0x03, 0x30, 0xe4, 0x6c, 0x5b, 0xae, 0x7e, 0x27, 0x9b, 0x62, 0x11, - 0x22, 0xae, 0xa6, 0xfe, 0x3b, 0x06, 0xa3, 0x83, 0x84, 0xd8, 0x25, 0x88, 0x6d, 0xd2, 0x53, 0x62, - 0x80, 0xed, 0xc1, 0x07, 0x1c, 0xd3, 0xe9, 0xc4, 0xa1, 0x7d, 0x3a, 0x71, 0x16, 0x92, 0x96, 0xe1, - 0xb8, 0x46, 0x85, 0x47, 0x44, 0x64, 0xc0, 0x98, 0x02, 0x0e, 0xea, 0x0d, 0xa9, 0xe8, 0xbe, 0x42, - 0xea, 0x1a, 0x8c, 0x7a, 0x26, 0x69, 0x4d, 0xdd, 0xaa, 0xca, 0xd8, 0x9c, 0x09, 0xb2, 0x64, 0xba, - 0x20, 0x71, 0x2a, 0xc1, 0xd4, 0xb4, 0xd1, 0x71, 0xad, 0xcc, 0x03, 0xd8, 0x96, 0x61, 0x6f, 0xe2, - 0xf2, 0x2a, 0x9b, 0x18, 0x27, 0xfd, 0xbd, 0xb4, 0x42, 0x2a, 0x3d, 0x5e, 0xb2, 0xb9, 0xb4, 0x6c, - 0x2a, 0x8f, 0xb5, 0x43, 0x6d, 0x78, 0x87, 0x48, 0x59, 0xe2, 0x8b, 0xac, 0x27, 0xda, 0x4a, 0x90, - 0x6e, 0x1a, 0x14, 0xf7, 0xe8, 0x62, 0xfe, 0x64, 0x09, 0x66, 0xc4, 0x74, 0xe0, 0x93, 0xa9, 0x02, - 0xc6, 0x1f, 0x6c, 0xa4, 0xe9, 0xbf, 0x54, 0x4e, 0x80, 0x27, 0xd0, 0x58, 0x58, 0x01, 0xcb, 0x42, - 0x29, 0x29, 0x5c, 0x46, 0xd9, 0xe4, 0x45, 0x48, 0x77, 0xba, 0x47, 0x99, 0x80, 0x98, 0xe3, 0xea, - 0x4d, 0x97, 0x45, 0x61, 0x4c, 0xe5, 0x17, 0x4a, 0x06, 0x22, 0x98, 0x64, 0x58, 0x96, 0x8b, 0xa9, - 0xf4, 0x75, 0xf2, 0x02, 0x8c, 0x74, 0xdc, 0x7e, 0x50, 0xe0, 0xd4, 0x53, 0x43, 0x30, 0xd1, 0x2f, - 0xe6, 0xfa, 0x86, 0x3f, 0x2e, 0x1f, 0x8c, 0x80, 0x0d, 0xa3, 0x89, 0x71, 0x47, 0x0c, 0xe2, 0x0a, - 0x23, 0x2a, 0x66, 0xea, 0x1b, 0x86, 0x89, 0xd1, 0x14, 0x3a, 0x95, 0x3e, 0xfb, 0x8d, 0x81, 0xa2, - 0x7a, 0x7a, 0x91, 0x20, 0x2a, 0x47, 0x2a, 0x8f, 0x43, 0x54, 0xa4, 0x38, 0x62, 0x38, 0x3d, 0x18, - 0x03, 0xc5, 0xa2, 0xca, 0x70, 0xca, 0xd7, 0x20, 0x41, 0xff, 0xb9, 0x6f, 0x87, 0x98, 0xcd, 0x71, - 0x12, 0x90, 0x5f, 0x95, 0x49, 0x88, 0xb3, 0x30, 0xab, 0x18, 0xb2, 0x34, 0x78, 0xd7, 0x34, 0x31, - 0x15, 0x63, 0x53, 0x6f, 0x99, 0xae, 0x76, 0x4b, 0x37, 0x5b, 0x06, 0x0b, 0x18, 0x9c, 0x18, 0x21, - 0xfc, 0x1e, 0xc9, 0x94, 0xa3, 0x90, 0xe4, 0x51, 0x59, 0x43, 0xcc, 0x1d, 0x96, 0x7d, 0x62, 0x2a, - 0x0f, 0xd4, 0x22, 0x49, 0xe8, 0xf6, 0x37, 0x1c, 0x5c, 0x0b, 0x62, 0x6a, 0xd9, 0x2d, 0x48, 0xc0, - 0x6e, 0x7f, 0xa1, 0x3b, 0xf1, 0x1d, 0xee, 0xff, 0x78, 0xdd, 0xb1, 0x38, 0xf5, 0xe7, 0x61, 0x88, - 0xb2, 0xf5, 0x36, 0x0a, 0xc9, 0xf5, 0xeb, 0xab, 0x05, 0x6d, 0x7e, 0xa5, 0x94, 0x5f, 0x2c, 0x64, - 0x42, 0x4a, 0x1a, 0x80, 0x09, 0x2e, 0x2f, 0xae, 0xcc, 0xae, 0x67, 0xc2, 0xde, 0x75, 0x71, 0x79, - 0xfd, 0xfc, 0xb9, 0x4c, 0xc4, 0x03, 0x94, 0xb8, 0x20, 0xea, 0x57, 0x78, 0xe4, 0x6c, 0x26, 0x86, - 0x91, 0x90, 0xe2, 0x04, 0xc5, 0x6b, 0x85, 0x79, 0xd4, 0x18, 0xea, 0x94, 0xa0, 0xce, 0xb0, 0x32, - 0x02, 0x09, 0x26, 0xc9, 0xaf, 0xac, 0x2c, 0x66, 0xe2, 0x1e, 0xe7, 0xda, 0xba, 0x5a, 0x5c, 0x5e, - 0xc8, 0x24, 0x3c, 0xce, 0x05, 0x75, 0xa5, 0xb4, 0x9a, 0x01, 0x8f, 0x61, 0xa9, 0xb0, 0xb6, 0x36, - 0xbb, 0x50, 0xc8, 0x24, 0x3d, 0x8d, 0xfc, 0xf5, 0xf5, 0xc2, 0x5a, 0x26, 0xd5, 0x61, 0x16, 0xde, - 0x62, 0xc4, 0xbb, 0x45, 0x61, 0xb9, 0xb4, 0x94, 0x49, 0x2b, 0x63, 0x30, 0xc2, 0x6f, 0x21, 0x8d, - 0x18, 0xed, 0x12, 0xa1, 0xa5, 0x99, 0xb6, 0x21, 0x9c, 0x65, 0xac, 0x43, 0x80, 0x1a, 0xca, 0xd4, - 0x1c, 0xc4, 0x58, 0x74, 0x61, 0x14, 0xa7, 0x17, 0x67, 0xf3, 0x85, 0x45, 0x6d, 0x65, 0x75, 0xbd, - 0xb8, 0xb2, 0x3c, 0xbb, 0x88, 0xbe, 0xf3, 0x64, 0x6a, 0xe1, 0xc7, 0x4a, 0x45, 0xb5, 0x30, 0x8f, - 0xfe, 0xf3, 0xc9, 0x56, 0x0b, 0xb3, 0xeb, 0x28, 0x8b, 0x4c, 0x9d, 0x86, 0x89, 0x7e, 0x79, 0xa6, - 0xdf, 0xca, 0x98, 0x7a, 0x29, 0x04, 0xe3, 0x7d, 0x52, 0x66, 0xdf, 0x55, 0xf4, 0x1d, 0x88, 0xf1, - 0x48, 0xe3, 0x45, 0xe4, 0xeb, 0x7d, 0x73, 0x2f, 0x8b, 0xbb, 0x9e, 0x42, 0xc2, 0x70, 0xfe, 0x42, - 0x1a, 0xd9, 0xa1, 0x90, 0x12, 0x45, 0x4f, 0x38, 0xdd, 0x0d, 0x41, 0x76, 0x27, 0xee, 0x80, 0xf5, - 0x1e, 0xee, 0x58, 0xef, 0x97, 0xba, 0x0d, 0x38, 0xbe, 0xf3, 0x33, 0xf4, 0x58, 0xf1, 0x72, 0x08, - 0x0e, 0xf4, 0xef, 0x37, 0xfa, 0xda, 0xf0, 0x38, 0x0c, 0xd5, 0x0d, 0x77, 0xcb, 0x96, 0x35, 0xf7, - 0xe1, 0x3e, 0x99, 0x9c, 0x86, 0xbb, 0x7d, 0x25, 0x50, 0xfe, 0x52, 0x10, 0xd9, 0xa9, 0x69, 0xe0, - 0xd6, 0xf4, 0x58, 0xfa, 0xc3, 0x30, 0xdc, 0xdf, 0x97, 0xbc, 0xaf, 0xa1, 0x87, 0x01, 0x6a, 0x56, - 0xa3, 0xe5, 0xf2, 0xba, 0xca, 0xd3, 0x4c, 0x82, 0x49, 0xd8, 0x12, 0xa6, 0x14, 0xd2, 0x72, 0xbd, - 0xf1, 0x08, 0x1b, 0x07, 0x2e, 0x62, 0x0a, 0x17, 0xdb, 0x86, 0x46, 0x99, 0xa1, 0x47, 0x76, 0x78, - 0xd2, 0x9e, 0x92, 0x75, 0x06, 0x32, 0x65, 0xb3, 0x66, 0x58, 0xae, 0xe6, 0xb8, 0x4d, 0x43, 0xaf, - 0xd7, 0xac, 0x2a, 0xcb, 0xa3, 0xf1, 0x5c, 0x6c, 0x53, 0x37, 0x1d, 0x43, 0x1d, 0xe5, 0xc3, 0x6b, - 0x72, 0x94, 0x10, 0xac, 0x58, 0x34, 0x7d, 0x88, 0xa1, 0x0e, 0x04, 0x1f, 0xf6, 0x10, 0x53, 0xff, - 0x30, 0x0c, 0x49, 0x5f, 0x77, 0xa6, 0x1c, 0x87, 0xd4, 0x0d, 0xfd, 0x96, 0xae, 0xc9, 0x8e, 0x9b, - 0x7b, 0x22, 0x49, 0xb2, 0x55, 0xd1, 0x75, 0x9f, 0x81, 0x09, 0xa6, 0x82, 0xcf, 0x88, 0x37, 0x2a, - 0x9b, 0xba, 0xe3, 0x30, 0xa7, 0xc5, 0x99, 0xaa, 0x42, 0x63, 0x2b, 0x34, 0x34, 0x27, 0x47, 0x94, - 0x47, 0x61, 0x9c, 0x21, 0xea, 0x98, 0x78, 0x6b, 0x0d, 0xd3, 0xd0, 0x68, 0x0f, 0xe0, 0xb0, 0x7c, - 0xea, 0x59, 0x36, 0x46, 0x1a, 0x4b, 0x42, 0x81, 0x2c, 0x72, 0x94, 0x05, 0x38, 0xcc, 0x60, 0x55, - 0xc3, 0x32, 0x9a, 0xba, 0x6b, 0x68, 0xc6, 0x4f, 0xb6, 0x50, 0x57, 0xd3, 0xad, 0x8a, 0xb6, 0xa5, - 0x3b, 0x5b, 0xd9, 0x09, 0x3f, 0xc1, 0x21, 0xd2, 0x5d, 0x10, 0xaa, 0x05, 0xa6, 0x39, 0x6b, 0x55, - 0xbe, 0x8b, 0x7a, 0x4a, 0x0e, 0x0e, 0x30, 0x22, 0x74, 0x0a, 0x3e, 0xb3, 0x56, 0xde, 0x32, 0xca, - 0x37, 0xb5, 0x96, 0xbb, 0x79, 0x31, 0xfb, 0x35, 0x3f, 0x03, 0x33, 0x72, 0x8d, 0xe9, 0xcc, 0x91, - 0x4a, 0x09, 0x35, 0x94, 0x35, 0x48, 0xd1, 0x7c, 0xd4, 0x6b, 0xdf, 0x47, 0xb3, 0xed, 0x26, 0xab, - 0x11, 0xe9, 0x3e, 0x8b, 0xdb, 0xe7, 0xc4, 0xe9, 0x15, 0x01, 0x58, 0xc2, 0xfe, 0x34, 0x17, 0x5b, - 0x5b, 0x2d, 0x14, 0xe6, 0xd5, 0xa4, 0x64, 0xb9, 0x6c, 0x37, 0x29, 0xa6, 0xaa, 0xb6, 0xe7, 0xe3, - 0x24, 0x8f, 0xa9, 0xaa, 0x2d, 0x3d, 0x8c, 0xfe, 0x2a, 0x97, 0xf9, 0x63, 0xe3, 0xde, 0x45, 0x34, - 0xeb, 0x4e, 0x36, 0xd3, 0xe1, 0xaf, 0x72, 0x79, 0x81, 0x2b, 0x88, 0x30, 0x77, 0x70, 0x49, 0xdc, - 0xdf, 0xf6, 0x97, 0x1f, 0x38, 0xd6, 0xf3, 0x94, 0xdd, 0x50, 0xbc, 0x63, 0x63, 0xbb, 0x17, 0xa8, - 0x74, 0xdc, 0xb1, 0xb1, 0xdd, 0x0d, 0x7b, 0x88, 0x6d, 0xc0, 0x9a, 0x46, 0x19, 0x5d, 0x5e, 0xc9, - 0x1e, 0xf4, 0x6b, 0xfb, 0x06, 0x94, 0x19, 0x0c, 0xe4, 0xb2, 0x66, 0x58, 0xfa, 0x06, 0xce, 0xbd, - 0xde, 0xc4, 0x2f, 0x4e, 0xf6, 0xa8, 0x5f, 0x39, 0x5d, 0x2e, 0x17, 0xd8, 0xe8, 0x2c, 0x1b, 0x54, - 0x4e, 0xc3, 0x98, 0xbd, 0x71, 0xa3, 0xcc, 0x83, 0x4b, 0x43, 0x9e, 0xcd, 0xda, 0x9d, 0xec, 0x83, - 0xcc, 0x4d, 0xa3, 0x34, 0xc0, 0x42, 0x6b, 0x95, 0x89, 0x95, 0xaf, 0x23, 0xb9, 0xb3, 0xa5, 0x37, - 0x1b, 0xac, 0x48, 0x3b, 0xe8, 0x54, 0x23, 0xfb, 0x10, 0x57, 0xe5, 0xf2, 0x65, 0x29, 0x56, 0x0a, - 0x70, 0x94, 0x1e, 0xde, 0xd2, 0x2d, 0x5b, 0x6b, 0x39, 0x86, 0xd6, 0x36, 0xd1, 0x9b, 0x8b, 0x87, - 0xc9, 0x2c, 0xf5, 0x01, 0xa9, 0x56, 0x72, 0x30, 0x99, 0x49, 0x25, 0x39, 0x3d, 0xd7, 0x60, 0xa2, - 0x65, 0xd5, 0x2c, 0x0c, 0x71, 0x1c, 0x21, 0x30, 0x5f, 0xb0, 0xd9, 0x7f, 0x19, 0xde, 0xa1, 0xe9, - 0x2e, 0xf9, 0xb5, 0x79, 0x90, 0xa8, 0xe3, 0xad, 0x5e, 0xe1, 0x54, 0x0e, 0x52, 0xfe, 0xd8, 0x51, - 0x12, 0xc0, 0xa3, 0x07, 0xab, 0x1b, 0x56, 0xd4, 0xb9, 0x95, 0x79, 0xaa, 0x85, 0x4f, 0x14, 0xb0, - 0xb0, 0x61, 0x4d, 0x5e, 0x2c, 0xae, 0x17, 0x34, 0xb5, 0xb4, 0xbc, 0x5e, 0x5c, 0x2a, 0x64, 0x22, - 0xa7, 0x13, 0xf1, 0x8f, 0x86, 0x33, 0x4f, 0xe2, 0x5f, 0x78, 0xea, 0xad, 0x30, 0xa4, 0x3b, 0xfb, - 0x60, 0xe5, 0xdb, 0x70, 0x50, 0x6e, 0x5a, 0x1d, 0xc3, 0xd5, 0x6e, 0xd7, 0x9a, 0x2c, 0x9c, 0xeb, - 0x3a, 0xef, 0x24, 0xbd, 0x99, 0x98, 0x10, 0x5a, 0xb8, 0xbd, 0xbf, 0x8a, 0x3a, 0x97, 0x99, 0x8a, - 0xb2, 0x08, 0x47, 0xd1, 0x65, 0xd8, 0x6b, 0x5a, 0x15, 0xbd, 0x59, 0xd1, 0xda, 0xc7, 0x05, 0x9a, - 0x5e, 0xc6, 0x38, 0x70, 0x6c, 0x5e, 0x49, 0x3c, 0x96, 0x07, 0x2c, 0x7b, 0x4d, 0x28, 0xb7, 0x53, - 0xec, 0xac, 0x50, 0xed, 0x8a, 0x9a, 0xc8, 0x4e, 0x51, 0x83, 0xbd, 0x57, 0x5d, 0x6f, 0x60, 0xd8, - 0xb8, 0xcd, 0x6d, 0xd6, 0xbd, 0xc5, 0xd5, 0x38, 0x0a, 0x0a, 0x74, 0xfd, 0xe5, 0xcd, 0x81, 0xdf, - 0x8f, 0xff, 0x14, 0x81, 0x94, 0xbf, 0x83, 0xa3, 0x86, 0xb8, 0xcc, 0xd2, 0x7c, 0x88, 0x65, 0x81, - 0x13, 0xbb, 0xf6, 0x7b, 0xd3, 0x73, 0x94, 0xff, 0x73, 0x43, 0xbc, 0xaf, 0x52, 0x39, 0x92, 0x6a, - 0x2f, 0xc5, 0x9a, 0xc1, 0xbb, 0xf5, 0xb8, 0x2a, 0xae, 0x30, 0xd9, 0x0d, 0xdd, 0x70, 0x18, 0xf7, - 0x10, 0xe3, 0x7e, 0x70, 0x77, 0xee, 0x2b, 0x6b, 0x8c, 0x3c, 0x71, 0x65, 0x4d, 0x5b, 0x5e, 0x51, - 0x97, 0x66, 0x17, 0x55, 0x01, 0x57, 0x0e, 0x41, 0xd4, 0xd4, 0xbf, 0xbf, 0xdd, 0x59, 0x29, 0x98, - 0x68, 0x50, 0xc7, 0x23, 0x03, 0x1d, 0x79, 0x74, 0xe6, 0x67, 0x26, 0xfa, 0x12, 0x43, 0x7f, 0x06, - 0x62, 0xcc, 0x5f, 0x0a, 0x80, 0xf0, 0x58, 0xe6, 0x3e, 0x25, 0x0e, 0xd1, 0xb9, 0x15, 0x95, 0xc2, - 0x1f, 0xe3, 0x9d, 0x4b, 0xb5, 0xd5, 0x62, 0x61, 0x0e, 0x57, 0xc0, 0xd4, 0xa3, 0x30, 0xc4, 0x9d, - 0x40, 0x4b, 0xc3, 0x73, 0x03, 0x82, 0xf8, 0xa5, 0xe0, 0x08, 0xc9, 0xd1, 0xd2, 0x52, 0xbe, 0xa0, - 0x66, 0xc2, 0xfe, 0xe9, 0xfd, 0xcb, 0x10, 0x24, 0x7d, 0x0d, 0x15, 0x95, 0x72, 0xdd, 0x34, 0xed, - 0xdb, 0x9a, 0x6e, 0xd6, 0x30, 0x43, 0xf1, 0xf9, 0x01, 0x26, 0x9a, 0x25, 0xc9, 0xa0, 0xfe, 0xfb, - 0x3f, 0x89, 0xcd, 0x17, 0x42, 0x90, 0xe9, 0x6e, 0xc6, 0xba, 0x0c, 0x0c, 0x7d, 0xa5, 0x06, 0x3e, - 0x17, 0x82, 0x74, 0x67, 0x07, 0xd6, 0x65, 0xde, 0xf1, 0xaf, 0xd4, 0xbc, 0x67, 0x43, 0x30, 0xd2, - 0xd1, 0x77, 0xfd, 0xbf, 0xb2, 0xee, 0x99, 0x08, 0x8c, 0xf7, 0xc1, 0x61, 0x02, 0xe2, 0x0d, 0x2a, - 0xef, 0x99, 0xbf, 0x35, 0xc8, 0xbd, 0xa6, 0xa9, 0xfe, 0xad, 0xea, 0x4d, 0x57, 0xf4, 0xb3, 0x58, - 0x2f, 0x6b, 0x15, 0x4c, 0xaa, 0xb5, 0xcd, 0x1a, 0xb6, 0x6f, 0x7c, 0xc7, 0xc2, 0xbb, 0xd6, 0xd1, - 0xb6, 0x9c, 0x6f, 0x8f, 0xbf, 0x09, 0x4a, 0xc3, 0x76, 0x6a, 0x6e, 0xed, 0x16, 0x1d, 0xcf, 0xc9, - 0x8d, 0x34, 0x75, 0xb1, 0x51, 0x35, 0x23, 0x47, 0x8a, 0x96, 0xeb, 0x69, 0x5b, 0x46, 0x55, 0xef, - 0xd2, 0xa6, 0x34, 0x14, 0x51, 0x33, 0x72, 0xc4, 0xd3, 0xc6, 0x46, 0xb3, 0x62, 0xb7, 0xa8, 0x21, - 0xe0, 0x7a, 0x94, 0xf5, 0x42, 0x6a, 0x92, 0xcb, 0x3c, 0x15, 0xd1, 0xb1, 0xb5, 0x77, 0xf0, 0x29, - 0x35, 0xc9, 0x65, 0x5c, 0xe5, 0x24, 0x8c, 0xea, 0xd5, 0x6a, 0x93, 0xc8, 0x25, 0x11, 0x6f, 0x43, - 0xd3, 0x9e, 0x98, 0x29, 0x4e, 0x5e, 0x81, 0xb8, 0xf4, 0x03, 0x15, 0x16, 0xf2, 0x04, 0xd6, 0x7c, - 0x76, 0x8e, 0x12, 0xa6, 0x4d, 0xbd, 0x25, 0x07, 0xf1, 0xa6, 0x35, 0x47, 0x6b, 0x1f, 0xe8, 0x85, - 0x71, 0x3c, 0xae, 0x26, 0x6b, 0x8e, 0x77, 0x82, 0x33, 0xf5, 0x32, 0x96, 0xd7, 0xce, 0x03, 0x49, - 0x65, 0x1e, 0xe2, 0xa6, 0x8d, 0xf1, 0x41, 0x08, 0x7e, 0x1a, 0x7e, 0x2a, 0xe0, 0x0c, 0x73, 0x7a, - 0x51, 0xe8, 0xab, 0x1e, 0x72, 0xf2, 0x6f, 0x43, 0x10, 0x97, 0x62, 0x2c, 0x14, 0xd1, 0x86, 0xee, - 0x6e, 0x31, 0xba, 0x58, 0x3e, 0x9c, 0x09, 0xa9, 0xec, 0x9a, 0xe4, 0xd8, 0xcd, 0x58, 0x2c, 0x04, - 0x84, 0x9c, 0xae, 0x69, 0x5e, 0x4d, 0x43, 0xaf, 0xb0, 0x06, 0xd7, 0xae, 0xd7, 0x71, 0x26, 0x1d, - 0x39, 0xaf, 0x42, 0x3e, 0x27, 0xc4, 0x74, 0x2e, 0xee, 0x36, 0xf5, 0x9a, 0xd9, 0xa1, 0x1b, 0x65, - 0xba, 0x19, 0x39, 0xe0, 0x29, 0xe7, 0xe0, 0x90, 0xe4, 0xad, 0x18, 0xae, 0x8e, 0xcd, 0x73, 0xa5, - 0x0d, 0x1a, 0x62, 0xa7, 0x5d, 0x07, 0x85, 0xc2, 0xbc, 0x18, 0x97, 0xd8, 0xfc, 0x35, 0x6c, 0x64, - 0xed, 0x7a, 0xb7, 0x27, 0xf2, 0x99, 0xae, 0x7d, 0x97, 0xf3, 0xdd, 0xd0, 0x13, 0xd0, 0x6e, 0x2a, - 0x5e, 0x0a, 0x47, 0x16, 0x56, 0xf3, 0xaf, 0x86, 0x27, 0x17, 0x38, 0x6e, 0x55, 0x7a, 0x50, 0x35, - 0x36, 0x4d, 0xa3, 0x4c, 0xde, 0x81, 0x17, 0x4f, 0xc0, 0xb7, 0xaa, 0x35, 0x77, 0xab, 0xb5, 0x31, - 0x8d, 0x77, 0x98, 0xa9, 0xda, 0x55, 0xbb, 0xfd, 0x3a, 0x83, 0xae, 0xd8, 0x05, 0xfb, 0x26, 0x5e, - 0x69, 0x24, 0x3c, 0xe9, 0x64, 0xe0, 0xfb, 0x8f, 0xdc, 0x32, 0x8c, 0x0b, 0x65, 0x8d, 0x9d, 0xa9, - 0xf2, 0x16, 0x54, 0xd9, 0x75, 0x43, 0x9e, 0x7d, 0xfd, 0x43, 0x56, 0x12, 0xd4, 0x31, 0x01, 0xa5, - 0x31, 0xde, 0xa4, 0xe6, 0x54, 0xb8, 0xbf, 0x83, 0x8f, 0xc7, 0x30, 0x6e, 0xb9, 0x77, 0x67, 0x7c, - 0x4b, 0x30, 0x8e, 0xfb, 0x18, 0xd7, 0x04, 0x34, 0x37, 0x07, 0x23, 0x7b, 0xe1, 0xfa, 0x6b, 0xc1, - 0x95, 0x32, 0xfc, 0x24, 0x0b, 0x30, 0xca, 0x48, 0xca, 0x2d, 0xc7, 0xb5, 0xeb, 0x2c, 0x41, 0xec, - 0x4e, 0xf3, 0x37, 0x1f, 0xf2, 0xa0, 0x4a, 0x13, 0x6c, 0xce, 0x43, 0xe5, 0xbe, 0x07, 0x13, 0x24, - 0x61, 0x6b, 0xd0, 0xcf, 0x16, 0x7c, 0x84, 0x90, 0xfd, 0xfb, 0xbb, 0x3c, 0xf6, 0xc6, 0x3d, 0x02, - 0x1f, 0xaf, 0x6f, 0x26, 0xaa, 0x86, 0x8b, 0xb9, 0x0d, 0xf7, 0x7f, 0xa6, 0xa9, 0xec, 0xfa, 0x8e, - 0x21, 0xfb, 0xf4, 0x27, 0x9d, 0x33, 0xb1, 0xc0, 0x91, 0xb3, 0xa6, 0x99, 0x2b, 0xc1, 0xc1, 0x3e, - 0x33, 0x3b, 0x00, 0xe7, 0x33, 0x82, 0x73, 0xa2, 0x67, 0x76, 0x89, 0x76, 0x15, 0xa4, 0xdc, 0x9b, - 0x8f, 0x01, 0x38, 0x9f, 0x15, 0x9c, 0x8a, 0xc0, 0xca, 0x69, 0x21, 0xc6, 0x2b, 0x30, 0x86, 0x3b, - 0xf5, 0x0d, 0xdb, 0x11, 0xfb, 0xde, 0x01, 0xe8, 0x9e, 0x13, 0x74, 0xa3, 0x02, 0xc8, 0x76, 0xc1, - 0xc4, 0xf5, 0x18, 0xc4, 0x37, 0x71, 0x03, 0x34, 0x00, 0xc5, 0xf3, 0x82, 0x62, 0x98, 0xf4, 0x09, - 0x3a, 0x0b, 0xa9, 0xaa, 0x2d, 0xd2, 0x70, 0x30, 0xfc, 0x05, 0x01, 0x4f, 0x4a, 0x8c, 0xa0, 0x68, - 0xd8, 0x8d, 0x96, 0x49, 0x39, 0x3a, 0x98, 0xe2, 0xb7, 0x24, 0x85, 0xc4, 0x08, 0x8a, 0x3d, 0xb8, - 0xf5, 0xb7, 0x25, 0x85, 0xe3, 0xf3, 0xe7, 0x77, 0xe8, 0xac, 0xd7, 0xdc, 0xb6, 0xad, 0x41, 0x8c, - 0x78, 0x51, 0x30, 0x80, 0x80, 0x10, 0xc1, 0x25, 0x48, 0x0c, 0x3a, 0x11, 0xbf, 0x23, 0xe0, 0x71, - 0x43, 0xce, 0x00, 0xae, 0x33, 0x99, 0x64, 0xe8, 0xdd, 0x4a, 0x30, 0xc5, 0xef, 0x0a, 0x8a, 0xb4, - 0x0f, 0x26, 0x1e, 0xc3, 0x35, 0x1c, 0x17, 0xb7, 0xea, 0x03, 0x90, 0xbc, 0x2c, 0x1f, 0x43, 0x40, - 0x84, 0x2b, 0x37, 0x0c, 0xab, 0xbc, 0x35, 0x18, 0xc3, 0x2b, 0xd2, 0x95, 0x12, 0x43, 0x14, 0x98, - 0x79, 0xea, 0x7a, 0x13, 0x37, 0xd7, 0xe6, 0x40, 0xd3, 0xf1, 0x7b, 0x82, 0x23, 0xe5, 0x81, 0x84, - 0x47, 0x5a, 0xd6, 0x5e, 0x68, 0x5e, 0x95, 0x1e, 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, 0x9d, 0x29, 0x75, - 0x12, 0x7b, 0x61, 0xfb, 0x7d, 0xb9, 0xf4, 0x38, 0x76, 0xc9, 0xcf, 0x88, 0x33, 0xed, 0xe0, 0x16, - 0x7c, 0x10, 0x9a, 0x3f, 0x90, 0x33, 0xcd, 0x00, 0x04, 0xbe, 0x0e, 0x87, 0xfa, 0xa6, 0xfa, 0x01, - 0xc8, 0xfe, 0x50, 0x90, 0x1d, 0xe8, 0x93, 0xee, 0x45, 0x4a, 0xd8, 0x2b, 0xe5, 0x1f, 0xc9, 0x94, - 0x60, 0x74, 0x71, 0xad, 0x52, 0x1b, 0xeb, 0xe8, 0x9b, 0x7b, 0xf3, 0xda, 0x1f, 0x4b, 0xaf, 0x71, - 0x6c, 0x87, 0xd7, 0xd6, 0xe1, 0x80, 0x60, 0xdc, 0xdb, 0xbc, 0xbe, 0x26, 0x13, 0x2b, 0x47, 0x97, - 0x3a, 0x67, 0xf7, 0xc7, 0x61, 0xd2, 0x73, 0xa7, 0xec, 0xc0, 0x1c, 0x8d, 0x0e, 0x06, 0x82, 0x99, - 0x5f, 0x17, 0xcc, 0x32, 0xe3, 0x7b, 0x2d, 0x9c, 0xb3, 0xa4, 0x37, 0x88, 0xfc, 0x1a, 0x64, 0x25, - 0x79, 0xcb, 0xc2, 0x06, 0xdf, 0xae, 0x5a, 0x38, 0x8d, 0x95, 0x01, 0xa8, 0xff, 0xa4, 0x6b, 0xaa, - 0x4a, 0x3e, 0x38, 0x31, 0x17, 0x21, 0xe3, 0xf5, 0x1b, 0x5a, 0xad, 0xde, 0xb0, 0xb1, 0xb5, 0xdc, - 0x9d, 0xf1, 0x4f, 0xe5, 0x4c, 0x79, 0xb8, 0x22, 0x83, 0xe5, 0x0a, 0x90, 0x66, 0x97, 0x83, 0x86, - 0xe4, 0x9f, 0x09, 0xa2, 0x91, 0x36, 0x4a, 0x24, 0x0e, 0xec, 0x94, 0xb0, 0xe7, 0x1d, 0x24, 0xff, - 0xbd, 0x21, 0x13, 0x87, 0x80, 0xf0, 0xe8, 0x1b, 0xed, 0xaa, 0xc4, 0x4a, 0xd0, 0xeb, 0xd7, 0xec, - 0x4f, 0xdd, 0x13, 0x6b, 0xb6, 0xb3, 0x10, 0xe7, 0x16, 0xc9, 0x3d, 0x9d, 0xe5, 0x32, 0x98, 0xec, - 0xee, 0x3d, 0xcf, 0x43, 0x1d, 0xd5, 0x32, 0x77, 0x19, 0x46, 0x3a, 0x4a, 0x65, 0x30, 0xd5, 0xcf, - 0x08, 0xaa, 0x94, 0xbf, 0x52, 0xe6, 0x1e, 0x85, 0x28, 0x95, 0xbd, 0x60, 0xf8, 0xcf, 0x0a, 0x38, - 0x53, 0xcf, 0xfd, 0x28, 0xc4, 0x65, 0xb9, 0x0b, 0x86, 0xfe, 0x9c, 0x80, 0x7a, 0x10, 0x82, 0xcb, - 0x52, 0x17, 0x0c, 0xff, 0x81, 0x84, 0x4b, 0x08, 0xc1, 0x07, 0x77, 0xe1, 0x9b, 0xbf, 0x10, 0x15, - 0xe9, 0x4a, 0xfa, 0x8e, 0xde, 0xf9, 0xf0, 0x1a, 0x17, 0x8c, 0xfe, 0xa1, 0xb8, 0xb9, 0x44, 0xe4, - 0x2e, 0x40, 0x6c, 0x40, 0x87, 0xff, 0xa2, 0x80, 0x72, 0x7d, 0xac, 0x20, 0x49, 0x5f, 0x5d, 0x0b, - 0x86, 0xff, 0x92, 0x80, 0xfb, 0x51, 0x64, 0xba, 0xa8, 0x6b, 0xc1, 0x04, 0xbf, 0x2c, 0x4d, 0x17, - 0x08, 0x72, 0x9b, 0x2c, 0x69, 0xc1, 0xe8, 0x5f, 0x91, 0x5e, 0x97, 0x10, 0x5c, 0x4d, 0x09, 0x2f, - 0x4d, 0x05, 0xe3, 0x7f, 0x55, 0xe0, 0xdb, 0x18, 0xf2, 0x80, 0x2f, 0x4d, 0x06, 0x53, 0xfc, 0x9a, - 0xf4, 0x80, 0x0f, 0x45, 0xcb, 0xa8, 0xbb, 0xf4, 0x05, 0x33, 0xfd, 0xba, 0x5c, 0x46, 0x5d, 0x95, - 0x8f, 0x66, 0x93, 0x65, 0x8b, 0x60, 0x8a, 0xdf, 0x90, 0xb3, 0xc9, 0xf4, 0xc9, 0x8c, 0xee, 0x5a, - 0x12, 0xcc, 0xf1, 0x9b, 0xd2, 0x8c, 0xae, 0x52, 0x82, 0x95, 0x49, 0xe9, 0xad, 0x23, 0xc1, 0x7c, - 0x4f, 0x09, 0xbe, 0xb1, 0x9e, 0x32, 0x92, 0xbb, 0x0a, 0x07, 0xfa, 0xd7, 0x90, 0x60, 0xd6, 0xa7, - 0xef, 0x75, 0x75, 0xfd, 0xfe, 0x12, 0x82, 0x25, 0x6f, 0xa2, 0x5f, 0xfd, 0x08, 0xa6, 0x7d, 0xe6, - 0x5e, 0xe7, 0xc6, 0xce, 0x5f, 0x3e, 0xb0, 0x43, 0x83, 0x76, 0xea, 0x0e, 0xe6, 0x7a, 0x4e, 0x70, - 0xf9, 0x40, 0xb4, 0x34, 0x44, 0xe6, 0x0e, 0xc6, 0x3f, 0x2f, 0x97, 0x86, 0x40, 0x20, 0x38, 0x6e, - 0xb5, 0x4c, 0x93, 0x82, 0x43, 0xd9, 0xfd, 0x27, 0x0d, 0xd9, 0x7f, 0xfd, 0x5c, 0x2c, 0x0c, 0x09, - 0xc0, 0x1c, 0x1a, 0x33, 0xea, 0x1b, 0xe8, 0x83, 0x00, 0xe4, 0xbf, 0x7d, 0x2e, 0x13, 0x02, 0x69, - 0xe3, 0x7a, 0x02, 0xbe, 0x69, 0x64, 0x67, 0xd8, 0x01, 0xd8, 0x8f, 0x3f, 0x17, 0xaf, 0x59, 0xdb, - 0x90, 0x36, 0x01, 0x7f, 0x69, 0xbb, 0x3b, 0xc1, 0x27, 0x9d, 0x04, 0x6c, 0xa3, 0xf9, 0x18, 0x0c, - 0xd3, 0x2f, 0x3b, 0x5c, 0xbd, 0x1a, 0x84, 0xfe, 0x77, 0x81, 0x96, 0xfa, 0xe4, 0xb0, 0xba, 0xdd, - 0x34, 0xf0, 0xab, 0x13, 0x84, 0xfd, 0x0f, 0x81, 0xf5, 0x00, 0x04, 0x2e, 0xeb, 0x8e, 0x3b, 0xc8, - 0x73, 0xff, 0xa7, 0x04, 0x4b, 0x00, 0x19, 0x4d, 0xdf, 0x6f, 0x1a, 0xdb, 0x41, 0xd8, 0x4f, 0xa5, - 0xd1, 0x42, 0x1f, 0x13, 0x60, 0x82, 0xbe, 0xf2, 0x9f, 0x1e, 0x04, 0x80, 0xff, 0x4b, 0x80, 0xdb, - 0x88, 0xfc, 0xf1, 0xfe, 0x47, 0x3b, 0xb0, 0x60, 0x2f, 0xd8, 0xfc, 0x50, 0x07, 0x3e, 0x4e, 0xc3, - 0x49, 0xd4, 0xc1, 0xfa, 0x3a, 0xc3, 0xd7, 0xa4, 0x6f, 0x3d, 0xcf, 0xc8, 0x47, 0x10, 0xa7, 0x33, - 0xde, 0x23, 0x4d, 0xee, 0xed, 0x58, 0x67, 0xea, 0xa9, 0x11, 0x88, 0xcf, 0x21, 0x56, 0xbf, 0xad, - 0xd3, 0x0b, 0x8e, 0x78, 0xd1, 0x72, 0x1f, 0x39, 0xbb, 0xea, 0x36, 0xd9, 0xe9, 0x77, 0x24, 0x9f, - 0xf8, 0x9f, 0x77, 0x8e, 0xc6, 0x6a, 0x24, 0x53, 0xe3, 0x35, 0x31, 0xa4, 0x9c, 0x80, 0x18, 0x53, - 0x63, 0x47, 0xfc, 0x91, 0xfc, 0xc8, 0xdb, 0xef, 0x1c, 0xbd, 0xaf, 0xad, 0xc7, 0xff, 0x29, 0xd7, - 0x21, 0xb9, 0xb4, 0x5d, 0xc2, 0xef, 0xe7, 0xcf, 0x11, 0x1d, 0x39, 0x20, 0x9a, 0xbf, 0x80, 0x6a, - 0x8f, 0xec, 0x68, 0x20, 0xd5, 0x96, 0xf6, 0x83, 0x49, 0x34, 0xfb, 0x35, 0x53, 0xb2, 0xde, 0xe6, - 0x52, 0xae, 0x42, 0x5c, 0x0e, 0xf2, 0xd3, 0xd4, 0xfc, 0x25, 0x61, 0xc2, 0xbe, 0xb8, 0xe3, 0x92, - 0x5b, 0xf9, 0x09, 0x48, 0x2d, 0x6d, 0x5f, 0x36, 0x6d, 0x5d, 0xf8, 0x80, 0x0e, 0x5f, 0xc3, 0xf9, - 0x8b, 0x48, 0x7c, 0x6e, 0x60, 0x62, 0x01, 0x67, 0xcc, 0xa9, 0xba, 0x8f, 0x4d, 0x79, 0x02, 0x12, - 0xde, 0x30, 0x3b, 0xaf, 0x0d, 0xe7, 0xbf, 0x2d, 0xec, 0xde, 0x1f, 0x7d, 0xc2, 0xa3, 0xf7, 0x59, - 0xce, 0xdd, 0x4d, 0x67, 0xbd, 0xa1, 0xfd, 0x58, 0x2e, 0x7c, 0x22, 0x2d, 0xe7, 0x0e, 0x6f, 0x5b, - 0x8e, 0x1e, 0x8f, 0x33, 0xea, 0x7d, 0x5a, 0x2e, 0xe8, 0x13, 0x1e, 0xbd, 0x72, 0x05, 0x86, 0x97, - 0xb6, 0xf3, 0xdb, 0xa8, 0xcd, 0x7e, 0x1b, 0x90, 0xca, 0x9f, 0x41, 0xd6, 0x6f, 0x0e, 0xc8, 0xca, - 0x70, 0xea, 0x70, 0x9d, 0x13, 0x28, 0xc7, 0x20, 0xb9, 0x4c, 0x6f, 0x5c, 0x4d, 0xce, 0x07, 0xfc, - 0xc0, 0xdb, 0x6a, 0x8b, 0x94, 0x12, 0x3d, 0x09, 0x9f, 0x6d, 0x87, 0xfd, 0x3e, 0xf9, 0x0b, 0xc4, - 0x64, 0x42, 0xc6, 0x8d, 0xa3, 0xd4, 0x20, 0xb6, 0xb4, 0x8d, 0x15, 0x2d, 0x9b, 0x62, 0x87, 0xd7, - 0x87, 0xa7, 0x3d, 0x84, 0x5c, 0x5b, 0xd3, 0x6c, 0x9c, 0xbd, 0x7c, 0xcd, 0x9f, 0xc3, 0x3b, 0x9e, - 0x19, 0xf8, 0x8e, 0x08, 0x63, 0xb7, 0x8b, 0xd5, 0xe9, 0xab, 0xf2, 0x46, 0x88, 0x16, 0x16, 0x3f, - 0xe1, 0xa3, 0x3b, 0x8e, 0xb0, 0x3b, 0x9e, 0xe8, 0x7b, 0x47, 0x4f, 0x8b, 0xdf, 0xd7, 0xfa, 0xe9, - 0x77, 0xf7, 0xf0, 0xa4, 0x7c, 0x7b, 0x40, 0xb7, 0xfe, 0xf9, 0x77, 0xf7, 0xbd, 0x68, 0x3d, 0x0b, - 0x94, 0xbb, 0xf4, 0xc2, 0x68, 0x7b, 0x59, 0xd4, 0x39, 0xb2, 0x3c, 0x2d, 0x7e, 0xc5, 0xda, 0xcf, - 0x72, 0x9f, 0x1e, 0xb7, 0xfd, 0x3c, 0xda, 0x7e, 0x76, 0x60, 0x23, 0x58, 0x7a, 0x62, 0x36, 0x8c, - 0xd4, 0xfd, 0x5c, 0xca, 0x0f, 0x98, 0x15, 0x05, 0xaa, 0x99, 0x15, 0xa3, 0x42, 0x56, 0x8c, 0xee, - 0x62, 0x85, 0x4f, 0x8f, 0x5b, 0x91, 0xa3, 0xa8, 0xdf, 0xbf, 0x25, 0x3e, 0xbe, 0xc9, 0x8b, 0x00, - 0xed, 0x90, 0xa0, 0x5f, 0xa0, 0x62, 0x51, 0x11, 0x3f, 0x17, 0xa2, 0xaf, 0xf4, 0x4b, 0x55, 0xf9, - 0x73, 0x38, 0x7a, 0x5f, 0xc4, 0x2f, 0x72, 0xe1, 0x8b, 0xa1, 0xc9, 0xc7, 0x21, 0xd3, 0x3d, 0xb5, - 0x7b, 0xc2, 0xab, 0xa0, 0xf4, 0x3a, 0xd8, 0xcf, 0x10, 0xe3, 0x0c, 0x0f, 0xfb, 0x19, 0x92, 0x67, - 0x33, 0x6d, 0x17, 0x5d, 0xad, 0x99, 0x58, 0xba, 0x7b, 0x38, 0xbb, 0xdd, 0xf5, 0xc5, 0x38, 0xa7, - 0x8e, 0xc0, 0x10, 0x17, 0xd2, 0xb3, 0x14, 0x59, 0xb6, 0x67, 0x45, 0x89, 0x55, 0x98, 0xf3, 0xe7, - 0xf2, 0x8b, 0x6f, 0xbf, 0x7f, 0xe4, 0xbe, 0xbf, 0xc3, 0xcf, 0x3f, 0xe2, 0xe7, 0xbd, 0xf7, 0x8f, - 0x84, 0x3e, 0xc2, 0xcf, 0xa7, 0xf8, 0xf9, 0x0c, 0x3f, 0x4f, 0x7e, 0x70, 0x24, 0xf4, 0x0a, 0x7e, - 0x5e, 0xc3, 0xcf, 0x5f, 0xe0, 0xe7, 0x4d, 0xfc, 0xbc, 0xfd, 0x01, 0xea, 0xe3, 0xe7, 0x3d, 0xfc, - 0xfe, 0x11, 0xfe, 0xff, 0x14, 0xff, 0x7f, 0x86, 0xff, 0x9f, 0xfc, 0xe7, 0x23, 0xa1, 0xff, 0x0d, - 0x00, 0x00, 0xff, 0xff, 0x79, 0x9a, 0x32, 0xce, 0xd8, 0x31, 0x00, 0x00, + // 4127 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x83, 0x14, 0xfd, + 0x23, 0xda, 0x4e, 0x28, 0x8f, 0xfe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0x50, 0x09, 0x02, + 0x59, 0x92, 0x91, 0xe4, 0x76, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, 0x0b, + 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xfe, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, 0x66, + 0x5a, 0xa7, 0x49, 0x7f, 0x92, 0xb6, 0x49, 0x33, 0x9d, 0x3e, 0xe4, 0x25, 0xad, 0x9f, 0x3a, 0xc9, + 0x5b, 0x1f, 0x3a, 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0xb6, 0x6e, 0xe3, 0x99, 0x66, 0xe4, 0x97, + 0xce, 0xfd, 0x5b, 0x2c, 0x7e, 0xc8, 0x05, 0x95, 0x71, 0xf2, 0x44, 0xec, 0xb9, 0xe7, 0xfb, 0xf6, + 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xec, 0xdd, 0x25, 0xfc, 0xe0, 0x1c, 0x2c, 0x34, 0x6c, 0xbb, 0x61, + 0xe2, 0x53, 0x2d, 0xc7, 0xf6, 0xec, 0x9d, 0xf6, 0xee, 0xa9, 0x3a, 0x76, 0x75, 0xc7, 0x68, 0x79, + 0xb6, 0xb3, 0x4c, 0x65, 0x68, 0x8a, 0x69, 0x2c, 0x0b, 0x8d, 0xc5, 0x0a, 0x4c, 0x5f, 0x32, 0x4c, + 0xbc, 0xea, 0x2b, 0x6e, 0x62, 0x0f, 0x5d, 0x80, 0xd8, 0xae, 0x61, 0xe2, 0xac, 0xb4, 0x10, 0x5d, + 0x4a, 0x9d, 0x7e, 0x74, 0xb9, 0x0f, 0xb4, 0xdc, 0x8b, 0xa8, 0x11, 0xb1, 0x42, 0x11, 0x8b, 0x6f, + 0xc7, 0x60, 0x66, 0xc8, 0x28, 0x42, 0x10, 0xb3, 0xb4, 0x26, 0x61, 0x94, 0x96, 0x92, 0x0a, 0xfd, + 0x8d, 0xb2, 0x30, 0xd1, 0xd2, 0xf4, 0x1b, 0x5a, 0x03, 0x67, 0x23, 0x54, 0x2c, 0x2e, 0x51, 0x0e, + 0xa0, 0x8e, 0x5b, 0xd8, 0xaa, 0x63, 0x4b, 0xef, 0x64, 0xa3, 0x0b, 0xd1, 0xa5, 0xa4, 0x12, 0x90, + 0xa0, 0xa7, 0x60, 0xba, 0xd5, 0xde, 0x31, 0x0d, 0x5d, 0x0d, 0xa8, 0xc1, 0x42, 0x74, 0x29, 0xae, + 0xc8, 0x6c, 0x60, 0xb5, 0xab, 0x7c, 0x12, 0xa6, 0x6e, 0x61, 0xed, 0x46, 0x50, 0x35, 0x45, 0x55, + 0x33, 0x44, 0x1c, 0x50, 0x5c, 0x81, 0x74, 0x13, 0xbb, 0xae, 0xd6, 0xc0, 0xaa, 0xd7, 0x69, 0xe1, + 0x6c, 0x8c, 0xce, 0x7e, 0x61, 0x60, 0xf6, 0xfd, 0x33, 0x4f, 0x71, 0xd4, 0x56, 0xa7, 0x85, 0x51, + 0x01, 0x92, 0xd8, 0x6a, 0x37, 0x19, 0x43, 0xfc, 0x00, 0xff, 0x95, 0xac, 0x76, 0xb3, 0x9f, 0x25, + 0x41, 0x60, 0x9c, 0x62, 0xc2, 0xc5, 0xce, 0x4d, 0x43, 0xc7, 0xd9, 0x71, 0x4a, 0x70, 0x72, 0x80, + 0x60, 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, + 0x56, 0x76, 0x82, 0x92, 0x3c, 0x36, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, + 0x98, 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, + 0x20, 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, + 0x8e, 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, + 0x71, 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, + 0xc5, 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, + 0xbe, 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, + 0x01, 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, + 0x2a, 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, + 0x85, 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, + 0x85, 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, + 0x9b, 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, + 0xb4, 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, + 0x99, 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x02, 0xbe, 0x40, 0xa5, 0x61, 0x05, + 0x34, 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, + 0xb8, 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, + 0xe5, 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, + 0x61, 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, + 0x29, 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, + 0xfa, 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, + 0xc2, 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x41, 0x92, 0xfc, 0x65, 0xbe, + 0x1d, 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, + 0xe0, 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, + 0x30, 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, + 0x2f, 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, + 0x69, 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0xf7, 0xf0, 0xf0, 0xe9, 0xf5, 0xc7, + 0xe2, 0xe2, 0xb7, 0x22, 0x10, 0xa3, 0xfb, 0x6d, 0x0a, 0x52, 0x5b, 0xd7, 0x6a, 0x25, 0x75, 0xb5, + 0xba, 0x5d, 0x5c, 0x2f, 0xc9, 0x12, 0xca, 0x00, 0x50, 0xc1, 0xa5, 0xf5, 0x6a, 0x61, 0x4b, 0x8e, + 0xf8, 0xd7, 0xe5, 0x8d, 0xad, 0xf3, 0x67, 0xe5, 0xa8, 0x0f, 0xd8, 0x66, 0x82, 0x58, 0x50, 0xe1, + 0xcc, 0x69, 0x39, 0x8e, 0x64, 0x48, 0x33, 0x82, 0xf2, 0xd5, 0xd2, 0xea, 0xf9, 0xb3, 0xf2, 0x78, + 0xaf, 0xe4, 0xcc, 0x69, 0x79, 0x02, 0x4d, 0x42, 0x92, 0x4a, 0x8a, 0xd5, 0xea, 0xba, 0x9c, 0xf0, + 0x39, 0x37, 0xb7, 0x94, 0xf2, 0xc6, 0x9a, 0x9c, 0xf4, 0x39, 0xd7, 0x94, 0xea, 0x76, 0x4d, 0x06, + 0x9f, 0xa1, 0x52, 0xda, 0xdc, 0x2c, 0xac, 0x95, 0xe4, 0x94, 0xaf, 0x51, 0xbc, 0xb6, 0x55, 0xda, + 0x94, 0xd3, 0x3d, 0x66, 0x9d, 0x39, 0x2d, 0x4f, 0xfa, 0xb7, 0x28, 0x6d, 0x6c, 0x57, 0xe4, 0x0c, + 0x9a, 0x86, 0x49, 0x76, 0x0b, 0x61, 0xc4, 0x54, 0x9f, 0xe8, 0xfc, 0x59, 0x59, 0xee, 0x1a, 0xc2, + 0x58, 0xa6, 0x7b, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x71, 0x05, 0xe2, 0x34, 0xba, 0x10, 0x82, 0xcc, + 0x7a, 0xa1, 0x58, 0x5a, 0x57, 0xab, 0xb5, 0xad, 0x72, 0x75, 0xa3, 0xb0, 0x2e, 0x4b, 0x5d, 0x99, + 0x52, 0xfa, 0xd4, 0x76, 0x59, 0x29, 0xad, 0xca, 0x91, 0xa0, 0xac, 0x56, 0x2a, 0x6c, 0x95, 0x56, + 0xe5, 0xe8, 0xa2, 0x0e, 0xb3, 0xc3, 0xf2, 0xcc, 0xd0, 0x9d, 0x11, 0x58, 0xe2, 0xc8, 0x01, 0x4b, + 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0xcb, 0x12, 0xcc, 0x0c, 0xc9, 0xb5, 0x43, 0x6f, 0xf2, 0x3c, 0xc4, + 0x59, 0x88, 0xb2, 0xea, 0xf3, 0xc4, 0xd0, 0xa4, 0x4d, 0x03, 0x76, 0xa0, 0x02, 0x51, 0x5c, 0xb0, + 0x02, 0x47, 0x0f, 0xa8, 0xc0, 0x84, 0x62, 0xc0, 0xc8, 0x97, 0x25, 0xc8, 0x1e, 0xc4, 0x1d, 0x92, + 0x28, 0x22, 0x3d, 0x89, 0xe2, 0x62, 0xbf, 0x01, 0x27, 0x0e, 0x9e, 0xc3, 0x80, 0x15, 0xaf, 0x4b, + 0x70, 0x6c, 0x78, 0xa3, 0x32, 0xd4, 0x86, 0xe7, 0x60, 0xbc, 0x89, 0xbd, 0x3d, 0x5b, 0x14, 0xeb, + 0xc7, 0x87, 0x94, 0x00, 0x32, 0xdc, 0xef, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xe8, 0x41, 0xdd, 0x06, + 0xb3, 0x66, 0xc0, 0xd2, 0xcf, 0x47, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x18, 0xc0, 0xb0, + 0x5a, 0x6d, 0x8f, 0x15, 0x64, 0x96, 0x9f, 0x92, 0x54, 0x42, 0xf7, 0x3e, 0xc9, 0x3d, 0x6d, 0xcf, + 0x1f, 0x8f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8c, 0x1a, 0x9a, 0x3b, 0x60, + 0xa6, 0x03, 0xb5, 0xee, 0x69, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb5, 0xa6, + 0x61, 0x35, 0x68, 0x02, 0x4e, 0xe4, 0xe3, 0xbb, 0x9a, 0xe9, 0x62, 0x65, 0x8a, 0x0d, 0x6f, 0x8a, + 0x51, 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xc6, 0x7b, 0x10, 0x6c, 0xd8, 0x47, 0x2c, 0x7e, 0x6d, + 0x02, 0x52, 0x81, 0xb6, 0x0e, 0x9d, 0x80, 0xf4, 0x75, 0xed, 0xa6, 0xa6, 0x8a, 0x56, 0x9d, 0x79, + 0x22, 0x45, 0x64, 0x35, 0xde, 0xae, 0x3f, 0x0d, 0xb3, 0x54, 0xc5, 0x6e, 0x7b, 0xd8, 0x51, 0x75, + 0x53, 0x73, 0x5d, 0xea, 0xb4, 0x04, 0x55, 0x45, 0x64, 0xac, 0x4a, 0x86, 0x56, 0xc4, 0x08, 0x3a, + 0x07, 0x33, 0x14, 0xd1, 0x6c, 0x9b, 0x9e, 0xd1, 0x32, 0xb1, 0x4a, 0x1e, 0x1e, 0x5c, 0x9a, 0x88, + 0x7d, 0xcb, 0xa6, 0x89, 0x46, 0x85, 0x2b, 0x10, 0x8b, 0x5c, 0xb4, 0x0a, 0x0f, 0x53, 0x58, 0x03, + 0x5b, 0xd8, 0xd1, 0x3c, 0xac, 0xe2, 0xcf, 0xb4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xae, 0xee, 0x69, + 0xee, 0x5e, 0x76, 0x96, 0x10, 0x14, 0x23, 0x59, 0x49, 0x39, 0x4e, 0x14, 0xd7, 0xb8, 0x5e, 0x89, + 0xaa, 0x15, 0xac, 0xfa, 0x27, 0x35, 0x77, 0x0f, 0xe5, 0xe1, 0x18, 0x65, 0x71, 0x3d, 0xc7, 0xb0, + 0x1a, 0xaa, 0xbe, 0x87, 0xf5, 0x1b, 0x6a, 0xdb, 0xdb, 0xbd, 0x90, 0x7d, 0x28, 0x78, 0x7f, 0x6a, + 0xe1, 0x26, 0xd5, 0x59, 0x21, 0x2a, 0xdb, 0xde, 0xee, 0x05, 0xb4, 0x09, 0x69, 0xb2, 0x18, 0x4d, + 0xe3, 0x25, 0xac, 0xee, 0xda, 0x0e, 0xad, 0x2c, 0x99, 0x21, 0x3b, 0x3b, 0xe0, 0xc1, 0xe5, 0x2a, + 0x07, 0x54, 0xec, 0x3a, 0xce, 0xc7, 0x37, 0x6b, 0xa5, 0xd2, 0xaa, 0x92, 0x12, 0x2c, 0x97, 0x6c, + 0x87, 0x04, 0x54, 0xc3, 0xf6, 0x1d, 0x9c, 0x62, 0x01, 0xd5, 0xb0, 0x85, 0x7b, 0xcf, 0xc1, 0x8c, + 0xae, 0xb3, 0x39, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0x37, 0x2b, 0xf7, 0x38, 0x4b, 0xd7, 0xd7, 0x98, + 0x02, 0x8f, 0x71, 0x17, 0x3d, 0x0b, 0x0f, 0x74, 0x9d, 0x15, 0x04, 0x4e, 0x0f, 0xcc, 0xb2, 0x1f, + 0x7a, 0x0e, 0x66, 0x5a, 0x9d, 0x41, 0x20, 0xea, 0xb9, 0x63, 0xab, 0xd3, 0x0f, 0x7b, 0x8c, 0x3e, + 0xb6, 0x39, 0x58, 0xd7, 0x3c, 0x5c, 0xcf, 0x3e, 0x18, 0xd4, 0x0e, 0x0c, 0xa0, 0x53, 0x20, 0xeb, + 0xba, 0x8a, 0x2d, 0x6d, 0xc7, 0xc4, 0xaa, 0xe6, 0x60, 0x4b, 0x73, 0xb3, 0xf3, 0x41, 0xe5, 0x8c, + 0xae, 0x97, 0xe8, 0x68, 0x81, 0x0e, 0xa2, 0x27, 0x61, 0xda, 0xde, 0xb9, 0xae, 0xb3, 0xc8, 0x52, + 0x5b, 0x0e, 0xde, 0x35, 0x5e, 0xcc, 0x3e, 0x4a, 0xdd, 0x34, 0x45, 0x06, 0x68, 0x5c, 0xd5, 0xa8, + 0x18, 0x3d, 0x01, 0xb2, 0xee, 0xee, 0x69, 0x4e, 0x8b, 0x96, 0x76, 0xb7, 0xa5, 0xe9, 0x38, 0xfb, + 0x18, 0x53, 0x65, 0xf2, 0x0d, 0x21, 0x26, 0x91, 0xed, 0xde, 0x32, 0x76, 0x3d, 0xc1, 0x78, 0x92, + 0x45, 0x36, 0x95, 0x71, 0xb6, 0xab, 0x30, 0xdb, 0xb6, 0x0c, 0xcb, 0xc3, 0x4e, 0xcb, 0xc1, 0xa4, + 0x89, 0x67, 0x3b, 0x31, 0xfb, 0x6f, 0x13, 0x07, 0xb4, 0xe1, 0xdb, 0x41, 0x6d, 0x16, 0x00, 0xca, + 0x4c, 0x7b, 0x50, 0xb8, 0x98, 0x87, 0x74, 0x30, 0x2e, 0x50, 0x12, 0x58, 0x64, 0xc8, 0x12, 0xa9, + 0xb1, 0x2b, 0xd5, 0x55, 0x52, 0x1d, 0x5f, 0x28, 0xc9, 0x11, 0x52, 0xa5, 0xd7, 0xcb, 0x5b, 0x25, + 0x55, 0xd9, 0xde, 0xd8, 0x2a, 0x57, 0x4a, 0x72, 0xf4, 0xc9, 0x64, 0xe2, 0x9d, 0x09, 0xf9, 0xf6, + 0xed, 0xdb, 0xb7, 0x23, 0x8b, 0xdf, 0x8d, 0x40, 0xa6, 0xb7, 0x33, 0x46, 0x1f, 0x87, 0x07, 0xc5, + 0x63, 0xac, 0x8b, 0x3d, 0xf5, 0x96, 0xe1, 0xd0, 0x50, 0x6d, 0x6a, 0xac, 0xb7, 0xf4, 0xbd, 0x3c, + 0xcb, 0xb5, 0x36, 0xb1, 0x77, 0xc5, 0x70, 0x48, 0x20, 0x36, 0x35, 0x0f, 0xad, 0xc3, 0xbc, 0x65, + 0xab, 0xae, 0xa7, 0x59, 0x75, 0xcd, 0xa9, 0xab, 0xdd, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xec, 0xba, + 0x36, 0x2b, 0x11, 0x3e, 0xcb, 0x47, 0x2c, 0x7b, 0x93, 0x2b, 0x77, 0x73, 0x67, 0x81, 0xab, 0xf6, + 0x45, 0x44, 0xf4, 0xa0, 0x88, 0x78, 0x08, 0x92, 0x4d, 0xad, 0xa5, 0x62, 0xcb, 0x73, 0x3a, 0xb4, + 0x9f, 0x4b, 0x28, 0x89, 0xa6, 0xd6, 0x2a, 0x91, 0xeb, 0x0f, 0x6f, 0x0d, 0x82, 0x7e, 0xfc, 0xd7, + 0x28, 0xa4, 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0xba, 0xc3, 0x1f, 0x39, 0xb4, + 0x03, 0x5c, 0x5e, 0x21, 0x89, 0x3d, 0x3f, 0xce, 0x3a, 0x2d, 0x85, 0x21, 0x49, 0x51, 0x25, 0x7b, + 0x1a, 0xb3, 0xfe, 0x3d, 0xa1, 0xf0, 0x2b, 0xb4, 0x06, 0xe3, 0xd7, 0x5d, 0xca, 0x3d, 0x4e, 0xb9, + 0x1f, 0x3d, 0x9c, 0xfb, 0xf2, 0x26, 0x25, 0x4f, 0x5e, 0xde, 0x54, 0x37, 0xaa, 0x4a, 0xa5, 0xb0, + 0xae, 0x70, 0x38, 0x3a, 0x0e, 0x31, 0x53, 0x7b, 0xa9, 0xd3, 0x5b, 0x02, 0xa8, 0x68, 0x54, 0xc7, + 0x1f, 0x87, 0xd8, 0x2d, 0xac, 0xdd, 0xe8, 0x4d, 0xbc, 0x54, 0xf4, 0x21, 0x86, 0xfe, 0x29, 0x88, + 0x53, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x0c, 0x25, 0x20, 0xb6, 0x52, 0x55, 0x48, 0xf8, 0xcb, + 0x90, 0x66, 0x52, 0xb5, 0x56, 0x2e, 0xad, 0x94, 0xe4, 0xc8, 0xe2, 0x39, 0x18, 0x67, 0x4e, 0x20, + 0x5b, 0xc3, 0x77, 0x83, 0x3c, 0xc6, 0x2f, 0x39, 0x87, 0x24, 0x46, 0xb7, 0x2b, 0xc5, 0x92, 0x22, + 0x47, 0x82, 0xcb, 0xeb, 0x42, 0x3a, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xef, 0x25, 0x48, 0x05, + 0xda, 0x33, 0xd2, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x52, 0x35, 0xd3, 0xd0, 0x5c, 0x1e, 0x14, 0x40, + 0x45, 0x05, 0x22, 0x19, 0x75, 0xd1, 0x7e, 0x2a, 0xc6, 0xbf, 0x26, 0x81, 0xdc, 0xdf, 0xda, 0xf5, + 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x55, 0x82, 0x4c, 0x6f, 0x3f, 0xd7, 0x67, 0xde, 0x89, 0x9f, + 0xa9, 0x79, 0x6f, 0x45, 0x60, 0xb2, 0xa7, 0x8b, 0x1b, 0xd5, 0xba, 0xcf, 0xc0, 0xb4, 0x51, 0xc7, + 0xcd, 0x96, 0xed, 0x61, 0x4b, 0xef, 0xa8, 0x26, 0xbe, 0x89, 0xcd, 0xec, 0x22, 0x4d, 0x14, 0xa7, + 0x0e, 0xef, 0x13, 0x97, 0xcb, 0x5d, 0xdc, 0x3a, 0x81, 0xe5, 0x67, 0xca, 0xab, 0xa5, 0x4a, 0xad, + 0xba, 0x55, 0xda, 0x58, 0xb9, 0xa6, 0x6e, 0x6f, 0xfc, 0xdc, 0x46, 0xf5, 0xca, 0x86, 0x22, 0x1b, + 0x7d, 0x6a, 0x1f, 0xe2, 0x56, 0xaf, 0x81, 0xdc, 0x6f, 0x14, 0x7a, 0x10, 0x86, 0x99, 0x25, 0x8f, + 0xa1, 0x19, 0x98, 0xda, 0xa8, 0xaa, 0x9b, 0xe5, 0xd5, 0x92, 0x5a, 0xba, 0x74, 0xa9, 0xb4, 0xb2, + 0xb5, 0xc9, 0x1e, 0x9c, 0x7d, 0xed, 0xad, 0xde, 0x4d, 0xfd, 0x4a, 0x14, 0x66, 0x86, 0x58, 0x82, + 0x0a, 0xbc, 0x67, 0x67, 0x8f, 0x11, 0x1f, 0x1b, 0xc5, 0xfa, 0x65, 0xd2, 0x15, 0xd4, 0x34, 0xc7, + 0xe3, 0x2d, 0xfe, 0x13, 0x40, 0xbc, 0x64, 0x79, 0xc6, 0xae, 0x81, 0x1d, 0x7e, 0xce, 0xc0, 0x1a, + 0xf9, 0xa9, 0xae, 0x9c, 0x1d, 0x35, 0x7c, 0x14, 0x50, 0xcb, 0x76, 0x0d, 0xcf, 0xb8, 0x89, 0x55, + 0xc3, 0x12, 0x87, 0x12, 0xa4, 0xb1, 0x8f, 0x29, 0xb2, 0x18, 0x29, 0x5b, 0x9e, 0xaf, 0x6d, 0xe1, + 0x86, 0xd6, 0xa7, 0x4d, 0x12, 0x78, 0x54, 0x91, 0xc5, 0x88, 0xaf, 0x7d, 0x02, 0xd2, 0x75, 0xbb, + 0x4d, 0xda, 0x24, 0xa6, 0x47, 0xea, 0x85, 0xa4, 0xa4, 0x98, 0xcc, 0x57, 0xe1, 0x7d, 0x6c, 0xf7, + 0x34, 0x24, 0xad, 0xa4, 0x98, 0x8c, 0xa9, 0x9c, 0x84, 0x29, 0xad, 0xd1, 0x70, 0x08, 0xb9, 0x20, + 0x62, 0x9d, 0x79, 0xc6, 0x17, 0x53, 0xc5, 0xb9, 0xcb, 0x90, 0x10, 0x7e, 0x20, 0x25, 0x99, 0x78, + 0x42, 0x6d, 0xb1, 0x33, 0xa9, 0xc8, 0x52, 0x52, 0x49, 0x58, 0x62, 0xf0, 0x04, 0xa4, 0x0d, 0x57, + 0xed, 0x1e, 0x8e, 0x46, 0x16, 0x22, 0x4b, 0x09, 0x25, 0x65, 0xb8, 0xfe, 0x69, 0xd8, 0xe2, 0xeb, + 0x11, 0xc8, 0xf4, 0x1e, 0xee, 0xa2, 0x55, 0x48, 0x98, 0xb6, 0xae, 0xd1, 0xd0, 0x62, 0x6f, 0x16, + 0x96, 0x42, 0xce, 0x83, 0x97, 0xd7, 0xb9, 0xbe, 0xe2, 0x23, 0xe7, 0xfe, 0x59, 0x82, 0x84, 0x10, + 0xa3, 0x63, 0x10, 0x6b, 0x69, 0xde, 0x1e, 0xa5, 0x8b, 0x17, 0x23, 0xb2, 0xa4, 0xd0, 0x6b, 0x22, + 0x77, 0x5b, 0x9a, 0x45, 0x43, 0x80, 0xcb, 0xc9, 0x35, 0x59, 0x57, 0x13, 0x6b, 0x75, 0xda, 0xf6, + 0xdb, 0xcd, 0x26, 0xb6, 0x3c, 0x57, 0xac, 0x2b, 0x97, 0xaf, 0x70, 0x31, 0x7a, 0x0a, 0xa6, 0x3d, + 0x47, 0x33, 0xcc, 0x1e, 0xdd, 0x18, 0xd5, 0x95, 0xc5, 0x80, 0xaf, 0x9c, 0x87, 0xe3, 0x82, 0xb7, + 0x8e, 0x3d, 0x4d, 0xdf, 0xc3, 0xf5, 0x2e, 0x68, 0x9c, 0x9e, 0x1c, 0x3e, 0xc8, 0x15, 0x56, 0xf9, + 0xb8, 0xc0, 0x2e, 0x7e, 0x5f, 0x82, 0x69, 0xf1, 0xa0, 0x52, 0xf7, 0x9d, 0x55, 0x01, 0xd0, 0x2c, + 0xcb, 0xf6, 0x82, 0xee, 0x1a, 0x0c, 0xe5, 0x01, 0xdc, 0x72, 0xc1, 0x07, 0x29, 0x01, 0x82, 0xb9, + 0x26, 0x40, 0x77, 0xe4, 0x40, 0xb7, 0xcd, 0x43, 0x8a, 0x9f, 0xdc, 0xd3, 0xd7, 0x3f, 0xec, 0xd1, + 0x16, 0x98, 0x88, 0x3c, 0xd1, 0xa0, 0x59, 0x88, 0xef, 0xe0, 0x86, 0x61, 0xf1, 0xf3, 0x44, 0x76, + 0x21, 0x4e, 0x29, 0x63, 0xfe, 0x29, 0x65, 0xf1, 0x2a, 0xcc, 0xe8, 0x76, 0xb3, 0xdf, 0xdc, 0xa2, + 0xdc, 0xf7, 0x78, 0xed, 0x7e, 0x52, 0x7a, 0x01, 0xba, 0x2d, 0xe6, 0x97, 0x23, 0xd1, 0xb5, 0x5a, + 0xf1, 0xab, 0x91, 0xb9, 0x35, 0x86, 0xab, 0x89, 0x69, 0x2a, 0x78, 0xd7, 0xc4, 0x3a, 0x31, 0x1d, + 0x7e, 0xf4, 0x38, 0x7c, 0xac, 0x61, 0x78, 0x7b, 0xed, 0x9d, 0x65, 0xdd, 0x6e, 0x9e, 0x6a, 0xd8, + 0x0d, 0xbb, 0xfb, 0xba, 0x8b, 0x5c, 0xd1, 0x0b, 0xfa, 0x8b, 0xbf, 0xf2, 0x4a, 0xfa, 0xd2, 0xb9, + 0xd0, 0xf7, 0x63, 0xf9, 0x0d, 0x98, 0xe1, 0xca, 0x2a, 0x3d, 0x73, 0x67, 0x8f, 0x06, 0xe8, 0xd0, + 0x73, 0x97, 0xec, 0x37, 0xde, 0xa6, 0xb5, 0x5a, 0x99, 0xe6, 0x50, 0x32, 0xc6, 0x1e, 0x20, 0xf2, + 0x0a, 0x3c, 0xd0, 0xc3, 0xc7, 0xf6, 0x25, 0x76, 0x42, 0x18, 0xbf, 0xcb, 0x19, 0x67, 0x02, 0x8c, + 0x9b, 0x1c, 0x9a, 0x5f, 0x81, 0xc9, 0xa3, 0x70, 0xfd, 0x23, 0xe7, 0x4a, 0xe3, 0x20, 0xc9, 0x1a, + 0x4c, 0x51, 0x12, 0xbd, 0xed, 0x7a, 0x76, 0x93, 0x26, 0xbd, 0xc3, 0x69, 0xfe, 0xe9, 0x6d, 0xb6, + 0x51, 0x32, 0x04, 0xb6, 0xe2, 0xa3, 0xf2, 0x79, 0xa0, 0xaf, 0x19, 0xea, 0x58, 0x37, 0x43, 0x18, + 0xde, 0xe0, 0x86, 0xf8, 0xfa, 0xf9, 0x4f, 0xc3, 0x2c, 0xf9, 0x4d, 0x73, 0x52, 0xd0, 0x92, 0xf0, + 0x53, 0xa6, 0xec, 0xf7, 0x5f, 0x66, 0x7b, 0x71, 0xc6, 0x27, 0x08, 0xd8, 0x14, 0x58, 0xc5, 0x06, + 0xf6, 0x3c, 0xec, 0xb8, 0xaa, 0x66, 0x0e, 0x33, 0x2f, 0xf0, 0x98, 0x9e, 0xfd, 0xe2, 0xbb, 0xbd, + 0xab, 0xb8, 0xc6, 0x90, 0x05, 0xd3, 0xcc, 0x6f, 0xc3, 0x83, 0x43, 0xa2, 0x62, 0x04, 0xce, 0x57, + 0x38, 0xe7, 0xec, 0x40, 0x64, 0x10, 0xda, 0x1a, 0x08, 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x01, + 0xe7, 0x44, 0x1c, 0x2b, 0x96, 0x94, 0x30, 0x5e, 0x86, 0xe9, 0x9b, 0xd8, 0xd9, 0xb1, 0x5d, 0x7e, + 0x34, 0x32, 0x02, 0xdd, 0xab, 0x9c, 0x6e, 0x8a, 0x03, 0xe9, 0x59, 0x09, 0xe1, 0x7a, 0x16, 0x12, + 0xbb, 0x9a, 0x8e, 0x47, 0xa0, 0xf8, 0x12, 0xa7, 0x98, 0x20, 0xfa, 0x04, 0x5a, 0x80, 0x74, 0xc3, + 0xe6, 0x65, 0x29, 0x1c, 0xfe, 0x1a, 0x87, 0xa7, 0x04, 0x86, 0x53, 0xb4, 0xec, 0x56, 0xdb, 0x24, + 0x35, 0x2b, 0x9c, 0xe2, 0x0f, 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x23, 0xb8, 0xf5, 0x8f, 0x04, 0x85, + 0x1b, 0xf0, 0xe7, 0xf3, 0x90, 0xb2, 0x2d, 0xb3, 0x63, 0x5b, 0xa3, 0x18, 0xf1, 0xc7, 0x9c, 0x01, + 0x38, 0x84, 0x10, 0x5c, 0x84, 0xe4, 0xa8, 0x0b, 0xf1, 0x27, 0xef, 0x8a, 0xed, 0x21, 0x56, 0x60, + 0x0d, 0xa6, 0x44, 0x82, 0x32, 0x6c, 0x6b, 0x04, 0x8a, 0x3f, 0xe5, 0x14, 0x99, 0x00, 0x8c, 0x4f, + 0xc3, 0xc3, 0xae, 0xd7, 0xc0, 0xa3, 0x90, 0xbc, 0x2e, 0xa6, 0xc1, 0x21, 0xdc, 0x95, 0x3b, 0xd8, + 0xd2, 0xf7, 0x46, 0x63, 0xf8, 0x8a, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x15, 0x98, 0x6c, 0x6a, 0x8e, + 0xbb, 0xa7, 0x99, 0x23, 0x2d, 0xc7, 0x9f, 0x71, 0x8e, 0xb4, 0x0f, 0xe2, 0x1e, 0x69, 0x5b, 0x47, + 0xa1, 0xf9, 0xaa, 0xf0, 0x48, 0x00, 0xc6, 0xb7, 0x9e, 0xeb, 0xd1, 0x03, 0xa8, 0xa3, 0xb0, 0x7d, + 0x4d, 0x6c, 0x3d, 0x86, 0xad, 0x04, 0x19, 0x2f, 0x42, 0xd2, 0x35, 0x5e, 0x1a, 0x89, 0xe6, 0xcf, + 0xc5, 0x4a, 0x53, 0x00, 0x01, 0x5f, 0x83, 0xe3, 0x43, 0xcb, 0xc4, 0x08, 0x64, 0x7f, 0xc1, 0xc9, + 0x8e, 0x0d, 0x29, 0x15, 0x3c, 0x25, 0x1c, 0x95, 0xf2, 0x2f, 0x45, 0x4a, 0xc0, 0x7d, 0x5c, 0x35, + 0xf2, 0xa0, 0xe0, 0x6a, 0xbb, 0x47, 0xf3, 0xda, 0x5f, 0x09, 0xaf, 0x31, 0x6c, 0x8f, 0xd7, 0xb6, + 0xe0, 0x18, 0x67, 0x3c, 0xda, 0xba, 0x7e, 0x5d, 0x24, 0x56, 0x86, 0xde, 0xee, 0x5d, 0xdd, 0x9f, + 0x87, 0x39, 0xdf, 0x9d, 0xa2, 0x23, 0x75, 0xd5, 0xa6, 0xd6, 0x1a, 0x81, 0xf9, 0x1b, 0x9c, 0x59, + 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0x2b, 0x5a, 0x8b, 0x90, 0x5f, 0x85, 0xac, 0x20, 0x6f, 0x5b, 0x0e, + 0xd6, 0xed, 0x86, 0x65, 0xbc, 0x84, 0xeb, 0x23, 0x50, 0xff, 0x75, 0xdf, 0x52, 0x6d, 0x07, 0xe0, + 0x84, 0xb9, 0x0c, 0xb2, 0xdf, 0xab, 0xa8, 0x46, 0xb3, 0x65, 0x3b, 0x5e, 0x08, 0xe3, 0xdf, 0x88, + 0x95, 0xf2, 0x71, 0x65, 0x0a, 0xcb, 0x97, 0x20, 0x43, 0x2f, 0x47, 0x0d, 0xc9, 0xbf, 0xe5, 0x44, + 0x93, 0x5d, 0x14, 0x4f, 0x1c, 0xba, 0xdd, 0x6c, 0x69, 0xce, 0x28, 0xf9, 0xef, 0x9b, 0x22, 0x71, + 0x70, 0x08, 0x4f, 0x1c, 0x5e, 0xa7, 0x85, 0x49, 0xb5, 0x1f, 0x81, 0xe1, 0x5b, 0x22, 0x71, 0x08, + 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x08, 0x14, 0x7f, 0x27, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xaa, 0x5b, + 0x68, 0x1d, 0xdc, 0x30, 0x5c, 0xcf, 0x61, 0x7d, 0xf0, 0xe1, 0x54, 0xdf, 0x7e, 0xb7, 0xb7, 0x09, + 0x53, 0x02, 0xd0, 0xfc, 0x65, 0x98, 0xea, 0x6b, 0x31, 0x50, 0xd8, 0x37, 0x0b, 0xd9, 0x5f, 0x7c, + 0x9f, 0x27, 0xa3, 0xde, 0x0e, 0x23, 0xbf, 0x4e, 0xd6, 0xbd, 0xb7, 0x0f, 0x08, 0x27, 0x7b, 0xf9, + 0x7d, 0x7f, 0xe9, 0x7b, 0xda, 0x80, 0xfc, 0x25, 0x98, 0xec, 0xe9, 0x01, 0xc2, 0xa9, 0x7e, 0x89, + 0x53, 0xa5, 0x83, 0x2d, 0x40, 0xfe, 0x1c, 0xc4, 0x48, 0x3d, 0x0f, 0x87, 0xff, 0x32, 0x87, 0x53, + 0xf5, 0xfc, 0x27, 0x20, 0x21, 0xea, 0x78, 0x38, 0xf4, 0x57, 0x38, 0xd4, 0x87, 0x10, 0xb8, 0xa8, + 0xe1, 0xe1, 0xf0, 0xcf, 0x09, 0xb8, 0x80, 0x10, 0xf8, 0xe8, 0x2e, 0xfc, 0xce, 0xaf, 0xc5, 0x78, + 0x1e, 0x16, 0xbe, 0xbb, 0x08, 0x13, 0xbc, 0x78, 0x87, 0xa3, 0x3f, 0xcf, 0x6f, 0x2e, 0x10, 0xf9, + 0x67, 0x20, 0x3e, 0xa2, 0xc3, 0x7f, 0x9d, 0x43, 0x99, 0x7e, 0x7e, 0x05, 0x52, 0x81, 0x82, 0x1d, + 0x0e, 0xff, 0x0d, 0x0e, 0x0f, 0xa2, 0x88, 0xe9, 0xbc, 0x60, 0x87, 0x13, 0xfc, 0xa6, 0x30, 0x9d, + 0x23, 0x88, 0xdb, 0x44, 0xad, 0x0e, 0x47, 0xff, 0x96, 0xf0, 0xba, 0x80, 0xe4, 0x9f, 0x87, 0xa4, + 0x9f, 0x7f, 0xc3, 0xf1, 0xbf, 0xcd, 0xf1, 0x5d, 0x0c, 0xf1, 0x40, 0x20, 0xff, 0x87, 0x53, 0xfc, + 0x8e, 0xf0, 0x40, 0x00, 0x45, 0xb6, 0x51, 0x7f, 0x4d, 0x0f, 0x67, 0xfa, 0x5d, 0xb1, 0x8d, 0xfa, + 0x4a, 0x3a, 0x59, 0x4d, 0x9a, 0x06, 0xc3, 0x29, 0x7e, 0x4f, 0xac, 0x26, 0xd5, 0x27, 0x66, 0xf4, + 0x17, 0xc9, 0x70, 0x8e, 0xdf, 0x17, 0x66, 0xf4, 0xd5, 0xc8, 0x7c, 0x0d, 0xd0, 0x60, 0x81, 0x0c, + 0xe7, 0xfb, 0x02, 0xe7, 0x9b, 0x1e, 0xa8, 0x8f, 0xf9, 0x2b, 0x70, 0x6c, 0x78, 0x71, 0x0c, 0x67, + 0xfd, 0xe2, 0xfb, 0x7d, 0x8f, 0x33, 0xc1, 0xda, 0x98, 0xdf, 0xea, 0x66, 0xd9, 0x60, 0x61, 0x0c, + 0xa7, 0x7d, 0xe5, 0xfd, 0xde, 0x44, 0x1b, 0xac, 0x8b, 0xf9, 0x02, 0x40, 0xb7, 0x26, 0x85, 0x73, + 0xbd, 0xca, 0xb9, 0x02, 0x20, 0xb2, 0x35, 0x78, 0x49, 0x0a, 0xc7, 0x7f, 0x49, 0x6c, 0x0d, 0x8e, + 0x20, 0x5b, 0x43, 0x54, 0xa3, 0x70, 0xf4, 0x6b, 0x62, 0x6b, 0x08, 0x48, 0xfe, 0x22, 0x24, 0xac, + 0xb6, 0x69, 0x92, 0xd8, 0x42, 0x87, 0x7f, 0x46, 0x94, 0xfd, 0xe1, 0x07, 0x1c, 0x2c, 0x00, 0xf9, + 0x73, 0x10, 0xc7, 0xcd, 0x1d, 0x5c, 0x0f, 0x43, 0xfe, 0xfb, 0x07, 0x22, 0x9f, 0x10, 0xed, 0xfc, + 0xf3, 0x00, 0xec, 0x61, 0x9a, 0xbe, 0x25, 0x0a, 0xc1, 0xfe, 0xc7, 0x07, 0xfc, 0x0b, 0x85, 0x2e, + 0xa4, 0x4b, 0xc0, 0xbe, 0x77, 0x38, 0x9c, 0xe0, 0xdd, 0x5e, 0x02, 0xfa, 0x00, 0xfe, 0x2c, 0x4c, + 0x5c, 0x77, 0x6d, 0xcb, 0xd3, 0x1a, 0x61, 0xe8, 0xff, 0xe4, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb4, + 0x1d, 0xec, 0x69, 0x0d, 0x37, 0x0c, 0xfb, 0x5f, 0x1c, 0xeb, 0x03, 0x08, 0x58, 0xd7, 0x5c, 0x6f, + 0x94, 0x79, 0xff, 0xb7, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x81, 0x3b, 0x61, 0xd8, 0xf7, + 0x84, 0xd1, 0x5c, 0x3f, 0xff, 0x09, 0x48, 0x92, 0x9f, 0xec, 0xab, 0x9d, 0x10, 0xf0, 0xff, 0x70, + 0x70, 0x17, 0x41, 0xee, 0xec, 0x7a, 0x75, 0xcf, 0x08, 0x77, 0xf6, 0xff, 0xf2, 0x95, 0x16, 0xfa, + 0xf9, 0x02, 0xa4, 0x5c, 0xaf, 0x5e, 0x6f, 0xf3, 0x8e, 0x26, 0x04, 0xfe, 0xa3, 0x0f, 0xfc, 0x87, + 0x5c, 0x1f, 0x53, 0x3c, 0x31, 0xfc, 0xb0, 0x0e, 0xd6, 0xec, 0x35, 0x9b, 0x1d, 0xd3, 0xc1, 0x3f, + 0x4c, 0xc1, 0x49, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0x29, 0x96, 0x50, 0x02, 0xc9, 0xe8, 0x94, 0x70, + 0x20, 0x3f, 0x6f, 0xf3, 0x1d, 0x3a, 0x77, 0xb4, 0x83, 0xba, 0xc5, 0x1f, 0x4e, 0x42, 0x62, 0x45, + 0x73, 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x8f, 0x41, 0xa2, 0x6c, 0x79, 0x67, 0x4e, 0xd7, 0x3c, 0x87, + 0xbe, 0x68, 0x8a, 0x16, 0x93, 0xf7, 0xee, 0xcc, 0xc7, 0x0d, 0x22, 0x53, 0xfc, 0x21, 0xf4, 0x08, + 0xc4, 0xe9, 0x6f, 0x7a, 0x56, 0x19, 0x2d, 0x4e, 0xbe, 0x71, 0x67, 0x7e, 0xac, 0xab, 0xc7, 0xc6, + 0xd0, 0x35, 0x48, 0x55, 0x3a, 0xdb, 0x86, 0xe5, 0x9d, 0x3f, 0x4b, 0xe8, 0x88, 0x0b, 0x62, 0xc5, + 0x67, 0xee, 0xdd, 0x99, 0x3f, 0x73, 0xa0, 0x81, 0xa4, 0x30, 0x76, 0x27, 0x26, 0xd0, 0xf4, 0xfb, + 0xc5, 0x20, 0x17, 0xba, 0x02, 0x09, 0x71, 0xc9, 0xce, 0xfc, 0x8b, 0x17, 0xb9, 0x09, 0xf7, 0xc5, + 0xed, 0x93, 0xa1, 0x5f, 0x80, 0x74, 0xa5, 0x73, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xf8, 0x82, 0xb4, + 0x14, 0x29, 0x5e, 0xb8, 0x77, 0x67, 0xfe, 0xec, 0xc8, 0xc4, 0x1c, 0x4e, 0x99, 0x7b, 0xd8, 0xd0, + 0x0b, 0x90, 0xf4, 0xaf, 0xe9, 0x5b, 0x85, 0x48, 0xf1, 0xe3, 0xdc, 0xee, 0xfb, 0xa3, 0xef, 0xd2, + 0x05, 0x2c, 0x67, 0xee, 0x9e, 0x58, 0x90, 0x96, 0xa4, 0xfb, 0xb1, 0x9c, 0xfb, 0xa4, 0x87, 0x2d, + 0x60, 0xf9, 0xf9, 0xb3, 0xf4, 0x35, 0x86, 0x74, 0xbf, 0x96, 0x73, 0xfa, 0x2e, 0x1d, 0xba, 0x0c, + 0x13, 0x95, 0x4e, 0xb1, 0xe3, 0x61, 0x97, 0x7e, 0xd7, 0x93, 0x2e, 0x3e, 0x7d, 0xef, 0xce, 0xfc, + 0x47, 0x47, 0x64, 0xa5, 0x38, 0x45, 0x10, 0xa0, 0x05, 0x48, 0x6d, 0xd8, 0x4e, 0x53, 0x33, 0x19, + 0x1f, 0xb0, 0xd7, 0x32, 0x01, 0x11, 0xda, 0x26, 0x33, 0x61, 0xab, 0xed, 0xd2, 0xff, 0x48, 0xf8, + 0x09, 0x62, 0xb2, 0xcb, 0x84, 0x0c, 0x88, 0x57, 0x3a, 0x15, 0xad, 0x95, 0x4d, 0xd3, 0x77, 0x06, + 0x0f, 0x2f, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xb8, 0xa2, 0x78, 0xf6, 0xde, 0x9d, + 0xf9, 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x6f, 0x4a, 0x64, 0x63, + 0xb1, 0x73, 0x57, 0x72, 0xc7, 0x49, 0x7a, 0xc7, 0x47, 0x86, 0xde, 0xd1, 0xd7, 0x62, 0xf7, 0xb5, + 0x3e, 0xfb, 0xe6, 0x11, 0x66, 0xca, 0x9e, 0x6d, 0xc8, 0xad, 0x7f, 0xf5, 0xcd, 0xfb, 0xde, 0xb4, + 0xbe, 0x05, 0xe8, 0x65, 0x09, 0x26, 0x2b, 0x9d, 0x0d, 0x5e, 0x65, 0x89, 0xe5, 0x19, 0xfe, 0xdd, + 0xfa, 0x30, 0xcb, 0x03, 0x7a, 0xcc, 0xf6, 0xf3, 0x9f, 0x7d, 0x73, 0xfe, 0xf4, 0xc8, 0x46, 0xd0, + 0x14, 0x44, 0x6d, 0xe8, 0xbd, 0x27, 0xfa, 0x1c, 0xb5, 0xa2, 0x44, 0x2a, 0x76, 0x1d, 0xd7, 0x89, + 0x15, 0x53, 0x87, 0x58, 0x11, 0xd0, 0x63, 0x56, 0xe4, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x01, 0x3e, + 0x54, 0x85, 0x71, 0xe6, 0x61, 0xfa, 0x4d, 0x59, 0xf2, 0x88, 0x61, 0xd8, 0x5d, 0x1c, 0x85, 0xd3, + 0xcc, 0x5d, 0x00, 0xe8, 0xc6, 0x18, 0x92, 0x21, 0x7a, 0x03, 0x77, 0xf8, 0x87, 0x83, 0xe4, 0x27, + 0x9a, 0xed, 0x7e, 0x18, 0x2b, 0x2d, 0xc5, 0xf8, 0xd7, 0xae, 0xf9, 0xc8, 0x05, 0x69, 0xee, 0x39, + 0x90, 0xfb, 0x63, 0xe5, 0x48, 0x78, 0x05, 0xd0, 0xe0, 0x8a, 0x05, 0x19, 0xe2, 0x8c, 0xe1, 0xf1, + 0x20, 0x43, 0xea, 0xb4, 0xdc, 0xf5, 0xf9, 0x15, 0xc3, 0x74, 0x6d, 0x6b, 0x80, 0xb3, 0xdf, 0xff, + 0x3f, 0x19, 0xe7, 0x62, 0x0e, 0xc6, 0x99, 0x90, 0xcc, 0xa5, 0x4c, 0xcb, 0x07, 0xad, 0x72, 0x0a, + 0xbb, 0x28, 0xae, 0xbf, 0x71, 0x37, 0x37, 0xf6, 0xbd, 0xbb, 0xb9, 0xb1, 0x7f, 0xb9, 0x9b, 0x1b, + 0x7b, 0xeb, 0x6e, 0x4e, 0x7a, 0xe7, 0x6e, 0x4e, 0x7a, 0xef, 0x6e, 0x4e, 0xfa, 0xf1, 0xdd, 0x9c, + 0x74, 0x7b, 0x3f, 0x27, 0x7d, 0x65, 0x3f, 0x27, 0x7d, 0x7d, 0x3f, 0x27, 0x7d, 0x7b, 0x3f, 0x27, + 0x7d, 0x67, 0x3f, 0x27, 0xbd, 0xb1, 0x9f, 0x1b, 0xfb, 0xde, 0x7e, 0x6e, 0xec, 0xad, 0xfd, 0x9c, + 0xf4, 0xce, 0x7e, 0x6e, 0xec, 0xbd, 0xfd, 0x9c, 0xf4, 0xe3, 0xfd, 0xdc, 0xd8, 0xed, 0x1f, 0xe4, + 0xa4, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x34, 0x50, 0x96, 0x1b, 0x36, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -463,6 +485,15 @@ func (this *Castaway) VerboseEqual(that interface{}) error { return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) + } + } else if this.String_ != nil { + return fmt.Errorf("this.String_ == nil && that.String_ != nil") + } else if that1.String_ != nil { + return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) } @@ -589,6 +620,15 @@ func (this *Castaway) Equal(that interface{}) bool { return false } } + if this.String_ != nil && that1.String_ != nil { + if *this.String_ != *that1.String_ { + return false + } + } else if this.String_ != nil { + return false + } else if that1.String_ != nil { + return false + } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { return false } @@ -690,6 +730,7 @@ type CastawayFace interface { GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson + GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { @@ -760,6 +801,10 @@ func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_castt return this.MyEmbeddedMap } +func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { + return this.String_ +} + func NewCastawayFromFace(that CastawayFace) *Castaway { this := &Castaway{} this.Int32Ptr = that.GetInt32Ptr() @@ -777,6 +822,7 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { this.MyCustomMap = that.GetMyCustomMap() this.MyNullableMap = that.GetMyNullableMap() this.MyEmbeddedMap = that.GetMyEmbeddedMap() + this.String_ = that.GetString_() return this } @@ -807,7 +853,7 @@ func (this *Castaway) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 19) + s := make([]string, 0, 20) s = append(s, "&casttype.Castaway{") if this.Int32Ptr != nil { s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") @@ -886,6 +932,9 @@ func (this *Castaway) GoString() string { if this.MyEmbeddedMap != nil { s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") } + if this.String_ != nil { + s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -915,23 +964,6 @@ func valueToGoStringCasttype(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCasttype(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -1023,8 +1055,12 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) } } + if r.Intn(10) != 0 { + v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) + this.String_ = &v14 + } if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 16) + this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) } return this } @@ -1032,11 +1068,11 @@ func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { this := &Wilson{} if r.Intn(10) != 0 { - v14 := int64(r.Int63()) + v15 := int64(r.Int63()) if r.Intn(2) == 0 { - v14 *= -1 + v15 *= -1 } - this.Int64 = &v14 + this.Int64 = &v15 } if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) @@ -1063,14 +1099,14 @@ func randUTF8RuneCasttype(r randyCasttype) rune { return rune(ru + 61) } func randStringCasttype(r randyCasttype) string { - v15 := r.Intn(100) - tmps := make([]rune, v15) - for i := 0; i < v15; i++ { + v16 := r.Intn(100) + tmps := make([]rune, v16) + for i := 0; i < v16; i++ { tmps[i] = randUTF8RuneCasttype(r) } return string(tmps) } -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) { +func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1078,43 +1114,43 @@ func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (data []byte) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCasttype(data, r, fieldNumber, wire) + dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCasttype(data []byte, r randyCasttype, fieldNumber int, wire int) []byte { +func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCasttype(data, uint64(key)) - v16 := r.Int63() + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + v17 := r.Int63() if r.Intn(2) == 0 { - v16 *= -1 + v17 *= -1 } - data = encodeVarintPopulateCasttype(data, uint64(v16)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) case 1: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCasttype(data, uint64(key)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCasttype(data, uint64(ll)) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCasttype(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCasttype(data []byte, v uint64) []byte { +func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -1171,8 +1207,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovCasttype(uint64(l)) } - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) + mapEntrySize := 1 + sovCasttype(uint64(k)) + l n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } @@ -1185,6 +1222,10 @@ func (m *Castaway) Size() (n int) { n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) } } + if m.String_ != nil { + l = len(*m.String_) + n += 2 + l + sovCasttype(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -1276,6 +1317,7 @@ func (this *Castaway) String() string { `MyCustomMap:` + mapStringForMyCustomMap + `,`, `MyNullableMap:` + mapStringForMyNullableMap + `,`, `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, + `String_:` + valueToStringCasttype(this.String_) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1300,8 +1342,8 @@ func valueToStringCasttype(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1313,7 +1355,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1341,7 +1383,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1361,7 +1403,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int32 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1380,7 +1422,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1400,7 +1442,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -1416,10 +1458,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1431,10 +1473,10 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1445,14 +1487,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1464,14 +1506,14 @@ func (m *Castaway) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1485,7 +1527,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1499,7 +1541,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MyBytes = append(m.MyBytes[:0], data[iNdEx:postIndex]...) + m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) if m.MyBytes == nil { m.MyBytes = []byte{} } @@ -1516,7 +1558,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1530,31 +1572,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NormalBytes = append(m.NormalBytes[:0], data[iNdEx:postIndex]...) + m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) if m.NormalBytes == nil { m.NormalBytes = []byte{} } iNdEx = postIndex case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if wireType == 0 { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.MyUint64S = append(m.MyUint64S, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v github_com_gogo_protobuf_test_casttype.MyUint64Type + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MyUint64S = append(m.MyUint64S, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) } - m.MyUint64S = append(m.MyUint64S, v) case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) @@ -1567,7 +1651,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1589,7 +1673,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1604,7 +1688,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1619,42 +1703,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyMap == nil { + m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyMap[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.MyMap[mapkey] = mapvalue } - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1668,7 +1757,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1690,7 +1779,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1705,7 +1794,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1720,42 +1809,47 @@ func (m *Castaway) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(data[iNdEx:postStringIndexmapkey]) + mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.MyCustomMap == nil { + m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -1769,7 +1863,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1791,7 +1885,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1806,62 +1900,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if m.MyNullableMap == nil { + m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue + } else { + var mapvalue *Wilson + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -1875,7 +1974,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1897,7 +1996,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1912,29 +2011,73 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe + if m.MyEmbeddedMap == nil { + m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttypeUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttypeUnsafe + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + } else { + var mapvalue Wilson + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } - var mapmsglen int + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttypeUnsafe @@ -1942,36 +2085,27 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCasttypeUnsafe } - if postmsgIndex > l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue + s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) + m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(data[iNdEx:]) + skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1981,7 +2115,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1991,8 +2125,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2004,7 +2138,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2032,7 +2166,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2042,7 +2176,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(data[iNdEx:]) + skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2052,7 +2186,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2062,8 +2196,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCasttypeUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipCasttypeUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2074,7 +2208,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2092,7 +2226,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2109,7 +2243,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2132,7 +2266,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2143,7 +2277,7 @@ func skipCasttypeUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCasttypeUnsafe(data[start:]) + next, err := skipCasttypeUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -2167,49 +2301,53 @@ var ( ErrIntOverflowCasttypeUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/casttype.proto", fileDescriptorCasttype) } + var fileDescriptorCasttype = []byte{ - // 676 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x95, 0x3b, 0x6f, 0xd3, 0x50, - 0x14, 0xc7, 0xeb, 0xa6, 0x6e, 0xed, 0xeb, 0x04, 0xaa, 0x2b, 0x06, 0xab, 0x12, 0x69, 0xd4, 0xaa, - 0xc0, 0x00, 0x49, 0x95, 0x46, 0x21, 0x2a, 0x88, 0xc1, 0x55, 0x91, 0x8a, 0x70, 0x85, 0x0c, 0x55, - 0x05, 0x62, 0x71, 0x1a, 0x37, 0xb5, 0xf0, 0x23, 0xf2, 0x03, 0xe4, 0xad, 0x82, 0x01, 0x89, 0x4f, - 0xc0, 0x47, 0x60, 0x64, 0x41, 0x62, 0x64, 0xcc, 0xc8, 0xc8, 0xd4, 0x17, 0x4b, 0xc7, 0x8e, 0x15, - 0x13, 0xe7, 0xde, 0xeb, 0x97, 0xda, 0x82, 0x52, 0x77, 0x38, 0xba, 0xaf, 0x73, 0x7e, 0xe7, 0x7f, - 0x8f, 0xef, 0xbd, 0x46, 0xb7, 0xb7, 0x5c, 0xbb, 0xeb, 0xfa, 0x8d, 0xd0, 0xf1, 0xf5, 0x6d, 0x23, - 0x74, 0x6c, 0xdd, 0xf3, 0x77, 0x74, 0xcb, 0xf0, 0x1a, 0x5b, 0xba, 0x1f, 0x04, 0xd1, 0xc0, 0xa8, - 0x0f, 0x3c, 0x37, 0x70, 0xb1, 0x90, 0x8c, 0x67, 0xee, 0xf5, 0xcd, 0x60, 0x27, 0xec, 0xd6, 0x21, - 0xb2, 0xd1, 0x77, 0xfb, 0x6e, 0x83, 0x3a, 0x74, 0xc3, 0x6d, 0x3a, 0xa2, 0x03, 0xda, 0x63, 0x81, - 0x73, 0x9f, 0x2b, 0x48, 0x58, 0x81, 0x58, 0xfd, 0x9d, 0x1e, 0xe1, 0x05, 0x24, 0xac, 0x39, 0xc1, - 0x52, 0xf3, 0x59, 0xe0, 0xc9, 0x5c, 0x8d, 0xbb, 0x53, 0x52, 0xc4, 0x3f, 0x7b, 0xb3, 0xbc, 0x49, - 0xe6, 0x34, 0xc1, 0x8c, 0x97, 0xf0, 0x3c, 0xe2, 0xa9, 0x9b, 0x3c, 0x4e, 0x7d, 0x2a, 0xc3, 0xbd, - 0xd9, 0xb1, 0xcc, 0x8f, 0x35, 0xf8, 0x25, 0x92, 0xd4, 0x68, 0x03, 0xfa, 0xed, 0x16, 0xc1, 0x95, - 0xc0, 0x75, 0x42, 0xb9, 0x0f, 0x6e, 0x4b, 0xff, 0x14, 0x18, 0x18, 0x7e, 0x90, 0x6d, 0x2c, 0x89, - 0x7e, 0x01, 0x03, 0x4d, 0xb2, 0x33, 0x16, 0xde, 0x44, 0x42, 0xb2, 0x28, 0x4f, 0x50, 0xee, 0x83, - 0x58, 0x42, 0x21, 0xb6, 0x90, 0xb0, 0xf1, 0x6b, 0x54, 0x56, 0xa3, 0xc7, 0x96, 0xab, 0xc7, 0x35, - 0xe0, 0x01, 0x3e, 0xae, 0x74, 0x00, 0xdc, 0x1a, 0x19, 0x1c, 0x87, 0x53, 0x72, 0xd9, 0xce, 0xd1, - 0xf0, 0x2b, 0x24, 0xa6, 0xcb, 0xf2, 0x24, 0x45, 0x3f, 0x8c, 0x75, 0x17, 0xc3, 0x8b, 0x29, 0x3e, - 0xa7, 0x9c, 0x95, 0x7b, 0x0a, 0xf0, 0x5c, 0x11, 0xe5, 0x71, 0x4d, 0x12, 0xe5, 0xac, 0xe0, 0x99, - 0x72, 0xa8, 0xb8, 0x40, 0xd1, 0x05, 0x95, 0xc7, 0x78, 0x31, 0xc5, 0xe3, 0x27, 0x68, 0x4a, 0x8d, - 0x94, 0x08, 0xbc, 0x65, 0x11, 0xc8, 0x65, 0x65, 0x11, 0xa8, 0x77, 0x47, 0xa4, 0xd2, 0x38, 0x6d, - 0xca, 0x66, 0x00, 0x5c, 0x43, 0xd2, 0xba, 0xeb, 0xd9, 0xba, 0xc5, 0x78, 0x88, 0xf0, 0x34, 0xc9, - 0xc9, 0xa6, 0xf0, 0x06, 0xd9, 0x09, 0xfb, 0xda, 0xbe, 0x2c, 0xd5, 0x4a, 0x57, 0x39, 0x93, 0x62, - 0x72, 0x6e, 0x7c, 0x6c, 0x22, 0x5e, 0x8d, 0x54, 0x7d, 0x20, 0x97, 0x01, 0x29, 0x35, 0x6f, 0xd6, - 0xd3, 0x88, 0xe4, 0x6e, 0xd5, 0xe9, 0xfa, 0xaa, 0x13, 0x78, 0x91, 0xd2, 0x82, 0x8c, 0x8b, 0x23, - 0x67, 0x84, 0x30, 0x9a, 0x8e, 0xb7, 0x49, 0x17, 0x7f, 0xe3, 0xc8, 0xc5, 0x5a, 0x09, 0xfd, 0xc0, - 0xb5, 0x49, 0xc6, 0x0a, 0xcd, 0x38, 0x7f, 0x61, 0xc6, 0xd4, 0x8b, 0xe5, 0x75, 0xde, 0xef, 0x5f, - 0x62, 0xa7, 0xcf, 0x03, 0xcf, 0x74, 0xfa, 0x24, 0xf5, 0xa7, 0xfd, 0xc2, 0x97, 0x36, 0x55, 0x80, - 0x3f, 0x70, 0xa8, 0xa2, 0x46, 0xeb, 0xa1, 0x65, 0xe9, 0x5d, 0xcb, 0x20, 0xca, 0xaf, 0x51, 0xe5, - 0x0b, 0x17, 0x2a, 0xcf, 0xf9, 0x31, 0xed, 0x6d, 0xd0, 0xde, 0x1c, 0x59, 0x04, 0x7d, 0x9e, 0xa8, - 0x86, 0x8a, 0x9d, 0x67, 0xe1, 0x8f, 0x54, 0xc5, 0xaa, 0xdd, 0x35, 0x7a, 0x3d, 0xa3, 0x47, 0x54, - 0x5c, 0xff, 0x8f, 0x8a, 0x9c, 0x1f, 0x53, 0xb1, 0x4c, 0x4e, 0x7d, 0x71, 0x25, 0x39, 0xde, 0x4c, - 0x07, 0xa1, 0xec, 0x48, 0xe0, 0x69, 0x54, 0x7a, 0x63, 0x44, 0xf4, 0xd1, 0x15, 0x35, 0xd2, 0xc5, - 0x37, 0x10, 0xff, 0x56, 0xb7, 0x42, 0x83, 0x3e, 0xb2, 0x13, 0x1a, 0x1b, 0x2c, 0x8f, 0x77, 0xb8, - 0x99, 0x47, 0x68, 0xfa, 0xec, 0xa7, 0xbd, 0x54, 0xbc, 0x86, 0xf0, 0xf9, 0x02, 0xe7, 0x09, 0x3c, - 0x23, 0xdc, 0xca, 0x13, 0xa4, 0xe6, 0x74, 0x56, 0xa2, 0x4d, 0xd3, 0xf2, 0x5d, 0xe7, 0x1c, 0xf3, - 0x6c, 0xb9, 0xae, 0xc6, 0x9c, 0xab, 0xa2, 0x49, 0x36, 0x49, 0xf6, 0xb2, 0x46, 0x5f, 0x7b, 0xfa, - 0x53, 0xa2, 0x7f, 0x98, 0x76, 0x4b, 0x79, 0x3a, 0x3c, 0xac, 0x8e, 0xfd, 0x04, 0xfb, 0x05, 0x76, - 0x70, 0x58, 0xe5, 0x8e, 0xc1, 0x4e, 0xc0, 0x4e, 0xc1, 0x76, 0x8f, 0xaa, 0xdc, 0x17, 0xb0, 0xaf, - 0x60, 0xdf, 0xc1, 0x7e, 0x80, 0x0d, 0x8f, 0xc0, 0x1f, 0xec, 0x00, 0xfa, 0xc7, 0xd0, 0x9e, 0x40, - 0x7b, 0x0a, 0xed, 0xee, 0xef, 0x2a, 0xf7, 0x37, 0x00, 0x00, 0xff, 0xff, 0x32, 0x04, 0x75, 0xf8, - 0x6b, 0x07, 0x00, 0x00, + // 705 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c, + 0x18, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0xe6, 0x7d, 0xa3, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5, + 0xaa, 0xe0, 0x01, 0x92, 0x2a, 0x8d, 0x4a, 0x55, 0x10, 0x83, 0xab, 0x22, 0x15, 0xe1, 0x82, 0x0c, + 0x55, 0x05, 0x62, 0xb9, 0xb4, 0x6e, 0x1a, 0xe1, 0xd8, 0x91, 0x7d, 0x06, 0x79, 0xab, 0xca, 0x80, + 0xc4, 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, + 0xab, 0x4c, 0xc8, 0x77, 0x4e, 0xec, 0xfe, 0x00, 0xa5, 0xee, 0x76, 0xcf, 0xdd, 0xf3, 0x7c, 0x9e, + 0xef, 0x3d, 0xf7, 0xdc, 0x1d, 0xbc, 0xbb, 0x65, 0x77, 0x9a, 0xb6, 0x5b, 0xf3, 0x2c, 0x97, 0xec, + 0x18, 0x9e, 0xd5, 0x21, 0x8e, 0xbb, 0x4b, 0x4c, 0xc3, 0xa9, 0x6d, 0x11, 0x97, 0x52, 0xbf, 0x6b, + 0x54, 0xbb, 0x8e, 0x4d, 0x6d, 0x54, 0x18, 0xd8, 0xd3, 0xf7, 0x5b, 0x6d, 0xba, 0xeb, 0x35, 0xab, + 0x5b, 0x76, 0xa7, 0xd6, 0xb2, 0x5b, 0x76, 0x8d, 0x39, 0x34, 0xbd, 0x1d, 0x66, 0x31, 0x83, 0x8d, + 0x78, 0xe0, 0xcc, 0xef, 0x32, 0x2c, 0xac, 0x10, 0x97, 0x92, 0x0f, 0xc4, 0x47, 0x73, 0xb0, 0xb0, + 0x66, 0xd1, 0x85, 0xfa, 0x0b, 0xea, 0x88, 0x40, 0x06, 0x4a, 0x4e, 0x2d, 0xf6, 0x7b, 0x52, 0xbe, + 0x1d, 0xcd, 0xe9, 0xc3, 0x25, 0x34, 0x0b, 0xf3, 0x6c, 0x2c, 0x8e, 0x31, 0x9f, 0xf2, 0x41, 0x4f, + 0x12, 0x12, 0x3f, 0xbe, 0x86, 0x5e, 0xc3, 0x92, 0xe6, 0x6f, 0xb4, 0x2d, 0xba, 0xd8, 0x88, 0x70, + 0x39, 0x19, 0x28, 0xe3, 0xea, 0x83, 0x7e, 0x4f, 0x5a, 0xf8, 0xab, 0x40, 0x6a, 0xb8, 0x34, 0xd9, + 0xd8, 0x20, 0xfa, 0x95, 0xdf, 0x35, 0xf4, 0x34, 0x0b, 0x6d, 0xc2, 0xc2, 0xc0, 0x14, 0xc7, 0x19, + 0xf7, 0x61, 0x2c, 0x21, 0x13, 0x7b, 0x08, 0x43, 0x6f, 0xe1, 0x94, 0xe6, 0x3f, 0x31, 0x6d, 0x12, + 0xd7, 0x20, 0x2f, 0x03, 0x65, 0x4c, 0x5d, 0xea, 0xf7, 0xa4, 0xc6, 0xc8, 0xe0, 0x38, 0x9c, 0x91, + 0xcf, 0xd1, 0xd0, 0x1b, 0x58, 0x1c, 0xda, 0xe2, 0x04, 0x43, 0x3f, 0x8a, 0x75, 0x67, 0xc3, 0x27, + 0xb8, 0x94, 0x72, 0x5e, 0xee, 0x49, 0x19, 0x28, 0x20, 0x8b, 0xf2, 0xb8, 0x26, 0xe7, 0x68, 0x29, + 0xe5, 0x8b, 0x0d, 0xb1, 0xc0, 0xd0, 0x19, 0x95, 0xc7, 0xf8, 0x04, 0x87, 0x9e, 0xc2, 0x49, 0xcd, + 0x57, 0x7d, 0x6a, 0xb8, 0x62, 0x51, 0x06, 0xca, 0x94, 0x3a, 0xdf, 0xef, 0x49, 0xf7, 0x46, 0xa4, + 0xb2, 0x38, 0x7d, 0x00, 0x40, 0x32, 0x2c, 0xad, 0xdb, 0x4e, 0x87, 0x98, 0x9c, 0x07, 0x23, 0x9e, + 0x9e, 0x9e, 0x42, 0x1b, 0xd1, 0x4e, 0xf8, 0x69, 0xbb, 0x62, 0x49, 0xce, 0xdd, 0xa4, 0x27, 0x13, + 0x12, 0x6a, 0xc3, 0xbc, 0xe6, 0x6b, 0xa4, 0x2b, 0x4e, 0xc9, 0x39, 0xa5, 0x54, 0xbf, 0x5d, 0x1d, + 0x46, 0x0c, 0xee, 0x56, 0x95, 0xad, 0xaf, 0x5a, 0xd4, 0xf1, 0xd5, 0x46, 0xbf, 0x27, 0xcd, 0x8f, + 0x9c, 0x51, 0x23, 0x5d, 0x96, 0x8e, 0x67, 0x40, 0xdf, 0x40, 0x74, 0xb1, 0x56, 0x3c, 0x97, 0xda, + 0x9d, 0x28, 0x63, 0x99, 0x65, 0x9c, 0xbd, 0x32, 0xe3, 0xd0, 0x8b, 0xe7, 0xb5, 0xf6, 0x8f, 0xae, + 0xb1, 0xd3, 0x97, 0xd4, 0x69, 0x5b, 0xad, 0x28, 0xf5, 0xe7, 0xa3, 0xcc, 0x97, 0x76, 0xa8, 0x00, + 0x7d, 0x04, 0xb0, 0xac, 0xf9, 0xeb, 0x9e, 0x69, 0x92, 0xa6, 0x69, 0x44, 0xca, 0xff, 0x63, 0xca, + 0xe7, 0xae, 0x54, 0x9e, 0xf2, 0xe3, 0xda, 0x17, 0xf7, 0x8f, 0xa4, 0xfa, 0xc8, 0x22, 0xd8, 0x13, + 0xc4, 0x34, 0x9c, 0xcf, 0x89, 0x3e, 0x31, 0x15, 0xab, 0x9d, 0xa6, 0xb1, 0xbd, 0x6d, 0x6c, 0x47, + 0x2a, 0xfe, 0xff, 0x87, 0x8a, 0x94, 0x1f, 0x57, 0xb1, 0x1c, 0x75, 0x7d, 0x76, 0x25, 0x29, 0x1e, + 0x7a, 0x0e, 0x27, 0x78, 0x85, 0xc5, 0x8a, 0x0c, 0x94, 0xe2, 0x35, 0xdb, 0x30, 0x39, 0x1c, 0x3d, + 0xc6, 0x4c, 0x2f, 0x41, 0x98, 0xf4, 0x18, 0xaa, 0xc0, 0xdc, 0x3b, 0xc3, 0x67, 0xaf, 0x78, 0x51, + 0x8f, 0x86, 0xe8, 0x16, 0xcc, 0xbf, 0x27, 0xa6, 0x67, 0xb0, 0x57, 0x7b, 0x5c, 0xe7, 0xc6, 0xf2, + 0xd8, 0x12, 0x98, 0x7e, 0x0c, 0x2b, 0x17, 0x7b, 0xe5, 0x5a, 0xf1, 0x3a, 0x44, 0x97, 0x4f, 0x2c, + 0x4d, 0xc8, 0x73, 0xc2, 0x9d, 0x34, 0xa1, 0x54, 0xaf, 0x24, 0x35, 0xdf, 0x6c, 0x9b, 0xae, 0x6d, + 0x5d, 0x62, 0x5e, 0xac, 0xff, 0xcd, 0x98, 0x33, 0x18, 0x4e, 0xf0, 0xc9, 0x68, 0x2f, 0x6b, 0xec, + 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, 0xf5, 0xd9, 0x41, 0x80, 0x85, 0xc3, 0x00, 0x0b, 0x3f, 0x03, + 0x2c, 0x1c, 0x07, 0x18, 0x9c, 0x04, 0x18, 0x9c, 0x06, 0x18, 0x9c, 0x05, 0x18, 0xec, 0x85, 0x18, + 0x7c, 0x09, 0x31, 0xf8, 0x1a, 0x62, 0xf0, 0x3d, 0xc4, 0xe0, 0x47, 0x88, 0xc1, 0x41, 0x88, 0x85, + 0xc3, 0x10, 0x0b, 0xc7, 0x21, 0x06, 0x27, 0x21, 0x16, 0x4e, 0x43, 0x0c, 0xce, 0x42, 0x2c, 0xec, + 0xfd, 0xc2, 0xe0, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x7a, 0xd9, 0xab, 0xbc, 0x07, 0x00, + 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto index 753b839c..6b8a2956 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -70,6 +72,7 @@ message Castaway { map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; + optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; } message Wilson { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go index 94f85584..82c06cb5 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go @@ -17,6 +17,7 @@ package casttype import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +78,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +92,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -105,21 +110,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +156,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +170,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +233,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +250,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +267,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +284,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +301,18 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +320,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +385,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +421,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/mytypes.go b/vendor/github.com/gogo/protobuf/test/casttype/mytypes.go index ce758785..6961260b 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/mytypes.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/Makefile b/vendor/github.com/gogo/protobuf/test/castvalue/Makefile index e9894788..eeaad892 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/Makefile +++ b/vendor/github.com/gogo/protobuf/test/castvalue/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without @@ -29,8 +29,9 @@ regenerate: rm -rf combos go install github.com/gogo/protobuf/protoc-gen-combo + go install github.com/gogo/protobuf/protoc-gen-gogo protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. castvalue.proto - protoc-gen-combo --default=false --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. castvalue.proto + protoc-gen-combo --default=false --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. castvalue.proto cp mytypes.go ./combos/both/ || true cp mytypes.go ./combos/marshaler/ || true cp mytypes.go ./combos/unmarshaler/ || true diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go index b1b3c9bc..94a3b3e5 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -38,11 +36,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -51,7 +51,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -72,224 +72,244 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3462 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0x57, - 0xf5, 0x5f, 0xc7, 0x76, 0x62, 0x1f, 0x3b, 0x8e, 0x33, 0x49, 0x77, 0xbd, 0xd9, 0x76, 0x1f, 0xee, - 0x63, 0xb7, 0xdb, 0x36, 0xdb, 0xff, 0xfe, 0xfb, 0xd8, 0xba, 0xff, 0x7f, 0xab, 0x3c, 0xbc, 0xa9, - 0x57, 0x79, 0x31, 0x89, 0xdb, 0xdd, 0xf2, 0x61, 0x34, 0x19, 0xdf, 0x38, 0xde, 0x1d, 0xcf, 0x18, - 0xcf, 0x78, 0x77, 0xd3, 0x4f, 0x45, 0x2d, 0xa0, 0x82, 0x78, 0x23, 0xd1, 0x37, 0xb4, 0x12, 0xb4, - 0x94, 0x57, 0xcb, 0x4b, 0x88, 0x4f, 0x45, 0xa8, 0xd0, 0x4f, 0x08, 0xf8, 0xc4, 0x07, 0x04, 0x6d, - 0xa9, 0x44, 0x81, 0x02, 0x45, 0x5a, 0x89, 0x4a, 0x15, 0x12, 0xe7, 0xbe, 0xc6, 0x33, 0xb6, 0x93, - 0x71, 0x8a, 0x4a, 0x89, 0x34, 0xca, 0xcc, 0xb9, 0xe7, 0xf7, 0x9b, 0x7b, 0xcf, 0x3d, 0xf7, 0x9c, - 0x73, 0xef, 0x18, 0x7e, 0xf2, 0x3f, 0x70, 0xb0, 0x6a, 0xdb, 0x55, 0x93, 0x1c, 0x6b, 0x34, 0x6d, - 0xd7, 0x5e, 0x6b, 0xad, 0x1f, 0xab, 0x10, 0xc7, 0x68, 0xd6, 0x1a, 0xae, 0xdd, 0x9c, 0x64, 0x32, - 0x65, 0x84, 0x6b, 0x4c, 0x4a, 0x8d, 0xfc, 0x02, 0x8c, 0x9e, 0xac, 0x99, 0x64, 0xd6, 0x53, 0x5c, - 0x21, 0xae, 0x72, 0x02, 0x62, 0xeb, 0x28, 0xcc, 0x45, 0x0e, 0x46, 0x8f, 0xa4, 0x8e, 0x5f, 0x35, - 0xd9, 0x01, 0x9a, 0x0c, 0x22, 0x96, 0xa9, 0x58, 0x65, 0x88, 0xfc, 0xeb, 0x31, 0x18, 0xeb, 0xd1, - 0xaa, 0x28, 0x10, 0xb3, 0xf4, 0x3a, 0x65, 0x8c, 0x1c, 0x49, 0xaa, 0xec, 0x5e, 0xc9, 0xc1, 0x50, - 0x43, 0x37, 0xce, 0xe9, 0x55, 0x92, 0x1b, 0x60, 0x62, 0xf9, 0xa8, 0xec, 0x07, 0xa8, 0x90, 0x06, - 0xb1, 0x2a, 0xc4, 0x32, 0x36, 0x73, 0x51, 0xec, 0x45, 0x52, 0xf5, 0x49, 0x94, 0xeb, 0x60, 0xb4, - 0xd1, 0x5a, 0x33, 0x6b, 0x86, 0xe6, 0x53, 0x03, 0x54, 0x8b, 0xab, 0x59, 0xde, 0x30, 0xdb, 0x56, - 0x3e, 0x0c, 0x23, 0x17, 0x88, 0x7e, 0xce, 0xaf, 0x9a, 0x62, 0xaa, 0x19, 0x2a, 0xf6, 0x29, 0xce, - 0x40, 0xba, 0x4e, 0x1c, 0x07, 0x3b, 0xa0, 0xb9, 0x9b, 0x0d, 0x92, 0x8b, 0xb1, 0xd1, 0x1f, 0xec, - 0x1a, 0x7d, 0xe7, 0xc8, 0x53, 0x02, 0xb5, 0x8a, 0x20, 0x65, 0x0a, 0x92, 0xc4, 0x6a, 0xd5, 0x39, - 0x43, 0x7c, 0x0b, 0xfb, 0x15, 0x51, 0xa3, 0x93, 0x25, 0x41, 0x61, 0x82, 0x62, 0xc8, 0x21, 0xcd, - 0xf3, 0x35, 0x83, 0xe4, 0x06, 0x19, 0xc1, 0xe1, 0x2e, 0x82, 0x15, 0xde, 0xde, 0xc9, 0x21, 0x71, - 0x38, 0x94, 0x24, 0xb9, 0xe8, 0x12, 0xcb, 0xa9, 0xd9, 0x56, 0x6e, 0x88, 0x91, 0x5c, 0xdd, 0x63, - 0x16, 0x89, 0x59, 0xe9, 0xa4, 0x68, 0xe3, 0x94, 0x5b, 0x60, 0xc8, 0x6e, 0xb8, 0x78, 0xe7, 0xe4, - 0x12, 0x38, 0x3f, 0xa9, 0xe3, 0x97, 0xf7, 0x74, 0x84, 0x25, 0xae, 0xa3, 0x4a, 0x65, 0xa5, 0x04, - 0x59, 0xc7, 0x6e, 0x35, 0x0d, 0xa2, 0x19, 0x76, 0x85, 0x68, 0x35, 0x6b, 0xdd, 0xce, 0x25, 0x19, - 0xc1, 0x81, 0xee, 0x81, 0x30, 0xc5, 0x19, 0xd4, 0x2b, 0xa1, 0x9a, 0x9a, 0x71, 0x02, 0xcf, 0xca, - 0x6e, 0x18, 0x74, 0x36, 0x2d, 0x57, 0xbf, 0x98, 0x4b, 0x33, 0x0f, 0x11, 0x4f, 0xf9, 0x7f, 0xc4, - 0x61, 0xa4, 0x1f, 0x17, 0xbb, 0x1d, 0xe2, 0xeb, 0x74, 0x94, 0xe8, 0x60, 0x3b, 0xb0, 0x01, 0xc7, - 0x04, 0x8d, 0x38, 0xf8, 0x2e, 0x8d, 0x38, 0x05, 0x29, 0x8b, 0x38, 0x2e, 0xa9, 0x70, 0x8f, 0x88, - 0xf6, 0xe9, 0x53, 0xc0, 0x41, 0xdd, 0x2e, 0x15, 0x7b, 0x57, 0x2e, 0x75, 0x1a, 0x46, 0xbc, 0x2e, - 0x69, 0x4d, 0xdd, 0xaa, 0x4a, 0xdf, 0x3c, 0x16, 0xd6, 0x93, 0xc9, 0xa2, 0xc4, 0xa9, 0x14, 0xa6, - 0x66, 0x48, 0xe0, 0x59, 0x99, 0x05, 0xb0, 0x2d, 0x62, 0xaf, 0xe3, 0xf2, 0x32, 0x4c, 0xf4, 0x93, - 0xde, 0x56, 0x5a, 0xa2, 0x2a, 0x5d, 0x56, 0xb2, 0xb9, 0xd4, 0x30, 0x95, 0xdb, 0xda, 0xae, 0x36, - 0xb4, 0x85, 0xa7, 0x2c, 0xf0, 0x45, 0xd6, 0xe5, 0x6d, 0x65, 0xc8, 0x34, 0x09, 0xf5, 0x7b, 0x34, - 0x31, 0x1f, 0x59, 0x92, 0x75, 0x62, 0x32, 0x74, 0x64, 0xaa, 0x80, 0xf1, 0x81, 0x0d, 0x37, 0xfd, - 0x8f, 0xca, 0x95, 0xe0, 0x09, 0x34, 0xe6, 0x56, 0xc0, 0xa2, 0x50, 0x5a, 0x0a, 0x17, 0x51, 0x36, - 0x71, 0x02, 0x32, 0x41, 0xf3, 0x28, 0xe3, 0x10, 0x77, 0x5c, 0xbd, 0xe9, 0x32, 0x2f, 0x8c, 0xab, - 0xfc, 0x41, 0xc9, 0x42, 0x14, 0x83, 0x0c, 0x8b, 0x72, 0x71, 0x95, 0xde, 0x4e, 0xdc, 0x0a, 0xc3, - 0x81, 0xd7, 0xf7, 0x0b, 0xcc, 0x3f, 0x3c, 0x08, 0xe3, 0xbd, 0x7c, 0xae, 0xa7, 0xfb, 0xe3, 0xf2, - 0x41, 0x0f, 0x58, 0x23, 0x4d, 0xf4, 0x3b, 0xca, 0x20, 0x9e, 0xd0, 0xa3, 0xe2, 0xa6, 0xbe, 0x46, - 0x4c, 0xf4, 0xa6, 0xc8, 0x91, 0xcc, 0xf1, 0xeb, 0xfa, 0xf2, 0xea, 0xc9, 0x79, 0x0a, 0x51, 0x39, - 0x52, 0xb9, 0x03, 0x62, 0x22, 0xc4, 0x51, 0x86, 0xa3, 0xfd, 0x31, 0x50, 0x5f, 0x54, 0x19, 0x4e, - 0xd9, 0x07, 0x49, 0xfa, 0x9f, 0xdb, 0x76, 0x90, 0xf5, 0x39, 0x41, 0x05, 0xd4, 0xae, 0xca, 0x04, - 0x24, 0x98, 0x9b, 0x55, 0x88, 0x4c, 0x0d, 0xde, 0x33, 0x9d, 0x98, 0x0a, 0x59, 0xd7, 0x5b, 0xa6, - 0xab, 0x9d, 0xd7, 0xcd, 0x16, 0x61, 0x0e, 0x83, 0x13, 0x23, 0x84, 0x77, 0x53, 0x99, 0x72, 0x00, - 0x52, 0xdc, 0x2b, 0x6b, 0x88, 0xb9, 0xc8, 0xa2, 0x4f, 0x5c, 0xe5, 0x8e, 0x5a, 0xa2, 0x12, 0xfa, - 0xfa, 0xb3, 0x0e, 0xae, 0x05, 0x31, 0xb5, 0xec, 0x15, 0x54, 0xc0, 0x5e, 0x7f, 0x6b, 0x67, 0xe0, - 0xbb, 0xa2, 0xf7, 0xf0, 0x3a, 0x7d, 0x31, 0xff, 0x83, 0x01, 0x88, 0xb1, 0xf5, 0x36, 0x02, 0xa9, - 0xd5, 0x33, 0xcb, 0x45, 0x6d, 0x76, 0xa9, 0x3c, 0x3d, 0x5f, 0xcc, 0x46, 0x94, 0x0c, 0x00, 0x13, - 0x9c, 0x9c, 0x5f, 0x9a, 0x5a, 0xcd, 0x0e, 0x78, 0xcf, 0xa5, 0xc5, 0xd5, 0x5b, 0x6e, 0xca, 0x46, - 0x3d, 0x40, 0x99, 0x0b, 0x62, 0x7e, 0x85, 0xff, 0x3d, 0x9e, 0x8d, 0xa3, 0x27, 0xa4, 0x39, 0x41, - 0xe9, 0x74, 0x71, 0x16, 0x35, 0x06, 0x83, 0x12, 0xd4, 0x19, 0x52, 0x86, 0x21, 0xc9, 0x24, 0xd3, - 0x4b, 0x4b, 0xf3, 0xd9, 0x84, 0xc7, 0xb9, 0xb2, 0xaa, 0x96, 0x16, 0xe7, 0xb2, 0x49, 0x8f, 0x73, - 0x4e, 0x5d, 0x2a, 0x2f, 0x67, 0xc1, 0x63, 0x58, 0x28, 0xae, 0xac, 0x4c, 0xcd, 0x15, 0xb3, 0x29, - 0x4f, 0x63, 0xfa, 0xcc, 0x6a, 0x71, 0x25, 0x9b, 0x0e, 0x74, 0x0b, 0x5f, 0x31, 0xec, 0xbd, 0xa2, - 0xb8, 0x58, 0x5e, 0xc8, 0x66, 0x94, 0x51, 0x18, 0xe6, 0xaf, 0x90, 0x9d, 0x18, 0xe9, 0x10, 0x61, - 0x4f, 0xb3, 0xed, 0x8e, 0x70, 0x96, 0xd1, 0x80, 0x00, 0x35, 0x94, 0xfc, 0x0c, 0xc4, 0x99, 0x77, - 0xa1, 0x17, 0x67, 0xe6, 0xa7, 0xa6, 0x8b, 0xf3, 0xda, 0xd2, 0xf2, 0x6a, 0x69, 0x69, 0x71, 0x6a, - 0x1e, 0x6d, 0xe7, 0xc9, 0xd4, 0xe2, 0x07, 0xca, 0x25, 0xb5, 0x38, 0x8b, 0xf6, 0xf3, 0xc9, 0x96, - 0x8b, 0x53, 0xab, 0x28, 0x8b, 0xe6, 0x8f, 0xc2, 0x78, 0xaf, 0x38, 0xd3, 0x6b, 0x65, 0xe4, 0x9f, - 0x8e, 0xc0, 0x58, 0x8f, 0x90, 0xd9, 0x73, 0x15, 0xdd, 0x09, 0x71, 0xee, 0x69, 0x3c, 0x89, 0x5c, - 0xdb, 0x33, 0xf6, 0x32, 0xbf, 0xeb, 0x4a, 0x24, 0x0c, 0xe7, 0x4f, 0xa4, 0xd1, 0x2d, 0x12, 0x29, - 0xa5, 0xe8, 0x72, 0xa7, 0x07, 0x22, 0x90, 0xdb, 0x8a, 0x3b, 0x64, 0xbd, 0x0f, 0x04, 0xd6, 0xfb, - 0xed, 0x9d, 0x1d, 0x38, 0xb4, 0xf5, 0x18, 0xba, 0x7a, 0xf1, 0x4c, 0x04, 0x76, 0xf7, 0xae, 0x37, - 0x7a, 0xf6, 0xe1, 0x0e, 0x18, 0xac, 0x13, 0x77, 0xc3, 0x96, 0x39, 0xf7, 0x9a, 0x1e, 0x91, 0x9c, - 0x36, 0x77, 0xda, 0x4a, 0xa0, 0xfc, 0xa9, 0x20, 0xba, 0x55, 0xd1, 0xc0, 0x7b, 0xd3, 0xd5, 0xd3, - 0x87, 0x06, 0xe0, 0xb2, 0x9e, 0xe4, 0x3d, 0x3b, 0x7a, 0x05, 0x40, 0xcd, 0x6a, 0xb4, 0x5c, 0x9e, - 0x57, 0x79, 0x98, 0x49, 0x32, 0x09, 0x5b, 0xc2, 0x34, 0x84, 0xb4, 0x5c, 0xaf, 0x3d, 0xca, 0xda, - 0x81, 0x8b, 0x98, 0xc2, 0x89, 0x76, 0x47, 0x63, 0xac, 0xa3, 0xfb, 0xb7, 0x18, 0x69, 0x57, 0xca, - 0xba, 0x11, 0xb2, 0x86, 0x59, 0x23, 0x96, 0xab, 0x39, 0x6e, 0x93, 0xe8, 0xf5, 0x9a, 0x55, 0x65, - 0x71, 0x34, 0x51, 0x88, 0xaf, 0xeb, 0xa6, 0x43, 0xd4, 0x11, 0xde, 0xbc, 0x22, 0x5b, 0x29, 0x82, - 0x25, 0x8b, 0xa6, 0x0f, 0x31, 0x18, 0x40, 0xf0, 0x66, 0x0f, 0x91, 0xff, 0xd5, 0x10, 0xa4, 0x7c, - 0xd5, 0x99, 0x72, 0x08, 0xd2, 0x67, 0xf5, 0xf3, 0xba, 0x26, 0x2b, 0x6e, 0x6e, 0x89, 0x14, 0x95, - 0x2d, 0x8b, 0xaa, 0xfb, 0x46, 0x18, 0x67, 0x2a, 0x38, 0x46, 0x7c, 0x91, 0x61, 0xea, 0x8e, 0xc3, - 0x8c, 0x96, 0x60, 0xaa, 0x0a, 0x6d, 0x5b, 0xa2, 0x4d, 0x33, 0xb2, 0x45, 0xb9, 0x19, 0xc6, 0x18, - 0xa2, 0x8e, 0x81, 0xb7, 0xd6, 0x30, 0x89, 0x46, 0xf7, 0x00, 0x0e, 0x8b, 0xa7, 0x5e, 0xcf, 0x46, - 0xa9, 0xc6, 0x82, 0x50, 0xa0, 0x3d, 0x72, 0x94, 0x39, 0xb8, 0x82, 0xc1, 0xaa, 0xc4, 0x22, 0x4d, - 0xdd, 0x25, 0x1a, 0xf9, 0x50, 0x0b, 0x75, 0x35, 0xdd, 0xaa, 0x68, 0x1b, 0xba, 0xb3, 0x91, 0x1b, - 0xf7, 0x13, 0xec, 0xa5, 0xba, 0x73, 0x42, 0xb5, 0xc8, 0x34, 0xa7, 0xac, 0xca, 0x5d, 0xa8, 0xa7, - 0x14, 0x60, 0x37, 0x23, 0x42, 0xa3, 0xe0, 0x98, 0x35, 0x63, 0x83, 0x18, 0xe7, 0xb4, 0x96, 0xbb, - 0x7e, 0x22, 0xb7, 0xcf, 0xcf, 0xc0, 0x3a, 0xb9, 0xc2, 0x74, 0x66, 0xa8, 0x4a, 0x19, 0x35, 0x94, - 0x15, 0x48, 0xd3, 0xf9, 0xa8, 0xd7, 0xee, 0xc3, 0x6e, 0xdb, 0x4d, 0x96, 0x23, 0x32, 0x3d, 0x16, - 0xb7, 0xcf, 0x88, 0x93, 0x4b, 0x02, 0xb0, 0x80, 0xf5, 0x69, 0x21, 0xbe, 0xb2, 0x5c, 0x2c, 0xce, - 0xaa, 0x29, 0xc9, 0x72, 0xd2, 0x6e, 0x52, 0x9f, 0xaa, 0xda, 0x9e, 0x8d, 0x53, 0xdc, 0xa7, 0xaa, - 0xb6, 0xb4, 0x30, 0xda, 0xcb, 0x30, 0xf8, 0xb0, 0x71, 0xef, 0x22, 0x8a, 0x75, 0x27, 0x97, 0x0d, - 0xd8, 0xcb, 0x30, 0xe6, 0xb8, 0x82, 0x70, 0x73, 0x07, 0x97, 0xc4, 0x65, 0x6d, 0x7b, 0xf9, 0x81, - 0xa3, 0x5d, 0xa3, 0xec, 0x84, 0xe2, 0x1b, 0x1b, 0x9b, 0xdd, 0x40, 0x25, 0xf0, 0xc6, 0xc6, 0x66, - 0x27, 0xec, 0x6a, 0xb6, 0x01, 0x6b, 0x12, 0x03, 0x4d, 0x5e, 0xc9, 0xed, 0xf1, 0x6b, 0xfb, 0x1a, - 0x94, 0x63, 0xe8, 0xc8, 0x86, 0x46, 0x2c, 0x7d, 0x0d, 0xe7, 0x5e, 0x6f, 0xe2, 0x8d, 0x93, 0x3b, - 0xe0, 0x57, 0xce, 0x18, 0x46, 0x91, 0xb5, 0x4e, 0xb1, 0x46, 0xe5, 0x28, 0x8c, 0xda, 0x6b, 0x67, - 0x0d, 0xee, 0x5c, 0x1a, 0xf2, 0xac, 0xd7, 0x2e, 0xe6, 0xae, 0x62, 0x66, 0x1a, 0xa1, 0x0d, 0xcc, - 0xb5, 0x96, 0x99, 0x58, 0xb9, 0x16, 0xc9, 0x9d, 0x0d, 0xbd, 0xd9, 0x60, 0x49, 0xda, 0x41, 0xa3, - 0x92, 0xdc, 0xd5, 0x5c, 0x95, 0xcb, 0x17, 0xa5, 0x58, 0x29, 0xc2, 0x01, 0x3a, 0x78, 0x4b, 0xb7, - 0x6c, 0xad, 0xe5, 0x10, 0xad, 0xdd, 0x45, 0x6f, 0x2e, 0xae, 0xa1, 0xdd, 0x52, 0x2f, 0x97, 0x6a, - 0x65, 0x07, 0x83, 0x99, 0x54, 0x92, 0xd3, 0x73, 0x1a, 0xc6, 0x5b, 0x56, 0xcd, 0x42, 0x17, 0xc7, - 0x16, 0x0a, 0xe6, 0x0b, 0x36, 0xf7, 0x87, 0xa1, 0x2d, 0x8a, 0xee, 0xb2, 0x5f, 0x9b, 0x3b, 0x89, - 0x3a, 0xd6, 0xea, 0x16, 0xe6, 0x0b, 0x90, 0xf6, 0xfb, 0x8e, 0x92, 0x04, 0xee, 0x3d, 0x98, 0xdd, - 0x30, 0xa3, 0xce, 0x2c, 0xcd, 0xd2, 0x5c, 0x78, 0x6f, 0x11, 0x13, 0x1b, 0xe6, 0xe4, 0xf9, 0xd2, - 0x6a, 0x51, 0x53, 0xcb, 0x8b, 0xab, 0xa5, 0x85, 0x62, 0x36, 0x7a, 0x34, 0x99, 0x78, 0x63, 0x28, - 0x7b, 0x3f, 0xfe, 0x0d, 0xe4, 0x5f, 0x1a, 0x80, 0x4c, 0xb0, 0x0e, 0x56, 0xfe, 0x0f, 0xf6, 0xc8, - 0x4d, 0xab, 0x43, 0x5c, 0xed, 0x42, 0xad, 0xc9, 0xdc, 0xb9, 0xae, 0xf3, 0x4a, 0xd2, 0x9b, 0x89, - 0x71, 0xa1, 0x85, 0xdb, 0xfb, 0x7b, 0x50, 0xe7, 0x24, 0x53, 0x51, 0xe6, 0xe1, 0x00, 0x9a, 0x0c, - 0x6b, 0x4d, 0xab, 0xa2, 0x37, 0x2b, 0x5a, 0xfb, 0xb8, 0x40, 0xd3, 0x0d, 0xf4, 0x03, 0xc7, 0xe6, - 0x99, 0xc4, 0x63, 0xb9, 0xdc, 0xb2, 0x57, 0x84, 0x72, 0x3b, 0xc4, 0x4e, 0x09, 0xd5, 0x0e, 0xaf, - 0x89, 0x6e, 0xe5, 0x35, 0x58, 0x7b, 0xd5, 0xf5, 0x06, 0xba, 0x8d, 0xdb, 0xdc, 0x64, 0xd5, 0x5b, - 0x42, 0x4d, 0xa0, 0xa0, 0x48, 0x9f, 0xdf, 0xbb, 0x39, 0xf0, 0xdb, 0xf1, 0x37, 0x51, 0x48, 0xfb, - 0x2b, 0x38, 0x5a, 0x10, 0x1b, 0x2c, 0xcc, 0x47, 0x58, 0x14, 0xb8, 0x72, 0xdb, 0x7a, 0x6f, 0x72, - 0x86, 0xc6, 0xff, 0xc2, 0x20, 0xaf, 0xab, 0x54, 0x8e, 0xa4, 0xb9, 0x97, 0xfa, 0x1a, 0xe1, 0xd5, - 0x7a, 0x42, 0x15, 0x4f, 0x18, 0xec, 0x06, 0xcf, 0x3a, 0x8c, 0x7b, 0x90, 0x71, 0x5f, 0xb5, 0x3d, - 0xf7, 0xa9, 0x15, 0x46, 0x9e, 0x3c, 0xb5, 0xa2, 0x2d, 0x2e, 0xa9, 0x0b, 0x53, 0xf3, 0xaa, 0x80, - 0x2b, 0x7b, 0x21, 0x66, 0xea, 0xf7, 0x6d, 0x06, 0x33, 0x05, 0x13, 0xf5, 0x6b, 0x78, 0x64, 0xa0, - 0x47, 0x1e, 0xc1, 0xf8, 0xcc, 0x44, 0xef, 0xa1, 0xeb, 0x1f, 0x83, 0x38, 0xb3, 0x97, 0x02, 0x20, - 0x2c, 0x96, 0xdd, 0xa5, 0x24, 0x20, 0x36, 0xb3, 0xa4, 0x52, 0xf7, 0x47, 0x7f, 0xe7, 0x52, 0x6d, - 0xb9, 0x54, 0x9c, 0xc1, 0x15, 0x90, 0xbf, 0x19, 0x06, 0xb9, 0x11, 0xe8, 0xd2, 0xf0, 0xcc, 0x80, - 0x20, 0xfe, 0x28, 0x38, 0x22, 0xb2, 0xb5, 0xbc, 0x30, 0x5d, 0x54, 0xb3, 0x03, 0xfe, 0xe9, 0xfd, - 0x51, 0x04, 0x52, 0xbe, 0x82, 0x8a, 0xa6, 0x72, 0xdd, 0x34, 0xed, 0x0b, 0x9a, 0x6e, 0xd6, 0x30, - 0x42, 0xf1, 0xf9, 0x01, 0x26, 0x9a, 0xa2, 0x92, 0x7e, 0xed, 0xf7, 0x1f, 0xf1, 0xcd, 0x27, 0x23, - 0x90, 0xed, 0x2c, 0xc6, 0x3a, 0x3a, 0x18, 0x79, 0x5f, 0x3b, 0xf8, 0x78, 0x04, 0x32, 0xc1, 0x0a, - 0xac, 0xa3, 0x7b, 0x87, 0xde, 0xd7, 0xee, 0x3d, 0x16, 0x81, 0xe1, 0x40, 0xdd, 0xf5, 0x5f, 0xd5, - 0xbb, 0x47, 0xa3, 0x30, 0xd6, 0x03, 0x87, 0x01, 0x88, 0x17, 0xa8, 0xbc, 0x66, 0xbe, 0xa1, 0x9f, - 0x77, 0x4d, 0xd2, 0xfc, 0xb7, 0xac, 0x37, 0x5d, 0x51, 0xcf, 0x62, 0xbe, 0xac, 0x55, 0x30, 0xa8, - 0xd6, 0xd6, 0x6b, 0x58, 0xbe, 0xf1, 0x1d, 0x0b, 0xaf, 0x5a, 0x47, 0xda, 0x72, 0xbe, 0x3d, 0xbe, - 0x1e, 0x94, 0x86, 0xed, 0xd4, 0xdc, 0xda, 0x79, 0x7a, 0x3c, 0x27, 0x37, 0xd2, 0xb4, 0x8a, 0x8d, - 0xa9, 0x59, 0xd9, 0x52, 0xb2, 0x5c, 0x4f, 0xdb, 0x22, 0x55, 0xbd, 0x43, 0x9b, 0x86, 0xa1, 0xa8, - 0x9a, 0x95, 0x2d, 0x9e, 0x36, 0x16, 0x9a, 0x15, 0xbb, 0x45, 0x0b, 0x02, 0xae, 0x47, 0xa3, 0x5e, - 0x44, 0x4d, 0x71, 0x99, 0xa7, 0x22, 0x2a, 0xb6, 0xf6, 0x0e, 0x3e, 0xad, 0xa6, 0xb8, 0x8c, 0xab, - 0x1c, 0x86, 0x11, 0xbd, 0x5a, 0x6d, 0x52, 0x72, 0x49, 0xc4, 0xcb, 0xd0, 0x8c, 0x27, 0x66, 0x8a, - 0x13, 0xa7, 0x20, 0x21, 0xed, 0x40, 0x13, 0x0b, 0xb5, 0x04, 0xe6, 0x7c, 0x76, 0x8e, 0x32, 0x40, - 0x37, 0xf5, 0x96, 0x6c, 0xc4, 0x97, 0xd6, 0x1c, 0xad, 0x7d, 0xa0, 0x37, 0x80, 0xed, 0x09, 0x35, - 0x55, 0x73, 0xbc, 0x13, 0x9c, 0xfc, 0x33, 0x98, 0x5e, 0x83, 0x07, 0x92, 0xca, 0x2c, 0x24, 0x4c, - 0x1b, 0xfd, 0x83, 0x22, 0xf8, 0x69, 0xf8, 0x91, 0x90, 0x33, 0xcc, 0xc9, 0x79, 0xa1, 0xaf, 0x7a, - 0xc8, 0x89, 0x9f, 0x47, 0x20, 0x21, 0xc5, 0x98, 0x28, 0x62, 0x0d, 0xdd, 0xdd, 0x60, 0x74, 0xf1, - 0xe9, 0x81, 0x6c, 0x44, 0x65, 0xcf, 0x54, 0x8e, 0xd5, 0x8c, 0xc5, 0x5c, 0x40, 0xc8, 0xe9, 0x33, - 0x9d, 0x57, 0x93, 0xe8, 0x15, 0x56, 0xe0, 0xda, 0xf5, 0x3a, 0xce, 0xa4, 0x23, 0xe7, 0x55, 0xc8, - 0x67, 0x84, 0x98, 0x9e, 0x8b, 0xbb, 0x4d, 0xbd, 0x66, 0x06, 0x74, 0x63, 0x4c, 0x37, 0x2b, 0x1b, - 0x3c, 0xe5, 0x02, 0xec, 0x95, 0xbc, 0x15, 0xe2, 0xea, 0x58, 0x3c, 0x57, 0xda, 0xa0, 0x41, 0x76, - 0xda, 0xb5, 0x47, 0x28, 0xcc, 0x8a, 0x76, 0x89, 0x9d, 0x3e, 0x8d, 0x85, 0xac, 0x5d, 0xef, 0xb4, - 0xc4, 0x74, 0xb6, 0x63, 0xdf, 0xe5, 0xdc, 0x15, 0xb9, 0x17, 0xda, 0x45, 0xc5, 0xd3, 0x03, 0xd1, - 0xb9, 0xe5, 0xe9, 0xe7, 0x06, 0x26, 0xe6, 0x38, 0x6e, 0x59, 0x5a, 0x50, 0x25, 0xeb, 0x26, 0x31, - 0xa8, 0x75, 0xe0, 0xa9, 0x2b, 0xe1, 0x86, 0x6a, 0xcd, 0xdd, 0x68, 0xad, 0x4d, 0xe2, 0x1b, 0x8e, - 0x55, 0xed, 0xaa, 0xdd, 0xfe, 0x9c, 0x41, 0x9f, 0xd8, 0x03, 0xbb, 0x13, 0x9f, 0x34, 0x92, 0x9e, - 0x74, 0x22, 0xf4, 0xfb, 0x47, 0x61, 0x11, 0xc6, 0x84, 0xb2, 0xc6, 0xce, 0x54, 0x79, 0x09, 0xaa, - 0x6c, 0xbb, 0x21, 0xcf, 0xbd, 0xf0, 0x3a, 0x4b, 0x09, 0xea, 0xa8, 0x80, 0xd2, 0x36, 0x5e, 0xa4, - 0x16, 0x54, 0xb8, 0x2c, 0xc0, 0xc7, 0x7d, 0x18, 0xb7, 0xdc, 0xdb, 0x33, 0xbe, 0x24, 0x18, 0xc7, - 0x7c, 0x8c, 0x2b, 0x02, 0x5a, 0x98, 0x81, 0xe1, 0x9d, 0x70, 0xfd, 0x54, 0x70, 0xa5, 0x89, 0x9f, - 0x64, 0x0e, 0x46, 0x18, 0x89, 0xd1, 0x72, 0x5c, 0xbb, 0xce, 0x02, 0xc4, 0xf6, 0x34, 0x3f, 0x7b, - 0x9d, 0x3b, 0x55, 0x86, 0xc2, 0x66, 0x3c, 0x54, 0xe1, 0x6e, 0x18, 0xa7, 0x12, 0xb6, 0x06, 0xfd, - 0x6c, 0xe1, 0x47, 0x08, 0xb9, 0x5f, 0x3e, 0xc0, 0x7d, 0x6f, 0xcc, 0x23, 0xf0, 0xf1, 0xfa, 0x66, - 0xa2, 0x4a, 0x5c, 0x8c, 0x6d, 0xb8, 0xff, 0x33, 0x4d, 0x65, 0xdb, 0x6f, 0x0c, 0xb9, 0x47, 0xde, - 0x0c, 0xce, 0xc4, 0x1c, 0x47, 0x4e, 0x99, 0x66, 0xa1, 0x0c, 0x7b, 0x7a, 0xcc, 0x6c, 0x1f, 0x9c, - 0x8f, 0x0a, 0xce, 0xf1, 0xae, 0xd9, 0xa5, 0xb4, 0xcb, 0x20, 0xe5, 0xde, 0x7c, 0xf4, 0xc1, 0xf9, - 0x98, 0xe0, 0x54, 0x04, 0x56, 0x4e, 0x0b, 0x65, 0x3c, 0x05, 0xa3, 0xb8, 0x53, 0x5f, 0xb3, 0x1d, - 0xb1, 0xef, 0xed, 0x83, 0xee, 0x71, 0x41, 0x37, 0x22, 0x80, 0x6c, 0x17, 0x4c, 0xb9, 0x6e, 0x83, - 0xc4, 0x3a, 0x6e, 0x80, 0xfa, 0xa0, 0x78, 0x42, 0x50, 0x0c, 0x51, 0x7d, 0x0a, 0x9d, 0x82, 0x74, - 0xd5, 0x16, 0x61, 0x38, 0x1c, 0xfe, 0xa4, 0x80, 0xa7, 0x24, 0x46, 0x50, 0x34, 0xec, 0x46, 0xcb, - 0xa4, 0x31, 0x3a, 0x9c, 0xe2, 0x4b, 0x92, 0x42, 0x62, 0x04, 0xc5, 0x0e, 0xcc, 0xfa, 0x65, 0x49, - 0xe1, 0xf8, 0xec, 0x79, 0x27, 0x3d, 0xeb, 0x35, 0x37, 0x6d, 0xab, 0x9f, 0x4e, 0x3c, 0x25, 0x18, - 0x40, 0x40, 0x28, 0xc1, 0xed, 0x90, 0xec, 0x77, 0x22, 0xbe, 0x22, 0xe0, 0x09, 0x22, 0x67, 0x00, - 0xd7, 0x99, 0x0c, 0x32, 0xf4, 0xdb, 0x4a, 0x38, 0xc5, 0x57, 0x05, 0x45, 0xc6, 0x07, 0x13, 0xc3, - 0x70, 0x89, 0xe3, 0xe2, 0x56, 0xbd, 0x0f, 0x92, 0x67, 0xe4, 0x30, 0x04, 0x44, 0x98, 0x72, 0x8d, - 0x58, 0xc6, 0x46, 0x7f, 0x0c, 0xcf, 0x4a, 0x53, 0x4a, 0x0c, 0xa5, 0xc0, 0xc8, 0x53, 0xd7, 0x9b, - 0xb8, 0xb9, 0x36, 0xfb, 0x9a, 0x8e, 0xaf, 0x09, 0x8e, 0xb4, 0x07, 0x12, 0x16, 0x69, 0x59, 0x3b, - 0xa1, 0x79, 0x4e, 0x5a, 0xc4, 0x07, 0x13, 0x4b, 0x0f, 0x77, 0xa6, 0xb4, 0x92, 0xd8, 0x09, 0xdb, - 0xd7, 0xe5, 0xd2, 0xe3, 0xd8, 0x05, 0x3f, 0x23, 0xce, 0xb4, 0x83, 0x5b, 0xf0, 0x7e, 0x68, 0xbe, - 0x21, 0x67, 0x9a, 0x01, 0x28, 0xf8, 0x0c, 0xec, 0xed, 0x19, 0xea, 0xfb, 0x20, 0xfb, 0xa6, 0x20, - 0xdb, 0xdd, 0x23, 0xdc, 0x8b, 0x90, 0xb0, 0x53, 0xca, 0x6f, 0xc9, 0x90, 0x40, 0x3a, 0xb8, 0x96, - 0x69, 0x19, 0xeb, 0xe8, 0xeb, 0x3b, 0xb3, 0xda, 0xb7, 0xa5, 0xd5, 0x38, 0x36, 0x60, 0xb5, 0x55, - 0xd8, 0x2d, 0x18, 0x77, 0x36, 0xaf, 0xcf, 0xcb, 0xc0, 0xca, 0xd1, 0xe5, 0xe0, 0xec, 0x7e, 0x10, - 0x26, 0x3c, 0x73, 0xca, 0x0a, 0xcc, 0xd1, 0xe8, 0xc1, 0x40, 0x38, 0xf3, 0x0b, 0x82, 0x59, 0x46, - 0x7c, 0xaf, 0x84, 0x73, 0x16, 0xf4, 0x06, 0x25, 0x3f, 0x0d, 0x39, 0x49, 0xde, 0xb2, 0xb0, 0xc0, - 0xb7, 0xab, 0x16, 0x4e, 0x63, 0xa5, 0x0f, 0xea, 0xef, 0x74, 0x4c, 0x55, 0xd9, 0x07, 0xa7, 0xcc, - 0x25, 0xc8, 0x7a, 0xf5, 0x86, 0x56, 0xab, 0x37, 0x6c, 0x2c, 0x2d, 0xb7, 0x67, 0xfc, 0xae, 0x9c, - 0x29, 0x0f, 0x57, 0x62, 0xb0, 0x42, 0x11, 0x32, 0xec, 0xb1, 0x5f, 0x97, 0xfc, 0x9e, 0x20, 0x1a, - 0x6e, 0xa3, 0x44, 0xe0, 0xc0, 0x4a, 0x09, 0x6b, 0xde, 0x7e, 0xe2, 0xdf, 0xf7, 0x65, 0xe0, 0x10, - 0x10, 0xee, 0x7d, 0x23, 0x1d, 0x99, 0x58, 0x09, 0xfb, 0xfc, 0x9a, 0xfb, 0xf0, 0x25, 0xb1, 0x66, - 0x83, 0x89, 0xb8, 0x30, 0x4f, 0xcd, 0x13, 0x4c, 0x97, 0xe1, 0x64, 0x0f, 0x5c, 0xf2, 0x2c, 0x14, - 0xc8, 0x96, 0x85, 0x93, 0x30, 0x1c, 0x48, 0x95, 0xe1, 0x54, 0x0f, 0x0a, 0xaa, 0xb4, 0x3f, 0x53, - 0x16, 0x6e, 0x86, 0x18, 0x4d, 0x7b, 0xe1, 0xf0, 0x8f, 0x08, 0x38, 0x53, 0x2f, 0xfc, 0x3f, 0x24, - 0x64, 0xba, 0x0b, 0x87, 0x7e, 0x54, 0x40, 0x3d, 0x08, 0x85, 0xcb, 0x54, 0x17, 0x0e, 0xff, 0x98, - 0x84, 0x4b, 0x08, 0x85, 0xf7, 0x6f, 0xc2, 0x17, 0x3f, 0x11, 0x13, 0xe1, 0x4a, 0xda, 0x8e, 0x7e, - 0xf3, 0xe1, 0x39, 0x2e, 0x1c, 0xfd, 0x90, 0x78, 0xb9, 0x44, 0x14, 0x6e, 0x85, 0x78, 0x9f, 0x06, - 0xff, 0xa4, 0x80, 0x72, 0x7d, 0xcc, 0x20, 0x29, 0x5f, 0x5e, 0x0b, 0x87, 0x7f, 0x4a, 0xc0, 0xfd, - 0x28, 0xda, 0x75, 0x91, 0xd7, 0xc2, 0x09, 0x3e, 0x2d, 0xbb, 0x2e, 0x10, 0xd4, 0x6c, 0x32, 0xa5, - 0x85, 0xa3, 0x3f, 0x23, 0xad, 0x2e, 0x21, 0xb8, 0x9a, 0x92, 0x5e, 0x98, 0x0a, 0xc7, 0x7f, 0x56, - 0xe0, 0xdb, 0x18, 0x6a, 0x01, 0x5f, 0x98, 0x0c, 0xa7, 0xf8, 0x9c, 0xb4, 0x80, 0x0f, 0x45, 0x97, - 0x51, 0x67, 0xea, 0x0b, 0x67, 0xfa, 0xbc, 0x5c, 0x46, 0x1d, 0x99, 0x8f, 0xce, 0x26, 0x8b, 0x16, - 0xe1, 0x14, 0x5f, 0x90, 0xb3, 0xc9, 0xf4, 0x69, 0x37, 0x3a, 0x73, 0x49, 0x38, 0xc7, 0x17, 0x65, - 0x37, 0x3a, 0x52, 0x09, 0x66, 0x26, 0xa5, 0x3b, 0x8f, 0x84, 0xf3, 0x3d, 0x2c, 0xf8, 0x46, 0xbb, - 0xd2, 0x48, 0xe1, 0x1e, 0xd8, 0xdd, 0x3b, 0x87, 0x84, 0xb3, 0x3e, 0x72, 0xa9, 0xa3, 0xea, 0xf7, - 0xa7, 0x10, 0x4c, 0x79, 0xe3, 0xbd, 0xf2, 0x47, 0x38, 0xed, 0xa3, 0x97, 0x82, 0x1b, 0x3b, 0x7f, - 0xfa, 0xc0, 0x0a, 0x0d, 0xda, 0xa1, 0x3b, 0x9c, 0xeb, 0x71, 0xc1, 0xe5, 0x03, 0xd1, 0xa5, 0x21, - 0x22, 0x77, 0x38, 0xfe, 0x09, 0xb9, 0x34, 0x04, 0x02, 0xc1, 0x09, 0xab, 0x65, 0x9a, 0xd4, 0x39, - 0x94, 0xed, 0x7f, 0xd2, 0x90, 0xfb, 0xe3, 0x3b, 0x62, 0x61, 0x48, 0x00, 0xc6, 0xd0, 0x38, 0xa9, - 0xaf, 0xa1, 0x0d, 0x42, 0x90, 0x7f, 0x7a, 0x47, 0x06, 0x04, 0xaa, 0x8d, 0xeb, 0x09, 0xf8, 0xa6, - 0x91, 0x9d, 0x61, 0x87, 0x60, 0xff, 0xfc, 0x8e, 0xf8, 0xcc, 0xda, 0x86, 0xb4, 0x09, 0xf8, 0x47, - 0xdb, 0xed, 0x09, 0xde, 0x0c, 0x12, 0xb0, 0x8d, 0xe6, 0x6d, 0x30, 0x44, 0x7f, 0xd9, 0xe1, 0xea, - 0xd5, 0x30, 0xf4, 0x5f, 0x04, 0x5a, 0xea, 0x53, 0x83, 0xd5, 0xed, 0x26, 0xc1, 0x5b, 0x27, 0x0c, - 0xfb, 0x57, 0x81, 0xf5, 0x00, 0x14, 0x6c, 0xe8, 0x8e, 0xdb, 0xcf, 0xb8, 0xff, 0x26, 0xc1, 0x12, - 0x40, 0x3b, 0x4d, 0xef, 0xcf, 0x91, 0xcd, 0x30, 0xec, 0x5b, 0xb2, 0xd3, 0x42, 0x1f, 0x03, 0x60, - 0x92, 0xde, 0xf2, 0x9f, 0x1e, 0x84, 0x80, 0xff, 0x2e, 0xc0, 0x6d, 0xc4, 0xf4, 0xa1, 0xde, 0x47, - 0x3b, 0x30, 0x67, 0xcf, 0xd9, 0xfc, 0x50, 0x07, 0xfe, 0x19, 0x83, 0x11, 0x0f, 0x20, 0x4f, 0x61, - 0x3c, 0xc1, 0xc4, 0xce, 0xce, 0x6f, 0xf2, 0x3f, 0x8e, 0x42, 0x62, 0x06, 0xc1, 0xfa, 0x05, 0x7d, - 0x53, 0x69, 0xc0, 0x18, 0xbd, 0xc7, 0x35, 0xc8, 0x4e, 0x12, 0x84, 0x47, 0x8b, 0xa3, 0xb7, 0xeb, - 0x27, 0xdb, 0x6f, 0x95, 0x88, 0xc9, 0x1e, 0xea, 0xec, 0x4b, 0xd2, 0x74, 0xf6, 0xe5, 0xdf, 0x1e, - 0xd8, 0xf5, 0xf1, 0xdf, 0x1d, 0x48, 0x2c, 0x6c, 0xde, 0x53, 0x33, 0x1d, 0x7a, 0x38, 0x6b, 0x74, - 0xeb, 0x2a, 0x0f, 0x46, 0x60, 0x5f, 0x0f, 0x8e, 0x45, 0xe1, 0xf7, 0xe2, 0x44, 0xf6, 0xa6, 0x3e, - 0x5f, 0x2d, 0x61, 0xbc, 0x0b, 0xe9, 0xc0, 0xeb, 0xf7, 0x19, 0x5b, 0xeb, 0x4f, 0x9c, 0x81, 0xdc, - 0x56, 0x23, 0xa1, 0xbf, 0x02, 0xc3, 0x89, 0x15, 0xbf, 0x0c, 0xa3, 0xb7, 0xca, 0xe1, 0xf6, 0x4f, - 0x52, 0xe8, 0x2f, 0x0f, 0x46, 0x7d, 0xbd, 0x13, 0x2f, 0xe3, 0xed, 0x85, 0x81, 0x13, 0x91, 0x09, - 0x1d, 0x0e, 0x86, 0xf5, 0xf4, 0xdf, 0x7c, 0x45, 0x7e, 0x3f, 0x0c, 0x72, 0x21, 0xfd, 0x1d, 0x5b, - 0xc9, 0x72, 0x6f, 0xb9, 0x89, 0x51, 0x45, 0xd5, 0x78, 0x8d, 0x3e, 0x4c, 0xcf, 0xbf, 0xfc, 0xea, - 0xfe, 0x5d, 0xbf, 0xc0, 0xeb, 0xd7, 0x78, 0xbd, 0xf2, 0xea, 0xfe, 0xc8, 0x1b, 0x78, 0xbd, 0x85, - 0xd7, 0xdb, 0x78, 0xdd, 0xff, 0xda, 0xfe, 0xc8, 0xb3, 0x78, 0x3d, 0x8f, 0xd7, 0x0f, 0xf1, 0x7a, - 0x11, 0xaf, 0x97, 0x5f, 0x43, 0x7d, 0xbc, 0x5e, 0xc1, 0xfb, 0x37, 0xf0, 0xff, 0x5b, 0xf8, 0xff, - 0x6d, 0xfc, 0x7f, 0xff, 0xef, 0xf7, 0xef, 0xfa, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x6d, - 0x34, 0xdd, 0xea, 0x2c, 0x00, 0x00, + // 3784 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x23, 0xda, 0x4e, 0xa8, 0x8c, 0x2c, 0xc9, 0xf2, 0xaa, 0x89, 0x07, 0x04, 0x21, 0x06, 0x2a, 0x7f, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0xbf, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, + 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, + 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xd1, 0x74, + 0xa6, 0x73, 0xff, 0x16, 0xbb, 0x00, 0xc8, 0x05, 0xd3, 0x71, 0xf2, 0x44, 0xdc, 0x73, 0xcf, 0xf7, + 0xed, 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xd9, 0xbb, 0x84, 0xef, 0x5d, 0x86, 0xc5, 0xb6, 0xe3, 0xb4, + 0x2d, 0x7c, 0xa1, 0xeb, 0x3a, 0xbe, 0xb3, 0xd7, 0x6b, 0x5d, 0x68, 0x62, 0xcf, 0x70, 0xcd, 0xae, + 0xef, 0xb8, 0x2b, 0x54, 0xa6, 0xcc, 0x30, 0x8d, 0x15, 0xa1, 0xb1, 0xb4, 0x09, 0xb3, 0xd7, 0x4d, + 0x0b, 0xaf, 0x05, 0x8a, 0x0d, 0xec, 0x2b, 0x57, 0x21, 0xd5, 0x32, 0x2d, 0x5c, 0x94, 0x16, 0x93, + 0xcb, 0xb9, 0x8b, 0x8f, 0xaf, 0x0c, 0x80, 0x56, 0xa2, 0x88, 0x3a, 0x11, 0x6b, 0x14, 0xb1, 0xf4, + 0x56, 0x0a, 0xe6, 0x46, 0xcc, 0x2a, 0x0a, 0xa4, 0x6c, 0xd4, 0x21, 0x8c, 0xd2, 0x72, 0x56, 0xa3, + 0xbf, 0x95, 0x22, 0x4c, 0x75, 0x91, 0x71, 0x07, 0xb5, 0x71, 0x31, 0x41, 0xc5, 0x62, 0xa8, 0x94, + 0x00, 0x9a, 0xb8, 0x8b, 0xed, 0x26, 0xb6, 0x8d, 0x83, 0x62, 0x72, 0x31, 0xb9, 0x9c, 0xd5, 0x42, + 0x12, 0xe5, 0x69, 0x98, 0xed, 0xf6, 0xf6, 0x2c, 0xd3, 0xd0, 0x43, 0x6a, 0xb0, 0x98, 0x5c, 0x4e, + 0x6b, 0x32, 0x9b, 0x58, 0xeb, 0x2b, 0x9f, 0x87, 0x99, 0x7b, 0x18, 0xdd, 0x09, 0xab, 0xe6, 0xa8, + 0x6a, 0x81, 0x88, 0x43, 0x8a, 0x15, 0xc8, 0x77, 0xb0, 0xe7, 0xa1, 0x36, 0xd6, 0xfd, 0x83, 0x2e, + 0x2e, 0xa6, 0xe8, 0xea, 0x17, 0x87, 0x56, 0x3f, 0xb8, 0xf2, 0x1c, 0x47, 0xed, 0x1c, 0x74, 0xb1, + 0x52, 0x86, 0x2c, 0xb6, 0x7b, 0x1d, 0xc6, 0x90, 0x3e, 0xc2, 0x7f, 0x55, 0xbb, 0xd7, 0x19, 0x64, + 0xc9, 0x10, 0x18, 0xa7, 0x98, 0xf2, 0xb0, 0x7b, 0xd7, 0x34, 0x70, 0x71, 0x92, 0x12, 0x9c, 0x1f, + 0x22, 0x68, 0xb0, 0xf9, 0x41, 0x0e, 0x81, 0x53, 0x2a, 0x90, 0xc5, 0x2f, 0xfa, 0xd8, 0xf6, 0x4c, + 0xc7, 0x2e, 0x4e, 0x51, 0x92, 0x27, 0x46, 0xec, 0x22, 0xb6, 0x9a, 0x83, 0x14, 0x7d, 0x9c, 0x72, + 0x05, 0xa6, 0x9c, 0xae, 0x6f, 0x3a, 0xb6, 0x57, 0xcc, 0x2c, 0x4a, 0xcb, 0xb9, 0x8b, 0x1f, 0x18, + 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x13, 0xca, 0x4a, 0x0d, 0x64, 0xcf, 0xe9, 0xb9, 0x06, 0xd6, 0x0d, + 0xa7, 0x89, 0x75, 0xd3, 0x6e, 0x39, 0xc5, 0x2c, 0x25, 0x38, 0x3b, 0xbc, 0x10, 0xaa, 0x58, 0x71, + 0x9a, 0xb8, 0x66, 0xb7, 0x1c, 0xad, 0xe0, 0x45, 0xc6, 0xca, 0x29, 0x98, 0xf4, 0x0e, 0x6c, 0x1f, + 0xbd, 0x58, 0xcc, 0xd3, 0x08, 0xe1, 0xa3, 0xa5, 0xff, 0x49, 0xc3, 0xcc, 0x38, 0x21, 0x76, 0x0d, + 0xd2, 0x2d, 0xb2, 0xca, 0x62, 0xe2, 0x24, 0x3e, 0x60, 0x98, 0xa8, 0x13, 0x27, 0x7f, 0x48, 0x27, + 0x96, 0x21, 0x67, 0x63, 0xcf, 0xc7, 0x4d, 0x16, 0x11, 0xc9, 0x31, 0x63, 0x0a, 0x18, 0x68, 0x38, + 0xa4, 0x52, 0x3f, 0x54, 0x48, 0xdd, 0x84, 0x99, 0xc0, 0x24, 0xdd, 0x45, 0x76, 0x5b, 0xc4, 0xe6, + 0x85, 0x38, 0x4b, 0x56, 0xaa, 0x02, 0xa7, 0x11, 0x98, 0x56, 0xc0, 0x91, 0xb1, 0xb2, 0x06, 0xe0, + 0xd8, 0xd8, 0x69, 0xe9, 0x4d, 0x6c, 0x58, 0xc5, 0xcc, 0x11, 0x5e, 0xda, 0x26, 0x2a, 0x43, 0x5e, + 0x72, 0x98, 0xd4, 0xb0, 0x94, 0xe7, 0xfa, 0xa1, 0x36, 0x75, 0x44, 0xa4, 0x6c, 0xb2, 0x43, 0x36, + 0x14, 0x6d, 0xbb, 0x50, 0x70, 0x31, 0x89, 0x7b, 0xdc, 0xe4, 0x2b, 0xcb, 0x52, 0x23, 0x56, 0x62, + 0x57, 0xa6, 0x71, 0x18, 0x5b, 0xd8, 0xb4, 0x1b, 0x1e, 0x2a, 0x1f, 0x84, 0x40, 0xa0, 0xd3, 0xb0, + 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0x85, 0x3a, 0x78, 0xe1, 0x2a, 0x14, 0xa2, 0xee, 0x51, 0xe6, + 0x21, 0xed, 0xf9, 0xc8, 0xf5, 0x69, 0x14, 0xa6, 0x35, 0x36, 0x50, 0x64, 0x48, 0x62, 0xbb, 0x49, + 0xb3, 0x5c, 0x5a, 0x23, 0x3f, 0x17, 0x9e, 0x85, 0xe9, 0xc8, 0xe3, 0xc7, 0x05, 0x2e, 0x7d, 0x7e, + 0x12, 0xe6, 0x47, 0xc5, 0xdc, 0xc8, 0xf0, 0x3f, 0x05, 0x93, 0x76, 0xaf, 0xb3, 0x87, 0xdd, 0x62, + 0x92, 0x32, 0xf0, 0x91, 0x52, 0x86, 0xb4, 0x85, 0xf6, 0xb0, 0x55, 0x4c, 0x2d, 0x4a, 0xcb, 0x85, + 0x8b, 0x4f, 0x8f, 0x15, 0xd5, 0x2b, 0x1b, 0x04, 0xa2, 0x31, 0xa4, 0xf2, 0x71, 0x48, 0xf1, 0x14, + 0x47, 0x18, 0x9e, 0x1a, 0x8f, 0x81, 0xc4, 0xa2, 0x46, 0x71, 0xca, 0xa3, 0x90, 0x25, 0x7f, 0x99, + 0x6f, 0x27, 0xa9, 0xcd, 0x19, 0x22, 0x20, 0x7e, 0x55, 0x16, 0x20, 0x43, 0xc3, 0xac, 0x89, 0x45, + 0x69, 0x08, 0xc6, 0x64, 0x63, 0x9a, 0xb8, 0x85, 0x7a, 0x96, 0xaf, 0xdf, 0x45, 0x56, 0x0f, 0xd3, + 0x80, 0xc9, 0x6a, 0x79, 0x2e, 0xfc, 0x14, 0x91, 0x29, 0x67, 0x21, 0xc7, 0xa2, 0xd2, 0xb4, 0x9b, + 0xf8, 0x45, 0x9a, 0x7d, 0xd2, 0x1a, 0x0b, 0xd4, 0x1a, 0x91, 0x90, 0xc7, 0xdf, 0xf6, 0x1c, 0x5b, + 0x6c, 0x2d, 0x7d, 0x04, 0x11, 0xd0, 0xc7, 0x3f, 0x3b, 0x98, 0xf8, 0x1e, 0x1b, 0xbd, 0xbc, 0xc1, + 0x58, 0x5c, 0xfa, 0x46, 0x02, 0x52, 0xf4, 0xbc, 0xcd, 0x40, 0x6e, 0xe7, 0x56, 0xbd, 0xaa, 0xaf, + 0x6d, 0xef, 0xae, 0x6e, 0x54, 0x65, 0x49, 0x29, 0x00, 0x50, 0xc1, 0xf5, 0x8d, 0xed, 0xf2, 0x8e, + 0x9c, 0x08, 0xc6, 0xb5, 0xad, 0x9d, 0x2b, 0x97, 0xe4, 0x64, 0x00, 0xd8, 0x65, 0x82, 0x54, 0x58, + 0xe1, 0x99, 0x8b, 0x72, 0x5a, 0x91, 0x21, 0xcf, 0x08, 0x6a, 0x37, 0xab, 0x6b, 0x57, 0x2e, 0xc9, + 0x93, 0x51, 0xc9, 0x33, 0x17, 0xe5, 0x29, 0x65, 0x1a, 0xb2, 0x54, 0xb2, 0xba, 0xbd, 0xbd, 0x21, + 0x67, 0x02, 0xce, 0xc6, 0x8e, 0x56, 0xdb, 0x5a, 0x97, 0xb3, 0x01, 0xe7, 0xba, 0xb6, 0xbd, 0x5b, + 0x97, 0x21, 0x60, 0xd8, 0xac, 0x36, 0x1a, 0xe5, 0xf5, 0xaa, 0x9c, 0x0b, 0x34, 0x56, 0x6f, 0xed, + 0x54, 0x1b, 0x72, 0x3e, 0x62, 0xd6, 0x33, 0x17, 0xe5, 0xe9, 0xe0, 0x11, 0xd5, 0xad, 0xdd, 0x4d, + 0xb9, 0xa0, 0xcc, 0xc2, 0x34, 0x7b, 0x84, 0x30, 0x62, 0x66, 0x40, 0x74, 0xe5, 0x92, 0x2c, 0xf7, + 0x0d, 0x61, 0x2c, 0xb3, 0x11, 0xc1, 0x95, 0x4b, 0xb2, 0xb2, 0x54, 0x81, 0x34, 0x8d, 0x2e, 0x45, + 0x81, 0xc2, 0x46, 0x79, 0xb5, 0xba, 0xa1, 0x6f, 0xd7, 0x77, 0x6a, 0xdb, 0x5b, 0xe5, 0x0d, 0x59, + 0xea, 0xcb, 0xb4, 0xea, 0x27, 0x77, 0x6b, 0x5a, 0x75, 0x4d, 0x4e, 0x84, 0x65, 0xf5, 0x6a, 0x79, + 0xa7, 0xba, 0x26, 0x27, 0x97, 0x0c, 0x98, 0x1f, 0x95, 0x67, 0x46, 0x9e, 0x8c, 0xd0, 0x16, 0x27, + 0x8e, 0xd8, 0x62, 0xca, 0x35, 0xb4, 0xc5, 0x5f, 0x92, 0x60, 0x6e, 0x44, 0xae, 0x1d, 0xf9, 0x90, + 0xe7, 0x21, 0xcd, 0x42, 0x94, 0x55, 0x9f, 0x27, 0x47, 0x26, 0x6d, 0x1a, 0xb0, 0x43, 0x15, 0x88, + 0xe2, 0xc2, 0x15, 0x38, 0x79, 0x44, 0x05, 0x26, 0x14, 0x43, 0x46, 0xbe, 0x2c, 0x41, 0xf1, 0x28, + 0xee, 0x98, 0x44, 0x91, 0x88, 0x24, 0x8a, 0x6b, 0x83, 0x06, 0x9c, 0x3b, 0x7a, 0x0d, 0x43, 0x56, + 0xbc, 0x2e, 0xc1, 0xa9, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x0e, 0x93, 0x1d, 0xec, 0xef, 0x3b, + 0xa2, 0x58, 0x7f, 0x68, 0x44, 0x09, 0x20, 0xd3, 0x83, 0xbe, 0xe2, 0xa8, 0x70, 0x0d, 0x49, 0x1e, + 0xd5, 0x6d, 0x30, 0x6b, 0x86, 0x2c, 0xfd, 0x5c, 0x02, 0x1e, 0x19, 0x49, 0x3e, 0xd2, 0xd0, 0xc7, + 0x00, 0x4c, 0xbb, 0xdb, 0xf3, 0x59, 0x41, 0x66, 0xf9, 0x29, 0x4b, 0x25, 0xf4, 0xec, 0x93, 0xdc, + 0xd3, 0xf3, 0x83, 0xf9, 0x24, 0x9d, 0x07, 0x26, 0xa2, 0x0a, 0x57, 0xfb, 0x86, 0xa6, 0xa8, 0xa1, + 0xa5, 0x23, 0x56, 0x3a, 0x54, 0xeb, 0x3e, 0x0a, 0xb2, 0x61, 0x99, 0xd8, 0xf6, 0x75, 0xcf, 0x77, + 0x31, 0xea, 0x98, 0x76, 0x9b, 0x26, 0xe0, 0x8c, 0x9a, 0x6e, 0x21, 0xcb, 0xc3, 0xda, 0x0c, 0x9b, + 0x6e, 0x88, 0x59, 0x82, 0xa0, 0x55, 0xc6, 0x0d, 0x21, 0x26, 0x23, 0x08, 0x36, 0x1d, 0x20, 0x96, + 0xbe, 0x3a, 0x05, 0xb9, 0x50, 0x5b, 0xa7, 0x9c, 0x83, 0xfc, 0x6d, 0x74, 0x17, 0xe9, 0xa2, 0x55, + 0x67, 0x9e, 0xc8, 0x11, 0x59, 0x9d, 0xb7, 0xeb, 0x1f, 0x85, 0x79, 0xaa, 0xe2, 0xf4, 0x7c, 0xec, + 0xea, 0x86, 0x85, 0x3c, 0x8f, 0x3a, 0x2d, 0x43, 0x55, 0x15, 0x32, 0xb7, 0x4d, 0xa6, 0x2a, 0x62, + 0x46, 0xb9, 0x0c, 0x73, 0x14, 0xd1, 0xe9, 0x59, 0xbe, 0xd9, 0xb5, 0xb0, 0x4e, 0x5e, 0x1e, 0x3c, + 0x9a, 0x88, 0x03, 0xcb, 0x66, 0x89, 0xc6, 0x26, 0x57, 0x20, 0x16, 0x79, 0xca, 0x1a, 0x3c, 0x46, + 0x61, 0x6d, 0x6c, 0x63, 0x17, 0xf9, 0x58, 0xc7, 0x9f, 0xe9, 0x21, 0xcb, 0xd3, 0x91, 0xdd, 0xd4, + 0xf7, 0x91, 0xb7, 0x5f, 0x9c, 0x27, 0x04, 0xab, 0x89, 0xa2, 0xa4, 0x9d, 0x21, 0x8a, 0xeb, 0x5c, + 0xaf, 0x4a, 0xd5, 0xca, 0x76, 0xf3, 0x13, 0xc8, 0xdb, 0x57, 0x54, 0x38, 0x45, 0x59, 0x3c, 0xdf, + 0x35, 0xed, 0xb6, 0x6e, 0xec, 0x63, 0xe3, 0x8e, 0xde, 0xf3, 0x5b, 0x57, 0x8b, 0x8f, 0x86, 0x9f, + 0x4f, 0x2d, 0x6c, 0x50, 0x9d, 0x0a, 0x51, 0xd9, 0xf5, 0x5b, 0x57, 0x95, 0x06, 0xe4, 0xc9, 0x66, + 0x74, 0xcc, 0x97, 0xb0, 0xde, 0x72, 0x5c, 0x5a, 0x59, 0x0a, 0x23, 0x4e, 0x76, 0xc8, 0x83, 0x2b, + 0xdb, 0x1c, 0xb0, 0xe9, 0x34, 0xb1, 0x9a, 0x6e, 0xd4, 0xab, 0xd5, 0x35, 0x2d, 0x27, 0x58, 0xae, + 0x3b, 0x2e, 0x09, 0xa8, 0xb6, 0x13, 0x38, 0x38, 0xc7, 0x02, 0xaa, 0xed, 0x08, 0xf7, 0x5e, 0x86, + 0x39, 0xc3, 0x60, 0x6b, 0x36, 0x0d, 0x9d, 0xb7, 0xf8, 0x5e, 0x51, 0x8e, 0x38, 0xcb, 0x30, 0xd6, + 0x99, 0x02, 0x8f, 0x71, 0x4f, 0x79, 0x0e, 0x1e, 0xe9, 0x3b, 0x2b, 0x0c, 0x9c, 0x1d, 0x5a, 0xe5, + 0x20, 0xf4, 0x32, 0xcc, 0x75, 0x0f, 0x86, 0x81, 0x4a, 0xe4, 0x89, 0xdd, 0x83, 0x41, 0xd8, 0x13, + 0xf4, 0xb5, 0xcd, 0xc5, 0x06, 0xf2, 0x71, 0xb3, 0x78, 0x3a, 0xac, 0x1d, 0x9a, 0x50, 0x2e, 0x80, + 0x6c, 0x18, 0x3a, 0xb6, 0xd1, 0x9e, 0x85, 0x75, 0xe4, 0x62, 0x1b, 0x79, 0xc5, 0xb3, 0x61, 0xe5, + 0x82, 0x61, 0x54, 0xe9, 0x6c, 0x99, 0x4e, 0x2a, 0x4f, 0xc1, 0xac, 0xb3, 0x77, 0xdb, 0x60, 0x91, + 0xa5, 0x77, 0x5d, 0xdc, 0x32, 0x5f, 0x2c, 0x3e, 0x4e, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, + 0xa9, 0x58, 0x79, 0x12, 0x64, 0xc3, 0xdb, 0x47, 0x6e, 0x97, 0x96, 0x76, 0xaf, 0x8b, 0x0c, 0x5c, + 0x7c, 0x82, 0xa9, 0x32, 0xf9, 0x96, 0x10, 0x93, 0xc8, 0xf6, 0xee, 0x99, 0x2d, 0x5f, 0x30, 0x9e, + 0x67, 0x91, 0x4d, 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x6c, 0xd3, 0xf6, 0xb1, 0xdb, 0x75, 0x31, + 0x69, 0xe2, 0xd9, 0x49, 0x2c, 0xfe, 0xf3, 0xd4, 0x11, 0x6d, 0xf8, 0x6e, 0x58, 0x9b, 0x05, 0x80, + 0x36, 0xd7, 0x1b, 0x16, 0x2e, 0xa9, 0x90, 0x0f, 0xc7, 0x85, 0x92, 0x05, 0x16, 0x19, 0xb2, 0x44, + 0x6a, 0x6c, 0x65, 0x7b, 0x8d, 0x54, 0xc7, 0x4f, 0x57, 0xe5, 0x04, 0xa9, 0xd2, 0x1b, 0xb5, 0x9d, + 0xaa, 0xae, 0xed, 0x6e, 0xed, 0xd4, 0x36, 0xab, 0x72, 0xf2, 0xa9, 0x6c, 0xe6, 0xed, 0x29, 0xf9, + 0xfe, 0xfd, 0xfb, 0xf7, 0x13, 0x4b, 0xdf, 0x4e, 0x40, 0x21, 0xda, 0x19, 0x2b, 0x3f, 0x01, 0xa7, + 0xc5, 0x6b, 0xac, 0x87, 0x7d, 0xfd, 0x9e, 0xe9, 0xd2, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0x06, 0x5e, + 0x9e, 0xe7, 0x5a, 0x0d, 0xec, 0xbf, 0x60, 0xba, 0x24, 0x10, 0x3b, 0xc8, 0x57, 0x36, 0xe0, 0xac, + 0xed, 0xe8, 0x9e, 0x8f, 0xec, 0x26, 0x72, 0x9b, 0x7a, 0xff, 0x02, 0x41, 0x47, 0x86, 0x81, 0x3d, + 0xcf, 0x61, 0x25, 0x22, 0x60, 0xf9, 0x80, 0xed, 0x34, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb9, 0xea, + 0x40, 0x44, 0x24, 0x8f, 0x8a, 0x88, 0x47, 0x21, 0xdb, 0x41, 0x5d, 0x1d, 0xdb, 0xbe, 0x7b, 0x40, + 0xfb, 0xb9, 0x8c, 0x96, 0xe9, 0xa0, 0x6e, 0x95, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfb, 0xf1, 0x1f, + 0x92, 0x90, 0x0f, 0xf7, 0x74, 0xa4, 0x45, 0x36, 0x68, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xe0, 0xb1, + 0x1d, 0xe0, 0x4a, 0x85, 0x24, 0x76, 0x75, 0x92, 0x75, 0x5a, 0x1a, 0x43, 0x92, 0xa2, 0x4a, 0xce, + 0x34, 0x66, 0xfd, 0x7b, 0x46, 0xe3, 0x23, 0x65, 0x1d, 0x26, 0x6f, 0x7b, 0x94, 0x7b, 0x92, 0x72, + 0x3f, 0x7e, 0x3c, 0xf7, 0x8d, 0x06, 0x25, 0xcf, 0xde, 0x68, 0xe8, 0x5b, 0xdb, 0xda, 0x66, 0x79, + 0x43, 0xe3, 0x70, 0xe5, 0x0c, 0xa4, 0x2c, 0xf4, 0xd2, 0x41, 0xb4, 0x04, 0x50, 0xd1, 0xb8, 0x8e, + 0x3f, 0x03, 0xa9, 0x7b, 0x18, 0xdd, 0x89, 0x26, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0xff, 0x02, 0xa4, + 0xa9, 0xbf, 0x14, 0x00, 0xee, 0x31, 0x79, 0x42, 0xc9, 0x40, 0xaa, 0xb2, 0xad, 0x91, 0xf0, 0x97, + 0x21, 0xcf, 0xa4, 0x7a, 0xbd, 0x56, 0xad, 0x54, 0xe5, 0xc4, 0xd2, 0x65, 0x98, 0x64, 0x4e, 0x20, + 0x47, 0x23, 0x70, 0x83, 0x3c, 0xc1, 0x87, 0x9c, 0x43, 0x12, 0xb3, 0xbb, 0x9b, 0xab, 0x55, 0x4d, + 0x4e, 0x84, 0xb7, 0xd7, 0x83, 0x7c, 0xb8, 0x9d, 0xfb, 0xd1, 0xc4, 0xd4, 0x5f, 0x49, 0x90, 0x0b, + 0xb5, 0x67, 0xa4, 0x31, 0x40, 0x96, 0xe5, 0xdc, 0xd3, 0x91, 0x65, 0x22, 0x8f, 0x07, 0x05, 0x50, + 0x51, 0x99, 0x48, 0xc6, 0xdd, 0xb4, 0x1f, 0x89, 0xf1, 0xaf, 0x49, 0x20, 0x0f, 0xb6, 0x76, 0x03, + 0x06, 0x4a, 0x3f, 0x56, 0x03, 0x5f, 0x95, 0xa0, 0x10, 0xed, 0xe7, 0x06, 0xcc, 0x3b, 0xf7, 0x63, + 0x35, 0xef, 0xcd, 0x04, 0x4c, 0x47, 0xba, 0xb8, 0x71, 0xad, 0xfb, 0x0c, 0xcc, 0x9a, 0x4d, 0xdc, + 0xe9, 0x3a, 0x3e, 0xb6, 0x8d, 0x03, 0xdd, 0xc2, 0x77, 0xb1, 0x55, 0x5c, 0xa2, 0x89, 0xe2, 0xc2, + 0xf1, 0x7d, 0xe2, 0x4a, 0xad, 0x8f, 0xdb, 0x20, 0x30, 0x75, 0xae, 0xb6, 0x56, 0xdd, 0xac, 0x6f, + 0xef, 0x54, 0xb7, 0x2a, 0xb7, 0xf4, 0xdd, 0xad, 0x9f, 0xdc, 0xda, 0x7e, 0x61, 0x4b, 0x93, 0xcd, + 0x01, 0xb5, 0xf7, 0xf1, 0xa8, 0xd7, 0x41, 0x1e, 0x34, 0x4a, 0x39, 0x0d, 0xa3, 0xcc, 0x92, 0x27, + 0x94, 0x39, 0x98, 0xd9, 0xda, 0xd6, 0x1b, 0xb5, 0xb5, 0xaa, 0x5e, 0xbd, 0x7e, 0xbd, 0x5a, 0xd9, + 0x69, 0xb0, 0x17, 0xe7, 0x40, 0x7b, 0x27, 0x7a, 0xa8, 0x5f, 0x49, 0xc2, 0xdc, 0x08, 0x4b, 0x94, + 0x32, 0xef, 0xd9, 0xd9, 0x6b, 0xc4, 0x47, 0xc6, 0xb1, 0x7e, 0x85, 0x74, 0x05, 0x75, 0xe4, 0xfa, + 0xbc, 0xc5, 0x7f, 0x12, 0x88, 0x97, 0x6c, 0xdf, 0x6c, 0x99, 0xd8, 0xe5, 0xf7, 0x0c, 0xac, 0x91, + 0x9f, 0xe9, 0xcb, 0xd9, 0x55, 0xc3, 0x87, 0x41, 0xe9, 0x3a, 0x9e, 0xe9, 0x9b, 0x77, 0xb1, 0x6e, + 0xda, 0xe2, 0x52, 0x82, 0x34, 0xf6, 0x29, 0x4d, 0x16, 0x33, 0x35, 0xdb, 0x0f, 0xb4, 0x6d, 0xdc, + 0x46, 0x03, 0xda, 0x24, 0x81, 0x27, 0x35, 0x59, 0xcc, 0x04, 0xda, 0xe7, 0x20, 0xdf, 0x74, 0x7a, + 0xa4, 0x4d, 0x62, 0x7a, 0xa4, 0x5e, 0x48, 0x5a, 0x8e, 0xc9, 0x02, 0x15, 0xde, 0xc7, 0xf6, 0x6f, + 0x43, 0xf2, 0x5a, 0x8e, 0xc9, 0x98, 0xca, 0x79, 0x98, 0x41, 0xed, 0xb6, 0x4b, 0xc8, 0x05, 0x11, + 0xeb, 0xcc, 0x0b, 0x81, 0x98, 0x2a, 0x2e, 0xdc, 0x80, 0x8c, 0xf0, 0x03, 0x29, 0xc9, 0xc4, 0x13, + 0x7a, 0x97, 0xdd, 0x49, 0x25, 0x96, 0xb3, 0x5a, 0xc6, 0x16, 0x93, 0xe7, 0x20, 0x6f, 0x7a, 0x7a, + 0xff, 0x72, 0x34, 0xb1, 0x98, 0x58, 0xce, 0x68, 0x39, 0xd3, 0x0b, 0x6e, 0xc3, 0x96, 0x5e, 0x4f, + 0x40, 0x21, 0x7a, 0xb9, 0xab, 0xac, 0x41, 0xc6, 0x72, 0x0c, 0x44, 0x43, 0x8b, 0x7d, 0x59, 0x58, + 0x8e, 0xb9, 0x0f, 0x5e, 0xd9, 0xe0, 0xfa, 0x5a, 0x80, 0x5c, 0xf8, 0x3b, 0x09, 0x32, 0x42, 0xac, + 0x9c, 0x82, 0x54, 0x17, 0xf9, 0xfb, 0x94, 0x2e, 0xbd, 0x9a, 0x90, 0x25, 0x8d, 0x8e, 0x89, 0xdc, + 0xeb, 0x22, 0x9b, 0x86, 0x00, 0x97, 0x93, 0x31, 0xd9, 0x57, 0x0b, 0xa3, 0x26, 0x6d, 0xfb, 0x9d, + 0x4e, 0x07, 0xdb, 0xbe, 0x27, 0xf6, 0x95, 0xcb, 0x2b, 0x5c, 0xac, 0x3c, 0x0d, 0xb3, 0xbe, 0x8b, + 0x4c, 0x2b, 0xa2, 0x9b, 0xa2, 0xba, 0xb2, 0x98, 0x08, 0x94, 0x55, 0x38, 0x23, 0x78, 0x9b, 0xd8, + 0x47, 0xc6, 0x3e, 0x6e, 0xf6, 0x41, 0x93, 0xf4, 0xe6, 0xf0, 0x34, 0x57, 0x58, 0xe3, 0xf3, 0x02, + 0xbb, 0xf4, 0x5d, 0x09, 0x66, 0xc5, 0x8b, 0x4a, 0x33, 0x70, 0xd6, 0x26, 0x00, 0xb2, 0x6d, 0xc7, + 0x0f, 0xbb, 0x6b, 0x38, 0x94, 0x87, 0x70, 0x2b, 0xe5, 0x00, 0xa4, 0x85, 0x08, 0x16, 0x3a, 0x00, + 0xfd, 0x99, 0x23, 0xdd, 0x76, 0x16, 0x72, 0xfc, 0xe6, 0x9e, 0x7e, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, + 0x44, 0xe4, 0x8d, 0x46, 0x99, 0x87, 0xf4, 0x1e, 0x6e, 0x9b, 0x36, 0xbf, 0x4f, 0x64, 0x03, 0x71, + 0x4b, 0x99, 0x0a, 0x6e, 0x29, 0x57, 0x6f, 0xc2, 0x9c, 0xe1, 0x74, 0x06, 0xcd, 0x5d, 0x95, 0x07, + 0x5e, 0xaf, 0xbd, 0x4f, 0x48, 0x9f, 0x86, 0x7e, 0x8b, 0xf9, 0xa5, 0x44, 0x72, 0xbd, 0xbe, 0xfa, + 0x95, 0xc4, 0xc2, 0x3a, 0xc3, 0xd5, 0xc5, 0x32, 0x35, 0xdc, 0xb2, 0xb0, 0x41, 0x4c, 0x87, 0xef, + 0x7f, 0x08, 0x3e, 0xd2, 0x36, 0xfd, 0xfd, 0xde, 0xde, 0x8a, 0xe1, 0x74, 0x2e, 0xb4, 0x9d, 0xb6, + 0xd3, 0xff, 0xdc, 0x45, 0x46, 0x74, 0x40, 0x7f, 0xf1, 0x4f, 0x5e, 0xd9, 0x40, 0xba, 0x10, 0xfb, + 0x7d, 0x4c, 0xdd, 0x82, 0x39, 0xae, 0xac, 0xd3, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x1c, 0x7b, 0xef, + 0x52, 0xfc, 0xfa, 0x5b, 0xb4, 0x56, 0x6b, 0xb3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x84, 0xaa, 0xc1, + 0x23, 0x11, 0x3e, 0x76, 0x2e, 0xb1, 0x1b, 0xc3, 0xf8, 0x6d, 0xce, 0x38, 0x17, 0x62, 0x6c, 0x70, + 0xa8, 0x5a, 0x81, 0xe9, 0x93, 0x70, 0xfd, 0x0d, 0xe7, 0xca, 0xe3, 0x30, 0xc9, 0x3a, 0xcc, 0x50, + 0x12, 0xa3, 0xe7, 0xf9, 0x4e, 0x87, 0x26, 0xbd, 0xe3, 0x69, 0xfe, 0xf6, 0x2d, 0x76, 0x50, 0x0a, + 0x04, 0x56, 0x09, 0x50, 0xaa, 0x0a, 0xf4, 0x33, 0x43, 0x13, 0x1b, 0x56, 0x0c, 0xc3, 0x1b, 0xdc, + 0x90, 0x40, 0x5f, 0xfd, 0x14, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x85, 0x2d, 0x89, 0xbf, 0x65, 0x2a, + 0x7e, 0xf7, 0x65, 0x76, 0x16, 0xe7, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x5d, 0x6c, 0x63, 0xdf, 0xc7, + 0xae, 0xa7, 0x23, 0x6b, 0x94, 0x79, 0xa1, 0xd7, 0xf4, 0xe2, 0x17, 0xde, 0x89, 0xee, 0xe2, 0x3a, + 0x43, 0x96, 0x2d, 0x4b, 0xdd, 0x85, 0xd3, 0x23, 0xa2, 0x62, 0x0c, 0xce, 0x57, 0x38, 0xe7, 0xfc, + 0x50, 0x64, 0x10, 0xda, 0x3a, 0x08, 0x79, 0xb0, 0x97, 0x63, 0x70, 0xfe, 0x16, 0xe7, 0x54, 0x38, + 0x56, 0x6c, 0x29, 0x61, 0xbc, 0x01, 0xb3, 0x77, 0xb1, 0xbb, 0xe7, 0x78, 0xfc, 0x6a, 0x64, 0x0c, + 0xba, 0x57, 0x39, 0xdd, 0x0c, 0x07, 0xd2, 0xbb, 0x12, 0xc2, 0xf5, 0x1c, 0x64, 0x5a, 0xc8, 0xc0, + 0x63, 0x50, 0x7c, 0x91, 0x53, 0x4c, 0x11, 0x7d, 0x02, 0x2d, 0x43, 0xbe, 0xed, 0xf0, 0xb2, 0x14, + 0x0f, 0x7f, 0x8d, 0xc3, 0x73, 0x02, 0xc3, 0x29, 0xba, 0x4e, 0xb7, 0x67, 0x91, 0x9a, 0x15, 0x4f, + 0xf1, 0xdb, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x09, 0xdc, 0xfa, 0x3b, 0x82, 0xc2, 0x0b, 0xf9, 0xf3, + 0x79, 0xc8, 0x39, 0xb6, 0x75, 0xe0, 0xd8, 0xe3, 0x18, 0xf1, 0xbb, 0x9c, 0x01, 0x38, 0x84, 0x10, + 0x5c, 0x83, 0xec, 0xb8, 0x1b, 0xf1, 0x7b, 0xef, 0x88, 0xe3, 0x21, 0x76, 0x60, 0x1d, 0x66, 0x44, + 0x82, 0x32, 0x1d, 0x7b, 0x0c, 0x8a, 0xdf, 0xe7, 0x14, 0x85, 0x10, 0x8c, 0x2f, 0xc3, 0xc7, 0x9e, + 0xdf, 0xc6, 0xe3, 0x90, 0xbc, 0x2e, 0x96, 0xc1, 0x21, 0xdc, 0x95, 0x7b, 0xd8, 0x36, 0xf6, 0xc7, + 0x63, 0xf8, 0xb2, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x0a, 0x4c, 0x77, 0x90, 0xeb, 0xed, 0x23, 0x6b, + 0xac, 0xed, 0xf8, 0x03, 0xce, 0x91, 0x0f, 0x40, 0xdc, 0x23, 0x3d, 0xfb, 0x24, 0x34, 0x5f, 0x11, + 0x1e, 0x09, 0xc1, 0xf8, 0xd1, 0xf3, 0x7c, 0x7a, 0x01, 0x75, 0x12, 0xb6, 0xaf, 0x8a, 0xa3, 0xc7, + 0xb0, 0x9b, 0x61, 0xc6, 0x6b, 0x90, 0xf5, 0xcc, 0x97, 0xc6, 0xa2, 0xf9, 0x43, 0xb1, 0xd3, 0x14, + 0x40, 0xc0, 0xb7, 0xe0, 0xcc, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x71, 0xb2, 0x53, 0x23, 0x4a, + 0x05, 0x4f, 0x09, 0x27, 0xa5, 0xfc, 0x63, 0x91, 0x12, 0xf0, 0x00, 0x57, 0x9d, 0xbc, 0x28, 0x78, + 0xa8, 0x75, 0x32, 0xaf, 0xfd, 0x89, 0xf0, 0x1a, 0xc3, 0x46, 0xbc, 0xb6, 0x03, 0xa7, 0x38, 0xe3, + 0xc9, 0xf6, 0xf5, 0x6b, 0x22, 0xb1, 0x32, 0xf4, 0x6e, 0x74, 0x77, 0x7f, 0x0a, 0x16, 0x02, 0x77, + 0x8a, 0x8e, 0xd4, 0xd3, 0x3b, 0xa8, 0x3b, 0x06, 0xf3, 0xd7, 0x39, 0xb3, 0xc8, 0xf8, 0x41, 0x4b, + 0xeb, 0x6d, 0xa2, 0x2e, 0x21, 0xbf, 0x09, 0x45, 0x41, 0xde, 0xb3, 0x5d, 0x6c, 0x38, 0x6d, 0xdb, + 0x7c, 0x09, 0x37, 0xc7, 0xa0, 0xfe, 0xd3, 0x81, 0xad, 0xda, 0x0d, 0xc1, 0x09, 0x73, 0x0d, 0xe4, + 0xa0, 0x57, 0xd1, 0xcd, 0x4e, 0xd7, 0x71, 0xfd, 0x18, 0xc6, 0x3f, 0x13, 0x3b, 0x15, 0xe0, 0x6a, + 0x14, 0xa6, 0x56, 0xa1, 0x40, 0x87, 0xe3, 0x86, 0xe4, 0x9f, 0x73, 0xa2, 0xe9, 0x3e, 0x8a, 0x27, + 0x0e, 0xc3, 0xe9, 0x74, 0x91, 0x3b, 0x4e, 0xfe, 0xfb, 0x0b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, + 0xff, 0xa0, 0x8b, 0x49, 0xb5, 0x1f, 0x83, 0xe1, 0x1b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, + 0xc3, 0x18, 0x14, 0x7f, 0x29, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xb2, 0x5f, 0x68, 0x5d, 0xdc, 0x36, + 0x3d, 0xdf, 0x65, 0x7d, 0xf0, 0xf1, 0x54, 0xdf, 0x7c, 0x27, 0xda, 0x84, 0x69, 0x21, 0xa8, 0x7a, + 0x03, 0x66, 0x06, 0x5a, 0x0c, 0x25, 0xee, 0x7f, 0x16, 0x8a, 0x3f, 0xfd, 0x1e, 0x4f, 0x46, 0xd1, + 0x0e, 0x43, 0xdd, 0x20, 0xfb, 0x1e, 0xed, 0x03, 0xe2, 0xc9, 0x5e, 0x7e, 0x2f, 0xd8, 0xfa, 0x48, + 0x1b, 0xa0, 0x5e, 0x87, 0xe9, 0x48, 0x0f, 0x10, 0x4f, 0xf5, 0x59, 0x4e, 0x95, 0x0f, 0xb7, 0x00, + 0xea, 0x65, 0x48, 0x91, 0x7a, 0x1e, 0x0f, 0xff, 0x19, 0x0e, 0xa7, 0xea, 0xea, 0xc7, 0x20, 0x23, + 0xea, 0x78, 0x3c, 0xf4, 0x67, 0x39, 0x34, 0x80, 0x10, 0xb8, 0xa8, 0xe1, 0xf1, 0xf0, 0x9f, 0x13, + 0x70, 0x01, 0x21, 0xf0, 0xf1, 0x5d, 0xf8, 0xad, 0x5f, 0x48, 0xf1, 0x3c, 0x2c, 0x7c, 0x77, 0x0d, + 0xa6, 0x78, 0xf1, 0x8e, 0x47, 0x7f, 0x8e, 0x3f, 0x5c, 0x20, 0xd4, 0x67, 0x21, 0x3d, 0xa6, 0xc3, + 0x7f, 0x91, 0x43, 0x99, 0xbe, 0x5a, 0x81, 0x5c, 0xa8, 0x60, 0xc7, 0xc3, 0x7f, 0x89, 0xc3, 0xc3, + 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xf1, 0x04, 0xbf, 0x2c, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, + 0xe3, 0xd1, 0xbf, 0x22, 0xbc, 0x2e, 0x20, 0xea, 0xf3, 0x90, 0x0d, 0xf2, 0x6f, 0x3c, 0xfe, 0x57, + 0x39, 0xbe, 0x8f, 0x21, 0x1e, 0x08, 0xe5, 0xff, 0x78, 0x8a, 0x5f, 0x13, 0x1e, 0x08, 0xa1, 0xc8, + 0x31, 0x1a, 0xac, 0xe9, 0xf1, 0x4c, 0xbf, 0x2e, 0x8e, 0xd1, 0x40, 0x49, 0x27, 0xbb, 0x49, 0xd3, + 0x60, 0x3c, 0xc5, 0x6f, 0x88, 0xdd, 0xa4, 0xfa, 0xc4, 0x8c, 0xc1, 0x22, 0x19, 0xcf, 0xf1, 0x9b, + 0xc2, 0x8c, 0x81, 0x1a, 0xa9, 0xd6, 0x41, 0x19, 0x2e, 0x90, 0xf1, 0x7c, 0x9f, 0xe7, 0x7c, 0xb3, + 0x43, 0xf5, 0x51, 0x7d, 0x01, 0x4e, 0x8d, 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0x78, 0x6f, 0xe0, 0x75, + 0x26, 0x5c, 0x1b, 0xd5, 0x9d, 0x7e, 0x96, 0x0d, 0x17, 0xc6, 0x78, 0xda, 0x57, 0xde, 0x8b, 0x26, + 0xda, 0x70, 0x5d, 0x54, 0xcb, 0x00, 0xfd, 0x9a, 0x14, 0xcf, 0xf5, 0x2a, 0xe7, 0x0a, 0x81, 0xc8, + 0xd1, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x45, 0x71, 0x34, 0x38, 0x82, 0x1c, 0x0d, 0x51, 0x8d, 0xe2, + 0xd1, 0xaf, 0x89, 0xa3, 0x21, 0x20, 0xea, 0x35, 0xc8, 0xd8, 0x3d, 0xcb, 0x22, 0xb1, 0xa5, 0x1c, + 0xff, 0x6f, 0x44, 0xc5, 0x7f, 0x79, 0xc8, 0xc1, 0x02, 0xa0, 0x5e, 0x86, 0x34, 0xee, 0xec, 0xe1, + 0x66, 0x1c, 0xf2, 0x5f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0xd5, 0xe7, 0x01, 0xd8, 0xcb, 0x34, 0xfd, + 0x4a, 0x14, 0x83, 0xfd, 0xb7, 0x87, 0xfc, 0x3f, 0x14, 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x7f, 0x87, + 0xe3, 0x09, 0xde, 0x89, 0x12, 0xd0, 0x17, 0xf0, 0xe7, 0x60, 0xea, 0xb6, 0xe7, 0xd8, 0x3e, 0x6a, + 0xc7, 0xa1, 0xff, 0x9d, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc7, 0x71, 0xb1, 0x8f, 0xda, 0x5e, 0x1c, + 0xf6, 0x3f, 0x38, 0x36, 0x00, 0x10, 0xb0, 0x81, 0x3c, 0x7f, 0x9c, 0x75, 0xff, 0xa7, 0x00, 0x0b, + 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x83, 0x0f, 0xe2, 0xb0, 0xef, 0x0a, 0xa3, 0xb9, 0xbe, 0xfa, 0x31, + 0xc8, 0x92, 0x9f, 0xec, 0xbf, 0x76, 0x62, 0xc0, 0xff, 0xc5, 0xc1, 0x7d, 0x04, 0x79, 0xb2, 0xe7, + 0x37, 0x7d, 0x33, 0xde, 0xd9, 0xff, 0xcd, 0x77, 0x5a, 0xe8, 0xab, 0x65, 0xc8, 0x79, 0x7e, 0xb3, + 0xd9, 0xe3, 0x1d, 0x4d, 0x0c, 0xfc, 0xfb, 0x0f, 0x83, 0x97, 0xdc, 0x00, 0xb3, 0x7a, 0x6e, 0xf4, + 0x65, 0x1d, 0xac, 0x3b, 0xeb, 0x0e, 0xbb, 0xa6, 0x83, 0xff, 0x4d, 0xc1, 0x4c, 0x60, 0xae, 0xb8, + 0x57, 0x0b, 0x04, 0x0b, 0x27, 0xbb, 0x91, 0x5b, 0xfa, 0xeb, 0x24, 0x64, 0x2a, 0xc8, 0xf3, 0xd1, + 0x3d, 0x74, 0xa0, 0x74, 0x61, 0x8e, 0xfc, 0xde, 0x44, 0x5d, 0x7a, 0xbf, 0xc3, 0x0f, 0x14, 0xbf, + 0xf1, 0xfc, 0xf0, 0x4a, 0xff, 0xa9, 0x02, 0xb1, 0x32, 0x42, 0x9d, 0x7e, 0x29, 0x5e, 0x95, 0xdf, + 0xf8, 0xc7, 0xb3, 0x13, 0x3f, 0xff, 0x4f, 0x67, 0x33, 0x9b, 0x07, 0x2f, 0x98, 0x96, 0xe7, 0xd8, + 0xda, 0x28, 0x6a, 0xe5, 0xb3, 0x12, 0x3c, 0x3a, 0x42, 0xbe, 0xc5, 0x4f, 0x1d, 0xff, 0x6e, 0x70, + 0x69, 0xcc, 0x47, 0x0b, 0x18, 0x33, 0x21, 0x1f, 0x79, 0xfc, 0x71, 0x8f, 0x59, 0xb8, 0x05, 0xc5, + 0xa3, 0x56, 0xa2, 0xc8, 0x90, 0xbc, 0x83, 0x0f, 0xf8, 0xff, 0x82, 0x92, 0x9f, 0xca, 0xf9, 0xfe, + 0xff, 0x92, 0x49, 0xcb, 0xb9, 0x8b, 0xb3, 0x21, 0xeb, 0xf8, 0xc3, 0xd8, 0xbc, 0x9a, 0xb8, 0x2a, + 0x2d, 0x20, 0x58, 0x8c, 0xb3, 0xf4, 0xff, 0xf9, 0x88, 0xa5, 0x12, 0x4c, 0x32, 0xa1, 0x32, 0x0f, + 0xe9, 0x9a, 0xed, 0x5f, 0xb9, 0x44, 0xa9, 0x92, 0x1a, 0x1b, 0xac, 0x6e, 0xbc, 0xf1, 0xa0, 0x34, + 0xf1, 0x9d, 0x07, 0xa5, 0x89, 0xbf, 0x7f, 0x50, 0x9a, 0x78, 0xf3, 0x41, 0x49, 0x7a, 0xfb, 0x41, + 0x49, 0x7a, 0xf7, 0x41, 0x49, 0xfa, 0xc1, 0x83, 0x92, 0x74, 0xff, 0xb0, 0x24, 0x7d, 0xf9, 0xb0, + 0x24, 0x7d, 0xed, 0xb0, 0x24, 0x7d, 0xf3, 0xb0, 0x24, 0x7d, 0xeb, 0xb0, 0x24, 0xbd, 0x71, 0x58, + 0x9a, 0xf8, 0xce, 0x61, 0x69, 0xe2, 0xcd, 0xc3, 0x92, 0xf4, 0xf6, 0x61, 0x69, 0xe2, 0xdd, 0xc3, + 0x92, 0xf4, 0x83, 0xc3, 0xd2, 0xc4, 0xfd, 0xef, 0x95, 0x26, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, + 0xb6, 0x10, 0x73, 0x40, 0xdc, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -597,23 +617,6 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -677,7 +680,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -685,43 +688,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -742,8 +745,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -830,27 +834,30 @@ func valueToStringCastvalue(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 322 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4e, 0x2c, 0x2e, + // 342 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4e, 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90, - 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, 0xf6, - 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, 0xc0, - 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, 0x92, - 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, 0x67, - 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, 0xc6, 0x62, - 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, - 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, 0xb9, 0x24, - 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, 0xac, 0x41, - 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, 0x88, 0xe4, - 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, 0x2e, 0xa5, - 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, 0x89, 0x99, - 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, 0x86, 0x0b, - 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, 0x07, 0x10, - 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, 0xe2, 0x13, - 0x8f, 0x80, 0xea, 0x81, 0xf8, 0x01, 0x90, 0xfd, 0x02, 0x48, 0x7f, 0x00, 0xd2, 0x3f, 0x80, 0x74, - 0xc3, 0x63, 0x39, 0x06, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xad, 0x1f, 0x01, 0x78, 0x7d, 0x02, - 0x00, 0x00, + 0x99, 0x8b, 0xc3, 0x39, 0xb1, 0xb8, 0x24, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, + 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, + 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, + 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, + 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x61, 0x33, 0x5a, 0xa8, 0x85, 0x91, 0x4b, 0x1a, 0x8b, 0xb8, + 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86, + 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0x7c, 0xd6, 0x48, 0x45, 0x72, 0x49, 0xe0, 0xf2, 0x89, + 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x88, 0x29, + 0xa4, 0xce, 0xc5, 0x0a, 0x76, 0x8b, 0x04, 0x93, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x20, 0x92, 0xeb, + 0xa0, 0x96, 0x41, 0xe4, 0xad, 0x98, 0x2c, 0x18, 0xa5, 0x12, 0xb9, 0x14, 0x08, 0xb9, 0x94, 0x42, + 0x2b, 0x94, 0xe4, 0xb8, 0xd8, 0x20, 0x82, 0x42, 0x22, 0x5c, 0xac, 0x9e, 0x79, 0x25, 0x66, 0x26, + 0x60, 0xa3, 0x98, 0x83, 0x20, 0x1c, 0x27, 0x9f, 0x13, 0x0f, 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63, + 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x17, 0x0f, 0xe5, 0x18, 0x3f, 0x3c, 0x94, + 0x63, 0xfc, 0xf1, 0x50, 0x8e, 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x1b, 0x1e, + 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x0c, 0x17, + 0x1e, 0xc9, 0x31, 0x3c, 0x78, 0x24, 0xc7, 0xf8, 0xe2, 0x91, 0x1c, 0xc3, 0x87, 0x47, 0x72, 0x8c, + 0x3f, 0x1e, 0xc9, 0x31, 0x34, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x8b, + 0x19, 0x68, 0x7d, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.proto index 15997ce0..35e47436 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go index 2c97a9d0..3c6f6a78 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +73,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +87,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -108,18 +108,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +147,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +161,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +224,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +241,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +258,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +275,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -294,12 +294,12 @@ func TestCastvalueDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -309,12 +309,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +368,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +404,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go index c422d779..2823b591 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go @@ -26,13 +26,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -42,11 +38,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -55,7 +53,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -76,224 +74,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3472 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0xd5, - 0xf5, 0x5f, 0xc7, 0x76, 0x62, 0x1f, 0x3b, 0x8e, 0x33, 0x09, 0xbb, 0xde, 0x2c, 0x64, 0x77, 0xcd, - 0x63, 0x97, 0x05, 0x12, 0xfe, 0xfb, 0xe7, 0xb1, 0x98, 0xff, 0x1f, 0x94, 0x87, 0x37, 0x78, 0x95, - 0x57, 0x27, 0x09, 0xec, 0xd2, 0x0f, 0xa3, 0xc9, 0xf8, 0xc6, 0xf1, 0xee, 0x78, 0xc6, 0xf5, 0x8c, - 0x77, 0x37, 0x7c, 0xa2, 0x82, 0xb6, 0xa2, 0x55, 0xdf, 0x95, 0xca, 0xbb, 0x05, 0xa9, 0x85, 0xd2, - 0x17, 0xf4, 0xa5, 0xaa, 0x9f, 0xa8, 0x2a, 0x5a, 0x3e, 0x55, 0xb4, 0x9f, 0xfa, 0xa1, 0x6a, 0x81, - 0x22, 0x95, 0xb6, 0xb4, 0xa5, 0xd2, 0x4a, 0x45, 0xe2, 0x4b, 0xcf, 0x7d, 0x8d, 0x67, 0x6c, 0x27, - 0xe3, 0x50, 0x51, 0x1a, 0x69, 0x94, 0x99, 0x73, 0xcf, 0xef, 0x37, 0xf7, 0x9e, 0x7b, 0xee, 0x39, - 0xe7, 0xde, 0x31, 0xfc, 0xec, 0x7f, 0xe0, 0x50, 0xc5, 0xb6, 0x2b, 0x26, 0x99, 0xac, 0x37, 0x6c, - 0xd7, 0x5e, 0x6f, 0x6e, 0x4c, 0x96, 0x89, 0x63, 0x34, 0xaa, 0x75, 0xd7, 0x6e, 0x4c, 0x30, 0x99, - 0x32, 0xc4, 0x35, 0x26, 0xa4, 0x46, 0x7e, 0x01, 0x86, 0x4f, 0x56, 0x4d, 0x32, 0xeb, 0x29, 0xae, - 0x10, 0x57, 0x39, 0x01, 0xb1, 0x0d, 0x14, 0xe6, 0x22, 0x87, 0xa2, 0x47, 0x53, 0xc7, 0xaf, 0x9a, - 0x68, 0x03, 0x4d, 0x04, 0x11, 0xcb, 0x54, 0xac, 0x32, 0x44, 0xfe, 0x8d, 0x18, 0x8c, 0x74, 0x69, - 0x55, 0x14, 0x88, 0x59, 0x7a, 0x8d, 0x32, 0x46, 0x8e, 0x26, 0x55, 0x76, 0xaf, 0xe4, 0x60, 0xa0, - 0xae, 0x1b, 0xe7, 0xf4, 0x0a, 0xc9, 0xf5, 0x31, 0xb1, 0x7c, 0x54, 0xc6, 0x01, 0xca, 0xa4, 0x4e, - 0xac, 0x32, 0xb1, 0x8c, 0xad, 0x5c, 0x14, 0x7b, 0x91, 0x54, 0x7d, 0x12, 0xe5, 0x3a, 0x18, 0xae, - 0x37, 0xd7, 0xcd, 0xaa, 0xa1, 0xf9, 0xd4, 0x00, 0xd5, 0xe2, 0x6a, 0x96, 0x37, 0xcc, 0xb6, 0x94, - 0x8f, 0xc0, 0xd0, 0x05, 0xa2, 0x9f, 0xf3, 0xab, 0xa6, 0x98, 0x6a, 0x86, 0x8a, 0x7d, 0x8a, 0x33, - 0x90, 0xae, 0x11, 0xc7, 0xc1, 0x0e, 0x68, 0xee, 0x56, 0x9d, 0xe4, 0x62, 0x6c, 0xf4, 0x87, 0x3a, - 0x46, 0xdf, 0x3e, 0xf2, 0x94, 0x40, 0xad, 0x22, 0x48, 0x99, 0x82, 0x24, 0xb1, 0x9a, 0x35, 0xce, - 0x10, 0xdf, 0xc6, 0x7e, 0x45, 0xd4, 0x68, 0x67, 0x49, 0x50, 0x98, 0xa0, 0x18, 0x70, 0x48, 0xe3, - 0x7c, 0xd5, 0x20, 0xb9, 0x7e, 0x46, 0x70, 0xa4, 0x83, 0x60, 0x85, 0xb7, 0xb7, 0x73, 0x48, 0x1c, - 0x0e, 0x25, 0x49, 0x2e, 0xba, 0xc4, 0x72, 0xaa, 0xb6, 0x95, 0x1b, 0x60, 0x24, 0x57, 0x77, 0x99, - 0x45, 0x62, 0x96, 0xdb, 0x29, 0x5a, 0x38, 0xe5, 0x16, 0x18, 0xb0, 0xeb, 0x2e, 0xde, 0x39, 0xb9, - 0x04, 0xce, 0x4f, 0xea, 0xf8, 0xe5, 0x5d, 0x1d, 0x61, 0x89, 0xeb, 0xa8, 0x52, 0x59, 0x29, 0x41, - 0xd6, 0xb1, 0x9b, 0x0d, 0x83, 0x68, 0x86, 0x5d, 0x26, 0x5a, 0xd5, 0xda, 0xb0, 0x73, 0x49, 0x46, - 0x70, 0xb0, 0x73, 0x20, 0x4c, 0x71, 0x06, 0xf5, 0x4a, 0xa8, 0xa6, 0x66, 0x9c, 0xc0, 0xb3, 0xb2, - 0x17, 0xfa, 0x9d, 0x2d, 0xcb, 0xd5, 0x2f, 0xe6, 0xd2, 0xcc, 0x43, 0xc4, 0x53, 0xfe, 0x9f, 0x71, - 0x18, 0xea, 0xc5, 0xc5, 0x6e, 0x87, 0xf8, 0x06, 0x1d, 0x25, 0x3a, 0xd8, 0x2e, 0x6c, 0xc0, 0x31, - 0x41, 0x23, 0xf6, 0xbf, 0x47, 0x23, 0x4e, 0x41, 0xca, 0x22, 0x8e, 0x4b, 0xca, 0xdc, 0x23, 0xa2, - 0x3d, 0xfa, 0x14, 0x70, 0x50, 0xa7, 0x4b, 0xc5, 0xde, 0x93, 0x4b, 0x9d, 0x86, 0x21, 0xaf, 0x4b, - 0x5a, 0x43, 0xb7, 0x2a, 0xd2, 0x37, 0x27, 0xc3, 0x7a, 0x32, 0x51, 0x94, 0x38, 0x95, 0xc2, 0xd4, - 0x0c, 0x09, 0x3c, 0x2b, 0xb3, 0x00, 0xb6, 0x45, 0xec, 0x0d, 0x5c, 0x5e, 0x86, 0x89, 0x7e, 0xd2, - 0xdd, 0x4a, 0x4b, 0x54, 0xa5, 0xc3, 0x4a, 0x36, 0x97, 0x1a, 0xa6, 0x72, 0x5b, 0xcb, 0xd5, 0x06, - 0xb6, 0xf1, 0x94, 0x05, 0xbe, 0xc8, 0x3a, 0xbc, 0x6d, 0x0d, 0x32, 0x0d, 0x42, 0xfd, 0x1e, 0x4d, - 0xcc, 0x47, 0x96, 0x64, 0x9d, 0x98, 0x08, 0x1d, 0x99, 0x2a, 0x60, 0x7c, 0x60, 0x83, 0x0d, 0xff, - 0xa3, 0x72, 0x25, 0x78, 0x02, 0x8d, 0xb9, 0x15, 0xb0, 0x28, 0x94, 0x96, 0xc2, 0x45, 0x94, 0x8d, - 0x9d, 0x80, 0x4c, 0xd0, 0x3c, 0xca, 0x28, 0xc4, 0x1d, 0x57, 0x6f, 0xb8, 0xcc, 0x0b, 0xe3, 0x2a, - 0x7f, 0x50, 0xb2, 0x10, 0xc5, 0x20, 0xc3, 0xa2, 0x5c, 0x5c, 0xa5, 0xb7, 0x63, 0xb7, 0xc2, 0x60, - 0xe0, 0xf5, 0xbd, 0x02, 0xf3, 0x0f, 0xf7, 0xc3, 0x68, 0x37, 0x9f, 0xeb, 0xea, 0xfe, 0xb8, 0x7c, - 0xd0, 0x03, 0xd6, 0x49, 0x03, 0xfd, 0x8e, 0x32, 0x88, 0x27, 0xf4, 0xa8, 0xb8, 0xa9, 0xaf, 0x13, - 0x13, 0xbd, 0x29, 0x72, 0x34, 0x73, 0xfc, 0xba, 0x9e, 0xbc, 0x7a, 0x62, 0x9e, 0x42, 0x54, 0x8e, - 0x54, 0xee, 0x80, 0x98, 0x08, 0x71, 0x94, 0xe1, 0x58, 0x6f, 0x0c, 0xd4, 0x17, 0x55, 0x86, 0x53, - 0x0e, 0x40, 0x92, 0xfe, 0xe7, 0xb6, 0xed, 0x67, 0x7d, 0x4e, 0x50, 0x01, 0xb5, 0xab, 0x32, 0x06, - 0x09, 0xe6, 0x66, 0x65, 0x22, 0x53, 0x83, 0xf7, 0x4c, 0x27, 0xa6, 0x4c, 0x36, 0xf4, 0xa6, 0xe9, - 0x6a, 0xe7, 0x75, 0xb3, 0x49, 0x98, 0xc3, 0xe0, 0xc4, 0x08, 0xe1, 0xdd, 0x54, 0xa6, 0x1c, 0x84, - 0x14, 0xf7, 0xca, 0x2a, 0x62, 0x2e, 0xb2, 0xe8, 0x13, 0x57, 0xb9, 0xa3, 0x96, 0xa8, 0x84, 0xbe, - 0xfe, 0xac, 0x83, 0x6b, 0x41, 0x4c, 0x2d, 0x7b, 0x05, 0x15, 0xb0, 0xd7, 0xdf, 0xda, 0x1e, 0xf8, - 0xae, 0xe8, 0x3e, 0xbc, 0x76, 0x5f, 0xcc, 0xff, 0xa8, 0x0f, 0x62, 0x6c, 0xbd, 0x0d, 0x41, 0x6a, - 0xf5, 0xcc, 0x72, 0x51, 0x9b, 0x5d, 0x5a, 0x9b, 0x9e, 0x2f, 0x66, 0x23, 0x4a, 0x06, 0x80, 0x09, - 0x4e, 0xce, 0x2f, 0x4d, 0xad, 0x66, 0xfb, 0xbc, 0xe7, 0xd2, 0xe2, 0xea, 0x2d, 0x37, 0x65, 0xa3, - 0x1e, 0x60, 0x8d, 0x0b, 0x62, 0x7e, 0x85, 0xff, 0x3d, 0x9e, 0x8d, 0xa3, 0x27, 0xa4, 0x39, 0x41, - 0xe9, 0x74, 0x71, 0x16, 0x35, 0xfa, 0x83, 0x12, 0xd4, 0x19, 0x50, 0x06, 0x21, 0xc9, 0x24, 0xd3, - 0x4b, 0x4b, 0xf3, 0xd9, 0x84, 0xc7, 0xb9, 0xb2, 0xaa, 0x96, 0x16, 0xe7, 0xb2, 0x49, 0x8f, 0x73, - 0x4e, 0x5d, 0x5a, 0x5b, 0xce, 0x82, 0xc7, 0xb0, 0x50, 0x5c, 0x59, 0x99, 0x9a, 0x2b, 0x66, 0x53, - 0x9e, 0xc6, 0xf4, 0x99, 0xd5, 0xe2, 0x4a, 0x36, 0x1d, 0xe8, 0x16, 0xbe, 0x62, 0xd0, 0x7b, 0x45, - 0x71, 0x71, 0x6d, 0x21, 0x9b, 0x51, 0x86, 0x61, 0x90, 0xbf, 0x42, 0x76, 0x62, 0xa8, 0x4d, 0x84, - 0x3d, 0xcd, 0xb6, 0x3a, 0xc2, 0x59, 0x86, 0x03, 0x02, 0xd4, 0x50, 0xf2, 0x33, 0x10, 0x67, 0xde, - 0x85, 0x5e, 0x9c, 0x99, 0x9f, 0x9a, 0x2e, 0xce, 0x6b, 0x4b, 0xcb, 0xab, 0xa5, 0xa5, 0xc5, 0xa9, - 0x79, 0xb4, 0x9d, 0x27, 0x53, 0x8b, 0x1f, 0x5a, 0x2b, 0xa9, 0xc5, 0x59, 0xb4, 0x9f, 0x4f, 0xb6, - 0x5c, 0x9c, 0x5a, 0x45, 0x59, 0x34, 0x7f, 0x0c, 0x46, 0xbb, 0xc5, 0x99, 0x6e, 0x2b, 0x23, 0xff, - 0x74, 0x04, 0x46, 0xba, 0x84, 0xcc, 0xae, 0xab, 0xe8, 0x4e, 0x88, 0x73, 0x4f, 0xe3, 0x49, 0xe4, - 0xda, 0xae, 0xb1, 0x97, 0xf9, 0x5d, 0x47, 0x22, 0x61, 0x38, 0x7f, 0x22, 0x8d, 0x6e, 0x93, 0x48, - 0x29, 0x45, 0x87, 0x3b, 0x3d, 0x10, 0x81, 0xdc, 0x76, 0xdc, 0x21, 0xeb, 0xbd, 0x2f, 0xb0, 0xde, - 0x6f, 0x6f, 0xef, 0xc0, 0xe1, 0xed, 0xc7, 0xd0, 0xd1, 0x8b, 0x67, 0x22, 0xb0, 0xb7, 0x7b, 0xbd, - 0xd1, 0xb5, 0x0f, 0x77, 0x40, 0x7f, 0x8d, 0xb8, 0x9b, 0xb6, 0xcc, 0xb9, 0xd7, 0x74, 0x89, 0xe4, - 0xb4, 0xb9, 0xdd, 0x56, 0x02, 0xe5, 0x4f, 0x05, 0xd1, 0xed, 0x8a, 0x06, 0xde, 0x9b, 0x8e, 0x9e, - 0x3e, 0xd4, 0x07, 0x97, 0x75, 0x25, 0xef, 0xda, 0xd1, 0x2b, 0x00, 0xaa, 0x56, 0xbd, 0xe9, 0xf2, - 0xbc, 0xca, 0xc3, 0x4c, 0x92, 0x49, 0xd8, 0x12, 0xa6, 0x21, 0xa4, 0xe9, 0x7a, 0xed, 0x51, 0xd6, - 0x0e, 0x5c, 0xc4, 0x14, 0x4e, 0xb4, 0x3a, 0x1a, 0x63, 0x1d, 0x1d, 0xdf, 0x66, 0xa4, 0x1d, 0x29, - 0xeb, 0x46, 0xc8, 0x1a, 0x66, 0x95, 0x58, 0xae, 0xe6, 0xb8, 0x0d, 0xa2, 0xd7, 0xaa, 0x56, 0x85, - 0xc5, 0xd1, 0x44, 0x21, 0xbe, 0xa1, 0x9b, 0x0e, 0x51, 0x87, 0x78, 0xf3, 0x8a, 0x6c, 0xa5, 0x08, - 0x96, 0x2c, 0x1a, 0x3e, 0x44, 0x7f, 0x00, 0xc1, 0x9b, 0x3d, 0x44, 0xfe, 0xd7, 0x03, 0x90, 0xf2, - 0x55, 0x67, 0xca, 0x61, 0x48, 0x9f, 0xd5, 0xcf, 0xeb, 0x9a, 0xac, 0xb8, 0xb9, 0x25, 0x52, 0x54, - 0xb6, 0x2c, 0xaa, 0xee, 0x1b, 0x61, 0x94, 0xa9, 0xe0, 0x18, 0xf1, 0x45, 0x86, 0xa9, 0x3b, 0x0e, - 0x33, 0x5a, 0x82, 0xa9, 0x2a, 0xb4, 0x6d, 0x89, 0x36, 0xcd, 0xc8, 0x16, 0xe5, 0x66, 0x18, 0x61, - 0x88, 0x1a, 0x06, 0xde, 0x6a, 0xdd, 0x24, 0x1a, 0xdd, 0x03, 0x38, 0x2c, 0x9e, 0x7a, 0x3d, 0x1b, - 0xa6, 0x1a, 0x0b, 0x42, 0x81, 0xf6, 0xc8, 0x51, 0xe6, 0xe0, 0x0a, 0x06, 0xab, 0x10, 0x8b, 0x34, - 0x74, 0x97, 0x68, 0xe4, 0x23, 0x4d, 0xd4, 0xd5, 0x74, 0xab, 0xac, 0x6d, 0xea, 0xce, 0x66, 0x6e, - 0xd4, 0x4f, 0xb0, 0x9f, 0xea, 0xce, 0x09, 0xd5, 0x22, 0xd3, 0x9c, 0xb2, 0xca, 0x77, 0xa1, 0x9e, - 0x52, 0x80, 0xbd, 0x8c, 0x08, 0x8d, 0x82, 0x63, 0xd6, 0x8c, 0x4d, 0x62, 0x9c, 0xd3, 0x9a, 0xee, - 0xc6, 0x89, 0xdc, 0x01, 0x3f, 0x03, 0xeb, 0xe4, 0x0a, 0xd3, 0x99, 0xa1, 0x2a, 0x6b, 0xa8, 0xa1, - 0xac, 0x40, 0x9a, 0xce, 0x47, 0xad, 0x7a, 0x1f, 0x76, 0xdb, 0x6e, 0xb0, 0x1c, 0x91, 0xe9, 0xb2, - 0xb8, 0x7d, 0x46, 0x9c, 0x58, 0x12, 0x80, 0x05, 0xac, 0x4f, 0x0b, 0xf1, 0x95, 0xe5, 0x62, 0x71, - 0x56, 0x4d, 0x49, 0x96, 0x93, 0x76, 0x83, 0xfa, 0x54, 0xc5, 0xf6, 0x6c, 0x9c, 0xe2, 0x3e, 0x55, - 0xb1, 0xa5, 0x85, 0xd1, 0x5e, 0x86, 0xc1, 0x87, 0x8d, 0x7b, 0x17, 0x51, 0xac, 0x3b, 0xb9, 0x6c, - 0xc0, 0x5e, 0x86, 0x31, 0xc7, 0x15, 0x84, 0x9b, 0x3b, 0xb8, 0x24, 0x2e, 0x6b, 0xd9, 0xcb, 0x0f, - 0x1c, 0xee, 0x18, 0x65, 0x3b, 0x14, 0xdf, 0x58, 0xdf, 0xea, 0x04, 0x2a, 0x81, 0x37, 0xd6, 0xb7, - 0xda, 0x61, 0x57, 0xb3, 0x0d, 0x58, 0x83, 0x18, 0x68, 0xf2, 0x72, 0x6e, 0x9f, 0x5f, 0xdb, 0xd7, - 0xa0, 0x4c, 0xa2, 0x23, 0x1b, 0x1a, 0xb1, 0xf4, 0x75, 0x9c, 0x7b, 0xbd, 0x81, 0x37, 0x4e, 0xee, - 0xa0, 0x5f, 0x39, 0x63, 0x18, 0x45, 0xd6, 0x3a, 0xc5, 0x1a, 0x95, 0x63, 0x30, 0x6c, 0xaf, 0x9f, - 0x35, 0xb8, 0x73, 0x69, 0xc8, 0xb3, 0x51, 0xbd, 0x98, 0xbb, 0x8a, 0x99, 0x69, 0x88, 0x36, 0x30, - 0xd7, 0x5a, 0x66, 0x62, 0xe5, 0x5a, 0x24, 0x77, 0x36, 0xf5, 0x46, 0x9d, 0x25, 0x69, 0x07, 0x8d, - 0x4a, 0x72, 0x57, 0x73, 0x55, 0x2e, 0x5f, 0x94, 0x62, 0xa5, 0x08, 0x07, 0xe9, 0xe0, 0x2d, 0xdd, - 0xb2, 0xb5, 0xa6, 0x43, 0xb4, 0x56, 0x17, 0xbd, 0xb9, 0xb8, 0x86, 0x76, 0x4b, 0xbd, 0x5c, 0xaa, - 0xad, 0x39, 0x18, 0xcc, 0xa4, 0x92, 0x9c, 0x9e, 0xd3, 0x30, 0xda, 0xb4, 0xaa, 0x16, 0xba, 0x38, - 0xb6, 0x50, 0x30, 0x5f, 0xb0, 0xb9, 0x3f, 0x0e, 0x6c, 0x53, 0x74, 0xaf, 0xf9, 0xb5, 0xb9, 0x93, - 0xa8, 0x23, 0xcd, 0x4e, 0x61, 0xbe, 0x00, 0x69, 0xbf, 0xef, 0x28, 0x49, 0xe0, 0xde, 0x83, 0xd9, - 0x0d, 0x33, 0xea, 0xcc, 0xd2, 0x2c, 0xcd, 0x85, 0xf7, 0x16, 0x31, 0xb1, 0x61, 0x4e, 0x9e, 0x2f, - 0xad, 0x16, 0x35, 0x75, 0x6d, 0x71, 0xb5, 0xb4, 0x50, 0xcc, 0x46, 0x8f, 0x25, 0x13, 0x6f, 0x0e, - 0x64, 0xef, 0xc7, 0xbf, 0xbe, 0xfc, 0x4b, 0x7d, 0x90, 0x09, 0xd6, 0xc1, 0xca, 0xff, 0xc1, 0x3e, - 0xb9, 0x69, 0x75, 0x88, 0xab, 0x5d, 0xa8, 0x36, 0x98, 0x3b, 0xd7, 0x74, 0x5e, 0x49, 0x7a, 0x33, - 0x31, 0x2a, 0xb4, 0x70, 0x7b, 0x7f, 0x0f, 0xea, 0x9c, 0x64, 0x2a, 0xca, 0x3c, 0x1c, 0x44, 0x93, - 0x61, 0xad, 0x69, 0x95, 0xf5, 0x46, 0x59, 0x6b, 0x1d, 0x17, 0x68, 0xba, 0x81, 0x7e, 0xe0, 0xd8, - 0x3c, 0x93, 0x78, 0x2c, 0x97, 0x5b, 0xf6, 0x8a, 0x50, 0x6e, 0x85, 0xd8, 0x29, 0xa1, 0xda, 0xe6, - 0x35, 0xd1, 0xed, 0xbc, 0x06, 0x6b, 0xaf, 0x9a, 0x5e, 0x47, 0xb7, 0x71, 0x1b, 0x5b, 0xac, 0x7a, - 0x4b, 0xa8, 0x09, 0x14, 0x14, 0xe9, 0xf3, 0xfb, 0x37, 0x07, 0x7e, 0x3b, 0xfe, 0x36, 0x0a, 0x69, - 0x7f, 0x05, 0x47, 0x0b, 0x62, 0x83, 0x85, 0xf9, 0x08, 0x8b, 0x02, 0x57, 0xee, 0x58, 0xef, 0x4d, - 0xcc, 0xd0, 0xf8, 0x5f, 0xe8, 0xe7, 0x75, 0x95, 0xca, 0x91, 0x34, 0xf7, 0x52, 0x5f, 0x23, 0xbc, - 0x5a, 0x4f, 0xa8, 0xe2, 0x09, 0x83, 0x5d, 0xff, 0x59, 0x87, 0x71, 0xf7, 0x33, 0xee, 0xab, 0x76, - 0xe6, 0x3e, 0xb5, 0xc2, 0xc8, 0x93, 0xa7, 0x56, 0xb4, 0xc5, 0x25, 0x75, 0x61, 0x6a, 0x5e, 0x15, - 0x70, 0x65, 0x3f, 0xc4, 0x4c, 0xfd, 0xbe, 0xad, 0x60, 0xa6, 0x60, 0xa2, 0x5e, 0x0d, 0x8f, 0x0c, - 0xf4, 0xc8, 0x23, 0x18, 0x9f, 0x99, 0xe8, 0x7d, 0x74, 0xfd, 0x49, 0x88, 0x33, 0x7b, 0x29, 0x00, - 0xc2, 0x62, 0xd9, 0x3d, 0x4a, 0x02, 0x62, 0x33, 0x4b, 0x2a, 0x75, 0x7f, 0xf4, 0x77, 0x2e, 0xd5, - 0x96, 0x4b, 0xc5, 0x19, 0x5c, 0x01, 0xf9, 0x9b, 0xa1, 0x9f, 0x1b, 0x81, 0x2e, 0x0d, 0xcf, 0x0c, - 0x08, 0xe2, 0x8f, 0x82, 0x23, 0x22, 0x5b, 0xd7, 0x16, 0xa6, 0x8b, 0x6a, 0xb6, 0xcf, 0x3f, 0xbd, - 0x3f, 0x89, 0x40, 0xca, 0x57, 0x50, 0xd1, 0x54, 0xae, 0x9b, 0xa6, 0x7d, 0x41, 0xd3, 0xcd, 0x2a, - 0x46, 0x28, 0x3e, 0x3f, 0xc0, 0x44, 0x53, 0x54, 0xd2, 0xab, 0xfd, 0xfe, 0x23, 0xbe, 0xf9, 0x64, - 0x04, 0xb2, 0xed, 0xc5, 0x58, 0x5b, 0x07, 0x23, 0x1f, 0x68, 0x07, 0x1f, 0x8f, 0x40, 0x26, 0x58, - 0x81, 0xb5, 0x75, 0xef, 0xf0, 0x07, 0xda, 0xbd, 0xc7, 0x22, 0x30, 0x18, 0xa8, 0xbb, 0xfe, 0xab, - 0x7a, 0xf7, 0x68, 0x14, 0x46, 0xba, 0xe0, 0x30, 0x00, 0xf1, 0x02, 0x95, 0xd7, 0xcc, 0x37, 0xf4, - 0xf2, 0xae, 0x09, 0x9a, 0xff, 0x96, 0xf5, 0x86, 0x2b, 0xea, 0x59, 0xcc, 0x97, 0xd5, 0x32, 0x06, - 0xd5, 0xea, 0x46, 0x15, 0xcb, 0x37, 0xbe, 0x63, 0xe1, 0x55, 0xeb, 0x50, 0x4b, 0xce, 0xb7, 0xc7, - 0xd7, 0x83, 0x52, 0xb7, 0x9d, 0xaa, 0x5b, 0x3d, 0x4f, 0x8f, 0xe7, 0xe4, 0x46, 0x9a, 0x56, 0xb1, - 0x31, 0x35, 0x2b, 0x5b, 0x4a, 0x96, 0xeb, 0x69, 0x5b, 0xa4, 0xa2, 0xb7, 0x69, 0xd3, 0x30, 0x14, - 0x55, 0xb3, 0xb2, 0xc5, 0xd3, 0xc6, 0x42, 0xb3, 0x6c, 0x37, 0x69, 0x41, 0xc0, 0xf5, 0x68, 0xd4, - 0x8b, 0xa8, 0x29, 0x2e, 0xf3, 0x54, 0x44, 0xc5, 0xd6, 0xda, 0xc1, 0xa7, 0xd5, 0x14, 0x97, 0x71, - 0x95, 0x23, 0x30, 0xa4, 0x57, 0x2a, 0x0d, 0x4a, 0x2e, 0x89, 0x78, 0x19, 0x9a, 0xf1, 0xc4, 0x4c, - 0x71, 0xec, 0x14, 0x24, 0xa4, 0x1d, 0x68, 0x62, 0xa1, 0x96, 0xc0, 0x9c, 0xcf, 0xce, 0x51, 0xfa, - 0xe8, 0xa6, 0xde, 0x92, 0x8d, 0xf8, 0xd2, 0xaa, 0xa3, 0xb5, 0x0e, 0xf4, 0xfa, 0xb0, 0x3d, 0xa1, - 0xa6, 0xaa, 0x8e, 0x77, 0x82, 0x93, 0x7f, 0x06, 0xd3, 0x6b, 0xf0, 0x40, 0x52, 0x99, 0x85, 0x84, - 0x69, 0xa3, 0x7f, 0x50, 0x04, 0x3f, 0x0d, 0x3f, 0x1a, 0x72, 0x86, 0x39, 0x31, 0x2f, 0xf4, 0x55, - 0x0f, 0x39, 0xf6, 0xcb, 0x08, 0x24, 0xa4, 0x18, 0x13, 0x45, 0xac, 0xae, 0xbb, 0x9b, 0x8c, 0x2e, - 0x3e, 0xdd, 0x97, 0x8d, 0xa8, 0xec, 0x99, 0xca, 0xb1, 0x9a, 0xb1, 0x98, 0x0b, 0x08, 0x39, 0x7d, - 0xa6, 0xf3, 0x6a, 0x12, 0xbd, 0xcc, 0x0a, 0x5c, 0xbb, 0x56, 0xc3, 0x99, 0x74, 0xe4, 0xbc, 0x0a, - 0xf9, 0x8c, 0x10, 0xd3, 0x73, 0x71, 0xb7, 0xa1, 0x57, 0xcd, 0x80, 0x6e, 0x8c, 0xe9, 0x66, 0x65, - 0x83, 0xa7, 0x5c, 0x80, 0xfd, 0x92, 0xb7, 0x4c, 0x5c, 0x1d, 0x8b, 0xe7, 0x72, 0x0b, 0xd4, 0xcf, - 0x4e, 0xbb, 0xf6, 0x09, 0x85, 0x59, 0xd1, 0x2e, 0xb1, 0xd3, 0xa7, 0xb1, 0x90, 0xb5, 0x6b, 0xed, - 0x96, 0x98, 0xce, 0xb6, 0xed, 0xbb, 0x9c, 0xbb, 0x22, 0xf7, 0x42, 0xab, 0xa8, 0x78, 0xba, 0x2f, - 0x3a, 0xb7, 0x3c, 0xfd, 0x5c, 0xdf, 0xd8, 0x1c, 0xc7, 0x2d, 0x4b, 0x0b, 0xaa, 0x64, 0xc3, 0x24, - 0x06, 0xb5, 0x0e, 0x3c, 0x75, 0x25, 0xdc, 0x50, 0xa9, 0xba, 0x9b, 0xcd, 0xf5, 0x09, 0x7c, 0xc3, - 0x64, 0xc5, 0xae, 0xd8, 0xad, 0xcf, 0x19, 0xf4, 0x89, 0x3d, 0xb0, 0x3b, 0xf1, 0x49, 0x23, 0xe9, - 0x49, 0xc7, 0x42, 0xbf, 0x7f, 0x14, 0x16, 0x61, 0x44, 0x28, 0x6b, 0xec, 0x4c, 0x95, 0x97, 0xa0, - 0xca, 0x8e, 0x1b, 0xf2, 0xdc, 0x0b, 0x6f, 0xb0, 0x94, 0xa0, 0x0e, 0x0b, 0x28, 0x6d, 0xe3, 0x45, - 0x6a, 0x41, 0x85, 0xcb, 0x02, 0x7c, 0xdc, 0x87, 0x71, 0xcb, 0xbd, 0x33, 0xe3, 0x4b, 0x82, 0x71, - 0xc4, 0xc7, 0xb8, 0x22, 0xa0, 0x85, 0x19, 0x18, 0xdc, 0x0d, 0xd7, 0xcf, 0x05, 0x57, 0x9a, 0xf8, - 0x49, 0xe6, 0x60, 0x88, 0x91, 0x18, 0x4d, 0xc7, 0xb5, 0x6b, 0x2c, 0x40, 0xec, 0x4c, 0xf3, 0x8b, - 0x37, 0xb8, 0x53, 0x65, 0x28, 0x6c, 0xc6, 0x43, 0x15, 0xee, 0x86, 0x51, 0x2a, 0x61, 0x6b, 0xd0, - 0xcf, 0x16, 0x7e, 0x84, 0x90, 0xfb, 0xd5, 0x03, 0xdc, 0xf7, 0x46, 0x3c, 0x02, 0x1f, 0xaf, 0x6f, - 0x26, 0x2a, 0xc4, 0xc5, 0xd8, 0x86, 0xfb, 0x3f, 0xd3, 0x54, 0x76, 0xfc, 0xc6, 0x90, 0x7b, 0xe4, - 0xad, 0xe0, 0x4c, 0xcc, 0x71, 0xe4, 0x94, 0x69, 0x16, 0xd6, 0x60, 0x5f, 0x97, 0x99, 0xed, 0x81, - 0xf3, 0x51, 0xc1, 0x39, 0xda, 0x31, 0xbb, 0x94, 0x76, 0x19, 0xa4, 0xdc, 0x9b, 0x8f, 0x1e, 0x38, - 0x1f, 0x13, 0x9c, 0x8a, 0xc0, 0xca, 0x69, 0xa1, 0x8c, 0xa7, 0x60, 0x18, 0x77, 0xea, 0xeb, 0xb6, - 0x23, 0xf6, 0xbd, 0x3d, 0xd0, 0x3d, 0x2e, 0xe8, 0x86, 0x04, 0x90, 0xed, 0x82, 0x29, 0xd7, 0x6d, - 0x90, 0xd8, 0xc0, 0x0d, 0x50, 0x0f, 0x14, 0x4f, 0x08, 0x8a, 0x01, 0xaa, 0x4f, 0xa1, 0x53, 0x90, - 0xae, 0xd8, 0x22, 0x0c, 0x87, 0xc3, 0x9f, 0x14, 0xf0, 0x94, 0xc4, 0x08, 0x8a, 0xba, 0x5d, 0x6f, - 0x9a, 0x34, 0x46, 0x87, 0x53, 0x7c, 0x45, 0x52, 0x48, 0x8c, 0xa0, 0xd8, 0x85, 0x59, 0xbf, 0x2a, - 0x29, 0x1c, 0x9f, 0x3d, 0xef, 0xa4, 0x67, 0xbd, 0xe6, 0x96, 0x6d, 0xf5, 0xd2, 0x89, 0xa7, 0x04, - 0x03, 0x08, 0x08, 0x25, 0xb8, 0x1d, 0x92, 0xbd, 0x4e, 0xc4, 0xd7, 0x04, 0x3c, 0x41, 0xe4, 0x0c, - 0xe0, 0x3a, 0x93, 0x41, 0x86, 0x7e, 0x5b, 0x09, 0xa7, 0xf8, 0xba, 0xa0, 0xc8, 0xf8, 0x60, 0x62, - 0x18, 0x2e, 0x71, 0x5c, 0xdc, 0xaa, 0xf7, 0x40, 0xf2, 0x8c, 0x1c, 0x86, 0x80, 0x08, 0x53, 0xae, - 0x13, 0xcb, 0xd8, 0xec, 0x8d, 0xe1, 0x59, 0x69, 0x4a, 0x89, 0xa1, 0x14, 0x18, 0x79, 0x6a, 0x7a, - 0x03, 0x37, 0xd7, 0x66, 0x4f, 0xd3, 0xf1, 0x0d, 0xc1, 0x91, 0xf6, 0x40, 0xc2, 0x22, 0x4d, 0x6b, - 0x37, 0x34, 0xcf, 0x49, 0x8b, 0xf8, 0x60, 0x62, 0xe9, 0xe1, 0xce, 0x94, 0x56, 0x12, 0xbb, 0x61, - 0xfb, 0xa6, 0x5c, 0x7a, 0x1c, 0xbb, 0xe0, 0x67, 0xc4, 0x99, 0x76, 0x70, 0x0b, 0xde, 0x0b, 0xcd, - 0xb7, 0xe4, 0x4c, 0x33, 0x00, 0x05, 0x9f, 0x81, 0xfd, 0x5d, 0x43, 0x7d, 0x0f, 0x64, 0xdf, 0x16, - 0x64, 0x7b, 0xbb, 0x84, 0x7b, 0x11, 0x12, 0x76, 0x4b, 0xf9, 0x1d, 0x19, 0x12, 0x48, 0x1b, 0xd7, - 0x32, 0x2d, 0x63, 0x1d, 0x7d, 0x63, 0x77, 0x56, 0xfb, 0xae, 0xb4, 0x1a, 0xc7, 0x06, 0xac, 0xb6, - 0x0a, 0x7b, 0x05, 0xe3, 0xee, 0xe6, 0xf5, 0x79, 0x19, 0x58, 0x39, 0x7a, 0x2d, 0x38, 0xbb, 0x1f, - 0x86, 0x31, 0xcf, 0x9c, 0xb2, 0x02, 0x73, 0x34, 0x7a, 0x30, 0x10, 0xce, 0xfc, 0x82, 0x60, 0x96, - 0x11, 0xdf, 0x2b, 0xe1, 0x9c, 0x05, 0xbd, 0x4e, 0xc9, 0x4f, 0x43, 0x4e, 0x92, 0x37, 0x2d, 0x2c, - 0xf0, 0xed, 0x8a, 0x85, 0xd3, 0x58, 0xee, 0x81, 0xfa, 0x7b, 0x6d, 0x53, 0xb5, 0xe6, 0x83, 0x53, - 0xe6, 0x12, 0x64, 0xbd, 0x7a, 0x43, 0xab, 0xd6, 0xea, 0x36, 0x96, 0x96, 0x3b, 0x33, 0x7e, 0x5f, - 0xce, 0x94, 0x87, 0x2b, 0x31, 0x58, 0xa1, 0x08, 0x19, 0xf6, 0xd8, 0xab, 0x4b, 0xfe, 0x40, 0x10, - 0x0d, 0xb6, 0x50, 0x22, 0x70, 0x60, 0xa5, 0x84, 0x35, 0x6f, 0x2f, 0xf1, 0xef, 0x87, 0x32, 0x70, - 0x08, 0x08, 0xf7, 0xbe, 0xa1, 0xb6, 0x4c, 0xac, 0x84, 0x7d, 0x7e, 0xcd, 0x7d, 0xf4, 0x92, 0x58, - 0xb3, 0xc1, 0x44, 0x5c, 0x98, 0xa7, 0xe6, 0x09, 0xa6, 0xcb, 0x70, 0xb2, 0x07, 0x2e, 0x79, 0x16, - 0x0a, 0x64, 0xcb, 0xc2, 0x49, 0x18, 0x0c, 0xa4, 0xca, 0x70, 0xaa, 0x07, 0x05, 0x55, 0xda, 0x9f, - 0x29, 0x0b, 0x37, 0x43, 0x8c, 0xa6, 0xbd, 0x70, 0xf8, 0xc7, 0x04, 0x9c, 0xa9, 0x17, 0xfe, 0x1f, - 0x12, 0x32, 0xdd, 0x85, 0x43, 0x3f, 0x2e, 0xa0, 0x1e, 0x84, 0xc2, 0x65, 0xaa, 0x0b, 0x87, 0x7f, - 0x42, 0xc2, 0x25, 0x84, 0xc2, 0x7b, 0x37, 0xe1, 0x8b, 0x9f, 0x8a, 0x89, 0x70, 0x25, 0x6d, 0x47, - 0xbf, 0xf9, 0xf0, 0x1c, 0x17, 0x8e, 0x7e, 0x48, 0xbc, 0x5c, 0x22, 0x0a, 0xb7, 0x42, 0xbc, 0x47, - 0x83, 0x7f, 0x5a, 0x40, 0xb9, 0x3e, 0x66, 0x90, 0x94, 0x2f, 0xaf, 0x85, 0xc3, 0x3f, 0x23, 0xe0, - 0x7e, 0x14, 0xed, 0xba, 0xc8, 0x6b, 0xe1, 0x04, 0x9f, 0x95, 0x5d, 0x17, 0x08, 0x6a, 0x36, 0x99, - 0xd2, 0xc2, 0xd1, 0x9f, 0x93, 0x56, 0x97, 0x10, 0x5c, 0x4d, 0x49, 0x2f, 0x4c, 0x85, 0xe3, 0x3f, - 0x2f, 0xf0, 0x2d, 0x0c, 0xb5, 0x80, 0x2f, 0x4c, 0x86, 0x53, 0x7c, 0x41, 0x5a, 0xc0, 0x87, 0xa2, - 0xcb, 0xa8, 0x3d, 0xf5, 0x85, 0x33, 0x7d, 0x51, 0x2e, 0xa3, 0xb6, 0xcc, 0x47, 0x67, 0x93, 0x45, - 0x8b, 0x70, 0x8a, 0x2f, 0xc9, 0xd9, 0x64, 0xfa, 0xb4, 0x1b, 0xed, 0xb9, 0x24, 0x9c, 0xe3, 0xcb, - 0xb2, 0x1b, 0x6d, 0xa9, 0x04, 0x33, 0x93, 0xd2, 0x99, 0x47, 0xc2, 0xf9, 0x1e, 0x16, 0x7c, 0xc3, - 0x1d, 0x69, 0xa4, 0x70, 0x0f, 0xec, 0xed, 0x9e, 0x43, 0xc2, 0x59, 0x1f, 0xb9, 0xd4, 0x56, 0xf5, - 0xfb, 0x53, 0x08, 0xa6, 0xbc, 0xd1, 0x6e, 0xf9, 0x23, 0x9c, 0xf6, 0xd1, 0x4b, 0xc1, 0x8d, 0x9d, - 0x3f, 0x7d, 0x60, 0x85, 0x06, 0xad, 0xd0, 0x1d, 0xce, 0xf5, 0xb8, 0xe0, 0xf2, 0x81, 0xe8, 0xd2, - 0x10, 0x91, 0x3b, 0x1c, 0xff, 0x84, 0x5c, 0x1a, 0x02, 0x81, 0xe0, 0x84, 0xd5, 0x34, 0x4d, 0xea, - 0x1c, 0xca, 0xce, 0x3f, 0x69, 0xc8, 0xfd, 0xe9, 0x5d, 0xb1, 0x30, 0x24, 0x00, 0x63, 0x68, 0x9c, - 0xd4, 0xd6, 0xd1, 0x06, 0x21, 0xc8, 0x3f, 0xbf, 0x2b, 0x03, 0x02, 0xd5, 0xc6, 0xf5, 0x04, 0x7c, - 0xd3, 0xc8, 0xce, 0xb0, 0x43, 0xb0, 0x7f, 0x79, 0x57, 0x7c, 0x66, 0x6d, 0x41, 0x5a, 0x04, 0xfc, - 0xa3, 0xed, 0xce, 0x04, 0x6f, 0x05, 0x09, 0xd8, 0x46, 0xf3, 0x36, 0x18, 0xa0, 0xbf, 0xec, 0x70, - 0xf5, 0x4a, 0x18, 0xfa, 0xaf, 0x02, 0x2d, 0xf5, 0xa9, 0xc1, 0x6a, 0x76, 0x83, 0xe0, 0xad, 0x13, - 0x86, 0xfd, 0x9b, 0xc0, 0x7a, 0x00, 0x0a, 0x36, 0x74, 0xc7, 0xed, 0x65, 0xdc, 0x7f, 0x97, 0x60, - 0x09, 0xa0, 0x9d, 0xa6, 0xf7, 0xe7, 0xc8, 0x56, 0x18, 0xf6, 0x6d, 0xd9, 0x69, 0xa1, 0x8f, 0x01, - 0x30, 0x49, 0x6f, 0xf9, 0x4f, 0x0f, 0x42, 0xc0, 0xff, 0x10, 0xe0, 0x16, 0x62, 0xfa, 0x70, 0xf7, - 0xa3, 0x1d, 0x98, 0xb3, 0xe7, 0x6c, 0x7e, 0xa8, 0x03, 0x0f, 0xc5, 0xe1, 0x00, 0xea, 0x60, 0x7e, - 0x9d, 0x5c, 0xb7, 0xdd, 0xcd, 0x49, 0x0f, 0x2c, 0x4f, 0x64, 0x3c, 0xc1, 0xd8, 0xee, 0xce, 0x72, - 0xf2, 0x3f, 0x8d, 0x42, 0x62, 0x06, 0xc1, 0xfa, 0x05, 0x7d, 0x4b, 0xa9, 0xc3, 0x08, 0xbd, 0xc7, - 0xf5, 0xc8, 0x4e, 0x15, 0x84, 0x77, 0x8b, 0x63, 0xb8, 0xeb, 0x27, 0x5a, 0x6f, 0x95, 0x88, 0x89, - 0x2e, 0xea, 0xec, 0xab, 0xd2, 0x74, 0xf6, 0xe5, 0xdf, 0x1d, 0xdc, 0xf3, 0xc9, 0xdf, 0x1f, 0x4c, - 0x2c, 0x6c, 0xdd, 0x53, 0x35, 0x1d, 0x7a, 0x50, 0x6b, 0x74, 0xea, 0x2a, 0x0f, 0x46, 0xe0, 0x40, - 0x17, 0x8e, 0x45, 0xb1, 0x06, 0xc4, 0xe9, 0xec, 0x4d, 0x3d, 0xbe, 0x5a, 0xc2, 0x78, 0x17, 0xd2, - 0x81, 0xd7, 0x1f, 0x30, 0xb6, 0xd7, 0x1f, 0x3b, 0x03, 0xb9, 0xed, 0x46, 0x42, 0x7f, 0x11, 0x86, - 0x93, 0x2c, 0x7e, 0x25, 0x46, 0x6f, 0x95, 0x23, 0xad, 0x9f, 0xa7, 0xd0, 0x5f, 0x21, 0x0c, 0xfb, - 0x7a, 0x27, 0x5e, 0xc6, 0xdb, 0x0b, 0x7d, 0x27, 0x22, 0x63, 0x3a, 0x1c, 0x0a, 0xeb, 0xe9, 0xbf, - 0xf9, 0x8a, 0xfc, 0x38, 0xf4, 0x73, 0x21, 0xfd, 0x4d, 0x5b, 0xc9, 0x72, 0x6f, 0xb9, 0x89, 0x51, - 0x45, 0xd5, 0x78, 0x95, 0x3e, 0x4c, 0xcf, 0xbf, 0xfc, 0xda, 0xf8, 0x9e, 0x57, 0xf0, 0xfa, 0x0d, - 0x5e, 0xaf, 0xbe, 0x36, 0x1e, 0x79, 0x13, 0xaf, 0xb7, 0xf1, 0x7a, 0x07, 0xaf, 0xfb, 0x5f, 0x1f, - 0x8f, 0x3c, 0x8b, 0xd7, 0xf3, 0x78, 0xfd, 0x18, 0xaf, 0x17, 0xf1, 0x7a, 0x19, 0xaf, 0x57, 0xf0, - 0x7a, 0x15, 0xaf, 0x37, 0x5f, 0x1f, 0xdf, 0xf3, 0x36, 0xfe, 0x7f, 0x07, 0xff, 0xdf, 0xff, 0x87, - 0xf1, 0x3d, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x19, 0x45, 0x03, 0x58, 0xf6, 0x2c, 0x00, 0x00, + // 3793 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8a, 0x21, 0x8a, 0xb1, + 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0xc7, 0xed, 0xf4, 0xbf, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, + 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, + 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xd1, 0x4b, + 0xe7, 0xfe, 0x2d, 0x76, 0x01, 0x90, 0x0b, 0x26, 0xe3, 0xf8, 0x89, 0xb8, 0xe7, 0x9e, 0xef, 0xdb, + 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x09, 0xdf, 0xbf, 0x0c, 0x8b, 0x6d, 0xdb, 0x6e, 0x9b, + 0x78, 0xb5, 0xeb, 0xd8, 0x9e, 0xbd, 0xd7, 0x6b, 0xad, 0x36, 0xb1, 0xab, 0x3b, 0x46, 0xd7, 0xb3, + 0x9d, 0x15, 0x2a, 0x53, 0x66, 0x98, 0xc6, 0x8a, 0xd0, 0x58, 0xda, 0x82, 0xd9, 0xeb, 0x86, 0x89, + 0xd7, 0x7d, 0xc5, 0x06, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x19, 0x26, 0xce, 0x4b, 0x8b, 0xf1, 0xe5, + 0xcc, 0xc5, 0xc7, 0x56, 0x06, 0x40, 0x2b, 0x61, 0x44, 0x9d, 0x88, 0x55, 0x8a, 0x58, 0x7a, 0x2b, + 0x01, 0x73, 0x23, 0x66, 0x15, 0x05, 0x12, 0x16, 0xea, 0x10, 0x46, 0x69, 0x39, 0xad, 0xd2, 0xdf, + 0x4a, 0x1e, 0xa6, 0xba, 0x48, 0xbf, 0x83, 0xda, 0x38, 0x1f, 0xa3, 0x62, 0x31, 0x54, 0x0a, 0x00, + 0x4d, 0xdc, 0xc5, 0x56, 0x13, 0x5b, 0xfa, 0x41, 0x3e, 0xbe, 0x18, 0x5f, 0x4e, 0xab, 0x01, 0x89, + 0xf2, 0x14, 0xcc, 0x76, 0x7b, 0x7b, 0xa6, 0xa1, 0x6b, 0x01, 0x35, 0x58, 0x8c, 0x2f, 0x27, 0x55, + 0x99, 0x4d, 0xac, 0xf7, 0x95, 0x2f, 0xc0, 0xcc, 0x3d, 0x8c, 0xee, 0x04, 0x55, 0x33, 0x54, 0x35, + 0x47, 0xc4, 0x01, 0xc5, 0x32, 0x64, 0x3b, 0xd8, 0x75, 0x51, 0x1b, 0x6b, 0xde, 0x41, 0x17, 0xe7, + 0x13, 0x74, 0xf5, 0x8b, 0x43, 0xab, 0x1f, 0x5c, 0x79, 0x86, 0xa3, 0x76, 0x0e, 0xba, 0x58, 0x29, + 0x41, 0x1a, 0x5b, 0xbd, 0x0e, 0x63, 0x48, 0x1e, 0xe1, 0xbf, 0x8a, 0xd5, 0xeb, 0x0c, 0xb2, 0xa4, + 0x08, 0x8c, 0x53, 0x4c, 0xb9, 0xd8, 0xb9, 0x6b, 0xe8, 0x38, 0x3f, 0x49, 0x09, 0x2e, 0x0c, 0x11, + 0x34, 0xd8, 0xfc, 0x20, 0x87, 0xc0, 0x29, 0x65, 0x48, 0xe3, 0x17, 0x3c, 0x6c, 0xb9, 0x86, 0x6d, + 0xe5, 0xa7, 0x28, 0xc9, 0xe3, 0x23, 0x76, 0x11, 0x9b, 0xcd, 0x41, 0x8a, 0x3e, 0x4e, 0xb9, 0x02, + 0x53, 0x76, 0xd7, 0x33, 0x6c, 0xcb, 0xcd, 0xa7, 0x16, 0xa5, 0xe5, 0xcc, 0xc5, 0x0f, 0x8d, 0x0c, + 0x84, 0x1a, 0xd3, 0x51, 0x85, 0xb2, 0x52, 0x05, 0xd9, 0xb5, 0x7b, 0x8e, 0x8e, 0x35, 0xdd, 0x6e, + 0x62, 0xcd, 0xb0, 0x5a, 0x76, 0x3e, 0x4d, 0x09, 0xce, 0x0d, 0x2f, 0x84, 0x2a, 0x96, 0xed, 0x26, + 0xae, 0x5a, 0x2d, 0x5b, 0xcd, 0xb9, 0xa1, 0xb1, 0x72, 0x0a, 0x26, 0xdd, 0x03, 0xcb, 0x43, 0x2f, + 0xe4, 0xb3, 0x34, 0x42, 0xf8, 0x68, 0xe9, 0xff, 0x92, 0x30, 0x33, 0x4e, 0x88, 0x5d, 0x83, 0x64, + 0x8b, 0xac, 0x32, 0x1f, 0x3b, 0x89, 0x0f, 0x18, 0x26, 0xec, 0xc4, 0xc9, 0x1f, 0xd1, 0x89, 0x25, + 0xc8, 0x58, 0xd8, 0xf5, 0x70, 0x93, 0x45, 0x44, 0x7c, 0xcc, 0x98, 0x02, 0x06, 0x1a, 0x0e, 0xa9, + 0xc4, 0x8f, 0x14, 0x52, 0x37, 0x61, 0xc6, 0x37, 0x49, 0x73, 0x90, 0xd5, 0x16, 0xb1, 0xb9, 0x1a, + 0x65, 0xc9, 0x4a, 0x45, 0xe0, 0x54, 0x02, 0x53, 0x73, 0x38, 0x34, 0x56, 0xd6, 0x01, 0x6c, 0x0b, + 0xdb, 0x2d, 0xad, 0x89, 0x75, 0x33, 0x9f, 0x3a, 0xc2, 0x4b, 0x35, 0xa2, 0x32, 0xe4, 0x25, 0x9b, + 0x49, 0x75, 0x53, 0x79, 0xb6, 0x1f, 0x6a, 0x53, 0x47, 0x44, 0xca, 0x16, 0x3b, 0x64, 0x43, 0xd1, + 0xb6, 0x0b, 0x39, 0x07, 0x93, 0xb8, 0xc7, 0x4d, 0xbe, 0xb2, 0x34, 0x35, 0x62, 0x25, 0x72, 0x65, + 0x2a, 0x87, 0xb1, 0x85, 0x4d, 0x3b, 0xc1, 0xa1, 0xf2, 0x61, 0xf0, 0x05, 0x1a, 0x0d, 0x2b, 0xa0, + 0x59, 0x28, 0x2b, 0x84, 0xdb, 0xa8, 0x83, 0x17, 0xae, 0x42, 0x2e, 0xec, 0x1e, 0x65, 0x1e, 0x92, + 0xae, 0x87, 0x1c, 0x8f, 0x46, 0x61, 0x52, 0x65, 0x03, 0x45, 0x86, 0x38, 0xb6, 0x9a, 0x34, 0xcb, + 0x25, 0x55, 0xf2, 0x73, 0xe1, 0x19, 0x98, 0x0e, 0x3d, 0x7e, 0x5c, 0xe0, 0xd2, 0x17, 0x26, 0x61, + 0x7e, 0x54, 0xcc, 0x8d, 0x0c, 0xff, 0x53, 0x30, 0x69, 0xf5, 0x3a, 0x7b, 0xd8, 0xc9, 0xc7, 0x29, + 0x03, 0x1f, 0x29, 0x25, 0x48, 0x9a, 0x68, 0x0f, 0x9b, 0xf9, 0xc4, 0xa2, 0xb4, 0x9c, 0xbb, 0xf8, + 0xd4, 0x58, 0x51, 0xbd, 0xb2, 0x49, 0x20, 0x2a, 0x43, 0x2a, 0x9f, 0x84, 0x04, 0x4f, 0x71, 0x84, + 0xe1, 0xc9, 0xf1, 0x18, 0x48, 0x2c, 0xaa, 0x14, 0xa7, 0x9c, 0x85, 0x34, 0xf9, 0xcb, 0x7c, 0x3b, + 0x49, 0x6d, 0x4e, 0x11, 0x01, 0xf1, 0xab, 0xb2, 0x00, 0x29, 0x1a, 0x66, 0x4d, 0x2c, 0x4a, 0x83, + 0x3f, 0x26, 0x1b, 0xd3, 0xc4, 0x2d, 0xd4, 0x33, 0x3d, 0xed, 0x2e, 0x32, 0x7b, 0x98, 0x06, 0x4c, + 0x5a, 0xcd, 0x72, 0xe1, 0x67, 0x88, 0x4c, 0x39, 0x07, 0x19, 0x16, 0x95, 0x86, 0xd5, 0xc4, 0x2f, + 0xd0, 0xec, 0x93, 0x54, 0x59, 0xa0, 0x56, 0x89, 0x84, 0x3c, 0xfe, 0xb6, 0x6b, 0x5b, 0x62, 0x6b, + 0xe9, 0x23, 0x88, 0x80, 0x3e, 0xfe, 0x99, 0xc1, 0xc4, 0xf7, 0xe8, 0xe8, 0xe5, 0x0d, 0xc6, 0xe2, + 0xd2, 0x37, 0x63, 0x90, 0xa0, 0xe7, 0x6d, 0x06, 0x32, 0x3b, 0xb7, 0xea, 0x15, 0x6d, 0xbd, 0xb6, + 0xbb, 0xb6, 0x59, 0x91, 0x25, 0x25, 0x07, 0x40, 0x05, 0xd7, 0x37, 0x6b, 0xa5, 0x1d, 0x39, 0xe6, + 0x8f, 0xab, 0xdb, 0x3b, 0x57, 0x2e, 0xc9, 0x71, 0x1f, 0xb0, 0xcb, 0x04, 0x89, 0xa0, 0xc2, 0xd3, + 0x17, 0xe5, 0xa4, 0x22, 0x43, 0x96, 0x11, 0x54, 0x6f, 0x56, 0xd6, 0xaf, 0x5c, 0x92, 0x27, 0xc3, + 0x92, 0xa7, 0x2f, 0xca, 0x53, 0xca, 0x34, 0xa4, 0xa9, 0x64, 0xad, 0x56, 0xdb, 0x94, 0x53, 0x3e, + 0x67, 0x63, 0x47, 0xad, 0x6e, 0x6f, 0xc8, 0x69, 0x9f, 0x73, 0x43, 0xad, 0xed, 0xd6, 0x65, 0xf0, + 0x19, 0xb6, 0x2a, 0x8d, 0x46, 0x69, 0xa3, 0x22, 0x67, 0x7c, 0x8d, 0xb5, 0x5b, 0x3b, 0x95, 0x86, + 0x9c, 0x0d, 0x99, 0xf5, 0xf4, 0x45, 0x79, 0xda, 0x7f, 0x44, 0x65, 0x7b, 0x77, 0x4b, 0xce, 0x29, + 0xb3, 0x30, 0xcd, 0x1e, 0x21, 0x8c, 0x98, 0x19, 0x10, 0x5d, 0xb9, 0x24, 0xcb, 0x7d, 0x43, 0x18, + 0xcb, 0x6c, 0x48, 0x70, 0xe5, 0x92, 0xac, 0x2c, 0x95, 0x21, 0x49, 0xa3, 0x4b, 0x51, 0x20, 0xb7, + 0x59, 0x5a, 0xab, 0x6c, 0x6a, 0xb5, 0xfa, 0x4e, 0xb5, 0xb6, 0x5d, 0xda, 0x94, 0xa5, 0xbe, 0x4c, + 0xad, 0x7c, 0x7a, 0xb7, 0xaa, 0x56, 0xd6, 0xe5, 0x58, 0x50, 0x56, 0xaf, 0x94, 0x76, 0x2a, 0xeb, + 0x72, 0x7c, 0x49, 0x87, 0xf9, 0x51, 0x79, 0x66, 0xe4, 0xc9, 0x08, 0x6c, 0x71, 0xec, 0x88, 0x2d, + 0xa6, 0x5c, 0x43, 0x5b, 0xfc, 0x65, 0x09, 0xe6, 0x46, 0xe4, 0xda, 0x91, 0x0f, 0x79, 0x0e, 0x92, + 0x2c, 0x44, 0x59, 0xf5, 0x79, 0x62, 0x64, 0xd2, 0xa6, 0x01, 0x3b, 0x54, 0x81, 0x28, 0x2e, 0x58, + 0x81, 0xe3, 0x47, 0x54, 0x60, 0x42, 0x31, 0x64, 0xe4, 0x4b, 0x12, 0xe4, 0x8f, 0xe2, 0x8e, 0x48, + 0x14, 0xb1, 0x50, 0xa2, 0xb8, 0x36, 0x68, 0xc0, 0xf9, 0xa3, 0xd7, 0x30, 0x64, 0xc5, 0xeb, 0x12, + 0x9c, 0x1a, 0xdd, 0xa8, 0x8c, 0xb4, 0xe1, 0x93, 0x30, 0xd9, 0xc1, 0xde, 0xbe, 0x2d, 0x8a, 0xf5, + 0x47, 0x46, 0x94, 0x00, 0x32, 0x3d, 0xe8, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xf8, 0x51, 0xdd, 0x06, + 0xb3, 0x66, 0xc8, 0xd2, 0x97, 0x63, 0xf0, 0xc8, 0x48, 0xf2, 0x91, 0x86, 0x3e, 0x0a, 0x60, 0x58, + 0xdd, 0x9e, 0xc7, 0x0a, 0x32, 0xcb, 0x4f, 0x69, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, 0x9e, 0xe7, + 0xcf, 0xc7, 0xe9, 0x3c, 0x30, 0x11, 0x55, 0xb8, 0xda, 0x37, 0x34, 0x41, 0x0d, 0x2d, 0x1c, 0xb1, + 0xd2, 0xa1, 0x5a, 0xf7, 0x71, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xb9, 0x9e, 0x83, 0x51, 0xc7, + 0xb0, 0xda, 0x34, 0x01, 0xa7, 0x8a, 0xc9, 0x16, 0x32, 0x5d, 0xac, 0xce, 0xb0, 0xe9, 0x86, 0x98, + 0x25, 0x08, 0x5a, 0x65, 0x9c, 0x00, 0x62, 0x32, 0x84, 0x60, 0xd3, 0x3e, 0x62, 0xe9, 0x6b, 0x53, + 0x90, 0x09, 0xb4, 0x75, 0xca, 0x79, 0xc8, 0xde, 0x46, 0x77, 0x91, 0x26, 0x5a, 0x75, 0xe6, 0x89, + 0x0c, 0x91, 0xd5, 0x79, 0xbb, 0xfe, 0x71, 0x98, 0xa7, 0x2a, 0x76, 0xcf, 0xc3, 0x8e, 0xa6, 0x9b, + 0xc8, 0x75, 0xa9, 0xd3, 0x52, 0x54, 0x55, 0x21, 0x73, 0x35, 0x32, 0x55, 0x16, 0x33, 0xca, 0x65, + 0x98, 0xa3, 0x88, 0x4e, 0xcf, 0xf4, 0x8c, 0xae, 0x89, 0x35, 0xf2, 0xf2, 0xe0, 0xd2, 0x44, 0xec, + 0x5b, 0x36, 0x4b, 0x34, 0xb6, 0xb8, 0x02, 0xb1, 0xc8, 0x55, 0xd6, 0xe1, 0x51, 0x0a, 0x6b, 0x63, + 0x0b, 0x3b, 0xc8, 0xc3, 0x1a, 0xfe, 0x5c, 0x0f, 0x99, 0xae, 0x86, 0xac, 0xa6, 0xb6, 0x8f, 0xdc, + 0xfd, 0xfc, 0x3c, 0x21, 0x58, 0x8b, 0xe5, 0x25, 0xf5, 0x0c, 0x51, 0xdc, 0xe0, 0x7a, 0x15, 0xaa, + 0x56, 0xb2, 0x9a, 0x9f, 0x42, 0xee, 0xbe, 0x52, 0x84, 0x53, 0x94, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, + 0x6b, 0xfa, 0x3e, 0xd6, 0xef, 0x68, 0x3d, 0xaf, 0x75, 0x35, 0x7f, 0x36, 0xf8, 0x7c, 0x6a, 0x61, + 0x83, 0xea, 0x94, 0x89, 0xca, 0xae, 0xd7, 0xba, 0xaa, 0x34, 0x20, 0x4b, 0x36, 0xa3, 0x63, 0xbc, + 0x88, 0xb5, 0x96, 0xed, 0xd0, 0xca, 0x92, 0x1b, 0x71, 0xb2, 0x03, 0x1e, 0x5c, 0xa9, 0x71, 0xc0, + 0x96, 0xdd, 0xc4, 0xc5, 0x64, 0xa3, 0x5e, 0xa9, 0xac, 0xab, 0x19, 0xc1, 0x72, 0xdd, 0x76, 0x48, + 0x40, 0xb5, 0x6d, 0xdf, 0xc1, 0x19, 0x16, 0x50, 0x6d, 0x5b, 0xb8, 0xf7, 0x32, 0xcc, 0xe9, 0x3a, + 0x5b, 0xb3, 0xa1, 0x6b, 0xbc, 0xc5, 0x77, 0xf3, 0x72, 0xc8, 0x59, 0xba, 0xbe, 0xc1, 0x14, 0x78, + 0x8c, 0xbb, 0xca, 0xb3, 0xf0, 0x48, 0xdf, 0x59, 0x41, 0xe0, 0xec, 0xd0, 0x2a, 0x07, 0xa1, 0x97, + 0x61, 0xae, 0x7b, 0x30, 0x0c, 0x54, 0x42, 0x4f, 0xec, 0x1e, 0x0c, 0xc2, 0x1e, 0xa7, 0xaf, 0x6d, + 0x0e, 0xd6, 0x91, 0x87, 0x9b, 0xf9, 0xd3, 0x41, 0xed, 0xc0, 0x84, 0xb2, 0x0a, 0xb2, 0xae, 0x6b, + 0xd8, 0x42, 0x7b, 0x26, 0xd6, 0x90, 0x83, 0x2d, 0xe4, 0xe6, 0xcf, 0x05, 0x95, 0x73, 0xba, 0x5e, + 0xa1, 0xb3, 0x25, 0x3a, 0xa9, 0x3c, 0x09, 0xb3, 0xf6, 0xde, 0x6d, 0x9d, 0x45, 0x96, 0xd6, 0x75, + 0x70, 0xcb, 0x78, 0x21, 0xff, 0x18, 0x75, 0xd3, 0x0c, 0x99, 0xa0, 0x71, 0x55, 0xa7, 0x62, 0xe5, + 0x09, 0x90, 0x75, 0x77, 0x1f, 0x39, 0x5d, 0x5a, 0xda, 0xdd, 0x2e, 0xd2, 0x71, 0xfe, 0x71, 0xa6, + 0xca, 0xe4, 0xdb, 0x42, 0x4c, 0x22, 0xdb, 0xbd, 0x67, 0xb4, 0x3c, 0xc1, 0x78, 0x81, 0x45, 0x36, + 0x95, 0x71, 0xb6, 0x9b, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0xc3, 0x4e, 0xd7, 0xc1, 0xa4, 0x89, 0x67, + 0x27, 0x31, 0xff, 0xaf, 0x53, 0x47, 0xb4, 0xe1, 0xbb, 0x41, 0x6d, 0x16, 0x00, 0xea, 0x5c, 0x6f, + 0x58, 0xb8, 0x54, 0x84, 0x6c, 0x30, 0x2e, 0x94, 0x34, 0xb0, 0xc8, 0x90, 0x25, 0x52, 0x63, 0xcb, + 0xb5, 0x75, 0x52, 0x1d, 0x3f, 0x5b, 0x91, 0x63, 0xa4, 0x4a, 0x6f, 0x56, 0x77, 0x2a, 0x9a, 0xba, + 0xbb, 0xbd, 0x53, 0xdd, 0xaa, 0xc8, 0xf1, 0x27, 0xd3, 0xa9, 0xb7, 0xa7, 0xe4, 0xfb, 0xf7, 0xef, + 0xdf, 0x8f, 0x2d, 0x7d, 0x27, 0x06, 0xb9, 0x70, 0x67, 0xac, 0xfc, 0x14, 0x9c, 0x16, 0xaf, 0xb1, + 0x2e, 0xf6, 0xb4, 0x7b, 0x86, 0x43, 0x43, 0xb5, 0x83, 0x58, 0x6f, 0xe9, 0x7b, 0x79, 0x9e, 0x6b, + 0x35, 0xb0, 0xf7, 0xbc, 0xe1, 0x90, 0x40, 0xec, 0x20, 0x4f, 0xd9, 0x84, 0x73, 0x96, 0xad, 0xb9, + 0x1e, 0xb2, 0x9a, 0xc8, 0x69, 0x6a, 0xfd, 0x0b, 0x04, 0x0d, 0xe9, 0x3a, 0x76, 0x5d, 0x9b, 0x95, + 0x08, 0x9f, 0xe5, 0x43, 0x96, 0xdd, 0xe0, 0xca, 0xfd, 0xdc, 0x59, 0xe2, 0xaa, 0x03, 0x11, 0x11, + 0x3f, 0x2a, 0x22, 0xce, 0x42, 0xba, 0x83, 0xba, 0x1a, 0xb6, 0x3c, 0xe7, 0x80, 0xf6, 0x73, 0x29, + 0x35, 0xd5, 0x41, 0xdd, 0x0a, 0x19, 0xbf, 0x7f, 0x7b, 0x10, 0xf4, 0xe3, 0x3f, 0xc5, 0x21, 0x1b, + 0xec, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x13, 0xfe, 0xe1, 0x63, 0x3b, 0xc0, 0x95, + 0x32, 0x49, 0xec, 0xc5, 0x49, 0xd6, 0x69, 0xa9, 0x0c, 0x49, 0x8a, 0x2a, 0x39, 0xd3, 0x98, 0xf5, + 0xef, 0x29, 0x95, 0x8f, 0x94, 0x0d, 0x98, 0xbc, 0xed, 0x52, 0xee, 0x49, 0xca, 0xfd, 0xd8, 0xf1, + 0xdc, 0x37, 0x1a, 0x94, 0x3c, 0x7d, 0xa3, 0xa1, 0x6d, 0xd7, 0xd4, 0xad, 0xd2, 0xa6, 0xca, 0xe1, + 0xca, 0x19, 0x48, 0x98, 0xe8, 0xc5, 0x83, 0x70, 0x09, 0xa0, 0xa2, 0x71, 0x1d, 0x7f, 0x06, 0x12, + 0xf7, 0x30, 0xba, 0x13, 0x4e, 0xbc, 0x54, 0xf4, 0x3e, 0x86, 0xfe, 0x2a, 0x24, 0xa9, 0xbf, 0x14, + 0x00, 0xee, 0x31, 0x79, 0x42, 0x49, 0x41, 0xa2, 0x5c, 0x53, 0x49, 0xf8, 0xcb, 0x90, 0x65, 0x52, + 0xad, 0x5e, 0xad, 0x94, 0x2b, 0x72, 0x6c, 0xe9, 0x32, 0x4c, 0x32, 0x27, 0x90, 0xa3, 0xe1, 0xbb, + 0x41, 0x9e, 0xe0, 0x43, 0xce, 0x21, 0x89, 0xd9, 0xdd, 0xad, 0xb5, 0x8a, 0x2a, 0xc7, 0x82, 0xdb, + 0xeb, 0x42, 0x36, 0xd8, 0xce, 0xfd, 0x64, 0x62, 0xea, 0x6f, 0x24, 0xc8, 0x04, 0xda, 0x33, 0xd2, + 0x18, 0x20, 0xd3, 0xb4, 0xef, 0x69, 0xc8, 0x34, 0x90, 0xcb, 0x83, 0x02, 0xa8, 0xa8, 0x44, 0x24, + 0xe3, 0x6e, 0xda, 0x4f, 0xc4, 0xf8, 0xd7, 0x24, 0x90, 0x07, 0x5b, 0xbb, 0x01, 0x03, 0xa5, 0x0f, + 0xd4, 0xc0, 0x57, 0x25, 0xc8, 0x85, 0xfb, 0xb9, 0x01, 0xf3, 0xce, 0x7f, 0xa0, 0xe6, 0xbd, 0x19, + 0x83, 0xe9, 0x50, 0x17, 0x37, 0xae, 0x75, 0x9f, 0x83, 0x59, 0xa3, 0x89, 0x3b, 0x5d, 0xdb, 0xc3, + 0x96, 0x7e, 0xa0, 0x99, 0xf8, 0x2e, 0x36, 0xf3, 0x4b, 0x34, 0x51, 0xac, 0x1e, 0xdf, 0x27, 0xae, + 0x54, 0xfb, 0xb8, 0x4d, 0x02, 0x2b, 0xce, 0x55, 0xd7, 0x2b, 0x5b, 0xf5, 0xda, 0x4e, 0x65, 0xbb, + 0x7c, 0x4b, 0xdb, 0xdd, 0xfe, 0xe9, 0xed, 0xda, 0xf3, 0xdb, 0xaa, 0x6c, 0x0c, 0xa8, 0xbd, 0x8f, + 0x47, 0xbd, 0x0e, 0xf2, 0xa0, 0x51, 0xca, 0x69, 0x18, 0x65, 0x96, 0x3c, 0xa1, 0xcc, 0xc1, 0xcc, + 0x76, 0x4d, 0x6b, 0x54, 0xd7, 0x2b, 0x5a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xa7, 0xc1, 0x5e, 0x9c, + 0x7d, 0xed, 0x9d, 0xf0, 0xa1, 0x7e, 0x25, 0x0e, 0x73, 0x23, 0x2c, 0x51, 0x4a, 0xbc, 0x67, 0x67, + 0xaf, 0x11, 0x1f, 0x1b, 0xc7, 0xfa, 0x15, 0xd2, 0x15, 0xd4, 0x91, 0xe3, 0xf1, 0x16, 0xff, 0x09, + 0x20, 0x5e, 0xb2, 0x3c, 0xa3, 0x65, 0x60, 0x87, 0xdf, 0x33, 0xb0, 0x46, 0x7e, 0xa6, 0x2f, 0x67, + 0x57, 0x0d, 0x1f, 0x05, 0xa5, 0x6b, 0xbb, 0x86, 0x67, 0xdc, 0xc5, 0x9a, 0x61, 0x89, 0x4b, 0x09, + 0xd2, 0xd8, 0x27, 0x54, 0x59, 0xcc, 0x54, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x1b, 0x0d, 0x68, 0x93, + 0x04, 0x1e, 0x57, 0x65, 0x31, 0xe3, 0x6b, 0x9f, 0x87, 0x6c, 0xd3, 0xee, 0x91, 0x36, 0x89, 0xe9, + 0x91, 0x7a, 0x21, 0xa9, 0x19, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0xbf, 0x0d, 0xc9, 0xaa, 0x19, + 0x26, 0x63, 0x2a, 0x17, 0x60, 0x06, 0xb5, 0xdb, 0x0e, 0x21, 0x17, 0x44, 0xac, 0x33, 0xcf, 0xf9, + 0x62, 0xaa, 0xb8, 0x70, 0x03, 0x52, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0x68, 0x5d, 0x76, 0x27, + 0x15, 0x5b, 0x4e, 0xab, 0x29, 0x4b, 0x4c, 0x9e, 0x87, 0xac, 0xe1, 0x6a, 0xfd, 0xcb, 0xd1, 0xd8, + 0x62, 0x6c, 0x39, 0xa5, 0x66, 0x0c, 0xd7, 0xbf, 0x0d, 0x5b, 0x7a, 0x3d, 0x06, 0xb9, 0xf0, 0xe5, + 0xae, 0xb2, 0x0e, 0x29, 0xd3, 0xd6, 0x11, 0x0d, 0x2d, 0xf6, 0x65, 0x61, 0x39, 0xe2, 0x3e, 0x78, + 0x65, 0x93, 0xeb, 0xab, 0x3e, 0x72, 0xe1, 0x1f, 0x24, 0x48, 0x09, 0xb1, 0x72, 0x0a, 0x12, 0x5d, + 0xe4, 0xed, 0x53, 0xba, 0xe4, 0x5a, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xb7, 0x8b, 0x2c, 0x1a, + 0x02, 0x5c, 0x4e, 0xc6, 0x64, 0x5f, 0x4d, 0x8c, 0x9a, 0xb4, 0xed, 0xb7, 0x3b, 0x1d, 0x6c, 0x79, + 0xae, 0xd8, 0x57, 0x2e, 0x2f, 0x73, 0xb1, 0xf2, 0x14, 0xcc, 0x7a, 0x0e, 0x32, 0xcc, 0x90, 0x6e, + 0x82, 0xea, 0xca, 0x62, 0xc2, 0x57, 0x2e, 0xc2, 0x19, 0xc1, 0xdb, 0xc4, 0x1e, 0xd2, 0xf7, 0x71, + 0xb3, 0x0f, 0x9a, 0xa4, 0x37, 0x87, 0xa7, 0xb9, 0xc2, 0x3a, 0x9f, 0x17, 0xd8, 0xa5, 0xef, 0x49, + 0x30, 0x2b, 0x5e, 0x54, 0x9a, 0xbe, 0xb3, 0xb6, 0x00, 0x90, 0x65, 0xd9, 0x5e, 0xd0, 0x5d, 0xc3, + 0xa1, 0x3c, 0x84, 0x5b, 0x29, 0xf9, 0x20, 0x35, 0x40, 0xb0, 0xd0, 0x01, 0xe8, 0xcf, 0x1c, 0xe9, + 0xb6, 0x73, 0x90, 0xe1, 0x37, 0xf7, 0xf4, 0xf3, 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, + 0xca, 0x3c, 0x24, 0xf7, 0x70, 0xdb, 0xb0, 0xf8, 0x7d, 0x22, 0x1b, 0x88, 0x5b, 0xca, 0x84, 0x7f, + 0x4b, 0xb9, 0x76, 0x13, 0xe6, 0x74, 0xbb, 0x33, 0x68, 0xee, 0x9a, 0x3c, 0xf0, 0x7a, 0xed, 0x7e, + 0x4a, 0xfa, 0x2c, 0xf4, 0x5b, 0xcc, 0x2f, 0xc7, 0xe2, 0x1b, 0xf5, 0xb5, 0xaf, 0xc6, 0x16, 0x36, + 0x18, 0xae, 0x2e, 0x96, 0xa9, 0xe2, 0x96, 0x89, 0x75, 0x62, 0x3a, 0xfc, 0xe0, 0x23, 0xf0, 0xb1, + 0xb6, 0xe1, 0xed, 0xf7, 0xf6, 0x56, 0x74, 0xbb, 0xb3, 0xda, 0xb6, 0xdb, 0x76, 0xff, 0x73, 0x17, + 0x19, 0xd1, 0x01, 0xfd, 0xc5, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x42, 0xe4, 0xf7, 0xb1, 0xe2, 0x36, + 0xcc, 0x71, 0x65, 0x8d, 0xde, 0xb9, 0xb3, 0x57, 0x03, 0xe5, 0xd8, 0x7b, 0x97, 0xfc, 0x37, 0xde, + 0xa2, 0xb5, 0x5a, 0x9d, 0xe5, 0x50, 0x32, 0xc7, 0x5e, 0x20, 0x8a, 0x2a, 0x3c, 0x12, 0xe2, 0x63, + 0xe7, 0x12, 0x3b, 0x11, 0x8c, 0xdf, 0xe1, 0x8c, 0x73, 0x01, 0xc6, 0x06, 0x87, 0x16, 0xcb, 0x30, + 0x7d, 0x12, 0xae, 0xbf, 0xe3, 0x5c, 0x59, 0x1c, 0x24, 0xd9, 0x80, 0x19, 0x4a, 0xa2, 0xf7, 0x5c, + 0xcf, 0xee, 0xd0, 0xa4, 0x77, 0x3c, 0xcd, 0xdf, 0xbf, 0xc5, 0x0e, 0x4a, 0x8e, 0xc0, 0xca, 0x3e, + 0xaa, 0x58, 0x04, 0xfa, 0x99, 0xa1, 0x89, 0x75, 0x33, 0x82, 0xe1, 0x0d, 0x6e, 0x88, 0xaf, 0x5f, + 0xfc, 0x0c, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x89, 0xbe, 0x65, 0xca, 0x7f, 0xef, 0x25, + 0x76, 0x16, 0xe7, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x5d, 0x6c, 0x63, 0xcf, 0xc3, 0x8e, 0xab, 0x21, + 0x73, 0x94, 0x79, 0x81, 0xd7, 0xf4, 0xfc, 0x17, 0xdf, 0x09, 0xef, 0xe2, 0x06, 0x43, 0x96, 0x4c, + 0xb3, 0xb8, 0x0b, 0xa7, 0x47, 0x44, 0xc5, 0x18, 0x9c, 0xaf, 0x70, 0xce, 0xf9, 0xa1, 0xc8, 0x20, + 0xb4, 0x75, 0x10, 0x72, 0x7f, 0x2f, 0xc7, 0xe0, 0xfc, 0x1d, 0xce, 0xa9, 0x70, 0xac, 0xd8, 0x52, + 0xc2, 0x78, 0x03, 0x66, 0xef, 0x62, 0x67, 0xcf, 0x76, 0xf9, 0xd5, 0xc8, 0x18, 0x74, 0xaf, 0x72, + 0xba, 0x19, 0x0e, 0xa4, 0x77, 0x25, 0x84, 0xeb, 0x59, 0x48, 0xb5, 0x90, 0x8e, 0xc7, 0xa0, 0xf8, + 0x12, 0xa7, 0x98, 0x22, 0xfa, 0x04, 0x5a, 0x82, 0x6c, 0xdb, 0xe6, 0x65, 0x29, 0x1a, 0xfe, 0x1a, + 0x87, 0x67, 0x04, 0x86, 0x53, 0x74, 0xed, 0x6e, 0xcf, 0x24, 0x35, 0x2b, 0x9a, 0xe2, 0x77, 0x05, + 0x85, 0xc0, 0x70, 0x8a, 0x13, 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x1b, 0xf0, 0xe7, 0x73, 0x90, 0xb1, + 0x2d, 0xf3, 0xc0, 0xb6, 0xc6, 0x31, 0xe2, 0xf7, 0x39, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0xe9, + 0x71, 0x37, 0xe2, 0x0f, 0xde, 0x11, 0xc7, 0x43, 0xec, 0xc0, 0x06, 0xcc, 0x88, 0x04, 0x65, 0xd8, + 0xd6, 0x18, 0x14, 0x7f, 0xc8, 0x29, 0x72, 0x01, 0x18, 0x5f, 0x86, 0x87, 0x5d, 0xaf, 0x8d, 0xc7, + 0x21, 0x79, 0x5d, 0x2c, 0x83, 0x43, 0xb8, 0x2b, 0xf7, 0xb0, 0xa5, 0xef, 0x8f, 0xc7, 0xf0, 0x15, + 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0xee, 0x20, 0xc7, 0xdd, 0x47, 0xe6, 0x58, 0xdb, 0xf1, + 0x47, 0x9c, 0x23, 0xeb, 0x83, 0xb8, 0x47, 0x7a, 0xd6, 0x49, 0x68, 0xbe, 0x2a, 0x3c, 0x12, 0x80, + 0xf1, 0xa3, 0xe7, 0x7a, 0xf4, 0x02, 0xea, 0x24, 0x6c, 0x5f, 0x13, 0x47, 0x8f, 0x61, 0xb7, 0x82, + 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0x2f, 0x8e, 0x45, 0xf3, 0xc7, 0x62, 0xa7, 0x29, 0x80, 0x80, 0x6f, + 0xc1, 0x99, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x3f, 0xe1, 0x64, 0xa7, 0x46, 0x94, 0x0a, 0x9e, 0x12, + 0x4e, 0x4a, 0xf9, 0xa7, 0x22, 0x25, 0xe0, 0x01, 0xae, 0x3a, 0x79, 0x51, 0x70, 0x51, 0xeb, 0x64, + 0x5e, 0xfb, 0x33, 0xe1, 0x35, 0x86, 0x0d, 0x79, 0x6d, 0x07, 0x4e, 0x71, 0xc6, 0x93, 0xed, 0xeb, + 0xd7, 0x45, 0x62, 0x65, 0xe8, 0xdd, 0xf0, 0xee, 0xfe, 0x0c, 0x2c, 0xf8, 0xee, 0x14, 0x1d, 0xa9, + 0xab, 0x75, 0x50, 0x77, 0x0c, 0xe6, 0x6f, 0x70, 0x66, 0x91, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0x42, + 0x5d, 0x42, 0x7e, 0x13, 0xf2, 0x82, 0xbc, 0x67, 0x39, 0x58, 0xb7, 0xdb, 0x96, 0xf1, 0x22, 0x6e, + 0x8e, 0x41, 0xfd, 0xe7, 0x03, 0x5b, 0xb5, 0x1b, 0x80, 0x13, 0xe6, 0x2a, 0xc8, 0x7e, 0xaf, 0xa2, + 0x19, 0x9d, 0xae, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0x21, 0x76, 0xca, 0xc7, 0x55, 0x29, 0xac, 0x58, + 0x81, 0x1c, 0x1d, 0x8e, 0x1b, 0x92, 0x7f, 0xc9, 0x89, 0xa6, 0xfb, 0x28, 0x9e, 0x38, 0x74, 0xbb, + 0xd3, 0x45, 0xce, 0x38, 0xf9, 0xef, 0xaf, 0x44, 0xe2, 0xe0, 0x10, 0x9e, 0x38, 0xbc, 0x83, 0x2e, + 0x26, 0xd5, 0x7e, 0x0c, 0x86, 0x6f, 0x8a, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x63, 0x50, + 0xfc, 0xb5, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xe9, 0x7e, 0xa1, 0x75, 0x70, 0xdb, 0x70, 0x3d, 0x87, + 0xf5, 0xc1, 0xc7, 0x53, 0x7d, 0xeb, 0x9d, 0x70, 0x13, 0xa6, 0x06, 0xa0, 0xc5, 0x1b, 0x30, 0x33, + 0xd0, 0x62, 0x28, 0x51, 0xff, 0xb3, 0x90, 0xff, 0xd9, 0xf7, 0x78, 0x32, 0x0a, 0x77, 0x18, 0xc5, + 0x4d, 0xb2, 0xef, 0xe1, 0x3e, 0x20, 0x9a, 0xec, 0xa5, 0xf7, 0xfc, 0xad, 0x0f, 0xb5, 0x01, 0xc5, + 0xeb, 0x30, 0x1d, 0xea, 0x01, 0xa2, 0xa9, 0x3e, 0xcf, 0xa9, 0xb2, 0xc1, 0x16, 0xa0, 0x78, 0x19, + 0x12, 0xa4, 0x9e, 0x47, 0xc3, 0x7f, 0x8e, 0xc3, 0xa9, 0x7a, 0xf1, 0x13, 0x90, 0x12, 0x75, 0x3c, + 0x1a, 0xfa, 0xf3, 0x1c, 0xea, 0x43, 0x08, 0x5c, 0xd4, 0xf0, 0x68, 0xf8, 0x2f, 0x08, 0xb8, 0x80, + 0x10, 0xf8, 0xf8, 0x2e, 0xfc, 0xf6, 0x2f, 0x25, 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x06, 0x53, 0xbc, + 0x78, 0x47, 0xa3, 0x5f, 0xe6, 0x0f, 0x17, 0x88, 0xe2, 0x33, 0x90, 0x1c, 0xd3, 0xe1, 0xbf, 0xcc, + 0xa1, 0x4c, 0xbf, 0x58, 0x86, 0x4c, 0xa0, 0x60, 0x47, 0xc3, 0x7f, 0x85, 0xc3, 0x83, 0x28, 0x62, + 0x3a, 0x2f, 0xd8, 0xd1, 0x04, 0xbf, 0x2a, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xa3, 0xd1, + 0xbf, 0x26, 0xbc, 0x2e, 0x20, 0xc5, 0xe7, 0x20, 0xed, 0xe7, 0xdf, 0x68, 0xfc, 0xaf, 0x73, 0x7c, + 0x1f, 0x43, 0x3c, 0x10, 0xc8, 0xff, 0xd1, 0x14, 0xbf, 0x21, 0x3c, 0x10, 0x40, 0x91, 0x63, 0x34, + 0x58, 0xd3, 0xa3, 0x99, 0x7e, 0x53, 0x1c, 0xa3, 0x81, 0x92, 0x4e, 0x76, 0x93, 0xa6, 0xc1, 0x68, + 0x8a, 0xdf, 0x12, 0xbb, 0x49, 0xf5, 0x89, 0x19, 0x83, 0x45, 0x32, 0x9a, 0xe3, 0xb7, 0x85, 0x19, + 0x03, 0x35, 0xb2, 0x58, 0x07, 0x65, 0xb8, 0x40, 0x46, 0xf3, 0x7d, 0x81, 0xf3, 0xcd, 0x0e, 0xd5, + 0xc7, 0xe2, 0xf3, 0x70, 0x6a, 0x74, 0x71, 0x8c, 0x66, 0xfd, 0xe2, 0x7b, 0x03, 0xaf, 0x33, 0xc1, + 0xda, 0x58, 0xdc, 0xe9, 0x67, 0xd9, 0x60, 0x61, 0x8c, 0xa6, 0x7d, 0xe5, 0xbd, 0x70, 0xa2, 0x0d, + 0xd6, 0xc5, 0x62, 0x09, 0xa0, 0x5f, 0x93, 0xa2, 0xb9, 0x5e, 0xe5, 0x5c, 0x01, 0x10, 0x39, 0x1a, + 0xbc, 0x24, 0x45, 0xe3, 0xbf, 0x24, 0x8e, 0x06, 0x47, 0x90, 0xa3, 0x21, 0xaa, 0x51, 0x34, 0xfa, + 0x35, 0x71, 0x34, 0x04, 0xa4, 0x78, 0x0d, 0x52, 0x56, 0xcf, 0x34, 0x49, 0x6c, 0x29, 0xc7, 0xff, + 0x1b, 0x51, 0xfe, 0xdf, 0x1e, 0x72, 0xb0, 0x00, 0x14, 0x2f, 0x43, 0x12, 0x77, 0xf6, 0x70, 0x33, + 0x0a, 0xf9, 0xef, 0x0f, 0x45, 0x3e, 0x21, 0xda, 0xc5, 0xe7, 0x00, 0xd8, 0xcb, 0x34, 0xfd, 0x4a, + 0x14, 0x81, 0xfd, 0x8f, 0x87, 0xfc, 0x3f, 0x14, 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x7f, 0x87, 0xe3, + 0x09, 0xde, 0x09, 0x13, 0xd0, 0x17, 0xf0, 0x67, 0x61, 0xea, 0xb6, 0x6b, 0x5b, 0x1e, 0x6a, 0x47, + 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc7, 0x76, 0xb0, 0x87, 0xda, 0x6e, 0x14, 0xf6, + 0xbf, 0x38, 0xd6, 0x07, 0x10, 0xb0, 0x8e, 0x5c, 0x6f, 0x9c, 0x75, 0xff, 0xb7, 0x00, 0x0b, 0x00, + 0x31, 0x9a, 0xfc, 0xbe, 0x83, 0x0f, 0xa2, 0xb0, 0xef, 0x0a, 0xa3, 0xb9, 0x7e, 0xf1, 0x13, 0x90, + 0x26, 0x3f, 0xd9, 0x7f, 0xed, 0x44, 0x80, 0xff, 0x87, 0x83, 0xfb, 0x08, 0xf2, 0x64, 0xd7, 0x6b, + 0x7a, 0x46, 0xb4, 0xb3, 0xff, 0x97, 0xef, 0xb4, 0xd0, 0x2f, 0x96, 0x20, 0xe3, 0x7a, 0xcd, 0x66, + 0x8f, 0x77, 0x34, 0x11, 0xf0, 0x1f, 0x3c, 0xf4, 0x5f, 0x72, 0x7d, 0xcc, 0xda, 0xf9, 0xd1, 0x97, + 0x75, 0xb0, 0x61, 0x6f, 0xd8, 0xec, 0x9a, 0x0e, 0x5e, 0x4e, 0xc2, 0x59, 0xdd, 0xee, 0xec, 0xd9, + 0xee, 0xea, 0x9e, 0xed, 0xed, 0xaf, 0xfa, 0xa6, 0x8b, 0x3b, 0x36, 0x5f, 0xb0, 0x70, 0xb2, 0xdb, + 0xb9, 0xa5, 0xbf, 0x8d, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x07, 0x4a, 0x17, 0xe6, 0xc8, + 0xef, 0x2d, 0xd4, 0xa5, 0x77, 0x3d, 0xfc, 0x70, 0xf1, 0xdb, 0xcf, 0x8f, 0xae, 0xf4, 0x9f, 0x2a, + 0x10, 0x2b, 0x23, 0xd4, 0xe9, 0x57, 0xe3, 0x35, 0xf9, 0x8d, 0x7f, 0x3e, 0x37, 0xf1, 0x8b, 0xff, + 0x72, 0x2e, 0xb5, 0x75, 0xf0, 0xbc, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, 0x3e, 0x2f, 0xc1, + 0xd9, 0x11, 0xf2, 0x6d, 0x7e, 0x02, 0xf9, 0x37, 0x84, 0x4b, 0x63, 0x3e, 0x5a, 0xc0, 0x98, 0x09, + 0xd9, 0xd0, 0xe3, 0x8f, 0x7b, 0xcc, 0xc2, 0x2d, 0xc8, 0x1f, 0xb5, 0x12, 0x45, 0x86, 0xf8, 0x1d, + 0x7c, 0xc0, 0xff, 0x2f, 0x94, 0xfc, 0x54, 0x2e, 0xf4, 0xff, 0xaf, 0x4c, 0x5a, 0xce, 0x5c, 0x9c, + 0x0d, 0x58, 0xc7, 0x1f, 0xc6, 0xe6, 0x8b, 0xb1, 0xab, 0xd2, 0x02, 0x82, 0xc5, 0x28, 0x4b, 0x7f, + 0xcc, 0x47, 0x2c, 0x15, 0x60, 0x92, 0x09, 0x95, 0x79, 0x48, 0x56, 0x2d, 0xef, 0xca, 0x25, 0x4a, + 0x15, 0x57, 0xd9, 0x60, 0x6d, 0xf3, 0x8d, 0x07, 0x85, 0x89, 0xef, 0x3e, 0x28, 0x4c, 0xfc, 0xe3, + 0x83, 0xc2, 0xc4, 0x9b, 0x0f, 0x0a, 0xd2, 0xdb, 0x0f, 0x0a, 0xd2, 0xbb, 0x0f, 0x0a, 0xd2, 0x0f, + 0x1f, 0x14, 0xa4, 0xfb, 0x87, 0x05, 0xe9, 0x2b, 0x87, 0x05, 0xe9, 0xeb, 0x87, 0x05, 0xe9, 0x5b, + 0x87, 0x05, 0xe9, 0xdb, 0x87, 0x05, 0xe9, 0x8d, 0xc3, 0x82, 0xf4, 0xdd, 0xc3, 0x82, 0xf4, 0xe6, + 0x61, 0x41, 0x7a, 0xfb, 0xb0, 0x30, 0xf1, 0xee, 0x61, 0x41, 0xfa, 0xe1, 0x61, 0x61, 0xe2, 0xfe, + 0xf7, 0x0b, 0x13, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x82, 0xb5, 0xa1, 0xe8, 0x30, 0x00, + 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -601,53 +620,40 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.CastMapValueMessage) > 0 { for k := range m.CastMapValueMessage { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.CastMapValueMessage[k] - msgSize := ((*Wilson)(&v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if ((*Wilson)(&v)) != nil { + msgSize = ((*Wilson)(&v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) + } + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(data[i:]) + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) + n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -656,85 +662,88 @@ func (m *Castaway) MarshalTo(data []byte) (int, error) { } if len(m.CastMapValueMessageNullable) > 0 { for k := range m.CastMapValueMessageNullable { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.CastMapValueMessageNullable[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if ((*Wilson)(v)) != nil { + msgSize = ((*Wilson)(v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) } - msgSize := ((*Wilson)(v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + if ((*Wilson)(v)) != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) + n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(*m.Int64)) + i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Castvalue(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Castvalue(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Castvalue(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Castvalue(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCastvalue(data []byte, offset int, v uint64) int { +func encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { @@ -800,7 +809,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -808,43 +817,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -865,8 +874,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -952,8 +962,8 @@ func valueToStringCastvalue(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -965,7 +975,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -993,7 +1003,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1015,7 +1025,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1030,62 +1040,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + if m.CastMapValueMessage == nil { + m.CastMapValueMessage = make(map[int32]MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) + } else { + var mapvalue MyWilson + m.CastMapValueMessage[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -1099,7 +1114,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1121,7 +1136,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1136,66 +1151,71 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + if m.CastMapValueMessageNullable == nil { + m.CastMapValueMessageNullable = make(map[int32]*MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) + } else { + var mapvalue *MyWilson + m.CastMapValueMessageNullable[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCastvalue(data[iNdEx:]) + skippy, err := skipCastvalue(dAtA[iNdEx:]) if err != nil { return err } @@ -1205,7 +1225,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1215,8 +1235,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1228,7 +1248,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1256,7 +1276,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1266,7 +1286,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCastvalue(data[iNdEx:]) + skippy, err := skipCastvalue(dAtA[iNdEx:]) if err != nil { return err } @@ -1276,7 +1296,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1286,8 +1306,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCastvalue(data []byte) (n int, err error) { - l := len(data) +func skipCastvalue(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1298,7 +1318,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1316,7 +1336,7 @@ func skipCastvalue(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1333,7 +1353,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1356,7 +1376,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1367,7 +1387,7 @@ func skipCastvalue(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCastvalue(data[start:]) + next, err := skipCastvalue(dAtA[start:]) if err != nil { return 0, err } @@ -1391,27 +1411,31 @@ var ( ErrIntOverflowCastvalue = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 333 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0x4f, 0xca, 0x2f, 0xc9, 0xd0, 0x4f, 0x4e, 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, - 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, - 0x64, 0x94, 0x26, 0xe9, 0x01, 0x95, 0xeb, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, - 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90, 0x99, 0x8b, 0xc3, 0x19, 0xa8, - 0x39, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, - 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, - 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, - 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, - 0x09, 0x27, 0x63, 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, 0xc6, 0x62, 0x86, 0x5f, 0x69, 0x4e, 0x4e, - 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86, 0x69, 0x83, 0x38, 0x81, - 0x07, 0xc5, 0x7a, 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, 0xb9, 0x24, 0x70, 0xf9, 0x44, 0x48, 0x80, - 0x8b, 0x39, 0x3b, 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, 0xac, 0x41, 0x20, 0xa6, 0x90, 0x3a, 0x17, - 0x2b, 0xd8, 0x2d, 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, 0x88, 0xe4, 0x3a, 0xa8, 0x65, 0x10, 0x79, - 0x2b, 0x26, 0x0b, 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, 0x2e, 0xa5, 0xd0, 0x0a, 0x25, 0x39, 0x2e, - 0x36, 0x88, 0xa0, 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, 0x89, 0x99, 0x09, 0xd8, 0x28, 0xe6, 0x20, - 0xd6, 0x4c, 0x10, 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, 0x86, 0x0b, 0x40, 0x7c, 0x03, 0x88, 0x1f, - 0x3c, 0x94, 0x63, 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63, 0x5c, - 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, 0xe2, 0x13, 0x40, 0x7c, 0x01, 0x88, 0x1f, - 0x00, 0xf1, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x80, 0xf4, 0x0f, 0x20, 0xdd, 0xf0, 0x58, 0x8e, 0x01, - 0x10, 0x00, 0x00, 0xff, 0xff, 0x05, 0x74, 0x6c, 0x99, 0x89, 0x02, 0x00, 0x00, + // 354 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41, + 0x14, 0xc5, 0xf7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0x5a, 0x6c, 0x20, 0xb9, 0x6c, 0x68, + 0xa4, 0xd0, 0xdd, 0x84, 0x10, 0x63, 0x2c, 0x31, 0x16, 0x26, 0x62, 0x41, 0xa1, 0xb1, 0x9c, 0x25, + 0xeb, 0x42, 0x5c, 0x18, 0xc2, 0xce, 0x6a, 0xb6, 0xa3, 0xb0, 0xf2, 0x2f, 0xb1, 0xb4, 0xb4, 0xd4, + 0x8e, 0x92, 0xd2, 0x4a, 0x99, 0xb1, 0xa1, 0xa4, 0xa4, 0x34, 0xcc, 0x8a, 0x1f, 0x09, 0x7e, 0x24, + 0x76, 0xf7, 0x9e, 0xb9, 0xe7, 0xfc, 0xce, 0x90, 0x42, 0x93, 0x75, 0x5c, 0x16, 0x3a, 0x2e, 0xe3, + 0x2d, 0xa7, 0x49, 0x43, 0x7e, 0x46, 0x83, 0xc8, 0xb3, 0x7b, 0x7d, 0xc6, 0x99, 0xf1, 0xf7, 0x55, + 0xc8, 0x6f, 0xf8, 0x6d, 0xde, 0x8a, 0x5c, 0xbb, 0xc9, 0x3a, 0x8e, 0xcf, 0x7c, 0xe6, 0xa8, 0x0b, + 0x37, 0x3a, 0x51, 0x9b, 0x5a, 0xd4, 0x94, 0x38, 0x4b, 0x77, 0x3a, 0xc9, 0xec, 0xd0, 0x90, 0xd3, + 0x73, 0x1a, 0x1b, 0x3d, 0xb2, 0x32, 0x9f, 0xeb, 0xb4, 0x77, 0x38, 0xcf, 0xaa, 0x7b, 0x61, 0x48, + 0x7d, 0xcf, 0x04, 0x4b, 0x2f, 0x67, 0x2b, 0xeb, 0xf6, 0x1b, 0x75, 0xe1, 0xb0, 0x97, 0x9c, 0xef, + 0x76, 0x79, 0x3f, 0xae, 0xe5, 0x86, 0x0f, 0x45, 0xed, 0xf2, 0xb1, 0x98, 0xa9, 0xc7, 0x47, 0xed, + 0x20, 0x64, 0xdd, 0xc6, 0xb2, 0x68, 0xe3, 0x02, 0x48, 0x61, 0x89, 0x7e, 0x10, 0x05, 0x01, 0x75, + 0x03, 0xcf, 0x4c, 0x29, 0x74, 0xf5, 0x87, 0xe8, 0x85, 0x2d, 0xa9, 0xf0, 0xef, 0x03, 0xfe, 0x2b, + 0x4c, 0xfe, 0x98, 0x98, 0x9f, 0xfd, 0xc4, 0xc8, 0x11, 0xfd, 0xd4, 0x8b, 0x4d, 0xb0, 0xa0, 0x9c, + 0x6e, 0xcc, 0x47, 0x63, 0x8d, 0xa4, 0x55, 0x17, 0x33, 0x65, 0x41, 0x39, 0x5b, 0xf9, 0xff, 0xae, + 0xdd, 0x0b, 0x2c, 0x79, 0xdf, 0x4e, 0x6d, 0x41, 0x9e, 0x12, 0xeb, 0xbb, 0xa6, 0xbf, 0x44, 0x94, + 0x90, 0xfc, 0x49, 0x44, 0x63, 0x95, 0xa4, 0xf7, 0xba, 0x7c, 0xb3, 0xaa, 0xa2, 0xf4, 0x46, 0xb2, + 0xd4, 0xf6, 0x87, 0x02, 0xb5, 0x91, 0x40, 0xed, 0x5e, 0xa0, 0x36, 0x16, 0x08, 0x13, 0x81, 0x30, + 0x15, 0x08, 0x33, 0x81, 0x30, 0x90, 0x08, 0x57, 0x12, 0xe1, 0x5a, 0x22, 0xdc, 0x48, 0x84, 0x5b, + 0x89, 0x30, 0x94, 0x08, 0x23, 0x89, 0x30, 0x96, 0x08, 0x13, 0x89, 0xda, 0x54, 0x22, 0xcc, 0x24, + 0x6a, 0x83, 0x27, 0xd4, 0x9e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xe0, 0x74, 0x89, 0x89, 0x02, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto index 557d20f1..15663957 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go index 2ce3ed65..8825badb 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestCastawayMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +101,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +115,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -136,18 +136,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -171,20 +171,20 @@ func TestWilsonMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +203,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +217,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +280,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +297,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +314,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +331,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -350,12 +350,12 @@ func TestCastvalueDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -365,12 +365,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +424,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +460,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go index 9a61ad01..fd9068bb 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go @@ -26,13 +26,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -40,11 +36,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -53,7 +51,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -74,224 +72,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3470 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0x57, - 0xf5, 0x5f, 0xc7, 0x76, 0x62, 0x1f, 0x3b, 0x8e, 0x33, 0x49, 0x77, 0xbd, 0xd9, 0x76, 0xb3, 0xeb, - 0x3e, 0x76, 0xbb, 0x6d, 0x93, 0xfe, 0xf7, 0xdf, 0xc7, 0xd6, 0xfd, 0xff, 0x5b, 0xe5, 0xe1, 0x4d, - 0xbd, 0xca, 0x8b, 0x49, 0xd2, 0xee, 0x96, 0x0f, 0xa3, 0xc9, 0xf8, 0xc6, 0xf1, 0xee, 0x78, 0xc6, - 0x78, 0xc6, 0xbb, 0x9b, 0x7e, 0x2a, 0x6a, 0x01, 0x15, 0x44, 0x79, 0x4a, 0xf4, 0x0d, 0xad, 0x04, - 0x2d, 0xe5, 0xd5, 0xf2, 0x12, 0xe2, 0x53, 0x11, 0x2a, 0xf4, 0x13, 0x2a, 0x7c, 0xe2, 0x03, 0x02, - 0x5a, 0x2a, 0x51, 0xa0, 0x40, 0x91, 0x56, 0xa2, 0x52, 0xbf, 0x70, 0xee, 0x6b, 0x3c, 0x63, 0x3b, - 0x19, 0xa7, 0xa8, 0x94, 0x48, 0xa3, 0xcc, 0x9c, 0x7b, 0x7e, 0xbf, 0xb9, 0xf7, 0xdc, 0x73, 0xcf, - 0x39, 0xf7, 0x8e, 0xe1, 0xa7, 0xff, 0x03, 0x87, 0x2a, 0xb6, 0x5d, 0x31, 0xc9, 0x64, 0xbd, 0x61, - 0xbb, 0xf6, 0x7a, 0x73, 0x63, 0xb2, 0x4c, 0x1c, 0xa3, 0x51, 0xad, 0xbb, 0x76, 0x63, 0x82, 0xc9, - 0x94, 0x21, 0xae, 0x31, 0x21, 0x35, 0xf2, 0x0b, 0x30, 0x7c, 0xb2, 0x6a, 0x92, 0x59, 0x4f, 0x71, - 0x85, 0xb8, 0xca, 0x09, 0x88, 0x6d, 0xa0, 0x30, 0x17, 0x39, 0x14, 0x3d, 0x9a, 0x3a, 0x7e, 0xd5, - 0x44, 0x1b, 0x68, 0x22, 0x88, 0x58, 0xa6, 0x62, 0x95, 0x21, 0xf2, 0x6f, 0xc4, 0x60, 0xa4, 0x4b, - 0xab, 0xa2, 0x40, 0xcc, 0xd2, 0x6b, 0x94, 0x31, 0x72, 0x34, 0xa9, 0xb2, 0x7b, 0x25, 0x07, 0x03, - 0x75, 0xdd, 0x38, 0xa7, 0x57, 0x48, 0xae, 0x8f, 0x89, 0xe5, 0xa3, 0x72, 0x10, 0xa0, 0x4c, 0xea, - 0xc4, 0x2a, 0x13, 0xcb, 0xd8, 0xca, 0x45, 0xb1, 0x17, 0x49, 0xd5, 0x27, 0x51, 0xae, 0x83, 0xe1, - 0x7a, 0x73, 0xdd, 0xac, 0x1a, 0x9a, 0x4f, 0x0d, 0x50, 0x2d, 0xae, 0x66, 0x79, 0xc3, 0x6c, 0x4b, - 0xf9, 0x08, 0x0c, 0x5d, 0x20, 0xfa, 0x39, 0xbf, 0x6a, 0x8a, 0xa9, 0x66, 0xa8, 0xd8, 0xa7, 0x38, - 0x03, 0xe9, 0x1a, 0x71, 0x1c, 0xec, 0x80, 0xe6, 0x6e, 0xd5, 0x49, 0x2e, 0xc6, 0x46, 0x7f, 0xa8, - 0x63, 0xf4, 0xed, 0x23, 0x4f, 0x09, 0xd4, 0x2a, 0x82, 0x94, 0x29, 0x48, 0x12, 0xab, 0x59, 0xe3, - 0x0c, 0xf1, 0x6d, 0xec, 0x57, 0x44, 0x8d, 0x76, 0x96, 0x04, 0x85, 0x09, 0x8a, 0x01, 0x87, 0x34, - 0xce, 0x57, 0x0d, 0x92, 0xeb, 0x67, 0x04, 0x47, 0x3a, 0x08, 0x56, 0x78, 0x7b, 0x3b, 0x87, 0xc4, - 0xe1, 0x50, 0x92, 0xe4, 0xa2, 0x4b, 0x2c, 0xa7, 0x6a, 0x5b, 0xb9, 0x01, 0x46, 0x72, 0x75, 0x97, - 0x59, 0x24, 0x66, 0xb9, 0x9d, 0xa2, 0x85, 0x53, 0x6e, 0x81, 0x01, 0xbb, 0xee, 0xe2, 0x9d, 0x93, - 0x4b, 0xe0, 0xfc, 0xa4, 0x8e, 0x5f, 0xde, 0xd5, 0x11, 0x96, 0xb8, 0x8e, 0x2a, 0x95, 0x95, 0x12, - 0x64, 0x1d, 0xbb, 0xd9, 0x30, 0x88, 0x66, 0xd8, 0x65, 0xa2, 0x55, 0xad, 0x0d, 0x3b, 0x97, 0x64, - 0x04, 0xe3, 0x9d, 0x03, 0x61, 0x8a, 0x33, 0xa8, 0x57, 0x42, 0x35, 0x35, 0xe3, 0x04, 0x9e, 0x95, - 0xbd, 0xd0, 0xef, 0x6c, 0x59, 0xae, 0x7e, 0x31, 0x97, 0x66, 0x1e, 0x22, 0x9e, 0xf2, 0xff, 0x8c, - 0xc3, 0x50, 0x2f, 0x2e, 0x76, 0x3b, 0xc4, 0x37, 0xe8, 0x28, 0xd1, 0xc1, 0x76, 0x61, 0x03, 0x8e, - 0x09, 0x1a, 0xb1, 0xff, 0x3d, 0x1a, 0x71, 0x0a, 0x52, 0x16, 0x71, 0x5c, 0x52, 0xe6, 0x1e, 0x11, - 0xed, 0xd1, 0xa7, 0x80, 0x83, 0x3a, 0x5d, 0x2a, 0xf6, 0x9e, 0x5c, 0xea, 0x34, 0x0c, 0x79, 0x5d, - 0xd2, 0x1a, 0xba, 0x55, 0x91, 0xbe, 0x39, 0x19, 0xd6, 0x93, 0x89, 0xa2, 0xc4, 0xa9, 0x14, 0xa6, - 0x66, 0x48, 0xe0, 0x59, 0x99, 0x05, 0xb0, 0x2d, 0x62, 0x6f, 0xe0, 0xf2, 0x32, 0x4c, 0xf4, 0x93, - 0xee, 0x56, 0x5a, 0xa2, 0x2a, 0x1d, 0x56, 0xb2, 0xb9, 0xd4, 0x30, 0x95, 0xdb, 0x5a, 0xae, 0x36, - 0xb0, 0x8d, 0xa7, 0x2c, 0xf0, 0x45, 0xd6, 0xe1, 0x6d, 0x6b, 0x90, 0x69, 0x10, 0xea, 0xf7, 0x68, - 0x62, 0x3e, 0xb2, 0x24, 0xeb, 0xc4, 0x44, 0xe8, 0xc8, 0x54, 0x01, 0xe3, 0x03, 0x1b, 0x6c, 0xf8, - 0x1f, 0x95, 0x2b, 0xc1, 0x13, 0x68, 0xcc, 0xad, 0x80, 0x45, 0xa1, 0xb4, 0x14, 0x2e, 0xa2, 0x6c, - 0xec, 0x04, 0x64, 0x82, 0xe6, 0x51, 0x46, 0x21, 0xee, 0xb8, 0x7a, 0xc3, 0x65, 0x5e, 0x18, 0x57, - 0xf9, 0x83, 0x92, 0x85, 0x28, 0x06, 0x19, 0x16, 0xe5, 0xe2, 0x2a, 0xbd, 0x1d, 0xbb, 0x15, 0x06, - 0x03, 0xaf, 0xef, 0x15, 0x98, 0x7f, 0xa4, 0x1f, 0x46, 0xbb, 0xf9, 0x5c, 0x57, 0xf7, 0xc7, 0xe5, - 0x83, 0x1e, 0xb0, 0x4e, 0x1a, 0xe8, 0x77, 0x94, 0x41, 0x3c, 0xa1, 0x47, 0xc5, 0x4d, 0x7d, 0x9d, - 0x98, 0xe8, 0x4d, 0x91, 0xa3, 0x99, 0xe3, 0xd7, 0xf5, 0xe4, 0xd5, 0x13, 0xf3, 0x14, 0xa2, 0x72, - 0xa4, 0x72, 0x07, 0xc4, 0x44, 0x88, 0xa3, 0x0c, 0xc7, 0x7a, 0x63, 0xa0, 0xbe, 0xa8, 0x32, 0x9c, - 0x72, 0x00, 0x92, 0xf4, 0x3f, 0xb7, 0x6d, 0x3f, 0xeb, 0x73, 0x82, 0x0a, 0xa8, 0x5d, 0x95, 0x31, - 0x48, 0x30, 0x37, 0x2b, 0x13, 0x99, 0x1a, 0xbc, 0x67, 0x3a, 0x31, 0x65, 0xb2, 0xa1, 0x37, 0x4d, - 0x57, 0x3b, 0xaf, 0x9b, 0x4d, 0xc2, 0x1c, 0x06, 0x27, 0x46, 0x08, 0xef, 0xa6, 0x32, 0x65, 0x1c, - 0x52, 0xdc, 0x2b, 0xab, 0x88, 0xb9, 0xc8, 0xa2, 0x4f, 0x5c, 0xe5, 0x8e, 0x5a, 0xa2, 0x12, 0xfa, - 0xfa, 0xb3, 0x0e, 0xae, 0x05, 0x31, 0xb5, 0xec, 0x15, 0x54, 0xc0, 0x5e, 0x7f, 0x6b, 0x7b, 0xe0, - 0xbb, 0xa2, 0xfb, 0xf0, 0xda, 0x7d, 0x31, 0xff, 0xc3, 0x3e, 0x88, 0xb1, 0xf5, 0x36, 0x04, 0xa9, - 0xd5, 0x33, 0xcb, 0x45, 0x6d, 0x76, 0x69, 0x6d, 0x7a, 0xbe, 0x98, 0x8d, 0x28, 0x19, 0x00, 0x26, - 0x38, 0x39, 0xbf, 0x34, 0xb5, 0x9a, 0xed, 0xf3, 0x9e, 0x4b, 0x8b, 0xab, 0xb7, 0xdc, 0x94, 0x8d, - 0x7a, 0x80, 0x35, 0x2e, 0x88, 0xf9, 0x15, 0xfe, 0xf7, 0x78, 0x36, 0x8e, 0x9e, 0x90, 0xe6, 0x04, - 0xa5, 0xd3, 0xc5, 0x59, 0xd4, 0xe8, 0x0f, 0x4a, 0x50, 0x67, 0x40, 0x19, 0x84, 0x24, 0x93, 0x4c, - 0x2f, 0x2d, 0xcd, 0x67, 0x13, 0x1e, 0xe7, 0xca, 0xaa, 0x5a, 0x5a, 0x9c, 0xcb, 0x26, 0x3d, 0xce, - 0x39, 0x75, 0x69, 0x6d, 0x39, 0x0b, 0x1e, 0xc3, 0x42, 0x71, 0x65, 0x65, 0x6a, 0xae, 0x98, 0x4d, - 0x79, 0x1a, 0xd3, 0x67, 0x56, 0x8b, 0x2b, 0xd9, 0x74, 0xa0, 0x5b, 0xf8, 0x8a, 0x41, 0xef, 0x15, - 0xc5, 0xc5, 0xb5, 0x85, 0x6c, 0x46, 0x19, 0x86, 0x41, 0xfe, 0x0a, 0xd9, 0x89, 0xa1, 0x36, 0x11, - 0xf6, 0x34, 0xdb, 0xea, 0x08, 0x67, 0x19, 0x0e, 0x08, 0x50, 0x43, 0xc9, 0xcf, 0x40, 0x9c, 0x79, - 0x17, 0x7a, 0x71, 0x66, 0x7e, 0x6a, 0xba, 0x38, 0xaf, 0x2d, 0x2d, 0xaf, 0x96, 0x96, 0x16, 0xa7, - 0xe6, 0xd1, 0x76, 0x9e, 0x4c, 0x2d, 0x7e, 0x68, 0xad, 0xa4, 0x16, 0x67, 0xd1, 0x7e, 0x3e, 0xd9, - 0x72, 0x71, 0x6a, 0x15, 0x65, 0xd1, 0xfc, 0x31, 0x18, 0xed, 0x16, 0x67, 0xba, 0xad, 0x8c, 0xfc, - 0x33, 0x11, 0x18, 0xe9, 0x12, 0x32, 0xbb, 0xae, 0xa2, 0x3b, 0x21, 0xce, 0x3d, 0x8d, 0x27, 0x91, - 0x6b, 0xbb, 0xc6, 0x5e, 0xe6, 0x77, 0x1d, 0x89, 0x84, 0xe1, 0xfc, 0x89, 0x34, 0xba, 0x4d, 0x22, - 0xa5, 0x14, 0x1d, 0xee, 0xf4, 0x40, 0x04, 0x72, 0xdb, 0x71, 0x87, 0xac, 0xf7, 0xbe, 0xc0, 0x7a, - 0xbf, 0xbd, 0xbd, 0x03, 0x87, 0xb7, 0x1f, 0x43, 0x47, 0x2f, 0x9e, 0x8d, 0xc0, 0xde, 0xee, 0xf5, - 0x46, 0xd7, 0x3e, 0xdc, 0x01, 0xfd, 0x35, 0xe2, 0x6e, 0xda, 0x32, 0xe7, 0x5e, 0xd3, 0x25, 0x92, - 0xd3, 0xe6, 0x76, 0x5b, 0x09, 0x94, 0x3f, 0x15, 0x44, 0xb7, 0x2b, 0x1a, 0x78, 0x6f, 0x3a, 0x7a, - 0xfa, 0x50, 0x1f, 0x5c, 0xd6, 0x95, 0xbc, 0x6b, 0x47, 0xaf, 0x00, 0xa8, 0x5a, 0xf5, 0xa6, 0xcb, - 0xf3, 0x2a, 0x0f, 0x33, 0x49, 0x26, 0x61, 0x4b, 0x98, 0x86, 0x90, 0xa6, 0xeb, 0xb5, 0x47, 0x59, - 0x3b, 0x70, 0x11, 0x53, 0x38, 0xd1, 0xea, 0x68, 0x8c, 0x75, 0xf4, 0xe0, 0x36, 0x23, 0xed, 0x48, - 0x59, 0x37, 0x42, 0xd6, 0x30, 0xab, 0xc4, 0x72, 0x35, 0xc7, 0x6d, 0x10, 0xbd, 0x56, 0xb5, 0x2a, - 0x2c, 0x8e, 0x26, 0x0a, 0xf1, 0x0d, 0xdd, 0x74, 0x88, 0x3a, 0xc4, 0x9b, 0x57, 0x64, 0x2b, 0x45, - 0xb0, 0x64, 0xd1, 0xf0, 0x21, 0xfa, 0x03, 0x08, 0xde, 0xec, 0x21, 0xf2, 0xbf, 0x1a, 0x80, 0x94, - 0xaf, 0x3a, 0x53, 0x0e, 0x43, 0xfa, 0xac, 0x7e, 0x5e, 0xd7, 0x64, 0xc5, 0xcd, 0x2d, 0x91, 0xa2, - 0xb2, 0x65, 0x51, 0x75, 0xdf, 0x08, 0xa3, 0x4c, 0x05, 0xc7, 0x88, 0x2f, 0x32, 0x4c, 0xdd, 0x71, - 0x98, 0xd1, 0x12, 0x4c, 0x55, 0xa1, 0x6d, 0x4b, 0xb4, 0x69, 0x46, 0xb6, 0x28, 0x37, 0xc3, 0x08, - 0x43, 0xd4, 0x30, 0xf0, 0x56, 0xeb, 0x26, 0xd1, 0xe8, 0x1e, 0xc0, 0x61, 0xf1, 0xd4, 0xeb, 0xd9, - 0x30, 0xd5, 0x58, 0x10, 0x0a, 0xb4, 0x47, 0x8e, 0x32, 0x07, 0x57, 0x30, 0x58, 0x85, 0x58, 0xa4, - 0xa1, 0xbb, 0x44, 0x23, 0x1f, 0x69, 0xa2, 0xae, 0xa6, 0x5b, 0x65, 0x6d, 0x53, 0x77, 0x36, 0x73, - 0xa3, 0x7e, 0x82, 0xfd, 0x54, 0x77, 0x4e, 0xa8, 0x16, 0x99, 0xe6, 0x94, 0x55, 0xbe, 0x0b, 0xf5, - 0x94, 0x02, 0xec, 0x65, 0x44, 0x68, 0x14, 0x1c, 0xb3, 0x66, 0x6c, 0x12, 0xe3, 0x9c, 0xd6, 0x74, - 0x37, 0x4e, 0xe4, 0x0e, 0xf8, 0x19, 0x58, 0x27, 0x57, 0x98, 0xce, 0x0c, 0x55, 0x59, 0x43, 0x0d, - 0x65, 0x05, 0xd2, 0x74, 0x3e, 0x6a, 0xd5, 0xfb, 0xb0, 0xdb, 0x76, 0x83, 0xe5, 0x88, 0x4c, 0x97, - 0xc5, 0xed, 0x33, 0xe2, 0xc4, 0x92, 0x00, 0x2c, 0x60, 0x7d, 0x5a, 0x88, 0xaf, 0x2c, 0x17, 0x8b, - 0xb3, 0x6a, 0x4a, 0xb2, 0x9c, 0xb4, 0x1b, 0xd4, 0xa7, 0x2a, 0xb6, 0x67, 0xe3, 0x14, 0xf7, 0xa9, - 0x8a, 0x2d, 0x2d, 0x8c, 0xf6, 0x32, 0x0c, 0x3e, 0x6c, 0xdc, 0xbb, 0x88, 0x62, 0xdd, 0xc9, 0x65, - 0x03, 0xf6, 0x32, 0x8c, 0x39, 0xae, 0x20, 0xdc, 0xdc, 0xc1, 0x25, 0x71, 0x59, 0xcb, 0x5e, 0x7e, - 0xe0, 0x70, 0xc7, 0x28, 0xdb, 0xa1, 0xf8, 0xc6, 0xfa, 0x56, 0x27, 0x50, 0x09, 0xbc, 0xb1, 0xbe, - 0xd5, 0x0e, 0xbb, 0x9a, 0x6d, 0xc0, 0x1a, 0xc4, 0x40, 0x93, 0x97, 0x73, 0xfb, 0xfc, 0xda, 0xbe, - 0x06, 0x65, 0x12, 0x1d, 0xd9, 0xd0, 0x88, 0xa5, 0xaf, 0xe3, 0xdc, 0xeb, 0x0d, 0xbc, 0x71, 0x72, - 0xe3, 0x7e, 0xe5, 0x8c, 0x61, 0x14, 0x59, 0xeb, 0x14, 0x6b, 0x54, 0x8e, 0xc1, 0xb0, 0xbd, 0x7e, - 0xd6, 0xe0, 0xce, 0xa5, 0x21, 0xcf, 0x46, 0xf5, 0x62, 0xee, 0x2a, 0x66, 0xa6, 0x21, 0xda, 0xc0, - 0x5c, 0x6b, 0x99, 0x89, 0x95, 0x6b, 0x91, 0xdc, 0xd9, 0xd4, 0x1b, 0x75, 0x96, 0xa4, 0x1d, 0x34, - 0x2a, 0xc9, 0x5d, 0xcd, 0x55, 0xb9, 0x7c, 0x51, 0x8a, 0x95, 0x22, 0x8c, 0xd3, 0xc1, 0x5b, 0xba, - 0x65, 0x6b, 0x4d, 0x87, 0x68, 0xad, 0x2e, 0x7a, 0x73, 0x71, 0x0d, 0xed, 0x96, 0x7a, 0xb9, 0x54, - 0x5b, 0x73, 0x30, 0x98, 0x49, 0x25, 0x39, 0x3d, 0xa7, 0x61, 0xb4, 0x69, 0x55, 0x2d, 0x74, 0x71, - 0x6c, 0xa1, 0x60, 0xbe, 0x60, 0x73, 0x7f, 0x1c, 0xd8, 0xa6, 0xe8, 0x5e, 0xf3, 0x6b, 0x73, 0x27, - 0x51, 0x47, 0x9a, 0x9d, 0xc2, 0x7c, 0x01, 0xd2, 0x7e, 0xdf, 0x51, 0x92, 0xc0, 0xbd, 0x07, 0xb3, - 0x1b, 0x66, 0xd4, 0x99, 0xa5, 0x59, 0x9a, 0x0b, 0xef, 0x2d, 0x62, 0x62, 0xc3, 0x9c, 0x3c, 0x5f, - 0x5a, 0x2d, 0x6a, 0xea, 0xda, 0xe2, 0x6a, 0x69, 0xa1, 0x98, 0x8d, 0x1e, 0x4b, 0x26, 0xde, 0x1c, - 0xc8, 0xde, 0x8f, 0x7f, 0x7d, 0xf9, 0x97, 0xfb, 0x20, 0x13, 0xac, 0x83, 0x95, 0xff, 0x83, 0x7d, - 0x72, 0xd3, 0xea, 0x10, 0x57, 0xbb, 0x50, 0x6d, 0x30, 0x77, 0xae, 0xe9, 0xbc, 0x92, 0xf4, 0x66, - 0x62, 0x54, 0x68, 0xe1, 0xf6, 0xfe, 0x1e, 0xd4, 0x39, 0xc9, 0x54, 0x94, 0x79, 0x18, 0x47, 0x93, - 0x61, 0xad, 0x69, 0x95, 0xf5, 0x46, 0x59, 0x6b, 0x1d, 0x17, 0x68, 0xba, 0x81, 0x7e, 0xe0, 0xd8, - 0x3c, 0x93, 0x78, 0x2c, 0x97, 0x5b, 0xf6, 0x8a, 0x50, 0x6e, 0x85, 0xd8, 0x29, 0xa1, 0xda, 0xe6, - 0x35, 0xd1, 0xed, 0xbc, 0x06, 0x6b, 0xaf, 0x9a, 0x5e, 0x47, 0xb7, 0x71, 0x1b, 0x5b, 0xac, 0x7a, - 0x4b, 0xa8, 0x09, 0x14, 0x14, 0xe9, 0xf3, 0xfb, 0x37, 0x07, 0x7e, 0x3b, 0xfe, 0x26, 0x0a, 0x69, - 0x7f, 0x05, 0x47, 0x0b, 0x62, 0x83, 0x85, 0xf9, 0x08, 0x8b, 0x02, 0x57, 0xee, 0x58, 0xef, 0x4d, - 0xcc, 0xd0, 0xf8, 0x5f, 0xe8, 0xe7, 0x75, 0x95, 0xca, 0x91, 0x34, 0xf7, 0x52, 0x5f, 0x23, 0xbc, - 0x5a, 0x4f, 0xa8, 0xe2, 0x09, 0x83, 0x5d, 0xff, 0x59, 0x87, 0x71, 0xf7, 0x33, 0xee, 0xab, 0x76, - 0xe6, 0x3e, 0xb5, 0xc2, 0xc8, 0x93, 0xa7, 0x56, 0xb4, 0xc5, 0x25, 0x75, 0x61, 0x6a, 0x5e, 0x15, - 0x70, 0x65, 0x3f, 0xc4, 0x4c, 0xfd, 0xbe, 0xad, 0x60, 0xa6, 0x60, 0xa2, 0x5e, 0x0d, 0x8f, 0x0c, - 0xf4, 0xc8, 0x23, 0x18, 0x9f, 0x99, 0xe8, 0x7d, 0x74, 0xfd, 0x49, 0x88, 0x33, 0x7b, 0x29, 0x00, - 0xc2, 0x62, 0xd9, 0x3d, 0x4a, 0x02, 0x62, 0x33, 0x4b, 0x2a, 0x75, 0x7f, 0xf4, 0x77, 0x2e, 0xd5, - 0x96, 0x4b, 0xc5, 0x19, 0x5c, 0x01, 0xf9, 0x9b, 0xa1, 0x9f, 0x1b, 0x81, 0x2e, 0x0d, 0xcf, 0x0c, - 0x08, 0xe2, 0x8f, 0x82, 0x23, 0x22, 0x5b, 0xd7, 0x16, 0xa6, 0x8b, 0x6a, 0xb6, 0xcf, 0x3f, 0xbd, - 0x3f, 0x8e, 0x40, 0xca, 0x57, 0x50, 0xd1, 0x54, 0xae, 0x9b, 0xa6, 0x7d, 0x41, 0xd3, 0xcd, 0x2a, - 0x46, 0x28, 0x3e, 0x3f, 0xc0, 0x44, 0x53, 0x54, 0xd2, 0xab, 0xfd, 0xfe, 0x23, 0xbe, 0xf9, 0x54, - 0x04, 0xb2, 0xed, 0xc5, 0x58, 0x5b, 0x07, 0x23, 0x1f, 0x68, 0x07, 0x9f, 0x88, 0x40, 0x26, 0x58, - 0x81, 0xb5, 0x75, 0xef, 0xf0, 0x07, 0xda, 0xbd, 0xc7, 0x23, 0x30, 0x18, 0xa8, 0xbb, 0xfe, 0xab, - 0x7a, 0xf7, 0x58, 0x14, 0x46, 0xba, 0xe0, 0x30, 0x00, 0xf1, 0x02, 0x95, 0xd7, 0xcc, 0x37, 0xf4, - 0xf2, 0xae, 0x09, 0x9a, 0xff, 0x96, 0xf5, 0x86, 0x2b, 0xea, 0x59, 0xcc, 0x97, 0xd5, 0x32, 0x06, - 0xd5, 0xea, 0x46, 0x15, 0xcb, 0x37, 0xbe, 0x63, 0xe1, 0x55, 0xeb, 0x50, 0x4b, 0xce, 0xb7, 0xc7, - 0xd7, 0x83, 0x52, 0xb7, 0x9d, 0xaa, 0x5b, 0x3d, 0x4f, 0x8f, 0xe7, 0xe4, 0x46, 0x9a, 0x56, 0xb1, - 0x31, 0x35, 0x2b, 0x5b, 0x4a, 0x96, 0xeb, 0x69, 0x5b, 0xa4, 0xa2, 0xb7, 0x69, 0xd3, 0x30, 0x14, - 0x55, 0xb3, 0xb2, 0xc5, 0xd3, 0xc6, 0x42, 0xb3, 0x6c, 0x37, 0x69, 0x41, 0xc0, 0xf5, 0x68, 0xd4, - 0x8b, 0xa8, 0x29, 0x2e, 0xf3, 0x54, 0x44, 0xc5, 0xd6, 0xda, 0xc1, 0xa7, 0xd5, 0x14, 0x97, 0x71, - 0x95, 0x23, 0x30, 0xa4, 0x57, 0x2a, 0x0d, 0x4a, 0x2e, 0x89, 0x78, 0x19, 0x9a, 0xf1, 0xc4, 0x4c, - 0x71, 0xec, 0x14, 0x24, 0xa4, 0x1d, 0x68, 0x62, 0xa1, 0x96, 0xc0, 0x9c, 0xcf, 0xce, 0x51, 0xfa, - 0xe8, 0xa6, 0xde, 0x92, 0x8d, 0xf8, 0xd2, 0xaa, 0xa3, 0xb5, 0x0e, 0xf4, 0xfa, 0xb0, 0x3d, 0xa1, - 0xa6, 0xaa, 0x8e, 0x77, 0x82, 0x93, 0x7f, 0x16, 0xd3, 0x6b, 0xf0, 0x40, 0x52, 0x99, 0x85, 0x84, - 0x69, 0xa3, 0x7f, 0x50, 0x04, 0x3f, 0x0d, 0x3f, 0x1a, 0x72, 0x86, 0x39, 0x31, 0x2f, 0xf4, 0x55, - 0x0f, 0x39, 0xf6, 0x8b, 0x08, 0x24, 0xa4, 0x18, 0x13, 0x45, 0xac, 0xae, 0xbb, 0x9b, 0x8c, 0x2e, - 0x3e, 0xdd, 0x97, 0x8d, 0xa8, 0xec, 0x99, 0xca, 0xb1, 0x9a, 0xb1, 0x98, 0x0b, 0x08, 0x39, 0x7d, - 0xa6, 0xf3, 0x6a, 0x12, 0xbd, 0xcc, 0x0a, 0x5c, 0xbb, 0x56, 0xc3, 0x99, 0x74, 0xe4, 0xbc, 0x0a, - 0xf9, 0x8c, 0x10, 0xd3, 0x73, 0x71, 0xb7, 0xa1, 0x57, 0xcd, 0x80, 0x6e, 0x8c, 0xe9, 0x66, 0x65, - 0x83, 0xa7, 0x5c, 0x80, 0xfd, 0x92, 0xb7, 0x4c, 0x5c, 0x1d, 0x8b, 0xe7, 0x72, 0x0b, 0xd4, 0xcf, - 0x4e, 0xbb, 0xf6, 0x09, 0x85, 0x59, 0xd1, 0x2e, 0xb1, 0xd3, 0xa7, 0xb1, 0x90, 0xb5, 0x6b, 0xed, - 0x96, 0x98, 0xce, 0xb6, 0xed, 0xbb, 0x9c, 0xbb, 0x22, 0xf7, 0x42, 0xab, 0xa8, 0x78, 0xa6, 0x2f, - 0x3a, 0xb7, 0x3c, 0xfd, 0x7c, 0xdf, 0xd8, 0x1c, 0xc7, 0x2d, 0x4b, 0x0b, 0xaa, 0x64, 0xc3, 0x24, - 0x06, 0xb5, 0x0e, 0x3c, 0x7d, 0x25, 0xdc, 0x50, 0xa9, 0xba, 0x9b, 0xcd, 0xf5, 0x09, 0x7c, 0xc3, - 0x64, 0xc5, 0xae, 0xd8, 0xad, 0xcf, 0x19, 0xf4, 0x89, 0x3d, 0xb0, 0x3b, 0xf1, 0x49, 0x23, 0xe9, - 0x49, 0xc7, 0x42, 0xbf, 0x7f, 0x14, 0x16, 0x61, 0x44, 0x28, 0x6b, 0xec, 0x4c, 0x95, 0x97, 0xa0, - 0xca, 0x8e, 0x1b, 0xf2, 0xdc, 0x8b, 0x6f, 0xb0, 0x94, 0xa0, 0x0e, 0x0b, 0x28, 0x6d, 0xe3, 0x45, - 0x6a, 0x41, 0x85, 0xcb, 0x02, 0x7c, 0xdc, 0x87, 0x71, 0xcb, 0xbd, 0x33, 0xe3, 0xcb, 0x82, 0x71, - 0xc4, 0xc7, 0xb8, 0x22, 0xa0, 0x85, 0x19, 0x18, 0xdc, 0x0d, 0xd7, 0xcf, 0x04, 0x57, 0x9a, 0xf8, - 0x49, 0xe6, 0x60, 0x88, 0x91, 0x18, 0x4d, 0xc7, 0xb5, 0x6b, 0x2c, 0x40, 0xec, 0x4c, 0xf3, 0xf3, - 0x37, 0xb8, 0x53, 0x65, 0x28, 0x6c, 0xc6, 0x43, 0x15, 0xee, 0x86, 0x51, 0x2a, 0x61, 0x6b, 0xd0, - 0xcf, 0x16, 0x7e, 0x84, 0x90, 0xfb, 0xe5, 0x03, 0xdc, 0xf7, 0x46, 0x3c, 0x02, 0x1f, 0xaf, 0x6f, - 0x26, 0x2a, 0xc4, 0xc5, 0xd8, 0x86, 0xfb, 0x3f, 0xd3, 0x54, 0x76, 0xfc, 0xc6, 0x90, 0x7b, 0xf4, - 0xad, 0xe0, 0x4c, 0xcc, 0x71, 0xe4, 0x94, 0x69, 0x16, 0xd6, 0x60, 0x5f, 0x97, 0x99, 0xed, 0x81, - 0xf3, 0x31, 0xc1, 0x39, 0xda, 0x31, 0xbb, 0x94, 0x76, 0x19, 0xa4, 0xdc, 0x9b, 0x8f, 0x1e, 0x38, - 0x1f, 0x17, 0x9c, 0x8a, 0xc0, 0xca, 0x69, 0xa1, 0x8c, 0xa7, 0x60, 0x18, 0x77, 0xea, 0xeb, 0xb6, - 0x23, 0xf6, 0xbd, 0x3d, 0xd0, 0x3d, 0x21, 0xe8, 0x86, 0x04, 0x90, 0xed, 0x82, 0x29, 0xd7, 0x6d, - 0x90, 0xd8, 0xc0, 0x0d, 0x50, 0x0f, 0x14, 0x4f, 0x0a, 0x8a, 0x01, 0xaa, 0x4f, 0xa1, 0x53, 0x90, - 0xae, 0xd8, 0x22, 0x0c, 0x87, 0xc3, 0x9f, 0x12, 0xf0, 0x94, 0xc4, 0x08, 0x8a, 0xba, 0x5d, 0x6f, - 0x9a, 0x34, 0x46, 0x87, 0x53, 0x7c, 0x59, 0x52, 0x48, 0x8c, 0xa0, 0xd8, 0x85, 0x59, 0xbf, 0x22, - 0x29, 0x1c, 0x9f, 0x3d, 0xef, 0xa4, 0x67, 0xbd, 0xe6, 0x96, 0x6d, 0xf5, 0xd2, 0x89, 0xa7, 0x05, - 0x03, 0x08, 0x08, 0x25, 0xb8, 0x1d, 0x92, 0xbd, 0x4e, 0xc4, 0x57, 0x05, 0x3c, 0x41, 0xe4, 0x0c, - 0xe0, 0x3a, 0x93, 0x41, 0x86, 0x7e, 0x5b, 0x09, 0xa7, 0xf8, 0x9a, 0xa0, 0xc8, 0xf8, 0x60, 0x62, - 0x18, 0x2e, 0x71, 0x5c, 0xdc, 0xaa, 0xf7, 0x40, 0xf2, 0xac, 0x1c, 0x86, 0x80, 0x08, 0x53, 0xae, - 0x13, 0xcb, 0xd8, 0xec, 0x8d, 0xe1, 0x39, 0x69, 0x4a, 0x89, 0xa1, 0x14, 0x18, 0x79, 0x6a, 0x7a, - 0x03, 0x37, 0xd7, 0x66, 0x4f, 0xd3, 0xf1, 0x75, 0xc1, 0x91, 0xf6, 0x40, 0xc2, 0x22, 0x4d, 0x6b, - 0x37, 0x34, 0xcf, 0x4b, 0x8b, 0xf8, 0x60, 0x62, 0xe9, 0xe1, 0xce, 0x94, 0x56, 0x12, 0xbb, 0x61, - 0xfb, 0x86, 0x5c, 0x7a, 0x1c, 0xbb, 0xe0, 0x67, 0xc4, 0x99, 0x76, 0x70, 0x0b, 0xde, 0x0b, 0xcd, - 0x37, 0xe5, 0x4c, 0x33, 0x00, 0x05, 0x9f, 0x81, 0xfd, 0x5d, 0x43, 0x7d, 0x0f, 0x64, 0xdf, 0x12, - 0x64, 0x7b, 0xbb, 0x84, 0x7b, 0x11, 0x12, 0x76, 0x4b, 0xf9, 0x6d, 0x19, 0x12, 0x48, 0x1b, 0xd7, - 0x32, 0x2d, 0x63, 0x1d, 0x7d, 0x63, 0x77, 0x56, 0xfb, 0x8e, 0xb4, 0x1a, 0xc7, 0x06, 0xac, 0xb6, - 0x0a, 0x7b, 0x05, 0xe3, 0xee, 0xe6, 0xf5, 0x05, 0x19, 0x58, 0x39, 0x7a, 0x2d, 0x38, 0xbb, 0x1f, - 0x86, 0x31, 0xcf, 0x9c, 0xb2, 0x02, 0x73, 0x34, 0x7a, 0x30, 0x10, 0xce, 0xfc, 0xa2, 0x60, 0x96, - 0x11, 0xdf, 0x2b, 0xe1, 0x9c, 0x05, 0xbd, 0x4e, 0xc9, 0x4f, 0x43, 0x4e, 0x92, 0x37, 0x2d, 0x2c, - 0xf0, 0xed, 0x8a, 0x85, 0xd3, 0x58, 0xee, 0x81, 0xfa, 0xbb, 0x6d, 0x53, 0xb5, 0xe6, 0x83, 0x53, - 0xe6, 0x12, 0x64, 0xbd, 0x7a, 0x43, 0xab, 0xd6, 0xea, 0x36, 0x96, 0x96, 0x3b, 0x33, 0x7e, 0x4f, - 0xce, 0x94, 0x87, 0x2b, 0x31, 0x58, 0xa1, 0x08, 0x19, 0xf6, 0xd8, 0xab, 0x4b, 0x7e, 0x5f, 0x10, - 0x0d, 0xb6, 0x50, 0x22, 0x70, 0x60, 0xa5, 0x84, 0x35, 0x6f, 0x2f, 0xf1, 0xef, 0x07, 0x32, 0x70, - 0x08, 0x08, 0xf7, 0xbe, 0xa1, 0xb6, 0x4c, 0xac, 0x84, 0x7d, 0x7e, 0xcd, 0x7d, 0xf4, 0x92, 0x58, - 0xb3, 0xc1, 0x44, 0x5c, 0x98, 0xa7, 0xe6, 0x09, 0xa6, 0xcb, 0x70, 0xb2, 0x07, 0x2e, 0x79, 0x16, - 0x0a, 0x64, 0xcb, 0xc2, 0x49, 0x18, 0x0c, 0xa4, 0xca, 0x70, 0xaa, 0x07, 0x05, 0x55, 0xda, 0x9f, - 0x29, 0x0b, 0x37, 0x43, 0x8c, 0xa6, 0xbd, 0x70, 0xf8, 0xc7, 0x04, 0x9c, 0xa9, 0x17, 0xfe, 0x1f, - 0x12, 0x32, 0xdd, 0x85, 0x43, 0x3f, 0x2e, 0xa0, 0x1e, 0x84, 0xc2, 0x65, 0xaa, 0x0b, 0x87, 0x7f, - 0x42, 0xc2, 0x25, 0x84, 0xc2, 0x7b, 0x37, 0xe1, 0x4b, 0x9f, 0x8a, 0x89, 0x70, 0x25, 0x6d, 0x47, - 0xbf, 0xf9, 0xf0, 0x1c, 0x17, 0x8e, 0x7e, 0x48, 0xbc, 0x5c, 0x22, 0x0a, 0xb7, 0x42, 0xbc, 0x47, - 0x83, 0x7f, 0x5a, 0x40, 0xb9, 0x3e, 0x66, 0x90, 0x94, 0x2f, 0xaf, 0x85, 0xc3, 0x1f, 0x16, 0x70, - 0x3f, 0x8a, 0x76, 0x5d, 0xe4, 0xb5, 0x70, 0x82, 0xcf, 0xc8, 0xae, 0x0b, 0x04, 0x35, 0x9b, 0x4c, - 0x69, 0xe1, 0xe8, 0xcf, 0x4a, 0xab, 0x4b, 0x08, 0xae, 0xa6, 0xa4, 0x17, 0xa6, 0xc2, 0xf1, 0x9f, - 0x13, 0xf8, 0x16, 0x86, 0x5a, 0xc0, 0x17, 0x26, 0xc3, 0x29, 0x3e, 0x2f, 0x2d, 0xe0, 0x43, 0xd1, - 0x65, 0xd4, 0x9e, 0xfa, 0xc2, 0x99, 0xbe, 0x20, 0x97, 0x51, 0x5b, 0xe6, 0xa3, 0xb3, 0xc9, 0xa2, - 0x45, 0x38, 0xc5, 0x17, 0xe5, 0x6c, 0x32, 0x7d, 0xda, 0x8d, 0xf6, 0x5c, 0x12, 0xce, 0xf1, 0x25, - 0xd9, 0x8d, 0xb6, 0x54, 0x82, 0x99, 0x49, 0xe9, 0xcc, 0x23, 0xe1, 0x7c, 0x8f, 0x08, 0xbe, 0xe1, - 0x8e, 0x34, 0x52, 0xb8, 0x07, 0xf6, 0x76, 0xcf, 0x21, 0xe1, 0xac, 0x8f, 0x5e, 0x6a, 0xab, 0xfa, - 0xfd, 0x29, 0x04, 0x53, 0xde, 0x68, 0xb7, 0xfc, 0x11, 0x4e, 0xfb, 0xd8, 0xa5, 0xe0, 0xc6, 0xce, - 0x9f, 0x3e, 0xb0, 0x42, 0x83, 0x56, 0xe8, 0x0e, 0xe7, 0x7a, 0x42, 0x70, 0xf9, 0x40, 0x74, 0x69, - 0x88, 0xc8, 0x1d, 0x8e, 0x7f, 0x52, 0x2e, 0x0d, 0x81, 0x40, 0x70, 0xc2, 0x6a, 0x9a, 0x26, 0x75, - 0x0e, 0x65, 0xe7, 0x9f, 0x34, 0xe4, 0xfe, 0xf4, 0xae, 0x58, 0x18, 0x12, 0x80, 0x31, 0x34, 0x4e, - 0x6a, 0xeb, 0x68, 0x83, 0x10, 0xe4, 0x9f, 0xdf, 0x95, 0x01, 0x81, 0x6a, 0xe3, 0x7a, 0x02, 0xbe, - 0x69, 0x64, 0x67, 0xd8, 0x21, 0xd8, 0xbf, 0xbc, 0x2b, 0x3e, 0xb3, 0xb6, 0x20, 0x2d, 0x02, 0xfe, - 0xd1, 0x76, 0x67, 0x82, 0xb7, 0x82, 0x04, 0x6c, 0xa3, 0x79, 0x1b, 0x0c, 0xd0, 0x5f, 0x76, 0xb8, - 0x7a, 0x25, 0x0c, 0xfd, 0x57, 0x81, 0x96, 0xfa, 0xd4, 0x60, 0x35, 0xbb, 0x41, 0xf0, 0xd6, 0x09, - 0xc3, 0xfe, 0x4d, 0x60, 0x3d, 0x00, 0x05, 0x1b, 0xba, 0xe3, 0xf6, 0x32, 0xee, 0xbf, 0x4b, 0xb0, - 0x04, 0xd0, 0x4e, 0xd3, 0xfb, 0x73, 0x64, 0x2b, 0x0c, 0xfb, 0xb6, 0xec, 0xb4, 0xd0, 0xc7, 0x00, - 0x98, 0xa4, 0xb7, 0xfc, 0xa7, 0x07, 0x21, 0xe0, 0x7f, 0x08, 0x70, 0x0b, 0x31, 0x7d, 0xb8, 0xfb, - 0xd1, 0x0e, 0xcc, 0xd9, 0x73, 0x36, 0x3f, 0xd4, 0x81, 0x87, 0xe3, 0x70, 0x08, 0x75, 0x30, 0xbf, - 0x4e, 0x7a, 0x6b, 0x71, 0xd2, 0x63, 0x90, 0xc7, 0x32, 0x9e, 0x60, 0x6c, 0x77, 0x07, 0x3a, 0xf9, - 0x9f, 0x44, 0x21, 0x31, 0x83, 0x60, 0xfd, 0x82, 0xbe, 0xa5, 0xd4, 0x61, 0x84, 0xde, 0xe3, 0xa2, - 0x64, 0x47, 0x0b, 0xc2, 0xc5, 0xc5, 0x59, 0xdc, 0xf5, 0x13, 0xad, 0xb7, 0x4a, 0xc4, 0x44, 0x17, - 0x75, 0xf6, 0x69, 0x69, 0x3a, 0xfb, 0xca, 0x6f, 0xc7, 0xf7, 0x7c, 0xf2, 0x77, 0xe3, 0x89, 0x85, - 0xad, 0x7b, 0xaa, 0xa6, 0x43, 0x4f, 0x6b, 0x8d, 0x4e, 0x5d, 0xe5, 0xc1, 0x08, 0x1c, 0xe8, 0xc2, - 0xb1, 0x28, 0x16, 0x82, 0x38, 0xa2, 0xbd, 0xa9, 0xc7, 0x57, 0x4b, 0x18, 0xef, 0x42, 0x3a, 0xf0, - 0xfa, 0x03, 0xc6, 0xf6, 0xfa, 0x63, 0x67, 0x20, 0xb7, 0xdd, 0x48, 0xe8, 0xcf, 0xc2, 0x70, 0xa6, - 0xc5, 0x4f, 0xc5, 0xe8, 0xad, 0x72, 0xa4, 0xf5, 0x1b, 0x15, 0xfa, 0x53, 0x84, 0x61, 0x5f, 0xef, - 0xc4, 0xcb, 0x78, 0x7b, 0xa1, 0xef, 0x44, 0x64, 0x4c, 0x87, 0x43, 0x61, 0x3d, 0xfd, 0x37, 0x5f, - 0x91, 0x3f, 0x08, 0xfd, 0x5c, 0x48, 0x7f, 0xd8, 0x56, 0xb2, 0xdc, 0x5b, 0x6e, 0x62, 0x54, 0x51, - 0x35, 0x5e, 0xa5, 0x0f, 0xd3, 0xf3, 0xaf, 0xbc, 0x76, 0x70, 0xcf, 0xab, 0x78, 0xfd, 0x1a, 0xaf, - 0xdf, 0xbf, 0x76, 0x30, 0xf2, 0x26, 0x5e, 0x6f, 0xe3, 0xf5, 0x0e, 0x5e, 0xf7, 0xbf, 0x7e, 0x30, - 0xf2, 0x1c, 0x5e, 0x2f, 0xe0, 0xf5, 0x23, 0xbc, 0x5e, 0xc2, 0xeb, 0x15, 0xbc, 0x5e, 0x7d, 0x1d, - 0x75, 0xf1, 0xff, 0x9b, 0xf8, 0xff, 0x6d, 0xfc, 0xff, 0x0e, 0xfe, 0xbf, 0xff, 0x0f, 0x07, 0xf7, - 0xfc, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xda, 0x83, 0xc0, 0xc0, 0xfb, 0x2c, 0x00, 0x00, + // 3793 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0x34, 0xfd, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, 0x9b, + 0x99, 0xd6, 0x69, 0xd2, 0x9f, 0xa4, 0x3f, 0x69, 0xa6, 0x4f, 0xe9, 0x43, 0x5a, 0x3f, 0x75, 0x92, + 0xb7, 0x3e, 0x74, 0x5a, 0x8b, 0xf1, 0x4c, 0xdd, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0x8c, 0x5e, + 0x3a, 0xf7, 0x6f, 0xb1, 0x0b, 0x80, 0x5c, 0x30, 0x1d, 0x27, 0x4f, 0xc4, 0x3d, 0xf7, 0x7c, 0xdf, + 0x9e, 0x7b, 0xee, 0xb9, 0xe7, 0x9c, 0xbd, 0x4b, 0xf8, 0xfe, 0x65, 0x58, 0x6a, 0xdb, 0x76, 0xdb, + 0xc4, 0x6b, 0x5d, 0xc7, 0xf6, 0xec, 0xfd, 0x5e, 0x6b, 0xad, 0x89, 0x5d, 0xdd, 0x31, 0xba, 0x9e, + 0xed, 0xac, 0x52, 0x99, 0x32, 0xc3, 0x34, 0x56, 0x85, 0xc6, 0xf2, 0x36, 0xcc, 0x5e, 0x37, 0x4c, + 0xbc, 0xe1, 0x2b, 0x36, 0xb0, 0xa7, 0x5c, 0x85, 0x44, 0xcb, 0x30, 0x71, 0x5e, 0x5a, 0x8a, 0xaf, + 0x64, 0x2e, 0x3e, 0xbe, 0x3a, 0x00, 0x5a, 0x0d, 0x23, 0xea, 0x44, 0xac, 0x52, 0xc4, 0xf2, 0x5b, + 0x09, 0x98, 0x1b, 0x31, 0xab, 0x28, 0x90, 0xb0, 0x50, 0x87, 0x30, 0x4a, 0x2b, 0x69, 0x95, 0xfe, + 0x56, 0xf2, 0x30, 0xd5, 0x45, 0xfa, 0x1d, 0xd4, 0xc6, 0xf9, 0x18, 0x15, 0x8b, 0xa1, 0x52, 0x00, + 0x68, 0xe2, 0x2e, 0xb6, 0x9a, 0xd8, 0xd2, 0x0f, 0xf3, 0xf1, 0xa5, 0xf8, 0x4a, 0x5a, 0x0d, 0x48, + 0x94, 0xa7, 0x61, 0xb6, 0xdb, 0xdb, 0x37, 0x0d, 0x5d, 0x0b, 0xa8, 0xc1, 0x52, 0x7c, 0x25, 0xa9, + 0xca, 0x6c, 0x62, 0xa3, 0xaf, 0x7c, 0x01, 0x66, 0xee, 0x61, 0x74, 0x27, 0xa8, 0x9a, 0xa1, 0xaa, + 0x39, 0x22, 0x0e, 0x28, 0x96, 0x21, 0xdb, 0xc1, 0xae, 0x8b, 0xda, 0x58, 0xf3, 0x0e, 0xbb, 0x38, + 0x9f, 0xa0, 0xab, 0x5f, 0x1a, 0x5a, 0xfd, 0xe0, 0xca, 0x33, 0x1c, 0xb5, 0x7b, 0xd8, 0xc5, 0x4a, + 0x09, 0xd2, 0xd8, 0xea, 0x75, 0x18, 0x43, 0xf2, 0x18, 0xff, 0x55, 0xac, 0x5e, 0x67, 0x90, 0x25, + 0x45, 0x60, 0x9c, 0x62, 0xca, 0xc5, 0xce, 0x5d, 0x43, 0xc7, 0xf9, 0x49, 0x4a, 0x70, 0x61, 0x88, + 0xa0, 0xc1, 0xe6, 0x07, 0x39, 0x04, 0x4e, 0x29, 0x43, 0x1a, 0xbf, 0xe8, 0x61, 0xcb, 0x35, 0x6c, + 0x2b, 0x3f, 0x45, 0x49, 0x9e, 0x18, 0xb1, 0x8b, 0xd8, 0x6c, 0x0e, 0x52, 0xf4, 0x71, 0xca, 0x15, + 0x98, 0xb2, 0xbb, 0x9e, 0x61, 0x5b, 0x6e, 0x3e, 0xb5, 0x24, 0xad, 0x64, 0x2e, 0x7e, 0x60, 0x64, + 0x20, 0xd4, 0x98, 0x8e, 0x2a, 0x94, 0x95, 0x2a, 0xc8, 0xae, 0xdd, 0x73, 0x74, 0xac, 0xe9, 0x76, + 0x13, 0x6b, 0x86, 0xd5, 0xb2, 0xf3, 0x69, 0x4a, 0x70, 0x6e, 0x78, 0x21, 0x54, 0xb1, 0x6c, 0x37, + 0x71, 0xd5, 0x6a, 0xd9, 0x6a, 0xce, 0x0d, 0x8d, 0x95, 0x05, 0x98, 0x74, 0x0f, 0x2d, 0x0f, 0xbd, + 0x98, 0xcf, 0xd2, 0x08, 0xe1, 0xa3, 0xe5, 0xff, 0x4d, 0xc2, 0xcc, 0x38, 0x21, 0x76, 0x0d, 0x92, + 0x2d, 0xb2, 0xca, 0x7c, 0xec, 0x34, 0x3e, 0x60, 0x98, 0xb0, 0x13, 0x27, 0x7f, 0x44, 0x27, 0x96, + 0x20, 0x63, 0x61, 0xd7, 0xc3, 0x4d, 0x16, 0x11, 0xf1, 0x31, 0x63, 0x0a, 0x18, 0x68, 0x38, 0xa4, + 0x12, 0x3f, 0x52, 0x48, 0xdd, 0x84, 0x19, 0xdf, 0x24, 0xcd, 0x41, 0x56, 0x5b, 0xc4, 0xe6, 0x5a, + 0x94, 0x25, 0xab, 0x15, 0x81, 0x53, 0x09, 0x4c, 0xcd, 0xe1, 0xd0, 0x58, 0xd9, 0x00, 0xb0, 0x2d, + 0x6c, 0xb7, 0xb4, 0x26, 0xd6, 0xcd, 0x7c, 0xea, 0x18, 0x2f, 0xd5, 0x88, 0xca, 0x90, 0x97, 0x6c, + 0x26, 0xd5, 0x4d, 0xe5, 0xb9, 0x7e, 0xa8, 0x4d, 0x1d, 0x13, 0x29, 0xdb, 0xec, 0x90, 0x0d, 0x45, + 0xdb, 0x1e, 0xe4, 0x1c, 0x4c, 0xe2, 0x1e, 0x37, 0xf9, 0xca, 0xd2, 0xd4, 0x88, 0xd5, 0xc8, 0x95, + 0xa9, 0x1c, 0xc6, 0x16, 0x36, 0xed, 0x04, 0x87, 0xca, 0x07, 0xc1, 0x17, 0x68, 0x34, 0xac, 0x80, + 0x66, 0xa1, 0xac, 0x10, 0xee, 0xa0, 0x0e, 0x5e, 0xbc, 0x0a, 0xb9, 0xb0, 0x7b, 0x94, 0x79, 0x48, + 0xba, 0x1e, 0x72, 0x3c, 0x1a, 0x85, 0x49, 0x95, 0x0d, 0x14, 0x19, 0xe2, 0xd8, 0x6a, 0xd2, 0x2c, + 0x97, 0x54, 0xc9, 0xcf, 0xc5, 0x67, 0x61, 0x3a, 0xf4, 0xf8, 0x71, 0x81, 0xcb, 0x5f, 0x98, 0x84, + 0xf9, 0x51, 0x31, 0x37, 0x32, 0xfc, 0x17, 0x60, 0xd2, 0xea, 0x75, 0xf6, 0xb1, 0x93, 0x8f, 0x53, + 0x06, 0x3e, 0x52, 0x4a, 0x90, 0x34, 0xd1, 0x3e, 0x36, 0xf3, 0x89, 0x25, 0x69, 0x25, 0x77, 0xf1, + 0xe9, 0xb1, 0xa2, 0x7a, 0x75, 0x8b, 0x40, 0x54, 0x86, 0x54, 0x3e, 0x0e, 0x09, 0x9e, 0xe2, 0x08, + 0xc3, 0x53, 0xe3, 0x31, 0x90, 0x58, 0x54, 0x29, 0x4e, 0x79, 0x14, 0xd2, 0xe4, 0x2f, 0xf3, 0xed, + 0x24, 0xb5, 0x39, 0x45, 0x04, 0xc4, 0xaf, 0xca, 0x22, 0xa4, 0x68, 0x98, 0x35, 0xb1, 0x28, 0x0d, + 0xfe, 0x98, 0x6c, 0x4c, 0x13, 0xb7, 0x50, 0xcf, 0xf4, 0xb4, 0xbb, 0xc8, 0xec, 0x61, 0x1a, 0x30, + 0x69, 0x35, 0xcb, 0x85, 0x9f, 0x22, 0x32, 0xe5, 0x1c, 0x64, 0x58, 0x54, 0x1a, 0x56, 0x13, 0xbf, + 0x48, 0xb3, 0x4f, 0x52, 0x65, 0x81, 0x5a, 0x25, 0x12, 0xf2, 0xf8, 0xdb, 0xae, 0x6d, 0x89, 0xad, + 0xa5, 0x8f, 0x20, 0x02, 0xfa, 0xf8, 0x67, 0x07, 0x13, 0xdf, 0x63, 0xa3, 0x97, 0x37, 0x18, 0x8b, + 0xcb, 0xdf, 0x8c, 0x41, 0x82, 0x9e, 0xb7, 0x19, 0xc8, 0xec, 0xde, 0xaa, 0x57, 0xb4, 0x8d, 0xda, + 0xde, 0xfa, 0x56, 0x45, 0x96, 0x94, 0x1c, 0x00, 0x15, 0x5c, 0xdf, 0xaa, 0x95, 0x76, 0xe5, 0x98, + 0x3f, 0xae, 0xee, 0xec, 0x5e, 0xb9, 0x24, 0xc7, 0x7d, 0xc0, 0x1e, 0x13, 0x24, 0x82, 0x0a, 0xcf, + 0x5c, 0x94, 0x93, 0x8a, 0x0c, 0x59, 0x46, 0x50, 0xbd, 0x59, 0xd9, 0xb8, 0x72, 0x49, 0x9e, 0x0c, + 0x4b, 0x9e, 0xb9, 0x28, 0x4f, 0x29, 0xd3, 0x90, 0xa6, 0x92, 0xf5, 0x5a, 0x6d, 0x4b, 0x4e, 0xf9, + 0x9c, 0x8d, 0x5d, 0xb5, 0xba, 0xb3, 0x29, 0xa7, 0x7d, 0xce, 0x4d, 0xb5, 0xb6, 0x57, 0x97, 0xc1, + 0x67, 0xd8, 0xae, 0x34, 0x1a, 0xa5, 0xcd, 0x8a, 0x9c, 0xf1, 0x35, 0xd6, 0x6f, 0xed, 0x56, 0x1a, + 0x72, 0x36, 0x64, 0xd6, 0x33, 0x17, 0xe5, 0x69, 0xff, 0x11, 0x95, 0x9d, 0xbd, 0x6d, 0x39, 0xa7, + 0xcc, 0xc2, 0x34, 0x7b, 0x84, 0x30, 0x62, 0x66, 0x40, 0x74, 0xe5, 0x92, 0x2c, 0xf7, 0x0d, 0x61, + 0x2c, 0xb3, 0x21, 0xc1, 0x95, 0x4b, 0xb2, 0xb2, 0x5c, 0x86, 0x24, 0x8d, 0x2e, 0x45, 0x81, 0xdc, + 0x56, 0x69, 0xbd, 0xb2, 0xa5, 0xd5, 0xea, 0xbb, 0xd5, 0xda, 0x4e, 0x69, 0x4b, 0x96, 0xfa, 0x32, + 0xb5, 0xf2, 0xc9, 0xbd, 0xaa, 0x5a, 0xd9, 0x90, 0x63, 0x41, 0x59, 0xbd, 0x52, 0xda, 0xad, 0x6c, + 0xc8, 0xf1, 0x65, 0x1d, 0xe6, 0x47, 0xe5, 0x99, 0x91, 0x27, 0x23, 0xb0, 0xc5, 0xb1, 0x63, 0xb6, + 0x98, 0x72, 0x0d, 0x6d, 0xf1, 0x97, 0x25, 0x98, 0x1b, 0x91, 0x6b, 0x47, 0x3e, 0xe4, 0x79, 0x48, + 0xb2, 0x10, 0x65, 0xd5, 0xe7, 0xc9, 0x91, 0x49, 0x9b, 0x06, 0xec, 0x50, 0x05, 0xa2, 0xb8, 0x60, + 0x05, 0x8e, 0x1f, 0x53, 0x81, 0x09, 0xc5, 0x90, 0x91, 0x2f, 0x4b, 0x90, 0x3f, 0x8e, 0x3b, 0x22, + 0x51, 0xc4, 0x42, 0x89, 0xe2, 0xda, 0xa0, 0x01, 0xe7, 0x8f, 0x5f, 0xc3, 0x90, 0x15, 0xaf, 0x4b, + 0xb0, 0x30, 0xba, 0x51, 0x19, 0x69, 0xc3, 0xc7, 0x61, 0xb2, 0x83, 0xbd, 0x03, 0x5b, 0x14, 0xeb, + 0x0f, 0x8d, 0x28, 0x01, 0x64, 0x7a, 0xd0, 0x57, 0x1c, 0x15, 0xac, 0x21, 0xf1, 0xe3, 0xba, 0x0d, + 0x66, 0xcd, 0x90, 0xa5, 0x9f, 0x8b, 0xc1, 0x23, 0x23, 0xc9, 0x47, 0x1a, 0xfa, 0x18, 0x80, 0x61, + 0x75, 0x7b, 0x1e, 0x2b, 0xc8, 0x2c, 0x3f, 0xa5, 0xa9, 0x84, 0x9e, 0x7d, 0x92, 0x7b, 0x7a, 0x9e, + 0x3f, 0x1f, 0xa7, 0xf3, 0xc0, 0x44, 0x54, 0xe1, 0x6a, 0xdf, 0xd0, 0x04, 0x35, 0xb4, 0x70, 0xcc, + 0x4a, 0x87, 0x6a, 0xdd, 0x47, 0x41, 0xd6, 0x4d, 0x03, 0x5b, 0x9e, 0xe6, 0x7a, 0x0e, 0x46, 0x1d, + 0xc3, 0x6a, 0xd3, 0x04, 0x9c, 0x2a, 0x26, 0x5b, 0xc8, 0x74, 0xb1, 0x3a, 0xc3, 0xa6, 0x1b, 0x62, + 0x96, 0x20, 0x68, 0x95, 0x71, 0x02, 0x88, 0xc9, 0x10, 0x82, 0x4d, 0xfb, 0x88, 0xe5, 0xaf, 0x4d, + 0x41, 0x26, 0xd0, 0xd6, 0x29, 0xe7, 0x21, 0x7b, 0x1b, 0xdd, 0x45, 0x9a, 0x68, 0xd5, 0x99, 0x27, + 0x32, 0x44, 0x56, 0xe7, 0xed, 0xfa, 0x47, 0x61, 0x9e, 0xaa, 0xd8, 0x3d, 0x0f, 0x3b, 0x9a, 0x6e, + 0x22, 0xd7, 0xa5, 0x4e, 0x4b, 0x51, 0x55, 0x85, 0xcc, 0xd5, 0xc8, 0x54, 0x59, 0xcc, 0x28, 0x97, + 0x61, 0x8e, 0x22, 0x3a, 0x3d, 0xd3, 0x33, 0xba, 0x26, 0xd6, 0xc8, 0xcb, 0x83, 0x4b, 0x13, 0xb1, + 0x6f, 0xd9, 0x2c, 0xd1, 0xd8, 0xe6, 0x0a, 0xc4, 0x22, 0x57, 0xd9, 0x80, 0xc7, 0x28, 0xac, 0x8d, + 0x2d, 0xec, 0x20, 0x0f, 0x6b, 0xf8, 0x33, 0x3d, 0x64, 0xba, 0x1a, 0xb2, 0x9a, 0xda, 0x01, 0x72, + 0x0f, 0xf2, 0xf3, 0x84, 0x60, 0x3d, 0x96, 0x97, 0xd4, 0xb3, 0x44, 0x71, 0x93, 0xeb, 0x55, 0xa8, + 0x5a, 0xc9, 0x6a, 0x7e, 0x02, 0xb9, 0x07, 0x4a, 0x11, 0x16, 0x28, 0x8b, 0xeb, 0x39, 0x86, 0xd5, + 0xd6, 0xf4, 0x03, 0xac, 0xdf, 0xd1, 0x7a, 0x5e, 0xeb, 0x6a, 0xfe, 0xd1, 0xe0, 0xf3, 0xa9, 0x85, + 0x0d, 0xaa, 0x53, 0x26, 0x2a, 0x7b, 0x5e, 0xeb, 0xaa, 0xd2, 0x80, 0x2c, 0xd9, 0x8c, 0x8e, 0xf1, + 0x12, 0xd6, 0x5a, 0xb6, 0x43, 0x2b, 0x4b, 0x6e, 0xc4, 0xc9, 0x0e, 0x78, 0x70, 0xb5, 0xc6, 0x01, + 0xdb, 0x76, 0x13, 0x17, 0x93, 0x8d, 0x7a, 0xa5, 0xb2, 0xa1, 0x66, 0x04, 0xcb, 0x75, 0xdb, 0x21, + 0x01, 0xd5, 0xb6, 0x7d, 0x07, 0x67, 0x58, 0x40, 0xb5, 0x6d, 0xe1, 0xde, 0xcb, 0x30, 0xa7, 0xeb, + 0x6c, 0xcd, 0x86, 0xae, 0xf1, 0x16, 0xdf, 0xcd, 0xcb, 0x21, 0x67, 0xe9, 0xfa, 0x26, 0x53, 0xe0, + 0x31, 0xee, 0x2a, 0xcf, 0xc1, 0x23, 0x7d, 0x67, 0x05, 0x81, 0xb3, 0x43, 0xab, 0x1c, 0x84, 0x5e, + 0x86, 0xb9, 0xee, 0xe1, 0x30, 0x50, 0x09, 0x3d, 0xb1, 0x7b, 0x38, 0x08, 0x7b, 0x82, 0xbe, 0xb6, + 0x39, 0x58, 0x47, 0x1e, 0x6e, 0xe6, 0xcf, 0x04, 0xb5, 0x03, 0x13, 0xca, 0x1a, 0xc8, 0xba, 0xae, + 0x61, 0x0b, 0xed, 0x9b, 0x58, 0x43, 0x0e, 0xb6, 0x90, 0x9b, 0x3f, 0x17, 0x54, 0xce, 0xe9, 0x7a, + 0x85, 0xce, 0x96, 0xe8, 0xa4, 0xf2, 0x14, 0xcc, 0xda, 0xfb, 0xb7, 0x75, 0x16, 0x59, 0x5a, 0xd7, + 0xc1, 0x2d, 0xe3, 0xc5, 0xfc, 0xe3, 0xd4, 0x4d, 0x33, 0x64, 0x82, 0xc6, 0x55, 0x9d, 0x8a, 0x95, + 0x27, 0x41, 0xd6, 0xdd, 0x03, 0xe4, 0x74, 0x69, 0x69, 0x77, 0xbb, 0x48, 0xc7, 0xf9, 0x27, 0x98, + 0x2a, 0x93, 0xef, 0x08, 0x31, 0x89, 0x6c, 0xf7, 0x9e, 0xd1, 0xf2, 0x04, 0xe3, 0x05, 0x16, 0xd9, + 0x54, 0xc6, 0xd9, 0x6e, 0xc2, 0x7c, 0xcf, 0x32, 0x2c, 0x0f, 0x3b, 0x5d, 0x07, 0x93, 0x26, 0x9e, + 0x9d, 0xc4, 0xfc, 0xbf, 0x4c, 0x1d, 0xd3, 0x86, 0xef, 0x05, 0xb5, 0x59, 0x00, 0xa8, 0x73, 0xbd, + 0x61, 0xe1, 0x72, 0x11, 0xb2, 0xc1, 0xb8, 0x50, 0xd2, 0xc0, 0x22, 0x43, 0x96, 0x48, 0x8d, 0x2d, + 0xd7, 0x36, 0x48, 0x75, 0xfc, 0x74, 0x45, 0x8e, 0x91, 0x2a, 0xbd, 0x55, 0xdd, 0xad, 0x68, 0xea, + 0xde, 0xce, 0x6e, 0x75, 0xbb, 0x22, 0xc7, 0x9f, 0x4a, 0xa7, 0xde, 0x9e, 0x92, 0xef, 0xdf, 0xbf, + 0x7f, 0x3f, 0xb6, 0xfc, 0x9d, 0x18, 0xe4, 0xc2, 0x9d, 0xb1, 0xf2, 0x53, 0x70, 0x46, 0xbc, 0xc6, + 0xba, 0xd8, 0xd3, 0xee, 0x19, 0x0e, 0x0d, 0xd5, 0x0e, 0x62, 0xbd, 0xa5, 0xef, 0xe5, 0x79, 0xae, + 0xd5, 0xc0, 0xde, 0x0b, 0x86, 0x43, 0x02, 0xb1, 0x83, 0x3c, 0x65, 0x0b, 0xce, 0x59, 0xb6, 0xe6, + 0x7a, 0xc8, 0x6a, 0x22, 0xa7, 0xa9, 0xf5, 0x2f, 0x10, 0x34, 0xa4, 0xeb, 0xd8, 0x75, 0x6d, 0x56, + 0x22, 0x7c, 0x96, 0x0f, 0x58, 0x76, 0x83, 0x2b, 0xf7, 0x73, 0x67, 0x89, 0xab, 0x0e, 0x44, 0x44, + 0xfc, 0xb8, 0x88, 0x78, 0x14, 0xd2, 0x1d, 0xd4, 0xd5, 0xb0, 0xe5, 0x39, 0x87, 0xb4, 0x9f, 0x4b, + 0xa9, 0xa9, 0x0e, 0xea, 0x56, 0xc8, 0xf8, 0xfd, 0xdb, 0x83, 0xa0, 0x1f, 0xff, 0x31, 0x0e, 0xd9, + 0x60, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0x9e, 0xf0, 0x0f, 0x9e, 0xd8, 0x01, 0xae, + 0x96, 0x49, 0x62, 0x2f, 0x4e, 0xb2, 0x4e, 0x4b, 0x65, 0x48, 0x52, 0x54, 0xc9, 0x99, 0xc6, 0xac, + 0x7f, 0x4f, 0xa9, 0x7c, 0xa4, 0x6c, 0xc2, 0xe4, 0x6d, 0x97, 0x72, 0x4f, 0x52, 0xee, 0xc7, 0x4f, + 0xe6, 0xbe, 0xd1, 0xa0, 0xe4, 0xe9, 0x1b, 0x0d, 0x6d, 0xa7, 0xa6, 0x6e, 0x97, 0xb6, 0x54, 0x0e, + 0x57, 0xce, 0x42, 0xc2, 0x44, 0x2f, 0x1d, 0x86, 0x4b, 0x00, 0x15, 0x8d, 0xeb, 0xf8, 0xb3, 0x90, + 0xb8, 0x87, 0xd1, 0x9d, 0x70, 0xe2, 0xa5, 0xa2, 0xf7, 0x31, 0xf4, 0xd7, 0x20, 0x49, 0xfd, 0xa5, + 0x00, 0x70, 0x8f, 0xc9, 0x13, 0x4a, 0x0a, 0x12, 0xe5, 0x9a, 0x4a, 0xc2, 0x5f, 0x86, 0x2c, 0x93, + 0x6a, 0xf5, 0x6a, 0xa5, 0x5c, 0x91, 0x63, 0xcb, 0x97, 0x61, 0x92, 0x39, 0x81, 0x1c, 0x0d, 0xdf, + 0x0d, 0xf2, 0x04, 0x1f, 0x72, 0x0e, 0x49, 0xcc, 0xee, 0x6d, 0xaf, 0x57, 0x54, 0x39, 0x16, 0xdc, + 0x5e, 0x17, 0xb2, 0xc1, 0x76, 0xee, 0xc7, 0x13, 0x53, 0x7f, 0x2d, 0x41, 0x26, 0xd0, 0x9e, 0x91, + 0xc6, 0x00, 0x99, 0xa6, 0x7d, 0x4f, 0x43, 0xa6, 0x81, 0x5c, 0x1e, 0x14, 0x40, 0x45, 0x25, 0x22, + 0x19, 0x77, 0xd3, 0x7e, 0x2c, 0xc6, 0xbf, 0x26, 0x81, 0x3c, 0xd8, 0xda, 0x0d, 0x18, 0x28, 0xfd, + 0x44, 0x0d, 0x7c, 0x55, 0x82, 0x5c, 0xb8, 0x9f, 0x1b, 0x30, 0xef, 0xfc, 0x4f, 0xd4, 0xbc, 0x37, + 0x63, 0x30, 0x1d, 0xea, 0xe2, 0xc6, 0xb5, 0xee, 0x33, 0x30, 0x6b, 0x34, 0x71, 0xa7, 0x6b, 0x7b, + 0xd8, 0xd2, 0x0f, 0x35, 0x13, 0xdf, 0xc5, 0x66, 0x7e, 0x99, 0x26, 0x8a, 0xb5, 0x93, 0xfb, 0xc4, + 0xd5, 0x6a, 0x1f, 0xb7, 0x45, 0x60, 0xc5, 0xb9, 0xea, 0x46, 0x65, 0xbb, 0x5e, 0xdb, 0xad, 0xec, + 0x94, 0x6f, 0x69, 0x7b, 0x3b, 0x3f, 0xbd, 0x53, 0x7b, 0x61, 0x47, 0x95, 0x8d, 0x01, 0xb5, 0xf7, + 0xf1, 0xa8, 0xd7, 0x41, 0x1e, 0x34, 0x4a, 0x39, 0x03, 0xa3, 0xcc, 0x92, 0x27, 0x94, 0x39, 0x98, + 0xd9, 0xa9, 0x69, 0x8d, 0xea, 0x46, 0x45, 0xab, 0x5c, 0xbf, 0x5e, 0x29, 0xef, 0x36, 0xd8, 0x8b, + 0xb3, 0xaf, 0xbd, 0x1b, 0x3e, 0xd4, 0xaf, 0xc4, 0x61, 0x6e, 0x84, 0x25, 0x4a, 0x89, 0xf7, 0xec, + 0xec, 0x35, 0xe2, 0x23, 0xe3, 0x58, 0xbf, 0x4a, 0xba, 0x82, 0x3a, 0x72, 0x3c, 0xde, 0xe2, 0x3f, + 0x09, 0xc4, 0x4b, 0x96, 0x67, 0xb4, 0x0c, 0xec, 0xf0, 0x7b, 0x06, 0xd6, 0xc8, 0xcf, 0xf4, 0xe5, + 0xec, 0xaa, 0xe1, 0xc3, 0xa0, 0x74, 0x6d, 0xd7, 0xf0, 0x8c, 0xbb, 0x58, 0x33, 0x2c, 0x71, 0x29, + 0x41, 0x1a, 0xfb, 0x84, 0x2a, 0x8b, 0x99, 0xaa, 0xe5, 0xf9, 0xda, 0x16, 0x6e, 0xa3, 0x01, 0x6d, + 0x92, 0xc0, 0xe3, 0xaa, 0x2c, 0x66, 0x7c, 0xed, 0xf3, 0x90, 0x6d, 0xda, 0x3d, 0xd2, 0x26, 0x31, + 0x3d, 0x52, 0x2f, 0x24, 0x35, 0xc3, 0x64, 0xbe, 0x0a, 0xef, 0x63, 0xfb, 0xb7, 0x21, 0x59, 0x35, + 0xc3, 0x64, 0x4c, 0xe5, 0x02, 0xcc, 0xa0, 0x76, 0xdb, 0x21, 0xe4, 0x82, 0x88, 0x75, 0xe6, 0x39, + 0x5f, 0x4c, 0x15, 0x17, 0x6f, 0x40, 0x4a, 0xf8, 0x81, 0x94, 0x64, 0xe2, 0x09, 0xad, 0xcb, 0xee, + 0xa4, 0x62, 0x2b, 0x69, 0x35, 0x65, 0x89, 0xc9, 0xf3, 0x90, 0x35, 0x5c, 0xad, 0x7f, 0x39, 0x1a, + 0x5b, 0x8a, 0xad, 0xa4, 0xd4, 0x8c, 0xe1, 0xfa, 0xb7, 0x61, 0xcb, 0xaf, 0xc7, 0x20, 0x17, 0xbe, + 0xdc, 0x55, 0x36, 0x20, 0x65, 0xda, 0x3a, 0xa2, 0xa1, 0xc5, 0xbe, 0x2c, 0xac, 0x44, 0xdc, 0x07, + 0xaf, 0x6e, 0x71, 0x7d, 0xd5, 0x47, 0x2e, 0xfe, 0xbd, 0x04, 0x29, 0x21, 0x56, 0x16, 0x20, 0xd1, + 0x45, 0xde, 0x01, 0xa5, 0x4b, 0xae, 0xc7, 0x64, 0x49, 0xa5, 0x63, 0x22, 0x77, 0xbb, 0xc8, 0xa2, + 0x21, 0xc0, 0xe5, 0x64, 0x4c, 0xf6, 0xd5, 0xc4, 0xa8, 0x49, 0xdb, 0x7e, 0xbb, 0xd3, 0xc1, 0x96, + 0xe7, 0x8a, 0x7d, 0xe5, 0xf2, 0x32, 0x17, 0x2b, 0x4f, 0xc3, 0xac, 0xe7, 0x20, 0xc3, 0x0c, 0xe9, + 0x26, 0xa8, 0xae, 0x2c, 0x26, 0x7c, 0xe5, 0x22, 0x9c, 0x15, 0xbc, 0x4d, 0xec, 0x21, 0xfd, 0x00, + 0x37, 0xfb, 0xa0, 0x49, 0x7a, 0x73, 0x78, 0x86, 0x2b, 0x6c, 0xf0, 0x79, 0x81, 0x5d, 0xfe, 0x9e, + 0x04, 0xb3, 0xe2, 0x45, 0xa5, 0xe9, 0x3b, 0x6b, 0x1b, 0x00, 0x59, 0x96, 0xed, 0x05, 0xdd, 0x35, + 0x1c, 0xca, 0x43, 0xb8, 0xd5, 0x92, 0x0f, 0x52, 0x03, 0x04, 0x8b, 0x1d, 0x80, 0xfe, 0xcc, 0xb1, + 0x6e, 0x3b, 0x07, 0x19, 0x7e, 0x73, 0x4f, 0x3f, 0xff, 0xb0, 0x57, 0x5b, 0x60, 0x22, 0xf2, 0x46, + 0xa3, 0xcc, 0x43, 0x72, 0x1f, 0xb7, 0x0d, 0x8b, 0xdf, 0x27, 0xb2, 0x81, 0xb8, 0xa5, 0x4c, 0xf8, + 0xb7, 0x94, 0xeb, 0x37, 0x61, 0x4e, 0xb7, 0x3b, 0x83, 0xe6, 0xae, 0xcb, 0x03, 0xaf, 0xd7, 0xee, + 0x27, 0xa4, 0x4f, 0x43, 0xbf, 0xc5, 0xfc, 0x72, 0x2c, 0xbe, 0x59, 0x5f, 0xff, 0x6a, 0x6c, 0x71, + 0x93, 0xe1, 0xea, 0x62, 0x99, 0x2a, 0x6e, 0x99, 0x58, 0x27, 0xa6, 0xc3, 0x0f, 0x3e, 0x04, 0x1f, + 0x69, 0x1b, 0xde, 0x41, 0x6f, 0x7f, 0x55, 0xb7, 0x3b, 0x6b, 0x6d, 0xbb, 0x6d, 0xf7, 0x3f, 0x77, + 0x91, 0x11, 0x1d, 0xd0, 0x5f, 0xfc, 0x93, 0x57, 0xda, 0x97, 0x2e, 0x46, 0x7e, 0x1f, 0x2b, 0xee, + 0xc0, 0x1c, 0x57, 0xd6, 0xe8, 0x9d, 0x3b, 0x7b, 0x35, 0x50, 0x4e, 0xbc, 0x77, 0xc9, 0x7f, 0xe3, + 0x2d, 0x5a, 0xab, 0xd5, 0x59, 0x0e, 0x25, 0x73, 0xec, 0x05, 0xa2, 0xa8, 0xc2, 0x23, 0x21, 0x3e, + 0x76, 0x2e, 0xb1, 0x13, 0xc1, 0xf8, 0x1d, 0xce, 0x38, 0x17, 0x60, 0x6c, 0x70, 0x68, 0xb1, 0x0c, + 0xd3, 0xa7, 0xe1, 0xfa, 0x5b, 0xce, 0x95, 0xc5, 0x41, 0x92, 0x4d, 0x98, 0xa1, 0x24, 0x7a, 0xcf, + 0xf5, 0xec, 0x0e, 0x4d, 0x7a, 0x27, 0xd3, 0xfc, 0xdd, 0x5b, 0xec, 0xa0, 0xe4, 0x08, 0xac, 0xec, + 0xa3, 0x8a, 0x45, 0xa0, 0x9f, 0x19, 0x9a, 0x58, 0x37, 0x23, 0x18, 0xde, 0xe0, 0x86, 0xf8, 0xfa, + 0xc5, 0x4f, 0xc1, 0x3c, 0xf9, 0x4d, 0x73, 0x52, 0xd0, 0x92, 0xe8, 0x5b, 0xa6, 0xfc, 0xf7, 0x5e, + 0x66, 0x67, 0x71, 0xce, 0x27, 0x08, 0xd8, 0x14, 0xd8, 0xc5, 0x36, 0xf6, 0x3c, 0xec, 0xb8, 0x1a, + 0x32, 0x47, 0x99, 0x17, 0x78, 0x4d, 0xcf, 0x7f, 0xf1, 0x9d, 0xf0, 0x2e, 0x6e, 0x32, 0x64, 0xc9, + 0x34, 0x8b, 0x7b, 0x70, 0x66, 0x44, 0x54, 0x8c, 0xc1, 0xf9, 0x0a, 0xe7, 0x9c, 0x1f, 0x8a, 0x0c, + 0x42, 0x5b, 0x07, 0x21, 0xf7, 0xf7, 0x72, 0x0c, 0xce, 0xdf, 0xe6, 0x9c, 0x0a, 0xc7, 0x8a, 0x2d, + 0x25, 0x8c, 0x37, 0x60, 0xf6, 0x2e, 0x76, 0xf6, 0x6d, 0x97, 0x5f, 0x8d, 0x8c, 0x41, 0xf7, 0x2a, + 0xa7, 0x9b, 0xe1, 0x40, 0x7a, 0x57, 0x42, 0xb8, 0x9e, 0x83, 0x54, 0x0b, 0xe9, 0x78, 0x0c, 0x8a, + 0x2f, 0x71, 0x8a, 0x29, 0xa2, 0x4f, 0xa0, 0x25, 0xc8, 0xb6, 0x6d, 0x5e, 0x96, 0xa2, 0xe1, 0xaf, + 0x71, 0x78, 0x46, 0x60, 0x38, 0x45, 0xd7, 0xee, 0xf6, 0x4c, 0x52, 0xb3, 0xa2, 0x29, 0x7e, 0x47, + 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x85, 0x5b, 0x7f, 0x57, 0x50, 0xb8, 0x01, 0x7f, 0x3e, 0x0f, 0x19, + 0xdb, 0x32, 0x0f, 0x6d, 0x6b, 0x1c, 0x23, 0x7e, 0x8f, 0x33, 0x00, 0x87, 0x10, 0x82, 0x6b, 0x90, + 0x1e, 0x77, 0x23, 0x7e, 0xff, 0x1d, 0x71, 0x3c, 0xc4, 0x0e, 0x6c, 0xc2, 0x8c, 0x48, 0x50, 0x86, + 0x6d, 0x8d, 0x41, 0xf1, 0x07, 0x9c, 0x22, 0x17, 0x80, 0xf1, 0x65, 0x78, 0xd8, 0xf5, 0xda, 0x78, + 0x1c, 0x92, 0xd7, 0xc5, 0x32, 0x38, 0x84, 0xbb, 0x72, 0x1f, 0x5b, 0xfa, 0xc1, 0x78, 0x0c, 0x5f, + 0x11, 0xae, 0x14, 0x18, 0x42, 0x51, 0x86, 0xe9, 0x0e, 0x72, 0xdc, 0x03, 0x64, 0x8e, 0xb5, 0x1d, + 0x7f, 0xc8, 0x39, 0xb2, 0x3e, 0x88, 0x7b, 0xa4, 0x67, 0x9d, 0x86, 0xe6, 0xab, 0xc2, 0x23, 0x01, + 0x18, 0x3f, 0x7a, 0xae, 0x47, 0x2f, 0xa0, 0x4e, 0xc3, 0xf6, 0x35, 0x71, 0xf4, 0x18, 0x76, 0x3b, + 0xc8, 0x78, 0x0d, 0xd2, 0xae, 0xf1, 0xd2, 0x58, 0x34, 0x7f, 0x24, 0x76, 0x9a, 0x02, 0x08, 0xf8, + 0x16, 0x9c, 0x1d, 0x59, 0x26, 0xc6, 0x20, 0xfb, 0x63, 0x4e, 0xb6, 0x30, 0xa2, 0x54, 0xf0, 0x94, + 0x70, 0x5a, 0xca, 0x3f, 0x11, 0x29, 0x01, 0x0f, 0x70, 0xd5, 0xc9, 0x8b, 0x82, 0x8b, 0x5a, 0xa7, + 0xf3, 0xda, 0x9f, 0x0a, 0xaf, 0x31, 0x6c, 0xc8, 0x6b, 0xbb, 0xb0, 0xc0, 0x19, 0x4f, 0xb7, 0xaf, + 0x5f, 0x17, 0x89, 0x95, 0xa1, 0xf7, 0xc2, 0xbb, 0xfb, 0x33, 0xb0, 0xe8, 0xbb, 0x53, 0x74, 0xa4, + 0xae, 0xd6, 0x41, 0xdd, 0x31, 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0x5b, 0x5a, 0x77, 0x1b, + 0x75, 0x09, 0xf9, 0x4d, 0xc8, 0x0b, 0xf2, 0x9e, 0xe5, 0x60, 0xdd, 0x6e, 0x5b, 0xc6, 0x4b, 0xb8, + 0x39, 0x06, 0xf5, 0x9f, 0x0d, 0x6c, 0xd5, 0x5e, 0x00, 0x4e, 0x98, 0xab, 0x20, 0xfb, 0xbd, 0x8a, + 0x66, 0x74, 0xba, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0xb9, 0xd8, 0x29, 0x1f, 0x57, 0xa5, 0xb0, 0x62, + 0x05, 0x72, 0x74, 0x38, 0x6e, 0x48, 0xfe, 0x05, 0x27, 0x9a, 0xee, 0xa3, 0x78, 0xe2, 0xd0, 0xed, + 0x4e, 0x17, 0x39, 0xe3, 0xe4, 0xbf, 0xbf, 0x14, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0xbb, + 0x98, 0x54, 0xfb, 0x31, 0x18, 0xbe, 0x29, 0x12, 0x87, 0xc0, 0x70, 0x0a, 0xd1, 0x30, 0x8c, 0x41, + 0xf1, 0x57, 0x82, 0x42, 0x60, 0x08, 0xc5, 0x27, 0xfb, 0x85, 0xd6, 0xc1, 0x6d, 0xc3, 0xf5, 0x1c, + 0xd6, 0x07, 0x9f, 0x4c, 0xf5, 0xad, 0x77, 0xc2, 0x4d, 0x98, 0x1a, 0x80, 0x16, 0x6f, 0xc0, 0xcc, + 0x40, 0x8b, 0xa1, 0x44, 0xfd, 0xcf, 0x42, 0xfe, 0x67, 0xdf, 0xe3, 0xc9, 0x28, 0xdc, 0x61, 0x14, + 0xb7, 0xc8, 0xbe, 0x87, 0xfb, 0x80, 0x68, 0xb2, 0x97, 0xdf, 0xf3, 0xb7, 0x3e, 0xd4, 0x06, 0x14, + 0xaf, 0xc3, 0x74, 0xa8, 0x07, 0x88, 0xa6, 0xfa, 0x2c, 0xa7, 0xca, 0x06, 0x5b, 0x80, 0xe2, 0x65, + 0x48, 0x90, 0x7a, 0x1e, 0x0d, 0xff, 0x39, 0x0e, 0xa7, 0xea, 0xc5, 0x8f, 0x41, 0x4a, 0xd4, 0xf1, + 0x68, 0xe8, 0xcf, 0x73, 0xa8, 0x0f, 0x21, 0x70, 0x51, 0xc3, 0xa3, 0xe1, 0xbf, 0x20, 0xe0, 0x02, + 0x42, 0xe0, 0xe3, 0xbb, 0xf0, 0xdb, 0xbf, 0x94, 0xe0, 0x79, 0x58, 0xf8, 0xee, 0x1a, 0x4c, 0xf1, + 0xe2, 0x1d, 0x8d, 0xfe, 0x1c, 0x7f, 0xb8, 0x40, 0x14, 0x9f, 0x85, 0xe4, 0x98, 0x0e, 0xff, 0x65, + 0x0e, 0x65, 0xfa, 0xc5, 0x32, 0x64, 0x02, 0x05, 0x3b, 0x1a, 0xfe, 0x79, 0x0e, 0x0f, 0xa2, 0x88, + 0xe9, 0xbc, 0x60, 0x47, 0x13, 0xfc, 0x8a, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x46, + 0xff, 0xaa, 0xf0, 0xba, 0x80, 0x14, 0x9f, 0x87, 0xb4, 0x9f, 0x7f, 0xa3, 0xf1, 0xbf, 0xc6, 0xf1, + 0x7d, 0x0c, 0xf1, 0x40, 0x20, 0xff, 0x47, 0x53, 0xfc, 0xba, 0xf0, 0x40, 0x00, 0x45, 0x8e, 0xd1, + 0x60, 0x4d, 0x8f, 0x66, 0xfa, 0x0d, 0x71, 0x8c, 0x06, 0x4a, 0x3a, 0xd9, 0x4d, 0x9a, 0x06, 0xa3, + 0x29, 0x7e, 0x53, 0xec, 0x26, 0xd5, 0x27, 0x66, 0x0c, 0x16, 0xc9, 0x68, 0x8e, 0xdf, 0x12, 0x66, + 0x0c, 0xd4, 0xc8, 0x62, 0x1d, 0x94, 0xe1, 0x02, 0x19, 0xcd, 0xf7, 0x05, 0xce, 0x37, 0x3b, 0x54, + 0x1f, 0x8b, 0x2f, 0xc0, 0xc2, 0xe8, 0xe2, 0x18, 0xcd, 0xfa, 0xc5, 0xf7, 0x06, 0x5e, 0x67, 0x82, + 0xb5, 0xb1, 0xb8, 0xdb, 0xcf, 0xb2, 0xc1, 0xc2, 0x18, 0x4d, 0xfb, 0xca, 0x7b, 0xe1, 0x44, 0x1b, + 0xac, 0x8b, 0xc5, 0x12, 0x40, 0xbf, 0x26, 0x45, 0x73, 0xbd, 0xca, 0xb9, 0x02, 0x20, 0x72, 0x34, + 0x78, 0x49, 0x8a, 0xc6, 0x7f, 0x49, 0x1c, 0x0d, 0x8e, 0x20, 0x47, 0x43, 0x54, 0xa3, 0x68, 0xf4, + 0x6b, 0xe2, 0x68, 0x08, 0x48, 0xf1, 0x1a, 0xa4, 0xac, 0x9e, 0x69, 0x92, 0xd8, 0x52, 0x4e, 0xfe, + 0x37, 0xa2, 0xfc, 0xbf, 0x3e, 0xe4, 0x60, 0x01, 0x28, 0x5e, 0x86, 0x24, 0xee, 0xec, 0xe3, 0x66, + 0x14, 0xf2, 0xdf, 0x1e, 0x8a, 0x7c, 0x42, 0xb4, 0x8b, 0xcf, 0x03, 0xb0, 0x97, 0x69, 0xfa, 0x95, + 0x28, 0x02, 0xfb, 0xef, 0x0f, 0xf9, 0x7f, 0x28, 0xf4, 0x21, 0x7d, 0x02, 0xf6, 0xff, 0x0e, 0x27, + 0x13, 0xbc, 0x13, 0x26, 0xa0, 0x2f, 0xe0, 0xcf, 0xc1, 0xd4, 0x6d, 0xd7, 0xb6, 0x3c, 0xd4, 0x8e, + 0x42, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0x8e, 0xed, 0x60, 0x0f, 0xb5, 0xdd, 0x28, 0xec, + 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x1d, 0xb9, 0xde, 0x38, 0xeb, 0xfe, 0x2f, 0x01, 0x16, 0x00, + 0x62, 0x34, 0xf9, 0x7d, 0x07, 0x1f, 0x46, 0x61, 0xdf, 0x15, 0x46, 0x73, 0xfd, 0xe2, 0xc7, 0x20, + 0x4d, 0x7e, 0xb2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x07, 0xf7, 0x11, 0xe4, 0xc9, 0xae, 0xd7, + 0xf4, 0x8c, 0x68, 0x67, 0xff, 0x0f, 0xdf, 0x69, 0xa1, 0x5f, 0x2c, 0x41, 0xc6, 0xf5, 0x9a, 0xcd, + 0x1e, 0xef, 0x68, 0x22, 0xe0, 0x3f, 0x78, 0xe8, 0xbf, 0xe4, 0xfa, 0x98, 0xf5, 0xf3, 0xa3, 0x2f, + 0xeb, 0x60, 0xd3, 0xde, 0xb4, 0xd9, 0x35, 0x1d, 0x7c, 0x3e, 0x09, 0x4b, 0xba, 0xdd, 0xd9, 0xb7, + 0xdd, 0x35, 0x3f, 0x91, 0xac, 0xf9, 0xf6, 0x8b, 0x8b, 0x36, 0x5f, 0xb0, 0x78, 0xba, 0x2b, 0xba, + 0xe5, 0xbf, 0x89, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x87, 0x4a, 0x17, 0xe6, 0xc8, 0xef, + 0x6d, 0xd4, 0xa5, 0x17, 0x3e, 0xfc, 0x84, 0xf1, 0x2b, 0xd0, 0x0f, 0xaf, 0xf6, 0x9f, 0x2a, 0x10, + 0xab, 0x23, 0xd4, 0xe9, 0xa7, 0xe3, 0x75, 0xf9, 0x8d, 0x7f, 0x3a, 0x37, 0xf1, 0x8b, 0xff, 0x7c, + 0x2e, 0xb5, 0x7d, 0xf8, 0x82, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, 0x3e, 0x2b, 0xc1, 0xa3, + 0x23, 0xe4, 0x3b, 0xfc, 0x18, 0xf2, 0x0f, 0x09, 0x97, 0xc6, 0x7c, 0xb4, 0x80, 0x31, 0x13, 0xb2, + 0xa1, 0xc7, 0x9f, 0xf4, 0x98, 0xc5, 0x5b, 0x90, 0x3f, 0x6e, 0x25, 0x8a, 0x0c, 0xf1, 0x3b, 0xf8, + 0x90, 0xff, 0x73, 0x28, 0xf9, 0xa9, 0x5c, 0xe8, 0xff, 0x73, 0x99, 0xb4, 0x92, 0xb9, 0x38, 0x1b, + 0xb0, 0x8e, 0x3f, 0x8c, 0xcd, 0x17, 0x63, 0x57, 0xa5, 0x45, 0x04, 0x4b, 0x51, 0x96, 0xfe, 0x3f, + 0x1f, 0xb1, 0x5c, 0x80, 0x49, 0x26, 0x54, 0xe6, 0x21, 0x59, 0xb5, 0xbc, 0x2b, 0x97, 0x28, 0x55, + 0x5c, 0x65, 0x83, 0xf5, 0xad, 0x37, 0x1e, 0x14, 0x26, 0xbe, 0xfb, 0xa0, 0x30, 0xf1, 0x0f, 0x0f, + 0x0a, 0x13, 0x6f, 0x3e, 0x28, 0x48, 0x6f, 0x3f, 0x28, 0x48, 0xef, 0x3e, 0x28, 0x48, 0x3f, 0x7c, + 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, 0x15, 0xa4, 0x6f, 0x1d, + 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0x37, 0x8e, 0x0a, 0xd2, 0x77, 0x8f, 0x0a, 0x13, 0x6f, 0x1e, + 0x15, 0xa4, 0xb7, 0x8f, 0x0a, 0x13, 0xef, 0x1e, 0x15, 0xa4, 0x1f, 0x1e, 0x15, 0x26, 0xee, 0x7f, + 0xbf, 0x30, 0xf1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xdc, 0x4a, 0xcd, 0xed, 0x30, 0x00, + 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -599,53 +618,40 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.CastMapValueMessage) > 0 { for k := range m.CastMapValueMessage { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.CastMapValueMessage[k] - msgSize := ((*Wilson)(&v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if ((*Wilson)(&v)) != nil { + msgSize = ((*Wilson)(&v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) + } + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(data[i:]) + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) + n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -654,85 +660,88 @@ func (m *Castaway) MarshalTo(data []byte) (int, error) { } if len(m.CastMapValueMessageNullable) > 0 { for k := range m.CastMapValueMessageNullable { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.CastMapValueMessageNullable[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if ((*Wilson)(v)) != nil { + msgSize = ((*Wilson)(v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) } - msgSize := ((*Wilson)(v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + if ((*Wilson)(v)) != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) + n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(*m.Int64)) + i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Castvalue(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Castvalue(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Castvalue(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Castvalue(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCastvalue(data []byte, offset int, v uint64) int { +func encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { @@ -798,7 +807,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -806,43 +815,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -863,8 +872,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -951,28 +961,31 @@ func valueToStringCastvalue(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 337 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0xcf, 0x4d, 0x2c, 0x2a, 0xce, 0x48, 0xcc, 0x49, 0x2d, 0xd2, 0x4f, 0x4e, 0x2c, - 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, - 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x01, 0xf5, 0xe8, 0xa7, 0xe7, 0xa7, 0xe7, - 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90, - 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, 0xf6, - 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, 0xc0, - 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, 0x92, - 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, 0x67, - 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, 0xc6, 0x62, - 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, - 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, 0xb9, 0x24, - 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, 0xac, 0x41, - 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, 0x88, 0xe4, - 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, 0x2e, 0xa5, - 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, 0x89, 0x99, - 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, 0x86, 0x0b, - 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, 0x07, 0x10, - 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, 0xe2, 0x13, - 0x40, 0x7c, 0xe1, 0x11, 0x50, 0x2d, 0x90, 0x7e, 0x01, 0xa4, 0x3f, 0x00, 0xe9, 0x1f, 0x40, 0xba, - 0xe1, 0xb1, 0x1c, 0x03, 0x20, 0x00, 0x00, 0xff, 0xff, 0x15, 0xb6, 0x94, 0x56, 0x8e, 0x02, 0x00, - 0x00, + // 358 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41, + 0x14, 0xc5, 0xe7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0xef, 0x15, 0x1b, 0x4c, 0x2e, 0x1b, + 0x1a, 0x29, 0x74, 0x37, 0x21, 0xc4, 0x18, 0x4b, 0x8c, 0x85, 0x89, 0x58, 0x50, 0x68, 0x2c, 0x67, + 0xc9, 0xba, 0x10, 0x17, 0x86, 0xec, 0x87, 0x66, 0x3b, 0x0a, 0x2b, 0xff, 0x12, 0x4b, 0x4b, 0x4b, + 0xed, 0x28, 0x29, 0xad, 0x94, 0x19, 0x1b, 0x4a, 0x4a, 0x4a, 0xc3, 0xac, 0xf8, 0x91, 0xe0, 0x47, + 0x62, 0x77, 0xef, 0x99, 0x7b, 0xce, 0xef, 0x0c, 0x35, 0x5b, 0xbc, 0xeb, 0xf0, 0xd0, 0xee, 0xb2, + 0x20, 0x6c, 0x33, 0xdf, 0x0d, 0xec, 0x16, 0x0b, 0xa3, 0x53, 0xe6, 0xc7, 0xae, 0xd5, 0x0f, 0x78, + 0xc4, 0xf5, 0xdf, 0x2f, 0x42, 0x71, 0xdd, 0xeb, 0x44, 0xed, 0xd8, 0xb1, 0x5a, 0xbc, 0x6b, 0x7b, + 0xdc, 0xe3, 0xb6, 0xba, 0x70, 0xe2, 0x63, 0xb5, 0xa9, 0x45, 0x4d, 0xa9, 0xb3, 0x7c, 0xab, 0xd1, + 0xdc, 0x36, 0x0b, 0x23, 0x76, 0xc6, 0x12, 0xbd, 0x4f, 0xff, 0xcd, 0xe7, 0x06, 0xeb, 0x1f, 0xcc, + 0xb3, 0x1a, 0x6e, 0x18, 0x32, 0xcf, 0x35, 0xc0, 0xd4, 0x2a, 0xf9, 0xea, 0x9a, 0xf5, 0x4a, 0x5d, + 0x38, 0xac, 0x25, 0xe7, 0x3b, 0xbd, 0x28, 0x48, 0xea, 0x85, 0xe1, 0x7d, 0x89, 0x5c, 0x3c, 0x94, + 0x72, 0x8d, 0xe4, 0xb0, 0xe3, 0x87, 0xbc, 0xd7, 0x5c, 0x16, 0xad, 0x9f, 0x03, 0x5d, 0x59, 0xa2, + 0xef, 0xc7, 0xbe, 0xcf, 0x1c, 0xdf, 0x35, 0x32, 0x0a, 0x5d, 0xfb, 0x26, 0x7a, 0x61, 0x4b, 0x2b, + 0xfc, 0x79, 0x87, 0xff, 0x0c, 0x53, 0x3c, 0xa2, 0xc6, 0x47, 0x3f, 0xd1, 0x0b, 0x54, 0x3b, 0x71, + 0x13, 0x03, 0x4c, 0xa8, 0x64, 0x9b, 0xf3, 0x51, 0x5f, 0xa5, 0x59, 0xd5, 0xc5, 0xc8, 0x98, 0x50, + 0xc9, 0x57, 0xff, 0xbe, 0x69, 0xf7, 0x0c, 0x4b, 0xdf, 0xb7, 0x32, 0x9b, 0x50, 0x64, 0xd4, 0xfc, + 0xaa, 0xe9, 0x0f, 0x11, 0x65, 0xa4, 0xbf, 0x52, 0x51, 0xff, 0x4f, 0xb3, 0xbb, 0xbd, 0x68, 0xa3, + 0xa6, 0xa2, 0xb4, 0x66, 0xba, 0xd4, 0xf7, 0x86, 0x02, 0xc9, 0x48, 0x20, 0xb9, 0x13, 0x48, 0xc6, + 0x02, 0x61, 0x22, 0x10, 0xa6, 0x02, 0x61, 0x26, 0x10, 0x06, 0x12, 0xe1, 0x52, 0x22, 0x5c, 0x49, + 0x84, 0x6b, 0x89, 0x70, 0x23, 0x11, 0x86, 0x12, 0x61, 0x24, 0x91, 0x8c, 0x25, 0xc2, 0x44, 0x22, + 0x99, 0x4a, 0x84, 0x99, 0x44, 0x32, 0x78, 0x44, 0xf2, 0x14, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x22, + 0x8c, 0x46, 0x8e, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto index 5660ae6a..728312b8 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go index 302a1f3a..cf7e0271 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestCastawayMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +101,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +115,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -136,18 +136,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -171,20 +171,20 @@ func TestWilsonMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +203,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +217,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +280,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +297,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +314,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +331,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -350,12 +350,12 @@ func TestCastvalueDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -365,12 +365,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +424,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +460,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go index 4871694a..04823361 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -40,11 +38,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -53,7 +53,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -74,224 +74,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3471 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0x57, - 0xf5, 0x5f, 0xc7, 0x76, 0x62, 0x1f, 0x3b, 0x8e, 0x33, 0x49, 0x77, 0xbd, 0xd9, 0x76, 0xb3, 0xeb, - 0x3e, 0x76, 0xbb, 0x6d, 0x93, 0xfe, 0xf7, 0xdf, 0xc7, 0xd6, 0xfd, 0xff, 0x5b, 0xe5, 0xe1, 0x4d, - 0xbd, 0xca, 0x8b, 0x49, 0xd2, 0xee, 0x96, 0x0f, 0xa3, 0xc9, 0xf8, 0xc6, 0xf1, 0xee, 0x78, 0xc6, - 0x78, 0xc6, 0xbb, 0x9b, 0x7e, 0x2a, 0x6a, 0x01, 0x15, 0x04, 0x94, 0x87, 0x44, 0xdf, 0xd0, 0x4a, - 0xd0, 0x52, 0x5e, 0x2d, 0x2f, 0x21, 0x3e, 0x15, 0xa1, 0x42, 0x3f, 0x21, 0xe0, 0x13, 0x1f, 0x10, - 0xb4, 0xa5, 0x12, 0x05, 0x0a, 0x14, 0x69, 0x25, 0x2a, 0xf5, 0x0b, 0xe7, 0xbe, 0xc6, 0x33, 0xb6, - 0x93, 0x71, 0x8a, 0x4a, 0x89, 0x34, 0xca, 0xcc, 0xb9, 0xe7, 0xf7, 0x9b, 0x7b, 0xcf, 0x3d, 0xf7, - 0x9c, 0x73, 0xef, 0x18, 0x7e, 0xfa, 0x3f, 0x70, 0xa8, 0x62, 0xdb, 0x15, 0x93, 0x4c, 0xd6, 0x1b, - 0xb6, 0x6b, 0xaf, 0x37, 0x37, 0x26, 0xcb, 0xc4, 0x31, 0x1a, 0xd5, 0xba, 0x6b, 0x37, 0x26, 0x98, - 0x4c, 0x19, 0xe2, 0x1a, 0x13, 0x52, 0x23, 0xbf, 0x00, 0xc3, 0x27, 0xab, 0x26, 0x99, 0xf5, 0x14, - 0x57, 0x88, 0xab, 0x9c, 0x80, 0xd8, 0x06, 0x0a, 0x73, 0x91, 0x43, 0xd1, 0xa3, 0xa9, 0xe3, 0x57, - 0x4d, 0xb4, 0x81, 0x26, 0x82, 0x88, 0x65, 0x2a, 0x56, 0x19, 0x22, 0xff, 0x46, 0x0c, 0x46, 0xba, - 0xb4, 0x2a, 0x0a, 0xc4, 0x2c, 0xbd, 0x46, 0x19, 0x23, 0x47, 0x93, 0x2a, 0xbb, 0x57, 0x72, 0x30, - 0x50, 0xd7, 0x8d, 0x73, 0x7a, 0x85, 0xe4, 0xfa, 0x98, 0x58, 0x3e, 0x2a, 0x07, 0x01, 0xca, 0xa4, - 0x4e, 0xac, 0x32, 0xb1, 0x8c, 0xad, 0x5c, 0x14, 0x7b, 0x91, 0x54, 0x7d, 0x12, 0xe5, 0x3a, 0x18, - 0xae, 0x37, 0xd7, 0xcd, 0xaa, 0xa1, 0xf9, 0xd4, 0x00, 0xd5, 0xe2, 0x6a, 0x96, 0x37, 0xcc, 0xb6, - 0x94, 0x8f, 0xc0, 0xd0, 0x05, 0xa2, 0x9f, 0xf3, 0xab, 0xa6, 0x98, 0x6a, 0x86, 0x8a, 0x7d, 0x8a, - 0x33, 0x90, 0xae, 0x11, 0xc7, 0xc1, 0x0e, 0x68, 0xee, 0x56, 0x9d, 0xe4, 0x62, 0x6c, 0xf4, 0x87, - 0x3a, 0x46, 0xdf, 0x3e, 0xf2, 0x94, 0x40, 0xad, 0x22, 0x48, 0x99, 0x82, 0x24, 0xb1, 0x9a, 0x35, - 0xce, 0x10, 0xdf, 0xc6, 0x7e, 0x45, 0xd4, 0x68, 0x67, 0x49, 0x50, 0x98, 0xa0, 0x18, 0x70, 0x48, - 0xe3, 0x7c, 0xd5, 0x20, 0xb9, 0x7e, 0x46, 0x70, 0xa4, 0x83, 0x60, 0x85, 0xb7, 0xb7, 0x73, 0x48, - 0x1c, 0x0e, 0x25, 0x49, 0x2e, 0xba, 0xc4, 0x72, 0xaa, 0xb6, 0x95, 0x1b, 0x60, 0x24, 0x57, 0x77, - 0x99, 0x45, 0x62, 0x96, 0xdb, 0x29, 0x5a, 0x38, 0xe5, 0x16, 0x18, 0xb0, 0xeb, 0x2e, 0xde, 0x39, - 0xb9, 0x04, 0xce, 0x4f, 0xea, 0xf8, 0xe5, 0x5d, 0x1d, 0x61, 0x89, 0xeb, 0xa8, 0x52, 0x59, 0x29, - 0x41, 0xd6, 0xb1, 0x9b, 0x0d, 0x83, 0x68, 0x86, 0x5d, 0x26, 0x5a, 0xd5, 0xda, 0xb0, 0x73, 0x49, - 0x46, 0x30, 0xde, 0x39, 0x10, 0xa6, 0x38, 0x83, 0x7a, 0x25, 0x54, 0x53, 0x33, 0x4e, 0xe0, 0x59, - 0xd9, 0x0b, 0xfd, 0xce, 0x96, 0xe5, 0xea, 0x17, 0x73, 0x69, 0xe6, 0x21, 0xe2, 0x29, 0xff, 0xcf, - 0x38, 0x0c, 0xf5, 0xe2, 0x62, 0xb7, 0x43, 0x7c, 0x83, 0x8e, 0x12, 0x1d, 0x6c, 0x17, 0x36, 0xe0, - 0x98, 0xa0, 0x11, 0xfb, 0xdf, 0xa3, 0x11, 0xa7, 0x20, 0x65, 0x11, 0xc7, 0x25, 0x65, 0xee, 0x11, - 0xd1, 0x1e, 0x7d, 0x0a, 0x38, 0xa8, 0xd3, 0xa5, 0x62, 0xef, 0xc9, 0xa5, 0x4e, 0xc3, 0x90, 0xd7, - 0x25, 0xad, 0xa1, 0x5b, 0x15, 0xe9, 0x9b, 0x93, 0x61, 0x3d, 0x99, 0x28, 0x4a, 0x9c, 0x4a, 0x61, - 0x6a, 0x86, 0x04, 0x9e, 0x95, 0x59, 0x00, 0xdb, 0x22, 0xf6, 0x06, 0x2e, 0x2f, 0xc3, 0x44, 0x3f, - 0xe9, 0x6e, 0xa5, 0x25, 0xaa, 0xd2, 0x61, 0x25, 0x9b, 0x4b, 0x0d, 0x53, 0xb9, 0xad, 0xe5, 0x6a, - 0x03, 0xdb, 0x78, 0xca, 0x02, 0x5f, 0x64, 0x1d, 0xde, 0xb6, 0x06, 0x99, 0x06, 0xa1, 0x7e, 0x8f, - 0x26, 0xe6, 0x23, 0x4b, 0xb2, 0x4e, 0x4c, 0x84, 0x8e, 0x4c, 0x15, 0x30, 0x3e, 0xb0, 0xc1, 0x86, - 0xff, 0x51, 0xb9, 0x12, 0x3c, 0x81, 0xc6, 0xdc, 0x0a, 0x58, 0x14, 0x4a, 0x4b, 0xe1, 0x22, 0xca, - 0xc6, 0x4e, 0x40, 0x26, 0x68, 0x1e, 0x65, 0x14, 0xe2, 0x8e, 0xab, 0x37, 0x5c, 0xe6, 0x85, 0x71, - 0x95, 0x3f, 0x28, 0x59, 0x88, 0x62, 0x90, 0x61, 0x51, 0x2e, 0xae, 0xd2, 0xdb, 0xb1, 0x5b, 0x61, - 0x30, 0xf0, 0xfa, 0x5e, 0x81, 0xf9, 0x47, 0xfa, 0x61, 0xb4, 0x9b, 0xcf, 0x75, 0x75, 0x7f, 0x5c, - 0x3e, 0xe8, 0x01, 0xeb, 0xa4, 0x81, 0x7e, 0x47, 0x19, 0xc4, 0x13, 0x7a, 0x54, 0xdc, 0xd4, 0xd7, - 0x89, 0x89, 0xde, 0x14, 0x39, 0x9a, 0x39, 0x7e, 0x5d, 0x4f, 0x5e, 0x3d, 0x31, 0x4f, 0x21, 0x2a, - 0x47, 0x2a, 0x77, 0x40, 0x4c, 0x84, 0x38, 0xca, 0x70, 0xac, 0x37, 0x06, 0xea, 0x8b, 0x2a, 0xc3, - 0x29, 0x07, 0x20, 0x49, 0xff, 0x73, 0xdb, 0xf6, 0xb3, 0x3e, 0x27, 0xa8, 0x80, 0xda, 0x55, 0x19, - 0x83, 0x04, 0x73, 0xb3, 0x32, 0x91, 0xa9, 0xc1, 0x7b, 0xa6, 0x13, 0x53, 0x26, 0x1b, 0x7a, 0xd3, - 0x74, 0xb5, 0xf3, 0xba, 0xd9, 0x24, 0xcc, 0x61, 0x70, 0x62, 0x84, 0xf0, 0x6e, 0x2a, 0x53, 0xc6, - 0x21, 0xc5, 0xbd, 0xb2, 0x8a, 0x98, 0x8b, 0x2c, 0xfa, 0xc4, 0x55, 0xee, 0xa8, 0x25, 0x2a, 0xa1, - 0xaf, 0x3f, 0xeb, 0xe0, 0x5a, 0x10, 0x53, 0xcb, 0x5e, 0x41, 0x05, 0xec, 0xf5, 0xb7, 0xb6, 0x07, - 0xbe, 0x2b, 0xba, 0x0f, 0xaf, 0xdd, 0x17, 0xf3, 0x3f, 0xec, 0x83, 0x18, 0x5b, 0x6f, 0x43, 0x90, - 0x5a, 0x3d, 0xb3, 0x5c, 0xd4, 0x66, 0x97, 0xd6, 0xa6, 0xe7, 0x8b, 0xd9, 0x88, 0x92, 0x01, 0x60, - 0x82, 0x93, 0xf3, 0x4b, 0x53, 0xab, 0xd9, 0x3e, 0xef, 0xb9, 0xb4, 0xb8, 0x7a, 0xcb, 0x4d, 0xd9, - 0xa8, 0x07, 0x58, 0xe3, 0x82, 0x98, 0x5f, 0xe1, 0x7f, 0x8f, 0x67, 0xe3, 0xe8, 0x09, 0x69, 0x4e, - 0x50, 0x3a, 0x5d, 0x9c, 0x45, 0x8d, 0xfe, 0xa0, 0x04, 0x75, 0x06, 0x94, 0x41, 0x48, 0x32, 0xc9, - 0xf4, 0xd2, 0xd2, 0x7c, 0x36, 0xe1, 0x71, 0xae, 0xac, 0xaa, 0xa5, 0xc5, 0xb9, 0x6c, 0xd2, 0xe3, - 0x9c, 0x53, 0x97, 0xd6, 0x96, 0xb3, 0xe0, 0x31, 0x2c, 0x14, 0x57, 0x56, 0xa6, 0xe6, 0x8a, 0xd9, - 0x94, 0xa7, 0x31, 0x7d, 0x66, 0xb5, 0xb8, 0x92, 0x4d, 0x07, 0xba, 0x85, 0xaf, 0x18, 0xf4, 0x5e, - 0x51, 0x5c, 0x5c, 0x5b, 0xc8, 0x66, 0x94, 0x61, 0x18, 0xe4, 0xaf, 0x90, 0x9d, 0x18, 0x6a, 0x13, - 0x61, 0x4f, 0xb3, 0xad, 0x8e, 0x70, 0x96, 0xe1, 0x80, 0x00, 0x35, 0x94, 0xfc, 0x0c, 0xc4, 0x99, - 0x77, 0xa1, 0x17, 0x67, 0xe6, 0xa7, 0xa6, 0x8b, 0xf3, 0xda, 0xd2, 0xf2, 0x6a, 0x69, 0x69, 0x71, - 0x6a, 0x1e, 0x6d, 0xe7, 0xc9, 0xd4, 0xe2, 0x87, 0xd6, 0x4a, 0x6a, 0x71, 0x16, 0xed, 0xe7, 0x93, - 0x2d, 0x17, 0xa7, 0x56, 0x51, 0x16, 0xcd, 0x1f, 0x83, 0xd1, 0x6e, 0x71, 0xa6, 0xdb, 0xca, 0xc8, - 0x3f, 0x13, 0x81, 0x91, 0x2e, 0x21, 0xb3, 0xeb, 0x2a, 0xba, 0x13, 0xe2, 0xdc, 0xd3, 0x78, 0x12, - 0xb9, 0xb6, 0x6b, 0xec, 0x65, 0x7e, 0xd7, 0x91, 0x48, 0x18, 0xce, 0x9f, 0x48, 0xa3, 0xdb, 0x24, - 0x52, 0x4a, 0xd1, 0xe1, 0x4e, 0x0f, 0x44, 0x20, 0xb7, 0x1d, 0x77, 0xc8, 0x7a, 0xef, 0x0b, 0xac, - 0xf7, 0xdb, 0xdb, 0x3b, 0x70, 0x78, 0xfb, 0x31, 0x74, 0xf4, 0xe2, 0xd9, 0x08, 0xec, 0xed, 0x5e, - 0x6f, 0x74, 0xed, 0xc3, 0x1d, 0xd0, 0x5f, 0x23, 0xee, 0xa6, 0x2d, 0x73, 0xee, 0x35, 0x5d, 0x22, - 0x39, 0x6d, 0x6e, 0xb7, 0x95, 0x40, 0xf9, 0x53, 0x41, 0x74, 0xbb, 0xa2, 0x81, 0xf7, 0xa6, 0xa3, - 0xa7, 0x0f, 0xf5, 0xc1, 0x65, 0x5d, 0xc9, 0xbb, 0x76, 0xf4, 0x0a, 0x80, 0xaa, 0x55, 0x6f, 0xba, - 0x3c, 0xaf, 0xf2, 0x30, 0x93, 0x64, 0x12, 0xb6, 0x84, 0x69, 0x08, 0x69, 0xba, 0x5e, 0x7b, 0x94, - 0xb5, 0x03, 0x17, 0x31, 0x85, 0x13, 0xad, 0x8e, 0xc6, 0x58, 0x47, 0x0f, 0x6e, 0x33, 0xd2, 0x8e, - 0x94, 0x75, 0x23, 0x64, 0x0d, 0xb3, 0x4a, 0x2c, 0x57, 0x73, 0xdc, 0x06, 0xd1, 0x6b, 0x55, 0xab, - 0xc2, 0xe2, 0x68, 0xa2, 0x10, 0xdf, 0xd0, 0x4d, 0x87, 0xa8, 0x43, 0xbc, 0x79, 0x45, 0xb6, 0x52, - 0x04, 0x4b, 0x16, 0x0d, 0x1f, 0xa2, 0x3f, 0x80, 0xe0, 0xcd, 0x1e, 0x22, 0xff, 0xeb, 0x01, 0x48, - 0xf9, 0xaa, 0x33, 0xe5, 0x30, 0xa4, 0xcf, 0xea, 0xe7, 0x75, 0x4d, 0x56, 0xdc, 0xdc, 0x12, 0x29, - 0x2a, 0x5b, 0x16, 0x55, 0xf7, 0x8d, 0x30, 0xca, 0x54, 0x70, 0x8c, 0xf8, 0x22, 0xc3, 0xd4, 0x1d, - 0x87, 0x19, 0x2d, 0xc1, 0x54, 0x15, 0xda, 0xb6, 0x44, 0x9b, 0x66, 0x64, 0x8b, 0x72, 0x33, 0x8c, - 0x30, 0x44, 0x0d, 0x03, 0x6f, 0xb5, 0x6e, 0x12, 0x8d, 0xee, 0x01, 0x1c, 0x16, 0x4f, 0xbd, 0x9e, - 0x0d, 0x53, 0x8d, 0x05, 0xa1, 0x40, 0x7b, 0xe4, 0x28, 0x73, 0x70, 0x05, 0x83, 0x55, 0x88, 0x45, - 0x1a, 0xba, 0x4b, 0x34, 0xf2, 0x91, 0x26, 0xea, 0x6a, 0xba, 0x55, 0xd6, 0x36, 0x75, 0x67, 0x33, - 0x37, 0xea, 0x27, 0xd8, 0x4f, 0x75, 0xe7, 0x84, 0x6a, 0x91, 0x69, 0x4e, 0x59, 0xe5, 0xbb, 0x50, - 0x4f, 0x29, 0xc0, 0x5e, 0x46, 0x84, 0x46, 0xc1, 0x31, 0x6b, 0xc6, 0x26, 0x31, 0xce, 0x69, 0x4d, - 0x77, 0xe3, 0x44, 0xee, 0x80, 0x9f, 0x81, 0x75, 0x72, 0x85, 0xe9, 0xcc, 0x50, 0x95, 0x35, 0xd4, - 0x50, 0x56, 0x20, 0x4d, 0xe7, 0xa3, 0x56, 0xbd, 0x0f, 0xbb, 0x6d, 0x37, 0x58, 0x8e, 0xc8, 0x74, - 0x59, 0xdc, 0x3e, 0x23, 0x4e, 0x2c, 0x09, 0xc0, 0x02, 0xd6, 0xa7, 0x85, 0xf8, 0xca, 0x72, 0xb1, - 0x38, 0xab, 0xa6, 0x24, 0xcb, 0x49, 0xbb, 0x41, 0x7d, 0xaa, 0x62, 0x7b, 0x36, 0x4e, 0x71, 0x9f, - 0xaa, 0xd8, 0xd2, 0xc2, 0x68, 0x2f, 0xc3, 0xe0, 0xc3, 0xc6, 0xbd, 0x8b, 0x28, 0xd6, 0x9d, 0x5c, - 0x36, 0x60, 0x2f, 0xc3, 0x98, 0xe3, 0x0a, 0xc2, 0xcd, 0x1d, 0x5c, 0x12, 0x97, 0xb5, 0xec, 0xe5, - 0x07, 0x0e, 0x77, 0x8c, 0xb2, 0x1d, 0x8a, 0x6f, 0xac, 0x6f, 0x75, 0x02, 0x95, 0xc0, 0x1b, 0xeb, - 0x5b, 0xed, 0xb0, 0xab, 0xd9, 0x06, 0xac, 0x41, 0x0c, 0x34, 0x79, 0x39, 0xb7, 0xcf, 0xaf, 0xed, - 0x6b, 0x50, 0x26, 0xd1, 0x91, 0x0d, 0x8d, 0x58, 0xfa, 0x3a, 0xce, 0xbd, 0xde, 0xc0, 0x1b, 0x27, - 0x37, 0xee, 0x57, 0xce, 0x18, 0x46, 0x91, 0xb5, 0x4e, 0xb1, 0x46, 0xe5, 0x18, 0x0c, 0xdb, 0xeb, - 0x67, 0x0d, 0xee, 0x5c, 0x1a, 0xf2, 0x6c, 0x54, 0x2f, 0xe6, 0xae, 0x62, 0x66, 0x1a, 0xa2, 0x0d, - 0xcc, 0xb5, 0x96, 0x99, 0x58, 0xb9, 0x16, 0xc9, 0x9d, 0x4d, 0xbd, 0x51, 0x67, 0x49, 0xda, 0x41, - 0xa3, 0x92, 0xdc, 0xd5, 0x5c, 0x95, 0xcb, 0x17, 0xa5, 0x58, 0x29, 0xc2, 0x38, 0x1d, 0xbc, 0xa5, - 0x5b, 0xb6, 0xd6, 0x74, 0x88, 0xd6, 0xea, 0xa2, 0x37, 0x17, 0xd7, 0xd0, 0x6e, 0xa9, 0x97, 0x4b, - 0xb5, 0x35, 0x07, 0x83, 0x99, 0x54, 0x92, 0xd3, 0x73, 0x1a, 0x46, 0x9b, 0x56, 0xd5, 0x42, 0x17, - 0xc7, 0x16, 0x0a, 0xe6, 0x0b, 0x36, 0xf7, 0xc7, 0x81, 0x6d, 0x8a, 0xee, 0x35, 0xbf, 0x36, 0x77, - 0x12, 0x75, 0xa4, 0xd9, 0x29, 0xcc, 0x17, 0x20, 0xed, 0xf7, 0x1d, 0x25, 0x09, 0xdc, 0x7b, 0x30, - 0xbb, 0x61, 0x46, 0x9d, 0x59, 0x9a, 0xa5, 0xb9, 0xf0, 0xde, 0x22, 0x26, 0x36, 0xcc, 0xc9, 0xf3, - 0xa5, 0xd5, 0xa2, 0xa6, 0xae, 0x2d, 0xae, 0x96, 0x16, 0x8a, 0xd9, 0xe8, 0xb1, 0x64, 0xe2, 0xcd, - 0x81, 0xec, 0xfd, 0xf8, 0xd7, 0x97, 0x7f, 0xb9, 0x0f, 0x32, 0xc1, 0x3a, 0x58, 0xf9, 0x3f, 0xd8, - 0x27, 0x37, 0xad, 0x0e, 0x71, 0xb5, 0x0b, 0xd5, 0x06, 0x73, 0xe7, 0x9a, 0xce, 0x2b, 0x49, 0x6f, - 0x26, 0x46, 0x85, 0x16, 0x6e, 0xef, 0xef, 0x41, 0x9d, 0x93, 0x4c, 0x45, 0x99, 0x87, 0x71, 0x34, - 0x19, 0xd6, 0x9a, 0x56, 0x59, 0x6f, 0x94, 0xb5, 0xd6, 0x71, 0x81, 0xa6, 0x1b, 0xe8, 0x07, 0x8e, - 0xcd, 0x33, 0x89, 0xc7, 0x72, 0xb9, 0x65, 0xaf, 0x08, 0xe5, 0x56, 0x88, 0x9d, 0x12, 0xaa, 0x6d, - 0x5e, 0x13, 0xdd, 0xce, 0x6b, 0xb0, 0xf6, 0xaa, 0xe9, 0x75, 0x74, 0x1b, 0xb7, 0xb1, 0xc5, 0xaa, - 0xb7, 0x84, 0x9a, 0x40, 0x41, 0x91, 0x3e, 0xbf, 0x7f, 0x73, 0xe0, 0xb7, 0xe3, 0x6f, 0xa3, 0x90, - 0xf6, 0x57, 0x70, 0xb4, 0x20, 0x36, 0x58, 0x98, 0x8f, 0xb0, 0x28, 0x70, 0xe5, 0x8e, 0xf5, 0xde, - 0xc4, 0x0c, 0x8d, 0xff, 0x85, 0x7e, 0x5e, 0x57, 0xa9, 0x1c, 0x49, 0x73, 0x2f, 0xf5, 0x35, 0xc2, - 0xab, 0xf5, 0x84, 0x2a, 0x9e, 0x30, 0xd8, 0xf5, 0x9f, 0x75, 0x18, 0x77, 0x3f, 0xe3, 0xbe, 0x6a, - 0x67, 0xee, 0x53, 0x2b, 0x8c, 0x3c, 0x79, 0x6a, 0x45, 0x5b, 0x5c, 0x52, 0x17, 0xa6, 0xe6, 0x55, - 0x01, 0x57, 0xf6, 0x43, 0xcc, 0xd4, 0xef, 0xdb, 0x0a, 0x66, 0x0a, 0x26, 0xea, 0xd5, 0xf0, 0xc8, - 0x40, 0x8f, 0x3c, 0x82, 0xf1, 0x99, 0x89, 0xde, 0x47, 0xd7, 0x9f, 0x84, 0x38, 0xb3, 0x97, 0x02, - 0x20, 0x2c, 0x96, 0xdd, 0xa3, 0x24, 0x20, 0x36, 0xb3, 0xa4, 0x52, 0xf7, 0x47, 0x7f, 0xe7, 0x52, - 0x6d, 0xb9, 0x54, 0x9c, 0xc1, 0x15, 0x90, 0xbf, 0x19, 0xfa, 0xb9, 0x11, 0xe8, 0xd2, 0xf0, 0xcc, - 0x80, 0x20, 0xfe, 0x28, 0x38, 0x22, 0xb2, 0x75, 0x6d, 0x61, 0xba, 0xa8, 0x66, 0xfb, 0xfc, 0xd3, - 0xfb, 0xe3, 0x08, 0xa4, 0x7c, 0x05, 0x15, 0x4d, 0xe5, 0xba, 0x69, 0xda, 0x17, 0x34, 0xdd, 0xac, - 0x62, 0x84, 0xe2, 0xf3, 0x03, 0x4c, 0x34, 0x45, 0x25, 0xbd, 0xda, 0xef, 0x3f, 0xe2, 0x9b, 0x4f, - 0x45, 0x20, 0xdb, 0x5e, 0x8c, 0xb5, 0x75, 0x30, 0xf2, 0x81, 0x76, 0xf0, 0x89, 0x08, 0x64, 0x82, - 0x15, 0x58, 0x5b, 0xf7, 0x0e, 0x7f, 0xa0, 0xdd, 0x7b, 0x3c, 0x02, 0x83, 0x81, 0xba, 0xeb, 0xbf, - 0xaa, 0x77, 0x8f, 0x45, 0x61, 0xa4, 0x0b, 0x0e, 0x03, 0x10, 0x2f, 0x50, 0x79, 0xcd, 0x7c, 0x43, - 0x2f, 0xef, 0x9a, 0xa0, 0xf9, 0x6f, 0x59, 0x6f, 0xb8, 0xa2, 0x9e, 0xc5, 0x7c, 0x59, 0x2d, 0x63, - 0x50, 0xad, 0x6e, 0x54, 0xb1, 0x7c, 0xe3, 0x3b, 0x16, 0x5e, 0xb5, 0x0e, 0xb5, 0xe4, 0x7c, 0x7b, - 0x7c, 0x3d, 0x28, 0x75, 0xdb, 0xa9, 0xba, 0xd5, 0xf3, 0xf4, 0x78, 0x4e, 0x6e, 0xa4, 0x69, 0x15, - 0x1b, 0x53, 0xb3, 0xb2, 0xa5, 0x64, 0xb9, 0x9e, 0xb6, 0x45, 0x2a, 0x7a, 0x9b, 0x36, 0x0d, 0x43, - 0x51, 0x35, 0x2b, 0x5b, 0x3c, 0x6d, 0x2c, 0x34, 0xcb, 0x76, 0x93, 0x16, 0x04, 0x5c, 0x8f, 0x46, - 0xbd, 0x88, 0x9a, 0xe2, 0x32, 0x4f, 0x45, 0x54, 0x6c, 0xad, 0x1d, 0x7c, 0x5a, 0x4d, 0x71, 0x19, - 0x57, 0x39, 0x02, 0x43, 0x7a, 0xa5, 0xd2, 0xa0, 0xe4, 0x92, 0x88, 0x97, 0xa1, 0x19, 0x4f, 0xcc, - 0x14, 0xc7, 0x4e, 0x41, 0x42, 0xda, 0x81, 0x26, 0x16, 0x6a, 0x09, 0xcc, 0xf9, 0xec, 0x1c, 0xa5, - 0x8f, 0x6e, 0xea, 0x2d, 0xd9, 0x88, 0x2f, 0xad, 0x3a, 0x5a, 0xeb, 0x40, 0xaf, 0x0f, 0xdb, 0x13, - 0x6a, 0xaa, 0xea, 0x78, 0x27, 0x38, 0xf9, 0x67, 0x31, 0xbd, 0x06, 0x0f, 0x24, 0x95, 0x59, 0x48, - 0x98, 0x36, 0xfa, 0x07, 0x45, 0xf0, 0xd3, 0xf0, 0xa3, 0x21, 0x67, 0x98, 0x13, 0xf3, 0x42, 0x5f, - 0xf5, 0x90, 0x63, 0xbf, 0x88, 0x40, 0x42, 0x8a, 0x31, 0x51, 0xc4, 0xea, 0xba, 0xbb, 0xc9, 0xe8, - 0xe2, 0xd3, 0x7d, 0xd9, 0x88, 0xca, 0x9e, 0xa9, 0x1c, 0xab, 0x19, 0x8b, 0xb9, 0x80, 0x90, 0xd3, - 0x67, 0x3a, 0xaf, 0x26, 0xd1, 0xcb, 0xac, 0xc0, 0xb5, 0x6b, 0x35, 0x9c, 0x49, 0x47, 0xce, 0xab, - 0x90, 0xcf, 0x08, 0x31, 0x3d, 0x17, 0x77, 0x1b, 0x7a, 0xd5, 0x0c, 0xe8, 0xc6, 0x98, 0x6e, 0x56, - 0x36, 0x78, 0xca, 0x05, 0xd8, 0x2f, 0x79, 0xcb, 0xc4, 0xd5, 0xb1, 0x78, 0x2e, 0xb7, 0x40, 0xfd, - 0xec, 0xb4, 0x6b, 0x9f, 0x50, 0x98, 0x15, 0xed, 0x12, 0x3b, 0x7d, 0x1a, 0x0b, 0x59, 0xbb, 0xd6, - 0x6e, 0x89, 0xe9, 0x6c, 0xdb, 0xbe, 0xcb, 0xb9, 0x2b, 0x72, 0x2f, 0xb4, 0x8a, 0x8a, 0x67, 0xfa, - 0xa2, 0x73, 0xcb, 0xd3, 0xcf, 0xf7, 0x8d, 0xcd, 0x71, 0xdc, 0xb2, 0xb4, 0xa0, 0x4a, 0x36, 0x4c, - 0x62, 0x50, 0xeb, 0xc0, 0xd3, 0x57, 0xc2, 0x0d, 0x95, 0xaa, 0xbb, 0xd9, 0x5c, 0x9f, 0xc0, 0x37, - 0x4c, 0x56, 0xec, 0x8a, 0xdd, 0xfa, 0x9c, 0x41, 0x9f, 0xd8, 0x03, 0xbb, 0x13, 0x9f, 0x34, 0x92, - 0x9e, 0x74, 0x2c, 0xf4, 0xfb, 0x47, 0x61, 0x11, 0x46, 0x84, 0xb2, 0xc6, 0xce, 0x54, 0x79, 0x09, - 0xaa, 0xec, 0xb8, 0x21, 0xcf, 0xbd, 0xf8, 0x06, 0x4b, 0x09, 0xea, 0xb0, 0x80, 0xd2, 0x36, 0x5e, - 0xa4, 0x16, 0x54, 0xb8, 0x2c, 0xc0, 0xc7, 0x7d, 0x18, 0xb7, 0xdc, 0x3b, 0x33, 0xbe, 0x2c, 0x18, - 0x47, 0x7c, 0x8c, 0x2b, 0x02, 0x5a, 0x98, 0x81, 0xc1, 0xdd, 0x70, 0xfd, 0x4c, 0x70, 0xa5, 0x89, - 0x9f, 0x64, 0x0e, 0x86, 0x18, 0x89, 0xd1, 0x74, 0x5c, 0xbb, 0xc6, 0x02, 0xc4, 0xce, 0x34, 0x3f, - 0x7f, 0x83, 0x3b, 0x55, 0x86, 0xc2, 0x66, 0x3c, 0x54, 0xe1, 0x6e, 0x18, 0xa5, 0x12, 0xb6, 0x06, - 0xfd, 0x6c, 0xe1, 0x47, 0x08, 0xb9, 0x5f, 0x3d, 0xc0, 0x7d, 0x6f, 0xc4, 0x23, 0xf0, 0xf1, 0xfa, - 0x66, 0xa2, 0x42, 0x5c, 0x8c, 0x6d, 0xb8, 0xff, 0x33, 0x4d, 0x65, 0xc7, 0x6f, 0x0c, 0xb9, 0x47, - 0xdf, 0x0a, 0xce, 0xc4, 0x1c, 0x47, 0x4e, 0x99, 0x66, 0x61, 0x0d, 0xf6, 0x75, 0x99, 0xd9, 0x1e, - 0x38, 0x1f, 0x13, 0x9c, 0xa3, 0x1d, 0xb3, 0x4b, 0x69, 0x97, 0x41, 0xca, 0xbd, 0xf9, 0xe8, 0x81, - 0xf3, 0x71, 0xc1, 0xa9, 0x08, 0xac, 0x9c, 0x16, 0xca, 0x78, 0x0a, 0x86, 0x71, 0xa7, 0xbe, 0x6e, - 0x3b, 0x62, 0xdf, 0xdb, 0x03, 0xdd, 0x13, 0x82, 0x6e, 0x48, 0x00, 0xd9, 0x2e, 0x98, 0x72, 0xdd, - 0x06, 0x89, 0x0d, 0xdc, 0x00, 0xf5, 0x40, 0xf1, 0xa4, 0xa0, 0x18, 0xa0, 0xfa, 0x14, 0x3a, 0x05, - 0xe9, 0x8a, 0x2d, 0xc2, 0x70, 0x38, 0xfc, 0x29, 0x01, 0x4f, 0x49, 0x8c, 0xa0, 0xa8, 0xdb, 0xf5, - 0xa6, 0x49, 0x63, 0x74, 0x38, 0xc5, 0x97, 0x25, 0x85, 0xc4, 0x08, 0x8a, 0x5d, 0x98, 0xf5, 0x2b, - 0x92, 0xc2, 0xf1, 0xd9, 0xf3, 0x4e, 0x7a, 0xd6, 0x6b, 0x6e, 0xd9, 0x56, 0x2f, 0x9d, 0x78, 0x5a, - 0x30, 0x80, 0x80, 0x50, 0x82, 0xdb, 0x21, 0xd9, 0xeb, 0x44, 0x7c, 0x55, 0xc0, 0x13, 0x44, 0xce, - 0x00, 0xae, 0x33, 0x19, 0x64, 0xe8, 0xb7, 0x95, 0x70, 0x8a, 0xaf, 0x09, 0x8a, 0x8c, 0x0f, 0x26, - 0x86, 0xe1, 0x12, 0xc7, 0xc5, 0xad, 0x7a, 0x0f, 0x24, 0xcf, 0xca, 0x61, 0x08, 0x88, 0x30, 0xe5, - 0x3a, 0xb1, 0x8c, 0xcd, 0xde, 0x18, 0x9e, 0x93, 0xa6, 0x94, 0x18, 0x4a, 0x81, 0x91, 0xa7, 0xa6, - 0x37, 0x70, 0x73, 0x6d, 0xf6, 0x34, 0x1d, 0x5f, 0x17, 0x1c, 0x69, 0x0f, 0x24, 0x2c, 0xd2, 0xb4, - 0x76, 0x43, 0xf3, 0xbc, 0xb4, 0x88, 0x0f, 0x26, 0x96, 0x1e, 0xee, 0x4c, 0x69, 0x25, 0xb1, 0x1b, - 0xb6, 0x6f, 0xc8, 0xa5, 0xc7, 0xb1, 0x0b, 0x7e, 0x46, 0x9c, 0x69, 0x07, 0xb7, 0xe0, 0xbd, 0xd0, - 0x7c, 0x53, 0xce, 0x34, 0x03, 0x50, 0xf0, 0x19, 0xd8, 0xdf, 0x35, 0xd4, 0xf7, 0x40, 0xf6, 0x2d, - 0x41, 0xb6, 0xb7, 0x4b, 0xb8, 0x17, 0x21, 0x61, 0xb7, 0x94, 0xdf, 0x96, 0x21, 0x81, 0xb4, 0x71, - 0x2d, 0xd3, 0x32, 0xd6, 0xd1, 0x37, 0x76, 0x67, 0xb5, 0xef, 0x48, 0xab, 0x71, 0x6c, 0xc0, 0x6a, - 0xab, 0xb0, 0x57, 0x30, 0xee, 0x6e, 0x5e, 0x5f, 0x90, 0x81, 0x95, 0xa3, 0xd7, 0x82, 0xb3, 0xfb, - 0x61, 0x18, 0xf3, 0xcc, 0x29, 0x2b, 0x30, 0x47, 0xa3, 0x07, 0x03, 0xe1, 0xcc, 0x2f, 0x0a, 0x66, - 0x19, 0xf1, 0xbd, 0x12, 0xce, 0x59, 0xd0, 0xeb, 0x94, 0xfc, 0x34, 0xe4, 0x24, 0x79, 0xd3, 0xc2, - 0x02, 0xdf, 0xae, 0x58, 0x38, 0x8d, 0xe5, 0x1e, 0xa8, 0xbf, 0xdb, 0x36, 0x55, 0x6b, 0x3e, 0x38, - 0x65, 0x2e, 0x41, 0xd6, 0xab, 0x37, 0xb4, 0x6a, 0xad, 0x6e, 0x63, 0x69, 0xb9, 0x33, 0xe3, 0xf7, - 0xe4, 0x4c, 0x79, 0xb8, 0x12, 0x83, 0x15, 0x8a, 0x90, 0x61, 0x8f, 0xbd, 0xba, 0xe4, 0xf7, 0x05, - 0xd1, 0x60, 0x0b, 0x25, 0x02, 0x07, 0x56, 0x4a, 0x58, 0xf3, 0xf6, 0x12, 0xff, 0x7e, 0x20, 0x03, - 0x87, 0x80, 0x70, 0xef, 0x1b, 0x6a, 0xcb, 0xc4, 0x4a, 0xd8, 0xe7, 0xd7, 0xdc, 0x47, 0x2f, 0x89, - 0x35, 0x1b, 0x4c, 0xc4, 0x85, 0x79, 0x6a, 0x9e, 0x60, 0xba, 0x0c, 0x27, 0x7b, 0xe0, 0x92, 0x67, - 0xa1, 0x40, 0xb6, 0x2c, 0x9c, 0x84, 0xc1, 0x40, 0xaa, 0x0c, 0xa7, 0x7a, 0x50, 0x50, 0xa5, 0xfd, - 0x99, 0xb2, 0x70, 0x33, 0xc4, 0x68, 0xda, 0x0b, 0x87, 0x7f, 0x4c, 0xc0, 0x99, 0x7a, 0xe1, 0xff, - 0x21, 0x21, 0xd3, 0x5d, 0x38, 0xf4, 0xe3, 0x02, 0xea, 0x41, 0x28, 0x5c, 0xa6, 0xba, 0x70, 0xf8, - 0x27, 0x24, 0x5c, 0x42, 0x28, 0xbc, 0x77, 0x13, 0xbe, 0xf4, 0xa9, 0x98, 0x08, 0x57, 0xd2, 0x76, - 0xf4, 0x9b, 0x0f, 0xcf, 0x71, 0xe1, 0xe8, 0x87, 0xc4, 0xcb, 0x25, 0xa2, 0x70, 0x2b, 0xc4, 0x7b, - 0x34, 0xf8, 0xa7, 0x05, 0x94, 0xeb, 0x63, 0x06, 0x49, 0xf9, 0xf2, 0x5a, 0x38, 0xfc, 0x33, 0x02, - 0xee, 0x47, 0xd1, 0xae, 0x8b, 0xbc, 0x16, 0x4e, 0xf0, 0x59, 0xd9, 0x75, 0x81, 0xa0, 0x66, 0x93, - 0x29, 0x2d, 0x1c, 0xfd, 0xb0, 0xb4, 0xba, 0x84, 0xe0, 0x6a, 0x4a, 0x7a, 0x61, 0x2a, 0x1c, 0xff, - 0x39, 0x81, 0x6f, 0x61, 0xa8, 0x05, 0x7c, 0x61, 0x32, 0x9c, 0xe2, 0xf3, 0xd2, 0x02, 0x3e, 0x14, - 0x5d, 0x46, 0xed, 0xa9, 0x2f, 0x9c, 0xe9, 0x0b, 0x72, 0x19, 0xb5, 0x65, 0x3e, 0x3a, 0x9b, 0x2c, - 0x5a, 0x84, 0x53, 0x7c, 0x51, 0xce, 0x26, 0xd3, 0xa7, 0xdd, 0x68, 0xcf, 0x25, 0xe1, 0x1c, 0x5f, - 0x92, 0xdd, 0x68, 0x4b, 0x25, 0x98, 0x99, 0x94, 0xce, 0x3c, 0x12, 0xce, 0xf7, 0x88, 0xe0, 0x1b, - 0xee, 0x48, 0x23, 0x85, 0x7b, 0x60, 0x6f, 0xf7, 0x1c, 0x12, 0xce, 0xfa, 0xe8, 0xa5, 0xb6, 0xaa, - 0xdf, 0x9f, 0x42, 0x30, 0xe5, 0x8d, 0x76, 0xcb, 0x1f, 0xe1, 0xb4, 0x8f, 0x5d, 0x0a, 0x6e, 0xec, - 0xfc, 0xe9, 0x03, 0x2b, 0x34, 0x68, 0x85, 0xee, 0x70, 0xae, 0x27, 0x04, 0x97, 0x0f, 0x44, 0x97, - 0x86, 0x88, 0xdc, 0xe1, 0xf8, 0x27, 0xe5, 0xd2, 0x10, 0x08, 0x04, 0x27, 0xac, 0xa6, 0x69, 0x52, - 0xe7, 0x50, 0x76, 0xfe, 0x49, 0x43, 0xee, 0x4f, 0xef, 0x8a, 0x85, 0x21, 0x01, 0x18, 0x43, 0xe3, - 0xa4, 0xb6, 0x8e, 0x36, 0x08, 0x41, 0xfe, 0xf9, 0x5d, 0x19, 0x10, 0xa8, 0x36, 0xae, 0x27, 0xe0, - 0x9b, 0x46, 0x76, 0x86, 0x1d, 0x82, 0xfd, 0xcb, 0xbb, 0xe2, 0x33, 0x6b, 0x0b, 0xd2, 0x22, 0xe0, - 0x1f, 0x6d, 0x77, 0x26, 0x78, 0x2b, 0x48, 0xc0, 0x36, 0x9a, 0xb7, 0xc1, 0x00, 0xfd, 0x65, 0x87, - 0xab, 0x57, 0xc2, 0xd0, 0x7f, 0x15, 0x68, 0xa9, 0x4f, 0x0d, 0x56, 0xb3, 0x1b, 0x04, 0x6f, 0x9d, - 0x30, 0xec, 0xdf, 0x04, 0xd6, 0x03, 0x50, 0xb0, 0xa1, 0x3b, 0x6e, 0x2f, 0xe3, 0xfe, 0xbb, 0x04, - 0x4b, 0x00, 0xed, 0x34, 0xbd, 0x3f, 0x47, 0xb6, 0xc2, 0xb0, 0x6f, 0xcb, 0x4e, 0x0b, 0x7d, 0x0c, - 0x80, 0x49, 0x7a, 0xcb, 0x7f, 0x7a, 0x10, 0x02, 0xfe, 0x87, 0x00, 0xb7, 0x10, 0xd3, 0x87, 0xbb, - 0x1f, 0xed, 0xc0, 0x9c, 0x3d, 0x67, 0xf3, 0x43, 0x1d, 0x78, 0x38, 0x0e, 0x79, 0xd4, 0xc1, 0xfc, - 0x3a, 0xe9, 0x5b, 0xc9, 0x93, 0x1e, 0x87, 0x3c, 0x98, 0xf1, 0x04, 0x63, 0xbb, 0x3b, 0xd2, 0xc9, - 0xff, 0x24, 0x0a, 0x89, 0x19, 0x04, 0xeb, 0x17, 0xf4, 0x2d, 0xa5, 0x0e, 0x23, 0xf4, 0x1e, 0x97, - 0x25, 0x3b, 0x5c, 0x10, 0x4e, 0x2e, 0x4e, 0xe3, 0xae, 0x9f, 0x68, 0xbd, 0x55, 0x22, 0x26, 0xba, - 0xa8, 0xb3, 0x8f, 0x4b, 0xd3, 0xd9, 0x57, 0x7e, 0x37, 0xbe, 0xe7, 0x93, 0xbf, 0x1f, 0x4f, 0x2c, - 0x6c, 0xdd, 0x53, 0x35, 0x1d, 0x7a, 0x5e, 0x6b, 0x74, 0xea, 0x2a, 0x0f, 0x46, 0xe0, 0x40, 0x17, - 0x8e, 0x45, 0xb1, 0x14, 0xc4, 0x21, 0xed, 0x4d, 0x3d, 0xbe, 0x5a, 0xc2, 0x78, 0x17, 0xd2, 0x81, - 0xd7, 0x1f, 0x30, 0xb6, 0xd7, 0x1f, 0x3b, 0x03, 0xb9, 0xed, 0x46, 0x42, 0x7f, 0x18, 0x86, 0x73, - 0x2d, 0x7e, 0x2c, 0x46, 0x6f, 0x95, 0x23, 0xad, 0x5f, 0xa9, 0xd0, 0x1f, 0x23, 0x0c, 0xfb, 0x7a, - 0x27, 0x5e, 0xc6, 0xdb, 0x0b, 0x7d, 0x27, 0x22, 0x63, 0x3a, 0x1c, 0x0a, 0xeb, 0xe9, 0xbf, 0xf9, - 0x8a, 0xfc, 0x41, 0xe8, 0xe7, 0x42, 0xfa, 0xd3, 0xb6, 0x92, 0xe5, 0xde, 0x72, 0x13, 0xa3, 0x8a, - 0xaa, 0xf1, 0x2a, 0x7d, 0x98, 0x9e, 0x7f, 0xe5, 0xb5, 0x83, 0x7b, 0x7e, 0x89, 0xd7, 0x6f, 0xf0, - 0x7a, 0xf5, 0xb5, 0x83, 0x91, 0x37, 0xf1, 0x7a, 0x1b, 0xaf, 0x77, 0xf0, 0xba, 0xff, 0xf5, 0x83, - 0x91, 0xe7, 0xf0, 0x7a, 0x01, 0xaf, 0x1f, 0xe1, 0xf5, 0x12, 0x5e, 0xaf, 0xbc, 0x8e, 0xfa, 0xf8, - 0xff, 0x55, 0xbc, 0xde, 0xc4, 0xfb, 0xb7, 0xf1, 0xff, 0x3b, 0xf8, 0xff, 0xfe, 0x3f, 0x1c, 0xdc, - 0xf3, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x4f, 0xfc, 0xaf, 0xfd, 0x2c, 0x00, 0x00, + // 3794 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x65, 0x88, 0x8e, 0x21, 0x0a, 0xb1, + 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xb4, 0x4d, 0x7f, 0x66, 0x9a, 0xb8, 0x8e, 0xdb, + 0x66, 0xa6, 0x75, 0x9a, 0xf4, 0x27, 0xe9, 0x4f, 0x9a, 0xe9, 0x53, 0xfa, 0x90, 0xd6, 0x4f, 0x9d, + 0xe4, 0xad, 0x0f, 0x9d, 0xd6, 0x62, 0x3c, 0x53, 0xb7, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, + 0x97, 0xce, 0xfd, 0x5b, 0xec, 0x02, 0x20, 0x17, 0x4c, 0xc7, 0xc9, 0x13, 0x71, 0xcf, 0x3d, 0xdf, + 0xb7, 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x12, 0xbe, 0x7f, 0x19, 0x96, 0x3b, 0xb6, 0xdd, + 0x31, 0xf1, 0x5a, 0xcf, 0xb1, 0x3d, 0x7b, 0xbf, 0xdf, 0x5e, 0x6b, 0x61, 0x57, 0x77, 0x8c, 0x9e, + 0x67, 0x3b, 0xab, 0x54, 0xa6, 0xcc, 0x31, 0x8d, 0x55, 0xa1, 0x51, 0xdc, 0x86, 0xf9, 0xeb, 0x86, + 0x89, 0x37, 0x7c, 0xc5, 0x26, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x1b, 0x26, 0xce, 0x4b, 0xcb, 0xf1, + 0x95, 0xcc, 0xc5, 0xc7, 0x56, 0x87, 0x40, 0xab, 0x61, 0x44, 0x83, 0x88, 0x55, 0x8a, 0x28, 0xbe, + 0x99, 0x80, 0x85, 0x31, 0xb3, 0x8a, 0x02, 0x09, 0x0b, 0x75, 0x09, 0xa3, 0xb4, 0x92, 0x56, 0xe9, + 0x6f, 0x25, 0x0f, 0x33, 0x3d, 0xa4, 0xdf, 0x41, 0x1d, 0x9c, 0x8f, 0x51, 0xb1, 0x18, 0x2a, 0x05, + 0x80, 0x16, 0xee, 0x61, 0xab, 0x85, 0x2d, 0xfd, 0x30, 0x1f, 0x5f, 0x8e, 0xaf, 0xa4, 0xd5, 0x80, + 0x44, 0x79, 0x0a, 0xe6, 0x7b, 0xfd, 0x7d, 0xd3, 0xd0, 0xb5, 0x80, 0x1a, 0x2c, 0xc7, 0x57, 0x92, + 0xaa, 0xcc, 0x26, 0x36, 0x06, 0xca, 0x17, 0x60, 0xee, 0x1e, 0x46, 0x77, 0x82, 0xaa, 0x19, 0xaa, + 0x9a, 0x23, 0xe2, 0x80, 0x62, 0x05, 0xb2, 0x5d, 0xec, 0xba, 0xa8, 0x83, 0x35, 0xef, 0xb0, 0x87, + 0xf3, 0x09, 0xba, 0xfa, 0xe5, 0x91, 0xd5, 0x0f, 0xaf, 0x3c, 0xc3, 0x51, 0xbb, 0x87, 0x3d, 0xac, + 0x94, 0x21, 0x8d, 0xad, 0x7e, 0x97, 0x31, 0x24, 0x8f, 0xf1, 0x5f, 0xd5, 0xea, 0x77, 0x87, 0x59, + 0x52, 0x04, 0xc6, 0x29, 0x66, 0x5c, 0xec, 0xdc, 0x35, 0x74, 0x9c, 0x9f, 0xa6, 0x04, 0x17, 0x46, + 0x08, 0x9a, 0x6c, 0x7e, 0x98, 0x43, 0xe0, 0x94, 0x0a, 0xa4, 0xf1, 0x0b, 0x1e, 0xb6, 0x5c, 0xc3, + 0xb6, 0xf2, 0x33, 0x94, 0xe4, 0xf1, 0x31, 0xbb, 0x88, 0xcd, 0xd6, 0x30, 0xc5, 0x00, 0xa7, 0x5c, + 0x81, 0x19, 0xbb, 0xe7, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0xcb, 0xd2, 0x4a, 0xe6, 0xe2, 0x07, 0xc6, + 0x06, 0x42, 0x9d, 0xe9, 0xa8, 0x42, 0x59, 0xa9, 0x81, 0xec, 0xda, 0x7d, 0x47, 0xc7, 0x9a, 0x6e, + 0xb7, 0xb0, 0x66, 0x58, 0x6d, 0x3b, 0x9f, 0xa6, 0x04, 0xe7, 0x46, 0x17, 0x42, 0x15, 0x2b, 0x76, + 0x0b, 0xd7, 0xac, 0xb6, 0xad, 0xe6, 0xdc, 0xd0, 0x58, 0x39, 0x03, 0xd3, 0xee, 0xa1, 0xe5, 0xa1, + 0x17, 0xf2, 0x59, 0x1a, 0x21, 0x7c, 0x54, 0xfc, 0xdf, 0x24, 0xcc, 0x4d, 0x12, 0x62, 0xd7, 0x20, + 0xd9, 0x26, 0xab, 0xcc, 0xc7, 0x4e, 0xe3, 0x03, 0x86, 0x09, 0x3b, 0x71, 0xfa, 0x47, 0x74, 0x62, + 0x19, 0x32, 0x16, 0x76, 0x3d, 0xdc, 0x62, 0x11, 0x11, 0x9f, 0x30, 0xa6, 0x80, 0x81, 0x46, 0x43, + 0x2a, 0xf1, 0x23, 0x85, 0xd4, 0x4d, 0x98, 0xf3, 0x4d, 0xd2, 0x1c, 0x64, 0x75, 0x44, 0x6c, 0xae, + 0x45, 0x59, 0xb2, 0x5a, 0x15, 0x38, 0x95, 0xc0, 0xd4, 0x1c, 0x0e, 0x8d, 0x95, 0x0d, 0x00, 0xdb, + 0xc2, 0x76, 0x5b, 0x6b, 0x61, 0xdd, 0xcc, 0xa7, 0x8e, 0xf1, 0x52, 0x9d, 0xa8, 0x8c, 0x78, 0xc9, + 0x66, 0x52, 0xdd, 0x54, 0x9e, 0x1d, 0x84, 0xda, 0xcc, 0x31, 0x91, 0xb2, 0xcd, 0x0e, 0xd9, 0x48, + 0xb4, 0xed, 0x41, 0xce, 0xc1, 0x24, 0xee, 0x71, 0x8b, 0xaf, 0x2c, 0x4d, 0x8d, 0x58, 0x8d, 0x5c, + 0x99, 0xca, 0x61, 0x6c, 0x61, 0xb3, 0x4e, 0x70, 0xa8, 0x7c, 0x10, 0x7c, 0x81, 0x46, 0xc3, 0x0a, + 0x68, 0x16, 0xca, 0x0a, 0xe1, 0x0e, 0xea, 0xe2, 0xa5, 0xab, 0x90, 0x0b, 0xbb, 0x47, 0x59, 0x84, + 0xa4, 0xeb, 0x21, 0xc7, 0xa3, 0x51, 0x98, 0x54, 0xd9, 0x40, 0x91, 0x21, 0x8e, 0xad, 0x16, 0xcd, + 0x72, 0x49, 0x95, 0xfc, 0x5c, 0x7a, 0x06, 0x66, 0x43, 0x8f, 0x9f, 0x14, 0x58, 0xfc, 0xc2, 0x34, + 0x2c, 0x8e, 0x8b, 0xb9, 0xb1, 0xe1, 0x7f, 0x06, 0xa6, 0xad, 0x7e, 0x77, 0x1f, 0x3b, 0xf9, 0x38, + 0x65, 0xe0, 0x23, 0xa5, 0x0c, 0x49, 0x13, 0xed, 0x63, 0x33, 0x9f, 0x58, 0x96, 0x56, 0x72, 0x17, + 0x9f, 0x9a, 0x28, 0xaa, 0x57, 0xb7, 0x08, 0x44, 0x65, 0x48, 0xe5, 0xe3, 0x90, 0xe0, 0x29, 0x8e, + 0x30, 0x3c, 0x39, 0x19, 0x03, 0x89, 0x45, 0x95, 0xe2, 0x94, 0x47, 0x20, 0x4d, 0xfe, 0x32, 0xdf, + 0x4e, 0x53, 0x9b, 0x53, 0x44, 0x40, 0xfc, 0xaa, 0x2c, 0x41, 0x8a, 0x86, 0x59, 0x0b, 0x8b, 0xd2, + 0xe0, 0x8f, 0xc9, 0xc6, 0xb4, 0x70, 0x1b, 0xf5, 0x4d, 0x4f, 0xbb, 0x8b, 0xcc, 0x3e, 0xa6, 0x01, + 0x93, 0x56, 0xb3, 0x5c, 0xf8, 0x29, 0x22, 0x53, 0xce, 0x41, 0x86, 0x45, 0xa5, 0x61, 0xb5, 0xf0, + 0x0b, 0x34, 0xfb, 0x24, 0x55, 0x16, 0xa8, 0x35, 0x22, 0x21, 0x8f, 0xbf, 0xed, 0xda, 0x96, 0xd8, + 0x5a, 0xfa, 0x08, 0x22, 0xa0, 0x8f, 0x7f, 0x66, 0x38, 0xf1, 0x3d, 0x3a, 0x7e, 0x79, 0xc3, 0xb1, + 0x58, 0xfc, 0x66, 0x0c, 0x12, 0xf4, 0xbc, 0xcd, 0x41, 0x66, 0xf7, 0x56, 0xa3, 0xaa, 0x6d, 0xd4, + 0xf7, 0xd6, 0xb7, 0xaa, 0xb2, 0xa4, 0xe4, 0x00, 0xa8, 0xe0, 0xfa, 0x56, 0xbd, 0xbc, 0x2b, 0xc7, + 0xfc, 0x71, 0x6d, 0x67, 0xf7, 0xca, 0x25, 0x39, 0xee, 0x03, 0xf6, 0x98, 0x20, 0x11, 0x54, 0x78, + 0xfa, 0xa2, 0x9c, 0x54, 0x64, 0xc8, 0x32, 0x82, 0xda, 0xcd, 0xea, 0xc6, 0x95, 0x4b, 0xf2, 0x74, + 0x58, 0xf2, 0xf4, 0x45, 0x79, 0x46, 0x99, 0x85, 0x34, 0x95, 0xac, 0xd7, 0xeb, 0x5b, 0x72, 0xca, + 0xe7, 0x6c, 0xee, 0xaa, 0xb5, 0x9d, 0x4d, 0x39, 0xed, 0x73, 0x6e, 0xaa, 0xf5, 0xbd, 0x86, 0x0c, + 0x3e, 0xc3, 0x76, 0xb5, 0xd9, 0x2c, 0x6f, 0x56, 0xe5, 0x8c, 0xaf, 0xb1, 0x7e, 0x6b, 0xb7, 0xda, + 0x94, 0xb3, 0x21, 0xb3, 0x9e, 0xbe, 0x28, 0xcf, 0xfa, 0x8f, 0xa8, 0xee, 0xec, 0x6d, 0xcb, 0x39, + 0x65, 0x1e, 0x66, 0xd9, 0x23, 0x84, 0x11, 0x73, 0x43, 0xa2, 0x2b, 0x97, 0x64, 0x79, 0x60, 0x08, + 0x63, 0x99, 0x0f, 0x09, 0xae, 0x5c, 0x92, 0x95, 0x62, 0x05, 0x92, 0x34, 0xba, 0x14, 0x05, 0x72, + 0x5b, 0xe5, 0xf5, 0xea, 0x96, 0x56, 0x6f, 0xec, 0xd6, 0xea, 0x3b, 0xe5, 0x2d, 0x59, 0x1a, 0xc8, + 0xd4, 0xea, 0x27, 0xf7, 0x6a, 0x6a, 0x75, 0x43, 0x8e, 0x05, 0x65, 0x8d, 0x6a, 0x79, 0xb7, 0xba, + 0x21, 0xc7, 0x8b, 0x3a, 0x2c, 0x8e, 0xcb, 0x33, 0x63, 0x4f, 0x46, 0x60, 0x8b, 0x63, 0xc7, 0x6c, + 0x31, 0xe5, 0x1a, 0xd9, 0xe2, 0x2f, 0x4b, 0xb0, 0x30, 0x26, 0xd7, 0x8e, 0x7d, 0xc8, 0x73, 0x90, + 0x64, 0x21, 0xca, 0xaa, 0xcf, 0x13, 0x63, 0x93, 0x36, 0x0d, 0xd8, 0x91, 0x0a, 0x44, 0x71, 0xc1, + 0x0a, 0x1c, 0x3f, 0xa6, 0x02, 0x13, 0x8a, 0x11, 0x23, 0x5f, 0x92, 0x20, 0x7f, 0x1c, 0x77, 0x44, + 0xa2, 0x88, 0x85, 0x12, 0xc5, 0xb5, 0x61, 0x03, 0xce, 0x1f, 0xbf, 0x86, 0x11, 0x2b, 0x5e, 0x93, + 0xe0, 0xcc, 0xf8, 0x46, 0x65, 0xac, 0x0d, 0x1f, 0x87, 0xe9, 0x2e, 0xf6, 0x0e, 0x6c, 0x51, 0xac, + 0x3f, 0x34, 0xa6, 0x04, 0x90, 0xe9, 0x61, 0x5f, 0x71, 0x54, 0xb0, 0x86, 0xc4, 0x8f, 0xeb, 0x36, + 0x98, 0x35, 0x23, 0x96, 0x7e, 0x2e, 0x06, 0x0f, 0x8d, 0x25, 0x1f, 0x6b, 0xe8, 0xa3, 0x00, 0x86, + 0xd5, 0xeb, 0x7b, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa6, 0x12, 0x7a, 0xf6, 0x49, 0xee, 0xe9, 0x7b, + 0xfe, 0x7c, 0x9c, 0xce, 0x03, 0x13, 0x51, 0x85, 0xab, 0x03, 0x43, 0x13, 0xd4, 0xd0, 0xc2, 0x31, + 0x2b, 0x1d, 0xa9, 0x75, 0x1f, 0x05, 0x59, 0x37, 0x0d, 0x6c, 0x79, 0x9a, 0xeb, 0x39, 0x18, 0x75, + 0x0d, 0xab, 0x43, 0x13, 0x70, 0xaa, 0x94, 0x6c, 0x23, 0xd3, 0xc5, 0xea, 0x1c, 0x9b, 0x6e, 0x8a, + 0x59, 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xa6, 0x43, 0x08, 0x36, 0xed, 0x23, 0x8a, 0x5f, 0x9b, + 0x81, 0x4c, 0xa0, 0xad, 0x53, 0xce, 0x43, 0xf6, 0x36, 0xba, 0x8b, 0x34, 0xd1, 0xaa, 0x33, 0x4f, + 0x64, 0x88, 0xac, 0xc1, 0xdb, 0xf5, 0x8f, 0xc2, 0x22, 0x55, 0xb1, 0xfb, 0x1e, 0x76, 0x34, 0xdd, + 0x44, 0xae, 0x4b, 0x9d, 0x96, 0xa2, 0xaa, 0x0a, 0x99, 0xab, 0x93, 0xa9, 0x8a, 0x98, 0x51, 0x2e, + 0xc3, 0x02, 0x45, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xac, 0x91, 0x97, 0x07, 0x97, 0x26, 0x62, + 0xdf, 0xb2, 0x79, 0xa2, 0xb1, 0xcd, 0x15, 0x88, 0x45, 0xae, 0xb2, 0x01, 0x8f, 0x52, 0x58, 0x07, + 0x5b, 0xd8, 0x41, 0x1e, 0xd6, 0xf0, 0x67, 0xfa, 0xc8, 0x74, 0x35, 0x64, 0xb5, 0xb4, 0x03, 0xe4, + 0x1e, 0xe4, 0x17, 0x09, 0xc1, 0x7a, 0x2c, 0x2f, 0xa9, 0x67, 0x89, 0xe2, 0x26, 0xd7, 0xab, 0x52, + 0xb5, 0xb2, 0xd5, 0xfa, 0x04, 0x72, 0x0f, 0x94, 0x12, 0x9c, 0xa1, 0x2c, 0xae, 0xe7, 0x18, 0x56, + 0x47, 0xd3, 0x0f, 0xb0, 0x7e, 0x47, 0xeb, 0x7b, 0xed, 0xab, 0xf9, 0x47, 0x82, 0xcf, 0xa7, 0x16, + 0x36, 0xa9, 0x4e, 0x85, 0xa8, 0xec, 0x79, 0xed, 0xab, 0x4a, 0x13, 0xb2, 0x64, 0x33, 0xba, 0xc6, + 0x8b, 0x58, 0x6b, 0xdb, 0x0e, 0xad, 0x2c, 0xb9, 0x31, 0x27, 0x3b, 0xe0, 0xc1, 0xd5, 0x3a, 0x07, + 0x6c, 0xdb, 0x2d, 0x5c, 0x4a, 0x36, 0x1b, 0xd5, 0xea, 0x86, 0x9a, 0x11, 0x2c, 0xd7, 0x6d, 0x87, + 0x04, 0x54, 0xc7, 0xf6, 0x1d, 0x9c, 0x61, 0x01, 0xd5, 0xb1, 0x85, 0x7b, 0x2f, 0xc3, 0x82, 0xae, + 0xb3, 0x35, 0x1b, 0xba, 0xc6, 0x5b, 0x7c, 0x37, 0x2f, 0x87, 0x9c, 0xa5, 0xeb, 0x9b, 0x4c, 0x81, + 0xc7, 0xb8, 0xab, 0x3c, 0x0b, 0x0f, 0x0d, 0x9c, 0x15, 0x04, 0xce, 0x8f, 0xac, 0x72, 0x18, 0x7a, + 0x19, 0x16, 0x7a, 0x87, 0xa3, 0x40, 0x25, 0xf4, 0xc4, 0xde, 0xe1, 0x30, 0xec, 0x71, 0xfa, 0xda, + 0xe6, 0x60, 0x1d, 0x79, 0xb8, 0x95, 0x7f, 0x38, 0xa8, 0x1d, 0x98, 0x50, 0xd6, 0x40, 0xd6, 0x75, + 0x0d, 0x5b, 0x68, 0xdf, 0xc4, 0x1a, 0x72, 0xb0, 0x85, 0xdc, 0xfc, 0xb9, 0xa0, 0x72, 0x4e, 0xd7, + 0xab, 0x74, 0xb6, 0x4c, 0x27, 0x95, 0x27, 0x61, 0xde, 0xde, 0xbf, 0xad, 0xb3, 0xc8, 0xd2, 0x7a, + 0x0e, 0x6e, 0x1b, 0x2f, 0xe4, 0x1f, 0xa3, 0x6e, 0x9a, 0x23, 0x13, 0x34, 0xae, 0x1a, 0x54, 0xac, + 0x3c, 0x01, 0xb2, 0xee, 0x1e, 0x20, 0xa7, 0x47, 0x4b, 0xbb, 0xdb, 0x43, 0x3a, 0xce, 0x3f, 0xce, + 0x54, 0x99, 0x7c, 0x47, 0x88, 0x49, 0x64, 0xbb, 0xf7, 0x8c, 0xb6, 0x27, 0x18, 0x2f, 0xb0, 0xc8, + 0xa6, 0x32, 0xce, 0x76, 0x13, 0x16, 0xfb, 0x96, 0x61, 0x79, 0xd8, 0xe9, 0x39, 0x98, 0x34, 0xf1, + 0xec, 0x24, 0xe6, 0xff, 0x65, 0xe6, 0x98, 0x36, 0x7c, 0x2f, 0xa8, 0xcd, 0x02, 0x40, 0x5d, 0xe8, + 0x8f, 0x0a, 0x8b, 0x25, 0xc8, 0x06, 0xe3, 0x42, 0x49, 0x03, 0x8b, 0x0c, 0x59, 0x22, 0x35, 0xb6, + 0x52, 0xdf, 0x20, 0xd5, 0xf1, 0xd3, 0x55, 0x39, 0x46, 0xaa, 0xf4, 0x56, 0x6d, 0xb7, 0xaa, 0xa9, + 0x7b, 0x3b, 0xbb, 0xb5, 0xed, 0xaa, 0x1c, 0x7f, 0x32, 0x9d, 0x7a, 0x6b, 0x46, 0xbe, 0x7f, 0xff, + 0xfe, 0xfd, 0x58, 0xf1, 0x3b, 0x31, 0xc8, 0x85, 0x3b, 0x63, 0xe5, 0xa7, 0xe0, 0x61, 0xf1, 0x1a, + 0xeb, 0x62, 0x4f, 0xbb, 0x67, 0x38, 0x34, 0x54, 0xbb, 0x88, 0xf5, 0x96, 0xbe, 0x97, 0x17, 0xb9, + 0x56, 0x13, 0x7b, 0xcf, 0x1b, 0x0e, 0x09, 0xc4, 0x2e, 0xf2, 0x94, 0x2d, 0x38, 0x67, 0xd9, 0x9a, + 0xeb, 0x21, 0xab, 0x85, 0x9c, 0x96, 0x36, 0xb8, 0x40, 0xd0, 0x90, 0xae, 0x63, 0xd7, 0xb5, 0x59, + 0x89, 0xf0, 0x59, 0x3e, 0x60, 0xd9, 0x4d, 0xae, 0x3c, 0xc8, 0x9d, 0x65, 0xae, 0x3a, 0x14, 0x11, + 0xf1, 0xe3, 0x22, 0xe2, 0x11, 0x48, 0x77, 0x51, 0x4f, 0xc3, 0x96, 0xe7, 0x1c, 0xd2, 0x7e, 0x2e, + 0xa5, 0xa6, 0xba, 0xa8, 0x57, 0x25, 0xe3, 0xf7, 0x6f, 0x0f, 0x82, 0x7e, 0xfc, 0xc7, 0x38, 0x64, + 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0x7a, 0xc2, 0x3f, 0x78, 0x62, 0x07, 0xb8, + 0x5a, 0x21, 0x89, 0xbd, 0x34, 0xcd, 0x3a, 0x2d, 0x95, 0x21, 0x49, 0x51, 0x25, 0x67, 0x1a, 0xb3, + 0xfe, 0x3d, 0xa5, 0xf2, 0x91, 0xb2, 0x09, 0xd3, 0xb7, 0x5d, 0xca, 0x3d, 0x4d, 0xb9, 0x1f, 0x3b, + 0x99, 0xfb, 0x46, 0x93, 0x92, 0xa7, 0x6f, 0x34, 0xb5, 0x9d, 0xba, 0xba, 0x5d, 0xde, 0x52, 0x39, + 0x5c, 0x39, 0x0b, 0x09, 0x13, 0xbd, 0x78, 0x18, 0x2e, 0x01, 0x54, 0x34, 0xa9, 0xe3, 0xcf, 0x42, + 0xe2, 0x1e, 0x46, 0x77, 0xc2, 0x89, 0x97, 0x8a, 0xde, 0xc7, 0xd0, 0x5f, 0x83, 0x24, 0xf5, 0x97, + 0x02, 0xc0, 0x3d, 0x26, 0x4f, 0x29, 0x29, 0x48, 0x54, 0xea, 0x2a, 0x09, 0x7f, 0x19, 0xb2, 0x4c, + 0xaa, 0x35, 0x6a, 0xd5, 0x4a, 0x55, 0x8e, 0x15, 0x2f, 0xc3, 0x34, 0x73, 0x02, 0x39, 0x1a, 0xbe, + 0x1b, 0xe4, 0x29, 0x3e, 0xe4, 0x1c, 0x92, 0x98, 0xdd, 0xdb, 0x5e, 0xaf, 0xaa, 0x72, 0x2c, 0xb8, + 0xbd, 0x2e, 0x64, 0x83, 0xed, 0xdc, 0x8f, 0x27, 0xa6, 0xfe, 0x5a, 0x82, 0x4c, 0xa0, 0x3d, 0x23, + 0x8d, 0x01, 0x32, 0x4d, 0xfb, 0x9e, 0x86, 0x4c, 0x03, 0xb9, 0x3c, 0x28, 0x80, 0x8a, 0xca, 0x44, + 0x32, 0xe9, 0xa6, 0xfd, 0x58, 0x8c, 0x7f, 0x55, 0x02, 0x79, 0xb8, 0xb5, 0x1b, 0x32, 0x50, 0xfa, + 0x89, 0x1a, 0xf8, 0x8a, 0x04, 0xb9, 0x70, 0x3f, 0x37, 0x64, 0xde, 0xf9, 0x9f, 0xa8, 0x79, 0x6f, + 0xc4, 0x60, 0x36, 0xd4, 0xc5, 0x4d, 0x6a, 0xdd, 0x67, 0x60, 0xde, 0x68, 0xe1, 0x6e, 0xcf, 0xf6, + 0xb0, 0xa5, 0x1f, 0x6a, 0x26, 0xbe, 0x8b, 0xcd, 0x7c, 0x91, 0x26, 0x8a, 0xb5, 0x93, 0xfb, 0xc4, + 0xd5, 0xda, 0x00, 0xb7, 0x45, 0x60, 0xa5, 0x85, 0xda, 0x46, 0x75, 0xbb, 0x51, 0xdf, 0xad, 0xee, + 0x54, 0x6e, 0x69, 0x7b, 0x3b, 0x3f, 0xbd, 0x53, 0x7f, 0x7e, 0x47, 0x95, 0x8d, 0x21, 0xb5, 0xf7, + 0xf1, 0xa8, 0x37, 0x40, 0x1e, 0x36, 0x4a, 0x79, 0x18, 0xc6, 0x99, 0x25, 0x4f, 0x29, 0x0b, 0x30, + 0xb7, 0x53, 0xd7, 0x9a, 0xb5, 0x8d, 0xaa, 0x56, 0xbd, 0x7e, 0xbd, 0x5a, 0xd9, 0x6d, 0xb2, 0x17, + 0x67, 0x5f, 0x7b, 0x37, 0x7c, 0xa8, 0x5f, 0x8e, 0xc3, 0xc2, 0x18, 0x4b, 0x94, 0x32, 0xef, 0xd9, + 0xd9, 0x6b, 0xc4, 0x47, 0x26, 0xb1, 0x7e, 0x95, 0x74, 0x05, 0x0d, 0xe4, 0x78, 0xbc, 0xc5, 0x7f, + 0x02, 0x88, 0x97, 0x2c, 0xcf, 0x68, 0x1b, 0xd8, 0xe1, 0xf7, 0x0c, 0xac, 0x91, 0x9f, 0x1b, 0xc8, + 0xd9, 0x55, 0xc3, 0x87, 0x41, 0xe9, 0xd9, 0xae, 0xe1, 0x19, 0x77, 0xb1, 0x66, 0x58, 0xe2, 0x52, + 0x82, 0x34, 0xf6, 0x09, 0x55, 0x16, 0x33, 0x35, 0xcb, 0xf3, 0xb5, 0x2d, 0xdc, 0x41, 0x43, 0xda, + 0x24, 0x81, 0xc7, 0x55, 0x59, 0xcc, 0xf8, 0xda, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0xa4, 0x4d, 0x62, + 0x7a, 0xa4, 0x5e, 0x48, 0x6a, 0x86, 0xc9, 0x7c, 0x15, 0xde, 0xc7, 0x0e, 0x6e, 0x43, 0xb2, 0x6a, + 0x86, 0xc9, 0x98, 0xca, 0x05, 0x98, 0x43, 0x9d, 0x8e, 0x43, 0xc8, 0x05, 0x11, 0xeb, 0xcc, 0x73, + 0xbe, 0x98, 0x2a, 0x2e, 0xdd, 0x80, 0x94, 0xf0, 0x03, 0x29, 0xc9, 0xc4, 0x13, 0x5a, 0x8f, 0xdd, + 0x49, 0xc5, 0x56, 0xd2, 0x6a, 0xca, 0x12, 0x93, 0xe7, 0x21, 0x6b, 0xb8, 0xda, 0xe0, 0x72, 0x34, + 0xb6, 0x1c, 0x5b, 0x49, 0xa9, 0x19, 0xc3, 0xf5, 0x6f, 0xc3, 0x8a, 0xaf, 0xc5, 0x20, 0x17, 0xbe, + 0xdc, 0x55, 0x36, 0x20, 0x65, 0xda, 0x3a, 0xa2, 0xa1, 0xc5, 0xbe, 0x2c, 0xac, 0x44, 0xdc, 0x07, + 0xaf, 0x6e, 0x71, 0x7d, 0xd5, 0x47, 0x2e, 0xfd, 0xbd, 0x04, 0x29, 0x21, 0x56, 0xce, 0x40, 0xa2, + 0x87, 0xbc, 0x03, 0x4a, 0x97, 0x5c, 0x8f, 0xc9, 0x92, 0x4a, 0xc7, 0x44, 0xee, 0xf6, 0x90, 0x45, + 0x43, 0x80, 0xcb, 0xc9, 0x98, 0xec, 0xab, 0x89, 0x51, 0x8b, 0xb6, 0xfd, 0x76, 0xb7, 0x8b, 0x2d, + 0xcf, 0x15, 0xfb, 0xca, 0xe5, 0x15, 0x2e, 0x56, 0x9e, 0x82, 0x79, 0xcf, 0x41, 0x86, 0x19, 0xd2, + 0x4d, 0x50, 0x5d, 0x59, 0x4c, 0xf8, 0xca, 0x25, 0x38, 0x2b, 0x78, 0x5b, 0xd8, 0x43, 0xfa, 0x01, + 0x6e, 0x0d, 0x40, 0xd3, 0xf4, 0xe6, 0xf0, 0x61, 0xae, 0xb0, 0xc1, 0xe7, 0x05, 0xb6, 0xf8, 0x3d, + 0x09, 0xe6, 0xc5, 0x8b, 0x4a, 0xcb, 0x77, 0xd6, 0x36, 0x00, 0xb2, 0x2c, 0xdb, 0x0b, 0xba, 0x6b, + 0x34, 0x94, 0x47, 0x70, 0xab, 0x65, 0x1f, 0xa4, 0x06, 0x08, 0x96, 0xba, 0x00, 0x83, 0x99, 0x63, + 0xdd, 0x76, 0x0e, 0x32, 0xfc, 0xe6, 0x9e, 0x7e, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, 0x44, 0xe4, 0x8d, + 0x46, 0x59, 0x84, 0xe4, 0x3e, 0xee, 0x18, 0x16, 0xbf, 0x4f, 0x64, 0x03, 0x71, 0x4b, 0x99, 0xf0, + 0x6f, 0x29, 0xd7, 0x6f, 0xc2, 0x82, 0x6e, 0x77, 0x87, 0xcd, 0x5d, 0x97, 0x87, 0x5e, 0xaf, 0xdd, + 0x4f, 0x48, 0x9f, 0x86, 0x41, 0x8b, 0xf9, 0xe5, 0x58, 0x7c, 0xb3, 0xb1, 0xfe, 0xd5, 0xd8, 0xd2, + 0x26, 0xc3, 0x35, 0xc4, 0x32, 0x55, 0xdc, 0x36, 0xb1, 0x4e, 0x4c, 0x87, 0x1f, 0x7c, 0x08, 0x3e, + 0xd2, 0x31, 0xbc, 0x83, 0xfe, 0xfe, 0xaa, 0x6e, 0x77, 0xd7, 0x3a, 0x76, 0xc7, 0x1e, 0x7c, 0xee, + 0x22, 0x23, 0x3a, 0xa0, 0xbf, 0xf8, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8a, 0xfc, 0x3e, 0x56, 0xda, + 0x81, 0x05, 0xae, 0xac, 0xd1, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x9c, 0x78, 0xef, 0x92, 0xff, 0xc6, + 0x9b, 0xb4, 0x56, 0xab, 0xf3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x44, 0x49, 0x85, 0x87, 0x42, 0x7c, + 0xec, 0x5c, 0x62, 0x27, 0x82, 0xf1, 0x3b, 0x9c, 0x71, 0x21, 0xc0, 0xd8, 0xe4, 0xd0, 0x52, 0x05, + 0x66, 0x4f, 0xc3, 0xf5, 0xb7, 0x9c, 0x2b, 0x8b, 0x83, 0x24, 0x9b, 0x30, 0x47, 0x49, 0xf4, 0xbe, + 0xeb, 0xd9, 0x5d, 0x9a, 0xf4, 0x4e, 0xa6, 0xf9, 0xbb, 0x37, 0xd9, 0x41, 0xc9, 0x11, 0x58, 0xc5, + 0x47, 0x95, 0x4a, 0x40, 0x3f, 0x33, 0xb4, 0xb0, 0x6e, 0x46, 0x30, 0xbc, 0xce, 0x0d, 0xf1, 0xf5, + 0x4b, 0x9f, 0x82, 0x45, 0xf2, 0x9b, 0xe6, 0xa4, 0xa0, 0x25, 0xd1, 0xb7, 0x4c, 0xf9, 0xef, 0xbd, + 0xc4, 0xce, 0xe2, 0x82, 0x4f, 0x10, 0xb0, 0x29, 0xb0, 0x8b, 0x1d, 0xec, 0x79, 0xd8, 0x71, 0x35, + 0x64, 0x8e, 0x33, 0x2f, 0xf0, 0x9a, 0x9e, 0xff, 0xe2, 0xdb, 0xe1, 0x5d, 0xdc, 0x64, 0xc8, 0xb2, + 0x69, 0x96, 0xf6, 0xe0, 0xe1, 0x31, 0x51, 0x31, 0x01, 0xe7, 0xcb, 0x9c, 0x73, 0x71, 0x24, 0x32, + 0x08, 0x6d, 0x03, 0x84, 0xdc, 0xdf, 0xcb, 0x09, 0x38, 0x7f, 0x9b, 0x73, 0x2a, 0x1c, 0x2b, 0xb6, + 0x94, 0x30, 0xde, 0x80, 0xf9, 0xbb, 0xd8, 0xd9, 0xb7, 0x5d, 0x7e, 0x35, 0x32, 0x01, 0xdd, 0x2b, + 0x9c, 0x6e, 0x8e, 0x03, 0xe9, 0x5d, 0x09, 0xe1, 0x7a, 0x16, 0x52, 0x6d, 0xa4, 0xe3, 0x09, 0x28, + 0xbe, 0xc4, 0x29, 0x66, 0x88, 0x3e, 0x81, 0x96, 0x21, 0xdb, 0xb1, 0x79, 0x59, 0x8a, 0x86, 0xbf, + 0xca, 0xe1, 0x19, 0x81, 0xe1, 0x14, 0x3d, 0xbb, 0xd7, 0x37, 0x49, 0xcd, 0x8a, 0xa6, 0xf8, 0x1d, + 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x14, 0x6e, 0xfd, 0x5d, 0x41, 0xe1, 0x06, 0xfc, 0xf9, 0x1c, 0x64, + 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x8c, 0xf8, 0x3d, 0xce, 0x00, 0x1c, 0x42, 0x08, 0xae, 0x41, + 0x7a, 0xd2, 0x8d, 0xf8, 0xfd, 0xb7, 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x09, 0x73, 0x22, 0x41, 0x19, + 0xb6, 0x35, 0x01, 0xc5, 0x1f, 0x70, 0x8a, 0x5c, 0x00, 0xc6, 0x97, 0xe1, 0x61, 0xd7, 0xeb, 0xe0, + 0x49, 0x48, 0x5e, 0x13, 0xcb, 0xe0, 0x10, 0xee, 0xca, 0x7d, 0x6c, 0xe9, 0x07, 0x93, 0x31, 0x7c, + 0x45, 0xb8, 0x52, 0x60, 0x08, 0x45, 0x05, 0x66, 0xbb, 0xc8, 0x71, 0x0f, 0x90, 0x39, 0xd1, 0x76, + 0xfc, 0x21, 0xe7, 0xc8, 0xfa, 0x20, 0xee, 0x91, 0xbe, 0x75, 0x1a, 0x9a, 0xaf, 0x0a, 0x8f, 0x04, + 0x60, 0xfc, 0xe8, 0xb9, 0x1e, 0xbd, 0x80, 0x3a, 0x0d, 0xdb, 0xd7, 0xc4, 0xd1, 0x63, 0xd8, 0xed, + 0x20, 0xe3, 0x35, 0x48, 0xbb, 0xc6, 0x8b, 0x13, 0xd1, 0xfc, 0x91, 0xd8, 0x69, 0x0a, 0x20, 0xe0, + 0x5b, 0x70, 0x76, 0x6c, 0x99, 0x98, 0x80, 0xec, 0x8f, 0x39, 0xd9, 0x99, 0x31, 0xa5, 0x82, 0xa7, + 0x84, 0xd3, 0x52, 0xfe, 0x89, 0x48, 0x09, 0x78, 0x88, 0xab, 0x41, 0x5e, 0x14, 0x5c, 0xd4, 0x3e, + 0x9d, 0xd7, 0xfe, 0x54, 0x78, 0x8d, 0x61, 0x43, 0x5e, 0xdb, 0x85, 0x33, 0x9c, 0xf1, 0x74, 0xfb, + 0xfa, 0x75, 0x91, 0x58, 0x19, 0x7a, 0x2f, 0xbc, 0xbb, 0x3f, 0x03, 0x4b, 0xbe, 0x3b, 0x45, 0x47, + 0xea, 0x6a, 0x5d, 0xd4, 0x9b, 0x80, 0xf9, 0x1b, 0x9c, 0x59, 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, + 0x51, 0x8f, 0x90, 0xdf, 0x84, 0xbc, 0x20, 0xef, 0x5b, 0x0e, 0xd6, 0xed, 0x8e, 0x65, 0xbc, 0x88, + 0x5b, 0x13, 0x50, 0xff, 0xd9, 0xd0, 0x56, 0xed, 0x05, 0xe0, 0x84, 0xb9, 0x06, 0xb2, 0xdf, 0xab, + 0x68, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0x8b, 0x9d, 0xf2, 0x71, 0x35, 0x0a, 0x2b, + 0x55, 0x21, 0x47, 0x87, 0x93, 0x86, 0xe4, 0x5f, 0x70, 0xa2, 0xd9, 0x01, 0x8a, 0x27, 0x0e, 0xdd, + 0xee, 0xf6, 0x90, 0x33, 0x49, 0xfe, 0xfb, 0x4b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xef, 0xb0, + 0x87, 0x49, 0xb5, 0x9f, 0x80, 0xe1, 0x9b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x04, + 0x14, 0x7f, 0x25, 0x28, 0x04, 0x86, 0x50, 0x7c, 0x72, 0x50, 0x68, 0x1d, 0xdc, 0x31, 0x5c, 0xcf, + 0x61, 0x7d, 0xf0, 0xc9, 0x54, 0xdf, 0x7a, 0x3b, 0xdc, 0x84, 0xa9, 0x01, 0x68, 0xe9, 0x06, 0xcc, + 0x0d, 0xb5, 0x18, 0x4a, 0xd4, 0xff, 0x2c, 0xe4, 0x7f, 0xf6, 0x5d, 0x9e, 0x8c, 0xc2, 0x1d, 0x46, + 0x69, 0x8b, 0xec, 0x7b, 0xb8, 0x0f, 0x88, 0x26, 0x7b, 0xe9, 0x5d, 0x7f, 0xeb, 0x43, 0x6d, 0x40, + 0xe9, 0x3a, 0xcc, 0x86, 0x7a, 0x80, 0x68, 0xaa, 0xcf, 0x72, 0xaa, 0x6c, 0xb0, 0x05, 0x28, 0x5d, + 0x86, 0x04, 0xa9, 0xe7, 0xd1, 0xf0, 0x9f, 0xe3, 0x70, 0xaa, 0x5e, 0xfa, 0x18, 0xa4, 0x44, 0x1d, + 0x8f, 0x86, 0xfe, 0x3c, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, 0x1a, 0xfe, 0x0b, 0x02, 0x2e, + 0x20, 0x04, 0x3e, 0xb9, 0x0b, 0xbf, 0xfd, 0x4b, 0x09, 0x9e, 0x87, 0x85, 0xef, 0xae, 0xc1, 0x0c, + 0x2f, 0xde, 0xd1, 0xe8, 0xcf, 0xf1, 0x87, 0x0b, 0x44, 0xe9, 0x19, 0x48, 0x4e, 0xe8, 0xf0, 0x5f, + 0xe6, 0x50, 0xa6, 0x5f, 0xaa, 0x40, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc2, 0xe1, 0x41, 0x14, + 0x31, 0x9d, 0x17, 0xec, 0x68, 0x82, 0x5f, 0x15, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, + 0xe8, 0xcf, 0x0b, 0xaf, 0x0b, 0x48, 0xe9, 0x39, 0x48, 0xfb, 0xf9, 0x37, 0x1a, 0xff, 0x6b, 0x1c, + 0x3f, 0xc0, 0x10, 0x0f, 0x04, 0xf2, 0x7f, 0x34, 0xc5, 0xaf, 0x0b, 0x0f, 0x04, 0x50, 0xe4, 0x18, + 0x0d, 0xd7, 0xf4, 0x68, 0xa6, 0xdf, 0x10, 0xc7, 0x68, 0xa8, 0xa4, 0x93, 0xdd, 0xa4, 0x69, 0x30, + 0x9a, 0xe2, 0x37, 0xc5, 0x6e, 0x52, 0x7d, 0x62, 0xc6, 0x70, 0x91, 0x8c, 0xe6, 0xf8, 0x2d, 0x61, + 0xc6, 0x50, 0x8d, 0x2c, 0x35, 0x40, 0x19, 0x2d, 0x90, 0xd1, 0x7c, 0x5f, 0xe0, 0x7c, 0xf3, 0x23, + 0xf5, 0xb1, 0xf4, 0x3c, 0x9c, 0x19, 0x5f, 0x1c, 0xa3, 0x59, 0xbf, 0xf8, 0xee, 0xd0, 0xeb, 0x4c, + 0xb0, 0x36, 0x96, 0x76, 0x07, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x7e, 0x37, 0x9c, 0x68, + 0x83, 0x75, 0xb1, 0x54, 0x06, 0x18, 0xd4, 0xa4, 0x68, 0xae, 0x57, 0x38, 0x57, 0x00, 0x44, 0x8e, + 0x06, 0x2f, 0x49, 0xd1, 0xf8, 0x2f, 0x89, 0xa3, 0xc1, 0x11, 0xe4, 0x68, 0x88, 0x6a, 0x14, 0x8d, + 0x7e, 0x55, 0x1c, 0x0d, 0x01, 0x29, 0x5d, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x12, 0x5b, 0xca, 0xc9, + 0xff, 0x46, 0x94, 0xff, 0xd7, 0xf7, 0x38, 0x58, 0x00, 0x4a, 0x97, 0x21, 0x89, 0xbb, 0xfb, 0xb8, + 0x15, 0x85, 0xfc, 0xb7, 0xf7, 0x44, 0x3e, 0x21, 0xda, 0xa5, 0xe7, 0x00, 0xd8, 0xcb, 0x34, 0xfd, + 0x4a, 0x14, 0x81, 0xfd, 0xf7, 0xf7, 0xf8, 0x7f, 0x28, 0x0c, 0x20, 0x03, 0x02, 0xf6, 0xff, 0x0e, + 0x27, 0x13, 0xbc, 0x1d, 0x26, 0xa0, 0x2f, 0xe0, 0xcf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xd4, + 0x89, 0x42, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0xae, 0xed, 0x60, 0x0f, 0x75, 0xdc, 0x28, + 0xec, 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x1d, 0xb9, 0xde, 0x24, 0xeb, 0xfe, 0x2f, 0x01, 0x16, + 0x00, 0x62, 0x34, 0xf9, 0x7d, 0x07, 0x1f, 0x46, 0x61, 0xdf, 0x11, 0x46, 0x73, 0xfd, 0xd2, 0xc7, + 0x20, 0x4d, 0x7e, 0xb2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x07, 0x0f, 0x10, 0xe4, 0xc9, 0xae, + 0xd7, 0xf2, 0x8c, 0x68, 0x67, 0xff, 0x0f, 0xdf, 0x69, 0xa1, 0x5f, 0x2a, 0x43, 0xc6, 0xf5, 0x5a, + 0xad, 0x3e, 0xef, 0x68, 0x22, 0xe0, 0x3f, 0x78, 0xcf, 0x7f, 0xc9, 0xf5, 0x31, 0xeb, 0xe7, 0xc7, + 0x5f, 0xd6, 0xc1, 0xa6, 0xbd, 0x69, 0xb3, 0x6b, 0x3a, 0xf8, 0x7c, 0x12, 0x8a, 0xba, 0xdd, 0xdd, + 0xb7, 0xdd, 0xb5, 0x40, 0x1a, 0x5a, 0xf3, 0x57, 0x20, 0xae, 0xda, 0x7c, 0xc1, 0xd2, 0xe9, 0x2e, + 0xe9, 0x8a, 0x7f, 0x13, 0x87, 0x54, 0x05, 0xb9, 0x1e, 0xba, 0x87, 0x0e, 0x95, 0x1e, 0x2c, 0x90, + 0xdf, 0xdb, 0xa8, 0x47, 0xaf, 0x7c, 0xf8, 0x19, 0xe3, 0x97, 0xa0, 0x1f, 0x5e, 0x1d, 0x3c, 0x55, + 0x20, 0x56, 0xc7, 0xa8, 0xd3, 0x8f, 0xc7, 0xeb, 0xf2, 0xeb, 0xff, 0x74, 0x6e, 0xea, 0x17, 0xff, + 0xf9, 0x5c, 0x6a, 0xfb, 0xf0, 0x79, 0xc3, 0x74, 0x6d, 0x4b, 0x1d, 0x47, 0xad, 0x7c, 0x56, 0x82, + 0x47, 0xc6, 0xc8, 0x77, 0xf8, 0x41, 0xe4, 0x9f, 0x12, 0x2e, 0x4d, 0xf8, 0x68, 0x01, 0x63, 0x26, + 0x64, 0x43, 0x8f, 0x3f, 0xe9, 0x31, 0x4b, 0xb7, 0x20, 0x7f, 0xdc, 0x4a, 0x14, 0x19, 0xe2, 0x77, + 0xf0, 0x21, 0xff, 0xf7, 0x50, 0xf2, 0x53, 0xb9, 0x30, 0xf8, 0xf7, 0x32, 0x69, 0x25, 0x73, 0x71, + 0x3e, 0x60, 0x1d, 0x7f, 0x18, 0x9b, 0x2f, 0xc5, 0xae, 0x4a, 0x4b, 0x08, 0x96, 0xa3, 0x2c, 0xfd, + 0x7f, 0x3e, 0xa2, 0x58, 0x80, 0x69, 0x26, 0x54, 0x16, 0x21, 0x59, 0xb3, 0xbc, 0x2b, 0x97, 0x28, + 0x55, 0x5c, 0x65, 0x83, 0xf5, 0xad, 0xd7, 0x1f, 0x14, 0xa6, 0xbe, 0xfb, 0xa0, 0x30, 0xf5, 0x0f, + 0x0f, 0x0a, 0x53, 0x6f, 0x3c, 0x28, 0x48, 0x6f, 0x3d, 0x28, 0x48, 0xef, 0x3c, 0x28, 0x48, 0x3f, + 0x7c, 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, 0x15, 0xa4, 0x6f, + 0x1d, 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0xd7, 0x8f, 0x0a, 0x53, 0xdf, 0x3d, 0x2a, 0x48, 0x6f, + 0x1c, 0x15, 0xa4, 0xb7, 0x8e, 0x0a, 0x53, 0xef, 0x1c, 0x15, 0xa4, 0x1f, 0x1e, 0x15, 0xa6, 0xee, + 0x7f, 0xbf, 0x30, 0xf5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x72, 0x73, 0x97, 0x57, 0xef, 0x30, + 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -599,23 +620,6 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -679,7 +683,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -687,43 +691,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -744,8 +748,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -831,8 +836,8 @@ func valueToStringCastvalue(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -844,7 +849,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -872,7 +877,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -894,7 +899,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -909,62 +914,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + if m.CastMapValueMessage == nil { + m.CastMapValueMessage = make(map[int32]MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) + } else { + var mapvalue MyWilson + m.CastMapValueMessage[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -978,7 +988,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1000,7 +1010,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1015,66 +1025,71 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + if m.CastMapValueMessageNullable == nil { + m.CastMapValueMessageNullable = make(map[int32]*MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) + } else { + var mapvalue *MyWilson + m.CastMapValueMessageNullable[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCastvalue(data[iNdEx:]) + skippy, err := skipCastvalue(dAtA[iNdEx:]) if err != nil { return err } @@ -1084,7 +1099,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1094,8 +1109,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1107,7 +1122,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1135,7 +1150,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1145,7 +1160,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCastvalue(data[iNdEx:]) + skippy, err := skipCastvalue(dAtA[iNdEx:]) if err != nil { return err } @@ -1155,7 +1170,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1165,8 +1180,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCastvalue(data []byte) (n int, err error) { - l := len(data) +func skipCastvalue(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1177,7 +1192,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1195,7 +1210,7 @@ func skipCastvalue(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1212,7 +1227,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1235,7 +1250,7 @@ func skipCastvalue(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1246,7 +1261,7 @@ func skipCastvalue(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCastvalue(data[start:]) + next, err := skipCastvalue(dAtA[start:]) if err != nil { return 0, err } @@ -1270,28 +1285,31 @@ var ( ErrIntOverflowCastvalue = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 340 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x4a, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0x2f, 0xcd, 0xcb, 0x4d, 0x2c, 0x2a, 0xce, 0x48, 0xcc, 0x49, 0x2d, 0xd2, 0x4f, - 0x4e, 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, - 0x84, 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x01, 0x75, 0xe9, 0xa7, 0xe7, - 0xa7, 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, - 0x74, 0x90, 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, - 0xc4, 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, - 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, - 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, - 0x86, 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, - 0xc6, 0x62, 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, - 0x22, 0xad, 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, - 0xb9, 0x24, 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, - 0xac, 0x41, 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, - 0x88, 0xe4, 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, - 0x2e, 0xa5, 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, - 0x89, 0x99, 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, - 0x86, 0x0b, 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, - 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, - 0xe2, 0x13, 0x8f, 0x80, 0xea, 0x81, 0xf4, 0x03, 0x20, 0x7e, 0x01, 0x64, 0x7f, 0x00, 0xd2, 0x3f, - 0x80, 0x74, 0xc3, 0x63, 0x39, 0x06, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x77, 0x04, 0x2e, - 0x90, 0x02, 0x00, 0x00, + // 359 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xf2, 0x50, + 0x14, 0xc6, 0xef, 0xa1, 0xe1, 0x0d, 0xef, 0xc5, 0x01, 0xab, 0x43, 0x83, 0xc9, 0xa1, 0x61, 0x91, + 0x41, 0xdb, 0x84, 0x10, 0x63, 0x1c, 0x31, 0x0e, 0x26, 0xe2, 0xc0, 0xa0, 0x71, 0xbc, 0x25, 0xb5, + 0x10, 0x4b, 0x2f, 0xe9, 0x87, 0xa6, 0x1b, 0x83, 0x93, 0x7f, 0x89, 0xa3, 0xa3, 0xa3, 0x6e, 0x8c, + 0x8c, 0x4e, 0x4a, 0xaf, 0x0b, 0x23, 0x23, 0xa3, 0xe1, 0x56, 0xfc, 0x48, 0xf0, 0x23, 0x71, 0x3b, + 0xe7, 0xb9, 0xe7, 0x79, 0x7e, 0xcf, 0xa5, 0xe5, 0x16, 0xef, 0x5a, 0x3c, 0x30, 0x23, 0xaf, 0xcb, + 0xfc, 0xa0, 0xcd, 0x5c, 0xdb, 0x37, 0x5b, 0x2c, 0x08, 0xcf, 0x99, 0x1b, 0xd9, 0x46, 0xcf, 0xe7, + 0x21, 0x57, 0xff, 0xbf, 0x09, 0xc5, 0x4d, 0xa7, 0x13, 0xb6, 0x23, 0xcb, 0x68, 0xf1, 0xae, 0xe9, + 0x70, 0x87, 0x9b, 0xf2, 0xc2, 0x8a, 0x4e, 0xe5, 0x26, 0x17, 0x39, 0xa5, 0xce, 0xf2, 0xbd, 0x42, + 0x73, 0xbb, 0x2c, 0x08, 0xd9, 0x05, 0x8b, 0xd5, 0x1e, 0x5d, 0x99, 0xcd, 0x0d, 0xd6, 0x3b, 0x9a, + 0x65, 0x35, 0xec, 0x20, 0x60, 0x8e, 0xad, 0x81, 0xae, 0x54, 0xf2, 0xd5, 0x0d, 0xe3, 0x9d, 0x3a, + 0x77, 0x18, 0x0b, 0xce, 0xf7, 0xbc, 0xd0, 0x8f, 0xeb, 0x85, 0xc1, 0x63, 0x89, 0x5c, 0x3d, 0x95, + 0x72, 0x8d, 0xf8, 0xb8, 0xe3, 0x06, 0xdc, 0x6b, 0x2e, 0x8a, 0x56, 0x2f, 0x81, 0xae, 0x2d, 0xd0, + 0x0f, 0x23, 0xd7, 0x65, 0x96, 0x6b, 0x6b, 0x19, 0x89, 0xae, 0xfd, 0x12, 0x3d, 0xb7, 0xa5, 0x15, + 0x96, 0x3e, 0xe1, 0xbf, 0xc3, 0x14, 0x4f, 0xa8, 0xf6, 0xd5, 0x4f, 0xd4, 0x02, 0x55, 0xce, 0xec, + 0x58, 0x03, 0x1d, 0x2a, 0xd9, 0xe6, 0x6c, 0x54, 0xd7, 0x69, 0x56, 0x76, 0xd1, 0x32, 0x3a, 0x54, + 0xf2, 0xd5, 0xe5, 0x0f, 0xed, 0x5e, 0x61, 0xe9, 0xfb, 0x4e, 0x66, 0x1b, 0x8a, 0x8c, 0xea, 0x3f, + 0x35, 0xfd, 0x23, 0xa2, 0x8c, 0xf4, 0x5f, 0x2a, 0xaa, 0xab, 0x34, 0xbb, 0xef, 0x85, 0x5b, 0x35, + 0x19, 0xa5, 0x34, 0xd3, 0xa5, 0x7e, 0x30, 0x48, 0x90, 0x0c, 0x13, 0x24, 0x0f, 0x09, 0x92, 0x51, + 0x82, 0x30, 0x4e, 0x10, 0x26, 0x09, 0xc2, 0x34, 0x41, 0xe8, 0x0b, 0x84, 0x6b, 0x81, 0x70, 0x23, + 0x10, 0x6e, 0x05, 0xc2, 0x9d, 0x40, 0x18, 0x08, 0x24, 0x43, 0x81, 0x30, 0x12, 0x08, 0x63, 0x81, + 0x64, 0x22, 0x10, 0xa6, 0x02, 0x49, 0xff, 0x19, 0xc9, 0x4b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x73, + 0xe3, 0x1c, 0x3e, 0x90, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto index a677196f..2f046a71 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go index fc745be7..dc21c246 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go @@ -34,18 +34,18 @@ func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +73,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +87,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -108,18 +108,18 @@ func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +147,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +161,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +224,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +241,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +258,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +275,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -294,12 +294,12 @@ func TestCastvalueDescription(t *testing.T) { func TestCastawayVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -309,12 +309,12 @@ func TestCastawayVerboseEqual(t *testing.T) { func TestWilsonVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +368,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +404,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go index 40177c0c..3257a58d 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go @@ -26,13 +26,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -42,11 +38,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -55,7 +53,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -76,224 +74,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3470 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0x57, - 0x15, 0xae, 0x63, 0x3b, 0xb1, 0x8f, 0x1d, 0xc7, 0x99, 0xa4, 0xbb, 0xde, 0x6c, 0xbb, 0xd9, 0x75, - 0x1f, 0xbb, 0xdd, 0xb6, 0x49, 0x59, 0xfa, 0xd8, 0xba, 0xd0, 0x2a, 0x0f, 0x6f, 0xea, 0x55, 0x5e, - 0x4c, 0x92, 0x76, 0xb7, 0xfc, 0x18, 0x4d, 0xc6, 0x37, 0x8e, 0x77, 0xc7, 0x33, 0xc6, 0x33, 0xde, - 0xdd, 0xf4, 0x57, 0x51, 0x0b, 0xa8, 0x20, 0x28, 0x2f, 0x89, 0xbe, 0xa1, 0x95, 0xa0, 0xa5, 0xbc, - 0x5a, 0x5e, 0x42, 0xfc, 0x2a, 0x42, 0x85, 0xfe, 0x42, 0xc0, 0x2f, 0x7e, 0x20, 0x68, 0x4b, 0x25, - 0x0a, 0x14, 0x28, 0xd2, 0x4a, 0x54, 0xea, 0x1f, 0xce, 0x7d, 0x8d, 0x67, 0x6c, 0x27, 0xe3, 0x14, - 0x95, 0x12, 0x69, 0x94, 0x99, 0x73, 0xcf, 0xf7, 0xcd, 0xbd, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, - 0x0c, 0x3f, 0xff, 0x00, 0x1c, 0xac, 0xd8, 0x76, 0xc5, 0x24, 0x93, 0xf5, 0x86, 0xed, 0xda, 0xeb, - 0xcd, 0x8d, 0xc9, 0x32, 0x71, 0x8c, 0x46, 0xb5, 0xee, 0xda, 0x8d, 0x09, 0x26, 0x53, 0x86, 0xb8, - 0xc6, 0x84, 0xd4, 0xc8, 0x2f, 0xc0, 0xf0, 0x89, 0xaa, 0x49, 0x66, 0x3d, 0xc5, 0x15, 0xe2, 0x2a, - 0xc7, 0x21, 0xb6, 0x81, 0xc2, 0x5c, 0xe4, 0x60, 0xf4, 0x48, 0xea, 0xd8, 0x95, 0x13, 0x6d, 0xa0, - 0x89, 0x20, 0x62, 0x99, 0x8a, 0x55, 0x86, 0xc8, 0xbf, 0x1e, 0x83, 0x91, 0x2e, 0xad, 0x8a, 0x02, - 0x31, 0x4b, 0xaf, 0x51, 0xc6, 0xc8, 0x91, 0xa4, 0xca, 0xee, 0x95, 0x1c, 0x0c, 0xd4, 0x75, 0xe3, - 0xac, 0x5e, 0x21, 0xb9, 0x3e, 0x26, 0x96, 0x8f, 0xca, 0x01, 0x80, 0x32, 0xa9, 0x13, 0xab, 0x4c, - 0x2c, 0x63, 0x2b, 0x17, 0xc5, 0x5e, 0x24, 0x55, 0x9f, 0x44, 0xb9, 0x16, 0x86, 0xeb, 0xcd, 0x75, - 0xb3, 0x6a, 0x68, 0x3e, 0x35, 0x40, 0xb5, 0xb8, 0x9a, 0xe5, 0x0d, 0xb3, 0x2d, 0xe5, 0xc3, 0x30, - 0x74, 0x9e, 0xe8, 0x67, 0xfd, 0xaa, 0x29, 0xa6, 0x9a, 0xa1, 0x62, 0x9f, 0xe2, 0x0c, 0xa4, 0x6b, - 0xc4, 0x71, 0xb0, 0x03, 0x9a, 0xbb, 0x55, 0x27, 0xb9, 0x18, 0x1b, 0xfd, 0xc1, 0x8e, 0xd1, 0xb7, - 0x8f, 0x3c, 0x25, 0x50, 0xab, 0x08, 0x52, 0xa6, 0x20, 0x49, 0xac, 0x66, 0x8d, 0x33, 0xc4, 0xb7, - 0xb1, 0x5f, 0x11, 0x35, 0xda, 0x59, 0x12, 0x14, 0x26, 0x28, 0x06, 0x1c, 0xd2, 0x38, 0x57, 0x35, - 0x48, 0xae, 0x9f, 0x11, 0x1c, 0xee, 0x20, 0x58, 0xe1, 0xed, 0xed, 0x1c, 0x12, 0x87, 0x43, 0x49, - 0x92, 0x0b, 0x2e, 0xb1, 0x9c, 0xaa, 0x6d, 0xe5, 0x06, 0x18, 0xc9, 0x55, 0x5d, 0x66, 0x91, 0x98, - 0xe5, 0x76, 0x8a, 0x16, 0x4e, 0xb9, 0x19, 0x06, 0xec, 0xba, 0x8b, 0x77, 0x4e, 0x2e, 0x81, 0xf3, - 0x93, 0x3a, 0x76, 0x59, 0x57, 0x47, 0x58, 0xe2, 0x3a, 0xaa, 0x54, 0x56, 0x4a, 0x90, 0x75, 0xec, - 0x66, 0xc3, 0x20, 0x9a, 0x61, 0x97, 0x89, 0x56, 0xb5, 0x36, 0xec, 0x5c, 0x92, 0x11, 0x8c, 0x77, - 0x0e, 0x84, 0x29, 0xce, 0xa0, 0x5e, 0x09, 0xd5, 0xd4, 0x8c, 0x13, 0x78, 0x56, 0xf6, 0x40, 0xbf, - 0xb3, 0x65, 0xb9, 0xfa, 0x85, 0x5c, 0x9a, 0x79, 0x88, 0x78, 0xca, 0xff, 0x3b, 0x0e, 0x43, 0xbd, - 0xb8, 0xd8, 0x6d, 0x10, 0xdf, 0xa0, 0xa3, 0x44, 0x07, 0xdb, 0x85, 0x0d, 0x38, 0x26, 0x68, 0xc4, - 0xfe, 0x77, 0x69, 0xc4, 0x29, 0x48, 0x59, 0xc4, 0x71, 0x49, 0x99, 0x7b, 0x44, 0xb4, 0x47, 0x9f, - 0x02, 0x0e, 0xea, 0x74, 0xa9, 0xd8, 0xbb, 0x72, 0xa9, 0x53, 0x30, 0xe4, 0x75, 0x49, 0x6b, 0xe8, - 0x56, 0x45, 0xfa, 0xe6, 0x64, 0x58, 0x4f, 0x26, 0x8a, 0x12, 0xa7, 0x52, 0x98, 0x9a, 0x21, 0x81, - 0x67, 0x65, 0x16, 0xc0, 0xb6, 0x88, 0xbd, 0x81, 0xcb, 0xcb, 0x30, 0xd1, 0x4f, 0xba, 0x5b, 0x69, - 0x89, 0xaa, 0x74, 0x58, 0xc9, 0xe6, 0x52, 0xc3, 0x54, 0x6e, 0x6d, 0xb9, 0xda, 0xc0, 0x36, 0x9e, - 0xb2, 0xc0, 0x17, 0x59, 0x87, 0xb7, 0xad, 0x41, 0xa6, 0x41, 0xa8, 0xdf, 0xa3, 0x89, 0xf9, 0xc8, - 0x92, 0xac, 0x13, 0x13, 0xa1, 0x23, 0x53, 0x05, 0x8c, 0x0f, 0x6c, 0xb0, 0xe1, 0x7f, 0x54, 0xae, - 0x00, 0x4f, 0xa0, 0x31, 0xb7, 0x02, 0x16, 0x85, 0xd2, 0x52, 0xb8, 0x88, 0xb2, 0xb1, 0xe3, 0x90, - 0x09, 0x9a, 0x47, 0x19, 0x85, 0xb8, 0xe3, 0xea, 0x0d, 0x97, 0x79, 0x61, 0x5c, 0xe5, 0x0f, 0x4a, - 0x16, 0xa2, 0x18, 0x64, 0x58, 0x94, 0x8b, 0xab, 0xf4, 0x76, 0xec, 0x16, 0x18, 0x0c, 0xbc, 0xbe, - 0x57, 0x60, 0xfe, 0xe1, 0x7e, 0x18, 0xed, 0xe6, 0x73, 0x5d, 0xdd, 0x1f, 0x97, 0x0f, 0x7a, 0xc0, - 0x3a, 0x69, 0xa0, 0xdf, 0x51, 0x06, 0xf1, 0x84, 0x1e, 0x15, 0x37, 0xf5, 0x75, 0x62, 0xa2, 0x37, - 0x45, 0x8e, 0x64, 0x8e, 0x5d, 0xdb, 0x93, 0x57, 0x4f, 0xcc, 0x53, 0x88, 0xca, 0x91, 0xca, 0xed, - 0x10, 0x13, 0x21, 0x8e, 0x32, 0x1c, 0xed, 0x8d, 0x81, 0xfa, 0xa2, 0xca, 0x70, 0xca, 0x7e, 0x48, - 0xd2, 0xff, 0xdc, 0xb6, 0xfd, 0xac, 0xcf, 0x09, 0x2a, 0xa0, 0x76, 0x55, 0xc6, 0x20, 0xc1, 0xdc, - 0xac, 0x4c, 0x64, 0x6a, 0xf0, 0x9e, 0xe9, 0xc4, 0x94, 0xc9, 0x86, 0xde, 0x34, 0x5d, 0xed, 0x9c, - 0x6e, 0x36, 0x09, 0x73, 0x18, 0x9c, 0x18, 0x21, 0xbc, 0x8b, 0xca, 0x94, 0x71, 0x48, 0x71, 0xaf, - 0xac, 0x22, 0xe6, 0x02, 0x8b, 0x3e, 0x71, 0x95, 0x3b, 0x6a, 0x89, 0x4a, 0xe8, 0xeb, 0xcf, 0x38, - 0xb8, 0x16, 0xc4, 0xd4, 0xb2, 0x57, 0x50, 0x01, 0x7b, 0xfd, 0x2d, 0xed, 0x81, 0xef, 0xf2, 0xee, - 0xc3, 0x6b, 0xf7, 0xc5, 0xfc, 0x8f, 0xfb, 0x20, 0xc6, 0xd6, 0xdb, 0x10, 0xa4, 0x56, 0x4f, 0x2f, - 0x17, 0xb5, 0xd9, 0xa5, 0xb5, 0xe9, 0xf9, 0x62, 0x36, 0xa2, 0x64, 0x00, 0x98, 0xe0, 0xc4, 0xfc, - 0xd2, 0xd4, 0x6a, 0xb6, 0xcf, 0x7b, 0x2e, 0x2d, 0xae, 0xde, 0x7c, 0x63, 0x36, 0xea, 0x01, 0xd6, - 0xb8, 0x20, 0xe6, 0x57, 0xf8, 0xe0, 0xb1, 0x6c, 0x1c, 0x3d, 0x21, 0xcd, 0x09, 0x4a, 0xa7, 0x8a, - 0xb3, 0xa8, 0xd1, 0x1f, 0x94, 0xa0, 0xce, 0x80, 0x32, 0x08, 0x49, 0x26, 0x99, 0x5e, 0x5a, 0x9a, - 0xcf, 0x26, 0x3c, 0xce, 0x95, 0x55, 0xb5, 0xb4, 0x38, 0x97, 0x4d, 0x7a, 0x9c, 0x73, 0xea, 0xd2, - 0xda, 0x72, 0x16, 0x3c, 0x86, 0x85, 0xe2, 0xca, 0xca, 0xd4, 0x5c, 0x31, 0x9b, 0xf2, 0x34, 0xa6, - 0x4f, 0xaf, 0x16, 0x57, 0xb2, 0xe9, 0x40, 0xb7, 0xf0, 0x15, 0x83, 0xde, 0x2b, 0x8a, 0x8b, 0x6b, - 0x0b, 0xd9, 0x8c, 0x32, 0x0c, 0x83, 0xfc, 0x15, 0xb2, 0x13, 0x43, 0x6d, 0x22, 0xec, 0x69, 0xb6, - 0xd5, 0x11, 0xce, 0x32, 0x1c, 0x10, 0xa0, 0x86, 0x92, 0x9f, 0x81, 0x38, 0xf3, 0x2e, 0xf4, 0xe2, - 0xcc, 0xfc, 0xd4, 0x74, 0x71, 0x5e, 0x5b, 0x5a, 0x5e, 0x2d, 0x2d, 0x2d, 0x4e, 0xcd, 0xa3, 0xed, - 0x3c, 0x99, 0x5a, 0xfc, 0xc8, 0x5a, 0x49, 0x2d, 0xce, 0xa2, 0xfd, 0x7c, 0xb2, 0xe5, 0xe2, 0xd4, - 0x2a, 0xca, 0xa2, 0xf9, 0xa3, 0x30, 0xda, 0x2d, 0xce, 0x74, 0x5b, 0x19, 0xf9, 0xa7, 0x23, 0x30, - 0xd2, 0x25, 0x64, 0x76, 0x5d, 0x45, 0x77, 0x40, 0x9c, 0x7b, 0x1a, 0x4f, 0x22, 0xd7, 0x74, 0x8d, - 0xbd, 0xcc, 0xef, 0x3a, 0x12, 0x09, 0xc3, 0xf9, 0x13, 0x69, 0x74, 0x9b, 0x44, 0x4a, 0x29, 0x3a, - 0xdc, 0xe9, 0xfe, 0x08, 0xe4, 0xb6, 0xe3, 0x0e, 0x59, 0xef, 0x7d, 0x81, 0xf5, 0x7e, 0x5b, 0x7b, - 0x07, 0x0e, 0x6d, 0x3f, 0x86, 0x8e, 0x5e, 0x3c, 0x13, 0x81, 0x3d, 0xdd, 0xeb, 0x8d, 0xae, 0x7d, - 0xb8, 0x1d, 0xfa, 0x6b, 0xc4, 0xdd, 0xb4, 0x65, 0xce, 0xbd, 0xba, 0x4b, 0x24, 0xa7, 0xcd, 0xed, - 0xb6, 0x12, 0x28, 0x7f, 0x2a, 0x88, 0x6e, 0x57, 0x34, 0xf0, 0xde, 0x74, 0xf4, 0xf4, 0xc1, 0x3e, - 0xb8, 0xb4, 0x2b, 0x79, 0xd7, 0x8e, 0x5e, 0x0e, 0x50, 0xb5, 0xea, 0x4d, 0x97, 0xe7, 0x55, 0x1e, - 0x66, 0x92, 0x4c, 0xc2, 0x96, 0x30, 0x0d, 0x21, 0x4d, 0xd7, 0x6b, 0x8f, 0xb2, 0x76, 0xe0, 0x22, - 0xa6, 0x70, 0xbc, 0xd5, 0xd1, 0x18, 0xeb, 0xe8, 0x81, 0x6d, 0x46, 0xda, 0x91, 0xb2, 0x6e, 0x80, - 0xac, 0x61, 0x56, 0x89, 0xe5, 0x6a, 0x8e, 0xdb, 0x20, 0x7a, 0xad, 0x6a, 0x55, 0x58, 0x1c, 0x4d, - 0x14, 0xe2, 0x1b, 0xba, 0xe9, 0x10, 0x75, 0x88, 0x37, 0xaf, 0xc8, 0x56, 0x8a, 0x60, 0xc9, 0xa2, - 0xe1, 0x43, 0xf4, 0x07, 0x10, 0xbc, 0xd9, 0x43, 0xe4, 0x7f, 0x3b, 0x00, 0x29, 0x5f, 0x75, 0xa6, - 0x1c, 0x82, 0xf4, 0x19, 0xfd, 0x9c, 0xae, 0xc9, 0x8a, 0x9b, 0x5b, 0x22, 0x45, 0x65, 0xcb, 0xa2, - 0xea, 0xbe, 0x01, 0x46, 0x99, 0x0a, 0x8e, 0x11, 0x5f, 0x64, 0x98, 0xba, 0xe3, 0x30, 0xa3, 0x25, - 0x98, 0xaa, 0x42, 0xdb, 0x96, 0x68, 0xd3, 0x8c, 0x6c, 0x51, 0x6e, 0x82, 0x11, 0x86, 0xa8, 0x61, - 0xe0, 0xad, 0xd6, 0x4d, 0xa2, 0xd1, 0x3d, 0x80, 0xc3, 0xe2, 0xa9, 0xd7, 0xb3, 0x61, 0xaa, 0xb1, - 0x20, 0x14, 0x68, 0x8f, 0x1c, 0x65, 0x0e, 0x2e, 0x67, 0xb0, 0x0a, 0xb1, 0x48, 0x43, 0x77, 0x89, - 0x46, 0x3e, 0xd6, 0x44, 0x5d, 0x4d, 0xb7, 0xca, 0xda, 0xa6, 0xee, 0x6c, 0xe6, 0x46, 0xfd, 0x04, - 0xfb, 0xa8, 0xee, 0x9c, 0x50, 0x2d, 0x32, 0xcd, 0x29, 0xab, 0x7c, 0x27, 0xea, 0x29, 0x05, 0xd8, - 0xc3, 0x88, 0xd0, 0x28, 0x38, 0x66, 0xcd, 0xd8, 0x24, 0xc6, 0x59, 0xad, 0xe9, 0x6e, 0x1c, 0xcf, - 0xed, 0xf7, 0x33, 0xb0, 0x4e, 0xae, 0x30, 0x9d, 0x19, 0xaa, 0xb2, 0x86, 0x1a, 0xca, 0x0a, 0xa4, - 0xe9, 0x7c, 0xd4, 0xaa, 0xf7, 0x62, 0xb7, 0xed, 0x06, 0xcb, 0x11, 0x99, 0x2e, 0x8b, 0xdb, 0x67, - 0xc4, 0x89, 0x25, 0x01, 0x58, 0xc0, 0xfa, 0xb4, 0x10, 0x5f, 0x59, 0x2e, 0x16, 0x67, 0xd5, 0x94, - 0x64, 0x39, 0x61, 0x37, 0xa8, 0x4f, 0x55, 0x6c, 0xcf, 0xc6, 0x29, 0xee, 0x53, 0x15, 0x5b, 0x5a, - 0x18, 0xed, 0x65, 0x18, 0x7c, 0xd8, 0xb8, 0x77, 0x11, 0xc5, 0xba, 0x93, 0xcb, 0x06, 0xec, 0x65, - 0x18, 0x73, 0x5c, 0x41, 0xb8, 0xb9, 0x83, 0x4b, 0xe2, 0xd2, 0x96, 0xbd, 0xfc, 0xc0, 0xe1, 0x8e, - 0x51, 0xb6, 0x43, 0xf1, 0x8d, 0xf5, 0xad, 0x4e, 0xa0, 0x12, 0x78, 0x63, 0x7d, 0xab, 0x1d, 0x76, - 0x15, 0xdb, 0x80, 0x35, 0x88, 0x81, 0x26, 0x2f, 0xe7, 0xf6, 0xfa, 0xb5, 0x7d, 0x0d, 0xca, 0x24, - 0x3a, 0xb2, 0xa1, 0x11, 0x4b, 0x5f, 0xc7, 0xb9, 0xd7, 0x1b, 0x78, 0xe3, 0xe4, 0xc6, 0xfd, 0xca, - 0x19, 0xc3, 0x28, 0xb2, 0xd6, 0x29, 0xd6, 0xa8, 0x1c, 0x85, 0x61, 0x7b, 0xfd, 0x8c, 0xc1, 0x9d, - 0x4b, 0x43, 0x9e, 0x8d, 0xea, 0x85, 0xdc, 0x95, 0xcc, 0x4c, 0x43, 0xb4, 0x81, 0xb9, 0xd6, 0x32, - 0x13, 0x2b, 0xd7, 0x20, 0xb9, 0xb3, 0xa9, 0x37, 0xea, 0x2c, 0x49, 0x3b, 0x68, 0x54, 0x92, 0xbb, - 0x8a, 0xab, 0x72, 0xf9, 0xa2, 0x14, 0x2b, 0x45, 0x18, 0xa7, 0x83, 0xb7, 0x74, 0xcb, 0xd6, 0x9a, - 0x0e, 0xd1, 0x5a, 0x5d, 0xf4, 0xe6, 0xe2, 0x6a, 0xda, 0x2d, 0xf5, 0x32, 0xa9, 0xb6, 0xe6, 0x60, - 0x30, 0x93, 0x4a, 0x72, 0x7a, 0x4e, 0xc1, 0x68, 0xd3, 0xaa, 0x5a, 0xe8, 0xe2, 0xd8, 0x42, 0xc1, - 0x7c, 0xc1, 0xe6, 0xfe, 0x3c, 0xb0, 0x4d, 0xd1, 0xbd, 0xe6, 0xd7, 0xe6, 0x4e, 0xa2, 0x8e, 0x34, - 0x3b, 0x85, 0xf9, 0x02, 0xa4, 0xfd, 0xbe, 0xa3, 0x24, 0x81, 0x7b, 0x0f, 0x66, 0x37, 0xcc, 0xa8, - 0x33, 0x4b, 0xb3, 0x34, 0x17, 0xde, 0x53, 0xc4, 0xc4, 0x86, 0x39, 0x79, 0xbe, 0xb4, 0x5a, 0xd4, - 0xd4, 0xb5, 0xc5, 0xd5, 0xd2, 0x42, 0x31, 0x1b, 0x3d, 0x9a, 0x4c, 0xbc, 0x31, 0x90, 0xbd, 0x0f, - 0xff, 0xfa, 0xf2, 0x2f, 0xf5, 0x41, 0x26, 0x58, 0x07, 0x2b, 0x1f, 0x82, 0xbd, 0x72, 0xd3, 0xea, - 0x10, 0x57, 0x3b, 0x5f, 0x6d, 0x30, 0x77, 0xae, 0xe9, 0xbc, 0x92, 0xf4, 0x66, 0x62, 0x54, 0x68, - 0xe1, 0xf6, 0xfe, 0x6e, 0xd4, 0x39, 0xc1, 0x54, 0x94, 0x79, 0x18, 0x47, 0x93, 0x61, 0xad, 0x69, - 0x95, 0xf5, 0x46, 0x59, 0x6b, 0x1d, 0x17, 0x68, 0xba, 0x81, 0x7e, 0xe0, 0xd8, 0x3c, 0x93, 0x78, - 0x2c, 0x97, 0x59, 0xf6, 0x8a, 0x50, 0x6e, 0x85, 0xd8, 0x29, 0xa1, 0xda, 0xe6, 0x35, 0xd1, 0xed, - 0xbc, 0x06, 0x6b, 0xaf, 0x9a, 0x5e, 0x47, 0xb7, 0x71, 0x1b, 0x5b, 0xac, 0x7a, 0x4b, 0xa8, 0x09, - 0x14, 0x14, 0xe9, 0xf3, 0x7b, 0x37, 0x07, 0x7e, 0x3b, 0xfe, 0x3e, 0x0a, 0x69, 0x7f, 0x05, 0x47, - 0x0b, 0x62, 0x83, 0x85, 0xf9, 0x08, 0x8b, 0x02, 0x57, 0xec, 0x58, 0xef, 0x4d, 0xcc, 0xd0, 0xf8, - 0x5f, 0xe8, 0xe7, 0x75, 0x95, 0xca, 0x91, 0x34, 0xf7, 0x52, 0x5f, 0x23, 0xbc, 0x5a, 0x4f, 0xa8, - 0xe2, 0x09, 0x83, 0x5d, 0xff, 0x19, 0x87, 0x71, 0xf7, 0x33, 0xee, 0x2b, 0x77, 0xe6, 0x3e, 0xb9, - 0xc2, 0xc8, 0x93, 0x27, 0x57, 0xb4, 0xc5, 0x25, 0x75, 0x61, 0x6a, 0x5e, 0x15, 0x70, 0x65, 0x1f, - 0xc4, 0x4c, 0xfd, 0xde, 0xad, 0x60, 0xa6, 0x60, 0xa2, 0x5e, 0x0d, 0x8f, 0x0c, 0xf4, 0xc8, 0x23, - 0x18, 0x9f, 0x99, 0xe8, 0x3d, 0x74, 0xfd, 0x49, 0x88, 0x33, 0x7b, 0x29, 0x00, 0xc2, 0x62, 0xd9, - 0x4b, 0x94, 0x04, 0xc4, 0x66, 0x96, 0x54, 0xea, 0xfe, 0xe8, 0xef, 0x5c, 0xaa, 0x2d, 0x97, 0x8a, - 0x33, 0xb8, 0x02, 0xf2, 0x37, 0x41, 0x3f, 0x37, 0x02, 0x5d, 0x1a, 0x9e, 0x19, 0x10, 0xc4, 0x1f, - 0x05, 0x47, 0x44, 0xb6, 0xae, 0x2d, 0x4c, 0x17, 0xd5, 0x6c, 0x9f, 0x7f, 0x7a, 0x7f, 0x1a, 0x81, - 0x94, 0xaf, 0xa0, 0xa2, 0xa9, 0x5c, 0x37, 0x4d, 0xfb, 0xbc, 0xa6, 0x9b, 0x55, 0x8c, 0x50, 0x7c, - 0x7e, 0x80, 0x89, 0xa6, 0xa8, 0xa4, 0x57, 0xfb, 0xfd, 0x4f, 0x7c, 0xf3, 0xc9, 0x08, 0x64, 0xdb, - 0x8b, 0xb1, 0xb6, 0x0e, 0x46, 0xde, 0xd7, 0x0e, 0x3e, 0x1e, 0x81, 0x4c, 0xb0, 0x02, 0x6b, 0xeb, - 0xde, 0xa1, 0xf7, 0xb5, 0x7b, 0x8f, 0x45, 0x60, 0x30, 0x50, 0x77, 0xfd, 0x5f, 0xf5, 0xee, 0xd1, - 0x28, 0x8c, 0x74, 0xc1, 0x61, 0x00, 0xe2, 0x05, 0x2a, 0xaf, 0x99, 0xaf, 0xef, 0xe5, 0x5d, 0x13, - 0x34, 0xff, 0x2d, 0xeb, 0x0d, 0x57, 0xd4, 0xb3, 0x98, 0x2f, 0xab, 0x65, 0x0c, 0xaa, 0xd5, 0x8d, - 0x2a, 0x96, 0x6f, 0x7c, 0xc7, 0xc2, 0xab, 0xd6, 0xa1, 0x96, 0x9c, 0x6f, 0x8f, 0xaf, 0x03, 0xa5, - 0x6e, 0x3b, 0x55, 0xb7, 0x7a, 0x8e, 0x1e, 0xcf, 0xc9, 0x8d, 0x34, 0xad, 0x62, 0x63, 0x6a, 0x56, - 0xb6, 0x94, 0x2c, 0xd7, 0xd3, 0xb6, 0x48, 0x45, 0x6f, 0xd3, 0xa6, 0x61, 0x28, 0xaa, 0x66, 0x65, - 0x8b, 0xa7, 0x8d, 0x85, 0x66, 0xd9, 0x6e, 0xd2, 0x82, 0x80, 0xeb, 0xd1, 0xa8, 0x17, 0x51, 0x53, - 0x5c, 0xe6, 0xa9, 0x88, 0x8a, 0xad, 0xb5, 0x83, 0x4f, 0xab, 0x29, 0x2e, 0xe3, 0x2a, 0x87, 0x61, - 0x48, 0xaf, 0x54, 0x1a, 0x94, 0x5c, 0x12, 0xf1, 0x32, 0x34, 0xe3, 0x89, 0x99, 0xe2, 0xd8, 0x49, - 0x48, 0x48, 0x3b, 0xd0, 0xc4, 0x42, 0x2d, 0x81, 0x39, 0x9f, 0x9d, 0xa3, 0xf4, 0xd1, 0x4d, 0xbd, - 0x25, 0x1b, 0xf1, 0xa5, 0x55, 0x47, 0x6b, 0x1d, 0xe8, 0xf5, 0x61, 0x7b, 0x42, 0x4d, 0x55, 0x1d, - 0xef, 0x04, 0x27, 0xff, 0x0c, 0xa6, 0xd7, 0xe0, 0x81, 0xa4, 0x32, 0x0b, 0x09, 0xd3, 0x46, 0xff, - 0xa0, 0x08, 0x7e, 0x1a, 0x7e, 0x24, 0xe4, 0x0c, 0x73, 0x62, 0x5e, 0xe8, 0xab, 0x1e, 0x72, 0xec, - 0x57, 0x11, 0x48, 0x48, 0x31, 0x26, 0x8a, 0x58, 0x5d, 0x77, 0x37, 0x19, 0x5d, 0x7c, 0xba, 0x2f, - 0x1b, 0x51, 0xd9, 0x33, 0x95, 0x63, 0x35, 0x63, 0x31, 0x17, 0x10, 0x72, 0xfa, 0x4c, 0xe7, 0xd5, - 0x24, 0x7a, 0x99, 0x15, 0xb8, 0x76, 0xad, 0x86, 0x33, 0xe9, 0xc8, 0x79, 0x15, 0xf2, 0x19, 0x21, - 0xa6, 0xe7, 0xe2, 0x6e, 0x43, 0xaf, 0x9a, 0x01, 0xdd, 0x18, 0xd3, 0xcd, 0xca, 0x06, 0x4f, 0xb9, - 0x00, 0xfb, 0x24, 0x6f, 0x99, 0xb8, 0x3a, 0x16, 0xcf, 0xe5, 0x16, 0xa8, 0x9f, 0x9d, 0x76, 0xed, - 0x15, 0x0a, 0xb3, 0xa2, 0x5d, 0x62, 0xa7, 0x4f, 0x61, 0x21, 0x6b, 0xd7, 0xda, 0x2d, 0x31, 0x9d, - 0x6d, 0xdb, 0x77, 0x39, 0x77, 0x46, 0xee, 0x81, 0x56, 0x51, 0xf1, 0x74, 0x5f, 0x74, 0x6e, 0x79, - 0xfa, 0xb9, 0xbe, 0xb1, 0x39, 0x8e, 0x5b, 0x96, 0x16, 0x54, 0xc9, 0x86, 0x49, 0x0c, 0x6a, 0x1d, - 0x78, 0xea, 0x0a, 0xb8, 0xbe, 0x52, 0x75, 0x37, 0x9b, 0xeb, 0x13, 0xf8, 0x86, 0xc9, 0x8a, 0x5d, - 0xb1, 0x5b, 0x9f, 0x33, 0xe8, 0x13, 0x7b, 0x60, 0x77, 0xe2, 0x93, 0x46, 0xd2, 0x93, 0x8e, 0x85, - 0x7e, 0xff, 0x28, 0x2c, 0xc2, 0x88, 0x50, 0xd6, 0xd8, 0x99, 0x2a, 0x2f, 0x41, 0x95, 0x1d, 0x37, - 0xe4, 0xb9, 0x17, 0x5e, 0x67, 0x29, 0x41, 0x1d, 0x16, 0x50, 0xda, 0xc6, 0x8b, 0xd4, 0x82, 0x0a, - 0x97, 0x06, 0xf8, 0xb8, 0x0f, 0xe3, 0x96, 0x7b, 0x67, 0xc6, 0x97, 0x04, 0xe3, 0x88, 0x8f, 0x71, - 0x45, 0x40, 0x0b, 0x33, 0x30, 0xb8, 0x1b, 0xae, 0x5f, 0x08, 0xae, 0x34, 0xf1, 0x93, 0xcc, 0xc1, - 0x10, 0x23, 0x31, 0x9a, 0x8e, 0x6b, 0xd7, 0x58, 0x80, 0xd8, 0x99, 0xe6, 0x97, 0xaf, 0x73, 0xa7, - 0xca, 0x50, 0xd8, 0x8c, 0x87, 0x2a, 0xdc, 0x05, 0xa3, 0x54, 0xc2, 0xd6, 0xa0, 0x9f, 0x2d, 0xfc, - 0x08, 0x21, 0xf7, 0x9b, 0xfb, 0xb9, 0xef, 0x8d, 0x78, 0x04, 0x3e, 0x5e, 0xdf, 0x4c, 0x54, 0x88, - 0x8b, 0xb1, 0x0d, 0xf7, 0x7f, 0xa6, 0xa9, 0xec, 0xf8, 0x8d, 0x21, 0xf7, 0xc8, 0x9b, 0xc1, 0x99, - 0x98, 0xe3, 0xc8, 0x29, 0xd3, 0x2c, 0xac, 0xc1, 0xde, 0x2e, 0x33, 0xdb, 0x03, 0xe7, 0xa3, 0x82, - 0x73, 0xb4, 0x63, 0x76, 0x29, 0xed, 0x32, 0x48, 0xb9, 0x37, 0x1f, 0x3d, 0x70, 0x3e, 0x26, 0x38, - 0x15, 0x81, 0x95, 0xd3, 0x42, 0x19, 0x4f, 0xc2, 0x30, 0xee, 0xd4, 0xd7, 0x6d, 0x47, 0xec, 0x7b, - 0x7b, 0xa0, 0x7b, 0x5c, 0xd0, 0x0d, 0x09, 0x20, 0xdb, 0x05, 0x53, 0xae, 0x5b, 0x21, 0xb1, 0x81, - 0x1b, 0xa0, 0x1e, 0x28, 0x9e, 0x10, 0x14, 0x03, 0x54, 0x9f, 0x42, 0xa7, 0x20, 0x5d, 0xb1, 0x45, - 0x18, 0x0e, 0x87, 0x3f, 0x29, 0xe0, 0x29, 0x89, 0x11, 0x14, 0x75, 0xbb, 0xde, 0x34, 0x69, 0x8c, - 0x0e, 0xa7, 0xf8, 0xaa, 0xa4, 0x90, 0x18, 0x41, 0xb1, 0x0b, 0xb3, 0x7e, 0x4d, 0x52, 0x38, 0x3e, - 0x7b, 0xde, 0x41, 0xcf, 0x7a, 0xcd, 0x2d, 0xdb, 0xea, 0xa5, 0x13, 0x4f, 0x09, 0x06, 0x10, 0x10, - 0x4a, 0x70, 0x1b, 0x24, 0x7b, 0x9d, 0x88, 0xaf, 0x0b, 0x78, 0x82, 0xc8, 0x19, 0xc0, 0x75, 0x26, - 0x83, 0x0c, 0xfd, 0xb6, 0x12, 0x4e, 0xf1, 0x0d, 0x41, 0x91, 0xf1, 0xc1, 0xc4, 0x30, 0x5c, 0xe2, - 0xb8, 0xb8, 0x55, 0xef, 0x81, 0xe4, 0x19, 0x39, 0x0c, 0x01, 0x11, 0xa6, 0x5c, 0x27, 0x96, 0xb1, - 0xd9, 0x1b, 0xc3, 0xb3, 0xd2, 0x94, 0x12, 0x43, 0x29, 0x30, 0xf2, 0xd4, 0xf4, 0x06, 0x6e, 0xae, - 0xcd, 0x9e, 0xa6, 0xe3, 0x9b, 0x82, 0x23, 0xed, 0x81, 0x84, 0x45, 0x9a, 0xd6, 0x6e, 0x68, 0x9e, - 0x93, 0x16, 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, 0x9d, 0x29, 0xad, 0x24, 0x76, 0xc3, 0xf6, 0x2d, 0xb9, - 0xf4, 0x38, 0x76, 0xc1, 0xcf, 0x88, 0x33, 0xed, 0xe0, 0x16, 0xbc, 0x17, 0x9a, 0x6f, 0xcb, 0x99, - 0x66, 0x00, 0x0a, 0x3e, 0x0d, 0xfb, 0xba, 0x86, 0xfa, 0x1e, 0xc8, 0xbe, 0x23, 0xc8, 0xf6, 0x74, - 0x09, 0xf7, 0x22, 0x24, 0xec, 0x96, 0xf2, 0xbb, 0x32, 0x24, 0x90, 0x36, 0xae, 0x65, 0x5a, 0xc6, - 0x3a, 0xfa, 0xc6, 0xee, 0xac, 0xf6, 0x3d, 0x69, 0x35, 0x8e, 0x0d, 0x58, 0x6d, 0x15, 0xf6, 0x08, - 0xc6, 0xdd, 0xcd, 0xeb, 0xf3, 0x32, 0xb0, 0x72, 0xf4, 0x5a, 0x70, 0x76, 0x3f, 0x0a, 0x63, 0x9e, - 0x39, 0x65, 0x05, 0xe6, 0x68, 0xf4, 0x60, 0x20, 0x9c, 0xf9, 0x05, 0xc1, 0x2c, 0x23, 0xbe, 0x57, - 0xc2, 0x39, 0x0b, 0x7a, 0x9d, 0x92, 0x9f, 0x82, 0x9c, 0x24, 0x6f, 0x5a, 0x58, 0xe0, 0xdb, 0x15, - 0x0b, 0xa7, 0xb1, 0xdc, 0x03, 0xf5, 0xf7, 0xdb, 0xa6, 0x6a, 0xcd, 0x07, 0xa7, 0xcc, 0x25, 0xc8, - 0x7a, 0xf5, 0x86, 0x56, 0xad, 0xd5, 0x6d, 0x2c, 0x2d, 0x77, 0x66, 0xfc, 0x81, 0x9c, 0x29, 0x0f, - 0x57, 0x62, 0xb0, 0x42, 0x11, 0x32, 0xec, 0xb1, 0x57, 0x97, 0xfc, 0xa1, 0x20, 0x1a, 0x6c, 0xa1, - 0x44, 0xe0, 0xc0, 0x4a, 0x09, 0x6b, 0xde, 0x5e, 0xe2, 0xdf, 0x8f, 0x64, 0xe0, 0x10, 0x10, 0xee, - 0x7d, 0x43, 0x6d, 0x99, 0x58, 0x09, 0xfb, 0xfc, 0x9a, 0xfb, 0xf8, 0x45, 0xb1, 0x66, 0x83, 0x89, - 0xb8, 0x30, 0x4f, 0xcd, 0x13, 0x4c, 0x97, 0xe1, 0x64, 0xf7, 0x5f, 0xf4, 0x2c, 0x14, 0xc8, 0x96, - 0x85, 0x13, 0x30, 0x18, 0x48, 0x95, 0xe1, 0x54, 0x0f, 0x08, 0xaa, 0xb4, 0x3f, 0x53, 0x16, 0x6e, - 0x82, 0x18, 0x4d, 0x7b, 0xe1, 0xf0, 0x4f, 0x08, 0x38, 0x53, 0x2f, 0x7c, 0x18, 0x12, 0x32, 0xdd, - 0x85, 0x43, 0x3f, 0x29, 0xa0, 0x1e, 0x84, 0xc2, 0x65, 0xaa, 0x0b, 0x87, 0x7f, 0x4a, 0xc2, 0x25, - 0x84, 0xc2, 0x7b, 0x37, 0xe1, 0x8b, 0x9f, 0x89, 0x89, 0x70, 0x25, 0x6d, 0x47, 0xbf, 0xf9, 0xf0, - 0x1c, 0x17, 0x8e, 0x7e, 0x50, 0xbc, 0x5c, 0x22, 0x0a, 0xb7, 0x40, 0xbc, 0x47, 0x83, 0x7f, 0x56, - 0x40, 0xb9, 0x3e, 0x66, 0x90, 0x94, 0x2f, 0xaf, 0x85, 0xc3, 0x3f, 0x27, 0xe0, 0x7e, 0x14, 0xed, - 0xba, 0xc8, 0x6b, 0xe1, 0x04, 0x0f, 0xc9, 0xae, 0x0b, 0x04, 0x35, 0x9b, 0x4c, 0x69, 0xe1, 0xe8, - 0xcf, 0x4b, 0xab, 0x4b, 0x08, 0xae, 0xa6, 0xa4, 0x17, 0xa6, 0xc2, 0xf1, 0x5f, 0x10, 0xf8, 0x16, - 0x86, 0x5a, 0xc0, 0x17, 0x26, 0xc3, 0x29, 0xbe, 0x28, 0x2d, 0xe0, 0x43, 0xd1, 0x65, 0xd4, 0x9e, - 0xfa, 0xc2, 0x99, 0xbe, 0x24, 0x97, 0x51, 0x5b, 0xe6, 0xa3, 0xb3, 0xc9, 0xa2, 0x45, 0x38, 0xc5, - 0x97, 0xe5, 0x6c, 0x32, 0x7d, 0xda, 0x8d, 0xf6, 0x5c, 0x12, 0xce, 0xf1, 0x15, 0xd9, 0x8d, 0xb6, - 0x54, 0x82, 0x99, 0x49, 0xe9, 0xcc, 0x23, 0xe1, 0x7c, 0x0f, 0x0b, 0xbe, 0xe1, 0x8e, 0x34, 0x52, - 0xb8, 0x1b, 0xf6, 0x74, 0xcf, 0x21, 0xe1, 0xac, 0x8f, 0x5c, 0x6c, 0xab, 0xfa, 0xfd, 0x29, 0x04, - 0x53, 0xde, 0x68, 0xb7, 0xfc, 0x11, 0x4e, 0xfb, 0xe8, 0xc5, 0xe0, 0xc6, 0xce, 0x9f, 0x3e, 0xb0, - 0x42, 0x83, 0x56, 0xe8, 0x0e, 0xe7, 0x7a, 0x5c, 0x70, 0xf9, 0x40, 0x74, 0x69, 0x88, 0xc8, 0x1d, - 0x8e, 0x7f, 0x42, 0x2e, 0x0d, 0x81, 0x40, 0x70, 0xc2, 0x6a, 0x9a, 0x26, 0x75, 0x0e, 0x65, 0xe7, - 0x9f, 0x34, 0xe4, 0xfe, 0xf2, 0x8e, 0x58, 0x18, 0x12, 0x80, 0x31, 0x34, 0x4e, 0x6a, 0xeb, 0x68, - 0x83, 0x10, 0xe4, 0x5f, 0xdf, 0x91, 0x01, 0x81, 0x6a, 0xe3, 0x7a, 0x02, 0xbe, 0x69, 0x64, 0x67, - 0xd8, 0x21, 0xd8, 0xbf, 0xbd, 0x23, 0x3e, 0xb3, 0xb6, 0x20, 0x2d, 0x02, 0xfe, 0xd1, 0x76, 0x67, - 0x82, 0x37, 0x83, 0x04, 0x6c, 0xa3, 0x79, 0x2b, 0x0c, 0xd0, 0x5f, 0x76, 0xb8, 0x7a, 0x25, 0x0c, - 0xfd, 0x77, 0x81, 0x96, 0xfa, 0xd4, 0x60, 0x35, 0xbb, 0x41, 0xf0, 0xd6, 0x09, 0xc3, 0xfe, 0x43, - 0x60, 0x3d, 0x00, 0x05, 0x1b, 0xba, 0xe3, 0xf6, 0x32, 0xee, 0x7f, 0x4a, 0xb0, 0x04, 0xd0, 0x4e, - 0xd3, 0xfb, 0xb3, 0x64, 0x2b, 0x0c, 0xfb, 0x96, 0xec, 0xb4, 0xd0, 0xc7, 0x00, 0x98, 0xa4, 0xb7, - 0xfc, 0xa7, 0x07, 0x21, 0xe0, 0x7f, 0x09, 0x70, 0x0b, 0x31, 0x7d, 0xa8, 0xfb, 0xd1, 0x0e, 0xcc, - 0xd9, 0x73, 0x36, 0x3f, 0xd4, 0x81, 0x87, 0xe2, 0x70, 0x08, 0x75, 0x30, 0xbf, 0x4e, 0xf2, 0x35, - 0xb9, 0x6e, 0xbb, 0x9b, 0x93, 0x1e, 0x85, 0x3c, 0x97, 0xf1, 0x04, 0x63, 0xbb, 0x3b, 0xd1, 0xc9, - 0xff, 0x2c, 0x0a, 0x89, 0x19, 0x04, 0xeb, 0xe7, 0xf5, 0x2d, 0xa5, 0x0e, 0x23, 0xf4, 0x1e, 0x57, - 0x25, 0x3b, 0x5b, 0x10, 0x3e, 0x2e, 0x0e, 0xe3, 0xae, 0x9b, 0x68, 0xbd, 0x55, 0x22, 0x26, 0xba, - 0xa8, 0xb3, 0x6f, 0x4b, 0xd3, 0xd9, 0x97, 0xff, 0x30, 0x7e, 0xc9, 0xa7, 0xff, 0x38, 0x9e, 0x58, - 0xd8, 0xba, 0xbb, 0x6a, 0x3a, 0xf4, 0xb8, 0xd6, 0xe8, 0xd4, 0x55, 0x1e, 0x88, 0xc0, 0xfe, 0x2e, - 0x1c, 0x8b, 0x62, 0x25, 0x88, 0x33, 0xda, 0x1b, 0x7b, 0x7c, 0xb5, 0x84, 0xf1, 0x2e, 0xa4, 0x03, - 0xaf, 0xdf, 0x6f, 0x6c, 0xaf, 0x3f, 0x76, 0x1a, 0x72, 0xdb, 0x8d, 0x84, 0xfe, 0x2e, 0x0c, 0xa7, - 0x5a, 0xfc, 0x56, 0x8c, 0xde, 0x2a, 0x87, 0x5b, 0x3f, 0x52, 0xa1, 0xbf, 0x45, 0x18, 0xf6, 0xf5, - 0x4e, 0xbc, 0x8c, 0xb7, 0x17, 0xfa, 0x8e, 0x47, 0xc6, 0x74, 0x38, 0x18, 0xd6, 0xd3, 0xff, 0xf2, - 0x15, 0xf9, 0x03, 0xd0, 0xcf, 0x85, 0xf4, 0x97, 0x6d, 0x25, 0xcb, 0xbd, 0xf9, 0x46, 0x46, 0x15, - 0x55, 0xe3, 0x55, 0xfa, 0x30, 0x3d, 0xff, 0xf2, 0xab, 0x07, 0x2e, 0xf9, 0x35, 0x5e, 0xbf, 0xc3, - 0xeb, 0x95, 0x57, 0x0f, 0x44, 0xde, 0xc0, 0xeb, 0x2d, 0xbc, 0xde, 0xc6, 0xeb, 0xbe, 0xd7, 0x0e, - 0x44, 0x9e, 0xc5, 0xeb, 0x79, 0xbc, 0x7e, 0x82, 0xd7, 0x8b, 0x78, 0xbd, 0xfc, 0x1a, 0xea, 0xe3, - 0xf5, 0x0a, 0xde, 0xbf, 0x81, 0xff, 0xdf, 0xc2, 0xff, 0x6f, 0xe3, 0x75, 0xdf, 0x9f, 0x0e, 0x44, - 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x55, 0xa1, 0xab, 0x0b, 0xfc, 0x2c, 0x00, 0x00, + // 3797 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xb4, 0xe9, 0xdf, 0x4c, 0x13, 0xd7, 0x71, 0xdb, + 0xcc, 0xb4, 0x4e, 0x93, 0xfe, 0x24, 0xfd, 0x49, 0x33, 0x7d, 0x4a, 0x1f, 0xd2, 0xfa, 0xa9, 0x93, + 0xbc, 0xf5, 0xa1, 0xd3, 0x5a, 0x8c, 0x67, 0xea, 0xb6, 0x6e, 0xeb, 0x36, 0x9e, 0x69, 0x66, 0xf4, + 0xd2, 0xb9, 0x7f, 0x8b, 0x5d, 0x00, 0xe4, 0x82, 0xe9, 0x38, 0x79, 0x22, 0xee, 0xb9, 0xe7, 0xfb, + 0xf6, 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xec, 0x5d, 0xc2, 0xf7, 0x2f, 0xc3, 0x52, 0xdb, 0xb6, 0xdb, + 0x26, 0x5e, 0xeb, 0x3a, 0xb6, 0x67, 0xef, 0xf7, 0x5a, 0x6b, 0x4d, 0xec, 0xea, 0x8e, 0xd1, 0xf5, + 0x6c, 0x67, 0x95, 0xca, 0x94, 0x19, 0xa6, 0xb1, 0x2a, 0x34, 0x96, 0xb7, 0x61, 0xf6, 0xba, 0x61, + 0xe2, 0x0d, 0x5f, 0xb1, 0x81, 0x3d, 0xe5, 0x2a, 0x24, 0x5a, 0x86, 0x89, 0xf3, 0xd2, 0x52, 0x7c, + 0x25, 0x73, 0xf1, 0xf1, 0xd5, 0x01, 0xd0, 0x6a, 0x18, 0x51, 0x27, 0x62, 0x95, 0x22, 0x96, 0xdf, + 0x4a, 0xc0, 0xdc, 0x88, 0x59, 0x45, 0x81, 0x84, 0x85, 0x3a, 0x84, 0x51, 0x5a, 0x49, 0xab, 0xf4, + 0xb7, 0x92, 0x87, 0xa9, 0x2e, 0xd2, 0xef, 0xa0, 0x36, 0xce, 0xc7, 0xa8, 0x58, 0x0c, 0x95, 0x02, + 0x40, 0x13, 0x77, 0xb1, 0xd5, 0xc4, 0x96, 0x7e, 0x98, 0x8f, 0x2f, 0xc5, 0x57, 0xd2, 0x6a, 0x40, + 0xa2, 0x3c, 0x0d, 0xb3, 0xdd, 0xde, 0xbe, 0x69, 0xe8, 0x5a, 0x40, 0x0d, 0x96, 0xe2, 0x2b, 0x49, + 0x55, 0x66, 0x13, 0x1b, 0x7d, 0xe5, 0x0b, 0x30, 0x73, 0x0f, 0xa3, 0x3b, 0x41, 0xd5, 0x0c, 0x55, + 0xcd, 0x11, 0x71, 0x40, 0xb1, 0x0c, 0xd9, 0x0e, 0x76, 0x5d, 0xd4, 0xc6, 0x9a, 0x77, 0xd8, 0xc5, + 0xf9, 0x04, 0x5d, 0xfd, 0xd2, 0xd0, 0xea, 0x07, 0x57, 0x9e, 0xe1, 0xa8, 0xdd, 0xc3, 0x2e, 0x56, + 0x4a, 0x90, 0xc6, 0x56, 0xaf, 0xc3, 0x18, 0x92, 0xc7, 0xf8, 0xaf, 0x62, 0xf5, 0x3a, 0x83, 0x2c, + 0x29, 0x02, 0xe3, 0x14, 0x53, 0x2e, 0x76, 0xee, 0x1a, 0x3a, 0xce, 0x4f, 0x52, 0x82, 0x0b, 0x43, + 0x04, 0x0d, 0x36, 0x3f, 0xc8, 0x21, 0x70, 0x4a, 0x19, 0xd2, 0xf8, 0x45, 0x0f, 0x5b, 0xae, 0x61, + 0x5b, 0xf9, 0x29, 0x4a, 0xf2, 0xc4, 0x88, 0x5d, 0xc4, 0x66, 0x73, 0x90, 0xa2, 0x8f, 0x53, 0xae, + 0xc0, 0x94, 0xdd, 0xf5, 0x0c, 0xdb, 0x72, 0xf3, 0xa9, 0x25, 0x69, 0x25, 0x73, 0xf1, 0x03, 0x23, + 0x03, 0xa1, 0xc6, 0x74, 0x54, 0xa1, 0xac, 0x54, 0x41, 0x76, 0xed, 0x9e, 0xa3, 0x63, 0x4d, 0xb7, + 0x9b, 0x58, 0x33, 0xac, 0x96, 0x9d, 0x4f, 0x53, 0x82, 0x73, 0xc3, 0x0b, 0xa1, 0x8a, 0x65, 0xbb, + 0x89, 0xab, 0x56, 0xcb, 0x56, 0x73, 0x6e, 0x68, 0xac, 0x2c, 0xc0, 0xa4, 0x7b, 0x68, 0x79, 0xe8, + 0xc5, 0x7c, 0x96, 0x46, 0x08, 0x1f, 0x2d, 0xff, 0x6f, 0x12, 0x66, 0xc6, 0x09, 0xb1, 0x6b, 0x90, + 0x6c, 0x91, 0x55, 0xe6, 0x63, 0xa7, 0xf1, 0x01, 0xc3, 0x84, 0x9d, 0x38, 0xf9, 0x23, 0x3a, 0xb1, + 0x04, 0x19, 0x0b, 0xbb, 0x1e, 0x6e, 0xb2, 0x88, 0x88, 0x8f, 0x19, 0x53, 0xc0, 0x40, 0xc3, 0x21, + 0x95, 0xf8, 0x91, 0x42, 0xea, 0x26, 0xcc, 0xf8, 0x26, 0x69, 0x0e, 0xb2, 0xda, 0x22, 0x36, 0xd7, + 0xa2, 0x2c, 0x59, 0xad, 0x08, 0x9c, 0x4a, 0x60, 0x6a, 0x0e, 0x87, 0xc6, 0xca, 0x06, 0x80, 0x6d, + 0x61, 0xbb, 0xa5, 0x35, 0xb1, 0x6e, 0xe6, 0x53, 0xc7, 0x78, 0xa9, 0x46, 0x54, 0x86, 0xbc, 0x64, + 0x33, 0xa9, 0x6e, 0x2a, 0xcf, 0xf5, 0x43, 0x6d, 0xea, 0x98, 0x48, 0xd9, 0x66, 0x87, 0x6c, 0x28, + 0xda, 0xf6, 0x20, 0xe7, 0x60, 0x12, 0xf7, 0xb8, 0xc9, 0x57, 0x96, 0xa6, 0x46, 0xac, 0x46, 0xae, + 0x4c, 0xe5, 0x30, 0xb6, 0xb0, 0x69, 0x27, 0x38, 0x54, 0x3e, 0x08, 0xbe, 0x40, 0xa3, 0x61, 0x05, + 0x34, 0x0b, 0x65, 0x85, 0x70, 0x07, 0x75, 0xf0, 0xe2, 0x55, 0xc8, 0x85, 0xdd, 0xa3, 0xcc, 0x43, + 0xd2, 0xf5, 0x90, 0xe3, 0xd1, 0x28, 0x4c, 0xaa, 0x6c, 0xa0, 0xc8, 0x10, 0xc7, 0x56, 0x93, 0x66, + 0xb9, 0xa4, 0x4a, 0x7e, 0x2e, 0x3e, 0x0b, 0xd3, 0xa1, 0xc7, 0x8f, 0x0b, 0x5c, 0xfe, 0xc2, 0x24, + 0xcc, 0x8f, 0x8a, 0xb9, 0x91, 0xe1, 0xbf, 0x00, 0x93, 0x56, 0xaf, 0xb3, 0x8f, 0x9d, 0x7c, 0x9c, + 0x32, 0xf0, 0x91, 0x52, 0x82, 0xa4, 0x89, 0xf6, 0xb1, 0x99, 0x4f, 0x2c, 0x49, 0x2b, 0xb9, 0x8b, + 0x4f, 0x8f, 0x15, 0xd5, 0xab, 0x5b, 0x04, 0xa2, 0x32, 0xa4, 0xf2, 0x71, 0x48, 0xf0, 0x14, 0x47, + 0x18, 0x9e, 0x1a, 0x8f, 0x81, 0xc4, 0xa2, 0x4a, 0x71, 0xca, 0xa3, 0x90, 0x26, 0x7f, 0x99, 0x6f, + 0x27, 0xa9, 0xcd, 0x29, 0x22, 0x20, 0x7e, 0x55, 0x16, 0x21, 0x45, 0xc3, 0xac, 0x89, 0x45, 0x69, + 0xf0, 0xc7, 0x64, 0x63, 0x9a, 0xb8, 0x85, 0x7a, 0xa6, 0xa7, 0xdd, 0x45, 0x66, 0x0f, 0xd3, 0x80, + 0x49, 0xab, 0x59, 0x2e, 0xfc, 0x14, 0x91, 0x29, 0xe7, 0x20, 0xc3, 0xa2, 0xd2, 0xb0, 0x9a, 0xf8, + 0x45, 0x9a, 0x7d, 0x92, 0x2a, 0x0b, 0xd4, 0x2a, 0x91, 0x90, 0xc7, 0xdf, 0x76, 0x6d, 0x4b, 0x6c, + 0x2d, 0x7d, 0x04, 0x11, 0xd0, 0xc7, 0x3f, 0x3b, 0x98, 0xf8, 0x1e, 0x1b, 0xbd, 0xbc, 0xc1, 0x58, + 0x5c, 0xfe, 0x66, 0x0c, 0x12, 0xf4, 0xbc, 0xcd, 0x40, 0x66, 0xf7, 0x56, 0xbd, 0xa2, 0x6d, 0xd4, + 0xf6, 0xd6, 0xb7, 0x2a, 0xb2, 0xa4, 0xe4, 0x00, 0xa8, 0xe0, 0xfa, 0x56, 0xad, 0xb4, 0x2b, 0xc7, + 0xfc, 0x71, 0x75, 0x67, 0xf7, 0xca, 0x25, 0x39, 0xee, 0x03, 0xf6, 0x98, 0x20, 0x11, 0x54, 0x78, + 0xe6, 0xa2, 0x9c, 0x54, 0x64, 0xc8, 0x32, 0x82, 0xea, 0xcd, 0xca, 0xc6, 0x95, 0x4b, 0xf2, 0x64, + 0x58, 0xf2, 0xcc, 0x45, 0x79, 0x4a, 0x99, 0x86, 0x34, 0x95, 0xac, 0xd7, 0x6a, 0x5b, 0x72, 0xca, + 0xe7, 0x6c, 0xec, 0xaa, 0xd5, 0x9d, 0x4d, 0x39, 0xed, 0x73, 0x6e, 0xaa, 0xb5, 0xbd, 0xba, 0x0c, + 0x3e, 0xc3, 0x76, 0xa5, 0xd1, 0x28, 0x6d, 0x56, 0xe4, 0x8c, 0xaf, 0xb1, 0x7e, 0x6b, 0xb7, 0xd2, + 0x90, 0xb3, 0x21, 0xb3, 0x9e, 0xb9, 0x28, 0x4f, 0xfb, 0x8f, 0xa8, 0xec, 0xec, 0x6d, 0xcb, 0x39, + 0x65, 0x16, 0xa6, 0xd9, 0x23, 0x84, 0x11, 0x33, 0x03, 0xa2, 0x2b, 0x97, 0x64, 0xb9, 0x6f, 0x08, + 0x63, 0x99, 0x0d, 0x09, 0xae, 0x5c, 0x92, 0x95, 0xe5, 0x32, 0x24, 0x69, 0x74, 0x29, 0x0a, 0xe4, + 0xb6, 0x4a, 0xeb, 0x95, 0x2d, 0xad, 0x56, 0xdf, 0xad, 0xd6, 0x76, 0x4a, 0x5b, 0xb2, 0xd4, 0x97, + 0xa9, 0x95, 0x4f, 0xee, 0x55, 0xd5, 0xca, 0x86, 0x1c, 0x0b, 0xca, 0xea, 0x95, 0xd2, 0x6e, 0x65, + 0x43, 0x8e, 0x2f, 0xeb, 0x30, 0x3f, 0x2a, 0xcf, 0x8c, 0x3c, 0x19, 0x81, 0x2d, 0x8e, 0x1d, 0xb3, + 0xc5, 0x94, 0x6b, 0x68, 0x8b, 0xbf, 0x2c, 0xc1, 0xdc, 0x88, 0x5c, 0x3b, 0xf2, 0x21, 0xcf, 0x43, + 0x92, 0x85, 0x28, 0xab, 0x3e, 0x4f, 0x8e, 0x4c, 0xda, 0x34, 0x60, 0x87, 0x2a, 0x10, 0xc5, 0x05, + 0x2b, 0x70, 0xfc, 0x98, 0x0a, 0x4c, 0x28, 0x86, 0x8c, 0x7c, 0x59, 0x82, 0xfc, 0x71, 0xdc, 0x11, + 0x89, 0x22, 0x16, 0x4a, 0x14, 0xd7, 0x06, 0x0d, 0x38, 0x7f, 0xfc, 0x1a, 0x86, 0xac, 0x78, 0x5d, + 0x82, 0x85, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x0e, 0x93, 0x1d, 0xec, 0x1d, 0xd8, 0xa2, 0x58, + 0x7f, 0x68, 0x44, 0x09, 0x20, 0xd3, 0x83, 0xbe, 0xe2, 0xa8, 0x60, 0x0d, 0x89, 0x1f, 0xd7, 0x6d, + 0x30, 0x6b, 0x86, 0x2c, 0xfd, 0x5c, 0x0c, 0x1e, 0x19, 0x49, 0x3e, 0xd2, 0xd0, 0xc7, 0x00, 0x0c, + 0xab, 0xdb, 0xf3, 0x58, 0x41, 0x66, 0xf9, 0x29, 0x4d, 0x25, 0xf4, 0xec, 0x93, 0xdc, 0xd3, 0xf3, + 0xfc, 0xf9, 0x38, 0x9d, 0x07, 0x26, 0xa2, 0x0a, 0x57, 0xfb, 0x86, 0x26, 0xa8, 0xa1, 0x85, 0x63, + 0x56, 0x3a, 0x54, 0xeb, 0x3e, 0x0a, 0xb2, 0x6e, 0x1a, 0xd8, 0xf2, 0x34, 0xd7, 0x73, 0x30, 0xea, + 0x18, 0x56, 0x9b, 0x26, 0xe0, 0x54, 0x31, 0xd9, 0x42, 0xa6, 0x8b, 0xd5, 0x19, 0x36, 0xdd, 0x10, + 0xb3, 0x04, 0x41, 0xab, 0x8c, 0x13, 0x40, 0x4c, 0x86, 0x10, 0x6c, 0xda, 0x47, 0x2c, 0x7f, 0x6d, + 0x0a, 0x32, 0x81, 0xb6, 0x4e, 0x39, 0x0f, 0xd9, 0xdb, 0xe8, 0x2e, 0xd2, 0x44, 0xab, 0xce, 0x3c, + 0x91, 0x21, 0xb2, 0x3a, 0x6f, 0xd7, 0x3f, 0x0a, 0xf3, 0x54, 0xc5, 0xee, 0x79, 0xd8, 0xd1, 0x74, + 0x13, 0xb9, 0x2e, 0x75, 0x5a, 0x8a, 0xaa, 0x2a, 0x64, 0xae, 0x46, 0xa6, 0xca, 0x62, 0x46, 0xb9, + 0x0c, 0x73, 0x14, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0xb1, 0x46, 0x5e, 0x1e, 0x5c, 0x9a, 0x88, + 0x7d, 0xcb, 0x66, 0x89, 0xc6, 0x36, 0x57, 0x20, 0x16, 0xb9, 0xca, 0x06, 0x3c, 0x46, 0x61, 0x6d, + 0x6c, 0x61, 0x07, 0x79, 0x58, 0xc3, 0x9f, 0xe9, 0x21, 0xd3, 0xd5, 0x90, 0xd5, 0xd4, 0x0e, 0x90, + 0x7b, 0x90, 0x9f, 0x27, 0x04, 0xeb, 0xb1, 0xbc, 0xa4, 0x9e, 0x25, 0x8a, 0x9b, 0x5c, 0xaf, 0x42, + 0xd5, 0x4a, 0x56, 0xf3, 0x13, 0xc8, 0x3d, 0x50, 0x8a, 0xb0, 0x40, 0x59, 0x5c, 0xcf, 0x31, 0xac, + 0xb6, 0xa6, 0x1f, 0x60, 0xfd, 0x8e, 0xd6, 0xf3, 0x5a, 0x57, 0xf3, 0x8f, 0x06, 0x9f, 0x4f, 0x2d, + 0x6c, 0x50, 0x9d, 0x32, 0x51, 0xd9, 0xf3, 0x5a, 0x57, 0x95, 0x06, 0x64, 0xc9, 0x66, 0x74, 0x8c, + 0x97, 0xb0, 0xd6, 0xb2, 0x1d, 0x5a, 0x59, 0x72, 0x23, 0x4e, 0x76, 0xc0, 0x83, 0xab, 0x35, 0x0e, + 0xd8, 0xb6, 0x9b, 0xb8, 0x98, 0x6c, 0xd4, 0x2b, 0x95, 0x0d, 0x35, 0x23, 0x58, 0xae, 0xdb, 0x0e, + 0x09, 0xa8, 0xb6, 0xed, 0x3b, 0x38, 0xc3, 0x02, 0xaa, 0x6d, 0x0b, 0xf7, 0x5e, 0x86, 0x39, 0x5d, + 0x67, 0x6b, 0x36, 0x74, 0x8d, 0xb7, 0xf8, 0x6e, 0x5e, 0x0e, 0x39, 0x4b, 0xd7, 0x37, 0x99, 0x02, + 0x8f, 0x71, 0x57, 0x79, 0x0e, 0x1e, 0xe9, 0x3b, 0x2b, 0x08, 0x9c, 0x1d, 0x5a, 0xe5, 0x20, 0xf4, + 0x32, 0xcc, 0x75, 0x0f, 0x87, 0x81, 0x4a, 0xe8, 0x89, 0xdd, 0xc3, 0x41, 0xd8, 0x13, 0xf4, 0xb5, + 0xcd, 0xc1, 0x3a, 0xf2, 0x70, 0x33, 0x7f, 0x26, 0xa8, 0x1d, 0x98, 0x50, 0xd6, 0x40, 0xd6, 0x75, + 0x0d, 0x5b, 0x68, 0xdf, 0xc4, 0x1a, 0x72, 0xb0, 0x85, 0xdc, 0xfc, 0xb9, 0xa0, 0x72, 0x4e, 0xd7, + 0x2b, 0x74, 0xb6, 0x44, 0x27, 0x95, 0xa7, 0x60, 0xd6, 0xde, 0xbf, 0xad, 0xb3, 0xc8, 0xd2, 0xba, + 0x0e, 0x6e, 0x19, 0x2f, 0xe6, 0x1f, 0xa7, 0x6e, 0x9a, 0x21, 0x13, 0x34, 0xae, 0xea, 0x54, 0xac, + 0x3c, 0x09, 0xb2, 0xee, 0x1e, 0x20, 0xa7, 0x4b, 0x4b, 0xbb, 0xdb, 0x45, 0x3a, 0xce, 0x3f, 0xc1, + 0x54, 0x99, 0x7c, 0x47, 0x88, 0x49, 0x64, 0xbb, 0xf7, 0x8c, 0x96, 0x27, 0x18, 0x2f, 0xb0, 0xc8, + 0xa6, 0x32, 0xce, 0x76, 0x13, 0xe6, 0x7b, 0x96, 0x61, 0x79, 0xd8, 0xe9, 0x3a, 0x98, 0x34, 0xf1, + 0xec, 0x24, 0xe6, 0xff, 0x65, 0xea, 0x98, 0x36, 0x7c, 0x2f, 0xa8, 0xcd, 0x02, 0x40, 0x9d, 0xeb, + 0x0d, 0x0b, 0x97, 0x8b, 0x90, 0x0d, 0xc6, 0x85, 0x92, 0x06, 0x16, 0x19, 0xb2, 0x44, 0x6a, 0x6c, + 0xb9, 0xb6, 0x41, 0xaa, 0xe3, 0xa7, 0x2b, 0x72, 0x8c, 0x54, 0xe9, 0xad, 0xea, 0x6e, 0x45, 0x53, + 0xf7, 0x76, 0x76, 0xab, 0xdb, 0x15, 0x39, 0xfe, 0x54, 0x3a, 0xf5, 0xf6, 0x94, 0x7c, 0xff, 0xfe, + 0xfd, 0xfb, 0xb1, 0xe5, 0xef, 0xc4, 0x20, 0x17, 0xee, 0x8c, 0x95, 0x9f, 0x82, 0x33, 0xe2, 0x35, + 0xd6, 0xc5, 0x9e, 0x76, 0xcf, 0x70, 0x68, 0xa8, 0x76, 0x10, 0xeb, 0x2d, 0x7d, 0x2f, 0xcf, 0x73, + 0xad, 0x06, 0xf6, 0x5e, 0x30, 0x1c, 0x12, 0x88, 0x1d, 0xe4, 0x29, 0x5b, 0x70, 0xce, 0xb2, 0x35, + 0xd7, 0x43, 0x56, 0x13, 0x39, 0x4d, 0xad, 0x7f, 0x81, 0xa0, 0x21, 0x5d, 0xc7, 0xae, 0x6b, 0xb3, + 0x12, 0xe1, 0xb3, 0x7c, 0xc0, 0xb2, 0x1b, 0x5c, 0xb9, 0x9f, 0x3b, 0x4b, 0x5c, 0x75, 0x20, 0x22, + 0xe2, 0xc7, 0x45, 0xc4, 0xa3, 0x90, 0xee, 0xa0, 0xae, 0x86, 0x2d, 0xcf, 0x39, 0xa4, 0xfd, 0x5c, + 0x4a, 0x4d, 0x75, 0x50, 0xb7, 0x42, 0xc6, 0xef, 0xdf, 0x1e, 0x04, 0xfd, 0xf8, 0x8f, 0x71, 0xc8, + 0x06, 0x7b, 0x3a, 0xd2, 0x22, 0xeb, 0x34, 0x7f, 0x4b, 0xf4, 0x84, 0x7f, 0xf0, 0xc4, 0x0e, 0x70, + 0xb5, 0x4c, 0x12, 0x7b, 0x71, 0x92, 0x75, 0x5a, 0x2a, 0x43, 0x92, 0xa2, 0x4a, 0xce, 0x34, 0x66, + 0xfd, 0x7b, 0x4a, 0xe5, 0x23, 0x65, 0x13, 0x26, 0x6f, 0xbb, 0x94, 0x7b, 0x92, 0x72, 0x3f, 0x7e, + 0x32, 0xf7, 0x8d, 0x06, 0x25, 0x4f, 0xdf, 0x68, 0x68, 0x3b, 0x35, 0x75, 0xbb, 0xb4, 0xa5, 0x72, + 0xb8, 0x72, 0x16, 0x12, 0x26, 0x7a, 0xe9, 0x30, 0x5c, 0x02, 0xa8, 0x68, 0x5c, 0xc7, 0x9f, 0x85, + 0xc4, 0x3d, 0x8c, 0xee, 0x84, 0x13, 0x2f, 0x15, 0xbd, 0x8f, 0xa1, 0xbf, 0x06, 0x49, 0xea, 0x2f, + 0x05, 0x80, 0x7b, 0x4c, 0x9e, 0x50, 0x52, 0x90, 0x28, 0xd7, 0x54, 0x12, 0xfe, 0x32, 0x64, 0x99, + 0x54, 0xab, 0x57, 0x2b, 0xe5, 0x8a, 0x1c, 0x5b, 0xbe, 0x0c, 0x93, 0xcc, 0x09, 0xe4, 0x68, 0xf8, + 0x6e, 0x90, 0x27, 0xf8, 0x90, 0x73, 0x48, 0x62, 0x76, 0x6f, 0x7b, 0xbd, 0xa2, 0xca, 0xb1, 0xe0, + 0xf6, 0xba, 0x90, 0x0d, 0xb6, 0x73, 0x3f, 0x9e, 0x98, 0xfa, 0x6b, 0x09, 0x32, 0x81, 0xf6, 0x8c, + 0x34, 0x06, 0xc8, 0x34, 0xed, 0x7b, 0x1a, 0x32, 0x0d, 0xe4, 0xf2, 0xa0, 0x00, 0x2a, 0x2a, 0x11, + 0xc9, 0xb8, 0x9b, 0xf6, 0x63, 0x31, 0xfe, 0x35, 0x09, 0xe4, 0xc1, 0xd6, 0x6e, 0xc0, 0x40, 0xe9, + 0x27, 0x6a, 0xe0, 0xab, 0x12, 0xe4, 0xc2, 0xfd, 0xdc, 0x80, 0x79, 0xe7, 0x7f, 0xa2, 0xe6, 0xbd, + 0x19, 0x83, 0xe9, 0x50, 0x17, 0x37, 0xae, 0x75, 0x9f, 0x81, 0x59, 0xa3, 0x89, 0x3b, 0x5d, 0xdb, + 0xc3, 0x96, 0x7e, 0xa8, 0x99, 0xf8, 0x2e, 0x36, 0xf3, 0xcb, 0x34, 0x51, 0xac, 0x9d, 0xdc, 0x27, + 0xae, 0x56, 0xfb, 0xb8, 0x2d, 0x02, 0x2b, 0xce, 0x55, 0x37, 0x2a, 0xdb, 0xf5, 0xda, 0x6e, 0x65, + 0xa7, 0x7c, 0x4b, 0xdb, 0xdb, 0xf9, 0xe9, 0x9d, 0xda, 0x0b, 0x3b, 0xaa, 0x6c, 0x0c, 0xa8, 0xbd, + 0x8f, 0x47, 0xbd, 0x0e, 0xf2, 0xa0, 0x51, 0xca, 0x19, 0x18, 0x65, 0x96, 0x3c, 0xa1, 0xcc, 0xc1, + 0xcc, 0x4e, 0x4d, 0x6b, 0x54, 0x37, 0x2a, 0x5a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xb7, 0xc1, 0x5e, + 0x9c, 0x7d, 0xed, 0xdd, 0xf0, 0xa1, 0x7e, 0x25, 0x0e, 0x73, 0x23, 0x2c, 0x51, 0x4a, 0xbc, 0x67, + 0x67, 0xaf, 0x11, 0x1f, 0x19, 0xc7, 0xfa, 0x55, 0xd2, 0x15, 0xd4, 0x91, 0xe3, 0xf1, 0x16, 0xff, + 0x49, 0x20, 0x5e, 0xb2, 0x3c, 0xa3, 0x65, 0x60, 0x87, 0xdf, 0x33, 0xb0, 0x46, 0x7e, 0xa6, 0x2f, + 0x67, 0x57, 0x0d, 0x1f, 0x06, 0xa5, 0x6b, 0xbb, 0x86, 0x67, 0xdc, 0xc5, 0x9a, 0x61, 0x89, 0x4b, + 0x09, 0xd2, 0xd8, 0x27, 0x54, 0x59, 0xcc, 0x54, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x1b, 0x0d, 0x68, + 0x93, 0x04, 0x1e, 0x57, 0x65, 0x31, 0xe3, 0x6b, 0x9f, 0x87, 0x6c, 0xd3, 0xee, 0x91, 0x36, 0x89, + 0xe9, 0x91, 0x7a, 0x21, 0xa9, 0x19, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0xbf, 0x0d, 0xc9, 0xaa, + 0x19, 0x26, 0x63, 0x2a, 0x17, 0x60, 0x06, 0xb5, 0xdb, 0x0e, 0x21, 0x17, 0x44, 0xac, 0x33, 0xcf, + 0xf9, 0x62, 0xaa, 0xb8, 0x78, 0x03, 0x52, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0x68, 0x5d, 0x76, + 0x27, 0x15, 0x5b, 0x49, 0xab, 0x29, 0x4b, 0x4c, 0x9e, 0x87, 0xac, 0xe1, 0x6a, 0xfd, 0xcb, 0xd1, + 0xd8, 0x52, 0x6c, 0x25, 0xa5, 0x66, 0x0c, 0xd7, 0xbf, 0x0d, 0x5b, 0x7e, 0x3d, 0x06, 0xb9, 0xf0, + 0xe5, 0xae, 0xb2, 0x01, 0x29, 0xd3, 0xd6, 0x11, 0x0d, 0x2d, 0xf6, 0x65, 0x61, 0x25, 0xe2, 0x3e, + 0x78, 0x75, 0x8b, 0xeb, 0xab, 0x3e, 0x72, 0xf1, 0xef, 0x25, 0x48, 0x09, 0xb1, 0xb2, 0x00, 0x89, + 0x2e, 0xf2, 0x0e, 0x28, 0x5d, 0x72, 0x3d, 0x26, 0x4b, 0x2a, 0x1d, 0x13, 0xb9, 0xdb, 0x45, 0x16, + 0x0d, 0x01, 0x2e, 0x27, 0x63, 0xb2, 0xaf, 0x26, 0x46, 0x4d, 0xda, 0xf6, 0xdb, 0x9d, 0x0e, 0xb6, + 0x3c, 0x57, 0xec, 0x2b, 0x97, 0x97, 0xb9, 0x58, 0x79, 0x1a, 0x66, 0x3d, 0x07, 0x19, 0x66, 0x48, + 0x37, 0x41, 0x75, 0x65, 0x31, 0xe1, 0x2b, 0x17, 0xe1, 0xac, 0xe0, 0x6d, 0x62, 0x0f, 0xe9, 0x07, + 0xb8, 0xd9, 0x07, 0x4d, 0xd2, 0x9b, 0xc3, 0x33, 0x5c, 0x61, 0x83, 0xcf, 0x0b, 0xec, 0xf2, 0xf7, + 0x24, 0x98, 0x15, 0x2f, 0x2a, 0x4d, 0xdf, 0x59, 0xdb, 0x00, 0xc8, 0xb2, 0x6c, 0x2f, 0xe8, 0xae, + 0xe1, 0x50, 0x1e, 0xc2, 0xad, 0x96, 0x7c, 0x90, 0x1a, 0x20, 0x58, 0xec, 0x00, 0xf4, 0x67, 0x8e, + 0x75, 0xdb, 0x39, 0xc8, 0xf0, 0x9b, 0x7b, 0xfa, 0xf9, 0x87, 0xbd, 0xda, 0x02, 0x13, 0x91, 0x37, + 0x1a, 0x65, 0x1e, 0x92, 0xfb, 0xb8, 0x6d, 0x58, 0xfc, 0x3e, 0x91, 0x0d, 0xc4, 0x2d, 0x65, 0xc2, + 0xbf, 0xa5, 0x5c, 0xbf, 0x09, 0x73, 0xba, 0xdd, 0x19, 0x34, 0x77, 0x5d, 0x1e, 0x78, 0xbd, 0x76, + 0x3f, 0x21, 0x7d, 0x1a, 0xfa, 0x2d, 0xe6, 0x97, 0x63, 0xf1, 0xcd, 0xfa, 0xfa, 0x57, 0x63, 0x8b, + 0x9b, 0x0c, 0x57, 0x17, 0xcb, 0x54, 0x71, 0xcb, 0xc4, 0x3a, 0x31, 0x1d, 0x7e, 0xf0, 0x21, 0xf8, + 0x48, 0xdb, 0xf0, 0x0e, 0x7a, 0xfb, 0xab, 0xba, 0xdd, 0x59, 0x6b, 0xdb, 0x6d, 0xbb, 0xff, 0xb9, + 0x8b, 0x8c, 0xe8, 0x80, 0xfe, 0xe2, 0x9f, 0xbc, 0xd2, 0xbe, 0x74, 0x31, 0xf2, 0xfb, 0x58, 0x71, + 0x07, 0xe6, 0xb8, 0xb2, 0x46, 0xef, 0xdc, 0xd9, 0xab, 0x81, 0x72, 0xe2, 0xbd, 0x4b, 0xfe, 0x1b, + 0x6f, 0xd1, 0x5a, 0xad, 0xce, 0x72, 0x28, 0x99, 0x63, 0x2f, 0x10, 0x45, 0x15, 0x1e, 0x09, 0xf1, + 0xb1, 0x73, 0x89, 0x9d, 0x08, 0xc6, 0xef, 0x70, 0xc6, 0xb9, 0x00, 0x63, 0x83, 0x43, 0x8b, 0x65, + 0x98, 0x3e, 0x0d, 0xd7, 0xdf, 0x72, 0xae, 0x2c, 0x0e, 0x92, 0x6c, 0xc2, 0x0c, 0x25, 0xd1, 0x7b, + 0xae, 0x67, 0x77, 0x68, 0xd2, 0x3b, 0x99, 0xe6, 0xef, 0xde, 0x62, 0x07, 0x25, 0x47, 0x60, 0x65, + 0x1f, 0x55, 0x2c, 0x02, 0xfd, 0xcc, 0xd0, 0xc4, 0xba, 0x19, 0xc1, 0xf0, 0x06, 0x37, 0xc4, 0xd7, + 0x2f, 0x7e, 0x0a, 0xe6, 0xc9, 0x6f, 0x9a, 0x93, 0x82, 0x96, 0x44, 0xdf, 0x32, 0xe5, 0xbf, 0xf7, + 0x32, 0x3b, 0x8b, 0x73, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2e, 0xb6, 0xb1, 0xe7, 0x61, 0xc7, 0xd5, + 0x90, 0x39, 0xca, 0xbc, 0xc0, 0x6b, 0x7a, 0xfe, 0x8b, 0xef, 0x84, 0x77, 0x71, 0x93, 0x21, 0x4b, + 0xa6, 0x59, 0xdc, 0x83, 0x33, 0x23, 0xa2, 0x62, 0x0c, 0xce, 0x57, 0x38, 0xe7, 0xfc, 0x50, 0x64, + 0x10, 0xda, 0x3a, 0x08, 0xb9, 0xbf, 0x97, 0x63, 0x70, 0xfe, 0x36, 0xe7, 0x54, 0x38, 0x56, 0x6c, + 0x29, 0x61, 0xbc, 0x01, 0xb3, 0x77, 0xb1, 0xb3, 0x6f, 0xbb, 0xfc, 0x6a, 0x64, 0x0c, 0xba, 0x57, + 0x39, 0xdd, 0x0c, 0x07, 0xd2, 0xbb, 0x12, 0xc2, 0xf5, 0x1c, 0xa4, 0x5a, 0x48, 0xc7, 0x63, 0x50, + 0x7c, 0x89, 0x53, 0x4c, 0x11, 0x7d, 0x02, 0x2d, 0x41, 0xb6, 0x6d, 0xf3, 0xb2, 0x14, 0x0d, 0x7f, + 0x8d, 0xc3, 0x33, 0x02, 0xc3, 0x29, 0xba, 0x76, 0xb7, 0x67, 0x92, 0x9a, 0x15, 0x4d, 0xf1, 0x3b, + 0x82, 0x42, 0x60, 0x38, 0xc5, 0x29, 0xdc, 0xfa, 0xbb, 0x82, 0xc2, 0x0d, 0xf8, 0xf3, 0x79, 0xc8, + 0xd8, 0x96, 0x79, 0x68, 0x5b, 0xe3, 0x18, 0xf1, 0x7b, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x83, + 0xf4, 0xb8, 0x1b, 0xf1, 0xfb, 0xef, 0x88, 0xe3, 0x21, 0x76, 0x60, 0x13, 0x66, 0x44, 0x82, 0x32, + 0x6c, 0x6b, 0x0c, 0x8a, 0x3f, 0xe0, 0x14, 0xb9, 0x00, 0x8c, 0x2f, 0xc3, 0xc3, 0xae, 0xd7, 0xc6, + 0xe3, 0x90, 0xbc, 0x2e, 0x96, 0xc1, 0x21, 0xdc, 0x95, 0xfb, 0xd8, 0xd2, 0x0f, 0xc6, 0x63, 0xf8, + 0x8a, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x32, 0x4c, 0x77, 0x90, 0xe3, 0x1e, 0x20, 0x73, 0xac, 0xed, + 0xf8, 0x43, 0xce, 0x91, 0xf5, 0x41, 0xdc, 0x23, 0x3d, 0xeb, 0x34, 0x34, 0x5f, 0x15, 0x1e, 0x09, + 0xc0, 0xf8, 0xd1, 0x73, 0x3d, 0x7a, 0x01, 0x75, 0x1a, 0xb6, 0xaf, 0x89, 0xa3, 0xc7, 0xb0, 0xdb, + 0x41, 0xc6, 0x6b, 0x90, 0x76, 0x8d, 0x97, 0xc6, 0xa2, 0xf9, 0x23, 0xb1, 0xd3, 0x14, 0x40, 0xc0, + 0xb7, 0xe0, 0xec, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x73, 0xb2, 0x85, 0x11, 0xa5, 0x82, 0xa7, + 0x84, 0xd3, 0x52, 0xfe, 0x89, 0x48, 0x09, 0x78, 0x80, 0xab, 0x4e, 0x5e, 0x14, 0x5c, 0xd4, 0x3a, + 0x9d, 0xd7, 0xfe, 0x54, 0x78, 0x8d, 0x61, 0x43, 0x5e, 0xdb, 0x85, 0x05, 0xce, 0x78, 0xba, 0x7d, + 0xfd, 0xba, 0x48, 0xac, 0x0c, 0xbd, 0x17, 0xde, 0xdd, 0x9f, 0x81, 0x45, 0xdf, 0x9d, 0xa2, 0x23, + 0x75, 0xb5, 0x0e, 0xea, 0x8e, 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xdf, 0xd2, 0xba, 0xdb, + 0xa8, 0x4b, 0xc8, 0x6f, 0x42, 0x5e, 0x90, 0xf7, 0x2c, 0x07, 0xeb, 0x76, 0xdb, 0x32, 0x5e, 0xc2, + 0xcd, 0x31, 0xa8, 0xff, 0x6c, 0x60, 0xab, 0xf6, 0x02, 0x70, 0xc2, 0x5c, 0x05, 0xd9, 0xef, 0x55, + 0x34, 0xa3, 0xd3, 0xb5, 0x1d, 0x2f, 0x82, 0xf1, 0xcf, 0xc5, 0x4e, 0xf9, 0xb8, 0x2a, 0x85, 0x15, + 0x2b, 0x90, 0xa3, 0xc3, 0x71, 0x43, 0xf2, 0x2f, 0x38, 0xd1, 0x74, 0x1f, 0xc5, 0x13, 0x87, 0x6e, + 0x77, 0xba, 0xc8, 0x19, 0x27, 0xff, 0xfd, 0xa5, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0x77, 0xd8, + 0xc5, 0xa4, 0xda, 0x8f, 0xc1, 0xf0, 0x4d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x0c, + 0x8a, 0xbf, 0x12, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xd9, 0x2f, 0xb4, 0x0e, 0x6e, 0x1b, 0xae, 0xe7, + 0xb0, 0x3e, 0xf8, 0x64, 0xaa, 0x6f, 0xbd, 0x13, 0x6e, 0xc2, 0xd4, 0x00, 0xb4, 0x78, 0x03, 0x66, + 0x06, 0x5a, 0x0c, 0x25, 0xea, 0x7f, 0x16, 0xf2, 0x3f, 0xfb, 0x1e, 0x4f, 0x46, 0xe1, 0x0e, 0xa3, + 0xb8, 0x45, 0xf6, 0x3d, 0xdc, 0x07, 0x44, 0x93, 0xbd, 0xfc, 0x9e, 0xbf, 0xf5, 0xa1, 0x36, 0xa0, + 0x78, 0x1d, 0xa6, 0x43, 0x3d, 0x40, 0x34, 0xd5, 0x67, 0x39, 0x55, 0x36, 0xd8, 0x02, 0x14, 0x2f, + 0x43, 0x82, 0xd4, 0xf3, 0x68, 0xf8, 0xcf, 0x71, 0x38, 0x55, 0x2f, 0x7e, 0x0c, 0x52, 0xa2, 0x8e, + 0x47, 0x43, 0x7f, 0x9e, 0x43, 0x7d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0d, 0xff, 0x05, 0x01, 0x17, + 0x10, 0x02, 0x1f, 0xdf, 0x85, 0xdf, 0xfe, 0xa5, 0x04, 0xcf, 0xc3, 0xc2, 0x77, 0xd7, 0x60, 0x8a, + 0x17, 0xef, 0x68, 0xf4, 0xe7, 0xf8, 0xc3, 0x05, 0xa2, 0xf8, 0x2c, 0x24, 0xc7, 0x74, 0xf8, 0x2f, + 0x73, 0x28, 0xd3, 0x2f, 0x96, 0x21, 0x13, 0x28, 0xd8, 0xd1, 0xf0, 0x5f, 0xe1, 0xf0, 0x20, 0x8a, + 0x98, 0xce, 0x0b, 0x76, 0x34, 0xc1, 0xe7, 0x85, 0xe9, 0x1c, 0x41, 0xdc, 0x26, 0x6a, 0x75, 0x34, + 0xfa, 0x57, 0x85, 0xd7, 0x05, 0xa4, 0xf8, 0x3c, 0xa4, 0xfd, 0xfc, 0x1b, 0x8d, 0xff, 0x35, 0x8e, + 0xef, 0x63, 0x88, 0x07, 0x02, 0xf9, 0x3f, 0x9a, 0xe2, 0xd7, 0x85, 0x07, 0x02, 0x28, 0x72, 0x8c, + 0x06, 0x6b, 0x7a, 0x34, 0xd3, 0x6f, 0x88, 0x63, 0x34, 0x50, 0xd2, 0xc9, 0x6e, 0xd2, 0x34, 0x18, + 0x4d, 0xf1, 0x9b, 0x62, 0x37, 0xa9, 0x3e, 0x31, 0x63, 0xb0, 0x48, 0x46, 0x73, 0xfc, 0x96, 0x30, + 0x63, 0xa0, 0x46, 0x16, 0xeb, 0xa0, 0x0c, 0x17, 0xc8, 0x68, 0xbe, 0x2f, 0x70, 0xbe, 0xd9, 0xa1, + 0xfa, 0x58, 0x7c, 0x01, 0x16, 0x46, 0x17, 0xc7, 0x68, 0xd6, 0x2f, 0xbe, 0x37, 0xf0, 0x3a, 0x13, + 0xac, 0x8d, 0xc5, 0xdd, 0x7e, 0x96, 0x0d, 0x16, 0xc6, 0x68, 0xda, 0x57, 0xde, 0x0b, 0x27, 0xda, + 0x60, 0x5d, 0x2c, 0x96, 0x00, 0xfa, 0x35, 0x29, 0x9a, 0xeb, 0x55, 0xce, 0x15, 0x00, 0x91, 0xa3, + 0xc1, 0x4b, 0x52, 0x34, 0xfe, 0x4b, 0xe2, 0x68, 0x70, 0x04, 0x39, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, + 0x5f, 0x13, 0x47, 0x43, 0x40, 0x8a, 0xd7, 0x20, 0x65, 0xf5, 0x4c, 0x93, 0xc4, 0x96, 0x72, 0xf2, + 0xbf, 0x11, 0xe5, 0xff, 0xf5, 0x21, 0x07, 0x0b, 0x40, 0xf1, 0x32, 0x24, 0x71, 0x67, 0x1f, 0x37, + 0xa3, 0x90, 0xff, 0xf6, 0x50, 0xe4, 0x13, 0xa2, 0x5d, 0x7c, 0x1e, 0x80, 0xbd, 0x4c, 0xd3, 0xaf, + 0x44, 0x11, 0xd8, 0x7f, 0x7f, 0xc8, 0xff, 0x43, 0xa1, 0x0f, 0xe9, 0x13, 0xb0, 0xff, 0x77, 0x38, + 0x99, 0xe0, 0x9d, 0x30, 0x01, 0x7d, 0x01, 0x7f, 0x0e, 0xa6, 0x6e, 0xbb, 0xb6, 0xe5, 0xa1, 0x76, + 0x14, 0xfa, 0x3f, 0x38, 0x5a, 0xe8, 0x13, 0x87, 0x75, 0x6c, 0x07, 0x7b, 0xa8, 0xed, 0x46, 0x61, + 0xff, 0x93, 0x63, 0x7d, 0x00, 0x01, 0xeb, 0xc8, 0xf5, 0xc6, 0x59, 0xf7, 0x7f, 0x09, 0xb0, 0x00, + 0x10, 0xa3, 0xc9, 0xef, 0x3b, 0xf8, 0x30, 0x0a, 0xfb, 0xae, 0x30, 0x9a, 0xeb, 0x17, 0x3f, 0x06, + 0x69, 0xf2, 0x93, 0xfd, 0xd7, 0x4e, 0x04, 0xf8, 0xbf, 0x39, 0xb8, 0x8f, 0x20, 0x4f, 0x76, 0xbd, + 0xa6, 0x67, 0x44, 0x3b, 0xfb, 0x7f, 0xf8, 0x4e, 0x0b, 0xfd, 0x62, 0x09, 0x32, 0xae, 0xd7, 0x6c, + 0xf6, 0x78, 0x47, 0x13, 0x01, 0xff, 0xc1, 0x43, 0xff, 0x25, 0xd7, 0xc7, 0xac, 0x9f, 0x1f, 0x7d, + 0x59, 0x07, 0x9b, 0xf6, 0xa6, 0xcd, 0xae, 0xe9, 0xe0, 0xf3, 0x49, 0x38, 0xaf, 0xdb, 0x9d, 0x7d, + 0xdb, 0x5d, 0x63, 0x09, 0x65, 0xdf, 0xf6, 0x0e, 0xd6, 0xfc, 0x05, 0x88, 0x9b, 0x36, 0x5f, 0xb0, + 0x78, 0xba, 0x3b, 0xba, 0xe5, 0xbf, 0x89, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x87, 0x4a, + 0x17, 0xe6, 0xc8, 0xef, 0x6d, 0xd4, 0xa5, 0x37, 0x3e, 0xfc, 0x88, 0xf1, 0x3b, 0xd0, 0x0f, 0xaf, + 0xf6, 0x9f, 0x2a, 0x10, 0xab, 0x23, 0xd4, 0xe9, 0xb7, 0xe3, 0x75, 0xf9, 0x8d, 0x7f, 0x3a, 0x37, + 0xf1, 0x8b, 0xff, 0x7c, 0x2e, 0xb5, 0x7d, 0xf8, 0x82, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, + 0x3e, 0x2b, 0xc1, 0xa3, 0x23, 0xe4, 0x3b, 0xfc, 0x1c, 0xf2, 0x2f, 0x09, 0x97, 0xc6, 0x7c, 0xb4, + 0x80, 0x31, 0x13, 0xb2, 0xa1, 0xc7, 0x9f, 0xf4, 0x98, 0xc5, 0x5b, 0x90, 0x3f, 0x6e, 0x25, 0x8a, + 0x0c, 0xf1, 0x3b, 0xf8, 0x90, 0xff, 0x77, 0x28, 0xf9, 0xa9, 0x5c, 0xe8, 0xff, 0x77, 0x99, 0xb4, + 0x92, 0xb9, 0x38, 0x1b, 0xb0, 0x8e, 0x3f, 0x8c, 0xcd, 0x17, 0x63, 0x57, 0xa5, 0x45, 0x04, 0x4b, + 0x51, 0x96, 0xfe, 0x3f, 0x1f, 0xb1, 0x5c, 0x80, 0x49, 0x26, 0x54, 0xe6, 0x21, 0x59, 0xb5, 0xbc, + 0x2b, 0x97, 0x28, 0x55, 0x5c, 0x65, 0x83, 0xf5, 0xad, 0x37, 0x1e, 0x14, 0x26, 0xbe, 0xfb, 0xa0, + 0x30, 0xf1, 0x0f, 0x0f, 0x0a, 0x13, 0x6f, 0x3e, 0x28, 0x48, 0x6f, 0x3f, 0x28, 0x48, 0xef, 0x3e, + 0x28, 0x48, 0x3f, 0x7c, 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, + 0x15, 0xa4, 0x6f, 0x1d, 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0x37, 0x8e, 0x0a, 0x13, 0xdf, 0x3d, + 0x2a, 0x4c, 0xbc, 0x79, 0x54, 0x90, 0xde, 0x3e, 0x2a, 0x4c, 0xbc, 0x7b, 0x54, 0x90, 0x7e, 0x78, + 0x54, 0x90, 0xee, 0x7f, 0xbf, 0x20, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x14, 0xcf, + 0xd0, 0xee, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -601,23 +620,6 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -681,7 +683,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -689,43 +691,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -746,8 +748,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -833,36 +836,40 @@ func valueToStringCastvalue(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.CastMapValueMessage) > 0 { for k := range m.CastMapValueMessage { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.CastMapValueMessage[k] - msgSize := ((*Wilson)(&v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if ((*Wilson)(&v)) != nil { + msgSize = ((*Wilson)(&v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) + } + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(data[i:]) + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) + n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -871,89 +878,92 @@ func (m *Castaway) MarshalTo(data []byte) (int, error) { } if len(m.CastMapValueMessageNullable) > 0 { for k := range m.CastMapValueMessageNullable { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.CastMapValueMessageNullable[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if ((*Wilson)(v)) != nil { + msgSize = ((*Wilson)(v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) } - msgSize := ((*Wilson)(v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + if ((*Wilson)(v)) != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) + n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(*m.Int64)) + i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Castvalue(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Castvalue(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Castvalue(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Castvalue(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCastvalue(data []byte, offset int, v uint64) int { +func encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -965,7 +975,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -993,7 +1003,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1015,7 +1025,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1030,62 +1040,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + if m.CastMapValueMessage == nil { + m.CastMapValueMessage = make(map[int32]MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) + } else { + var mapvalue MyWilson + m.CastMapValueMessage[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -1099,7 +1114,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1121,7 +1136,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1136,66 +1151,71 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + if m.CastMapValueMessageNullable == nil { + m.CastMapValueMessageNullable = make(map[int32]*MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) + } else { + var mapvalue *MyWilson + m.CastMapValueMessageNullable[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(data[iNdEx:]) + skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1205,7 +1225,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1215,8 +1235,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1228,7 +1248,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1256,7 +1276,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1266,7 +1286,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(data[iNdEx:]) + skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1276,7 +1296,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1286,8 +1306,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCastvalueUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipCastvalueUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1298,7 +1318,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1316,7 +1336,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1333,7 +1353,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1356,7 +1376,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1367,7 +1387,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCastvalueUnsafe(data[start:]) + next, err := skipCastvalueUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -1391,28 +1411,31 @@ var ( ErrIntOverflowCastvalueUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 338 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x4c, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0x2f, 0xcd, 0x2b, 0x4e, 0x4c, 0x4b, 0x4d, 0xca, 0x2f, 0xc9, 0xd0, 0x4f, 0x4e, - 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, - 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x01, 0x35, 0xe9, 0xa7, 0xe7, 0xa7, - 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, - 0x90, 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, - 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, - 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, - 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, - 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, 0xc6, - 0x62, 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, - 0xad, 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, 0xb9, - 0x24, 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, 0xac, - 0x41, 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, 0x88, - 0xe4, 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, 0x2e, - 0xa5, 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, 0x89, - 0x99, 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, 0x86, - 0x0b, 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, 0x07, - 0x10, 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, 0xe2, - 0x13, 0x8f, 0x80, 0xea, 0x81, 0xf8, 0x01, 0x90, 0xfd, 0x02, 0x48, 0x7f, 0x00, 0xd2, 0x3f, 0x80, - 0xb8, 0xe1, 0xb1, 0x1c, 0x23, 0x20, 0x00, 0x00, 0xff, 0xff, 0x61, 0x07, 0x36, 0x06, 0x8f, 0x02, - 0x00, 0x00, + // 358 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbf, 0x4f, 0xfa, 0x50, + 0x14, 0xc5, 0x7b, 0x69, 0xf8, 0x86, 0xef, 0xc3, 0x01, 0xab, 0x43, 0x83, 0xc9, 0xa5, 0xb2, 0xc8, + 0xa0, 0x6d, 0x42, 0x88, 0x31, 0x8e, 0x18, 0x07, 0x13, 0x71, 0x60, 0xd0, 0x38, 0xbe, 0x92, 0x52, + 0x88, 0xa5, 0x8f, 0xd0, 0x56, 0xd3, 0x8d, 0xc1, 0xc9, 0xbf, 0xc4, 0xd1, 0xd1, 0x51, 0x37, 0x46, + 0x46, 0x27, 0xe5, 0x3d, 0x17, 0x46, 0x46, 0x46, 0xc3, 0xab, 0xf8, 0x23, 0xc1, 0x1f, 0x89, 0xdb, + 0xbd, 0xe7, 0xdd, 0x73, 0x3e, 0xe7, 0x91, 0xf5, 0x06, 0xeb, 0xd8, 0x2c, 0xb0, 0x22, 0x3f, 0xa0, + 0x4d, 0xc7, 0x66, 0x61, 0xcb, 0x6a, 0xd0, 0x20, 0x3c, 0xa7, 0x5e, 0xe4, 0x98, 0xdd, 0x1e, 0x0b, + 0x99, 0xf6, 0xff, 0x4d, 0xc8, 0x6f, 0xb9, 0xed, 0xb0, 0x15, 0xd9, 0x66, 0x83, 0x75, 0x2c, 0x97, + 0xb9, 0xcc, 0x92, 0x17, 0x76, 0xd4, 0x94, 0x9b, 0x5c, 0xe4, 0x94, 0x38, 0x8b, 0xf7, 0x2a, 0xc9, + 0xec, 0xd1, 0x20, 0xa4, 0x17, 0x34, 0xd6, 0xba, 0x64, 0x65, 0x36, 0xd7, 0x68, 0xf7, 0x78, 0x96, + 0x55, 0x73, 0x82, 0x80, 0xba, 0x8e, 0x0e, 0x86, 0x5a, 0xca, 0x96, 0x37, 0xcd, 0x77, 0xea, 0xdc, + 0x61, 0x2e, 0x38, 0xdf, 0xf7, 0xc3, 0x5e, 0x5c, 0xcd, 0x0d, 0x1e, 0x0b, 0xca, 0xd5, 0x53, 0x21, + 0x53, 0x8b, 0x4f, 0xda, 0x5e, 0xc0, 0xfc, 0xfa, 0xa2, 0x68, 0xed, 0x12, 0xc8, 0xda, 0x02, 0xfd, + 0x28, 0xf2, 0x3c, 0x6a, 0x7b, 0x8e, 0x9e, 0x92, 0xe8, 0xca, 0x2f, 0xd1, 0x73, 0x5b, 0x52, 0x61, + 0xe9, 0x13, 0xfe, 0x3b, 0x4c, 0xfe, 0x94, 0xe8, 0x5f, 0xfd, 0x44, 0xcb, 0x11, 0xf5, 0xcc, 0x89, + 0x75, 0x30, 0xa0, 0x94, 0xae, 0xcf, 0x46, 0x6d, 0x83, 0xa4, 0x65, 0x17, 0x3d, 0x65, 0x40, 0x29, + 0x5b, 0x5e, 0xfe, 0xd0, 0xee, 0x15, 0x96, 0xbc, 0xef, 0xa6, 0x76, 0x20, 0x4f, 0x89, 0xf1, 0x53, + 0xd3, 0x3f, 0x22, 0x8a, 0x48, 0xfe, 0x25, 0xa2, 0xb6, 0x4a, 0xd2, 0x07, 0x7e, 0xb8, 0x5d, 0x91, + 0x51, 0x6a, 0x3d, 0x59, 0xaa, 0x87, 0x03, 0x8e, 0xca, 0x90, 0xa3, 0xf2, 0xc0, 0x51, 0x19, 0x71, + 0x84, 0x31, 0x47, 0x98, 0x70, 0x84, 0x29, 0x47, 0xe8, 0x0b, 0x84, 0x6b, 0x81, 0x70, 0x23, 0x10, + 0x6e, 0x05, 0xc2, 0x9d, 0x40, 0x18, 0x08, 0x54, 0x86, 0x02, 0x95, 0x91, 0x40, 0x18, 0x0b, 0x54, + 0x26, 0x02, 0x61, 0x2a, 0x10, 0xfa, 0xcf, 0x08, 0x2f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x93, + 0x2e, 0x16, 0x8f, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto index 9fb02bef..c7d8c83b 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go index 2fc91d01..371d619b 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go @@ -17,6 +17,7 @@ package castvalue import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestCastawayProto(t *testing.T) { } func TestCastawayMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +110,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +124,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -133,21 +142,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -167,24 +180,28 @@ func TestWilsonProto(t *testing.T) { } func TestWilsonMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +220,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +234,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +297,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +314,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +331,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +348,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +365,18 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +384,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +449,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +485,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go index 3fbcc169..f7da2c88 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go @@ -26,13 +26,9 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -40,11 +36,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -53,7 +51,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -74,224 +72,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3472 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0xd5, - 0xf5, 0x5f, 0xc7, 0x76, 0x62, 0x1f, 0x3b, 0x8e, 0x33, 0x09, 0xbb, 0xde, 0x2c, 0x6c, 0x76, 0xcd, - 0x63, 0x97, 0x05, 0x12, 0xfe, 0xfb, 0xe7, 0xb1, 0x98, 0xff, 0x1f, 0x94, 0x87, 0x37, 0x78, 0x95, - 0x57, 0x27, 0x09, 0xec, 0xd2, 0x0f, 0xa3, 0xc9, 0xf8, 0xc6, 0xf1, 0xee, 0x78, 0xc6, 0xf5, 0x8c, - 0x77, 0x37, 0x7c, 0xa2, 0x82, 0xb6, 0xa2, 0x55, 0xdf, 0x48, 0xe5, 0xdd, 0x82, 0xd4, 0x42, 0xe9, - 0x0b, 0xfa, 0x52, 0xd5, 0x4f, 0x54, 0x15, 0x2d, 0x9f, 0xaa, 0xb6, 0x9f, 0xfa, 0xa1, 0x6a, 0x81, - 0x22, 0x95, 0xb6, 0xb4, 0xa5, 0xd2, 0x4a, 0x45, 0xe2, 0x4b, 0xcf, 0x7d, 0x8d, 0x67, 0x6c, 0x27, - 0xe3, 0x50, 0x51, 0x1a, 0x69, 0x94, 0x99, 0x73, 0xcf, 0xef, 0x37, 0xf7, 0x9e, 0x7b, 0xee, 0x39, - 0xe7, 0xde, 0x31, 0xfc, 0xf4, 0x7f, 0xe0, 0x50, 0xc5, 0xb6, 0x2b, 0x26, 0x99, 0xac, 0x37, 0x6c, - 0xd7, 0x5e, 0x6f, 0x6e, 0x4c, 0x96, 0x89, 0x63, 0x34, 0xaa, 0x75, 0xd7, 0x6e, 0x4c, 0x30, 0x99, - 0x32, 0xc4, 0x35, 0x26, 0xa4, 0x46, 0x7e, 0x01, 0x86, 0x4f, 0x56, 0x4d, 0x32, 0xeb, 0x29, 0xae, - 0x10, 0x57, 0x39, 0x01, 0xb1, 0x0d, 0x14, 0xe6, 0x22, 0x87, 0xa2, 0x47, 0x53, 0xc7, 0xaf, 0x9a, - 0x68, 0x03, 0x4d, 0x04, 0x11, 0xcb, 0x54, 0xac, 0x32, 0x44, 0xfe, 0x8d, 0x18, 0x8c, 0x74, 0x69, - 0x55, 0x14, 0x88, 0x59, 0x7a, 0x8d, 0x32, 0x46, 0x8e, 0x26, 0x55, 0x76, 0xaf, 0xe4, 0x60, 0xa0, - 0xae, 0x1b, 0xe7, 0xf4, 0x0a, 0xc9, 0xf5, 0x31, 0xb1, 0x7c, 0x54, 0x0e, 0x02, 0x94, 0x49, 0x9d, - 0x58, 0x65, 0x62, 0x19, 0x5b, 0xb9, 0x28, 0xf6, 0x22, 0xa9, 0xfa, 0x24, 0xca, 0x75, 0x30, 0x5c, - 0x6f, 0xae, 0x9b, 0x55, 0x43, 0xf3, 0xa9, 0x01, 0xaa, 0xc5, 0xd5, 0x2c, 0x6f, 0x98, 0x6d, 0x29, - 0x1f, 0x81, 0xa1, 0x0b, 0x44, 0x3f, 0xe7, 0x57, 0x4d, 0x31, 0xd5, 0x0c, 0x15, 0xfb, 0x14, 0x67, - 0x20, 0x5d, 0x23, 0x8e, 0x83, 0x1d, 0xd0, 0xdc, 0xad, 0x3a, 0xc9, 0xc5, 0xd8, 0xe8, 0x0f, 0x75, - 0x8c, 0xbe, 0x7d, 0xe4, 0x29, 0x81, 0x5a, 0x45, 0x90, 0x32, 0x05, 0x49, 0x62, 0x35, 0x6b, 0x9c, - 0x21, 0xbe, 0x8d, 0xfd, 0x8a, 0xa8, 0xd1, 0xce, 0x92, 0xa0, 0x30, 0x41, 0x31, 0xe0, 0x90, 0xc6, - 0xf9, 0xaa, 0x41, 0x72, 0xfd, 0x8c, 0xe0, 0x48, 0x07, 0xc1, 0x0a, 0x6f, 0x6f, 0xe7, 0x90, 0x38, - 0x1c, 0x4a, 0x92, 0x5c, 0x74, 0x89, 0xe5, 0x54, 0x6d, 0x2b, 0x37, 0xc0, 0x48, 0xae, 0xee, 0x32, - 0x8b, 0xc4, 0x2c, 0xb7, 0x53, 0xb4, 0x70, 0xca, 0x2d, 0x30, 0x60, 0xd7, 0x5d, 0xbc, 0x73, 0x72, - 0x09, 0x9c, 0x9f, 0xd4, 0xf1, 0xcb, 0xbb, 0x3a, 0xc2, 0x12, 0xd7, 0x51, 0xa5, 0xb2, 0x52, 0x82, - 0xac, 0x63, 0x37, 0x1b, 0x06, 0xd1, 0x0c, 0xbb, 0x4c, 0xb4, 0xaa, 0xb5, 0x61, 0xe7, 0x92, 0x8c, - 0x60, 0xbc, 0x73, 0x20, 0x4c, 0x71, 0x06, 0xf5, 0x4a, 0xa8, 0xa6, 0x66, 0x9c, 0xc0, 0xb3, 0xb2, - 0x17, 0xfa, 0x9d, 0x2d, 0xcb, 0xd5, 0x2f, 0xe6, 0xd2, 0xcc, 0x43, 0xc4, 0x53, 0xfe, 0x9f, 0x71, - 0x18, 0xea, 0xc5, 0xc5, 0x6e, 0x87, 0xf8, 0x06, 0x1d, 0x25, 0x3a, 0xd8, 0x2e, 0x6c, 0xc0, 0x31, - 0x41, 0x23, 0xf6, 0xbf, 0x47, 0x23, 0x4e, 0x41, 0xca, 0x22, 0x8e, 0x4b, 0xca, 0xdc, 0x23, 0xa2, - 0x3d, 0xfa, 0x14, 0x70, 0x50, 0xa7, 0x4b, 0xc5, 0xde, 0x93, 0x4b, 0x9d, 0x86, 0x21, 0xaf, 0x4b, - 0x5a, 0x43, 0xb7, 0x2a, 0xd2, 0x37, 0x27, 0xc3, 0x7a, 0x32, 0x51, 0x94, 0x38, 0x95, 0xc2, 0xd4, - 0x0c, 0x09, 0x3c, 0x2b, 0xb3, 0x00, 0xb6, 0x45, 0xec, 0x0d, 0x5c, 0x5e, 0x86, 0x89, 0x7e, 0xd2, - 0xdd, 0x4a, 0x4b, 0x54, 0xa5, 0xc3, 0x4a, 0x36, 0x97, 0x1a, 0xa6, 0x72, 0x5b, 0xcb, 0xd5, 0x06, - 0xb6, 0xf1, 0x94, 0x05, 0xbe, 0xc8, 0x3a, 0xbc, 0x6d, 0x0d, 0x32, 0x0d, 0x42, 0xfd, 0x1e, 0x4d, - 0xcc, 0x47, 0x96, 0x64, 0x9d, 0x98, 0x08, 0x1d, 0x99, 0x2a, 0x60, 0x7c, 0x60, 0x83, 0x0d, 0xff, - 0xa3, 0x72, 0x25, 0x78, 0x02, 0x8d, 0xb9, 0x15, 0xb0, 0x28, 0x94, 0x96, 0xc2, 0x45, 0x94, 0x8d, - 0x9d, 0x80, 0x4c, 0xd0, 0x3c, 0xca, 0x28, 0xc4, 0x1d, 0x57, 0x6f, 0xb8, 0xcc, 0x0b, 0xe3, 0x2a, - 0x7f, 0x50, 0xb2, 0x10, 0xc5, 0x20, 0xc3, 0xa2, 0x5c, 0x5c, 0xa5, 0xb7, 0x63, 0xb7, 0xc2, 0x60, - 0xe0, 0xf5, 0xbd, 0x02, 0xf3, 0x8f, 0xf4, 0xc3, 0x68, 0x37, 0x9f, 0xeb, 0xea, 0xfe, 0xb8, 0x7c, - 0xd0, 0x03, 0xd6, 0x49, 0x03, 0xfd, 0x8e, 0x32, 0x88, 0x27, 0xf4, 0xa8, 0xb8, 0xa9, 0xaf, 0x13, - 0x13, 0xbd, 0x29, 0x72, 0x34, 0x73, 0xfc, 0xba, 0x9e, 0xbc, 0x7a, 0x62, 0x9e, 0x42, 0x54, 0x8e, - 0x54, 0xee, 0x80, 0x98, 0x08, 0x71, 0x94, 0xe1, 0x58, 0x6f, 0x0c, 0xd4, 0x17, 0x55, 0x86, 0x53, - 0x0e, 0x40, 0x92, 0xfe, 0xe7, 0xb6, 0xed, 0x67, 0x7d, 0x4e, 0x50, 0x01, 0xb5, 0xab, 0x32, 0x06, - 0x09, 0xe6, 0x66, 0x65, 0x22, 0x53, 0x83, 0xf7, 0x4c, 0x27, 0xa6, 0x4c, 0x36, 0xf4, 0xa6, 0xe9, - 0x6a, 0xe7, 0x75, 0xb3, 0x49, 0x98, 0xc3, 0xe0, 0xc4, 0x08, 0xe1, 0xdd, 0x54, 0xa6, 0x8c, 0x43, - 0x8a, 0x7b, 0x65, 0x15, 0x31, 0x17, 0x59, 0xf4, 0x89, 0xab, 0xdc, 0x51, 0x4b, 0x54, 0x42, 0x5f, - 0x7f, 0xd6, 0xc1, 0xb5, 0x20, 0xa6, 0x96, 0xbd, 0x82, 0x0a, 0xd8, 0xeb, 0x6f, 0x6d, 0x0f, 0x7c, - 0x57, 0x74, 0x1f, 0x5e, 0xbb, 0x2f, 0xe6, 0x7f, 0xd8, 0x07, 0x31, 0xb6, 0xde, 0x86, 0x20, 0xb5, - 0x7a, 0x66, 0xb9, 0xa8, 0xcd, 0x2e, 0xad, 0x4d, 0xcf, 0x17, 0xb3, 0x11, 0x25, 0x03, 0xc0, 0x04, - 0x27, 0xe7, 0x97, 0xa6, 0x56, 0xb3, 0x7d, 0xde, 0x73, 0x69, 0x71, 0xf5, 0x96, 0x9b, 0xb2, 0x51, - 0x0f, 0xb0, 0xc6, 0x05, 0x31, 0xbf, 0xc2, 0xff, 0x1e, 0xcf, 0xc6, 0xd1, 0x13, 0xd2, 0x9c, 0xa0, - 0x74, 0xba, 0x38, 0x8b, 0x1a, 0xfd, 0x41, 0x09, 0xea, 0x0c, 0x28, 0x83, 0x90, 0x64, 0x92, 0xe9, - 0xa5, 0xa5, 0xf9, 0x6c, 0xc2, 0xe3, 0x5c, 0x59, 0x55, 0x4b, 0x8b, 0x73, 0xd9, 0xa4, 0xc7, 0x39, - 0xa7, 0x2e, 0xad, 0x2d, 0x67, 0xc1, 0x63, 0x58, 0x28, 0xae, 0xac, 0x4c, 0xcd, 0x15, 0xb3, 0x29, - 0x4f, 0x63, 0xfa, 0xcc, 0x6a, 0x71, 0x25, 0x9b, 0x0e, 0x74, 0x0b, 0x5f, 0x31, 0xe8, 0xbd, 0xa2, - 0xb8, 0xb8, 0xb6, 0x90, 0xcd, 0x28, 0xc3, 0x30, 0xc8, 0x5f, 0x21, 0x3b, 0x31, 0xd4, 0x26, 0xc2, - 0x9e, 0x66, 0x5b, 0x1d, 0xe1, 0x2c, 0xc3, 0x01, 0x01, 0x6a, 0x28, 0xf9, 0x19, 0x88, 0x33, 0xef, - 0x42, 0x2f, 0xce, 0xcc, 0x4f, 0x4d, 0x17, 0xe7, 0xb5, 0xa5, 0xe5, 0xd5, 0xd2, 0xd2, 0xe2, 0xd4, - 0x3c, 0xda, 0xce, 0x93, 0xa9, 0xc5, 0x0f, 0xad, 0x95, 0xd4, 0xe2, 0x2c, 0xda, 0xcf, 0x27, 0x5b, - 0x2e, 0x4e, 0xad, 0xa2, 0x2c, 0x9a, 0x3f, 0x06, 0xa3, 0xdd, 0xe2, 0x4c, 0xb7, 0x95, 0x91, 0x7f, - 0x26, 0x02, 0x23, 0x5d, 0x42, 0x66, 0xd7, 0x55, 0x74, 0x27, 0xc4, 0xb9, 0xa7, 0xf1, 0x24, 0x72, - 0x6d, 0xd7, 0xd8, 0xcb, 0xfc, 0xae, 0x23, 0x91, 0x30, 0x9c, 0x3f, 0x91, 0x46, 0xb7, 0x49, 0xa4, - 0x94, 0xa2, 0xc3, 0x9d, 0x1e, 0x88, 0x40, 0x6e, 0x3b, 0xee, 0x90, 0xf5, 0xde, 0x17, 0x58, 0xef, - 0xb7, 0xb7, 0x77, 0xe0, 0xf0, 0xf6, 0x63, 0xe8, 0xe8, 0xc5, 0xb3, 0x11, 0xd8, 0xdb, 0xbd, 0xde, - 0xe8, 0xda, 0x87, 0x3b, 0xa0, 0xbf, 0x46, 0xdc, 0x4d, 0x5b, 0xe6, 0xdc, 0x6b, 0xba, 0x44, 0x72, - 0xda, 0xdc, 0x6e, 0x2b, 0x81, 0xf2, 0xa7, 0x82, 0xe8, 0x76, 0x45, 0x03, 0xef, 0x4d, 0x47, 0x4f, - 0x1f, 0xea, 0x83, 0xcb, 0xba, 0x92, 0x77, 0xed, 0xe8, 0x15, 0x00, 0x55, 0xab, 0xde, 0x74, 0x79, - 0x5e, 0xe5, 0x61, 0x26, 0xc9, 0x24, 0x6c, 0x09, 0xd3, 0x10, 0xd2, 0x74, 0xbd, 0xf6, 0x28, 0x6b, - 0x07, 0x2e, 0x62, 0x0a, 0x27, 0x5a, 0x1d, 0x8d, 0xb1, 0x8e, 0x1e, 0xdc, 0x66, 0xa4, 0x1d, 0x29, - 0xeb, 0x46, 0xc8, 0x1a, 0x66, 0x95, 0x58, 0xae, 0xe6, 0xb8, 0x0d, 0xa2, 0xd7, 0xaa, 0x56, 0x85, - 0xc5, 0xd1, 0x44, 0x21, 0xbe, 0xa1, 0x9b, 0x0e, 0x51, 0x87, 0x78, 0xf3, 0x8a, 0x6c, 0xa5, 0x08, - 0x96, 0x2c, 0x1a, 0x3e, 0x44, 0x7f, 0x00, 0xc1, 0x9b, 0x3d, 0x44, 0xfe, 0xd7, 0x03, 0x90, 0xf2, - 0x55, 0x67, 0xca, 0x61, 0x48, 0x9f, 0xd5, 0xcf, 0xeb, 0x9a, 0xac, 0xb8, 0xb9, 0x25, 0x52, 0x54, - 0xb6, 0x2c, 0xaa, 0xee, 0x1b, 0x61, 0x94, 0xa9, 0xe0, 0x18, 0xf1, 0x45, 0x86, 0xa9, 0x3b, 0x0e, - 0x33, 0x5a, 0x82, 0xa9, 0x2a, 0xb4, 0x6d, 0x89, 0x36, 0xcd, 0xc8, 0x16, 0xe5, 0x66, 0x18, 0x61, - 0x88, 0x1a, 0x06, 0xde, 0x6a, 0xdd, 0x24, 0x1a, 0xdd, 0x03, 0x38, 0x2c, 0x9e, 0x7a, 0x3d, 0x1b, - 0xa6, 0x1a, 0x0b, 0x42, 0x81, 0xf6, 0xc8, 0x51, 0xe6, 0xe0, 0x0a, 0x06, 0xab, 0x10, 0x8b, 0x34, - 0x74, 0x97, 0x68, 0xe4, 0x23, 0x4d, 0xd4, 0xd5, 0x74, 0xab, 0xac, 0x6d, 0xea, 0xce, 0x66, 0x6e, - 0xd4, 0x4f, 0xb0, 0x9f, 0xea, 0xce, 0x09, 0xd5, 0x22, 0xd3, 0x9c, 0xb2, 0xca, 0x77, 0xa1, 0x9e, - 0x52, 0x80, 0xbd, 0x8c, 0x08, 0x8d, 0x82, 0x63, 0xd6, 0x8c, 0x4d, 0x62, 0x9c, 0xd3, 0x9a, 0xee, - 0xc6, 0x89, 0xdc, 0x01, 0x3f, 0x03, 0xeb, 0xe4, 0x0a, 0xd3, 0x99, 0xa1, 0x2a, 0x6b, 0xa8, 0xa1, - 0xac, 0x40, 0x9a, 0xce, 0x47, 0xad, 0x7a, 0x1f, 0x76, 0xdb, 0x6e, 0xb0, 0x1c, 0x91, 0xe9, 0xb2, - 0xb8, 0x7d, 0x46, 0x9c, 0x58, 0x12, 0x80, 0x05, 0xac, 0x4f, 0x0b, 0xf1, 0x95, 0xe5, 0x62, 0x71, - 0x56, 0x4d, 0x49, 0x96, 0x93, 0x76, 0x83, 0xfa, 0x54, 0xc5, 0xf6, 0x6c, 0x9c, 0xe2, 0x3e, 0x55, - 0xb1, 0xa5, 0x85, 0xd1, 0x5e, 0x86, 0xc1, 0x87, 0x8d, 0x7b, 0x17, 0x51, 0xac, 0x3b, 0xb9, 0x6c, - 0xc0, 0x5e, 0x86, 0x31, 0xc7, 0x15, 0x84, 0x9b, 0x3b, 0xb8, 0x24, 0x2e, 0x6b, 0xd9, 0xcb, 0x0f, - 0x1c, 0xee, 0x18, 0x65, 0x3b, 0x14, 0xdf, 0x58, 0xdf, 0xea, 0x04, 0x2a, 0x81, 0x37, 0xd6, 0xb7, - 0xda, 0x61, 0x57, 0xb3, 0x0d, 0x58, 0x83, 0x18, 0x68, 0xf2, 0x72, 0x6e, 0x9f, 0x5f, 0xdb, 0xd7, - 0xa0, 0x4c, 0xa2, 0x23, 0x1b, 0x1a, 0xb1, 0xf4, 0x75, 0x9c, 0x7b, 0xbd, 0x81, 0x37, 0x4e, 0x6e, - 0xdc, 0xaf, 0x9c, 0x31, 0x8c, 0x22, 0x6b, 0x9d, 0x62, 0x8d, 0xca, 0x31, 0x18, 0xb6, 0xd7, 0xcf, - 0x1a, 0xdc, 0xb9, 0x34, 0xe4, 0xd9, 0xa8, 0x5e, 0xcc, 0x5d, 0xc5, 0xcc, 0x34, 0x44, 0x1b, 0x98, - 0x6b, 0x2d, 0x33, 0xb1, 0x72, 0x2d, 0x92, 0x3b, 0x9b, 0x7a, 0xa3, 0xce, 0x92, 0xb4, 0x83, 0x46, - 0x25, 0xb9, 0xab, 0xb9, 0x2a, 0x97, 0x2f, 0x4a, 0xb1, 0x52, 0x84, 0x71, 0x3a, 0x78, 0x4b, 0xb7, - 0x6c, 0xad, 0xe9, 0x10, 0xad, 0xd5, 0x45, 0x6f, 0x2e, 0xae, 0xa1, 0xdd, 0x52, 0x2f, 0x97, 0x6a, - 0x6b, 0x0e, 0x06, 0x33, 0xa9, 0x24, 0xa7, 0xe7, 0x34, 0x8c, 0x36, 0xad, 0xaa, 0x85, 0x2e, 0x8e, - 0x2d, 0x14, 0xcc, 0x17, 0x6c, 0xee, 0x8f, 0x03, 0xdb, 0x14, 0xdd, 0x6b, 0x7e, 0x6d, 0xee, 0x24, - 0xea, 0x48, 0xb3, 0x53, 0x98, 0x2f, 0x40, 0xda, 0xef, 0x3b, 0x4a, 0x12, 0xb8, 0xf7, 0x60, 0x76, - 0xc3, 0x8c, 0x3a, 0xb3, 0x34, 0x4b, 0x73, 0xe1, 0xbd, 0x45, 0x4c, 0x6c, 0x98, 0x93, 0xe7, 0x4b, - 0xab, 0x45, 0x4d, 0x5d, 0x5b, 0x5c, 0x2d, 0x2d, 0x14, 0xb3, 0xd1, 0x63, 0xc9, 0xc4, 0x9b, 0x03, - 0xd9, 0xfb, 0xf1, 0xaf, 0x2f, 0xff, 0x72, 0x1f, 0x64, 0x82, 0x75, 0xb0, 0xf2, 0x7f, 0xb0, 0x4f, - 0x6e, 0x5a, 0x1d, 0xe2, 0x6a, 0x17, 0xaa, 0x0d, 0xe6, 0xce, 0x35, 0x9d, 0x57, 0x92, 0xde, 0x4c, - 0x8c, 0x0a, 0x2d, 0xdc, 0xde, 0xdf, 0x83, 0x3a, 0x27, 0x99, 0x8a, 0x32, 0x0f, 0xe3, 0x68, 0x32, - 0xac, 0x35, 0xad, 0xb2, 0xde, 0x28, 0x6b, 0xad, 0xe3, 0x02, 0x4d, 0x37, 0xd0, 0x0f, 0x1c, 0x9b, - 0x67, 0x12, 0x8f, 0xe5, 0x72, 0xcb, 0x5e, 0x11, 0xca, 0xad, 0x10, 0x3b, 0x25, 0x54, 0xdb, 0xbc, - 0x26, 0xba, 0x9d, 0xd7, 0x60, 0xed, 0x55, 0xd3, 0xeb, 0xe8, 0x36, 0x6e, 0x63, 0x8b, 0x55, 0x6f, - 0x09, 0x35, 0x81, 0x82, 0x22, 0x7d, 0x7e, 0xff, 0xe6, 0xc0, 0x6f, 0xc7, 0xdf, 0x46, 0x21, 0xed, - 0xaf, 0xe0, 0x68, 0x41, 0x6c, 0xb0, 0x30, 0x1f, 0x61, 0x51, 0xe0, 0xca, 0x1d, 0xeb, 0xbd, 0x89, - 0x19, 0x1a, 0xff, 0x0b, 0xfd, 0xbc, 0xae, 0x52, 0x39, 0x92, 0xe6, 0x5e, 0xea, 0x6b, 0x84, 0x57, - 0xeb, 0x09, 0x55, 0x3c, 0x61, 0xb0, 0xeb, 0x3f, 0xeb, 0x30, 0xee, 0x7e, 0xc6, 0x7d, 0xd5, 0xce, - 0xdc, 0xa7, 0x56, 0x18, 0x79, 0xf2, 0xd4, 0x8a, 0xb6, 0xb8, 0xa4, 0x2e, 0x4c, 0xcd, 0xab, 0x02, - 0xae, 0xec, 0x87, 0x98, 0xa9, 0xdf, 0xb7, 0x15, 0xcc, 0x14, 0x4c, 0xd4, 0xab, 0xe1, 0x91, 0x81, - 0x1e, 0x79, 0x04, 0xe3, 0x33, 0x13, 0xbd, 0x8f, 0xae, 0x3f, 0x09, 0x71, 0x66, 0x2f, 0x05, 0x40, - 0x58, 0x2c, 0xbb, 0x47, 0x49, 0x40, 0x6c, 0x66, 0x49, 0xa5, 0xee, 0x8f, 0xfe, 0xce, 0xa5, 0xda, - 0x72, 0xa9, 0x38, 0x83, 0x2b, 0x20, 0x7f, 0x33, 0xf4, 0x73, 0x23, 0xd0, 0xa5, 0xe1, 0x99, 0x01, - 0x41, 0xfc, 0x51, 0x70, 0x44, 0x64, 0xeb, 0xda, 0xc2, 0x74, 0x51, 0xcd, 0xf6, 0xf9, 0xa7, 0xf7, - 0xc7, 0x11, 0x48, 0xf9, 0x0a, 0x2a, 0x9a, 0xca, 0x75, 0xd3, 0xb4, 0x2f, 0x68, 0xba, 0x59, 0xc5, - 0x08, 0xc5, 0xe7, 0x07, 0x98, 0x68, 0x8a, 0x4a, 0x7a, 0xb5, 0xdf, 0x7f, 0xc4, 0x37, 0x9f, 0x8a, - 0x40, 0xb6, 0xbd, 0x18, 0x6b, 0xeb, 0x60, 0xe4, 0x03, 0xed, 0xe0, 0x13, 0x11, 0xc8, 0x04, 0x2b, - 0xb0, 0xb6, 0xee, 0x1d, 0xfe, 0x40, 0xbb, 0xf7, 0x78, 0x04, 0x06, 0x03, 0x75, 0xd7, 0x7f, 0x55, - 0xef, 0x1e, 0x8b, 0xc2, 0x48, 0x17, 0x1c, 0x06, 0x20, 0x5e, 0xa0, 0xf2, 0x9a, 0xf9, 0x86, 0x5e, - 0xde, 0x35, 0x41, 0xf3, 0xdf, 0xb2, 0xde, 0x70, 0x45, 0x3d, 0x8b, 0xf9, 0xb2, 0x5a, 0xc6, 0xa0, - 0x5a, 0xdd, 0xa8, 0x62, 0xf9, 0xc6, 0x77, 0x2c, 0xbc, 0x6a, 0x1d, 0x6a, 0xc9, 0xf9, 0xf6, 0xf8, - 0x7a, 0x50, 0xea, 0xb6, 0x53, 0x75, 0xab, 0xe7, 0xe9, 0xf1, 0x9c, 0xdc, 0x48, 0xd3, 0x2a, 0x36, - 0xa6, 0x66, 0x65, 0x4b, 0xc9, 0x72, 0x3d, 0x6d, 0x8b, 0x54, 0xf4, 0x36, 0x6d, 0x1a, 0x86, 0xa2, - 0x6a, 0x56, 0xb6, 0x78, 0xda, 0x58, 0x68, 0x96, 0xed, 0x26, 0x2d, 0x08, 0xb8, 0x1e, 0x8d, 0x7a, - 0x11, 0x35, 0xc5, 0x65, 0x9e, 0x8a, 0xa8, 0xd8, 0x5a, 0x3b, 0xf8, 0xb4, 0x9a, 0xe2, 0x32, 0xae, - 0x72, 0x04, 0x86, 0xf4, 0x4a, 0xa5, 0x41, 0xc9, 0x25, 0x11, 0x2f, 0x43, 0x33, 0x9e, 0x98, 0x29, - 0x8e, 0x9d, 0x82, 0x84, 0xb4, 0x03, 0x4d, 0x2c, 0xd4, 0x12, 0x98, 0xf3, 0xd9, 0x39, 0x4a, 0x1f, - 0xdd, 0xd4, 0x5b, 0xb2, 0x11, 0x5f, 0x5a, 0x75, 0xb4, 0xd6, 0x81, 0x5e, 0x1f, 0xb6, 0x27, 0xd4, - 0x54, 0xd5, 0xf1, 0x4e, 0x70, 0xf2, 0xcf, 0x62, 0x7a, 0x0d, 0x1e, 0x48, 0x2a, 0xb3, 0x90, 0x30, - 0x6d, 0xf4, 0x0f, 0x8a, 0xe0, 0xa7, 0xe1, 0x47, 0x43, 0xce, 0x30, 0x27, 0xe6, 0x85, 0xbe, 0xea, - 0x21, 0xc7, 0x7e, 0x11, 0x81, 0x84, 0x14, 0x63, 0xa2, 0x88, 0xd5, 0x75, 0x77, 0x93, 0xd1, 0xc5, - 0xa7, 0xfb, 0xb2, 0x11, 0x95, 0x3d, 0x53, 0x39, 0x56, 0x33, 0x16, 0x73, 0x01, 0x21, 0xa7, 0xcf, - 0x74, 0x5e, 0x4d, 0xa2, 0x97, 0x59, 0x81, 0x6b, 0xd7, 0x6a, 0x38, 0x93, 0x8e, 0x9c, 0x57, 0x21, - 0x9f, 0x11, 0x62, 0x7a, 0x2e, 0xee, 0x36, 0xf4, 0xaa, 0x19, 0xd0, 0x8d, 0x31, 0xdd, 0xac, 0x6c, - 0xf0, 0x94, 0x0b, 0xb0, 0x5f, 0xf2, 0x96, 0x89, 0xab, 0x63, 0xf1, 0x5c, 0x6e, 0x81, 0xfa, 0xd9, - 0x69, 0xd7, 0x3e, 0xa1, 0x30, 0x2b, 0xda, 0x25, 0x76, 0xfa, 0x34, 0x16, 0xb2, 0x76, 0xad, 0xdd, - 0x12, 0xd3, 0xd9, 0xb6, 0x7d, 0x97, 0x73, 0x57, 0xe4, 0x5e, 0x68, 0x15, 0x15, 0xcf, 0xf4, 0x45, - 0xe7, 0x96, 0xa7, 0x9f, 0xef, 0x1b, 0x9b, 0xe3, 0xb8, 0x65, 0x69, 0x41, 0x95, 0x6c, 0x98, 0xc4, - 0xa0, 0xd6, 0x81, 0xa7, 0xaf, 0x84, 0x1b, 0x2a, 0x55, 0x77, 0xb3, 0xb9, 0x3e, 0x81, 0x6f, 0x98, - 0xac, 0xd8, 0x15, 0xbb, 0xf5, 0x39, 0x83, 0x3e, 0xb1, 0x07, 0x76, 0x27, 0x3e, 0x69, 0x24, 0x3d, - 0xe9, 0x58, 0xe8, 0xf7, 0x8f, 0xc2, 0x22, 0x8c, 0x08, 0x65, 0x8d, 0x9d, 0xa9, 0xf2, 0x12, 0x54, - 0xd9, 0x71, 0x43, 0x9e, 0x7b, 0xf1, 0x0d, 0x96, 0x12, 0xd4, 0x61, 0x01, 0xa5, 0x6d, 0xbc, 0x48, - 0x2d, 0xa8, 0x70, 0x59, 0x80, 0x8f, 0xfb, 0x30, 0x6e, 0xb9, 0x77, 0x66, 0x7c, 0x59, 0x30, 0x8e, - 0xf8, 0x18, 0x57, 0x04, 0xb4, 0x30, 0x03, 0x83, 0xbb, 0xe1, 0xfa, 0x99, 0xe0, 0x4a, 0x13, 0x3f, - 0xc9, 0x1c, 0x0c, 0x31, 0x12, 0xa3, 0xe9, 0xb8, 0x76, 0x8d, 0x05, 0x88, 0x9d, 0x69, 0x7e, 0xfe, - 0x06, 0x77, 0xaa, 0x0c, 0x85, 0xcd, 0x78, 0xa8, 0xc2, 0xdd, 0x30, 0x4a, 0x25, 0x6c, 0x0d, 0xfa, - 0xd9, 0xc2, 0x8f, 0x10, 0x72, 0xbf, 0x7a, 0x80, 0xfb, 0xde, 0x88, 0x47, 0xe0, 0xe3, 0xf5, 0xcd, - 0x44, 0x85, 0xb8, 0x18, 0xdb, 0x70, 0xff, 0x67, 0x9a, 0xca, 0x8e, 0xdf, 0x18, 0x72, 0x8f, 0xbe, - 0x15, 0x9c, 0x89, 0x39, 0x8e, 0x9c, 0x32, 0xcd, 0xc2, 0x1a, 0xec, 0xeb, 0x32, 0xb3, 0x3d, 0x70, - 0x3e, 0x26, 0x38, 0x47, 0x3b, 0x66, 0x97, 0xd2, 0x2e, 0x83, 0x94, 0x7b, 0xf3, 0xd1, 0x03, 0xe7, - 0xe3, 0x82, 0x53, 0x11, 0x58, 0x39, 0x2d, 0x94, 0xf1, 0x14, 0x0c, 0xe3, 0x4e, 0x7d, 0xdd, 0x76, - 0xc4, 0xbe, 0xb7, 0x07, 0xba, 0x27, 0x04, 0xdd, 0x90, 0x00, 0xb2, 0x5d, 0x30, 0xe5, 0xba, 0x0d, - 0x12, 0x1b, 0xb8, 0x01, 0xea, 0x81, 0xe2, 0x49, 0x41, 0x31, 0x40, 0xf5, 0x29, 0x74, 0x0a, 0xd2, - 0x15, 0x5b, 0x84, 0xe1, 0x70, 0xf8, 0x53, 0x02, 0x9e, 0x92, 0x18, 0x41, 0x51, 0xb7, 0xeb, 0x4d, - 0x93, 0xc6, 0xe8, 0x70, 0x8a, 0x2f, 0x4b, 0x0a, 0x89, 0x11, 0x14, 0xbb, 0x30, 0xeb, 0x57, 0x24, - 0x85, 0xe3, 0xb3, 0xe7, 0x9d, 0xf4, 0xac, 0xd7, 0xdc, 0xb2, 0xad, 0x5e, 0x3a, 0xf1, 0xb4, 0x60, - 0x00, 0x01, 0xa1, 0x04, 0xb7, 0x43, 0xb2, 0xd7, 0x89, 0xf8, 0xaa, 0x80, 0x27, 0x88, 0x9c, 0x01, - 0x5c, 0x67, 0x32, 0xc8, 0xd0, 0x6f, 0x2b, 0xe1, 0x14, 0x5f, 0x13, 0x14, 0x19, 0x1f, 0x4c, 0x0c, - 0xc3, 0x25, 0x8e, 0x8b, 0x5b, 0xf5, 0x1e, 0x48, 0x9e, 0x95, 0xc3, 0x10, 0x10, 0x61, 0xca, 0x75, - 0x62, 0x19, 0x9b, 0xbd, 0x31, 0x3c, 0x27, 0x4d, 0x29, 0x31, 0x94, 0x02, 0x23, 0x4f, 0x4d, 0x6f, - 0xe0, 0xe6, 0xda, 0xec, 0x69, 0x3a, 0xbe, 0x2e, 0x38, 0xd2, 0x1e, 0x48, 0x58, 0xa4, 0x69, 0xed, - 0x86, 0xe6, 0x79, 0x69, 0x11, 0x1f, 0x4c, 0x2c, 0x3d, 0xdc, 0x99, 0xd2, 0x4a, 0x62, 0x37, 0x6c, - 0xdf, 0x90, 0x4b, 0x8f, 0x63, 0x17, 0xfc, 0x8c, 0x38, 0xd3, 0x0e, 0x6e, 0xc1, 0x7b, 0xa1, 0xf9, - 0xa6, 0x9c, 0x69, 0x06, 0xa0, 0xe0, 0x33, 0xb0, 0xbf, 0x6b, 0xa8, 0xef, 0x81, 0xec, 0x5b, 0x82, - 0x6c, 0x6f, 0x97, 0x70, 0x2f, 0x42, 0xc2, 0x6e, 0x29, 0xbf, 0x2d, 0x43, 0x02, 0x69, 0xe3, 0x5a, - 0xa6, 0x65, 0xac, 0xa3, 0x6f, 0xec, 0xce, 0x6a, 0xdf, 0x91, 0x56, 0xe3, 0xd8, 0x80, 0xd5, 0x56, - 0x61, 0xaf, 0x60, 0xdc, 0xdd, 0xbc, 0xbe, 0x20, 0x03, 0x2b, 0x47, 0xaf, 0x05, 0x67, 0xf7, 0xc3, - 0x30, 0xe6, 0x99, 0x53, 0x56, 0x60, 0x8e, 0x46, 0x0f, 0x06, 0xc2, 0x99, 0x5f, 0x14, 0xcc, 0x32, - 0xe2, 0x7b, 0x25, 0x9c, 0xb3, 0xa0, 0xd7, 0x29, 0xf9, 0x69, 0xc8, 0x49, 0xf2, 0xa6, 0x85, 0x05, - 0xbe, 0x5d, 0xb1, 0x70, 0x1a, 0xcb, 0x3d, 0x50, 0x7f, 0xb7, 0x6d, 0xaa, 0xd6, 0x7c, 0x70, 0xca, - 0x5c, 0x82, 0xac, 0x57, 0x6f, 0x68, 0xd5, 0x5a, 0xdd, 0xc6, 0xd2, 0x72, 0x67, 0xc6, 0xef, 0xc9, - 0x99, 0xf2, 0x70, 0x25, 0x06, 0x2b, 0x14, 0x21, 0xc3, 0x1e, 0x7b, 0x75, 0xc9, 0xef, 0x0b, 0xa2, - 0xc1, 0x16, 0x4a, 0x04, 0x0e, 0xac, 0x94, 0xb0, 0xe6, 0xed, 0x25, 0xfe, 0xfd, 0x40, 0x06, 0x0e, - 0x01, 0xe1, 0xde, 0x37, 0xd4, 0x96, 0x89, 0x95, 0xb0, 0xcf, 0xaf, 0xb9, 0x8f, 0x5e, 0x12, 0x6b, - 0x36, 0x98, 0x88, 0x0b, 0xf3, 0xd4, 0x3c, 0xc1, 0x74, 0x19, 0x4e, 0xf6, 0xc0, 0x25, 0xcf, 0x42, - 0x81, 0x6c, 0x59, 0x38, 0x09, 0x83, 0x81, 0x54, 0x19, 0x4e, 0xf5, 0xa0, 0xa0, 0x4a, 0xfb, 0x33, - 0x65, 0xe1, 0x66, 0x88, 0xd1, 0xb4, 0x17, 0x0e, 0xff, 0x98, 0x80, 0x33, 0xf5, 0xc2, 0xff, 0x43, - 0x42, 0xa6, 0xbb, 0x70, 0xe8, 0xc7, 0x05, 0xd4, 0x83, 0x50, 0xb8, 0x4c, 0x75, 0xe1, 0xf0, 0x4f, - 0x48, 0xb8, 0x84, 0x50, 0x78, 0xef, 0x26, 0x7c, 0xe9, 0x53, 0x31, 0x11, 0xae, 0xa4, 0xed, 0xe8, - 0x37, 0x1f, 0x9e, 0xe3, 0xc2, 0xd1, 0x0f, 0x89, 0x97, 0x4b, 0x44, 0xe1, 0x56, 0x88, 0xf7, 0x68, - 0xf0, 0x4f, 0x0b, 0x28, 0xd7, 0xc7, 0x0c, 0x92, 0xf2, 0xe5, 0xb5, 0x70, 0xf8, 0x67, 0x04, 0xdc, - 0x8f, 0xa2, 0x5d, 0x17, 0x79, 0x2d, 0x9c, 0xe0, 0xb3, 0xb2, 0xeb, 0x02, 0x41, 0xcd, 0x26, 0x53, - 0x5a, 0x38, 0xfa, 0x73, 0xd2, 0xea, 0x12, 0x82, 0xab, 0x29, 0xe9, 0x85, 0xa9, 0x70, 0xfc, 0xe7, - 0x05, 0xbe, 0x85, 0xa1, 0x16, 0xf0, 0x85, 0xc9, 0x70, 0x8a, 0x2f, 0x48, 0x0b, 0xf8, 0x50, 0x74, - 0x19, 0xb5, 0xa7, 0xbe, 0x70, 0xa6, 0x2f, 0xca, 0x65, 0xd4, 0x96, 0xf9, 0xe8, 0x6c, 0xb2, 0x68, - 0x11, 0x4e, 0xf1, 0xb0, 0x9c, 0x4d, 0xa6, 0x4f, 0xbb, 0xd1, 0x9e, 0x4b, 0xc2, 0x39, 0xbe, 0x24, - 0xbb, 0xd1, 0x96, 0x4a, 0x30, 0x33, 0x29, 0x9d, 0x79, 0x24, 0x9c, 0xef, 0x11, 0xc1, 0x37, 0xdc, - 0x91, 0x46, 0x0a, 0xf7, 0xc0, 0xde, 0xee, 0x39, 0x24, 0x9c, 0xf5, 0xd1, 0x4b, 0x6d, 0x55, 0xbf, - 0x3f, 0x85, 0x60, 0xca, 0x1b, 0xed, 0x96, 0x3f, 0xc2, 0x69, 0x1f, 0xbb, 0x14, 0xdc, 0xd8, 0xf9, - 0xd3, 0x07, 0x56, 0x68, 0xd0, 0x0a, 0xdd, 0xe1, 0x5c, 0x4f, 0x08, 0x2e, 0x1f, 0x88, 0x2e, 0x0d, - 0x11, 0xb9, 0xc3, 0xf1, 0x4f, 0xca, 0xa5, 0x21, 0x10, 0x08, 0x4e, 0x58, 0x4d, 0xd3, 0xa4, 0xce, - 0xa1, 0xec, 0xfc, 0x93, 0x86, 0xdc, 0x9f, 0xde, 0x15, 0x0b, 0x43, 0x02, 0x30, 0x86, 0xc6, 0x49, - 0x6d, 0x1d, 0x6d, 0x10, 0x82, 0xfc, 0xf3, 0xbb, 0x32, 0x20, 0x50, 0x6d, 0x5c, 0x4f, 0xc0, 0x37, - 0x8d, 0xec, 0x0c, 0x3b, 0x04, 0xfb, 0x97, 0x77, 0xc5, 0x67, 0xd6, 0x16, 0xa4, 0x45, 0xc0, 0x3f, - 0xda, 0xee, 0x4c, 0xf0, 0x56, 0x90, 0x80, 0x6d, 0x34, 0x6f, 0x83, 0x01, 0xfa, 0xcb, 0x0e, 0x57, - 0xaf, 0x84, 0xa1, 0xff, 0x2a, 0xd0, 0x52, 0x9f, 0x1a, 0xac, 0x66, 0x37, 0x08, 0xde, 0x3a, 0x61, - 0xd8, 0xbf, 0x09, 0xac, 0x07, 0xa0, 0x60, 0x43, 0x77, 0xdc, 0x5e, 0xc6, 0xfd, 0x77, 0x09, 0x96, - 0x00, 0xda, 0x69, 0x7a, 0x7f, 0x8e, 0x6c, 0x85, 0x61, 0xdf, 0x96, 0x9d, 0x16, 0xfa, 0x18, 0x00, - 0x93, 0xf4, 0x96, 0xff, 0xf4, 0x20, 0x04, 0xfc, 0x0f, 0x01, 0x6e, 0x21, 0xa6, 0x0f, 0x77, 0x3f, - 0xda, 0x81, 0x39, 0x7b, 0xce, 0xe6, 0x87, 0x3a, 0xf0, 0x70, 0x1c, 0xae, 0x41, 0x1d, 0xcc, 0xaf, - 0x93, 0x7c, 0x4d, 0x7a, 0x2b, 0x72, 0xd2, 0xe3, 0x91, 0x87, 0x33, 0x9e, 0x60, 0x6c, 0x77, 0xc7, - 0x3a, 0xf9, 0x9f, 0x44, 0x21, 0x31, 0x83, 0x60, 0xfd, 0x82, 0xbe, 0xa5, 0xd4, 0x61, 0x84, 0xde, - 0xe3, 0xd2, 0x64, 0x07, 0x0c, 0xc2, 0xd1, 0xc5, 0x89, 0xdc, 0xf5, 0x13, 0xad, 0xb7, 0x4a, 0xc4, - 0x44, 0x17, 0x75, 0xf6, 0x81, 0x69, 0x3a, 0xfb, 0xca, 0xef, 0xc6, 0xf7, 0x7c, 0xf2, 0xf7, 0xe3, - 0x89, 0x85, 0xad, 0x7b, 0xaa, 0xa6, 0x43, 0xcf, 0x6c, 0x8d, 0x4e, 0x5d, 0xe5, 0xc1, 0x08, 0x1c, - 0xe8, 0xc2, 0xb1, 0x28, 0x96, 0x83, 0x38, 0xa8, 0xbd, 0xa9, 0xc7, 0x57, 0x4b, 0x18, 0xef, 0x42, - 0x3a, 0xf0, 0xfa, 0x03, 0xc6, 0xf6, 0xfa, 0x63, 0x67, 0x20, 0xb7, 0xdd, 0x48, 0xe8, 0x8f, 0xc3, - 0x70, 0xbe, 0xc5, 0x0f, 0xc6, 0xe8, 0xad, 0x72, 0xa4, 0xf5, 0x4b, 0x15, 0xfa, 0x83, 0x84, 0x61, - 0x5f, 0xef, 0xc4, 0xcb, 0x78, 0x7b, 0xa1, 0xef, 0x44, 0x64, 0x4c, 0x87, 0x43, 0x61, 0x3d, 0xfd, - 0x37, 0x5f, 0x91, 0x3f, 0x08, 0xfd, 0x5c, 0x48, 0x7f, 0xde, 0x56, 0xb2, 0xdc, 0x5b, 0x6e, 0x62, - 0x54, 0x51, 0x35, 0x5e, 0xa5, 0x0f, 0xd3, 0xf3, 0xaf, 0xbc, 0x76, 0x70, 0xcf, 0x2f, 0xf1, 0xfa, - 0x0d, 0x5e, 0xaf, 0xbe, 0x76, 0x30, 0xf2, 0x26, 0x5e, 0x6f, 0xe3, 0xf5, 0x0e, 0x5e, 0xf7, 0xbf, - 0x7e, 0x30, 0xf2, 0x1c, 0x5e, 0x2f, 0xe0, 0xf5, 0x23, 0xbc, 0x5e, 0xc2, 0xeb, 0x95, 0xd7, 0x51, - 0x1f, 0xaf, 0x57, 0xf1, 0xfe, 0x4d, 0xfc, 0xff, 0x36, 0xfe, 0x7f, 0x07, 0xaf, 0xfb, 0xff, 0x70, - 0x70, 0xcf, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x76, 0x38, 0x95, 0x63, 0x01, 0x2d, 0x00, 0x00, + // 3795 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x2d, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0x3f, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, + 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, + 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xf1, 0x4b, + 0xe7, 0xfe, 0x2d, 0x76, 0x01, 0x90, 0x0b, 0xa6, 0xe3, 0xf8, 0x89, 0xb8, 0xe7, 0x9e, 0xef, 0xdb, + 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x09, 0x3f, 0xb8, 0x0c, 0x4b, 0x6d, 0xdb, 0x6e, 0x9b, + 0x78, 0xad, 0xeb, 0xd8, 0x9e, 0xbd, 0xdf, 0x6b, 0xad, 0x35, 0xb1, 0xab, 0x3b, 0x46, 0xd7, 0xb3, + 0x9d, 0x55, 0x2a, 0x53, 0x66, 0x98, 0xc6, 0xaa, 0xd0, 0x58, 0xde, 0x86, 0xd9, 0xeb, 0x86, 0x89, + 0x37, 0x7c, 0xc5, 0x06, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x19, 0x26, 0xce, 0x4b, 0x4b, 0xf1, 0x95, + 0xcc, 0xc5, 0x47, 0x57, 0x07, 0x40, 0xab, 0x61, 0x44, 0x9d, 0x88, 0x55, 0x8a, 0x58, 0x7e, 0x33, + 0x01, 0x73, 0x23, 0x66, 0x15, 0x05, 0x12, 0x16, 0xea, 0x10, 0x46, 0x69, 0x25, 0xad, 0xd2, 0xdf, + 0x4a, 0x1e, 0xa6, 0xba, 0x48, 0xbf, 0x83, 0xda, 0x38, 0x1f, 0xa3, 0x62, 0x31, 0x54, 0x0a, 0x00, + 0x4d, 0xdc, 0xc5, 0x56, 0x13, 0x5b, 0xfa, 0x61, 0x3e, 0xbe, 0x14, 0x5f, 0x49, 0xab, 0x01, 0x89, + 0xf2, 0x14, 0xcc, 0x76, 0x7b, 0xfb, 0xa6, 0xa1, 0x6b, 0x01, 0x35, 0x58, 0x8a, 0xaf, 0x24, 0x55, + 0x99, 0x4d, 0x6c, 0xf4, 0x95, 0x2f, 0xc0, 0xcc, 0x3d, 0x8c, 0xee, 0x04, 0x55, 0x33, 0x54, 0x35, + 0x47, 0xc4, 0x01, 0xc5, 0x32, 0x64, 0x3b, 0xd8, 0x75, 0x51, 0x1b, 0x6b, 0xde, 0x61, 0x17, 0xe7, + 0x13, 0x74, 0xf5, 0x4b, 0x43, 0xab, 0x1f, 0x5c, 0x79, 0x86, 0xa3, 0x76, 0x0f, 0xbb, 0x58, 0x29, + 0x41, 0x1a, 0x5b, 0xbd, 0x0e, 0x63, 0x48, 0x1e, 0xe3, 0xbf, 0x8a, 0xd5, 0xeb, 0x0c, 0xb2, 0xa4, + 0x08, 0x8c, 0x53, 0x4c, 0xb9, 0xd8, 0xb9, 0x6b, 0xe8, 0x38, 0x3f, 0x49, 0x09, 0x2e, 0x0c, 0x11, + 0x34, 0xd8, 0xfc, 0x20, 0x87, 0xc0, 0x29, 0x65, 0x48, 0xe3, 0x17, 0x3c, 0x6c, 0xb9, 0x86, 0x6d, + 0xe5, 0xa7, 0x28, 0xc9, 0x63, 0x23, 0x76, 0x11, 0x9b, 0xcd, 0x41, 0x8a, 0x3e, 0x4e, 0xb9, 0x02, + 0x53, 0x76, 0xd7, 0x33, 0x6c, 0xcb, 0xcd, 0xa7, 0x96, 0xa4, 0x95, 0xcc, 0xc5, 0x0f, 0x8d, 0x0c, + 0x84, 0x1a, 0xd3, 0x51, 0x85, 0xb2, 0x52, 0x05, 0xd9, 0xb5, 0x7b, 0x8e, 0x8e, 0x35, 0xdd, 0x6e, + 0x62, 0xcd, 0xb0, 0x5a, 0x76, 0x3e, 0x4d, 0x09, 0xce, 0x0d, 0x2f, 0x84, 0x2a, 0x96, 0xed, 0x26, + 0xae, 0x5a, 0x2d, 0x5b, 0xcd, 0xb9, 0xa1, 0xb1, 0xb2, 0x00, 0x93, 0xee, 0xa1, 0xe5, 0xa1, 0x17, + 0xf2, 0x59, 0x1a, 0x21, 0x7c, 0xb4, 0xfc, 0xbf, 0x49, 0x98, 0x19, 0x27, 0xc4, 0xae, 0x41, 0xb2, + 0x45, 0x56, 0x99, 0x8f, 0x9d, 0xc6, 0x07, 0x0c, 0x13, 0x76, 0xe2, 0xe4, 0x8f, 0xe9, 0xc4, 0x12, + 0x64, 0x2c, 0xec, 0x7a, 0xb8, 0xc9, 0x22, 0x22, 0x3e, 0x66, 0x4c, 0x01, 0x03, 0x0d, 0x87, 0x54, + 0xe2, 0xc7, 0x0a, 0xa9, 0x9b, 0x30, 0xe3, 0x9b, 0xa4, 0x39, 0xc8, 0x6a, 0x8b, 0xd8, 0x5c, 0x8b, + 0xb2, 0x64, 0xb5, 0x22, 0x70, 0x2a, 0x81, 0xa9, 0x39, 0x1c, 0x1a, 0x2b, 0x1b, 0x00, 0xb6, 0x85, + 0xed, 0x96, 0xd6, 0xc4, 0xba, 0x99, 0x4f, 0x1d, 0xe3, 0xa5, 0x1a, 0x51, 0x19, 0xf2, 0x92, 0xcd, + 0xa4, 0xba, 0xa9, 0x3c, 0xdb, 0x0f, 0xb5, 0xa9, 0x63, 0x22, 0x65, 0x9b, 0x1d, 0xb2, 0xa1, 0x68, + 0xdb, 0x83, 0x9c, 0x83, 0x49, 0xdc, 0xe3, 0x26, 0x5f, 0x59, 0x9a, 0x1a, 0xb1, 0x1a, 0xb9, 0x32, + 0x95, 0xc3, 0xd8, 0xc2, 0xa6, 0x9d, 0xe0, 0x50, 0xf9, 0x30, 0xf8, 0x02, 0x8d, 0x86, 0x15, 0xd0, + 0x2c, 0x94, 0x15, 0xc2, 0x1d, 0xd4, 0xc1, 0x8b, 0x57, 0x21, 0x17, 0x76, 0x8f, 0x32, 0x0f, 0x49, + 0xd7, 0x43, 0x8e, 0x47, 0xa3, 0x30, 0xa9, 0xb2, 0x81, 0x22, 0x43, 0x1c, 0x5b, 0x4d, 0x9a, 0xe5, + 0x92, 0x2a, 0xf9, 0xb9, 0xf8, 0x0c, 0x4c, 0x87, 0x1e, 0x3f, 0x2e, 0x70, 0xf9, 0x8b, 0x93, 0x30, + 0x3f, 0x2a, 0xe6, 0x46, 0x86, 0xff, 0x02, 0x4c, 0x5a, 0xbd, 0xce, 0x3e, 0x76, 0xf2, 0x71, 0xca, + 0xc0, 0x47, 0x4a, 0x09, 0x92, 0x26, 0xda, 0xc7, 0x66, 0x3e, 0xb1, 0x24, 0xad, 0xe4, 0x2e, 0x3e, + 0x35, 0x56, 0x54, 0xaf, 0x6e, 0x11, 0x88, 0xca, 0x90, 0xca, 0x27, 0x20, 0xc1, 0x53, 0x1c, 0x61, + 0x78, 0x72, 0x3c, 0x06, 0x12, 0x8b, 0x2a, 0xc5, 0x29, 0x0f, 0x43, 0x9a, 0xfc, 0x65, 0xbe, 0x9d, + 0xa4, 0x36, 0xa7, 0x88, 0x80, 0xf8, 0x55, 0x59, 0x84, 0x14, 0x0d, 0xb3, 0x26, 0x16, 0xa5, 0xc1, + 0x1f, 0x93, 0x8d, 0x69, 0xe2, 0x16, 0xea, 0x99, 0x9e, 0x76, 0x17, 0x99, 0x3d, 0x4c, 0x03, 0x26, + 0xad, 0x66, 0xb9, 0xf0, 0xd3, 0x44, 0xa6, 0x9c, 0x83, 0x0c, 0x8b, 0x4a, 0xc3, 0x6a, 0xe2, 0x17, + 0x68, 0xf6, 0x49, 0xaa, 0x2c, 0x50, 0xab, 0x44, 0x42, 0x1e, 0x7f, 0xdb, 0xb5, 0x2d, 0xb1, 0xb5, + 0xf4, 0x11, 0x44, 0x40, 0x1f, 0xff, 0xcc, 0x60, 0xe2, 0x7b, 0x64, 0xf4, 0xf2, 0x06, 0x63, 0x71, + 0xf9, 0x5b, 0x31, 0x48, 0xd0, 0xf3, 0x36, 0x03, 0x99, 0xdd, 0x5b, 0xf5, 0x8a, 0xb6, 0x51, 0xdb, + 0x5b, 0xdf, 0xaa, 0xc8, 0x92, 0x92, 0x03, 0xa0, 0x82, 0xeb, 0x5b, 0xb5, 0xd2, 0xae, 0x1c, 0xf3, + 0xc7, 0xd5, 0x9d, 0xdd, 0x2b, 0x97, 0xe4, 0xb8, 0x0f, 0xd8, 0x63, 0x82, 0x44, 0x50, 0xe1, 0xe9, + 0x8b, 0x72, 0x52, 0x91, 0x21, 0xcb, 0x08, 0xaa, 0x37, 0x2b, 0x1b, 0x57, 0x2e, 0xc9, 0x93, 0x61, + 0xc9, 0xd3, 0x17, 0xe5, 0x29, 0x65, 0x1a, 0xd2, 0x54, 0xb2, 0x5e, 0xab, 0x6d, 0xc9, 0x29, 0x9f, + 0xb3, 0xb1, 0xab, 0x56, 0x77, 0x36, 0xe5, 0xb4, 0xcf, 0xb9, 0xa9, 0xd6, 0xf6, 0xea, 0x32, 0xf8, + 0x0c, 0xdb, 0x95, 0x46, 0xa3, 0xb4, 0x59, 0x91, 0x33, 0xbe, 0xc6, 0xfa, 0xad, 0xdd, 0x4a, 0x43, + 0xce, 0x86, 0xcc, 0x7a, 0xfa, 0xa2, 0x3c, 0xed, 0x3f, 0xa2, 0xb2, 0xb3, 0xb7, 0x2d, 0xe7, 0x94, + 0x59, 0x98, 0x66, 0x8f, 0x10, 0x46, 0xcc, 0x0c, 0x88, 0xae, 0x5c, 0x92, 0xe5, 0xbe, 0x21, 0x8c, + 0x65, 0x36, 0x24, 0xb8, 0x72, 0x49, 0x56, 0x96, 0xcb, 0x90, 0xa4, 0xd1, 0xa5, 0x28, 0x90, 0xdb, + 0x2a, 0xad, 0x57, 0xb6, 0xb4, 0x5a, 0x7d, 0xb7, 0x5a, 0xdb, 0x29, 0x6d, 0xc9, 0x52, 0x5f, 0xa6, + 0x56, 0x3e, 0xb5, 0x57, 0x55, 0x2b, 0x1b, 0x72, 0x2c, 0x28, 0xab, 0x57, 0x4a, 0xbb, 0x95, 0x0d, + 0x39, 0xbe, 0xac, 0xc3, 0xfc, 0xa8, 0x3c, 0x33, 0xf2, 0x64, 0x04, 0xb6, 0x38, 0x76, 0xcc, 0x16, + 0x53, 0xae, 0xa1, 0x2d, 0xfe, 0x8a, 0x04, 0x73, 0x23, 0x72, 0xed, 0xc8, 0x87, 0x3c, 0x07, 0x49, + 0x16, 0xa2, 0xac, 0xfa, 0x3c, 0x31, 0x32, 0x69, 0xd3, 0x80, 0x1d, 0xaa, 0x40, 0x14, 0x17, 0xac, + 0xc0, 0xf1, 0x63, 0x2a, 0x30, 0xa1, 0x18, 0x32, 0xf2, 0x25, 0x09, 0xf2, 0xc7, 0x71, 0x47, 0x24, + 0x8a, 0x58, 0x28, 0x51, 0x5c, 0x1b, 0x34, 0xe0, 0xfc, 0xf1, 0x6b, 0x18, 0xb2, 0xe2, 0x35, 0x09, + 0x16, 0x46, 0x37, 0x2a, 0x23, 0x6d, 0xf8, 0x04, 0x4c, 0x76, 0xb0, 0x77, 0x60, 0x8b, 0x62, 0xfd, + 0xf8, 0x88, 0x12, 0x40, 0xa6, 0x07, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3f, 0xae, 0xdb, 0x60, + 0xd6, 0x0c, 0x59, 0xfa, 0xf9, 0x18, 0x3c, 0x34, 0x92, 0x7c, 0xa4, 0xa1, 0x8f, 0x00, 0x18, 0x56, + 0xb7, 0xe7, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x9a, 0x4a, 0xe8, 0xd9, 0x27, 0xb9, 0xa7, 0xe7, 0xf9, + 0xf3, 0x71, 0x3a, 0x0f, 0x4c, 0x44, 0x15, 0xae, 0xf6, 0x0d, 0x4d, 0x50, 0x43, 0x0b, 0xc7, 0xac, + 0x74, 0xa8, 0xd6, 0x7d, 0x0c, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0x69, 0xae, 0xe7, 0x60, 0xd4, 0x31, + 0xac, 0x36, 0x4d, 0xc0, 0xa9, 0x62, 0xb2, 0x85, 0x4c, 0x17, 0xab, 0x33, 0x6c, 0xba, 0x21, 0x66, + 0x09, 0x82, 0x56, 0x19, 0x27, 0x80, 0x98, 0x0c, 0x21, 0xd8, 0xb4, 0x8f, 0x58, 0xfe, 0xfa, 0x14, + 0x64, 0x02, 0x6d, 0x9d, 0x72, 0x1e, 0xb2, 0xb7, 0xd1, 0x5d, 0xa4, 0x89, 0x56, 0x9d, 0x79, 0x22, + 0x43, 0x64, 0x75, 0xde, 0xae, 0x7f, 0x0c, 0xe6, 0xa9, 0x8a, 0xdd, 0xf3, 0xb0, 0xa3, 0xe9, 0x26, + 0x72, 0x5d, 0xea, 0xb4, 0x14, 0x55, 0x55, 0xc8, 0x5c, 0x8d, 0x4c, 0x95, 0xc5, 0x8c, 0x72, 0x19, + 0xe6, 0x28, 0xa2, 0xd3, 0x33, 0x3d, 0xa3, 0x6b, 0x62, 0x8d, 0xbc, 0x3c, 0xb8, 0x34, 0x11, 0xfb, + 0x96, 0xcd, 0x12, 0x8d, 0x6d, 0xae, 0x40, 0x2c, 0x72, 0x95, 0x0d, 0x78, 0x84, 0xc2, 0xda, 0xd8, + 0xc2, 0x0e, 0xf2, 0xb0, 0x86, 0x3f, 0xdb, 0x43, 0xa6, 0xab, 0x21, 0xab, 0xa9, 0x1d, 0x20, 0xf7, + 0x20, 0x3f, 0x4f, 0x08, 0xd6, 0x63, 0x79, 0x49, 0x3d, 0x4b, 0x14, 0x37, 0xb9, 0x5e, 0x85, 0xaa, + 0x95, 0xac, 0xe6, 0x27, 0x91, 0x7b, 0xa0, 0x14, 0x61, 0x81, 0xb2, 0xb8, 0x9e, 0x63, 0x58, 0x6d, + 0x4d, 0x3f, 0xc0, 0xfa, 0x1d, 0xad, 0xe7, 0xb5, 0xae, 0xe6, 0x1f, 0x0e, 0x3e, 0x9f, 0x5a, 0xd8, + 0xa0, 0x3a, 0x65, 0xa2, 0xb2, 0xe7, 0xb5, 0xae, 0x2a, 0x0d, 0xc8, 0x92, 0xcd, 0xe8, 0x18, 0x2f, + 0x62, 0xad, 0x65, 0x3b, 0xb4, 0xb2, 0xe4, 0x46, 0x9c, 0xec, 0x80, 0x07, 0x57, 0x6b, 0x1c, 0xb0, + 0x6d, 0x37, 0x71, 0x31, 0xd9, 0xa8, 0x57, 0x2a, 0x1b, 0x6a, 0x46, 0xb0, 0x5c, 0xb7, 0x1d, 0x12, + 0x50, 0x6d, 0xdb, 0x77, 0x70, 0x86, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x0c, 0x73, 0xba, 0xce, + 0xd6, 0x6c, 0xe8, 0x1a, 0x6f, 0xf1, 0xdd, 0xbc, 0x1c, 0x72, 0x96, 0xae, 0x6f, 0x32, 0x05, 0x1e, + 0xe3, 0xae, 0xf2, 0x2c, 0x3c, 0xd4, 0x77, 0x56, 0x10, 0x38, 0x3b, 0xb4, 0xca, 0x41, 0xe8, 0x65, + 0x98, 0xeb, 0x1e, 0x0e, 0x03, 0x95, 0xd0, 0x13, 0xbb, 0x87, 0x83, 0xb0, 0xc7, 0xe8, 0x6b, 0x9b, + 0x83, 0x75, 0xe4, 0xe1, 0x66, 0xfe, 0x4c, 0x50, 0x3b, 0x30, 0xa1, 0xac, 0x81, 0xac, 0xeb, 0x1a, + 0xb6, 0xd0, 0xbe, 0x89, 0x35, 0xe4, 0x60, 0x0b, 0xb9, 0xf9, 0x73, 0x41, 0xe5, 0x9c, 0xae, 0x57, + 0xe8, 0x6c, 0x89, 0x4e, 0x2a, 0x4f, 0xc2, 0xac, 0xbd, 0x7f, 0x5b, 0x67, 0x91, 0xa5, 0x75, 0x1d, + 0xdc, 0x32, 0x5e, 0xc8, 0x3f, 0x4a, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, 0xa9, 0x58, 0x79, + 0x02, 0x64, 0xdd, 0x3d, 0x40, 0x4e, 0x97, 0x96, 0x76, 0xb7, 0x8b, 0x74, 0x9c, 0x7f, 0x8c, 0xa9, + 0x32, 0xf9, 0x8e, 0x10, 0x93, 0xc8, 0x76, 0xef, 0x19, 0x2d, 0x4f, 0x30, 0x5e, 0x60, 0x91, 0x4d, + 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x2c, 0xc3, 0xf2, 0xb0, 0xd3, 0x75, 0x30, 0x69, 0xe2, 0xd9, + 0x49, 0xcc, 0xff, 0xcb, 0xd4, 0x31, 0x6d, 0xf8, 0x5e, 0x50, 0x9b, 0x05, 0x80, 0x3a, 0xd7, 0x1b, + 0x16, 0x2e, 0x17, 0x21, 0x1b, 0x8c, 0x0b, 0x25, 0x0d, 0x2c, 0x32, 0x64, 0x89, 0xd4, 0xd8, 0x72, + 0x6d, 0x83, 0x54, 0xc7, 0xcf, 0x54, 0xe4, 0x18, 0xa9, 0xd2, 0x5b, 0xd5, 0xdd, 0x8a, 0xa6, 0xee, + 0xed, 0xec, 0x56, 0xb7, 0x2b, 0x72, 0xfc, 0xc9, 0x74, 0xea, 0xad, 0x29, 0xf9, 0xfe, 0xfd, 0xfb, + 0xf7, 0x63, 0xcb, 0xdf, 0x8d, 0x41, 0x2e, 0xdc, 0x19, 0x2b, 0x3f, 0x05, 0x67, 0xc4, 0x6b, 0xac, + 0x8b, 0x3d, 0xed, 0x9e, 0xe1, 0xd0, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe7, 0x5a, + 0x0d, 0xec, 0x3d, 0x6f, 0x38, 0x24, 0x10, 0x3b, 0xc8, 0x53, 0xb6, 0xe0, 0x9c, 0x65, 0x6b, 0xae, + 0x87, 0xac, 0x26, 0x72, 0x9a, 0x5a, 0xff, 0x02, 0x41, 0x43, 0xba, 0x8e, 0x5d, 0xd7, 0x66, 0x25, + 0xc2, 0x67, 0xf9, 0x90, 0x65, 0x37, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb8, 0xea, 0x40, 0x44, 0xc4, + 0x8f, 0x8b, 0x88, 0x87, 0x21, 0xdd, 0x41, 0x5d, 0x0d, 0x5b, 0x9e, 0x73, 0x48, 0xfb, 0xb9, 0x94, + 0x9a, 0xea, 0xa0, 0x6e, 0x85, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfa, 0xf1, 0x1f, 0xe3, 0x90, 0x0d, + 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xf0, 0x89, 0x1d, 0xe0, 0x6a, + 0x99, 0x24, 0xf6, 0xe2, 0x24, 0xeb, 0xb4, 0x54, 0x86, 0x24, 0x45, 0x95, 0x9c, 0x69, 0xcc, 0xfa, + 0xf7, 0x94, 0xca, 0x47, 0xca, 0x26, 0x4c, 0xde, 0x76, 0x29, 0xf7, 0x24, 0xe5, 0x7e, 0xf4, 0x64, + 0xee, 0x1b, 0x0d, 0x4a, 0x9e, 0xbe, 0xd1, 0xd0, 0x76, 0x6a, 0xea, 0x76, 0x69, 0x4b, 0xe5, 0x70, + 0xe5, 0x2c, 0x24, 0x4c, 0xf4, 0xe2, 0x61, 0xb8, 0x04, 0x50, 0xd1, 0xb8, 0x8e, 0x3f, 0x0b, 0x89, + 0x7b, 0x18, 0xdd, 0x09, 0x27, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0x7f, 0x0d, 0x92, 0xd4, 0x5f, 0x0a, + 0x00, 0xf7, 0x98, 0x3c, 0xa1, 0xa4, 0x20, 0x51, 0xae, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, + 0x56, 0xaf, 0x56, 0xca, 0x15, 0x39, 0xb6, 0x7c, 0x19, 0x26, 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdd, + 0x20, 0x4f, 0xf0, 0x21, 0xe7, 0x90, 0xc4, 0xec, 0xde, 0xf6, 0x7a, 0x45, 0x95, 0x63, 0xc1, 0xed, + 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x32, 0x31, 0xf5, 0xd7, 0x12, 0x64, 0x02, 0xed, 0x19, 0x69, + 0x0c, 0x90, 0x69, 0xda, 0xf7, 0x34, 0x64, 0x1a, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0x54, 0x22, 0x92, + 0x71, 0x37, 0xed, 0x27, 0x62, 0xfc, 0xab, 0x12, 0xc8, 0x83, 0xad, 0xdd, 0x80, 0x81, 0xd2, 0x07, + 0x6a, 0xe0, 0x2b, 0x12, 0xe4, 0xc2, 0xfd, 0xdc, 0x80, 0x79, 0xe7, 0x3f, 0x50, 0xf3, 0xde, 0x88, + 0xc1, 0x74, 0xa8, 0x8b, 0x1b, 0xd7, 0xba, 0xcf, 0xc2, 0xac, 0xd1, 0xc4, 0x9d, 0xae, 0xed, 0x61, + 0x4b, 0x3f, 0xd4, 0x4c, 0x7c, 0x17, 0x9b, 0xf9, 0x65, 0x9a, 0x28, 0xd6, 0x4e, 0xee, 0x13, 0x57, + 0xab, 0x7d, 0xdc, 0x16, 0x81, 0x15, 0xe7, 0xaa, 0x1b, 0x95, 0xed, 0x7a, 0x6d, 0xb7, 0xb2, 0x53, + 0xbe, 0xa5, 0xed, 0xed, 0xfc, 0xf4, 0x4e, 0xed, 0xf9, 0x1d, 0x55, 0x36, 0x06, 0xd4, 0xde, 0xc7, + 0xa3, 0x5e, 0x07, 0x79, 0xd0, 0x28, 0xe5, 0x0c, 0x8c, 0x32, 0x4b, 0x9e, 0x50, 0xe6, 0x60, 0x66, + 0xa7, 0xa6, 0x35, 0xaa, 0x1b, 0x15, 0xad, 0x72, 0xfd, 0x7a, 0xa5, 0xbc, 0xdb, 0x60, 0x2f, 0xce, + 0xbe, 0xf6, 0x6e, 0xf8, 0x50, 0xbf, 0x1c, 0x87, 0xb9, 0x11, 0x96, 0x28, 0x25, 0xde, 0xb3, 0xb3, + 0xd7, 0x88, 0x8f, 0x8e, 0x63, 0xfd, 0x2a, 0xe9, 0x0a, 0xea, 0xc8, 0xf1, 0x78, 0x8b, 0xff, 0x04, + 0x10, 0x2f, 0x59, 0x9e, 0xd1, 0x32, 0xb0, 0xc3, 0xef, 0x19, 0x58, 0x23, 0x3f, 0xd3, 0x97, 0xb3, + 0xab, 0x86, 0x8f, 0x80, 0xd2, 0xb5, 0x5d, 0xc3, 0x33, 0xee, 0x62, 0xcd, 0xb0, 0xc4, 0xa5, 0x04, + 0x69, 0xec, 0x13, 0xaa, 0x2c, 0x66, 0xaa, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0x8d, 0x06, 0xb4, 0x49, + 0x02, 0x8f, 0xab, 0xb2, 0x98, 0xf1, 0xb5, 0xcf, 0x43, 0xb6, 0x69, 0xf7, 0x48, 0x9b, 0xc4, 0xf4, + 0x48, 0xbd, 0x90, 0xd4, 0x0c, 0x93, 0xf9, 0x2a, 0xbc, 0x8f, 0xed, 0xdf, 0x86, 0x64, 0xd5, 0x0c, + 0x93, 0x31, 0x95, 0x0b, 0x30, 0x83, 0xda, 0x6d, 0x87, 0x90, 0x0b, 0x22, 0xd6, 0x99, 0xe7, 0x7c, + 0x31, 0x55, 0x5c, 0xbc, 0x01, 0x29, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, 0xb4, 0x2e, 0xbb, 0x93, + 0x8a, 0xad, 0xa4, 0xd5, 0x94, 0x25, 0x26, 0xcf, 0x43, 0xd6, 0x70, 0xb5, 0xfe, 0xe5, 0x68, 0x6c, + 0x29, 0xb6, 0x92, 0x52, 0x33, 0x86, 0xeb, 0xdf, 0x86, 0x2d, 0xbf, 0x16, 0x83, 0x5c, 0xf8, 0x72, + 0x57, 0xd9, 0x80, 0x94, 0x69, 0xeb, 0x88, 0x86, 0x16, 0xfb, 0xb2, 0xb0, 0x12, 0x71, 0x1f, 0xbc, + 0xba, 0xc5, 0xf5, 0x55, 0x1f, 0xb9, 0xf8, 0xf7, 0x12, 0xa4, 0x84, 0x58, 0x59, 0x80, 0x44, 0x17, + 0x79, 0x07, 0x94, 0x2e, 0xb9, 0x1e, 0x93, 0x25, 0x95, 0x8e, 0x89, 0xdc, 0xed, 0x22, 0x8b, 0x86, + 0x00, 0x97, 0x93, 0x31, 0xd9, 0x57, 0x13, 0xa3, 0x26, 0x6d, 0xfb, 0xed, 0x4e, 0x07, 0x5b, 0x9e, + 0x2b, 0xf6, 0x95, 0xcb, 0xcb, 0x5c, 0xac, 0x3c, 0x05, 0xb3, 0x9e, 0x83, 0x0c, 0x33, 0xa4, 0x9b, + 0xa0, 0xba, 0xb2, 0x98, 0xf0, 0x95, 0x8b, 0x70, 0x56, 0xf0, 0x36, 0xb1, 0x87, 0xf4, 0x03, 0xdc, + 0xec, 0x83, 0x26, 0xe9, 0xcd, 0xe1, 0x19, 0xae, 0xb0, 0xc1, 0xe7, 0x05, 0x76, 0xf9, 0xfb, 0x12, + 0xcc, 0x8a, 0x17, 0x95, 0xa6, 0xef, 0xac, 0x6d, 0x00, 0x64, 0x59, 0xb6, 0x17, 0x74, 0xd7, 0x70, + 0x28, 0x0f, 0xe1, 0x56, 0x4b, 0x3e, 0x48, 0x0d, 0x10, 0x2c, 0x76, 0x00, 0xfa, 0x33, 0xc7, 0xba, + 0xed, 0x1c, 0x64, 0xf8, 0xcd, 0x3d, 0xfd, 0xfc, 0xc3, 0x5e, 0x6d, 0x81, 0x89, 0xc8, 0x1b, 0x8d, + 0x32, 0x0f, 0xc9, 0x7d, 0xdc, 0x36, 0x2c, 0x7e, 0x9f, 0xc8, 0x06, 0xe2, 0x96, 0x32, 0xe1, 0xdf, + 0x52, 0xae, 0xdf, 0x84, 0x39, 0xdd, 0xee, 0x0c, 0x9a, 0xbb, 0x2e, 0x0f, 0xbc, 0x5e, 0xbb, 0x9f, + 0x94, 0x3e, 0x03, 0xfd, 0x16, 0xf3, 0x2b, 0xb1, 0xf8, 0x66, 0x7d, 0xfd, 0x6b, 0xb1, 0xc5, 0x4d, + 0x86, 0xab, 0x8b, 0x65, 0xaa, 0xb8, 0x65, 0x62, 0x9d, 0x98, 0x0e, 0x3f, 0x7c, 0x1c, 0x3e, 0xda, + 0x36, 0xbc, 0x83, 0xde, 0xfe, 0xaa, 0x6e, 0x77, 0xd6, 0xda, 0x76, 0xdb, 0xee, 0x7f, 0xee, 0x22, + 0x23, 0x3a, 0xa0, 0xbf, 0xf8, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8c, 0xfc, 0x3e, 0x56, 0xdc, 0x81, + 0x39, 0xae, 0xac, 0xd1, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x9c, 0x78, 0xef, 0x92, 0xff, 0xe6, 0x9b, + 0xb4, 0x56, 0xab, 0xb3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x44, 0x51, 0x85, 0x87, 0x42, 0x7c, 0xec, + 0x5c, 0x62, 0x27, 0x82, 0xf1, 0xbb, 0x9c, 0x71, 0x2e, 0xc0, 0xd8, 0xe0, 0xd0, 0x62, 0x19, 0xa6, + 0x4f, 0xc3, 0xf5, 0xb7, 0x9c, 0x2b, 0x8b, 0x83, 0x24, 0x9b, 0x30, 0x43, 0x49, 0xf4, 0x9e, 0xeb, + 0xd9, 0x1d, 0x9a, 0xf4, 0x4e, 0xa6, 0xf9, 0xbb, 0x37, 0xd9, 0x41, 0xc9, 0x11, 0x58, 0xd9, 0x47, + 0x15, 0x8b, 0x40, 0x3f, 0x33, 0x34, 0xb1, 0x6e, 0x46, 0x30, 0xbc, 0xce, 0x0d, 0xf1, 0xf5, 0x8b, + 0x9f, 0x86, 0x79, 0xf2, 0x9b, 0xe6, 0xa4, 0xa0, 0x25, 0xd1, 0xb7, 0x4c, 0xf9, 0xef, 0xbf, 0xc4, + 0xce, 0xe2, 0x9c, 0x4f, 0x10, 0xb0, 0x29, 0xb0, 0x8b, 0x6d, 0xec, 0x79, 0xd8, 0x71, 0x35, 0x64, + 0x8e, 0x32, 0x2f, 0xf0, 0x9a, 0x9e, 0xff, 0xd2, 0xdb, 0xe1, 0x5d, 0xdc, 0x64, 0xc8, 0x92, 0x69, + 0x16, 0xf7, 0xe0, 0xcc, 0x88, 0xa8, 0x18, 0x83, 0xf3, 0x65, 0xce, 0x39, 0x3f, 0x14, 0x19, 0x84, + 0xb6, 0x0e, 0x42, 0xee, 0xef, 0xe5, 0x18, 0x9c, 0xbf, 0xcd, 0x39, 0x15, 0x8e, 0x15, 0x5b, 0x4a, + 0x18, 0x6f, 0xc0, 0xec, 0x5d, 0xec, 0xec, 0xdb, 0x2e, 0xbf, 0x1a, 0x19, 0x83, 0xee, 0x15, 0x4e, + 0x37, 0xc3, 0x81, 0xf4, 0xae, 0x84, 0x70, 0x3d, 0x0b, 0xa9, 0x16, 0xd2, 0xf1, 0x18, 0x14, 0x5f, + 0xe6, 0x14, 0x53, 0x44, 0x9f, 0x40, 0x4b, 0x90, 0x6d, 0xdb, 0xbc, 0x2c, 0x45, 0xc3, 0x5f, 0xe5, + 0xf0, 0x8c, 0xc0, 0x70, 0x8a, 0xae, 0xdd, 0xed, 0x99, 0xa4, 0x66, 0x45, 0x53, 0xfc, 0x8e, 0xa0, + 0x10, 0x18, 0x4e, 0x71, 0x0a, 0xb7, 0xfe, 0xae, 0xa0, 0x70, 0x03, 0xfe, 0x7c, 0x0e, 0x32, 0xb6, + 0x65, 0x1e, 0xda, 0xd6, 0x38, 0x46, 0xfc, 0x1e, 0x67, 0x00, 0x0e, 0x21, 0x04, 0xd7, 0x20, 0x3d, + 0xee, 0x46, 0xfc, 0xfe, 0xdb, 0xe2, 0x78, 0x88, 0x1d, 0xd8, 0x84, 0x19, 0x91, 0xa0, 0x0c, 0xdb, + 0x1a, 0x83, 0xe2, 0x0f, 0x38, 0x45, 0x2e, 0x00, 0xe3, 0xcb, 0xf0, 0xb0, 0xeb, 0xb5, 0xf1, 0x38, + 0x24, 0xaf, 0x89, 0x65, 0x70, 0x08, 0x77, 0xe5, 0x3e, 0xb6, 0xf4, 0x83, 0xf1, 0x18, 0xbe, 0x2a, + 0x5c, 0x29, 0x30, 0x84, 0xa2, 0x0c, 0xd3, 0x1d, 0xe4, 0xb8, 0x07, 0xc8, 0x1c, 0x6b, 0x3b, 0xfe, + 0x90, 0x73, 0x64, 0x7d, 0x10, 0xf7, 0x48, 0xcf, 0x3a, 0x0d, 0xcd, 0xd7, 0x84, 0x47, 0x02, 0x30, + 0x7e, 0xf4, 0x5c, 0x8f, 0x5e, 0x40, 0x9d, 0x86, 0xed, 0xeb, 0xe2, 0xe8, 0x31, 0xec, 0x76, 0x90, + 0xf1, 0x1a, 0xa4, 0x5d, 0xe3, 0xc5, 0xb1, 0x68, 0xfe, 0x48, 0xec, 0x34, 0x05, 0x10, 0xf0, 0x2d, + 0x38, 0x3b, 0xb2, 0x4c, 0x8c, 0x41, 0xf6, 0xc7, 0x9c, 0x6c, 0x61, 0x44, 0xa9, 0xe0, 0x29, 0xe1, + 0xb4, 0x94, 0x7f, 0x22, 0x52, 0x02, 0x1e, 0xe0, 0xaa, 0x93, 0x17, 0x05, 0x17, 0xb5, 0x4e, 0xe7, + 0xb5, 0x3f, 0x15, 0x5e, 0x63, 0xd8, 0x90, 0xd7, 0x76, 0x61, 0x81, 0x33, 0x9e, 0x6e, 0x5f, 0xbf, + 0x21, 0x12, 0x2b, 0x43, 0xef, 0x85, 0x77, 0xf7, 0x67, 0x60, 0xd1, 0x77, 0xa7, 0xe8, 0x48, 0x5d, + 0xad, 0x83, 0xba, 0x63, 0x30, 0x7f, 0x93, 0x33, 0x8b, 0x8c, 0xef, 0xb7, 0xb4, 0xee, 0x36, 0xea, + 0x12, 0xf2, 0x9b, 0x90, 0x17, 0xe4, 0x3d, 0xcb, 0xc1, 0xba, 0xdd, 0xb6, 0x8c, 0x17, 0x71, 0x73, + 0x0c, 0xea, 0x3f, 0x1b, 0xd8, 0xaa, 0xbd, 0x00, 0x9c, 0x30, 0x57, 0x41, 0xf6, 0x7b, 0x15, 0xcd, + 0xe8, 0x74, 0x6d, 0xc7, 0x8b, 0x60, 0xfc, 0x73, 0xb1, 0x53, 0x3e, 0xae, 0x4a, 0x61, 0xc5, 0x0a, + 0xe4, 0xe8, 0x70, 0xdc, 0x90, 0xfc, 0x0b, 0x4e, 0x34, 0xdd, 0x47, 0xf1, 0xc4, 0xa1, 0xdb, 0x9d, + 0x2e, 0x72, 0xc6, 0xc9, 0x7f, 0x7f, 0x29, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, 0x1d, 0x76, 0x31, + 0xa9, 0xf6, 0x63, 0x30, 0x7c, 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x83, 0xe2, + 0xaf, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0xf5, 0x0b, 0xad, 0x83, 0xdb, 0x86, 0xeb, 0x39, 0xac, + 0x0f, 0x3e, 0x99, 0xea, 0xdb, 0x6f, 0x87, 0x9b, 0x30, 0x35, 0x00, 0x2d, 0xde, 0x80, 0x99, 0x81, + 0x16, 0x43, 0x89, 0xfa, 0x9f, 0x85, 0xfc, 0xcf, 0xbe, 0xcb, 0x93, 0x51, 0xb8, 0xc3, 0x28, 0x6e, + 0x91, 0x7d, 0x0f, 0xf7, 0x01, 0xd1, 0x64, 0x2f, 0xbd, 0xeb, 0x6f, 0x7d, 0xa8, 0x0d, 0x28, 0x5e, + 0x87, 0xe9, 0x50, 0x0f, 0x10, 0x4d, 0xf5, 0x39, 0x4e, 0x95, 0x0d, 0xb6, 0x00, 0xc5, 0xcb, 0x90, + 0x20, 0xf5, 0x3c, 0x1a, 0xfe, 0x73, 0x1c, 0x4e, 0xd5, 0x8b, 0x1f, 0x87, 0x94, 0xa8, 0xe3, 0xd1, + 0xd0, 0x9f, 0xe7, 0x50, 0x1f, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x41, 0xc0, 0x05, 0x84, + 0xc0, 0xc7, 0x77, 0xe1, 0x77, 0x7e, 0x29, 0xc1, 0xf3, 0xb0, 0xf0, 0xdd, 0x35, 0x98, 0xe2, 0xc5, + 0x3b, 0x1a, 0xfd, 0x79, 0xfe, 0x70, 0x81, 0x28, 0x3e, 0x03, 0xc9, 0x31, 0x1d, 0xfe, 0xcb, 0x1c, + 0xca, 0xf4, 0x8b, 0x65, 0xc8, 0x04, 0x0a, 0x76, 0x34, 0xfc, 0x57, 0x38, 0x3c, 0x88, 0x22, 0xa6, + 0xf3, 0x82, 0x1d, 0x4d, 0xf0, 0xab, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1a, 0xfd, + 0x6b, 0xc2, 0xeb, 0x02, 0x52, 0x7c, 0x0e, 0xd2, 0x7e, 0xfe, 0x8d, 0xc6, 0xff, 0x3a, 0xc7, 0xf7, + 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4d, 0xf1, 0x1b, 0xc2, 0x03, 0x01, 0x14, 0x39, 0x46, 0x83, + 0x35, 0x3d, 0x9a, 0xe9, 0x37, 0xc5, 0x31, 0x1a, 0x28, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa6, + 0xf8, 0x82, 0xd8, 0x4d, 0xaa, 0x4f, 0xcc, 0x18, 0x2c, 0x92, 0xd1, 0x1c, 0xbf, 0x25, 0xcc, 0x18, + 0xa8, 0x91, 0xc5, 0x3a, 0x28, 0xc3, 0x05, 0x32, 0x9a, 0xef, 0x8b, 0x9c, 0x6f, 0x76, 0xa8, 0x3e, + 0x16, 0x9f, 0x87, 0x85, 0xd1, 0xc5, 0x31, 0x9a, 0xf5, 0x4b, 0xef, 0x0e, 0xbc, 0xce, 0x04, 0x6b, + 0x63, 0x71, 0xb7, 0x9f, 0x65, 0x83, 0x85, 0x31, 0x9a, 0xf6, 0xe5, 0x77, 0xc3, 0x89, 0x36, 0x58, + 0x17, 0x8b, 0x25, 0x80, 0x7e, 0x4d, 0x8a, 0xe6, 0x7a, 0x85, 0x73, 0x05, 0x40, 0xe4, 0x68, 0xf0, + 0x92, 0x14, 0x8d, 0xff, 0xb2, 0x38, 0x1a, 0x1c, 0x41, 0x8e, 0x86, 0xa8, 0x46, 0xd1, 0xe8, 0x57, + 0xc5, 0xd1, 0x10, 0x90, 0xe2, 0x35, 0x48, 0x59, 0x3d, 0xd3, 0x24, 0xb1, 0xa5, 0x9c, 0xfc, 0x6f, + 0x44, 0xf9, 0x7f, 0x7d, 0x8f, 0x83, 0x05, 0xa0, 0x78, 0x19, 0x92, 0xb8, 0xb3, 0x8f, 0x9b, 0x51, + 0xc8, 0x7f, 0x7b, 0x4f, 0xe4, 0x13, 0xa2, 0x5d, 0x7c, 0x0e, 0x80, 0xbd, 0x4c, 0xd3, 0xaf, 0x44, + 0x11, 0xd8, 0x7f, 0x7f, 0x8f, 0xff, 0x87, 0x42, 0x1f, 0xd2, 0x27, 0x60, 0xff, 0xef, 0x70, 0x32, + 0xc1, 0xdb, 0x61, 0x02, 0xfa, 0x02, 0xfe, 0x2c, 0x4c, 0xdd, 0x76, 0x6d, 0xcb, 0x43, 0xed, 0x28, + 0xf4, 0x7f, 0x70, 0xb4, 0xd0, 0x27, 0x0e, 0xeb, 0xd8, 0x0e, 0xf6, 0x50, 0xdb, 0x8d, 0xc2, 0xfe, + 0x27, 0xc7, 0xfa, 0x00, 0x02, 0xd6, 0x91, 0xeb, 0x8d, 0xb3, 0xee, 0xff, 0x12, 0x60, 0x01, 0x20, + 0x46, 0x93, 0xdf, 0x77, 0xf0, 0x61, 0x14, 0xf6, 0x1d, 0x61, 0x34, 0xd7, 0x2f, 0x7e, 0x1c, 0xd2, + 0xe4, 0x27, 0xfb, 0xaf, 0x9d, 0x08, 0xf0, 0x7f, 0x73, 0x70, 0x1f, 0x41, 0x9e, 0xec, 0x7a, 0x4d, + 0xcf, 0x88, 0x76, 0xf6, 0xff, 0xf0, 0x9d, 0x16, 0xfa, 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, + 0xf1, 0x8e, 0x26, 0x02, 0xfe, 0xc3, 0xf7, 0xfc, 0x97, 0x5c, 0x1f, 0xb3, 0x7e, 0x7e, 0xf4, 0x65, + 0x1d, 0x6c, 0xda, 0x9b, 0x36, 0xbb, 0xa6, 0x83, 0x2f, 0x24, 0xe1, 0x71, 0xdd, 0xee, 0xec, 0xdb, + 0xee, 0x1a, 0x4b, 0x28, 0x7e, 0x3a, 0x59, 0xf3, 0x57, 0x21, 0xae, 0xdb, 0x7c, 0xc1, 0xe2, 0xe9, + 0x2e, 0xea, 0x96, 0xff, 0x26, 0x0e, 0xa9, 0x32, 0x72, 0x3d, 0x74, 0x0f, 0x1d, 0x2a, 0x5d, 0x98, + 0x23, 0xbf, 0xb7, 0x51, 0x97, 0x5e, 0xfb, 0xf0, 0x73, 0xc6, 0x2f, 0x42, 0x3f, 0xb2, 0xda, 0x7f, + 0xaa, 0x40, 0xac, 0x8e, 0x50, 0xa7, 0x1f, 0x90, 0xd7, 0xe5, 0xd7, 0xff, 0xe9, 0xdc, 0xc4, 0x2f, + 0xfe, 0xf3, 0xb9, 0xd4, 0xf6, 0xe1, 0xf3, 0x86, 0xe9, 0xda, 0x96, 0x3a, 0x8a, 0x5a, 0xf9, 0x9c, + 0x04, 0x0f, 0x8f, 0x90, 0xef, 0xf0, 0xc3, 0xc8, 0x3f, 0x27, 0x5c, 0x1a, 0xf3, 0xd1, 0x02, 0xc6, + 0x4c, 0xc8, 0x86, 0x1e, 0x7f, 0xd2, 0x63, 0x16, 0x6f, 0x41, 0xfe, 0xb8, 0x95, 0x28, 0x32, 0xc4, + 0xef, 0xe0, 0x43, 0xfe, 0x2f, 0xa2, 0xe4, 0xa7, 0x72, 0xa1, 0xff, 0x2f, 0x66, 0xd2, 0x4a, 0xe6, + 0xe2, 0x6c, 0xc0, 0x3a, 0xfe, 0x30, 0x36, 0x5f, 0x8c, 0x5d, 0x95, 0x16, 0x11, 0x2c, 0x45, 0x59, + 0xfa, 0xff, 0x7c, 0xc4, 0x72, 0x01, 0x26, 0x99, 0x50, 0x99, 0x87, 0x64, 0xd5, 0xf2, 0xae, 0x5c, + 0xa2, 0x54, 0x71, 0x95, 0x0d, 0xd6, 0xb7, 0x5e, 0x7f, 0x50, 0x98, 0xf8, 0xde, 0x83, 0xc2, 0xc4, + 0x3f, 0x3c, 0x28, 0x4c, 0xbc, 0xf1, 0xa0, 0x20, 0xbd, 0xf5, 0xa0, 0x20, 0xbd, 0xf3, 0xa0, 0x20, + 0xfd, 0xe8, 0x41, 0x41, 0xba, 0x7f, 0x54, 0x90, 0xbe, 0x7a, 0x54, 0x90, 0xbe, 0x71, 0x54, 0x90, + 0xbe, 0x7d, 0x54, 0x90, 0xbe, 0x73, 0x54, 0x90, 0x5e, 0x3f, 0x2a, 0x4c, 0x7c, 0xef, 0xa8, 0x30, + 0xf1, 0xc6, 0x51, 0x41, 0x7a, 0xeb, 0xa8, 0x30, 0xf1, 0xce, 0x51, 0x41, 0xfa, 0xd1, 0x51, 0x41, + 0xba, 0xff, 0x83, 0xc2, 0xc4, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x13, 0x7f, 0x35, 0xf4, 0xf3, + 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -599,23 +618,6 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -679,7 +681,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -687,43 +689,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -744,8 +746,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -831,36 +834,40 @@ func valueToStringCastvalue(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Marshal() (data []byte, err error) { +func (m *Castaway) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Castaway) MarshalTo(data []byte) (int, error) { +func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.CastMapValueMessage) > 0 { for k := range m.CastMapValueMessage { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.CastMapValueMessage[k] - msgSize := ((*Wilson)(&v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 + msgSize := 0 + if ((*Wilson)(&v)) != nil { + msgSize = ((*Wilson)(&v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) + } + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(data[i:]) + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) + n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -869,110 +876,116 @@ func (m *Castaway) MarshalTo(data []byte) (int, error) { } if len(m.CastMapValueMessageNullable) > 0 { for k := range m.CastMapValueMessageNullable { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.CastMapValueMessageNullable[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if ((*Wilson)(v)) != nil { + msgSize = ((*Wilson)(v)).Size() + msgSize += 1 + sovCastvalue(uint64(msgSize)) } - msgSize := ((*Wilson)(v)).Size() - mapSize := 1 + sovCastvalue(uint64(k)) + 1 + msgSize + sovCastvalue(uint64(msgSize)) - i = encodeVarintCastvalue(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintCastvalue(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovCastvalue(uint64(k)) + msgSize + i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintCastvalue(dAtA, i, uint64(k)) + if ((*Wilson)(v)) != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) + n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Wilson) Marshal() (data []byte, err error) { +func (m *Wilson) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Wilson) MarshalTo(data []byte) (int, error) { +func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int64 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintCastvalue(data, i, uint64(*m.Int64)) + i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Castvalue(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Castvalue(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Castvalue(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Castvalue(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintCastvalue(data []byte, offset int, v uint64) int { +func encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 343 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x52, 0x4b, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0x2f, 0xcd, 0x2b, 0x4e, 0x4c, 0x4b, 0xcd, 0x4d, 0x2c, 0x2a, 0xce, 0x48, 0xcc, - 0x49, 0x2d, 0xd2, 0x4f, 0x4e, 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, - 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x01, - 0x75, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, - 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90, 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, 0xb1, 0x52, - 0xa8, 0x80, 0x4b, 0x18, 0xc4, 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, - 0x98, 0x9e, 0x2a, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, - 0x0f, 0x8b, 0x72, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, - 0xcb, 0x73, 0xf8, 0x56, 0x86, 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, 0xaa, 0x15, - 0x6a, 0x61, 0xe4, 0x92, 0xc6, 0x62, 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, - 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0xe9, 0x64, - 0xdc, 0xea, 0xa5, 0x22, 0xb9, 0x24, 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x12, - 0x18, 0x08, 0x8c, 0x1a, 0xac, 0x41, 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, 0x40, 0xd7, - 0x31, 0x02, 0x5d, 0x27, 0x88, 0xe4, 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, 0x46, 0xa9, - 0x44, 0x2e, 0x05, 0x42, 0x2e, 0xa5, 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, 0x90, 0x08, - 0x17, 0xab, 0x67, 0x5e, 0x89, 0x99, 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, 0xc7, 0xc9, - 0xe7, 0xc4, 0x43, 0x39, 0x86, 0x0b, 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, 0x7c, 0x01, - 0xc4, 0x1f, 0x80, 0xf8, 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, - 0x07, 0x10, 0x1f, 0x00, 0xe2, 0x13, 0x8f, 0x80, 0xea, 0x81, 0xf8, 0x01, 0x90, 0xfd, 0x02, 0x48, - 0x7f, 0x00, 0xd2, 0x3f, 0x80, 0xb8, 0xe1, 0xb1, 0x1c, 0x03, 0x20, 0x00, 0x00, 0xff, 0xff, 0x29, - 0x83, 0xc1, 0xb7, 0x94, 0x02, 0x00, 0x00, + // 364 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xea, 0x50, + 0x18, 0xc6, 0xcf, 0x4b, 0xc3, 0x0d, 0xf7, 0x70, 0x07, 0x6e, 0xef, 0x1d, 0x1a, 0x4c, 0x5e, 0x1a, + 0x06, 0x65, 0xd0, 0x36, 0x21, 0xc4, 0x18, 0x47, 0x8c, 0x83, 0x89, 0x38, 0x30, 0x68, 0x1c, 0x4f, + 0x49, 0x29, 0xc4, 0xd2, 0x43, 0x7a, 0x5a, 0x4d, 0x37, 0x06, 0x27, 0xff, 0x12, 0x47, 0x47, 0x47, + 0xdd, 0x18, 0x19, 0x9d, 0x94, 0x1e, 0x17, 0x46, 0x46, 0x46, 0x43, 0x2b, 0x7e, 0x24, 0xf8, 0x91, + 0xb8, 0xbd, 0xef, 0x73, 0xde, 0xe7, 0xf9, 0x3d, 0x87, 0xae, 0xb6, 0x78, 0xcf, 0xe2, 0xc2, 0x0c, + 0x3d, 0xc1, 0xda, 0x76, 0x8f, 0xf9, 0xa2, 0xc3, 0x5c, 0xdb, 0x37, 0x5b, 0x4c, 0x04, 0xa7, 0xcc, + 0x0d, 0x6d, 0xa3, 0xef, 0xf3, 0x80, 0xab, 0xbf, 0x5f, 0x84, 0xe2, 0x86, 0xd3, 0x0d, 0x3a, 0xa1, + 0x65, 0xb4, 0x78, 0xcf, 0x74, 0xb8, 0xc3, 0xcd, 0xe4, 0xc2, 0x0a, 0xdb, 0xc9, 0x96, 0x2c, 0xc9, + 0x94, 0x3a, 0xcb, 0xb7, 0x0a, 0xcd, 0xed, 0x30, 0x11, 0xb0, 0x33, 0x16, 0xa9, 0x7d, 0xfa, 0x6f, + 0x3e, 0x37, 0x58, 0xff, 0x70, 0x9e, 0xd5, 0xb0, 0x85, 0x60, 0x8e, 0xad, 0x81, 0xae, 0x54, 0xf2, + 0xd5, 0x75, 0xe3, 0x95, 0xba, 0x70, 0x18, 0x4b, 0xce, 0x77, 0xbd, 0xc0, 0x8f, 0xea, 0x85, 0xe1, + 0x7d, 0x89, 0x5c, 0x3c, 0x94, 0x72, 0x8d, 0xe8, 0xa8, 0xeb, 0x0a, 0xee, 0x35, 0x97, 0x45, 0xab, + 0xe7, 0x40, 0x57, 0x96, 0xe8, 0x07, 0xa1, 0xeb, 0x32, 0xcb, 0xb5, 0xb5, 0x4c, 0x82, 0xae, 0x7d, + 0x13, 0xbd, 0xb0, 0xa5, 0x15, 0xfe, 0xbc, 0xc3, 0x7f, 0x86, 0x29, 0x1e, 0x53, 0xed, 0xa3, 0x9f, + 0xa8, 0x05, 0xaa, 0x9c, 0xd8, 0x91, 0x06, 0x3a, 0x54, 0xb2, 0xcd, 0xf9, 0xa8, 0xae, 0xd1, 0x6c, + 0xd2, 0x45, 0xcb, 0xe8, 0x50, 0xc9, 0x57, 0xff, 0xbe, 0x69, 0xf7, 0x0c, 0x4b, 0xdf, 0xb7, 0x33, + 0x5b, 0x50, 0x64, 0x54, 0xff, 0xaa, 0xe9, 0x0f, 0x11, 0x65, 0xa4, 0xbf, 0x52, 0x51, 0xfd, 0x4f, + 0xb3, 0x7b, 0x5e, 0xb0, 0x59, 0x4b, 0xa2, 0x94, 0x66, 0xba, 0xd4, 0xf7, 0x87, 0x31, 0x92, 0x51, + 0x8c, 0xe4, 0x2e, 0x46, 0x32, 0x8e, 0x11, 0x26, 0x31, 0xc2, 0x34, 0x46, 0x98, 0xc5, 0x08, 0x03, + 0x89, 0x70, 0x29, 0x11, 0xae, 0x24, 0xc2, 0xb5, 0x44, 0xb8, 0x91, 0x08, 0x43, 0x89, 0x64, 0x24, + 0x91, 0x8c, 0x25, 0xc2, 0x44, 0x22, 0x99, 0x4a, 0x84, 0x99, 0x44, 0x18, 0x3c, 0x22, 0x79, 0x0a, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x17, 0xd9, 0xa7, 0x94, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto index 1ada55aa..4039d3be 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go index 368eb54d..dcbaa067 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go @@ -17,6 +17,7 @@ package castvalue import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestCastawayProto(t *testing.T) { } func TestCastawayMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,11 +110,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -115,11 +124,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -133,21 +142,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -167,24 +180,28 @@ func TestWilsonProto(t *testing.T) { } func TestWilsonMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +220,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +234,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -280,9 +297,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -297,9 +314,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -314,9 +331,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -331,9 +348,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +365,18 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +384,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,13 +449,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -460,13 +485,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go index a5aba757..8c705134 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -40,11 +38,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,json=castMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,json=castMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } @@ -53,7 +53,7 @@ func (*Castaway) ProtoMessage() {} func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64,json=int64" json:"Int64,omitempty"` + Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -74,224 +74,245 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3469 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0x57, - 0x15, 0xae, 0x63, 0x3b, 0xb1, 0x8f, 0x1d, 0xc7, 0x99, 0xa4, 0xbb, 0xde, 0x6c, 0xbb, 0xd9, 0x75, - 0x1f, 0xbb, 0xdd, 0xb6, 0x49, 0x59, 0xfa, 0xd8, 0xba, 0xd0, 0x2a, 0x0f, 0x6f, 0xea, 0x55, 0x5e, - 0x4c, 0x92, 0x76, 0xb7, 0xfc, 0x18, 0x4d, 0xc6, 0x37, 0x8e, 0x77, 0xc7, 0x33, 0xc6, 0x33, 0xde, - 0xdd, 0xf4, 0x57, 0x51, 0x0b, 0xa8, 0x20, 0xde, 0x08, 0xfa, 0x86, 0x56, 0x82, 0x96, 0xf2, 0x6a, - 0x79, 0x09, 0xf1, 0xab, 0x08, 0x15, 0xfa, 0x0b, 0x01, 0xbf, 0xf8, 0x81, 0xa0, 0x2d, 0x95, 0x28, - 0x50, 0xa0, 0x48, 0x2b, 0x51, 0xa9, 0x7f, 0x38, 0xf7, 0x35, 0x9e, 0xb1, 0x9d, 0x8c, 0x53, 0x54, - 0x4a, 0xa4, 0x51, 0x66, 0xce, 0x3d, 0xdf, 0x37, 0xf7, 0x9e, 0x7b, 0xee, 0x39, 0xe7, 0xde, 0x31, - 0xfc, 0xfc, 0x7d, 0x70, 0xb0, 0x62, 0xdb, 0x15, 0x93, 0x4c, 0xd6, 0x1b, 0xb6, 0x6b, 0xaf, 0x37, - 0x37, 0x26, 0xcb, 0xc4, 0x31, 0x1a, 0xd5, 0xba, 0x6b, 0x37, 0x26, 0x98, 0x4c, 0x19, 0xe2, 0x1a, - 0x13, 0x52, 0x23, 0xbf, 0x00, 0xc3, 0x27, 0xaa, 0x26, 0x99, 0xf5, 0x14, 0x57, 0x88, 0xab, 0x1c, - 0x87, 0xd8, 0x06, 0x0a, 0x73, 0x91, 0x83, 0xd1, 0x23, 0xa9, 0x63, 0x57, 0x4e, 0xb4, 0x81, 0x26, - 0x82, 0x88, 0x65, 0x2a, 0x56, 0x19, 0x22, 0xff, 0x5a, 0x0c, 0x46, 0xba, 0xb4, 0x2a, 0x0a, 0xc4, - 0x2c, 0xbd, 0x46, 0x19, 0x23, 0x47, 0x92, 0x2a, 0xbb, 0x57, 0x72, 0x30, 0x50, 0xd7, 0x8d, 0xb3, - 0x7a, 0x85, 0xe4, 0xfa, 0x98, 0x58, 0x3e, 0x2a, 0x07, 0x00, 0xca, 0xa4, 0x4e, 0xac, 0x32, 0xb1, - 0x8c, 0xad, 0x5c, 0x14, 0x7b, 0x91, 0x54, 0x7d, 0x12, 0xe5, 0x5a, 0x18, 0xae, 0x37, 0xd7, 0xcd, - 0xaa, 0xa1, 0xf9, 0xd4, 0x00, 0xd5, 0xe2, 0x6a, 0x96, 0x37, 0xcc, 0xb6, 0x94, 0x0f, 0xc3, 0xd0, - 0x79, 0xa2, 0x9f, 0xf5, 0xab, 0xa6, 0x98, 0x6a, 0x86, 0x8a, 0x7d, 0x8a, 0x33, 0x90, 0xae, 0x11, - 0xc7, 0xc1, 0x0e, 0x68, 0xee, 0x56, 0x9d, 0xe4, 0x62, 0x6c, 0xf4, 0x07, 0x3b, 0x46, 0xdf, 0x3e, - 0xf2, 0x94, 0x40, 0xad, 0x22, 0x48, 0x99, 0x82, 0x24, 0xb1, 0x9a, 0x35, 0xce, 0x10, 0xdf, 0xc6, - 0x7e, 0x45, 0xd4, 0x68, 0x67, 0x49, 0x50, 0x98, 0xa0, 0x18, 0x70, 0x48, 0xe3, 0x5c, 0xd5, 0x20, - 0xb9, 0x7e, 0x46, 0x70, 0xb8, 0x83, 0x60, 0x85, 0xb7, 0xb7, 0x73, 0x48, 0x1c, 0x0e, 0x25, 0x49, - 0x2e, 0xb8, 0xc4, 0x72, 0xaa, 0xb6, 0x95, 0x1b, 0x60, 0x24, 0x57, 0x75, 0x99, 0x45, 0x62, 0x96, - 0xdb, 0x29, 0x5a, 0x38, 0xe5, 0x66, 0x18, 0xb0, 0xeb, 0x2e, 0xde, 0x39, 0xb9, 0x04, 0xce, 0x4f, - 0xea, 0xd8, 0x65, 0x5d, 0x1d, 0x61, 0x89, 0xeb, 0xa8, 0x52, 0x59, 0x29, 0x41, 0xd6, 0xb1, 0x9b, - 0x0d, 0x83, 0x68, 0x86, 0x5d, 0x26, 0x5a, 0xd5, 0xda, 0xb0, 0x73, 0x49, 0x46, 0x30, 0xde, 0x39, - 0x10, 0xa6, 0x38, 0x83, 0x7a, 0x25, 0x54, 0x53, 0x33, 0x4e, 0xe0, 0x59, 0xd9, 0x03, 0xfd, 0xce, - 0x96, 0xe5, 0xea, 0x17, 0x72, 0x69, 0xe6, 0x21, 0xe2, 0x29, 0xff, 0xef, 0x38, 0x0c, 0xf5, 0xe2, - 0x62, 0xb7, 0x41, 0x7c, 0x83, 0x8e, 0x12, 0x1d, 0x6c, 0x17, 0x36, 0xe0, 0x98, 0xa0, 0x11, 0xfb, - 0xdf, 0xa1, 0x11, 0xa7, 0x20, 0x65, 0x11, 0xc7, 0x25, 0x65, 0xee, 0x11, 0xd1, 0x1e, 0x7d, 0x0a, - 0x38, 0xa8, 0xd3, 0xa5, 0x62, 0xef, 0xc8, 0xa5, 0x4e, 0xc1, 0x90, 0xd7, 0x25, 0xad, 0xa1, 0x5b, - 0x15, 0xe9, 0x9b, 0x93, 0x61, 0x3d, 0x99, 0x28, 0x4a, 0x9c, 0x4a, 0x61, 0x6a, 0x86, 0x04, 0x9e, - 0x95, 0x59, 0x00, 0xdb, 0x22, 0xf6, 0x06, 0x2e, 0x2f, 0xc3, 0x44, 0x3f, 0xe9, 0x6e, 0xa5, 0x25, - 0xaa, 0xd2, 0x61, 0x25, 0x9b, 0x4b, 0x0d, 0x53, 0xb9, 0xb5, 0xe5, 0x6a, 0x03, 0xdb, 0x78, 0xca, - 0x02, 0x5f, 0x64, 0x1d, 0xde, 0xb6, 0x06, 0x99, 0x06, 0xa1, 0x7e, 0x8f, 0x26, 0xe6, 0x23, 0x4b, - 0xb2, 0x4e, 0x4c, 0x84, 0x8e, 0x4c, 0x15, 0x30, 0x3e, 0xb0, 0xc1, 0x86, 0xff, 0x51, 0xb9, 0x02, - 0x3c, 0x81, 0xc6, 0xdc, 0x0a, 0x58, 0x14, 0x4a, 0x4b, 0xe1, 0x22, 0xca, 0xc6, 0x8e, 0x43, 0x26, - 0x68, 0x1e, 0x65, 0x14, 0xe2, 0x8e, 0xab, 0x37, 0x5c, 0xe6, 0x85, 0x71, 0x95, 0x3f, 0x28, 0x59, - 0x88, 0x62, 0x90, 0x61, 0x51, 0x2e, 0xae, 0xd2, 0xdb, 0xb1, 0x5b, 0x60, 0x30, 0xf0, 0xfa, 0x5e, - 0x81, 0xf9, 0x87, 0xfa, 0x61, 0xb4, 0x9b, 0xcf, 0x75, 0x75, 0x7f, 0x5c, 0x3e, 0xe8, 0x01, 0xeb, - 0xa4, 0x81, 0x7e, 0x47, 0x19, 0xc4, 0x13, 0x7a, 0x54, 0xdc, 0xd4, 0xd7, 0x89, 0x89, 0xde, 0x14, - 0x39, 0x92, 0x39, 0x76, 0x6d, 0x4f, 0x5e, 0x3d, 0x31, 0x4f, 0x21, 0x2a, 0x47, 0x2a, 0xb7, 0x43, - 0x4c, 0x84, 0x38, 0xca, 0x70, 0xb4, 0x37, 0x06, 0xea, 0x8b, 0x2a, 0xc3, 0x29, 0xfb, 0x21, 0x49, - 0xff, 0x73, 0xdb, 0xf6, 0xb3, 0x3e, 0x27, 0xa8, 0x80, 0xda, 0x55, 0x19, 0x83, 0x04, 0x73, 0xb3, - 0x32, 0x91, 0xa9, 0xc1, 0x7b, 0xa6, 0x13, 0x53, 0x26, 0x1b, 0x7a, 0xd3, 0x74, 0xb5, 0x73, 0xba, - 0xd9, 0x24, 0xcc, 0x61, 0x70, 0x62, 0x84, 0xf0, 0x2e, 0x2a, 0x53, 0xc6, 0x21, 0xc5, 0xbd, 0xb2, - 0x8a, 0x98, 0x0b, 0x2c, 0xfa, 0xc4, 0x55, 0xee, 0xa8, 0x25, 0x2a, 0xa1, 0xaf, 0x3f, 0xe3, 0xe0, - 0x5a, 0x10, 0x53, 0xcb, 0x5e, 0x41, 0x05, 0xec, 0xf5, 0xb7, 0xb4, 0x07, 0xbe, 0xcb, 0xbb, 0x0f, - 0xaf, 0xdd, 0x17, 0xf3, 0x3f, 0xee, 0x83, 0x18, 0x5b, 0x6f, 0x43, 0x90, 0x5a, 0x3d, 0xbd, 0x5c, - 0xd4, 0x66, 0x97, 0xd6, 0xa6, 0xe7, 0x8b, 0xd9, 0x88, 0x92, 0x01, 0x60, 0x82, 0x13, 0xf3, 0x4b, - 0x53, 0xab, 0xd9, 0x3e, 0xef, 0xb9, 0xb4, 0xb8, 0x7a, 0xf3, 0x8d, 0xd9, 0xa8, 0x07, 0x58, 0xe3, - 0x82, 0x98, 0x5f, 0xe1, 0xfd, 0xc7, 0xb2, 0x71, 0xf4, 0x84, 0x34, 0x27, 0x28, 0x9d, 0x2a, 0xce, - 0xa2, 0x46, 0x7f, 0x50, 0x82, 0x3a, 0x03, 0xca, 0x20, 0x24, 0x99, 0x64, 0x7a, 0x69, 0x69, 0x3e, - 0x9b, 0xf0, 0x38, 0x57, 0x56, 0xd5, 0xd2, 0xe2, 0x5c, 0x36, 0xe9, 0x71, 0xce, 0xa9, 0x4b, 0x6b, - 0xcb, 0x59, 0xf0, 0x18, 0x16, 0x8a, 0x2b, 0x2b, 0x53, 0x73, 0xc5, 0x6c, 0xca, 0xd3, 0x98, 0x3e, - 0xbd, 0x5a, 0x5c, 0xc9, 0xa6, 0x03, 0xdd, 0xc2, 0x57, 0x0c, 0x7a, 0xaf, 0x28, 0x2e, 0xae, 0x2d, - 0x64, 0x33, 0xca, 0x30, 0x0c, 0xf2, 0x57, 0xc8, 0x4e, 0x0c, 0xb5, 0x89, 0xb0, 0xa7, 0xd9, 0x56, - 0x47, 0x38, 0xcb, 0x70, 0x40, 0x80, 0x1a, 0x4a, 0x7e, 0x06, 0xe2, 0xcc, 0xbb, 0xd0, 0x8b, 0x33, - 0xf3, 0x53, 0xd3, 0xc5, 0x79, 0x6d, 0x69, 0x79, 0xb5, 0xb4, 0xb4, 0x38, 0x35, 0x8f, 0xb6, 0xf3, - 0x64, 0x6a, 0xf1, 0x43, 0x6b, 0x25, 0xb5, 0x38, 0x8b, 0xf6, 0xf3, 0xc9, 0x96, 0x8b, 0x53, 0xab, - 0x28, 0x8b, 0xe6, 0x8f, 0xc2, 0x68, 0xb7, 0x38, 0xd3, 0x6d, 0x65, 0xe4, 0x9f, 0x8a, 0xc0, 0x48, - 0x97, 0x90, 0xd9, 0x75, 0x15, 0xdd, 0x01, 0x71, 0xee, 0x69, 0x3c, 0x89, 0x5c, 0xd3, 0x35, 0xf6, - 0x32, 0xbf, 0xeb, 0x48, 0x24, 0x0c, 0xe7, 0x4f, 0xa4, 0xd1, 0x6d, 0x12, 0x29, 0xa5, 0xe8, 0x70, - 0xa7, 0xfb, 0x23, 0x90, 0xdb, 0x8e, 0x3b, 0x64, 0xbd, 0xf7, 0x05, 0xd6, 0xfb, 0x6d, 0xed, 0x1d, - 0x38, 0xb4, 0xfd, 0x18, 0x3a, 0x7a, 0xf1, 0x74, 0x04, 0xf6, 0x74, 0xaf, 0x37, 0xba, 0xf6, 0xe1, - 0x76, 0xe8, 0xaf, 0x11, 0x77, 0xd3, 0x96, 0x39, 0xf7, 0xea, 0x2e, 0x91, 0x9c, 0x36, 0xb7, 0xdb, - 0x4a, 0xa0, 0xfc, 0xa9, 0x20, 0xba, 0x5d, 0xd1, 0xc0, 0x7b, 0xd3, 0xd1, 0xd3, 0x07, 0xfb, 0xe0, - 0xd2, 0xae, 0xe4, 0x5d, 0x3b, 0x7a, 0x39, 0x40, 0xd5, 0xaa, 0x37, 0x5d, 0x9e, 0x57, 0x79, 0x98, - 0x49, 0x32, 0x09, 0x5b, 0xc2, 0x34, 0x84, 0x34, 0x5d, 0xaf, 0x3d, 0xca, 0xda, 0x81, 0x8b, 0x98, - 0xc2, 0xf1, 0x56, 0x47, 0x63, 0xac, 0xa3, 0x07, 0xb6, 0x19, 0x69, 0x47, 0xca, 0xba, 0x01, 0xb2, - 0x86, 0x59, 0x25, 0x96, 0xab, 0x39, 0x6e, 0x83, 0xe8, 0xb5, 0xaa, 0x55, 0x61, 0x71, 0x34, 0x51, - 0x88, 0x6f, 0xe8, 0xa6, 0x43, 0xd4, 0x21, 0xde, 0xbc, 0x22, 0x5b, 0x29, 0x82, 0x25, 0x8b, 0x86, - 0x0f, 0xd1, 0x1f, 0x40, 0xf0, 0x66, 0x0f, 0x91, 0xff, 0xed, 0x00, 0xa4, 0x7c, 0xd5, 0x99, 0x72, - 0x08, 0xd2, 0x67, 0xf4, 0x73, 0xba, 0x26, 0x2b, 0x6e, 0x6e, 0x89, 0x14, 0x95, 0x2d, 0x8b, 0xaa, - 0xfb, 0x06, 0x18, 0x65, 0x2a, 0x38, 0x46, 0x7c, 0x91, 0x61, 0xea, 0x8e, 0xc3, 0x8c, 0x96, 0x60, - 0xaa, 0x0a, 0x6d, 0x5b, 0xa2, 0x4d, 0x33, 0xb2, 0x45, 0xb9, 0x09, 0x46, 0x18, 0xa2, 0x86, 0x81, - 0xb7, 0x5a, 0x37, 0x89, 0x46, 0xf7, 0x00, 0x0e, 0x8b, 0xa7, 0x5e, 0xcf, 0x86, 0xa9, 0xc6, 0x82, - 0x50, 0xa0, 0x3d, 0x72, 0x94, 0x39, 0xb8, 0x9c, 0xc1, 0x2a, 0xc4, 0x22, 0x0d, 0xdd, 0x25, 0x1a, - 0xf9, 0x48, 0x13, 0x75, 0x35, 0xdd, 0x2a, 0x6b, 0x9b, 0xba, 0xb3, 0x99, 0x1b, 0xf5, 0x13, 0xec, - 0xa3, 0xba, 0x73, 0x42, 0xb5, 0xc8, 0x34, 0xa7, 0xac, 0xf2, 0x9d, 0xa8, 0xa7, 0x14, 0x60, 0x0f, - 0x23, 0x42, 0xa3, 0xe0, 0x98, 0x35, 0x63, 0x93, 0x18, 0x67, 0xb5, 0xa6, 0xbb, 0x71, 0x3c, 0xb7, - 0xdf, 0xcf, 0xc0, 0x3a, 0xb9, 0xc2, 0x74, 0x66, 0xa8, 0xca, 0x1a, 0x6a, 0x28, 0x2b, 0x90, 0xa6, - 0xf3, 0x51, 0xab, 0xde, 0x8b, 0xdd, 0xb6, 0x1b, 0x2c, 0x47, 0x64, 0xba, 0x2c, 0x6e, 0x9f, 0x11, - 0x27, 0x96, 0x04, 0x60, 0x01, 0xeb, 0xd3, 0x42, 0x7c, 0x65, 0xb9, 0x58, 0x9c, 0x55, 0x53, 0x92, - 0xe5, 0x84, 0xdd, 0xa0, 0x3e, 0x55, 0xb1, 0x3d, 0x1b, 0xa7, 0xb8, 0x4f, 0x55, 0x6c, 0x69, 0x61, - 0xb4, 0x97, 0x61, 0xf0, 0x61, 0xe3, 0xde, 0x45, 0x14, 0xeb, 0x4e, 0x2e, 0x1b, 0xb0, 0x97, 0x61, - 0xcc, 0x71, 0x05, 0xe1, 0xe6, 0x0e, 0x2e, 0x89, 0x4b, 0x5b, 0xf6, 0xf2, 0x03, 0x87, 0x3b, 0x46, - 0xd9, 0x0e, 0xc5, 0x37, 0xd6, 0xb7, 0x3a, 0x81, 0x4a, 0xe0, 0x8d, 0xf5, 0xad, 0x76, 0xd8, 0x55, - 0x6c, 0x03, 0xd6, 0x20, 0x06, 0x9a, 0xbc, 0x9c, 0xdb, 0xeb, 0xd7, 0xf6, 0x35, 0x28, 0x93, 0xe8, - 0xc8, 0x86, 0x46, 0x2c, 0x7d, 0x1d, 0xe7, 0x5e, 0x6f, 0xe0, 0x8d, 0x93, 0x1b, 0xf7, 0x2b, 0x67, - 0x0c, 0xa3, 0xc8, 0x5a, 0xa7, 0x58, 0xa3, 0x72, 0x14, 0x86, 0xed, 0xf5, 0x33, 0x06, 0x77, 0x2e, - 0x0d, 0x79, 0x36, 0xaa, 0x17, 0x72, 0x57, 0x32, 0x33, 0x0d, 0xd1, 0x06, 0xe6, 0x5a, 0xcb, 0x4c, - 0xac, 0x5c, 0x83, 0xe4, 0xce, 0xa6, 0xde, 0xa8, 0xb3, 0x24, 0xed, 0xa0, 0x51, 0x49, 0xee, 0x2a, - 0xae, 0xca, 0xe5, 0x8b, 0x52, 0xac, 0x14, 0x61, 0x9c, 0x0e, 0xde, 0xd2, 0x2d, 0x5b, 0x6b, 0x3a, - 0x44, 0x6b, 0x75, 0xd1, 0x9b, 0x8b, 0xab, 0x69, 0xb7, 0xd4, 0xcb, 0xa4, 0xda, 0x9a, 0x83, 0xc1, - 0x4c, 0x2a, 0xc9, 0xe9, 0x39, 0x05, 0xa3, 0x4d, 0xab, 0x6a, 0xa1, 0x8b, 0x63, 0x0b, 0x05, 0xf3, - 0x05, 0x9b, 0xfb, 0xf3, 0xc0, 0x36, 0x45, 0xf7, 0x9a, 0x5f, 0x9b, 0x3b, 0x89, 0x3a, 0xd2, 0xec, - 0x14, 0xe6, 0x0b, 0x90, 0xf6, 0xfb, 0x8e, 0x92, 0x04, 0xee, 0x3d, 0x98, 0xdd, 0x30, 0xa3, 0xce, - 0x2c, 0xcd, 0xd2, 0x5c, 0x78, 0x4f, 0x11, 0x13, 0x1b, 0xe6, 0xe4, 0xf9, 0xd2, 0x6a, 0x51, 0x53, - 0xd7, 0x16, 0x57, 0x4b, 0x0b, 0xc5, 0x6c, 0xf4, 0x68, 0x32, 0xf1, 0xfa, 0x40, 0xf6, 0x3e, 0xfc, - 0xeb, 0xcb, 0xbf, 0xd8, 0x07, 0x99, 0x60, 0x1d, 0xac, 0x7c, 0x00, 0xf6, 0xca, 0x4d, 0xab, 0x43, - 0x5c, 0xed, 0x7c, 0xb5, 0xc1, 0xdc, 0xb9, 0xa6, 0xf3, 0x4a, 0xd2, 0x9b, 0x89, 0x51, 0xa1, 0x85, - 0xdb, 0xfb, 0xbb, 0x51, 0xe7, 0x04, 0x53, 0x51, 0xe6, 0x61, 0x1c, 0x4d, 0x86, 0xb5, 0xa6, 0x55, - 0xd6, 0x1b, 0x65, 0xad, 0x75, 0x5c, 0xa0, 0xe9, 0x06, 0xfa, 0x81, 0x63, 0xf3, 0x4c, 0xe2, 0xb1, - 0x5c, 0x66, 0xd9, 0x2b, 0x42, 0xb9, 0x15, 0x62, 0xa7, 0x84, 0x6a, 0x9b, 0xd7, 0x44, 0xb7, 0xf3, - 0x1a, 0xac, 0xbd, 0x6a, 0x7a, 0x1d, 0xdd, 0xc6, 0x6d, 0x6c, 0xb1, 0xea, 0x2d, 0xa1, 0x26, 0x50, - 0x50, 0xa4, 0xcf, 0xef, 0xde, 0x1c, 0xf8, 0xed, 0xf8, 0xfb, 0x28, 0xa4, 0xfd, 0x15, 0x1c, 0x2d, - 0x88, 0x0d, 0x16, 0xe6, 0x23, 0x2c, 0x0a, 0x5c, 0xb1, 0x63, 0xbd, 0x37, 0x31, 0x43, 0xe3, 0x7f, - 0xa1, 0x9f, 0xd7, 0x55, 0x2a, 0x47, 0xd2, 0xdc, 0x4b, 0x7d, 0x8d, 0xf0, 0x6a, 0x3d, 0xa1, 0x8a, - 0x27, 0x0c, 0x76, 0xfd, 0x67, 0x1c, 0xc6, 0xdd, 0xcf, 0xb8, 0xaf, 0xdc, 0x99, 0xfb, 0xe4, 0x0a, - 0x23, 0x4f, 0x9e, 0x5c, 0xd1, 0x16, 0x97, 0xd4, 0x85, 0xa9, 0x79, 0x55, 0xc0, 0x95, 0x7d, 0x10, - 0x33, 0xf5, 0x7b, 0xb7, 0x82, 0x99, 0x82, 0x89, 0x7a, 0x35, 0x3c, 0x32, 0xd0, 0x23, 0x8f, 0x60, - 0x7c, 0x66, 0xa2, 0x77, 0xd1, 0xf5, 0x27, 0x21, 0xce, 0xec, 0xa5, 0x00, 0x08, 0x8b, 0x65, 0x2f, - 0x51, 0x12, 0x10, 0x9b, 0x59, 0x52, 0xa9, 0xfb, 0xa3, 0xbf, 0x73, 0xa9, 0xb6, 0x5c, 0x2a, 0xce, - 0xe0, 0x0a, 0xc8, 0xdf, 0x04, 0xfd, 0xdc, 0x08, 0x74, 0x69, 0x78, 0x66, 0x40, 0x10, 0x7f, 0x14, - 0x1c, 0x11, 0xd9, 0xba, 0xb6, 0x30, 0x5d, 0x54, 0xb3, 0x7d, 0xfe, 0xe9, 0xfd, 0x69, 0x04, 0x52, - 0xbe, 0x82, 0x8a, 0xa6, 0x72, 0xdd, 0x34, 0xed, 0xf3, 0x9a, 0x6e, 0x56, 0x31, 0x42, 0xf1, 0xf9, - 0x01, 0x26, 0x9a, 0xa2, 0x92, 0x5e, 0xed, 0xf7, 0x3f, 0xf1, 0xcd, 0x27, 0x22, 0x90, 0x6d, 0x2f, - 0xc6, 0xda, 0x3a, 0x18, 0x79, 0x4f, 0x3b, 0xf8, 0x58, 0x04, 0x32, 0xc1, 0x0a, 0xac, 0xad, 0x7b, - 0x87, 0xde, 0xd3, 0xee, 0x3d, 0x1a, 0x81, 0xc1, 0x40, 0xdd, 0xf5, 0x7f, 0xd5, 0xbb, 0x47, 0xa2, - 0x30, 0xd2, 0x05, 0x87, 0x01, 0x88, 0x17, 0xa8, 0xbc, 0x66, 0xbe, 0xbe, 0x97, 0x77, 0x4d, 0xd0, - 0xfc, 0xb7, 0xac, 0x37, 0x5c, 0x51, 0xcf, 0x62, 0xbe, 0xac, 0x96, 0x31, 0xa8, 0x56, 0x37, 0xaa, - 0x58, 0xbe, 0xf1, 0x1d, 0x0b, 0xaf, 0x5a, 0x87, 0x5a, 0x72, 0xbe, 0x3d, 0xbe, 0x0e, 0x94, 0xba, - 0xed, 0x54, 0xdd, 0xea, 0x39, 0x7a, 0x3c, 0x27, 0x37, 0xd2, 0xb4, 0x8a, 0x8d, 0xa9, 0x59, 0xd9, - 0x52, 0xb2, 0x5c, 0x4f, 0xdb, 0x22, 0x15, 0xbd, 0x4d, 0x9b, 0x86, 0xa1, 0xa8, 0x9a, 0x95, 0x2d, - 0x9e, 0x36, 0x16, 0x9a, 0x65, 0xbb, 0x49, 0x0b, 0x02, 0xae, 0x47, 0xa3, 0x5e, 0x44, 0x4d, 0x71, - 0x99, 0xa7, 0x22, 0x2a, 0xb6, 0xd6, 0x0e, 0x3e, 0xad, 0xa6, 0xb8, 0x8c, 0xab, 0x1c, 0x86, 0x21, - 0xbd, 0x52, 0x69, 0x50, 0x72, 0x49, 0xc4, 0xcb, 0xd0, 0x8c, 0x27, 0x66, 0x8a, 0x63, 0x27, 0x21, - 0x21, 0xed, 0x40, 0x13, 0x0b, 0xb5, 0x04, 0xe6, 0x7c, 0x76, 0x8e, 0xd2, 0x47, 0x37, 0xf5, 0x96, - 0x6c, 0xc4, 0x97, 0x56, 0x1d, 0xad, 0x75, 0xa0, 0xd7, 0x87, 0xed, 0x09, 0x35, 0x55, 0x75, 0xbc, - 0x13, 0x9c, 0xfc, 0xd3, 0x98, 0x5e, 0x83, 0x07, 0x92, 0xca, 0x2c, 0x24, 0x4c, 0x1b, 0xfd, 0x83, - 0x22, 0xf8, 0x69, 0xf8, 0x91, 0x90, 0x33, 0xcc, 0x89, 0x79, 0xa1, 0xaf, 0x7a, 0xc8, 0xb1, 0x5f, - 0x45, 0x20, 0x21, 0xc5, 0x98, 0x28, 0x62, 0x75, 0xdd, 0xdd, 0x64, 0x74, 0xf1, 0xe9, 0xbe, 0x6c, - 0x44, 0x65, 0xcf, 0x54, 0x8e, 0xd5, 0x8c, 0xc5, 0x5c, 0x40, 0xc8, 0xe9, 0x33, 0x9d, 0x57, 0x93, - 0xe8, 0x65, 0x56, 0xe0, 0xda, 0xb5, 0x1a, 0xce, 0xa4, 0x23, 0xe7, 0x55, 0xc8, 0x67, 0x84, 0x98, - 0x9e, 0x8b, 0xbb, 0x0d, 0xbd, 0x6a, 0x06, 0x74, 0x63, 0x4c, 0x37, 0x2b, 0x1b, 0x3c, 0xe5, 0x02, - 0xec, 0x93, 0xbc, 0x65, 0xe2, 0xea, 0x58, 0x3c, 0x97, 0x5b, 0xa0, 0x7e, 0x76, 0xda, 0xb5, 0x57, - 0x28, 0xcc, 0x8a, 0x76, 0x89, 0x9d, 0x3e, 0x85, 0x85, 0xac, 0x5d, 0x6b, 0xb7, 0xc4, 0x74, 0xb6, - 0x6d, 0xdf, 0xe5, 0xdc, 0x19, 0xb9, 0x07, 0x5a, 0x45, 0xc5, 0x53, 0x7d, 0xd1, 0xb9, 0xe5, 0xe9, - 0x67, 0xfb, 0xc6, 0xe6, 0x38, 0x6e, 0x59, 0x5a, 0x50, 0x25, 0x1b, 0x26, 0x31, 0xa8, 0x75, 0xe0, - 0xc9, 0x2b, 0xe0, 0xfa, 0x4a, 0xd5, 0xdd, 0x6c, 0xae, 0x4f, 0xe0, 0x1b, 0x26, 0x2b, 0x76, 0xc5, - 0x6e, 0x7d, 0xce, 0xa0, 0x4f, 0xec, 0x81, 0xdd, 0x89, 0x4f, 0x1a, 0x49, 0x4f, 0x3a, 0x16, 0xfa, - 0xfd, 0xa3, 0xb0, 0x08, 0x23, 0x42, 0x59, 0x63, 0x67, 0xaa, 0xbc, 0x04, 0x55, 0x76, 0xdc, 0x90, - 0xe7, 0x9e, 0x7f, 0x8d, 0xa5, 0x04, 0x75, 0x58, 0x40, 0x69, 0x1b, 0x2f, 0x52, 0x0b, 0x2a, 0x5c, - 0x1a, 0xe0, 0xe3, 0x3e, 0x8c, 0x5b, 0xee, 0x9d, 0x19, 0x5f, 0x14, 0x8c, 0x23, 0x3e, 0xc6, 0x15, - 0x01, 0x2d, 0xcc, 0xc0, 0xe0, 0x6e, 0xb8, 0x7e, 0x21, 0xb8, 0xd2, 0xc4, 0x4f, 0x32, 0x07, 0x43, - 0x8c, 0xc4, 0x68, 0x3a, 0xae, 0x5d, 0x63, 0x01, 0x62, 0x67, 0x9a, 0x5f, 0xbe, 0xc6, 0x9d, 0x2a, - 0x43, 0x61, 0x33, 0x1e, 0xaa, 0x70, 0x17, 0x8c, 0x52, 0x09, 0x5b, 0x83, 0x7e, 0xb6, 0xf0, 0x23, - 0x84, 0xdc, 0x6f, 0xee, 0xe7, 0xbe, 0x37, 0xe2, 0x11, 0xf8, 0x78, 0x7d, 0x33, 0x51, 0x21, 0x2e, - 0xc6, 0x36, 0xdc, 0xff, 0x99, 0xa6, 0xb2, 0xe3, 0x37, 0x86, 0xdc, 0xc3, 0x6f, 0x04, 0x67, 0x62, - 0x8e, 0x23, 0xa7, 0x4c, 0xb3, 0xb0, 0x06, 0x7b, 0xbb, 0xcc, 0x6c, 0x0f, 0x9c, 0x8f, 0x08, 0xce, - 0xd1, 0x8e, 0xd9, 0xa5, 0xb4, 0xcb, 0x20, 0xe5, 0xde, 0x7c, 0xf4, 0xc0, 0xf9, 0xa8, 0xe0, 0x54, - 0x04, 0x56, 0x4e, 0x0b, 0x65, 0x3c, 0x09, 0xc3, 0xb8, 0x53, 0x5f, 0xb7, 0x1d, 0xb1, 0xef, 0xed, - 0x81, 0xee, 0x31, 0x41, 0x37, 0x24, 0x80, 0x6c, 0x17, 0x4c, 0xb9, 0x6e, 0x85, 0xc4, 0x06, 0x6e, - 0x80, 0x7a, 0xa0, 0x78, 0x5c, 0x50, 0x0c, 0x50, 0x7d, 0x0a, 0x9d, 0x82, 0x74, 0xc5, 0x16, 0x61, - 0x38, 0x1c, 0xfe, 0x84, 0x80, 0xa7, 0x24, 0x46, 0x50, 0xd4, 0xed, 0x7a, 0xd3, 0xa4, 0x31, 0x3a, - 0x9c, 0xe2, 0xab, 0x92, 0x42, 0x62, 0x04, 0xc5, 0x2e, 0xcc, 0xfa, 0x35, 0x49, 0xe1, 0xf8, 0xec, - 0x79, 0x07, 0x3d, 0xeb, 0x35, 0xb7, 0x6c, 0xab, 0x97, 0x4e, 0x3c, 0x29, 0x18, 0x40, 0x40, 0x28, - 0xc1, 0x6d, 0x90, 0xec, 0x75, 0x22, 0xbe, 0x2e, 0xe0, 0x09, 0x22, 0x67, 0x00, 0xd7, 0x99, 0x0c, - 0x32, 0xf4, 0xdb, 0x4a, 0x38, 0xc5, 0x37, 0x04, 0x45, 0xc6, 0x07, 0x13, 0xc3, 0x70, 0x89, 0xe3, - 0xe2, 0x56, 0xbd, 0x07, 0x92, 0xa7, 0xe5, 0x30, 0x04, 0x44, 0x98, 0x72, 0x9d, 0x58, 0xc6, 0x66, - 0x6f, 0x0c, 0xcf, 0x48, 0x53, 0x4a, 0x0c, 0xa5, 0xc0, 0xc8, 0x53, 0xd3, 0x1b, 0xb8, 0xb9, 0x36, - 0x7b, 0x9a, 0x8e, 0x6f, 0x0a, 0x8e, 0xb4, 0x07, 0x12, 0x16, 0x69, 0x5a, 0xbb, 0xa1, 0x79, 0x56, - 0x5a, 0xc4, 0x07, 0x13, 0x4b, 0x0f, 0x77, 0xa6, 0xb4, 0x92, 0xd8, 0x0d, 0xdb, 0xb7, 0xe4, 0xd2, - 0xe3, 0xd8, 0x05, 0x3f, 0x23, 0xce, 0xb4, 0x83, 0x5b, 0xf0, 0x5e, 0x68, 0xbe, 0x2d, 0x67, 0x9a, - 0x01, 0x28, 0xf8, 0x34, 0xec, 0xeb, 0x1a, 0xea, 0x7b, 0x20, 0xfb, 0x8e, 0x20, 0xdb, 0xd3, 0x25, - 0xdc, 0x8b, 0x90, 0xb0, 0x5b, 0xca, 0xef, 0xca, 0x90, 0x40, 0xda, 0xb8, 0x96, 0x69, 0x19, 0xeb, - 0xe8, 0x1b, 0xbb, 0xb3, 0xda, 0xf7, 0xa4, 0xd5, 0x38, 0x36, 0x60, 0xb5, 0x55, 0xd8, 0x23, 0x18, - 0x77, 0x37, 0xaf, 0xcf, 0xc9, 0xc0, 0xca, 0xd1, 0x6b, 0xc1, 0xd9, 0xfd, 0x30, 0x8c, 0x79, 0xe6, - 0x94, 0x15, 0x98, 0xa3, 0xd1, 0x83, 0x81, 0x70, 0xe6, 0xe7, 0x05, 0xb3, 0x8c, 0xf8, 0x5e, 0x09, - 0xe7, 0x2c, 0xe8, 0x75, 0x4a, 0x7e, 0x0a, 0x72, 0x92, 0xbc, 0x69, 0x61, 0x81, 0x6f, 0x57, 0x2c, - 0x9c, 0xc6, 0x72, 0x0f, 0xd4, 0xdf, 0x6f, 0x9b, 0xaa, 0x35, 0x1f, 0x9c, 0x32, 0x97, 0x20, 0xeb, - 0xd5, 0x1b, 0x5a, 0xb5, 0x56, 0xb7, 0xb1, 0xb4, 0xdc, 0x99, 0xf1, 0x07, 0x72, 0xa6, 0x3c, 0x5c, - 0x89, 0xc1, 0x0a, 0x45, 0xc8, 0xb0, 0xc7, 0x5e, 0x5d, 0xf2, 0x87, 0x82, 0x68, 0xb0, 0x85, 0x12, - 0x81, 0x03, 0x2b, 0x25, 0xac, 0x79, 0x7b, 0x89, 0x7f, 0x3f, 0x92, 0x81, 0x43, 0x40, 0xb8, 0xf7, - 0x0d, 0xb5, 0x65, 0x62, 0x25, 0xec, 0xf3, 0x6b, 0xee, 0xa3, 0x17, 0xc5, 0x9a, 0x0d, 0x26, 0xe2, - 0xc2, 0x3c, 0x35, 0x4f, 0x30, 0x5d, 0x86, 0x93, 0xdd, 0x7f, 0xd1, 0xb3, 0x50, 0x20, 0x5b, 0x16, - 0x4e, 0xc0, 0x60, 0x20, 0x55, 0x86, 0x53, 0x3d, 0x20, 0xa8, 0xd2, 0xfe, 0x4c, 0x59, 0xb8, 0x09, - 0x62, 0x34, 0xed, 0x85, 0xc3, 0x3f, 0x26, 0xe0, 0x4c, 0xbd, 0xf0, 0x41, 0x48, 0xc8, 0x74, 0x17, - 0x0e, 0xfd, 0xb8, 0x80, 0x7a, 0x10, 0x0a, 0x97, 0xa9, 0x2e, 0x1c, 0xfe, 0x09, 0x09, 0x97, 0x10, - 0x0a, 0xef, 0xdd, 0x84, 0x2f, 0x7c, 0x2a, 0x26, 0xc2, 0x95, 0xb4, 0x1d, 0xfd, 0xe6, 0xc3, 0x73, - 0x5c, 0x38, 0xfa, 0x41, 0xf1, 0x72, 0x89, 0x28, 0xdc, 0x02, 0xf1, 0x1e, 0x0d, 0xfe, 0x69, 0x01, - 0xe5, 0xfa, 0x98, 0x41, 0x52, 0xbe, 0xbc, 0x16, 0x0e, 0xff, 0x8c, 0x80, 0xfb, 0x51, 0xb4, 0xeb, - 0x22, 0xaf, 0x85, 0x13, 0x7c, 0x56, 0x76, 0x5d, 0x20, 0xa8, 0xd9, 0x64, 0x4a, 0x0b, 0x47, 0x7f, - 0x4e, 0x5a, 0x5d, 0x42, 0x70, 0x35, 0x25, 0xbd, 0x30, 0x15, 0x8e, 0xff, 0xbc, 0xc0, 0xb7, 0x30, - 0xd4, 0x02, 0xbe, 0x30, 0x19, 0x4e, 0xf1, 0x05, 0x69, 0x01, 0x1f, 0x8a, 0x2e, 0xa3, 0xf6, 0xd4, - 0x17, 0xce, 0xf4, 0x45, 0xb9, 0x8c, 0xda, 0x32, 0x1f, 0x9d, 0x4d, 0x16, 0x2d, 0xc2, 0x29, 0xbe, - 0x24, 0x67, 0x93, 0xe9, 0xd3, 0x6e, 0xb4, 0xe7, 0x92, 0x70, 0x8e, 0xaf, 0xc8, 0x6e, 0xb4, 0xa5, - 0x12, 0xcc, 0x4c, 0x4a, 0x67, 0x1e, 0x09, 0xe7, 0x7b, 0x48, 0xf0, 0x0d, 0x77, 0xa4, 0x91, 0xc2, - 0xdd, 0xb0, 0xa7, 0x7b, 0x0e, 0x09, 0x67, 0x7d, 0xf8, 0x62, 0x5b, 0xd5, 0xef, 0x4f, 0x21, 0x98, - 0xf2, 0x46, 0xbb, 0xe5, 0x8f, 0x70, 0xda, 0x47, 0x2e, 0x06, 0x37, 0x76, 0xfe, 0xf4, 0x81, 0x15, - 0x1a, 0xb4, 0x42, 0x77, 0x38, 0xd7, 0x63, 0x82, 0xcb, 0x07, 0xa2, 0x4b, 0x43, 0x44, 0xee, 0x70, - 0xfc, 0xe3, 0x72, 0x69, 0x08, 0x04, 0x82, 0x13, 0x56, 0xd3, 0x34, 0xa9, 0x73, 0x28, 0x3b, 0xff, - 0xa4, 0x21, 0xf7, 0x97, 0xb7, 0xc5, 0xc2, 0x90, 0x00, 0x8c, 0xa1, 0x71, 0x52, 0x5b, 0x47, 0x1b, - 0x84, 0x20, 0xff, 0xfa, 0xb6, 0x0c, 0x08, 0x54, 0x1b, 0xd7, 0x13, 0xf0, 0x4d, 0x23, 0x3b, 0xc3, - 0x0e, 0xc1, 0xfe, 0xed, 0x6d, 0xf1, 0x99, 0xb5, 0x05, 0x69, 0x11, 0xf0, 0x8f, 0xb6, 0x3b, 0x13, - 0xbc, 0x11, 0x24, 0x60, 0x1b, 0xcd, 0x5b, 0x61, 0x80, 0xfe, 0xb2, 0xc3, 0xd5, 0x2b, 0x61, 0xe8, - 0xbf, 0x0b, 0xb4, 0xd4, 0xa7, 0x06, 0xab, 0xd9, 0x0d, 0x82, 0xb7, 0x4e, 0x18, 0xf6, 0x1f, 0x02, - 0xeb, 0x01, 0x28, 0xd8, 0xd0, 0x1d, 0xb7, 0x97, 0x71, 0xff, 0x53, 0x82, 0x25, 0x80, 0x76, 0x9a, - 0xde, 0x9f, 0x25, 0x5b, 0x61, 0xd8, 0x37, 0x65, 0xa7, 0x85, 0x3e, 0x06, 0xc0, 0x24, 0xbd, 0xe5, - 0x3f, 0x3d, 0x08, 0x01, 0xff, 0x4b, 0x80, 0x5b, 0x88, 0xe9, 0x43, 0xdd, 0x8f, 0x76, 0x60, 0xce, - 0x9e, 0xb3, 0xf9, 0xa1, 0x0e, 0x7c, 0x39, 0x0e, 0x47, 0x50, 0x07, 0xf3, 0xeb, 0x24, 0x5f, 0x93, - 0xbe, 0xf5, 0x3c, 0xe9, 0x31, 0xc9, 0xe3, 0x19, 0x4f, 0x30, 0xb6, 0xbb, 0x83, 0x9d, 0xfc, 0xcf, - 0xa2, 0x90, 0x98, 0x41, 0xb0, 0x7e, 0x5e, 0xdf, 0x52, 0xea, 0x30, 0x42, 0xef, 0x71, 0x71, 0xb2, - 0x23, 0x06, 0xe1, 0xea, 0xe2, 0x4c, 0xee, 0xba, 0x89, 0xd6, 0x5b, 0x25, 0x62, 0xa2, 0x8b, 0x3a, - 0xfb, 0xc4, 0x34, 0x9d, 0x7d, 0xe9, 0x0f, 0xe3, 0x97, 0x7c, 0xf2, 0x8f, 0xe3, 0x89, 0x85, 0xad, - 0xbb, 0xab, 0xa6, 0x43, 0x4f, 0x6d, 0x8d, 0x4e, 0x5d, 0xe5, 0x81, 0x08, 0xec, 0xef, 0xc2, 0xb1, - 0x28, 0x16, 0x84, 0x38, 0xaa, 0xbd, 0xb1, 0xc7, 0x57, 0x4b, 0x18, 0xef, 0x42, 0x3a, 0xf0, 0xfa, - 0xfd, 0xc6, 0xf6, 0xfa, 0x63, 0xa7, 0x21, 0xb7, 0xdd, 0x48, 0xe8, 0xcf, 0xc3, 0x70, 0xc6, 0xc5, - 0x4f, 0xc6, 0xe8, 0xad, 0x72, 0xb8, 0xf5, 0x5b, 0x15, 0xfa, 0x93, 0x84, 0x61, 0x5f, 0xef, 0xc4, - 0xcb, 0x78, 0x7b, 0xa1, 0xef, 0x78, 0x64, 0x4c, 0x87, 0x83, 0x61, 0x3d, 0xfd, 0x2f, 0x5f, 0x91, - 0x3f, 0x00, 0xfd, 0x5c, 0x48, 0x7f, 0xe0, 0x56, 0xb2, 0xdc, 0x9b, 0x6f, 0x64, 0x54, 0x51, 0x35, - 0x5e, 0xa5, 0x0f, 0xd3, 0xf3, 0x2f, 0xbd, 0x72, 0xe0, 0x92, 0x5f, 0xe3, 0xf5, 0x3b, 0xbc, 0x5e, - 0x7e, 0xe5, 0x40, 0xe4, 0x75, 0xbc, 0xde, 0xc4, 0xeb, 0x2d, 0xbc, 0xee, 0x7b, 0xf5, 0x40, 0xe4, - 0x19, 0xbc, 0x9e, 0xc3, 0xeb, 0x27, 0x78, 0xbd, 0x80, 0xd7, 0x4b, 0xaf, 0xa2, 0x3e, 0x5e, 0x2f, - 0xe3, 0xfd, 0xeb, 0xf8, 0xff, 0x4d, 0xfc, 0xff, 0x16, 0xfe, 0xbf, 0xef, 0x4f, 0x07, 0x22, 0xff, - 0x09, 0x00, 0x00, 0xff, 0xff, 0x61, 0xee, 0x66, 0x13, 0x03, 0x2d, 0x00, 0x00, + // 3795 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, + 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, + 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0xbf, 0xd3, 0x26, 0xae, 0xe3, 0xb6, 0x99, + 0x69, 0x9d, 0x26, 0xfd, 0x49, 0xfa, 0x93, 0x66, 0xfa, 0x94, 0x3e, 0xa4, 0xf5, 0x53, 0x27, 0x79, + 0xeb, 0x43, 0xa7, 0xb5, 0x18, 0xcf, 0xd4, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0xcc, 0xe8, 0xa5, + 0x73, 0xff, 0x16, 0xbb, 0x00, 0xc8, 0x05, 0xd3, 0x71, 0xf2, 0x44, 0xdc, 0x73, 0xcf, 0xf7, 0xed, + 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xd9, 0xbb, 0x84, 0xef, 0x5d, 0x86, 0xa5, 0xb6, 0x6d, 0xb7, 0x4d, + 0xbc, 0xd6, 0x75, 0x6c, 0xcf, 0xde, 0xef, 0xb5, 0xd6, 0x9a, 0xd8, 0xd5, 0x1d, 0xa3, 0xeb, 0xd9, + 0xce, 0x2a, 0x95, 0x29, 0x33, 0x4c, 0x63, 0x55, 0x68, 0x2c, 0x6f, 0xc3, 0xec, 0x75, 0xc3, 0xc4, + 0x1b, 0xbe, 0x62, 0x03, 0x7b, 0xca, 0x55, 0x48, 0xb4, 0x0c, 0x13, 0xe7, 0xa5, 0xa5, 0xf8, 0x4a, + 0xe6, 0xe2, 0xe3, 0xab, 0x03, 0xa0, 0xd5, 0x30, 0xa2, 0x4e, 0xc4, 0x2a, 0x45, 0x2c, 0xbf, 0x95, + 0x80, 0xb9, 0x11, 0xb3, 0x8a, 0x02, 0x09, 0x0b, 0x75, 0x08, 0xa3, 0xb4, 0x92, 0x56, 0xe9, 0x6f, + 0x25, 0x0f, 0x53, 0x5d, 0xa4, 0xdf, 0x41, 0x6d, 0x9c, 0x8f, 0x51, 0xb1, 0x18, 0x2a, 0x05, 0x80, + 0x26, 0xee, 0x62, 0xab, 0x89, 0x2d, 0xfd, 0x30, 0x1f, 0x5f, 0x8a, 0xaf, 0xa4, 0xd5, 0x80, 0x44, + 0x79, 0x1a, 0x66, 0xbb, 0xbd, 0x7d, 0xd3, 0xd0, 0xb5, 0x80, 0x1a, 0x2c, 0xc5, 0x57, 0x92, 0xaa, + 0xcc, 0x26, 0x36, 0xfa, 0xca, 0x17, 0x60, 0xe6, 0x1e, 0x46, 0x77, 0x82, 0xaa, 0x19, 0xaa, 0x9a, + 0x23, 0xe2, 0x80, 0x62, 0x19, 0xb2, 0x1d, 0xec, 0xba, 0xa8, 0x8d, 0x35, 0xef, 0xb0, 0x8b, 0xf3, + 0x09, 0xba, 0xfa, 0xa5, 0xa1, 0xd5, 0x0f, 0xae, 0x3c, 0xc3, 0x51, 0xbb, 0x87, 0x5d, 0xac, 0x94, + 0x20, 0x8d, 0xad, 0x5e, 0x87, 0x31, 0x24, 0x8f, 0xf1, 0x5f, 0xc5, 0xea, 0x75, 0x06, 0x59, 0x52, + 0x04, 0xc6, 0x29, 0xa6, 0x5c, 0xec, 0xdc, 0x35, 0x74, 0x9c, 0x9f, 0xa4, 0x04, 0x17, 0x86, 0x08, + 0x1a, 0x6c, 0x7e, 0x90, 0x43, 0xe0, 0x94, 0x32, 0xa4, 0xf1, 0x8b, 0x1e, 0xb6, 0x5c, 0xc3, 0xb6, + 0xf2, 0x53, 0x94, 0xe4, 0x89, 0x11, 0xbb, 0x88, 0xcd, 0xe6, 0x20, 0x45, 0x1f, 0xa7, 0x5c, 0x81, + 0x29, 0xbb, 0xeb, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0x4b, 0xd2, 0x4a, 0xe6, 0xe2, 0x07, 0x46, 0x06, + 0x42, 0x8d, 0xe9, 0xa8, 0x42, 0x59, 0xa9, 0x82, 0xec, 0xda, 0x3d, 0x47, 0xc7, 0x9a, 0x6e, 0x37, + 0xb1, 0x66, 0x58, 0x2d, 0x3b, 0x9f, 0xa6, 0x04, 0xe7, 0x86, 0x17, 0x42, 0x15, 0xcb, 0x76, 0x13, + 0x57, 0xad, 0x96, 0xad, 0xe6, 0xdc, 0xd0, 0x58, 0x59, 0x80, 0x49, 0xf7, 0xd0, 0xf2, 0xd0, 0x8b, + 0xf9, 0x2c, 0x8d, 0x10, 0x3e, 0x5a, 0xfe, 0xdf, 0x24, 0xcc, 0x8c, 0x13, 0x62, 0xd7, 0x20, 0xd9, + 0x22, 0xab, 0xcc, 0xc7, 0x4e, 0xe3, 0x03, 0x86, 0x09, 0x3b, 0x71, 0xf2, 0x87, 0x74, 0x62, 0x09, + 0x32, 0x16, 0x76, 0x3d, 0xdc, 0x64, 0x11, 0x11, 0x1f, 0x33, 0xa6, 0x80, 0x81, 0x86, 0x43, 0x2a, + 0xf1, 0x43, 0x85, 0xd4, 0x4d, 0x98, 0xf1, 0x4d, 0xd2, 0x1c, 0x64, 0xb5, 0x45, 0x6c, 0xae, 0x45, + 0x59, 0xb2, 0x5a, 0x11, 0x38, 0x95, 0xc0, 0xd4, 0x1c, 0x0e, 0x8d, 0x95, 0x0d, 0x00, 0xdb, 0xc2, + 0x76, 0x4b, 0x6b, 0x62, 0xdd, 0xcc, 0xa7, 0x8e, 0xf1, 0x52, 0x8d, 0xa8, 0x0c, 0x79, 0xc9, 0x66, + 0x52, 0xdd, 0x54, 0x9e, 0xeb, 0x87, 0xda, 0xd4, 0x31, 0x91, 0xb2, 0xcd, 0x0e, 0xd9, 0x50, 0xb4, + 0xed, 0x41, 0xce, 0xc1, 0x24, 0xee, 0x71, 0x93, 0xaf, 0x2c, 0x4d, 0x8d, 0x58, 0x8d, 0x5c, 0x99, + 0xca, 0x61, 0x6c, 0x61, 0xd3, 0x4e, 0x70, 0xa8, 0x7c, 0x10, 0x7c, 0x81, 0x46, 0xc3, 0x0a, 0x68, + 0x16, 0xca, 0x0a, 0xe1, 0x0e, 0xea, 0xe0, 0xc5, 0xab, 0x90, 0x0b, 0xbb, 0x47, 0x99, 0x87, 0xa4, + 0xeb, 0x21, 0xc7, 0xa3, 0x51, 0x98, 0x54, 0xd9, 0x40, 0x91, 0x21, 0x8e, 0xad, 0x26, 0xcd, 0x72, + 0x49, 0x95, 0xfc, 0x5c, 0x7c, 0x16, 0xa6, 0x43, 0x8f, 0x1f, 0x17, 0xb8, 0xfc, 0xf9, 0x49, 0x98, + 0x1f, 0x15, 0x73, 0x23, 0xc3, 0x7f, 0x01, 0x26, 0xad, 0x5e, 0x67, 0x1f, 0x3b, 0xf9, 0x38, 0x65, + 0xe0, 0x23, 0xa5, 0x04, 0x49, 0x13, 0xed, 0x63, 0x33, 0x9f, 0x58, 0x92, 0x56, 0x72, 0x17, 0x9f, + 0x1e, 0x2b, 0xaa, 0x57, 0xb7, 0x08, 0x44, 0x65, 0x48, 0xe5, 0xe3, 0x90, 0xe0, 0x29, 0x8e, 0x30, + 0x3c, 0x35, 0x1e, 0x03, 0x89, 0x45, 0x95, 0xe2, 0x94, 0x47, 0x21, 0x4d, 0xfe, 0x32, 0xdf, 0x4e, + 0x52, 0x9b, 0x53, 0x44, 0x40, 0xfc, 0xaa, 0x2c, 0x42, 0x8a, 0x86, 0x59, 0x13, 0x8b, 0xd2, 0xe0, + 0x8f, 0xc9, 0xc6, 0x34, 0x71, 0x0b, 0xf5, 0x4c, 0x4f, 0xbb, 0x8b, 0xcc, 0x1e, 0xa6, 0x01, 0x93, + 0x56, 0xb3, 0x5c, 0xf8, 0x29, 0x22, 0x53, 0xce, 0x41, 0x86, 0x45, 0xa5, 0x61, 0x35, 0xf1, 0x8b, + 0x34, 0xfb, 0x24, 0x55, 0x16, 0xa8, 0x55, 0x22, 0x21, 0x8f, 0xbf, 0xed, 0xda, 0x96, 0xd8, 0x5a, + 0xfa, 0x08, 0x22, 0xa0, 0x8f, 0x7f, 0x76, 0x30, 0xf1, 0x3d, 0x36, 0x7a, 0x79, 0x83, 0xb1, 0xb8, + 0xfc, 0x8d, 0x18, 0x24, 0xe8, 0x79, 0x9b, 0x81, 0xcc, 0xee, 0xad, 0x7a, 0x45, 0xdb, 0xa8, 0xed, + 0xad, 0x6f, 0x55, 0x64, 0x49, 0xc9, 0x01, 0x50, 0xc1, 0xf5, 0xad, 0x5a, 0x69, 0x57, 0x8e, 0xf9, + 0xe3, 0xea, 0xce, 0xee, 0x95, 0x4b, 0x72, 0xdc, 0x07, 0xec, 0x31, 0x41, 0x22, 0xa8, 0xf0, 0xcc, + 0x45, 0x39, 0xa9, 0xc8, 0x90, 0x65, 0x04, 0xd5, 0x9b, 0x95, 0x8d, 0x2b, 0x97, 0xe4, 0xc9, 0xb0, + 0xe4, 0x99, 0x8b, 0xf2, 0x94, 0x32, 0x0d, 0x69, 0x2a, 0x59, 0xaf, 0xd5, 0xb6, 0xe4, 0x94, 0xcf, + 0xd9, 0xd8, 0x55, 0xab, 0x3b, 0x9b, 0x72, 0xda, 0xe7, 0xdc, 0x54, 0x6b, 0x7b, 0x75, 0x19, 0x7c, + 0x86, 0xed, 0x4a, 0xa3, 0x51, 0xda, 0xac, 0xc8, 0x19, 0x5f, 0x63, 0xfd, 0xd6, 0x6e, 0xa5, 0x21, + 0x67, 0x43, 0x66, 0x3d, 0x73, 0x51, 0x9e, 0xf6, 0x1f, 0x51, 0xd9, 0xd9, 0xdb, 0x96, 0x73, 0xca, + 0x2c, 0x4c, 0xb3, 0x47, 0x08, 0x23, 0x66, 0x06, 0x44, 0x57, 0x2e, 0xc9, 0x72, 0xdf, 0x10, 0xc6, + 0x32, 0x1b, 0x12, 0x5c, 0xb9, 0x24, 0x2b, 0xcb, 0x65, 0x48, 0xd2, 0xe8, 0x52, 0x14, 0xc8, 0x6d, + 0x95, 0xd6, 0x2b, 0x5b, 0x5a, 0xad, 0xbe, 0x5b, 0xad, 0xed, 0x94, 0xb6, 0x64, 0xa9, 0x2f, 0x53, + 0x2b, 0x9f, 0xdc, 0xab, 0xaa, 0x95, 0x0d, 0x39, 0x16, 0x94, 0xd5, 0x2b, 0xa5, 0xdd, 0xca, 0x86, + 0x1c, 0x5f, 0xd6, 0x61, 0x7e, 0x54, 0x9e, 0x19, 0x79, 0x32, 0x02, 0x5b, 0x1c, 0x3b, 0x66, 0x8b, + 0x29, 0xd7, 0xd0, 0x16, 0x7f, 0x49, 0x82, 0xb9, 0x11, 0xb9, 0x76, 0xe4, 0x43, 0x9e, 0x87, 0x24, + 0x0b, 0x51, 0x56, 0x7d, 0x9e, 0x1c, 0x99, 0xb4, 0x69, 0xc0, 0x0e, 0x55, 0x20, 0x8a, 0x0b, 0x56, + 0xe0, 0xf8, 0x31, 0x15, 0x98, 0x50, 0x0c, 0x19, 0xf9, 0xb2, 0x04, 0xf9, 0xe3, 0xb8, 0x23, 0x12, + 0x45, 0x2c, 0x94, 0x28, 0xae, 0x0d, 0x1a, 0x70, 0xfe, 0xf8, 0x35, 0x0c, 0x59, 0xf1, 0xba, 0x04, + 0x0b, 0xa3, 0x1b, 0x95, 0x91, 0x36, 0x7c, 0x1c, 0x26, 0x3b, 0xd8, 0x3b, 0xb0, 0x45, 0xb1, 0xfe, + 0xd0, 0x88, 0x12, 0x40, 0xa6, 0x07, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3f, 0xae, 0xdb, 0x60, + 0xd6, 0x0c, 0x59, 0xfa, 0xb9, 0x18, 0x3c, 0x32, 0x92, 0x7c, 0xa4, 0xa1, 0x8f, 0x01, 0x18, 0x56, + 0xb7, 0xe7, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x9a, 0x4a, 0xe8, 0xd9, 0x27, 0xb9, 0xa7, 0xe7, 0xf9, + 0xf3, 0x71, 0x3a, 0x0f, 0x4c, 0x44, 0x15, 0xae, 0xf6, 0x0d, 0x4d, 0x50, 0x43, 0x0b, 0xc7, 0xac, + 0x74, 0xa8, 0xd6, 0x7d, 0x14, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0x69, 0xae, 0xe7, 0x60, 0xd4, 0x31, + 0xac, 0x36, 0x4d, 0xc0, 0xa9, 0x62, 0xb2, 0x85, 0x4c, 0x17, 0xab, 0x33, 0x6c, 0xba, 0x21, 0x66, + 0x09, 0x82, 0x56, 0x19, 0x27, 0x80, 0x98, 0x0c, 0x21, 0xd8, 0xb4, 0x8f, 0x58, 0xfe, 0xea, 0x14, + 0x64, 0x02, 0x6d, 0x9d, 0x72, 0x1e, 0xb2, 0xb7, 0xd1, 0x5d, 0xa4, 0x89, 0x56, 0x9d, 0x79, 0x22, + 0x43, 0x64, 0x75, 0xde, 0xae, 0x7f, 0x14, 0xe6, 0xa9, 0x8a, 0xdd, 0xf3, 0xb0, 0xa3, 0xe9, 0x26, + 0x72, 0x5d, 0xea, 0xb4, 0x14, 0x55, 0x55, 0xc8, 0x5c, 0x8d, 0x4c, 0x95, 0xc5, 0x8c, 0x72, 0x19, + 0xe6, 0x28, 0xa2, 0xd3, 0x33, 0x3d, 0xa3, 0x6b, 0x62, 0x8d, 0xbc, 0x3c, 0xb8, 0x34, 0x11, 0xfb, + 0x96, 0xcd, 0x12, 0x8d, 0x6d, 0xae, 0x40, 0x2c, 0x72, 0x95, 0x0d, 0x78, 0x8c, 0xc2, 0xda, 0xd8, + 0xc2, 0x0e, 0xf2, 0xb0, 0x86, 0x3f, 0xd3, 0x43, 0xa6, 0xab, 0x21, 0xab, 0xa9, 0x1d, 0x20, 0xf7, + 0x20, 0x3f, 0x4f, 0x08, 0xd6, 0x63, 0x79, 0x49, 0x3d, 0x4b, 0x14, 0x37, 0xb9, 0x5e, 0x85, 0xaa, + 0x95, 0xac, 0xe6, 0x27, 0x90, 0x7b, 0xa0, 0x14, 0x61, 0x81, 0xb2, 0xb8, 0x9e, 0x63, 0x58, 0x6d, + 0x4d, 0x3f, 0xc0, 0xfa, 0x1d, 0xad, 0xe7, 0xb5, 0xae, 0xe6, 0x1f, 0x0d, 0x3e, 0x9f, 0x5a, 0xd8, + 0xa0, 0x3a, 0x65, 0xa2, 0xb2, 0xe7, 0xb5, 0xae, 0x2a, 0x0d, 0xc8, 0x92, 0xcd, 0xe8, 0x18, 0x2f, + 0x61, 0xad, 0x65, 0x3b, 0xb4, 0xb2, 0xe4, 0x46, 0x9c, 0xec, 0x80, 0x07, 0x57, 0x6b, 0x1c, 0xb0, + 0x6d, 0x37, 0x71, 0x31, 0xd9, 0xa8, 0x57, 0x2a, 0x1b, 0x6a, 0x46, 0xb0, 0x5c, 0xb7, 0x1d, 0x12, + 0x50, 0x6d, 0xdb, 0x77, 0x70, 0x86, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x0c, 0x73, 0xba, 0xce, + 0xd6, 0x6c, 0xe8, 0x1a, 0x6f, 0xf1, 0xdd, 0xbc, 0x1c, 0x72, 0x96, 0xae, 0x6f, 0x32, 0x05, 0x1e, + 0xe3, 0xae, 0xf2, 0x1c, 0x3c, 0xd2, 0x77, 0x56, 0x10, 0x38, 0x3b, 0xb4, 0xca, 0x41, 0xe8, 0x65, + 0x98, 0xeb, 0x1e, 0x0e, 0x03, 0x95, 0xd0, 0x13, 0xbb, 0x87, 0x83, 0xb0, 0x27, 0xe8, 0x6b, 0x9b, + 0x83, 0x75, 0xe4, 0xe1, 0x66, 0xfe, 0x4c, 0x50, 0x3b, 0x30, 0xa1, 0xac, 0x81, 0xac, 0xeb, 0x1a, + 0xb6, 0xd0, 0xbe, 0x89, 0x35, 0xe4, 0x60, 0x0b, 0xb9, 0xf9, 0x73, 0x41, 0xe5, 0x9c, 0xae, 0x57, + 0xe8, 0x6c, 0x89, 0x4e, 0x2a, 0x4f, 0xc1, 0xac, 0xbd, 0x7f, 0x5b, 0x67, 0x91, 0xa5, 0x75, 0x1d, + 0xdc, 0x32, 0x5e, 0xcc, 0x3f, 0x4e, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, 0xa9, 0x58, 0x79, + 0x12, 0x64, 0xdd, 0x3d, 0x40, 0x4e, 0x97, 0x96, 0x76, 0xb7, 0x8b, 0x74, 0x9c, 0x7f, 0x82, 0xa9, + 0x32, 0xf9, 0x8e, 0x10, 0x93, 0xc8, 0x76, 0xef, 0x19, 0x2d, 0x4f, 0x30, 0x5e, 0x60, 0x91, 0x4d, + 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x2c, 0xc3, 0xf2, 0xb0, 0xd3, 0x75, 0x30, 0x69, 0xe2, 0xd9, + 0x49, 0xcc, 0xff, 0xcb, 0xd4, 0x31, 0x6d, 0xf8, 0x5e, 0x50, 0x9b, 0x05, 0x80, 0x3a, 0xd7, 0x1b, + 0x16, 0x2e, 0x17, 0x21, 0x1b, 0x8c, 0x0b, 0x25, 0x0d, 0x2c, 0x32, 0x64, 0x89, 0xd4, 0xd8, 0x72, + 0x6d, 0x83, 0x54, 0xc7, 0x4f, 0x57, 0xe4, 0x18, 0xa9, 0xd2, 0x5b, 0xd5, 0xdd, 0x8a, 0xa6, 0xee, + 0xed, 0xec, 0x56, 0xb7, 0x2b, 0x72, 0xfc, 0xa9, 0x74, 0xea, 0xed, 0x29, 0xf9, 0xfe, 0xfd, 0xfb, + 0xf7, 0x63, 0xcb, 0xdf, 0x8e, 0x41, 0x2e, 0xdc, 0x19, 0x2b, 0x3f, 0x01, 0x67, 0xc4, 0x6b, 0xac, + 0x8b, 0x3d, 0xed, 0x9e, 0xe1, 0xd0, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe7, 0x5a, + 0x0d, 0xec, 0xbd, 0x60, 0x38, 0x24, 0x10, 0x3b, 0xc8, 0x53, 0xb6, 0xe0, 0x9c, 0x65, 0x6b, 0xae, + 0x87, 0xac, 0x26, 0x72, 0x9a, 0x5a, 0xff, 0x02, 0x41, 0x43, 0xba, 0x8e, 0x5d, 0xd7, 0x66, 0x25, + 0xc2, 0x67, 0xf9, 0x80, 0x65, 0x37, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb8, 0xea, 0x40, 0x44, 0xc4, + 0x8f, 0x8b, 0x88, 0x47, 0x21, 0xdd, 0x41, 0x5d, 0x0d, 0x5b, 0x9e, 0x73, 0x48, 0xfb, 0xb9, 0x94, + 0x9a, 0xea, 0xa0, 0x6e, 0x85, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfa, 0xf1, 0x1f, 0xe3, 0x90, 0x0d, + 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xe0, 0x89, 0x1d, 0xe0, 0x6a, + 0x99, 0x24, 0xf6, 0xe2, 0x24, 0xeb, 0xb4, 0x54, 0x86, 0x24, 0x45, 0x95, 0x9c, 0x69, 0xcc, 0xfa, + 0xf7, 0x94, 0xca, 0x47, 0xca, 0x26, 0x4c, 0xde, 0x76, 0x29, 0xf7, 0x24, 0xe5, 0x7e, 0xfc, 0x64, + 0xee, 0x1b, 0x0d, 0x4a, 0x9e, 0xbe, 0xd1, 0xd0, 0x76, 0x6a, 0xea, 0x76, 0x69, 0x4b, 0xe5, 0x70, + 0xe5, 0x2c, 0x24, 0x4c, 0xf4, 0xd2, 0x61, 0xb8, 0x04, 0x50, 0xd1, 0xb8, 0x8e, 0x3f, 0x0b, 0x89, + 0x7b, 0x18, 0xdd, 0x09, 0x27, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0x7f, 0x0d, 0x92, 0xd4, 0x5f, 0x0a, + 0x00, 0xf7, 0x98, 0x3c, 0xa1, 0xa4, 0x20, 0x51, 0xae, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, + 0x56, 0xaf, 0x56, 0xca, 0x15, 0x39, 0xb6, 0x7c, 0x19, 0x26, 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdd, + 0x20, 0x4f, 0xf0, 0x21, 0xe7, 0x90, 0xc4, 0xec, 0xde, 0xf6, 0x7a, 0x45, 0x95, 0x63, 0xc1, 0xed, + 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x34, 0x31, 0xf5, 0xd7, 0x12, 0x64, 0x02, 0xed, 0x19, 0x69, + 0x0c, 0x90, 0x69, 0xda, 0xf7, 0x34, 0x64, 0x1a, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0x54, 0x22, 0x92, + 0x71, 0x37, 0xed, 0x47, 0x62, 0xfc, 0x6b, 0x12, 0xc8, 0x83, 0xad, 0xdd, 0x80, 0x81, 0xd2, 0x8f, + 0xd5, 0xc0, 0x57, 0x25, 0xc8, 0x85, 0xfb, 0xb9, 0x01, 0xf3, 0xce, 0xff, 0x58, 0xcd, 0x7b, 0x33, + 0x06, 0xd3, 0xa1, 0x2e, 0x6e, 0x5c, 0xeb, 0x3e, 0x03, 0xb3, 0x46, 0x13, 0x77, 0xba, 0xb6, 0x87, + 0x2d, 0xfd, 0x50, 0x33, 0xf1, 0x5d, 0x6c, 0xe6, 0x97, 0x69, 0xa2, 0x58, 0x3b, 0xb9, 0x4f, 0x5c, + 0xad, 0xf6, 0x71, 0x5b, 0x04, 0x56, 0x9c, 0xab, 0x6e, 0x54, 0xb6, 0xeb, 0xb5, 0xdd, 0xca, 0x4e, + 0xf9, 0x96, 0xb6, 0xb7, 0xf3, 0x93, 0x3b, 0xb5, 0x17, 0x76, 0x54, 0xd9, 0x18, 0x50, 0x7b, 0x1f, + 0x8f, 0x7a, 0x1d, 0xe4, 0x41, 0xa3, 0x94, 0x33, 0x30, 0xca, 0x2c, 0x79, 0x42, 0x99, 0x83, 0x99, + 0x9d, 0x9a, 0xd6, 0xa8, 0x6e, 0x54, 0xb4, 0xca, 0xf5, 0xeb, 0x95, 0xf2, 0x6e, 0x83, 0xbd, 0x38, + 0xfb, 0xda, 0xbb, 0xe1, 0x43, 0xfd, 0x4a, 0x1c, 0xe6, 0x46, 0x58, 0xa2, 0x94, 0x78, 0xcf, 0xce, + 0x5e, 0x23, 0x3e, 0x32, 0x8e, 0xf5, 0xab, 0xa4, 0x2b, 0xa8, 0x23, 0xc7, 0xe3, 0x2d, 0xfe, 0x93, + 0x40, 0xbc, 0x64, 0x79, 0x46, 0xcb, 0xc0, 0x0e, 0xbf, 0x67, 0x60, 0x8d, 0xfc, 0x4c, 0x5f, 0xce, + 0xae, 0x1a, 0x3e, 0x0c, 0x4a, 0xd7, 0x76, 0x0d, 0xcf, 0xb8, 0x8b, 0x35, 0xc3, 0x12, 0x97, 0x12, + 0xa4, 0xb1, 0x4f, 0xa8, 0xb2, 0x98, 0xa9, 0x5a, 0x9e, 0xaf, 0x6d, 0xe1, 0x36, 0x1a, 0xd0, 0x26, + 0x09, 0x3c, 0xae, 0xca, 0x62, 0xc6, 0xd7, 0x3e, 0x0f, 0xd9, 0xa6, 0xdd, 0x23, 0x6d, 0x12, 0xd3, + 0x23, 0xf5, 0x42, 0x52, 0x33, 0x4c, 0xe6, 0xab, 0xf0, 0x3e, 0xb6, 0x7f, 0x1b, 0x92, 0x55, 0x33, + 0x4c, 0xc6, 0x54, 0x2e, 0xc0, 0x0c, 0x6a, 0xb7, 0x1d, 0x42, 0x2e, 0x88, 0x58, 0x67, 0x9e, 0xf3, + 0xc5, 0x54, 0x71, 0xf1, 0x06, 0xa4, 0x84, 0x1f, 0x48, 0x49, 0x26, 0x9e, 0xd0, 0xba, 0xec, 0x4e, + 0x2a, 0xb6, 0x92, 0x56, 0x53, 0x96, 0x98, 0x3c, 0x0f, 0x59, 0xc3, 0xd5, 0xfa, 0x97, 0xa3, 0xb1, + 0xa5, 0xd8, 0x4a, 0x4a, 0xcd, 0x18, 0xae, 0x7f, 0x1b, 0xb6, 0xfc, 0x7a, 0x0c, 0x72, 0xe1, 0xcb, + 0x5d, 0x65, 0x03, 0x52, 0xa6, 0xad, 0x23, 0x1a, 0x5a, 0xec, 0xcb, 0xc2, 0x4a, 0xc4, 0x7d, 0xf0, + 0xea, 0x16, 0xd7, 0x57, 0x7d, 0xe4, 0xe2, 0xdf, 0x4b, 0x90, 0x12, 0x62, 0x65, 0x01, 0x12, 0x5d, + 0xe4, 0x1d, 0x50, 0xba, 0xe4, 0x7a, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xb7, 0x8b, 0x2c, 0x1a, + 0x02, 0x5c, 0x4e, 0xc6, 0x64, 0x5f, 0x4d, 0x8c, 0x9a, 0xb4, 0xed, 0xb7, 0x3b, 0x1d, 0x6c, 0x79, + 0xae, 0xd8, 0x57, 0x2e, 0x2f, 0x73, 0xb1, 0xf2, 0x34, 0xcc, 0x7a, 0x0e, 0x32, 0xcc, 0x90, 0x6e, + 0x82, 0xea, 0xca, 0x62, 0xc2, 0x57, 0x2e, 0xc2, 0x59, 0xc1, 0xdb, 0xc4, 0x1e, 0xd2, 0x0f, 0x70, + 0xb3, 0x0f, 0x9a, 0xa4, 0x37, 0x87, 0x67, 0xb8, 0xc2, 0x06, 0x9f, 0x17, 0xd8, 0xe5, 0xef, 0x4a, + 0x30, 0x2b, 0x5e, 0x54, 0x9a, 0xbe, 0xb3, 0xb6, 0x01, 0x90, 0x65, 0xd9, 0x5e, 0xd0, 0x5d, 0xc3, + 0xa1, 0x3c, 0x84, 0x5b, 0x2d, 0xf9, 0x20, 0x35, 0x40, 0xb0, 0xd8, 0x01, 0xe8, 0xcf, 0x1c, 0xeb, + 0xb6, 0x73, 0x90, 0xe1, 0x37, 0xf7, 0xf4, 0xf3, 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, + 0xca, 0x3c, 0x24, 0xf7, 0x71, 0xdb, 0xb0, 0xf8, 0x7d, 0x22, 0x1b, 0x88, 0x5b, 0xca, 0x84, 0x7f, + 0x4b, 0xb9, 0x7e, 0x13, 0xe6, 0x74, 0xbb, 0x33, 0x68, 0xee, 0xba, 0x3c, 0xf0, 0x7a, 0xed, 0x7e, + 0x42, 0xfa, 0x34, 0xf4, 0x5b, 0xcc, 0x2f, 0xc5, 0xe2, 0x9b, 0xf5, 0xf5, 0xaf, 0xc4, 0x16, 0x37, + 0x19, 0xae, 0x2e, 0x96, 0xa9, 0xe2, 0x96, 0x89, 0x75, 0x62, 0x3a, 0x7c, 0xff, 0x43, 0xf0, 0x91, + 0xb6, 0xe1, 0x1d, 0xf4, 0xf6, 0x57, 0x75, 0xbb, 0xb3, 0xd6, 0xb6, 0xdb, 0x76, 0xff, 0x73, 0x17, + 0x19, 0xd1, 0x01, 0xfd, 0xc5, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x62, 0xe4, 0xf7, 0xb1, 0xe2, 0x0e, + 0xcc, 0x71, 0x65, 0x8d, 0xde, 0xb9, 0xb3, 0x57, 0x03, 0xe5, 0xc4, 0x7b, 0x97, 0xfc, 0xd7, 0xdf, + 0xa2, 0xb5, 0x5a, 0x9d, 0xe5, 0x50, 0x32, 0xc7, 0x5e, 0x20, 0x8a, 0x2a, 0x3c, 0x12, 0xe2, 0x63, + 0xe7, 0x12, 0x3b, 0x11, 0x8c, 0xdf, 0xe6, 0x8c, 0x73, 0x01, 0xc6, 0x06, 0x87, 0x16, 0xcb, 0x30, + 0x7d, 0x1a, 0xae, 0xbf, 0xe5, 0x5c, 0x59, 0x1c, 0x24, 0xd9, 0x84, 0x19, 0x4a, 0xa2, 0xf7, 0x5c, + 0xcf, 0xee, 0xd0, 0xa4, 0x77, 0x32, 0xcd, 0xdf, 0xbd, 0xc5, 0x0e, 0x4a, 0x8e, 0xc0, 0xca, 0x3e, + 0xaa, 0x58, 0x04, 0xfa, 0x99, 0xa1, 0x89, 0x75, 0x33, 0x82, 0xe1, 0x0d, 0x6e, 0x88, 0xaf, 0x5f, + 0xfc, 0x14, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x89, 0xbe, 0x65, 0xca, 0x7f, 0xf7, 0x65, + 0x76, 0x16, 0xe7, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x5d, 0x6c, 0x63, 0xcf, 0xc3, 0x8e, 0xab, 0x21, + 0x73, 0x94, 0x79, 0x81, 0xd7, 0xf4, 0xfc, 0x17, 0xde, 0x09, 0xef, 0xe2, 0x26, 0x43, 0x96, 0x4c, + 0xb3, 0xb8, 0x07, 0x67, 0x46, 0x44, 0xc5, 0x18, 0x9c, 0xaf, 0x70, 0xce, 0xf9, 0xa1, 0xc8, 0x20, + 0xb4, 0x75, 0x10, 0x72, 0x7f, 0x2f, 0xc7, 0xe0, 0xfc, 0x6d, 0xce, 0xa9, 0x70, 0xac, 0xd8, 0x52, + 0xc2, 0x78, 0x03, 0x66, 0xef, 0x62, 0x67, 0xdf, 0x76, 0xf9, 0xd5, 0xc8, 0x18, 0x74, 0xaf, 0x72, + 0xba, 0x19, 0x0e, 0xa4, 0x77, 0x25, 0x84, 0xeb, 0x39, 0x48, 0xb5, 0x90, 0x8e, 0xc7, 0xa0, 0xf8, + 0x22, 0xa7, 0x98, 0x22, 0xfa, 0x04, 0x5a, 0x82, 0x6c, 0xdb, 0xe6, 0x65, 0x29, 0x1a, 0xfe, 0x1a, + 0x87, 0x67, 0x04, 0x86, 0x53, 0x74, 0xed, 0x6e, 0xcf, 0x24, 0x35, 0x2b, 0x9a, 0xe2, 0x77, 0x04, + 0x85, 0xc0, 0x70, 0x8a, 0x53, 0xb8, 0xf5, 0x77, 0x05, 0x85, 0x1b, 0xf0, 0xe7, 0xf3, 0x90, 0xb1, + 0x2d, 0xf3, 0xd0, 0xb6, 0xc6, 0x31, 0xe2, 0xf7, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0xe9, + 0x71, 0x37, 0xe2, 0xf7, 0xdf, 0x11, 0xc7, 0x43, 0xec, 0xc0, 0x26, 0xcc, 0x88, 0x04, 0x65, 0xd8, + 0xd6, 0x18, 0x14, 0x7f, 0xc0, 0x29, 0x72, 0x01, 0x18, 0x5f, 0x86, 0x87, 0x5d, 0xaf, 0x8d, 0xc7, + 0x21, 0x79, 0x5d, 0x2c, 0x83, 0x43, 0xb8, 0x2b, 0xf7, 0xb1, 0xa5, 0x1f, 0x8c, 0xc7, 0xf0, 0x65, + 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0xee, 0x20, 0xc7, 0x3d, 0x40, 0xe6, 0x58, 0xdb, 0xf1, + 0x87, 0x9c, 0x23, 0xeb, 0x83, 0xb8, 0x47, 0x7a, 0xd6, 0x69, 0x68, 0xbe, 0x22, 0x3c, 0x12, 0x80, + 0xf1, 0xa3, 0xe7, 0x7a, 0xf4, 0x02, 0xea, 0x34, 0x6c, 0x5f, 0x15, 0x47, 0x8f, 0x61, 0xb7, 0x83, + 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0x2f, 0x8d, 0x45, 0xf3, 0x47, 0x62, 0xa7, 0x29, 0x80, 0x80, 0x6f, + 0xc1, 0xd9, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x3f, 0xe6, 0x64, 0x0b, 0x23, 0x4a, 0x05, 0x4f, 0x09, + 0xa7, 0xa5, 0xfc, 0x13, 0x91, 0x12, 0xf0, 0x00, 0x57, 0x9d, 0xbc, 0x28, 0xb8, 0xa8, 0x75, 0x3a, + 0xaf, 0xfd, 0xa9, 0xf0, 0x1a, 0xc3, 0x86, 0xbc, 0xb6, 0x0b, 0x0b, 0x9c, 0xf1, 0x74, 0xfb, 0xfa, + 0x35, 0x91, 0x58, 0x19, 0x7a, 0x2f, 0xbc, 0xbb, 0x3f, 0x05, 0x8b, 0xbe, 0x3b, 0x45, 0x47, 0xea, + 0x6a, 0x1d, 0xd4, 0x1d, 0x83, 0xf9, 0xeb, 0x9c, 0x59, 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, 0x51, + 0x97, 0x90, 0xdf, 0x84, 0xbc, 0x20, 0xef, 0x59, 0x0e, 0xd6, 0xed, 0xb6, 0x65, 0xbc, 0x84, 0x9b, + 0x63, 0x50, 0xff, 0xd9, 0xc0, 0x56, 0xed, 0x05, 0xe0, 0x84, 0xb9, 0x0a, 0xb2, 0xdf, 0xab, 0x68, + 0x46, 0xa7, 0x6b, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0x8b, 0x9d, 0xf2, 0x71, 0x55, 0x0a, 0x2b, 0x56, + 0x20, 0x47, 0x87, 0xe3, 0x86, 0xe4, 0x5f, 0x70, 0xa2, 0xe9, 0x3e, 0x8a, 0x27, 0x0e, 0xdd, 0xee, + 0x74, 0x91, 0x33, 0x4e, 0xfe, 0xfb, 0x4b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xef, 0xb0, 0x8b, + 0x49, 0xb5, 0x1f, 0x83, 0xe1, 0x1b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x18, 0x14, + 0x7f, 0x25, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xb2, 0x5f, 0x68, 0x1d, 0xdc, 0x36, 0x5c, 0xcf, 0x61, + 0x7d, 0xf0, 0xc9, 0x54, 0xdf, 0x7c, 0x27, 0xdc, 0x84, 0xa9, 0x01, 0x68, 0xf1, 0x06, 0xcc, 0x0c, + 0xb4, 0x18, 0x4a, 0xd4, 0xff, 0x2c, 0xe4, 0x7f, 0xfa, 0x3d, 0x9e, 0x8c, 0xc2, 0x1d, 0x46, 0x71, + 0x8b, 0xec, 0x7b, 0xb8, 0x0f, 0x88, 0x26, 0x7b, 0xf9, 0x3d, 0x7f, 0xeb, 0x43, 0x6d, 0x40, 0xf1, + 0x3a, 0x4c, 0x87, 0x7a, 0x80, 0x68, 0xaa, 0xcf, 0x72, 0xaa, 0x6c, 0xb0, 0x05, 0x28, 0x5e, 0x86, + 0x04, 0xa9, 0xe7, 0xd1, 0xf0, 0x9f, 0xe1, 0x70, 0xaa, 0x5e, 0xfc, 0x18, 0xa4, 0x44, 0x1d, 0x8f, + 0x86, 0xfe, 0x2c, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, 0x1a, 0xfe, 0x73, 0x02, 0x2e, 0x20, + 0x04, 0x3e, 0xbe, 0x0b, 0xbf, 0xf5, 0x0b, 0x09, 0x9e, 0x87, 0x85, 0xef, 0xae, 0xc1, 0x14, 0x2f, + 0xde, 0xd1, 0xe8, 0xcf, 0xf1, 0x87, 0x0b, 0x44, 0xf1, 0x59, 0x48, 0x8e, 0xe9, 0xf0, 0x5f, 0xe4, + 0x50, 0xa6, 0x5f, 0x2c, 0x43, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc4, 0xe1, 0x41, 0x14, 0x31, + 0x9d, 0x17, 0xec, 0x68, 0x82, 0x5f, 0x16, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, 0xe8, + 0x5f, 0x11, 0x5e, 0x17, 0x90, 0xe2, 0xf3, 0x90, 0xf6, 0xf3, 0x6f, 0x34, 0xfe, 0x57, 0x39, 0xbe, + 0x8f, 0x21, 0x1e, 0x08, 0xe4, 0xff, 0x68, 0x8a, 0x5f, 0x13, 0x1e, 0x08, 0xa0, 0xc8, 0x31, 0x1a, + 0xac, 0xe9, 0xd1, 0x4c, 0xbf, 0x2e, 0x8e, 0xd1, 0x40, 0x49, 0x27, 0xbb, 0x49, 0xd3, 0x60, 0x34, + 0xc5, 0x6f, 0x88, 0xdd, 0xa4, 0xfa, 0xc4, 0x8c, 0xc1, 0x22, 0x19, 0xcd, 0xf1, 0x5b, 0xc2, 0x8c, + 0x81, 0x1a, 0x59, 0xac, 0x83, 0x32, 0x5c, 0x20, 0xa3, 0xf9, 0x3e, 0xcf, 0xf9, 0x66, 0x87, 0xea, + 0x63, 0xf1, 0x05, 0x58, 0x18, 0x5d, 0x1c, 0xa3, 0x59, 0xbf, 0xf0, 0xde, 0xc0, 0xeb, 0x4c, 0xb0, + 0x36, 0x16, 0x77, 0xfb, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x79, 0x2f, 0x9c, 0x68, 0x83, + 0x75, 0xb1, 0x58, 0x02, 0xe8, 0xd7, 0xa4, 0x68, 0xae, 0x57, 0x39, 0x57, 0x00, 0x44, 0x8e, 0x06, + 0x2f, 0x49, 0xd1, 0xf8, 0x2f, 0x8a, 0xa3, 0xc1, 0x11, 0xe4, 0x68, 0x88, 0x6a, 0x14, 0x8d, 0x7e, + 0x4d, 0x1c, 0x0d, 0x01, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x33, 0x4d, 0x12, 0x5b, 0xca, 0xc9, 0xff, + 0x46, 0x94, 0xff, 0xd7, 0x87, 0x1c, 0x2c, 0x00, 0xc5, 0xcb, 0x90, 0xc4, 0x9d, 0x7d, 0xdc, 0x8c, + 0x42, 0xfe, 0xdb, 0x43, 0x91, 0x4f, 0x88, 0x76, 0xf1, 0x79, 0x00, 0xf6, 0x32, 0x4d, 0xbf, 0x12, + 0x45, 0x60, 0xff, 0xfd, 0x21, 0xff, 0x0f, 0x85, 0x3e, 0xa4, 0x4f, 0xc0, 0xfe, 0xdf, 0xe1, 0x64, + 0x82, 0x77, 0xc2, 0x04, 0xf4, 0x05, 0xfc, 0x39, 0x98, 0xba, 0xed, 0xda, 0x96, 0x87, 0xda, 0x51, + 0xe8, 0xff, 0xe0, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb1, 0x1d, 0xec, 0xa1, 0xb6, 0x1b, 0x85, 0xfd, + 0x4f, 0x8e, 0xf5, 0x01, 0x04, 0xac, 0x23, 0xd7, 0x1b, 0x67, 0xdd, 0xff, 0x25, 0xc0, 0x02, 0x40, + 0x8c, 0x26, 0xbf, 0xef, 0xe0, 0xc3, 0x28, 0xec, 0xbb, 0xc2, 0x68, 0xae, 0x5f, 0xfc, 0x18, 0xa4, + 0xc9, 0x4f, 0xf6, 0x5f, 0x3b, 0x11, 0xe0, 0xff, 0xe6, 0xe0, 0x3e, 0x82, 0x3c, 0xd9, 0xf5, 0x9a, + 0x9e, 0x11, 0xed, 0xec, 0xff, 0xe1, 0x3b, 0x2d, 0xf4, 0x8b, 0x25, 0xc8, 0xb8, 0x5e, 0xb3, 0xd9, + 0xe3, 0x1d, 0x4d, 0x04, 0xfc, 0xfb, 0x0f, 0xfd, 0x97, 0x5c, 0x1f, 0xb3, 0x7e, 0x7e, 0xf4, 0x65, + 0x1d, 0x6c, 0xda, 0x9b, 0x36, 0xbb, 0xa6, 0x83, 0xdf, 0x4c, 0xc2, 0x8a, 0x6e, 0x77, 0xf6, 0x6d, + 0x77, 0x8d, 0x25, 0x94, 0x40, 0x32, 0x5a, 0xf3, 0xd7, 0x21, 0x2e, 0xdc, 0x7c, 0xc1, 0xe2, 0xe9, + 0xae, 0xea, 0x96, 0xff, 0x26, 0x0e, 0xa9, 0x32, 0x72, 0x3d, 0x74, 0x0f, 0x1d, 0x2a, 0x5d, 0x98, + 0x23, 0xbf, 0xb7, 0x51, 0x97, 0x5e, 0xfc, 0xf0, 0x93, 0xc6, 0xaf, 0x42, 0x3f, 0xbc, 0xda, 0x7f, + 0xaa, 0x40, 0xac, 0x8e, 0x50, 0xa7, 0x9f, 0x90, 0xd7, 0xe5, 0x37, 0xfe, 0xe9, 0xdc, 0xc4, 0xcf, + 0xff, 0xf3, 0xb9, 0xd4, 0xf6, 0xe1, 0x0b, 0x86, 0xe9, 0xda, 0x96, 0x3a, 0x8a, 0x5a, 0xf9, 0xac, + 0x04, 0x8f, 0x8e, 0x90, 0xef, 0xf0, 0xe3, 0xc8, 0x3f, 0x28, 0x5c, 0x1a, 0xf3, 0xd1, 0x02, 0xc6, + 0x4c, 0xc8, 0x86, 0x1e, 0x7f, 0xd2, 0x63, 0x16, 0x6f, 0x41, 0xfe, 0xb8, 0x95, 0x28, 0x32, 0xc4, + 0xef, 0xe0, 0x43, 0xfe, 0x4f, 0xa2, 0xe4, 0xa7, 0x72, 0xa1, 0xff, 0x4f, 0x66, 0xd2, 0x4a, 0xe6, + 0xe2, 0x6c, 0xc0, 0x3a, 0xfe, 0x30, 0x36, 0x5f, 0x8c, 0x5d, 0x95, 0x16, 0x11, 0x2c, 0x45, 0x59, + 0xfa, 0xff, 0x7c, 0xc4, 0x72, 0x01, 0x26, 0x99, 0x50, 0x99, 0x87, 0x64, 0xd5, 0xf2, 0xae, 0x5c, + 0xa2, 0x54, 0x71, 0x95, 0x0d, 0xd6, 0xb7, 0xde, 0x78, 0x50, 0x98, 0xf8, 0xce, 0x83, 0xc2, 0xc4, + 0x3f, 0x3c, 0x28, 0x4c, 0xbc, 0xf9, 0xa0, 0x20, 0xbd, 0xfd, 0xa0, 0x20, 0xbd, 0xfb, 0xa0, 0x20, + 0xfd, 0xe0, 0x41, 0x41, 0xba, 0x7f, 0x54, 0x90, 0xbe, 0x7c, 0x54, 0x90, 0xbe, 0x76, 0x54, 0x90, + 0xbe, 0x79, 0x54, 0x90, 0xbe, 0x75, 0x54, 0x90, 0xde, 0x38, 0x2a, 0x4c, 0x7c, 0xe7, 0xa8, 0x30, + 0xf1, 0xe6, 0x51, 0x41, 0x7a, 0xfb, 0xa8, 0x30, 0xf1, 0xee, 0x51, 0x41, 0xfa, 0xc1, 0x51, 0x61, + 0xe2, 0xfe, 0xf7, 0x0a, 0xd2, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x83, 0x4c, 0xd3, 0xf5, + 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -599,23 +620,6 @@ func valueToGoStringCastvalue(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringCastvalue(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { this := &Castaway{} if r.Intn(10) != 0 { @@ -679,7 +683,7 @@ func randStringCastvalue(r randyCastvalue) string { } return string(tmps) } -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byte) { +func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -687,43 +691,43 @@ func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldCastvalue(data, r, fieldNumber, wire) + dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldCastvalue(data []byte, r randyCastvalue, fieldNumber int, wire int) []byte { +func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateCastvalue(data, uint64(v5)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateCastvalue(data, uint64(key)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateCastvalue(data, uint64(ll)) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateCastvalue(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateCastvalue(data []byte, v uint64) []byte { +func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Castaway) Size() (n int) { var l int @@ -744,8 +748,9 @@ func (m *Castaway) Size() (n int) { l = 0 if v != nil { l = ((*Wilson)(v)).Size() + l += 1 + sovCastvalue(uint64(l)) } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) + mapEntrySize := 1 + sovCastvalue(uint64(k)) + l n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) } } @@ -831,8 +836,8 @@ func valueToStringCastvalue(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Castaway) Unmarshal(data []byte) error { - l := len(data) +func (m *Castaway) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -844,7 +849,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -872,7 +877,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -894,7 +899,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -909,62 +914,67 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + if m.CastMapValueMessage == nil { + m.CastMapValueMessage = make(map[int32]MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) + } else { + var mapvalue MyWilson + m.CastMapValueMessage[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -978,7 +988,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1000,7 +1010,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1015,66 +1025,71 @@ func (m *Castaway) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + if m.CastMapValueMessageNullable == nil { + m.CastMapValueMessageNullable = make(map[int32]*MyWilson) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalueUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalueUnsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) + } else { + var mapvalue *MyWilson + m.CastMapValueMessageNullable[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(data[iNdEx:]) + skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1084,7 +1099,7 @@ func (m *Castaway) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1094,8 +1109,8 @@ func (m *Castaway) Unmarshal(data []byte) error { } return nil } -func (m *Wilson) Unmarshal(data []byte) error { - l := len(data) +func (m *Wilson) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1107,7 +1122,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1135,7 +1150,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1145,7 +1160,7 @@ func (m *Wilson) Unmarshal(data []byte) error { m.Int64 = &v default: iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(data[iNdEx:]) + skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1155,7 +1170,7 @@ func (m *Wilson) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1165,8 +1180,8 @@ func (m *Wilson) Unmarshal(data []byte) error { } return nil } -func skipCastvalueUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipCastvalueUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1177,7 +1192,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1195,7 +1210,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1212,7 +1227,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1235,7 +1250,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1246,7 +1261,7 @@ func skipCastvalueUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipCastvalueUnsafe(data[start:]) + next, err := skipCastvalueUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -1270,28 +1285,31 @@ var ( ErrIntOverflowCastvalueUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/castvalue.proto", fileDescriptorCastvalue) } + var fileDescriptorCastvalue = []byte{ - // 346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xd2, 0x48, 0xce, 0xcf, 0x4d, - 0xca, 0x2f, 0xd6, 0x2f, 0xcd, 0x2b, 0x4e, 0x4c, 0x4b, 0x2d, 0xcd, 0xcb, 0x4d, 0x2c, 0x2a, 0xce, - 0x48, 0xcc, 0x49, 0x2d, 0xd2, 0x4f, 0x4e, 0x2c, 0x2e, 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, - 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, - 0xe9, 0x01, 0xf5, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, - 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90, 0x99, 0x8b, 0xc3, 0x19, 0xa8, 0x39, 0xb1, 0x3c, - 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4, 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, - 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, - 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, - 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86, 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x09, 0x27, 0x63, - 0xaa, 0x15, 0x6a, 0x61, 0xe4, 0x92, 0xc6, 0x62, 0x86, 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, - 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86, 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, - 0xe9, 0x64, 0xdc, 0xea, 0xa5, 0x22, 0xb9, 0x24, 0x70, 0xf9, 0x44, 0x48, 0x80, 0x8b, 0x39, 0x3b, - 0xb5, 0x12, 0x18, 0x08, 0x8c, 0x1a, 0xac, 0x41, 0x20, 0xa6, 0x90, 0x3a, 0x17, 0x2b, 0xd8, 0x2d, - 0x40, 0xd7, 0x31, 0x02, 0x5d, 0x27, 0x88, 0xe4, 0x3a, 0xa8, 0x65, 0x10, 0x79, 0x2b, 0x26, 0x0b, - 0x46, 0xa9, 0x44, 0x2e, 0x05, 0x42, 0x2e, 0xa5, 0xd0, 0x0a, 0x25, 0x39, 0x2e, 0x36, 0x88, 0xa0, - 0x90, 0x08, 0x17, 0xab, 0x67, 0x5e, 0x89, 0x99, 0x09, 0xd8, 0x28, 0xe6, 0x20, 0xd6, 0x4c, 0x10, - 0xc7, 0xc9, 0xe7, 0xc4, 0x43, 0x39, 0x86, 0x0b, 0x40, 0x7c, 0x03, 0x88, 0x1f, 0x3c, 0x94, 0x63, - 0x7c, 0x01, 0xc4, 0x1f, 0x80, 0xf8, 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63, 0x5c, 0x01, 0xc4, 0x1b, - 0x80, 0x78, 0x07, 0x10, 0x1f, 0x00, 0xe2, 0x13, 0x8f, 0x80, 0xea, 0x81, 0xf8, 0x01, 0x90, 0xfd, - 0x02, 0x48, 0x7f, 0x00, 0xd2, 0x3f, 0x80, 0x74, 0xc3, 0x63, 0x39, 0x46, 0x40, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x09, 0x08, 0xa5, 0x19, 0x96, 0x02, 0x00, 0x00, + // 366 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xe3, 0x40, + 0x10, 0xc5, 0x77, 0x62, 0xe5, 0x94, 0xdb, 0x5c, 0x91, 0xf3, 0x5d, 0x61, 0xe5, 0xa4, 0x89, 0x95, + 0xe6, 0x5c, 0x80, 0x2d, 0x45, 0x11, 0x42, 0x94, 0x41, 0x14, 0x48, 0x84, 0x22, 0x05, 0x88, 0x72, + 0x1d, 0x39, 0x4e, 0x84, 0xe3, 0x8d, 0xbc, 0x36, 0xc8, 0x5d, 0x0a, 0x2a, 0xfe, 0x12, 0x4a, 0x4a, + 0x4a, 0xe8, 0x52, 0xa6, 0xa4, 0x82, 0x78, 0x69, 0x52, 0xa6, 0x4c, 0x89, 0x62, 0x13, 0x3e, 0xa4, + 0xf0, 0x21, 0xd1, 0xcd, 0xbc, 0x9d, 0xf7, 0x7e, 0x6f, 0xa9, 0xd1, 0xe6, 0x7d, 0x9b, 0x0b, 0x2b, + 0xf2, 0x05, 0xeb, 0x38, 0x91, 0xdf, 0x67, 0x81, 0xe8, 0x32, 0xcf, 0x09, 0xac, 0x36, 0x13, 0xe1, + 0x09, 0xf3, 0x22, 0xc7, 0x1c, 0x04, 0x3c, 0xe4, 0xea, 0xcf, 0x67, 0xa1, 0xbc, 0xee, 0xf6, 0xc2, + 0x6e, 0x64, 0x9b, 0x6d, 0xde, 0xb7, 0x5c, 0xee, 0x72, 0x2b, 0xbd, 0xb0, 0xa3, 0x4e, 0xba, 0xa5, + 0x4b, 0x3a, 0x65, 0xce, 0xea, 0x8d, 0x42, 0x0b, 0xdb, 0x4c, 0x84, 0xec, 0x94, 0xc5, 0xea, 0x80, + 0xfe, 0x59, 0xcc, 0x4d, 0x36, 0x38, 0x58, 0x64, 0x35, 0x1d, 0x21, 0x98, 0xeb, 0x68, 0xa0, 0x2b, + 0x46, 0xb1, 0xb6, 0x66, 0xbe, 0x50, 0x97, 0x0e, 0x73, 0xc5, 0xf9, 0x8e, 0x1f, 0x06, 0x71, 0xa3, + 0x34, 0xba, 0xab, 0x90, 0xf3, 0xfb, 0x4a, 0xa1, 0x19, 0x1f, 0xf6, 0x3c, 0xc1, 0xfd, 0xd6, 0xaa, + 0x68, 0xf5, 0x0c, 0xe8, 0xbf, 0x15, 0xfa, 0x7e, 0xe4, 0x79, 0xcc, 0xf6, 0x1c, 0x2d, 0x97, 0xa2, + 0xeb, 0x5f, 0x44, 0x2f, 0x6d, 0x59, 0x85, 0x5f, 0x6f, 0xf0, 0x1f, 0x61, 0xca, 0x47, 0x54, 0x7b, + 0xef, 0x27, 0x6a, 0x89, 0x2a, 0xc7, 0x4e, 0xac, 0x81, 0x0e, 0x46, 0xbe, 0xb5, 0x18, 0xd5, 0xff, + 0x34, 0x9f, 0x76, 0xd1, 0x72, 0x3a, 0x18, 0xc5, 0xda, 0xef, 0x57, 0xed, 0x9e, 0x60, 0xd9, 0xfb, + 0x56, 0x6e, 0x13, 0xca, 0x8c, 0xea, 0x9f, 0x35, 0xfd, 0x26, 0xa2, 0x8a, 0xf4, 0x47, 0x26, 0xaa, + 0x7f, 0x69, 0x7e, 0xd7, 0x0f, 0x37, 0xea, 0x69, 0x94, 0xd2, 0xca, 0x96, 0xc6, 0xde, 0x28, 0x41, + 0x32, 0x4e, 0x90, 0xdc, 0x26, 0x48, 0x26, 0x09, 0xc2, 0x34, 0x41, 0x98, 0x25, 0x08, 0xf3, 0x04, + 0x61, 0x28, 0x11, 0x2e, 0x24, 0xc2, 0xa5, 0x44, 0xb8, 0x92, 0x08, 0xd7, 0x12, 0x61, 0x24, 0x91, + 0x8c, 0x25, 0x92, 0x89, 0x44, 0x98, 0x4a, 0x24, 0x33, 0x89, 0x30, 0x97, 0x48, 0x86, 0x0f, 0x08, + 0x8f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x9c, 0xbd, 0x09, 0x96, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto index e7e6dac3..22e94ea3 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go index 21bb4cf4..6b7dbc19 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go @@ -17,6 +17,7 @@ package castvalue import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestCastawayProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -73,11 +78,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -87,11 +92,11 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Castaway{} b.ResetTimer() @@ -105,21 +110,25 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { } func TestWilsonProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -147,11 +156,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -161,11 +170,11 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Wilson{} b.ResetTimer() @@ -224,9 +233,9 @@ func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -241,9 +250,9 @@ func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -258,9 +267,9 @@ func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -275,9 +284,9 @@ func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +301,18 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +320,18 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -368,13 +385,13 @@ func TestCastawaySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -404,13 +421,13 @@ func TestWilsonSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/mytypes.go b/vendor/github.com/gogo/protobuf/test/castvalue/mytypes.go index 9892212c..202656ee 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/mytypes.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/both/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/t.go b/vendor/github.com/gogo/protobuf/test/combos/both/t.go new file mode 100644 index 00000000..4112884a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/both/t.go @@ -0,0 +1,77 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) MarshalTo(data []byte) (n int, err error) { + return r.protoType().MarshalTo(data) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go index 4e571395..ce817e26 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -101,7 +107,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -280,21 +288,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -303,21 +311,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -326,21 +334,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -349,21 +357,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -372,19 +380,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -393,19 +401,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -414,16 +422,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -432,16 +440,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -450,16 +458,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -468,16 +476,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -486,9 +494,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -497,9 +505,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -508,8 +516,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -518,8 +526,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -528,8 +536,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -538,7 +546,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -547,8 +555,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -557,8 +565,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -567,8 +575,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -577,15 +585,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -594,15 +602,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -611,9 +619,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -622,9 +630,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -633,9 +641,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -644,8 +652,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -654,8 +662,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -664,8 +672,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -674,9 +682,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -685,7 +693,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -694,8 +702,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -704,7 +712,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -721,7 +729,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -730,9 +738,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -741,9 +749,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -752,9 +760,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -763,9 +771,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -799,9 +807,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -810,9 +818,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -846,9 +854,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -857,9 +865,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -867,25 +875,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -893,25 +895,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -920,8 +916,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -932,7 +928,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -945,9 +941,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -956,21 +952,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1099,7 +1095,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1108,21 +1104,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1131,21 +1127,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1154,21 +1150,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1177,16 +1173,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1195,10 +1191,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1207,9 +1203,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1220,8 +1216,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1230,7 +1226,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1240,7 +1236,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1254,7 +1250,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1263,7 +1259,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1272,7 +1268,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1283,7 +1279,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1292,7 +1288,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1302,8 +1298,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1311,12 +1307,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/both/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1324,7 +1375,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/both/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1332,7 +1384,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/both/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1340,7 +1393,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/both/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1348,7 +1402,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/both/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1356,7 +1411,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/both/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1364,7 +1420,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/both/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1372,7 +1429,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/both/thetest.proto", } func init() { @@ -1438,6 +1496,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4758,19 +4822,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4838,19 +4904,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6459,6 +6527,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6645,393 +6948,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6125 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xff, 0x0e, 0x87, 0x94, 0xa8, 0x43, 0x89, 0xa2, 0x66, 0xb5, 0x32, 0x2d, 0xaf, 0xf7, 0x41, - 0xcb, 0x6b, 0x59, 0xb1, 0xf5, 0x5a, 0xed, 0x8b, 0x4e, 0x1c, 0xf0, 0xb5, 0xb2, 0xf6, 0xaf, 0xd7, - 0x7f, 0x24, 0x25, 0x76, 0x5a, 0x80, 0xa0, 0xc8, 0x91, 0x44, 0x9b, 0x1a, 0xb2, 0x1c, 0xd2, 0xf6, - 0xe6, 0x43, 0x91, 0x26, 0x6d, 0x9a, 0xb4, 0xe8, 0x33, 0x2d, 0x9a, 0x77, 0x9c, 0x14, 0x69, 0x9c, - 0xf4, 0x95, 0xb4, 0x69, 0x50, 0x04, 0x45, 0x63, 0xa0, 0x48, 0xbb, 0xfd, 0x52, 0xb8, 0xf9, 0x54, - 0x14, 0x85, 0x91, 0x17, 0xd0, 0xb4, 0x4d, 0xdb, 0x04, 0x30, 0x90, 0x00, 0xc9, 0x87, 0xde, 0xf7, - 0xcc, 0xbd, 0x1c, 0x72, 0x46, 0x5e, 0x3b, 0xc9, 0x02, 0x5c, 0x91, 0xf7, 0x9c, 0xdf, 0x99, 0x33, - 0xe7, 0x75, 0xcf, 0xbd, 0x77, 0x48, 0xf8, 0xbb, 0x25, 0xb8, 0x70, 0xd8, 0x6c, 0x1e, 0x36, 0xac, - 0x85, 0x56, 0xbb, 0xd9, 0x69, 0xee, 0x77, 0x0f, 0x16, 0x6a, 0x96, 0x53, 0x6d, 0xd7, 0x5b, 0x9d, - 0x66, 0x7b, 0x9e, 0x8c, 0x19, 0xe3, 0x94, 0x63, 0x9e, 0x73, 0x64, 0x36, 0x60, 0xe2, 0x66, 0xbd, - 0x61, 0x15, 0x05, 0xe3, 0x8e, 0xd5, 0x31, 0xae, 0x43, 0xf4, 0x00, 0x0d, 0xa6, 0xb5, 0x0b, 0xfa, - 0x6c, 0x62, 0x79, 0x66, 0x5e, 0x01, 0xcd, 0xcb, 0x88, 0x6d, 0x3c, 0x6c, 0x12, 0x44, 0xe6, 0xdb, - 0x51, 0x38, 0xed, 0x43, 0x35, 0x0c, 0x88, 0xda, 0x95, 0x63, 0x2c, 0x51, 0x9b, 0x1d, 0x31, 0xc9, - 0x7b, 0x23, 0x0d, 0xc3, 0xad, 0x4a, 0xf5, 0x99, 0xca, 0xa1, 0x95, 0x8e, 0x90, 0x61, 0xfe, 0xd1, - 0x38, 0x07, 0x50, 0xb3, 0x5a, 0x96, 0x5d, 0xb3, 0xec, 0xea, 0xed, 0xb4, 0x8e, 0xb4, 0x18, 0x31, - 0x3d, 0x23, 0xc6, 0x9b, 0x60, 0xa2, 0xd5, 0xdd, 0x6f, 0xd4, 0xab, 0x65, 0x0f, 0x1b, 0x20, 0xb6, - 0x98, 0x99, 0xa2, 0x84, 0xa2, 0xcb, 0xfc, 0x10, 0x8c, 0x3f, 0x67, 0x55, 0x9e, 0xf1, 0xb2, 0x26, - 0x08, 0x6b, 0x12, 0x0f, 0x7b, 0x18, 0x0b, 0x30, 0x7a, 0x6c, 0x39, 0x0e, 0x52, 0xa0, 0xdc, 0xb9, - 0xdd, 0xb2, 0xd2, 0x51, 0x72, 0xf7, 0x17, 0x7a, 0xee, 0x5e, 0xbd, 0xf3, 0x04, 0x43, 0xed, 0x22, - 0x90, 0x91, 0x83, 0x11, 0xcb, 0xee, 0x1e, 0x53, 0x09, 0xb1, 0x3e, 0xf6, 0x2b, 0x21, 0x0e, 0x55, - 0x4a, 0x1c, 0xc3, 0x98, 0x88, 0x61, 0xc7, 0x6a, 0x3f, 0x5b, 0xaf, 0x5a, 0xe9, 0x21, 0x22, 0xe0, - 0xa1, 0x1e, 0x01, 0x3b, 0x94, 0xae, 0xca, 0xe0, 0x38, 0x74, 0x2b, 0x23, 0xd6, 0xf3, 0x1d, 0xcb, - 0x76, 0xea, 0x4d, 0x3b, 0x3d, 0x4c, 0x84, 0x3c, 0xe8, 0xe3, 0x45, 0xab, 0x51, 0x53, 0x45, 0xb8, - 0x38, 0xe3, 0x2a, 0x0c, 0x37, 0x5b, 0x1d, 0xf4, 0xce, 0x49, 0xc7, 0x91, 0x7f, 0x12, 0xcb, 0x67, - 0x7d, 0x03, 0x61, 0x8b, 0xf2, 0x98, 0x9c, 0xd9, 0x58, 0x83, 0x94, 0xd3, 0xec, 0xb6, 0xab, 0x56, - 0xb9, 0xda, 0xac, 0x59, 0xe5, 0xba, 0x7d, 0xd0, 0x4c, 0x8f, 0x10, 0x01, 0xe7, 0x7b, 0x6f, 0x84, - 0x30, 0x16, 0x10, 0xdf, 0x1a, 0x62, 0x33, 0x93, 0x8e, 0xf4, 0xd9, 0x98, 0x82, 0x21, 0xe7, 0xb6, - 0xdd, 0xa9, 0x3c, 0x9f, 0x1e, 0x25, 0x11, 0xc2, 0x3e, 0x65, 0x7e, 0x10, 0x83, 0xf1, 0x30, 0x21, - 0xf6, 0x18, 0xc4, 0x0e, 0xf0, 0x5d, 0xa2, 0x00, 0x3b, 0x81, 0x0d, 0x28, 0x46, 0x36, 0xe2, 0xd0, - 0x6b, 0x34, 0x62, 0x0e, 0x12, 0xb6, 0xe5, 0x74, 0xac, 0x1a, 0x8d, 0x08, 0x3d, 0x64, 0x4c, 0x01, - 0x05, 0xf5, 0x86, 0x54, 0xf4, 0x35, 0x85, 0xd4, 0x93, 0x30, 0x2e, 0x54, 0x2a, 0xb7, 0x2b, 0xf6, - 0x21, 0x8f, 0xcd, 0x85, 0x20, 0x4d, 0xe6, 0x4b, 0x1c, 0x67, 0x62, 0x98, 0x99, 0xb4, 0xa4, 0xcf, - 0x46, 0x11, 0xa0, 0x69, 0x5b, 0xcd, 0x03, 0x94, 0x5e, 0xd5, 0x06, 0x8a, 0x13, 0x7f, 0x2b, 0x6d, - 0x61, 0x96, 0x1e, 0x2b, 0x35, 0xe9, 0x68, 0xb5, 0x61, 0xdc, 0x70, 0x43, 0x6d, 0xb8, 0x4f, 0xa4, - 0x6c, 0xd0, 0x24, 0xeb, 0x89, 0xb6, 0x3d, 0x48, 0xb6, 0x2d, 0x1c, 0xf7, 0xc8, 0xc4, 0xf4, 0xce, - 0x46, 0x88, 0x12, 0xf3, 0x81, 0x77, 0x66, 0x32, 0x18, 0xbd, 0xb1, 0xb1, 0xb6, 0xf7, 0xa3, 0xf1, - 0x00, 0x88, 0x81, 0x32, 0x09, 0x2b, 0x20, 0x55, 0x68, 0x94, 0x0f, 0x6e, 0xa2, 0xb1, 0xe9, 0xeb, - 0x90, 0x94, 0xcd, 0x63, 0x4c, 0x42, 0xcc, 0xe9, 0x54, 0xda, 0x1d, 0x12, 0x85, 0x31, 0x93, 0x7e, - 0x30, 0x52, 0xa0, 0xa3, 0x22, 0x43, 0xaa, 0x5c, 0xcc, 0xc4, 0x6f, 0xa7, 0xaf, 0xc1, 0x98, 0x74, - 0xf9, 0xb0, 0xc0, 0xcc, 0x07, 0x87, 0x60, 0xd2, 0x2f, 0xe6, 0x7c, 0xc3, 0x1f, 0xa5, 0x0f, 0x8a, - 0x80, 0x7d, 0xab, 0x8d, 0xe2, 0x0e, 0x4b, 0x60, 0x9f, 0x50, 0x44, 0xc5, 0x1a, 0x95, 0x7d, 0xab, - 0x81, 0xa2, 0x49, 0x9b, 0x4d, 0x2e, 0xbf, 0x29, 0x54, 0x54, 0xcf, 0xaf, 0x63, 0x88, 0x49, 0x91, - 0xc6, 0xe3, 0x10, 0x65, 0x25, 0x0e, 0x4b, 0x98, 0x0b, 0x27, 0x01, 0xc7, 0xa2, 0x49, 0x70, 0xc6, - 0x7d, 0x30, 0x82, 0xff, 0x52, 0xdb, 0x0e, 0x11, 0x9d, 0xe3, 0x78, 0x00, 0xdb, 0xd5, 0x98, 0x86, - 0x38, 0x09, 0xb3, 0x9a, 0xc5, 0xa7, 0x06, 0xf1, 0x19, 0x3b, 0xa6, 0x66, 0x1d, 0x54, 0xba, 0x8d, - 0x4e, 0xf9, 0xd9, 0x4a, 0xa3, 0x6b, 0x91, 0x80, 0x41, 0x8e, 0x61, 0x83, 0x6f, 0xc3, 0x63, 0xc6, - 0x79, 0x48, 0xd0, 0xa8, 0xac, 0x23, 0xcc, 0xf3, 0xa4, 0xfa, 0xc4, 0x4c, 0x1a, 0xa8, 0x6b, 0x78, - 0x04, 0x5f, 0xfe, 0x69, 0x07, 0xe5, 0x02, 0x73, 0x2d, 0xb9, 0x04, 0x1e, 0x20, 0x97, 0xbf, 0xa6, - 0x16, 0xbe, 0xfb, 0xfd, 0x6f, 0x4f, 0x8d, 0xc5, 0xcc, 0x97, 0x22, 0x10, 0x25, 0xf9, 0x36, 0x0e, - 0x89, 0xdd, 0xa7, 0xb6, 0x4b, 0xe5, 0xe2, 0xd6, 0x5e, 0x7e, 0xbd, 0x94, 0xd2, 0x8c, 0x24, 0x00, - 0x19, 0xb8, 0xb9, 0xbe, 0x95, 0xdb, 0x4d, 0x45, 0xc4, 0xe7, 0xb5, 0xcd, 0xdd, 0xab, 0x2b, 0x29, - 0x5d, 0x00, 0xf6, 0xe8, 0x40, 0xd4, 0xcb, 0x70, 0x79, 0x39, 0x15, 0x43, 0x91, 0x30, 0x4a, 0x05, - 0xac, 0x3d, 0x59, 0x2a, 0x22, 0x8e, 0x21, 0x79, 0x04, 0xf1, 0x0c, 0x1b, 0x63, 0x30, 0x42, 0x46, - 0xf2, 0x5b, 0x5b, 0xeb, 0xa9, 0xb8, 0x90, 0xb9, 0xb3, 0x6b, 0xae, 0x6d, 0xae, 0xa6, 0x46, 0x84, - 0xcc, 0x55, 0x73, 0x6b, 0x6f, 0x3b, 0x05, 0x42, 0xc2, 0x46, 0x69, 0x67, 0x27, 0xb7, 0x5a, 0x4a, - 0x25, 0x04, 0x47, 0xfe, 0xa9, 0xdd, 0xd2, 0x4e, 0x6a, 0x54, 0x52, 0x0b, 0x5d, 0x62, 0x4c, 0x5c, - 0xa2, 0xb4, 0xb9, 0xb7, 0x91, 0x4a, 0x1a, 0x13, 0x30, 0x46, 0x2f, 0xc1, 0x95, 0x18, 0x57, 0x86, - 0x90, 0xa6, 0x29, 0x57, 0x11, 0x2a, 0x65, 0x42, 0x1a, 0x40, 0x1c, 0x46, 0xa6, 0x00, 0x31, 0x12, - 0x5d, 0x28, 0x8a, 0x93, 0xeb, 0xb9, 0x7c, 0x69, 0xbd, 0xbc, 0xb5, 0xbd, 0xbb, 0xb6, 0xb5, 0x99, - 0x5b, 0x47, 0xb6, 0x13, 0x63, 0x66, 0xe9, 0xff, 0xef, 0xad, 0x99, 0xa5, 0x22, 0xb2, 0x9f, 0x67, - 0x6c, 0xbb, 0x94, 0xdb, 0x45, 0x63, 0x7a, 0x66, 0x0e, 0x26, 0xfd, 0xea, 0x8c, 0x5f, 0x66, 0x64, - 0x3e, 0xa5, 0xc1, 0x69, 0x9f, 0x92, 0xe9, 0x9b, 0x45, 0x6f, 0x85, 0x18, 0x8d, 0x34, 0x3a, 0x89, - 0x3c, 0xec, 0x5b, 0x7b, 0x49, 0xdc, 0xf5, 0x4c, 0x24, 0x04, 0xe7, 0x9d, 0x48, 0xf5, 0x3e, 0x13, - 0x29, 0x16, 0xd1, 0x13, 0x4e, 0xef, 0xd1, 0x20, 0xdd, 0x4f, 0x76, 0x40, 0xbe, 0x47, 0xa4, 0x7c, - 0x7f, 0x4c, 0x55, 0xe0, 0x62, 0xff, 0x7b, 0xe8, 0xd1, 0xe2, 0x33, 0x1a, 0x4c, 0xf9, 0xf7, 0x1b, - 0xbe, 0x3a, 0x3c, 0x0e, 0x43, 0xc7, 0x56, 0xe7, 0xa8, 0xc9, 0xe7, 0xdc, 0x4b, 0x3e, 0x95, 0x1c, - 0x93, 0x55, 0x5b, 0x31, 0x94, 0x77, 0x2a, 0xd0, 0xfb, 0x35, 0x0d, 0x54, 0x9b, 0x1e, 0x4d, 0xdf, - 0x1f, 0x81, 0x33, 0xbe, 0xc2, 0x7d, 0x15, 0xbd, 0x1f, 0xa0, 0x6e, 0xb7, 0xba, 0x1d, 0x3a, 0xaf, - 0xd2, 0x32, 0x33, 0x42, 0x46, 0x48, 0x0a, 0xe3, 0x12, 0xd2, 0xed, 0x08, 0xba, 0x4e, 0xe8, 0x40, - 0x87, 0x08, 0xc3, 0x75, 0x57, 0xd1, 0x28, 0x51, 0xf4, 0x5c, 0x9f, 0x3b, 0xed, 0x99, 0xb2, 0x16, - 0x21, 0x55, 0x6d, 0xd4, 0x2d, 0xbb, 0x53, 0x76, 0x3a, 0x6d, 0xab, 0x72, 0x5c, 0xb7, 0x0f, 0x49, - 0x1d, 0x8d, 0x67, 0x63, 0x07, 0x95, 0x86, 0x63, 0x99, 0xe3, 0x94, 0xbc, 0xc3, 0xa9, 0x18, 0x41, - 0x26, 0x8b, 0xb6, 0x07, 0x31, 0x24, 0x21, 0x28, 0x59, 0x20, 0x32, 0x5f, 0x1b, 0x86, 0x84, 0xa7, - 0x3b, 0x33, 0x2e, 0xc2, 0xe8, 0xd3, 0x95, 0x67, 0x2b, 0x65, 0xde, 0x71, 0x53, 0x4b, 0x24, 0xf0, - 0xd8, 0x36, 0xeb, 0xba, 0x17, 0x61, 0x92, 0xb0, 0xa0, 0x7b, 0x44, 0x17, 0xaa, 0x36, 0x2a, 0x8e, - 0x43, 0x8c, 0x16, 0x27, 0xac, 0x06, 0xa6, 0x6d, 0x61, 0x52, 0x81, 0x53, 0x8c, 0x2b, 0x70, 0x9a, - 0x20, 0x8e, 0x51, 0xe1, 0xad, 0xb7, 0x1a, 0x56, 0x19, 0xaf, 0x01, 0x1c, 0x52, 0x4f, 0x85, 0x66, - 0x13, 0x98, 0x63, 0x83, 0x31, 0x60, 0x8d, 0x1c, 0x63, 0x15, 0xee, 0x27, 0xb0, 0x43, 0xcb, 0xb6, - 0xda, 0x95, 0x8e, 0x55, 0xb6, 0x7e, 0xa1, 0x8b, 0x78, 0xcb, 0x15, 0xbb, 0x56, 0x3e, 0xaa, 0x38, - 0x47, 0xe9, 0x49, 0xaf, 0x80, 0x7b, 0x31, 0xef, 0x2a, 0x63, 0x2d, 0x11, 0xce, 0x9c, 0x5d, 0x7b, - 0x02, 0xf1, 0x19, 0x59, 0x98, 0x22, 0x82, 0x90, 0x51, 0xd0, 0x3d, 0x97, 0xab, 0x47, 0x56, 0xf5, - 0x99, 0x72, 0xb7, 0x73, 0x70, 0x3d, 0x7d, 0x9f, 0x57, 0x02, 0x51, 0x72, 0x87, 0xf0, 0x14, 0x30, - 0xcb, 0x1e, 0xe2, 0x30, 0x76, 0x60, 0x14, 0xfb, 0xe3, 0xb8, 0xfe, 0x4e, 0xa4, 0x76, 0xb3, 0x4d, - 0xe6, 0x88, 0xa4, 0x4f, 0x72, 0x7b, 0x8c, 0x38, 0xbf, 0xc5, 0x00, 0x1b, 0xa8, 0x3f, 0xcd, 0xc6, - 0x76, 0xb6, 0x4b, 0xa5, 0xa2, 0x99, 0xe0, 0x52, 0x6e, 0x36, 0xdb, 0x38, 0xa6, 0x0e, 0x9b, 0xc2, - 0xc6, 0x09, 0x1a, 0x53, 0x87, 0x4d, 0x6e, 0x61, 0x64, 0xaf, 0x6a, 0x95, 0xde, 0x36, 0x5a, 0xbb, - 0xb0, 0x66, 0xdd, 0x49, 0xa7, 0x24, 0x7b, 0x55, 0xab, 0xab, 0x94, 0x81, 0x85, 0xb9, 0x83, 0x52, - 0xe2, 0x8c, 0x6b, 0x2f, 0x2f, 0x70, 0xa2, 0xe7, 0x2e, 0x55, 0x28, 0xba, 0x62, 0xeb, 0x76, 0x2f, - 0xd0, 0x90, 0xae, 0xd8, 0xba, 0xad, 0xc2, 0x1e, 0x24, 0x0b, 0xb0, 0xb6, 0x55, 0x45, 0x26, 0xaf, - 0xa5, 0xef, 0xf1, 0x72, 0x7b, 0x08, 0xc6, 0x02, 0x0a, 0xe4, 0x6a, 0xd9, 0xb2, 0x2b, 0xfb, 0xc8, - 0xf7, 0x95, 0x36, 0x7a, 0xe3, 0xa4, 0xcf, 0x7b, 0x99, 0x93, 0xd5, 0x6a, 0x89, 0x50, 0x73, 0x84, - 0x68, 0xcc, 0xc1, 0x44, 0x73, 0xff, 0xe9, 0x2a, 0x0d, 0xae, 0x32, 0x92, 0x73, 0x50, 0x7f, 0x3e, - 0x3d, 0x43, 0xcc, 0x34, 0x8e, 0x09, 0x24, 0xb4, 0xb6, 0xc9, 0xb0, 0xf1, 0x30, 0x12, 0xee, 0x1c, - 0x55, 0xda, 0x2d, 0x32, 0x49, 0x3b, 0xc8, 0xa8, 0x56, 0xfa, 0x41, 0xca, 0x4a, 0xc7, 0x37, 0xf9, - 0xb0, 0x51, 0x82, 0xf3, 0xf8, 0xe6, 0xed, 0x8a, 0xdd, 0x2c, 0x77, 0x1d, 0xab, 0xec, 0xaa, 0x28, - 0x7c, 0x71, 0x09, 0xab, 0x65, 0x9e, 0xe5, 0x6c, 0x7b, 0x0e, 0x2a, 0x66, 0x9c, 0x89, 0xbb, 0xe7, - 0x49, 0x98, 0xec, 0xda, 0x75, 0x1b, 0x85, 0x38, 0xa2, 0x60, 0x30, 0x4d, 0xd8, 0xf4, 0xbf, 0x0f, - 0xf7, 0x69, 0xba, 0xf7, 0xbc, 0xdc, 0x34, 0x48, 0xcc, 0xd3, 0xdd, 0xde, 0xc1, 0x4c, 0x16, 0x46, - 0xbd, 0xb1, 0x63, 0x8c, 0x00, 0x8d, 0x1e, 0x34, 0xbb, 0xa1, 0x19, 0xb5, 0xb0, 0x55, 0xc4, 0x73, - 0xe1, 0x3b, 0x4a, 0x68, 0x62, 0x43, 0x73, 0xf2, 0xfa, 0xda, 0x6e, 0xa9, 0x6c, 0xee, 0x6d, 0xee, - 0xae, 0x6d, 0x94, 0x52, 0xfa, 0xdc, 0x48, 0xfc, 0x3b, 0xc3, 0xa9, 0x77, 0xa1, 0x7f, 0x91, 0xcc, - 0x57, 0x23, 0x90, 0x94, 0xfb, 0x60, 0xe3, 0xcd, 0x70, 0x0f, 0x5f, 0xb4, 0x3a, 0x56, 0xa7, 0xfc, - 0x5c, 0xbd, 0x4d, 0xc2, 0xf9, 0xb8, 0x42, 0x3b, 0x49, 0xe1, 0x89, 0x49, 0xc6, 0x85, 0x96, 0xf7, - 0x6f, 0x47, 0x3c, 0x37, 0x09, 0x8b, 0xb1, 0x0e, 0xe7, 0x91, 0xc9, 0x50, 0xaf, 0x69, 0xd7, 0x2a, - 0xed, 0x5a, 0xd9, 0xdd, 0x2e, 0x28, 0x57, 0xaa, 0x28, 0x0e, 0x9c, 0x26, 0x9d, 0x49, 0x84, 0x94, - 0xb3, 0x76, 0x73, 0x87, 0x31, 0xbb, 0x25, 0x36, 0xc7, 0x58, 0x95, 0xa8, 0xd1, 0xfb, 0x45, 0x0d, - 0xea, 0xbd, 0x8e, 0x2b, 0x2d, 0x14, 0x36, 0x9d, 0xf6, 0x6d, 0xd2, 0xbd, 0xc5, 0xcd, 0x38, 0x1a, - 0x28, 0xe1, 0xcf, 0x6f, 0x9c, 0x0f, 0xbc, 0x76, 0xfc, 0x37, 0x1d, 0x46, 0xbd, 0x1d, 0x1c, 0x6e, - 0x88, 0xab, 0xa4, 0xcc, 0x6b, 0xa4, 0x0a, 0x3c, 0x30, 0xb0, 0xdf, 0x9b, 0x2f, 0xe0, 0xfa, 0x9f, - 0x1d, 0xa2, 0x7d, 0x95, 0x49, 0x91, 0x78, 0xee, 0xc5, 0xb1, 0x66, 0xd1, 0x6e, 0x3d, 0x6e, 0xb2, - 0x4f, 0xa8, 0xd8, 0x0d, 0x3d, 0xed, 0x10, 0xd9, 0x43, 0x44, 0xf6, 0xcc, 0x60, 0xd9, 0xb7, 0x76, - 0x88, 0xf0, 0x91, 0x5b, 0x3b, 0xe5, 0xcd, 0x2d, 0x73, 0x23, 0xb7, 0x6e, 0x32, 0xb8, 0x71, 0x2f, - 0x44, 0x1b, 0x95, 0x77, 0xde, 0x96, 0x67, 0x0a, 0x32, 0x14, 0xd6, 0xf0, 0x48, 0x02, 0xde, 0xf2, - 0x90, 0xeb, 0x33, 0x19, 0x7a, 0x03, 0x43, 0x7f, 0x01, 0x62, 0xc4, 0x5e, 0x06, 0x00, 0xb3, 0x58, - 0xea, 0x94, 0x11, 0x87, 0x68, 0x61, 0xcb, 0xc4, 0xe1, 0x8f, 0xe2, 0x9d, 0x8e, 0x96, 0xb7, 0xd7, - 0x4a, 0x05, 0x94, 0x01, 0x99, 0x2b, 0x30, 0x44, 0x8d, 0x80, 0x53, 0x43, 0x98, 0x01, 0x81, 0xe8, - 0x47, 0x26, 0x43, 0xe3, 0xd4, 0xbd, 0x8d, 0x7c, 0xc9, 0x4c, 0x45, 0xbc, 0xee, 0xfd, 0xb2, 0x06, - 0x09, 0x4f, 0x43, 0x85, 0xa7, 0xf2, 0x4a, 0xa3, 0xd1, 0x7c, 0xae, 0x5c, 0x69, 0xd4, 0x51, 0x85, - 0xa2, 0xfe, 0x01, 0x32, 0x94, 0xc3, 0x23, 0x61, 0xed, 0xf7, 0x13, 0x89, 0xcd, 0x8f, 0x6b, 0x90, - 0x52, 0x9b, 0x31, 0x45, 0x41, 0xed, 0xa7, 0xaa, 0xe0, 0x47, 0x35, 0x48, 0xca, 0x1d, 0x98, 0xa2, - 0xde, 0xc5, 0x9f, 0xaa, 0x7a, 0x1f, 0xd1, 0x60, 0x4c, 0xea, 0xbb, 0x7e, 0xa6, 0xb4, 0xfb, 0xb0, - 0x0e, 0xa7, 0x7d, 0x70, 0xa8, 0x00, 0xd1, 0x06, 0x95, 0xf6, 0xcc, 0x8f, 0x86, 0xb9, 0xd6, 0x3c, - 0x9e, 0xff, 0xb6, 0x2b, 0xed, 0x0e, 0xeb, 0x67, 0xd1, 0x7c, 0x59, 0xaf, 0xa1, 0xa2, 0x5a, 0x3f, - 0xa8, 0xa3, 0xf6, 0x8d, 0xae, 0x58, 0x68, 0xd7, 0x3a, 0xee, 0x8e, 0xd3, 0xe5, 0xf1, 0x23, 0x60, - 0xb4, 0x9a, 0x4e, 0xbd, 0x53, 0x7f, 0x16, 0x6f, 0xcf, 0xf1, 0x85, 0x34, 0xee, 0x62, 0xa3, 0x66, - 0x8a, 0x53, 0xd6, 0xec, 0x8e, 0xe0, 0xb6, 0xad, 0xc3, 0x8a, 0xc2, 0x8d, 0xcb, 0x90, 0x6e, 0xa6, - 0x38, 0x45, 0x70, 0xa3, 0x46, 0xb3, 0xd6, 0xec, 0xe2, 0x86, 0x80, 0xf2, 0xe1, 0xaa, 0xa7, 0x99, - 0x09, 0x3a, 0x26, 0x58, 0x58, 0xc7, 0xe6, 0xae, 0xe0, 0x47, 0xcd, 0x04, 0x1d, 0xa3, 0x2c, 0x0f, - 0xc1, 0x78, 0xe5, 0xf0, 0xb0, 0x8d, 0x85, 0x73, 0x41, 0xb4, 0x0d, 0x4d, 0x8a, 0x61, 0xc2, 0x38, - 0x7d, 0x0b, 0xe2, 0xdc, 0x0e, 0x78, 0x62, 0xc1, 0x96, 0x40, 0x73, 0x3e, 0xd9, 0x47, 0x89, 0xe0, - 0x45, 0xbd, 0xcd, 0x89, 0xe8, 0xa2, 0x75, 0xa7, 0xec, 0x6e, 0xe8, 0x45, 0x10, 0x3d, 0x6e, 0x26, - 0xea, 0x8e, 0xd8, 0xc1, 0xc9, 0x7c, 0x06, 0x4d, 0xaf, 0xf2, 0x86, 0xa4, 0x51, 0x84, 0x78, 0xa3, - 0x89, 0xe2, 0x03, 0x23, 0xe8, 0x6e, 0xf8, 0x6c, 0xc0, 0x1e, 0xe6, 0xfc, 0x3a, 0xe3, 0x37, 0x05, - 0x72, 0xfa, 0x9f, 0x34, 0x88, 0xf3, 0x61, 0x34, 0x51, 0x44, 0x5b, 0x95, 0xce, 0x11, 0x11, 0x17, - 0xcb, 0x47, 0x52, 0x9a, 0x49, 0x3e, 0xe3, 0x71, 0xd4, 0xcd, 0xd8, 0x24, 0x04, 0xd8, 0x38, 0xfe, - 0x8c, 0xfd, 0xda, 0xb0, 0x2a, 0x35, 0xd2, 0xe0, 0x36, 0x8f, 0x8f, 0x91, 0x27, 0x1d, 0xee, 0x57, - 0x36, 0x5e, 0x60, 0xc3, 0x78, 0x5f, 0xbc, 0xd3, 0xae, 0xd4, 0x1b, 0x12, 0x6f, 0x94, 0xf0, 0xa6, - 0x38, 0x41, 0x30, 0x67, 0xe1, 0x5e, 0x2e, 0xb7, 0x66, 0x75, 0x2a, 0xa8, 0x79, 0xae, 0xb9, 0xa0, - 0x21, 0xb2, 0xdb, 0x75, 0x0f, 0x63, 0x28, 0x32, 0x3a, 0xc7, 0xe6, 0x9f, 0x44, 0x8d, 0x6c, 0xf3, - 0x58, 0xb5, 0x44, 0x3e, 0xa5, 0xac, 0xbb, 0x9c, 0x27, 0xb4, 0x77, 0x80, 0xdb, 0x54, 0x7c, 0x2a, - 0xa2, 0xaf, 0x6e, 0xe7, 0x3f, 0x17, 0x99, 0x5e, 0xa5, 0xb8, 0x6d, 0x6e, 0x41, 0xd3, 0x3a, 0x68, - 0x58, 0x55, 0x6c, 0x1d, 0xf8, 0xe4, 0x03, 0xf0, 0xe8, 0x61, 0xbd, 0x73, 0xd4, 0xdd, 0x9f, 0x47, - 0x57, 0x58, 0x38, 0x6c, 0x1e, 0x36, 0xdd, 0xe3, 0x0c, 0xfc, 0x89, 0x7c, 0x20, 0xef, 0xd8, 0x91, - 0xc6, 0x88, 0x18, 0x9d, 0x0e, 0x3c, 0xff, 0xc8, 0x6e, 0xc2, 0x69, 0xc6, 0x5c, 0x26, 0x7b, 0xaa, - 0xb4, 0x05, 0x35, 0x06, 0x2e, 0xc8, 0xd3, 0x5f, 0xf8, 0x36, 0x99, 0x12, 0xcc, 0x09, 0x06, 0xc5, - 0x34, 0xda, 0xa4, 0x66, 0x4d, 0x38, 0x23, 0xc9, 0xa3, 0x31, 0x8c, 0x96, 0xdc, 0x83, 0x25, 0x7e, - 0x95, 0x49, 0x3c, 0xed, 0x91, 0xb8, 0xc3, 0xa0, 0xd9, 0x02, 0x8c, 0x9d, 0x44, 0xd6, 0xdf, 0x33, - 0x59, 0xa3, 0x96, 0x57, 0xc8, 0x2a, 0x8c, 0x13, 0x21, 0xd5, 0xae, 0xd3, 0x69, 0x1e, 0x93, 0x02, - 0x31, 0x58, 0xcc, 0x3f, 0x7c, 0x9b, 0x06, 0x55, 0x12, 0xc3, 0x0a, 0x02, 0x95, 0x7d, 0x1b, 0x4c, - 0xe2, 0x11, 0x92, 0x83, 0x5e, 0x69, 0xc1, 0x5b, 0x08, 0xe9, 0x7f, 0x7e, 0x0f, 0x8d, 0xbd, 0xd3, - 0x42, 0x80, 0x47, 0xae, 0xc7, 0x13, 0x87, 0x56, 0x07, 0xd5, 0x36, 0xb4, 0xfe, 0x6b, 0x34, 0x8c, - 0x81, 0x67, 0x0c, 0xe9, 0x0f, 0x7d, 0x57, 0xf6, 0xc4, 0x2a, 0x45, 0xe6, 0x1a, 0x8d, 0xec, 0x1e, - 0xdc, 0xe3, 0xe3, 0xd9, 0x10, 0x32, 0x3f, 0xcc, 0x64, 0x4e, 0xf6, 0x78, 0x17, 0x8b, 0xdd, 0x06, - 0x3e, 0x2e, 0xfc, 0x11, 0x42, 0xe6, 0x47, 0x98, 0x4c, 0x83, 0x61, 0xb9, 0x5b, 0xb0, 0xc4, 0x5b, - 0x30, 0x81, 0x56, 0xea, 0xfb, 0x4d, 0x87, 0xad, 0x7b, 0x43, 0x88, 0xfb, 0x28, 0x13, 0x37, 0xce, - 0x80, 0x64, 0x15, 0x8c, 0x65, 0xdd, 0x80, 0xf8, 0x01, 0x5a, 0x00, 0x85, 0x10, 0xf1, 0x31, 0x26, - 0x62, 0x18, 0xf3, 0x63, 0x68, 0x0e, 0x46, 0x0f, 0x9b, 0xac, 0x0c, 0x07, 0xc3, 0x3f, 0xce, 0xe0, - 0x09, 0x8e, 0x61, 0x22, 0x5a, 0xcd, 0x56, 0xb7, 0x81, 0x6b, 0x74, 0xb0, 0x88, 0x4f, 0x70, 0x11, - 0x1c, 0xc3, 0x44, 0x9c, 0xc0, 0xac, 0x2f, 0x70, 0x11, 0x8e, 0xc7, 0x9e, 0x6f, 0xc5, 0x7b, 0xbd, - 0x8d, 0xdb, 0x4d, 0x3b, 0x8c, 0x12, 0x9f, 0x64, 0x12, 0x80, 0x41, 0xb0, 0x80, 0xc7, 0x60, 0x24, - 0xac, 0x23, 0x3e, 0xcd, 0xe0, 0x71, 0x8b, 0x7b, 0x00, 0xe5, 0x19, 0x2f, 0x32, 0xf8, 0x6c, 0x25, - 0x58, 0xc4, 0x1f, 0x31, 0x11, 0x49, 0x0f, 0x8c, 0xdd, 0x46, 0xc7, 0x72, 0x3a, 0x68, 0xa9, 0x1e, - 0x42, 0xc8, 0x67, 0xf8, 0x6d, 0x30, 0x08, 0x33, 0xe5, 0xbe, 0x65, 0x57, 0x8f, 0xc2, 0x49, 0x78, - 0x91, 0x9b, 0x92, 0x63, 0xb0, 0x08, 0x54, 0x79, 0x8e, 0x2b, 0x6d, 0xb4, 0xb8, 0x6e, 0x84, 0x72, - 0xc7, 0x67, 0x99, 0x8c, 0x51, 0x01, 0x62, 0x16, 0xe9, 0xda, 0x27, 0x11, 0xf3, 0x39, 0x6e, 0x11, - 0x0f, 0x8c, 0xa5, 0x1e, 0x5a, 0x99, 0xe2, 0x4e, 0xe2, 0x24, 0xd2, 0xfe, 0x98, 0xa7, 0x1e, 0xc5, - 0x6e, 0x78, 0x25, 0x22, 0x4f, 0x3b, 0x68, 0x09, 0x1e, 0x46, 0xcc, 0x9f, 0x70, 0x4f, 0x13, 0x00, - 0x06, 0x3f, 0x05, 0xf7, 0xfa, 0x96, 0xfa, 0x10, 0xc2, 0xfe, 0x94, 0x09, 0x9b, 0xf2, 0x29, 0xf7, - 0xac, 0x24, 0x9c, 0x54, 0xe4, 0x9f, 0xf1, 0x92, 0x60, 0x29, 0xb2, 0xb6, 0x71, 0x1b, 0xeb, 0x54, - 0x0e, 0x4e, 0x66, 0xb5, 0x3f, 0xe7, 0x56, 0xa3, 0x58, 0xc9, 0x6a, 0xbb, 0x30, 0xc5, 0x24, 0x9e, - 0xcc, 0xaf, 0x9f, 0xe7, 0x85, 0x95, 0xa2, 0xf7, 0x64, 0xef, 0xfe, 0x1c, 0x4c, 0x0b, 0x73, 0xf2, - 0x0e, 0xcc, 0x29, 0xe3, 0x8d, 0x81, 0x60, 0xc9, 0x5f, 0x60, 0x92, 0x79, 0xc5, 0x17, 0x2d, 0x9c, - 0xb3, 0x51, 0x69, 0x61, 0xe1, 0x4f, 0x42, 0x9a, 0x0b, 0xef, 0xda, 0xa8, 0xc1, 0x6f, 0x1e, 0xda, - 0xc8, 0x8d, 0xb5, 0x10, 0xa2, 0xff, 0x42, 0x71, 0xd5, 0x9e, 0x07, 0x8e, 0x25, 0xaf, 0x41, 0x4a, - 0xf4, 0x1b, 0xe5, 0xfa, 0x71, 0xab, 0x89, 0x5a, 0xcb, 0xc1, 0x12, 0xff, 0x92, 0x7b, 0x4a, 0xe0, - 0xd6, 0x08, 0x2c, 0x5b, 0x82, 0x24, 0xf9, 0x18, 0x36, 0x24, 0xbf, 0xc8, 0x04, 0x8d, 0xb9, 0x28, - 0x56, 0x38, 0x50, 0xa7, 0x84, 0x7a, 0xde, 0x30, 0xf5, 0xef, 0xaf, 0x78, 0xe1, 0x60, 0x10, 0x1a, - 0x7d, 0xe3, 0xca, 0x4c, 0x6c, 0x04, 0x1d, 0xbf, 0xa6, 0x7f, 0xe9, 0x55, 0x96, 0xb3, 0xf2, 0x44, - 0x9c, 0x5d, 0xc7, 0xe6, 0x91, 0xa7, 0xcb, 0x60, 0x61, 0xef, 0x79, 0x55, 0x58, 0x48, 0x9a, 0x2d, - 0xb3, 0x37, 0x61, 0x4c, 0x9a, 0x2a, 0x83, 0x45, 0xfd, 0x32, 0x13, 0x35, 0xea, 0x9d, 0x29, 0xb3, - 0x57, 0x20, 0x8a, 0xa7, 0xbd, 0x60, 0xf8, 0xaf, 0x30, 0x38, 0x61, 0xcf, 0xbe, 0x05, 0xe2, 0x7c, - 0xba, 0x0b, 0x86, 0xbe, 0x97, 0x41, 0x05, 0x04, 0xc3, 0xf9, 0x54, 0x17, 0x0c, 0xff, 0x55, 0x0e, - 0xe7, 0x10, 0x0c, 0x0f, 0x6f, 0xc2, 0x97, 0x7e, 0x3d, 0xca, 0xca, 0x15, 0xb7, 0x1d, 0x3e, 0xf3, - 0xa1, 0x73, 0x5c, 0x30, 0xfa, 0xfd, 0xec, 0xe2, 0x1c, 0x91, 0xbd, 0x06, 0xb1, 0x90, 0x06, 0xff, - 0x0d, 0x06, 0xa5, 0xfc, 0x68, 0x06, 0x49, 0x78, 0xe6, 0xb5, 0x60, 0xf8, 0x6f, 0x32, 0xb8, 0x17, - 0x85, 0x55, 0x67, 0xf3, 0x5a, 0xb0, 0x80, 0xdf, 0xe2, 0xaa, 0x33, 0x04, 0x36, 0x1b, 0x9f, 0xd2, - 0x82, 0xd1, 0xbf, 0xcd, 0xad, 0xce, 0x21, 0x28, 0x9b, 0x46, 0x44, 0x99, 0x0a, 0xc6, 0xff, 0x0e, - 0xc3, 0xbb, 0x18, 0x6c, 0x01, 0x4f, 0x99, 0x0c, 0x16, 0xf1, 0xbb, 0xdc, 0x02, 0x1e, 0x14, 0x4e, - 0x23, 0x75, 0xea, 0x0b, 0x96, 0xf4, 0x01, 0x9e, 0x46, 0xca, 0xcc, 0x87, 0xbd, 0x49, 0xaa, 0x45, - 0xb0, 0x88, 0xdf, 0xe3, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0x75, 0x2e, 0x09, 0x96, 0xf1, 0x07, 0x5c, - 0x0d, 0x65, 0x2a, 0x41, 0x33, 0x93, 0xd1, 0x3b, 0x8f, 0x04, 0xcb, 0xfb, 0x20, 0x93, 0x37, 0xd1, - 0x33, 0x8d, 0x64, 0xdf, 0x0e, 0x53, 0xfe, 0x73, 0x48, 0xb0, 0xd4, 0x0f, 0xbd, 0xaa, 0x74, 0xfd, - 0xde, 0x29, 0x04, 0x4d, 0x79, 0x93, 0x7e, 0xf3, 0x47, 0xb0, 0xd8, 0x0f, 0xbf, 0x2a, 0x2f, 0xec, - 0xbc, 0xd3, 0x07, 0xea, 0xd0, 0xc0, 0x2d, 0xdd, 0xc1, 0xb2, 0x3e, 0xca, 0x64, 0x79, 0x40, 0x38, - 0x35, 0x58, 0xe5, 0x0e, 0xc6, 0x7f, 0x8c, 0xa7, 0x06, 0x43, 0x20, 0x70, 0xdc, 0xee, 0x36, 0x1a, - 0x38, 0x38, 0x8c, 0xc1, 0x8f, 0x34, 0xa4, 0xff, 0xe3, 0x47, 0x2c, 0x31, 0x38, 0x00, 0xd5, 0xd0, - 0x98, 0x75, 0xbc, 0x8f, 0x6c, 0x10, 0x80, 0xfc, 0xcf, 0x1f, 0xf1, 0x82, 0x80, 0xb9, 0x51, 0x3e, - 0x01, 0x5d, 0x34, 0x92, 0x3d, 0xec, 0x00, 0xec, 0x7f, 0xfd, 0x88, 0x1d, 0xb3, 0xba, 0x10, 0x57, - 0x00, 0x3d, 0xb4, 0x1d, 0x2c, 0xe0, 0xbb, 0xb2, 0x00, 0xb2, 0xd0, 0xbc, 0x01, 0xc3, 0xf8, 0xc9, - 0x8e, 0x4e, 0xe5, 0x30, 0x08, 0xfd, 0xdf, 0x0c, 0xcd, 0xf9, 0xb1, 0xc1, 0x8e, 0x9b, 0x6d, 0x0b, - 0xbd, 0x75, 0x82, 0xb0, 0xff, 0xc3, 0xb0, 0x02, 0x80, 0xc1, 0xd5, 0x8a, 0xd3, 0x09, 0x73, 0xdf, - 0xff, 0xcb, 0xc1, 0x1c, 0x80, 0x95, 0xc6, 0xef, 0x9f, 0xb1, 0x6e, 0x07, 0x61, 0xbf, 0xc7, 0x95, - 0x66, 0xfc, 0xa8, 0x00, 0x8e, 0xe0, 0xb7, 0xf4, 0xd1, 0x83, 0x00, 0xf0, 0xf7, 0x19, 0xd8, 0x45, - 0xe4, 0x2f, 0xfa, 0x6f, 0xed, 0xc0, 0x6a, 0x73, 0xb5, 0x49, 0x37, 0x75, 0xe0, 0xc5, 0x3a, 0xdc, - 0x8b, 0x78, 0xd0, 0xfc, 0xba, 0xb0, 0xdf, 0xec, 0x1c, 0x2d, 0x74, 0x8e, 0x2c, 0x5c, 0x7d, 0xd9, - 0x7e, 0x4c, 0x14, 0xbf, 0x9f, 0x3e, 0xd9, 0x26, 0x0e, 0x39, 0x91, 0xd9, 0xac, 0x63, 0xbd, 0x36, - 0xc9, 0x76, 0xa2, 0x71, 0x16, 0x86, 0x88, 0xa6, 0x4b, 0x64, 0xb7, 0x5b, 0xcb, 0x47, 0xef, 0xbc, - 0x72, 0xfe, 0x94, 0x39, 0x44, 0x9e, 0xcc, 0x5b, 0x12, 0xd4, 0x65, 0xb2, 0x99, 0x1f, 0x91, 0xa8, - 0xcb, 0x82, 0x7a, 0x99, 0x3e, 0xf6, 0x24, 0x51, 0x2f, 0x0b, 0xea, 0x0a, 0xd9, 0x19, 0xd3, 0x25, - 0xea, 0x8a, 0xa0, 0x5e, 0x21, 0x1b, 0x9c, 0x63, 0x12, 0xf5, 0x8a, 0xa0, 0x5e, 0x25, 0xdb, 0x9a, - 0x51, 0x89, 0x7a, 0x55, 0x50, 0xaf, 0x91, 0x1d, 0xcd, 0x09, 0x89, 0x7a, 0x4d, 0x50, 0xaf, 0x93, - 0x9d, 0x4c, 0x43, 0xa2, 0x5e, 0x17, 0xd4, 0x1b, 0xe4, 0x20, 0x7a, 0x58, 0xa2, 0xde, 0x30, 0xce, - 0xc1, 0x30, 0xb5, 0xc6, 0x22, 0x39, 0xbc, 0x19, 0x67, 0xe4, 0x61, 0x6a, 0x8e, 0x45, 0x97, 0xbe, - 0x44, 0x0e, 0x9d, 0x87, 0x64, 0xfa, 0x92, 0x4b, 0x5f, 0x26, 0x0f, 0x52, 0xa6, 0x64, 0xfa, 0xb2, - 0x4b, 0xbf, 0x9c, 0x1e, 0xc3, 0xd9, 0x2b, 0xd3, 0x2f, 0xbb, 0xf4, 0x95, 0x74, 0x12, 0x07, 0x8c, - 0x4c, 0x5f, 0x71, 0xe9, 0x57, 0xd2, 0xe3, 0x78, 0x33, 0x57, 0xa6, 0x5f, 0xc9, 0xbc, 0x9b, 0xb8, - 0xd7, 0x76, 0xdd, 0x3b, 0x25, 0xbb, 0x57, 0x38, 0x76, 0x4a, 0x76, 0xac, 0x70, 0xe9, 0x94, 0xec, - 0x52, 0xe1, 0xcc, 0x29, 0xd9, 0x99, 0xc2, 0x8d, 0x53, 0xb2, 0x1b, 0x85, 0x03, 0xa7, 0x64, 0x07, - 0x0a, 0xd7, 0x4d, 0xc9, 0xae, 0x13, 0x4e, 0x9b, 0x92, 0x9d, 0x26, 0xdc, 0x35, 0x25, 0xbb, 0x4b, - 0x38, 0x2a, 0xad, 0x38, 0xca, 0x75, 0x51, 0x5a, 0x71, 0x91, 0xeb, 0x9c, 0xb4, 0xe2, 0x1c, 0xd7, - 0x2d, 0x69, 0xc5, 0x2d, 0xae, 0x43, 0xd2, 0x8a, 0x43, 0x5c, 0x57, 0xa4, 0x15, 0x57, 0xb8, 0x4e, - 0x60, 0x39, 0x66, 0x5a, 0x2d, 0x9f, 0x1c, 0xd3, 0x07, 0xe6, 0x98, 0x3e, 0x30, 0xc7, 0xf4, 0x81, - 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, 0xe9, 0x03, 0x73, 0x4c, 0x1f, 0x98, 0x63, 0xfa, - 0xc0, 0x1c, 0xd3, 0x07, 0xe7, 0x98, 0x1e, 0x90, 0x63, 0x7a, 0x40, 0x8e, 0xe9, 0x01, 0x39, 0xa6, - 0x07, 0xe4, 0x98, 0x1e, 0x90, 0x63, 0x7a, 0xdf, 0x1c, 0x73, 0xdd, 0x3b, 0x25, 0xbb, 0xd7, 0x37, - 0xc7, 0xf4, 0x3e, 0x39, 0xa6, 0xf7, 0xc9, 0x31, 0xbd, 0x4f, 0x8e, 0xe9, 0x7d, 0x72, 0x4c, 0xef, - 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe4, 0x98, 0xde, 0x2f, 0xc7, 0xf4, 0xbe, 0x39, 0xa6, - 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, 0xef, 0x9b, 0x63, 0xba, 0x37, 0xc7, - 0xfe, 0x46, 0x07, 0x83, 0xe6, 0xd8, 0x36, 0x39, 0xfe, 0x67, 0xae, 0x38, 0xa7, 0x64, 0xda, 0x10, - 0x76, 0x5d, 0xca, 0x75, 0xc9, 0x39, 0x25, 0xd7, 0x64, 0xfa, 0xb2, 0xa0, 0xf3, 0x6c, 0x93, 0xe9, - 0x97, 0x05, 0x9d, 0xe7, 0x9b, 0x4c, 0x5f, 0x11, 0x74, 0x9e, 0x71, 0x32, 0xfd, 0x8a, 0xa0, 0xf3, - 0x9c, 0x93, 0xe9, 0x57, 0x05, 0x9d, 0x67, 0x9d, 0x4c, 0xbf, 0x26, 0xe8, 0x3c, 0xef, 0x64, 0xfa, - 0x75, 0x41, 0xe7, 0x99, 0x27, 0xd3, 0x6f, 0x18, 0x17, 0xd4, 0xdc, 0xe3, 0x0c, 0xc2, 0xb5, 0x17, - 0xd4, 0xec, 0x53, 0x38, 0x96, 0x5c, 0x0e, 0x9e, 0x7f, 0x0a, 0xc7, 0xb2, 0xcb, 0xc1, 0x33, 0x50, - 0xe1, 0xb8, 0x9c, 0x79, 0x1f, 0x71, 0x9f, 0xad, 0xba, 0x6f, 0x5a, 0x71, 0x5f, 0xc4, 0xe3, 0xba, - 0x69, 0xc5, 0x75, 0x11, 0x8f, 0xdb, 0xa6, 0x15, 0xb7, 0x45, 0x3c, 0x2e, 0x9b, 0x56, 0x5c, 0x16, - 0xf1, 0xb8, 0x6b, 0x5a, 0x71, 0x57, 0xc4, 0xe3, 0xaa, 0x69, 0xc5, 0x55, 0x11, 0x8f, 0x9b, 0xa6, - 0x15, 0x37, 0x45, 0x3c, 0x2e, 0x9a, 0x56, 0x5c, 0x14, 0xf1, 0xb8, 0x67, 0x5a, 0x71, 0x4f, 0xc4, - 0xe3, 0x9a, 0xb3, 0xaa, 0x6b, 0x22, 0x5e, 0xb7, 0x9c, 0x55, 0xdd, 0x12, 0xf1, 0xba, 0xe4, 0xac, - 0xea, 0x92, 0x88, 0xd7, 0x1d, 0x67, 0x55, 0x77, 0x44, 0xbc, 0xae, 0xf8, 0x71, 0x84, 0x77, 0x84, - 0x3b, 0x9d, 0x76, 0xb7, 0xda, 0xb9, 0xab, 0x8e, 0x70, 0x51, 0x6a, 0x1f, 0x12, 0xcb, 0xc6, 0x3c, - 0x69, 0x58, 0xbd, 0x1d, 0xa7, 0x32, 0x83, 0x2d, 0x4a, 0x8d, 0x85, 0x07, 0x61, 0xfb, 0x23, 0x56, - 0xee, 0xaa, 0x37, 0x5c, 0x94, 0xda, 0x8c, 0x60, 0xfd, 0xae, 0xbf, 0xe1, 0x1d, 0xdb, 0x4b, 0x11, - 0xde, 0xb1, 0x31, 0xf3, 0x9f, 0xb4, 0x63, 0x9b, 0x0b, 0x36, 0xb9, 0x30, 0xf6, 0x5c, 0xb0, 0xb1, - 0x7b, 0x66, 0x9d, 0xb0, 0x1d, 0xdc, 0x5c, 0xb0, 0x69, 0x85, 0x51, 0x5f, 0xdf, 0x7e, 0x8b, 0x45, - 0x30, 0x2a, 0x26, 0x3e, 0x11, 0x7c, 0xd2, 0x7e, 0x6b, 0x51, 0x2a, 0x25, 0x27, 0x8d, 0x60, 0xfd, - 0xc4, 0x11, 0x7c, 0xd2, 0xce, 0x6b, 0x51, 0x2a, 0x2f, 0x27, 0x8e, 0xe0, 0x37, 0xa0, 0x1f, 0x62, - 0x11, 0xec, 0x9a, 0xff, 0xa4, 0xfd, 0xd0, 0x5c, 0xb0, 0xc9, 0x7d, 0x23, 0x58, 0x3f, 0x41, 0x04, - 0x87, 0xe9, 0x8f, 0xe6, 0x82, 0x4d, 0xeb, 0x1f, 0xc1, 0x77, 0xdd, 0xcd, 0x7c, 0x42, 0x83, 0x09, - 0x74, 0x99, 0x12, 0xde, 0xc9, 0xa9, 0x59, 0x35, 0x66, 0xc7, 0x45, 0xa9, 0x12, 0xf4, 0x71, 0xf5, - 0xcb, 0xaf, 0x9c, 0x77, 0x2d, 0x7c, 0x05, 0xe2, 0xd4, 0xc2, 0x8b, 0x8b, 0xe9, 0x3b, 0x5a, 0x40, - 0x85, 0x8b, 0x1f, 0x30, 0x56, 0xe3, 0x22, 0x87, 0xa1, 0xb9, 0xe7, 0x6b, 0x9a, 0xa7, 0xca, 0x31, - 0x96, 0xa5, 0xc5, 0xcc, 0x07, 0x88, 0x86, 0xf6, 0x5d, 0x6b, 0xb8, 0x10, 0x4a, 0x43, 0x8f, 0x6e, - 0xf7, 0xf5, 0xe8, 0xe6, 0xd1, 0xaa, 0x0b, 0xe3, 0x08, 0xb6, 0x49, 0xbe, 0xc2, 0x17, 0x46, 0x25, - 0xca, 0xa3, 0xd4, 0x83, 0x45, 0x29, 0x2c, 0xbd, 0x08, 0x11, 0xd2, 0x72, 0x8d, 0xc8, 0xd4, 0xf1, - 0x65, 0x6d, 0xe9, 0xb2, 0x73, 0xfd, 0x2e, 0xeb, 0x56, 0x76, 0x71, 0xc1, 0xb9, 0x7e, 0x17, 0x74, - 0x73, 0x48, 0x5c, 0xea, 0x79, 0x3e, 0x39, 0xd3, 0x27, 0x3a, 0x50, 0x71, 0x88, 0xac, 0xd1, 0x07, - 0x13, 0x47, 0xf3, 0xa3, 0x58, 0xa9, 0x7f, 0x7d, 0xe5, 0x7c, 0x74, 0xaf, 0x8b, 0x74, 0x8d, 0xd4, - 0x6b, 0xc6, 0x2d, 0x88, 0xbd, 0x8d, 0x7d, 0x83, 0x06, 0x33, 0xac, 0x30, 0x86, 0x47, 0xfa, 0xee, - 0x11, 0xe1, 0x0b, 0x2f, 0xd0, 0x3d, 0xbc, 0xf9, 0xbd, 0xba, 0xdd, 0x59, 0x5a, 0xbe, 0xce, 0xbe, - 0x4c, 0x93, 0xf9, 0x79, 0x00, 0x7a, 0xcd, 0x22, 0xfe, 0x06, 0xc0, 0x26, 0x97, 0x4c, 0x2f, 0x7d, - 0x1d, 0x49, 0x5d, 0x09, 0x23, 0xf5, 0xd1, 0x1a, 0x42, 0x3f, 0x8a, 0xb7, 0xda, 0xe6, 0xf3, 0xb7, - 0xd1, 0x38, 0x97, 0xde, 0xe2, 0xb3, 0x1e, 0xbb, 0xaf, 0xb4, 0xe7, 0xbe, 0xe2, 0xd2, 0x3d, 0xdd, - 0x94, 0xef, 0x69, 0xf1, 0xb5, 0xde, 0xcf, 0xf3, 0x7c, 0x92, 0x50, 0x2c, 0xa9, 0x07, 0x59, 0x52, - 0xbf, 0x5b, 0x4b, 0xb6, 0x78, 0x7d, 0x54, 0xee, 0x55, 0x1f, 0x74, 0xaf, 0xfa, 0xdd, 0xdc, 0xeb, - 0x0f, 0x68, 0xb6, 0x8a, 0x7c, 0xda, 0xb3, 0xe9, 0x03, 0x71, 0x3f, 0x5b, 0x7b, 0x41, 0xaf, 0x6b, - 0x17, 0x90, 0x8d, 0xde, 0x79, 0xe1, 0xbc, 0x96, 0xf9, 0x44, 0x84, 0xdf, 0x39, 0x4d, 0xa4, 0xd7, - 0x76, 0xe7, 0x3f, 0x2b, 0x3d, 0xd5, 0x1b, 0x61, 0xa1, 0x8f, 0x6b, 0x30, 0xd5, 0x53, 0xc9, 0xa9, - 0x99, 0x5e, 0xdf, 0x72, 0x6e, 0x9f, 0xb4, 0x9c, 0x33, 0x05, 0xbf, 0xa8, 0xc1, 0xa4, 0x52, 0x5e, - 0xa9, 0x7a, 0x0b, 0x8a, 0x7a, 0xf7, 0xf4, 0x5e, 0x89, 0x30, 0x7a, 0xb4, 0xf3, 0xba, 0x57, 0x01, - 0x78, 0x24, 0x0b, 0xbf, 0xaf, 0x28, 0x7e, 0x3f, 0x2b, 0x00, 0x3e, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, - 0x6e, 0x42, 0x74, 0xb7, 0x6d, 0xe1, 0x2d, 0x88, 0xc8, 0x56, 0x9b, 0x69, 0x98, 0xa4, 0xf8, 0xad, - 0x76, 0xbe, 0x5d, 0xb1, 0xab, 0x47, 0x66, 0xa4, 0xd9, 0x46, 0x93, 0xad, 0x9e, 0x63, 0x5f, 0x35, - 0x4e, 0x2c, 0x8f, 0x53, 0x06, 0x34, 0xc0, 0x38, 0xf4, 0x8a, 0x5d, 0x43, 0x22, 0xa2, 0xeb, 0x56, - 0xe5, 0x80, 0x29, 0x01, 0x94, 0x07, 0x8f, 0x98, 0xd1, 0x06, 0xfa, 0x9f, 0x5d, 0xf0, 0x49, 0x88, - 0x73, 0xc1, 0xc6, 0x0c, 0x46, 0x1c, 0x74, 0xd8, 0x65, 0x19, 0x02, 0xab, 0xc3, 0x66, 0x2e, 0x84, - 0x3b, 0xe8, 0x18, 0x97, 0x20, 0x66, 0xd6, 0x0f, 0x8f, 0x3a, 0xec, 0xe2, 0xbd, 0x6c, 0xb1, 0x36, - 0x26, 0x67, 0x9e, 0x82, 0x11, 0xa1, 0xd1, 0xeb, 0x2c, 0xba, 0x48, 0x6f, 0x0d, 0xad, 0x84, 0x3d, - 0xf3, 0x09, 0xdf, 0xb7, 0x64, 0x5f, 0xe3, 0xbc, 0x00, 0x71, 0x64, 0x66, 0xb7, 0xe8, 0xf3, 0x8e, - 0x14, 0x9f, 0xb9, 0x93, 0xd1, 0xcc, 0xbb, 0x35, 0x88, 0x17, 0x2d, 0xab, 0x45, 0x0c, 0xfe, 0x20, - 0x44, 0x8b, 0xcd, 0xe7, 0x6c, 0xa6, 0xe0, 0x04, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x46, 0x6b, 0x88, - 0x8c, 0xd8, 0x3c, 0x76, 0x3f, 0x2d, 0xec, 0xee, 0xe1, 0x23, 0xb6, 0xcf, 0x48, 0xb6, 0x67, 0x0e, - 0xc4, 0x4c, 0x3d, 0xf6, 0xbf, 0x06, 0x09, 0xcf, 0x55, 0x8c, 0x59, 0xa6, 0x46, 0x44, 0x05, 0x7a, - 0x6d, 0x85, 0x35, 0xc9, 0x58, 0x30, 0x26, 0x5d, 0x18, 0x43, 0x3d, 0x26, 0xee, 0x03, 0x25, 0x66, - 0x9e, 0x93, 0xcd, 0xec, 0xcf, 0xca, 0x4c, 0xbd, 0x48, 0x6d, 0x44, 0xcc, 0x3d, 0x43, 0x83, 0xb3, - 0xbf, 0x13, 0x3b, 0xe8, 0x7d, 0x26, 0x06, 0xfa, 0x66, 0xbd, 0x91, 0x79, 0x0b, 0x00, 0x4d, 0x79, - 0xfc, 0xf8, 0x94, 0x92, 0x75, 0x49, 0x6e, 0xe0, 0xdd, 0x23, 0x6b, 0x17, 0xfd, 0xc5, 0x2c, 0x72, - 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0x87, 0x03, 0xf1, 0xbe, 0x9d, 0x18, 0x66, 0x4d, - 0x53, 0xd6, 0xa7, 0xac, 0x4e, 0xce, 0x6e, 0x76, 0x8e, 0xac, 0xb6, 0x82, 0x58, 0x36, 0x2e, 0x4b, - 0x09, 0x9b, 0x5c, 0xbe, 0x4f, 0x20, 0xfa, 0x82, 0x2e, 0x67, 0x3e, 0x4f, 0x14, 0xc4, 0xad, 0x40, - 0xcf, 0x0d, 0xea, 0x21, 0x6e, 0xd0, 0xb8, 0x2a, 0xf5, 0x6f, 0x03, 0xd4, 0x54, 0x96, 0x96, 0x37, - 0xa4, 0x75, 0xce, 0x60, 0x65, 0xe5, 0x35, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0xe1, 0x40, 0x95, 0xfb, - 0x74, 0xb7, 0x27, 0xb5, 0xa9, 0x1e, 0xd6, 0xa6, 0x5f, 0x16, 0x1d, 0x07, 0xfd, 0xb6, 0x37, 0xf9, - 0x8d, 0x00, 0xe3, 0x91, 0x40, 0xdf, 0x67, 0xb5, 0x82, 0x50, 0x75, 0x25, 0xac, 0xfb, 0xb3, 0x91, - 0x7c, 0x5e, 0xa8, 0x7b, 0xed, 0x04, 0x21, 0x90, 0x8d, 0x14, 0x0a, 0xa2, 0x6c, 0xc7, 0xdf, 0x87, - 0xb2, 0xf8, 0xc5, 0x17, 0xce, 0x9f, 0xca, 0x7c, 0x16, 0x29, 0xcf, 0x38, 0x3d, 0x81, 0xfb, 0xa8, - 0xa2, 0xfc, 0x19, 0x5e, 0x33, 0xfc, 0x2c, 0xf0, 0x13, 0x0b, 0xde, 0xaf, 0x6a, 0x90, 0xee, 0xd1, - 0x95, 0xdb, 0x7b, 0x31, 0x94, 0xca, 0x59, 0xad, 0xf4, 0xd3, 0xb7, 0xf9, 0x53, 0x10, 0xdb, 0xad, - 0x1f, 0x5b, 0x6d, 0x3c, 0x13, 0xe0, 0x37, 0x54, 0x65, 0x7e, 0x98, 0x13, 0xeb, 0xe0, 0x21, 0x4e, - 0xa3, 0xca, 0x49, 0x34, 0x7c, 0x9e, 0x10, 0x2d, 0x56, 0x3a, 0x15, 0xa2, 0xc1, 0xa8, 0xa8, 0xaf, - 0x68, 0x24, 0x73, 0x19, 0x46, 0x37, 0x6e, 0x93, 0xe7, 0x4c, 0x6a, 0xe4, 0x11, 0x0c, 0xb9, 0xfb, - 0xe3, 0xfd, 0xea, 0xd2, 0x5c, 0x2c, 0x5e, 0x4b, 0xdd, 0xd1, 0xb2, 0x51, 0xa2, 0xcf, 0xb3, 0x90, - 0xdc, 0xc2, 0x6a, 0x13, 0x9c, 0x04, 0xa3, 0x57, 0xd7, 0xc5, 0xcd, 0x2b, 0x4d, 0x99, 0xee, 0x36, - 0x65, 0x17, 0x40, 0xdb, 0x90, 0x5b, 0x27, 0xaf, 0x1e, 0xa6, 0x76, 0x3c, 0x17, 0x8d, 0x27, 0x53, - 0x13, 0xe8, 0x7f, 0x48, 0x8d, 0xb1, 0xeb, 0xfe, 0xa3, 0x0e, 0x29, 0xda, 0xea, 0x20, 0x27, 0xd6, - 0xed, 0x7a, 0xa7, 0xb7, 0x5f, 0x15, 0x1a, 0x1b, 0x6f, 0x85, 0x11, 0x6c, 0xd2, 0x9b, 0xec, 0xa7, - 0x76, 0xb0, 0xe9, 0x2f, 0xb2, 0x16, 0x45, 0x11, 0xc1, 0x06, 0x48, 0xe8, 0x90, 0x5f, 0xb5, 0x21, - 0x18, 0xb4, 0xc0, 0xd0, 0x37, 0x37, 0x37, 0xd8, 0xe4, 0xb6, 0x32, 0x10, 0xca, 0x1e, 0x72, 0x61, - 0x9f, 0xd8, 0x98, 0x73, 0x68, 0xea, 0xf6, 0xe6, 0x06, 0x0a, 0x9b, 0x08, 0x12, 0x43, 0x1b, 0xde, - 0x99, 0x30, 0x62, 0xcc, 0x88, 0xbd, 0x31, 0xfd, 0xb7, 0x1a, 0x8c, 0x49, 0xa3, 0x68, 0xb6, 0x1d, - 0xa5, 0x03, 0x9e, 0xdb, 0x1d, 0x32, 0x47, 0x6d, 0xcf, 0x18, 0xd7, 0x39, 0x72, 0x97, 0x3a, 0x4f, - 0xe7, 0xd0, 0xaa, 0x5d, 0x1e, 0x37, 0xe6, 0xc1, 0xf0, 0x0e, 0x31, 0x25, 0xe8, 0xcf, 0x94, 0x18, - 0x76, 0x0f, 0x25, 0x73, 0x3f, 0xaa, 0xc2, 0xc2, 0xae, 0xe2, 0xd7, 0x35, 0x36, 0x4b, 0x3b, 0xf8, - 0x87, 0x31, 0xb4, 0xcc, 0x97, 0x34, 0x48, 0xb0, 0xb6, 0xb5, 0xda, 0x6c, 0x59, 0x46, 0x1e, 0xb4, - 0x1c, 0x8b, 0x87, 0xd7, 0xa6, 0xb7, 0x56, 0x41, 0xb3, 0x93, 0x96, 0x0f, 0xef, 0x6a, 0x6d, 0xdf, - 0x58, 0x06, 0xad, 0xc0, 0x1c, 0x1c, 0xce, 0x33, 0x5a, 0x35, 0xf3, 0x7d, 0x1d, 0x4e, 0x7b, 0xdb, - 0x68, 0x5e, 0x4f, 0x2e, 0xca, 0xeb, 0xa6, 0xec, 0xc8, 0xd2, 0xf2, 0xe5, 0x95, 0x79, 0xfc, 0x9f, - 0x08, 0xc9, 0x8b, 0xf2, 0x12, 0xaa, 0x97, 0xa5, 0xe7, 0x31, 0x91, 0x6c, 0xd4, 0x43, 0xed, 0x79, - 0x4c, 0x44, 0xa2, 0xf6, 0x3c, 0x26, 0x22, 0x51, 0x7b, 0x1e, 0x13, 0x91, 0xa8, 0x3d, 0x47, 0x01, - 0x12, 0xb5, 0xe7, 0x31, 0x11, 0x89, 0xda, 0xf3, 0x98, 0x88, 0x44, 0xed, 0x7d, 0x4c, 0x84, 0x91, - 0xfb, 0x3e, 0x26, 0x22, 0xd3, 0x7b, 0x1f, 0x13, 0x91, 0xe9, 0xbd, 0x8f, 0x89, 0x64, 0x51, 0x7f, - 0xd6, 0xb5, 0xfa, 0x1f, 0x3a, 0xc8, 0xf8, 0x41, 0x6b, 0x40, 0xb7, 0x00, 0x6f, 0xc1, 0x38, 0xdd, - 0x8f, 0x28, 0xe0, 0x67, 0xb0, 0xea, 0x36, 0x2a, 0xc5, 0x6f, 0x86, 0x51, 0x3a, 0x44, 0x57, 0x39, - 0x7e, 0xab, 0x40, 0x4a, 0x67, 0xe5, 0x76, 0xb4, 0xea, 0xe1, 0xce, 0xfc, 0x38, 0x0a, 0x53, 0x94, - 0x8c, 0xbf, 0x28, 0x28, 0x3d, 0x64, 0x74, 0x49, 0x39, 0x52, 0x4a, 0x62, 0xf8, 0x37, 0x5f, 0x39, - 0x4f, 0x47, 0x73, 0x22, 0x98, 0x2e, 0x29, 0x87, 0x4b, 0x32, 0x9f, 0x3b, 0xff, 0x5c, 0x52, 0x1e, - 0x3c, 0x92, 0xf9, 0xc4, 0x74, 0x23, 0xf8, 0xf8, 0x23, 0x48, 0x32, 0x5f, 0x51, 0x44, 0xd9, 0x25, - 0xe5, 0x61, 0x24, 0x99, 0xaf, 0x24, 0xe2, 0xed, 0x92, 0x72, 0xf4, 0x24, 0xf3, 0xdd, 0x14, 0x91, - 0x77, 0x49, 0x39, 0x84, 0x92, 0xf9, 0x56, 0x45, 0x0c, 0x5e, 0x52, 0x1e, 0x55, 0x92, 0xf9, 0x9e, - 0x10, 0xd1, 0x78, 0x49, 0x79, 0x68, 0x49, 0xe6, 0x5b, 0x13, 0x71, 0x39, 0xab, 0x3e, 0xbe, 0x24, - 0x33, 0xde, 0x72, 0x23, 0x74, 0x56, 0x7d, 0x90, 0x49, 0xe6, 0xfc, 0x7f, 0x6e, 0xac, 0xce, 0xaa, - 0x8f, 0x34, 0xc9, 0x9c, 0xeb, 0x6e, 0xd4, 0xce, 0xaa, 0x47, 0x65, 0x32, 0xe7, 0x86, 0x1b, 0xbf, - 0xb3, 0xea, 0xa1, 0x99, 0xcc, 0xb9, 0xe9, 0x46, 0xf2, 0xac, 0x7a, 0x7c, 0x26, 0x73, 0x6e, 0xb9, - 0x7b, 0xe8, 0x5f, 0x51, 0xc2, 0xcf, 0xf3, 0x10, 0x54, 0x46, 0x09, 0x3f, 0xf0, 0x09, 0xbd, 0x8c, - 0x12, 0x7a, 0xe0, 0x13, 0x76, 0x19, 0x25, 0xec, 0xc0, 0x27, 0xe4, 0x32, 0x4a, 0xc8, 0x81, 0x4f, - 0xb8, 0x65, 0x94, 0x70, 0x03, 0x9f, 0x50, 0xcb, 0x28, 0xa1, 0x06, 0x3e, 0x61, 0x96, 0x51, 0xc2, - 0x0c, 0x7c, 0x42, 0x2c, 0xa3, 0x84, 0x18, 0xf8, 0x84, 0x57, 0x46, 0x09, 0x2f, 0xf0, 0x09, 0xad, - 0x19, 0x35, 0xb4, 0xc0, 0x2f, 0xac, 0x66, 0xd4, 0xb0, 0x02, 0xbf, 0x90, 0x7a, 0x40, 0x0d, 0xa9, - 0x11, 0xc4, 0x15, 0xc3, 0x43, 0x9e, 0x68, 0x9a, 0x51, 0xa3, 0x09, 0xfc, 0x22, 0x69, 0x46, 0x8d, - 0x24, 0xf0, 0x8b, 0xa2, 0x19, 0x35, 0x8a, 0xc0, 0x2f, 0x82, 0x5e, 0x52, 0x23, 0xc8, 0x7d, 0xc4, - 0x27, 0xa3, 0x9c, 0x28, 0x06, 0x45, 0x90, 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, - 0x20, 0x3d, 0x44, 0x04, 0xe9, 0x21, 0x22, 0x48, 0x0f, 0x11, 0x41, 0x7a, 0x88, 0x08, 0xd2, 0xc3, - 0x44, 0x90, 0x1e, 0x2a, 0x82, 0xf4, 0x7e, 0x11, 0x34, 0xa3, 0x3e, 0xf0, 0x00, 0x7e, 0x05, 0x69, - 0x46, 0x3d, 0xf9, 0x0c, 0x0e, 0x21, 0x3d, 0x54, 0x08, 0xe9, 0xfd, 0x42, 0xe8, 0x2b, 0xa8, 0x91, - 0x92, 0x42, 0x88, 0x1d, 0x0f, 0xbd, 0x5e, 0x15, 0xe8, 0x6a, 0x88, 0xe7, 0x2b, 0xfc, 0x62, 0xea, - 0x6a, 0x88, 0x33, 0xea, 0x41, 0x71, 0xd6, 0x5b, 0x85, 0x4a, 0x21, 0xaa, 0xd0, 0x4d, 0x11, 0x43, - 0x57, 0x43, 0x3c, 0x77, 0xd1, 0x1b, 0x7b, 0xd7, 0x07, 0x15, 0x81, 0x27, 0x42, 0x15, 0x81, 0xb5, - 0x50, 0x45, 0xe0, 0x96, 0xeb, 0xc1, 0xf7, 0x46, 0x60, 0xd2, 0xf5, 0x20, 0x7d, 0x47, 0x7e, 0x24, - 0x25, 0xe3, 0x39, 0xa1, 0x32, 0xf8, 0xa9, 0x8d, 0xc7, 0x8d, 0xf8, 0xfc, 0x66, 0x5b, 0x3e, 0xab, - 0xca, 0x9e, 0xf4, 0xfc, 0xc6, 0xe3, 0x71, 0xb6, 0x17, 0x3a, 0x03, 0xfa, 0x5a, 0xcd, 0x21, 0xd5, - 0xc2, 0xef, 0xb2, 0x05, 0x53, 0xaf, 0xd7, 0x1c, 0xc3, 0x84, 0x21, 0x72, 0x5d, 0x87, 0xb8, 0xf7, - 0x6e, 0x2e, 0x8c, 0x5c, 0x4f, 0x2e, 0xec, 0x64, 0x5e, 0xd2, 0xe0, 0x82, 0x14, 0xca, 0xaf, 0xcf, - 0x89, 0xc1, 0x63, 0xa1, 0x4e, 0x0c, 0xa4, 0x04, 0x71, 0x4f, 0x0f, 0x1e, 0xea, 0x3d, 0xa8, 0xf6, - 0x66, 0x89, 0x7a, 0x92, 0xf0, 0x8b, 0x90, 0x74, 0xef, 0x80, 0x2c, 0xd9, 0xae, 0x04, 0x6f, 0x66, - 0xfa, 0xa5, 0xe6, 0x15, 0x65, 0x13, 0x6d, 0x20, 0x4c, 0x64, 0x6b, 0x26, 0x8b, 0x56, 0x9c, 0xf2, - 0x17, 0x5e, 0x82, 0xf6, 0x22, 0xe2, 0xb8, 0x35, 0xbf, 0xf3, 0x49, 0xd4, 0x9e, 0x3f, 0x02, 0xa3, - 0xde, 0xef, 0xb4, 0x28, 0xc0, 0x11, 0x0e, 0xcc, 0x46, 0x5f, 0xc6, 0xdc, 0xbf, 0xaf, 0xc1, 0x19, - 0x2f, 0xfb, 0xdb, 0x91, 0xef, 0xd7, 0x6c, 0xdc, 0xd3, 0xbf, 0x05, 0xe2, 0x16, 0x73, 0x1c, 0xfb, - 0x61, 0x0d, 0xb6, 0x8c, 0xf4, 0x65, 0x9f, 0x27, 0xff, 0x9b, 0x02, 0xa2, 0x6c, 0x82, 0xf0, 0xcb, - 0x2e, 0x4f, 0x3f, 0x08, 0x31, 0x2a, 0x5f, 0xd6, 0x6b, 0x4c, 0xd1, 0xeb, 0xd3, 0x3e, 0x7a, 0x91, - 0x38, 0x32, 0x6e, 0x49, 0x7a, 0x79, 0x56, 0xab, 0xbe, 0xec, 0xf3, 0x3c, 0xf8, 0xf2, 0x71, 0xdc, - 0xff, 0x91, 0x88, 0x0a, 0x56, 0x72, 0x16, 0xe2, 0x25, 0x95, 0xc7, 0x5f, 0xcf, 0x22, 0x44, 0x37, - 0xf1, 0xef, 0x85, 0x4d, 0xb2, 0xdf, 0xc7, 0x64, 0x46, 0x66, 0xbf, 0xc1, 0x7a, 0x09, 0xe2, 0x85, - 0xa3, 0x7a, 0xa3, 0xd6, 0xb6, 0x6c, 0x76, 0x64, 0xcf, 0x76, 0xd0, 0x31, 0xc6, 0x8c, 0x57, 0x19, - 0x6d, 0x2e, 0x03, 0x09, 0x4f, 0x48, 0x18, 0x31, 0xb4, 0xfc, 0x4f, 0x9d, 0xc2, 0x7f, 0xf2, 0x29, - 0x0d, 0xff, 0x29, 0xa4, 0x22, 0x73, 0x0f, 0xc2, 0xb8, 0xb2, 0x41, 0x86, 0x29, 0xc5, 0x14, 0xe0, - 0x3f, 0xa5, 0x54, 0x62, 0x3a, 0xfa, 0xbe, 0x3f, 0x3c, 0x77, 0x6a, 0xee, 0x31, 0x30, 0x7a, 0xb7, - 0xd2, 0x8c, 0x21, 0x88, 0xe4, 0xb0, 0xc8, 0x7b, 0x20, 0x92, 0x47, 0x32, 0xa7, 0xc7, 0x7f, 0xed, - 0x63, 0x17, 0x12, 0x79, 0xf2, 0x95, 0x50, 0xc4, 0x9d, 0xcf, 0x33, 0xf0, 0xe3, 0x70, 0xc6, 0x77, - 0x2b, 0x0e, 0xe3, 0x0b, 0x05, 0x8a, 0x2f, 0x16, 0x7b, 0xf0, 0xc5, 0x22, 0xc1, 0x6b, 0x59, 0x7e, - 0xa4, 0x99, 0x33, 0x7c, 0xb6, 0xb1, 0xd2, 0x35, 0xcf, 0x11, 0x6a, 0x2e, 0xfb, 0x38, 0xe3, 0xcd, - 0xfb, 0xf2, 0x5a, 0x01, 0x47, 0xa2, 0xf9, 0x6c, 0x81, 0xe1, 0x0b, 0xbe, 0xf8, 0x03, 0xe5, 0xdc, - 0x4e, 0xae, 0x41, 0x4c, 0x48, 0x41, 0x28, 0x5c, 0xf4, 0x15, 0x72, 0xe4, 0x79, 0x9a, 0xba, 0x28, - 0x14, 0x2e, 0xf9, 0xf2, 0xd6, 0x03, 0x9e, 0x2a, 0x2a, 0x65, 0x17, 0xd8, 0x34, 0x92, 0x5b, 0x32, - 0xce, 0xf0, 0x28, 0x90, 0x72, 0x9c, 0x19, 0x88, 0xce, 0x28, 0xb9, 0x25, 0x74, 0x87, 0x14, 0x90, - 0xef, 0x0b, 0xe8, 0x6f, 0x25, 0x2a, 0x24, 0xbf, 0x94, 0x7d, 0x82, 0x09, 0x29, 0xf4, 0x15, 0x12, - 0x60, 0x2a, 0x2a, 0xa9, 0xb0, 0x94, 0xdf, 0xbd, 0xf3, 0x8d, 0x73, 0xa7, 0x5e, 0x46, 0xaf, 0x7f, - 0x41, 0xaf, 0xaf, 0x7f, 0xe3, 0x9c, 0xf6, 0x1d, 0xf4, 0xfa, 0x1e, 0x7a, 0xfd, 0x10, 0xbd, 0xde, - 0xf5, 0xcd, 0x73, 0xda, 0x8b, 0xe8, 0xf5, 0x79, 0xf4, 0xfa, 0x6b, 0xf4, 0x7a, 0x09, 0xbd, 0xee, - 0xa0, 0xd7, 0xcb, 0xe8, 0xf5, 0x75, 0xf4, 0xfa, 0xce, 0x37, 0xcf, 0x9d, 0xfa, 0x1e, 0xfa, 0xfb, - 0x43, 0xf4, 0xf7, 0x5d, 0xdf, 0x3a, 0x77, 0xea, 0x05, 0xf4, 0x7a, 0xf1, 0x5b, 0xe7, 0xb4, 0xff, - 0x0b, 0x00, 0x00, 0xff, 0xff, 0x85, 0x47, 0xda, 0x26, 0x15, 0x5f, 0x00, 0x00, + // 6506 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, + 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, + 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, + 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, + 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, + 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x40, 0x36, 0x7f, 0x52, 0x26, + 0xbf, 0x52, 0x54, 0xca, 0xc5, 0xae, 0xa9, 0x0a, 0x49, 0x9c, 0x04, 0x82, 0xab, 0xa0, 0xca, 0xfc, + 0x48, 0xdd, 0x57, 0x77, 0xdf, 0x3b, 0x3d, 0xea, 0x96, 0xd7, 0x06, 0xfe, 0xec, 0xce, 0xdc, 0x73, + 0xbe, 0xd3, 0xe7, 0x9e, 0xd7, 0x3d, 0x7d, 0xef, 0xd5, 0xc0, 0xab, 0x4b, 0x30, 0xbd, 0x63, 0xdb, + 0x3b, 0x0d, 0x74, 0xba, 0xd5, 0xb6, 0x5d, 0xfb, 0xfa, 0xde, 0xf6, 0xe9, 0x1a, 0x72, 0xaa, 0xed, + 0x7a, 0xcb, 0xb5, 0xdb, 0x73, 0x64, 0x4c, 0x1f, 0xa1, 0x1c, 0x73, 0x9c, 0x23, 0xb3, 0x0a, 0xa3, + 0x97, 0xeb, 0x0d, 0x54, 0xf4, 0x18, 0x37, 0x90, 0xab, 0x5f, 0x80, 0xe4, 0x76, 0xbd, 0x81, 0xd2, + 0xca, 0xb4, 0x3a, 0x33, 0xb0, 0x70, 0x72, 0x4e, 0x02, 0xcd, 0x89, 0x88, 0x75, 0x3c, 0x6c, 0x10, + 0x44, 0xe6, 0x7b, 0x49, 0x18, 0x0b, 0xa1, 0xea, 0x3a, 0x24, 0x2d, 0xb3, 0x89, 0x25, 0x2a, 0x33, + 0xfd, 0x06, 0xf9, 0xac, 0xa7, 0xe1, 0x48, 0xcb, 0xac, 0x3e, 0x69, 0xee, 0xa0, 0x74, 0x82, 0x0c, + 0xf3, 0xaf, 0xfa, 0x24, 0x40, 0x0d, 0xb5, 0x90, 0x55, 0x43, 0x56, 0x75, 0x3f, 0xad, 0x4e, 0xab, + 0x33, 0xfd, 0x46, 0x60, 0x44, 0x7f, 0x07, 0x8c, 0xb6, 0xf6, 0xae, 0x37, 0xea, 0xd5, 0x4a, 0x80, + 0x0d, 0xa6, 0xd5, 0x99, 0x5e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x1f, 0x8c, 0x3c, 0x8d, 0xcc, + 0x27, 0x83, 0xac, 0x03, 0x84, 0x75, 0x18, 0x0f, 0x07, 0x18, 0x0b, 0x30, 0xd8, 0x44, 0x8e, 0x63, + 0xee, 0xa0, 0x8a, 0xbb, 0xdf, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0x74, 0xc7, 0xec, 0xe5, 0x99, 0x0f, + 0x30, 0xd4, 0xe6, 0x7e, 0x0b, 0xe9, 0x39, 0xe8, 0x47, 0xd6, 0x5e, 0x93, 0x4a, 0xe8, 0xed, 0x62, + 0xbf, 0x92, 0xb5, 0xd7, 0x94, 0xa5, 0xa4, 0x30, 0x8c, 0x89, 0x38, 0xe2, 0xa0, 0xf6, 0x53, 0xf5, + 0x2a, 0x4a, 0xf7, 0x11, 0x01, 0xf7, 0x75, 0x08, 0xd8, 0xa0, 0x74, 0x59, 0x06, 0xc7, 0xe9, 0x05, + 0xe8, 0x47, 0xcf, 0xb8, 0xc8, 0x72, 0xea, 0xb6, 0x95, 0x3e, 0x42, 0x84, 0xdc, 0x1b, 0xe2, 0x45, + 0xd4, 0xa8, 0xc9, 0x22, 0x7c, 0x9c, 0x7e, 0x0e, 0x8e, 0xd8, 0x2d, 0xb7, 0x6e, 0x5b, 0x4e, 0x3a, + 0x35, 0xad, 0xcc, 0x0c, 0x2c, 0x1c, 0x0f, 0x0d, 0x84, 0x35, 0xca, 0x63, 0x70, 0x66, 0x7d, 0x19, + 0x34, 0xc7, 0xde, 0x6b, 0x57, 0x51, 0xa5, 0x6a, 0xd7, 0x50, 0xa5, 0x6e, 0x6d, 0xdb, 0xe9, 0x7e, + 0x22, 0x60, 0xaa, 0x73, 0x22, 0x84, 0xb1, 0x60, 0xd7, 0xd0, 0xb2, 0xb5, 0x6d, 0x1b, 0xc3, 0x8e, + 0xf0, 0x5d, 0x1f, 0x87, 0x3e, 0x67, 0xdf, 0x72, 0xcd, 0x67, 0xd2, 0x83, 0x24, 0x42, 0xd8, 0xb7, + 0xcc, 0x8f, 0x7b, 0x61, 0x24, 0x4e, 0x88, 0x5d, 0x82, 0xde, 0x6d, 0x3c, 0xcb, 0x74, 0xe2, 0x30, + 0x36, 0xa0, 0x18, 0xd1, 0x88, 0x7d, 0x6f, 0xd2, 0x88, 0x39, 0x18, 0xb0, 0x90, 0xe3, 0xa2, 0x1a, + 0x8d, 0x08, 0x35, 0x66, 0x4c, 0x01, 0x05, 0x75, 0x86, 0x54, 0xf2, 0x4d, 0x85, 0xd4, 0xe3, 0x30, + 0xe2, 0xa9, 0x54, 0x69, 0x9b, 0xd6, 0x0e, 0x8f, 0xcd, 0xd3, 0x51, 0x9a, 0xcc, 0x95, 0x38, 0xce, + 0xc0, 0x30, 0x63, 0x18, 0x09, 0xdf, 0xf5, 0x22, 0x80, 0x6d, 0x21, 0x7b, 0xbb, 0x52, 0x43, 0xd5, + 0x46, 0x3a, 0xd5, 0xc5, 0x4a, 0x6b, 0x98, 0xa5, 0xc3, 0x4a, 0x36, 0x1d, 0xad, 0x36, 0xf4, 0x8b, + 0x7e, 0xa8, 0x1d, 0xe9, 0x12, 0x29, 0xab, 0x34, 0xc9, 0x3a, 0xa2, 0x6d, 0x0b, 0x86, 0xdb, 0x08, + 0xc7, 0x3d, 0xaa, 0xb1, 0x99, 0xf5, 0x13, 0x25, 0xe6, 0x22, 0x67, 0x66, 0x30, 0x18, 0x9d, 0xd8, + 0x50, 0x3b, 0xf8, 0x55, 0xbf, 0x07, 0xbc, 0x81, 0x0a, 0x09, 0x2b, 0x20, 0x55, 0x68, 0x90, 0x0f, + 0x96, 0xcd, 0x26, 0x9a, 0xb8, 0x00, 0xc3, 0xa2, 0x79, 0xf4, 0xa3, 0xd0, 0xeb, 0xb8, 0x66, 0xdb, + 0x25, 0x51, 0xd8, 0x6b, 0xd0, 0x2f, 0xba, 0x06, 0x2a, 0xb2, 0x6a, 0xa4, 0xca, 0xf5, 0x1a, 0xf8, + 0xe3, 0xc4, 0x79, 0x18, 0x12, 0x1e, 0x1f, 0x17, 0x98, 0xf9, 0x68, 0x1f, 0x1c, 0x0d, 0x8b, 0xb9, + 0xd0, 0xf0, 0x1f, 0x87, 0x3e, 0x6b, 0xaf, 0x79, 0x1d, 0xb5, 0xd3, 0x2a, 0x91, 0xc0, 0xbe, 0xe9, + 0x39, 0xe8, 0x6d, 0x98, 0xd7, 0x51, 0x23, 0x9d, 0x9c, 0x56, 0x66, 0x86, 0x17, 0xde, 0x11, 0x2b, + 0xaa, 0xe7, 0x56, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x61, 0x48, 0xb2, 0x12, 0x87, 0x25, 0xcc, 0xc6, + 0x93, 0x80, 0x63, 0xd1, 0x20, 0x38, 0xfd, 0x2e, 0xe8, 0xc7, 0xff, 0x53, 0xdb, 0xf6, 0x11, 0x9d, + 0x53, 0x78, 0x00, 0xdb, 0x55, 0x9f, 0x80, 0x14, 0x09, 0xb3, 0x1a, 0xe2, 0x4b, 0x83, 0xf7, 0x1d, + 0x3b, 0xa6, 0x86, 0xb6, 0xcd, 0xbd, 0x86, 0x5b, 0x79, 0xca, 0x6c, 0xec, 0x21, 0x12, 0x30, 0xfd, + 0xc6, 0x20, 0x1b, 0x7c, 0x0f, 0x1e, 0xd3, 0xa7, 0x60, 0x80, 0x46, 0x65, 0xdd, 0xaa, 0xa1, 0x67, + 0x48, 0xf5, 0xe9, 0x35, 0x68, 0xa0, 0x2e, 0xe3, 0x11, 0xfc, 0xf8, 0x27, 0x1c, 0xdb, 0xe2, 0xae, + 0x25, 0x8f, 0xc0, 0x03, 0xe4, 0xf1, 0xe7, 0xe5, 0xc2, 0x77, 0x77, 0xf8, 0xf4, 0xe4, 0x58, 0xcc, + 0x7c, 0x35, 0x01, 0x49, 0x92, 0x6f, 0x23, 0x30, 0xb0, 0x79, 0x6d, 0xbd, 0x54, 0x29, 0xae, 0x6d, + 0xe5, 0x57, 0x4a, 0x9a, 0xa2, 0x0f, 0x03, 0x90, 0x81, 0xcb, 0x2b, 0x6b, 0xb9, 0x4d, 0x2d, 0xe1, + 0x7d, 0x5f, 0x2e, 0x6f, 0x9e, 0x5b, 0xd4, 0x54, 0x0f, 0xb0, 0x45, 0x07, 0x92, 0x41, 0x86, 0xb3, + 0x0b, 0x5a, 0xaf, 0xae, 0xc1, 0x20, 0x15, 0xb0, 0xfc, 0x78, 0xa9, 0x78, 0x6e, 0x51, 0xeb, 0x13, + 0x47, 0xce, 0x2e, 0x68, 0x47, 0xf4, 0x21, 0xe8, 0x27, 0x23, 0xf9, 0xb5, 0xb5, 0x15, 0x2d, 0xe5, + 0xc9, 0xdc, 0xd8, 0x34, 0x96, 0xcb, 0x57, 0xb4, 0x7e, 0x4f, 0xe6, 0x15, 0x63, 0x6d, 0x6b, 0x5d, + 0x03, 0x4f, 0xc2, 0x6a, 0x69, 0x63, 0x23, 0x77, 0xa5, 0xa4, 0x0d, 0x78, 0x1c, 0xf9, 0x6b, 0x9b, + 0xa5, 0x0d, 0x6d, 0x50, 0x50, 0xeb, 0xec, 0x82, 0x36, 0xe4, 0x3d, 0xa2, 0x54, 0xde, 0x5a, 0xd5, + 0x86, 0xf5, 0x51, 0x18, 0xa2, 0x8f, 0xe0, 0x4a, 0x8c, 0x48, 0x43, 0xe7, 0x16, 0x35, 0xcd, 0x57, + 0x84, 0x4a, 0x19, 0x15, 0x06, 0xce, 0x2d, 0x6a, 0x7a, 0xa6, 0x00, 0xbd, 0x24, 0xba, 0x74, 0x1d, + 0x86, 0x57, 0x72, 0xf9, 0xd2, 0x4a, 0x65, 0x6d, 0x7d, 0x73, 0x79, 0xad, 0x9c, 0x5b, 0xd1, 0x14, + 0x7f, 0xcc, 0x28, 0xbd, 0x7b, 0x6b, 0xd9, 0x28, 0x15, 0xb5, 0x44, 0x70, 0x6c, 0xbd, 0x94, 0xdb, + 0x2c, 0x15, 0x35, 0x35, 0x53, 0x85, 0xa3, 0x61, 0x75, 0x26, 0x34, 0x33, 0x02, 0x2e, 0x4e, 0x74, + 0x71, 0x31, 0x91, 0xd5, 0xe1, 0xe2, 0xcf, 0x28, 0x30, 0x16, 0x52, 0x6b, 0x43, 0x1f, 0xf2, 0x08, + 0xf4, 0xd2, 0x10, 0xa5, 0xab, 0xcf, 0xfd, 0xa1, 0x45, 0x9b, 0x04, 0x6c, 0xc7, 0x0a, 0x44, 0x70, + 0xc1, 0x15, 0x58, 0xed, 0xb2, 0x02, 0x63, 0x11, 0x1d, 0x4a, 0x7e, 0x40, 0x81, 0x74, 0x37, 0xd9, + 0x11, 0x85, 0x22, 0x21, 0x14, 0x8a, 0x4b, 0xb2, 0x02, 0x27, 0xba, 0xcf, 0xa1, 0x43, 0x8b, 0xcf, + 0x29, 0x30, 0x1e, 0xde, 0xa8, 0x84, 0xea, 0xf0, 0x30, 0xf4, 0x35, 0x91, 0xbb, 0x6b, 0xf3, 0xc5, + 0xfa, 0x54, 0xc8, 0x12, 0x80, 0xc9, 0xb2, 0xad, 0x18, 0x2a, 0xb8, 0x86, 0xa8, 0xdd, 0xba, 0x0d, + 0xaa, 0x4d, 0x87, 0xa6, 0x1f, 0x4e, 0xc0, 0x1d, 0xa1, 0xc2, 0x43, 0x15, 0xbd, 0x1b, 0xa0, 0x6e, + 0xb5, 0xf6, 0x5c, 0xba, 0x20, 0xd3, 0xfa, 0xd4, 0x4f, 0x46, 0x48, 0xee, 0xe3, 0xda, 0xb3, 0xe7, + 0x7a, 0x74, 0x95, 0xd0, 0x81, 0x0e, 0x11, 0x86, 0x0b, 0xbe, 0xa2, 0x49, 0xa2, 0xe8, 0x64, 0x97, + 0x99, 0x76, 0xac, 0x75, 0xf3, 0xa0, 0x55, 0x1b, 0x75, 0x64, 0xb9, 0x15, 0xc7, 0x6d, 0x23, 0xb3, + 0x59, 0xb7, 0x76, 0x48, 0x01, 0x4e, 0x65, 0x7b, 0xb7, 0xcd, 0x86, 0x83, 0x8c, 0x11, 0x4a, 0xde, + 0xe0, 0x54, 0x8c, 0x20, 0xab, 0x4c, 0x3b, 0x80, 0xe8, 0x13, 0x10, 0x94, 0xec, 0x21, 0x32, 0x5f, + 0x3c, 0x02, 0x03, 0x81, 0xb6, 0x4e, 0x3f, 0x01, 0x83, 0x4f, 0x98, 0x4f, 0x99, 0x15, 0xde, 0xaa, + 0x53, 0x4b, 0x0c, 0xe0, 0xb1, 0x75, 0xd6, 0xae, 0xcf, 0xc3, 0x51, 0xc2, 0x62, 0xef, 0xb9, 0xa8, + 0x5d, 0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0xd6, 0x30, 0xa9, 0xc0, + 0x29, 0xfa, 0x12, 0x8c, 0x11, 0x44, 0x73, 0xaf, 0xe1, 0xd6, 0x5b, 0x0d, 0x54, 0xc1, 0x2f, 0x0f, + 0x0e, 0x29, 0xc4, 0x9e, 0x66, 0xa3, 0x98, 0x63, 0x95, 0x31, 0x60, 0x8d, 0x1c, 0xbd, 0x08, 0x77, + 0x13, 0xd8, 0x0e, 0xb2, 0x50, 0xdb, 0x74, 0x51, 0x05, 0xbd, 0x6f, 0xcf, 0x6c, 0x38, 0x15, 0xd3, + 0xaa, 0x55, 0x76, 0x4d, 0x67, 0x37, 0x7d, 0x14, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, 0x71, 0x27, 0x66, + 0xbc, 0xc2, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x35, 0x9d, 0x5d, 0x3d, 0x0b, 0xe3, 0x44, + 0x8a, 0xe3, 0xb6, 0xeb, 0xd6, 0x4e, 0xa5, 0xba, 0x8b, 0xaa, 0x4f, 0x56, 0xf6, 0xdc, 0xed, 0x0b, + 0xe9, 0xbb, 0x82, 0xcf, 0x27, 0x1a, 0x6e, 0x10, 0x9e, 0x02, 0x66, 0xd9, 0x72, 0xb7, 0x2f, 0xe8, + 0x1b, 0x30, 0x88, 0x9d, 0xd1, 0xac, 0x3f, 0x8b, 0x2a, 0xdb, 0x76, 0x9b, 0xac, 0x2c, 0xc3, 0x21, + 0x99, 0x1d, 0xb0, 0xe0, 0xdc, 0x1a, 0x03, 0xac, 0xda, 0x35, 0x94, 0xed, 0xdd, 0x58, 0x2f, 0x95, + 0x8a, 0xc6, 0x00, 0x97, 0x72, 0xd9, 0x6e, 0xe3, 0x80, 0xda, 0xb1, 0x3d, 0x03, 0x0f, 0xd0, 0x80, + 0xda, 0xb1, 0xb9, 0x79, 0x97, 0x60, 0xac, 0x5a, 0xa5, 0x73, 0xae, 0x57, 0x2b, 0xac, 0xc5, 0x77, + 0xd2, 0x9a, 0x60, 0xac, 0x6a, 0xf5, 0x0a, 0x65, 0x60, 0x31, 0xee, 0xe8, 0x17, 0xe1, 0x0e, 0xdf, + 0x58, 0x41, 0xe0, 0x68, 0xc7, 0x2c, 0x65, 0xe8, 0x12, 0x8c, 0xb5, 0xf6, 0x3b, 0x81, 0xba, 0xf0, + 0xc4, 0xd6, 0xbe, 0x0c, 0xbb, 0x97, 0xbc, 0xb6, 0xb5, 0x51, 0xd5, 0x74, 0x51, 0x2d, 0x7d, 0x2c, + 0xc8, 0x1d, 0x20, 0xe8, 0xa7, 0x41, 0xab, 0x56, 0x2b, 0xc8, 0x32, 0xaf, 0x37, 0x50, 0xc5, 0x6c, + 0x23, 0xcb, 0x74, 0xd2, 0x53, 0x41, 0xe6, 0xe1, 0x6a, 0xb5, 0x44, 0xa8, 0x39, 0x42, 0xd4, 0x67, + 0x61, 0xd4, 0xbe, 0xfe, 0x44, 0x95, 0x46, 0x56, 0xa5, 0xd5, 0x46, 0xdb, 0xf5, 0x67, 0xd2, 0x27, + 0x89, 0x99, 0x46, 0x30, 0x81, 0xc4, 0xd5, 0x3a, 0x19, 0xd6, 0xef, 0x07, 0xad, 0xea, 0xec, 0x9a, + 0xed, 0x16, 0x59, 0xda, 0x9d, 0x96, 0x59, 0x45, 0xe9, 0x7b, 0x29, 0x2b, 0x1d, 0x2f, 0xf3, 0x61, + 0x1c, 0xd9, 0xce, 0xd3, 0xf5, 0x6d, 0x97, 0x4b, 0xbc, 0x8f, 0x46, 0x36, 0x19, 0x63, 0xd2, 0x1e, + 0x87, 0xa3, 0x7b, 0x56, 0xdd, 0x72, 0x51, 0xbb, 0xd5, 0x46, 0xb8, 0x89, 0xa7, 0x99, 0x98, 0xfe, + 0xf7, 0x23, 0x5d, 0xda, 0xf0, 0xad, 0x20, 0x37, 0x0d, 0x00, 0x63, 0x6c, 0xaf, 0x73, 0x30, 0x93, + 0x85, 0xc1, 0x60, 0x5c, 0xe8, 0xfd, 0x40, 0x23, 0x43, 0x53, 0xf0, 0x1a, 0x5b, 0x58, 0x2b, 0xe2, + 0xd5, 0xf1, 0xbd, 0x25, 0x2d, 0x81, 0x57, 0xe9, 0x95, 0xe5, 0xcd, 0x52, 0xc5, 0xd8, 0x2a, 0x6f, + 0x2e, 0xaf, 0x96, 0x34, 0x75, 0xb6, 0x3f, 0xf5, 0xfd, 0x23, 0xda, 0x73, 0xcf, 0x3d, 0xf7, 0x5c, + 0x22, 0xf3, 0xcd, 0x04, 0x0c, 0x8b, 0x9d, 0xb1, 0xfe, 0x4e, 0x38, 0xc6, 0x5f, 0x63, 0x1d, 0xe4, + 0x56, 0x9e, 0xae, 0xb7, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0x7a, 0x56, 0x3e, 0xca, 0xb8, 0x36, + 0x90, 0xfb, 0x58, 0xbd, 0x8d, 0x03, 0xb1, 0x69, 0xba, 0xfa, 0x0a, 0x4c, 0x59, 0x76, 0xc5, 0x71, + 0x4d, 0xab, 0x66, 0xb6, 0x6b, 0x15, 0x7f, 0x03, 0xa1, 0x62, 0x56, 0xab, 0xc8, 0x71, 0x6c, 0xba, + 0x44, 0x78, 0x52, 0x8e, 0x5b, 0xf6, 0x06, 0x63, 0xf6, 0x6b, 0x67, 0x8e, 0xb1, 0x4a, 0x11, 0xa1, + 0x76, 0x8b, 0x88, 0xbb, 0xa0, 0xbf, 0x69, 0xb6, 0x2a, 0xc8, 0x72, 0xdb, 0xfb, 0xa4, 0x9f, 0x4b, + 0x19, 0xa9, 0xa6, 0xd9, 0x2a, 0xe1, 0xef, 0x6f, 0x9f, 0x0f, 0x82, 0x76, 0xfc, 0x37, 0x15, 0x06, + 0x83, 0x3d, 0x1d, 0x6e, 0x91, 0xab, 0xa4, 0x7e, 0x2b, 0x24, 0xc3, 0xef, 0x39, 0xb0, 0x03, 0x9c, + 0x2b, 0xe0, 0xc2, 0x9e, 0xed, 0xa3, 0x9d, 0x96, 0x41, 0x91, 0x78, 0x51, 0xc5, 0x39, 0x8d, 0x68, + 0xff, 0x9e, 0x32, 0xd8, 0x37, 0xfd, 0x0a, 0xf4, 0x3d, 0xe1, 0x10, 0xd9, 0x7d, 0x44, 0xf6, 0xc9, + 0x83, 0x65, 0x5f, 0xdd, 0x20, 0xc2, 0xfb, 0xaf, 0x6e, 0x54, 0xca, 0x6b, 0xc6, 0x6a, 0x6e, 0xc5, + 0x60, 0x70, 0xfd, 0x4e, 0x48, 0x36, 0xcc, 0x67, 0xf7, 0xc5, 0x25, 0x80, 0x0c, 0xc5, 0x35, 0xfc, + 0x9d, 0x90, 0x7c, 0x1a, 0x99, 0x4f, 0x8a, 0x85, 0x97, 0x0c, 0xbd, 0x8d, 0xa1, 0x7f, 0x1a, 0x7a, + 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0xad, 0x47, 0x4f, 0x41, 0xb2, 0xb0, 0x66, 0xe0, 0xf0, 0xd7, + 0x60, 0x90, 0x8e, 0x56, 0xd6, 0x97, 0x4b, 0x85, 0x92, 0x96, 0xc8, 0x2c, 0x41, 0x1f, 0x35, 0x02, + 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, 0x9c, 0xba, 0xb5, 0x9a, 0x2f, 0x19, + 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xbe, 0xae, 0xc0, 0x40, + 0xa0, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0xd8, 0x4f, 0x57, 0xcc, 0x46, 0xdd, 0x74, 0x58, 0x50, + 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0xfb, 0x99, 0x28, 0xff, 0xbc, 0x02, 0x9a, 0xdc, 0xda, + 0x49, 0x0a, 0x2a, 0x3f, 0x57, 0x05, 0x3f, 0xa1, 0xc0, 0xb0, 0xd8, 0xcf, 0x49, 0xea, 0x9d, 0xf8, + 0xb9, 0xaa, 0xf7, 0xdd, 0x04, 0x0c, 0x09, 0x5d, 0x5c, 0x5c, 0xed, 0xde, 0x07, 0xa3, 0xf5, 0x1a, + 0x6a, 0xb6, 0x6c, 0x17, 0x59, 0xd5, 0xfd, 0x4a, 0x03, 0x3d, 0x85, 0x1a, 0xe9, 0x0c, 0x29, 0x14, + 0xa7, 0x0f, 0xee, 0x13, 0xe7, 0x96, 0x7d, 0xdc, 0x0a, 0x86, 0x65, 0xc7, 0x96, 0x8b, 0xa5, 0xd5, + 0xf5, 0xb5, 0xcd, 0x52, 0xb9, 0x70, 0xad, 0xb2, 0x55, 0x7e, 0x57, 0x79, 0xed, 0xb1, 0xb2, 0xa1, + 0xd5, 0x25, 0xb6, 0xb7, 0x31, 0xd5, 0xd7, 0x41, 0x93, 0x95, 0xd2, 0x8f, 0x41, 0x98, 0x5a, 0x5a, + 0x8f, 0x3e, 0x06, 0x23, 0xe5, 0xb5, 0xca, 0xc6, 0x72, 0xb1, 0x54, 0x29, 0x5d, 0xbe, 0x5c, 0x2a, + 0x6c, 0x6e, 0xd0, 0x17, 0x67, 0x8f, 0x7b, 0x53, 0x4c, 0xea, 0x8f, 0xab, 0x30, 0x16, 0xa2, 0x89, + 0x9e, 0x63, 0x3d, 0x3b, 0x7d, 0x8d, 0x78, 0x30, 0x8e, 0xf6, 0x73, 0xb8, 0x2b, 0x58, 0x37, 0xdb, + 0x2e, 0x6b, 0xf1, 0xef, 0x07, 0x6c, 0x25, 0xcb, 0xad, 0x6f, 0xd7, 0x51, 0x9b, 0xed, 0x33, 0xd0, + 0x46, 0x7e, 0xc4, 0x1f, 0xa7, 0x5b, 0x0d, 0x0f, 0x80, 0xde, 0xb2, 0x9d, 0xba, 0x5b, 0x7f, 0x0a, + 0x55, 0xea, 0x16, 0xdf, 0x94, 0xc0, 0x8d, 0x7d, 0xd2, 0xd0, 0x38, 0x65, 0xd9, 0x72, 0x3d, 0x6e, + 0x0b, 0xed, 0x98, 0x12, 0x37, 0x2e, 0xe0, 0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, 0x02, 0x06, 0x6b, + 0xf6, 0x1e, 0x6e, 0x93, 0x28, 0x1f, 0x5e, 0x2f, 0x14, 0x63, 0x80, 0x8e, 0x79, 0x2c, 0xac, 0x8f, + 0xf5, 0x77, 0x43, 0x06, 0x8d, 0x01, 0x3a, 0x46, 0x59, 0xee, 0x83, 0x11, 0x73, 0x67, 0xa7, 0x8d, + 0x85, 0x73, 0x41, 0xb4, 0x33, 0x1f, 0xf6, 0x86, 0x09, 0xe3, 0xc4, 0x55, 0x48, 0x71, 0x3b, 0xe0, + 0x25, 0x19, 0x5b, 0xa2, 0xd2, 0xa2, 0x7b, 0x52, 0x89, 0x99, 0x7e, 0x23, 0x65, 0x71, 0xe2, 0x09, + 0x18, 0xac, 0x3b, 0x15, 0x7f, 0x73, 0x34, 0x31, 0x9d, 0x98, 0x49, 0x19, 0x03, 0x75, 0xc7, 0xdb, + 0x0d, 0xcb, 0x7c, 0x2e, 0x01, 0xc3, 0xe2, 0xe6, 0xae, 0x5e, 0x84, 0x54, 0xc3, 0xae, 0x9a, 0x24, + 0xb4, 0xe8, 0xc9, 0xc2, 0x4c, 0xc4, 0x7e, 0xf0, 0xdc, 0x0a, 0xe3, 0x37, 0x3c, 0xe4, 0xc4, 0x3f, + 0x2b, 0x90, 0xe2, 0xc3, 0xfa, 0x38, 0x24, 0x5b, 0xa6, 0xbb, 0x4b, 0xc4, 0xf5, 0xe6, 0x13, 0x9a, + 0x62, 0x90, 0xef, 0x78, 0xdc, 0x69, 0x99, 0x16, 0x09, 0x01, 0x36, 0x8e, 0xbf, 0x63, 0xbf, 0x36, + 0x90, 0x59, 0x23, 0x6d, 0xbf, 0xdd, 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, 0x78, 0x81, 0x0d, + 0xeb, 0xef, 0x80, 0x51, 0xb7, 0x6d, 0xd6, 0x1b, 0x02, 0x6f, 0x92, 0xf0, 0x6a, 0x9c, 0xe0, 0x31, + 0x67, 0xe1, 0x4e, 0x2e, 0xb7, 0x86, 0x5c, 0xb3, 0xba, 0x8b, 0x6a, 0x3e, 0xa8, 0x8f, 0xec, 0x1c, + 0x1e, 0x63, 0x0c, 0x45, 0x46, 0xe7, 0xd8, 0xcc, 0xb7, 0x15, 0x18, 0xe5, 0x2f, 0x2a, 0x35, 0xcf, + 0x58, 0xab, 0x00, 0xa6, 0x65, 0xd9, 0x6e, 0xd0, 0x5c, 0x9d, 0xa1, 0xdc, 0x81, 0x9b, 0xcb, 0x79, + 0x20, 0x23, 0x20, 0x60, 0xa2, 0x09, 0xe0, 0x53, 0xba, 0x9a, 0x6d, 0x0a, 0x06, 0xd8, 0xce, 0x3d, + 0x39, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x87, 0xf0, 0x1b, 0x8d, 0x7e, 0x14, 0x7a, 0xaf, 0xa3, 0x9d, + 0xba, 0xc5, 0xf6, 0x13, 0xe9, 0x17, 0xbe, 0x4b, 0x99, 0xf4, 0x76, 0x29, 0xf3, 0x8f, 0xc3, 0x58, + 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0xe9, 0xf5, 0xda, 0x79, 0x54, 0x79, 0x2f, 0xf8, 0x2d, 0xe6, + 0x67, 0x12, 0xea, 0x95, 0xf5, 0xfc, 0x17, 0x12, 0x13, 0x57, 0x28, 0x6e, 0x9d, 0x4f, 0xd3, 0x40, + 0xdb, 0x0d, 0x54, 0xc5, 0xaa, 0xc3, 0x8f, 0x4e, 0xc1, 0x83, 0x3b, 0x75, 0x77, 0x77, 0xef, 0xfa, + 0x5c, 0xd5, 0x6e, 0x9e, 0xde, 0xb1, 0x77, 0x6c, 0xff, 0xb8, 0x0b, 0x7f, 0x23, 0x5f, 0xc8, 0x27, + 0x76, 0xe4, 0xd5, 0xef, 0x8d, 0x4e, 0x44, 0x9e, 0x8f, 0x65, 0xcb, 0x30, 0xc6, 0x98, 0x2b, 0x64, + 0xcf, 0x9d, 0xbe, 0x1a, 0xe8, 0x07, 0xee, 0xbb, 0xa4, 0xbf, 0xfc, 0x3d, 0xb2, 0x56, 0x1b, 0xa3, + 0x0c, 0x8a, 0x69, 0xf4, 0x05, 0x22, 0x6b, 0xc0, 0x1d, 0x82, 0x3c, 0x9a, 0x97, 0xa8, 0x1d, 0x21, + 0xf1, 0x9b, 0x4c, 0xe2, 0x58, 0x40, 0xe2, 0x06, 0x83, 0x66, 0x0b, 0x30, 0x74, 0x18, 0x59, 0xdf, + 0x62, 0xb2, 0x06, 0x51, 0x50, 0xc8, 0x15, 0x18, 0x21, 0x42, 0xaa, 0x7b, 0x8e, 0x6b, 0x37, 0x49, + 0xd1, 0x3b, 0x58, 0xcc, 0x3f, 0x7e, 0x8f, 0x26, 0xca, 0x30, 0x86, 0x15, 0x3c, 0x54, 0x36, 0x0b, + 0xe4, 0x98, 0xa1, 0x86, 0xaa, 0x8d, 0x08, 0x09, 0x37, 0x98, 0x22, 0x1e, 0x7f, 0xf6, 0x3d, 0x70, + 0x14, 0x7f, 0x26, 0x35, 0x29, 0xa8, 0x49, 0xf4, 0x2e, 0x53, 0xfa, 0xdb, 0x1f, 0xa0, 0xb9, 0x38, + 0xe6, 0x09, 0x08, 0xe8, 0x14, 0xf0, 0xe2, 0x0e, 0x72, 0x5d, 0xd4, 0x76, 0x2a, 0x66, 0x23, 0x4c, + 0xbd, 0xc0, 0x6b, 0x7a, 0xfa, 0x63, 0xaf, 0x89, 0x5e, 0xbc, 0x42, 0x91, 0xb9, 0x46, 0x23, 0xbb, + 0x05, 0xc7, 0x42, 0xa2, 0x22, 0x86, 0xcc, 0x8f, 0x33, 0x99, 0x47, 0x3b, 0x22, 0x03, 0x8b, 0x5d, + 0x07, 0x3e, 0xee, 0xf9, 0x32, 0x86, 0xcc, 0x3f, 0x61, 0x32, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x12, + 0xaf, 0xc2, 0xe8, 0x53, 0xa8, 0x7d, 0xdd, 0x76, 0xd8, 0xd6, 0x48, 0x0c, 0x71, 0x9f, 0x60, 0xe2, + 0x46, 0x18, 0x90, 0xec, 0x95, 0x60, 0x59, 0x17, 0x21, 0xb5, 0x6d, 0x56, 0x51, 0x0c, 0x11, 0x9f, + 0x64, 0x22, 0x8e, 0x60, 0x7e, 0x0c, 0xcd, 0xc1, 0xe0, 0x8e, 0xcd, 0x96, 0xa5, 0x68, 0xf8, 0xf3, + 0x0c, 0x3e, 0xc0, 0x31, 0x4c, 0x44, 0xcb, 0x6e, 0xed, 0x35, 0xf0, 0x9a, 0x15, 0x2d, 0xe2, 0x53, + 0x5c, 0x04, 0xc7, 0x30, 0x11, 0x87, 0x30, 0xeb, 0x0b, 0x5c, 0x84, 0x13, 0xb0, 0xe7, 0x23, 0x30, + 0x60, 0x5b, 0x8d, 0x7d, 0xdb, 0x8a, 0xa3, 0xc4, 0xa7, 0x99, 0x04, 0x60, 0x10, 0x2c, 0xe0, 0x12, + 0xf4, 0xc7, 0x75, 0xc4, 0x67, 0x5f, 0xe3, 0xe9, 0xc1, 0x3d, 0x70, 0x05, 0x46, 0x78, 0x81, 0xaa, + 0xdb, 0x56, 0x0c, 0x11, 0x7f, 0xc6, 0x44, 0x0c, 0x07, 0x60, 0x6c, 0x1a, 0x2e, 0x72, 0xdc, 0x1d, + 0x14, 0x47, 0xc8, 0xe7, 0xf8, 0x34, 0x18, 0x84, 0x99, 0xf2, 0x3a, 0xb2, 0xaa, 0xbb, 0xf1, 0x24, + 0xbc, 0xc8, 0x4d, 0xc9, 0x31, 0x58, 0x44, 0x01, 0x86, 0x9a, 0x66, 0xdb, 0xd9, 0x35, 0x1b, 0xb1, + 0xdc, 0xf1, 0x79, 0x26, 0x63, 0xd0, 0x03, 0x31, 0x8b, 0xec, 0x59, 0x87, 0x11, 0xf3, 0x05, 0x6e, + 0x91, 0x00, 0x8c, 0xa5, 0x9e, 0xe3, 0x92, 0x0d, 0xa8, 0xc3, 0x48, 0xfb, 0x22, 0x4f, 0x3d, 0x8a, + 0x5d, 0x0d, 0x4a, 0xbc, 0x04, 0xfd, 0x4e, 0xfd, 0xd9, 0x58, 0x62, 0xfe, 0x9c, 0x7b, 0x9a, 0x00, + 0x30, 0xf8, 0x1a, 0xdc, 0x19, 0xba, 0x4c, 0xc4, 0x10, 0xf6, 0x17, 0x4c, 0xd8, 0x78, 0xc8, 0x52, + 0xc1, 0x4a, 0xc2, 0x61, 0x45, 0xfe, 0x25, 0x2f, 0x09, 0x48, 0x92, 0xb5, 0x8e, 0x5f, 0x14, 0x1c, + 0x73, 0xfb, 0x70, 0x56, 0xfb, 0x2b, 0x6e, 0x35, 0x8a, 0x15, 0xac, 0xb6, 0x09, 0xe3, 0x4c, 0xe2, + 0xe1, 0xfc, 0xfa, 0x25, 0x5e, 0x58, 0x29, 0x7a, 0x4b, 0xf4, 0xee, 0x2f, 0xc1, 0x84, 0x67, 0x4e, + 0xde, 0x91, 0x3a, 0x95, 0xa6, 0xd9, 0x8a, 0x21, 0xf9, 0xcb, 0x4c, 0x32, 0xaf, 0xf8, 0x5e, 0x4b, + 0xeb, 0xac, 0x9a, 0x2d, 0x2c, 0xfc, 0x71, 0x48, 0x73, 0xe1, 0x7b, 0x56, 0x1b, 0x55, 0xed, 0x1d, + 0xab, 0xfe, 0x2c, 0xaa, 0xc5, 0x10, 0xfd, 0xd7, 0x92, 0xab, 0xb6, 0x02, 0x70, 0x2c, 0x79, 0x19, + 0x34, 0xaf, 0x57, 0xa9, 0xd4, 0x9b, 0x2d, 0xbb, 0xed, 0x46, 0x48, 0xfc, 0x1b, 0xee, 0x29, 0x0f, + 0xb7, 0x4c, 0x60, 0xd9, 0x12, 0x0c, 0x93, 0xaf, 0x71, 0x43, 0xf2, 0x2b, 0x4c, 0xd0, 0x90, 0x8f, + 0x62, 0x85, 0xa3, 0x6a, 0x37, 0x5b, 0x66, 0x3b, 0x4e, 0xfd, 0xfb, 0x5b, 0x5e, 0x38, 0x18, 0x84, + 0x15, 0x0e, 0x77, 0xbf, 0x85, 0xf0, 0x6a, 0x1f, 0x43, 0xc2, 0x57, 0x79, 0xe1, 0xe0, 0x18, 0x26, + 0x82, 0x37, 0x0c, 0x31, 0x44, 0xfc, 0x1d, 0x17, 0xc1, 0x31, 0x58, 0xc4, 0xbb, 0xfd, 0x85, 0xb6, + 0x8d, 0x76, 0xea, 0x8e, 0xdb, 0xa6, 0x7d, 0xf0, 0xc1, 0xa2, 0xbe, 0xf6, 0x9a, 0xd8, 0x84, 0x19, + 0x01, 0x68, 0xf6, 0x2a, 0x8c, 0x48, 0x2d, 0x86, 0x1e, 0x75, 0x67, 0x21, 0xfd, 0xab, 0xaf, 0xb3, + 0x62, 0x24, 0x76, 0x18, 0xd9, 0x15, 0xec, 0x77, 0xb1, 0x0f, 0x88, 0x16, 0xf6, 0x81, 0xd7, 0x3d, + 0xd7, 0x0b, 0x6d, 0x40, 0xf6, 0x32, 0x0c, 0x09, 0x3d, 0x40, 0xb4, 0xa8, 0x5f, 0x63, 0xa2, 0x06, + 0x83, 0x2d, 0x40, 0x76, 0x09, 0x92, 0x78, 0x3d, 0x8f, 0x86, 0xff, 0x3a, 0x83, 0x13, 0xf6, 0xec, + 0x43, 0x90, 0xe2, 0xeb, 0x78, 0x34, 0xf4, 0x83, 0x0c, 0xea, 0x41, 0x30, 0x9c, 0xaf, 0xe1, 0xd1, + 0xf0, 0xdf, 0xe0, 0x70, 0x0e, 0xc1, 0xf0, 0xf8, 0x26, 0x7c, 0xe9, 0xb7, 0x92, 0xac, 0x0e, 0x73, + 0xdb, 0x5d, 0x82, 0x23, 0x6c, 0xf1, 0x8e, 0x46, 0x7f, 0x98, 0x3d, 0x9c, 0x23, 0xb2, 0xe7, 0xa1, + 0x37, 0xa6, 0xc1, 0x7f, 0x9b, 0x41, 0x29, 0x7f, 0xb6, 0x00, 0x03, 0x81, 0x05, 0x3b, 0x1a, 0xfe, + 0x3b, 0x0c, 0x1e, 0x44, 0x61, 0xd5, 0xd9, 0x82, 0x1d, 0x2d, 0xe0, 0x77, 0xb9, 0xea, 0x0c, 0x81, + 0xcd, 0xc6, 0xd7, 0xea, 0x68, 0xf4, 0xef, 0x71, 0xab, 0x73, 0x48, 0xf6, 0x11, 0xe8, 0xf7, 0xea, + 0x6f, 0x34, 0xfe, 0xf7, 0x19, 0xde, 0xc7, 0x60, 0x0b, 0x04, 0xea, 0x7f, 0xb4, 0x88, 0x3f, 0xe0, + 0x16, 0x08, 0xa0, 0x70, 0x1a, 0xc9, 0x6b, 0x7a, 0xb4, 0xa4, 0x8f, 0xf0, 0x34, 0x92, 0x96, 0x74, + 0xec, 0x4d, 0x52, 0x06, 0xa3, 0x45, 0xfc, 0x21, 0xf7, 0x26, 0xe1, 0xc7, 0x6a, 0xc8, 0x8b, 0x64, + 0xb4, 0x8c, 0x3f, 0xe6, 0x6a, 0x48, 0x6b, 0x64, 0x76, 0x1d, 0xf4, 0xce, 0x05, 0x32, 0x5a, 0xde, + 0x47, 0x99, 0xbc, 0xd1, 0x8e, 0xf5, 0x31, 0xfb, 0x18, 0x8c, 0x87, 0x2f, 0x8e, 0xd1, 0x52, 0x3f, + 0xf6, 0xba, 0xf4, 0x3a, 0x13, 0x5c, 0x1b, 0xb3, 0x9b, 0x7e, 0x95, 0x0d, 0x2e, 0x8c, 0xd1, 0x62, + 0x3f, 0xfe, 0xba, 0x58, 0x68, 0x83, 0xeb, 0x62, 0x36, 0x07, 0xe0, 0xaf, 0x49, 0xd1, 0xb2, 0x3e, + 0xc1, 0x64, 0x05, 0x40, 0x38, 0x35, 0xd8, 0x92, 0x14, 0x8d, 0xff, 0x24, 0x4f, 0x0d, 0x86, 0xc0, + 0xa9, 0xc1, 0x57, 0xa3, 0x68, 0xf4, 0xf3, 0x3c, 0x35, 0x38, 0x24, 0x7b, 0x09, 0x52, 0xd6, 0x5e, + 0xa3, 0x81, 0x63, 0x4b, 0x3f, 0xf8, 0x1a, 0x51, 0xfa, 0x3f, 0xde, 0x60, 0x60, 0x0e, 0xc8, 0x2e, + 0x41, 0x2f, 0x6a, 0x5e, 0x47, 0xb5, 0x28, 0xe4, 0x7f, 0xbe, 0xc1, 0xeb, 0x09, 0xe6, 0xce, 0x3e, + 0x02, 0x40, 0x5f, 0xa6, 0xc9, 0x29, 0x51, 0x04, 0xf6, 0xbf, 0xde, 0x60, 0x37, 0x14, 0x7c, 0x88, + 0x2f, 0x80, 0xde, 0x77, 0x38, 0x58, 0xc0, 0x6b, 0xa2, 0x00, 0xf2, 0x02, 0x7e, 0x11, 0x8e, 0x3c, + 0xe1, 0xd8, 0x96, 0x6b, 0xee, 0x44, 0xa1, 0xff, 0x9b, 0xa1, 0x39, 0x3f, 0x36, 0x58, 0xd3, 0x6e, + 0x23, 0xd7, 0xdc, 0x71, 0xa2, 0xb0, 0xff, 0xc3, 0xb0, 0x1e, 0x00, 0x83, 0xab, 0xa6, 0xe3, 0xc6, + 0x99, 0xf7, 0xff, 0x72, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xe7, 0x27, 0xd1, 0x7e, 0x14, 0xf6, 0x07, + 0x5c, 0x69, 0xc6, 0x9f, 0x7d, 0x08, 0xfa, 0xf1, 0x47, 0x7a, 0x6b, 0x27, 0x02, 0xfc, 0x43, 0x06, + 0xf6, 0x11, 0xf8, 0xc9, 0x8e, 0x5b, 0x73, 0xeb, 0xd1, 0xc6, 0xfe, 0x3f, 0xe6, 0x69, 0xce, 0x9f, + 0xcd, 0xc1, 0x80, 0xe3, 0xd6, 0x6a, 0x7b, 0xac, 0xa3, 0x89, 0x80, 0xff, 0xe8, 0x0d, 0xef, 0x25, + 0xd7, 0xc3, 0xe4, 0x4f, 0x84, 0x6f, 0xd6, 0xc1, 0x15, 0xfb, 0x8a, 0x4d, 0xb7, 0xe9, 0xe0, 0x5b, + 0x0d, 0xb8, 0xb3, 0x6a, 0x37, 0xaf, 0xdb, 0xce, 0xe9, 0xeb, 0xb6, 0xbb, 0x7b, 0xda, 0xdd, 0x45, + 0x78, 0xe9, 0x60, 0x3b, 0x6c, 0x49, 0xfc, 0x79, 0xe2, 0x70, 0xdb, 0x72, 0xe4, 0xc4, 0xb5, 0x5c, + 0xc7, 0x9a, 0x95, 0xc9, 0xa6, 0xb7, 0x7e, 0x1c, 0xfa, 0x88, 0xae, 0x67, 0xc8, 0xc1, 0x92, 0x92, + 0x4f, 0xde, 0x78, 0x65, 0xaa, 0xc7, 0x60, 0x63, 0x1e, 0x75, 0x81, 0xec, 0x4a, 0x26, 0x04, 0xea, + 0x82, 0x47, 0x3d, 0x4b, 0x37, 0x26, 0x05, 0xea, 0x59, 0x8f, 0xba, 0x48, 0xb6, 0x28, 0x55, 0x81, + 0xba, 0xe8, 0x51, 0x97, 0xc8, 0x36, 0xfc, 0x90, 0x40, 0x5d, 0xf2, 0xa8, 0xe7, 0xc8, 0xe6, 0x7b, + 0x52, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0xbe, 0xfb, 0xa8, 0x40, 0x3d, 0xef, 0x51, 0x2f, 0x90, + 0xfd, 0x76, 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x25, 0x92, 0x23, 0x02, 0xf5, 0xa2, 0x3e, + 0x09, 0x47, 0xe8, 0xcc, 0xe7, 0xc9, 0xe1, 0xec, 0x08, 0x23, 0xf3, 0x41, 0x9f, 0x7e, 0x86, 0x5c, + 0x18, 0xe9, 0x13, 0xe9, 0x67, 0x7c, 0xfa, 0x02, 0xb9, 0x3a, 0xad, 0x89, 0xf4, 0x05, 0x9f, 0x7e, + 0x36, 0x3d, 0x44, 0x2e, 0xcd, 0x08, 0xf4, 0xb3, 0x3e, 0x7d, 0x31, 0x3d, 0x8c, 0xc3, 0x55, 0xa4, + 0x2f, 0xfa, 0xf4, 0xa5, 0xf4, 0xc8, 0xb4, 0x32, 0x33, 0x28, 0xd2, 0x97, 0x32, 0xef, 0x27, 0xee, + 0xb5, 0x7c, 0xf7, 0x8e, 0x8b, 0xee, 0xf5, 0x1c, 0x3b, 0x2e, 0x3a, 0xd6, 0x73, 0xe9, 0xb8, 0xe8, + 0x52, 0xcf, 0x99, 0xe3, 0xa2, 0x33, 0x3d, 0x37, 0x8e, 0x8b, 0x6e, 0xf4, 0x1c, 0x38, 0x2e, 0x3a, + 0xd0, 0x73, 0xdd, 0xb8, 0xe8, 0x3a, 0xcf, 0x69, 0xe3, 0xa2, 0xd3, 0x3c, 0x77, 0x8d, 0x8b, 0xee, + 0xf2, 0x1c, 0x95, 0x96, 0x1c, 0xe5, 0xbb, 0x28, 0x2d, 0xb9, 0xc8, 0x77, 0x4e, 0x5a, 0x72, 0x8e, + 0xef, 0x96, 0xb4, 0xe4, 0x16, 0xdf, 0x21, 0x69, 0xc9, 0x21, 0xbe, 0x2b, 0xd2, 0x92, 0x2b, 0x7c, + 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x24, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, + 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, + 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x83, 0x73, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, + 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0xb5, 0x6b, 0x8e, 0xf9, 0xee, 0x1d, 0x17, 0xdd, + 0x1b, 0x9a, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, + 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x96, 0x63, 0x6a, 0xd7, + 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0x35, + 0x98, 0x63, 0x7f, 0xaf, 0x82, 0x4e, 0x73, 0x6c, 0x9d, 0x5c, 0xef, 0x61, 0xae, 0x98, 0x94, 0x32, + 0xad, 0x0f, 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x29, 0xe5, 0x9a, 0x48, 0x5f, 0xf0, 0xe8, 0x3c, 0xdb, + 0x44, 0xfa, 0x59, 0x8f, 0xce, 0xf3, 0x4d, 0xa4, 0x2f, 0x7a, 0x74, 0x9e, 0x71, 0x22, 0x7d, 0xc9, + 0xa3, 0xf3, 0x9c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x3a, 0x91, 0x7e, 0xde, 0xa3, 0xf3, 0xbc, + 0x13, 0xe9, 0x17, 0x3c, 0x3a, 0xcf, 0x3c, 0x91, 0x7e, 0x51, 0x9f, 0x96, 0x73, 0x8f, 0x33, 0x78, + 0xae, 0x9d, 0x96, 0xb3, 0x4f, 0xe2, 0x38, 0xe3, 0x73, 0xf0, 0xfc, 0x93, 0x38, 0x16, 0x7c, 0x0e, + 0x9e, 0x81, 0x12, 0xc7, 0xd9, 0xcc, 0x87, 0x88, 0xfb, 0x2c, 0xd9, 0x7d, 0x13, 0x92, 0xfb, 0x12, + 0x01, 0xd7, 0x4d, 0x48, 0xae, 0x4b, 0x04, 0xdc, 0x36, 0x21, 0xb9, 0x2d, 0x11, 0x70, 0xd9, 0x84, + 0xe4, 0xb2, 0x44, 0xc0, 0x5d, 0x13, 0x92, 0xbb, 0x12, 0x01, 0x57, 0x4d, 0x48, 0xae, 0x4a, 0x04, + 0xdc, 0x34, 0x21, 0xb9, 0x29, 0x11, 0x70, 0xd1, 0x84, 0xe4, 0xa2, 0x44, 0xc0, 0x3d, 0x13, 0x92, + 0x7b, 0x12, 0x01, 0xd7, 0x1c, 0x97, 0x5d, 0x93, 0x08, 0xba, 0xe5, 0xb8, 0xec, 0x96, 0x44, 0xd0, + 0x25, 0xc7, 0x65, 0x97, 0x24, 0x82, 0xee, 0x38, 0x2e, 0xbb, 0x23, 0x11, 0x74, 0xc5, 0x4f, 0x13, + 0xbc, 0x23, 0xdc, 0x70, 0xdb, 0x7b, 0x55, 0xf7, 0xb6, 0x3a, 0xc2, 0x79, 0xa1, 0x7d, 0x18, 0x58, + 0xd0, 0xe7, 0x48, 0xc3, 0x1a, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x5e, 0x68, 0x2c, 0x02, 0x08, 0x2b, + 0x1c, 0xb1, 0x78, 0x5b, 0xbd, 0xe1, 0xbc, 0xd0, 0x66, 0x44, 0xeb, 0x77, 0xe1, 0x6d, 0xef, 0xd8, + 0x5e, 0x4a, 0xf0, 0x8e, 0x8d, 0x99, 0xff, 0xb0, 0x1d, 0xdb, 0x6c, 0xb4, 0xc9, 0x3d, 0x63, 0xcf, + 0x46, 0x1b, 0xbb, 0x63, 0xd5, 0x89, 0xdb, 0xc1, 0xcd, 0x46, 0x9b, 0xd6, 0x33, 0xea, 0x5b, 0xdb, + 0x6f, 0xb1, 0x08, 0x36, 0x50, 0x2b, 0x24, 0x82, 0x0f, 0xdb, 0x6f, 0xcd, 0x0b, 0xa5, 0xe4, 0xb0, + 0x11, 0xac, 0x1e, 0x3a, 0x82, 0x0f, 0xdb, 0x79, 0xcd, 0x0b, 0xe5, 0xe5, 0xd0, 0x11, 0xfc, 0x36, + 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0x1f, 0xb6, 0x1f, 0x9a, 0x8d, 0x36, 0x79, 0x68, 0x04, 0xab, + 0x87, 0x88, 0xe0, 0x38, 0xfd, 0xd1, 0x6c, 0xb4, 0x69, 0xc3, 0x23, 0xf8, 0xb6, 0xbb, 0x99, 0x4f, + 0x29, 0x30, 0x5a, 0xae, 0xd7, 0x4a, 0xcd, 0xeb, 0xa8, 0x56, 0x43, 0x35, 0x66, 0xc7, 0x79, 0xa1, + 0x12, 0x74, 0x71, 0xf5, 0xcb, 0xaf, 0x4c, 0xf9, 0x16, 0x5e, 0x82, 0x14, 0xb5, 0xe9, 0xfc, 0x7c, + 0xfa, 0x86, 0x12, 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x04, 0x87, 0x9d, 0x99, 0x4f, 0xff, 0x8b, 0x12, + 0xa8, 0x72, 0xde, 0x70, 0xe6, 0x23, 0x44, 0x43, 0xeb, 0xb6, 0x35, 0x3c, 0x1d, 0x4b, 0xc3, 0x80, + 0x6e, 0x77, 0x75, 0xe8, 0x16, 0xd0, 0x6a, 0x0f, 0x46, 0xca, 0xf5, 0x5a, 0x99, 0xfc, 0xd1, 0x6e, + 0x1c, 0x95, 0x28, 0x8f, 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, 0x16, 0x6b, 0x44, + 0xa6, 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, 0x0f, 0x9c, 0xed, + 0xf6, 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xc3, 0x17, 0x67, 0x7a, 0xcf, 0x46, 0x3f, 0x0e, 0x89, + 0x65, 0x7a, 0x07, 0x78, 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xce, 0x2b, 0x53, 0xc9, 0xad, 0xbd, 0x7a, + 0xcd, 0x48, 0x2c, 0xd7, 0xf4, 0xab, 0xd0, 0xfb, 0x1e, 0xf6, 0xa7, 0x6f, 0x98, 0x61, 0x91, 0x31, + 0x3c, 0xd0, 0x75, 0x8f, 0x08, 0x3f, 0xf8, 0x34, 0xdd, 0x41, 0x9c, 0xdb, 0xaa, 0x5b, 0xee, 0x99, + 0x85, 0x0b, 0x06, 0x15, 0x91, 0xf9, 0x65, 0x00, 0xfa, 0xcc, 0xa2, 0xe9, 0xec, 0xea, 0x65, 0x2e, + 0x99, 0x3e, 0xfa, 0xc2, 0x77, 0x5e, 0x99, 0x5a, 0x8c, 0x23, 0xf5, 0xc1, 0x9a, 0xe9, 0xec, 0x3e, + 0xe8, 0xee, 0xb7, 0xd0, 0x5c, 0x7e, 0xdf, 0x45, 0x0e, 0x97, 0xde, 0xe2, 0xab, 0x1e, 0x9b, 0x57, + 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0xcb, 0xe2, 0x9c, 0xe6, 0xdf, 0xec, 0x7c, 0x9e, 0xe1, 0x8b, + 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, 0x34, 0x57, 0xf5, + 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x1f, 0xd3, 0x6c, 0xf5, 0xf2, 0x69, 0xcb, 0xa2, 0xf7, 0x0f, + 0x7f, 0xb1, 0xf6, 0x82, 0xde, 0xd2, 0x2e, 0x20, 0x9b, 0xbc, 0xf1, 0xc2, 0x94, 0x92, 0xf9, 0x54, + 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x9b, 0x9b, 0xf9, 0x2f, 0x4a, 0x4f, 0xf5, 0x76, 0x58, 0xe8, 0x79, + 0x05, 0xc6, 0x3b, 0x2a, 0x39, 0x35, 0xd3, 0x5b, 0x5b, 0xce, 0xad, 0xc3, 0x96, 0x73, 0xa6, 0xe0, + 0x57, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x69, 0x49, 0xbd, 0x63, 0x9d, 0x4f, 0x22, 0x8c, + 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, 0x25, 0xbf, 0x1f, 0xf7, 0x00, + 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x46, 0x48, 0x9f, 0x84, 0xc4, 0x5a, + 0x9b, 0x69, 0x38, 0x4c, 0xf1, 0x6b, 0xed, 0x7c, 0xdb, 0xb4, 0xaa, 0xbb, 0x46, 0x62, 0xad, 0xad, + 0x9f, 0x00, 0x35, 0xc7, 0x7e, 0x5c, 0x60, 0x60, 0x61, 0x84, 0x32, 0xe4, 0xac, 0x1a, 0xe3, 0xc0, + 0x34, 0x7d, 0x12, 0x92, 0x2b, 0xc8, 0xdc, 0x66, 0x4a, 0x00, 0xe5, 0xc1, 0x23, 0x06, 0x19, 0x67, + 0x0f, 0x7c, 0x1c, 0x52, 0x5c, 0xb0, 0x7e, 0x12, 0x23, 0xb6, 0x5d, 0xf6, 0x58, 0x86, 0xc0, 0xea, + 0xb0, 0x95, 0x8b, 0x50, 0xf5, 0x53, 0xd0, 0x6b, 0xd4, 0x77, 0x76, 0x5d, 0xf6, 0xf0, 0x4e, 0x36, + 0x4a, 0xce, 0x5c, 0x83, 0x7e, 0x4f, 0xa3, 0xb7, 0x58, 0x74, 0x91, 0x4e, 0x4d, 0x9f, 0x08, 0xae, + 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, 0xd3, 0x90, 0xda, 0x70, 0xdb, 0x7e, 0xd1, 0xe7, 0x1d, 0xa9, + 0x37, 0x9a, 0x79, 0xbf, 0x02, 0xa9, 0x22, 0x42, 0x2d, 0x62, 0xf0, 0x7b, 0x21, 0x59, 0xb4, 0x9f, + 0xb6, 0x98, 0x82, 0xa3, 0xcc, 0xa2, 0x98, 0xcc, 0x6c, 0x4a, 0xc8, 0xfa, 0xbd, 0x41, 0xbb, 0x8f, + 0x79, 0x76, 0x0f, 0xf0, 0x11, 0xdb, 0x67, 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa6, 0x0e, 0xfb, 0x9f, + 0x87, 0x81, 0xc0, 0x53, 0xf4, 0x19, 0xa6, 0x46, 0x42, 0x06, 0x06, 0x6d, 0x85, 0x39, 0x32, 0x08, + 0x86, 0x84, 0x07, 0x63, 0x68, 0xc0, 0xc4, 0x5d, 0xa0, 0xc4, 0xcc, 0xb3, 0xa2, 0x99, 0xc3, 0x59, + 0x99, 0xa9, 0xe7, 0xa9, 0x8d, 0x88, 0xb9, 0x4f, 0xd2, 0xe0, 0xec, 0xee, 0x44, 0xfc, 0x39, 0xd3, + 0x0b, 0x6a, 0xb9, 0xde, 0xc8, 0x3c, 0x04, 0x40, 0x53, 0xbe, 0x64, 0xed, 0x35, 0xa5, 0xac, 0x1b, + 0xe6, 0x06, 0xde, 0xdc, 0x45, 0x9b, 0xc8, 0x21, 0x2c, 0x62, 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, + 0x23, 0xf8, 0xfb, 0x23, 0xf1, 0xa1, 0x9d, 0x18, 0x66, 0x4d, 0x53, 0xd6, 0x6b, 0xc8, 0xcd, 0x59, + 0xb6, 0xbb, 0x8b, 0xda, 0x12, 0x62, 0x41, 0x3f, 0x2b, 0x24, 0xec, 0xf0, 0xc2, 0x5d, 0x1e, 0xa2, + 0x2b, 0xe8, 0x6c, 0xe6, 0x4b, 0x44, 0x41, 0xdc, 0x0a, 0x74, 0x4c, 0x50, 0x8d, 0x31, 0x41, 0xfd, + 0x9c, 0xd0, 0xbf, 0x1d, 0xa0, 0xa6, 0xf4, 0x6a, 0x79, 0x51, 0x78, 0xcf, 0x39, 0x58, 0x59, 0xf1, + 0x1d, 0x93, 0xdb, 0x94, 0xab, 0x7c, 0x7f, 0xa4, 0xca, 0x5d, 0xba, 0xdb, 0xc3, 0xda, 0x54, 0x8d, + 0x6b, 0xd3, 0xaf, 0x7b, 0x1d, 0x07, 0xfd, 0x99, 0x06, 0xf2, 0xab, 0x20, 0xfa, 0x03, 0x91, 0xbe, + 0xcf, 0x2a, 0x05, 0x4f, 0xd5, 0xc5, 0xb8, 0xee, 0xcf, 0x26, 0xf2, 0x79, 0x4f, 0xdd, 0xf3, 0x87, + 0x08, 0x81, 0x6c, 0xa2, 0x50, 0xf0, 0xca, 0x76, 0xea, 0x43, 0x2f, 0x4c, 0x29, 0x2f, 0xbe, 0x30, + 0xd5, 0x93, 0xf9, 0xbc, 0x02, 0xa3, 0x8c, 0x33, 0x10, 0xb8, 0x0f, 0x4a, 0xca, 0xdf, 0xc1, 0x6b, + 0x46, 0x98, 0x05, 0x7e, 0x66, 0xc1, 0xfb, 0x4d, 0x05, 0xd2, 0x1d, 0xba, 0x72, 0x7b, 0xcf, 0xc7, + 0x52, 0x39, 0xab, 0x94, 0x7e, 0xfe, 0x36, 0xbf, 0x06, 0xbd, 0x9b, 0xf5, 0x26, 0x6a, 0xe3, 0x95, + 0x00, 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, 0xb6, 0xa0, 0xa7, + 0x21, 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, 0x67, 0x61, 0x70, + 0x75, 0x9f, 0x5c, 0x92, 0xa9, 0x91, 0x0b, 0x20, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0x33, 0xb3, 0xbd, + 0xa9, 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc1, 0xf0, 0x1a, 0x56, 0x9b, 0xe0, 0x04, + 0x18, 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, 0x65, 0x55, 0x6c, + 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, 0x53, 0xa0, 0x0d, + 0xb1, 0xe7, 0xfe, 0x93, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xbb, 0x6e, 0xd5, 0xdd, 0xce, 0x7e, + 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x1f, 0xd7, 0xc2, 0xa6, 0x3f, 0xc1, + 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, 0xcb, 0xab, 0x6c, + 0x71, 0x5b, 0x3c, 0x10, 0xca, 0xee, 0xd8, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x31, 0xb0, 0x00, 0x7d, + 0x11, 0x12, 0xe5, 0x55, 0xd6, 0xf0, 0x9e, 0x8c, 0x23, 0xc6, 0x48, 0x94, 0x57, 0x27, 0xfe, 0x41, + 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, 0xc6, 0xb8, 0xce, + 0x89, 0xdb, 0xd4, 0x79, 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, 0x88, 0x29, 0x41, + 0x7f, 0x98, 0x28, 0x84, 0x92, 0xb9, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, 0x7b, 0x3a, 0xe5, 0xd2, 0xc6, + 0x66, 0xa9, 0xa8, 0x29, 0x99, 0xaf, 0x2a, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, 0x42, 0x7a, 0x1e, + 0x94, 0x1c, 0x8b, 0x87, 0x37, 0xa7, 0xb7, 0x92, 0xd3, 0x4f, 0x83, 0x92, 0x8f, 0xef, 0x6a, 0x25, + 0xaf, 0x2f, 0x80, 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0xa1, 0x0a, 0x63, 0xc1, + 0x36, 0x9a, 0xd7, 0x93, 0x13, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xcc, 0xc2, 0xd9, 0xc5, 0x39, 0xfc, + 0x8f, 0x17, 0x92, 0x27, 0xc4, 0x57, 0xa8, 0x4e, 0x96, 0x8e, 0x6b, 0x22, 0xd9, 0x64, 0x80, 0xda, + 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, 0x6a, 0xc7, 0x51, + 0x80, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0xce, 0x6b, 0x22, 0x8c, + 0xdc, 0xf5, 0x9a, 0x88, 0x48, 0xef, 0xbc, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, 0x64, 0x93, 0x6e, + 0x7b, 0x0f, 0x75, 0x3f, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, 0x05, 0x78, 0x0d, 0x46, 0xe8, + 0x7e, 0x44, 0xc1, 0xb6, 0x5c, 0xb3, 0x6e, 0xa1, 0xb6, 0xfe, 0x4e, 0x18, 0xa4, 0x43, 0xf4, 0x2d, + 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0x33, 0x3f, 0x4d, 0xc2, 0x38, 0x1d, 0x28, + 0x9b, 0x4d, 0x24, 0x5c, 0x32, 0x3a, 0x25, 0x1d, 0x29, 0x0d, 0x63, 0xf8, 0xad, 0x57, 0xa6, 0xe8, + 0x68, 0xce, 0x0b, 0xa6, 0x53, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, 0x3f, 0xa7, 0xa4, 0x8b, 0x47, + 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, 0xf4, 0xa2, 0xec, 0x94, 0x74, + 0x19, 0x49, 0xe4, 0x2b, 0x79, 0xf1, 0x76, 0x4a, 0x3a, 0x7a, 0x12, 0xf9, 0x2e, 0x7b, 0x91, 0x77, + 0x4a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x78, 0x31, 0x78, 0x4a, 0xba, 0xaa, 0x24, 0xf2, 0x3d, 0xea, + 0x45, 0xe3, 0x29, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, 0x8c, 0x7c, 0x7d, 0x49, 0x64, + 0xbc, 0xea, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x97, 0x1f, 0xab, 0x33, 0xf2, 0x95, + 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, 0x5c, 0xf5, 0xe3, 0x77, 0x46, + 0x3e, 0x34, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, 0x22, 0xe7, 0x9a, 0xbf, 0x87, + 0xfe, 0x0d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, 0x65, 0xa4, 0xd0, + 0x83, 0x90, 0xb0, 0xcb, 0x48, 0x61, 0x07, 0x21, 0x21, 0x97, 0x91, 0x42, 0x0e, 0x42, 0xc2, 0x2d, + 0x23, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x46, 0x0a, 0x35, 0x08, 0x09, 0xb3, 0x8c, 0x14, 0x66, 0x10, + 0x12, 0x62, 0x19, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0x32, 0x52, 0x78, 0x41, 0x48, 0x68, 0x9d, 0x94, + 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0xa4, 0x1c, 0x56, 0x10, 0x16, 0x52, 0xf7, 0xc8, 0x21, 0xd5, 0x7f, + 0xeb, 0x95, 0xa9, 0x5e, 0x3c, 0x14, 0x88, 0xa6, 0x93, 0x72, 0x34, 0x41, 0x58, 0x24, 0x9d, 0x94, + 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0xa4, 0x1c, 0x45, 0x10, 0x16, 0x41, 0x2f, 0xc9, 0x11, 0xe4, 0x5f, + 0xf1, 0xc9, 0x48, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, + 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, + 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x5b, 0x04, 0x9d, 0x94, 0x2f, 0x3c, 0x40, 0x58, 0x41, + 0x3a, 0x29, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, 0x6e, 0x21, 0xf4, 0x0d, 0x15, + 0xc6, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x55, 0x05, 0x3a, 0x17, 0xe3, 0x7e, 0x45, 0x58, 0x4c, + 0x9d, 0x8b, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x56, 0xa1, 0x52, 0x8c, 0x2a, 0x74, 0xd9, 0x8b, + 0xa1, 0x73, 0x31, 0xee, 0x5d, 0x74, 0xc6, 0xde, 0x85, 0x83, 0x8a, 0xc0, 0xa3, 0xb1, 0x8a, 0xc0, + 0x72, 0xac, 0x22, 0x70, 0xd5, 0xf7, 0xe0, 0x07, 0x13, 0x70, 0xd4, 0xf7, 0x20, 0xfd, 0x44, 0x7e, + 0x04, 0x29, 0x13, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, 0x89, 0xe5, 0x9a, 0xbe, 0x2e, + 0x9e, 0x55, 0x65, 0x0f, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, 0x3d, 0x09, 0xea, 0x72, 0xcd, + 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x05, 0x03, 0x93, 0x75, 0x03, 0xfa, 0x08, 0xbb, 0x43, 0xdc, 0x7b, + 0x3b, 0x0f, 0x2e, 0x1a, 0x4c, 0x52, 0xe6, 0x25, 0x05, 0xa6, 0x85, 0x50, 0x7e, 0x6b, 0x4e, 0x0c, + 0x2e, 0xc5, 0x3a, 0x31, 0x10, 0x12, 0xc4, 0x3f, 0x3d, 0xb8, 0xaf, 0xf3, 0xa0, 0x3a, 0x98, 0x25, + 0xf2, 0x49, 0xc2, 0xaf, 0xc0, 0xb0, 0x3f, 0x03, 0xf2, 0xca, 0xb6, 0x14, 0xbd, 0x99, 0x19, 0x96, + 0x9a, 0x4b, 0xd2, 0x26, 0xda, 0x81, 0x30, 0x2f, 0x5b, 0x33, 0x59, 0x18, 0x29, 0x8b, 0x7f, 0xad, + 0x13, 0xb5, 0x17, 0x91, 0xc2, 0xad, 0xf9, 0x8d, 0x4f, 0x4f, 0xf5, 0x64, 0x1e, 0x80, 0xc1, 0xe0, + 0x1f, 0xe4, 0x48, 0xc0, 0x7e, 0x0e, 0xcc, 0x26, 0x5f, 0xc6, 0xdc, 0x7f, 0xa4, 0xc0, 0x1d, 0x41, + 0xf6, 0xc7, 0xea, 0xee, 0xee, 0xb2, 0x85, 0x7b, 0xfa, 0x87, 0x20, 0x85, 0x98, 0xe3, 0xd8, 0xef, + 0x99, 0xb0, 0xd7, 0xc8, 0x50, 0xf6, 0x39, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x4d, 0x10, 0xfe, 0xd8, + 0x85, 0x89, 0x7b, 0xa1, 0x97, 0xca, 0x17, 0xf5, 0x1a, 0x92, 0xf4, 0xfa, 0x6c, 0x88, 0x5e, 0x24, + 0x8e, 0xf4, 0xab, 0x82, 0x5e, 0x81, 0xb7, 0xd5, 0x50, 0xf6, 0x39, 0x1e, 0x7c, 0xf9, 0x14, 0xee, + 0xff, 0x48, 0x44, 0x45, 0x2b, 0x39, 0x03, 0xa9, 0x92, 0xcc, 0x13, 0xae, 0x67, 0x11, 0x92, 0x65, + 0xbb, 0x46, 0x7e, 0x69, 0x85, 0xfc, 0x22, 0x2e, 0x33, 0x32, 0xfb, 0x79, 0xdc, 0x53, 0x90, 0x2a, + 0xec, 0xd6, 0x1b, 0xb5, 0x36, 0xb2, 0xd8, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, 0xc3, 0xa3, 0x65, + 0x0a, 0x30, 0x5a, 0xb6, 0xad, 0xfc, 0xbe, 0x1b, 0xac, 0x1b, 0x73, 0x52, 0x8a, 0xb0, 0x23, 0x1f, + 0xf2, 0x27, 0x1e, 0x98, 0x21, 0xdf, 0xfb, 0x9d, 0x57, 0xa6, 0x94, 0x4d, 0x6f, 0xfb, 0x7c, 0x15, + 0x8e, 0xb1, 0xf4, 0xe9, 0x10, 0xb5, 0x10, 0x25, 0xaa, 0x9f, 0x1d, 0x53, 0x07, 0xc4, 0x2d, 0x63, + 0x71, 0x56, 0xa8, 0xb8, 0x37, 0xa7, 0x19, 0x6e, 0x8a, 0x0e, 0xd4, 0x4c, 0x3d, 0x94, 0x66, 0xa1, + 0xe2, 0xe6, 0xa2, 0xc4, 0x49, 0x9a, 0xdd, 0x03, 0xfd, 0x1e, 0x2d, 0x10, 0x0d, 0xc1, 0x4c, 0x59, + 0x98, 0xcd, 0xc0, 0x40, 0x20, 0x61, 0xf5, 0x5e, 0x50, 0x72, 0x5a, 0x0f, 0xfe, 0x2f, 0xaf, 0x29, + 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x17, 0x46, 0xa4, 0xed, 0x4b, 0x4c, 0x29, 0x6a, 0x80, 0xff, + 0x2b, 0x69, 0x03, 0x13, 0xc9, 0x0f, 0xfd, 0xe9, 0x64, 0xcf, 0xec, 0x25, 0xd0, 0x3b, 0x37, 0x3a, + 0xf5, 0x3e, 0x48, 0xe4, 0xb0, 0xc8, 0x63, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x62, 0xe4, 0x37, 0x3f, + 0x39, 0x3d, 0x90, 0x27, 0x7f, 0x6d, 0x7c, 0x0d, 0xb9, 0xf9, 0x3c, 0x03, 0x3f, 0x0c, 0x77, 0x84, + 0x6e, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x07, 0xbe, 0x58, 0x24, 0x78, 0x25, 0xcb, + 0x0f, 0x9c, 0x73, 0x7a, 0xc8, 0x26, 0x63, 0xba, 0x16, 0x38, 0xe0, 0xce, 0x65, 0x1f, 0x66, 0xbc, + 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x60, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x96, 0x4e, + 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x06, 0xee, 0xba, 0x17, + 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x3b, 0x5f, 0xa5, 0xec, 0x69, 0xb6, 0xc8, 0xe7, 0xce, + 0xe8, 0x77, 0xf0, 0x1c, 0x15, 0x2a, 0x30, 0x33, 0x10, 0xe7, 0xca, 0x16, 0x18, 0x20, 0xdf, 0x15, + 0xd0, 0xdd, 0x4a, 0x1c, 0x99, 0x7d, 0x94, 0x09, 0x29, 0x74, 0x15, 0x12, 0x61, 0x2a, 0x0e, 0xcf, + 0x6f, 0xde, 0xb8, 0x39, 0xd9, 0xf3, 0xf2, 0xcd, 0xc9, 0x9e, 0x7f, 0xbd, 0x39, 0xd9, 0xf3, 0xdd, + 0x9b, 0x93, 0xca, 0xf7, 0x6f, 0x4e, 0x2a, 0x3f, 0xb8, 0x39, 0xa9, 0xfc, 0xe4, 0xe6, 0xa4, 0xf2, + 0xdc, 0xad, 0x49, 0xe5, 0xc5, 0x5b, 0x93, 0xca, 0x97, 0x6e, 0x4d, 0x2a, 0x5f, 0xbb, 0x35, 0xa9, + 0xbc, 0x74, 0x6b, 0x52, 0xb9, 0x71, 0x6b, 0x52, 0x79, 0xf9, 0xd6, 0xa4, 0xf2, 0xdd, 0x5b, 0x93, + 0xca, 0xf7, 0x6f, 0x4d, 0xf6, 0xfc, 0xe0, 0xd6, 0xa4, 0xf2, 0x93, 0x5b, 0x93, 0x3d, 0xcf, 0xbd, + 0x3a, 0xd9, 0xf3, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x35, 0x89, 0x28, 0xbd, 0xa5, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12238,18 +12583,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12291,8 +12638,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12300,8 +12649,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12356,18 +12705,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12421,8 +12772,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12430,8 +12783,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15030,56 +15383,500 @@ func (this *Node) Equal(that interface{}) bool { } return true } +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField1() float64 { - return this.Field1 + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField2() float32 { - return this.Field2 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField3() int32 { - return this.Field3 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField4() int64 { - return this.Field4 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 + GetField3() int32 + GetField4() int64 + GetField5() uint32 + GetField6() uint64 + GetField7() int32 + GetField8() int64 + GetField9() uint32 + GetField10() int32 + GetField11() uint64 + GetField12() int64 + GetField13() bool + GetField14() string + GetField15() []byte +} + +func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNativeFromFace(this) +} + +func (this *NidOptNative) GetField1() float64 { + return this.Field1 +} + +func (this *NidOptNative) GetField2() float32 { + return this.Field2 +} + +func (this *NidOptNative) GetField3() int32 { + return this.Field3 +} + +func (this *NidOptNative) GetField4() int64 { + return this.Field4 +} + +func (this *NidOptNative) GetField5() uint32 { + return this.Field5 +} + +func (this *NidOptNative) GetField6() uint64 { + return this.Field6 } func (this *NidOptNative) GetField7() int32 { @@ -17693,6 +18490,144 @@ func NewNodeFromFace(that NodeFace) *Node { return this } +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) +} + +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) +} + +func (this *NinRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type ProtoTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField2() *string +} + +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) +} + +func (this *ProtoType) GetField2() *string { + return this.Field2 +} + +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() + return this +} + func (this *NidOptNative) GoString() string { if this == nil { return "nil" @@ -18715,9 +19650,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18739,9 +19672,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19248,6 +20179,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19256,11 +20275,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19270,1370 +20290,1370 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } -func (m *NidOptNative) Marshal() (data []byte, err error) { +func (m *NidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptNative) MarshalTo(data []byte) (int, error) { +func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.Field1)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.Field2)))) - data[i] = 0x18 + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.Field3)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.Field5)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(m.Field9)) - data[i] = 0x55 + i = encodeFixed32Thetest(dAtA, i, uint32(m.Field9)) + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(m.Field10)) - data[i] = 0x59 + i = encodeFixed32Thetest(dAtA, i, uint32(m.Field10)) + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Field11)) - data[i] = 0x61 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Field11)) + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Field12)) - data[i] = 0x68 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Field12)) + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field9)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field10)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field11)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field12)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepNative) Marshal() (data []byte, err error) { +func (m *NidRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f1 := math.Float64bits(float64(num)) - data[i] = uint8(f1) + dAtA[i] = uint8(f1) i++ - data[i] = uint8(f1 >> 8) + dAtA[i] = uint8(f1 >> 8) i++ - data[i] = uint8(f1 >> 16) + dAtA[i] = uint8(f1 >> 16) i++ - data[i] = uint8(f1 >> 24) + dAtA[i] = uint8(f1 >> 24) i++ - data[i] = uint8(f1 >> 32) + dAtA[i] = uint8(f1 >> 32) i++ - data[i] = uint8(f1 >> 40) + dAtA[i] = uint8(f1 >> 40) i++ - data[i] = uint8(f1 >> 48) + dAtA[i] = uint8(f1 >> 48) i++ - data[i] = uint8(f1 >> 56) + dAtA[i] = uint8(f1 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f2 := math.Float32bits(float32(num)) - data[i] = uint8(f2) + dAtA[i] = uint8(f2) i++ - data[i] = uint8(f2 >> 8) + dAtA[i] = uint8(f2 >> 8) i++ - data[i] = uint8(f2 >> 16) + dAtA[i] = uint8(f2 >> 16) i++ - data[i] = uint8(f2 >> 24) + dAtA[i] = uint8(f2 >> 24) i++ } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x3 := (uint32(num) << 1) ^ uint32((num >> 31)) for x3 >= 1<<7 { - data[i] = uint8(uint64(x3)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) x3 >>= 7 i++ } - data[i] = uint8(x3) + dAtA[i] = uint8(x3) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x4 := (uint64(num) << 1) ^ uint64((num >> 63)) for x4 >= 1<<7 { - data[i] = uint8(uint64(x4)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) x4 >>= 7 i++ } - data[i] = uint8(x4) + dAtA[i] = uint8(x4) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepNative) Marshal() (data []byte, err error) { +func (m *NinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f5 := math.Float64bits(float64(num)) - data[i] = uint8(f5) + dAtA[i] = uint8(f5) i++ - data[i] = uint8(f5 >> 8) + dAtA[i] = uint8(f5 >> 8) i++ - data[i] = uint8(f5 >> 16) + dAtA[i] = uint8(f5 >> 16) i++ - data[i] = uint8(f5 >> 24) + dAtA[i] = uint8(f5 >> 24) i++ - data[i] = uint8(f5 >> 32) + dAtA[i] = uint8(f5 >> 32) i++ - data[i] = uint8(f5 >> 40) + dAtA[i] = uint8(f5 >> 40) i++ - data[i] = uint8(f5 >> 48) + dAtA[i] = uint8(f5 >> 48) i++ - data[i] = uint8(f5 >> 56) + dAtA[i] = uint8(f5 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f6 := math.Float32bits(float32(num)) - data[i] = uint8(f6) + dAtA[i] = uint8(f6) i++ - data[i] = uint8(f6 >> 8) + dAtA[i] = uint8(f6 >> 8) i++ - data[i] = uint8(f6 >> 16) + dAtA[i] = uint8(f6 >> 16) i++ - data[i] = uint8(f6 >> 24) + dAtA[i] = uint8(f6 >> 24) i++ } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x7 := (uint32(num) << 1) ^ uint32((num >> 31)) for x7 >= 1<<7 { - data[i] = uint8(uint64(x7)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x7)&0x7f | 0x80) x7 >>= 7 i++ } - data[i] = uint8(x7) + dAtA[i] = uint8(x7) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x8 := (uint64(num) << 1) ^ uint64((num >> 63)) for x8 >= 1<<7 { - data[i] = uint8(uint64(x8)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x8)&0x7f | 0x80) x8 >>= 7 i++ } - data[i] = uint8(x8) + dAtA[i] = uint8(x8) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepPackedNative) Marshal() (data []byte, err error) { +func (m *NidRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f9 := math.Float64bits(float64(num)) - data[i] = uint8(f9) + dAtA[i] = uint8(f9) i++ - data[i] = uint8(f9 >> 8) + dAtA[i] = uint8(f9 >> 8) i++ - data[i] = uint8(f9 >> 16) + dAtA[i] = uint8(f9 >> 16) i++ - data[i] = uint8(f9 >> 24) + dAtA[i] = uint8(f9 >> 24) i++ - data[i] = uint8(f9 >> 32) + dAtA[i] = uint8(f9 >> 32) i++ - data[i] = uint8(f9 >> 40) + dAtA[i] = uint8(f9 >> 40) i++ - data[i] = uint8(f9 >> 48) + dAtA[i] = uint8(f9 >> 48) i++ - data[i] = uint8(f9 >> 56) + dAtA[i] = uint8(f9 >> 56) i++ } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f10 := math.Float32bits(float32(num)) - data[i] = uint8(f10) + dAtA[i] = uint8(f10) i++ - data[i] = uint8(f10 >> 8) + dAtA[i] = uint8(f10 >> 8) i++ - data[i] = uint8(f10 >> 16) + dAtA[i] = uint8(f10 >> 16) i++ - data[i] = uint8(f10 >> 24) + dAtA[i] = uint8(f10 >> 24) i++ } } if len(m.Field3) > 0 { - data12 := make([]byte, len(m.Field3)*10) + dAtA12 := make([]byte, len(m.Field3)*10) var j11 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j11++ } - data12[j11] = uint8(num) + dAtA12[j11] = uint8(num) j11++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j11)) - i += copy(data[i:], data12[:j11]) + i = encodeVarintThetest(dAtA, i, uint64(j11)) + i += copy(dAtA[i:], dAtA12[:j11]) } if len(m.Field4) > 0 { - data14 := make([]byte, len(m.Field4)*10) + dAtA14 := make([]byte, len(m.Field4)*10) var j13 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data14[j13] = uint8(uint64(num)&0x7f | 0x80) + dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j13++ } - data14[j13] = uint8(num) + dAtA14[j13] = uint8(num) j13++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j13)) - i += copy(data[i:], data14[:j13]) + i = encodeVarintThetest(dAtA, i, uint64(j13)) + i += copy(dAtA[i:], dAtA14[:j13]) } if len(m.Field5) > 0 { - data16 := make([]byte, len(m.Field5)*10) + dAtA16 := make([]byte, len(m.Field5)*10) var j15 int for _, num := range m.Field5 { for num >= 1<<7 { - data16[j15] = uint8(uint64(num)&0x7f | 0x80) + dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j15++ } - data16[j15] = uint8(num) + dAtA16[j15] = uint8(num) j15++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j15)) - i += copy(data[i:], data16[:j15]) + i = encodeVarintThetest(dAtA, i, uint64(j15)) + i += copy(dAtA[i:], dAtA16[:j15]) } if len(m.Field6) > 0 { - data18 := make([]byte, len(m.Field6)*10) + dAtA18 := make([]byte, len(m.Field6)*10) var j17 int for _, num := range m.Field6 { for num >= 1<<7 { - data18[j17] = uint8(uint64(num)&0x7f | 0x80) + dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j17++ } - data18[j17] = uint8(num) + dAtA18[j17] = uint8(num) j17++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j17)) - i += copy(data[i:], data18[:j17]) + i = encodeVarintThetest(dAtA, i, uint64(j17)) + i += copy(dAtA[i:], dAtA18[:j17]) } if len(m.Field7) > 0 { - data19 := make([]byte, len(m.Field7)*5) + dAtA19 := make([]byte, len(m.Field7)*5) var j20 int for _, num := range m.Field7 { x21 := (uint32(num) << 1) ^ uint32((num >> 31)) for x21 >= 1<<7 { - data19[j20] = uint8(uint64(x21)&0x7f | 0x80) + dAtA19[j20] = uint8(uint64(x21)&0x7f | 0x80) j20++ x21 >>= 7 } - data19[j20] = uint8(x21) + dAtA19[j20] = uint8(x21) j20++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j20)) - i += copy(data[i:], data19[:j20]) + i = encodeVarintThetest(dAtA, i, uint64(j20)) + i += copy(dAtA[i:], dAtA19[:j20]) } if len(m.Field8) > 0 { var j22 int - data24 := make([]byte, len(m.Field8)*10) + dAtA24 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x23 := (uint64(num) << 1) ^ uint64((num >> 63)) for x23 >= 1<<7 { - data24[j22] = uint8(uint64(x23)&0x7f | 0x80) + dAtA24[j22] = uint8(uint64(x23)&0x7f | 0x80) j22++ x23 >>= 7 } - data24[j22] = uint8(x23) + dAtA24[j22] = uint8(x23) j22++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j22)) - i += copy(data[i:], data24[:j22]) + i = encodeVarintThetest(dAtA, i, uint64(j22)) + i += copy(dAtA[i:], dAtA24[:j22]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepPackedNative) Marshal() (data []byte, err error) { +func (m *NinRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f25 := math.Float64bits(float64(num)) - data[i] = uint8(f25) + dAtA[i] = uint8(f25) i++ - data[i] = uint8(f25 >> 8) + dAtA[i] = uint8(f25 >> 8) i++ - data[i] = uint8(f25 >> 16) + dAtA[i] = uint8(f25 >> 16) i++ - data[i] = uint8(f25 >> 24) + dAtA[i] = uint8(f25 >> 24) i++ - data[i] = uint8(f25 >> 32) + dAtA[i] = uint8(f25 >> 32) i++ - data[i] = uint8(f25 >> 40) + dAtA[i] = uint8(f25 >> 40) i++ - data[i] = uint8(f25 >> 48) + dAtA[i] = uint8(f25 >> 48) i++ - data[i] = uint8(f25 >> 56) + dAtA[i] = uint8(f25 >> 56) i++ } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f26 := math.Float32bits(float32(num)) - data[i] = uint8(f26) + dAtA[i] = uint8(f26) i++ - data[i] = uint8(f26 >> 8) + dAtA[i] = uint8(f26 >> 8) i++ - data[i] = uint8(f26 >> 16) + dAtA[i] = uint8(f26 >> 16) i++ - data[i] = uint8(f26 >> 24) + dAtA[i] = uint8(f26 >> 24) i++ } } if len(m.Field3) > 0 { - data28 := make([]byte, len(m.Field3)*10) + dAtA28 := make([]byte, len(m.Field3)*10) var j27 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data28[j27] = uint8(uint64(num)&0x7f | 0x80) + dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j27++ } - data28[j27] = uint8(num) + dAtA28[j27] = uint8(num) j27++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j27)) - i += copy(data[i:], data28[:j27]) + i = encodeVarintThetest(dAtA, i, uint64(j27)) + i += copy(dAtA[i:], dAtA28[:j27]) } if len(m.Field4) > 0 { - data30 := make([]byte, len(m.Field4)*10) + dAtA30 := make([]byte, len(m.Field4)*10) var j29 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data30[j29] = uint8(uint64(num)&0x7f | 0x80) + dAtA30[j29] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j29++ } - data30[j29] = uint8(num) + dAtA30[j29] = uint8(num) j29++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j29)) - i += copy(data[i:], data30[:j29]) + i = encodeVarintThetest(dAtA, i, uint64(j29)) + i += copy(dAtA[i:], dAtA30[:j29]) } if len(m.Field5) > 0 { - data32 := make([]byte, len(m.Field5)*10) + dAtA32 := make([]byte, len(m.Field5)*10) var j31 int for _, num := range m.Field5 { for num >= 1<<7 { - data32[j31] = uint8(uint64(num)&0x7f | 0x80) + dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j31++ } - data32[j31] = uint8(num) + dAtA32[j31] = uint8(num) j31++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j31)) - i += copy(data[i:], data32[:j31]) + i = encodeVarintThetest(dAtA, i, uint64(j31)) + i += copy(dAtA[i:], dAtA32[:j31]) } if len(m.Field6) > 0 { - data34 := make([]byte, len(m.Field6)*10) + dAtA34 := make([]byte, len(m.Field6)*10) var j33 int for _, num := range m.Field6 { for num >= 1<<7 { - data34[j33] = uint8(uint64(num)&0x7f | 0x80) + dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j33++ } - data34[j33] = uint8(num) + dAtA34[j33] = uint8(num) j33++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j33)) - i += copy(data[i:], data34[:j33]) + i = encodeVarintThetest(dAtA, i, uint64(j33)) + i += copy(dAtA[i:], dAtA34[:j33]) } if len(m.Field7) > 0 { - data35 := make([]byte, len(m.Field7)*5) + dAtA35 := make([]byte, len(m.Field7)*5) var j36 int for _, num := range m.Field7 { x37 := (uint32(num) << 1) ^ uint32((num >> 31)) for x37 >= 1<<7 { - data35[j36] = uint8(uint64(x37)&0x7f | 0x80) + dAtA35[j36] = uint8(uint64(x37)&0x7f | 0x80) j36++ x37 >>= 7 } - data35[j36] = uint8(x37) + dAtA35[j36] = uint8(x37) j36++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j36)) - i += copy(data[i:], data35[:j36]) + i = encodeVarintThetest(dAtA, i, uint64(j36)) + i += copy(dAtA[i:], dAtA35[:j36]) } if len(m.Field8) > 0 { var j38 int - data40 := make([]byte, len(m.Field8)*10) + dAtA40 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x39 := (uint64(num) << 1) ^ uint64((num >> 63)) for x39 >= 1<<7 { - data40[j38] = uint8(uint64(x39)&0x7f | 0x80) + dAtA40[j38] = uint8(uint64(x39)&0x7f | 0x80) j38++ x39 >>= 7 } - data40[j38] = uint8(x39) + dAtA40[j38] = uint8(x39) j38++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j38)) - i += copy(data[i:], data40[:j38]) + i = encodeVarintThetest(dAtA, i, uint64(j38)) + i += copy(dAtA[i:], dAtA40[:j38]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptStruct) Marshal() (data []byte, err error) { +func (m *NidOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.Field1)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.Field2)))) - data[i] = 0x1a + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n41, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n41, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n41 - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n42, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n42, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n42 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x42 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n43, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n43, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n43 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStruct) Marshal() (data []byte, err error) { +func (m *NinOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n44, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n44, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n44 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n45, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n45, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n46, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n46, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n46 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepStruct) Marshal() (data []byte, err error) { +func (m *NidRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f47 := math.Float64bits(float64(num)) - data[i] = uint8(f47) + dAtA[i] = uint8(f47) i++ - data[i] = uint8(f47 >> 8) + dAtA[i] = uint8(f47 >> 8) i++ - data[i] = uint8(f47 >> 16) + dAtA[i] = uint8(f47 >> 16) i++ - data[i] = uint8(f47 >> 24) + dAtA[i] = uint8(f47 >> 24) i++ - data[i] = uint8(f47 >> 32) + dAtA[i] = uint8(f47 >> 32) i++ - data[i] = uint8(f47 >> 40) + dAtA[i] = uint8(f47 >> 40) i++ - data[i] = uint8(f47 >> 48) + dAtA[i] = uint8(f47 >> 48) i++ - data[i] = uint8(f47 >> 56) + dAtA[i] = uint8(f47 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f48 := math.Float32bits(float32(num)) - data[i] = uint8(f48) + dAtA[i] = uint8(f48) i++ - data[i] = uint8(f48 >> 8) + dAtA[i] = uint8(f48 >> 8) i++ - data[i] = uint8(f48 >> 16) + dAtA[i] = uint8(f48 >> 16) i++ - data[i] = uint8(f48 >> 24) + dAtA[i] = uint8(f48 >> 24) i++ } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20642,10 +21662,10 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20654,31 +21674,31 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x49 := (uint32(num) << 1) ^ uint32((num >> 31)) for x49 >= 1<<7 { - data[i] = uint8(uint64(x49)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x49)&0x7f | 0x80) x49 >>= 7 i++ } - data[i] = uint8(x49) + dAtA[i] = uint8(x49) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20687,104 +21707,104 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepStruct) Marshal() (data []byte, err error) { +func (m *NinRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f50 := math.Float64bits(float64(num)) - data[i] = uint8(f50) + dAtA[i] = uint8(f50) i++ - data[i] = uint8(f50 >> 8) + dAtA[i] = uint8(f50 >> 8) i++ - data[i] = uint8(f50 >> 16) + dAtA[i] = uint8(f50 >> 16) i++ - data[i] = uint8(f50 >> 24) + dAtA[i] = uint8(f50 >> 24) i++ - data[i] = uint8(f50 >> 32) + dAtA[i] = uint8(f50 >> 32) i++ - data[i] = uint8(f50 >> 40) + dAtA[i] = uint8(f50 >> 40) i++ - data[i] = uint8(f50 >> 48) + dAtA[i] = uint8(f50 >> 48) i++ - data[i] = uint8(f50 >> 56) + dAtA[i] = uint8(f50 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f51 := math.Float32bits(float32(num)) - data[i] = uint8(f51) + dAtA[i] = uint8(f51) i++ - data[i] = uint8(f51 >> 8) + dAtA[i] = uint8(f51 >> 8) i++ - data[i] = uint8(f51 >> 16) + dAtA[i] = uint8(f51 >> 16) i++ - data[i] = uint8(f51 >> 24) + dAtA[i] = uint8(f51 >> 24) i++ } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20793,10 +21813,10 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20805,31 +21825,31 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x52 := (uint32(num) << 1) ^ uint32((num >> 31)) for x52 >= 1<<7 { - data[i] = uint8(uint64(x52)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x52)&0x7f | 0x80) x52 >>= 7 i++ } - data[i] = uint8(x52) + dAtA[i] = uint8(x52) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20838,180 +21858,180 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NidEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n53, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n53, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n53 } - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n54, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n54, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n54 - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n55, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n55, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n55 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n56, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n56, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n56 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidNestedStruct) Marshal() (data []byte, err error) { +func (m *NidNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n57, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n57, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n57 if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21019,31 +22039,31 @@ func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStruct) Marshal() (data []byte, err error) { +func (m *NinNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n58, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n58, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21051,10 +22071,10 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21062,141 +22082,141 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptCustom) Marshal() (data []byte, err error) { +func (m *NidOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n59, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n59, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n59 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n60, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n60, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomDash) Marshal() (data []byte, err error) { +func (m *CustomDash) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomDash) MarshalTo(data []byte) (int, error) { +func (m *CustomDash) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Value != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n61, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n61, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptCustom) Marshal() (data []byte, err error) { +func (m *NinOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Id != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n62, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n62, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n62 } if m.Value != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n63, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n63, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n63 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepCustom) Marshal() (data []byte, err error) { +func (m *NidRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21205,10 +22225,10 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21216,32 +22236,32 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepCustom) Marshal() (data []byte, err error) { +func (m *NinRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21250,10 +22270,10 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21261,1681 +22281,1677 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeUnion) Marshal() (data []byte, err error) { +func (m *NinOptNativeUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStructUnion) Marshal() (data []byte, err error) { +func (m *NinOptStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n64, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n64, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n64 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n65, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n65, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n65 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n66, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n66, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n66 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n67, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n67, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n67 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStructUnion) Marshal() (data []byte, err error) { +func (m *NinNestedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n68, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n68, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n68 } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Field2.Size())) - n69, err := m.Field2.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) + n69, err := m.Field2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n69 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n70, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n70, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n70 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Tree) Marshal() (data []byte, err error) { +func (m *Tree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Tree) MarshalTo(data []byte) (int, error) { +func (m *Tree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Or != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Or.Size())) - n71, err := m.Or.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) + n71, err := m.Or.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n71 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n72, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n72, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n72 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n73, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n73, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n73 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OrBranch) Marshal() (data []byte, err error) { +func (m *OrBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OrBranch) MarshalTo(data []byte) (int, error) { +func (m *OrBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n74, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n74, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n74 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n75, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n75, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n75 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndBranch) Marshal() (data []byte, err error) { +func (m *AndBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndBranch) MarshalTo(data []byte) (int, error) { +func (m *AndBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n76, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n76, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n76 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n77, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n77, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n77 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Leaf) Marshal() (data []byte, err error) { +func (m *Leaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Leaf) MarshalTo(data []byte) (int, error) { +func (m *Leaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Value)) - data[i] = 0x12 + i = encodeVarintThetest(dAtA, i, uint64(m.Value)) + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.StrValue))) - i += copy(data[i:], m.StrValue) + i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) + i += copy(dAtA[i:], m.StrValue) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepTree) Marshal() (data []byte, err error) { +func (m *DeepTree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepTree) MarshalTo(data []byte) (int, error) { +func (m *DeepTree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Down != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n78, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n78, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n78 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n79, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n79, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n79 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n80, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n80, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n80 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *ADeepBranch) Marshal() (data []byte, err error) { +func (m *ADeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ADeepBranch) MarshalTo(data []byte) (int, error) { +func (m *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n81, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n81, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n81 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndDeepBranch) Marshal() (data []byte, err error) { +func (m *AndDeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndDeepBranch) MarshalTo(data []byte) (int, error) { +func (m *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n82, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n82, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n82 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n83, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n83, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n83 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepLeaf) Marshal() (data []byte, err error) { +func (m *DeepLeaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepLeaf) MarshalTo(data []byte) (int, error) { +func (m *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Tree.Size())) - n84, err := m.Tree.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) + n84, err := m.Tree.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n84 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Nil) Marshal() (data []byte, err error) { +func (m *Nil) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nil) MarshalTo(data []byte) (int, error) { +func (m *Nil) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptEnum) Marshal() (data []byte, err error) { +func (m *NidOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnum) Marshal() (data []byte, err error) { +func (m *NinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepEnum) Marshal() (data []byte, err error) { +func (m *NidRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepEnum) Marshal() (data []byte, err error) { +func (m *NinRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *NinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnum) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Timer) Marshal() (data []byte, err error) { +func (m *Timer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Timer) MarshalTo(data []byte) (int, error) { +func (m *Timer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Time1)) - data[i] = 0x11 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Time1)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Time2)) + i = encodeFixed64Thetest(dAtA, i, uint64(m.Time2)) if m.Data != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *MyExtendable) Marshal() (data []byte, err error) { +func (m *MyExtendable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MyExtendable) MarshalTo(data []byte) (int, error) { +func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OtherExtenable) Marshal() (data []byte, err error) { +func (m *OtherExtenable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OtherExtenable) MarshalTo(data []byte) (int, error) { +func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.M != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.M.Size())) - n85, err := m.M.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) + n85, err := m.M.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n85 } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field13)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition) Marshal() (data []byte, err error) { +func (m *NestedDefinition) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.EnumField != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.EnumField)) + i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) } if m.NNM != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n86, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n86, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n86 } if m.NM != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.NM.Size())) - n87, err := m.NM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) + n87, err := m.NM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n87 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedField1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.NestedField1)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.NestedField1)) } if m.NNM != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n88, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n88, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n88 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedNestedField1 != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.NestedNestedField1))) - i += copy(data[i:], *m.NestedNestedField1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) + i += copy(dAtA[i:], *m.NestedNestedField1) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedScope) Marshal() (data []byte, err error) { +func (m *NestedScope) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedScope) MarshalTo(data []byte) (int, error) { +func (m *NestedScope) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.A != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.A.Size())) - n89, err := m.A.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) + n89, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n89 } if m.B != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.B)) + i = encodeVarintThetest(dAtA, i, uint64(*m.B)) } if m.C != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.C.Size())) - n90, err := m.C.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) + n90, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n90 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeDefault) Marshal() (data []byte, err error) { +func (m *NinOptNativeDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field9)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field10)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field11)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field12)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomContainer) Marshal() (data []byte, err error) { +func (m *CustomContainer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomContainer) MarshalTo(data []byte) (int, error) { +func (m *CustomContainer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.CustomStruct.Size())) - n91, err := m.CustomStruct.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) + n91, err := m.CustomStruct.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n91 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNidOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNidOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.FieldA)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.FieldA)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.FieldB)))) - data[i] = 0x18 + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.FieldB)))) + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldD)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldE)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldF)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(m.FieldI)) - data[i] = 0x55 + i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldI)) + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(m.FieldJ)) - data[i] = 0x59 + i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldJ)) + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(m.FieldK)) - data[i] = 0x61 + i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldK)) + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(m.FieldL)) - data[i] = 0x68 + i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldL)) + dAtA[i] = 0x68 i++ if m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldN))) - i += copy(data[i:], m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) + i += copy(dAtA[i:], m.FieldN) if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.FieldA)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.FieldB)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) } if m.FieldC != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldC)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) } if m.FieldD != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldD)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) } if m.FieldE != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldF)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) } if m.FieldG != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) } if m.FieldH != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) } if m.FieldI != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.FieldI)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldI)) } if m.FieldJ != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.FieldJ)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldJ)) } if m.FieldK != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.FieldK)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.FieldK)) } if m.FielL != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.FielL)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.FielL)) } if m.FieldM != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldN != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldN))) - i += copy(data[i:], *m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) + i += copy(dAtA[i:], *m.FieldN) } if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinRepNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinRepNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.FieldA) > 0 { for _, num := range m.FieldA { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f92 := math.Float64bits(float64(num)) - data[i] = uint8(f92) + dAtA[i] = uint8(f92) i++ - data[i] = uint8(f92 >> 8) + dAtA[i] = uint8(f92 >> 8) i++ - data[i] = uint8(f92 >> 16) + dAtA[i] = uint8(f92 >> 16) i++ - data[i] = uint8(f92 >> 24) + dAtA[i] = uint8(f92 >> 24) i++ - data[i] = uint8(f92 >> 32) + dAtA[i] = uint8(f92 >> 32) i++ - data[i] = uint8(f92 >> 40) + dAtA[i] = uint8(f92 >> 40) i++ - data[i] = uint8(f92 >> 48) + dAtA[i] = uint8(f92 >> 48) i++ - data[i] = uint8(f92 >> 56) + dAtA[i] = uint8(f92 >> 56) i++ } } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f93 := math.Float32bits(float32(num)) - data[i] = uint8(f93) + dAtA[i] = uint8(f93) i++ - data[i] = uint8(f93 >> 8) + dAtA[i] = uint8(f93 >> 8) i++ - data[i] = uint8(f93 >> 16) + dAtA[i] = uint8(f93 >> 16) i++ - data[i] = uint8(f93 >> 24) + dAtA[i] = uint8(f93 >> 24) i++ } } if len(m.FieldC) > 0 { for _, num := range m.FieldC { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldD) > 0 { for _, num := range m.FieldD { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldE) > 0 { for _, num := range m.FieldE { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldF) > 0 { for _, num := range m.FieldF { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldG) > 0 { for _, num := range m.FieldG { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x94 := (uint32(num) << 1) ^ uint32((num >> 31)) for x94 >= 1<<7 { - data[i] = uint8(uint64(x94)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x94)&0x7f | 0x80) x94 >>= 7 i++ } - data[i] = uint8(x94) + dAtA[i] = uint8(x94) i++ } } if len(m.FieldH) > 0 { for _, num := range m.FieldH { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x95 := (uint64(num) << 1) ^ uint64((num >> 63)) for x95 >= 1<<7 { - data[i] = uint8(uint64(x95)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x95)&0x7f | 0x80) x95 >>= 7 i++ } - data[i] = uint8(x95) + dAtA[i] = uint8(x95) i++ } } if len(m.FieldI) > 0 { for _, num := range m.FieldI { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.FieldM) > 0 { for _, b := range m.FieldM { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.FieldN) > 0 { for _, s := range m.FieldN { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.FieldO) > 0 { for _, b := range m.FieldO { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinStruct) Marshal() (data []byte, err error) { +func (m *CustomNameNinStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.FieldA)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.FieldB)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) } if m.FieldC != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC.Size())) - n96, err := m.FieldC.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) + n96, err := m.FieldC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -22943,10 +23959,10 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -22954,83 +23970,83 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } } if m.FieldE != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) } if m.FieldG != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldG.Size())) - n97, err := m.FieldG.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) + n97, err := m.FieldG.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n97 } if m.FieldH != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldH { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldI != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldI))) - i += copy(data[i:], *m.FieldI) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) + i += copy(dAtA[i:], *m.FieldI) } if m.FieldJ != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldJ))) - i += copy(data[i:], m.FieldJ) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) + i += copy(dAtA[i:], m.FieldJ) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameCustomType) Marshal() (data []byte, err error) { +func (m *CustomNameCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n98, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n98, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n98 } if m.FieldB != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldB.Size())) - n99, err := m.FieldB.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) + n99, err := m.FieldB.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23038,10 +24054,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldC) > 0 { for _, msg := range m.FieldC { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23050,10 +24066,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23061,173 +24077,173 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *CustomNameNinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n100, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n100, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n100 } if m.FieldA != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n101, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n101, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n101 } if m.FieldB != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.FieldB { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameEnum) Marshal() (data []byte, err error) { +func (m *CustomNameEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameEnum) MarshalTo(data []byte) (int, error) { +func (m *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldA)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NoExtensionsMap) Marshal() (data []byte, err error) { +func (m *NoExtensionsMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NoExtensionsMap) MarshalTo(data []byte) (int, error) { +func (m *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.XXX_extensions != nil { - i += copy(data[i:], m.XXX_extensions) + i += copy(dAtA[i:], m.XXX_extensions) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Unrecognized) Marshal() (data []byte, err error) { +func (m *Unrecognized) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Unrecognized) MarshalTo(data []byte) (int, error) { +func (m *Unrecognized) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field1))) - i += copy(data[i:], *m.Field1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) + i += copy(dAtA[i:], *m.Field1) } return i, nil } -func (m *UnrecognizedWithInner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Embedded) > 0 { for _, msg := range m.Embedded { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23235,125 +24251,125 @@ func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { } } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithInner_Inner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner_Inner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner_Inner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *UnrecognizedWithEmbed) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n102, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) + n102, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n102 if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithEmbed_Embedded) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed_Embedded) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *Node) Marshal() (data []byte, err error) { +func (m *Node) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Node) MarshalTo(data []byte) (int, error) { +func (m *Node) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Label != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Label))) - i += copy(data[i:], *m.Label) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) + i += copy(dAtA[i:], *m.Label) } if len(m.Children) > 0 { for _, msg := range m.Children { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23361,36 +24377,220 @@ func (m *Node) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Thetest(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func (m *NonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n103, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n103 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n104, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n104 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n105, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n105 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ProtoType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field2 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func encodeFixed64Thetest(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Thetest(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Thetest(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintThetest(data []byte, offset int, v uint64) int { +func encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -23432,7 +24632,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -23523,7 +24723,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -23660,7 +24860,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -23801,7 +25001,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24089,7 +25289,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -24142,7 +25342,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -24232,7 +25432,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24323,7 +25523,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24534,7 +25734,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -24579,7 +25779,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -24664,7 +25864,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -24910,8 +26110,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -24954,8 +26154,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -25007,7 +26207,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -25113,7 +26313,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -25178,7 +26378,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -25269,7 +26469,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -25406,7 +26606,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -25471,7 +26671,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -25568,8 +26768,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -25581,7 +26781,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -25599,7 +26799,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -25624,7 +26824,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -25647,7 +26847,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -25663,6 +26863,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -25682,14 +26958,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -25697,43 +26973,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -26844,9 +28120,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -26866,9 +28140,7 @@ func (m *OtherExtenable) Size() (n int) { if m.Field13 != nil { n += 1 + sovThetest(uint64(*m.Field13)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -27378,6 +28650,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -28004,7 +29356,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28018,7 +29370,7 @@ func (this *OtherExtenable) String() string { `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28250,7 +29602,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28322,6 +29674,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -28587,8 +30005,8 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { } return true } -func (m *NidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28600,7 +30018,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28625,14 +30043,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -28643,10 +30061,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -28660,7 +30078,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field3 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28679,7 +30097,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field4 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -28698,7 +30116,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field5 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -28717,7 +30135,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28736,7 +30154,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28757,7 +30175,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28775,10 +30193,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field9 = uint32(data[iNdEx-4]) - m.Field9 |= uint32(data[iNdEx-3]) << 8 - m.Field9 |= uint32(data[iNdEx-2]) << 16 - m.Field9 |= uint32(data[iNdEx-1]) << 24 + m.Field9 = uint32(dAtA[iNdEx-4]) + m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 + m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 + m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) @@ -28788,10 +30206,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field10 = int32(data[iNdEx-4]) - m.Field10 |= int32(data[iNdEx-3]) << 8 - m.Field10 |= int32(data[iNdEx-2]) << 16 - m.Field10 |= int32(data[iNdEx-1]) << 24 + m.Field10 = int32(dAtA[iNdEx-4]) + m.Field10 |= int32(dAtA[iNdEx-3]) << 8 + m.Field10 |= int32(dAtA[iNdEx-2]) << 16 + m.Field10 |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) @@ -28801,14 +30219,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field11 = uint64(data[iNdEx-8]) - m.Field11 |= uint64(data[iNdEx-7]) << 8 - m.Field11 |= uint64(data[iNdEx-6]) << 16 - m.Field11 |= uint64(data[iNdEx-5]) << 24 - m.Field11 |= uint64(data[iNdEx-4]) << 32 - m.Field11 |= uint64(data[iNdEx-3]) << 40 - m.Field11 |= uint64(data[iNdEx-2]) << 48 - m.Field11 |= uint64(data[iNdEx-1]) << 56 + m.Field11 = uint64(dAtA[iNdEx-8]) + m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 + m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 + m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 + m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 + m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 + m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 + m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) @@ -28818,14 +30236,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field12 = int64(data[iNdEx-8]) - m.Field12 |= int64(data[iNdEx-7]) << 8 - m.Field12 |= int64(data[iNdEx-6]) << 16 - m.Field12 |= int64(data[iNdEx-5]) << 24 - m.Field12 |= int64(data[iNdEx-4]) << 32 - m.Field12 |= int64(data[iNdEx-3]) << 40 - m.Field12 |= int64(data[iNdEx-2]) << 48 - m.Field12 |= int64(data[iNdEx-1]) << 56 + m.Field12 = int64(dAtA[iNdEx-8]) + m.Field12 |= int64(dAtA[iNdEx-7]) << 8 + m.Field12 |= int64(dAtA[iNdEx-6]) << 16 + m.Field12 |= int64(dAtA[iNdEx-5]) << 24 + m.Field12 |= int64(dAtA[iNdEx-4]) << 32 + m.Field12 |= int64(dAtA[iNdEx-3]) << 40 + m.Field12 |= int64(dAtA[iNdEx-2]) << 48 + m.Field12 |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) @@ -28838,7 +30256,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28858,7 +30276,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28873,7 +30291,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -28887,7 +30305,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28901,14 +30319,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28918,7 +30336,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28928,8 +30346,8 @@ func (m *NidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28941,7 +30359,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28966,14 +30384,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -28985,10 +30403,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -29003,7 +30421,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -29023,7 +30441,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -29043,7 +30461,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -29063,7 +30481,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29083,7 +30501,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -29104,7 +30522,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29123,10 +30541,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -29137,10 +30555,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -29151,14 +30569,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -29169,14 +30587,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -29190,7 +30608,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29211,7 +30629,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29226,7 +30644,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -29241,7 +30659,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29255,14 +30673,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29272,7 +30690,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29282,8 +30700,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29295,7 +30713,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29312,245 +30730,771 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - m.Field4 = append(m.Field4, v) case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) case 10: - if wireType != 5 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -29563,7 +31507,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29578,7 +31522,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -29592,7 +31536,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29607,11 +31551,11 @@ func (m *NidRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29621,7 +31565,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29631,8 +31575,8 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29644,7 +31588,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29661,468 +31605,136 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + case 2: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepPackedNative) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NidRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) - } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) - } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 2 { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30131,7 +31743,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30154,7 +31766,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30163,8 +31775,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30172,19 +31788,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30193,7 +31805,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30216,7 +31828,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -30225,8 +31837,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30234,19 +31850,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30255,7 +31867,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30278,7 +31890,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -30287,8 +31899,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30296,19 +31912,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30317,7 +31929,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30340,7 +31952,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30349,8 +31961,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30358,19 +31974,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30379,7 +31992,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30402,7 +32015,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30412,8 +32025,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30421,20 +32038,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30443,7 +32056,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30466,7 +32079,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30476,29 +32089,22 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30507,7 +32113,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30527,28 +32133,28 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30557,7 +32163,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30577,28 +32183,32 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30607,7 +32217,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30627,36 +32237,36 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30665,7 +32275,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30685,36 +32295,38 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30723,7 +32335,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30746,7 +32358,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30755,29 +32367,70 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30787,7 +32440,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30797,8 +32450,8 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30810,7 +32463,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30820,14 +32473,30 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") + return fmt.Errorf("proto: NidRepPackedNative: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30836,7 +32505,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30856,38 +32525,34 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30896,7 +32561,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30916,30 +32581,35 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30948,7 +32618,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30971,7 +32641,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30980,8 +32650,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -30989,19 +32663,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31010,7 +32680,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31033,7 +32703,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -31042,8 +32712,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -31051,19 +32725,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31072,7 +32742,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31095,7 +32765,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -31104,8 +32774,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -31113,19 +32787,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31134,7 +32804,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31157,7 +32827,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31166,8 +32836,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -31175,19 +32849,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31196,7 +32867,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31219,7 +32890,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -31229,8 +32900,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -31238,20 +32913,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31260,7 +32931,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31283,7 +32954,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31293,29 +32964,22 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31324,7 +32988,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31344,28 +33008,28 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31374,7 +33038,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31394,28 +33058,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31424,7 +33092,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31444,36 +33112,36 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31482,7 +33150,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31502,36 +33170,38 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -31540,7 +33210,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31563,7 +33233,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31572,29 +33242,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31604,7 +33257,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31614,8 +33267,8 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NidOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31627,7 +33280,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31637,257 +33290,781 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NidOptStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field1 = float64(math.Float64frombits(v)) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field2 = float32(math.Float32frombits(v)) - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + case 2: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field13 = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = string(data[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - if byteLen < 0 { - return ErrInvalidLengthThetest + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + } + case 10: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) + } + case 11: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) + } + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31897,7 +34074,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31907,8 +34084,8 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31920,7 +34097,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31930,10 +34107,10 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NinOptStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NidOptStruct: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -31945,16 +34122,15 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = &v2 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) @@ -31964,12 +34140,11 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = &v2 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -31982,7 +34157,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31996,10 +34171,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32015,7 +34187,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32029,10 +34201,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32040,7 +34209,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - var v uint64 + m.Field6 = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -32048,14 +34217,13 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = &v case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) @@ -32068,7 +34236,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -32076,7 +34244,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } } v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v + m.Field7 = v case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -32089,7 +34257,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32103,10 +34271,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Field8 == nil { - m.Field8 = &NidOptNative{} - } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32122,15 +34287,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - b := bool(v != 0) - m.Field13 = &b + m.Field13 = bool(v != 0) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -32143,7 +34307,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32158,8 +34322,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field14 = &s + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -32173,7 +34336,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32187,14 +34350,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32204,7 +34367,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32214,8 +34377,8 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32227,7 +34390,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32237,10 +34400,10 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NidRepStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NinOptStruct: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -32252,16 +34415,16 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) + m.Field1 = &v2 case 2: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) @@ -32271,12 +34434,12 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) + m.Field2 = &v2 case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -32289,7 +34452,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32303,8 +34466,10 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field3 == nil { + m.Field3 = &NidOptNative{} + } + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32320,7 +34485,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32334,10 +34499,12 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } + if m.Field4 == nil { + m.Field4 = &NinOptNative{} + } + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 6: if wireType != 0 { @@ -32351,14 +34518,14 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) + m.Field6 = &v case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) @@ -32371,7 +34538,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -32379,7 +34546,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } } v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) + m.Field7 = &v case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -32392,7 +34559,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32406,8 +34573,10 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field8 == nil { + m.Field8 = &NidOptNative{} + } + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32423,14 +34592,15 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field13 = append(m.Field13, bool(v != 0)) + b := bool(v != 0) + m.Field13 = &b case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -32443,7 +34613,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32458,7 +34628,8 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + s := string(dAtA[iNdEx:postIndex]) + m.Field14 = &s iNdEx = postIndex case 15: if wireType != 2 { @@ -32472,7 +34643,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32486,12 +34657,14 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) + if m.Field15 == nil { + m.Field15 = []byte{} + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32501,7 +34674,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32511,8 +34684,8 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32524,7 +34697,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32534,46 +34707,124 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NinRepStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NidRepStruct: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -32586,7 +34837,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32600,8 +34851,8 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field3 = append(m.Field3, NidOptNative{}) + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32617,7 +34868,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32631,52 +34882,137 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field4 = append(m.Field4, NinOptNative{}) + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -32689,7 +35025,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32703,31 +35039,73 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field8 = append(m.Field8, NidOptNative{}) + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -32740,7 +35118,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32755,7 +35133,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -32769,7 +35147,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32784,11 +35162,11 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32798,7 +35176,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32808,8 +35186,8 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32821,7 +35199,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32831,149 +35209,127 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NidEmbeddedStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepStruct: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 2: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field210 = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NinEmbeddedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -32983,7 +35339,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32997,16 +35353,14 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field3 = append(m.Field3, &NidOptNative{}) + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 200: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -33016,7 +35370,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33030,17 +35384,543 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Field200 == nil { - m.Field200 = &NidOptNative{} - } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field4 = append(m.Field4, &NinOptNative{}) + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field8 = append(m.Field8, &NidOptNative{}) + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) + } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidEmbeddedStruct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NidOptNative == nil { + m.NidOptNative = &NidOptNative{} + } + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 200: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 210: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field210 = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NinEmbeddedStruct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NidOptNative == nil { + m.NidOptNative = &NidOptNative{} + } + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 200: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field200 == nil { + m.Field200 = &NidOptNative{} + } + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 210: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) + } var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -33049,7 +35929,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33060,7 +35940,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33070,7 +35950,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33080,8 +35960,8 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33093,7 +35973,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33121,7 +36001,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33135,7 +36015,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33151,7 +36031,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33166,13 +36046,13 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33182,7 +36062,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33192,8 +36072,8 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33205,7 +36085,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33233,7 +36113,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33250,7 +36130,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptStruct{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33266,7 +36146,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33281,13 +36161,13 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33297,7 +36177,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33307,8 +36187,8 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33320,7 +36200,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33348,7 +36228,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33362,7 +36242,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33378,7 +36258,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33392,13 +36272,13 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33408,7 +36288,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33418,8 +36298,8 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *CustomDash) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomDash) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33431,7 +36311,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33459,7 +36339,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33475,13 +36355,13 @@ func (m *CustomDash) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom_dash_type.Bytes m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33491,7 +36371,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33501,8 +36381,8 @@ func (m *CustomDash) Unmarshal(data []byte) error { } return nil } -func (m *NinOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33514,7 +36394,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33542,7 +36422,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33558,7 +36438,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = &v - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33574,7 +36454,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33590,13 +36470,13 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33606,7 +36486,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33616,8 +36496,8 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *NidRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33629,7 +36509,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33657,7 +36537,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33673,7 +36553,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33689,7 +36569,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33705,13 +36585,13 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33721,7 +36601,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33731,8 +36611,8 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33744,7 +36624,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33772,7 +36652,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33788,7 +36668,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33804,7 +36684,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33820,13 +36700,13 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33836,7 +36716,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33846,8 +36726,8 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33859,7 +36739,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33884,14 +36764,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -33903,10 +36783,10 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -33921,7 +36801,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33941,7 +36821,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33961,7 +36841,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33981,7 +36861,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34001,7 +36881,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34022,7 +36902,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34037,7 +36917,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -34052,7 +36932,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34066,14 +36946,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34083,7 +36963,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34093,8 +36973,8 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34106,7 +36986,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34131,14 +37011,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -34150,10 +37030,10 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -34168,7 +37048,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34185,7 +37065,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34201,7 +37081,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34218,7 +37098,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34234,7 +37114,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34254,7 +37134,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -34275,7 +37155,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34296,7 +37176,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34311,7 +37191,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -34326,7 +37206,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34340,14 +37220,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34357,7 +37237,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34367,8 +37247,8 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34380,7 +37260,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34408,7 +37288,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34425,7 +37305,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34441,7 +37321,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34458,7 +37338,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NinOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34474,7 +37354,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34485,7 +37365,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34495,7 +37375,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34505,8 +37385,8 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34518,7 +37398,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34546,7 +37426,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34563,7 +37443,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptNativeUnion{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34579,7 +37459,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34596,7 +37476,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field2 == nil { m.Field2 = &NinOptStructUnion{} } - if err := m.Field2.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34612,7 +37492,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34629,13 +37509,13 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NinEmbeddedStructUnion{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34645,7 +37525,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34655,8 +37535,8 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *Tree) Unmarshal(data []byte) error { - l := len(data) +func (m *Tree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34668,7 +37548,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34696,7 +37576,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34713,7 +37593,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Or == nil { m.Or = &OrBranch{} } - if err := m.Or.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34729,7 +37609,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34746,7 +37626,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34762,7 +37642,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34779,13 +37659,13 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &Leaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34795,7 +37675,7 @@ func (m *Tree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34805,8 +37685,8 @@ func (m *Tree) Unmarshal(data []byte) error { } return nil } -func (m *OrBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *OrBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34818,7 +37698,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34846,7 +37726,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34860,7 +37740,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34876,7 +37756,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34890,13 +37770,13 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34906,7 +37786,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34916,8 +37796,8 @@ func (m *OrBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34929,7 +37809,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34957,7 +37837,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34971,7 +37851,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34987,7 +37867,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35001,13 +37881,13 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35017,7 +37897,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35027,8 +37907,8 @@ func (m *AndBranch) Unmarshal(data []byte) error { } return nil } -func (m *Leaf) Unmarshal(data []byte) error { - l := len(data) +func (m *Leaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35040,7 +37920,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35068,7 +37948,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Value |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -35087,7 +37967,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35102,11 +37982,11 @@ func (m *Leaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.StrValue = string(data[iNdEx:postIndex]) + m.StrValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35116,7 +37996,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35126,8 +38006,8 @@ func (m *Leaf) Unmarshal(data []byte) error { } return nil } -func (m *DeepTree) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepTree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35139,7 +38019,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35167,7 +38047,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35184,7 +38064,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Down == nil { m.Down = &ADeepBranch{} } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35200,7 +38080,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35217,7 +38097,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndDeepBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35233,7 +38113,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35250,13 +38130,13 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &DeepLeaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35266,7 +38146,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35276,8 +38156,8 @@ func (m *DeepTree) Unmarshal(data []byte) error { } return nil } -func (m *ADeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *ADeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35289,7 +38169,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35317,7 +38197,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35331,13 +38211,13 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35347,7 +38227,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35357,8 +38237,8 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndDeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndDeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35370,7 +38250,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35398,7 +38278,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35412,7 +38292,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35428,7 +38308,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35442,13 +38322,13 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35458,7 +38338,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35468,8 +38348,8 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *DeepLeaf) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepLeaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35481,7 +38361,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35509,7 +38389,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35523,13 +38403,13 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Tree.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35539,7 +38419,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35549,8 +38429,8 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { } return nil } -func (m *Nil) Unmarshal(data []byte) error { - l := len(data) +func (m *Nil) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35562,7 +38442,7 @@ func (m *Nil) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35580,7 +38460,7 @@ func (m *Nil) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35590,7 +38470,7 @@ func (m *Nil) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35600,8 +38480,8 @@ func (m *Nil) Unmarshal(data []byte) error { } return nil } -func (m *NidOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35613,7 +38493,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35641,7 +38521,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field1 |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35650,7 +38530,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35660,7 +38540,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35670,8 +38550,8 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35683,7 +38563,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35711,7 +38591,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35731,7 +38611,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35751,7 +38631,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35761,7 +38641,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35771,7 +38651,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35781,8 +38661,8 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NidRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35794,7 +38674,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35811,68 +38691,194 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35882,7 +38888,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35892,8 +38898,8 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35905,7 +38911,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35922,68 +38928,194 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35993,7 +39125,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36003,8 +39135,8 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36016,7 +39148,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36044,7 +39176,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36064,7 +39196,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36084,7 +39216,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36094,7 +39226,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36104,7 +39236,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36114,8 +39246,8 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36127,7 +39259,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36155,7 +39287,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36175,7 +39307,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36195,7 +39327,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36205,7 +39337,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36215,7 +39347,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36225,8 +39357,8 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36238,7 +39370,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36266,7 +39398,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36286,7 +39418,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36306,7 +39438,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36316,7 +39448,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36326,7 +39458,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36336,8 +39468,8 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *Timer) Unmarshal(data []byte) error { - l := len(data) +func (m *Timer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36349,7 +39481,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36374,14 +39506,14 @@ func (m *Timer) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Time1 = int64(data[iNdEx-8]) - m.Time1 |= int64(data[iNdEx-7]) << 8 - m.Time1 |= int64(data[iNdEx-6]) << 16 - m.Time1 |= int64(data[iNdEx-5]) << 24 - m.Time1 |= int64(data[iNdEx-4]) << 32 - m.Time1 |= int64(data[iNdEx-3]) << 40 - m.Time1 |= int64(data[iNdEx-2]) << 48 - m.Time1 |= int64(data[iNdEx-1]) << 56 + m.Time1 = int64(dAtA[iNdEx-8]) + m.Time1 |= int64(dAtA[iNdEx-7]) << 8 + m.Time1 |= int64(dAtA[iNdEx-6]) << 16 + m.Time1 |= int64(dAtA[iNdEx-5]) << 24 + m.Time1 |= int64(dAtA[iNdEx-4]) << 32 + m.Time1 |= int64(dAtA[iNdEx-3]) << 40 + m.Time1 |= int64(dAtA[iNdEx-2]) << 48 + m.Time1 |= int64(dAtA[iNdEx-1]) << 56 case 2: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) @@ -36391,14 +39523,14 @@ func (m *Timer) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Time2 = int64(data[iNdEx-8]) - m.Time2 |= int64(data[iNdEx-7]) << 8 - m.Time2 |= int64(data[iNdEx-6]) << 16 - m.Time2 |= int64(data[iNdEx-5]) << 24 - m.Time2 |= int64(data[iNdEx-4]) << 32 - m.Time2 |= int64(data[iNdEx-3]) << 40 - m.Time2 |= int64(data[iNdEx-2]) << 48 - m.Time2 |= int64(data[iNdEx-1]) << 56 + m.Time2 = int64(dAtA[iNdEx-8]) + m.Time2 |= int64(dAtA[iNdEx-7]) << 8 + m.Time2 |= int64(dAtA[iNdEx-6]) << 16 + m.Time2 |= int64(dAtA[iNdEx-5]) << 24 + m.Time2 |= int64(dAtA[iNdEx-4]) << 32 + m.Time2 |= int64(dAtA[iNdEx-3]) << 40 + m.Time2 |= int64(dAtA[iNdEx-2]) << 48 + m.Time2 |= int64(dAtA[iNdEx-1]) << 56 case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) @@ -36411,7 +39543,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36425,14 +39557,14 @@ func (m *Timer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36442,7 +39574,7 @@ func (m *Timer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36452,8 +39584,8 @@ func (m *Timer) Unmarshal(data []byte) error { } return nil } -func (m *MyExtendable) Unmarshal(data []byte) error { - l := len(data) +func (m *MyExtendable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36465,7 +39597,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36493,7 +39625,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36512,7 +39644,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36522,11 +39654,11 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36536,7 +39668,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36547,8 +39679,8 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } return nil } -func (m *OtherExtenable) Unmarshal(data []byte) error { - l := len(data) +func (m *OtherExtenable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36560,7 +39692,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36588,7 +39720,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36605,7 +39737,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if m.M == nil { m.M = &MyExtendable{} } - if err := m.M.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -36621,7 +39753,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36641,7 +39773,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36660,7 +39792,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36670,11 +39802,11 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36684,7 +39816,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36695,8 +39827,8 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36708,7 +39840,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36736,7 +39868,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36756,7 +39888,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36776,7 +39908,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36793,7 +39925,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -36809,7 +39941,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36826,13 +39958,13 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NM == nil { m.NM = &NestedDefinition_NestedMessage{} } - if err := m.NM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36842,7 +39974,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36852,8 +39984,8 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36865,7 +39997,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36890,14 +40022,14 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.NestedField1 = &v case 2: if wireType != 2 { @@ -36911,7 +40043,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36928,13 +40060,13 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -36944,7 +40076,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36954,8 +40086,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36967,7 +40099,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36995,7 +40127,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37010,12 +40142,12 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.NestedNestedField1 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -37025,7 +40157,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37035,8 +40167,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) } return nil } -func (m *NestedScope) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37048,7 +40180,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37076,7 +40208,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37093,7 +40225,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.A == nil { m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -37109,7 +40241,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -37129,7 +40261,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37146,13 +40278,13 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.C == nil { m.C = &NestedDefinition_NestedMessage{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -37162,7 +40294,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37172,8 +40304,8 @@ func (m *NestedScope) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37185,7 +40317,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37210,14 +40342,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -37229,10 +40361,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -37247,7 +40379,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37267,7 +40399,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -37287,7 +40419,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -37307,7 +40439,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37327,7 +40459,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37348,7 +40480,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37367,10 +40499,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -37381,10 +40513,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -37395,14 +40527,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -37413,14 +40545,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -37434,7 +40566,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37455,7 +40587,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37470,7 +40602,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -37485,7 +40617,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37499,14 +40631,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -37516,7 +40648,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37526,8 +40658,8 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { } return nil } -func (m *CustomContainer) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomContainer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37539,7 +40671,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37567,7 +40699,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37581,13 +40713,13 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CustomStruct.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -37597,7 +40729,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37607,8 +40739,8 @@ func (m *CustomContainer) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37620,7 +40752,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37645,14 +40777,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldA = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -37663,10 +40795,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldB = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -37680,7 +40812,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldC |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37699,7 +40831,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldD |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -37718,7 +40850,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldE |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -37737,7 +40869,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldF |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37756,7 +40888,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37777,7 +40909,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37795,10 +40927,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.FieldI = uint32(data[iNdEx-4]) - m.FieldI |= uint32(data[iNdEx-3]) << 8 - m.FieldI |= uint32(data[iNdEx-2]) << 16 - m.FieldI |= uint32(data[iNdEx-1]) << 24 + m.FieldI = uint32(dAtA[iNdEx-4]) + m.FieldI |= uint32(dAtA[iNdEx-3]) << 8 + m.FieldI |= uint32(dAtA[iNdEx-2]) << 16 + m.FieldI |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) @@ -37808,10 +40940,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.FieldJ = int32(data[iNdEx-4]) - m.FieldJ |= int32(data[iNdEx-3]) << 8 - m.FieldJ |= int32(data[iNdEx-2]) << 16 - m.FieldJ |= int32(data[iNdEx-1]) << 24 + m.FieldJ = int32(dAtA[iNdEx-4]) + m.FieldJ |= int32(dAtA[iNdEx-3]) << 8 + m.FieldJ |= int32(dAtA[iNdEx-2]) << 16 + m.FieldJ |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) @@ -37821,14 +40953,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.FieldK = uint64(data[iNdEx-8]) - m.FieldK |= uint64(data[iNdEx-7]) << 8 - m.FieldK |= uint64(data[iNdEx-6]) << 16 - m.FieldK |= uint64(data[iNdEx-5]) << 24 - m.FieldK |= uint64(data[iNdEx-4]) << 32 - m.FieldK |= uint64(data[iNdEx-3]) << 40 - m.FieldK |= uint64(data[iNdEx-2]) << 48 - m.FieldK |= uint64(data[iNdEx-1]) << 56 + m.FieldK = uint64(dAtA[iNdEx-8]) + m.FieldK |= uint64(dAtA[iNdEx-7]) << 8 + m.FieldK |= uint64(dAtA[iNdEx-6]) << 16 + m.FieldK |= uint64(dAtA[iNdEx-5]) << 24 + m.FieldK |= uint64(dAtA[iNdEx-4]) << 32 + m.FieldK |= uint64(dAtA[iNdEx-3]) << 40 + m.FieldK |= uint64(dAtA[iNdEx-2]) << 48 + m.FieldK |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) @@ -37838,14 +40970,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.FieldL = int64(data[iNdEx-8]) - m.FieldL |= int64(data[iNdEx-7]) << 8 - m.FieldL |= int64(data[iNdEx-6]) << 16 - m.FieldL |= int64(data[iNdEx-5]) << 24 - m.FieldL |= int64(data[iNdEx-4]) << 32 - m.FieldL |= int64(data[iNdEx-3]) << 40 - m.FieldL |= int64(data[iNdEx-2]) << 48 - m.FieldL |= int64(data[iNdEx-1]) << 56 + m.FieldL = int64(dAtA[iNdEx-8]) + m.FieldL |= int64(dAtA[iNdEx-7]) << 8 + m.FieldL |= int64(dAtA[iNdEx-6]) << 16 + m.FieldL |= int64(dAtA[iNdEx-5]) << 24 + m.FieldL |= int64(dAtA[iNdEx-4]) << 32 + m.FieldL |= int64(dAtA[iNdEx-3]) << 40 + m.FieldL |= int64(dAtA[iNdEx-2]) << 48 + m.FieldL |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) @@ -37858,7 +40990,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37878,7 +41010,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37893,7 +41025,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = string(data[iNdEx:postIndex]) + m.FieldN = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -37907,7 +41039,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37921,14 +41053,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -37938,7 +41070,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37948,8 +41080,8 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37961,7 +41093,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37986,14 +41118,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -38005,10 +41137,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -38023,7 +41155,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -38043,7 +41175,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -38063,7 +41195,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -38083,7 +41215,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38103,7 +41235,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -38124,7 +41256,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38143,10 +41275,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = &v case 10: if wireType != 5 { @@ -38157,10 +41289,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = &v case 11: if wireType != 1 { @@ -38171,14 +41303,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = &v case 12: if wireType != 1 { @@ -38189,14 +41321,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.FielL = &v case 13: if wireType != 0 { @@ -38210,7 +41342,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38231,7 +41363,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38246,7 +41378,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldN = &s iNdEx = postIndex case 15: @@ -38261,7 +41393,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38275,14 +41407,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -38292,7 +41424,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38302,8 +41434,8 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38315,7 +41447,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38332,245 +41464,771 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.FieldA = append(m.FieldA, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.FieldA = append(m.FieldA, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.FieldA = append(m.FieldA, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.FieldB = append(m.FieldB, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.FieldB = append(m.FieldB, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.FieldB = append(m.FieldB, v2) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldC = append(m.FieldC, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) } - m.FieldC = append(m.FieldC, v) case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldD = append(m.FieldD, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldD = append(m.FieldD, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) } - m.FieldD = append(m.FieldD, v) case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldE = append(m.FieldE, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldE = append(m.FieldE, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) } - m.FieldE = append(m.FieldE, v) case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldF = append(m.FieldF, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldF = append(m.FieldF, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) } - m.FieldF = append(m.FieldF, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) case 9: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.FieldI = append(m.FieldI, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.FieldI = append(m.FieldI, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.FieldI = append(m.FieldI, v) case 10: - if wireType != 5 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.FieldJ = append(m.FieldJ, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.FieldJ = append(m.FieldJ, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.FieldJ = append(m.FieldJ, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.FieldK = append(m.FieldK, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.FieldK = append(m.FieldK, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.FieldK = append(m.FieldK, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.FieldL = append(m.FieldL, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.FieldL = append(m.FieldL, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.FieldL = append(m.FieldL, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldM = append(m.FieldM, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldM = append(m.FieldM, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) } - m.FieldM = append(m.FieldM, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) @@ -38583,7 +42241,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38598,7 +42256,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = append(m.FieldN, string(data[iNdEx:postIndex])) + m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -38612,7 +42270,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38627,11 +42285,11 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], data[iNdEx:postIndex]) + copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -38641,7 +42299,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38651,8 +42309,8 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38664,7 +42322,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38689,14 +42347,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -38708,10 +42366,10 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -38726,7 +42384,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38743,7 +42401,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldC == nil { m.FieldC = &NidOptNative{} } - if err := m.FieldC.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38759,7 +42417,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38774,7 +42432,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38790,7 +42448,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38810,7 +42468,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -38831,7 +42489,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38848,7 +42506,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldG == nil { m.FieldG = &NidOptNative{} } - if err := m.FieldG.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38864,7 +42522,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38885,7 +42543,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38900,7 +42558,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldI = &s iNdEx = postIndex case 15: @@ -38915,7 +42573,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38929,14 +42587,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldJ = append(m.FieldJ[:0], data[iNdEx:postIndex]...) + m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) if m.FieldJ == nil { m.FieldJ = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -38946,7 +42604,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38956,8 +42614,8 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameCustomType) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38969,7 +42627,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38997,7 +42655,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39013,7 +42671,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldA = &v - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -39029,7 +42687,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39045,7 +42703,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldB = &v - if err := m.FieldB.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -39061,7 +42719,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39077,7 +42735,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -39093,7 +42751,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39109,13 +42767,13 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39125,7 +42783,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39135,8 +42793,8 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39148,7 +42806,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39176,7 +42834,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39193,7 +42851,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -39209,7 +42867,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39226,7 +42884,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.FieldA == nil { m.FieldA = &NinOptNative{} } - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -39242,7 +42900,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39253,7 +42911,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { m.FieldB = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39263,7 +42921,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39273,8 +42931,8 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39286,7 +42944,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39314,7 +42972,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -39323,10 +42981,123 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } m.FieldA = &v case 2: - if wireType != 0 { + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v TheTestEnum + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -39334,17 +43105,414 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + if (fieldNum >= 100) && (fieldNum < 200) { + var sizeOfWire int + for { + sizeOfWire++ + wire >>= 7 + if wire == 0 { + break + } + } + iNdEx -= sizeOfWire + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + iNdEx += skippy + } else { + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Unrecognized) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field1 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) + if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Inner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.FieldB = append(m.FieldB, v) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39354,7 +43522,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39364,8 +43532,8 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } return nil } -func (m *NoExtensionsMap) Unmarshal(data []byte) error { - l := len(data) +func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39377,7 +43545,7 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39387,17 +43555,17 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + return fmt.Errorf("proto: Embedded: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v int64 + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -39405,52 +43573,27 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } m.Field1 = &v default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -39459,8 +43602,8 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { } return nil } -func (m *Unrecognized) Unmarshal(data []byte) error { - l := len(data) +func (m *Node) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39472,7 +43615,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39482,15 +43625,15 @@ func (m *Unrecognized) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + return fmt.Errorf("proto: Node: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -39500,7 +43643,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39515,12 +43658,43 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field1 = &s + s := string(dAtA[iNdEx:postIndex]) + m.Label = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Children = append(m.Children, &Node{}) + if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39530,6 +43704,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39539,8 +43714,8 @@ func (m *Unrecognized) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { - l := len(data) +func (m *NonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39552,7 +43727,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39562,15 +43737,15 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + return fmt.Errorf("proto: NonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -39580,7 +43755,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39594,44 +43769,16 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetest + if m.Field1 == nil { + m.Field1 = &T{} } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39641,7 +43788,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39651,8 +43798,8 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39664,7 +43811,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39674,17 +43821,17 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Inner: wiretype end group for non-group") + return fmt.Errorf("proto: NidOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -39692,17 +43839,27 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39712,6 +43869,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39721,8 +43879,8 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39734,7 +43892,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39744,15 +43902,15 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + return fmt.Errorf("proto: NinOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -39762,7 +43920,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39776,15 +43934,69 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field1 == nil { + m.Field1 = &T{} + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidRepNonByteCustomType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -39792,27 +44004,28 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthThetest } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39822,7 +44035,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39832,8 +44045,8 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39845,7 +44058,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39855,17 +44068,17 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Embedded: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -39873,17 +44086,28 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -39893,6 +44117,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39902,8 +44127,8 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { } return nil } -func (m *Node) Unmarshal(data []byte) error { - l := len(data) +func (m *ProtoType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39915,7 +44140,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39925,15 +44150,15 @@ func (m *Node) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Node: wiretype end group for non-group") + return fmt.Errorf("proto: ProtoType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -39943,7 +44168,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39958,43 +44183,12 @@ func (m *Node) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -40004,7 +44198,7 @@ func (m *Node) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -40014,8 +44208,8 @@ func (m *Node) Unmarshal(data []byte) error { } return nil } -func skipThetest(data []byte) (n int, err error) { - l := len(data) +func skipThetest(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -40026,7 +44220,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -40044,7 +44238,7 @@ func skipThetest(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -40061,7 +44255,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -40084,7 +44278,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -40095,7 +44289,7 @@ func skipThetest(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipThetest(data[start:]) + next, err := skipThetest(dAtA[start:]) if err != nil { return 0, err } @@ -40119,194 +44313,201 @@ var ( ErrIntOverflowThetest = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3006 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, - 0x15, 0xd6, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x5b, 0x46, 0x95, 0xe4, 0x2d, - 0xa3, 0x2a, 0x44, 0x2c, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0x71, 0x6d, 0xd7, 0xa2, - 0x0c, 0x46, 0x6e, 0x6b, 0xa0, 0x40, 0x41, 0x89, 0x2b, 0x89, 0xa8, 0xb4, 0x14, 0xc8, 0x95, 0x6b, - 0xf7, 0x50, 0x04, 0x39, 0x14, 0x46, 0xaf, 0x45, 0x8f, 0x6d, 0x5c, 0x14, 0x05, 0xdc, 0x5b, 0x0e, - 0x45, 0x51, 0x14, 0x45, 0xe3, 0x4b, 0x01, 0xf5, 0x66, 0xf4, 0x54, 0x14, 0x85, 0x91, 0x38, 0x97, - 0x1c, 0xd3, 0x53, 0x73, 0xc8, 0xa1, 0xb3, 0xbb, 0x33, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, 0x25, - 0xb7, 0x39, 0x2c, 0x7f, 0xe6, 0xbd, 0x37, 0xf3, 0xf6, 0x7d, 0xdf, 0x9b, 0x79, 0xbb, 0x33, 0xf0, - 0x2b, 0x3b, 0xdd, 0xc3, 0xed, 0x6e, 0x7f, 0x69, 0xbb, 0x6b, 0xee, 0x2f, 0x99, 0xfb, 0xba, 0xa9, - 0xf7, 0xcd, 0xc5, 0xa3, 0x5e, 0xd7, 0xec, 0x2a, 0x31, 0xeb, 0x77, 0xe6, 0xd2, 0x5e, 0xc7, 0xdc, - 0x3f, 0xde, 0x5e, 0x44, 0x7a, 0x4b, 0x7b, 0xdd, 0xbd, 0xee, 0x92, 0x2d, 0xdc, 0x3e, 0xde, 0xb5, - 0xff, 0xd9, 0x7f, 0xec, 0x5f, 0x8e, 0x91, 0xf6, 0x2f, 0x00, 0x93, 0x8d, 0x4e, 0x7b, 0xf3, 0xc8, - 0x6c, 0xb4, 0xcc, 0xce, 0x5d, 0x5d, 0x99, 0x86, 0xa3, 0x57, 0x3b, 0xfa, 0x41, 0xbb, 0xa0, 0x4a, - 0x73, 0xd2, 0x82, 0x54, 0x89, 0x9d, 0x3c, 0x9d, 0x1d, 0x69, 0x8e, 0xee, 0xda, 0x6d, 0x54, 0x5a, - 0x54, 0x65, 0x24, 0x95, 0x39, 0x69, 0x91, 0x4a, 0x97, 0x55, 0x80, 0xa4, 0x71, 0x4e, 0xba, 0x4c, - 0xa5, 0x25, 0x35, 0x86, 0xa4, 0x80, 0x93, 0x96, 0xa8, 0x74, 0x45, 0x8d, 0x23, 0xe9, 0x04, 0x27, - 0x5d, 0xa1, 0xd2, 0x55, 0x75, 0x14, 0x49, 0x63, 0x9c, 0x74, 0x95, 0x4a, 0x2f, 0xab, 0xe7, 0x90, - 0xf4, 0x3c, 0x27, 0xbd, 0x4c, 0xa5, 0x6b, 0x6a, 0x02, 0x49, 0x15, 0x4e, 0xba, 0x46, 0xa5, 0x57, - 0xd4, 0x31, 0x24, 0x3d, 0xc7, 0x49, 0xaf, 0x28, 0x33, 0xf0, 0x9c, 0x13, 0x8d, 0xbc, 0x0a, 0x91, - 0x78, 0x0a, 0x8b, 0xcf, 0x39, 0xe1, 0xc8, 0xbb, 0xf2, 0x82, 0x3a, 0x8e, 0xe4, 0xa3, 0xbc, 0xbc, - 0xe0, 0xca, 0x8b, 0x6a, 0x12, 0xc9, 0x53, 0xbc, 0xbc, 0xe8, 0xca, 0x97, 0xd5, 0x09, 0x24, 0x4f, - 0xf0, 0xf2, 0x65, 0x57, 0x5e, 0x52, 0x27, 0x91, 0x7c, 0x8c, 0x97, 0x97, 0x5c, 0xf9, 0x8a, 0x3a, - 0x85, 0xe4, 0x49, 0x5e, 0xbe, 0xa2, 0xbd, 0x67, 0xc3, 0x6b, 0xb8, 0xf0, 0xa6, 0x79, 0x78, 0x29, - 0xb0, 0x69, 0x1e, 0x58, 0x0a, 0x69, 0x9a, 0x87, 0x94, 0x82, 0x99, 0xe6, 0xc1, 0xa4, 0x30, 0xa6, - 0x79, 0x18, 0x29, 0x80, 0x69, 0x1e, 0x40, 0x0a, 0x5d, 0x9a, 0x87, 0x8e, 0x82, 0x96, 0xe6, 0x41, - 0xa3, 0x70, 0xa5, 0x79, 0xb8, 0x28, 0x50, 0xaa, 0x00, 0x94, 0x0b, 0x91, 0x2a, 0x40, 0xe4, 0x82, - 0xa3, 0x0a, 0xe0, 0xb8, 0xb0, 0xa8, 0x02, 0x2c, 0x2e, 0x20, 0xaa, 0x00, 0x88, 0x0b, 0x85, 0x2a, - 0x40, 0xe1, 0x82, 0x80, 0x73, 0xac, 0xa9, 0x1f, 0xf9, 0xe4, 0x18, 0x18, 0x98, 0x63, 0x60, 0x60, - 0x8e, 0x81, 0x81, 0x39, 0x06, 0x06, 0xe6, 0x18, 0x18, 0x98, 0x63, 0x60, 0x60, 0x8e, 0x81, 0x81, - 0x39, 0x06, 0x06, 0xe6, 0x18, 0x18, 0x9c, 0x63, 0x20, 0x24, 0xc7, 0x40, 0x48, 0x8e, 0x81, 0x90, - 0x1c, 0x03, 0x21, 0x39, 0x06, 0x42, 0x72, 0x0c, 0x04, 0xe6, 0x98, 0x0b, 0x6f, 0x9a, 0x87, 0xd7, - 0x37, 0xc7, 0x40, 0x40, 0x8e, 0x81, 0x80, 0x1c, 0x03, 0x01, 0x39, 0x06, 0x02, 0x72, 0x0c, 0x04, - 0xe4, 0x18, 0x08, 0xc8, 0x31, 0x10, 0x90, 0x63, 0x20, 0x28, 0xc7, 0x40, 0x60, 0x8e, 0x81, 0xc0, - 0x1c, 0x03, 0x81, 0x39, 0x06, 0x02, 0x73, 0x0c, 0x04, 0xe6, 0x18, 0x60, 0x73, 0xec, 0xcf, 0x00, - 0x2a, 0x4e, 0x8e, 0xdd, 0x6a, 0xed, 0xfc, 0x50, 0x6f, 0x63, 0x28, 0x66, 0x84, 0x4c, 0x1b, 0xb5, - 0xa0, 0x4b, 0xb9, 0x90, 0xcc, 0x08, 0xb9, 0xc6, 0xcb, 0x8b, 0x54, 0x4e, 0xb2, 0x8d, 0x97, 0x2f, - 0x53, 0x39, 0xc9, 0x37, 0x5e, 0x5e, 0xa2, 0x72, 0x92, 0x71, 0xbc, 0x7c, 0x85, 0xca, 0x49, 0xce, - 0xf1, 0xf2, 0x55, 0x2a, 0x27, 0x59, 0xc7, 0xcb, 0x2f, 0x53, 0x39, 0xc9, 0x3b, 0x5e, 0xbe, 0x46, - 0xe5, 0x24, 0xf3, 0x78, 0xf9, 0x15, 0x65, 0x4e, 0xcc, 0x3d, 0xa2, 0x40, 0xa1, 0x9d, 0x13, 0xb3, - 0x4f, 0xd0, 0x28, 0xb8, 0x1a, 0x24, 0xff, 0x04, 0x8d, 0xa2, 0xab, 0x41, 0x32, 0x50, 0xd0, 0x58, - 0xd6, 0x1e, 0xd8, 0xf0, 0x19, 0x22, 0x7c, 0x19, 0x01, 0x3e, 0x99, 0x81, 0x2e, 0x23, 0x40, 0x27, - 0x33, 0xb0, 0x65, 0x04, 0xd8, 0x64, 0x06, 0xb2, 0x8c, 0x00, 0x99, 0xcc, 0xc0, 0x95, 0x11, 0xe0, - 0x92, 0x19, 0xa8, 0x32, 0x02, 0x54, 0x32, 0x03, 0x53, 0x46, 0x80, 0x49, 0x66, 0x20, 0xca, 0x08, - 0x10, 0xc9, 0x0c, 0x3c, 0x19, 0x01, 0x1e, 0x99, 0x81, 0x66, 0x5a, 0x84, 0x46, 0x66, 0x61, 0x99, - 0x16, 0x61, 0x91, 0x59, 0x48, 0xa6, 0x45, 0x48, 0x64, 0x16, 0x8e, 0x69, 0x11, 0x0e, 0x99, 0x85, - 0xe2, 0x0b, 0x99, 0x54, 0x84, 0xef, 0x98, 0xbd, 0xe3, 0x1d, 0xf3, 0x54, 0x15, 0x61, 0x9e, 0x2b, - 0x1f, 0xc6, 0x8b, 0xca, 0xa2, 0x5d, 0xb0, 0xb2, 0x15, 0xa7, 0xb0, 0x82, 0xe5, 0xb9, 0xc2, 0x82, - 0xb1, 0x30, 0xfc, 0x2d, 0x4a, 0xa7, 0xaa, 0x0d, 0xf3, 0x5c, 0x99, 0x11, 0xee, 0xdf, 0xda, 0x0b, - 0xaf, 0xd8, 0x1e, 0xcb, 0xa4, 0x62, 0xc3, 0xe1, 0x1f, 0xb6, 0x62, 0xcb, 0x85, 0x87, 0x9c, 0x06, - 0x3b, 0x17, 0x1e, 0x6c, 0xcf, 0xaa, 0x13, 0xb5, 0x82, 0xcb, 0x85, 0x87, 0x96, 0x06, 0xf5, 0x6c, - 0xeb, 0x2d, 0xcc, 0x60, 0x34, 0x99, 0xf8, 0x30, 0x78, 0xd8, 0x7a, 0x2b, 0xcf, 0x4d, 0x25, 0xc3, - 0x32, 0x18, 0x0c, 0xcd, 0xe0, 0x61, 0x2b, 0xaf, 0x3c, 0x37, 0xbd, 0x0c, 0xcd, 0xe0, 0x17, 0x50, - 0x0f, 0x61, 0x06, 0xbb, 0xe1, 0x1f, 0xb6, 0x1e, 0xca, 0x85, 0x87, 0xdc, 0x97, 0xc1, 0x60, 0x08, - 0x06, 0x47, 0xa9, 0x8f, 0x72, 0xe1, 0xa1, 0xf5, 0x67, 0xf0, 0xa9, 0xab, 0x99, 0xf7, 0x25, 0x78, - 0x1e, 0x0d, 0x53, 0x3f, 0xdc, 0xd6, 0xdb, 0x6d, 0xbd, 0x8d, 0xe3, 0x98, 0xe7, 0x66, 0x82, 0x00, - 0xa8, 0x9f, 0x3c, 0x9d, 0x75, 0x23, 0xbc, 0x02, 0x13, 0x4e, 0x84, 0xf3, 0x79, 0xf5, 0x44, 0x0a, - 0x99, 0xe1, 0x12, 0xbb, 0x58, 0x55, 0xb9, 0x48, 0xcc, 0xd0, 0xda, 0xf3, 0x77, 0x89, 0x99, 0xe5, - 0xb0, 0x4a, 0x21, 0xaf, 0xfd, 0xdc, 0xf6, 0xd0, 0x38, 0xb5, 0x87, 0x4b, 0x91, 0x3c, 0x64, 0x7c, - 0x7b, 0xd5, 0xe3, 0x1b, 0xe3, 0xd5, 0x31, 0x9c, 0x42, 0x66, 0x0d, 0x64, 0x1e, 0xcd, 0x25, 0x47, - 0x47, 0x98, 0x0f, 0xf2, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0x7e, 0x8e, 0xd0, 0x3a, 0xd6, 0xb0, - 0x06, 0x37, 0x6c, 0x2e, 0x68, 0x58, 0x77, 0x66, 0xa7, 0x03, 0xe6, 0x82, 0x06, 0x74, 0x73, 0x88, - 0x0e, 0x75, 0x8f, 0x2c, 0xce, 0xd5, 0xe3, 0xbe, 0xd9, 0x3d, 0x44, 0x93, 0x83, 0x7c, 0xbd, 0x6d, - 0x8f, 0x91, 0xac, 0x24, 0x2d, 0xa7, 0xfe, 0xf9, 0x74, 0x36, 0x76, 0xfb, 0x18, 0xf9, 0x2a, 0x77, - 0xda, 0xca, 0x0d, 0x18, 0xff, 0x4e, 0xeb, 0xe0, 0x58, 0xb7, 0x97, 0x88, 0x64, 0xa5, 0x84, 0x15, - 0xde, 0x08, 0x7c, 0x47, 0x64, 0x0d, 0xbc, 0xb4, 0x63, 0x77, 0xbd, 0x78, 0xbb, 0x63, 0x98, 0x85, - 0xe2, 0x5a, 0x33, 0x7e, 0xd7, 0xea, 0x42, 0xfb, 0x3e, 0x84, 0xce, 0x98, 0xb5, 0x56, 0x7f, 0x5f, - 0x69, 0x90, 0x9e, 0x9d, 0xa1, 0xd7, 0x50, 0xaf, 0xa5, 0x28, 0xbd, 0x5e, 0x6a, 0x23, 0xeb, 0x4b, - 0xe6, 0xfd, 0x23, 0x7d, 0xb1, 0x72, 0x1f, 0xb5, 0x93, 0xde, 0x8f, 0xc8, 0xaa, 0x87, 0xef, 0x4b, - 0x65, 0xee, 0x2b, 0xc1, 0xdd, 0xd3, 0x55, 0xfe, 0x9e, 0xf2, 0xcf, 0x7b, 0x3f, 0xf7, 0xc8, 0x22, - 0x21, 0x44, 0x12, 0x84, 0x45, 0x12, 0x9c, 0x36, 0x92, 0x47, 0x64, 0x7e, 0x14, 0xee, 0x15, 0x0c, - 0xba, 0x57, 0x70, 0x9a, 0x7b, 0xfd, 0x8f, 0x93, 0xad, 0x34, 0x9f, 0x6e, 0x1b, 0x9d, 0xae, 0xf1, - 0xa5, 0x7b, 0x17, 0x74, 0xa6, 0x55, 0x40, 0x39, 0x76, 0xf2, 0x70, 0x56, 0xd2, 0xde, 0x97, 0xc9, - 0x9d, 0x3b, 0x89, 0xf4, 0x7c, 0x77, 0xfe, 0x65, 0xa9, 0xa9, 0x5e, 0x44, 0x84, 0x7e, 0x25, 0xc1, - 0xb4, 0x67, 0x26, 0x77, 0xc2, 0x74, 0xb6, 0xd3, 0xb9, 0x31, 0xec, 0x74, 0x8e, 0x1d, 0xfc, 0xbd, - 0x04, 0x5f, 0x16, 0xa6, 0x57, 0xc7, 0xbd, 0x25, 0xc1, 0xbd, 0x57, 0xbc, 0x23, 0xd9, 0x8a, 0x8c, - 0x77, 0x2c, 0xbc, 0x82, 0x01, 0xd3, 0x33, 0xc5, 0xbd, 0x24, 0xe0, 0x3e, 0x4d, 0x0d, 0x7c, 0xc2, - 0x45, 0x18, 0x80, 0xdd, 0xee, 0xc2, 0xd8, 0x56, 0x4f, 0xb7, 0x5e, 0x41, 0xc8, 0x9b, 0x3d, 0xec, - 0xe1, 0xa4, 0x63, 0xbf, 0xd9, 0xab, 0xf4, 0x5a, 0xc6, 0xce, 0x7e, 0x53, 0xee, 0xf6, 0xd0, 0x62, - 0x0b, 0xd6, 0x8d, 0x36, 0xf6, 0x68, 0xca, 0x51, 0x40, 0x0d, 0x58, 0x03, 0xb4, 0x8c, 0x36, 0xea, - 0x22, 0x76, 0x53, 0x6f, 0xed, 0x62, 0x27, 0xa0, 0xa3, 0x63, 0xb5, 0x34, 0x63, 0x07, 0xe8, 0x13, - 0x0f, 0xf8, 0x3d, 0x98, 0x20, 0x1d, 0x2b, 0x59, 0xcb, 0x62, 0xd7, 0xc4, 0xc3, 0x62, 0x0b, 0xcb, - 0x1d, 0xbc, 0x72, 0x21, 0xbb, 0x5d, 0x53, 0x99, 0x87, 0xf1, 0x66, 0x67, 0x6f, 0xdf, 0xc4, 0x83, - 0x7b, 0xd5, 0xe2, 0x3d, 0x4b, 0xac, 0xdd, 0x81, 0x63, 0xd4, 0xa3, 0x33, 0xee, 0xba, 0xe6, 0xdc, - 0x1a, 0x7a, 0x12, 0x66, 0xd6, 0x13, 0xf2, 0xde, 0xd2, 0x99, 0xbd, 0x94, 0x39, 0x98, 0x40, 0x61, - 0x76, 0x27, 0x7d, 0x52, 0x91, 0x26, 0xfa, 0xb8, 0x55, 0x7b, 0x4f, 0x82, 0x89, 0x9a, 0xae, 0x1f, - 0xd9, 0x01, 0x7f, 0x0d, 0xc6, 0x6a, 0xdd, 0x1f, 0x19, 0xd8, 0xc1, 0xf3, 0x38, 0xa2, 0x96, 0x18, - 0xc7, 0x34, 0xd6, 0x46, 0x62, 0xa4, 0xc6, 0xc4, 0xfd, 0x25, 0x1a, 0x77, 0x46, 0xcf, 0x8e, 0xbd, - 0xc6, 0xc5, 0x1e, 0x03, 0x68, 0x29, 0x79, 0xe2, 0x7f, 0x19, 0x8e, 0x33, 0xa3, 0x28, 0x0b, 0xd8, - 0x0d, 0x59, 0x34, 0x64, 0x63, 0x65, 0x79, 0xa2, 0xe9, 0x70, 0x82, 0x1b, 0xd8, 0x32, 0x65, 0x42, - 0x1c, 0x60, 0x6a, 0x87, 0x39, 0xc7, 0x87, 0xd9, 0x5f, 0x15, 0x87, 0x3a, 0xef, 0xc4, 0xc8, 0x0e, - 0x77, 0xd6, 0x21, 0x67, 0x30, 0x88, 0x26, 0xfa, 0xad, 0xc5, 0x21, 0x68, 0x74, 0x0e, 0xb4, 0xb7, - 0x20, 0x74, 0x52, 0xbe, 0x6e, 0x1c, 0x1f, 0x0a, 0x59, 0x37, 0x49, 0x02, 0xbc, 0xb5, 0xaf, 0x6f, - 0xa1, 0x6f, 0x4b, 0x85, 0xaf, 0xa7, 0xac, 0x09, 0x06, 0x3a, 0x29, 0x66, 0xdb, 0xbf, 0x1e, 0x6a, - 0xef, 0x5b, 0x89, 0x59, 0xaa, 0xaa, 0xa3, 0x7a, 0x47, 0x37, 0xd7, 0x8d, 0xae, 0xb9, 0xaf, 0xf7, - 0x04, 0x8b, 0xa2, 0xb2, 0xcc, 0x25, 0xec, 0x64, 0xf1, 0x55, 0x6a, 0x11, 0x68, 0xb4, 0xac, 0x7d, - 0x60, 0x3b, 0x68, 0x95, 0x02, 0x9e, 0x1b, 0x04, 0x11, 0x6e, 0x50, 0x59, 0xe5, 0xea, 0xb7, 0x01, - 0x6e, 0x0a, 0x8f, 0x96, 0x57, 0xb8, 0xe7, 0x9c, 0xc1, 0xce, 0xf2, 0xcf, 0x98, 0x24, 0xa6, 0xc4, - 0xe5, 0xd7, 0x43, 0x5d, 0x0e, 0xa8, 0x6e, 0x87, 0x8d, 0x29, 0x88, 0x1a, 0xd3, 0x3f, 0xd1, 0x8a, - 0xc3, 0x6a, 0xae, 0xe9, 0xbb, 0xad, 0xe3, 0x03, 0x53, 0x79, 0x23, 0x14, 0xfb, 0xb2, 0x54, 0xa5, - 0xae, 0x96, 0xa2, 0xc2, 0x5f, 0x96, 0x2b, 0x15, 0xea, 0xee, 0xe5, 0x21, 0x28, 0x50, 0x96, 0xab, - 0x55, 0x3a, 0x6d, 0x27, 0x1e, 0xa0, 0x2c, 0x7e, 0xf4, 0x70, 0x76, 0x44, 0xfb, 0x1d, 0x72, 0x1e, - 0x6b, 0x32, 0xc4, 0xbd, 0x24, 0x38, 0x7f, 0x81, 0xcc, 0x19, 0x7e, 0x11, 0xf8, 0x9f, 0x91, 0xf7, - 0xaf, 0x12, 0x54, 0x3d, 0xbe, 0x92, 0x78, 0xe7, 0x23, 0xb9, 0x5c, 0x96, 0xea, 0xff, 0xff, 0x98, - 0xdf, 0x81, 0xf1, 0xad, 0xce, 0xa1, 0xde, 0xb3, 0x56, 0x02, 0xeb, 0x87, 0xe3, 0x32, 0xd9, 0xcc, - 0x89, 0x9b, 0x56, 0x13, 0x91, 0x39, 0xce, 0x71, 0x32, 0x6b, 0x3f, 0x21, 0x56, 0x6b, 0x99, 0x2d, - 0xdb, 0x83, 0x24, 0x9d, 0x5f, 0x51, 0x8b, 0xb6, 0x0c, 0x93, 0x1b, 0xf7, 0xeb, 0xf7, 0x4c, 0xdd, - 0x68, 0xb7, 0xb6, 0x0f, 0xc4, 0x3d, 0x50, 0x52, 0xaf, 0x16, 0x72, 0xf1, 0x44, 0x3b, 0x75, 0x22, - 0x95, 0x63, 0xb6, 0x3f, 0x77, 0xe1, 0xe4, 0xa6, 0xe5, 0xb6, 0x6d, 0x67, 0x9b, 0xcd, 0x41, 0x69, - 0x83, 0x2f, 0x84, 0xd8, 0x5e, 0x9b, 0xd2, 0xa1, 0x50, 0x3e, 0x02, 0x1a, 0x1e, 0xa1, 0x6c, 0x03, - 0xb4, 0x6c, 0xcb, 0xc5, 0x12, 0x93, 0xa9, 0xf3, 0xe8, 0x13, 0xa6, 0x26, 0xf0, 0xb8, 0x7f, 0x03, - 0x30, 0xe5, 0x94, 0x3a, 0x08, 0xc4, 0x8e, 0xd1, 0x31, 0xbd, 0xf5, 0x2a, 0xf5, 0x58, 0xf9, 0x26, - 0x1c, 0xb3, 0x42, 0x6a, 0xcb, 0x30, 0x60, 0x17, 0x71, 0x89, 0x22, 0x74, 0x81, 0x1b, 0x6c, 0xea, - 0x8c, 0xe9, 0xc4, 0x06, 0x3d, 0x60, 0x80, 0x46, 0x63, 0x03, 0x2f, 0x6e, 0xa5, 0x81, 0xa6, 0x1b, - 0x7a, 0xbf, 0xdf, 0xda, 0xd3, 0xf1, 0x3f, 0xdc, 0xd6, 0xdf, 0x6b, 0x02, 0xa3, 0xb1, 0x81, 0x68, - 0x23, 0xa3, 0x6e, 0x9c, 0x82, 0x37, 0x1b, 0xa5, 0x9b, 0xa6, 0x6c, 0x6c, 0x64, 0xfe, 0x22, 0xc1, - 0x09, 0xae, 0x15, 0xad, 0xb6, 0x49, 0xa7, 0x81, 0xb9, 0xdd, 0xd1, 0x66, 0xd2, 0x60, 0xda, 0x88, - 0xcf, 0xf2, 0x29, 0x7d, 0xce, 0xac, 0xa3, 0xa7, 0x76, 0xbe, 0x5d, 0x59, 0x84, 0x0a, 0xdb, 0x84, - 0x9d, 0x80, 0x76, 0x41, 0xad, 0x18, 0x1e, 0x89, 0xf6, 0x55, 0x34, 0x0b, 0xd3, 0xb8, 0x2a, 0x53, - 0x70, 0x7c, 0xeb, 0xce, 0xad, 0xfa, 0x0f, 0x1a, 0xf5, 0x77, 0xb6, 0xea, 0xb5, 0x94, 0xa4, 0xfd, - 0x41, 0x82, 0xe3, 0xb8, 0x6c, 0xdd, 0xe9, 0x1e, 0xe9, 0x4a, 0x05, 0x4a, 0xeb, 0x98, 0x41, 0xcf, - 0xe7, 0xb7, 0xd4, 0x42, 0xab, 0x93, 0x54, 0x89, 0x0e, 0xb5, 0xb4, 0xad, 0x14, 0xa1, 0x54, 0xc5, - 0x00, 0x47, 0x43, 0x46, 0xda, 0xd1, 0xfe, 0x0d, 0xe0, 0x4b, 0x6c, 0x19, 0x4d, 0xe6, 0x93, 0x8b, - 0xfc, 0x73, 0x53, 0x79, 0xac, 0x50, 0x5c, 0x2e, 0x2d, 0x5a, 0x1f, 0x94, 0x92, 0x17, 0xf9, 0x47, - 0x28, 0xaf, 0x8a, 0xe7, 0x98, 0x48, 0x39, 0xc6, 0x48, 0x3d, 0xc7, 0x44, 0x38, 0xa9, 0xe7, 0x98, - 0x08, 0x27, 0xf5, 0x1c, 0x13, 0xe1, 0xa4, 0x9e, 0xad, 0x00, 0x4e, 0xea, 0x39, 0x26, 0xc2, 0x49, - 0x3d, 0xc7, 0x44, 0x38, 0xa9, 0xf7, 0x98, 0x08, 0x16, 0x07, 0x1e, 0x13, 0xe1, 0xe5, 0xde, 0x63, - 0x22, 0xbc, 0xdc, 0x7b, 0x4c, 0xa4, 0x8c, 0xea, 0xb3, 0x63, 0x3d, 0x78, 0xd3, 0x81, 0xb7, 0x1f, - 0xf4, 0x0c, 0xe8, 0x4e, 0xc0, 0x9b, 0x70, 0xca, 0x79, 0x1f, 0x51, 0xed, 0x1a, 0x66, 0xab, 0x63, - 0xa0, 0xa9, 0xf8, 0x1b, 0x30, 0xe9, 0x34, 0x39, 0x4f, 0x39, 0x7e, 0x4f, 0x81, 0x8e, 0x1c, 0x4f, - 0xb7, 0xc9, 0x1d, 0x46, 0x5b, 0xfb, 0x22, 0x06, 0xd3, 0x8e, 0xb8, 0xd1, 0x3a, 0xd4, 0xb9, 0x43, - 0x46, 0xf3, 0xc2, 0x96, 0xd2, 0xa4, 0x65, 0xfe, 0xec, 0xe9, 0xac, 0xd3, 0xba, 0x4e, 0xc9, 0x34, - 0x2f, 0x6c, 0x2e, 0xf1, 0x7a, 0xee, 0xfa, 0x33, 0x2f, 0x1c, 0x3c, 0xe2, 0xf5, 0xe8, 0x72, 0x43, - 0xf5, 0xc8, 0x11, 0x24, 0x5e, 0xaf, 0x46, 0x59, 0x36, 0x2f, 0x1c, 0x46, 0xe2, 0xf5, 0xea, 0x94, - 0x6f, 0xf3, 0xc2, 0xd6, 0x13, 0xaf, 0x77, 0x95, 0x32, 0x6f, 0x5e, 0xd8, 0x84, 0xe2, 0xf5, 0xbe, - 0x45, 0x39, 0x38, 0x2f, 0x1c, 0x55, 0xe2, 0xf5, 0xae, 0x51, 0x36, 0xce, 0x0b, 0x87, 0x96, 0x78, - 0xbd, 0xeb, 0x94, 0x97, 0x0b, 0xe2, 0xf1, 0x25, 0x5e, 0xf1, 0x86, 0xcb, 0xd0, 0x05, 0xf1, 0x20, - 0x13, 0xaf, 0xf9, 0x6d, 0x97, 0xab, 0x0b, 0xe2, 0x91, 0x26, 0x5e, 0xf3, 0xa6, 0xcb, 0xda, 0x05, - 0x71, 0xab, 0x8c, 0xd7, 0xdc, 0x70, 0xf9, 0xbb, 0x20, 0x6e, 0x9a, 0xf1, 0x9a, 0x0d, 0x97, 0xc9, - 0x0b, 0xe2, 0xf6, 0x19, 0xaf, 0xb9, 0xe9, 0xbe, 0x43, 0xff, 0x50, 0xa0, 0x1f, 0x73, 0x08, 0x4a, - 0x13, 0xe8, 0x07, 0x7d, 0xa8, 0xa7, 0x09, 0xd4, 0x83, 0x3e, 0xb4, 0xd3, 0x04, 0xda, 0x41, 0x1f, - 0xca, 0x69, 0x02, 0xe5, 0xa0, 0x0f, 0xdd, 0x34, 0x81, 0x6e, 0xd0, 0x87, 0x6a, 0x9a, 0x40, 0x35, - 0xe8, 0x43, 0x33, 0x4d, 0xa0, 0x19, 0xf4, 0xa1, 0x98, 0x26, 0x50, 0x0c, 0xfa, 0xd0, 0x4b, 0x13, - 0xe8, 0x05, 0x7d, 0xa8, 0x95, 0x15, 0xa9, 0x05, 0xfd, 0x68, 0x95, 0x15, 0x69, 0x05, 0xfd, 0x28, - 0xf5, 0x35, 0x91, 0x52, 0x63, 0x48, 0x2b, 0x6e, 0x35, 0x31, 0x6c, 0xca, 0x8a, 0x6c, 0x82, 0x7e, - 0x4c, 0xca, 0x8a, 0x4c, 0x82, 0x7e, 0x2c, 0xca, 0x8a, 0x2c, 0x82, 0x7e, 0x0c, 0x7a, 0x2c, 0x32, - 0xc8, 0x3d, 0xe2, 0xa3, 0x09, 0x3b, 0x8a, 0x61, 0x0c, 0x02, 0x11, 0x18, 0x04, 0x22, 0x30, 0x08, - 0x44, 0x60, 0x10, 0x88, 0xc0, 0x20, 0x10, 0x81, 0x41, 0x20, 0x02, 0x83, 0x40, 0x04, 0x06, 0x81, - 0x28, 0x0c, 0x02, 0x91, 0x18, 0x04, 0x82, 0x18, 0x94, 0x15, 0x0f, 0x3c, 0x40, 0xbf, 0x09, 0x29, - 0x2b, 0xee, 0x7c, 0x86, 0x53, 0x08, 0x44, 0xa2, 0x10, 0x08, 0xa2, 0xd0, 0x87, 0xa8, 0x90, 0xe2, - 0x28, 0x84, 0xb7, 0x87, 0xce, 0x6a, 0x06, 0x5a, 0x8d, 0x70, 0xbe, 0xc2, 0x8f, 0x53, 0xab, 0x11, - 0xf6, 0xa8, 0x07, 0xf1, 0xcc, 0x3b, 0x0b, 0xd5, 0x23, 0xcc, 0x42, 0x57, 0x29, 0x87, 0x56, 0x23, - 0x9c, 0xbb, 0xf0, 0x72, 0x6f, 0x6d, 0xd0, 0x24, 0x70, 0x2d, 0xd2, 0x24, 0x70, 0x3d, 0xd2, 0x24, - 0x70, 0xc3, 0x45, 0xf0, 0xa7, 0x32, 0x7c, 0xd9, 0x45, 0xd0, 0xf9, 0xb5, 0x75, 0xff, 0xc8, 0x9a, - 0x02, 0xdc, 0x1d, 0x2a, 0x85, 0xec, 0xda, 0x30, 0x30, 0x5a, 0xfb, 0x37, 0xb7, 0xf8, 0xbd, 0xaa, - 0xf2, 0xb0, 0xfb, 0x37, 0x0c, 0xe2, 0xf8, 0x5d, 0x68, 0x16, 0x82, 0xeb, 0xed, 0xbe, 0x3d, 0x5b, - 0xf8, 0x0d, 0x5b, 0x6d, 0x82, 0x4e, 0xbb, 0xaf, 0x34, 0xe1, 0xa8, 0x3d, 0x6e, 0xdf, 0x86, 0xf7, - 0x34, 0x03, 0x23, 0xe8, 0xed, 0x81, 0xfb, 0xda, 0x63, 0x09, 0xce, 0x71, 0x54, 0x3e, 0x9b, 0x1d, - 0x83, 0x37, 0x23, 0xed, 0x18, 0x70, 0x09, 0xe2, 0xee, 0x1e, 0x7c, 0xdd, 0xbb, 0x51, 0xcd, 0x66, - 0x89, 0xb8, 0x93, 0xf0, 0x13, 0x38, 0xe9, 0xde, 0x81, 0xfd, 0xc8, 0xb6, 0x12, 0xfe, 0x32, 0xd3, - 0x2f, 0x35, 0x57, 0x84, 0x97, 0x68, 0x03, 0xcd, 0x68, 0xb6, 0x6a, 0x65, 0xf4, 0xc4, 0xd9, 0xb5, - 0x5f, 0x19, 0xf4, 0x51, 0xb0, 0xfa, 0x1b, 0xad, 0xa3, 0xb0, 0x77, 0x11, 0x09, 0xab, 0x34, 0x3f, - 0xf9, 0x35, 0x2a, 0xcf, 0xdf, 0x80, 0xc9, 0xdb, 0x46, 0x4f, 0xdf, 0xe9, 0xee, 0x19, 0x9d, 0x1f, - 0xeb, 0x6d, 0xc1, 0x70, 0x8c, 0x18, 0x96, 0x63, 0x4f, 0x2c, 0xed, 0x5f, 0x48, 0xf0, 0x02, 0xab, - 0xfe, 0x5d, 0x84, 0xfd, 0x75, 0xc3, 0xaa, 0xe9, 0xdf, 0x82, 0x09, 0x1d, 0x03, 0x67, 0xaf, 0x5d, - 0xe3, 0xe4, 0x31, 0xd2, 0x57, 0x7d, 0xd1, 0xfe, 0x6c, 0x52, 0x13, 0xe1, 0x15, 0x07, 0x19, 0xb6, - 0x98, 0x79, 0x0d, 0xc6, 0x9d, 0xfe, 0x79, 0xbf, 0x26, 0x04, 0xbf, 0x7e, 0xeb, 0xe3, 0x97, 0xcd, - 0x23, 0xe5, 0x06, 0xe7, 0x17, 0xf3, 0xb4, 0xea, 0xab, 0xbe, 0x48, 0xc8, 0x57, 0x49, 0x58, 0xf5, - 0x9f, 0xcd, 0xa8, 0x70, 0x27, 0x17, 0x60, 0xa2, 0x2e, 0xea, 0xf8, 0xfb, 0x59, 0x83, 0xb1, 0x46, - 0xb7, 0xad, 0x2b, 0x2f, 0xc3, 0xf8, 0xcd, 0xd6, 0xb6, 0x7e, 0x80, 0x83, 0x1c, 0x3f, 0xb0, 0xfe, - 0xa0, 0xf2, 0x3b, 0x51, 0xdd, 0xef, 0x1c, 0xb4, 0x7b, 0xba, 0x81, 0xb7, 0xec, 0xf1, 0x1b, 0x74, - 0xcb, 0xa6, 0x99, 0xd8, 0xc1, 0xb2, 0x9c, 0x06, 0xc7, 0x19, 0x4a, 0x28, 0x71, 0xf4, 0xf8, 0x9f, - 0x1a, 0xb1, 0xbe, 0x2a, 0x29, 0xc9, 0xfa, 0xaa, 0xa6, 0xe4, 0xdc, 0x6b, 0x70, 0x4a, 0x78, 0x41, - 0x66, 0x49, 0x6a, 0x29, 0x68, 0x7d, 0xd5, 0x53, 0xe3, 0x99, 0xd8, 0x83, 0xdf, 0xcc, 0x8c, 0xe4, - 0xde, 0x84, 0x8a, 0xf7, 0x55, 0x9a, 0x32, 0x0a, 0xe5, 0x75, 0xab, 0xcb, 0x57, 0xa0, 0x5c, 0x41, - 0x7d, 0x66, 0xa6, 0x7e, 0xf6, 0xcb, 0xb9, 0xf1, 0x8a, 0x6e, 0x9a, 0x7a, 0x0f, 0x69, 0x57, 0x2a, - 0xd8, 0xf8, 0x6d, 0x78, 0xc1, 0xf7, 0x55, 0x9c, 0x65, 0x5f, 0xad, 0x3a, 0xf6, 0xb5, 0x9a, 0xc7, - 0xbe, 0x56, 0xb3, 0xed, 0xa5, 0x32, 0xd9, 0xd2, 0x5c, 0x57, 0x7c, 0x5e, 0x7c, 0xa9, 0x6d, 0x66, - 0x0b, 0x75, 0xbd, 0xfc, 0x36, 0xd6, 0xad, 0xf8, 0xea, 0xea, 0x21, 0x5b, 0xa2, 0x95, 0x72, 0x15, - 0xdb, 0x57, 0x7d, 0xed, 0x77, 0x85, 0x7d, 0x3b, 0x7e, 0x0e, 0xc2, 0x9d, 0x54, 0xa9, 0xc3, 0x35, - 0xdf, 0x4e, 0xf6, 0x99, 0xd3, 0xd4, 0x35, 0xea, 0x70, 0xdd, 0x57, 0xb7, 0x13, 0x72, 0xaa, 0xa8, - 0x5e, 0x5e, 0xc2, 0xcb, 0xc8, 0x7a, 0x41, 0xb9, 0x40, 0x58, 0xc0, 0xe5, 0x38, 0x0e, 0x90, 0xb3, - 0xa2, 0xac, 0x17, 0xd0, 0x1d, 0x3a, 0x06, 0x95, 0x40, 0x83, 0xe0, 0x28, 0x39, 0x9d, 0x54, 0x0a, - 0xe5, 0x6b, 0xb8, 0x93, 0x6a, 0x60, 0x27, 0x21, 0xa1, 0x72, 0x7a, 0xaa, 0x16, 0x2a, 0x5b, 0x27, - 0x1f, 0xcf, 0x8c, 0x3c, 0x41, 0xd7, 0x3f, 0xd0, 0xf5, 0xd1, 0xc7, 0x33, 0xd2, 0xa7, 0xe8, 0xfa, - 0x0c, 0x5d, 0x9f, 0xa3, 0xeb, 0xdd, 0x67, 0x33, 0xd2, 0x23, 0x74, 0x7d, 0x80, 0xae, 0x3f, 0xa2, - 0xeb, 0x31, 0xba, 0x4e, 0xd0, 0xf5, 0x04, 0x5d, 0x1f, 0xa1, 0xeb, 0xd3, 0x67, 0x33, 0x23, 0x9f, - 0xa1, 0xef, 0xcf, 0xd1, 0xf7, 0xbb, 0x9f, 0xcc, 0x8c, 0x3c, 0x44, 0xd7, 0xa3, 0x4f, 0x66, 0xa4, - 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x09, 0xbb, 0xed, 0xa8, 0x34, 0x00, 0x00, + // 3080 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0xf6, 0x63, 0xf4, 0xad, 0xe8, + 0x8d, 0xac, 0x8f, 0x21, 0x62, 0x89, 0xa2, 0x28, 0x59, 0x66, 0xbe, 0xa4, 0x10, 0xff, 0xb8, 0x91, + 0x1b, 0x51, 0x06, 0x23, 0xb7, 0x35, 0x50, 0xa0, 0xa0, 0xc4, 0xb5, 0x44, 0x54, 0x5a, 0x0a, 0xe4, + 0x2a, 0x8d, 0x7b, 0x28, 0x82, 0x1c, 0x8a, 0xa0, 0xd7, 0xa2, 0xc7, 0x36, 0x2e, 0x8a, 0x02, 0xe9, + 0x2d, 0x87, 0xa2, 0x28, 0x8a, 0xa2, 0xf1, 0xa5, 0x80, 0x7a, 0x33, 0x7a, 0x2a, 0x82, 0x42, 0x88, + 0x98, 0x4b, 0x8e, 0xe9, 0xa9, 0x39, 0xe4, 0x50, 0xec, 0xee, 0xec, 0xec, 0xcc, 0xec, 0x2e, 0x77, + 0x69, 0x39, 0x6d, 0x2e, 0xb6, 0x38, 0xef, 0xbd, 0x99, 0xb7, 0xef, 0xf7, 0x7b, 0x6f, 0xdf, 0xce, + 0x0c, 0xfc, 0xcf, 0x5e, 0xe7, 0x68, 0xb7, 0xd3, 0x5b, 0xda, 0xed, 0x98, 0x07, 0x4b, 0xe6, 0x81, + 0x6e, 0xea, 0x3d, 0x73, 0xf1, 0xb8, 0xdb, 0x31, 0x3b, 0x72, 0xc2, 0xfa, 0x3b, 0x7d, 0x7d, 0xbf, + 0x6d, 0x1e, 0x9c, 0xec, 0x2e, 0xee, 0x75, 0x8e, 0x96, 0xf6, 0x3b, 0xfb, 0x9d, 0x25, 0x5b, 0xb8, + 0x7b, 0x72, 0xdf, 0xfe, 0x65, 0xff, 0xb0, 0xff, 0x72, 0x8c, 0xb4, 0x7f, 0x60, 0x98, 0xac, 0xb7, + 0x5b, 0xdb, 0xc7, 0x66, 0xbd, 0x69, 0xb6, 0xdf, 0xd2, 0xe5, 0x59, 0x18, 0xbb, 0xd5, 0xd6, 0x0f, + 0x5b, 0xcb, 0x0a, 0xca, 0xa0, 0x2c, 0x2a, 0x27, 0x4e, 0xcf, 0xe6, 0x46, 0x1a, 0x64, 0x8c, 0x4a, + 0x0b, 0x8a, 0x94, 0x41, 0x59, 0x89, 0x93, 0x16, 0xa8, 0x74, 0x45, 0xc1, 0x19, 0x94, 0x1d, 0xe5, + 0xa4, 0x2b, 0x54, 0x5a, 0x54, 0x12, 0x19, 0x94, 0xc5, 0x9c, 0xb4, 0x48, 0xa5, 0xab, 0xca, 0x68, + 0x06, 0x65, 0x2f, 0x71, 0xd2, 0x55, 0x2a, 0x5d, 0x53, 0xc6, 0x32, 0x28, 0x9b, 0xe0, 0xa4, 0x6b, + 0x54, 0x7a, 0x43, 0x79, 0x26, 0x83, 0xb2, 0x97, 0x39, 0xe9, 0x0d, 0x2a, 0x5d, 0x57, 0x92, 0x19, + 0x94, 0x95, 0x39, 0xe9, 0x3a, 0x95, 0xde, 0x54, 0xc6, 0x33, 0x28, 0xfb, 0x0c, 0x27, 0xbd, 0x29, + 0xab, 0xf0, 0x8c, 0xf3, 0xe4, 0x79, 0x05, 0x32, 0x28, 0x3b, 0x4d, 0xc4, 0xee, 0xa0, 0x27, 0x5f, + 0x56, 0x26, 0x32, 0x28, 0x3b, 0xc6, 0xcb, 0x97, 0x3d, 0x79, 0x41, 0x99, 0xcc, 0xa0, 0x6c, 0x8a, + 0x97, 0x17, 0x3c, 0xf9, 0x8a, 0x72, 0x29, 0x83, 0xb2, 0x49, 0x5e, 0xbe, 0xe2, 0xc9, 0x8b, 0xca, + 0x54, 0x06, 0x65, 0xc7, 0x79, 0x79, 0xd1, 0x93, 0xaf, 0x2a, 0xd3, 0x19, 0x94, 0x9d, 0xe4, 0xe5, + 0xab, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x0c, 0x0f, 0x2f, 0x05, 0x76, 0x86, 0x07, 0x96, + 0x42, 0x3a, 0xc3, 0x43, 0x4a, 0xc1, 0x9c, 0xe1, 0xc1, 0xa4, 0x30, 0xce, 0xf0, 0x30, 0x52, 0x00, + 0x67, 0x78, 0x00, 0x29, 0x74, 0x33, 0x3c, 0x74, 0x14, 0xb4, 0x19, 0x1e, 0x34, 0x0a, 0xd7, 0x0c, + 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, 0x3c, 0x70, 0x14, 0x01, 0x1c, + 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, 0x50, 0x04, 0x28, 0x3c, 0x10, + 0x48, 0x8e, 0x35, 0xf4, 0xe3, 0x80, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, + 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, + 0x1c, 0xc3, 0x83, 0x73, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x22, + 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0xd0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe1, 0xe1, 0x0d, 0xcc, 0x31, 0x1c, + 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, + 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xcb, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x70, 0x68, + 0x8e, 0xe1, 0xd0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0xd9, 0x1c, 0xfb, 0x13, 0x06, 0xd9, 0xc9, 0xb1, + 0x3b, 0xcd, 0xbd, 0x1f, 0xe8, 0x2d, 0x02, 0x85, 0x2a, 0x64, 0xda, 0x98, 0x05, 0x5d, 0xca, 0x83, + 0x44, 0x15, 0x72, 0x8d, 0x97, 0x17, 0xa8, 0xdc, 0xcd, 0x36, 0x5e, 0xbe, 0x42, 0xe5, 0x6e, 0xbe, + 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0x57, 0xa9, 0xdc, 0xcd, 0x39, 0x5e, 0xbe, 0x46, + 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0x1b, 0x54, 0xee, 0xe6, 0x1d, 0x2f, 0x5f, 0xa7, 0x72, 0x37, 0xf3, + 0x78, 0xf9, 0x4d, 0x39, 0x23, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0xcd, 0x88, 0xd9, 0x27, 0x68, 0x2c, + 0x7b, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x05, 0x4f, 0xc3, 0xcd, 0x40, 0x41, 0x63, 0x45, 0x7b, 0xcf, + 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x0b, 0xf0, 0x49, 0x0c, 0x74, 0x69, 0x01, 0x3a, 0x89, 0x81, 0x2d, + 0x2d, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x05, 0xc8, 0x24, 0x06, 0xae, 0xb4, 0x00, 0x97, 0xc4, 0x40, + 0x95, 0x16, 0xa0, 0x92, 0x18, 0x98, 0xd2, 0x02, 0x4c, 0x12, 0x03, 0x51, 0x5a, 0x80, 0x48, 0x62, + 0xe0, 0x49, 0x0b, 0xf0, 0x48, 0x0c, 0x34, 0xb3, 0x22, 0x34, 0x12, 0x0b, 0xcb, 0xac, 0x08, 0x8b, + 0xc4, 0x42, 0x32, 0x2b, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x8a, 0x70, 0x48, 0x2c, 0x14, 0x5f, 0x4a, + 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xd9, 0x33, 0x2f, 0xd4, 0x11, 0xe6, 0xb9, 0xf6, 0x61, 0xa2, + 0x20, 0x2f, 0xda, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x3c, 0xd7, 0x58, 0x30, 0x16, 0x46, + 0xb0, 0x45, 0xf1, 0x42, 0xbd, 0x61, 0x9e, 0x6b, 0x33, 0xa2, 0xfd, 0x5b, 0xff, 0xca, 0x3b, 0xb6, + 0x47, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x0f, 0xdb, 0xb1, 0xe5, 0xa2, 0x43, 0x4e, 0x83, 0x9d, 0x8b, + 0x0e, 0xb6, 0xef, 0xad, 0x13, 0xb7, 0x83, 0xcb, 0x45, 0x87, 0x96, 0x06, 0xf5, 0xe9, 0xf6, 0x5b, + 0x84, 0xc1, 0x0d, 0xfd, 0x38, 0x80, 0xc1, 0xc3, 0xf6, 0x5b, 0x79, 0xae, 0x94, 0x0c, 0xcb, 0x60, + 0x3c, 0x34, 0x83, 0x87, 0xed, 0xbc, 0xf2, 0x5c, 0x79, 0x19, 0x9a, 0xc1, 0x5f, 0x41, 0x3f, 0x44, + 0x18, 0xec, 0x85, 0x7f, 0xd8, 0x7e, 0x28, 0x17, 0x1d, 0xf2, 0x40, 0x06, 0xe3, 0x21, 0x18, 0x1c, + 0xa7, 0x3f, 0xca, 0x45, 0x87, 0x36, 0x98, 0xc1, 0x17, 0xee, 0x66, 0xde, 0x47, 0x70, 0xb9, 0xde, + 0x6e, 0xd5, 0x8e, 0x76, 0xf5, 0x56, 0x4b, 0x6f, 0x91, 0x38, 0xe6, 0xb9, 0x4a, 0x10, 0x02, 0xf5, + 0xe3, 0xb3, 0x39, 0x2f, 0xc2, 0xab, 0x90, 0x74, 0x62, 0x9a, 0xcf, 0x2b, 0xa7, 0x28, 0xa2, 0xc2, + 0x51, 0x55, 0xf9, 0xaa, 0x6b, 0xb6, 0x9c, 0x57, 0xfe, 0x86, 0x98, 0x2a, 0x47, 0x87, 0xb5, 0x9f, + 0xd9, 0x1e, 0x1a, 0x17, 0xf6, 0x70, 0x29, 0x96, 0x87, 0x8c, 0x6f, 0x2f, 0xf8, 0x7c, 0x63, 0xbc, + 0x3a, 0x81, 0xe9, 0x7a, 0xbb, 0x55, 0xd7, 0x7b, 0x66, 0x3c, 0x97, 0x1c, 0x1d, 0xa1, 0x1e, 0xe4, + 0x39, 0x5a, 0xb2, 0x16, 0x94, 0xd2, 0x7c, 0x8d, 0xd0, 0xda, 0xd6, 0xb2, 0x06, 0xb7, 0x6c, 0x2e, + 0x6c, 0x59, 0xaf, 0xb2, 0xd3, 0x05, 0x73, 0x61, 0x0b, 0x7a, 0x39, 0x44, 0x97, 0x7a, 0xdb, 0x7d, + 0x39, 0x57, 0x4e, 0x7a, 0x66, 0xe7, 0x48, 0x9e, 0x05, 0x69, 0xb3, 0x65, 0xaf, 0x31, 0x59, 0x9e, + 0xb4, 0x9c, 0xfa, 0xf8, 0x6c, 0x2e, 0x71, 0xf7, 0xa4, 0xdd, 0x6a, 0x48, 0x9b, 0x2d, 0xf9, 0x36, + 0x8c, 0x7e, 0xbb, 0x79, 0x78, 0xa2, 0xdb, 0xaf, 0x88, 0xc9, 0x72, 0x91, 0x28, 0xbc, 0x1c, 0xba, + 0x47, 0x64, 0x2d, 0xbc, 0xb4, 0x67, 0x4f, 0xbd, 0x78, 0xb7, 0x6d, 0x98, 0xcb, 0x85, 0xf5, 0x86, + 0x33, 0x85, 0xf6, 0x3d, 0x00, 0x67, 0xcd, 0x6a, 0xb3, 0x77, 0x20, 0xd7, 0xdd, 0x99, 0x9d, 0xa5, + 0xd7, 0x3f, 0x3e, 0x9b, 0x2b, 0xc6, 0x99, 0xf5, 0x7a, 0xab, 0xd9, 0x3b, 0xb8, 0x6e, 0x3e, 0x38, + 0xd6, 0x17, 0xcb, 0x0f, 0x4c, 0xbd, 0xe7, 0xce, 0x7e, 0xec, 0xbe, 0xf5, 0xc8, 0x73, 0x29, 0xcc, + 0x73, 0x25, 0xb9, 0x67, 0xba, 0xc5, 0x3f, 0x53, 0xfe, 0x49, 0x9f, 0xe7, 0x6d, 0xf7, 0x25, 0x21, + 0x44, 0x12, 0x47, 0x45, 0x12, 0x5f, 0x34, 0x92, 0xc7, 0x6e, 0x7d, 0x14, 0x9e, 0x15, 0x0f, 0x7a, + 0x56, 0x7c, 0x91, 0x67, 0xfd, 0x97, 0x93, 0xad, 0x34, 0x9f, 0xee, 0x1a, 0xed, 0x8e, 0xf1, 0xb5, + 0xdb, 0x0b, 0x7a, 0xaa, 0x5d, 0x40, 0x29, 0x71, 0xfa, 0x70, 0x0e, 0x69, 0xef, 0x4b, 0xee, 0x93, + 0x3b, 0x89, 0xf4, 0x64, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, 0xfd, 0x12, 0xc1, 0x8c, + 0xaf, 0x92, 0x3b, 0x61, 0x7a, 0xba, 0xe5, 0xdc, 0x18, 0xb6, 0x9c, 0x13, 0x07, 0x7f, 0x87, 0xe0, + 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x09, 0xee, 0x3d, 0xef, 0x5f, 0xc9, 0x56, 0x64, 0xbc, 0x63, + 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x45, 0x01, 0xf7, 0x59, 0x6a, 0x10, 0x10, 0x2e, 0x97, + 0x01, 0xc4, 0xed, 0x0e, 0x24, 0x76, 0xba, 0xba, 0x2e, 0xab, 0x20, 0x6d, 0x77, 0x89, 0x87, 0x53, + 0x8e, 0xfd, 0x76, 0xb7, 0xdc, 0x6d, 0x1a, 0x7b, 0x07, 0x0d, 0x69, 0xbb, 0x2b, 0x5f, 0x05, 0xbc, + 0x61, 0xb4, 0x88, 0x47, 0xd3, 0x8e, 0xc2, 0x86, 0xd1, 0x22, 0x1a, 0x96, 0x4c, 0x56, 0x21, 0xf1, + 0x86, 0xde, 0xbc, 0x4f, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0x69, 0xd8, 0xe3, 0x64, 0xc1, 0xef, 0x42, + 0xd2, 0x9d, 0x58, 0x9e, 0xb7, 0x2c, 0xee, 0x9b, 0x64, 0x59, 0x62, 0x61, 0xb9, 0x43, 0xde, 0x5c, + 0xb6, 0x54, 0x5e, 0x80, 0xd1, 0x46, 0x7b, 0xff, 0xc0, 0x24, 0x8b, 0xfb, 0xd5, 0x1c, 0xb1, 0x76, + 0x0f, 0xc6, 0xa9, 0x47, 0x4f, 0x79, 0xea, 0xaa, 0xf3, 0x68, 0x72, 0x9a, 0x7d, 0x9f, 0xb8, 0xfb, + 0x96, 0xce, 0x90, 0x9c, 0x81, 0xe4, 0x9b, 0x66, 0xd7, 0x2b, 0xfa, 0x6e, 0x47, 0x4a, 0x47, 0xb5, + 0x77, 0x11, 0x24, 0xab, 0xba, 0x7e, 0x6c, 0x07, 0xfc, 0x1a, 0x24, 0xaa, 0x9d, 0x1f, 0x1a, 0xc4, + 0xc1, 0xcb, 0x24, 0xa2, 0x96, 0x98, 0xc4, 0xd4, 0x16, 0xcb, 0xd7, 0xd8, 0xb8, 0x3f, 0x4b, 0xe3, + 0xce, 0xe8, 0xd9, 0xb1, 0xd7, 0xb8, 0xd8, 0x13, 0x00, 0x2d, 0x25, 0x5f, 0xfc, 0x6f, 0xc0, 0x04, + 0xb3, 0x8a, 0x9c, 0x25, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, 0xd3, 0xe1, 0x12, 0xb7, + 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc4, 0xd4, 0x0e, 0x73, 0x8e, 0x0f, 0x73, 0xb0, 0x2a, 0x09, 0x75, + 0xde, 0x89, 0x91, 0x1d, 0xee, 0x79, 0x87, 0x9c, 0xe1, 0x20, 0x5a, 0x7f, 0x6b, 0xa3, 0x80, 0xeb, + 0xed, 0x43, 0xed, 0x55, 0x00, 0x27, 0xe5, 0x6b, 0xc6, 0xc9, 0x91, 0x90, 0x75, 0x53, 0x6e, 0x80, + 0x77, 0x0e, 0xf4, 0x1d, 0xbd, 0x67, 0xab, 0xf0, 0xfd, 0x94, 0x55, 0x60, 0xc0, 0x49, 0x31, 0xdb, + 0xfe, 0xa5, 0x48, 0xfb, 0xc0, 0x4e, 0xcc, 0x52, 0x55, 0x1c, 0xd5, 0x7b, 0xba, 0xb9, 0x61, 0x74, + 0xcc, 0x03, 0xbd, 0x2b, 0x58, 0x14, 0xe4, 0x15, 0x2e, 0x61, 0xa7, 0x0a, 0x2f, 0x50, 0x8b, 0x50, + 0xa3, 0x15, 0xed, 0x43, 0xdb, 0x41, 0xab, 0x15, 0xf0, 0x3d, 0x20, 0x8e, 0xf1, 0x80, 0xf2, 0x1a, + 0xd7, 0xbf, 0x0d, 0x70, 0x53, 0xf8, 0xb4, 0xbc, 0xc9, 0x7d, 0xe7, 0x0c, 0x76, 0x96, 0xff, 0xc6, + 0x74, 0x63, 0xea, 0xba, 0xfc, 0x52, 0xa4, 0xcb, 0x21, 0xdd, 0xed, 0xb0, 0x31, 0xc5, 0x71, 0x63, + 0xfa, 0x47, 0xda, 0x71, 0x58, 0xc3, 0x55, 0xfd, 0x7e, 0xf3, 0xe4, 0xd0, 0x94, 0x5f, 0x8e, 0xc4, + 0xbe, 0x84, 0x2a, 0xd4, 0xd5, 0x62, 0x5c, 0xf8, 0x4b, 0x52, 0xb9, 0x4c, 0xdd, 0xbd, 0x31, 0x04, + 0x05, 0x4a, 0x52, 0xa5, 0x42, 0xcb, 0x76, 0xf2, 0xbd, 0x87, 0x73, 0xe8, 0x83, 0x87, 0x73, 0x23, + 0xda, 0x6f, 0x11, 0x5c, 0x26, 0x9a, 0x0c, 0x71, 0xaf, 0x0b, 0xce, 0x5f, 0x71, 0x6b, 0x46, 0x50, + 0x04, 0xfe, 0x63, 0xe4, 0xfd, 0x0b, 0x02, 0xc5, 0xe7, 0xab, 0x1b, 0xef, 0x7c, 0x2c, 0x97, 0x4b, + 0xa8, 0xf6, 0xdf, 0x8f, 0xf9, 0x3d, 0x18, 0xdd, 0x69, 0x1f, 0xe9, 0x5d, 0xeb, 0x4d, 0x60, 0xfd, + 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, 0x15, 0x64, 0x05, 0x12, + 0xd5, 0xa6, 0xd9, 0xb4, 0x3d, 0x98, 0xa4, 0xf5, 0xb5, 0x69, 0x36, 0xb5, 0x15, 0x98, 0xdc, 0x7a, + 0x50, 0x7b, 0xdb, 0xd4, 0x8d, 0x56, 0x73, 0xf7, 0x50, 0x3c, 0x03, 0x75, 0xfb, 0xd5, 0xe5, 0xdc, + 0x68, 0xb2, 0x95, 0x3a, 0x45, 0xa5, 0x84, 0xed, 0xcf, 0x5b, 0x30, 0xb5, 0x6d, 0xb9, 0x6d, 0xdb, + 0xd9, 0x66, 0x19, 0x40, 0x5b, 0x7c, 0x23, 0xc4, 0xce, 0xda, 0x40, 0x5b, 0x42, 0xfb, 0x88, 0x69, + 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x97, 0x48, 0x4e, 0xa5, 0x2e, 0xe7, 0x12, 0x49, 0x48, + 0x5d, 0x22, 0xeb, 0xfe, 0x15, 0x43, 0xca, 0x69, 0x75, 0xaa, 0xfa, 0xfd, 0xb6, 0xd1, 0x36, 0xfd, + 0xfd, 0x2a, 0xf5, 0x58, 0xfe, 0x06, 0x8c, 0x5b, 0x21, 0xb5, 0x7f, 0x11, 0xc0, 0xae, 0x92, 0x16, + 0x45, 0x98, 0x82, 0x0c, 0xd8, 0xd4, 0xf1, 0x6c, 0xe4, 0x5b, 0x80, 0xeb, 0xf5, 0x2d, 0xf2, 0x72, + 0x2b, 0x0e, 0x34, 0xdd, 0xd2, 0x7b, 0xbd, 0xe6, 0xbe, 0x4e, 0x7e, 0x91, 0xb1, 0xde, 0x7e, 0xc3, + 0x9a, 0x40, 0x2e, 0x82, 0x54, 0xdf, 0x22, 0x0d, 0xef, 0x7c, 0x9c, 0x69, 0x1a, 0x52, 0x7d, 0x2b, + 0xfd, 0x67, 0x04, 0x97, 0xb8, 0x51, 0x59, 0x83, 0x49, 0x67, 0x80, 0x79, 0xdc, 0xb1, 0x06, 0x37, + 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, 0xf4, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, 0x22, 0xc8, 0xec, 0x10, + 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x2f, 0x80, 0x17, 0x57, 0x79, 0x1a, 0x26, 0x76, + 0xee, 0xdd, 0xa9, 0x7d, 0xbf, 0x5e, 0x7b, 0x73, 0xa7, 0x56, 0x4d, 0x21, 0xed, 0xf7, 0x08, 0x26, + 0x48, 0xdb, 0xba, 0xd7, 0x39, 0xd6, 0xe5, 0x32, 0xa0, 0x0d, 0xc2, 0xa0, 0x27, 0xf3, 0x1b, 0x6d, + 0xc8, 0x4b, 0x80, 0xca, 0xf1, 0xa1, 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, 0x00, 0x8e, 0x87, 0x0c, + 0xaa, 0x68, 0xff, 0xc4, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x2a, 0xff, 0xdd, 0x54, 0x1a, + 0x5f, 0x2e, 0xac, 0x14, 0x17, 0xad, 0x7f, 0x28, 0x25, 0xaf, 0xf2, 0x9f, 0x50, 0x7e, 0x15, 0xdf, + 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbb, + 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, + 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, 0x44, 0x78, 0xb9, 0xff, + 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, 0xd0, 0x37, 0xa0, 0x57, + 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, 0xf4, 0xae, 0xfc, 0xff, + 0x30, 0xe9, 0x0c, 0x39, 0x5f, 0x39, 0x41, 0x5f, 0x81, 0x8e, 0x9c, 0x94, 0x5b, 0x4e, 0x5b, 0xfb, + 0x32, 0x01, 0x33, 0xce, 0x40, 0xbd, 0x79, 0xa4, 0x73, 0x97, 0x8c, 0x16, 0x84, 0x23, 0xa5, 0x29, + 0xcb, 0xbc, 0x7f, 0x36, 0xe7, 0x8c, 0x6e, 0x50, 0x32, 0x2d, 0x08, 0x87, 0x4b, 0xbc, 0x9e, 0xf7, + 0xfe, 0x59, 0x10, 0x2e, 0x1e, 0xf1, 0x7a, 0xf4, 0x75, 0x43, 0xf5, 0xdc, 0x2b, 0x48, 0xbc, 0x5e, + 0x95, 0xb2, 0x6c, 0x41, 0xb8, 0x8c, 0xc4, 0xeb, 0xd5, 0x28, 0xdf, 0x16, 0x84, 0xa3, 0x27, 0x5e, + 0xef, 0x16, 0x65, 0xde, 0x82, 0x70, 0x08, 0xc5, 0xeb, 0x7d, 0x93, 0x72, 0x70, 0x41, 0xb8, 0xaa, + 0xc4, 0xeb, 0xbd, 0x4e, 0xd9, 0xb8, 0x20, 0x5c, 0x5a, 0xe2, 0xf5, 0x36, 0x29, 0x2f, 0xb3, 0xe2, + 0xf5, 0x25, 0x5e, 0xf1, 0xb6, 0xc7, 0xd0, 0xac, 0x78, 0x91, 0x89, 0xd7, 0xfc, 0x96, 0xc7, 0xd5, + 0xac, 0x78, 0xa5, 0x89, 0xd7, 0x7c, 0xc3, 0x63, 0x6d, 0x56, 0x3c, 0x2a, 0xe3, 0x35, 0xb7, 0x3c, + 0xfe, 0x66, 0xc5, 0x43, 0x33, 0x5e, 0xb3, 0xee, 0x31, 0x39, 0x2b, 0x1e, 0x9f, 0xf1, 0x9a, 0xdb, + 0xde, 0x1e, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x4b, 0x50, 0x9a, 0x40, 0x3f, 0x08, 0xa0, 0x9e, 0x26, + 0x50, 0x0f, 0x02, 0x68, 0xa7, 0x09, 0xb4, 0x83, 0x00, 0xca, 0x69, 0x02, 0xe5, 0x20, 0x80, 0x6e, + 0x9a, 0x40, 0x37, 0x08, 0xa0, 0x9a, 0x26, 0x50, 0x0d, 0x02, 0x68, 0xa6, 0x09, 0x34, 0x83, 0x00, + 0x8a, 0x69, 0x02, 0xc5, 0x20, 0x80, 0x5e, 0x9a, 0x40, 0x2f, 0x08, 0xa0, 0xd6, 0xbc, 0x48, 0x2d, + 0x08, 0xa2, 0xd5, 0xbc, 0x48, 0x2b, 0x08, 0xa2, 0xd4, 0x8b, 0x22, 0xa5, 0xc6, 0xfb, 0x67, 0x73, + 0xa3, 0xd6, 0x10, 0xc3, 0xa6, 0x79, 0x91, 0x4d, 0x10, 0xc4, 0xa4, 0x79, 0x91, 0x49, 0x10, 0xc4, + 0xa2, 0x79, 0x91, 0x45, 0x10, 0xc4, 0xa0, 0x47, 0x22, 0x83, 0xbc, 0x2b, 0x3e, 0x9a, 0x70, 0xa2, + 0x18, 0xc5, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, + 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc3, 0x20, 0x1c, 0x8b, 0x41, 0x38, + 0x8c, 0x41, 0xf3, 0xe2, 0x85, 0x07, 0x08, 0x2a, 0x48, 0xf3, 0xe2, 0xc9, 0x67, 0x34, 0x85, 0x70, + 0x2c, 0x0a, 0xe1, 0x30, 0x0a, 0x7d, 0x84, 0xe1, 0x59, 0x8e, 0x42, 0xe4, 0x78, 0xe8, 0x69, 0x55, + 0xa0, 0xb5, 0x18, 0xf7, 0x2b, 0x82, 0x38, 0xb5, 0x16, 0xe3, 0x8c, 0x7a, 0x10, 0xcf, 0xfc, 0x55, + 0xa8, 0x16, 0xa3, 0x0a, 0xdd, 0xa2, 0x1c, 0x5a, 0x8b, 0x71, 0xef, 0xc2, 0xcf, 0xbd, 0xf5, 0x41, + 0x45, 0xe0, 0xf5, 0x58, 0x45, 0x60, 0x33, 0x56, 0x11, 0xb8, 0xed, 0x21, 0xf8, 0x13, 0x09, 0x9e, + 0xf3, 0x10, 0x74, 0xfe, 0xda, 0x79, 0x70, 0x6c, 0x95, 0x00, 0xef, 0x84, 0x4a, 0x76, 0x4f, 0x6d, + 0x18, 0x18, 0xa5, 0xcd, 0x96, 0x7c, 0x87, 0x3f, 0xab, 0x2a, 0x0d, 0x7b, 0x7e, 0xc3, 0x20, 0x4e, + 0xf6, 0x42, 0xe7, 0x01, 0x6f, 0xb6, 0x7a, 0x76, 0xb5, 0x08, 0x5a, 0xb6, 0xd2, 0xb0, 0xc4, 0x72, + 0x03, 0xc6, 0x6c, 0xf5, 0x9e, 0x0d, 0xef, 0x45, 0x16, 0xae, 0x36, 0xc8, 0x4c, 0xda, 0x23, 0x04, + 0x19, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, 0x82, 0x78, 0xa7, 0x07, + 0xff, 0xe7, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x31, 0x4c, 0x79, 0x4f, 0x60, 0x7f, + 0xb2, 0xad, 0x46, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0xaa, 0xb0, 0x89, 0x36, 0xd0, 0x8c, 0x66, 0xab, + 0x56, 0x82, 0xe9, 0x7a, 0xc7, 0xde, 0x32, 0xe8, 0xb5, 0x3b, 0x46, 0x6f, 0xab, 0x79, 0x1c, 0xb5, + 0x17, 0x91, 0xb4, 0x5a, 0xf3, 0xd3, 0x5f, 0xcd, 0x8d, 0x68, 0x2f, 0xc3, 0xe4, 0x5d, 0xa3, 0xab, + 0xef, 0x75, 0xf6, 0x8d, 0xf6, 0x8f, 0xf4, 0x96, 0x60, 0x38, 0xee, 0x1a, 0x96, 0x12, 0x8f, 0x2d, + 0xed, 0x9f, 0x23, 0xb8, 0xc2, 0xaa, 0x7f, 0xa7, 0x6d, 0x1e, 0x6c, 0x1a, 0x56, 0x4f, 0xff, 0x2a, + 0x24, 0x75, 0x02, 0x9c, 0xfd, 0xee, 0x9a, 0x70, 0x3f, 0x23, 0x03, 0xd5, 0x17, 0xed, 0x7f, 0x1b, + 0xd4, 0x44, 0xd8, 0xe2, 0x70, 0x97, 0x2d, 0xa4, 0xaf, 0xc1, 0xa8, 0x33, 0x3f, 0xef, 0xd7, 0x25, + 0xc1, 0xaf, 0xdf, 0x04, 0xf8, 0x65, 0xf3, 0x48, 0xbe, 0xcd, 0xf9, 0xc5, 0x7c, 0xad, 0x06, 0xaa, + 0x2f, 0xba, 0xe4, 0x2b, 0x27, 0xad, 0xfe, 0xcf, 0x66, 0x54, 0xb4, 0x93, 0x59, 0x48, 0xd6, 0x44, + 0x9d, 0x60, 0x3f, 0xab, 0x90, 0xa8, 0x77, 0x5a, 0xba, 0xfc, 0x1c, 0x8c, 0xbe, 0xd1, 0xdc, 0xd5, + 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, 0x02, 0x24, 0x2b, 0x07, 0xed, 0xc3, 0x56, 0x57, 0x37, 0xc8, + 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x72, 0xbd, 0x63, 0x94, 0x1f, + 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb1, 0xb2, 0xd1, 0x52, 0x28, 0x8f, + 0x7e, 0x7c, 0x36, 0x87, 0x76, 0xe8, 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, 0xc7, 0x37, 0x55, 0x21, + 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, 0x4e, 0xf7, 0x64, 0x9e, + 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x18, 0x35, 0x9d, 0xe0, 0xd9, + 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x98, 0x60, 0x12, 0x56, 0x1e, + 0x05, 0xb4, 0x91, 0x1a, 0xb1, 0xfe, 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, 0x25, 0xe5, 0xae, 0xc1, + 0xb4, 0xb0, 0x7d, 0x69, 0x49, 0xaa, 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0x26, 0xd2, 0x89, 0xf7, 0x7e, + 0xad, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, 0xbf, 0xd1, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9, 0x3c, + 0x48, 0xe5, 0x72, 0x0a, 0xa5, 0xa7, 0x7f, 0xfa, 0x8b, 0xcc, 0x44, 0x59, 0x37, 0x4d, 0xbd, 0x7b, + 0x4f, 0x37, 0xcb, 0x65, 0x62, 0xfc, 0x1a, 0x5c, 0x09, 0xdc, 0x28, 0xb5, 0xec, 0x2b, 0x15, 0xc7, + 0xbe, 0x5a, 0xf5, 0xd9, 0x57, 0xab, 0xb6, 0x3d, 0x2a, 0xb9, 0x07, 0xce, 0x1b, 0x72, 0xc0, 0xb6, + 0xa4, 0xd2, 0x62, 0x0e, 0xb8, 0x37, 0x4a, 0xaf, 0x11, 0xdd, 0x72, 0xa0, 0xae, 0x1e, 0x71, 0x60, + 0x5d, 0x2e, 0x55, 0x88, 0x7d, 0x25, 0xd0, 0xfe, 0xbe, 0x70, 0xaa, 0xca, 0xbf, 0x21, 0xc8, 0x24, + 0x15, 0xea, 0x70, 0x35, 0x70, 0x92, 0x03, 0xe6, 0xae, 0x7b, 0x95, 0x3a, 0x5c, 0x0b, 0xd4, 0x6d, + 0x47, 0xdc, 0xf9, 0xaa, 0x95, 0x96, 0xc8, 0x4b, 0x7e, 0x63, 0x59, 0xbe, 0xe2, 0xe6, 0x28, 0x57, + 0x81, 0x49, 0x80, 0x5c, 0xad, 0x52, 0x85, 0x18, 0x94, 0x43, 0x0d, 0xc2, 0xa3, 0xe4, 0x5a, 0x96, + 0x5e, 0x27, 0x93, 0x54, 0x42, 0x27, 0x89, 0x08, 0x95, 0x6b, 0x5e, 0xde, 0x39, 0x3d, 0x57, 0x47, + 0x1e, 0x9f, 0xab, 0x23, 0x7f, 0x3f, 0x57, 0x47, 0x3e, 0x39, 0x57, 0xd1, 0x67, 0xe7, 0x2a, 0xfa, + 0xfc, 0x5c, 0x45, 0x5f, 0x9c, 0xab, 0xe8, 0x9d, 0xbe, 0x8a, 0x3e, 0xe8, 0xab, 0xe8, 0xc3, 0xbe, + 0x8a, 0xfe, 0xd0, 0x57, 0xd1, 0xa3, 0xbe, 0x8a, 0x4e, 0xfb, 0x2a, 0x7a, 0xdc, 0x57, 0xd1, 0x27, + 0x7d, 0x15, 0x7d, 0xd6, 0x57, 0x47, 0x3e, 0xef, 0xab, 0xe8, 0x8b, 0xbe, 0x3a, 0xf2, 0xce, 0xa7, + 0xea, 0xc8, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, + 0xc1, 0xb8, 0xdd, 0x71, 0x46, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.proto index 347d8d4c..70d33c47 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go index c94b76cb..ec95aa21 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go @@ -67,6 +67,12 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -90,18 +96,18 @@ func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -125,20 +131,20 @@ func TestNidOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,11 +163,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -171,11 +177,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -192,18 +198,18 @@ func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -227,20 +233,20 @@ func TestNinOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -259,11 +265,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -273,11 +279,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -294,18 +300,18 @@ func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -329,20 +335,20 @@ func TestNidRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -361,11 +367,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -375,11 +381,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -396,18 +402,18 @@ func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -431,20 +437,20 @@ func TestNinRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -463,11 +469,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -477,11 +483,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -498,18 +504,18 @@ func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -533,20 +539,20 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -565,11 +571,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -579,11 +585,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -600,18 +606,18 @@ func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -635,20 +641,20 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -667,11 +673,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -681,11 +687,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -702,18 +708,18 @@ func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -737,20 +743,20 @@ func TestNidOptStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -769,11 +775,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -783,11 +789,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -804,18 +810,18 @@ func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -839,20 +845,20 @@ func TestNinOptStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -871,11 +877,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -885,11 +891,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -906,18 +912,18 @@ func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -941,20 +947,20 @@ func TestNidRepStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -973,11 +979,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -987,11 +993,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -1008,18 +1014,18 @@ func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1043,20 +1049,20 @@ func TestNinRepStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1075,11 +1081,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1089,11 +1095,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -1110,18 +1116,18 @@ func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1145,20 +1151,20 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1177,11 +1183,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1191,11 +1197,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -1212,18 +1218,18 @@ func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1247,20 +1253,20 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1279,11 +1285,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1293,11 +1299,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -1314,18 +1320,18 @@ func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1349,20 +1355,20 @@ func TestNidNestedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1381,11 +1387,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1395,11 +1401,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1416,18 +1422,18 @@ func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1451,20 +1457,20 @@ func TestNinNestedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1483,11 +1489,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1497,11 +1503,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1518,18 +1524,18 @@ func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1553,20 +1559,20 @@ func TestNidOptCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1585,11 +1591,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1599,11 +1605,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1620,18 +1626,18 @@ func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1655,20 +1661,20 @@ func TestCustomDashMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1687,11 +1693,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1701,11 +1707,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1722,18 +1728,18 @@ func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1757,20 +1763,20 @@ func TestNinOptCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1789,11 +1795,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1803,11 +1809,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1824,18 +1830,18 @@ func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1859,20 +1865,20 @@ func TestNidRepCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1891,11 +1897,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1905,11 +1911,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1926,18 +1932,18 @@ func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1961,20 +1967,20 @@ func TestNinRepCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1993,11 +1999,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2007,11 +2013,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -2028,18 +2034,18 @@ func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2063,20 +2069,20 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2095,11 +2101,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2109,11 +2115,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -2130,18 +2136,18 @@ func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2165,20 +2171,20 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2197,11 +2203,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2211,11 +2217,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -2232,18 +2238,18 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2267,20 +2273,20 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2299,11 +2305,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2313,11 +2319,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -2334,18 +2340,18 @@ func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2369,20 +2375,20 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2401,11 +2407,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2415,11 +2421,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -2436,18 +2442,18 @@ func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2471,20 +2477,20 @@ func TestTreeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2503,11 +2509,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2517,11 +2523,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -2538,18 +2544,18 @@ func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2573,20 +2579,20 @@ func TestOrBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2605,11 +2611,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2619,11 +2625,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -2640,18 +2646,18 @@ func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2675,20 +2681,20 @@ func TestAndBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2707,11 +2713,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2721,11 +2727,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2742,18 +2748,18 @@ func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2777,20 +2783,20 @@ func TestLeafMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2809,11 +2815,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2823,11 +2829,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2844,18 +2850,18 @@ func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2879,20 +2885,20 @@ func TestDeepTreeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2911,11 +2917,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2925,11 +2931,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2946,18 +2952,18 @@ func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2981,20 +2987,20 @@ func TestADeepBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3013,11 +3019,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3027,11 +3033,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -3048,18 +3054,18 @@ func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3083,20 +3089,20 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3115,11 +3121,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3129,11 +3135,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -3150,18 +3156,18 @@ func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3185,20 +3191,20 @@ func TestDeepLeafMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3217,11 +3223,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3231,11 +3237,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -3252,18 +3258,18 @@ func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3287,20 +3293,20 @@ func TestNilMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3319,11 +3325,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3333,11 +3339,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -3354,18 +3360,18 @@ func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3389,20 +3395,20 @@ func TestNidOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3421,11 +3427,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3435,11 +3441,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -3456,18 +3462,18 @@ func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3491,20 +3497,20 @@ func TestNinOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3523,11 +3529,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3537,11 +3543,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -3558,18 +3564,18 @@ func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3593,20 +3599,20 @@ func TestNidRepEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3625,11 +3631,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3639,11 +3645,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -3660,18 +3666,18 @@ func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3695,20 +3701,20 @@ func TestNinRepEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3727,11 +3733,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3741,11 +3747,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -3762,18 +3768,18 @@ func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3797,20 +3803,20 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +3835,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +3849,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -3864,18 +3870,18 @@ func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3899,20 +3905,20 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3931,11 +3937,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3945,11 +3951,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -3966,18 +3972,18 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4001,20 +4007,20 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4033,11 +4039,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4047,11 +4053,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -4068,18 +4074,18 @@ func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4103,20 +4109,20 @@ func TestTimerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4135,11 +4141,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4149,11 +4155,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -4170,18 +4176,18 @@ func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4205,20 +4211,20 @@ func TestMyExtendableMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4237,11 +4243,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4251,11 +4257,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -4272,18 +4278,18 @@ func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4307,20 +4313,20 @@ func TestOtherExtenableMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4339,11 +4345,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4353,11 +4359,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -4374,18 +4380,18 @@ func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4409,20 +4415,20 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4441,11 +4447,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4455,11 +4461,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -4476,18 +4482,18 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4511,20 +4517,20 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4543,11 +4549,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4557,11 +4563,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -4578,18 +4584,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4613,20 +4619,20 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4645,11 +4651,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4659,11 +4665,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -4680,18 +4686,18 @@ func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4715,20 +4721,20 @@ func TestNestedScopeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4747,11 +4753,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4761,11 +4767,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -4782,18 +4788,18 @@ func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4817,20 +4823,20 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4849,11 +4855,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4863,11 +4869,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -4884,18 +4890,18 @@ func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4919,20 +4925,20 @@ func TestCustomContainerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4951,11 +4957,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4965,11 +4971,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -4986,18 +4992,18 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5021,20 +5027,20 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5053,11 +5059,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5067,11 +5073,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -5088,18 +5094,18 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5123,20 +5129,20 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5155,11 +5161,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5169,11 +5175,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -5190,18 +5196,18 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5225,20 +5231,20 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5257,11 +5263,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5271,11 +5277,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -5292,18 +5298,18 @@ func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5327,20 +5333,20 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5359,11 +5365,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5373,11 +5379,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -5394,18 +5400,18 @@ func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5429,20 +5435,20 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5461,11 +5467,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5475,11 +5481,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -5496,18 +5502,18 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5531,20 +5537,20 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5563,11 +5569,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5577,11 +5583,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -5598,18 +5604,18 @@ func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5633,20 +5639,20 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5665,11 +5671,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5679,11 +5685,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -5700,18 +5706,18 @@ func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5735,20 +5741,20 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5767,11 +5773,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5781,11 +5787,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -5802,18 +5808,18 @@ func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5837,20 +5843,20 @@ func TestUnrecognizedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5869,11 +5875,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5883,11 +5889,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -5904,18 +5910,18 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5939,20 +5945,20 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5971,11 +5977,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5985,11 +5991,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -6006,18 +6012,18 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6041,20 +6047,20 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6073,11 +6079,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6087,11 +6093,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -6108,18 +6114,18 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6143,20 +6149,20 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6175,11 +6181,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6189,11 +6195,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -6210,18 +6216,18 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6245,20 +6251,20 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6277,11 +6283,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6291,11 +6297,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -6312,18 +6318,18 @@ func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6347,20 +6353,20 @@ func TestNodeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6379,11 +6385,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6393,11 +6399,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -6410,6 +6416,618 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -7379,13 +7997,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7397,16 +8141,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7418,16 +8162,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7439,16 +8183,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7460,16 +8204,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7481,16 +8225,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7502,16 +8246,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7523,16 +8267,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7544,16 +8288,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7565,16 +8309,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7586,16 +8330,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7607,16 +8351,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7628,16 +8372,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7649,16 +8393,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7670,16 +8414,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7691,16 +8435,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7716,9 +8460,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7733,9 +8477,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7750,9 +8494,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7767,9 +8511,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7784,9 +8528,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7801,9 +8545,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7818,9 +8562,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7835,9 +8579,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7852,9 +8596,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7869,9 +8613,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7886,9 +8630,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7903,9 +8647,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7920,9 +8664,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7937,9 +8681,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7954,9 +8698,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7971,9 +8715,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7988,9 +8732,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8005,9 +8749,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8022,9 +8766,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8039,9 +8783,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8056,9 +8800,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8073,9 +8817,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8090,9 +8834,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8107,9 +8851,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8124,9 +8868,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8141,9 +8885,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8158,9 +8902,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8175,9 +8919,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8192,9 +8936,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8209,9 +8953,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8226,9 +8970,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8243,9 +8987,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8260,9 +9004,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8277,9 +9021,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8294,9 +9038,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8311,9 +9055,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8328,9 +9072,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8345,9 +9089,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8362,9 +9106,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8379,9 +9123,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8396,9 +9140,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8413,9 +9157,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8430,9 +9174,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8447,9 +9191,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8464,9 +9208,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8481,9 +9225,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8498,9 +9242,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8515,9 +9259,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8532,9 +9276,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8549,9 +9293,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8566,9 +9310,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8583,9 +9327,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8600,9 +9344,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8617,9 +9361,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8634,9 +9378,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8651,9 +9395,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8668,9 +9412,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8685,9 +9429,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8702,9 +9446,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8719,9 +9463,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8736,9 +9480,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8753,9 +9497,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8770,9 +9514,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8787,9 +9531,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8804,9 +9548,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8821,9 +9565,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8838,9 +9582,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8855,9 +9599,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8872,9 +9616,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8889,9 +9633,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8906,9 +9650,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8923,9 +9667,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8940,9 +9684,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8957,9 +9701,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8974,9 +9718,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8991,9 +9735,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9008,9 +9752,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9025,9 +9769,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9042,9 +9786,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9059,9 +9803,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9076,9 +9820,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9093,9 +9837,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9110,9 +9854,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9127,9 +9871,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9144,9 +9888,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9161,9 +9905,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9178,9 +9922,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9195,9 +9939,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9212,9 +9956,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9229,9 +9973,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9246,9 +9990,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9263,9 +10007,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9280,9 +10024,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9297,9 +10041,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9314,9 +10058,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9331,9 +10075,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9348,9 +10092,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9364,10 +10108,214 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedCustomNameNidOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNidOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9378,13 +10326,13 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoText(t *testing.T) { +func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9395,13 +10343,13 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { +func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9412,13 +10360,13 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoText(t *testing.T) { +func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9429,13 +10377,13 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { +func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9446,13 +10394,13 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinStructProtoText(t *testing.T) { +func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9463,13 +10411,13 @@ func TestCustomNameNinStructProtoText(t *testing.T) { } } -func TestCustomNameNinStructProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9480,13 +10428,13 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9497,13 +10445,13 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9514,13 +10462,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9531,13 +10479,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9548,13 +10496,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9565,13 +10513,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9582,13 +10530,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9599,13 +10547,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9616,13 +10564,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9633,13 +10581,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9650,13 +10598,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9667,13 +10615,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9684,13 +10632,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9701,13 +10649,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9718,13 +10666,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9735,13 +10683,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9752,13 +10700,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9769,13 +10717,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9786,13 +10734,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,13 +10751,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9823,12 +10771,12 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9847,12 +10795,12 @@ func TestNidOptNativeCompare(t *testing.T) { func TestNinOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9871,12 +10819,12 @@ func TestNinOptNativeCompare(t *testing.T) { func TestNidRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9895,12 +10843,12 @@ func TestNidRepNativeCompare(t *testing.T) { func TestNinRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9919,12 +10867,12 @@ func TestNinRepNativeCompare(t *testing.T) { func TestNidRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9943,12 +10891,12 @@ func TestNidRepPackedNativeCompare(t *testing.T) { func TestNinRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9967,12 +10915,12 @@ func TestNinRepPackedNativeCompare(t *testing.T) { func TestNidOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9991,12 +10939,12 @@ func TestNidOptStructCompare(t *testing.T) { func TestNinOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10015,12 +10963,12 @@ func TestNinOptStructCompare(t *testing.T) { func TestNidRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10039,12 +10987,12 @@ func TestNidRepStructCompare(t *testing.T) { func TestNinRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10063,12 +11011,12 @@ func TestNinRepStructCompare(t *testing.T) { func TestNidEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10087,12 +11035,12 @@ func TestNidEmbeddedStructCompare(t *testing.T) { func TestNinEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10111,12 +11059,12 @@ func TestNinEmbeddedStructCompare(t *testing.T) { func TestNidNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10135,12 +11083,12 @@ func TestNidNestedStructCompare(t *testing.T) { func TestNinNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10159,12 +11107,12 @@ func TestNinNestedStructCompare(t *testing.T) { func TestNidOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10183,12 +11131,12 @@ func TestNidOptCustomCompare(t *testing.T) { func TestCustomDashCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10207,12 +11155,12 @@ func TestCustomDashCompare(t *testing.T) { func TestNinOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10231,12 +11179,12 @@ func TestNinOptCustomCompare(t *testing.T) { func TestNidRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10255,12 +11203,12 @@ func TestNidRepCustomCompare(t *testing.T) { func TestNinRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10279,12 +11227,12 @@ func TestNinRepCustomCompare(t *testing.T) { func TestNinOptNativeUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10303,12 +11251,12 @@ func TestNinOptNativeUnionCompare(t *testing.T) { func TestNinOptStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10327,12 +11275,12 @@ func TestNinOptStructUnionCompare(t *testing.T) { func TestNinEmbeddedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10351,12 +11299,12 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { func TestNinNestedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10375,12 +11323,12 @@ func TestNinNestedStructUnionCompare(t *testing.T) { func TestTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10399,12 +11347,12 @@ func TestTreeCompare(t *testing.T) { func TestOrBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10423,12 +11371,12 @@ func TestOrBranchCompare(t *testing.T) { func TestAndBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10447,12 +11395,12 @@ func TestAndBranchCompare(t *testing.T) { func TestLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10471,12 +11419,12 @@ func TestLeafCompare(t *testing.T) { func TestDeepTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10495,12 +11443,12 @@ func TestDeepTreeCompare(t *testing.T) { func TestADeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10519,12 +11467,12 @@ func TestADeepBranchCompare(t *testing.T) { func TestAndDeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10543,12 +11491,12 @@ func TestAndDeepBranchCompare(t *testing.T) { func TestDeepLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10567,12 +11515,12 @@ func TestDeepLeafCompare(t *testing.T) { func TestNilCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10591,12 +11539,12 @@ func TestNilCompare(t *testing.T) { func TestNidOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10615,12 +11563,12 @@ func TestNidOptEnumCompare(t *testing.T) { func TestNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10639,12 +11587,12 @@ func TestNinOptEnumCompare(t *testing.T) { func TestNidRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10663,12 +11611,12 @@ func TestNidRepEnumCompare(t *testing.T) { func TestNinRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10687,12 +11635,12 @@ func TestNinRepEnumCompare(t *testing.T) { func TestNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10711,12 +11659,12 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { func TestAnotherNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10735,12 +11683,12 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10759,12 +11707,12 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { func TestTimerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10783,12 +11731,12 @@ func TestTimerCompare(t *testing.T) { func TestMyExtendableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10807,12 +11755,12 @@ func TestMyExtendableCompare(t *testing.T) { func TestOtherExtenableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10831,12 +11779,12 @@ func TestOtherExtenableCompare(t *testing.T) { func TestNestedDefinitionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10855,12 +11803,12 @@ func TestNestedDefinitionCompare(t *testing.T) { func TestNestedDefinition_NestedMessageCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10879,12 +11827,12 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10903,12 +11851,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { func TestNestedScopeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10927,12 +11875,12 @@ func TestNestedScopeCompare(t *testing.T) { func TestNinOptNativeDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10951,12 +11899,12 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { func TestCustomContainerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10975,18 +11923,162 @@ func TestCustomContainerCompare(t *testing.T) { func TestCustomNameNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNidOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinOptNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinRepNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinRepNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinStructCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinStruct(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameCustomTypeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameEnumCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameEnum(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) + p2 := NewPopulatedCustomNameEnum(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -10996,21 +12088,21 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinOptNativeCompare(t *testing.T) { +func TestNoExtensionsMapCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNoExtensionsMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) + p2 := NewPopulatedNoExtensionsMap(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11020,21 +12112,21 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinRepNativeCompare(t *testing.T) { +func TestUnrecognizedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognized(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) + p2 := NewPopulatedUnrecognized(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11044,21 +12136,21 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinStructCompare(t *testing.T) { +func TestUnrecognizedWithInnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinStruct(popr, false) + p2 := NewPopulatedUnrecognizedWithInner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11068,21 +12160,21 @@ func TestCustomNameNinStructCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameCustomTypeCompare(t *testing.T) { +func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameCustomType(popr, false) + p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11092,21 +12184,21 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { +func TestUnrecognizedWithEmbedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11116,21 +12208,21 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameEnumCompare(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameEnum(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11140,21 +12232,21 @@ func TestCustomNameEnumCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNoExtensionsMapCompare(t *testing.T) { +func TestNodeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNoExtensionsMap(popr, false) + p2 := NewPopulatedNode(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11164,21 +12256,21 @@ func TestNoExtensionsMapCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedCompare(t *testing.T) { +func TestNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognized(popr, false) + p2 := NewPopulatedNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11188,21 +12280,21 @@ func TestUnrecognizedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInnerCompare(t *testing.T) { +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11212,21 +12304,21 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11236,21 +12328,21 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbedCompare(t *testing.T) { +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11260,21 +12352,21 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11284,21 +12376,21 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11314,12 +12406,12 @@ func TestThetestDescription(t *testing.T) { func TestNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11329,12 +12421,12 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { func TestNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11344,12 +12436,12 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { func TestNidRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11359,12 +12451,12 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { func TestNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11374,12 +12466,12 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { func TestNidRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11389,12 +12481,12 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { func TestNinRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11404,12 +12496,12 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { func TestNidOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11419,12 +12511,12 @@ func TestNidOptStructVerboseEqual(t *testing.T) { func TestNinOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11434,12 +12526,12 @@ func TestNinOptStructVerboseEqual(t *testing.T) { func TestNidRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11449,12 +12541,12 @@ func TestNidRepStructVerboseEqual(t *testing.T) { func TestNinRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11464,12 +12556,12 @@ func TestNinRepStructVerboseEqual(t *testing.T) { func TestNidEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11479,12 +12571,12 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { func TestNinEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11494,12 +12586,12 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { func TestNidNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11509,12 +12601,12 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { func TestNinNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11524,12 +12616,12 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { func TestNidOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11539,12 +12631,12 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { func TestCustomDashVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11554,12 +12646,12 @@ func TestCustomDashVerboseEqual(t *testing.T) { func TestNinOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11569,12 +12661,12 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { func TestNidRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11584,12 +12676,12 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { func TestNinRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11599,12 +12691,12 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { func TestNinOptNativeUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11614,12 +12706,12 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { func TestNinOptStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11629,12 +12721,12 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11644,12 +12736,12 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestNinNestedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11659,12 +12751,12 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { func TestTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11674,12 +12766,12 @@ func TestTreeVerboseEqual(t *testing.T) { func TestOrBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11689,12 +12781,12 @@ func TestOrBranchVerboseEqual(t *testing.T) { func TestAndBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11704,12 +12796,12 @@ func TestAndBranchVerboseEqual(t *testing.T) { func TestLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11719,12 +12811,12 @@ func TestLeafVerboseEqual(t *testing.T) { func TestDeepTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11734,12 +12826,12 @@ func TestDeepTreeVerboseEqual(t *testing.T) { func TestADeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11749,12 +12841,12 @@ func TestADeepBranchVerboseEqual(t *testing.T) { func TestAndDeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11764,12 +12856,12 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { func TestDeepLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11779,12 +12871,12 @@ func TestDeepLeafVerboseEqual(t *testing.T) { func TestNilVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11794,12 +12886,12 @@ func TestNilVerboseEqual(t *testing.T) { func TestNidOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11809,12 +12901,12 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { func TestNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11824,12 +12916,12 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { func TestNidRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11839,12 +12931,12 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { func TestNinRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11854,12 +12946,12 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11869,12 +12961,12 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11884,12 +12976,12 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11899,12 +12991,12 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestTimerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11914,12 +13006,12 @@ func TestTimerVerboseEqual(t *testing.T) { func TestMyExtendableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11929,12 +13021,12 @@ func TestMyExtendableVerboseEqual(t *testing.T) { func TestOtherExtenableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11944,12 +13036,12 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { func TestNestedDefinitionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11959,12 +13051,12 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11974,12 +13066,12 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11989,12 +13081,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T func TestNestedScopeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12004,12 +13096,12 @@ func TestNestedScopeVerboseEqual(t *testing.T) { func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12019,12 +13111,12 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { func TestCustomContainerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12034,12 +13126,12 @@ func TestCustomContainerVerboseEqual(t *testing.T) { func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12049,12 +13141,12 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12064,12 +13156,12 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12079,12 +13171,12 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { func TestCustomNameNinStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12094,12 +13186,12 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12109,12 +13201,12 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12124,12 +13216,12 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestCustomNameEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12139,12 +13231,12 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { func TestNoExtensionsMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12154,12 +13246,12 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { func TestUnrecognizedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12169,12 +13261,12 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12184,12 +13276,12 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12199,12 +13291,12 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12214,12 +13306,12 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12229,12 +13321,102 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { func TestNodeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,6 +13871,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -13302,7 +14532,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13313,9 +14621,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13326,9 +14634,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13339,9 +14647,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13352,9 +14660,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13365,9 +14673,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13378,9 +14686,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13391,9 +14699,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13404,9 +14712,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13417,9 +14725,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13430,9 +14738,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13443,9 +14751,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13456,9 +14764,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13469,9 +14777,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13482,9 +14790,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13500,13 +14808,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13536,13 +14844,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13572,13 +14880,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13608,13 +14916,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13644,13 +14952,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13680,13 +14988,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13716,13 +15024,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13752,13 +15060,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13788,13 +15096,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13824,13 +15132,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13860,13 +15168,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13896,13 +15204,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13932,13 +15240,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13968,13 +15276,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14004,13 +15312,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14040,13 +15348,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14076,13 +15384,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14112,13 +15420,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14148,13 +15456,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14184,13 +15492,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14220,13 +15528,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14256,13 +15564,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14292,13 +15600,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14328,13 +15636,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14364,13 +15672,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14400,13 +15708,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14436,13 +15744,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14472,13 +15780,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14508,13 +15816,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14544,13 +15852,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14580,13 +15888,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14616,13 +15924,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14652,13 +15960,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14688,13 +15996,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14724,13 +16032,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14760,13 +16068,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14796,13 +16104,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14832,13 +16140,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14868,13 +16176,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14904,13 +16212,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14940,13 +16248,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14976,13 +16284,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15012,13 +16320,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15048,13 +16356,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15084,13 +16392,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15120,13 +16428,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15156,13 +16464,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15192,13 +16500,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15228,13 +16536,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15264,13 +16572,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15300,13 +16608,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15336,13 +16644,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15372,13 +16680,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15408,13 +16716,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15444,13 +16752,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15480,13 +16788,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15516,13 +16824,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15552,13 +16860,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15588,13 +16896,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15624,13 +16932,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15660,13 +16968,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15696,13 +17004,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15727,6 +17035,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -16285,6 +17809,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/both/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/t.go new file mode 100644 index 00000000..4112884a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/t.go @@ -0,0 +1,77 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) MarshalTo(data []byte) (n int, err error) { + return r.protoType().MarshalTo(data) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go index 7d3c7c6c..d6674605 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -99,7 +105,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -278,21 +286,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -301,21 +309,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -324,21 +332,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -347,21 +355,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -370,19 +378,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -391,19 +399,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -412,16 +420,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -430,16 +438,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -448,16 +456,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -466,16 +474,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -484,9 +492,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -495,9 +503,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -506,8 +514,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -516,8 +524,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -526,8 +534,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -536,7 +544,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -545,8 +553,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -555,8 +563,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -565,8 +573,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -575,15 +583,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -592,15 +600,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -609,9 +617,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -620,9 +628,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -631,9 +639,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -642,8 +650,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -652,8 +660,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -662,8 +670,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -672,9 +680,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -683,7 +691,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -692,8 +700,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -702,7 +710,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -719,7 +727,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -728,9 +736,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -739,9 +747,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -750,9 +758,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -761,9 +769,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -797,9 +805,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -808,9 +816,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -844,9 +852,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -855,9 +863,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -865,25 +873,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -891,25 +893,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -918,8 +914,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -930,7 +926,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -943,9 +939,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -954,21 +950,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1097,7 +1093,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1106,21 +1102,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1129,21 +1125,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1152,21 +1148,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1175,16 +1171,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1193,10 +1189,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1205,9 +1201,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1218,8 +1214,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1228,7 +1224,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1238,7 +1234,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1252,7 +1248,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1261,7 +1257,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1270,7 +1266,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1281,7 +1277,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1290,7 +1286,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1300,8 +1296,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1309,12 +1305,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/marshaler/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1322,7 +1373,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/marshaler/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1330,7 +1382,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/marshaler/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1338,7 +1391,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/marshaler/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1346,7 +1400,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/marshaler/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1354,7 +1409,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/marshaler/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1362,7 +1418,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/marshaler/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1370,7 +1427,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/marshaler/thetest.proto", } func init() { @@ -1436,6 +1494,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4756,19 +4820,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4836,19 +4902,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6457,6 +6525,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6643,393 +6946,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6123 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xff, 0x0e, 0x87, 0x94, 0xa8, 0x43, 0x89, 0xa2, 0x66, 0xb5, 0x32, 0x2d, 0xaf, 0xf7, 0x41, - 0xcb, 0xb2, 0xac, 0xd8, 0x7a, 0xad, 0xf6, 0x45, 0x27, 0x0e, 0xf8, 0x5a, 0x59, 0xfb, 0xd7, 0xeb, - 0x3f, 0x92, 0x12, 0x3b, 0x2d, 0x40, 0x70, 0xc9, 0x91, 0x44, 0x9b, 0x1a, 0xb2, 0x1c, 0xd2, 0xf6, - 0xe6, 0x43, 0x91, 0x26, 0x6d, 0x9a, 0xb4, 0xe8, 0x33, 0x2d, 0x9a, 0x77, 0x9c, 0x14, 0x69, 0x9c, - 0xb4, 0x69, 0x93, 0x36, 0x0d, 0x8a, 0xa0, 0x68, 0x0c, 0x14, 0x69, 0xb7, 0x5f, 0x0a, 0x37, 0x9f, - 0x8a, 0xa2, 0x30, 0x9a, 0x07, 0xd0, 0xb4, 0x4d, 0xdb, 0x04, 0x30, 0x90, 0x00, 0xc9, 0x87, 0xde, - 0xf7, 0xcc, 0xbd, 0x1c, 0x72, 0x46, 0x5e, 0x3b, 0xc9, 0x02, 0x5c, 0x91, 0xf7, 0x9c, 0xdf, 0x99, - 0x33, 0xe7, 0x75, 0xcf, 0xdc, 0x7b, 0x49, 0xf8, 0xdb, 0x65, 0xb8, 0x70, 0xd8, 0x6c, 0x1e, 0x36, - 0xac, 0xc5, 0x56, 0xbb, 0xd9, 0x69, 0xde, 0xea, 0x1e, 0x2c, 0xd6, 0x2c, 0xa7, 0xda, 0xae, 0xb7, - 0x3a, 0xcd, 0xf6, 0x02, 0x19, 0x33, 0xc6, 0x29, 0xc7, 0x02, 0xe7, 0xc8, 0x6c, 0xc2, 0xc4, 0x8d, - 0x7a, 0xc3, 0x2a, 0x0a, 0xc6, 0x5d, 0xab, 0x63, 0x5c, 0x83, 0xe8, 0x01, 0x1a, 0x4c, 0x6b, 0x17, - 0xf4, 0xb9, 0xc4, 0xca, 0xcc, 0x82, 0x02, 0x5a, 0x90, 0x11, 0x3b, 0x78, 0xd8, 0x24, 0x88, 0xcc, - 0xb7, 0xa3, 0x70, 0xda, 0x87, 0x6a, 0x18, 0x10, 0xb5, 0x2b, 0xc7, 0x58, 0xa2, 0x36, 0x37, 0x62, - 0x92, 0xf7, 0x46, 0x1a, 0x86, 0x5b, 0x95, 0xea, 0x33, 0x95, 0x43, 0x2b, 0x1d, 0x21, 0xc3, 0xfc, - 0xa3, 0x71, 0x0e, 0xa0, 0x66, 0xb5, 0x2c, 0xbb, 0x66, 0xd9, 0xd5, 0xdb, 0x69, 0x1d, 0x69, 0x31, - 0x62, 0x7a, 0x46, 0x8c, 0x37, 0xc1, 0x44, 0xab, 0x7b, 0xab, 0x51, 0xaf, 0x96, 0x3d, 0x6c, 0x80, - 0xd8, 0x62, 0x66, 0x8a, 0x12, 0x8a, 0x2e, 0xf3, 0x43, 0x30, 0xfe, 0x9c, 0x55, 0x79, 0xc6, 0xcb, - 0x9a, 0x20, 0xac, 0x49, 0x3c, 0xec, 0x61, 0x2c, 0xc0, 0xe8, 0xb1, 0xe5, 0x38, 0x48, 0x81, 0x72, - 0xe7, 0x76, 0xcb, 0x4a, 0x47, 0xc9, 0xdd, 0x5f, 0xe8, 0xb9, 0x7b, 0xf5, 0xce, 0x13, 0x0c, 0xb5, - 0x87, 0x40, 0x46, 0x0e, 0x46, 0x2c, 0xbb, 0x7b, 0x4c, 0x25, 0xc4, 0xfa, 0xd8, 0xaf, 0x84, 0x38, - 0x54, 0x29, 0x71, 0x0c, 0x63, 0x22, 0x86, 0x1d, 0xab, 0xfd, 0x6c, 0xbd, 0x6a, 0xa5, 0x87, 0x88, - 0x80, 0x87, 0x7a, 0x04, 0xec, 0x52, 0xba, 0x2a, 0x83, 0xe3, 0xd0, 0xad, 0x8c, 0x58, 0xcf, 0x77, - 0x2c, 0xdb, 0xa9, 0x37, 0xed, 0xf4, 0x30, 0x11, 0xf2, 0xa0, 0x8f, 0x17, 0xad, 0x46, 0x4d, 0x15, - 0xe1, 0xe2, 0x8c, 0x2b, 0x30, 0xdc, 0x6c, 0x75, 0xd0, 0x3b, 0x27, 0x1d, 0x47, 0xfe, 0x49, 0xac, - 0x9c, 0xf5, 0x0d, 0x84, 0x6d, 0xca, 0x63, 0x72, 0x66, 0x63, 0x1d, 0x52, 0x4e, 0xb3, 0xdb, 0xae, - 0x5a, 0xe5, 0x6a, 0xb3, 0x66, 0x95, 0xeb, 0xf6, 0x41, 0x33, 0x3d, 0x42, 0x04, 0x9c, 0xef, 0xbd, - 0x11, 0xc2, 0x58, 0x40, 0x7c, 0xeb, 0x88, 0xcd, 0x4c, 0x3a, 0xd2, 0x67, 0x63, 0x0a, 0x86, 0x9c, - 0xdb, 0x76, 0xa7, 0xf2, 0x7c, 0x7a, 0x94, 0x44, 0x08, 0xfb, 0x94, 0xf9, 0x41, 0x0c, 0xc6, 0xc3, - 0x84, 0xd8, 0x63, 0x10, 0x3b, 0xc0, 0x77, 0x89, 0x02, 0xec, 0x04, 0x36, 0xa0, 0x18, 0xd9, 0x88, - 0x43, 0xaf, 0xd1, 0x88, 0x39, 0x48, 0xd8, 0x96, 0xd3, 0xb1, 0x6a, 0x34, 0x22, 0xf4, 0x90, 0x31, - 0x05, 0x14, 0xd4, 0x1b, 0x52, 0xd1, 0xd7, 0x14, 0x52, 0x4f, 0xc2, 0xb8, 0x50, 0xa9, 0xdc, 0xae, - 0xd8, 0x87, 0x3c, 0x36, 0x17, 0x83, 0x34, 0x59, 0x28, 0x71, 0x9c, 0x89, 0x61, 0x66, 0xd2, 0x92, - 0x3e, 0x1b, 0x45, 0x80, 0xa6, 0x6d, 0x35, 0x0f, 0x50, 0x7a, 0x55, 0x1b, 0x28, 0x4e, 0xfc, 0xad, - 0xb4, 0x8d, 0x59, 0x7a, 0xac, 0xd4, 0xa4, 0xa3, 0xd5, 0x86, 0x71, 0xdd, 0x0d, 0xb5, 0xe1, 0x3e, - 0x91, 0xb2, 0x49, 0x93, 0xac, 0x27, 0xda, 0xf6, 0x21, 0xd9, 0xb6, 0x70, 0xdc, 0x23, 0x13, 0xd3, - 0x3b, 0x1b, 0x21, 0x4a, 0x2c, 0x04, 0xde, 0x99, 0xc9, 0x60, 0xf4, 0xc6, 0xc6, 0xda, 0xde, 0x8f, - 0xc6, 0x03, 0x20, 0x06, 0xca, 0x24, 0xac, 0x80, 0x54, 0xa1, 0x51, 0x3e, 0xb8, 0x85, 0xc6, 0xa6, - 0xaf, 0x41, 0x52, 0x36, 0x8f, 0x31, 0x09, 0x31, 0xa7, 0x53, 0x69, 0x77, 0x48, 0x14, 0xc6, 0x4c, - 0xfa, 0xc1, 0x48, 0x81, 0x8e, 0x8a, 0x0c, 0xa9, 0x72, 0x31, 0x13, 0xbf, 0x9d, 0xbe, 0x0a, 0x63, - 0xd2, 0xe5, 0xc3, 0x02, 0x33, 0x1f, 0x1c, 0x82, 0x49, 0xbf, 0x98, 0xf3, 0x0d, 0x7f, 0x94, 0x3e, - 0x28, 0x02, 0x6e, 0x59, 0x6d, 0x14, 0x77, 0x58, 0x02, 0xfb, 0x84, 0x22, 0x2a, 0xd6, 0xa8, 0xdc, - 0xb2, 0x1a, 0x28, 0x9a, 0xb4, 0xb9, 0xe4, 0xca, 0x9b, 0x42, 0x45, 0xf5, 0xc2, 0x06, 0x86, 0x98, - 0x14, 0x69, 0x3c, 0x0e, 0x51, 0x56, 0xe2, 0xb0, 0x84, 0xf9, 0x70, 0x12, 0x70, 0x2c, 0x9a, 0x04, - 0x67, 0xdc, 0x07, 0x23, 0xf8, 0x2f, 0xb5, 0xed, 0x10, 0xd1, 0x39, 0x8e, 0x07, 0xb0, 0x5d, 0x8d, - 0x69, 0x88, 0x93, 0x30, 0xab, 0x59, 0x7c, 0x6a, 0x10, 0x9f, 0xb1, 0x63, 0x6a, 0xd6, 0x41, 0xa5, - 0xdb, 0xe8, 0x94, 0x9f, 0xad, 0x34, 0xba, 0x16, 0x09, 0x18, 0xe4, 0x18, 0x36, 0xf8, 0x36, 0x3c, - 0x66, 0x9c, 0x87, 0x04, 0x8d, 0xca, 0x3a, 0xc2, 0x3c, 0x4f, 0xaa, 0x4f, 0xcc, 0xa4, 0x81, 0xba, - 0x8e, 0x47, 0xf0, 0xe5, 0x9f, 0x76, 0x50, 0x2e, 0x30, 0xd7, 0x92, 0x4b, 0xe0, 0x01, 0x72, 0xf9, - 0xab, 0x6a, 0xe1, 0xbb, 0xdf, 0xff, 0xf6, 0xd4, 0x58, 0xcc, 0x7c, 0x39, 0x02, 0x51, 0x92, 0x6f, - 0xe3, 0x90, 0xd8, 0x7b, 0x6a, 0xa7, 0x54, 0x2e, 0x6e, 0xef, 0xe7, 0x37, 0x4a, 0x29, 0xcd, 0x48, - 0x02, 0x90, 0x81, 0x1b, 0x1b, 0xdb, 0xb9, 0xbd, 0x54, 0x44, 0x7c, 0x5e, 0xdf, 0xda, 0xbb, 0xb2, - 0x9a, 0xd2, 0x05, 0x60, 0x9f, 0x0e, 0x44, 0xbd, 0x0c, 0x97, 0x56, 0x52, 0x31, 0x14, 0x09, 0xa3, - 0x54, 0xc0, 0xfa, 0x93, 0xa5, 0x22, 0xe2, 0x18, 0x92, 0x47, 0x10, 0xcf, 0xb0, 0x31, 0x06, 0x23, - 0x64, 0x24, 0xbf, 0xbd, 0xbd, 0x91, 0x8a, 0x0b, 0x99, 0xbb, 0x7b, 0xe6, 0xfa, 0xd6, 0x5a, 0x6a, - 0x44, 0xc8, 0x5c, 0x33, 0xb7, 0xf7, 0x77, 0x52, 0x20, 0x24, 0x6c, 0x96, 0x76, 0x77, 0x73, 0x6b, - 0xa5, 0x54, 0x42, 0x70, 0xe4, 0x9f, 0xda, 0x2b, 0xed, 0xa6, 0x46, 0x25, 0xb5, 0xd0, 0x25, 0xc6, - 0xc4, 0x25, 0x4a, 0x5b, 0xfb, 0x9b, 0xa9, 0xa4, 0x31, 0x01, 0x63, 0xf4, 0x12, 0x5c, 0x89, 0x71, - 0x65, 0x08, 0x69, 0x9a, 0x72, 0x15, 0xa1, 0x52, 0x26, 0xa4, 0x01, 0xc4, 0x61, 0x64, 0x0a, 0x10, - 0x23, 0xd1, 0x85, 0xa2, 0x38, 0xb9, 0x91, 0xcb, 0x97, 0x36, 0xca, 0xdb, 0x3b, 0x7b, 0xeb, 0xdb, - 0x5b, 0xb9, 0x0d, 0x64, 0x3b, 0x31, 0x66, 0x96, 0xfe, 0xff, 0xfe, 0xba, 0x59, 0x2a, 0x22, 0xfb, - 0x79, 0xc6, 0x76, 0x4a, 0xb9, 0x3d, 0x34, 0xa6, 0x67, 0xe6, 0x61, 0xd2, 0xaf, 0xce, 0xf8, 0x65, - 0x46, 0xe6, 0x53, 0x1a, 0x9c, 0xf6, 0x29, 0x99, 0xbe, 0x59, 0xf4, 0x56, 0x88, 0xd1, 0x48, 0xa3, - 0x93, 0xc8, 0xc3, 0xbe, 0xb5, 0x97, 0xc4, 0x5d, 0xcf, 0x44, 0x42, 0x70, 0xde, 0x89, 0x54, 0xef, - 0x33, 0x91, 0x62, 0x11, 0x3d, 0xe1, 0xf4, 0x1e, 0x0d, 0xd2, 0xfd, 0x64, 0x07, 0xe4, 0x7b, 0x44, - 0xca, 0xf7, 0xc7, 0x54, 0x05, 0x2e, 0xf6, 0xbf, 0x87, 0x1e, 0x2d, 0x3e, 0xa3, 0xc1, 0x94, 0x7f, - 0xbf, 0xe1, 0xab, 0xc3, 0xe3, 0x30, 0x74, 0x6c, 0x75, 0x8e, 0x9a, 0x7c, 0xce, 0x9d, 0xf5, 0xa9, - 0xe4, 0x98, 0xac, 0xda, 0x8a, 0xa1, 0xbc, 0x53, 0x81, 0xde, 0xaf, 0x69, 0xa0, 0xda, 0xf4, 0x68, - 0xfa, 0xfe, 0x08, 0x9c, 0xf1, 0x15, 0xee, 0xab, 0xe8, 0xfd, 0x00, 0x75, 0xbb, 0xd5, 0xed, 0xd0, - 0x79, 0x95, 0x96, 0x99, 0x11, 0x32, 0x42, 0x52, 0x18, 0x97, 0x90, 0x6e, 0x47, 0xd0, 0x75, 0x42, - 0x07, 0x3a, 0x44, 0x18, 0xae, 0xb9, 0x8a, 0x46, 0x89, 0xa2, 0xe7, 0xfa, 0xdc, 0x69, 0xcf, 0x94, - 0xb5, 0x04, 0xa9, 0x6a, 0xa3, 0x6e, 0xd9, 0x9d, 0xb2, 0xd3, 0x69, 0x5b, 0x95, 0xe3, 0xba, 0x7d, - 0x48, 0xea, 0x68, 0x3c, 0x1b, 0x3b, 0xa8, 0x34, 0x1c, 0xcb, 0x1c, 0xa7, 0xe4, 0x5d, 0x4e, 0xc5, - 0x08, 0x32, 0x59, 0xb4, 0x3d, 0x88, 0x21, 0x09, 0x41, 0xc9, 0x02, 0x91, 0xf9, 0xfa, 0x30, 0x24, - 0x3c, 0xdd, 0x99, 0x71, 0x11, 0x46, 0x9f, 0xae, 0x3c, 0x5b, 0x29, 0xf3, 0x8e, 0x9b, 0x5a, 0x22, - 0x81, 0xc7, 0x76, 0x58, 0xd7, 0xbd, 0x04, 0x93, 0x84, 0x05, 0xdd, 0x23, 0xba, 0x50, 0xb5, 0x51, - 0x71, 0x1c, 0x62, 0xb4, 0x38, 0x61, 0x35, 0x30, 0x6d, 0x1b, 0x93, 0x0a, 0x9c, 0x62, 0x5c, 0x86, - 0xd3, 0x04, 0x71, 0x8c, 0x0a, 0x6f, 0xbd, 0xd5, 0xb0, 0xca, 0xf8, 0x19, 0xc0, 0x21, 0xf5, 0x54, - 0x68, 0x36, 0x81, 0x39, 0x36, 0x19, 0x03, 0xd6, 0xc8, 0x31, 0xd6, 0xe0, 0x7e, 0x02, 0x3b, 0xb4, - 0x6c, 0xab, 0x5d, 0xe9, 0x58, 0x65, 0xeb, 0x17, 0xba, 0x88, 0xb7, 0x5c, 0xb1, 0x6b, 0xe5, 0xa3, - 0x8a, 0x73, 0x94, 0x9e, 0xf4, 0x0a, 0xb8, 0x17, 0xf3, 0xae, 0x31, 0xd6, 0x12, 0xe1, 0xcc, 0xd9, - 0xb5, 0x27, 0x10, 0x9f, 0x91, 0x85, 0x29, 0x22, 0x08, 0x19, 0x05, 0xdd, 0x73, 0xb9, 0x7a, 0x64, - 0x55, 0x9f, 0x29, 0x77, 0x3b, 0x07, 0xd7, 0xd2, 0xf7, 0x79, 0x25, 0x10, 0x25, 0x77, 0x09, 0x4f, - 0x01, 0xb3, 0xec, 0x23, 0x0e, 0x63, 0x17, 0x46, 0xb1, 0x3f, 0x8e, 0xeb, 0xef, 0x44, 0x6a, 0x37, - 0xdb, 0x64, 0x8e, 0x48, 0xfa, 0x24, 0xb7, 0xc7, 0x88, 0x0b, 0xdb, 0x0c, 0xb0, 0x89, 0xfa, 0xd3, - 0x6c, 0x6c, 0x77, 0xa7, 0x54, 0x2a, 0x9a, 0x09, 0x2e, 0xe5, 0x46, 0xb3, 0x8d, 0x63, 0xea, 0xb0, - 0x29, 0x6c, 0x9c, 0xa0, 0x31, 0x75, 0xd8, 0xe4, 0x16, 0x46, 0xf6, 0xaa, 0x56, 0xe9, 0x6d, 0xa3, - 0x67, 0x17, 0xd6, 0xac, 0x3b, 0xe9, 0x94, 0x64, 0xaf, 0x6a, 0x75, 0x8d, 0x32, 0xb0, 0x30, 0x77, - 0x50, 0x4a, 0x9c, 0x71, 0xed, 0xe5, 0x05, 0x4e, 0xf4, 0xdc, 0xa5, 0x0a, 0x45, 0x57, 0x6c, 0xdd, - 0xee, 0x05, 0x1a, 0xd2, 0x15, 0x5b, 0xb7, 0x55, 0xd8, 0x83, 0xe4, 0x01, 0xac, 0x6d, 0x55, 0x91, - 0xc9, 0x6b, 0xe9, 0x7b, 0xbc, 0xdc, 0x1e, 0x82, 0xb1, 0x88, 0x02, 0xb9, 0x5a, 0xb6, 0xec, 0xca, - 0x2d, 0xe4, 0xfb, 0x4a, 0x1b, 0xbd, 0x71, 0xd2, 0xe7, 0xbd, 0xcc, 0xc9, 0x6a, 0xb5, 0x44, 0xa8, - 0x39, 0x42, 0x34, 0xe6, 0x61, 0xa2, 0x79, 0xeb, 0xe9, 0x2a, 0x0d, 0xae, 0x32, 0x92, 0x73, 0x50, - 0x7f, 0x3e, 0x3d, 0x43, 0xcc, 0x34, 0x8e, 0x09, 0x24, 0xb4, 0x76, 0xc8, 0xb0, 0xf1, 0x30, 0x12, - 0xee, 0x1c, 0x55, 0xda, 0x2d, 0x32, 0x49, 0x3b, 0xc8, 0xa8, 0x56, 0xfa, 0x41, 0xca, 0x4a, 0xc7, - 0xb7, 0xf8, 0xb0, 0x51, 0x82, 0xf3, 0xf8, 0xe6, 0xed, 0x8a, 0xdd, 0x2c, 0x77, 0x1d, 0xab, 0xec, - 0xaa, 0x28, 0x7c, 0x31, 0x8b, 0xd5, 0x32, 0xcf, 0x72, 0xb6, 0x7d, 0x07, 0x15, 0x33, 0xce, 0xc4, - 0xdd, 0xf3, 0x24, 0x4c, 0x76, 0xed, 0xba, 0x8d, 0x42, 0x1c, 0x51, 0x30, 0x98, 0x26, 0x6c, 0xfa, - 0xdf, 0x87, 0xfb, 0x34, 0xdd, 0xfb, 0x5e, 0x6e, 0x1a, 0x24, 0xe6, 0xe9, 0x6e, 0xef, 0x60, 0x26, - 0x0b, 0xa3, 0xde, 0xd8, 0x31, 0x46, 0x80, 0x46, 0x0f, 0x9a, 0xdd, 0xd0, 0x8c, 0x5a, 0xd8, 0x2e, - 0xe2, 0xb9, 0xf0, 0x1d, 0x25, 0x34, 0xb1, 0xa1, 0x39, 0x79, 0x63, 0x7d, 0xaf, 0x54, 0x36, 0xf7, - 0xb7, 0xf6, 0xd6, 0x37, 0x4b, 0x29, 0x7d, 0x7e, 0x24, 0xfe, 0x9d, 0xe1, 0xd4, 0xbb, 0xd0, 0xbf, - 0x48, 0xe6, 0x6b, 0x11, 0x48, 0xca, 0x7d, 0xb0, 0xf1, 0x66, 0xb8, 0x87, 0x3f, 0xb4, 0x3a, 0x56, - 0xa7, 0xfc, 0x5c, 0xbd, 0x4d, 0xc2, 0xf9, 0xb8, 0x42, 0x3b, 0x49, 0xe1, 0x89, 0x49, 0xc6, 0x85, - 0x1e, 0xef, 0xdf, 0x8e, 0x78, 0x6e, 0x10, 0x16, 0x63, 0x03, 0xce, 0x23, 0x93, 0xa1, 0x5e, 0xd3, - 0xae, 0x55, 0xda, 0xb5, 0xb2, 0xbb, 0x5c, 0x50, 0xae, 0x54, 0x51, 0x1c, 0x38, 0x4d, 0x3a, 0x93, - 0x08, 0x29, 0x67, 0xed, 0xe6, 0x2e, 0x63, 0x76, 0x4b, 0x6c, 0x8e, 0xb1, 0x2a, 0x51, 0xa3, 0xf7, - 0x8b, 0x1a, 0xd4, 0x7b, 0x1d, 0x57, 0x5a, 0x28, 0x6c, 0x3a, 0xed, 0xdb, 0xa4, 0x7b, 0x8b, 0x9b, - 0x71, 0x34, 0x50, 0xc2, 0x9f, 0xdf, 0x38, 0x1f, 0x78, 0xed, 0xf8, 0xaf, 0x3a, 0x8c, 0x7a, 0x3b, - 0x38, 0xdc, 0x10, 0x57, 0x49, 0x99, 0xd7, 0x48, 0x15, 0x78, 0x60, 0x60, 0xbf, 0xb7, 0x50, 0xc0, - 0xf5, 0x3f, 0x3b, 0x44, 0xfb, 0x2a, 0x93, 0x22, 0xf1, 0xdc, 0x8b, 0x63, 0xcd, 0xa2, 0xdd, 0x7a, - 0xdc, 0x64, 0x9f, 0x50, 0xb1, 0x1b, 0x7a, 0xda, 0x21, 0xb2, 0x87, 0x88, 0xec, 0x99, 0xc1, 0xb2, - 0x6f, 0xee, 0x12, 0xe1, 0x23, 0x37, 0x77, 0xcb, 0x5b, 0xdb, 0xe6, 0x66, 0x6e, 0xc3, 0x64, 0x70, - 0xe3, 0x5e, 0x88, 0x36, 0x2a, 0xef, 0xbc, 0x2d, 0xcf, 0x14, 0x64, 0x28, 0xac, 0xe1, 0x91, 0x04, - 0xbc, 0xe4, 0x21, 0xd7, 0x67, 0x32, 0xf4, 0x06, 0x86, 0xfe, 0x22, 0xc4, 0x88, 0xbd, 0x0c, 0x00, - 0x66, 0xb1, 0xd4, 0x29, 0x23, 0x0e, 0xd1, 0xc2, 0xb6, 0x89, 0xc3, 0x1f, 0xc5, 0x3b, 0x1d, 0x2d, - 0xef, 0xac, 0x97, 0x0a, 0x28, 0x03, 0x32, 0x97, 0x61, 0x88, 0x1a, 0x01, 0xa7, 0x86, 0x30, 0x03, - 0x02, 0xd1, 0x8f, 0x4c, 0x86, 0xc6, 0xa9, 0xfb, 0x9b, 0xf9, 0x92, 0x99, 0x8a, 0x78, 0xdd, 0xfb, - 0x15, 0x0d, 0x12, 0x9e, 0x86, 0x0a, 0x4f, 0xe5, 0x95, 0x46, 0xa3, 0xf9, 0x5c, 0xb9, 0xd2, 0xa8, - 0xa3, 0x0a, 0x45, 0xfd, 0x03, 0x64, 0x28, 0x87, 0x47, 0xc2, 0xda, 0xef, 0x27, 0x12, 0x9b, 0x1f, - 0xd7, 0x20, 0xa5, 0x36, 0x63, 0x8a, 0x82, 0xda, 0x4f, 0x55, 0xc1, 0x8f, 0x6a, 0x90, 0x94, 0x3b, - 0x30, 0x45, 0xbd, 0x8b, 0x3f, 0x55, 0xf5, 0x3e, 0xa2, 0xc1, 0x98, 0xd4, 0x77, 0xfd, 0x4c, 0x69, - 0xf7, 0x61, 0x1d, 0x4e, 0xfb, 0xe0, 0x50, 0x01, 0xa2, 0x0d, 0x2a, 0xed, 0x99, 0x1f, 0x0d, 0x73, - 0xad, 0x05, 0x3c, 0xff, 0xed, 0x54, 0xda, 0x1d, 0xd6, 0xcf, 0xa2, 0xf9, 0xb2, 0x5e, 0x43, 0x45, - 0xb5, 0x7e, 0x50, 0x47, 0xed, 0x1b, 0x7d, 0x62, 0xa1, 0x5d, 0xeb, 0xb8, 0x3b, 0x4e, 0x1f, 0x8f, - 0x1f, 0x01, 0xa3, 0xd5, 0x74, 0xea, 0x9d, 0xfa, 0xb3, 0x78, 0x79, 0x8e, 0x3f, 0x48, 0xe3, 0x2e, - 0x36, 0x6a, 0xa6, 0x38, 0x65, 0xdd, 0xee, 0x08, 0x6e, 0xdb, 0x3a, 0xac, 0x28, 0xdc, 0xb8, 0x0c, - 0xe9, 0x66, 0x8a, 0x53, 0x04, 0x37, 0x6a, 0x34, 0x6b, 0xcd, 0x2e, 0x6e, 0x08, 0x28, 0x1f, 0xae, - 0x7a, 0x9a, 0x99, 0xa0, 0x63, 0x82, 0x85, 0x75, 0x6c, 0xee, 0x13, 0xfc, 0xa8, 0x99, 0xa0, 0x63, - 0x94, 0xe5, 0x21, 0x18, 0xaf, 0x1c, 0x1e, 0xb6, 0xb1, 0x70, 0x2e, 0x88, 0xb6, 0xa1, 0x49, 0x31, - 0x4c, 0x18, 0xa7, 0x6f, 0x42, 0x9c, 0xdb, 0x01, 0x4f, 0x2c, 0xd8, 0x12, 0x68, 0xce, 0x27, 0xeb, - 0x28, 0x11, 0xfc, 0x50, 0x6f, 0x73, 0x22, 0xba, 0x68, 0xdd, 0x29, 0xbb, 0x0b, 0x7a, 0x11, 0x44, - 0x8f, 0x9b, 0x89, 0xba, 0x23, 0x56, 0x70, 0x32, 0x9f, 0x41, 0xd3, 0xab, 0xbc, 0x20, 0x69, 0x14, - 0x21, 0xde, 0x68, 0xa2, 0xf8, 0xc0, 0x08, 0xba, 0x1a, 0x3e, 0x17, 0xb0, 0x86, 0xb9, 0xb0, 0xc1, - 0xf8, 0x4d, 0x81, 0x9c, 0xfe, 0x47, 0x0d, 0xe2, 0x7c, 0x18, 0x4d, 0x14, 0xd1, 0x56, 0xa5, 0x73, - 0x44, 0xc4, 0xc5, 0xf2, 0x91, 0x94, 0x66, 0x92, 0xcf, 0x78, 0x1c, 0x75, 0x33, 0x36, 0x09, 0x01, - 0x36, 0x8e, 0x3f, 0x63, 0xbf, 0x36, 0xac, 0x4a, 0x8d, 0x34, 0xb8, 0xcd, 0xe3, 0x63, 0xe4, 0x49, - 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, 0x30, 0x5e, 0x17, 0xef, 0xb4, 0x2b, 0xf5, 0x86, 0xc4, 0x1b, - 0x25, 0xbc, 0x29, 0x4e, 0x10, 0xcc, 0x59, 0xb8, 0x97, 0xcb, 0xad, 0x59, 0x9d, 0x0a, 0x6a, 0x9e, - 0x6b, 0x2e, 0x68, 0x88, 0xac, 0x76, 0xdd, 0xc3, 0x18, 0x8a, 0x8c, 0xce, 0xb1, 0xf9, 0x27, 0x51, - 0x23, 0xdb, 0x3c, 0x56, 0x2d, 0x91, 0x4f, 0x29, 0xcf, 0x5d, 0xce, 0x13, 0xda, 0x3b, 0xc0, 0x6d, - 0x2a, 0x3e, 0x15, 0xd1, 0xd7, 0x76, 0xf2, 0x9f, 0x8b, 0x4c, 0xaf, 0x51, 0xdc, 0x0e, 0xb7, 0xa0, - 0x69, 0x1d, 0x34, 0xac, 0x2a, 0xb6, 0x0e, 0x7c, 0xf2, 0x01, 0x78, 0xf4, 0xb0, 0xde, 0x39, 0xea, - 0xde, 0x5a, 0x40, 0x57, 0x58, 0x3c, 0x6c, 0x1e, 0x36, 0xdd, 0xed, 0x0c, 0xfc, 0x89, 0x7c, 0x20, - 0xef, 0xd8, 0x96, 0xc6, 0x88, 0x18, 0x9d, 0x0e, 0xdc, 0xff, 0xc8, 0x6e, 0xc1, 0x69, 0xc6, 0x5c, - 0x26, 0x6b, 0xaa, 0xb4, 0x05, 0x35, 0x06, 0x3e, 0x90, 0xa7, 0xbf, 0xf8, 0x6d, 0x32, 0x25, 0x98, - 0x13, 0x0c, 0x8a, 0x69, 0xb4, 0x49, 0xcd, 0x9a, 0x70, 0x46, 0x92, 0x47, 0x63, 0x18, 0x3d, 0x72, - 0x0f, 0x96, 0xf8, 0x35, 0x26, 0xf1, 0xb4, 0x47, 0xe2, 0x2e, 0x83, 0x66, 0x0b, 0x30, 0x76, 0x12, - 0x59, 0x7f, 0xc7, 0x64, 0x8d, 0x5a, 0x5e, 0x21, 0x6b, 0x30, 0x4e, 0x84, 0x54, 0xbb, 0x4e, 0xa7, - 0x79, 0x4c, 0x0a, 0xc4, 0x60, 0x31, 0x7f, 0xff, 0x6d, 0x1a, 0x54, 0x49, 0x0c, 0x2b, 0x08, 0x54, - 0xf6, 0x6d, 0x30, 0x89, 0x47, 0x48, 0x0e, 0x7a, 0xa5, 0x05, 0x2f, 0x21, 0xa4, 0xff, 0xe9, 0x3d, - 0x34, 0xf6, 0x4e, 0x0b, 0x01, 0x1e, 0xb9, 0x1e, 0x4f, 0x1c, 0x5a, 0x1d, 0x54, 0xdb, 0xd0, 0xf3, - 0x5f, 0xa3, 0x61, 0x0c, 0xdc, 0x63, 0x48, 0x7f, 0xe8, 0xbb, 0xb2, 0x27, 0xd6, 0x28, 0x32, 0xd7, - 0x68, 0x64, 0xf7, 0xe1, 0x1e, 0x1f, 0xcf, 0x86, 0x90, 0xf9, 0x61, 0x26, 0x73, 0xb2, 0xc7, 0xbb, - 0x58, 0xec, 0x0e, 0xf0, 0x71, 0xe1, 0x8f, 0x10, 0x32, 0x3f, 0xc2, 0x64, 0x1a, 0x0c, 0xcb, 0xdd, - 0x82, 0x25, 0xde, 0x84, 0x09, 0xf4, 0xa4, 0x7e, 0xab, 0xe9, 0xb0, 0xe7, 0xde, 0x10, 0xe2, 0x3e, - 0xca, 0xc4, 0x8d, 0x33, 0x20, 0x79, 0x0a, 0xc6, 0xb2, 0xae, 0x43, 0xfc, 0x00, 0x3d, 0x00, 0x85, - 0x10, 0xf1, 0x31, 0x26, 0x62, 0x18, 0xf3, 0x63, 0x68, 0x0e, 0x46, 0x0f, 0x9b, 0xac, 0x0c, 0x07, - 0xc3, 0x3f, 0xce, 0xe0, 0x09, 0x8e, 0x61, 0x22, 0x5a, 0xcd, 0x56, 0xb7, 0x81, 0x6b, 0x74, 0xb0, - 0x88, 0x4f, 0x70, 0x11, 0x1c, 0xc3, 0x44, 0x9c, 0xc0, 0xac, 0x2f, 0x70, 0x11, 0x8e, 0xc7, 0x9e, - 0x6f, 0xc5, 0x6b, 0xbd, 0x8d, 0xdb, 0x4d, 0x3b, 0x8c, 0x12, 0x9f, 0x64, 0x12, 0x80, 0x41, 0xb0, - 0x80, 0xc7, 0x60, 0x24, 0xac, 0x23, 0x3e, 0xcd, 0xe0, 0x71, 0x8b, 0x7b, 0x00, 0xe5, 0x19, 0x2f, - 0x32, 0x78, 0x6f, 0x25, 0x58, 0xc4, 0x1f, 0x31, 0x11, 0x49, 0x0f, 0x8c, 0xdd, 0x46, 0xc7, 0x72, - 0x3a, 0xe8, 0x51, 0x3d, 0x84, 0x90, 0xcf, 0xf0, 0xdb, 0x60, 0x10, 0x66, 0xca, 0x5b, 0x96, 0x5d, - 0x3d, 0x0a, 0x27, 0xe1, 0x45, 0x6e, 0x4a, 0x8e, 0xc1, 0x22, 0x50, 0xe5, 0x39, 0xae, 0xb4, 0xd1, - 0xc3, 0x75, 0x23, 0x94, 0x3b, 0x3e, 0xcb, 0x64, 0x8c, 0x0a, 0x10, 0xb3, 0x48, 0xd7, 0x3e, 0x89, - 0x98, 0xcf, 0x71, 0x8b, 0x78, 0x60, 0x2c, 0xf5, 0xd0, 0x93, 0x29, 0xee, 0x24, 0x4e, 0x22, 0xed, - 0x8f, 0x79, 0xea, 0x51, 0xec, 0xa6, 0x57, 0x22, 0xf2, 0xb4, 0x83, 0x1e, 0xc1, 0xc3, 0x88, 0xf9, - 0x13, 0xee, 0x69, 0x02, 0xc0, 0xe0, 0xa7, 0xe0, 0x5e, 0xdf, 0x52, 0x1f, 0x42, 0xd8, 0xe7, 0x99, - 0xb0, 0x29, 0x9f, 0x72, 0xcf, 0x4a, 0xc2, 0x49, 0x45, 0xfe, 0x29, 0x2f, 0x09, 0x96, 0x22, 0x6b, - 0x07, 0xb7, 0xb1, 0x4e, 0xe5, 0xe0, 0x64, 0x56, 0xfb, 0x33, 0x6e, 0x35, 0x8a, 0x95, 0xac, 0xb6, - 0x07, 0x53, 0x4c, 0xe2, 0xc9, 0xfc, 0xfa, 0x05, 0x5e, 0x58, 0x29, 0x7a, 0x5f, 0xf6, 0xee, 0xcf, - 0xc1, 0xb4, 0x30, 0x27, 0xef, 0xc0, 0x9c, 0x32, 0x5e, 0x18, 0x08, 0x96, 0xfc, 0x45, 0x26, 0x99, - 0x57, 0x7c, 0xd1, 0xc2, 0x39, 0x9b, 0x95, 0x16, 0x16, 0xfe, 0x24, 0xa4, 0xb9, 0xf0, 0xae, 0x8d, - 0x1a, 0xfc, 0xe6, 0xa1, 0x8d, 0xdc, 0x58, 0x0b, 0x21, 0xfa, 0xcf, 0x15, 0x57, 0xed, 0x7b, 0xe0, - 0x58, 0xf2, 0x3a, 0xa4, 0x44, 0xbf, 0x51, 0xae, 0x1f, 0xb7, 0x9a, 0xa8, 0xb5, 0x1c, 0x2c, 0xf1, - 0x2f, 0xb8, 0xa7, 0x04, 0x6e, 0x9d, 0xc0, 0xb2, 0x25, 0x48, 0x92, 0x8f, 0x61, 0x43, 0xf2, 0x4b, - 0x4c, 0xd0, 0x98, 0x8b, 0x62, 0x85, 0x03, 0x75, 0x4a, 0xa8, 0xe7, 0x0d, 0x53, 0xff, 0xfe, 0x92, - 0x17, 0x0e, 0x06, 0xa1, 0xd1, 0x37, 0xae, 0xcc, 0xc4, 0x46, 0xd0, 0xf6, 0x6b, 0xfa, 0x97, 0x5e, - 0x65, 0x39, 0x2b, 0x4f, 0xc4, 0xd9, 0x0d, 0x6c, 0x1e, 0x79, 0xba, 0x0c, 0x16, 0xf6, 0x9e, 0x57, - 0x85, 0x85, 0xa4, 0xd9, 0x32, 0x7b, 0x03, 0xc6, 0xa4, 0xa9, 0x32, 0x58, 0xd4, 0x2f, 0x33, 0x51, - 0xa3, 0xde, 0x99, 0x32, 0x7b, 0x19, 0xa2, 0x78, 0xda, 0x0b, 0x86, 0xff, 0x0a, 0x83, 0x13, 0xf6, - 0xec, 0x5b, 0x20, 0xce, 0xa7, 0xbb, 0x60, 0xe8, 0x7b, 0x19, 0x54, 0x40, 0x30, 0x9c, 0x4f, 0x75, - 0xc1, 0xf0, 0x5f, 0xe5, 0x70, 0x0e, 0xc1, 0xf0, 0xf0, 0x26, 0x7c, 0xe9, 0xd7, 0xa3, 0xac, 0x5c, - 0x71, 0xdb, 0xe1, 0x3d, 0x1f, 0x3a, 0xc7, 0x05, 0xa3, 0xdf, 0xcf, 0x2e, 0xce, 0x11, 0xd9, 0xab, - 0x10, 0x0b, 0x69, 0xf0, 0xdf, 0x60, 0x50, 0xca, 0x8f, 0x66, 0x90, 0x84, 0x67, 0x5e, 0x0b, 0x86, - 0xff, 0x26, 0x83, 0x7b, 0x51, 0x58, 0x75, 0x36, 0xaf, 0x05, 0x0b, 0xf8, 0x2d, 0xae, 0x3a, 0x43, - 0x60, 0xb3, 0xf1, 0x29, 0x2d, 0x18, 0xfd, 0xdb, 0xdc, 0xea, 0x1c, 0x82, 0xb2, 0x69, 0x44, 0x94, - 0xa9, 0x60, 0xfc, 0xef, 0x30, 0xbc, 0x8b, 0xc1, 0x16, 0xf0, 0x94, 0xc9, 0x60, 0x11, 0xbf, 0xcb, - 0x2d, 0xe0, 0x41, 0xe1, 0x34, 0x52, 0xa7, 0xbe, 0x60, 0x49, 0x1f, 0xe0, 0x69, 0xa4, 0xcc, 0x7c, - 0xd8, 0x9b, 0xa4, 0x5a, 0x04, 0x8b, 0xf8, 0x3d, 0xee, 0x4d, 0xc2, 0x8f, 0xd5, 0x50, 0xe7, 0x92, - 0x60, 0x19, 0x7f, 0xc0, 0xd5, 0x50, 0xa6, 0x12, 0x34, 0x33, 0x19, 0xbd, 0xf3, 0x48, 0xb0, 0xbc, - 0x0f, 0x32, 0x79, 0x13, 0x3d, 0xd3, 0x48, 0xf6, 0xed, 0x30, 0xe5, 0x3f, 0x87, 0x04, 0x4b, 0xfd, - 0xd0, 0xab, 0x4a, 0xd7, 0xef, 0x9d, 0x42, 0xd0, 0x94, 0x37, 0xe9, 0x37, 0x7f, 0x04, 0x8b, 0xfd, - 0xf0, 0xab, 0xf2, 0x83, 0x9d, 0x77, 0xfa, 0x40, 0x1d, 0x1a, 0xb8, 0xa5, 0x3b, 0x58, 0xd6, 0x47, - 0x99, 0x2c, 0x0f, 0x08, 0xa7, 0x06, 0xab, 0xdc, 0xc1, 0xf8, 0x8f, 0xf1, 0xd4, 0x60, 0x08, 0x04, - 0x8e, 0xdb, 0xdd, 0x46, 0x03, 0x07, 0x87, 0x31, 0xf8, 0x48, 0x43, 0xfa, 0x3f, 0x7e, 0xc4, 0x12, - 0x83, 0x03, 0x50, 0x0d, 0x8d, 0x59, 0xc7, 0xb7, 0x90, 0x0d, 0x02, 0x90, 0xff, 0xf9, 0x23, 0x5e, - 0x10, 0x30, 0x37, 0xca, 0x27, 0xa0, 0x0f, 0x8d, 0x64, 0x0d, 0x3b, 0x00, 0xfb, 0x5f, 0x3f, 0x62, - 0xdb, 0xac, 0x2e, 0xc4, 0x15, 0x40, 0x37, 0x6d, 0x07, 0x0b, 0xf8, 0xae, 0x2c, 0x80, 0x3c, 0x68, - 0x5e, 0x87, 0x61, 0x7c, 0xb2, 0xa3, 0x53, 0x39, 0x0c, 0x42, 0xff, 0x37, 0x43, 0x73, 0x7e, 0x6c, - 0xb0, 0xe3, 0x66, 0xdb, 0x42, 0x6f, 0x9d, 0x20, 0xec, 0xff, 0x30, 0xac, 0x00, 0x60, 0x70, 0xb5, - 0xe2, 0x74, 0xc2, 0xdc, 0xf7, 0xff, 0x72, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xfb, 0x67, 0xac, 0xdb, - 0x41, 0xd8, 0xef, 0x71, 0xa5, 0x19, 0x3f, 0x2a, 0x80, 0x23, 0xf8, 0x2d, 0x3d, 0x7a, 0x10, 0x00, - 0xfe, 0x3e, 0x03, 0xbb, 0x88, 0xfc, 0x45, 0xff, 0xa5, 0x1d, 0x58, 0x6b, 0xae, 0x35, 0xe9, 0xa2, - 0x0e, 0x7c, 0xbe, 0x0e, 0xe7, 0x10, 0x0f, 0x9a, 0x5f, 0x17, 0x45, 0x2e, 0x2e, 0x76, 0x8e, 0x2c, - 0x5c, 0x82, 0xd9, 0xa2, 0x4c, 0x14, 0xbf, 0x9f, 0x3e, 0xd9, 0x4a, 0x0e, 0xd9, 0x96, 0xd9, 0xaa, - 0x63, 0xe5, 0xb6, 0xc8, 0x9a, 0xa2, 0x71, 0x16, 0x86, 0x88, 0xba, 0xcb, 0x64, 0xc9, 0x5b, 0xcb, - 0x47, 0xef, 0xbc, 0x72, 0xfe, 0x94, 0x39, 0x44, 0x8e, 0xe7, 0x2d, 0x0b, 0xea, 0x0a, 0x59, 0xd1, - 0x8f, 0x48, 0xd4, 0x15, 0x41, 0xbd, 0x44, 0xcf, 0x3e, 0x49, 0xd4, 0x4b, 0x82, 0xba, 0x4a, 0x96, - 0xc7, 0x74, 0x89, 0xba, 0x2a, 0xa8, 0x97, 0xc9, 0x2a, 0xe7, 0x98, 0x44, 0xbd, 0x2c, 0xa8, 0x57, - 0xc8, 0xda, 0x66, 0x54, 0xa2, 0x5e, 0x11, 0xd4, 0xab, 0x64, 0x59, 0x73, 0x42, 0xa2, 0x5e, 0x15, - 0xd4, 0x6b, 0x64, 0x39, 0xd3, 0x90, 0xa8, 0xd7, 0x04, 0xf5, 0x3a, 0xd9, 0x8d, 0x1e, 0x96, 0xa8, - 0xd7, 0x8d, 0x73, 0x30, 0x4c, 0xad, 0xb1, 0x44, 0x76, 0x70, 0xc6, 0x19, 0x79, 0x98, 0x9a, 0x63, - 0xc9, 0xa5, 0x2f, 0x93, 0x9d, 0xe7, 0x21, 0x99, 0xbe, 0xec, 0xd2, 0x57, 0xc8, 0x69, 0xca, 0x94, - 0x4c, 0x5f, 0x71, 0xe9, 0x97, 0xd2, 0x63, 0x38, 0x85, 0x65, 0xfa, 0x25, 0x97, 0xbe, 0x9a, 0x4e, - 0xe2, 0xa8, 0x91, 0xe9, 0xab, 0x2e, 0xfd, 0x72, 0x7a, 0x1c, 0xaf, 0xe8, 0xca, 0xf4, 0xcb, 0x99, - 0x77, 0x13, 0xf7, 0xda, 0xae, 0x7b, 0xa7, 0x64, 0xf7, 0x0a, 0xc7, 0x4e, 0xc9, 0x8e, 0x15, 0x2e, - 0x9d, 0x92, 0x5d, 0x2a, 0x9c, 0x39, 0x25, 0x3b, 0x53, 0xb8, 0x71, 0x4a, 0x76, 0xa3, 0x70, 0xe0, - 0x94, 0xec, 0x40, 0xe1, 0xba, 0x29, 0xd9, 0x75, 0xc2, 0x69, 0x53, 0xb2, 0xd3, 0x84, 0xbb, 0xa6, - 0x64, 0x77, 0x09, 0x47, 0xa5, 0x15, 0x47, 0xb9, 0x2e, 0x4a, 0x2b, 0x2e, 0x72, 0x9d, 0x93, 0x56, - 0x9c, 0xe3, 0xba, 0x25, 0xad, 0xb8, 0xc5, 0x75, 0x48, 0x5a, 0x71, 0x88, 0xeb, 0x8a, 0xb4, 0xe2, - 0x0a, 0xd7, 0x09, 0x2c, 0xc7, 0x4c, 0xab, 0xe5, 0x93, 0x63, 0xfa, 0xc0, 0x1c, 0xd3, 0x07, 0xe6, - 0x98, 0x3e, 0x30, 0xc7, 0xf4, 0x81, 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, 0xe9, 0x03, - 0x73, 0x4c, 0x1f, 0x98, 0x63, 0xfa, 0xe0, 0x1c, 0xd3, 0x03, 0x72, 0x4c, 0x0f, 0xc8, 0x31, 0x3d, - 0x20, 0xc7, 0xf4, 0x80, 0x1c, 0xd3, 0x03, 0x72, 0x4c, 0xef, 0x9b, 0x63, 0xae, 0x7b, 0xa7, 0x64, - 0xf7, 0xfa, 0xe6, 0x98, 0xde, 0x27, 0xc7, 0xf4, 0x3e, 0x39, 0xa6, 0xf7, 0xc9, 0x31, 0xbd, 0x4f, - 0x8e, 0xe9, 0x7d, 0x72, 0x4c, 0xef, 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe5, 0x98, 0xde, - 0x37, 0xc7, 0xf4, 0xbe, 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, - 0xf7, 0xe6, 0xd8, 0x5f, 0xeb, 0x60, 0xd0, 0x1c, 0xdb, 0x21, 0x67, 0x00, 0x98, 0x2b, 0xce, 0x29, - 0x99, 0x36, 0x84, 0x5d, 0x97, 0x72, 0x5d, 0x72, 0x4e, 0xc9, 0x35, 0x99, 0xbe, 0x22, 0xe8, 0x3c, - 0xdb, 0x64, 0xfa, 0x25, 0x41, 0xe7, 0xf9, 0x26, 0xd3, 0x57, 0x05, 0x9d, 0x67, 0x9c, 0x4c, 0xbf, - 0x2c, 0xe8, 0x3c, 0xe7, 0x64, 0xfa, 0x15, 0x41, 0xe7, 0x59, 0x27, 0xd3, 0xaf, 0x0a, 0x3a, 0xcf, - 0x3b, 0x99, 0x7e, 0x4d, 0xd0, 0x79, 0xe6, 0xc9, 0xf4, 0xeb, 0xc6, 0x05, 0x35, 0xf7, 0x38, 0x83, - 0x70, 0xed, 0x05, 0x35, 0xfb, 0x14, 0x8e, 0x65, 0x97, 0x83, 0xe7, 0x9f, 0xc2, 0xb1, 0xe2, 0x72, - 0xf0, 0x0c, 0x54, 0x38, 0x2e, 0x65, 0xde, 0x47, 0xdc, 0x67, 0xab, 0xee, 0x9b, 0x56, 0xdc, 0x17, - 0xf1, 0xb8, 0x6e, 0x5a, 0x71, 0x5d, 0xc4, 0xe3, 0xb6, 0x69, 0xc5, 0x6d, 0x11, 0x8f, 0xcb, 0xa6, - 0x15, 0x97, 0x45, 0x3c, 0xee, 0x9a, 0x56, 0xdc, 0x15, 0xf1, 0xb8, 0x6a, 0x5a, 0x71, 0x55, 0xc4, - 0xe3, 0xa6, 0x69, 0xc5, 0x4d, 0x11, 0x8f, 0x8b, 0xa6, 0x15, 0x17, 0x45, 0x3c, 0xee, 0x99, 0x56, - 0xdc, 0x13, 0xf1, 0xb8, 0xe6, 0xac, 0xea, 0x9a, 0x88, 0xd7, 0x2d, 0x67, 0x55, 0xb7, 0x44, 0xbc, - 0x2e, 0x39, 0xab, 0xba, 0x24, 0xe2, 0x75, 0xc7, 0x59, 0xd5, 0x1d, 0x11, 0xaf, 0x2b, 0x7e, 0x1c, - 0xe1, 0x1d, 0xe1, 0x6e, 0xa7, 0xdd, 0xad, 0x76, 0xee, 0xaa, 0x23, 0x5c, 0x92, 0xda, 0x87, 0xc4, - 0x8a, 0xb1, 0x40, 0x1a, 0x56, 0x6f, 0xc7, 0xa9, 0xcc, 0x60, 0x4b, 0x52, 0x63, 0xe1, 0x41, 0xd8, - 0xfe, 0x88, 0xd5, 0xbb, 0xea, 0x0d, 0x97, 0xa4, 0x36, 0x23, 0x58, 0xbf, 0x6b, 0x6f, 0x78, 0xc7, - 0xf6, 0x52, 0x84, 0x77, 0x6c, 0xcc, 0xfc, 0x27, 0xed, 0xd8, 0xe6, 0x83, 0x4d, 0x2e, 0x8c, 0x3d, - 0x1f, 0x6c, 0xec, 0x9e, 0x59, 0x27, 0x6c, 0x07, 0x37, 0x1f, 0x6c, 0x5a, 0x61, 0xd4, 0xd7, 0xb7, - 0xdf, 0x62, 0x11, 0x8c, 0x8a, 0x89, 0x4f, 0x04, 0x9f, 0xb4, 0xdf, 0x5a, 0x92, 0x4a, 0xc9, 0x49, - 0x23, 0x58, 0x3f, 0x71, 0x04, 0x9f, 0xb4, 0xf3, 0x5a, 0x92, 0xca, 0xcb, 0x89, 0x23, 0xf8, 0x0d, - 0xe8, 0x87, 0x58, 0x04, 0xbb, 0xe6, 0x3f, 0x69, 0x3f, 0x34, 0x1f, 0x6c, 0x72, 0xdf, 0x08, 0xd6, - 0x4f, 0x10, 0xc1, 0x61, 0xfa, 0xa3, 0xf9, 0x60, 0xd3, 0xfa, 0x47, 0xf0, 0x5d, 0x77, 0x33, 0x9f, - 0xd0, 0x60, 0x02, 0x5d, 0xa6, 0x84, 0x97, 0x73, 0x6a, 0x56, 0x8d, 0xd9, 0x71, 0x49, 0xaa, 0x04, - 0x7d, 0x5c, 0xfd, 0xf2, 0x2b, 0xe7, 0x5d, 0x0b, 0x5f, 0x86, 0x38, 0xb5, 0xf0, 0xd2, 0x52, 0xfa, - 0x8e, 0x16, 0x50, 0xe1, 0xe2, 0x07, 0x8c, 0xd5, 0xb8, 0xc8, 0x61, 0x68, 0xee, 0xf9, 0xba, 0xe6, - 0xa9, 0x72, 0x8c, 0x65, 0x79, 0x29, 0xf3, 0x01, 0xa2, 0xa1, 0x7d, 0xd7, 0x1a, 0x2e, 0x86, 0xd2, - 0xd0, 0xa3, 0xdb, 0x7d, 0x3d, 0xba, 0x79, 0xb4, 0xea, 0xc2, 0x38, 0x82, 0x6d, 0x91, 0xef, 0xf1, - 0x85, 0x51, 0x89, 0xf2, 0x28, 0xf5, 0x60, 0x49, 0x0a, 0x4b, 0x2f, 0x42, 0x84, 0xb4, 0x5c, 0x23, - 0x32, 0x75, 0x7c, 0x59, 0x5b, 0xba, 0xec, 0x7c, 0xbf, 0xcb, 0xba, 0x95, 0x5d, 0x5c, 0x70, 0xbe, - 0xdf, 0x05, 0xdd, 0x1c, 0x12, 0x97, 0x7a, 0x9e, 0x4f, 0xce, 0xf4, 0x58, 0x07, 0x2a, 0x0e, 0x91, - 0x75, 0x7a, 0x3a, 0x71, 0x34, 0x3f, 0x8a, 0x95, 0xfa, 0x97, 0x57, 0xce, 0x47, 0xf7, 0xbb, 0x48, - 0xd7, 0x48, 0xbd, 0x66, 0xdc, 0x84, 0xd8, 0xdb, 0xd8, 0xd7, 0x68, 0x30, 0xc3, 0x2a, 0x63, 0x78, - 0xa4, 0xef, 0x1a, 0x11, 0xbe, 0xf0, 0x22, 0x5d, 0xc8, 0x5b, 0xd8, 0xaf, 0xdb, 0x9d, 0xe5, 0x95, - 0x6b, 0xec, 0x1b, 0x35, 0x99, 0x9f, 0x07, 0xa0, 0xd7, 0x2c, 0xe2, 0xaf, 0x01, 0x6c, 0x71, 0xc9, - 0xf4, 0xd2, 0xd7, 0x90, 0xd4, 0xd5, 0x30, 0x52, 0x1f, 0xad, 0x21, 0xf4, 0xa3, 0x78, 0xbd, 0x6d, - 0x21, 0x7f, 0x1b, 0x8d, 0x73, 0xe9, 0x2d, 0x3e, 0xeb, 0xb1, 0xfb, 0x4a, 0x7b, 0xee, 0x2b, 0x2e, - 0xdd, 0xd3, 0x0d, 0xf9, 0x9e, 0x96, 0x5e, 0xeb, 0xfd, 0x3c, 0xcf, 0x27, 0x09, 0xc5, 0x92, 0x7a, - 0x90, 0x25, 0xf5, 0xbb, 0xb5, 0x64, 0x8b, 0xd7, 0x47, 0xe5, 0x5e, 0xf5, 0x41, 0xf7, 0xaa, 0xdf, - 0xcd, 0xbd, 0xfe, 0x80, 0x66, 0xab, 0xc8, 0xa7, 0x7d, 0x9b, 0x9e, 0x8a, 0xfb, 0xd9, 0x5a, 0x0b, - 0x7a, 0x5d, 0xbb, 0x80, 0x6c, 0xf4, 0xce, 0x0b, 0xe7, 0xb5, 0xcc, 0x27, 0x22, 0xfc, 0xce, 0x69, - 0x22, 0xbd, 0xb6, 0x3b, 0xff, 0x59, 0xe9, 0xa9, 0xde, 0x08, 0x0b, 0x7d, 0x5c, 0x83, 0xa9, 0x9e, - 0x4a, 0x4e, 0xcd, 0xf4, 0xfa, 0x96, 0x73, 0xfb, 0xa4, 0xe5, 0x9c, 0x29, 0xf8, 0x25, 0x0d, 0x26, - 0x95, 0xf2, 0x4a, 0xd5, 0x5b, 0x54, 0xd4, 0xbb, 0xa7, 0xf7, 0x4a, 0x84, 0xd1, 0xa3, 0x9d, 0xd7, - 0xbd, 0x0a, 0xc0, 0x23, 0x59, 0xf8, 0x7d, 0x55, 0xf1, 0xfb, 0x59, 0x01, 0xf0, 0x31, 0x17, 0x8f, - 0x00, 0xa6, 0x76, 0x13, 0xa2, 0x7b, 0x6d, 0x0b, 0x2f, 0x41, 0x44, 0xb6, 0xdb, 0x4c, 0xc3, 0x24, - 0xc5, 0x6f, 0xb7, 0xf3, 0xed, 0x8a, 0x5d, 0x3d, 0x32, 0x23, 0xcd, 0x36, 0x9a, 0x6c, 0xf5, 0x1c, - 0xfb, 0xbe, 0x71, 0x62, 0x65, 0x9c, 0x32, 0xa0, 0x01, 0xc6, 0xa1, 0x57, 0xec, 0x1a, 0x12, 0x11, - 0xdd, 0xb0, 0x2a, 0x07, 0x4c, 0x09, 0xa0, 0x3c, 0x78, 0xc4, 0x8c, 0x36, 0xd0, 0xff, 0xec, 0x82, - 0x4f, 0x42, 0x9c, 0x0b, 0x36, 0x66, 0x30, 0xe2, 0xa0, 0xc3, 0x2e, 0xcb, 0x10, 0x58, 0x1d, 0x36, - 0x73, 0x21, 0xdc, 0x41, 0xc7, 0x98, 0x85, 0x98, 0x59, 0x3f, 0x3c, 0xea, 0xb0, 0x8b, 0xf7, 0xb2, - 0xc5, 0xda, 0x98, 0x9c, 0x79, 0x0a, 0x46, 0x84, 0x46, 0xaf, 0xb3, 0xe8, 0x22, 0xbd, 0x35, 0xf4, - 0x24, 0xec, 0x99, 0x4f, 0xf8, 0xba, 0x25, 0xfb, 0x2e, 0xe7, 0x05, 0x88, 0x23, 0x33, 0xbb, 0x45, - 0x9f, 0x77, 0xa4, 0x78, 0xe3, 0x9d, 0x8c, 0x66, 0xde, 0xad, 0x41, 0xbc, 0x68, 0x59, 0x2d, 0x62, - 0xf0, 0x07, 0x21, 0x5a, 0x6c, 0x3e, 0x67, 0x33, 0x05, 0x27, 0x98, 0x45, 0x31, 0x99, 0xd9, 0x34, - 0x5a, 0x43, 0x64, 0xc4, 0xe6, 0xb1, 0xfb, 0x69, 0x61, 0x77, 0x0f, 0x1f, 0xb1, 0x7d, 0x46, 0xb2, - 0x3d, 0x73, 0x20, 0x66, 0xea, 0xb1, 0xff, 0x55, 0x48, 0x78, 0xae, 0x62, 0xcc, 0x31, 0x35, 0x22, - 0x2a, 0xd0, 0x6b, 0x2b, 0xac, 0x49, 0xc6, 0x82, 0x31, 0xe9, 0xc2, 0x18, 0xea, 0x31, 0x71, 0x1f, - 0x28, 0x31, 0xf3, 0xbc, 0x6c, 0x66, 0x7f, 0x56, 0x66, 0xea, 0x25, 0x6a, 0x23, 0x62, 0xee, 0x19, - 0x1a, 0x9c, 0xfd, 0x9d, 0xd8, 0x41, 0xef, 0x33, 0x31, 0xd0, 0xb7, 0xea, 0x8d, 0xcc, 0x5b, 0x00, - 0x68, 0xca, 0xe3, 0x33, 0x54, 0x4a, 0xd6, 0x25, 0xb9, 0x81, 0xf7, 0x8e, 0xac, 0x3d, 0xf4, 0x17, - 0xb3, 0xc8, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x1f, 0x0e, 0xc4, 0xfb, 0x76, 0x62, - 0x98, 0x35, 0x4d, 0x59, 0x9f, 0xb2, 0x3a, 0x39, 0xbb, 0xd9, 0x39, 0xb2, 0xda, 0x0a, 0x62, 0xc5, - 0xb8, 0x24, 0x25, 0x6c, 0x72, 0xe5, 0x3e, 0x81, 0xe8, 0x0b, 0xba, 0x94, 0xf9, 0x02, 0x51, 0x10, - 0xb7, 0x02, 0x3d, 0x37, 0xa8, 0x87, 0xb8, 0x41, 0xe3, 0x8a, 0xd4, 0xbf, 0x0d, 0x50, 0x53, 0x79, - 0xb4, 0xbc, 0x2e, 0x3d, 0xe7, 0x0c, 0x56, 0x56, 0x7e, 0xc6, 0xe4, 0x36, 0xe5, 0x2a, 0x3f, 0x1c, - 0xa8, 0x72, 0x9f, 0xee, 0xf6, 0xa4, 0x36, 0xd5, 0xc3, 0xda, 0xf4, 0x2b, 0xa2, 0xe3, 0xa0, 0x5f, - 0xf9, 0x26, 0x3f, 0x14, 0x60, 0x3c, 0x12, 0xe8, 0xfb, 0xac, 0x56, 0x10, 0xaa, 0xae, 0x86, 0x75, - 0x7f, 0x36, 0x92, 0xcf, 0x0b, 0x75, 0xaf, 0x9e, 0x20, 0x04, 0xb2, 0x91, 0x42, 0x41, 0x94, 0xed, - 0xf8, 0xfb, 0x50, 0x16, 0xbf, 0xf8, 0xc2, 0xf9, 0x53, 0x99, 0xcf, 0x22, 0xe5, 0x19, 0xa7, 0x27, - 0x70, 0x1f, 0x55, 0x94, 0x3f, 0xc3, 0x6b, 0x86, 0x9f, 0x05, 0x7e, 0x62, 0xc1, 0xfb, 0x35, 0x0d, - 0xd2, 0x3d, 0xba, 0x72, 0x7b, 0x2f, 0x85, 0x52, 0x39, 0xab, 0x95, 0x7e, 0xfa, 0x36, 0x7f, 0x0a, - 0x62, 0x7b, 0xf5, 0x63, 0xab, 0x8d, 0x67, 0x02, 0xfc, 0x86, 0xaa, 0xcc, 0x37, 0x73, 0x62, 0x1d, - 0x3c, 0xc4, 0x69, 0x54, 0x39, 0x89, 0x86, 0xf7, 0x13, 0xa2, 0xc5, 0x4a, 0xa7, 0x42, 0x34, 0x18, - 0x15, 0xf5, 0x15, 0x8d, 0x64, 0x2e, 0xc1, 0xe8, 0xe6, 0x6d, 0x72, 0xd8, 0xa4, 0x46, 0xce, 0x61, - 0xc8, 0xdd, 0x1f, 0xef, 0x57, 0x97, 0xe7, 0x63, 0xf1, 0x5a, 0xea, 0x8e, 0x96, 0x8d, 0x12, 0x7d, - 0x9e, 0x85, 0xe4, 0x36, 0x56, 0x9b, 0xe0, 0x24, 0x18, 0xbd, 0xba, 0x2e, 0x6e, 0x5e, 0x69, 0xca, - 0x74, 0xb7, 0x29, 0xbb, 0x00, 0xda, 0xa6, 0xdc, 0x3a, 0x79, 0xf5, 0x30, 0xb5, 0xe3, 0xf9, 0x68, - 0x3c, 0x99, 0x9a, 0x40, 0xff, 0x43, 0x6a, 0x8c, 0x5d, 0xf7, 0x1f, 0x74, 0x48, 0xd1, 0x56, 0x07, - 0x39, 0xb1, 0x6e, 0xd7, 0x3b, 0xbd, 0xfd, 0xaa, 0xd0, 0xd8, 0x78, 0x2b, 0x8c, 0x60, 0x93, 0xde, - 0x60, 0xbf, 0xb7, 0x83, 0x4d, 0x7f, 0x91, 0xb5, 0x28, 0x8a, 0x08, 0x36, 0x40, 0x42, 0x87, 0xfc, - 0xb4, 0x0d, 0xc1, 0xa0, 0x07, 0x0c, 0x7d, 0x6b, 0x6b, 0x93, 0x4d, 0x6e, 0xab, 0x03, 0xa1, 0xec, - 0xa4, 0x0b, 0xfb, 0xc4, 0xc6, 0x9c, 0x43, 0x53, 0xb7, 0xb7, 0x36, 0x51, 0xd8, 0x44, 0x90, 0x18, - 0xda, 0xf0, 0xce, 0x84, 0x11, 0x63, 0x46, 0xec, 0xcd, 0xe9, 0xbf, 0xd1, 0x60, 0x4c, 0x1a, 0x45, - 0xb3, 0xed, 0x28, 0x1d, 0xf0, 0xdc, 0xee, 0x90, 0x39, 0x6a, 0x7b, 0xc6, 0xb8, 0xce, 0x91, 0xbb, - 0xd4, 0x79, 0x3a, 0x87, 0x9e, 0xda, 0xe5, 0x71, 0x63, 0x01, 0x0c, 0xef, 0x10, 0x53, 0x82, 0xfe, - 0x56, 0x89, 0x61, 0xf7, 0x50, 0x32, 0xf7, 0xa3, 0x2a, 0x2c, 0xec, 0x2a, 0x7e, 0x62, 0x63, 0xab, - 0xb4, 0x8b, 0x7f, 0x1d, 0x43, 0xcb, 0x7c, 0x59, 0x83, 0x04, 0x6b, 0x5b, 0xab, 0xcd, 0x96, 0x65, - 0xe4, 0x41, 0xcb, 0xb1, 0x78, 0x78, 0x6d, 0x7a, 0x6b, 0x15, 0x34, 0x3b, 0x69, 0xf9, 0xf0, 0xae, - 0xd6, 0x6e, 0x19, 0x2b, 0xa0, 0x15, 0x98, 0x83, 0xc3, 0x79, 0x46, 0xab, 0x66, 0xbe, 0xaf, 0xc3, - 0x69, 0x6f, 0x1b, 0xcd, 0xeb, 0xc9, 0x45, 0xf9, 0xb9, 0x29, 0x3b, 0xb2, 0xbc, 0x72, 0x69, 0x75, - 0x01, 0xff, 0x27, 0x42, 0xf2, 0xa2, 0xfc, 0x08, 0xd5, 0xcb, 0xd2, 0x73, 0x4c, 0x24, 0x1b, 0xf5, - 0x50, 0x7b, 0x8e, 0x89, 0x48, 0xd4, 0x9e, 0x63, 0x22, 0x12, 0xb5, 0xe7, 0x98, 0x88, 0x44, 0xed, - 0xd9, 0x0a, 0x90, 0xa8, 0x3d, 0xc7, 0x44, 0x24, 0x6a, 0xcf, 0x31, 0x11, 0x89, 0xda, 0x7b, 0x4c, - 0x84, 0x91, 0xfb, 0x1e, 0x13, 0x91, 0xe9, 0xbd, 0xc7, 0x44, 0x64, 0x7a, 0xef, 0x31, 0x91, 0x2c, - 0xea, 0xcf, 0xba, 0x56, 0xff, 0x4d, 0x07, 0x19, 0x3f, 0xe8, 0x19, 0xd0, 0x2d, 0xc0, 0xdb, 0x30, - 0x4e, 0xd7, 0x23, 0x0a, 0xf8, 0x20, 0x56, 0xdd, 0x46, 0xa5, 0xf8, 0xcd, 0x30, 0x4a, 0x87, 0xe8, - 0x53, 0x8e, 0xdf, 0x53, 0x20, 0xa5, 0xb3, 0x72, 0x3b, 0x5a, 0xf5, 0x70, 0x67, 0x7e, 0x1c, 0x85, - 0x29, 0x4a, 0xc6, 0xdf, 0x16, 0x94, 0x0e, 0x19, 0xcd, 0x2a, 0x5b, 0x4a, 0x49, 0x0c, 0xff, 0xe6, - 0x2b, 0xe7, 0xe9, 0x68, 0x4e, 0x04, 0xd3, 0xac, 0xb2, 0xb9, 0x24, 0xf3, 0xb9, 0xf3, 0xcf, 0xac, - 0x72, 0xf0, 0x48, 0xe6, 0x13, 0xd3, 0x8d, 0xe0, 0xe3, 0x47, 0x90, 0x64, 0xbe, 0xa2, 0x88, 0xb2, - 0x59, 0xe5, 0x30, 0x92, 0xcc, 0x57, 0x12, 0xf1, 0x36, 0xab, 0x6c, 0x3d, 0xc9, 0x7c, 0x37, 0x44, - 0xe4, 0xcd, 0x2a, 0x9b, 0x50, 0x32, 0xdf, 0x9a, 0x88, 0xc1, 0x59, 0xe5, 0xa8, 0x92, 0xcc, 0xf7, - 0x84, 0x88, 0xc6, 0x59, 0xe5, 0xd0, 0x92, 0xcc, 0xb7, 0x2e, 0xe2, 0x72, 0x4e, 0x3d, 0xbe, 0x24, - 0x33, 0xde, 0x74, 0x23, 0x74, 0x4e, 0x3d, 0xc8, 0x24, 0x73, 0xfe, 0x3f, 0x37, 0x56, 0xe7, 0xd4, - 0x23, 0x4d, 0x32, 0xe7, 0x86, 0x1b, 0xb5, 0x73, 0xea, 0x56, 0x99, 0xcc, 0xb9, 0xe9, 0xc6, 0xef, - 0x9c, 0xba, 0x69, 0x26, 0x73, 0x6e, 0xb9, 0x91, 0x3c, 0xa7, 0x6e, 0x9f, 0xc9, 0x9c, 0xdb, 0xee, - 0x1a, 0xfa, 0x57, 0x95, 0xf0, 0xf3, 0x1c, 0x82, 0xca, 0x28, 0xe1, 0x07, 0x3e, 0xa1, 0x97, 0x51, - 0x42, 0x0f, 0x7c, 0xc2, 0x2e, 0xa3, 0x84, 0x1d, 0xf8, 0x84, 0x5c, 0x46, 0x09, 0x39, 0xf0, 0x09, - 0xb7, 0x8c, 0x12, 0x6e, 0xe0, 0x13, 0x6a, 0x19, 0x25, 0xd4, 0xc0, 0x27, 0xcc, 0x32, 0x4a, 0x98, - 0x81, 0x4f, 0x88, 0x65, 0x94, 0x10, 0x03, 0x9f, 0xf0, 0xca, 0x28, 0xe1, 0x05, 0x3e, 0xa1, 0x35, - 0xa3, 0x86, 0x16, 0xf8, 0x85, 0xd5, 0x8c, 0x1a, 0x56, 0xe0, 0x17, 0x52, 0x0f, 0xa8, 0x21, 0x35, - 0x82, 0xb8, 0x62, 0x78, 0xc8, 0x13, 0x4d, 0x33, 0x6a, 0x34, 0x81, 0x5f, 0x24, 0xcd, 0xa8, 0x91, - 0x04, 0x7e, 0x51, 0x34, 0xa3, 0x46, 0x11, 0xf8, 0x45, 0xd0, 0x4b, 0x6a, 0x04, 0xb9, 0x47, 0x7c, - 0x32, 0xca, 0x8e, 0x62, 0x50, 0x04, 0xe9, 0x21, 0x22, 0x48, 0x0f, 0x11, 0x41, 0x7a, 0x88, 0x08, - 0xd2, 0x43, 0x44, 0x90, 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, 0x20, 0x3d, 0x4c, - 0x04, 0xe9, 0xa1, 0x22, 0x48, 0xef, 0x17, 0x41, 0x33, 0xea, 0x81, 0x07, 0xf0, 0x2b, 0x48, 0x33, - 0xea, 0xce, 0x67, 0x70, 0x08, 0xe9, 0xa1, 0x42, 0x48, 0xef, 0x17, 0x42, 0x5f, 0x45, 0x8d, 0x94, - 0x14, 0x42, 0x6c, 0x7b, 0xe8, 0xf5, 0xaa, 0x40, 0x57, 0x42, 0x9c, 0xaf, 0xf0, 0x8b, 0xa9, 0x2b, - 0x21, 0xf6, 0xa8, 0x07, 0xc5, 0x59, 0x6f, 0x15, 0x2a, 0x85, 0xa8, 0x42, 0x37, 0x44, 0x0c, 0x5d, - 0x09, 0x71, 0xee, 0xa2, 0x37, 0xf6, 0xae, 0x0d, 0x2a, 0x02, 0x4f, 0x84, 0x2a, 0x02, 0xeb, 0xa1, - 0x8a, 0xc0, 0x4d, 0xd7, 0x83, 0xef, 0x8d, 0xc0, 0xa4, 0xeb, 0x41, 0xfa, 0x8e, 0xfc, 0x52, 0x4a, - 0xc6, 0xb3, 0x43, 0x65, 0xf0, 0x5d, 0x1b, 0x8f, 0x1b, 0xf1, 0xfe, 0xcd, 0x8e, 0xbc, 0x57, 0x95, - 0x3d, 0xe9, 0xfe, 0x8d, 0xc7, 0xe3, 0x6c, 0x2d, 0x74, 0x06, 0xf4, 0xf5, 0x9a, 0x43, 0xaa, 0x85, - 0xdf, 0x65, 0x0b, 0xa6, 0x5e, 0xaf, 0x39, 0x86, 0x09, 0x43, 0xe4, 0xba, 0x0e, 0x71, 0xef, 0xdd, - 0x5c, 0x18, 0xb9, 0x9e, 0x5c, 0xd8, 0xc9, 0xbc, 0xa4, 0xc1, 0x05, 0x29, 0x94, 0x5f, 0x9f, 0x1d, - 0x83, 0xc7, 0x42, 0xed, 0x18, 0x48, 0x09, 0xe2, 0xee, 0x1e, 0x3c, 0xd4, 0xbb, 0x51, 0xed, 0xcd, - 0x12, 0x75, 0x27, 0xe1, 0x17, 0x21, 0xe9, 0xde, 0x01, 0x79, 0x64, 0xbb, 0x1c, 0xbc, 0x98, 0xe9, - 0x97, 0x9a, 0x97, 0x95, 0x45, 0xb4, 0x81, 0x30, 0x91, 0xad, 0x99, 0x2c, 0x7a, 0xe2, 0x94, 0xbf, - 0xf5, 0x12, 0xb4, 0x16, 0x11, 0xc7, 0xad, 0xf9, 0x9d, 0x4f, 0xa2, 0xf6, 0xfc, 0x11, 0x18, 0xf5, - 0x7e, 0xb1, 0x45, 0x01, 0x8e, 0x70, 0x60, 0x36, 0xfa, 0x32, 0xe6, 0xfe, 0x7d, 0x0d, 0xce, 0x78, - 0xd9, 0xdf, 0x8e, 0x7c, 0xbf, 0x6e, 0xe3, 0x9e, 0xfe, 0x2d, 0x10, 0xb7, 0x98, 0xe3, 0xd8, 0xaf, - 0x6b, 0xb0, 0xc7, 0x48, 0x5f, 0xf6, 0x05, 0xf2, 0xbf, 0x29, 0x20, 0xca, 0x22, 0x08, 0xbf, 0xec, - 0xca, 0xf4, 0x83, 0x10, 0xa3, 0xf2, 0x65, 0xbd, 0xc6, 0x14, 0xbd, 0x3e, 0xed, 0xa3, 0x17, 0x89, - 0x23, 0xe3, 0xa6, 0xa4, 0x97, 0xe7, 0x69, 0xd5, 0x97, 0x7d, 0x81, 0x07, 0x5f, 0x3e, 0x8e, 0xfb, - 0x3f, 0x12, 0x51, 0xc1, 0x4a, 0xce, 0x41, 0xbc, 0xa4, 0xf2, 0xf8, 0xeb, 0x59, 0x84, 0xe8, 0x16, - 0xfe, 0xd1, 0xb0, 0x49, 0xf6, 0x23, 0x99, 0xcc, 0xc8, 0xec, 0x87, 0x58, 0x67, 0x21, 0x5e, 0x38, - 0xaa, 0x37, 0x6a, 0x6d, 0xcb, 0x66, 0x5b, 0xf6, 0x6c, 0x05, 0x1d, 0x63, 0xcc, 0x78, 0x95, 0xd1, - 0xe6, 0x33, 0x90, 0xf0, 0x84, 0x84, 0x11, 0x43, 0x8f, 0xff, 0xa9, 0x53, 0xf8, 0x4f, 0x3e, 0xa5, - 0xe1, 0x3f, 0x85, 0x54, 0x64, 0xfe, 0x41, 0x18, 0x57, 0x16, 0xc8, 0x30, 0xa5, 0x98, 0x02, 0xfc, - 0xa7, 0x94, 0x4a, 0x4c, 0x47, 0xdf, 0xf7, 0x87, 0xe7, 0x4e, 0xcd, 0x3f, 0x06, 0x46, 0xef, 0x52, - 0x9a, 0x31, 0x04, 0x91, 0x1c, 0x16, 0x79, 0x0f, 0x44, 0xf2, 0x48, 0xe6, 0xf4, 0xf8, 0xaf, 0x7d, - 0xec, 0x42, 0x22, 0x4f, 0xbe, 0x17, 0x8a, 0xb8, 0xf3, 0x79, 0x06, 0x7e, 0x1c, 0xce, 0xf8, 0x2e, - 0xc5, 0x61, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x0f, 0xbe, 0x58, 0x24, 0x78, 0x2d, 0xcb, 0xb7, - 0x34, 0x73, 0x86, 0xcf, 0x32, 0x56, 0xba, 0xe6, 0xd9, 0x42, 0xcd, 0x65, 0x1f, 0x67, 0xbc, 0x79, - 0x5f, 0x5e, 0x2b, 0x60, 0x4b, 0x34, 0x9f, 0x2d, 0x30, 0x7c, 0xc1, 0x17, 0x7f, 0xa0, 0xec, 0xdb, - 0xc9, 0x35, 0x88, 0x09, 0x29, 0x08, 0x85, 0x8b, 0xbe, 0x42, 0x8e, 0x3c, 0xa7, 0xa9, 0x8b, 0x42, - 0xe1, 0x92, 0x2f, 0x6f, 0x3d, 0xe0, 0x54, 0x51, 0x29, 0xbb, 0xc8, 0xa6, 0x91, 0xdc, 0xb2, 0x71, - 0x86, 0x47, 0x81, 0x94, 0xe3, 0xcc, 0x40, 0x74, 0x46, 0xc9, 0x2d, 0xa3, 0x3b, 0xa4, 0x80, 0x7c, - 0x5f, 0x40, 0x7f, 0x2b, 0x51, 0x21, 0xf9, 0xe5, 0xec, 0x13, 0x4c, 0x48, 0xa1, 0xaf, 0x90, 0x00, - 0x53, 0x51, 0x49, 0x85, 0xe5, 0xfc, 0xde, 0x9d, 0x6f, 0x9c, 0x3b, 0xf5, 0x32, 0x7a, 0xfd, 0x33, - 0x7a, 0xfd, 0xdb, 0x37, 0xce, 0x69, 0xdf, 0x41, 0xaf, 0xef, 0xa1, 0xd7, 0x0f, 0xd1, 0xeb, 0x5d, - 0xdf, 0x3c, 0xa7, 0xbd, 0x88, 0x5e, 0x5f, 0x40, 0xaf, 0xbf, 0x42, 0xaf, 0x97, 0xd0, 0xeb, 0x0e, - 0x7a, 0xbd, 0xfc, 0x4d, 0xc4, 0x8b, 0xfe, 0x7e, 0x07, 0xfd, 0xfd, 0x1e, 0xfa, 0xfb, 0x43, 0xf4, - 0xf7, 0x5d, 0xdf, 0x3a, 0x77, 0xea, 0x05, 0xf4, 0x7a, 0xf1, 0x5b, 0xe7, 0xb4, 0xff, 0x0b, 0x00, - 0x00, 0xff, 0xff, 0x20, 0x2c, 0x09, 0x2b, 0x1a, 0x5f, 0x00, 0x00, + // 6509 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x6c, 0x1c, 0xd7, + 0x79, 0x2f, 0x67, 0x67, 0x49, 0x2d, 0x3f, 0xbe, 0x86, 0x43, 0x99, 0x5a, 0xd3, 0xf2, 0x52, 0x5a, + 0xcb, 0x32, 0xcd, 0xd8, 0x14, 0x45, 0x91, 0x7a, 0xac, 0x62, 0x1b, 0xfb, 0x92, 0x4c, 0x85, 0x5c, + 0x32, 0x43, 0x32, 0xb6, 0x72, 0x2f, 0xb0, 0x18, 0xed, 0x1e, 0x92, 0x6b, 0xef, 0xce, 0x6c, 0x76, + 0x86, 0xb6, 0xe9, 0x3f, 0x2e, 0x7c, 0x93, 0x7b, 0x73, 0x93, 0x5b, 0xf4, 0x99, 0x16, 0x4d, 0xd2, + 0xc4, 0x71, 0x52, 0xa4, 0x71, 0x92, 0x3e, 0x92, 0x36, 0x4d, 0x83, 0xa0, 0x68, 0xfc, 0x4f, 0x5a, + 0x15, 0x05, 0x0a, 0xa7, 0x7f, 0x15, 0x41, 0x61, 0xc4, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0x26, 0x8d, + 0x81, 0x04, 0x70, 0xfe, 0x28, 0xce, 0x6b, 0x66, 0xce, 0xd9, 0x59, 0xce, 0xd0, 0xb2, 0x93, 0xfc, + 0x23, 0xed, 0x9e, 0xef, 0xfb, 0x7d, 0xf3, 0x9d, 0xef, 0x75, 0xbe, 0x39, 0xe7, 0x70, 0xe1, 0xb5, + 0x25, 0x38, 0xb1, 0x63, 0xdb, 0x3b, 0x4d, 0x74, 0xa6, 0xdd, 0xb1, 0x5d, 0xfb, 0xc6, 0xde, 0xf6, + 0x99, 0x3a, 0x72, 0x6a, 0x9d, 0x46, 0xdb, 0xb5, 0x3b, 0x73, 0x64, 0x4c, 0x1f, 0xa3, 0x1c, 0x73, + 0x9c, 0x23, 0xbb, 0x0a, 0xe3, 0x57, 0x1a, 0x4d, 0x54, 0xf2, 0x18, 0x37, 0x90, 0xab, 0x5f, 0x84, + 0xe4, 0x76, 0xa3, 0x89, 0xd2, 0xca, 0x09, 0x75, 0x66, 0x68, 0xe1, 0xd4, 0x9c, 0x04, 0x9a, 0x13, + 0x11, 0xeb, 0x78, 0xd8, 0x20, 0x88, 0xec, 0xf7, 0x93, 0x30, 0x11, 0x42, 0xd5, 0x75, 0x48, 0x5a, + 0x66, 0x0b, 0x4b, 0x54, 0x66, 0x06, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0x91, 0xb6, 0x59, 0x7b, 0xd2, + 0xdc, 0x41, 0xe9, 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x0c, 0x40, 0x1d, 0xb5, 0x91, 0x55, 0x47, 0x56, + 0x6d, 0x3f, 0xad, 0x9e, 0x50, 0x67, 0x06, 0x8d, 0xc0, 0x88, 0xfe, 0x2e, 0x18, 0x6f, 0xef, 0xdd, + 0x68, 0x36, 0x6a, 0xd5, 0x00, 0x1b, 0x9c, 0x50, 0x67, 0xfa, 0x0d, 0x8d, 0x12, 0x4a, 0x3e, 0xf3, + 0x7d, 0x30, 0xf6, 0x34, 0x32, 0x9f, 0x0c, 0xb2, 0x0e, 0x11, 0xd6, 0x51, 0x3c, 0x1c, 0x60, 0x2c, + 0xc2, 0x70, 0x0b, 0x39, 0x8e, 0xb9, 0x83, 0xaa, 0xee, 0x7e, 0x1b, 0xa5, 0x93, 0x64, 0xf6, 0x27, + 0xba, 0x66, 0x2f, 0xcf, 0x7c, 0x88, 0xa1, 0x36, 0xf7, 0xdb, 0x48, 0xcf, 0xc3, 0x20, 0xb2, 0xf6, + 0x5a, 0x54, 0x42, 0x7f, 0x0f, 0xfb, 0x95, 0xad, 0xbd, 0x96, 0x2c, 0x25, 0x85, 0x61, 0x4c, 0xc4, + 0x11, 0x07, 0x75, 0x9e, 0x6a, 0xd4, 0x50, 0x7a, 0x80, 0x08, 0xb8, 0xaf, 0x4b, 0xc0, 0x06, 0xa5, + 0xcb, 0x32, 0x38, 0x4e, 0x2f, 0xc2, 0x20, 0x7a, 0xc6, 0x45, 0x96, 0xd3, 0xb0, 0xad, 0xf4, 0x11, + 0x22, 0xe4, 0xde, 0x10, 0x2f, 0xa2, 0x66, 0x5d, 0x16, 0xe1, 0xe3, 0xf4, 0xf3, 0x70, 0xc4, 0x6e, + 0xbb, 0x0d, 0xdb, 0x72, 0xd2, 0xa9, 0x13, 0xca, 0xcc, 0xd0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, + 0x3c, 0x06, 0x67, 0xd6, 0x97, 0x41, 0x73, 0xec, 0xbd, 0x4e, 0x0d, 0x55, 0x6b, 0x76, 0x1d, 0x55, + 0x1b, 0xd6, 0xb6, 0x9d, 0x1e, 0x24, 0x02, 0xa6, 0xbb, 0x27, 0x42, 0x18, 0x8b, 0x76, 0x1d, 0x2d, + 0x5b, 0xdb, 0xb6, 0x31, 0xea, 0x08, 0xdf, 0xf5, 0x49, 0x18, 0x70, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, + 0x3d, 0x4c, 0x22, 0x84, 0x7d, 0xcb, 0xfe, 0xa4, 0x1f, 0xc6, 0xe2, 0x84, 0xd8, 0x65, 0xe8, 0xdf, + 0xc6, 0xb3, 0x4c, 0x27, 0x0e, 0x63, 0x03, 0x8a, 0x11, 0x8d, 0x38, 0xf0, 0x16, 0x8d, 0x98, 0x87, + 0x21, 0x0b, 0x39, 0x2e, 0xaa, 0xd3, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, 0x25, + 0xdf, 0x52, 0x48, 0x3d, 0x0e, 0x63, 0x9e, 0x4a, 0xd5, 0x8e, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x13, + 0xa5, 0xc9, 0x5c, 0x99, 0xe3, 0x0c, 0x0c, 0x33, 0x46, 0x91, 0xf0, 0x5d, 0x2f, 0x01, 0xd8, 0x16, + 0xb2, 0xb7, 0xab, 0x75, 0x54, 0x6b, 0xa6, 0x53, 0x3d, 0xac, 0xb4, 0x86, 0x59, 0xba, 0xac, 0x64, + 0xd3, 0xd1, 0x5a, 0x53, 0xbf, 0xe4, 0x87, 0xda, 0x91, 0x1e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x2b, + 0xda, 0xb6, 0x60, 0xb4, 0x83, 0x70, 0xdc, 0xa3, 0x3a, 0x9b, 0xd9, 0x20, 0x51, 0x62, 0x2e, 0x72, + 0x66, 0x06, 0x83, 0xd1, 0x89, 0x8d, 0x74, 0x82, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x92, 0xb0, + 0x02, 0x52, 0x85, 0x86, 0xf9, 0x60, 0xc5, 0x6c, 0xa1, 0xa9, 0x8b, 0x30, 0x2a, 0x9a, 0x47, 0x3f, + 0x0a, 0xfd, 0x8e, 0x6b, 0x76, 0x5c, 0x12, 0x85, 0xfd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, + 0x4e, 0xaa, 0x5c, 0xbf, 0x81, 0x3f, 0x4e, 0x5d, 0x80, 0x11, 0xe1, 0xf1, 0x71, 0x81, 0xd9, 0x8f, + 0x0f, 0xc0, 0xd1, 0xb0, 0x98, 0x0b, 0x0d, 0xff, 0x49, 0x18, 0xb0, 0xf6, 0x5a, 0x37, 0x50, 0x27, + 0xad, 0x12, 0x09, 0xec, 0x9b, 0x9e, 0x87, 0xfe, 0xa6, 0x79, 0x03, 0x35, 0xd3, 0xc9, 0x13, 0xca, + 0xcc, 0xe8, 0xc2, 0xbb, 0x62, 0x45, 0xf5, 0xdc, 0x0a, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x0c, 0x49, + 0x56, 0xe2, 0xb0, 0x84, 0xd9, 0x78, 0x12, 0x70, 0x2c, 0x1a, 0x04, 0xa7, 0xdf, 0x05, 0x83, 0xf8, + 0x7f, 0x6a, 0xdb, 0x01, 0xa2, 0x73, 0x0a, 0x0f, 0x60, 0xbb, 0xea, 0x53, 0x90, 0x22, 0x61, 0x56, + 0x47, 0x7c, 0x69, 0xf0, 0xbe, 0x63, 0xc7, 0xd4, 0xd1, 0xb6, 0xb9, 0xd7, 0x74, 0xab, 0x4f, 0x99, + 0xcd, 0x3d, 0x44, 0x02, 0x66, 0xd0, 0x18, 0x66, 0x83, 0xef, 0xc3, 0x63, 0xfa, 0x34, 0x0c, 0xd1, + 0xa8, 0x6c, 0x58, 0x75, 0xf4, 0x0c, 0xa9, 0x3e, 0xfd, 0x06, 0x0d, 0xd4, 0x65, 0x3c, 0x82, 0x1f, + 0xff, 0x84, 0x63, 0x5b, 0xdc, 0xb5, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0x82, 0x5c, 0xf8, 0xee, + 0x0e, 0x9f, 0x9e, 0x1c, 0x8b, 0xd9, 0xaf, 0x27, 0x20, 0x49, 0xf2, 0x6d, 0x0c, 0x86, 0x36, 0xaf, + 0xaf, 0x97, 0xab, 0xa5, 0xb5, 0xad, 0xc2, 0x4a, 0x59, 0x53, 0xf4, 0x51, 0x00, 0x32, 0x70, 0x65, + 0x65, 0x2d, 0xbf, 0xa9, 0x25, 0xbc, 0xef, 0xcb, 0x95, 0xcd, 0xf3, 0x8b, 0x9a, 0xea, 0x01, 0xb6, + 0xe8, 0x40, 0x32, 0xc8, 0x70, 0x6e, 0x41, 0xeb, 0xd7, 0x35, 0x18, 0xa6, 0x02, 0x96, 0x1f, 0x2f, + 0x97, 0xce, 0x2f, 0x6a, 0x03, 0xe2, 0xc8, 0xb9, 0x05, 0xed, 0x88, 0x3e, 0x02, 0x83, 0x64, 0xa4, + 0xb0, 0xb6, 0xb6, 0xa2, 0xa5, 0x3c, 0x99, 0x1b, 0x9b, 0xc6, 0x72, 0xe5, 0xaa, 0x36, 0xe8, 0xc9, + 0xbc, 0x6a, 0xac, 0x6d, 0xad, 0x6b, 0xe0, 0x49, 0x58, 0x2d, 0x6f, 0x6c, 0xe4, 0xaf, 0x96, 0xb5, + 0x21, 0x8f, 0xa3, 0x70, 0x7d, 0xb3, 0xbc, 0xa1, 0x0d, 0x0b, 0x6a, 0x9d, 0x5b, 0xd0, 0x46, 0xbc, + 0x47, 0x94, 0x2b, 0x5b, 0xab, 0xda, 0xa8, 0x3e, 0x0e, 0x23, 0xf4, 0x11, 0x5c, 0x89, 0x31, 0x69, + 0xe8, 0xfc, 0xa2, 0xa6, 0xf9, 0x8a, 0x50, 0x29, 0xe3, 0xc2, 0xc0, 0xf9, 0x45, 0x4d, 0xcf, 0x16, + 0xa1, 0x9f, 0x44, 0x97, 0xae, 0xc3, 0xe8, 0x4a, 0xbe, 0x50, 0x5e, 0xa9, 0xae, 0xad, 0x6f, 0x2e, + 0xaf, 0x55, 0xf2, 0x2b, 0x9a, 0xe2, 0x8f, 0x19, 0xe5, 0xf7, 0x6e, 0x2d, 0x1b, 0xe5, 0x92, 0x96, + 0x08, 0x8e, 0xad, 0x97, 0xf3, 0x9b, 0xe5, 0x92, 0xa6, 0x66, 0x6b, 0x70, 0x34, 0xac, 0xce, 0x84, + 0x66, 0x46, 0xc0, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0xb2, 0xba, 0x5c, 0xfc, 0x39, 0x05, 0x26, 0x42, + 0x6a, 0x6d, 0xe8, 0x43, 0x1e, 0x81, 0x7e, 0x1a, 0xa2, 0x74, 0xf5, 0xb9, 0x3f, 0xb4, 0x68, 0x93, + 0x80, 0xed, 0x5a, 0x81, 0x08, 0x2e, 0xb8, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x2c, 0xa2, 0x4b, 0xc9, + 0x0f, 0x29, 0x90, 0xee, 0x25, 0x3b, 0xa2, 0x50, 0x24, 0x84, 0x42, 0x71, 0x59, 0x56, 0xe0, 0x64, + 0xef, 0x39, 0x74, 0x69, 0xf1, 0x05, 0x05, 0x26, 0xc3, 0x1b, 0x95, 0x50, 0x1d, 0x1e, 0x86, 0x81, + 0x16, 0x72, 0x77, 0x6d, 0xbe, 0x58, 0x9f, 0x0e, 0x59, 0x02, 0x30, 0x59, 0xb6, 0x15, 0x43, 0x05, + 0xd7, 0x10, 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0xa3, 0x09, 0xb8, 0x23, 0x54, 0x78, + 0xa8, 0xa2, 0x77, 0x03, 0x34, 0xac, 0xf6, 0x9e, 0x4b, 0x17, 0x64, 0x5a, 0x9f, 0x06, 0xc9, 0x08, + 0xc9, 0x7d, 0x5c, 0x7b, 0xf6, 0x5c, 0x8f, 0xae, 0x12, 0x3a, 0xd0, 0x21, 0xc2, 0x70, 0xd1, 0x57, + 0x34, 0x49, 0x14, 0xcd, 0xf4, 0x98, 0x69, 0xd7, 0x5a, 0x37, 0x0f, 0x5a, 0xad, 0xd9, 0x40, 0x96, + 0x5b, 0x75, 0xdc, 0x0e, 0x32, 0x5b, 0x0d, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xae, 0x7f, 0xdb, 0x6c, + 0x3a, 0xc8, 0x18, 0xa3, 0xe4, 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0x74, 0x02, 0x88, 0x01, 0x01, + 0x41, 0xc9, 0x1e, 0x22, 0xfb, 0xe5, 0x23, 0x30, 0x14, 0x68, 0xeb, 0xf4, 0x93, 0x30, 0xfc, 0x84, + 0xf9, 0x94, 0x59, 0xe5, 0xad, 0x3a, 0xb5, 0xc4, 0x10, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, + 0x25, 0x2c, 0xf6, 0x9e, 0x8b, 0x3a, 0xd5, 0x5a, 0xd3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, + 0x31, 0x6d, 0x0d, 0x93, 0x8a, 0x9c, 0xa2, 0x2f, 0xc1, 0x04, 0x41, 0xb4, 0xf6, 0x9a, 0x6e, 0xa3, + 0xdd, 0x44, 0x55, 0xfc, 0xf2, 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8e, 0x39, 0x56, 0x19, 0x03, + 0xd6, 0xc8, 0xd1, 0x4b, 0x70, 0x37, 0x81, 0xed, 0x20, 0x0b, 0x75, 0x4c, 0x17, 0x55, 0xd1, 0x07, + 0xf6, 0xcc, 0xa6, 0x53, 0x35, 0xad, 0x7a, 0x75, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x42, + 0x22, 0xad, 0x18, 0x77, 0x62, 0xc6, 0xab, 0x8c, 0xaf, 0x4c, 0xd8, 0xf2, 0x56, 0xfd, 0x51, 0xd3, + 0xd9, 0xd5, 0x73, 0x30, 0x49, 0xa4, 0x38, 0x6e, 0xa7, 0x61, 0xed, 0x54, 0x6b, 0xbb, 0xa8, 0xf6, + 0x64, 0x75, 0xcf, 0xdd, 0xbe, 0x98, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x62, + 0x96, 0x2d, 0x77, 0xfb, 0xa2, 0xbe, 0x01, 0xc3, 0xd8, 0x19, 0xad, 0xc6, 0xb3, 0xa8, 0xba, 0x6d, + 0x77, 0xc8, 0xca, 0x32, 0x1a, 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x47, + 0xb9, 0xfe, 0x8d, 0xf5, 0x72, 0xb9, 0x64, 0x0c, 0x71, 0x29, 0x57, 0xec, 0x0e, 0x0e, 0xa8, 0x1d, + 0xdb, 0x33, 0xf0, 0x10, 0x0d, 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0x26, 0x6a, 0x35, 0x3a, 0xe7, + 0x46, 0xad, 0xca, 0x5a, 0x7c, 0x27, 0xad, 0x09, 0xc6, 0xaa, 0xd5, 0xae, 0x52, 0x06, 0x16, 0xe3, + 0x8e, 0x7e, 0x09, 0xee, 0xf0, 0x8d, 0x15, 0x04, 0x8e, 0x77, 0xcd, 0x52, 0x86, 0x2e, 0xc1, 0x44, + 0x7b, 0xbf, 0x1b, 0xa8, 0x0b, 0x4f, 0x6c, 0xef, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x07, 0xd5, + 0x4c, 0x17, 0xd5, 0xd3, 0xc7, 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x06, 0xb4, 0x5a, 0xad, 0x8a, 0x2c, + 0xf3, 0x46, 0x13, 0x55, 0xcd, 0x0e, 0xb2, 0x4c, 0x27, 0x3d, 0x1d, 0x64, 0x1e, 0xad, 0xd5, 0xca, + 0x84, 0x9a, 0x27, 0x44, 0x7d, 0x16, 0xc6, 0xed, 0x1b, 0x4f, 0xd4, 0x68, 0x64, 0x55, 0xdb, 0x1d, + 0xb4, 0xdd, 0x78, 0x26, 0x7d, 0x8a, 0x98, 0x69, 0x0c, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, + 0x7e, 0xd0, 0x6a, 0xce, 0xae, 0xd9, 0x69, 0x93, 0xa5, 0xdd, 0x69, 0x9b, 0x35, 0x94, 0xbe, 0x97, + 0xb2, 0xd2, 0xf1, 0x0a, 0x1f, 0xc6, 0x91, 0xed, 0x3c, 0xdd, 0xd8, 0x76, 0xb9, 0xc4, 0xfb, 0x68, + 0x64, 0x93, 0x31, 0x26, 0xed, 0x71, 0x38, 0xba, 0x67, 0x35, 0x2c, 0x17, 0x75, 0xda, 0x1d, 0x84, + 0x9b, 0x78, 0x9a, 0x89, 0xe9, 0x7f, 0x3e, 0xd2, 0xa3, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, + 0x26, 0xf6, 0xba, 0x07, 0xb3, 0x39, 0x18, 0x0e, 0xc6, 0x85, 0x3e, 0x08, 0x34, 0x32, 0x34, 0x05, + 0xaf, 0xb1, 0xc5, 0xb5, 0x12, 0x5e, 0x1d, 0xdf, 0x5f, 0xd6, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, + 0x2c, 0x57, 0x8d, 0xad, 0xca, 0xe6, 0xf2, 0x6a, 0x59, 0x53, 0x67, 0x07, 0x53, 0x3f, 0x38, 0xa2, + 0x3d, 0xf7, 0xdc, 0x73, 0xcf, 0x25, 0xb2, 0xdf, 0x4e, 0xc0, 0xa8, 0xd8, 0x19, 0xeb, 0xef, 0x86, + 0x63, 0xfc, 0x35, 0xd6, 0x41, 0x6e, 0xf5, 0xe9, 0x46, 0x87, 0x84, 0x6a, 0xcb, 0xa4, 0xbd, 0xa5, + 0x67, 0xe5, 0xa3, 0x8c, 0x6b, 0x03, 0xb9, 0x8f, 0x35, 0x3a, 0x38, 0x10, 0x5b, 0xa6, 0xab, 0xaf, + 0xc0, 0xb4, 0x65, 0x57, 0x1d, 0xd7, 0xb4, 0xea, 0x66, 0xa7, 0x5e, 0xf5, 0x37, 0x10, 0xaa, 0x66, + 0xad, 0x86, 0x1c, 0xc7, 0xa6, 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, + 0xe6, 0x19, 0xab, 0x14, 0x11, 0x6a, 0xaf, 0x88, 0xb8, 0x0b, 0x06, 0x5b, 0x66, 0xbb, 0x8a, 0x2c, + 0xb7, 0xb3, 0x4f, 0xfa, 0xb9, 0x94, 0x91, 0x6a, 0x99, 0xed, 0x32, 0xfe, 0xfe, 0xce, 0xf9, 0x20, + 0x68, 0xc7, 0x7f, 0x52, 0x61, 0x38, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, + 0xfc, 0x9e, 0x03, 0x3b, 0xc0, 0xb9, 0x22, 0x2e, 0xec, 0xb9, 0x01, 0xda, 0x69, 0x19, 0x14, 0x89, + 0x17, 0x55, 0x9c, 0xd3, 0x88, 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0xc2, 0xc0, 0x13, 0x0e, + 0x91, 0x3d, 0x40, 0x64, 0x9f, 0x3a, 0x58, 0xf6, 0xb5, 0x0d, 0x22, 0x7c, 0xf0, 0xda, 0x46, 0xb5, + 0xb2, 0x66, 0xac, 0xe6, 0x57, 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xd3, 0x7c, 0x76, 0x5f, 0x5c, + 0x02, 0xc8, 0x50, 0x5c, 0xc3, 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, + 0x3b, 0x18, 0xfa, 0x67, 0xa0, 0x9f, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0xfa, 0xf4, 0x14, 0x24, + 0x8b, 0x6b, 0x06, 0x0e, 0x7f, 0x0d, 0x86, 0xe9, 0x68, 0x75, 0x7d, 0xb9, 0x5c, 0x2c, 0x6b, 0x89, + 0xec, 0x12, 0x0c, 0x50, 0x23, 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb1, 0xaf, 0x4c, 0x86, 0xc2, + 0xa9, 0x5b, 0xab, 0x85, 0xb2, 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x38, 0xd8, 0xce, 0xfd, 0x7c, + 0x62, 0xea, 0x9b, 0x0a, 0x0c, 0x05, 0xda, 0x33, 0xdc, 0x18, 0x98, 0xcd, 0xa6, 0xfd, 0x74, 0xd5, + 0x6c, 0x36, 0x4c, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x3c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8b, 0xf2, + 0xcf, 0x2b, 0xa0, 0xc9, 0xad, 0x9d, 0xa4, 0xa0, 0xf2, 0x0b, 0x55, 0xf0, 0x53, 0x0a, 0x8c, 0x8a, + 0xfd, 0x9c, 0xa4, 0xde, 0xc9, 0x5f, 0xa8, 0x7a, 0xdf, 0x4b, 0xc0, 0x88, 0xd0, 0xc5, 0xc5, 0xd5, + 0xee, 0x03, 0x30, 0xde, 0xa8, 0xa3, 0x56, 0xdb, 0x76, 0x91, 0x55, 0xdb, 0xaf, 0x36, 0xd1, 0x53, + 0xa8, 0x99, 0xce, 0x92, 0x42, 0x71, 0xe6, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, + 0x6e, 0x62, 0xb9, 0x54, 0x5e, 0x5d, 0x5f, 0xdb, 0x2c, 0x57, 0x8a, 0xd7, 0xab, 0x5b, 0x95, 0xf7, + 0x54, 0xd6, 0x1e, 0xab, 0x18, 0x5a, 0x43, 0x62, 0x7b, 0x07, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, + 0xfd, 0x18, 0x84, 0xa9, 0xa5, 0xf5, 0xe9, 0x13, 0x30, 0x56, 0x59, 0xab, 0x6e, 0x2c, 0x97, 0xca, + 0xd5, 0xf2, 0x95, 0x2b, 0xe5, 0xe2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, + 0xa4, 0x0a, 0x13, 0x21, 0x9a, 0xe8, 0x79, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, + 0x87, 0xbb, 0x82, 0x75, 0xb3, 0xe3, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xc6, 0x76, + 0x03, 0x75, 0xd8, 0x3e, 0x03, 0x6d, 0xe4, 0xc7, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x6d, + 0xdb, 0x69, 0xb8, 0x8d, 0xa7, 0x50, 0xb5, 0x61, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, + 0x53, 0x96, 0x2d, 0xd7, 0xe3, 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, + 0x78, 0xdc, 0x27, 0x61, 0xb8, 0x6e, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x86, + 0xe8, 0x98, 0xc7, 0xc2, 0xfa, 0x58, 0x7f, 0x37, 0x64, 0xd8, 0x18, 0xa2, 0x63, 0x94, 0xe5, 0x3e, + 0x18, 0x33, 0x77, 0x76, 0x3a, 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x51, 0x6f, 0x98, 0x30, 0x4e, + 0x5d, 0x83, 0x14, 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0xaa, 0x6d, 0xba, 0x27, 0x95, 0x98, 0x19, + 0x34, 0x52, 0x16, 0x27, 0x9e, 0x84, 0xe1, 0x86, 0x53, 0xf5, 0x37, 0x47, 0x13, 0x27, 0x12, 0x33, + 0x29, 0x63, 0xa8, 0xe1, 0x78, 0xbb, 0x61, 0xd9, 0x2f, 0x24, 0x60, 0x54, 0xdc, 0xdc, 0xd5, 0x4b, + 0x90, 0x6a, 0xda, 0x35, 0x93, 0x84, 0x16, 0x3d, 0x59, 0x98, 0x89, 0xd8, 0x0f, 0x9e, 0x5b, 0x61, + 0xfc, 0x86, 0x87, 0x9c, 0xfa, 0x7b, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x84, 0x64, 0xdb, 0x74, 0x77, + 0x89, 0xb8, 0xfe, 0x42, 0x42, 0x53, 0x0c, 0xf2, 0x1d, 0x8f, 0x3b, 0x6d, 0xd3, 0x22, 0x21, 0xc0, + 0xc6, 0xf1, 0x77, 0xec, 0xd7, 0x26, 0x32, 0xeb, 0xa4, 0xed, 0xb7, 0x5b, 0x2d, 0x64, 0xb9, 0x0e, + 0xf7, 0x2b, 0x1b, 0x2f, 0xb2, 0x61, 0xfd, 0x5d, 0x30, 0xee, 0x76, 0xcc, 0x46, 0x53, 0xe0, 0x4d, + 0x12, 0x5e, 0x8d, 0x13, 0x3c, 0xe6, 0x1c, 0xdc, 0xc9, 0xe5, 0xd6, 0x91, 0x6b, 0xd6, 0x76, 0x51, + 0xdd, 0x07, 0x0d, 0x90, 0x9d, 0xc3, 0x63, 0x8c, 0xa1, 0xc4, 0xe8, 0x1c, 0x9b, 0xfd, 0x8e, 0x02, + 0xe3, 0xfc, 0x45, 0xa5, 0xee, 0x19, 0x6b, 0x15, 0xc0, 0xb4, 0x2c, 0xdb, 0x0d, 0x9a, 0xab, 0x3b, + 0x94, 0xbb, 0x70, 0x73, 0x79, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0xb5, 0x00, 0x7c, 0x4a, 0x4f, 0xb3, + 0x4d, 0xc3, 0x10, 0xdb, 0xb9, 0x27, 0xc7, 0x3f, 0xf4, 0xd5, 0x16, 0xe8, 0x10, 0x7e, 0xa3, 0xd1, + 0x8f, 0x42, 0xff, 0x0d, 0xb4, 0xd3, 0xb0, 0xd8, 0x7e, 0x22, 0xfd, 0xc2, 0x77, 0x29, 0x93, 0xde, + 0x2e, 0x65, 0xe1, 0x71, 0x98, 0xa8, 0xd9, 0x2d, 0x59, 0xdd, 0x82, 0x26, 0xbd, 0x5e, 0x3b, 0x8f, + 0x2a, 0xef, 0x07, 0xbf, 0xc5, 0xfc, 0x5c, 0x42, 0xbd, 0xba, 0x5e, 0xf8, 0x52, 0x62, 0xea, 0x2a, + 0xc5, 0xad, 0xf3, 0x69, 0x1a, 0x68, 0xbb, 0x89, 0x6a, 0x58, 0x75, 0xf8, 0xf1, 0x69, 0x78, 0x70, + 0xa7, 0xe1, 0xee, 0xee, 0xdd, 0x98, 0xab, 0xd9, 0xad, 0x33, 0x3b, 0xf6, 0x8e, 0xed, 0x1f, 0x77, + 0xe1, 0x6f, 0xe4, 0x0b, 0xf9, 0xc4, 0x8e, 0xbc, 0x06, 0xbd, 0xd1, 0xa9, 0xc8, 0xf3, 0xb1, 0x5c, + 0x05, 0x26, 0x18, 0x73, 0x95, 0xec, 0xb9, 0xd3, 0x57, 0x03, 0xfd, 0xc0, 0x7d, 0x97, 0xf4, 0x57, + 0xbf, 0x4f, 0xd6, 0x6a, 0x63, 0x9c, 0x41, 0x31, 0x8d, 0xbe, 0x40, 0xe4, 0x0c, 0xb8, 0x43, 0x90, + 0x47, 0xf3, 0x12, 0x75, 0x22, 0x24, 0x7e, 0x9b, 0x49, 0x9c, 0x08, 0x48, 0xdc, 0x60, 0xd0, 0x5c, + 0x11, 0x46, 0x0e, 0x23, 0xeb, 0xaf, 0x99, 0xac, 0x61, 0x14, 0x14, 0x72, 0x15, 0xc6, 0x88, 0x90, + 0xda, 0x9e, 0xe3, 0xda, 0x2d, 0x52, 0xf4, 0x0e, 0x16, 0xf3, 0x37, 0xdf, 0xa7, 0x89, 0x32, 0x8a, + 0x61, 0x45, 0x0f, 0x95, 0xcb, 0x01, 0x39, 0x66, 0xa8, 0xa3, 0x5a, 0x33, 0x42, 0xc2, 0x4d, 0xa6, + 0x88, 0xc7, 0x9f, 0x7b, 0x1f, 0x1c, 0xc5, 0x9f, 0x49, 0x4d, 0x0a, 0x6a, 0x12, 0xbd, 0xcb, 0x94, + 0xfe, 0xce, 0x87, 0x68, 0x2e, 0x4e, 0x78, 0x02, 0x02, 0x3a, 0x05, 0xbc, 0xb8, 0x83, 0x5c, 0x17, + 0x75, 0x9c, 0xaa, 0xd9, 0x0c, 0x53, 0x2f, 0xf0, 0x9a, 0x9e, 0xfe, 0xc4, 0xeb, 0xa2, 0x17, 0xaf, + 0x52, 0x64, 0xbe, 0xd9, 0xcc, 0x6d, 0xc1, 0xb1, 0x90, 0xa8, 0x88, 0x21, 0xf3, 0x93, 0x4c, 0xe6, + 0xd1, 0xae, 0xc8, 0xc0, 0x62, 0xd7, 0x81, 0x8f, 0x7b, 0xbe, 0x8c, 0x21, 0xf3, 0xf7, 0x98, 0x4c, + 0x9d, 0x61, 0xb9, 0x4b, 0xb1, 0xc4, 0x6b, 0x30, 0xfe, 0x14, 0xea, 0xdc, 0xb0, 0x1d, 0xb6, 0x35, + 0x12, 0x43, 0xdc, 0xa7, 0x98, 0xb8, 0x31, 0x06, 0x24, 0x7b, 0x25, 0x58, 0xd6, 0x25, 0x48, 0x6d, + 0x9b, 0x35, 0x14, 0x43, 0xc4, 0xa7, 0x99, 0x88, 0x23, 0x98, 0x1f, 0x43, 0xf3, 0x30, 0xbc, 0x63, + 0xb3, 0x65, 0x29, 0x1a, 0xfe, 0x3c, 0x83, 0x0f, 0x71, 0x0c, 0x13, 0xd1, 0xb6, 0xdb, 0x7b, 0x4d, + 0xbc, 0x66, 0x45, 0x8b, 0xf8, 0x0c, 0x17, 0xc1, 0x31, 0x4c, 0xc4, 0x21, 0xcc, 0xfa, 0x02, 0x17, + 0xe1, 0x04, 0xec, 0xf9, 0x08, 0x0c, 0xd9, 0x56, 0x73, 0xdf, 0xb6, 0xe2, 0x28, 0xf1, 0x59, 0x26, + 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x0c, 0x83, 0x71, 0x1d, 0xf1, 0xf9, 0xd7, 0x79, 0x7a, 0x70, 0x0f, + 0x5c, 0x85, 0x31, 0x5e, 0xa0, 0x1a, 0xb6, 0x15, 0x43, 0xc4, 0x1f, 0x30, 0x11, 0xa3, 0x01, 0x18, + 0x9b, 0x86, 0x8b, 0x1c, 0x77, 0x07, 0xc5, 0x11, 0xf2, 0x05, 0x3e, 0x0d, 0x06, 0x61, 0xa6, 0xbc, + 0x81, 0xac, 0xda, 0x6e, 0x3c, 0x09, 0x2f, 0x72, 0x53, 0x72, 0x0c, 0x16, 0x51, 0x84, 0x91, 0x96, + 0xd9, 0x71, 0x76, 0xcd, 0x66, 0x2c, 0x77, 0x7c, 0x91, 0xc9, 0x18, 0xf6, 0x40, 0xcc, 0x22, 0x7b, + 0xd6, 0x61, 0xc4, 0x7c, 0x89, 0x5b, 0x24, 0x00, 0x63, 0xa9, 0xe7, 0xb8, 0x64, 0x03, 0xea, 0x30, + 0xd2, 0xbe, 0xcc, 0x53, 0x8f, 0x62, 0x57, 0x83, 0x12, 0x2f, 0xc3, 0xa0, 0xd3, 0x78, 0x36, 0x96, + 0x98, 0x3f, 0xe4, 0x9e, 0x26, 0x00, 0x0c, 0xbe, 0x0e, 0x77, 0x86, 0x2e, 0x13, 0x31, 0x84, 0xfd, + 0x11, 0x13, 0x36, 0x19, 0xb2, 0x54, 0xb0, 0x92, 0x70, 0x58, 0x91, 0x7f, 0xcc, 0x4b, 0x02, 0x92, + 0x64, 0xad, 0xe3, 0x17, 0x05, 0xc7, 0xdc, 0x3e, 0x9c, 0xd5, 0xfe, 0x84, 0x5b, 0x8d, 0x62, 0x05, + 0xab, 0x6d, 0xc2, 0x24, 0x93, 0x78, 0x38, 0xbf, 0x7e, 0x85, 0x17, 0x56, 0x8a, 0xde, 0x12, 0xbd, + 0xfb, 0x3f, 0x60, 0xca, 0x33, 0x27, 0xef, 0x48, 0x9d, 0x6a, 0xcb, 0x6c, 0xc7, 0x90, 0xfc, 0x55, + 0x26, 0x99, 0x57, 0x7c, 0xaf, 0xa5, 0x75, 0x56, 0xcd, 0x36, 0x16, 0xfe, 0x38, 0xa4, 0xb9, 0xf0, + 0x3d, 0xab, 0x83, 0x6a, 0xf6, 0x8e, 0xd5, 0x78, 0x16, 0xd5, 0x63, 0x88, 0xfe, 0x53, 0xc9, 0x55, + 0x5b, 0x01, 0x38, 0x96, 0xbc, 0x0c, 0x9a, 0xd7, 0xab, 0x54, 0x1b, 0xad, 0xb6, 0xdd, 0x71, 0x23, + 0x24, 0xfe, 0x19, 0xf7, 0x94, 0x87, 0x5b, 0x26, 0xb0, 0x5c, 0x19, 0x46, 0xc9, 0xd7, 0xb8, 0x21, + 0xf9, 0x35, 0x26, 0x68, 0xc4, 0x47, 0xb1, 0xc2, 0x51, 0xb3, 0x5b, 0x6d, 0xb3, 0x13, 0xa7, 0xfe, + 0xfd, 0x39, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0xbb, 0xdf, 0x46, 0x78, 0xb5, 0x8f, 0x21, 0xe1, + 0xeb, 0xbc, 0x70, 0x70, 0x0c, 0x13, 0xc1, 0x1b, 0x86, 0x18, 0x22, 0xfe, 0x82, 0x8b, 0xe0, 0x18, + 0x2c, 0xe2, 0xbd, 0xfe, 0x42, 0xdb, 0x41, 0x3b, 0x0d, 0xc7, 0xed, 0xd0, 0x3e, 0xf8, 0x60, 0x51, + 0xdf, 0x78, 0x5d, 0x6c, 0xc2, 0x8c, 0x00, 0x34, 0x77, 0x0d, 0xc6, 0xa4, 0x16, 0x43, 0x8f, 0xba, + 0xb3, 0x90, 0xfe, 0xdf, 0x6f, 0xb0, 0x62, 0x24, 0x76, 0x18, 0xb9, 0x15, 0xec, 0x77, 0xb1, 0x0f, + 0x88, 0x16, 0xf6, 0xa1, 0x37, 0x3c, 0xd7, 0x0b, 0x6d, 0x40, 0xee, 0x0a, 0x8c, 0x08, 0x3d, 0x40, + 0xb4, 0xa8, 0xff, 0xc3, 0x44, 0x0d, 0x07, 0x5b, 0x80, 0xdc, 0x12, 0x24, 0xf1, 0x7a, 0x1e, 0x0d, + 0xff, 0xbf, 0x0c, 0x4e, 0xd8, 0x73, 0x0f, 0x41, 0x8a, 0xaf, 0xe3, 0xd1, 0xd0, 0x0f, 0x33, 0xa8, + 0x07, 0xc1, 0x70, 0xbe, 0x86, 0x47, 0xc3, 0xff, 0x1f, 0x87, 0x73, 0x08, 0x86, 0xc7, 0x37, 0xe1, + 0x4b, 0xbf, 0x92, 0x64, 0x75, 0x98, 0xdb, 0xee, 0x32, 0x1c, 0x61, 0x8b, 0x77, 0x34, 0xfa, 0xa3, + 0xec, 0xe1, 0x1c, 0x91, 0xbb, 0x00, 0xfd, 0x31, 0x0d, 0xfe, 0xab, 0x0c, 0x4a, 0xf9, 0x73, 0x45, + 0x18, 0x0a, 0x2c, 0xd8, 0xd1, 0xf0, 0x5f, 0x63, 0xf0, 0x20, 0x0a, 0xab, 0xce, 0x16, 0xec, 0x68, + 0x01, 0xbf, 0xce, 0x55, 0x67, 0x08, 0x6c, 0x36, 0xbe, 0x56, 0x47, 0xa3, 0x7f, 0x83, 0x5b, 0x9d, + 0x43, 0x72, 0x8f, 0xc0, 0xa0, 0x57, 0x7f, 0xa3, 0xf1, 0xbf, 0xc9, 0xf0, 0x3e, 0x06, 0x5b, 0x20, + 0x50, 0xff, 0xa3, 0x45, 0xfc, 0x16, 0xb7, 0x40, 0x00, 0x85, 0xd3, 0x48, 0x5e, 0xd3, 0xa3, 0x25, + 0x7d, 0x8c, 0xa7, 0x91, 0xb4, 0xa4, 0x63, 0x6f, 0x92, 0x32, 0x18, 0x2d, 0xe2, 0xb7, 0xb9, 0x37, + 0x09, 0x3f, 0x56, 0x43, 0x5e, 0x24, 0xa3, 0x65, 0xfc, 0x2e, 0x57, 0x43, 0x5a, 0x23, 0x73, 0xeb, + 0xa0, 0x77, 0x2f, 0x90, 0xd1, 0xf2, 0x3e, 0xce, 0xe4, 0x8d, 0x77, 0xad, 0x8f, 0xb9, 0xc7, 0x60, + 0x32, 0x7c, 0x71, 0x8c, 0x96, 0xfa, 0x89, 0x37, 0xa4, 0xd7, 0x99, 0xe0, 0xda, 0x98, 0xdb, 0xf4, + 0xab, 0x6c, 0x70, 0x61, 0x8c, 0x16, 0xfb, 0xc9, 0x37, 0xc4, 0x42, 0x1b, 0x5c, 0x17, 0x73, 0x79, + 0x00, 0x7f, 0x4d, 0x8a, 0x96, 0xf5, 0x29, 0x26, 0x2b, 0x00, 0xc2, 0xa9, 0xc1, 0x96, 0xa4, 0x68, + 0xfc, 0xa7, 0x79, 0x6a, 0x30, 0x04, 0x4e, 0x0d, 0xbe, 0x1a, 0x45, 0xa3, 0x9f, 0xe7, 0xa9, 0xc1, + 0x21, 0xb9, 0xcb, 0x90, 0xb2, 0xf6, 0x9a, 0x4d, 0x1c, 0x5b, 0xfa, 0xc1, 0xd7, 0x88, 0xd2, 0xff, + 0xf2, 0x26, 0x03, 0x73, 0x40, 0x6e, 0x09, 0xfa, 0x51, 0xeb, 0x06, 0xaa, 0x47, 0x21, 0xff, 0xf5, + 0x4d, 0x5e, 0x4f, 0x30, 0x77, 0xee, 0x11, 0x00, 0xfa, 0x32, 0x4d, 0x4e, 0x89, 0x22, 0xb0, 0xff, + 0xf6, 0x26, 0xbb, 0xa1, 0xe0, 0x43, 0x7c, 0x01, 0xf4, 0xbe, 0xc3, 0xc1, 0x02, 0x5e, 0x17, 0x05, + 0x90, 0x17, 0xf0, 0x4b, 0x70, 0xe4, 0x09, 0xc7, 0xb6, 0x5c, 0x73, 0x27, 0x0a, 0xfd, 0xef, 0x0c, + 0xcd, 0xf9, 0xb1, 0xc1, 0x5a, 0x76, 0x07, 0xb9, 0xe6, 0x8e, 0x13, 0x85, 0xfd, 0x0f, 0x86, 0xf5, + 0x00, 0x18, 0x5c, 0x33, 0x1d, 0x37, 0xce, 0xbc, 0xff, 0x93, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0x3f, + 0x3f, 0x89, 0xf6, 0xa3, 0xb0, 0x3f, 0xe4, 0x4a, 0x33, 0xfe, 0xdc, 0x43, 0x30, 0x88, 0x3f, 0xd2, + 0x5b, 0x3b, 0x11, 0xe0, 0x1f, 0x31, 0xb0, 0x8f, 0xc0, 0x4f, 0x76, 0xdc, 0xba, 0xdb, 0x88, 0x36, + 0xf6, 0x7f, 0x31, 0x4f, 0x73, 0xfe, 0x5c, 0x1e, 0x86, 0x1c, 0xb7, 0x5e, 0xdf, 0x63, 0x1d, 0x4d, + 0x04, 0xfc, 0xc7, 0x6f, 0x7a, 0x2f, 0xb9, 0x1e, 0xa6, 0x70, 0x32, 0x7c, 0xb3, 0x0e, 0xae, 0xda, + 0x57, 0x6d, 0xba, 0x4d, 0x07, 0x7f, 0xd7, 0x84, 0x4c, 0xcd, 0x6e, 0xdd, 0xb0, 0x9d, 0x33, 0x5e, + 0x21, 0x39, 0xe3, 0xee, 0x22, 0xbc, 0x7e, 0xb0, 0x6d, 0xb6, 0x24, 0xfe, 0x3c, 0x75, 0xb8, 0xbd, + 0x39, 0x72, 0xec, 0x5a, 0x69, 0x60, 0xf5, 0x2a, 0x64, 0xe7, 0x5b, 0x3f, 0x0e, 0x03, 0x44, 0xe1, + 0xb3, 0xe4, 0x74, 0x49, 0x29, 0x24, 0x6f, 0xbe, 0x32, 0xdd, 0x67, 0xb0, 0x31, 0x8f, 0xba, 0x40, + 0xb6, 0x26, 0x13, 0x02, 0x75, 0xc1, 0xa3, 0x9e, 0xa3, 0xbb, 0x93, 0x02, 0xf5, 0x9c, 0x47, 0x5d, + 0x24, 0xfb, 0x94, 0xaa, 0x40, 0x5d, 0xf4, 0xa8, 0x4b, 0x64, 0x2f, 0x7e, 0x44, 0xa0, 0x2e, 0x79, + 0xd4, 0xf3, 0x64, 0x07, 0x3e, 0x29, 0x50, 0xcf, 0x7b, 0xd4, 0x0b, 0x64, 0xf3, 0x7d, 0x5c, 0xa0, + 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0xa6, 0xbb, 0x2e, 0x50, 0x2f, 0x7a, 0xd4, 0x4b, 0xe4, 0x26, 0xc9, + 0x11, 0x81, 0x7a, 0x49, 0xcf, 0xc0, 0x11, 0x3a, 0xf3, 0x79, 0x72, 0x42, 0x3b, 0xc6, 0xc8, 0x7c, + 0xd0, 0xa7, 0x9f, 0x25, 0xb7, 0x46, 0x06, 0x44, 0xfa, 0x59, 0x9f, 0xbe, 0x40, 0xee, 0x4f, 0x6b, + 0x22, 0x7d, 0xc1, 0xa7, 0x9f, 0x4b, 0x8f, 0x90, 0x9b, 0x33, 0x02, 0xfd, 0x9c, 0x4f, 0x5f, 0x4c, + 0x8f, 0xe2, 0x98, 0x15, 0xe9, 0x8b, 0x3e, 0x7d, 0x29, 0x3d, 0x76, 0x42, 0x99, 0x19, 0x16, 0xe9, + 0x4b, 0xd9, 0x0f, 0x12, 0xf7, 0x5a, 0xbe, 0x7b, 0x27, 0x45, 0xf7, 0x7a, 0x8e, 0x9d, 0x14, 0x1d, + 0xeb, 0xb9, 0x74, 0x52, 0x74, 0xa9, 0xe7, 0xcc, 0x49, 0xd1, 0x99, 0x9e, 0x1b, 0x27, 0x45, 0x37, + 0x7a, 0x0e, 0x9c, 0x14, 0x1d, 0xe8, 0xb9, 0x6e, 0x52, 0x74, 0x9d, 0xe7, 0xb4, 0x49, 0xd1, 0x69, + 0x9e, 0xbb, 0x26, 0x45, 0x77, 0x79, 0x8e, 0x4a, 0x4b, 0x8e, 0xf2, 0x5d, 0x94, 0x96, 0x5c, 0xe4, + 0x3b, 0x27, 0x2d, 0x39, 0xc7, 0x77, 0x4b, 0x5a, 0x72, 0x8b, 0xef, 0x90, 0xb4, 0xe4, 0x10, 0xdf, + 0x15, 0x69, 0xc9, 0x15, 0xbe, 0x13, 0x58, 0x8e, 0x19, 0xa8, 0x1d, 0x92, 0x63, 0xea, 0x81, 0x39, + 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, + 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0xc1, 0x39, 0xa6, 0x46, 0xe4, 0x98, + 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0xda, 0x33, 0xc7, + 0x7c, 0xf7, 0x4e, 0x8a, 0xee, 0x0d, 0xcd, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, + 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, + 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, + 0x53, 0x7b, 0xe6, 0x98, 0x1a, 0xcc, 0xb1, 0xbf, 0x54, 0x41, 0xa7, 0x39, 0xb6, 0x4e, 0xee, 0xf8, + 0x30, 0x57, 0x64, 0xa4, 0x4c, 0x1b, 0xc0, 0xae, 0xd3, 0x7c, 0x97, 0x64, 0xa4, 0x5c, 0x13, 0xe9, + 0x0b, 0x1e, 0x9d, 0x67, 0x9b, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xbe, 0x89, 0xf4, 0x45, 0x8f, 0xce, + 0x33, 0x4e, 0xa4, 0x2f, 0x79, 0x74, 0x9e, 0x73, 0x22, 0xfd, 0xbc, 0x47, 0xe7, 0x59, 0x27, 0xd2, + 0x2f, 0x78, 0x74, 0x9e, 0x77, 0x22, 0xfd, 0xa2, 0x47, 0xe7, 0x99, 0x27, 0xd2, 0x2f, 0xe9, 0x27, + 0xe4, 0xdc, 0xe3, 0x0c, 0x9e, 0x6b, 0x4f, 0xc8, 0xd9, 0x27, 0x71, 0x9c, 0xf5, 0x39, 0x78, 0xfe, + 0x49, 0x1c, 0x0b, 0x3e, 0x07, 0xcf, 0x40, 0x89, 0xe3, 0x5c, 0xf6, 0x23, 0xc4, 0x7d, 0x96, 0xec, + 0xbe, 0x29, 0xc9, 0x7d, 0x89, 0x80, 0xeb, 0xa6, 0x24, 0xd7, 0x25, 0x02, 0x6e, 0x9b, 0x92, 0xdc, + 0x96, 0x08, 0xb8, 0x6c, 0x4a, 0x72, 0x59, 0x22, 0xe0, 0xae, 0x29, 0xc9, 0x5d, 0x89, 0x80, 0xab, + 0xa6, 0x24, 0x57, 0x25, 0x02, 0x6e, 0x9a, 0x92, 0xdc, 0x94, 0x08, 0xb8, 0x68, 0x4a, 0x72, 0x51, + 0x22, 0xe0, 0x9e, 0x29, 0xc9, 0x3d, 0x89, 0x80, 0x6b, 0x8e, 0xcb, 0xae, 0x49, 0x04, 0xdd, 0x72, + 0x5c, 0x76, 0x4b, 0x22, 0xe8, 0x92, 0xe3, 0xb2, 0x4b, 0x12, 0x41, 0x77, 0x1c, 0x97, 0xdd, 0x91, + 0x08, 0xba, 0xe2, 0x67, 0x09, 0xde, 0x11, 0x6e, 0xb8, 0x9d, 0xbd, 0x9a, 0x7b, 0x5b, 0x1d, 0xe1, + 0xbc, 0xd0, 0x3e, 0x0c, 0x2d, 0xe8, 0x73, 0xa4, 0x61, 0x0d, 0x76, 0x9c, 0xd2, 0x0a, 0x36, 0x2f, + 0x34, 0x16, 0x01, 0x84, 0x15, 0x8e, 0x58, 0xbc, 0xad, 0xde, 0x70, 0x5e, 0x68, 0x33, 0xa2, 0xf5, + 0xbb, 0xf8, 0x8e, 0x77, 0x6c, 0x2f, 0x25, 0x78, 0xc7, 0xc6, 0xcc, 0x7f, 0xd8, 0x8e, 0x6d, 0x36, + 0xda, 0xe4, 0x9e, 0xb1, 0x67, 0xa3, 0x8d, 0xdd, 0xb5, 0xea, 0xc4, 0xed, 0xe0, 0x66, 0xa3, 0x4d, + 0xeb, 0x19, 0xf5, 0xed, 0xed, 0xb7, 0x58, 0x04, 0x1b, 0xa8, 0x1d, 0x12, 0xc1, 0x87, 0xed, 0xb7, + 0xe6, 0x85, 0x52, 0x72, 0xd8, 0x08, 0x56, 0x0f, 0x1d, 0xc1, 0x87, 0xed, 0xbc, 0xe6, 0x85, 0xf2, + 0x72, 0xe8, 0x08, 0x7e, 0x07, 0xfa, 0x21, 0x16, 0xc1, 0xbe, 0xf9, 0x0f, 0xdb, 0x0f, 0xcd, 0x46, + 0x9b, 0x3c, 0x34, 0x82, 0xd5, 0x43, 0x44, 0x70, 0x9c, 0xfe, 0x68, 0x36, 0xda, 0xb4, 0xe1, 0x11, + 0x7c, 0xdb, 0xdd, 0xcc, 0x67, 0x14, 0x18, 0xaf, 0x34, 0xea, 0xe5, 0xd6, 0x0d, 0x54, 0xaf, 0xa3, + 0x3a, 0xb3, 0xe3, 0xbc, 0x50, 0x09, 0x7a, 0xb8, 0xfa, 0xe5, 0x57, 0xa6, 0x7d, 0x0b, 0x2f, 0x41, + 0x8a, 0xda, 0x74, 0x7e, 0x3e, 0x7d, 0x53, 0x89, 0xa8, 0x70, 0x1e, 0xab, 0x7e, 0x92, 0xc3, 0xce, + 0xce, 0xa7, 0xff, 0x41, 0x09, 0x54, 0x39, 0x6f, 0x38, 0xfb, 0x31, 0xa2, 0xa1, 0x75, 0xdb, 0x1a, + 0x9e, 0x89, 0xa5, 0x61, 0x40, 0xb7, 0xbb, 0xba, 0x74, 0x0b, 0x68, 0xb5, 0x07, 0x63, 0x95, 0x46, + 0xbd, 0x42, 0xfe, 0x72, 0x37, 0x8e, 0x4a, 0x94, 0x47, 0xaa, 0x07, 0xf3, 0x42, 0x58, 0x06, 0x11, + 0x5e, 0x48, 0x8b, 0x35, 0x22, 0xdb, 0xc0, 0x8f, 0xb5, 0x84, 0xc7, 0xce, 0xf6, 0x7a, 0xac, 0x5f, + 0xd9, 0xbd, 0x07, 0xce, 0xf6, 0x7a, 0xa0, 0x9f, 0x43, 0xde, 0xa3, 0x9e, 0xe1, 0x8b, 0x33, 0xbd, + 0x6c, 0xa3, 0x1f, 0x87, 0xc4, 0x32, 0xbd, 0x08, 0x3c, 0x5c, 0x18, 0xc6, 0x4a, 0x7d, 0xf7, 0x95, + 0xe9, 0xe4, 0xd6, 0x5e, 0xa3, 0x6e, 0x24, 0x96, 0xeb, 0xfa, 0x35, 0xe8, 0x7f, 0x1f, 0xfb, 0xfb, + 0x37, 0xcc, 0xb0, 0xc8, 0x18, 0x1e, 0xe8, 0xb9, 0x47, 0x84, 0x1f, 0x7c, 0x86, 0x6e, 0x23, 0xce, + 0x6d, 0x35, 0x2c, 0xf7, 0xec, 0xc2, 0x45, 0x83, 0x8a, 0xc8, 0xfe, 0x4f, 0x00, 0xfa, 0xcc, 0x92, + 0xe9, 0xec, 0xea, 0x15, 0x2e, 0x99, 0x3e, 0xfa, 0xe2, 0x77, 0x5f, 0x99, 0x5e, 0x8c, 0x23, 0xf5, + 0xc1, 0xba, 0xe9, 0xec, 0x3e, 0xe8, 0xee, 0xb7, 0xd1, 0x5c, 0x61, 0xdf, 0x45, 0x0e, 0x97, 0xde, + 0xe6, 0xab, 0x1e, 0x9b, 0x57, 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0x2b, 0xe2, 0x9c, 0xe6, 0xdf, + 0xea, 0x7c, 0x9e, 0xe1, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xcd, + 0xeb, 0xa3, 0x34, 0x57, 0xf5, 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x9f, 0xd0, 0x6c, 0xf5, 0xf2, + 0x69, 0xcb, 0xa2, 0x97, 0x10, 0x7f, 0xb9, 0xf6, 0x82, 0xde, 0xd6, 0x2e, 0x20, 0x97, 0xbc, 0xf9, + 0xc2, 0xb4, 0x92, 0xfd, 0x4c, 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x5b, 0x9b, 0xf9, 0x2f, 0x4b, 0x4f, + 0xf5, 0x4e, 0x58, 0xe8, 0x79, 0x05, 0x26, 0xbb, 0x2a, 0x39, 0x35, 0xd3, 0xdb, 0x5b, 0xce, 0xad, + 0xc3, 0x96, 0x73, 0xa6, 0xe0, 0xd7, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x19, 0x49, 0xbd, + 0x63, 0xdd, 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, + 0x25, 0xbf, 0x1f, 0xf7, 0x00, 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x41, + 0x48, 0xcf, 0x40, 0x62, 0xad, 0xc3, 0x34, 0x1c, 0xa5, 0xf8, 0xb5, 0x4e, 0xa1, 0x63, 0x5a, 0xb5, + 0x5d, 0x23, 0xb1, 0xd6, 0xd1, 0x4f, 0x82, 0x9a, 0x67, 0xbf, 0x30, 0x30, 0xb4, 0x30, 0x46, 0x19, + 0xf2, 0x56, 0x9d, 0x71, 0x60, 0x9a, 0x9e, 0x81, 0xe4, 0x0a, 0x32, 0xb7, 0x99, 0x12, 0x40, 0x79, + 0xf0, 0x88, 0x41, 0xc6, 0xd9, 0x03, 0x1f, 0x87, 0x14, 0x17, 0xac, 0x9f, 0xc2, 0x88, 0x6d, 0x97, + 0x3d, 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0x54, 0xfd, 0x34, 0xf4, 0x1b, 0x8d, 0x9d, 0x5d, + 0x97, 0x3d, 0xbc, 0x9b, 0x8d, 0x92, 0xb3, 0xd7, 0x61, 0xd0, 0xd3, 0xe8, 0x6d, 0x16, 0x5d, 0xa2, + 0x53, 0xd3, 0xa7, 0x82, 0xeb, 0x09, 0xdf, 0xb7, 0xa4, 0x43, 0xfa, 0x09, 0x48, 0x6d, 0xb8, 0x1d, + 0xbf, 0xe8, 0xf3, 0x8e, 0xd4, 0x1b, 0xcd, 0x7e, 0x50, 0x81, 0x54, 0x09, 0xa1, 0x36, 0x31, 0xf8, + 0xbd, 0x90, 0x2c, 0xd9, 0x4f, 0x5b, 0x4c, 0xc1, 0x71, 0x66, 0x51, 0x4c, 0x66, 0x36, 0x25, 0x64, + 0xfd, 0xde, 0xa0, 0xdd, 0x27, 0x3c, 0xbb, 0x07, 0xf8, 0x88, 0xed, 0xb3, 0x82, 0xed, 0x99, 0x03, + 0x31, 0x53, 0x97, 0xfd, 0x2f, 0xc0, 0x50, 0xe0, 0x29, 0xfa, 0x0c, 0x53, 0x23, 0x21, 0x03, 0x83, + 0xb6, 0xc2, 0x1c, 0x59, 0x04, 0x23, 0xc2, 0x83, 0x31, 0x34, 0x60, 0xe2, 0x1e, 0x50, 0x62, 0xe6, + 0x59, 0xd1, 0xcc, 0xe1, 0xac, 0xcc, 0xd4, 0xf3, 0xd4, 0x46, 0xc4, 0xdc, 0xa7, 0x68, 0x70, 0xf6, + 0x76, 0x22, 0xfe, 0x9c, 0xed, 0x07, 0xb5, 0xd2, 0x68, 0x66, 0x1f, 0x02, 0xa0, 0x29, 0x5f, 0xb6, + 0xf6, 0x5a, 0x52, 0xd6, 0x8d, 0x72, 0x03, 0x6f, 0xee, 0xa2, 0x4d, 0xe4, 0x10, 0x16, 0xb1, 0x9f, + 0xc2, 0x05, 0x06, 0x68, 0x8a, 0x11, 0xfc, 0xfd, 0x91, 0xf8, 0xd0, 0x4e, 0x0c, 0xb3, 0xa6, 0x29, + 0xeb, 0x75, 0xe4, 0xe6, 0x2d, 0xdb, 0xdd, 0x45, 0x1d, 0x09, 0xb1, 0xa0, 0x9f, 0x13, 0x12, 0x76, + 0x74, 0xe1, 0x2e, 0x0f, 0xd1, 0x13, 0x74, 0x2e, 0xfb, 0x15, 0xa2, 0x20, 0x6e, 0x05, 0xba, 0x26, + 0xa8, 0xc6, 0x98, 0xa0, 0x7e, 0x5e, 0xe8, 0xdf, 0x0e, 0x50, 0x53, 0x7a, 0xb5, 0xbc, 0x24, 0xbc, + 0xe7, 0x1c, 0xac, 0xac, 0xf8, 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0xbe, 0x3f, 0x52, 0xe5, 0x1e, 0xdd, + 0xed, 0x61, 0x6d, 0xaa, 0xc6, 0xb5, 0xe9, 0x37, 0xbd, 0x8e, 0x83, 0xfe, 0x56, 0x03, 0xf9, 0x69, + 0x10, 0xfd, 0x81, 0x48, 0xdf, 0xe7, 0x94, 0xa2, 0xa7, 0xea, 0x62, 0x5c, 0xf7, 0xe7, 0x12, 0x85, + 0x82, 0xa7, 0xee, 0x85, 0x43, 0x84, 0x40, 0x2e, 0x51, 0x2c, 0x7a, 0x65, 0x3b, 0xf5, 0x91, 0x17, + 0xa6, 0x95, 0x17, 0x5f, 0x98, 0xee, 0xcb, 0x7e, 0x51, 0x81, 0x71, 0xc6, 0x19, 0x08, 0xdc, 0x07, + 0x25, 0xe5, 0xef, 0xe0, 0x35, 0x23, 0xcc, 0x02, 0x3f, 0xb7, 0xe0, 0xfd, 0xb6, 0x02, 0xe9, 0x2e, + 0x5d, 0xb9, 0xbd, 0xe7, 0x63, 0xa9, 0x9c, 0x53, 0xca, 0xbf, 0x78, 0x9b, 0x5f, 0x87, 0xfe, 0xcd, + 0x46, 0x0b, 0x75, 0xf0, 0x4a, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0x61, 0x0e, 0x1d, 0xe2, 0x34, 0xaa, + 0x9c, 0x40, 0x5b, 0xd0, 0xd3, 0x90, 0x2c, 0x99, 0xae, 0x49, 0x34, 0x18, 0xf6, 0xea, 0xab, 0xe9, + 0x9a, 0xd9, 0x73, 0x30, 0xbc, 0xba, 0x4f, 0x6e, 0xca, 0xd4, 0xc9, 0x2d, 0x10, 0xb1, 0xfb, 0xe3, + 0xfd, 0xea, 0xd9, 0xd9, 0xfe, 0x54, 0x5d, 0xbb, 0xa9, 0xe4, 0x92, 0x44, 0x9f, 0xa7, 0x60, 0x74, + 0x0d, 0xab, 0x4d, 0x70, 0x02, 0x8c, 0x3e, 0x5d, 0xf5, 0x26, 0x2f, 0x35, 0x65, 0xaa, 0xdf, 0x94, + 0x9d, 0x00, 0x65, 0x55, 0x6c, 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xaa, 0x8d, + 0xcf, 0x26, 0x53, 0xa0, 0x8d, 0xb0, 0xe7, 0xfe, 0xad, 0x0a, 0x1a, 0x6d, 0x75, 0x4a, 0x68, 0xbb, + 0x61, 0x35, 0xdc, 0xee, 0x7e, 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0x06, 0xb1, 0x49, 0xaf, 0xb0, 0x5f, + 0xd8, 0xc2, 0xa6, 0x3f, 0xc9, 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0x2b, + 0xa0, 0x56, 0x2a, 0xab, 0x6c, 0x71, 0x5b, 0x3c, 0x10, 0xca, 0x2e, 0xda, 0xb0, 0x6f, 0x6c, 0xcc, + 0xd9, 0x31, 0xb0, 0x00, 0x7d, 0x11, 0x12, 0x95, 0x55, 0xd6, 0xf0, 0x9e, 0x8a, 0x23, 0xc6, 0x48, + 0x54, 0x56, 0xa7, 0xfe, 0x4a, 0x81, 0x11, 0x61, 0x54, 0xcf, 0xc2, 0x30, 0x1d, 0x08, 0x4c, 0x77, + 0xc0, 0x10, 0xc6, 0xb8, 0xce, 0x89, 0xdb, 0xd4, 0x79, 0x2a, 0x0f, 0x63, 0xd2, 0xb8, 0x3e, 0x07, + 0x7a, 0x70, 0x88, 0x29, 0x41, 0x7f, 0x9d, 0x28, 0x84, 0x92, 0xbd, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, + 0xa3, 0x3a, 0x95, 0xf2, 0xc6, 0x66, 0xb9, 0xa4, 0x29, 0xd9, 0xaf, 0x2b, 0x30, 0xc4, 0xda, 0xd6, + 0x9a, 0xdd, 0x46, 0x7a, 0x01, 0x94, 0x3c, 0x8b, 0x87, 0xb7, 0xa6, 0xb7, 0x92, 0xd7, 0xcf, 0x80, + 0x52, 0x88, 0xef, 0x6a, 0xa5, 0xa0, 0x2f, 0x80, 0x52, 0x64, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x98, + 0xfd, 0x91, 0x0a, 0x13, 0xc1, 0x36, 0x9a, 0xd7, 0x93, 0x93, 0xe2, 0x7b, 0x53, 0x6e, 0xf0, 0xec, + 0xc2, 0xb9, 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x27, 0xc5, 0x57, 0xa8, 0x6e, 0x96, 0xae, 0x6b, + 0x22, 0xb9, 0x64, 0x80, 0xda, 0x75, 0x4d, 0x44, 0xa0, 0x76, 0x5d, 0x13, 0x11, 0xa8, 0x5d, 0xd7, + 0x44, 0x04, 0x6a, 0xd7, 0x51, 0x80, 0x40, 0xed, 0xba, 0x26, 0x22, 0x50, 0xbb, 0xae, 0x89, 0x08, + 0xd4, 0xee, 0x6b, 0x22, 0x8c, 0xdc, 0xf3, 0x9a, 0x88, 0x48, 0xef, 0xbe, 0x26, 0x22, 0xd2, 0xbb, + 0xaf, 0x89, 0xe4, 0x92, 0x6e, 0x67, 0x0f, 0xf5, 0x3e, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, + 0x05, 0x78, 0x0d, 0xc6, 0xe8, 0x7e, 0x44, 0xd1, 0xb6, 0x5c, 0xb3, 0x61, 0xa1, 0x8e, 0xfe, 0x6e, + 0x18, 0xa6, 0x43, 0xf4, 0x2d, 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0xb3, 0x3f, + 0x4b, 0xc2, 0x24, 0x1d, 0xa8, 0x98, 0x2d, 0x24, 0x5c, 0x32, 0x3a, 0x2d, 0x1d, 0x29, 0x8d, 0x62, + 0xf8, 0xad, 0x57, 0xa6, 0xe9, 0x68, 0xde, 0x0b, 0xa6, 0xd3, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, + 0x3f, 0xa7, 0xa5, 0x8b, 0x47, 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, + 0xf2, 0xa2, 0xec, 0xb4, 0x74, 0x19, 0x49, 0xe4, 0x2b, 0x7b, 0xf1, 0x76, 0x5a, 0x3a, 0x7a, 0x12, + 0xf9, 0xae, 0x78, 0x91, 0x77, 0x5a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x7a, 0x31, 0x78, 0x5a, 0xba, + 0xaa, 0x24, 0xf2, 0x3d, 0xea, 0x45, 0xe3, 0x69, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, + 0x8c, 0x7c, 0x7d, 0x49, 0x64, 0xbc, 0xe6, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x8f, + 0x1f, 0xab, 0x33, 0xf2, 0x95, 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, + 0x5c, 0xf5, 0xe3, 0x77, 0x46, 0x3e, 0x34, 0x13, 0x39, 0x2b, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, + 0x22, 0xe7, 0x9a, 0xbf, 0x87, 0xfe, 0x2d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0xb2, 0x52, 0xf8, 0x41, + 0x48, 0xe8, 0x65, 0xa5, 0xd0, 0x83, 0x90, 0xb0, 0xcb, 0x4a, 0x61, 0x07, 0x21, 0x21, 0x97, 0x95, + 0x42, 0x0e, 0x42, 0xc2, 0x2d, 0x2b, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x56, 0x0a, 0x35, 0x08, 0x09, + 0xb3, 0xac, 0x14, 0x66, 0x10, 0x12, 0x62, 0x59, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0xb2, 0x52, 0x78, + 0x41, 0x48, 0x68, 0x9d, 0x92, 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0x94, 0x1c, 0x56, 0x10, 0x16, 0x52, + 0xf7, 0xc8, 0x21, 0x35, 0x78, 0xeb, 0x95, 0xe9, 0x7e, 0x3c, 0x14, 0x88, 0xa6, 0x53, 0x72, 0x34, + 0x41, 0x58, 0x24, 0x9d, 0x92, 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0x94, 0x1c, 0x45, 0x10, 0x16, 0x41, + 0x2f, 0xc9, 0x11, 0xe4, 0x5f, 0xf1, 0xc9, 0x4a, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, + 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, + 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x9d, 0x92, + 0x2f, 0x3c, 0x40, 0x58, 0x41, 0x3a, 0x25, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, + 0x5e, 0x21, 0xf4, 0x2d, 0x15, 0x26, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x57, 0x05, 0x3a, 0x1f, + 0xe3, 0x7e, 0x45, 0x58, 0x4c, 0x9d, 0x8f, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x57, 0xa1, 0x72, + 0x8c, 0x2a, 0x74, 0xc5, 0x8b, 0xa1, 0xf3, 0x31, 0xee, 0x5d, 0x74, 0xc7, 0xde, 0xc5, 0x83, 0x8a, + 0xc0, 0xa3, 0xb1, 0x8a, 0xc0, 0x72, 0xac, 0x22, 0x70, 0xcd, 0xf7, 0xe0, 0x87, 0x13, 0x70, 0xd4, + 0xf7, 0x20, 0xfd, 0x44, 0x7e, 0x09, 0x29, 0x1b, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, + 0x89, 0xe5, 0xba, 0xbe, 0x2e, 0x9e, 0x55, 0xe5, 0x0e, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, + 0x3d, 0x05, 0xea, 0x72, 0xdd, 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x45, 0x03, 0x93, 0x75, 0x03, 0x06, + 0x08, 0xbb, 0x43, 0xdc, 0x7b, 0x3b, 0x0f, 0x2e, 0x19, 0x4c, 0x52, 0xf6, 0x25, 0x05, 0x4e, 0x08, + 0xa1, 0xfc, 0xf6, 0x9c, 0x18, 0x5c, 0x8e, 0x75, 0x62, 0x20, 0x24, 0x88, 0x7f, 0x7a, 0x70, 0x5f, + 0xf7, 0x41, 0x75, 0x30, 0x4b, 0xe4, 0x93, 0x84, 0xff, 0x05, 0xa3, 0xfe, 0x0c, 0xc8, 0x2b, 0xdb, + 0x52, 0xf4, 0x66, 0x66, 0x58, 0x6a, 0x2e, 0x49, 0x9b, 0x68, 0x07, 0xc2, 0xbc, 0x6c, 0xcd, 0xe6, + 0x60, 0xac, 0x22, 0xfe, 0xc9, 0x4e, 0xd4, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0x37, 0x3f, 0x3b, 0xdd, + 0x97, 0x7d, 0x00, 0x86, 0x83, 0x7f, 0x95, 0x23, 0x01, 0x07, 0x39, 0x30, 0x97, 0x7c, 0x19, 0x73, + 0xff, 0x8e, 0x02, 0x77, 0x04, 0xd9, 0x1f, 0x6b, 0xb8, 0xbb, 0xcb, 0x16, 0xee, 0xe9, 0x1f, 0x82, + 0x14, 0x62, 0x8e, 0x63, 0x3f, 0x6a, 0xc2, 0x5e, 0x23, 0x43, 0xd9, 0xe7, 0xc8, 0xbf, 0x86, 0x07, + 0x91, 0x36, 0x41, 0xf8, 0x63, 0x17, 0xa6, 0xee, 0x85, 0x7e, 0x2a, 0x5f, 0xd4, 0x6b, 0x44, 0xd2, + 0xeb, 0xf3, 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x09, 0x7a, 0x05, 0xde, 0x56, 0x43, 0xd9, 0xe7, + 0x78, 0xf0, 0x15, 0x52, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x0c, 0xa4, 0xca, 0x32, 0x4f, + 0xb8, 0x9e, 0x25, 0x48, 0x56, 0xec, 0x3a, 0xf9, 0xb9, 0x15, 0xf2, 0xb3, 0xb8, 0xcc, 0xc8, 0xec, + 0x37, 0x72, 0x4f, 0x43, 0xaa, 0xb8, 0xdb, 0x68, 0xd6, 0x3b, 0xc8, 0x62, 0x47, 0xf6, 0x6c, 0x07, + 0x1d, 0x63, 0x0c, 0x8f, 0x96, 0x2d, 0xc2, 0x78, 0xc5, 0xb6, 0x0a, 0xfb, 0x6e, 0xb0, 0x6e, 0xcc, + 0x49, 0x29, 0xc2, 0x8e, 0x7c, 0xc8, 0xdf, 0x79, 0x60, 0x86, 0x42, 0xff, 0x77, 0x5f, 0x99, 0x56, + 0x36, 0xbd, 0xed, 0xf3, 0x55, 0x38, 0xc6, 0xd2, 0xa7, 0x4b, 0xd4, 0x42, 0x94, 0xa8, 0x41, 0x76, + 0x4c, 0x1d, 0x10, 0xb7, 0x8c, 0xc5, 0x59, 0xa1, 0xe2, 0xde, 0x9a, 0x66, 0xb8, 0x29, 0x3a, 0x50, + 0x33, 0xf5, 0x50, 0x9a, 0x85, 0x8a, 0x9b, 0x8b, 0x12, 0x27, 0x69, 0x76, 0x0f, 0x0c, 0x7a, 0xb4, + 0x40, 0x34, 0x04, 0x33, 0x65, 0x61, 0x36, 0x0b, 0x43, 0x81, 0x84, 0xd5, 0xfb, 0x41, 0xc9, 0x6b, + 0x7d, 0xf8, 0xbf, 0x82, 0xa6, 0xe0, 0xff, 0x8a, 0x5a, 0x62, 0xf6, 0x5e, 0x18, 0x93, 0xb6, 0x2f, + 0x31, 0xa5, 0xa4, 0x01, 0xfe, 0xaf, 0xac, 0x0d, 0x4d, 0x25, 0x3f, 0xf2, 0xfb, 0x99, 0xbe, 0xd9, + 0xcb, 0xa0, 0x77, 0x6f, 0x74, 0xea, 0x03, 0x90, 0xc8, 0x63, 0x91, 0xc7, 0x20, 0x51, 0x28, 0x68, + 0xca, 0xd4, 0xd8, 0xff, 0xff, 0xf4, 0x89, 0xa1, 0x02, 0xf9, 0x93, 0xe3, 0xeb, 0xc8, 0x2d, 0x14, + 0x18, 0xf8, 0x61, 0xb8, 0x23, 0x74, 0xa3, 0x14, 0xe3, 0x8b, 0x45, 0x8a, 0x2f, 0x95, 0xba, 0xf0, + 0xa5, 0x12, 0xc1, 0x2b, 0x39, 0x7e, 0xe0, 0x9c, 0xd7, 0x43, 0x36, 0x19, 0xd3, 0xf5, 0xc0, 0x01, + 0x77, 0x3e, 0xf7, 0x30, 0xe3, 0x2d, 0x84, 0xf2, 0xa2, 0x88, 0x03, 0xeb, 0x42, 0xae, 0xc8, 0xf0, + 0xc5, 0x50, 0xfc, 0xb6, 0x74, 0xaa, 0x2a, 0xae, 0x10, 0x4c, 0x48, 0xd1, 0x53, 0xb8, 0x14, 0x2a, + 0x64, 0x37, 0x70, 0xd7, 0xbd, 0xe4, 0x29, 0x5c, 0x0e, 0xe5, 0x6d, 0x44, 0xdc, 0xf9, 0x2a, 0xe7, + 0xce, 0xb0, 0x45, 0x3e, 0x7f, 0x56, 0xbf, 0x83, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38, 0x57, + 0xae, 0xc8, 0x00, 0x85, 0x9e, 0x80, 0xde, 0x56, 0xe2, 0xc8, 0xdc, 0xa3, 0x4c, 0x48, 0xb1, 0xa7, + 0x90, 0x08, 0x53, 0x71, 0x78, 0x61, 0xf3, 0xe6, 0xab, 0x99, 0xbe, 0x97, 0x5f, 0xcd, 0xf4, 0xfd, + 0xe3, 0xab, 0x99, 0xbe, 0xef, 0xbd, 0x9a, 0x51, 0x7e, 0xf0, 0x6a, 0x46, 0xf9, 0xe1, 0xab, 0x19, + 0xe5, 0xa7, 0xaf, 0x66, 0x94, 0xe7, 0x6e, 0x65, 0x94, 0x17, 0x6f, 0x65, 0x94, 0xaf, 0xdc, 0xca, + 0x28, 0xdf, 0xb8, 0x95, 0x51, 0x5e, 0xba, 0x95, 0x51, 0x6e, 0xde, 0xca, 0x28, 0x2f, 0xdf, 0xca, + 0xf4, 0x7d, 0xef, 0x56, 0x46, 0xf9, 0xc1, 0xad, 0x4c, 0xdf, 0x0f, 0x6f, 0x65, 0x94, 0x9f, 0xde, + 0xca, 0xf4, 0x3d, 0xf7, 0x5a, 0xa6, 0xef, 0x85, 0xd7, 0x32, 0x7d, 0x2f, 0xbe, 0x96, 0x51, 0xfe, + 0x3b, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x27, 0x61, 0xe8, 0xaa, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12236,18 +12581,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12289,8 +12636,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12298,8 +12647,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12354,18 +12703,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12419,8 +12770,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12428,8 +12781,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15028,11 +15381,455 @@ func (this *Node) Equal(that interface{}) bool { } return true } - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 GetField3() int32 GetField4() int64 GetField5() uint32 @@ -17528,166 +18325,304 @@ func (this *CustomNameEnum) GetFieldB() []TheTestEnum { return this.FieldB } -func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { - this := &CustomNameEnum{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() +func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { + this := &CustomNameEnum{} + this.FieldA = that.GetFieldA() + this.FieldB = that.GetFieldB() + return this +} + +type UnrecognizedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *string +} + +func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedFromFace(this) +} + +func (this *Unrecognized) GetField1() *string { + return this.Field1 +} + +func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { + this := &Unrecognized{} + this.Field1 = that.GetField1() + return this +} + +type UnrecognizedWithInnerFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetEmbedded() []*UnrecognizedWithInner_Inner + GetField2() *string +} + +func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithInnerFromFace(this) +} + +func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner { + return this.Embedded +} + +func (this *UnrecognizedWithInner) GetField2() *string { + return this.Field2 +} + +func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner { + this := &UnrecognizedWithInner{} + this.Embedded = that.GetEmbedded() + this.Field2 = that.GetField2() + return this +} + +type UnrecognizedWithInner_InnerFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *uint32 +} + +func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithInner_InnerFromFace(this) +} + +func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { + return this.Field1 +} + +func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { + this := &UnrecognizedWithInner_Inner{} + this.Field1 = that.GetField1() + return this +} + +type UnrecognizedWithEmbedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded + GetField2() *string +} + +func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithEmbedFromFace(this) +} + +func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { + return this.UnrecognizedWithEmbed_Embedded +} + +func (this *UnrecognizedWithEmbed) GetField2() *string { + return this.Field2 +} + +func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { + this := &UnrecognizedWithEmbed{} + this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() + this.Field2 = that.GetField2() + return this +} + +type UnrecognizedWithEmbed_EmbeddedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *uint32 +} + +func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) +} + +func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { + return this.Field1 +} + +func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { + this := &UnrecognizedWithEmbed_Embedded{} + this.Field1 = that.GetField1() + return this +} + +type NodeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetLabel() *string + GetChildren() []*Node +} + +func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNodeFromFace(this) +} + +func (this *Node) GetLabel() *string { + return this.Label +} + +func (this *Node) GetChildren() []*Node { + return this.Children +} + +func NewNodeFromFace(that NodeFace) *Node { + this := &Node{} + this.Label = that.GetLabel() + this.Children = that.GetChildren() return this } -type UnrecognizedFace interface { +type NonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetField1() *string + GetField1() *T } -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedFromFace(this) +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) } -func (this *Unrecognized) GetField1() *string { +func (this *NonByteCustomType) GetField1() *T { return this.Field1 } -func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { - this := &Unrecognized{} +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} this.Field1 = that.GetField1() return this } -type UnrecognizedWithInnerFace interface { +type NidOptNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetEmbedded() []*UnrecognizedWithInner_Inner - GetField2() *string + GetField1() T } -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInnerFromFace(this) -} - -func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner { - return this.Embedded +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithInner) GetField2() *string { - return this.Field2 +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 } -func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - this.Embedded = that.GetEmbedded() - this.Field2 = that.GetField2() +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() return this } -type UnrecognizedWithInner_InnerFace interface { +type NinOptNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 + GetField1() *T } -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInner_InnerFromFace(this) +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { +func (this *NinOptNonByteCustomType) GetField1() *T { return this.Field1 } -func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} this.Field1 = that.GetField1() return this } -type UnrecognizedWithEmbedFace interface { +type NidRepNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded - GetField2() *string + GetField1() []T } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbedFromFace(this) -} - -func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { - return this.UnrecognizedWithEmbed_Embedded +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithEmbed) GetField2() *string { - return this.Field2 +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 } -func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() - this.Field2 = that.GetField2() +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() return this } -type UnrecognizedWithEmbed_EmbeddedFace interface { +type NinRepNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 + GetField1() []T } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { +func (this *NinRepNonByteCustomType) GetField1() []T { return this.Field1 } -func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} this.Field1 = that.GetField1() return this } -type NodeFace interface { +type ProtoTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetLabel() *string - GetChildren() []*Node + GetField2() *string } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNodeFromFace(this) -} - -func (this *Node) GetLabel() *string { - return this.Label +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) } -func (this *Node) GetChildren() []*Node { - return this.Children +func (this *ProtoType) GetField2() *string { + return this.Field2 } -func NewNodeFromFace(that NodeFace) *Node { - this := &Node{} - this.Label = that.GetLabel() - this.Children = that.GetChildren() +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() return this } @@ -18713,9 +19648,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18737,9 +19670,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19246,6 +20177,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19254,11 +20273,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19268,1370 +20288,1370 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } -func (m *NidOptNative) Marshal() (data []byte, err error) { +func (m *NidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptNative) MarshalTo(data []byte) (int, error) { +func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.Field1)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.Field2)))) - data[i] = 0x18 + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.Field3)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.Field5)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(m.Field9)) - data[i] = 0x55 + i = encodeFixed32Thetest(dAtA, i, uint32(m.Field9)) + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(m.Field10)) - data[i] = 0x59 + i = encodeFixed32Thetest(dAtA, i, uint32(m.Field10)) + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Field11)) - data[i] = 0x61 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Field11)) + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Field12)) - data[i] = 0x68 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Field12)) + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field9)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field10)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field11)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field12)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepNative) Marshal() (data []byte, err error) { +func (m *NidRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f1 := math.Float64bits(float64(num)) - data[i] = uint8(f1) + dAtA[i] = uint8(f1) i++ - data[i] = uint8(f1 >> 8) + dAtA[i] = uint8(f1 >> 8) i++ - data[i] = uint8(f1 >> 16) + dAtA[i] = uint8(f1 >> 16) i++ - data[i] = uint8(f1 >> 24) + dAtA[i] = uint8(f1 >> 24) i++ - data[i] = uint8(f1 >> 32) + dAtA[i] = uint8(f1 >> 32) i++ - data[i] = uint8(f1 >> 40) + dAtA[i] = uint8(f1 >> 40) i++ - data[i] = uint8(f1 >> 48) + dAtA[i] = uint8(f1 >> 48) i++ - data[i] = uint8(f1 >> 56) + dAtA[i] = uint8(f1 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f2 := math.Float32bits(float32(num)) - data[i] = uint8(f2) + dAtA[i] = uint8(f2) i++ - data[i] = uint8(f2 >> 8) + dAtA[i] = uint8(f2 >> 8) i++ - data[i] = uint8(f2 >> 16) + dAtA[i] = uint8(f2 >> 16) i++ - data[i] = uint8(f2 >> 24) + dAtA[i] = uint8(f2 >> 24) i++ } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x3 := (uint32(num) << 1) ^ uint32((num >> 31)) for x3 >= 1<<7 { - data[i] = uint8(uint64(x3)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) x3 >>= 7 i++ } - data[i] = uint8(x3) + dAtA[i] = uint8(x3) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x4 := (uint64(num) << 1) ^ uint64((num >> 63)) for x4 >= 1<<7 { - data[i] = uint8(uint64(x4)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) x4 >>= 7 i++ } - data[i] = uint8(x4) + dAtA[i] = uint8(x4) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepNative) Marshal() (data []byte, err error) { +func (m *NinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f5 := math.Float64bits(float64(num)) - data[i] = uint8(f5) + dAtA[i] = uint8(f5) i++ - data[i] = uint8(f5 >> 8) + dAtA[i] = uint8(f5 >> 8) i++ - data[i] = uint8(f5 >> 16) + dAtA[i] = uint8(f5 >> 16) i++ - data[i] = uint8(f5 >> 24) + dAtA[i] = uint8(f5 >> 24) i++ - data[i] = uint8(f5 >> 32) + dAtA[i] = uint8(f5 >> 32) i++ - data[i] = uint8(f5 >> 40) + dAtA[i] = uint8(f5 >> 40) i++ - data[i] = uint8(f5 >> 48) + dAtA[i] = uint8(f5 >> 48) i++ - data[i] = uint8(f5 >> 56) + dAtA[i] = uint8(f5 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f6 := math.Float32bits(float32(num)) - data[i] = uint8(f6) + dAtA[i] = uint8(f6) i++ - data[i] = uint8(f6 >> 8) + dAtA[i] = uint8(f6 >> 8) i++ - data[i] = uint8(f6 >> 16) + dAtA[i] = uint8(f6 >> 16) i++ - data[i] = uint8(f6 >> 24) + dAtA[i] = uint8(f6 >> 24) i++ } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x7 := (uint32(num) << 1) ^ uint32((num >> 31)) for x7 >= 1<<7 { - data[i] = uint8(uint64(x7)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x7)&0x7f | 0x80) x7 >>= 7 i++ } - data[i] = uint8(x7) + dAtA[i] = uint8(x7) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x8 := (uint64(num) << 1) ^ uint64((num >> 63)) for x8 >= 1<<7 { - data[i] = uint8(uint64(x8)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x8)&0x7f | 0x80) x8 >>= 7 i++ } - data[i] = uint8(x8) + dAtA[i] = uint8(x8) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepPackedNative) Marshal() (data []byte, err error) { +func (m *NidRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f9 := math.Float64bits(float64(num)) - data[i] = uint8(f9) + dAtA[i] = uint8(f9) i++ - data[i] = uint8(f9 >> 8) + dAtA[i] = uint8(f9 >> 8) i++ - data[i] = uint8(f9 >> 16) + dAtA[i] = uint8(f9 >> 16) i++ - data[i] = uint8(f9 >> 24) + dAtA[i] = uint8(f9 >> 24) i++ - data[i] = uint8(f9 >> 32) + dAtA[i] = uint8(f9 >> 32) i++ - data[i] = uint8(f9 >> 40) + dAtA[i] = uint8(f9 >> 40) i++ - data[i] = uint8(f9 >> 48) + dAtA[i] = uint8(f9 >> 48) i++ - data[i] = uint8(f9 >> 56) + dAtA[i] = uint8(f9 >> 56) i++ } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f10 := math.Float32bits(float32(num)) - data[i] = uint8(f10) + dAtA[i] = uint8(f10) i++ - data[i] = uint8(f10 >> 8) + dAtA[i] = uint8(f10 >> 8) i++ - data[i] = uint8(f10 >> 16) + dAtA[i] = uint8(f10 >> 16) i++ - data[i] = uint8(f10 >> 24) + dAtA[i] = uint8(f10 >> 24) i++ } } if len(m.Field3) > 0 { - data12 := make([]byte, len(m.Field3)*10) + dAtA12 := make([]byte, len(m.Field3)*10) var j11 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j11++ } - data12[j11] = uint8(num) + dAtA12[j11] = uint8(num) j11++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j11)) - i += copy(data[i:], data12[:j11]) + i = encodeVarintThetest(dAtA, i, uint64(j11)) + i += copy(dAtA[i:], dAtA12[:j11]) } if len(m.Field4) > 0 { - data14 := make([]byte, len(m.Field4)*10) + dAtA14 := make([]byte, len(m.Field4)*10) var j13 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data14[j13] = uint8(uint64(num)&0x7f | 0x80) + dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j13++ } - data14[j13] = uint8(num) + dAtA14[j13] = uint8(num) j13++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j13)) - i += copy(data[i:], data14[:j13]) + i = encodeVarintThetest(dAtA, i, uint64(j13)) + i += copy(dAtA[i:], dAtA14[:j13]) } if len(m.Field5) > 0 { - data16 := make([]byte, len(m.Field5)*10) + dAtA16 := make([]byte, len(m.Field5)*10) var j15 int for _, num := range m.Field5 { for num >= 1<<7 { - data16[j15] = uint8(uint64(num)&0x7f | 0x80) + dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j15++ } - data16[j15] = uint8(num) + dAtA16[j15] = uint8(num) j15++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j15)) - i += copy(data[i:], data16[:j15]) + i = encodeVarintThetest(dAtA, i, uint64(j15)) + i += copy(dAtA[i:], dAtA16[:j15]) } if len(m.Field6) > 0 { - data18 := make([]byte, len(m.Field6)*10) + dAtA18 := make([]byte, len(m.Field6)*10) var j17 int for _, num := range m.Field6 { for num >= 1<<7 { - data18[j17] = uint8(uint64(num)&0x7f | 0x80) + dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j17++ } - data18[j17] = uint8(num) + dAtA18[j17] = uint8(num) j17++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j17)) - i += copy(data[i:], data18[:j17]) + i = encodeVarintThetest(dAtA, i, uint64(j17)) + i += copy(dAtA[i:], dAtA18[:j17]) } if len(m.Field7) > 0 { - data19 := make([]byte, len(m.Field7)*5) + dAtA19 := make([]byte, len(m.Field7)*5) var j20 int for _, num := range m.Field7 { x21 := (uint32(num) << 1) ^ uint32((num >> 31)) for x21 >= 1<<7 { - data19[j20] = uint8(uint64(x21)&0x7f | 0x80) + dAtA19[j20] = uint8(uint64(x21)&0x7f | 0x80) j20++ x21 >>= 7 } - data19[j20] = uint8(x21) + dAtA19[j20] = uint8(x21) j20++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j20)) - i += copy(data[i:], data19[:j20]) + i = encodeVarintThetest(dAtA, i, uint64(j20)) + i += copy(dAtA[i:], dAtA19[:j20]) } if len(m.Field8) > 0 { var j22 int - data24 := make([]byte, len(m.Field8)*10) + dAtA24 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x23 := (uint64(num) << 1) ^ uint64((num >> 63)) for x23 >= 1<<7 { - data24[j22] = uint8(uint64(x23)&0x7f | 0x80) + dAtA24[j22] = uint8(uint64(x23)&0x7f | 0x80) j22++ x23 >>= 7 } - data24[j22] = uint8(x23) + dAtA24[j22] = uint8(x23) j22++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j22)) - i += copy(data[i:], data24[:j22]) + i = encodeVarintThetest(dAtA, i, uint64(j22)) + i += copy(dAtA[i:], dAtA24[:j22]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepPackedNative) Marshal() (data []byte, err error) { +func (m *NinRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f25 := math.Float64bits(float64(num)) - data[i] = uint8(f25) + dAtA[i] = uint8(f25) i++ - data[i] = uint8(f25 >> 8) + dAtA[i] = uint8(f25 >> 8) i++ - data[i] = uint8(f25 >> 16) + dAtA[i] = uint8(f25 >> 16) i++ - data[i] = uint8(f25 >> 24) + dAtA[i] = uint8(f25 >> 24) i++ - data[i] = uint8(f25 >> 32) + dAtA[i] = uint8(f25 >> 32) i++ - data[i] = uint8(f25 >> 40) + dAtA[i] = uint8(f25 >> 40) i++ - data[i] = uint8(f25 >> 48) + dAtA[i] = uint8(f25 >> 48) i++ - data[i] = uint8(f25 >> 56) + dAtA[i] = uint8(f25 >> 56) i++ } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f26 := math.Float32bits(float32(num)) - data[i] = uint8(f26) + dAtA[i] = uint8(f26) i++ - data[i] = uint8(f26 >> 8) + dAtA[i] = uint8(f26 >> 8) i++ - data[i] = uint8(f26 >> 16) + dAtA[i] = uint8(f26 >> 16) i++ - data[i] = uint8(f26 >> 24) + dAtA[i] = uint8(f26 >> 24) i++ } } if len(m.Field3) > 0 { - data28 := make([]byte, len(m.Field3)*10) + dAtA28 := make([]byte, len(m.Field3)*10) var j27 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data28[j27] = uint8(uint64(num)&0x7f | 0x80) + dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j27++ } - data28[j27] = uint8(num) + dAtA28[j27] = uint8(num) j27++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j27)) - i += copy(data[i:], data28[:j27]) + i = encodeVarintThetest(dAtA, i, uint64(j27)) + i += copy(dAtA[i:], dAtA28[:j27]) } if len(m.Field4) > 0 { - data30 := make([]byte, len(m.Field4)*10) + dAtA30 := make([]byte, len(m.Field4)*10) var j29 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data30[j29] = uint8(uint64(num)&0x7f | 0x80) + dAtA30[j29] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j29++ } - data30[j29] = uint8(num) + dAtA30[j29] = uint8(num) j29++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j29)) - i += copy(data[i:], data30[:j29]) + i = encodeVarintThetest(dAtA, i, uint64(j29)) + i += copy(dAtA[i:], dAtA30[:j29]) } if len(m.Field5) > 0 { - data32 := make([]byte, len(m.Field5)*10) + dAtA32 := make([]byte, len(m.Field5)*10) var j31 int for _, num := range m.Field5 { for num >= 1<<7 { - data32[j31] = uint8(uint64(num)&0x7f | 0x80) + dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j31++ } - data32[j31] = uint8(num) + dAtA32[j31] = uint8(num) j31++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j31)) - i += copy(data[i:], data32[:j31]) + i = encodeVarintThetest(dAtA, i, uint64(j31)) + i += copy(dAtA[i:], dAtA32[:j31]) } if len(m.Field6) > 0 { - data34 := make([]byte, len(m.Field6)*10) + dAtA34 := make([]byte, len(m.Field6)*10) var j33 int for _, num := range m.Field6 { for num >= 1<<7 { - data34[j33] = uint8(uint64(num)&0x7f | 0x80) + dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j33++ } - data34[j33] = uint8(num) + dAtA34[j33] = uint8(num) j33++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j33)) - i += copy(data[i:], data34[:j33]) + i = encodeVarintThetest(dAtA, i, uint64(j33)) + i += copy(dAtA[i:], dAtA34[:j33]) } if len(m.Field7) > 0 { - data35 := make([]byte, len(m.Field7)*5) + dAtA35 := make([]byte, len(m.Field7)*5) var j36 int for _, num := range m.Field7 { x37 := (uint32(num) << 1) ^ uint32((num >> 31)) for x37 >= 1<<7 { - data35[j36] = uint8(uint64(x37)&0x7f | 0x80) + dAtA35[j36] = uint8(uint64(x37)&0x7f | 0x80) j36++ x37 >>= 7 } - data35[j36] = uint8(x37) + dAtA35[j36] = uint8(x37) j36++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j36)) - i += copy(data[i:], data35[:j36]) + i = encodeVarintThetest(dAtA, i, uint64(j36)) + i += copy(dAtA[i:], dAtA35[:j36]) } if len(m.Field8) > 0 { var j38 int - data40 := make([]byte, len(m.Field8)*10) + dAtA40 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x39 := (uint64(num) << 1) ^ uint64((num >> 63)) for x39 >= 1<<7 { - data40[j38] = uint8(uint64(x39)&0x7f | 0x80) + dAtA40[j38] = uint8(uint64(x39)&0x7f | 0x80) j38++ x39 >>= 7 } - data40[j38] = uint8(x39) + dAtA40[j38] = uint8(x39) j38++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j38)) - i += copy(data[i:], data40[:j38]) + i = encodeVarintThetest(dAtA, i, uint64(j38)) + i += copy(dAtA[i:], dAtA40[:j38]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptStruct) Marshal() (data []byte, err error) { +func (m *NidOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.Field1)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.Field2)))) - data[i] = 0x1a + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n41, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n41, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n41 - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n42, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n42, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n42 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x42 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n43, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n43, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n43 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStruct) Marshal() (data []byte, err error) { +func (m *NinOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n44, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n44, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n44 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n45, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n45, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n46, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n46, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n46 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepStruct) Marshal() (data []byte, err error) { +func (m *NidRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f47 := math.Float64bits(float64(num)) - data[i] = uint8(f47) + dAtA[i] = uint8(f47) i++ - data[i] = uint8(f47 >> 8) + dAtA[i] = uint8(f47 >> 8) i++ - data[i] = uint8(f47 >> 16) + dAtA[i] = uint8(f47 >> 16) i++ - data[i] = uint8(f47 >> 24) + dAtA[i] = uint8(f47 >> 24) i++ - data[i] = uint8(f47 >> 32) + dAtA[i] = uint8(f47 >> 32) i++ - data[i] = uint8(f47 >> 40) + dAtA[i] = uint8(f47 >> 40) i++ - data[i] = uint8(f47 >> 48) + dAtA[i] = uint8(f47 >> 48) i++ - data[i] = uint8(f47 >> 56) + dAtA[i] = uint8(f47 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f48 := math.Float32bits(float32(num)) - data[i] = uint8(f48) + dAtA[i] = uint8(f48) i++ - data[i] = uint8(f48 >> 8) + dAtA[i] = uint8(f48 >> 8) i++ - data[i] = uint8(f48 >> 16) + dAtA[i] = uint8(f48 >> 16) i++ - data[i] = uint8(f48 >> 24) + dAtA[i] = uint8(f48 >> 24) i++ } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20640,10 +21660,10 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20652,31 +21672,31 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x49 := (uint32(num) << 1) ^ uint32((num >> 31)) for x49 >= 1<<7 { - data[i] = uint8(uint64(x49)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x49)&0x7f | 0x80) x49 >>= 7 i++ } - data[i] = uint8(x49) + dAtA[i] = uint8(x49) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20685,104 +21705,104 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepStruct) Marshal() (data []byte, err error) { +func (m *NinRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f50 := math.Float64bits(float64(num)) - data[i] = uint8(f50) + dAtA[i] = uint8(f50) i++ - data[i] = uint8(f50 >> 8) + dAtA[i] = uint8(f50 >> 8) i++ - data[i] = uint8(f50 >> 16) + dAtA[i] = uint8(f50 >> 16) i++ - data[i] = uint8(f50 >> 24) + dAtA[i] = uint8(f50 >> 24) i++ - data[i] = uint8(f50 >> 32) + dAtA[i] = uint8(f50 >> 32) i++ - data[i] = uint8(f50 >> 40) + dAtA[i] = uint8(f50 >> 40) i++ - data[i] = uint8(f50 >> 48) + dAtA[i] = uint8(f50 >> 48) i++ - data[i] = uint8(f50 >> 56) + dAtA[i] = uint8(f50 >> 56) i++ } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f51 := math.Float32bits(float32(num)) - data[i] = uint8(f51) + dAtA[i] = uint8(f51) i++ - data[i] = uint8(f51 >> 8) + dAtA[i] = uint8(f51 >> 8) i++ - data[i] = uint8(f51 >> 16) + dAtA[i] = uint8(f51 >> 16) i++ - data[i] = uint8(f51 >> 24) + dAtA[i] = uint8(f51 >> 24) i++ } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20791,10 +21811,10 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20803,31 +21823,31 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x52 := (uint32(num) << 1) ^ uint32((num >> 31)) for x52 >= 1<<7 { - data[i] = uint8(uint64(x52)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x52)&0x7f | 0x80) x52 >>= 7 i++ } - data[i] = uint8(x52) + dAtA[i] = uint8(x52) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -20836,180 +21856,180 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NidEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n53, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n53, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n53 } - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n54, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n54, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n54 - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n55, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n55, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n55 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n56, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n56, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n56 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidNestedStruct) Marshal() (data []byte, err error) { +func (m *NidNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n57, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n57, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n57 if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21017,31 +22037,31 @@ func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStruct) Marshal() (data []byte, err error) { +func (m *NinNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n58, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n58, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21049,10 +22069,10 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21060,141 +22080,141 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptCustom) Marshal() (data []byte, err error) { +func (m *NidOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n59, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n59, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n59 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n60, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n60, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomDash) Marshal() (data []byte, err error) { +func (m *CustomDash) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomDash) MarshalTo(data []byte) (int, error) { +func (m *CustomDash) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Value != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n61, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n61, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptCustom) Marshal() (data []byte, err error) { +func (m *NinOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Id != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n62, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n62, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n62 } if m.Value != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n63, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n63, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n63 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepCustom) Marshal() (data []byte, err error) { +func (m *NidRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21203,10 +22223,10 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21214,32 +22234,32 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepCustom) Marshal() (data []byte, err error) { +func (m *NinRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21248,10 +22268,10 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -21259,1681 +22279,1677 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeUnion) Marshal() (data []byte, err error) { +func (m *NinOptNativeUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStructUnion) Marshal() (data []byte, err error) { +func (m *NinOptStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n64, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n64, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n64 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n65, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n65, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n65 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n66, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n66, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n66 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n67, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n67, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n67 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStructUnion) Marshal() (data []byte, err error) { +func (m *NinNestedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n68, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n68, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n68 } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Field2.Size())) - n69, err := m.Field2.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) + n69, err := m.Field2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n69 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n70, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n70, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n70 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Tree) Marshal() (data []byte, err error) { +func (m *Tree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Tree) MarshalTo(data []byte) (int, error) { +func (m *Tree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Or != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Or.Size())) - n71, err := m.Or.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) + n71, err := m.Or.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n71 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n72, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n72, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n72 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n73, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n73, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n73 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OrBranch) Marshal() (data []byte, err error) { +func (m *OrBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OrBranch) MarshalTo(data []byte) (int, error) { +func (m *OrBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n74, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n74, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n74 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n75, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n75, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n75 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndBranch) Marshal() (data []byte, err error) { +func (m *AndBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndBranch) MarshalTo(data []byte) (int, error) { +func (m *AndBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n76, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n76, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n76 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n77, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n77, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n77 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Leaf) Marshal() (data []byte, err error) { +func (m *Leaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Leaf) MarshalTo(data []byte) (int, error) { +func (m *Leaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Value)) - data[i] = 0x12 + i = encodeVarintThetest(dAtA, i, uint64(m.Value)) + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.StrValue))) - i += copy(data[i:], m.StrValue) + i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) + i += copy(dAtA[i:], m.StrValue) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepTree) Marshal() (data []byte, err error) { +func (m *DeepTree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepTree) MarshalTo(data []byte) (int, error) { +func (m *DeepTree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Down != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n78, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n78, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n78 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n79, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n79, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n79 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n80, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n80, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n80 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *ADeepBranch) Marshal() (data []byte, err error) { +func (m *ADeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ADeepBranch) MarshalTo(data []byte) (int, error) { +func (m *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n81, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n81, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n81 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndDeepBranch) Marshal() (data []byte, err error) { +func (m *AndDeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndDeepBranch) MarshalTo(data []byte) (int, error) { +func (m *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n82, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n82, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n82 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n83, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n83, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n83 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepLeaf) Marshal() (data []byte, err error) { +func (m *DeepLeaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepLeaf) MarshalTo(data []byte) (int, error) { +func (m *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Tree.Size())) - n84, err := m.Tree.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) + n84, err := m.Tree.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n84 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Nil) Marshal() (data []byte, err error) { +func (m *Nil) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nil) MarshalTo(data []byte) (int, error) { +func (m *Nil) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptEnum) Marshal() (data []byte, err error) { +func (m *NidOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnum) Marshal() (data []byte, err error) { +func (m *NinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepEnum) Marshal() (data []byte, err error) { +func (m *NidRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepEnum) Marshal() (data []byte, err error) { +func (m *NinRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *NinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnum) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Timer) Marshal() (data []byte, err error) { +func (m *Timer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Timer) MarshalTo(data []byte) (int, error) { +func (m *Timer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Time1)) - data[i] = 0x11 + i = encodeFixed64Thetest(dAtA, i, uint64(m.Time1)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Thetest(data, i, uint64(m.Time2)) + i = encodeFixed64Thetest(dAtA, i, uint64(m.Time2)) if m.Data != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *MyExtendable) Marshal() (data []byte, err error) { +func (m *MyExtendable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MyExtendable) MarshalTo(data []byte) (int, error) { +func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OtherExtenable) Marshal() (data []byte, err error) { +func (m *OtherExtenable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OtherExtenable) MarshalTo(data []byte) (int, error) { +func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.M != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.M.Size())) - n85, err := m.M.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) + n85, err := m.M.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n85 } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field13)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition) Marshal() (data []byte, err error) { +func (m *NestedDefinition) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.EnumField != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.EnumField)) + i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) } if m.NNM != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n86, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n86, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n86 } if m.NM != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.NM.Size())) - n87, err := m.NM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) + n87, err := m.NM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n87 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedField1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.NestedField1)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.NestedField1)) } if m.NNM != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n88, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n88, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n88 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedNestedField1 != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.NestedNestedField1))) - i += copy(data[i:], *m.NestedNestedField1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) + i += copy(dAtA[i:], *m.NestedNestedField1) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedScope) Marshal() (data []byte, err error) { +func (m *NestedScope) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedScope) MarshalTo(data []byte) (int, error) { +func (m *NestedScope) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.A != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.A.Size())) - n89, err := m.A.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) + n89, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n89 } if m.B != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.B)) + i = encodeVarintThetest(dAtA, i, uint64(*m.B)) } if m.C != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.C.Size())) - n90, err := m.C.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) + n90, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n90 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeDefault) Marshal() (data []byte, err error) { +func (m *NinOptNativeDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field9)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.Field10)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field11)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.Field12)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomContainer) Marshal() (data []byte, err error) { +func (m *CustomContainer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomContainer) MarshalTo(data []byte) (int, error) { +func (m *CustomContainer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.CustomStruct.Size())) - n91, err := m.CustomStruct.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) + n91, err := m.CustomStruct.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n91 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNidOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNidOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(m.FieldA)))) - data[i] = 0x15 + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.FieldA)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(m.FieldB)))) - data[i] = 0x18 + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.FieldB)))) + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldD)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldE)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldF)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(m.FieldI)) - data[i] = 0x55 + i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldI)) + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(m.FieldJ)) - data[i] = 0x59 + i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldJ)) + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(m.FieldK)) - data[i] = 0x61 + i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldK)) + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(m.FieldL)) - data[i] = 0x68 + i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldL)) + dAtA[i] = 0x68 i++ if m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldN))) - i += copy(data[i:], m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) + i += copy(dAtA[i:], m.FieldN) if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.FieldA)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.FieldB)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) } if m.FieldC != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldC)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) } if m.FieldD != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldD)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) } if m.FieldE != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldF)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) } if m.FieldG != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) } if m.FieldH != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) } if m.FieldI != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(data, i, uint32(*m.FieldI)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldI)) } if m.FieldJ != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(data, i, uint32(*m.FieldJ)) + i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldJ)) } if m.FieldK != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.FieldK)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.FieldK)) } if m.FielL != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(data, i, uint64(*m.FielL)) + i = encodeFixed64Thetest(dAtA, i, uint64(*m.FielL)) } if m.FieldM != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldN != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldN))) - i += copy(data[i:], *m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) + i += copy(dAtA[i:], *m.FieldN) } if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinRepNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinRepNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.FieldA) > 0 { for _, num := range m.FieldA { - data[i] = 0x9 + dAtA[i] = 0x9 i++ f92 := math.Float64bits(float64(num)) - data[i] = uint8(f92) + dAtA[i] = uint8(f92) i++ - data[i] = uint8(f92 >> 8) + dAtA[i] = uint8(f92 >> 8) i++ - data[i] = uint8(f92 >> 16) + dAtA[i] = uint8(f92 >> 16) i++ - data[i] = uint8(f92 >> 24) + dAtA[i] = uint8(f92 >> 24) i++ - data[i] = uint8(f92 >> 32) + dAtA[i] = uint8(f92 >> 32) i++ - data[i] = uint8(f92 >> 40) + dAtA[i] = uint8(f92 >> 40) i++ - data[i] = uint8(f92 >> 48) + dAtA[i] = uint8(f92 >> 48) i++ - data[i] = uint8(f92 >> 56) + dAtA[i] = uint8(f92 >> 56) i++ } } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x15 + dAtA[i] = 0x15 i++ f93 := math.Float32bits(float32(num)) - data[i] = uint8(f93) + dAtA[i] = uint8(f93) i++ - data[i] = uint8(f93 >> 8) + dAtA[i] = uint8(f93 >> 8) i++ - data[i] = uint8(f93 >> 16) + dAtA[i] = uint8(f93 >> 16) i++ - data[i] = uint8(f93 >> 24) + dAtA[i] = uint8(f93 >> 24) i++ } } if len(m.FieldC) > 0 { for _, num := range m.FieldC { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldD) > 0 { for _, num := range m.FieldD { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldE) > 0 { for _, num := range m.FieldE { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldF) > 0 { for _, num := range m.FieldF { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldG) > 0 { for _, num := range m.FieldG { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x94 := (uint32(num) << 1) ^ uint32((num >> 31)) for x94 >= 1<<7 { - data[i] = uint8(uint64(x94)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x94)&0x7f | 0x80) x94 >>= 7 i++ } - data[i] = uint8(x94) + dAtA[i] = uint8(x94) i++ } } if len(m.FieldH) > 0 { for _, num := range m.FieldH { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x95 := (uint64(num) << 1) ^ uint64((num >> 63)) for x95 >= 1<<7 { - data[i] = uint8(uint64(x95)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x95)&0x7f | 0x80) x95 >>= 7 i++ } - data[i] = uint8(x95) + dAtA[i] = uint8(x95) i++ } } if len(m.FieldI) > 0 { for _, num := range m.FieldI { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.FieldM) > 0 { for _, b := range m.FieldM { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.FieldN) > 0 { for _, s := range m.FieldN { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.FieldO) > 0 { for _, b := range m.FieldO { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinStruct) Marshal() (data []byte, err error) { +func (m *CustomNameNinStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(data, i, uint64(math.Float64bits(float64(*m.FieldA)))) + i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(data, i, uint32(math.Float32bits(float32(*m.FieldB)))) + i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) } if m.FieldC != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC.Size())) - n96, err := m.FieldC.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) + n96, err := m.FieldC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -22941,10 +23957,10 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -22952,83 +23968,83 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } } if m.FieldE != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) } if m.FieldG != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldG.Size())) - n97, err := m.FieldG.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) + n97, err := m.FieldG.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n97 } if m.FieldH != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldH { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldI != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldI))) - i += copy(data[i:], *m.FieldI) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) + i += copy(dAtA[i:], *m.FieldI) } if m.FieldJ != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldJ))) - i += copy(data[i:], m.FieldJ) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) + i += copy(dAtA[i:], m.FieldJ) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameCustomType) Marshal() (data []byte, err error) { +func (m *CustomNameCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n98, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n98, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n98 } if m.FieldB != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldB.Size())) - n99, err := m.FieldB.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) + n99, err := m.FieldB.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23036,10 +24052,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldC) > 0 { for _, msg := range m.FieldC { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23048,10 +24064,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23059,299 +24075,456 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *CustomNameNinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n100, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n100, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n100 } if m.FieldA != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n101, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n101, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n101 } if m.FieldB != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.FieldB { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameEnum) Marshal() (data []byte, err error) { +func (m *CustomNameEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameEnum) MarshalTo(data []byte) (int, error) { +func (m *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldA)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x10 + dAtA[i] = 0x10 + i++ + i = encodeVarintThetest(dAtA, i, uint64(num)) + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NoExtensionsMap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) + } + if m.XXX_extensions != nil { + i += copy(dAtA[i:], m.XXX_extensions) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *Unrecognized) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Unrecognized) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) + i += copy(dAtA[i:], *m.Field1) + } + return i, nil +} + +func (m *UnrecognizedWithInner) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Embedded) > 0 { + for _, msg := range m.Embedded { + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n } } + if m.Field2 != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) + } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NoExtensionsMap) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner_Inner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NoExtensionsMap) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) + } + return i, nil +} + +func (m *UnrecognizedWithEmbed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) + n102, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - if m.XXX_extensions != nil { - i += copy(data[i:], m.XXX_extensions) + i += n102 + if m.Field2 != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Unrecognized) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed_Embedded) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Unrecognized) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field1))) - i += copy(data[i:], *m.Field1) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *UnrecognizedWithInner) Marshal() (data []byte, err error) { +func (m *Node) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { +func (m *Node) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.Embedded) > 0 { - for _, msg := range m.Embedded { - data[i] = 0xa + if m.Label != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) + i += copy(dAtA[i:], *m.Label) + } + if len(m.Children) > 0 { + for _, msg := range m.Children { + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n } } - if m.Field2 != nil { - data[i] = 0x12 - i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) - } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithInner_Inner) Marshal() (data []byte, err error) { +func (m *NonByteCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner_Inner) MarshalTo(data []byte) (int, error) { +func (m *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n103, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n103 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithEmbed) Marshal() (data []byte, err error) { +func (m *NidOptNonByteCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed) MarshalTo(data []byte) (int, error) { +func (m *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n102, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n104, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n102 - if m.Field2 != nil { - data[i] = 0x12 - i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) - } + i += n104 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithEmbed_Embedded) Marshal() (data []byte, err error) { +func (m *NinOptNonByteCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(data []byte) (int, error) { +func (m *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n105, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n105 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Node) Marshal() (data []byte, err error) { +func (m *NidRepNonByteCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Node) MarshalTo(data []byte) (int, error) { +func (m *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if m.Label != nil { - data[i] = 0xa - i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Label))) - i += copy(data[i:], *m.Label) + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } } - if len(m.Children) > 0 { - for _, msg := range m.Children { - data[i] = 0x12 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -23359,36 +24532,63 @@ func (m *Node) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ProtoType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field2 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Thetest(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Thetest(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Thetest(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Thetest(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintThetest(data []byte, offset int, v uint64) int { +func encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -23430,7 +24630,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -23521,7 +24721,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -23658,7 +24858,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -23799,7 +24999,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24087,7 +25287,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -24140,7 +25340,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -24230,7 +25430,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24321,7 +25521,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -24532,7 +25732,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -24577,7 +25777,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -24662,7 +25862,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -24908,8 +26108,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -24952,8 +26152,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -25005,7 +26205,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -25111,7 +26311,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -25176,7 +26376,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -25267,7 +26467,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -25404,7 +26604,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -25469,7 +26669,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -25566,8 +26766,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -25579,7 +26779,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -25597,7 +26797,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -25622,7 +26822,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -25645,7 +26845,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -25661,6 +26861,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -25680,14 +26956,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -25695,43 +26971,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -26842,9 +28118,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -26864,9 +28138,7 @@ func (m *OtherExtenable) Size() (n int) { if m.Field13 != nil { n += 1 + sovThetest(uint64(*m.Field13)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -27376,6 +28648,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -28002,7 +29354,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28016,7 +29368,7 @@ func (this *OtherExtenable) String() string { `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28248,7 +29600,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -28320,6 +29672,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -28586,195 +30004,201 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { return true } +func init() { proto.RegisterFile("combos/marshaler/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3009 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, - 0x15, 0xd6, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x95, 0xe4, 0x2d, - 0xa3, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0x71, 0x6d, 0xd7, 0xa2, - 0x0c, 0x46, 0x6e, 0x6b, 0xa0, 0x40, 0x41, 0x89, 0x2b, 0x89, 0xa8, 0xb4, 0x14, 0xc8, 0x95, 0x6b, - 0xf7, 0x50, 0x04, 0x39, 0x14, 0x46, 0xaf, 0x45, 0x8f, 0x6d, 0x5c, 0x14, 0x05, 0xdc, 0x5b, 0x0e, - 0x45, 0x51, 0x14, 0x45, 0xe3, 0x4b, 0x01, 0xf5, 0x66, 0xf4, 0x54, 0x14, 0x85, 0xd1, 0x38, 0x97, - 0x1c, 0xd3, 0x53, 0x73, 0xc8, 0xa1, 0xb3, 0xbb, 0x33, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, 0x25, - 0xb7, 0x39, 0xac, 0x96, 0x9a, 0xf7, 0xde, 0xcc, 0xdb, 0xf7, 0x7d, 0x6f, 0xe6, 0xed, 0xce, 0xc0, - 0x99, 0x9d, 0xee, 0xe1, 0x76, 0xb7, 0xbf, 0x74, 0xd8, 0xea, 0xf5, 0xf7, 0x5b, 0x07, 0x7a, 0x6f, - 0xc9, 0xdc, 0xd7, 0x4d, 0xbd, 0x6f, 0x2e, 0x1e, 0xf5, 0xba, 0x66, 0x57, 0x89, 0x59, 0xbf, 0x33, - 0x97, 0xf7, 0x3a, 0xe6, 0xfe, 0xf1, 0xf6, 0x22, 0x52, 0x5e, 0xda, 0xeb, 0xee, 0x75, 0x97, 0x6c, - 0xe1, 0xf6, 0xf1, 0xae, 0xfd, 0x9f, 0xfd, 0x8f, 0xfd, 0xcb, 0x31, 0xd2, 0xfe, 0x09, 0x60, 0xb2, - 0xd1, 0x69, 0x6f, 0x1e, 0x99, 0x8d, 0x96, 0xd9, 0xb9, 0xa7, 0x2b, 0xd3, 0x70, 0xf4, 0x5a, 0x47, - 0x3f, 0x68, 0x17, 0x54, 0x69, 0x4e, 0x5a, 0x90, 0x2a, 0xb1, 0x93, 0x67, 0xb3, 0x23, 0xcd, 0xd1, - 0x5d, 0xbb, 0x8d, 0x4a, 0x8b, 0xaa, 0x8c, 0xa4, 0x32, 0x27, 0x2d, 0x52, 0xe9, 0xb2, 0x0a, 0x90, - 0x34, 0xce, 0x49, 0x97, 0xa9, 0xb4, 0xa4, 0xc6, 0x90, 0x14, 0x70, 0xd2, 0x12, 0x95, 0xae, 0xa8, - 0x71, 0x24, 0x9d, 0xe0, 0xa4, 0x2b, 0x54, 0xba, 0xaa, 0x8e, 0x22, 0x69, 0x8c, 0x93, 0xae, 0x52, - 0xe9, 0x15, 0xf5, 0x1c, 0x92, 0x9e, 0xe7, 0xa4, 0x57, 0xa8, 0x74, 0x4d, 0x4d, 0x20, 0xa9, 0xc2, - 0x49, 0xd7, 0xa8, 0xf4, 0xaa, 0x3a, 0x86, 0xa4, 0xe7, 0x38, 0xe9, 0x55, 0x65, 0x06, 0x9e, 0x73, - 0xa2, 0x91, 0x57, 0x21, 0x12, 0x4f, 0x61, 0xf1, 0x39, 0x27, 0x1c, 0x79, 0x57, 0x5e, 0x50, 0xc7, - 0x91, 0x7c, 0x94, 0x97, 0x17, 0x5c, 0x79, 0x51, 0x4d, 0x22, 0x79, 0x8a, 0x97, 0x17, 0x5d, 0xf9, - 0xb2, 0x3a, 0x81, 0xe4, 0x09, 0x5e, 0xbe, 0xec, 0xca, 0x4b, 0xea, 0x24, 0x92, 0x8f, 0xf1, 0xf2, - 0x92, 0x2b, 0x5f, 0x51, 0xa7, 0x90, 0x3c, 0xc9, 0xcb, 0x57, 0xb4, 0xf7, 0x6d, 0x78, 0x0d, 0x17, - 0xde, 0x34, 0x0f, 0x2f, 0x05, 0x36, 0xcd, 0x03, 0x4b, 0x21, 0x4d, 0xf3, 0x90, 0x52, 0x30, 0xd3, - 0x3c, 0x98, 0x14, 0xc6, 0x34, 0x0f, 0x23, 0x05, 0x30, 0xcd, 0x03, 0x48, 0xa1, 0x4b, 0xf3, 0xd0, - 0x51, 0xd0, 0xd2, 0x3c, 0x68, 0x14, 0xae, 0x34, 0x0f, 0x17, 0x05, 0x4a, 0x15, 0x80, 0x72, 0x21, - 0x52, 0x05, 0x88, 0x5c, 0x70, 0x54, 0x01, 0x1c, 0x17, 0x16, 0x55, 0x80, 0xc5, 0x05, 0x44, 0x15, - 0x00, 0x71, 0xa1, 0x50, 0x05, 0x28, 0x5c, 0x10, 0x70, 0x8e, 0x35, 0xf5, 0x23, 0x9f, 0x1c, 0x03, - 0x03, 0x73, 0x0c, 0x0c, 0xcc, 0x31, 0x30, 0x30, 0xc7, 0xc0, 0xc0, 0x1c, 0x03, 0x03, 0x73, 0x0c, - 0x0c, 0xcc, 0x31, 0x30, 0x30, 0xc7, 0xc0, 0xc0, 0x1c, 0x03, 0x83, 0x73, 0x0c, 0x84, 0xe4, 0x18, - 0x08, 0xc9, 0x31, 0x10, 0x92, 0x63, 0x20, 0x24, 0xc7, 0x40, 0x48, 0x8e, 0x81, 0xc0, 0x1c, 0x73, - 0xe1, 0x4d, 0xf3, 0xf0, 0xfa, 0xe6, 0x18, 0x08, 0xc8, 0x31, 0x10, 0x90, 0x63, 0x20, 0x20, 0xc7, - 0x40, 0x40, 0x8e, 0x81, 0x80, 0x1c, 0x03, 0x01, 0x39, 0x06, 0x02, 0x72, 0x0c, 0x04, 0xe5, 0x18, - 0x08, 0xcc, 0x31, 0x10, 0x98, 0x63, 0x20, 0x30, 0xc7, 0x40, 0x60, 0x8e, 0x81, 0xc0, 0x1c, 0x03, - 0x6c, 0x8e, 0xfd, 0x09, 0x40, 0xc5, 0xc9, 0xb1, 0xdb, 0xad, 0x9d, 0x1f, 0xe8, 0x6d, 0x0c, 0xc5, - 0x8c, 0x90, 0x69, 0xa3, 0x16, 0x74, 0x29, 0x17, 0x92, 0x19, 0x21, 0xd7, 0x78, 0x79, 0x91, 0xca, - 0x49, 0xb6, 0xf1, 0xf2, 0x65, 0x2a, 0x27, 0xf9, 0xc6, 0xcb, 0x4b, 0x54, 0x4e, 0x32, 0x8e, 0x97, - 0xaf, 0x50, 0x39, 0xc9, 0x39, 0x5e, 0xbe, 0x4a, 0xe5, 0x24, 0xeb, 0x78, 0xf9, 0x15, 0x2a, 0x27, - 0x79, 0xc7, 0xcb, 0xd7, 0xa8, 0x9c, 0x64, 0x1e, 0x2f, 0xbf, 0xaa, 0xcc, 0x89, 0xb9, 0x47, 0x14, - 0x28, 0xb4, 0x73, 0x62, 0xf6, 0x09, 0x1a, 0x05, 0x57, 0x83, 0xe4, 0x9f, 0xa0, 0x51, 0x74, 0x35, - 0x48, 0x06, 0x0a, 0x1a, 0xcb, 0xda, 0x43, 0x1b, 0x3e, 0x43, 0x84, 0x2f, 0x23, 0xc0, 0x27, 0x33, - 0xd0, 0x65, 0x04, 0xe8, 0x64, 0x06, 0xb6, 0x8c, 0x00, 0x9b, 0xcc, 0x40, 0x96, 0x11, 0x20, 0x93, - 0x19, 0xb8, 0x32, 0x02, 0x5c, 0x32, 0x03, 0x55, 0x46, 0x80, 0x4a, 0x66, 0x60, 0xca, 0x08, 0x30, - 0xc9, 0x0c, 0x44, 0x19, 0x01, 0x22, 0x99, 0x81, 0x27, 0x23, 0xc0, 0x23, 0x33, 0xd0, 0x4c, 0x8b, - 0xd0, 0xc8, 0x2c, 0x2c, 0xd3, 0x22, 0x2c, 0x32, 0x0b, 0xc9, 0xb4, 0x08, 0x89, 0xcc, 0xc2, 0x31, - 0x2d, 0xc2, 0x21, 0xb3, 0x50, 0x7c, 0x21, 0x93, 0x8a, 0xf0, 0x5d, 0xb3, 0x77, 0xbc, 0x63, 0x9e, - 0xaa, 0x22, 0xcc, 0x73, 0xe5, 0xc3, 0x78, 0x51, 0x59, 0xb4, 0x0b, 0x56, 0xb6, 0xe2, 0x14, 0x56, - 0xb0, 0x3c, 0x57, 0x58, 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe9, 0x54, 0xb5, 0x61, 0x9e, 0x2b, 0x33, - 0xc2, 0xfd, 0x5b, 0x7b, 0xe9, 0x15, 0xdb, 0x13, 0x99, 0x54, 0x6c, 0x38, 0xfc, 0xc3, 0x56, 0x6c, - 0xb9, 0xf0, 0x90, 0xd3, 0x60, 0xe7, 0xc2, 0x83, 0xed, 0x59, 0x75, 0xa2, 0x56, 0x70, 0xb9, 0xf0, - 0xd0, 0xd2, 0xa0, 0x9e, 0x6d, 0xbd, 0x85, 0x19, 0x8c, 0x26, 0x13, 0x1f, 0x06, 0x0f, 0x5b, 0x6f, - 0xe5, 0xb9, 0xa9, 0x64, 0x58, 0x06, 0x83, 0xa1, 0x19, 0x3c, 0x6c, 0xe5, 0x95, 0xe7, 0xa6, 0x97, - 0xa1, 0x19, 0xfc, 0x12, 0xea, 0x21, 0xcc, 0x60, 0x37, 0xfc, 0xc3, 0xd6, 0x43, 0xb9, 0xf0, 0x90, - 0xfb, 0x32, 0x18, 0x0c, 0xc1, 0xe0, 0x28, 0xf5, 0x51, 0x2e, 0x3c, 0xb4, 0xfe, 0x0c, 0x3e, 0x75, - 0x35, 0xf3, 0x81, 0x04, 0xcf, 0xa3, 0x61, 0xea, 0x87, 0xdb, 0x7a, 0xbb, 0xad, 0xb7, 0x71, 0x1c, - 0xf3, 0xdc, 0x4c, 0x10, 0x00, 0xf5, 0xd3, 0x67, 0xb3, 0x6e, 0x84, 0x57, 0x60, 0xc2, 0x89, 0x70, - 0x3e, 0xaf, 0x9e, 0x48, 0x21, 0x33, 0x5c, 0x62, 0x17, 0xab, 0x2a, 0x17, 0x89, 0x19, 0x5a, 0x7b, - 0xfe, 0x26, 0x31, 0xb3, 0x1c, 0x56, 0x29, 0xe4, 0xb5, 0x9f, 0xd9, 0x1e, 0x1a, 0xa7, 0xf6, 0x70, - 0x29, 0x92, 0x87, 0x8c, 0x6f, 0xaf, 0x7b, 0x7c, 0x63, 0xbc, 0x3a, 0x86, 0x53, 0xc8, 0xac, 0x81, - 0xcc, 0xa3, 0xb9, 0xe4, 0xe8, 0x08, 0xf3, 0x41, 0x9e, 0xa3, 0x25, 0x6b, 0x41, 0x29, 0xcd, 0xcf, - 0x11, 0x5a, 0xc7, 0x1a, 0xd6, 0xe0, 0x86, 0xcd, 0x05, 0x0d, 0xeb, 0xce, 0xec, 0x74, 0xc0, 0x5c, - 0xd0, 0x80, 0x6e, 0x0e, 0xd1, 0xa1, 0xee, 0x93, 0xc5, 0xb9, 0x7a, 0xdc, 0x37, 0xbb, 0x87, 0x68, - 0x72, 0x90, 0x6f, 0xb4, 0xed, 0x31, 0x92, 0x95, 0xa4, 0xe5, 0xd4, 0x3f, 0x9e, 0xcd, 0xc6, 0xee, - 0x1c, 0x23, 0x5f, 0xe5, 0x4e, 0x5b, 0xb9, 0x09, 0xe3, 0xdf, 0x6e, 0x1d, 0x1c, 0xeb, 0xf6, 0x12, - 0x91, 0xac, 0x94, 0xb0, 0xc2, 0xa5, 0xc0, 0x6f, 0x44, 0xd6, 0xc0, 0x4b, 0x3b, 0x76, 0xd7, 0x8b, - 0x77, 0x3a, 0x86, 0x59, 0x28, 0xae, 0x35, 0xe3, 0xf7, 0xac, 0x2e, 0xb4, 0xef, 0x41, 0xe8, 0x8c, - 0x59, 0x6b, 0xf5, 0xf7, 0x95, 0x06, 0xe9, 0xd9, 0x19, 0x7a, 0x0d, 0xf5, 0x5a, 0x8a, 0xd2, 0xeb, - 0xe5, 0x36, 0xb2, 0xbe, 0x6c, 0x3e, 0x38, 0xd2, 0x17, 0x2b, 0x0f, 0x50, 0x3b, 0xe9, 0xfd, 0x88, - 0xac, 0x7a, 0xf8, 0xb9, 0x54, 0xe6, 0xb9, 0x12, 0xdc, 0x33, 0x5d, 0xe3, 0x9f, 0x29, 0xff, 0xa2, - 0xcf, 0x73, 0x9f, 0x2c, 0x12, 0x42, 0x24, 0x41, 0x58, 0x24, 0xc1, 0x69, 0x23, 0x79, 0x44, 0xe6, - 0x47, 0xe1, 0x59, 0xc1, 0xa0, 0x67, 0x05, 0xa7, 0x79, 0xd6, 0xff, 0x38, 0xd9, 0x4a, 0xf3, 0xe9, - 0x8e, 0xd1, 0xe9, 0x1a, 0x5f, 0xba, 0x6f, 0x41, 0x67, 0x5a, 0x05, 0x94, 0x63, 0x27, 0x8f, 0x66, - 0x25, 0xed, 0x03, 0x99, 0x3c, 0xb9, 0x93, 0x48, 0x2f, 0xf6, 0xe4, 0x5f, 0x96, 0x9a, 0xea, 0x65, - 0x44, 0xe8, 0x97, 0x12, 0x4c, 0x7b, 0x66, 0x72, 0x27, 0x4c, 0x67, 0x3b, 0x9d, 0x1b, 0xc3, 0x4e, - 0xe7, 0xd8, 0xc1, 0xdf, 0x49, 0xf0, 0x55, 0x61, 0x7a, 0x75, 0xdc, 0x5b, 0x12, 0xdc, 0x7b, 0xcd, - 0x3b, 0x92, 0xad, 0xc8, 0x78, 0xc7, 0xc2, 0x2b, 0x18, 0x30, 0x3d, 0x53, 0xdc, 0x4b, 0x02, 0xee, - 0xd3, 0xd4, 0xc0, 0x27, 0x5c, 0x84, 0x01, 0xd8, 0xed, 0x2e, 0x8c, 0x6d, 0xf5, 0x74, 0xeb, 0x13, - 0x84, 0xbc, 0xd9, 0xc3, 0x1e, 0x4e, 0x3a, 0xf6, 0x9b, 0xbd, 0x4a, 0xaf, 0x65, 0xec, 0xec, 0x37, - 0xe5, 0x6e, 0x0f, 0x2d, 0xb6, 0x60, 0xdd, 0x68, 0x63, 0x8f, 0xa6, 0x1c, 0x05, 0xd4, 0x80, 0x35, - 0x40, 0xcb, 0x68, 0xa3, 0x2e, 0x62, 0xb7, 0xf4, 0xd6, 0x2e, 0x76, 0x02, 0x3a, 0x3a, 0x56, 0x4b, - 0x33, 0x76, 0x80, 0xfe, 0xe2, 0x01, 0xbf, 0x0b, 0x13, 0xa4, 0x63, 0x25, 0x6b, 0x59, 0xec, 0x9a, - 0x78, 0x58, 0x6c, 0x61, 0xb9, 0x83, 0x57, 0x2e, 0x64, 0xb7, 0x6b, 0x2a, 0xf3, 0x30, 0xde, 0xec, - 0xec, 0xed, 0x9b, 0x78, 0x70, 0xaf, 0x5a, 0xbc, 0x67, 0x89, 0xb5, 0xbb, 0x70, 0x8c, 0x7a, 0x74, - 0xc6, 0x5d, 0xd7, 0x9c, 0x47, 0x43, 0x6f, 0xc2, 0xcc, 0x7a, 0x42, 0xbe, 0x5b, 0x3a, 0xb3, 0x97, - 0x32, 0x07, 0x13, 0x28, 0xcc, 0xee, 0xa4, 0x4f, 0x2a, 0xd2, 0x44, 0x1f, 0xb7, 0x6a, 0xef, 0x4b, - 0x30, 0x51, 0xd3, 0xf5, 0x23, 0x3b, 0xe0, 0x6f, 0xc0, 0x58, 0xad, 0xfb, 0x43, 0x03, 0x3b, 0x78, - 0x1e, 0x47, 0xd4, 0x12, 0xe3, 0x98, 0xc6, 0xda, 0x48, 0x8c, 0xd4, 0x98, 0xb8, 0xbf, 0x42, 0xe3, - 0xce, 0xe8, 0xd9, 0xb1, 0xd7, 0xb8, 0xd8, 0x63, 0x00, 0x2d, 0x25, 0x4f, 0xfc, 0xaf, 0xc0, 0x71, - 0x66, 0x14, 0x65, 0x01, 0xbb, 0x21, 0x8b, 0x86, 0x6c, 0xac, 0x2c, 0x4f, 0x34, 0x1d, 0x4e, 0x70, - 0x03, 0x5b, 0xa6, 0x4c, 0x88, 0x03, 0x4c, 0xed, 0x30, 0xe7, 0xf8, 0x30, 0xfb, 0xab, 0xe2, 0x50, - 0xe7, 0x9d, 0x18, 0xd9, 0xe1, 0xce, 0x3a, 0xe4, 0x0c, 0x06, 0xd1, 0x44, 0xbf, 0xb5, 0x38, 0x04, - 0x8d, 0xce, 0x81, 0xf6, 0x36, 0x84, 0x4e, 0xca, 0xd7, 0x8d, 0xe3, 0x43, 0x21, 0xeb, 0x26, 0x49, - 0x80, 0xb7, 0xf6, 0xf5, 0x2d, 0x74, 0xb7, 0x54, 0xf8, 0x7a, 0xca, 0x9a, 0x60, 0xa0, 0x93, 0x62, - 0xb6, 0xfd, 0x9b, 0xa1, 0xf6, 0xbe, 0x95, 0x98, 0xa5, 0xaa, 0x3a, 0xaa, 0x77, 0x75, 0x73, 0xdd, - 0xe8, 0x9a, 0xfb, 0x7a, 0x4f, 0xb0, 0x28, 0x2a, 0xcb, 0x5c, 0xc2, 0x4e, 0x16, 0x5f, 0xa7, 0x16, - 0x81, 0x46, 0xcb, 0xda, 0x87, 0xb6, 0x83, 0x56, 0x29, 0xe0, 0x79, 0x40, 0x10, 0xe1, 0x01, 0x95, - 0x55, 0xae, 0x7e, 0x1b, 0xe0, 0xa6, 0xf0, 0x6a, 0x79, 0x95, 0x7b, 0xcf, 0x19, 0xec, 0x2c, 0xff, - 0x8e, 0x49, 0x62, 0x4a, 0x5c, 0x7e, 0x33, 0xd4, 0xe5, 0x80, 0xea, 0x76, 0xd8, 0x98, 0x82, 0xa8, - 0x31, 0xfd, 0x23, 0xad, 0x38, 0xac, 0xe6, 0x9a, 0xbe, 0xdb, 0x3a, 0x3e, 0x30, 0x95, 0x4b, 0xa1, - 0xd8, 0x97, 0xa5, 0x2a, 0x75, 0xb5, 0x14, 0x15, 0xfe, 0xb2, 0x5c, 0xa9, 0x50, 0x77, 0xaf, 0x0c, - 0x41, 0x81, 0xb2, 0x5c, 0xad, 0xd2, 0x69, 0x3b, 0xf1, 0x10, 0x65, 0xf1, 0xe3, 0x47, 0xb3, 0x23, - 0xda, 0x6f, 0x91, 0xf3, 0x58, 0x93, 0x21, 0xee, 0x65, 0xc1, 0xf9, 0x0b, 0x64, 0xce, 0xf0, 0x8b, - 0xc0, 0xff, 0x8c, 0xbc, 0x7f, 0x91, 0xa0, 0xea, 0xf1, 0x95, 0xc4, 0x3b, 0x1f, 0xc9, 0xe5, 0xb2, - 0x54, 0xff, 0xff, 0xc7, 0xfc, 0x2e, 0x8c, 0x6f, 0x75, 0x0e, 0xf5, 0x9e, 0xb5, 0x12, 0x58, 0x3f, - 0x1c, 0x97, 0xc9, 0x66, 0x4e, 0xdc, 0xb4, 0x9a, 0x88, 0xcc, 0x71, 0x8e, 0x93, 0x59, 0xfb, 0x09, - 0xb1, 0x5a, 0xcb, 0x6c, 0xd9, 0x1e, 0x24, 0xe9, 0xfc, 0x8a, 0x5a, 0xb4, 0x65, 0x98, 0xdc, 0x78, - 0x50, 0xbf, 0x6f, 0xea, 0x46, 0xbb, 0xb5, 0x7d, 0x20, 0xee, 0x81, 0x92, 0x7a, 0xb5, 0x90, 0x8b, - 0x27, 0xda, 0xa9, 0x13, 0xa9, 0x1c, 0xb3, 0xfd, 0xb9, 0x07, 0x27, 0x37, 0x2d, 0xb7, 0x6d, 0x3b, - 0xdb, 0x6c, 0x0e, 0x4a, 0x1b, 0x7c, 0x21, 0xc4, 0xf6, 0xda, 0x94, 0x0e, 0x85, 0xf2, 0x11, 0xd0, - 0xf0, 0x08, 0x65, 0x1b, 0xa0, 0x65, 0x5b, 0x2e, 0x96, 0x98, 0x4c, 0x9d, 0x47, 0x7f, 0x61, 0x6a, - 0x02, 0x8f, 0xfb, 0x57, 0x00, 0x53, 0x4e, 0xa9, 0x83, 0x40, 0xec, 0x18, 0x1d, 0xd3, 0x5b, 0xaf, - 0x52, 0x8f, 0x95, 0x6f, 0xc0, 0x31, 0x2b, 0xa4, 0xb6, 0x0c, 0x03, 0x76, 0x11, 0x97, 0x28, 0x42, - 0x17, 0xb8, 0xc1, 0xa6, 0xce, 0x98, 0x4e, 0x6c, 0xd0, 0x0b, 0x06, 0x68, 0x34, 0x36, 0xf0, 0xe2, - 0x56, 0x1a, 0x68, 0xba, 0xa1, 0xf7, 0xfb, 0xad, 0x3d, 0x1d, 0xff, 0x87, 0xdb, 0xfa, 0x7b, 0x4d, - 0x60, 0x34, 0x36, 0x10, 0x6d, 0x64, 0xd4, 0x8d, 0x53, 0xf0, 0x66, 0xa3, 0x74, 0xd3, 0x94, 0x8d, - 0x8d, 0xcc, 0x9f, 0x25, 0x38, 0xc1, 0xb5, 0xa2, 0xd5, 0x36, 0xe9, 0x34, 0x30, 0x8f, 0x3b, 0xda, - 0x4c, 0x1a, 0x4c, 0x1b, 0xf1, 0x59, 0x3e, 0xa5, 0xcf, 0x99, 0x75, 0xf4, 0xd6, 0xce, 0xb7, 0x2b, - 0x8b, 0x50, 0x61, 0x9b, 0xb0, 0x13, 0xd0, 0x2e, 0xa8, 0x15, 0xc3, 0x23, 0xd1, 0xbe, 0x82, 0x66, - 0x61, 0x1a, 0x57, 0x65, 0x0a, 0x8e, 0x6f, 0xdd, 0xbd, 0x5d, 0xff, 0x7e, 0xa3, 0xfe, 0xee, 0x56, - 0xbd, 0x96, 0x92, 0xb4, 0xdf, 0x4b, 0x70, 0x1c, 0x97, 0xad, 0x3b, 0xdd, 0x23, 0x5d, 0xa9, 0x40, - 0x69, 0x1d, 0x33, 0xe8, 0xc5, 0xfc, 0x96, 0x5a, 0x68, 0x75, 0x92, 0x2a, 0xd1, 0xa1, 0x96, 0xb6, - 0x95, 0x22, 0x94, 0xaa, 0x18, 0xe0, 0x68, 0xc8, 0x48, 0x3b, 0xda, 0xbf, 0x01, 0x7c, 0x85, 0x2d, - 0xa3, 0xc9, 0x7c, 0x72, 0x91, 0x7f, 0x6f, 0x2a, 0x8f, 0x15, 0x8a, 0xcb, 0xa5, 0x45, 0xeb, 0x0f, - 0xa5, 0xe4, 0x45, 0xfe, 0x15, 0xca, 0xab, 0xe2, 0x39, 0x26, 0x52, 0x8e, 0x31, 0x52, 0xcf, 0x31, - 0x11, 0x4e, 0xea, 0x39, 0x26, 0xc2, 0x49, 0x3d, 0xc7, 0x44, 0x38, 0xa9, 0x67, 0x2b, 0x80, 0x93, - 0x7a, 0x8e, 0x89, 0x70, 0x52, 0xcf, 0x31, 0x11, 0x4e, 0xea, 0x3d, 0x26, 0x82, 0xc5, 0x81, 0xc7, - 0x44, 0x78, 0xb9, 0xf7, 0x98, 0x08, 0x2f, 0xf7, 0x1e, 0x13, 0x29, 0xa3, 0xfa, 0xec, 0x58, 0x0f, - 0xde, 0x74, 0xe0, 0xed, 0x07, 0xbd, 0x03, 0xba, 0x13, 0xf0, 0x26, 0x9c, 0x72, 0xbe, 0x47, 0x54, - 0xbb, 0x86, 0xd9, 0xea, 0x18, 0x68, 0x2a, 0xfe, 0x3a, 0x4c, 0x3a, 0x4d, 0xce, 0x5b, 0x8e, 0xdf, - 0x5b, 0xa0, 0x23, 0xc7, 0xd3, 0x6d, 0x72, 0x87, 0xd1, 0xd6, 0xbe, 0x88, 0xc1, 0xb4, 0x23, 0x6e, - 0xb4, 0x0e, 0x75, 0xee, 0x90, 0xd1, 0xbc, 0xb0, 0xa5, 0x34, 0x69, 0x99, 0x3f, 0x7f, 0x36, 0xeb, - 0xb4, 0xae, 0x53, 0x32, 0xcd, 0x0b, 0x9b, 0x4b, 0xbc, 0x9e, 0xbb, 0xfe, 0xcc, 0x0b, 0x07, 0x8f, - 0x78, 0x3d, 0xba, 0xdc, 0x50, 0x3d, 0x72, 0x04, 0x89, 0xd7, 0xab, 0x51, 0x96, 0xcd, 0x0b, 0x87, - 0x91, 0x78, 0xbd, 0x3a, 0xe5, 0xdb, 0xbc, 0xb0, 0xf5, 0xc4, 0xeb, 0x5d, 0xa3, 0xcc, 0x9b, 0x17, - 0x36, 0xa1, 0x78, 0xbd, 0x6f, 0x52, 0x0e, 0xce, 0x0b, 0x47, 0x95, 0x78, 0xbd, 0xeb, 0x94, 0x8d, - 0xf3, 0xc2, 0xa1, 0x25, 0x5e, 0xef, 0x06, 0xe5, 0xe5, 0x82, 0x78, 0x7c, 0x89, 0x57, 0xbc, 0xe9, - 0x32, 0x74, 0x41, 0x3c, 0xc8, 0xc4, 0x6b, 0x7e, 0xcb, 0xe5, 0xea, 0x82, 0x78, 0xa4, 0x89, 0xd7, - 0xbc, 0xe5, 0xb2, 0x76, 0x41, 0xdc, 0x2a, 0xe3, 0x35, 0x37, 0x5c, 0xfe, 0x2e, 0x88, 0x9b, 0x66, - 0xbc, 0x66, 0xc3, 0x65, 0xf2, 0x82, 0xb8, 0x7d, 0xc6, 0x6b, 0x6e, 0xba, 0xdf, 0xd0, 0x3f, 0x12, - 0xe8, 0xc7, 0x1c, 0x82, 0xd2, 0x04, 0xfa, 0x41, 0x1f, 0xea, 0x69, 0x02, 0xf5, 0xa0, 0x0f, 0xed, - 0x34, 0x81, 0x76, 0xd0, 0x87, 0x72, 0x9a, 0x40, 0x39, 0xe8, 0x43, 0x37, 0x4d, 0xa0, 0x1b, 0xf4, - 0xa1, 0x9a, 0x26, 0x50, 0x0d, 0xfa, 0xd0, 0x4c, 0x13, 0x68, 0x06, 0x7d, 0x28, 0xa6, 0x09, 0x14, - 0x83, 0x3e, 0xf4, 0xd2, 0x04, 0x7a, 0x41, 0x1f, 0x6a, 0x65, 0x45, 0x6a, 0x41, 0x3f, 0x5a, 0x65, - 0x45, 0x5a, 0x41, 0x3f, 0x4a, 0x7d, 0x55, 0xa4, 0xd4, 0x18, 0xd2, 0x8a, 0x5b, 0x4d, 0x0c, 0x9b, - 0xb2, 0x22, 0x9b, 0xa0, 0x1f, 0x93, 0xb2, 0x22, 0x93, 0xa0, 0x1f, 0x8b, 0xb2, 0x22, 0x8b, 0xa0, - 0x1f, 0x83, 0x9e, 0x88, 0x0c, 0x72, 0x8f, 0xf8, 0x68, 0xc2, 0x8e, 0x62, 0x18, 0x83, 0x40, 0x04, - 0x06, 0x81, 0x08, 0x0c, 0x02, 0x11, 0x18, 0x04, 0x22, 0x30, 0x08, 0x44, 0x60, 0x10, 0x88, 0xc0, - 0x20, 0x10, 0x81, 0x41, 0x20, 0x0a, 0x83, 0x40, 0x24, 0x06, 0x81, 0x20, 0x06, 0x65, 0xc5, 0x03, - 0x0f, 0xd0, 0x6f, 0x42, 0xca, 0x8a, 0x3b, 0x9f, 0xe1, 0x14, 0x02, 0x91, 0x28, 0x04, 0x82, 0x28, - 0xf4, 0x11, 0x2a, 0xa4, 0x38, 0x0a, 0xe1, 0xed, 0xa1, 0xb3, 0x9a, 0x81, 0x56, 0x23, 0x9c, 0xaf, - 0xf0, 0xe3, 0xd4, 0x6a, 0x84, 0x3d, 0xea, 0x41, 0x3c, 0xf3, 0xce, 0x42, 0xf5, 0x08, 0xb3, 0xd0, - 0x35, 0xca, 0xa1, 0xd5, 0x08, 0xe7, 0x2e, 0xbc, 0xdc, 0x5b, 0x1b, 0x34, 0x09, 0x5c, 0x8f, 0x34, - 0x09, 0xdc, 0x88, 0x34, 0x09, 0xdc, 0x74, 0x11, 0xfc, 0x89, 0x0c, 0x5f, 0x75, 0x11, 0x74, 0x7e, - 0x6d, 0x3d, 0x38, 0xb2, 0xa6, 0x00, 0x77, 0x87, 0x4a, 0x21, 0xbb, 0x36, 0x0c, 0x8c, 0xd6, 0xfe, - 0xcd, 0x6d, 0x7e, 0xaf, 0xaa, 0x3c, 0xec, 0xfe, 0x0d, 0x83, 0x38, 0xfe, 0x16, 0x9a, 0x85, 0xe0, - 0x46, 0xbb, 0x6f, 0xcf, 0x16, 0x7e, 0xc3, 0x56, 0x9b, 0xa0, 0xd3, 0xee, 0x2b, 0x4d, 0x38, 0x6a, - 0x8f, 0xdb, 0xb7, 0xe1, 0x3d, 0xcd, 0xc0, 0x08, 0x7a, 0x7b, 0xe0, 0xbe, 0xf6, 0x44, 0x82, 0x73, - 0x1c, 0x95, 0xcf, 0x66, 0xc7, 0xe0, 0xad, 0x48, 0x3b, 0x06, 0x5c, 0x82, 0xb8, 0xbb, 0x07, 0x5f, - 0xf3, 0x6e, 0x54, 0xb3, 0x59, 0x22, 0xee, 0x24, 0xfc, 0x18, 0x4e, 0xba, 0x4f, 0x60, 0xbf, 0xb2, - 0xad, 0x84, 0x7f, 0xcc, 0xf4, 0x4b, 0xcd, 0x15, 0xe1, 0x23, 0xda, 0x40, 0x33, 0x9a, 0xad, 0x5a, - 0x19, 0xbd, 0x71, 0x76, 0xed, 0x4f, 0x06, 0x7d, 0x14, 0xac, 0xfe, 0x46, 0xeb, 0x28, 0xec, 0x5b, - 0x44, 0xc2, 0x2a, 0xcd, 0x4f, 0x7e, 0x85, 0xca, 0xf3, 0x4b, 0x30, 0x79, 0xc7, 0xe8, 0xe9, 0x3b, - 0xdd, 0x3d, 0xa3, 0xf3, 0x23, 0xbd, 0x2d, 0x18, 0x8e, 0x11, 0xc3, 0x72, 0xec, 0xa9, 0xa5, 0xfd, - 0x73, 0x09, 0x5e, 0x60, 0xd5, 0xbf, 0x83, 0xb0, 0xbf, 0x61, 0x58, 0x35, 0xfd, 0xdb, 0x30, 0xa1, - 0x63, 0xe0, 0xec, 0xb5, 0x6b, 0x9c, 0xbc, 0x46, 0xfa, 0xaa, 0x2f, 0xda, 0x7f, 0x9b, 0xd4, 0x44, - 0xf8, 0xc4, 0x41, 0x86, 0x2d, 0x66, 0xde, 0x80, 0x71, 0xa7, 0x7f, 0xde, 0xaf, 0x09, 0xc1, 0xaf, - 0xdf, 0xf8, 0xf8, 0x65, 0xf3, 0x48, 0xb9, 0xc9, 0xf9, 0xc5, 0xbc, 0xad, 0xfa, 0xaa, 0x2f, 0x12, - 0xf2, 0x55, 0x12, 0x56, 0xfd, 0x67, 0x33, 0x2a, 0xdc, 0xc9, 0x05, 0x98, 0xa8, 0x8b, 0x3a, 0xfe, - 0x7e, 0xd6, 0x60, 0xac, 0xd1, 0x6d, 0xeb, 0xca, 0xab, 0x30, 0x7e, 0xab, 0xb5, 0xad, 0x1f, 0xe0, - 0x20, 0xc7, 0x0f, 0xac, 0x7f, 0x50, 0xf9, 0x9d, 0xa8, 0xee, 0x77, 0x0e, 0xda, 0x3d, 0xdd, 0xc0, - 0x5b, 0xf6, 0xf8, 0x0b, 0xba, 0x65, 0xd3, 0x4c, 0xec, 0x60, 0x59, 0x4e, 0x83, 0xe3, 0x0c, 0x25, - 0x94, 0x38, 0x7a, 0xfd, 0x4f, 0x8d, 0x58, 0xb7, 0x4a, 0x4a, 0xb2, 0x6e, 0xd5, 0x94, 0x9c, 0x7b, - 0x03, 0x4e, 0x09, 0x1f, 0xc8, 0x2c, 0x49, 0x2d, 0x05, 0xad, 0x5b, 0x3d, 0x35, 0x9e, 0x89, 0x3d, - 0xfc, 0xf5, 0xcc, 0x48, 0xee, 0x2d, 0xa8, 0x78, 0x3f, 0xa5, 0x29, 0xa3, 0x50, 0x5e, 0xb7, 0xba, - 0x7c, 0x0d, 0xca, 0x15, 0xd4, 0x67, 0x66, 0xea, 0xa7, 0xbf, 0x98, 0x1b, 0xaf, 0xe8, 0xa6, 0xa9, - 0xf7, 0x90, 0x76, 0xa5, 0x82, 0x8d, 0xdf, 0x81, 0x17, 0x7c, 0x3f, 0xc5, 0x59, 0xf6, 0xd5, 0xaa, - 0x63, 0x5f, 0xab, 0x79, 0xec, 0x6b, 0x35, 0xdb, 0x5e, 0x2a, 0x93, 0x2d, 0xcd, 0x75, 0xc5, 0xe7, - 0xc3, 0x97, 0xda, 0x66, 0xb6, 0x50, 0xd7, 0xcb, 0xef, 0x60, 0xdd, 0x8a, 0xaf, 0xae, 0x1e, 0xb2, - 0x25, 0x5a, 0x29, 0x57, 0xb1, 0x7d, 0xd5, 0xd7, 0x7e, 0x57, 0xd8, 0xb7, 0xe3, 0xe7, 0x20, 0xdc, - 0x49, 0x95, 0x3a, 0x5c, 0xf3, 0xed, 0x64, 0x9f, 0x39, 0x4d, 0x5d, 0xa3, 0x0e, 0xd7, 0x7d, 0x75, - 0x3b, 0x21, 0xa7, 0x8a, 0xea, 0xe5, 0x25, 0xbc, 0x8c, 0xac, 0x17, 0x94, 0x0b, 0x84, 0x05, 0x5c, - 0x8e, 0xe3, 0x00, 0x39, 0x2b, 0xca, 0x7a, 0x01, 0x3d, 0xa1, 0x63, 0x50, 0x09, 0x34, 0x08, 0x8e, - 0x92, 0xd3, 0x49, 0xa5, 0x50, 0xbe, 0x8e, 0x3b, 0xa9, 0x06, 0x76, 0x12, 0x12, 0x2a, 0xa7, 0xa7, - 0x6a, 0xa1, 0xb2, 0x75, 0xf2, 0xf1, 0xcc, 0xc8, 0x53, 0x74, 0xfd, 0x1d, 0x5d, 0xff, 0xfa, 0x78, - 0x46, 0xfa, 0x14, 0x5d, 0x9f, 0xa1, 0xeb, 0x73, 0x74, 0xbd, 0xf7, 0x7c, 0x46, 0x7a, 0x8c, 0xae, - 0x0f, 0xd1, 0xf5, 0x07, 0x74, 0x3d, 0x41, 0xd7, 0x09, 0xba, 0x9e, 0x3e, 0x47, 0xba, 0xe8, 0xfe, - 0x29, 0xba, 0x7f, 0x86, 0xee, 0x9f, 0xa3, 0xfb, 0x7b, 0x9f, 0xcc, 0x8c, 0x3c, 0x42, 0xd7, 0xe3, - 0x4f, 0x66, 0xa4, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xa8, 0x87, 0x58, 0xad, 0x34, 0x00, - 0x00, + // 3083 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, + 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, + 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, + 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, + 0xa0, 0xee, 0x76, 0x0f, 0xef, 0x75, 0xfb, 0x4b, 0x87, 0xad, 0x5e, 0x7f, 0xbf, 0x75, 0xa0, 0xf7, + 0x96, 0xcc, 0x7d, 0xdd, 0xd4, 0xfb, 0xe6, 0xe2, 0x51, 0xaf, 0x6b, 0x76, 0xe5, 0xa4, 0xf5, 0x77, + 0xe6, 0xda, 0x5e, 0xc7, 0xdc, 0x3f, 0xbe, 0xb7, 0xb8, 0xdb, 0x3d, 0x5c, 0xda, 0xeb, 0xee, 0x75, + 0x97, 0x6c, 0xe1, 0xbd, 0xe3, 0xfb, 0xf6, 0x2f, 0xfb, 0x87, 0xfd, 0x97, 0x63, 0xa4, 0xfd, 0x13, + 0xc3, 0x64, 0xa3, 0xd3, 0xde, 0x3e, 0x32, 0x1b, 0x2d, 0xb3, 0xf3, 0x96, 0x2e, 0xcf, 0xc2, 0x85, + 0x9b, 0x1d, 0xfd, 0xa0, 0xbd, 0xac, 0xa0, 0x2c, 0xca, 0xa1, 0x4a, 0xf2, 0xe4, 0x74, 0x2e, 0xd1, + 0x24, 0x63, 0x54, 0x5a, 0x54, 0xa4, 0x2c, 0xca, 0x49, 0x9c, 0xb4, 0x48, 0xa5, 0x2b, 0x0a, 0xce, + 0xa2, 0xdc, 0x18, 0x27, 0x5d, 0xa1, 0xd2, 0x92, 0x92, 0xcc, 0xa2, 0x1c, 0xe6, 0xa4, 0x25, 0x2a, + 0x5d, 0x55, 0xc6, 0xb2, 0x28, 0x77, 0x91, 0x93, 0xae, 0x52, 0xe9, 0x9a, 0x72, 0x21, 0x8b, 0x72, + 0x49, 0x4e, 0xba, 0x46, 0xa5, 0xd7, 0x95, 0x67, 0xb2, 0x28, 0x77, 0x89, 0x93, 0x5e, 0xa7, 0xd2, + 0x75, 0x25, 0x95, 0x45, 0x39, 0x99, 0x93, 0xae, 0x53, 0xe9, 0x0d, 0x65, 0x3c, 0x8b, 0x72, 0xcf, + 0x70, 0xd2, 0x1b, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x5e, 0x50, 0x20, 0x8b, 0x72, 0xd3, 0x44, 0xec, + 0x0e, 0x7a, 0xf2, 0x65, 0x65, 0x22, 0x8b, 0x72, 0x17, 0x78, 0xf9, 0xb2, 0x27, 0x2f, 0x2a, 0x93, + 0x59, 0x94, 0x4b, 0xf3, 0xf2, 0xa2, 0x27, 0x5f, 0x51, 0x2e, 0x66, 0x51, 0x2e, 0xc5, 0xcb, 0x57, + 0x3c, 0x79, 0x49, 0x99, 0xca, 0xa2, 0xdc, 0x38, 0x2f, 0x2f, 0x79, 0xf2, 0x55, 0x65, 0x3a, 0x8b, + 0x72, 0x93, 0xbc, 0x7c, 0x55, 0x7b, 0xd7, 0x86, 0xd7, 0xf0, 0xe0, 0x9d, 0xe1, 0xe1, 0xa5, 0xc0, + 0xce, 0xf0, 0xc0, 0x52, 0x48, 0x67, 0x78, 0x48, 0x29, 0x98, 0x33, 0x3c, 0x98, 0x14, 0xc6, 0x19, + 0x1e, 0x46, 0x0a, 0xe0, 0x0c, 0x0f, 0x20, 0x85, 0x6e, 0x86, 0x87, 0x8e, 0x82, 0x36, 0xc3, 0x83, + 0x46, 0xe1, 0x9a, 0xe1, 0xe1, 0xa2, 0x40, 0x29, 0x02, 0x50, 0x1e, 0x44, 0x8a, 0x00, 0x91, 0x07, + 0x8e, 0x22, 0x80, 0xe3, 0xc1, 0xa2, 0x08, 0xb0, 0x78, 0x80, 0x28, 0x02, 0x20, 0x1e, 0x14, 0x8a, + 0x00, 0x85, 0x07, 0x02, 0xc9, 0xb1, 0xa6, 0x7e, 0x14, 0x90, 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, + 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, + 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x78, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x23, + 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x9a, 0x63, 0x1e, 0xbc, 0x33, 0x3c, 0xbc, + 0x81, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, + 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x61, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, + 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x30, 0x9b, 0x63, 0x7f, 0xc6, + 0x20, 0x3b, 0x39, 0x76, 0xbb, 0xb5, 0xfb, 0x43, 0xbd, 0x4d, 0xa0, 0x50, 0x85, 0x4c, 0xbb, 0x60, + 0x41, 0x97, 0xf6, 0x20, 0x51, 0x85, 0x5c, 0xe3, 0xe5, 0x45, 0x2a, 0x77, 0xb3, 0x8d, 0x97, 0xaf, + 0x50, 0xb9, 0x9b, 0x6f, 0xbc, 0xbc, 0x44, 0xe5, 0x6e, 0xc6, 0xf1, 0xf2, 0x55, 0x2a, 0x77, 0x73, + 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x75, 0xbc, 0xfc, 0x3a, 0x95, 0xbb, 0x79, 0xc7, 0xcb, 0xd7, + 0xa9, 0xdc, 0xcd, 0x3c, 0x5e, 0x7e, 0x43, 0xce, 0x8a, 0xb9, 0xe7, 0x2a, 0x50, 0x68, 0xb3, 0x62, + 0xf6, 0x09, 0x1a, 0xcb, 0x9e, 0x86, 0x9b, 0x7f, 0x82, 0x46, 0xd1, 0xd3, 0x70, 0x33, 0x50, 0xd0, + 0x58, 0xd1, 0xde, 0xb3, 0xe1, 0x33, 0x44, 0xf8, 0x32, 0x02, 0x7c, 0x12, 0x03, 0x5d, 0x46, 0x80, + 0x4e, 0x62, 0x60, 0xcb, 0x08, 0xb0, 0x49, 0x0c, 0x64, 0x19, 0x01, 0x32, 0x89, 0x81, 0x2b, 0x23, + 0xc0, 0x25, 0x31, 0x50, 0x65, 0x04, 0xa8, 0x24, 0x06, 0xa6, 0x8c, 0x00, 0x93, 0xc4, 0x40, 0x94, + 0x11, 0x20, 0x92, 0x18, 0x78, 0x32, 0x02, 0x3c, 0x12, 0x03, 0xcd, 0xac, 0x08, 0x8d, 0xc4, 0xc2, + 0x32, 0x2b, 0xc2, 0x22, 0xb1, 0x90, 0xcc, 0x8a, 0x90, 0x48, 0x2c, 0x1c, 0xb3, 0x22, 0x1c, 0x12, + 0x0b, 0xc5, 0x97, 0x92, 0xdb, 0x11, 0xbe, 0x69, 0xf6, 0x8e, 0x77, 0xcd, 0x73, 0x75, 0x84, 0x05, + 0xae, 0x7d, 0x98, 0x28, 0xca, 0x8b, 0x76, 0xc3, 0xca, 0x76, 0x9c, 0xc2, 0x1b, 0xac, 0xc0, 0x35, + 0x16, 0x8c, 0x85, 0x11, 0x6c, 0x51, 0x3a, 0x57, 0x6f, 0x58, 0xe0, 0xda, 0x8c, 0x68, 0xff, 0xd6, + 0xbf, 0xf2, 0x8e, 0xed, 0x91, 0xe4, 0x76, 0x6c, 0x24, 0xfc, 0xa3, 0x76, 0x6c, 0xf9, 0xe8, 0x90, + 0xd3, 0x60, 0xe7, 0xa3, 0x83, 0xed, 0x7b, 0xeb, 0xc4, 0xed, 0xe0, 0xf2, 0xd1, 0xa1, 0xa5, 0x41, + 0x7d, 0xba, 0xfd, 0x16, 0x61, 0x70, 0x53, 0x3f, 0x0a, 0x60, 0xf0, 0xa8, 0xfd, 0x56, 0x81, 0x2b, + 0x25, 0xa3, 0x32, 0x18, 0x8f, 0xcc, 0xe0, 0x51, 0x3b, 0xaf, 0x02, 0x57, 0x5e, 0x46, 0x66, 0xf0, + 0x57, 0xd0, 0x0f, 0x11, 0x06, 0x7b, 0xe1, 0x1f, 0xb5, 0x1f, 0xca, 0x47, 0x87, 0x3c, 0x90, 0xc1, + 0x78, 0x04, 0x06, 0xc7, 0xe9, 0x8f, 0xf2, 0xd1, 0xa1, 0x0d, 0x66, 0xf0, 0xb9, 0xbb, 0x99, 0xf7, + 0x11, 0x5c, 0x6a, 0x74, 0xda, 0xf5, 0xc3, 0x7b, 0x7a, 0xbb, 0xad, 0xb7, 0x49, 0x1c, 0x0b, 0x5c, + 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xe9, 0x9c, 0x17, 0xe1, 0x55, 0x48, 0x39, 0x31, 0x2d, 0x14, 0x94, + 0x13, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xc5, 0x35, 0x5b, 0x2e, 0x28, 0x7f, 0x47, 0x4c, 0x95, + 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x73, 0x7b, 0xb8, 0x14, 0xcb, 0x43, 0xc6, 0xb7, 0x17, + 0x7c, 0xbe, 0x31, 0x5e, 0x1d, 0xc3, 0x74, 0xa3, 0xd3, 0x6e, 0xe8, 0x7d, 0x33, 0x9e, 0x4b, 0x8e, + 0x8e, 0x50, 0x0f, 0x0a, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, 0x46, 0x68, 0x1d, 0x6b, 0x59, + 0x83, 0x5b, 0x36, 0x1f, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xf9, 0xb0, 0x05, 0xbd, 0x1c, 0xa2, + 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0xab, 0xc7, 0x7d, 0xb3, 0x7b, 0x28, 0xcf, 0x82, 0xb4, 0xd9, 0xb6, + 0xd7, 0x98, 0xac, 0x4c, 0x5a, 0x4e, 0x7d, 0x7c, 0x3a, 0x97, 0xbc, 0x73, 0xdc, 0x69, 0x37, 0xa5, + 0xcd, 0xb6, 0x7c, 0x0b, 0xc6, 0xbe, 0xd3, 0x3a, 0x38, 0xd6, 0xed, 0x57, 0xc4, 0x64, 0xa5, 0x44, + 0x14, 0x5e, 0x0e, 0xdd, 0x23, 0xb2, 0x16, 0x5e, 0xda, 0xb5, 0xa7, 0x5e, 0xbc, 0xd3, 0x31, 0xcc, + 0xe5, 0xe2, 0x7a, 0xd3, 0x99, 0x42, 0xfb, 0x3e, 0x80, 0xb3, 0x66, 0xad, 0xd5, 0xdf, 0x97, 0x1b, + 0xee, 0xcc, 0xce, 0xd2, 0xeb, 0x1f, 0x9f, 0xce, 0x95, 0xe2, 0xcc, 0x7a, 0xad, 0xdd, 0xea, 0xef, + 0x5f, 0x33, 0x1f, 0x1c, 0xe9, 0x8b, 0x95, 0x07, 0xa6, 0xde, 0x77, 0x67, 0x3f, 0x72, 0xdf, 0x7a, + 0xe4, 0xb9, 0x14, 0xe6, 0xb9, 0x52, 0xdc, 0x33, 0xdd, 0xe4, 0x9f, 0xa9, 0xf0, 0xa4, 0xcf, 0xf3, + 0xb6, 0xfb, 0x92, 0x10, 0x22, 0x89, 0xa3, 0x22, 0x89, 0xcf, 0x1b, 0xc9, 0x23, 0xb7, 0x3e, 0x0a, + 0xcf, 0x8a, 0x87, 0x3d, 0x2b, 0x3e, 0xcf, 0xb3, 0xfe, 0xdb, 0xc9, 0x56, 0x9a, 0x4f, 0x77, 0x8c, + 0x4e, 0xd7, 0xf8, 0xda, 0xed, 0x05, 0x3d, 0xd5, 0x2e, 0xa0, 0x9c, 0x3c, 0x79, 0x38, 0x87, 0xb4, + 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xb2, 0x27, 0xff, 0xba, 0xf4, 0x54, 0x5f, 0x45, 0x84, + 0x7e, 0x85, 0x60, 0xc6, 0x57, 0xc9, 0x9d, 0x30, 0x3d, 0xdd, 0x72, 0x6e, 0x8c, 0x5a, 0xce, 0x89, + 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x04, 0xf7, 0x9e, 0xf7, 0xaf, 0x64, + 0x2b, 0x32, 0xde, 0xb1, 0xf0, 0x0a, 0x06, 0xcc, 0xcc, 0x14, 0xf7, 0x92, 0x80, 0xfb, 0x2c, 0x35, + 0x08, 0x08, 0x97, 0xcb, 0x00, 0xe2, 0x76, 0x17, 0x92, 0x3b, 0x3d, 0x5d, 0x97, 0x55, 0x90, 0xb6, + 0x7b, 0xc4, 0xc3, 0x29, 0xc7, 0x7e, 0xbb, 0x57, 0xe9, 0xb5, 0x8c, 0xdd, 0xfd, 0xa6, 0xb4, 0xdd, + 0x93, 0xaf, 0x00, 0xde, 0x30, 0xda, 0xc4, 0xa3, 0x69, 0x47, 0x61, 0xc3, 0x68, 0x13, 0x0d, 0x4b, + 0x26, 0xab, 0x90, 0x7c, 0x43, 0x6f, 0xdd, 0x27, 0x4e, 0x80, 0xa3, 0x63, 0x8d, 0x34, 0xed, 0x71, + 0xb2, 0xe0, 0xf7, 0x20, 0xe5, 0x4e, 0x2c, 0xcf, 0x5b, 0x16, 0xf7, 0x4d, 0xb2, 0x2c, 0xb1, 0xb0, + 0xdc, 0x21, 0x6f, 0x2e, 0x5b, 0x2a, 0x2f, 0xc0, 0x58, 0xb3, 0xb3, 0xb7, 0x6f, 0x92, 0xc5, 0xfd, + 0x6a, 0x8e, 0x58, 0xbb, 0x0b, 0xe3, 0xd4, 0xa3, 0xa7, 0x3c, 0x75, 0xcd, 0x79, 0x34, 0x39, 0xc3, + 0xbe, 0x4f, 0xdc, 0x7d, 0x4b, 0x67, 0x48, 0xce, 0x42, 0xea, 0x4d, 0xb3, 0xe7, 0x15, 0x7d, 0xb7, + 0x23, 0xa5, 0xa3, 0xda, 0xbb, 0x08, 0x52, 0x35, 0x5d, 0x3f, 0xb2, 0x03, 0x7e, 0x15, 0x92, 0xb5, + 0xee, 0x8f, 0x0c, 0xe2, 0xe0, 0x25, 0x12, 0x51, 0x4b, 0x4c, 0x62, 0x6a, 0x8b, 0xe5, 0xab, 0x6c, + 0xdc, 0x9f, 0xa5, 0x71, 0x67, 0xf4, 0xec, 0xd8, 0x6b, 0x5c, 0xec, 0x09, 0x80, 0x96, 0x92, 0x2f, + 0xfe, 0xd7, 0x61, 0x82, 0x59, 0x45, 0xce, 0x11, 0x37, 0x24, 0xd1, 0x90, 0x8d, 0x95, 0xa5, 0xa1, + 0xe9, 0x70, 0x91, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x62, 0x6a, 0x87, 0x39, 0xcf, 0x87, 0x39, + 0x58, 0x95, 0x84, 0xba, 0xe0, 0xc4, 0xc8, 0x0e, 0xf7, 0xbc, 0x43, 0xce, 0x70, 0x10, 0xad, 0xbf, + 0xb5, 0x31, 0xc0, 0x8d, 0xce, 0x81, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x75, 0xe3, 0xf8, 0x50, 0xc8, + 0xba, 0x29, 0x37, 0xc0, 0x3b, 0xfb, 0xfa, 0x8e, 0xde, 0xb7, 0x55, 0xf8, 0x7e, 0xca, 0x2a, 0x30, + 0xe0, 0xa4, 0x98, 0x6d, 0xff, 0x52, 0xa4, 0x7d, 0x60, 0x27, 0x66, 0xa9, 0x2a, 0x8e, 0xea, 0x5d, + 0xdd, 0xdc, 0x30, 0xba, 0xe6, 0xbe, 0xde, 0x13, 0x2c, 0x8a, 0xf2, 0x0a, 0x97, 0xb0, 0x53, 0xc5, + 0x17, 0xa8, 0x45, 0xa8, 0xd1, 0x8a, 0xf6, 0xa1, 0xed, 0xa0, 0xd5, 0x0a, 0xf8, 0x1e, 0x10, 0xc7, + 0x78, 0x40, 0x79, 0x8d, 0xeb, 0xdf, 0x86, 0xb8, 0x29, 0x7c, 0x5a, 0xde, 0xe0, 0xbe, 0x73, 0x86, + 0x3b, 0xcb, 0x7f, 0x63, 0xba, 0x31, 0x75, 0x5d, 0x7e, 0x29, 0xd2, 0xe5, 0x90, 0xee, 0x76, 0xd4, + 0x98, 0xe2, 0xb8, 0x31, 0xfd, 0x13, 0xed, 0x38, 0xac, 0xe1, 0x9a, 0x7e, 0xbf, 0x75, 0x7c, 0x60, + 0xca, 0x2f, 0x47, 0x62, 0x5f, 0x46, 0x55, 0xea, 0x6a, 0x29, 0x2e, 0xfc, 0x65, 0xa9, 0x52, 0xa1, + 0xee, 0x5e, 0x1f, 0x81, 0x02, 0x65, 0xa9, 0x5a, 0xa5, 0x65, 0x3b, 0xf5, 0xde, 0xc3, 0x39, 0xf4, + 0xc1, 0xc3, 0xb9, 0x84, 0xf6, 0x3b, 0x04, 0x97, 0x88, 0x26, 0x43, 0xdc, 0x6b, 0x82, 0xf3, 0x97, + 0xdd, 0x9a, 0x11, 0x14, 0x81, 0xff, 0x1a, 0x79, 0xff, 0x8a, 0x40, 0xf1, 0xf9, 0xea, 0xc6, 0xbb, + 0x10, 0xcb, 0xe5, 0x32, 0xaa, 0xff, 0xef, 0x63, 0x7e, 0x17, 0xc6, 0x76, 0x3a, 0x87, 0x7a, 0xcf, + 0x7a, 0x13, 0x58, 0x7f, 0x38, 0x2e, 0xbb, 0x87, 0x39, 0xce, 0x90, 0x2b, 0x73, 0x9c, 0xe3, 0x64, + 0x45, 0x59, 0x81, 0x64, 0xad, 0x65, 0xb6, 0x6c, 0x0f, 0x26, 0x69, 0x7d, 0x6d, 0x99, 0x2d, 0x6d, + 0x05, 0x26, 0xb7, 0x1e, 0xd4, 0xdf, 0x36, 0x75, 0xa3, 0xdd, 0xba, 0x77, 0x20, 0x9e, 0x81, 0xba, + 0xfd, 0xea, 0x72, 0x7e, 0x2c, 0xd5, 0x4e, 0x9f, 0xa0, 0x72, 0xd2, 0xf6, 0xe7, 0x2d, 0x98, 0xda, + 0xb6, 0xdc, 0xb6, 0xed, 0x6c, 0xb3, 0x2c, 0xa0, 0x2d, 0xbe, 0x11, 0x62, 0x67, 0x6d, 0xa2, 0x2d, + 0xa1, 0x7d, 0xc4, 0x34, 0x3c, 0x42, 0xdb, 0x86, 0x69, 0xdb, 0x96, 0x4f, 0xa6, 0xa6, 0xd2, 0x97, + 0xf2, 0xc9, 0x14, 0xa4, 0x2f, 0x92, 0x75, 0xff, 0x86, 0x21, 0xed, 0xb4, 0x3a, 0x35, 0xfd, 0x7e, + 0xc7, 0xe8, 0x98, 0xfe, 0x7e, 0x95, 0x7a, 0x2c, 0x7f, 0x13, 0xc6, 0xad, 0x90, 0xda, 0xbf, 0x08, + 0x60, 0x57, 0x48, 0x8b, 0x22, 0x4c, 0x41, 0x06, 0x6c, 0xea, 0x78, 0x36, 0xf2, 0x4d, 0xc0, 0x8d, + 0xc6, 0x16, 0x79, 0xb9, 0x95, 0x86, 0x9a, 0x6e, 0xe9, 0xfd, 0x7e, 0x6b, 0x4f, 0x27, 0xbf, 0xc8, + 0x58, 0x7f, 0xaf, 0x69, 0x4d, 0x20, 0x97, 0x40, 0x6a, 0x6c, 0x91, 0x86, 0x77, 0x3e, 0xce, 0x34, + 0x4d, 0xa9, 0xb1, 0x95, 0xf9, 0x0b, 0x82, 0x8b, 0xdc, 0xa8, 0xac, 0xc1, 0xa4, 0x33, 0xc0, 0x3c, + 0xee, 0x85, 0x26, 0x37, 0xe6, 0xfa, 0x2c, 0x9d, 0xd3, 0xe7, 0xcc, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, + 0x22, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, + 0x79, 0x1a, 0x26, 0x76, 0xee, 0xde, 0xae, 0xff, 0xa0, 0x51, 0x7f, 0x73, 0xa7, 0x5e, 0x4b, 0x23, + 0xed, 0x0f, 0x08, 0x26, 0x48, 0xdb, 0xba, 0xdb, 0x3d, 0xd2, 0xe5, 0x0a, 0xa0, 0x0d, 0xc2, 0xa0, + 0x27, 0xf3, 0x1b, 0x6d, 0xc8, 0x4b, 0x80, 0x2a, 0xf1, 0xa1, 0x46, 0x15, 0xb9, 0x08, 0xa8, 0x4a, + 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x6a, 0xff, 0xc2, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x0a, + 0xff, 0xdd, 0x54, 0x1e, 0x5f, 0x2e, 0xae, 0x94, 0x16, 0xad, 0x7f, 0x28, 0x25, 0xaf, 0xf0, 0x9f, + 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x72, 0x92, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, + 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, + 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, + 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x39, 0x69, 0xf6, 0x8e, 0xf5, 0xf0, 0x43, 0x07, 0xde, 0x7e, + 0xd8, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, 0xa8, 0x76, 0x0d, 0xb3, 0xd5, 0x31, + 0xf4, 0x9e, 0xfc, 0x0d, 0x98, 0x74, 0x86, 0x9c, 0xaf, 0x9c, 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, + 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x84, 0x19, 0x67, 0xa0, 0xd1, 0x3a, 0xd4, 0xb9, 0x4b, 0x46, 0x0b, + 0xc2, 0x91, 0xd2, 0x94, 0x65, 0x3e, 0x38, 0x9d, 0x73, 0x46, 0x37, 0x28, 0x99, 0x16, 0x84, 0xc3, + 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0x2c, 0x08, 0x17, 0x8f, 0x78, 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, + 0x15, 0x24, 0x5e, 0xaf, 0x46, 0x59, 0xb6, 0x20, 0x5c, 0x46, 0xe2, 0xf5, 0xea, 0x94, 0x6f, 0x0b, + 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x93, 0x32, 0x6f, 0x41, 0x38, 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, + 0xb8, 0x20, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x5c, 0x10, 0x2e, 0x2d, 0xf1, 0x7a, 0x9b, + 0x94, 0x97, 0x39, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xcb, 0x63, 0x68, 0x4e, 0xbc, 0xc8, 0xc4, 0x6b, + 0x7e, 0xdb, 0xe3, 0x6a, 0x4e, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, 0xe1, 0xb1, 0x36, 0x27, 0x1e, 0x95, + 0xf1, 0x9a, 0x5b, 0x1e, 0x7f, 0x73, 0xe2, 0xa1, 0x19, 0xaf, 0xd9, 0xf0, 0x98, 0x9c, 0x13, 0x8f, + 0xcf, 0x78, 0xcd, 0x6d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, + 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, + 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, + 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, + 0x6b, 0x5e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x5e, 0xa4, 0x15, 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, + 0xe3, 0x83, 0xd3, 0xb9, 0x31, 0x6b, 0x88, 0x61, 0xd3, 0xbc, 0xc8, 0x26, 0x08, 0x62, 0xd2, 0xbc, + 0xc8, 0x24, 0x08, 0x62, 0xd1, 0xbc, 0xc8, 0x22, 0x08, 0x62, 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, + 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, + 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, + 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x79, 0xf1, 0xc2, 0x03, 0x04, 0x15, 0xa4, 0x79, 0xf1, 0xe4, + 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, + 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x5a, 0x8c, 0xfb, 0x15, 0x41, 0x9c, 0x5a, 0x8b, 0x71, 0x46, 0x3d, + 0x8c, 0x67, 0xfe, 0x2a, 0x54, 0x8f, 0x51, 0x85, 0x6e, 0x52, 0x0e, 0xad, 0xc5, 0xb8, 0x77, 0xe1, + 0xe7, 0xde, 0xfa, 0xb0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, 0x19, 0xab, 0x08, 0xdc, 0xf2, 0x10, + 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0xed, 0x3c, 0x38, 0xb2, 0x4a, 0x80, 0x77, 0x42, + 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x66, 0x5b, 0xbe, 0xcd, 0x9f, 0x55, 0x95, 0x47, 0x3d, + 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0xf3, 0x80, 0x37, 0xdb, 0x7d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, + 0x6d, 0x5a, 0x62, 0xb9, 0x09, 0x17, 0x6c, 0xf5, 0xbe, 0x0d, 0xef, 0x79, 0x16, 0xae, 0x35, 0xc9, + 0x4c, 0xda, 0x23, 0x04, 0x59, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, + 0x82, 0x78, 0xa7, 0x07, 0xff, 0xef, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x09, 0x4c, + 0x79, 0x4f, 0x60, 0x7f, 0xb2, 0xad, 0x46, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0xaa, 0xb0, 0x89, 0x36, + 0xd4, 0x8c, 0x66, 0xab, 0x56, 0x86, 0xe9, 0x46, 0xd7, 0xde, 0x32, 0xe8, 0x77, 0xba, 0x46, 0x7f, + 0xab, 0x75, 0x14, 0xb5, 0x17, 0x91, 0xb2, 0x5a, 0xf3, 0x93, 0x5f, 0xcf, 0x25, 0xb4, 0x97, 0x61, + 0xf2, 0x8e, 0xd1, 0xd3, 0x77, 0xbb, 0x7b, 0x46, 0xe7, 0xc7, 0x7a, 0x5b, 0x30, 0x1c, 0x77, 0x0d, + 0xcb, 0xc9, 0xc7, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x66, 0xd5, 0xbf, 0xdb, 0x31, 0xf7, 0x37, 0x0d, + 0xab, 0xa7, 0x7f, 0x15, 0x52, 0x3a, 0x01, 0xce, 0x7e, 0x77, 0x4d, 0xb8, 0x9f, 0x91, 0x81, 0xea, + 0x8b, 0xf6, 0xbf, 0x4d, 0x6a, 0x22, 0x6c, 0x71, 0xb8, 0xcb, 0x16, 0x33, 0x57, 0x61, 0xcc, 0x99, + 0x9f, 0xf7, 0xeb, 0xa2, 0xe0, 0xd7, 0x6f, 0x03, 0xfc, 0xb2, 0x79, 0x24, 0xdf, 0xe2, 0xfc, 0x62, + 0xbe, 0x56, 0x03, 0xd5, 0x17, 0x5d, 0xf2, 0x55, 0x52, 0x56, 0xff, 0x67, 0x33, 0x2a, 0xda, 0xc9, + 0x1c, 0xa4, 0xea, 0xa2, 0x4e, 0xb0, 0x9f, 0x35, 0x48, 0x36, 0xba, 0x6d, 0x5d, 0x7e, 0x0e, 0xc6, + 0xde, 0x68, 0xdd, 0xd3, 0x0f, 0x48, 0x90, 0x9d, 0x1f, 0xf2, 0x02, 0xa4, 0xaa, 0xfb, 0x9d, 0x83, + 0x76, 0x4f, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x9a, 0x54, 0xa6, 0x55, 0xe1, 0x52, + 0xa3, 0x6b, 0x54, 0x1e, 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb6, 0xb2, + 0xd1, 0x52, 0xa8, 0x8c, 0x7d, 0x7c, 0x3a, 0x87, 0x76, 0xe8, 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, + 0xc7, 0x37, 0x55, 0x31, 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, + 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x50, 0xcf, 0xf0, 0x48, 0x9e, 0x05, 0x4e, 0xb7, 0x18, + 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe6, 0x35, 0x98, + 0x60, 0x12, 0x56, 0x1e, 0x03, 0xb4, 0x91, 0x4e, 0x58, 0xff, 0x55, 0xd2, 0xc8, 0xfa, 0xaf, 0x9a, + 0x96, 0xf2, 0x57, 0x61, 0x5a, 0xd8, 0xbe, 0xb4, 0x24, 0xb5, 0x34, 0x58, 0xff, 0xd5, 0xd3, 0x13, + 0x99, 0xe4, 0x7b, 0xbf, 0x51, 0x13, 0xf9, 0x57, 0x40, 0xf6, 0x6f, 0x74, 0xca, 0x17, 0x40, 0xda, + 0xb0, 0xa6, 0x7c, 0x1e, 0xa4, 0x4a, 0x25, 0x8d, 0x32, 0xd3, 0x3f, 0xfb, 0x65, 0x76, 0xa2, 0xa2, + 0x9b, 0xa6, 0xde, 0xbb, 0xab, 0x9b, 0x95, 0x0a, 0x31, 0x7e, 0x0d, 0x2e, 0x07, 0x6e, 0x94, 0x5a, + 0xf6, 0xd5, 0xaa, 0x63, 0x5f, 0xab, 0xf9, 0xec, 0x6b, 0x35, 0xdb, 0x1e, 0x95, 0xdd, 0x03, 0xe7, + 0x0d, 0x39, 0x60, 0x5b, 0x52, 0x69, 0x33, 0x07, 0xdc, 0x1b, 0xe5, 0xd7, 0x88, 0x6e, 0x25, 0x50, + 0x57, 0x8f, 0x38, 0xb0, 0xae, 0x94, 0xab, 0xc4, 0xbe, 0x1a, 0x68, 0x7f, 0x5f, 0x38, 0x55, 0xe5, + 0xdf, 0x10, 0x64, 0x92, 0x2a, 0x75, 0xb8, 0x16, 0x38, 0xc9, 0x3e, 0x73, 0xd7, 0xbd, 0x46, 0x1d, + 0xae, 0x07, 0xea, 0x76, 0x22, 0xee, 0x7c, 0xd5, 0xcb, 0x4b, 0xe4, 0x25, 0xbf, 0xb1, 0x2c, 0x5f, + 0x76, 0x73, 0x94, 0xab, 0xc0, 0x24, 0x40, 0xae, 0x56, 0xb9, 0x4a, 0x0c, 0x2a, 0xa1, 0x06, 0xe1, + 0x51, 0x72, 0x2d, 0xcb, 0xaf, 0x93, 0x49, 0xaa, 0xa1, 0x93, 0x44, 0x84, 0xca, 0x35, 0xaf, 0xec, + 0x9c, 0x9c, 0xa9, 0x89, 0xc7, 0x67, 0x6a, 0xe2, 0x1f, 0x67, 0x6a, 0xe2, 0x93, 0x33, 0x15, 0x7d, + 0x76, 0xa6, 0xa2, 0xcf, 0xcf, 0x54, 0xf4, 0xc5, 0x99, 0x8a, 0xde, 0x19, 0xa8, 0xe8, 0x83, 0x81, + 0x8a, 0x3e, 0x1c, 0xa8, 0xe8, 0x8f, 0x03, 0x15, 0x3d, 0x1a, 0xa8, 0xe8, 0x64, 0xa0, 0xa2, 0xc7, + 0x03, 0x35, 0xf1, 0xc9, 0x40, 0x45, 0x9f, 0x0d, 0xd4, 0xc4, 0xe7, 0x03, 0x15, 0x7d, 0x31, 0x50, + 0x13, 0xef, 0x7c, 0xaa, 0x26, 0x1e, 0x7e, 0xaa, 0x26, 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, + 0x00, 0xff, 0xff, 0x2c, 0x85, 0x07, 0x97, 0x4b, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto index 6b0e40a2..ce6cc599 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go index 47fdcf12..d727c342 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go @@ -67,6 +67,12 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -90,18 +96,18 @@ func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -125,20 +131,20 @@ func TestNidOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,11 +163,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -171,11 +177,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -192,18 +198,18 @@ func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -227,20 +233,20 @@ func TestNinOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -259,11 +265,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -273,11 +279,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -294,18 +300,18 @@ func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -329,20 +335,20 @@ func TestNidRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -361,11 +367,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -375,11 +381,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -396,18 +402,18 @@ func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -431,20 +437,20 @@ func TestNinRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -463,11 +469,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -477,11 +483,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -498,18 +504,18 @@ func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -533,20 +539,20 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -565,11 +571,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -579,11 +585,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -600,18 +606,18 @@ func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -635,20 +641,20 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -667,11 +673,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -681,11 +687,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -702,18 +708,18 @@ func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -737,20 +743,20 @@ func TestNidOptStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -769,11 +775,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -783,11 +789,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -804,18 +810,18 @@ func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -839,20 +845,20 @@ func TestNinOptStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -871,11 +877,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -885,11 +891,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -906,18 +912,18 @@ func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -941,20 +947,20 @@ func TestNidRepStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -973,11 +979,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -987,11 +993,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -1008,18 +1014,18 @@ func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1043,20 +1049,20 @@ func TestNinRepStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1075,11 +1081,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1089,11 +1095,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -1110,18 +1116,18 @@ func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1145,20 +1151,20 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1177,11 +1183,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1191,11 +1197,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -1212,18 +1218,18 @@ func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1247,20 +1253,20 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1279,11 +1285,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1293,11 +1299,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -1314,18 +1320,18 @@ func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1349,20 +1355,20 @@ func TestNidNestedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1381,11 +1387,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1395,11 +1401,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1416,18 +1422,18 @@ func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1451,20 +1457,20 @@ func TestNinNestedStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1483,11 +1489,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1497,11 +1503,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1518,18 +1524,18 @@ func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1553,20 +1559,20 @@ func TestNidOptCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1585,11 +1591,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1599,11 +1605,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1620,18 +1626,18 @@ func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1655,20 +1661,20 @@ func TestCustomDashMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1687,11 +1693,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1701,11 +1707,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1722,18 +1728,18 @@ func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1757,20 +1763,20 @@ func TestNinOptCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1789,11 +1795,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1803,11 +1809,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1824,18 +1830,18 @@ func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1859,20 +1865,20 @@ func TestNidRepCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1891,11 +1897,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1905,11 +1911,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1926,18 +1932,18 @@ func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1961,20 +1967,20 @@ func TestNinRepCustomMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1993,11 +1999,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2007,11 +2013,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -2028,18 +2034,18 @@ func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2063,20 +2069,20 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2095,11 +2101,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2109,11 +2115,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -2130,18 +2136,18 @@ func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2165,20 +2171,20 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2197,11 +2203,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2211,11 +2217,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -2232,18 +2238,18 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2267,20 +2273,20 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2299,11 +2305,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2313,11 +2319,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -2334,18 +2340,18 @@ func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2369,20 +2375,20 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2401,11 +2407,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2415,11 +2421,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -2436,18 +2442,18 @@ func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2471,20 +2477,20 @@ func TestTreeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2503,11 +2509,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2517,11 +2523,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -2538,18 +2544,18 @@ func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2573,20 +2579,20 @@ func TestOrBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2605,11 +2611,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2619,11 +2625,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -2640,18 +2646,18 @@ func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2675,20 +2681,20 @@ func TestAndBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2707,11 +2713,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2721,11 +2727,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2742,18 +2748,18 @@ func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2777,20 +2783,20 @@ func TestLeafMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2809,11 +2815,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2823,11 +2829,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2844,18 +2850,18 @@ func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2879,20 +2885,20 @@ func TestDeepTreeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2911,11 +2917,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2925,11 +2931,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2946,18 +2952,18 @@ func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2981,20 +2987,20 @@ func TestADeepBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3013,11 +3019,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3027,11 +3033,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -3048,18 +3054,18 @@ func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3083,20 +3089,20 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3115,11 +3121,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3129,11 +3135,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -3150,18 +3156,18 @@ func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3185,20 +3191,20 @@ func TestDeepLeafMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3217,11 +3223,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3231,11 +3237,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -3252,18 +3258,18 @@ func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3287,20 +3293,20 @@ func TestNilMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3319,11 +3325,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3333,11 +3339,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -3354,18 +3360,18 @@ func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3389,20 +3395,20 @@ func TestNidOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3421,11 +3427,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3435,11 +3441,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -3456,18 +3462,18 @@ func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3491,20 +3497,20 @@ func TestNinOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3523,11 +3529,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3537,11 +3543,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -3558,18 +3564,18 @@ func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3593,20 +3599,20 @@ func TestNidRepEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3625,11 +3631,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3639,11 +3645,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -3660,18 +3666,18 @@ func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3695,20 +3701,20 @@ func TestNinRepEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3727,11 +3733,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3741,11 +3747,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -3762,18 +3768,18 @@ func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3797,20 +3803,20 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +3835,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +3849,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -3864,18 +3870,18 @@ func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3899,20 +3905,20 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3931,11 +3937,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3945,11 +3951,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -3966,18 +3972,18 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4001,20 +4007,20 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4033,11 +4039,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4047,11 +4053,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -4068,18 +4074,18 @@ func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4103,20 +4109,20 @@ func TestTimerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4135,11 +4141,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4149,11 +4155,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -4170,18 +4176,18 @@ func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4205,20 +4211,20 @@ func TestMyExtendableMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4237,11 +4243,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4251,11 +4257,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -4272,18 +4278,18 @@ func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4307,20 +4313,20 @@ func TestOtherExtenableMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4339,11 +4345,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4353,11 +4359,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -4374,18 +4380,18 @@ func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4409,20 +4415,20 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4441,11 +4447,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4455,11 +4461,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -4476,18 +4482,18 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4511,20 +4517,20 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4543,11 +4549,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4557,11 +4563,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -4578,18 +4584,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4613,20 +4619,20 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4645,11 +4651,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4659,11 +4665,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -4680,18 +4686,18 @@ func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4715,20 +4721,20 @@ func TestNestedScopeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4747,11 +4753,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4761,11 +4767,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -4782,18 +4788,18 @@ func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4817,20 +4823,20 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4849,11 +4855,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4863,11 +4869,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -4884,18 +4890,18 @@ func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4919,20 +4925,20 @@ func TestCustomContainerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4951,11 +4957,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4965,11 +4971,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -4986,18 +4992,18 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5021,20 +5027,20 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5053,11 +5059,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5067,11 +5073,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -5088,18 +5094,18 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5123,20 +5129,20 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5155,11 +5161,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5169,11 +5175,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -5190,18 +5196,18 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5225,20 +5231,20 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5257,11 +5263,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5271,11 +5277,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -5292,18 +5298,18 @@ func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5327,20 +5333,20 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5359,11 +5365,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5373,11 +5379,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -5394,18 +5400,18 @@ func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5429,20 +5435,20 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5461,11 +5467,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5475,11 +5481,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -5496,18 +5502,18 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5531,20 +5537,20 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5563,11 +5569,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5577,11 +5583,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -5598,18 +5604,18 @@ func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5633,20 +5639,20 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5665,11 +5671,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5679,11 +5685,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -5700,18 +5706,18 @@ func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5735,20 +5741,20 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5767,11 +5773,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5781,11 +5787,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -5802,18 +5808,18 @@ func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5837,20 +5843,20 @@ func TestUnrecognizedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5869,11 +5875,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5883,11 +5889,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -5904,18 +5910,18 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5939,20 +5945,20 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5971,11 +5977,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5985,11 +5991,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -6006,18 +6012,18 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6041,20 +6047,20 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6073,11 +6079,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6087,11 +6093,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -6108,18 +6114,18 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6143,20 +6149,20 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6175,11 +6181,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6189,11 +6195,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -6210,18 +6216,18 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6245,20 +6251,20 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6277,11 +6283,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6291,11 +6297,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -6312,18 +6318,18 @@ func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6347,20 +6353,20 @@ func TestNodeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6379,11 +6385,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6393,11 +6399,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -6410,6 +6416,618 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypeMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -7379,13 +7997,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7397,16 +8141,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7418,16 +8162,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7439,16 +8183,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7460,16 +8204,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7481,16 +8225,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7502,16 +8246,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7523,16 +8267,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7544,16 +8288,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7565,16 +8309,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7586,16 +8330,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7607,16 +8351,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7628,16 +8372,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7649,16 +8393,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7670,16 +8414,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7691,16 +8435,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7716,9 +8460,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7733,9 +8477,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7750,9 +8494,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7767,9 +8511,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7784,9 +8528,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7801,9 +8545,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7818,9 +8562,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7835,9 +8579,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7852,9 +8596,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7869,9 +8613,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7886,9 +8630,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7903,9 +8647,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7920,9 +8664,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7937,9 +8681,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7954,9 +8698,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7971,9 +8715,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7988,9 +8732,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8005,9 +8749,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8022,9 +8766,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8039,9 +8783,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8056,9 +8800,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8073,9 +8817,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8090,9 +8834,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8107,9 +8851,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8124,9 +8868,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8141,9 +8885,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8158,9 +8902,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8175,9 +8919,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8192,9 +8936,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8209,9 +8953,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8226,9 +8970,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8243,9 +8987,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8260,9 +9004,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8277,9 +9021,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8294,9 +9038,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8311,9 +9055,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8328,9 +9072,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8345,9 +9089,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8362,9 +9106,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8379,9 +9123,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8396,9 +9140,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8413,9 +9157,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8430,9 +9174,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8447,9 +9191,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8464,9 +9208,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8481,9 +9225,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8498,9 +9242,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8515,9 +9259,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8532,9 +9276,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8549,9 +9293,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8566,9 +9310,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8583,9 +9327,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8600,9 +9344,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8617,9 +9361,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8634,9 +9378,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8651,9 +9395,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8668,9 +9412,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8685,9 +9429,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8702,9 +9446,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8719,9 +9463,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8736,9 +9480,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8753,9 +9497,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8770,9 +9514,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8787,9 +9531,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8804,9 +9548,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8821,9 +9565,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8838,9 +9582,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8855,9 +9599,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8872,9 +9616,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8889,9 +9633,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8906,9 +9650,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8923,9 +9667,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8940,9 +9684,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8957,9 +9701,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8974,9 +9718,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8991,9 +9735,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9008,9 +9752,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9025,9 +9769,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9042,9 +9786,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9059,9 +9803,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9076,9 +9820,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9093,9 +9837,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9110,9 +9854,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9127,9 +9871,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9144,9 +9888,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9161,9 +9905,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9178,9 +9922,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9195,9 +9939,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9212,9 +9956,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9229,9 +9973,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9246,9 +9990,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9263,9 +10007,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9280,9 +10024,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9297,9 +10041,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9314,9 +10058,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9331,9 +10075,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9348,9 +10092,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9364,10 +10108,214 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedCustomNameNidOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNidOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9378,13 +10326,13 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoText(t *testing.T) { +func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9395,13 +10343,13 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { +func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9412,13 +10360,13 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoText(t *testing.T) { +func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9429,13 +10377,13 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { +func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9446,13 +10394,13 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinStructProtoText(t *testing.T) { +func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9463,13 +10411,13 @@ func TestCustomNameNinStructProtoText(t *testing.T) { } } -func TestCustomNameNinStructProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9480,13 +10428,13 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9497,13 +10445,13 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9514,13 +10462,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9531,13 +10479,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9548,13 +10496,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9565,13 +10513,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9582,13 +10530,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9599,13 +10547,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9616,13 +10564,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9633,13 +10581,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9650,13 +10598,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9667,13 +10615,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9684,13 +10632,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9701,13 +10649,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9718,13 +10666,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9735,13 +10683,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9752,13 +10700,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9769,13 +10717,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9786,13 +10734,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,13 +10751,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9823,12 +10771,12 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9847,12 +10795,12 @@ func TestNidOptNativeCompare(t *testing.T) { func TestNinOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9871,12 +10819,12 @@ func TestNinOptNativeCompare(t *testing.T) { func TestNidRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9895,12 +10843,12 @@ func TestNidRepNativeCompare(t *testing.T) { func TestNinRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9919,12 +10867,12 @@ func TestNinRepNativeCompare(t *testing.T) { func TestNidRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9943,12 +10891,12 @@ func TestNidRepPackedNativeCompare(t *testing.T) { func TestNinRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9967,12 +10915,12 @@ func TestNinRepPackedNativeCompare(t *testing.T) { func TestNidOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9991,12 +10939,12 @@ func TestNidOptStructCompare(t *testing.T) { func TestNinOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10015,12 +10963,12 @@ func TestNinOptStructCompare(t *testing.T) { func TestNidRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10039,12 +10987,12 @@ func TestNidRepStructCompare(t *testing.T) { func TestNinRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10063,12 +11011,12 @@ func TestNinRepStructCompare(t *testing.T) { func TestNidEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10087,12 +11035,12 @@ func TestNidEmbeddedStructCompare(t *testing.T) { func TestNinEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10111,12 +11059,12 @@ func TestNinEmbeddedStructCompare(t *testing.T) { func TestNidNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10135,12 +11083,12 @@ func TestNidNestedStructCompare(t *testing.T) { func TestNinNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10159,12 +11107,12 @@ func TestNinNestedStructCompare(t *testing.T) { func TestNidOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10183,12 +11131,12 @@ func TestNidOptCustomCompare(t *testing.T) { func TestCustomDashCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10207,12 +11155,12 @@ func TestCustomDashCompare(t *testing.T) { func TestNinOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10231,12 +11179,12 @@ func TestNinOptCustomCompare(t *testing.T) { func TestNidRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10255,12 +11203,12 @@ func TestNidRepCustomCompare(t *testing.T) { func TestNinRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10279,12 +11227,12 @@ func TestNinRepCustomCompare(t *testing.T) { func TestNinOptNativeUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10303,12 +11251,12 @@ func TestNinOptNativeUnionCompare(t *testing.T) { func TestNinOptStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10327,12 +11275,12 @@ func TestNinOptStructUnionCompare(t *testing.T) { func TestNinEmbeddedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10351,12 +11299,12 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { func TestNinNestedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10375,12 +11323,12 @@ func TestNinNestedStructUnionCompare(t *testing.T) { func TestTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10399,12 +11347,12 @@ func TestTreeCompare(t *testing.T) { func TestOrBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10423,12 +11371,12 @@ func TestOrBranchCompare(t *testing.T) { func TestAndBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10447,12 +11395,12 @@ func TestAndBranchCompare(t *testing.T) { func TestLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10471,12 +11419,12 @@ func TestLeafCompare(t *testing.T) { func TestDeepTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10495,12 +11443,12 @@ func TestDeepTreeCompare(t *testing.T) { func TestADeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10519,12 +11467,12 @@ func TestADeepBranchCompare(t *testing.T) { func TestAndDeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10543,12 +11491,12 @@ func TestAndDeepBranchCompare(t *testing.T) { func TestDeepLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10567,12 +11515,12 @@ func TestDeepLeafCompare(t *testing.T) { func TestNilCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10591,12 +11539,12 @@ func TestNilCompare(t *testing.T) { func TestNidOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10615,12 +11563,12 @@ func TestNidOptEnumCompare(t *testing.T) { func TestNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10639,12 +11587,12 @@ func TestNinOptEnumCompare(t *testing.T) { func TestNidRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10663,12 +11611,12 @@ func TestNidRepEnumCompare(t *testing.T) { func TestNinRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10687,12 +11635,12 @@ func TestNinRepEnumCompare(t *testing.T) { func TestNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10711,12 +11659,12 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { func TestAnotherNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10735,12 +11683,12 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10759,12 +11707,12 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { func TestTimerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10783,12 +11731,12 @@ func TestTimerCompare(t *testing.T) { func TestMyExtendableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10807,12 +11755,12 @@ func TestMyExtendableCompare(t *testing.T) { func TestOtherExtenableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10831,12 +11779,12 @@ func TestOtherExtenableCompare(t *testing.T) { func TestNestedDefinitionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10855,12 +11803,12 @@ func TestNestedDefinitionCompare(t *testing.T) { func TestNestedDefinition_NestedMessageCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10879,12 +11827,12 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10903,12 +11851,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { func TestNestedScopeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10927,12 +11875,12 @@ func TestNestedScopeCompare(t *testing.T) { func TestNinOptNativeDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10951,12 +11899,12 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { func TestCustomContainerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10975,18 +11923,162 @@ func TestCustomContainerCompare(t *testing.T) { func TestCustomNameNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNidOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinOptNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinRepNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinRepNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinStructCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinStruct(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameCustomTypeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameEnumCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameEnum(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) + p2 := NewPopulatedCustomNameEnum(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -10996,21 +12088,21 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinOptNativeCompare(t *testing.T) { +func TestNoExtensionsMapCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNoExtensionsMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) + p2 := NewPopulatedNoExtensionsMap(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11020,21 +12112,21 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinRepNativeCompare(t *testing.T) { +func TestUnrecognizedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognized(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) + p2 := NewPopulatedUnrecognized(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11044,21 +12136,21 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinStructCompare(t *testing.T) { +func TestUnrecognizedWithInnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinStruct(popr, false) + p2 := NewPopulatedUnrecognizedWithInner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11068,21 +12160,21 @@ func TestCustomNameNinStructCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameCustomTypeCompare(t *testing.T) { +func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameCustomType(popr, false) + p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11092,21 +12184,21 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { +func TestUnrecognizedWithEmbedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11116,21 +12208,21 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameEnumCompare(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameEnum(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11140,21 +12232,21 @@ func TestCustomNameEnumCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNoExtensionsMapCompare(t *testing.T) { +func TestNodeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNoExtensionsMap(popr, false) + p2 := NewPopulatedNode(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11164,21 +12256,21 @@ func TestNoExtensionsMapCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedCompare(t *testing.T) { +func TestNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognized(popr, false) + p2 := NewPopulatedNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11188,21 +12280,21 @@ func TestUnrecognizedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInnerCompare(t *testing.T) { +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11212,21 +12304,21 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11236,21 +12328,21 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbedCompare(t *testing.T) { +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11260,21 +12352,21 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11284,21 +12376,21 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11314,12 +12406,12 @@ func TestThetestDescription(t *testing.T) { func TestNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11329,12 +12421,12 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { func TestNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11344,12 +12436,12 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { func TestNidRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11359,12 +12451,12 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { func TestNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11374,12 +12466,12 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { func TestNidRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11389,12 +12481,12 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { func TestNinRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11404,12 +12496,12 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { func TestNidOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11419,12 +12511,12 @@ func TestNidOptStructVerboseEqual(t *testing.T) { func TestNinOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11434,12 +12526,12 @@ func TestNinOptStructVerboseEqual(t *testing.T) { func TestNidRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11449,12 +12541,12 @@ func TestNidRepStructVerboseEqual(t *testing.T) { func TestNinRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11464,12 +12556,12 @@ func TestNinRepStructVerboseEqual(t *testing.T) { func TestNidEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11479,12 +12571,12 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { func TestNinEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11494,12 +12586,12 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { func TestNidNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11509,12 +12601,12 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { func TestNinNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11524,12 +12616,12 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { func TestNidOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11539,12 +12631,12 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { func TestCustomDashVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11554,12 +12646,12 @@ func TestCustomDashVerboseEqual(t *testing.T) { func TestNinOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11569,12 +12661,12 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { func TestNidRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11584,12 +12676,12 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { func TestNinRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11599,12 +12691,12 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { func TestNinOptNativeUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11614,12 +12706,12 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { func TestNinOptStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11629,12 +12721,12 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11644,12 +12736,12 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestNinNestedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11659,12 +12751,12 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { func TestTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11674,12 +12766,12 @@ func TestTreeVerboseEqual(t *testing.T) { func TestOrBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11689,12 +12781,12 @@ func TestOrBranchVerboseEqual(t *testing.T) { func TestAndBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11704,12 +12796,12 @@ func TestAndBranchVerboseEqual(t *testing.T) { func TestLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11719,12 +12811,12 @@ func TestLeafVerboseEqual(t *testing.T) { func TestDeepTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11734,12 +12826,12 @@ func TestDeepTreeVerboseEqual(t *testing.T) { func TestADeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11749,12 +12841,12 @@ func TestADeepBranchVerboseEqual(t *testing.T) { func TestAndDeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11764,12 +12856,12 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { func TestDeepLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11779,12 +12871,12 @@ func TestDeepLeafVerboseEqual(t *testing.T) { func TestNilVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11794,12 +12886,12 @@ func TestNilVerboseEqual(t *testing.T) { func TestNidOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11809,12 +12901,12 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { func TestNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11824,12 +12916,12 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { func TestNidRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11839,12 +12931,12 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { func TestNinRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11854,12 +12946,12 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11869,12 +12961,12 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11884,12 +12976,12 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11899,12 +12991,12 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestTimerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11914,12 +13006,12 @@ func TestTimerVerboseEqual(t *testing.T) { func TestMyExtendableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11929,12 +13021,12 @@ func TestMyExtendableVerboseEqual(t *testing.T) { func TestOtherExtenableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11944,12 +13036,12 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { func TestNestedDefinitionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11959,12 +13051,12 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11974,12 +13066,12 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11989,12 +13081,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T func TestNestedScopeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12004,12 +13096,12 @@ func TestNestedScopeVerboseEqual(t *testing.T) { func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12019,12 +13111,12 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { func TestCustomContainerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12034,12 +13126,12 @@ func TestCustomContainerVerboseEqual(t *testing.T) { func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12049,12 +13141,12 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12064,12 +13156,12 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12079,12 +13171,12 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { func TestCustomNameNinStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12094,12 +13186,12 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12109,12 +13201,12 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12124,12 +13216,12 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestCustomNameEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12139,12 +13231,12 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { func TestNoExtensionsMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12154,12 +13246,12 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { func TestUnrecognizedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12169,12 +13261,12 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12184,12 +13276,12 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12199,12 +13291,12 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12214,12 +13306,12 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12229,12 +13321,102 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { func TestNodeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,6 +13871,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -13302,7 +14532,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13313,9 +14621,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13326,9 +14634,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13339,9 +14647,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13352,9 +14660,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13365,9 +14673,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13378,9 +14686,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13391,9 +14699,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13404,9 +14712,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13417,9 +14725,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13430,9 +14738,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13443,9 +14751,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13456,9 +14764,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13469,9 +14777,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13482,9 +14790,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13500,13 +14808,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13536,13 +14844,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13572,13 +14880,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13608,13 +14916,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13644,13 +14952,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13680,13 +14988,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13716,13 +15024,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13752,13 +15060,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13788,13 +15096,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13824,13 +15132,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13860,13 +15168,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13896,13 +15204,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13932,13 +15240,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13968,13 +15276,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14004,13 +15312,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14040,13 +15348,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14076,13 +15384,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14112,13 +15420,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14148,13 +15456,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14184,13 +15492,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14220,13 +15528,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14256,13 +15564,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14292,13 +15600,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14328,13 +15636,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14364,13 +15672,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14400,13 +15708,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14436,13 +15744,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14472,13 +15780,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14508,13 +15816,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14544,13 +15852,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14580,13 +15888,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14616,13 +15924,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14652,13 +15960,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14688,13 +15996,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14724,13 +16032,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14760,13 +16068,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14796,13 +16104,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14832,13 +16140,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14868,13 +16176,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14904,13 +16212,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14940,13 +16248,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14976,13 +16284,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15012,13 +16320,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15048,13 +16356,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15084,13 +16392,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15120,13 +16428,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15156,13 +16464,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15192,13 +16500,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15228,13 +16536,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15264,13 +16572,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15300,13 +16608,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15336,13 +16644,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15372,13 +16680,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15408,13 +16716,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15444,13 +16752,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15480,13 +16788,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15516,13 +16824,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15552,13 +16860,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15588,13 +16896,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15624,13 +16932,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15660,13 +16968,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15696,13 +17004,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15727,6 +17035,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -16285,6 +17809,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/t.go new file mode 100644 index 00000000..c7c292e8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/t.go @@ -0,0 +1,73 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go index 76069b91..c6ef9ff1 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -101,7 +107,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -280,21 +288,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -303,21 +311,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -326,21 +334,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -349,21 +357,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -372,19 +380,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -393,19 +401,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -414,16 +422,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -432,16 +440,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -450,16 +458,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -468,16 +476,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -486,9 +494,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -497,9 +505,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -508,8 +516,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -518,8 +526,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -528,8 +536,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -538,7 +546,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -547,8 +555,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -557,8 +565,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -567,8 +575,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -577,15 +585,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -594,15 +602,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -611,9 +619,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -622,9 +630,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -633,9 +641,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -644,8 +652,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -654,8 +662,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -664,8 +672,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -674,9 +682,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -685,7 +693,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -694,8 +702,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -704,7 +712,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -721,7 +729,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -730,9 +738,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -741,9 +749,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -752,9 +760,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -763,9 +771,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -799,9 +807,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -810,9 +818,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -846,9 +854,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -857,9 +865,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -867,25 +875,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -893,25 +895,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -920,8 +916,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -932,7 +928,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -945,9 +941,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -956,21 +952,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1099,7 +1095,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1108,21 +1104,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1131,21 +1127,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1154,21 +1150,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1177,16 +1173,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1195,10 +1191,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1207,9 +1203,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1220,8 +1216,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1230,7 +1226,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1240,7 +1236,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1254,7 +1250,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1263,7 +1259,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1272,7 +1268,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1283,7 +1279,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1292,7 +1288,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1302,8 +1298,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1311,12 +1307,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1324,7 +1375,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1332,7 +1384,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1340,7 +1393,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1348,7 +1402,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1356,7 +1411,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1364,7 +1420,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/unmarshaler/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1372,7 +1429,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/unmarshaler/thetest.proto", } func init() { @@ -1438,6 +1496,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4758,19 +4822,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4838,19 +4904,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6459,6 +6527,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6645,393 +6948,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6121 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xde, 0xe1, 0x90, 0x12, 0x75, 0x28, 0x51, 0xd4, 0xac, 0x56, 0xa6, 0xe5, 0xf5, 0x3e, 0x68, - 0x59, 0x96, 0x15, 0x5b, 0xaf, 0xd5, 0xbe, 0xe8, 0xc4, 0x01, 0x5f, 0x2b, 0x6b, 0xab, 0x57, 0x47, - 0x52, 0x62, 0xa7, 0x05, 0x08, 0x2e, 0x39, 0x92, 0x68, 0x53, 0x43, 0x96, 0x43, 0xda, 0xde, 0xfc, - 0x28, 0xd2, 0xa4, 0x4d, 0x93, 0x16, 0x7d, 0xa6, 0x45, 0xf3, 0x8e, 0x93, 0x22, 0x8d, 0x93, 0x3e, - 0x92, 0xb4, 0x69, 0x50, 0x04, 0x45, 0x63, 0xa0, 0x48, 0xbb, 0xfd, 0x53, 0xa4, 0xf9, 0x55, 0x14, - 0x85, 0x91, 0x17, 0xd0, 0xb4, 0x4d, 0xdb, 0x04, 0x30, 0x90, 0x00, 0xc9, 0x8f, 0xde, 0xf7, 0xcc, - 0xbd, 0x1c, 0x72, 0x46, 0x5e, 0x3b, 0xc9, 0x02, 0x5c, 0x91, 0xf7, 0x9c, 0xef, 0xcc, 0x99, 0xf3, - 0xba, 0x67, 0xee, 0xbd, 0x24, 0xfc, 0xfd, 0x32, 0x5c, 0x38, 0x6c, 0x36, 0x0f, 0x1b, 0xd6, 0x62, - 0xab, 0xdd, 0xec, 0x34, 0x6f, 0x75, 0x0f, 0x16, 0x6b, 0x96, 0x53, 0x6d, 0xd7, 0x5b, 0x9d, 0x66, - 0x7b, 0x81, 0x8c, 0x19, 0xe3, 0x94, 0x63, 0x81, 0x73, 0x64, 0x36, 0x61, 0xe2, 0x46, 0xbd, 0x61, - 0x15, 0x05, 0xe3, 0xae, 0xd5, 0x31, 0xae, 0x41, 0xf4, 0x00, 0x0d, 0xa6, 0xb5, 0x0b, 0xfa, 0x5c, - 0x62, 0x65, 0x66, 0x41, 0x01, 0x2d, 0xc8, 0x88, 0x1d, 0x3c, 0x6c, 0x12, 0x44, 0xe6, 0xdb, 0x51, - 0x38, 0xed, 0x43, 0x35, 0x0c, 0x88, 0xda, 0x95, 0x63, 0x2c, 0x51, 0x9b, 0x1b, 0x31, 0xc9, 0x7b, - 0x23, 0x0d, 0xc3, 0xad, 0x4a, 0xf5, 0x99, 0xca, 0xa1, 0x95, 0x8e, 0x90, 0x61, 0xfe, 0xd1, 0x38, - 0x07, 0x50, 0xb3, 0x5a, 0x96, 0x5d, 0xb3, 0xec, 0xea, 0xed, 0xb4, 0x8e, 0xb4, 0x18, 0x31, 0x3d, - 0x23, 0xc6, 0x1b, 0x60, 0xa2, 0xd5, 0xbd, 0xd5, 0xa8, 0x57, 0xcb, 0x1e, 0x36, 0x40, 0x6c, 0x31, - 0x33, 0x45, 0x09, 0x45, 0x97, 0xf9, 0x21, 0x18, 0x7f, 0xce, 0xaa, 0x3c, 0xe3, 0x65, 0x4d, 0x10, - 0xd6, 0x24, 0x1e, 0xf6, 0x30, 0x16, 0x60, 0xf4, 0xd8, 0x72, 0x1c, 0xa4, 0x40, 0xb9, 0x73, 0xbb, - 0x65, 0xa5, 0xa3, 0xe4, 0xee, 0x2f, 0xf4, 0xdc, 0xbd, 0x7a, 0xe7, 0x09, 0x86, 0xda, 0x43, 0x20, - 0x23, 0x07, 0x23, 0x96, 0xdd, 0x3d, 0xa6, 0x12, 0x62, 0x7d, 0xec, 0x57, 0x42, 0x1c, 0xaa, 0x94, - 0x38, 0x86, 0x31, 0x11, 0xc3, 0x8e, 0xd5, 0x7e, 0xb6, 0x5e, 0xb5, 0xd2, 0x43, 0x44, 0xc0, 0x43, - 0x3d, 0x02, 0x76, 0x29, 0x5d, 0x95, 0xc1, 0x71, 0xe8, 0x56, 0x46, 0xac, 0xe7, 0x3b, 0x96, 0xed, - 0xd4, 0x9b, 0x76, 0x7a, 0x98, 0x08, 0x79, 0xd0, 0xc7, 0x8b, 0x56, 0xa3, 0xa6, 0x8a, 0x70, 0x71, - 0xc6, 0x15, 0x18, 0x6e, 0xb6, 0x3a, 0xe8, 0x9d, 0x93, 0x8e, 0x23, 0xff, 0x24, 0x56, 0xce, 0xfa, - 0x06, 0xc2, 0x36, 0xe5, 0x31, 0x39, 0xb3, 0xb1, 0x0e, 0x29, 0xa7, 0xd9, 0x6d, 0x57, 0xad, 0x72, - 0xb5, 0x59, 0xb3, 0xca, 0x75, 0xfb, 0xa0, 0x99, 0x1e, 0x21, 0x02, 0xce, 0xf7, 0xde, 0x08, 0x61, - 0x2c, 0x20, 0xbe, 0x75, 0xc4, 0x66, 0x26, 0x1d, 0xe9, 0xb3, 0x31, 0x05, 0x43, 0xce, 0x6d, 0xbb, - 0x53, 0x79, 0x3e, 0x3d, 0x4a, 0x22, 0x84, 0x7d, 0xca, 0xfc, 0x20, 0x06, 0xe3, 0x61, 0x42, 0xec, - 0x31, 0x88, 0x1d, 0xe0, 0xbb, 0x44, 0x01, 0x76, 0x02, 0x1b, 0x50, 0x8c, 0x6c, 0xc4, 0xa1, 0x57, - 0x69, 0xc4, 0x1c, 0x24, 0x6c, 0xcb, 0xe9, 0x58, 0x35, 0x1a, 0x11, 0x7a, 0xc8, 0x98, 0x02, 0x0a, - 0xea, 0x0d, 0xa9, 0xe8, 0xab, 0x0a, 0xa9, 0x27, 0x61, 0x5c, 0xa8, 0x54, 0x6e, 0x57, 0xec, 0x43, - 0x1e, 0x9b, 0x8b, 0x41, 0x9a, 0x2c, 0x94, 0x38, 0xce, 0xc4, 0x30, 0x33, 0x69, 0x49, 0x9f, 0x8d, - 0x22, 0x40, 0xd3, 0xb6, 0x9a, 0x07, 0x28, 0xbd, 0xaa, 0x0d, 0x14, 0x27, 0xfe, 0x56, 0xda, 0xc6, - 0x2c, 0x3d, 0x56, 0x6a, 0xd2, 0xd1, 0x6a, 0xc3, 0xb8, 0xee, 0x86, 0xda, 0x70, 0x9f, 0x48, 0xd9, - 0xa4, 0x49, 0xd6, 0x13, 0x6d, 0xfb, 0x90, 0x6c, 0x5b, 0x38, 0xee, 0x91, 0x89, 0xe9, 0x9d, 0x8d, - 0x10, 0x25, 0x16, 0x02, 0xef, 0xcc, 0x64, 0x30, 0x7a, 0x63, 0x63, 0x6d, 0xef, 0x47, 0xe3, 0x01, - 0x10, 0x03, 0x65, 0x12, 0x56, 0x40, 0xaa, 0xd0, 0x28, 0x1f, 0xdc, 0x42, 0x63, 0xd3, 0xd7, 0x20, - 0x29, 0x9b, 0xc7, 0x98, 0x84, 0x98, 0xd3, 0xa9, 0xb4, 0x3b, 0x24, 0x0a, 0x63, 0x26, 0xfd, 0x60, - 0xa4, 0x40, 0x47, 0x45, 0x86, 0x54, 0xb9, 0x98, 0x89, 0xdf, 0x4e, 0x5f, 0x85, 0x31, 0xe9, 0xf2, - 0x61, 0x81, 0x99, 0xf7, 0x0f, 0xc1, 0xa4, 0x5f, 0xcc, 0xf9, 0x86, 0x3f, 0x4a, 0x1f, 0x14, 0x01, - 0xb7, 0xac, 0x36, 0x8a, 0x3b, 0x2c, 0x81, 0x7d, 0x42, 0x11, 0x15, 0x6b, 0x54, 0x6e, 0x59, 0x0d, - 0x14, 0x4d, 0xda, 0x5c, 0x72, 0xe5, 0x0d, 0xa1, 0xa2, 0x7a, 0x61, 0x03, 0x43, 0x4c, 0x8a, 0x34, - 0x1e, 0x87, 0x28, 0x2b, 0x71, 0x58, 0xc2, 0x7c, 0x38, 0x09, 0x38, 0x16, 0x4d, 0x82, 0x33, 0xee, - 0x83, 0x11, 0xfc, 0x97, 0xda, 0x76, 0x88, 0xe8, 0x1c, 0xc7, 0x03, 0xd8, 0xae, 0xc6, 0x34, 0xc4, - 0x49, 0x98, 0xd5, 0x2c, 0x3e, 0x35, 0x88, 0xcf, 0xd8, 0x31, 0x35, 0xeb, 0xa0, 0xd2, 0x6d, 0x74, - 0xca, 0xcf, 0x56, 0x1a, 0x5d, 0x8b, 0x04, 0x0c, 0x72, 0x0c, 0x1b, 0x7c, 0x0b, 0x1e, 0x33, 0xce, - 0x43, 0x82, 0x46, 0x65, 0x1d, 0x61, 0x9e, 0x27, 0xd5, 0x27, 0x66, 0xd2, 0x40, 0x5d, 0xc7, 0x23, - 0xf8, 0xf2, 0x4f, 0x3b, 0x28, 0x17, 0x98, 0x6b, 0xc9, 0x25, 0xf0, 0x00, 0xb9, 0xfc, 0x55, 0xb5, - 0xf0, 0xdd, 0xef, 0x7f, 0x7b, 0x6a, 0x2c, 0x66, 0xbe, 0x18, 0x81, 0x28, 0xc9, 0xb7, 0x71, 0x48, - 0xec, 0x3d, 0xb5, 0x53, 0x2a, 0x17, 0xb7, 0xf7, 0xf3, 0x1b, 0xa5, 0x94, 0x66, 0x24, 0x01, 0xc8, - 0xc0, 0x8d, 0x8d, 0xed, 0xdc, 0x5e, 0x2a, 0x22, 0x3e, 0xaf, 0x6f, 0xed, 0x5d, 0x59, 0x4d, 0xe9, - 0x02, 0xb0, 0x4f, 0x07, 0xa2, 0x5e, 0x86, 0x4b, 0x2b, 0xa9, 0x18, 0x8a, 0x84, 0x51, 0x2a, 0x60, - 0xfd, 0xc9, 0x52, 0x11, 0x71, 0x0c, 0xc9, 0x23, 0x88, 0x67, 0xd8, 0x18, 0x83, 0x11, 0x32, 0x92, - 0xdf, 0xde, 0xde, 0x48, 0xc5, 0x85, 0xcc, 0xdd, 0x3d, 0x73, 0x7d, 0x6b, 0x2d, 0x35, 0x22, 0x64, - 0xae, 0x99, 0xdb, 0xfb, 0x3b, 0x29, 0x10, 0x12, 0x36, 0x4b, 0xbb, 0xbb, 0xb9, 0xb5, 0x52, 0x2a, - 0x21, 0x38, 0xf2, 0x4f, 0xed, 0x95, 0x76, 0x53, 0xa3, 0x92, 0x5a, 0xe8, 0x12, 0x63, 0xe2, 0x12, - 0xa5, 0xad, 0xfd, 0xcd, 0x54, 0xd2, 0x98, 0x80, 0x31, 0x7a, 0x09, 0xae, 0xc4, 0xb8, 0x32, 0x84, - 0x34, 0x4d, 0xb9, 0x8a, 0x50, 0x29, 0x13, 0xd2, 0x00, 0xe2, 0x30, 0x32, 0x05, 0x88, 0x91, 0xe8, - 0x42, 0x51, 0x9c, 0xdc, 0xc8, 0xe5, 0x4b, 0x1b, 0xe5, 0xed, 0x9d, 0xbd, 0xf5, 0xed, 0xad, 0xdc, - 0x06, 0xb2, 0x9d, 0x18, 0x33, 0x4b, 0x3f, 0xbf, 0xbf, 0x6e, 0x96, 0x8a, 0xc8, 0x7e, 0x9e, 0xb1, - 0x9d, 0x52, 0x6e, 0x0f, 0x8d, 0xe9, 0x99, 0x79, 0x98, 0xf4, 0xab, 0x33, 0x7e, 0x99, 0x91, 0xf9, - 0x84, 0x06, 0xa7, 0x7d, 0x4a, 0xa6, 0x6f, 0x16, 0xbd, 0x19, 0x62, 0x34, 0xd2, 0xe8, 0x24, 0xf2, - 0xb0, 0x6f, 0xed, 0x25, 0x71, 0xd7, 0x33, 0x91, 0x10, 0x9c, 0x77, 0x22, 0xd5, 0xfb, 0x4c, 0xa4, - 0x58, 0x44, 0x4f, 0x38, 0xbd, 0x4b, 0x83, 0x74, 0x3f, 0xd9, 0x01, 0xf9, 0x1e, 0x91, 0xf2, 0xfd, - 0x31, 0x55, 0x81, 0x8b, 0xfd, 0xef, 0xa1, 0x47, 0x8b, 0x4f, 0x69, 0x30, 0xe5, 0xdf, 0x6f, 0xf8, - 0xea, 0xf0, 0x38, 0x0c, 0x1d, 0x5b, 0x9d, 0xa3, 0x26, 0x9f, 0x73, 0x67, 0x7d, 0x2a, 0x39, 0x26, - 0xab, 0xb6, 0x62, 0x28, 0xef, 0x54, 0xa0, 0xf7, 0x6b, 0x1a, 0xa8, 0x36, 0x3d, 0x9a, 0xbe, 0x37, - 0x02, 0x67, 0x7c, 0x85, 0xfb, 0x2a, 0x7a, 0x3f, 0x40, 0xdd, 0x6e, 0x75, 0x3b, 0x74, 0x5e, 0xa5, - 0x65, 0x66, 0x84, 0x8c, 0x90, 0x14, 0xc6, 0x25, 0xa4, 0xdb, 0x11, 0x74, 0x9d, 0xd0, 0x81, 0x0e, - 0x11, 0x86, 0x6b, 0xae, 0xa2, 0x51, 0xa2, 0xe8, 0xb9, 0x3e, 0x77, 0xda, 0x33, 0x65, 0x2d, 0x41, - 0xaa, 0xda, 0xa8, 0x5b, 0x76, 0xa7, 0xec, 0x74, 0xda, 0x56, 0xe5, 0xb8, 0x6e, 0x1f, 0x92, 0x3a, - 0x1a, 0xcf, 0xc6, 0x0e, 0x2a, 0x0d, 0xc7, 0x32, 0xc7, 0x29, 0x79, 0x97, 0x53, 0x31, 0x82, 0x4c, - 0x16, 0x6d, 0x0f, 0x62, 0x48, 0x42, 0x50, 0xb2, 0x40, 0x64, 0xbe, 0x36, 0x0c, 0x09, 0x4f, 0x77, - 0x66, 0x5c, 0x84, 0xd1, 0xa7, 0x2b, 0xcf, 0x56, 0xca, 0xbc, 0xe3, 0xa6, 0x96, 0x48, 0xe0, 0xb1, - 0x1d, 0xd6, 0x75, 0x2f, 0xc1, 0x24, 0x61, 0x41, 0xf7, 0x88, 0x2e, 0x54, 0x6d, 0x54, 0x1c, 0x87, - 0x18, 0x2d, 0x4e, 0x58, 0x0d, 0x4c, 0xdb, 0xc6, 0xa4, 0x02, 0xa7, 0x18, 0x97, 0xe1, 0x34, 0x41, - 0x1c, 0xa3, 0xc2, 0x5b, 0x6f, 0x35, 0xac, 0x32, 0x7e, 0x06, 0x70, 0x48, 0x3d, 0x15, 0x9a, 0x4d, - 0x60, 0x8e, 0x4d, 0xc6, 0x80, 0x35, 0x72, 0x8c, 0x35, 0xb8, 0x9f, 0xc0, 0x0e, 0x2d, 0xdb, 0x6a, - 0x57, 0x3a, 0x56, 0xd9, 0xfa, 0xa5, 0x2e, 0xe2, 0x2d, 0x57, 0xec, 0x5a, 0xf9, 0xa8, 0xe2, 0x1c, - 0xa5, 0x27, 0xbd, 0x02, 0xee, 0xc5, 0xbc, 0x6b, 0x8c, 0xb5, 0x44, 0x38, 0x73, 0x76, 0xed, 0x09, - 0xc4, 0x67, 0x64, 0x61, 0x8a, 0x08, 0x42, 0x46, 0x41, 0xf7, 0x5c, 0xae, 0x1e, 0x59, 0xd5, 0x67, - 0xca, 0xdd, 0xce, 0xc1, 0xb5, 0xf4, 0x7d, 0x5e, 0x09, 0x44, 0xc9, 0x5d, 0xc2, 0x53, 0xc0, 0x2c, - 0xfb, 0x88, 0xc3, 0xd8, 0x85, 0x51, 0xec, 0x8f, 0xe3, 0xfa, 0xdb, 0x91, 0xda, 0xcd, 0x36, 0x99, - 0x23, 0x92, 0x3e, 0xc9, 0xed, 0x31, 0xe2, 0xc2, 0x36, 0x03, 0x6c, 0xa2, 0xfe, 0x34, 0x1b, 0xdb, - 0xdd, 0x29, 0x95, 0x8a, 0x66, 0x82, 0x4b, 0xb9, 0xd1, 0x6c, 0xe3, 0x98, 0x3a, 0x6c, 0x0a, 0x1b, - 0x27, 0x68, 0x4c, 0x1d, 0x36, 0xb9, 0x85, 0x91, 0xbd, 0xaa, 0x55, 0x7a, 0xdb, 0xe8, 0xd9, 0x85, - 0x35, 0xeb, 0x4e, 0x3a, 0x25, 0xd9, 0xab, 0x5a, 0x5d, 0xa3, 0x0c, 0x2c, 0xcc, 0x1d, 0x94, 0x12, - 0x67, 0x5c, 0x7b, 0x79, 0x81, 0x13, 0x3d, 0x77, 0xa9, 0x42, 0xd1, 0x15, 0x5b, 0xb7, 0x7b, 0x81, - 0x86, 0x74, 0xc5, 0xd6, 0x6d, 0x15, 0xf6, 0x20, 0x79, 0x00, 0x6b, 0x5b, 0x55, 0x64, 0xf2, 0x5a, - 0xfa, 0x1e, 0x2f, 0xb7, 0x87, 0x60, 0x2c, 0xa2, 0x40, 0xae, 0x96, 0x2d, 0xbb, 0x72, 0x0b, 0xf9, - 0xbe, 0xd2, 0x46, 0x6f, 0x9c, 0xf4, 0x79, 0x2f, 0x73, 0xb2, 0x5a, 0x2d, 0x11, 0x6a, 0x8e, 0x10, - 0x8d, 0x79, 0x98, 0x68, 0xde, 0x7a, 0xba, 0x4a, 0x83, 0xab, 0x8c, 0xe4, 0x1c, 0xd4, 0x9f, 0x4f, - 0xcf, 0x10, 0x33, 0x8d, 0x63, 0x02, 0x09, 0xad, 0x1d, 0x32, 0x6c, 0x3c, 0x8c, 0x84, 0x3b, 0x47, - 0x95, 0x76, 0x8b, 0x4c, 0xd2, 0x0e, 0x32, 0xaa, 0x95, 0x7e, 0x90, 0xb2, 0xd2, 0xf1, 0x2d, 0x3e, - 0x6c, 0x94, 0xe0, 0x3c, 0xbe, 0x79, 0xbb, 0x62, 0x37, 0xcb, 0x5d, 0xc7, 0x2a, 0xbb, 0x2a, 0x0a, - 0x5f, 0xcc, 0x62, 0xb5, 0xcc, 0xb3, 0x9c, 0x6d, 0xdf, 0x41, 0xc5, 0x8c, 0x33, 0x71, 0xf7, 0x3c, - 0x09, 0x93, 0x5d, 0xbb, 0x6e, 0xa3, 0x10, 0x47, 0x14, 0x0c, 0xa6, 0x09, 0x9b, 0xfe, 0x8f, 0xe1, - 0x3e, 0x4d, 0xf7, 0xbe, 0x97, 0x9b, 0x06, 0x89, 0x79, 0xba, 0xdb, 0x3b, 0x98, 0xc9, 0xc2, 0xa8, - 0x37, 0x76, 0x8c, 0x11, 0xa0, 0xd1, 0x83, 0x66, 0x37, 0x34, 0xa3, 0x16, 0xb6, 0x8b, 0x78, 0x2e, - 0x7c, 0x5b, 0x09, 0x4d, 0x6c, 0x68, 0x4e, 0xde, 0x58, 0xdf, 0x2b, 0x95, 0xcd, 0xfd, 0xad, 0xbd, - 0xf5, 0xcd, 0x52, 0x4a, 0x9f, 0x1f, 0x89, 0x7f, 0x67, 0x38, 0xf5, 0x0e, 0xf4, 0x2f, 0x92, 0xf9, - 0x4a, 0x04, 0x92, 0x72, 0x1f, 0x6c, 0xbc, 0x11, 0xee, 0xe1, 0x0f, 0xad, 0x8e, 0xd5, 0x29, 0x3f, - 0x57, 0x6f, 0x93, 0x70, 0x3e, 0xae, 0xd0, 0x4e, 0x52, 0x78, 0x62, 0x92, 0x71, 0xa1, 0xc7, 0xfb, - 0xb7, 0x22, 0x9e, 0x1b, 0x84, 0xc5, 0xd8, 0x80, 0xf3, 0xc8, 0x64, 0xa8, 0xd7, 0xb4, 0x6b, 0x95, - 0x76, 0xad, 0xec, 0x2e, 0x17, 0x94, 0x2b, 0x55, 0x14, 0x07, 0x4e, 0x93, 0xce, 0x24, 0x42, 0xca, - 0x59, 0xbb, 0xb9, 0xcb, 0x98, 0xdd, 0x12, 0x9b, 0x63, 0xac, 0x4a, 0xd4, 0xe8, 0xfd, 0xa2, 0x06, - 0xf5, 0x5e, 0xc7, 0x95, 0x16, 0x0a, 0x9b, 0x4e, 0xfb, 0x36, 0xe9, 0xde, 0xe2, 0x66, 0x1c, 0x0d, - 0x94, 0xf0, 0xe7, 0xd7, 0xcf, 0x07, 0x5e, 0x3b, 0xfe, 0xbb, 0x0e, 0xa3, 0xde, 0x0e, 0x0e, 0x37, - 0xc4, 0x55, 0x52, 0xe6, 0x35, 0x52, 0x05, 0x1e, 0x18, 0xd8, 0xef, 0x2d, 0x14, 0x70, 0xfd, 0xcf, - 0x0e, 0xd1, 0xbe, 0xca, 0xa4, 0x48, 0x3c, 0xf7, 0xe2, 0x58, 0xb3, 0x68, 0xb7, 0x1e, 0x37, 0xd9, - 0x27, 0x54, 0xec, 0x86, 0x9e, 0x76, 0x88, 0xec, 0x21, 0x22, 0x7b, 0x66, 0xb0, 0xec, 0x9b, 0xbb, - 0x44, 0xf8, 0xc8, 0xcd, 0xdd, 0xf2, 0xd6, 0xb6, 0xb9, 0x99, 0xdb, 0x30, 0x19, 0xdc, 0xb8, 0x17, - 0xa2, 0x8d, 0xca, 0xdb, 0x6f, 0xcb, 0x33, 0x05, 0x19, 0x0a, 0x6b, 0x78, 0x24, 0x01, 0x2f, 0x79, - 0xc8, 0xf5, 0x99, 0x0c, 0xbd, 0x8e, 0xa1, 0xbf, 0x08, 0x31, 0x62, 0x2f, 0x03, 0x80, 0x59, 0x2c, - 0x75, 0xca, 0x88, 0x43, 0xb4, 0xb0, 0x6d, 0xe2, 0xf0, 0x47, 0xf1, 0x4e, 0x47, 0xcb, 0x3b, 0xeb, - 0xa5, 0x02, 0xca, 0x80, 0xcc, 0x65, 0x18, 0xa2, 0x46, 0xc0, 0xa9, 0x21, 0xcc, 0x80, 0x40, 0xf4, - 0x23, 0x93, 0xa1, 0x71, 0xea, 0xfe, 0x66, 0xbe, 0x64, 0xa6, 0x22, 0x5e, 0xf7, 0x7e, 0x49, 0x83, - 0x84, 0xa7, 0xa1, 0xc2, 0x53, 0x79, 0xa5, 0xd1, 0x68, 0x3e, 0x57, 0xae, 0x34, 0xea, 0xa8, 0x42, - 0x51, 0xff, 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb0, 0xf6, 0xfb, 0x89, 0xc4, 0xe6, 0x47, 0x35, 0x48, - 0xa9, 0xcd, 0x98, 0xa2, 0xa0, 0xf6, 0x53, 0x55, 0xf0, 0xc3, 0x1a, 0x24, 0xe5, 0x0e, 0x4c, 0x51, - 0xef, 0xe2, 0x4f, 0x55, 0xbd, 0x0f, 0x69, 0x30, 0x26, 0xf5, 0x5d, 0x3f, 0x53, 0xda, 0x7d, 0x50, - 0x87, 0xd3, 0x3e, 0x38, 0x54, 0x80, 0x68, 0x83, 0x4a, 0x7b, 0xe6, 0x47, 0xc3, 0x5c, 0x6b, 0x01, - 0xcf, 0x7f, 0x3b, 0x95, 0x76, 0x87, 0xf5, 0xb3, 0x68, 0xbe, 0xac, 0xd7, 0x50, 0x51, 0xad, 0x1f, - 0xd4, 0x51, 0xfb, 0x46, 0x9f, 0x58, 0x68, 0xd7, 0x3a, 0xee, 0x8e, 0xd3, 0xc7, 0xe3, 0x47, 0xc0, - 0x68, 0x35, 0x9d, 0x7a, 0xa7, 0xfe, 0x2c, 0x5e, 0x9e, 0xe3, 0x0f, 0xd2, 0xb8, 0x8b, 0x8d, 0x9a, - 0x29, 0x4e, 0x59, 0xb7, 0x3b, 0x82, 0xdb, 0xb6, 0x0e, 0x2b, 0x0a, 0x37, 0x2e, 0x43, 0xba, 0x99, - 0xe2, 0x14, 0xc1, 0x8d, 0x1a, 0xcd, 0x5a, 0xb3, 0x8b, 0x1b, 0x02, 0xca, 0x87, 0xab, 0x9e, 0x66, - 0x26, 0xe8, 0x98, 0x60, 0x61, 0x1d, 0x9b, 0xfb, 0x04, 0x3f, 0x6a, 0x26, 0xe8, 0x18, 0x65, 0x79, - 0x08, 0xc6, 0x2b, 0x87, 0x87, 0x6d, 0x2c, 0x9c, 0x0b, 0xa2, 0x6d, 0x68, 0x52, 0x0c, 0x13, 0xc6, - 0xe9, 0x9b, 0x10, 0xe7, 0x76, 0xc0, 0x13, 0x0b, 0xb6, 0x04, 0x9a, 0xf3, 0xc9, 0x3a, 0x4a, 0x04, - 0x3f, 0xd4, 0xdb, 0x9c, 0x88, 0x2e, 0x5a, 0x77, 0xca, 0xee, 0x82, 0x5e, 0x04, 0xd1, 0xe3, 0x66, - 0xa2, 0xee, 0x88, 0x15, 0x9c, 0xcc, 0xa7, 0xd0, 0xf4, 0x2a, 0x2f, 0x48, 0x1a, 0x45, 0x88, 0x37, - 0x9a, 0x28, 0x3e, 0x30, 0x82, 0xae, 0x86, 0xcf, 0x05, 0xac, 0x61, 0x2e, 0x6c, 0x30, 0x7e, 0x53, - 0x20, 0xa7, 0xff, 0x59, 0x83, 0x38, 0x1f, 0x46, 0x13, 0x45, 0xb4, 0x55, 0xe9, 0x1c, 0x11, 0x71, - 0xb1, 0x7c, 0x24, 0xa5, 0x99, 0xe4, 0x33, 0x1e, 0x47, 0xdd, 0x8c, 0x4d, 0x42, 0x80, 0x8d, 0xe3, - 0xcf, 0xd8, 0xaf, 0x0d, 0xab, 0x52, 0x23, 0x0d, 0x6e, 0xf3, 0xf8, 0x18, 0x79, 0xd2, 0xe1, 0x7e, - 0x65, 0xe3, 0x05, 0x36, 0x8c, 0xd7, 0xc5, 0x3b, 0xed, 0x4a, 0xbd, 0x21, 0xf1, 0x46, 0x09, 0x6f, - 0x8a, 0x13, 0x04, 0x73, 0x16, 0xee, 0xe5, 0x72, 0x6b, 0x56, 0xa7, 0x82, 0x9a, 0xe7, 0x9a, 0x0b, - 0x1a, 0x22, 0xab, 0x5d, 0xf7, 0x30, 0x86, 0x22, 0xa3, 0x73, 0x6c, 0xfe, 0x49, 0xd4, 0xc8, 0x36, - 0x8f, 0x55, 0x4b, 0xe4, 0x53, 0xca, 0x73, 0x97, 0xf3, 0x84, 0xf6, 0x36, 0x70, 0x9b, 0x8a, 0x4f, - 0x44, 0xf4, 0xb5, 0x9d, 0xfc, 0x67, 0x22, 0xd3, 0x6b, 0x14, 0xb7, 0xc3, 0x2d, 0x68, 0x5a, 0x07, - 0x0d, 0xab, 0x8a, 0xad, 0x03, 0x1f, 0x7f, 0x00, 0x1e, 0x3d, 0xac, 0x77, 0x8e, 0xba, 0xb7, 0x16, - 0xd0, 0x15, 0x16, 0x0f, 0x9b, 0x87, 0x4d, 0x77, 0x3b, 0x03, 0x7f, 0x22, 0x1f, 0xc8, 0x3b, 0xb6, - 0xa5, 0x31, 0x22, 0x46, 0xa7, 0x03, 0xf7, 0x3f, 0xb2, 0x5b, 0x70, 0x9a, 0x31, 0x97, 0xc9, 0x9a, - 0x2a, 0x6d, 0x41, 0x8d, 0x81, 0x0f, 0xe4, 0xe9, 0xcf, 0x7f, 0x9b, 0x4c, 0x09, 0xe6, 0x04, 0x83, - 0x62, 0x1a, 0x6d, 0x52, 0xb3, 0x26, 0x9c, 0x91, 0xe4, 0xd1, 0x18, 0x46, 0x8f, 0xdc, 0x83, 0x25, - 0x7e, 0x85, 0x49, 0x3c, 0xed, 0x91, 0xb8, 0xcb, 0xa0, 0xd9, 0x02, 0x8c, 0x9d, 0x44, 0xd6, 0x3f, - 0x30, 0x59, 0xa3, 0x96, 0x57, 0xc8, 0x1a, 0x8c, 0x13, 0x21, 0xd5, 0xae, 0xd3, 0x69, 0x1e, 0x93, - 0x02, 0x31, 0x58, 0xcc, 0x3f, 0x7e, 0x9b, 0x06, 0x55, 0x12, 0xc3, 0x0a, 0x02, 0x95, 0x7d, 0x0b, - 0x4c, 0xe2, 0x11, 0x92, 0x83, 0x5e, 0x69, 0xc1, 0x4b, 0x08, 0xe9, 0x7f, 0x79, 0x17, 0x8d, 0xbd, - 0xd3, 0x42, 0x80, 0x47, 0xae, 0xc7, 0x13, 0x87, 0x56, 0x07, 0xd5, 0x36, 0xf4, 0xfc, 0xd7, 0x68, - 0x18, 0x03, 0xf7, 0x18, 0xd2, 0x1f, 0xf8, 0xae, 0xec, 0x89, 0x35, 0x8a, 0xcc, 0x35, 0x1a, 0xd9, - 0x7d, 0xb8, 0xc7, 0xc7, 0xb3, 0x21, 0x64, 0x7e, 0x90, 0xc9, 0x9c, 0xec, 0xf1, 0x2e, 0x16, 0xbb, - 0x03, 0x7c, 0x5c, 0xf8, 0x23, 0x84, 0xcc, 0x0f, 0x31, 0x99, 0x06, 0xc3, 0x72, 0xb7, 0x60, 0x89, - 0x37, 0x61, 0x02, 0x3d, 0xa9, 0xdf, 0x6a, 0x3a, 0xec, 0xb9, 0x37, 0x84, 0xb8, 0x0f, 0x33, 0x71, - 0xe3, 0x0c, 0x48, 0x9e, 0x82, 0xb1, 0xac, 0xeb, 0x10, 0x3f, 0x40, 0x0f, 0x40, 0x21, 0x44, 0x7c, - 0x84, 0x89, 0x18, 0xc6, 0xfc, 0x18, 0x9a, 0x83, 0xd1, 0xc3, 0x26, 0x2b, 0xc3, 0xc1, 0xf0, 0x8f, - 0x32, 0x78, 0x82, 0x63, 0x98, 0x88, 0x56, 0xb3, 0xd5, 0x6d, 0xe0, 0x1a, 0x1d, 0x2c, 0xe2, 0x63, - 0x5c, 0x04, 0xc7, 0x30, 0x11, 0x27, 0x30, 0xeb, 0x0b, 0x5c, 0x84, 0xe3, 0xb1, 0xe7, 0x9b, 0xf1, - 0x5a, 0x6f, 0xe3, 0x76, 0xd3, 0x0e, 0xa3, 0xc4, 0xc7, 0x99, 0x04, 0x60, 0x10, 0x2c, 0xe0, 0x31, - 0x18, 0x09, 0xeb, 0x88, 0x4f, 0x32, 0x78, 0xdc, 0xe2, 0x1e, 0x40, 0x79, 0xc6, 0x8b, 0x0c, 0xde, - 0x5b, 0x09, 0x16, 0xf1, 0x27, 0x4c, 0x44, 0xd2, 0x03, 0x63, 0xb7, 0xd1, 0xb1, 0x9c, 0x0e, 0x7a, - 0x54, 0x0f, 0x21, 0xe4, 0x53, 0xfc, 0x36, 0x18, 0x84, 0x99, 0xf2, 0x96, 0x65, 0x57, 0x8f, 0xc2, - 0x49, 0x78, 0x91, 0x9b, 0x92, 0x63, 0xb0, 0x08, 0x54, 0x79, 0x8e, 0x2b, 0x6d, 0xf4, 0x70, 0xdd, - 0x08, 0xe5, 0x8e, 0x4f, 0x33, 0x19, 0xa3, 0x02, 0xc4, 0x2c, 0xd2, 0xb5, 0x4f, 0x22, 0xe6, 0x33, - 0xdc, 0x22, 0x1e, 0x18, 0x4b, 0x3d, 0xf4, 0x64, 0x8a, 0x3b, 0x89, 0x93, 0x48, 0xfb, 0x53, 0x9e, - 0x7a, 0x14, 0xbb, 0xe9, 0x95, 0x88, 0x3c, 0xed, 0xa0, 0x47, 0xf0, 0x30, 0x62, 0xfe, 0x8c, 0x7b, - 0x9a, 0x00, 0x30, 0xf8, 0x29, 0xb8, 0xd7, 0xb7, 0xd4, 0x87, 0x10, 0xf6, 0xe7, 0x4c, 0xd8, 0x94, - 0x4f, 0xb9, 0x67, 0x25, 0xe1, 0xa4, 0x22, 0xff, 0x82, 0x97, 0x04, 0x4b, 0x91, 0xb5, 0x83, 0xdb, - 0x58, 0xa7, 0x72, 0x70, 0x32, 0xab, 0x7d, 0x96, 0x5b, 0x8d, 0x62, 0x25, 0xab, 0xed, 0xc1, 0x14, - 0x93, 0x78, 0x32, 0xbf, 0x7e, 0x8e, 0x17, 0x56, 0x8a, 0xde, 0x97, 0xbd, 0xfb, 0x0b, 0x30, 0x2d, - 0xcc, 0xc9, 0x3b, 0x30, 0xa7, 0x8c, 0x17, 0x06, 0x82, 0x25, 0x7f, 0x9e, 0x49, 0xe6, 0x15, 0x5f, - 0xb4, 0x70, 0xce, 0x66, 0xa5, 0x85, 0x85, 0x3f, 0x09, 0x69, 0x2e, 0xbc, 0x6b, 0xa3, 0x06, 0xbf, - 0x79, 0x68, 0x23, 0x37, 0xd6, 0x42, 0x88, 0xfe, 0x4b, 0xc5, 0x55, 0xfb, 0x1e, 0x38, 0x96, 0xbc, - 0x0e, 0x29, 0xd1, 0x6f, 0x94, 0xeb, 0xc7, 0xad, 0x26, 0x6a, 0x2d, 0x07, 0x4b, 0xfc, 0x2b, 0xee, - 0x29, 0x81, 0x5b, 0x27, 0xb0, 0x6c, 0x09, 0x92, 0xe4, 0x63, 0xd8, 0x90, 0xfc, 0x02, 0x13, 0x34, - 0xe6, 0xa2, 0x58, 0xe1, 0x40, 0x9d, 0x12, 0xea, 0x79, 0xc3, 0xd4, 0xbf, 0xbf, 0xe6, 0x85, 0x83, - 0x41, 0x68, 0xf4, 0x8d, 0x2b, 0x33, 0xb1, 0x11, 0xb4, 0xfd, 0x9a, 0xfe, 0x95, 0x57, 0x58, 0xce, - 0xca, 0x13, 0x71, 0x76, 0x03, 0x9b, 0x47, 0x9e, 0x2e, 0x83, 0x85, 0xbd, 0xeb, 0x15, 0x61, 0x21, - 0x69, 0xb6, 0xcc, 0xde, 0x80, 0x31, 0x69, 0xaa, 0x0c, 0x16, 0xf5, 0xab, 0x4c, 0xd4, 0xa8, 0x77, - 0xa6, 0xcc, 0x5e, 0x86, 0x28, 0x9e, 0xf6, 0x82, 0xe1, 0xbf, 0xc6, 0xe0, 0x84, 0x3d, 0xfb, 0x26, - 0x88, 0xf3, 0xe9, 0x2e, 0x18, 0xfa, 0x6e, 0x06, 0x15, 0x10, 0x0c, 0xe7, 0x53, 0x5d, 0x30, 0xfc, - 0xd7, 0x39, 0x9c, 0x43, 0x30, 0x3c, 0xbc, 0x09, 0x5f, 0xfa, 0xcd, 0x28, 0x2b, 0x57, 0xdc, 0x76, - 0x78, 0xcf, 0x87, 0xce, 0x71, 0xc1, 0xe8, 0xf7, 0xb2, 0x8b, 0x73, 0x44, 0xf6, 0x2a, 0xc4, 0x42, - 0x1a, 0xfc, 0xb7, 0x18, 0x94, 0xf2, 0xa3, 0x19, 0x24, 0xe1, 0x99, 0xd7, 0x82, 0xe1, 0xbf, 0xcd, - 0xe0, 0x5e, 0x14, 0x56, 0x9d, 0xcd, 0x6b, 0xc1, 0x02, 0x7e, 0x87, 0xab, 0xce, 0x10, 0xd8, 0x6c, - 0x7c, 0x4a, 0x0b, 0x46, 0xff, 0x2e, 0xb7, 0x3a, 0x87, 0xa0, 0x6c, 0x1a, 0x11, 0x65, 0x2a, 0x18, - 0xff, 0x7b, 0x0c, 0xef, 0x62, 0xb0, 0x05, 0x3c, 0x65, 0x32, 0x58, 0xc4, 0xef, 0x73, 0x0b, 0x78, - 0x50, 0x38, 0x8d, 0xd4, 0xa9, 0x2f, 0x58, 0xd2, 0xfb, 0x78, 0x1a, 0x29, 0x33, 0x1f, 0xf6, 0x26, - 0xa9, 0x16, 0xc1, 0x22, 0xfe, 0x80, 0x7b, 0x93, 0xf0, 0x63, 0x35, 0xd4, 0xb9, 0x24, 0x58, 0xc6, - 0x1f, 0x71, 0x35, 0x94, 0xa9, 0x04, 0xcd, 0x4c, 0x46, 0xef, 0x3c, 0x12, 0x2c, 0xef, 0xfd, 0x4c, - 0xde, 0x44, 0xcf, 0x34, 0x92, 0x7d, 0x2b, 0x4c, 0xf9, 0xcf, 0x21, 0xc1, 0x52, 0x3f, 0xf0, 0x8a, - 0xd2, 0xf5, 0x7b, 0xa7, 0x10, 0x34, 0xe5, 0x4d, 0xfa, 0xcd, 0x1f, 0xc1, 0x62, 0x3f, 0xf8, 0x8a, - 0xfc, 0x60, 0xe7, 0x9d, 0x3e, 0x50, 0x87, 0x06, 0x6e, 0xe9, 0x0e, 0x96, 0xf5, 0x61, 0x26, 0xcb, - 0x03, 0xc2, 0xa9, 0xc1, 0x2a, 0x77, 0x30, 0xfe, 0x23, 0x3c, 0x35, 0x18, 0x02, 0x81, 0xe3, 0x76, - 0xb7, 0xd1, 0xc0, 0xc1, 0x61, 0x0c, 0x3e, 0xd2, 0x90, 0xfe, 0xcf, 0x1f, 0xb1, 0xc4, 0xe0, 0x00, - 0x54, 0x43, 0x63, 0xd6, 0xf1, 0x2d, 0x64, 0x83, 0x00, 0xe4, 0x7f, 0xfd, 0x88, 0x17, 0x04, 0xcc, - 0x8d, 0xf2, 0x09, 0xe8, 0x43, 0x23, 0x59, 0xc3, 0x0e, 0xc0, 0xfe, 0xf7, 0x8f, 0xd8, 0x36, 0xab, - 0x0b, 0x71, 0x05, 0xd0, 0x4d, 0xdb, 0xc1, 0x02, 0xbe, 0x2b, 0x0b, 0x20, 0x0f, 0x9a, 0xd7, 0x61, - 0x18, 0x9f, 0xec, 0xe8, 0x54, 0x0e, 0x83, 0xd0, 0xff, 0xc3, 0xd0, 0x9c, 0x1f, 0x1b, 0xec, 0xb8, - 0xd9, 0xb6, 0xd0, 0x5b, 0x27, 0x08, 0xfb, 0xbf, 0x0c, 0x2b, 0x00, 0x18, 0x5c, 0xad, 0x38, 0x9d, - 0x30, 0xf7, 0xfd, 0x7f, 0x1c, 0xcc, 0x01, 0x58, 0x69, 0xfc, 0xfe, 0x19, 0xeb, 0x76, 0x10, 0xf6, - 0x7b, 0x5c, 0x69, 0xc6, 0x8f, 0x0a, 0xe0, 0x08, 0x7e, 0x4b, 0x8f, 0x1e, 0x04, 0x80, 0xbf, 0xcf, - 0xc0, 0x2e, 0x22, 0x7f, 0xd1, 0x7f, 0x69, 0x07, 0xd6, 0x9a, 0x6b, 0x4d, 0xba, 0xa8, 0x03, 0x9f, - 0xad, 0xc3, 0x05, 0xc4, 0x83, 0xe6, 0xd7, 0x45, 0x4f, 0x26, 0x2f, 0x76, 0x8e, 0x2c, 0x5c, 0x84, - 0xd9, 0xb2, 0x4c, 0x14, 0xbf, 0x9f, 0x3e, 0xd9, 0x5a, 0x0e, 0xd9, 0x98, 0xd9, 0xaa, 0x63, 0xf5, - 0xb6, 0xc8, 0xaa, 0xa2, 0x71, 0x16, 0x86, 0x88, 0xc2, 0xcb, 0x64, 0xd1, 0x5b, 0xcb, 0x47, 0xef, - 0xbc, 0x7c, 0xfe, 0x94, 0x39, 0x44, 0x0e, 0xe8, 0x2d, 0x0b, 0xea, 0x0a, 0x59, 0xd3, 0x8f, 0x48, - 0xd4, 0x15, 0x41, 0xbd, 0x44, 0x4f, 0x3f, 0x49, 0xd4, 0x4b, 0x82, 0xba, 0x4a, 0x16, 0xc8, 0x74, - 0x89, 0xba, 0x2a, 0xa8, 0x97, 0xc9, 0x3a, 0xe7, 0x98, 0x44, 0xbd, 0x2c, 0xa8, 0x57, 0xc8, 0xea, - 0x66, 0x54, 0xa2, 0x5e, 0x11, 0xd4, 0xab, 0x64, 0x61, 0x73, 0x42, 0xa2, 0x5e, 0x15, 0xd4, 0x6b, - 0x64, 0x41, 0xd3, 0x90, 0xa8, 0xd7, 0x04, 0xf5, 0x3a, 0xd9, 0x8f, 0x1e, 0x96, 0xa8, 0xd7, 0x8d, - 0x73, 0x30, 0x4c, 0xad, 0xb1, 0x44, 0xf6, 0x70, 0xc6, 0x19, 0x79, 0x98, 0x9a, 0x63, 0xc9, 0xa5, - 0x2f, 0x93, 0xbd, 0xe7, 0x21, 0x99, 0xbe, 0xec, 0xd2, 0x57, 0xc8, 0x79, 0xca, 0x94, 0x4c, 0x5f, - 0x71, 0xe9, 0x97, 0xd2, 0x63, 0x38, 0x89, 0x65, 0xfa, 0x25, 0x97, 0xbe, 0x9a, 0x4e, 0xe2, 0xb8, - 0x91, 0xe9, 0xab, 0x2e, 0xfd, 0x72, 0x7a, 0x1c, 0xaf, 0xe9, 0xca, 0xf4, 0xcb, 0x99, 0x77, 0x12, - 0xf7, 0xda, 0xae, 0x7b, 0xa7, 0x64, 0xf7, 0x0a, 0xc7, 0x4e, 0xc9, 0x8e, 0x15, 0x2e, 0x9d, 0x92, - 0x5d, 0x2a, 0x9c, 0x39, 0x25, 0x3b, 0x53, 0xb8, 0x71, 0x4a, 0x76, 0xa3, 0x70, 0xe0, 0x94, 0xec, - 0x40, 0xe1, 0xba, 0x29, 0xd9, 0x75, 0xc2, 0x69, 0x53, 0xb2, 0xd3, 0x84, 0xbb, 0xa6, 0x64, 0x77, - 0x09, 0x47, 0xa5, 0x15, 0x47, 0xb9, 0x2e, 0x4a, 0x2b, 0x2e, 0x72, 0x9d, 0x93, 0x56, 0x9c, 0xe3, - 0xba, 0x25, 0xad, 0xb8, 0xc5, 0x75, 0x48, 0x5a, 0x71, 0x88, 0xeb, 0x8a, 0xb4, 0xe2, 0x0a, 0xd7, - 0x09, 0x2c, 0xc7, 0x4c, 0xab, 0xe5, 0x93, 0x63, 0xfa, 0xc0, 0x1c, 0xd3, 0x07, 0xe6, 0x98, 0x3e, - 0x30, 0xc7, 0xf4, 0x81, 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, 0xe9, 0x03, 0x73, 0x4c, - 0x1f, 0x98, 0x63, 0xfa, 0xe0, 0x1c, 0xd3, 0x03, 0x72, 0x4c, 0x0f, 0xc8, 0x31, 0x3d, 0x20, 0xc7, - 0xf4, 0x80, 0x1c, 0xd3, 0x03, 0x72, 0x4c, 0xef, 0x9b, 0x63, 0xae, 0x7b, 0xa7, 0x64, 0xf7, 0xfa, - 0xe6, 0x98, 0xde, 0x27, 0xc7, 0xf4, 0x3e, 0x39, 0xa6, 0xf7, 0xc9, 0x31, 0xbd, 0x4f, 0x8e, 0xe9, - 0x7d, 0x72, 0x4c, 0xef, 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe5, 0x98, 0xde, 0x37, 0xc7, - 0xf4, 0xbe, 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, 0xf7, 0xe6, - 0xd8, 0xdf, 0xea, 0x60, 0xd0, 0x1c, 0xdb, 0x21, 0xa7, 0x00, 0x98, 0x2b, 0xce, 0x29, 0x99, 0x36, - 0x84, 0x5d, 0x97, 0x72, 0x5d, 0x72, 0x4e, 0xc9, 0x35, 0x99, 0xbe, 0x22, 0xe8, 0x3c, 0xdb, 0x64, - 0xfa, 0x25, 0x41, 0xe7, 0xf9, 0x26, 0xd3, 0x57, 0x05, 0x9d, 0x67, 0x9c, 0x4c, 0xbf, 0x2c, 0xe8, - 0x3c, 0xe7, 0x64, 0xfa, 0x15, 0x41, 0xe7, 0x59, 0x27, 0xd3, 0xaf, 0x0a, 0x3a, 0xcf, 0x3b, 0x99, - 0x7e, 0x4d, 0xd0, 0x79, 0xe6, 0xc9, 0xf4, 0xeb, 0xc6, 0x05, 0x35, 0xf7, 0x38, 0x83, 0x70, 0xed, - 0x05, 0x35, 0xfb, 0x14, 0x8e, 0x65, 0x97, 0x83, 0xe7, 0x9f, 0xc2, 0xb1, 0xe2, 0x72, 0xf0, 0x0c, - 0x54, 0x38, 0x2e, 0x65, 0xde, 0x43, 0xdc, 0x67, 0xab, 0xee, 0x9b, 0x56, 0xdc, 0x17, 0xf1, 0xb8, - 0x6e, 0x5a, 0x71, 0x5d, 0xc4, 0xe3, 0xb6, 0x69, 0xc5, 0x6d, 0x11, 0x8f, 0xcb, 0xa6, 0x15, 0x97, - 0x45, 0x3c, 0xee, 0x9a, 0x56, 0xdc, 0x15, 0xf1, 0xb8, 0x6a, 0x5a, 0x71, 0x55, 0xc4, 0xe3, 0xa6, - 0x69, 0xc5, 0x4d, 0x11, 0x8f, 0x8b, 0xa6, 0x15, 0x17, 0x45, 0x3c, 0xee, 0x99, 0x56, 0xdc, 0x13, - 0xf1, 0xb8, 0xe6, 0xac, 0xea, 0x9a, 0x88, 0xd7, 0x2d, 0x67, 0x55, 0xb7, 0x44, 0xbc, 0x2e, 0x39, - 0xab, 0xba, 0x24, 0xe2, 0x75, 0xc7, 0x59, 0xd5, 0x1d, 0x11, 0xaf, 0x2b, 0x7e, 0x1c, 0xe1, 0x1d, - 0xe1, 0x6e, 0xa7, 0xdd, 0xad, 0x76, 0xee, 0xaa, 0x23, 0x5c, 0x92, 0xda, 0x87, 0xc4, 0x8a, 0xb1, - 0x40, 0x1a, 0x56, 0x6f, 0xc7, 0xa9, 0xcc, 0x60, 0x4b, 0x52, 0x63, 0xe1, 0x41, 0xd8, 0xfe, 0x88, - 0xd5, 0xbb, 0xea, 0x0d, 0x97, 0xa4, 0x36, 0x23, 0x58, 0xbf, 0x6b, 0xaf, 0x7b, 0xc7, 0xf6, 0x52, - 0x84, 0x77, 0x6c, 0xcc, 0xfc, 0x27, 0xed, 0xd8, 0xe6, 0x83, 0x4d, 0x2e, 0x8c, 0x3d, 0x1f, 0x6c, - 0xec, 0x9e, 0x59, 0x27, 0x6c, 0x07, 0x37, 0x1f, 0x6c, 0x5a, 0x61, 0xd4, 0xd7, 0xb6, 0xdf, 0x62, - 0x11, 0x8c, 0x8a, 0x89, 0x4f, 0x04, 0x9f, 0xb4, 0xdf, 0x5a, 0x92, 0x4a, 0xc9, 0x49, 0x23, 0x58, - 0x3f, 0x71, 0x04, 0x9f, 0xb4, 0xf3, 0x5a, 0x92, 0xca, 0xcb, 0x89, 0x23, 0xf8, 0x75, 0xe8, 0x87, - 0x58, 0x04, 0xbb, 0xe6, 0x3f, 0x69, 0x3f, 0x34, 0x1f, 0x6c, 0x72, 0xdf, 0x08, 0xd6, 0x4f, 0x10, - 0xc1, 0x61, 0xfa, 0xa3, 0xf9, 0x60, 0xd3, 0xfa, 0x47, 0xf0, 0x5d, 0x77, 0x33, 0x1f, 0xd3, 0x60, - 0x02, 0x5d, 0xa6, 0x84, 0x17, 0x74, 0x6a, 0x56, 0x8d, 0xd9, 0x71, 0x49, 0xaa, 0x04, 0x7d, 0x5c, - 0xfd, 0xd5, 0x97, 0xcf, 0xbb, 0x16, 0xbe, 0x0c, 0x71, 0x6a, 0xe1, 0xa5, 0xa5, 0xf4, 0x1d, 0x2d, - 0xa0, 0xc2, 0xc5, 0x0f, 0x18, 0xab, 0x71, 0x91, 0xc3, 0xd0, 0xdc, 0xf3, 0x35, 0xcd, 0x53, 0xe5, - 0x18, 0xcb, 0xf2, 0x52, 0xe6, 0x7d, 0x44, 0x43, 0xfb, 0xae, 0x35, 0x5c, 0x0c, 0xa5, 0xa1, 0x47, - 0xb7, 0xfb, 0x7a, 0x74, 0xf3, 0x68, 0xd5, 0x85, 0x71, 0x04, 0xdb, 0x22, 0xdf, 0xe4, 0x0b, 0xa3, - 0x12, 0xe5, 0x51, 0xea, 0xc1, 0x92, 0x14, 0x96, 0x5e, 0x84, 0x08, 0x69, 0xb9, 0x46, 0x64, 0xea, - 0xf8, 0xb2, 0xb6, 0x74, 0xd9, 0xf9, 0x7e, 0x97, 0x75, 0x2b, 0xbb, 0xb8, 0xe0, 0x7c, 0xbf, 0x0b, - 0xba, 0x39, 0x24, 0x2e, 0xf5, 0x3c, 0x9f, 0x9c, 0xe9, 0xc1, 0x0e, 0x54, 0x1c, 0x22, 0xeb, 0xf4, - 0x7c, 0xe2, 0x68, 0x7e, 0x14, 0x2b, 0xf5, 0x6f, 0x2f, 0x9f, 0x8f, 0xee, 0x77, 0x91, 0xae, 0x91, - 0x7a, 0xcd, 0xb8, 0x09, 0xb1, 0xb7, 0xb0, 0x2f, 0xd2, 0x60, 0x86, 0x55, 0xc6, 0xf0, 0x48, 0xdf, - 0x35, 0x22, 0x7c, 0xe1, 0x45, 0xba, 0x94, 0xb7, 0xb0, 0x5f, 0xb7, 0x3b, 0xcb, 0x2b, 0xd7, 0xd8, - 0x77, 0x6a, 0x32, 0xbf, 0x08, 0x40, 0xaf, 0x59, 0xc4, 0x5f, 0x04, 0xd8, 0xe2, 0x92, 0xe9, 0xa5, - 0xaf, 0x21, 0xa9, 0xab, 0x61, 0xa4, 0x3e, 0x5a, 0x43, 0xe8, 0x47, 0xf1, 0x8a, 0xdb, 0x42, 0xfe, - 0x36, 0x1a, 0xe7, 0xd2, 0x5b, 0x7c, 0xd6, 0x63, 0xf7, 0x95, 0xf6, 0xdc, 0x57, 0x5c, 0xba, 0xa7, - 0x1b, 0xf2, 0x3d, 0x2d, 0xbd, 0xda, 0xfb, 0x79, 0x9e, 0x4f, 0x12, 0x8a, 0x25, 0xf5, 0x20, 0x4b, - 0xea, 0x77, 0x6b, 0xc9, 0x16, 0xaf, 0x8f, 0xca, 0xbd, 0xea, 0x83, 0xee, 0x55, 0xbf, 0x9b, 0x7b, - 0xfd, 0x01, 0xcd, 0x56, 0x91, 0x4f, 0xfb, 0x36, 0x3d, 0x17, 0xf7, 0xb3, 0xb5, 0x16, 0xf4, 0x9a, - 0x76, 0x01, 0xd9, 0xe8, 0x9d, 0x17, 0xce, 0x6b, 0x99, 0x8f, 0x45, 0xf8, 0x9d, 0xd3, 0x44, 0x7a, - 0x75, 0x77, 0xfe, 0xb3, 0xd2, 0x53, 0xbd, 0x1e, 0x16, 0xfa, 0xa8, 0x06, 0x53, 0x3d, 0x95, 0x9c, - 0x9a, 0xe9, 0xb5, 0x2d, 0xe7, 0xf6, 0x49, 0xcb, 0x39, 0x53, 0xf0, 0x0b, 0x1a, 0x4c, 0x2a, 0xe5, - 0x95, 0xaa, 0xb7, 0xa8, 0xa8, 0x77, 0x4f, 0xef, 0x95, 0x08, 0xa3, 0x47, 0x3b, 0xaf, 0x7b, 0x15, - 0x80, 0x47, 0xb2, 0xf0, 0xfb, 0xaa, 0xe2, 0xf7, 0xb3, 0x02, 0xe0, 0x63, 0x2e, 0x1e, 0x01, 0x4c, - 0xed, 0x26, 0x44, 0xf7, 0xda, 0x16, 0x5e, 0x82, 0x88, 0x6c, 0xb7, 0x99, 0x86, 0x49, 0x8a, 0xdf, - 0x6e, 0xe7, 0xdb, 0x15, 0xbb, 0x7a, 0x64, 0x46, 0x9a, 0x6d, 0x34, 0xd9, 0xea, 0x39, 0xf6, 0x8d, - 0xe3, 0xc4, 0xca, 0x38, 0x65, 0x40, 0x03, 0x8c, 0x43, 0xaf, 0xd8, 0x35, 0x24, 0x22, 0xba, 0x61, - 0x55, 0x0e, 0x98, 0x12, 0x40, 0x79, 0xf0, 0x88, 0x19, 0x6d, 0xa0, 0xff, 0xd9, 0x05, 0x9f, 0x84, - 0x38, 0x17, 0x6c, 0xcc, 0x60, 0xc4, 0x41, 0x87, 0x5d, 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe6, 0x42, - 0xb8, 0x83, 0x8e, 0x31, 0x0b, 0x31, 0xb3, 0x7e, 0x78, 0xd4, 0x61, 0x17, 0xef, 0x65, 0x8b, 0xb5, - 0x31, 0x39, 0xf3, 0x14, 0x8c, 0x08, 0x8d, 0x5e, 0x63, 0xd1, 0x45, 0x7a, 0x6b, 0xe8, 0x49, 0xd8, - 0x33, 0x9f, 0xf0, 0x75, 0x4b, 0xf6, 0x6d, 0xce, 0x0b, 0x10, 0x47, 0x66, 0x76, 0x8b, 0x3e, 0xef, - 0x48, 0xf1, 0xd6, 0x3b, 0x19, 0xcd, 0xbc, 0x53, 0x83, 0x78, 0xd1, 0xb2, 0x5a, 0xc4, 0xe0, 0x0f, - 0x42, 0xb4, 0xd8, 0x7c, 0xce, 0x66, 0x0a, 0x4e, 0x30, 0x8b, 0x62, 0x32, 0xb3, 0x69, 0xb4, 0x86, - 0xc8, 0x88, 0xcd, 0x63, 0xf7, 0xd3, 0xc2, 0xee, 0x1e, 0x3e, 0x62, 0xfb, 0x8c, 0x64, 0x7b, 0xe6, - 0x40, 0xcc, 0xd4, 0x63, 0xff, 0xab, 0x90, 0xf0, 0x5c, 0xc5, 0x98, 0x63, 0x6a, 0x44, 0x54, 0xa0, - 0xd7, 0x56, 0x58, 0x93, 0x8c, 0x05, 0x63, 0xd2, 0x85, 0x31, 0xd4, 0x63, 0xe2, 0x3e, 0x50, 0x62, - 0xe6, 0x79, 0xd9, 0xcc, 0xfe, 0xac, 0xcc, 0xd4, 0x4b, 0xd4, 0x46, 0xc4, 0xdc, 0x33, 0x34, 0x38, - 0xfb, 0x3b, 0xb1, 0x83, 0xde, 0x67, 0x62, 0xa0, 0x6f, 0xd5, 0x1b, 0x99, 0x37, 0x01, 0xd0, 0x94, - 0xc7, 0xa7, 0xa8, 0x94, 0xac, 0x4b, 0x72, 0x03, 0xef, 0x1d, 0x59, 0x7b, 0xe8, 0x2f, 0x66, 0x91, - 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, 0xc1, 0x3f, 0x1c, 0x88, 0xf7, 0xed, 0xc4, 0x30, 0x6b, - 0x9a, 0xb2, 0x3e, 0x65, 0x75, 0x72, 0x76, 0xb3, 0x73, 0x64, 0xb5, 0x15, 0xc4, 0x8a, 0x71, 0x49, - 0x4a, 0xd8, 0xe4, 0xca, 0x7d, 0x02, 0xd1, 0x17, 0x74, 0x29, 0xf3, 0x39, 0xa2, 0x20, 0x6e, 0x05, - 0x7a, 0x6e, 0x50, 0x0f, 0x71, 0x83, 0xc6, 0x15, 0xa9, 0x7f, 0x1b, 0xa0, 0xa6, 0xf2, 0x68, 0x79, - 0x5d, 0x7a, 0xce, 0x19, 0xac, 0xac, 0xfc, 0x8c, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x38, 0x50, 0xe5, - 0x3e, 0xdd, 0xed, 0x49, 0x6d, 0xaa, 0x87, 0xb5, 0xe9, 0x97, 0x44, 0xc7, 0x41, 0xbf, 0xf4, 0x4d, - 0x7e, 0x2a, 0xc0, 0x78, 0x24, 0xd0, 0xf7, 0x59, 0xad, 0x20, 0x54, 0x5d, 0x0d, 0xeb, 0xfe, 0x6c, - 0x24, 0x9f, 0x17, 0xea, 0x5e, 0x3d, 0x41, 0x08, 0x64, 0x23, 0x85, 0x82, 0x28, 0xdb, 0xf1, 0xf7, - 0xa0, 0x2c, 0x7e, 0xf1, 0x85, 0xf3, 0xa7, 0x32, 0x9f, 0x46, 0xca, 0x33, 0x4e, 0x4f, 0xe0, 0x3e, - 0xaa, 0x28, 0x7f, 0x86, 0xd7, 0x0c, 0x3f, 0x0b, 0xfc, 0xc4, 0x82, 0xf7, 0x2b, 0x1a, 0xa4, 0x7b, - 0x74, 0xe5, 0xf6, 0x5e, 0x0a, 0xa5, 0x72, 0x56, 0x2b, 0xfd, 0xf4, 0x6d, 0xfe, 0x14, 0xc4, 0xf6, - 0xea, 0xc7, 0x56, 0x1b, 0xcf, 0x04, 0xf8, 0x0d, 0x55, 0x99, 0x6f, 0xe6, 0xc4, 0x3a, 0x78, 0x88, - 0xd3, 0xa8, 0x72, 0x12, 0x0d, 0xef, 0x27, 0x44, 0x8b, 0x95, 0x4e, 0x85, 0x68, 0x30, 0x2a, 0xea, - 0x2b, 0x1a, 0xc9, 0x5c, 0x82, 0xd1, 0xcd, 0xdb, 0xe4, 0xb8, 0x49, 0x8d, 0x9c, 0xc4, 0x90, 0xbb, - 0x3f, 0xde, 0xaf, 0x2e, 0xcf, 0xc7, 0xe2, 0xb5, 0xd4, 0x1d, 0x2d, 0x1b, 0x25, 0xfa, 0x3c, 0x0b, - 0xc9, 0x6d, 0xac, 0x36, 0xc1, 0x49, 0x30, 0x7a, 0x75, 0x5d, 0xdc, 0xbc, 0xd2, 0x94, 0xe9, 0x6e, - 0x53, 0x76, 0x01, 0xb4, 0x4d, 0xb9, 0x75, 0xf2, 0xea, 0x61, 0x6a, 0xc7, 0xf3, 0xd1, 0x78, 0x32, - 0x35, 0x81, 0xfe, 0x87, 0xd4, 0x18, 0xbb, 0xee, 0x3f, 0xe9, 0x90, 0xa2, 0xad, 0x0e, 0x72, 0x62, - 0xdd, 0xae, 0x77, 0x7a, 0xfb, 0x55, 0xa1, 0xb1, 0xf1, 0x66, 0x18, 0xc1, 0x26, 0xbd, 0xc1, 0x7e, - 0x71, 0x07, 0x9b, 0xfe, 0x22, 0x6b, 0x51, 0x14, 0x11, 0x6c, 0x80, 0x84, 0x0e, 0xf9, 0x71, 0x1b, - 0x82, 0x41, 0x0f, 0x18, 0xfa, 0xd6, 0xd6, 0x26, 0x9b, 0xdc, 0x56, 0x07, 0x42, 0xd9, 0x59, 0x17, - 0xf6, 0x89, 0x8d, 0x39, 0x87, 0xa6, 0x6e, 0x6f, 0x6d, 0xa2, 0xb0, 0x89, 0x20, 0x31, 0xb4, 0xe1, - 0x9d, 0x09, 0x23, 0xc6, 0x8c, 0xd8, 0x9b, 0xd3, 0x7f, 0xa7, 0xc1, 0x98, 0x34, 0x8a, 0x66, 0xdb, - 0x51, 0x3a, 0xe0, 0xb9, 0xdd, 0x21, 0x73, 0xd4, 0xf6, 0x8c, 0x71, 0x9d, 0x23, 0x77, 0xa9, 0xf3, - 0x74, 0x0e, 0x3d, 0xb5, 0xcb, 0xe3, 0xc6, 0x02, 0x18, 0xde, 0x21, 0xa6, 0x04, 0xfd, 0xb5, 0x12, - 0xc3, 0xee, 0xa1, 0x64, 0xee, 0x47, 0x55, 0x58, 0xd8, 0x55, 0xfc, 0xc8, 0xc6, 0x56, 0x69, 0x17, - 0xff, 0x3e, 0x86, 0x96, 0xf9, 0xa2, 0x06, 0x09, 0xd6, 0xb6, 0x56, 0x9b, 0x2d, 0xcb, 0xc8, 0x83, - 0x96, 0x63, 0xf1, 0xf0, 0xea, 0xf4, 0xd6, 0x2a, 0x68, 0x76, 0xd2, 0xf2, 0xe1, 0x5d, 0xad, 0xdd, - 0x32, 0x56, 0x40, 0x2b, 0x30, 0x07, 0x87, 0xf3, 0x8c, 0x56, 0xcd, 0x7c, 0x5f, 0x87, 0xd3, 0xde, - 0x36, 0x9a, 0xd7, 0x93, 0x8b, 0xf2, 0x73, 0x53, 0x76, 0x64, 0x79, 0xe5, 0xd2, 0xea, 0x02, 0xfe, - 0x4f, 0x84, 0xe4, 0x45, 0xf9, 0x11, 0xaa, 0x97, 0xa5, 0xe7, 0x98, 0x48, 0x36, 0xea, 0xa1, 0xf6, - 0x1c, 0x13, 0x91, 0xa8, 0x3d, 0xc7, 0x44, 0x24, 0x6a, 0xcf, 0x31, 0x11, 0x89, 0xda, 0xb3, 0x15, - 0x20, 0x51, 0x7b, 0x8e, 0x89, 0x48, 0xd4, 0x9e, 0x63, 0x22, 0x12, 0xb5, 0xf7, 0x98, 0x08, 0x23, - 0xf7, 0x3d, 0x26, 0x22, 0xd3, 0x7b, 0x8f, 0x89, 0xc8, 0xf4, 0xde, 0x63, 0x22, 0x59, 0xd4, 0x9f, - 0x75, 0xad, 0xfe, 0x9b, 0x0e, 0x32, 0x7e, 0xd0, 0x33, 0xa0, 0x5b, 0x80, 0xb7, 0x61, 0x9c, 0xae, - 0x47, 0x14, 0xf0, 0x51, 0xac, 0xba, 0x8d, 0x4a, 0xf1, 0x1b, 0x61, 0x94, 0x0e, 0xd1, 0xa7, 0x1c, - 0xbf, 0xa7, 0x40, 0x4a, 0x67, 0xe5, 0x76, 0xb4, 0xea, 0xe1, 0xce, 0xfc, 0x38, 0x0a, 0x53, 0x94, - 0x8c, 0xbf, 0x2f, 0x28, 0x1d, 0x32, 0x9a, 0x55, 0xb6, 0x94, 0x92, 0x18, 0xfe, 0xcd, 0x97, 0xcf, - 0xd3, 0xd1, 0x9c, 0x08, 0xa6, 0x59, 0x65, 0x73, 0x49, 0xe6, 0x73, 0xe7, 0x9f, 0x59, 0xe5, 0xe0, - 0x91, 0xcc, 0x27, 0xa6, 0x1b, 0xc1, 0xc7, 0x8f, 0x20, 0xc9, 0x7c, 0x45, 0x11, 0x65, 0xb3, 0xca, - 0x61, 0x24, 0x99, 0xaf, 0x24, 0xe2, 0x6d, 0x56, 0xd9, 0x7a, 0x92, 0xf9, 0x6e, 0x88, 0xc8, 0x9b, - 0x55, 0x36, 0xa1, 0x64, 0xbe, 0x35, 0x11, 0x83, 0xb3, 0xca, 0x51, 0x25, 0x99, 0xef, 0x09, 0x11, - 0x8d, 0xb3, 0xca, 0xa1, 0x25, 0x99, 0x6f, 0x5d, 0xc4, 0xe5, 0x9c, 0x7a, 0x7c, 0x49, 0x66, 0xbc, - 0xe9, 0x46, 0xe8, 0x9c, 0x7a, 0x90, 0x49, 0xe6, 0xfc, 0x39, 0x37, 0x56, 0xe7, 0xd4, 0x23, 0x4d, - 0x32, 0xe7, 0x86, 0x1b, 0xb5, 0x73, 0xea, 0x56, 0x99, 0xcc, 0xb9, 0xe9, 0xc6, 0xef, 0x9c, 0xba, - 0x69, 0x26, 0x73, 0x6e, 0xb9, 0x91, 0x3c, 0xa7, 0x6e, 0x9f, 0xc9, 0x9c, 0xdb, 0xee, 0x1a, 0xfa, - 0x97, 0x95, 0xf0, 0xf3, 0x1c, 0x82, 0xca, 0x28, 0xe1, 0x07, 0x3e, 0xa1, 0x97, 0x51, 0x42, 0x0f, - 0x7c, 0xc2, 0x2e, 0xa3, 0x84, 0x1d, 0xf8, 0x84, 0x5c, 0x46, 0x09, 0x39, 0xf0, 0x09, 0xb7, 0x8c, - 0x12, 0x6e, 0xe0, 0x13, 0x6a, 0x19, 0x25, 0xd4, 0xc0, 0x27, 0xcc, 0x32, 0x4a, 0x98, 0x81, 0x4f, - 0x88, 0x65, 0x94, 0x10, 0x03, 0x9f, 0xf0, 0xca, 0x28, 0xe1, 0x05, 0x3e, 0xa1, 0x35, 0xa3, 0x86, - 0x16, 0xf8, 0x85, 0xd5, 0x8c, 0x1a, 0x56, 0xe0, 0x17, 0x52, 0x0f, 0xa8, 0x21, 0x35, 0x82, 0xb8, - 0x62, 0x78, 0xc8, 0x13, 0x4d, 0x33, 0x6a, 0x34, 0x81, 0x5f, 0x24, 0xcd, 0xa8, 0x91, 0x04, 0x7e, - 0x51, 0x34, 0xa3, 0x46, 0x11, 0xf8, 0x45, 0xd0, 0x4b, 0x6a, 0x04, 0xb9, 0x47, 0x7c, 0x32, 0xca, - 0x8e, 0x62, 0x50, 0x04, 0xe9, 0x21, 0x22, 0x48, 0x0f, 0x11, 0x41, 0x7a, 0x88, 0x08, 0xd2, 0x43, - 0x44, 0x90, 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, 0x20, 0x3d, 0x4c, 0x04, 0xe9, - 0xa1, 0x22, 0x48, 0xef, 0x17, 0x41, 0x33, 0xea, 0x81, 0x07, 0xf0, 0x2b, 0x48, 0x33, 0xea, 0xce, - 0x67, 0x70, 0x08, 0xe9, 0xa1, 0x42, 0x48, 0xef, 0x17, 0x42, 0x5f, 0x46, 0x8d, 0x94, 0x14, 0x42, - 0x6c, 0x7b, 0xe8, 0xb5, 0xaa, 0x40, 0x57, 0x42, 0x9c, 0xaf, 0xf0, 0x8b, 0xa9, 0x2b, 0x21, 0xf6, - 0xa8, 0x07, 0xc5, 0x59, 0x6f, 0x15, 0x2a, 0x85, 0xa8, 0x42, 0x37, 0x44, 0x0c, 0x5d, 0x09, 0x71, - 0xee, 0xa2, 0x37, 0xf6, 0xae, 0x0d, 0x2a, 0x02, 0x4f, 0x84, 0x2a, 0x02, 0xeb, 0xa1, 0x8a, 0xc0, - 0x4d, 0xd7, 0x83, 0xef, 0x8e, 0xc0, 0xa4, 0xeb, 0x41, 0xfa, 0x8e, 0xfc, 0x56, 0x4a, 0xc6, 0xb3, - 0x43, 0x65, 0xf0, 0x5d, 0x1b, 0x8f, 0x1b, 0xf1, 0xfe, 0xcd, 0x8e, 0xbc, 0x57, 0x95, 0x3d, 0xe9, - 0xfe, 0x8d, 0xc7, 0xe3, 0x6c, 0x2d, 0x74, 0x06, 0xf4, 0xf5, 0x9a, 0x43, 0xaa, 0x85, 0xdf, 0x65, - 0x0b, 0xa6, 0x5e, 0xaf, 0x39, 0x86, 0x09, 0x43, 0xe4, 0xba, 0x0e, 0x71, 0xef, 0xdd, 0x5c, 0x18, - 0xb9, 0x9e, 0x5c, 0xd8, 0xc9, 0xbc, 0xa4, 0xc1, 0x05, 0x29, 0x94, 0x5f, 0x9b, 0x1d, 0x83, 0xc7, - 0x42, 0xed, 0x18, 0x48, 0x09, 0xe2, 0xee, 0x1e, 0x3c, 0xd4, 0xbb, 0x51, 0xed, 0xcd, 0x12, 0x75, - 0x27, 0xe1, 0x97, 0x21, 0xe9, 0xde, 0x01, 0x79, 0x64, 0xbb, 0x1c, 0xbc, 0x98, 0xe9, 0x97, 0x9a, - 0x97, 0x95, 0x45, 0xb4, 0x81, 0x30, 0x91, 0xad, 0x99, 0x2c, 0x7a, 0xe2, 0x94, 0xbf, 0xf7, 0x12, - 0xb4, 0x16, 0x11, 0xc7, 0xad, 0xf9, 0x9d, 0x8f, 0xa3, 0xf6, 0xfc, 0x11, 0x18, 0xf5, 0x7e, 0xb5, - 0x45, 0x01, 0x8e, 0x70, 0x60, 0x36, 0xfa, 0x55, 0xcc, 0xfd, 0x87, 0x1a, 0x9c, 0xf1, 0xb2, 0xbf, - 0x15, 0xf9, 0x7e, 0xdd, 0xc6, 0x3d, 0xfd, 0x9b, 0x20, 0x6e, 0x31, 0xc7, 0xb1, 0xdf, 0xd7, 0x60, - 0x8f, 0x91, 0xbe, 0xec, 0x0b, 0xe4, 0x7f, 0x53, 0x40, 0x94, 0x45, 0x10, 0x7e, 0xd9, 0x95, 0xe9, - 0x07, 0x21, 0x46, 0xe5, 0xcb, 0x7a, 0x8d, 0x29, 0x7a, 0x7d, 0xd2, 0x47, 0x2f, 0x12, 0x47, 0xc6, - 0x4d, 0x49, 0x2f, 0xcf, 0xd3, 0xaa, 0x2f, 0xfb, 0x02, 0x0f, 0xbe, 0x7c, 0x1c, 0xf7, 0x7f, 0x24, - 0xa2, 0x82, 0x95, 0x9c, 0x83, 0x78, 0x49, 0xe5, 0xf1, 0xd7, 0xb3, 0x08, 0xd1, 0x2d, 0xfc, 0xb3, - 0x61, 0x93, 0xec, 0x67, 0x32, 0x99, 0x91, 0xd9, 0x4f, 0xb1, 0xce, 0x42, 0xbc, 0x70, 0x54, 0x6f, - 0xd4, 0xda, 0x96, 0xcd, 0xb6, 0xec, 0xd9, 0x0a, 0x3a, 0xc6, 0x98, 0xf1, 0x2a, 0xa3, 0xcd, 0x67, - 0x20, 0xe1, 0x09, 0x09, 0x23, 0x86, 0x1e, 0xff, 0x53, 0xa7, 0xf0, 0x9f, 0x7c, 0x4a, 0xc3, 0x7f, - 0x0a, 0xa9, 0xc8, 0xfc, 0x83, 0x30, 0xae, 0x2c, 0x90, 0x61, 0x4a, 0x31, 0x05, 0xf8, 0x4f, 0x29, - 0x95, 0x98, 0x8e, 0xbe, 0xe7, 0x8f, 0xcf, 0x9d, 0x9a, 0x7f, 0x0c, 0x8c, 0xde, 0xa5, 0x34, 0x63, - 0x08, 0x22, 0x39, 0x2c, 0xf2, 0x1e, 0x88, 0xe4, 0x91, 0xcc, 0xe9, 0xf1, 0xdf, 0xf8, 0xc8, 0x85, - 0x44, 0x9e, 0x7c, 0x33, 0x14, 0x71, 0xe7, 0xf3, 0x0c, 0xfc, 0x38, 0x9c, 0xf1, 0x5d, 0x8a, 0xc3, - 0xf8, 0x42, 0x81, 0xe2, 0x8b, 0xc5, 0x1e, 0x7c, 0xb1, 0x48, 0xf0, 0x5a, 0x96, 0x6f, 0x69, 0xe6, - 0x0c, 0x9f, 0x65, 0xac, 0x74, 0xcd, 0xb3, 0x85, 0x9a, 0xcb, 0x3e, 0xce, 0x78, 0xf3, 0xbe, 0xbc, - 0x56, 0xc0, 0x96, 0x68, 0x3e, 0x5b, 0x60, 0xf8, 0x82, 0x2f, 0xfe, 0x40, 0xd9, 0xb7, 0x93, 0x6b, - 0x10, 0x13, 0x52, 0x10, 0x0a, 0x17, 0x7d, 0x85, 0x1c, 0x79, 0x4e, 0x53, 0x17, 0x85, 0xc2, 0x25, - 0x5f, 0xde, 0x7a, 0xc0, 0xa9, 0xa2, 0x52, 0x76, 0x91, 0x4d, 0x23, 0xb9, 0x65, 0xe3, 0x0c, 0x8f, - 0x02, 0x29, 0xc7, 0x99, 0x81, 0xe8, 0x8c, 0x92, 0x5b, 0x46, 0x77, 0x48, 0x01, 0xf9, 0xbe, 0x80, - 0xfe, 0x56, 0xa2, 0x42, 0xf2, 0xcb, 0xd9, 0x27, 0x98, 0x90, 0x42, 0x5f, 0x21, 0x01, 0xa6, 0xa2, - 0x92, 0x0a, 0xcb, 0xf9, 0xbd, 0x3b, 0xdf, 0x38, 0x77, 0xea, 0xab, 0xe8, 0xf5, 0xaf, 0xe8, 0xf5, - 0xf5, 0x6f, 0x9c, 0xd3, 0xbe, 0x83, 0x5e, 0xdf, 0x43, 0xaf, 0x1f, 0xa2, 0xd7, 0x3b, 0xbe, 0x79, - 0x4e, 0x7b, 0x11, 0xbd, 0x3e, 0x87, 0x5e, 0x7f, 0x83, 0x5e, 0x2f, 0xa1, 0xd7, 0x9d, 0x6f, 0x22, - 0x7e, 0xf4, 0xf7, 0xeb, 0xe8, 0xf5, 0x1d, 0xf4, 0xfe, 0x7b, 0xe8, 0xef, 0x0f, 0xd1, 0xdf, 0x77, - 0x7c, 0xeb, 0xdc, 0xa9, 0x17, 0xd0, 0xeb, 0xc5, 0x6f, 0x9d, 0xd3, 0xfe, 0x3f, 0x00, 0x00, 0xff, - 0xff, 0x1e, 0xd1, 0x9e, 0xe4, 0x1c, 0x5f, 0x00, 0x00, + // 6505 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, + 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, + 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, + 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, + 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, + 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x90, 0x6c, 0x7e, 0x24, 0x65, + 0xf2, 0x2b, 0x45, 0xa5, 0x5c, 0xec, 0x9a, 0xaa, 0x90, 0xc4, 0x49, 0x20, 0xb8, 0x0a, 0xaa, 0xcc, + 0x8f, 0xd4, 0x7d, 0x75, 0xf7, 0xbd, 0xd3, 0xa3, 0x6e, 0x79, 0x6d, 0xe0, 0xcf, 0xee, 0xcc, 0x3d, + 0xe7, 0x3b, 0x7d, 0xee, 0x79, 0xdd, 0xd3, 0xf7, 0x5e, 0x0d, 0xbc, 0xba, 0x04, 0xd3, 0x3b, 0xb6, + 0xbd, 0xd3, 0x40, 0xa7, 0x5b, 0x6d, 0xdb, 0xb5, 0xaf, 0xef, 0x6d, 0x9f, 0xae, 0x21, 0xa7, 0xda, + 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x47, 0xc6, 0xf4, 0x11, 0xca, 0x31, 0xc7, 0x39, 0x32, 0xab, 0x30, + 0x7a, 0xb9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x03, 0xb9, 0xfa, 0x05, 0x48, 0x6e, 0xd7, 0x1b, 0x28, + 0xad, 0x4c, 0xab, 0x33, 0x03, 0x0b, 0x27, 0xe7, 0x24, 0xd0, 0x9c, 0x88, 0x58, 0xc7, 0xc3, 0x06, + 0x41, 0x64, 0xbe, 0x9b, 0x84, 0xb1, 0x10, 0xaa, 0xae, 0x43, 0xd2, 0x32, 0x9b, 0x58, 0xa2, 0x32, + 0xd3, 0x6f, 0x90, 0xcf, 0x7a, 0x1a, 0x8e, 0xb4, 0xcc, 0xea, 0x93, 0xe6, 0x0e, 0x4a, 0x27, 0xc8, + 0x30, 0xff, 0xaa, 0x4f, 0x02, 0xd4, 0x50, 0x0b, 0x59, 0x35, 0x64, 0x55, 0xf7, 0xd3, 0xea, 0xb4, + 0x3a, 0xd3, 0x6f, 0x04, 0x46, 0xf4, 0x77, 0xc0, 0x68, 0x6b, 0xef, 0x7a, 0xa3, 0x5e, 0xad, 0x04, + 0xd8, 0x60, 0x5a, 0x9d, 0xe9, 0x35, 0x34, 0x4a, 0x28, 0xfa, 0xcc, 0xf7, 0xc1, 0xc8, 0xd3, 0xc8, + 0x7c, 0x32, 0xc8, 0x3a, 0x40, 0x58, 0x87, 0xf1, 0x70, 0x80, 0xb1, 0x00, 0x83, 0x4d, 0xe4, 0x38, + 0xe6, 0x0e, 0xaa, 0xb8, 0xfb, 0x2d, 0x94, 0x4e, 0x92, 0xd9, 0x4f, 0x77, 0xcc, 0x5e, 0x9e, 0xf9, + 0x00, 0x43, 0x6d, 0xee, 0xb7, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x35, 0xa9, 0x84, 0xde, 0x2e, + 0xf6, 0x2b, 0x59, 0x7b, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x23, 0x0e, 0x6a, 0x3f, 0x55, + 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x5f, 0x87, 0x80, 0x0d, 0x4a, 0x97, 0x65, 0x70, 0x9c, 0x5e, + 0x80, 0x7e, 0xf4, 0x8c, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x23, 0x44, 0xc8, 0xbd, 0x21, 0x5e, + 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x88, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, 0xa4, + 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, 0x3c, 0x06, 0x67, 0xd6, 0x97, + 0x41, 0x73, 0xec, 0xbd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0xb6, 0x9d, 0xee, + 0x27, 0x02, 0xa6, 0x3a, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x5b, 0xdb, 0xb6, 0x31, 0xec, + 0x08, 0xdf, 0xf5, 0x71, 0xe8, 0x73, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, 0x3d, 0x48, 0x22, 0x84, 0x7d, + 0xcb, 0xfc, 0xa8, 0x17, 0x46, 0xe2, 0x84, 0xd8, 0x25, 0xe8, 0xdd, 0xc6, 0xb3, 0x4c, 0x27, 0x0e, + 0x63, 0x03, 0x8a, 0x11, 0x8d, 0xd8, 0xf7, 0x26, 0x8d, 0x98, 0x83, 0x01, 0x0b, 0x39, 0x2e, 0xaa, + 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x67, 0x48, 0x25, 0xdf, 0x54, 0x48, 0x3d, 0x0e, + 0x23, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x1d, 0xa5, 0xc9, 0x5c, 0x89, 0xe3, + 0x0c, 0x0c, 0x33, 0x86, 0x91, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7, 0x2b, 0x35, 0x54, + 0x6d, 0xa4, 0x53, 0x5d, 0xac, 0xb4, 0x86, 0x59, 0x3a, 0xac, 0x64, 0xd3, 0xd1, 0x6a, 0x43, 0xbf, + 0xe8, 0x87, 0xda, 0x91, 0x2e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x23, 0xda, 0xb6, 0x60, 0xb8, 0x8d, + 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0x59, 0x3f, 0x51, 0x62, 0x2e, 0x72, 0x66, 0x06, 0x83, 0xd1, 0x89, + 0x0d, 0xb5, 0x83, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52, 0x85, 0x06, 0xf9, + 0x60, 0xd9, 0x6c, 0xa2, 0x89, 0x0b, 0x30, 0x2c, 0x9a, 0x47, 0x3f, 0x0a, 0xbd, 0x8e, 0x6b, 0xb6, + 0x5d, 0x12, 0x85, 0xbd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0xaf, 0x81, + 0x3f, 0x4e, 0x9c, 0x87, 0x21, 0xe1, 0xf1, 0x71, 0x81, 0x99, 0x8f, 0xf6, 0xc1, 0xd1, 0xb0, 0x98, + 0x0b, 0x0d, 0xff, 0x71, 0xe8, 0xb3, 0xf6, 0x9a, 0xd7, 0x51, 0x3b, 0xad, 0x12, 0x09, 0xec, 0x9b, + 0x9e, 0x83, 0xde, 0x86, 0x79, 0x1d, 0x35, 0xd2, 0xc9, 0x69, 0x65, 0x66, 0x78, 0xe1, 0x1d, 0xb1, + 0xa2, 0x7a, 0x6e, 0x05, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x86, 0x24, 0x2b, 0x71, 0x58, 0xc2, 0x6c, + 0x3c, 0x09, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0xef, 0x82, 0x7e, 0xfc, 0x3f, 0xb5, 0x6d, 0x1f, 0xd1, + 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x09, 0x48, 0x91, 0x30, 0xab, 0x21, 0xbe, 0x34, 0x78, 0xdf, + 0xb1, 0x63, 0x6a, 0x68, 0xdb, 0xdc, 0x6b, 0xb8, 0x95, 0xa7, 0xcc, 0xc6, 0x1e, 0x22, 0x01, 0xd3, + 0x6f, 0x0c, 0xb2, 0xc1, 0xf7, 0xe0, 0x31, 0x7d, 0x0a, 0x06, 0x68, 0x54, 0xd6, 0xad, 0x1a, 0x7a, + 0x86, 0x54, 0x9f, 0x5e, 0x83, 0x06, 0xea, 0x32, 0x1e, 0xc1, 0x8f, 0x7f, 0xc2, 0xb1, 0x2d, 0xee, + 0x5a, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0x7c, 0x77, 0x87, 0x4f, 0x4f, 0x8e, 0xc5, + 0xcc, 0x57, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x02, 0x03, 0x9b, 0xd7, 0xd6, 0x4b, 0x95, 0xe2, 0xda, + 0x56, 0x7e, 0xa5, 0xa4, 0x29, 0xfa, 0x30, 0x00, 0x19, 0xb8, 0xbc, 0xb2, 0x96, 0xdb, 0xd4, 0x12, + 0xde, 0xf7, 0xe5, 0xf2, 0xe6, 0xb9, 0x45, 0x4d, 0xf5, 0x00, 0x5b, 0x74, 0x20, 0x19, 0x64, 0x38, + 0xbb, 0xa0, 0xf5, 0xea, 0x1a, 0x0c, 0x52, 0x01, 0xcb, 0x8f, 0x97, 0x8a, 0xe7, 0x16, 0xb5, 0x3e, + 0x71, 0xe4, 0xec, 0x82, 0x76, 0x44, 0x1f, 0x82, 0x7e, 0x32, 0x92, 0x5f, 0x5b, 0x5b, 0xd1, 0x52, + 0x9e, 0xcc, 0x8d, 0x4d, 0x63, 0xb9, 0x7c, 0x45, 0xeb, 0xf7, 0x64, 0x5e, 0x31, 0xd6, 0xb6, 0xd6, + 0x35, 0xf0, 0x24, 0xac, 0x96, 0x36, 0x36, 0x72, 0x57, 0x4a, 0xda, 0x80, 0xc7, 0x91, 0xbf, 0xb6, + 0x59, 0xda, 0xd0, 0x06, 0x05, 0xb5, 0xce, 0x2e, 0x68, 0x43, 0xde, 0x23, 0x4a, 0xe5, 0xad, 0x55, + 0x6d, 0x58, 0x1f, 0x85, 0x21, 0xfa, 0x08, 0xae, 0xc4, 0x88, 0x34, 0x74, 0x6e, 0x51, 0xd3, 0x7c, + 0x45, 0xa8, 0x94, 0x51, 0x61, 0xe0, 0xdc, 0xa2, 0xa6, 0x67, 0x0a, 0xd0, 0x4b, 0xa2, 0x4b, 0xd7, + 0x61, 0x78, 0x25, 0x97, 0x2f, 0xad, 0x54, 0xd6, 0xd6, 0x37, 0x97, 0xd7, 0xca, 0xb9, 0x15, 0x4d, + 0xf1, 0xc7, 0x8c, 0xd2, 0xbb, 0xb7, 0x96, 0x8d, 0x52, 0x51, 0x4b, 0x04, 0xc7, 0xd6, 0x4b, 0xb9, + 0xcd, 0x52, 0x51, 0x53, 0x33, 0x55, 0x38, 0x1a, 0x56, 0x67, 0x42, 0x33, 0x23, 0xe0, 0xe2, 0x44, + 0x17, 0x17, 0x13, 0x59, 0x1d, 0x2e, 0xfe, 0x8c, 0x02, 0x63, 0x21, 0xb5, 0x36, 0xf4, 0x21, 0x8f, + 0x40, 0x2f, 0x0d, 0x51, 0xba, 0xfa, 0xdc, 0x1f, 0x5a, 0xb4, 0x49, 0xc0, 0x76, 0xac, 0x40, 0x04, + 0x17, 0x5c, 0x81, 0xd5, 0x2e, 0x2b, 0x30, 0x16, 0xd1, 0xa1, 0xe4, 0x07, 0x14, 0x48, 0x77, 0x93, + 0x1d, 0x51, 0x28, 0x12, 0x42, 0xa1, 0xb8, 0x24, 0x2b, 0x70, 0xa2, 0xfb, 0x1c, 0x3a, 0xb4, 0xf8, + 0x9c, 0x02, 0xe3, 0xe1, 0x8d, 0x4a, 0xa8, 0x0e, 0x0f, 0x43, 0x5f, 0x13, 0xb9, 0xbb, 0x36, 0x5f, + 0xac, 0x4f, 0x85, 0x2c, 0x01, 0x98, 0x2c, 0xdb, 0x8a, 0xa1, 0x82, 0x6b, 0x88, 0xda, 0xad, 0xdb, + 0xa0, 0xda, 0x74, 0x68, 0xfa, 0xe1, 0x04, 0xdc, 0x11, 0x2a, 0x3c, 0x54, 0xd1, 0xbb, 0x01, 0xea, + 0x56, 0x6b, 0xcf, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0xfd, 0x64, 0x84, 0xe4, 0x3e, 0xae, 0x3d, 0x7b, + 0xae, 0x47, 0x57, 0x09, 0x1d, 0xe8, 0x10, 0x61, 0xb8, 0xe0, 0x2b, 0x9a, 0x24, 0x8a, 0x4e, 0x76, + 0x99, 0x69, 0xc7, 0x5a, 0x37, 0x0f, 0x5a, 0xb5, 0x51, 0x47, 0x96, 0x5b, 0x71, 0xdc, 0x36, 0x32, + 0x9b, 0x75, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xb6, 0x77, 0xdb, 0x6c, 0x38, 0xc8, 0x18, 0xa1, 0xe4, + 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x03, 0x88, 0x3e, 0x01, 0x41, 0xc9, 0x1e, 0x22, 0xf3, + 0xc5, 0x23, 0x30, 0x10, 0x68, 0xeb, 0xf4, 0x13, 0x30, 0xf8, 0x84, 0xf9, 0x94, 0x59, 0xe1, 0xad, + 0x3a, 0xb5, 0xc4, 0x00, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, 0x25, 0x2c, 0xf6, 0x9e, 0x8b, + 0xda, 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, 0x31, 0x6d, 0x0d, 0x93, 0x0a, + 0x9c, 0xa2, 0x2f, 0xc1, 0x18, 0x41, 0x34, 0xf7, 0x1a, 0x6e, 0xbd, 0xd5, 0x40, 0x15, 0xfc, 0xf2, + 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8a, 0x39, 0x56, 0x19, 0x03, 0xd6, 0xc8, 0xd1, 0x8b, 0x70, + 0x37, 0x81, 0xed, 0x20, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0xf6, 0xcc, 0x86, 0x53, 0x31, + 0xad, 0x5a, 0x65, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x7c, 0x22, 0xad, 0x18, 0x77, 0x62, + 0xc6, 0x2b, 0x8c, 0xaf, 0x44, 0xd8, 0x72, 0x56, 0xed, 0x51, 0xd3, 0xd9, 0xd5, 0xb3, 0x30, 0x4e, + 0xa4, 0x38, 0x6e, 0xbb, 0x6e, 0xed, 0x54, 0xaa, 0xbb, 0xa8, 0xfa, 0x64, 0x65, 0xcf, 0xdd, 0xbe, + 0x90, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x60, 0x96, 0x2d, 0x77, 0xfb, 0x82, + 0xbe, 0x01, 0x83, 0xd8, 0x19, 0xcd, 0xfa, 0xb3, 0xa8, 0xb2, 0x6d, 0xb7, 0xc9, 0xca, 0x32, 0x1c, + 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x43, 0xd9, 0xde, 0x8d, 0xf5, 0x52, + 0xa9, 0x68, 0x0c, 0x70, 0x29, 0x97, 0xed, 0x36, 0x0e, 0xa8, 0x1d, 0xdb, 0x33, 0xf0, 0x00, 0x0d, + 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0xc6, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0x5a, 0x7c, + 0x27, 0xad, 0x09, 0xc6, 0xaa, 0x56, 0xaf, 0x50, 0x06, 0x16, 0xe3, 0x8e, 0x7e, 0x11, 0xee, 0xf0, + 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xcc, 0x52, 0x86, 0x2e, 0xc1, 0x58, 0x6b, 0xbf, 0x13, 0xa8, 0x0b, + 0x4f, 0x6c, 0xed, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x1b, 0x55, 0x4d, 0x17, 0xd5, 0xd2, 0xc7, + 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x1a, 0xb4, 0x6a, 0xb5, 0x82, 0x2c, 0xf3, 0x7a, 0x03, 0x55, 0xcc, + 0x36, 0xb2, 0x4c, 0x27, 0x3d, 0x15, 0x64, 0x1e, 0xae, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, + 0x16, 0x46, 0xed, 0xeb, 0x4f, 0x54, 0x69, 0x64, 0x55, 0x5a, 0x6d, 0xb4, 0x5d, 0x7f, 0x26, 0x7d, + 0x92, 0x98, 0x69, 0x04, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, 0x7e, 0xd0, 0xaa, 0xce, 0xae, + 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x69, 0x99, 0x55, 0x94, 0xbe, 0x97, 0xb2, 0xd2, 0xf1, 0x32, 0x1f, + 0xc6, 0x91, 0xed, 0x3c, 0x5d, 0xdf, 0x76, 0xb9, 0xc4, 0xfb, 0x68, 0x64, 0x93, 0x31, 0x26, 0xed, + 0x71, 0x38, 0xba, 0x67, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, 0x9a, 0x89, 0xe9, + 0x7f, 0x3f, 0xd2, 0xa5, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, 0xc6, 0xf6, 0x3a, 0x07, 0x33, + 0x59, 0x18, 0x0c, 0xc6, 0x85, 0xde, 0x0f, 0x34, 0x32, 0x34, 0x05, 0xaf, 0xb1, 0x85, 0xb5, 0x22, + 0x5e, 0x1d, 0xdf, 0x5b, 0xd2, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, 0x2c, 0x55, 0x8c, 0xad, 0xf2, + 0xe6, 0xf2, 0x6a, 0x49, 0x53, 0x67, 0xfb, 0x53, 0xdf, 0x3b, 0xa2, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, + 0x25, 0x32, 0xdf, 0x4c, 0xc0, 0xb0, 0xd8, 0x19, 0xeb, 0xef, 0x84, 0x63, 0xfc, 0x35, 0xd6, 0x41, + 0x6e, 0xe5, 0xe9, 0x7a, 0x9b, 0x84, 0x6a, 0xd3, 0xa4, 0xbd, 0xa5, 0x67, 0xe5, 0xa3, 0x8c, 0x6b, + 0x03, 0xb9, 0x8f, 0xd5, 0xdb, 0x38, 0x10, 0x9b, 0xa6, 0xab, 0xaf, 0xc0, 0x94, 0x65, 0x57, 0x1c, + 0xd7, 0xb4, 0x6a, 0x66, 0xbb, 0x56, 0xf1, 0x37, 0x10, 0x2a, 0x66, 0xb5, 0x8a, 0x1c, 0xc7, 0xa6, + 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, 0xe6, 0x18, 0xab, 0x14, 0x11, + 0x6a, 0xb7, 0x88, 0xb8, 0x0b, 0xfa, 0x9b, 0x66, 0xab, 0x82, 0x2c, 0xb7, 0xbd, 0x4f, 0xfa, 0xb9, + 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x12, 0xfe, 0xfe, 0xf6, 0xf9, 0x20, 0x68, 0xc7, 0x7f, 0x53, 0x61, + 0x30, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x4a, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0x9e, 0x03, 0x3b, 0xc0, + 0xb9, 0x02, 0x2e, 0xec, 0xd9, 0x3e, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, 0xd3, 0x88, + 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0x40, 0xdf, 0x13, 0x0e, 0x91, 0xdd, 0x47, 0x64, 0x9f, + 0x3c, 0x58, 0xf6, 0xd5, 0x0d, 0x22, 0xbc, 0xff, 0xea, 0x46, 0xa5, 0xbc, 0x66, 0xac, 0xe6, 0x56, + 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xc3, 0x7c, 0x76, 0x5f, 0x5c, 0x02, 0xc8, 0x50, 0x5c, 0xc3, + 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, 0xdb, 0x18, 0xfa, 0xa7, 0xa1, + 0x97, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0x7a, 0xf4, 0x14, 0x24, 0x0b, 0x6b, 0x06, 0x0e, 0x7f, + 0x0d, 0x06, 0xe9, 0x68, 0x65, 0x7d, 0xb9, 0x54, 0x28, 0x69, 0x89, 0xcc, 0x12, 0xf4, 0x51, 0x23, + 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb0, 0xaf, 0x4c, 0x86, 0xc2, 0xa9, 0x5b, 0xab, 0xf9, 0x92, + 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x30, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xeb, 0x0a, 0x0c, + 0x04, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xfd, 0x74, 0xc5, 0x6c, 0xd4, 0x4d, 0x87, 0x05, + 0x05, 0x90, 0xa1, 0x1c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8a, 0xf2, 0xcf, 0x2b, 0xa0, 0xc9, 0xad, + 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x13, 0x0a, 0x0c, 0x8b, 0xfd, 0x9c, 0xa4, 0xde, 0x89, + 0x9f, 0xa9, 0x7a, 0xdf, 0x49, 0xc0, 0x90, 0xd0, 0xc5, 0xc5, 0xd5, 0xee, 0x7d, 0x30, 0x5a, 0xaf, + 0xa1, 0x66, 0xcb, 0x76, 0x91, 0x55, 0xdd, 0xaf, 0x34, 0xd0, 0x53, 0xa8, 0x91, 0xce, 0x90, 0x42, + 0x71, 0xfa, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, 0x76, 0x6c, 0xb9, 0x58, 0x5a, + 0x5d, 0x5f, 0xdb, 0x2c, 0x95, 0x0b, 0xd7, 0x2a, 0x5b, 0xe5, 0x77, 0x95, 0xd7, 0x1e, 0x2b, 0x1b, + 0x5a, 0x5d, 0x62, 0x7b, 0x1b, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, 0xfd, 0x18, 0x84, 0xa9, 0xa5, + 0xf5, 0xe8, 0x63, 0x30, 0x52, 0x5e, 0xab, 0x6c, 0x2c, 0x17, 0x4b, 0x95, 0xd2, 0xe5, 0xcb, 0xa5, + 0xc2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, 0xb8, 0x0a, 0x63, 0x21, 0x9a, + 0xe8, 0x39, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, 0x87, 0xbb, 0x82, 0x75, 0xb3, + 0xed, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xfa, 0x76, 0x1d, 0xb5, 0xd9, 0x3e, 0x03, + 0x6d, 0xe4, 0x47, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0xa7, + 0x50, 0xa5, 0x6e, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0x53, 0x96, 0x2d, 0xd7, 0xe3, + 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, 0x78, 0xdc, 0x27, 0x60, 0xb0, + 0x66, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x06, 0xe8, 0x98, 0xc7, 0xc2, 0xfa, + 0x58, 0x7f, 0x37, 0x64, 0xd0, 0x18, 0xa0, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x31, 0x77, 0x76, 0xda, + 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x61, 0x6f, 0x98, 0x30, 0x4e, 0x5c, 0x85, 0x14, 0xb7, 0x03, + 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0xe9, 0x37, 0x52, 0x16, 0x27, 0x9e, + 0x80, 0xc1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0xd3, 0x89, 0x99, 0x94, 0x31, 0x50, 0x77, 0xbc, + 0xdd, 0xb0, 0xcc, 0xe7, 0x12, 0x30, 0x2c, 0x6e, 0xee, 0xea, 0x45, 0x48, 0x35, 0xec, 0xaa, 0x49, + 0x42, 0x8b, 0x9e, 0x2c, 0xcc, 0x44, 0xec, 0x07, 0xcf, 0xad, 0x30, 0x7e, 0xc3, 0x43, 0x4e, 0xfc, + 0xb3, 0x02, 0x29, 0x3e, 0xac, 0x8f, 0x43, 0xb2, 0x65, 0xba, 0xbb, 0x44, 0x5c, 0x6f, 0x3e, 0xa1, + 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d, 0x96, 0x69, 0x91, 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, + 0x03, 0x99, 0x35, 0xd2, 0xf6, 0xdb, 0xcd, 0x26, 0xb2, 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, + 0xb0, 0xfe, 0x0e, 0x18, 0x75, 0xdb, 0x66, 0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, + 0x73, 0x16, 0xee, 0xe4, 0x72, 0x6b, 0xc8, 0x35, 0xab, 0xbb, 0xa8, 0xe6, 0x83, 0xfa, 0xc8, 0xce, + 0xe1, 0x31, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x7c, 0x4b, 0x81, 0x51, 0xfe, 0xa2, 0x52, 0xf3, + 0x8c, 0xb5, 0x0a, 0x60, 0x5a, 0x96, 0xed, 0x06, 0xcd, 0xd5, 0x19, 0xca, 0x1d, 0xb8, 0xb9, 0x9c, + 0x07, 0x32, 0x02, 0x02, 0x26, 0x9a, 0x00, 0x3e, 0xa5, 0xab, 0xd9, 0xa6, 0x60, 0x80, 0xed, 0xdc, + 0x93, 0xe3, 0x1f, 0xfa, 0x6a, 0x0b, 0x74, 0x08, 0xbf, 0xd1, 0xe8, 0x47, 0xa1, 0xf7, 0x3a, 0xda, + 0xa9, 0x5b, 0x6c, 0x3f, 0x91, 0x7e, 0xe1, 0xbb, 0x94, 0x49, 0x6f, 0x97, 0x32, 0xff, 0x38, 0x8c, + 0x55, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93, 0x5e, 0xaf, 0x9d, 0x47, 0x95, 0xf7, 0x82, 0xdf, 0x62, + 0x7e, 0x26, 0xa1, 0x5e, 0x59, 0xcf, 0x7f, 0x21, 0x31, 0x71, 0x85, 0xe2, 0xd6, 0xf9, 0x34, 0x0d, + 0xb4, 0xdd, 0x40, 0x55, 0xac, 0x3a, 0xfc, 0xf0, 0x14, 0x3c, 0xb8, 0x53, 0x77, 0x77, 0xf7, 0xae, + 0xcf, 0x55, 0xed, 0xe6, 0xe9, 0x1d, 0x7b, 0xc7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, 0x85, 0x7c, + 0x62, 0x47, 0x5e, 0xfd, 0xde, 0xe8, 0x44, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x63, 0x8c, 0xb9, 0x42, + 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xcb, 0xdf, 0x25, 0x6b, 0xb5, 0x31, + 0xca, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, 0xda, 0x11, + 0x12, 0xbf, 0xc9, 0x24, 0x8e, 0x05, 0x24, 0x6e, 0x30, 0x68, 0xb6, 0x00, 0x43, 0x87, 0x91, 0xf5, + 0xf7, 0x4c, 0xd6, 0x20, 0x0a, 0x0a, 0xb9, 0x02, 0x23, 0x44, 0x48, 0x75, 0xcf, 0x71, 0xed, 0x26, + 0x29, 0x7a, 0x07, 0x8b, 0xf9, 0x87, 0xef, 0xd2, 0x44, 0x19, 0xc6, 0xb0, 0x82, 0x87, 0xca, 0x66, + 0x81, 0x1c, 0x33, 0xd4, 0x50, 0xb5, 0x11, 0x21, 0xe1, 0x06, 0x53, 0xc4, 0xe3, 0xcf, 0xbe, 0x07, + 0x8e, 0xe2, 0xcf, 0xa4, 0x26, 0x05, 0x35, 0x89, 0xde, 0x65, 0x4a, 0x7f, 0xeb, 0x03, 0x34, 0x17, + 0xc7, 0x3c, 0x01, 0x01, 0x9d, 0x02, 0x5e, 0xdc, 0x41, 0xae, 0x8b, 0xda, 0x4e, 0xc5, 0x6c, 0x84, + 0xa9, 0x17, 0x78, 0x4d, 0x4f, 0x7f, 0xec, 0x35, 0xd1, 0x8b, 0x57, 0x28, 0x32, 0xd7, 0x68, 0x64, + 0xb7, 0xe0, 0x58, 0x48, 0x54, 0xc4, 0x90, 0xf9, 0x71, 0x26, 0xf3, 0x68, 0x47, 0x64, 0x60, 0xb1, + 0xeb, 0xc0, 0xc7, 0x3d, 0x5f, 0xc6, 0x90, 0xf9, 0x47, 0x4c, 0xa6, 0xce, 0xb0, 0xdc, 0xa5, 0x58, + 0xe2, 0x55, 0x18, 0x7d, 0x0a, 0xb5, 0xaf, 0xdb, 0x0e, 0xdb, 0x1a, 0x89, 0x21, 0xee, 0x13, 0x4c, + 0xdc, 0x08, 0x03, 0x92, 0xbd, 0x12, 0x2c, 0xeb, 0x22, 0xa4, 0xb6, 0xcd, 0x2a, 0x8a, 0x21, 0xe2, + 0x93, 0x4c, 0xc4, 0x11, 0xcc, 0x8f, 0xa1, 0x39, 0x18, 0xdc, 0xb1, 0xd9, 0xb2, 0x14, 0x0d, 0x7f, + 0x9e, 0xc1, 0x07, 0x38, 0x86, 0x89, 0x68, 0xd9, 0xad, 0xbd, 0x06, 0x5e, 0xb3, 0xa2, 0x45, 0x7c, + 0x8a, 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x10, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x02, 0xf6, 0x7c, 0x04, + 0x06, 0x6c, 0xab, 0xb1, 0x6f, 0x5b, 0x71, 0x94, 0xf8, 0x34, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x5c, + 0x82, 0xfe, 0xb8, 0x8e, 0xf8, 0xec, 0x6b, 0x3c, 0x3d, 0xb8, 0x07, 0xae, 0xc0, 0x08, 0x2f, 0x50, + 0x75, 0xdb, 0x8a, 0x21, 0xe2, 0x4f, 0x98, 0x88, 0xe1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, + 0x83, 0xe2, 0x08, 0xf9, 0x1c, 0x9f, 0x06, 0x83, 0x30, 0x53, 0x5e, 0x47, 0x56, 0x75, 0x37, 0x9e, + 0x84, 0x17, 0xb9, 0x29, 0x39, 0x06, 0x8b, 0x28, 0xc0, 0x50, 0xd3, 0x6c, 0x3b, 0xbb, 0x66, 0x23, + 0x96, 0x3b, 0x3e, 0xcf, 0x64, 0x0c, 0x7a, 0x20, 0x66, 0x91, 0x3d, 0xeb, 0x30, 0x62, 0xbe, 0xc0, + 0x2d, 0x12, 0x80, 0xb1, 0xd4, 0x73, 0x5c, 0xb2, 0x01, 0x75, 0x18, 0x69, 0x5f, 0xe4, 0xa9, 0x47, + 0xb1, 0xab, 0x41, 0x89, 0x97, 0xa0, 0xdf, 0xa9, 0x3f, 0x1b, 0x4b, 0xcc, 0x9f, 0x72, 0x4f, 0x13, + 0x00, 0x06, 0x5f, 0x83, 0x3b, 0x43, 0x97, 0x89, 0x18, 0xc2, 0xfe, 0x8c, 0x09, 0x1b, 0x0f, 0x59, + 0x2a, 0x58, 0x49, 0x38, 0xac, 0xc8, 0x3f, 0xe7, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf1, 0x8b, 0x82, + 0x63, 0x6e, 0x1f, 0xce, 0x6a, 0x7f, 0xc1, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x61, 0x9c, 0x49, + 0x3c, 0x9c, 0x5f, 0xbf, 0xc4, 0x0b, 0x2b, 0x45, 0x6f, 0x89, 0xde, 0xfd, 0x05, 0x98, 0xf0, 0xcc, + 0xc9, 0x3b, 0x52, 0xa7, 0xd2, 0x34, 0x5b, 0x31, 0x24, 0x7f, 0x99, 0x49, 0xe6, 0x15, 0xdf, 0x6b, + 0x69, 0x9d, 0x55, 0xb3, 0x85, 0x85, 0x3f, 0x0e, 0x69, 0x2e, 0x7c, 0xcf, 0x6a, 0xa3, 0xaa, 0xbd, + 0x63, 0xd5, 0x9f, 0x45, 0xb5, 0x18, 0xa2, 0xff, 0x52, 0x72, 0xd5, 0x56, 0x00, 0x8e, 0x25, 0x2f, + 0x83, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x7f, 0xc5, 0x3d, 0xe5, + 0xe1, 0x96, 0x09, 0x2c, 0x5b, 0x82, 0x61, 0xf2, 0x35, 0x6e, 0x48, 0x7e, 0x85, 0x09, 0x1a, 0xf2, + 0x51, 0xac, 0x70, 0x54, 0xed, 0x66, 0xcb, 0x6c, 0xc7, 0xa9, 0x7f, 0x7f, 0xcd, 0x0b, 0x07, 0x83, + 0xb0, 0xc2, 0xe1, 0xee, 0xb7, 0x10, 0x5e, 0xed, 0x63, 0x48, 0xf8, 0x2a, 0x2f, 0x1c, 0x1c, 0xc3, + 0x44, 0xf0, 0x86, 0x21, 0x86, 0x88, 0xbf, 0xe1, 0x22, 0x38, 0x06, 0x8b, 0x78, 0xb7, 0xbf, 0xd0, + 0xb6, 0xd1, 0x4e, 0xdd, 0x71, 0xdb, 0xb4, 0x0f, 0x3e, 0x58, 0xd4, 0xd7, 0x5e, 0x13, 0x9b, 0x30, + 0x23, 0x00, 0xcd, 0x5e, 0x85, 0x11, 0xa9, 0xc5, 0xd0, 0xa3, 0xee, 0x2c, 0xa4, 0x7f, 0xf9, 0x75, + 0x56, 0x8c, 0xc4, 0x0e, 0x23, 0xbb, 0x82, 0xfd, 0x2e, 0xf6, 0x01, 0xd1, 0xc2, 0x3e, 0xf0, 0xba, + 0xe7, 0x7a, 0xa1, 0x0d, 0xc8, 0x5e, 0x86, 0x21, 0xa1, 0x07, 0x88, 0x16, 0xf5, 0x2b, 0x4c, 0xd4, + 0x60, 0xb0, 0x05, 0xc8, 0x2e, 0x41, 0x12, 0xaf, 0xe7, 0xd1, 0xf0, 0x5f, 0x65, 0x70, 0xc2, 0x9e, + 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x35, 0x3c, + 0x1a, 0xfe, 0x6b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x46, 0x92, 0xd5, 0x61, + 0x6e, 0xbb, 0x4b, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x0f, 0xb3, 0x87, 0x73, 0x44, 0xf6, 0x3c, + 0xf4, 0xc6, 0x34, 0xf8, 0x6f, 0x32, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, 0x60, 0x47, 0xc3, + 0x7f, 0x8b, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x36, 0x57, 0x9d, 0x21, + 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x1d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, 0xfd, 0x5e, + 0xfd, 0x8d, 0xc6, 0xff, 0x2e, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, 0xf1, 0x7b, + 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x11, 0x9e, 0x46, 0xd2, 0x92, + 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe7, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0x79, 0x91, + 0x8c, 0x96, 0xf1, 0x87, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xae, 0x83, 0xde, 0xb9, 0x40, 0x46, 0xcb, + 0xfb, 0x28, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, 0x31, 0x5a, 0xea, + 0xc7, 0x5e, 0x97, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xd3, 0xaf, 0xb2, 0xc1, 0x85, 0x31, 0x5a, + 0xec, 0xc7, 0x5f, 0x17, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, 0x5a, 0xd6, + 0x27, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, + 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x41, 0xca, 0xda, + 0x6b, 0x34, 0x70, 0x6c, 0xe9, 0x07, 0x5f, 0x23, 0x4a, 0xff, 0xc7, 0x1b, 0x0c, 0xcc, 0x01, 0xd9, + 0x25, 0xe8, 0x45, 0xcd, 0xeb, 0xa8, 0x16, 0x85, 0xfc, 0xcf, 0x37, 0x78, 0x3d, 0xc1, 0xdc, 0xd9, + 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xd7, 0x1b, 0xec, 0x86, 0x82, 0x0f, + 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x07, 0x0b, 0x78, 0x4d, 0x14, 0x40, 0x5e, 0xc0, 0x2f, 0xc2, 0x91, + 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0x9d, 0x28, 0xf4, 0x7f, 0x33, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, + 0x6d, 0xe4, 0x9a, 0x3b, 0x4e, 0x14, 0xf6, 0x7f, 0x18, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, + 0x38, 0xf3, 0xfe, 0x5f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0xda, 0x8f, 0xc2, 0x7e, + 0x9f, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, 0x80, 0x7f, 0xc0, + 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xc7, 0x3c, 0xcd, 0xf9, + 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x8f, 0x75, 0x34, 0x11, 0xf0, 0x1f, 0xbe, 0xe1, 0xbd, + 0xe4, 0x7a, 0x98, 0xfc, 0x89, 0xf0, 0xcd, 0x3a, 0xb8, 0x62, 0x5f, 0xb1, 0xe9, 0x36, 0x1d, 0xfc, + 0x53, 0x03, 0xa6, 0xab, 0x76, 0xf3, 0xba, 0xed, 0x9c, 0x0e, 0x94, 0xa1, 0xd3, 0xee, 0x2e, 0xc2, + 0x2b, 0x08, 0xdb, 0x68, 0x4b, 0xe2, 0xcf, 0x13, 0x87, 0xdb, 0x9d, 0x23, 0x07, 0xaf, 0xe5, 0x3a, + 0x56, 0xb0, 0x4c, 0xf6, 0xbe, 0xf5, 0xe3, 0xd0, 0x47, 0x54, 0x3e, 0x43, 0xce, 0x97, 0x94, 0x7c, + 0xf2, 0xc6, 0x2b, 0x53, 0x3d, 0x06, 0x1b, 0xf3, 0xa8, 0x0b, 0x64, 0x73, 0x32, 0x21, 0x50, 0x17, + 0x3c, 0xea, 0x59, 0xba, 0x3f, 0x29, 0x50, 0xcf, 0x7a, 0xd4, 0x45, 0xb2, 0x53, 0xa9, 0x0a, 0xd4, + 0x45, 0x8f, 0xba, 0x44, 0x76, 0xe3, 0x87, 0x04, 0xea, 0x92, 0x47, 0x3d, 0x47, 0xf6, 0xe0, 0x93, + 0x02, 0xf5, 0x9c, 0x47, 0x3d, 0x4f, 0xb6, 0xdf, 0x47, 0x05, 0xea, 0x79, 0x8f, 0x7a, 0x81, 0x6c, + 0xbb, 0xeb, 0x02, 0xf5, 0x82, 0x47, 0xbd, 0x48, 0xee, 0x92, 0x1c, 0x11, 0xa8, 0x17, 0xf5, 0x49, + 0x38, 0x42, 0x67, 0x3e, 0x4f, 0xce, 0x68, 0x47, 0x18, 0x99, 0x0f, 0xfa, 0xf4, 0x33, 0xe4, 0xde, + 0x48, 0x9f, 0x48, 0x3f, 0xe3, 0xd3, 0x17, 0xc8, 0x0d, 0x6a, 0x4d, 0xa4, 0x2f, 0xf8, 0xf4, 0xb3, + 0xe9, 0x21, 0x72, 0x77, 0x46, 0xa0, 0x9f, 0xf5, 0xe9, 0x8b, 0xe9, 0x61, 0x1c, 0xb5, 0x22, 0x7d, + 0xd1, 0xa7, 0x2f, 0xa5, 0x47, 0xa6, 0x95, 0x99, 0x41, 0x91, 0xbe, 0x94, 0x79, 0x3f, 0x71, 0xaf, + 0xe5, 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, 0x9e, 0x4b, 0xc7, 0x45, 0x97, + 0x7a, 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, 0xe7, 0xc0, 0x71, 0xd1, 0x81, + 0x9e, 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, 0xb9, 0x6b, 0x5c, 0x74, 0x97, + 0xe7, 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, 0x73, 0xd2, 0x92, 0x73, 0x7c, + 0xb7, 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, 0x91, 0x96, 0x5c, 0xe1, 0x3b, + 0x81, 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, + 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, + 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x9c, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, + 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, 0x77, 0xef, 0xb8, 0xe8, 0xde, + 0xd0, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, + 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0xb7, 0x1c, 0x53, 0xbb, 0xe6, + 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0xc1, + 0x1c, 0xfb, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xeb, 0xe4, 0x96, 0x0f, 0x73, 0xc5, 0xa4, 0x94, 0x69, + 0x7d, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, 0x82, 0x47, 0xe7, 0xd9, 0x26, + 0xd2, 0xcf, 0x7a, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x8c, 0x13, 0xe9, 0x4b, 0x1e, + 0x9d, 0xe7, 0x9c, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xd6, 0x89, 0xf4, 0xf3, 0x1e, 0x9d, 0xe7, 0x9d, + 0x48, 0xbf, 0xe0, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x8b, 0xfa, 0xb4, 0x9c, 0x7b, 0x9c, 0xc1, 0x73, + 0xed, 0xb4, 0x9c, 0x7d, 0x12, 0xc7, 0x19, 0x9f, 0x83, 0xe7, 0x9f, 0xc4, 0xb1, 0xe0, 0x73, 0xf0, + 0x0c, 0x94, 0x38, 0xce, 0x66, 0x3e, 0x44, 0xdc, 0x67, 0xc9, 0xee, 0x9b, 0x90, 0xdc, 0x97, 0x08, + 0xb8, 0x6e, 0x42, 0x72, 0x5d, 0x22, 0xe0, 0xb6, 0x09, 0xc9, 0x6d, 0x89, 0x80, 0xcb, 0x26, 0x24, + 0x97, 0x25, 0x02, 0xee, 0x9a, 0x90, 0xdc, 0x95, 0x08, 0xb8, 0x6a, 0x42, 0x72, 0x55, 0x22, 0xe0, + 0xa6, 0x09, 0xc9, 0x4d, 0x89, 0x80, 0x8b, 0x26, 0x24, 0x17, 0x25, 0x02, 0xee, 0x99, 0x90, 0xdc, + 0x93, 0x08, 0xb8, 0xe6, 0xb8, 0xec, 0x9a, 0x44, 0xd0, 0x2d, 0xc7, 0x65, 0xb7, 0x24, 0x82, 0x2e, + 0x39, 0x2e, 0xbb, 0x24, 0x11, 0x74, 0xc7, 0x71, 0xd9, 0x1d, 0x89, 0xa0, 0x2b, 0x7e, 0x92, 0xe0, + 0x1d, 0xe1, 0x86, 0xdb, 0xde, 0xab, 0xba, 0xb7, 0xd5, 0x11, 0xce, 0x0b, 0xed, 0xc3, 0xc0, 0x82, + 0x3e, 0x47, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, 0x60, 0xf3, 0x42, 0x63, 0x11, 0x40, 0x58, 0xe1, + 0x88, 0xc5, 0xdb, 0xea, 0x0d, 0xe7, 0x85, 0x36, 0x23, 0x5a, 0xbf, 0x0b, 0x6f, 0x7b, 0xc7, 0xf6, + 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x87, 0xed, 0xd8, 0x66, 0xa3, 0x4d, 0xee, 0x19, 0x7b, 0x36, + 0xda, 0xd8, 0x1d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, 0x36, 0xda, 0xb4, 0x9e, 0x51, 0xdf, 0xda, 0x7e, + 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, 0xd8, 0x7e, 0x6b, 0x5e, 0x28, 0x25, 0x87, 0x8d, + 0x60, 0xf5, 0xd0, 0x11, 0x7c, 0xd8, 0xce, 0x6b, 0x5e, 0x28, 0x2f, 0x87, 0x8e, 0xe0, 0xb7, 0xa1, + 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xb0, 0xfd, 0xd0, 0x6c, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, + 0x44, 0x04, 0xc7, 0xe9, 0x8f, 0x66, 0xa3, 0x4d, 0x1b, 0x1e, 0xc1, 0xb7, 0xdd, 0xcd, 0x7c, 0x4a, + 0x81, 0xd1, 0x72, 0xbd, 0x56, 0x6a, 0x5e, 0x47, 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0xce, 0x0b, 0x95, + 0xa0, 0x8b, 0xab, 0x5f, 0x7e, 0x65, 0xca, 0xb7, 0xf0, 0x12, 0xa4, 0xa8, 0x4d, 0xe7, 0xe7, 0xd3, + 0x37, 0x94, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0x27, 0x38, 0xec, 0xcc, 0x7c, 0xfa, 0x5f, 0x94, 0x40, + 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x21, 0x1a, 0x5a, 0xb7, 0xad, 0xe1, 0xe9, 0x58, 0x1a, 0x06, 0x74, + 0xbb, 0xab, 0x43, 0xb7, 0x80, 0x56, 0x7b, 0x30, 0x52, 0xae, 0xd7, 0xca, 0xe4, 0x6f, 0x77, 0xe3, + 0xa8, 0x44, 0x79, 0xa4, 0x7a, 0x30, 0x2f, 0x84, 0x65, 0x10, 0xe1, 0x85, 0xb4, 0x58, 0x23, 0x32, + 0x75, 0xfc, 0x58, 0x4b, 0x78, 0xec, 0x6c, 0xb7, 0xc7, 0xfa, 0x95, 0xdd, 0x7b, 0xe0, 0x6c, 0xb7, + 0x07, 0xfa, 0x39, 0xe4, 0x3d, 0xea, 0x19, 0xbe, 0x38, 0xd3, 0xeb, 0x36, 0xfa, 0x71, 0x48, 0x2c, + 0xd3, 0xab, 0xc0, 0x83, 0xf9, 0x41, 0xac, 0xd4, 0xb7, 0x5f, 0x99, 0x4a, 0x6e, 0xed, 0xd5, 0x6b, + 0x46, 0x62, 0xb9, 0xa6, 0x5f, 0x85, 0xde, 0xf7, 0xb0, 0xbf, 0x80, 0xc3, 0x0c, 0x8b, 0x8c, 0xe1, + 0x81, 0xae, 0x7b, 0x44, 0xf8, 0xc1, 0xa7, 0xe9, 0x46, 0xe2, 0xdc, 0x56, 0xdd, 0x72, 0xcf, 0x2c, + 0x5c, 0x30, 0xa8, 0x88, 0xcc, 0x2f, 0x02, 0xd0, 0x67, 0x16, 0x4d, 0x67, 0x57, 0x2f, 0x73, 0xc9, + 0xf4, 0xd1, 0x17, 0xbe, 0xfd, 0xca, 0xd4, 0x62, 0x1c, 0xa9, 0x0f, 0xd6, 0x4c, 0x67, 0xf7, 0x41, + 0x77, 0xbf, 0x85, 0xe6, 0xf2, 0xfb, 0x2e, 0x72, 0xb8, 0xf4, 0x16, 0x5f, 0xf5, 0xd8, 0xbc, 0xd2, + 0x81, 0x79, 0xa5, 0x84, 0x39, 0x5d, 0x16, 0xe7, 0x34, 0xff, 0x66, 0xe7, 0xf3, 0x0c, 0x5f, 0x24, + 0x24, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd7, 0x92, 0x2d, 0x5e, 0x1f, 0xa5, 0xb9, 0xaa, 0x07, + 0xcd, 0x55, 0xbd, 0x9d, 0xb9, 0xfe, 0x88, 0x66, 0xab, 0x97, 0x4f, 0x5b, 0x16, 0xbd, 0x86, 0xf8, + 0xf3, 0xb5, 0x17, 0xf4, 0x96, 0x76, 0x01, 0xd9, 0xe4, 0x8d, 0x17, 0xa6, 0x94, 0xcc, 0xa7, 0x12, + 0x7c, 0xe6, 0x34, 0x91, 0xde, 0xdc, 0xcc, 0x7f, 0x5e, 0x7a, 0xaa, 0xb7, 0xc3, 0x42, 0xcf, 0x2b, + 0x30, 0xde, 0x51, 0xc9, 0xa9, 0x99, 0xde, 0xda, 0x72, 0x6e, 0x1d, 0xb6, 0x9c, 0x33, 0x05, 0xbf, + 0xa2, 0xc0, 0x51, 0xa9, 0xbc, 0x52, 0xf5, 0x4e, 0x4b, 0xea, 0x1d, 0xeb, 0x7c, 0x12, 0x61, 0x0c, + 0x68, 0x17, 0x74, 0xaf, 0x04, 0x08, 0x48, 0xf6, 0xfc, 0xbe, 0x28, 0xf9, 0xfd, 0xb8, 0x07, 0x08, + 0x31, 0x17, 0x8f, 0x00, 0xa6, 0xb6, 0x0d, 0xc9, 0xcd, 0x36, 0x42, 0xfa, 0x24, 0x24, 0xd6, 0xda, + 0x4c, 0xc3, 0x61, 0x8a, 0x5f, 0x6b, 0xe7, 0xdb, 0xa6, 0x55, 0xdd, 0x35, 0x12, 0x6b, 0x6d, 0xfd, + 0x04, 0xa8, 0x39, 0xf6, 0x1b, 0x03, 0x03, 0x0b, 0x23, 0x94, 0x21, 0x67, 0xd5, 0x18, 0x07, 0xa6, + 0xe9, 0x93, 0x90, 0x5c, 0x41, 0xe6, 0x36, 0x53, 0x02, 0x28, 0x0f, 0x1e, 0x31, 0xc8, 0x38, 0x7b, + 0xe0, 0xe3, 0x90, 0xe2, 0x82, 0xf5, 0x93, 0x18, 0xb1, 0xed, 0xb2, 0xc7, 0x32, 0x04, 0x56, 0x87, + 0xad, 0x5c, 0x84, 0xaa, 0x9f, 0x82, 0x5e, 0xa3, 0xbe, 0xb3, 0xeb, 0xb2, 0x87, 0x77, 0xb2, 0x51, + 0x72, 0xe6, 0x1a, 0xf4, 0x7b, 0x1a, 0xbd, 0xc5, 0xa2, 0x8b, 0x74, 0x6a, 0xfa, 0x44, 0x70, 0x3d, + 0xe1, 0xfb, 0x96, 0x74, 0x48, 0x9f, 0x86, 0xd4, 0x86, 0xdb, 0xf6, 0x8b, 0x3e, 0xef, 0x48, 0xbd, + 0xd1, 0xcc, 0xfb, 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, + 0xc5, 0x14, 0x1c, 0x65, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, 0xef, 0x0d, 0xda, 0x7d, 0xcc, + 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, 0x33, 0x75, 0xd8, 0xff, 0x3c, + 0x0c, 0x04, 0x9e, 0xa2, 0xcf, 0x30, 0x35, 0x12, 0x32, 0x30, 0x68, 0x2b, 0xcc, 0x91, 0x41, 0x30, + 0x24, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x02, 0x25, 0x66, 0x9e, 0x15, 0xcd, 0x1c, 0xce, 0xca, + 0x4c, 0x3d, 0x4f, 0x6d, 0x44, 0xcc, 0x7d, 0x92, 0x06, 0x67, 0x77, 0x27, 0xe2, 0xcf, 0x99, 0x5e, + 0x50, 0xcb, 0xf5, 0x46, 0xe6, 0x21, 0x00, 0x9a, 0xf2, 0x25, 0x6b, 0xaf, 0x29, 0x65, 0xdd, 0x30, + 0x37, 0xf0, 0xe6, 0x2e, 0xda, 0x44, 0x0e, 0x61, 0x11, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, + 0xc1, 0xdf, 0x1f, 0x89, 0x0f, 0xed, 0xc4, 0x30, 0x6b, 0x9a, 0xb2, 0x5e, 0x43, 0x6e, 0xce, 0xb2, + 0xdd, 0x5d, 0xd4, 0x96, 0x10, 0x0b, 0xfa, 0x59, 0x21, 0x61, 0x87, 0x17, 0xee, 0xf2, 0x10, 0x5d, + 0x41, 0x67, 0x33, 0x5f, 0x22, 0x0a, 0xe2, 0x56, 0xa0, 0x63, 0x82, 0x6a, 0x8c, 0x09, 0xea, 0xe7, + 0x84, 0xfe, 0xed, 0x00, 0x35, 0xa5, 0x57, 0xcb, 0x8b, 0xc2, 0x7b, 0xce, 0xc1, 0xca, 0x8a, 0xef, + 0x98, 0xdc, 0xa6, 0x5c, 0xe5, 0xfb, 0x23, 0x55, 0xee, 0xd2, 0xdd, 0x1e, 0xd6, 0xa6, 0x6a, 0x5c, + 0x9b, 0x7e, 0xdd, 0xeb, 0x38, 0xe8, 0xaf, 0x35, 0x90, 0x1f, 0x07, 0xd1, 0x1f, 0x88, 0xf4, 0x7d, + 0x56, 0x29, 0x78, 0xaa, 0x2e, 0xc6, 0x75, 0x7f, 0x36, 0x91, 0xcf, 0x7b, 0xea, 0x9e, 0x3f, 0x44, + 0x08, 0x64, 0x13, 0x85, 0x82, 0x57, 0xb6, 0x53, 0x1f, 0x7a, 0x61, 0x4a, 0x79, 0xf1, 0x85, 0xa9, + 0x9e, 0xcc, 0xe7, 0x15, 0x18, 0x65, 0x9c, 0x81, 0xc0, 0x7d, 0x50, 0x52, 0xfe, 0x0e, 0x5e, 0x33, + 0xc2, 0x2c, 0xf0, 0x53, 0x0b, 0xde, 0x6f, 0x2a, 0x90, 0xee, 0xd0, 0x95, 0xdb, 0x7b, 0x3e, 0x96, + 0xca, 0x59, 0xa5, 0xf4, 0xb3, 0xb7, 0xf9, 0x35, 0xe8, 0xdd, 0xac, 0x37, 0x51, 0x1b, 0xaf, 0x04, + 0xf8, 0x03, 0x55, 0x99, 0x1f, 0xe6, 0xd0, 0x21, 0x4e, 0xa3, 0xca, 0x09, 0xb4, 0x05, 0x3d, 0x0d, + 0xc9, 0xa2, 0xe9, 0x9a, 0x44, 0x83, 0x41, 0xaf, 0xbe, 0x9a, 0xae, 0x99, 0x39, 0x0b, 0x83, 0xab, + 0xfb, 0xe4, 0xae, 0x4c, 0x8d, 0xdc, 0x03, 0x11, 0xbb, 0x3f, 0xde, 0xaf, 0x9e, 0x99, 0xed, 0x4d, + 0xd5, 0xb4, 0x1b, 0x4a, 0x36, 0x49, 0xf4, 0x79, 0x0a, 0x86, 0xd7, 0xb0, 0xda, 0x04, 0x27, 0xc0, + 0xe8, 0xd3, 0x55, 0x6f, 0xf2, 0x52, 0x53, 0xa6, 0xfa, 0x4d, 0xd9, 0x34, 0x28, 0xab, 0x62, 0xeb, + 0x14, 0xd4, 0xc3, 0x50, 0x56, 0x67, 0x93, 0xa9, 0x61, 0x6d, 0x74, 0x36, 0x99, 0x02, 0x6d, 0x88, + 0x3d, 0xf7, 0x1f, 0x55, 0xd0, 0x68, 0xab, 0x53, 0x44, 0xdb, 0x75, 0xab, 0xee, 0x76, 0xf6, 0xab, + 0x9e, 0xc6, 0xfa, 0x23, 0xd0, 0x8f, 0x4d, 0x7a, 0x99, 0xfd, 0xc6, 0x16, 0x36, 0xfd, 0x09, 0xd6, + 0xa2, 0x48, 0x22, 0xd8, 0x00, 0x09, 0x1d, 0x1f, 0xa3, 0x5f, 0x06, 0xb5, 0x5c, 0x5e, 0x65, 0x8b, + 0xdb, 0xe2, 0x81, 0x50, 0x76, 0xd5, 0x86, 0x7d, 0x63, 0x63, 0xce, 0x8e, 0x81, 0x05, 0xe8, 0x8b, + 0x90, 0x28, 0xaf, 0xb2, 0x86, 0xf7, 0x64, 0x1c, 0x31, 0x46, 0xa2, 0xbc, 0x3a, 0xf1, 0x77, 0x0a, + 0x0c, 0x09, 0xa3, 0x7a, 0x06, 0x06, 0xe9, 0x40, 0x60, 0xba, 0x7d, 0x86, 0x30, 0xc6, 0x75, 0x4e, + 0xdc, 0xa6, 0xce, 0x13, 0x39, 0x18, 0x91, 0xc6, 0xf5, 0x39, 0xd0, 0x83, 0x43, 0x4c, 0x09, 0xfa, + 0xfb, 0x44, 0x21, 0x94, 0xcc, 0xdd, 0x00, 0xbe, 0x5d, 0xbd, 0x9f, 0xd5, 0x29, 0x97, 0x36, 0x36, + 0x4b, 0x45, 0x4d, 0xc9, 0x7c, 0x55, 0x81, 0x01, 0xd6, 0xb6, 0x56, 0xed, 0x16, 0xd2, 0xf3, 0xa0, + 0xe4, 0x58, 0x3c, 0xbc, 0x39, 0xbd, 0x95, 0x9c, 0x7e, 0x1a, 0x94, 0x7c, 0x7c, 0x57, 0x2b, 0x79, + 0x7d, 0x01, 0x94, 0x02, 0x73, 0x70, 0x3c, 0xcf, 0x28, 0x85, 0xcc, 0x0f, 0x54, 0x18, 0x0b, 0xb6, + 0xd1, 0xbc, 0x9e, 0x9c, 0x10, 0xdf, 0x9b, 0xb2, 0xfd, 0x67, 0x16, 0xce, 0x2e, 0xce, 0xe1, 0x7f, + 0xbc, 0x90, 0x3c, 0x21, 0xbe, 0x42, 0x75, 0xb2, 0x74, 0x5c, 0x13, 0xc9, 0x26, 0x03, 0xd4, 0x8e, + 0x6b, 0x22, 0x02, 0xb5, 0xe3, 0x9a, 0x88, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0x8e, 0x02, + 0x04, 0x6a, 0xc7, 0x35, 0x11, 0x81, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5e, 0x13, 0x61, 0xe4, + 0xae, 0xd7, 0x44, 0x44, 0x7a, 0xe7, 0x35, 0x11, 0x91, 0xde, 0x79, 0x4d, 0x24, 0x9b, 0x74, 0xdb, + 0x7b, 0xa8, 0xfb, 0xa1, 0x83, 0x88, 0x3f, 0xe8, 0x1d, 0xd0, 0x2f, 0xc0, 0x6b, 0x30, 0x42, 0xf7, + 0x23, 0x0a, 0xb6, 0xe5, 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x77, 0xc2, 0x20, 0x1d, 0xa2, 0x6f, 0x39, + 0x61, 0x6f, 0x81, 0x94, 0xce, 0xca, 0xad, 0xc0, 0x9d, 0xf9, 0x49, 0x12, 0xc6, 0xe9, 0x40, 0xd9, + 0x6c, 0x22, 0xe1, 0x92, 0xd1, 0x29, 0xe9, 0x48, 0x69, 0x18, 0xc3, 0x6f, 0xbd, 0x32, 0x45, 0x47, + 0x73, 0x5e, 0x30, 0x9d, 0x92, 0x0e, 0x97, 0x44, 0x3e, 0x7f, 0xfd, 0x39, 0x25, 0x5d, 0x3c, 0x12, + 0xf9, 0xbc, 0xe5, 0xc6, 0xe3, 0xe3, 0x57, 0x90, 0x44, 0xbe, 0xa2, 0x17, 0x65, 0xa7, 0xa4, 0xcb, + 0x48, 0x22, 0x5f, 0xc9, 0x8b, 0xb7, 0x53, 0xd2, 0xd1, 0x93, 0xc8, 0x77, 0xd9, 0x8b, 0xbc, 0x53, + 0xd2, 0x21, 0x94, 0xc8, 0x77, 0xc5, 0x8b, 0xc1, 0x53, 0xd2, 0x55, 0x25, 0x91, 0xef, 0x51, 0x2f, + 0x1a, 0x4f, 0x49, 0x97, 0x96, 0x44, 0xbe, 0x65, 0x2f, 0x2e, 0x67, 0xe4, 0xeb, 0x4b, 0x22, 0xe3, + 0x55, 0x3f, 0x42, 0x67, 0xe4, 0x8b, 0x4c, 0x22, 0xe7, 0xbb, 0xfc, 0x58, 0x9d, 0x91, 0xaf, 0x34, + 0x89, 0x9c, 0x2b, 0x7e, 0xd4, 0xce, 0xc8, 0x47, 0x65, 0x22, 0xe7, 0xaa, 0x1f, 0xbf, 0x33, 0xf2, + 0xa1, 0x99, 0xc8, 0x59, 0xf6, 0x23, 0x79, 0x46, 0x3e, 0x3e, 0x13, 0x39, 0xd7, 0xfc, 0x3d, 0xf4, + 0x6f, 0x48, 0xe1, 0x17, 0xb8, 0x04, 0x95, 0x91, 0xc2, 0x0f, 0x42, 0x42, 0x2f, 0x23, 0x85, 0x1e, + 0x84, 0x84, 0x5d, 0x46, 0x0a, 0x3b, 0x08, 0x09, 0xb9, 0x8c, 0x14, 0x72, 0x10, 0x12, 0x6e, 0x19, + 0x29, 0xdc, 0x20, 0x24, 0xd4, 0x32, 0x52, 0xa8, 0x41, 0x48, 0x98, 0x65, 0xa4, 0x30, 0x83, 0x90, + 0x10, 0xcb, 0x48, 0x21, 0x06, 0x21, 0xe1, 0x95, 0x91, 0xc2, 0x0b, 0x42, 0x42, 0xeb, 0xa4, 0x1c, + 0x5a, 0x10, 0x16, 0x56, 0x27, 0xe5, 0xb0, 0x82, 0xb0, 0x90, 0xba, 0x47, 0x0e, 0xa9, 0xfe, 0x5b, + 0xaf, 0x4c, 0xf5, 0xe2, 0xa1, 0x40, 0x34, 0x9d, 0x94, 0xa3, 0x09, 0xc2, 0x22, 0xe9, 0xa4, 0x1c, + 0x49, 0x10, 0x16, 0x45, 0x27, 0xe5, 0x28, 0x82, 0xb0, 0x08, 0x7a, 0x49, 0x8e, 0x20, 0xff, 0x8a, + 0x4f, 0x46, 0x3a, 0x51, 0x8c, 0x8a, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, + 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, + 0x89, 0x20, 0x35, 0x56, 0x04, 0xa9, 0xdd, 0x22, 0xe8, 0xa4, 0x7c, 0xe1, 0x01, 0xc2, 0x0a, 0xd2, + 0x49, 0xf9, 0xe4, 0x33, 0x3a, 0x84, 0xd4, 0x58, 0x21, 0xa4, 0x76, 0x0b, 0xa1, 0x6f, 0xa8, 0x30, + 0x26, 0x84, 0x10, 0x3b, 0x1e, 0x7a, 0xab, 0x2a, 0xd0, 0xb9, 0x18, 0xf7, 0x2b, 0xc2, 0x62, 0xea, + 0x5c, 0x8c, 0x33, 0xea, 0x83, 0xe2, 0xac, 0xb3, 0x0a, 0x95, 0x62, 0x54, 0xa1, 0xcb, 0x5e, 0x0c, + 0x9d, 0x8b, 0x71, 0xef, 0xa2, 0x33, 0xf6, 0x2e, 0x1c, 0x54, 0x04, 0x1e, 0x8d, 0x55, 0x04, 0x96, + 0x63, 0x15, 0x81, 0xab, 0xbe, 0x07, 0x3f, 0x98, 0x80, 0xa3, 0xbe, 0x07, 0xe9, 0x27, 0xf2, 0x5b, + 0x48, 0x99, 0xc0, 0x09, 0x95, 0xce, 0x4f, 0x6d, 0x02, 0x6e, 0x4c, 0x2c, 0xd7, 0xf4, 0x75, 0xf1, + 0xac, 0x2a, 0x7b, 0xd8, 0xf3, 0x9b, 0x80, 0xc7, 0xd9, 0x5e, 0xe8, 0x49, 0x50, 0x97, 0x6b, 0x0e, + 0xa9, 0x16, 0x61, 0x8f, 0x2d, 0x18, 0x98, 0xac, 0x1b, 0xd0, 0x47, 0xd8, 0x1d, 0xe2, 0xde, 0xdb, + 0x79, 0x70, 0xd1, 0x60, 0x92, 0x32, 0x2f, 0x29, 0x30, 0x2d, 0x84, 0xf2, 0x5b, 0x73, 0x62, 0x70, + 0x29, 0xd6, 0x89, 0x81, 0x90, 0x20, 0xfe, 0xe9, 0xc1, 0x7d, 0x9d, 0x07, 0xd5, 0xc1, 0x2c, 0x91, + 0x4f, 0x12, 0x7e, 0x09, 0x86, 0xfd, 0x19, 0x90, 0x57, 0xb6, 0xa5, 0xe8, 0xcd, 0xcc, 0xb0, 0xd4, + 0x5c, 0x92, 0x36, 0xd1, 0x0e, 0x84, 0x79, 0xd9, 0x9a, 0xc9, 0xc2, 0x48, 0x59, 0xfc, 0xa3, 0x9d, + 0xa8, 0xbd, 0x88, 0x14, 0x6e, 0xcd, 0x6f, 0x7c, 0x7a, 0xaa, 0x27, 0xf3, 0x00, 0x0c, 0x06, 0xff, + 0x2e, 0x47, 0x02, 0xf6, 0x73, 0x60, 0x36, 0xf9, 0x32, 0xe6, 0xfe, 0x03, 0x05, 0xee, 0x08, 0xb2, + 0x3f, 0x56, 0x77, 0x77, 0x97, 0x2d, 0xdc, 0xd3, 0x3f, 0x04, 0x29, 0xc4, 0x1c, 0xc7, 0x7e, 0xd6, + 0x84, 0xbd, 0x46, 0x86, 0xb2, 0xcf, 0x91, 0x7f, 0x0d, 0x0f, 0x22, 0x6d, 0x82, 0xf0, 0xc7, 0x2e, + 0x4c, 0xdc, 0x0b, 0xbd, 0x54, 0xbe, 0xa8, 0xd7, 0x90, 0xa4, 0xd7, 0x67, 0x43, 0xf4, 0x22, 0x71, + 0xa4, 0x5f, 0x15, 0xf4, 0x0a, 0xbc, 0xad, 0x86, 0xb2, 0xcf, 0xf1, 0xe0, 0xcb, 0xa7, 0x70, 0xff, + 0x47, 0x22, 0x2a, 0x5a, 0xc9, 0x19, 0x48, 0x95, 0x64, 0x9e, 0x70, 0x3d, 0x8b, 0x90, 0x2c, 0xdb, + 0x35, 0xf2, 0x83, 0x2b, 0xe4, 0x87, 0x71, 0x99, 0x91, 0xd9, 0xaf, 0xe4, 0x9e, 0x82, 0x54, 0x61, + 0xb7, 0xde, 0xa8, 0xb5, 0x91, 0xc5, 0x8e, 0xec, 0xd9, 0x0e, 0x3a, 0xc6, 0x18, 0x1e, 0x2d, 0x53, + 0x80, 0xd1, 0xb2, 0x6d, 0xe5, 0xf7, 0xdd, 0x60, 0xdd, 0x98, 0x93, 0x52, 0x84, 0x1d, 0xf9, 0x90, + 0xbf, 0xf4, 0xc0, 0x0c, 0xf9, 0xde, 0x6f, 0xbf, 0x32, 0xa5, 0x6c, 0x7a, 0xdb, 0xe7, 0xab, 0x70, + 0x8c, 0xa5, 0x4f, 0x87, 0xa8, 0x85, 0x28, 0x51, 0xfd, 0xec, 0x98, 0x3a, 0x20, 0x6e, 0x19, 0x8b, + 0xb3, 0x42, 0xc5, 0xbd, 0x39, 0xcd, 0x70, 0x53, 0x74, 0xa0, 0x66, 0xea, 0xa1, 0x34, 0x0b, 0x15, + 0x37, 0x17, 0x25, 0x4e, 0xd2, 0xec, 0x1e, 0xe8, 0xf7, 0x68, 0x81, 0x68, 0x08, 0x66, 0xca, 0xc2, + 0x6c, 0x06, 0x06, 0x02, 0x09, 0xab, 0xf7, 0x82, 0x92, 0xd3, 0x7a, 0xf0, 0x7f, 0x79, 0x4d, 0xc1, + 0xff, 0x15, 0xb4, 0xc4, 0xec, 0xbd, 0x30, 0x22, 0x6d, 0x5f, 0x62, 0x4a, 0x51, 0x03, 0xfc, 0x5f, + 0x49, 0x1b, 0x98, 0x48, 0x7e, 0xe8, 0x8f, 0x27, 0x7b, 0x66, 0x2f, 0x81, 0xde, 0xb9, 0xd1, 0xa9, + 0xf7, 0x41, 0x22, 0x87, 0x45, 0x1e, 0x83, 0x44, 0x3e, 0xaf, 0x29, 0x13, 0x23, 0xbf, 0xfe, 0xc9, + 0xe9, 0x81, 0x3c, 0xf9, 0xa3, 0xe3, 0x6b, 0xc8, 0xcd, 0xe7, 0x19, 0xf8, 0x61, 0xb8, 0x23, 0x74, + 0xa3, 0x14, 0xe3, 0x0b, 0x05, 0x8a, 0x2f, 0x16, 0x3b, 0xf0, 0xc5, 0x22, 0xc1, 0x2b, 0x59, 0x7e, + 0xe0, 0x9c, 0xd3, 0x43, 0x36, 0x19, 0xd3, 0xb5, 0xc0, 0x01, 0x77, 0x2e, 0xfb, 0x30, 0xe3, 0xcd, + 0x87, 0xf2, 0xa2, 0x88, 0x03, 0xeb, 0x7c, 0xb6, 0xc0, 0xf0, 0x85, 0x50, 0xfc, 0xb6, 0x74, 0xaa, + 0x2a, 0xae, 0x10, 0x4c, 0x48, 0xc1, 0x53, 0xb8, 0x18, 0x2a, 0x64, 0x37, 0x70, 0xd7, 0xbd, 0xe8, + 0x29, 0x5c, 0x0a, 0xe5, 0xad, 0x47, 0xdc, 0xf9, 0x2a, 0x65, 0x4f, 0xb3, 0x45, 0x3e, 0x77, 0x46, + 0xbf, 0x83, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38, 0x57, 0xb6, 0xc0, 0x00, 0xf9, 0xae, 0x80, + 0xee, 0x56, 0xe2, 0xc8, 0xec, 0xa3, 0x4c, 0x48, 0xa1, 0xab, 0x90, 0x08, 0x53, 0x71, 0x78, 0x7e, + 0xf3, 0xc6, 0xcd, 0xc9, 0x9e, 0x97, 0x6f, 0x4e, 0xf6, 0xfc, 0xeb, 0xcd, 0xc9, 0x9e, 0xef, 0xdc, + 0x9c, 0x54, 0xbe, 0x77, 0x73, 0x52, 0xf9, 0xfe, 0xcd, 0x49, 0xe5, 0xc7, 0x37, 0x27, 0x95, 0xe7, + 0x6e, 0x4d, 0x2a, 0x2f, 0xde, 0x9a, 0x54, 0xbe, 0x74, 0x6b, 0x52, 0xf9, 0xda, 0xad, 0x49, 0xe5, + 0xa5, 0x5b, 0x93, 0xca, 0x8d, 0x5b, 0x93, 0x3d, 0x2f, 0xdf, 0x9a, 0x54, 0xbe, 0x73, 0x6b, 0x52, + 0xf9, 0xde, 0xad, 0xc9, 0x9e, 0xef, 0xdf, 0x9a, 0x54, 0x7e, 0x7c, 0x6b, 0xb2, 0xe7, 0xb9, 0x57, + 0x27, 0x7b, 0x5e, 0x78, 0x75, 0xb2, 0xe7, 0xc5, 0x57, 0x27, 0x95, 0xff, 0x0f, 0x00, 0x00, 0xff, + 0xff, 0x60, 0x11, 0x0b, 0xa5, 0xac, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12238,18 +12583,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12291,8 +12638,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12300,8 +12649,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12356,18 +12705,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12421,8 +12772,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12430,8 +12783,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15030,56 +15383,500 @@ func (this *Node) Equal(that interface{}) bool { } return true } +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField1() float64 { - return this.Field1 + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField2() float32 { - return this.Field2 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField3() int32 { - return this.Field3 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField4() int64 { - return this.Field4 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 + GetField3() int32 + GetField4() int64 + GetField5() uint32 + GetField6() uint64 + GetField7() int32 + GetField8() int64 + GetField9() uint32 + GetField10() int32 + GetField11() uint64 + GetField12() int64 + GetField13() bool + GetField14() string + GetField15() []byte +} + +func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNativeFromFace(this) +} + +func (this *NidOptNative) GetField1() float64 { + return this.Field1 +} + +func (this *NidOptNative) GetField2() float32 { + return this.Field2 +} + +func (this *NidOptNative) GetField3() int32 { + return this.Field3 +} + +func (this *NidOptNative) GetField4() int64 { + return this.Field4 +} + +func (this *NidOptNative) GetField5() uint32 { + return this.Field5 +} + +func (this *NidOptNative) GetField6() uint64 { + return this.Field6 } func (this *NidOptNative) GetField7() int32 { @@ -17693,6 +18490,144 @@ func NewNodeFromFace(that NodeFace) *Node { return this } +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) +} + +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) +} + +func (this *NinRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type ProtoTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField2() *string +} + +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) +} + +func (this *ProtoType) GetField2() *string { + return this.Field2 +} + +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() + return this +} + func (this *NidOptNative) GoString() string { if this == nil { return "nil" @@ -18715,9 +19650,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18739,9 +19672,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19248,6 +20179,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19256,11 +20275,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19270,7 +20290,7 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -19312,7 +20332,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -19403,7 +20423,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -19540,7 +20560,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19681,7 +20701,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19969,7 +20989,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -20022,7 +21042,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -20112,7 +21132,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20203,7 +21223,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20414,7 +21434,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -20459,7 +21479,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -20544,7 +21564,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -20790,8 +21810,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20834,8 +21854,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20887,7 +21907,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -20993,7 +22013,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -21058,7 +22078,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -21149,7 +22169,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -21286,7 +22306,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -21351,7 +22371,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -21448,8 +22468,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21461,7 +22481,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -21479,7 +22499,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -21504,7 +22524,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -21527,7 +22547,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -21543,6 +22563,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -21562,14 +22658,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -21577,43 +22673,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -22724,9 +23820,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22746,9 +23840,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23258,6 +24350,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -23884,7 +25056,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -23898,7 +25070,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24130,7 +25302,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24202,6 +25374,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -24467,8 +25705,8 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { } return true } -func (m *NidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -24480,7 +25718,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24505,14 +25743,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -24523,10 +25761,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -24540,7 +25778,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field3 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24559,7 +25797,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field4 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -24578,7 +25816,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field5 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -24597,7 +25835,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24616,7 +25854,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24637,7 +25875,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24655,10 +25893,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field9 = uint32(data[iNdEx-4]) - m.Field9 |= uint32(data[iNdEx-3]) << 8 - m.Field9 |= uint32(data[iNdEx-2]) << 16 - m.Field9 |= uint32(data[iNdEx-1]) << 24 + m.Field9 = uint32(dAtA[iNdEx-4]) + m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 + m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 + m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) @@ -24668,10 +25906,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field10 = int32(data[iNdEx-4]) - m.Field10 |= int32(data[iNdEx-3]) << 8 - m.Field10 |= int32(data[iNdEx-2]) << 16 - m.Field10 |= int32(data[iNdEx-1]) << 24 + m.Field10 = int32(dAtA[iNdEx-4]) + m.Field10 |= int32(dAtA[iNdEx-3]) << 8 + m.Field10 |= int32(dAtA[iNdEx-2]) << 16 + m.Field10 |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) @@ -24681,14 +25919,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field11 = uint64(data[iNdEx-8]) - m.Field11 |= uint64(data[iNdEx-7]) << 8 - m.Field11 |= uint64(data[iNdEx-6]) << 16 - m.Field11 |= uint64(data[iNdEx-5]) << 24 - m.Field11 |= uint64(data[iNdEx-4]) << 32 - m.Field11 |= uint64(data[iNdEx-3]) << 40 - m.Field11 |= uint64(data[iNdEx-2]) << 48 - m.Field11 |= uint64(data[iNdEx-1]) << 56 + m.Field11 = uint64(dAtA[iNdEx-8]) + m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 + m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 + m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 + m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 + m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 + m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 + m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) @@ -24698,14 +25936,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field12 = int64(data[iNdEx-8]) - m.Field12 |= int64(data[iNdEx-7]) << 8 - m.Field12 |= int64(data[iNdEx-6]) << 16 - m.Field12 |= int64(data[iNdEx-5]) << 24 - m.Field12 |= int64(data[iNdEx-4]) << 32 - m.Field12 |= int64(data[iNdEx-3]) << 40 - m.Field12 |= int64(data[iNdEx-2]) << 48 - m.Field12 |= int64(data[iNdEx-1]) << 56 + m.Field12 = int64(dAtA[iNdEx-8]) + m.Field12 |= int64(dAtA[iNdEx-7]) << 8 + m.Field12 |= int64(dAtA[iNdEx-6]) << 16 + m.Field12 |= int64(dAtA[iNdEx-5]) << 24 + m.Field12 |= int64(dAtA[iNdEx-4]) << 32 + m.Field12 |= int64(dAtA[iNdEx-3]) << 40 + m.Field12 |= int64(dAtA[iNdEx-2]) << 48 + m.Field12 |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) @@ -24718,7 +25956,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -24738,7 +25976,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24753,7 +25991,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -24767,7 +26005,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -24781,14 +26019,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -24798,7 +26036,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -24808,8 +26046,8 @@ func (m *NidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -24821,7 +26059,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24846,14 +26084,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -24865,10 +26103,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -24883,7 +26121,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24903,7 +26141,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -24923,7 +26161,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -24943,7 +26181,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24963,7 +26201,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24984,7 +26222,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25003,10 +26241,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -25017,10 +26255,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -25031,14 +26269,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -25049,14 +26287,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -25070,7 +26308,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25091,7 +26329,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25106,7 +26344,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -25121,7 +26359,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25135,14 +26373,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -25152,7 +26390,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25162,8 +26400,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25175,7 +26413,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25192,245 +26430,771 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - m.Field4 = append(m.Field4, v) case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - m.Field5 = append(m.Field5, v) case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + } + case 10: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) + } + case 11: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -25443,7 +27207,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25458,7 +27222,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -25472,7 +27236,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25487,11 +27251,11 @@ func (m *NidRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -25501,7 +27265,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25511,8 +27275,8 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25524,7 +27288,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25541,245 +27305,771 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { + case 10: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -25792,7 +28082,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25807,7 +28097,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -25821,7 +28111,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25836,11 +28126,11 @@ func (m *NinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -25850,7 +28140,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25860,8 +28150,8 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25873,7 +28163,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25890,7 +28180,23 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25899,7 +28205,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25919,38 +28225,34 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25959,7 +28261,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25979,30 +28281,35 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26011,7 +28318,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26034,7 +28341,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26043,8 +28350,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26052,19 +28363,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26073,7 +28380,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26096,7 +28403,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -26105,8 +28412,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26114,19 +28425,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26135,7 +28442,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26158,7 +28465,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -26167,8 +28474,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26176,19 +28487,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26197,7 +28504,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26220,7 +28527,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26229,8 +28536,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26238,19 +28549,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26259,7 +28567,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26282,7 +28590,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26292,8 +28600,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26301,20 +28613,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26323,7 +28631,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26346,7 +28654,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26356,29 +28664,22 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26387,7 +28688,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26407,28 +28708,28 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26437,7 +28738,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26457,28 +28758,32 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26487,7 +28792,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26507,36 +28812,36 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26545,7 +28850,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26565,36 +28870,38 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26603,7 +28910,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26626,7 +28933,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26635,29 +28942,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -26667,7 +28957,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -26677,8 +28967,8 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -26690,7 +28980,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26707,7 +28997,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26716,7 +29022,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26736,38 +29042,34 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26776,7 +29078,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26796,30 +29098,35 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26828,7 +29135,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26851,7 +29158,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26860,8 +29167,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26869,19 +29180,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26890,7 +29197,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26913,7 +29220,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -26922,8 +29229,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26931,19 +29242,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26952,7 +29259,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26975,7 +29282,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -26984,8 +29291,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -26993,19 +29304,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27014,7 +29321,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27037,7 +29344,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27046,8 +29353,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -27055,19 +29366,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27076,7 +29384,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27099,7 +29407,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -27109,8 +29417,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -27118,20 +29430,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27140,7 +29448,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27163,7 +29471,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27173,29 +29481,22 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27204,7 +29505,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27224,28 +29525,28 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27254,7 +29555,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27274,28 +29575,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27304,7 +29609,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27324,36 +29629,36 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27362,7 +29667,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27382,36 +29687,38 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27420,7 +29727,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27443,7 +29750,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27452,29 +29759,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -27484,7 +29774,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -27494,8 +29784,8 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NidOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -27507,7 +29797,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27532,14 +29822,14 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -27550,10 +29840,10 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 2 { @@ -27567,7 +29857,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27581,7 +29871,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27597,7 +29887,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27611,7 +29901,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27627,7 +29917,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27646,7 +29936,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -27667,7 +29957,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27681,7 +29971,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27697,7 +29987,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27717,7 +30007,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27732,7 +30022,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -27746,7 +30036,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27760,14 +30050,14 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -27777,7 +30067,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -27787,8 +30077,8 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -27800,7 +30090,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27825,14 +30115,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -27844,10 +30134,10 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -27862,7 +30152,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27879,7 +30169,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27895,7 +30185,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27912,7 +30202,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27928,7 +30218,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27948,7 +30238,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -27969,7 +30259,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27986,7 +30276,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field8 == nil { m.Field8 = &NidOptNative{} } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28002,7 +30292,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28023,7 +30313,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28038,7 +30328,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -28053,7 +30343,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28067,14 +30357,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28084,7 +30374,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28094,8 +30384,8 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28107,7 +30397,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28124,39 +30414,117 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -28169,7 +30537,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28184,7 +30552,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28200,7 +30568,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28215,51 +30583,136 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -28272,7 +30725,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28287,30 +30740,72 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -28323,7 +30818,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28338,7 +30833,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -28352,7 +30847,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28367,11 +30862,11 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28381,7 +30876,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28391,8 +30886,8 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28404,7 +30899,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28421,39 +30916,117 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -28466,7 +31039,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28481,7 +31054,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28497,7 +31070,164 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field4 = append(m.Field4, &NinOptNative{}) + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28511,103 +31241,73 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field8 = append(m.Field8, &NidOptNative{}) + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if packedLen < 0 { + return ErrInvalidLengthThetest } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -28620,7 +31320,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28635,7 +31335,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -28649,7 +31349,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28664,11 +31364,11 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28678,7 +31378,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28688,8 +31388,8 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28701,7 +31401,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28729,7 +31429,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28746,7 +31446,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28762,7 +31462,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28776,7 +31476,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28792,7 +31492,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28802,7 +31502,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = bool(v != 0) default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28812,7 +31512,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28822,8 +31522,8 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28835,7 +31535,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28863,7 +31563,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28880,7 +31580,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28896,7 +31596,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28913,7 +31613,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NidOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28929,7 +31629,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28940,7 +31640,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -28950,7 +31650,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28960,8 +31660,8 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28973,7 +31673,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29001,7 +31701,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29015,7 +31715,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29031,7 +31731,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29046,13 +31746,13 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29062,7 +31762,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29072,8 +31772,8 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29085,7 +31785,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29113,7 +31813,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29130,7 +31830,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptStruct{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29146,7 +31846,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29161,13 +31861,13 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29177,7 +31877,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29187,8 +31887,8 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29200,7 +31900,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29228,7 +31928,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29242,7 +31942,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29258,7 +31958,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29272,13 +31972,13 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29288,7 +31988,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29298,8 +31998,8 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *CustomDash) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomDash) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29311,7 +32011,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29339,7 +32039,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29355,13 +32055,13 @@ func (m *CustomDash) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom_dash_type.Bytes m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29371,7 +32071,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29381,8 +32081,8 @@ func (m *CustomDash) Unmarshal(data []byte) error { } return nil } -func (m *NinOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29394,7 +32094,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29422,7 +32122,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29438,7 +32138,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = &v - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29454,7 +32154,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29470,13 +32170,13 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29486,7 +32186,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29496,8 +32196,8 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *NidRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29509,7 +32209,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29537,7 +32237,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29553,7 +32253,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29569,7 +32269,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29585,13 +32285,13 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29601,7 +32301,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29611,8 +32311,8 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29624,7 +32324,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29652,7 +32352,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29668,7 +32368,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29684,7 +32384,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29700,13 +32400,13 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29716,7 +32416,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29726,8 +32426,8 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29739,7 +32439,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29764,14 +32464,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -29783,10 +32483,10 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -29801,7 +32501,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -29821,7 +32521,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -29841,7 +32541,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -29861,7 +32561,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29881,7 +32581,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29902,7 +32602,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29917,7 +32617,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -29932,7 +32632,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29946,14 +32646,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -29963,7 +32663,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29973,8 +32673,8 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29986,7 +32686,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30011,14 +32711,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -30030,10 +32730,10 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -30048,7 +32748,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30065,7 +32765,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30081,7 +32781,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30098,7 +32798,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30114,7 +32814,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30134,7 +32834,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30155,7 +32855,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30176,7 +32876,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30191,7 +32891,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -30206,7 +32906,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30220,14 +32920,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30237,7 +32937,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30247,8 +32947,8 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30260,7 +32960,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30288,7 +32988,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30305,7 +33005,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30321,7 +33021,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30338,7 +33038,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NinOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30354,7 +33054,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30365,7 +33065,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30375,7 +33075,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30385,8 +33085,8 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30398,7 +33098,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30426,7 +33126,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30443,7 +33143,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptNativeUnion{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30459,7 +33159,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30476,7 +33176,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field2 == nil { m.Field2 = &NinOptStructUnion{} } - if err := m.Field2.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30492,7 +33192,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30509,13 +33209,13 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NinEmbeddedStructUnion{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30525,7 +33225,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30535,8 +33235,8 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *Tree) Unmarshal(data []byte) error { - l := len(data) +func (m *Tree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30548,7 +33248,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30576,7 +33276,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30593,7 +33293,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Or == nil { m.Or = &OrBranch{} } - if err := m.Or.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30609,7 +33309,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30626,7 +33326,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30642,7 +33342,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30659,13 +33359,13 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &Leaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30675,7 +33375,7 @@ func (m *Tree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30685,8 +33385,8 @@ func (m *Tree) Unmarshal(data []byte) error { } return nil } -func (m *OrBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *OrBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30698,7 +33398,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30726,7 +33426,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30740,7 +33440,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30756,7 +33456,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30770,13 +33470,13 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30786,7 +33486,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30796,8 +33496,8 @@ func (m *OrBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30809,7 +33509,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30837,7 +33537,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30851,7 +33551,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30867,7 +33567,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30881,13 +33581,13 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30897,7 +33597,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30907,8 +33607,8 @@ func (m *AndBranch) Unmarshal(data []byte) error { } return nil } -func (m *Leaf) Unmarshal(data []byte) error { - l := len(data) +func (m *Leaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30920,7 +33620,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30948,7 +33648,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Value |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -30967,7 +33667,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30982,11 +33682,11 @@ func (m *Leaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.StrValue = string(data[iNdEx:postIndex]) + m.StrValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -30996,7 +33696,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31006,8 +33706,8 @@ func (m *Leaf) Unmarshal(data []byte) error { } return nil } -func (m *DeepTree) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepTree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31019,7 +33719,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31047,7 +33747,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31064,7 +33764,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Down == nil { m.Down = &ADeepBranch{} } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31080,7 +33780,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31097,7 +33797,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndDeepBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31113,7 +33813,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31130,13 +33830,13 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &DeepLeaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31146,7 +33846,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31156,8 +33856,8 @@ func (m *DeepTree) Unmarshal(data []byte) error { } return nil } -func (m *ADeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *ADeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31169,7 +33869,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31197,7 +33897,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31211,13 +33911,13 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31227,7 +33927,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31237,8 +33937,8 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndDeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndDeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31250,7 +33950,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31278,7 +33978,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31292,7 +33992,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31308,7 +34008,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31322,13 +34022,13 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31338,7 +34038,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31348,8 +34048,8 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *DeepLeaf) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepLeaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31361,7 +34061,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31389,7 +34089,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31403,13 +34103,13 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Tree.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31419,7 +34119,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31429,8 +34129,8 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { } return nil } -func (m *Nil) Unmarshal(data []byte) error { - l := len(data) +func (m *Nil) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31442,7 +34142,7 @@ func (m *Nil) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31460,7 +34160,7 @@ func (m *Nil) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31470,7 +34170,7 @@ func (m *Nil) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31480,8 +34180,8 @@ func (m *Nil) Unmarshal(data []byte) error { } return nil } -func (m *NidOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31493,7 +34193,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31521,7 +34221,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field1 |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31530,7 +34230,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31540,7 +34240,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31550,8 +34250,8 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31563,7 +34263,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31591,7 +34291,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31611,7 +34311,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31631,7 +34331,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31641,7 +34341,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31651,7 +34351,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31661,8 +34361,8 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NidRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31674,7 +34374,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31691,68 +34391,194 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31762,7 +34588,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31772,8 +34598,8 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31785,7 +34611,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31802,68 +34628,194 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31873,7 +34825,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31883,8 +34835,8 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31896,7 +34848,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31924,7 +34876,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31944,7 +34896,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31964,7 +34916,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31974,7 +34926,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -31984,7 +34936,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31994,8 +34946,8 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32007,7 +34959,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32035,7 +34987,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32055,7 +35007,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32075,7 +35027,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32085,7 +35037,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32095,7 +35047,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32105,8 +35057,8 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32118,7 +35070,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32146,7 +35098,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32166,7 +35118,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32186,7 +35138,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32196,7 +35148,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32206,7 +35158,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32216,8 +35168,8 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *Timer) Unmarshal(data []byte) error { - l := len(data) +func (m *Timer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32229,7 +35181,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32254,14 +35206,14 @@ func (m *Timer) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Time1 = int64(data[iNdEx-8]) - m.Time1 |= int64(data[iNdEx-7]) << 8 - m.Time1 |= int64(data[iNdEx-6]) << 16 - m.Time1 |= int64(data[iNdEx-5]) << 24 - m.Time1 |= int64(data[iNdEx-4]) << 32 - m.Time1 |= int64(data[iNdEx-3]) << 40 - m.Time1 |= int64(data[iNdEx-2]) << 48 - m.Time1 |= int64(data[iNdEx-1]) << 56 + m.Time1 = int64(dAtA[iNdEx-8]) + m.Time1 |= int64(dAtA[iNdEx-7]) << 8 + m.Time1 |= int64(dAtA[iNdEx-6]) << 16 + m.Time1 |= int64(dAtA[iNdEx-5]) << 24 + m.Time1 |= int64(dAtA[iNdEx-4]) << 32 + m.Time1 |= int64(dAtA[iNdEx-3]) << 40 + m.Time1 |= int64(dAtA[iNdEx-2]) << 48 + m.Time1 |= int64(dAtA[iNdEx-1]) << 56 case 2: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) @@ -32271,14 +35223,14 @@ func (m *Timer) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Time2 = int64(data[iNdEx-8]) - m.Time2 |= int64(data[iNdEx-7]) << 8 - m.Time2 |= int64(data[iNdEx-6]) << 16 - m.Time2 |= int64(data[iNdEx-5]) << 24 - m.Time2 |= int64(data[iNdEx-4]) << 32 - m.Time2 |= int64(data[iNdEx-3]) << 40 - m.Time2 |= int64(data[iNdEx-2]) << 48 - m.Time2 |= int64(data[iNdEx-1]) << 56 + m.Time2 = int64(dAtA[iNdEx-8]) + m.Time2 |= int64(dAtA[iNdEx-7]) << 8 + m.Time2 |= int64(dAtA[iNdEx-6]) << 16 + m.Time2 |= int64(dAtA[iNdEx-5]) << 24 + m.Time2 |= int64(dAtA[iNdEx-4]) << 32 + m.Time2 |= int64(dAtA[iNdEx-3]) << 40 + m.Time2 |= int64(dAtA[iNdEx-2]) << 48 + m.Time2 |= int64(dAtA[iNdEx-1]) << 56 case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) @@ -32291,7 +35243,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32305,14 +35257,14 @@ func (m *Timer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32322,7 +35274,7 @@ func (m *Timer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32332,8 +35284,8 @@ func (m *Timer) Unmarshal(data []byte) error { } return nil } -func (m *MyExtendable) Unmarshal(data []byte) error { - l := len(data) +func (m *MyExtendable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32345,7 +35297,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32373,7 +35325,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32392,7 +35344,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32402,11 +35354,11 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32416,7 +35368,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32427,8 +35379,8 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } return nil } -func (m *OtherExtenable) Unmarshal(data []byte) error { - l := len(data) +func (m *OtherExtenable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32440,7 +35392,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32468,7 +35420,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32488,7 +35440,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32508,7 +35460,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32525,7 +35477,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if m.M == nil { m.M = &MyExtendable{} } - if err := m.M.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32540,7 +35492,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32550,11 +35502,11 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32564,7 +35516,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32575,8 +35527,8 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32588,7 +35540,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32616,7 +35568,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32636,7 +35588,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32656,7 +35608,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32673,7 +35625,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32689,7 +35641,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32706,13 +35658,13 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NM == nil { m.NM = &NestedDefinition_NestedMessage{} } - if err := m.NM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32722,7 +35674,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32732,8 +35684,8 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32745,7 +35697,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32770,14 +35722,14 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.NestedField1 = &v case 2: if wireType != 2 { @@ -32791,7 +35743,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32808,13 +35760,13 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32824,7 +35776,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32834,8 +35786,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32847,7 +35799,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32875,7 +35827,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32890,12 +35842,12 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.NestedNestedField1 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -32905,7 +35857,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32915,8 +35867,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) } return nil } -func (m *NestedScope) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32928,7 +35880,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32956,7 +35908,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32973,7 +35925,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.A == nil { m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32989,7 +35941,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -33009,7 +35961,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33026,13 +35978,13 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.C == nil { m.C = &NestedDefinition_NestedMessage{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33042,7 +35994,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33052,8 +36004,8 @@ func (m *NestedScope) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33065,7 +36017,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33090,14 +36042,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -33109,10 +36061,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -33127,7 +36079,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33147,7 +36099,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33167,7 +36119,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33187,7 +36139,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33207,7 +36159,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33228,7 +36180,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33247,10 +36199,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -33261,10 +36213,10 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -33275,14 +36227,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -33293,14 +36245,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -33314,7 +36266,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33335,7 +36287,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33350,7 +36302,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -33365,7 +36317,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33379,14 +36331,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33396,7 +36348,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33406,8 +36358,8 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { } return nil } -func (m *CustomContainer) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomContainer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33419,7 +36371,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33447,7 +36399,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33461,13 +36413,13 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CustomStruct.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33477,7 +36429,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33487,8 +36439,8 @@ func (m *CustomContainer) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33500,7 +36452,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33525,14 +36477,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldA = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -33543,10 +36495,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldB = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -33560,7 +36512,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldC |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33579,7 +36531,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldD |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33598,7 +36550,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldE |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33617,7 +36569,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldF |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33636,7 +36588,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33657,7 +36609,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33675,10 +36627,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.FieldI = uint32(data[iNdEx-4]) - m.FieldI |= uint32(data[iNdEx-3]) << 8 - m.FieldI |= uint32(data[iNdEx-2]) << 16 - m.FieldI |= uint32(data[iNdEx-1]) << 24 + m.FieldI = uint32(dAtA[iNdEx-4]) + m.FieldI |= uint32(dAtA[iNdEx-3]) << 8 + m.FieldI |= uint32(dAtA[iNdEx-2]) << 16 + m.FieldI |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) @@ -33688,10 +36640,10 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.FieldJ = int32(data[iNdEx-4]) - m.FieldJ |= int32(data[iNdEx-3]) << 8 - m.FieldJ |= int32(data[iNdEx-2]) << 16 - m.FieldJ |= int32(data[iNdEx-1]) << 24 + m.FieldJ = int32(dAtA[iNdEx-4]) + m.FieldJ |= int32(dAtA[iNdEx-3]) << 8 + m.FieldJ |= int32(dAtA[iNdEx-2]) << 16 + m.FieldJ |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) @@ -33701,14 +36653,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.FieldK = uint64(data[iNdEx-8]) - m.FieldK |= uint64(data[iNdEx-7]) << 8 - m.FieldK |= uint64(data[iNdEx-6]) << 16 - m.FieldK |= uint64(data[iNdEx-5]) << 24 - m.FieldK |= uint64(data[iNdEx-4]) << 32 - m.FieldK |= uint64(data[iNdEx-3]) << 40 - m.FieldK |= uint64(data[iNdEx-2]) << 48 - m.FieldK |= uint64(data[iNdEx-1]) << 56 + m.FieldK = uint64(dAtA[iNdEx-8]) + m.FieldK |= uint64(dAtA[iNdEx-7]) << 8 + m.FieldK |= uint64(dAtA[iNdEx-6]) << 16 + m.FieldK |= uint64(dAtA[iNdEx-5]) << 24 + m.FieldK |= uint64(dAtA[iNdEx-4]) << 32 + m.FieldK |= uint64(dAtA[iNdEx-3]) << 40 + m.FieldK |= uint64(dAtA[iNdEx-2]) << 48 + m.FieldK |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) @@ -33718,14 +36670,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.FieldL = int64(data[iNdEx-8]) - m.FieldL |= int64(data[iNdEx-7]) << 8 - m.FieldL |= int64(data[iNdEx-6]) << 16 - m.FieldL |= int64(data[iNdEx-5]) << 24 - m.FieldL |= int64(data[iNdEx-4]) << 32 - m.FieldL |= int64(data[iNdEx-3]) << 40 - m.FieldL |= int64(data[iNdEx-2]) << 48 - m.FieldL |= int64(data[iNdEx-1]) << 56 + m.FieldL = int64(dAtA[iNdEx-8]) + m.FieldL |= int64(dAtA[iNdEx-7]) << 8 + m.FieldL |= int64(dAtA[iNdEx-6]) << 16 + m.FieldL |= int64(dAtA[iNdEx-5]) << 24 + m.FieldL |= int64(dAtA[iNdEx-4]) << 32 + m.FieldL |= int64(dAtA[iNdEx-3]) << 40 + m.FieldL |= int64(dAtA[iNdEx-2]) << 48 + m.FieldL |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) @@ -33738,7 +36690,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33758,7 +36710,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33773,7 +36725,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = string(data[iNdEx:postIndex]) + m.FieldN = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -33787,7 +36739,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33801,14 +36753,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -33818,7 +36770,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33828,8 +36780,8 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33841,7 +36793,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33866,14 +36818,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -33885,10 +36837,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -33903,7 +36855,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33923,7 +36875,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33943,7 +36895,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33963,7 +36915,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33983,7 +36935,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -34004,7 +36956,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34023,10 +36975,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = &v case 10: if wireType != 5 { @@ -34037,10 +36989,10 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = &v case 11: if wireType != 1 { @@ -34051,14 +37003,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = &v case 12: if wireType != 1 { @@ -34069,14 +37021,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.FielL = &v case 13: if wireType != 0 { @@ -34090,7 +37042,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34111,7 +37063,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34126,7 +37078,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldN = &s iNdEx = postIndex case 15: @@ -34141,7 +37093,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34155,14 +37107,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34172,7 +37124,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34182,8 +37134,8 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34195,7 +37147,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34212,245 +37164,771 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.FieldA = append(m.FieldA, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.FieldA = append(m.FieldA, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.FieldA = append(m.FieldA, v2) case 2: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.FieldB = append(m.FieldB, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.FieldB = append(m.FieldB, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.FieldB = append(m.FieldB, v2) case 3: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldD = append(m.FieldD, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldD = append(m.FieldD, v) } - } - m.FieldC = append(m.FieldC, v) - case 4: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldE = append(m.FieldE, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldE = append(m.FieldE, v) } - } - m.FieldD = append(m.FieldD, v) - case 5: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldF = append(m.FieldF, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldF = append(m.FieldF, v) } - } - m.FieldE = append(m.FieldE, v) - case 6: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) } - } - m.FieldF = append(m.FieldF, v) - case 7: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - case 8: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.FieldI = append(m.FieldI, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.FieldI = append(m.FieldI, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - case 9: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.FieldI = append(m.FieldI, v) case 10: - if wireType != 5 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.FieldJ = append(m.FieldJ, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.FieldJ = append(m.FieldJ, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.FieldJ = append(m.FieldJ, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.FieldK = append(m.FieldK, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.FieldK = append(m.FieldK, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.FieldK = append(m.FieldK, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.FieldL = append(m.FieldL, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.FieldL = append(m.FieldL, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.FieldL = append(m.FieldL, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldM = append(m.FieldM, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldM = append(m.FieldM, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) } - m.FieldM = append(m.FieldM, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) @@ -34463,7 +37941,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34478,7 +37956,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = append(m.FieldN, string(data[iNdEx:postIndex])) + m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -34492,7 +37970,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34507,11 +37985,11 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], data[iNdEx:postIndex]) + copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34521,7 +37999,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34531,8 +38009,8 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34544,7 +38022,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34569,14 +38047,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -34588,10 +38066,10 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -34606,7 +38084,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34623,7 +38101,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldC == nil { m.FieldC = &NidOptNative{} } - if err := m.FieldC.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34639,7 +38117,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34654,7 +38132,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34670,7 +38148,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34690,7 +38168,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -34711,7 +38189,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34728,7 +38206,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldG == nil { m.FieldG = &NidOptNative{} } - if err := m.FieldG.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34744,7 +38222,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34765,7 +38243,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34780,7 +38258,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldI = &s iNdEx = postIndex case 15: @@ -34795,7 +38273,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34809,14 +38287,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldJ = append(m.FieldJ[:0], data[iNdEx:postIndex]...) + m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) if m.FieldJ == nil { m.FieldJ = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -34826,7 +38304,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34836,8 +38314,8 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameCustomType) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34849,7 +38327,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34877,7 +38355,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34893,7 +38371,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldA = &v - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34909,7 +38387,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34925,7 +38403,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldB = &v - if err := m.FieldB.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34941,7 +38419,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34957,7 +38435,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34973,7 +38451,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34989,13 +38467,13 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35005,7 +38483,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35015,8 +38493,8 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35028,7 +38506,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35056,7 +38534,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35073,7 +38551,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35089,7 +38567,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35106,7 +38584,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.FieldA == nil { m.FieldA = &NinOptNative{} } - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35122,7 +38600,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35133,7 +38611,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { m.FieldB = &b default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35143,7 +38621,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35153,8 +38631,8 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35166,7 +38644,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35194,7 +38672,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35203,10 +38681,123 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } m.FieldA = &v case 2: - if wireType != 0 { + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v TheTestEnum + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -35214,17 +38805,414 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + if (fieldNum >= 100) && (fieldNum < 200) { + var sizeOfWire int + for { + sizeOfWire++ + wire >>= 7 + if wire == 0 { + break + } + } + iNdEx -= sizeOfWire + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + iNdEx += skippy + } else { + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Unrecognized) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field1 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) + if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Inner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.FieldB = append(m.FieldB, v) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35234,7 +39222,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35244,8 +39232,8 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } return nil } -func (m *NoExtensionsMap) Unmarshal(data []byte) error { - l := len(data) +func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35257,7 +39245,7 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35267,17 +39255,17 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + return fmt.Errorf("proto: Embedded: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v int64 + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -35285,52 +39273,27 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } m.Field1 = &v default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetest - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -35339,8 +39302,8 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { } return nil } -func (m *Unrecognized) Unmarshal(data []byte) error { - l := len(data) +func (m *Node) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35352,7 +39315,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35362,15 +39325,15 @@ func (m *Unrecognized) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + return fmt.Errorf("proto: Node: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35380,7 +39343,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35395,12 +39358,43 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field1 = &s + s := string(dAtA[iNdEx:postIndex]) + m.Label = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Children = append(m.Children, &Node{}) + if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35410,6 +39404,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35419,8 +39414,8 @@ func (m *Unrecognized) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { - l := len(data) +func (m *NonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35432,7 +39427,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35442,15 +39437,15 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + return fmt.Errorf("proto: NonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -35460,7 +39455,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35474,44 +39469,16 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetest + if m.Field1 == nil { + m.Field1 = &T{} } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35521,7 +39488,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35531,8 +39498,8 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35544,7 +39511,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35554,17 +39521,17 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Inner: wiretype end group for non-group") + return fmt.Errorf("proto: NidOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -35572,17 +39539,27 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35592,6 +39569,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35601,8 +39579,8 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35614,7 +39592,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35624,15 +39602,15 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + return fmt.Errorf("proto: NinOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -35642,7 +39620,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35656,15 +39634,69 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field1 == nil { + m.Field1 = &T{} + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipThetest(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidRepNonByteCustomType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -35672,27 +39704,28 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthThetest } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35702,7 +39735,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35712,8 +39745,8 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35725,7 +39758,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35735,17 +39768,17 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Embedded: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetest @@ -35753,17 +39786,28 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetest + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35773,6 +39817,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35782,8 +39827,8 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { } return nil } -func (m *Node) Unmarshal(data []byte) error { - l := len(data) +func (m *ProtoType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35795,7 +39840,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35805,15 +39850,15 @@ func (m *Node) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Node: wiretype end group for non-group") + return fmt.Errorf("proto: ProtoType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35823,7 +39868,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35838,43 +39883,12 @@ func (m *Node) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetest - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetest - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetest(data[iNdEx:]) + skippy, err := skipThetest(dAtA[iNdEx:]) if err != nil { return err } @@ -35884,7 +39898,7 @@ func (m *Node) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35894,8 +39908,8 @@ func (m *Node) Unmarshal(data []byte) error { } return nil } -func skipThetest(data []byte) (n int, err error) { - l := len(data) +func skipThetest(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -35906,7 +39920,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35924,7 +39938,7 @@ func skipThetest(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -35941,7 +39955,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35964,7 +39978,7 @@ func skipThetest(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35975,7 +39989,7 @@ func skipThetest(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipThetest(data[start:]) + next, err := skipThetest(dAtA[start:]) if err != nil { return 0, err } @@ -35999,195 +40013,201 @@ var ( ErrIntOverflowThetest = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3012 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xf5, 0xd6, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x3f, 0x49, 0xde, - 0x9f, 0xa2, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0xda, 0xae, - 0x45, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x12, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0x4b, - 0xd7, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x8c, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xb8, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x28, 0x0a, 0x23, 0x71, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0x67, 0x77, 0x67, 0x66, 0x67, 0x66, 0x77, 0xb9, 0x4b, - 0x4b, 0x6e, 0x73, 0xa0, 0x48, 0xed, 0xf7, 0xde, 0xce, 0xdb, 0xf7, 0x7d, 0x6f, 0xf6, 0xed, 0xce, - 0xc0, 0xb9, 0xdd, 0xce, 0xd1, 0x4e, 0xa7, 0xb7, 0xdc, 0x37, 0x8e, 0x9a, 0xdd, 0xde, 0x41, 0xf3, - 0x50, 0xef, 0x2e, 0x9b, 0x07, 0xba, 0xa9, 0xf7, 0xcc, 0xa5, 0xe3, 0x6e, 0xc7, 0xec, 0x28, 0x31, - 0xeb, 0x77, 0xe6, 0xf2, 0x7e, 0xdb, 0x3c, 0xe8, 0xef, 0x2c, 0x21, 0xf3, 0xe5, 0xfd, 0xce, 0x7e, - 0x67, 0xd9, 0x06, 0x77, 0xfa, 0x7b, 0xf6, 0x7f, 0xf6, 0x3f, 0xf6, 0x2f, 0xc7, 0x49, 0xfb, 0x27, - 0x80, 0xc9, 0x7a, 0xbb, 0xb5, 0x75, 0x6c, 0xd6, 0x9b, 0x66, 0xfb, 0x9e, 0xae, 0x4c, 0xc3, 0xd1, - 0x6b, 0x6d, 0xfd, 0xb0, 0x95, 0x57, 0xa5, 0x39, 0x69, 0x51, 0x2a, 0xc7, 0x4e, 0x9e, 0xcd, 0x8e, - 0x34, 0x46, 0xf7, 0xec, 0x63, 0x14, 0x2d, 0xa8, 0x32, 0x42, 0x65, 0x0e, 0x2d, 0x50, 0x74, 0x45, - 0x05, 0x08, 0x8d, 0x73, 0xe8, 0x0a, 0x45, 0x8b, 0x6a, 0x0c, 0xa1, 0x80, 0x43, 0x8b, 0x14, 0x5d, - 0x55, 0xe3, 0x08, 0x9d, 0xe0, 0xd0, 0x55, 0x8a, 0xae, 0xa9, 0xa3, 0x08, 0x8d, 0x71, 0xe8, 0x1a, - 0x45, 0xaf, 0xa8, 0xe7, 0x10, 0x7a, 0x9e, 0x43, 0xaf, 0x50, 0x74, 0x5d, 0x4d, 0x20, 0x54, 0xe1, - 0xd0, 0x75, 0x8a, 0x5e, 0x55, 0xc7, 0x10, 0x7a, 0x8e, 0x43, 0xaf, 0x2a, 0x33, 0xf0, 0x9c, 0x93, - 0x8d, 0x9c, 0x0a, 0x11, 0x3c, 0x85, 0xe1, 0x73, 0x4e, 0x3a, 0x72, 0x2e, 0x9e, 0x57, 0xc7, 0x11, - 0x3e, 0xca, 0xe3, 0x79, 0x17, 0x2f, 0xa8, 0x49, 0x84, 0xa7, 0x78, 0xbc, 0xe0, 0xe2, 0x2b, 0xea, - 0x04, 0xc2, 0x13, 0x3c, 0xbe, 0xe2, 0xe2, 0x45, 0x75, 0x12, 0xe1, 0x63, 0x3c, 0x5e, 0x74, 0xf1, - 0x55, 0x75, 0x0a, 0xe1, 0x49, 0x1e, 0x5f, 0xd5, 0xde, 0xb7, 0xe9, 0x35, 0x5c, 0x7a, 0xd3, 0x3c, - 0xbd, 0x94, 0xd8, 0x34, 0x4f, 0x2c, 0xa5, 0x34, 0xcd, 0x53, 0x4a, 0xc9, 0x4c, 0xf3, 0x64, 0x52, - 0x1a, 0xd3, 0x3c, 0x8d, 0x94, 0xc0, 0x34, 0x4f, 0x20, 0xa5, 0x2e, 0xcd, 0x53, 0x47, 0x49, 0x4b, - 0xf3, 0xa4, 0x51, 0xba, 0xd2, 0x3c, 0x5d, 0x94, 0x28, 0x55, 0x20, 0xca, 0xa5, 0x48, 0x15, 0x28, - 0x72, 0xc9, 0x51, 0x05, 0x72, 0x5c, 0x5a, 0x54, 0x81, 0x16, 0x97, 0x10, 0x55, 0x20, 0xc4, 0xa5, - 0x42, 0x15, 0xa8, 0x70, 0x49, 0xc0, 0x35, 0xd6, 0xd0, 0x8f, 0x7d, 0x6a, 0x0c, 0x0c, 0xac, 0x31, - 0x30, 0xb0, 0xc6, 0xc0, 0xc0, 0x1a, 0x03, 0x03, 0x6b, 0x0c, 0x0c, 0xac, 0x31, 0x30, 0xb0, 0xc6, - 0xc0, 0xc0, 0x1a, 0x03, 0x03, 0x6b, 0x0c, 0x0c, 0xae, 0x31, 0x10, 0x52, 0x63, 0x20, 0xa4, 0xc6, - 0x40, 0x48, 0x8d, 0x81, 0x90, 0x1a, 0x03, 0x21, 0x35, 0x06, 0x02, 0x6b, 0xcc, 0xa5, 0x37, 0xcd, - 0xd3, 0xeb, 0x5b, 0x63, 0x20, 0xa0, 0xc6, 0x40, 0x40, 0x8d, 0x81, 0x80, 0x1a, 0x03, 0x01, 0x35, - 0x06, 0x02, 0x6a, 0x0c, 0x04, 0xd4, 0x18, 0x08, 0xa8, 0x31, 0x10, 0x54, 0x63, 0x20, 0xb0, 0xc6, - 0x40, 0x60, 0x8d, 0x81, 0xc0, 0x1a, 0x03, 0x81, 0x35, 0x06, 0x02, 0x6b, 0x0c, 0xb0, 0x35, 0xf6, - 0x27, 0x00, 0x15, 0xa7, 0xc6, 0x6e, 0x37, 0x77, 0x7f, 0xa0, 0xb7, 0x30, 0x15, 0x33, 0x42, 0xa5, - 0x8d, 0x5a, 0xd4, 0xa5, 0x5c, 0x4a, 0x66, 0x84, 0x5a, 0xe3, 0xf1, 0x02, 0xc5, 0x49, 0xb5, 0xf1, - 0xf8, 0x0a, 0xc5, 0x49, 0xbd, 0xf1, 0x78, 0x91, 0xe2, 0xa4, 0xe2, 0x78, 0x7c, 0x95, 0xe2, 0xa4, - 0xe6, 0x78, 0x7c, 0x8d, 0xe2, 0xa4, 0xea, 0x78, 0xfc, 0x0a, 0xc5, 0x49, 0xdd, 0xf1, 0xf8, 0x3a, - 0xc5, 0x49, 0xe5, 0xf1, 0xf8, 0x55, 0x65, 0x4e, 0xac, 0x3d, 0x62, 0x40, 0xa9, 0x9d, 0x13, 0xab, - 0x4f, 0xb0, 0xc8, 0xbb, 0x16, 0xa4, 0xfe, 0x04, 0x8b, 0x82, 0x6b, 0x41, 0x2a, 0x50, 0xb0, 0x58, - 0xd1, 0x1e, 0xda, 0xf4, 0x19, 0x22, 0x7d, 0x19, 0x81, 0x3e, 0x99, 0xa1, 0x2e, 0x23, 0x50, 0x27, - 0x33, 0xb4, 0x65, 0x04, 0xda, 0x64, 0x86, 0xb2, 0x8c, 0x40, 0x99, 0xcc, 0xd0, 0x95, 0x11, 0xe8, - 0x92, 0x19, 0xaa, 0x32, 0x02, 0x55, 0x32, 0x43, 0x53, 0x46, 0xa0, 0x49, 0x66, 0x28, 0xca, 0x08, - 0x14, 0xc9, 0x0c, 0x3d, 0x19, 0x81, 0x1e, 0x99, 0xa1, 0x66, 0x5a, 0xa4, 0x46, 0x66, 0x69, 0x99, - 0x16, 0x69, 0x91, 0x59, 0x4a, 0xa6, 0x45, 0x4a, 0x64, 0x96, 0x8e, 0x69, 0x91, 0x0e, 0x99, 0xa5, - 0xe2, 0x4b, 0x99, 0x74, 0x84, 0xef, 0x9a, 0xdd, 0xfe, 0xae, 0x79, 0xaa, 0x8e, 0x30, 0xc7, 0xb5, - 0x0f, 0xe3, 0x05, 0x65, 0xc9, 0x6e, 0x58, 0xd9, 0x8e, 0x53, 0xb8, 0x83, 0xe5, 0xb8, 0xc6, 0x82, - 0xf1, 0x30, 0xfc, 0x3d, 0x8a, 0xa7, 0xea, 0x0d, 0x73, 0x5c, 0x9b, 0x11, 0x1e, 0xdf, 0xfa, 0x4b, - 0xef, 0xd8, 0x9e, 0xc8, 0xa4, 0x63, 0xc3, 0xe9, 0x1f, 0xb6, 0x63, 0xcb, 0x86, 0xa7, 0x9c, 0x26, - 0x3b, 0x1b, 0x9e, 0x6c, 0xcf, 0x5d, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x4f, 0x2d, 0x4d, 0xea, 0xd9, - 0xf6, 0x5b, 0x58, 0xc1, 0x68, 0x32, 0xf1, 0x51, 0xf0, 0xb0, 0xfd, 0x56, 0x8e, 0x9b, 0x4a, 0x86, - 0x55, 0x30, 0x18, 0x5a, 0xc1, 0xc3, 0x76, 0x5e, 0x39, 0x6e, 0x7a, 0x19, 0x5a, 0xc1, 0x2f, 0xa1, - 0x1f, 0xc2, 0x0a, 0x76, 0xd3, 0x3f, 0x6c, 0x3f, 0x94, 0x0d, 0x4f, 0xb9, 0xaf, 0x82, 0xc1, 0x10, - 0x0a, 0x8e, 0xd2, 0x1f, 0x65, 0xc3, 0x53, 0xeb, 0xaf, 0xe0, 0x53, 0x77, 0x33, 0x1f, 0x48, 0xf0, - 0x3c, 0x1a, 0xa6, 0x76, 0xb4, 0xa3, 0xb7, 0x5a, 0x7a, 0x0b, 0xe7, 0x31, 0xc7, 0xcd, 0x04, 0x01, - 0x54, 0x3f, 0x7d, 0x36, 0xeb, 0x66, 0x78, 0x15, 0x26, 0x9c, 0x0c, 0xe7, 0x72, 0xea, 0x89, 0x14, - 0x32, 0xc3, 0x25, 0xf6, 0xb0, 0xa9, 0x72, 0x91, 0xb8, 0xa1, 0x7b, 0xcf, 0xdf, 0x24, 0x66, 0x96, - 0xc3, 0x26, 0xf9, 0x9c, 0xf6, 0x33, 0x3b, 0x42, 0xe3, 0xd4, 0x11, 0x2e, 0x47, 0x8a, 0x90, 0x89, - 0xed, 0x75, 0x4f, 0x6c, 0x4c, 0x54, 0x7d, 0x38, 0x85, 0xdc, 0xea, 0xc8, 0x3d, 0x5a, 0x48, 0x8e, - 0x8d, 0x30, 0x1f, 0xe4, 0x38, 0x59, 0xb2, 0x1e, 0x54, 0xd2, 0xfc, 0x1c, 0xa1, 0xb5, 0xad, 0x61, - 0x0d, 0x6e, 0xd8, 0x6c, 0xd0, 0xb0, 0xee, 0xcc, 0x4e, 0x07, 0xcc, 0x06, 0x0d, 0xe8, 0xd6, 0x10, - 0x1d, 0xea, 0x3e, 0xb9, 0x39, 0x57, 0xfa, 0x3d, 0xb3, 0x73, 0x84, 0x26, 0x07, 0xf9, 0x46, 0xcb, - 0x1e, 0x23, 0x59, 0x4e, 0x5a, 0x41, 0xfd, 0xe3, 0xd9, 0x6c, 0xec, 0x4e, 0x1f, 0xc5, 0x2a, 0xb7, - 0x5b, 0xca, 0x4d, 0x18, 0xff, 0x76, 0xf3, 0xb0, 0xaf, 0xdb, 0xb7, 0x88, 0x64, 0xb9, 0x88, 0x0d, - 0x2e, 0x05, 0xbe, 0x23, 0xb2, 0x06, 0x5e, 0xde, 0xb5, 0x4f, 0xbd, 0x74, 0xa7, 0x6d, 0x98, 0xf9, - 0xc2, 0x7a, 0x23, 0x7e, 0xcf, 0x3a, 0x85, 0xf6, 0x3d, 0x08, 0x9d, 0x31, 0xab, 0xcd, 0xde, 0x81, - 0x52, 0x27, 0x67, 0x76, 0x86, 0x5e, 0x47, 0x67, 0x2d, 0x46, 0x39, 0xeb, 0xe5, 0x16, 0xf2, 0xbe, - 0x6c, 0x3e, 0x38, 0xd6, 0x97, 0xca, 0x0f, 0xd0, 0x71, 0x72, 0xf6, 0x63, 0x72, 0xd7, 0xc3, 0xd7, - 0xa5, 0x32, 0xd7, 0x95, 0xe0, 0xae, 0xe9, 0x1a, 0x7f, 0x4d, 0xb9, 0x17, 0xbd, 0x9e, 0xfb, 0xe4, - 0x26, 0x21, 0x64, 0x12, 0x84, 0x65, 0x12, 0x9c, 0x36, 0x93, 0xc7, 0x64, 0x7e, 0x14, 0xae, 0x15, - 0x0c, 0xba, 0x56, 0x70, 0x9a, 0x6b, 0xfd, 0xb7, 0x53, 0xad, 0xb4, 0x9e, 0xee, 0x18, 0xed, 0x8e, - 0xf1, 0x95, 0x7b, 0x17, 0x74, 0xa6, 0x5d, 0x40, 0x29, 0x76, 0xf2, 0x68, 0x56, 0xd2, 0x3e, 0x90, - 0xc9, 0x95, 0x3b, 0x85, 0xf4, 0x62, 0x57, 0xfe, 0x55, 0xe9, 0xa9, 0x5e, 0x46, 0x86, 0x7e, 0x29, - 0xc1, 0xb4, 0x67, 0x26, 0x77, 0xd2, 0x74, 0xb6, 0xd3, 0xb9, 0x31, 0xec, 0x74, 0x8e, 0x03, 0xfc, - 0x9d, 0x04, 0x5f, 0x15, 0xa6, 0x57, 0x27, 0xbc, 0x65, 0x21, 0xbc, 0xd7, 0xbc, 0x23, 0xd9, 0x86, - 0x4c, 0x74, 0x2c, 0xbd, 0x82, 0x03, 0x73, 0x66, 0xca, 0x7b, 0x51, 0xe0, 0x7d, 0x9a, 0x3a, 0xf8, - 0xa4, 0x8b, 0x28, 0x00, 0x87, 0xdd, 0x81, 0xb1, 0xed, 0xae, 0x6e, 0xbd, 0x82, 0x90, 0xb7, 0xba, - 0x38, 0xc2, 0x49, 0xc7, 0x7f, 0xab, 0x5b, 0xee, 0x36, 0x8d, 0xdd, 0x83, 0x86, 0xdc, 0xe9, 0xa2, - 0x9b, 0x2d, 0xd8, 0x30, 0x5a, 0x38, 0xa2, 0x29, 0xc7, 0x00, 0x1d, 0xc0, 0x16, 0xa0, 0x69, 0xb4, - 0xd0, 0x29, 0x62, 0xb7, 0xf4, 0xe6, 0x1e, 0x0e, 0x02, 0x3a, 0x36, 0xd6, 0x91, 0x46, 0xec, 0x10, - 0xfd, 0xc5, 0x03, 0x7e, 0x17, 0x26, 0xc8, 0x89, 0x95, 0x79, 0xcb, 0x63, 0xcf, 0xc4, 0xc3, 0x62, - 0x0f, 0x2b, 0x1c, 0x7c, 0xe7, 0x42, 0x7e, 0x7b, 0xa6, 0xb2, 0x00, 0xe3, 0x8d, 0xf6, 0xfe, 0x81, - 0x89, 0x07, 0xf7, 0x9a, 0xc5, 0xbb, 0x16, 0xac, 0xdd, 0x85, 0x63, 0x34, 0xa2, 0x33, 0x3e, 0x75, - 0xd5, 0xb9, 0x34, 0xf4, 0x24, 0xcc, 0xdc, 0x4f, 0xc8, 0x7b, 0x4b, 0x67, 0xf6, 0x52, 0xe6, 0x60, - 0x02, 0xa5, 0xd9, 0x9d, 0xf4, 0x49, 0x47, 0x9a, 0xe8, 0xe1, 0xa3, 0xda, 0xfb, 0x12, 0x4c, 0x54, - 0x75, 0xfd, 0xd8, 0x4e, 0xf8, 0x1b, 0x30, 0x56, 0xed, 0xfc, 0xd0, 0xc0, 0x01, 0x9e, 0xc7, 0x19, - 0xb5, 0x60, 0x9c, 0xd3, 0x58, 0x0b, 0xc1, 0xc8, 0x8c, 0xc9, 0xfb, 0x2b, 0x34, 0xef, 0x8c, 0x9d, - 0x9d, 0x7b, 0x8d, 0xcb, 0x3d, 0x26, 0xd0, 0x32, 0xf2, 0xe4, 0xff, 0x0a, 0x1c, 0x67, 0x46, 0x51, - 0x16, 0x71, 0x18, 0xb2, 0xe8, 0xc8, 0xe6, 0xca, 0x8a, 0x44, 0xd3, 0xe1, 0x04, 0x37, 0xb0, 0xe5, - 0xca, 0xa4, 0x38, 0xc0, 0xd5, 0x4e, 0x73, 0x96, 0x4f, 0xb3, 0xbf, 0x29, 0x4e, 0x75, 0xce, 0xc9, - 0x91, 0x9d, 0xee, 0x79, 0x47, 0x9c, 0xc1, 0x24, 0x9a, 0xe8, 0xb7, 0x16, 0x87, 0xa0, 0xde, 0x3e, - 0xd4, 0xde, 0x86, 0xd0, 0x29, 0xf9, 0x9a, 0xd1, 0x3f, 0x12, 0xaa, 0x6e, 0x92, 0x24, 0x78, 0xfb, - 0x40, 0xdf, 0x46, 0xdf, 0x96, 0x09, 0xdf, 0x4f, 0x59, 0x13, 0x0c, 0x74, 0x4a, 0xcc, 0xf6, 0x7f, - 0x33, 0xd4, 0xdf, 0xb7, 0x13, 0xb3, 0x4c, 0x55, 0xc7, 0xf4, 0xae, 0x6e, 0x6e, 0x18, 0x1d, 0xf3, - 0x40, 0xef, 0x0a, 0x1e, 0x05, 0x65, 0x85, 0x2b, 0xd8, 0xc9, 0xc2, 0xeb, 0xd4, 0x23, 0xd0, 0x69, - 0x45, 0xfb, 0xd0, 0x0e, 0xd0, 0x6a, 0x05, 0x3c, 0x17, 0x08, 0x22, 0x5c, 0xa0, 0xb2, 0xc6, 0xf5, - 0x6f, 0x03, 0xc2, 0x14, 0x1e, 0x2d, 0xaf, 0x72, 0xcf, 0x39, 0x83, 0x83, 0xe5, 0x9f, 0x31, 0x49, - 0x4e, 0x49, 0xc8, 0x6f, 0x86, 0x86, 0x1c, 0xd0, 0xdd, 0x0e, 0x9b, 0x53, 0x10, 0x35, 0xa7, 0x7f, - 0xa4, 0x1d, 0x87, 0x75, 0xb8, 0xaa, 0xef, 0x35, 0xfb, 0x87, 0xa6, 0x72, 0x29, 0x94, 0xfb, 0x92, - 0x54, 0xa1, 0xa1, 0x16, 0xa3, 0xd2, 0x5f, 0x92, 0xcb, 0x65, 0x1a, 0xee, 0x95, 0x21, 0x24, 0x50, - 0x92, 0x2b, 0x15, 0x3a, 0x6d, 0x27, 0x1e, 0xa2, 0x2a, 0x7e, 0xfc, 0x68, 0x76, 0x44, 0xfb, 0x2d, - 0x0a, 0x1e, 0x5b, 0x32, 0xc2, 0xbd, 0x2c, 0x04, 0x7f, 0x81, 0xcc, 0x19, 0x7e, 0x19, 0xf8, 0xaf, - 0x89, 0xf7, 0x2f, 0x12, 0x54, 0x3d, 0xb1, 0x92, 0x7c, 0xe7, 0x22, 0x85, 0x5c, 0x92, 0x6a, 0xff, - 0xfb, 0x9c, 0xdf, 0x85, 0xf1, 0xed, 0xf6, 0x91, 0xde, 0xb5, 0xee, 0x04, 0xd6, 0x0f, 0x27, 0x64, - 0xb2, 0x98, 0x13, 0x37, 0xad, 0x43, 0x04, 0x73, 0x82, 0xe3, 0x30, 0x6b, 0x3d, 0x21, 0x56, 0x6d, - 0x9a, 0x4d, 0x3b, 0x82, 0x24, 0x9d, 0x5f, 0xd1, 0x11, 0x6d, 0x05, 0x26, 0x37, 0x1f, 0xd4, 0xee, - 0x9b, 0xba, 0xd1, 0x6a, 0xee, 0x1c, 0x8a, 0x6b, 0xa0, 0xa4, 0x5f, 0xcd, 0x67, 0xe3, 0x89, 0x56, - 0xea, 0x44, 0x2a, 0xc5, 0xec, 0x78, 0xee, 0xc1, 0xc9, 0x2d, 0x2b, 0x6c, 0xdb, 0x8f, 0x73, 0x73, - 0x46, 0x07, 0xf4, 0xe2, 0x85, 0xa6, 0x0c, 0xb8, 0x4d, 0xd9, 0x1c, 0x94, 0x36, 0xf9, 0xd6, 0x89, - 0x8d, 0xa3, 0x21, 0x1d, 0x65, 0x63, 0x89, 0xc9, 0xd4, 0x79, 0xf4, 0x17, 0xa6, 0x26, 0xf0, 0xb8, - 0x7f, 0x05, 0x30, 0xe5, 0xb4, 0x3a, 0x88, 0xc4, 0xb6, 0xd1, 0x36, 0xbd, 0xfd, 0x2a, 0x8d, 0x58, - 0xf9, 0x06, 0x1c, 0xb3, 0x52, 0x6a, 0x63, 0x98, 0xb0, 0x8b, 0xb8, 0x45, 0x11, 0x4e, 0x81, 0x0f, - 0xd8, 0xd2, 0x19, 0xd3, 0x89, 0x0f, 0x7a, 0xc0, 0x00, 0xf5, 0xfa, 0x26, 0xbe, 0xb9, 0x15, 0x07, - 0xba, 0x6e, 0xea, 0xbd, 0x5e, 0x73, 0x5f, 0xc7, 0xff, 0xe1, 0x63, 0xbd, 0xfd, 0x06, 0x30, 0xea, - 0x9b, 0x48, 0x36, 0x32, 0x3a, 0x8d, 0xd3, 0xf0, 0xce, 0x47, 0x39, 0x4d, 0x43, 0x36, 0x36, 0x33, - 0x7f, 0x96, 0xe0, 0x04, 0x77, 0x14, 0xdd, 0x6d, 0x93, 0xce, 0x01, 0xe6, 0x72, 0x47, 0x1b, 0x49, - 0x83, 0x39, 0x46, 0x62, 0x96, 0x4f, 0x19, 0x73, 0x66, 0x03, 0x3d, 0xb5, 0xf3, 0xc7, 0x95, 0x25, - 0xa8, 0xb0, 0x87, 0x70, 0x10, 0xd0, 0x6e, 0xa8, 0x15, 0xc3, 0x83, 0x68, 0xff, 0x87, 0x66, 0x61, - 0x9a, 0x57, 0x65, 0x0a, 0x8e, 0x6f, 0xdf, 0xbd, 0x5d, 0xfb, 0x7e, 0xbd, 0xf6, 0xee, 0x76, 0xad, - 0x9a, 0x92, 0xb4, 0xdf, 0x4b, 0x70, 0x1c, 0xb7, 0xad, 0xbb, 0x9d, 0x63, 0x5d, 0x29, 0x43, 0x69, - 0x03, 0xeb, 0xe1, 0xc5, 0xe2, 0x96, 0x9a, 0xe8, 0xee, 0x24, 0x95, 0xa3, 0x53, 0x2d, 0xed, 0x28, - 0x05, 0x28, 0x55, 0x30, 0xc1, 0xd1, 0x98, 0x91, 0x76, 0xb5, 0x7f, 0x01, 0xf8, 0x0a, 0xdb, 0x46, - 0x93, 0xf9, 0xe4, 0x22, 0xff, 0xdc, 0x54, 0x1a, 0xcb, 0x17, 0x56, 0x8a, 0x4b, 0xd6, 0x1f, 0x2a, - 0xc9, 0x8b, 0xfc, 0x23, 0x94, 0xd7, 0xc4, 0xb3, 0x4d, 0xa4, 0x14, 0x63, 0x50, 0xcf, 0x36, 0x11, - 0x0e, 0xf5, 0x6c, 0x13, 0xe1, 0x50, 0xcf, 0x36, 0x11, 0x0e, 0xf5, 0x2c, 0x05, 0x70, 0xa8, 0x67, - 0x9b, 0x08, 0x87, 0x7a, 0xb6, 0x89, 0x70, 0xa8, 0x77, 0x9b, 0x08, 0x86, 0x03, 0xb7, 0x89, 0xf0, - 0xb8, 0x77, 0x9b, 0x08, 0x8f, 0x7b, 0xb7, 0x89, 0x94, 0x50, 0x7f, 0xd6, 0xd7, 0x83, 0x17, 0x1d, - 0x78, 0xff, 0x41, 0xcf, 0x80, 0xee, 0x04, 0xbc, 0x05, 0xa7, 0x9c, 0xf7, 0x11, 0x95, 0x8e, 0x61, - 0x36, 0xdb, 0x06, 0x9a, 0x8a, 0xbf, 0x0e, 0x93, 0xce, 0x21, 0xe7, 0x29, 0xc7, 0xef, 0x29, 0xd0, - 0xc1, 0xf1, 0x74, 0x9b, 0xdc, 0x65, 0xac, 0xb5, 0x2f, 0x63, 0x30, 0xed, 0xc0, 0xf5, 0xe6, 0x91, - 0xce, 0x6d, 0x32, 0x5a, 0x10, 0x96, 0x94, 0x26, 0x2d, 0xf7, 0xe7, 0xcf, 0x66, 0x9d, 0xa3, 0x1b, - 0x54, 0x4c, 0x0b, 0xc2, 0xe2, 0x12, 0x6f, 0xe7, 0xde, 0x7f, 0x16, 0x84, 0x8d, 0x47, 0xbc, 0x1d, - 0xbd, 0xdd, 0x50, 0x3b, 0xb2, 0x05, 0x89, 0xb7, 0xab, 0x52, 0x95, 0x2d, 0x08, 0x9b, 0x91, 0x78, - 0xbb, 0x1a, 0xd5, 0xdb, 0x82, 0xb0, 0xf4, 0xc4, 0xdb, 0x5d, 0xa3, 0xca, 0x5b, 0x10, 0x16, 0xa1, - 0x78, 0xbb, 0x6f, 0x52, 0x0d, 0x2e, 0x08, 0x5b, 0x95, 0x78, 0xbb, 0xeb, 0x54, 0x8d, 0x0b, 0xc2, - 0xa6, 0x25, 0xde, 0xee, 0x06, 0xd5, 0xe5, 0xa2, 0xb8, 0x7d, 0x89, 0x37, 0xbc, 0xe9, 0x2a, 0x74, - 0x51, 0xdc, 0xc8, 0xc4, 0x5b, 0x7e, 0xcb, 0xd5, 0xea, 0xa2, 0xb8, 0xa5, 0x89, 0xb7, 0xbc, 0xe5, - 0xaa, 0x76, 0x51, 0x5c, 0x2a, 0xe3, 0x2d, 0x37, 0x5d, 0xfd, 0x2e, 0x8a, 0x8b, 0x66, 0xbc, 0x65, - 0xdd, 0x55, 0xf2, 0xa2, 0xb8, 0x7c, 0xc6, 0x5b, 0x6e, 0xb9, 0xef, 0xd0, 0x3f, 0x12, 0xe4, 0xc7, - 0x6c, 0x82, 0xd2, 0x04, 0xf9, 0x41, 0x1f, 0xe9, 0x69, 0x82, 0xf4, 0xa0, 0x8f, 0xec, 0x34, 0x41, - 0x76, 0xd0, 0x47, 0x72, 0x9a, 0x20, 0x39, 0xe8, 0x23, 0x37, 0x4d, 0x90, 0x1b, 0xf4, 0x91, 0x9a, - 0x26, 0x48, 0x0d, 0xfa, 0xc8, 0x4c, 0x13, 0x64, 0x06, 0x7d, 0x24, 0xa6, 0x09, 0x12, 0x83, 0x3e, - 0xf2, 0xd2, 0x04, 0x79, 0x41, 0x1f, 0x69, 0xcd, 0x8b, 0xd2, 0x82, 0x7e, 0xb2, 0x9a, 0x17, 0x65, - 0x05, 0xfd, 0x24, 0xf5, 0xff, 0xa2, 0xa4, 0xc6, 0x90, 0x55, 0xdc, 0x3a, 0xc4, 0xa8, 0x69, 0x5e, - 0x54, 0x13, 0xf4, 0x53, 0xd2, 0xbc, 0xa8, 0x24, 0xe8, 0xa7, 0xa2, 0x79, 0x51, 0x45, 0xd0, 0x4f, - 0x41, 0x4f, 0x44, 0x05, 0xb9, 0x5b, 0x7c, 0x34, 0x61, 0x45, 0x31, 0x4c, 0x41, 0x20, 0x82, 0x82, - 0x40, 0x04, 0x05, 0x81, 0x08, 0x0a, 0x02, 0x11, 0x14, 0x04, 0x22, 0x28, 0x08, 0x44, 0x50, 0x10, - 0x88, 0xa0, 0x20, 0x10, 0x45, 0x41, 0x20, 0x92, 0x82, 0x40, 0x90, 0x82, 0xe6, 0xc5, 0x0d, 0x0f, - 0xd0, 0x6f, 0x42, 0x9a, 0x17, 0x57, 0x3e, 0xc3, 0x25, 0x04, 0x22, 0x49, 0x08, 0x04, 0x49, 0xe8, - 0x23, 0xd4, 0x48, 0x71, 0x12, 0xc2, 0xcb, 0x43, 0x67, 0x35, 0x03, 0xad, 0x45, 0xd8, 0x5f, 0xe1, - 0xa7, 0xa9, 0xb5, 0x08, 0x6b, 0xd4, 0x83, 0x74, 0xe6, 0x9d, 0x85, 0x6a, 0x11, 0x66, 0xa1, 0x6b, - 0x54, 0x43, 0x6b, 0x11, 0xf6, 0x5d, 0x78, 0xb5, 0xb7, 0x3e, 0x68, 0x12, 0xb8, 0x1e, 0x69, 0x12, - 0xb8, 0x11, 0x69, 0x12, 0xb8, 0xe9, 0x32, 0xf8, 0x13, 0x19, 0xbe, 0xea, 0x32, 0xe8, 0xfc, 0xda, - 0x7e, 0x70, 0x6c, 0x4d, 0x01, 0xee, 0x0a, 0x95, 0x42, 0x56, 0x6d, 0x18, 0x1a, 0xad, 0xf5, 0x9b, - 0xdb, 0xfc, 0x5a, 0x55, 0x69, 0xd8, 0xf5, 0x1b, 0x86, 0x71, 0xfc, 0x2e, 0x74, 0x1e, 0x82, 0x1b, - 0xad, 0x9e, 0x3d, 0x5b, 0xf8, 0x0d, 0x5b, 0x69, 0x80, 0x76, 0xab, 0xa7, 0x34, 0xe0, 0xa8, 0x3d, - 0x6e, 0xcf, 0xa6, 0xf7, 0x34, 0x03, 0x23, 0xea, 0xed, 0x81, 0x7b, 0xda, 0x13, 0x09, 0xce, 0x71, - 0x52, 0x3e, 0x9b, 0x15, 0x83, 0xb7, 0x22, 0xad, 0x18, 0x70, 0x05, 0xe2, 0xae, 0x1e, 0x7c, 0xcd, - 0xbb, 0x50, 0xcd, 0x56, 0x89, 0xb8, 0x92, 0xf0, 0x63, 0x38, 0xe9, 0x5e, 0x81, 0xfd, 0xc8, 0xb6, - 0x1a, 0xfe, 0x32, 0xd3, 0xaf, 0x34, 0x57, 0x85, 0x97, 0x68, 0x03, 0xdd, 0x68, 0xb5, 0x6a, 0x25, - 0xf4, 0xc4, 0xd9, 0xb1, 0x5f, 0x00, 0xf4, 0x50, 0xb2, 0x7a, 0x9b, 0xcd, 0xe3, 0xb0, 0x77, 0x11, - 0x09, 0xab, 0x35, 0x3f, 0xf9, 0x15, 0x6a, 0xcf, 0x2f, 0xc1, 0xe4, 0x1d, 0xa3, 0xab, 0xef, 0x76, - 0xf6, 0x8d, 0xf6, 0x8f, 0xf4, 0x96, 0xe0, 0x38, 0x46, 0x1c, 0x4b, 0xb1, 0xa7, 0x96, 0xf5, 0xcf, - 0x25, 0x78, 0x81, 0x35, 0xff, 0x0e, 0xe2, 0xfe, 0x86, 0x61, 0xf5, 0xf4, 0x6f, 0xc3, 0x84, 0x8e, - 0x89, 0xb3, 0xef, 0x5d, 0xe3, 0xe4, 0x31, 0xd2, 0xd7, 0x7c, 0xc9, 0xfe, 0xdb, 0xa0, 0x2e, 0xc2, - 0x4b, 0x10, 0x32, 0x6c, 0x21, 0xf3, 0x06, 0x8c, 0x3b, 0xe7, 0xe7, 0xe3, 0x9a, 0x10, 0xe2, 0xfa, - 0x8d, 0x4f, 0x5c, 0xb6, 0x8e, 0x94, 0x9b, 0x5c, 0x5c, 0xcc, 0xd3, 0xaa, 0xaf, 0xf9, 0x12, 0x11, - 0x5f, 0x39, 0x61, 0xf5, 0x7f, 0xb6, 0xa2, 0xc2, 0x83, 0x5c, 0x84, 0x89, 0x9a, 0x68, 0xe3, 0x1f, - 0x67, 0x15, 0xc6, 0xea, 0x9d, 0x96, 0xae, 0xbc, 0x0a, 0xe3, 0xb7, 0x9a, 0x3b, 0xfa, 0x21, 0x4e, - 0x72, 0xfc, 0xd0, 0xfa, 0x07, 0xb5, 0xdf, 0x89, 0xca, 0x41, 0xfb, 0xb0, 0xd5, 0xd5, 0x0d, 0xbc, - 0x64, 0x8f, 0xdf, 0xa0, 0x5b, 0x3e, 0x8d, 0xc4, 0x2e, 0xc6, 0xb2, 0x1a, 0x1c, 0x67, 0x24, 0xa1, - 0xc4, 0xd1, 0xe3, 0x7f, 0x6a, 0xc4, 0xfa, 0x2a, 0xa7, 0x24, 0xeb, 0xab, 0x92, 0x92, 0xb3, 0x6f, - 0xc0, 0x29, 0xe1, 0x05, 0x99, 0x85, 0x54, 0x53, 0xd0, 0xfa, 0xaa, 0xa5, 0xc6, 0x33, 0xb1, 0x87, - 0xbf, 0x9e, 0x19, 0xc9, 0xbe, 0x05, 0x15, 0xef, 0xab, 0x34, 0x65, 0x14, 0xca, 0x1b, 0xd6, 0x29, - 0x5f, 0x83, 0x72, 0x19, 0x9d, 0x33, 0x33, 0xf5, 0xd3, 0x5f, 0xcc, 0x8d, 0x97, 0x75, 0xd3, 0xd4, - 0xbb, 0xc8, 0xba, 0x5c, 0xc6, 0xce, 0xef, 0xc0, 0x0b, 0xbe, 0xaf, 0xe2, 0x2c, 0xff, 0x4a, 0xc5, - 0xf1, 0xaf, 0x56, 0x3d, 0xfe, 0xd5, 0xaa, 0xed, 0x2f, 0x95, 0xc8, 0x92, 0xe6, 0x86, 0xe2, 0xf3, - 0x1a, 0x4b, 0x6d, 0x31, 0x4b, 0xa8, 0x1b, 0xa5, 0x77, 0xb0, 0x6d, 0xd9, 0xd7, 0x56, 0x0f, 0x59, - 0x12, 0x2d, 0x97, 0x2a, 0xd8, 0xbf, 0xe2, 0xeb, 0xbf, 0x27, 0xac, 0xdb, 0xf1, 0x73, 0x10, 0x3e, - 0x49, 0x85, 0x06, 0x5c, 0xf5, 0x3d, 0xc9, 0x01, 0xb3, 0x9b, 0xba, 0x4a, 0x03, 0xae, 0xf9, 0xda, - 0xb6, 0x43, 0x76, 0x15, 0xd5, 0x4a, 0xcb, 0xf8, 0x36, 0xb2, 0x91, 0x57, 0x2e, 0x10, 0x15, 0x70, - 0x35, 0x8e, 0x13, 0xe4, 0xdc, 0x51, 0x36, 0xf2, 0xe8, 0x0a, 0x1d, 0x87, 0x72, 0xa0, 0x43, 0x70, - 0x96, 0x9c, 0x93, 0x94, 0xf3, 0xa5, 0xeb, 0xf8, 0x24, 0x95, 0xc0, 0x93, 0x84, 0xa4, 0xca, 0x39, - 0x53, 0x25, 0x5f, 0xde, 0x3e, 0xf9, 0x64, 0x66, 0xe4, 0x29, 0xfa, 0xfc, 0x1d, 0x7d, 0x3e, 0xfe, - 0x64, 0x46, 0xfa, 0x0c, 0x7d, 0x3e, 0x47, 0x9f, 0x2f, 0xd0, 0xe7, 0xbd, 0xe7, 0x33, 0xd2, 0x63, - 0xf4, 0xf9, 0x10, 0x7d, 0xfe, 0x80, 0x3e, 0x4f, 0xd0, 0xe7, 0xe4, 0x39, 0xb2, 0x47, 0xdf, 0x1f, - 0xa3, 0xcf, 0x67, 0xe8, 0xf7, 0xe7, 0xe8, 0xfb, 0x0b, 0xf4, 0xfd, 0xde, 0xa7, 0x33, 0x23, 0x8f, - 0xd0, 0xe7, 0xf1, 0xa7, 0x33, 0xd2, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x36, 0x6c, 0xcd, 0x1a, - 0xaf, 0x34, 0x00, 0x00, + // 3085 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, + 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, + 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, + 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, + 0x90, 0xdd, 0xed, 0x1e, 0xde, 0xeb, 0xf6, 0x97, 0x8e, 0x8d, 0xc3, 0x56, 0xaf, 0xbf, 0xdf, 0x3a, + 0xd0, 0x7b, 0x4b, 0xe6, 0xbe, 0x6e, 0xea, 0x7d, 0x73, 0xf1, 0xa8, 0xd7, 0x35, 0xbb, 0x72, 0xd2, + 0xfa, 0x3b, 0x73, 0x6d, 0xaf, 0x63, 0xee, 0x1f, 0xdf, 0x5b, 0xdc, 0xed, 0x1e, 0x2e, 0xed, 0x75, + 0xf7, 0xba, 0x4b, 0xb6, 0xf0, 0xde, 0xf1, 0x7d, 0xfb, 0x97, 0xfd, 0xc3, 0xfe, 0xcb, 0x31, 0xd2, + 0xfe, 0x89, 0x61, 0xb2, 0xd1, 0x69, 0x6f, 0x1f, 0x99, 0x8d, 0x96, 0xd9, 0x79, 0x4b, 0x97, 0x67, + 0xe1, 0xc2, 0xcd, 0x8e, 0x7e, 0xd0, 0x5e, 0x56, 0x50, 0x16, 0xe5, 0x50, 0x25, 0x79, 0x72, 0x3a, + 0x97, 0x68, 0x92, 0x31, 0x2a, 0x2d, 0x2a, 0x52, 0x16, 0xe5, 0x24, 0x4e, 0x5a, 0xa4, 0xd2, 0x15, + 0x05, 0x67, 0x51, 0x6e, 0x8c, 0x93, 0xae, 0x50, 0x69, 0x49, 0x49, 0x66, 0x51, 0x0e, 0x73, 0xd2, + 0x12, 0x95, 0xae, 0x2a, 0x63, 0x59, 0x94, 0xbb, 0xc8, 0x49, 0x57, 0xa9, 0x74, 0x4d, 0xb9, 0x90, + 0x45, 0xb9, 0x24, 0x27, 0x5d, 0xa3, 0xd2, 0xeb, 0xca, 0x33, 0x59, 0x94, 0xbb, 0xc4, 0x49, 0xaf, + 0x53, 0xe9, 0xba, 0x92, 0xca, 0xa2, 0x9c, 0xcc, 0x49, 0xd7, 0xa9, 0xf4, 0x86, 0x32, 0x9e, 0x45, + 0xb9, 0x67, 0x38, 0xe9, 0x0d, 0x59, 0x85, 0x67, 0x9c, 0x27, 0x2f, 0x28, 0x90, 0x45, 0xb9, 0x69, + 0x22, 0x76, 0x07, 0x3d, 0xf9, 0xb2, 0x32, 0x91, 0x45, 0xb9, 0x0b, 0xbc, 0x7c, 0xd9, 0x93, 0x17, + 0x95, 0xc9, 0x2c, 0xca, 0xa5, 0x79, 0x79, 0xd1, 0x93, 0xaf, 0x28, 0x17, 0xb3, 0x28, 0x97, 0xe2, + 0xe5, 0x2b, 0x9e, 0xbc, 0xa4, 0x4c, 0x65, 0x51, 0x6e, 0x9c, 0x97, 0x97, 0x3c, 0xf9, 0xaa, 0x32, + 0x9d, 0x45, 0xb9, 0x49, 0x5e, 0xbe, 0xaa, 0xbd, 0x6b, 0xc3, 0x6b, 0x78, 0xf0, 0xce, 0xf0, 0xf0, + 0x52, 0x60, 0x67, 0x78, 0x60, 0x29, 0xa4, 0x33, 0x3c, 0xa4, 0x14, 0xcc, 0x19, 0x1e, 0x4c, 0x0a, + 0xe3, 0x0c, 0x0f, 0x23, 0x05, 0x70, 0x86, 0x07, 0x90, 0x42, 0x37, 0xc3, 0x43, 0x47, 0x41, 0x9b, + 0xe1, 0x41, 0xa3, 0x70, 0xcd, 0xf0, 0x70, 0x51, 0xa0, 0x14, 0x01, 0x28, 0x0f, 0x22, 0x45, 0x80, + 0xc8, 0x03, 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, 0x40, 0x14, 0x01, 0x10, 0x0f, + 0x0a, 0x45, 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x53, 0x3f, 0x0a, 0xc8, 0x31, 0x3c, 0x34, 0xc7, + 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, + 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x3c, 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0x88, 0x1c, + 0xc3, 0x11, 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, 0xcd, 0x31, 0x0f, 0xde, 0x19, + 0x1e, 0xde, 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, + 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xb0, 0x1c, 0xc3, 0xa1, 0x39, + 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x98, 0xcd, 0xb1, + 0x3f, 0x63, 0x90, 0x9d, 0x1c, 0xbb, 0xdd, 0xda, 0xfd, 0xa1, 0xde, 0x26, 0x50, 0xa8, 0x42, 0xa6, + 0x5d, 0xb0, 0xa0, 0x4b, 0x7b, 0x90, 0xa8, 0x42, 0xae, 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0xd9, 0xc6, + 0xcb, 0x57, 0xa8, 0xdc, 0xcd, 0x37, 0x5e, 0x5e, 0xa2, 0x72, 0x37, 0xe3, 0x78, 0xf9, 0x2a, 0x95, + 0xbb, 0x39, 0xc7, 0xcb, 0xd7, 0xa8, 0xdc, 0xcd, 0x3a, 0x5e, 0x7e, 0x9d, 0xca, 0xdd, 0xbc, 0xe3, + 0xe5, 0xeb, 0x54, 0xee, 0x66, 0x1e, 0x2f, 0xbf, 0x21, 0x67, 0xc5, 0xdc, 0x73, 0x15, 0x28, 0xb4, + 0x59, 0x31, 0xfb, 0x04, 0x8d, 0x65, 0x4f, 0xc3, 0xcd, 0x3f, 0x41, 0xa3, 0xe8, 0x69, 0xb8, 0x19, + 0x28, 0x68, 0xac, 0x68, 0xef, 0xd9, 0xf0, 0x19, 0x22, 0x7c, 0x19, 0x01, 0x3e, 0x89, 0x81, 0x2e, + 0x23, 0x40, 0x27, 0x31, 0xb0, 0x65, 0x04, 0xd8, 0x24, 0x06, 0xb2, 0x8c, 0x00, 0x99, 0xc4, 0xc0, + 0x95, 0x11, 0xe0, 0x92, 0x18, 0xa8, 0x32, 0x02, 0x54, 0x12, 0x03, 0x53, 0x46, 0x80, 0x49, 0x62, + 0x20, 0xca, 0x08, 0x10, 0x49, 0x0c, 0x3c, 0x19, 0x01, 0x1e, 0x89, 0x81, 0x66, 0x56, 0x84, 0x46, + 0x62, 0x61, 0x99, 0x15, 0x61, 0x91, 0x58, 0x48, 0x66, 0x45, 0x48, 0x24, 0x16, 0x8e, 0x59, 0x11, + 0x0e, 0x89, 0x85, 0xe2, 0x4b, 0xc9, 0xed, 0x08, 0xdf, 0x34, 0x7b, 0xc7, 0xbb, 0xe6, 0xb9, 0x3a, + 0xc2, 0x02, 0xd7, 0x3e, 0x4c, 0x14, 0xe5, 0x45, 0xbb, 0x61, 0x65, 0x3b, 0x4e, 0xe1, 0x0d, 0x56, + 0xe0, 0x1a, 0x0b, 0xc6, 0xc2, 0x08, 0xb6, 0x28, 0x9d, 0xab, 0x37, 0x2c, 0x70, 0x6d, 0x46, 0xb4, + 0x7f, 0xeb, 0x5f, 0x79, 0xc7, 0xf6, 0x48, 0x72, 0x3b, 0x36, 0x12, 0xfe, 0x51, 0x3b, 0xb6, 0x7c, + 0x74, 0xc8, 0x69, 0xb0, 0xf3, 0xd1, 0xc1, 0xf6, 0xbd, 0x75, 0xe2, 0x76, 0x70, 0xf9, 0xe8, 0xd0, + 0xd2, 0xa0, 0x3e, 0xdd, 0x7e, 0x8b, 0x30, 0xb8, 0xa9, 0x1f, 0x05, 0x30, 0x78, 0xd4, 0x7e, 0xab, + 0xc0, 0x95, 0x92, 0x51, 0x19, 0x8c, 0x47, 0x66, 0xf0, 0xa8, 0x9d, 0x57, 0x81, 0x2b, 0x2f, 0x23, + 0x33, 0xf8, 0x2b, 0xe8, 0x87, 0x08, 0x83, 0xbd, 0xf0, 0x8f, 0xda, 0x0f, 0xe5, 0xa3, 0x43, 0x1e, + 0xc8, 0x60, 0x3c, 0x02, 0x83, 0xe3, 0xf4, 0x47, 0xf9, 0xe8, 0xd0, 0x06, 0x33, 0xf8, 0xdc, 0xdd, + 0xcc, 0xfb, 0x08, 0x2e, 0x35, 0x3a, 0xed, 0xfa, 0xe1, 0x3d, 0xbd, 0xdd, 0xd6, 0xdb, 0x24, 0x8e, + 0x05, 0xae, 0x12, 0x84, 0x40, 0xfd, 0xf8, 0x74, 0xce, 0x8b, 0xf0, 0x2a, 0xa4, 0x9c, 0x98, 0x16, + 0x0a, 0xca, 0x09, 0x8a, 0xa8, 0x70, 0x54, 0x55, 0xbe, 0xe2, 0x9a, 0x2d, 0x17, 0x94, 0xbf, 0x23, + 0xa6, 0xca, 0xd1, 0x61, 0xed, 0xe7, 0xb6, 0x87, 0xc6, 0xb9, 0x3d, 0x5c, 0x8a, 0xe5, 0x21, 0xe3, + 0xdb, 0x0b, 0x3e, 0xdf, 0x18, 0xaf, 0x8e, 0x61, 0xba, 0xd1, 0x69, 0x37, 0xf4, 0xbe, 0x19, 0xcf, + 0x25, 0x47, 0x47, 0xa8, 0x07, 0x05, 0x8e, 0x96, 0xac, 0x05, 0xa5, 0x34, 0x5f, 0x23, 0xb4, 0x8e, + 0xb5, 0xac, 0xc1, 0x2d, 0x9b, 0x0f, 0x5b, 0xd6, 0xab, 0xec, 0x74, 0xc1, 0x7c, 0xd8, 0x82, 0x5e, + 0x0e, 0xd1, 0xa5, 0xde, 0x76, 0x5f, 0xce, 0xd5, 0xe3, 0xbe, 0xd9, 0x3d, 0x94, 0x67, 0x41, 0xda, + 0x6c, 0xdb, 0x6b, 0x4c, 0x56, 0x26, 0x2d, 0xa7, 0x3e, 0x3e, 0x9d, 0x4b, 0xde, 0x39, 0xee, 0xb4, + 0x9b, 0xd2, 0x66, 0x5b, 0xbe, 0x05, 0x63, 0xdf, 0x69, 0x1d, 0x1c, 0xeb, 0xf6, 0x2b, 0x62, 0xb2, + 0x52, 0x22, 0x0a, 0x2f, 0x87, 0xee, 0x11, 0x59, 0x0b, 0x2f, 0xed, 0xda, 0x53, 0x2f, 0xde, 0xe9, + 0x18, 0xe6, 0x72, 0x71, 0xbd, 0xe9, 0x4c, 0xa1, 0x7d, 0x1f, 0xc0, 0x59, 0xb3, 0xd6, 0xea, 0xef, + 0xcb, 0x0d, 0x77, 0x66, 0x67, 0xe9, 0xf5, 0x8f, 0x4f, 0xe7, 0x4a, 0x71, 0x66, 0xbd, 0xd6, 0x6e, + 0xf5, 0xf7, 0xaf, 0x99, 0x0f, 0x8e, 0xf4, 0xc5, 0xca, 0x03, 0x53, 0xef, 0xbb, 0xb3, 0x1f, 0xb9, + 0x6f, 0x3d, 0xf2, 0x5c, 0x0a, 0xf3, 0x5c, 0x29, 0xee, 0x99, 0x6e, 0xf2, 0xcf, 0x54, 0x78, 0xd2, + 0xe7, 0x79, 0xdb, 0x7d, 0x49, 0x08, 0x91, 0xc4, 0x51, 0x91, 0xc4, 0xe7, 0x8d, 0xe4, 0x91, 0x5b, + 0x1f, 0x85, 0x67, 0xc5, 0xc3, 0x9e, 0x15, 0x9f, 0xe7, 0x59, 0xff, 0xed, 0x64, 0x2b, 0xcd, 0xa7, + 0x3b, 0x46, 0xa7, 0x6b, 0x7c, 0xed, 0xf6, 0x82, 0x9e, 0x6a, 0x17, 0x50, 0x4e, 0x9e, 0x3c, 0x9c, + 0x43, 0xda, 0xfb, 0x92, 0xfb, 0xe4, 0x4e, 0x22, 0x3d, 0xd9, 0x93, 0x7f, 0x5d, 0x7a, 0xaa, 0xaf, + 0x22, 0x42, 0xbf, 0x42, 0x30, 0xe3, 0xab, 0xe4, 0x4e, 0x98, 0x9e, 0x6e, 0x39, 0x37, 0x46, 0x2d, + 0xe7, 0xc4, 0xc1, 0xdf, 0x23, 0x78, 0x4e, 0x28, 0xaf, 0x8e, 0x7b, 0x4b, 0x82, 0x7b, 0xcf, 0xfb, + 0x57, 0xb2, 0x15, 0x19, 0xef, 0x58, 0x78, 0x05, 0x03, 0x66, 0x66, 0x8a, 0x7b, 0x49, 0xc0, 0x7d, + 0x96, 0x1a, 0x04, 0x84, 0xcb, 0x65, 0x00, 0x71, 0xbb, 0x0b, 0xc9, 0x9d, 0x9e, 0xae, 0xcb, 0x2a, + 0x48, 0xdb, 0x3d, 0xe2, 0xe1, 0x94, 0x63, 0xbf, 0xdd, 0xab, 0xf4, 0x5a, 0xc6, 0xee, 0x7e, 0x53, + 0xda, 0xee, 0xc9, 0x57, 0x00, 0x6f, 0x18, 0x6d, 0xe2, 0xd1, 0xb4, 0xa3, 0xb0, 0x61, 0xb4, 0x89, + 0x86, 0x25, 0x93, 0x55, 0x48, 0xbe, 0xa1, 0xb7, 0xee, 0x13, 0x27, 0xc0, 0xd1, 0xb1, 0x46, 0x9a, + 0xf6, 0x38, 0x59, 0xf0, 0x7b, 0x90, 0x72, 0x27, 0x96, 0xe7, 0x2d, 0x8b, 0xfb, 0x26, 0x59, 0x96, + 0x58, 0x58, 0xee, 0x90, 0x37, 0x97, 0x2d, 0x95, 0x17, 0x60, 0xac, 0xd9, 0xd9, 0xdb, 0x37, 0xc9, + 0xe2, 0x7e, 0x35, 0x47, 0xac, 0xdd, 0x85, 0x71, 0xea, 0xd1, 0x53, 0x9e, 0xba, 0xe6, 0x3c, 0x9a, + 0x9c, 0x61, 0xdf, 0x27, 0xee, 0xbe, 0xa5, 0x33, 0x24, 0x67, 0x21, 0xf5, 0xa6, 0xd9, 0xf3, 0x8a, + 0xbe, 0xdb, 0x91, 0xd2, 0x51, 0xed, 0x5d, 0x04, 0xa9, 0x9a, 0xae, 0x1f, 0xd9, 0x01, 0xbf, 0x0a, + 0xc9, 0x5a, 0xf7, 0x47, 0x06, 0x71, 0xf0, 0x12, 0x89, 0xa8, 0x25, 0x26, 0x31, 0xb5, 0xc5, 0xf2, + 0x55, 0x36, 0xee, 0xcf, 0xd2, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x04, 0x40, 0x4b, + 0xc9, 0x17, 0xff, 0xeb, 0x30, 0xc1, 0xac, 0x22, 0xe7, 0x88, 0x1b, 0x92, 0x68, 0xc8, 0xc6, 0xca, + 0xd2, 0xd0, 0x74, 0xb8, 0xc8, 0x2d, 0x6c, 0x99, 0x32, 0x21, 0x0e, 0x31, 0xb5, 0xc3, 0x9c, 0xe7, + 0xc3, 0x1c, 0xac, 0x4a, 0x42, 0x5d, 0x70, 0x62, 0x64, 0x87, 0x7b, 0xde, 0x21, 0x67, 0x38, 0x88, + 0xd6, 0xdf, 0xda, 0x18, 0xe0, 0x46, 0xe7, 0x40, 0x7b, 0x15, 0xc0, 0x49, 0xf9, 0xba, 0x71, 0x7c, + 0x28, 0x64, 0xdd, 0x94, 0x1b, 0xe0, 0x9d, 0x7d, 0x7d, 0x47, 0xef, 0xdb, 0x2a, 0x7c, 0x3f, 0x65, + 0x15, 0x18, 0x70, 0x52, 0xcc, 0xb6, 0x7f, 0x29, 0xd2, 0x3e, 0xb0, 0x13, 0xb3, 0x54, 0x15, 0x47, + 0xf5, 0xae, 0x6e, 0x6e, 0x18, 0x5d, 0x73, 0x5f, 0xef, 0x09, 0x16, 0x45, 0x79, 0x85, 0x4b, 0xd8, + 0xa9, 0xe2, 0x0b, 0xd4, 0x22, 0xd4, 0x68, 0x45, 0xfb, 0xd0, 0x76, 0xd0, 0x6a, 0x05, 0x7c, 0x0f, + 0x88, 0x63, 0x3c, 0xa0, 0xbc, 0xc6, 0xf5, 0x6f, 0x43, 0xdc, 0x14, 0x3e, 0x2d, 0x6f, 0x70, 0xdf, + 0x39, 0xc3, 0x9d, 0xe5, 0xbf, 0x31, 0xdd, 0x98, 0xba, 0x2e, 0xbf, 0x14, 0xe9, 0x72, 0x48, 0x77, + 0x3b, 0x6a, 0x4c, 0x71, 0xdc, 0x98, 0xfe, 0x89, 0x76, 0x1c, 0xd6, 0x70, 0x4d, 0xbf, 0xdf, 0x3a, + 0x3e, 0x30, 0xe5, 0x97, 0x23, 0xb1, 0x2f, 0xa3, 0x2a, 0x75, 0xb5, 0x14, 0x17, 0xfe, 0xb2, 0x54, + 0xa9, 0x50, 0x77, 0xaf, 0x8f, 0x40, 0x81, 0xb2, 0x54, 0xad, 0xd2, 0xb2, 0x9d, 0x7a, 0xef, 0xe1, + 0x1c, 0xfa, 0xe0, 0xe1, 0x5c, 0x42, 0xfb, 0x1d, 0x82, 0x4b, 0x44, 0x93, 0x21, 0xee, 0x35, 0xc1, + 0xf9, 0xcb, 0x6e, 0xcd, 0x08, 0x8a, 0xc0, 0x7f, 0x8d, 0xbc, 0x7f, 0x45, 0xa0, 0xf8, 0x7c, 0x75, + 0xe3, 0x5d, 0x88, 0xe5, 0x72, 0x19, 0xd5, 0xff, 0xf7, 0x31, 0xbf, 0x0b, 0x63, 0x3b, 0x9d, 0x43, + 0xbd, 0x67, 0xbd, 0x09, 0xac, 0x3f, 0x1c, 0x97, 0xdd, 0xc3, 0x1c, 0x67, 0xc8, 0x95, 0x39, 0xce, + 0x71, 0xb2, 0xa2, 0xac, 0x40, 0xb2, 0xd6, 0x32, 0x5b, 0xb6, 0x07, 0x93, 0xb4, 0xbe, 0xb6, 0xcc, + 0x96, 0xb6, 0x02, 0x93, 0x5b, 0x0f, 0xea, 0x6f, 0x9b, 0xba, 0xd1, 0x6e, 0xdd, 0x3b, 0x10, 0xcf, + 0x40, 0xdd, 0x7e, 0x75, 0x39, 0x3f, 0x96, 0x6a, 0xa7, 0x4f, 0x50, 0x39, 0x69, 0xfb, 0xf3, 0x16, + 0x4c, 0x6d, 0x5b, 0x6e, 0xdb, 0x76, 0x9c, 0x99, 0xb3, 0x3a, 0xa6, 0x0f, 0x2f, 0x34, 0x65, 0xd8, + 0x6b, 0xca, 0xb2, 0x80, 0xb6, 0xf8, 0xd6, 0x89, 0xf5, 0xa3, 0x89, 0xb6, 0xf2, 0xc9, 0xd4, 0x54, + 0xfa, 0x52, 0x3e, 0x99, 0x82, 0xf4, 0x45, 0xb2, 0xee, 0xdf, 0x30, 0xa4, 0x9d, 0x56, 0xa7, 0xa6, + 0xdf, 0xef, 0x18, 0x1d, 0xd3, 0xdf, 0xaf, 0x52, 0x8f, 0xe5, 0x6f, 0xc2, 0xb8, 0x15, 0x52, 0xfb, + 0x17, 0x01, 0xec, 0x0a, 0x69, 0x51, 0x84, 0x29, 0xc8, 0x80, 0x4d, 0x1d, 0xcf, 0x46, 0xbe, 0x09, + 0xb8, 0xd1, 0xd8, 0x22, 0x2f, 0xb7, 0xd2, 0x50, 0xd3, 0x2d, 0xbd, 0xdf, 0x6f, 0xed, 0xe9, 0xe4, + 0x17, 0x19, 0xeb, 0xef, 0x35, 0xad, 0x09, 0xe4, 0x12, 0x48, 0x8d, 0x2d, 0xd2, 0xf0, 0xce, 0xc7, + 0x99, 0xa6, 0x29, 0x35, 0xb6, 0x32, 0x7f, 0x41, 0x70, 0x91, 0x1b, 0x95, 0x35, 0x98, 0x74, 0x06, + 0x98, 0xc7, 0xbd, 0xd0, 0xe4, 0xc6, 0x5c, 0x9f, 0xa5, 0x73, 0xfa, 0x9c, 0xd9, 0x80, 0x69, 0x61, + 0x5c, 0x5e, 0x04, 0x99, 0x1d, 0x22, 0x4e, 0x80, 0xdd, 0x50, 0x07, 0x48, 0xb4, 0xff, 0x03, 0xf0, + 0xe2, 0x2a, 0x4f, 0xc3, 0xc4, 0xce, 0xdd, 0xdb, 0xf5, 0x1f, 0x34, 0xea, 0x6f, 0xee, 0xd4, 0x6b, + 0x69, 0xa4, 0xfd, 0x01, 0xc1, 0x04, 0x69, 0x5b, 0x77, 0xbb, 0x47, 0xba, 0x5c, 0x01, 0xb4, 0x41, + 0xf8, 0xf0, 0x64, 0x7e, 0xa3, 0x0d, 0x79, 0x09, 0x50, 0x25, 0x3e, 0xd4, 0xa8, 0x22, 0x17, 0x01, + 0x55, 0x09, 0xc0, 0xf1, 0x90, 0x41, 0x55, 0xed, 0x5f, 0x18, 0x9e, 0x65, 0xdb, 0x68, 0xb7, 0x9e, + 0x5c, 0xe1, 0xbf, 0x9b, 0xca, 0xe3, 0xcb, 0xc5, 0x95, 0xd2, 0xa2, 0xf5, 0x0f, 0xa5, 0xe4, 0x15, + 0xfe, 0x13, 0xca, 0xaf, 0xe2, 0xbb, 0x26, 0x52, 0x4e, 0x32, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, + 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0xd7, 0x44, 0x38, 0xa9, 0xef, 0x28, 0x80, 0x93, 0xfa, 0xae, 0x89, + 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbf, 0x26, 0x42, 0xc4, 0xa1, 0xd7, 0x44, 0x78, 0xb9, + 0xff, 0x9a, 0x08, 0x2f, 0xf7, 0x5f, 0x13, 0x29, 0x27, 0xcd, 0xde, 0xb1, 0x1e, 0x7e, 0xe8, 0xc0, + 0xdb, 0x0f, 0xfb, 0x06, 0xf4, 0x0a, 0xf0, 0x36, 0x4c, 0x3b, 0xfb, 0x11, 0xd5, 0xae, 0x61, 0xb6, + 0x3a, 0x86, 0xde, 0x93, 0xbf, 0x01, 0x93, 0xce, 0x90, 0xf3, 0x95, 0x13, 0xf4, 0x15, 0xe8, 0xc8, + 0x49, 0xb9, 0xe5, 0xb4, 0xb5, 0x2f, 0x93, 0x30, 0xe3, 0x0c, 0x34, 0x5a, 0x87, 0x3a, 0x77, 0xc9, + 0x68, 0x41, 0x38, 0x52, 0x9a, 0xb2, 0xcc, 0x07, 0xa7, 0x73, 0xce, 0xe8, 0x06, 0x25, 0xd3, 0x82, + 0x70, 0xb8, 0xc4, 0xeb, 0x79, 0xef, 0x9f, 0x05, 0xe1, 0xe2, 0x11, 0xaf, 0x47, 0x5f, 0x37, 0x54, + 0xcf, 0xbd, 0x82, 0xc4, 0xeb, 0xd5, 0x28, 0xcb, 0x16, 0x84, 0xcb, 0x48, 0xbc, 0x5e, 0x9d, 0xf2, + 0x6d, 0x41, 0x38, 0x7a, 0xe2, 0xf5, 0x6e, 0x52, 0xe6, 0x2d, 0x08, 0x87, 0x50, 0xbc, 0xde, 0xb7, + 0x28, 0x07, 0x17, 0x84, 0xab, 0x4a, 0xbc, 0xde, 0xeb, 0x94, 0x8d, 0x0b, 0xc2, 0xa5, 0x25, 0x5e, + 0x6f, 0x93, 0xf2, 0x32, 0x27, 0x5e, 0x5f, 0xe2, 0x15, 0x6f, 0x79, 0x0c, 0xcd, 0x89, 0x17, 0x99, + 0x78, 0xcd, 0x6f, 0x7b, 0x5c, 0xcd, 0x89, 0x57, 0x9a, 0x78, 0xcd, 0x37, 0x3c, 0xd6, 0xe6, 0xc4, + 0xa3, 0x32, 0x5e, 0x73, 0xcb, 0xe3, 0x6f, 0x4e, 0x3c, 0x34, 0xe3, 0x35, 0x1b, 0x1e, 0x93, 0x73, + 0xe2, 0xf1, 0x19, 0xaf, 0xb9, 0xed, 0xed, 0xa1, 0x7f, 0x24, 0xd0, 0x8f, 0xb9, 0x04, 0xa5, 0x09, + 0xf4, 0x83, 0x00, 0xea, 0x69, 0x02, 0xf5, 0x20, 0x80, 0x76, 0x9a, 0x40, 0x3b, 0x08, 0xa0, 0x9c, + 0x26, 0x50, 0x0e, 0x02, 0xe8, 0xa6, 0x09, 0x74, 0x83, 0x00, 0xaa, 0x69, 0x02, 0xd5, 0x20, 0x80, + 0x66, 0x9a, 0x40, 0x33, 0x08, 0xa0, 0x98, 0x26, 0x50, 0x0c, 0x02, 0xe8, 0xa5, 0x09, 0xf4, 0x82, + 0x00, 0x6a, 0xcd, 0x8b, 0xd4, 0x82, 0x20, 0x5a, 0xcd, 0x8b, 0xb4, 0x82, 0x20, 0x4a, 0xbd, 0x28, + 0x52, 0x6a, 0x7c, 0x70, 0x3a, 0x37, 0x66, 0x0d, 0x31, 0x6c, 0x9a, 0x17, 0xd9, 0x04, 0x41, 0x4c, + 0x9a, 0x17, 0x99, 0x04, 0x41, 0x2c, 0x9a, 0x17, 0x59, 0x04, 0x41, 0x0c, 0x7a, 0x24, 0x32, 0xc8, + 0xbb, 0xe2, 0xa3, 0x09, 0x27, 0x8a, 0x51, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, + 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x38, + 0x0c, 0xc2, 0xb1, 0x18, 0x84, 0xc3, 0x18, 0x34, 0x2f, 0x5e, 0x78, 0x80, 0xa0, 0x82, 0x34, 0x2f, + 0x9e, 0x7c, 0x46, 0x53, 0x08, 0xc7, 0xa2, 0x10, 0x0e, 0xa3, 0xd0, 0x47, 0x18, 0x9e, 0xe5, 0x28, + 0x44, 0x8e, 0x87, 0x9e, 0x56, 0x05, 0x5a, 0x8b, 0x71, 0xbf, 0x22, 0x88, 0x53, 0x6b, 0x31, 0xce, + 0xa8, 0x87, 0xf1, 0xcc, 0x5f, 0x85, 0xea, 0x31, 0xaa, 0xd0, 0x4d, 0xca, 0xa1, 0xb5, 0x18, 0xf7, + 0x2e, 0xfc, 0xdc, 0x5b, 0x1f, 0x56, 0x04, 0x5e, 0x8f, 0x55, 0x04, 0x36, 0x63, 0x15, 0x81, 0x5b, + 0x1e, 0x82, 0x3f, 0x95, 0xe0, 0x39, 0x0f, 0x41, 0xe7, 0xaf, 0x9d, 0x07, 0x47, 0x56, 0x09, 0xf0, + 0x4e, 0xa8, 0x64, 0xf7, 0xd4, 0x86, 0x81, 0x51, 0xda, 0x6c, 0xcb, 0xb7, 0xf9, 0xb3, 0xaa, 0xf2, + 0xa8, 0xe7, 0x37, 0x0c, 0xe2, 0x64, 0x2f, 0x74, 0x1e, 0xf0, 0x66, 0xbb, 0x6f, 0x57, 0x8b, 0xa0, + 0x65, 0xab, 0x4d, 0x4b, 0x2c, 0x37, 0xe1, 0x82, 0xad, 0xde, 0xb7, 0xe1, 0x3d, 0xcf, 0xc2, 0xb5, + 0x26, 0x99, 0x49, 0x7b, 0x84, 0x20, 0xcb, 0x51, 0xf9, 0xe9, 0x9c, 0x18, 0xbc, 0x12, 0xeb, 0xc4, + 0x80, 0x4b, 0x10, 0xef, 0xf4, 0xe0, 0xff, 0xfd, 0x07, 0xd5, 0x6c, 0x96, 0x88, 0x27, 0x09, 0x3f, + 0x81, 0x29, 0xef, 0x09, 0xec, 0x4f, 0xb6, 0xd5, 0xe8, 0xcd, 0xcc, 0xa0, 0xd4, 0x5c, 0x15, 0x36, + 0xd1, 0x86, 0x9a, 0xd1, 0x6c, 0xd5, 0xca, 0x30, 0xdd, 0xe8, 0xda, 0x1b, 0x00, 0xfd, 0x4e, 0xd7, + 0xe8, 0x6f, 0xb5, 0x8e, 0xa2, 0xf6, 0x22, 0x52, 0x56, 0x6b, 0x7e, 0xf2, 0xeb, 0xb9, 0x84, 0xf6, + 0x32, 0x4c, 0xde, 0x31, 0x7a, 0xfa, 0x6e, 0x77, 0xcf, 0xe8, 0xfc, 0x58, 0x6f, 0x0b, 0x86, 0xe3, + 0xae, 0x61, 0x39, 0xf9, 0xd8, 0xd2, 0xfe, 0x05, 0x82, 0xcb, 0xac, 0xfa, 0x77, 0x3b, 0xe6, 0xfe, + 0xa6, 0x61, 0xf5, 0xf4, 0xaf, 0x42, 0x4a, 0x27, 0xc0, 0xd9, 0xef, 0xae, 0x09, 0xf7, 0x33, 0x32, + 0x50, 0x7d, 0xd1, 0xfe, 0xb7, 0x49, 0x4d, 0x84, 0x4d, 0x10, 0x77, 0xd9, 0x62, 0xe6, 0x2a, 0x8c, + 0x39, 0xf3, 0xf3, 0x7e, 0x5d, 0x14, 0xfc, 0xfa, 0x6d, 0x80, 0x5f, 0x36, 0x8f, 0xe4, 0x5b, 0x9c, + 0x5f, 0xcc, 0xd7, 0x6a, 0xa0, 0xfa, 0xa2, 0x4b, 0xbe, 0x4a, 0xca, 0xea, 0xff, 0x6c, 0x46, 0x45, + 0x3b, 0x99, 0x83, 0x54, 0x5d, 0xd4, 0x09, 0xf6, 0xb3, 0x06, 0xc9, 0x46, 0xb7, 0xad, 0xcb, 0xcf, + 0xc1, 0xd8, 0x1b, 0xad, 0x7b, 0xfa, 0x01, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x80, 0x54, 0x75, 0xbf, + 0x73, 0xd0, 0xee, 0xe9, 0x06, 0x39, 0xb2, 0x27, 0x3b, 0xe8, 0x96, 0x4d, 0x93, 0xca, 0xb4, 0x2a, + 0x5c, 0x6a, 0x74, 0x8d, 0xca, 0x03, 0x93, 0xad, 0x1b, 0x8b, 0x42, 0x8a, 0x90, 0x23, 0x9f, 0xdb, + 0x56, 0x36, 0x5a, 0x0a, 0x95, 0xb1, 0x8f, 0x4f, 0xe7, 0xd0, 0x0e, 0xdd, 0x3e, 0xdf, 0x82, 0xe7, + 0x49, 0xfa, 0xf8, 0xa6, 0x2a, 0x46, 0x4d, 0x35, 0x4e, 0x8e, 0xa9, 0x99, 0xe9, 0x36, 0xad, 0xe9, + 0x8c, 0xc0, 0xe9, 0x9e, 0xcc, 0x33, 0xab, 0x29, 0x1a, 0xea, 0x19, 0x1e, 0xc9, 0xb3, 0xc0, 0xe9, + 0x16, 0xa3, 0xa6, 0x13, 0x3c, 0x7b, 0x11, 0xc6, 0xa9, 0x8c, 0x61, 0x03, 0x9b, 0x29, 0xc5, 0xbc, + 0x06, 0x13, 0x4c, 0xc2, 0xca, 0x63, 0x80, 0x36, 0xd2, 0x09, 0xeb, 0xbf, 0x4a, 0x1a, 0x59, 0xff, + 0x55, 0xd3, 0x52, 0xfe, 0x2a, 0x4c, 0x0b, 0xdb, 0x97, 0x96, 0xa4, 0x96, 0x06, 0xeb, 0xbf, 0x7a, + 0x7a, 0x22, 0x93, 0x7c, 0xef, 0x37, 0x6a, 0x22, 0xff, 0x0a, 0xc8, 0xfe, 0x8d, 0x4e, 0xf9, 0x02, + 0x48, 0x1b, 0xd6, 0x94, 0xcf, 0x83, 0x54, 0xa9, 0xa4, 0x51, 0x66, 0xfa, 0x67, 0xbf, 0xcc, 0x4e, + 0x54, 0x74, 0xd3, 0xd4, 0x7b, 0x77, 0x75, 0xb3, 0x52, 0x21, 0xc6, 0xaf, 0xc1, 0xe5, 0xc0, 0x8d, + 0x52, 0xcb, 0xbe, 0x5a, 0x75, 0xec, 0x6b, 0x35, 0x9f, 0x7d, 0xad, 0x66, 0xdb, 0xa3, 0xb2, 0x7b, + 0xe0, 0xbc, 0x21, 0x07, 0x6c, 0x32, 0x2a, 0x6d, 0xe6, 0x80, 0x7b, 0xa3, 0xfc, 0x1a, 0xd1, 0xad, + 0x04, 0xea, 0xea, 0x11, 0x07, 0xd6, 0x95, 0x72, 0x95, 0xd8, 0x57, 0x03, 0xed, 0xef, 0x0b, 0xa7, + 0xaa, 0xfc, 0x1b, 0x82, 0x4c, 0x52, 0xa5, 0x0e, 0xd7, 0x02, 0x27, 0xd9, 0x67, 0xee, 0xba, 0xd7, + 0xa8, 0xc3, 0xf5, 0x40, 0xdd, 0x4e, 0xc4, 0x9d, 0xaf, 0x7a, 0x79, 0x89, 0xbc, 0xe4, 0x37, 0x96, + 0xe5, 0xcb, 0x6e, 0x8e, 0x72, 0x15, 0x98, 0x04, 0xc8, 0xd5, 0x2a, 0x57, 0x89, 0x41, 0x25, 0xd4, + 0x20, 0x3c, 0x4a, 0xae, 0x65, 0xf9, 0x75, 0x32, 0x49, 0x35, 0x74, 0x92, 0x88, 0x50, 0xb9, 0xe6, + 0x95, 0x9d, 0x93, 0x33, 0x35, 0xf1, 0xf8, 0x4c, 0x4d, 0xfc, 0xe3, 0x4c, 0x4d, 0x7c, 0x72, 0xa6, + 0xa2, 0xcf, 0xce, 0x54, 0xf4, 0xf9, 0x99, 0x8a, 0xbe, 0x38, 0x53, 0xd1, 0x3b, 0x03, 0x15, 0x7d, + 0x30, 0x50, 0xd1, 0x87, 0x03, 0x15, 0xfd, 0x71, 0xa0, 0xa2, 0x47, 0x03, 0x15, 0x9d, 0x0c, 0xd4, + 0xc4, 0xe3, 0x81, 0x8a, 0x3e, 0x19, 0xa8, 0xe8, 0xb3, 0x81, 0x9a, 0xf8, 0x7c, 0xa0, 0xa2, 0x2f, + 0x06, 0x6a, 0xe2, 0x9d, 0x4f, 0xd5, 0xc4, 0xc3, 0x4f, 0xd5, 0xc4, 0x07, 0x9f, 0xaa, 0xe8, 0x3f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x0f, 0x9e, 0x30, 0x4d, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto index 10102433..af269a3b 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go index 5de863bf..e1975ed7 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go @@ -67,6 +67,12 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -90,18 +96,18 @@ func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -129,11 +135,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -143,11 +149,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -164,18 +170,18 @@ func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +209,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +223,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -238,18 +244,18 @@ func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -277,11 +283,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -291,11 +297,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -312,18 +318,18 @@ func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -351,11 +357,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -365,11 +371,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -386,18 +392,18 @@ func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -425,11 +431,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -439,11 +445,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -460,18 +466,18 @@ func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -499,11 +505,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -513,11 +519,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -534,18 +540,18 @@ func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -573,11 +579,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -587,11 +593,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -608,18 +614,18 @@ func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -647,11 +653,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -661,11 +667,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -682,18 +688,18 @@ func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -721,11 +727,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -735,11 +741,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -756,18 +762,18 @@ func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -795,11 +801,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -809,11 +815,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -830,18 +836,18 @@ func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -869,11 +875,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -883,11 +889,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -904,18 +910,18 @@ func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -943,11 +949,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -957,11 +963,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -978,18 +984,18 @@ func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1017,11 +1023,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1031,11 +1037,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1052,18 +1058,18 @@ func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1091,11 +1097,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1105,11 +1111,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1126,18 +1132,18 @@ func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1165,11 +1171,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1179,11 +1185,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1200,18 +1206,18 @@ func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1239,11 +1245,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1253,11 +1259,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1274,18 +1280,18 @@ func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1313,11 +1319,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1327,11 +1333,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1348,18 +1354,18 @@ func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1387,11 +1393,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1401,11 +1407,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1422,18 +1428,18 @@ func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1461,11 +1467,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1475,11 +1481,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -1496,18 +1502,18 @@ func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1535,11 +1541,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1549,11 +1555,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -1570,18 +1576,18 @@ func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1609,11 +1615,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1623,11 +1629,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -1644,18 +1650,18 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1683,11 +1689,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1697,11 +1703,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -1718,18 +1724,18 @@ func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1757,11 +1763,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1771,11 +1777,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -1792,18 +1798,18 @@ func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1831,11 +1837,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1845,11 +1851,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -1866,18 +1872,18 @@ func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1905,11 +1911,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1919,11 +1925,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -1940,18 +1946,18 @@ func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1979,11 +1985,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1993,11 +1999,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2014,18 +2020,18 @@ func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2053,11 +2059,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2067,11 +2073,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2088,18 +2094,18 @@ func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2127,11 +2133,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2141,11 +2147,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2162,18 +2168,18 @@ func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2201,11 +2207,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2215,11 +2221,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -2236,18 +2242,18 @@ func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2275,11 +2281,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2289,11 +2295,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -2310,18 +2316,18 @@ func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2349,11 +2355,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2363,11 +2369,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -2384,18 +2390,18 @@ func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2423,11 +2429,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2437,11 +2443,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -2458,18 +2464,18 @@ func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2497,11 +2503,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2511,11 +2517,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -2532,18 +2538,18 @@ func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2571,11 +2577,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2585,11 +2591,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -2606,18 +2612,18 @@ func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2645,11 +2651,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2659,11 +2665,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -2680,18 +2686,18 @@ func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2719,11 +2725,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2733,11 +2739,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -2754,18 +2760,18 @@ func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2793,11 +2799,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2807,11 +2813,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -2828,18 +2834,18 @@ func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2867,11 +2873,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2881,11 +2887,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -2902,18 +2908,18 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2941,11 +2947,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2955,11 +2961,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -2976,18 +2982,18 @@ func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3015,11 +3021,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3029,11 +3035,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -3050,18 +3056,18 @@ func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3089,11 +3095,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3103,11 +3109,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -3124,18 +3130,18 @@ func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3163,11 +3169,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3177,11 +3183,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -3198,18 +3204,18 @@ func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3237,11 +3243,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3251,11 +3257,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -3272,18 +3278,18 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3311,11 +3317,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3325,11 +3331,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -3346,18 +3352,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3385,11 +3391,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3399,11 +3405,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -3420,18 +3426,18 @@ func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3459,11 +3465,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3473,11 +3479,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -3494,18 +3500,18 @@ func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3533,11 +3539,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3547,11 +3553,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -3568,18 +3574,18 @@ func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3607,11 +3613,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3621,11 +3627,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -3642,18 +3648,18 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3681,11 +3687,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3695,11 +3701,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -3716,18 +3722,18 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3755,11 +3761,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3769,11 +3775,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -3790,18 +3796,18 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +3835,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +3849,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -3864,18 +3870,18 @@ func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3903,11 +3909,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3917,11 +3923,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -3938,18 +3944,18 @@ func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3977,11 +3983,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3991,11 +3997,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -4012,18 +4018,18 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4051,11 +4057,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4065,11 +4071,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -4086,18 +4092,18 @@ func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4125,11 +4131,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4139,11 +4145,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -4160,18 +4166,18 @@ func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4199,11 +4205,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4213,11 +4219,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -4234,18 +4240,18 @@ func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4273,11 +4279,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4287,11 +4293,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -4308,18 +4314,18 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4347,11 +4353,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4361,11 +4367,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -4382,18 +4388,18 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4421,11 +4427,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4435,11 +4441,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -4456,18 +4462,18 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4495,11 +4501,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4509,11 +4515,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -4530,18 +4536,18 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4569,11 +4575,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4583,11 +4589,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -4604,18 +4610,18 @@ func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4643,11 +4649,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4657,11 +4663,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -4674,6 +4680,450 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -5643,13 +6093,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5661,16 +6237,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5682,16 +6258,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5703,16 +6279,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5724,16 +6300,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5745,16 +6321,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5766,16 +6342,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5787,16 +6363,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5808,16 +6384,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5829,16 +6405,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5850,16 +6426,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5871,16 +6447,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5892,16 +6468,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5913,16 +6489,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5934,16 +6510,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5955,16 +6531,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5980,9 +6556,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -5997,9 +6573,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6014,9 +6590,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6031,9 +6607,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6048,9 +6624,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6065,9 +6641,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6082,9 +6658,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6099,9 +6675,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6116,9 +6692,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6133,9 +6709,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6150,9 +6726,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6167,9 +6743,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6184,9 +6760,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6201,9 +6777,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6218,9 +6794,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6235,9 +6811,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6252,9 +6828,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6269,9 +6845,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6286,9 +6862,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6303,9 +6879,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6320,9 +6896,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6337,9 +6913,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6354,9 +6930,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6371,9 +6947,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6388,9 +6964,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6405,9 +6981,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6422,9 +6998,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6439,9 +7015,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6456,9 +7032,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6473,9 +7049,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6490,9 +7066,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6507,9 +7083,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6524,9 +7100,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6541,9 +7117,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6558,9 +7134,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6575,9 +7151,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6592,9 +7168,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6609,9 +7185,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6626,9 +7202,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6643,9 +7219,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6660,9 +7236,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6677,9 +7253,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6694,9 +7270,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6711,9 +7287,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6728,9 +7304,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6745,9 +7321,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6762,9 +7338,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6779,9 +7355,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6796,9 +7372,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6813,9 +7389,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6830,9 +7406,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6847,9 +7423,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6864,9 +7440,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6881,9 +7457,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6898,9 +7474,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6915,9 +7491,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6932,9 +7508,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6949,9 +7525,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6966,9 +7542,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6983,9 +7559,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7000,9 +7576,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7017,9 +7593,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7034,9 +7610,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7051,9 +7627,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7068,9 +7644,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7085,9 +7661,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7102,9 +7678,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7119,9 +7695,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7136,9 +7712,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7153,9 +7729,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7170,9 +7746,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7187,9 +7763,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7204,9 +7780,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7221,9 +7797,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7238,9 +7814,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7255,9 +7831,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7272,9 +7848,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7289,9 +7865,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7306,9 +7882,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7323,9 +7899,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7340,9 +7916,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7357,9 +7933,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7374,9 +7950,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7391,9 +7967,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7408,9 +7984,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7425,9 +8001,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7442,9 +8018,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7459,9 +8035,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7476,9 +8052,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7493,9 +8069,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7510,9 +8086,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7527,9 +8103,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7544,9 +8120,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7561,9 +8137,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7578,9 +8154,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7595,9 +8171,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7612,9 +8188,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7628,10 +8204,214 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedCustomNameNidOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNidOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7642,13 +8422,13 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoText(t *testing.T) { +func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7659,13 +8439,13 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { +func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7676,13 +8456,13 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoText(t *testing.T) { +func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7693,13 +8473,13 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { +func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7710,13 +8490,13 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinStructProtoText(t *testing.T) { +func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7727,13 +8507,13 @@ func TestCustomNameNinStructProtoText(t *testing.T) { } } -func TestCustomNameNinStructProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7744,13 +8524,13 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7761,13 +8541,13 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7778,13 +8558,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7795,13 +8575,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7812,13 +8592,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7829,13 +8609,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7846,13 +8626,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7863,13 +8643,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7880,13 +8660,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7897,13 +8677,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7914,13 +8694,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7931,13 +8711,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7948,13 +8728,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7965,13 +8745,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7982,13 +8762,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7999,13 +8779,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8016,13 +8796,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8033,13 +8813,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8050,13 +8830,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8067,13 +8847,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8087,12 +8867,12 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8111,12 +8891,12 @@ func TestNidOptNativeCompare(t *testing.T) { func TestNinOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8135,12 +8915,12 @@ func TestNinOptNativeCompare(t *testing.T) { func TestNidRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8159,12 +8939,12 @@ func TestNidRepNativeCompare(t *testing.T) { func TestNinRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8183,12 +8963,12 @@ func TestNinRepNativeCompare(t *testing.T) { func TestNidRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8207,12 +8987,12 @@ func TestNidRepPackedNativeCompare(t *testing.T) { func TestNinRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8231,12 +9011,12 @@ func TestNinRepPackedNativeCompare(t *testing.T) { func TestNidOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8255,12 +9035,12 @@ func TestNidOptStructCompare(t *testing.T) { func TestNinOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8279,12 +9059,12 @@ func TestNinOptStructCompare(t *testing.T) { func TestNidRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8303,12 +9083,12 @@ func TestNidRepStructCompare(t *testing.T) { func TestNinRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8327,12 +9107,12 @@ func TestNinRepStructCompare(t *testing.T) { func TestNidEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8351,12 +9131,12 @@ func TestNidEmbeddedStructCompare(t *testing.T) { func TestNinEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8375,12 +9155,12 @@ func TestNinEmbeddedStructCompare(t *testing.T) { func TestNidNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8399,12 +9179,12 @@ func TestNidNestedStructCompare(t *testing.T) { func TestNinNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8423,12 +9203,12 @@ func TestNinNestedStructCompare(t *testing.T) { func TestNidOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8447,12 +9227,12 @@ func TestNidOptCustomCompare(t *testing.T) { func TestCustomDashCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8471,12 +9251,12 @@ func TestCustomDashCompare(t *testing.T) { func TestNinOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8495,12 +9275,12 @@ func TestNinOptCustomCompare(t *testing.T) { func TestNidRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8519,12 +9299,12 @@ func TestNidRepCustomCompare(t *testing.T) { func TestNinRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8543,12 +9323,12 @@ func TestNinRepCustomCompare(t *testing.T) { func TestNinOptNativeUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8567,12 +9347,12 @@ func TestNinOptNativeUnionCompare(t *testing.T) { func TestNinOptStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8591,12 +9371,12 @@ func TestNinOptStructUnionCompare(t *testing.T) { func TestNinEmbeddedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8615,12 +9395,12 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { func TestNinNestedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8639,12 +9419,12 @@ func TestNinNestedStructUnionCompare(t *testing.T) { func TestTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8663,12 +9443,12 @@ func TestTreeCompare(t *testing.T) { func TestOrBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8687,12 +9467,12 @@ func TestOrBranchCompare(t *testing.T) { func TestAndBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8711,12 +9491,12 @@ func TestAndBranchCompare(t *testing.T) { func TestLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8735,12 +9515,12 @@ func TestLeafCompare(t *testing.T) { func TestDeepTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8759,12 +9539,12 @@ func TestDeepTreeCompare(t *testing.T) { func TestADeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8783,12 +9563,12 @@ func TestADeepBranchCompare(t *testing.T) { func TestAndDeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8807,12 +9587,12 @@ func TestAndDeepBranchCompare(t *testing.T) { func TestDeepLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8831,12 +9611,12 @@ func TestDeepLeafCompare(t *testing.T) { func TestNilCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8855,12 +9635,12 @@ func TestNilCompare(t *testing.T) { func TestNidOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8879,12 +9659,12 @@ func TestNidOptEnumCompare(t *testing.T) { func TestNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8903,12 +9683,12 @@ func TestNinOptEnumCompare(t *testing.T) { func TestNidRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8927,12 +9707,12 @@ func TestNidRepEnumCompare(t *testing.T) { func TestNinRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8951,12 +9731,12 @@ func TestNinRepEnumCompare(t *testing.T) { func TestNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8975,12 +9755,12 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { func TestAnotherNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8999,12 +9779,12 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9023,12 +9803,12 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { func TestTimerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9047,12 +9827,12 @@ func TestTimerCompare(t *testing.T) { func TestMyExtendableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9071,12 +9851,12 @@ func TestMyExtendableCompare(t *testing.T) { func TestOtherExtenableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9095,12 +9875,12 @@ func TestOtherExtenableCompare(t *testing.T) { func TestNestedDefinitionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9119,12 +9899,12 @@ func TestNestedDefinitionCompare(t *testing.T) { func TestNestedDefinition_NestedMessageCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9143,12 +9923,12 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9167,12 +9947,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { func TestNestedScopeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9191,12 +9971,12 @@ func TestNestedScopeCompare(t *testing.T) { func TestNinOptNativeDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9215,12 +9995,12 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { func TestCustomContainerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9239,18 +10019,162 @@ func TestCustomContainerCompare(t *testing.T) { func TestCustomNameNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNidOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinOptNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinRepNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinRepNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinStructCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinStruct(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameCustomTypeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameEnumCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameEnum(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) + p2 := NewPopulatedCustomNameEnum(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9260,21 +10184,21 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinOptNativeCompare(t *testing.T) { +func TestNoExtensionsMapCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNoExtensionsMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) + p2 := NewPopulatedNoExtensionsMap(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9284,21 +10208,21 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinRepNativeCompare(t *testing.T) { +func TestUnrecognizedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognized(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) + p2 := NewPopulatedUnrecognized(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9308,21 +10232,21 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinStructCompare(t *testing.T) { +func TestUnrecognizedWithInnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinStruct(popr, false) + p2 := NewPopulatedUnrecognizedWithInner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9332,21 +10256,21 @@ func TestCustomNameNinStructCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameCustomTypeCompare(t *testing.T) { +func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameCustomType(popr, false) + p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9356,21 +10280,21 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { +func TestUnrecognizedWithEmbedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9380,21 +10304,21 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameEnumCompare(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameEnum(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9404,21 +10328,21 @@ func TestCustomNameEnumCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNoExtensionsMapCompare(t *testing.T) { +func TestNodeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNoExtensionsMap(popr, false) + p2 := NewPopulatedNode(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9428,21 +10352,21 @@ func TestNoExtensionsMapCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedCompare(t *testing.T) { +func TestNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognized(popr, false) + p2 := NewPopulatedNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9452,21 +10376,21 @@ func TestUnrecognizedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInnerCompare(t *testing.T) { +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9476,21 +10400,21 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9500,21 +10424,21 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbedCompare(t *testing.T) { +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9524,21 +10448,21 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9548,21 +10472,21 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9578,12 +10502,12 @@ func TestThetestDescription(t *testing.T) { func TestNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9593,12 +10517,12 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { func TestNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9608,12 +10532,12 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { func TestNidRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9623,12 +10547,12 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { func TestNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9638,12 +10562,12 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { func TestNidRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9653,12 +10577,12 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { func TestNinRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9668,12 +10592,12 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { func TestNidOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9683,12 +10607,12 @@ func TestNidOptStructVerboseEqual(t *testing.T) { func TestNinOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9698,12 +10622,12 @@ func TestNinOptStructVerboseEqual(t *testing.T) { func TestNidRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9713,12 +10637,12 @@ func TestNidRepStructVerboseEqual(t *testing.T) { func TestNinRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9728,12 +10652,12 @@ func TestNinRepStructVerboseEqual(t *testing.T) { func TestNidEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9743,12 +10667,12 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { func TestNinEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9758,12 +10682,12 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { func TestNidNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9773,12 +10697,12 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { func TestNinNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9788,12 +10712,12 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { func TestNidOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,12 +10727,12 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { func TestCustomDashVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9818,12 +10742,12 @@ func TestCustomDashVerboseEqual(t *testing.T) { func TestNinOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9833,12 +10757,12 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { func TestNidRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9848,12 +10772,12 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { func TestNinRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9863,12 +10787,12 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { func TestNinOptNativeUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9878,12 +10802,12 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { func TestNinOptStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9893,12 +10817,12 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9908,12 +10832,12 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestNinNestedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9923,12 +10847,12 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { func TestTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9938,12 +10862,12 @@ func TestTreeVerboseEqual(t *testing.T) { func TestOrBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9953,12 +10877,12 @@ func TestOrBranchVerboseEqual(t *testing.T) { func TestAndBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9968,12 +10892,12 @@ func TestAndBranchVerboseEqual(t *testing.T) { func TestLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9983,12 +10907,12 @@ func TestLeafVerboseEqual(t *testing.T) { func TestDeepTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9998,12 +10922,12 @@ func TestDeepTreeVerboseEqual(t *testing.T) { func TestADeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10013,12 +10937,12 @@ func TestADeepBranchVerboseEqual(t *testing.T) { func TestAndDeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10028,12 +10952,12 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { func TestDeepLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10043,12 +10967,12 @@ func TestDeepLeafVerboseEqual(t *testing.T) { func TestNilVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10058,12 +10982,12 @@ func TestNilVerboseEqual(t *testing.T) { func TestNidOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10073,12 +10997,12 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { func TestNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10088,12 +11012,12 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { func TestNidRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10103,12 +11027,12 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { func TestNinRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10118,12 +11042,12 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10133,12 +11057,12 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10148,12 +11072,12 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10163,12 +11087,12 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestTimerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10178,12 +11102,12 @@ func TestTimerVerboseEqual(t *testing.T) { func TestMyExtendableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10193,12 +11117,12 @@ func TestMyExtendableVerboseEqual(t *testing.T) { func TestOtherExtenableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10208,12 +11132,12 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { func TestNestedDefinitionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10223,12 +11147,12 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10238,12 +11162,12 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10253,12 +11177,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T func TestNestedScopeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10268,12 +11192,12 @@ func TestNestedScopeVerboseEqual(t *testing.T) { func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10283,12 +11207,12 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { func TestCustomContainerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10298,12 +11222,12 @@ func TestCustomContainerVerboseEqual(t *testing.T) { func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10313,12 +11237,12 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10328,12 +11252,12 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10343,12 +11267,12 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { func TestCustomNameNinStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10358,12 +11282,12 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10373,12 +11297,12 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10388,12 +11312,12 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestCustomNameEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10403,12 +11327,12 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { func TestNoExtensionsMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10418,12 +11342,12 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { func TestUnrecognizedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10433,12 +11357,12 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10448,12 +11372,12 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10463,12 +11387,12 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10478,12 +11402,12 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10493,12 +11417,102 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { func TestNodeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10953,6 +11967,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -11566,7 +12628,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11577,9 +12717,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11590,9 +12730,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11603,9 +12743,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11616,9 +12756,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11629,9 +12769,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11642,9 +12782,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11655,9 +12795,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11668,9 +12808,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11681,9 +12821,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11694,9 +12834,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11707,9 +12847,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11720,9 +12860,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11733,9 +12873,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11746,9 +12886,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11764,13 +12904,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11800,13 +12940,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11836,13 +12976,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11872,13 +13012,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11908,13 +13048,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11944,13 +13084,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11980,13 +13120,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12016,13 +13156,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12052,13 +13192,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12088,13 +13228,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12124,13 +13264,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12160,13 +13300,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12196,13 +13336,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12232,13 +13372,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12268,13 +13408,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12304,13 +13444,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12340,13 +13480,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12376,13 +13516,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12412,13 +13552,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12448,13 +13588,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12484,13 +13624,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12520,13 +13660,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12556,13 +13696,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12592,13 +13732,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12628,13 +13768,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12664,13 +13804,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12700,13 +13840,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12736,13 +13876,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12772,13 +13912,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12808,13 +13948,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12844,13 +13984,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12880,13 +14020,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12916,13 +14056,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12952,13 +14092,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12988,13 +14128,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13024,13 +14164,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13060,13 +14200,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13096,13 +14236,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13132,13 +14272,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13168,13 +14308,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13204,13 +14344,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13240,13 +14380,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13276,13 +14416,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13312,13 +14452,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13348,13 +14488,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13384,13 +14524,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13420,13 +14560,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13456,13 +14596,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13492,13 +14632,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13528,13 +14668,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13564,13 +14704,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13600,13 +14740,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13636,13 +14776,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13672,13 +14812,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13708,13 +14848,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13744,13 +14884,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13780,13 +14920,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13816,13 +14956,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13852,13 +14992,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13888,13 +15028,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13924,13 +15064,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13960,13 +15100,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13991,6 +15131,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -14549,6 +15905,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go new file mode 100644 index 00000000..4112884a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go @@ -0,0 +1,77 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) MarshalTo(data []byte) (n int, err error) { + return r.protoType().MarshalTo(data) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go index 7a9bb832..4e291b14 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -103,7 +109,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -282,21 +290,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -305,21 +313,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -328,21 +336,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -351,21 +359,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -374,19 +382,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -395,19 +403,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -416,16 +424,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -434,16 +442,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -452,16 +460,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -470,16 +478,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -488,9 +496,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -499,9 +507,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -510,8 +518,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -520,8 +528,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -530,8 +538,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -540,7 +548,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -549,8 +557,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -559,8 +567,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -569,8 +577,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -579,15 +587,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -596,15 +604,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -613,9 +621,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -624,9 +632,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -635,9 +643,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -646,8 +654,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -656,8 +664,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -666,8 +674,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -676,9 +684,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -687,7 +695,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -696,8 +704,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -706,7 +714,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -723,7 +731,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -732,9 +740,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -743,9 +751,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -754,9 +762,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -765,9 +773,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -801,9 +809,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -812,9 +820,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -848,9 +856,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -859,9 +867,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -869,25 +877,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -895,25 +897,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -922,8 +918,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -934,7 +930,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -947,9 +943,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -958,21 +954,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1101,7 +1097,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1110,21 +1106,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1133,21 +1129,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1156,21 +1152,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1179,16 +1175,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1197,10 +1193,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1209,9 +1205,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1222,8 +1218,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1232,7 +1228,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1242,7 +1238,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1256,7 +1252,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1265,7 +1261,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1274,7 +1270,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1285,7 +1281,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1294,7 +1290,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1304,8 +1300,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1313,12 +1309,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1326,7 +1377,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1334,7 +1386,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1342,7 +1395,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1350,7 +1404,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1358,7 +1413,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1366,7 +1422,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/unsafeboth/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1374,7 +1431,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/unsafeboth/thetest.proto", } func init() { @@ -1440,6 +1498,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4760,19 +4824,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4840,19 +4906,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6461,6 +6529,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6647,393 +6950,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6125 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xde, 0xe1, 0x90, 0x12, 0x75, 0x28, 0x51, 0xd4, 0xac, 0x56, 0xa6, 0xe5, 0xf5, 0x3e, 0x68, - 0x79, 0x2d, 0x2b, 0xb6, 0x5e, 0xab, 0x7d, 0xd1, 0x89, 0x03, 0xbe, 0x56, 0xd6, 0x56, 0xaf, 0x8e, - 0xa4, 0xc4, 0x4e, 0x0b, 0x10, 0x14, 0x39, 0x92, 0x68, 0x53, 0x43, 0x96, 0x43, 0xda, 0xde, 0xfc, - 0x28, 0xd2, 0xa4, 0x4d, 0x93, 0x16, 0x7d, 0xa6, 0x45, 0xf3, 0x8e, 0x93, 0x22, 0x8d, 0x93, 0xb6, - 0x69, 0xd2, 0xa6, 0x41, 0x11, 0x14, 0x8d, 0x81, 0x22, 0xed, 0xf6, 0x4f, 0x91, 0xe6, 0x57, 0x51, - 0x14, 0x46, 0x5e, 0x40, 0xd3, 0x36, 0x6d, 0x13, 0xc0, 0x40, 0x02, 0x24, 0x3f, 0x7a, 0xdf, 0x33, - 0xf7, 0x72, 0xc8, 0x19, 0x79, 0xed, 0x24, 0x0b, 0x70, 0x45, 0xde, 0x73, 0xbe, 0x33, 0x67, 0xce, - 0xeb, 0x9e, 0xb9, 0xf7, 0x92, 0xf0, 0xf7, 0x4b, 0x70, 0xe1, 0xb0, 0xd9, 0x3c, 0x6c, 0x58, 0x0b, - 0xad, 0x76, 0xb3, 0xd3, 0xdc, 0xef, 0x1e, 0x2c, 0xd4, 0x2c, 0xa7, 0xda, 0xae, 0xb7, 0x3a, 0xcd, - 0xf6, 0x3c, 0x19, 0x33, 0xc6, 0x29, 0xc7, 0x3c, 0xe7, 0xc8, 0x6c, 0xc0, 0xc4, 0xcd, 0x7a, 0xc3, - 0x2a, 0x0a, 0xc6, 0x1d, 0xab, 0x63, 0x5c, 0x87, 0xe8, 0x01, 0x1a, 0x4c, 0x6b, 0x17, 0xf4, 0xd9, - 0xc4, 0xf2, 0xcc, 0xbc, 0x02, 0x9a, 0x97, 0x11, 0xdb, 0x78, 0xd8, 0x24, 0x88, 0xcc, 0xb7, 0xa3, - 0x70, 0xda, 0x87, 0x6a, 0x18, 0x10, 0xb5, 0x2b, 0xc7, 0x58, 0xa2, 0x36, 0x3b, 0x62, 0x92, 0xf7, - 0x46, 0x1a, 0x86, 0x5b, 0x95, 0xea, 0x33, 0x95, 0x43, 0x2b, 0x1d, 0x21, 0xc3, 0xfc, 0xa3, 0x71, - 0x0e, 0xa0, 0x66, 0xb5, 0x2c, 0xbb, 0x66, 0xd9, 0xd5, 0xdb, 0x69, 0x1d, 0x69, 0x31, 0x62, 0x7a, - 0x46, 0x8c, 0x37, 0xc0, 0x44, 0xab, 0xbb, 0xdf, 0xa8, 0x57, 0xcb, 0x1e, 0x36, 0x40, 0x6c, 0x31, - 0x33, 0x45, 0x09, 0x45, 0x97, 0xf9, 0x21, 0x18, 0x7f, 0xce, 0xaa, 0x3c, 0xe3, 0x65, 0x4d, 0x10, - 0xd6, 0x24, 0x1e, 0xf6, 0x30, 0x16, 0x60, 0xf4, 0xd8, 0x72, 0x1c, 0xa4, 0x40, 0xb9, 0x73, 0xbb, - 0x65, 0xa5, 0xa3, 0xe4, 0xee, 0x2f, 0xf4, 0xdc, 0xbd, 0x7a, 0xe7, 0x09, 0x86, 0xda, 0x45, 0x20, - 0x23, 0x07, 0x23, 0x96, 0xdd, 0x3d, 0xa6, 0x12, 0x62, 0x7d, 0xec, 0x57, 0x42, 0x1c, 0xaa, 0x94, - 0x38, 0x86, 0x31, 0x11, 0xc3, 0x8e, 0xd5, 0x7e, 0xb6, 0x5e, 0xb5, 0xd2, 0x43, 0x44, 0xc0, 0x43, - 0x3d, 0x02, 0x76, 0x28, 0x5d, 0x95, 0xc1, 0x71, 0xe8, 0x56, 0x46, 0xac, 0xe7, 0x3b, 0x96, 0xed, - 0xd4, 0x9b, 0x76, 0x7a, 0x98, 0x08, 0x79, 0xd0, 0xc7, 0x8b, 0x56, 0xa3, 0xa6, 0x8a, 0x70, 0x71, - 0xc6, 0x55, 0x18, 0x6e, 0xb6, 0x3a, 0xe8, 0x9d, 0x93, 0x8e, 0x23, 0xff, 0x24, 0x96, 0xcf, 0xfa, - 0x06, 0xc2, 0x16, 0xe5, 0x31, 0x39, 0xb3, 0xb1, 0x06, 0x29, 0xa7, 0xd9, 0x6d, 0x57, 0xad, 0x72, - 0xb5, 0x59, 0xb3, 0xca, 0x75, 0xfb, 0xa0, 0x99, 0x1e, 0x21, 0x02, 0xce, 0xf7, 0xde, 0x08, 0x61, - 0x2c, 0x20, 0xbe, 0x35, 0xc4, 0x66, 0x26, 0x1d, 0xe9, 0xb3, 0x31, 0x05, 0x43, 0xce, 0x6d, 0xbb, - 0x53, 0x79, 0x3e, 0x3d, 0x4a, 0x22, 0x84, 0x7d, 0xca, 0xfc, 0x20, 0x06, 0xe3, 0x61, 0x42, 0xec, - 0x31, 0x88, 0x1d, 0xe0, 0xbb, 0x44, 0x01, 0x76, 0x02, 0x1b, 0x50, 0x8c, 0x6c, 0xc4, 0xa1, 0x57, - 0x69, 0xc4, 0x1c, 0x24, 0x6c, 0xcb, 0xe9, 0x58, 0x35, 0x1a, 0x11, 0x7a, 0xc8, 0x98, 0x02, 0x0a, - 0xea, 0x0d, 0xa9, 0xe8, 0xab, 0x0a, 0xa9, 0x27, 0x61, 0x5c, 0xa8, 0x54, 0x6e, 0x57, 0xec, 0x43, - 0x1e, 0x9b, 0x0b, 0x41, 0x9a, 0xcc, 0x97, 0x38, 0xce, 0xc4, 0x30, 0x33, 0x69, 0x49, 0x9f, 0x8d, - 0x22, 0x40, 0xd3, 0xb6, 0x9a, 0x07, 0x28, 0xbd, 0xaa, 0x0d, 0x14, 0x27, 0xfe, 0x56, 0xda, 0xc2, - 0x2c, 0x3d, 0x56, 0x6a, 0xd2, 0xd1, 0x6a, 0xc3, 0xb8, 0xe1, 0x86, 0xda, 0x70, 0x9f, 0x48, 0xd9, - 0xa0, 0x49, 0xd6, 0x13, 0x6d, 0x7b, 0x90, 0x6c, 0x5b, 0x38, 0xee, 0x91, 0x89, 0xe9, 0x9d, 0x8d, - 0x10, 0x25, 0xe6, 0x03, 0xef, 0xcc, 0x64, 0x30, 0x7a, 0x63, 0x63, 0x6d, 0xef, 0x47, 0xe3, 0x01, - 0x10, 0x03, 0x65, 0x12, 0x56, 0x40, 0xaa, 0xd0, 0x28, 0x1f, 0xdc, 0x44, 0x63, 0xd3, 0xd7, 0x21, - 0x29, 0x9b, 0xc7, 0x98, 0x84, 0x98, 0xd3, 0xa9, 0xb4, 0x3b, 0x24, 0x0a, 0x63, 0x26, 0xfd, 0x60, - 0xa4, 0x40, 0x47, 0x45, 0x86, 0x54, 0xb9, 0x98, 0x89, 0xdf, 0x4e, 0x5f, 0x83, 0x31, 0xe9, 0xf2, - 0x61, 0x81, 0x99, 0xf7, 0x0f, 0xc1, 0xa4, 0x5f, 0xcc, 0xf9, 0x86, 0x3f, 0x4a, 0x1f, 0x14, 0x01, - 0xfb, 0x56, 0x1b, 0xc5, 0x1d, 0x96, 0xc0, 0x3e, 0xa1, 0x88, 0x8a, 0x35, 0x2a, 0xfb, 0x56, 0x03, - 0x45, 0x93, 0x36, 0x9b, 0x5c, 0x7e, 0x43, 0xa8, 0xa8, 0x9e, 0x5f, 0xc7, 0x10, 0x93, 0x22, 0x8d, - 0xc7, 0x21, 0xca, 0x4a, 0x1c, 0x96, 0x30, 0x17, 0x4e, 0x02, 0x8e, 0x45, 0x93, 0xe0, 0x8c, 0xfb, - 0x60, 0x04, 0xff, 0xa5, 0xb6, 0x1d, 0x22, 0x3a, 0xc7, 0xf1, 0x00, 0xb6, 0xab, 0x31, 0x0d, 0x71, - 0x12, 0x66, 0x35, 0x8b, 0x4f, 0x0d, 0xe2, 0x33, 0x76, 0x4c, 0xcd, 0x3a, 0xa8, 0x74, 0x1b, 0x9d, - 0xf2, 0xb3, 0x95, 0x46, 0xd7, 0x22, 0x01, 0x83, 0x1c, 0xc3, 0x06, 0xdf, 0x82, 0xc7, 0x8c, 0xf3, - 0x90, 0xa0, 0x51, 0x59, 0x47, 0x98, 0xe7, 0x49, 0xf5, 0x89, 0x99, 0x34, 0x50, 0xd7, 0xf0, 0x08, - 0xbe, 0xfc, 0xd3, 0x0e, 0xca, 0x05, 0xe6, 0x5a, 0x72, 0x09, 0x3c, 0x40, 0x2e, 0x7f, 0x4d, 0x2d, - 0x7c, 0xf7, 0xfb, 0xdf, 0x9e, 0x1a, 0x8b, 0x99, 0x2f, 0x46, 0x20, 0x4a, 0xf2, 0x6d, 0x1c, 0x12, - 0xbb, 0x4f, 0x6d, 0x97, 0xca, 0xc5, 0xad, 0xbd, 0xfc, 0x7a, 0x29, 0xa5, 0x19, 0x49, 0x00, 0x32, - 0x70, 0x73, 0x7d, 0x2b, 0xb7, 0x9b, 0x8a, 0x88, 0xcf, 0x6b, 0x9b, 0xbb, 0x57, 0x57, 0x52, 0xba, - 0x00, 0xec, 0xd1, 0x81, 0xa8, 0x97, 0xe1, 0xf2, 0x72, 0x2a, 0x86, 0x22, 0x61, 0x94, 0x0a, 0x58, - 0x7b, 0xb2, 0x54, 0x44, 0x1c, 0x43, 0xf2, 0x08, 0xe2, 0x19, 0x36, 0xc6, 0x60, 0x84, 0x8c, 0xe4, - 0xb7, 0xb6, 0xd6, 0x53, 0x71, 0x21, 0x73, 0x67, 0xd7, 0x5c, 0xdb, 0x5c, 0x4d, 0x8d, 0x08, 0x99, - 0xab, 0xe6, 0xd6, 0xde, 0x76, 0x0a, 0x84, 0x84, 0x8d, 0xd2, 0xce, 0x4e, 0x6e, 0xb5, 0x94, 0x4a, - 0x08, 0x8e, 0xfc, 0x53, 0xbb, 0xa5, 0x9d, 0xd4, 0xa8, 0xa4, 0x16, 0xba, 0xc4, 0x98, 0xb8, 0x44, - 0x69, 0x73, 0x6f, 0x23, 0x95, 0x34, 0x26, 0x60, 0x8c, 0x5e, 0x82, 0x2b, 0x31, 0xae, 0x0c, 0x21, - 0x4d, 0x53, 0xae, 0x22, 0x54, 0xca, 0x84, 0x34, 0x80, 0x38, 0x8c, 0x4c, 0x01, 0x62, 0x24, 0xba, - 0x50, 0x14, 0x27, 0xd7, 0x73, 0xf9, 0xd2, 0x7a, 0x79, 0x6b, 0x7b, 0x77, 0x6d, 0x6b, 0x33, 0xb7, - 0x8e, 0x6c, 0x27, 0xc6, 0xcc, 0xd2, 0xcf, 0xef, 0xad, 0x99, 0xa5, 0x22, 0xb2, 0x9f, 0x67, 0x6c, - 0xbb, 0x94, 0xdb, 0x45, 0x63, 0x7a, 0x66, 0x0e, 0x26, 0xfd, 0xea, 0x8c, 0x5f, 0x66, 0x64, 0x3e, - 0xa1, 0xc1, 0x69, 0x9f, 0x92, 0xe9, 0x9b, 0x45, 0x6f, 0x86, 0x18, 0x8d, 0x34, 0x3a, 0x89, 0x3c, - 0xec, 0x5b, 0x7b, 0x49, 0xdc, 0xf5, 0x4c, 0x24, 0x04, 0xe7, 0x9d, 0x48, 0xf5, 0x3e, 0x13, 0x29, - 0x16, 0xd1, 0x13, 0x4e, 0xef, 0xd2, 0x20, 0xdd, 0x4f, 0x76, 0x40, 0xbe, 0x47, 0xa4, 0x7c, 0x7f, - 0x4c, 0x55, 0xe0, 0x62, 0xff, 0x7b, 0xe8, 0xd1, 0xe2, 0x53, 0x1a, 0x4c, 0xf9, 0xf7, 0x1b, 0xbe, - 0x3a, 0x3c, 0x0e, 0x43, 0xc7, 0x56, 0xe7, 0xa8, 0xc9, 0xe7, 0xdc, 0x4b, 0x3e, 0x95, 0x1c, 0x93, - 0x55, 0x5b, 0x31, 0x94, 0x77, 0x2a, 0xd0, 0xfb, 0x35, 0x0d, 0x54, 0x9b, 0x1e, 0x4d, 0xdf, 0x1b, - 0x81, 0x33, 0xbe, 0xc2, 0x7d, 0x15, 0xbd, 0x1f, 0xa0, 0x6e, 0xb7, 0xba, 0x1d, 0x3a, 0xaf, 0xd2, - 0x32, 0x33, 0x42, 0x46, 0x48, 0x0a, 0xe3, 0x12, 0xd2, 0xed, 0x08, 0xba, 0x4e, 0xe8, 0x40, 0x87, - 0x08, 0xc3, 0x75, 0x57, 0xd1, 0x28, 0x51, 0xf4, 0x5c, 0x9f, 0x3b, 0xed, 0x99, 0xb2, 0x16, 0x21, - 0x55, 0x6d, 0xd4, 0x2d, 0xbb, 0x53, 0x76, 0x3a, 0x6d, 0xab, 0x72, 0x5c, 0xb7, 0x0f, 0x49, 0x1d, - 0x8d, 0x67, 0x63, 0x07, 0x95, 0x86, 0x63, 0x99, 0xe3, 0x94, 0xbc, 0xc3, 0xa9, 0x18, 0x41, 0x26, - 0x8b, 0xb6, 0x07, 0x31, 0x24, 0x21, 0x28, 0x59, 0x20, 0x32, 0x5f, 0x1b, 0x86, 0x84, 0xa7, 0x3b, - 0x33, 0x2e, 0xc2, 0xe8, 0xd3, 0x95, 0x67, 0x2b, 0x65, 0xde, 0x71, 0x53, 0x4b, 0x24, 0xf0, 0xd8, - 0x36, 0xeb, 0xba, 0x17, 0x61, 0x92, 0xb0, 0xa0, 0x7b, 0x44, 0x17, 0xaa, 0x36, 0x2a, 0x8e, 0x43, - 0x8c, 0x16, 0x27, 0xac, 0x06, 0xa6, 0x6d, 0x61, 0x52, 0x81, 0x53, 0x8c, 0x2b, 0x70, 0x9a, 0x20, - 0x8e, 0x51, 0xe1, 0xad, 0xb7, 0x1a, 0x56, 0x19, 0x3f, 0x03, 0x38, 0xa4, 0x9e, 0x0a, 0xcd, 0x26, - 0x30, 0xc7, 0x06, 0x63, 0xc0, 0x1a, 0x39, 0xc6, 0x2a, 0xdc, 0x4f, 0x60, 0x87, 0x96, 0x6d, 0xb5, - 0x2b, 0x1d, 0xab, 0x6c, 0xfd, 0x52, 0x17, 0xf1, 0x96, 0x2b, 0x76, 0xad, 0x7c, 0x54, 0x71, 0x8e, - 0xd2, 0x93, 0x5e, 0x01, 0xf7, 0x62, 0xde, 0x55, 0xc6, 0x5a, 0x22, 0x9c, 0x39, 0xbb, 0xf6, 0x04, - 0xe2, 0x33, 0xb2, 0x30, 0x45, 0x04, 0x21, 0xa3, 0xa0, 0x7b, 0x2e, 0x57, 0x8f, 0xac, 0xea, 0x33, - 0xe5, 0x6e, 0xe7, 0xe0, 0x7a, 0xfa, 0x3e, 0xaf, 0x04, 0xa2, 0xe4, 0x0e, 0xe1, 0x29, 0x60, 0x96, - 0x3d, 0xc4, 0x61, 0xec, 0xc0, 0x28, 0xf6, 0xc7, 0x71, 0xfd, 0xed, 0x48, 0xed, 0x66, 0x9b, 0xcc, - 0x11, 0x49, 0x9f, 0xe4, 0xf6, 0x18, 0x71, 0x7e, 0x8b, 0x01, 0x36, 0x50, 0x7f, 0x9a, 0x8d, 0xed, - 0x6c, 0x97, 0x4a, 0x45, 0x33, 0xc1, 0xa5, 0xdc, 0x6c, 0xb6, 0x71, 0x4c, 0x1d, 0x36, 0x85, 0x8d, - 0x13, 0x34, 0xa6, 0x0e, 0x9b, 0xdc, 0xc2, 0xc8, 0x5e, 0xd5, 0x2a, 0xbd, 0x6d, 0xf4, 0xec, 0xc2, - 0x9a, 0x75, 0x27, 0x9d, 0x92, 0xec, 0x55, 0xad, 0xae, 0x52, 0x06, 0x16, 0xe6, 0x0e, 0x4a, 0x89, - 0x33, 0xae, 0xbd, 0xbc, 0xc0, 0x89, 0x9e, 0xbb, 0x54, 0xa1, 0xe8, 0x8a, 0xad, 0xdb, 0xbd, 0x40, - 0x43, 0xba, 0x62, 0xeb, 0xb6, 0x0a, 0x7b, 0x90, 0x3c, 0x80, 0xb5, 0xad, 0x2a, 0x32, 0x79, 0x2d, - 0x7d, 0x8f, 0x97, 0xdb, 0x43, 0x30, 0x16, 0x50, 0x20, 0x57, 0xcb, 0x96, 0x5d, 0xd9, 0x47, 0xbe, - 0xaf, 0xb4, 0xd1, 0x1b, 0x27, 0x7d, 0xde, 0xcb, 0x9c, 0xac, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, - 0x63, 0x0e, 0x26, 0x9a, 0xfb, 0x4f, 0x57, 0x69, 0x70, 0x95, 0x91, 0x9c, 0x83, 0xfa, 0xf3, 0xe9, - 0x19, 0x62, 0xa6, 0x71, 0x4c, 0x20, 0xa1, 0xb5, 0x4d, 0x86, 0x8d, 0x87, 0x91, 0x70, 0xe7, 0xa8, - 0xd2, 0x6e, 0x91, 0x49, 0xda, 0x41, 0x46, 0xb5, 0xd2, 0x0f, 0x52, 0x56, 0x3a, 0xbe, 0xc9, 0x87, - 0x8d, 0x12, 0x9c, 0xc7, 0x37, 0x6f, 0x57, 0xec, 0x66, 0xb9, 0xeb, 0x58, 0x65, 0x57, 0x45, 0xe1, - 0x8b, 0x4b, 0x58, 0x2d, 0xf3, 0x2c, 0x67, 0xdb, 0x73, 0x50, 0x31, 0xe3, 0x4c, 0xdc, 0x3d, 0x4f, - 0xc2, 0x64, 0xd7, 0xae, 0xdb, 0x28, 0xc4, 0x11, 0x05, 0x83, 0x69, 0xc2, 0xa6, 0xff, 0x63, 0xb8, - 0x4f, 0xd3, 0xbd, 0xe7, 0xe5, 0xa6, 0x41, 0x62, 0x9e, 0xee, 0xf6, 0x0e, 0x66, 0xb2, 0x30, 0xea, - 0x8d, 0x1d, 0x63, 0x04, 0x68, 0xf4, 0xa0, 0xd9, 0x0d, 0xcd, 0xa8, 0x85, 0xad, 0x22, 0x9e, 0x0b, - 0xdf, 0x56, 0x42, 0x13, 0x1b, 0x9a, 0x93, 0xd7, 0xd7, 0x76, 0x4b, 0x65, 0x73, 0x6f, 0x73, 0x77, - 0x6d, 0xa3, 0x94, 0xd2, 0xe7, 0x46, 0xe2, 0xdf, 0x19, 0x4e, 0xbd, 0x03, 0xfd, 0x8b, 0x64, 0xbe, - 0x12, 0x81, 0xa4, 0xdc, 0x07, 0x1b, 0x6f, 0x84, 0x7b, 0xf8, 0x43, 0xab, 0x63, 0x75, 0xca, 0xcf, - 0xd5, 0xdb, 0x24, 0x9c, 0x8f, 0x2b, 0xb4, 0x93, 0x14, 0x9e, 0x98, 0x64, 0x5c, 0xe8, 0xf1, 0xfe, - 0xad, 0x88, 0xe7, 0x26, 0x61, 0x31, 0xd6, 0xe1, 0x3c, 0x32, 0x19, 0xea, 0x35, 0xed, 0x5a, 0xa5, - 0x5d, 0x2b, 0xbb, 0xcb, 0x05, 0xe5, 0x4a, 0x15, 0xc5, 0x81, 0xd3, 0xa4, 0x33, 0x89, 0x90, 0x72, - 0xd6, 0x6e, 0xee, 0x30, 0x66, 0xb7, 0xc4, 0xe6, 0x18, 0xab, 0x12, 0x35, 0x7a, 0xbf, 0xa8, 0x41, - 0xbd, 0xd7, 0x71, 0xa5, 0x85, 0xc2, 0xa6, 0xd3, 0xbe, 0x4d, 0xba, 0xb7, 0xb8, 0x19, 0x47, 0x03, - 0x25, 0xfc, 0xf9, 0xf5, 0xf3, 0x81, 0xd7, 0x8e, 0xff, 0xae, 0xc3, 0xa8, 0xb7, 0x83, 0xc3, 0x0d, - 0x71, 0x95, 0x94, 0x79, 0x8d, 0x54, 0x81, 0x07, 0x06, 0xf6, 0x7b, 0xf3, 0x05, 0x5c, 0xff, 0xb3, - 0x43, 0xb4, 0xaf, 0x32, 0x29, 0x12, 0xcf, 0xbd, 0x38, 0xd6, 0x2c, 0xda, 0xad, 0xc7, 0x4d, 0xf6, - 0x09, 0x15, 0xbb, 0xa1, 0xa7, 0x1d, 0x22, 0x7b, 0x88, 0xc8, 0x9e, 0x19, 0x2c, 0xfb, 0xd6, 0x0e, - 0x11, 0x3e, 0x72, 0x6b, 0xa7, 0xbc, 0xb9, 0x65, 0x6e, 0xe4, 0xd6, 0x4d, 0x06, 0x37, 0xee, 0x85, - 0x68, 0xa3, 0xf2, 0xf6, 0xdb, 0xf2, 0x4c, 0x41, 0x86, 0xc2, 0x1a, 0x1e, 0x49, 0xc0, 0x4b, 0x1e, - 0x72, 0x7d, 0x26, 0x43, 0xaf, 0x63, 0xe8, 0x2f, 0x40, 0x8c, 0xd8, 0xcb, 0x00, 0x60, 0x16, 0x4b, - 0x9d, 0x32, 0xe2, 0x10, 0x2d, 0x6c, 0x99, 0x38, 0xfc, 0x51, 0xbc, 0xd3, 0xd1, 0xf2, 0xf6, 0x5a, - 0xa9, 0x80, 0x32, 0x20, 0x73, 0x05, 0x86, 0xa8, 0x11, 0x70, 0x6a, 0x08, 0x33, 0x20, 0x10, 0xfd, - 0xc8, 0x64, 0x68, 0x9c, 0xba, 0xb7, 0x91, 0x2f, 0x99, 0xa9, 0x88, 0xd7, 0xbd, 0x5f, 0xd2, 0x20, - 0xe1, 0x69, 0xa8, 0xf0, 0x54, 0x5e, 0x69, 0x34, 0x9a, 0xcf, 0x95, 0x2b, 0x8d, 0x3a, 0xaa, 0x50, - 0xd4, 0x3f, 0x40, 0x86, 0x72, 0x78, 0x24, 0xac, 0xfd, 0x7e, 0x22, 0xb1, 0xf9, 0x51, 0x0d, 0x52, - 0x6a, 0x33, 0xa6, 0x28, 0xa8, 0xfd, 0x54, 0x15, 0xfc, 0xb0, 0x06, 0x49, 0xb9, 0x03, 0x53, 0xd4, - 0xbb, 0xf8, 0x53, 0x55, 0xef, 0x43, 0x1a, 0x8c, 0x49, 0x7d, 0xd7, 0xcf, 0x94, 0x76, 0x1f, 0xd4, - 0xe1, 0xb4, 0x0f, 0x0e, 0x15, 0x20, 0xda, 0xa0, 0xd2, 0x9e, 0xf9, 0xd1, 0x30, 0xd7, 0x9a, 0xc7, - 0xf3, 0xdf, 0x76, 0xa5, 0xdd, 0x61, 0xfd, 0x2c, 0x9a, 0x2f, 0xeb, 0x35, 0x54, 0x54, 0xeb, 0x07, - 0x75, 0xd4, 0xbe, 0xd1, 0x27, 0x16, 0xda, 0xb5, 0x8e, 0xbb, 0xe3, 0xf4, 0xf1, 0xf8, 0x11, 0x30, - 0x5a, 0x4d, 0xa7, 0xde, 0xa9, 0x3f, 0x8b, 0x97, 0xe7, 0xf8, 0x83, 0x34, 0xee, 0x62, 0xa3, 0x66, - 0x8a, 0x53, 0xd6, 0xec, 0x8e, 0xe0, 0xb6, 0xad, 0xc3, 0x8a, 0xc2, 0x8d, 0xcb, 0x90, 0x6e, 0xa6, - 0x38, 0x45, 0x70, 0xa3, 0x46, 0xb3, 0xd6, 0xec, 0xe2, 0x86, 0x80, 0xf2, 0xe1, 0xaa, 0xa7, 0x99, - 0x09, 0x3a, 0x26, 0x58, 0x58, 0xc7, 0xe6, 0x3e, 0xc1, 0x8f, 0x9a, 0x09, 0x3a, 0x46, 0x59, 0x1e, - 0x82, 0xf1, 0xca, 0xe1, 0x61, 0x1b, 0x0b, 0xe7, 0x82, 0x68, 0x1b, 0x9a, 0x14, 0xc3, 0x84, 0x71, - 0xfa, 0x16, 0xc4, 0xb9, 0x1d, 0xf0, 0xc4, 0x82, 0x2d, 0x81, 0xe6, 0x7c, 0xb2, 0x8e, 0x12, 0xc1, - 0x0f, 0xf5, 0x36, 0x27, 0xa2, 0x8b, 0xd6, 0x9d, 0xb2, 0xbb, 0xa0, 0x17, 0x41, 0xf4, 0xb8, 0x99, - 0xa8, 0x3b, 0x62, 0x05, 0x27, 0xf3, 0x29, 0x34, 0xbd, 0xca, 0x0b, 0x92, 0x46, 0x11, 0xe2, 0x8d, - 0x26, 0x8a, 0x0f, 0x8c, 0xa0, 0xab, 0xe1, 0xb3, 0x01, 0x6b, 0x98, 0xf3, 0xeb, 0x8c, 0xdf, 0x14, - 0xc8, 0xe9, 0x7f, 0xd6, 0x20, 0xce, 0x87, 0xd1, 0x44, 0x11, 0x6d, 0x55, 0x3a, 0x47, 0x44, 0x5c, - 0x2c, 0x1f, 0x49, 0x69, 0x26, 0xf9, 0x8c, 0xc7, 0x51, 0x37, 0x63, 0x93, 0x10, 0x60, 0xe3, 0xf8, - 0x33, 0xf6, 0x6b, 0xc3, 0xaa, 0xd4, 0x48, 0x83, 0xdb, 0x3c, 0x3e, 0x46, 0x9e, 0x74, 0xb8, 0x5f, - 0xd9, 0x78, 0x81, 0x0d, 0xe3, 0x75, 0xf1, 0x4e, 0xbb, 0x52, 0x6f, 0x48, 0xbc, 0x51, 0xc2, 0x9b, - 0xe2, 0x04, 0xc1, 0x9c, 0x85, 0x7b, 0xb9, 0xdc, 0x9a, 0xd5, 0xa9, 0xa0, 0xe6, 0xb9, 0xe6, 0x82, - 0x86, 0xc8, 0x6a, 0xd7, 0x3d, 0x8c, 0xa1, 0xc8, 0xe8, 0x1c, 0x9b, 0x7f, 0x12, 0x35, 0xb2, 0xcd, - 0x63, 0xd5, 0x12, 0xf9, 0x94, 0xf2, 0xdc, 0xe5, 0x3c, 0xa1, 0xbd, 0x0d, 0xdc, 0xa6, 0xe2, 0x13, - 0x11, 0x7d, 0x75, 0x3b, 0xff, 0x99, 0xc8, 0xf4, 0x2a, 0xc5, 0x6d, 0x73, 0x0b, 0x9a, 0xd6, 0x41, - 0xc3, 0xaa, 0x62, 0xeb, 0xc0, 0xc7, 0x1f, 0x80, 0x47, 0x0f, 0xeb, 0x9d, 0xa3, 0xee, 0xfe, 0x3c, - 0xba, 0xc2, 0xc2, 0x61, 0xf3, 0xb0, 0xe9, 0x6e, 0x67, 0xe0, 0x4f, 0xe4, 0x03, 0x79, 0xc7, 0xb6, - 0x34, 0x46, 0xc4, 0xe8, 0x74, 0xe0, 0xfe, 0x47, 0x76, 0x13, 0x4e, 0x33, 0xe6, 0x32, 0x59, 0x53, - 0xa5, 0x2d, 0xa8, 0x31, 0xf0, 0x81, 0x3c, 0xfd, 0xf9, 0x6f, 0x93, 0x29, 0xc1, 0x9c, 0x60, 0x50, - 0x4c, 0xa3, 0x4d, 0x6a, 0xd6, 0x84, 0x33, 0x92, 0x3c, 0x1a, 0xc3, 0xe8, 0x91, 0x7b, 0xb0, 0xc4, - 0xaf, 0x30, 0x89, 0xa7, 0x3d, 0x12, 0x77, 0x18, 0x34, 0x5b, 0x80, 0xb1, 0x93, 0xc8, 0xfa, 0x07, - 0x26, 0x6b, 0xd4, 0xf2, 0x0a, 0x59, 0x85, 0x71, 0x22, 0xa4, 0xda, 0x75, 0x3a, 0xcd, 0x63, 0x52, - 0x20, 0x06, 0x8b, 0xf9, 0xc7, 0x6f, 0xd3, 0xa0, 0x4a, 0x62, 0x58, 0x41, 0xa0, 0xb2, 0x6f, 0x81, - 0x49, 0x3c, 0x42, 0x72, 0xd0, 0x2b, 0x2d, 0x78, 0x09, 0x21, 0xfd, 0x2f, 0xef, 0xa2, 0xb1, 0x77, - 0x5a, 0x08, 0xf0, 0xc8, 0xf5, 0x78, 0xe2, 0xd0, 0xea, 0xa0, 0xda, 0x86, 0x9e, 0xff, 0x1a, 0x0d, - 0x63, 0xe0, 0x1e, 0x43, 0xfa, 0x03, 0xdf, 0x95, 0x3d, 0xb1, 0x4a, 0x91, 0xb9, 0x46, 0x23, 0xbb, - 0x07, 0xf7, 0xf8, 0x78, 0x36, 0x84, 0xcc, 0x0f, 0x32, 0x99, 0x93, 0x3d, 0xde, 0xc5, 0x62, 0xb7, - 0x81, 0x8f, 0x0b, 0x7f, 0x84, 0x90, 0xf9, 0x21, 0x26, 0xd3, 0x60, 0x58, 0xee, 0x16, 0x2c, 0xf1, - 0x16, 0x4c, 0xa0, 0x27, 0xf5, 0xfd, 0xa6, 0xc3, 0x9e, 0x7b, 0x43, 0x88, 0xfb, 0x30, 0x13, 0x37, - 0xce, 0x80, 0xe4, 0x29, 0x18, 0xcb, 0xba, 0x01, 0xf1, 0x03, 0xf4, 0x00, 0x14, 0x42, 0xc4, 0x47, - 0x98, 0x88, 0x61, 0xcc, 0x8f, 0xa1, 0x39, 0x18, 0x3d, 0x6c, 0xb2, 0x32, 0x1c, 0x0c, 0xff, 0x28, - 0x83, 0x27, 0x38, 0x86, 0x89, 0x68, 0x35, 0x5b, 0xdd, 0x06, 0xae, 0xd1, 0xc1, 0x22, 0x3e, 0xc6, - 0x45, 0x70, 0x0c, 0x13, 0x71, 0x02, 0xb3, 0xbe, 0xc0, 0x45, 0x38, 0x1e, 0x7b, 0xbe, 0x19, 0xaf, - 0xf5, 0x36, 0x6e, 0x37, 0xed, 0x30, 0x4a, 0x7c, 0x9c, 0x49, 0x00, 0x06, 0xc1, 0x02, 0x1e, 0x83, - 0x91, 0xb0, 0x8e, 0xf8, 0x24, 0x83, 0xc7, 0x2d, 0xee, 0x01, 0x94, 0x67, 0xbc, 0xc8, 0xe0, 0xbd, - 0x95, 0x60, 0x11, 0x7f, 0xc2, 0x44, 0x24, 0x3d, 0x30, 0x76, 0x1b, 0x1d, 0xcb, 0xe9, 0xa0, 0x47, - 0xf5, 0x10, 0x42, 0x3e, 0xc5, 0x6f, 0x83, 0x41, 0x98, 0x29, 0xf7, 0x2d, 0xbb, 0x7a, 0x14, 0x4e, - 0xc2, 0x8b, 0xdc, 0x94, 0x1c, 0x83, 0x45, 0xa0, 0xca, 0x73, 0x5c, 0x69, 0xa3, 0x87, 0xeb, 0x46, - 0x28, 0x77, 0x7c, 0x9a, 0xc9, 0x18, 0x15, 0x20, 0x66, 0x91, 0xae, 0x7d, 0x12, 0x31, 0x9f, 0xe1, - 0x16, 0xf1, 0xc0, 0x58, 0xea, 0xa1, 0x27, 0x53, 0xdc, 0x49, 0x9c, 0x44, 0xda, 0x9f, 0xf2, 0xd4, - 0xa3, 0xd8, 0x0d, 0xaf, 0x44, 0xe4, 0x69, 0x07, 0x3d, 0x82, 0x87, 0x11, 0xf3, 0x67, 0xdc, 0xd3, - 0x04, 0x80, 0xc1, 0x4f, 0xc1, 0xbd, 0xbe, 0xa5, 0x3e, 0x84, 0xb0, 0x3f, 0x67, 0xc2, 0xa6, 0x7c, - 0xca, 0x3d, 0x2b, 0x09, 0x27, 0x15, 0xf9, 0x59, 0x5e, 0x12, 0x2c, 0x45, 0xd6, 0x36, 0x6e, 0x63, - 0x9d, 0xca, 0xc1, 0xc9, 0xac, 0xf6, 0x17, 0xdc, 0x6a, 0x14, 0x2b, 0x59, 0x6d, 0x17, 0xa6, 0x98, - 0xc4, 0x93, 0xf9, 0xf5, 0x73, 0xbc, 0xb0, 0x52, 0xf4, 0x9e, 0xec, 0xdd, 0x5f, 0x80, 0x69, 0x61, - 0x4e, 0xde, 0x81, 0x39, 0x65, 0xbc, 0x30, 0x10, 0x2c, 0xf9, 0xf3, 0x4c, 0x32, 0xaf, 0xf8, 0xa2, - 0x85, 0x73, 0x36, 0x2a, 0x2d, 0x2c, 0xfc, 0x49, 0x48, 0x73, 0xe1, 0x5d, 0x1b, 0x35, 0xf8, 0xcd, - 0x43, 0x1b, 0xb9, 0xb1, 0x16, 0x42, 0xf4, 0x5f, 0x2a, 0xae, 0xda, 0xf3, 0xc0, 0xb1, 0xe4, 0x35, - 0x48, 0x89, 0x7e, 0xa3, 0x5c, 0x3f, 0x6e, 0x35, 0x51, 0x6b, 0x39, 0x58, 0xe2, 0x5f, 0x71, 0x4f, - 0x09, 0xdc, 0x1a, 0x81, 0x65, 0x4b, 0x90, 0x24, 0x1f, 0xc3, 0x86, 0xe4, 0x17, 0x98, 0xa0, 0x31, - 0x17, 0xc5, 0x0a, 0x07, 0xea, 0x94, 0x50, 0xcf, 0x1b, 0xa6, 0xfe, 0xfd, 0x35, 0x2f, 0x1c, 0x0c, - 0x42, 0xa3, 0x6f, 0x5c, 0x99, 0x89, 0x8d, 0xa0, 0xed, 0xd7, 0xf4, 0xaf, 0xbc, 0xc2, 0x72, 0x56, - 0x9e, 0x88, 0xb3, 0xeb, 0xd8, 0x3c, 0xf2, 0x74, 0x19, 0x2c, 0xec, 0x5d, 0xaf, 0x08, 0x0b, 0x49, - 0xb3, 0x65, 0xf6, 0x26, 0x8c, 0x49, 0x53, 0x65, 0xb0, 0xa8, 0x5f, 0x65, 0xa2, 0x46, 0xbd, 0x33, - 0x65, 0xf6, 0x0a, 0x44, 0xf1, 0xb4, 0x17, 0x0c, 0xff, 0x35, 0x06, 0x27, 0xec, 0xd9, 0x37, 0x41, - 0x9c, 0x4f, 0x77, 0xc1, 0xd0, 0x77, 0x33, 0xa8, 0x80, 0x60, 0x38, 0x9f, 0xea, 0x82, 0xe1, 0xbf, - 0xce, 0xe1, 0x1c, 0x82, 0xe1, 0xe1, 0x4d, 0xf8, 0xd2, 0x6f, 0x46, 0x59, 0xb9, 0xe2, 0xb6, 0xc3, - 0x7b, 0x3e, 0x74, 0x8e, 0x0b, 0x46, 0xbf, 0x97, 0x5d, 0x9c, 0x23, 0xb2, 0xd7, 0x20, 0x16, 0xd2, - 0xe0, 0xbf, 0xc5, 0xa0, 0x94, 0x1f, 0xcd, 0x20, 0x09, 0xcf, 0xbc, 0x16, 0x0c, 0xff, 0x6d, 0x06, - 0xf7, 0xa2, 0xb0, 0xea, 0x6c, 0x5e, 0x0b, 0x16, 0xf0, 0x3b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, - 0x53, 0x5a, 0x30, 0xfa, 0x77, 0xb9, 0xd5, 0x39, 0x04, 0x65, 0xd3, 0x88, 0x28, 0x53, 0xc1, 0xf8, - 0xdf, 0x63, 0x78, 0x17, 0x83, 0x2d, 0xe0, 0x29, 0x93, 0xc1, 0x22, 0x7e, 0x9f, 0x5b, 0xc0, 0x83, - 0xc2, 0x69, 0xa4, 0x4e, 0x7d, 0xc1, 0x92, 0xde, 0xc7, 0xd3, 0x48, 0x99, 0xf9, 0xb0, 0x37, 0x49, - 0xb5, 0x08, 0x16, 0xf1, 0x07, 0xdc, 0x9b, 0x84, 0x1f, 0xab, 0xa1, 0xce, 0x25, 0xc1, 0x32, 0xfe, - 0x88, 0xab, 0xa1, 0x4c, 0x25, 0x68, 0x66, 0x32, 0x7a, 0xe7, 0x91, 0x60, 0x79, 0xef, 0x67, 0xf2, - 0x26, 0x7a, 0xa6, 0x91, 0xec, 0x5b, 0x61, 0xca, 0x7f, 0x0e, 0x09, 0x96, 0xfa, 0x81, 0x57, 0x94, - 0xae, 0xdf, 0x3b, 0x85, 0xa0, 0x29, 0x6f, 0xd2, 0x6f, 0xfe, 0x08, 0x16, 0xfb, 0xc1, 0x57, 0xe4, - 0x07, 0x3b, 0xef, 0xf4, 0x81, 0x3a, 0x34, 0x70, 0x4b, 0x77, 0xb0, 0xac, 0x0f, 0x33, 0x59, 0x1e, - 0x10, 0x4e, 0x0d, 0x56, 0xb9, 0x83, 0xf1, 0x1f, 0xe1, 0xa9, 0xc1, 0x10, 0x08, 0x1c, 0xb7, 0xbb, - 0x8d, 0x06, 0x0e, 0x0e, 0x63, 0xf0, 0x91, 0x86, 0xf4, 0x7f, 0xfe, 0x88, 0x25, 0x06, 0x07, 0xa0, - 0x1a, 0x1a, 0xb3, 0x8e, 0xf7, 0x91, 0x0d, 0x02, 0x90, 0xff, 0xf5, 0x23, 0x5e, 0x10, 0x30, 0x37, - 0xca, 0x27, 0xa0, 0x0f, 0x8d, 0x64, 0x0d, 0x3b, 0x00, 0xfb, 0xdf, 0x3f, 0x62, 0xdb, 0xac, 0x2e, - 0xc4, 0x15, 0x40, 0x37, 0x6d, 0x07, 0x0b, 0xf8, 0xae, 0x2c, 0x80, 0x3c, 0x68, 0xde, 0x80, 0x61, - 0x7c, 0xb2, 0xa3, 0x53, 0x39, 0x0c, 0x42, 0xff, 0x0f, 0x43, 0x73, 0x7e, 0x6c, 0xb0, 0xe3, 0x66, - 0xdb, 0x42, 0x6f, 0x9d, 0x20, 0xec, 0xff, 0x32, 0xac, 0x00, 0x60, 0x70, 0xb5, 0xe2, 0x74, 0xc2, - 0xdc, 0xf7, 0xff, 0x71, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xfb, 0x67, 0xac, 0xdb, 0x41, 0xd8, 0xef, - 0x71, 0xa5, 0x19, 0x3f, 0x2a, 0x80, 0x23, 0xf8, 0x2d, 0x3d, 0x7a, 0x10, 0x00, 0xfe, 0x3e, 0x03, - 0xbb, 0x88, 0xfc, 0x45, 0xff, 0xa5, 0x1d, 0x58, 0x6d, 0xae, 0x36, 0xe9, 0xa2, 0x0e, 0x7c, 0xb6, - 0x0e, 0xe7, 0x11, 0x0f, 0x9a, 0x5f, 0x17, 0x68, 0x4e, 0xee, 0x37, 0x3b, 0x47, 0x0b, 0x9d, 0x23, - 0x0b, 0xd7, 0x60, 0xb6, 0x2a, 0x13, 0xc5, 0xef, 0xa7, 0x4f, 0xb6, 0x94, 0x43, 0xf6, 0x65, 0x36, - 0xeb, 0x58, 0xbb, 0x4d, 0xb2, 0xa8, 0x68, 0x9c, 0x85, 0x21, 0xa2, 0xef, 0x12, 0x59, 0xf3, 0xd6, - 0xf2, 0xd1, 0x3b, 0x2f, 0x9f, 0x3f, 0x65, 0x0e, 0x91, 0xf3, 0x79, 0x4b, 0x82, 0xba, 0x4c, 0x96, - 0xf4, 0x23, 0x12, 0x75, 0x59, 0x50, 0x2f, 0xd3, 0xc3, 0x4f, 0x12, 0xf5, 0xb2, 0xa0, 0xae, 0x90, - 0xf5, 0x31, 0x5d, 0xa2, 0xae, 0x08, 0xea, 0x15, 0xb2, 0xcc, 0x39, 0x26, 0x51, 0xaf, 0x08, 0xea, - 0x55, 0xb2, 0xb8, 0x19, 0x95, 0xa8, 0x57, 0x05, 0xf5, 0x1a, 0x59, 0xd7, 0x9c, 0x90, 0xa8, 0xd7, - 0x04, 0xf5, 0x3a, 0x59, 0xcf, 0x34, 0x24, 0xea, 0x75, 0x41, 0xbd, 0x41, 0xb6, 0xa3, 0x87, 0x25, - 0xea, 0x0d, 0xe3, 0x1c, 0x0c, 0x53, 0x6b, 0x2c, 0x92, 0x2d, 0x9c, 0x71, 0x46, 0x1e, 0xa6, 0xe6, - 0x58, 0x74, 0xe9, 0x4b, 0x64, 0xeb, 0x79, 0x48, 0xa6, 0x2f, 0xb9, 0xf4, 0x65, 0x72, 0x9c, 0x32, - 0x25, 0xd3, 0x97, 0x5d, 0xfa, 0xe5, 0xf4, 0x18, 0xce, 0x61, 0x99, 0x7e, 0xd9, 0xa5, 0xaf, 0xa4, - 0x93, 0x38, 0x6c, 0x64, 0xfa, 0x8a, 0x4b, 0xbf, 0x92, 0x1e, 0xc7, 0x4b, 0xba, 0x32, 0xfd, 0x4a, - 0xe6, 0x9d, 0xc4, 0xbd, 0xb6, 0xeb, 0xde, 0x29, 0xd9, 0xbd, 0xc2, 0xb1, 0x53, 0xb2, 0x63, 0x85, - 0x4b, 0xa7, 0x64, 0x97, 0x0a, 0x67, 0x4e, 0xc9, 0xce, 0x14, 0x6e, 0x9c, 0x92, 0xdd, 0x28, 0x1c, - 0x38, 0x25, 0x3b, 0x50, 0xb8, 0x6e, 0x4a, 0x76, 0x9d, 0x70, 0xda, 0x94, 0xec, 0x34, 0xe1, 0xae, - 0x29, 0xd9, 0x5d, 0xc2, 0x51, 0x69, 0xc5, 0x51, 0xae, 0x8b, 0xd2, 0x8a, 0x8b, 0x5c, 0xe7, 0xa4, - 0x15, 0xe7, 0xb8, 0x6e, 0x49, 0x2b, 0x6e, 0x71, 0x1d, 0x92, 0x56, 0x1c, 0xe2, 0xba, 0x22, 0xad, - 0xb8, 0xc2, 0x75, 0x02, 0xcb, 0x31, 0xd3, 0x6a, 0xf9, 0xe4, 0x98, 0x3e, 0x30, 0xc7, 0xf4, 0x81, - 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, 0xe9, 0x03, 0x73, 0x4c, 0x1f, 0x98, 0x63, 0xfa, - 0xc0, 0x1c, 0xd3, 0x07, 0xe6, 0x98, 0x3e, 0x38, 0xc7, 0xf4, 0x80, 0x1c, 0xd3, 0x03, 0x72, 0x4c, - 0x0f, 0xc8, 0x31, 0x3d, 0x20, 0xc7, 0xf4, 0x80, 0x1c, 0xd3, 0xfb, 0xe6, 0x98, 0xeb, 0xde, 0x29, - 0xd9, 0xbd, 0xbe, 0x39, 0xa6, 0xf7, 0xc9, 0x31, 0xbd, 0x4f, 0x8e, 0xe9, 0x7d, 0x72, 0x4c, 0xef, - 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe4, 0x98, 0xde, 0x27, 0xc7, 0xf4, 0x7e, 0x39, 0xa6, - 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, 0xef, 0x9b, 0x63, 0x7a, 0xdf, 0x1c, - 0xd3, 0xbd, 0x39, 0xf6, 0xb7, 0x3a, 0x18, 0x34, 0xc7, 0xb6, 0xc9, 0x21, 0x00, 0xe6, 0x8a, 0x73, - 0x4a, 0xa6, 0x0d, 0x61, 0xd7, 0xa5, 0x5c, 0x97, 0x9c, 0x53, 0x72, 0x4d, 0xa6, 0x2f, 0x0b, 0x3a, - 0xcf, 0x36, 0x99, 0x7e, 0x59, 0xd0, 0x79, 0xbe, 0xc9, 0xf4, 0x15, 0x41, 0xe7, 0x19, 0x27, 0xd3, - 0xaf, 0x08, 0x3a, 0xcf, 0x39, 0x99, 0x7e, 0x55, 0xd0, 0x79, 0xd6, 0xc9, 0xf4, 0x6b, 0x82, 0xce, - 0xf3, 0x4e, 0xa6, 0x5f, 0x17, 0x74, 0x9e, 0x79, 0x32, 0xfd, 0x86, 0x71, 0x41, 0xcd, 0x3d, 0xce, - 0x20, 0x5c, 0x7b, 0x41, 0xcd, 0x3e, 0x85, 0x63, 0xc9, 0xe5, 0xe0, 0xf9, 0xa7, 0x70, 0x2c, 0xbb, - 0x1c, 0x3c, 0x03, 0x15, 0x8e, 0xcb, 0x99, 0xf7, 0x10, 0xf7, 0xd9, 0xaa, 0xfb, 0xa6, 0x15, 0xf7, - 0x45, 0x3c, 0xae, 0x9b, 0x56, 0x5c, 0x17, 0xf1, 0xb8, 0x6d, 0x5a, 0x71, 0x5b, 0xc4, 0xe3, 0xb2, - 0x69, 0xc5, 0x65, 0x11, 0x8f, 0xbb, 0xa6, 0x15, 0x77, 0x45, 0x3c, 0xae, 0x9a, 0x56, 0x5c, 0x15, - 0xf1, 0xb8, 0x69, 0x5a, 0x71, 0x53, 0xc4, 0xe3, 0xa2, 0x69, 0xc5, 0x45, 0x11, 0x8f, 0x7b, 0xa6, - 0x15, 0xf7, 0x44, 0x3c, 0xae, 0x39, 0xab, 0xba, 0x26, 0xe2, 0x75, 0xcb, 0x59, 0xd5, 0x2d, 0x11, - 0xaf, 0x4b, 0xce, 0xaa, 0x2e, 0x89, 0x78, 0xdd, 0x71, 0x56, 0x75, 0x47, 0xc4, 0xeb, 0x8a, 0x1f, - 0x47, 0x78, 0x47, 0xb8, 0xd3, 0x69, 0x77, 0xab, 0x9d, 0xbb, 0xea, 0x08, 0x17, 0xa5, 0xf6, 0x21, - 0xb1, 0x6c, 0xcc, 0x93, 0x86, 0xd5, 0xdb, 0x71, 0x2a, 0x33, 0xd8, 0xa2, 0xd4, 0x58, 0x78, 0x10, - 0xb6, 0x3f, 0x62, 0xe5, 0xae, 0x7a, 0xc3, 0x45, 0xa9, 0xcd, 0x08, 0xd6, 0xef, 0xfa, 0xeb, 0xde, - 0xb1, 0xbd, 0x14, 0xe1, 0x1d, 0x1b, 0x33, 0xff, 0x49, 0x3b, 0xb6, 0xb9, 0x60, 0x93, 0x0b, 0x63, - 0xcf, 0x05, 0x1b, 0xbb, 0x67, 0xd6, 0x09, 0xdb, 0xc1, 0xcd, 0x05, 0x9b, 0x56, 0x18, 0xf5, 0xb5, - 0xed, 0xb7, 0x58, 0x04, 0xa3, 0x62, 0xe2, 0x13, 0xc1, 0x27, 0xed, 0xb7, 0x16, 0xa5, 0x52, 0x72, - 0xd2, 0x08, 0xd6, 0x4f, 0x1c, 0xc1, 0x27, 0xed, 0xbc, 0x16, 0xa5, 0xf2, 0x72, 0xe2, 0x08, 0x7e, - 0x1d, 0xfa, 0x21, 0x16, 0xc1, 0xae, 0xf9, 0x4f, 0xda, 0x0f, 0xcd, 0x05, 0x9b, 0xdc, 0x37, 0x82, - 0xf5, 0x13, 0x44, 0x70, 0x98, 0xfe, 0x68, 0x2e, 0xd8, 0xb4, 0xfe, 0x11, 0x7c, 0xd7, 0xdd, 0xcc, - 0xc7, 0x34, 0x98, 0x40, 0x97, 0x29, 0xe1, 0xf5, 0x9c, 0x9a, 0x55, 0x63, 0x76, 0x5c, 0x94, 0x2a, - 0x41, 0x1f, 0x57, 0x7f, 0xf5, 0xe5, 0xf3, 0xae, 0x85, 0xaf, 0x40, 0x9c, 0x5a, 0x78, 0x71, 0x31, - 0x7d, 0x47, 0x0b, 0xa8, 0x70, 0xf1, 0x03, 0xc6, 0x6a, 0x5c, 0xe4, 0x30, 0x34, 0xf7, 0x7c, 0x4d, - 0xf3, 0x54, 0x39, 0xc6, 0xb2, 0xb4, 0x98, 0x79, 0x1f, 0xd1, 0xd0, 0xbe, 0x6b, 0x0d, 0x17, 0x42, - 0x69, 0xe8, 0xd1, 0xed, 0xbe, 0x1e, 0xdd, 0x3c, 0x5a, 0x75, 0x61, 0x1c, 0xc1, 0x36, 0xc9, 0x17, - 0xf9, 0xc2, 0xa8, 0x44, 0x79, 0x94, 0x7a, 0xb0, 0x28, 0x85, 0xa5, 0x17, 0x21, 0x42, 0x5a, 0xae, - 0x11, 0x99, 0x3a, 0xbe, 0xac, 0x2d, 0x5d, 0x76, 0xae, 0xdf, 0x65, 0xdd, 0xca, 0x2e, 0x2e, 0x38, - 0xd7, 0xef, 0x82, 0x6e, 0x0e, 0x89, 0x4b, 0x3d, 0xcf, 0x27, 0x67, 0x7a, 0xae, 0x03, 0x15, 0x87, - 0xc8, 0x1a, 0x3d, 0x9e, 0x38, 0x9a, 0x1f, 0xc5, 0x4a, 0xfd, 0xdb, 0xcb, 0xe7, 0xa3, 0x7b, 0x5d, - 0xa4, 0x6b, 0xa4, 0x5e, 0x33, 0x6e, 0x41, 0xec, 0x2d, 0xec, 0x7b, 0x34, 0x98, 0x61, 0x85, 0x31, - 0x3c, 0xd2, 0x77, 0x8d, 0x08, 0x5f, 0x78, 0x81, 0xae, 0xe4, 0xcd, 0xef, 0xd5, 0xed, 0xce, 0xd2, - 0xf2, 0x75, 0xf6, 0x95, 0x9a, 0xcc, 0x2f, 0x02, 0xd0, 0x6b, 0x16, 0xf1, 0xf7, 0x00, 0x36, 0xb9, - 0x64, 0x7a, 0xe9, 0xeb, 0x48, 0xea, 0x4a, 0x18, 0xa9, 0x8f, 0xd6, 0x10, 0xfa, 0x51, 0xbc, 0xe0, - 0x36, 0x9f, 0xbf, 0x8d, 0xc6, 0xb9, 0xf4, 0x16, 0x9f, 0xf5, 0xd8, 0x7d, 0xa5, 0x3d, 0xf7, 0x15, - 0x97, 0xee, 0xe9, 0xa6, 0x7c, 0x4f, 0x8b, 0xaf, 0xf6, 0x7e, 0x9e, 0xe7, 0x93, 0x84, 0x62, 0x49, - 0x3d, 0xc8, 0x92, 0xfa, 0xdd, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, 0x72, 0xaf, 0xfa, 0xa0, 0x7b, 0xd5, - 0xef, 0xe6, 0x5e, 0x7f, 0x40, 0xb3, 0x55, 0xe4, 0xd3, 0x9e, 0x4d, 0x8f, 0xc5, 0xfd, 0x6c, 0xad, - 0x05, 0xbd, 0xa6, 0x5d, 0x40, 0x36, 0x7a, 0xe7, 0x85, 0xf3, 0x5a, 0xe6, 0x63, 0x11, 0x7e, 0xe7, - 0x34, 0x91, 0x5e, 0xdd, 0x9d, 0xff, 0xac, 0xf4, 0x54, 0xaf, 0x87, 0x85, 0x3e, 0xaa, 0xc1, 0x54, - 0x4f, 0x25, 0xa7, 0x66, 0x7a, 0x6d, 0xcb, 0xb9, 0x7d, 0xd2, 0x72, 0xce, 0x14, 0xfc, 0x82, 0x06, - 0x93, 0x4a, 0x79, 0xa5, 0xea, 0x2d, 0x28, 0xea, 0xdd, 0xd3, 0x7b, 0x25, 0xc2, 0xe8, 0xd1, 0xce, - 0xeb, 0x5e, 0x05, 0xe0, 0x91, 0x2c, 0xfc, 0xbe, 0xa2, 0xf8, 0xfd, 0xac, 0x00, 0xf8, 0x98, 0x8b, - 0x47, 0x00, 0x53, 0xbb, 0x09, 0xd1, 0xdd, 0xb6, 0x85, 0x97, 0x20, 0x22, 0x5b, 0x6d, 0xa6, 0x61, - 0x92, 0xe2, 0xb7, 0xda, 0xf9, 0x76, 0xc5, 0xae, 0x1e, 0x99, 0x91, 0x66, 0x1b, 0x4d, 0xb6, 0x7a, - 0x8e, 0x7d, 0xe1, 0x38, 0xb1, 0x3c, 0x4e, 0x19, 0xd0, 0x00, 0xe3, 0xd0, 0x2b, 0x76, 0x0d, 0x89, - 0x88, 0xae, 0x5b, 0x95, 0x03, 0xa6, 0x04, 0x50, 0x1e, 0x3c, 0x62, 0x46, 0x1b, 0xe8, 0x7f, 0x76, - 0xc1, 0x27, 0x21, 0xce, 0x05, 0x1b, 0x33, 0x18, 0x71, 0xd0, 0x61, 0x97, 0x65, 0x08, 0xac, 0x0e, - 0x9b, 0xb9, 0x10, 0xee, 0xa0, 0x63, 0x5c, 0x82, 0x98, 0x59, 0x3f, 0x3c, 0xea, 0xb0, 0x8b, 0xf7, - 0xb2, 0xc5, 0xda, 0x98, 0x9c, 0x79, 0x0a, 0x46, 0x84, 0x46, 0xaf, 0xb1, 0xe8, 0x22, 0xbd, 0x35, - 0xf4, 0x24, 0xec, 0x99, 0x4f, 0xf8, 0xba, 0x25, 0xfb, 0x32, 0xe7, 0x05, 0x88, 0x23, 0x33, 0xbb, - 0x45, 0x9f, 0x77, 0xa4, 0x78, 0xe7, 0x9d, 0x8c, 0x66, 0xde, 0xa9, 0x41, 0xbc, 0x68, 0x59, 0x2d, - 0x62, 0xf0, 0x07, 0x21, 0x5a, 0x6c, 0x3e, 0x67, 0x33, 0x05, 0x27, 0x98, 0x45, 0x31, 0x99, 0xd9, - 0x34, 0x5a, 0x43, 0x64, 0xc4, 0xe6, 0xb1, 0xfb, 0x69, 0x61, 0x77, 0x0f, 0x1f, 0xb1, 0x7d, 0x46, - 0xb2, 0x3d, 0x73, 0x20, 0x66, 0xea, 0xb1, 0xff, 0x35, 0x48, 0x78, 0xae, 0x62, 0xcc, 0x32, 0x35, - 0x22, 0x2a, 0xd0, 0x6b, 0x2b, 0xac, 0x49, 0xc6, 0x82, 0x31, 0xe9, 0xc2, 0x18, 0xea, 0x31, 0x71, - 0x1f, 0x28, 0x31, 0xf3, 0x9c, 0x6c, 0x66, 0x7f, 0x56, 0x66, 0xea, 0x45, 0x6a, 0x23, 0x62, 0xee, - 0x19, 0x1a, 0x9c, 0xfd, 0x9d, 0xd8, 0x41, 0xef, 0x33, 0x31, 0xd0, 0x37, 0xeb, 0x8d, 0xcc, 0x9b, - 0x00, 0x68, 0xca, 0xe3, 0x43, 0x54, 0x4a, 0xd6, 0x25, 0xb9, 0x81, 0x77, 0x8f, 0xac, 0x5d, 0xf4, - 0x17, 0xb3, 0xc8, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x1f, 0x0e, 0xc4, 0xfb, 0x76, - 0x62, 0x98, 0x35, 0x4d, 0x59, 0x9f, 0xb2, 0x3a, 0x39, 0xbb, 0xd9, 0x39, 0xb2, 0xda, 0x0a, 0x62, - 0xd9, 0xb8, 0x2c, 0x25, 0x6c, 0x72, 0xf9, 0x3e, 0x81, 0xe8, 0x0b, 0xba, 0x9c, 0xf9, 0x1c, 0x51, - 0x10, 0xb7, 0x02, 0x3d, 0x37, 0xa8, 0x87, 0xb8, 0x41, 0xe3, 0xaa, 0xd4, 0xbf, 0x0d, 0x50, 0x53, - 0x79, 0xb4, 0xbc, 0x21, 0x3d, 0xe7, 0x0c, 0x56, 0x56, 0x7e, 0xc6, 0xe4, 0x36, 0xe5, 0x2a, 0x3f, - 0x1c, 0xa8, 0x72, 0x9f, 0xee, 0xf6, 0xa4, 0x36, 0xd5, 0xc3, 0xda, 0xf4, 0x4b, 0xa2, 0xe3, 0xa0, - 0xdf, 0xf9, 0x26, 0xbf, 0x14, 0x60, 0x3c, 0x12, 0xe8, 0xfb, 0xac, 0x56, 0x10, 0xaa, 0xae, 0x84, - 0x75, 0x7f, 0x36, 0x92, 0xcf, 0x0b, 0x75, 0xaf, 0x9d, 0x20, 0x04, 0xb2, 0x91, 0x42, 0x41, 0x94, - 0xed, 0xf8, 0x7b, 0x50, 0x16, 0xbf, 0xf8, 0xc2, 0xf9, 0x53, 0x99, 0x4f, 0x23, 0xe5, 0x19, 0xa7, - 0x27, 0x70, 0x1f, 0x55, 0x94, 0x3f, 0xc3, 0x6b, 0x86, 0x9f, 0x05, 0x7e, 0x62, 0xc1, 0xfb, 0x15, - 0x0d, 0xd2, 0x3d, 0xba, 0x72, 0x7b, 0x2f, 0x86, 0x52, 0x39, 0xab, 0x95, 0x7e, 0xfa, 0x36, 0x7f, - 0x0a, 0x62, 0xbb, 0xf5, 0x63, 0xab, 0x8d, 0x67, 0x02, 0xfc, 0x86, 0xaa, 0xcc, 0x37, 0x73, 0x62, - 0x1d, 0x3c, 0xc4, 0x69, 0x54, 0x39, 0x89, 0x86, 0xf7, 0x13, 0xa2, 0xc5, 0x4a, 0xa7, 0x42, 0x34, - 0x18, 0x15, 0xf5, 0x15, 0x8d, 0x64, 0x2e, 0xc3, 0xe8, 0xc6, 0x6d, 0x72, 0xda, 0xa4, 0x46, 0x0e, - 0x62, 0xc8, 0xdd, 0x1f, 0xef, 0x57, 0x97, 0xe6, 0x62, 0xf1, 0x5a, 0xea, 0x8e, 0x96, 0x8d, 0x12, - 0x7d, 0x9e, 0x85, 0xe4, 0x16, 0x56, 0x9b, 0xe0, 0x24, 0x18, 0xbd, 0xba, 0x2e, 0x6e, 0x5e, 0x69, - 0xca, 0x74, 0xb7, 0x29, 0xbb, 0x00, 0xda, 0x86, 0xdc, 0x3a, 0x79, 0xf5, 0x30, 0xb5, 0xe3, 0xb9, - 0x68, 0x3c, 0x99, 0x9a, 0x40, 0xff, 0x43, 0x6a, 0x8c, 0x5d, 0xf7, 0x9f, 0x74, 0x48, 0xd1, 0x56, - 0x07, 0x39, 0xb1, 0x6e, 0xd7, 0x3b, 0xbd, 0xfd, 0xaa, 0xd0, 0xd8, 0x78, 0x33, 0x8c, 0x60, 0x93, - 0xde, 0x64, 0x3f, 0xb8, 0x83, 0x4d, 0x7f, 0x91, 0xb5, 0x28, 0x8a, 0x08, 0x36, 0x40, 0x42, 0x87, - 0xfc, 0xb6, 0x0d, 0xc1, 0xa0, 0x07, 0x0c, 0x7d, 0x73, 0x73, 0x83, 0x4d, 0x6e, 0x2b, 0x03, 0xa1, - 0xec, 0xa8, 0x0b, 0xfb, 0xc4, 0xc6, 0x9c, 0x43, 0x53, 0xb7, 0x37, 0x37, 0x50, 0xd8, 0x44, 0x90, - 0x18, 0xda, 0xf0, 0xce, 0x84, 0x11, 0x63, 0x46, 0xec, 0x8d, 0xe9, 0xbf, 0xd3, 0x60, 0x4c, 0x1a, - 0x45, 0xb3, 0xed, 0x28, 0x1d, 0xf0, 0xdc, 0xee, 0x90, 0x39, 0x6a, 0x7b, 0xc6, 0xb8, 0xce, 0x91, - 0xbb, 0xd4, 0x79, 0x3a, 0x87, 0x9e, 0xda, 0xe5, 0x71, 0x63, 0x1e, 0x0c, 0xef, 0x10, 0x53, 0x82, - 0xfe, 0x58, 0x89, 0x61, 0xf7, 0x50, 0x32, 0xf7, 0xa3, 0x2a, 0x2c, 0xec, 0x2a, 0x7e, 0x63, 0x63, - 0xb3, 0xb4, 0x83, 0x7f, 0x1e, 0x43, 0xcb, 0x7c, 0x51, 0x83, 0x04, 0x6b, 0x5b, 0xab, 0xcd, 0x96, - 0x65, 0xe4, 0x41, 0xcb, 0xb1, 0x78, 0x78, 0x75, 0x7a, 0x6b, 0x15, 0x34, 0x3b, 0x69, 0xf9, 0xf0, - 0xae, 0xd6, 0xf6, 0x8d, 0x65, 0xd0, 0x0a, 0xcc, 0xc1, 0xe1, 0x3c, 0xa3, 0x55, 0x33, 0xdf, 0xd7, - 0xe1, 0xb4, 0xb7, 0x8d, 0xe6, 0xf5, 0xe4, 0xa2, 0xfc, 0xdc, 0x94, 0x1d, 0x59, 0x5a, 0xbe, 0xbc, - 0x32, 0x8f, 0xff, 0x13, 0x21, 0x79, 0x51, 0x7e, 0x84, 0xea, 0x65, 0xe9, 0x39, 0x26, 0x92, 0x8d, - 0x7a, 0xa8, 0x3d, 0xc7, 0x44, 0x24, 0x6a, 0xcf, 0x31, 0x11, 0x89, 0xda, 0x73, 0x4c, 0x44, 0xa2, - 0xf6, 0x6c, 0x05, 0x48, 0xd4, 0x9e, 0x63, 0x22, 0x12, 0xb5, 0xe7, 0x98, 0x88, 0x44, 0xed, 0x3d, - 0x26, 0xc2, 0xc8, 0x7d, 0x8f, 0x89, 0xc8, 0xf4, 0xde, 0x63, 0x22, 0x32, 0xbd, 0xf7, 0x98, 0x48, - 0x16, 0xf5, 0x67, 0x5d, 0xab, 0xff, 0xa6, 0x83, 0x8c, 0x1f, 0xf4, 0x0c, 0xe8, 0x16, 0xe0, 0x2d, - 0x18, 0xa7, 0xeb, 0x11, 0x05, 0x7c, 0x12, 0xab, 0x6e, 0xa3, 0x52, 0xfc, 0x46, 0x18, 0xa5, 0x43, - 0xf4, 0x29, 0xc7, 0xef, 0x29, 0x90, 0xd2, 0x59, 0xb9, 0x1d, 0xad, 0x7a, 0xb8, 0x33, 0x3f, 0x8e, - 0xc2, 0x14, 0x25, 0xe3, 0xaf, 0x0b, 0x4a, 0x87, 0x8c, 0x2e, 0x29, 0x5b, 0x4a, 0x49, 0x0c, 0xff, - 0xe6, 0xcb, 0xe7, 0xe9, 0x68, 0x4e, 0x04, 0xd3, 0x25, 0x65, 0x73, 0x49, 0xe6, 0x73, 0xe7, 0x9f, - 0x4b, 0xca, 0xc1, 0x23, 0x99, 0x4f, 0x4c, 0x37, 0x82, 0x8f, 0x1f, 0x41, 0x92, 0xf9, 0x8a, 0x22, - 0xca, 0x2e, 0x29, 0x87, 0x91, 0x64, 0xbe, 0x92, 0x88, 0xb7, 0x4b, 0xca, 0xd6, 0x93, 0xcc, 0x77, - 0x53, 0x44, 0xde, 0x25, 0x65, 0x13, 0x4a, 0xe6, 0x5b, 0x15, 0x31, 0x78, 0x49, 0x39, 0xaa, 0x24, - 0xf3, 0x3d, 0x21, 0xa2, 0xf1, 0x92, 0x72, 0x68, 0x49, 0xe6, 0x5b, 0x13, 0x71, 0x39, 0xab, 0x1e, - 0x5f, 0x92, 0x19, 0x6f, 0xb9, 0x11, 0x3a, 0xab, 0x1e, 0x64, 0x92, 0x39, 0x7f, 0xce, 0x8d, 0xd5, - 0x59, 0xf5, 0x48, 0x93, 0xcc, 0xb9, 0xee, 0x46, 0xed, 0xac, 0xba, 0x55, 0x26, 0x73, 0x6e, 0xb8, - 0xf1, 0x3b, 0xab, 0x6e, 0x9a, 0xc9, 0x9c, 0x9b, 0x6e, 0x24, 0xcf, 0xaa, 0xdb, 0x67, 0x32, 0xe7, - 0x96, 0xbb, 0x86, 0xfe, 0x65, 0x25, 0xfc, 0x3c, 0x87, 0xa0, 0x32, 0x4a, 0xf8, 0x81, 0x4f, 0xe8, - 0x65, 0x94, 0xd0, 0x03, 0x9f, 0xb0, 0xcb, 0x28, 0x61, 0x07, 0x3e, 0x21, 0x97, 0x51, 0x42, 0x0e, - 0x7c, 0xc2, 0x2d, 0xa3, 0x84, 0x1b, 0xf8, 0x84, 0x5a, 0x46, 0x09, 0x35, 0xf0, 0x09, 0xb3, 0x8c, - 0x12, 0x66, 0xe0, 0x13, 0x62, 0x19, 0x25, 0xc4, 0xc0, 0x27, 0xbc, 0x32, 0x4a, 0x78, 0x81, 0x4f, - 0x68, 0xcd, 0xa8, 0xa1, 0x05, 0x7e, 0x61, 0x35, 0xa3, 0x86, 0x15, 0xf8, 0x85, 0xd4, 0x03, 0x6a, - 0x48, 0x8d, 0x20, 0xae, 0x18, 0x1e, 0xf2, 0x44, 0xd3, 0x8c, 0x1a, 0x4d, 0xe0, 0x17, 0x49, 0x33, - 0x6a, 0x24, 0x81, 0x5f, 0x14, 0xcd, 0xa8, 0x51, 0x04, 0x7e, 0x11, 0xf4, 0x92, 0x1a, 0x41, 0xee, - 0x11, 0x9f, 0x8c, 0xb2, 0xa3, 0x18, 0x14, 0x41, 0x7a, 0x88, 0x08, 0xd2, 0x43, 0x44, 0x90, 0x1e, - 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, 0x20, 0x3d, 0x44, 0x04, 0xe9, 0x21, 0x22, 0x48, - 0x0f, 0x13, 0x41, 0x7a, 0xa8, 0x08, 0xd2, 0xfb, 0x45, 0xd0, 0x8c, 0x7a, 0xe0, 0x01, 0xfc, 0x0a, - 0xd2, 0x8c, 0xba, 0xf3, 0x19, 0x1c, 0x42, 0x7a, 0xa8, 0x10, 0xd2, 0xfb, 0x85, 0xd0, 0x97, 0x51, - 0x23, 0x25, 0x85, 0x10, 0xdb, 0x1e, 0x7a, 0xad, 0x2a, 0xd0, 0xd5, 0x10, 0xe7, 0x2b, 0xfc, 0x62, - 0xea, 0x6a, 0x88, 0x3d, 0xea, 0x41, 0x71, 0xd6, 0x5b, 0x85, 0x4a, 0x21, 0xaa, 0xd0, 0x4d, 0x11, - 0x43, 0x57, 0x43, 0x9c, 0xbb, 0xe8, 0x8d, 0xbd, 0xeb, 0x83, 0x8a, 0xc0, 0x13, 0xa1, 0x8a, 0xc0, - 0x5a, 0xa8, 0x22, 0x70, 0xcb, 0xf5, 0xe0, 0xbb, 0x23, 0x30, 0xe9, 0x7a, 0x90, 0xbe, 0x23, 0x3f, - 0x95, 0x92, 0xf1, 0xec, 0x50, 0x19, 0x7c, 0xd7, 0xc6, 0xe3, 0x46, 0xbc, 0x7f, 0xb3, 0x2d, 0xef, - 0x55, 0x65, 0x4f, 0xba, 0x7f, 0xe3, 0xf1, 0x38, 0x5b, 0x0b, 0x9d, 0x01, 0x7d, 0xad, 0xe6, 0x90, - 0x6a, 0xe1, 0x77, 0xd9, 0x82, 0xa9, 0xd7, 0x6b, 0x8e, 0x61, 0xc2, 0x10, 0xb9, 0xae, 0x43, 0xdc, - 0x7b, 0x37, 0x17, 0x46, 0xae, 0x27, 0x17, 0x76, 0x32, 0x2f, 0x69, 0x70, 0x41, 0x0a, 0xe5, 0xd7, - 0x66, 0xc7, 0xe0, 0xb1, 0x50, 0x3b, 0x06, 0x52, 0x82, 0xb8, 0xbb, 0x07, 0x0f, 0xf5, 0x6e, 0x54, - 0x7b, 0xb3, 0x44, 0xdd, 0x49, 0xf8, 0x65, 0x48, 0xba, 0x77, 0x40, 0x1e, 0xd9, 0xae, 0x04, 0x2f, - 0x66, 0xfa, 0xa5, 0xe6, 0x15, 0x65, 0x11, 0x6d, 0x20, 0x4c, 0x64, 0x6b, 0x26, 0x8b, 0x9e, 0x38, - 0xe5, 0xaf, 0xbd, 0x04, 0xad, 0x45, 0xc4, 0x71, 0x6b, 0x7e, 0xe7, 0xe3, 0xa8, 0x3d, 0x7f, 0x04, - 0x46, 0xbd, 0xdf, 0x6c, 0x51, 0x80, 0x23, 0x1c, 0x98, 0x8d, 0x7e, 0x15, 0x73, 0xff, 0xa1, 0x06, - 0x67, 0xbc, 0xec, 0x6f, 0x45, 0xbe, 0x5f, 0xb3, 0x71, 0x4f, 0xff, 0x26, 0x88, 0x5b, 0xcc, 0x71, - 0xec, 0xe7, 0x35, 0xd8, 0x63, 0xa4, 0x2f, 0xfb, 0x3c, 0xf9, 0xdf, 0x14, 0x10, 0x65, 0x11, 0x84, - 0x5f, 0x76, 0x79, 0xfa, 0x41, 0x88, 0x51, 0xf9, 0xb2, 0x5e, 0x63, 0x8a, 0x5e, 0x9f, 0xf4, 0xd1, - 0x8b, 0xc4, 0x91, 0x71, 0x4b, 0xd2, 0xcb, 0xf3, 0xb4, 0xea, 0xcb, 0x3e, 0xcf, 0x83, 0x2f, 0x1f, - 0xc7, 0xfd, 0x1f, 0x89, 0xa8, 0x60, 0x25, 0x67, 0x21, 0x5e, 0x52, 0x79, 0xfc, 0xf5, 0x2c, 0x42, - 0x74, 0x13, 0xff, 0x6a, 0xd8, 0x24, 0xfb, 0x95, 0x4c, 0x66, 0x64, 0xf6, 0x4b, 0xac, 0x97, 0x20, - 0x5e, 0x38, 0xaa, 0x37, 0x6a, 0x6d, 0xcb, 0x66, 0x5b, 0xf6, 0x6c, 0x05, 0x1d, 0x63, 0xcc, 0x78, - 0x95, 0xd1, 0xe6, 0x32, 0x90, 0xf0, 0x84, 0x84, 0x11, 0x43, 0x8f, 0xff, 0xa9, 0x53, 0xf8, 0x4f, - 0x3e, 0xa5, 0xe1, 0x3f, 0x85, 0x54, 0x64, 0xee, 0x41, 0x18, 0x57, 0x16, 0xc8, 0x30, 0xa5, 0x98, - 0x02, 0xfc, 0xa7, 0x94, 0x4a, 0x4c, 0x47, 0xdf, 0xf3, 0xc7, 0xe7, 0x4e, 0xcd, 0x3d, 0x06, 0x46, - 0xef, 0x52, 0x9a, 0x31, 0x04, 0x91, 0x1c, 0x16, 0x79, 0x0f, 0x44, 0xf2, 0x48, 0xe6, 0xf4, 0xf8, - 0x6f, 0x7c, 0xe4, 0x42, 0x22, 0x4f, 0xbe, 0x18, 0x8a, 0xb8, 0xf3, 0x79, 0x06, 0x7e, 0x1c, 0xce, - 0xf8, 0x2e, 0xc5, 0x61, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x0f, 0xbe, 0x58, 0x24, 0x78, 0x2d, - 0xcb, 0xb7, 0x34, 0x73, 0x86, 0xcf, 0x32, 0x56, 0xba, 0xe6, 0xd9, 0x42, 0xcd, 0x65, 0x1f, 0x67, - 0xbc, 0x79, 0x5f, 0x5e, 0x2b, 0x60, 0x4b, 0x34, 0x9f, 0x2d, 0x30, 0x7c, 0xc1, 0x17, 0x7f, 0xa0, - 0xec, 0xdb, 0xc9, 0x35, 0x88, 0x09, 0x29, 0x08, 0x85, 0x8b, 0xbe, 0x42, 0x8e, 0x3c, 0xa7, 0xa9, - 0x8b, 0x42, 0xe1, 0x92, 0x2f, 0x6f, 0x3d, 0xe0, 0x54, 0x51, 0x29, 0xbb, 0xc0, 0xa6, 0x91, 0xdc, - 0x92, 0x71, 0x86, 0x47, 0x81, 0x94, 0xe3, 0xcc, 0x40, 0x74, 0x46, 0xc9, 0x2d, 0xa1, 0x3b, 0xa4, - 0x80, 0x7c, 0x5f, 0x40, 0x7f, 0x2b, 0x51, 0x21, 0xf9, 0xa5, 0xec, 0x13, 0x4c, 0x48, 0xa1, 0xaf, - 0x90, 0x00, 0x53, 0x51, 0x49, 0x85, 0xa5, 0xfc, 0xee, 0x9d, 0x6f, 0x9c, 0x3b, 0xf5, 0x55, 0xf4, - 0xfa, 0x57, 0xf4, 0xfa, 0xfa, 0x37, 0xce, 0x69, 0xdf, 0x41, 0xaf, 0xef, 0xa1, 0xd7, 0x0f, 0xd1, - 0xeb, 0x1d, 0xdf, 0x3c, 0xa7, 0xbd, 0x88, 0x5e, 0x9f, 0x43, 0xaf, 0xbf, 0x41, 0xaf, 0x97, 0xd0, - 0xeb, 0xce, 0x37, 0x11, 0x3f, 0x7a, 0x7d, 0x1d, 0xbd, 0xff, 0x0e, 0xfa, 0xfb, 0x3d, 0xf4, 0xf7, - 0x87, 0xe8, 0xf5, 0x8e, 0x6f, 0x9d, 0xd3, 0x5e, 0xf8, 0xd6, 0xb9, 0x53, 0x2f, 0xa2, 0xbf, 0xff, - 0x1f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x57, 0xf3, 0x99, 0x1b, 0x5f, 0x00, 0x00, + // 6509 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0xe6, 0xec, 0x2c, 0xa9, 0xe5, 0xe1, 0x6b, 0x38, 0x94, 0xa9, 0x35, 0x2d, 0x93, 0xd4, 0x5a, + 0x96, 0x69, 0xc6, 0xa6, 0x28, 0x8a, 0xd4, 0x63, 0x15, 0xdb, 0xd8, 0x97, 0x64, 0x2a, 0xe4, 0x92, + 0x19, 0x92, 0xb1, 0x95, 0x16, 0x58, 0x8c, 0x76, 0x2f, 0xc9, 0xb5, 0x77, 0x67, 0x36, 0x3b, 0x43, + 0xdb, 0xf4, 0x8f, 0xc2, 0x4d, 0xda, 0x34, 0x69, 0xd1, 0x67, 0x5a, 0x34, 0x49, 0x13, 0xc7, 0x49, + 0x91, 0xc6, 0x49, 0xfa, 0x48, 0xda, 0x34, 0x0d, 0x82, 0xa2, 0xf1, 0x9f, 0xb4, 0x2a, 0x50, 0x14, + 0x4e, 0x7f, 0x15, 0x41, 0x61, 0x44, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0x26, 0x8d, 0x81, 0x04, 0x70, + 0x7e, 0x14, 0xf7, 0x35, 0x33, 0xf7, 0xee, 0x2c, 0x67, 0x68, 0xd9, 0x49, 0xfe, 0x48, 0xbb, 0xf7, + 0x9c, 0xef, 0xcc, 0xb9, 0xe7, 0x75, 0xcf, 0xdc, 0x7b, 0xb9, 0xf0, 0xea, 0x12, 0x4c, 0xef, 0xd8, + 0xf6, 0x4e, 0x03, 0x9d, 0x6e, 0xb5, 0x6d, 0xd7, 0xbe, 0xbe, 0xb7, 0x7d, 0xba, 0x86, 0x9c, 0x6a, + 0xbb, 0xde, 0x72, 0xed, 0xf6, 0x1c, 0x19, 0xd3, 0x47, 0x28, 0xc7, 0x1c, 0xe7, 0xc8, 0xac, 0xc2, + 0xe8, 0xe5, 0x7a, 0x03, 0x15, 0x3d, 0xc6, 0x0d, 0xe4, 0xea, 0x17, 0x20, 0xb9, 0x5d, 0x6f, 0xa0, + 0xb4, 0x32, 0xad, 0xce, 0x0c, 0x2c, 0x9c, 0x9c, 0x93, 0x40, 0x73, 0x22, 0x62, 0x1d, 0x0f, 0x1b, + 0x04, 0x91, 0xf9, 0x6e, 0x12, 0xc6, 0x42, 0xa8, 0xba, 0x0e, 0x49, 0xcb, 0x6c, 0x62, 0x89, 0xca, + 0x4c, 0xbf, 0x41, 0x3e, 0xeb, 0x69, 0x38, 0xd2, 0x32, 0xab, 0x4f, 0x9a, 0x3b, 0x28, 0x9d, 0x20, + 0xc3, 0xfc, 0xab, 0x3e, 0x09, 0x50, 0x43, 0x2d, 0x64, 0xd5, 0x90, 0x55, 0xdd, 0x4f, 0xab, 0xd3, + 0xea, 0x4c, 0xbf, 0x11, 0x18, 0xd1, 0xdf, 0x01, 0xa3, 0xad, 0xbd, 0xeb, 0x8d, 0x7a, 0xb5, 0x12, + 0x60, 0x83, 0x69, 0x75, 0xa6, 0xd7, 0xd0, 0x28, 0xa1, 0xe8, 0x33, 0xdf, 0x07, 0x23, 0x4f, 0x23, + 0xf3, 0xc9, 0x20, 0xeb, 0x00, 0x61, 0x1d, 0xc6, 0xc3, 0x01, 0xc6, 0x02, 0x0c, 0x36, 0x91, 0xe3, + 0x98, 0x3b, 0xa8, 0xe2, 0xee, 0xb7, 0x50, 0x3a, 0x49, 0x66, 0x3f, 0xdd, 0x31, 0x7b, 0x79, 0xe6, + 0x03, 0x0c, 0xb5, 0xb9, 0xdf, 0x42, 0x7a, 0x0e, 0xfa, 0x91, 0xb5, 0xd7, 0xa4, 0x12, 0x7a, 0xbb, + 0xd8, 0xaf, 0x64, 0xed, 0x35, 0x65, 0x29, 0x29, 0x0c, 0x63, 0x22, 0x8e, 0x38, 0xa8, 0xfd, 0x54, + 0xbd, 0x8a, 0xd2, 0x7d, 0x44, 0xc0, 0x7d, 0x1d, 0x02, 0x36, 0x28, 0x5d, 0x96, 0xc1, 0x71, 0x7a, + 0x01, 0xfa, 0xd1, 0x33, 0x2e, 0xb2, 0x9c, 0xba, 0x6d, 0xa5, 0x8f, 0x10, 0x21, 0xf7, 0x86, 0x78, + 0x11, 0x35, 0x6a, 0xb2, 0x08, 0x1f, 0xa7, 0x9f, 0x83, 0x23, 0x76, 0xcb, 0xad, 0xdb, 0x96, 0x93, + 0x4e, 0x4d, 0x2b, 0x33, 0x03, 0x0b, 0xc7, 0x43, 0x03, 0x61, 0x8d, 0xf2, 0x18, 0x9c, 0x59, 0x5f, + 0x06, 0xcd, 0xb1, 0xf7, 0xda, 0x55, 0x54, 0xa9, 0xda, 0x35, 0x54, 0xa9, 0x5b, 0xdb, 0x76, 0xba, + 0x9f, 0x08, 0x98, 0xea, 0x9c, 0x08, 0x61, 0x2c, 0xd8, 0x35, 0xb4, 0x6c, 0x6d, 0xdb, 0xc6, 0xb0, + 0x23, 0x7c, 0xd7, 0xc7, 0xa1, 0xcf, 0xd9, 0xb7, 0x5c, 0xf3, 0x99, 0xf4, 0x20, 0x89, 0x10, 0xf6, + 0x2d, 0xf3, 0xa3, 0x5e, 0x18, 0x89, 0x13, 0x62, 0x97, 0xa0, 0x77, 0x1b, 0xcf, 0x32, 0x9d, 0x38, + 0x8c, 0x0d, 0x28, 0x46, 0x34, 0x62, 0xdf, 0x9b, 0x34, 0x62, 0x0e, 0x06, 0x2c, 0xe4, 0xb8, 0xa8, + 0x46, 0x23, 0x42, 0x8d, 0x19, 0x53, 0x40, 0x41, 0x9d, 0x21, 0x95, 0x7c, 0x53, 0x21, 0xf5, 0x38, + 0x8c, 0x78, 0x2a, 0x55, 0xda, 0xa6, 0xb5, 0xc3, 0x63, 0xf3, 0x74, 0x94, 0x26, 0x73, 0x25, 0x8e, + 0x33, 0x30, 0xcc, 0x18, 0x46, 0xc2, 0x77, 0xbd, 0x08, 0x60, 0x5b, 0xc8, 0xde, 0xae, 0xd4, 0x50, + 0xb5, 0x91, 0x4e, 0x75, 0xb1, 0xd2, 0x1a, 0x66, 0xe9, 0xb0, 0x92, 0x4d, 0x47, 0xab, 0x0d, 0xfd, + 0xa2, 0x1f, 0x6a, 0x47, 0xba, 0x44, 0xca, 0x2a, 0x4d, 0xb2, 0x8e, 0x68, 0xdb, 0x82, 0xe1, 0x36, + 0xc2, 0x71, 0x8f, 0x6a, 0x6c, 0x66, 0xfd, 0x44, 0x89, 0xb9, 0xc8, 0x99, 0x19, 0x0c, 0x46, 0x27, + 0x36, 0xd4, 0x0e, 0x7e, 0xd5, 0xef, 0x01, 0x6f, 0xa0, 0x42, 0xc2, 0x0a, 0x48, 0x15, 0x1a, 0xe4, + 0x83, 0x65, 0xb3, 0x89, 0x26, 0x2e, 0xc0, 0xb0, 0x68, 0x1e, 0xfd, 0x28, 0xf4, 0x3a, 0xae, 0xd9, + 0x76, 0x49, 0x14, 0xf6, 0x1a, 0xf4, 0x8b, 0xae, 0x81, 0x8a, 0xac, 0x1a, 0xa9, 0x72, 0xbd, 0x06, + 0xfe, 0x38, 0x71, 0x1e, 0x86, 0x84, 0xc7, 0xc7, 0x05, 0x66, 0x3e, 0xda, 0x07, 0x47, 0xc3, 0x62, + 0x2e, 0x34, 0xfc, 0xc7, 0xa1, 0xcf, 0xda, 0x6b, 0x5e, 0x47, 0xed, 0xb4, 0x4a, 0x24, 0xb0, 0x6f, + 0x7a, 0x0e, 0x7a, 0x1b, 0xe6, 0x75, 0xd4, 0x48, 0x27, 0xa7, 0x95, 0x99, 0xe1, 0x85, 0x77, 0xc4, + 0x8a, 0xea, 0xb9, 0x15, 0x0c, 0x31, 0x28, 0x52, 0x7f, 0x18, 0x92, 0xac, 0xc4, 0x61, 0x09, 0xb3, + 0xf1, 0x24, 0xe0, 0x58, 0x34, 0x08, 0x4e, 0xbf, 0x0b, 0xfa, 0xf1, 0xff, 0xd4, 0xb6, 0x7d, 0x44, + 0xe7, 0x14, 0x1e, 0xc0, 0x76, 0xd5, 0x27, 0x20, 0x45, 0xc2, 0xac, 0x86, 0xf8, 0xd2, 0xe0, 0x7d, + 0xc7, 0x8e, 0xa9, 0xa1, 0x6d, 0x73, 0xaf, 0xe1, 0x56, 0x9e, 0x32, 0x1b, 0x7b, 0x88, 0x04, 0x4c, + 0xbf, 0x31, 0xc8, 0x06, 0xdf, 0x83, 0xc7, 0xf4, 0x29, 0x18, 0xa0, 0x51, 0x59, 0xb7, 0x6a, 0xe8, + 0x19, 0x52, 0x7d, 0x7a, 0x0d, 0x1a, 0xa8, 0xcb, 0x78, 0x04, 0x3f, 0xfe, 0x09, 0xc7, 0xb6, 0xb8, + 0x6b, 0xc9, 0x23, 0xf0, 0x00, 0x79, 0xfc, 0x79, 0xb9, 0xf0, 0xdd, 0x1d, 0x3e, 0x3d, 0x39, 0x16, + 0x33, 0x5f, 0x4d, 0x40, 0x92, 0xe4, 0xdb, 0x08, 0x0c, 0x6c, 0x5e, 0x5b, 0x2f, 0x55, 0x8a, 0x6b, + 0x5b, 0xf9, 0x95, 0x92, 0xa6, 0xe8, 0xc3, 0x00, 0x64, 0xe0, 0xf2, 0xca, 0x5a, 0x6e, 0x53, 0x4b, + 0x78, 0xdf, 0x97, 0xcb, 0x9b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd1, 0x81, 0x64, 0x90, 0xe1, + 0xec, 0x82, 0xd6, 0xab, 0x6b, 0x30, 0x48, 0x05, 0x2c, 0x3f, 0x5e, 0x2a, 0x9e, 0x5b, 0xd4, 0xfa, + 0xc4, 0x91, 0xb3, 0x0b, 0xda, 0x11, 0x7d, 0x08, 0xfa, 0xc9, 0x48, 0x7e, 0x6d, 0x6d, 0x45, 0x4b, + 0x79, 0x32, 0x37, 0x36, 0x8d, 0xe5, 0xf2, 0x15, 0xad, 0xdf, 0x93, 0x79, 0xc5, 0x58, 0xdb, 0x5a, + 0xd7, 0xc0, 0x93, 0xb0, 0x5a, 0xda, 0xd8, 0xc8, 0x5d, 0x29, 0x69, 0x03, 0x1e, 0x47, 0xfe, 0xda, + 0x66, 0x69, 0x43, 0x1b, 0x14, 0xd4, 0x3a, 0xbb, 0xa0, 0x0d, 0x79, 0x8f, 0x28, 0x95, 0xb7, 0x56, + 0xb5, 0x61, 0x7d, 0x14, 0x86, 0xe8, 0x23, 0xb8, 0x12, 0x23, 0xd2, 0xd0, 0xb9, 0x45, 0x4d, 0xf3, + 0x15, 0xa1, 0x52, 0x46, 0x85, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40, 0x2f, 0x89, 0x2e, 0x5d, + 0x87, 0xe1, 0x95, 0x5c, 0xbe, 0xb4, 0x52, 0x59, 0x5b, 0xdf, 0x5c, 0x5e, 0x2b, 0xe7, 0x56, 0x34, + 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xde, 0x5a, 0x36, 0x4a, 0x45, 0x2d, 0x11, 0x1c, 0x5b, 0x2f, 0xe5, + 0x36, 0x4b, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x68, 0x58, 0x9d, 0x09, 0xcd, 0x8c, 0x80, 0x8b, 0x13, + 0x5d, 0x5c, 0x4c, 0x64, 0x75, 0xb8, 0xf8, 0x33, 0x0a, 0x8c, 0x85, 0xd4, 0xda, 0xd0, 0x87, 0x3c, + 0x02, 0xbd, 0x34, 0x44, 0xe9, 0xea, 0x73, 0x7f, 0x68, 0xd1, 0x26, 0x01, 0xdb, 0xb1, 0x02, 0x11, + 0x5c, 0x70, 0x05, 0x56, 0xbb, 0xac, 0xc0, 0x58, 0x44, 0x87, 0x92, 0x1f, 0x50, 0x20, 0xdd, 0x4d, + 0x76, 0x44, 0xa1, 0x48, 0x08, 0x85, 0xe2, 0x92, 0xac, 0xc0, 0x89, 0xee, 0x73, 0xe8, 0xd0, 0xe2, + 0x73, 0x0a, 0x8c, 0x87, 0x37, 0x2a, 0xa1, 0x3a, 0x3c, 0x0c, 0x7d, 0x4d, 0xe4, 0xee, 0xda, 0x7c, + 0xb1, 0x3e, 0x15, 0xb2, 0x04, 0x60, 0xb2, 0x6c, 0x2b, 0x86, 0x0a, 0xae, 0x21, 0x6a, 0xb7, 0x6e, + 0x83, 0x6a, 0xd3, 0xa1, 0xe9, 0x87, 0x13, 0x70, 0x47, 0xa8, 0xf0, 0x50, 0x45, 0xef, 0x06, 0xa8, + 0x5b, 0xad, 0x3d, 0x97, 0x2e, 0xc8, 0xb4, 0x3e, 0xf5, 0x93, 0x11, 0x92, 0xfb, 0xb8, 0xf6, 0xec, + 0xb9, 0x1e, 0x5d, 0x25, 0x74, 0xa0, 0x43, 0x84, 0xe1, 0x82, 0xaf, 0x68, 0x92, 0x28, 0x3a, 0xd9, + 0x65, 0xa6, 0x1d, 0x6b, 0xdd, 0x3c, 0x68, 0xd5, 0x46, 0x1d, 0x59, 0x6e, 0xc5, 0x71, 0xdb, 0xc8, + 0x6c, 0xd6, 0xad, 0x1d, 0x52, 0x80, 0x53, 0xd9, 0xde, 0x6d, 0xb3, 0xe1, 0x20, 0x63, 0x84, 0x92, + 0x37, 0x38, 0x15, 0x23, 0xc8, 0x2a, 0xd3, 0x0e, 0x20, 0xfa, 0x04, 0x04, 0x25, 0x7b, 0x88, 0xcc, + 0x17, 0x8f, 0xc0, 0x40, 0xa0, 0xad, 0xd3, 0x4f, 0xc0, 0xe0, 0x13, 0xe6, 0x53, 0x66, 0x85, 0xb7, + 0xea, 0xd4, 0x12, 0x03, 0x78, 0x6c, 0x9d, 0xb5, 0xeb, 0xf3, 0x70, 0x94, 0xb0, 0xd8, 0x7b, 0x2e, + 0x6a, 0x57, 0xaa, 0x0d, 0xd3, 0x71, 0x88, 0xd1, 0x52, 0x84, 0x55, 0xc7, 0xb4, 0x35, 0x4c, 0x2a, + 0x70, 0x8a, 0xbe, 0x04, 0x63, 0x04, 0xd1, 0xdc, 0x6b, 0xb8, 0xf5, 0x56, 0x03, 0x55, 0xf0, 0xcb, + 0x83, 0x43, 0x0a, 0xb1, 0xa7, 0xd9, 0x28, 0xe6, 0x58, 0x65, 0x0c, 0x58, 0x23, 0x47, 0x2f, 0xc2, + 0xdd, 0x04, 0xb6, 0x83, 0x2c, 0xd4, 0x36, 0x5d, 0x54, 0x41, 0xef, 0xdb, 0x33, 0x1b, 0x4e, 0xc5, + 0xb4, 0x6a, 0x95, 0x5d, 0xd3, 0xd9, 0x4d, 0x1f, 0xc5, 0x02, 0xf2, 0x89, 0xb4, 0x62, 0xdc, 0x89, + 0x19, 0xaf, 0x30, 0xbe, 0x12, 0x61, 0xcb, 0x59, 0xb5, 0x47, 0x4d, 0x67, 0x57, 0xcf, 0xc2, 0x38, + 0x91, 0xe2, 0xb8, 0xed, 0xba, 0xb5, 0x53, 0xa9, 0xee, 0xa2, 0xea, 0x93, 0x95, 0x3d, 0x77, 0xfb, + 0x42, 0xfa, 0xae, 0xe0, 0xf3, 0x89, 0x86, 0x1b, 0x84, 0xa7, 0x80, 0x59, 0xb6, 0xdc, 0xed, 0x0b, + 0xfa, 0x06, 0x0c, 0x62, 0x67, 0x34, 0xeb, 0xcf, 0xa2, 0xca, 0xb6, 0xdd, 0x26, 0x2b, 0xcb, 0x70, + 0x48, 0x66, 0x07, 0x2c, 0x38, 0xb7, 0xc6, 0x00, 0xab, 0x76, 0x0d, 0x65, 0x7b, 0x37, 0xd6, 0x4b, + 0xa5, 0xa2, 0x31, 0xc0, 0xa5, 0x5c, 0xb6, 0xdb, 0x38, 0xa0, 0x76, 0x6c, 0xcf, 0xc0, 0x03, 0x34, + 0xa0, 0x76, 0x6c, 0x6e, 0xde, 0x25, 0x18, 0xab, 0x56, 0xe9, 0x9c, 0xeb, 0xd5, 0x0a, 0x6b, 0xf1, + 0x9d, 0xb4, 0x26, 0x18, 0xab, 0x5a, 0xbd, 0x42, 0x19, 0x58, 0x8c, 0x3b, 0xfa, 0x45, 0xb8, 0xc3, + 0x37, 0x56, 0x10, 0x38, 0xda, 0x31, 0x4b, 0x19, 0xba, 0x04, 0x63, 0xad, 0xfd, 0x4e, 0xa0, 0x2e, + 0x3c, 0xb1, 0xb5, 0x2f, 0xc3, 0xee, 0x25, 0xaf, 0x6d, 0x6d, 0x54, 0x35, 0x5d, 0x54, 0x4b, 0x1f, + 0x0b, 0x72, 0x07, 0x08, 0xfa, 0x69, 0xd0, 0xaa, 0xd5, 0x0a, 0xb2, 0xcc, 0xeb, 0x0d, 0x54, 0x31, + 0xdb, 0xc8, 0x32, 0x9d, 0xf4, 0x54, 0x90, 0x79, 0xb8, 0x5a, 0x2d, 0x11, 0x6a, 0x8e, 0x10, 0xf5, + 0x59, 0x18, 0xb5, 0xaf, 0x3f, 0x51, 0xa5, 0x91, 0x55, 0x69, 0xb5, 0xd1, 0x76, 0xfd, 0x99, 0xf4, + 0x49, 0x62, 0xa6, 0x11, 0x4c, 0x20, 0x71, 0xb5, 0x4e, 0x86, 0xf5, 0xfb, 0x41, 0xab, 0x3a, 0xbb, + 0x66, 0xbb, 0x45, 0x96, 0x76, 0xa7, 0x65, 0x56, 0x51, 0xfa, 0x5e, 0xca, 0x4a, 0xc7, 0xcb, 0x7c, + 0x18, 0x47, 0xb6, 0xf3, 0x74, 0x7d, 0xdb, 0xe5, 0x12, 0xef, 0xa3, 0x91, 0x4d, 0xc6, 0x98, 0xb4, + 0xc7, 0xe1, 0xe8, 0x9e, 0x55, 0xb7, 0x5c, 0xd4, 0x6e, 0xb5, 0x11, 0x6e, 0xe2, 0x69, 0x26, 0xa6, + 0xff, 0xfd, 0x48, 0x97, 0x36, 0x7c, 0x2b, 0xc8, 0x4d, 0x03, 0xc0, 0x18, 0xdb, 0xeb, 0x1c, 0xcc, + 0x64, 0x61, 0x30, 0x18, 0x17, 0x7a, 0x3f, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, 0xc6, 0x16, 0xd6, 0x8a, + 0x78, 0x75, 0x7c, 0x6f, 0x49, 0x4b, 0xe0, 0x55, 0x7a, 0x65, 0x79, 0xb3, 0x54, 0x31, 0xb6, 0xca, + 0x9b, 0xcb, 0xab, 0x25, 0x4d, 0x9d, 0xed, 0x4f, 0x7d, 0xef, 0x88, 0xf6, 0xdc, 0x73, 0xcf, 0x3d, + 0x97, 0xc8, 0x7c, 0x33, 0x01, 0xc3, 0x62, 0x67, 0xac, 0xbf, 0x13, 0x8e, 0xf1, 0xd7, 0x58, 0x07, + 0xb9, 0x95, 0xa7, 0xeb, 0x6d, 0x12, 0xaa, 0x4d, 0x93, 0xf6, 0x96, 0x9e, 0x95, 0x8f, 0x32, 0xae, + 0x0d, 0xe4, 0x3e, 0x56, 0x6f, 0xe3, 0x40, 0x6c, 0x9a, 0xae, 0xbe, 0x02, 0x53, 0x96, 0x5d, 0x71, + 0x5c, 0xd3, 0xaa, 0x99, 0xed, 0x5a, 0xc5, 0xdf, 0x40, 0xa8, 0x98, 0xd5, 0x2a, 0x72, 0x1c, 0x9b, + 0x2e, 0x11, 0x9e, 0x94, 0xe3, 0x96, 0xbd, 0xc1, 0x98, 0xfd, 0xda, 0x99, 0x63, 0xac, 0x52, 0x44, + 0xa8, 0xdd, 0x22, 0xe2, 0x2e, 0xe8, 0x6f, 0x9a, 0xad, 0x0a, 0xb2, 0xdc, 0xf6, 0x3e, 0xe9, 0xe7, + 0x52, 0x46, 0xaa, 0x69, 0xb6, 0x4a, 0xf8, 0xfb, 0xdb, 0xe7, 0x83, 0xa0, 0x1d, 0xff, 0x4d, 0x85, + 0xc1, 0x60, 0x4f, 0x87, 0x5b, 0xe4, 0x2a, 0xa9, 0xdf, 0x0a, 0xc9, 0xf0, 0x7b, 0x0e, 0xec, 0x00, + 0xe7, 0x0a, 0xb8, 0xb0, 0x67, 0xfb, 0x68, 0xa7, 0x65, 0x50, 0x24, 0x5e, 0x54, 0x71, 0x4e, 0x23, + 0xda, 0xbf, 0xa7, 0x0c, 0xf6, 0x4d, 0xbf, 0x02, 0x7d, 0x4f, 0x38, 0x44, 0x76, 0x1f, 0x91, 0x7d, + 0xf2, 0x60, 0xd9, 0x57, 0x37, 0x88, 0xf0, 0xfe, 0xab, 0x1b, 0x95, 0xf2, 0x9a, 0xb1, 0x9a, 0x5b, + 0x31, 0x18, 0x5c, 0xbf, 0x13, 0x92, 0x0d, 0xf3, 0xd9, 0x7d, 0x71, 0x09, 0x20, 0x43, 0x71, 0x0d, + 0x7f, 0x27, 0x24, 0x9f, 0x46, 0xe6, 0x93, 0x62, 0xe1, 0x25, 0x43, 0x6f, 0x63, 0xe8, 0x9f, 0x86, + 0x5e, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0xeb, 0xd1, 0x53, 0x90, 0x2c, 0xac, 0x19, 0x38, 0xfc, + 0x35, 0x18, 0xa4, 0xa3, 0x95, 0xf5, 0xe5, 0x52, 0xa1, 0xa4, 0x25, 0x32, 0x4b, 0xd0, 0x47, 0x8d, + 0x80, 0x53, 0xc3, 0x33, 0x83, 0xd6, 0xc3, 0xbe, 0x32, 0x19, 0x0a, 0xa7, 0x6e, 0xad, 0xe6, 0x4b, + 0x86, 0x96, 0x08, 0xba, 0xd7, 0x81, 0xc1, 0x60, 0x3b, 0xf7, 0xd3, 0x89, 0xa9, 0xaf, 0x2b, 0x30, + 0x10, 0x68, 0xcf, 0x70, 0x63, 0x60, 0x36, 0x1a, 0xf6, 0xd3, 0x15, 0xb3, 0x51, 0x37, 0x1d, 0x16, + 0x14, 0x40, 0x86, 0x72, 0x78, 0x24, 0xae, 0xd3, 0x7e, 0x2a, 0xca, 0x3f, 0xaf, 0x80, 0x26, 0xb7, + 0x76, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x28, 0x30, 0x2c, 0xf6, 0x73, 0x92, 0x7a, 0x27, + 0x7e, 0xa6, 0xea, 0x7d, 0x27, 0x01, 0x43, 0x42, 0x17, 0x17, 0x57, 0xbb, 0xf7, 0xc1, 0x68, 0xbd, + 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xbf, 0xd2, 0x40, 0x4f, 0xa1, 0x46, 0x3a, 0x43, 0x0a, + 0xc5, 0xe9, 0x83, 0xfb, 0xc4, 0xb9, 0x65, 0x1f, 0xb7, 0x82, 0x61, 0xd9, 0xb1, 0xe5, 0x62, 0x69, + 0x75, 0x7d, 0x6d, 0xb3, 0x54, 0x2e, 0x5c, 0xab, 0x6c, 0x95, 0xdf, 0x55, 0x5e, 0x7b, 0xac, 0x6c, + 0x68, 0x75, 0x89, 0xed, 0x6d, 0x4c, 0xf5, 0x75, 0xd0, 0x64, 0xa5, 0xf4, 0x63, 0x10, 0xa6, 0x96, + 0xd6, 0xa3, 0x8f, 0xc1, 0x48, 0x79, 0xad, 0xb2, 0xb1, 0x5c, 0x2c, 0x55, 0x4a, 0x97, 0x2f, 0x97, + 0x0a, 0x9b, 0x1b, 0xf4, 0xc5, 0xd9, 0xe3, 0xde, 0x14, 0x93, 0xfa, 0xe3, 0x2a, 0x8c, 0x85, 0x68, + 0xa2, 0xe7, 0x58, 0xcf, 0x4e, 0x5f, 0x23, 0x1e, 0x8c, 0xa3, 0xfd, 0x1c, 0xee, 0x0a, 0xd6, 0xcd, + 0xb6, 0xcb, 0x5a, 0xfc, 0xfb, 0x01, 0x5b, 0xc9, 0x72, 0xeb, 0xdb, 0x75, 0xd4, 0x66, 0xfb, 0x0c, + 0xb4, 0x91, 0x1f, 0xf1, 0xc7, 0xe9, 0x56, 0xc3, 0x03, 0xa0, 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, + 0x42, 0x95, 0xba, 0xc5, 0x37, 0x25, 0x70, 0x63, 0x9f, 0x34, 0x34, 0x4e, 0x59, 0xb6, 0x5c, 0x8f, + 0xdb, 0x42, 0x3b, 0xa6, 0xc4, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, 0x9c, 0xe2, 0x71, 0x9f, 0x80, 0xc1, + 0x9a, 0xbd, 0x87, 0xdb, 0x24, 0xca, 0x87, 0xd7, 0x0b, 0xc5, 0x18, 0xa0, 0x63, 0x1e, 0x0b, 0xeb, + 0x63, 0xfd, 0xdd, 0x90, 0x41, 0x63, 0x80, 0x8e, 0x51, 0x96, 0xfb, 0x60, 0xc4, 0xdc, 0xd9, 0x69, + 0x63, 0xe1, 0x5c, 0x10, 0xed, 0xcc, 0x87, 0xbd, 0x61, 0xc2, 0x38, 0x71, 0x15, 0x52, 0xdc, 0x0e, + 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb4, 0xe8, 0x9e, 0x54, 0x62, 0xa6, 0xdf, 0x48, 0x59, 0x9c, 0x78, + 0x02, 0x06, 0xeb, 0x4e, 0xc5, 0xdf, 0x1c, 0x4d, 0x4c, 0x27, 0x66, 0x52, 0xc6, 0x40, 0xdd, 0xf1, + 0x76, 0xc3, 0x32, 0x9f, 0x4b, 0xc0, 0xb0, 0xb8, 0xb9, 0xab, 0x17, 0x21, 0xd5, 0xb0, 0xab, 0x26, + 0x09, 0x2d, 0x7a, 0xb2, 0x30, 0x13, 0xb1, 0x1f, 0x3c, 0xb7, 0xc2, 0xf8, 0x0d, 0x0f, 0x39, 0xf1, + 0xcf, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e, 0x0e, 0xc9, 0x96, 0xe9, 0xee, 0x12, 0x71, 0xbd, 0xf9, 0x84, + 0xa6, 0x18, 0xe4, 0x3b, 0x1e, 0x77, 0x5a, 0xa6, 0x45, 0x42, 0x80, 0x8d, 0xe3, 0xef, 0xd8, 0xaf, + 0x0d, 0x64, 0xd6, 0x48, 0xdb, 0x6f, 0x37, 0x9b, 0xc8, 0x72, 0x1d, 0xee, 0x57, 0x36, 0x5e, 0x60, + 0xc3, 0xfa, 0x3b, 0x60, 0xd4, 0x6d, 0x9b, 0xf5, 0x86, 0xc0, 0x9b, 0x24, 0xbc, 0x1a, 0x27, 0x78, + 0xcc, 0x59, 0xb8, 0x93, 0xcb, 0xad, 0x21, 0xd7, 0xac, 0xee, 0xa2, 0x9a, 0x0f, 0xea, 0x23, 0x3b, + 0x87, 0xc7, 0x18, 0x43, 0x91, 0xd1, 0x39, 0x36, 0xf3, 0x2d, 0x05, 0x46, 0xf9, 0x8b, 0x4a, 0xcd, + 0x33, 0xd6, 0x2a, 0x80, 0x69, 0x59, 0xb6, 0x1b, 0x34, 0x57, 0x67, 0x28, 0x77, 0xe0, 0xe6, 0x72, + 0x1e, 0xc8, 0x08, 0x08, 0x98, 0x68, 0x02, 0xf8, 0x94, 0xae, 0x66, 0x9b, 0x82, 0x01, 0xb6, 0x73, + 0x4f, 0x8e, 0x7f, 0xe8, 0xab, 0x2d, 0xd0, 0x21, 0xfc, 0x46, 0xa3, 0x1f, 0x85, 0xde, 0xeb, 0x68, + 0xa7, 0x6e, 0xb1, 0xfd, 0x44, 0xfa, 0x85, 0xef, 0x52, 0x26, 0xbd, 0x5d, 0xca, 0xfc, 0xe3, 0x30, + 0x56, 0xb5, 0x9b, 0xb2, 0xba, 0x79, 0x4d, 0x7a, 0xbd, 0x76, 0x1e, 0x55, 0xde, 0x0b, 0x7e, 0x8b, + 0xf9, 0x99, 0x84, 0x7a, 0x65, 0x3d, 0xff, 0x85, 0xc4, 0xc4, 0x15, 0x8a, 0x5b, 0xe7, 0xd3, 0x34, + 0xd0, 0x76, 0x03, 0x55, 0xb1, 0xea, 0xf0, 0xc3, 0x53, 0xf0, 0xe0, 0x4e, 0xdd, 0xdd, 0xdd, 0xbb, + 0x3e, 0x57, 0xb5, 0x9b, 0xa7, 0x77, 0xec, 0x1d, 0xdb, 0x3f, 0xee, 0xc2, 0xdf, 0xc8, 0x17, 0xf2, + 0x89, 0x1d, 0x79, 0xf5, 0x7b, 0xa3, 0x13, 0x91, 0xe7, 0x63, 0xd9, 0x32, 0x8c, 0x31, 0xe6, 0x0a, + 0xd9, 0x73, 0xa7, 0xaf, 0x06, 0xfa, 0x81, 0xfb, 0x2e, 0xe9, 0x2f, 0x7f, 0x97, 0xac, 0xd5, 0xc6, + 0x28, 0x83, 0x62, 0x1a, 0x7d, 0x81, 0xc8, 0x1a, 0x70, 0x87, 0x20, 0x8f, 0xe6, 0x25, 0x6a, 0x47, + 0x48, 0xfc, 0x26, 0x93, 0x38, 0x16, 0x90, 0xb8, 0xc1, 0xa0, 0xd9, 0x02, 0x0c, 0x1d, 0x46, 0xd6, + 0xdf, 0x33, 0x59, 0x83, 0x28, 0x28, 0xe4, 0x0a, 0x8c, 0x10, 0x21, 0xd5, 0x3d, 0xc7, 0xb5, 0x9b, + 0xa4, 0xe8, 0x1d, 0x2c, 0xe6, 0x1f, 0xbe, 0x4b, 0x13, 0x65, 0x18, 0xc3, 0x0a, 0x1e, 0x2a, 0x9b, + 0x05, 0x72, 0xcc, 0x50, 0x43, 0xd5, 0x46, 0x84, 0x84, 0x1b, 0x4c, 0x11, 0x8f, 0x3f, 0xfb, 0x1e, + 0x38, 0x8a, 0x3f, 0x93, 0x9a, 0x14, 0xd4, 0x24, 0x7a, 0x97, 0x29, 0xfd, 0xad, 0x0f, 0xd0, 0x5c, + 0x1c, 0xf3, 0x04, 0x04, 0x74, 0x0a, 0x78, 0x71, 0x07, 0xb9, 0x2e, 0x6a, 0x3b, 0x15, 0xb3, 0x11, + 0xa6, 0x5e, 0xe0, 0x35, 0x3d, 0xfd, 0xb1, 0xd7, 0x44, 0x2f, 0x5e, 0xa1, 0xc8, 0x5c, 0xa3, 0x91, + 0xdd, 0x82, 0x63, 0x21, 0x51, 0x11, 0x43, 0xe6, 0xc7, 0x99, 0xcc, 0xa3, 0x1d, 0x91, 0x81, 0xc5, + 0xae, 0x03, 0x1f, 0xf7, 0x7c, 0x19, 0x43, 0xe6, 0x1f, 0x31, 0x99, 0x3a, 0xc3, 0x72, 0x97, 0x62, + 0x89, 0x57, 0x61, 0xf4, 0x29, 0xd4, 0xbe, 0x6e, 0x3b, 0x6c, 0x6b, 0x24, 0x86, 0xb8, 0x4f, 0x30, + 0x71, 0x23, 0x0c, 0x48, 0xf6, 0x4a, 0xb0, 0xac, 0x8b, 0x90, 0xda, 0x36, 0xab, 0x28, 0x86, 0x88, + 0x4f, 0x32, 0x11, 0x47, 0x30, 0x3f, 0x86, 0xe6, 0x60, 0x70, 0xc7, 0x66, 0xcb, 0x52, 0x34, 0xfc, + 0x79, 0x06, 0x1f, 0xe0, 0x18, 0x26, 0xa2, 0x65, 0xb7, 0xf6, 0x1a, 0x78, 0xcd, 0x8a, 0x16, 0xf1, + 0x29, 0x2e, 0x82, 0x63, 0x98, 0x88, 0x43, 0x98, 0xf5, 0x05, 0x2e, 0xc2, 0x09, 0xd8, 0xf3, 0x11, + 0x18, 0xb0, 0xad, 0xc6, 0xbe, 0x6d, 0xc5, 0x51, 0xe2, 0xd3, 0x4c, 0x02, 0x30, 0x08, 0x16, 0x70, + 0x09, 0xfa, 0xe3, 0x3a, 0xe2, 0xb3, 0xaf, 0xf1, 0xf4, 0xe0, 0x1e, 0xb8, 0x02, 0x23, 0xbc, 0x40, + 0xd5, 0x6d, 0x2b, 0x86, 0x88, 0x3f, 0x61, 0x22, 0x86, 0x03, 0x30, 0x36, 0x0d, 0x17, 0x39, 0xee, + 0x0e, 0x8a, 0x23, 0xe4, 0x73, 0x7c, 0x1a, 0x0c, 0xc2, 0x4c, 0x79, 0x1d, 0x59, 0xd5, 0xdd, 0x78, + 0x12, 0x5e, 0xe4, 0xa6, 0xe4, 0x18, 0x2c, 0xa2, 0x00, 0x43, 0x4d, 0xb3, 0xed, 0xec, 0x9a, 0x8d, + 0x58, 0xee, 0xf8, 0x3c, 0x93, 0x31, 0xe8, 0x81, 0x98, 0x45, 0xf6, 0xac, 0xc3, 0x88, 0xf9, 0x02, + 0xb7, 0x48, 0x00, 0xc6, 0x52, 0xcf, 0x71, 0xc9, 0x06, 0xd4, 0x61, 0xa4, 0x7d, 0x91, 0xa7, 0x1e, + 0xc5, 0xae, 0x06, 0x25, 0x5e, 0x82, 0x7e, 0xa7, 0xfe, 0x6c, 0x2c, 0x31, 0x7f, 0xca, 0x3d, 0x4d, + 0x00, 0x18, 0x7c, 0x0d, 0xee, 0x0c, 0x5d, 0x26, 0x62, 0x08, 0xfb, 0x33, 0x26, 0x6c, 0x3c, 0x64, + 0xa9, 0x60, 0x25, 0xe1, 0xb0, 0x22, 0xff, 0x9c, 0x97, 0x04, 0x24, 0xc9, 0x5a, 0xc7, 0x2f, 0x0a, + 0x8e, 0xb9, 0x7d, 0x38, 0xab, 0xfd, 0x05, 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x84, 0x71, 0x26, + 0xf1, 0x70, 0x7e, 0xfd, 0x12, 0x2f, 0xac, 0x14, 0xbd, 0x25, 0x7a, 0xf7, 0x17, 0x60, 0xc2, 0x33, + 0x27, 0xef, 0x48, 0x9d, 0x4a, 0xd3, 0x6c, 0xc5, 0x90, 0xfc, 0x65, 0x26, 0x99, 0x57, 0x7c, 0xaf, + 0xa5, 0x75, 0x56, 0xcd, 0x16, 0x16, 0xfe, 0x38, 0xa4, 0xb9, 0xf0, 0x3d, 0xab, 0x8d, 0xaa, 0xf6, + 0x8e, 0x55, 0x7f, 0x16, 0xd5, 0x62, 0x88, 0xfe, 0x4b, 0xc9, 0x55, 0x5b, 0x01, 0x38, 0x96, 0xbc, + 0x0c, 0x9a, 0xd7, 0xab, 0x54, 0xea, 0xcd, 0x96, 0xdd, 0x76, 0x23, 0x24, 0xfe, 0x15, 0xf7, 0x94, + 0x87, 0x5b, 0x26, 0xb0, 0x6c, 0x09, 0x86, 0xc9, 0xd7, 0xb8, 0x21, 0xf9, 0x15, 0x26, 0x68, 0xc8, + 0x47, 0xb1, 0xc2, 0x51, 0xb5, 0x9b, 0x2d, 0xb3, 0x1d, 0xa7, 0xfe, 0xfd, 0x35, 0x2f, 0x1c, 0x0c, + 0xc2, 0x0a, 0x87, 0xbb, 0xdf, 0x42, 0x78, 0xb5, 0x8f, 0x21, 0xe1, 0xab, 0xbc, 0x70, 0x70, 0x0c, + 0x13, 0xc1, 0x1b, 0x86, 0x18, 0x22, 0xfe, 0x86, 0x8b, 0xe0, 0x18, 0x2c, 0xe2, 0xdd, 0xfe, 0x42, + 0xdb, 0x46, 0x3b, 0x75, 0xc7, 0x6d, 0xd3, 0x3e, 0xf8, 0x60, 0x51, 0x5f, 0x7b, 0x4d, 0x6c, 0xc2, + 0x8c, 0x00, 0x34, 0x7b, 0x15, 0x46, 0xa4, 0x16, 0x43, 0x8f, 0xba, 0xb3, 0x90, 0xfe, 0xe5, 0xd7, + 0x59, 0x31, 0x12, 0x3b, 0x8c, 0xec, 0x0a, 0xf6, 0xbb, 0xd8, 0x07, 0x44, 0x0b, 0xfb, 0xc0, 0xeb, + 0x9e, 0xeb, 0x85, 0x36, 0x20, 0x7b, 0x19, 0x86, 0x84, 0x1e, 0x20, 0x5a, 0xd4, 0xaf, 0x30, 0x51, + 0x83, 0xc1, 0x16, 0x20, 0xbb, 0x04, 0x49, 0xbc, 0x9e, 0x47, 0xc3, 0x7f, 0x95, 0xc1, 0x09, 0x7b, + 0xf6, 0x21, 0x48, 0xf1, 0x75, 0x3c, 0x1a, 0xfa, 0x41, 0x06, 0xf5, 0x20, 0x18, 0xce, 0xd7, 0xf0, + 0x68, 0xf8, 0xaf, 0x71, 0x38, 0x87, 0x60, 0x78, 0x7c, 0x13, 0xbe, 0xf4, 0x1b, 0x49, 0x56, 0x87, + 0xb9, 0xed, 0x2e, 0xc1, 0x11, 0xb6, 0x78, 0x47, 0xa3, 0x3f, 0xcc, 0x1e, 0xce, 0x11, 0xd9, 0xf3, + 0xd0, 0x1b, 0xd3, 0xe0, 0xbf, 0xc9, 0xa0, 0x94, 0x3f, 0x5b, 0x80, 0x81, 0xc0, 0x82, 0x1d, 0x0d, + 0xff, 0x2d, 0x06, 0x0f, 0xa2, 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x16, 0xf0, 0xdb, 0x5c, 0x75, 0x86, + 0xc0, 0x66, 0xe3, 0x6b, 0x75, 0x34, 0xfa, 0x77, 0xb8, 0xd5, 0x39, 0x24, 0xfb, 0x08, 0xf4, 0x7b, + 0xf5, 0x37, 0x1a, 0xff, 0xbb, 0x0c, 0xef, 0x63, 0xb0, 0x05, 0x02, 0xf5, 0x3f, 0x5a, 0xc4, 0xef, + 0x71, 0x0b, 0x04, 0x50, 0x38, 0x8d, 0xe4, 0x35, 0x3d, 0x5a, 0xd2, 0x47, 0x78, 0x1a, 0x49, 0x4b, + 0x3a, 0xf6, 0x26, 0x29, 0x83, 0xd1, 0x22, 0x7e, 0x9f, 0x7b, 0x93, 0xf0, 0x63, 0x35, 0xe4, 0x45, + 0x32, 0x5a, 0xc6, 0x1f, 0x72, 0x35, 0xa4, 0x35, 0x32, 0xbb, 0x0e, 0x7a, 0xe7, 0x02, 0x19, 0x2d, + 0xef, 0xa3, 0x4c, 0xde, 0x68, 0xc7, 0xfa, 0x98, 0x7d, 0x0c, 0xc6, 0xc3, 0x17, 0xc7, 0x68, 0xa9, + 0x1f, 0x7b, 0x5d, 0x7a, 0x9d, 0x09, 0xae, 0x8d, 0xd9, 0x4d, 0xbf, 0xca, 0x06, 0x17, 0xc6, 0x68, + 0xb1, 0x1f, 0x7f, 0x5d, 0x2c, 0xb4, 0xc1, 0x75, 0x31, 0x9b, 0x03, 0xf0, 0xd7, 0xa4, 0x68, 0x59, + 0x9f, 0x60, 0xb2, 0x02, 0x20, 0x9c, 0x1a, 0x6c, 0x49, 0x8a, 0xc6, 0x7f, 0x92, 0xa7, 0x06, 0x43, + 0xe0, 0xd4, 0xe0, 0xab, 0x51, 0x34, 0xfa, 0x79, 0x9e, 0x1a, 0x1c, 0x92, 0xbd, 0x04, 0x29, 0x6b, + 0xaf, 0xd1, 0xc0, 0xb1, 0xa5, 0x1f, 0x7c, 0x8d, 0x28, 0xfd, 0x1f, 0x6f, 0x30, 0x30, 0x07, 0x64, + 0x97, 0xa0, 0x17, 0x35, 0xaf, 0xa3, 0x5a, 0x14, 0xf2, 0x3f, 0xdf, 0xe0, 0xf5, 0x04, 0x73, 0x67, + 0x1f, 0x01, 0xa0, 0x2f, 0xd3, 0xe4, 0x94, 0x28, 0x02, 0xfb, 0x5f, 0x6f, 0xb0, 0x1b, 0x0a, 0x3e, + 0xc4, 0x17, 0x40, 0xef, 0x3b, 0x1c, 0x2c, 0xe0, 0x35, 0x51, 0x00, 0x79, 0x01, 0xbf, 0x08, 0x47, + 0x9e, 0x70, 0x6c, 0xcb, 0x35, 0x77, 0xa2, 0xd0, 0xff, 0xcd, 0xd0, 0x9c, 0x1f, 0x1b, 0xac, 0x69, + 0xb7, 0x91, 0x6b, 0xee, 0x38, 0x51, 0xd8, 0xff, 0x61, 0x58, 0x0f, 0x80, 0xc1, 0x55, 0xd3, 0x71, + 0xe3, 0xcc, 0xfb, 0x7f, 0x39, 0x98, 0x03, 0xb0, 0xd2, 0xf8, 0xf3, 0x93, 0x68, 0x3f, 0x0a, 0xfb, + 0x7d, 0xae, 0x34, 0xe3, 0xcf, 0x3e, 0x04, 0xfd, 0xf8, 0x23, 0xbd, 0xb5, 0x13, 0x01, 0xfe, 0x01, + 0x03, 0xfb, 0x08, 0xfc, 0x64, 0xc7, 0xad, 0xb9, 0xf5, 0x68, 0x63, 0xff, 0x1f, 0xf3, 0x34, 0xe7, + 0xcf, 0xe6, 0x60, 0xc0, 0x71, 0x6b, 0xb5, 0x3d, 0xd6, 0xd1, 0x44, 0xc0, 0x7f, 0xf8, 0x86, 0xf7, + 0x92, 0xeb, 0x61, 0xf2, 0x27, 0xc2, 0x37, 0xeb, 0xe0, 0x8a, 0x7d, 0xc5, 0xa6, 0xdb, 0x74, 0xf0, + 0x4f, 0x0d, 0x98, 0xaa, 0xda, 0xcd, 0xeb, 0xb6, 0x73, 0x9a, 0x16, 0x94, 0xeb, 0xb6, 0xbb, 0x7b, + 0xda, 0xdd, 0x45, 0x78, 0x01, 0x61, 0xfb, 0x6c, 0x49, 0xfc, 0x79, 0xe2, 0x70, 0x9b, 0x73, 0xe4, + 0xdc, 0xb5, 0x5c, 0xc7, 0xfa, 0x95, 0xc9, 0xd6, 0xb7, 0x7e, 0x1c, 0xfa, 0x88, 0xc6, 0x67, 0xc8, + 0xf1, 0x92, 0x92, 0x4f, 0xde, 0x78, 0x65, 0xaa, 0xc7, 0x60, 0x63, 0x1e, 0x75, 0x81, 0xec, 0x4d, + 0x26, 0x04, 0xea, 0x82, 0x47, 0x3d, 0x4b, 0xb7, 0x27, 0x05, 0xea, 0x59, 0x8f, 0xba, 0x48, 0x36, + 0x2a, 0x55, 0x81, 0xba, 0xe8, 0x51, 0x97, 0xc8, 0x66, 0xfc, 0x90, 0x40, 0x5d, 0xf2, 0xa8, 0xe7, + 0xc8, 0x16, 0x7c, 0x52, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0xee, 0xfb, 0xa8, 0x40, 0x3d, 0xef, + 0x51, 0x2f, 0x90, 0x5d, 0x77, 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x55, 0x92, 0x23, 0x02, + 0xf5, 0xa2, 0x3e, 0x09, 0x47, 0xe8, 0xcc, 0xe7, 0xc9, 0x11, 0xed, 0x08, 0x23, 0xf3, 0x41, 0x9f, + 0x7e, 0x86, 0x5c, 0x1b, 0xe9, 0x13, 0xe9, 0x67, 0x7c, 0xfa, 0x02, 0xb9, 0x40, 0xad, 0x89, 0xf4, + 0x05, 0x9f, 0x7e, 0x36, 0x3d, 0x44, 0xae, 0xce, 0x08, 0xf4, 0xb3, 0x3e, 0x7d, 0x31, 0x3d, 0x8c, + 0x83, 0x56, 0xa4, 0x2f, 0xfa, 0xf4, 0xa5, 0xf4, 0xc8, 0xb4, 0x32, 0x33, 0x28, 0xd2, 0x97, 0x32, + 0xef, 0x27, 0xee, 0xb5, 0x7c, 0xf7, 0x8e, 0x8b, 0xee, 0xf5, 0x1c, 0x3b, 0x2e, 0x3a, 0xd6, 0x73, + 0xe9, 0xb8, 0xe8, 0x52, 0xcf, 0x99, 0xe3, 0xa2, 0x33, 0x3d, 0x37, 0x8e, 0x8b, 0x6e, 0xf4, 0x1c, + 0x38, 0x2e, 0x3a, 0xd0, 0x73, 0xdd, 0xb8, 0xe8, 0x3a, 0xcf, 0x69, 0xe3, 0xa2, 0xd3, 0x3c, 0x77, + 0x8d, 0x8b, 0xee, 0xf2, 0x1c, 0x95, 0x96, 0x1c, 0xe5, 0xbb, 0x28, 0x2d, 0xb9, 0xc8, 0x77, 0x4e, + 0x5a, 0x72, 0x8e, 0xef, 0x96, 0xb4, 0xe4, 0x16, 0xdf, 0x21, 0x69, 0xc9, 0x21, 0xbe, 0x2b, 0xd2, + 0x92, 0x2b, 0x7c, 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x24, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, + 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, + 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x83, 0x73, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, + 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0xb5, 0x6b, 0x8e, 0xf9, 0xee, + 0x1d, 0x17, 0xdd, 0x1b, 0x9a, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, + 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x96, + 0x63, 0x6a, 0xd7, 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, + 0xcd, 0x31, 0x35, 0x98, 0x63, 0x7f, 0xab, 0x82, 0x4e, 0x73, 0x6c, 0x9d, 0x5c, 0xf2, 0x61, 0xae, + 0x98, 0x94, 0x32, 0xad, 0x0f, 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x29, 0xe5, 0x9a, 0x48, 0x5f, 0xf0, + 0xe8, 0x3c, 0xdb, 0x44, 0xfa, 0x59, 0x8f, 0xce, 0xf3, 0x4d, 0xa4, 0x2f, 0x7a, 0x74, 0x9e, 0x71, + 0x22, 0x7d, 0xc9, 0xa3, 0xf3, 0x9c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x3a, 0x91, 0x7e, 0xde, + 0xa3, 0xf3, 0xbc, 0x13, 0xe9, 0x17, 0x3c, 0x3a, 0xcf, 0x3c, 0x91, 0x7e, 0x51, 0x9f, 0x96, 0x73, + 0x8f, 0x33, 0x78, 0xae, 0x9d, 0x96, 0xb3, 0x4f, 0xe2, 0x38, 0xe3, 0x73, 0xf0, 0xfc, 0x93, 0x38, + 0x16, 0x7c, 0x0e, 0x9e, 0x81, 0x12, 0xc7, 0xd9, 0xcc, 0x87, 0x88, 0xfb, 0x2c, 0xd9, 0x7d, 0x13, + 0x92, 0xfb, 0x12, 0x01, 0xd7, 0x4d, 0x48, 0xae, 0x4b, 0x04, 0xdc, 0x36, 0x21, 0xb9, 0x2d, 0x11, + 0x70, 0xd9, 0x84, 0xe4, 0xb2, 0x44, 0xc0, 0x5d, 0x13, 0x92, 0xbb, 0x12, 0x01, 0x57, 0x4d, 0x48, + 0xae, 0x4a, 0x04, 0xdc, 0x34, 0x21, 0xb9, 0x29, 0x11, 0x70, 0xd1, 0x84, 0xe4, 0xa2, 0x44, 0xc0, + 0x3d, 0x13, 0x92, 0x7b, 0x12, 0x01, 0xd7, 0x1c, 0x97, 0x5d, 0x93, 0x08, 0xba, 0xe5, 0xb8, 0xec, + 0x96, 0x44, 0xd0, 0x25, 0xc7, 0x65, 0x97, 0x24, 0x82, 0xee, 0x38, 0x2e, 0xbb, 0x23, 0x11, 0x74, + 0xc5, 0x4f, 0x12, 0xbc, 0x23, 0xdc, 0x70, 0xdb, 0x7b, 0x55, 0xf7, 0xb6, 0x3a, 0xc2, 0x79, 0xa1, + 0x7d, 0x18, 0x58, 0xd0, 0xe7, 0x48, 0xc3, 0x1a, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x5e, 0x68, 0x2c, + 0x02, 0x08, 0x2b, 0x1c, 0xb1, 0x78, 0x5b, 0xbd, 0xe1, 0xbc, 0xd0, 0x66, 0x44, 0xeb, 0x77, 0xe1, + 0x6d, 0xef, 0xd8, 0x5e, 0x4a, 0xf0, 0x8e, 0x8d, 0x99, 0xff, 0xb0, 0x1d, 0xdb, 0x6c, 0xb4, 0xc9, + 0x3d, 0x63, 0xcf, 0x46, 0x1b, 0xbb, 0x63, 0xd5, 0x89, 0xdb, 0xc1, 0xcd, 0x46, 0x9b, 0xd6, 0x33, + 0xea, 0x5b, 0xdb, 0x6f, 0xb1, 0x08, 0x36, 0x50, 0x2b, 0x24, 0x82, 0x0f, 0xdb, 0x6f, 0xcd, 0x0b, + 0xa5, 0xe4, 0xb0, 0x11, 0xac, 0x1e, 0x3a, 0x82, 0x0f, 0xdb, 0x79, 0xcd, 0x0b, 0xe5, 0xe5, 0xd0, + 0x11, 0xfc, 0x36, 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0x1f, 0xb6, 0x1f, 0x9a, 0x8d, 0x36, 0x79, + 0x68, 0x04, 0xab, 0x87, 0x88, 0xe0, 0x38, 0xfd, 0xd1, 0x6c, 0xb4, 0x69, 0xc3, 0x23, 0xf8, 0xb6, + 0xbb, 0x99, 0x4f, 0x29, 0x30, 0x5a, 0xae, 0xd7, 0x4a, 0xcd, 0xeb, 0xa8, 0x56, 0x43, 0x35, 0x66, + 0xc7, 0x79, 0xa1, 0x12, 0x74, 0x71, 0xf5, 0xcb, 0xaf, 0x4c, 0xf9, 0x16, 0x5e, 0x82, 0x14, 0xb5, + 0xe9, 0xfc, 0x7c, 0xfa, 0x86, 0x12, 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x04, 0x87, 0x9d, 0x99, 0x4f, + 0xff, 0x8b, 0x12, 0xa8, 0x72, 0xde, 0x70, 0xe6, 0x23, 0x44, 0x43, 0xeb, 0xb6, 0x35, 0x3c, 0x1d, + 0x4b, 0xc3, 0x80, 0x6e, 0x77, 0x75, 0xe8, 0x16, 0xd0, 0x6a, 0x0f, 0x46, 0xca, 0xf5, 0x5a, 0x99, + 0xfc, 0xe9, 0x6e, 0x1c, 0x95, 0x28, 0x8f, 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, + 0x16, 0x6b, 0x44, 0xa6, 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, + 0x0f, 0x9c, 0xed, 0xf6, 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xc3, 0x17, 0x67, 0x7a, 0xdb, 0x46, + 0x3f, 0x0e, 0x89, 0x65, 0x7a, 0x13, 0x78, 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xf6, 0x2b, 0x53, 0xc9, + 0xad, 0xbd, 0x7a, 0xcd, 0x48, 0x2c, 0xd7, 0xf4, 0xab, 0xd0, 0xfb, 0x1e, 0xf6, 0x07, 0x70, 0x98, + 0x61, 0x91, 0x31, 0x3c, 0xd0, 0x75, 0x8f, 0x08, 0x3f, 0xf8, 0x34, 0xdd, 0x47, 0x9c, 0xdb, 0xaa, + 0x5b, 0xee, 0x99, 0x85, 0x0b, 0x06, 0x15, 0x91, 0xf9, 0x45, 0x00, 0xfa, 0xcc, 0xa2, 0xe9, 0xec, + 0xea, 0x65, 0x2e, 0x99, 0x3e, 0xfa, 0xc2, 0xb7, 0x5f, 0x99, 0x5a, 0x8c, 0x23, 0xf5, 0xc1, 0x9a, + 0xe9, 0xec, 0x3e, 0xe8, 0xee, 0xb7, 0xd0, 0x5c, 0x7e, 0xdf, 0x45, 0x0e, 0x97, 0xde, 0xe2, 0xab, + 0x1e, 0x9b, 0x57, 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0xcb, 0xe2, 0x9c, 0xe6, 0xdf, 0xec, 0x7c, + 0x9e, 0xe1, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, + 0x34, 0x57, 0xf5, 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x1f, 0xd1, 0x6c, 0xf5, 0xf2, 0x69, 0xcb, + 0xa2, 0xb7, 0x10, 0x7f, 0xbe, 0xf6, 0x82, 0xde, 0xd2, 0x2e, 0x20, 0x9b, 0xbc, 0xf1, 0xc2, 0x94, + 0x92, 0xf9, 0x54, 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x9b, 0x9b, 0xf9, 0xcf, 0x4b, 0x4f, 0xf5, 0x76, + 0x58, 0xe8, 0x79, 0x05, 0xc6, 0x3b, 0x2a, 0x39, 0x35, 0xd3, 0x5b, 0x5b, 0xce, 0xad, 0xc3, 0x96, + 0x73, 0xa6, 0xe0, 0x57, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x69, 0x49, 0xbd, 0x63, 0x9d, + 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, 0x25, 0xbf, + 0x1f, 0xf7, 0x00, 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x46, 0x48, 0x9f, + 0x84, 0xc4, 0x5a, 0x9b, 0x69, 0x38, 0x4c, 0xf1, 0x6b, 0xed, 0x7c, 0xdb, 0xb4, 0xaa, 0xbb, 0x46, + 0x62, 0xad, 0xad, 0x9f, 0x00, 0x35, 0xc7, 0x7e, 0x62, 0x60, 0x60, 0x61, 0x84, 0x32, 0xe4, 0xac, + 0x1a, 0xe3, 0xc0, 0x34, 0x7d, 0x12, 0x92, 0x2b, 0xc8, 0xdc, 0x66, 0x4a, 0x00, 0xe5, 0xc1, 0x23, + 0x06, 0x19, 0x67, 0x0f, 0x7c, 0x1c, 0x52, 0x5c, 0xb0, 0x7e, 0x12, 0x23, 0xb6, 0x5d, 0xf6, 0x58, + 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0x50, 0xf5, 0x53, 0xd0, 0x6b, 0xd4, 0x77, 0x76, 0x5d, 0xf6, + 0xf0, 0x4e, 0x36, 0x4a, 0xce, 0x5c, 0x83, 0x7e, 0x4f, 0xa3, 0xb7, 0x58, 0x74, 0x91, 0x4e, 0x4d, + 0x9f, 0x08, 0xae, 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, 0xd3, 0x90, 0xda, 0x70, 0xdb, 0x7e, 0xd1, + 0xe7, 0x1d, 0xa9, 0x37, 0x9a, 0x79, 0xbf, 0x02, 0xa9, 0x22, 0x42, 0x2d, 0x62, 0xf0, 0x7b, 0x21, + 0x59, 0xb4, 0x9f, 0xb6, 0x98, 0x82, 0xa3, 0xcc, 0xa2, 0x98, 0xcc, 0x6c, 0x4a, 0xc8, 0xfa, 0xbd, + 0x41, 0xbb, 0x8f, 0x79, 0x76, 0x0f, 0xf0, 0x11, 0xdb, 0x67, 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa6, + 0x0e, 0xfb, 0x9f, 0x87, 0x81, 0xc0, 0x53, 0xf4, 0x19, 0xa6, 0x46, 0x42, 0x06, 0x06, 0x6d, 0x85, + 0x39, 0x32, 0x08, 0x86, 0x84, 0x07, 0x63, 0x68, 0xc0, 0xc4, 0x5d, 0xa0, 0xc4, 0xcc, 0xb3, 0xa2, + 0x99, 0xc3, 0x59, 0x99, 0xa9, 0xe7, 0xa9, 0x8d, 0x88, 0xb9, 0x4f, 0xd2, 0xe0, 0xec, 0xee, 0x44, + 0xfc, 0x39, 0xd3, 0x0b, 0x6a, 0xb9, 0xde, 0xc8, 0x3c, 0x04, 0x40, 0x53, 0xbe, 0x64, 0xed, 0x35, + 0xa5, 0xac, 0x1b, 0xe6, 0x06, 0xde, 0xdc, 0x45, 0x9b, 0xc8, 0x21, 0x2c, 0x62, 0x3f, 0x85, 0x0b, + 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0xfb, 0x23, 0xf1, 0xa1, 0x9d, 0x18, 0x66, 0x4d, 0x53, 0xd6, 0x6b, + 0xc8, 0xcd, 0x59, 0xb6, 0xbb, 0x8b, 0xda, 0x12, 0x62, 0x41, 0x3f, 0x2b, 0x24, 0xec, 0xf0, 0xc2, + 0x5d, 0x1e, 0xa2, 0x2b, 0xe8, 0x6c, 0xe6, 0x4b, 0x44, 0x41, 0xdc, 0x0a, 0x74, 0x4c, 0x50, 0x8d, + 0x31, 0x41, 0xfd, 0x9c, 0xd0, 0xbf, 0x1d, 0xa0, 0xa6, 0xf4, 0x6a, 0x79, 0x51, 0x78, 0xcf, 0x39, + 0x58, 0x59, 0xf1, 0x1d, 0x93, 0xdb, 0x94, 0xab, 0x7c, 0x7f, 0xa4, 0xca, 0x5d, 0xba, 0xdb, 0xc3, + 0xda, 0x54, 0x8d, 0x6b, 0xd3, 0xaf, 0x7b, 0x1d, 0x07, 0xfd, 0xb1, 0x06, 0xf2, 0xdb, 0x20, 0xfa, + 0x03, 0x91, 0xbe, 0xcf, 0x2a, 0x05, 0x4f, 0xd5, 0xc5, 0xb8, 0xee, 0xcf, 0x26, 0xf2, 0x79, 0x4f, + 0xdd, 0xf3, 0x87, 0x08, 0x81, 0x6c, 0xa2, 0x50, 0xf0, 0xca, 0x76, 0xea, 0x43, 0x2f, 0x4c, 0x29, + 0x2f, 0xbe, 0x30, 0xd5, 0x93, 0xf9, 0xbc, 0x02, 0xa3, 0x8c, 0x33, 0x10, 0xb8, 0x0f, 0x4a, 0xca, + 0xdf, 0xc1, 0x6b, 0x46, 0x98, 0x05, 0x7e, 0x6a, 0xc1, 0xfb, 0x4d, 0x05, 0xd2, 0x1d, 0xba, 0x72, + 0x7b, 0xcf, 0xc7, 0x52, 0x39, 0xab, 0x94, 0x7e, 0xf6, 0x36, 0xbf, 0x06, 0xbd, 0x9b, 0xf5, 0x26, + 0x6a, 0xe3, 0x95, 0x00, 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, + 0xb6, 0xa0, 0xa7, 0x21, 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, + 0x67, 0x61, 0x70, 0x75, 0x9f, 0x5c, 0x95, 0xa9, 0x91, 0x6b, 0x20, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, + 0x33, 0xb3, 0xbd, 0xa9, 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc1, 0xf0, 0x1a, 0x56, + 0x9b, 0xe0, 0x04, 0x18, 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, + 0x65, 0x55, 0x6c, 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, + 0x53, 0xa0, 0x0d, 0xb1, 0xe7, 0xfe, 0xa3, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xbb, 0x6e, 0xd5, + 0xdd, 0xce, 0x7e, 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x9f, 0xd8, 0xc2, + 0xa6, 0x3f, 0xc1, 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, + 0xcb, 0xab, 0x6c, 0x71, 0x5b, 0x3c, 0x10, 0xca, 0x6e, 0xda, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x31, + 0xb0, 0x00, 0x7d, 0x11, 0x12, 0xe5, 0x55, 0xd6, 0xf0, 0x9e, 0x8c, 0x23, 0xc6, 0x48, 0x94, 0x57, + 0x27, 0xfe, 0x4e, 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, + 0xc6, 0xb8, 0xce, 0x89, 0xdb, 0xd4, 0x79, 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, + 0x88, 0x29, 0x41, 0x7f, 0x9e, 0x28, 0x84, 0x92, 0xb9, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, 0xab, 0x3a, + 0xe5, 0xd2, 0xc6, 0x66, 0xa9, 0xa8, 0x29, 0x99, 0xaf, 0x2a, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, + 0x42, 0x7a, 0x1e, 0x94, 0x1c, 0x8b, 0x87, 0x37, 0xa7, 0xb7, 0x92, 0xd3, 0x4f, 0x83, 0x92, 0x8f, + 0xef, 0x6a, 0x25, 0xaf, 0x2f, 0x80, 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0x81, + 0x0a, 0x63, 0xc1, 0x36, 0x9a, 0xd7, 0x93, 0x13, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xcc, 0xc2, 0xd9, + 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x27, 0xc4, 0x57, 0xa8, 0x4e, 0x96, 0x8e, 0x6b, 0x22, 0xd9, + 0x64, 0x80, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, + 0x6a, 0xc7, 0x51, 0x80, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0xce, + 0x6b, 0x22, 0x8c, 0xdc, 0xf5, 0x9a, 0x88, 0x48, 0xef, 0xbc, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, + 0x64, 0x93, 0x6e, 0x7b, 0x0f, 0x75, 0x3f, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, 0x05, 0x78, + 0x0d, 0x46, 0xe8, 0x7e, 0x44, 0xc1, 0xb6, 0x5c, 0xb3, 0x6e, 0xa1, 0xb6, 0xfe, 0x4e, 0x18, 0xa4, + 0x43, 0xf4, 0x2d, 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0x33, 0x3f, 0x49, 0xc2, + 0x38, 0x1d, 0x28, 0x9b, 0x4d, 0x24, 0x5c, 0x32, 0x3a, 0x25, 0x1d, 0x29, 0x0d, 0x63, 0xf8, 0xad, + 0x57, 0xa6, 0xe8, 0x68, 0xce, 0x0b, 0xa6, 0x53, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, 0x3f, 0xa7, + 0xa4, 0x8b, 0x47, 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, 0xf4, 0xa2, + 0xec, 0x94, 0x74, 0x19, 0x49, 0xe4, 0x2b, 0x79, 0xf1, 0x76, 0x4a, 0x3a, 0x7a, 0x12, 0xf9, 0x2e, + 0x7b, 0x91, 0x77, 0x4a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x78, 0x31, 0x78, 0x4a, 0xba, 0xaa, 0x24, + 0xf2, 0x3d, 0xea, 0x45, 0xe3, 0x29, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, 0x8c, 0x7c, + 0x7d, 0x49, 0x64, 0xbc, 0xea, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x97, 0x1f, 0xab, + 0x33, 0xf2, 0x95, 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, 0x5c, 0xf5, + 0xe3, 0x77, 0x46, 0x3e, 0x34, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, 0x22, 0xe7, + 0x9a, 0xbf, 0x87, 0xfe, 0x0d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, + 0x65, 0xa4, 0xd0, 0x83, 0x90, 0xb0, 0xcb, 0x48, 0x61, 0x07, 0x21, 0x21, 0x97, 0x91, 0x42, 0x0e, + 0x42, 0xc2, 0x2d, 0x23, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x46, 0x0a, 0x35, 0x08, 0x09, 0xb3, 0x8c, + 0x14, 0x66, 0x10, 0x12, 0x62, 0x19, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0x32, 0x52, 0x78, 0x41, 0x48, + 0x68, 0x9d, 0x94, 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0xa4, 0x1c, 0x56, 0x10, 0x16, 0x52, 0xf7, 0xc8, + 0x21, 0xd5, 0x7f, 0xeb, 0x95, 0xa9, 0x5e, 0x3c, 0x14, 0x88, 0xa6, 0x93, 0x72, 0x34, 0x41, 0x58, + 0x24, 0x9d, 0x94, 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0xa4, 0x1c, 0x45, 0x10, 0x16, 0x41, 0x2f, 0xc9, + 0x11, 0xe4, 0x5f, 0xf1, 0xc9, 0x48, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, + 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, + 0x23, 0x82, 0xd4, 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x5b, 0x04, 0x9d, 0x94, 0x2f, 0x3c, + 0x40, 0x58, 0x41, 0x3a, 0x29, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, 0x6e, 0x21, + 0xf4, 0x0d, 0x15, 0xc6, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x55, 0x05, 0x3a, 0x17, 0xe3, 0x7e, + 0x45, 0x58, 0x4c, 0x9d, 0x8b, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x56, 0xa1, 0x52, 0x8c, 0x2a, + 0x74, 0xd9, 0x8b, 0xa1, 0x73, 0x31, 0xee, 0x5d, 0x74, 0xc6, 0xde, 0x85, 0x83, 0x8a, 0xc0, 0xa3, + 0xb1, 0x8a, 0xc0, 0x72, 0xac, 0x22, 0x70, 0xd5, 0xf7, 0xe0, 0x07, 0x13, 0x70, 0xd4, 0xf7, 0x20, + 0xfd, 0x44, 0x7e, 0x0a, 0x29, 0x13, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, 0x89, 0xe5, + 0x9a, 0xbe, 0x2e, 0x9e, 0x55, 0x65, 0x0f, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, 0x3d, 0x09, + 0xea, 0x72, 0xcd, 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x05, 0x03, 0x93, 0x75, 0x03, 0xfa, 0x08, 0xbb, + 0x43, 0xdc, 0x7b, 0x3b, 0x0f, 0x2e, 0x1a, 0x4c, 0x52, 0xe6, 0x25, 0x05, 0xa6, 0x85, 0x50, 0x7e, + 0x6b, 0x4e, 0x0c, 0x2e, 0xc5, 0x3a, 0x31, 0x10, 0x12, 0xc4, 0x3f, 0x3d, 0xb8, 0xaf, 0xf3, 0xa0, + 0x3a, 0x98, 0x25, 0xf2, 0x49, 0xc2, 0x2f, 0xc1, 0xb0, 0x3f, 0x03, 0xf2, 0xca, 0xb6, 0x14, 0xbd, + 0x99, 0x19, 0x96, 0x9a, 0x4b, 0xd2, 0x26, 0xda, 0x81, 0x30, 0x2f, 0x5b, 0x33, 0x59, 0x18, 0x29, + 0x8b, 0x7f, 0xb3, 0x13, 0xb5, 0x17, 0x91, 0xc2, 0xad, 0xf9, 0x8d, 0x4f, 0x4f, 0xf5, 0x64, 0x1e, + 0x80, 0xc1, 0xe0, 0x9f, 0xe5, 0x48, 0xc0, 0x7e, 0x0e, 0xcc, 0x26, 0x5f, 0xc6, 0xdc, 0x7f, 0xa0, + 0xc0, 0x1d, 0x41, 0xf6, 0xc7, 0xea, 0xee, 0xee, 0xb2, 0x85, 0x7b, 0xfa, 0x87, 0x20, 0x85, 0x98, + 0xe3, 0xd8, 0xaf, 0x9a, 0xb0, 0xd7, 0xc8, 0x50, 0xf6, 0x39, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x4d, + 0x10, 0xfe, 0xd8, 0x85, 0x89, 0x7b, 0xa1, 0x97, 0xca, 0x17, 0xf5, 0x1a, 0x92, 0xf4, 0xfa, 0x6c, + 0x88, 0x5e, 0x24, 0x8e, 0xf4, 0xab, 0x82, 0x5e, 0x81, 0xb7, 0xd5, 0x50, 0xf6, 0x39, 0x1e, 0x7c, + 0xf9, 0x14, 0xee, 0xff, 0x48, 0x44, 0x45, 0x2b, 0x39, 0x03, 0xa9, 0x92, 0xcc, 0x13, 0xae, 0x67, + 0x11, 0x92, 0x65, 0xbb, 0x46, 0x7e, 0x6f, 0x85, 0xfc, 0x2e, 0x2e, 0x33, 0x32, 0xfb, 0x91, 0xdc, + 0x53, 0x90, 0x2a, 0xec, 0xd6, 0x1b, 0xb5, 0x36, 0xb2, 0xd8, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, + 0xc3, 0xa3, 0x65, 0x0a, 0x30, 0x5a, 0xb6, 0xad, 0xfc, 0xbe, 0x1b, 0xac, 0x1b, 0x73, 0x52, 0x8a, + 0xb0, 0x23, 0x1f, 0xf2, 0x87, 0x1e, 0x98, 0x21, 0xdf, 0xfb, 0xed, 0x57, 0xa6, 0x94, 0x4d, 0x6f, + 0xfb, 0x7c, 0x15, 0x8e, 0xb1, 0xf4, 0xe9, 0x10, 0xb5, 0x10, 0x25, 0xaa, 0x9f, 0x1d, 0x53, 0x07, + 0xc4, 0x2d, 0x63, 0x71, 0x56, 0xa8, 0xb8, 0x37, 0xa7, 0x19, 0x6e, 0x8a, 0x0e, 0xd4, 0x4c, 0x3d, + 0x94, 0x66, 0xa1, 0xe2, 0xe6, 0xa2, 0xc4, 0x49, 0x9a, 0xdd, 0x03, 0xfd, 0x1e, 0x2d, 0x10, 0x0d, + 0xc1, 0x4c, 0x59, 0x98, 0xcd, 0xc0, 0x40, 0x20, 0x61, 0xf5, 0x5e, 0x50, 0x72, 0x5a, 0x0f, 0xfe, + 0x2f, 0xaf, 0x29, 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x17, 0x46, 0xa4, 0xed, 0x4b, 0x4c, 0x29, + 0x6a, 0x80, 0xff, 0x2b, 0x69, 0x03, 0x13, 0xc9, 0x0f, 0xfd, 0xf1, 0x64, 0xcf, 0xec, 0x25, 0xd0, + 0x3b, 0x37, 0x3a, 0xf5, 0x3e, 0x48, 0xe4, 0xb0, 0xc8, 0x63, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x62, + 0xe4, 0xd7, 0x3f, 0x39, 0x3d, 0x90, 0x27, 0x7f, 0x73, 0x7c, 0x0d, 0xb9, 0xf9, 0x3c, 0x03, 0x3f, + 0x0c, 0x77, 0x84, 0x6e, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x07, 0xbe, 0x58, 0x24, + 0x78, 0x25, 0xcb, 0x0f, 0x9c, 0x73, 0x7a, 0xc8, 0x26, 0x63, 0xba, 0x16, 0x38, 0xe0, 0xce, 0x65, + 0x1f, 0x66, 0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x60, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, + 0xdf, 0x96, 0x4e, 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x06, + 0xee, 0xba, 0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x3b, 0x5f, 0xa5, 0xec, 0x69, 0xb6, + 0xc8, 0xe7, 0xce, 0xe8, 0x77, 0xf0, 0x1c, 0x15, 0x2a, 0x30, 0x33, 0x10, 0xe7, 0xca, 0x16, 0x18, + 0x20, 0xdf, 0x15, 0xd0, 0xdd, 0x4a, 0x1c, 0x99, 0x7d, 0x94, 0x09, 0x29, 0x74, 0x15, 0x12, 0x61, + 0x2a, 0x0e, 0xcf, 0x6f, 0xde, 0xb8, 0x39, 0xd9, 0xf3, 0xf2, 0xcd, 0xc9, 0x9e, 0x7f, 0xbd, 0x39, + 0xd9, 0xf3, 0x9d, 0x9b, 0x93, 0xca, 0xf7, 0x6e, 0x4e, 0x2a, 0xdf, 0xbf, 0x39, 0xa9, 0xfc, 0xf8, + 0xe6, 0xa4, 0xf2, 0xdc, 0xad, 0x49, 0xe5, 0xc5, 0x5b, 0x93, 0xca, 0x97, 0x6e, 0x4d, 0x2a, 0x5f, + 0xbb, 0x35, 0xa9, 0xbc, 0x74, 0x6b, 0x52, 0xb9, 0x71, 0x6b, 0xb2, 0xe7, 0xe5, 0x5b, 0x93, 0x3d, + 0xdf, 0xb9, 0x35, 0xa9, 0x7c, 0xef, 0xd6, 0x64, 0xcf, 0xf7, 0x6f, 0x4d, 0x2a, 0x3f, 0xbe, 0x35, + 0xa9, 0x3c, 0xf7, 0xea, 0xa4, 0xf2, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0xa8, 0x67, 0xae, 0xab, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12240,18 +12585,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12293,8 +12640,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12302,8 +12651,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12358,18 +12707,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12423,8 +12774,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12432,8 +12785,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15032,56 +15385,500 @@ func (this *Node) Equal(that interface{}) bool { } return true } +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField1() float64 { - return this.Field1 + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField2() float32 { - return this.Field2 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField3() int32 { - return this.Field3 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField4() int64 { - return this.Field4 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 + GetField3() int32 + GetField4() int64 + GetField5() uint32 + GetField6() uint64 + GetField7() int32 + GetField8() int64 + GetField9() uint32 + GetField10() int32 + GetField11() uint64 + GetField12() int64 + GetField13() bool + GetField14() string + GetField15() []byte +} + +func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNativeFromFace(this) +} + +func (this *NidOptNative) GetField1() float64 { + return this.Field1 +} + +func (this *NidOptNative) GetField2() float32 { + return this.Field2 +} + +func (this *NidOptNative) GetField3() int32 { + return this.Field3 +} + +func (this *NidOptNative) GetField4() int64 { + return this.Field4 +} + +func (this *NidOptNative) GetField5() uint32 { + return this.Field5 +} + +func (this *NidOptNative) GetField6() uint64 { + return this.Field6 } func (this *NidOptNative) GetField7() int32 { @@ -17695,6 +18492,144 @@ func NewNodeFromFace(that NodeFace) *Node { return this } +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) +} + +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) +} + +func (this *NinRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type ProtoTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField2() *string +} + +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) +} + +func (this *ProtoType) GetField2() *string { + return this.Field2 +} + +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() + return this +} + func (this *NidOptNative) GoString() string { if this == nil { return "nil" @@ -18717,9 +19652,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18741,9 +19674,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19250,6 +20181,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19258,11 +20277,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19272,7 +20292,7 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -19314,7 +20334,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -19405,7 +20425,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -19542,7 +20562,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19683,7 +20703,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19971,7 +20991,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -20024,7 +21044,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -20114,7 +21134,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20205,7 +21225,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20416,7 +21436,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -20461,7 +21481,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -20546,7 +21566,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -20792,8 +21812,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20836,8 +21856,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20889,7 +21909,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -20995,7 +22015,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -21060,7 +22080,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -21151,7 +22171,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -21288,7 +22308,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -21353,7 +22373,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -21450,8 +22470,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21463,7 +22483,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -21481,7 +22501,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -21506,7 +22526,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -21529,7 +22549,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -21545,6 +22565,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -21564,14 +22660,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -21579,43 +22675,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -22726,9 +23822,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22748,9 +23842,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23260,6 +24352,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -23886,7 +25058,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -23900,7 +25072,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24132,7 +25304,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24204,6 +25376,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -24469,1113 +25707,1113 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { } return true } -func (m *NidOptNative) Marshal() (data []byte, err error) { +func (m *NidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptNative) MarshalTo(data []byte) (int, error) { +func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.Field3)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.Field5)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 i += 4 } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 i += 4 } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 i += 8 } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 i += 8 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepNative) Marshal() (data []byte, err error) { +func (m *NidRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x1 := (uint32(num) << 1) ^ uint32((num >> 31)) for x1 >= 1<<7 { - data[i] = uint8(uint64(x1)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x1)&0x7f | 0x80) x1 >>= 7 i++ } - data[i] = uint8(x1) + dAtA[i] = uint8(x1) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x2 := (uint64(num) << 1) ^ uint64((num >> 63)) for x2 >= 1<<7 { - data[i] = uint8(uint64(x2)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x2)&0x7f | 0x80) x2 >>= 7 i++ } - data[i] = uint8(x2) + dAtA[i] = uint8(x2) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepNative) Marshal() (data []byte, err error) { +func (m *NinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x3 := (uint32(num) << 1) ^ uint32((num >> 31)) for x3 >= 1<<7 { - data[i] = uint8(uint64(x3)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) x3 >>= 7 i++ } - data[i] = uint8(x3) + dAtA[i] = uint8(x3) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x4 := (uint64(num) << 1) ^ uint64((num >> 63)) for x4 >= 1<<7 { - data[i] = uint8(uint64(x4)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) x4 >>= 7 i++ } - data[i] = uint8(x4) + dAtA[i] = uint8(x4) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepPackedNative) Marshal() (data []byte, err error) { +func (m *NidRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { - data6 := make([]byte, len(m.Field3)*10) + dAtA6 := make([]byte, len(m.Field3)*10) var j5 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data6[j5] = uint8(uint64(num)&0x7f | 0x80) + dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j5++ } - data6[j5] = uint8(num) + dAtA6[j5] = uint8(num) j5++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j5)) - i += copy(data[i:], data6[:j5]) + i = encodeVarintThetest(dAtA, i, uint64(j5)) + i += copy(dAtA[i:], dAtA6[:j5]) } if len(m.Field4) > 0 { - data8 := make([]byte, len(m.Field4)*10) + dAtA8 := make([]byte, len(m.Field4)*10) var j7 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data8[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j7++ } - data8[j7] = uint8(num) + dAtA8[j7] = uint8(num) j7++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j7)) - i += copy(data[i:], data8[:j7]) + i = encodeVarintThetest(dAtA, i, uint64(j7)) + i += copy(dAtA[i:], dAtA8[:j7]) } if len(m.Field5) > 0 { - data10 := make([]byte, len(m.Field5)*10) + dAtA10 := make([]byte, len(m.Field5)*10) var j9 int for _, num := range m.Field5 { for num >= 1<<7 { - data10[j9] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j9++ } - data10[j9] = uint8(num) + dAtA10[j9] = uint8(num) j9++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j9)) - i += copy(data[i:], data10[:j9]) + i = encodeVarintThetest(dAtA, i, uint64(j9)) + i += copy(dAtA[i:], dAtA10[:j9]) } if len(m.Field6) > 0 { - data12 := make([]byte, len(m.Field6)*10) + dAtA12 := make([]byte, len(m.Field6)*10) var j11 int for _, num := range m.Field6 { for num >= 1<<7 { - data12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j11++ } - data12[j11] = uint8(num) + dAtA12[j11] = uint8(num) j11++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j11)) - i += copy(data[i:], data12[:j11]) + i = encodeVarintThetest(dAtA, i, uint64(j11)) + i += copy(dAtA[i:], dAtA12[:j11]) } if len(m.Field7) > 0 { - data13 := make([]byte, len(m.Field7)*5) + dAtA13 := make([]byte, len(m.Field7)*5) var j14 int for _, num := range m.Field7 { x15 := (uint32(num) << 1) ^ uint32((num >> 31)) for x15 >= 1<<7 { - data13[j14] = uint8(uint64(x15)&0x7f | 0x80) + dAtA13[j14] = uint8(uint64(x15)&0x7f | 0x80) j14++ x15 >>= 7 } - data13[j14] = uint8(x15) + dAtA13[j14] = uint8(x15) j14++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j14)) - i += copy(data[i:], data13[:j14]) + i = encodeVarintThetest(dAtA, i, uint64(j14)) + i += copy(dAtA[i:], dAtA13[:j14]) } if len(m.Field8) > 0 { var j16 int - data18 := make([]byte, len(m.Field8)*10) + dAtA18 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x17 := (uint64(num) << 1) ^ uint64((num >> 63)) for x17 >= 1<<7 { - data18[j16] = uint8(uint64(x17)&0x7f | 0x80) + dAtA18[j16] = uint8(uint64(x17)&0x7f | 0x80) j16++ x17 >>= 7 } - data18[j16] = uint8(x17) + dAtA18[j16] = uint8(x17) j16++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j16)) - i += copy(data[i:], data18[:j16]) + i = encodeVarintThetest(dAtA, i, uint64(j16)) + i += copy(dAtA[i:], dAtA18[:j16]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepPackedNative) Marshal() (data []byte, err error) { +func (m *NinRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { - data20 := make([]byte, len(m.Field3)*10) + dAtA20 := make([]byte, len(m.Field3)*10) var j19 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data20[j19] = uint8(uint64(num)&0x7f | 0x80) + dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j19++ } - data20[j19] = uint8(num) + dAtA20[j19] = uint8(num) j19++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j19)) - i += copy(data[i:], data20[:j19]) + i = encodeVarintThetest(dAtA, i, uint64(j19)) + i += copy(dAtA[i:], dAtA20[:j19]) } if len(m.Field4) > 0 { - data22 := make([]byte, len(m.Field4)*10) + dAtA22 := make([]byte, len(m.Field4)*10) var j21 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data22[j21] = uint8(uint64(num)&0x7f | 0x80) + dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j21++ } - data22[j21] = uint8(num) + dAtA22[j21] = uint8(num) j21++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j21)) - i += copy(data[i:], data22[:j21]) + i = encodeVarintThetest(dAtA, i, uint64(j21)) + i += copy(dAtA[i:], dAtA22[:j21]) } if len(m.Field5) > 0 { - data24 := make([]byte, len(m.Field5)*10) + dAtA24 := make([]byte, len(m.Field5)*10) var j23 int for _, num := range m.Field5 { for num >= 1<<7 { - data24[j23] = uint8(uint64(num)&0x7f | 0x80) + dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j23++ } - data24[j23] = uint8(num) + dAtA24[j23] = uint8(num) j23++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j23)) - i += copy(data[i:], data24[:j23]) + i = encodeVarintThetest(dAtA, i, uint64(j23)) + i += copy(dAtA[i:], dAtA24[:j23]) } if len(m.Field6) > 0 { - data26 := make([]byte, len(m.Field6)*10) + dAtA26 := make([]byte, len(m.Field6)*10) var j25 int for _, num := range m.Field6 { for num >= 1<<7 { - data26[j25] = uint8(uint64(num)&0x7f | 0x80) + dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j25++ } - data26[j25] = uint8(num) + dAtA26[j25] = uint8(num) j25++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j25)) - i += copy(data[i:], data26[:j25]) + i = encodeVarintThetest(dAtA, i, uint64(j25)) + i += copy(dAtA[i:], dAtA26[:j25]) } if len(m.Field7) > 0 { - data27 := make([]byte, len(m.Field7)*5) + dAtA27 := make([]byte, len(m.Field7)*5) var j28 int for _, num := range m.Field7 { x29 := (uint32(num) << 1) ^ uint32((num >> 31)) for x29 >= 1<<7 { - data27[j28] = uint8(uint64(x29)&0x7f | 0x80) + dAtA27[j28] = uint8(uint64(x29)&0x7f | 0x80) j28++ x29 >>= 7 } - data27[j28] = uint8(x29) + dAtA27[j28] = uint8(x29) j28++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j28)) - i += copy(data[i:], data27[:j28]) + i = encodeVarintThetest(dAtA, i, uint64(j28)) + i += copy(dAtA[i:], dAtA27[:j28]) } if len(m.Field8) > 0 { var j30 int - data32 := make([]byte, len(m.Field8)*10) + dAtA32 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x31 := (uint64(num) << 1) ^ uint64((num >> 63)) for x31 >= 1<<7 { - data32[j30] = uint8(uint64(x31)&0x7f | 0x80) + dAtA32[j30] = uint8(uint64(x31)&0x7f | 0x80) j30++ x31 >>= 7 } - data32[j30] = uint8(x31) + dAtA32[j30] = uint8(x31) j30++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j30)) - i += copy(data[i:], data32[:j30]) + i = encodeVarintThetest(dAtA, i, uint64(j30)) + i += copy(dAtA[i:], dAtA32[:j30]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptStruct) Marshal() (data []byte, err error) { +func (m *NidOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n33, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n33, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n33 - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n34, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n34, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n34 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x42 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n35, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n35, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n35 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStruct) Marshal() (data []byte, err error) { +func (m *NinOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n36, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n36, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n36 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n37, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n37, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n37 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n38, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n38, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n38 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepStruct) Marshal() (data []byte, err error) { +func (m *NidRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25584,10 +26822,10 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25596,31 +26834,31 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x39 := (uint32(num) << 1) ^ uint32((num >> 31)) for x39 >= 1<<7 { - data[i] = uint8(uint64(x39)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x39)&0x7f | 0x80) x39 >>= 7 i++ } - data[i] = uint8(x39) + dAtA[i] = uint8(x39) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25629,82 +26867,82 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepStruct) Marshal() (data []byte, err error) { +func (m *NinRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25713,10 +26951,10 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25725,31 +26963,31 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x40 := (uint32(num) << 1) ^ uint32((num >> 31)) for x40 >= 1<<7 { - data[i] = uint8(uint64(x40)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x40)&0x7f | 0x80) x40 >>= 7 i++ } - data[i] = uint8(x40) + dAtA[i] = uint8(x40) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25758,180 +26996,180 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NidEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n41, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n41, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n41 } - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n42, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n42, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n42 - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n43, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n43, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n43 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n44, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n44, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n44 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidNestedStruct) Marshal() (data []byte, err error) { +func (m *NidNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n45, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n45, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25939,31 +27177,31 @@ func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStruct) Marshal() (data []byte, err error) { +func (m *NinNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n46, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n46, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25971,10 +27209,10 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25982,141 +27220,141 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptCustom) Marshal() (data []byte, err error) { +func (m *NidOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n47, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n47, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n47 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n48, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n48, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n48 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomDash) Marshal() (data []byte, err error) { +func (m *CustomDash) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomDash) MarshalTo(data []byte) (int, error) { +func (m *CustomDash) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Value != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n49, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n49, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n49 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptCustom) Marshal() (data []byte, err error) { +func (m *NinOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Id != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n50, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n50, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n50 } if m.Value != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n51, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n51, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n51 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepCustom) Marshal() (data []byte, err error) { +func (m *NidRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26125,10 +27363,10 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26136,32 +27374,32 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepCustom) Marshal() (data []byte, err error) { +func (m *NinRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26170,10 +27408,10 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26181,1646 +27419,1642 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeUnion) Marshal() (data []byte, err error) { +func (m *NinOptNativeUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStructUnion) Marshal() (data []byte, err error) { +func (m *NinOptStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n52, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n52, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n52 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n53, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n53, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n53 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n54, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n54, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n54 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n55, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n55, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n55 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStructUnion) Marshal() (data []byte, err error) { +func (m *NinNestedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n56, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n56, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n56 } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Field2.Size())) - n57, err := m.Field2.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) + n57, err := m.Field2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n57 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n58, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n58, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n58 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Tree) Marshal() (data []byte, err error) { +func (m *Tree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Tree) MarshalTo(data []byte) (int, error) { +func (m *Tree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Or != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Or.Size())) - n59, err := m.Or.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) + n59, err := m.Or.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n59 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n60, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n60, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n61, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n61, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OrBranch) Marshal() (data []byte, err error) { +func (m *OrBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OrBranch) MarshalTo(data []byte) (int, error) { +func (m *OrBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n62, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n62, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n62 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n63, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n63, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n63 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndBranch) Marshal() (data []byte, err error) { +func (m *AndBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndBranch) MarshalTo(data []byte) (int, error) { +func (m *AndBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n64, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n64, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n64 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n65, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n65, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n65 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Leaf) Marshal() (data []byte, err error) { +func (m *Leaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Leaf) MarshalTo(data []byte) (int, error) { +func (m *Leaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Value)) - data[i] = 0x12 + i = encodeVarintThetest(dAtA, i, uint64(m.Value)) + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.StrValue))) - i += copy(data[i:], m.StrValue) + i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) + i += copy(dAtA[i:], m.StrValue) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepTree) Marshal() (data []byte, err error) { +func (m *DeepTree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepTree) MarshalTo(data []byte) (int, error) { +func (m *DeepTree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Down != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n66, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n66, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n66 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n67, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n67, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n67 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n68, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n68, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n68 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *ADeepBranch) Marshal() (data []byte, err error) { +func (m *ADeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ADeepBranch) MarshalTo(data []byte) (int, error) { +func (m *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n69, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n69, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n69 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndDeepBranch) Marshal() (data []byte, err error) { +func (m *AndDeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndDeepBranch) MarshalTo(data []byte) (int, error) { +func (m *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n70, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n70, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n70 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n71, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n71, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n71 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepLeaf) Marshal() (data []byte, err error) { +func (m *DeepLeaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepLeaf) MarshalTo(data []byte) (int, error) { +func (m *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Tree.Size())) - n72, err := m.Tree.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) + n72, err := m.Tree.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n72 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Nil) Marshal() (data []byte, err error) { +func (m *Nil) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nil) MarshalTo(data []byte) (int, error) { +func (m *Nil) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptEnum) Marshal() (data []byte, err error) { +func (m *NidOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnum) Marshal() (data []byte, err error) { +func (m *NinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepEnum) Marshal() (data []byte, err error) { +func (m *NidRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepEnum) Marshal() (data []byte, err error) { +func (m *NinRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *NinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnum) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Timer) Marshal() (data []byte, err error) { +func (m *Timer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Timer) MarshalTo(data []byte) (int, error) { +func (m *Timer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Time1 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time1 i += 8 - data[i] = 0x11 + dAtA[i] = 0x11 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Time2 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time2 i += 8 if m.Data != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *MyExtendable) Marshal() (data []byte, err error) { +func (m *MyExtendable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MyExtendable) MarshalTo(data []byte) (int, error) { +func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OtherExtenable) Marshal() (data []byte, err error) { +func (m *OtherExtenable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OtherExtenable) MarshalTo(data []byte) (int, error) { +func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.M != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.M.Size())) - n73, err := m.M.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) + n73, err := m.M.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n73 } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field13)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition) Marshal() (data []byte, err error) { +func (m *NestedDefinition) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.EnumField != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.EnumField)) + i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) } if m.NNM != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n74, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n74, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n74 } if m.NM != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.NM.Size())) - n75, err := m.NM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) + n75, err := m.NM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n75 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedField1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.NestedField1 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.NestedField1 i += 8 } if m.NNM != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n76, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n76, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n76 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedNestedField1 != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.NestedNestedField1))) - i += copy(data[i:], *m.NestedNestedField1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) + i += copy(dAtA[i:], *m.NestedNestedField1) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedScope) Marshal() (data []byte, err error) { +func (m *NestedScope) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedScope) MarshalTo(data []byte) (int, error) { +func (m *NestedScope) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.A != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.A.Size())) - n77, err := m.A.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) + n77, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n77 } if m.B != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.B)) + i = encodeVarintThetest(dAtA, i, uint64(*m.B)) } if m.C != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.C.Size())) - n78, err := m.C.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) + n78, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n78 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeDefault) Marshal() (data []byte, err error) { +func (m *NinOptNativeDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 i += 4 } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 i += 4 } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 i += 8 } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 i += 8 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomContainer) Marshal() (data []byte, err error) { +func (m *CustomContainer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomContainer) MarshalTo(data []byte) (int, error) { +func (m *CustomContainer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.CustomStruct.Size())) - n79, err := m.CustomStruct.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) + n79, err := m.CustomStruct.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n79 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNidOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNidOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.FieldA i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.FieldB i += 4 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldD)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldE)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldF)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.FieldI + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.FieldI i += 4 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.FieldJ + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.FieldJ i += 4 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.FieldK + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.FieldK i += 8 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.FieldL + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.FieldL i += 8 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldN))) - i += copy(data[i:], m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) + i += copy(dAtA[i:], m.FieldN) if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA i += 8 } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB i += 4 } if m.FieldC != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldC)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) } if m.FieldD != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldD)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) } if m.FieldE != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldF)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) } if m.FieldG != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) } if m.FieldH != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) } if m.FieldI != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.FieldI + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.FieldI i += 4 } if m.FieldJ != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.FieldJ + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.FieldJ i += 4 } if m.FieldK != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.FieldK + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.FieldK i += 8 } if m.FielL != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.FielL + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.FielL i += 8 } if m.FieldM != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldN != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldN))) - i += copy(data[i:], *m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) + i += copy(dAtA[i:], *m.FieldN) } if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinRepNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinRepNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.FieldA) > 0 { for _, num := range m.FieldA { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldC) > 0 { for _, num := range m.FieldC { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldD) > 0 { for _, num := range m.FieldD { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldE) > 0 { for _, num := range m.FieldE { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldF) > 0 { for _, num := range m.FieldF { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldG) > 0 { for _, num := range m.FieldG { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x80 := (uint32(num) << 1) ^ uint32((num >> 31)) for x80 >= 1<<7 { - data[i] = uint8(uint64(x80)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x80)&0x7f | 0x80) x80 >>= 7 i++ } - data[i] = uint8(x80) + dAtA[i] = uint8(x80) i++ } } if len(m.FieldH) > 0 { for _, num := range m.FieldH { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x81 := (uint64(num) << 1) ^ uint64((num >> 63)) for x81 >= 1<<7 { - data[i] = uint8(uint64(x81)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x81)&0x7f | 0x80) x81 >>= 7 i++ } - data[i] = uint8(x81) + dAtA[i] = uint8(x81) i++ } } if len(m.FieldI) > 0 { for _, num := range m.FieldI { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldM) > 0 { for _, b := range m.FieldM { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.FieldN) > 0 { for _, s := range m.FieldN { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.FieldO) > 0 { for _, b := range m.FieldO { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinStruct) Marshal() (data []byte, err error) { +func (m *CustomNameNinStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA i += 8 } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB i += 4 } if m.FieldC != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC.Size())) - n82, err := m.FieldC.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) + n82, err := m.FieldC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27828,10 +29062,10 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27839,83 +29073,83 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } } if m.FieldE != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) } if m.FieldG != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldG.Size())) - n83, err := m.FieldG.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) + n83, err := m.FieldG.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n83 } if m.FieldH != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldH { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldI != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldI))) - i += copy(data[i:], *m.FieldI) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) + i += copy(dAtA[i:], *m.FieldI) } if m.FieldJ != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldJ))) - i += copy(data[i:], m.FieldJ) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) + i += copy(dAtA[i:], m.FieldJ) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameCustomType) Marshal() (data []byte, err error) { +func (m *CustomNameCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n84, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n84, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n84 } if m.FieldB != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldB.Size())) - n85, err := m.FieldB.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) + n85, err := m.FieldB.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27923,10 +29157,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldC) > 0 { for _, msg := range m.FieldC { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27935,10 +29169,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27946,173 +29180,173 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *CustomNameNinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n86, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n86, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n86 } if m.FieldA != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n87, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n87, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n87 } if m.FieldB != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.FieldB { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameEnum) Marshal() (data []byte, err error) { +func (m *CustomNameEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameEnum) MarshalTo(data []byte) (int, error) { +func (m *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldA)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NoExtensionsMap) Marshal() (data []byte, err error) { +func (m *NoExtensionsMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NoExtensionsMap) MarshalTo(data []byte) (int, error) { +func (m *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.XXX_extensions != nil { - i += copy(data[i:], m.XXX_extensions) + i += copy(dAtA[i:], m.XXX_extensions) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Unrecognized) Marshal() (data []byte, err error) { +func (m *Unrecognized) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Unrecognized) MarshalTo(data []byte) (int, error) { +func (m *Unrecognized) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field1))) - i += copy(data[i:], *m.Field1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) + i += copy(dAtA[i:], *m.Field1) } return i, nil } -func (m *UnrecognizedWithInner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Embedded) > 0 { for _, msg := range m.Embedded { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -28120,125 +29354,282 @@ func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { } } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithInner_Inner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner_Inner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner_Inner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *UnrecognizedWithEmbed) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) + n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n88 if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithEmbed_Embedded) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed_Embedded) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *Node) Marshal() (data []byte, err error) { +func (m *Node) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Node) MarshalTo(data []byte) (int, error) { +func (m *Node) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Label != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Label))) - i += copy(data[i:], *m.Label) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) + i += copy(dAtA[i:], *m.Label) } if len(m.Children) > 0 { for _, msg := range m.Children { - data[i] = 0x12 + dAtA[i] = 0x12 + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n89, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n89 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n90, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n90 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n91, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n91 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -28246,40 +29637,67 @@ func (m *Node) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ProtoType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field2 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Thetest(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Thetest(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Thetest(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Thetest(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintThetest(data []byte, offset int, v uint64) int { +func encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *NidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28291,7 +29709,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28314,7 +29732,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field1 = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 5 { @@ -28323,7 +29741,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field2 = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 3: if wireType != 0 { @@ -28337,7 +29755,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field3 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28356,7 +29774,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field4 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -28375,7 +29793,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field5 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -28394,7 +29812,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28413,7 +29831,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28434,7 +29852,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28450,7 +29868,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field9 = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + m.Field9 = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 10: if wireType != 5 { @@ -28459,7 +29877,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field10 = *(*int32)(unsafe.Pointer(&data[iNdEx])) + m.Field10 = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 11: if wireType != 1 { @@ -28468,7 +29886,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field11 = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + m.Field11 = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 12: if wireType != 1 { @@ -28477,7 +29895,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field12 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Field12 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 13: if wireType != 0 { @@ -28491,7 +29909,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28511,7 +29929,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28526,7 +29944,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -28540,7 +29958,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28554,14 +29972,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28571,7 +29989,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28581,8 +29999,8 @@ func (m *NidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28594,7 +30012,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28618,7 +30036,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -28629,7 +30047,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -28644,7 +30062,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28664,7 +30082,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -28684,7 +30102,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -28704,7 +30122,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28724,7 +30142,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -28745,7 +30163,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28763,7 +30181,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = &v case 10: @@ -28774,7 +30192,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = &v case 11: @@ -28785,7 +30203,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = &v case 12: @@ -28796,7 +30214,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = &v case 13: @@ -28811,7 +30229,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28832,7 +30250,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28847,7 +30265,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -28862,7 +30280,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28876,14 +30294,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28893,7 +30311,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28903,8 +30321,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28916,7 +30334,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28933,655 +30351,250 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + case 2: + if wireType == 5 { + var v float32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field13 = append(m.Field13, bool(v != 0)) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepNative) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NinRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepPackedNative) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NidRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } if packedLen < 0 { return ErrInvalidLengthThetestUnsafe @@ -29591,28 +30604,29 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF + m.Field5 = append(m.Field5, v) } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - case 2: - if wireType == 2 { - var packedLen int + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29620,42 +30634,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - packedLen |= (int(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -29664,7 +30651,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29679,7 +30666,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v int32 + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29687,16 +30674,20 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) + m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -29705,19 +30696,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -29726,7 +30714,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29741,7 +30729,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v int64 + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29749,17 +30737,22 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29767,19 +30760,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -29788,7 +30778,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29803,7 +30793,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v uint32 + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29811,17 +30801,30 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -29829,19 +30832,42 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - case 6: - if wireType == 2 { + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -29850,69 +30876,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29928,110 +30892,26 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } for iNdEx < postIndex { var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - case 8: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else if wireType == 0 { + case 11: + if wireType == 1 { var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if iNdEx+8 > l { + return io.ErrUnexpectedEOF } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 2 { + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30040,7 +30920,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30055,71 +30935,27 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { + var v uint64 + if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } - case 10: - if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else if wireType == 5 { - var v int32 - if iNdEx+4 > l { + case 12: + if wireType == 1 { + var v int64 + if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 2 { + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30128,7 +30964,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30143,28 +30979,20 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v uint64 + var v int64 if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF + m.Field12 = append(m.Field12, v) } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - case 12: - if wireType == 2 { - var packedLen int + case 13: + if wireType == 0 { + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30172,42 +31000,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - packedLen |= (int(b) & 0x7F) << shift + v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 2 { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30216,7 +31017,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30239,7 +31040,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30248,29 +31049,70 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30280,7 +31122,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30290,8 +31132,8 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30303,7 +31145,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30313,14 +31155,22 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepNative: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30329,7 +31179,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30348,23 +31198,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = append(m.Field1, v) } - } else if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30373,7 +31223,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30392,23 +31242,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = append(m.Field2, v) } - } else if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30417,7 +31276,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30440,7 +31299,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30449,8 +31308,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30458,19 +31321,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30479,7 +31338,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30502,7 +31361,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -30511,8 +31370,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30520,19 +31383,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30541,7 +31400,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30564,7 +31423,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -30573,8 +31432,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30582,19 +31445,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30603,7 +31462,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30626,7 +31485,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30635,8 +31494,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30644,19 +31507,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30665,7 +31525,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30688,7 +31548,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -30698,8 +31558,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -30707,20 +31571,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30729,7 +31589,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30752,7 +31612,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30762,29 +31622,19 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30793,7 +31643,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30812,23 +31662,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30837,7 +31687,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30856,23 +31706,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30881,7 +31731,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30900,23 +31750,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30925,7 +31775,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30944,23 +31794,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -30969,7 +31828,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30992,7 +31851,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31001,245 +31860,9 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptStruct) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NidOptStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field1 = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field2 = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = bool(v != 0) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -31252,7 +31875,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31267,7 +31890,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -31281,7 +31904,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31295,14 +31918,12 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } + m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31312,7 +31933,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31322,8 +31943,8 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31335,7 +31956,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31345,259 +31966,717 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NinOptStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NidRepPackedNative: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + case 2: + if wireType == 5 { + var v float32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field8 == nil { - m.Field8 = &NidOptNative{} - } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetestUnsafe + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - s := string(data[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} + case 11: + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) + } + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31607,7 +32686,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31617,8 +32696,8 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31630,7 +32709,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31640,34 +32719,1427 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NidRepStruct: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + case 2: + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + } + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) + } + case 11: + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) + } + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidOptStruct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + m.Field6 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Field6 |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = v + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = bool(v != 0) + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field14 = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) + if m.Field15 == nil { + m.Field15 = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NinOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NinOptStruct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = &v + case 2: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field3 == nil { + m.Field3 = &NidOptNative{} + } + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field4 == nil { + m.Field4 = &NinOptNative{} + } + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = &v + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = &v + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Field8 == nil { + m.Field8 = &NidOptNative{} + } + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Field13 = &b + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field14 = &s + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) + if m.Field15 == nil { + m.Field15 = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidRepStruct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -31680,7 +34152,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31695,7 +34167,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31711,7 +34183,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31726,51 +34198,136 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -31783,7 +34340,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31798,30 +34355,72 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -31834,7 +34433,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31849,7 +34448,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -31863,7 +34462,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31878,11 +34477,11 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31892,7 +34491,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31902,8 +34501,8 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31915,7 +34514,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31932,27 +34531,93 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -31965,7 +34630,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31980,7 +34645,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31996,7 +34661,164 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field4 = append(m.Field4, &NinOptNative{}) + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32010,103 +34832,73 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field8 = append(m.Field8, &NidOptNative{}) + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -32119,7 +34911,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32134,7 +34926,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -32148,7 +34940,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32163,11 +34955,11 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32177,7 +34969,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32187,8 +34979,8 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32200,7 +34992,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32228,7 +35020,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32245,7 +35037,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32261,7 +35053,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32275,7 +35067,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32291,7 +35083,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32301,7 +35093,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = bool(v != 0) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32311,7 +35103,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32321,8 +35113,8 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32334,7 +35126,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32362,7 +35154,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32379,7 +35171,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32395,7 +35187,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32412,7 +35204,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NidOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32428,7 +35220,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32439,7 +35231,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32449,7 +35241,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32459,8 +35251,8 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32472,7 +35264,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32500,7 +35292,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32514,7 +35306,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32530,7 +35322,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32545,13 +35337,13 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32561,7 +35353,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32571,8 +35363,8 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32584,7 +35376,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32612,7 +35404,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32629,7 +35421,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptStruct{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32645,7 +35437,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32660,13 +35452,13 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32676,7 +35468,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32686,8 +35478,8 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32699,7 +35491,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32727,7 +35519,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32741,7 +35533,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32757,7 +35549,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32771,13 +35563,13 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32787,7 +35579,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32797,8 +35589,8 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *CustomDash) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomDash) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32810,7 +35602,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32838,7 +35630,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32854,13 +35646,13 @@ func (m *CustomDash) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom_dash_type.Bytes m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32870,7 +35662,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32880,8 +35672,8 @@ func (m *CustomDash) Unmarshal(data []byte) error { } return nil } -func (m *NinOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32893,7 +35685,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32921,7 +35713,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32937,7 +35729,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = &v - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32953,7 +35745,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32969,13 +35761,13 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32985,7 +35777,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32995,8 +35787,8 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *NidRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33008,7 +35800,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33036,7 +35828,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33052,7 +35844,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33068,7 +35860,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33084,13 +35876,13 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33100,7 +35892,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33110,8 +35902,8 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33123,7 +35915,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33151,7 +35943,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33167,7 +35959,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33183,7 +35975,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33199,13 +35991,13 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33215,7 +36007,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33225,8 +36017,8 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33238,7 +36030,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33262,7 +36054,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -33273,7 +36065,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -33288,7 +36080,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33308,7 +36100,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33328,7 +36120,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33348,7 +36140,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33368,7 +36160,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33389,7 +36181,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33404,7 +36196,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -33419,7 +36211,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33433,14 +36225,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33450,7 +36242,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33460,8 +36252,8 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33473,7 +36265,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33497,7 +36289,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -33508,7 +36300,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -33523,7 +36315,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33540,7 +36332,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33556,7 +36348,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33573,7 +36365,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33589,7 +36381,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33609,7 +36401,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33630,7 +36422,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33651,7 +36443,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33666,7 +36458,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -33681,7 +36473,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33695,14 +36487,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33712,7 +36504,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33722,8 +36514,8 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33735,7 +36527,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33763,7 +36555,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33780,7 +36572,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33796,7 +36588,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33813,7 +36605,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NinOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33829,7 +36621,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33840,7 +36632,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33850,7 +36642,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33860,8 +36652,8 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33873,7 +36665,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33901,7 +36693,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33918,7 +36710,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptNativeUnion{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33934,7 +36726,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33951,7 +36743,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field2 == nil { m.Field2 = &NinOptStructUnion{} } - if err := m.Field2.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33967,7 +36759,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33984,13 +36776,13 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NinEmbeddedStructUnion{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34000,7 +36792,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34010,8 +36802,8 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *Tree) Unmarshal(data []byte) error { - l := len(data) +func (m *Tree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34023,7 +36815,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34051,7 +36843,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34068,7 +36860,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Or == nil { m.Or = &OrBranch{} } - if err := m.Or.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34084,7 +36876,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34101,7 +36893,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34117,7 +36909,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34134,13 +36926,13 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &Leaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34150,7 +36942,7 @@ func (m *Tree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34160,8 +36952,8 @@ func (m *Tree) Unmarshal(data []byte) error { } return nil } -func (m *OrBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *OrBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34173,7 +36965,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34201,7 +36993,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34215,7 +37007,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34231,7 +37023,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34245,13 +37037,13 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34261,7 +37053,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34271,8 +37063,8 @@ func (m *OrBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34284,7 +37076,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34312,7 +37104,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34326,7 +37118,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34342,7 +37134,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34356,13 +37148,13 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34372,7 +37164,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34382,8 +37174,8 @@ func (m *AndBranch) Unmarshal(data []byte) error { } return nil } -func (m *Leaf) Unmarshal(data []byte) error { - l := len(data) +func (m *Leaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34395,7 +37187,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34423,7 +37215,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Value |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -34442,7 +37234,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34457,11 +37249,11 @@ func (m *Leaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.StrValue = string(data[iNdEx:postIndex]) + m.StrValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34471,7 +37263,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34481,8 +37273,8 @@ func (m *Leaf) Unmarshal(data []byte) error { } return nil } -func (m *DeepTree) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepTree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34494,7 +37286,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34522,7 +37314,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34539,7 +37331,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Down == nil { m.Down = &ADeepBranch{} } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34555,7 +37347,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34572,7 +37364,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndDeepBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34588,7 +37380,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34605,13 +37397,13 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &DeepLeaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34621,7 +37413,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34631,8 +37423,8 @@ func (m *DeepTree) Unmarshal(data []byte) error { } return nil } -func (m *ADeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *ADeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34644,7 +37436,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34672,7 +37464,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34686,13 +37478,13 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34702,7 +37494,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34712,8 +37504,8 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndDeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndDeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34725,7 +37517,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34753,7 +37545,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34767,7 +37559,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34783,7 +37575,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34797,13 +37589,13 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34813,7 +37605,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34823,8 +37615,8 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *DeepLeaf) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepLeaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34836,7 +37628,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34864,7 +37656,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34878,13 +37670,13 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Tree.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34894,7 +37686,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34904,8 +37696,8 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { } return nil } -func (m *Nil) Unmarshal(data []byte) error { - l := len(data) +func (m *Nil) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34917,7 +37709,7 @@ func (m *Nil) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34935,7 +37727,7 @@ func (m *Nil) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34945,7 +37737,7 @@ func (m *Nil) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34955,8 +37747,8 @@ func (m *Nil) Unmarshal(data []byte) error { } return nil } -func (m *NidOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34968,7 +37760,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34996,7 +37788,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field1 |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35005,7 +37797,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35015,7 +37807,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35025,8 +37817,8 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35038,7 +37830,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35066,7 +37858,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35086,7 +37878,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35106,7 +37898,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35116,7 +37908,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35126,7 +37918,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35136,8 +37928,8 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NidRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35149,7 +37941,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35166,68 +37958,194 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35237,7 +38155,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35247,8 +38165,8 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35260,7 +38178,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35277,68 +38195,194 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35348,7 +38392,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35358,8 +38402,8 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35371,7 +38415,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35399,7 +38443,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35419,7 +38463,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35439,7 +38483,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35449,7 +38493,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35459,7 +38503,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35469,8 +38513,8 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35482,7 +38526,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35510,7 +38554,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35530,7 +38574,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35550,7 +38594,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35560,7 +38604,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35570,7 +38614,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35580,8 +38624,8 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35593,7 +38637,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35621,7 +38665,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35641,7 +38685,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35661,7 +38705,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -35671,7 +38715,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35681,7 +38725,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35691,8 +38735,8 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *Timer) Unmarshal(data []byte) error { - l := len(data) +func (m *Timer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35704,7 +38748,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35727,7 +38771,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Time1 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Time1 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 1 { @@ -35736,7 +38780,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Time2 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Time2 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 3: if wireType != 2 { @@ -35750,7 +38794,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35764,14 +38808,14 @@ func (m *Timer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35781,7 +38825,7 @@ func (m *Timer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35791,8 +38835,8 @@ func (m *Timer) Unmarshal(data []byte) error { } return nil } -func (m *MyExtendable) Unmarshal(data []byte) error { - l := len(data) +func (m *MyExtendable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35804,7 +38848,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35832,7 +38876,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -35851,7 +38895,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35861,11 +38905,11 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35875,7 +38919,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35886,8 +38930,8 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } return nil } -func (m *OtherExtenable) Unmarshal(data []byte) error { - l := len(data) +func (m *OtherExtenable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35899,7 +38943,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35927,7 +38971,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35944,7 +38988,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if m.M == nil { m.M = &MyExtendable{} } - if err := m.M.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -35960,7 +39004,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -35980,7 +39024,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -35999,7 +39043,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36009,11 +39053,11 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36023,7 +39067,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36034,8 +39078,8 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36047,7 +39091,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36075,7 +39119,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36095,7 +39139,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36115,7 +39159,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36132,7 +39176,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -36148,7 +39192,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36165,13 +39209,13 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NM == nil { m.NM = &NestedDefinition_NestedMessage{} } - if err := m.NM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36181,7 +39225,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36191,8 +39235,8 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36204,7 +39248,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36228,7 +39272,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.NestedField1 = &v case 2: @@ -36243,7 +39287,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36260,13 +39304,13 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36276,7 +39320,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36286,8 +39330,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36299,7 +39343,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36327,7 +39371,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36342,12 +39386,12 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.NestedNestedField1 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36357,7 +39401,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36367,8 +39411,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) } return nil } -func (m *NestedScope) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36380,7 +39424,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36408,7 +39452,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36425,7 +39469,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.A == nil { m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -36441,7 +39485,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -36461,7 +39505,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36478,13 +39522,13 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.C == nil { m.C = &NestedDefinition_NestedMessage{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36494,7 +39538,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36504,8 +39548,8 @@ func (m *NestedScope) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36517,7 +39561,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36541,7 +39585,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -36552,7 +39596,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -36567,7 +39611,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -36587,7 +39631,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -36607,7 +39651,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -36627,7 +39671,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36647,7 +39691,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -36668,7 +39712,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36686,7 +39730,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = &v case 10: @@ -36697,7 +39741,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = &v case 11: @@ -36708,7 +39752,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = &v case 12: @@ -36719,7 +39763,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = &v case 13: @@ -36734,7 +39778,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36755,7 +39799,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36770,7 +39814,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -36785,7 +39829,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36799,14 +39843,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36816,7 +39860,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36826,8 +39870,8 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { } return nil } -func (m *CustomContainer) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomContainer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36839,7 +39883,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36867,7 +39911,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -36881,13 +39925,13 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CustomStruct.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -36897,7 +39941,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -36907,8 +39951,8 @@ func (m *CustomContainer) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -36920,7 +39964,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -36943,7 +39987,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldA = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.FieldA = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 5 { @@ -36952,7 +39996,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldB = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.FieldB = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 3: if wireType != 0 { @@ -36966,7 +40010,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldC |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -36985,7 +40029,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldD |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -37004,7 +40048,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldE |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -37023,7 +40067,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldF |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37042,7 +40086,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37063,7 +40107,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37079,7 +40123,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldI = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + m.FieldI = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 10: if wireType != 5 { @@ -37088,7 +40132,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldJ = *(*int32)(unsafe.Pointer(&data[iNdEx])) + m.FieldJ = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 11: if wireType != 1 { @@ -37097,7 +40141,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldK = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + m.FieldK = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 12: if wireType != 1 { @@ -37106,7 +40150,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldL = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.FieldL = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 13: if wireType != 0 { @@ -37120,7 +40164,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37140,7 +40184,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37155,7 +40199,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = string(data[iNdEx:postIndex]) + m.FieldN = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -37169,7 +40213,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37183,14 +40227,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -37200,7 +40244,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37210,8 +40254,8 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37223,7 +40267,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37247,7 +40291,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldA = &v case 2: @@ -37258,7 +40302,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldB = &v case 3: @@ -37273,7 +40317,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37293,7 +40337,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -37313,7 +40357,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -37333,7 +40377,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37353,7 +40397,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -37374,7 +40418,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37392,7 +40436,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldI = &v case 10: @@ -37403,7 +40447,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldJ = &v case 11: @@ -37414,7 +40458,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldK = &v case 12: @@ -37425,7 +40469,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FielL = &v case 13: @@ -37440,7 +40484,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37461,7 +40505,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37476,7 +40520,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldN = &s iNdEx = postIndex case 15: @@ -37491,7 +40535,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37505,14 +40549,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -37522,7 +40566,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37532,8 +40576,8 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37545,7 +40589,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37562,213 +40606,707 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldA = append(m.FieldA, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldA = append(m.FieldA, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) case 3: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldD = append(m.FieldD, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldD = append(m.FieldD, v) } - } - m.FieldC = append(m.FieldC, v) - case 4: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldE = append(m.FieldE, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldE = append(m.FieldE, v) } - } - m.FieldD = append(m.FieldD, v) - case 5: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldF = append(m.FieldF, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldF = append(m.FieldF, v) } - } - m.FieldE = append(m.FieldE, v) - case 6: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) } - } - m.FieldF = append(m.FieldF, v) - case 7: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - case 8: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldI = append(m.FieldI, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldI = append(m.FieldI, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - case 9: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) case 10: - if wireType != 5 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldJ = append(m.FieldJ, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldJ = append(m.FieldJ, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldK = append(m.FieldK, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldK = append(m.FieldK, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldL = append(m.FieldL, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldL = append(m.FieldL, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldM = append(m.FieldM, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldM = append(m.FieldM, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) } - m.FieldM = append(m.FieldM, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) @@ -37781,7 +41319,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37796,7 +41334,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = append(m.FieldN, string(data[iNdEx:postIndex])) + m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -37810,7 +41348,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37825,11 +41363,11 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], data[iNdEx:postIndex]) + copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -37839,7 +41377,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -37849,8 +41387,8 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -37862,7 +41400,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37886,7 +41424,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldA = &v case 2: @@ -37897,7 +41435,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldB = &v case 3: @@ -37912,7 +41450,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37929,7 +41467,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldC == nil { m.FieldC = &NidOptNative{} } - if err := m.FieldC.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -37945,7 +41483,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -37960,7 +41498,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -37976,7 +41514,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -37996,7 +41534,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -38017,7 +41555,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38034,7 +41572,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldG == nil { m.FieldG = &NidOptNative{} } - if err := m.FieldG.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38050,7 +41588,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38071,7 +41609,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38086,7 +41624,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldI = &s iNdEx = postIndex case 15: @@ -38101,7 +41639,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38115,14 +41653,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldJ = append(m.FieldJ[:0], data[iNdEx:postIndex]...) + m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) if m.FieldJ == nil { m.FieldJ = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38132,7 +41670,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38142,8 +41680,8 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameCustomType) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38155,7 +41693,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38183,7 +41721,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38199,7 +41737,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldA = &v - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38215,7 +41753,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38231,7 +41769,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldB = &v - if err := m.FieldB.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38247,7 +41785,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38263,7 +41801,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38279,7 +41817,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38295,13 +41833,13 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38311,7 +41849,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38321,8 +41859,8 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38334,7 +41872,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38362,7 +41900,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38379,7 +41917,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38395,7 +41933,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38412,7 +41950,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.FieldA == nil { m.FieldA = &NinOptNative{} } - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -38428,7 +41966,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38439,7 +41977,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { m.FieldB = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38449,7 +41987,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38459,8 +41997,8 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38472,7 +42010,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38500,7 +42038,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -38509,10 +42047,123 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } m.FieldA = &v case 2: - if wireType != 0 { + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v TheTestEnum + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -38520,17 +42171,414 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + if (fieldNum >= 100) && (fieldNum < 200) { + var sizeOfWire int + for { + sizeOfWire++ + wire >>= 7 + if wire == 0 { + break + } + } + iNdEx -= sizeOfWire + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + iNdEx += skippy + } else { + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Unrecognized) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field1 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) + if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Inner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.FieldB = append(m.FieldB, v) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38540,7 +42588,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38550,8 +42598,8 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } return nil } -func (m *NoExtensionsMap) Unmarshal(data []byte) error { - l := len(data) +func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38563,7 +42611,7 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38573,17 +42621,17 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + return fmt.Errorf("proto: Embedded: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v int64 + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -38591,52 +42639,27 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } m.Field1 = &v default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -38645,8 +42668,8 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { } return nil } -func (m *Unrecognized) Unmarshal(data []byte) error { - l := len(data) +func (m *Node) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38658,7 +42681,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38668,15 +42691,15 @@ func (m *Unrecognized) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + return fmt.Errorf("proto: Node: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -38686,7 +42709,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38701,12 +42724,43 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field1 = &s + s := string(dAtA[iNdEx:postIndex]) + m.Label = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Children = append(m.Children, &Node{}) + if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38716,6 +42770,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38725,8 +42780,8 @@ func (m *Unrecognized) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { - l := len(data) +func (m *NonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38738,7 +42793,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38748,15 +42803,15 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + return fmt.Errorf("proto: NonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -38766,7 +42821,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38780,44 +42835,16 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetestUnsafe + if m.Field1 == nil { + m.Field1 = &T{} } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38827,7 +42854,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38837,8 +42864,8 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38850,7 +42877,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38860,17 +42887,17 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Inner: wiretype end group for non-group") + return fmt.Errorf("proto: NidOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -38878,17 +42905,27 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -38898,6 +42935,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -38907,8 +42945,8 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -38920,7 +42958,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -38930,15 +42968,15 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + return fmt.Errorf("proto: NinOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -38948,7 +42986,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -38962,15 +43000,69 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field1 == nil { + m.Field1 = &T{} + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidRepNonByteCustomType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -38978,27 +43070,28 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthThetestUnsafe } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -39008,7 +43101,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39018,8 +43111,8 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39031,7 +43124,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39041,17 +43134,17 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Embedded: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -39059,17 +43152,28 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -39079,6 +43183,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39088,8 +43193,8 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { } return nil } -func (m *Node) Unmarshal(data []byte) error { - l := len(data) +func (m *ProtoType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -39101,7 +43206,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39111,15 +43216,15 @@ func (m *Node) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Node: wiretype end group for non-group") + return fmt.Errorf("proto: ProtoType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -39129,7 +43234,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39144,43 +43249,12 @@ func (m *Node) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -39190,7 +43264,7 @@ func (m *Node) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -39200,8 +43274,8 @@ func (m *Node) Unmarshal(data []byte) error { } return nil } -func skipThetestUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipThetestUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -39212,7 +43286,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39230,7 +43304,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -39247,7 +43321,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -39270,7 +43344,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -39281,7 +43355,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipThetestUnsafe(data[start:]) + next, err := skipThetestUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -39305,195 +43379,201 @@ var ( ErrIntOverflowThetestUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3011 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, - 0xf5, 0xd7, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x7f, 0x49, 0xde, - 0xbf, 0xa2, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0x70, 0x6d, 0xd7, - 0xa2, 0x0c, 0x46, 0x6e, 0x6b, 0xa0, 0x40, 0x41, 0x89, 0x2b, 0x89, 0xa8, 0xb4, 0x14, 0xc8, 0xa5, - 0x6b, 0xf7, 0x50, 0x04, 0x39, 0x14, 0x46, 0xaf, 0x45, 0x8f, 0x6d, 0x5c, 0x14, 0x05, 0xdc, 0x5b, - 0x0e, 0x45, 0x51, 0x14, 0x45, 0xe3, 0x4b, 0x01, 0xf5, 0x66, 0xf4, 0x54, 0x14, 0x85, 0x91, 0x38, - 0x97, 0x1c, 0xd3, 0x53, 0x73, 0xc8, 0xa1, 0xb3, 0xbb, 0x33, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0x25, 0xb7, 0x39, 0x2c, 0x3f, 0xe6, 0xbd, 0x37, 0xf3, 0xf6, 0xfd, 0x7e, 0x6f, 0xe6, 0xed, 0xce, - 0xc0, 0xd9, 0xdd, 0xce, 0xd1, 0x4e, 0xa7, 0xb7, 0xdc, 0x37, 0x7a, 0xcd, 0x3d, 0x7d, 0xa7, 0x63, - 0x1e, 0x2c, 0x9b, 0x07, 0xba, 0xa9, 0xf7, 0xcc, 0xa5, 0xe3, 0x6e, 0xc7, 0xec, 0x28, 0x31, 0xeb, - 0x77, 0xe6, 0xf2, 0x7e, 0xdb, 0x3c, 0xe8, 0xef, 0x2c, 0x21, 0xed, 0xe5, 0xfd, 0xce, 0x7e, 0x67, - 0xd9, 0x16, 0xee, 0xf4, 0xf7, 0xec, 0x7f, 0xf6, 0x1f, 0xfb, 0x97, 0x63, 0xa4, 0xfd, 0x13, 0xc0, - 0x64, 0xbd, 0xdd, 0xda, 0x3a, 0x36, 0xeb, 0x4d, 0xb3, 0x7d, 0x4f, 0x57, 0xa6, 0xe1, 0xe8, 0xb5, - 0xb6, 0x7e, 0xd8, 0xca, 0xab, 0xd2, 0x9c, 0xb4, 0x28, 0x95, 0x63, 0x27, 0xcf, 0x66, 0x47, 0x1a, - 0xa3, 0x7b, 0x76, 0x1b, 0x95, 0x16, 0x54, 0x19, 0x49, 0x65, 0x4e, 0x5a, 0xa0, 0xd2, 0x15, 0x15, - 0x20, 0x69, 0x9c, 0x93, 0xae, 0x50, 0x69, 0x51, 0x8d, 0x21, 0x29, 0xe0, 0xa4, 0x45, 0x2a, 0x5d, - 0x55, 0xe3, 0x48, 0x3a, 0xc1, 0x49, 0x57, 0xa9, 0x74, 0x4d, 0x1d, 0x45, 0xd2, 0x18, 0x27, 0x5d, - 0xa3, 0xd2, 0x2b, 0xea, 0x39, 0x24, 0x3d, 0xcf, 0x49, 0xaf, 0x50, 0xe9, 0xba, 0x9a, 0x40, 0x52, - 0x85, 0x93, 0xae, 0x53, 0xe9, 0x55, 0x75, 0x0c, 0x49, 0xcf, 0x71, 0xd2, 0xab, 0xca, 0x0c, 0x3c, - 0xe7, 0x44, 0x23, 0xa7, 0x42, 0x24, 0x9e, 0xc2, 0xe2, 0x73, 0x4e, 0x38, 0x72, 0xae, 0x3c, 0xaf, - 0x8e, 0x23, 0xf9, 0x28, 0x2f, 0xcf, 0xbb, 0xf2, 0x82, 0x9a, 0x44, 0xf2, 0x14, 0x2f, 0x2f, 0xb8, - 0xf2, 0x15, 0x75, 0x02, 0xc9, 0x13, 0xbc, 0x7c, 0xc5, 0x95, 0x17, 0xd5, 0x49, 0x24, 0x1f, 0xe3, - 0xe5, 0x45, 0x57, 0xbe, 0xaa, 0x4e, 0x21, 0x79, 0x92, 0x97, 0xaf, 0x6a, 0xef, 0xdb, 0xf0, 0x1a, - 0x2e, 0xbc, 0x69, 0x1e, 0x5e, 0x0a, 0x6c, 0x9a, 0x07, 0x96, 0x42, 0x9a, 0xe6, 0x21, 0xa5, 0x60, - 0xa6, 0x79, 0x30, 0x29, 0x8c, 0x69, 0x1e, 0x46, 0x0a, 0x60, 0x9a, 0x07, 0x90, 0x42, 0x97, 0xe6, - 0xa1, 0xa3, 0xa0, 0xa5, 0x79, 0xd0, 0x28, 0x5c, 0x69, 0x1e, 0x2e, 0x0a, 0x94, 0x2a, 0x00, 0xe5, - 0x42, 0xa4, 0x0a, 0x10, 0xb9, 0xe0, 0xa8, 0x02, 0x38, 0x2e, 0x2c, 0xaa, 0x00, 0x8b, 0x0b, 0x88, - 0x2a, 0x00, 0xe2, 0x42, 0xa1, 0x0a, 0x50, 0xb8, 0x20, 0xe0, 0x1c, 0x6b, 0xe8, 0xc7, 0x3e, 0x39, - 0x06, 0x06, 0xe6, 0x18, 0x18, 0x98, 0x63, 0x60, 0x60, 0x8e, 0x81, 0x81, 0x39, 0x06, 0x06, 0xe6, - 0x18, 0x18, 0x98, 0x63, 0x60, 0x60, 0x8e, 0x81, 0x81, 0x39, 0x06, 0x06, 0xe7, 0x18, 0x08, 0xc9, - 0x31, 0x10, 0x92, 0x63, 0x20, 0x24, 0xc7, 0x40, 0x48, 0x8e, 0x81, 0x90, 0x1c, 0x03, 0x81, 0x39, - 0xe6, 0xc2, 0x9b, 0xe6, 0xe1, 0xf5, 0xcd, 0x31, 0x10, 0x90, 0x63, 0x20, 0x20, 0xc7, 0x40, 0x40, - 0x8e, 0x81, 0x80, 0x1c, 0x03, 0x01, 0x39, 0x06, 0x02, 0x72, 0x0c, 0x04, 0xe4, 0x18, 0x08, 0xca, - 0x31, 0x10, 0x98, 0x63, 0x20, 0x30, 0xc7, 0x40, 0x60, 0x8e, 0x81, 0xc0, 0x1c, 0x03, 0x81, 0x39, - 0x06, 0xd8, 0x1c, 0xfb, 0x13, 0x80, 0x8a, 0x93, 0x63, 0xb7, 0x9b, 0xbb, 0x3f, 0xd0, 0x5b, 0x18, - 0x8a, 0x19, 0x21, 0xd3, 0x46, 0x2d, 0xe8, 0x52, 0x2e, 0x24, 0x33, 0x42, 0xae, 0xf1, 0xf2, 0x02, - 0x95, 0x93, 0x6c, 0xe3, 0xe5, 0x2b, 0x54, 0x4e, 0xf2, 0x8d, 0x97, 0x17, 0xa9, 0x9c, 0x64, 0x1c, - 0x2f, 0x5f, 0xa5, 0x72, 0x92, 0x73, 0xbc, 0x7c, 0x8d, 0xca, 0x49, 0xd6, 0xf1, 0xf2, 0x2b, 0x54, - 0x4e, 0xf2, 0x8e, 0x97, 0xaf, 0x53, 0x39, 0xc9, 0x3c, 0x5e, 0x7e, 0x55, 0x99, 0x13, 0x73, 0x8f, - 0x28, 0x50, 0x68, 0xe7, 0xc4, 0xec, 0x13, 0x34, 0xf2, 0xae, 0x06, 0xc9, 0x3f, 0x41, 0xa3, 0xe0, - 0x6a, 0x90, 0x0c, 0x14, 0x34, 0x56, 0xb4, 0x87, 0x36, 0x7c, 0x86, 0x08, 0x5f, 0x46, 0x80, 0x4f, - 0x66, 0xa0, 0xcb, 0x08, 0xd0, 0xc9, 0x0c, 0x6c, 0x19, 0x01, 0x36, 0x99, 0x81, 0x2c, 0x23, 0x40, - 0x26, 0x33, 0x70, 0x65, 0x04, 0xb8, 0x64, 0x06, 0xaa, 0x8c, 0x00, 0x95, 0xcc, 0xc0, 0x94, 0x11, - 0x60, 0x92, 0x19, 0x88, 0x32, 0x02, 0x44, 0x32, 0x03, 0x4f, 0x46, 0x80, 0x47, 0x66, 0xa0, 0x99, - 0x16, 0xa1, 0x91, 0x59, 0x58, 0xa6, 0x45, 0x58, 0x64, 0x16, 0x92, 0x69, 0x11, 0x12, 0x99, 0x85, - 0x63, 0x5a, 0x84, 0x43, 0x66, 0xa1, 0xf8, 0x52, 0x26, 0x15, 0xe1, 0xbb, 0x66, 0xb7, 0xbf, 0x6b, - 0x9e, 0xaa, 0x22, 0xcc, 0x71, 0xe5, 0xc3, 0x78, 0x41, 0x59, 0xb2, 0x0b, 0x56, 0xb6, 0xe2, 0x14, - 0x56, 0xb0, 0x1c, 0x57, 0x58, 0x30, 0x16, 0x86, 0xbf, 0x45, 0xf1, 0x54, 0xb5, 0x61, 0x8e, 0x2b, - 0x33, 0xc2, 0xfd, 0x5b, 0x7f, 0xe9, 0x15, 0xdb, 0x13, 0x99, 0x54, 0x6c, 0x38, 0xfc, 0xc3, 0x56, - 0x6c, 0xd9, 0xf0, 0x90, 0xd3, 0x60, 0x67, 0xc3, 0x83, 0xed, 0x59, 0x75, 0xa2, 0x56, 0x70, 0xd9, - 0xf0, 0xd0, 0xd2, 0xa0, 0x9e, 0x6d, 0xbd, 0x85, 0x19, 0x8c, 0x26, 0x13, 0x1f, 0x06, 0x0f, 0x5b, - 0x6f, 0xe5, 0xb8, 0xa9, 0x64, 0x58, 0x06, 0x83, 0xa1, 0x19, 0x3c, 0x6c, 0xe5, 0x95, 0xe3, 0xa6, - 0x97, 0xa1, 0x19, 0xfc, 0x12, 0xea, 0x21, 0xcc, 0x60, 0x37, 0xfc, 0xc3, 0xd6, 0x43, 0xd9, 0xf0, - 0x90, 0xfb, 0x32, 0x18, 0x0c, 0xc1, 0xe0, 0x28, 0xf5, 0x51, 0x36, 0x3c, 0xb4, 0xfe, 0x0c, 0x3e, - 0x75, 0x35, 0xf3, 0x81, 0x04, 0xcf, 0xa3, 0x61, 0x6a, 0x47, 0x3b, 0x7a, 0xab, 0xa5, 0xb7, 0x70, - 0x1c, 0x73, 0xdc, 0x4c, 0x10, 0x00, 0xf5, 0xd3, 0x67, 0xb3, 0x6e, 0x84, 0x57, 0x61, 0xc2, 0x89, - 0x70, 0x2e, 0xa7, 0x9e, 0x48, 0x21, 0x33, 0x5c, 0x62, 0x0f, 0xab, 0x2a, 0x17, 0x89, 0x19, 0x5a, - 0x7b, 0xfe, 0x26, 0x31, 0xb3, 0x1c, 0x56, 0xc9, 0xe7, 0xb4, 0x9f, 0xd9, 0x1e, 0x1a, 0xa7, 0xf6, - 0x70, 0x39, 0x92, 0x87, 0x8c, 0x6f, 0xaf, 0x7b, 0x7c, 0x63, 0xbc, 0xea, 0xc3, 0x29, 0x64, 0x56, - 0x47, 0xe6, 0xd1, 0x5c, 0x72, 0x74, 0x84, 0xf9, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, - 0xe7, 0x08, 0xad, 0x6d, 0x0d, 0x6b, 0x70, 0xc3, 0x66, 0x83, 0x86, 0x75, 0x67, 0x76, 0x3a, 0x60, - 0x36, 0x68, 0x40, 0x37, 0x87, 0xe8, 0x50, 0xf7, 0xc9, 0xe2, 0x5c, 0xe9, 0xf7, 0xcc, 0xce, 0x11, - 0x9a, 0x1c, 0xe4, 0x1b, 0x2d, 0x7b, 0x8c, 0x64, 0x39, 0x69, 0x39, 0xf5, 0x8f, 0x67, 0xb3, 0xb1, - 0x3b, 0x7d, 0xe4, 0xab, 0xdc, 0x6e, 0x29, 0x37, 0x61, 0xfc, 0xdb, 0xcd, 0xc3, 0xbe, 0x6e, 0x2f, - 0x11, 0xc9, 0x72, 0x11, 0x2b, 0x5c, 0x0a, 0x7c, 0x47, 0x64, 0x0d, 0xbc, 0xbc, 0x6b, 0x77, 0xbd, - 0x74, 0xa7, 0x6d, 0x98, 0xf9, 0xc2, 0x7a, 0x23, 0x7e, 0xcf, 0xea, 0x42, 0xfb, 0x1e, 0x84, 0xce, - 0x98, 0xd5, 0x66, 0xef, 0x40, 0xa9, 0x93, 0x9e, 0x9d, 0xa1, 0xd7, 0x51, 0xaf, 0xc5, 0x28, 0xbd, - 0x5e, 0x6e, 0x21, 0xeb, 0xcb, 0xe6, 0x83, 0x63, 0x7d, 0xa9, 0xfc, 0x00, 0xb5, 0x93, 0xde, 0x8f, - 0xc9, 0xaa, 0x87, 0xef, 0x4b, 0x65, 0xee, 0x2b, 0xc1, 0xdd, 0xd3, 0x35, 0xfe, 0x9e, 0x72, 0x2f, - 0x7a, 0x3f, 0xf7, 0xc9, 0x22, 0x21, 0x44, 0x12, 0x84, 0x45, 0x12, 0x9c, 0x36, 0x92, 0xc7, 0x64, - 0x7e, 0x14, 0xee, 0x15, 0x0c, 0xba, 0x57, 0x70, 0x9a, 0x7b, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, - 0xee, 0x18, 0xed, 0x8e, 0xf1, 0x95, 0x7b, 0x17, 0x74, 0xa6, 0x55, 0x40, 0x29, 0x76, 0xf2, 0x68, - 0x56, 0xd2, 0x3e, 0x90, 0xc9, 0x9d, 0x3b, 0x89, 0xf4, 0x62, 0x77, 0xfe, 0x55, 0xa9, 0xa9, 0x5e, - 0x46, 0x84, 0x7e, 0x29, 0xc1, 0xb4, 0x67, 0x26, 0x77, 0xc2, 0x74, 0xb6, 0xd3, 0xb9, 0x31, 0xec, - 0x74, 0x8e, 0x1d, 0xfc, 0x9d, 0x04, 0x5f, 0x15, 0xa6, 0x57, 0xc7, 0xbd, 0x65, 0xc1, 0xbd, 0xd7, - 0xbc, 0x23, 0xd9, 0x8a, 0x8c, 0x77, 0x2c, 0xbc, 0x82, 0x01, 0xd3, 0x33, 0xc5, 0xbd, 0x28, 0xe0, - 0x3e, 0x4d, 0x0d, 0x7c, 0xc2, 0x45, 0x18, 0x80, 0xdd, 0xee, 0xc0, 0xd8, 0x76, 0x57, 0xb7, 0x5e, - 0x41, 0xc8, 0x5b, 0x5d, 0xec, 0xe1, 0xa4, 0x63, 0xbf, 0xd5, 0x2d, 0x77, 0x9b, 0xc6, 0xee, 0x41, - 0x43, 0xee, 0x74, 0xd1, 0x62, 0x0b, 0x36, 0x8c, 0x16, 0xf6, 0x68, 0xca, 0x51, 0x40, 0x0d, 0x58, - 0x03, 0x34, 0x8d, 0x16, 0xea, 0x22, 0x76, 0x4b, 0x6f, 0xee, 0x61, 0x27, 0xa0, 0xa3, 0x63, 0xb5, - 0x34, 0x62, 0x87, 0xe8, 0x13, 0x0f, 0xf8, 0x5d, 0x98, 0x20, 0x1d, 0x2b, 0xf3, 0x96, 0xc5, 0x9e, - 0x89, 0x87, 0xc5, 0x16, 0x96, 0x3b, 0x78, 0xe5, 0x42, 0x76, 0x7b, 0xa6, 0xb2, 0x00, 0xe3, 0x8d, - 0xf6, 0xfe, 0x81, 0x89, 0x07, 0xf7, 0xaa, 0xc5, 0xbb, 0x96, 0x58, 0xbb, 0x0b, 0xc7, 0xa8, 0x47, - 0x67, 0xdc, 0x75, 0xd5, 0xb9, 0x35, 0xf4, 0x24, 0xcc, 0xac, 0x27, 0xe4, 0xbd, 0xa5, 0x33, 0x7b, - 0x29, 0x73, 0x30, 0x81, 0xc2, 0xec, 0x4e, 0xfa, 0xa4, 0x22, 0x4d, 0xf4, 0x70, 0xab, 0xf6, 0xbe, - 0x04, 0x13, 0x55, 0x5d, 0x3f, 0xb6, 0x03, 0xfe, 0x06, 0x8c, 0x55, 0x3b, 0x3f, 0x34, 0xb0, 0x83, - 0xe7, 0x71, 0x44, 0x2d, 0x31, 0x8e, 0x69, 0xac, 0x85, 0xc4, 0x48, 0x8d, 0x89, 0xfb, 0x2b, 0x34, - 0xee, 0x8c, 0x9e, 0x1d, 0x7b, 0x8d, 0x8b, 0x3d, 0x06, 0xd0, 0x52, 0xf2, 0xc4, 0xff, 0x0a, 0x1c, - 0x67, 0x46, 0x51, 0x16, 0xb1, 0x1b, 0xb2, 0x68, 0xc8, 0xc6, 0xca, 0xf2, 0x44, 0xd3, 0xe1, 0x04, - 0x37, 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc0, 0xd4, 0x0e, 0x73, 0x96, 0x0f, 0xb3, 0xbf, 0x2a, 0x0e, - 0x75, 0xce, 0x89, 0x91, 0x1d, 0xee, 0x79, 0x87, 0x9c, 0xc1, 0x20, 0x9a, 0xe8, 0xb7, 0x16, 0x87, - 0xa0, 0xde, 0x3e, 0xd4, 0xde, 0x86, 0xd0, 0x49, 0xf9, 0x9a, 0xd1, 0x3f, 0x12, 0xb2, 0x6e, 0x92, - 0x04, 0x78, 0xfb, 0x40, 0xdf, 0x46, 0xdf, 0x96, 0x0a, 0x5f, 0x4f, 0x59, 0x13, 0x0c, 0x74, 0x52, - 0xcc, 0xb6, 0x7f, 0x33, 0xd4, 0xde, 0xb7, 0x12, 0xb3, 0x54, 0x55, 0x47, 0xf5, 0xae, 0x6e, 0x6e, - 0x18, 0x1d, 0xf3, 0x40, 0xef, 0x0a, 0x16, 0x05, 0x65, 0x85, 0x4b, 0xd8, 0xc9, 0xc2, 0xeb, 0xd4, - 0x22, 0xd0, 0x68, 0x45, 0xfb, 0xd0, 0x76, 0xd0, 0x2a, 0x05, 0x3c, 0x37, 0x08, 0x22, 0xdc, 0xa0, - 0xb2, 0xc6, 0xd5, 0x6f, 0x03, 0xdc, 0x14, 0x1e, 0x2d, 0xaf, 0x72, 0xcf, 0x39, 0x83, 0x9d, 0xe5, - 0x9f, 0x31, 0x49, 0x4c, 0x89, 0xcb, 0x6f, 0x86, 0xba, 0x1c, 0x50, 0xdd, 0x0e, 0x1b, 0x53, 0x10, - 0x35, 0xa6, 0x7f, 0xa4, 0x15, 0x87, 0xd5, 0x5c, 0xd5, 0xf7, 0x9a, 0xfd, 0x43, 0x53, 0xb9, 0x14, - 0x8a, 0x7d, 0x49, 0xaa, 0x50, 0x57, 0x8b, 0x51, 0xe1, 0x2f, 0xc9, 0xe5, 0x32, 0x75, 0xf7, 0xca, - 0x10, 0x14, 0x28, 0xc9, 0x95, 0x0a, 0x9d, 0xb6, 0x13, 0x0f, 0x51, 0x16, 0x3f, 0x7e, 0x34, 0x3b, - 0xa2, 0xfd, 0x16, 0x39, 0x8f, 0x35, 0x19, 0xe2, 0x5e, 0x16, 0x9c, 0xbf, 0x40, 0xe6, 0x0c, 0xbf, - 0x08, 0xfc, 0xd7, 0xc8, 0xfb, 0x17, 0x09, 0xaa, 0x1e, 0x5f, 0x49, 0xbc, 0x73, 0x91, 0x5c, 0x2e, - 0x49, 0xb5, 0xff, 0x7d, 0xcc, 0xef, 0xc2, 0xf8, 0x76, 0xfb, 0x48, 0xef, 0x5a, 0x2b, 0x81, 0xf5, - 0xc3, 0x71, 0x99, 0x6c, 0xe6, 0xc4, 0x4d, 0xab, 0x89, 0xc8, 0x1c, 0xe7, 0x38, 0x99, 0xb5, 0x9f, - 0x10, 0xab, 0x36, 0xcd, 0xa6, 0xed, 0x41, 0x92, 0xce, 0xaf, 0xa8, 0x45, 0x5b, 0x81, 0xc9, 0xcd, - 0x07, 0xb5, 0xfb, 0xa6, 0x6e, 0xb4, 0x9a, 0x3b, 0x87, 0xe2, 0x1e, 0x28, 0xa9, 0x57, 0xf3, 0xd9, - 0x78, 0xa2, 0x95, 0x3a, 0x91, 0x4a, 0x31, 0xdb, 0x9f, 0x7b, 0x70, 0x72, 0xcb, 0x72, 0xdb, 0xb6, - 0xb3, 0xcd, 0xe6, 0xa0, 0xb4, 0xc9, 0x17, 0x42, 0x6c, 0xaf, 0x0d, 0xe9, 0x48, 0x28, 0x1f, 0x01, - 0x0d, 0x8f, 0x50, 0xb6, 0x01, 0x5a, 0xb6, 0x65, 0x63, 0x89, 0xc9, 0xd4, 0x79, 0xf4, 0x09, 0x53, - 0x13, 0x78, 0xdc, 0xbf, 0x02, 0x98, 0x72, 0x4a, 0x1d, 0x04, 0x62, 0xdb, 0x68, 0x9b, 0xde, 0x7a, - 0x95, 0x7a, 0xac, 0x7c, 0x03, 0x8e, 0x59, 0x21, 0xb5, 0x65, 0x18, 0xb0, 0x8b, 0xb8, 0x44, 0x11, - 0xba, 0xc0, 0x0d, 0x36, 0x75, 0xc6, 0x74, 0x62, 0x83, 0x1e, 0x30, 0x40, 0xbd, 0xbe, 0x89, 0x17, - 0xb7, 0xe2, 0x40, 0xd3, 0x4d, 0xbd, 0xd7, 0x6b, 0xee, 0xeb, 0xf8, 0x1f, 0x6e, 0xeb, 0xed, 0x37, - 0x80, 0x51, 0xdf, 0x44, 0xb4, 0x91, 0x51, 0x37, 0x4e, 0xc1, 0x3b, 0x1f, 0xa5, 0x9b, 0x86, 0x6c, - 0x6c, 0x66, 0xfe, 0x2c, 0xc1, 0x09, 0xae, 0x15, 0xad, 0xb6, 0x49, 0xa7, 0x81, 0xb9, 0xdd, 0xd1, - 0x46, 0xd2, 0x60, 0xda, 0x88, 0xcf, 0xf2, 0x29, 0x7d, 0xce, 0x6c, 0xa0, 0xa7, 0x76, 0xbe, 0x5d, - 0x59, 0x82, 0x0a, 0xdb, 0x84, 0x9d, 0x80, 0x76, 0x41, 0xad, 0x18, 0x1e, 0x89, 0xf6, 0x7f, 0x68, - 0x16, 0xa6, 0x71, 0x55, 0xa6, 0xe0, 0xf8, 0xf6, 0xdd, 0xdb, 0xb5, 0xef, 0xd7, 0x6b, 0xef, 0x6e, - 0xd7, 0xaa, 0x29, 0x49, 0xfb, 0xbd, 0x04, 0xc7, 0x71, 0xd9, 0xba, 0xdb, 0x39, 0xd6, 0x95, 0x32, - 0x94, 0x36, 0x30, 0x83, 0x5e, 0xcc, 0x6f, 0xa9, 0x89, 0x56, 0x27, 0xa9, 0x1c, 0x1d, 0x6a, 0x69, - 0x47, 0x29, 0x40, 0xa9, 0x82, 0x01, 0x8e, 0x86, 0x8c, 0xb4, 0xab, 0xfd, 0x0b, 0xc0, 0x57, 0xd8, - 0x32, 0x9a, 0xcc, 0x27, 0x17, 0xf9, 0xe7, 0xa6, 0xd2, 0x58, 0xbe, 0xb0, 0x52, 0x5c, 0xb2, 0x3e, - 0x28, 0x25, 0x2f, 0xf2, 0x8f, 0x50, 0x5e, 0x15, 0xcf, 0x31, 0x91, 0x52, 0x8c, 0x91, 0x7a, 0x8e, - 0x89, 0x70, 0x52, 0xcf, 0x31, 0x11, 0x4e, 0xea, 0x39, 0x26, 0xc2, 0x49, 0x3d, 0x5b, 0x01, 0x9c, - 0xd4, 0x73, 0x4c, 0x84, 0x93, 0x7a, 0x8e, 0x89, 0x70, 0x52, 0xef, 0x31, 0x11, 0x2c, 0x0e, 0x3c, - 0x26, 0xc2, 0xcb, 0xbd, 0xc7, 0x44, 0x78, 0xb9, 0xf7, 0x98, 0x48, 0x09, 0xd5, 0x67, 0x7d, 0x3d, - 0x78, 0xd3, 0x81, 0xb7, 0x1f, 0xf4, 0x0c, 0xe8, 0x4e, 0xc0, 0x5b, 0x70, 0xca, 0x79, 0x1f, 0x51, - 0xe9, 0x18, 0x66, 0xb3, 0x6d, 0xa0, 0xa9, 0xf8, 0xeb, 0x30, 0xe9, 0x34, 0x39, 0x4f, 0x39, 0x7e, - 0x4f, 0x81, 0x8e, 0x1c, 0x4f, 0xb7, 0xc9, 0x5d, 0x46, 0x5b, 0xfb, 0x32, 0x06, 0xd3, 0x8e, 0xb8, - 0xde, 0x3c, 0xd2, 0xb9, 0x43, 0x46, 0x0b, 0xc2, 0x96, 0xd2, 0xa4, 0x65, 0xfe, 0xfc, 0xd9, 0xac, - 0xd3, 0xba, 0x41, 0xc9, 0xb4, 0x20, 0x6c, 0x2e, 0xf1, 0x7a, 0xee, 0xfa, 0xb3, 0x20, 0x1c, 0x3c, - 0xe2, 0xf5, 0xe8, 0x72, 0x43, 0xf5, 0xc8, 0x11, 0x24, 0x5e, 0xaf, 0x4a, 0x59, 0xb6, 0x20, 0x1c, - 0x46, 0xe2, 0xf5, 0x6a, 0x94, 0x6f, 0x0b, 0xc2, 0xd6, 0x13, 0xaf, 0x77, 0x8d, 0x32, 0x6f, 0x41, - 0xd8, 0x84, 0xe2, 0xf5, 0xbe, 0x49, 0x39, 0xb8, 0x20, 0x1c, 0x55, 0xe2, 0xf5, 0xae, 0x53, 0x36, - 0x2e, 0x08, 0x87, 0x96, 0x78, 0xbd, 0x1b, 0x94, 0x97, 0x8b, 0xe2, 0xf1, 0x25, 0x5e, 0xf1, 0xa6, - 0xcb, 0xd0, 0x45, 0xf1, 0x20, 0x13, 0xaf, 0xf9, 0x2d, 0x97, 0xab, 0x8b, 0xe2, 0x91, 0x26, 0x5e, - 0xf3, 0x96, 0xcb, 0xda, 0x45, 0x71, 0xab, 0x8c, 0xd7, 0xdc, 0x74, 0xf9, 0xbb, 0x28, 0x6e, 0x9a, - 0xf1, 0x9a, 0x75, 0x97, 0xc9, 0x8b, 0xe2, 0xf6, 0x19, 0xaf, 0xb9, 0xe5, 0xbe, 0x43, 0xff, 0x48, - 0xa0, 0x1f, 0x73, 0x08, 0x4a, 0x13, 0xe8, 0x07, 0x7d, 0xa8, 0xa7, 0x09, 0xd4, 0x83, 0x3e, 0xb4, - 0xd3, 0x04, 0xda, 0x41, 0x1f, 0xca, 0x69, 0x02, 0xe5, 0xa0, 0x0f, 0xdd, 0x34, 0x81, 0x6e, 0xd0, - 0x87, 0x6a, 0x9a, 0x40, 0x35, 0xe8, 0x43, 0x33, 0x4d, 0xa0, 0x19, 0xf4, 0xa1, 0x98, 0x26, 0x50, - 0x0c, 0xfa, 0xd0, 0x4b, 0x13, 0xe8, 0x05, 0x7d, 0xa8, 0x35, 0x2f, 0x52, 0x0b, 0xfa, 0xd1, 0x6a, - 0x5e, 0xa4, 0x15, 0xf4, 0xa3, 0xd4, 0xff, 0x8b, 0x94, 0x1a, 0x43, 0x5a, 0x71, 0xab, 0x89, 0x61, - 0xd3, 0xbc, 0xc8, 0x26, 0xe8, 0xc7, 0xa4, 0x79, 0x91, 0x49, 0xd0, 0x8f, 0x45, 0xf3, 0x22, 0x8b, - 0xa0, 0x1f, 0x83, 0x9e, 0x88, 0x0c, 0x72, 0x8f, 0xf8, 0x68, 0xc2, 0x8e, 0x62, 0x18, 0x83, 0x40, - 0x04, 0x06, 0x81, 0x08, 0x0c, 0x02, 0x11, 0x18, 0x04, 0x22, 0x30, 0x08, 0x44, 0x60, 0x10, 0x88, - 0xc0, 0x20, 0x10, 0x81, 0x41, 0x20, 0x0a, 0x83, 0x40, 0x24, 0x06, 0x81, 0x20, 0x06, 0xcd, 0x8b, - 0x07, 0x1e, 0xa0, 0xdf, 0x84, 0x34, 0x2f, 0xee, 0x7c, 0x86, 0x53, 0x08, 0x44, 0xa2, 0x10, 0x08, - 0xa2, 0xd0, 0x47, 0xa8, 0x90, 0xe2, 0x28, 0x84, 0xb7, 0x87, 0xce, 0x6a, 0x06, 0x5a, 0x8b, 0x70, - 0xbe, 0xc2, 0x8f, 0x53, 0x6b, 0x11, 0xf6, 0xa8, 0x07, 0xf1, 0xcc, 0x3b, 0x0b, 0xd5, 0x22, 0xcc, - 0x42, 0xd7, 0x28, 0x87, 0xd6, 0x22, 0x9c, 0xbb, 0xf0, 0x72, 0x6f, 0x7d, 0xd0, 0x24, 0x70, 0x3d, - 0xd2, 0x24, 0x70, 0x23, 0xd2, 0x24, 0x70, 0xd3, 0x45, 0xf0, 0x27, 0x32, 0x7c, 0xd5, 0x45, 0xd0, - 0xf9, 0xb5, 0xfd, 0xe0, 0xd8, 0x9a, 0x02, 0xdc, 0x1d, 0x2a, 0x85, 0xec, 0xda, 0x30, 0x30, 0x5a, - 0xfb, 0x37, 0xb7, 0xf9, 0xbd, 0xaa, 0xd2, 0xb0, 0xfb, 0x37, 0x0c, 0xe2, 0xf8, 0x5d, 0xe8, 0x3c, - 0x04, 0x37, 0x5a, 0x3d, 0x7b, 0xb6, 0xf0, 0x1b, 0xb6, 0xd2, 0x00, 0xed, 0x56, 0x4f, 0x69, 0xc0, - 0x51, 0x7b, 0xdc, 0x9e, 0x0d, 0xef, 0x69, 0x06, 0x46, 0xd0, 0xdb, 0x03, 0xf7, 0xb4, 0x27, 0x12, - 0x9c, 0xe3, 0xa8, 0x7c, 0x36, 0x3b, 0x06, 0x6f, 0x45, 0xda, 0x31, 0xe0, 0x12, 0xc4, 0xdd, 0x3d, - 0xf8, 0x9a, 0x77, 0xa3, 0x9a, 0xcd, 0x12, 0x71, 0x27, 0xe1, 0xc7, 0x70, 0xd2, 0xbd, 0x03, 0xfb, - 0x91, 0x6d, 0x35, 0xfc, 0x65, 0xa6, 0x5f, 0x6a, 0xae, 0x0a, 0x2f, 0xd1, 0x06, 0x9a, 0xd1, 0x6c, - 0xd5, 0x4a, 0xe8, 0x89, 0xb3, 0x63, 0xbf, 0x32, 0xe8, 0xa1, 0x60, 0xf5, 0x36, 0x9b, 0xc7, 0x61, - 0xef, 0x22, 0x12, 0x56, 0x69, 0x7e, 0xf2, 0x2b, 0x54, 0x9e, 0x5f, 0x82, 0xc9, 0x3b, 0x46, 0x57, - 0xdf, 0xed, 0xec, 0x1b, 0xed, 0x1f, 0xe9, 0x2d, 0xc1, 0x70, 0x8c, 0x18, 0x96, 0x62, 0x4f, 0x2d, - 0xed, 0x9f, 0x4b, 0xf0, 0x02, 0xab, 0xfe, 0x1d, 0x84, 0xfd, 0x0d, 0xc3, 0xaa, 0xe9, 0xdf, 0x86, - 0x09, 0x1d, 0x03, 0x67, 0xaf, 0x5d, 0xe3, 0xe4, 0x31, 0xd2, 0x57, 0x7d, 0xc9, 0xfe, 0x6c, 0x50, - 0x13, 0xe1, 0x15, 0x07, 0x19, 0xb6, 0x90, 0x79, 0x03, 0xc6, 0x9d, 0xfe, 0x79, 0xbf, 0x26, 0x04, - 0xbf, 0x7e, 0xe3, 0xe3, 0x97, 0xcd, 0x23, 0xe5, 0x26, 0xe7, 0x17, 0xf3, 0xb4, 0xea, 0xab, 0xbe, - 0x44, 0xc8, 0x57, 0x4e, 0x58, 0xf5, 0x9f, 0xcd, 0xa8, 0x70, 0x27, 0x17, 0x61, 0xa2, 0x26, 0xea, - 0xf8, 0xfb, 0x59, 0x85, 0xb1, 0x7a, 0xa7, 0xa5, 0x2b, 0xaf, 0xc2, 0xf8, 0xad, 0xe6, 0x8e, 0x7e, - 0x88, 0x83, 0x1c, 0x3f, 0xb4, 0xfe, 0xa0, 0xf2, 0x3b, 0x51, 0x39, 0x68, 0x1f, 0xb6, 0xba, 0xba, - 0x81, 0xb7, 0xec, 0xf1, 0x1b, 0x74, 0xcb, 0xa6, 0x91, 0xd8, 0xc5, 0xb2, 0xac, 0x06, 0xc7, 0x19, - 0x4a, 0x28, 0x71, 0xf4, 0xf8, 0x9f, 0x1a, 0xb1, 0xbe, 0xca, 0x29, 0xc9, 0xfa, 0xaa, 0xa4, 0xe4, - 0xec, 0x1b, 0x70, 0x4a, 0x78, 0x41, 0x66, 0x49, 0xaa, 0x29, 0x68, 0x7d, 0xd5, 0x52, 0xe3, 0x99, - 0xd8, 0xc3, 0x5f, 0xcf, 0x8c, 0x64, 0xdf, 0x82, 0x8a, 0xf7, 0x55, 0x9a, 0x32, 0x0a, 0xe5, 0x0d, - 0xab, 0xcb, 0xd7, 0xa0, 0x5c, 0x46, 0x7d, 0x66, 0xa6, 0x7e, 0xfa, 0x8b, 0xb9, 0xf1, 0xb2, 0x6e, - 0x9a, 0x7a, 0x17, 0x69, 0x97, 0xcb, 0xd8, 0xf8, 0x1d, 0x78, 0xc1, 0xf7, 0x55, 0x9c, 0x65, 0x5f, - 0xa9, 0x38, 0xf6, 0xd5, 0xaa, 0xc7, 0xbe, 0x5a, 0xb5, 0xed, 0xa5, 0x12, 0xd9, 0xd2, 0xdc, 0x50, - 0x7c, 0x5e, 0x7c, 0xa9, 0x2d, 0x66, 0x0b, 0x75, 0xa3, 0xf4, 0x0e, 0xd6, 0x2d, 0xfb, 0xea, 0xea, - 0x21, 0x5b, 0xa2, 0xe5, 0x52, 0x05, 0xdb, 0x57, 0x7c, 0xed, 0xf7, 0x84, 0x7d, 0x3b, 0x7e, 0x0e, - 0xc2, 0x9d, 0x54, 0xa8, 0xc3, 0x55, 0xdf, 0x4e, 0x0e, 0x98, 0xd3, 0xd4, 0x55, 0xea, 0x70, 0xcd, - 0x57, 0xb7, 0x1d, 0x72, 0xaa, 0xa8, 0x56, 0x5a, 0xc6, 0xcb, 0xc8, 0x46, 0x5e, 0xb9, 0x40, 0x58, - 0xc0, 0xe5, 0x38, 0x0e, 0x90, 0xb3, 0xa2, 0x6c, 0xe4, 0xd1, 0x1d, 0x3a, 0x06, 0xe5, 0x40, 0x83, - 0xe0, 0x28, 0x39, 0x9d, 0x94, 0xf3, 0xa5, 0xeb, 0xb8, 0x93, 0x4a, 0x60, 0x27, 0x21, 0xa1, 0x72, - 0x7a, 0xaa, 0xe4, 0xcb, 0xdb, 0x27, 0x9f, 0xcc, 0x8c, 0x3c, 0x45, 0xd7, 0xdf, 0xd1, 0xf5, 0xf1, - 0x27, 0x33, 0xd2, 0x67, 0xe8, 0xfa, 0x1c, 0x5d, 0x5f, 0xa0, 0xeb, 0xbd, 0xe7, 0x33, 0xd2, 0x63, - 0x74, 0x7d, 0x88, 0xae, 0x3f, 0xa0, 0xeb, 0x09, 0xba, 0x4e, 0x9e, 0x23, 0x7d, 0x74, 0x7d, 0x8c, - 0x7e, 0x7f, 0x86, 0xbe, 0x3f, 0x47, 0xdf, 0x5f, 0xa0, 0xeb, 0xbd, 0x4f, 0x67, 0xa4, 0x47, 0x9f, - 0xce, 0x8c, 0x3c, 0x46, 0xdf, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x5f, 0xbd, 0x69, 0xae, - 0x34, 0x00, 0x00, + // 3084 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xd7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x12, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, + 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, + 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, + 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, + 0x30, 0xbb, 0xdb, 0x39, 0xda, 0xe9, 0xf4, 0x16, 0x4f, 0x8c, 0x5e, 0x73, 0x4f, 0xdf, 0xe9, 0x98, + 0x07, 0x8b, 0xe6, 0x81, 0x6e, 0xea, 0x3d, 0x73, 0xe1, 0xb8, 0xdb, 0x31, 0x3b, 0x72, 0xc2, 0xfa, + 0x3b, 0x7d, 0x63, 0xbf, 0x6d, 0x1e, 0x9c, 0xec, 0x2c, 0xec, 0x76, 0x8e, 0x16, 0xf7, 0x3b, 0xfb, + 0x9d, 0x45, 0x5b, 0xb8, 0x73, 0xb2, 0x67, 0xff, 0xb2, 0x7f, 0xd8, 0x7f, 0x39, 0x46, 0xda, 0x3f, + 0x31, 0x4c, 0xd4, 0xdb, 0xad, 0xad, 0x63, 0xb3, 0xde, 0x34, 0xdb, 0x6f, 0xe9, 0xf2, 0x0c, 0x5c, + 0xba, 0xdd, 0xd6, 0x0f, 0x5b, 0x4b, 0x0a, 0xca, 0xa0, 0x2c, 0x2a, 0x27, 0x4e, 0xcf, 0x66, 0x47, + 0x1a, 0x64, 0x8c, 0x4a, 0x0b, 0x8a, 0x94, 0x41, 0x59, 0x89, 0x93, 0x16, 0xa8, 0x74, 0x59, 0xc1, + 0x19, 0x94, 0x1d, 0xe5, 0xa4, 0xcb, 0x54, 0x5a, 0x54, 0x12, 0x19, 0x94, 0xc5, 0x9c, 0xb4, 0x48, + 0xa5, 0x2b, 0xca, 0x68, 0x06, 0x65, 0x2f, 0x73, 0xd2, 0x15, 0x2a, 0x5d, 0x55, 0x2e, 0x65, 0x50, + 0x36, 0xc1, 0x49, 0x57, 0xa9, 0xf4, 0xa6, 0xf2, 0x4c, 0x06, 0x65, 0xaf, 0x70, 0xd2, 0x9b, 0x54, + 0xba, 0xa6, 0x24, 0x33, 0x28, 0x2b, 0x73, 0xd2, 0x35, 0x2a, 0xbd, 0xa5, 0x8c, 0x65, 0x50, 0xf6, + 0x19, 0x4e, 0x7a, 0x4b, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0xf3, 0x0a, 0x64, 0x50, 0x76, 0x8a, 0x88, + 0xdd, 0x41, 0x4f, 0xbe, 0xa4, 0x8c, 0x67, 0x50, 0xf6, 0x12, 0x2f, 0x5f, 0xf2, 0xe4, 0x05, 0x65, + 0x22, 0x83, 0xb2, 0x29, 0x5e, 0x5e, 0xf0, 0xe4, 0xcb, 0xca, 0xe5, 0x0c, 0xca, 0x26, 0x79, 0xf9, + 0xb2, 0x27, 0x2f, 0x2a, 0x93, 0x19, 0x94, 0x1d, 0xe3, 0xe5, 0x45, 0x4f, 0xbe, 0xa2, 0x4c, 0x65, + 0x50, 0x76, 0x82, 0x97, 0xaf, 0x68, 0xef, 0xda, 0xf0, 0x1a, 0x1e, 0xbc, 0xd3, 0x3c, 0xbc, 0x14, + 0xd8, 0x69, 0x1e, 0x58, 0x0a, 0xe9, 0x34, 0x0f, 0x29, 0x05, 0x73, 0x9a, 0x07, 0x93, 0xc2, 0x38, + 0xcd, 0xc3, 0x48, 0x01, 0x9c, 0xe6, 0x01, 0xa4, 0xd0, 0x4d, 0xf3, 0xd0, 0x51, 0xd0, 0xa6, 0x79, + 0xd0, 0x28, 0x5c, 0xd3, 0x3c, 0x5c, 0x14, 0x28, 0x45, 0x00, 0xca, 0x83, 0x48, 0x11, 0x20, 0xf2, + 0xc0, 0x51, 0x04, 0x70, 0x3c, 0x58, 0x14, 0x01, 0x16, 0x0f, 0x10, 0x45, 0x00, 0xc4, 0x83, 0x42, + 0x11, 0xa0, 0xf0, 0x40, 0x20, 0x39, 0xd6, 0xd0, 0x8f, 0x03, 0x72, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, + 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, + 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xce, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x22, 0xc7, 0x70, + 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x43, 0x73, 0xcc, 0x83, 0x77, 0x9a, 0x87, + 0x37, 0x30, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, + 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x2c, 0xc7, 0x70, 0x68, 0x8e, 0xe1, + 0xd0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x66, 0x73, 0xec, 0xcf, + 0x18, 0x64, 0x27, 0xc7, 0xee, 0x36, 0x77, 0x7f, 0xa8, 0xb7, 0x08, 0x14, 0xaa, 0x90, 0x69, 0x97, + 0x2c, 0xe8, 0x52, 0x1e, 0x24, 0xaa, 0x90, 0x6b, 0xbc, 0xbc, 0x40, 0xe5, 0x6e, 0xb6, 0xf1, 0xf2, + 0x65, 0x2a, 0x77, 0xf3, 0x8d, 0x97, 0x17, 0xa9, 0xdc, 0xcd, 0x38, 0x5e, 0xbe, 0x42, 0xe5, 0x6e, + 0xce, 0xf1, 0xf2, 0x55, 0x2a, 0x77, 0xb3, 0x8e, 0x97, 0xdf, 0xa4, 0x72, 0x37, 0xef, 0x78, 0xf9, + 0x1a, 0x95, 0xbb, 0x99, 0xc7, 0xcb, 0x6f, 0xc9, 0x19, 0x31, 0xf7, 0x5c, 0x05, 0x0a, 0x6d, 0x46, + 0xcc, 0x3e, 0x41, 0x63, 0xc9, 0xd3, 0x70, 0xf3, 0x4f, 0xd0, 0x28, 0x78, 0x1a, 0x6e, 0x06, 0x0a, + 0x1a, 0xcb, 0xda, 0x7b, 0x36, 0x7c, 0x86, 0x08, 0x5f, 0x5a, 0x80, 0x4f, 0x62, 0xa0, 0x4b, 0x0b, + 0xd0, 0x49, 0x0c, 0x6c, 0x69, 0x01, 0x36, 0x89, 0x81, 0x2c, 0x2d, 0x40, 0x26, 0x31, 0x70, 0xa5, + 0x05, 0xb8, 0x24, 0x06, 0xaa, 0xb4, 0x00, 0x95, 0xc4, 0xc0, 0x94, 0x16, 0x60, 0x92, 0x18, 0x88, + 0xd2, 0x02, 0x44, 0x12, 0x03, 0x4f, 0x5a, 0x80, 0x47, 0x62, 0xa0, 0x99, 0x11, 0xa1, 0x91, 0x58, + 0x58, 0x66, 0x44, 0x58, 0x24, 0x16, 0x92, 0x19, 0x11, 0x12, 0x89, 0x85, 0x63, 0x46, 0x84, 0x43, + 0x62, 0xa1, 0xf8, 0x52, 0x72, 0x3b, 0xc2, 0x37, 0xcd, 0xee, 0xc9, 0xae, 0x79, 0xa1, 0x8e, 0x30, + 0xcf, 0xb5, 0x0f, 0xe3, 0x05, 0x79, 0xc1, 0x6e, 0x58, 0xd9, 0x8e, 0x53, 0x78, 0x83, 0xe5, 0xb9, + 0xc6, 0x82, 0xb1, 0x30, 0x82, 0x2d, 0x8a, 0x17, 0xea, 0x0d, 0xf3, 0x5c, 0x9b, 0x11, 0xed, 0xdf, + 0xda, 0x57, 0xde, 0xb1, 0x3d, 0x92, 0xdc, 0x8e, 0x8d, 0x84, 0x7f, 0xd8, 0x8e, 0x2d, 0x17, 0x1d, + 0x72, 0x1a, 0xec, 0x5c, 0x74, 0xb0, 0x7d, 0x6f, 0x9d, 0xb8, 0x1d, 0x5c, 0x2e, 0x3a, 0xb4, 0x34, + 0xa8, 0x4f, 0xb7, 0xdf, 0x22, 0x0c, 0x6e, 0xe8, 0xc7, 0x01, 0x0c, 0x1e, 0xb6, 0xdf, 0xca, 0x73, + 0xa5, 0x64, 0x58, 0x06, 0xe3, 0xa1, 0x19, 0x3c, 0x6c, 0xe7, 0x95, 0xe7, 0xca, 0xcb, 0xd0, 0x0c, + 0xfe, 0x0a, 0xfa, 0x21, 0xc2, 0x60, 0x2f, 0xfc, 0xc3, 0xf6, 0x43, 0xb9, 0xe8, 0x90, 0x07, 0x32, + 0x18, 0x0f, 0xc1, 0xe0, 0x38, 0xfd, 0x51, 0x2e, 0x3a, 0xb4, 0xc1, 0x0c, 0xbe, 0x70, 0x37, 0xf3, + 0x3e, 0x82, 0x2b, 0xf5, 0x76, 0xab, 0x76, 0xb4, 0xa3, 0xb7, 0x5a, 0x7a, 0x8b, 0xc4, 0x31, 0xcf, + 0x55, 0x82, 0x10, 0xa8, 0x1f, 0x9f, 0xcd, 0x7a, 0x11, 0x5e, 0x81, 0xa4, 0x13, 0xd3, 0x7c, 0x5e, + 0x39, 0x45, 0x11, 0x15, 0x8e, 0xaa, 0xca, 0xd7, 0x5c, 0xb3, 0xa5, 0xbc, 0xf2, 0x77, 0xc4, 0x54, + 0x39, 0x3a, 0xac, 0xfd, 0xdc, 0xf6, 0xd0, 0xb8, 0xb0, 0x87, 0x8b, 0xb1, 0x3c, 0x64, 0x7c, 0x7b, + 0xc1, 0xe7, 0x1b, 0xe3, 0xd5, 0x09, 0x4c, 0xd5, 0xdb, 0xad, 0xba, 0xde, 0x33, 0xe3, 0xb9, 0xe4, + 0xe8, 0x08, 0xf5, 0x20, 0xcf, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, + 0x35, 0xb8, 0x65, 0x73, 0x61, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0b, 0x5b, 0xd0, 0xcb, 0x21, + 0xba, 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x72, 0xd2, 0x33, 0x3b, 0x47, 0xf2, 0x0c, 0x48, 0x1b, 0x2d, + 0x7b, 0x8d, 0x89, 0xf2, 0x84, 0xe5, 0xd4, 0xc7, 0x67, 0xb3, 0x89, 0x7b, 0x27, 0xed, 0x56, 0x43, + 0xda, 0x68, 0xc9, 0x77, 0x60, 0xf4, 0x3b, 0xcd, 0xc3, 0x13, 0xdd, 0x7e, 0x45, 0x4c, 0x94, 0x8b, + 0x44, 0xe1, 0xe5, 0xd0, 0x3d, 0x22, 0x6b, 0xe1, 0xc5, 0x5d, 0x7b, 0xea, 0x85, 0x7b, 0x6d, 0xc3, + 0x5c, 0x2a, 0xac, 0x35, 0x9c, 0x29, 0xb4, 0xef, 0x03, 0x38, 0x6b, 0x56, 0x9b, 0xbd, 0x03, 0xb9, + 0xee, 0xce, 0xec, 0x2c, 0xbd, 0xf6, 0xf1, 0xd9, 0x6c, 0x31, 0xce, 0xac, 0x37, 0x5a, 0xcd, 0xde, + 0xc1, 0x0d, 0xf3, 0xc1, 0xb1, 0xbe, 0x50, 0x7e, 0x60, 0xea, 0x3d, 0x77, 0xf6, 0x63, 0xf7, 0xad, + 0x47, 0x9e, 0x4b, 0x61, 0x9e, 0x2b, 0xc9, 0x3d, 0xd3, 0x6d, 0xfe, 0x99, 0xf2, 0x4f, 0xfa, 0x3c, + 0x6f, 0xbb, 0x2f, 0x09, 0x21, 0x92, 0x38, 0x2a, 0x92, 0xf8, 0xa2, 0x91, 0x3c, 0x76, 0xeb, 0xa3, + 0xf0, 0xac, 0x78, 0xd0, 0xb3, 0xe2, 0x8b, 0x3c, 0xeb, 0xbf, 0x9d, 0x6c, 0xa5, 0xf9, 0x74, 0xcf, + 0x68, 0x77, 0x8c, 0xaf, 0xdd, 0x5e, 0xd0, 0x53, 0xed, 0x02, 0x4a, 0x89, 0xd3, 0x87, 0xb3, 0x48, + 0x7b, 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, 0x27, 0x7b, 0xf2, 0xaf, 0x4b, 0x4f, 0xf5, 0x55, 0x44, + 0xe8, 0x57, 0x08, 0xa6, 0x7d, 0x95, 0xdc, 0x09, 0xd3, 0xd3, 0x2d, 0xe7, 0xc6, 0xb0, 0xe5, 0x9c, + 0x38, 0xf8, 0x7b, 0x04, 0xcf, 0x09, 0xe5, 0xd5, 0x71, 0x6f, 0x51, 0x70, 0xef, 0x79, 0xff, 0x4a, + 0xb6, 0x22, 0xe3, 0x1d, 0x0b, 0xaf, 0x60, 0xc0, 0xcc, 0x4c, 0x71, 0x2f, 0x0a, 0xb8, 0xcf, 0x50, + 0x83, 0x80, 0x70, 0xb9, 0x0c, 0x20, 0x6e, 0x77, 0x20, 0xb1, 0xdd, 0xd5, 0x75, 0x59, 0x05, 0x69, + 0xab, 0x4b, 0x3c, 0x9c, 0x74, 0xec, 0xb7, 0xba, 0xe5, 0x6e, 0xd3, 0xd8, 0x3d, 0x68, 0x48, 0x5b, + 0x5d, 0xf9, 0x1a, 0xe0, 0x75, 0xa3, 0x45, 0x3c, 0x9a, 0x72, 0x14, 0xd6, 0x8d, 0x16, 0xd1, 0xb0, + 0x64, 0xb2, 0x0a, 0x89, 0x37, 0xf4, 0xe6, 0x1e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x61, 0x8f, + 0x93, 0x05, 0xbf, 0x07, 0x49, 0x77, 0x62, 0x79, 0xce, 0xb2, 0xd8, 0x33, 0xc9, 0xb2, 0xc4, 0xc2, + 0x72, 0x87, 0xbc, 0xb9, 0x6c, 0xa9, 0x3c, 0x0f, 0xa3, 0x8d, 0xf6, 0xfe, 0x81, 0x49, 0x16, 0xf7, + 0xab, 0x39, 0x62, 0xed, 0x3e, 0x8c, 0x51, 0x8f, 0x9e, 0xf2, 0xd4, 0x55, 0xe7, 0xd1, 0xe4, 0x34, + 0xfb, 0x3e, 0x71, 0xf7, 0x2d, 0x9d, 0x21, 0x39, 0x03, 0xc9, 0x37, 0xcd, 0xae, 0x57, 0xf4, 0xdd, + 0x8e, 0x94, 0x8e, 0x6a, 0xef, 0x22, 0x48, 0x56, 0x75, 0xfd, 0xd8, 0x0e, 0xf8, 0x75, 0x48, 0x54, + 0x3b, 0x3f, 0x32, 0x88, 0x83, 0x57, 0x48, 0x44, 0x2d, 0x31, 0x89, 0xa9, 0x2d, 0x96, 0xaf, 0xb3, + 0x71, 0x7f, 0x96, 0xc6, 0x9d, 0xd1, 0xb3, 0x63, 0xaf, 0x71, 0xb1, 0x27, 0x00, 0x5a, 0x4a, 0xbe, + 0xf8, 0xdf, 0x84, 0x71, 0x66, 0x15, 0x39, 0x4b, 0xdc, 0x90, 0x44, 0x43, 0x36, 0x56, 0x96, 0x86, + 0xa6, 0xc3, 0x65, 0x6e, 0x61, 0xcb, 0x94, 0x09, 0x71, 0x88, 0xa9, 0x1d, 0xe6, 0x1c, 0x1f, 0xe6, + 0x60, 0x55, 0x12, 0xea, 0xbc, 0x13, 0x23, 0x3b, 0xdc, 0x73, 0x0e, 0x39, 0xc3, 0x41, 0xb4, 0xfe, + 0xd6, 0x46, 0x01, 0xd7, 0xdb, 0x87, 0xda, 0xab, 0x00, 0x4e, 0xca, 0xd7, 0x8c, 0x93, 0x23, 0x21, + 0xeb, 0x26, 0xdd, 0x00, 0x6f, 0x1f, 0xe8, 0xdb, 0x7a, 0xcf, 0x56, 0xe1, 0xfb, 0x29, 0xab, 0xc0, + 0x80, 0x93, 0x62, 0xb6, 0xfd, 0x4b, 0x91, 0xf6, 0x81, 0x9d, 0x98, 0xa5, 0xaa, 0x38, 0xaa, 0xf7, + 0x75, 0x73, 0xdd, 0xe8, 0x98, 0x07, 0x7a, 0x57, 0xb0, 0x28, 0xc8, 0xcb, 0x5c, 0xc2, 0x4e, 0x16, + 0x5e, 0xa0, 0x16, 0xa1, 0x46, 0xcb, 0xda, 0x87, 0xb6, 0x83, 0x56, 0x2b, 0xe0, 0x7b, 0x40, 0x1c, + 0xe3, 0x01, 0xe5, 0x55, 0xae, 0x7f, 0x1b, 0xe0, 0xa6, 0xf0, 0x69, 0x79, 0x8b, 0xfb, 0xce, 0x19, + 0xec, 0x2c, 0xff, 0x8d, 0xe9, 0xc6, 0xd4, 0x75, 0xf9, 0xa5, 0x48, 0x97, 0x43, 0xba, 0xdb, 0x61, + 0x63, 0x8a, 0xe3, 0xc6, 0xf4, 0x4f, 0xb4, 0xe3, 0xb0, 0x86, 0xab, 0xfa, 0x5e, 0xf3, 0xe4, 0xd0, + 0x94, 0x5f, 0x8e, 0xc4, 0xbe, 0x84, 0x2a, 0xd4, 0xd5, 0x62, 0x5c, 0xf8, 0x4b, 0x52, 0xb9, 0x4c, + 0xdd, 0xbd, 0x39, 0x04, 0x05, 0x4a, 0x52, 0xa5, 0x42, 0xcb, 0x76, 0xf2, 0xbd, 0x87, 0xb3, 0xe8, + 0x83, 0x87, 0xb3, 0x23, 0xda, 0xef, 0x10, 0x5c, 0x21, 0x9a, 0x0c, 0x71, 0x6f, 0x08, 0xce, 0x5f, + 0x75, 0x6b, 0x46, 0x50, 0x04, 0xfe, 0x6b, 0xe4, 0xfd, 0x2b, 0x02, 0xc5, 0xe7, 0xab, 0x1b, 0xef, + 0x7c, 0x2c, 0x97, 0x4b, 0xa8, 0xf6, 0xbf, 0x8f, 0xf9, 0x7d, 0x18, 0xdd, 0x6e, 0x1f, 0xe9, 0x5d, + 0xeb, 0x4d, 0x60, 0xfd, 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, + 0x15, 0x64, 0x05, 0x12, 0xd5, 0xa6, 0xd9, 0xb4, 0x3d, 0x98, 0xa0, 0xf5, 0xb5, 0x69, 0x36, 0xb5, + 0x65, 0x98, 0xd8, 0x7c, 0x50, 0x7b, 0xdb, 0xd4, 0x8d, 0x56, 0x73, 0xe7, 0x50, 0x3c, 0x03, 0x75, + 0xfb, 0xd5, 0xa5, 0xdc, 0x68, 0xb2, 0x95, 0x3a, 0x45, 0xa5, 0x84, 0xed, 0xcf, 0x5b, 0x30, 0xb9, + 0x65, 0xb9, 0x6d, 0xdb, 0xd9, 0x66, 0x19, 0x40, 0x9b, 0x7c, 0x23, 0xc4, 0xce, 0xda, 0x40, 0x9b, + 0x42, 0xfb, 0x88, 0x69, 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x97, 0x48, 0x4e, 0xa6, 0xae, + 0xe4, 0x12, 0x49, 0x48, 0x5d, 0x26, 0xeb, 0xfe, 0x0d, 0x43, 0xca, 0x69, 0x75, 0xaa, 0xfa, 0x5e, + 0xdb, 0x68, 0x9b, 0xfe, 0x7e, 0x95, 0x7a, 0x2c, 0x7f, 0x13, 0xc6, 0xac, 0x90, 0xda, 0xbf, 0x08, + 0x60, 0xd7, 0x48, 0x8b, 0x22, 0x4c, 0x41, 0x06, 0x6c, 0xea, 0x78, 0x36, 0xf2, 0x6d, 0xc0, 0xf5, + 0xfa, 0x26, 0x79, 0xb9, 0x15, 0x07, 0x9a, 0x6e, 0xea, 0xbd, 0x5e, 0x73, 0x5f, 0x27, 0xbf, 0xc8, + 0x58, 0x6f, 0xbf, 0x61, 0x4d, 0x20, 0x17, 0x41, 0xaa, 0x6f, 0x92, 0x86, 0x77, 0x2e, 0xce, 0x34, + 0x0d, 0xa9, 0xbe, 0x99, 0xfe, 0x0b, 0x82, 0xcb, 0xdc, 0xa8, 0xac, 0xc1, 0x84, 0x33, 0xc0, 0x3c, + 0xee, 0xa5, 0x06, 0x37, 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, 0xf4, 0x3a, 0x4c, 0x09, 0xe3, 0xf2, + 0x02, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, + 0x79, 0x0a, 0xc6, 0xb7, 0xef, 0xdf, 0xad, 0xfd, 0xa0, 0x5e, 0x7b, 0x73, 0xbb, 0x56, 0x4d, 0x21, + 0xed, 0x0f, 0x08, 0xc6, 0x49, 0xdb, 0xba, 0xdb, 0x39, 0xd6, 0xe5, 0x32, 0xa0, 0x75, 0xc2, 0xa0, + 0x27, 0xf3, 0x1b, 0xad, 0xcb, 0x8b, 0x80, 0xca, 0xf1, 0xa1, 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, + 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x68, 0xff, 0xc2, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x1a, + 0xff, 0xdd, 0x54, 0x1a, 0x5b, 0x2a, 0x2c, 0x17, 0x17, 0xac, 0x7f, 0x28, 0x25, 0xaf, 0xf1, 0x9f, + 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, + 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, + 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, + 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, + 0xd0, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x60, 0xca, 0xd9, 0x8f, 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, + 0xf4, 0xae, 0xfc, 0x0d, 0x98, 0x70, 0x86, 0x9c, 0xaf, 0x9c, 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, + 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x80, 0x69, 0x67, 0xa0, 0xde, 0x3c, 0xd2, 0xb9, 0x4b, 0x46, 0xf3, + 0xc2, 0x91, 0xd2, 0xa4, 0x65, 0xde, 0x3f, 0x9b, 0x75, 0x46, 0xd7, 0x29, 0x99, 0xe6, 0x85, 0xc3, + 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0xcc, 0x0b, 0x17, 0x8f, 0x78, 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, + 0x15, 0x24, 0x5e, 0xaf, 0x4a, 0x59, 0x36, 0x2f, 0x5c, 0x46, 0xe2, 0xf5, 0x6a, 0x94, 0x6f, 0xf3, + 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x9b, 0x32, 0x6f, 0x5e, 0x38, 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, + 0x38, 0x2f, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x9c, 0x17, 0x2e, 0x2d, 0xf1, 0x7a, 0x1b, + 0x94, 0x97, 0x59, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xc7, 0x63, 0x68, 0x56, 0xbc, 0xc8, 0xc4, 0x6b, + 0x7e, 0xdb, 0xe3, 0x6a, 0x56, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, 0xe1, 0xb1, 0x36, 0x2b, 0x1e, 0x95, + 0xf1, 0x9a, 0x9b, 0x1e, 0x7f, 0xb3, 0xe2, 0xa1, 0x19, 0xaf, 0x59, 0xf7, 0x98, 0x9c, 0x15, 0x8f, + 0xcf, 0x78, 0xcd, 0x2d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, + 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, + 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, + 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, + 0x6b, 0x4e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x4e, 0xa4, 0x15, 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, + 0x63, 0xfd, 0xb3, 0xd9, 0x51, 0x6b, 0x88, 0x61, 0xd3, 0x9c, 0xc8, 0x26, 0x08, 0x62, 0xd2, 0x9c, + 0xc8, 0x24, 0x08, 0x62, 0xd1, 0x9c, 0xc8, 0x22, 0x08, 0x62, 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, + 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, + 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, + 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x39, 0xf1, 0xc2, 0x03, 0x04, 0x15, 0xa4, 0x39, 0xf1, 0xe4, + 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, + 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x6a, 0x8c, 0xfb, 0x15, 0x41, 0x9c, 0x5a, 0x8d, 0x71, 0x46, 0x3d, + 0x88, 0x67, 0xfe, 0x2a, 0x54, 0x8b, 0x51, 0x85, 0x6e, 0x53, 0x0e, 0xad, 0xc6, 0xb8, 0x77, 0xe1, + 0xe7, 0xde, 0xda, 0xa0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, 0x11, 0xab, 0x08, 0xdc, 0xf1, 0x10, + 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0x6d, 0x3f, 0x38, 0xb6, 0x4a, 0x80, 0x77, 0x42, + 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x46, 0x4b, 0xbe, 0xcb, 0x9f, 0x55, 0x95, 0x86, 0x3d, + 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0x73, 0x80, 0x37, 0x5a, 0x3d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, + 0x69, 0x58, 0x62, 0xb9, 0x01, 0x97, 0x6c, 0xf5, 0x9e, 0x0d, 0xef, 0x45, 0x16, 0xae, 0x36, 0xc8, + 0x4c, 0xda, 0x23, 0x04, 0x19, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, + 0x82, 0x78, 0xa7, 0x07, 0xff, 0xef, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x09, 0x4c, + 0x7a, 0x4f, 0x60, 0x7f, 0xb2, 0xad, 0x44, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0x8a, 0xb0, 0x89, 0x36, + 0xd0, 0x8c, 0x66, 0xab, 0x56, 0x82, 0xa9, 0x7a, 0xc7, 0xde, 0x32, 0xe8, 0xb5, 0x3b, 0x46, 0x6f, + 0xb3, 0x79, 0x1c, 0xb5, 0x17, 0x91, 0xb4, 0x5a, 0xf3, 0xd3, 0x5f, 0xcf, 0x8e, 0x68, 0x2f, 0xc3, + 0xc4, 0x3d, 0xa3, 0xab, 0xef, 0x76, 0xf6, 0x8d, 0xf6, 0x8f, 0xf5, 0x96, 0x60, 0x38, 0xe6, 0x1a, + 0x96, 0x12, 0x8f, 0x2d, 0xed, 0x5f, 0x20, 0xb8, 0xca, 0xaa, 0x7f, 0xb7, 0x6d, 0x1e, 0x6c, 0x18, + 0x56, 0x4f, 0xff, 0x2a, 0x24, 0x75, 0x02, 0x9c, 0xfd, 0xee, 0x1a, 0x77, 0x3f, 0x23, 0x03, 0xd5, + 0x17, 0xec, 0x7f, 0x1b, 0xd4, 0x44, 0xd8, 0xe2, 0x70, 0x97, 0x2d, 0xa4, 0xaf, 0xc3, 0xa8, 0x33, + 0x3f, 0xef, 0xd7, 0x65, 0xc1, 0xaf, 0xdf, 0x06, 0xf8, 0x65, 0xf3, 0x48, 0xbe, 0xc3, 0xf9, 0xc5, + 0x7c, 0xad, 0x06, 0xaa, 0x2f, 0xb8, 0xe4, 0x2b, 0x27, 0xad, 0xfe, 0xcf, 0x66, 0x54, 0xb4, 0x93, + 0x59, 0x48, 0xd6, 0x44, 0x9d, 0x60, 0x3f, 0xab, 0x90, 0xa8, 0x77, 0x5a, 0xba, 0xfc, 0x1c, 0x8c, + 0xbe, 0xd1, 0xdc, 0xd1, 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, 0x3c, 0x24, 0x2b, 0x07, 0xed, 0xc3, + 0x56, 0x57, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x4a, + 0xbd, 0x63, 0x94, 0x1f, 0x98, 0x6c, 0xdd, 0x58, 0x10, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb5, 0xb2, + 0xd1, 0x52, 0x28, 0x8f, 0x7e, 0x7c, 0x36, 0x8b, 0xb6, 0xe9, 0xf6, 0xf9, 0x26, 0x3c, 0x4f, 0xd2, + 0xc7, 0x37, 0x55, 0x21, 0x6a, 0xaa, 0x31, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x61, 0x4d, 0x67, 0x04, + 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x10, + 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x46, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x18, + 0x67, 0x12, 0x56, 0x1e, 0x05, 0xb4, 0x9e, 0x1a, 0xb1, 0xfe, 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, + 0x25, 0xe5, 0xae, 0xc3, 0x94, 0xb0, 0x7d, 0x69, 0x49, 0xaa, 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0xc6, + 0xd3, 0x89, 0xf7, 0x7e, 0xa3, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, 0xbf, 0xd1, 0x29, 0x5f, 0x02, 0x69, + 0xdd, 0x9a, 0xf2, 0x79, 0x90, 0xca, 0xe5, 0x14, 0x4a, 0x4f, 0xfd, 0xec, 0x97, 0x99, 0xf1, 0xb2, + 0x6e, 0x9a, 0x7a, 0xf7, 0xbe, 0x6e, 0x96, 0xcb, 0xc4, 0xf8, 0x35, 0xb8, 0x1a, 0xb8, 0x51, 0x6a, + 0xd9, 0x57, 0x2a, 0x8e, 0x7d, 0xb5, 0xea, 0xb3, 0xaf, 0x56, 0x6d, 0x7b, 0x54, 0x72, 0x0f, 0x9c, + 0xd7, 0xe5, 0x80, 0x6d, 0x49, 0xa5, 0xc5, 0x1c, 0x70, 0xaf, 0x97, 0x5e, 0x23, 0xba, 0xe5, 0x40, + 0x5d, 0x3d, 0xe2, 0xc0, 0xba, 0x5c, 0xaa, 0x10, 0xfb, 0x4a, 0xa0, 0xfd, 0x9e, 0x70, 0xaa, 0xca, + 0xbf, 0x21, 0xc8, 0x24, 0x15, 0xea, 0x70, 0x35, 0x70, 0x92, 0x03, 0xe6, 0xae, 0x7b, 0x95, 0x3a, + 0x5c, 0x0b, 0xd4, 0x6d, 0x47, 0xdc, 0xf9, 0xaa, 0x95, 0x16, 0xc9, 0x4b, 0x7e, 0x7d, 0x49, 0xbe, + 0xea, 0xe6, 0x28, 0x57, 0x81, 0x49, 0x80, 0x5c, 0xad, 0x52, 0x85, 0x18, 0x94, 0x43, 0x0d, 0xc2, + 0xa3, 0xe4, 0x5a, 0x96, 0x5e, 0x27, 0x93, 0x54, 0x42, 0x27, 0x89, 0x08, 0x95, 0x6b, 0x5e, 0xde, + 0x3e, 0x3d, 0x57, 0x47, 0x1e, 0x9f, 0xab, 0x23, 0xff, 0x38, 0x57, 0x47, 0x3e, 0x39, 0x57, 0xd1, + 0x67, 0xe7, 0x2a, 0xfa, 0xfc, 0x5c, 0x45, 0x5f, 0x9c, 0xab, 0xe8, 0x9d, 0xbe, 0x8a, 0x3e, 0xe8, + 0xab, 0xe8, 0xc3, 0xbe, 0x8a, 0xfe, 0xd8, 0x57, 0xd1, 0xa3, 0xbe, 0x8a, 0x4e, 0xfb, 0xea, 0xc8, + 0xe3, 0xbe, 0x3a, 0xf2, 0x49, 0x5f, 0x45, 0x9f, 0xf5, 0xd5, 0x91, 0xcf, 0xfb, 0x2a, 0xfa, 0xa2, + 0xaf, 0xa2, 0x77, 0x3e, 0x55, 0xd1, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0x7f, 0x02, + 0x00, 0x00, 0xff, 0xff, 0x43, 0x21, 0x03, 0x1c, 0x4c, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto index 110d9b16..1d7168a0 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go index 531ef799..d2f7a8e8 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go @@ -67,12 +67,19 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -87,21 +94,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -121,24 +132,28 @@ func TestNidOptNativeProto(t *testing.T) { } func TestNidOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,11 +172,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -171,11 +186,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -189,21 +204,25 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -223,24 +242,28 @@ func TestNinOptNativeProto(t *testing.T) { } func TestNinOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -259,11 +282,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -273,11 +296,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -291,21 +314,25 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { } func TestNidRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -325,24 +352,28 @@ func TestNidRepNativeProto(t *testing.T) { } func TestNidRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -361,11 +392,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -375,11 +406,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -393,21 +424,25 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { } func TestNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -427,24 +462,28 @@ func TestNinRepNativeProto(t *testing.T) { } func TestNinRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -463,11 +502,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -477,11 +516,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -495,21 +534,25 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { } func TestNidRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -529,24 +572,28 @@ func TestNidRepPackedNativeProto(t *testing.T) { } func TestNidRepPackedNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -565,11 +612,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -579,11 +626,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -597,21 +644,25 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNinRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -631,24 +682,28 @@ func TestNinRepPackedNativeProto(t *testing.T) { } func TestNinRepPackedNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -667,11 +722,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -681,11 +736,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -699,21 +754,25 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNidOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -733,24 +792,28 @@ func TestNidOptStructProto(t *testing.T) { } func TestNidOptStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -769,11 +832,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -783,11 +846,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -801,21 +864,25 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { } func TestNinOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -835,24 +902,28 @@ func TestNinOptStructProto(t *testing.T) { } func TestNinOptStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -871,11 +942,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -885,11 +956,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -903,21 +974,25 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { } func TestNidRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -937,24 +1012,28 @@ func TestNidRepStructProto(t *testing.T) { } func TestNidRepStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -973,11 +1052,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -987,11 +1066,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -1005,21 +1084,25 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { } func TestNinRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1039,24 +1122,28 @@ func TestNinRepStructProto(t *testing.T) { } func TestNinRepStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1075,11 +1162,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1089,11 +1176,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -1107,21 +1194,25 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { } func TestNidEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1141,24 +1232,28 @@ func TestNidEmbeddedStructProto(t *testing.T) { } func TestNidEmbeddedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1177,11 +1272,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1191,11 +1286,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -1209,21 +1304,25 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1243,24 +1342,28 @@ func TestNinEmbeddedStructProto(t *testing.T) { } func TestNinEmbeddedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1279,11 +1382,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1293,11 +1396,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -1311,21 +1414,25 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNidNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1345,24 +1452,28 @@ func TestNidNestedStructProto(t *testing.T) { } func TestNidNestedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1381,11 +1492,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1395,11 +1506,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1413,21 +1524,25 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { } func TestNinNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1447,24 +1562,28 @@ func TestNinNestedStructProto(t *testing.T) { } func TestNinNestedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1483,11 +1602,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1497,11 +1616,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1515,21 +1634,25 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { } func TestNidOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1549,24 +1672,28 @@ func TestNidOptCustomProto(t *testing.T) { } func TestNidOptCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1585,11 +1712,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1599,11 +1726,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1617,21 +1744,25 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { } func TestCustomDashProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1651,24 +1782,28 @@ func TestCustomDashProto(t *testing.T) { } func TestCustomDashMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1687,11 +1822,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1701,11 +1836,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1719,21 +1854,25 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { } func TestNinOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1753,24 +1892,28 @@ func TestNinOptCustomProto(t *testing.T) { } func TestNinOptCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1789,11 +1932,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1803,11 +1946,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1821,21 +1964,25 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { } func TestNidRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1855,24 +2002,28 @@ func TestNidRepCustomProto(t *testing.T) { } func TestNidRepCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1891,11 +2042,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1905,11 +2056,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1923,21 +2074,25 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { } func TestNinRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1957,24 +2112,28 @@ func TestNinRepCustomProto(t *testing.T) { } func TestNinRepCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1993,11 +2152,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2007,11 +2166,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -2025,21 +2184,25 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { } func TestNinOptNativeUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2059,24 +2222,28 @@ func TestNinOptNativeUnionProto(t *testing.T) { } func TestNinOptNativeUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2095,11 +2262,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2109,11 +2276,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -2127,21 +2294,25 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { } func TestNinOptStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2161,24 +2332,28 @@ func TestNinOptStructUnionProto(t *testing.T) { } func TestNinOptStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2197,11 +2372,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2211,11 +2386,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -2229,21 +2404,25 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2263,24 +2442,28 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { } func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2299,11 +2482,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2313,11 +2496,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -2331,21 +2514,25 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestNinNestedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2365,24 +2552,28 @@ func TestNinNestedStructUnionProto(t *testing.T) { } func TestNinNestedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2401,11 +2592,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2415,11 +2606,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -2433,21 +2624,25 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { } func TestTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2467,24 +2662,28 @@ func TestTreeProto(t *testing.T) { } func TestTreeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2503,11 +2702,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2517,11 +2716,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -2535,21 +2734,25 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { } func TestOrBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2569,24 +2772,28 @@ func TestOrBranchProto(t *testing.T) { } func TestOrBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2605,11 +2812,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2619,11 +2826,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -2637,21 +2844,25 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { } func TestAndBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2671,24 +2882,28 @@ func TestAndBranchProto(t *testing.T) { } func TestAndBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2707,11 +2922,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2721,11 +2936,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2739,21 +2954,25 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { } func TestLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2773,24 +2992,28 @@ func TestLeafProto(t *testing.T) { } func TestLeafMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2809,11 +3032,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2823,11 +3046,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2841,21 +3064,25 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { } func TestDeepTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2875,24 +3102,28 @@ func TestDeepTreeProto(t *testing.T) { } func TestDeepTreeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2911,11 +3142,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2925,11 +3156,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2943,21 +3174,25 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { } func TestADeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2977,24 +3212,28 @@ func TestADeepBranchProto(t *testing.T) { } func TestADeepBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3013,11 +3252,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3027,11 +3266,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -3045,21 +3284,25 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { } func TestAndDeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3079,24 +3322,28 @@ func TestAndDeepBranchProto(t *testing.T) { } func TestAndDeepBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3115,11 +3362,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3129,11 +3376,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -3147,21 +3394,25 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { } func TestDeepLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3181,24 +3432,28 @@ func TestDeepLeafProto(t *testing.T) { } func TestDeepLeafMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3217,11 +3472,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3231,11 +3486,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -3249,21 +3504,25 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { } func TestNilProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3283,24 +3542,28 @@ func TestNilProto(t *testing.T) { } func TestNilMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3319,11 +3582,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3333,11 +3596,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -3351,21 +3614,25 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { } func TestNidOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3385,24 +3652,28 @@ func TestNidOptEnumProto(t *testing.T) { } func TestNidOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3421,11 +3692,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3435,11 +3706,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -3453,21 +3724,25 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3487,24 +3762,28 @@ func TestNinOptEnumProto(t *testing.T) { } func TestNinOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3523,11 +3802,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3537,11 +3816,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -3555,21 +3834,25 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { } func TestNidRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3589,24 +3872,28 @@ func TestNidRepEnumProto(t *testing.T) { } func TestNidRepEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3625,11 +3912,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3639,11 +3926,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -3657,21 +3944,25 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { } func TestNinRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3691,24 +3982,28 @@ func TestNinRepEnumProto(t *testing.T) { } func TestNinRepEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3727,11 +4022,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3741,11 +4036,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -3759,21 +4054,25 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3793,24 +4092,28 @@ func TestNinOptEnumDefaultProto(t *testing.T) { } func TestNinOptEnumDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +4132,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +4146,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -3861,21 +4164,25 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3895,24 +4202,28 @@ func TestAnotherNinOptEnumProto(t *testing.T) { } func TestAnotherNinOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3931,11 +4242,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3945,11 +4256,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -3963,21 +4274,25 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3997,24 +4312,28 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { } func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4033,11 +4352,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4047,11 +4366,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -4065,21 +4384,25 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestTimerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4099,24 +4422,28 @@ func TestTimerProto(t *testing.T) { } func TestTimerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4135,11 +4462,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4149,11 +4476,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -4167,21 +4494,25 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { } func TestMyExtendableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4201,24 +4532,28 @@ func TestMyExtendableProto(t *testing.T) { } func TestMyExtendableMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4237,11 +4572,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4251,11 +4586,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -4269,21 +4604,25 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { } func TestOtherExtenableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4303,24 +4642,28 @@ func TestOtherExtenableProto(t *testing.T) { } func TestOtherExtenableMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4339,11 +4682,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4353,11 +4696,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -4371,21 +4714,25 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { } func TestNestedDefinitionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4405,24 +4752,28 @@ func TestNestedDefinitionProto(t *testing.T) { } func TestNestedDefinitionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4441,11 +4792,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4455,11 +4806,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -4473,21 +4824,25 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4507,24 +4862,28 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { } func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4543,11 +4902,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4557,11 +4916,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -4575,21 +4934,25 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4609,24 +4972,28 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4645,11 +5012,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4659,11 +5026,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -4677,21 +5044,25 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te } func TestNestedScopeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4711,24 +5082,28 @@ func TestNestedScopeProto(t *testing.T) { } func TestNestedScopeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4747,11 +5122,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4761,11 +5136,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -4779,21 +5154,25 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4813,24 +5192,28 @@ func TestNinOptNativeDefaultProto(t *testing.T) { } func TestNinOptNativeDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4849,11 +5232,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4863,11 +5246,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -4881,21 +5264,25 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { } func TestCustomContainerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4915,24 +5302,28 @@ func TestCustomContainerProto(t *testing.T) { } func TestCustomContainerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4951,11 +5342,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4965,11 +5356,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -4983,21 +5374,25 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { } func TestCustomNameNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5017,24 +5412,28 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { } func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5053,11 +5452,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5067,11 +5466,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -5085,21 +5484,25 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5119,24 +5522,28 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { } func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5155,11 +5562,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5169,11 +5576,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -5187,21 +5594,25 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5221,24 +5632,28 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { } func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5257,11 +5672,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5271,11 +5686,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -5289,21 +5704,25 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5323,24 +5742,28 @@ func TestCustomNameNinStructProto(t *testing.T) { } func TestCustomNameNinStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5359,11 +5782,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5373,11 +5796,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -5391,21 +5814,25 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { } func TestCustomNameCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5425,24 +5852,28 @@ func TestCustomNameCustomTypeProto(t *testing.T) { } func TestCustomNameCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5461,11 +5892,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5475,11 +5906,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -5493,21 +5924,25 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5527,24 +5962,28 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5563,11 +6002,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5577,11 +6016,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -5595,21 +6034,25 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestCustomNameEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5629,24 +6072,28 @@ func TestCustomNameEnumProto(t *testing.T) { } func TestCustomNameEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5665,11 +6112,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5679,11 +6126,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -5697,21 +6144,25 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { } func TestNoExtensionsMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5731,24 +6182,28 @@ func TestNoExtensionsMapProto(t *testing.T) { } func TestNoExtensionsMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5767,11 +6222,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5781,11 +6236,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -5799,21 +6254,25 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { } func TestUnrecognizedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5833,24 +6292,28 @@ func TestUnrecognizedProto(t *testing.T) { } func TestUnrecognizedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5869,11 +6332,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5883,11 +6346,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -5901,21 +6364,25 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5935,24 +6402,28 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { } func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5971,11 +6442,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5985,11 +6456,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -6003,21 +6474,25 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInner_InnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6037,24 +6512,28 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { } func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6073,11 +6552,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6087,11 +6566,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -6105,21 +6584,25 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6139,24 +6622,28 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { } func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6175,11 +6662,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6189,11 +6676,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -6207,21 +6694,25 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6241,24 +6732,28 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6277,11 +6772,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6291,11 +6786,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -6309,21 +6804,25 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { } func TestNodeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6343,24 +6842,28 @@ func TestNodeProto(t *testing.T) { } func TestNodeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6379,11 +6882,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6393,11 +6896,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -6410,136 +6913,796 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } -func TestNidOptNativeJSON(t *testing.T) { +func TestNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinOptNativeJSON(t *testing.T) { + +func TestNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + p := NewPopulatedNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) } } -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } } + b.SetBytes(int64(total / b.N)) } -func TestNidRepPackedNativeJSON(t *testing.T) { + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinRepPackedNativeJSON(t *testing.T) { + +func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) } } -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidOptStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptStruct(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { @@ -7379,13 +8542,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7397,16 +8686,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7418,16 +8707,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7439,16 +8728,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7460,16 +8749,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7481,16 +8770,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7502,16 +8791,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7523,16 +8812,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7544,16 +8833,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7565,16 +8854,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7586,16 +8875,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7607,16 +8896,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7628,16 +8917,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7649,16 +8938,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7670,16 +8959,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7691,16 +8980,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7716,9 +9005,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7733,9 +9022,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7750,9 +9039,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7767,9 +9056,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7784,9 +9073,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7801,9 +9090,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7818,9 +9107,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7835,9 +9124,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7852,9 +9141,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7869,9 +9158,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7886,9 +9175,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7903,9 +9192,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7920,9 +9209,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7937,9 +9226,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7954,9 +9243,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7971,9 +9260,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7988,9 +9277,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8005,9 +9294,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8022,9 +9311,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8039,9 +9328,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8056,9 +9345,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8073,9 +9362,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8090,9 +9379,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8107,9 +9396,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8124,9 +9413,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8141,9 +9430,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8158,9 +9447,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8175,9 +9464,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8192,9 +9481,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8209,9 +9498,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8226,9 +9515,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8243,9 +9532,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8260,9 +9549,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8277,9 +9566,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8294,9 +9583,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8311,9 +9600,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8328,9 +9617,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8345,9 +9634,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8362,9 +9651,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8379,9 +9668,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8396,9 +9685,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8413,9 +9702,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8430,9 +9719,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8447,9 +9736,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8464,9 +9753,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8481,9 +9770,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8498,9 +9787,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8515,9 +9804,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8532,9 +9821,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8549,9 +9838,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8566,9 +9855,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8583,9 +9872,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8600,9 +9889,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8617,9 +9906,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8634,9 +9923,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8651,9 +9940,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8668,9 +9957,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8685,9 +9974,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8702,9 +9991,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8719,9 +10008,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8736,9 +10025,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8753,9 +10042,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8770,9 +10059,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8787,9 +10076,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8804,9 +10093,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8821,9 +10110,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8838,9 +10127,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8855,9 +10144,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8872,9 +10161,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8889,9 +10178,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8906,9 +10195,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8923,9 +10212,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8940,9 +10229,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8957,9 +10246,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8974,9 +10263,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8991,9 +10280,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9008,9 +10297,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9025,9 +10314,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9042,9 +10331,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9059,9 +10348,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9076,9 +10365,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9093,9 +10382,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9110,9 +10399,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9127,9 +10416,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9144,9 +10433,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9161,9 +10450,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9178,9 +10467,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9195,9 +10484,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9212,9 +10501,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9229,9 +10518,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9246,9 +10535,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9263,9 +10552,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9280,9 +10569,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9297,9 +10586,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9314,9 +10603,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9331,9 +10620,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9348,9 +10637,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9365,9 +10654,9 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9382,9 +10671,9 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9399,9 +10688,9 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9416,9 +10705,9 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9433,9 +10722,9 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9450,9 +10739,9 @@ func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9467,9 +10756,9 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9484,9 +10773,9 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9501,9 +10790,213 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9514,13 +11007,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9531,13 +11024,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9548,13 +11041,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9565,13 +11058,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9582,13 +11075,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9599,13 +11092,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9616,13 +11109,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9633,13 +11126,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9650,13 +11143,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9667,13 +11160,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9684,13 +11177,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9701,13 +11194,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9718,13 +11211,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9735,13 +11228,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9752,13 +11245,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9769,13 +11262,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9786,13 +11279,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,13 +11296,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9821,14 +11314,18 @@ func TestNodeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9845,14 +11342,18 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9869,14 +11370,18 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9893,14 +11398,18 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9917,14 +11426,18 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9941,14 +11454,18 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9965,14 +11482,18 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9989,14 +11510,18 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10013,14 +11538,18 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10037,14 +11566,18 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10061,14 +11594,18 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10085,14 +11622,18 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10109,14 +11650,18 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10133,14 +11678,18 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10157,14 +11706,18 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10181,14 +11734,18 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10205,14 +11762,18 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10229,14 +11790,18 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10253,14 +11818,18 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10277,14 +11846,18 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10301,14 +11874,18 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10325,14 +11902,18 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10349,14 +11930,18 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10373,14 +11958,18 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10397,14 +11986,18 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10421,14 +12014,18 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10445,14 +12042,18 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10469,14 +12070,18 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10493,14 +12098,18 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10517,14 +12126,18 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10541,14 +12154,18 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10565,14 +12182,18 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10589,14 +12210,18 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10613,14 +12238,18 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10637,14 +12266,18 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10661,14 +12294,18 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10685,14 +12322,18 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10709,14 +12350,18 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10733,14 +12378,18 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10757,14 +12406,18 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10781,14 +12434,18 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10805,14 +12462,18 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10829,14 +12490,18 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10853,14 +12518,18 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10877,14 +12546,18 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10901,14 +12574,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10925,14 +12602,18 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10949,14 +12630,18 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10973,14 +12658,18 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10997,14 +12686,18 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11021,14 +12714,18 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11045,14 +12742,18 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11069,14 +12770,18 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11093,14 +12798,18 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11117,14 +12826,18 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11141,14 +12854,18 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11165,14 +12882,18 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11189,14 +12910,18 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11213,14 +12938,18 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11237,20 +12966,192 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNodeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNode(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11260,21 +13161,25 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11284,21 +13189,25 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11312,14 +13221,18 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11327,14 +13240,18 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11342,14 +13259,18 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11357,14 +13278,18 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11372,14 +13297,18 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11387,14 +13316,18 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11402,14 +13335,18 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11417,14 +13354,18 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11432,14 +13373,18 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11447,14 +13392,18 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11462,14 +13411,18 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11477,14 +13430,18 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11492,14 +13449,18 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11507,14 +13468,18 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11522,14 +13487,18 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11537,14 +13506,18 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11552,14 +13525,18 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11567,14 +13544,18 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11582,14 +13563,18 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11597,14 +13582,18 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11612,14 +13601,18 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11627,14 +13620,18 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11642,14 +13639,18 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11657,14 +13658,18 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11672,14 +13677,18 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11687,14 +13696,18 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11702,14 +13715,18 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11717,14 +13734,18 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11732,14 +13753,18 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11747,14 +13772,18 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11762,14 +13791,18 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11777,14 +13810,18 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11792,14 +13829,18 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11807,14 +13848,18 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11822,14 +13867,18 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11837,14 +13886,18 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11852,14 +13905,18 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11867,14 +13924,18 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11882,14 +13943,18 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11897,14 +13962,18 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11912,14 +13981,18 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11927,14 +14000,18 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11942,14 +14019,18 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11957,14 +14038,18 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11972,14 +14057,18 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11987,14 +14076,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12002,14 +14095,18 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12017,14 +14114,18 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12032,14 +14133,18 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12047,14 +14152,18 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12062,14 +14171,18 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12077,14 +14190,18 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12092,14 +14209,18 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12107,14 +14228,18 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12122,14 +14247,18 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12137,14 +14266,18 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12152,14 +14285,18 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12167,14 +14304,18 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12182,14 +14323,18 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12197,14 +14342,18 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12212,14 +14361,18 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12227,14 +14380,132 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,6 +14960,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -13302,7 +15621,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13313,9 +15710,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13326,9 +15723,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13339,9 +15736,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13352,9 +15749,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13365,9 +15762,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13378,9 +15775,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13391,9 +15788,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13404,9 +15801,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13417,9 +15814,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13430,9 +15827,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13443,9 +15840,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13456,9 +15853,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13469,9 +15866,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13482,9 +15879,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13500,13 +15897,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13536,13 +15933,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13572,13 +15969,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13608,13 +16005,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13644,13 +16041,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13680,13 +16077,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13716,13 +16113,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13752,13 +16149,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13788,13 +16185,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13824,13 +16221,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13860,13 +16257,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13896,13 +16293,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13932,13 +16329,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13968,13 +16365,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14004,13 +16401,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14040,13 +16437,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14076,13 +16473,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14112,13 +16509,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14148,13 +16545,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14184,13 +16581,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14220,13 +16617,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14256,13 +16653,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14292,13 +16689,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14328,13 +16725,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14364,13 +16761,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14400,13 +16797,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14436,13 +16833,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14472,13 +16869,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14508,13 +16905,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14544,13 +16941,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14580,13 +16977,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14616,13 +17013,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14652,13 +17049,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14688,13 +17085,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14724,13 +17121,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14760,13 +17157,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14796,13 +17193,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14832,13 +17229,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14868,13 +17265,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14904,13 +17301,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14940,13 +17337,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14976,13 +17373,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15012,13 +17409,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15048,13 +17445,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15084,13 +17481,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15120,13 +17517,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15156,13 +17553,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15192,13 +17589,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15228,13 +17625,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15264,13 +17661,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15300,13 +17697,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15336,13 +17733,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15372,13 +17769,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15408,13 +17805,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15444,13 +17841,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15480,13 +17877,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15516,13 +17913,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15552,13 +17949,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15588,13 +17985,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15624,13 +18021,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15660,13 +18057,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15696,13 +18093,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15727,6 +18124,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -16285,6 +18898,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go new file mode 100644 index 00000000..4112884a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go @@ -0,0 +1,77 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) MarshalTo(data []byte) (n int, err error) { + return r.protoType().MarshalTo(data) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go index a4cecca0..506e3bbc 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -101,7 +107,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -280,21 +288,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -303,21 +311,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -326,21 +334,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -349,21 +357,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -372,19 +380,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -393,19 +401,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -414,16 +422,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -432,16 +440,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -450,16 +458,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -468,16 +476,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -486,9 +494,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -497,9 +505,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -508,8 +516,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -518,8 +526,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -528,8 +536,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -538,7 +546,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -547,8 +555,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -557,8 +565,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -567,8 +575,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -577,15 +585,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -594,15 +602,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -611,9 +619,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -622,9 +630,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -633,9 +641,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -644,8 +652,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -654,8 +662,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -664,8 +672,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -674,9 +682,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -685,7 +693,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -694,8 +702,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -704,7 +712,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -721,7 +729,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -730,9 +738,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -741,9 +749,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -752,9 +760,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -763,9 +771,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -799,9 +807,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -810,9 +818,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -846,9 +854,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -857,9 +865,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -867,25 +875,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -893,25 +895,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -920,8 +916,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -932,7 +928,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -945,9 +941,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -956,21 +952,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1099,7 +1095,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1108,21 +1104,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1131,21 +1127,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1154,21 +1150,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1177,16 +1173,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1195,10 +1191,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1207,9 +1203,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1220,8 +1216,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1230,7 +1226,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1240,7 +1236,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1254,7 +1250,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1263,7 +1259,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1272,7 +1268,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1283,7 +1279,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1292,7 +1288,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1302,8 +1298,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1311,12 +1307,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1324,7 +1375,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1332,7 +1384,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1340,7 +1393,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1348,7 +1402,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1356,7 +1411,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1364,7 +1420,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/unsafemarshaler/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1372,7 +1429,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/unsafemarshaler/thetest.proto", } func init() { @@ -1438,6 +1496,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4758,19 +4822,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4838,19 +4904,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6459,6 +6527,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6645,393 +6948,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6123 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xde, 0xe1, 0x90, 0x12, 0x75, 0x28, 0x51, 0xd4, 0xac, 0x56, 0xa6, 0xe5, 0xf5, 0x3e, 0x68, - 0x59, 0x96, 0x15, 0x5b, 0xaf, 0xd5, 0xbe, 0xe8, 0xc4, 0x01, 0x5f, 0x2b, 0x6b, 0xab, 0x57, 0x47, - 0x52, 0x62, 0xa7, 0x05, 0x08, 0x2e, 0x39, 0x92, 0x68, 0x53, 0x43, 0x96, 0x43, 0xda, 0xde, 0xfc, - 0x28, 0xd2, 0xa4, 0x4d, 0x93, 0x16, 0x7d, 0xa6, 0x45, 0xf3, 0x8e, 0x93, 0x22, 0x8d, 0x93, 0xbe, - 0x92, 0x26, 0x0d, 0x8a, 0xa0, 0x68, 0x0c, 0x14, 0x69, 0xb7, 0x7f, 0x8a, 0x34, 0xbf, 0x8a, 0xa2, - 0x30, 0xf2, 0x02, 0x9a, 0xb6, 0x69, 0x9b, 0x00, 0x06, 0x12, 0x20, 0xf9, 0xd1, 0xfb, 0x9e, 0xb9, - 0x97, 0x43, 0xce, 0xc8, 0x6b, 0x27, 0x59, 0x80, 0x2b, 0xf2, 0x9e, 0xf3, 0x9d, 0x39, 0x73, 0x5e, - 0xf7, 0xcc, 0xbd, 0x97, 0x84, 0xbf, 0x5f, 0x86, 0x0b, 0x87, 0xcd, 0xe6, 0x61, 0xc3, 0x5a, 0x6c, - 0xb5, 0x9b, 0x9d, 0xe6, 0xad, 0xee, 0xc1, 0x62, 0xcd, 0x72, 0xaa, 0xed, 0x7a, 0xab, 0xd3, 0x6c, - 0x2f, 0x90, 0x31, 0x63, 0x9c, 0x72, 0x2c, 0x70, 0x8e, 0xcc, 0x26, 0x4c, 0xdc, 0xa8, 0x37, 0xac, - 0xa2, 0x60, 0xdc, 0xb5, 0x3a, 0xc6, 0x35, 0x88, 0x1e, 0xa0, 0xc1, 0xb4, 0x76, 0x41, 0x9f, 0x4b, - 0xac, 0xcc, 0x2c, 0x28, 0xa0, 0x05, 0x19, 0xb1, 0x83, 0x87, 0x4d, 0x82, 0xc8, 0x7c, 0x3b, 0x0a, - 0xa7, 0x7d, 0xa8, 0x86, 0x01, 0x51, 0xbb, 0x72, 0x8c, 0x25, 0x6a, 0x73, 0x23, 0x26, 0x79, 0x6f, - 0xa4, 0x61, 0xb8, 0x55, 0xa9, 0x3e, 0x53, 0x39, 0xb4, 0xd2, 0x11, 0x32, 0xcc, 0x3f, 0x1a, 0xe7, - 0x00, 0x6a, 0x56, 0xcb, 0xb2, 0x6b, 0x96, 0x5d, 0xbd, 0x9d, 0xd6, 0x91, 0x16, 0x23, 0xa6, 0x67, - 0xc4, 0x78, 0x03, 0x4c, 0xb4, 0xba, 0xb7, 0x1a, 0xf5, 0x6a, 0xd9, 0xc3, 0x06, 0x88, 0x2d, 0x66, - 0xa6, 0x28, 0xa1, 0xe8, 0x32, 0x3f, 0x04, 0xe3, 0xcf, 0x59, 0x95, 0x67, 0xbc, 0xac, 0x09, 0xc2, - 0x9a, 0xc4, 0xc3, 0x1e, 0xc6, 0x02, 0x8c, 0x1e, 0x5b, 0x8e, 0x83, 0x14, 0x28, 0x77, 0x6e, 0xb7, - 0xac, 0x74, 0x94, 0xdc, 0xfd, 0x85, 0x9e, 0xbb, 0x57, 0xef, 0x3c, 0xc1, 0x50, 0x7b, 0x08, 0x64, - 0xe4, 0x60, 0xc4, 0xb2, 0xbb, 0xc7, 0x54, 0x42, 0xac, 0x8f, 0xfd, 0x4a, 0x88, 0x43, 0x95, 0x12, - 0xc7, 0x30, 0x26, 0x62, 0xd8, 0xb1, 0xda, 0xcf, 0xd6, 0xab, 0x56, 0x7a, 0x88, 0x08, 0x78, 0xa8, - 0x47, 0xc0, 0x2e, 0xa5, 0xab, 0x32, 0x38, 0x0e, 0xdd, 0xca, 0x88, 0xf5, 0x7c, 0xc7, 0xb2, 0x9d, - 0x7a, 0xd3, 0x4e, 0x0f, 0x13, 0x21, 0x0f, 0xfa, 0x78, 0xd1, 0x6a, 0xd4, 0x54, 0x11, 0x2e, 0xce, - 0xb8, 0x02, 0xc3, 0xcd, 0x56, 0x07, 0xbd, 0x73, 0xd2, 0x71, 0xe4, 0x9f, 0xc4, 0xca, 0x59, 0xdf, - 0x40, 0xd8, 0xa6, 0x3c, 0x26, 0x67, 0x36, 0xd6, 0x21, 0xe5, 0x34, 0xbb, 0xed, 0xaa, 0x55, 0xae, - 0x36, 0x6b, 0x56, 0xb9, 0x6e, 0x1f, 0x34, 0xd3, 0x23, 0x44, 0xc0, 0xf9, 0xde, 0x1b, 0x21, 0x8c, - 0x05, 0xc4, 0xb7, 0x8e, 0xd8, 0xcc, 0xa4, 0x23, 0x7d, 0x36, 0xa6, 0x60, 0xc8, 0xb9, 0x6d, 0x77, - 0x2a, 0xcf, 0xa7, 0x47, 0x49, 0x84, 0xb0, 0x4f, 0x99, 0x1f, 0xc4, 0x60, 0x3c, 0x4c, 0x88, 0x3d, - 0x06, 0xb1, 0x03, 0x7c, 0x97, 0x28, 0xc0, 0x4e, 0x60, 0x03, 0x8a, 0x91, 0x8d, 0x38, 0xf4, 0x2a, - 0x8d, 0x98, 0x83, 0x84, 0x6d, 0x39, 0x1d, 0xab, 0x46, 0x23, 0x42, 0x0f, 0x19, 0x53, 0x40, 0x41, - 0xbd, 0x21, 0x15, 0x7d, 0x55, 0x21, 0xf5, 0x24, 0x8c, 0x0b, 0x95, 0xca, 0xed, 0x8a, 0x7d, 0xc8, - 0x63, 0x73, 0x31, 0x48, 0x93, 0x85, 0x12, 0xc7, 0x99, 0x18, 0x66, 0x26, 0x2d, 0xe9, 0xb3, 0x51, - 0x04, 0x68, 0xda, 0x56, 0xf3, 0x00, 0xa5, 0x57, 0xb5, 0x81, 0xe2, 0xc4, 0xdf, 0x4a, 0xdb, 0x98, - 0xa5, 0xc7, 0x4a, 0x4d, 0x3a, 0x5a, 0x6d, 0x18, 0xd7, 0xdd, 0x50, 0x1b, 0xee, 0x13, 0x29, 0x9b, - 0x34, 0xc9, 0x7a, 0xa2, 0x6d, 0x1f, 0x92, 0x6d, 0x0b, 0xc7, 0x3d, 0x32, 0x31, 0xbd, 0xb3, 0x11, - 0xa2, 0xc4, 0x42, 0xe0, 0x9d, 0x99, 0x0c, 0x46, 0x6f, 0x6c, 0xac, 0xed, 0xfd, 0x68, 0x3c, 0x00, - 0x62, 0xa0, 0x4c, 0xc2, 0x0a, 0x48, 0x15, 0x1a, 0xe5, 0x83, 0x5b, 0x68, 0x6c, 0xfa, 0x1a, 0x24, - 0x65, 0xf3, 0x18, 0x93, 0x10, 0x73, 0x3a, 0x95, 0x76, 0x87, 0x44, 0x61, 0xcc, 0xa4, 0x1f, 0x8c, - 0x14, 0xe8, 0xa8, 0xc8, 0x90, 0x2a, 0x17, 0x33, 0xf1, 0xdb, 0xe9, 0xab, 0x30, 0x26, 0x5d, 0x3e, - 0x2c, 0x30, 0xf3, 0xfe, 0x21, 0x98, 0xf4, 0x8b, 0x39, 0xdf, 0xf0, 0x47, 0xe9, 0x83, 0x22, 0xe0, - 0x96, 0xd5, 0x46, 0x71, 0x87, 0x25, 0xb0, 0x4f, 0x28, 0xa2, 0x62, 0x8d, 0xca, 0x2d, 0xab, 0x81, - 0xa2, 0x49, 0x9b, 0x4b, 0xae, 0xbc, 0x21, 0x54, 0x54, 0x2f, 0x6c, 0x60, 0x88, 0x49, 0x91, 0xc6, - 0xe3, 0x10, 0x65, 0x25, 0x0e, 0x4b, 0x98, 0x0f, 0x27, 0x01, 0xc7, 0xa2, 0x49, 0x70, 0xc6, 0x7d, - 0x30, 0x82, 0xff, 0x52, 0xdb, 0x0e, 0x11, 0x9d, 0xe3, 0x78, 0x00, 0xdb, 0xd5, 0x98, 0x86, 0x38, - 0x09, 0xb3, 0x9a, 0xc5, 0xa7, 0x06, 0xf1, 0x19, 0x3b, 0xa6, 0x66, 0x1d, 0x54, 0xba, 0x8d, 0x4e, - 0xf9, 0xd9, 0x4a, 0xa3, 0x6b, 0x91, 0x80, 0x41, 0x8e, 0x61, 0x83, 0x6f, 0xc1, 0x63, 0xc6, 0x79, - 0x48, 0xd0, 0xa8, 0xac, 0x23, 0xcc, 0xf3, 0xa4, 0xfa, 0xc4, 0x4c, 0x1a, 0xa8, 0xeb, 0x78, 0x04, - 0x5f, 0xfe, 0x69, 0x07, 0xe5, 0x02, 0x73, 0x2d, 0xb9, 0x04, 0x1e, 0x20, 0x97, 0xbf, 0xaa, 0x16, - 0xbe, 0xfb, 0xfd, 0x6f, 0x4f, 0x8d, 0xc5, 0xcc, 0x17, 0x23, 0x10, 0x25, 0xf9, 0x36, 0x0e, 0x89, - 0xbd, 0xa7, 0x76, 0x4a, 0xe5, 0xe2, 0xf6, 0x7e, 0x7e, 0xa3, 0x94, 0xd2, 0x8c, 0x24, 0x00, 0x19, - 0xb8, 0xb1, 0xb1, 0x9d, 0xdb, 0x4b, 0x45, 0xc4, 0xe7, 0xf5, 0xad, 0xbd, 0x2b, 0xab, 0x29, 0x5d, - 0x00, 0xf6, 0xe9, 0x40, 0xd4, 0xcb, 0x70, 0x69, 0x25, 0x15, 0x43, 0x91, 0x30, 0x4a, 0x05, 0xac, - 0x3f, 0x59, 0x2a, 0x22, 0x8e, 0x21, 0x79, 0x04, 0xf1, 0x0c, 0x1b, 0x63, 0x30, 0x42, 0x46, 0xf2, - 0xdb, 0xdb, 0x1b, 0xa9, 0xb8, 0x90, 0xb9, 0xbb, 0x67, 0xae, 0x6f, 0xad, 0xa5, 0x46, 0x84, 0xcc, - 0x35, 0x73, 0x7b, 0x7f, 0x27, 0x05, 0x42, 0xc2, 0x66, 0x69, 0x77, 0x37, 0xb7, 0x56, 0x4a, 0x25, - 0x04, 0x47, 0xfe, 0xa9, 0xbd, 0xd2, 0x6e, 0x6a, 0x54, 0x52, 0x0b, 0x5d, 0x62, 0x4c, 0x5c, 0xa2, - 0xb4, 0xb5, 0xbf, 0x99, 0x4a, 0x1a, 0x13, 0x30, 0x46, 0x2f, 0xc1, 0x95, 0x18, 0x57, 0x86, 0x90, - 0xa6, 0x29, 0x57, 0x11, 0x2a, 0x65, 0x42, 0x1a, 0x40, 0x1c, 0x46, 0xa6, 0x00, 0x31, 0x12, 0x5d, - 0x28, 0x8a, 0x93, 0x1b, 0xb9, 0x7c, 0x69, 0xa3, 0xbc, 0xbd, 0xb3, 0xb7, 0xbe, 0xbd, 0x95, 0xdb, - 0x40, 0xb6, 0x13, 0x63, 0x66, 0xe9, 0xe7, 0xf7, 0xd7, 0xcd, 0x52, 0x11, 0xd9, 0xcf, 0x33, 0xb6, - 0x53, 0xca, 0xed, 0xa1, 0x31, 0x3d, 0x33, 0x0f, 0x93, 0x7e, 0x75, 0xc6, 0x2f, 0x33, 0x32, 0x9f, - 0xd0, 0xe0, 0xb4, 0x4f, 0xc9, 0xf4, 0xcd, 0xa2, 0x37, 0x43, 0x8c, 0x46, 0x1a, 0x9d, 0x44, 0x1e, - 0xf6, 0xad, 0xbd, 0x24, 0xee, 0x7a, 0x26, 0x12, 0x82, 0xf3, 0x4e, 0xa4, 0x7a, 0x9f, 0x89, 0x14, - 0x8b, 0xe8, 0x09, 0xa7, 0x77, 0x69, 0x90, 0xee, 0x27, 0x3b, 0x20, 0xdf, 0x23, 0x52, 0xbe, 0x3f, - 0xa6, 0x2a, 0x70, 0xb1, 0xff, 0x3d, 0xf4, 0x68, 0xf1, 0x29, 0x0d, 0xa6, 0xfc, 0xfb, 0x0d, 0x5f, - 0x1d, 0x1e, 0x87, 0xa1, 0x63, 0xab, 0x73, 0xd4, 0xe4, 0x73, 0xee, 0xac, 0x4f, 0x25, 0xc7, 0x64, - 0xd5, 0x56, 0x0c, 0xe5, 0x9d, 0x0a, 0xf4, 0x7e, 0x4d, 0x03, 0xd5, 0xa6, 0x47, 0xd3, 0xf7, 0x46, - 0xe0, 0x8c, 0xaf, 0x70, 0x5f, 0x45, 0xef, 0x07, 0xa8, 0xdb, 0xad, 0x6e, 0x87, 0xce, 0xab, 0xb4, - 0xcc, 0x8c, 0x90, 0x11, 0x92, 0xc2, 0xb8, 0x84, 0x74, 0x3b, 0x82, 0xae, 0x13, 0x3a, 0xd0, 0x21, - 0xc2, 0x70, 0xcd, 0x55, 0x34, 0x4a, 0x14, 0x3d, 0xd7, 0xe7, 0x4e, 0x7b, 0xa6, 0xac, 0x25, 0x48, - 0x55, 0x1b, 0x75, 0xcb, 0xee, 0x94, 0x9d, 0x4e, 0xdb, 0xaa, 0x1c, 0xd7, 0xed, 0x43, 0x52, 0x47, - 0xe3, 0xd9, 0xd8, 0x41, 0xa5, 0xe1, 0x58, 0xe6, 0x38, 0x25, 0xef, 0x72, 0x2a, 0x46, 0x90, 0xc9, - 0xa2, 0xed, 0x41, 0x0c, 0x49, 0x08, 0x4a, 0x16, 0x88, 0xcc, 0xd7, 0x86, 0x21, 0xe1, 0xe9, 0xce, - 0x8c, 0x8b, 0x30, 0xfa, 0x74, 0xe5, 0xd9, 0x4a, 0x99, 0x77, 0xdc, 0xd4, 0x12, 0x09, 0x3c, 0xb6, - 0xc3, 0xba, 0xee, 0x25, 0x98, 0x24, 0x2c, 0xe8, 0x1e, 0xd1, 0x85, 0xaa, 0x8d, 0x8a, 0xe3, 0x10, - 0xa3, 0xc5, 0x09, 0xab, 0x81, 0x69, 0xdb, 0x98, 0x54, 0xe0, 0x14, 0xe3, 0x32, 0x9c, 0x26, 0x88, - 0x63, 0x54, 0x78, 0xeb, 0xad, 0x86, 0x55, 0xc6, 0xcf, 0x00, 0x0e, 0xa9, 0xa7, 0x42, 0xb3, 0x09, - 0xcc, 0xb1, 0xc9, 0x18, 0xb0, 0x46, 0x8e, 0xb1, 0x06, 0xf7, 0x13, 0xd8, 0xa1, 0x65, 0x5b, 0xed, - 0x4a, 0xc7, 0x2a, 0x5b, 0xbf, 0xd4, 0x45, 0xbc, 0xe5, 0x8a, 0x5d, 0x2b, 0x1f, 0x55, 0x9c, 0xa3, - 0xf4, 0xa4, 0x57, 0xc0, 0xbd, 0x98, 0x77, 0x8d, 0xb1, 0x96, 0x08, 0x67, 0xce, 0xae, 0x3d, 0x81, - 0xf8, 0x8c, 0x2c, 0x4c, 0x11, 0x41, 0xc8, 0x28, 0xe8, 0x9e, 0xcb, 0xd5, 0x23, 0xab, 0xfa, 0x4c, - 0xb9, 0xdb, 0x39, 0xb8, 0x96, 0xbe, 0xcf, 0x2b, 0x81, 0x28, 0xb9, 0x4b, 0x78, 0x0a, 0x98, 0x65, - 0x1f, 0x71, 0x18, 0xbb, 0x30, 0x8a, 0xfd, 0x71, 0x5c, 0x7f, 0x3b, 0x52, 0xbb, 0xd9, 0x26, 0x73, - 0x44, 0xd2, 0x27, 0xb9, 0x3d, 0x46, 0x5c, 0xd8, 0x66, 0x80, 0x4d, 0xd4, 0x9f, 0x66, 0x63, 0xbb, - 0x3b, 0xa5, 0x52, 0xd1, 0x4c, 0x70, 0x29, 0x37, 0x9a, 0x6d, 0x1c, 0x53, 0x87, 0x4d, 0x61, 0xe3, - 0x04, 0x8d, 0xa9, 0xc3, 0x26, 0xb7, 0x30, 0xb2, 0x57, 0xb5, 0x4a, 0x6f, 0x1b, 0x3d, 0xbb, 0xb0, - 0x66, 0xdd, 0x49, 0xa7, 0x24, 0x7b, 0x55, 0xab, 0x6b, 0x94, 0x81, 0x85, 0xb9, 0x83, 0x52, 0xe2, - 0x8c, 0x6b, 0x2f, 0x2f, 0x70, 0xa2, 0xe7, 0x2e, 0x55, 0x28, 0xba, 0x62, 0xeb, 0x76, 0x2f, 0xd0, - 0x90, 0xae, 0xd8, 0xba, 0xad, 0xc2, 0x1e, 0x24, 0x0f, 0x60, 0x6d, 0xab, 0x8a, 0x4c, 0x5e, 0x4b, - 0xdf, 0xe3, 0xe5, 0xf6, 0x10, 0x8c, 0x45, 0x14, 0xc8, 0xd5, 0xb2, 0x65, 0x57, 0x6e, 0x21, 0xdf, - 0x57, 0xda, 0xe8, 0x8d, 0x93, 0x3e, 0xef, 0x65, 0x4e, 0x56, 0xab, 0x25, 0x42, 0xcd, 0x11, 0xa2, - 0x31, 0x0f, 0x13, 0xcd, 0x5b, 0x4f, 0x57, 0x69, 0x70, 0x95, 0x91, 0x9c, 0x83, 0xfa, 0xf3, 0xe9, - 0x19, 0x62, 0xa6, 0x71, 0x4c, 0x20, 0xa1, 0xb5, 0x43, 0x86, 0x8d, 0x87, 0x91, 0x70, 0xe7, 0xa8, - 0xd2, 0x6e, 0x91, 0x49, 0xda, 0x41, 0x46, 0xb5, 0xd2, 0x0f, 0x52, 0x56, 0x3a, 0xbe, 0xc5, 0x87, - 0x8d, 0x12, 0x9c, 0xc7, 0x37, 0x6f, 0x57, 0xec, 0x66, 0xb9, 0xeb, 0x58, 0x65, 0x57, 0x45, 0xe1, - 0x8b, 0x59, 0xac, 0x96, 0x79, 0x96, 0xb3, 0xed, 0x3b, 0xa8, 0x98, 0x71, 0x26, 0xee, 0x9e, 0x27, - 0x61, 0xb2, 0x6b, 0xd7, 0x6d, 0x14, 0xe2, 0x88, 0x82, 0xc1, 0x34, 0x61, 0xd3, 0xff, 0x31, 0xdc, - 0xa7, 0xe9, 0xde, 0xf7, 0x72, 0xd3, 0x20, 0x31, 0x4f, 0x77, 0x7b, 0x07, 0x33, 0x59, 0x18, 0xf5, - 0xc6, 0x8e, 0x31, 0x02, 0x34, 0x7a, 0xd0, 0xec, 0x86, 0x66, 0xd4, 0xc2, 0x76, 0x11, 0xcf, 0x85, - 0x6f, 0x2b, 0xa1, 0x89, 0x0d, 0xcd, 0xc9, 0x1b, 0xeb, 0x7b, 0xa5, 0xb2, 0xb9, 0xbf, 0xb5, 0xb7, - 0xbe, 0x59, 0x4a, 0xe9, 0xf3, 0x23, 0xf1, 0xef, 0x0c, 0xa7, 0xde, 0x81, 0xfe, 0x45, 0x32, 0x5f, - 0x89, 0x40, 0x52, 0xee, 0x83, 0x8d, 0x37, 0xc2, 0x3d, 0xfc, 0xa1, 0xd5, 0xb1, 0x3a, 0xe5, 0xe7, - 0xea, 0x6d, 0x12, 0xce, 0xc7, 0x15, 0xda, 0x49, 0x0a, 0x4f, 0x4c, 0x32, 0x2e, 0xf4, 0x78, 0xff, - 0x56, 0xc4, 0x73, 0x83, 0xb0, 0x18, 0x1b, 0x70, 0x1e, 0x99, 0x0c, 0xf5, 0x9a, 0x76, 0xad, 0xd2, - 0xae, 0x95, 0xdd, 0xe5, 0x82, 0x72, 0xa5, 0x8a, 0xe2, 0xc0, 0x69, 0xd2, 0x99, 0x44, 0x48, 0x39, - 0x6b, 0x37, 0x77, 0x19, 0xb3, 0x5b, 0x62, 0x73, 0x8c, 0x55, 0x89, 0x1a, 0xbd, 0x5f, 0xd4, 0xa0, - 0xde, 0xeb, 0xb8, 0xd2, 0x42, 0x61, 0xd3, 0x69, 0xdf, 0x26, 0xdd, 0x5b, 0xdc, 0x8c, 0xa3, 0x81, - 0x12, 0xfe, 0xfc, 0xfa, 0xf9, 0xc0, 0x6b, 0xc7, 0x7f, 0xd7, 0x61, 0xd4, 0xdb, 0xc1, 0xe1, 0x86, - 0xb8, 0x4a, 0xca, 0xbc, 0x46, 0xaa, 0xc0, 0x03, 0x03, 0xfb, 0xbd, 0x85, 0x02, 0xae, 0xff, 0xd9, - 0x21, 0xda, 0x57, 0x99, 0x14, 0x89, 0xe7, 0x5e, 0x1c, 0x6b, 0x16, 0xed, 0xd6, 0xe3, 0x26, 0xfb, - 0x84, 0x8a, 0xdd, 0xd0, 0xd3, 0x0e, 0x91, 0x3d, 0x44, 0x64, 0xcf, 0x0c, 0x96, 0x7d, 0x73, 0x97, - 0x08, 0x1f, 0xb9, 0xb9, 0x5b, 0xde, 0xda, 0x36, 0x37, 0x73, 0x1b, 0x26, 0x83, 0x1b, 0xf7, 0x42, - 0xb4, 0x51, 0x79, 0xfb, 0x6d, 0x79, 0xa6, 0x20, 0x43, 0x61, 0x0d, 0x8f, 0x24, 0xe0, 0x25, 0x0f, - 0xb9, 0x3e, 0x93, 0xa1, 0xd7, 0x31, 0xf4, 0x17, 0x21, 0x46, 0xec, 0x65, 0x00, 0x30, 0x8b, 0xa5, - 0x4e, 0x19, 0x71, 0x88, 0x16, 0xb6, 0x4d, 0x1c, 0xfe, 0x28, 0xde, 0xe9, 0x68, 0x79, 0x67, 0xbd, - 0x54, 0x40, 0x19, 0x90, 0xb9, 0x0c, 0x43, 0xd4, 0x08, 0x38, 0x35, 0x84, 0x19, 0x10, 0x88, 0x7e, - 0x64, 0x32, 0x34, 0x4e, 0xdd, 0xdf, 0xcc, 0x97, 0xcc, 0x54, 0xc4, 0xeb, 0xde, 0x2f, 0x69, 0x90, - 0xf0, 0x34, 0x54, 0x78, 0x2a, 0xaf, 0x34, 0x1a, 0xcd, 0xe7, 0xca, 0x95, 0x46, 0x1d, 0x55, 0x28, - 0xea, 0x1f, 0x20, 0x43, 0x39, 0x3c, 0x12, 0xd6, 0x7e, 0x3f, 0x91, 0xd8, 0xfc, 0xa8, 0x06, 0x29, - 0xb5, 0x19, 0x53, 0x14, 0xd4, 0x7e, 0xaa, 0x0a, 0x7e, 0x58, 0x83, 0xa4, 0xdc, 0x81, 0x29, 0xea, - 0x5d, 0xfc, 0xa9, 0xaa, 0xf7, 0x21, 0x0d, 0xc6, 0xa4, 0xbe, 0xeb, 0x67, 0x4a, 0xbb, 0x0f, 0xea, - 0x70, 0xda, 0x07, 0x87, 0x0a, 0x10, 0x6d, 0x50, 0x69, 0xcf, 0xfc, 0x68, 0x98, 0x6b, 0x2d, 0xe0, - 0xf9, 0x6f, 0xa7, 0xd2, 0xee, 0xb0, 0x7e, 0x16, 0xcd, 0x97, 0xf5, 0x1a, 0x2a, 0xaa, 0xf5, 0x83, - 0x3a, 0x6a, 0xdf, 0xe8, 0x13, 0x0b, 0xed, 0x5a, 0xc7, 0xdd, 0x71, 0xfa, 0x78, 0xfc, 0x08, 0x18, - 0xad, 0xa6, 0x53, 0xef, 0xd4, 0x9f, 0xc5, 0xcb, 0x73, 0xfc, 0x41, 0x1a, 0x77, 0xb1, 0x51, 0x33, - 0xc5, 0x29, 0xeb, 0x76, 0x47, 0x70, 0xdb, 0xd6, 0x61, 0x45, 0xe1, 0xc6, 0x65, 0x48, 0x37, 0x53, - 0x9c, 0x22, 0xb8, 0x51, 0xa3, 0x59, 0x6b, 0x76, 0x71, 0x43, 0x40, 0xf9, 0x70, 0xd5, 0xd3, 0xcc, - 0x04, 0x1d, 0x13, 0x2c, 0xac, 0x63, 0x73, 0x9f, 0xe0, 0x47, 0xcd, 0x04, 0x1d, 0xa3, 0x2c, 0x0f, - 0xc1, 0x78, 0xe5, 0xf0, 0xb0, 0x8d, 0x85, 0x73, 0x41, 0xb4, 0x0d, 0x4d, 0x8a, 0x61, 0xc2, 0x38, - 0x7d, 0x13, 0xe2, 0xdc, 0x0e, 0x78, 0x62, 0xc1, 0x96, 0x40, 0x73, 0x3e, 0x59, 0x47, 0x89, 0xe0, - 0x87, 0x7a, 0x9b, 0x13, 0xd1, 0x45, 0xeb, 0x4e, 0xd9, 0x5d, 0xd0, 0x8b, 0x20, 0x7a, 0xdc, 0x4c, - 0xd4, 0x1d, 0xb1, 0x82, 0x93, 0xf9, 0x14, 0x9a, 0x5e, 0xe5, 0x05, 0x49, 0xa3, 0x08, 0xf1, 0x46, - 0x13, 0xc5, 0x07, 0x46, 0xd0, 0xd5, 0xf0, 0xb9, 0x80, 0x35, 0xcc, 0x85, 0x0d, 0xc6, 0x6f, 0x0a, - 0xe4, 0xf4, 0x3f, 0x6b, 0x10, 0xe7, 0xc3, 0x68, 0xa2, 0x88, 0xb6, 0x2a, 0x9d, 0x23, 0x22, 0x2e, - 0x96, 0x8f, 0xa4, 0x34, 0x93, 0x7c, 0xc6, 0xe3, 0xa8, 0x9b, 0xb1, 0x49, 0x08, 0xb0, 0x71, 0xfc, - 0x19, 0xfb, 0xb5, 0x61, 0x55, 0x6a, 0xa4, 0xc1, 0x6d, 0x1e, 0x1f, 0x23, 0x4f, 0x3a, 0xdc, 0xaf, - 0x6c, 0xbc, 0xc0, 0x86, 0xf1, 0xba, 0x78, 0xa7, 0x5d, 0xa9, 0x37, 0x24, 0xde, 0x28, 0xe1, 0x4d, - 0x71, 0x82, 0x60, 0xce, 0xc2, 0xbd, 0x5c, 0x6e, 0xcd, 0xea, 0x54, 0x50, 0xf3, 0x5c, 0x73, 0x41, - 0x43, 0x64, 0xb5, 0xeb, 0x1e, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x3f, 0x89, 0x1a, 0xd9, 0xe6, - 0xb1, 0x6a, 0x89, 0x7c, 0x4a, 0x79, 0xee, 0x72, 0x9e, 0xd0, 0xde, 0x06, 0x6e, 0x53, 0xf1, 0x89, - 0x88, 0xbe, 0xb6, 0x93, 0xff, 0x4c, 0x64, 0x7a, 0x8d, 0xe2, 0x76, 0xb8, 0x05, 0x4d, 0xeb, 0xa0, - 0x61, 0x55, 0xb1, 0x75, 0xe0, 0xe3, 0x0f, 0xc0, 0xa3, 0x87, 0xf5, 0xce, 0x51, 0xf7, 0xd6, 0x02, - 0xba, 0xc2, 0xe2, 0x61, 0xf3, 0xb0, 0xe9, 0x6e, 0x67, 0xe0, 0x4f, 0xe4, 0x03, 0x79, 0xc7, 0xb6, - 0x34, 0x46, 0xc4, 0xe8, 0x74, 0xe0, 0xfe, 0x47, 0x76, 0x0b, 0x4e, 0x33, 0xe6, 0x32, 0x59, 0x53, - 0xa5, 0x2d, 0xa8, 0x31, 0xf0, 0x81, 0x3c, 0xfd, 0xb9, 0x6f, 0x93, 0x29, 0xc1, 0x9c, 0x60, 0x50, - 0x4c, 0xa3, 0x4d, 0x6a, 0xd6, 0x84, 0x33, 0x92, 0x3c, 0x1a, 0xc3, 0xe8, 0x91, 0x7b, 0xb0, 0xc4, - 0xaf, 0x30, 0x89, 0xa7, 0x3d, 0x12, 0x77, 0x19, 0x34, 0x5b, 0x80, 0xb1, 0x93, 0xc8, 0xfa, 0x07, - 0x26, 0x6b, 0xd4, 0xf2, 0x0a, 0x59, 0x83, 0x71, 0x22, 0xa4, 0xda, 0x75, 0x3a, 0xcd, 0x63, 0x52, - 0x20, 0x06, 0x8b, 0xf9, 0xc7, 0x6f, 0xd3, 0xa0, 0x4a, 0x62, 0x58, 0x41, 0xa0, 0xb2, 0x6f, 0x81, - 0x49, 0x3c, 0x42, 0x72, 0xd0, 0x2b, 0x2d, 0x78, 0x09, 0x21, 0xfd, 0x2f, 0xef, 0xa2, 0xb1, 0x77, - 0x5a, 0x08, 0xf0, 0xc8, 0xf5, 0x78, 0xe2, 0xd0, 0xea, 0xa0, 0xda, 0x86, 0x9e, 0xff, 0x1a, 0x0d, - 0x63, 0xe0, 0x1e, 0x43, 0xfa, 0x03, 0xdf, 0x95, 0x3d, 0xb1, 0x46, 0x91, 0xb9, 0x46, 0x23, 0xbb, - 0x0f, 0xf7, 0xf8, 0x78, 0x36, 0x84, 0xcc, 0x0f, 0x32, 0x99, 0x93, 0x3d, 0xde, 0xc5, 0x62, 0x77, - 0x80, 0x8f, 0x0b, 0x7f, 0x84, 0x90, 0xf9, 0x21, 0x26, 0xd3, 0x60, 0x58, 0xee, 0x16, 0x2c, 0xf1, - 0x26, 0x4c, 0xa0, 0x27, 0xf5, 0x5b, 0x4d, 0x87, 0x3d, 0xf7, 0x86, 0x10, 0xf7, 0x61, 0x26, 0x6e, - 0x9c, 0x01, 0xc9, 0x53, 0x30, 0x96, 0x75, 0x1d, 0xe2, 0x07, 0xe8, 0x01, 0x28, 0x84, 0x88, 0x8f, - 0x30, 0x11, 0xc3, 0x98, 0x1f, 0x43, 0x73, 0x30, 0x7a, 0xd8, 0x64, 0x65, 0x38, 0x18, 0xfe, 0x51, - 0x06, 0x4f, 0x70, 0x0c, 0x13, 0xd1, 0x6a, 0xb6, 0xba, 0x0d, 0x5c, 0xa3, 0x83, 0x45, 0x7c, 0x8c, - 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x04, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x3c, 0xf6, 0x7c, 0x33, 0x5e, - 0xeb, 0x6d, 0xdc, 0x6e, 0xda, 0x61, 0x94, 0xf8, 0x38, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x3c, 0x06, - 0x23, 0x61, 0x1d, 0xf1, 0x49, 0x06, 0x8f, 0x5b, 0xdc, 0x03, 0x28, 0xcf, 0x78, 0x91, 0xc1, 0x7b, - 0x2b, 0xc1, 0x22, 0xfe, 0x84, 0x89, 0x48, 0x7a, 0x60, 0xec, 0x36, 0x3a, 0x96, 0xd3, 0x41, 0x8f, - 0xea, 0x21, 0x84, 0x7c, 0x8a, 0xdf, 0x06, 0x83, 0x30, 0x53, 0xde, 0xb2, 0xec, 0xea, 0x51, 0x38, - 0x09, 0x2f, 0x72, 0x53, 0x72, 0x0c, 0x16, 0x81, 0x2a, 0xcf, 0x71, 0xa5, 0x8d, 0x1e, 0xae, 0x1b, - 0xa1, 0xdc, 0xf1, 0x69, 0x26, 0x63, 0x54, 0x80, 0x98, 0x45, 0xba, 0xf6, 0x49, 0xc4, 0x7c, 0x86, - 0x5b, 0xc4, 0x03, 0x63, 0xa9, 0x87, 0x9e, 0x4c, 0x71, 0x27, 0x71, 0x12, 0x69, 0x7f, 0xca, 0x53, - 0x8f, 0x62, 0x37, 0xbd, 0x12, 0x91, 0xa7, 0x1d, 0xf4, 0x08, 0x1e, 0x46, 0xcc, 0x9f, 0x71, 0x4f, - 0x13, 0x00, 0x06, 0x3f, 0x05, 0xf7, 0xfa, 0x96, 0xfa, 0x10, 0xc2, 0xfe, 0x9c, 0x09, 0x9b, 0xf2, - 0x29, 0xf7, 0xac, 0x24, 0x9c, 0x54, 0xe4, 0x5f, 0xf0, 0x92, 0x60, 0x29, 0xb2, 0x76, 0x70, 0x1b, - 0xeb, 0x54, 0x0e, 0x4e, 0x66, 0xb5, 0xbf, 0xe4, 0x56, 0xa3, 0x58, 0xc9, 0x6a, 0x7b, 0x30, 0xc5, - 0x24, 0x9e, 0xcc, 0xaf, 0x9f, 0xe5, 0x85, 0x95, 0xa2, 0xf7, 0x65, 0xef, 0xfe, 0x02, 0x4c, 0x0b, - 0x73, 0xf2, 0x0e, 0xcc, 0x29, 0xe3, 0x85, 0x81, 0x60, 0xc9, 0x9f, 0x63, 0x92, 0x79, 0xc5, 0x17, - 0x2d, 0x9c, 0xb3, 0x59, 0x69, 0x61, 0xe1, 0x4f, 0x42, 0x9a, 0x0b, 0xef, 0xda, 0xa8, 0xc1, 0x6f, - 0x1e, 0xda, 0xc8, 0x8d, 0xb5, 0x10, 0xa2, 0xff, 0x4a, 0x71, 0xd5, 0xbe, 0x07, 0x8e, 0x25, 0xaf, - 0x43, 0x4a, 0xf4, 0x1b, 0xe5, 0xfa, 0x71, 0xab, 0x89, 0x5a, 0xcb, 0xc1, 0x12, 0x3f, 0xcf, 0x3d, - 0x25, 0x70, 0xeb, 0x04, 0x96, 0x2d, 0x41, 0x92, 0x7c, 0x0c, 0x1b, 0x92, 0x5f, 0x60, 0x82, 0xc6, - 0x5c, 0x14, 0x2b, 0x1c, 0xa8, 0x53, 0x42, 0x3d, 0x6f, 0x98, 0xfa, 0xf7, 0xd7, 0xbc, 0x70, 0x30, - 0x08, 0x8d, 0xbe, 0x71, 0x65, 0x26, 0x36, 0x82, 0xb6, 0x5f, 0xd3, 0xbf, 0xf2, 0x0a, 0xcb, 0x59, - 0x79, 0x22, 0xce, 0x6e, 0x60, 0xf3, 0xc8, 0xd3, 0x65, 0xb0, 0xb0, 0x77, 0xbd, 0x22, 0x2c, 0x24, - 0xcd, 0x96, 0xd9, 0x1b, 0x30, 0x26, 0x4d, 0x95, 0xc1, 0xa2, 0x7e, 0x95, 0x89, 0x1a, 0xf5, 0xce, - 0x94, 0xd9, 0xcb, 0x10, 0xc5, 0xd3, 0x5e, 0x30, 0xfc, 0xd7, 0x18, 0x9c, 0xb0, 0x67, 0xdf, 0x04, - 0x71, 0x3e, 0xdd, 0x05, 0x43, 0xdf, 0xcd, 0xa0, 0x02, 0x82, 0xe1, 0x7c, 0xaa, 0x0b, 0x86, 0xff, - 0x3a, 0x87, 0x73, 0x08, 0x86, 0x87, 0x37, 0xe1, 0x4b, 0xbf, 0x19, 0x65, 0xe5, 0x8a, 0xdb, 0x0e, - 0xef, 0xf9, 0xd0, 0x39, 0x2e, 0x18, 0xfd, 0x5e, 0x76, 0x71, 0x8e, 0xc8, 0x5e, 0x85, 0x58, 0x48, - 0x83, 0xff, 0x16, 0x83, 0x52, 0x7e, 0x34, 0x83, 0x24, 0x3c, 0xf3, 0x5a, 0x30, 0xfc, 0xb7, 0x19, - 0xdc, 0x8b, 0xc2, 0xaa, 0xb3, 0x79, 0x2d, 0x58, 0xc0, 0xef, 0x70, 0xd5, 0x19, 0x02, 0x9b, 0x8d, - 0x4f, 0x69, 0xc1, 0xe8, 0xdf, 0xe5, 0x56, 0xe7, 0x10, 0x94, 0x4d, 0x23, 0xa2, 0x4c, 0x05, 0xe3, - 0x7f, 0x8f, 0xe1, 0x5d, 0x0c, 0xb6, 0x80, 0xa7, 0x4c, 0x06, 0x8b, 0xf8, 0x7d, 0x6e, 0x01, 0x0f, - 0x0a, 0xa7, 0x91, 0x3a, 0xf5, 0x05, 0x4b, 0x7a, 0x1f, 0x4f, 0x23, 0x65, 0xe6, 0xc3, 0xde, 0x24, - 0xd5, 0x22, 0x58, 0xc4, 0x1f, 0x70, 0x6f, 0x12, 0x7e, 0xac, 0x86, 0x3a, 0x97, 0x04, 0xcb, 0xf8, - 0x23, 0xae, 0x86, 0x32, 0x95, 0xa0, 0x99, 0xc9, 0xe8, 0x9d, 0x47, 0x82, 0xe5, 0xbd, 0x9f, 0xc9, - 0x9b, 0xe8, 0x99, 0x46, 0xb2, 0x6f, 0x85, 0x29, 0xff, 0x39, 0x24, 0x58, 0xea, 0x07, 0x5e, 0x51, - 0xba, 0x7e, 0xef, 0x14, 0x82, 0xa6, 0xbc, 0x49, 0xbf, 0xf9, 0x23, 0x58, 0xec, 0x07, 0x5f, 0x91, - 0x1f, 0xec, 0xbc, 0xd3, 0x07, 0xea, 0xd0, 0xc0, 0x2d, 0xdd, 0xc1, 0xb2, 0x3e, 0xcc, 0x64, 0x79, - 0x40, 0x38, 0x35, 0x58, 0xe5, 0x0e, 0xc6, 0x7f, 0x84, 0xa7, 0x06, 0x43, 0x20, 0x70, 0xdc, 0xee, - 0x36, 0x1a, 0x38, 0x38, 0x8c, 0xc1, 0x47, 0x1a, 0xd2, 0xff, 0xf9, 0x23, 0x96, 0x18, 0x1c, 0x80, - 0x6a, 0x68, 0xcc, 0x3a, 0xbe, 0x85, 0x6c, 0x10, 0x80, 0xfc, 0xaf, 0x1f, 0xf1, 0x82, 0x80, 0xb9, - 0x51, 0x3e, 0x01, 0x7d, 0x68, 0x24, 0x6b, 0xd8, 0x01, 0xd8, 0xff, 0xfe, 0x11, 0xdb, 0x66, 0x75, - 0x21, 0xae, 0x00, 0xba, 0x69, 0x3b, 0x58, 0xc0, 0x77, 0x65, 0x01, 0xe4, 0x41, 0xf3, 0x3a, 0x0c, - 0xe3, 0x93, 0x1d, 0x9d, 0xca, 0x61, 0x10, 0xfa, 0x7f, 0x18, 0x9a, 0xf3, 0x63, 0x83, 0x1d, 0x37, - 0xdb, 0x16, 0x7a, 0xeb, 0x04, 0x61, 0xff, 0x97, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xa7, 0x13, - 0xe6, 0xbe, 0xff, 0x8f, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0xdf, 0x3f, 0x63, 0xdd, 0x0e, 0xc2, 0x7e, - 0x8f, 0x2b, 0xcd, 0xf8, 0x51, 0x01, 0x1c, 0xc1, 0x6f, 0xe9, 0xd1, 0x83, 0x00, 0xf0, 0xf7, 0x19, - 0xd8, 0x45, 0xe4, 0x2f, 0xfa, 0x2f, 0xed, 0xc0, 0x5a, 0x73, 0xad, 0x49, 0x17, 0x75, 0xe0, 0xf3, - 0x75, 0x98, 0x41, 0x3c, 0x68, 0x7e, 0x5d, 0xa4, 0x39, 0x29, 0x32, 0x72, 0xb1, 0x73, 0x64, 0xe1, - 0x42, 0xcc, 0x96, 0x66, 0xa2, 0xf8, 0xfd, 0xf4, 0xc9, 0xd6, 0x73, 0xc8, 0xe6, 0xcc, 0x56, 0x1d, - 0xab, 0xb8, 0x45, 0x56, 0x16, 0x8d, 0xb3, 0x30, 0x44, 0x94, 0x5e, 0x26, 0x0b, 0xdf, 0x5a, 0x3e, - 0x7a, 0xe7, 0xe5, 0xf3, 0xa7, 0xcc, 0x21, 0x72, 0x48, 0x6f, 0x59, 0x50, 0x57, 0xc8, 0xba, 0x7e, - 0x44, 0xa2, 0xae, 0x08, 0xea, 0x25, 0x7a, 0x02, 0x4a, 0xa2, 0x5e, 0x12, 0xd4, 0x55, 0xb2, 0x48, - 0xa6, 0x4b, 0xd4, 0x55, 0x41, 0xbd, 0x4c, 0xd6, 0x3a, 0xc7, 0x24, 0xea, 0x65, 0x41, 0xbd, 0x42, - 0x56, 0x38, 0xa3, 0x12, 0xf5, 0x8a, 0xa0, 0x5e, 0x25, 0x8b, 0x9b, 0x13, 0x12, 0xf5, 0xaa, 0xa0, - 0x5e, 0x23, 0x8b, 0x9a, 0x86, 0x44, 0xbd, 0x26, 0xa8, 0xd7, 0xc9, 0x9e, 0xf4, 0xb0, 0x44, 0xbd, - 0x6e, 0x9c, 0x83, 0x61, 0x6a, 0x8d, 0x25, 0xb2, 0x8f, 0x33, 0xce, 0xc8, 0xc3, 0xd4, 0x1c, 0x4b, - 0x2e, 0x7d, 0x99, 0xec, 0x3f, 0x0f, 0xc9, 0xf4, 0x65, 0x97, 0xbe, 0x42, 0xce, 0x54, 0xa6, 0x64, - 0xfa, 0x8a, 0x4b, 0xbf, 0x94, 0x1e, 0xc3, 0x89, 0x2c, 0xd3, 0x2f, 0xb9, 0xf4, 0xd5, 0x74, 0x12, - 0xc7, 0x8e, 0x4c, 0x5f, 0x75, 0xe9, 0x97, 0xd3, 0xe3, 0x78, 0x5d, 0x57, 0xa6, 0x5f, 0xce, 0xbc, - 0x93, 0xb8, 0xd7, 0x76, 0xdd, 0x3b, 0x25, 0xbb, 0x57, 0x38, 0x76, 0x4a, 0x76, 0xac, 0x70, 0xe9, - 0x94, 0xec, 0x52, 0xe1, 0xcc, 0x29, 0xd9, 0x99, 0xc2, 0x8d, 0x53, 0xb2, 0x1b, 0x85, 0x03, 0xa7, - 0x64, 0x07, 0x0a, 0xd7, 0x4d, 0xc9, 0xae, 0x13, 0x4e, 0x9b, 0x92, 0x9d, 0x26, 0xdc, 0x35, 0x25, - 0xbb, 0x4b, 0x38, 0x2a, 0xad, 0x38, 0xca, 0x75, 0x51, 0x5a, 0x71, 0x91, 0xeb, 0x9c, 0xb4, 0xe2, - 0x1c, 0xd7, 0x2d, 0x69, 0xc5, 0x2d, 0xae, 0x43, 0xd2, 0x8a, 0x43, 0x5c, 0x57, 0xa4, 0x15, 0x57, - 0xb8, 0x4e, 0x60, 0x39, 0x66, 0x5a, 0x2d, 0x9f, 0x1c, 0xd3, 0x07, 0xe6, 0x98, 0x3e, 0x30, 0xc7, - 0xf4, 0x81, 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, 0xe9, 0x03, 0x73, 0x4c, 0x1f, 0x98, - 0x63, 0xfa, 0xc0, 0x1c, 0xd3, 0x07, 0xe7, 0x98, 0x1e, 0x90, 0x63, 0x7a, 0x40, 0x8e, 0xe9, 0x01, - 0x39, 0xa6, 0x07, 0xe4, 0x98, 0x1e, 0x90, 0x63, 0x7a, 0xdf, 0x1c, 0x73, 0xdd, 0x3b, 0x25, 0xbb, - 0xd7, 0x37, 0xc7, 0xf4, 0x3e, 0x39, 0xa6, 0xf7, 0xc9, 0x31, 0xbd, 0x4f, 0x8e, 0xe9, 0x7d, 0x72, - 0x4c, 0xef, 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe4, 0x98, 0xde, 0x2f, 0xc7, 0xf4, 0xbe, - 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, 0xef, 0x9b, 0x63, 0xba, - 0x37, 0xc7, 0xfe, 0x56, 0x07, 0x83, 0xe6, 0xd8, 0x0e, 0x39, 0x09, 0xc0, 0x5c, 0x71, 0x4e, 0xc9, - 0xb4, 0x21, 0xec, 0xba, 0x94, 0xeb, 0x92, 0x73, 0x4a, 0xae, 0xc9, 0xf4, 0x15, 0x41, 0xe7, 0xd9, - 0x26, 0xd3, 0x2f, 0x09, 0x3a, 0xcf, 0x37, 0x99, 0xbe, 0x2a, 0xe8, 0x3c, 0xe3, 0x64, 0xfa, 0x65, - 0x41, 0xe7, 0x39, 0x27, 0xd3, 0xaf, 0x08, 0x3a, 0xcf, 0x3a, 0x99, 0x7e, 0x55, 0xd0, 0x79, 0xde, - 0xc9, 0xf4, 0x6b, 0x82, 0xce, 0x33, 0x4f, 0xa6, 0x5f, 0x37, 0x2e, 0xa8, 0xb9, 0xc7, 0x19, 0x84, - 0x6b, 0x2f, 0xa8, 0xd9, 0xa7, 0x70, 0x2c, 0xbb, 0x1c, 0x3c, 0xff, 0x14, 0x8e, 0x15, 0x97, 0x83, - 0x67, 0xa0, 0xc2, 0x71, 0x29, 0xf3, 0x1e, 0xe2, 0x3e, 0x5b, 0x75, 0xdf, 0xb4, 0xe2, 0xbe, 0x88, - 0xc7, 0x75, 0xd3, 0x8a, 0xeb, 0x22, 0x1e, 0xb7, 0x4d, 0x2b, 0x6e, 0x8b, 0x78, 0x5c, 0x36, 0xad, - 0xb8, 0x2c, 0xe2, 0x71, 0xd7, 0xb4, 0xe2, 0xae, 0x88, 0xc7, 0x55, 0xd3, 0x8a, 0xab, 0x22, 0x1e, - 0x37, 0x4d, 0x2b, 0x6e, 0x8a, 0x78, 0x5c, 0x34, 0xad, 0xb8, 0x28, 0xe2, 0x71, 0xcf, 0xb4, 0xe2, - 0x9e, 0x88, 0xc7, 0x35, 0x67, 0x55, 0xd7, 0x44, 0xbc, 0x6e, 0x39, 0xab, 0xba, 0x25, 0xe2, 0x75, - 0xc9, 0x59, 0xd5, 0x25, 0x11, 0xaf, 0x3b, 0xce, 0xaa, 0xee, 0x88, 0x78, 0x5d, 0xf1, 0xe3, 0x08, - 0xef, 0x08, 0x77, 0x3b, 0xed, 0x6e, 0xb5, 0x73, 0x57, 0x1d, 0xe1, 0x92, 0xd4, 0x3e, 0x24, 0x56, - 0x8c, 0x05, 0xd2, 0xb0, 0x7a, 0x3b, 0x4e, 0x65, 0x06, 0x5b, 0x92, 0x1a, 0x0b, 0x0f, 0xc2, 0xf6, - 0x47, 0xac, 0xde, 0x55, 0x6f, 0xb8, 0x24, 0xb5, 0x19, 0xc1, 0xfa, 0x5d, 0x7b, 0xdd, 0x3b, 0xb6, - 0x97, 0x22, 0xbc, 0x63, 0x63, 0xe6, 0x3f, 0x69, 0xc7, 0x36, 0x1f, 0x6c, 0x72, 0x61, 0xec, 0xf9, - 0x60, 0x63, 0xf7, 0xcc, 0x3a, 0x61, 0x3b, 0xb8, 0xf9, 0x60, 0xd3, 0x0a, 0xa3, 0xbe, 0xb6, 0xfd, - 0x16, 0x8b, 0x60, 0x54, 0x4c, 0x7c, 0x22, 0xf8, 0xa4, 0xfd, 0xd6, 0x92, 0x54, 0x4a, 0x4e, 0x1a, - 0xc1, 0xfa, 0x89, 0x23, 0xf8, 0xa4, 0x9d, 0xd7, 0x92, 0x54, 0x5e, 0x4e, 0x1c, 0xc1, 0xaf, 0x43, - 0x3f, 0xc4, 0x22, 0xd8, 0x35, 0xff, 0x49, 0xfb, 0xa1, 0xf9, 0x60, 0x93, 0xfb, 0x46, 0xb0, 0x7e, - 0x82, 0x08, 0x0e, 0xd3, 0x1f, 0xcd, 0x07, 0x9b, 0xd6, 0x3f, 0x82, 0xef, 0xba, 0x9b, 0xf9, 0x98, - 0x06, 0x13, 0xe8, 0x32, 0x25, 0xbc, 0xa8, 0x53, 0xb3, 0x6a, 0xcc, 0x8e, 0x4b, 0x52, 0x25, 0xe8, - 0xe3, 0xea, 0xaf, 0xbe, 0x7c, 0xde, 0xb5, 0xf0, 0x65, 0x88, 0x53, 0x0b, 0x2f, 0x2d, 0xa5, 0xef, - 0x68, 0x01, 0x15, 0x2e, 0x7e, 0xc0, 0x58, 0x8d, 0x8b, 0x1c, 0x86, 0xe6, 0x9e, 0xaf, 0x69, 0x9e, - 0x2a, 0xc7, 0x58, 0x96, 0x97, 0x32, 0xef, 0x23, 0x1a, 0xda, 0x77, 0xad, 0xe1, 0x62, 0x28, 0x0d, - 0x3d, 0xba, 0xdd, 0xd7, 0xa3, 0x9b, 0x47, 0xab, 0x2e, 0x8c, 0x23, 0xd8, 0x16, 0xf9, 0x36, 0x5f, - 0x18, 0x95, 0x28, 0x8f, 0x52, 0x0f, 0x96, 0xa4, 0xb0, 0xf4, 0x22, 0x44, 0x48, 0xcb, 0x35, 0x22, - 0x53, 0xc7, 0x97, 0xb5, 0xa5, 0xcb, 0xce, 0xf7, 0xbb, 0xac, 0x5b, 0xd9, 0xc5, 0x05, 0xe7, 0xfb, - 0x5d, 0xd0, 0xcd, 0x21, 0x71, 0xa9, 0xe7, 0xf9, 0xe4, 0x4c, 0x0f, 0x77, 0xa0, 0xe2, 0x10, 0x59, - 0xa7, 0x67, 0x14, 0x47, 0xf3, 0xa3, 0x58, 0xa9, 0x7f, 0x7b, 0xf9, 0x7c, 0x74, 0xbf, 0x8b, 0x74, - 0x8d, 0xd4, 0x6b, 0xc6, 0x4d, 0x88, 0xbd, 0x85, 0x7d, 0x99, 0x06, 0x33, 0xac, 0x32, 0x86, 0x47, - 0xfa, 0xae, 0x11, 0xe1, 0x0b, 0x2f, 0xd2, 0xe5, 0xbc, 0x85, 0xfd, 0xba, 0xdd, 0x59, 0x5e, 0xb9, - 0xc6, 0xbe, 0x57, 0x93, 0xf9, 0x45, 0x00, 0x7a, 0xcd, 0x22, 0xfe, 0x32, 0xc0, 0x16, 0x97, 0x4c, - 0x2f, 0x7d, 0x0d, 0x49, 0x5d, 0x0d, 0x23, 0xf5, 0xd1, 0x1a, 0x42, 0x3f, 0x8a, 0x57, 0xdd, 0x16, - 0xf2, 0xb7, 0xd1, 0x38, 0x97, 0xde, 0xe2, 0xb3, 0x1e, 0xbb, 0xaf, 0xb4, 0xe7, 0xbe, 0xe2, 0xd2, - 0x3d, 0xdd, 0x90, 0xef, 0x69, 0xe9, 0xd5, 0xde, 0xcf, 0xf3, 0x7c, 0x92, 0x50, 0x2c, 0xa9, 0x07, - 0x59, 0x52, 0xbf, 0x5b, 0x4b, 0xb6, 0x78, 0x7d, 0x54, 0xee, 0x55, 0x1f, 0x74, 0xaf, 0xfa, 0xdd, - 0xdc, 0xeb, 0x0f, 0x68, 0xb6, 0x8a, 0x7c, 0xda, 0xb7, 0xe9, 0xd9, 0xb8, 0x9f, 0xad, 0xb5, 0xa0, - 0xd7, 0xb4, 0x0b, 0xc8, 0x46, 0xef, 0xbc, 0x70, 0x5e, 0xcb, 0x7c, 0x2c, 0xc2, 0xef, 0x9c, 0x26, - 0xd2, 0xab, 0xbb, 0xf3, 0x9f, 0x95, 0x9e, 0xea, 0xf5, 0xb0, 0xd0, 0x47, 0x35, 0x98, 0xea, 0xa9, - 0xe4, 0xd4, 0x4c, 0xaf, 0x6d, 0x39, 0xb7, 0x4f, 0x5a, 0xce, 0x99, 0x82, 0x5f, 0xd0, 0x60, 0x52, - 0x29, 0xaf, 0x54, 0xbd, 0x45, 0x45, 0xbd, 0x7b, 0x7a, 0xaf, 0x44, 0x18, 0x3d, 0xda, 0x79, 0xdd, - 0xab, 0x00, 0x3c, 0x92, 0x85, 0xdf, 0x57, 0x15, 0xbf, 0x9f, 0x15, 0x00, 0x1f, 0x73, 0xf1, 0x08, - 0x60, 0x6a, 0x37, 0x21, 0xba, 0xd7, 0xb6, 0xf0, 0x12, 0x44, 0x64, 0xbb, 0xcd, 0x34, 0x4c, 0x52, - 0xfc, 0x76, 0x3b, 0xdf, 0xae, 0xd8, 0xd5, 0x23, 0x33, 0xd2, 0x6c, 0xa3, 0xc9, 0x56, 0xcf, 0xb1, - 0x6f, 0x1d, 0x27, 0x56, 0xc6, 0x29, 0x03, 0x1a, 0x60, 0x1c, 0x7a, 0xc5, 0xae, 0x21, 0x11, 0xd1, - 0x0d, 0xab, 0x72, 0xc0, 0x94, 0x00, 0xca, 0x83, 0x47, 0xcc, 0x68, 0x03, 0xfd, 0xcf, 0x2e, 0xf8, - 0x24, 0xc4, 0xb9, 0x60, 0x63, 0x06, 0x23, 0x0e, 0x3a, 0xec, 0xb2, 0x0c, 0x81, 0xd5, 0x61, 0x33, - 0x17, 0xc2, 0x1d, 0x74, 0x8c, 0x59, 0x88, 0x99, 0xf5, 0xc3, 0xa3, 0x0e, 0xbb, 0x78, 0x2f, 0x5b, - 0xac, 0x8d, 0xc9, 0x99, 0xa7, 0x60, 0x44, 0x68, 0xf4, 0x1a, 0x8b, 0x2e, 0xd2, 0x5b, 0x43, 0x4f, - 0xc2, 0x9e, 0xf9, 0x84, 0xaf, 0x5b, 0xb2, 0x6f, 0x74, 0x5e, 0x80, 0x38, 0x32, 0xb3, 0x5b, 0xf4, - 0x79, 0x47, 0x8a, 0xb7, 0xdf, 0xc9, 0x68, 0xe6, 0x9d, 0x1a, 0xc4, 0x8b, 0x96, 0xd5, 0x22, 0x06, - 0x7f, 0x10, 0xa2, 0xc5, 0xe6, 0x73, 0x36, 0x53, 0x70, 0x82, 0x59, 0x14, 0x93, 0x99, 0x4d, 0xa3, - 0x35, 0x44, 0x46, 0x6c, 0x1e, 0xbb, 0x9f, 0x16, 0x76, 0xf7, 0xf0, 0x11, 0xdb, 0x67, 0x24, 0xdb, - 0x33, 0x07, 0x62, 0xa6, 0x1e, 0xfb, 0x5f, 0x85, 0x84, 0xe7, 0x2a, 0xc6, 0x1c, 0x53, 0x23, 0xa2, - 0x02, 0xbd, 0xb6, 0xc2, 0x9a, 0x64, 0x2c, 0x18, 0x93, 0x2e, 0x8c, 0xa1, 0x1e, 0x13, 0xf7, 0x81, - 0x12, 0x33, 0xcf, 0xcb, 0x66, 0xf6, 0x67, 0x65, 0xa6, 0x5e, 0xa2, 0x36, 0x22, 0xe6, 0x9e, 0xa1, - 0xc1, 0xd9, 0xdf, 0x89, 0x1d, 0xf4, 0x3e, 0x13, 0x03, 0x7d, 0xab, 0xde, 0xc8, 0xbc, 0x09, 0x80, - 0xa6, 0x3c, 0x3e, 0x49, 0xa5, 0x64, 0x5d, 0x92, 0x1b, 0x78, 0xef, 0xc8, 0xda, 0x43, 0x7f, 0x31, - 0x8b, 0xdc, 0x4f, 0xe1, 0x02, 0x03, 0x34, 0xc5, 0x08, 0xfe, 0xe1, 0x40, 0xbc, 0x6f, 0x27, 0x86, - 0x59, 0xd3, 0x94, 0xf5, 0x29, 0xab, 0x93, 0xb3, 0x9b, 0x9d, 0x23, 0xab, 0xad, 0x20, 0x56, 0x8c, - 0x4b, 0x52, 0xc2, 0x26, 0x57, 0xee, 0x13, 0x88, 0xbe, 0xa0, 0x4b, 0x99, 0xcf, 0x12, 0x05, 0x71, - 0x2b, 0xd0, 0x73, 0x83, 0x7a, 0x88, 0x1b, 0x34, 0xae, 0x48, 0xfd, 0xdb, 0x00, 0x35, 0x95, 0x47, - 0xcb, 0xeb, 0xd2, 0x73, 0xce, 0x60, 0x65, 0xe5, 0x67, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0xc3, 0x81, - 0x2a, 0xf7, 0xe9, 0x6e, 0x4f, 0x6a, 0x53, 0x3d, 0xac, 0x4d, 0xbf, 0x24, 0x3a, 0x0e, 0xfa, 0xc5, - 0x6f, 0xf2, 0x73, 0x01, 0xc6, 0x23, 0x81, 0xbe, 0xcf, 0x6a, 0x05, 0xa1, 0xea, 0x6a, 0x58, 0xf7, - 0x67, 0x23, 0xf9, 0xbc, 0x50, 0xf7, 0xea, 0x09, 0x42, 0x20, 0x1b, 0x29, 0x14, 0x44, 0xd9, 0x8e, - 0xbf, 0x07, 0x65, 0xf1, 0x8b, 0x2f, 0x9c, 0x3f, 0x95, 0xf9, 0x34, 0x52, 0x9e, 0x71, 0x7a, 0x02, - 0xf7, 0x51, 0x45, 0xf9, 0x33, 0xbc, 0x66, 0xf8, 0x59, 0xe0, 0x27, 0x16, 0xbc, 0x5f, 0xd1, 0x20, - 0xdd, 0xa3, 0x2b, 0xb7, 0xf7, 0x52, 0x28, 0x95, 0xb3, 0x5a, 0xe9, 0xa7, 0x6f, 0xf3, 0xa7, 0x20, - 0xb6, 0x57, 0x3f, 0xb6, 0xda, 0x78, 0x26, 0xc0, 0x6f, 0xa8, 0xca, 0x7c, 0x33, 0x27, 0xd6, 0xc1, - 0x43, 0x9c, 0x46, 0x95, 0x93, 0x68, 0x78, 0x3f, 0x21, 0x5a, 0xac, 0x74, 0x2a, 0x44, 0x83, 0x51, - 0x51, 0x5f, 0xd1, 0x48, 0xe6, 0x12, 0x8c, 0x6e, 0xde, 0x26, 0x47, 0x4e, 0x6a, 0xe4, 0x34, 0x86, - 0xdc, 0xfd, 0xf1, 0x7e, 0x75, 0x79, 0x3e, 0x16, 0xaf, 0xa5, 0xee, 0x68, 0xd9, 0x28, 0xd1, 0xe7, - 0x59, 0x48, 0x6e, 0x63, 0xb5, 0x09, 0x4e, 0x82, 0xd1, 0xab, 0xeb, 0xe2, 0xe6, 0x95, 0xa6, 0x4c, - 0x77, 0x9b, 0xb2, 0x0b, 0xa0, 0x6d, 0xca, 0xad, 0x93, 0x57, 0x0f, 0x53, 0x3b, 0x9e, 0x8f, 0xc6, - 0x93, 0xa9, 0x09, 0xf4, 0x3f, 0xa4, 0xc6, 0xd8, 0x75, 0xff, 0x49, 0x87, 0x14, 0x6d, 0x75, 0x90, - 0x13, 0xeb, 0x76, 0xbd, 0xd3, 0xdb, 0xaf, 0x0a, 0x8d, 0x8d, 0x37, 0xc3, 0x08, 0x36, 0xe9, 0x0d, - 0xf6, 0xab, 0x3b, 0xd8, 0xf4, 0x17, 0x59, 0x8b, 0xa2, 0x88, 0x60, 0x03, 0x24, 0x74, 0xc8, 0x0f, - 0xdc, 0x10, 0x0c, 0x7a, 0xc0, 0xd0, 0xb7, 0xb6, 0x36, 0xd9, 0xe4, 0xb6, 0x3a, 0x10, 0xca, 0xce, - 0xbb, 0xb0, 0x4f, 0x6c, 0xcc, 0x39, 0x34, 0x75, 0x7b, 0x6b, 0x13, 0x85, 0x4d, 0x04, 0x89, 0xa1, - 0x0d, 0xef, 0x4c, 0x18, 0x31, 0x66, 0xc4, 0xde, 0x9c, 0xfe, 0x3b, 0x0d, 0xc6, 0xa4, 0x51, 0x34, - 0xdb, 0x8e, 0xd2, 0x01, 0xcf, 0xed, 0x0e, 0x99, 0xa3, 0xb6, 0x67, 0x8c, 0xeb, 0x1c, 0xb9, 0x4b, - 0x9d, 0xa7, 0x73, 0xe8, 0xa9, 0x5d, 0x1e, 0x37, 0x16, 0xc0, 0xf0, 0x0e, 0x31, 0x25, 0xe8, 0x2f, - 0x96, 0x18, 0x76, 0x0f, 0x25, 0x73, 0x3f, 0xaa, 0xc2, 0xc2, 0xae, 0xe2, 0x87, 0x36, 0xb6, 0x4a, - 0xbb, 0xf8, 0x37, 0x32, 0xb4, 0xcc, 0x17, 0x35, 0x48, 0xb0, 0xb6, 0xb5, 0xda, 0x6c, 0x59, 0x46, - 0x1e, 0xb4, 0x1c, 0x8b, 0x87, 0x57, 0xa7, 0xb7, 0x56, 0x41, 0xb3, 0x93, 0x96, 0x0f, 0xef, 0x6a, - 0xed, 0x96, 0xb1, 0x02, 0x5a, 0x81, 0x39, 0x38, 0x9c, 0x67, 0xb4, 0x6a, 0xe6, 0xfb, 0x3a, 0x9c, - 0xf6, 0xb6, 0xd1, 0xbc, 0x9e, 0x5c, 0x94, 0x9f, 0x9b, 0xb2, 0x23, 0xcb, 0x2b, 0x97, 0x56, 0x17, - 0xf0, 0x7f, 0x22, 0x24, 0x2f, 0xca, 0x8f, 0x50, 0xbd, 0x2c, 0x3d, 0xc7, 0x44, 0xb2, 0x51, 0x0f, - 0xb5, 0xe7, 0x98, 0x88, 0x44, 0xed, 0x39, 0x26, 0x22, 0x51, 0x7b, 0x8e, 0x89, 0x48, 0xd4, 0x9e, - 0xad, 0x00, 0x89, 0xda, 0x73, 0x4c, 0x44, 0xa2, 0xf6, 0x1c, 0x13, 0x91, 0xa8, 0xbd, 0xc7, 0x44, - 0x18, 0xb9, 0xef, 0x31, 0x11, 0x99, 0xde, 0x7b, 0x4c, 0x44, 0xa6, 0xf7, 0x1e, 0x13, 0xc9, 0xa2, - 0xfe, 0xac, 0x6b, 0xf5, 0xdf, 0x74, 0x90, 0xf1, 0x83, 0x9e, 0x01, 0xdd, 0x02, 0xbc, 0x0d, 0xe3, - 0x74, 0x3d, 0xa2, 0x80, 0x8f, 0x63, 0xd5, 0x6d, 0x54, 0x8a, 0xdf, 0x08, 0xa3, 0x74, 0x88, 0x3e, - 0xe5, 0xf8, 0x3d, 0x05, 0x52, 0x3a, 0x2b, 0xb7, 0xa3, 0x55, 0x0f, 0x77, 0xe6, 0xc7, 0x51, 0x98, - 0xa2, 0x64, 0xfc, 0x9d, 0x41, 0xe9, 0x90, 0xd1, 0xac, 0xb2, 0xa5, 0x94, 0xc4, 0xf0, 0x6f, 0xbe, - 0x7c, 0x9e, 0x8e, 0xe6, 0x44, 0x30, 0xcd, 0x2a, 0x9b, 0x4b, 0x32, 0x9f, 0x3b, 0xff, 0xcc, 0x2a, - 0x07, 0x8f, 0x64, 0x3e, 0x31, 0xdd, 0x08, 0x3e, 0x7e, 0x04, 0x49, 0xe6, 0x2b, 0x8a, 0x28, 0x9b, - 0x55, 0x0e, 0x23, 0xc9, 0x7c, 0x25, 0x11, 0x6f, 0xb3, 0xca, 0xd6, 0x93, 0xcc, 0x77, 0x43, 0x44, - 0xde, 0xac, 0xb2, 0x09, 0x25, 0xf3, 0xad, 0x89, 0x18, 0x9c, 0x55, 0x8e, 0x2a, 0xc9, 0x7c, 0x4f, - 0x88, 0x68, 0x9c, 0x55, 0x0e, 0x2d, 0xc9, 0x7c, 0xeb, 0x22, 0x2e, 0xe7, 0xd4, 0xe3, 0x4b, 0x32, - 0xe3, 0x4d, 0x37, 0x42, 0xe7, 0xd4, 0x83, 0x4c, 0x32, 0xe7, 0xcf, 0xb9, 0xb1, 0x3a, 0xa7, 0x1e, - 0x69, 0x92, 0x39, 0x37, 0xdc, 0xa8, 0x9d, 0x53, 0xb7, 0xca, 0x64, 0xce, 0x4d, 0x37, 0x7e, 0xe7, - 0xd4, 0x4d, 0x33, 0x99, 0x73, 0xcb, 0x8d, 0xe4, 0x39, 0x75, 0xfb, 0x4c, 0xe6, 0xdc, 0x76, 0xd7, - 0xd0, 0xbf, 0xac, 0x84, 0x9f, 0xe7, 0x10, 0x54, 0x46, 0x09, 0x3f, 0xf0, 0x09, 0xbd, 0x8c, 0x12, - 0x7a, 0xe0, 0x13, 0x76, 0x19, 0x25, 0xec, 0xc0, 0x27, 0xe4, 0x32, 0x4a, 0xc8, 0x81, 0x4f, 0xb8, - 0x65, 0x94, 0x70, 0x03, 0x9f, 0x50, 0xcb, 0x28, 0xa1, 0x06, 0x3e, 0x61, 0x96, 0x51, 0xc2, 0x0c, - 0x7c, 0x42, 0x2c, 0xa3, 0x84, 0x18, 0xf8, 0x84, 0x57, 0x46, 0x09, 0x2f, 0xf0, 0x09, 0xad, 0x19, - 0x35, 0xb4, 0xc0, 0x2f, 0xac, 0x66, 0xd4, 0xb0, 0x02, 0xbf, 0x90, 0x7a, 0x40, 0x0d, 0xa9, 0x11, - 0xc4, 0x15, 0xc3, 0x43, 0x9e, 0x68, 0x9a, 0x51, 0xa3, 0x09, 0xfc, 0x22, 0x69, 0x46, 0x8d, 0x24, - 0xf0, 0x8b, 0xa2, 0x19, 0x35, 0x8a, 0xc0, 0x2f, 0x82, 0x5e, 0x52, 0x23, 0xc8, 0x3d, 0xe2, 0x93, - 0x51, 0x76, 0x14, 0x83, 0x22, 0x48, 0x0f, 0x11, 0x41, 0x7a, 0x88, 0x08, 0xd2, 0x43, 0x44, 0x90, - 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, 0x20, 0x3d, 0x44, 0x04, 0xe9, 0x61, 0x22, - 0x48, 0x0f, 0x15, 0x41, 0x7a, 0xbf, 0x08, 0x9a, 0x51, 0x0f, 0x3c, 0x80, 0x5f, 0x41, 0x9a, 0x51, - 0x77, 0x3e, 0x83, 0x43, 0x48, 0x0f, 0x15, 0x42, 0x7a, 0xbf, 0x10, 0xfa, 0x32, 0x6a, 0xa4, 0xa4, - 0x10, 0x62, 0xdb, 0x43, 0xaf, 0x55, 0x05, 0xba, 0x12, 0xe2, 0x7c, 0x85, 0x5f, 0x4c, 0x5d, 0x09, - 0xb1, 0x47, 0x3d, 0x28, 0xce, 0x7a, 0xab, 0x50, 0x29, 0x44, 0x15, 0xba, 0x21, 0x62, 0xe8, 0x4a, - 0x88, 0x73, 0x17, 0xbd, 0xb1, 0x77, 0x6d, 0x50, 0x11, 0x78, 0x22, 0x54, 0x11, 0x58, 0x0f, 0x55, - 0x04, 0x6e, 0xba, 0x1e, 0x7c, 0x77, 0x04, 0x26, 0x5d, 0x0f, 0xd2, 0x77, 0xe4, 0xf7, 0x52, 0x32, - 0x9e, 0x1d, 0x2a, 0x83, 0xef, 0xda, 0x78, 0xdc, 0x88, 0xf7, 0x6f, 0x76, 0xe4, 0xbd, 0xaa, 0xec, - 0x49, 0xf7, 0x6f, 0x3c, 0x1e, 0x67, 0x6b, 0xa1, 0x33, 0xa0, 0xaf, 0xd7, 0x1c, 0x52, 0x2d, 0xfc, - 0x2e, 0x5b, 0x30, 0xf5, 0x7a, 0xcd, 0x31, 0x4c, 0x18, 0x22, 0xd7, 0x75, 0x88, 0x7b, 0xef, 0xe6, - 0xc2, 0xc8, 0xf5, 0xe4, 0xc2, 0x4e, 0xe6, 0x25, 0x0d, 0x2e, 0x48, 0xa1, 0xfc, 0xda, 0xec, 0x18, - 0x3c, 0x16, 0x6a, 0xc7, 0x40, 0x4a, 0x10, 0x77, 0xf7, 0xe0, 0xa1, 0xde, 0x8d, 0x6a, 0x6f, 0x96, - 0xa8, 0x3b, 0x09, 0xbf, 0x0c, 0x49, 0xf7, 0x0e, 0xc8, 0x23, 0xdb, 0xe5, 0xe0, 0xc5, 0x4c, 0xbf, - 0xd4, 0xbc, 0xac, 0x2c, 0xa2, 0x0d, 0x84, 0x89, 0x6c, 0xcd, 0x64, 0xd1, 0x13, 0xa7, 0xfc, 0xdd, - 0x97, 0xa0, 0xb5, 0x88, 0x38, 0x6e, 0xcd, 0xef, 0x7c, 0x1c, 0xb5, 0xe7, 0x8f, 0xc0, 0xa8, 0xf7, - 0xeb, 0x2d, 0x0a, 0x70, 0x84, 0x03, 0xb3, 0xd1, 0xaf, 0x62, 0xee, 0x3f, 0xd4, 0xe0, 0x8c, 0x97, - 0xfd, 0xad, 0xc8, 0xf7, 0xeb, 0x36, 0xee, 0xe9, 0xdf, 0x04, 0x71, 0x8b, 0x39, 0x8e, 0xfd, 0xc6, - 0x06, 0x7b, 0x8c, 0xf4, 0x65, 0x5f, 0x20, 0xff, 0x9b, 0x02, 0xa2, 0x2c, 0x82, 0xf0, 0xcb, 0xae, - 0x4c, 0x3f, 0x08, 0x31, 0x2a, 0x5f, 0xd6, 0x6b, 0x4c, 0xd1, 0xeb, 0x93, 0x3e, 0x7a, 0x91, 0x38, - 0x32, 0x6e, 0x4a, 0x7a, 0x79, 0x9e, 0x56, 0x7d, 0xd9, 0x17, 0x78, 0xf0, 0xe5, 0xe3, 0xb8, 0xff, - 0x23, 0x11, 0x15, 0xac, 0xe4, 0x1c, 0xc4, 0x4b, 0x2a, 0x8f, 0xbf, 0x9e, 0x45, 0x88, 0x6e, 0xe1, - 0x9f, 0x0e, 0x9b, 0x64, 0x3f, 0x95, 0xc9, 0x8c, 0xcc, 0x7e, 0x8e, 0x75, 0x16, 0xe2, 0x85, 0xa3, - 0x7a, 0xa3, 0xd6, 0xb6, 0x6c, 0xb6, 0x65, 0xcf, 0x56, 0xd0, 0x31, 0xc6, 0x8c, 0x57, 0x19, 0x6d, - 0x3e, 0x03, 0x09, 0x4f, 0x48, 0x18, 0x31, 0xf4, 0xf8, 0x9f, 0x3a, 0x85, 0xff, 0xe4, 0x53, 0x1a, - 0xfe, 0x53, 0x48, 0x45, 0xe6, 0x1f, 0x84, 0x71, 0x65, 0x81, 0x0c, 0x53, 0x8a, 0x29, 0xc0, 0x7f, - 0x4a, 0xa9, 0xc4, 0x74, 0xf4, 0x3d, 0x7f, 0x7c, 0xee, 0xd4, 0xfc, 0x63, 0x60, 0xf4, 0x2e, 0xa5, - 0x19, 0x43, 0x10, 0xc9, 0x61, 0x91, 0xf7, 0x40, 0x24, 0x8f, 0x64, 0x4e, 0x8f, 0xff, 0xc6, 0x47, - 0x2e, 0x24, 0xf2, 0xe4, 0xdb, 0xa1, 0x88, 0x3b, 0x9f, 0x67, 0xe0, 0xc7, 0xe1, 0x8c, 0xef, 0x52, - 0x1c, 0xc6, 0x17, 0x0a, 0x14, 0x5f, 0x2c, 0xf6, 0xe0, 0x8b, 0x45, 0x82, 0xd7, 0xb2, 0x7c, 0x4b, - 0x33, 0x67, 0xf8, 0x2c, 0x63, 0xa5, 0x6b, 0x9e, 0x2d, 0xd4, 0x5c, 0xf6, 0x71, 0xc6, 0x9b, 0xf7, - 0xe5, 0xb5, 0x02, 0xb6, 0x44, 0xf3, 0xd9, 0x02, 0xc3, 0x17, 0x7c, 0xf1, 0x07, 0xca, 0xbe, 0x9d, - 0x5c, 0x83, 0x98, 0x90, 0x82, 0x50, 0xb8, 0xe8, 0x2b, 0xe4, 0xc8, 0x73, 0x9a, 0xba, 0x28, 0x14, - 0x2e, 0xf9, 0xf2, 0xd6, 0x03, 0x4e, 0x15, 0x95, 0xb2, 0x8b, 0x6c, 0x1a, 0xc9, 0x2d, 0x1b, 0x67, - 0x78, 0x14, 0x48, 0x39, 0xce, 0x0c, 0x44, 0x67, 0x94, 0xdc, 0x32, 0xba, 0x43, 0x0a, 0xc8, 0xf7, - 0x05, 0xf4, 0xb7, 0x12, 0x15, 0x92, 0x5f, 0xce, 0x3e, 0xc1, 0x84, 0x14, 0xfa, 0x0a, 0x09, 0x30, - 0x15, 0x95, 0x54, 0x58, 0xce, 0xef, 0xdd, 0xf9, 0xc6, 0xb9, 0x53, 0x5f, 0x45, 0xaf, 0x7f, 0x45, - 0xaf, 0xaf, 0x7f, 0xe3, 0x9c, 0xf6, 0x1d, 0xf4, 0xfa, 0x1e, 0x7a, 0xfd, 0x10, 0xbd, 0xde, 0xf1, - 0xcd, 0x73, 0xda, 0x8b, 0xe8, 0xf5, 0x59, 0xf4, 0xfa, 0x1b, 0xf4, 0x7a, 0x09, 0xbd, 0xee, 0x7c, - 0x13, 0xf1, 0xa3, 0xd7, 0xd7, 0xd1, 0xfb, 0xef, 0xa0, 0xbf, 0xdf, 0x43, 0x7f, 0x7f, 0x88, 0x5e, - 0xef, 0xf8, 0xd6, 0xb9, 0x53, 0x2f, 0xa0, 0xd7, 0x8b, 0xdf, 0x3a, 0xa7, 0xfd, 0x7f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xde, 0xd7, 0x3e, 0x4d, 0x20, 0x5f, 0x00, 0x00, + // 6510 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x24, 0x57, + 0x75, 0xbf, 0x7a, 0x7a, 0xa4, 0x1d, 0x1d, 0xbd, 0x5a, 0xad, 0xb5, 0x76, 0x2c, 0xaf, 0x25, 0xed, + 0x58, 0x5e, 0xcb, 0xc2, 0xd6, 0x6a, 0xb5, 0xd2, 0x3e, 0x66, 0xb1, 0x5d, 0xf3, 0xda, 0xb5, 0x16, + 0x69, 0x24, 0x5a, 0x12, 0xf6, 0xf2, 0xff, 0x57, 0x4d, 0xf5, 0xce, 0x5c, 0x49, 0x63, 0xcf, 0x74, + 0x0f, 0xd3, 0x2d, 0xdb, 0xf2, 0x87, 0x7f, 0xf9, 0x0f, 0xff, 0x3f, 0x81, 0xa4, 0xf2, 0x24, 0xa9, + 0x00, 0x01, 0x63, 0x48, 0x11, 0x0c, 0xe4, 0x01, 0x09, 0x21, 0x14, 0x95, 0x0a, 0xfe, 0x42, 0xb2, + 0xf9, 0x92, 0x32, 0xf9, 0x94, 0xa2, 0x52, 0x2e, 0xbc, 0xa6, 0x2a, 0x24, 0x71, 0x12, 0x08, 0xae, + 0x82, 0x2a, 0xf3, 0x21, 0x75, 0x5f, 0xdd, 0x7d, 0xef, 0xf4, 0xa8, 0x5b, 0x5e, 0x1b, 0xf8, 0xb2, + 0x3b, 0x73, 0xcf, 0xf9, 0x9d, 0x3e, 0xf7, 0xbc, 0xee, 0xe9, 0x7b, 0xaf, 0x06, 0x5e, 0x5b, 0x86, + 0xe9, 0x5d, 0xdb, 0xde, 0x6d, 0xa0, 0x33, 0xad, 0xb6, 0xed, 0xda, 0x37, 0xf6, 0x77, 0xce, 0xd4, + 0x90, 0x53, 0x6d, 0xd7, 0x5b, 0xae, 0xdd, 0x9e, 0x27, 0x63, 0xfa, 0x08, 0xe5, 0x98, 0xe7, 0x1c, + 0x99, 0x35, 0x18, 0xbd, 0x52, 0x6f, 0xa0, 0xa2, 0xc7, 0xb8, 0x89, 0x5c, 0xfd, 0x22, 0x24, 0x77, + 0xea, 0x0d, 0x94, 0x56, 0xa6, 0xd5, 0xd9, 0x81, 0xc5, 0x99, 0x79, 0x09, 0x34, 0x2f, 0x22, 0x36, + 0xf0, 0xb0, 0x41, 0x10, 0x99, 0xef, 0x27, 0x61, 0x2c, 0x84, 0xaa, 0xeb, 0x90, 0xb4, 0xcc, 0x26, + 0x96, 0xa8, 0xcc, 0xf6, 0x1b, 0xe4, 0xb3, 0x9e, 0x86, 0x63, 0x2d, 0xb3, 0xfa, 0xa4, 0xb9, 0x8b, + 0xd2, 0x09, 0x32, 0xcc, 0xbf, 0xea, 0x93, 0x00, 0x35, 0xd4, 0x42, 0x56, 0x0d, 0x59, 0xd5, 0x83, + 0xb4, 0x3a, 0xad, 0xce, 0xf6, 0x1b, 0x81, 0x11, 0xfd, 0x5d, 0x30, 0xda, 0xda, 0xbf, 0xd1, 0xa8, + 0x57, 0x2b, 0x01, 0x36, 0x98, 0x56, 0x67, 0x7b, 0x0d, 0x8d, 0x12, 0x8a, 0x3e, 0xf3, 0x7d, 0x30, + 0xf2, 0x34, 0x32, 0x9f, 0x0c, 0xb2, 0x0e, 0x10, 0xd6, 0x61, 0x3c, 0x1c, 0x60, 0x2c, 0xc0, 0x60, + 0x13, 0x39, 0x8e, 0xb9, 0x8b, 0x2a, 0xee, 0x41, 0x0b, 0xa5, 0x93, 0x64, 0xf6, 0xd3, 0x1d, 0xb3, + 0x97, 0x67, 0x3e, 0xc0, 0x50, 0x5b, 0x07, 0x2d, 0xa4, 0xe7, 0xa0, 0x1f, 0x59, 0xfb, 0x4d, 0x2a, + 0xa1, 0xb7, 0x8b, 0xfd, 0x4a, 0xd6, 0x7e, 0x53, 0x96, 0x92, 0xc2, 0x30, 0x26, 0xe2, 0x98, 0x83, + 0xda, 0x4f, 0xd5, 0xab, 0x28, 0xdd, 0x47, 0x04, 0xdc, 0xd7, 0x21, 0x60, 0x93, 0xd2, 0x65, 0x19, + 0x1c, 0xa7, 0x17, 0xa0, 0x1f, 0x3d, 0xe3, 0x22, 0xcb, 0xa9, 0xdb, 0x56, 0xfa, 0x18, 0x11, 0x72, + 0x6f, 0x88, 0x17, 0x51, 0xa3, 0x26, 0x8b, 0xf0, 0x71, 0xfa, 0x79, 0x38, 0x66, 0xb7, 0xdc, 0xba, + 0x6d, 0x39, 0xe9, 0xd4, 0xb4, 0x32, 0x3b, 0xb0, 0x78, 0x32, 0x34, 0x10, 0xd6, 0x29, 0x8f, 0xc1, + 0x99, 0xf5, 0x15, 0xd0, 0x1c, 0x7b, 0xbf, 0x5d, 0x45, 0x95, 0xaa, 0x5d, 0x43, 0x95, 0xba, 0xb5, + 0x63, 0xa7, 0xfb, 0x89, 0x80, 0xa9, 0xce, 0x89, 0x10, 0xc6, 0x82, 0x5d, 0x43, 0x2b, 0xd6, 0x8e, + 0x6d, 0x0c, 0x3b, 0xc2, 0x77, 0x7d, 0x1c, 0xfa, 0x9c, 0x03, 0xcb, 0x35, 0x9f, 0x49, 0x0f, 0x92, + 0x08, 0x61, 0xdf, 0x32, 0x3f, 0xe9, 0x85, 0x91, 0x38, 0x21, 0x76, 0x19, 0x7a, 0x77, 0xf0, 0x2c, + 0xd3, 0x89, 0xa3, 0xd8, 0x80, 0x62, 0x44, 0x23, 0xf6, 0xbd, 0x45, 0x23, 0xe6, 0x60, 0xc0, 0x42, + 0x8e, 0x8b, 0x6a, 0x34, 0x22, 0xd4, 0x98, 0x31, 0x05, 0x14, 0xd4, 0x19, 0x52, 0xc9, 0xb7, 0x14, + 0x52, 0x8f, 0xc3, 0x88, 0xa7, 0x52, 0xa5, 0x6d, 0x5a, 0xbb, 0x3c, 0x36, 0xcf, 0x44, 0x69, 0x32, + 0x5f, 0xe2, 0x38, 0x03, 0xc3, 0x8c, 0x61, 0x24, 0x7c, 0xd7, 0x8b, 0x00, 0xb6, 0x85, 0xec, 0x9d, + 0x4a, 0x0d, 0x55, 0x1b, 0xe9, 0x54, 0x17, 0x2b, 0xad, 0x63, 0x96, 0x0e, 0x2b, 0xd9, 0x74, 0xb4, + 0xda, 0xd0, 0x2f, 0xf9, 0xa1, 0x76, 0xac, 0x4b, 0xa4, 0xac, 0xd1, 0x24, 0xeb, 0x88, 0xb6, 0x6d, + 0x18, 0x6e, 0x23, 0x1c, 0xf7, 0xa8, 0xc6, 0x66, 0xd6, 0x4f, 0x94, 0x98, 0x8f, 0x9c, 0x99, 0xc1, + 0x60, 0x74, 0x62, 0x43, 0xed, 0xe0, 0x57, 0xfd, 0x1e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54, + 0xa1, 0x41, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xe2, 0x22, 0x0c, 0x8b, 0xe6, 0xd1, 0x8f, 0x43, 0xaf, + 0xe3, 0x9a, 0x6d, 0x97, 0x44, 0x61, 0xaf, 0x41, 0xbf, 0xe8, 0x1a, 0xa8, 0xc8, 0xaa, 0x91, 0x2a, + 0xd7, 0x6b, 0xe0, 0x8f, 0x13, 0x17, 0x60, 0x48, 0x78, 0x7c, 0x5c, 0x60, 0xe6, 0xe3, 0x7d, 0x70, + 0x3c, 0x2c, 0xe6, 0x42, 0xc3, 0x7f, 0x1c, 0xfa, 0xac, 0xfd, 0xe6, 0x0d, 0xd4, 0x4e, 0xab, 0x44, + 0x02, 0xfb, 0xa6, 0xe7, 0xa0, 0xb7, 0x61, 0xde, 0x40, 0x8d, 0x74, 0x72, 0x5a, 0x99, 0x1d, 0x5e, + 0x7c, 0x57, 0xac, 0xa8, 0x9e, 0x5f, 0xc5, 0x10, 0x83, 0x22, 0xf5, 0x87, 0x21, 0xc9, 0x4a, 0x1c, + 0x96, 0x30, 0x17, 0x4f, 0x02, 0x8e, 0x45, 0x83, 0xe0, 0xf4, 0xbb, 0xa0, 0x1f, 0xff, 0x4f, 0x6d, + 0xdb, 0x47, 0x74, 0x4e, 0xe1, 0x01, 0x6c, 0x57, 0x7d, 0x02, 0x52, 0x24, 0xcc, 0x6a, 0x88, 0x2f, + 0x0d, 0xde, 0x77, 0xec, 0x98, 0x1a, 0xda, 0x31, 0xf7, 0x1b, 0x6e, 0xe5, 0x29, 0xb3, 0xb1, 0x8f, + 0x48, 0xc0, 0xf4, 0x1b, 0x83, 0x6c, 0xf0, 0x7d, 0x78, 0x4c, 0x9f, 0x82, 0x01, 0x1a, 0x95, 0x75, + 0xab, 0x86, 0x9e, 0x21, 0xd5, 0xa7, 0xd7, 0xa0, 0x81, 0xba, 0x82, 0x47, 0xf0, 0xe3, 0x9f, 0x70, + 0x6c, 0x8b, 0xbb, 0x96, 0x3c, 0x02, 0x0f, 0x90, 0xc7, 0x5f, 0x90, 0x0b, 0xdf, 0xdd, 0xe1, 0xd3, + 0x93, 0x63, 0x31, 0xf3, 0xf5, 0x04, 0x24, 0x49, 0xbe, 0x8d, 0xc0, 0xc0, 0xd6, 0xf5, 0x8d, 0x52, + 0xa5, 0xb8, 0xbe, 0x9d, 0x5f, 0x2d, 0x69, 0x8a, 0x3e, 0x0c, 0x40, 0x06, 0xae, 0xac, 0xae, 0xe7, + 0xb6, 0xb4, 0x84, 0xf7, 0x7d, 0xa5, 0xbc, 0x75, 0x7e, 0x49, 0x53, 0x3d, 0xc0, 0x36, 0x1d, 0x48, + 0x06, 0x19, 0xce, 0x2d, 0x6a, 0xbd, 0xba, 0x06, 0x83, 0x54, 0xc0, 0xca, 0xe3, 0xa5, 0xe2, 0xf9, + 0x25, 0xad, 0x4f, 0x1c, 0x39, 0xb7, 0xa8, 0x1d, 0xd3, 0x87, 0xa0, 0x9f, 0x8c, 0xe4, 0xd7, 0xd7, + 0x57, 0xb5, 0x94, 0x27, 0x73, 0x73, 0xcb, 0x58, 0x29, 0x5f, 0xd5, 0xfa, 0x3d, 0x99, 0x57, 0x8d, + 0xf5, 0xed, 0x0d, 0x0d, 0x3c, 0x09, 0x6b, 0xa5, 0xcd, 0xcd, 0xdc, 0xd5, 0x92, 0x36, 0xe0, 0x71, + 0xe4, 0xaf, 0x6f, 0x95, 0x36, 0xb5, 0x41, 0x41, 0xad, 0x73, 0x8b, 0xda, 0x90, 0xf7, 0x88, 0x52, + 0x79, 0x7b, 0x4d, 0x1b, 0xd6, 0x47, 0x61, 0x88, 0x3e, 0x82, 0x2b, 0x31, 0x22, 0x0d, 0x9d, 0x5f, + 0xd2, 0x34, 0x5f, 0x11, 0x2a, 0x65, 0x54, 0x18, 0x38, 0xbf, 0xa4, 0xe9, 0x99, 0x02, 0xf4, 0x92, + 0xe8, 0xd2, 0x75, 0x18, 0x5e, 0xcd, 0xe5, 0x4b, 0xab, 0x95, 0xf5, 0x8d, 0xad, 0x95, 0xf5, 0x72, + 0x6e, 0x55, 0x53, 0xfc, 0x31, 0xa3, 0xf4, 0xde, 0xed, 0x15, 0xa3, 0x54, 0xd4, 0x12, 0xc1, 0xb1, + 0x8d, 0x52, 0x6e, 0xab, 0x54, 0xd4, 0xd4, 0x4c, 0x15, 0x8e, 0x87, 0xd5, 0x99, 0xd0, 0xcc, 0x08, + 0xb8, 0x38, 0xd1, 0xc5, 0xc5, 0x44, 0x56, 0x87, 0x8b, 0x3f, 0xa7, 0xc0, 0x58, 0x48, 0xad, 0x0d, + 0x7d, 0xc8, 0x23, 0xd0, 0x4b, 0x43, 0x94, 0xae, 0x3e, 0xf7, 0x87, 0x16, 0x6d, 0x12, 0xb0, 0x1d, + 0x2b, 0x10, 0xc1, 0x05, 0x57, 0x60, 0xb5, 0xcb, 0x0a, 0x8c, 0x45, 0x74, 0x28, 0xf9, 0x21, 0x05, + 0xd2, 0xdd, 0x64, 0x47, 0x14, 0x8a, 0x84, 0x50, 0x28, 0x2e, 0xcb, 0x0a, 0x9c, 0xea, 0x3e, 0x87, + 0x0e, 0x2d, 0xbe, 0xa0, 0xc0, 0x78, 0x78, 0xa3, 0x12, 0xaa, 0xc3, 0xc3, 0xd0, 0xd7, 0x44, 0xee, + 0x9e, 0xcd, 0x17, 0xeb, 0xd3, 0x21, 0x4b, 0x00, 0x26, 0xcb, 0xb6, 0x62, 0xa8, 0xe0, 0x1a, 0xa2, + 0x76, 0xeb, 0x36, 0xa8, 0x36, 0x1d, 0x9a, 0x7e, 0x34, 0x01, 0x77, 0x84, 0x0a, 0x0f, 0x55, 0xf4, + 0x6e, 0x80, 0xba, 0xd5, 0xda, 0x77, 0xe9, 0x82, 0x4c, 0xeb, 0x53, 0x3f, 0x19, 0x21, 0xb9, 0x8f, + 0x6b, 0xcf, 0xbe, 0xeb, 0xd1, 0x55, 0x42, 0x07, 0x3a, 0x44, 0x18, 0x2e, 0xfa, 0x8a, 0x26, 0x89, + 0xa2, 0x93, 0x5d, 0x66, 0xda, 0xb1, 0xd6, 0x2d, 0x80, 0x56, 0x6d, 0xd4, 0x91, 0xe5, 0x56, 0x1c, + 0xb7, 0x8d, 0xcc, 0x66, 0xdd, 0xda, 0x25, 0x05, 0x38, 0x95, 0xed, 0xdd, 0x31, 0x1b, 0x0e, 0x32, + 0x46, 0x28, 0x79, 0x93, 0x53, 0x31, 0x82, 0xac, 0x32, 0xed, 0x00, 0xa2, 0x4f, 0x40, 0x50, 0xb2, + 0x87, 0xc8, 0x7c, 0xf9, 0x18, 0x0c, 0x04, 0xda, 0x3a, 0xfd, 0x14, 0x0c, 0x3e, 0x61, 0x3e, 0x65, + 0x56, 0x78, 0xab, 0x4e, 0x2d, 0x31, 0x80, 0xc7, 0x36, 0x58, 0xbb, 0xbe, 0x00, 0xc7, 0x09, 0x8b, + 0xbd, 0xef, 0xa2, 0x76, 0xa5, 0xda, 0x30, 0x1d, 0x87, 0x18, 0x2d, 0x45, 0x58, 0x75, 0x4c, 0x5b, + 0xc7, 0xa4, 0x02, 0xa7, 0xe8, 0xcb, 0x30, 0x46, 0x10, 0xcd, 0xfd, 0x86, 0x5b, 0x6f, 0x35, 0x50, + 0x05, 0xbf, 0x3c, 0x38, 0xa4, 0x10, 0x7b, 0x9a, 0x8d, 0x62, 0x8e, 0x35, 0xc6, 0x80, 0x35, 0x72, + 0xf4, 0x22, 0xdc, 0x4d, 0x60, 0xbb, 0xc8, 0x42, 0x6d, 0xd3, 0x45, 0x15, 0xf4, 0x81, 0x7d, 0xb3, + 0xe1, 0x54, 0x4c, 0xab, 0x56, 0xd9, 0x33, 0x9d, 0xbd, 0xf4, 0x71, 0x2c, 0x20, 0x9f, 0x48, 0x2b, + 0xc6, 0x9d, 0x98, 0xf1, 0x2a, 0xe3, 0x2b, 0x11, 0xb6, 0x9c, 0x55, 0x7b, 0xd4, 0x74, 0xf6, 0xf4, + 0x2c, 0x8c, 0x13, 0x29, 0x8e, 0xdb, 0xae, 0x5b, 0xbb, 0x95, 0xea, 0x1e, 0xaa, 0x3e, 0x59, 0xd9, + 0x77, 0x77, 0x2e, 0xa6, 0xef, 0x0a, 0x3e, 0x9f, 0x68, 0xb8, 0x49, 0x78, 0x0a, 0x98, 0x65, 0xdb, + 0xdd, 0xb9, 0xa8, 0x6f, 0xc2, 0x20, 0x76, 0x46, 0xb3, 0xfe, 0x2c, 0xaa, 0xec, 0xd8, 0x6d, 0xb2, + 0xb2, 0x0c, 0x87, 0x64, 0x76, 0xc0, 0x82, 0xf3, 0xeb, 0x0c, 0xb0, 0x66, 0xd7, 0x50, 0xb6, 0x77, + 0x73, 0xa3, 0x54, 0x2a, 0x1a, 0x03, 0x5c, 0xca, 0x15, 0xbb, 0x8d, 0x03, 0x6a, 0xd7, 0xf6, 0x0c, + 0x3c, 0x40, 0x03, 0x6a, 0xd7, 0xe6, 0xe6, 0x5d, 0x86, 0xb1, 0x6a, 0x95, 0xce, 0xb9, 0x5e, 0xad, + 0xb0, 0x16, 0xdf, 0x49, 0x6b, 0x82, 0xb1, 0xaa, 0xd5, 0xab, 0x94, 0x81, 0xc5, 0xb8, 0xa3, 0x5f, + 0x82, 0x3b, 0x7c, 0x63, 0x05, 0x81, 0xa3, 0x1d, 0xb3, 0x94, 0xa1, 0xcb, 0x30, 0xd6, 0x3a, 0xe8, + 0x04, 0xea, 0xc2, 0x13, 0x5b, 0x07, 0x32, 0xec, 0x5e, 0xf2, 0xda, 0xd6, 0x46, 0x55, 0xd3, 0x45, + 0xb5, 0xf4, 0x89, 0x20, 0x77, 0x80, 0xa0, 0x9f, 0x01, 0xad, 0x5a, 0xad, 0x20, 0xcb, 0xbc, 0xd1, + 0x40, 0x15, 0xb3, 0x8d, 0x2c, 0xd3, 0x49, 0x4f, 0x05, 0x99, 0x87, 0xab, 0xd5, 0x12, 0xa1, 0xe6, + 0x08, 0x51, 0x9f, 0x83, 0x51, 0xfb, 0xc6, 0x13, 0x55, 0x1a, 0x59, 0x95, 0x56, 0x1b, 0xed, 0xd4, + 0x9f, 0x49, 0xcf, 0x10, 0x33, 0x8d, 0x60, 0x02, 0x89, 0xab, 0x0d, 0x32, 0xac, 0xdf, 0x0f, 0x5a, + 0xd5, 0xd9, 0x33, 0xdb, 0x2d, 0xb2, 0xb4, 0x3b, 0x2d, 0xb3, 0x8a, 0xd2, 0xf7, 0x52, 0x56, 0x3a, + 0x5e, 0xe6, 0xc3, 0x38, 0xb2, 0x9d, 0xa7, 0xeb, 0x3b, 0x2e, 0x97, 0x78, 0x1f, 0x8d, 0x6c, 0x32, + 0xc6, 0xa4, 0x3d, 0x0e, 0xc7, 0xf7, 0xad, 0xba, 0xe5, 0xa2, 0x76, 0xab, 0x8d, 0x70, 0x13, 0x4f, + 0x33, 0x31, 0xfd, 0x2f, 0xc7, 0xba, 0xb4, 0xe1, 0xdb, 0x41, 0x6e, 0x1a, 0x00, 0xc6, 0xd8, 0x7e, + 0xe7, 0x60, 0x26, 0x0b, 0x83, 0xc1, 0xb8, 0xd0, 0xfb, 0x81, 0x46, 0x86, 0xa6, 0xe0, 0x35, 0xb6, + 0xb0, 0x5e, 0xc4, 0xab, 0xe3, 0xfb, 0x4b, 0x5a, 0x02, 0xaf, 0xd2, 0xab, 0x2b, 0x5b, 0xa5, 0x8a, + 0xb1, 0x5d, 0xde, 0x5a, 0x59, 0x2b, 0x69, 0xea, 0x5c, 0x7f, 0xea, 0x07, 0xc7, 0xb4, 0xe7, 0x9e, + 0x7b, 0xee, 0xb9, 0x44, 0xe6, 0xdb, 0x09, 0x18, 0x16, 0x3b, 0x63, 0xfd, 0xdd, 0x70, 0x82, 0xbf, + 0xc6, 0x3a, 0xc8, 0xad, 0x3c, 0x5d, 0x6f, 0x93, 0x50, 0x6d, 0x9a, 0xb4, 0xb7, 0xf4, 0xac, 0x7c, + 0x9c, 0x71, 0x6d, 0x22, 0xf7, 0xb1, 0x7a, 0x1b, 0x07, 0x62, 0xd3, 0x74, 0xf5, 0x55, 0x98, 0xb2, + 0xec, 0x8a, 0xe3, 0x9a, 0x56, 0xcd, 0x6c, 0xd7, 0x2a, 0xfe, 0x06, 0x42, 0xc5, 0xac, 0x56, 0x91, + 0xe3, 0xd8, 0x74, 0x89, 0xf0, 0xa4, 0x9c, 0xb4, 0xec, 0x4d, 0xc6, 0xec, 0xd7, 0xce, 0x1c, 0x63, + 0x95, 0x22, 0x42, 0xed, 0x16, 0x11, 0x77, 0x41, 0x7f, 0xd3, 0x6c, 0x55, 0x90, 0xe5, 0xb6, 0x0f, + 0x48, 0x3f, 0x97, 0x32, 0x52, 0x4d, 0xb3, 0x55, 0xc2, 0xdf, 0xdf, 0x39, 0x1f, 0x04, 0xed, 0xf8, + 0xcf, 0x2a, 0x0c, 0x06, 0x7b, 0x3a, 0xdc, 0x22, 0x57, 0x49, 0xfd, 0x56, 0x48, 0x86, 0xdf, 0x73, + 0x68, 0x07, 0x38, 0x5f, 0xc0, 0x85, 0x3d, 0xdb, 0x47, 0x3b, 0x2d, 0x83, 0x22, 0xf1, 0xa2, 0x8a, + 0x73, 0x1a, 0xd1, 0xfe, 0x3d, 0x65, 0xb0, 0x6f, 0xfa, 0x55, 0xe8, 0x7b, 0xc2, 0x21, 0xb2, 0xfb, + 0x88, 0xec, 0x99, 0xc3, 0x65, 0x5f, 0xdb, 0x24, 0xc2, 0xfb, 0xaf, 0x6d, 0x56, 0xca, 0xeb, 0xc6, + 0x5a, 0x6e, 0xd5, 0x60, 0x70, 0xfd, 0x4e, 0x48, 0x36, 0xcc, 0x67, 0x0f, 0xc4, 0x25, 0x80, 0x0c, + 0xc5, 0x35, 0xfc, 0x9d, 0x90, 0x7c, 0x1a, 0x99, 0x4f, 0x8a, 0x85, 0x97, 0x0c, 0xbd, 0x83, 0xa1, + 0x7f, 0x06, 0x7a, 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0xad, 0x47, 0x4f, 0x41, 0xb2, 0xb0, 0x6e, + 0xe0, 0xf0, 0xd7, 0x60, 0x90, 0x8e, 0x56, 0x36, 0x56, 0x4a, 0x85, 0x92, 0x96, 0xc8, 0x2c, 0x43, + 0x1f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, 0x9c, 0xba, 0xbd, + 0x96, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0xed, 0xdc, 0xcf, 0x27, 0xa6, 0xbe, + 0xa9, 0xc0, 0x40, 0xa0, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0xd8, 0x4f, 0x57, 0xcc, 0x46, 0xdd, + 0x74, 0x58, 0x50, 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0xfb, 0xb9, 0x28, 0xff, 0xbc, 0x02, + 0x9a, 0xdc, 0xda, 0x49, 0x0a, 0x2a, 0xbf, 0x50, 0x05, 0x3f, 0xa5, 0xc0, 0xb0, 0xd8, 0xcf, 0x49, + 0xea, 0x9d, 0xfa, 0x85, 0xaa, 0xf7, 0xbd, 0x04, 0x0c, 0x09, 0x5d, 0x5c, 0x5c, 0xed, 0x3e, 0x00, + 0xa3, 0xf5, 0x1a, 0x6a, 0xb6, 0x6c, 0x17, 0x59, 0xd5, 0x83, 0x4a, 0x03, 0x3d, 0x85, 0x1a, 0xe9, + 0x0c, 0x29, 0x14, 0x67, 0x0e, 0xef, 0x13, 0xe7, 0x57, 0x7c, 0xdc, 0x2a, 0x86, 0x65, 0xc7, 0x56, + 0x8a, 0xa5, 0xb5, 0x8d, 0xf5, 0xad, 0x52, 0xb9, 0x70, 0xbd, 0xb2, 0x5d, 0x7e, 0x4f, 0x79, 0xfd, + 0xb1, 0xb2, 0xa1, 0xd5, 0x25, 0xb6, 0x77, 0x30, 0xd5, 0x37, 0x40, 0x93, 0x95, 0xd2, 0x4f, 0x40, + 0x98, 0x5a, 0x5a, 0x8f, 0x3e, 0x06, 0x23, 0xe5, 0xf5, 0xca, 0xe6, 0x4a, 0xb1, 0x54, 0x29, 0x5d, + 0xb9, 0x52, 0x2a, 0x6c, 0x6d, 0xd2, 0x17, 0x67, 0x8f, 0x7b, 0x4b, 0x4c, 0xea, 0x4f, 0xaa, 0x30, + 0x16, 0xa2, 0x89, 0x9e, 0x63, 0x3d, 0x3b, 0x7d, 0x8d, 0x78, 0x30, 0x8e, 0xf6, 0xf3, 0xb8, 0x2b, + 0xd8, 0x30, 0xdb, 0x2e, 0x6b, 0xf1, 0xef, 0x07, 0x6c, 0x25, 0xcb, 0xad, 0xef, 0xd4, 0x51, 0x9b, + 0xed, 0x33, 0xd0, 0x46, 0x7e, 0xc4, 0x1f, 0xa7, 0x5b, 0x0d, 0x0f, 0x80, 0xde, 0xb2, 0x9d, 0xba, + 0x5b, 0x7f, 0x0a, 0x55, 0xea, 0x16, 0xdf, 0x94, 0xc0, 0x8d, 0x7d, 0xd2, 0xd0, 0x38, 0x65, 0xc5, + 0x72, 0x3d, 0x6e, 0x0b, 0xed, 0x9a, 0x12, 0x37, 0x2e, 0xe0, 0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, + 0x0a, 0x06, 0x6b, 0xf6, 0x3e, 0x6e, 0x93, 0x28, 0x1f, 0x5e, 0x2f, 0x14, 0x63, 0x80, 0x8e, 0x79, + 0x2c, 0xac, 0x8f, 0xf5, 0x77, 0x43, 0x06, 0x8d, 0x01, 0x3a, 0x46, 0x59, 0xee, 0x83, 0x11, 0x73, + 0x77, 0xb7, 0x8d, 0x85, 0x73, 0x41, 0xb4, 0x33, 0x1f, 0xf6, 0x86, 0x09, 0xe3, 0xc4, 0x35, 0x48, + 0x71, 0x3b, 0xe0, 0x25, 0x19, 0x5b, 0xa2, 0xd2, 0xa2, 0x7b, 0x52, 0x89, 0xd9, 0x7e, 0x23, 0x65, + 0x71, 0xe2, 0x29, 0x18, 0xac, 0x3b, 0x15, 0x7f, 0x73, 0x34, 0x31, 0x9d, 0x98, 0x4d, 0x19, 0x03, + 0x75, 0xc7, 0xdb, 0x0d, 0xcb, 0x7c, 0x21, 0x01, 0xc3, 0xe2, 0xe6, 0xae, 0x5e, 0x84, 0x54, 0xc3, + 0xae, 0x9a, 0x24, 0xb4, 0xe8, 0xc9, 0xc2, 0x6c, 0xc4, 0x7e, 0xf0, 0xfc, 0x2a, 0xe3, 0x37, 0x3c, + 0xe4, 0xc4, 0x3f, 0x28, 0x90, 0xe2, 0xc3, 0xfa, 0x38, 0x24, 0x5b, 0xa6, 0xbb, 0x47, 0xc4, 0xf5, + 0xe6, 0x13, 0x9a, 0x62, 0x90, 0xef, 0x78, 0xdc, 0x69, 0x99, 0x16, 0x09, 0x01, 0x36, 0x8e, 0xbf, + 0x63, 0xbf, 0x36, 0x90, 0x59, 0x23, 0x6d, 0xbf, 0xdd, 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, + 0x78, 0x81, 0x0d, 0xeb, 0xef, 0x82, 0x51, 0xb7, 0x6d, 0xd6, 0x1b, 0x02, 0x6f, 0x92, 0xf0, 0x6a, + 0x9c, 0xe0, 0x31, 0x67, 0xe1, 0x4e, 0x2e, 0xb7, 0x86, 0x5c, 0xb3, 0xba, 0x87, 0x6a, 0x3e, 0xa8, + 0x8f, 0xec, 0x1c, 0x9e, 0x60, 0x0c, 0x45, 0x46, 0xe7, 0xd8, 0xcc, 0x77, 0x14, 0x18, 0xe5, 0x2f, + 0x2a, 0x35, 0xcf, 0x58, 0x6b, 0x00, 0xa6, 0x65, 0xd9, 0x6e, 0xd0, 0x5c, 0x9d, 0xa1, 0xdc, 0x81, + 0x9b, 0xcf, 0x79, 0x20, 0x23, 0x20, 0x60, 0xa2, 0x09, 0xe0, 0x53, 0xba, 0x9a, 0x6d, 0x0a, 0x06, + 0xd8, 0xce, 0x3d, 0x39, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x87, 0xf0, 0x1b, 0x8d, 0x7e, 0x1c, 0x7a, + 0x6f, 0xa0, 0xdd, 0xba, 0xc5, 0xf6, 0x13, 0xe9, 0x17, 0xbe, 0x4b, 0x99, 0xf4, 0x76, 0x29, 0xf3, + 0x8f, 0xc3, 0x58, 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0xe9, 0xf5, 0xda, 0x79, 0x54, 0x79, 0x3f, + 0xf8, 0x2d, 0xe6, 0xe7, 0x12, 0xea, 0xd5, 0x8d, 0xfc, 0x97, 0x12, 0x13, 0x57, 0x29, 0x6e, 0x83, + 0x4f, 0xd3, 0x40, 0x3b, 0x0d, 0x54, 0xc5, 0xaa, 0xc3, 0x8f, 0x4f, 0xc3, 0x83, 0xbb, 0x75, 0x77, + 0x6f, 0xff, 0xc6, 0x7c, 0xd5, 0x6e, 0x9e, 0xd9, 0xb5, 0x77, 0x6d, 0xff, 0xb8, 0x0b, 0x7f, 0x23, + 0x5f, 0xc8, 0x27, 0x76, 0xe4, 0xd5, 0xef, 0x8d, 0x4e, 0x44, 0x9e, 0x8f, 0x65, 0xcb, 0x30, 0xc6, + 0x98, 0x2b, 0x64, 0xcf, 0x9d, 0xbe, 0x1a, 0xe8, 0x87, 0xee, 0xbb, 0xa4, 0xbf, 0xfa, 0x7d, 0xb2, + 0x56, 0x1b, 0xa3, 0x0c, 0x8a, 0x69, 0xf4, 0x05, 0x22, 0x6b, 0xc0, 0x1d, 0x82, 0x3c, 0x9a, 0x97, + 0xa8, 0x1d, 0x21, 0xf1, 0xdb, 0x4c, 0xe2, 0x58, 0x40, 0xe2, 0x26, 0x83, 0x66, 0x0b, 0x30, 0x74, + 0x14, 0x59, 0x7f, 0xcb, 0x64, 0x0d, 0xa2, 0xa0, 0x90, 0xab, 0x30, 0x42, 0x84, 0x54, 0xf7, 0x1d, + 0xd7, 0x6e, 0x92, 0xa2, 0x77, 0xb8, 0x98, 0xbf, 0xfb, 0x3e, 0x4d, 0x94, 0x61, 0x0c, 0x2b, 0x78, + 0xa8, 0x6c, 0x16, 0xc8, 0x31, 0x43, 0x0d, 0x55, 0x1b, 0x11, 0x12, 0x6e, 0x32, 0x45, 0x3c, 0xfe, + 0xec, 0xfb, 0xe0, 0x38, 0xfe, 0x4c, 0x6a, 0x52, 0x50, 0x93, 0xe8, 0x5d, 0xa6, 0xf4, 0x77, 0x3e, + 0x44, 0x73, 0x71, 0xcc, 0x13, 0x10, 0xd0, 0x29, 0xe0, 0xc5, 0x5d, 0xe4, 0xba, 0xa8, 0xed, 0x54, + 0xcc, 0x46, 0x98, 0x7a, 0x81, 0xd7, 0xf4, 0xf4, 0x27, 0x5e, 0x17, 0xbd, 0x78, 0x95, 0x22, 0x73, + 0x8d, 0x46, 0x76, 0x1b, 0x4e, 0x84, 0x44, 0x45, 0x0c, 0x99, 0x9f, 0x64, 0x32, 0x8f, 0x77, 0x44, + 0x06, 0x16, 0xbb, 0x01, 0x7c, 0xdc, 0xf3, 0x65, 0x0c, 0x99, 0x7f, 0xc0, 0x64, 0xea, 0x0c, 0xcb, + 0x5d, 0x8a, 0x25, 0x5e, 0x83, 0xd1, 0xa7, 0x50, 0xfb, 0x86, 0xed, 0xb0, 0xad, 0x91, 0x18, 0xe2, + 0x3e, 0xc5, 0xc4, 0x8d, 0x30, 0x20, 0xd9, 0x2b, 0xc1, 0xb2, 0x2e, 0x41, 0x6a, 0xc7, 0xac, 0xa2, + 0x18, 0x22, 0x3e, 0xcd, 0x44, 0x1c, 0xc3, 0xfc, 0x18, 0x9a, 0x83, 0xc1, 0x5d, 0x9b, 0x2d, 0x4b, + 0xd1, 0xf0, 0xe7, 0x19, 0x7c, 0x80, 0x63, 0x98, 0x88, 0x96, 0xdd, 0xda, 0x6f, 0xe0, 0x35, 0x2b, + 0x5a, 0xc4, 0x67, 0xb8, 0x08, 0x8e, 0x61, 0x22, 0x8e, 0x60, 0xd6, 0x17, 0xb8, 0x08, 0x27, 0x60, + 0xcf, 0x47, 0x60, 0xc0, 0xb6, 0x1a, 0x07, 0xb6, 0x15, 0x47, 0x89, 0xcf, 0x32, 0x09, 0xc0, 0x20, + 0x58, 0xc0, 0x65, 0xe8, 0x8f, 0xeb, 0x88, 0xcf, 0xbf, 0xce, 0xd3, 0x83, 0x7b, 0xe0, 0x2a, 0x8c, + 0xf0, 0x02, 0x55, 0xb7, 0xad, 0x18, 0x22, 0xfe, 0x88, 0x89, 0x18, 0x0e, 0xc0, 0xd8, 0x34, 0x5c, + 0xe4, 0xb8, 0xbb, 0x28, 0x8e, 0x90, 0x2f, 0xf0, 0x69, 0x30, 0x08, 0x33, 0xe5, 0x0d, 0x64, 0x55, + 0xf7, 0xe2, 0x49, 0x78, 0x91, 0x9b, 0x92, 0x63, 0xb0, 0x88, 0x02, 0x0c, 0x35, 0xcd, 0xb6, 0xb3, + 0x67, 0x36, 0x62, 0xb9, 0xe3, 0x8b, 0x4c, 0xc6, 0xa0, 0x07, 0x62, 0x16, 0xd9, 0xb7, 0x8e, 0x22, + 0xe6, 0x4b, 0xdc, 0x22, 0x01, 0x18, 0x4b, 0x3d, 0xc7, 0x25, 0x1b, 0x50, 0x47, 0x91, 0xf6, 0x65, + 0x9e, 0x7a, 0x14, 0xbb, 0x16, 0x94, 0x78, 0x19, 0xfa, 0x9d, 0xfa, 0xb3, 0xb1, 0xc4, 0xfc, 0x31, + 0xf7, 0x34, 0x01, 0x60, 0xf0, 0x75, 0xb8, 0x33, 0x74, 0x99, 0x88, 0x21, 0xec, 0x4f, 0x98, 0xb0, + 0xf1, 0x90, 0xa5, 0x82, 0x95, 0x84, 0xa3, 0x8a, 0xfc, 0x53, 0x5e, 0x12, 0x90, 0x24, 0x6b, 0x03, + 0xbf, 0x28, 0x38, 0xe6, 0xce, 0xd1, 0xac, 0xf6, 0x67, 0xdc, 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x0b, + 0xc6, 0x99, 0xc4, 0xa3, 0xf9, 0xf5, 0x2b, 0xbc, 0xb0, 0x52, 0xf4, 0xb6, 0xe8, 0xdd, 0xff, 0x05, + 0x13, 0x9e, 0x39, 0x79, 0x47, 0xea, 0x54, 0x9a, 0x66, 0x2b, 0x86, 0xe4, 0xaf, 0x32, 0xc9, 0xbc, + 0xe2, 0x7b, 0x2d, 0xad, 0xb3, 0x66, 0xb6, 0xb0, 0xf0, 0xc7, 0x21, 0xcd, 0x85, 0xef, 0x5b, 0x6d, + 0x54, 0xb5, 0x77, 0xad, 0xfa, 0xb3, 0xa8, 0x16, 0x43, 0xf4, 0x9f, 0x4b, 0xae, 0xda, 0x0e, 0xc0, + 0xb1, 0xe4, 0x15, 0xd0, 0xbc, 0x5e, 0xa5, 0x52, 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0x2f, + 0xb8, 0xa7, 0x3c, 0xdc, 0x0a, 0x81, 0x65, 0x4b, 0x30, 0x4c, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x31, + 0x41, 0x43, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd, 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0x2f, 0x79, + 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0x83, 0x16, 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe7, 0x85, + 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10, 0xf1, 0x57, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, + 0xf5, 0x17, 0xda, 0x36, 0xda, 0xad, 0x3b, 0x6e, 0x9b, 0xf6, 0xc1, 0x87, 0x8b, 0xfa, 0xc6, 0xeb, + 0x62, 0x13, 0x66, 0x04, 0xa0, 0xd9, 0x6b, 0x30, 0x22, 0xb5, 0x18, 0x7a, 0xd4, 0x9d, 0x85, 0xf4, + 0xff, 0x7d, 0x83, 0x15, 0x23, 0xb1, 0xc3, 0xc8, 0xae, 0x62, 0xbf, 0x8b, 0x7d, 0x40, 0xb4, 0xb0, + 0x0f, 0xbd, 0xe1, 0xb9, 0x5e, 0x68, 0x03, 0xb2, 0x57, 0x60, 0x48, 0xe8, 0x01, 0xa2, 0x45, 0xfd, + 0x3f, 0x26, 0x6a, 0x30, 0xd8, 0x02, 0x64, 0x97, 0x21, 0x89, 0xd7, 0xf3, 0x68, 0xf8, 0xff, 0x67, + 0x70, 0xc2, 0x9e, 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x98, 0x41, 0x3d, 0x08, 0x86, + 0xf3, 0x35, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x5a, + 0x92, 0xd5, 0x61, 0x6e, 0xbb, 0xcb, 0x70, 0x8c, 0x2d, 0xde, 0xd1, 0xe8, 0x8f, 0xb2, 0x87, 0x73, + 0x44, 0xf6, 0x02, 0xf4, 0xc6, 0x34, 0xf8, 0xaf, 0x33, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, + 0x60, 0x47, 0xc3, 0x7f, 0x83, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x26, + 0x57, 0x9d, 0x21, 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x2d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, + 0x02, 0xfd, 0x5e, 0xfd, 0x8d, 0xc6, 0xff, 0x36, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, + 0x16, 0xf1, 0x3b, 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x31, 0x9e, + 0x46, 0xd2, 0x92, 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe5, 0xde, 0x24, 0xfc, 0x58, + 0x0d, 0x79, 0x91, 0x8c, 0x96, 0xf1, 0xfb, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0x6e, 0x80, 0xde, 0xb9, + 0x40, 0x46, 0xcb, 0xfb, 0x38, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, + 0x31, 0x5a, 0xea, 0x27, 0xde, 0x90, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xcb, 0xaf, 0xb2, 0xc1, + 0x85, 0x31, 0x5a, 0xec, 0x27, 0xdf, 0x10, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, + 0x29, 0x5a, 0xd6, 0xa7, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe6, + 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, + 0x43, 0xca, 0xda, 0x6f, 0x34, 0x70, 0x6c, 0xe9, 0x87, 0x5f, 0x23, 0x4a, 0xff, 0xeb, 0x9b, 0x0c, + 0xcc, 0x01, 0xd9, 0x65, 0xe8, 0x45, 0xcd, 0x1b, 0xa8, 0x16, 0x85, 0xfc, 0xb7, 0x37, 0x79, 0x3d, + 0xc1, 0xdc, 0xd9, 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xfb, 0x9b, 0xec, + 0x86, 0x82, 0x0f, 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x87, 0x0b, 0x78, 0x5d, 0x14, 0x40, 0x5e, 0xc0, + 0x2f, 0xc1, 0xb1, 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0xdd, 0x28, 0xf4, 0x7f, 0x30, 0x34, 0xe7, 0xc7, + 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0xbb, 0x4e, 0x14, 0xf6, 0x3f, 0x19, 0xd6, 0x03, 0x60, 0x70, + 0xd5, 0x74, 0xdc, 0x38, 0xf3, 0xfe, 0x2f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0x3a, + 0x88, 0xc2, 0xfe, 0x90, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, + 0x80, 0x7f, 0xc4, 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xcd, + 0x3c, 0xcd, 0xf9, 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x9f, 0x75, 0x34, 0x11, 0xf0, 0x1f, + 0xbf, 0xe9, 0xbd, 0xe4, 0x7a, 0x98, 0xfc, 0xa9, 0xf0, 0xcd, 0x3a, 0xb8, 0x6a, 0x5f, 0xb5, 0xe9, + 0x36, 0x1d, 0x7c, 0xa7, 0x01, 0x33, 0x55, 0xbb, 0x79, 0xc3, 0x76, 0xce, 0xd0, 0x82, 0xe2, 0x95, + 0x93, 0x33, 0xee, 0x1e, 0xc2, 0xab, 0x08, 0xdb, 0x6c, 0x4b, 0xe2, 0xcf, 0x13, 0x47, 0xdb, 0xa1, + 0x23, 0x87, 0xaf, 0xe5, 0x3a, 0x56, 0xb2, 0x4c, 0xf6, 0xbf, 0xf5, 0x93, 0xd0, 0x47, 0xd4, 0x3e, + 0x4b, 0xce, 0x98, 0x94, 0x7c, 0xf2, 0xe6, 0x2b, 0x53, 0x3d, 0x06, 0x1b, 0xf3, 0xa8, 0x8b, 0x64, + 0x83, 0x32, 0x21, 0x50, 0x17, 0x3d, 0xea, 0x39, 0xba, 0x47, 0x29, 0x50, 0xcf, 0x79, 0xd4, 0x25, + 0xb2, 0x5b, 0xa9, 0x0a, 0xd4, 0x25, 0x8f, 0xba, 0x4c, 0x76, 0xe4, 0x87, 0x04, 0xea, 0xb2, 0x47, + 0x3d, 0x4f, 0xf6, 0xe1, 0x93, 0x02, 0xf5, 0xbc, 0x47, 0xbd, 0x40, 0xb6, 0xe0, 0x47, 0x05, 0xea, + 0x05, 0x8f, 0x7a, 0x91, 0x6c, 0xbd, 0xeb, 0x02, 0xf5, 0xa2, 0x47, 0xbd, 0x44, 0xee, 0x93, 0x1c, + 0x13, 0xa8, 0x97, 0xf4, 0x49, 0x38, 0x46, 0x67, 0xbe, 0x40, 0xce, 0x69, 0x47, 0x18, 0x99, 0x0f, + 0xfa, 0xf4, 0xb3, 0xe4, 0xee, 0x48, 0x9f, 0x48, 0x3f, 0xeb, 0xd3, 0x17, 0xc9, 0x2d, 0x6a, 0x4d, + 0xa4, 0x2f, 0xfa, 0xf4, 0x73, 0xe9, 0x21, 0x72, 0x7f, 0x46, 0xa0, 0x9f, 0xf3, 0xe9, 0x4b, 0xe9, + 0x61, 0x1c, 0xb9, 0x22, 0x7d, 0xc9, 0xa7, 0x2f, 0xa7, 0x47, 0xa6, 0x95, 0xd9, 0x41, 0x91, 0xbe, + 0x9c, 0xf9, 0x20, 0x71, 0xaf, 0xe5, 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, + 0x9e, 0x4b, 0xc7, 0x45, 0x97, 0x7a, 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, + 0xe7, 0xc0, 0x71, 0xd1, 0x81, 0x9e, 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, + 0xb9, 0x6b, 0x5c, 0x74, 0x97, 0xe7, 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, + 0x73, 0xd2, 0x92, 0x73, 0x7c, 0xb7, 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, + 0x91, 0x96, 0x5c, 0xe1, 0x3b, 0x81, 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0x1e, 0x9a, 0x63, + 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, + 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9e, 0x63, 0x6a, 0x44, 0x8e, 0xa9, + 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, + 0x77, 0xef, 0xb8, 0xe8, 0xde, 0xd0, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, + 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, + 0xb7, 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, + 0xb5, 0x6b, 0x8e, 0xa9, 0xc1, 0x1c, 0xfb, 0x6b, 0x15, 0x74, 0x9a, 0x63, 0x1b, 0xe4, 0xa6, 0x0f, + 0x73, 0xc5, 0xa4, 0x94, 0x69, 0x7d, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, + 0xa2, 0x47, 0xe7, 0xd9, 0x26, 0xd2, 0xcf, 0x79, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xc9, 0xa3, 0xf3, + 0x8c, 0x13, 0xe9, 0xcb, 0x1e, 0x9d, 0xe7, 0x9c, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xd6, 0x89, 0xf4, + 0x0b, 0x1e, 0x9d, 0xe7, 0x9d, 0x48, 0xbf, 0xe8, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x4b, 0xfa, 0xb4, + 0x9c, 0x7b, 0x9c, 0xc1, 0x73, 0xed, 0xb4, 0x9c, 0x7d, 0x12, 0xc7, 0x59, 0x9f, 0x83, 0xe7, 0x9f, + 0xc4, 0xb1, 0xe8, 0x73, 0xf0, 0x0c, 0x94, 0x38, 0xce, 0x65, 0x3e, 0x42, 0xdc, 0x67, 0xc9, 0xee, + 0x9b, 0x90, 0xdc, 0x97, 0x08, 0xb8, 0x6e, 0x42, 0x72, 0x5d, 0x22, 0xe0, 0xb6, 0x09, 0xc9, 0x6d, + 0x89, 0x80, 0xcb, 0x26, 0x24, 0x97, 0x25, 0x02, 0xee, 0x9a, 0x90, 0xdc, 0x95, 0x08, 0xb8, 0x6a, + 0x42, 0x72, 0x55, 0x22, 0xe0, 0xa6, 0x09, 0xc9, 0x4d, 0x89, 0x80, 0x8b, 0x26, 0x24, 0x17, 0x25, + 0x02, 0xee, 0x99, 0x90, 0xdc, 0x93, 0x08, 0xb8, 0xe6, 0xa4, 0xec, 0x9a, 0x44, 0xd0, 0x2d, 0x27, + 0x65, 0xb7, 0x24, 0x82, 0x2e, 0x39, 0x29, 0xbb, 0x24, 0x11, 0x74, 0xc7, 0x49, 0xd9, 0x1d, 0x89, + 0xa0, 0x2b, 0x7e, 0x96, 0xe0, 0x1d, 0xe1, 0xa6, 0xdb, 0xde, 0xaf, 0xba, 0xb7, 0xd5, 0x11, 0x2e, + 0x08, 0xed, 0xc3, 0xc0, 0xa2, 0x3e, 0x4f, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, 0x60, 0x0b, 0x42, + 0x63, 0x11, 0x40, 0x58, 0xe1, 0x88, 0xa5, 0xdb, 0xea, 0x0d, 0x17, 0x84, 0x36, 0x23, 0x5a, 0xbf, + 0x8b, 0xef, 0x78, 0xc7, 0xf6, 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x47, 0xed, 0xd8, 0xe6, 0xa2, + 0x4d, 0xee, 0x19, 0x7b, 0x2e, 0xda, 0xd8, 0x1d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, 0x2e, 0xda, 0xb4, + 0x9e, 0x51, 0xdf, 0xde, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, 0xd4, 0x7e, 0x6b, + 0x41, 0x28, 0x25, 0x47, 0x8d, 0x60, 0xf5, 0xc8, 0x11, 0x7c, 0xd4, 0xce, 0x6b, 0x41, 0x28, 0x2f, + 0x47, 0x8e, 0xe0, 0x77, 0xa0, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xa8, 0xfd, 0xd0, 0x5c, 0xb4, + 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x42, 0x04, 0xc7, 0xe9, 0x8f, 0xe6, 0xa2, 0x4d, 0x1b, 0x1e, 0xc1, + 0xb7, 0xdd, 0xcd, 0x7c, 0x46, 0x81, 0xd1, 0x72, 0xbd, 0x56, 0x6a, 0xde, 0x40, 0xb5, 0x1a, 0xaa, + 0x31, 0x3b, 0x2e, 0x08, 0x95, 0xa0, 0x8b, 0xab, 0x5f, 0x7e, 0x65, 0xca, 0xb7, 0xf0, 0x32, 0xa4, + 0xa8, 0x4d, 0x17, 0x16, 0xd2, 0x37, 0x95, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0xa7, 0x38, 0xec, 0xec, + 0x42, 0xfa, 0x1f, 0x95, 0x40, 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x23, 0x1a, 0x5a, 0xb7, 0xad, 0xe1, + 0x99, 0x58, 0x1a, 0x06, 0x74, 0xbb, 0xab, 0x43, 0xb7, 0x80, 0x56, 0xfb, 0x30, 0x52, 0xae, 0xd7, + 0xca, 0xe4, 0xef, 0x77, 0xe3, 0xa8, 0x44, 0x79, 0xa4, 0x7a, 0xb0, 0x20, 0x84, 0x65, 0x10, 0xe1, + 0x85, 0xb4, 0x58, 0x23, 0x32, 0x75, 0xfc, 0x58, 0x4b, 0x78, 0xec, 0x5c, 0xb7, 0xc7, 0xfa, 0x95, + 0xdd, 0x7b, 0xe0, 0x5c, 0xb7, 0x07, 0xfa, 0x39, 0xe4, 0x3d, 0xea, 0x19, 0xbe, 0x38, 0xd3, 0x2b, + 0x37, 0xfa, 0x49, 0x48, 0xac, 0xd0, 0xeb, 0xc0, 0x83, 0xf9, 0x41, 0xac, 0xd4, 0x77, 0x5f, 0x99, + 0x4a, 0x6e, 0xef, 0xd7, 0x6b, 0x46, 0x62, 0xa5, 0xa6, 0x5f, 0x83, 0xde, 0xf7, 0xb1, 0xbf, 0x82, + 0xc3, 0x0c, 0x4b, 0x8c, 0xe1, 0x81, 0xae, 0x7b, 0x44, 0xf8, 0xc1, 0x67, 0xe8, 0x66, 0xe2, 0xfc, + 0x76, 0xdd, 0x72, 0xcf, 0x2e, 0x5e, 0x34, 0xa8, 0x88, 0xcc, 0xff, 0x06, 0xa0, 0xcf, 0x2c, 0x9a, + 0xce, 0x9e, 0x5e, 0xe6, 0x92, 0xe9, 0xa3, 0x2f, 0x7e, 0xf7, 0x95, 0xa9, 0xa5, 0x38, 0x52, 0x1f, + 0xac, 0x99, 0xce, 0xde, 0x83, 0xee, 0x41, 0x0b, 0xcd, 0xe7, 0x0f, 0x5c, 0xe4, 0x70, 0xe9, 0x2d, + 0xbe, 0xea, 0xb1, 0x79, 0xa5, 0x03, 0xf3, 0x4a, 0x09, 0x73, 0xba, 0x22, 0xce, 0x69, 0xe1, 0xad, + 0xce, 0xe7, 0x19, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xa3, 0x2c, 0xa9, 0xde, 0xae, 0x25, 0x5b, 0xbc, + 0x3e, 0x4a, 0x73, 0x55, 0x0f, 0x9b, 0xab, 0x7a, 0x3b, 0x73, 0xfd, 0x09, 0xcd, 0x56, 0x2f, 0x9f, + 0xb6, 0x2d, 0x7a, 0x15, 0xf1, 0x97, 0x6b, 0x2f, 0xe8, 0x6d, 0xed, 0x02, 0xb2, 0xc9, 0x9b, 0x2f, + 0x4c, 0x29, 0x99, 0xcf, 0x24, 0xf8, 0xcc, 0x69, 0x22, 0xbd, 0xb5, 0x99, 0xff, 0xb2, 0xf4, 0x54, + 0xef, 0x84, 0x85, 0x9e, 0x57, 0x60, 0xbc, 0xa3, 0x92, 0x53, 0x33, 0xbd, 0xbd, 0xe5, 0xdc, 0x3a, + 0x6a, 0x39, 0x67, 0x0a, 0x7e, 0x4d, 0x81, 0xe3, 0x52, 0x79, 0xa5, 0xea, 0x9d, 0x91, 0xd4, 0x3b, + 0xd1, 0xf9, 0x24, 0xc2, 0x18, 0xd0, 0x2e, 0xe8, 0x5e, 0x09, 0x10, 0x90, 0xec, 0xf9, 0x7d, 0x49, + 0xf2, 0xfb, 0x49, 0x0f, 0x10, 0x62, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0x92, 0x5b, 0x6d, 0x84, + 0xf4, 0x49, 0x48, 0xac, 0xb7, 0x99, 0x86, 0xc3, 0x14, 0xbf, 0xde, 0xce, 0xb7, 0x4d, 0xab, 0xba, + 0x67, 0x24, 0xd6, 0xdb, 0xfa, 0x29, 0x50, 0x73, 0xec, 0x77, 0x06, 0x06, 0x16, 0x47, 0x28, 0x43, + 0xce, 0xaa, 0x31, 0x0e, 0x4c, 0xd3, 0x27, 0x21, 0xb9, 0x8a, 0xcc, 0x1d, 0xa6, 0x04, 0x50, 0x1e, + 0x3c, 0x62, 0x90, 0x71, 0xf6, 0xc0, 0xc7, 0x21, 0xc5, 0x05, 0xeb, 0x33, 0x18, 0xb1, 0xe3, 0xb2, + 0xc7, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x84, 0xaa, 0x9f, 0x86, 0x5e, 0xa3, 0xbe, 0xbb, 0xe7, + 0xb2, 0x87, 0x77, 0xb2, 0x51, 0x72, 0xe6, 0x3a, 0xf4, 0x7b, 0x1a, 0xbd, 0xcd, 0xa2, 0x8b, 0x74, + 0x6a, 0xfa, 0x44, 0x70, 0x3d, 0xe1, 0xfb, 0x96, 0x74, 0x48, 0x9f, 0x86, 0xd4, 0xa6, 0xdb, 0xf6, + 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0x07, 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, + 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, 0xc5, 0x14, 0x1c, 0x65, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, + 0xef, 0x0d, 0xda, 0x7d, 0xcc, 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, + 0x33, 0x75, 0xd8, 0xff, 0x02, 0x0c, 0x04, 0x9e, 0xa2, 0xcf, 0x32, 0x35, 0x12, 0x32, 0x30, 0x68, + 0x2b, 0xcc, 0x91, 0x41, 0x30, 0x24, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x02, 0x25, 0x66, 0x9e, + 0x13, 0xcd, 0x1c, 0xce, 0xca, 0x4c, 0xbd, 0x40, 0x6d, 0x44, 0xcc, 0x3d, 0x43, 0x83, 0xb3, 0xbb, + 0x13, 0xf1, 0xe7, 0x4c, 0x2f, 0xa8, 0xe5, 0x7a, 0x23, 0xf3, 0x10, 0x00, 0x4d, 0xf9, 0x92, 0xb5, + 0xdf, 0x94, 0xb2, 0x6e, 0x98, 0x1b, 0x78, 0x6b, 0x0f, 0x6d, 0x21, 0x87, 0xb0, 0x88, 0xfd, 0x14, + 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x8f, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, + 0xaf, 0x23, 0x37, 0x67, 0xd9, 0xee, 0x1e, 0x6a, 0x4b, 0x88, 0x45, 0xfd, 0x9c, 0x90, 0xb0, 0xc3, + 0x8b, 0x77, 0x79, 0x88, 0xae, 0xa0, 0x73, 0x99, 0xaf, 0x10, 0x05, 0x71, 0x2b, 0xd0, 0x31, 0x41, + 0x35, 0xc6, 0x04, 0xf5, 0xf3, 0x42, 0xff, 0x76, 0x88, 0x9a, 0xd2, 0xab, 0xe5, 0x25, 0xe1, 0x3d, + 0xe7, 0x70, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0xfd, 0x91, 0x2a, 0x77, 0xe9, 0x6e, + 0x8f, 0x6a, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe9, 0x75, 0x1c, 0xf4, 0x17, 0x1b, 0xc8, 0x0f, 0x84, + 0xe8, 0x0f, 0x44, 0xfa, 0x3e, 0xab, 0x14, 0x3c, 0x55, 0x97, 0xe2, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, + 0x3d, 0x75, 0x2f, 0x1c, 0x21, 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x8f, 0xbc, 0x30, + 0xa5, 0xbc, 0xf8, 0xc2, 0x54, 0x4f, 0xe6, 0x8b, 0x0a, 0x8c, 0x32, 0xce, 0x40, 0xe0, 0x3e, 0x28, + 0x29, 0x7f, 0x07, 0xaf, 0x19, 0x61, 0x16, 0xf8, 0xb9, 0x05, 0xef, 0xb7, 0x15, 0x48, 0x77, 0xe8, + 0xca, 0xed, 0xbd, 0x10, 0x4b, 0xe5, 0xac, 0x52, 0xfa, 0xc5, 0xdb, 0xfc, 0x3a, 0xf4, 0x6e, 0xd5, + 0x9b, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, 0x0f, 0x73, 0xe8, 0x10, 0xa7, 0x51, 0xe5, + 0x04, 0xda, 0xa2, 0x9e, 0x86, 0x64, 0xd1, 0x74, 0x4d, 0xa2, 0xc1, 0xa0, 0x57, 0x5f, 0x4d, 0xd7, + 0xcc, 0x9c, 0x83, 0xc1, 0xb5, 0x03, 0x72, 0x5f, 0xa6, 0x46, 0xee, 0x82, 0x88, 0xdd, 0x1f, 0xef, + 0x57, 0xcf, 0xce, 0xf5, 0xa6, 0x6a, 0xda, 0x4d, 0x25, 0x9b, 0x24, 0xfa, 0x3c, 0x05, 0xc3, 0xeb, + 0x58, 0x6d, 0x82, 0x13, 0x60, 0xf4, 0xe9, 0xaa, 0x37, 0x79, 0xa9, 0x29, 0x53, 0xfd, 0xa6, 0x6c, + 0x1a, 0x94, 0x35, 0xb1, 0x75, 0x0a, 0xea, 0x61, 0x28, 0x6b, 0x73, 0xc9, 0xd4, 0xb0, 0x36, 0x3a, + 0x97, 0x4c, 0x81, 0x36, 0xc4, 0x9e, 0xfb, 0xf7, 0x2a, 0x68, 0xb4, 0xd5, 0x29, 0xa2, 0x9d, 0xba, + 0x55, 0x77, 0x3b, 0xfb, 0x55, 0x4f, 0x63, 0xfd, 0x11, 0xe8, 0xc7, 0x26, 0xbd, 0xc2, 0x7e, 0x67, + 0x0b, 0x9b, 0xfe, 0x14, 0x6b, 0x51, 0x24, 0x11, 0x6c, 0x80, 0x84, 0x8e, 0x8f, 0xd1, 0xaf, 0x80, + 0x5a, 0x2e, 0xaf, 0xb1, 0xc5, 0x6d, 0xe9, 0x50, 0x28, 0xbb, 0x6e, 0xc3, 0xbe, 0xb1, 0x31, 0x67, + 0xd7, 0xc0, 0x02, 0xf4, 0x25, 0x48, 0x94, 0xd7, 0x58, 0xc3, 0x3b, 0x13, 0x47, 0x8c, 0x91, 0x28, + 0xaf, 0x4d, 0xfc, 0x8d, 0x02, 0x43, 0xc2, 0xa8, 0x9e, 0x81, 0x41, 0x3a, 0x10, 0x98, 0x6e, 0x9f, + 0x21, 0x8c, 0x71, 0x9d, 0x13, 0xb7, 0xa9, 0xf3, 0x44, 0x0e, 0x46, 0xa4, 0x71, 0x7d, 0x1e, 0xf4, + 0xe0, 0x10, 0x53, 0x82, 0xfe, 0x46, 0x51, 0x08, 0x25, 0x73, 0x37, 0x80, 0x6f, 0x57, 0xef, 0xa7, + 0x75, 0xca, 0xa5, 0xcd, 0xad, 0x52, 0x51, 0x53, 0x32, 0x5f, 0x57, 0x60, 0x80, 0xb5, 0xad, 0x55, + 0xbb, 0x85, 0xf4, 0x3c, 0x28, 0x39, 0x16, 0x0f, 0x6f, 0x4d, 0x6f, 0x25, 0xa7, 0x9f, 0x01, 0x25, + 0x1f, 0xdf, 0xd5, 0x4a, 0x5e, 0x5f, 0x04, 0xa5, 0xc0, 0x1c, 0x1c, 0xcf, 0x33, 0x4a, 0x21, 0xf3, + 0x23, 0x15, 0xc6, 0x82, 0x6d, 0x34, 0xaf, 0x27, 0xa7, 0xc4, 0xf7, 0xa6, 0x6c, 0xff, 0xd9, 0xc5, + 0x73, 0x4b, 0xf3, 0xf8, 0x1f, 0x2f, 0x24, 0x4f, 0x89, 0xaf, 0x50, 0x9d, 0x2c, 0x1d, 0xd7, 0x44, + 0xb2, 0xc9, 0x00, 0xb5, 0xe3, 0x9a, 0x88, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, + 0x08, 0xd4, 0x8e, 0xa3, 0x00, 0x81, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, + 0x9d, 0xd7, 0x44, 0x18, 0xb9, 0xeb, 0x35, 0x11, 0x91, 0xde, 0x79, 0x4d, 0x44, 0xa4, 0x77, 0x5e, + 0x13, 0xc9, 0x26, 0xdd, 0xf6, 0x3e, 0xea, 0x7e, 0xe8, 0x20, 0xe2, 0x0f, 0x7b, 0x07, 0xf4, 0x0b, + 0xf0, 0x3a, 0x8c, 0xd0, 0xfd, 0x88, 0x82, 0x6d, 0xb9, 0x66, 0xdd, 0x42, 0x6d, 0xfd, 0xdd, 0x30, + 0x48, 0x87, 0xe8, 0x5b, 0x4e, 0xd8, 0x5b, 0x20, 0xa5, 0xb3, 0x72, 0x2b, 0x70, 0x67, 0x7e, 0x96, + 0x84, 0x71, 0x3a, 0x50, 0x36, 0x9b, 0x48, 0xb8, 0x64, 0x74, 0x5a, 0x3a, 0x52, 0x1a, 0xc6, 0xf0, + 0x5b, 0xaf, 0x4c, 0xd1, 0xd1, 0x9c, 0x17, 0x4c, 0xa7, 0xa5, 0xc3, 0x25, 0x91, 0xcf, 0x5f, 0x7f, + 0x4e, 0x4b, 0x17, 0x8f, 0x44, 0x3e, 0x6f, 0xb9, 0xf1, 0xf8, 0xf8, 0x15, 0x24, 0x91, 0xaf, 0xe8, + 0x45, 0xd9, 0x69, 0xe9, 0x32, 0x92, 0xc8, 0x57, 0xf2, 0xe2, 0xed, 0xb4, 0x74, 0xf4, 0x24, 0xf2, + 0x5d, 0xf1, 0x22, 0xef, 0xb4, 0x74, 0x08, 0x25, 0xf2, 0x5d, 0xf5, 0x62, 0xf0, 0xb4, 0x74, 0x55, + 0x49, 0xe4, 0x7b, 0xd4, 0x8b, 0xc6, 0xd3, 0xd2, 0xa5, 0x25, 0x91, 0x6f, 0xc5, 0x8b, 0xcb, 0x59, + 0xf9, 0xfa, 0x92, 0xc8, 0x78, 0xcd, 0x8f, 0xd0, 0x59, 0xf9, 0x22, 0x93, 0xc8, 0xf9, 0x1e, 0x3f, + 0x56, 0x67, 0xe5, 0x2b, 0x4d, 0x22, 0xe7, 0xaa, 0x1f, 0xb5, 0xb3, 0xf2, 0x51, 0x99, 0xc8, 0xb9, + 0xe6, 0xc7, 0xef, 0xac, 0x7c, 0x68, 0x26, 0x72, 0x96, 0xfd, 0x48, 0x9e, 0x95, 0x8f, 0xcf, 0x44, + 0xce, 0x75, 0x7f, 0x0f, 0xfd, 0x5b, 0x52, 0xf8, 0x05, 0x2e, 0x41, 0x65, 0xa4, 0xf0, 0x83, 0x90, + 0xd0, 0xcb, 0x48, 0xa1, 0x07, 0x21, 0x61, 0x97, 0x91, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x23, 0x85, + 0x1c, 0x84, 0x84, 0x5b, 0x46, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x8c, 0x14, 0x6a, 0x10, 0x12, 0x66, + 0x19, 0x29, 0xcc, 0x20, 0x24, 0xc4, 0x32, 0x52, 0x88, 0x41, 0x48, 0x78, 0x65, 0xa4, 0xf0, 0x82, + 0x90, 0xd0, 0x9a, 0x91, 0x43, 0x0b, 0xc2, 0xc2, 0x6a, 0x46, 0x0e, 0x2b, 0x08, 0x0b, 0xa9, 0x7b, + 0xe4, 0x90, 0xea, 0xbf, 0xf5, 0xca, 0x54, 0x2f, 0x1e, 0x0a, 0x44, 0xd3, 0x8c, 0x1c, 0x4d, 0x10, + 0x16, 0x49, 0x33, 0x72, 0x24, 0x41, 0x58, 0x14, 0xcd, 0xc8, 0x51, 0x04, 0x61, 0x11, 0xf4, 0x92, + 0x1c, 0x41, 0xfe, 0x15, 0x9f, 0x8c, 0x74, 0xa2, 0x18, 0x15, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, + 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, + 0x31, 0x22, 0x48, 0x8d, 0x13, 0x41, 0x6a, 0xac, 0x08, 0x52, 0xbb, 0x45, 0xd0, 0x8c, 0x7c, 0xe1, + 0x01, 0xc2, 0x0a, 0xd2, 0x8c, 0x7c, 0xf2, 0x19, 0x1d, 0x42, 0x6a, 0xac, 0x10, 0x52, 0xbb, 0x85, + 0xd0, 0xb7, 0x54, 0x18, 0x13, 0x42, 0x88, 0x1d, 0x0f, 0xbd, 0x5d, 0x15, 0xe8, 0x7c, 0x8c, 0xfb, + 0x15, 0x61, 0x31, 0x75, 0x3e, 0xc6, 0x19, 0xf5, 0x61, 0x71, 0xd6, 0x59, 0x85, 0x4a, 0x31, 0xaa, + 0xd0, 0x15, 0x2f, 0x86, 0xce, 0xc7, 0xb8, 0x77, 0xd1, 0x19, 0x7b, 0x17, 0x0f, 0x2b, 0x02, 0x8f, + 0xc6, 0x2a, 0x02, 0x2b, 0xb1, 0x8a, 0xc0, 0x35, 0xdf, 0x83, 0x1f, 0x4e, 0xc0, 0x71, 0xdf, 0x83, + 0xf4, 0x13, 0xf9, 0x3d, 0xa4, 0x4c, 0xe0, 0x84, 0x4a, 0xe7, 0xa7, 0x36, 0x01, 0x37, 0x26, 0x56, + 0x6a, 0xfa, 0x86, 0x78, 0x56, 0x95, 0x3d, 0xea, 0xf9, 0x4d, 0xc0, 0xe3, 0x6c, 0x2f, 0x74, 0x06, + 0xd4, 0x95, 0x9a, 0x43, 0xaa, 0x45, 0xd8, 0x63, 0x0b, 0x06, 0x26, 0xeb, 0x06, 0xf4, 0x11, 0x76, + 0x87, 0xb8, 0xf7, 0x76, 0x1e, 0x5c, 0x34, 0x98, 0xa4, 0xcc, 0x4b, 0x0a, 0x4c, 0x0b, 0xa1, 0xfc, + 0xf6, 0x9c, 0x18, 0x5c, 0x8e, 0x75, 0x62, 0x20, 0x24, 0x88, 0x7f, 0x7a, 0x70, 0x5f, 0xe7, 0x41, + 0x75, 0x30, 0x4b, 0xe4, 0x93, 0x84, 0xff, 0x03, 0xc3, 0xfe, 0x0c, 0xc8, 0x2b, 0xdb, 0x72, 0xf4, + 0x66, 0x66, 0x58, 0x6a, 0x2e, 0x4b, 0x9b, 0x68, 0x87, 0xc2, 0xbc, 0x6c, 0xcd, 0x64, 0x61, 0xa4, + 0x2c, 0xfe, 0xe1, 0x4e, 0xd4, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0x37, 0x3f, 0x3b, 0xd5, 0x93, 0x79, + 0x00, 0x06, 0x83, 0x7f, 0x9b, 0x23, 0x01, 0xfb, 0x39, 0x30, 0x9b, 0x7c, 0x19, 0x73, 0xff, 0x9e, + 0x02, 0x77, 0x04, 0xd9, 0x1f, 0xab, 0xbb, 0x7b, 0x2b, 0x16, 0xee, 0xe9, 0x1f, 0x82, 0x14, 0x62, + 0x8e, 0x63, 0x3f, 0x6d, 0xc2, 0x5e, 0x23, 0x43, 0xd9, 0xe7, 0xc9, 0xbf, 0x86, 0x07, 0x91, 0x36, + 0x41, 0xf8, 0x63, 0x17, 0x27, 0xee, 0x85, 0x5e, 0x2a, 0x5f, 0xd4, 0x6b, 0x48, 0xd2, 0xeb, 0xf3, + 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x09, 0x7a, 0x05, 0xde, 0x56, 0x43, 0xd9, 0xe7, 0x79, 0xf0, + 0xe5, 0x53, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x2c, 0xa4, 0x4a, 0x32, 0x4f, 0xb8, 0x9e, + 0x45, 0x48, 0x96, 0xed, 0x1a, 0xf9, 0xd1, 0x15, 0xf2, 0xe3, 0xb8, 0xcc, 0xc8, 0xec, 0x97, 0x72, + 0x4f, 0x43, 0xaa, 0xb0, 0x57, 0x6f, 0xd4, 0xda, 0xc8, 0x62, 0x47, 0xf6, 0x6c, 0x07, 0x1d, 0x63, + 0x0c, 0x8f, 0x96, 0x29, 0xc0, 0x68, 0xd9, 0xb6, 0xf2, 0x07, 0x6e, 0xb0, 0x6e, 0xcc, 0x4b, 0x29, + 0xc2, 0x8e, 0x7c, 0xc8, 0x5f, 0x7b, 0x60, 0x86, 0x7c, 0xef, 0x77, 0x5f, 0x99, 0x52, 0xb6, 0xbc, + 0xed, 0xf3, 0x35, 0x38, 0xc1, 0xd2, 0xa7, 0x43, 0xd4, 0x62, 0x94, 0xa8, 0x7e, 0x76, 0x4c, 0x1d, + 0x10, 0xb7, 0x82, 0xc5, 0x59, 0xa1, 0xe2, 0xde, 0x9a, 0x66, 0xb8, 0x29, 0x3a, 0x54, 0x33, 0xf5, + 0x48, 0x9a, 0x85, 0x8a, 0x9b, 0x8f, 0x12, 0x27, 0x69, 0x76, 0x0f, 0xf4, 0x7b, 0xb4, 0x40, 0x34, + 0x04, 0x33, 0x65, 0x71, 0x2e, 0x03, 0x03, 0x81, 0x84, 0xd5, 0x7b, 0x41, 0xc9, 0x69, 0x3d, 0xf8, + 0xbf, 0xbc, 0xa6, 0xe0, 0xff, 0x0a, 0x5a, 0x62, 0xee, 0x5e, 0x18, 0x91, 0xb6, 0x2f, 0x31, 0xa5, + 0xa8, 0x01, 0xfe, 0xaf, 0xa4, 0x0d, 0x4c, 0x24, 0x3f, 0xf2, 0x87, 0x93, 0x3d, 0x73, 0x97, 0x41, + 0xef, 0xdc, 0xe8, 0xd4, 0xfb, 0x20, 0x91, 0xc3, 0x22, 0x4f, 0x40, 0x22, 0x9f, 0xd7, 0x94, 0x89, + 0x91, 0x5f, 0xfd, 0xf4, 0xf4, 0x40, 0x9e, 0xfc, 0xe1, 0xf1, 0x75, 0xe4, 0xe6, 0xf3, 0x0c, 0xfc, + 0x30, 0xdc, 0x11, 0xba, 0x51, 0x8a, 0xf1, 0x85, 0x02, 0xc5, 0x17, 0x8b, 0x1d, 0xf8, 0x62, 0x91, + 0xe0, 0x95, 0x2c, 0x3f, 0x70, 0xce, 0xe9, 0x21, 0x9b, 0x8c, 0xe9, 0x5a, 0xe0, 0x80, 0x3b, 0x97, + 0x7d, 0x98, 0xf1, 0xe6, 0x43, 0x79, 0x51, 0xc4, 0x81, 0x75, 0x3e, 0x5b, 0x60, 0xf8, 0x42, 0x28, + 0x7e, 0x47, 0x3a, 0x55, 0x15, 0x57, 0x08, 0x26, 0xa4, 0xe0, 0x29, 0x5c, 0x0c, 0x15, 0xb2, 0x17, + 0xb8, 0xeb, 0x5e, 0xf4, 0x14, 0x2e, 0x85, 0xf2, 0xd6, 0x23, 0xee, 0x7c, 0x95, 0xb2, 0x67, 0xd8, + 0x22, 0x9f, 0x3b, 0xab, 0xdf, 0xc1, 0x73, 0x54, 0xa8, 0xc0, 0xcc, 0x40, 0x9c, 0x2b, 0x5b, 0x60, + 0x80, 0x7c, 0x57, 0x40, 0x77, 0x2b, 0x71, 0x64, 0xf6, 0x51, 0x26, 0xa4, 0xd0, 0x55, 0x48, 0x84, + 0xa9, 0x38, 0x3c, 0xbf, 0x75, 0xf3, 0xd5, 0xc9, 0x9e, 0x97, 0x5f, 0x9d, 0xec, 0xf9, 0xa7, 0x57, + 0x27, 0x7b, 0xbe, 0xf7, 0xea, 0xa4, 0xf2, 0x83, 0x57, 0x27, 0x95, 0x1f, 0xbe, 0x3a, 0xa9, 0xfc, + 0xf4, 0xd5, 0x49, 0xe5, 0xb9, 0x5b, 0x93, 0xca, 0x8b, 0xb7, 0x26, 0x95, 0xaf, 0xdc, 0x9a, 0x54, + 0xbe, 0x71, 0x6b, 0x52, 0x79, 0xe9, 0xd6, 0xa4, 0x72, 0xf3, 0xd6, 0x64, 0xcf, 0xcb, 0xb7, 0x26, + 0x7b, 0xbe, 0x77, 0x6b, 0x52, 0xf9, 0xc1, 0xad, 0xc9, 0x9e, 0x1f, 0xde, 0x9a, 0x54, 0x7e, 0x7a, + 0x6b, 0x52, 0x79, 0xee, 0xb5, 0xc9, 0x9e, 0x17, 0x5e, 0x9b, 0xec, 0x79, 0xf1, 0xb5, 0x49, 0xe5, + 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x5f, 0x70, 0x1f, 0xb0, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12238,18 +12583,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12291,8 +12638,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12300,8 +12649,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12356,18 +12705,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12421,8 +12772,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12430,8 +12783,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15030,11 +15383,455 @@ func (this *Node) Equal(that interface{}) bool { } return true } - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 GetField3() int32 GetField4() int64 GetField5() uint32 @@ -17602,94 +18399,232 @@ func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_pr return NewUnrecognizedWithInner_InnerFromFace(this) } -func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { +func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { + return this.Field1 +} + +func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { + this := &UnrecognizedWithInner_Inner{} + this.Field1 = that.GetField1() + return this +} + +type UnrecognizedWithEmbedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded + GetField2() *string +} + +func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithEmbedFromFace(this) +} + +func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { + return this.UnrecognizedWithEmbed_Embedded +} + +func (this *UnrecognizedWithEmbed) GetField2() *string { + return this.Field2 +} + +func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { + this := &UnrecognizedWithEmbed{} + this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() + this.Field2 = that.GetField2() + return this +} + +type UnrecognizedWithEmbed_EmbeddedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *uint32 +} + +func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { + return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) +} + +func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { + return this.Field1 +} + +func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { + this := &UnrecognizedWithEmbed_Embedded{} + this.Field1 = that.GetField1() + return this +} + +type NodeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetLabel() *string + GetChildren() []*Node +} + +func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNodeFromFace(this) +} + +func (this *Node) GetLabel() *string { + return this.Label +} + +func (this *Node) GetChildren() []*Node { + return this.Children +} + +func NewNodeFromFace(that NodeFace) *Node { + this := &Node{} + this.Label = that.GetLabel() + this.Children = that.GetChildren() + return this +} + +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { return this.Field1 } -func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} this.Field1 = that.GetField1() return this } -type UnrecognizedWithEmbedFace interface { +type NidRepNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded - GetField2() *string + GetField1() []T } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbedFromFace(this) -} - -func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { - return this.UnrecognizedWithEmbed_Embedded +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithEmbed) GetField2() *string { - return this.Field2 +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 } -func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() - this.Field2 = that.GetField2() +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() return this } -type UnrecognizedWithEmbed_EmbeddedFace interface { +type NinRepNonByteCustomTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 + GetField1() []T } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) } -func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { +func (this *NinRepNonByteCustomType) GetField1() []T { return this.Field1 } -func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} this.Field1 = that.GetField1() return this } -type NodeFace interface { +type ProtoTypeFace interface { Proto() github_com_gogo_protobuf_proto.Message - GetLabel() *string - GetChildren() []*Node + GetField2() *string } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNodeFromFace(this) -} - -func (this *Node) GetLabel() *string { - return this.Label +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) } -func (this *Node) GetChildren() []*Node { - return this.Children +func (this *ProtoType) GetField2() *string { + return this.Field2 } -func NewNodeFromFace(that NodeFace) *Node { - this := &Node{} - this.Label = that.GetLabel() - this.Children = that.GetChildren() +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() return this } @@ -18715,9 +19650,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18739,9 +19672,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19248,6 +20179,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19256,11 +20275,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19270,7 +20290,7 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -19312,7 +20332,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -19403,7 +20423,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -19540,7 +20560,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19681,7 +20701,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19969,7 +20989,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -20022,7 +21042,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -20112,7 +21132,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20203,7 +21223,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20414,7 +21434,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -20459,7 +21479,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -20544,7 +21564,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -20790,8 +21810,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20834,8 +21854,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20887,7 +21907,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -20993,7 +22013,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -21058,7 +22078,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -21149,7 +22169,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -21286,7 +22306,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -21351,7 +22371,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -21448,8 +22468,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21461,7 +22481,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -21479,7 +22499,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -21504,7 +22524,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -21527,7 +22547,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -21543,6 +22563,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -21562,14 +22658,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -21577,43 +22673,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -22724,9 +23820,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22746,9 +23840,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23168,8 +24260,89 @@ func (m *NoExtensionsMap) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += len(m.XXX_extensions) + if m.XXX_extensions != nil { + n += len(m.XXX_extensions) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Unrecognized) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = len(*m.Field1) + n += 1 + l + sovThetest(uint64(l)) + } + return n +} + +func (m *UnrecognizedWithInner) Size() (n int) { + var l int + _ = l + if len(m.Embedded) > 0 { + for _, e := range m.Embedded { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *UnrecognizedWithInner_Inner) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + n += 1 + sovThetest(uint64(*m.Field1)) + } + return n +} + +func (m *UnrecognizedWithEmbed) Size() (n int) { + var l int + _ = l + l = m.UnrecognizedWithEmbed_Embedded.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + n += 1 + sovThetest(uint64(*m.Field1)) + } + return n +} + +func (m *Node) Size() (n int) { + var l int + _ = l + if m.Label != nil { + l = len(*m.Label) + n += 1 + l + sovThetest(uint64(l)) + } + if len(m.Children) > 0 { + for _, e := range m.Children { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) @@ -23177,52 +24350,51 @@ func (m *NoExtensionsMap) Size() (n int) { return n } -func (m *Unrecognized) Size() (n int) { +func (m *NonByteCustomType) Size() (n int) { var l int _ = l if m.Field1 != nil { - l = len(*m.Field1) + l = m.Field1.Size() n += 1 + l + sovThetest(uint64(l)) } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } return n } -func (m *UnrecognizedWithInner) Size() (n int) { +func (m *NidOptNonByteCustomType) Size() (n int) { var l int _ = l - if len(m.Embedded) > 0 { - for _, e := range m.Embedded { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *UnrecognizedWithInner_Inner) Size() (n int) { +func (m *NinOptNonByteCustomType) Size() (n int) { var l int _ = l if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) } return n } -func (m *UnrecognizedWithEmbed) Size() (n int) { +func (m *NidRepNonByteCustomType) Size() (n int) { var l int _ = l - l = m.UnrecognizedWithEmbed_Embedded.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) @@ -23230,28 +24402,28 @@ func (m *UnrecognizedWithEmbed) Size() (n int) { return n } -func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) { +func (m *NinRepNonByteCustomType) Size() (n int) { var l int _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) } return n } -func (m *Node) Size() (n int) { +func (m *ProtoType) Size() (n int) { var l int _ = l - if m.Label != nil { - l = len(*m.Label) + if m.Field2 != nil { + l = len(*m.Field2) n += 1 + l + sovThetest(uint64(l)) } - if len(m.Children) > 0 { - for _, e := range m.Children { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23884,7 +25056,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -23898,7 +25070,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24130,7 +25302,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24202,6 +25374,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -24467,1113 +25705,1113 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { } return true } -func (m *NidOptNative) Marshal() (data []byte, err error) { +func (m *NidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptNative) MarshalTo(data []byte) (int, error) { +func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.Field3)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.Field5)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 i += 4 } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 i += 4 } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 i += 8 } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 i += 8 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepNative) Marshal() (data []byte, err error) { +func (m *NidRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x1 := (uint32(num) << 1) ^ uint32((num >> 31)) for x1 >= 1<<7 { - data[i] = uint8(uint64(x1)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x1)&0x7f | 0x80) x1 >>= 7 i++ } - data[i] = uint8(x1) + dAtA[i] = uint8(x1) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x2 := (uint64(num) << 1) ^ uint64((num >> 63)) for x2 >= 1<<7 { - data[i] = uint8(uint64(x2)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x2)&0x7f | 0x80) x2 >>= 7 i++ } - data[i] = uint8(x2) + dAtA[i] = uint8(x2) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepNative) Marshal() (data []byte, err error) { +func (m *NinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field4) > 0 { for _, num := range m.Field4 { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field5) > 0 { for _, num := range m.Field5 { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x3 := (uint32(num) << 1) ^ uint32((num >> 31)) for x3 >= 1<<7 { - data[i] = uint8(uint64(x3)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) x3 >>= 7 i++ } - data[i] = uint8(x3) + dAtA[i] = uint8(x3) i++ } } if len(m.Field8) > 0 { for _, num := range m.Field8 { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x4 := (uint64(num) << 1) ^ uint64((num >> 63)) for x4 >= 1<<7 { - data[i] = uint8(uint64(x4)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) x4 >>= 7 i++ } - data[i] = uint8(x4) + dAtA[i] = uint8(x4) i++ } } if len(m.Field9) > 0 { for _, num := range m.Field9 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepPackedNative) Marshal() (data []byte, err error) { +func (m *NidRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { - data6 := make([]byte, len(m.Field3)*10) + dAtA6 := make([]byte, len(m.Field3)*10) var j5 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data6[j5] = uint8(uint64(num)&0x7f | 0x80) + dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j5++ } - data6[j5] = uint8(num) + dAtA6[j5] = uint8(num) j5++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j5)) - i += copy(data[i:], data6[:j5]) + i = encodeVarintThetest(dAtA, i, uint64(j5)) + i += copy(dAtA[i:], dAtA6[:j5]) } if len(m.Field4) > 0 { - data8 := make([]byte, len(m.Field4)*10) + dAtA8 := make([]byte, len(m.Field4)*10) var j7 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data8[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j7++ } - data8[j7] = uint8(num) + dAtA8[j7] = uint8(num) j7++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j7)) - i += copy(data[i:], data8[:j7]) + i = encodeVarintThetest(dAtA, i, uint64(j7)) + i += copy(dAtA[i:], dAtA8[:j7]) } if len(m.Field5) > 0 { - data10 := make([]byte, len(m.Field5)*10) + dAtA10 := make([]byte, len(m.Field5)*10) var j9 int for _, num := range m.Field5 { for num >= 1<<7 { - data10[j9] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j9++ } - data10[j9] = uint8(num) + dAtA10[j9] = uint8(num) j9++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j9)) - i += copy(data[i:], data10[:j9]) + i = encodeVarintThetest(dAtA, i, uint64(j9)) + i += copy(dAtA[i:], dAtA10[:j9]) } if len(m.Field6) > 0 { - data12 := make([]byte, len(m.Field6)*10) + dAtA12 := make([]byte, len(m.Field6)*10) var j11 int for _, num := range m.Field6 { for num >= 1<<7 { - data12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j11++ } - data12[j11] = uint8(num) + dAtA12[j11] = uint8(num) j11++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j11)) - i += copy(data[i:], data12[:j11]) + i = encodeVarintThetest(dAtA, i, uint64(j11)) + i += copy(dAtA[i:], dAtA12[:j11]) } if len(m.Field7) > 0 { - data13 := make([]byte, len(m.Field7)*5) + dAtA13 := make([]byte, len(m.Field7)*5) var j14 int for _, num := range m.Field7 { x15 := (uint32(num) << 1) ^ uint32((num >> 31)) for x15 >= 1<<7 { - data13[j14] = uint8(uint64(x15)&0x7f | 0x80) + dAtA13[j14] = uint8(uint64(x15)&0x7f | 0x80) j14++ x15 >>= 7 } - data13[j14] = uint8(x15) + dAtA13[j14] = uint8(x15) j14++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j14)) - i += copy(data[i:], data13[:j14]) + i = encodeVarintThetest(dAtA, i, uint64(j14)) + i += copy(dAtA[i:], dAtA13[:j14]) } if len(m.Field8) > 0 { var j16 int - data18 := make([]byte, len(m.Field8)*10) + dAtA18 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x17 := (uint64(num) << 1) ^ uint64((num >> 63)) for x17 >= 1<<7 { - data18[j16] = uint8(uint64(x17)&0x7f | 0x80) + dAtA18[j16] = uint8(uint64(x17)&0x7f | 0x80) j16++ x17 >>= 7 } - data18[j16] = uint8(x17) + dAtA18[j16] = uint8(x17) j16++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j16)) - i += copy(data[i:], data18[:j16]) + i = encodeVarintThetest(dAtA, i, uint64(j16)) + i += copy(dAtA[i:], dAtA18[:j16]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepPackedNative) Marshal() (data []byte, err error) { +func (m *NinRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { - data20 := make([]byte, len(m.Field3)*10) + dAtA20 := make([]byte, len(m.Field3)*10) var j19 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data20[j19] = uint8(uint64(num)&0x7f | 0x80) + dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j19++ } - data20[j19] = uint8(num) + dAtA20[j19] = uint8(num) j19++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(j19)) - i += copy(data[i:], data20[:j19]) + i = encodeVarintThetest(dAtA, i, uint64(j19)) + i += copy(dAtA[i:], dAtA20[:j19]) } if len(m.Field4) > 0 { - data22 := make([]byte, len(m.Field4)*10) + dAtA22 := make([]byte, len(m.Field4)*10) var j21 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data22[j21] = uint8(uint64(num)&0x7f | 0x80) + dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j21++ } - data22[j21] = uint8(num) + dAtA22[j21] = uint8(num) j21++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(j21)) - i += copy(data[i:], data22[:j21]) + i = encodeVarintThetest(dAtA, i, uint64(j21)) + i += copy(dAtA[i:], dAtA22[:j21]) } if len(m.Field5) > 0 { - data24 := make([]byte, len(m.Field5)*10) + dAtA24 := make([]byte, len(m.Field5)*10) var j23 int for _, num := range m.Field5 { for num >= 1<<7 { - data24[j23] = uint8(uint64(num)&0x7f | 0x80) + dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j23++ } - data24[j23] = uint8(num) + dAtA24[j23] = uint8(num) j23++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintThetest(data, i, uint64(j23)) - i += copy(data[i:], data24[:j23]) + i = encodeVarintThetest(dAtA, i, uint64(j23)) + i += copy(dAtA[i:], dAtA24[:j23]) } if len(m.Field6) > 0 { - data26 := make([]byte, len(m.Field6)*10) + dAtA26 := make([]byte, len(m.Field6)*10) var j25 int for _, num := range m.Field6 { for num >= 1<<7 { - data26[j25] = uint8(uint64(num)&0x7f | 0x80) + dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j25++ } - data26[j25] = uint8(num) + dAtA26[j25] = uint8(num) j25++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintThetest(data, i, uint64(j25)) - i += copy(data[i:], data26[:j25]) + i = encodeVarintThetest(dAtA, i, uint64(j25)) + i += copy(dAtA[i:], dAtA26[:j25]) } if len(m.Field7) > 0 { - data27 := make([]byte, len(m.Field7)*5) + dAtA27 := make([]byte, len(m.Field7)*5) var j28 int for _, num := range m.Field7 { x29 := (uint32(num) << 1) ^ uint32((num >> 31)) for x29 >= 1<<7 { - data27[j28] = uint8(uint64(x29)&0x7f | 0x80) + dAtA27[j28] = uint8(uint64(x29)&0x7f | 0x80) j28++ x29 >>= 7 } - data27[j28] = uint8(x29) + dAtA27[j28] = uint8(x29) j28++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintThetest(data, i, uint64(j28)) - i += copy(data[i:], data27[:j28]) + i = encodeVarintThetest(dAtA, i, uint64(j28)) + i += copy(dAtA[i:], dAtA27[:j28]) } if len(m.Field8) > 0 { var j30 int - data32 := make([]byte, len(m.Field8)*10) + dAtA32 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x31 := (uint64(num) << 1) ^ uint64((num >> 63)) for x31 >= 1<<7 { - data32[j30] = uint8(uint64(x31)&0x7f | 0x80) + dAtA32[j30] = uint8(uint64(x31)&0x7f | 0x80) j30++ x31 >>= 7 } - data32[j30] = uint8(x31) + dAtA32[j30] = uint8(x31) j30++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(j30)) - i += copy(data[i:], data32[:j30]) + i = encodeVarintThetest(dAtA, i, uint64(j30)) + i += copy(dAtA[i:], dAtA32[:j30]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field13))) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptStruct) Marshal() (data []byte, err error) { +func (m *NidOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n33, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n33, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n33 - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n34, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n34, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n34 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x42 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n35, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n35, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n35 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStruct) Marshal() (data []byte, err error) { +func (m *NinOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n36, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n36, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n36 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n37, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n37, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n37 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.Field8.Size())) - n38, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) + n38, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n38 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepStruct) Marshal() (data []byte, err error) { +func (m *NidRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25582,10 +26820,10 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25594,31 +26832,31 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x39 := (uint32(num) << 1) ^ uint32((num >> 31)) for x39 >= 1<<7 { - data[i] = uint8(uint64(x39)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x39)&0x7f | 0x80) x39 >>= 7 i++ } - data[i] = uint8(x39) + dAtA[i] = uint8(x39) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25627,82 +26865,82 @@ func (m *NidRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepStruct) Marshal() (data []byte, err error) { +func (m *NinRepStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { +func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.Field3) > 0 { for _, msg := range m.Field3 { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25711,10 +26949,10 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field4) > 0 { for _, msg := range m.Field4 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25723,31 +26961,31 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field6) > 0 { for _, num := range m.Field6 { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x40 := (uint32(num) << 1) ^ uint32((num >> 31)) for x40 >= 1<<7 { - data[i] = uint8(uint64(x40)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x40)&0x7f | 0x80) x40 >>= 7 i++ } - data[i] = uint8(x40) + dAtA[i] = uint8(x40) i++ } } if len(m.Field8) > 0 { for _, msg := range m.Field8 { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25756,180 +26994,180 @@ func (m *NinRepStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field13) > 0 { for _, b := range m.Field13 { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.Field14) > 0 { for _, s := range m.Field14 { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.Field15) > 0 { for _, b := range m.Field15 { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NidEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n41, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n41, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n41 } - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n42, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n42, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n42 - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStruct) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n43, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n43, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n43 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n44, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n44, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n44 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidNestedStruct) Marshal() (data []byte, err error) { +func (m *NidNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n45, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n45, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25937,31 +27175,31 @@ func (m *NidNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStruct) Marshal() (data []byte, err error) { +func (m *NinNestedStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n46, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n46, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25969,10 +27207,10 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } if len(m.Field2) > 0 { for _, msg := range m.Field2 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -25980,141 +27218,141 @@ func (m *NinNestedStruct) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptCustom) Marshal() (data []byte, err error) { +func (m *NidOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n47, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n47, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n47 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n48, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n48, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n48 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomDash) Marshal() (data []byte, err error) { +func (m *CustomDash) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomDash) MarshalTo(data []byte) (int, error) { +func (m *CustomDash) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Value != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n49, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n49, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n49 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptCustom) Marshal() (data []byte, err error) { +func (m *NinOptCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptCustom) MarshalTo(data []byte) (int, error) { +func (m *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Id != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Id.Size())) - n50, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) + n50, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n50 } if m.Value != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Value.Size())) - n51, err := m.Value.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) + n51, err := m.Value.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n51 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepCustom) Marshal() (data []byte, err error) { +func (m *NidRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26123,10 +27361,10 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26134,32 +27372,32 @@ func (m *NidRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepCustom) Marshal() (data []byte, err error) { +func (m *NinRepCustom) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { +func (m *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Id) > 0 { for _, msg := range m.Id { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26168,10 +27406,10 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } if len(m.Value) > 0 { for _, msg := range m.Value { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -26179,1646 +27417,1642 @@ func (m *NinRepCustom) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeUnion) Marshal() (data []byte, err error) { +func (m *NinOptNativeUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStructUnion) Marshal() (data []byte, err error) { +func (m *NinOptStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n52, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n52, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n52 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.Field4.Size())) - n53, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) + n53, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n53 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *NinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n54, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n54, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n54 } if m.Field200 != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.Field200.Size())) - n55, err := m.Field200.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) + n55, err := m.Field200.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n55 } if m.Field210 != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.Field210 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinNestedStructUnion) Marshal() (data []byte, err error) { +func (m *NinNestedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinNestedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Field1.Size())) - n56, err := m.Field1.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n56, err := m.Field1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n56 } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Field2.Size())) - n57, err := m.Field2.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) + n57, err := m.Field2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n57 } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Field3.Size())) - n58, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) + n58, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n58 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Tree) Marshal() (data []byte, err error) { +func (m *Tree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Tree) MarshalTo(data []byte) (int, error) { +func (m *Tree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Or != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Or.Size())) - n59, err := m.Or.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) + n59, err := m.Or.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n59 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n60, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n60, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n61, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n61, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OrBranch) Marshal() (data []byte, err error) { +func (m *OrBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OrBranch) MarshalTo(data []byte) (int, error) { +func (m *OrBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n62, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n62, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n62 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n63, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n63, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n63 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndBranch) Marshal() (data []byte, err error) { +func (m *AndBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndBranch) MarshalTo(data []byte) (int, error) { +func (m *AndBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n64, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n64, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n64 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n65, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n65, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n65 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Leaf) Marshal() (data []byte, err error) { +func (m *Leaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Leaf) MarshalTo(data []byte) (int, error) { +func (m *Leaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Value)) - data[i] = 0x12 + i = encodeVarintThetest(dAtA, i, uint64(m.Value)) + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(m.StrValue))) - i += copy(data[i:], m.StrValue) + i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) + i += copy(dAtA[i:], m.StrValue) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepTree) Marshal() (data []byte, err error) { +func (m *DeepTree) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepTree) MarshalTo(data []byte) (int, error) { +func (m *DeepTree) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Down != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n66, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n66, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n66 } if m.And != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.And.Size())) - n67, err := m.And.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) + n67, err := m.And.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n67 } if m.Leaf != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.Leaf.Size())) - n68, err := m.Leaf.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) + n68, err := m.Leaf.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n68 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *ADeepBranch) Marshal() (data []byte, err error) { +func (m *ADeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ADeepBranch) MarshalTo(data []byte) (int, error) { +func (m *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Down.Size())) - n69, err := m.Down.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) + n69, err := m.Down.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n69 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AndDeepBranch) Marshal() (data []byte, err error) { +func (m *AndDeepBranch) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AndDeepBranch) MarshalTo(data []byte) (int, error) { +func (m *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Left.Size())) - n70, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) + n70, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n70 - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.Right.Size())) - n71, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) + n71, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n71 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *DeepLeaf) Marshal() (data []byte, err error) { +func (m *DeepLeaf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *DeepLeaf) MarshalTo(data []byte) (int, error) { +func (m *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.Tree.Size())) - n72, err := m.Tree.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) + n72, err := m.Tree.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n72 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Nil) Marshal() (data []byte, err error) { +func (m *Nil) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nil) MarshalTo(data []byte) (int, error) { +func (m *Nil) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptEnum) Marshal() (data []byte, err error) { +func (m *NidOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnum) Marshal() (data []byte, err error) { +func (m *NinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidRepEnum) Marshal() (data []byte, err error) { +func (m *NidRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepEnum) Marshal() (data []byte, err error) { +func (m *NinRepEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepEnum) MarshalTo(data []byte) (int, error) { +func (m *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { for _, num := range m.Field1 { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *NinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnum) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnum) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AnotherNinOptEnumDefault) Marshal() (data []byte, err error) { +func (m *AnotherNinOptEnumDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AnotherNinOptEnumDefault) MarshalTo(data []byte) (int, error) { +func (m *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Timer) Marshal() (data []byte, err error) { +func (m *Timer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Timer) MarshalTo(data []byte) (int, error) { +func (m *Timer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Time1 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time1 i += 8 - data[i] = 0x11 + dAtA[i] = 0x11 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Time2 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time2 i += 8 if m.Data != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *MyExtendable) Marshal() (data []byte, err error) { +func (m *MyExtendable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MyExtendable) MarshalTo(data []byte) (int, error) { +func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OtherExtenable) Marshal() (data []byte, err error) { +func (m *OtherExtenable) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OtherExtenable) MarshalTo(data []byte) (int, error) { +func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.M != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.M.Size())) - n73, err := m.M.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) + n73, err := m.M.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n73 } if m.Field2 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field2)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field13)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - if len(m.XXX_extensions) > 0 { - n, err := github_com_gogo_protobuf_proto.EncodeExtensionMap(m.XXX_extensions, data[i:]) - if err != nil { - return 0, err - } - i += n + n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + if err != nil { + return 0, err } + i += n if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition) Marshal() (data []byte, err error) { +func (m *NestedDefinition) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.EnumField != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.EnumField)) + i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) } if m.NNM != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n74, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n74, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n74 } if m.NM != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(m.NM.Size())) - n75, err := m.NM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) + n75, err := m.NM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n75 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedField1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.NestedField1 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.NestedField1 i += 8 } if m.NNM != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.NNM.Size())) - n76, err := m.NNM.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) + n76, err := m.NNM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n76 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (data []byte, err error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(data []byte) (int, error) { +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NestedNestedField1 != nil { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.NestedNestedField1))) - i += copy(data[i:], *m.NestedNestedField1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) + i += copy(dAtA[i:], *m.NestedNestedField1) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedScope) Marshal() (data []byte, err error) { +func (m *NestedScope) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedScope) MarshalTo(data []byte) (int, error) { +func (m *NestedScope) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.A != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.A.Size())) - n77, err := m.A.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) + n77, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n77 } if m.B != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(*m.B)) + i = encodeVarintThetest(dAtA, i, uint64(*m.B)) } if m.C != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.C.Size())) - n78, err := m.C.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) + n78, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n78 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNativeDefault) Marshal() (data []byte, err error) { +func (m *NinOptNativeDefault) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNativeDefault) MarshalTo(data []byte) (int, error) { +func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 i += 8 } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 i += 4 } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field3)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field4)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field5)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field6)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 i += 4 } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 i += 4 } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 i += 8 } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 i += 8 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomContainer) Marshal() (data []byte, err error) { +func (m *CustomContainer) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomContainer) MarshalTo(data []byte) (int, error) { +func (m *CustomContainer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.CustomStruct.Size())) - n79, err := m.CustomStruct.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) + n79, err := m.CustomStruct.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n79 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNidOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNidOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.FieldA i += 8 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.FieldB i += 4 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC)) - data[i] = 0x20 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldD)) - data[i] = 0x28 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldE)) - data[i] = 0x30 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldF)) - data[i] = 0x38 + i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - data[i] = 0x40 + i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - data[i] = 0x4d + i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.FieldI + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.FieldI i += 4 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.FieldJ + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.FieldJ i += 4 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.FieldK + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.FieldK i += 8 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.FieldL + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.FieldL i += 8 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldN))) - i += copy(data[i:], m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) + i += copy(dAtA[i:], m.FieldN) if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinOptNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinOptNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA i += 8 } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB i += 4 } if m.FieldC != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldC)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) } if m.FieldD != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldD)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) } if m.FieldE != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldF)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) } if m.FieldG != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) } if m.FieldH != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintThetest(data, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) + i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) } if m.FieldI != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = *m.FieldI + *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.FieldI i += 4 } if m.FieldJ != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = *m.FieldJ + *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.FieldJ i += 4 } if m.FieldK != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = *m.FieldK + *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.FieldK i += 8 } if m.FielL != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = *m.FielL + *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.FielL i += 8 } if m.FieldM != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldM { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldN != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldN))) - i += copy(data[i:], *m.FieldN) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) + i += copy(dAtA[i:], *m.FieldN) } if m.FieldO != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldO))) - i += copy(data[i:], m.FieldO) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) + i += copy(dAtA[i:], m.FieldO) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinRepNative) Marshal() (data []byte, err error) { +func (m *CustomNameNinRepNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinRepNative) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.FieldA) > 0 { for _, num := range m.FieldA { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = num + *(*float64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = num + *(*float32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldC) > 0 { for _, num := range m.FieldC { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldD) > 0 { for _, num := range m.FieldD { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldE) > 0 { for _, num := range m.FieldE { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldF) > 0 { for _, num := range m.FieldF { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if len(m.FieldG) > 0 { for _, num := range m.FieldG { - data[i] = 0x38 + dAtA[i] = 0x38 i++ x80 := (uint32(num) << 1) ^ uint32((num >> 31)) for x80 >= 1<<7 { - data[i] = uint8(uint64(x80)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x80)&0x7f | 0x80) x80 >>= 7 i++ } - data[i] = uint8(x80) + dAtA[i] = uint8(x80) i++ } } if len(m.FieldH) > 0 { for _, num := range m.FieldH { - data[i] = 0x40 + dAtA[i] = 0x40 i++ x81 := (uint64(num) << 1) ^ uint64((num >> 63)) for x81 >= 1<<7 { - data[i] = uint8(uint64(x81)&0x7f | 0x80) + dAtA[i] = uint8(uint64(x81)&0x7f | 0x80) x81 >>= 7 i++ } - data[i] = uint8(x81) + dAtA[i] = uint8(x81) i++ } } if len(m.FieldI) > 0 { for _, num := range m.FieldI { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = num + *(*uint32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = num + *(*int32)(unsafe.Pointer(&dAtA[i])) = num i += 4 } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = num + *(*uint64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = num + *(*int64)(unsafe.Pointer(&dAtA[i])) = num i += 8 } } if len(m.FieldM) > 0 { for _, b := range m.FieldM { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.FieldN) > 0 { for _, s := range m.FieldN { - data[i] = 0x72 + dAtA[i] = 0x72 i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if len(m.FieldO) > 0 { for _, b := range m.FieldO { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintThetest(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinStruct) Marshal() (data []byte, err error) { +func (m *CustomNameNinStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.FieldA + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA i += 8 } if m.FieldB != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = *m.FieldB + *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB i += 4 } if m.FieldC != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(m.FieldC.Size())) - n82, err := m.FieldC.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) + n82, err := m.FieldC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27826,10 +29060,10 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27837,83 +29071,83 @@ func (m *CustomNameNinStruct) MarshalTo(data []byte) (int, error) { } } if m.FieldE != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldE)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) } if m.FieldF != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintThetest(data, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) + i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) } if m.FieldG != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldG.Size())) - n83, err := m.FieldG.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) + n83, err := m.FieldG.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n83 } if m.FieldH != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.FieldH { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.FieldI != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.FieldI))) - i += copy(data[i:], *m.FieldI) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) + i += copy(dAtA[i:], *m.FieldI) } if m.FieldJ != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintThetest(data, i, uint64(len(m.FieldJ))) - i += copy(data[i:], m.FieldJ) + i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) + i += copy(dAtA[i:], m.FieldJ) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameCustomType) Marshal() (data []byte, err error) { +func (m *CustomNameCustomType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n84, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n84, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n84 } if m.FieldB != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(m.FieldB.Size())) - n85, err := m.FieldB.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) + n85, err := m.FieldB.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27921,10 +29155,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldC) > 0 { for _, msg := range m.FieldC { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27933,10 +29167,10 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } if len(m.FieldD) > 0 { for _, msg := range m.FieldD { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -27944,173 +29178,173 @@ func (m *CustomNameCustomType) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameNinEmbeddedStructUnion) Marshal() (data []byte, err error) { +func (m *CustomNameNinEmbeddedStructUnion) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(data []byte) (int, error) { +func (m *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.NidOptNative != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.NidOptNative.Size())) - n86, err := m.NidOptNative.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) + n86, err := m.NidOptNative.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n86 } if m.FieldA != nil { - data[i] = 0xc2 + dAtA[i] = 0xc2 i++ - data[i] = 0xc + dAtA[i] = 0xc i++ - i = encodeVarintThetest(data, i, uint64(m.FieldA.Size())) - n87, err := m.FieldA.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) + n87, err := m.FieldA.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n87 } if m.FieldB != nil { - data[i] = 0x90 + dAtA[i] = 0x90 i++ - data[i] = 0xd + dAtA[i] = 0xd i++ if *m.FieldB { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomNameEnum) Marshal() (data []byte, err error) { +func (m *CustomNameEnum) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomNameEnum) MarshalTo(data []byte) (int, error) { +func (m *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.FieldA != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.FieldA)) + i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) } if len(m.FieldB) > 0 { for _, num := range m.FieldB { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintThetest(data, i, uint64(num)) + i = encodeVarintThetest(dAtA, i, uint64(num)) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NoExtensionsMap) Marshal() (data []byte, err error) { +func (m *NoExtensionsMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NoExtensionsMap) MarshalTo(data []byte) (int, error) { +func (m *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } if m.XXX_extensions != nil { - i += copy(data[i:], m.XXX_extensions) + i += copy(dAtA[i:], m.XXX_extensions) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *Unrecognized) Marshal() (data []byte, err error) { +func (m *Unrecognized) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Unrecognized) MarshalTo(data []byte) (int, error) { +func (m *Unrecognized) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field1))) - i += copy(data[i:], *m.Field1) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) + i += copy(dAtA[i:], *m.Field1) } return i, nil } -func (m *UnrecognizedWithInner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Embedded) > 0 { for _, msg := range m.Embedded { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -28118,125 +29352,282 @@ func (m *UnrecognizedWithInner) MarshalTo(data []byte) (int, error) { } } if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithInner_Inner) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithInner_Inner) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithInner_Inner) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *UnrecognizedWithEmbed) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) + n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n88 if m.Field2 != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Field2))) - i += copy(data[i:], *m.Field2) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *UnrecognizedWithEmbed_Embedded) Marshal() (data []byte, err error) { +func (m *UnrecognizedWithEmbed_Embedded) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(data []byte) (int, error) { +func (m *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintThetest(data, i, uint64(*m.Field1)) + i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *Node) Marshal() (data []byte, err error) { +func (m *Node) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Node) MarshalTo(data []byte) (int, error) { +func (m *Node) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Label != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(len(*m.Label))) - i += copy(data[i:], *m.Label) + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) + i += copy(dAtA[i:], *m.Label) } if len(m.Children) > 0 { for _, msg := range m.Children { - data[i] = 0x12 + dAtA[i] = 0x12 + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n89, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n89 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n90, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n90 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinOptNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field1 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) + n91, err := m.Field1.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n91 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NidRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *NinRepNonByteCustomType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Field1) > 0 { + for _, msg := range m.Field1 { + dAtA[i] = 0xa i++ - i = encodeVarintThetest(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -28244,228 +29635,262 @@ func (m *Node) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *ProtoType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Field2 != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) + i += copy(dAtA[i:], *m.Field2) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Thetest(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Thetest(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Thetest(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Thetest(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintThetest(data []byte, offset int, v uint64) int { +func encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3015 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, - 0xf5, 0xd7, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x7f, 0x49, 0xde, - 0x3f, 0xa3, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0x70, 0x6d, 0xd7, - 0xa2, 0x0c, 0x46, 0x6e, 0x6b, 0xa0, 0x40, 0x41, 0x89, 0x2b, 0x89, 0xa8, 0xb4, 0x14, 0xc8, 0x95, - 0x6b, 0xf7, 0x50, 0x04, 0x39, 0x14, 0x46, 0xaf, 0x45, 0x8f, 0x6d, 0x5c, 0x14, 0x05, 0xdc, 0x5b, - 0x0e, 0x45, 0x51, 0x14, 0x45, 0xe3, 0x4b, 0x01, 0xf5, 0x66, 0xf4, 0x54, 0x14, 0x85, 0x91, 0x38, - 0x97, 0x1c, 0xd3, 0x53, 0x73, 0xc8, 0xa1, 0xb3, 0xbb, 0x33, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0x25, 0xb7, 0x39, 0x2c, 0x3f, 0xe6, 0xbd, 0x37, 0xf3, 0xf6, 0xfd, 0x7e, 0x6f, 0xe6, 0xed, 0xce, - 0xc0, 0xec, 0x4e, 0xf7, 0x70, 0xbb, 0xdb, 0x5f, 0x3a, 0x36, 0xfa, 0xad, 0x5d, 0xfd, 0xb0, 0xd5, - 0xeb, 0xef, 0xb7, 0x0e, 0xf4, 0xde, 0x92, 0xb9, 0xaf, 0x9b, 0x7a, 0xdf, 0x5c, 0x3c, 0xea, 0x75, - 0xcd, 0xae, 0x12, 0xb3, 0x7e, 0x67, 0x2e, 0xef, 0x75, 0xcc, 0xfd, 0xe3, 0xed, 0x45, 0x64, 0xb2, - 0xb4, 0xd7, 0xdd, 0xeb, 0x2e, 0xd9, 0xc2, 0xed, 0xe3, 0x5d, 0xfb, 0x9f, 0xfd, 0xc7, 0xfe, 0xe5, - 0x18, 0x69, 0xff, 0x04, 0x30, 0xd9, 0xe8, 0xb4, 0x37, 0x8f, 0xcc, 0x46, 0xcb, 0xec, 0xdc, 0xd3, - 0x95, 0x69, 0x38, 0x7a, 0xad, 0xa3, 0x1f, 0xb4, 0x0b, 0xaa, 0x34, 0x27, 0x2d, 0x48, 0x95, 0xd8, - 0xc9, 0xb3, 0xd9, 0x91, 0xe6, 0xe8, 0xae, 0xdd, 0x46, 0xa5, 0x45, 0x55, 0x46, 0x52, 0x99, 0x93, - 0x16, 0xa9, 0x74, 0x59, 0x05, 0x48, 0x1a, 0xe7, 0xa4, 0xcb, 0x54, 0x5a, 0x52, 0x63, 0x48, 0x0a, - 0x38, 0x69, 0x89, 0x4a, 0x57, 0xd4, 0x38, 0x92, 0x4e, 0x70, 0xd2, 0x15, 0x2a, 0x5d, 0x55, 0x47, - 0x91, 0x34, 0xc6, 0x49, 0x57, 0xa9, 0xf4, 0x8a, 0x7a, 0x0e, 0x49, 0xcf, 0x73, 0xd2, 0x2b, 0x54, - 0xba, 0xa6, 0x26, 0x90, 0x54, 0xe1, 0xa4, 0x6b, 0x54, 0x7a, 0x55, 0x1d, 0x43, 0xd2, 0x73, 0x9c, - 0xf4, 0xaa, 0x32, 0x03, 0xcf, 0x39, 0xd1, 0xc8, 0xab, 0x10, 0x89, 0xa7, 0xb0, 0xf8, 0x9c, 0x13, - 0x8e, 0xbc, 0x2b, 0x2f, 0xa8, 0xe3, 0x48, 0x3e, 0xca, 0xcb, 0x0b, 0xae, 0xbc, 0xa8, 0x26, 0x91, - 0x3c, 0xc5, 0xcb, 0x8b, 0xae, 0x7c, 0x59, 0x9d, 0x40, 0xf2, 0x04, 0x2f, 0x5f, 0x76, 0xe5, 0x25, - 0x75, 0x12, 0xc9, 0xc7, 0x78, 0x79, 0xc9, 0x95, 0xaf, 0xa8, 0x53, 0x48, 0x9e, 0xe4, 0xe5, 0x2b, - 0xda, 0xfb, 0x36, 0xbc, 0x86, 0x0b, 0x6f, 0x9a, 0x87, 0x97, 0x02, 0x9b, 0xe6, 0x81, 0xa5, 0x90, - 0xa6, 0x79, 0x48, 0x29, 0x98, 0x69, 0x1e, 0x4c, 0x0a, 0x63, 0x9a, 0x87, 0x91, 0x02, 0x98, 0xe6, - 0x01, 0xa4, 0xd0, 0xa5, 0x79, 0xe8, 0x28, 0x68, 0x69, 0x1e, 0x34, 0x0a, 0x57, 0x9a, 0x87, 0x8b, - 0x02, 0xa5, 0x0a, 0x40, 0xb9, 0x10, 0xa9, 0x02, 0x44, 0x2e, 0x38, 0xaa, 0x00, 0x8e, 0x0b, 0x8b, - 0x2a, 0xc0, 0xe2, 0x02, 0xa2, 0x0a, 0x80, 0xb8, 0x50, 0xa8, 0x02, 0x14, 0x2e, 0x08, 0x38, 0xc7, - 0x9a, 0xfa, 0x91, 0x4f, 0x8e, 0x81, 0x81, 0x39, 0x06, 0x06, 0xe6, 0x18, 0x18, 0x98, 0x63, 0x60, - 0x60, 0x8e, 0x81, 0x81, 0x39, 0x06, 0x06, 0xe6, 0x18, 0x18, 0x98, 0x63, 0x60, 0x60, 0x8e, 0x81, - 0xc1, 0x39, 0x06, 0x42, 0x72, 0x0c, 0x84, 0xe4, 0x18, 0x08, 0xc9, 0x31, 0x10, 0x92, 0x63, 0x20, - 0x24, 0xc7, 0x40, 0x60, 0x8e, 0xb9, 0xf0, 0xa6, 0x79, 0x78, 0x7d, 0x73, 0x0c, 0x04, 0xe4, 0x18, - 0x08, 0xc8, 0x31, 0x10, 0x90, 0x63, 0x20, 0x20, 0xc7, 0x40, 0x40, 0x8e, 0x81, 0x80, 0x1c, 0x03, - 0x01, 0x39, 0x06, 0x82, 0x72, 0x0c, 0x04, 0xe6, 0x18, 0x08, 0xcc, 0x31, 0x10, 0x98, 0x63, 0x20, - 0x30, 0xc7, 0x40, 0x60, 0x8e, 0x01, 0x36, 0xc7, 0xfe, 0x04, 0xa0, 0xe2, 0xe4, 0xd8, 0xed, 0xd6, - 0xce, 0x0f, 0xf4, 0x36, 0x86, 0x62, 0x46, 0xc8, 0xb4, 0x51, 0x0b, 0xba, 0x94, 0x0b, 0xc9, 0x8c, - 0x90, 0x6b, 0xbc, 0xbc, 0x48, 0xe5, 0x24, 0xdb, 0x78, 0xf9, 0x32, 0x95, 0x93, 0x7c, 0xe3, 0xe5, - 0x25, 0x2a, 0x27, 0x19, 0xc7, 0xcb, 0x57, 0xa8, 0x9c, 0xe4, 0x1c, 0x2f, 0x5f, 0xa5, 0x72, 0x92, - 0x75, 0xbc, 0xfc, 0x0a, 0x95, 0x93, 0xbc, 0xe3, 0xe5, 0x6b, 0x54, 0x4e, 0x32, 0x8f, 0x97, 0x5f, - 0x55, 0xe6, 0xc4, 0xdc, 0x23, 0x0a, 0x14, 0xda, 0x39, 0x31, 0xfb, 0x04, 0x8d, 0x82, 0xab, 0x41, - 0xf2, 0x4f, 0xd0, 0x28, 0xba, 0x1a, 0x24, 0x03, 0x05, 0x8d, 0x65, 0xed, 0xa1, 0x0d, 0x9f, 0x21, - 0xc2, 0x97, 0x11, 0xe0, 0x93, 0x19, 0xe8, 0x32, 0x02, 0x74, 0x32, 0x03, 0x5b, 0x46, 0x80, 0x4d, - 0x66, 0x20, 0xcb, 0x08, 0x90, 0xc9, 0x0c, 0x5c, 0x19, 0x01, 0x2e, 0x99, 0x81, 0x2a, 0x23, 0x40, - 0x25, 0x33, 0x30, 0x65, 0x04, 0x98, 0x64, 0x06, 0xa2, 0x8c, 0x00, 0x91, 0xcc, 0xc0, 0x93, 0x11, - 0xe0, 0x91, 0x19, 0x68, 0xa6, 0x45, 0x68, 0x64, 0x16, 0x96, 0x69, 0x11, 0x16, 0x99, 0x85, 0x64, - 0x5a, 0x84, 0x44, 0x66, 0xe1, 0x98, 0x16, 0xe1, 0x90, 0x59, 0x28, 0xbe, 0x94, 0x49, 0x45, 0xf8, - 0xae, 0xd9, 0x3b, 0xde, 0x31, 0x4f, 0x55, 0x11, 0xe6, 0xb9, 0xf2, 0x61, 0xbc, 0xa8, 0x2c, 0xda, - 0x05, 0x2b, 0x5b, 0x71, 0x0a, 0x2b, 0x58, 0x9e, 0x2b, 0x2c, 0x18, 0x0b, 0xc3, 0xdf, 0xa2, 0x74, - 0xaa, 0xda, 0x30, 0xcf, 0x95, 0x19, 0xe1, 0xfe, 0xad, 0xbd, 0xf4, 0x8a, 0xed, 0x89, 0x4c, 0x2a, - 0x36, 0x1c, 0xfe, 0x61, 0x2b, 0xb6, 0x5c, 0x78, 0xc8, 0x69, 0xb0, 0x73, 0xe1, 0xc1, 0xf6, 0xac, - 0x3a, 0x51, 0x2b, 0xb8, 0x5c, 0x78, 0x68, 0x69, 0x50, 0xcf, 0xb6, 0xde, 0xc2, 0x0c, 0x46, 0x93, - 0x89, 0x0f, 0x83, 0x87, 0xad, 0xb7, 0xf2, 0xdc, 0x54, 0x32, 0x2c, 0x83, 0xc1, 0xd0, 0x0c, 0x1e, - 0xb6, 0xf2, 0xca, 0x73, 0xd3, 0xcb, 0xd0, 0x0c, 0x7e, 0x09, 0xf5, 0x10, 0x66, 0xb0, 0x1b, 0xfe, - 0x61, 0xeb, 0xa1, 0x5c, 0x78, 0xc8, 0x7d, 0x19, 0x0c, 0x86, 0x60, 0x70, 0x94, 0xfa, 0x28, 0x17, - 0x1e, 0x5a, 0x7f, 0x06, 0x9f, 0xba, 0x9a, 0xf9, 0x40, 0x82, 0xe7, 0xd1, 0x30, 0xf5, 0xc3, 0x6d, - 0xbd, 0xdd, 0xd6, 0xdb, 0x38, 0x8e, 0x79, 0x6e, 0x26, 0x08, 0x80, 0xfa, 0xe9, 0xb3, 0x59, 0x37, - 0xc2, 0x2b, 0x30, 0xe1, 0x44, 0x38, 0x9f, 0x57, 0x4f, 0xa4, 0x90, 0x19, 0x2e, 0xb1, 0x8b, 0x55, - 0x95, 0x8b, 0xc4, 0x0c, 0xad, 0x3d, 0x7f, 0x93, 0x98, 0x59, 0x0e, 0xab, 0x14, 0xf2, 0xda, 0xcf, - 0x6c, 0x0f, 0x8d, 0x53, 0x7b, 0xb8, 0x14, 0xc9, 0x43, 0xc6, 0xb7, 0xd7, 0x3d, 0xbe, 0x31, 0x5e, - 0x1d, 0xc3, 0x29, 0x64, 0xd6, 0x40, 0xe6, 0xd1, 0x5c, 0x72, 0x74, 0x84, 0xf9, 0x20, 0xcf, 0xd1, - 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0xe7, 0x08, 0xad, 0x63, 0x0d, 0x6b, 0x70, 0xc3, 0xe6, 0x82, 0x86, - 0x75, 0x67, 0x76, 0x3a, 0x60, 0x2e, 0x68, 0x40, 0x37, 0x87, 0xe8, 0x50, 0xf7, 0xc9, 0xe2, 0x5c, - 0x3d, 0xee, 0x9b, 0xdd, 0x43, 0x34, 0x39, 0xc8, 0x37, 0xda, 0xf6, 0x18, 0xc9, 0x4a, 0xd2, 0x72, - 0xea, 0x1f, 0xcf, 0x66, 0x63, 0x77, 0x8e, 0x91, 0xaf, 0x72, 0xa7, 0xad, 0xdc, 0x84, 0xf1, 0x6f, - 0xb7, 0x0e, 0x8e, 0x75, 0x7b, 0x89, 0x48, 0x56, 0x4a, 0x58, 0xe1, 0x52, 0xe0, 0x3b, 0x22, 0x6b, - 0xe0, 0xa5, 0x1d, 0xbb, 0xeb, 0xc5, 0x3b, 0x1d, 0xc3, 0x2c, 0x14, 0xd7, 0x9a, 0xf1, 0x7b, 0x56, - 0x17, 0xda, 0xf7, 0x20, 0x74, 0xc6, 0xac, 0xb5, 0xfa, 0xfb, 0x4a, 0x83, 0xf4, 0xec, 0x0c, 0xbd, - 0x86, 0x7a, 0x2d, 0x45, 0xe9, 0xf5, 0x72, 0x1b, 0x59, 0x5f, 0x36, 0x1f, 0x1c, 0xe9, 0x8b, 0x95, - 0x07, 0xa8, 0x9d, 0xf4, 0x7e, 0x44, 0x56, 0x3d, 0x7c, 0x5f, 0x2a, 0x73, 0x5f, 0x09, 0xee, 0x9e, - 0xae, 0xf1, 0xf7, 0x94, 0x7f, 0xd1, 0xfb, 0xb9, 0x4f, 0x16, 0x09, 0x21, 0x92, 0x20, 0x2c, 0x92, - 0xe0, 0xb4, 0x91, 0x3c, 0x22, 0xf3, 0xa3, 0x70, 0xaf, 0x60, 0xd0, 0xbd, 0x82, 0xd3, 0xdc, 0xeb, - 0xbf, 0x9d, 0x6c, 0xa5, 0xf9, 0x74, 0xc7, 0xe8, 0x74, 0x8d, 0xaf, 0xdc, 0xbb, 0xa0, 0x33, 0xad, - 0x02, 0xca, 0xb1, 0x93, 0x47, 0xb3, 0x92, 0xf6, 0x81, 0x4c, 0xee, 0xdc, 0x49, 0xa4, 0x17, 0xbb, - 0xf3, 0xaf, 0x4a, 0x4d, 0xf5, 0x32, 0x22, 0xf4, 0x4b, 0x09, 0xa6, 0x3d, 0x33, 0xb9, 0x13, 0xa6, - 0xb3, 0x9d, 0xce, 0x8d, 0x61, 0xa7, 0x73, 0xec, 0xe0, 0xef, 0x24, 0xf8, 0xaa, 0x30, 0xbd, 0x3a, - 0xee, 0x2d, 0x09, 0xee, 0xbd, 0xe6, 0x1d, 0xc9, 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, - 0x9e, 0x29, 0xee, 0x25, 0x01, 0xf7, 0x69, 0x6a, 0xe0, 0x13, 0x2e, 0xc2, 0x00, 0xec, 0x76, 0x17, - 0xc6, 0xb6, 0x7a, 0xba, 0xf5, 0x0a, 0x42, 0xde, 0xec, 0x61, 0x0f, 0x27, 0x1d, 0xfb, 0xcd, 0x5e, - 0xa5, 0xd7, 0x32, 0x76, 0xf6, 0x9b, 0x72, 0xb7, 0x87, 0x16, 0x5b, 0xb0, 0x6e, 0xb4, 0xb1, 0x47, - 0x53, 0x8e, 0x02, 0x6a, 0xc0, 0x1a, 0xa0, 0x65, 0xb4, 0x51, 0x17, 0xb1, 0x5b, 0x7a, 0x6b, 0x17, - 0x3b, 0x01, 0x1d, 0x1d, 0xab, 0xa5, 0x19, 0x3b, 0x40, 0x9f, 0x78, 0xc0, 0xef, 0xc2, 0x04, 0xe9, - 0x58, 0xc9, 0x5a, 0x16, 0xbb, 0x26, 0x1e, 0x16, 0x5b, 0x58, 0xee, 0xe0, 0x95, 0x0b, 0xd9, 0xed, - 0x9a, 0xca, 0x3c, 0x8c, 0x37, 0x3b, 0x7b, 0xfb, 0x26, 0x1e, 0xdc, 0xab, 0x16, 0xef, 0x59, 0x62, - 0xed, 0x2e, 0x1c, 0xa3, 0x1e, 0x9d, 0x71, 0xd7, 0x35, 0xe7, 0xd6, 0xd0, 0x93, 0x30, 0xb3, 0x9e, - 0x90, 0xf7, 0x96, 0xce, 0xec, 0xa5, 0xcc, 0xc1, 0x04, 0x0a, 0xb3, 0x3b, 0xe9, 0x93, 0x8a, 0x34, - 0xd1, 0xc7, 0xad, 0xda, 0xfb, 0x12, 0x4c, 0xd4, 0x74, 0xfd, 0xc8, 0x0e, 0xf8, 0x1b, 0x30, 0x56, - 0xeb, 0xfe, 0xd0, 0xc0, 0x0e, 0x9e, 0xc7, 0x11, 0xb5, 0xc4, 0x38, 0xa6, 0xb1, 0x36, 0x12, 0x23, - 0x35, 0x26, 0xee, 0xaf, 0xd0, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x18, 0x40, 0x4b, - 0xc9, 0x13, 0xff, 0x2b, 0x70, 0x9c, 0x19, 0x45, 0x59, 0xc0, 0x6e, 0xc8, 0xa2, 0x21, 0x1b, 0x2b, - 0xcb, 0x13, 0x4d, 0x87, 0x13, 0xdc, 0xc0, 0x96, 0x29, 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x39, - 0x3e, 0xcc, 0xfe, 0xaa, 0x38, 0xd4, 0x79, 0x27, 0x46, 0x76, 0xb8, 0xb3, 0x0e, 0x39, 0x83, 0x41, - 0x34, 0xd1, 0x6f, 0x2d, 0x0e, 0x41, 0xa3, 0x73, 0xa0, 0xbd, 0x0d, 0xa1, 0x93, 0xf2, 0x75, 0xe3, - 0xf8, 0x50, 0xc8, 0xba, 0x49, 0x12, 0xe0, 0xad, 0x7d, 0x7d, 0x0b, 0x7d, 0x5b, 0x2a, 0x7c, 0x3d, - 0x65, 0x4d, 0x30, 0xd0, 0x49, 0x31, 0xdb, 0xfe, 0xcd, 0x50, 0x7b, 0xdf, 0x4a, 0xcc, 0x52, 0x55, - 0x1d, 0xd5, 0xbb, 0xba, 0xb9, 0x6e, 0x74, 0xcd, 0x7d, 0xbd, 0x27, 0x58, 0x14, 0x95, 0x65, 0x2e, - 0x61, 0x27, 0x8b, 0xaf, 0x53, 0x8b, 0x40, 0xa3, 0x65, 0xed, 0x43, 0xdb, 0x41, 0xab, 0x14, 0xf0, - 0xdc, 0x20, 0x88, 0x70, 0x83, 0xca, 0x2a, 0x57, 0xbf, 0x0d, 0x70, 0x53, 0x78, 0xb4, 0xbc, 0xca, - 0x3d, 0xe7, 0x0c, 0x76, 0x96, 0x7f, 0xc6, 0x24, 0x31, 0x25, 0x2e, 0xbf, 0x19, 0xea, 0x72, 0x40, - 0x75, 0x3b, 0x6c, 0x4c, 0x41, 0xd4, 0x98, 0xfe, 0x91, 0x56, 0x1c, 0x56, 0x73, 0x4d, 0xdf, 0x6d, - 0x1d, 0x1f, 0x98, 0xca, 0xa5, 0x50, 0xec, 0xcb, 0x52, 0x95, 0xba, 0x5a, 0x8a, 0x0a, 0x7f, 0x59, - 0xae, 0x54, 0xa8, 0xbb, 0x57, 0x86, 0xa0, 0x40, 0x59, 0xae, 0x56, 0xe9, 0xb4, 0x9d, 0x78, 0x88, - 0xb2, 0xf8, 0xf1, 0xa3, 0xd9, 0x11, 0xed, 0xb7, 0xc8, 0x79, 0xac, 0xc9, 0x10, 0xf7, 0xb2, 0xe0, - 0xfc, 0x05, 0x32, 0x67, 0xf8, 0x45, 0xe0, 0xbf, 0x46, 0xde, 0xbf, 0x48, 0x50, 0xf5, 0xf8, 0x4a, - 0xe2, 0x9d, 0x8f, 0xe4, 0x72, 0x59, 0xaa, 0xff, 0xef, 0x63, 0x7e, 0x17, 0xc6, 0xb7, 0x3a, 0x87, - 0x7a, 0xcf, 0x5a, 0x09, 0xac, 0x1f, 0x8e, 0xcb, 0x64, 0x33, 0x27, 0x6e, 0x5a, 0x4d, 0x44, 0xe6, - 0x38, 0xc7, 0xc9, 0xac, 0xfd, 0x84, 0x58, 0xad, 0x65, 0xb6, 0x6c, 0x0f, 0x92, 0x74, 0x7e, 0x45, - 0x2d, 0xda, 0x32, 0x4c, 0x6e, 0x3c, 0xa8, 0xdf, 0x37, 0x75, 0xa3, 0xdd, 0xda, 0x3e, 0x10, 0xf7, - 0x40, 0x49, 0xbd, 0x5a, 0xc8, 0xc5, 0x13, 0xed, 0xd4, 0x89, 0x54, 0x8e, 0xd9, 0xfe, 0xdc, 0x83, - 0x93, 0x9b, 0x96, 0xdb, 0xb6, 0x9d, 0x6d, 0x36, 0x07, 0xa5, 0x0d, 0xbe, 0x10, 0x62, 0x7b, 0x6d, - 0x4a, 0x87, 0x42, 0xf9, 0x08, 0x68, 0x78, 0x84, 0xb2, 0x0d, 0xd0, 0xb2, 0x2d, 0x17, 0x4b, 0x4c, - 0xa6, 0xce, 0xa3, 0x4f, 0x98, 0x9a, 0xc0, 0xe3, 0xfe, 0x15, 0xc0, 0x94, 0x53, 0xea, 0x20, 0x10, - 0x3b, 0x46, 0xc7, 0xf4, 0xd6, 0xab, 0xd4, 0x63, 0xe5, 0x1b, 0x70, 0xcc, 0x0a, 0xa9, 0x2d, 0xc3, - 0x80, 0x5d, 0xc4, 0x25, 0x8a, 0xd0, 0x05, 0x6e, 0xb0, 0xa9, 0x33, 0xa6, 0x13, 0x1b, 0xf4, 0x80, - 0x01, 0x1a, 0x8d, 0x0d, 0xbc, 0xb8, 0x95, 0x06, 0x9a, 0x6e, 0xe8, 0xfd, 0x7e, 0x6b, 0x4f, 0xc7, - 0xff, 0x70, 0x5b, 0x7f, 0xaf, 0x09, 0x8c, 0xc6, 0x06, 0xa2, 0x8d, 0x8c, 0xba, 0x71, 0x0a, 0xde, - 0x6c, 0x94, 0x6e, 0x9a, 0xb2, 0xb1, 0x91, 0xf9, 0xb3, 0x04, 0x27, 0xb8, 0x56, 0xb4, 0xda, 0x26, - 0x9d, 0x06, 0xe6, 0x76, 0x47, 0x9b, 0x49, 0x83, 0x69, 0x23, 0x3e, 0xcb, 0xa7, 0xf4, 0x39, 0xb3, - 0x8e, 0x9e, 0xda, 0xf9, 0x76, 0x65, 0x11, 0x2a, 0x6c, 0x13, 0x76, 0x02, 0xda, 0x05, 0xb5, 0x62, - 0x78, 0x24, 0xda, 0xff, 0xa1, 0x59, 0x98, 0xc6, 0x55, 0x99, 0x82, 0xe3, 0x5b, 0x77, 0x6f, 0xd7, - 0xbf, 0xdf, 0xa8, 0xbf, 0xbb, 0x55, 0xaf, 0xa5, 0x24, 0xed, 0xf7, 0x12, 0x1c, 0xc7, 0x65, 0xeb, - 0x4e, 0xf7, 0x48, 0x57, 0x2a, 0x50, 0x5a, 0xc7, 0x0c, 0x7a, 0x31, 0xbf, 0xa5, 0x16, 0x5a, 0x9d, - 0xa4, 0x4a, 0x74, 0xa8, 0xa5, 0x6d, 0xa5, 0x08, 0xa5, 0x2a, 0x06, 0x38, 0x1a, 0x32, 0xd2, 0x8e, - 0xf6, 0x2f, 0x00, 0x5f, 0x61, 0xcb, 0x68, 0x32, 0x9f, 0x5c, 0xe4, 0x9f, 0x9b, 0xca, 0x63, 0x85, - 0xe2, 0x72, 0x69, 0xd1, 0xfa, 0xa0, 0x94, 0xbc, 0xc8, 0x3f, 0x42, 0x79, 0x55, 0x3c, 0xc7, 0x44, - 0xca, 0x31, 0x46, 0xea, 0x39, 0x26, 0xc2, 0x49, 0x3d, 0xc7, 0x44, 0x38, 0xa9, 0xe7, 0x98, 0x08, - 0x27, 0xf5, 0x6c, 0x05, 0x70, 0x52, 0xcf, 0x31, 0x11, 0x4e, 0xea, 0x39, 0x26, 0xc2, 0x49, 0xbd, - 0xc7, 0x44, 0xb0, 0x38, 0xf0, 0x98, 0x08, 0x2f, 0xf7, 0x1e, 0x13, 0xe1, 0xe5, 0xde, 0x63, 0x22, - 0x65, 0x54, 0x9f, 0x1d, 0xeb, 0xc1, 0x9b, 0x0e, 0xbc, 0xfd, 0xa0, 0x67, 0x40, 0x77, 0x02, 0xde, - 0x84, 0x53, 0xce, 0xfb, 0x88, 0x6a, 0xd7, 0x30, 0x5b, 0x1d, 0x03, 0x4d, 0xc5, 0x5f, 0x87, 0x49, - 0xa7, 0xc9, 0x79, 0xca, 0xf1, 0x7b, 0x0a, 0x74, 0xe4, 0x78, 0xba, 0x4d, 0xee, 0x30, 0xda, 0xda, - 0x97, 0x31, 0x98, 0x76, 0xc4, 0x8d, 0xd6, 0xa1, 0xce, 0x1d, 0x32, 0x9a, 0x17, 0xb6, 0x94, 0x26, - 0x2d, 0xf3, 0xe7, 0xcf, 0x66, 0x9d, 0xd6, 0x75, 0x4a, 0xa6, 0x79, 0x61, 0x73, 0x89, 0xd7, 0x73, - 0xd7, 0x9f, 0x79, 0xe1, 0xe0, 0x11, 0xaf, 0x47, 0x97, 0x1b, 0xaa, 0x47, 0x8e, 0x20, 0xf1, 0x7a, - 0x35, 0xca, 0xb2, 0x79, 0xe1, 0x30, 0x12, 0xaf, 0x57, 0xa7, 0x7c, 0x9b, 0x17, 0xb6, 0x9e, 0x78, - 0xbd, 0x6b, 0x94, 0x79, 0xf3, 0xc2, 0x26, 0x14, 0xaf, 0xf7, 0x4d, 0xca, 0xc1, 0x79, 0xe1, 0xa8, - 0x12, 0xaf, 0x77, 0x9d, 0xb2, 0x71, 0x5e, 0x38, 0xb4, 0xc4, 0xeb, 0xdd, 0xa0, 0xbc, 0x5c, 0x10, - 0x8f, 0x2f, 0xf1, 0x8a, 0x37, 0x5d, 0x86, 0x2e, 0x88, 0x07, 0x99, 0x78, 0xcd, 0x6f, 0xb9, 0x5c, - 0x5d, 0x10, 0x8f, 0x34, 0xf1, 0x9a, 0xb7, 0x5c, 0xd6, 0x2e, 0x88, 0x5b, 0x65, 0xbc, 0xe6, 0x86, - 0xcb, 0xdf, 0x05, 0x71, 0xd3, 0x8c, 0xd7, 0x6c, 0xb8, 0x4c, 0x5e, 0x10, 0xb7, 0xcf, 0x78, 0xcd, - 0x4d, 0xf7, 0x1d, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x43, 0x50, 0x9a, 0x40, 0x3f, 0xe8, 0x43, 0x3d, - 0x4d, 0xa0, 0x1e, 0xf4, 0xa1, 0x9d, 0x26, 0xd0, 0x0e, 0xfa, 0x50, 0x4e, 0x13, 0x28, 0x07, 0x7d, - 0xe8, 0xa6, 0x09, 0x74, 0x83, 0x3e, 0x54, 0xd3, 0x04, 0xaa, 0x41, 0x1f, 0x9a, 0x69, 0x02, 0xcd, - 0xa0, 0x0f, 0xc5, 0x34, 0x81, 0x62, 0xd0, 0x87, 0x5e, 0x9a, 0x40, 0x2f, 0xe8, 0x43, 0xad, 0xac, - 0x48, 0x2d, 0xe8, 0x47, 0xab, 0xac, 0x48, 0x2b, 0xe8, 0x47, 0xa9, 0xff, 0x17, 0x29, 0x35, 0x86, - 0xb4, 0xe2, 0x56, 0x13, 0xc3, 0xa6, 0xac, 0xc8, 0x26, 0xe8, 0xc7, 0xa4, 0xac, 0xc8, 0x24, 0xe8, - 0xc7, 0xa2, 0xac, 0xc8, 0x22, 0xe8, 0xc7, 0xa0, 0x27, 0x22, 0x83, 0xdc, 0x23, 0x3e, 0x9a, 0xb0, - 0xa3, 0x18, 0xc6, 0x20, 0x10, 0x81, 0x41, 0x20, 0x02, 0x83, 0x40, 0x04, 0x06, 0x81, 0x08, 0x0c, - 0x02, 0x11, 0x18, 0x04, 0x22, 0x30, 0x08, 0x44, 0x60, 0x10, 0x88, 0xc2, 0x20, 0x10, 0x89, 0x41, - 0x20, 0x88, 0x41, 0x59, 0xf1, 0xc0, 0x03, 0xf4, 0x9b, 0x90, 0xb2, 0xe2, 0xce, 0x67, 0x38, 0x85, - 0x40, 0x24, 0x0a, 0x81, 0x20, 0x0a, 0x7d, 0x84, 0x0a, 0x29, 0x8e, 0x42, 0x78, 0x7b, 0xe8, 0xac, - 0x66, 0xa0, 0xd5, 0x08, 0xe7, 0x2b, 0xfc, 0x38, 0xb5, 0x1a, 0x61, 0x8f, 0x7a, 0x10, 0xcf, 0xbc, - 0xb3, 0x50, 0x3d, 0xc2, 0x2c, 0x74, 0x8d, 0x72, 0x68, 0x35, 0xc2, 0xb9, 0x0b, 0x2f, 0xf7, 0xd6, - 0x06, 0x4d, 0x02, 0xd7, 0x23, 0x4d, 0x02, 0x37, 0x22, 0x4d, 0x02, 0x37, 0x5d, 0x04, 0x7f, 0x22, - 0xc3, 0x57, 0x5d, 0x04, 0x9d, 0x5f, 0x5b, 0x0f, 0x8e, 0xac, 0x29, 0xc0, 0xdd, 0xa1, 0x52, 0xc8, - 0xae, 0x0d, 0x03, 0xa3, 0xb5, 0x7f, 0x73, 0x9b, 0xdf, 0xab, 0x2a, 0x0f, 0xbb, 0x7f, 0xc3, 0x20, - 0x8e, 0xdf, 0x85, 0x66, 0x21, 0xb8, 0xd1, 0xee, 0xdb, 0xb3, 0x85, 0xdf, 0xb0, 0xd5, 0x26, 0xe8, - 0xb4, 0xfb, 0x4a, 0x13, 0x8e, 0xda, 0xe3, 0xf6, 0x6d, 0x78, 0x4f, 0x33, 0x30, 0x82, 0xde, 0x1e, - 0xb8, 0xaf, 0x3d, 0x91, 0xe0, 0x1c, 0x47, 0xe5, 0xb3, 0xd9, 0x31, 0x78, 0x2b, 0xd2, 0x8e, 0x01, - 0x97, 0x20, 0xee, 0xee, 0xc1, 0xd7, 0xbc, 0x1b, 0xd5, 0x6c, 0x96, 0x88, 0x3b, 0x09, 0x3f, 0x86, - 0x93, 0xee, 0x1d, 0xd8, 0x8f, 0x6c, 0x2b, 0xe1, 0x2f, 0x33, 0xfd, 0x52, 0x73, 0x45, 0x78, 0x89, - 0x36, 0xd0, 0x8c, 0x66, 0xab, 0x56, 0x46, 0x4f, 0x9c, 0x5d, 0xfb, 0x95, 0x41, 0x1f, 0x05, 0xab, - 0xbf, 0xd1, 0x3a, 0x0a, 0x7b, 0x17, 0x91, 0xb0, 0x4a, 0xf3, 0x93, 0x5f, 0xa1, 0xf2, 0xfc, 0x12, - 0x4c, 0xde, 0x31, 0x7a, 0xfa, 0x4e, 0x77, 0xcf, 0xe8, 0xfc, 0x48, 0x6f, 0x0b, 0x86, 0x63, 0xc4, - 0xb0, 0x1c, 0x7b, 0x6a, 0x69, 0xff, 0x5c, 0x82, 0x17, 0x58, 0xf5, 0xef, 0x20, 0xec, 0x6f, 0x18, - 0x56, 0x4d, 0xff, 0x36, 0x4c, 0xe8, 0x18, 0x38, 0x7b, 0xed, 0x1a, 0x27, 0x8f, 0x91, 0xbe, 0xea, - 0x8b, 0xf6, 0x67, 0x93, 0x9a, 0x08, 0xaf, 0x38, 0xc8, 0xb0, 0xc5, 0xcc, 0x1b, 0x30, 0xee, 0xf4, - 0xcf, 0xfb, 0x35, 0x21, 0xf8, 0xf5, 0x1b, 0x1f, 0xbf, 0x6c, 0x1e, 0x29, 0x37, 0x39, 0xbf, 0x98, - 0xa7, 0x55, 0x5f, 0xf5, 0x45, 0x42, 0xbe, 0x4a, 0xc2, 0xaa, 0xff, 0x6c, 0x46, 0x85, 0x3b, 0xb9, - 0x00, 0x13, 0x75, 0x51, 0xc7, 0xdf, 0xcf, 0x1a, 0x8c, 0x35, 0xba, 0x6d, 0x5d, 0x79, 0x15, 0xc6, - 0x6f, 0xb5, 0xb6, 0xf5, 0x03, 0x1c, 0xe4, 0xf8, 0x81, 0xf5, 0x07, 0x95, 0xdf, 0x89, 0xea, 0x7e, - 0xe7, 0xa0, 0xdd, 0xd3, 0x0d, 0xbc, 0x65, 0x8f, 0xdf, 0xa0, 0x5b, 0x36, 0xcd, 0xc4, 0x0e, 0x96, - 0xe5, 0x34, 0x38, 0xce, 0x50, 0x42, 0x89, 0xa3, 0xc7, 0xff, 0xd4, 0x88, 0xf5, 0x55, 0x49, 0x49, - 0xd6, 0x57, 0x35, 0x25, 0xe7, 0xde, 0x80, 0x53, 0xc2, 0x0b, 0x32, 0x4b, 0x52, 0x4b, 0x41, 0xeb, - 0xab, 0x9e, 0x1a, 0xcf, 0xc4, 0x1e, 0xfe, 0x7a, 0x66, 0x24, 0xf7, 0x16, 0x54, 0xbc, 0xaf, 0xd2, - 0x94, 0x51, 0x28, 0xaf, 0x5b, 0x5d, 0xbe, 0x06, 0xe5, 0x0a, 0xea, 0x33, 0x33, 0xf5, 0xd3, 0x5f, - 0xcc, 0x8d, 0x57, 0x74, 0xd3, 0xd4, 0x7b, 0x48, 0xbb, 0x52, 0xc1, 0xc6, 0xef, 0xc0, 0x0b, 0xbe, - 0xaf, 0xe2, 0x2c, 0xfb, 0x6a, 0xd5, 0xb1, 0xaf, 0xd5, 0x3c, 0xf6, 0xb5, 0x9a, 0x6d, 0x2f, 0x95, - 0xc9, 0x96, 0xe6, 0xba, 0xe2, 0xf3, 0xe2, 0x4b, 0x6d, 0x33, 0x5b, 0xa8, 0xeb, 0xe5, 0x77, 0xb0, - 0x6e, 0xc5, 0x57, 0x57, 0x0f, 0xd9, 0x12, 0xad, 0x94, 0xab, 0xd8, 0xbe, 0xea, 0x6b, 0xbf, 0x2b, - 0xec, 0xdb, 0xf1, 0x73, 0x10, 0xee, 0xa4, 0x4a, 0x1d, 0xae, 0xf9, 0x76, 0xb2, 0xcf, 0x9c, 0xa6, - 0xae, 0x51, 0x87, 0xeb, 0xbe, 0xba, 0x9d, 0x90, 0x53, 0x45, 0xf5, 0xf2, 0x12, 0x5e, 0x46, 0xd6, - 0x0b, 0xca, 0x05, 0xc2, 0x02, 0x2e, 0xc7, 0x71, 0x80, 0x9c, 0x15, 0x65, 0xbd, 0x80, 0xee, 0xd0, - 0x31, 0xa8, 0x04, 0x1a, 0x04, 0x47, 0xc9, 0xe9, 0xa4, 0x52, 0x28, 0x5f, 0xc7, 0x9d, 0x54, 0x03, - 0x3b, 0x09, 0x09, 0x95, 0xd3, 0x53, 0xb5, 0x50, 0xd9, 0x3a, 0xf9, 0x64, 0x66, 0xe4, 0x29, 0xba, - 0xfe, 0x8e, 0xae, 0x8f, 0x3f, 0x99, 0x91, 0x3e, 0x43, 0xd7, 0xe7, 0xe8, 0xfa, 0x02, 0x5d, 0xef, - 0x3d, 0x9f, 0x91, 0x1e, 0xa3, 0xeb, 0x43, 0x74, 0xfd, 0x01, 0x5d, 0x4f, 0xd0, 0x75, 0xf2, 0x1c, - 0xe9, 0xa3, 0xeb, 0x63, 0xf4, 0xfb, 0x33, 0xf4, 0xfd, 0x39, 0xfa, 0xfe, 0x02, 0x5d, 0xef, 0x7d, - 0x3a, 0x33, 0xf2, 0x08, 0x5d, 0x8f, 0x3f, 0x9d, 0x91, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xe3, - 0x57, 0x38, 0x0d, 0xb3, 0x34, 0x00, 0x00, + // 3089 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, + 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, + 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, + 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, + 0x30, 0xbf, 0xdb, 0x39, 0xba, 0xdf, 0xe9, 0x2d, 0x9d, 0x18, 0xbd, 0xe6, 0x9e, 0x7e, 0xd4, 0xec, + 0xf6, 0x0e, 0x9a, 0x87, 0x7a, 0x77, 0xc9, 0x3c, 0xd0, 0x4d, 0xbd, 0x67, 0x2e, 0x1e, 0x77, 0x3b, + 0x66, 0x47, 0x4e, 0x58, 0x7f, 0xa7, 0xaf, 0xef, 0xb7, 0xcd, 0x83, 0x93, 0xfb, 0x8b, 0xbb, 0x9d, + 0xa3, 0xa5, 0xfd, 0xce, 0x7e, 0x67, 0xc9, 0x16, 0xde, 0x3f, 0xd9, 0xb3, 0x7f, 0xd9, 0x3f, 0xec, + 0xbf, 0x1c, 0x23, 0xed, 0x9f, 0x18, 0x26, 0xeb, 0xed, 0xd6, 0xf6, 0xb1, 0x59, 0x6f, 0x9a, 0xed, + 0xb7, 0x74, 0x79, 0x16, 0xc6, 0x6e, 0xb5, 0xf5, 0xc3, 0xd6, 0xb2, 0x82, 0x32, 0x28, 0x8b, 0xca, + 0x89, 0xd3, 0xb3, 0xb9, 0x91, 0x06, 0x19, 0xa3, 0xd2, 0x82, 0x22, 0x65, 0x50, 0x56, 0xe2, 0xa4, + 0x05, 0x2a, 0x5d, 0x51, 0x70, 0x06, 0x65, 0x47, 0x39, 0xe9, 0x0a, 0x95, 0x16, 0x95, 0x44, 0x06, + 0x65, 0x31, 0x27, 0x2d, 0x52, 0xe9, 0xaa, 0x32, 0x9a, 0x41, 0xd9, 0x4b, 0x9c, 0x74, 0x95, 0x4a, + 0xd7, 0x94, 0xb1, 0x0c, 0xca, 0x26, 0x38, 0xe9, 0x1a, 0x95, 0xde, 0x50, 0x9e, 0xc9, 0xa0, 0xec, + 0x65, 0x4e, 0x7a, 0x83, 0x4a, 0xd7, 0x95, 0x64, 0x06, 0x65, 0x65, 0x4e, 0xba, 0x4e, 0xa5, 0x37, + 0x95, 0xf1, 0x0c, 0xca, 0x3e, 0xc3, 0x49, 0x6f, 0xca, 0x2a, 0x3c, 0xe3, 0x3c, 0x79, 0x5e, 0x81, + 0x0c, 0xca, 0x4e, 0x13, 0xb1, 0x3b, 0xe8, 0xc9, 0x97, 0x95, 0x89, 0x0c, 0xca, 0x8e, 0xf1, 0xf2, + 0x65, 0x4f, 0x5e, 0x50, 0x26, 0x33, 0x28, 0x9b, 0xe2, 0xe5, 0x05, 0x4f, 0xbe, 0xa2, 0x5c, 0xca, + 0xa0, 0x6c, 0x92, 0x97, 0xaf, 0x78, 0xf2, 0xa2, 0x32, 0x95, 0x41, 0xd9, 0x71, 0x5e, 0x5e, 0xf4, + 0xe4, 0xab, 0xca, 0x74, 0x06, 0x65, 0x27, 0x79, 0xf9, 0xaa, 0xf6, 0xae, 0x0d, 0xaf, 0xe1, 0xc1, + 0x3b, 0xc3, 0xc3, 0x4b, 0x81, 0x9d, 0xe1, 0x81, 0xa5, 0x90, 0xce, 0xf0, 0x90, 0x52, 0x30, 0x67, + 0x78, 0x30, 0x29, 0x8c, 0x33, 0x3c, 0x8c, 0x14, 0xc0, 0x19, 0x1e, 0x40, 0x0a, 0xdd, 0x0c, 0x0f, + 0x1d, 0x05, 0x6d, 0x86, 0x07, 0x8d, 0xc2, 0x35, 0xc3, 0xc3, 0x45, 0x81, 0x52, 0x04, 0xa0, 0x3c, + 0x88, 0x14, 0x01, 0x22, 0x0f, 0x1c, 0x45, 0x00, 0xc7, 0x83, 0x45, 0x11, 0x60, 0xf1, 0x00, 0x51, + 0x04, 0x40, 0x3c, 0x28, 0x14, 0x01, 0x0a, 0x0f, 0x04, 0x92, 0x63, 0x0d, 0xfd, 0x38, 0x20, 0xc7, + 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, 0x1c, + 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xe0, 0x1c, 0xc3, 0x11, 0x39, + 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x34, 0xc7, + 0x3c, 0x78, 0x67, 0x78, 0x78, 0x03, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, + 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0xc3, 0x72, + 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x70, 0x68, 0x8e, + 0x61, 0x36, 0xc7, 0xfe, 0x8c, 0x41, 0x76, 0x72, 0xec, 0x4e, 0x73, 0xf7, 0x87, 0x7a, 0x8b, 0x40, + 0xa1, 0x0a, 0x99, 0x36, 0x66, 0x41, 0x97, 0xf2, 0x20, 0x51, 0x85, 0x5c, 0xe3, 0xe5, 0x05, 0x2a, + 0x77, 0xb3, 0x8d, 0x97, 0xaf, 0x50, 0xb9, 0x9b, 0x6f, 0xbc, 0xbc, 0x48, 0xe5, 0x6e, 0xc6, 0xf1, + 0xf2, 0x55, 0x2a, 0x77, 0x73, 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x75, 0xbc, 0xfc, 0x06, 0x95, + 0xbb, 0x79, 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x3c, 0x5e, 0x7e, 0x53, 0xce, 0x88, 0xb9, 0xe7, + 0x2a, 0x50, 0x68, 0x33, 0x62, 0xf6, 0x09, 0x1a, 0xcb, 0x9e, 0x86, 0x9b, 0x7f, 0x82, 0x46, 0xc1, + 0xd3, 0x70, 0x33, 0x50, 0xd0, 0x58, 0xd1, 0xde, 0xb3, 0xe1, 0x33, 0x44, 0xf8, 0xd2, 0x02, 0x7c, + 0x12, 0x03, 0x5d, 0x5a, 0x80, 0x4e, 0x62, 0x60, 0x4b, 0x0b, 0xb0, 0x49, 0x0c, 0x64, 0x69, 0x01, + 0x32, 0x89, 0x81, 0x2b, 0x2d, 0xc0, 0x25, 0x31, 0x50, 0xa5, 0x05, 0xa8, 0x24, 0x06, 0xa6, 0xb4, + 0x00, 0x93, 0xc4, 0x40, 0x94, 0x16, 0x20, 0x92, 0x18, 0x78, 0xd2, 0x02, 0x3c, 0x12, 0x03, 0xcd, + 0xac, 0x08, 0x8d, 0xc4, 0xc2, 0x32, 0x2b, 0xc2, 0x22, 0xb1, 0x90, 0xcc, 0x8a, 0x90, 0x48, 0x2c, + 0x1c, 0xb3, 0x22, 0x1c, 0x12, 0x0b, 0xc5, 0x97, 0x92, 0xdb, 0x11, 0xbe, 0x69, 0x76, 0x4f, 0x76, + 0xcd, 0x0b, 0x75, 0x84, 0x79, 0xae, 0x7d, 0x98, 0x28, 0xc8, 0x8b, 0x76, 0xc3, 0xca, 0x76, 0x9c, + 0xc2, 0x1b, 0x2c, 0xcf, 0x35, 0x16, 0x8c, 0x85, 0x11, 0x6c, 0x51, 0xbc, 0x50, 0x6f, 0x98, 0xe7, + 0xda, 0x8c, 0x68, 0xff, 0xd6, 0xbf, 0xf2, 0x8e, 0xed, 0x91, 0xe4, 0x76, 0x6c, 0x24, 0xfc, 0xc3, + 0x76, 0x6c, 0xb9, 0xe8, 0x90, 0xd3, 0x60, 0xe7, 0xa2, 0x83, 0xed, 0x7b, 0xeb, 0xc4, 0xed, 0xe0, + 0x72, 0xd1, 0xa1, 0xa5, 0x41, 0x7d, 0xba, 0xfd, 0x16, 0x61, 0x70, 0x43, 0x3f, 0x0e, 0x60, 0xf0, + 0xb0, 0xfd, 0x56, 0x9e, 0x2b, 0x25, 0xc3, 0x32, 0x18, 0x0f, 0xcd, 0xe0, 0x61, 0x3b, 0xaf, 0x3c, + 0x57, 0x5e, 0x86, 0x66, 0xf0, 0x57, 0xd0, 0x0f, 0x11, 0x06, 0x7b, 0xe1, 0x1f, 0xb6, 0x1f, 0xca, + 0x45, 0x87, 0x3c, 0x90, 0xc1, 0x78, 0x08, 0x06, 0xc7, 0xe9, 0x8f, 0x72, 0xd1, 0xa1, 0x0d, 0x66, + 0xf0, 0x85, 0xbb, 0x99, 0xf7, 0x11, 0x5c, 0xae, 0xb7, 0x5b, 0xb5, 0xa3, 0xfb, 0x7a, 0xab, 0xa5, + 0xb7, 0x48, 0x1c, 0xf3, 0x5c, 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xd9, 0x9c, 0x17, 0xe1, 0x55, 0x48, + 0x3a, 0x31, 0xcd, 0xe7, 0x95, 0x53, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xd5, 0x35, 0x5b, 0xce, + 0x2b, 0x7f, 0x47, 0x4c, 0x95, 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x0b, 0x7b, 0xb8, 0x14, + 0xcb, 0x43, 0xc6, 0xb7, 0x17, 0x7c, 0xbe, 0x31, 0x5e, 0x9d, 0xc0, 0x74, 0xbd, 0xdd, 0xaa, 0xeb, + 0x3d, 0x33, 0x9e, 0x4b, 0x8e, 0x8e, 0x50, 0x0f, 0xf2, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, + 0x46, 0x68, 0x6d, 0x6b, 0x59, 0x83, 0x5b, 0x36, 0x17, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xb9, + 0xb0, 0x05, 0xbd, 0x1c, 0xa2, 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0x2b, 0x27, 0x3d, 0xb3, 0x73, 0x24, + 0xcf, 0x82, 0xb4, 0xd9, 0xb2, 0xd7, 0x98, 0x2c, 0x4f, 0x5a, 0x4e, 0x7d, 0x7c, 0x36, 0x97, 0xb8, + 0x7b, 0xd2, 0x6e, 0x35, 0xa4, 0xcd, 0x96, 0x7c, 0x1b, 0x46, 0xbf, 0xd3, 0x3c, 0x3c, 0xd1, 0xed, + 0x57, 0xc4, 0x64, 0xb9, 0x48, 0x14, 0x5e, 0x0e, 0xdd, 0x23, 0xb2, 0x16, 0x5e, 0xda, 0xb5, 0xa7, + 0x5e, 0xbc, 0xdb, 0x36, 0xcc, 0xe5, 0xc2, 0x7a, 0xc3, 0x99, 0x42, 0xfb, 0x3e, 0x80, 0xb3, 0x66, + 0xb5, 0xd9, 0x3b, 0x90, 0xeb, 0xee, 0xcc, 0xce, 0xd2, 0xeb, 0x1f, 0x9f, 0xcd, 0x15, 0xe3, 0xcc, + 0x7a, 0xbd, 0xd5, 0xec, 0x1d, 0x5c, 0x37, 0x1f, 0x1c, 0xeb, 0x8b, 0xe5, 0x07, 0xa6, 0xde, 0x73, + 0x67, 0x3f, 0x76, 0xdf, 0x7a, 0xe4, 0xb9, 0x14, 0xe6, 0xb9, 0x92, 0xdc, 0x33, 0xdd, 0xe2, 0x9f, + 0x29, 0xff, 0xa4, 0xcf, 0xf3, 0xb6, 0xfb, 0x92, 0x10, 0x22, 0x89, 0xa3, 0x22, 0x89, 0x2f, 0x1a, + 0xc9, 0x63, 0xb7, 0x3e, 0x0a, 0xcf, 0x8a, 0x07, 0x3d, 0x2b, 0xbe, 0xc8, 0xb3, 0xfe, 0xdb, 0xc9, + 0x56, 0x9a, 0x4f, 0x77, 0x8d, 0x76, 0xc7, 0xf8, 0xda, 0xed, 0x05, 0x3d, 0xd5, 0x2e, 0xa0, 0x94, + 0x38, 0x7d, 0x38, 0x87, 0xb4, 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xb2, 0x27, 0xff, 0xba, + 0xf4, 0x54, 0x5f, 0x45, 0x84, 0x7e, 0x85, 0x60, 0xc6, 0x57, 0xc9, 0x9d, 0x30, 0x3d, 0xdd, 0x72, + 0x6e, 0x0c, 0x5b, 0xce, 0x89, 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x04, + 0xf7, 0x9e, 0xf7, 0xaf, 0x64, 0x2b, 0x32, 0xde, 0xb1, 0xf0, 0x0a, 0x06, 0xcc, 0xcc, 0x14, 0xf7, + 0xa2, 0x80, 0xfb, 0x2c, 0x35, 0x08, 0x08, 0x97, 0xcb, 0x00, 0xe2, 0x76, 0x07, 0x12, 0x3b, 0x5d, + 0x5d, 0x97, 0x55, 0x90, 0xb6, 0xbb, 0xc4, 0xc3, 0x29, 0xc7, 0x7e, 0xbb, 0x5b, 0xee, 0x36, 0x8d, + 0xdd, 0x83, 0x86, 0xb4, 0xdd, 0x95, 0xaf, 0x02, 0xde, 0x30, 0x5a, 0xc4, 0xa3, 0x69, 0x47, 0x61, + 0xc3, 0x68, 0x11, 0x0d, 0x4b, 0x26, 0xab, 0x90, 0x78, 0x43, 0x6f, 0xee, 0x11, 0x27, 0xc0, 0xd1, + 0xb1, 0x46, 0x1a, 0xf6, 0x38, 0x59, 0xf0, 0x7b, 0x90, 0x74, 0x27, 0x96, 0xe7, 0x2d, 0x8b, 0x3d, + 0x93, 0x2c, 0x4b, 0x2c, 0x2c, 0x77, 0xc8, 0x9b, 0xcb, 0x96, 0xca, 0x0b, 0x30, 0xda, 0x68, 0xef, + 0x1f, 0x98, 0x64, 0x71, 0xbf, 0x9a, 0x23, 0xd6, 0xee, 0xc1, 0x38, 0xf5, 0xe8, 0x29, 0x4f, 0x5d, + 0x75, 0x1e, 0x4d, 0x4e, 0xb3, 0xef, 0x13, 0x77, 0xdf, 0xd2, 0x19, 0x92, 0x33, 0x90, 0x7c, 0xd3, + 0xec, 0x7a, 0x45, 0xdf, 0xed, 0x48, 0xe9, 0xa8, 0xf6, 0x2e, 0x82, 0x64, 0x55, 0xd7, 0x8f, 0xed, + 0x80, 0x5f, 0x83, 0x44, 0xb5, 0xf3, 0x23, 0x83, 0x38, 0x78, 0x99, 0x44, 0xd4, 0x12, 0x93, 0x98, + 0xda, 0x62, 0xf9, 0x1a, 0x1b, 0xf7, 0x67, 0x69, 0xdc, 0x19, 0x3d, 0x3b, 0xf6, 0x1a, 0x17, 0x7b, + 0x02, 0xa0, 0xa5, 0xe4, 0x8b, 0xff, 0x0d, 0x98, 0x60, 0x56, 0x91, 0xb3, 0xc4, 0x0d, 0x49, 0x34, + 0x64, 0x63, 0x65, 0x69, 0x68, 0x3a, 0x5c, 0xe2, 0x16, 0xb6, 0x4c, 0x99, 0x10, 0x87, 0x98, 0xda, + 0x61, 0xce, 0xf1, 0x61, 0x0e, 0x56, 0x25, 0xa1, 0xce, 0x3b, 0x31, 0xb2, 0xc3, 0x3d, 0xef, 0x90, + 0x33, 0x1c, 0x44, 0xeb, 0x6f, 0x6d, 0x14, 0x70, 0xbd, 0x7d, 0xa8, 0xbd, 0x0a, 0xe0, 0xa4, 0x7c, + 0xcd, 0x38, 0x39, 0x12, 0xb2, 0x6e, 0xca, 0x0d, 0xf0, 0xce, 0x81, 0xbe, 0xa3, 0xf7, 0x6c, 0x15, + 0xbe, 0x9f, 0xb2, 0x0a, 0x0c, 0x38, 0x29, 0x66, 0xdb, 0xbf, 0x14, 0x69, 0x1f, 0xd8, 0x89, 0x59, + 0xaa, 0x8a, 0xa3, 0x7a, 0x4f, 0x37, 0x37, 0x8c, 0x8e, 0x79, 0xa0, 0x77, 0x05, 0x8b, 0x82, 0xbc, + 0xc2, 0x25, 0xec, 0x54, 0xe1, 0x05, 0x6a, 0x11, 0x6a, 0xb4, 0xa2, 0x7d, 0x68, 0x3b, 0x68, 0xb5, + 0x02, 0xbe, 0x07, 0xc4, 0x31, 0x1e, 0x50, 0x5e, 0xe3, 0xfa, 0xb7, 0x01, 0x6e, 0x0a, 0x9f, 0x96, + 0x37, 0xb9, 0xef, 0x9c, 0xc1, 0xce, 0xf2, 0xdf, 0x98, 0x6e, 0x4c, 0x5d, 0x97, 0x5f, 0x8a, 0x74, + 0x39, 0xa4, 0xbb, 0x1d, 0x36, 0xa6, 0x38, 0x6e, 0x4c, 0xff, 0x44, 0x3b, 0x0e, 0x6b, 0xb8, 0xaa, + 0xef, 0x35, 0x4f, 0x0e, 0x4d, 0xf9, 0xe5, 0x48, 0xec, 0x4b, 0xa8, 0x42, 0x5d, 0x2d, 0xc6, 0x85, + 0xbf, 0x24, 0x95, 0xcb, 0xd4, 0xdd, 0x1b, 0x43, 0x50, 0xa0, 0x24, 0x55, 0x2a, 0xb4, 0x6c, 0x27, + 0xdf, 0x7b, 0x38, 0x87, 0x3e, 0x78, 0x38, 0x37, 0xa2, 0xfd, 0x0e, 0xc1, 0x65, 0xa2, 0xc9, 0x10, + 0xf7, 0xba, 0xe0, 0xfc, 0x15, 0xb7, 0x66, 0x04, 0x45, 0xe0, 0xbf, 0x46, 0xde, 0xbf, 0x22, 0x50, + 0x7c, 0xbe, 0xba, 0xf1, 0xce, 0xc7, 0x72, 0xb9, 0x84, 0x6a, 0xff, 0xfb, 0x98, 0xdf, 0x83, 0xd1, + 0x9d, 0xf6, 0x91, 0xde, 0xb5, 0xde, 0x04, 0xd6, 0x1f, 0x8e, 0xcb, 0xee, 0x61, 0x8e, 0x33, 0xe4, + 0xca, 0x1c, 0xe7, 0x38, 0x59, 0x41, 0x56, 0x20, 0x51, 0x6d, 0x9a, 0x4d, 0xdb, 0x83, 0x49, 0x5a, + 0x5f, 0x9b, 0x66, 0x53, 0x5b, 0x81, 0xc9, 0xad, 0x07, 0xb5, 0xb7, 0x4d, 0xdd, 0x68, 0x35, 0xef, + 0x1f, 0x8a, 0x67, 0xa0, 0x6e, 0xbf, 0xba, 0x9c, 0x1b, 0x4d, 0xb6, 0x52, 0xa7, 0xa8, 0x94, 0xb0, + 0xfd, 0x79, 0x0b, 0xa6, 0xb6, 0x2d, 0xb7, 0x6d, 0x3b, 0xdb, 0x2c, 0x03, 0x68, 0x8b, 0x6f, 0x84, + 0xd8, 0x59, 0x1b, 0x68, 0x4b, 0x68, 0x1f, 0x31, 0x0d, 0x8f, 0xd0, 0xb6, 0x61, 0xda, 0xb6, 0xe5, + 0x12, 0xc9, 0xa9, 0xd4, 0xe5, 0x5c, 0x22, 0x09, 0xa9, 0x4b, 0x64, 0xdd, 0xbf, 0x61, 0x48, 0x39, + 0xad, 0x4e, 0x55, 0xdf, 0x6b, 0x1b, 0x6d, 0xd3, 0xdf, 0xaf, 0x52, 0x8f, 0xe5, 0x6f, 0xc2, 0xb8, + 0x15, 0x52, 0xfb, 0x17, 0x01, 0xec, 0x2a, 0x69, 0x51, 0x84, 0x29, 0xc8, 0x80, 0x4d, 0x1d, 0xcf, + 0x46, 0xbe, 0x05, 0xb8, 0x5e, 0xdf, 0x22, 0x2f, 0xb7, 0xe2, 0x40, 0xd3, 0x2d, 0xbd, 0xd7, 0x6b, + 0xee, 0xeb, 0xe4, 0x17, 0x19, 0xeb, 0xed, 0x37, 0xac, 0x09, 0xe4, 0x22, 0x48, 0xf5, 0x2d, 0xd2, + 0xf0, 0xce, 0xc7, 0x99, 0xa6, 0x21, 0xd5, 0xb7, 0xd2, 0x7f, 0x41, 0x70, 0x89, 0x1b, 0x95, 0x35, + 0x98, 0x74, 0x06, 0x98, 0xc7, 0x1d, 0x6b, 0x70, 0x63, 0xae, 0xcf, 0xd2, 0x05, 0x7d, 0x4e, 0x6f, + 0xc0, 0xb4, 0x30, 0x2e, 0x2f, 0x82, 0xcc, 0x0e, 0x11, 0x27, 0xc0, 0x6e, 0xa8, 0x03, 0x24, 0xda, + 0xff, 0x01, 0x78, 0x71, 0x95, 0xa7, 0x61, 0x62, 0xe7, 0xde, 0x9d, 0xda, 0x0f, 0xea, 0xb5, 0x37, + 0x77, 0x6a, 0xd5, 0x14, 0xd2, 0xfe, 0x80, 0x60, 0x82, 0xb4, 0xad, 0xbb, 0x9d, 0x63, 0x5d, 0x2e, + 0x03, 0xda, 0x20, 0x0c, 0x7a, 0x32, 0xbf, 0xd1, 0x86, 0xbc, 0x04, 0xa8, 0x1c, 0x1f, 0x6a, 0x54, + 0x96, 0x0b, 0x80, 0x2a, 0x04, 0xe0, 0x78, 0xc8, 0xa0, 0x8a, 0xf6, 0x2f, 0x0c, 0xcf, 0xb2, 0x6d, + 0xb4, 0x5b, 0x4f, 0xae, 0xf2, 0xdf, 0x4d, 0xa5, 0xf1, 0xe5, 0xc2, 0x4a, 0x71, 0xd1, 0xfa, 0x87, + 0x52, 0xf2, 0x2a, 0xff, 0x09, 0xe5, 0x57, 0xf1, 0x5d, 0x13, 0x29, 0x25, 0x18, 0xa9, 0xef, 0x9a, + 0x08, 0x27, 0xf5, 0x5d, 0x13, 0xe1, 0xa4, 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x77, 0x14, 0xc0, 0x49, + 0x7d, 0xd7, 0x44, 0x38, 0xa9, 0xef, 0x9a, 0x08, 0x27, 0xf5, 0x5f, 0x13, 0x21, 0xe2, 0xd0, 0x6b, + 0x22, 0xbc, 0xdc, 0x7f, 0x4d, 0x84, 0x97, 0xfb, 0xaf, 0x89, 0x94, 0x12, 0x66, 0xf7, 0x44, 0x0f, + 0x3f, 0x74, 0xe0, 0xed, 0x07, 0x7d, 0x03, 0x7a, 0x05, 0x78, 0x1b, 0xa6, 0x9d, 0xfd, 0x88, 0x4a, + 0xc7, 0x30, 0x9b, 0x6d, 0x43, 0xef, 0xca, 0xdf, 0x80, 0x49, 0x67, 0xc8, 0xf9, 0xca, 0x09, 0xfa, + 0x0a, 0x74, 0xe4, 0xa4, 0xdc, 0x72, 0xda, 0xda, 0x97, 0x09, 0x98, 0x71, 0x06, 0xea, 0xcd, 0x23, + 0x9d, 0xbb, 0x64, 0xb4, 0x20, 0x1c, 0x29, 0x4d, 0x59, 0xe6, 0xfd, 0xb3, 0x39, 0x67, 0x74, 0x83, + 0x92, 0x69, 0x41, 0x38, 0x5c, 0xe2, 0xf5, 0xbc, 0xf7, 0xcf, 0x82, 0x70, 0xf1, 0x88, 0xd7, 0xa3, + 0xaf, 0x1b, 0xaa, 0xe7, 0x5e, 0x41, 0xe2, 0xf5, 0xaa, 0x94, 0x65, 0x0b, 0xc2, 0x65, 0x24, 0x5e, + 0xaf, 0x46, 0xf9, 0xb6, 0x20, 0x1c, 0x3d, 0xf1, 0x7a, 0xb7, 0x28, 0xf3, 0x16, 0x84, 0x43, 0x28, + 0x5e, 0xef, 0x5b, 0x94, 0x83, 0x0b, 0xc2, 0x55, 0x25, 0x5e, 0xef, 0x75, 0xca, 0xc6, 0x05, 0xe1, + 0xd2, 0x12, 0xaf, 0xb7, 0x49, 0x79, 0x99, 0x15, 0xaf, 0x2f, 0xf1, 0x8a, 0xb7, 0x3d, 0x86, 0x66, + 0xc5, 0x8b, 0x4c, 0xbc, 0xe6, 0xb7, 0x3d, 0xae, 0x66, 0xc5, 0x2b, 0x4d, 0xbc, 0xe6, 0x1b, 0x1e, + 0x6b, 0xb3, 0xe2, 0x51, 0x19, 0xaf, 0xb9, 0xe5, 0xf1, 0x37, 0x2b, 0x1e, 0x9a, 0xf1, 0x9a, 0x75, + 0x8f, 0xc9, 0x59, 0xf1, 0xf8, 0x8c, 0xd7, 0xdc, 0xf6, 0xf6, 0xd0, 0x3f, 0x12, 0xe8, 0xc7, 0x5c, + 0x82, 0xd2, 0x04, 0xfa, 0x41, 0x00, 0xf5, 0x34, 0x81, 0x7a, 0x10, 0x40, 0x3b, 0x4d, 0xa0, 0x1d, + 0x04, 0x50, 0x4e, 0x13, 0x28, 0x07, 0x01, 0x74, 0xd3, 0x04, 0xba, 0x41, 0x00, 0xd5, 0x34, 0x81, + 0x6a, 0x10, 0x40, 0x33, 0x4d, 0xa0, 0x19, 0x04, 0x50, 0x4c, 0x13, 0x28, 0x06, 0x01, 0xf4, 0xd2, + 0x04, 0x7a, 0x41, 0x00, 0xb5, 0xe6, 0x45, 0x6a, 0x41, 0x10, 0xad, 0xe6, 0x45, 0x5a, 0x41, 0x10, + 0xa5, 0x5e, 0x14, 0x29, 0x35, 0xde, 0x3f, 0x9b, 0x1b, 0xb5, 0x86, 0x18, 0x36, 0xcd, 0x8b, 0x6c, + 0x82, 0x20, 0x26, 0xcd, 0x8b, 0x4c, 0x82, 0x20, 0x16, 0xcd, 0x8b, 0x2c, 0x82, 0x20, 0x06, 0x3d, + 0x12, 0x19, 0xe4, 0x5d, 0xf1, 0xd1, 0x84, 0x13, 0xc5, 0x28, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, + 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, + 0x83, 0x70, 0x1c, 0x06, 0xe1, 0x58, 0x0c, 0xc2, 0x61, 0x0c, 0x9a, 0x17, 0x2f, 0x3c, 0x40, 0x50, + 0x41, 0x9a, 0x17, 0x4f, 0x3e, 0xa3, 0x29, 0x84, 0x63, 0x51, 0x08, 0x87, 0x51, 0xe8, 0x23, 0x0c, + 0xcf, 0x72, 0x14, 0x22, 0xc7, 0x43, 0x4f, 0xab, 0x02, 0xad, 0xc5, 0xb8, 0x5f, 0x11, 0xc4, 0xa9, + 0xb5, 0x18, 0x67, 0xd4, 0x83, 0x78, 0xe6, 0xaf, 0x42, 0xb5, 0x18, 0x55, 0xe8, 0x16, 0xe5, 0xd0, + 0x5a, 0x8c, 0x7b, 0x17, 0x7e, 0xee, 0xad, 0x0f, 0x2a, 0x02, 0xaf, 0xc7, 0x2a, 0x02, 0x9b, 0xb1, + 0x8a, 0xc0, 0x6d, 0x0f, 0xc1, 0x9f, 0x4a, 0xf0, 0x9c, 0x87, 0xa0, 0xf3, 0xd7, 0xce, 0x83, 0x63, + 0xab, 0x04, 0x78, 0x27, 0x54, 0xb2, 0x7b, 0x6a, 0xc3, 0xc0, 0x28, 0x6d, 0xb6, 0xe4, 0x3b, 0xfc, + 0x59, 0x55, 0x69, 0xd8, 0xf3, 0x1b, 0x06, 0x71, 0xb2, 0x17, 0x3a, 0x0f, 0x78, 0xb3, 0xd5, 0xb3, + 0xab, 0x45, 0xd0, 0xb2, 0x95, 0x86, 0x25, 0x96, 0x1b, 0x30, 0x66, 0xab, 0xf7, 0x6c, 0x78, 0x2f, + 0xb2, 0x70, 0xb5, 0x41, 0x66, 0xd2, 0x1e, 0x21, 0xc8, 0x70, 0x54, 0x7e, 0x3a, 0x27, 0x06, 0xaf, + 0xc4, 0x3a, 0x31, 0xe0, 0x12, 0xc4, 0x3b, 0x3d, 0xf8, 0x7f, 0xff, 0x41, 0x35, 0x9b, 0x25, 0xe2, + 0x49, 0xc2, 0x4f, 0x60, 0xca, 0x7b, 0x02, 0xfb, 0x93, 0x6d, 0x35, 0x7a, 0x33, 0x33, 0x28, 0x35, + 0x57, 0x85, 0x4d, 0xb4, 0x81, 0x66, 0x34, 0x5b, 0xb5, 0x12, 0x4c, 0xd7, 0x3b, 0xf6, 0x96, 0x41, + 0xaf, 0xdd, 0x31, 0x7a, 0x5b, 0xcd, 0xe3, 0xa8, 0xbd, 0x88, 0xa4, 0xd5, 0x9a, 0x9f, 0xfe, 0x7a, + 0x6e, 0x44, 0x7b, 0x19, 0x26, 0xef, 0x1a, 0x5d, 0x7d, 0xb7, 0xb3, 0x6f, 0xb4, 0x7f, 0xac, 0xb7, + 0x04, 0xc3, 0x71, 0xd7, 0xb0, 0x94, 0x78, 0x6c, 0x69, 0xff, 0x02, 0xc1, 0x15, 0x56, 0xfd, 0xbb, + 0x6d, 0xf3, 0x60, 0xd3, 0xb0, 0x7a, 0xfa, 0x57, 0x21, 0xa9, 0x13, 0xe0, 0xec, 0x77, 0xd7, 0x84, + 0xfb, 0x19, 0x19, 0xa8, 0xbe, 0x68, 0xff, 0xdb, 0xa0, 0x26, 0xc2, 0x16, 0x87, 0xbb, 0x6c, 0x21, + 0x7d, 0x0d, 0x46, 0x9d, 0xf9, 0x79, 0xbf, 0x2e, 0x09, 0x7e, 0xfd, 0x36, 0xc0, 0x2f, 0x9b, 0x47, + 0xf2, 0x6d, 0xce, 0x2f, 0xe6, 0x6b, 0x35, 0x50, 0x7d, 0xd1, 0x25, 0x5f, 0x39, 0x69, 0xf5, 0x7f, + 0x36, 0xa3, 0xa2, 0x9d, 0xcc, 0x42, 0xb2, 0x26, 0xea, 0x04, 0xfb, 0x59, 0x85, 0x44, 0xbd, 0xd3, + 0xd2, 0xe5, 0xe7, 0x60, 0xf4, 0x8d, 0xe6, 0x7d, 0xfd, 0x90, 0x04, 0xd9, 0xf9, 0x21, 0x2f, 0x40, + 0xb2, 0x72, 0xd0, 0x3e, 0x6c, 0x75, 0x75, 0x83, 0x1c, 0xd9, 0x93, 0x1d, 0x74, 0xcb, 0xa6, 0x41, + 0x65, 0x5a, 0x05, 0x2e, 0xd7, 0x3b, 0x46, 0xf9, 0x81, 0xc9, 0xd6, 0x8d, 0x45, 0x21, 0x45, 0xc8, + 0x91, 0xcf, 0x1d, 0x2b, 0x1b, 0x2d, 0x85, 0xf2, 0xe8, 0xc7, 0x67, 0x73, 0x68, 0x87, 0x6e, 0x9f, + 0x6f, 0xc1, 0xf3, 0x24, 0x7d, 0x7c, 0x53, 0x15, 0xa2, 0xa6, 0x1a, 0x27, 0xc7, 0xd4, 0xcc, 0x74, + 0x9b, 0xd6, 0x74, 0x46, 0xe0, 0x74, 0x4f, 0xe6, 0x99, 0xd5, 0x14, 0x0d, 0xf4, 0x0c, 0x0f, 0xe5, + 0x59, 0xe0, 0x74, 0x8b, 0x51, 0xd3, 0x09, 0x9e, 0xbd, 0x08, 0xe3, 0x54, 0xc6, 0xb0, 0x81, 0xcd, + 0x94, 0x42, 0x4e, 0x83, 0x09, 0x26, 0x61, 0xe5, 0x51, 0x40, 0x1b, 0xa9, 0x11, 0xeb, 0xbf, 0x72, + 0x0a, 0x59, 0xff, 0x55, 0x52, 0x52, 0xee, 0x1a, 0x4c, 0x0b, 0xdb, 0x97, 0x96, 0xa4, 0x9a, 0x02, + 0xeb, 0xbf, 0x5a, 0x6a, 0x22, 0x9d, 0x78, 0xef, 0x37, 0xea, 0x48, 0xee, 0x15, 0x90, 0xfd, 0x1b, + 0x9d, 0xf2, 0x18, 0x48, 0x1b, 0xd6, 0x94, 0xcf, 0x83, 0x54, 0x2e, 0xa7, 0x50, 0x7a, 0xfa, 0x67, + 0xbf, 0xcc, 0x4c, 0x94, 0x75, 0xd3, 0xd4, 0xbb, 0xf7, 0x74, 0xb3, 0x5c, 0x26, 0xc6, 0xaf, 0xc1, + 0x95, 0xc0, 0x8d, 0x52, 0xcb, 0xbe, 0x52, 0x71, 0xec, 0xab, 0x55, 0x9f, 0x7d, 0xb5, 0x6a, 0xdb, + 0xa3, 0x92, 0x7b, 0xe0, 0xbc, 0x21, 0x07, 0x6c, 0x4b, 0x2a, 0x2d, 0xe6, 0x80, 0x7b, 0xa3, 0xf4, + 0x1a, 0xd1, 0x2d, 0x07, 0xea, 0xea, 0x11, 0x07, 0xd6, 0xe5, 0x52, 0x85, 0xd8, 0x57, 0x02, 0xed, + 0xf7, 0x84, 0x53, 0x55, 0xfe, 0x0d, 0x41, 0x26, 0xa9, 0x50, 0x87, 0xab, 0x81, 0x93, 0x1c, 0x30, + 0x77, 0xdd, 0xab, 0xd4, 0xe1, 0x5a, 0xa0, 0x6e, 0x3b, 0xe2, 0xce, 0x57, 0xad, 0xb4, 0x44, 0x5e, + 0xf2, 0x1b, 0xcb, 0xf2, 0x15, 0x37, 0x47, 0xb9, 0x0a, 0x4c, 0x02, 0xe4, 0x6a, 0x95, 0x2a, 0xc4, + 0xa0, 0x1c, 0x6a, 0x10, 0x1e, 0x25, 0xd7, 0xb2, 0xf4, 0x3a, 0x99, 0xa4, 0x12, 0x3a, 0x49, 0x44, + 0xa8, 0x5c, 0xf3, 0xf2, 0xce, 0xe9, 0xb9, 0x3a, 0xf2, 0xf8, 0x5c, 0x1d, 0xf9, 0xc7, 0xb9, 0x3a, + 0xf2, 0xc9, 0xb9, 0x8a, 0x3e, 0x3b, 0x57, 0xd1, 0xe7, 0xe7, 0x2a, 0xfa, 0xe2, 0x5c, 0x45, 0xef, + 0xf4, 0x55, 0xf4, 0x41, 0x5f, 0x45, 0x1f, 0xf6, 0x55, 0xf4, 0xc7, 0xbe, 0x8a, 0x1e, 0xf5, 0x55, + 0x74, 0xda, 0x57, 0x47, 0x1e, 0xf7, 0xd5, 0x91, 0x4f, 0xfa, 0x2a, 0xfa, 0xac, 0xaf, 0x8e, 0x7c, + 0xde, 0x57, 0xd1, 0x17, 0x7d, 0x15, 0xbd, 0xf3, 0xa9, 0x3a, 0xf2, 0xf0, 0x53, 0x75, 0xe4, 0x83, + 0x4f, 0x55, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x1a, 0xc4, 0x7a, 0x51, 0x36, 0x00, + 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto index 4bba611d..130bceed 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go index 44c7b7bf..8ddbe380 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go @@ -67,12 +67,19 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -87,21 +94,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -121,24 +132,28 @@ func TestNidOptNativeProto(t *testing.T) { } func TestNidOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,11 +172,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -171,11 +186,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -189,21 +204,25 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -223,24 +242,28 @@ func TestNinOptNativeProto(t *testing.T) { } func TestNinOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -259,11 +282,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -273,11 +296,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -291,21 +314,25 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { } func TestNidRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -325,24 +352,28 @@ func TestNidRepNativeProto(t *testing.T) { } func TestNidRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -361,11 +392,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -375,11 +406,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -393,21 +424,25 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { } func TestNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -427,24 +462,28 @@ func TestNinRepNativeProto(t *testing.T) { } func TestNinRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -463,11 +502,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -477,11 +516,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -495,21 +534,25 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { } func TestNidRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -529,24 +572,28 @@ func TestNidRepPackedNativeProto(t *testing.T) { } func TestNidRepPackedNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -565,11 +612,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -579,11 +626,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -597,21 +644,25 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNinRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -631,24 +682,28 @@ func TestNinRepPackedNativeProto(t *testing.T) { } func TestNinRepPackedNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -667,11 +722,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -681,11 +736,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -699,21 +754,25 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNidOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -733,24 +792,28 @@ func TestNidOptStructProto(t *testing.T) { } func TestNidOptStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -769,11 +832,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -783,11 +846,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -801,21 +864,25 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { } func TestNinOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -835,24 +902,28 @@ func TestNinOptStructProto(t *testing.T) { } func TestNinOptStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -871,11 +942,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -885,11 +956,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -903,21 +974,25 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { } func TestNidRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -937,24 +1012,28 @@ func TestNidRepStructProto(t *testing.T) { } func TestNidRepStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -973,11 +1052,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -987,11 +1066,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -1005,21 +1084,25 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { } func TestNinRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1039,24 +1122,28 @@ func TestNinRepStructProto(t *testing.T) { } func TestNinRepStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1075,11 +1162,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1089,11 +1176,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -1107,21 +1194,25 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { } func TestNidEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1141,24 +1232,28 @@ func TestNidEmbeddedStructProto(t *testing.T) { } func TestNidEmbeddedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1177,11 +1272,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1191,11 +1286,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -1209,21 +1304,25 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1243,24 +1342,28 @@ func TestNinEmbeddedStructProto(t *testing.T) { } func TestNinEmbeddedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1279,11 +1382,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1293,11 +1396,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -1311,21 +1414,25 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNidNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1345,24 +1452,28 @@ func TestNidNestedStructProto(t *testing.T) { } func TestNidNestedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1381,11 +1492,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1395,11 +1506,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1413,21 +1524,25 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { } func TestNinNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1447,24 +1562,28 @@ func TestNinNestedStructProto(t *testing.T) { } func TestNinNestedStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1483,11 +1602,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1497,11 +1616,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1515,21 +1634,25 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { } func TestNidOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1549,24 +1672,28 @@ func TestNidOptCustomProto(t *testing.T) { } func TestNidOptCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1585,11 +1712,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1599,11 +1726,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1617,21 +1744,25 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { } func TestCustomDashProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1651,24 +1782,28 @@ func TestCustomDashProto(t *testing.T) { } func TestCustomDashMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1687,11 +1822,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1701,11 +1836,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1719,21 +1854,25 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { } func TestNinOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1753,24 +1892,28 @@ func TestNinOptCustomProto(t *testing.T) { } func TestNinOptCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1789,11 +1932,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1803,11 +1946,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1821,21 +1964,25 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { } func TestNidRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1855,24 +2002,28 @@ func TestNidRepCustomProto(t *testing.T) { } func TestNidRepCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1891,11 +2042,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1905,11 +2056,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1923,21 +2074,25 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { } func TestNinRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1957,24 +2112,28 @@ func TestNinRepCustomProto(t *testing.T) { } func TestNinRepCustomMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1993,11 +2152,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2007,11 +2166,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -2025,21 +2184,25 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { } func TestNinOptNativeUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2059,24 +2222,28 @@ func TestNinOptNativeUnionProto(t *testing.T) { } func TestNinOptNativeUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2095,11 +2262,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2109,11 +2276,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -2127,21 +2294,25 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { } func TestNinOptStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2161,24 +2332,28 @@ func TestNinOptStructUnionProto(t *testing.T) { } func TestNinOptStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2197,11 +2372,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2211,11 +2386,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -2229,21 +2404,25 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2263,24 +2442,28 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { } func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2299,11 +2482,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2313,11 +2496,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -2331,21 +2514,25 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestNinNestedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2365,24 +2552,28 @@ func TestNinNestedStructUnionProto(t *testing.T) { } func TestNinNestedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2401,11 +2592,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2415,11 +2606,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -2433,21 +2624,25 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { } func TestTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2467,24 +2662,28 @@ func TestTreeProto(t *testing.T) { } func TestTreeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2503,11 +2702,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2517,11 +2716,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -2535,21 +2734,25 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { } func TestOrBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2569,24 +2772,28 @@ func TestOrBranchProto(t *testing.T) { } func TestOrBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2605,11 +2812,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2619,11 +2826,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -2637,21 +2844,25 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { } func TestAndBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2671,24 +2882,28 @@ func TestAndBranchProto(t *testing.T) { } func TestAndBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2707,11 +2922,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2721,11 +2936,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2739,21 +2954,25 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { } func TestLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2773,24 +2992,28 @@ func TestLeafProto(t *testing.T) { } func TestLeafMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2809,11 +3032,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2823,11 +3046,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2841,21 +3064,25 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { } func TestDeepTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2875,24 +3102,28 @@ func TestDeepTreeProto(t *testing.T) { } func TestDeepTreeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2911,11 +3142,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2925,11 +3156,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2943,21 +3174,25 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { } func TestADeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2977,24 +3212,28 @@ func TestADeepBranchProto(t *testing.T) { } func TestADeepBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3013,11 +3252,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3027,11 +3266,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -3045,21 +3284,25 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { } func TestAndDeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3079,24 +3322,28 @@ func TestAndDeepBranchProto(t *testing.T) { } func TestAndDeepBranchMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3115,11 +3362,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3129,11 +3376,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -3147,21 +3394,25 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { } func TestDeepLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3181,24 +3432,28 @@ func TestDeepLeafProto(t *testing.T) { } func TestDeepLeafMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3217,11 +3472,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3231,11 +3486,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -3249,21 +3504,25 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { } func TestNilProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3283,24 +3542,28 @@ func TestNilProto(t *testing.T) { } func TestNilMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3319,11 +3582,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3333,11 +3596,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -3351,21 +3614,25 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { } func TestNidOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3385,24 +3652,28 @@ func TestNidOptEnumProto(t *testing.T) { } func TestNidOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3421,11 +3692,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3435,11 +3706,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -3453,21 +3724,25 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3487,24 +3762,28 @@ func TestNinOptEnumProto(t *testing.T) { } func TestNinOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3523,11 +3802,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3537,11 +3816,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -3555,21 +3834,25 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { } func TestNidRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3589,24 +3872,28 @@ func TestNidRepEnumProto(t *testing.T) { } func TestNidRepEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3625,11 +3912,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3639,11 +3926,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -3657,21 +3944,25 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { } func TestNinRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3691,24 +3982,28 @@ func TestNinRepEnumProto(t *testing.T) { } func TestNinRepEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3727,11 +4022,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3741,11 +4036,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -3759,21 +4054,25 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3793,24 +4092,28 @@ func TestNinOptEnumDefaultProto(t *testing.T) { } func TestNinOptEnumDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +4132,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +4146,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -3861,21 +4164,25 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3895,24 +4202,28 @@ func TestAnotherNinOptEnumProto(t *testing.T) { } func TestAnotherNinOptEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3931,11 +4242,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3945,11 +4256,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -3963,21 +4274,25 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3997,24 +4312,28 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { } func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4033,11 +4352,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4047,11 +4366,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -4065,21 +4384,25 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestTimerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4099,24 +4422,28 @@ func TestTimerProto(t *testing.T) { } func TestTimerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4135,11 +4462,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4149,11 +4476,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -4167,21 +4494,25 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { } func TestMyExtendableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4201,24 +4532,28 @@ func TestMyExtendableProto(t *testing.T) { } func TestMyExtendableMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4237,11 +4572,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4251,11 +4586,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -4269,21 +4604,25 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { } func TestOtherExtenableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4303,24 +4642,28 @@ func TestOtherExtenableProto(t *testing.T) { } func TestOtherExtenableMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4339,11 +4682,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4353,11 +4696,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -4371,21 +4714,25 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { } func TestNestedDefinitionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4405,24 +4752,28 @@ func TestNestedDefinitionProto(t *testing.T) { } func TestNestedDefinitionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4441,11 +4792,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4455,11 +4806,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -4473,21 +4824,25 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4507,24 +4862,28 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { } func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4543,11 +4902,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4557,11 +4916,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -4575,21 +4934,25 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4609,24 +4972,28 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4645,11 +5012,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4659,11 +5026,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -4677,21 +5044,25 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te } func TestNestedScopeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4711,24 +5082,28 @@ func TestNestedScopeProto(t *testing.T) { } func TestNestedScopeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4747,11 +5122,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4761,11 +5136,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -4779,21 +5154,25 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4813,24 +5192,28 @@ func TestNinOptNativeDefaultProto(t *testing.T) { } func TestNinOptNativeDefaultMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4849,11 +5232,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4863,11 +5246,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -4881,21 +5264,25 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { } func TestCustomContainerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4915,24 +5302,28 @@ func TestCustomContainerProto(t *testing.T) { } func TestCustomContainerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4951,11 +5342,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4965,11 +5356,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -4983,21 +5374,25 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { } func TestCustomNameNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5017,24 +5412,28 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { } func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5053,11 +5452,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5067,11 +5466,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -5085,21 +5484,25 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5119,24 +5522,28 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { } func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5155,11 +5562,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5169,11 +5576,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -5187,21 +5594,25 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5221,24 +5632,28 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { } func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5257,11 +5672,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5271,11 +5686,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -5289,21 +5704,25 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5323,24 +5742,28 @@ func TestCustomNameNinStructProto(t *testing.T) { } func TestCustomNameNinStructMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5359,11 +5782,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5373,11 +5796,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -5391,21 +5814,25 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { } func TestCustomNameCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5425,24 +5852,28 @@ func TestCustomNameCustomTypeProto(t *testing.T) { } func TestCustomNameCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5461,11 +5892,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5475,11 +5906,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -5493,21 +5924,25 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5527,24 +5962,28 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5563,11 +6002,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5577,11 +6016,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -5595,21 +6034,25 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestCustomNameEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5629,24 +6072,28 @@ func TestCustomNameEnumProto(t *testing.T) { } func TestCustomNameEnumMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5665,11 +6112,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5679,11 +6126,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -5697,21 +6144,25 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { } func TestNoExtensionsMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5731,24 +6182,28 @@ func TestNoExtensionsMapProto(t *testing.T) { } func TestNoExtensionsMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5767,11 +6222,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5781,11 +6236,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -5799,21 +6254,25 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { } func TestUnrecognizedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5833,24 +6292,28 @@ func TestUnrecognizedProto(t *testing.T) { } func TestUnrecognizedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5869,11 +6332,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5883,11 +6346,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -5901,21 +6364,25 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5935,24 +6402,28 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { } func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -5971,11 +6442,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -5985,11 +6456,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -6003,21 +6474,25 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInner_InnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6037,24 +6512,28 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { } func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6073,11 +6552,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6087,11 +6566,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -6105,21 +6584,25 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6139,24 +6622,28 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { } func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6175,11 +6662,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6189,11 +6676,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -6207,21 +6694,25 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6241,24 +6732,28 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6277,11 +6772,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6291,11 +6786,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -6309,21 +6804,25 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { } func TestNodeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6343,24 +6842,28 @@ func TestNodeProto(t *testing.T) { } func TestNodeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -6379,11 +6882,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -6393,11 +6896,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -6410,136 +6913,796 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } -func TestNidOptNativeJSON(t *testing.T) { +func TestNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinOptNativeJSON(t *testing.T) { + +func TestNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + p := NewPopulatedNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) } } -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } } + b.SetBytes(int64(total / b.N)) } -func TestNidRepPackedNativeJSON(t *testing.T) { + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinRepPackedNativeJSON(t *testing.T) { + +func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) } } -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypeMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidOptStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptStruct(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { @@ -7379,13 +8542,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7397,16 +8686,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7418,16 +8707,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7439,16 +8728,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7460,16 +8749,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7481,16 +8770,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7502,16 +8791,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7523,16 +8812,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7544,16 +8833,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7565,16 +8854,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7586,16 +8875,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7607,16 +8896,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7628,16 +8917,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7649,16 +8938,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7670,16 +8959,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7691,16 +8980,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -7716,9 +9005,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7733,9 +9022,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7750,9 +9039,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7767,9 +9056,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7784,9 +9073,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7801,9 +9090,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7818,9 +9107,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7835,9 +9124,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7852,9 +9141,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7869,9 +9158,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7886,9 +9175,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7903,9 +9192,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7920,9 +9209,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7937,9 +9226,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7954,9 +9243,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7971,9 +9260,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7988,9 +9277,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8005,9 +9294,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8022,9 +9311,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8039,9 +9328,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8056,9 +9345,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8073,9 +9362,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8090,9 +9379,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8107,9 +9396,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8124,9 +9413,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8141,9 +9430,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8158,9 +9447,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8175,9 +9464,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8192,9 +9481,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8209,9 +9498,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8226,9 +9515,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8243,9 +9532,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8260,9 +9549,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8277,9 +9566,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8294,9 +9583,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8311,9 +9600,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8328,9 +9617,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8345,9 +9634,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8362,9 +9651,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8379,9 +9668,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8396,9 +9685,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8413,9 +9702,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8430,9 +9719,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8447,9 +9736,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8464,9 +9753,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8481,9 +9770,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8498,9 +9787,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8515,9 +9804,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8532,9 +9821,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8549,9 +9838,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8566,9 +9855,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8583,9 +9872,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8600,9 +9889,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8617,9 +9906,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8634,9 +9923,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8651,9 +9940,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8668,9 +9957,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8685,9 +9974,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8702,9 +9991,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8719,9 +10008,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8736,9 +10025,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8753,9 +10042,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8770,9 +10059,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8787,9 +10076,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8804,9 +10093,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8821,9 +10110,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8838,9 +10127,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8855,9 +10144,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8872,9 +10161,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8889,9 +10178,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8906,9 +10195,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8923,9 +10212,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8940,9 +10229,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8957,9 +10246,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8974,9 +10263,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8991,9 +10280,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9008,9 +10297,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9025,9 +10314,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9042,9 +10331,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9059,9 +10348,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9076,9 +10365,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9093,9 +10382,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9110,9 +10399,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9127,9 +10416,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9144,9 +10433,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9161,9 +10450,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9178,9 +10467,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9195,9 +10484,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9212,9 +10501,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9229,9 +10518,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9246,9 +10535,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9263,9 +10552,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9280,9 +10569,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9297,9 +10586,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9314,9 +10603,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9331,9 +10620,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9348,9 +10637,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9365,9 +10654,9 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9382,9 +10671,9 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9399,9 +10688,9 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9416,9 +10705,9 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9433,9 +10722,9 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9450,9 +10739,9 @@ func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9467,9 +10756,9 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9484,9 +10773,9 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9501,9 +10790,213 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9514,13 +11007,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9531,13 +11024,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9548,13 +11041,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9565,13 +11058,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9582,13 +11075,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9599,13 +11092,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9616,13 +11109,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9633,13 +11126,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9650,13 +11143,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9667,13 +11160,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9684,13 +11177,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9701,13 +11194,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9718,13 +11211,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9735,13 +11228,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9752,13 +11245,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9769,13 +11262,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9786,13 +11279,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,13 +11296,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9821,14 +11314,18 @@ func TestNodeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9845,14 +11342,18 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9869,14 +11370,18 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9893,14 +11398,18 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9917,14 +11426,18 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9941,14 +11454,18 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9965,14 +11482,18 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9989,14 +11510,18 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10013,14 +11538,18 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10037,14 +11566,18 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10061,14 +11594,18 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10085,14 +11622,18 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10109,14 +11650,18 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10133,14 +11678,18 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10157,14 +11706,18 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10181,14 +11734,18 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10205,14 +11762,18 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10229,14 +11790,18 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10253,14 +11818,18 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10277,14 +11846,18 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10301,14 +11874,18 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10325,14 +11902,18 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10349,14 +11930,18 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10373,14 +11958,18 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10397,14 +11986,18 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10421,14 +12014,18 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10445,14 +12042,18 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10469,14 +12070,18 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10493,14 +12098,18 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10517,14 +12126,18 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10541,14 +12154,18 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10565,14 +12182,18 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10589,14 +12210,18 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10613,14 +12238,18 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10637,14 +12266,18 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10661,14 +12294,18 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10685,14 +12322,18 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10709,14 +12350,18 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10733,14 +12378,18 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10757,14 +12406,18 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10781,14 +12434,18 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10805,14 +12462,18 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10829,14 +12490,18 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10853,14 +12518,18 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10877,14 +12546,18 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10901,14 +12574,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10925,14 +12602,18 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10949,14 +12630,18 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10973,14 +12658,18 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10997,14 +12686,18 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11021,14 +12714,18 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11045,14 +12742,18 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11069,14 +12770,18 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11093,14 +12798,18 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11117,14 +12826,18 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11141,14 +12854,18 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11165,14 +12882,18 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11189,14 +12910,18 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11213,14 +12938,18 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11237,20 +12966,192 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNodeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNode(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11260,21 +13161,25 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11284,21 +13189,25 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -11312,14 +13221,18 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11327,14 +13240,18 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11342,14 +13259,18 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11357,14 +13278,18 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11372,14 +13297,18 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11387,14 +13316,18 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11402,14 +13335,18 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11417,14 +13354,18 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11432,14 +13373,18 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11447,14 +13392,18 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11462,14 +13411,18 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11477,14 +13430,18 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11492,14 +13449,18 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11507,14 +13468,18 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11522,14 +13487,18 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11537,14 +13506,18 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11552,14 +13525,18 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11567,14 +13544,18 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11582,14 +13563,18 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11597,14 +13582,18 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11612,14 +13601,18 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11627,14 +13620,18 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11642,14 +13639,18 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11657,14 +13658,18 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11672,14 +13677,18 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11687,14 +13696,18 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11702,14 +13715,18 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11717,14 +13734,18 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11732,14 +13753,18 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11747,14 +13772,18 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11762,14 +13791,18 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11777,14 +13810,18 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11792,14 +13829,18 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11807,14 +13848,18 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11822,14 +13867,18 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11837,14 +13886,18 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11852,14 +13905,18 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11867,14 +13924,18 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11882,14 +13943,18 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11897,14 +13962,18 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11912,14 +13981,18 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11927,14 +14000,18 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11942,14 +14019,18 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11957,14 +14038,18 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11972,14 +14057,18 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11987,14 +14076,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12002,14 +14095,18 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12017,14 +14114,18 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12032,14 +14133,18 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12047,14 +14152,18 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12062,14 +14171,18 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12077,14 +14190,18 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12092,14 +14209,18 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12107,14 +14228,18 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12122,14 +14247,18 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12137,14 +14266,18 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12152,14 +14285,18 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12167,14 +14304,18 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12182,14 +14323,18 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12197,14 +14342,18 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12212,14 +14361,18 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12227,14 +14380,132 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,6 +14960,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -13302,7 +15621,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13313,9 +15710,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13326,9 +15723,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13339,9 +15736,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13352,9 +15749,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13365,9 +15762,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13378,9 +15775,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13391,9 +15788,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13404,9 +15801,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13417,9 +15814,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13430,9 +15827,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13443,9 +15840,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13456,9 +15853,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13469,9 +15866,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13482,9 +15879,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -13500,13 +15897,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13536,13 +15933,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13572,13 +15969,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13608,13 +16005,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13644,13 +16041,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13680,13 +16077,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13716,13 +16113,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13752,13 +16149,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13788,13 +16185,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13824,13 +16221,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13860,13 +16257,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13896,13 +16293,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13932,13 +16329,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13968,13 +16365,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14004,13 +16401,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14040,13 +16437,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14076,13 +16473,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14112,13 +16509,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14148,13 +16545,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14184,13 +16581,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14220,13 +16617,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14256,13 +16653,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14292,13 +16689,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14328,13 +16725,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14364,13 +16761,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14400,13 +16797,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14436,13 +16833,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14472,13 +16869,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14508,13 +16905,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14544,13 +16941,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14580,13 +16977,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14616,13 +17013,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14652,13 +17049,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14688,13 +17085,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14724,13 +17121,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14760,13 +17157,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14796,13 +17193,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14832,13 +17229,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14868,13 +17265,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14904,13 +17301,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14940,13 +17337,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -14976,13 +17373,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15012,13 +17409,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15048,13 +17445,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15084,13 +17481,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15120,13 +17517,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15156,13 +17553,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15192,13 +17589,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15228,13 +17625,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15264,13 +17661,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15300,13 +17697,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15336,13 +17733,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15372,13 +17769,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15408,13 +17805,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15444,13 +17841,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15480,13 +17877,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15516,13 +17913,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15552,13 +17949,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15588,13 +17985,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15624,13 +18021,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15660,13 +18057,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15696,13 +18093,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -15727,6 +18124,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -16285,6 +18898,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go index 2386c48e..53f720e9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go new file mode 100644 index 00000000..c7c292e8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go @@ -0,0 +1,73 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go index 421d06cd..7e3b9a08 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -102,7 +108,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -281,21 +289,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -304,21 +312,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -327,21 +335,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -350,21 +358,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -373,19 +381,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -394,19 +402,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -415,16 +423,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -433,16 +441,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -451,16 +459,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -469,16 +477,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -487,9 +495,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -498,9 +506,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -509,8 +517,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -519,8 +527,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -529,8 +537,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -539,7 +547,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -548,8 +556,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -558,8 +566,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -568,8 +576,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -578,15 +586,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -595,15 +603,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -612,9 +620,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -623,9 +631,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -634,9 +642,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -645,8 +653,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -655,8 +663,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -665,8 +673,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -675,9 +683,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -686,7 +694,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -695,8 +703,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -705,7 +713,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -722,7 +730,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -731,9 +739,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -742,9 +750,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -753,9 +761,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -764,9 +772,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -800,9 +808,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -811,9 +819,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -847,9 +855,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -858,9 +866,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -868,25 +876,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -894,25 +896,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -921,8 +917,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -933,7 +929,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -946,9 +942,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -957,21 +953,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1100,7 +1096,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1109,21 +1105,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1132,21 +1128,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1155,21 +1151,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1178,16 +1174,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1196,10 +1192,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1208,9 +1204,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1221,8 +1217,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1231,7 +1227,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1241,7 +1237,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1255,7 +1251,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1264,7 +1260,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1273,7 +1269,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1284,7 +1280,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1293,7 +1289,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1303,8 +1299,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1312,12 +1308,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1325,7 +1376,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1333,7 +1385,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1341,7 +1394,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1349,7 +1403,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1357,7 +1412,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1365,7 +1421,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "combos/unsafeunmarshaler/thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1373,7 +1430,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "combos/unsafeunmarshaler/thetest.proto", } func init() { @@ -1439,6 +1497,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4759,19 +4823,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4839,19 +4905,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6460,6 +6528,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6646,393 +6949,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6123 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xde, 0xe1, 0x90, 0x12, 0x75, 0x28, 0x51, 0xd4, 0xac, 0x56, 0xa6, 0xe5, 0xf5, 0x3e, 0x68, - 0x59, 0x96, 0x15, 0x5b, 0xaf, 0xd5, 0xbe, 0xe8, 0xc4, 0x01, 0x5f, 0x2b, 0x6b, 0xab, 0x57, 0x47, - 0x52, 0x62, 0xa7, 0x05, 0x08, 0x2e, 0x39, 0x92, 0x68, 0x53, 0x43, 0x96, 0x43, 0xda, 0xde, 0xfc, - 0x28, 0xd2, 0xa4, 0x4d, 0x93, 0x16, 0x7d, 0xa6, 0x45, 0xf3, 0x8e, 0x93, 0x22, 0x8d, 0x93, 0xbe, - 0x92, 0x36, 0x09, 0x8a, 0xa0, 0x68, 0x0c, 0x14, 0x69, 0xb7, 0x7f, 0x8a, 0x34, 0xbf, 0x8a, 0xa2, - 0x30, 0xf2, 0x02, 0x9a, 0xb6, 0x69, 0x9b, 0x00, 0x06, 0x12, 0x20, 0xf9, 0xd1, 0xfb, 0x9e, 0xb9, - 0x97, 0x43, 0xce, 0xc8, 0x6b, 0x27, 0x59, 0x80, 0x2b, 0xf2, 0x9e, 0xf3, 0x9d, 0x39, 0x73, 0x5e, - 0xf7, 0xcc, 0xbd, 0x97, 0x84, 0xbf, 0x5f, 0x86, 0x0b, 0x87, 0xcd, 0xe6, 0x61, 0xc3, 0x5a, 0x6c, - 0xb5, 0x9b, 0x9d, 0xe6, 0xad, 0xee, 0xc1, 0x62, 0xcd, 0x72, 0xaa, 0xed, 0x7a, 0xab, 0xd3, 0x6c, - 0x2f, 0x90, 0x31, 0x63, 0x9c, 0x72, 0x2c, 0x70, 0x8e, 0xcc, 0x26, 0x4c, 0xdc, 0xa8, 0x37, 0xac, - 0xa2, 0x60, 0xdc, 0xb5, 0x3a, 0xc6, 0x35, 0x88, 0x1e, 0xa0, 0xc1, 0xb4, 0x76, 0x41, 0x9f, 0x4b, - 0xac, 0xcc, 0x2c, 0x28, 0xa0, 0x05, 0x19, 0xb1, 0x83, 0x87, 0x4d, 0x82, 0xc8, 0x7c, 0x3b, 0x0a, - 0xa7, 0x7d, 0xa8, 0x86, 0x01, 0x51, 0xbb, 0x72, 0x8c, 0x25, 0x6a, 0x73, 0x23, 0x26, 0x79, 0x6f, - 0xa4, 0x61, 0xb8, 0x55, 0xa9, 0x3e, 0x53, 0x39, 0xb4, 0xd2, 0x11, 0x32, 0xcc, 0x3f, 0x1a, 0xe7, - 0x00, 0x6a, 0x56, 0xcb, 0xb2, 0x6b, 0x96, 0x5d, 0xbd, 0x9d, 0xd6, 0x91, 0x16, 0x23, 0xa6, 0x67, - 0xc4, 0x78, 0x03, 0x4c, 0xb4, 0xba, 0xb7, 0x1a, 0xf5, 0x6a, 0xd9, 0xc3, 0x06, 0x88, 0x2d, 0x66, - 0xa6, 0x28, 0xa1, 0xe8, 0x32, 0x3f, 0x04, 0xe3, 0xcf, 0x59, 0x95, 0x67, 0xbc, 0xac, 0x09, 0xc2, - 0x9a, 0xc4, 0xc3, 0x1e, 0xc6, 0x02, 0x8c, 0x1e, 0x5b, 0x8e, 0x83, 0x14, 0x28, 0x77, 0x6e, 0xb7, - 0xac, 0x74, 0x94, 0xdc, 0xfd, 0x85, 0x9e, 0xbb, 0x57, 0xef, 0x3c, 0xc1, 0x50, 0x7b, 0x08, 0x64, - 0xe4, 0x60, 0xc4, 0xb2, 0xbb, 0xc7, 0x54, 0x42, 0xac, 0x8f, 0xfd, 0x4a, 0x88, 0x43, 0x95, 0x12, - 0xc7, 0x30, 0x26, 0x62, 0xd8, 0xb1, 0xda, 0xcf, 0xd6, 0xab, 0x56, 0x7a, 0x88, 0x08, 0x78, 0xa8, - 0x47, 0xc0, 0x2e, 0xa5, 0xab, 0x32, 0x38, 0x0e, 0xdd, 0xca, 0x88, 0xf5, 0x7c, 0xc7, 0xb2, 0x9d, - 0x7a, 0xd3, 0x4e, 0x0f, 0x13, 0x21, 0x0f, 0xfa, 0x78, 0xd1, 0x6a, 0xd4, 0x54, 0x11, 0x2e, 0xce, - 0xb8, 0x02, 0xc3, 0xcd, 0x56, 0x07, 0xbd, 0x73, 0xd2, 0x71, 0xe4, 0x9f, 0xc4, 0xca, 0x59, 0xdf, - 0x40, 0xd8, 0xa6, 0x3c, 0x26, 0x67, 0x36, 0xd6, 0x21, 0xe5, 0x34, 0xbb, 0xed, 0xaa, 0x55, 0xae, - 0x36, 0x6b, 0x56, 0xb9, 0x6e, 0x1f, 0x34, 0xd3, 0x23, 0x44, 0xc0, 0xf9, 0xde, 0x1b, 0x21, 0x8c, - 0x05, 0xc4, 0xb7, 0x8e, 0xd8, 0xcc, 0xa4, 0x23, 0x7d, 0x36, 0xa6, 0x60, 0xc8, 0xb9, 0x6d, 0x77, - 0x2a, 0xcf, 0xa7, 0x47, 0x49, 0x84, 0xb0, 0x4f, 0x99, 0x1f, 0xc4, 0x60, 0x3c, 0x4c, 0x88, 0x3d, - 0x06, 0xb1, 0x03, 0x7c, 0x97, 0x28, 0xc0, 0x4e, 0x60, 0x03, 0x8a, 0x91, 0x8d, 0x38, 0xf4, 0x2a, - 0x8d, 0x98, 0x83, 0x84, 0x6d, 0x39, 0x1d, 0xab, 0x46, 0x23, 0x42, 0x0f, 0x19, 0x53, 0x40, 0x41, - 0xbd, 0x21, 0x15, 0x7d, 0x55, 0x21, 0xf5, 0x24, 0x8c, 0x0b, 0x95, 0xca, 0xed, 0x8a, 0x7d, 0xc8, - 0x63, 0x73, 0x31, 0x48, 0x93, 0x85, 0x12, 0xc7, 0x99, 0x18, 0x66, 0x26, 0x2d, 0xe9, 0xb3, 0x51, - 0x04, 0x68, 0xda, 0x56, 0xf3, 0x00, 0xa5, 0x57, 0xb5, 0x81, 0xe2, 0xc4, 0xdf, 0x4a, 0xdb, 0x98, - 0xa5, 0xc7, 0x4a, 0x4d, 0x3a, 0x5a, 0x6d, 0x18, 0xd7, 0xdd, 0x50, 0x1b, 0xee, 0x13, 0x29, 0x9b, - 0x34, 0xc9, 0x7a, 0xa2, 0x6d, 0x1f, 0x92, 0x6d, 0x0b, 0xc7, 0x3d, 0x32, 0x31, 0xbd, 0xb3, 0x11, - 0xa2, 0xc4, 0x42, 0xe0, 0x9d, 0x99, 0x0c, 0x46, 0x6f, 0x6c, 0xac, 0xed, 0xfd, 0x68, 0x3c, 0x00, - 0x62, 0xa0, 0x4c, 0xc2, 0x0a, 0x48, 0x15, 0x1a, 0xe5, 0x83, 0x5b, 0x68, 0x6c, 0xfa, 0x1a, 0x24, - 0x65, 0xf3, 0x18, 0x93, 0x10, 0x73, 0x3a, 0x95, 0x76, 0x87, 0x44, 0x61, 0xcc, 0xa4, 0x1f, 0x8c, - 0x14, 0xe8, 0xa8, 0xc8, 0x90, 0x2a, 0x17, 0x33, 0xf1, 0xdb, 0xe9, 0xab, 0x30, 0x26, 0x5d, 0x3e, - 0x2c, 0x30, 0xf3, 0xfe, 0x21, 0x98, 0xf4, 0x8b, 0x39, 0xdf, 0xf0, 0x47, 0xe9, 0x83, 0x22, 0xe0, - 0x96, 0xd5, 0x46, 0x71, 0x87, 0x25, 0xb0, 0x4f, 0x28, 0xa2, 0x62, 0x8d, 0xca, 0x2d, 0xab, 0x81, - 0xa2, 0x49, 0x9b, 0x4b, 0xae, 0xbc, 0x21, 0x54, 0x54, 0x2f, 0x6c, 0x60, 0x88, 0x49, 0x91, 0xc6, - 0xe3, 0x10, 0x65, 0x25, 0x0e, 0x4b, 0x98, 0x0f, 0x27, 0x01, 0xc7, 0xa2, 0x49, 0x70, 0xc6, 0x7d, - 0x30, 0x82, 0xff, 0x52, 0xdb, 0x0e, 0x11, 0x9d, 0xe3, 0x78, 0x00, 0xdb, 0xd5, 0x98, 0x86, 0x38, - 0x09, 0xb3, 0x9a, 0xc5, 0xa7, 0x06, 0xf1, 0x19, 0x3b, 0xa6, 0x66, 0x1d, 0x54, 0xba, 0x8d, 0x4e, - 0xf9, 0xd9, 0x4a, 0xa3, 0x6b, 0x91, 0x80, 0x41, 0x8e, 0x61, 0x83, 0x6f, 0xc1, 0x63, 0xc6, 0x79, - 0x48, 0xd0, 0xa8, 0xac, 0x23, 0xcc, 0xf3, 0xa4, 0xfa, 0xc4, 0x4c, 0x1a, 0xa8, 0xeb, 0x78, 0x04, - 0x5f, 0xfe, 0x69, 0x07, 0xe5, 0x02, 0x73, 0x2d, 0xb9, 0x04, 0x1e, 0x20, 0x97, 0xbf, 0xaa, 0x16, - 0xbe, 0xfb, 0xfd, 0x6f, 0x4f, 0x8d, 0xc5, 0xcc, 0x17, 0x23, 0x10, 0x25, 0xf9, 0x36, 0x0e, 0x89, - 0xbd, 0xa7, 0x76, 0x4a, 0xe5, 0xe2, 0xf6, 0x7e, 0x7e, 0xa3, 0x94, 0xd2, 0x8c, 0x24, 0x00, 0x19, - 0xb8, 0xb1, 0xb1, 0x9d, 0xdb, 0x4b, 0x45, 0xc4, 0xe7, 0xf5, 0xad, 0xbd, 0x2b, 0xab, 0x29, 0x5d, - 0x00, 0xf6, 0xe9, 0x40, 0xd4, 0xcb, 0x70, 0x69, 0x25, 0x15, 0x43, 0x91, 0x30, 0x4a, 0x05, 0xac, - 0x3f, 0x59, 0x2a, 0x22, 0x8e, 0x21, 0x79, 0x04, 0xf1, 0x0c, 0x1b, 0x63, 0x30, 0x42, 0x46, 0xf2, - 0xdb, 0xdb, 0x1b, 0xa9, 0xb8, 0x90, 0xb9, 0xbb, 0x67, 0xae, 0x6f, 0xad, 0xa5, 0x46, 0x84, 0xcc, - 0x35, 0x73, 0x7b, 0x7f, 0x27, 0x05, 0x42, 0xc2, 0x66, 0x69, 0x77, 0x37, 0xb7, 0x56, 0x4a, 0x25, - 0x04, 0x47, 0xfe, 0xa9, 0xbd, 0xd2, 0x6e, 0x6a, 0x54, 0x52, 0x0b, 0x5d, 0x62, 0x4c, 0x5c, 0xa2, - 0xb4, 0xb5, 0xbf, 0x99, 0x4a, 0x1a, 0x13, 0x30, 0x46, 0x2f, 0xc1, 0x95, 0x18, 0x57, 0x86, 0x90, - 0xa6, 0x29, 0x57, 0x11, 0x2a, 0x65, 0x42, 0x1a, 0x40, 0x1c, 0x46, 0xa6, 0x00, 0x31, 0x12, 0x5d, - 0x28, 0x8a, 0x93, 0x1b, 0xb9, 0x7c, 0x69, 0xa3, 0xbc, 0xbd, 0xb3, 0xb7, 0xbe, 0xbd, 0x95, 0xdb, - 0x40, 0xb6, 0x13, 0x63, 0x66, 0xe9, 0xe7, 0xf7, 0xd7, 0xcd, 0x52, 0x11, 0xd9, 0xcf, 0x33, 0xb6, - 0x53, 0xca, 0xed, 0xa1, 0x31, 0x3d, 0x33, 0x0f, 0x93, 0x7e, 0x75, 0xc6, 0x2f, 0x33, 0x32, 0x9f, - 0xd0, 0xe0, 0xb4, 0x4f, 0xc9, 0xf4, 0xcd, 0xa2, 0x37, 0x43, 0x8c, 0x46, 0x1a, 0x9d, 0x44, 0x1e, - 0xf6, 0xad, 0xbd, 0x24, 0xee, 0x7a, 0x26, 0x12, 0x82, 0xf3, 0x4e, 0xa4, 0x7a, 0x9f, 0x89, 0x14, - 0x8b, 0xe8, 0x09, 0xa7, 0x77, 0x69, 0x90, 0xee, 0x27, 0x3b, 0x20, 0xdf, 0x23, 0x52, 0xbe, 0x3f, - 0xa6, 0x2a, 0x70, 0xb1, 0xff, 0x3d, 0xf4, 0x68, 0xf1, 0x29, 0x0d, 0xa6, 0xfc, 0xfb, 0x0d, 0x5f, - 0x1d, 0x1e, 0x87, 0xa1, 0x63, 0xab, 0x73, 0xd4, 0xe4, 0x73, 0xee, 0xac, 0x4f, 0x25, 0xc7, 0x64, - 0xd5, 0x56, 0x0c, 0xe5, 0x9d, 0x0a, 0xf4, 0x7e, 0x4d, 0x03, 0xd5, 0xa6, 0x47, 0xd3, 0xf7, 0x46, - 0xe0, 0x8c, 0xaf, 0x70, 0x5f, 0x45, 0xef, 0x07, 0xa8, 0xdb, 0xad, 0x6e, 0x87, 0xce, 0xab, 0xb4, - 0xcc, 0x8c, 0x90, 0x11, 0x92, 0xc2, 0xb8, 0x84, 0x74, 0x3b, 0x82, 0xae, 0x13, 0x3a, 0xd0, 0x21, - 0xc2, 0x70, 0xcd, 0x55, 0x34, 0x4a, 0x14, 0x3d, 0xd7, 0xe7, 0x4e, 0x7b, 0xa6, 0xac, 0x25, 0x48, - 0x55, 0x1b, 0x75, 0xcb, 0xee, 0x94, 0x9d, 0x4e, 0xdb, 0xaa, 0x1c, 0xd7, 0xed, 0x43, 0x52, 0x47, - 0xe3, 0xd9, 0xd8, 0x41, 0xa5, 0xe1, 0x58, 0xe6, 0x38, 0x25, 0xef, 0x72, 0x2a, 0x46, 0x90, 0xc9, - 0xa2, 0xed, 0x41, 0x0c, 0x49, 0x08, 0x4a, 0x16, 0x88, 0xcc, 0xd7, 0x86, 0x21, 0xe1, 0xe9, 0xce, - 0x8c, 0x8b, 0x30, 0xfa, 0x74, 0xe5, 0xd9, 0x4a, 0x99, 0x77, 0xdc, 0xd4, 0x12, 0x09, 0x3c, 0xb6, - 0xc3, 0xba, 0xee, 0x25, 0x98, 0x24, 0x2c, 0xe8, 0x1e, 0xd1, 0x85, 0xaa, 0x8d, 0x8a, 0xe3, 0x10, - 0xa3, 0xc5, 0x09, 0xab, 0x81, 0x69, 0xdb, 0x98, 0x54, 0xe0, 0x14, 0xe3, 0x32, 0x9c, 0x26, 0x88, - 0x63, 0x54, 0x78, 0xeb, 0xad, 0x86, 0x55, 0xc6, 0xcf, 0x00, 0x0e, 0xa9, 0xa7, 0x42, 0xb3, 0x09, - 0xcc, 0xb1, 0xc9, 0x18, 0xb0, 0x46, 0x8e, 0xb1, 0x06, 0xf7, 0x13, 0xd8, 0xa1, 0x65, 0x5b, 0xed, - 0x4a, 0xc7, 0x2a, 0x5b, 0xbf, 0xd4, 0x45, 0xbc, 0xe5, 0x8a, 0x5d, 0x2b, 0x1f, 0x55, 0x9c, 0xa3, - 0xf4, 0xa4, 0x57, 0xc0, 0xbd, 0x98, 0x77, 0x8d, 0xb1, 0x96, 0x08, 0x67, 0xce, 0xae, 0x3d, 0x81, - 0xf8, 0x8c, 0x2c, 0x4c, 0x11, 0x41, 0xc8, 0x28, 0xe8, 0x9e, 0xcb, 0xd5, 0x23, 0xab, 0xfa, 0x4c, - 0xb9, 0xdb, 0x39, 0xb8, 0x96, 0xbe, 0xcf, 0x2b, 0x81, 0x28, 0xb9, 0x4b, 0x78, 0x0a, 0x98, 0x65, - 0x1f, 0x71, 0x18, 0xbb, 0x30, 0x8a, 0xfd, 0x71, 0x5c, 0x7f, 0x3b, 0x52, 0xbb, 0xd9, 0x26, 0x73, - 0x44, 0xd2, 0x27, 0xb9, 0x3d, 0x46, 0x5c, 0xd8, 0x66, 0x80, 0x4d, 0xd4, 0x9f, 0x66, 0x63, 0xbb, - 0x3b, 0xa5, 0x52, 0xd1, 0x4c, 0x70, 0x29, 0x37, 0x9a, 0x6d, 0x1c, 0x53, 0x87, 0x4d, 0x61, 0xe3, - 0x04, 0x8d, 0xa9, 0xc3, 0x26, 0xb7, 0x30, 0xb2, 0x57, 0xb5, 0x4a, 0x6f, 0x1b, 0x3d, 0xbb, 0xb0, - 0x66, 0xdd, 0x49, 0xa7, 0x24, 0x7b, 0x55, 0xab, 0x6b, 0x94, 0x81, 0x85, 0xb9, 0x83, 0x52, 0xe2, - 0x8c, 0x6b, 0x2f, 0x2f, 0x70, 0xa2, 0xe7, 0x2e, 0x55, 0x28, 0xba, 0x62, 0xeb, 0x76, 0x2f, 0xd0, - 0x90, 0xae, 0xd8, 0xba, 0xad, 0xc2, 0x1e, 0x24, 0x0f, 0x60, 0x6d, 0xab, 0x8a, 0x4c, 0x5e, 0x4b, - 0xdf, 0xe3, 0xe5, 0xf6, 0x10, 0x8c, 0x45, 0x14, 0xc8, 0xd5, 0xb2, 0x65, 0x57, 0x6e, 0x21, 0xdf, - 0x57, 0xda, 0xe8, 0x8d, 0x93, 0x3e, 0xef, 0x65, 0x4e, 0x56, 0xab, 0x25, 0x42, 0xcd, 0x11, 0xa2, - 0x31, 0x0f, 0x13, 0xcd, 0x5b, 0x4f, 0x57, 0x69, 0x70, 0x95, 0x91, 0x9c, 0x83, 0xfa, 0xf3, 0xe9, - 0x19, 0x62, 0xa6, 0x71, 0x4c, 0x20, 0xa1, 0xb5, 0x43, 0x86, 0x8d, 0x87, 0x91, 0x70, 0xe7, 0xa8, - 0xd2, 0x6e, 0x91, 0x49, 0xda, 0x41, 0x46, 0xb5, 0xd2, 0x0f, 0x52, 0x56, 0x3a, 0xbe, 0xc5, 0x87, - 0x8d, 0x12, 0x9c, 0xc7, 0x37, 0x6f, 0x57, 0xec, 0x66, 0xb9, 0xeb, 0x58, 0x65, 0x57, 0x45, 0xe1, - 0x8b, 0x59, 0xac, 0x96, 0x79, 0x96, 0xb3, 0xed, 0x3b, 0xa8, 0x98, 0x71, 0x26, 0xee, 0x9e, 0x27, - 0x61, 0xb2, 0x6b, 0xd7, 0x6d, 0x14, 0xe2, 0x88, 0x82, 0xc1, 0x34, 0x61, 0xd3, 0xff, 0x31, 0xdc, - 0xa7, 0xe9, 0xde, 0xf7, 0x72, 0xd3, 0x20, 0x31, 0x4f, 0x77, 0x7b, 0x07, 0x33, 0x59, 0x18, 0xf5, - 0xc6, 0x8e, 0x31, 0x02, 0x34, 0x7a, 0xd0, 0xec, 0x86, 0x66, 0xd4, 0xc2, 0x76, 0x11, 0xcf, 0x85, - 0x6f, 0x2b, 0xa1, 0x89, 0x0d, 0xcd, 0xc9, 0x1b, 0xeb, 0x7b, 0xa5, 0xb2, 0xb9, 0xbf, 0xb5, 0xb7, - 0xbe, 0x59, 0x4a, 0xe9, 0xf3, 0x23, 0xf1, 0xef, 0x0c, 0xa7, 0xde, 0x81, 0xfe, 0x45, 0x32, 0x5f, - 0x89, 0x40, 0x52, 0xee, 0x83, 0x8d, 0x37, 0xc2, 0x3d, 0xfc, 0xa1, 0xd5, 0xb1, 0x3a, 0xe5, 0xe7, - 0xea, 0x6d, 0x12, 0xce, 0xc7, 0x15, 0xda, 0x49, 0x0a, 0x4f, 0x4c, 0x32, 0x2e, 0xf4, 0x78, 0xff, - 0x56, 0xc4, 0x73, 0x83, 0xb0, 0x18, 0x1b, 0x70, 0x1e, 0x99, 0x0c, 0xf5, 0x9a, 0x76, 0xad, 0xd2, - 0xae, 0x95, 0xdd, 0xe5, 0x82, 0x72, 0xa5, 0x8a, 0xe2, 0xc0, 0x69, 0xd2, 0x99, 0x44, 0x48, 0x39, - 0x6b, 0x37, 0x77, 0x19, 0xb3, 0x5b, 0x62, 0x73, 0x8c, 0x55, 0x89, 0x1a, 0xbd, 0x5f, 0xd4, 0xa0, - 0xde, 0xeb, 0xb8, 0xd2, 0x42, 0x61, 0xd3, 0x69, 0xdf, 0x26, 0xdd, 0x5b, 0xdc, 0x8c, 0xa3, 0x81, - 0x12, 0xfe, 0xfc, 0xfa, 0xf9, 0xc0, 0x6b, 0xc7, 0x7f, 0xd7, 0x61, 0xd4, 0xdb, 0xc1, 0xe1, 0x86, - 0xb8, 0x4a, 0xca, 0xbc, 0x46, 0xaa, 0xc0, 0x03, 0x03, 0xfb, 0xbd, 0x85, 0x02, 0xae, 0xff, 0xd9, - 0x21, 0xda, 0x57, 0x99, 0x14, 0x89, 0xe7, 0x5e, 0x1c, 0x6b, 0x16, 0xed, 0xd6, 0xe3, 0x26, 0xfb, - 0x84, 0x8a, 0xdd, 0xd0, 0xd3, 0x0e, 0x91, 0x3d, 0x44, 0x64, 0xcf, 0x0c, 0x96, 0x7d, 0x73, 0x97, - 0x08, 0x1f, 0xb9, 0xb9, 0x5b, 0xde, 0xda, 0x36, 0x37, 0x73, 0x1b, 0x26, 0x83, 0x1b, 0xf7, 0x42, - 0xb4, 0x51, 0x79, 0xfb, 0x6d, 0x79, 0xa6, 0x20, 0x43, 0x61, 0x0d, 0x8f, 0x24, 0xe0, 0x25, 0x0f, - 0xb9, 0x3e, 0x93, 0xa1, 0xd7, 0x31, 0xf4, 0x17, 0x21, 0x46, 0xec, 0x65, 0x00, 0x30, 0x8b, 0xa5, - 0x4e, 0x19, 0x71, 0x88, 0x16, 0xb6, 0x4d, 0x1c, 0xfe, 0x28, 0xde, 0xe9, 0x68, 0x79, 0x67, 0xbd, - 0x54, 0x40, 0x19, 0x90, 0xb9, 0x0c, 0x43, 0xd4, 0x08, 0x38, 0x35, 0x84, 0x19, 0x10, 0x88, 0x7e, - 0x64, 0x32, 0x34, 0x4e, 0xdd, 0xdf, 0xcc, 0x97, 0xcc, 0x54, 0xc4, 0xeb, 0xde, 0x2f, 0x69, 0x90, - 0xf0, 0x34, 0x54, 0x78, 0x2a, 0xaf, 0x34, 0x1a, 0xcd, 0xe7, 0xca, 0x95, 0x46, 0x1d, 0x55, 0x28, - 0xea, 0x1f, 0x20, 0x43, 0x39, 0x3c, 0x12, 0xd6, 0x7e, 0x3f, 0x91, 0xd8, 0xfc, 0xa8, 0x06, 0x29, - 0xb5, 0x19, 0x53, 0x14, 0xd4, 0x7e, 0xaa, 0x0a, 0x7e, 0x58, 0x83, 0xa4, 0xdc, 0x81, 0x29, 0xea, - 0x5d, 0xfc, 0xa9, 0xaa, 0xf7, 0x21, 0x0d, 0xc6, 0xa4, 0xbe, 0xeb, 0x67, 0x4a, 0xbb, 0x0f, 0xea, - 0x70, 0xda, 0x07, 0x87, 0x0a, 0x10, 0x6d, 0x50, 0x69, 0xcf, 0xfc, 0x68, 0x98, 0x6b, 0x2d, 0xe0, - 0xf9, 0x6f, 0xa7, 0xd2, 0xee, 0xb0, 0x7e, 0x16, 0xcd, 0x97, 0xf5, 0x1a, 0x2a, 0xaa, 0xf5, 0x83, - 0x3a, 0x6a, 0xdf, 0xe8, 0x13, 0x0b, 0xed, 0x5a, 0xc7, 0xdd, 0x71, 0xfa, 0x78, 0xfc, 0x08, 0x18, - 0xad, 0xa6, 0x53, 0xef, 0xd4, 0x9f, 0xc5, 0xcb, 0x73, 0xfc, 0x41, 0x1a, 0x77, 0xb1, 0x51, 0x33, - 0xc5, 0x29, 0xeb, 0x76, 0x47, 0x70, 0xdb, 0xd6, 0x61, 0x45, 0xe1, 0xc6, 0x65, 0x48, 0x37, 0x53, - 0x9c, 0x22, 0xb8, 0x51, 0xa3, 0x59, 0x6b, 0x76, 0x71, 0x43, 0x40, 0xf9, 0x70, 0xd5, 0xd3, 0xcc, - 0x04, 0x1d, 0x13, 0x2c, 0xac, 0x63, 0x73, 0x9f, 0xe0, 0x47, 0xcd, 0x04, 0x1d, 0xa3, 0x2c, 0x0f, - 0xc1, 0x78, 0xe5, 0xf0, 0xb0, 0x8d, 0x85, 0x73, 0x41, 0xb4, 0x0d, 0x4d, 0x8a, 0x61, 0xc2, 0x38, - 0x7d, 0x13, 0xe2, 0xdc, 0x0e, 0x78, 0x62, 0xc1, 0x96, 0x40, 0x73, 0x3e, 0x59, 0x47, 0x89, 0xe0, - 0x87, 0x7a, 0x9b, 0x13, 0xd1, 0x45, 0xeb, 0x4e, 0xd9, 0x5d, 0xd0, 0x8b, 0x20, 0x7a, 0xdc, 0x4c, - 0xd4, 0x1d, 0xb1, 0x82, 0x93, 0xf9, 0x14, 0x9a, 0x5e, 0xe5, 0x05, 0x49, 0xa3, 0x08, 0xf1, 0x46, - 0x13, 0xc5, 0x07, 0x46, 0xd0, 0xd5, 0xf0, 0xb9, 0x80, 0x35, 0xcc, 0x85, 0x0d, 0xc6, 0x6f, 0x0a, - 0xe4, 0xf4, 0x3f, 0x6b, 0x10, 0xe7, 0xc3, 0x68, 0xa2, 0x88, 0xb6, 0x2a, 0x9d, 0x23, 0x22, 0x2e, - 0x96, 0x8f, 0xa4, 0x34, 0x93, 0x7c, 0xc6, 0xe3, 0xa8, 0x9b, 0xb1, 0x49, 0x08, 0xb0, 0x71, 0xfc, - 0x19, 0xfb, 0xb5, 0x61, 0x55, 0x6a, 0xa4, 0xc1, 0x6d, 0x1e, 0x1f, 0x23, 0x4f, 0x3a, 0xdc, 0xaf, - 0x6c, 0xbc, 0xc0, 0x86, 0xf1, 0xba, 0x78, 0xa7, 0x5d, 0xa9, 0x37, 0x24, 0xde, 0x28, 0xe1, 0x4d, - 0x71, 0x82, 0x60, 0xce, 0xc2, 0xbd, 0x5c, 0x6e, 0xcd, 0xea, 0x54, 0x50, 0xf3, 0x5c, 0x73, 0x41, - 0x43, 0x64, 0xb5, 0xeb, 0x1e, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x3f, 0x89, 0x1a, 0xd9, 0xe6, - 0xb1, 0x6a, 0x89, 0x7c, 0x4a, 0x79, 0xee, 0x72, 0x9e, 0xd0, 0xde, 0x06, 0x6e, 0x53, 0xf1, 0x89, - 0x88, 0xbe, 0xb6, 0x93, 0xff, 0x4c, 0x64, 0x7a, 0x8d, 0xe2, 0x76, 0xb8, 0x05, 0x4d, 0xeb, 0xa0, - 0x61, 0x55, 0xb1, 0x75, 0xe0, 0xe3, 0x0f, 0xc0, 0xa3, 0x87, 0xf5, 0xce, 0x51, 0xf7, 0xd6, 0x02, - 0xba, 0xc2, 0xe2, 0x61, 0xf3, 0xb0, 0xe9, 0x6e, 0x67, 0xe0, 0x4f, 0xe4, 0x03, 0x79, 0xc7, 0xb6, - 0x34, 0x46, 0xc4, 0xe8, 0x74, 0xe0, 0xfe, 0x47, 0x76, 0x0b, 0x4e, 0x33, 0xe6, 0x32, 0x59, 0x53, - 0xa5, 0x2d, 0xa8, 0x31, 0xf0, 0x81, 0x3c, 0xfd, 0xb9, 0x6f, 0x93, 0x29, 0xc1, 0x9c, 0x60, 0x50, - 0x4c, 0xa3, 0x4d, 0x6a, 0xd6, 0x84, 0x33, 0x92, 0x3c, 0x1a, 0xc3, 0xe8, 0x91, 0x7b, 0xb0, 0xc4, - 0xaf, 0x30, 0x89, 0xa7, 0x3d, 0x12, 0x77, 0x19, 0x34, 0x5b, 0x80, 0xb1, 0x93, 0xc8, 0xfa, 0x07, - 0x26, 0x6b, 0xd4, 0xf2, 0x0a, 0x59, 0x83, 0x71, 0x22, 0xa4, 0xda, 0x75, 0x3a, 0xcd, 0x63, 0x52, - 0x20, 0x06, 0x8b, 0xf9, 0xc7, 0x6f, 0xd3, 0xa0, 0x4a, 0x62, 0x58, 0x41, 0xa0, 0xb2, 0x6f, 0x81, - 0x49, 0x3c, 0x42, 0x72, 0xd0, 0x2b, 0x2d, 0x78, 0x09, 0x21, 0xfd, 0x2f, 0xef, 0xa2, 0xb1, 0x77, - 0x5a, 0x08, 0xf0, 0xc8, 0xf5, 0x78, 0xe2, 0xd0, 0xea, 0xa0, 0xda, 0x86, 0x9e, 0xff, 0x1a, 0x0d, - 0x63, 0xe0, 0x1e, 0x43, 0xfa, 0x03, 0xdf, 0x95, 0x3d, 0xb1, 0x46, 0x91, 0xb9, 0x46, 0x23, 0xbb, - 0x0f, 0xf7, 0xf8, 0x78, 0x36, 0x84, 0xcc, 0x0f, 0x32, 0x99, 0x93, 0x3d, 0xde, 0xc5, 0x62, 0x77, - 0x80, 0x8f, 0x0b, 0x7f, 0x84, 0x90, 0xf9, 0x21, 0x26, 0xd3, 0x60, 0x58, 0xee, 0x16, 0x2c, 0xf1, - 0x26, 0x4c, 0xa0, 0x27, 0xf5, 0x5b, 0x4d, 0x87, 0x3d, 0xf7, 0x86, 0x10, 0xf7, 0x61, 0x26, 0x6e, - 0x9c, 0x01, 0xc9, 0x53, 0x30, 0x96, 0x75, 0x1d, 0xe2, 0x07, 0xe8, 0x01, 0x28, 0x84, 0x88, 0x8f, - 0x30, 0x11, 0xc3, 0x98, 0x1f, 0x43, 0x73, 0x30, 0x7a, 0xd8, 0x64, 0x65, 0x38, 0x18, 0xfe, 0x51, - 0x06, 0x4f, 0x70, 0x0c, 0x13, 0xd1, 0x6a, 0xb6, 0xba, 0x0d, 0x5c, 0xa3, 0x83, 0x45, 0x7c, 0x8c, - 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x04, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x3c, 0xf6, 0x7c, 0x33, 0x5e, - 0xeb, 0x6d, 0xdc, 0x6e, 0xda, 0x61, 0x94, 0xf8, 0x38, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x3c, 0x06, - 0x23, 0x61, 0x1d, 0xf1, 0x49, 0x06, 0x8f, 0x5b, 0xdc, 0x03, 0x28, 0xcf, 0x78, 0x91, 0xc1, 0x7b, - 0x2b, 0xc1, 0x22, 0xfe, 0x84, 0x89, 0x48, 0x7a, 0x60, 0xec, 0x36, 0x3a, 0x96, 0xd3, 0x41, 0x8f, - 0xea, 0x21, 0x84, 0x7c, 0x8a, 0xdf, 0x06, 0x83, 0x30, 0x53, 0xde, 0xb2, 0xec, 0xea, 0x51, 0x38, - 0x09, 0x2f, 0x72, 0x53, 0x72, 0x0c, 0x16, 0x81, 0x2a, 0xcf, 0x71, 0xa5, 0x8d, 0x1e, 0xae, 0x1b, - 0xa1, 0xdc, 0xf1, 0x69, 0x26, 0x63, 0x54, 0x80, 0x98, 0x45, 0xba, 0xf6, 0x49, 0xc4, 0x7c, 0x86, - 0x5b, 0xc4, 0x03, 0x63, 0xa9, 0x87, 0x9e, 0x4c, 0x71, 0x27, 0x71, 0x12, 0x69, 0x7f, 0xca, 0x53, - 0x8f, 0x62, 0x37, 0xbd, 0x12, 0x91, 0xa7, 0x1d, 0xf4, 0x08, 0x1e, 0x46, 0xcc, 0x9f, 0x71, 0x4f, - 0x13, 0x00, 0x06, 0x3f, 0x05, 0xf7, 0xfa, 0x96, 0xfa, 0x10, 0xc2, 0xfe, 0x9c, 0x09, 0x9b, 0xf2, - 0x29, 0xf7, 0xac, 0x24, 0x9c, 0x54, 0xe4, 0x5f, 0xf0, 0x92, 0x60, 0x29, 0xb2, 0x76, 0x70, 0x1b, - 0xeb, 0x54, 0x0e, 0x4e, 0x66, 0xb5, 0xbf, 0xe4, 0x56, 0xa3, 0x58, 0xc9, 0x6a, 0x7b, 0x30, 0xc5, - 0x24, 0x9e, 0xcc, 0xaf, 0x9f, 0xe5, 0x85, 0x95, 0xa2, 0xf7, 0x65, 0xef, 0xfe, 0x02, 0x4c, 0x0b, - 0x73, 0xf2, 0x0e, 0xcc, 0x29, 0xe3, 0x85, 0x81, 0x60, 0xc9, 0x9f, 0x63, 0x92, 0x79, 0xc5, 0x17, - 0x2d, 0x9c, 0xb3, 0x59, 0x69, 0x61, 0xe1, 0x4f, 0x42, 0x9a, 0x0b, 0xef, 0xda, 0xa8, 0xc1, 0x6f, - 0x1e, 0xda, 0xc8, 0x8d, 0xb5, 0x10, 0xa2, 0xff, 0x4a, 0x71, 0xd5, 0xbe, 0x07, 0x8e, 0x25, 0xaf, - 0x43, 0x4a, 0xf4, 0x1b, 0xe5, 0xfa, 0x71, 0xab, 0x89, 0x5a, 0xcb, 0xc1, 0x12, 0xff, 0x9a, 0x7b, - 0x4a, 0xe0, 0xd6, 0x09, 0x2c, 0x5b, 0x82, 0x24, 0xf9, 0x18, 0x36, 0x24, 0x3f, 0xcf, 0x04, 0x8d, - 0xb9, 0x28, 0x56, 0x38, 0x50, 0xa7, 0x84, 0x7a, 0xde, 0x30, 0xf5, 0xef, 0x0b, 0xbc, 0x70, 0x30, - 0x08, 0x8d, 0xbe, 0x71, 0x65, 0x26, 0x36, 0x82, 0xb6, 0x5f, 0xd3, 0xbf, 0xf2, 0x0a, 0xcb, 0x59, - 0x79, 0x22, 0xce, 0x6e, 0x60, 0xf3, 0xc8, 0xd3, 0x65, 0xb0, 0xb0, 0x77, 0xbd, 0x22, 0x2c, 0x24, - 0xcd, 0x96, 0xd9, 0x1b, 0x30, 0x26, 0x4d, 0x95, 0xc1, 0xa2, 0x7e, 0x95, 0x89, 0x1a, 0xf5, 0xce, - 0x94, 0xd9, 0xcb, 0x10, 0xc5, 0xd3, 0x5e, 0x30, 0xfc, 0xd7, 0x18, 0x9c, 0xb0, 0x67, 0xdf, 0x04, - 0x71, 0x3e, 0xdd, 0x05, 0x43, 0xdf, 0xcd, 0xa0, 0x02, 0x82, 0xe1, 0x7c, 0xaa, 0x0b, 0x86, 0xff, - 0x3a, 0x87, 0x73, 0x08, 0x86, 0x87, 0x37, 0xe1, 0x4b, 0xbf, 0x19, 0x65, 0xe5, 0x8a, 0xdb, 0x0e, - 0xef, 0xf9, 0xd0, 0x39, 0x2e, 0x18, 0xfd, 0x5e, 0x76, 0x71, 0x8e, 0xc8, 0x5e, 0x85, 0x58, 0x48, - 0x83, 0xff, 0x16, 0x83, 0x52, 0x7e, 0x34, 0x83, 0x24, 0x3c, 0xf3, 0x5a, 0x30, 0xfc, 0xb7, 0x19, - 0xdc, 0x8b, 0xc2, 0xaa, 0xb3, 0x79, 0x2d, 0x58, 0xc0, 0xef, 0x70, 0xd5, 0x19, 0x02, 0x9b, 0x8d, - 0x4f, 0x69, 0xc1, 0xe8, 0xdf, 0xe5, 0x56, 0xe7, 0x10, 0x94, 0x4d, 0x23, 0xa2, 0x4c, 0x05, 0xe3, - 0x7f, 0x8f, 0xe1, 0x5d, 0x0c, 0xb6, 0x80, 0xa7, 0x4c, 0x06, 0x8b, 0xf8, 0x7d, 0x6e, 0x01, 0x0f, - 0x0a, 0xa7, 0x91, 0x3a, 0xf5, 0x05, 0x4b, 0x7a, 0x1f, 0x4f, 0x23, 0x65, 0xe6, 0xc3, 0xde, 0x24, - 0xd5, 0x22, 0x58, 0xc4, 0x1f, 0x70, 0x6f, 0x12, 0x7e, 0xac, 0x86, 0x3a, 0x97, 0x04, 0xcb, 0xf8, - 0x23, 0xae, 0x86, 0x32, 0x95, 0xa0, 0x99, 0xc9, 0xe8, 0x9d, 0x47, 0x82, 0xe5, 0xbd, 0x9f, 0xc9, - 0x9b, 0xe8, 0x99, 0x46, 0xb2, 0x6f, 0x85, 0x29, 0xff, 0x39, 0x24, 0x58, 0xea, 0x07, 0x5e, 0x51, - 0xba, 0x7e, 0xef, 0x14, 0x82, 0xa6, 0xbc, 0x49, 0xbf, 0xf9, 0x23, 0x58, 0xec, 0x07, 0x5f, 0x91, - 0x1f, 0xec, 0xbc, 0xd3, 0x07, 0xea, 0xd0, 0xc0, 0x2d, 0xdd, 0xc1, 0xb2, 0x3e, 0xcc, 0x64, 0x79, - 0x40, 0x38, 0x35, 0x58, 0xe5, 0x0e, 0xc6, 0x7f, 0x84, 0xa7, 0x06, 0x43, 0x20, 0x70, 0xdc, 0xee, - 0x36, 0x1a, 0x38, 0x38, 0x8c, 0xc1, 0x47, 0x1a, 0xd2, 0xff, 0xf9, 0x23, 0x96, 0x18, 0x1c, 0x80, - 0x6a, 0x68, 0xcc, 0x3a, 0xbe, 0x85, 0x6c, 0x10, 0x80, 0xfc, 0xaf, 0x1f, 0xf1, 0x82, 0x80, 0xb9, - 0x51, 0x3e, 0x01, 0x7d, 0x68, 0x24, 0x6b, 0xd8, 0x01, 0xd8, 0xff, 0xfe, 0x11, 0xdb, 0x66, 0x75, - 0x21, 0xae, 0x00, 0xba, 0x69, 0x3b, 0x58, 0xc0, 0x77, 0x65, 0x01, 0xe4, 0x41, 0xf3, 0x3a, 0x0c, - 0xe3, 0x93, 0x1d, 0x9d, 0xca, 0x61, 0x10, 0xfa, 0x7f, 0x18, 0x9a, 0xf3, 0x63, 0x83, 0x1d, 0x37, - 0xdb, 0x16, 0x7a, 0xeb, 0x04, 0x61, 0xff, 0x97, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xa7, 0x13, - 0xe6, 0xbe, 0xff, 0x8f, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0xdf, 0x3f, 0x63, 0xdd, 0x0e, 0xc2, 0x7e, - 0x8f, 0x2b, 0xcd, 0xf8, 0x51, 0x01, 0x1c, 0xc1, 0x6f, 0xe9, 0xd1, 0x83, 0x00, 0xf0, 0xf7, 0x19, - 0xd8, 0x45, 0xe4, 0x2f, 0xfa, 0x2f, 0xed, 0xc0, 0x5a, 0x73, 0xad, 0x49, 0x17, 0x75, 0xe0, 0x0b, - 0x75, 0x98, 0x45, 0x3c, 0x68, 0x7e, 0x5d, 0xa4, 0x39, 0xe9, 0xc9, 0xe7, 0xc5, 0xce, 0x91, 0x85, - 0x4b, 0x31, 0x5b, 0x9c, 0x89, 0xe2, 0xf7, 0xd3, 0x27, 0x5b, 0xd1, 0x21, 0xdb, 0x33, 0x5b, 0x75, - 0xac, 0xe4, 0x16, 0x59, 0x5b, 0x34, 0xce, 0xc2, 0x10, 0x51, 0x7b, 0x99, 0x2c, 0x7d, 0x6b, 0xf9, - 0xe8, 0x9d, 0x97, 0xcf, 0x9f, 0x32, 0x87, 0xc8, 0x31, 0xbd, 0x65, 0x41, 0x5d, 0x21, 0x2b, 0xfb, - 0x11, 0x89, 0xba, 0x22, 0xa8, 0x97, 0xe8, 0x19, 0x28, 0x89, 0x7a, 0x49, 0x50, 0x57, 0xc9, 0x32, - 0x99, 0x2e, 0x51, 0x57, 0x05, 0xf5, 0x32, 0x59, 0xed, 0x1c, 0x93, 0xa8, 0x97, 0x05, 0xf5, 0x0a, - 0x59, 0xe3, 0x8c, 0x4a, 0xd4, 0x2b, 0x82, 0x7a, 0x95, 0x2c, 0x6f, 0x4e, 0x48, 0xd4, 0xab, 0x82, - 0x7a, 0x8d, 0x2c, 0x6b, 0x1a, 0x12, 0xf5, 0x9a, 0xa0, 0x5e, 0x27, 0xbb, 0xd2, 0xc3, 0x12, 0xf5, - 0xba, 0x71, 0x0e, 0x86, 0xa9, 0x35, 0x96, 0xc8, 0x4e, 0xce, 0x38, 0x23, 0x0f, 0x53, 0x73, 0x2c, - 0xb9, 0xf4, 0x65, 0xb2, 0x03, 0x3d, 0x24, 0xd3, 0x97, 0x5d, 0xfa, 0x0a, 0x39, 0x55, 0x99, 0x92, - 0xe9, 0x2b, 0x2e, 0xfd, 0x52, 0x7a, 0x0c, 0xa7, 0xb2, 0x4c, 0xbf, 0xe4, 0xd2, 0x57, 0xd3, 0x49, - 0x1c, 0x3d, 0x32, 0x7d, 0xd5, 0xa5, 0x5f, 0x4e, 0x8f, 0xe3, 0x95, 0x5d, 0x99, 0x7e, 0x39, 0xf3, - 0x4e, 0xe2, 0x5e, 0xdb, 0x75, 0xef, 0x94, 0xec, 0x5e, 0xe1, 0xd8, 0x29, 0xd9, 0xb1, 0xc2, 0xa5, - 0x53, 0xb2, 0x4b, 0x85, 0x33, 0xa7, 0x64, 0x67, 0x0a, 0x37, 0x4e, 0xc9, 0x6e, 0x14, 0x0e, 0x9c, - 0x92, 0x1d, 0x28, 0x5c, 0x37, 0x25, 0xbb, 0x4e, 0x38, 0x6d, 0x4a, 0x76, 0x9a, 0x70, 0xd7, 0x94, - 0xec, 0x2e, 0xe1, 0xa8, 0xb4, 0xe2, 0x28, 0xd7, 0x45, 0x69, 0xc5, 0x45, 0xae, 0x73, 0xd2, 0x8a, - 0x73, 0x5c, 0xb7, 0xa4, 0x15, 0xb7, 0xb8, 0x0e, 0x49, 0x2b, 0x0e, 0x71, 0x5d, 0x91, 0x56, 0x5c, - 0xe1, 0x3a, 0x81, 0xe5, 0x98, 0x69, 0xb5, 0x7c, 0x72, 0x4c, 0x1f, 0x98, 0x63, 0xfa, 0xc0, 0x1c, - 0xd3, 0x07, 0xe6, 0x98, 0x3e, 0x30, 0xc7, 0xf4, 0x81, 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, - 0x8e, 0xe9, 0x03, 0x73, 0x4c, 0x1f, 0x9c, 0x63, 0x7a, 0x40, 0x8e, 0xe9, 0x01, 0x39, 0xa6, 0x07, - 0xe4, 0x98, 0x1e, 0x90, 0x63, 0x7a, 0x40, 0x8e, 0xe9, 0x7d, 0x73, 0xcc, 0x75, 0xef, 0x94, 0xec, - 0x5e, 0xdf, 0x1c, 0xd3, 0xfb, 0xe4, 0x98, 0xde, 0x27, 0xc7, 0xf4, 0x3e, 0x39, 0xa6, 0xf7, 0xc9, - 0x31, 0xbd, 0x4f, 0x8e, 0xe9, 0x7d, 0x72, 0x4c, 0xef, 0x93, 0x63, 0x7a, 0xbf, 0x1c, 0xd3, 0xfb, - 0xe6, 0x98, 0xde, 0x37, 0xc7, 0xf4, 0xbe, 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, - 0xde, 0x1c, 0xfb, 0x5b, 0x1d, 0x0c, 0x9a, 0x63, 0x3b, 0xe4, 0x2c, 0x00, 0x73, 0xc5, 0x39, 0x25, - 0xd3, 0x86, 0xb0, 0xeb, 0x52, 0xae, 0x4b, 0xce, 0x29, 0xb9, 0x26, 0xd3, 0x57, 0x04, 0x9d, 0x67, - 0x9b, 0x4c, 0xbf, 0x24, 0xe8, 0x3c, 0xdf, 0x64, 0xfa, 0xaa, 0xa0, 0xf3, 0x8c, 0x93, 0xe9, 0x97, - 0x05, 0x9d, 0xe7, 0x9c, 0x4c, 0xbf, 0x22, 0xe8, 0x3c, 0xeb, 0x64, 0xfa, 0x55, 0x41, 0xe7, 0x79, - 0x27, 0xd3, 0xaf, 0x09, 0x3a, 0xcf, 0x3c, 0x99, 0x7e, 0xdd, 0xb8, 0xa0, 0xe6, 0x1e, 0x67, 0x10, - 0xae, 0xbd, 0xa0, 0x66, 0x9f, 0xc2, 0xb1, 0xec, 0x72, 0xf0, 0xfc, 0x53, 0x38, 0x56, 0x5c, 0x0e, - 0x9e, 0x81, 0x0a, 0xc7, 0xa5, 0xcc, 0x7b, 0x88, 0xfb, 0x6c, 0xd5, 0x7d, 0xd3, 0x8a, 0xfb, 0x22, - 0x1e, 0xd7, 0x4d, 0x2b, 0xae, 0x8b, 0x78, 0xdc, 0x36, 0xad, 0xb8, 0x2d, 0xe2, 0x71, 0xd9, 0xb4, - 0xe2, 0xb2, 0x88, 0xc7, 0x5d, 0xd3, 0x8a, 0xbb, 0x22, 0x1e, 0x57, 0x4d, 0x2b, 0xae, 0x8a, 0x78, - 0xdc, 0x34, 0xad, 0xb8, 0x29, 0xe2, 0x71, 0xd1, 0xb4, 0xe2, 0xa2, 0x88, 0xc7, 0x3d, 0xd3, 0x8a, - 0x7b, 0x22, 0x1e, 0xd7, 0x9c, 0x55, 0x5d, 0x13, 0xf1, 0xba, 0xe5, 0xac, 0xea, 0x96, 0x88, 0xd7, - 0x25, 0x67, 0x55, 0x97, 0x44, 0xbc, 0xee, 0x38, 0xab, 0xba, 0x23, 0xe2, 0x75, 0xc5, 0x8f, 0x23, - 0xbc, 0x23, 0xdc, 0xed, 0xb4, 0xbb, 0xd5, 0xce, 0x5d, 0x75, 0x84, 0x4b, 0x52, 0xfb, 0x90, 0x58, - 0x31, 0x16, 0x48, 0xc3, 0xea, 0xed, 0x38, 0x95, 0x19, 0x6c, 0x49, 0x6a, 0x2c, 0x3c, 0x08, 0xdb, - 0x1f, 0xb1, 0x7a, 0x57, 0xbd, 0xe1, 0x92, 0xd4, 0x66, 0x04, 0xeb, 0x77, 0xed, 0x75, 0xef, 0xd8, - 0x5e, 0x8a, 0xf0, 0x8e, 0x8d, 0x99, 0xff, 0xa4, 0x1d, 0xdb, 0x7c, 0xb0, 0xc9, 0x85, 0xb1, 0xe7, - 0x83, 0x8d, 0xdd, 0x33, 0xeb, 0x84, 0xed, 0xe0, 0xe6, 0x83, 0x4d, 0x2b, 0x8c, 0xfa, 0xda, 0xf6, - 0x5b, 0x2c, 0x82, 0x51, 0x31, 0xf1, 0x89, 0xe0, 0x93, 0xf6, 0x5b, 0x4b, 0x52, 0x29, 0x39, 0x69, - 0x04, 0xeb, 0x27, 0x8e, 0xe0, 0x93, 0x76, 0x5e, 0x4b, 0x52, 0x79, 0x39, 0x71, 0x04, 0xbf, 0x0e, - 0xfd, 0x10, 0x8b, 0x60, 0xd7, 0xfc, 0x27, 0xed, 0x87, 0xe6, 0x83, 0x4d, 0xee, 0x1b, 0xc1, 0xfa, - 0x09, 0x22, 0x38, 0x4c, 0x7f, 0x34, 0x1f, 0x6c, 0x5a, 0xff, 0x08, 0xbe, 0xeb, 0x6e, 0xe6, 0x63, - 0x1a, 0x4c, 0xa0, 0xcb, 0x94, 0xf0, 0xb2, 0x4e, 0xcd, 0xaa, 0x31, 0x3b, 0x2e, 0x49, 0x95, 0xa0, - 0x8f, 0xab, 0xbf, 0xfa, 0xf2, 0x79, 0xd7, 0xc2, 0x97, 0x21, 0x4e, 0x2d, 0xbc, 0xb4, 0x94, 0xbe, - 0xa3, 0x05, 0x54, 0xb8, 0xf8, 0x01, 0x63, 0x35, 0x2e, 0x72, 0x18, 0x9a, 0x7b, 0xbe, 0xa6, 0x79, - 0xaa, 0x1c, 0x63, 0x59, 0x5e, 0xca, 0xbc, 0x8f, 0x68, 0x68, 0xdf, 0xb5, 0x86, 0x8b, 0xa1, 0x34, - 0xf4, 0xe8, 0x76, 0x5f, 0x8f, 0x6e, 0x1e, 0xad, 0xba, 0x30, 0x8e, 0x60, 0x5b, 0xe4, 0xfb, 0x7c, - 0x61, 0x54, 0xa2, 0x3c, 0x4a, 0x3d, 0x58, 0x92, 0xc2, 0xd2, 0x8b, 0x10, 0x21, 0x2d, 0xd7, 0x88, - 0x4c, 0x1d, 0x5f, 0xd6, 0x96, 0x2e, 0x3b, 0xdf, 0xef, 0xb2, 0x6e, 0x65, 0x17, 0x17, 0x9c, 0xef, - 0x77, 0x41, 0x37, 0x87, 0xc4, 0xa5, 0x9e, 0xe7, 0x93, 0x33, 0x3d, 0xde, 0x81, 0x8a, 0x43, 0x64, - 0x9d, 0x9e, 0x52, 0x1c, 0xcd, 0x8f, 0x62, 0xa5, 0xfe, 0xed, 0xe5, 0xf3, 0xd1, 0xfd, 0x2e, 0xd2, - 0x35, 0x52, 0xaf, 0x19, 0x37, 0x21, 0xf6, 0x16, 0xf6, 0x75, 0x1a, 0xcc, 0xb0, 0xca, 0x18, 0x1e, - 0xe9, 0xbb, 0x46, 0x84, 0x2f, 0xbc, 0x48, 0x17, 0xf4, 0x16, 0xf6, 0xeb, 0x76, 0x67, 0x79, 0xe5, - 0x1a, 0xfb, 0x66, 0x4d, 0xe6, 0x17, 0x01, 0xe8, 0x35, 0x8b, 0xf8, 0xeb, 0x00, 0x5b, 0x5c, 0x32, - 0xbd, 0xf4, 0x35, 0x24, 0x75, 0x35, 0x8c, 0xd4, 0x47, 0x6b, 0x08, 0xfd, 0x28, 0x5e, 0x77, 0x5b, - 0xc8, 0xdf, 0x46, 0xe3, 0x5c, 0x7a, 0x8b, 0xcf, 0x7a, 0xec, 0xbe, 0xd2, 0x9e, 0xfb, 0x8a, 0x4b, - 0xf7, 0x74, 0x43, 0xbe, 0xa7, 0xa5, 0x57, 0x7b, 0x3f, 0xcf, 0xf3, 0x49, 0x42, 0xb1, 0xa4, 0x1e, - 0x64, 0x49, 0xfd, 0x6e, 0x2d, 0xd9, 0xe2, 0xf5, 0x51, 0xb9, 0x57, 0x7d, 0xd0, 0xbd, 0xea, 0x77, - 0x73, 0xaf, 0x3f, 0xa0, 0xd9, 0x2a, 0xf2, 0x69, 0xdf, 0xa6, 0xa7, 0xe3, 0x7e, 0xb6, 0xd6, 0x82, - 0x5e, 0xd3, 0x2e, 0x20, 0x1b, 0xbd, 0xf3, 0xc2, 0x79, 0x2d, 0xf3, 0xb1, 0x08, 0xbf, 0x73, 0x9a, - 0x48, 0xaf, 0xee, 0xce, 0x7f, 0x56, 0x7a, 0xaa, 0xd7, 0xc3, 0x42, 0x1f, 0xd5, 0x60, 0xaa, 0xa7, - 0x92, 0x53, 0x33, 0xbd, 0xb6, 0xe5, 0xdc, 0x3e, 0x69, 0x39, 0x67, 0x0a, 0x7e, 0x5e, 0x83, 0x49, - 0xa5, 0xbc, 0x52, 0xf5, 0x16, 0x15, 0xf5, 0xee, 0xe9, 0xbd, 0x12, 0x61, 0xf4, 0x68, 0xe7, 0x75, - 0xaf, 0x02, 0xf0, 0x48, 0x16, 0x7e, 0x5f, 0x55, 0xfc, 0x7e, 0x56, 0x00, 0x7c, 0xcc, 0xc5, 0x23, - 0x80, 0xa9, 0xdd, 0x84, 0xe8, 0x5e, 0xdb, 0xc2, 0x4b, 0x10, 0x91, 0xed, 0x36, 0xd3, 0x30, 0x49, - 0xf1, 0xdb, 0xed, 0x7c, 0xbb, 0x62, 0x57, 0x8f, 0xcc, 0x48, 0xb3, 0x8d, 0x26, 0x5b, 0x3d, 0xc7, - 0xbe, 0x77, 0x9c, 0x58, 0x19, 0xa7, 0x0c, 0x68, 0x80, 0x71, 0xe8, 0x15, 0xbb, 0x86, 0x44, 0x44, - 0x37, 0xac, 0xca, 0x01, 0x53, 0x02, 0x28, 0x0f, 0x1e, 0x31, 0xa3, 0x0d, 0xf4, 0x3f, 0xbb, 0xe0, - 0x93, 0x10, 0xe7, 0x82, 0x8d, 0x19, 0x8c, 0x38, 0xe8, 0xb0, 0xcb, 0x32, 0x04, 0x56, 0x87, 0xcd, - 0x5c, 0x08, 0x77, 0xd0, 0x31, 0x66, 0x21, 0x66, 0xd6, 0x0f, 0x8f, 0x3a, 0xec, 0xe2, 0xbd, 0x6c, - 0xb1, 0x36, 0x26, 0x67, 0x9e, 0x82, 0x11, 0xa1, 0xd1, 0x6b, 0x2c, 0xba, 0x48, 0x6f, 0x0d, 0x3d, - 0x09, 0x7b, 0xe6, 0x13, 0xbe, 0x6e, 0xc9, 0xbe, 0xd3, 0x79, 0x01, 0xe2, 0xc8, 0xcc, 0x6e, 0xd1, - 0xe7, 0x1d, 0x29, 0xde, 0x80, 0x27, 0xa3, 0x99, 0x77, 0x6a, 0x10, 0x2f, 0x5a, 0x56, 0x8b, 0x18, - 0xfc, 0x41, 0x88, 0x16, 0x9b, 0xcf, 0xd9, 0x4c, 0xc1, 0x09, 0x66, 0x51, 0x4c, 0x66, 0x36, 0x8d, - 0xd6, 0x10, 0x19, 0xb1, 0x79, 0xec, 0x7e, 0x5a, 0xd8, 0xdd, 0xc3, 0x47, 0x6c, 0x9f, 0x91, 0x6c, - 0xcf, 0x1c, 0x88, 0x99, 0x7a, 0xec, 0x7f, 0x15, 0x12, 0x9e, 0xab, 0x18, 0x73, 0x4c, 0x8d, 0x88, - 0x0a, 0xf4, 0xda, 0x0a, 0x6b, 0x92, 0xb1, 0x60, 0x4c, 0xba, 0x30, 0x86, 0x7a, 0x4c, 0xdc, 0x07, - 0x4a, 0xcc, 0x3c, 0x2f, 0x9b, 0xd9, 0x9f, 0x95, 0x99, 0x7a, 0x89, 0xda, 0x88, 0x98, 0x7b, 0x86, - 0x06, 0x67, 0x7f, 0x27, 0x76, 0xd0, 0xfb, 0x4c, 0x0c, 0xf4, 0xad, 0x7a, 0x23, 0xf3, 0x26, 0x00, - 0x9a, 0xf2, 0xf8, 0x2c, 0x95, 0x92, 0x75, 0x49, 0x6e, 0xe0, 0xbd, 0x23, 0x6b, 0x0f, 0xfd, 0xc5, - 0x2c, 0x72, 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0x87, 0x03, 0xf1, 0xbe, 0x9d, 0x18, - 0x66, 0x4d, 0x53, 0xd6, 0xa7, 0xac, 0x4e, 0xce, 0x6e, 0x76, 0x8e, 0xac, 0xb6, 0x82, 0x58, 0x31, - 0x2e, 0x49, 0x09, 0x9b, 0x5c, 0xb9, 0x4f, 0x20, 0xfa, 0x82, 0x2e, 0x65, 0x3e, 0x4b, 0x14, 0xc4, - 0xad, 0x40, 0xcf, 0x0d, 0xea, 0x21, 0x6e, 0xd0, 0xb8, 0x22, 0xf5, 0x6f, 0x03, 0xd4, 0x54, 0x1e, - 0x2d, 0xaf, 0x4b, 0xcf, 0x39, 0x83, 0x95, 0x95, 0x9f, 0x31, 0xb9, 0x4d, 0xb9, 0xca, 0x0f, 0x07, - 0xaa, 0xdc, 0xa7, 0xbb, 0x3d, 0xa9, 0x4d, 0xf5, 0xb0, 0x36, 0xfd, 0x92, 0xe8, 0x38, 0xe8, 0x57, - 0xbf, 0xc9, 0x0f, 0x06, 0x18, 0x8f, 0x04, 0xfa, 0x3e, 0xab, 0x15, 0x84, 0xaa, 0xab, 0x61, 0xdd, - 0x9f, 0x8d, 0xe4, 0xf3, 0x42, 0xdd, 0xab, 0x27, 0x08, 0x81, 0x6c, 0xa4, 0x50, 0x10, 0x65, 0x3b, - 0xfe, 0x1e, 0x94, 0xc5, 0x2f, 0xbe, 0x70, 0xfe, 0x54, 0xe6, 0xd3, 0x48, 0x79, 0xc6, 0xe9, 0x09, - 0xdc, 0x47, 0x15, 0xe5, 0xcf, 0xf0, 0x9a, 0xe1, 0x67, 0x81, 0x9f, 0x58, 0xf0, 0x7e, 0x45, 0x83, - 0x74, 0x8f, 0xae, 0xdc, 0xde, 0x4b, 0xa1, 0x54, 0xce, 0x6a, 0xa5, 0x9f, 0xbe, 0xcd, 0x9f, 0x82, - 0xd8, 0x5e, 0xfd, 0xd8, 0x6a, 0xe3, 0x99, 0x00, 0xbf, 0xa1, 0x2a, 0xf3, 0xcd, 0x9c, 0x58, 0x07, - 0x0f, 0x71, 0x1a, 0x55, 0x4e, 0xa2, 0xe1, 0xfd, 0x84, 0x68, 0xb1, 0xd2, 0xa9, 0x10, 0x0d, 0x46, - 0x45, 0x7d, 0x45, 0x23, 0x99, 0x4b, 0x30, 0xba, 0x79, 0x9b, 0x1c, 0x3a, 0xa9, 0x91, 0xf3, 0x18, - 0x72, 0xf7, 0xc7, 0xfb, 0xd5, 0xe5, 0xf9, 0x58, 0xbc, 0x96, 0xba, 0xa3, 0x65, 0xa3, 0x44, 0x9f, - 0x67, 0x21, 0xb9, 0x8d, 0xd5, 0x26, 0x38, 0x09, 0x46, 0xaf, 0xae, 0x8b, 0x9b, 0x57, 0x9a, 0x32, - 0xdd, 0x6d, 0xca, 0x2e, 0x80, 0xb6, 0x29, 0xb7, 0x4e, 0x5e, 0x3d, 0x4c, 0xed, 0x78, 0x3e, 0x1a, - 0x4f, 0xa6, 0x26, 0xd0, 0xff, 0x90, 0x1a, 0x63, 0xd7, 0xfd, 0x27, 0x1d, 0x52, 0xb4, 0xd5, 0x41, - 0x4e, 0xac, 0xdb, 0xf5, 0x4e, 0x6f, 0xbf, 0x2a, 0x34, 0x36, 0xde, 0x0c, 0x23, 0xd8, 0xa4, 0x37, - 0xd8, 0xef, 0xee, 0x60, 0xd3, 0x5f, 0x64, 0x2d, 0x8a, 0x22, 0x82, 0x0d, 0x90, 0xd0, 0x21, 0x3f, - 0x71, 0x43, 0x30, 0xe8, 0x01, 0x43, 0xdf, 0xda, 0xda, 0x64, 0x93, 0xdb, 0xea, 0x40, 0x28, 0x3b, - 0xf1, 0xc2, 0x3e, 0xb1, 0x31, 0xe7, 0xd0, 0xd4, 0xed, 0xad, 0x4d, 0x14, 0x36, 0x11, 0x24, 0x86, - 0x36, 0xbc, 0x33, 0x61, 0xc4, 0x98, 0x11, 0x7b, 0x73, 0xfa, 0xef, 0x34, 0x18, 0x93, 0x46, 0xd1, - 0x6c, 0x3b, 0x4a, 0x07, 0x3c, 0xb7, 0x3b, 0x64, 0x8e, 0xda, 0x9e, 0x31, 0xae, 0x73, 0xe4, 0x2e, - 0x75, 0x9e, 0xce, 0xa1, 0xa7, 0x76, 0x79, 0xdc, 0x58, 0x00, 0xc3, 0x3b, 0xc4, 0x94, 0xa0, 0xbf, - 0x59, 0x62, 0xd8, 0x3d, 0x94, 0xcc, 0xfd, 0xa8, 0x0a, 0x0b, 0xbb, 0x8a, 0x9f, 0xda, 0xd8, 0x2a, - 0xed, 0xe2, 0x5f, 0xc9, 0xd0, 0x32, 0x5f, 0xd4, 0x20, 0xc1, 0xda, 0xd6, 0x6a, 0xb3, 0x65, 0x19, - 0x79, 0xd0, 0x72, 0x2c, 0x1e, 0x5e, 0x9d, 0xde, 0x5a, 0x05, 0xcd, 0x4e, 0x5a, 0x3e, 0xbc, 0xab, - 0xb5, 0x5b, 0xc6, 0x0a, 0x68, 0x05, 0xe6, 0xe0, 0x70, 0x9e, 0xd1, 0xaa, 0x99, 0xef, 0xeb, 0x70, - 0xda, 0xdb, 0x46, 0xf3, 0x7a, 0x72, 0x51, 0x7e, 0x6e, 0xca, 0x8e, 0x2c, 0xaf, 0x5c, 0x5a, 0x5d, - 0xc0, 0xff, 0x89, 0x90, 0xbc, 0x28, 0x3f, 0x42, 0xf5, 0xb2, 0xf4, 0x1c, 0x13, 0xc9, 0x46, 0x3d, - 0xd4, 0x9e, 0x63, 0x22, 0x12, 0xb5, 0xe7, 0x98, 0x88, 0x44, 0xed, 0x39, 0x26, 0x22, 0x51, 0x7b, - 0xb6, 0x02, 0x24, 0x6a, 0xcf, 0x31, 0x11, 0x89, 0xda, 0x73, 0x4c, 0x44, 0xa2, 0xf6, 0x1e, 0x13, - 0x61, 0xe4, 0xbe, 0xc7, 0x44, 0x64, 0x7a, 0xef, 0x31, 0x11, 0x99, 0xde, 0x7b, 0x4c, 0x24, 0x8b, - 0xfa, 0xb3, 0xae, 0xd5, 0x7f, 0xd3, 0x41, 0xc6, 0x0f, 0x7a, 0x06, 0x74, 0x0b, 0xf0, 0x36, 0x8c, - 0xd3, 0xf5, 0x88, 0x02, 0x3e, 0x90, 0x55, 0xb7, 0x51, 0x29, 0x7e, 0x23, 0x8c, 0xd2, 0x21, 0xfa, - 0x94, 0xe3, 0xf7, 0x14, 0x48, 0xe9, 0xac, 0xdc, 0x8e, 0x56, 0x3d, 0xdc, 0x99, 0x1f, 0x47, 0x61, - 0x8a, 0x92, 0xf1, 0xb7, 0x06, 0xa5, 0x43, 0x46, 0xb3, 0xca, 0x96, 0x52, 0x12, 0xc3, 0xbf, 0xf9, - 0xf2, 0x79, 0x3a, 0x9a, 0x13, 0xc1, 0x34, 0xab, 0x6c, 0x2e, 0xc9, 0x7c, 0xee, 0xfc, 0x33, 0xab, - 0x1c, 0x3c, 0x92, 0xf9, 0xc4, 0x74, 0x23, 0xf8, 0xf8, 0x11, 0x24, 0x99, 0xaf, 0x28, 0xa2, 0x6c, - 0x56, 0x39, 0x8c, 0x24, 0xf3, 0x95, 0x44, 0xbc, 0xcd, 0x2a, 0x5b, 0x4f, 0x32, 0xdf, 0x0d, 0x11, - 0x79, 0xb3, 0xca, 0x26, 0x94, 0xcc, 0xb7, 0x26, 0x62, 0x70, 0x56, 0x39, 0xaa, 0x24, 0xf3, 0x3d, - 0x21, 0xa2, 0x71, 0x56, 0x39, 0xb4, 0x24, 0xf3, 0xad, 0x8b, 0xb8, 0x9c, 0x53, 0x8f, 0x2f, 0xc9, - 0x8c, 0x37, 0xdd, 0x08, 0x9d, 0x53, 0x0f, 0x32, 0xc9, 0x9c, 0x3f, 0xe7, 0xc6, 0xea, 0x9c, 0x7a, - 0xa4, 0x49, 0xe6, 0xdc, 0x70, 0xa3, 0x76, 0x4e, 0xdd, 0x2a, 0x93, 0x39, 0x37, 0xdd, 0xf8, 0x9d, - 0x53, 0x37, 0xcd, 0x64, 0xce, 0x2d, 0x37, 0x92, 0xe7, 0xd4, 0xed, 0x33, 0x99, 0x73, 0xdb, 0x5d, - 0x43, 0xff, 0xb2, 0x12, 0x7e, 0x9e, 0x43, 0x50, 0x19, 0x25, 0xfc, 0xc0, 0x27, 0xf4, 0x32, 0x4a, - 0xe8, 0x81, 0x4f, 0xd8, 0x65, 0x94, 0xb0, 0x03, 0x9f, 0x90, 0xcb, 0x28, 0x21, 0x07, 0x3e, 0xe1, - 0x96, 0x51, 0xc2, 0x0d, 0x7c, 0x42, 0x2d, 0xa3, 0x84, 0x1a, 0xf8, 0x84, 0x59, 0x46, 0x09, 0x33, - 0xf0, 0x09, 0xb1, 0x8c, 0x12, 0x62, 0xe0, 0x13, 0x5e, 0x19, 0x25, 0xbc, 0xc0, 0x27, 0xb4, 0x66, - 0xd4, 0xd0, 0x02, 0xbf, 0xb0, 0x9a, 0x51, 0xc3, 0x0a, 0xfc, 0x42, 0xea, 0x01, 0x35, 0xa4, 0x46, - 0x10, 0x57, 0x0c, 0x0f, 0x79, 0xa2, 0x69, 0x46, 0x8d, 0x26, 0xf0, 0x8b, 0xa4, 0x19, 0x35, 0x92, - 0xc0, 0x2f, 0x8a, 0x66, 0xd4, 0x28, 0x02, 0xbf, 0x08, 0x7a, 0x49, 0x8d, 0x20, 0xf7, 0x88, 0x4f, - 0x46, 0xd9, 0x51, 0x0c, 0x8a, 0x20, 0x3d, 0x44, 0x04, 0xe9, 0x21, 0x22, 0x48, 0x0f, 0x11, 0x41, - 0x7a, 0x88, 0x08, 0xd2, 0x43, 0x44, 0x90, 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x89, - 0x20, 0x3d, 0x54, 0x04, 0xe9, 0xfd, 0x22, 0x68, 0x46, 0x3d, 0xf0, 0x00, 0x7e, 0x05, 0x69, 0x46, - 0xdd, 0xf9, 0x0c, 0x0e, 0x21, 0x3d, 0x54, 0x08, 0xe9, 0xfd, 0x42, 0xe8, 0xcb, 0xa8, 0x91, 0x92, - 0x42, 0x88, 0x6d, 0x0f, 0xbd, 0x56, 0x15, 0xe8, 0x4a, 0x88, 0xf3, 0x15, 0x7e, 0x31, 0x75, 0x25, - 0xc4, 0x1e, 0xf5, 0xa0, 0x38, 0xeb, 0xad, 0x42, 0xa5, 0x10, 0x55, 0xe8, 0x86, 0x88, 0xa1, 0x2b, - 0x21, 0xce, 0x5d, 0xf4, 0xc6, 0xde, 0xb5, 0x41, 0x45, 0xe0, 0x89, 0x50, 0x45, 0x60, 0x3d, 0x54, - 0x11, 0xb8, 0xe9, 0x7a, 0xf0, 0xdd, 0x11, 0x98, 0x74, 0x3d, 0x48, 0xdf, 0x91, 0x5f, 0x4c, 0xc9, - 0x78, 0x76, 0xa8, 0x0c, 0xbe, 0x6b, 0xe3, 0x71, 0x23, 0xde, 0xbf, 0xd9, 0x91, 0xf7, 0xaa, 0xb2, - 0x27, 0xdd, 0xbf, 0xf1, 0x78, 0x9c, 0xad, 0x85, 0xce, 0x80, 0xbe, 0x5e, 0x73, 0x48, 0xb5, 0xf0, - 0xbb, 0x6c, 0xc1, 0xd4, 0xeb, 0x35, 0xc7, 0x30, 0x61, 0x88, 0x5c, 0xd7, 0x21, 0xee, 0xbd, 0x9b, - 0x0b, 0x23, 0xd7, 0x93, 0x0b, 0x3b, 0x99, 0x97, 0x34, 0xb8, 0x20, 0x85, 0xf2, 0x6b, 0xb3, 0x63, - 0xf0, 0x58, 0xa8, 0x1d, 0x03, 0x29, 0x41, 0xdc, 0xdd, 0x83, 0x87, 0x7a, 0x37, 0xaa, 0xbd, 0x59, - 0xa2, 0xee, 0x24, 0xfc, 0x32, 0x24, 0xdd, 0x3b, 0x20, 0x8f, 0x6c, 0x97, 0x83, 0x17, 0x33, 0xfd, - 0x52, 0xf3, 0xb2, 0xb2, 0x88, 0x36, 0x10, 0x26, 0xb2, 0x35, 0x93, 0x45, 0x4f, 0x9c, 0xf2, 0xb7, - 0x5f, 0x82, 0xd6, 0x22, 0xe2, 0xb8, 0x35, 0xbf, 0xf3, 0x71, 0xd4, 0x9e, 0x3f, 0x02, 0xa3, 0xde, - 0x2f, 0xb8, 0x28, 0xc0, 0x11, 0x0e, 0xcc, 0x46, 0xbf, 0x8a, 0xb9, 0xff, 0x50, 0x83, 0x33, 0x5e, - 0xf6, 0xb7, 0x22, 0xdf, 0xaf, 0xdb, 0xb8, 0xa7, 0x7f, 0x13, 0xc4, 0x2d, 0xe6, 0x38, 0xf6, 0x2b, - 0x1b, 0xec, 0x31, 0xd2, 0x97, 0x7d, 0x81, 0xfc, 0x6f, 0x0a, 0x88, 0xb2, 0x08, 0xc2, 0x2f, 0xbb, - 0x32, 0xfd, 0x20, 0xc4, 0xa8, 0x7c, 0x59, 0xaf, 0x31, 0x45, 0xaf, 0x4f, 0xfa, 0xe8, 0x45, 0xe2, - 0xc8, 0xb8, 0x29, 0xe9, 0xe5, 0x79, 0x5a, 0xf5, 0x65, 0x5f, 0xe0, 0xc1, 0x97, 0x8f, 0xe3, 0xfe, - 0x8f, 0x44, 0x54, 0xb0, 0x92, 0x73, 0x10, 0x2f, 0xa9, 0x3c, 0xfe, 0x7a, 0x16, 0x21, 0xba, 0x85, - 0x7f, 0x3c, 0x6c, 0x92, 0xfd, 0x58, 0x26, 0x33, 0x32, 0xfb, 0x41, 0xd6, 0x59, 0x88, 0x17, 0x8e, - 0xea, 0x8d, 0x5a, 0xdb, 0xb2, 0xd9, 0x96, 0x3d, 0x5b, 0x41, 0xc7, 0x18, 0x33, 0x5e, 0x65, 0xb4, - 0xf9, 0x0c, 0x24, 0x3c, 0x21, 0x61, 0xc4, 0xd0, 0xe3, 0x7f, 0xea, 0x14, 0xfe, 0x93, 0x4f, 0x69, - 0xf8, 0x4f, 0x21, 0x15, 0x99, 0x7f, 0x10, 0xc6, 0x95, 0x05, 0x32, 0x4c, 0x29, 0xa6, 0x00, 0xff, - 0x29, 0xa5, 0x12, 0xd3, 0xd1, 0xf7, 0xfc, 0xf1, 0xb9, 0x53, 0xf3, 0x8f, 0x81, 0xd1, 0xbb, 0x94, - 0x66, 0x0c, 0x41, 0x24, 0x87, 0x45, 0xde, 0x03, 0x91, 0x3c, 0x92, 0x39, 0x3d, 0xfe, 0x1b, 0x1f, - 0xb9, 0x90, 0xc8, 0x93, 0xef, 0x87, 0x22, 0xee, 0x7c, 0x9e, 0x81, 0x1f, 0x87, 0x33, 0xbe, 0x4b, - 0x71, 0x18, 0x5f, 0x28, 0x50, 0x7c, 0xb1, 0xd8, 0x83, 0x2f, 0x16, 0x09, 0x5e, 0xcb, 0xf2, 0x2d, - 0xcd, 0x9c, 0xe1, 0xb3, 0x8c, 0x95, 0xae, 0x79, 0xb6, 0x50, 0x73, 0xd9, 0xc7, 0x19, 0x6f, 0xde, - 0x97, 0xd7, 0x0a, 0xd8, 0x12, 0xcd, 0x67, 0x0b, 0x0c, 0x5f, 0xf0, 0xc5, 0x1f, 0x28, 0xfb, 0x76, - 0x72, 0x0d, 0x62, 0x42, 0x0a, 0x42, 0xe1, 0xa2, 0xaf, 0x90, 0x23, 0xcf, 0x69, 0xea, 0xa2, 0x50, - 0xb8, 0xe4, 0xcb, 0x5b, 0x0f, 0x38, 0x55, 0x54, 0xca, 0x2e, 0xb2, 0x69, 0x24, 0xb7, 0x6c, 0x9c, - 0xe1, 0x51, 0x20, 0xe5, 0x38, 0x33, 0x10, 0x9d, 0x51, 0x72, 0xcb, 0xe8, 0x0e, 0x29, 0x20, 0xdf, - 0x17, 0xd0, 0xdf, 0x4a, 0x54, 0x48, 0x7e, 0x39, 0xfb, 0x04, 0x13, 0x52, 0xe8, 0x2b, 0x24, 0xc0, - 0x54, 0x54, 0x52, 0x61, 0x39, 0xbf, 0x77, 0xe7, 0x1b, 0xe7, 0x4e, 0x7d, 0x15, 0xbd, 0xfe, 0x15, - 0xbd, 0xbe, 0xfe, 0x8d, 0x73, 0xda, 0x77, 0xd0, 0xeb, 0x7b, 0xe8, 0xf5, 0x43, 0xf4, 0x7a, 0xc7, - 0x37, 0xcf, 0x69, 0x2f, 0xa2, 0xd7, 0x67, 0xd1, 0xeb, 0x6f, 0xd0, 0xeb, 0x25, 0xf4, 0xba, 0xf3, - 0x4d, 0xc4, 0x8f, 0x5e, 0x5f, 0x47, 0xef, 0xbf, 0x83, 0xfe, 0x7e, 0x0f, 0xfd, 0xfd, 0x21, 0xfa, - 0xfb, 0x8e, 0x6f, 0x9d, 0xd3, 0x5e, 0xf8, 0xd6, 0xb9, 0x53, 0x2f, 0xa2, 0xbf, 0xff, 0x1f, 0x00, - 0x00, 0xff, 0xff, 0x5d, 0x08, 0x16, 0x1e, 0x22, 0x5f, 0x00, 0x00, + // 6508 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, + 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, + 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, + 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, + 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, + 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x90, 0x6c, 0xfe, 0xa4, 0x4c, + 0xf2, 0x27, 0x45, 0xa5, 0x5c, 0xec, 0x9a, 0xaa, 0x90, 0xc4, 0x49, 0x20, 0xb8, 0x0a, 0xaa, 0xcc, + 0x8f, 0xd4, 0x7d, 0x75, 0xf7, 0xbd, 0xd3, 0xa3, 0x6e, 0x79, 0x6d, 0xe0, 0xcf, 0xee, 0xcc, 0x3d, + 0xe7, 0x3b, 0x7d, 0xee, 0x79, 0xdd, 0xd3, 0xf7, 0x5e, 0x0d, 0xbc, 0xba, 0x04, 0xd3, 0x3b, 0xb6, + 0xbd, 0xd3, 0x40, 0xa7, 0x5b, 0x6d, 0xdb, 0xb5, 0xaf, 0xef, 0x6d, 0x9f, 0xae, 0x21, 0xa7, 0xda, + 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x47, 0xc6, 0xf4, 0x11, 0xca, 0x31, 0xc7, 0x39, 0x32, 0xab, 0x30, + 0x7a, 0xb9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x03, 0xb9, 0xfa, 0x05, 0x48, 0x6e, 0xd7, 0x1b, 0x28, + 0xad, 0x4c, 0xab, 0x33, 0x03, 0x0b, 0x27, 0xe7, 0x24, 0xd0, 0x9c, 0x88, 0x58, 0xc7, 0xc3, 0x06, + 0x41, 0x64, 0xbe, 0x9b, 0x84, 0xb1, 0x10, 0xaa, 0xae, 0x43, 0xd2, 0x32, 0x9b, 0x58, 0xa2, 0x32, + 0xd3, 0x6f, 0x90, 0xcf, 0x7a, 0x1a, 0x8e, 0xb4, 0xcc, 0xea, 0x93, 0xe6, 0x0e, 0x4a, 0x27, 0xc8, + 0x30, 0xff, 0xaa, 0x4f, 0x02, 0xd4, 0x50, 0x0b, 0x59, 0x35, 0x64, 0x55, 0xf7, 0xd3, 0xea, 0xb4, + 0x3a, 0xd3, 0x6f, 0x04, 0x46, 0xf4, 0x77, 0xc0, 0x68, 0x6b, 0xef, 0x7a, 0xa3, 0x5e, 0xad, 0x04, + 0xd8, 0x60, 0x5a, 0x9d, 0xe9, 0x35, 0x34, 0x4a, 0x28, 0xfa, 0xcc, 0xf7, 0xc1, 0xc8, 0xd3, 0xc8, + 0x7c, 0x32, 0xc8, 0x3a, 0x40, 0x58, 0x87, 0xf1, 0x70, 0x80, 0xb1, 0x00, 0x83, 0x4d, 0xe4, 0x38, + 0xe6, 0x0e, 0xaa, 0xb8, 0xfb, 0x2d, 0x94, 0x4e, 0x92, 0xd9, 0x4f, 0x77, 0xcc, 0x5e, 0x9e, 0xf9, + 0x00, 0x43, 0x6d, 0xee, 0xb7, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x35, 0xa9, 0x84, 0xde, 0x2e, + 0xf6, 0x2b, 0x59, 0x7b, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x23, 0x0e, 0x6a, 0x3f, 0x55, + 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x5f, 0x87, 0x80, 0x0d, 0x4a, 0x97, 0x65, 0x70, 0x9c, 0x5e, + 0x80, 0x7e, 0xf4, 0x8c, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x23, 0x44, 0xc8, 0xbd, 0x21, 0x5e, + 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x88, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, 0xa4, + 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, 0x3c, 0x06, 0x67, 0xd6, 0x97, + 0x41, 0x73, 0xec, 0xbd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0xb6, 0x9d, 0xee, + 0x27, 0x02, 0xa6, 0x3a, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x5b, 0xdb, 0xb6, 0x31, 0xec, + 0x08, 0xdf, 0xf5, 0x71, 0xe8, 0x73, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, 0x3d, 0x48, 0x22, 0x84, 0x7d, + 0xcb, 0xfc, 0xa8, 0x17, 0x46, 0xe2, 0x84, 0xd8, 0x25, 0xe8, 0xdd, 0xc6, 0xb3, 0x4c, 0x27, 0x0e, + 0x63, 0x03, 0x8a, 0x11, 0x8d, 0xd8, 0xf7, 0x26, 0x8d, 0x98, 0x83, 0x01, 0x0b, 0x39, 0x2e, 0xaa, + 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x67, 0x48, 0x25, 0xdf, 0x54, 0x48, 0x3d, 0x0e, + 0x23, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x1d, 0xa5, 0xc9, 0x5c, 0x89, 0xe3, + 0x0c, 0x0c, 0x33, 0x86, 0x91, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7, 0x2b, 0x35, 0x54, + 0x6d, 0xa4, 0x53, 0x5d, 0xac, 0xb4, 0x86, 0x59, 0x3a, 0xac, 0x64, 0xd3, 0xd1, 0x6a, 0x43, 0xbf, + 0xe8, 0x87, 0xda, 0x91, 0x2e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x23, 0xda, 0xb6, 0x60, 0xb8, 0x8d, + 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0x59, 0x3f, 0x51, 0x62, 0x2e, 0x72, 0x66, 0x06, 0x83, 0xd1, 0x89, + 0x0d, 0xb5, 0x83, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52, 0x85, 0x06, 0xf9, + 0x60, 0xd9, 0x6c, 0xa2, 0x89, 0x0b, 0x30, 0x2c, 0x9a, 0x47, 0x3f, 0x0a, 0xbd, 0x8e, 0x6b, 0xb6, + 0x5d, 0x12, 0x85, 0xbd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0xaf, 0x81, + 0x3f, 0x4e, 0x9c, 0x87, 0x21, 0xe1, 0xf1, 0x71, 0x81, 0x99, 0x8f, 0xf6, 0xc1, 0xd1, 0xb0, 0x98, + 0x0b, 0x0d, 0xff, 0x71, 0xe8, 0xb3, 0xf6, 0x9a, 0xd7, 0x51, 0x3b, 0xad, 0x12, 0x09, 0xec, 0x9b, + 0x9e, 0x83, 0xde, 0x86, 0x79, 0x1d, 0x35, 0xd2, 0xc9, 0x69, 0x65, 0x66, 0x78, 0xe1, 0x1d, 0xb1, + 0xa2, 0x7a, 0x6e, 0x05, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x86, 0x24, 0x2b, 0x71, 0x58, 0xc2, 0x6c, + 0x3c, 0x09, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0xef, 0x82, 0x7e, 0xfc, 0x3f, 0xb5, 0x6d, 0x1f, 0xd1, + 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x09, 0x48, 0x91, 0x30, 0xab, 0x21, 0xbe, 0x34, 0x78, 0xdf, + 0xb1, 0x63, 0x6a, 0x68, 0xdb, 0xdc, 0x6b, 0xb8, 0x95, 0xa7, 0xcc, 0xc6, 0x1e, 0x22, 0x01, 0xd3, + 0x6f, 0x0c, 0xb2, 0xc1, 0xf7, 0xe0, 0x31, 0x7d, 0x0a, 0x06, 0x68, 0x54, 0xd6, 0xad, 0x1a, 0x7a, + 0x86, 0x54, 0x9f, 0x5e, 0x83, 0x06, 0xea, 0x32, 0x1e, 0xc1, 0x8f, 0x7f, 0xc2, 0xb1, 0x2d, 0xee, + 0x5a, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0x7c, 0x77, 0x87, 0x4f, 0x4f, 0x8e, 0xc5, + 0xcc, 0x57, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x02, 0x03, 0x9b, 0xd7, 0xd6, 0x4b, 0x95, 0xe2, 0xda, + 0x56, 0x7e, 0xa5, 0xa4, 0x29, 0xfa, 0x30, 0x00, 0x19, 0xb8, 0xbc, 0xb2, 0x96, 0xdb, 0xd4, 0x12, + 0xde, 0xf7, 0xe5, 0xf2, 0xe6, 0xb9, 0x45, 0x4d, 0xf5, 0x00, 0x5b, 0x74, 0x20, 0x19, 0x64, 0x38, + 0xbb, 0xa0, 0xf5, 0xea, 0x1a, 0x0c, 0x52, 0x01, 0xcb, 0x8f, 0x97, 0x8a, 0xe7, 0x16, 0xb5, 0x3e, + 0x71, 0xe4, 0xec, 0x82, 0x76, 0x44, 0x1f, 0x82, 0x7e, 0x32, 0x92, 0x5f, 0x5b, 0x5b, 0xd1, 0x52, + 0x9e, 0xcc, 0x8d, 0x4d, 0x63, 0xb9, 0x7c, 0x45, 0xeb, 0xf7, 0x64, 0x5e, 0x31, 0xd6, 0xb6, 0xd6, + 0x35, 0xf0, 0x24, 0xac, 0x96, 0x36, 0x36, 0x72, 0x57, 0x4a, 0xda, 0x80, 0xc7, 0x91, 0xbf, 0xb6, + 0x59, 0xda, 0xd0, 0x06, 0x05, 0xb5, 0xce, 0x2e, 0x68, 0x43, 0xde, 0x23, 0x4a, 0xe5, 0xad, 0x55, + 0x6d, 0x58, 0x1f, 0x85, 0x21, 0xfa, 0x08, 0xae, 0xc4, 0x88, 0x34, 0x74, 0x6e, 0x51, 0xd3, 0x7c, + 0x45, 0xa8, 0x94, 0x51, 0x61, 0xe0, 0xdc, 0xa2, 0xa6, 0x67, 0x0a, 0xd0, 0x4b, 0xa2, 0x4b, 0xd7, + 0x61, 0x78, 0x25, 0x97, 0x2f, 0xad, 0x54, 0xd6, 0xd6, 0x37, 0x97, 0xd7, 0xca, 0xb9, 0x15, 0x4d, + 0xf1, 0xc7, 0x8c, 0xd2, 0xbb, 0xb7, 0x96, 0x8d, 0x52, 0x51, 0x4b, 0x04, 0xc7, 0xd6, 0x4b, 0xb9, + 0xcd, 0x52, 0x51, 0x53, 0x33, 0x55, 0x38, 0x1a, 0x56, 0x67, 0x42, 0x33, 0x23, 0xe0, 0xe2, 0x44, + 0x17, 0x17, 0x13, 0x59, 0x1d, 0x2e, 0xfe, 0x8c, 0x02, 0x63, 0x21, 0xb5, 0x36, 0xf4, 0x21, 0x8f, + 0x40, 0x2f, 0x0d, 0x51, 0xba, 0xfa, 0xdc, 0x1f, 0x5a, 0xb4, 0x49, 0xc0, 0x76, 0xac, 0x40, 0x04, + 0x17, 0x5c, 0x81, 0xd5, 0x2e, 0x2b, 0x30, 0x16, 0xd1, 0xa1, 0xe4, 0x07, 0x14, 0x48, 0x77, 0x93, + 0x1d, 0x51, 0x28, 0x12, 0x42, 0xa1, 0xb8, 0x24, 0x2b, 0x70, 0xa2, 0xfb, 0x1c, 0x3a, 0xb4, 0xf8, + 0x9c, 0x02, 0xe3, 0xe1, 0x8d, 0x4a, 0xa8, 0x0e, 0x0f, 0x43, 0x5f, 0x13, 0xb9, 0xbb, 0x36, 0x5f, + 0xac, 0x4f, 0x85, 0x2c, 0x01, 0x98, 0x2c, 0xdb, 0x8a, 0xa1, 0x82, 0x6b, 0x88, 0xda, 0xad, 0xdb, + 0xa0, 0xda, 0x74, 0x68, 0xfa, 0xe1, 0x04, 0xdc, 0x11, 0x2a, 0x3c, 0x54, 0xd1, 0xbb, 0x01, 0xea, + 0x56, 0x6b, 0xcf, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0xfd, 0x64, 0x84, 0xe4, 0x3e, 0xae, 0x3d, 0x7b, + 0xae, 0x47, 0x57, 0x09, 0x1d, 0xe8, 0x10, 0x61, 0xb8, 0xe0, 0x2b, 0x9a, 0x24, 0x8a, 0x4e, 0x76, + 0x99, 0x69, 0xc7, 0x5a, 0x37, 0x0f, 0x5a, 0xb5, 0x51, 0x47, 0x96, 0x5b, 0x71, 0xdc, 0x36, 0x32, + 0x9b, 0x75, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xb6, 0x77, 0xdb, 0x6c, 0x38, 0xc8, 0x18, 0xa1, 0xe4, + 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x03, 0x88, 0x3e, 0x01, 0x41, 0xc9, 0x1e, 0x22, 0xf3, + 0xc5, 0x23, 0x30, 0x10, 0x68, 0xeb, 0xf4, 0x13, 0x30, 0xf8, 0x84, 0xf9, 0x94, 0x59, 0xe1, 0xad, + 0x3a, 0xb5, 0xc4, 0x00, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, 0x25, 0x2c, 0xf6, 0x9e, 0x8b, + 0xda, 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, 0x31, 0x6d, 0x0d, 0x93, 0x0a, + 0x9c, 0xa2, 0x2f, 0xc1, 0x18, 0x41, 0x34, 0xf7, 0x1a, 0x6e, 0xbd, 0xd5, 0x40, 0x15, 0xfc, 0xf2, + 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8a, 0x39, 0x56, 0x19, 0x03, 0xd6, 0xc8, 0xd1, 0x8b, 0x70, + 0x37, 0x81, 0xed, 0x20, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0xf6, 0xcc, 0x86, 0x53, 0x31, + 0xad, 0x5a, 0x65, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x7c, 0x22, 0xad, 0x18, 0x77, 0x62, + 0xc6, 0x2b, 0x8c, 0xaf, 0x44, 0xd8, 0x72, 0x56, 0xed, 0x51, 0xd3, 0xd9, 0xd5, 0xb3, 0x30, 0x4e, + 0xa4, 0x38, 0x6e, 0xbb, 0x6e, 0xed, 0x54, 0xaa, 0xbb, 0xa8, 0xfa, 0x64, 0x65, 0xcf, 0xdd, 0xbe, + 0x90, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x60, 0x96, 0x2d, 0x77, 0xfb, 0x82, + 0xbe, 0x01, 0x83, 0xd8, 0x19, 0xcd, 0xfa, 0xb3, 0xa8, 0xb2, 0x6d, 0xb7, 0xc9, 0xca, 0x32, 0x1c, + 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x43, 0xd9, 0xde, 0x8d, 0xf5, 0x52, + 0xa9, 0x68, 0x0c, 0x70, 0x29, 0x97, 0xed, 0x36, 0x0e, 0xa8, 0x1d, 0xdb, 0x33, 0xf0, 0x00, 0x0d, + 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0xc6, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0x5a, 0x7c, + 0x27, 0xad, 0x09, 0xc6, 0xaa, 0x56, 0xaf, 0x50, 0x06, 0x16, 0xe3, 0x8e, 0x7e, 0x11, 0xee, 0xf0, + 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xcc, 0x52, 0x86, 0x2e, 0xc1, 0x58, 0x6b, 0xbf, 0x13, 0xa8, 0x0b, + 0x4f, 0x6c, 0xed, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x1b, 0x55, 0x4d, 0x17, 0xd5, 0xd2, 0xc7, + 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x1a, 0xb4, 0x6a, 0xb5, 0x82, 0x2c, 0xf3, 0x7a, 0x03, 0x55, 0xcc, + 0x36, 0xb2, 0x4c, 0x27, 0x3d, 0x15, 0x64, 0x1e, 0xae, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, + 0x16, 0x46, 0xed, 0xeb, 0x4f, 0x54, 0x69, 0x64, 0x55, 0x5a, 0x6d, 0xb4, 0x5d, 0x7f, 0x26, 0x7d, + 0x92, 0x98, 0x69, 0x04, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, 0x7e, 0xd0, 0xaa, 0xce, 0xae, + 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x69, 0x99, 0x55, 0x94, 0xbe, 0x97, 0xb2, 0xd2, 0xf1, 0x32, 0x1f, + 0xc6, 0x91, 0xed, 0x3c, 0x5d, 0xdf, 0x76, 0xb9, 0xc4, 0xfb, 0x68, 0x64, 0x93, 0x31, 0x26, 0xed, + 0x71, 0x38, 0xba, 0x67, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, 0x9a, 0x89, 0xe9, + 0x7f, 0x3f, 0xd2, 0xa5, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, 0xc6, 0xf6, 0x3a, 0x07, 0x33, + 0x59, 0x18, 0x0c, 0xc6, 0x85, 0xde, 0x0f, 0x34, 0x32, 0x34, 0x05, 0xaf, 0xb1, 0x85, 0xb5, 0x22, + 0x5e, 0x1d, 0xdf, 0x5b, 0xd2, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, 0x2c, 0x55, 0x8c, 0xad, 0xf2, + 0xe6, 0xf2, 0x6a, 0x49, 0x53, 0x67, 0xfb, 0x53, 0xdf, 0x3b, 0xa2, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, + 0x25, 0x32, 0xdf, 0x4c, 0xc0, 0xb0, 0xd8, 0x19, 0xeb, 0xef, 0x84, 0x63, 0xfc, 0x35, 0xd6, 0x41, + 0x6e, 0xe5, 0xe9, 0x7a, 0x9b, 0x84, 0x6a, 0xd3, 0xa4, 0xbd, 0xa5, 0x67, 0xe5, 0xa3, 0x8c, 0x6b, + 0x03, 0xb9, 0x8f, 0xd5, 0xdb, 0x38, 0x10, 0x9b, 0xa6, 0xab, 0xaf, 0xc0, 0x94, 0x65, 0x57, 0x1c, + 0xd7, 0xb4, 0x6a, 0x66, 0xbb, 0x56, 0xf1, 0x37, 0x10, 0x2a, 0x66, 0xb5, 0x8a, 0x1c, 0xc7, 0xa6, + 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, 0xe6, 0x18, 0xab, 0x14, 0x11, + 0x6a, 0xb7, 0x88, 0xb8, 0x0b, 0xfa, 0x9b, 0x66, 0xab, 0x82, 0x2c, 0xb7, 0xbd, 0x4f, 0xfa, 0xb9, + 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x12, 0xfe, 0xfe, 0xf6, 0xf9, 0x20, 0x68, 0xc7, 0x7f, 0x53, 0x61, + 0x30, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x4a, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0x9e, 0x03, 0x3b, 0xc0, + 0xb9, 0x02, 0x2e, 0xec, 0xd9, 0x3e, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, 0xd3, 0x88, + 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0x40, 0xdf, 0x13, 0x0e, 0x91, 0xdd, 0x47, 0x64, 0x9f, + 0x3c, 0x58, 0xf6, 0xd5, 0x0d, 0x22, 0xbc, 0xff, 0xea, 0x46, 0xa5, 0xbc, 0x66, 0xac, 0xe6, 0x56, + 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xc3, 0x7c, 0x76, 0x5f, 0x5c, 0x02, 0xc8, 0x50, 0x5c, 0xc3, + 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, 0xdb, 0x18, 0xfa, 0xa7, 0xa1, + 0x97, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0x7a, 0xf4, 0x14, 0x24, 0x0b, 0x6b, 0x06, 0x0e, 0x7f, + 0x0d, 0x06, 0xe9, 0x68, 0x65, 0x7d, 0xb9, 0x54, 0x28, 0x69, 0x89, 0xcc, 0x12, 0xf4, 0x51, 0x23, + 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb0, 0xaf, 0x4c, 0x86, 0xc2, 0xa9, 0x5b, 0xab, 0xf9, 0x92, + 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x30, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xeb, 0x0a, 0x0c, + 0x04, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xfd, 0x74, 0xc5, 0x6c, 0xd4, 0x4d, 0x87, 0x05, + 0x05, 0x90, 0xa1, 0x1c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8a, 0xf2, 0xcf, 0x2b, 0xa0, 0xc9, 0xad, + 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x13, 0x0a, 0x0c, 0x8b, 0xfd, 0x9c, 0xa4, 0xde, 0x89, + 0x9f, 0xa9, 0x7a, 0xdf, 0x49, 0xc0, 0x90, 0xd0, 0xc5, 0xc5, 0xd5, 0xee, 0x7d, 0x30, 0x5a, 0xaf, + 0xa1, 0x66, 0xcb, 0x76, 0x91, 0x55, 0xdd, 0xaf, 0x34, 0xd0, 0x53, 0xa8, 0x91, 0xce, 0x90, 0x42, + 0x71, 0xfa, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, 0x76, 0x6c, 0xb9, 0x58, 0x5a, + 0x5d, 0x5f, 0xdb, 0x2c, 0x95, 0x0b, 0xd7, 0x2a, 0x5b, 0xe5, 0x77, 0x95, 0xd7, 0x1e, 0x2b, 0x1b, + 0x5a, 0x5d, 0x62, 0x7b, 0x1b, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, 0xfd, 0x18, 0x84, 0xa9, 0xa5, + 0xf5, 0xe8, 0x63, 0x30, 0x52, 0x5e, 0xab, 0x6c, 0x2c, 0x17, 0x4b, 0x95, 0xd2, 0xe5, 0xcb, 0xa5, + 0xc2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, 0xb8, 0x0a, 0x63, 0x21, 0x9a, + 0xe8, 0x39, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, 0x87, 0xbb, 0x82, 0x75, 0xb3, + 0xed, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xfa, 0x76, 0x1d, 0xb5, 0xd9, 0x3e, 0x03, + 0x6d, 0xe4, 0x47, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0xa7, + 0x50, 0xa5, 0x6e, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0x53, 0x96, 0x2d, 0xd7, 0xe3, + 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, 0x78, 0xdc, 0x27, 0x60, 0xb0, + 0x66, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x06, 0xe8, 0x98, 0xc7, 0xc2, 0xfa, + 0x58, 0x7f, 0x37, 0x64, 0xd0, 0x18, 0xa0, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x31, 0x77, 0x76, 0xda, + 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x61, 0x6f, 0x98, 0x30, 0x4e, 0x5c, 0x85, 0x14, 0xb7, 0x03, + 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0xe9, 0x37, 0x52, 0x16, 0x27, 0x9e, + 0x80, 0xc1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0xd3, 0x89, 0x99, 0x94, 0x31, 0x50, 0x77, 0xbc, + 0xdd, 0xb0, 0xcc, 0xe7, 0x12, 0x30, 0x2c, 0x6e, 0xee, 0xea, 0x45, 0x48, 0x35, 0xec, 0xaa, 0x49, + 0x42, 0x8b, 0x9e, 0x2c, 0xcc, 0x44, 0xec, 0x07, 0xcf, 0xad, 0x30, 0x7e, 0xc3, 0x43, 0x4e, 0xfc, + 0x93, 0x02, 0x29, 0x3e, 0xac, 0x8f, 0x43, 0xb2, 0x65, 0xba, 0xbb, 0x44, 0x5c, 0x6f, 0x3e, 0xa1, + 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d, 0x96, 0x69, 0x91, 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, + 0x03, 0x99, 0x35, 0xd2, 0xf6, 0xdb, 0xcd, 0x26, 0xb2, 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, + 0xb0, 0xfe, 0x0e, 0x18, 0x75, 0xdb, 0x66, 0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, + 0x73, 0x16, 0xee, 0xe4, 0x72, 0x6b, 0xc8, 0x35, 0xab, 0xbb, 0xa8, 0xe6, 0x83, 0xfa, 0xc8, 0xce, + 0xe1, 0x31, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x7c, 0x4b, 0x81, 0x51, 0xfe, 0xa2, 0x52, 0xf3, + 0x8c, 0xb5, 0x0a, 0x60, 0x5a, 0x96, 0xed, 0x06, 0xcd, 0xd5, 0x19, 0xca, 0x1d, 0xb8, 0xb9, 0x9c, + 0x07, 0x32, 0x02, 0x02, 0x26, 0x9a, 0x00, 0x3e, 0xa5, 0xab, 0xd9, 0xa6, 0x60, 0x80, 0xed, 0xdc, + 0x93, 0xe3, 0x1f, 0xfa, 0x6a, 0x0b, 0x74, 0x08, 0xbf, 0xd1, 0xe8, 0x47, 0xa1, 0xf7, 0x3a, 0xda, + 0xa9, 0x5b, 0x6c, 0x3f, 0x91, 0x7e, 0xe1, 0xbb, 0x94, 0x49, 0x6f, 0x97, 0x32, 0xff, 0x38, 0x8c, + 0x55, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93, 0x5e, 0xaf, 0x9d, 0x47, 0x95, 0xf7, 0x82, 0xdf, 0x62, + 0x7e, 0x26, 0xa1, 0x5e, 0x59, 0xcf, 0x7f, 0x21, 0x31, 0x71, 0x85, 0xe2, 0xd6, 0xf9, 0x34, 0x0d, + 0xb4, 0xdd, 0x40, 0x55, 0xac, 0x3a, 0xfc, 0xf0, 0x14, 0x3c, 0xb8, 0x53, 0x77, 0x77, 0xf7, 0xae, + 0xcf, 0x55, 0xed, 0xe6, 0xe9, 0x1d, 0x7b, 0xc7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, 0x85, 0x7c, + 0x62, 0x47, 0x5e, 0xfd, 0xde, 0xe8, 0x44, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x63, 0x8c, 0xb9, 0x42, + 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xcb, 0xdf, 0x25, 0x6b, 0xb5, 0x31, + 0xca, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, 0xda, 0x11, + 0x12, 0xbf, 0xc9, 0x24, 0x8e, 0x05, 0x24, 0x6e, 0x30, 0x68, 0xb6, 0x00, 0x43, 0x87, 0x91, 0xf5, + 0xf7, 0x4c, 0xd6, 0x20, 0x0a, 0x0a, 0xb9, 0x02, 0x23, 0x44, 0x48, 0x75, 0xcf, 0x71, 0xed, 0x26, + 0x29, 0x7a, 0x07, 0x8b, 0xf9, 0x87, 0xef, 0xd2, 0x44, 0x19, 0xc6, 0xb0, 0x82, 0x87, 0xca, 0x66, + 0x81, 0x1c, 0x33, 0xd4, 0x50, 0xb5, 0x11, 0x21, 0xe1, 0x06, 0x53, 0xc4, 0xe3, 0xcf, 0xbe, 0x07, + 0x8e, 0xe2, 0xcf, 0xa4, 0x26, 0x05, 0x35, 0x89, 0xde, 0x65, 0x4a, 0x7f, 0xeb, 0x03, 0x34, 0x17, + 0xc7, 0x3c, 0x01, 0x01, 0x9d, 0x02, 0x5e, 0xdc, 0x41, 0xae, 0x8b, 0xda, 0x4e, 0xc5, 0x6c, 0x84, + 0xa9, 0x17, 0x78, 0x4d, 0x4f, 0x7f, 0xec, 0x35, 0xd1, 0x8b, 0x57, 0x28, 0x32, 0xd7, 0x68, 0x64, + 0xb7, 0xe0, 0x58, 0x48, 0x54, 0xc4, 0x90, 0xf9, 0x71, 0x26, 0xf3, 0x68, 0x47, 0x64, 0x60, 0xb1, + 0xeb, 0xc0, 0xc7, 0x3d, 0x5f, 0xc6, 0x90, 0xf9, 0x47, 0x4c, 0xa6, 0xce, 0xb0, 0xdc, 0xa5, 0x58, + 0xe2, 0x55, 0x18, 0x7d, 0x0a, 0xb5, 0xaf, 0xdb, 0x0e, 0xdb, 0x1a, 0x89, 0x21, 0xee, 0x13, 0x4c, + 0xdc, 0x08, 0x03, 0x92, 0xbd, 0x12, 0x2c, 0xeb, 0x22, 0xa4, 0xb6, 0xcd, 0x2a, 0x8a, 0x21, 0xe2, + 0x93, 0x4c, 0xc4, 0x11, 0xcc, 0x8f, 0xa1, 0x39, 0x18, 0xdc, 0xb1, 0xd9, 0xb2, 0x14, 0x0d, 0x7f, + 0x9e, 0xc1, 0x07, 0x38, 0x86, 0x89, 0x68, 0xd9, 0xad, 0xbd, 0x06, 0x5e, 0xb3, 0xa2, 0x45, 0x7c, + 0x8a, 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x10, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x02, 0xf6, 0x7c, 0x04, + 0x06, 0x6c, 0xab, 0xb1, 0x6f, 0x5b, 0x71, 0x94, 0xf8, 0x34, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x5c, + 0x82, 0xfe, 0xb8, 0x8e, 0xf8, 0xec, 0x6b, 0x3c, 0x3d, 0xb8, 0x07, 0xae, 0xc0, 0x08, 0x2f, 0x50, + 0x75, 0xdb, 0x8a, 0x21, 0xe2, 0x4f, 0x98, 0x88, 0xe1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, + 0x83, 0xe2, 0x08, 0xf9, 0x1c, 0x9f, 0x06, 0x83, 0x30, 0x53, 0x5e, 0x47, 0x56, 0x75, 0x37, 0x9e, + 0x84, 0x17, 0xb9, 0x29, 0x39, 0x06, 0x8b, 0x28, 0xc0, 0x50, 0xd3, 0x6c, 0x3b, 0xbb, 0x66, 0x23, + 0x96, 0x3b, 0x3e, 0xcf, 0x64, 0x0c, 0x7a, 0x20, 0x66, 0x91, 0x3d, 0xeb, 0x30, 0x62, 0xbe, 0xc0, + 0x2d, 0x12, 0x80, 0xb1, 0xd4, 0x73, 0x5c, 0xb2, 0x01, 0x75, 0x18, 0x69, 0x5f, 0xe4, 0xa9, 0x47, + 0xb1, 0xab, 0x41, 0x89, 0x97, 0xa0, 0xdf, 0xa9, 0x3f, 0x1b, 0x4b, 0xcc, 0x9f, 0x72, 0x4f, 0x13, + 0x00, 0x06, 0x5f, 0x83, 0x3b, 0x43, 0x97, 0x89, 0x18, 0xc2, 0xfe, 0x8c, 0x09, 0x1b, 0x0f, 0x59, + 0x2a, 0x58, 0x49, 0x38, 0xac, 0xc8, 0x3f, 0xe7, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf1, 0x8b, 0x82, + 0x63, 0x6e, 0x1f, 0xce, 0x6a, 0x7f, 0xc1, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x61, 0x9c, 0x49, + 0x3c, 0x9c, 0x5f, 0xbf, 0xc4, 0x0b, 0x2b, 0x45, 0x6f, 0x89, 0xde, 0xfd, 0x05, 0x98, 0xf0, 0xcc, + 0xc9, 0x3b, 0x52, 0xa7, 0xd2, 0x34, 0x5b, 0x31, 0x24, 0x7f, 0x99, 0x49, 0xe6, 0x15, 0xdf, 0x6b, + 0x69, 0x9d, 0x55, 0xb3, 0x85, 0x85, 0x3f, 0x0e, 0x69, 0x2e, 0x7c, 0xcf, 0x6a, 0xa3, 0xaa, 0xbd, + 0x63, 0xd5, 0x9f, 0x45, 0xb5, 0x18, 0xa2, 0xff, 0x52, 0x72, 0xd5, 0x56, 0x00, 0x8e, 0x25, 0x2f, + 0x83, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x7f, 0xc5, 0x3d, 0xe5, + 0xe1, 0x96, 0x09, 0x2c, 0x5b, 0x82, 0x61, 0xf2, 0x35, 0x6e, 0x48, 0x7e, 0x85, 0x09, 0x1a, 0xf2, + 0x51, 0xac, 0x70, 0x54, 0xed, 0x66, 0xcb, 0x6c, 0xc7, 0xa9, 0x7f, 0x7f, 0xcd, 0x0b, 0x07, 0x83, + 0xb0, 0xc2, 0xe1, 0xee, 0xb7, 0x10, 0x5e, 0xed, 0x63, 0x48, 0xf8, 0x2a, 0x2f, 0x1c, 0x1c, 0xc3, + 0x44, 0xf0, 0x86, 0x21, 0x86, 0x88, 0xbf, 0xe1, 0x22, 0x38, 0x06, 0x8b, 0x78, 0xb7, 0xbf, 0xd0, + 0xb6, 0xd1, 0x4e, 0xdd, 0x71, 0xdb, 0xb4, 0x0f, 0x3e, 0x58, 0xd4, 0xd7, 0x5e, 0x13, 0x9b, 0x30, + 0x23, 0x00, 0xcd, 0x5e, 0x85, 0x11, 0xa9, 0xc5, 0xd0, 0xa3, 0xee, 0x2c, 0xa4, 0x7f, 0xf9, 0x75, + 0x56, 0x8c, 0xc4, 0x0e, 0x23, 0xbb, 0x82, 0xfd, 0x2e, 0xf6, 0x01, 0xd1, 0xc2, 0x3e, 0xf0, 0xba, + 0xe7, 0x7a, 0xa1, 0x0d, 0xc8, 0x5e, 0x86, 0x21, 0xa1, 0x07, 0x88, 0x16, 0xf5, 0x2b, 0x4c, 0xd4, + 0x60, 0xb0, 0x05, 0xc8, 0x2e, 0x41, 0x12, 0xaf, 0xe7, 0xd1, 0xf0, 0x5f, 0x65, 0x70, 0xc2, 0x9e, + 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x35, 0x3c, + 0x1a, 0xfe, 0x6b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x46, 0x92, 0xd5, 0x61, + 0x6e, 0xbb, 0x4b, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x0f, 0xb3, 0x87, 0x73, 0x44, 0xf6, 0x3c, + 0xf4, 0xc6, 0x34, 0xf8, 0x6f, 0x32, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, 0x60, 0x47, 0xc3, + 0x7f, 0x8b, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x36, 0x57, 0x9d, 0x21, + 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x1d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, 0xfd, 0x5e, + 0xfd, 0x8d, 0xc6, 0xff, 0x2e, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, 0xf1, 0x7b, + 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x11, 0x9e, 0x46, 0xd2, 0x92, + 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe7, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0x79, 0x91, + 0x8c, 0x96, 0xf1, 0x87, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xae, 0x83, 0xde, 0xb9, 0x40, 0x46, 0xcb, + 0xfb, 0x28, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, 0x31, 0x5a, 0xea, + 0xc7, 0x5e, 0x97, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xd3, 0xaf, 0xb2, 0xc1, 0x85, 0x31, 0x5a, + 0xec, 0xc7, 0x5f, 0x17, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, 0x5a, 0xd6, + 0x27, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, + 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x41, 0xca, 0xda, + 0x6b, 0x34, 0x70, 0x6c, 0xe9, 0x07, 0x5f, 0x23, 0x4a, 0xff, 0xc7, 0x1b, 0x0c, 0xcc, 0x01, 0xd9, + 0x25, 0xe8, 0x45, 0xcd, 0xeb, 0xa8, 0x16, 0x85, 0xfc, 0xcf, 0x37, 0x78, 0x3d, 0xc1, 0xdc, 0xd9, + 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xd7, 0x1b, 0xec, 0x86, 0x82, 0x0f, + 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x07, 0x0b, 0x78, 0x4d, 0x14, 0x40, 0x5e, 0xc0, 0x2f, 0xc2, 0x91, + 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0x9d, 0x28, 0xf4, 0x7f, 0x33, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, + 0x6d, 0xe4, 0x9a, 0x3b, 0x4e, 0x14, 0xf6, 0x7f, 0x18, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, + 0x38, 0xf3, 0xfe, 0x5f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0xda, 0x8f, 0xc2, 0x7e, + 0x9f, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, 0x80, 0x7f, 0xc0, + 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xc7, 0x3c, 0xcd, 0xf9, + 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x8f, 0x75, 0x34, 0x11, 0xf0, 0x1f, 0xbe, 0xe1, 0xbd, + 0xe4, 0x7a, 0x98, 0xfc, 0x89, 0xf0, 0xcd, 0x3a, 0xb8, 0x62, 0x5f, 0xb1, 0xe9, 0x36, 0x1d, 0xfc, + 0x4b, 0x03, 0x4e, 0x55, 0xed, 0xe6, 0x75, 0xdb, 0x39, 0x4d, 0x0b, 0x4a, 0xa0, 0x18, 0x9d, 0x76, + 0x77, 0x11, 0x5e, 0x47, 0xd8, 0x76, 0x5b, 0x12, 0x7f, 0x9e, 0x38, 0xdc, 0x1e, 0x1d, 0x39, 0x7e, + 0x2d, 0xd7, 0xb1, 0x9a, 0x65, 0xb2, 0x03, 0xae, 0x1f, 0x87, 0x3e, 0xa2, 0xf8, 0x19, 0x72, 0xca, + 0xa4, 0xe4, 0x93, 0x37, 0x5e, 0x99, 0xea, 0x31, 0xd8, 0x98, 0x47, 0x5d, 0x20, 0x5b, 0x94, 0x09, + 0x81, 0xba, 0xe0, 0x51, 0xcf, 0xd2, 0x5d, 0x4a, 0x81, 0x7a, 0xd6, 0xa3, 0x2e, 0x92, 0xfd, 0x4a, + 0x55, 0xa0, 0x2e, 0x7a, 0xd4, 0x25, 0xb2, 0x27, 0x3f, 0x24, 0x50, 0x97, 0x3c, 0xea, 0x39, 0xb2, + 0x13, 0x9f, 0x14, 0xa8, 0xe7, 0x3c, 0xea, 0x79, 0xb2, 0x09, 0x3f, 0x2a, 0x50, 0xcf, 0x7b, 0xd4, + 0x0b, 0x64, 0xf3, 0x5d, 0x17, 0xa8, 0x17, 0x3c, 0xea, 0x45, 0x72, 0xa3, 0xe4, 0x88, 0x40, 0xbd, + 0xa8, 0x4f, 0xc2, 0x11, 0x3a, 0xf3, 0x79, 0x72, 0x52, 0x3b, 0xc2, 0xc8, 0x7c, 0xd0, 0xa7, 0x9f, + 0x21, 0xb7, 0x47, 0xfa, 0x44, 0xfa, 0x19, 0x9f, 0xbe, 0x40, 0xee, 0x51, 0x6b, 0x22, 0x7d, 0xc1, + 0xa7, 0x9f, 0x4d, 0x0f, 0x91, 0x1b, 0x34, 0x02, 0xfd, 0xac, 0x4f, 0x5f, 0x4c, 0x0f, 0xe3, 0xd8, + 0x15, 0xe9, 0x8b, 0x3e, 0x7d, 0x29, 0x3d, 0x32, 0xad, 0xcc, 0x0c, 0x8a, 0xf4, 0xa5, 0xcc, 0xfb, + 0x89, 0x7b, 0x2d, 0xdf, 0xbd, 0xe3, 0xa2, 0x7b, 0x3d, 0xc7, 0x8e, 0x8b, 0x8e, 0xf5, 0x5c, 0x3a, + 0x2e, 0xba, 0xd4, 0x73, 0xe6, 0xb8, 0xe8, 0x4c, 0xcf, 0x8d, 0xe3, 0xa2, 0x1b, 0x3d, 0x07, 0x8e, + 0x8b, 0x0e, 0xf4, 0x5c, 0x37, 0x2e, 0xba, 0xce, 0x73, 0xda, 0xb8, 0xe8, 0x34, 0xcf, 0x5d, 0xe3, + 0xa2, 0xbb, 0x3c, 0x47, 0xa5, 0x25, 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96, + 0x9c, 0xe3, 0xbb, 0x25, 0x2d, 0xb9, 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4, + 0x0a, 0xdf, 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x0a, 0xc9, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, + 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, + 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xe0, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, + 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x9a, 0x63, 0xbe, 0x7b, 0xc7, + 0x45, 0xf7, 0x86, 0xe6, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, + 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe5, 0x98, + 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0x5d, 0x73, + 0x4c, 0x0d, 0xe6, 0xd8, 0xdf, 0xaa, 0xa0, 0xd3, 0x1c, 0x5b, 0x27, 0x77, 0x7d, 0x98, 0x2b, 0x26, + 0xa5, 0x4c, 0xeb, 0xc3, 0xae, 0xd3, 0x7c, 0x97, 0x4c, 0x4a, 0xb9, 0x26, 0xd2, 0x17, 0x3c, 0x3a, + 0xcf, 0x36, 0x91, 0x7e, 0xd6, 0xa3, 0xf3, 0x7c, 0x13, 0xe9, 0x8b, 0x1e, 0x9d, 0x67, 0x9c, 0x48, + 0x5f, 0xf2, 0xe8, 0x3c, 0xe7, 0x44, 0xfa, 0x39, 0x8f, 0xce, 0xb3, 0x4e, 0xa4, 0x9f, 0xf7, 0xe8, + 0x3c, 0xef, 0x44, 0xfa, 0x05, 0x8f, 0xce, 0x33, 0x4f, 0xa4, 0x5f, 0xd4, 0xa7, 0xe5, 0xdc, 0xe3, + 0x0c, 0x9e, 0x6b, 0xa7, 0xe5, 0xec, 0x93, 0x38, 0xce, 0xf8, 0x1c, 0x3c, 0xff, 0x24, 0x8e, 0x05, + 0x9f, 0x83, 0x67, 0xa0, 0xc4, 0x71, 0x36, 0xf3, 0x21, 0xe2, 0x3e, 0x4b, 0x76, 0xdf, 0x84, 0xe4, + 0xbe, 0x44, 0xc0, 0x75, 0x13, 0x92, 0xeb, 0x12, 0x01, 0xb7, 0x4d, 0x48, 0x6e, 0x4b, 0x04, 0x5c, + 0x36, 0x21, 0xb9, 0x2c, 0x11, 0x70, 0xd7, 0x84, 0xe4, 0xae, 0x44, 0xc0, 0x55, 0x13, 0x92, 0xab, + 0x12, 0x01, 0x37, 0x4d, 0x48, 0x6e, 0x4a, 0x04, 0x5c, 0x34, 0x21, 0xb9, 0x28, 0x11, 0x70, 0xcf, + 0x84, 0xe4, 0x9e, 0x44, 0xc0, 0x35, 0xc7, 0x65, 0xd7, 0x24, 0x82, 0x6e, 0x39, 0x2e, 0xbb, 0x25, + 0x11, 0x74, 0xc9, 0x71, 0xd9, 0x25, 0x89, 0xa0, 0x3b, 0x8e, 0xcb, 0xee, 0x48, 0x04, 0x5d, 0xf1, + 0x93, 0x04, 0xef, 0x08, 0x37, 0xdc, 0xf6, 0x5e, 0xd5, 0xbd, 0xad, 0x8e, 0x70, 0x5e, 0x68, 0x1f, + 0x06, 0x16, 0xf4, 0x39, 0xd2, 0xb0, 0x06, 0x3b, 0x4e, 0x69, 0x05, 0x9b, 0x17, 0x1a, 0x8b, 0x00, + 0xc2, 0x0a, 0x47, 0x2c, 0xde, 0x56, 0x6f, 0x38, 0x2f, 0xb4, 0x19, 0xd1, 0xfa, 0x5d, 0x78, 0xdb, + 0x3b, 0xb6, 0x97, 0x12, 0xbc, 0x63, 0x63, 0xe6, 0x3f, 0x6c, 0xc7, 0x36, 0x1b, 0x6d, 0x72, 0xcf, + 0xd8, 0xb3, 0xd1, 0xc6, 0xee, 0x58, 0x75, 0xe2, 0x76, 0x70, 0xb3, 0xd1, 0xa6, 0xf5, 0x8c, 0xfa, + 0xd6, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x0a, 0x89, 0xe0, 0xc3, 0xf6, 0x5b, 0xf3, 0x42, 0x29, + 0x39, 0x6c, 0x04, 0xab, 0x87, 0x8e, 0xe0, 0xc3, 0x76, 0x5e, 0xf3, 0x42, 0x79, 0x39, 0x74, 0x04, + 0xbf, 0x0d, 0xfd, 0x10, 0x8b, 0x60, 0xdf, 0xfc, 0x87, 0xed, 0x87, 0x66, 0xa3, 0x4d, 0x1e, 0x1a, + 0xc1, 0xea, 0x21, 0x22, 0x38, 0x4e, 0x7f, 0x34, 0x1b, 0x6d, 0xda, 0xf0, 0x08, 0xbe, 0xed, 0x6e, + 0xe6, 0x53, 0x0a, 0x8c, 0x96, 0xeb, 0xb5, 0x52, 0xf3, 0x3a, 0xaa, 0xd5, 0x50, 0x8d, 0xd9, 0x71, + 0x5e, 0xa8, 0x04, 0x5d, 0x5c, 0xfd, 0xf2, 0x2b, 0x53, 0xbe, 0x85, 0x97, 0x20, 0x45, 0x6d, 0x3a, + 0x3f, 0x9f, 0xbe, 0xa1, 0x44, 0x54, 0x38, 0x8f, 0x55, 0x3f, 0xc1, 0x61, 0x67, 0xe6, 0xd3, 0xff, + 0xac, 0x04, 0xaa, 0x9c, 0x37, 0x9c, 0xf9, 0x08, 0xd1, 0xd0, 0xba, 0x6d, 0x0d, 0x4f, 0xc7, 0xd2, + 0x30, 0xa0, 0xdb, 0x5d, 0x1d, 0xba, 0x05, 0xb4, 0xda, 0x83, 0x91, 0x72, 0xbd, 0x56, 0x26, 0x7f, + 0xc1, 0x1b, 0x47, 0x25, 0xca, 0x23, 0xd5, 0x83, 0x79, 0x21, 0x2c, 0x83, 0x08, 0x2f, 0xa4, 0xc5, + 0x1a, 0x91, 0xa9, 0xe3, 0xc7, 0x5a, 0xc2, 0x63, 0x67, 0xbb, 0x3d, 0xd6, 0xaf, 0xec, 0xde, 0x03, + 0x67, 0xbb, 0x3d, 0xd0, 0xcf, 0x21, 0xef, 0x51, 0xcf, 0xf0, 0xc5, 0x99, 0x5e, 0xba, 0xd1, 0x8f, + 0x43, 0x62, 0x99, 0x5e, 0x08, 0x1e, 0xcc, 0x0f, 0x62, 0xa5, 0xbe, 0xfd, 0xca, 0x54, 0x72, 0x6b, + 0xaf, 0x5e, 0x33, 0x12, 0xcb, 0x35, 0xfd, 0x2a, 0xf4, 0xbe, 0x87, 0xfd, 0x1d, 0x1c, 0x66, 0x58, + 0x64, 0x0c, 0x0f, 0x74, 0xdd, 0x23, 0xc2, 0x0f, 0x3e, 0x4d, 0xb7, 0x13, 0xe7, 0xb6, 0xea, 0x96, + 0x7b, 0x66, 0xe1, 0x82, 0x41, 0x45, 0x64, 0x7e, 0x11, 0x80, 0x3e, 0xb3, 0x68, 0x3a, 0xbb, 0x7a, + 0x99, 0x4b, 0xa6, 0x8f, 0xbe, 0xf0, 0xed, 0x57, 0xa6, 0x16, 0xe3, 0x48, 0x7d, 0xb0, 0x66, 0x3a, + 0xbb, 0x0f, 0xba, 0xfb, 0x2d, 0x34, 0x97, 0xdf, 0x77, 0x91, 0xc3, 0xa5, 0xb7, 0xf8, 0xaa, 0xc7, + 0xe6, 0x95, 0x0e, 0xcc, 0x2b, 0x25, 0xcc, 0xe9, 0xb2, 0x38, 0xa7, 0xf9, 0x37, 0x3b, 0x9f, 0x67, + 0xf8, 0x22, 0x21, 0x59, 0x52, 0x8d, 0xb2, 0xa4, 0x7a, 0xbb, 0x96, 0x6c, 0xf1, 0xfa, 0x28, 0xcd, + 0x55, 0x3d, 0x68, 0xae, 0xea, 0xed, 0xcc, 0xf5, 0x47, 0x34, 0x5b, 0xbd, 0x7c, 0xda, 0xb2, 0xe8, + 0x65, 0xc4, 0x9f, 0xaf, 0xbd, 0xa0, 0xb7, 0xb4, 0x0b, 0xc8, 0x26, 0x6f, 0xbc, 0x30, 0xa5, 0x64, + 0x3e, 0x95, 0xe0, 0x33, 0xa7, 0x89, 0xf4, 0xe6, 0x66, 0xfe, 0xf3, 0xd2, 0x53, 0xbd, 0x1d, 0x16, + 0x7a, 0x5e, 0x81, 0xf1, 0x8e, 0x4a, 0x4e, 0xcd, 0xf4, 0xd6, 0x96, 0x73, 0xeb, 0xb0, 0xe5, 0x9c, + 0x29, 0xf8, 0x15, 0x05, 0x8e, 0x4a, 0xe5, 0x95, 0xaa, 0x77, 0x5a, 0x52, 0xef, 0x58, 0xe7, 0x93, + 0x08, 0x63, 0x40, 0xbb, 0xa0, 0x7b, 0x25, 0x40, 0x40, 0xb2, 0xe7, 0xf7, 0x45, 0xc9, 0xef, 0xc7, + 0x3d, 0x40, 0x88, 0xb9, 0x78, 0x04, 0x30, 0xb5, 0x6d, 0x48, 0x6e, 0xb6, 0x11, 0xd2, 0x27, 0x21, + 0xb1, 0xd6, 0x66, 0x1a, 0x0e, 0x53, 0xfc, 0x5a, 0x3b, 0xdf, 0x36, 0xad, 0xea, 0xae, 0x91, 0x58, + 0x6b, 0xeb, 0x27, 0x40, 0xcd, 0xb1, 0x5f, 0x1a, 0x18, 0x58, 0x18, 0xa1, 0x0c, 0x39, 0xab, 0xc6, + 0x38, 0x30, 0x4d, 0x9f, 0x84, 0xe4, 0x0a, 0x32, 0xb7, 0x99, 0x12, 0x40, 0x79, 0xf0, 0x88, 0x41, + 0xc6, 0xd9, 0x03, 0x1f, 0x87, 0x14, 0x17, 0xac, 0x9f, 0xc4, 0x88, 0x6d, 0x97, 0x3d, 0x96, 0x21, + 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0x54, 0xfd, 0x14, 0xf4, 0x1a, 0xf5, 0x9d, 0x5d, 0x97, 0x3d, 0xbc, + 0x93, 0x8d, 0x92, 0x33, 0xd7, 0xa0, 0xdf, 0xd3, 0xe8, 0x2d, 0x16, 0x5d, 0xa4, 0x53, 0xd3, 0x27, + 0x82, 0xeb, 0x09, 0xdf, 0xb7, 0xa4, 0x43, 0xfa, 0x34, 0xa4, 0x36, 0xdc, 0xb6, 0x5f, 0xf4, 0x79, + 0x47, 0xea, 0x8d, 0x66, 0xde, 0xaf, 0x40, 0xaa, 0x88, 0x50, 0x8b, 0x18, 0xfc, 0x5e, 0x48, 0x16, + 0xed, 0xa7, 0x2d, 0xa6, 0xe0, 0x28, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x12, 0xb2, 0x7e, 0x6f, 0xd0, + 0xee, 0x63, 0x9e, 0xdd, 0x03, 0x7c, 0xc4, 0xf6, 0x19, 0xc1, 0xf6, 0xcc, 0x81, 0x98, 0xa9, 0xc3, + 0xfe, 0xe7, 0x61, 0x20, 0xf0, 0x14, 0x7d, 0x86, 0xa9, 0x91, 0x90, 0x81, 0x41, 0x5b, 0x61, 0x8e, + 0x0c, 0x82, 0x21, 0xe1, 0xc1, 0x18, 0x1a, 0x30, 0x71, 0x17, 0x28, 0x31, 0xf3, 0xac, 0x68, 0xe6, + 0x70, 0x56, 0x66, 0xea, 0x79, 0x6a, 0x23, 0x62, 0xee, 0x93, 0x34, 0x38, 0xbb, 0x3b, 0x11, 0x7f, + 0xce, 0xf4, 0x82, 0x5a, 0xae, 0x37, 0x32, 0x0f, 0x01, 0xd0, 0x94, 0x2f, 0x59, 0x7b, 0x4d, 0x29, + 0xeb, 0x86, 0xb9, 0x81, 0x37, 0x77, 0xd1, 0x26, 0x72, 0x08, 0x8b, 0xd8, 0x4f, 0xe1, 0x02, 0x03, + 0x34, 0xc5, 0x08, 0xfe, 0xfe, 0x48, 0x7c, 0x68, 0x27, 0x86, 0x59, 0xd3, 0x94, 0xf5, 0x1a, 0x72, + 0x73, 0x96, 0xed, 0xee, 0xa2, 0xb6, 0x84, 0x58, 0xd0, 0xcf, 0x0a, 0x09, 0x3b, 0xbc, 0x70, 0x97, + 0x87, 0xe8, 0x0a, 0x3a, 0x9b, 0xf9, 0x12, 0x51, 0x10, 0xb7, 0x02, 0x1d, 0x13, 0x54, 0x63, 0x4c, + 0x50, 0x3f, 0x27, 0xf4, 0x6f, 0x07, 0xa8, 0x29, 0xbd, 0x5a, 0x5e, 0x14, 0xde, 0x73, 0x0e, 0x56, + 0x56, 0x7c, 0xc7, 0xe4, 0x36, 0xe5, 0x2a, 0xdf, 0x1f, 0xa9, 0x72, 0x97, 0xee, 0xf6, 0xb0, 0x36, + 0x55, 0xe3, 0xda, 0xf4, 0xeb, 0x5e, 0xc7, 0x41, 0x7f, 0xb3, 0x81, 0xfc, 0x44, 0x88, 0xfe, 0x40, + 0xa4, 0xef, 0xb3, 0x4a, 0xc1, 0x53, 0x75, 0x31, 0xae, 0xfb, 0xb3, 0x89, 0x7c, 0xde, 0x53, 0xf7, + 0xfc, 0x21, 0x42, 0x20, 0x9b, 0x28, 0x14, 0xbc, 0xb2, 0x9d, 0xfa, 0xd0, 0x0b, 0x53, 0xca, 0x8b, + 0x2f, 0x4c, 0xf5, 0x64, 0x3e, 0xaf, 0xc0, 0x28, 0xe3, 0x0c, 0x04, 0xee, 0x83, 0x92, 0xf2, 0x77, + 0xf0, 0x9a, 0x11, 0x66, 0x81, 0x9f, 0x5a, 0xf0, 0x7e, 0x53, 0x81, 0x74, 0x87, 0xae, 0xdc, 0xde, + 0xf3, 0xb1, 0x54, 0xce, 0x2a, 0xa5, 0x9f, 0xbd, 0xcd, 0xaf, 0x41, 0xef, 0x66, 0xbd, 0x89, 0xda, + 0x78, 0x25, 0xc0, 0x1f, 0xa8, 0xca, 0xfc, 0x30, 0x87, 0x0e, 0x71, 0x1a, 0x55, 0x4e, 0xa0, 0x2d, + 0xe8, 0x69, 0x48, 0x16, 0x4d, 0xd7, 0x24, 0x1a, 0x0c, 0x7a, 0xf5, 0xd5, 0x74, 0xcd, 0xcc, 0x59, + 0x18, 0x5c, 0xdd, 0x27, 0x37, 0x66, 0x6a, 0xe4, 0x36, 0x88, 0xd8, 0xfd, 0xf1, 0x7e, 0xf5, 0xcc, + 0x6c, 0x6f, 0xaa, 0xa6, 0xdd, 0x50, 0xb2, 0x49, 0xa2, 0xcf, 0x53, 0x30, 0xbc, 0x86, 0xd5, 0x26, + 0x38, 0x01, 0x46, 0x9f, 0xae, 0x7a, 0x93, 0x97, 0x9a, 0x32, 0xd5, 0x6f, 0xca, 0xa6, 0x41, 0x59, + 0x15, 0x5b, 0xa7, 0xa0, 0x1e, 0x86, 0xb2, 0x3a, 0x9b, 0x4c, 0x0d, 0x6b, 0xa3, 0xb3, 0xc9, 0x14, + 0x68, 0x43, 0xec, 0xb9, 0xff, 0xa8, 0x82, 0x46, 0x5b, 0x9d, 0x22, 0xda, 0xae, 0x5b, 0x75, 0xb7, + 0xb3, 0x5f, 0xf5, 0x34, 0xd6, 0x1f, 0x81, 0x7e, 0x6c, 0xd2, 0xcb, 0xec, 0x97, 0xb6, 0xb0, 0xe9, + 0x4f, 0xb0, 0x16, 0x45, 0x12, 0xc1, 0x06, 0x48, 0xe8, 0xf8, 0x18, 0xfd, 0x32, 0xa8, 0xe5, 0xf2, + 0x2a, 0x5b, 0xdc, 0x16, 0x0f, 0x84, 0xb2, 0x0b, 0x37, 0xec, 0x1b, 0x1b, 0x73, 0x76, 0x0c, 0x2c, + 0x40, 0x5f, 0x84, 0x44, 0x79, 0x95, 0x35, 0xbc, 0x27, 0xe3, 0x88, 0x31, 0x12, 0xe5, 0xd5, 0x89, + 0xbf, 0x53, 0x60, 0x48, 0x18, 0xd5, 0x33, 0x30, 0x48, 0x07, 0x02, 0xd3, 0xed, 0x33, 0x84, 0x31, + 0xae, 0x73, 0xe2, 0x36, 0x75, 0x9e, 0xc8, 0xc1, 0x88, 0x34, 0xae, 0xcf, 0x81, 0x1e, 0x1c, 0x62, + 0x4a, 0xd0, 0x5f, 0x29, 0x0a, 0xa1, 0x64, 0xee, 0x06, 0xf0, 0xed, 0xea, 0xfd, 0xb8, 0x4e, 0xb9, + 0xb4, 0xb1, 0x59, 0x2a, 0x6a, 0x4a, 0xe6, 0xab, 0x0a, 0x0c, 0xb0, 0xb6, 0xb5, 0x6a, 0xb7, 0x90, + 0x9e, 0x07, 0x25, 0xc7, 0xe2, 0xe1, 0xcd, 0xe9, 0xad, 0xe4, 0xf4, 0xd3, 0xa0, 0xe4, 0xe3, 0xbb, + 0x5a, 0xc9, 0xeb, 0x0b, 0xa0, 0x14, 0x98, 0x83, 0xe3, 0x79, 0x46, 0x29, 0x64, 0x7e, 0xa0, 0xc2, + 0x58, 0xb0, 0x8d, 0xe6, 0xf5, 0xe4, 0x84, 0xf8, 0xde, 0x94, 0xed, 0x3f, 0xb3, 0x70, 0x76, 0x71, + 0x0e, 0xff, 0xe3, 0x85, 0xe4, 0x09, 0xf1, 0x15, 0xaa, 0x93, 0xa5, 0xe3, 0x9a, 0x48, 0x36, 0x19, + 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, 0x6a, 0xc7, 0x35, 0x11, 0x81, 0xda, + 0x71, 0x14, 0x20, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0x8e, 0x6b, 0x22, 0x02, 0xb5, 0xf3, 0x9a, + 0x08, 0x23, 0x77, 0xbd, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, 0x88, 0xf4, 0xce, 0x6b, 0x22, 0xd9, + 0xa4, 0xdb, 0xde, 0x43, 0xdd, 0x0f, 0x1d, 0x44, 0xfc, 0x41, 0xef, 0x80, 0x7e, 0x01, 0x5e, 0x83, + 0x11, 0xba, 0x1f, 0x51, 0xb0, 0x2d, 0xd7, 0xac, 0x5b, 0xa8, 0xad, 0xbf, 0x13, 0x06, 0xe9, 0x10, + 0x7d, 0xcb, 0x09, 0x7b, 0x0b, 0xa4, 0x74, 0x56, 0x6e, 0x05, 0xee, 0xcc, 0x4f, 0x92, 0x30, 0x4e, + 0x07, 0xca, 0x66, 0x13, 0x09, 0x97, 0x8c, 0x4e, 0x49, 0x47, 0x4a, 0xc3, 0x18, 0x7e, 0xeb, 0x95, + 0x29, 0x3a, 0x9a, 0xf3, 0x82, 0xe9, 0x94, 0x74, 0xb8, 0x24, 0xf2, 0xf9, 0xeb, 0xcf, 0x29, 0xe9, + 0xe2, 0x91, 0xc8, 0xe7, 0x2d, 0x37, 0x1e, 0x1f, 0xbf, 0x82, 0x24, 0xf2, 0x15, 0xbd, 0x28, 0x3b, + 0x25, 0x5d, 0x46, 0x12, 0xf9, 0x4a, 0x5e, 0xbc, 0x9d, 0x92, 0x8e, 0x9e, 0x44, 0xbe, 0xcb, 0x5e, + 0xe4, 0x9d, 0x92, 0x0e, 0xa1, 0x44, 0xbe, 0x2b, 0x5e, 0x0c, 0x9e, 0x92, 0xae, 0x2a, 0x89, 0x7c, + 0x8f, 0x7a, 0xd1, 0x78, 0x4a, 0xba, 0xb4, 0x24, 0xf2, 0x2d, 0x7b, 0x71, 0x39, 0x23, 0x5f, 0x5f, + 0x12, 0x19, 0xaf, 0xfa, 0x11, 0x3a, 0x23, 0x5f, 0x64, 0x12, 0x39, 0xdf, 0xe5, 0xc7, 0xea, 0x8c, + 0x7c, 0xa5, 0x49, 0xe4, 0x5c, 0xf1, 0xa3, 0x76, 0x46, 0x3e, 0x2a, 0x13, 0x39, 0x57, 0xfd, 0xf8, + 0x9d, 0x91, 0x0f, 0xcd, 0x44, 0xce, 0xb2, 0x1f, 0xc9, 0x33, 0xf2, 0xf1, 0x99, 0xc8, 0xb9, 0xe6, + 0xef, 0xa1, 0x7f, 0x43, 0x0a, 0xbf, 0xc0, 0x25, 0xa8, 0x8c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0x19, + 0x29, 0xf4, 0x20, 0x24, 0xec, 0x32, 0x52, 0xd8, 0x41, 0x48, 0xc8, 0x65, 0xa4, 0x90, 0x83, 0x90, + 0x70, 0xcb, 0x48, 0xe1, 0x06, 0x21, 0xa1, 0x96, 0x91, 0x42, 0x0d, 0x42, 0xc2, 0x2c, 0x23, 0x85, + 0x19, 0x84, 0x84, 0x58, 0x46, 0x0a, 0x31, 0x08, 0x09, 0xaf, 0x8c, 0x14, 0x5e, 0x10, 0x12, 0x5a, + 0x27, 0xe5, 0xd0, 0x82, 0xb0, 0xb0, 0x3a, 0x29, 0x87, 0x15, 0x84, 0x85, 0xd4, 0x3d, 0x72, 0x48, + 0xf5, 0xdf, 0x7a, 0x65, 0xaa, 0x17, 0x0f, 0x05, 0xa2, 0xe9, 0xa4, 0x1c, 0x4d, 0x10, 0x16, 0x49, + 0x27, 0xe5, 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x29, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x4b, 0x72, 0x04, + 0xf9, 0x57, 0x7c, 0x32, 0xd2, 0x89, 0x62, 0x54, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, + 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, + 0x20, 0x35, 0x4e, 0x04, 0xa9, 0xb1, 0x22, 0x48, 0xed, 0x16, 0x41, 0x27, 0xe5, 0x0b, 0x0f, 0x10, + 0x56, 0x90, 0x4e, 0xca, 0x27, 0x9f, 0xd1, 0x21, 0xa4, 0xc6, 0x0a, 0x21, 0xb5, 0x5b, 0x08, 0x7d, + 0x43, 0x85, 0x31, 0x21, 0x84, 0xd8, 0xf1, 0xd0, 0x5b, 0x55, 0x81, 0xce, 0xc5, 0xb8, 0x5f, 0x11, + 0x16, 0x53, 0xe7, 0x62, 0x9c, 0x51, 0x1f, 0x14, 0x67, 0x9d, 0x55, 0xa8, 0x14, 0xa3, 0x0a, 0x5d, + 0xf6, 0x62, 0xe8, 0x5c, 0x8c, 0x7b, 0x17, 0x9d, 0xb1, 0x77, 0xe1, 0xa0, 0x22, 0xf0, 0x68, 0xac, + 0x22, 0xb0, 0x1c, 0xab, 0x08, 0x5c, 0xf5, 0x3d, 0xf8, 0xc1, 0x04, 0x1c, 0xf5, 0x3d, 0x48, 0x3f, + 0x91, 0x5f, 0x44, 0xca, 0x04, 0x4e, 0xa8, 0x74, 0x7e, 0x6a, 0x13, 0x70, 0x63, 0x62, 0xb9, 0xa6, + 0xaf, 0x8b, 0x67, 0x55, 0xd9, 0xc3, 0x9e, 0xdf, 0x04, 0x3c, 0xce, 0xf6, 0x42, 0x4f, 0x82, 0xba, + 0x5c, 0x73, 0x48, 0xb5, 0x08, 0x7b, 0x6c, 0xc1, 0xc0, 0x64, 0xdd, 0x80, 0x3e, 0xc2, 0xee, 0x10, + 0xf7, 0xde, 0xce, 0x83, 0x8b, 0x06, 0x93, 0x94, 0x79, 0x49, 0x81, 0x69, 0x21, 0x94, 0xdf, 0x9a, + 0x13, 0x83, 0x4b, 0xb1, 0x4e, 0x0c, 0x84, 0x04, 0xf1, 0x4f, 0x0f, 0xee, 0xeb, 0x3c, 0xa8, 0x0e, + 0x66, 0x89, 0x7c, 0x92, 0xf0, 0x4b, 0x30, 0xec, 0xcf, 0x80, 0xbc, 0xb2, 0x2d, 0x45, 0x6f, 0x66, + 0x86, 0xa5, 0xe6, 0x92, 0xb4, 0x89, 0x76, 0x20, 0xcc, 0xcb, 0xd6, 0x4c, 0x16, 0x46, 0xca, 0xe2, + 0x9f, 0xee, 0x44, 0xed, 0x45, 0xa4, 0x70, 0x6b, 0x7e, 0xe3, 0xd3, 0x53, 0x3d, 0x99, 0x07, 0x60, + 0x30, 0xf8, 0xd7, 0x39, 0x12, 0xb0, 0x9f, 0x03, 0xb3, 0xc9, 0x97, 0x31, 0xf7, 0x1f, 0x28, 0x70, + 0x47, 0x90, 0xfd, 0xb1, 0xba, 0xbb, 0xbb, 0x6c, 0xe1, 0x9e, 0xfe, 0x21, 0x48, 0x21, 0xe6, 0x38, + 0xf6, 0xe3, 0x26, 0xec, 0x35, 0x32, 0x94, 0x7d, 0x8e, 0xfc, 0x6b, 0x78, 0x10, 0x69, 0x13, 0x84, + 0x3f, 0x76, 0x61, 0xe2, 0x5e, 0xe8, 0xa5, 0xf2, 0x45, 0xbd, 0x86, 0x24, 0xbd, 0x3e, 0x1b, 0xa2, + 0x17, 0x89, 0x23, 0xfd, 0xaa, 0xa0, 0x57, 0xe0, 0x6d, 0x35, 0x94, 0x7d, 0x8e, 0x07, 0x5f, 0x3e, + 0x85, 0xfb, 0x3f, 0x12, 0x51, 0xd1, 0x4a, 0xce, 0x40, 0xaa, 0x24, 0xf3, 0x84, 0xeb, 0x59, 0x84, + 0x64, 0xd9, 0xae, 0x91, 0x9f, 0x5d, 0x21, 0x3f, 0x8f, 0xcb, 0x8c, 0xcc, 0x7e, 0x2b, 0xf7, 0x14, + 0xa4, 0x0a, 0xbb, 0xf5, 0x46, 0xad, 0x8d, 0x2c, 0x76, 0x64, 0xcf, 0x76, 0xd0, 0x31, 0xc6, 0xf0, + 0x68, 0x99, 0x02, 0x8c, 0x96, 0x6d, 0x2b, 0xbf, 0xef, 0x06, 0xeb, 0xc6, 0x9c, 0x94, 0x22, 0xec, + 0xc8, 0x87, 0xfc, 0xbd, 0x07, 0x66, 0xc8, 0xf7, 0x7e, 0xfb, 0x95, 0x29, 0x65, 0xd3, 0xdb, 0x3e, + 0x5f, 0x85, 0x63, 0x2c, 0x7d, 0x3a, 0x44, 0x2d, 0x44, 0x89, 0xea, 0x67, 0xc7, 0xd4, 0x01, 0x71, + 0xcb, 0x58, 0x9c, 0x15, 0x2a, 0xee, 0xcd, 0x69, 0x86, 0x9b, 0xa2, 0x03, 0x35, 0x53, 0x0f, 0xa5, + 0x59, 0xa8, 0xb8, 0xb9, 0x28, 0x71, 0x92, 0x66, 0xf7, 0x40, 0xbf, 0x47, 0x0b, 0x44, 0x43, 0x30, + 0x53, 0x16, 0x66, 0x33, 0x30, 0x10, 0x48, 0x58, 0xbd, 0x17, 0x94, 0x9c, 0xd6, 0x83, 0xff, 0xcb, + 0x6b, 0x0a, 0xfe, 0xaf, 0xa0, 0x25, 0x66, 0xef, 0x85, 0x11, 0x69, 0xfb, 0x12, 0x53, 0x8a, 0x1a, + 0xe0, 0xff, 0x4a, 0xda, 0xc0, 0x44, 0xf2, 0x43, 0x7f, 0x3c, 0xd9, 0x33, 0x7b, 0x09, 0xf4, 0xce, + 0x8d, 0x4e, 0xbd, 0x0f, 0x12, 0x39, 0x2c, 0xf2, 0x18, 0x24, 0xf2, 0x79, 0x4d, 0x99, 0x18, 0xf9, + 0xf5, 0x4f, 0x4e, 0x0f, 0xe4, 0xc9, 0x9f, 0x1e, 0x5f, 0x43, 0x6e, 0x3e, 0xcf, 0xc0, 0x0f, 0xc3, + 0x1d, 0xa1, 0x1b, 0xa5, 0x18, 0x5f, 0x28, 0x50, 0x7c, 0xb1, 0xd8, 0x81, 0x2f, 0x16, 0x09, 0x5e, + 0xc9, 0xf2, 0x03, 0xe7, 0x9c, 0x1e, 0xb2, 0xc9, 0x98, 0xae, 0x05, 0x0e, 0xb8, 0x73, 0xd9, 0x87, + 0x19, 0x6f, 0x3e, 0x94, 0x17, 0x45, 0x1c, 0x58, 0xe7, 0xb3, 0x05, 0x86, 0x2f, 0x84, 0xe2, 0xb7, + 0xa5, 0x53, 0x55, 0x71, 0x85, 0x60, 0x42, 0x0a, 0x9e, 0xc2, 0xc5, 0x50, 0x21, 0xbb, 0x81, 0xbb, + 0xee, 0x45, 0x4f, 0xe1, 0x52, 0x28, 0x6f, 0x3d, 0xe2, 0xce, 0x57, 0x29, 0x7b, 0x9a, 0x2d, 0xf2, + 0xb9, 0x33, 0xfa, 0x1d, 0x3c, 0x47, 0x85, 0x0a, 0xcc, 0x0c, 0xc4, 0xb9, 0xb2, 0x05, 0x06, 0xc8, + 0x77, 0x05, 0x74, 0xb7, 0x12, 0x47, 0x66, 0x1f, 0x65, 0x42, 0x0a, 0x5d, 0x85, 0x44, 0x98, 0x8a, + 0xc3, 0xf3, 0x9b, 0x37, 0x6e, 0x4e, 0xf6, 0xbc, 0x7c, 0x73, 0xb2, 0xe7, 0x5f, 0x6f, 0x4e, 0xf6, + 0x7c, 0xe7, 0xe6, 0xa4, 0xf2, 0xbd, 0x9b, 0x93, 0xca, 0xf7, 0x6f, 0x4e, 0x2a, 0x3f, 0xbe, 0x39, + 0xa9, 0x3c, 0x77, 0x6b, 0x52, 0x79, 0xf1, 0xd6, 0xa4, 0xf2, 0xa5, 0x5b, 0x93, 0xca, 0xd7, 0x6e, + 0x4d, 0x2a, 0x2f, 0xdd, 0x9a, 0x54, 0x6e, 0xdc, 0x9a, 0xec, 0x79, 0xf9, 0xd6, 0x64, 0xcf, 0x77, + 0x6e, 0x4d, 0x2a, 0xdf, 0xbb, 0x35, 0xd9, 0xf3, 0xfd, 0x5b, 0x93, 0xca, 0x8f, 0x6f, 0x4d, 0xf6, + 0x3c, 0xf7, 0xea, 0xa4, 0xf2, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xa5, 0x0b, 0x2b, 0x87, 0xb2, 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12239,18 +12584,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12292,8 +12639,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12301,8 +12650,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12357,18 +12706,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12422,8 +12773,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12431,8 +12784,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15031,56 +15384,500 @@ func (this *Node) Equal(that interface{}) bool { } return true } +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField1() float64 { - return this.Field1 + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField2() float32 { - return this.Field2 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField3() int32 { - return this.Field3 + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField4() int64 { - return this.Field4 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil } +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true } +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 + GetField3() int32 + GetField4() int64 + GetField5() uint32 + GetField6() uint64 + GetField7() int32 + GetField8() int64 + GetField9() uint32 + GetField10() int32 + GetField11() uint64 + GetField12() int64 + GetField13() bool + GetField14() string + GetField15() []byte +} + +func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNativeFromFace(this) +} + +func (this *NidOptNative) GetField1() float64 { + return this.Field1 +} + +func (this *NidOptNative) GetField2() float32 { + return this.Field2 +} + +func (this *NidOptNative) GetField3() int32 { + return this.Field3 +} + +func (this *NidOptNative) GetField4() int64 { + return this.Field4 +} + +func (this *NidOptNative) GetField5() uint32 { + return this.Field5 +} + +func (this *NidOptNative) GetField6() uint64 { + return this.Field6 } func (this *NidOptNative) GetField7() int32 { @@ -17694,6 +18491,144 @@ func NewNodeFromFace(that NodeFace) *Node { return this } +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) +} + +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) +} + +func (this *NinRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type ProtoTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField2() *string +} + +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) +} + +func (this *ProtoType) GetField2() *string { + return this.Field2 +} + +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() + return this +} + func (this *NidOptNative) GoString() string { if this == nil { return "nil" @@ -18716,9 +19651,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18740,9 +19673,7 @@ func (this *OtherExtenable) GoString() string { if this.M != nil { s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19249,6 +20180,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19257,11 +20276,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19271,7 +20291,7 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -19313,7 +20333,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -19404,7 +20424,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -19541,7 +20561,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19682,7 +20702,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19970,7 +20990,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -20023,7 +21043,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -20113,7 +21133,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20204,7 +21224,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20415,7 +21435,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -20460,7 +21480,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -20545,7 +21565,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -20791,8 +21811,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20835,8 +21855,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20888,7 +21908,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -20994,7 +22014,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -21059,7 +22079,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -21150,7 +22170,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -21287,7 +22307,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -21352,7 +22372,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -21449,8 +22469,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21462,7 +22482,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -21480,7 +22500,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -21505,7 +22525,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -21528,7 +22548,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -21544,6 +22564,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -21563,14 +22659,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -21578,43 +22674,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -22725,9 +23821,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22747,9 +23841,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23259,6 +24351,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -23885,7 +25057,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -23899,7 +25071,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24131,7 +25303,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24203,6 +25375,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -24468,8 +25706,8 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { } return true } -func (m *NidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -24481,7 +25719,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24504,7 +25742,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field1 = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 5 { @@ -24513,7 +25751,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field2 = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 3: if wireType != 0 { @@ -24527,7 +25765,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field3 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24546,7 +25784,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field4 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -24565,7 +25803,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field5 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -24584,7 +25822,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24603,7 +25841,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24624,7 +25862,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24640,7 +25878,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field9 = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + m.Field9 = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 10: if wireType != 5 { @@ -24649,7 +25887,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field10 = *(*int32)(unsafe.Pointer(&data[iNdEx])) + m.Field10 = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 11: if wireType != 1 { @@ -24658,7 +25896,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field11 = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + m.Field11 = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 12: if wireType != 1 { @@ -24667,7 +25905,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field12 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Field12 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 13: if wireType != 0 { @@ -24681,7 +25919,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -24701,7 +25939,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24716,7 +25954,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -24730,7 +25968,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -24744,14 +25982,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -24761,7 +25999,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -24771,8 +26009,8 @@ func (m *NidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -24784,7 +26022,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24808,7 +26046,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -24819,7 +26057,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -24834,7 +26072,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24854,7 +26092,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -24874,7 +26112,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -24894,7 +26132,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24914,7 +26152,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -24935,7 +26173,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -24953,7 +26191,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = &v case 10: @@ -24964,7 +26202,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = &v case 11: @@ -24975,7 +26213,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = &v case 12: @@ -24986,7 +26224,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = &v case 13: @@ -25001,7 +26239,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25022,7 +26260,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25037,7 +26275,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -25052,7 +26290,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25066,14 +26304,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -25083,7 +26321,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25093,8 +26331,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25106,7 +26344,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25123,213 +26361,707 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - m.Field4 = append(m.Field4, v) case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - m.Field5 = append(m.Field5, v) case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) case 8: - if wireType != 0 { + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + } + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) + } + case 11: + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -25342,7 +27074,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25357,7 +27089,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -25371,7 +27103,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25386,11 +27118,11 @@ func (m *NidRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -25400,7 +27132,7 @@ func (m *NidRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25410,8 +27142,8 @@ func (m *NidRepNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25423,7 +27155,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25440,213 +27172,707 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -25659,7 +27885,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25674,7 +27900,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -25688,7 +27914,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25703,11 +27929,11 @@ func (m *NinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -25717,7 +27943,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -25727,8 +27953,8 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *NidRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -25740,7 +27966,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -25757,7 +27983,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25766,7 +28000,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25785,23 +28019,23 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = append(m.Field1, v) } - } else if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25810,7 +28044,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25829,23 +28063,32 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = append(m.Field2, v) } - } else if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25854,7 +28097,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25877,7 +28120,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -25886,8 +28129,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -25895,19 +28142,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25916,7 +28159,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -25939,7 +28182,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -25948,8 +28191,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -25957,19 +28204,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -25978,7 +28221,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26001,7 +28244,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -26010,8 +28253,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26019,19 +28266,15 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26040,7 +28283,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26063,7 +28306,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26072,8 +28315,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26081,19 +28328,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26102,7 +28346,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26125,7 +28369,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26135,8 +28379,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26144,20 +28392,16 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26166,7 +28410,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26189,7 +28433,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26199,29 +28443,19 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26230,7 +28464,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26249,23 +28483,23 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26274,7 +28508,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26293,23 +28527,23 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26318,7 +28552,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26337,23 +28571,23 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26362,7 +28596,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26381,23 +28615,32 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26406,7 +28649,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26429,7 +28672,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26438,29 +28681,12 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -26470,7 +28696,7 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -26480,8 +28706,8 @@ func (m *NidRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -26493,7 +28719,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26510,7 +28736,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26519,7 +28753,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26538,23 +28772,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = append(m.Field1, v) } - } else if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26563,7 +28797,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26582,23 +28816,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = append(m.Field2, v) } - } else if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26607,7 +28850,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26630,7 +28873,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26639,8 +28882,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26648,19 +28895,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26669,7 +28912,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26692,7 +28935,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -26701,8 +28944,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26710,19 +28957,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26731,7 +28974,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26754,7 +28997,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -26763,8 +29006,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26772,19 +29019,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26793,7 +29036,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26816,7 +29059,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26825,8 +29068,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26834,19 +29081,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26855,7 +29099,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26878,7 +29122,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -26888,8 +29132,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -26897,20 +29145,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26919,7 +29163,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -26942,7 +29186,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -26952,29 +29196,19 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -26983,7 +29217,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27002,23 +29236,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27027,7 +29261,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27046,23 +29280,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27071,7 +29305,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27090,23 +29324,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27115,7 +29349,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27134,23 +29368,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -27159,7 +29402,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27182,38 +29425,21 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Field13 = append(m.Field13, bool(v != 0)) } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -27223,7 +29449,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -27233,8 +29459,8 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NidOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -27246,7 +29472,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27269,7 +29495,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Field1 = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 5 { @@ -27278,7 +29504,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Field2 = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 3: if wireType != 2 { @@ -27292,7 +29518,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27306,7 +29532,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27322,7 +29548,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27336,7 +29562,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27352,7 +29578,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27371,7 +29597,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -27392,7 +29618,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27406,7 +29632,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27422,7 +29648,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27442,7 +29668,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27457,7 +29683,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -27471,7 +29697,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27485,14 +29711,14 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -27502,7 +29728,7 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -27512,8 +29738,8 @@ func (m *NidOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -27525,7 +29751,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27549,7 +29775,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -27560,7 +29786,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -27575,7 +29801,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27592,7 +29818,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27608,7 +29834,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27625,7 +29851,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27641,7 +29867,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27661,7 +29887,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -27682,7 +29908,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27699,7 +29925,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field8 == nil { m.Field8 = &NidOptNative{} } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27715,7 +29941,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27736,7 +29962,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27751,7 +29977,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -27766,7 +29992,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27780,14 +30006,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -27797,7 +30023,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -27807,8 +30033,8 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -27820,7 +30046,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -27837,27 +30063,93 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -27870,7 +30162,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27885,7 +30177,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27901,7 +30193,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27916,51 +30208,136 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) } - m.Field6 = append(m.Field6, v) case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) @@ -27973,7 +30350,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -27988,30 +30365,72 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -28024,7 +30443,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28039,7 +30458,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -28053,7 +30472,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28068,11 +30487,11 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28082,7 +30501,7 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28092,8 +30511,8 @@ func (m *NidRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinRepStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28105,7 +30524,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28122,27 +30541,93 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -28155,7 +30640,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28170,7 +30655,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28186,7 +30671,164 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field4 = append(m.Field4, &NinOptNative{}) + if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28200,103 +30842,73 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + m.Field8 = append(m.Field8, &NidOptNative{}) + if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) @@ -28309,7 +30921,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28324,7 +30936,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = append(m.Field14, string(data[iNdEx:postIndex])) + m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -28338,7 +30950,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28353,11 +30965,11 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex]) + copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28367,7 +30979,7 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28377,8 +30989,8 @@ func (m *NinRepStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28390,7 +31002,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28418,7 +31030,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28435,7 +31047,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28451,7 +31063,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28465,7 +31077,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28481,7 +31093,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28491,7 +31103,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = bool(v != 0) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28501,7 +31113,7 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28511,8 +31123,8 @@ func (m *NidEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28524,7 +31136,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28552,7 +31164,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28569,7 +31181,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28585,7 +31197,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28602,7 +31214,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NidOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28618,7 +31230,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28629,7 +31241,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28639,7 +31251,7 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28649,8 +31261,8 @@ func (m *NinEmbeddedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NidNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28662,7 +31274,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28690,7 +31302,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28704,7 +31316,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28720,7 +31332,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28735,13 +31347,13 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28751,7 +31363,7 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28761,8 +31373,8 @@ func (m *NidNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28774,7 +31386,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28802,7 +31414,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28819,7 +31431,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptStruct{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28835,7 +31447,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28850,13 +31462,13 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28866,7 +31478,7 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28876,8 +31488,8 @@ func (m *NinNestedStruct) Unmarshal(data []byte) error { } return nil } -func (m *NidOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -28889,7 +31501,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -28917,7 +31529,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28931,7 +31543,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28947,7 +31559,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -28961,13 +31573,13 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -28977,7 +31589,7 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -28987,8 +31599,8 @@ func (m *NidOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *CustomDash) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomDash) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29000,7 +31612,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29028,7 +31640,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29044,13 +31656,13 @@ func (m *CustomDash) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom_dash_type.Bytes m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29060,7 +31672,7 @@ func (m *CustomDash) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29070,8 +31682,8 @@ func (m *CustomDash) Unmarshal(data []byte) error { } return nil } -func (m *NinOptCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29083,7 +31695,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29111,7 +31723,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29127,7 +31739,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = &v - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29143,7 +31755,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29159,13 +31771,13 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = &v - if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29175,7 +31787,7 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29185,8 +31797,8 @@ func (m *NinOptCustom) Unmarshal(data []byte) error { } return nil } -func (m *NidRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29198,7 +31810,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29226,7 +31838,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29242,7 +31854,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29258,7 +31870,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29274,13 +31886,13 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29290,7 +31902,7 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29300,8 +31912,8 @@ func (m *NidRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinRepCustom) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepCustom) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29313,7 +31925,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29341,7 +31953,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29357,7 +31969,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v Uuid m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29373,7 +31985,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29389,13 +32001,13 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29405,7 +32017,7 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29415,8 +32027,8 @@ func (m *NinRepCustom) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29428,7 +32040,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29452,7 +32064,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -29463,7 +32075,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -29478,7 +32090,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -29498,7 +32110,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -29518,7 +32130,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -29538,7 +32150,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29558,7 +32170,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29579,7 +32191,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29594,7 +32206,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -29609,7 +32221,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29623,14 +32235,14 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29640,7 +32252,7 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29650,8 +32262,8 @@ func (m *NinOptNativeUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29663,7 +32275,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29687,7 +32299,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -29698,7 +32310,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -29713,7 +32325,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29730,7 +32342,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NidOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29746,7 +32358,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29763,7 +32375,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29779,7 +32391,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29799,7 +32411,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -29820,7 +32432,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29841,7 +32453,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29856,7 +32468,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -29871,7 +32483,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29885,14 +32497,14 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -29902,7 +32514,7 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -29912,8 +32524,8 @@ func (m *NinOptStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -29925,7 +32537,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -29953,7 +32565,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -29970,7 +32582,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29986,7 +32598,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30003,7 +32615,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.Field200 == nil { m.Field200 = &NinOptNative{} } - if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30019,7 +32631,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30030,7 +32642,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { m.Field210 = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30040,7 +32652,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30050,8 +32662,8 @@ func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *NinNestedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30063,7 +32675,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30091,7 +32703,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30108,7 +32720,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field1 == nil { m.Field1 = &NinOptNativeUnion{} } - if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30124,7 +32736,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30141,7 +32753,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field2 == nil { m.Field2 = &NinOptStructUnion{} } - if err := m.Field2.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30157,7 +32769,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30174,13 +32786,13 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NinEmbeddedStructUnion{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30190,7 +32802,7 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30200,8 +32812,8 @@ func (m *NinNestedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *Tree) Unmarshal(data []byte) error { - l := len(data) +func (m *Tree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30213,7 +32825,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30241,7 +32853,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30258,7 +32870,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Or == nil { m.Or = &OrBranch{} } - if err := m.Or.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30274,7 +32886,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30291,7 +32903,7 @@ func (m *Tree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30307,7 +32919,7 @@ func (m *Tree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30324,13 +32936,13 @@ func (m *Tree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &Leaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30340,7 +32952,7 @@ func (m *Tree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30350,8 +32962,8 @@ func (m *Tree) Unmarshal(data []byte) error { } return nil } -func (m *OrBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *OrBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30363,7 +32975,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30391,7 +33003,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30405,7 +33017,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30421,7 +33033,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30435,13 +33047,13 @@ func (m *OrBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30451,7 +33063,7 @@ func (m *OrBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30461,8 +33073,8 @@ func (m *OrBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30474,7 +33086,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30502,7 +33114,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30516,7 +33128,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30532,7 +33144,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30546,13 +33158,13 @@ func (m *AndBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30562,7 +33174,7 @@ func (m *AndBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30572,8 +33184,8 @@ func (m *AndBranch) Unmarshal(data []byte) error { } return nil } -func (m *Leaf) Unmarshal(data []byte) error { - l := len(data) +func (m *Leaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30585,7 +33197,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30613,7 +33225,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Value |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -30632,7 +33244,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30647,11 +33259,11 @@ func (m *Leaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.StrValue = string(data[iNdEx:postIndex]) + m.StrValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30661,7 +33273,7 @@ func (m *Leaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30671,8 +33283,8 @@ func (m *Leaf) Unmarshal(data []byte) error { } return nil } -func (m *DeepTree) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepTree) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30684,7 +33296,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30712,7 +33324,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30729,7 +33341,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Down == nil { m.Down = &ADeepBranch{} } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30745,7 +33357,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30762,7 +33374,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.And == nil { m.And = &AndDeepBranch{} } - if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30778,7 +33390,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30795,13 +33407,13 @@ func (m *DeepTree) Unmarshal(data []byte) error { if m.Leaf == nil { m.Leaf = &DeepLeaf{} } - if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30811,7 +33423,7 @@ func (m *DeepTree) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30821,8 +33433,8 @@ func (m *DeepTree) Unmarshal(data []byte) error { } return nil } -func (m *ADeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *ADeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30834,7 +33446,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30862,7 +33474,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30876,13 +33488,13 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -30892,7 +33504,7 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -30902,8 +33514,8 @@ func (m *ADeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *AndDeepBranch) Unmarshal(data []byte) error { - l := len(data) +func (m *AndDeepBranch) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -30915,7 +33527,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -30943,7 +33555,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30957,7 +33569,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30973,7 +33585,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -30987,13 +33599,13 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31003,7 +33615,7 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31013,8 +33625,8 @@ func (m *AndDeepBranch) Unmarshal(data []byte) error { } return nil } -func (m *DeepLeaf) Unmarshal(data []byte) error { - l := len(data) +func (m *DeepLeaf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31026,7 +33638,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31054,7 +33666,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31068,13 +33680,13 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Tree.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31084,7 +33696,7 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31094,8 +33706,8 @@ func (m *DeepLeaf) Unmarshal(data []byte) error { } return nil } -func (m *Nil) Unmarshal(data []byte) error { - l := len(data) +func (m *Nil) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31107,7 +33719,7 @@ func (m *Nil) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31125,7 +33737,7 @@ func (m *Nil) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31135,7 +33747,7 @@ func (m *Nil) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31145,8 +33757,8 @@ func (m *Nil) Unmarshal(data []byte) error { } return nil } -func (m *NidOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31158,7 +33770,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31186,7 +33798,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field1 |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31195,7 +33807,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31205,7 +33817,7 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31215,8 +33827,8 @@ func (m *NidOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31228,7 +33840,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31256,7 +33868,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31276,7 +33888,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31296,7 +33908,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31306,7 +33918,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31316,7 +33928,7 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31326,8 +33938,8 @@ func (m *NinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *NidRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NidRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31339,7 +33951,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31356,68 +33968,194 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31427,7 +34165,7 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31437,8 +34175,8 @@ func (m *NidRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinRepEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31450,7 +34188,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31467,68 +34205,194 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = append(m.Field1, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - m.Field1 = append(m.Field1, v) case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field2 = append(m.Field2, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - m.Field2 = append(m.Field2, v) case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v YetYetAnotherTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - m.Field3 = append(m.Field3, v) default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31538,7 +34402,7 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31548,8 +34412,8 @@ func (m *NinRepEnum) Unmarshal(data []byte) error { } return nil } -func (m *NinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31561,7 +34425,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31589,7 +34453,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31609,7 +34473,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31629,7 +34493,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31639,7 +34503,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31649,7 +34513,7 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31659,8 +34523,8 @@ func (m *NinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31672,7 +34536,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31700,7 +34564,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31720,7 +34584,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31740,7 +34604,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31750,7 +34614,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31760,7 +34624,7 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31770,8 +34634,8 @@ func (m *AnotherNinOptEnum) Unmarshal(data []byte) error { } return nil } -func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31783,7 +34647,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31811,7 +34675,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (AnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31831,7 +34695,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31851,7 +34715,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -31861,7 +34725,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31871,7 +34735,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31881,8 +34745,8 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error { } return nil } -func (m *Timer) Unmarshal(data []byte) error { - l := len(data) +func (m *Timer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31894,7 +34758,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -31917,7 +34781,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Time1 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Time1 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 1 { @@ -31926,7 +34790,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.Time2 = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.Time2 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 3: if wireType != 2 { @@ -31940,7 +34804,7 @@ func (m *Timer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -31954,14 +34818,14 @@ func (m *Timer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -31971,7 +34835,7 @@ func (m *Timer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -31981,8 +34845,8 @@ func (m *Timer) Unmarshal(data []byte) error { } return nil } -func (m *MyExtendable) Unmarshal(data []byte) error { - l := len(data) +func (m *MyExtendable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -31994,7 +34858,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32022,7 +34886,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32041,7 +34905,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32051,11 +34915,11 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32065,7 +34929,7 @@ func (m *MyExtendable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32076,8 +34940,8 @@ func (m *MyExtendable) Unmarshal(data []byte) error { } return nil } -func (m *OtherExtenable) Unmarshal(data []byte) error { - l := len(data) +func (m *OtherExtenable) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32089,7 +34953,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32117,7 +34981,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32137,7 +35001,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32157,7 +35021,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32174,7 +35038,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if m.M == nil { m.M = &MyExtendable{} } - if err := m.M.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32189,7 +35053,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32199,11 +35063,11 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32213,7 +35077,7 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32224,8 +35088,8 @@ func (m *OtherExtenable) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32237,7 +35101,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32265,7 +35129,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32285,7 +35149,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32305,7 +35169,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32322,7 +35186,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32338,7 +35202,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32355,13 +35219,13 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if m.NM == nil { m.NM = &NestedDefinition_NestedMessage{} } - if err := m.NM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32371,7 +35235,7 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32381,8 +35245,8 @@ func (m *NestedDefinition) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32394,7 +35258,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32418,7 +35282,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.NestedField1 = &v case 2: @@ -32433,7 +35297,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32450,13 +35314,13 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if m.NNM == nil { m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32466,7 +35330,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32476,8 +35340,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error { } return nil } -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32489,7 +35353,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32517,7 +35381,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32532,12 +35396,12 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.NestedNestedField1 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32547,7 +35411,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32557,8 +35421,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) } return nil } -func (m *NestedScope) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32570,7 +35434,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32598,7 +35462,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32615,7 +35479,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.A == nil { m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -32631,7 +35495,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift if b < 0x80 { @@ -32651,7 +35515,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32668,13 +35532,13 @@ func (m *NestedScope) Unmarshal(data []byte) error { if m.C == nil { m.C = &NestedDefinition_NestedMessage{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -32684,7 +35548,7 @@ func (m *NestedScope) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -32694,8 +35558,8 @@ func (m *NestedScope) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNativeDefault) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -32707,7 +35571,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32731,7 +35595,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = &v case 2: @@ -32742,7 +35606,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = &v case 3: @@ -32757,7 +35621,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -32777,7 +35641,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -32797,7 +35661,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -32817,7 +35681,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32837,7 +35701,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -32858,7 +35722,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32876,7 +35740,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = &v case 10: @@ -32887,7 +35751,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = &v case 11: @@ -32898,7 +35762,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = &v case 12: @@ -32909,7 +35773,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = &v case 13: @@ -32924,7 +35788,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32945,7 +35809,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -32960,7 +35824,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -32975,7 +35839,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -32989,14 +35853,14 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33006,7 +35870,7 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33016,8 +35880,8 @@ func (m *NinOptNativeDefault) Unmarshal(data []byte) error { } return nil } -func (m *CustomContainer) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomContainer) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33029,7 +35893,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33057,7 +35921,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33071,13 +35935,13 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CustomStruct.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33087,7 +35951,7 @@ func (m *CustomContainer) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33097,8 +35961,8 @@ func (m *CustomContainer) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33110,7 +35974,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33133,7 +35997,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldA = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.FieldA = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 2: if wireType != 5 { @@ -33142,7 +36006,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldB = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.FieldB = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 3: if wireType != 0 { @@ -33156,7 +36020,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldC |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33175,7 +36039,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldD |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33194,7 +36058,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldE |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33213,7 +36077,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.FieldF |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33232,7 +36096,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33253,7 +36117,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33269,7 +36133,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldI = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + m.FieldI = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 10: if wireType != 5 { @@ -33278,7 +36142,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.FieldJ = *(*int32)(unsafe.Pointer(&data[iNdEx])) + m.FieldJ = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 11: if wireType != 1 { @@ -33287,7 +36151,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldK = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + m.FieldK = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 12: if wireType != 1 { @@ -33296,7 +36160,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.FieldL = *(*int64)(unsafe.Pointer(&data[iNdEx])) + m.FieldL = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 case 13: if wireType != 0 { @@ -33310,7 +36174,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33330,7 +36194,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33345,7 +36209,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = string(data[iNdEx:postIndex]) + m.FieldN = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 15: if wireType != 2 { @@ -33359,7 +36223,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33373,14 +36237,14 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33390,7 +36254,7 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33400,8 +36264,8 @@ func (m *CustomNameNidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33413,7 +36277,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33437,7 +36301,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldA = &v case 2: @@ -33448,7 +36312,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldB = &v case 3: @@ -33463,7 +36327,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33483,7 +36347,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -33503,7 +36367,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -33523,7 +36387,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33543,7 +36407,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -33564,7 +36428,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33582,7 +36446,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldI = &v case 10: @@ -33593,7 +36457,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldJ = &v case 11: @@ -33604,7 +36468,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldK = &v case 12: @@ -33615,7 +36479,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FielL = &v case 13: @@ -33630,7 +36494,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33651,7 +36515,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33666,7 +36530,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldN = &s iNdEx = postIndex case 15: @@ -33681,7 +36545,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -33695,14 +36559,14 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldO = append(m.FieldO[:0], data[iNdEx:postIndex]...) + m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) if m.FieldO == nil { m.FieldO = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -33712,7 +36576,7 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -33722,8 +36586,8 @@ func (m *CustomNameNinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -33735,7 +36599,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33752,213 +36616,707 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldA = append(m.FieldA, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldA = append(m.FieldA, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) case 2: - if wireType != 5 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) case 3: - if wireType != 0 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldC = append(m.FieldC, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldD = append(m.FieldD, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldD = append(m.FieldD, v) } - } - m.FieldC = append(m.FieldC, v) - case 4: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldE = append(m.FieldE, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldE = append(m.FieldE, v) } - } - m.FieldD = append(m.FieldD, v) - case 5: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldF = append(m.FieldF, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldF = append(m.FieldF, v) } - } - m.FieldE = append(m.FieldE, v) - case 6: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.FieldG = append(m.FieldG, v) } - } - m.FieldF = append(m.FieldF, v) - case 7: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.FieldH = append(m.FieldH, int64(v)) } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - case 8: - if wireType != 0 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldI = append(m.FieldI, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldI = append(m.FieldI, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - case 9: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) case 10: - if wireType != 5 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldJ = append(m.FieldJ, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.FieldJ = append(m.FieldJ, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldK = append(m.FieldK, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldK = append(m.FieldK, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldL = append(m.FieldL, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.FieldL = append(m.FieldL, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.FieldM = append(m.FieldM, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldM = append(m.FieldM, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) } - m.FieldM = append(m.FieldM, bool(v != 0)) case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) @@ -33971,7 +37329,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -33986,7 +37344,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldN = append(m.FieldN, string(data[iNdEx:postIndex])) + m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 15: if wireType != 2 { @@ -34000,7 +37358,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34015,11 +37373,11 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], data[iNdEx:postIndex]) + copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34029,7 +37387,7 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34039,8 +37397,8 @@ func (m *CustomNameNinRepNative) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34052,7 +37410,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34076,7 +37434,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.FieldA = &v case 2: @@ -34087,7 +37445,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.FieldB = &v case 3: @@ -34102,7 +37460,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34119,7 +37477,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldC == nil { m.FieldC = &NidOptNative{} } - if err := m.FieldC.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34135,7 +37493,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34150,7 +37508,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34166,7 +37524,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34186,7 +37544,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -34207,7 +37565,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34224,7 +37582,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if m.FieldG == nil { m.FieldG = &NidOptNative{} } - if err := m.FieldG.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34240,7 +37598,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34261,7 +37619,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34276,7 +37634,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.FieldI = &s iNdEx = postIndex case 15: @@ -34291,7 +37649,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34305,14 +37663,14 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldJ = append(m.FieldJ[:0], data[iNdEx:postIndex]...) + m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) if m.FieldJ == nil { m.FieldJ = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34322,7 +37680,7 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34332,8 +37690,8 @@ func (m *CustomNameNinStruct) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameCustomType) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34345,7 +37703,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34373,7 +37731,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34389,7 +37747,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldA = &v - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34405,7 +37763,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34421,7 +37779,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldB = &v - if err := m.FieldB.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34437,7 +37795,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34453,7 +37811,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v Uuid m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34469,7 +37827,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34485,13 +37843,13 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34501,7 +37859,7 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34511,8 +37869,8 @@ func (m *CustomNameCustomType) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34524,7 +37882,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34552,7 +37910,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34569,7 +37927,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.NidOptNative == nil { m.NidOptNative = &NidOptNative{} } - if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34585,7 +37943,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34602,7 +37960,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if m.FieldA == nil { m.FieldA = &NinOptNative{} } - if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -34618,7 +37976,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34629,7 +37987,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { m.FieldB = &b default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34639,7 +37997,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34649,8 +38007,8 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error { } return nil } -func (m *CustomNameEnum) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomNameEnum) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34662,7 +38020,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34690,7 +38048,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (TheTestEnum(b) & 0x7F) << shift if b < 0x80 { @@ -34699,10 +38057,123 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } m.FieldA = &v case 2: - if wireType != 0 { + if wireType == 0 { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v TheTestEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (TheTestEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.FieldB = append(m.FieldB, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) } - var v TheTestEnum + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -34710,17 +38181,414 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + if (fieldNum >= 100) && (fieldNum < 200) { + var sizeOfWire int + for { + sizeOfWire++ + wire >>= 7 + if wire == 0 { + break + } + } + iNdEx -= sizeOfWire + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + iNdEx += skippy + } else { + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Unrecognized) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field1 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) + if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Inner: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field1 = &v + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.FieldB = append(m.FieldB, v) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34730,7 +38598,7 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34740,8 +38608,8 @@ func (m *CustomNameEnum) Unmarshal(data []byte) error { } return nil } -func (m *NoExtensionsMap) Unmarshal(data []byte) error { - l := len(data) +func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34753,7 +38621,7 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34763,17 +38631,17 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group") + return fmt.Errorf("proto: Embedded: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v int64 + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -34781,52 +38649,27 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } m.Field1 = &v default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -34835,8 +38678,8 @@ func (m *NoExtensionsMap) Unmarshal(data []byte) error { } return nil } -func (m *Unrecognized) Unmarshal(data []byte) error { - l := len(data) +func (m *Node) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34848,7 +38691,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34858,15 +38701,15 @@ func (m *Unrecognized) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group") + return fmt.Errorf("proto: Node: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -34876,7 +38719,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34891,12 +38734,43 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field1 = &s + s := string(dAtA[iNdEx:postIndex]) + m.Label = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Children = append(m.Children, &Node{}) + if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -34906,6 +38780,7 @@ func (m *Unrecognized) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -34915,8 +38790,8 @@ func (m *Unrecognized) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { - l := len(data) +func (m *NonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -34928,7 +38803,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -34938,15 +38813,15 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group") + return fmt.Errorf("proto: NonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -34956,7 +38831,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -34970,44 +38845,16 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthThetestUnsafe + if m.Field1 == nil { + m.Field1 = &T{} } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35017,7 +38864,7 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35027,8 +38874,8 @@ func (m *UnrecognizedWithInner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { - l := len(data) +func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35040,7 +38887,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35050,17 +38897,17 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Inner: wiretype end group for non-group") + return fmt.Errorf("proto: NidOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -35068,17 +38915,27 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35088,6 +38945,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35097,8 +38955,8 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35110,7 +38968,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35120,15 +38978,15 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group") + return fmt.Errorf("proto: NinOptNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -35138,7 +38996,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35152,15 +39010,69 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(data[iNdEx:postIndex]); err != nil { + if m.Field1 == nil { + m.Field1 = &T{} + } + if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthThetestUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowThetestUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NidRepNonByteCustomType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -35168,27 +39080,28 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthThetestUnsafe } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Field2 = &s + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35198,7 +39111,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35208,8 +39121,8 @@ func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error { } return nil } -func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35221,7 +39134,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35231,17 +39144,17 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Embedded: wiretype end group for non-group") + return fmt.Errorf("proto: NinRepNonByteCustomType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - var v uint32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowThetestUnsafe @@ -35249,17 +39162,28 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field1 = &v + if msglen < 0 { + return ErrInvalidLengthThetestUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Field1 = append(m.Field1, T{}) + if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35269,6 +39193,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35278,8 +39203,8 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error { } return nil } -func (m *Node) Unmarshal(data []byte) error { - l := len(data) +func (m *ProtoType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -35291,7 +39216,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35301,15 +39226,15 @@ func (m *Node) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Node: wiretype end group for non-group") + return fmt.Errorf("proto: ProtoType: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -35319,7 +39244,7 @@ func (m *Node) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35334,43 +39259,12 @@ func (m *Node) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.Field2 = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipThetestUnsafe(data[iNdEx:]) + skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -35380,7 +39274,7 @@ func (m *Node) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -35390,8 +39284,8 @@ func (m *Node) Unmarshal(data []byte) error { } return nil } -func skipThetestUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipThetestUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -35402,7 +39296,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35420,7 +39314,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -35437,7 +39331,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -35460,7 +39354,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -35471,7 +39365,7 @@ func skipThetestUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipThetestUnsafe(data[start:]) + next, err := skipThetestUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -35495,195 +39389,202 @@ var ( ErrIntOverflowThetestUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 3017 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xf5, 0xd6, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x3f, 0x49, 0xde, - 0x9f, 0xa2, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0xda, 0xae, - 0x45, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x12, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0x4b, - 0xd7, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x8c, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xb8, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x28, 0x0a, 0x23, 0x71, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0x67, 0x77, 0x67, 0x66, 0x67, 0x66, 0x77, 0xb9, 0x4b, - 0x4b, 0x6e, 0x73, 0xa0, 0x48, 0xed, 0xf7, 0xde, 0xce, 0xdb, 0xf7, 0x7d, 0x6f, 0xf6, 0xed, 0xce, - 0xc0, 0x85, 0xdd, 0xce, 0xd1, 0x4e, 0xa7, 0xb7, 0xdc, 0x37, 0x7a, 0xcd, 0x3d, 0xbd, 0x6f, 0x1c, - 0x35, 0xbb, 0xbd, 0x83, 0xe6, 0xa1, 0xde, 0x5d, 0x36, 0x0f, 0x74, 0x53, 0xef, 0x99, 0x4b, 0xc7, - 0xdd, 0x8e, 0xd9, 0x51, 0x62, 0xd6, 0xef, 0xcc, 0xe5, 0xfd, 0xb6, 0x79, 0xd0, 0xdf, 0x59, 0x42, - 0x4e, 0xcb, 0xfb, 0x9d, 0xfd, 0xce, 0xb2, 0x0d, 0xee, 0xf4, 0xf7, 0xec, 0xff, 0xec, 0x7f, 0xec, - 0x5f, 0x8e, 0x93, 0xf6, 0x4f, 0x00, 0x93, 0xf5, 0x76, 0x6b, 0xeb, 0xd8, 0xac, 0x37, 0xcd, 0xf6, - 0x3d, 0x5d, 0x99, 0x86, 0xa3, 0xd7, 0xda, 0xfa, 0x61, 0x2b, 0xaf, 0x4a, 0x73, 0xd2, 0xa2, 0x54, - 0x8e, 0x9d, 0x3c, 0x9b, 0x1d, 0x69, 0x8c, 0xee, 0xd9, 0xc7, 0x28, 0x5a, 0x50, 0x65, 0x84, 0xca, - 0x1c, 0x5a, 0xa0, 0xe8, 0x8a, 0x0a, 0x10, 0x1a, 0xe7, 0xd0, 0x15, 0x8a, 0x16, 0xd5, 0x18, 0x42, - 0x01, 0x87, 0x16, 0x29, 0xba, 0xaa, 0xc6, 0x11, 0x3a, 0xc1, 0xa1, 0xab, 0x14, 0x5d, 0x53, 0x47, - 0x11, 0x1a, 0xe3, 0xd0, 0x35, 0x8a, 0x5e, 0x51, 0xcf, 0x21, 0xf4, 0x3c, 0x87, 0x5e, 0xa1, 0xe8, - 0xba, 0x9a, 0x40, 0xa8, 0xc2, 0xa1, 0xeb, 0x14, 0xbd, 0xaa, 0x8e, 0x21, 0xf4, 0x1c, 0x87, 0x5e, - 0x55, 0x66, 0xe0, 0x39, 0x27, 0x1b, 0x39, 0x15, 0x22, 0x78, 0x0a, 0xc3, 0xe7, 0x9c, 0x74, 0xe4, - 0x5c, 0x3c, 0xaf, 0x8e, 0x23, 0x7c, 0x94, 0xc7, 0xf3, 0x2e, 0x5e, 0x50, 0x93, 0x08, 0x4f, 0xf1, - 0x78, 0xc1, 0xc5, 0x57, 0xd4, 0x09, 0x84, 0x27, 0x78, 0x7c, 0xc5, 0xc5, 0x8b, 0xea, 0x24, 0xc2, - 0xc7, 0x78, 0xbc, 0xe8, 0xe2, 0xab, 0xea, 0x14, 0xc2, 0x93, 0x3c, 0xbe, 0xaa, 0xbd, 0x6f, 0xd3, - 0x6b, 0xb8, 0xf4, 0xa6, 0x79, 0x7a, 0x29, 0xb1, 0x69, 0x9e, 0x58, 0x4a, 0x69, 0x9a, 0xa7, 0x94, - 0x92, 0x99, 0xe6, 0xc9, 0xa4, 0x34, 0xa6, 0x79, 0x1a, 0x29, 0x81, 0x69, 0x9e, 0x40, 0x4a, 0x5d, - 0x9a, 0xa7, 0x8e, 0x92, 0x96, 0xe6, 0x49, 0xa3, 0x74, 0xa5, 0x79, 0xba, 0x28, 0x51, 0xaa, 0x40, - 0x94, 0x4b, 0x91, 0x2a, 0x50, 0xe4, 0x92, 0xa3, 0x0a, 0xe4, 0xb8, 0xb4, 0xa8, 0x02, 0x2d, 0x2e, - 0x21, 0xaa, 0x40, 0x88, 0x4b, 0x85, 0x2a, 0x50, 0xe1, 0x92, 0x80, 0x6b, 0xac, 0xa1, 0x1f, 0xfb, - 0xd4, 0x18, 0x18, 0x58, 0x63, 0x60, 0x60, 0x8d, 0x81, 0x81, 0x35, 0x06, 0x06, 0xd6, 0x18, 0x18, - 0x58, 0x63, 0x60, 0x60, 0x8d, 0x81, 0x81, 0x35, 0x06, 0x06, 0xd6, 0x18, 0x18, 0x5c, 0x63, 0x20, - 0xa4, 0xc6, 0x40, 0x48, 0x8d, 0x81, 0x90, 0x1a, 0x03, 0x21, 0x35, 0x06, 0x42, 0x6a, 0x0c, 0x04, - 0xd6, 0x98, 0x4b, 0x6f, 0x9a, 0xa7, 0xd7, 0xb7, 0xc6, 0x40, 0x40, 0x8d, 0x81, 0x80, 0x1a, 0x03, - 0x01, 0x35, 0x06, 0x02, 0x6a, 0x0c, 0x04, 0xd4, 0x18, 0x08, 0xa8, 0x31, 0x10, 0x50, 0x63, 0x20, - 0xa8, 0xc6, 0x40, 0x60, 0x8d, 0x81, 0xc0, 0x1a, 0x03, 0x81, 0x35, 0x06, 0x02, 0x6b, 0x0c, 0x04, - 0xd6, 0x18, 0x60, 0x6b, 0xec, 0x4f, 0x00, 0x2a, 0x4e, 0x8d, 0xdd, 0x6e, 0xee, 0xfe, 0x40, 0x6f, - 0x61, 0x2a, 0x66, 0x84, 0x4a, 0x1b, 0xb5, 0xa8, 0x4b, 0xb9, 0x94, 0xcc, 0x08, 0xb5, 0xc6, 0xe3, - 0x05, 0x8a, 0x93, 0x6a, 0xe3, 0xf1, 0x15, 0x8a, 0x93, 0x7a, 0xe3, 0xf1, 0x22, 0xc5, 0x49, 0xc5, - 0xf1, 0xf8, 0x2a, 0xc5, 0x49, 0xcd, 0xf1, 0xf8, 0x1a, 0xc5, 0x49, 0xd5, 0xf1, 0xf8, 0x15, 0x8a, - 0x93, 0xba, 0xe3, 0xf1, 0x75, 0x8a, 0x93, 0xca, 0xe3, 0xf1, 0xab, 0xca, 0x9c, 0x58, 0x7b, 0xc4, - 0x80, 0x52, 0x3b, 0x27, 0x56, 0x9f, 0x60, 0x91, 0x77, 0x2d, 0x48, 0xfd, 0x09, 0x16, 0x05, 0xd7, - 0x82, 0x54, 0xa0, 0x60, 0xb1, 0xa2, 0x3d, 0xb4, 0xe9, 0x33, 0x44, 0xfa, 0x32, 0x02, 0x7d, 0x32, - 0x43, 0x5d, 0x46, 0xa0, 0x4e, 0x66, 0x68, 0xcb, 0x08, 0xb4, 0xc9, 0x0c, 0x65, 0x19, 0x81, 0x32, - 0x99, 0xa1, 0x2b, 0x23, 0xd0, 0x25, 0x33, 0x54, 0x65, 0x04, 0xaa, 0x64, 0x86, 0xa6, 0x8c, 0x40, - 0x93, 0xcc, 0x50, 0x94, 0x11, 0x28, 0x92, 0x19, 0x7a, 0x32, 0x02, 0x3d, 0x32, 0x43, 0xcd, 0xb4, - 0x48, 0x8d, 0xcc, 0xd2, 0x32, 0x2d, 0xd2, 0x22, 0xb3, 0x94, 0x4c, 0x8b, 0x94, 0xc8, 0x2c, 0x1d, - 0xd3, 0x22, 0x1d, 0x32, 0x4b, 0xc5, 0x97, 0x32, 0xe9, 0x08, 0xdf, 0x35, 0xbb, 0xfd, 0x5d, 0xf3, - 0x54, 0x1d, 0x61, 0x8e, 0x6b, 0x1f, 0xc6, 0x0b, 0xca, 0x92, 0xdd, 0xb0, 0xb2, 0x1d, 0xa7, 0x70, - 0x07, 0xcb, 0x71, 0x8d, 0x05, 0xe3, 0x61, 0xf8, 0x7b, 0x14, 0x4f, 0xd5, 0x1b, 0xe6, 0xb8, 0x36, - 0x23, 0x3c, 0xbe, 0xf5, 0x97, 0xde, 0xb1, 0x3d, 0x91, 0x49, 0xc7, 0x86, 0xd3, 0x3f, 0x6c, 0xc7, - 0x96, 0x0d, 0x4f, 0x39, 0x4d, 0x76, 0x36, 0x3c, 0xd9, 0x9e, 0xbb, 0x4e, 0xd4, 0x0e, 0x2e, 0x1b, - 0x9e, 0x5a, 0x9a, 0xd4, 0xb3, 0xed, 0xb7, 0xb0, 0x82, 0xd1, 0x64, 0xe2, 0xa3, 0xe0, 0x61, 0xfb, - 0xad, 0x1c, 0x37, 0x95, 0x0c, 0xab, 0x60, 0x30, 0xb4, 0x82, 0x87, 0xed, 0xbc, 0x72, 0xdc, 0xf4, - 0x32, 0xb4, 0x82, 0x5f, 0x42, 0x3f, 0x84, 0x15, 0xec, 0xa6, 0x7f, 0xd8, 0x7e, 0x28, 0x1b, 0x9e, - 0x72, 0x5f, 0x05, 0x83, 0x21, 0x14, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0xa7, 0xd6, 0x5f, 0xc1, 0xa7, - 0xee, 0x66, 0x3e, 0x90, 0xe0, 0x79, 0x34, 0x4c, 0xed, 0x68, 0x47, 0x6f, 0xb5, 0xf4, 0x16, 0xce, - 0x63, 0x8e, 0x9b, 0x09, 0x02, 0xa8, 0x7e, 0xfa, 0x6c, 0xd6, 0xcd, 0xf0, 0x2a, 0x4c, 0x38, 0x19, - 0xce, 0xe5, 0xd4, 0x13, 0x29, 0x64, 0x86, 0x4b, 0xec, 0x61, 0x53, 0xe5, 0x22, 0x71, 0x43, 0xf7, - 0x9e, 0xbf, 0x49, 0xcc, 0x2c, 0x87, 0x4d, 0xf2, 0x39, 0xed, 0x67, 0x76, 0x84, 0xc6, 0xa9, 0x23, - 0x5c, 0x8e, 0x14, 0x21, 0x13, 0xdb, 0xeb, 0x9e, 0xd8, 0x98, 0xa8, 0xfa, 0x70, 0x0a, 0xb9, 0xd5, - 0x91, 0x7b, 0xb4, 0x90, 0x1c, 0x1b, 0x61, 0x3e, 0xc8, 0x71, 0xb2, 0x64, 0x3d, 0xa8, 0xa4, 0xf9, - 0x39, 0x42, 0x6b, 0x5b, 0xc3, 0x1a, 0xdc, 0xb0, 0xd9, 0xa0, 0x61, 0xdd, 0x99, 0x9d, 0x0e, 0x98, - 0x0d, 0x1a, 0xd0, 0xad, 0x21, 0x3a, 0xd4, 0x7d, 0x72, 0x73, 0xae, 0xf4, 0x7b, 0x66, 0xe7, 0x08, - 0x4d, 0x0e, 0xf2, 0x8d, 0x96, 0x3d, 0x46, 0xb2, 0x9c, 0xb4, 0x82, 0xfa, 0xc7, 0xb3, 0xd9, 0xd8, - 0x9d, 0x3e, 0x8a, 0x55, 0x6e, 0xb7, 0x94, 0x9b, 0x30, 0xfe, 0xed, 0xe6, 0x61, 0x5f, 0xb7, 0x6f, - 0x11, 0xc9, 0x72, 0x11, 0x1b, 0x5c, 0x0a, 0x7c, 0x47, 0x64, 0x0d, 0xbc, 0xbc, 0x6b, 0x9f, 0x7a, - 0xe9, 0x4e, 0xdb, 0x30, 0xf3, 0x85, 0xf5, 0x46, 0xfc, 0x9e, 0x75, 0x0a, 0xed, 0x7b, 0x10, 0x3a, - 0x63, 0x56, 0x9b, 0xbd, 0x03, 0xa5, 0x4e, 0xce, 0xec, 0x0c, 0xbd, 0x8e, 0xce, 0x5a, 0x8c, 0x72, - 0xd6, 0xcb, 0x2d, 0xe4, 0x7d, 0xd9, 0x7c, 0x70, 0xac, 0x2f, 0x95, 0x1f, 0xa0, 0xe3, 0xe4, 0xec, - 0xc7, 0xe4, 0xae, 0x87, 0xaf, 0x4b, 0x65, 0xae, 0x2b, 0xc1, 0x5d, 0xd3, 0x35, 0xfe, 0x9a, 0x72, - 0x2f, 0x7a, 0x3d, 0xf7, 0xc9, 0x4d, 0x42, 0xc8, 0x24, 0x08, 0xcb, 0x24, 0x38, 0x6d, 0x26, 0x8f, - 0xc9, 0xfc, 0x28, 0x5c, 0x2b, 0x18, 0x74, 0xad, 0xe0, 0x34, 0xd7, 0xfa, 0x6f, 0xa7, 0x5a, 0x69, - 0x3d, 0xdd, 0x31, 0xda, 0x1d, 0xe3, 0x2b, 0xf7, 0x2e, 0xe8, 0x4c, 0xbb, 0x80, 0x52, 0xec, 0xe4, - 0xd1, 0xac, 0xa4, 0x7d, 0x20, 0x93, 0x2b, 0x77, 0x0a, 0xe9, 0xc5, 0xae, 0xfc, 0xab, 0xd2, 0x53, - 0xbd, 0x8c, 0x0c, 0xfd, 0x52, 0x82, 0x69, 0xcf, 0x4c, 0xee, 0xa4, 0xe9, 0x6c, 0xa7, 0x73, 0x63, - 0xd8, 0xe9, 0x1c, 0x07, 0xf8, 0x3b, 0x09, 0xbe, 0x2a, 0x4c, 0xaf, 0x4e, 0x78, 0xcb, 0x42, 0x78, - 0xaf, 0x79, 0x47, 0xb2, 0x0d, 0x99, 0xe8, 0x58, 0x7a, 0x05, 0x07, 0xe6, 0xcc, 0x94, 0xf7, 0xa2, - 0xc0, 0xfb, 0x34, 0x75, 0xf0, 0x49, 0x17, 0x51, 0x00, 0x0e, 0xbb, 0x03, 0x63, 0xdb, 0x5d, 0xdd, - 0x7a, 0x05, 0x21, 0x6f, 0x75, 0x71, 0x84, 0x93, 0x8e, 0xff, 0x56, 0xb7, 0xdc, 0x6d, 0x1a, 0xbb, - 0x07, 0x0d, 0xb9, 0xd3, 0x45, 0x37, 0x5b, 0xb0, 0x61, 0xb4, 0x70, 0x44, 0x53, 0x8e, 0x01, 0x3a, - 0x80, 0x2d, 0x40, 0xd3, 0x68, 0xa1, 0x53, 0xc4, 0x6e, 0xe9, 0xcd, 0x3d, 0x1c, 0x04, 0x74, 0x6c, - 0xac, 0x23, 0x8d, 0xd8, 0x21, 0xfa, 0x8b, 0x07, 0xfc, 0x2e, 0x4c, 0x90, 0x13, 0x2b, 0xf3, 0x96, - 0xc7, 0x9e, 0x89, 0x87, 0xc5, 0x1e, 0x56, 0x38, 0xf8, 0xce, 0x85, 0xfc, 0xf6, 0x4c, 0x65, 0x01, - 0xc6, 0x1b, 0xed, 0xfd, 0x03, 0x13, 0x0f, 0xee, 0x35, 0x8b, 0x77, 0x2d, 0x58, 0xbb, 0x0b, 0xc7, - 0x68, 0x44, 0x67, 0x7c, 0xea, 0xaa, 0x73, 0x69, 0xe8, 0x49, 0x98, 0xb9, 0x9f, 0x90, 0xf7, 0x96, - 0xce, 0xec, 0xa5, 0xcc, 0xc1, 0x04, 0x4a, 0xb3, 0x3b, 0xe9, 0x93, 0x8e, 0x34, 0xd1, 0xc3, 0x47, - 0xb5, 0xf7, 0x25, 0x98, 0xa8, 0xea, 0xfa, 0xb1, 0x9d, 0xf0, 0x37, 0x60, 0xac, 0xda, 0xf9, 0xa1, - 0x81, 0x03, 0x3c, 0x8f, 0x33, 0x6a, 0xc1, 0x38, 0xa7, 0xb1, 0x16, 0x82, 0x91, 0x19, 0x93, 0xf7, - 0x57, 0x68, 0xde, 0x19, 0x3b, 0x3b, 0xf7, 0x1a, 0x97, 0x7b, 0x4c, 0xa0, 0x65, 0xe4, 0xc9, 0xff, - 0x15, 0x38, 0xce, 0x8c, 0xa2, 0x2c, 0xe2, 0x30, 0x64, 0xd1, 0x91, 0xcd, 0x95, 0x15, 0x89, 0xa6, - 0xc3, 0x09, 0x6e, 0x60, 0xcb, 0x95, 0x49, 0x71, 0x80, 0xab, 0x9d, 0xe6, 0x2c, 0x9f, 0x66, 0x7f, - 0x53, 0x9c, 0xea, 0x9c, 0x93, 0x23, 0x3b, 0xdd, 0xf3, 0x8e, 0x38, 0x83, 0x49, 0x34, 0xd1, 0x6f, - 0x2d, 0x0e, 0x41, 0xbd, 0x7d, 0xa8, 0xbd, 0x0d, 0xa1, 0x53, 0xf2, 0x35, 0xa3, 0x7f, 0x24, 0x54, - 0xdd, 0x24, 0x49, 0xf0, 0xf6, 0x81, 0xbe, 0x8d, 0xbe, 0x2d, 0x13, 0xbe, 0x9f, 0xb2, 0x26, 0x18, - 0xe8, 0x94, 0x98, 0xed, 0xff, 0x66, 0xa8, 0xbf, 0x6f, 0x27, 0x66, 0x99, 0xaa, 0x8e, 0xe9, 0x5d, - 0xdd, 0xdc, 0x30, 0x3a, 0xe6, 0x81, 0xde, 0x15, 0x3c, 0x0a, 0xca, 0x0a, 0x57, 0xb0, 0x93, 0x85, - 0xd7, 0xa9, 0x47, 0xa0, 0xd3, 0x8a, 0xf6, 0xa1, 0x1d, 0xa0, 0xd5, 0x0a, 0x78, 0x2e, 0x10, 0x44, - 0xb8, 0x40, 0x65, 0x8d, 0xeb, 0xdf, 0x06, 0x84, 0x29, 0x3c, 0x5a, 0x5e, 0xe5, 0x9e, 0x73, 0x06, - 0x07, 0xcb, 0x3f, 0x63, 0x92, 0x9c, 0x92, 0x90, 0xdf, 0x0c, 0x0d, 0x39, 0xa0, 0xbb, 0x1d, 0x36, - 0xa7, 0x20, 0x6a, 0x4e, 0xff, 0x48, 0x3b, 0x0e, 0xeb, 0x70, 0x55, 0xdf, 0x6b, 0xf6, 0x0f, 0x4d, - 0xe5, 0x52, 0x28, 0xf7, 0x25, 0xa9, 0x42, 0x43, 0x2d, 0x46, 0xa5, 0xbf, 0x24, 0x97, 0xcb, 0x34, - 0xdc, 0x2b, 0x43, 0x48, 0xa0, 0x24, 0x57, 0x2a, 0x74, 0xda, 0x4e, 0x3c, 0x44, 0x55, 0xfc, 0xf8, - 0xd1, 0xec, 0x88, 0xf6, 0x5b, 0x14, 0x3c, 0xb6, 0x64, 0x84, 0x7b, 0x59, 0x08, 0xfe, 0x02, 0x99, - 0x33, 0xfc, 0x32, 0xf0, 0x5f, 0x13, 0xef, 0x5f, 0x24, 0xa8, 0x7a, 0x62, 0x25, 0xf9, 0xce, 0x45, - 0x0a, 0xb9, 0x24, 0xd5, 0xfe, 0xf7, 0x39, 0xbf, 0x0b, 0xe3, 0xdb, 0xed, 0x23, 0xbd, 0x6b, 0xdd, - 0x09, 0xac, 0x1f, 0x4e, 0xc8, 0x64, 0x31, 0x27, 0x6e, 0x5a, 0x87, 0x08, 0xe6, 0x04, 0xc7, 0x61, - 0xd6, 0x7a, 0x42, 0xac, 0xda, 0x34, 0x9b, 0x76, 0x04, 0x49, 0x3a, 0xbf, 0xa2, 0x23, 0xda, 0x0a, - 0x4c, 0x6e, 0x3e, 0xa8, 0xdd, 0x37, 0x75, 0xa3, 0xd5, 0xdc, 0x39, 0x14, 0xd7, 0x40, 0x49, 0xbf, - 0x9a, 0xcf, 0xc6, 0x13, 0xad, 0xd4, 0x89, 0x54, 0x8a, 0xd9, 0xf1, 0xdc, 0x83, 0x93, 0x5b, 0x56, - 0xd8, 0xb6, 0x1f, 0xe7, 0xe6, 0x8c, 0x0e, 0xe8, 0xc5, 0x0b, 0x4d, 0x19, 0x70, 0x9b, 0xb2, 0x39, - 0x28, 0x6d, 0xf2, 0xad, 0x13, 0x1b, 0x47, 0x43, 0x3a, 0xca, 0xc6, 0x12, 0x93, 0xa9, 0xf3, 0xe8, - 0x2f, 0x4c, 0x4d, 0xe0, 0x71, 0xff, 0x0a, 0x60, 0xca, 0x69, 0x75, 0x10, 0x89, 0x6d, 0xa3, 0x6d, - 0x7a, 0xfb, 0x55, 0x1a, 0xb1, 0xf2, 0x0d, 0x38, 0x66, 0xa5, 0xd4, 0xc6, 0x30, 0x61, 0x17, 0x71, - 0x8b, 0x22, 0x9c, 0x02, 0x1f, 0xb0, 0xa5, 0x33, 0xa6, 0x13, 0x1f, 0xf4, 0x80, 0x01, 0xea, 0xf5, - 0x4d, 0x7c, 0x73, 0x2b, 0x0e, 0x74, 0xdd, 0xd4, 0x7b, 0xbd, 0xe6, 0xbe, 0x8e, 0xff, 0xc3, 0xc7, - 0x7a, 0xfb, 0x0d, 0x60, 0xd4, 0x37, 0x91, 0x6c, 0x64, 0x74, 0x1a, 0xa7, 0xe1, 0x9d, 0x8f, 0x72, - 0x9a, 0x86, 0x6c, 0x6c, 0x66, 0xfe, 0x2c, 0xc1, 0x09, 0xee, 0x28, 0xba, 0xdb, 0x26, 0x9d, 0x03, - 0xcc, 0xe5, 0x8e, 0x36, 0x92, 0x06, 0x73, 0x8c, 0xc4, 0x2c, 0x9f, 0x32, 0xe6, 0xcc, 0x06, 0x7a, - 0x6a, 0xe7, 0x8f, 0x2b, 0x4b, 0x50, 0x61, 0x0f, 0xe1, 0x20, 0xa0, 0xdd, 0x50, 0x2b, 0x86, 0x07, - 0xd1, 0xfe, 0x0f, 0xcd, 0xc2, 0x34, 0xaf, 0xca, 0x14, 0x1c, 0xdf, 0xbe, 0x7b, 0xbb, 0xf6, 0xfd, - 0x7a, 0xed, 0xdd, 0xed, 0x5a, 0x35, 0x25, 0x69, 0xbf, 0x97, 0xe0, 0x38, 0x6e, 0x5b, 0x77, 0x3b, - 0xc7, 0xba, 0x52, 0x86, 0xd2, 0x06, 0xd6, 0xc3, 0x8b, 0xc5, 0x2d, 0x35, 0xd1, 0xdd, 0x49, 0x2a, - 0x47, 0xa7, 0x5a, 0xda, 0x51, 0x0a, 0x50, 0xaa, 0x60, 0x82, 0xa3, 0x31, 0x23, 0xed, 0x6a, 0xff, - 0x02, 0xf0, 0x15, 0xb6, 0x8d, 0x26, 0xf3, 0xc9, 0x45, 0xfe, 0xb9, 0xa9, 0x34, 0x96, 0x2f, 0xac, - 0x14, 0x97, 0xac, 0x3f, 0x54, 0x92, 0x17, 0xf9, 0x47, 0x28, 0xaf, 0x89, 0x67, 0x9b, 0x48, 0x29, - 0xc6, 0xa0, 0x9e, 0x6d, 0x22, 0x1c, 0xea, 0xd9, 0x26, 0xc2, 0xa1, 0x9e, 0x6d, 0x22, 0x1c, 0xea, - 0x59, 0x0a, 0xe0, 0x50, 0xcf, 0x36, 0x11, 0x0e, 0xf5, 0x6c, 0x13, 0xe1, 0x50, 0xef, 0x36, 0x11, - 0x0c, 0x07, 0x6e, 0x13, 0xe1, 0x71, 0xef, 0x36, 0x11, 0x1e, 0xf7, 0x6e, 0x13, 0x29, 0xa1, 0xfe, - 0xac, 0xaf, 0x07, 0x2f, 0x3a, 0xf0, 0xfe, 0x83, 0x9e, 0x01, 0xdd, 0x09, 0x78, 0x0b, 0x4e, 0x39, - 0xef, 0x23, 0x2a, 0x1d, 0xc3, 0x6c, 0xb6, 0x0d, 0x34, 0x15, 0x7f, 0x1d, 0x26, 0x9d, 0x43, 0xce, - 0x53, 0x8e, 0xdf, 0x53, 0xa0, 0x83, 0xe3, 0xe9, 0x36, 0xb9, 0xcb, 0x58, 0x6b, 0x5f, 0xc6, 0x60, - 0xda, 0x81, 0xeb, 0xcd, 0x23, 0x9d, 0xdb, 0x64, 0xb4, 0x20, 0x2c, 0x29, 0x4d, 0x5a, 0xee, 0xcf, - 0x9f, 0xcd, 0x3a, 0x47, 0x37, 0xa8, 0x98, 0x16, 0x84, 0xc5, 0x25, 0xde, 0xce, 0xbd, 0xff, 0x2c, - 0x08, 0x1b, 0x8f, 0x78, 0x3b, 0x7a, 0xbb, 0xa1, 0x76, 0x64, 0x0b, 0x12, 0x6f, 0x57, 0xa5, 0x2a, - 0x5b, 0x10, 0x36, 0x23, 0xf1, 0x76, 0x35, 0xaa, 0xb7, 0x05, 0x61, 0xe9, 0x89, 0xb7, 0xbb, 0x46, - 0x95, 0xb7, 0x20, 0x2c, 0x42, 0xf1, 0x76, 0xdf, 0xa4, 0x1a, 0x5c, 0x10, 0xb6, 0x2a, 0xf1, 0x76, - 0xd7, 0xa9, 0x1a, 0x17, 0x84, 0x4d, 0x4b, 0xbc, 0xdd, 0x0d, 0xaa, 0xcb, 0x45, 0x71, 0xfb, 0x12, - 0x6f, 0x78, 0xd3, 0x55, 0xe8, 0xa2, 0xb8, 0x91, 0x89, 0xb7, 0xfc, 0x96, 0xab, 0xd5, 0x45, 0x71, - 0x4b, 0x13, 0x6f, 0x79, 0xcb, 0x55, 0xed, 0xa2, 0xb8, 0x54, 0xc6, 0x5b, 0x6e, 0xba, 0xfa, 0x5d, - 0x14, 0x17, 0xcd, 0x78, 0xcb, 0xba, 0xab, 0xe4, 0x45, 0x71, 0xf9, 0x8c, 0xb7, 0xdc, 0x72, 0xdf, - 0xa1, 0x7f, 0x24, 0xc8, 0x8f, 0xd9, 0x04, 0xa5, 0x09, 0xf2, 0x83, 0x3e, 0xd2, 0xd3, 0x04, 0xe9, - 0x41, 0x1f, 0xd9, 0x69, 0x82, 0xec, 0xa0, 0x8f, 0xe4, 0x34, 0x41, 0x72, 0xd0, 0x47, 0x6e, 0x9a, - 0x20, 0x37, 0xe8, 0x23, 0x35, 0x4d, 0x90, 0x1a, 0xf4, 0x91, 0x99, 0x26, 0xc8, 0x0c, 0xfa, 0x48, - 0x4c, 0x13, 0x24, 0x06, 0x7d, 0xe4, 0xa5, 0x09, 0xf2, 0x82, 0x3e, 0xd2, 0x9a, 0x17, 0xa5, 0x05, - 0xfd, 0x64, 0x35, 0x2f, 0xca, 0x0a, 0xfa, 0x49, 0xea, 0xff, 0x45, 0x49, 0x8d, 0x21, 0xab, 0xb8, - 0x75, 0x88, 0x51, 0xd3, 0xbc, 0xa8, 0x26, 0xe8, 0xa7, 0xa4, 0x79, 0x51, 0x49, 0xd0, 0x4f, 0x45, - 0xf3, 0xa2, 0x8a, 0xa0, 0x9f, 0x82, 0x9e, 0x88, 0x0a, 0x72, 0xb7, 0xf8, 0x68, 0xc2, 0x8a, 0x62, - 0x98, 0x82, 0x40, 0x04, 0x05, 0x81, 0x08, 0x0a, 0x02, 0x11, 0x14, 0x04, 0x22, 0x28, 0x08, 0x44, - 0x50, 0x10, 0x88, 0xa0, 0x20, 0x10, 0x41, 0x41, 0x20, 0x8a, 0x82, 0x40, 0x24, 0x05, 0x81, 0x20, - 0x05, 0xcd, 0x8b, 0x1b, 0x1e, 0xa0, 0xdf, 0x84, 0x34, 0x2f, 0xae, 0x7c, 0x86, 0x4b, 0x08, 0x44, - 0x92, 0x10, 0x08, 0x92, 0xd0, 0x47, 0xa8, 0x91, 0xe2, 0x24, 0x84, 0x97, 0x87, 0xce, 0x6a, 0x06, - 0x5a, 0x8b, 0xb0, 0xbf, 0xc2, 0x4f, 0x53, 0x6b, 0x11, 0xd6, 0xa8, 0x07, 0xe9, 0xcc, 0x3b, 0x0b, - 0xd5, 0x22, 0xcc, 0x42, 0xd7, 0xa8, 0x86, 0xd6, 0x22, 0xec, 0xbb, 0xf0, 0x6a, 0x6f, 0x7d, 0xd0, - 0x24, 0x70, 0x3d, 0xd2, 0x24, 0x70, 0x23, 0xd2, 0x24, 0x70, 0xd3, 0x65, 0xf0, 0x27, 0x32, 0x7c, - 0xd5, 0x65, 0xd0, 0xf9, 0xb5, 0xfd, 0xe0, 0xd8, 0x9a, 0x02, 0xdc, 0x15, 0x2a, 0x85, 0xac, 0xda, - 0x30, 0x34, 0x5a, 0xeb, 0x37, 0xb7, 0xf9, 0xb5, 0xaa, 0xd2, 0xb0, 0xeb, 0x37, 0x0c, 0xe3, 0xf8, - 0x5d, 0xe8, 0x3c, 0x04, 0x37, 0x5a, 0x3d, 0x7b, 0xb6, 0xf0, 0x1b, 0xb6, 0xd2, 0x00, 0xed, 0x56, - 0x4f, 0x69, 0xc0, 0x51, 0x7b, 0xdc, 0x9e, 0x4d, 0xef, 0x69, 0x06, 0x46, 0xd4, 0xdb, 0x03, 0xf7, - 0xb4, 0x27, 0x12, 0x9c, 0xe3, 0xa4, 0x7c, 0x36, 0x2b, 0x06, 0x6f, 0x45, 0x5a, 0x31, 0xe0, 0x0a, - 0xc4, 0x5d, 0x3d, 0xf8, 0x9a, 0x77, 0xa1, 0x9a, 0xad, 0x12, 0x71, 0x25, 0xe1, 0xc7, 0x70, 0xd2, - 0xbd, 0x02, 0xfb, 0x91, 0x6d, 0x35, 0xfc, 0x65, 0xa6, 0x5f, 0x69, 0xae, 0x0a, 0x2f, 0xd1, 0x06, - 0xba, 0xd1, 0x6a, 0xd5, 0x4a, 0xe8, 0x89, 0xb3, 0x63, 0xbf, 0x00, 0xe8, 0xa1, 0x64, 0xf5, 0x36, - 0x9b, 0xc7, 0x61, 0xef, 0x22, 0x12, 0x56, 0x6b, 0x7e, 0xf2, 0x2b, 0xd4, 0x9e, 0x5f, 0x82, 0xc9, - 0x3b, 0x46, 0x57, 0xdf, 0xed, 0xec, 0x1b, 0xed, 0x1f, 0xe9, 0x2d, 0xc1, 0x71, 0x8c, 0x38, 0x96, - 0x62, 0x4f, 0x2d, 0xeb, 0x9f, 0x4b, 0xf0, 0x02, 0x6b, 0xfe, 0x1d, 0xc4, 0xfd, 0x0d, 0xc3, 0xea, - 0xe9, 0xdf, 0x86, 0x09, 0x1d, 0x13, 0x67, 0xdf, 0xbb, 0xc6, 0xc9, 0x63, 0xa4, 0xaf, 0xf9, 0x92, - 0xfd, 0xb7, 0x41, 0x5d, 0x84, 0x97, 0x20, 0x64, 0xd8, 0x42, 0xe6, 0x0d, 0x18, 0x77, 0xce, 0xcf, - 0xc7, 0x35, 0x21, 0xc4, 0xf5, 0x1b, 0x9f, 0xb8, 0x6c, 0x1d, 0x29, 0x37, 0xb9, 0xb8, 0x98, 0xa7, - 0x55, 0x5f, 0xf3, 0x25, 0x22, 0xbe, 0x72, 0xc2, 0xea, 0xff, 0x6c, 0x45, 0x85, 0x07, 0xb9, 0x08, - 0x13, 0x35, 0xd1, 0xc6, 0x3f, 0xce, 0x2a, 0x8c, 0xd5, 0x3b, 0x2d, 0x5d, 0x79, 0x15, 0xc6, 0x6f, - 0x35, 0x77, 0xf4, 0x43, 0x9c, 0xe4, 0xf8, 0xa1, 0xf5, 0x0f, 0x6a, 0xbf, 0x13, 0x95, 0x83, 0xf6, - 0x61, 0xab, 0xab, 0x1b, 0x78, 0xc9, 0x1e, 0xbf, 0x41, 0xb7, 0x7c, 0x1a, 0x89, 0x5d, 0x8c, 0x65, - 0x35, 0x38, 0xce, 0x48, 0x42, 0x89, 0xa3, 0xc7, 0xff, 0xd4, 0x88, 0xf5, 0x55, 0x4e, 0x49, 0xd6, - 0x57, 0x25, 0x25, 0x67, 0xdf, 0x80, 0x53, 0xc2, 0x0b, 0x32, 0x0b, 0xa9, 0xa6, 0xa0, 0xf5, 0x55, - 0x4b, 0x8d, 0x67, 0x62, 0x0f, 0x7f, 0x3d, 0x33, 0x92, 0x7d, 0x0b, 0x2a, 0xde, 0x57, 0x69, 0xca, - 0x28, 0x94, 0x37, 0xac, 0x53, 0xbe, 0x06, 0xe5, 0x32, 0x3a, 0x67, 0x66, 0xea, 0xa7, 0xbf, 0x98, - 0x1b, 0x2f, 0xeb, 0xa6, 0xa9, 0x77, 0x91, 0x75, 0xb9, 0x8c, 0x9d, 0xdf, 0x81, 0x17, 0x7c, 0x5f, - 0xc5, 0x59, 0xfe, 0x95, 0x8a, 0xe3, 0x5f, 0xad, 0x7a, 0xfc, 0xab, 0x55, 0xdb, 0x5f, 0x2a, 0x91, - 0x25, 0xcd, 0x0d, 0xc5, 0xe7, 0x35, 0x96, 0xda, 0x62, 0x96, 0x50, 0x37, 0x4a, 0xef, 0x60, 0xdb, - 0xb2, 0xaf, 0xad, 0x1e, 0xb2, 0x24, 0x5a, 0x2e, 0x55, 0xb0, 0x7f, 0xc5, 0xd7, 0x7f, 0x4f, 0x58, - 0xb7, 0xe3, 0xe7, 0x20, 0x7c, 0x92, 0x0a, 0x0d, 0xb8, 0xea, 0x7b, 0x92, 0x03, 0x66, 0x37, 0x75, - 0x95, 0x06, 0x5c, 0xf3, 0xb5, 0x6d, 0x87, 0xec, 0x2a, 0xaa, 0x95, 0x96, 0xf1, 0x6d, 0x64, 0x23, - 0xaf, 0x5c, 0x20, 0x2a, 0xe0, 0x6a, 0x1c, 0x27, 0xc8, 0xb9, 0xa3, 0x6c, 0xe4, 0xd1, 0x15, 0x3a, - 0x0e, 0xe5, 0x40, 0x87, 0xe0, 0x2c, 0x39, 0x27, 0x29, 0xe7, 0x4b, 0xd7, 0xf1, 0x49, 0x2a, 0x81, - 0x27, 0x09, 0x49, 0x95, 0x73, 0xa6, 0x4a, 0xbe, 0xbc, 0x7d, 0xf2, 0xc9, 0xcc, 0xc8, 0x53, 0xf4, - 0xf9, 0x3b, 0xfa, 0x7c, 0xfc, 0xc9, 0x8c, 0xf4, 0x19, 0xfa, 0x7c, 0x8e, 0x3e, 0x5f, 0xa0, 0xcf, - 0x7b, 0xcf, 0x67, 0xa4, 0xc7, 0xe8, 0xf3, 0x21, 0xfa, 0xfc, 0x01, 0x7d, 0x9e, 0xa0, 0xcf, 0xc9, - 0x73, 0x64, 0x8f, 0x3e, 0x1f, 0xa3, 0xdf, 0x9f, 0xa1, 0xef, 0xcf, 0xd1, 0xf7, 0x17, 0xe8, 0xfb, - 0xbd, 0x4f, 0x67, 0xa4, 0x47, 0x9f, 0xce, 0x8c, 0x3c, 0x46, 0xdf, 0xff, 0x09, 0x00, 0x00, 0xff, - 0xff, 0x44, 0x24, 0xbf, 0xc5, 0xb5, 0x34, 0x00, 0x00, + // 3090 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, + 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, + 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, + 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, + 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, + 0xb0, 0xb0, 0xdb, 0x39, 0xba, 0xdf, 0xe9, 0x2d, 0x9d, 0x18, 0xbd, 0xe6, 0x9e, 0x7e, 0x62, 0x1c, + 0x35, 0xbb, 0xbd, 0x83, 0xe6, 0xa1, 0xde, 0x5d, 0x32, 0x0f, 0x74, 0x53, 0xef, 0x99, 0x8b, 0xc7, + 0xdd, 0x8e, 0xd9, 0x91, 0x13, 0xd6, 0xdf, 0xe9, 0xeb, 0xfb, 0x6d, 0xf3, 0xe0, 0xe4, 0xfe, 0xe2, + 0x6e, 0xe7, 0x68, 0x69, 0xbf, 0xb3, 0xdf, 0x59, 0xb2, 0x85, 0xf7, 0x4f, 0xf6, 0xec, 0x5f, 0xf6, + 0x0f, 0xfb, 0x2f, 0xc7, 0x48, 0xfb, 0x27, 0x86, 0xc9, 0x7a, 0xbb, 0xb5, 0x7d, 0x6c, 0xd6, 0x9b, + 0x66, 0xfb, 0x2d, 0x5d, 0x9e, 0x85, 0xb1, 0x5b, 0x6d, 0xfd, 0xb0, 0xb5, 0xac, 0xa0, 0x0c, 0xca, + 0xa2, 0x72, 0xe2, 0xf4, 0x6c, 0x6e, 0xa4, 0x41, 0xc6, 0xa8, 0xb4, 0xa0, 0x48, 0x19, 0x94, 0x95, + 0x38, 0x69, 0x81, 0x4a, 0x57, 0x14, 0x9c, 0x41, 0xd9, 0x51, 0x4e, 0xba, 0x42, 0xa5, 0x45, 0x25, + 0x91, 0x41, 0x59, 0xcc, 0x49, 0x8b, 0x54, 0xba, 0xaa, 0x8c, 0x66, 0x50, 0xf6, 0x12, 0x27, 0x5d, + 0xa5, 0xd2, 0x35, 0x65, 0x2c, 0x83, 0xb2, 0x09, 0x4e, 0xba, 0x46, 0xa5, 0x37, 0x94, 0x67, 0x32, + 0x28, 0x7b, 0x99, 0x93, 0xde, 0xa0, 0xd2, 0x75, 0x25, 0x99, 0x41, 0x59, 0x99, 0x93, 0xae, 0x53, + 0xe9, 0x4d, 0x65, 0x3c, 0x83, 0xb2, 0xcf, 0x70, 0xd2, 0x9b, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x9e, + 0x57, 0x20, 0x83, 0xb2, 0xd3, 0x44, 0xec, 0x0e, 0x7a, 0xf2, 0x65, 0x65, 0x22, 0x83, 0xb2, 0x63, + 0xbc, 0x7c, 0xd9, 0x93, 0x17, 0x94, 0xc9, 0x0c, 0xca, 0xa6, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x28, + 0x97, 0x32, 0x28, 0x9b, 0xe4, 0xe5, 0x2b, 0x9e, 0xbc, 0xa8, 0x4c, 0x65, 0x50, 0x76, 0x9c, 0x97, + 0x17, 0x3d, 0xf9, 0xaa, 0x32, 0x9d, 0x41, 0xd9, 0x49, 0x5e, 0xbe, 0xaa, 0xbd, 0x6b, 0xc3, 0x6b, + 0x78, 0xf0, 0xce, 0xf0, 0xf0, 0x52, 0x60, 0x67, 0x78, 0x60, 0x29, 0xa4, 0x33, 0x3c, 0xa4, 0x14, + 0xcc, 0x19, 0x1e, 0x4c, 0x0a, 0xe3, 0x0c, 0x0f, 0x23, 0x05, 0x70, 0x86, 0x07, 0x90, 0x42, 0x37, + 0xc3, 0x43, 0x47, 0x41, 0x9b, 0xe1, 0x41, 0xa3, 0x70, 0xcd, 0xf0, 0x70, 0x51, 0xa0, 0x14, 0x01, + 0x28, 0x0f, 0x22, 0x45, 0x80, 0xc8, 0x03, 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, + 0x40, 0x14, 0x01, 0x10, 0x0f, 0x0a, 0x45, 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x43, 0x3f, 0x0e, + 0xc8, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, + 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x38, 0xc7, 0x70, + 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, + 0xcd, 0x31, 0x0f, 0xde, 0x19, 0x1e, 0xde, 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, + 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, + 0xb0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, + 0x9a, 0x63, 0x98, 0xcd, 0xb1, 0x3f, 0x63, 0x90, 0x9d, 0x1c, 0xbb, 0xd3, 0xdc, 0xfd, 0xa1, 0xde, + 0x22, 0x50, 0xa8, 0x42, 0xa6, 0x8d, 0x59, 0xd0, 0xa5, 0x3c, 0x48, 0x54, 0x21, 0xd7, 0x78, 0x79, + 0x81, 0xca, 0xdd, 0x6c, 0xe3, 0xe5, 0x2b, 0x54, 0xee, 0xe6, 0x1b, 0x2f, 0x2f, 0x52, 0xb9, 0x9b, + 0x71, 0xbc, 0x7c, 0x95, 0xca, 0xdd, 0x9c, 0xe3, 0xe5, 0x6b, 0x54, 0xee, 0x66, 0x1d, 0x2f, 0xbf, + 0x41, 0xe5, 0x6e, 0xde, 0xf1, 0xf2, 0x75, 0x2a, 0x77, 0x33, 0x8f, 0x97, 0xdf, 0x94, 0x33, 0x62, + 0xee, 0xb9, 0x0a, 0x14, 0xda, 0x8c, 0x98, 0x7d, 0x82, 0xc6, 0xb2, 0xa7, 0xe1, 0xe6, 0x9f, 0xa0, + 0x51, 0xf0, 0x34, 0xdc, 0x0c, 0x14, 0x34, 0x56, 0xb4, 0xf7, 0x6c, 0xf8, 0x0c, 0x11, 0xbe, 0xb4, + 0x00, 0x9f, 0xc4, 0x40, 0x97, 0x16, 0xa0, 0x93, 0x18, 0xd8, 0xd2, 0x02, 0x6c, 0x12, 0x03, 0x59, + 0x5a, 0x80, 0x4c, 0x62, 0xe0, 0x4a, 0x0b, 0x70, 0x49, 0x0c, 0x54, 0x69, 0x01, 0x2a, 0x89, 0x81, + 0x29, 0x2d, 0xc0, 0x24, 0x31, 0x10, 0xa5, 0x05, 0x88, 0x24, 0x06, 0x9e, 0xb4, 0x00, 0x8f, 0xc4, + 0x40, 0x33, 0x2b, 0x42, 0x23, 0xb1, 0xb0, 0xcc, 0x8a, 0xb0, 0x48, 0x2c, 0x24, 0xb3, 0x22, 0x24, + 0x12, 0x0b, 0xc7, 0xac, 0x08, 0x87, 0xc4, 0x42, 0xf1, 0xa5, 0xe4, 0x76, 0x84, 0x6f, 0x9a, 0xdd, + 0x93, 0x5d, 0xf3, 0x42, 0x1d, 0x61, 0x9e, 0x6b, 0x1f, 0x26, 0x0a, 0xf2, 0xa2, 0xdd, 0xb0, 0xb2, + 0x1d, 0xa7, 0xf0, 0x06, 0xcb, 0x73, 0x8d, 0x05, 0x63, 0x61, 0x04, 0x5b, 0x14, 0x2f, 0xd4, 0x1b, + 0xe6, 0xb9, 0x36, 0x23, 0xda, 0xbf, 0xf5, 0xaf, 0xbc, 0x63, 0x7b, 0x24, 0xb9, 0x1d, 0x1b, 0x09, + 0xff, 0xb0, 0x1d, 0x5b, 0x2e, 0x3a, 0xe4, 0x34, 0xd8, 0xb9, 0xe8, 0x60, 0xfb, 0xde, 0x3a, 0x71, + 0x3b, 0xb8, 0x5c, 0x74, 0x68, 0x69, 0x50, 0x9f, 0x6e, 0xbf, 0x45, 0x18, 0xdc, 0xd0, 0x8f, 0x03, + 0x18, 0x3c, 0x6c, 0xbf, 0x95, 0xe7, 0x4a, 0xc9, 0xb0, 0x0c, 0xc6, 0x43, 0x33, 0x78, 0xd8, 0xce, + 0x2b, 0xcf, 0x95, 0x97, 0xa1, 0x19, 0xfc, 0x15, 0xf4, 0x43, 0x84, 0xc1, 0x5e, 0xf8, 0x87, 0xed, + 0x87, 0x72, 0xd1, 0x21, 0x0f, 0x64, 0x30, 0x1e, 0x82, 0xc1, 0x71, 0xfa, 0xa3, 0x5c, 0x74, 0x68, + 0x83, 0x19, 0x7c, 0xe1, 0x6e, 0xe6, 0x7d, 0x04, 0x97, 0xeb, 0xed, 0x56, 0xed, 0xe8, 0xbe, 0xde, + 0x6a, 0xe9, 0x2d, 0x12, 0xc7, 0x3c, 0x57, 0x09, 0x42, 0xa0, 0x7e, 0x7c, 0x36, 0xe7, 0x45, 0x78, + 0x15, 0x92, 0x4e, 0x4c, 0xf3, 0x79, 0xe5, 0x14, 0x45, 0x54, 0x38, 0xaa, 0x2a, 0x5f, 0x75, 0xcd, + 0x96, 0xf3, 0xca, 0xdf, 0x11, 0x53, 0xe5, 0xe8, 0xb0, 0xf6, 0x73, 0xdb, 0x43, 0xe3, 0xc2, 0x1e, + 0x2e, 0xc5, 0xf2, 0x90, 0xf1, 0xed, 0x05, 0x9f, 0x6f, 0x8c, 0x57, 0x27, 0x30, 0x5d, 0x6f, 0xb7, + 0xea, 0x7a, 0xcf, 0x8c, 0xe7, 0x92, 0xa3, 0x23, 0xd4, 0x83, 0x3c, 0x47, 0x4b, 0xd6, 0x82, 0x52, + 0x9a, 0xaf, 0x11, 0x5a, 0xdb, 0x5a, 0xd6, 0xe0, 0x96, 0xcd, 0x85, 0x2d, 0xeb, 0x55, 0x76, 0xba, + 0x60, 0x2e, 0x6c, 0x41, 0x2f, 0x87, 0xe8, 0x52, 0x6f, 0xbb, 0x2f, 0xe7, 0xca, 0x49, 0xcf, 0xec, + 0x1c, 0xc9, 0xb3, 0x20, 0x6d, 0xb6, 0xec, 0x35, 0x26, 0xcb, 0x93, 0x96, 0x53, 0x1f, 0x9f, 0xcd, + 0x25, 0xee, 0x9e, 0xb4, 0x5b, 0x0d, 0x69, 0xb3, 0x25, 0xdf, 0x86, 0xd1, 0xef, 0x34, 0x0f, 0x4f, + 0x74, 0xfb, 0x15, 0x31, 0x59, 0x2e, 0x12, 0x85, 0x97, 0x43, 0xf7, 0x88, 0xac, 0x85, 0x97, 0x76, + 0xed, 0xa9, 0x17, 0xef, 0xb6, 0x0d, 0x73, 0xb9, 0xb0, 0xde, 0x70, 0xa6, 0xd0, 0xbe, 0x0f, 0xe0, + 0xac, 0x59, 0x6d, 0xf6, 0x0e, 0xe4, 0xba, 0x3b, 0xb3, 0xb3, 0xf4, 0xfa, 0xc7, 0x67, 0x73, 0xc5, + 0x38, 0xb3, 0x5e, 0x6f, 0x35, 0x7b, 0x07, 0xd7, 0xcd, 0x07, 0xc7, 0xfa, 0x62, 0xf9, 0x81, 0xa9, + 0xf7, 0xdc, 0xd9, 0x8f, 0xdd, 0xb7, 0x1e, 0x79, 0x2e, 0x85, 0x79, 0xae, 0x24, 0xf7, 0x4c, 0xb7, + 0xf8, 0x67, 0xca, 0x3f, 0xe9, 0xf3, 0xbc, 0xed, 0xbe, 0x24, 0x84, 0x48, 0xe2, 0xa8, 0x48, 0xe2, + 0x8b, 0x46, 0xf2, 0xd8, 0xad, 0x8f, 0xc2, 0xb3, 0xe2, 0x41, 0xcf, 0x8a, 0x2f, 0xf2, 0xac, 0xff, + 0x76, 0xb2, 0x95, 0xe6, 0xd3, 0x5d, 0xa3, 0xdd, 0x31, 0xbe, 0x76, 0x7b, 0x41, 0x4f, 0xb5, 0x0b, + 0x28, 0x25, 0x4e, 0x1f, 0xce, 0x21, 0xed, 0x7d, 0xc9, 0x7d, 0x72, 0x27, 0x91, 0x9e, 0xec, 0xc9, + 0xbf, 0x2e, 0x3d, 0xd5, 0x57, 0x11, 0xa1, 0x5f, 0x21, 0x98, 0xf1, 0x55, 0x72, 0x27, 0x4c, 0x4f, + 0xb7, 0x9c, 0x1b, 0xc3, 0x96, 0x73, 0xe2, 0xe0, 0xef, 0x11, 0x3c, 0x27, 0x94, 0x57, 0xc7, 0xbd, + 0x25, 0xc1, 0xbd, 0xe7, 0xfd, 0x2b, 0xd9, 0x8a, 0x8c, 0x77, 0x2c, 0xbc, 0x82, 0x01, 0x33, 0x33, + 0xc5, 0xbd, 0x28, 0xe0, 0x3e, 0x4b, 0x0d, 0x02, 0xc2, 0xe5, 0x32, 0x80, 0xb8, 0xdd, 0x81, 0xc4, + 0x4e, 0x57, 0xd7, 0x65, 0x15, 0xa4, 0xed, 0x2e, 0xf1, 0x70, 0xca, 0xb1, 0xdf, 0xee, 0x96, 0xbb, + 0x4d, 0x63, 0xf7, 0xa0, 0x21, 0x6d, 0x77, 0xe5, 0xab, 0x80, 0x37, 0x8c, 0x16, 0xf1, 0x68, 0xda, + 0x51, 0xd8, 0x30, 0x5a, 0x44, 0xc3, 0x92, 0xc9, 0x2a, 0x24, 0xde, 0xd0, 0x9b, 0x7b, 0xc4, 0x09, + 0x70, 0x74, 0xac, 0x91, 0x86, 0x3d, 0x4e, 0x16, 0xfc, 0x1e, 0x24, 0xdd, 0x89, 0xe5, 0x79, 0xcb, + 0x62, 0xcf, 0x24, 0xcb, 0x12, 0x0b, 0xcb, 0x1d, 0xf2, 0xe6, 0xb2, 0xa5, 0xf2, 0x02, 0x8c, 0x36, + 0xda, 0xfb, 0x07, 0x26, 0x59, 0xdc, 0xaf, 0xe6, 0x88, 0xb5, 0x7b, 0x30, 0x4e, 0x3d, 0x7a, 0xca, + 0x53, 0x57, 0x9d, 0x47, 0x93, 0xd3, 0xec, 0xfb, 0xc4, 0xdd, 0xb7, 0x74, 0x86, 0xe4, 0x0c, 0x24, + 0xdf, 0x34, 0xbb, 0x5e, 0xd1, 0x77, 0x3b, 0x52, 0x3a, 0xaa, 0xbd, 0x8b, 0x20, 0x59, 0xd5, 0xf5, + 0x63, 0x3b, 0xe0, 0xd7, 0x20, 0x51, 0xed, 0xfc, 0xc8, 0x20, 0x0e, 0x5e, 0x26, 0x11, 0xb5, 0xc4, + 0x24, 0xa6, 0xb6, 0x58, 0xbe, 0xc6, 0xc6, 0xfd, 0x59, 0x1a, 0x77, 0x46, 0xcf, 0x8e, 0xbd, 0xc6, + 0xc5, 0x9e, 0x00, 0x68, 0x29, 0xf9, 0xe2, 0x7f, 0x03, 0x26, 0x98, 0x55, 0xe4, 0x2c, 0x71, 0x43, + 0x12, 0x0d, 0xd9, 0x58, 0x59, 0x1a, 0x9a, 0x0e, 0x97, 0xb8, 0x85, 0x2d, 0x53, 0x26, 0xc4, 0x21, + 0xa6, 0x76, 0x98, 0x73, 0x7c, 0x98, 0x83, 0x55, 0x49, 0xa8, 0xf3, 0x4e, 0x8c, 0xec, 0x70, 0xcf, + 0x3b, 0xe4, 0x0c, 0x07, 0xd1, 0xfa, 0x5b, 0x1b, 0x05, 0x5c, 0x6f, 0x1f, 0x6a, 0xaf, 0x02, 0x38, + 0x29, 0x5f, 0x33, 0x4e, 0x8e, 0x84, 0xac, 0x9b, 0x72, 0x03, 0xbc, 0x73, 0xa0, 0xef, 0xe8, 0x3d, + 0x5b, 0x85, 0xef, 0xa7, 0xac, 0x02, 0x03, 0x4e, 0x8a, 0xd9, 0xf6, 0x2f, 0x45, 0xda, 0x07, 0x76, + 0x62, 0x96, 0xaa, 0xe2, 0xa8, 0xde, 0xd3, 0xcd, 0x0d, 0xa3, 0x63, 0x1e, 0xe8, 0x5d, 0xc1, 0xa2, + 0x20, 0xaf, 0x70, 0x09, 0x3b, 0x55, 0x78, 0x81, 0x5a, 0x84, 0x1a, 0xad, 0x68, 0x1f, 0xda, 0x0e, + 0x5a, 0xad, 0x80, 0xef, 0x01, 0x71, 0x8c, 0x07, 0x94, 0xd7, 0xb8, 0xfe, 0x6d, 0x80, 0x9b, 0xc2, + 0xa7, 0xe5, 0x4d, 0xee, 0x3b, 0x67, 0xb0, 0xb3, 0xfc, 0x37, 0xa6, 0x1b, 0x53, 0xd7, 0xe5, 0x97, + 0x22, 0x5d, 0x0e, 0xe9, 0x6e, 0x87, 0x8d, 0x29, 0x8e, 0x1b, 0xd3, 0x3f, 0xd1, 0x8e, 0xc3, 0x1a, + 0xae, 0xea, 0x7b, 0xcd, 0x93, 0x43, 0x53, 0x7e, 0x39, 0x12, 0xfb, 0x12, 0xaa, 0x50, 0x57, 0x8b, + 0x71, 0xe1, 0x2f, 0x49, 0xe5, 0x32, 0x75, 0xf7, 0xc6, 0x10, 0x14, 0x28, 0x49, 0x95, 0x0a, 0x2d, + 0xdb, 0xc9, 0xf7, 0x1e, 0xce, 0xa1, 0x0f, 0x1e, 0xce, 0x8d, 0x68, 0xbf, 0x43, 0x70, 0x99, 0x68, + 0x32, 0xc4, 0xbd, 0x2e, 0x38, 0x7f, 0xc5, 0xad, 0x19, 0x41, 0x11, 0xf8, 0xaf, 0x91, 0xf7, 0xaf, + 0x08, 0x14, 0x9f, 0xaf, 0x6e, 0xbc, 0xf3, 0xb1, 0x5c, 0x2e, 0xa1, 0xda, 0xff, 0x3e, 0xe6, 0xf7, + 0x60, 0x74, 0xa7, 0x7d, 0xa4, 0x77, 0xad, 0x37, 0x81, 0xf5, 0x87, 0xe3, 0xb2, 0x7b, 0x98, 0xe3, + 0x0c, 0xb9, 0x32, 0xc7, 0x39, 0x4e, 0x56, 0x90, 0x15, 0x48, 0x54, 0x9b, 0x66, 0xd3, 0xf6, 0x60, + 0x92, 0xd6, 0xd7, 0xa6, 0xd9, 0xd4, 0x56, 0x60, 0x72, 0xeb, 0x41, 0xed, 0x6d, 0x53, 0x37, 0x5a, + 0xcd, 0xfb, 0x87, 0xe2, 0x19, 0xa8, 0xdb, 0xaf, 0x2e, 0xe7, 0x46, 0x93, 0xad, 0xd4, 0x29, 0x2a, + 0x25, 0x6c, 0x7f, 0xde, 0x82, 0xa9, 0x6d, 0xcb, 0x6d, 0xdb, 0x8e, 0x33, 0x73, 0x56, 0xc7, 0xf4, + 0xe1, 0x85, 0xa6, 0x0c, 0x7b, 0x4d, 0x59, 0x06, 0xd0, 0x16, 0xdf, 0x3a, 0xb1, 0x7e, 0x34, 0xd0, + 0x56, 0x2e, 0x91, 0x9c, 0x4a, 0x5d, 0xce, 0x25, 0x92, 0x90, 0xba, 0x44, 0xd6, 0xfd, 0x1b, 0x86, + 0x94, 0xd3, 0xea, 0x54, 0xf5, 0xbd, 0xb6, 0xd1, 0x36, 0xfd, 0xfd, 0x2a, 0xf5, 0x58, 0xfe, 0x26, + 0x8c, 0x5b, 0x21, 0xb5, 0x7f, 0x11, 0xc0, 0xae, 0x92, 0x16, 0x45, 0x98, 0x82, 0x0c, 0xd8, 0xd4, + 0xf1, 0x6c, 0xe4, 0x5b, 0x80, 0xeb, 0xf5, 0x2d, 0xf2, 0x72, 0x2b, 0x0e, 0x34, 0xdd, 0xd2, 0x7b, + 0xbd, 0xe6, 0xbe, 0x4e, 0x7e, 0x91, 0xb1, 0xde, 0x7e, 0xc3, 0x9a, 0x40, 0x2e, 0x82, 0x54, 0xdf, + 0x22, 0x0d, 0xef, 0x7c, 0x9c, 0x69, 0x1a, 0x52, 0x7d, 0x2b, 0xfd, 0x17, 0x04, 0x97, 0xb8, 0x51, + 0x59, 0x83, 0x49, 0x67, 0x80, 0x79, 0xdc, 0xb1, 0x06, 0x37, 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, + 0xf4, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, 0x22, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, + 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, 0x79, 0x1a, 0x26, 0x76, 0xee, 0xdd, 0xa9, 0xfd, 0xa0, 0x5e, + 0x7b, 0x73, 0xa7, 0x56, 0x4d, 0x21, 0xed, 0x0f, 0x08, 0x26, 0x48, 0xdb, 0xba, 0xdb, 0x39, 0xd6, + 0xe5, 0x32, 0xa0, 0x0d, 0xc2, 0x87, 0x27, 0xf3, 0x1b, 0x6d, 0xc8, 0x4b, 0x80, 0xca, 0xf1, 0xa1, + 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x68, 0xff, 0xc2, 0xf0, 0x2c, + 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x2a, 0xff, 0xdd, 0x54, 0x1a, 0x5f, 0x2e, 0xac, 0x14, 0x17, 0xad, + 0x7f, 0x28, 0x25, 0xaf, 0xf2, 0x9f, 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, + 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, + 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, + 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, + 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, 0xd0, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, + 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, 0xf4, 0xae, 0xfc, 0x0d, 0x98, 0x74, 0x86, 0x9c, 0xaf, 0x9c, + 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x80, 0x19, 0x67, 0xa0, 0xde, + 0x3c, 0xd2, 0xb9, 0x4b, 0x46, 0x0b, 0xc2, 0x91, 0xd2, 0x94, 0x65, 0xde, 0x3f, 0x9b, 0x73, 0x46, + 0x37, 0x28, 0x99, 0x16, 0x84, 0xc3, 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0x2c, 0x08, 0x17, 0x8f, 0x78, + 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, 0x15, 0x24, 0x5e, 0xaf, 0x4a, 0x59, 0xb6, 0x20, 0x5c, 0x46, + 0xe2, 0xf5, 0x6a, 0x94, 0x6f, 0x0b, 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x8b, 0x32, 0x6f, 0x41, 0x38, + 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, 0xb8, 0x20, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x5c, + 0x10, 0x2e, 0x2d, 0xf1, 0x7a, 0x9b, 0x94, 0x97, 0x59, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xdb, 0x63, + 0x68, 0x56, 0xbc, 0xc8, 0xc4, 0x6b, 0x7e, 0xdb, 0xe3, 0x6a, 0x56, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, + 0xe1, 0xb1, 0x36, 0x2b, 0x1e, 0x95, 0xf1, 0x9a, 0x5b, 0x1e, 0x7f, 0xb3, 0xe2, 0xa1, 0x19, 0xaf, + 0x59, 0xf7, 0x98, 0x9c, 0x15, 0x8f, 0xcf, 0x78, 0xcd, 0x6d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, + 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, + 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, + 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, + 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, 0x6b, 0x5e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x5e, 0xa4, 0x15, + 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, 0xe3, 0xfd, 0xb3, 0xb9, 0x51, 0x6b, 0x88, 0x61, 0xd3, 0xbc, + 0xc8, 0x26, 0x08, 0x62, 0xd2, 0xbc, 0xc8, 0x24, 0x08, 0x62, 0xd1, 0xbc, 0xc8, 0x22, 0x08, 0x62, + 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, + 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, + 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x79, 0xf1, 0xc2, 0x03, + 0x04, 0x15, 0xa4, 0x79, 0xf1, 0xe4, 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, + 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x5a, 0x8c, 0xfb, 0x15, 0x41, + 0x9c, 0x5a, 0x8b, 0x71, 0x46, 0x3d, 0x88, 0x67, 0xfe, 0x2a, 0x54, 0x8b, 0x51, 0x85, 0x6e, 0x51, + 0x0e, 0xad, 0xc5, 0xb8, 0x77, 0xe1, 0xe7, 0xde, 0xfa, 0xa0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, + 0x19, 0xab, 0x08, 0xdc, 0xf6, 0x10, 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0xed, 0x3c, + 0x38, 0xb6, 0x4a, 0x80, 0x77, 0x42, 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x66, 0x4b, 0xbe, + 0xc3, 0x9f, 0x55, 0x95, 0x86, 0x3d, 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0xf3, 0x80, 0x37, 0x5b, + 0x3d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, 0x69, 0x58, 0x62, 0xb9, 0x01, 0x63, 0xb6, 0x7a, 0xcf, 0x86, + 0xf7, 0x22, 0x0b, 0x57, 0x1b, 0x64, 0x26, 0xed, 0x11, 0x82, 0x0c, 0x47, 0xe5, 0xa7, 0x73, 0x62, + 0xf0, 0x4a, 0xac, 0x13, 0x03, 0x2e, 0x41, 0xbc, 0xd3, 0x83, 0xff, 0xf7, 0x1f, 0x54, 0xb3, 0x59, + 0x22, 0x9e, 0x24, 0xfc, 0x04, 0xa6, 0xbc, 0x27, 0xb0, 0x3f, 0xd9, 0x56, 0xa3, 0x37, 0x33, 0x83, + 0x52, 0x73, 0x55, 0xd8, 0x44, 0x1b, 0x68, 0x46, 0xb3, 0x55, 0x2b, 0xc1, 0x74, 0xbd, 0x63, 0x6f, + 0x00, 0xf4, 0xda, 0x1d, 0xa3, 0xb7, 0xd5, 0x3c, 0x8e, 0xda, 0x8b, 0x48, 0x5a, 0xad, 0xf9, 0xe9, + 0xaf, 0xe7, 0x46, 0xb4, 0x97, 0x61, 0xf2, 0xae, 0xd1, 0xd5, 0x77, 0x3b, 0xfb, 0x46, 0xfb, 0xc7, + 0x7a, 0x4b, 0x30, 0x1c, 0x77, 0x0d, 0x4b, 0x89, 0xc7, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x61, 0xd5, + 0xbf, 0xdb, 0x36, 0x0f, 0x36, 0x0d, 0xab, 0xa7, 0x7f, 0x15, 0x92, 0x3a, 0x01, 0xce, 0x7e, 0x77, + 0x4d, 0xb8, 0x9f, 0x91, 0x81, 0xea, 0x8b, 0xf6, 0xbf, 0x0d, 0x6a, 0x22, 0x6c, 0x82, 0xb8, 0xcb, + 0x16, 0xd2, 0xd7, 0x60, 0xd4, 0x99, 0x9f, 0xf7, 0xeb, 0x92, 0xe0, 0xd7, 0x6f, 0x03, 0xfc, 0xb2, + 0x79, 0x24, 0xdf, 0xe6, 0xfc, 0x62, 0xbe, 0x56, 0x03, 0xd5, 0x17, 0x5d, 0xf2, 0x95, 0x93, 0x56, + 0xff, 0x67, 0x33, 0x2a, 0xda, 0xc9, 0x2c, 0x24, 0x6b, 0xa2, 0x4e, 0xb0, 0x9f, 0x55, 0x48, 0xd4, + 0x3b, 0x2d, 0x5d, 0x7e, 0x0e, 0x46, 0xdf, 0x68, 0xde, 0xd7, 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, + 0x02, 0x24, 0x2b, 0x07, 0xed, 0xc3, 0x56, 0x57, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, + 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x72, 0xbd, 0x63, 0x94, 0x1f, 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, + 0x84, 0x1c, 0xf9, 0xdc, 0xb1, 0xb2, 0xd1, 0x52, 0x28, 0x8f, 0x7e, 0x7c, 0x36, 0x87, 0x76, 0xe8, + 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, 0xc7, 0x37, 0x55, 0x21, 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, + 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, + 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x18, 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, + 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x98, 0x60, 0x12, 0x56, 0x1e, 0x05, 0xb4, 0x91, 0x1a, 0xb1, 0xfe, + 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, 0x25, 0xe5, 0xae, 0xc1, 0xb4, 0xb0, 0x7d, 0x69, 0x49, 0xaa, + 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0x26, 0xd2, 0x89, 0xf7, 0x7e, 0xa3, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, + 0xbf, 0xd1, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9, 0x3c, 0x48, 0xe5, 0x72, 0x0a, 0xa5, 0xa7, + 0x7f, 0xf6, 0xcb, 0xcc, 0x44, 0x59, 0x37, 0x4d, 0xbd, 0x7b, 0x4f, 0x37, 0xcb, 0x65, 0x62, 0xfc, + 0x1a, 0x5c, 0x09, 0xdc, 0x28, 0xb5, 0xec, 0x2b, 0x15, 0xc7, 0xbe, 0x5a, 0xf5, 0xd9, 0x57, 0xab, + 0xb6, 0x3d, 0x2a, 0xb9, 0x07, 0xce, 0x1b, 0x72, 0xc0, 0x26, 0xa3, 0xd2, 0x62, 0x0e, 0xb8, 0x37, + 0x4a, 0xaf, 0x11, 0xdd, 0x72, 0xa0, 0xae, 0x1e, 0x71, 0x60, 0x5d, 0x2e, 0x55, 0x88, 0x7d, 0x25, + 0xd0, 0x7e, 0x4f, 0x38, 0x55, 0xe5, 0xdf, 0x10, 0x64, 0x92, 0x0a, 0x75, 0xb8, 0x1a, 0x38, 0xc9, + 0x01, 0x73, 0xd7, 0xbd, 0x4a, 0x1d, 0xae, 0x05, 0xea, 0xb6, 0x23, 0xee, 0x7c, 0xd5, 0x4a, 0x4b, + 0xe4, 0x25, 0xbf, 0xb1, 0x2c, 0x5f, 0x71, 0x73, 0x94, 0xab, 0xc0, 0x24, 0x40, 0xae, 0x56, 0xa9, + 0x42, 0x0c, 0xca, 0xa1, 0x06, 0xe1, 0x51, 0x72, 0x2d, 0x4b, 0xaf, 0x93, 0x49, 0x2a, 0xa1, 0x93, + 0x44, 0x84, 0xca, 0x35, 0x2f, 0xef, 0x9c, 0x9e, 0xab, 0x23, 0x8f, 0xcf, 0xd5, 0x91, 0x7f, 0x9c, + 0xab, 0x23, 0x9f, 0x9c, 0xab, 0xe8, 0xb3, 0x73, 0x15, 0x7d, 0x7e, 0xae, 0xa2, 0x2f, 0xce, 0x55, + 0xf4, 0x4e, 0x5f, 0x45, 0x1f, 0xf4, 0x55, 0xf4, 0x61, 0x5f, 0x45, 0x7f, 0xec, 0xab, 0xe8, 0x51, + 0x5f, 0x45, 0xa7, 0x7d, 0x75, 0xe4, 0x71, 0x5f, 0x1d, 0xf9, 0xa4, 0xaf, 0xa2, 0xcf, 0xfa, 0xea, + 0xc8, 0xe7, 0x7d, 0x15, 0x7d, 0xd1, 0x57, 0x47, 0xde, 0xf9, 0x54, 0x45, 0x0f, 0x3f, 0x55, 0x47, + 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x69, 0xf7, 0x4c, 0xd6, 0x53, 0x36, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto index 8216baec..1b2b42a9 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go index fe1f5240..453ee602 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go @@ -67,12 +67,19 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -87,21 +94,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -129,11 +140,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -143,11 +154,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -161,21 +172,25 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +218,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +232,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -235,21 +250,25 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { } func TestNidRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -277,11 +296,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -291,11 +310,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -309,21 +328,25 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { } func TestNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -351,11 +374,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -365,11 +388,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -383,21 +406,25 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { } func TestNidRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -425,11 +452,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -439,11 +466,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -457,21 +484,25 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNinRepPackedNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -499,11 +530,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -513,11 +544,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -531,21 +562,25 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { } func TestNidOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -573,11 +608,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -587,11 +622,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -605,21 +640,25 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { } func TestNinOptStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -647,11 +686,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -661,11 +700,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -679,21 +718,25 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { } func TestNidRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -721,11 +764,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -735,11 +778,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -753,21 +796,25 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { } func TestNinRepStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -795,11 +842,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -809,11 +856,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -827,21 +874,25 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { } func TestNidEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -869,11 +920,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -883,11 +934,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -901,21 +952,25 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -943,11 +998,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -957,11 +1012,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -975,21 +1030,25 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { } func TestNidNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1017,11 +1076,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1031,11 +1090,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1049,21 +1108,25 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { } func TestNinNestedStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1091,11 +1154,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1105,11 +1168,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1123,21 +1186,25 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { } func TestNidOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1165,11 +1232,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1179,11 +1246,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1197,21 +1264,25 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { } func TestCustomDashProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1239,11 +1310,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1253,11 +1324,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1271,21 +1342,25 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { } func TestNinOptCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1313,11 +1388,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1327,11 +1402,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1345,21 +1420,25 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { } func TestNidRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1387,11 +1466,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1401,11 +1480,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1419,21 +1498,25 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { } func TestNinRepCustomProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1461,11 +1544,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1475,11 +1558,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -1493,21 +1576,25 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { } func TestNinOptNativeUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1535,11 +1622,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1549,11 +1636,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -1567,21 +1654,25 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { } func TestNinOptStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1609,11 +1700,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1623,11 +1714,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -1641,21 +1732,25 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { } func TestNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1683,11 +1778,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1697,11 +1792,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -1715,21 +1810,25 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestNinNestedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1757,11 +1856,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1771,11 +1870,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -1789,21 +1888,25 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { } func TestTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1831,11 +1934,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1845,11 +1948,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -1863,21 +1966,25 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { } func TestOrBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1905,11 +2012,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1919,11 +2026,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -1937,21 +2044,25 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { } func TestAndBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1979,11 +2090,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1993,11 +2104,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2011,21 +2122,25 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { } func TestLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2053,11 +2168,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2067,11 +2182,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2085,21 +2200,25 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { } func TestDeepTreeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2127,11 +2246,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2141,11 +2260,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2159,21 +2278,25 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { } func TestADeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2201,11 +2324,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2215,11 +2338,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -2233,21 +2356,25 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { } func TestAndDeepBranchProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2275,11 +2402,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2289,11 +2416,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -2307,21 +2434,25 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { } func TestDeepLeafProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2349,11 +2480,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2363,11 +2494,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -2381,21 +2512,25 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { } func TestNilProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2423,11 +2558,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2437,11 +2572,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -2455,21 +2590,25 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { } func TestNidOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2497,11 +2636,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2511,11 +2650,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -2529,21 +2668,25 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2571,11 +2714,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2585,11 +2728,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -2603,21 +2746,25 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { } func TestNidRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2645,11 +2792,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2659,11 +2806,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -2677,21 +2824,25 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { } func TestNinRepEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2719,11 +2870,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2733,11 +2884,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -2751,21 +2902,25 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { } func TestNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2793,11 +2948,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2807,11 +2962,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -2825,21 +2980,25 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2867,11 +3026,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2881,11 +3040,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -2899,21 +3058,25 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { } func TestAnotherNinOptEnumDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2941,11 +3104,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2955,11 +3118,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -2973,21 +3136,25 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { } func TestTimerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3015,11 +3182,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3029,11 +3196,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -3047,21 +3214,25 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { } func TestMyExtendableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3089,11 +3260,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3103,11 +3274,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -3121,21 +3292,25 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { } func TestOtherExtenableProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3163,11 +3338,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3177,11 +3352,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -3195,21 +3370,25 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { } func TestNestedDefinitionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3237,11 +3416,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3251,11 +3430,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -3269,21 +3448,25 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3311,11 +3494,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3325,11 +3508,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -3343,21 +3526,25 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3385,11 +3572,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3399,11 +3586,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -3417,21 +3604,25 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te } func TestNestedScopeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3459,11 +3650,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3473,11 +3664,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -3491,21 +3682,25 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { } func TestNinOptNativeDefaultProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3533,11 +3728,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3547,11 +3742,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -3565,21 +3760,25 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { } func TestCustomContainerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3607,11 +3806,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3621,11 +3820,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -3639,21 +3838,25 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { } func TestCustomNameNidOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3681,11 +3884,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3695,11 +3898,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -3713,21 +3916,25 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinOptNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3755,11 +3962,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3769,11 +3976,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -3787,21 +3994,25 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinRepNativeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +4040,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +4054,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -3861,21 +4072,25 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinStructProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3903,11 +4118,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3917,11 +4132,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -3935,21 +4150,25 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { } func TestCustomNameCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3977,11 +4196,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3991,11 +4210,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -4009,21 +4228,25 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { } func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4051,11 +4274,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4065,11 +4288,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -4083,21 +4306,25 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { } func TestCustomNameEnumProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4125,11 +4352,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4139,11 +4366,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -4157,21 +4384,25 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { } func TestNoExtensionsMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4199,11 +4430,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4213,11 +4444,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -4231,21 +4462,25 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { } func TestUnrecognizedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4273,11 +4508,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4287,11 +4522,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -4305,21 +4540,25 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4347,11 +4586,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4361,11 +4600,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -4379,21 +4618,25 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithInner_InnerProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4421,11 +4664,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4435,11 +4678,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -4453,21 +4696,25 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4495,11 +4742,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4509,11 +4756,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -4527,21 +4774,25 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { } func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4569,11 +4820,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4583,11 +4834,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -4601,21 +4852,25 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { } func TestNodeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4643,11 +4898,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4657,11 +4912,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -4674,136 +4929,604 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } -func TestNidOptNativeJSON(t *testing.T) { +func TestNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } } + b.SetBytes(int64(total / b.N)) } -func TestNidRepNativeJSON(t *testing.T) { + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } } + b.SetBytes(int64(total / b.N)) } -func TestNidRepPackedNativeJSON(t *testing.T) { + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) } } -func TestNinRepPackedNativeJSON(t *testing.T) { + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) } if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) } -} -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNinRepPackedNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepPackedNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepPackedNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestNidOptStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptStruct(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { @@ -5643,13 +6366,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5661,16 +6510,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5682,16 +6531,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5703,16 +6552,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5724,16 +6573,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5745,16 +6594,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5766,16 +6615,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5787,16 +6636,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5808,16 +6657,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5829,16 +6678,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5850,16 +6699,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5871,16 +6720,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5892,16 +6741,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5913,16 +6762,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5934,16 +6783,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5955,16 +6804,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5980,9 +6829,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -5997,9 +6846,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6014,9 +6863,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6031,9 +6880,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6048,9 +6897,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6065,9 +6914,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6082,9 +6931,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6099,9 +6948,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6116,9 +6965,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6133,9 +6982,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6150,9 +6999,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6167,9 +7016,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6184,9 +7033,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6201,9 +7050,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6218,9 +7067,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6235,9 +7084,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6252,9 +7101,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6269,9 +7118,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6286,9 +7135,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6303,9 +7152,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6320,9 +7169,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6337,9 +7186,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6354,9 +7203,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6371,9 +7220,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6388,9 +7237,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6405,9 +7254,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6422,9 +7271,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6439,9 +7288,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6456,9 +7305,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6473,9 +7322,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6490,9 +7339,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6507,9 +7356,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6524,9 +7373,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6541,9 +7390,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6558,9 +7407,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6575,9 +7424,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6592,9 +7441,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6609,9 +7458,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6626,9 +7475,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6643,9 +7492,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6660,9 +7509,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6677,9 +7526,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6694,9 +7543,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6711,9 +7560,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6728,9 +7577,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6745,9 +7594,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6762,9 +7611,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6779,9 +7628,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6796,9 +7645,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6813,9 +7662,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6830,9 +7679,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6847,9 +7696,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6864,9 +7713,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6881,9 +7730,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6898,9 +7747,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6915,9 +7764,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6932,9 +7781,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6949,9 +7798,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6966,9 +7815,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6983,9 +7832,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7000,9 +7849,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7017,9 +7866,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7034,9 +7883,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7051,9 +7900,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7068,9 +7917,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7085,9 +7934,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7102,9 +7951,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7119,9 +7968,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7136,9 +7985,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7153,9 +8002,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7170,9 +8019,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7187,9 +8036,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7204,9 +8053,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7221,9 +8070,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7238,9 +8087,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7255,9 +8104,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7272,9 +8121,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7289,9 +8138,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7306,9 +8155,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7323,9 +8172,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7340,9 +8189,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7357,9 +8206,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7374,9 +8223,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7391,9 +8240,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7408,9 +8257,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7425,9 +8274,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7442,9 +8291,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7459,9 +8308,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7476,9 +8325,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7493,9 +8342,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7510,9 +8359,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7527,9 +8376,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7544,9 +8393,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7561,9 +8410,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7578,9 +8427,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7595,9 +8444,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7612,9 +8461,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7629,9 +8478,9 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7646,9 +8495,9 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7663,9 +8512,9 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7680,9 +8529,9 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7697,9 +8546,9 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7714,9 +8563,9 @@ func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7731,9 +8580,9 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7748,9 +8597,9 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7765,9 +8614,213 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNoExtensionsMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7778,13 +8831,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7795,13 +8848,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7812,13 +8865,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7829,13 +8882,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7846,13 +8899,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7863,13 +8916,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7880,13 +8933,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7897,13 +8950,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7914,13 +8967,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7931,13 +8984,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7948,13 +9001,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7965,13 +9018,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7982,13 +9035,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7999,13 +9052,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8016,13 +9069,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8033,13 +9086,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8050,13 +9103,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8067,13 +9120,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8085,14 +9138,18 @@ func TestNodeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8109,14 +9166,18 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8133,14 +9194,18 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8157,14 +9222,18 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8181,14 +9250,18 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8205,14 +9278,18 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8229,14 +9306,18 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8253,14 +9334,18 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8277,14 +9362,18 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8301,14 +9390,18 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8325,14 +9418,18 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8349,14 +9446,18 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8373,14 +9474,18 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8397,14 +9502,18 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8421,14 +9530,18 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8445,14 +9558,18 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8469,14 +9586,18 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8493,14 +9614,18 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8517,14 +9642,18 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8541,14 +9670,18 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8565,14 +9698,18 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8589,14 +9726,18 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8613,14 +9754,18 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8637,14 +9782,18 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8661,14 +9810,18 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8685,14 +9838,18 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8709,14 +9866,18 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8733,14 +9894,18 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8757,14 +9922,18 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8781,14 +9950,18 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8805,14 +9978,18 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8829,14 +10006,18 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8853,14 +10034,18 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8877,14 +10062,18 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8901,14 +10090,18 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8925,14 +10118,18 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8949,14 +10146,18 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8973,14 +10174,18 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8997,14 +10202,18 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9021,14 +10230,18 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9045,14 +10258,18 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9069,14 +10286,18 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9093,14 +10314,18 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9117,14 +10342,18 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9141,14 +10370,18 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9165,14 +10398,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9189,14 +10426,18 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9213,14 +10454,18 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9237,14 +10482,18 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9261,14 +10510,18 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9285,14 +10538,18 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9309,14 +10566,18 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9333,14 +10594,18 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9357,14 +10622,18 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9381,14 +10650,18 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9405,14 +10678,18 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9429,14 +10706,18 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9453,14 +10734,18 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9477,14 +10762,18 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9501,20 +10790,192 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNodeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNode(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9524,21 +10985,25 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9548,21 +11013,25 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9576,14 +11045,18 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9591,14 +11064,18 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9606,14 +11083,18 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9621,14 +11102,18 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9636,14 +11121,18 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9651,14 +11140,18 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9666,14 +11159,18 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9681,14 +11178,18 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9696,14 +11197,18 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9711,14 +11216,18 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9726,14 +11235,18 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9741,14 +11254,18 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9756,14 +11273,18 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9771,14 +11292,18 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9786,14 +11311,18 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9801,14 +11330,18 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9816,14 +11349,18 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9831,14 +11368,18 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9846,14 +11387,18 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9861,14 +11406,18 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9876,14 +11425,18 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9891,14 +11444,18 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9906,14 +11463,18 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9921,14 +11482,18 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9936,14 +11501,18 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9951,14 +11520,18 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9966,14 +11539,18 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9981,14 +11558,18 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9996,14 +11577,18 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10011,14 +11596,18 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10026,14 +11615,18 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10041,14 +11634,18 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10056,14 +11653,18 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10071,14 +11672,18 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10086,14 +11691,18 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10101,14 +11710,18 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10116,14 +11729,18 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10131,14 +11748,18 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10146,14 +11767,18 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10161,14 +11786,18 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10176,14 +11805,18 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10191,14 +11824,18 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10206,14 +11843,18 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10221,14 +11862,18 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10236,14 +11881,18 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10251,14 +11900,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10266,14 +11919,18 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10281,14 +11938,18 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10296,14 +11957,18 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10311,14 +11976,18 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10326,14 +11995,18 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10341,14 +12014,18 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10356,14 +12033,18 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10371,14 +12052,18 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10386,14 +12071,18 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10401,14 +12090,18 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10416,14 +12109,18 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10431,14 +12128,18 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10446,14 +12147,18 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10461,14 +12166,18 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10476,14 +12185,18 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10491,14 +12204,132 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10953,6 +12784,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -11566,7 +13445,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11577,9 +13534,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11590,9 +13547,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11603,9 +13560,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11616,9 +13573,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11629,9 +13586,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11642,9 +13599,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11655,9 +13612,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11668,9 +13625,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11681,9 +13638,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11694,9 +13651,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11707,9 +13664,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11720,9 +13677,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11733,9 +13690,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11746,9 +13703,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11764,13 +13721,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11800,13 +13757,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11836,13 +13793,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11872,13 +13829,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11908,13 +13865,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11944,13 +13901,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11980,13 +13937,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12016,13 +13973,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12052,13 +14009,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12088,13 +14045,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12124,13 +14081,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12160,13 +14117,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12196,13 +14153,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12232,13 +14189,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12268,13 +14225,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12304,13 +14261,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12340,13 +14297,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12376,13 +14333,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12412,13 +14369,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12448,13 +14405,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12484,13 +14441,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12520,13 +14477,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12556,13 +14513,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12592,13 +14549,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12628,13 +14585,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12664,13 +14621,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12700,13 +14657,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12736,13 +14693,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12772,13 +14729,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12808,13 +14765,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12844,13 +14801,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12880,13 +14837,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12916,13 +14873,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12952,13 +14909,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12988,13 +14945,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13024,13 +14981,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13060,13 +15017,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13096,13 +15053,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13132,13 +15089,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13168,13 +15125,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13204,13 +15161,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13240,13 +15197,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13276,13 +15233,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13312,13 +15269,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13348,13 +15305,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13384,13 +15341,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13420,13 +15377,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13456,13 +15413,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13492,13 +15449,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13528,13 +15485,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13564,13 +15521,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13600,13 +15557,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13636,13 +15593,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13672,13 +15629,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13708,13 +15665,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13744,13 +15701,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13780,13 +15737,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13816,13 +15773,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13852,13 +15809,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13888,13 +15845,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13924,13 +15881,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13960,13 +15917,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13991,6 +15948,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -14549,6 +16722,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/custom-dash-type/customdash.go b/vendor/github.com/gogo/protobuf/test/custom-dash-type/customdash.go index 7e61c8f3..a6af4dc5 100644 --- a/vendor/github.com/gogo/protobuf/test/custom-dash-type/customdash.go +++ b/vendor/github.com/gogo/protobuf/test/custom-dash-type/customdash.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/custom/custom.go b/vendor/github.com/gogo/protobuf/test/custom/custom.go index c7d00a30..64daabfc 100644 --- a/vendor/github.com/gogo/protobuf/test/custom/custom.go +++ b/vendor/github.com/gogo/protobuf/test/custom/custom.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -34,7 +36,6 @@ import ( "bytes" "encoding/json" "errors" - "unsafe" ) type Uint128 [2]uint64 @@ -51,7 +52,15 @@ func (u Uint128) MarshalTo(data []byte) (n int, err error) { } func GetLittleEndianUint64(b []byte, offset int) uint64 { - return *(*uint64)(unsafe.Pointer(&b[offset])) + v := uint64(b[offset+7]) << 56 + v += uint64(b[offset+6]) << 48 + v += uint64(b[offset+5]) << 40 + v += uint64(b[offset+4]) << 32 + v += uint64(b[offset+3]) << 24 + v += uint64(b[offset+2]) << 16 + v += uint64(b[offset+1]) << 8 + v += uint64(b[offset]) + return v } func PutLittleEndianUint64(b []byte, offset int, v uint64) { diff --git a/vendor/github.com/gogo/protobuf/test/custom/custom_test.go b/vendor/github.com/gogo/protobuf/test/custom/custom_test.go index d1e4fcc2..d4fe7bd4 100644 --- a/vendor/github.com/gogo/protobuf/test/custom/custom_test.go +++ b/vendor/github.com/gogo/protobuf/test/custom/custom_test.go @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile index e6a2cc3c..ecb3e74e 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/custombytesnonstruct_test.go b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/custombytesnonstruct_test.go index 680529cf..2e29d2a0 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/custombytesnonstruct_test.go +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/custombytesnonstruct_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package custombytesnonstruct import testing "testing" diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/customtype.go b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/customtype.go index 8f0ed3ae..02d0905b 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/customtype.go +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/customtype.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package custombytesnonstruct type CustomType int diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go index 7923edc2..b30a7145 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go @@ -27,11 +27,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Object struct { - CustomField1 *CustomType `protobuf:"bytes,1,opt,name=CustomField1,json=customField1,customtype=CustomType" json:"CustomField1,omitempty"` - CustomField2 []CustomType `protobuf:"bytes,2,rep,name=CustomField2,json=customField2,customtype=CustomType" json:"CustomField2,omitempty"` + CustomField1 *CustomType `protobuf:"bytes,1,opt,name=CustomField1,customtype=CustomType" json:"CustomField1,omitempty"` + CustomField2 []CustomType `protobuf:"bytes,2,rep,name=CustomField2,customtype=CustomType" json:"CustomField2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -43,8 +45,8 @@ func (*Object) Descriptor() ([]byte, []int) { return fileDescriptorProto, []int{ func init() { proto.RegisterType((*Object)(nil), "custombytesnonstruct.Object") } -func (m *Object) Unmarshal(data []byte) error { - l := len(data) +func (m *Object) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -56,7 +58,7 @@ func (m *Object) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -84,7 +86,7 @@ func (m *Object) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -100,7 +102,7 @@ func (m *Object) Unmarshal(data []byte) error { } var v CustomType m.CustomField1 = &v - if err := m.CustomField1.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomField1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -116,7 +118,7 @@ func (m *Object) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -132,13 +134,13 @@ func (m *Object) Unmarshal(data []byte) error { } var v CustomType m.CustomField2 = append(m.CustomField2, v) - if err := m.CustomField2[len(m.CustomField2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.CustomField2[len(m.CustomField2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto(data[iNdEx:]) + skippy, err := skipProto(dAtA[iNdEx:]) if err != nil { return err } @@ -148,7 +150,7 @@ func (m *Object) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -158,8 +160,8 @@ func (m *Object) Unmarshal(data []byte) error { } return nil } -func skipProto(data []byte) (n int, err error) { - l := len(data) +func skipProto(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -170,7 +172,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -188,7 +190,7 @@ func skipProto(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -205,7 +207,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -228,7 +230,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -239,7 +241,7 @@ func skipProto(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto(data[start:]) + next, err := skipProto(dAtA[start:]) if err != nil { return 0, err } @@ -263,16 +265,18 @@ var ( ErrIntOverflowProto = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("proto.proto", fileDescriptorProto) } + var fileDescriptorProto = []byte{ - // 149 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, + // 147 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, 0xc9, 0xd7, 0x03, 0x93, 0x42, 0x22, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0x49, 0x95, 0x25, 0xa9, 0xc5, 0x79, 0xf9, 0x79, 0xc5, 0x25, 0x45, 0xa5, 0xc9, 0x25, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xc5, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x0c, 0x51, 0x2a, 0xe0, 0x62, 0xf3, 0x4f, 0xca, 0x4a, 0x4d, 0x2e, 0x11, 0x32, 0xe2, 0xe2, 0x71, 0x06, 0x1b, 0xe8, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x28, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0xe3, 0xc4, 0x77, 0xeb, 0x9e, 0x3c, 0x17, 0x44, 0x3c, 0xa4, 0xb2, - 0x20, 0x35, 0x88, 0x27, 0x19, 0x49, 0x0d, 0x9a, 0x1e, 0x23, 0x09, 0x26, 0x05, 0x66, 0x02, 0x7a, - 0x8c, 0x9c, 0x58, 0x2e, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x42, 0x52, 0xad, - 0x49, 0xca, 0x00, 0x00, 0x00, + 0x20, 0x35, 0x08, 0x45, 0x0d, 0x9a, 0x1e, 0x23, 0x09, 0x26, 0x05, 0x66, 0x02, 0x7a, 0x8c, 0x9c, + 0x58, 0x2e, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xc6, 0xf3, 0xe3, 0xca, + 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto index a0f0016d..343b457a 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package custombytesnonstruct; diff --git a/vendor/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto b/vendor/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto index 1ae5aa6f..90efda36 100644 --- a/vendor/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto +++ b/vendor/github.com/gogo/protobuf/test/dashfilename/dash-filename.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package dashfilename; diff --git a/vendor/github.com/gogo/protobuf/test/dashfilename/df_test.go b/vendor/github.com/gogo/protobuf/test/dashfilename/df_test.go index 2f54a98f..6266b21b 100644 --- a/vendor/github.com/gogo/protobuf/test/dashfilename/df_test.go +++ b/vendor/github.com/gogo/protobuf/test/dashfilename/df_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package dashfilename import ( diff --git a/vendor/github.com/gogo/protobuf/test/data/Makefile b/vendor/github.com/gogo/protobuf/test/data/Makefile new file mode 100644 index 00000000..eeb3f509 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/data/Makefile @@ -0,0 +1,33 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-min-version + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. \ + --proto_path=../../../../../:../../protobuf/:. data.proto diff --git a/vendor/github.com/gogo/protobuf/test/data/data.pb.go b/vendor/github.com/gogo/protobuf/test/data/data.pb.go new file mode 100644 index 00000000..97865299 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/data/data.pb.go @@ -0,0 +1,491 @@ +// Code generated by protoc-gen-gogo. +// source: data.proto +// DO NOT EDIT! + +/* +Package data is a generated protocol buffer package. + +It is generated from these files: + data.proto + +It has these top-level messages: + MyMessage +*/ +package data + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type MyMessage struct { + MyData uint32 `protobuf:"varint,1,opt,name=my_data,json=myData,proto3" json:"my_data,omitempty"` +} + +func (m *MyMessage) Reset() { *m = MyMessage{} } +func (*MyMessage) ProtoMessage() {} +func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptorData, []int{0} } + +func (m *MyMessage) GetMyData() uint32 { + if m != nil { + return m.MyData + } + return 0 +} + +func init() { + proto.RegisterType((*MyMessage)(nil), "data.MyMessage") +} +func (this *MyMessage) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MyMessage) + if !ok { + that2, ok := that.(MyMessage) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MyMessage") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MyMessage but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MyMessage but is not nil && this == nil") + } + if this.MyData != that1.MyData { + return fmt.Errorf("MyData this(%v) Not Equal that(%v)", this.MyData, that1.MyData) + } + return nil +} +func (this *MyMessage) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MyMessage) + if !ok { + that2, ok := that.(MyMessage) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.MyData != that1.MyData { + return false + } + return true +} +func (this *MyMessage) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&data.MyMessage{") + s = append(s, "MyData: "+fmt.Sprintf("%#v", this.MyData)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringData(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *MyMessage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MyMessage) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MyData != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintData(dAtA, i, uint64(m.MyData)) + } + return i, nil +} + +func encodeFixed64Data(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Data(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintData(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedMyMessage(r randyData, easy bool) *MyMessage { + this := &MyMessage{} + this.MyData = uint32(r.Uint32()) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyData interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneData(r randyData) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringData(r randyData) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneData(r) + } + return string(tmps) +} +func randUnrecognizedData(r randyData, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldData(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldData(dAtA []byte, r randyData, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateData(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateData(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateData(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateData(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateData(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateData(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateData(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *MyMessage) Size() (n int) { + var l int + _ = l + if m.MyData != 0 { + n += 1 + sovData(uint64(m.MyData)) + } + return n +} + +func sovData(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozData(x uint64) (n int) { + return sovData(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MyMessage) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MyMessage{`, + `MyData:` + fmt.Sprintf("%v", this.MyData) + `,`, + `}`, + }, "") + return s +} +func valueToStringData(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *MyMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowData + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MyMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MyMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MyData", wireType) + } + m.MyData = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowData + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MyData |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipData(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthData + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipData(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowData + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowData + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowData + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthData + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowData + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipData(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthData = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowData = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("data.proto", fileDescriptorData) } + +var fileDescriptorData = []byte{ + // 160 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x49, 0x2c, 0x49, + 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32, + 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5, + 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x70, 0x71, 0xfa, 0x56, 0xfa, 0xa6, + 0x16, 0x17, 0x27, 0xa6, 0xa7, 0x0a, 0x89, 0x73, 0xb1, 0xe7, 0x56, 0xc6, 0x83, 0x8c, 0x91, 0x60, + 0x54, 0x60, 0xd4, 0xe0, 0x0d, 0x62, 0xcb, 0xad, 0x74, 0x49, 0x2c, 0x49, 0x74, 0xd2, 0xb9, 0xf1, + 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c, + 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, 0x8e, 0x47, 0x72, 0x8c, 0x07, 0x1e, 0xc9, 0x31, + 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x49, 0x6c, 0x60, + 0xa3, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x4f, 0xfb, 0xa7, 0x9d, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/data/data.proto b/vendor/github.com/gogo/protobuf/test/data/data.proto new file mode 100644 index 00000000..ff6dcd30 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/data/data.proto @@ -0,0 +1,49 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package data; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.gostring_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.testgen_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.unmarshaler_all) = true; + +message MyMessage { + uint32 my_data = 1; +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/data/datapb_test.go b/vendor/github.com/gogo/protobuf/test/data/datapb_test.go new file mode 100644 index 00000000..5cb8c940 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/data/datapb_test.go @@ -0,0 +1,263 @@ +// Code generated by protoc-gen-gogo. +// source: data.proto +// DO NOT EDIT! + +/* +Package data is a generated protocol buffer package. + +It is generated from these files: + data.proto + +It has these top-level messages: + MyMessage +*/ +package data + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import go_parser "go/parser" +import proto "github.com/gogo/protobuf/proto" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMyMessageProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MyMessage{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMyMessageMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MyMessage{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMyMessageProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MyMessage, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMyMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMyMessageProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyMessage(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MyMessage{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMyMessageJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MyMessage{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMyMessageProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MyMessage{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMyMessageProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MyMessage{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMyMessageVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMyMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MyMessage{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMyMessageGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMyMessage(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestMyMessageSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMyMessage(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMyMessageSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MyMessage, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMyMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMyMessageStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMyMessage(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/df.proto b/vendor/github.com/gogo/protobuf/test/defaultconflict/df.proto index 359458e9..9ec763d3 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/df.proto +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/df.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/dg.proto b/vendor/github.com/gogo/protobuf/test/defaultconflict/dg.proto index 80e7cac8..2d251e27 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/dg.proto +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/dg.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/nc.proto b/vendor/github.com/gogo/protobuf/test/defaultconflict/nc.proto index a7c7bfec..6bddd079 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/nc.proto +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/nc.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/nc_test.go b/vendor/github.com/gogo/protobuf/test/defaultconflict/nc_test.go index 86166e99..522ce9c1 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/nc_test.go +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/nc_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/ne.proto b/vendor/github.com/gogo/protobuf/test/defaultconflict/ne.proto index 9266fed0..c5664d7a 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/ne.proto +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/ne.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/defaultconflict/nx.proto b/vendor/github.com/gogo/protobuf/test/defaultconflict/nx.proto index 20b3d95a..1f074e33 100644 --- a/vendor/github.com/gogo/protobuf/test/defaultconflict/nx.proto +++ b/vendor/github.com/gogo/protobuf/test/defaultconflict/nx.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/eb.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/eb.proto index 73bbe261..80bedac6 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/eb.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/eb.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/ec.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/ec.proto index b2092903..cbf0cd4c 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/ec.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/ec.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/ec_test.go b/vendor/github.com/gogo/protobuf/test/embedconflict/ec_test.go index ddaecdfe..94e0e257 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/ec_test.go +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/ec_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/ee.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/ee.proto index 0bc805fd..9f5bc38c 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/ee.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/ee.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/em.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/em.proto index 990ec767..f03c1dcd 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/em.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/em.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/en.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/en.proto index 18b65c49..c11bfd62 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/en.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/en.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/embedconflict/er.proto b/vendor/github.com/gogo/protobuf/test/embedconflict/er.proto index 2c647d8f..da89a622 100644 --- a/vendor/github.com/gogo/protobuf/test/embedconflict/er.proto +++ b/vendor/github.com/gogo/protobuf/test/embedconflict/er.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/Makefile b/vendor/github.com/gogo/protobuf/test/empty-issue70/Makefile index 43928f03..770f107c 100644 --- a/vendor/github.com/gogo/protobuf/test/empty-issue70/Makefile +++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go index b23653fe..c4348e01 100644 --- a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go +++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go @@ -27,7 +27,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TestRequest struct { XXX_unrecognized []byte `json:"-"` @@ -41,8 +43,8 @@ func (*TestRequest) Descriptor() ([]byte, []int) { return fileDescriptorEmpty, [ func init() { proto.RegisterType((*TestRequest)(nil), "empty.TestRequest") } -func (m *TestRequest) Unmarshal(data []byte) error { - l := len(data) +func (m *TestRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -54,7 +56,7 @@ func (m *TestRequest) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -72,7 +74,7 @@ func (m *TestRequest) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipEmpty(data[iNdEx:]) + skippy, err := skipEmpty(dAtA[iNdEx:]) if err != nil { return err } @@ -82,7 +84,7 @@ func (m *TestRequest) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -92,8 +94,8 @@ func (m *TestRequest) Unmarshal(data []byte) error { } return nil } -func skipEmpty(data []byte) (n int, err error) { - l := len(data) +func skipEmpty(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -104,7 +106,7 @@ func skipEmpty(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -122,7 +124,7 @@ func skipEmpty(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -139,7 +141,7 @@ func skipEmpty(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -162,7 +164,7 @@ func skipEmpty(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -173,7 +175,7 @@ func skipEmpty(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipEmpty(data[start:]) + next, err := skipEmpty(dAtA[start:]) if err != nil { return 0, err } @@ -197,12 +199,14 @@ var ( ErrIntOverflowEmpty = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("empty.proto", fileDescriptorEmpty) } + var fileDescriptorEmpty = []byte{ - // 91 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0xcd, 0x2d, 0x28, + // 92 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0xcd, 0x2d, 0x28, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xf1, 0x72, 0x71, 0x87, 0xa4, 0x16, - 0x97, 0x04, 0xa5, 0x16, 0x96, 0x02, 0x29, 0x27, 0x96, 0x0b, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x0e, 0xe3, 0x23, 0x3d, 0x58, 0x00, 0x00, 0x00, + 0x97, 0x04, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x38, 0xb1, 0x5c, 0x78, 0x24, 0xc7, 0x08, 0x08, + 0x00, 0x00, 0xff, 0xff, 0x0e, 0xe3, 0x23, 0x3d, 0x58, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.proto b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.proto index eeda2d1b..eacfded1 100644 --- a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.proto +++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax="proto2"; package empty; @@ -8,4 +36,4 @@ option (gogoproto.unmarshaler_all) = true; message TestRequest { -} \ No newline at end of file +} diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty_test.go b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty_test.go index fa821d93..19e12c21 100644 --- a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty_test.go +++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package empty import ( diff --git a/vendor/github.com/gogo/protobuf/test/enumcustomname/Makefile b/vendor/github.com/gogo/protobuf/test/enumcustomname/Makefile index f705adc0..b5da3077 100644 --- a/vendor/github.com/gogo/protobuf/test/enumcustomname/Makefile +++ b/vendor/github.com/gogo/protobuf/test/enumcustomname/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go index 8349c643..05fdd7bd 100644 --- a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go @@ -31,7 +31,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MyCustomEnum int32 @@ -269,41 +271,43 @@ func (x MyEnumWithEnumStringer) String() string { return strconv.Itoa(int(x)) } +func init() { proto.RegisterFile("enumcustomname.proto", fileDescriptorEnumcustomname) } + var fileDescriptorEnumcustomname = []byte{ - // 546 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x9c, 0x94, 0x4d, 0x8f, 0xd2, 0x40, - 0x18, 0xc7, 0x29, 0xba, 0x2c, 0x3b, 0x22, 0xe9, 0x4e, 0x14, 0x47, 0x30, 0x0d, 0xd9, 0x18, 0x63, - 0x30, 0x0b, 0x89, 0x47, 0x3c, 0x4d, 0x29, 0x9a, 0x8d, 0x01, 0x4d, 0x77, 0xf1, 0xed, 0xd2, 0xf4, - 0x65, 0x60, 0x49, 0x68, 0xbb, 0x29, 0xd3, 0x68, 0xbf, 0x81, 0xf1, 0x3b, 0x78, 0x92, 0x83, 0x47, - 0xcf, 0x9e, 0xfd, 0x60, 0xce, 0x4c, 0x17, 0x16, 0xda, 0x52, 0xc8, 0x9e, 0x86, 0x99, 0xfc, 0x9f, - 0xdf, 0x6f, 0xe6, 0xc9, 0x53, 0xc0, 0x03, 0xe2, 0x85, 0xae, 0x1d, 0xce, 0xa9, 0xef, 0x7a, 0xa6, - 0x4b, 0xda, 0x57, 0x81, 0x4f, 0x7d, 0x58, 0xdd, 0x3c, 0xad, 0x9f, 0x4e, 0xa6, 0xf4, 0x32, 0xb4, - 0xda, 0xb6, 0xef, 0x76, 0x26, 0xfe, 0xc4, 0xef, 0x88, 0x98, 0x15, 0x8e, 0xc5, 0x4e, 0x6c, 0xc4, - 0xaf, 0xb8, 0xbc, 0xfe, 0x62, 0x6b, 0x9c, 0x92, 0x39, 0xed, 0xd0, 0x4b, 0xc2, 0xd7, 0x38, 0x7c, - 0xf2, 0xaf, 0x0c, 0x8e, 0xde, 0x79, 0xb3, 0xa8, 0xcf, 0x94, 0x73, 0xd8, 0x01, 0x87, 0x6e, 0x64, - 0x70, 0x3d, 0x92, 0x9a, 0xd2, 0xf3, 0xea, 0xcb, 0x5a, 0x3b, 0x71, 0xc3, 0x81, 0x48, 0xea, 0x25, - 0x57, 0xac, 0x50, 0x03, 0xc7, 0xd7, 0x05, 0x86, 0x43, 0xc6, 0x66, 0x38, 0xa3, 0x86, 0x89, 0x8a, - 0x79, 0xa5, 0x5d, 0x09, 0xeb, 0xd5, 0xb8, 0x5a, 0x8b, 0x2b, 0x70, 0x16, 0xc5, 0x42, 0x77, 0xf2, - 0x29, 0x6a, 0x82, 0xa2, 0xc2, 0x21, 0x80, 0x8c, 0x12, 0x7a, 0x57, 0x01, 0x19, 0x4f, 0xbf, 0x11, - 0x27, 0x7e, 0xc7, 0x5d, 0x81, 0x69, 0xa6, 0x31, 0xa3, 0x55, 0x50, 0xbc, 0x48, 0x76, 0x13, 0x27, - 0xd0, 0x03, 0x4f, 0xd2, 0xbc, 0xb5, 0x67, 0x1e, 0xec, 0x47, 0xee, 0x56, 0x46, 0xc3, 0xf7, 0x7a, - 0xff, 0xf5, 0xd9, 0xa7, 0xbe, 0x66, 0x60, 0x1d, 0x25, 0x3d, 0xab, 0x2e, 0xe4, 0xfb, 0x2c, 0x54, - 0xba, 0x85, 0x4f, 0xdd, 0xea, 0x53, 0xe1, 0x5b, 0xf0, 0x30, 0x22, 0xec, 0x21, 0x9e, 0xcf, 0x46, - 0x22, 0x30, 0xf8, 0x50, 0xc4, 0x2d, 0x3b, 0x14, 0x22, 0xd4, 0x16, 0x63, 0xf2, 0x99, 0x50, 0x1c, - 0x27, 0x2e, 0xd8, 0x56, 0xb4, 0x0a, 0x46, 0xa9, 0x33, 0x68, 0x83, 0x66, 0x26, 0xec, 0xa6, 0x5f, - 0x26, 0x2a, 0xe7, 0x73, 0xbb, 0x45, 0x8c, 0xf5, 0x46, 0x9a, 0xbd, 0x6c, 0x90, 0xb9, 0x5b, 0x62, - 0x59, 0xe8, 0x68, 0x97, 0x44, 0x55, 0x73, 0x24, 0xaa, 0x05, 0x47, 0xe0, 0x31, 0x97, 0x64, 0xb7, - 0x06, 0x08, 0x7a, 0x63, 0x45, 0xcf, 0xe8, 0x0e, 0x6f, 0x6a, 0xfa, 0x18, 0xba, 0xe0, 0xe9, 0x56, - 0xec, 0xea, 0xfe, 0xb6, 0x8d, 0xee, 0xed, 0x34, 0x74, 0x8b, 0xbd, 0x9e, 0xae, 0x64, 0x5a, 0xae, - 0x5f, 0xd1, 0xb3, 0xf7, 0xd3, 0x39, 0x0e, 0xaa, 0xec, 0xa1, 0xd3, 0xb4, 0x7c, 0x9d, 0xe6, 0xb4, - 0x5e, 0x81, 0x52, 0xfc, 0x61, 0x42, 0x04, 0x24, 0x2c, 0x17, 0xea, 0xc7, 0x3f, 0x7e, 0x36, 0xef, - 0x0f, 0x22, 0x95, 0x50, 0x4a, 0x82, 0x21, 0x9b, 0x53, 0x0c, 0x0f, 0x80, 0xa4, 0xca, 0x52, 0x5d, - 0xfe, 0xbb, 0x50, 0x2a, 0x83, 0xa8, 0x27, 0x26, 0x98, 0x97, 0xb4, 0xbe, 0x02, 0x39, 0x39, 0xc4, - 0xf0, 0x14, 0x6c, 0x7c, 0x36, 0x8c, 0xd8, 0x60, 0xc4, 0x47, 0xeb, 0xc4, 0x9b, 0x0a, 0x0c, 0xe5, - 0x8d, 0x38, 0xd7, 0x9c, 0x7c, 0xff, 0xa5, 0x14, 0x7e, 0x2f, 0x94, 0x02, 0xd3, 0xd5, 0x96, 0xba, - 0x4d, 0x49, 0xeb, 0x0b, 0xa8, 0xc5, 0xb7, 0xfe, 0xc8, 0xfe, 0x31, 0xf9, 0x7a, 0x4e, 0x83, 0xa9, - 0x37, 0x21, 0x01, 0x7c, 0x06, 0xc0, 0xf9, 0x85, 0x7e, 0x36, 0x7c, 0xd3, 0xd7, 0x85, 0xbc, 0xc6, - 0xe4, 0x90, 0x27, 0x3e, 0x98, 0xb3, 0x90, 0x2c, 0x63, 0x18, 0x56, 0xd7, 0x72, 0xdc, 0x5a, 0xe6, - 0xc6, 0x3f, 0x0b, 0x45, 0xfa, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x65, 0x55, 0xe7, 0xdb, 0x05, - 0x00, 0x00, + // 551 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x4f, 0x8f, 0xd2, 0x40, + 0x18, 0xc6, 0x29, 0xba, 0x2c, 0x3b, 0x22, 0xe9, 0x4e, 0x14, 0x47, 0x30, 0x4d, 0xb3, 0x31, 0xc6, + 0x60, 0x16, 0x12, 0x8f, 0x78, 0x9a, 0x52, 0x34, 0x1b, 0x03, 0x9a, 0xee, 0xe2, 0xbf, 0x4b, 0xd3, + 0x96, 0xe1, 0x4f, 0xc2, 0xb4, 0x9b, 0x32, 0x8d, 0xf6, 0x1b, 0x18, 0xbe, 0x03, 0x27, 0x39, 0x78, + 0xf4, 0xbc, 0x67, 0x3f, 0x98, 0x99, 0xe9, 0xc2, 0x42, 0x5b, 0x0a, 0xf1, 0x34, 0xed, 0x9b, 0xe7, + 0x7d, 0x7e, 0xf3, 0x3e, 0x79, 0x07, 0x3c, 0x22, 0x6e, 0x40, 0x9d, 0x60, 0xc6, 0x3c, 0xea, 0x5a, + 0x94, 0x34, 0xae, 0x7d, 0x8f, 0x79, 0xb0, 0xbc, 0x5d, 0xad, 0x9e, 0x8f, 0x26, 0x6c, 0x1c, 0xd8, + 0x0d, 0xc7, 0xa3, 0xcd, 0x91, 0x37, 0xf2, 0x9a, 0x42, 0x66, 0x07, 0x43, 0xf1, 0x27, 0x7e, 0xc4, + 0x57, 0xd4, 0x5e, 0x7d, 0xb5, 0x53, 0xce, 0xc8, 0x8c, 0x35, 0xd9, 0x98, 0xf0, 0x33, 0x12, 0x9f, + 0xfd, 0x2d, 0x82, 0x93, 0x0f, 0xee, 0x34, 0xec, 0xb8, 0x01, 0x9d, 0xc1, 0x26, 0x38, 0xa6, 0xa1, + 0xc9, 0xf1, 0x48, 0x52, 0xa5, 0x97, 0xe5, 0xd7, 0x95, 0x46, 0xec, 0x86, 0x5d, 0xa1, 0x34, 0x0a, + 0x54, 0x9c, 0x50, 0x07, 0xa7, 0xb7, 0x0d, 0xe6, 0x80, 0x0c, 0xad, 0x60, 0xca, 0x4c, 0x0b, 0xe5, + 0xb3, 0x5a, 0x5b, 0x12, 0x36, 0xca, 0x51, 0xb7, 0x1e, 0x75, 0xe0, 0x34, 0x17, 0x1b, 0xdd, 0xcb, + 0x76, 0xd1, 0x62, 0x2e, 0x1a, 0xec, 0x01, 0x48, 0x43, 0x33, 0x70, 0xaf, 0x7d, 0x32, 0x9c, 0xfc, + 0x20, 0x83, 0x68, 0x8e, 0xfb, 0xc2, 0x46, 0x4d, 0xda, 0xf4, 0xd7, 0x42, 0x31, 0x91, 0x4c, 0x63, + 0x15, 0xe8, 0x82, 0x67, 0x49, 0xbf, 0x8d, 0x31, 0x8f, 0x0e, 0x73, 0x6e, 0x95, 0xfa, 0xbd, 0x8f, + 0x46, 0xe7, 0xed, 0xc5, 0x97, 0x8e, 0x6e, 0x62, 0x03, 0xc5, 0x39, 0xeb, 0x14, 0xb2, 0x79, 0x36, + 0x2a, 0xfc, 0x07, 0x4f, 0xdb, 0xc9, 0xd3, 0xe0, 0x7b, 0xf0, 0x38, 0x24, 0xcc, 0xb4, 0x5c, 0x8f, + 0x8d, 0x89, 0x6f, 0xf2, 0xa5, 0x88, 0x22, 0x3b, 0x16, 0x20, 0xd4, 0x10, 0x6b, 0xf2, 0x95, 0x30, + 0x1c, 0x29, 0xae, 0xc8, 0x8c, 0x89, 0xa8, 0x60, 0x98, 0xa8, 0x41, 0x07, 0xa8, 0xa9, 0x66, 0x77, + 0x79, 0x59, 0xa8, 0x98, 0xed, 0xdb, 0xca, 0x63, 0x6c, 0xd4, 0x92, 0xde, 0xab, 0x80, 0xac, 0xfd, + 0x10, 0xdb, 0x46, 0x27, 0xfb, 0x20, 0x9a, 0x96, 0x01, 0xd1, 0x6c, 0xd8, 0x07, 0x4f, 0x39, 0x24, + 0x3d, 0x1a, 0x20, 0xdc, 0x6b, 0x6b, 0xf7, 0x94, 0x74, 0x78, 0xa8, 0xc9, 0x32, 0xa4, 0xe0, 0xf9, + 0x4e, 0xdb, 0xf5, 0xfd, 0x1d, 0x07, 0x3d, 0xd8, 0x4b, 0x68, 0xe5, 0xdb, 0x6d, 0x43, 0x49, 0xa5, + 0xdc, 0x4e, 0xd1, 0x76, 0x0e, 0xc3, 0x0d, 0x06, 0xa8, 0x74, 0x00, 0x4e, 0xd7, 0xb3, 0x71, 0xfa, + 0xa0, 0xfe, 0x06, 0x14, 0xa2, 0x87, 0x09, 0x11, 0x90, 0xb0, 0x9c, 0xab, 0x9e, 0xce, 0x17, 0xea, + 0xc3, 0x6e, 0xa8, 0x11, 0xc6, 0x88, 0xdf, 0xb3, 0x28, 0xc1, 0xf0, 0x08, 0x48, 0x9a, 0x2c, 0x55, + 0xe5, 0x9b, 0xa5, 0x52, 0xea, 0x86, 0x6d, 0xb1, 0xc1, 0xbc, 0xa5, 0xfe, 0x1d, 0xc8, 0xf1, 0x25, + 0x86, 0xe7, 0x60, 0xeb, 0xd9, 0xc8, 0xb9, 0x6a, 0x6d, 0xbe, 0x50, 0x9f, 0x6c, 0x3a, 0xde, 0x75, + 0x60, 0x28, 0x6f, 0xc9, 0x39, 0xe6, 0xec, 0xe7, 0x2f, 0x25, 0xf7, 0x7b, 0xa9, 0xe4, 0x6e, 0x96, + 0x4a, 0x65, 0x85, 0xdb, 0x86, 0xd4, 0xbf, 0x81, 0x4a, 0x74, 0xeb, 0xcf, 0x13, 0x36, 0xe6, 0xe7, + 0x25, 0xf3, 0x27, 0xee, 0x88, 0xf8, 0xf0, 0x05, 0x00, 0x97, 0x57, 0xc6, 0x45, 0xef, 0x5d, 0xc7, + 0x10, 0xf0, 0xca, 0x7c, 0xa1, 0x42, 0xae, 0xf8, 0x64, 0x4d, 0x03, 0xb2, 0x92, 0x61, 0x58, 0xde, + 0xd0, 0x71, 0x6a, 0x91, 0x13, 0xff, 0x2c, 0x15, 0xe9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe, + 0x65, 0x55, 0xe7, 0xdb, 0x05, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto index a8e28d5b..0230ddba 100644 --- a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto +++ b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; // Package enumcustomname tests the behavior of enum_customname and diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/Makefile b/vendor/github.com/gogo/protobuf/test/enumdecl/Makefile new file mode 100644 index 00000000..75d9417a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. enumdecl.proto diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go new file mode 100644 index 00000000..1f11716c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go @@ -0,0 +1,471 @@ +// Code generated by protoc-gen-gogo. +// source: enumdecl.proto +// DO NOT EDIT! + +/* +Package enumdecl is a generated protocol buffer package. + +It is generated from these files: + enumdecl.proto + +It has these top-level messages: + Message +*/ +package enumdecl + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +var MyEnum_name = map[int32]string{ + 0: "A", + 1: "B", +} +var MyEnum_value = map[string]int32{ + "A": 0, + "B": 1, +} + +func (x MyEnum) String() string { + return proto.EnumName(MyEnum_name, int32(x)) +} +func (MyEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorEnumdecl, []int{0} } + +type Message struct { + EnumeratedField MyEnum `protobuf:"varint,1,opt,name=enumerated_field,json=enumeratedField,proto3,enum=enumdecl.MyEnum" json:"enumerated_field,omitempty"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorEnumdecl, []int{0} } + +func (m *Message) GetEnumeratedField() MyEnum { + if m != nil { + return m.EnumeratedField + } + return A +} + +func init() { + proto.RegisterType((*Message)(nil), "enumdecl.Message") + proto.RegisterEnum("enumdecl.MyEnum", MyEnum_name, MyEnum_value) +} +func (this *Message) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Message) + if !ok { + that2, ok := that.(Message) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Message") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Message but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Message but is not nil && this == nil") + } + if this.EnumeratedField != that1.EnumeratedField { + return fmt.Errorf("EnumeratedField this(%v) Not Equal that(%v)", this.EnumeratedField, that1.EnumeratedField) + } + return nil +} +func (this *Message) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Message) + if !ok { + that2, ok := that.(Message) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.EnumeratedField != that1.EnumeratedField { + return false + } + return true +} +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.EnumeratedField != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintEnumdecl(dAtA, i, uint64(m.EnumeratedField)) + } + return i, nil +} + +func encodeFixed64Enumdecl(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Enumdecl(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintEnumdecl(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedMessage(r randyEnumdecl, easy bool) *Message { + this := &Message{} + this.EnumeratedField = MyEnum([]int32{0, 1}[r.Intn(2)]) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyEnumdecl interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneEnumdecl(r randyEnumdecl) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringEnumdecl(r randyEnumdecl) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneEnumdecl(r) + } + return string(tmps) +} +func randUnrecognizedEnumdecl(r randyEnumdecl, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldEnumdecl(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldEnumdecl(dAtA []byte, r randyEnumdecl, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateEnumdecl(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateEnumdecl(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Message) Size() (n int) { + var l int + _ = l + if m.EnumeratedField != 0 { + n += 1 + sovEnumdecl(uint64(m.EnumeratedField)) + } + return n +} + +func sovEnumdecl(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozEnumdecl(x uint64) (n int) { + return sovEnumdecl(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnumeratedField", wireType) + } + m.EnumeratedField = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EnumeratedField |= (MyEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipEnumdecl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEnumdecl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEnumdecl(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthEnumdecl + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipEnumdecl(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthEnumdecl = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEnumdecl = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("enumdecl.proto", fileDescriptorEnumdecl) } + +var fileDescriptorEnumdecl = []byte{ + // 205 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0xcd, 0x2b, 0xcd, + 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x72, 0xe3, 0x62, + 0xf7, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0xb2, 0xe6, 0x12, 0x00, 0x99, 0x92, 0x5a, 0x94, + 0x58, 0x92, 0x9a, 0x12, 0x9f, 0x96, 0x99, 0x9a, 0x93, 0x22, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x67, + 0x24, 0xa0, 0x07, 0xb7, 0xce, 0xb7, 0xd2, 0x35, 0xaf, 0x34, 0x37, 0x88, 0x1f, 0xa1, 0xd2, 0x0d, + 0xa4, 0x50, 0x4b, 0x81, 0x8b, 0x0d, 0x22, 0x25, 0xc4, 0xca, 0xc5, 0xe8, 0x28, 0xc0, 0x00, 0xa2, + 0x9c, 0x04, 0x18, 0xa5, 0x38, 0x3a, 0x16, 0xcb, 0x31, 0x1c, 0x58, 0x22, 0xc7, 0xe0, 0xa4, 0xf1, + 0xe0, 0xa1, 0x1c, 0xe3, 0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, + 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, + 0xc7, 0xf8, 0xe3, 0x91, 0x1c, 0x43, 0xc3, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0xd3, 0x8c, 0x01, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x76, 0x04, 0x55, 0xb7, 0xe5, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto new file mode 100644 index 00000000..54be1b0e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package enumdecl; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +enum MyEnum { + option (gogoproto.enumdecl) = false; + option (gogoproto.goproto_enum_prefix) = false; + A = 0; + B = 1; +} + +message Message { + MyEnum enumerated_field = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go new file mode 100644 index 00000000..87cec002 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go @@ -0,0 +1,239 @@ +// Code generated by protoc-gen-gogo. +// source: enumdecl.proto +// DO NOT EDIT! + +/* +Package enumdecl is a generated protocol buffer package. + +It is generated from these files: + enumdecl.proto + +It has these top-level messages: + Message +*/ +package enumdecl + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMessageProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMessageMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMessageProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Message, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMessageProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Message{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMessageJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMessageProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Message{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMessageProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Message{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMessageVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMessageSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMessageSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Message, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/models.go b/vendor/github.com/gogo/protobuf/test/enumdecl/models.go new file mode 100644 index 00000000..cd95bdcb --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/models.go @@ -0,0 +1,8 @@ +package enumdecl + +type MyEnum int32 + +const ( + A MyEnum = iota + B MyEnum = iota +) diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/Makefile b/vendor/github.com/gogo/protobuf/test/enumdecl_all/Makefile new file mode 100644 index 00000000..56316b50 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. enumdeclall.proto diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go new file mode 100644 index 00000000..c345a874 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go @@ -0,0 +1,539 @@ +// Code generated by protoc-gen-gogo. +// source: enumdeclall.proto +// DO NOT EDIT! + +/* + Package enumdeclall is a generated protocol buffer package. + + It is generated from these files: + enumdeclall.proto + + It has these top-level messages: + Message +*/ +package enumdeclall + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +var MyEnum_name = map[int32]string{ + 0: "A", + 1: "B", +} +var MyEnum_value = map[string]int32{ + "A": 0, + "B": 1, +} + +func (x MyEnum) String() string { + return proto.EnumName(MyEnum_name, int32(x)) +} +func (MyEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorEnumdeclall, []int{0} } + +type MyOtherEnum int32 + +const ( + C MyOtherEnum = 0 + D MyOtherEnum = 1 +) + +var MyOtherEnum_name = map[int32]string{ + 0: "C", + 1: "D", +} +var MyOtherEnum_value = map[string]int32{ + "C": 0, + "D": 1, +} + +func (x MyOtherEnum) String() string { + return proto.EnumName(MyOtherEnum_name, int32(x)) +} +func (MyOtherEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorEnumdeclall, []int{1} } + +type Message struct { + EnumeratedField MyEnum `protobuf:"varint,1,opt,name=enumerated_field,json=enumeratedField,proto3,enum=enumdeclall.MyEnum" json:"enumerated_field,omitempty"` + OtherenumeratedField MyOtherEnum `protobuf:"varint,2,opt,name=otherenumerated_field,json=otherenumeratedField,proto3,enum=enumdeclall.MyOtherEnum" json:"otherenumerated_field,omitempty"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorEnumdeclall, []int{0} } + +func (m *Message) GetEnumeratedField() MyEnum { + if m != nil { + return m.EnumeratedField + } + return A +} + +func (m *Message) GetOtherenumeratedField() MyOtherEnum { + if m != nil { + return m.OtherenumeratedField + } + return C +} + +func init() { + proto.RegisterType((*Message)(nil), "enumdeclall.Message") + proto.RegisterEnum("enumdeclall.MyEnum", MyEnum_name, MyEnum_value) + proto.RegisterEnum("enumdeclall.MyOtherEnum", MyOtherEnum_name, MyOtherEnum_value) +} +func (this *Message) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Message) + if !ok { + that2, ok := that.(Message) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Message") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Message but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Message but is not nil && this == nil") + } + if this.EnumeratedField != that1.EnumeratedField { + return fmt.Errorf("EnumeratedField this(%v) Not Equal that(%v)", this.EnumeratedField, that1.EnumeratedField) + } + if this.OtherenumeratedField != that1.OtherenumeratedField { + return fmt.Errorf("OtherenumeratedField this(%v) Not Equal that(%v)", this.OtherenumeratedField, that1.OtherenumeratedField) + } + return nil +} +func (this *Message) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Message) + if !ok { + that2, ok := that.(Message) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.EnumeratedField != that1.EnumeratedField { + return false + } + if this.OtherenumeratedField != that1.OtherenumeratedField { + return false + } + return true +} +func (m *Message) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Message) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.EnumeratedField != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintEnumdeclall(dAtA, i, uint64(m.EnumeratedField)) + } + if m.OtherenumeratedField != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintEnumdeclall(dAtA, i, uint64(m.OtherenumeratedField)) + } + return i, nil +} + +func encodeFixed64Enumdeclall(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Enumdeclall(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintEnumdeclall(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedMessage(r randyEnumdeclall, easy bool) *Message { + this := &Message{} + this.EnumeratedField = MyEnum([]int32{0, 1}[r.Intn(2)]) + this.OtherenumeratedField = MyOtherEnum([]int32{0, 1}[r.Intn(2)]) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyEnumdeclall interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneEnumdeclall(r randyEnumdeclall) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringEnumdeclall(r randyEnumdeclall) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneEnumdeclall(r) + } + return string(tmps) +} +func randUnrecognizedEnumdeclall(r randyEnumdeclall, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldEnumdeclall(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldEnumdeclall(dAtA []byte, r randyEnumdeclall, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateEnumdeclall(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateEnumdeclall(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Message) Size() (n int) { + var l int + _ = l + if m.EnumeratedField != 0 { + n += 1 + sovEnumdeclall(uint64(m.EnumeratedField)) + } + if m.OtherenumeratedField != 0 { + n += 1 + sovEnumdeclall(uint64(m.OtherenumeratedField)) + } + return n +} + +func sovEnumdeclall(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozEnumdeclall(x uint64) (n int) { + return sovEnumdeclall(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Message: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Message: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnumeratedField", wireType) + } + m.EnumeratedField = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EnumeratedField |= (MyEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OtherenumeratedField", wireType) + } + m.OtherenumeratedField = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OtherenumeratedField |= (MyOtherEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipEnumdeclall(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEnumdeclall + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEnumdeclall(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthEnumdeclall + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEnumdeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipEnumdeclall(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthEnumdeclall = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEnumdeclall = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("enumdeclall.proto", fileDescriptorEnumdeclall) } + +var fileDescriptorEnumdeclall = []byte{ + // 260 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcd, 0x2b, 0xcd, + 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46, + 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, + 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57, + 0x69, 0x06, 0x23, 0x17, 0xbb, 0x6f, 0x6a, 0x71, 0x71, 0x62, 0x7a, 0xaa, 0x90, 0x1d, 0x97, 0x00, + 0xc8, 0xa4, 0xd4, 0xa2, 0xc4, 0x92, 0xd4, 0x94, 0xf8, 0xb4, 0xcc, 0xd4, 0x9c, 0x14, 0x09, 0x46, + 0x05, 0x46, 0x0d, 0x3e, 0x23, 0x61, 0x3d, 0x64, 0x5b, 0x7d, 0x2b, 0x5d, 0xf3, 0x4a, 0x73, 0x83, + 0xf8, 0x11, 0x8a, 0xdd, 0x40, 0x6a, 0x85, 0x7c, 0xb9, 0x44, 0xf3, 0x4b, 0x32, 0x52, 0x8b, 0x30, + 0x0c, 0x61, 0x02, 0x1b, 0x22, 0x81, 0x66, 0x88, 0x3f, 0x48, 0x2d, 0xd8, 0x24, 0x11, 0x34, 0x6d, + 0x60, 0xe3, 0xb4, 0x64, 0xb8, 0xd8, 0x20, 0x36, 0x09, 0xb1, 0x72, 0x31, 0x3a, 0x0a, 0x30, 0x80, + 0x28, 0x27, 0x01, 0x46, 0x29, 0x96, 0x8e, 0xc5, 0x72, 0x0c, 0x5a, 0xaa, 0x5c, 0xdc, 0x48, 0x46, + 0x80, 0xe4, 0x9c, 0x21, 0x4a, 0x5c, 0x04, 0x18, 0xa5, 0x38, 0x40, 0x4a, 0x0e, 0x2c, 0x91, 0x63, + 0x74, 0xd2, 0x79, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, + 0x3c, 0x92, 0x63, 0x3c, 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, + 0x1f, 0x3c, 0x92, 0x63, 0xfc, 0xf1, 0x48, 0x8e, 0xa1, 0xe1, 0xb1, 0x1c, 0xc3, 0x8e, 0xc7, 0x72, + 0x0c, 0x49, 0x6c, 0xe0, 0x40, 0x31, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x4e, 0x91, 0xd9, 0xaf, + 0x65, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto new file mode 100644 index 00000000..38b16b6e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package enumdeclall; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; +option (gogoproto.enumdecl_all) = false; + +enum MyEnum { + option (gogoproto.goproto_enum_prefix) = false; + A = 0; + B = 1; +} + +enum MyOtherEnum { + option (gogoproto.enumdecl) = true; + option (gogoproto.goproto_enum_prefix) = false; + C = 0; + D = 1; +} + +message Message { + MyEnum enumerated_field = 1; + MyOtherEnum otherenumerated_field = 2; +} diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go new file mode 100644 index 00000000..aa5dc3b8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go @@ -0,0 +1,239 @@ +// Code generated by protoc-gen-gogo. +// source: enumdeclall.proto +// DO NOT EDIT! + +/* +Package enumdeclall is a generated protocol buffer package. + +It is generated from these files: + enumdeclall.proto + +It has these top-level messages: + Message +*/ +package enumdeclall + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMessageProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMessageMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMessageProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Message, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMessageProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Message{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMessageJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Message{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMessageProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Message{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMessageProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Message{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMessageVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMessage(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Message{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMessageSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMessage(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMessageSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Message, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMessage(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/models.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/models.go new file mode 100644 index 00000000..bb1aee66 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/models.go @@ -0,0 +1,8 @@ +package enumdeclall + +type MyEnum int32 + +const ( + A MyEnum = iota + B MyEnum = iota +) diff --git a/vendor/github.com/gogo/protobuf/test/enumprefix/Makefile b/vendor/github.com/gogo/protobuf/test/enumprefix/Makefile index d5fc83d8..fbb7b030 100644 --- a/vendor/github.com/gogo/protobuf/test/enumprefix/Makefile +++ b/vendor/github.com/gogo/protobuf/test/enumprefix/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go index c421221f..767d3a32 100644 --- a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go @@ -26,10 +26,12 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MyMessage struct { - TheField test.TheTestEnum `protobuf:"varint,1,opt,name=TheField,json=theField,enum=test.TheTestEnum" json:"TheField"` + TheField test.TheTestEnum `protobuf:"varint,1,opt,name=TheField,enum=test.TheTestEnum" json:"TheField"` XXX_unrecognized []byte `json:"-"` } @@ -49,16 +51,18 @@ func init() { proto.RegisterType((*MyMessage)(nil), "enumprefix.MyMessage") } +func init() { proto.RegisterFile("enumprefix.proto", fileDescriptorEnumprefix) } + var fileDescriptorEnumprefix = []byte{ - // 148 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcd, 0x2b, 0xcd, + // 149 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcd, 0x2b, 0xcd, 0x2d, 0x28, 0x4a, 0x4d, 0xcb, 0xac, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x42, 0x88, 0x48, 0x69, 0xa7, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0x95, 0x24, 0x95, 0xa6, 0xe9, 0x97, 0xa4, 0x16, 0x97, 0xe8, 0x97, 0x64, 0xa4, 0x82, 0x68, 0x88, 0x46, 0x29, 0x5d, 0x9c, 0x8a, 0x41, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x28, 0x57, 0x72, 0xe0, 0xe2, 0xf4, 0xad, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x32, 0xe6, 0xe2, 0x08, 0xc9, 0x48, 0x75, 0xcb, 0x4c, 0xcd, 0x49, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x33, 0x12, - 0xd4, 0x03, 0x1b, 0x0d, 0x14, 0x0d, 0x01, 0xd2, 0xae, 0x40, 0x37, 0x39, 0xb1, 0x9c, 0xb8, 0x27, - 0xcf, 0x10, 0xc4, 0x51, 0x02, 0x55, 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8c, 0xb3, 0x4a, 0xfa, - 0xbc, 0x00, 0x00, 0x00, + 0xd4, 0x03, 0x1b, 0x1d, 0x92, 0x91, 0x1a, 0x92, 0x5a, 0x5c, 0xe2, 0x9a, 0x57, 0x9a, 0xeb, 0xc4, + 0x72, 0xe2, 0x9e, 0x3c, 0x43, 0x10, 0x5c, 0x21, 0x20, 0x00, 0x00, 0xff, 0xff, 0xda, 0xd1, 0x3c, + 0x03, 0xbc, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto index 121001d5..67f779f9 100644 --- a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto +++ b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/Makefile b/vendor/github.com/gogo/protobuf/test/enumstringer/Makefile index 4327b48e..67b56985 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/Makefile +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go index 20b0cb37..f37356ae 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go @@ -30,7 +30,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -70,7 +72,7 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error { func (TheTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorEnumstringer, []int{0} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=enumstringer.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=enumstringer.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -87,7 +89,7 @@ func (m *NidOptEnum) GetField1() TheTestEnum { } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -104,7 +106,7 @@ func (m *NinOptEnum) GetField1() TheTestEnum { } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -121,7 +123,7 @@ func (m *NidRepEnum) GetField1() []TheTestEnum { } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=enumstringer.TheTestEnum" json:"Field1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -517,7 +519,7 @@ func randStringEnumstringer(r randyEnumstringer) string { } return string(tmps) } -func randUnrecognizedEnumstringer(r randyEnumstringer, maxFieldNumber int) (data []byte) { +func randUnrecognizedEnumstringer(r randyEnumstringer, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -525,58 +527,60 @@ func randUnrecognizedEnumstringer(r randyEnumstringer, maxFieldNumber int) (data wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldEnumstringer(data, r, fieldNumber, wire) + dAtA = randFieldEnumstringer(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldEnumstringer(data []byte, r randyEnumstringer, fieldNumber int, wire int) []byte { +func randFieldEnumstringer(dAtA []byte, r randyEnumstringer, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateEnumstringer(data, uint64(key)) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateEnumstringer(data, uint64(v5)) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateEnumstringer(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateEnumstringer(data, uint64(key)) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateEnumstringer(data, uint64(ll)) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateEnumstringer(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateEnumstringer(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateEnumstringer(data []byte, v uint64) []byte { +func encodeVarintPopulateEnumstringer(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } +func init() { proto.RegisterFile("enumstringer.proto", fileDescriptorEnumstringer) } + var fileDescriptorEnumstringer = []byte{ - // 206 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0xcd, 0x2b, 0xcd, + // 208 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0xcd, 0x2b, 0xcd, 0x2d, 0x2e, 0x29, 0xca, 0xcc, 0x4b, 0x4f, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x41, 0x16, 0x93, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, - 0x59, 0xc9, 0x95, 0x8b, 0xcb, 0x2f, 0x33, 0xc5, 0xbf, 0xa0, 0xc4, 0x15, 0x68, 0x88, 0x90, 0x39, - 0x17, 0x9b, 0x5b, 0x66, 0x6a, 0x4e, 0x8a, 0xa1, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x9f, 0x91, 0xa4, - 0x1e, 0x8a, 0x7d, 0x21, 0x19, 0xa9, 0x21, 0xa9, 0xc5, 0x60, 0xa5, 0x4e, 0x2c, 0x27, 0xee, 0xc9, - 0x33, 0x04, 0xb1, 0xa5, 0x81, 0x95, 0x2b, 0xd9, 0x83, 0x8c, 0xc9, 0x83, 0x19, 0x63, 0x48, 0xb4, - 0x31, 0x70, 0x03, 0x20, 0xee, 0x08, 0x4a, 0x2d, 0xc0, 0x70, 0x07, 0x33, 0xe9, 0xee, 0x80, 0x19, - 0x63, 0x48, 0xb4, 0x31, 0x30, 0x03, 0xb4, 0x94, 0xb8, 0xb8, 0x91, 0x84, 0x85, 0x58, 0xb9, 0x18, - 0x1d, 0x05, 0x18, 0x40, 0x94, 0x93, 0x00, 0x23, 0x88, 0x72, 0x16, 0x60, 0x72, 0x12, 0x79, 0xf0, - 0x50, 0x8e, 0xf1, 0x07, 0x10, 0xaf, 0x78, 0x24, 0xc7, 0xb8, 0x03, 0x88, 0x5f, 0x3c, 0x92, 0x63, - 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xb1, 0xac, 0x38, 0x9b, 0x01, 0x00, 0x00, + 0x59, 0xc9, 0x95, 0x8b, 0xcb, 0x2f, 0x33, 0xc5, 0xbf, 0xa0, 0xc4, 0x35, 0xaf, 0x34, 0x57, 0xc8, + 0x9c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, 0xcf, 0x48, + 0x52, 0x0f, 0xc5, 0xbe, 0x90, 0x8c, 0xd4, 0x90, 0xd4, 0x62, 0xb0, 0x52, 0x27, 0x96, 0x13, 0xf7, + 0xe4, 0x19, 0x82, 0xa0, 0xca, 0x95, 0xec, 0x41, 0xc6, 0xe4, 0xc1, 0x8c, 0x31, 0x24, 0xda, 0x18, + 0xb8, 0x01, 0x10, 0x77, 0x04, 0xa5, 0x16, 0x60, 0xb8, 0x83, 0x99, 0x74, 0x77, 0xc0, 0x8c, 0x31, + 0x24, 0xda, 0x18, 0x98, 0x01, 0x5a, 0x4a, 0x5c, 0xdc, 0x48, 0xc2, 0x42, 0xac, 0x5c, 0x8c, 0x8e, + 0x02, 0x0c, 0x20, 0xca, 0x49, 0x80, 0x11, 0x44, 0x39, 0x0b, 0x30, 0x39, 0x89, 0x3c, 0x78, 0x28, + 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0xbe, 0x78, + 0x24, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xb2, 0x8f, 0xc2, 0x9b, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto index f44f02fb..7147ccfb 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go index aea552af..7a13cdb6 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go @@ -35,18 +35,18 @@ func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,18 +69,18 @@ func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -103,18 +103,18 @@ func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -137,18 +137,18 @@ func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -255,9 +255,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -272,9 +272,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -289,9 +289,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -306,9 +306,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -323,9 +323,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -340,9 +340,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -357,9 +357,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -374,9 +374,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -390,12 +390,12 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { func TestNidOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -405,12 +405,12 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { func TestNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -420,12 +420,12 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { func TestNidRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -435,12 +435,12 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { func TestNinRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/string.go b/vendor/github.com/gogo/protobuf/test/enumstringer/string.go index c9ebfa45..3d9ef700 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/string.go +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/string.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/example/Makefile b/vendor/github.com/gogo/protobuf/test/example/Makefile index c323d9ee..e45d8feb 100644 --- a/vendor/github.com/gogo/protobuf/test/example/Makefile +++ b/vendor/github.com/gogo/protobuf/test/example/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/example/example.pb.go b/vendor/github.com/gogo/protobuf/test/example/example.pb.go index 68f22723..76e64873 100644 --- a/vendor/github.com/gogo/protobuf/test/example/example.pb.go +++ b/vendor/github.com/gogo/protobuf/test/example/example.pb.go @@ -34,8 +34,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -47,12 +45,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type A struct { - Description string `protobuf:"bytes,1,opt,name=Description,json=description" json:"Description"` - Number int64 `protobuf:"varint,2,opt,name=Number,json=number" json:"Number"` - Id github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,opt,name=Id,json=id,customtype=github.com/gogo/protobuf/test.Uuid" json:"Id"` + Description string `protobuf:"bytes,1,opt,name=Description" json:"Description"` + Number int64 `protobuf:"varint,2,opt,name=Number" json:"Number"` + Id github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,opt,name=Id,customtype=github.com/gogo/protobuf/test.Uuid" json:"Id"` XXX_unrecognized []byte `json:"-"` } @@ -61,8 +61,8 @@ func (*A) ProtoMessage() {} func (*A) Descriptor() ([]byte, []int) { return fileDescriptorExample, []int{0} } type B struct { - A `protobuf:"bytes,1,opt,name=A,json=a,embedded=A" json:"A"` - G []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=G,json=g,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"G"` + A `protobuf:"bytes,1,opt,name=A,embedded=A" json:"A"` + G []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=G,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"G"` XXX_unrecognized []byte `json:"-"` } @@ -87,8 +87,8 @@ func (m *C) GetMySize() int64 { } type U struct { - A *A `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *B `protobuf:"bytes,2,opt,name=B,json=b" json:"B,omitempty"` + A *A `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *B `protobuf:"bytes,2,opt,name=B" json:"B,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -120,7 +120,7 @@ func (*E) ProtoMessage() {} func (*E) Descriptor() ([]byte, []int) { return fileDescriptorExample, []int{4} } var extRange_E = []proto.ExtensionRange{ - {1, 536870911}, + {Start: 1, End: 536870911}, } func (*E) ExtensionRangeArray() []proto.ExtensionRange { @@ -149,7 +149,7 @@ func (m *R) GetRecognized() uint32 { } type CastType struct { - Int32 *int32 `protobuf:"varint,1,opt,name=Int32,json=int32,casttype=int32" json:"Int32,omitempty"` + Int32 *int32 `protobuf:"varint,1,opt,name=Int32,casttype=int32" json:"Int32,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -179,229 +179,248 @@ func (this *B) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_des func ExampleDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3537 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x69, 0x6c, 0x1b, 0xd7, - 0xb5, 0xf6, 0x88, 0xa4, 0x44, 0x1e, 0x52, 0x14, 0x35, 0x92, 0x6d, 0x5a, 0x71, 0xac, 0x98, 0xce, - 0xe2, 0x38, 0x89, 0x9c, 0x38, 0x8b, 0x1d, 0xe6, 0xbd, 0x04, 0xa4, 0x44, 0x2b, 0x34, 0xb4, 0xbd, - 0x91, 0x98, 0x38, 0x79, 0x3f, 0x06, 0x23, 0x72, 0x44, 0x8d, 0x3d, 0x9c, 0xe1, 0xe3, 0x0c, 0x1d, - 0x2b, 0xbf, 0xf2, 0x90, 0xb7, 0x05, 0x0f, 0x6d, 0xba, 0x01, 0xcd, 0xde, 0x24, 0x40, 0x9b, 0x34, - 0x5d, 0xd3, 0x0d, 0x45, 0xff, 0x34, 0x40, 0x91, 0x36, 0xbf, 0x8a, 0xb4, 0xbf, 0x8a, 0xa2, 0x30, - 0x92, 0x20, 0x40, 0xb7, 0xb4, 0x4d, 0x01, 0x03, 0x2d, 0x9a, 0x3f, 0x3d, 0x77, 0x1b, 0xce, 0x90, - 0x94, 0x86, 0x0a, 0x90, 0xa6, 0x06, 0x08, 0x73, 0xce, 0x3d, 0xdf, 0x37, 0xe7, 0x9e, 0x7b, 0xee, - 0x39, 0xe7, 0x5e, 0x0a, 0x7e, 0x74, 0x0b, 0x5c, 0x55, 0xb7, 0xed, 0xba, 0xa9, 0x1f, 0x6f, 0xb6, - 0x6c, 0xd7, 0x5e, 0x6f, 0x6f, 0x1c, 0xaf, 0xe9, 0x4e, 0xb5, 0x65, 0x34, 0x5d, 0xbb, 0x35, 0x43, - 0x65, 0xf2, 0x18, 0xd3, 0x98, 0x11, 0x1a, 0xb9, 0x45, 0x18, 0x3f, 0x6d, 0x98, 0xfa, 0x9c, 0xa7, - 0xb8, 0xaa, 0xbb, 0xf2, 0x29, 0x88, 0x6e, 0xa0, 0x30, 0x2b, 0x5d, 0x15, 0x39, 0x9a, 0x3c, 0x71, - 0xf5, 0x4c, 0x17, 0x68, 0x26, 0x88, 0x58, 0x21, 0x62, 0x85, 0x22, 0x72, 0xef, 0x46, 0x61, 0xa2, - 0xcf, 0xa8, 0x2c, 0x43, 0xd4, 0xd2, 0x1a, 0x84, 0x51, 0x3a, 0x9a, 0x50, 0xe8, 0x77, 0x39, 0x0b, - 0x23, 0x4d, 0xad, 0x7a, 0x5e, 0xab, 0xeb, 0xd9, 0x21, 0x2a, 0x16, 0x8f, 0xf2, 0x21, 0x80, 0x9a, - 0xde, 0xd4, 0xad, 0x9a, 0x6e, 0x55, 0xb7, 0xb2, 0x11, 0xb4, 0x22, 0xa1, 0xf8, 0x24, 0xf2, 0x0d, - 0x30, 0xde, 0x6c, 0xaf, 0x9b, 0x46, 0x55, 0xf5, 0xa9, 0x01, 0xaa, 0xc5, 0x94, 0x0c, 0x1b, 0x98, - 0xeb, 0x28, 0x5f, 0x07, 0x63, 0x0f, 0xe9, 0xda, 0x79, 0xbf, 0x6a, 0x92, 0xaa, 0xa6, 0x89, 0xd8, - 0xa7, 0x38, 0x0b, 0xa9, 0x86, 0xee, 0x38, 0x68, 0x80, 0xea, 0x6e, 0x35, 0xf5, 0x6c, 0x94, 0xce, - 0xfe, 0xaa, 0x9e, 0xd9, 0x77, 0xcf, 0x3c, 0xc9, 0x51, 0x6b, 0x08, 0x92, 0x0b, 0x90, 0xd0, 0xad, - 0x76, 0x83, 0x31, 0xc4, 0xb6, 0xf1, 0x5f, 0x09, 0x35, 0xba, 0x59, 0xe2, 0x04, 0xc6, 0x29, 0x46, - 0x1c, 0xbd, 0x75, 0xc1, 0xa8, 0xea, 0xd9, 0x61, 0x4a, 0x70, 0x5d, 0x0f, 0xc1, 0x2a, 0x1b, 0xef, - 0xe6, 0x10, 0x38, 0x9c, 0x4a, 0x42, 0xbf, 0xe8, 0xea, 0x96, 0x63, 0xd8, 0x56, 0x76, 0x84, 0x92, - 0x5c, 0xd3, 0x67, 0x15, 0x75, 0xb3, 0xd6, 0x4d, 0xd1, 0xc1, 0xc9, 0x77, 0xc0, 0x88, 0xdd, 0x74, - 0xf1, 0x9b, 0x93, 0x8d, 0xe3, 0xfa, 0x24, 0x4f, 0x1c, 0xec, 0x1b, 0x08, 0xcb, 0x4c, 0x47, 0x11, - 0xca, 0x72, 0x19, 0x32, 0x8e, 0xdd, 0x6e, 0x55, 0x75, 0xb5, 0x6a, 0xd7, 0x74, 0xd5, 0xb0, 0x36, - 0xec, 0x6c, 0x82, 0x12, 0x4c, 0xf7, 0x4e, 0x84, 0x2a, 0xce, 0xa2, 0x5e, 0x19, 0xd5, 0x94, 0xb4, - 0x13, 0x78, 0x96, 0xf7, 0xc1, 0xb0, 0xb3, 0x65, 0xb9, 0xda, 0xc5, 0x6c, 0x8a, 0x46, 0x08, 0x7f, - 0xca, 0xfd, 0x25, 0x06, 0x63, 0x83, 0x84, 0xd8, 0x5d, 0x10, 0xdb, 0x20, 0xb3, 0xc4, 0x00, 0xdb, - 0x85, 0x0f, 0x18, 0x26, 0xe8, 0xc4, 0xe1, 0x0f, 0xe9, 0xc4, 0x02, 0x24, 0x2d, 0xdd, 0x71, 0xf5, - 0x1a, 0x8b, 0x88, 0xc8, 0x80, 0x31, 0x05, 0x0c, 0xd4, 0x1b, 0x52, 0xd1, 0x0f, 0x15, 0x52, 0x67, - 0x61, 0xcc, 0x33, 0x49, 0x6d, 0x69, 0x56, 0x5d, 0xc4, 0xe6, 0xf1, 0x30, 0x4b, 0x66, 0x4a, 0x02, - 0xa7, 0x10, 0x98, 0x92, 0xd6, 0x03, 0xcf, 0xf2, 0x1c, 0x80, 0x6d, 0xe9, 0xf6, 0x06, 0x6e, 0xaf, - 0xaa, 0x89, 0x71, 0xd2, 0xdf, 0x4b, 0xcb, 0x44, 0xa5, 0xc7, 0x4b, 0x36, 0x93, 0x56, 0x4d, 0xf9, - 0xce, 0x4e, 0xa8, 0x8d, 0x6c, 0x13, 0x29, 0x8b, 0x6c, 0x93, 0xf5, 0x44, 0x5b, 0x05, 0xd2, 0x2d, - 0x9d, 0xc4, 0x3d, 0xba, 0x98, 0xcd, 0x2c, 0x41, 0x8d, 0x98, 0x09, 0x9d, 0x99, 0xc2, 0x61, 0x6c, - 0x62, 0xa3, 0x2d, 0xff, 0xa3, 0x7c, 0x04, 0x3c, 0x81, 0x4a, 0xc3, 0x0a, 0x68, 0x16, 0x4a, 0x09, - 0xe1, 0x12, 0xca, 0xa6, 0x4e, 0x41, 0x3a, 0xe8, 0x1e, 0x79, 0x12, 0x62, 0x8e, 0xab, 0xb5, 0x5c, - 0x1a, 0x85, 0x31, 0x85, 0x3d, 0xc8, 0x19, 0x88, 0x60, 0x92, 0xa1, 0x59, 0x2e, 0xa6, 0x90, 0xaf, - 0x53, 0x27, 0x61, 0x34, 0xf0, 0xfa, 0x41, 0x81, 0xb9, 0x27, 0x86, 0x61, 0xb2, 0x5f, 0xcc, 0xf5, - 0x0d, 0x7f, 0xdc, 0x3e, 0x18, 0x01, 0xeb, 0x7a, 0x0b, 0xe3, 0x8e, 0x30, 0xf0, 0x27, 0x8c, 0xa8, - 0x98, 0xa9, 0xad, 0xeb, 0x26, 0x46, 0x93, 0x74, 0x34, 0x7d, 0xe2, 0x86, 0x81, 0xa2, 0x7a, 0x66, - 0x81, 0x40, 0x14, 0x86, 0x94, 0xef, 0x86, 0x28, 0x4f, 0x71, 0x84, 0xe1, 0xd8, 0x60, 0x0c, 0x24, - 0x16, 0x15, 0x8a, 0x93, 0xaf, 0x80, 0x04, 0xf9, 0x9f, 0xf9, 0x76, 0x98, 0xda, 0x1c, 0x27, 0x02, - 0xe2, 0x57, 0x79, 0x0a, 0xe2, 0x34, 0xcc, 0x6a, 0xba, 0x28, 0x0d, 0xde, 0x33, 0x59, 0x98, 0x9a, - 0xbe, 0xa1, 0xb5, 0x4d, 0x57, 0xbd, 0xa0, 0x99, 0x6d, 0x9d, 0x06, 0x0c, 0x2e, 0x0c, 0x17, 0xde, - 0x47, 0x64, 0xf2, 0x34, 0x24, 0x59, 0x54, 0x1a, 0x88, 0xb9, 0x48, 0xb3, 0x4f, 0x4c, 0x61, 0x81, - 0x5a, 0x26, 0x12, 0xf2, 0xfa, 0x73, 0x0e, 0xee, 0x05, 0xbe, 0xb4, 0xf4, 0x15, 0x44, 0x40, 0x5f, - 0x7f, 0xb2, 0x3b, 0xf1, 0x5d, 0xd9, 0x7f, 0x7a, 0xdd, 0xb1, 0x98, 0xfb, 0xde, 0x10, 0x44, 0xe9, - 0x7e, 0x1b, 0x83, 0xe4, 0xda, 0x03, 0x2b, 0x25, 0x75, 0x6e, 0xb9, 0x52, 0x5c, 0x28, 0x65, 0x24, - 0x39, 0x0d, 0x40, 0x05, 0xa7, 0x17, 0x96, 0x0b, 0x6b, 0x99, 0x21, 0xef, 0xb9, 0xbc, 0xb4, 0x76, - 0xc7, 0x6d, 0x99, 0x88, 0x07, 0xa8, 0x30, 0x41, 0xd4, 0xaf, 0x70, 0xeb, 0x89, 0x4c, 0x0c, 0x23, - 0x21, 0xc5, 0x08, 0xca, 0x67, 0x4b, 0x73, 0xa8, 0x31, 0x1c, 0x94, 0xa0, 0xce, 0x88, 0x3c, 0x0a, - 0x09, 0x2a, 0x29, 0x2e, 0x2f, 0x2f, 0x64, 0xe2, 0x1e, 0xe7, 0xea, 0x9a, 0x52, 0x5e, 0x9a, 0xcf, - 0x24, 0x3c, 0xce, 0x79, 0x65, 0xb9, 0xb2, 0x92, 0x01, 0x8f, 0x61, 0xb1, 0xb4, 0xba, 0x5a, 0x98, - 0x2f, 0x65, 0x92, 0x9e, 0x46, 0xf1, 0x81, 0xb5, 0xd2, 0x6a, 0x26, 0x15, 0x30, 0x0b, 0x5f, 0x31, - 0xea, 0xbd, 0xa2, 0xb4, 0x54, 0x59, 0xcc, 0xa4, 0xe5, 0x71, 0x18, 0x65, 0xaf, 0x10, 0x46, 0x8c, - 0x75, 0x89, 0xd0, 0xd2, 0x4c, 0xc7, 0x10, 0xc6, 0x32, 0x1e, 0x10, 0xa0, 0x86, 0x9c, 0x9b, 0x85, - 0x18, 0x8d, 0x2e, 0x8c, 0xe2, 0xf4, 0x42, 0xa1, 0x58, 0x5a, 0x50, 0x97, 0x57, 0xd6, 0xca, 0xcb, - 0x4b, 0x85, 0x05, 0xf4, 0x9d, 0x27, 0x53, 0x4a, 0xff, 0x56, 0x29, 0x2b, 0xa5, 0x39, 0xf4, 0x9f, - 0x4f, 0xb6, 0x52, 0x2a, 0xac, 0xa1, 0x2c, 0x92, 0x3b, 0x06, 0x93, 0xfd, 0xf2, 0x4c, 0xbf, 0x9d, - 0x91, 0x7b, 0x51, 0x82, 0x89, 0x3e, 0x29, 0xb3, 0xef, 0x2e, 0xba, 0x07, 0x62, 0x2c, 0xd2, 0x58, - 0x11, 0xb9, 0xbe, 0x6f, 0xee, 0xa5, 0x71, 0xd7, 0x53, 0x48, 0x28, 0xce, 0x5f, 0x48, 0x23, 0xdb, - 0x14, 0x52, 0x42, 0xd1, 0x13, 0x4e, 0x8f, 0x4a, 0x90, 0xdd, 0x8e, 0x3b, 0x64, 0xbf, 0x0f, 0x05, - 0xf6, 0xfb, 0x5d, 0xdd, 0x06, 0x1c, 0xde, 0x7e, 0x0e, 0x3d, 0x56, 0xbc, 0x24, 0xc1, 0xbe, 0xfe, - 0xfd, 0x46, 0x5f, 0x1b, 0xee, 0x86, 0xe1, 0x86, 0xee, 0x6e, 0xda, 0xa2, 0xe6, 0x5e, 0xdb, 0x27, - 0x93, 0x93, 0xe1, 0x6e, 0x5f, 0x71, 0x94, 0xbf, 0x14, 0x44, 0xb6, 0x6b, 0x1a, 0x98, 0x35, 0x3d, - 0x96, 0x3e, 0x36, 0x04, 0x7b, 0xfb, 0x92, 0xf7, 0x35, 0xf4, 0x4a, 0x00, 0xc3, 0x6a, 0xb6, 0x5d, - 0x56, 0x57, 0x59, 0x9a, 0x49, 0x50, 0x09, 0xdd, 0xc2, 0x24, 0x85, 0xb4, 0x5d, 0x6f, 0x3c, 0x42, - 0xc7, 0x81, 0x89, 0xa8, 0xc2, 0xa9, 0x8e, 0xa1, 0x51, 0x6a, 0xe8, 0xa1, 0x6d, 0x66, 0xda, 0x53, - 0xb2, 0x6e, 0x86, 0x4c, 0xd5, 0x34, 0x74, 0xcb, 0x55, 0x1d, 0xb7, 0xa5, 0x6b, 0x0d, 0xc3, 0xaa, - 0xd3, 0x3c, 0x1a, 0xcf, 0xc7, 0x36, 0x34, 0xd3, 0xd1, 0x95, 0x31, 0x36, 0xbc, 0x2a, 0x46, 0x09, - 0x82, 0x16, 0x8b, 0x96, 0x0f, 0x31, 0x1c, 0x40, 0xb0, 0x61, 0x0f, 0x91, 0xfb, 0xf9, 0x08, 0x24, - 0x7d, 0xdd, 0x99, 0x7c, 0x18, 0x52, 0xe7, 0xb4, 0x0b, 0x9a, 0x2a, 0x3a, 0x6e, 0xe6, 0x89, 0x24, - 0x91, 0xad, 0xf0, 0xae, 0xfb, 0x66, 0x98, 0xa4, 0x2a, 0x38, 0x47, 0x7c, 0x51, 0xd5, 0xd4, 0x1c, - 0x87, 0x3a, 0x2d, 0x4e, 0x55, 0x65, 0x32, 0xb6, 0x4c, 0x86, 0x66, 0xc5, 0x88, 0x7c, 0x3b, 0x4c, - 0x50, 0x44, 0x03, 0x13, 0xaf, 0xd1, 0x34, 0x75, 0x95, 0x9c, 0x01, 0x1c, 0x9a, 0x4f, 0x3d, 0xcb, - 0xc6, 0x89, 0xc6, 0x22, 0x57, 0x20, 0x16, 0x39, 0xf2, 0x3c, 0x5c, 0x49, 0x61, 0x75, 0xdd, 0xd2, - 0x5b, 0x9a, 0xab, 0xab, 0xfa, 0x7f, 0xb4, 0x51, 0x57, 0xd5, 0xac, 0x9a, 0xba, 0xa9, 0x39, 0x9b, - 0xd9, 0x49, 0x3f, 0xc1, 0x01, 0xa2, 0x3b, 0xcf, 0x55, 0x4b, 0x54, 0xb3, 0x60, 0xd5, 0xee, 0x45, - 0x3d, 0x39, 0x0f, 0xfb, 0x28, 0x11, 0x3a, 0x05, 0xe7, 0xac, 0x56, 0x37, 0xf5, 0xea, 0x79, 0xb5, - 0xed, 0x6e, 0x9c, 0xca, 0x5e, 0xe1, 0x67, 0xa0, 0x46, 0xae, 0x52, 0x9d, 0x59, 0xa2, 0x52, 0x41, - 0x0d, 0x79, 0x15, 0x52, 0x64, 0x3d, 0x1a, 0xc6, 0xc3, 0x68, 0xb6, 0xdd, 0xa2, 0x35, 0x22, 0xdd, - 0x67, 0x73, 0xfb, 0x9c, 0x38, 0xb3, 0xcc, 0x01, 0x8b, 0xd8, 0x9f, 0xe6, 0x63, 0xab, 0x2b, 0xa5, - 0xd2, 0x9c, 0x92, 0x14, 0x2c, 0xa7, 0xed, 0x16, 0x89, 0xa9, 0xba, 0xed, 0xf9, 0x38, 0xc9, 0x62, - 0xaa, 0x6e, 0x0b, 0x0f, 0xa3, 0xbf, 0xaa, 0x55, 0x36, 0x6d, 0x3c, 0xbb, 0xf0, 0x66, 0xdd, 0xc9, - 0x66, 0x02, 0xfe, 0xaa, 0x56, 0xe7, 0x99, 0x02, 0x0f, 0x73, 0x07, 0xb7, 0xc4, 0xde, 0x8e, 0xbf, - 0xfc, 0xc0, 0xf1, 0x9e, 0x59, 0x76, 0x43, 0xf1, 0x8d, 0xcd, 0xad, 0x5e, 0xa0, 0x1c, 0x78, 0x63, - 0x73, 0xab, 0x1b, 0x76, 0x0d, 0x3d, 0x80, 0xb5, 0xf4, 0x2a, 0xba, 0xbc, 0x96, 0xdd, 0xef, 0xd7, - 0xf6, 0x0d, 0xc8, 0xc7, 0x31, 0x90, 0xab, 0xaa, 0x6e, 0x69, 0xeb, 0xb8, 0xf6, 0x5a, 0x0b, 0xbf, - 0x38, 0xd9, 0x69, 0xbf, 0x72, 0xba, 0x5a, 0x2d, 0xd1, 0xd1, 0x02, 0x1d, 0x94, 0x8f, 0xc1, 0xb8, - 0xbd, 0x7e, 0xae, 0xca, 0x82, 0x4b, 0x45, 0x9e, 0x0d, 0xe3, 0x62, 0xf6, 0x6a, 0xea, 0xa6, 0x31, - 0x32, 0x40, 0x43, 0x6b, 0x85, 0x8a, 0xe5, 0xeb, 0x91, 0xdc, 0xd9, 0xd4, 0x5a, 0x4d, 0x5a, 0xa4, - 0x1d, 0x74, 0xaa, 0x9e, 0xbd, 0x86, 0xa9, 0x32, 0xf9, 0x92, 0x10, 0xcb, 0x25, 0x98, 0x26, 0x93, - 0xb7, 0x34, 0xcb, 0x56, 0xdb, 0x8e, 0xae, 0x76, 0x4c, 0xf4, 0xd6, 0xe2, 0x5a, 0x62, 0x96, 0x72, - 0x50, 0xa8, 0x55, 0x1c, 0x4c, 0x66, 0x42, 0x49, 0x2c, 0xcf, 0x59, 0x98, 0x6c, 0x5b, 0x86, 0x85, - 0x21, 0x8e, 0x23, 0x04, 0xcc, 0x36, 0x6c, 0xf6, 0xd7, 0x23, 0xdb, 0x34, 0xdd, 0x15, 0xbf, 0x36, - 0x0b, 0x12, 0x65, 0xa2, 0xdd, 0x2b, 0xcc, 0xe5, 0x21, 0xe5, 0x8f, 0x1d, 0x39, 0x01, 0x2c, 0x7a, - 0xb0, 0xba, 0x61, 0x45, 0x9d, 0x5d, 0x9e, 0x23, 0xb5, 0xf0, 0xc1, 0x12, 0x16, 0x36, 0xac, 0xc9, - 0x0b, 0xe5, 0xb5, 0x92, 0xaa, 0x54, 0x96, 0xd6, 0xca, 0x8b, 0xa5, 0x4c, 0xe4, 0x58, 0x22, 0xfe, - 0x9b, 0x91, 0xcc, 0x23, 0xf8, 0x6f, 0x28, 0xf7, 0xfa, 0x10, 0xa4, 0x83, 0x7d, 0xb0, 0xfc, 0x2f, - 0xb0, 0x5f, 0x1c, 0x5a, 0x1d, 0xdd, 0x55, 0x1f, 0x32, 0x5a, 0x34, 0x9c, 0x1b, 0x1a, 0xeb, 0x24, - 0xbd, 0x95, 0x98, 0xe4, 0x5a, 0x78, 0xbc, 0xbf, 0x1f, 0x75, 0x4e, 0x53, 0x15, 0x79, 0x01, 0xa6, - 0xd1, 0x65, 0xd8, 0x6b, 0x5a, 0x35, 0xad, 0x55, 0x53, 0x3b, 0xd7, 0x05, 0xaa, 0x56, 0xc5, 0x38, - 0x70, 0x6c, 0x56, 0x49, 0x3c, 0x96, 0x83, 0x96, 0xbd, 0xca, 0x95, 0x3b, 0x29, 0xb6, 0xc0, 0x55, - 0xbb, 0xa2, 0x26, 0xb2, 0x5d, 0xd4, 0x60, 0xef, 0xd5, 0xd0, 0x9a, 0x18, 0x36, 0x6e, 0x6b, 0x8b, - 0x76, 0x6f, 0x71, 0x25, 0x8e, 0x82, 0x12, 0x79, 0xfe, 0xe8, 0xd6, 0xc0, 0xef, 0xc7, 0x5f, 0x45, - 0x20, 0xe5, 0xef, 0xe0, 0x48, 0x43, 0x5c, 0xa5, 0x69, 0x5e, 0xa2, 0x59, 0xe0, 0xc8, 0x8e, 0xfd, - 0xde, 0xcc, 0x2c, 0xc9, 0xff, 0xf9, 0x61, 0xd6, 0x57, 0x29, 0x0c, 0x49, 0x6a, 0x2f, 0x89, 0x35, - 0x9d, 0x75, 0xeb, 0x71, 0x85, 0x3f, 0x61, 0xb2, 0x1b, 0x3e, 0xe7, 0x50, 0xee, 0x61, 0xca, 0x7d, - 0xf5, 0xce, 0xdc, 0x67, 0x56, 0x29, 0x79, 0xe2, 0xcc, 0xaa, 0xba, 0xb4, 0xac, 0x2c, 0x16, 0x16, - 0x14, 0x0e, 0x97, 0x0f, 0x40, 0xd4, 0xd4, 0x1e, 0xde, 0x0a, 0x56, 0x0a, 0x2a, 0x1a, 0xd4, 0xf1, - 0xc8, 0x40, 0xae, 0x3c, 0x82, 0xf9, 0x99, 0x8a, 0x3e, 0xc2, 0xd0, 0x3f, 0x0e, 0x31, 0xea, 0x2f, - 0x19, 0x80, 0x7b, 0x2c, 0xb3, 0x47, 0x8e, 0x43, 0x74, 0x76, 0x59, 0x21, 0xe1, 0x8f, 0xf1, 0xce, - 0xa4, 0xea, 0x4a, 0xb9, 0x34, 0x8b, 0x3b, 0x20, 0x77, 0x3b, 0x0c, 0x33, 0x27, 0x90, 0xad, 0xe1, - 0xb9, 0x01, 0x41, 0xec, 0x91, 0x73, 0x48, 0x62, 0xb4, 0xb2, 0x58, 0x2c, 0x29, 0x99, 0x21, 0xff, - 0xf2, 0xfe, 0x40, 0x82, 0xa4, 0xaf, 0xa1, 0x22, 0xa5, 0x5c, 0x33, 0x4d, 0xfb, 0x21, 0x55, 0x33, - 0x0d, 0xcc, 0x50, 0x6c, 0x7d, 0x80, 0x8a, 0x0a, 0x44, 0x32, 0xa8, 0xff, 0xfe, 0x21, 0xb1, 0xf9, - 0x9c, 0x04, 0x99, 0xee, 0x66, 0xac, 0xcb, 0x40, 0xe9, 0x63, 0x35, 0xf0, 0x19, 0x09, 0xd2, 0xc1, - 0x0e, 0xac, 0xcb, 0xbc, 0xc3, 0x1f, 0xab, 0x79, 0x4f, 0x4b, 0x30, 0x1a, 0xe8, 0xbb, 0xfe, 0xa9, - 0xac, 0x7b, 0x2a, 0x02, 0x13, 0x7d, 0x70, 0x98, 0x80, 0x58, 0x83, 0xca, 0x7a, 0xe6, 0x9b, 0x06, - 0x79, 0xd7, 0x0c, 0xa9, 0x7f, 0x2b, 0x5a, 0xcb, 0xe5, 0xfd, 0x2c, 0xd6, 0x4b, 0xa3, 0x86, 0x49, - 0xd5, 0xd8, 0x30, 0xb0, 0x7d, 0x63, 0x27, 0x16, 0xd6, 0xb5, 0x8e, 0x75, 0xe4, 0xec, 0x78, 0x7c, - 0x23, 0xc8, 0x4d, 0xdb, 0x31, 0x5c, 0xe3, 0x02, 0xb9, 0x9e, 0x13, 0x07, 0x69, 0xd2, 0xc5, 0x46, - 0x95, 0x8c, 0x18, 0x29, 0x5b, 0xae, 0xa7, 0x6d, 0xe9, 0x75, 0xad, 0x4b, 0x9b, 0xa4, 0xa1, 0x88, - 0x92, 0x11, 0x23, 0x9e, 0x36, 0x36, 0x9a, 0x35, 0xbb, 0x4d, 0x1a, 0x02, 0xa6, 0x47, 0xb2, 0x9e, - 0xa4, 0x24, 0x99, 0xcc, 0x53, 0xe1, 0x1d, 0x5b, 0xe7, 0x04, 0x9f, 0x52, 0x92, 0x4c, 0xc6, 0x54, - 0xae, 0x83, 0x31, 0xad, 0x5e, 0x6f, 0x11, 0x72, 0x41, 0xc4, 0xda, 0xd0, 0xb4, 0x27, 0xa6, 0x8a, - 0x53, 0x67, 0x20, 0x2e, 0xfc, 0x40, 0x0a, 0x0b, 0xf1, 0x04, 0xd6, 0x7c, 0x7a, 0x8f, 0x32, 0x44, - 0x0e, 0xf5, 0x96, 0x18, 0xc4, 0x97, 0x1a, 0x8e, 0xda, 0xb9, 0xd0, 0x1b, 0xc2, 0xf1, 0xb8, 0x92, - 0x34, 0x1c, 0xef, 0x06, 0x27, 0xf7, 0x12, 0x96, 0xd7, 0xe0, 0x85, 0xa4, 0x3c, 0x07, 0x71, 0xd3, - 0xc6, 0xf8, 0x20, 0x08, 0x76, 0x1b, 0x7e, 0x34, 0xe4, 0x0e, 0x73, 0x66, 0x81, 0xeb, 0x2b, 0x1e, - 0x72, 0xea, 0xa7, 0x12, 0xc4, 0x85, 0x18, 0x0b, 0x45, 0xb4, 0xa9, 0xb9, 0x9b, 0x94, 0x2e, 0x56, - 0x1c, 0xca, 0x48, 0x0a, 0x7d, 0x26, 0x72, 0xec, 0x66, 0x2c, 0x1a, 0x02, 0x5c, 0x4e, 0x9e, 0xc9, - 0xba, 0x9a, 0xba, 0x56, 0xa3, 0x0d, 0xae, 0xdd, 0x68, 0xe0, 0x4a, 0x3a, 0x62, 0x5d, 0xb9, 0x7c, - 0x96, 0x8b, 0xc9, 0xbd, 0xb8, 0xdb, 0xd2, 0x0c, 0x33, 0xa0, 0x1b, 0xa5, 0xba, 0x19, 0x31, 0xe0, - 0x29, 0xe7, 0xe1, 0x80, 0xe0, 0xad, 0xe9, 0xae, 0x86, 0xcd, 0x73, 0xad, 0x03, 0x1a, 0xa6, 0xb7, - 0x5d, 0xfb, 0xb9, 0xc2, 0x1c, 0x1f, 0x17, 0xd8, 0xe2, 0x59, 0x6c, 0x64, 0xed, 0x46, 0xb7, 0x27, - 0x8a, 0x99, 0xae, 0x73, 0x97, 0x73, 0xaf, 0xf4, 0x20, 0x74, 0x9a, 0x8a, 0x17, 0x87, 0x22, 0xf3, - 0x2b, 0xc5, 0x57, 0x86, 0xa6, 0xe6, 0x19, 0x6e, 0x45, 0x78, 0x50, 0xd1, 0x37, 0x4c, 0xbd, 0x4a, - 0xbc, 0x03, 0x2f, 0x1c, 0x81, 0x9b, 0xea, 0x86, 0xbb, 0xd9, 0x5e, 0x9f, 0xc1, 0x37, 0x1c, 0xaf, - 0xdb, 0x75, 0xbb, 0xf3, 0x73, 0x06, 0x79, 0xa2, 0x0f, 0xf4, 0x1b, 0xff, 0x49, 0x23, 0xe1, 0x49, - 0xa7, 0x42, 0x7f, 0xff, 0xc8, 0x2f, 0xc1, 0x04, 0x57, 0x56, 0xe9, 0x9d, 0x2a, 0x6b, 0x41, 0xe5, - 0x1d, 0x0f, 0xe4, 0xd9, 0x57, 0xdf, 0xa5, 0x25, 0x41, 0x19, 0xe7, 0x50, 0x32, 0xc6, 0x9a, 0xd4, - 0xbc, 0x02, 0x7b, 0x03, 0x7c, 0x2c, 0x86, 0xf1, 0xc8, 0xbd, 0x33, 0xe3, 0xeb, 0x9c, 0x71, 0xc2, - 0xc7, 0xb8, 0xca, 0xa1, 0xf9, 0x59, 0x18, 0xdd, 0x0d, 0xd7, 0x8f, 0x39, 0x57, 0x4a, 0xf7, 0x93, - 0xcc, 0xc3, 0x18, 0x25, 0xa9, 0xb6, 0x1d, 0xd7, 0x6e, 0xd0, 0x04, 0xb1, 0x33, 0xcd, 0x4f, 0xde, - 0x65, 0x41, 0x95, 0x26, 0xb0, 0x59, 0x0f, 0x95, 0xbf, 0x0f, 0x26, 0x89, 0x84, 0xee, 0x41, 0x3f, - 0x5b, 0xf8, 0x15, 0x42, 0xf6, 0x67, 0x8f, 0xb2, 0xd8, 0x9b, 0xf0, 0x08, 0x7c, 0xbc, 0xbe, 0x95, - 0xa8, 0xeb, 0x2e, 0xe6, 0x36, 0x3c, 0xff, 0x99, 0xa6, 0xbc, 0xe3, 0x6f, 0x0c, 0xd9, 0x27, 0xdf, - 0x0b, 0xae, 0xc4, 0x3c, 0x43, 0x16, 0x4c, 0x33, 0x5f, 0x81, 0xfd, 0x7d, 0x56, 0x76, 0x00, 0xce, - 0xa7, 0x38, 0xe7, 0x64, 0xcf, 0xea, 0x12, 0xda, 0x15, 0x10, 0x72, 0x6f, 0x3d, 0x06, 0xe0, 0x7c, - 0x9a, 0x73, 0xca, 0x1c, 0x2b, 0x96, 0x85, 0x30, 0x9e, 0x81, 0x71, 0x3c, 0xa9, 0xaf, 0xdb, 0x0e, - 0x3f, 0xf7, 0x0e, 0x40, 0xf7, 0x0c, 0xa7, 0x1b, 0xe3, 0x40, 0x7a, 0x0a, 0x26, 0x5c, 0x77, 0x42, - 0x7c, 0x03, 0x0f, 0x40, 0x03, 0x50, 0x3c, 0xcb, 0x29, 0x46, 0x88, 0x3e, 0x81, 0x16, 0x20, 0x55, - 0xb7, 0x79, 0x1a, 0x0e, 0x87, 0x3f, 0xc7, 0xe1, 0x49, 0x81, 0xe1, 0x14, 0x4d, 0xbb, 0xd9, 0x36, - 0x49, 0x8e, 0x0e, 0xa7, 0xf8, 0x82, 0xa0, 0x10, 0x18, 0x4e, 0xb1, 0x0b, 0xb7, 0x3e, 0x2f, 0x28, - 0x1c, 0x9f, 0x3f, 0xef, 0x21, 0x77, 0xbd, 0xe6, 0x96, 0x6d, 0x0d, 0x62, 0xc4, 0x0b, 0x9c, 0x01, - 0x38, 0x84, 0x10, 0xdc, 0x05, 0x89, 0x41, 0x17, 0xe2, 0x8b, 0x1c, 0x1e, 0xd7, 0xc5, 0x0a, 0xe0, - 0x3e, 0x13, 0x49, 0x86, 0xfc, 0xb6, 0x12, 0x4e, 0xf1, 0x25, 0x4e, 0x91, 0xf6, 0xc1, 0xf8, 0x34, - 0x5c, 0xdd, 0x71, 0xf1, 0xa8, 0x3e, 0x00, 0xc9, 0x4b, 0x62, 0x1a, 0x1c, 0xc2, 0x5d, 0xb9, 0xae, - 0x5b, 0xd5, 0xcd, 0xc1, 0x18, 0x5e, 0x16, 0xae, 0x14, 0x18, 0x42, 0x81, 0x99, 0xa7, 0xa1, 0xb5, - 0xf0, 0x70, 0x6d, 0x0e, 0xb4, 0x1c, 0x5f, 0xe6, 0x1c, 0x29, 0x0f, 0xc4, 0x3d, 0xd2, 0xb6, 0x76, - 0x43, 0xf3, 0x8a, 0xf0, 0x88, 0x0f, 0xc6, 0xb7, 0x1e, 0x9e, 0x4c, 0x49, 0x27, 0xb1, 0x1b, 0xb6, - 0xaf, 0x88, 0xad, 0xc7, 0xb0, 0x8b, 0x7e, 0x46, 0x5c, 0x69, 0x07, 0x8f, 0xe0, 0x83, 0xd0, 0x7c, - 0x55, 0xac, 0x34, 0x05, 0x10, 0xf0, 0x03, 0x70, 0xa0, 0x6f, 0xaa, 0x1f, 0x80, 0xec, 0x6b, 0x9c, - 0x6c, 0x5f, 0x9f, 0x74, 0xcf, 0x53, 0xc2, 0x6e, 0x29, 0xbf, 0x2e, 0x52, 0x82, 0xde, 0xc5, 0xb5, - 0x42, 0xda, 0x58, 0x47, 0xdb, 0xd8, 0x9d, 0xd7, 0xbe, 0x21, 0xbc, 0xc6, 0xb0, 0x01, 0xaf, 0xad, - 0xc1, 0x3e, 0xce, 0xb8, 0xbb, 0x75, 0xfd, 0xa6, 0x48, 0xac, 0x0c, 0x5d, 0x09, 0xae, 0xee, 0xbf, - 0xc3, 0x94, 0xe7, 0x4e, 0xd1, 0x81, 0x39, 0x2a, 0xb9, 0x18, 0x08, 0x67, 0x7e, 0x95, 0x33, 0x8b, - 0x8c, 0xef, 0xb5, 0x70, 0xce, 0xa2, 0xd6, 0x24, 0xe4, 0x67, 0x21, 0x2b, 0xc8, 0xdb, 0x16, 0x36, - 0xf8, 0x76, 0xdd, 0xc2, 0x65, 0xac, 0x0d, 0x40, 0xfd, 0xad, 0xae, 0xa5, 0xaa, 0xf8, 0xe0, 0x84, - 0xb9, 0x0c, 0x19, 0xaf, 0xdf, 0x50, 0x8d, 0x46, 0xd3, 0xc6, 0xd6, 0x72, 0x67, 0xc6, 0x6f, 0x8b, - 0x95, 0xf2, 0x70, 0x65, 0x0a, 0xcb, 0x97, 0x20, 0x4d, 0x1f, 0x07, 0x0d, 0xc9, 0xef, 0x70, 0xa2, - 0xd1, 0x0e, 0x8a, 0x27, 0x0e, 0xec, 0x94, 0xb0, 0xe7, 0x1d, 0x24, 0xff, 0x7d, 0x57, 0x24, 0x0e, - 0x0e, 0x61, 0xd1, 0x37, 0xd6, 0x55, 0x89, 0xe5, 0xb0, 0x9f, 0x5f, 0xb3, 0xff, 0x79, 0x99, 0xef, - 0xd9, 0x60, 0x21, 0xce, 0x2f, 0x10, 0xf7, 0x04, 0xcb, 0x65, 0x38, 0xd9, 0xa3, 0x97, 0x3d, 0x0f, - 0x05, 0xaa, 0x65, 0xfe, 0x34, 0x8c, 0x06, 0x4a, 0x65, 0x38, 0xd5, 0x7f, 0x71, 0xaa, 0x94, 0xbf, - 0x52, 0xe6, 0x6f, 0x87, 0x28, 0x29, 0x7b, 0xe1, 0xf0, 0xff, 0xe6, 0x70, 0xaa, 0x9e, 0xff, 0x57, - 0x88, 0x8b, 0x72, 0x17, 0x0e, 0xfd, 0x1f, 0x0e, 0xf5, 0x20, 0x04, 0x2e, 0x4a, 0x5d, 0x38, 0xfc, - 0x7f, 0x05, 0x5c, 0x40, 0x08, 0x7c, 0x70, 0x17, 0xbe, 0xf6, 0xff, 0x51, 0x9e, 0xae, 0x84, 0xef, - 0xc8, 0x6f, 0x3e, 0xac, 0xc6, 0x85, 0xa3, 0x1f, 0xe3, 0x2f, 0x17, 0x88, 0xfc, 0x49, 0x88, 0x0d, - 0xe8, 0xf0, 0x4f, 0x70, 0x28, 0xd3, 0xc7, 0x0a, 0x92, 0xf4, 0xd5, 0xb5, 0x70, 0xf8, 0x27, 0x39, - 0xdc, 0x8f, 0x22, 0xa6, 0xf3, 0xba, 0x16, 0x4e, 0xf0, 0xb8, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, - 0x49, 0x0b, 0x47, 0x7f, 0x4a, 0x78, 0x5d, 0x40, 0x70, 0x37, 0x25, 0xbc, 0x34, 0x15, 0x8e, 0xff, - 0x34, 0xc7, 0x77, 0x30, 0xc4, 0x03, 0xbe, 0x34, 0x19, 0x4e, 0xf1, 0x19, 0xe1, 0x01, 0x1f, 0x8a, - 0x6c, 0xa3, 0xee, 0xd2, 0x17, 0xce, 0xf4, 0x59, 0xb1, 0x8d, 0xba, 0x2a, 0x1f, 0x59, 0x4d, 0x9a, - 0x2d, 0xc2, 0x29, 0x3e, 0x27, 0x56, 0x93, 0xea, 0x13, 0x33, 0xba, 0x6b, 0x49, 0x38, 0xc7, 0xe7, - 0x85, 0x19, 0x5d, 0xa5, 0x04, 0x2b, 0x93, 0xdc, 0x5b, 0x47, 0xc2, 0xf9, 0x9e, 0xe0, 0x7c, 0xe3, - 0x3d, 0x65, 0x24, 0x7f, 0x3f, 0xec, 0xeb, 0x5f, 0x43, 0xc2, 0x59, 0x9f, 0xbc, 0xdc, 0xd5, 0xf5, - 0xfb, 0x4b, 0x08, 0x96, 0xbc, 0xc9, 0x7e, 0xf5, 0x23, 0x9c, 0xf6, 0xa9, 0xcb, 0xc1, 0x83, 0x9d, - 0xbf, 0x7c, 0x60, 0x87, 0x06, 0x9d, 0xd4, 0x1d, 0xce, 0xf5, 0x0c, 0xe7, 0xf2, 0x81, 0xc8, 0xd6, - 0xe0, 0x99, 0x3b, 0x1c, 0xff, 0xac, 0xd8, 0x1a, 0x1c, 0x81, 0xe0, 0xb8, 0xd5, 0x36, 0x4d, 0x12, - 0x1c, 0xf2, 0xce, 0x7f, 0xd2, 0x90, 0xfd, 0xed, 0x07, 0x7c, 0x63, 0x08, 0x00, 0xe6, 0xd0, 0x98, - 0xde, 0x58, 0x47, 0x1f, 0x84, 0x20, 0x7f, 0xf7, 0x81, 0x48, 0x08, 0x44, 0x1b, 0xf7, 0x13, 0xb0, - 0x43, 0x23, 0xbd, 0xc3, 0x0e, 0xc1, 0xfe, 0xfe, 0x03, 0xfe, 0x33, 0x6b, 0x07, 0xd2, 0x21, 0x60, - 0x3f, 0xda, 0xee, 0x4c, 0xf0, 0x5e, 0x90, 0x80, 0x1e, 0x34, 0xef, 0x84, 0x11, 0xf2, 0x97, 0x1d, - 0xae, 0x56, 0x0f, 0x43, 0xff, 0x81, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc3, 0x6e, 0xe9, 0xf8, 0xd5, - 0x09, 0xc3, 0xfe, 0x91, 0x63, 0x3d, 0x00, 0x01, 0x57, 0x35, 0xc7, 0x1d, 0x64, 0xde, 0x7f, 0x12, - 0x60, 0x01, 0x20, 0x46, 0x93, 0xef, 0xe7, 0xf5, 0xad, 0x30, 0xec, 0xfb, 0xc2, 0x68, 0xae, 0x8f, - 0x09, 0x30, 0x41, 0xbe, 0xb2, 0x3f, 0x3d, 0x08, 0x01, 0xff, 0x99, 0x83, 0x3b, 0x88, 0xe2, 0xe1, - 0xfe, 0x57, 0x3b, 0x30, 0x6f, 0xcf, 0xdb, 0xec, 0x52, 0x07, 0x7e, 0x18, 0x85, 0x51, 0xfd, 0xa2, - 0xd6, 0x68, 0x0a, 0x05, 0x39, 0x4a, 0xb2, 0xef, 0xd4, 0xee, 0x2e, 0x6e, 0x72, 0x8f, 0x4b, 0x20, - 0x15, 0xe4, 0x6b, 0x21, 0x39, 0xd7, 0xc9, 0xfd, 0xec, 0x77, 0xe9, 0x62, 0xf4, 0x8d, 0x4b, 0xd3, - 0x7b, 0x02, 0x45, 0x41, 0x3e, 0x08, 0xc3, 0x4b, 0x9d, 0xbf, 0x6d, 0x88, 0x70, 0x15, 0xf1, 0x17, - 0x0e, 0x79, 0x18, 0x2a, 0xb3, 0x9b, 0xfb, 0x54, 0xf1, 0x18, 0x19, 0xf9, 0xe5, 0xa5, 0xe9, 0xdc, - 0xb6, 0xe6, 0x10, 0x6b, 0x67, 0x2a, 0x6d, 0xa3, 0xa6, 0x0c, 0x19, 0xb5, 0x7c, 0xfc, 0xff, 0x9e, - 0x9f, 0xde, 0xf3, 0xf2, 0xf3, 0xd3, 0x52, 0xce, 0x02, 0xa9, 0x28, 0x4f, 0xa3, 0x55, 0xd4, 0x8c, - 0xe4, 0x89, 0x91, 0x19, 0xaa, 0x59, 0x28, 0xc6, 0x09, 0xe5, 0x9b, 0x97, 0xa6, 0x25, 0x45, 0xd2, - 0xe4, 0x22, 0x48, 0xf3, 0xf4, 0x96, 0x2e, 0x55, 0xbc, 0x8d, 0xbf, 0xea, 0xc6, 0x1d, 0x5f, 0x75, - 0x9c, 0x45, 0xe3, 0x4c, 0xc5, 0xb0, 0xdc, 0x5b, 0x4e, 0x9c, 0x52, 0xa4, 0x7a, 0x3e, 0xfa, 0x3e, - 0x79, 0xdf, 0x11, 0x90, 0x66, 0xe5, 0x43, 0x10, 0x25, 0x7b, 0x9b, 0xbe, 0x32, 0x52, 0x84, 0x77, - 0x2e, 0x4d, 0x0f, 0x2f, 0x6e, 0xad, 0xa2, 0x44, 0xa1, 0xf2, 0xdc, 0x49, 0x90, 0x2a, 0xf2, 0xde, - 0x5e, 0xa3, 0x88, 0x29, 0x28, 0x2e, 0x52, 0x7f, 0x78, 0xe2, 0xa2, 0x22, 0xad, 0xe7, 0xa3, 0x6f, - 0x10, 0xf6, 0x09, 0x90, 0x4a, 0xc7, 0xe2, 0x71, 0x89, 0x5d, 0x3d, 0xa3, 0xf0, 0x85, 0xe9, 0x3d, - 0xb9, 0xeb, 0x41, 0x52, 0xc8, 0xdf, 0xd7, 0x76, 0xd2, 0x12, 0xa5, 0x1d, 0x55, 0x7c, 0x92, 0x7c, - 0xf4, 0x4d, 0xa2, 0x7a, 0x03, 0xc4, 0x67, 0x31, 0x2c, 0xf8, 0x5f, 0x43, 0xc4, 0xca, 0x96, 0x7b, - 0xeb, 0x09, 0x6e, 0x65, 0xe2, 0x6f, 0x97, 0xa6, 0x63, 0x06, 0x11, 0x28, 0xec, 0xbf, 0xe2, 0x8d, - 0xbf, 0x78, 0xfb, 0xd0, 0x9e, 0xb7, 0xde, 0x3e, 0x24, 0xbd, 0x8f, 0x9f, 0xbf, 0xe2, 0xe7, 0x91, - 0x77, 0x0e, 0x49, 0x2f, 0xe3, 0xe7, 0xfb, 0xf8, 0x79, 0x0d, 0x3f, 0x6f, 0xe0, 0xe7, 0x4d, 0xfc, - 0xbc, 0x85, 0x9f, 0xbf, 0x07, 0x00, 0x00, 0xff, 0xff, 0x03, 0xe3, 0x26, 0x61, 0xac, 0x2c, 0x00, - 0x00, + // 3850 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x6b, 0x70, 0x1b, 0xd7, + 0x75, 0xd6, 0xe2, 0x41, 0x02, 0x07, 0x20, 0xb8, 0xbc, 0xa4, 0x24, 0x88, 0xb6, 0x49, 0x09, 0x7e, + 0xd1, 0xb2, 0x43, 0xa5, 0xb4, 0x24, 0xcb, 0xab, 0x26, 0x1e, 0x00, 0x84, 0x18, 0xa8, 0x7c, 0x65, + 0x41, 0xc4, 0x72, 0xfa, 0x63, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x22, 0xbb, 0x0b, 0x49, + 0xd4, 0x2f, 0x75, 0xdc, 0x57, 0xa6, 0xd3, 0xa6, 0xaf, 0x99, 0x26, 0xae, 0xe3, 0x3a, 0x99, 0x69, + 0xed, 0x26, 0x7d, 0xa5, 0x8f, 0x34, 0xd3, 0x3f, 0xcd, 0x9f, 0xb4, 0xfa, 0xd5, 0x71, 0xfe, 0x75, + 0x3a, 0x1d, 0x8d, 0xad, 0x7a, 0xa6, 0x2f, 0xb7, 0x75, 0x1b, 0xcf, 0xb4, 0x53, 0xff, 0xc9, 0xdc, + 0xd7, 0x62, 0xf1, 0x20, 0x17, 0xcc, 0x8c, 0xe3, 0x5f, 0xe4, 0x3d, 0xf7, 0x7c, 0xdf, 0x9e, 0x3d, + 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x58, 0xf8, 0xa7, 0x0b, 0x70, 0xba, 0xe5, 0x38, 0x2d, 0x0b, 0x9f, + 0xeb, 0xb8, 0x8e, 0xef, 0xec, 0x76, 0x9b, 0xe7, 0x1a, 0xd8, 0x33, 0x5c, 0xb3, 0xe3, 0x3b, 0xee, + 0x32, 0x95, 0xa1, 0x69, 0xa6, 0xb1, 0x2c, 0x34, 0x0a, 0x1b, 0x30, 0x73, 0xc5, 0xb4, 0xf0, 0x6a, + 0xa0, 0x58, 0xc3, 0x3e, 0xba, 0x04, 0x89, 0xa6, 0x69, 0xe1, 0xbc, 0x74, 0x3a, 0xbe, 0x94, 0x59, + 0x79, 0x6c, 0x79, 0x00, 0xb4, 0xdc, 0x8f, 0xd8, 0x26, 0x62, 0x95, 0x22, 0x0a, 0xef, 0x26, 0x60, + 0x76, 0xc4, 0x2c, 0x42, 0x90, 0xb0, 0xf5, 0x36, 0x61, 0x94, 0x96, 0xd2, 0x2a, 0xfd, 0x1f, 0xe5, + 0x61, 0xb2, 0xa3, 0x1b, 0x37, 0xf4, 0x16, 0xce, 0xc7, 0xa8, 0x58, 0x0c, 0xd1, 0x02, 0x40, 0x03, + 0x77, 0xb0, 0xdd, 0xc0, 0xb6, 0xb1, 0x9f, 0x8f, 0x9f, 0x8e, 0x2f, 0xa5, 0xd5, 0x90, 0x04, 0x3d, + 0x0d, 0x33, 0x9d, 0xee, 0xae, 0x65, 0x1a, 0x5a, 0x48, 0x0d, 0x4e, 0xc7, 0x97, 0x92, 0xaa, 0xcc, + 0x26, 0x56, 0x7b, 0xca, 0x4f, 0xc2, 0xf4, 0x2d, 0xac, 0xdf, 0x08, 0xab, 0x66, 0xa8, 0x6a, 0x8e, + 0x88, 0x43, 0x8a, 0x65, 0xc8, 0xb6, 0xb1, 0xe7, 0xe9, 0x2d, 0xac, 0xf9, 0xfb, 0x1d, 0x9c, 0x4f, + 0xd0, 0xb7, 0x3f, 0x3d, 0xf4, 0xf6, 0x83, 0x6f, 0x9e, 0xe1, 0xa8, 0x9d, 0xfd, 0x0e, 0x46, 0x45, + 0x48, 0x63, 0xbb, 0xdb, 0x66, 0x0c, 0xc9, 0x03, 0xfc, 0x57, 0xb1, 0xbb, 0xed, 0x41, 0x96, 0x14, + 0x81, 0x71, 0x8a, 0x49, 0x0f, 0xbb, 0x37, 0x4d, 0x03, 0xe7, 0x27, 0x28, 0xc1, 0x93, 0x43, 0x04, + 0x35, 0x36, 0x3f, 0xc8, 0x21, 0x70, 0xa8, 0x0c, 0x69, 0x7c, 0xdb, 0xc7, 0xb6, 0x67, 0x3a, 0x76, + 0x7e, 0x92, 0x92, 0x3c, 0x3e, 0x62, 0x15, 0xb1, 0xd5, 0x18, 0xa4, 0xe8, 0xe1, 0xd0, 0x45, 0x98, + 0x74, 0x3a, 0xbe, 0xe9, 0xd8, 0x5e, 0x3e, 0x75, 0x5a, 0x5a, 0xca, 0xac, 0x3c, 0x3c, 0x32, 0x10, + 0xb6, 0x98, 0x8e, 0x2a, 0x94, 0x51, 0x15, 0x64, 0xcf, 0xe9, 0xba, 0x06, 0xd6, 0x0c, 0xa7, 0x81, + 0x35, 0xd3, 0x6e, 0x3a, 0xf9, 0x34, 0x25, 0x58, 0x1c, 0x7e, 0x11, 0xaa, 0x58, 0x76, 0x1a, 0xb8, + 0x6a, 0x37, 0x1d, 0x35, 0xe7, 0xf5, 0x8d, 0xd1, 0x09, 0x98, 0xf0, 0xf6, 0x6d, 0x5f, 0xbf, 0x9d, + 0xcf, 0xd2, 0x08, 0xe1, 0xa3, 0xc2, 0xff, 0x26, 0x61, 0x7a, 0x9c, 0x10, 0xbb, 0x0c, 0xc9, 0x26, + 0x79, 0xcb, 0x7c, 0xec, 0x28, 0x3e, 0x60, 0x98, 0x7e, 0x27, 0x4e, 0xfc, 0x88, 0x4e, 0x2c, 0x42, + 0xc6, 0xc6, 0x9e, 0x8f, 0x1b, 0x2c, 0x22, 0xe2, 0x63, 0xc6, 0x14, 0x30, 0xd0, 0x70, 0x48, 0x25, + 0x7e, 0xa4, 0x90, 0xba, 0x06, 0xd3, 0x81, 0x49, 0x9a, 0xab, 0xdb, 0x2d, 0x11, 0x9b, 0xe7, 0xa2, + 0x2c, 0x59, 0xae, 0x08, 0x9c, 0x4a, 0x60, 0x6a, 0x0e, 0xf7, 0x8d, 0xd1, 0x2a, 0x80, 0x63, 0x63, + 0xa7, 0xa9, 0x35, 0xb0, 0x61, 0xe5, 0x53, 0x07, 0x78, 0x69, 0x8b, 0xa8, 0x0c, 0x79, 0xc9, 0x61, + 0x52, 0xc3, 0x42, 0xcf, 0xf7, 0x42, 0x6d, 0xf2, 0x80, 0x48, 0xd9, 0x60, 0x9b, 0x6c, 0x28, 0xda, + 0xea, 0x90, 0x73, 0x31, 0x89, 0x7b, 0xdc, 0xe0, 0x6f, 0x96, 0xa6, 0x46, 0x2c, 0x47, 0xbe, 0x99, + 0xca, 0x61, 0xec, 0xc5, 0xa6, 0xdc, 0xf0, 0x10, 0x3d, 0x0a, 0x81, 0x40, 0xa3, 0x61, 0x05, 0x34, + 0x0b, 0x65, 0x85, 0x70, 0x53, 0x6f, 0xe3, 0xf9, 0x4b, 0x90, 0xeb, 0x77, 0x0f, 0x9a, 0x83, 0xa4, + 0xe7, 0xeb, 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb2, 0x01, 0x92, 0x21, 0x8e, 0xed, 0x06, 0xcd, 0x72, + 0x49, 0x95, 0xfc, 0x3b, 0xff, 0x1c, 0x4c, 0xf5, 0x3d, 0x7e, 0x5c, 0x60, 0xe1, 0xcb, 0x13, 0x30, + 0x37, 0x2a, 0xe6, 0x46, 0x86, 0xff, 0x09, 0x98, 0xb0, 0xbb, 0xed, 0x5d, 0xec, 0xe6, 0xe3, 0x94, + 0x81, 0x8f, 0x50, 0x11, 0x92, 0x96, 0xbe, 0x8b, 0xad, 0x7c, 0xe2, 0xb4, 0xb4, 0x94, 0x5b, 0x79, + 0x7a, 0xac, 0xa8, 0x5e, 0x5e, 0x27, 0x10, 0x95, 0x21, 0xd1, 0xa7, 0x21, 0xc1, 0x53, 0x1c, 0x61, + 0x38, 0x3b, 0x1e, 0x03, 0x89, 0x45, 0x95, 0xe2, 0xd0, 0x43, 0x90, 0x26, 0x7f, 0x99, 0x6f, 0x27, + 0xa8, 0xcd, 0x29, 0x22, 0x20, 0x7e, 0x45, 0xf3, 0x90, 0xa2, 0x61, 0xd6, 0xc0, 0xa2, 0x34, 0x04, + 0x63, 0xb2, 0x30, 0x0d, 0xdc, 0xd4, 0xbb, 0x96, 0xaf, 0xdd, 0xd4, 0xad, 0x2e, 0xa6, 0x01, 0x93, + 0x56, 0xb3, 0x5c, 0xf8, 0x39, 0x22, 0x43, 0x8b, 0x90, 0x61, 0x51, 0x69, 0xda, 0x0d, 0x7c, 0x9b, + 0x66, 0x9f, 0xa4, 0xca, 0x02, 0xb5, 0x4a, 0x24, 0xe4, 0xf1, 0xd7, 0x3d, 0xc7, 0x16, 0x4b, 0x4b, + 0x1f, 0x41, 0x04, 0xf4, 0xf1, 0xcf, 0x0d, 0x26, 0xbe, 0x47, 0x46, 0xbf, 0xde, 0x60, 0x2c, 0x16, + 0xbe, 0x1d, 0x83, 0x04, 0xdd, 0x6f, 0xd3, 0x90, 0xd9, 0x79, 0x69, 0xbb, 0xa2, 0xad, 0x6e, 0xd5, + 0x4b, 0xeb, 0x15, 0x59, 0x42, 0x39, 0x00, 0x2a, 0xb8, 0xb2, 0xbe, 0x55, 0xdc, 0x91, 0x63, 0xc1, + 0xb8, 0xba, 0xb9, 0x73, 0xf1, 0xbc, 0x1c, 0x0f, 0x00, 0x75, 0x26, 0x48, 0x84, 0x15, 0x9e, 0x5d, + 0x91, 0x93, 0x48, 0x86, 0x2c, 0x23, 0xa8, 0x5e, 0xab, 0xac, 0x5e, 0x3c, 0x2f, 0x4f, 0xf4, 0x4b, + 0x9e, 0x5d, 0x91, 0x27, 0xd1, 0x14, 0xa4, 0xa9, 0xa4, 0xb4, 0xb5, 0xb5, 0x2e, 0xa7, 0x02, 0xce, + 0xda, 0x8e, 0x5a, 0xdd, 0x5c, 0x93, 0xd3, 0x01, 0xe7, 0x9a, 0xba, 0x55, 0xdf, 0x96, 0x21, 0x60, + 0xd8, 0xa8, 0xd4, 0x6a, 0xc5, 0xb5, 0x8a, 0x9c, 0x09, 0x34, 0x4a, 0x2f, 0xed, 0x54, 0x6a, 0x72, + 0xb6, 0xcf, 0xac, 0x67, 0x57, 0xe4, 0xa9, 0xe0, 0x11, 0x95, 0xcd, 0xfa, 0x86, 0x9c, 0x43, 0x33, + 0x30, 0xc5, 0x1e, 0x21, 0x8c, 0x98, 0x1e, 0x10, 0x5d, 0x3c, 0x2f, 0xcb, 0x3d, 0x43, 0x18, 0xcb, + 0x4c, 0x9f, 0xe0, 0xe2, 0x79, 0x19, 0x15, 0xca, 0x90, 0xa4, 0xd1, 0x85, 0x10, 0xe4, 0xd6, 0x8b, + 0xa5, 0xca, 0xba, 0xb6, 0xb5, 0xbd, 0x53, 0xdd, 0xda, 0x2c, 0xae, 0xcb, 0x52, 0x4f, 0xa6, 0x56, + 0x3e, 0x5b, 0xaf, 0xaa, 0x95, 0x55, 0x39, 0x16, 0x96, 0x6d, 0x57, 0x8a, 0x3b, 0x95, 0x55, 0x39, + 0x5e, 0x30, 0x60, 0x6e, 0x54, 0x9e, 0x19, 0xb9, 0x33, 0x42, 0x4b, 0x1c, 0x3b, 0x60, 0x89, 0x29, + 0xd7, 0xd0, 0x12, 0x7f, 0x5d, 0x82, 0xd9, 0x11, 0xb9, 0x76, 0xe4, 0x43, 0x5e, 0x80, 0x24, 0x0b, + 0x51, 0x56, 0x7d, 0x9e, 0x1a, 0x99, 0xb4, 0x69, 0xc0, 0x0e, 0x55, 0x20, 0x8a, 0x0b, 0x57, 0xe0, + 0xf8, 0x01, 0x15, 0x98, 0x50, 0x0c, 0x19, 0xf9, 0xb2, 0x04, 0xf9, 0x83, 0xb8, 0x23, 0x12, 0x45, + 0xac, 0x2f, 0x51, 0x5c, 0x1e, 0x34, 0xe0, 0xcc, 0xc1, 0xef, 0x30, 0x64, 0xc5, 0x1b, 0x12, 0x9c, + 0x18, 0xdd, 0xa8, 0x8c, 0xb4, 0xe1, 0xd3, 0x30, 0xd1, 0xc6, 0xfe, 0x9e, 0x23, 0x8a, 0xf5, 0x13, + 0x23, 0x4a, 0x00, 0x99, 0x1e, 0xf4, 0x15, 0x47, 0x85, 0x6b, 0x48, 0xfc, 0xa0, 0x6e, 0x83, 0x59, + 0x33, 0x64, 0xe9, 0x17, 0x63, 0x70, 0x7c, 0x24, 0xf9, 0x48, 0x43, 0x1f, 0x01, 0x30, 0xed, 0x4e, + 0xd7, 0x67, 0x05, 0x99, 0xe5, 0xa7, 0x34, 0x95, 0xd0, 0xbd, 0x4f, 0x72, 0x4f, 0xd7, 0x0f, 0xe6, + 0xe3, 0x74, 0x1e, 0x98, 0x88, 0x2a, 0x5c, 0xea, 0x19, 0x9a, 0xa0, 0x86, 0x2e, 0x1c, 0xf0, 0xa6, + 0x43, 0xb5, 0xee, 0x93, 0x20, 0x1b, 0x96, 0x89, 0x6d, 0x5f, 0xf3, 0x7c, 0x17, 0xeb, 0x6d, 0xd3, + 0x6e, 0xd1, 0x04, 0x9c, 0x52, 0x92, 0x4d, 0xdd, 0xf2, 0xb0, 0x3a, 0xcd, 0xa6, 0x6b, 0x62, 0x96, + 0x20, 0x68, 0x95, 0x71, 0x43, 0x88, 0x89, 0x3e, 0x04, 0x9b, 0x0e, 0x10, 0x85, 0x6f, 0x4e, 0x42, + 0x26, 0xd4, 0xd6, 0xa1, 0x33, 0x90, 0xbd, 0xae, 0xdf, 0xd4, 0x35, 0xd1, 0xaa, 0x33, 0x4f, 0x64, + 0x88, 0x6c, 0x9b, 0xb7, 0xeb, 0x9f, 0x84, 0x39, 0xaa, 0xe2, 0x74, 0x7d, 0xec, 0x6a, 0x86, 0xa5, + 0x7b, 0x1e, 0x75, 0x5a, 0x8a, 0xaa, 0x22, 0x32, 0xb7, 0x45, 0xa6, 0xca, 0x62, 0x06, 0x5d, 0x80, + 0x59, 0x8a, 0x68, 0x77, 0x2d, 0xdf, 0xec, 0x58, 0x58, 0x23, 0x87, 0x07, 0x8f, 0x26, 0xe2, 0xc0, + 0xb2, 0x19, 0xa2, 0xb1, 0xc1, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x85, 0x47, 0x28, 0xac, 0x85, 0x6d, + 0xec, 0xea, 0x3e, 0xd6, 0xf0, 0x17, 0xba, 0xba, 0xe5, 0x69, 0xba, 0xdd, 0xd0, 0xf6, 0x74, 0x6f, + 0x2f, 0x3f, 0x47, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x9e, 0x22, 0x8a, 0x6b, 0x5c, 0xaf, 0x42, 0xd5, + 0x8a, 0x76, 0xe3, 0x33, 0xba, 0xb7, 0x87, 0x14, 0x38, 0x41, 0x59, 0x3c, 0xdf, 0x35, 0xed, 0x96, + 0x66, 0xec, 0x61, 0xe3, 0x86, 0xd6, 0xf5, 0x9b, 0x97, 0xf2, 0x0f, 0x85, 0x9f, 0x4f, 0x2d, 0xac, + 0x51, 0x9d, 0x32, 0x51, 0xa9, 0xfb, 0xcd, 0x4b, 0xa8, 0x06, 0x59, 0xb2, 0x18, 0x6d, 0xf3, 0x0e, + 0xd6, 0x9a, 0x8e, 0x4b, 0x2b, 0x4b, 0x6e, 0xc4, 0xce, 0x0e, 0x79, 0x70, 0x79, 0x8b, 0x03, 0x36, + 0x9c, 0x06, 0x56, 0x92, 0xb5, 0xed, 0x4a, 0x65, 0x55, 0xcd, 0x08, 0x96, 0x2b, 0x8e, 0x4b, 0x02, + 0xaa, 0xe5, 0x04, 0x0e, 0xce, 0xb0, 0x80, 0x6a, 0x39, 0xc2, 0xbd, 0x17, 0x60, 0xd6, 0x30, 0xd8, + 0x3b, 0x9b, 0x86, 0xc6, 0x5b, 0x7c, 0x2f, 0x2f, 0xf7, 0x39, 0xcb, 0x30, 0xd6, 0x98, 0x02, 0x8f, + 0x71, 0x0f, 0x3d, 0x0f, 0xc7, 0x7b, 0xce, 0x0a, 0x03, 0x67, 0x86, 0xde, 0x72, 0x10, 0x7a, 0x01, + 0x66, 0x3b, 0xfb, 0xc3, 0x40, 0xd4, 0xf7, 0xc4, 0xce, 0xfe, 0x20, 0xec, 0x71, 0x7a, 0x6c, 0x73, + 0xb1, 0xa1, 0xfb, 0xb8, 0x91, 0x3f, 0x19, 0xd6, 0x0e, 0x4d, 0xa0, 0x73, 0x20, 0x1b, 0x86, 0x86, + 0x6d, 0x7d, 0xd7, 0xc2, 0x9a, 0xee, 0x62, 0x5b, 0xf7, 0xf2, 0x8b, 0x61, 0xe5, 0x9c, 0x61, 0x54, + 0xe8, 0x6c, 0x91, 0x4e, 0xa2, 0xb3, 0x30, 0xe3, 0xec, 0x5e, 0x37, 0x58, 0x64, 0x69, 0x1d, 0x17, + 0x37, 0xcd, 0xdb, 0xf9, 0xc7, 0xa8, 0x9b, 0xa6, 0xc9, 0x04, 0x8d, 0xab, 0x6d, 0x2a, 0x46, 0x4f, + 0x81, 0x6c, 0x78, 0x7b, 0xba, 0xdb, 0xa1, 0xa5, 0xdd, 0xeb, 0xe8, 0x06, 0xce, 0x3f, 0xce, 0x54, + 0x99, 0x7c, 0x53, 0x88, 0x49, 0x64, 0x7b, 0xb7, 0xcc, 0xa6, 0x2f, 0x18, 0x9f, 0x64, 0x91, 0x4d, + 0x65, 0x9c, 0xed, 0x1a, 0xcc, 0x75, 0x6d, 0xd3, 0xf6, 0xb1, 0xdb, 0x71, 0x31, 0x69, 0xe2, 0xd9, + 0x4e, 0xcc, 0xff, 0xf3, 0xe4, 0x01, 0x6d, 0x78, 0x3d, 0xac, 0xcd, 0x02, 0x40, 0x9d, 0xed, 0x0e, + 0x0b, 0x0b, 0x0a, 0x64, 0xc3, 0x71, 0x81, 0xd2, 0xc0, 0x22, 0x43, 0x96, 0x48, 0x8d, 0x2d, 0x6f, + 0xad, 0x92, 0xea, 0xf8, 0xf9, 0x8a, 0x1c, 0x23, 0x55, 0x7a, 0xbd, 0xba, 0x53, 0xd1, 0xd4, 0xfa, + 0xe6, 0x4e, 0x75, 0xa3, 0x22, 0xc7, 0xcf, 0xa6, 0x53, 0xff, 0x32, 0x29, 0xdf, 0xbd, 0x7b, 0xf7, + 0x6e, 0xac, 0xf0, 0xbd, 0x18, 0xe4, 0xfa, 0x3b, 0x63, 0xf4, 0x93, 0x70, 0x52, 0x1c, 0x63, 0x3d, + 0xec, 0x6b, 0xb7, 0x4c, 0x97, 0x86, 0x6a, 0x5b, 0x67, 0xbd, 0x65, 0xe0, 0xe5, 0x39, 0xae, 0x55, + 0xc3, 0xfe, 0x8b, 0xa6, 0x4b, 0x02, 0xb1, 0xad, 0xfb, 0x68, 0x1d, 0x16, 0x6d, 0x47, 0xf3, 0x7c, + 0xdd, 0x6e, 0xe8, 0x6e, 0x43, 0xeb, 0x5d, 0x20, 0x68, 0xba, 0x61, 0x60, 0xcf, 0x73, 0x58, 0x89, + 0x08, 0x58, 0x1e, 0xb6, 0x9d, 0x1a, 0x57, 0xee, 0xe5, 0xce, 0x22, 0x57, 0x1d, 0x88, 0x88, 0xf8, + 0x41, 0x11, 0xf1, 0x10, 0xa4, 0xdb, 0x7a, 0x47, 0xc3, 0xb6, 0xef, 0xee, 0xd3, 0x7e, 0x2e, 0xa5, + 0xa6, 0xda, 0x7a, 0xa7, 0x42, 0xc6, 0x1f, 0xdd, 0x1a, 0x84, 0xfd, 0xf8, 0x8f, 0x71, 0xc8, 0x86, + 0x7b, 0x3a, 0xd2, 0x22, 0x1b, 0x34, 0x7f, 0x4b, 0x74, 0x87, 0x3f, 0x7a, 0x68, 0x07, 0xb8, 0x5c, + 0x26, 0x89, 0x5d, 0x99, 0x60, 0x9d, 0x96, 0xca, 0x90, 0xa4, 0xa8, 0x92, 0x3d, 0x8d, 0x59, 0xff, + 0x9e, 0x52, 0xf9, 0x08, 0xad, 0xc1, 0xc4, 0x75, 0x8f, 0x72, 0x4f, 0x50, 0xee, 0xc7, 0x0e, 0xe7, + 0xbe, 0x5a, 0xa3, 0xe4, 0xe9, 0xab, 0x35, 0x6d, 0x73, 0x4b, 0xdd, 0x28, 0xae, 0xab, 0x1c, 0x8e, + 0x4e, 0x41, 0xc2, 0xd2, 0xef, 0xec, 0xf7, 0x97, 0x00, 0x2a, 0x1a, 0xd7, 0xf1, 0xa7, 0x20, 0x71, + 0x0b, 0xeb, 0x37, 0xfa, 0x13, 0x2f, 0x15, 0x7d, 0x84, 0xa1, 0x7f, 0x0e, 0x92, 0xd4, 0x5f, 0x08, + 0x80, 0x7b, 0x4c, 0x3e, 0x86, 0x52, 0x90, 0x28, 0x6f, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, + 0xb6, 0x5d, 0xad, 0x94, 0x2b, 0x72, 0xac, 0x70, 0x01, 0x26, 0x98, 0x13, 0xc8, 0xd6, 0x08, 0xdc, + 0x20, 0x1f, 0xe3, 0x43, 0xce, 0x21, 0x89, 0xd9, 0xfa, 0x46, 0xa9, 0xa2, 0xca, 0xb1, 0xf0, 0xf2, + 0x7a, 0x90, 0x0d, 0xb7, 0x73, 0x3f, 0x9e, 0x98, 0xfa, 0x2b, 0x09, 0x32, 0xa1, 0xf6, 0x8c, 0x34, + 0x06, 0xba, 0x65, 0x39, 0xb7, 0x34, 0xdd, 0x32, 0x75, 0x8f, 0x07, 0x05, 0x50, 0x51, 0x91, 0x48, + 0xc6, 0x5d, 0xb4, 0x1f, 0x8b, 0xf1, 0xaf, 0x49, 0x20, 0x0f, 0xb6, 0x76, 0x03, 0x06, 0x4a, 0x1f, + 0xab, 0x81, 0xaf, 0x4a, 0x90, 0xeb, 0xef, 0xe7, 0x06, 0xcc, 0x3b, 0xf3, 0xb1, 0x9a, 0xf7, 0x76, + 0x0c, 0xa6, 0xfa, 0xba, 0xb8, 0x71, 0xad, 0xfb, 0x02, 0xcc, 0x98, 0x0d, 0xdc, 0xee, 0x38, 0x3e, + 0xb6, 0x8d, 0x7d, 0xcd, 0xc2, 0x37, 0xb1, 0x95, 0x2f, 0xd0, 0x44, 0x71, 0xee, 0xf0, 0x3e, 0x71, + 0xb9, 0xda, 0xc3, 0xad, 0x13, 0x98, 0x32, 0x5b, 0x5d, 0xad, 0x6c, 0x6c, 0x6f, 0xed, 0x54, 0x36, + 0xcb, 0x2f, 0x69, 0xf5, 0xcd, 0x9f, 0xda, 0xdc, 0x7a, 0x71, 0x53, 0x95, 0xcd, 0x01, 0xb5, 0x8f, + 0x70, 0xab, 0x6f, 0x83, 0x3c, 0x68, 0x14, 0x3a, 0x09, 0xa3, 0xcc, 0x92, 0x8f, 0xa1, 0x59, 0x98, + 0xde, 0xdc, 0xd2, 0x6a, 0xd5, 0xd5, 0x8a, 0x56, 0xb9, 0x72, 0xa5, 0x52, 0xde, 0xa9, 0xb1, 0x83, + 0x73, 0xa0, 0xbd, 0xd3, 0xbf, 0xa9, 0x5f, 0x89, 0xc3, 0xec, 0x08, 0x4b, 0x50, 0x91, 0xf7, 0xec, + 0xec, 0x18, 0xf1, 0x89, 0x71, 0xac, 0x5f, 0x26, 0x5d, 0xc1, 0xb6, 0xee, 0xfa, 0xbc, 0xc5, 0x7f, + 0x0a, 0x88, 0x97, 0x6c, 0xdf, 0x6c, 0x9a, 0xd8, 0xe5, 0xf7, 0x0c, 0xac, 0x91, 0x9f, 0xee, 0xc9, + 0xd9, 0x55, 0xc3, 0x33, 0x80, 0x3a, 0x8e, 0x67, 0xfa, 0xe6, 0x4d, 0xac, 0x99, 0xb6, 0xb8, 0x94, + 0x20, 0x8d, 0x7d, 0x42, 0x95, 0xc5, 0x4c, 0xd5, 0xf6, 0x03, 0x6d, 0x1b, 0xb7, 0xf4, 0x01, 0x6d, + 0x92, 0xc0, 0xe3, 0xaa, 0x2c, 0x66, 0x02, 0xed, 0x33, 0x90, 0x6d, 0x38, 0x5d, 0xd2, 0x26, 0x31, + 0x3d, 0x52, 0x2f, 0x24, 0x35, 0xc3, 0x64, 0x81, 0x0a, 0xef, 0x63, 0x7b, 0xb7, 0x21, 0x59, 0x35, + 0xc3, 0x64, 0x4c, 0xe5, 0x49, 0x98, 0xd6, 0x5b, 0x2d, 0x97, 0x90, 0x0b, 0x22, 0xd6, 0x99, 0xe7, + 0x02, 0x31, 0x55, 0x9c, 0xbf, 0x0a, 0x29, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, 0xb4, 0x0e, 0xbb, + 0x93, 0x8a, 0x2d, 0xa5, 0xd5, 0x94, 0x2d, 0x26, 0xcf, 0x40, 0xd6, 0xf4, 0xb4, 0xde, 0xe5, 0x68, + 0xec, 0x74, 0x6c, 0x29, 0xa5, 0x66, 0x4c, 0x2f, 0xb8, 0x0d, 0x2b, 0xbc, 0x11, 0x83, 0x5c, 0xff, + 0xe5, 0x2e, 0x5a, 0x85, 0x94, 0xe5, 0x18, 0x3a, 0x0d, 0x2d, 0xf6, 0xcb, 0xc2, 0x52, 0xc4, 0x7d, + 0xf0, 0xf2, 0x3a, 0xd7, 0x57, 0x03, 0xe4, 0xfc, 0xdf, 0x49, 0x90, 0x12, 0x62, 0x74, 0x02, 0x12, + 0x1d, 0xdd, 0xdf, 0xa3, 0x74, 0xc9, 0x52, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xaf, 0xa3, 0xdb, + 0x34, 0x04, 0xb8, 0x9c, 0x8c, 0xc9, 0xba, 0x5a, 0x58, 0x6f, 0xd0, 0xb6, 0xdf, 0x69, 0xb7, 0xb1, + 0xed, 0x7b, 0x62, 0x5d, 0xb9, 0xbc, 0xcc, 0xc5, 0xe8, 0x69, 0x98, 0xf1, 0x5d, 0xdd, 0xb4, 0xfa, + 0x74, 0x13, 0x54, 0x57, 0x16, 0x13, 0x81, 0xb2, 0x02, 0xa7, 0x04, 0x6f, 0x03, 0xfb, 0xba, 0xb1, + 0x87, 0x1b, 0x3d, 0xd0, 0x04, 0xbd, 0x39, 0x3c, 0xc9, 0x15, 0x56, 0xf9, 0xbc, 0xc0, 0x16, 0xbe, + 0x2f, 0xc1, 0x8c, 0x38, 0xa8, 0x34, 0x02, 0x67, 0x6d, 0x00, 0xe8, 0xb6, 0xed, 0xf8, 0x61, 0x77, + 0x0d, 0x87, 0xf2, 0x10, 0x6e, 0xb9, 0x18, 0x80, 0xd4, 0x10, 0xc1, 0x7c, 0x1b, 0xa0, 0x37, 0x73, + 0xa0, 0xdb, 0x16, 0x21, 0xc3, 0x6f, 0xee, 0xe9, 0xcf, 0x3f, 0xec, 0x68, 0x0b, 0x4c, 0x44, 0x4e, + 0x34, 0x68, 0x0e, 0x92, 0xbb, 0xb8, 0x65, 0xda, 0xfc, 0x3e, 0x91, 0x0d, 0xc4, 0x2d, 0x65, 0x22, + 0xb8, 0xa5, 0x2c, 0x5d, 0x83, 0x59, 0xc3, 0x69, 0x0f, 0x9a, 0x5b, 0x92, 0x07, 0x8e, 0xd7, 0xde, + 0x67, 0xa4, 0xcf, 0x43, 0xaf, 0xc5, 0xfc, 0x7a, 0x2c, 0xbe, 0xb6, 0x5d, 0xfa, 0x46, 0x6c, 0x7e, + 0x8d, 0xe1, 0xb6, 0xc5, 0x6b, 0xaa, 0xb8, 0x69, 0x61, 0x83, 0x98, 0x0e, 0x3f, 0x78, 0x02, 0x3e, + 0xd1, 0x32, 0xfd, 0xbd, 0xee, 0xee, 0xb2, 0xe1, 0xb4, 0xcf, 0xb5, 0x9c, 0x96, 0xd3, 0xfb, 0xb9, + 0x8b, 0x8c, 0xe8, 0x80, 0xfe, 0xc7, 0x7f, 0xf2, 0x4a, 0x07, 0xd2, 0xf9, 0xc8, 0xdf, 0xc7, 0x94, + 0x4d, 0x98, 0xe5, 0xca, 0x1a, 0xbd, 0x73, 0x67, 0x47, 0x03, 0x74, 0xe8, 0xbd, 0x4b, 0xfe, 0x5b, + 0xef, 0xd2, 0x5a, 0xad, 0xce, 0x70, 0x28, 0x99, 0x63, 0x07, 0x08, 0x45, 0x85, 0xe3, 0x7d, 0x7c, + 0x6c, 0x5f, 0x62, 0x37, 0x82, 0xf1, 0x7b, 0x9c, 0x71, 0x36, 0xc4, 0x58, 0xe3, 0x50, 0xa5, 0x0c, + 0x53, 0x47, 0xe1, 0xfa, 0x1b, 0xce, 0x95, 0xc5, 0x61, 0x92, 0x35, 0x98, 0xa6, 0x24, 0x46, 0xd7, + 0xf3, 0x9d, 0x36, 0x4d, 0x7a, 0x87, 0xd3, 0xfc, 0xed, 0xbb, 0x6c, 0xa3, 0xe4, 0x08, 0xac, 0x1c, + 0xa0, 0x14, 0x05, 0xe8, 0xcf, 0x0c, 0x0d, 0x6c, 0x58, 0x11, 0x0c, 0xf7, 0xb8, 0x21, 0x81, 0xbe, + 0xf2, 0x39, 0x98, 0x23, 0xff, 0xd3, 0x9c, 0x14, 0xb6, 0x24, 0xfa, 0x96, 0x29, 0xff, 0xfd, 0x97, + 0xd9, 0x5e, 0x9c, 0x0d, 0x08, 0x42, 0x36, 0x85, 0x56, 0xb1, 0x85, 0x7d, 0x1f, 0xbb, 0x9e, 0xa6, + 0x5b, 0xa3, 0xcc, 0x0b, 0x1d, 0xd3, 0xf3, 0x5f, 0x79, 0xaf, 0x7f, 0x15, 0xd7, 0x18, 0xb2, 0x68, + 0x59, 0x4a, 0x1d, 0x4e, 0x8e, 0x88, 0x8a, 0x31, 0x38, 0x5f, 0xe1, 0x9c, 0x73, 0x43, 0x91, 0x41, + 0x68, 0xb7, 0x41, 0xc8, 0x83, 0xb5, 0x1c, 0x83, 0xf3, 0xb7, 0x39, 0x27, 0xe2, 0x58, 0xb1, 0xa4, + 0x84, 0xf1, 0x2a, 0xcc, 0xdc, 0xc4, 0xee, 0xae, 0xe3, 0xf1, 0xab, 0x91, 0x31, 0xe8, 0x5e, 0xe5, + 0x74, 0xd3, 0x1c, 0x48, 0xef, 0x4a, 0x08, 0xd7, 0xf3, 0x90, 0x6a, 0xea, 0x06, 0x1e, 0x83, 0xe2, + 0xab, 0x9c, 0x62, 0x92, 0xe8, 0x13, 0x68, 0x11, 0xb2, 0x2d, 0x87, 0x97, 0xa5, 0x68, 0xf8, 0x6b, + 0x1c, 0x9e, 0x11, 0x18, 0x4e, 0xd1, 0x71, 0x3a, 0x5d, 0x8b, 0xd4, 0xac, 0x68, 0x8a, 0xdf, 0x11, + 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0xd7, 0x05, 0x85, 0x17, 0xf2, 0xe7, 0x0b, 0x90, 0x71, + 0x6c, 0x6b, 0xdf, 0xb1, 0xc7, 0x31, 0xe2, 0x6b, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x86, 0xf4, + 0xb8, 0x0b, 0xf1, 0xbb, 0xef, 0x89, 0xed, 0x21, 0x56, 0x60, 0x0d, 0xa6, 0x45, 0x82, 0x32, 0x1d, + 0x7b, 0x0c, 0x8a, 0xdf, 0xe3, 0x14, 0xb9, 0x10, 0x8c, 0xbf, 0x86, 0x8f, 0x3d, 0xbf, 0x85, 0xc7, + 0x21, 0x79, 0x43, 0xbc, 0x06, 0x87, 0x70, 0x57, 0xee, 0x62, 0xdb, 0xd8, 0x1b, 0x8f, 0xe1, 0x4d, + 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0x6a, 0xeb, 0xae, 0xb7, 0xa7, 0x5b, 0x63, 0x2d, 0xc7, + 0xef, 0x73, 0x8e, 0x6c, 0x00, 0xe2, 0x1e, 0xe9, 0xda, 0x47, 0xa1, 0xf9, 0x86, 0xf0, 0x48, 0x08, + 0xc6, 0xb7, 0x9e, 0xe7, 0xd3, 0x0b, 0xa8, 0xa3, 0xb0, 0x7d, 0x53, 0x6c, 0x3d, 0x86, 0xdd, 0x08, + 0x33, 0x5e, 0x86, 0xb4, 0x67, 0xde, 0x19, 0x8b, 0xe6, 0x0f, 0xc4, 0x4a, 0x53, 0x00, 0x01, 0xbf, + 0x04, 0xa7, 0x46, 0x96, 0x89, 0x31, 0xc8, 0xfe, 0x90, 0x93, 0x9d, 0x18, 0x51, 0x2a, 0x78, 0x4a, + 0x38, 0x2a, 0xe5, 0x1f, 0x89, 0x94, 0x80, 0x07, 0xb8, 0xb6, 0xc9, 0x41, 0xc1, 0xd3, 0x9b, 0x47, + 0xf3, 0xda, 0x1f, 0x0b, 0xaf, 0x31, 0x6c, 0x9f, 0xd7, 0x76, 0xe0, 0x04, 0x67, 0x3c, 0xda, 0xba, + 0xfe, 0x89, 0x48, 0xac, 0x0c, 0x5d, 0xef, 0x5f, 0xdd, 0x9f, 0x86, 0xf9, 0xc0, 0x9d, 0xa2, 0x23, + 0xf5, 0xb4, 0xb6, 0xde, 0x19, 0x83, 0xf9, 0x5b, 0x9c, 0x59, 0x64, 0xfc, 0xa0, 0xa5, 0xf5, 0x36, + 0xf4, 0x0e, 0x21, 0xbf, 0x06, 0x79, 0x41, 0xde, 0xb5, 0x5d, 0x6c, 0x38, 0x2d, 0xdb, 0xbc, 0x83, + 0x1b, 0x63, 0x50, 0xff, 0xe9, 0xc0, 0x52, 0xd5, 0x43, 0x70, 0xc2, 0x5c, 0x05, 0x39, 0xe8, 0x55, + 0x34, 0xb3, 0xdd, 0x71, 0x5c, 0x3f, 0x82, 0xf1, 0xcf, 0xc4, 0x4a, 0x05, 0xb8, 0x2a, 0x85, 0x29, + 0x15, 0xc8, 0xd1, 0xe1, 0xb8, 0x21, 0xf9, 0xe7, 0x9c, 0x68, 0xaa, 0x87, 0xe2, 0x89, 0xc3, 0x70, + 0xda, 0x1d, 0xdd, 0x1d, 0x27, 0xff, 0xfd, 0x85, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0xbf, 0xdf, + 0xc1, 0xa4, 0xda, 0x8f, 0xc1, 0xf0, 0x6d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x0c, + 0x8a, 0xbf, 0x14, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xdb, 0x2b, 0xb4, 0x2e, 0x6e, 0x99, 0x9e, 0xef, + 0xb2, 0x3e, 0xf8, 0x70, 0xaa, 0xef, 0xbc, 0xd7, 0xdf, 0x84, 0xa9, 0x21, 0xa8, 0x72, 0x15, 0xa6, + 0x07, 0x5a, 0x0c, 0x14, 0xf5, 0xcd, 0x42, 0xfe, 0x67, 0x3e, 0xe0, 0xc9, 0xa8, 0xbf, 0xc3, 0x50, + 0xd6, 0xc9, 0xba, 0xf7, 0xf7, 0x01, 0xd1, 0x64, 0x2f, 0x7f, 0x10, 0x2c, 0x7d, 0x5f, 0x1b, 0xa0, + 0x5c, 0x81, 0xa9, 0xbe, 0x1e, 0x20, 0x9a, 0xea, 0x67, 0x39, 0x55, 0x36, 0xdc, 0x02, 0x28, 0x17, + 0x20, 0x41, 0xea, 0x79, 0x34, 0xfc, 0xe7, 0x38, 0x9c, 0xaa, 0x2b, 0x9f, 0x82, 0x94, 0xa8, 0xe3, + 0xd1, 0xd0, 0x9f, 0xe7, 0xd0, 0x00, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x41, 0xc0, 0x05, + 0x84, 0xc0, 0xc7, 0x77, 0xe1, 0x77, 0x7f, 0x29, 0xc1, 0xf3, 0xb0, 0xf0, 0xdd, 0x65, 0x98, 0xe4, + 0xc5, 0x3b, 0x1a, 0xfd, 0x45, 0xfe, 0x70, 0x81, 0x50, 0x9e, 0x83, 0xe4, 0x98, 0x0e, 0xff, 0x65, + 0x0e, 0x65, 0xfa, 0x4a, 0x19, 0x32, 0xa1, 0x82, 0x1d, 0x0d, 0xff, 0x15, 0x0e, 0x0f, 0xa3, 0x88, + 0xe9, 0xbc, 0x60, 0x47, 0x13, 0x7c, 0x49, 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0x56, 0x47, 0xa3, + 0x7f, 0x55, 0x78, 0x5d, 0x40, 0x94, 0x17, 0x20, 0x1d, 0xe4, 0xdf, 0x68, 0xfc, 0xaf, 0x71, 0x7c, + 0x0f, 0x43, 0x3c, 0x10, 0xca, 0xff, 0xd1, 0x14, 0xbf, 0x2e, 0x3c, 0x10, 0x42, 0x91, 0x6d, 0x34, + 0x58, 0xd3, 0xa3, 0x99, 0x7e, 0x43, 0x6c, 0xa3, 0x81, 0x92, 0x4e, 0x56, 0x93, 0xa6, 0xc1, 0x68, + 0x8a, 0xdf, 0x14, 0xab, 0x49, 0xf5, 0x89, 0x19, 0x83, 0x45, 0x32, 0x9a, 0xe3, 0xb7, 0x84, 0x19, + 0x03, 0x35, 0x52, 0xd9, 0x06, 0x34, 0x5c, 0x20, 0xa3, 0xf9, 0xbe, 0xcc, 0xf9, 0x66, 0x86, 0xea, + 0xa3, 0xf2, 0x22, 0x9c, 0x18, 0x5d, 0x1c, 0xa3, 0x59, 0xbf, 0xf2, 0xc1, 0xc0, 0x71, 0x26, 0x5c, + 0x1b, 0x95, 0x9d, 0x5e, 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0x57, 0x3e, 0xe8, 0x4f, 0xb4, 0xe1, + 0xba, 0xa8, 0x14, 0x01, 0x7a, 0x35, 0x29, 0x9a, 0xeb, 0x55, 0xce, 0x15, 0x02, 0x91, 0xad, 0xc1, + 0x4b, 0x52, 0x34, 0xfe, 0xab, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, 0x5f, + 0x13, 0x5b, 0x43, 0x40, 0x94, 0xcb, 0x90, 0xb2, 0xbb, 0x96, 0x45, 0x62, 0x0b, 0x1d, 0xfe, 0x19, + 0x51, 0xfe, 0x5f, 0x3f, 0xe4, 0x60, 0x01, 0x50, 0x2e, 0x40, 0x12, 0xb7, 0x77, 0x71, 0x23, 0x0a, + 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0x95, 0x17, 0x00, 0xd8, 0x61, 0x9a, 0xfe, 0x4a, 0x14, + 0x81, 0xfd, 0xf7, 0x0f, 0xf9, 0x17, 0x0a, 0x3d, 0x48, 0x8f, 0x80, 0x7d, 0xef, 0x70, 0x38, 0xc1, + 0x7b, 0xfd, 0x04, 0xf4, 0x00, 0xfe, 0x3c, 0x4c, 0x5e, 0xf7, 0x1c, 0xdb, 0xd7, 0x5b, 0x51, 0xe8, + 0xff, 0xe0, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0x76, 0x5c, 0xec, 0xeb, 0x2d, 0x2f, 0x0a, 0xfb, 0x9f, + 0x1c, 0x1b, 0x00, 0x08, 0xd8, 0xd0, 0x3d, 0x7f, 0x9c, 0xf7, 0xfe, 0x2f, 0x01, 0x16, 0x00, 0x62, + 0x34, 0xf9, 0xff, 0x06, 0xde, 0x8f, 0xc2, 0xbe, 0x2f, 0x8c, 0xe6, 0xfa, 0xca, 0xa7, 0x20, 0x4d, + 0xfe, 0x65, 0x5f, 0xed, 0x44, 0x80, 0xff, 0x9b, 0x83, 0x7b, 0x08, 0xf2, 0x64, 0xcf, 0x6f, 0xf8, + 0x66, 0xb4, 0xb3, 0xff, 0x87, 0xaf, 0xb4, 0xd0, 0x57, 0x8a, 0x90, 0xf1, 0xfc, 0x46, 0xa3, 0xcb, + 0x3b, 0x9a, 0x08, 0xf8, 0x0f, 0x3e, 0x0c, 0x0e, 0xb9, 0x01, 0xa6, 0x74, 0x66, 0xf4, 0x65, 0x1d, + 0xac, 0x39, 0x6b, 0x0e, 0xbb, 0xa6, 0x83, 0xbf, 0x4e, 0xc0, 0x14, 0xbe, 0xad, 0xb7, 0x3b, 0x42, + 0x01, 0x25, 0x48, 0xe9, 0x98, 0x3f, 0xda, 0x55, 0x5c, 0xe1, 0x4b, 0x12, 0x48, 0x45, 0xf4, 0x04, + 0x64, 0x56, 0x7b, 0x85, 0x8b, 0x7d, 0x50, 0x52, 0x4a, 0xdc, 0xbb, 0xbf, 0x78, 0x4c, 0x0d, 0x4f, + 0xa0, 0x87, 0x61, 0x62, 0xb3, 0xf7, 0x51, 0x52, 0x9c, 0xab, 0x70, 0x19, 0x52, 0x20, 0x56, 0x65, + 0x3f, 0x92, 0x65, 0x4b, 0x67, 0xc9, 0xcc, 0x3f, 0xdc, 0x5f, 0x2c, 0x1c, 0x68, 0x0e, 0xb1, 0x76, + 0xb9, 0xde, 0x35, 0x1b, 0x6a, 0xac, 0xda, 0x50, 0x52, 0xbf, 0xf8, 0xfa, 0xe2, 0xb1, 0x37, 0x5f, + 0x5f, 0x94, 0x0a, 0x36, 0x48, 0x25, 0xb4, 0x08, 0x52, 0x91, 0x9a, 0x91, 0x59, 0x99, 0x5c, 0xa6, + 0x9a, 0xc5, 0x52, 0x8a, 0x50, 0xbe, 0x75, 0x7f, 0x51, 0x52, 0xa5, 0x22, 0x2a, 0x81, 0xb4, 0x46, + 0xef, 0x92, 0xb3, 0xa5, 0xf3, 0xfc, 0x51, 0xcf, 0x1c, 0xfa, 0xa8, 0x73, 0x6c, 0x2f, 0x2c, 0xd7, + 0x4d, 0xdb, 0xff, 0x89, 0x95, 0x4b, 0xaa, 0xb4, 0xa6, 0x24, 0xde, 0x27, 0xcf, 0x7b, 0x14, 0xa4, + 0x32, 0x5a, 0x80, 0x04, 0x49, 0x4c, 0xf4, 0x91, 0xf1, 0x12, 0x3c, 0xb8, 0xbf, 0x38, 0xb1, 0xb1, + 0x5f, 0x33, 0xef, 0x60, 0x95, 0xca, 0x0b, 0xcf, 0x81, 0x54, 0x47, 0xc7, 0x87, 0x8d, 0x22, 0xa6, + 0x1c, 0x07, 0xa9, 0xc4, 0x3f, 0x59, 0xe3, 0xe2, 0x92, 0x2a, 0x95, 0x94, 0xc4, 0x3d, 0xc2, 0x3e, + 0x0b, 0x52, 0xe5, 0x6c, 0x2a, 0x25, 0xb1, 0x1f, 0x48, 0x94, 0xc4, 0xbd, 0xaf, 0x2d, 0x1e, 0x2b, + 0x3c, 0x05, 0x92, 0x8a, 0x16, 0x00, 0x7a, 0x39, 0x95, 0xd2, 0x4e, 0xa9, 0x21, 0x89, 0x92, 0x78, + 0x8b, 0xa8, 0x3e, 0x0d, 0xa9, 0xb2, 0xee, 0x89, 0xcf, 0x98, 0x92, 0x55, 0xdb, 0x7f, 0x76, 0x85, + 0x5b, 0x99, 0xfe, 0xff, 0xfb, 0x8b, 0x49, 0x93, 0x08, 0x54, 0x26, 0x2f, 0x3d, 0xf3, 0xf7, 0xef, + 0x2c, 0x1c, 0x7b, 0xfb, 0x9d, 0x05, 0xe9, 0xfd, 0x77, 0x16, 0xa4, 0xff, 0x7b, 0x67, 0x41, 0xba, + 0xfb, 0x60, 0x41, 0x7a, 0xf3, 0xc1, 0x82, 0xf4, 0x9d, 0x07, 0x0b, 0xd2, 0x77, 0x1f, 0x2c, 0x48, + 0xf7, 0x1e, 0x2c, 0x48, 0x6f, 0x3d, 0x58, 0x90, 0xde, 0x7e, 0xb0, 0x20, 0xfd, 0x30, 0x00, 0x00, + 0xff, 0xff, 0xbe, 0x52, 0xb0, 0x1d, 0x9e, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1093,88 +1112,71 @@ func valueToGoStringExample(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringExample(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintExample(data, i, uint64(len(m.Description))) - i += copy(data[i:], m.Description) - data[i] = 0x10 + i = encodeVarintExample(dAtA, i, uint64(len(m.Description))) + i += copy(dAtA[i:], m.Description) + dAtA[i] = 0x10 i++ - i = encodeVarintExample(data, i, uint64(m.Number)) - data[i] = 0x1a + i = encodeVarintExample(dAtA, i, uint64(m.Number)) + dAtA[i] = 0x1a i++ - i = encodeVarintExample(data, i, uint64(m.Id.Size())) - n1, err := m.Id.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(m.Id.Size())) + n1, err := m.Id.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n1 if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *B) Marshal() (data []byte, err error) { +func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *B) MarshalTo(data []byte) (int, error) { +func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintExample(data, i, uint64(m.A.Size())) - n2, err := m.A.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(m.A.Size())) + n2, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 if len(m.G) > 0 { for _, msg := range m.G { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintExample(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -1182,181 +1184,181 @@ func (m *B) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *C) Marshal() (data []byte, err error) { +func (m *C) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *C) MarshalTo(data []byte) (int, error) { +func (m *C) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.MySize != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintExample(data, i, uint64(*m.MySize)) + i = encodeVarintExample(dAtA, i, uint64(*m.MySize)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *U) Marshal() (data []byte, err error) { +func (m *U) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *U) MarshalTo(data []byte) (int, error) { +func (m *U) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.A != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintExample(data, i, uint64(m.A.Size())) - n3, err := m.A.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(m.A.Size())) + n3, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n3 } if m.B != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintExample(data, i, uint64(m.B.Size())) - n4, err := m.B.MarshalTo(data[i:]) + i = encodeVarintExample(dAtA, i, uint64(m.B.Size())) + n4, err := m.B.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n4 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *E) Marshal() (data []byte, err error) { +func (m *E) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *E) MarshalTo(data []byte) (int, error) { +func (m *E) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_extensions != nil { - i += copy(data[i:], m.XXX_extensions) + i += copy(dAtA[i:], m.XXX_extensions) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *R) Marshal() (data []byte, err error) { +func (m *R) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *R) MarshalTo(data []byte) (int, error) { +func (m *R) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Recognized != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintExample(data, i, uint64(*m.Recognized)) + i = encodeVarintExample(dAtA, i, uint64(*m.Recognized)) } return i, nil } -func (m *CastType) Marshal() (data []byte, err error) { +func (m *CastType) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CastType) MarshalTo(data []byte) (int, error) { +func (m *CastType) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Int32 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintExample(data, i, uint64(*m.Int32)) + i = encodeVarintExample(dAtA, i, uint64(*m.Int32)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Example(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Example(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Example(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Example(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintExample(data []byte, offset int, v uint64) int { +func encodeVarintExample(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedA(r randyExample, easy bool) *A { this := &A{} - this.Description = randStringExample(r) + this.Description = string(randStringExample(r)) this.Number = int64(r.Int63()) if r.Intn(2) == 0 { this.Number *= -1 @@ -1424,8 +1426,8 @@ func NewPopulatedE(r randyExample, easy bool) *E { if wire == 3 { wire = 5 } - data := randFieldExample(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldExample(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } return this @@ -1483,7 +1485,7 @@ func randStringExample(r randyExample) string { } return string(tmps) } -func randUnrecognizedExample(r randyExample, maxFieldNumber int) (data []byte) { +func randUnrecognizedExample(r randyExample, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1491,43 +1493,43 @@ func randUnrecognizedExample(r randyExample, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldExample(data, r, fieldNumber, wire) + dAtA = randFieldExample(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldExample(data []byte, r randyExample, fieldNumber int, wire int) []byte { +func randFieldExample(dAtA []byte, r randyExample, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateExample(data, uint64(key)) + dAtA = encodeVarintPopulateExample(dAtA, uint64(key)) v9 := r.Int63() if r.Intn(2) == 0 { v9 *= -1 } - data = encodeVarintPopulateExample(data, uint64(v9)) + dAtA = encodeVarintPopulateExample(dAtA, uint64(v9)) case 1: - data = encodeVarintPopulateExample(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateExample(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateExample(data, uint64(key)) + dAtA = encodeVarintPopulateExample(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateExample(data, uint64(ll)) + dAtA = encodeVarintPopulateExample(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateExample(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateExample(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateExample(data []byte, v uint64) []byte { +func encodeVarintPopulateExample(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *A) Size() (n int) { var l int @@ -1688,7 +1690,7 @@ func (this *E) String() string { return "nil" } s := strings.Join([]string{`&E{`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -1744,8 +1746,8 @@ func (this *U) SetValue(value interface{}) bool { } return true } -func (m *A) Unmarshal(data []byte) error { - l := len(data) +func (m *A) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1757,7 +1759,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1785,7 +1787,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1800,7 +1802,7 @@ func (m *A) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Description = string(data[iNdEx:postIndex]) + m.Description = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -1814,7 +1816,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Number |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1833,7 +1835,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1847,13 +1849,13 @@ func (m *A) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -1863,7 +1865,7 @@ func (m *A) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1873,8 +1875,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func (m *B) Unmarshal(data []byte) error { - l := len(data) +func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1886,7 +1888,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1914,7 +1916,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1928,7 +1930,7 @@ func (m *B) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1944,7 +1946,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1960,13 +1962,13 @@ func (m *B) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.G = append(m.G, v) - if err := m.G[len(m.G)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.G[len(m.G)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -1976,7 +1978,7 @@ func (m *B) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1986,8 +1988,8 @@ func (m *B) Unmarshal(data []byte) error { } return nil } -func (m *C) Unmarshal(data []byte) error { - l := len(data) +func (m *C) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1999,7 +2001,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2027,7 +2029,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2037,7 +2039,7 @@ func (m *C) Unmarshal(data []byte) error { m.MySize = &v default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2047,7 +2049,7 @@ func (m *C) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2057,8 +2059,8 @@ func (m *C) Unmarshal(data []byte) error { } return nil } -func (m *U) Unmarshal(data []byte) error { - l := len(data) +func (m *U) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2070,7 +2072,7 @@ func (m *U) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2098,7 +2100,7 @@ func (m *U) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2115,7 +2117,7 @@ func (m *U) Unmarshal(data []byte) error { if m.A == nil { m.A = &A{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2131,7 +2133,7 @@ func (m *U) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2148,13 +2150,13 @@ func (m *U) Unmarshal(data []byte) error { if m.B == nil { m.B = &B{} } - if err := m.B.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.B.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2164,7 +2166,7 @@ func (m *U) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2174,8 +2176,8 @@ func (m *U) Unmarshal(data []byte) error { } return nil } -func (m *E) Unmarshal(data []byte) error { - l := len(data) +func (m *E) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2187,7 +2189,7 @@ func (m *E) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2214,7 +2216,7 @@ func (m *E) Unmarshal(data []byte) error { } } iNdEx -= sizeOfWire - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2224,11 +2226,11 @@ func (m *E) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy]) + github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2238,7 +2240,7 @@ func (m *E) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2249,8 +2251,8 @@ func (m *E) Unmarshal(data []byte) error { } return nil } -func (m *R) Unmarshal(data []byte) error { - l := len(data) +func (m *R) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2262,7 +2264,7 @@ func (m *R) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2290,7 +2292,7 @@ func (m *R) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -2300,7 +2302,7 @@ func (m *R) Unmarshal(data []byte) error { m.Recognized = &v default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2319,8 +2321,8 @@ func (m *R) Unmarshal(data []byte) error { } return nil } -func (m *CastType) Unmarshal(data []byte) error { - l := len(data) +func (m *CastType) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2332,7 +2334,7 @@ func (m *CastType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2360,7 +2362,7 @@ func (m *CastType) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2370,7 +2372,7 @@ func (m *CastType) Unmarshal(data []byte) error { m.Int32 = &v default: iNdEx = preIndex - skippy, err := skipExample(data[iNdEx:]) + skippy, err := skipExample(dAtA[iNdEx:]) if err != nil { return err } @@ -2380,7 +2382,7 @@ func (m *CastType) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2390,8 +2392,8 @@ func (m *CastType) Unmarshal(data []byte) error { } return nil } -func skipExample(data []byte) (n int, err error) { - l := len(data) +func skipExample(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2402,7 +2404,7 @@ func skipExample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2420,7 +2422,7 @@ func skipExample(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2437,7 +2439,7 @@ func skipExample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2460,7 +2462,7 @@ func skipExample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2471,7 +2473,7 @@ func skipExample(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipExample(data[start:]) + next, err := skipExample(dAtA[start:]) if err != nil { return 0, err } @@ -2495,32 +2497,35 @@ var ( ErrIntOverflowExample = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("example.proto", fileDescriptorExample) } + var fileDescriptorExample = []byte{ - // 415 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x6b, 0xd4, 0x40, - 0x18, 0x86, 0xf7, 0xdb, 0x4d, 0xd7, 0x74, 0xd6, 0x82, 0x8c, 0x08, 0x8b, 0x48, 0x46, 0x22, 0x88, - 0xd6, 0x9a, 0xc5, 0x55, 0x50, 0x72, 0xeb, 0x54, 0x91, 0x1e, 0xf4, 0x30, 0xba, 0x3f, 0x60, 0x93, - 0x8c, 0x71, 0xc0, 0x64, 0x42, 0x32, 0x01, 0xeb, 0xa9, 0x47, 0x6f, 0xfe, 0x85, 0x7a, 0xeb, 0x4f, - 0xf0, 0xe8, 0x71, 0x8f, 0x7b, 0x14, 0x0f, 0xa1, 0xed, 0x2f, 0xe8, 0x51, 0x3c, 0xf9, 0xcd, 0xec, - 0xa2, 0x82, 0xd8, 0xc0, 0x4b, 0x32, 0xef, 0xf7, 0xe5, 0x7d, 0x1f, 0x86, 0x6c, 0xc9, 0xf7, 0xf3, - 0xa2, 0x7a, 0x27, 0xa3, 0xaa, 0xd6, 0x46, 0x53, 0xcf, 0xc8, 0xc6, 0x5c, 0xbf, 0x9f, 0x2b, 0xf3, - 0xb6, 0x4d, 0xa2, 0x54, 0x17, 0x93, 0x5c, 0xe7, 0x7a, 0xe2, 0x86, 0x49, 0xfb, 0xc6, 0x9d, 0xdc, - 0xc1, 0x7d, 0xad, 0x7e, 0x0a, 0x3f, 0x01, 0x81, 0x5d, 0x7a, 0x9b, 0x8c, 0x9e, 0xca, 0x26, 0xad, - 0x55, 0x65, 0x94, 0x2e, 0xc7, 0x70, 0x13, 0xee, 0x6c, 0x72, 0x6f, 0xd1, 0xb1, 0x9e, 0x18, 0x65, - 0x7f, 0x06, 0xf4, 0x06, 0x19, 0xbe, 0x6c, 0x8b, 0x44, 0xd6, 0xe3, 0x3e, 0xae, 0x0c, 0xd6, 0x2b, - 0xc3, 0xd2, 0x79, 0x34, 0x26, 0xfd, 0xfd, 0x6c, 0x3c, 0xc0, 0xc9, 0x65, 0xbe, 0x6d, 0x27, 0xdf, - 0x3b, 0x16, 0xfe, 0x17, 0xc7, 0xd2, 0x46, 0xb3, 0x56, 0x65, 0xa2, 0xaf, 0xb2, 0xd8, 0xff, 0x78, - 0xc4, 0x7a, 0xc7, 0x47, 0x0c, 0xc2, 0x92, 0x00, 0xa7, 0x0c, 0xa9, 0x1c, 0xc6, 0x68, 0x7a, 0x29, - 0x72, 0x9b, 0xbb, 0xdc, 0xb7, 0x91, 0xcb, 0x8e, 0x81, 0x80, 0x39, 0xe5, 0x04, 0x9e, 0x23, 0xc4, - 0x00, 0xab, 0x1e, 0xad, 0xab, 0x76, 0x2e, 0xac, 0x9a, 0xa4, 0x6d, 0x63, 0x74, 0x11, 0xcd, 0x54, - 0x69, 0x1e, 0x4c, 0x9f, 0x08, 0xc8, 0x63, 0xef, 0xdc, 0xf6, 0xdd, 0x22, 0xb0, 0x47, 0x03, 0xe2, - 0x35, 0xea, 0x83, 0x74, 0x95, 0x03, 0x4e, 0xce, 0x3a, 0x36, 0x7c, 0x71, 0xf0, 0x0a, 0x1d, 0xe1, - 0xfc, 0xf0, 0x31, 0x81, 0x19, 0xbd, 0xf6, 0x2f, 0x94, 0x45, 0x41, 0x9b, 0xbb, 0xfb, 0xf8, 0x6d, - 0x73, 0x01, 0x49, 0xec, 0x2d, 0x6c, 0xfa, 0x55, 0x02, 0xcf, 0xb6, 0x7d, 0x1f, 0xae, 0x1c, 0xe2, - 0xd3, 0x47, 0xf3, 0x33, 0xeb, 0x85, 0x77, 0x09, 0x08, 0xac, 0x24, 0xb5, 0x4c, 0x75, 0x5e, 0x62, - 0x7e, 0xe6, 0x62, 0xb7, 0xc4, 0x5f, 0x4e, 0xec, 0x2d, 0xed, 0xea, 0x3d, 0xe2, 0xef, 0xcd, 0x1b, - 0xf3, 0xfa, 0xa0, 0x92, 0x78, 0x29, 0x1b, 0xfb, 0xa5, 0x79, 0x38, 0x5d, 0x53, 0x6e, 0xfe, 0xec, - 0xd8, 0x86, 0xb2, 0x86, 0x58, 0xbd, 0xf8, 0xce, 0xb7, 0xd3, 0xa0, 0x77, 0x72, 0x1a, 0xc0, 0x39, - 0xea, 0x07, 0xea, 0xf0, 0x2c, 0x80, 0x63, 0xd4, 0x17, 0xd4, 0x57, 0xd4, 0x02, 0xb5, 0x44, 0x9d, - 0xa0, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x54, 0x6c, 0x61, 0x3f, 0x02, 0x00, 0x00, + // 425 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x6b, 0x13, 0x41, + 0x14, 0xc7, 0xf3, 0x36, 0xdb, 0xba, 0x7d, 0x6d, 0x41, 0x46, 0x0a, 0x41, 0x64, 0x26, 0xac, 0x20, + 0xb1, 0xd6, 0x0d, 0x46, 0x41, 0xd9, 0x5b, 0xa6, 0x4a, 0xc9, 0x41, 0x0f, 0xa3, 0xf9, 0x00, 0x4d, + 0x32, 0xc6, 0x01, 0xb3, 0x13, 0xb2, 0xb3, 0x60, 0x73, 0xda, 0xa3, 0x37, 0xbf, 0x42, 0xbd, 0xf5, + 0x23, 0x78, 0xf4, 0x98, 0x63, 0x8e, 0xe2, 0x61, 0x69, 0xe6, 0x13, 0xf4, 0x28, 0x9e, 0x64, 0xa6, + 0x41, 0x02, 0x62, 0x6f, 0xfb, 0x7e, 0xef, 0xed, 0xff, 0xff, 0x63, 0x70, 0x5f, 0x7e, 0x3a, 0x9d, + 0x4c, 0x3f, 0xca, 0x64, 0x3a, 0xd3, 0x46, 0x93, 0xd0, 0xc8, 0xdc, 0xdc, 0x7d, 0x3c, 0x56, 0xe6, + 0x43, 0x31, 0x48, 0x86, 0x7a, 0xd2, 0x1e, 0xeb, 0xb1, 0x6e, 0xfb, 0xe5, 0xa0, 0x78, 0xef, 0x27, + 0x3f, 0xf8, 0xaf, 0xeb, 0x9f, 0xe2, 0x2f, 0x80, 0xd0, 0x25, 0x0f, 0x70, 0xf7, 0xa5, 0xcc, 0x87, + 0x33, 0x35, 0x35, 0x4a, 0x67, 0x0d, 0x68, 0x42, 0x6b, 0x87, 0x87, 0x8b, 0x8a, 0xd5, 0xc4, 0xe6, + 0x82, 0xdc, 0xc3, 0xed, 0x37, 0xc5, 0x64, 0x20, 0x67, 0x8d, 0xa0, 0x09, 0xad, 0xfa, 0xfa, 0x64, + 0xcd, 0x48, 0x8a, 0x41, 0x6f, 0xd4, 0xa8, 0x37, 0xa1, 0xb5, 0xc7, 0x0f, 0xdd, 0xe6, 0x67, 0xc5, + 0xe2, 0xff, 0xea, 0x38, 0xdb, 0xa4, 0x5f, 0xa8, 0x91, 0x08, 0x7a, 0xa3, 0x34, 0xfa, 0x7c, 0xce, + 0x6a, 0x17, 0xe7, 0x0c, 0xe2, 0x0c, 0x81, 0x13, 0x86, 0xd0, 0xf5, 0x1a, 0xbb, 0x9d, 0x5b, 0x89, + 0xbf, 0xec, 0xf2, 0xc8, 0x45, 0x2e, 0x2b, 0x06, 0x02, 0xba, 0x84, 0x23, 0x9c, 0x34, 0x82, 0x66, + 0xbd, 0xb5, 0xc7, 0x9f, 0xad, 0xab, 0x8e, 0x6e, 0xac, 0x6a, 0x0f, 0x8b, 0xdc, 0xe8, 0x49, 0xd2, + 0x57, 0x99, 0x79, 0xd2, 0x79, 0x21, 0xe0, 0x24, 0x0d, 0xaf, 0x5c, 0xdf, 0x7d, 0x84, 0x63, 0x42, + 0x31, 0xcc, 0xd5, 0x5c, 0xfa, 0xca, 0x3a, 0x47, 0x5b, 0xb1, 0xed, 0xd7, 0x67, 0x6f, 0xd5, 0x5c, + 0x0a, 0xcf, 0xe3, 0xe7, 0x08, 0x7d, 0x72, 0xf0, 0xaf, 0x94, 0x53, 0x39, 0x40, 0xe0, 0xfe, 0x3d, + 0xfe, 0x62, 0x2e, 0x80, 0xa7, 0xe1, 0xc2, 0xa5, 0xdf, 0x41, 0x78, 0x75, 0x18, 0x45, 0x70, 0xbb, + 0x2c, 0xcb, 0x32, 0x48, 0xc3, 0xc5, 0x57, 0x56, 0x8b, 0x1f, 0x22, 0x08, 0x42, 0x11, 0x67, 0x72, + 0xa8, 0xc7, 0x99, 0x9a, 0xcb, 0x91, 0x8f, 0xdd, 0x17, 0x1b, 0x24, 0x0d, 0x97, 0xee, 0xf4, 0x11, + 0x46, 0xc7, 0xa7, 0xb9, 0x79, 0x77, 0x36, 0x95, 0x84, 0xe1, 0x56, 0x2f, 0x33, 0x4f, 0x3b, 0x6b, + 0xcb, 0x9d, 0xdf, 0x15, 0xdb, 0x52, 0x0e, 0x88, 0x6b, 0xce, 0x8f, 0x7e, 0xac, 0x68, 0xed, 0x72, + 0x45, 0xe1, 0x6a, 0x45, 0xe1, 0xd7, 0x8a, 0x42, 0x69, 0x29, 0x5c, 0x58, 0x0a, 0xdf, 0x2c, 0x85, + 0xef, 0x96, 0xc2, 0xc2, 0x52, 0x58, 0x5a, 0x0a, 0x97, 0x96, 0xc2, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x71, 0x9d, 0xd3, 0x01, 0x3f, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/example/example.proto b/vendor/github.com/gogo/protobuf/test/example/example.proto index b69ea876..e90aa48d 100644 --- a/vendor/github.com/gogo/protobuf/test/example/example.proto +++ b/vendor/github.com/gogo/protobuf/test/example/example.proto @@ -1,4 +1,6 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/example/example_test.go b/vendor/github.com/gogo/protobuf/test/example/example_test.go index 79ef9476..34f4c436 100644 --- a/vendor/github.com/gogo/protobuf/test/example/example_test.go +++ b/vendor/github.com/gogo/protobuf/test/example/example_test.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go b/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go index 32d07332..ea17f5f5 100644 --- a/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go @@ -39,18 +39,18 @@ func TestAProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -74,20 +74,20 @@ func TestAMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -106,11 +106,11 @@ func BenchmarkAProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -120,11 +120,11 @@ func BenchmarkAProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &A{} b.ResetTimer() @@ -141,18 +141,18 @@ func TestBProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -176,20 +176,20 @@ func TestBMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -208,11 +208,11 @@ func BenchmarkBProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -222,11 +222,11 @@ func BenchmarkBProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedB(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedB(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &B{} b.ResetTimer() @@ -243,18 +243,18 @@ func TestCProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -278,20 +278,20 @@ func TestCMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -310,11 +310,11 @@ func BenchmarkCProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -324,11 +324,11 @@ func BenchmarkCProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedC(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedC(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &C{} b.ResetTimer() @@ -345,18 +345,18 @@ func TestUProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -380,20 +380,20 @@ func TestUMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -412,11 +412,11 @@ func BenchmarkUProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -426,11 +426,11 @@ func BenchmarkUProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedU(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedU(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &U{} b.ResetTimer() @@ -447,18 +447,18 @@ func TestEProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedE(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -482,20 +482,20 @@ func TestEMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedE(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -514,11 +514,11 @@ func BenchmarkEProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -528,11 +528,11 @@ func BenchmarkEProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedE(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedE(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &E{} b.ResetTimer() @@ -549,18 +549,18 @@ func TestRProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedR(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -584,20 +584,20 @@ func TestRMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedR(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -616,11 +616,11 @@ func BenchmarkRProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -630,11 +630,11 @@ func BenchmarkRProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedR(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedR(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &R{} b.ResetTimer() @@ -651,18 +651,18 @@ func TestCastTypeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -686,20 +686,20 @@ func TestCastTypeMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastType(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -718,11 +718,11 @@ func BenchmarkCastTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -732,11 +732,11 @@ func BenchmarkCastTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CastType{} b.ResetTimer() @@ -900,9 +900,9 @@ func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -917,9 +917,9 @@ func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -934,9 +934,9 @@ func TestBProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -951,9 +951,9 @@ func TestBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -968,9 +968,9 @@ func TestCProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -985,9 +985,9 @@ func TestCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1002,9 +1002,9 @@ func TestUProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1019,9 +1019,9 @@ func TestUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1036,9 +1036,9 @@ func TestEProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedE(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &E{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1053,9 +1053,9 @@ func TestEProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedE(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &E{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1070,9 +1070,9 @@ func TestRProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedR(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &R{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1087,9 +1087,9 @@ func TestRProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedR(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &R{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1104,9 +1104,9 @@ func TestCastTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CastType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1121,9 +1121,9 @@ func TestCastTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CastType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1140,12 +1140,12 @@ func TestExampleDescription(t *testing.T) { func TestAVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1155,12 +1155,12 @@ func TestAVerboseEqual(t *testing.T) { func TestBVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1170,12 +1170,12 @@ func TestBVerboseEqual(t *testing.T) { func TestCVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,12 +1185,12 @@ func TestCVerboseEqual(t *testing.T) { func TestUVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1200,12 +1200,12 @@ func TestUVerboseEqual(t *testing.T) { func TestEVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedE(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1215,12 +1215,12 @@ func TestEVerboseEqual(t *testing.T) { func TestRVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedR(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1230,12 +1230,12 @@ func TestRVerboseEqual(t *testing.T) { func TestCastTypeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1346,13 +1346,13 @@ func TestASize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1382,13 +1382,13 @@ func TestBSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1418,13 +1418,13 @@ func TestCSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1454,13 +1454,13 @@ func TestUSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1490,13 +1490,13 @@ func TestESize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedE(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1526,13 +1526,13 @@ func TestRSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedR(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1562,13 +1562,13 @@ func TestCastTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/extension_test.go b/vendor/github.com/gogo/protobuf/test/extension_test.go index 141bd0bb..54046d4d 100644 --- a/vendor/github.com/gogo/protobuf/test/extension_test.go +++ b/vendor/github.com/gogo/protobuf/test/extension_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/Makefile b/vendor/github.com/gogo/protobuf/test/filedotname/Makefile index eadad758..2833183c 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/Makefile +++ b/vendor/github.com/gogo/protobuf/test/filedotname/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2016, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go index ad3c2530..ae12f296 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go +++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go @@ -25,8 +25,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -36,7 +34,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type M struct { A *string `protobuf:"bytes,1,opt,name=a" json:"a,omitempty"` @@ -56,216 +56,236 @@ func (this *M) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_des func FileDotDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3329 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5d, 0x6c, 0x23, 0xd5, - 0x15, 0xc6, 0xb1, 0x9d, 0xd8, 0xc7, 0x8e, 0xe3, 0x4c, 0xc2, 0xae, 0x37, 0xc0, 0x2e, 0x1b, 0xfe, - 0x96, 0xa5, 0x64, 0xe9, 0xb6, 0xc0, 0x62, 0x5a, 0x50, 0x7e, 0xbc, 0xc1, 0xab, 0x24, 0x76, 0xc7, - 0x31, 0x2c, 0xf4, 0x61, 0x34, 0x19, 0xdf, 0x38, 0xde, 0x1d, 0xcf, 0xb8, 0x9e, 0xf1, 0xb2, 0xe1, - 0x89, 0x8a, 0xfe, 0x08, 0x55, 0xfd, 0xaf, 0x54, 0xfe, 0x5b, 0x90, 0x5a, 0x28, 0x2d, 0x2d, 0xf4, - 0x4f, 0x55, 0x9f, 0x90, 0x2a, 0x5a, 0x9e, 0xaa, 0xb6, 0x4f, 0x7d, 0xe8, 0x03, 0x50, 0xa4, 0xd2, - 0x96, 0xb6, 0x54, 0x5a, 0xa9, 0x48, 0xfb, 0xd2, 0x73, 0xff, 0xc6, 0x33, 0xb6, 0x93, 0x71, 0x90, - 0x28, 0x5d, 0x69, 0x14, 0xdf, 0x73, 0xcf, 0xf7, 0xcd, 0xbd, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, - 0x16, 0x7e, 0xf5, 0x61, 0xb8, 0xb2, 0x6e, 0xdb, 0x75, 0x93, 0x1c, 0x6b, 0xb5, 0x6d, 0xd7, 0xde, - 0xe8, 0x6c, 0x1e, 0xab, 0x11, 0xc7, 0x68, 0x37, 0x5a, 0xae, 0xdd, 0x9e, 0x63, 0x32, 0x65, 0x82, - 0x6b, 0xcc, 0x49, 0x8d, 0xd9, 0x55, 0x98, 0x3c, 0xd9, 0x30, 0xc9, 0x92, 0xa7, 0x58, 0x21, 0xae, - 0x72, 0x02, 0x62, 0x9b, 0x28, 0xcc, 0x45, 0xae, 0x8c, 0x1e, 0x49, 0x1d, 0xbf, 0x7a, 0xae, 0x07, - 0x34, 0x17, 0x44, 0x94, 0xa9, 0x58, 0x65, 0x88, 0xd9, 0x37, 0x63, 0x30, 0x35, 0xa0, 0x57, 0x51, - 0x20, 0x66, 0xe9, 0x4d, 0xca, 0x18, 0x39, 0x92, 0x54, 0xd9, 0x6f, 0x25, 0x07, 0x63, 0x2d, 0xdd, - 0x38, 0xab, 0xd7, 0x49, 0x6e, 0x84, 0x89, 0x65, 0x53, 0x39, 0x08, 0x50, 0x23, 0x2d, 0x62, 0xd5, - 0x88, 0x65, 0x6c, 0xe7, 0xa2, 0x38, 0x8a, 0xa4, 0xea, 0x93, 0x28, 0x37, 0xc0, 0x64, 0xab, 0xb3, - 0x61, 0x36, 0x0c, 0xcd, 0xa7, 0x06, 0xa8, 0x16, 0x57, 0xb3, 0xbc, 0x63, 0xa9, 0xab, 0x7c, 0x1d, - 0x4c, 0xdc, 0x4f, 0xf4, 0xb3, 0x7e, 0xd5, 0x14, 0x53, 0xcd, 0x50, 0xb1, 0x4f, 0x71, 0x11, 0xd2, - 0x4d, 0xe2, 0x38, 0x38, 0x00, 0xcd, 0xdd, 0x6e, 0x91, 0x5c, 0x8c, 0xcd, 0xfe, 0xca, 0xbe, 0xd9, - 0xf7, 0xce, 0x3c, 0x25, 0x50, 0xeb, 0x08, 0x52, 0xe6, 0x21, 0x49, 0xac, 0x4e, 0x93, 0x33, 0xc4, - 0x77, 0xb0, 0x5f, 0x01, 0x35, 0x7a, 0x59, 0x12, 0x14, 0x26, 0x28, 0xc6, 0x1c, 0xd2, 0x3e, 0xd7, - 0x30, 0x48, 0x6e, 0x94, 0x11, 0x5c, 0xd7, 0x47, 0x50, 0xe1, 0xfd, 0xbd, 0x1c, 0x12, 0x87, 0x53, - 0x49, 0x92, 0xf3, 0x2e, 0xb1, 0x9c, 0x86, 0x6d, 0xe5, 0xc6, 0x18, 0xc9, 0x35, 0x03, 0x56, 0x91, - 0x98, 0xb5, 0x5e, 0x8a, 0x2e, 0x4e, 0xb9, 0x05, 0xc6, 0xec, 0x96, 0x8b, 0xbf, 0x9c, 0x5c, 0x02, - 0xd7, 0x27, 0x75, 0xfc, 0xf2, 0x81, 0x8e, 0x50, 0xe2, 0x3a, 0xaa, 0x54, 0x56, 0x8a, 0x90, 0x75, - 0xec, 0x4e, 0xdb, 0x20, 0x9a, 0x61, 0xd7, 0x88, 0xd6, 0xb0, 0x36, 0xed, 0x5c, 0x92, 0x11, 0x1c, - 0xea, 0x9f, 0x08, 0x53, 0x5c, 0x44, 0xbd, 0x22, 0xaa, 0xa9, 0x19, 0x27, 0xd0, 0x56, 0xf6, 0xc1, - 0xa8, 0xb3, 0x6d, 0xb9, 0xfa, 0xf9, 0x5c, 0x9a, 0x79, 0x88, 0x68, 0xcd, 0xfe, 0x27, 0x0e, 0x13, - 0xc3, 0xb8, 0xd8, 0xed, 0x10, 0xdf, 0xa4, 0xb3, 0x44, 0x07, 0xdb, 0x83, 0x0d, 0x38, 0x26, 0x68, - 0xc4, 0xd1, 0xf7, 0x68, 0xc4, 0x79, 0x48, 0x59, 0xc4, 0x71, 0x49, 0x8d, 0x7b, 0x44, 0x74, 0x48, - 0x9f, 0x02, 0x0e, 0xea, 0x77, 0xa9, 0xd8, 0x7b, 0x72, 0xa9, 0xd3, 0x30, 0xe1, 0x0d, 0x49, 0x6b, - 0xeb, 0x56, 0x5d, 0xfa, 0xe6, 0xb1, 0xb0, 0x91, 0xcc, 0x15, 0x24, 0x4e, 0xa5, 0x30, 0x35, 0x43, - 0x02, 0x6d, 0x65, 0x09, 0xc0, 0xb6, 0x88, 0xbd, 0x89, 0xdb, 0xcb, 0x30, 0xd1, 0x4f, 0x06, 0x5b, - 0xa9, 0x44, 0x55, 0xfa, 0xac, 0x64, 0x73, 0xa9, 0x61, 0x2a, 0xb7, 0x75, 0x5d, 0x6d, 0x6c, 0x07, - 0x4f, 0x59, 0xe5, 0x9b, 0xac, 0xcf, 0xdb, 0xaa, 0x90, 0x69, 0x13, 0xea, 0xf7, 0x68, 0x62, 0x3e, - 0xb3, 0x24, 0x1b, 0xc4, 0x5c, 0xe8, 0xcc, 0x54, 0x01, 0xe3, 0x13, 0x1b, 0x6f, 0xfb, 0x9b, 0xca, - 0x55, 0xe0, 0x09, 0x34, 0xe6, 0x56, 0xc0, 0xa2, 0x50, 0x5a, 0x0a, 0xd7, 0x50, 0x36, 0x73, 0x02, - 0x32, 0x41, 0xf3, 0x28, 0xd3, 0x10, 0x77, 0x5c, 0xbd, 0xed, 0x32, 0x2f, 0x8c, 0xab, 0xbc, 0xa1, - 0x64, 0x21, 0x8a, 0x41, 0x86, 0x45, 0xb9, 0xb8, 0x4a, 0x7f, 0xce, 0xdc, 0x0a, 0xe3, 0x81, 0xd7, - 0x0f, 0x0b, 0x9c, 0x7d, 0x64, 0x14, 0xa6, 0x07, 0xf9, 0xdc, 0x40, 0xf7, 0xc7, 0xed, 0x83, 0x1e, - 0xb0, 0x41, 0xda, 0xe8, 0x77, 0x94, 0x41, 0xb4, 0xd0, 0xa3, 0xe2, 0xa6, 0xbe, 0x41, 0x4c, 0xf4, - 0xa6, 0xc8, 0x91, 0xcc, 0xf1, 0x1b, 0x86, 0xf2, 0xea, 0xb9, 0x15, 0x0a, 0x51, 0x39, 0x52, 0xb9, - 0x03, 0x62, 0x22, 0xc4, 0x51, 0x86, 0xa3, 0xc3, 0x31, 0x50, 0x5f, 0x54, 0x19, 0x4e, 0xb9, 0x0c, - 0x92, 0xf4, 0x2f, 0xb7, 0xed, 0x28, 0x1b, 0x73, 0x82, 0x0a, 0xa8, 0x5d, 0x95, 0x19, 0x48, 0x30, - 0x37, 0xab, 0x11, 0x99, 0x1a, 0xbc, 0x36, 0x5d, 0x98, 0x1a, 0xd9, 0xd4, 0x3b, 0xa6, 0xab, 0x9d, - 0xd3, 0xcd, 0x0e, 0x61, 0x0e, 0x83, 0x0b, 0x23, 0x84, 0x77, 0x53, 0x99, 0x72, 0x08, 0x52, 0xdc, - 0x2b, 0x1b, 0x88, 0x39, 0xcf, 0xa2, 0x4f, 0x5c, 0xe5, 0x8e, 0x5a, 0xa4, 0x12, 0xfa, 0xfa, 0x33, - 0x0e, 0xee, 0x05, 0xb1, 0xb4, 0xec, 0x15, 0x54, 0xc0, 0x5e, 0x7f, 0x6b, 0x6f, 0xe0, 0xbb, 0x62, - 0xf0, 0xf4, 0x7a, 0x7d, 0x71, 0xf6, 0xe7, 0x23, 0x10, 0x63, 0xfb, 0x6d, 0x02, 0x52, 0xeb, 0xf7, - 0x96, 0x0b, 0xda, 0x52, 0xa9, 0xba, 0xb0, 0x52, 0xc8, 0x46, 0x94, 0x0c, 0x00, 0x13, 0x9c, 0x5c, - 0x29, 0xcd, 0xaf, 0x67, 0x47, 0xbc, 0x76, 0x71, 0x6d, 0xfd, 0x96, 0x8f, 0x66, 0xa3, 0x1e, 0xa0, - 0xca, 0x05, 0x31, 0xbf, 0xc2, 0x47, 0x8e, 0x67, 0xe3, 0xe8, 0x09, 0x69, 0x4e, 0x50, 0x3c, 0x5d, - 0x58, 0x42, 0x8d, 0xd1, 0xa0, 0x04, 0x75, 0xc6, 0x94, 0x71, 0x48, 0x32, 0xc9, 0x42, 0xa9, 0xb4, - 0x92, 0x4d, 0x78, 0x9c, 0x95, 0x75, 0xb5, 0xb8, 0xb6, 0x9c, 0x4d, 0x7a, 0x9c, 0xcb, 0x6a, 0xa9, - 0x5a, 0xce, 0x82, 0xc7, 0xb0, 0x5a, 0xa8, 0x54, 0xe6, 0x97, 0x0b, 0xd9, 0x94, 0xa7, 0xb1, 0x70, - 0xef, 0x7a, 0xa1, 0x92, 0x4d, 0x07, 0x86, 0x85, 0xaf, 0x18, 0xf7, 0x5e, 0x51, 0x58, 0xab, 0xae, - 0x66, 0x33, 0xca, 0x24, 0x8c, 0xf3, 0x57, 0xc8, 0x41, 0x4c, 0xf4, 0x88, 0x70, 0xa4, 0xd9, 0xee, - 0x40, 0x38, 0xcb, 0x64, 0x40, 0x80, 0x1a, 0xca, 0xec, 0x22, 0xc4, 0x99, 0x77, 0xa1, 0x17, 0x67, - 0x56, 0xe6, 0x17, 0x0a, 0x2b, 0x5a, 0xa9, 0xbc, 0x5e, 0x2c, 0xad, 0xcd, 0xaf, 0xa0, 0xed, 0x3c, - 0x99, 0x5a, 0xf8, 0x44, 0xb5, 0xa8, 0x16, 0x96, 0xd0, 0x7e, 0x3e, 0x59, 0xb9, 0x30, 0xbf, 0x8e, - 0xb2, 0xe8, 0xec, 0x51, 0x98, 0x1e, 0x14, 0x67, 0x06, 0xed, 0x8c, 0xd9, 0x67, 0x22, 0x30, 0x35, - 0x20, 0x64, 0x0e, 0xdc, 0x45, 0x77, 0x42, 0x9c, 0x7b, 0x1a, 0x4f, 0x22, 0xd7, 0x0f, 0x8c, 0xbd, - 0xcc, 0xef, 0xfa, 0x12, 0x09, 0xc3, 0xf9, 0x13, 0x69, 0x74, 0x87, 0x44, 0x4a, 0x29, 0xfa, 0xdc, - 0xe9, 0xa1, 0x08, 0xe4, 0x76, 0xe2, 0x0e, 0xd9, 0xef, 0x23, 0x81, 0xfd, 0x7e, 0x7b, 0xef, 0x00, - 0x0e, 0xef, 0x3c, 0x87, 0xbe, 0x51, 0x3c, 0x1b, 0x81, 0x7d, 0x83, 0xeb, 0x8d, 0x81, 0x63, 0xb8, - 0x03, 0x46, 0x9b, 0xc4, 0xdd, 0xb2, 0x65, 0xce, 0xbd, 0x76, 0x40, 0x24, 0xa7, 0xdd, 0xbd, 0xb6, - 0x12, 0x28, 0x7f, 0x2a, 0x88, 0xee, 0x54, 0x34, 0xf0, 0xd1, 0xf4, 0x8d, 0xf4, 0xe1, 0x11, 0xb8, - 0x74, 0x20, 0xf9, 0xc0, 0x81, 0x5e, 0x01, 0xd0, 0xb0, 0x5a, 0x1d, 0x97, 0xe7, 0x55, 0x1e, 0x66, - 0x92, 0x4c, 0xc2, 0xb6, 0x30, 0x0d, 0x21, 0x1d, 0xd7, 0xeb, 0x8f, 0xb2, 0x7e, 0xe0, 0x22, 0xa6, - 0x70, 0xa2, 0x3b, 0xd0, 0x18, 0x1b, 0xe8, 0xc1, 0x1d, 0x66, 0xda, 0x97, 0xb2, 0x6e, 0x82, 0xac, - 0x61, 0x36, 0x88, 0xe5, 0x6a, 0x8e, 0xdb, 0x26, 0x7a, 0xb3, 0x61, 0xd5, 0x59, 0x1c, 0x4d, 0xe4, - 0xe3, 0x9b, 0xba, 0xe9, 0x10, 0x75, 0x82, 0x77, 0x57, 0x64, 0x2f, 0x45, 0xb0, 0x64, 0xd1, 0xf6, - 0x21, 0x46, 0x03, 0x08, 0xde, 0xed, 0x21, 0x66, 0xff, 0x30, 0x06, 0x29, 0x5f, 0x75, 0xa6, 0x1c, - 0x86, 0xf4, 0x19, 0xfd, 0x9c, 0xae, 0xc9, 0x8a, 0x9b, 0x5b, 0x22, 0x45, 0x65, 0x65, 0x51, 0x75, - 0xdf, 0x04, 0xd3, 0x4c, 0x05, 0xe7, 0x88, 0x2f, 0x32, 0x4c, 0xdd, 0x71, 0x98, 0xd1, 0x12, 0x4c, - 0x55, 0xa1, 0x7d, 0x25, 0xda, 0xb5, 0x28, 0x7b, 0x94, 0x9b, 0x61, 0x8a, 0x21, 0x9a, 0x18, 0x78, - 0x1b, 0x2d, 0x93, 0x68, 0xf4, 0x0c, 0xe0, 0xb0, 0x78, 0xea, 0x8d, 0x6c, 0x92, 0x6a, 0xac, 0x0a, - 0x05, 0x3a, 0x22, 0x47, 0x59, 0x86, 0x2b, 0x18, 0xac, 0x4e, 0x2c, 0xd2, 0xd6, 0x5d, 0xa2, 0x91, - 0x4f, 0x75, 0x50, 0x57, 0xd3, 0xad, 0x9a, 0xb6, 0xa5, 0x3b, 0x5b, 0xb9, 0x69, 0x3f, 0xc1, 0x01, - 0xaa, 0xbb, 0x2c, 0x54, 0x0b, 0x4c, 0x73, 0xde, 0xaa, 0xdd, 0x85, 0x7a, 0x4a, 0x1e, 0xf6, 0x31, - 0x22, 0x34, 0x0a, 0xce, 0x59, 0x33, 0xb6, 0x88, 0x71, 0x56, 0xeb, 0xb8, 0x9b, 0x27, 0x72, 0x97, - 0xf9, 0x19, 0xd8, 0x20, 0x2b, 0x4c, 0x67, 0x91, 0xaa, 0x54, 0x51, 0x43, 0xa9, 0x40, 0x9a, 0xae, - 0x47, 0xb3, 0xf1, 0x00, 0x0e, 0xdb, 0x6e, 0xb3, 0x1c, 0x91, 0x19, 0xb0, 0xb9, 0x7d, 0x46, 0x9c, - 0x2b, 0x09, 0xc0, 0x2a, 0xd6, 0xa7, 0xf9, 0x78, 0xa5, 0x5c, 0x28, 0x2c, 0xa9, 0x29, 0xc9, 0x72, - 0xd2, 0x6e, 0x53, 0x9f, 0xaa, 0xdb, 0x9e, 0x8d, 0x53, 0xdc, 0xa7, 0xea, 0xb6, 0xb4, 0x30, 0xda, - 0xcb, 0x30, 0xf8, 0xb4, 0xf1, 0xec, 0x22, 0x8a, 0x75, 0x27, 0x97, 0x0d, 0xd8, 0xcb, 0x30, 0x96, - 0xb9, 0x82, 0x70, 0x73, 0x07, 0xb7, 0xc4, 0xa5, 0x5d, 0x7b, 0xf9, 0x81, 0x93, 0x7d, 0xb3, 0xec, - 0x85, 0xe2, 0x1b, 0x5b, 0xdb, 0xfd, 0x40, 0x25, 0xf0, 0xc6, 0xd6, 0x76, 0x2f, 0xec, 0x1a, 0x76, - 0x00, 0x6b, 0x13, 0x03, 0x4d, 0x5e, 0xcb, 0xed, 0xf7, 0x6b, 0xfb, 0x3a, 0x94, 0x63, 0xe8, 0xc8, - 0x86, 0x46, 0x2c, 0x7d, 0x03, 0xd7, 0x5e, 0x6f, 0xe3, 0x0f, 0x27, 0x77, 0xc8, 0xaf, 0x9c, 0x31, - 0x8c, 0x02, 0xeb, 0x9d, 0x67, 0x9d, 0xca, 0x51, 0x98, 0xb4, 0x37, 0xce, 0x18, 0xdc, 0xb9, 0x34, - 0xe4, 0xd9, 0x6c, 0x9c, 0xcf, 0x5d, 0xcd, 0xcc, 0x34, 0x41, 0x3b, 0x98, 0x6b, 0x95, 0x99, 0x58, - 0xb9, 0x1e, 0xc9, 0x9d, 0x2d, 0xbd, 0xdd, 0x62, 0x49, 0xda, 0x41, 0xa3, 0x92, 0xdc, 0x35, 0x5c, - 0x95, 0xcb, 0xd7, 0xa4, 0x58, 0x29, 0xc0, 0x21, 0x3a, 0x79, 0x4b, 0xb7, 0x6c, 0xad, 0xe3, 0x10, - 0xad, 0x3b, 0x44, 0x6f, 0x2d, 0xae, 0xa5, 0xc3, 0x52, 0x2f, 0x97, 0x6a, 0x55, 0x07, 0x83, 0x99, - 0x54, 0x92, 0xcb, 0x73, 0x1a, 0xa6, 0x3b, 0x56, 0xc3, 0x42, 0x17, 0xc7, 0x1e, 0x0a, 0xe6, 0x1b, - 0x36, 0xf7, 0x97, 0xb1, 0x1d, 0x8a, 0xee, 0xaa, 0x5f, 0x9b, 0x3b, 0x89, 0x3a, 0xd5, 0xe9, 0x17, - 0xce, 0xe6, 0x21, 0xed, 0xf7, 0x1d, 0x25, 0x09, 0xdc, 0x7b, 0x30, 0xbb, 0x61, 0x46, 0x5d, 0x2c, - 0x2d, 0xd1, 0x5c, 0x78, 0x5f, 0x01, 0x13, 0x1b, 0xe6, 0xe4, 0x95, 0xe2, 0x7a, 0x41, 0x53, 0xab, - 0x6b, 0xeb, 0xc5, 0xd5, 0x42, 0x36, 0x7a, 0x34, 0x99, 0x78, 0x6b, 0x2c, 0xfb, 0x20, 0xfe, 0x1b, - 0x99, 0x7d, 0x65, 0x04, 0x32, 0xc1, 0x3a, 0x58, 0xf9, 0x18, 0xec, 0x97, 0x87, 0x56, 0x87, 0xb8, - 0xda, 0xfd, 0x8d, 0x36, 0x73, 0xe7, 0xa6, 0xce, 0x2b, 0x49, 0x6f, 0x25, 0xa6, 0x85, 0x16, 0x1e, - 0xef, 0xef, 0x41, 0x9d, 0x93, 0x4c, 0x45, 0x59, 0x81, 0x43, 0x68, 0x32, 0xac, 0x35, 0xad, 0x9a, - 0xde, 0xae, 0x69, 0xdd, 0xeb, 0x02, 0x4d, 0x37, 0xd0, 0x0f, 0x1c, 0x9b, 0x67, 0x12, 0x8f, 0xe5, - 0x72, 0xcb, 0xae, 0x08, 0xe5, 0x6e, 0x88, 0x9d, 0x17, 0xaa, 0x3d, 0x5e, 0x13, 0xdd, 0xc9, 0x6b, - 0xb0, 0xf6, 0x6a, 0xea, 0x2d, 0x74, 0x1b, 0xb7, 0xbd, 0xcd, 0xaa, 0xb7, 0x84, 0x9a, 0x40, 0x41, - 0x81, 0xb6, 0xdf, 0xbf, 0x35, 0xf0, 0xdb, 0xf1, 0x4f, 0x51, 0x48, 0xfb, 0x2b, 0x38, 0x5a, 0x10, - 0x1b, 0x2c, 0xcc, 0x47, 0x58, 0x14, 0xb8, 0x6a, 0xd7, 0x7a, 0x6f, 0x6e, 0x91, 0xc6, 0xff, 0xfc, - 0x28, 0xaf, 0xab, 0x54, 0x8e, 0xa4, 0xb9, 0x97, 0xfa, 0x1a, 0xe1, 0xd5, 0x7a, 0x42, 0x15, 0x2d, - 0x0c, 0x76, 0xa3, 0x67, 0x1c, 0xc6, 0x3d, 0xca, 0xb8, 0xaf, 0xde, 0x9d, 0xfb, 0x54, 0x85, 0x91, - 0x27, 0x4f, 0x55, 0xb4, 0xb5, 0x92, 0xba, 0x3a, 0xbf, 0xa2, 0x0a, 0xb8, 0x72, 0x00, 0x62, 0xa6, - 0xfe, 0xc0, 0x76, 0x30, 0x53, 0x30, 0xd1, 0xb0, 0x86, 0x47, 0x06, 0x7a, 0xe5, 0x11, 0x8c, 0xcf, - 0x4c, 0xf4, 0x3e, 0xba, 0xfe, 0x31, 0x88, 0x33, 0x7b, 0x29, 0x00, 0xc2, 0x62, 0xd9, 0x4b, 0x94, - 0x04, 0xc4, 0x16, 0x4b, 0x2a, 0x75, 0x7f, 0xf4, 0x77, 0x2e, 0xd5, 0xca, 0xc5, 0xc2, 0x22, 0xee, - 0x80, 0xd9, 0x9b, 0x61, 0x94, 0x1b, 0x81, 0x6e, 0x0d, 0xcf, 0x0c, 0x08, 0xe2, 0x4d, 0xc1, 0x11, - 0x91, 0xbd, 0xd5, 0xd5, 0x85, 0x82, 0x9a, 0x1d, 0xf1, 0x2f, 0xef, 0x2f, 0x23, 0x90, 0xf2, 0x15, - 0x54, 0x34, 0x95, 0xeb, 0xa6, 0x69, 0xdf, 0xaf, 0xe9, 0x66, 0x03, 0x23, 0x14, 0x5f, 0x1f, 0x60, - 0xa2, 0x79, 0x2a, 0x19, 0xd6, 0x7e, 0xff, 0x13, 0xdf, 0x7c, 0x2a, 0x02, 0xd9, 0xde, 0x62, 0xac, - 0x67, 0x80, 0x91, 0x0f, 0x74, 0x80, 0x4f, 0x44, 0x20, 0x13, 0xac, 0xc0, 0x7a, 0x86, 0x77, 0xf8, - 0x03, 0x1d, 0xde, 0xe3, 0x11, 0x18, 0x0f, 0xd4, 0x5d, 0xff, 0x57, 0xa3, 0x7b, 0x2c, 0x0a, 0x53, - 0x03, 0x70, 0x18, 0x80, 0x78, 0x81, 0xca, 0x6b, 0xe6, 0x1b, 0x87, 0x79, 0xd7, 0x1c, 0xcd, 0x7f, - 0x65, 0xbd, 0xed, 0x8a, 0x7a, 0x16, 0xf3, 0x65, 0xa3, 0x86, 0x41, 0xb5, 0xb1, 0xd9, 0xc0, 0xf2, - 0x8d, 0x9f, 0x58, 0x78, 0xd5, 0x3a, 0xd1, 0x95, 0xf3, 0xe3, 0xf1, 0x87, 0x40, 0x69, 0xd9, 0x4e, - 0xc3, 0x6d, 0x9c, 0xa3, 0xd7, 0x73, 0xf2, 0x20, 0x4d, 0xab, 0xd8, 0x98, 0x9a, 0x95, 0x3d, 0x45, - 0xcb, 0xf5, 0xb4, 0x2d, 0x52, 0xd7, 0x7b, 0xb4, 0x69, 0x18, 0x8a, 0xaa, 0x59, 0xd9, 0xe3, 0x69, - 0x63, 0xa1, 0x59, 0xb3, 0x3b, 0xb4, 0x20, 0xe0, 0x7a, 0x34, 0xea, 0x45, 0xd4, 0x14, 0x97, 0x79, - 0x2a, 0xa2, 0x62, 0xeb, 0x9e, 0xe0, 0xd3, 0x6a, 0x8a, 0xcb, 0xb8, 0xca, 0x75, 0x30, 0xa1, 0xd7, - 0xeb, 0x6d, 0x4a, 0x2e, 0x89, 0x78, 0x19, 0x9a, 0xf1, 0xc4, 0x4c, 0x71, 0xe6, 0x14, 0x24, 0xa4, - 0x1d, 0x68, 0x62, 0xa1, 0x96, 0xc0, 0x9c, 0xcf, 0xee, 0x51, 0x46, 0xe8, 0xa1, 0xde, 0x92, 0x9d, - 0xf8, 0xd2, 0x86, 0xa3, 0x75, 0x2f, 0xf4, 0x46, 0xb0, 0x3f, 0xa1, 0xa6, 0x1a, 0x8e, 0x77, 0x83, - 0x33, 0xfb, 0x2c, 0xa6, 0xd7, 0xe0, 0x85, 0xa4, 0xb2, 0x04, 0x09, 0xd3, 0x46, 0xff, 0xa0, 0x08, - 0x7e, 0x1b, 0x7e, 0x24, 0xe4, 0x0e, 0x73, 0x6e, 0x45, 0xe8, 0xab, 0x1e, 0x72, 0xe6, 0xb7, 0x11, - 0x48, 0x48, 0x31, 0x26, 0x8a, 0x58, 0x4b, 0x77, 0xb7, 0x18, 0x5d, 0x7c, 0x61, 0x24, 0x1b, 0x51, - 0x59, 0x9b, 0xca, 0xb1, 0x9a, 0xb1, 0x98, 0x0b, 0x08, 0x39, 0x6d, 0xd3, 0x75, 0x35, 0x89, 0x5e, - 0x63, 0x05, 0xae, 0xdd, 0x6c, 0xe2, 0x4a, 0x3a, 0x72, 0x5d, 0x85, 0x7c, 0x51, 0x88, 0xe9, 0xbd, - 0xb8, 0xdb, 0xd6, 0x1b, 0x66, 0x40, 0x37, 0xc6, 0x74, 0xb3, 0xb2, 0xc3, 0x53, 0xce, 0xc3, 0x01, - 0xc9, 0x5b, 0x23, 0xae, 0x8e, 0xc5, 0x73, 0xad, 0x0b, 0x1a, 0x65, 0xb7, 0x5d, 0xfb, 0x85, 0xc2, - 0x92, 0xe8, 0x97, 0xd8, 0x85, 0xd3, 0x58, 0xc8, 0xda, 0xcd, 0x5e, 0x4b, 0x2c, 0x64, 0x7b, 0xce, - 0x5d, 0xce, 0x5d, 0x91, 0xfb, 0xa0, 0x5b, 0x54, 0x3c, 0x33, 0x12, 0x5d, 0x2e, 0x2f, 0x3c, 0x3f, - 0x32, 0xb3, 0xcc, 0x71, 0x65, 0x69, 0x41, 0x95, 0x6c, 0x9a, 0xc4, 0xa0, 0xd6, 0x81, 0xa7, 0xaf, - 0x82, 0x1b, 0xeb, 0x0d, 0x77, 0xab, 0xb3, 0x31, 0x87, 0x6f, 0x38, 0x56, 0xb7, 0xeb, 0x76, 0xf7, - 0x73, 0x06, 0x6d, 0xb1, 0x06, 0xfb, 0x25, 0x3e, 0x69, 0x24, 0x3d, 0xe9, 0x4c, 0xe8, 0xf7, 0x8f, - 0xfc, 0x1a, 0x4c, 0x09, 0x65, 0x8d, 0xdd, 0xa9, 0xf2, 0x12, 0x54, 0xd9, 0xf5, 0x40, 0x9e, 0x7b, - 0xe9, 0x4d, 0x96, 0x12, 0xd4, 0x49, 0x01, 0xa5, 0x7d, 0xbc, 0x48, 0xcd, 0xab, 0x70, 0x69, 0x80, - 0x8f, 0xfb, 0x30, 0x1e, 0xb9, 0x77, 0x67, 0x7c, 0x45, 0x30, 0x4e, 0xf9, 0x18, 0x2b, 0x02, 0x9a, - 0x5f, 0x84, 0xf1, 0xbd, 0x70, 0xfd, 0x5a, 0x70, 0xa5, 0x89, 0x9f, 0x64, 0x19, 0x26, 0x18, 0x89, - 0xd1, 0x71, 0x5c, 0xbb, 0xc9, 0x02, 0xc4, 0xee, 0x34, 0xbf, 0x79, 0x93, 0x3b, 0x55, 0x86, 0xc2, - 0x16, 0x3d, 0x54, 0xfe, 0x6e, 0x98, 0xa6, 0x12, 0xb6, 0x07, 0xfd, 0x6c, 0xe1, 0x57, 0x08, 0xb9, - 0xdf, 0x3f, 0xc4, 0x7d, 0x6f, 0xca, 0x23, 0xf0, 0xf1, 0xfa, 0x56, 0xa2, 0x4e, 0x5c, 0x8c, 0x6d, - 0x78, 0xfe, 0x33, 0x4d, 0x65, 0xd7, 0x6f, 0x0c, 0xb9, 0x47, 0xdf, 0x0e, 0xae, 0xc4, 0x32, 0x47, - 0xce, 0x9b, 0x66, 0xbe, 0x0a, 0xfb, 0x07, 0xac, 0xec, 0x10, 0x9c, 0x8f, 0x09, 0xce, 0xe9, 0xbe, - 0xd5, 0xa5, 0xb4, 0x65, 0x90, 0x72, 0x6f, 0x3d, 0x86, 0xe0, 0x7c, 0x5c, 0x70, 0x2a, 0x02, 0x2b, - 0x97, 0x85, 0x32, 0x9e, 0x82, 0x49, 0x3c, 0xa9, 0x6f, 0xd8, 0x8e, 0x38, 0xf7, 0x0e, 0x41, 0xf7, - 0x84, 0xa0, 0x9b, 0x10, 0x40, 0x76, 0x0a, 0xa6, 0x5c, 0xb7, 0x41, 0x62, 0x13, 0x0f, 0x40, 0x43, - 0x50, 0x3c, 0x29, 0x28, 0xc6, 0xa8, 0x3e, 0x85, 0xce, 0x43, 0xba, 0x6e, 0x8b, 0x30, 0x1c, 0x0e, - 0x7f, 0x4a, 0xc0, 0x53, 0x12, 0x23, 0x28, 0x5a, 0x76, 0xab, 0x63, 0xd2, 0x18, 0x1d, 0x4e, 0xf1, - 0x2d, 0x49, 0x21, 0x31, 0x82, 0x62, 0x0f, 0x66, 0xfd, 0xb6, 0xa4, 0x70, 0x7c, 0xf6, 0xbc, 0x93, - 0xde, 0xf5, 0x9a, 0xdb, 0xb6, 0x35, 0xcc, 0x20, 0x9e, 0x16, 0x0c, 0x20, 0x20, 0x94, 0xe0, 0x76, - 0x48, 0x0e, 0xbb, 0x10, 0xdf, 0x11, 0xf0, 0x04, 0x91, 0x2b, 0x80, 0xfb, 0x4c, 0x06, 0x19, 0xfa, - 0x6d, 0x25, 0x9c, 0xe2, 0xbb, 0x82, 0x22, 0xe3, 0x83, 0x89, 0x69, 0xb8, 0xc4, 0x71, 0xf1, 0xa8, - 0x3e, 0x04, 0xc9, 0xb3, 0x72, 0x1a, 0x02, 0x22, 0x4c, 0xb9, 0x41, 0x2c, 0x63, 0x6b, 0x38, 0x86, - 0xe7, 0xa4, 0x29, 0x25, 0x86, 0x52, 0x60, 0xe4, 0x69, 0xea, 0x6d, 0x3c, 0x5c, 0x9b, 0x43, 0x2d, - 0xc7, 0xf7, 0x04, 0x47, 0xda, 0x03, 0x09, 0x8b, 0x74, 0xac, 0xbd, 0xd0, 0x3c, 0x2f, 0x2d, 0xe2, - 0x83, 0x89, 0xad, 0x87, 0x27, 0x53, 0x5a, 0x49, 0xec, 0x85, 0xed, 0xfb, 0x72, 0xeb, 0x71, 0xec, - 0xaa, 0x9f, 0x11, 0x57, 0xda, 0xc1, 0x23, 0xf8, 0x30, 0x34, 0x3f, 0x90, 0x2b, 0xcd, 0x00, 0x14, - 0x7c, 0x2f, 0x1c, 0x18, 0x18, 0xea, 0x87, 0x20, 0x7b, 0x41, 0x90, 0xed, 0x1b, 0x10, 0xee, 0x45, - 0x48, 0xd8, 0x2b, 0xe5, 0x0f, 0x65, 0x48, 0x20, 0x3d, 0x5c, 0x65, 0x5a, 0xc6, 0x3a, 0xfa, 0xe6, - 0xde, 0xac, 0xf6, 0x23, 0x69, 0x35, 0x8e, 0x0d, 0x58, 0x6d, 0x1d, 0xf6, 0x09, 0xc6, 0xbd, 0xad, - 0xeb, 0x8b, 0x32, 0xb0, 0x72, 0x74, 0x35, 0xb8, 0xba, 0x9f, 0x84, 0x19, 0xcf, 0x9c, 0xb2, 0x02, - 0x73, 0x34, 0x7a, 0x31, 0x10, 0xce, 0xfc, 0x92, 0x60, 0x96, 0x11, 0xdf, 0x2b, 0xe1, 0x9c, 0x55, - 0xbd, 0x45, 0xc9, 0x4f, 0x43, 0x4e, 0x92, 0x77, 0x2c, 0x2c, 0xf0, 0xed, 0xba, 0x85, 0xcb, 0x58, - 0x1b, 0x82, 0xfa, 0xc7, 0x3d, 0x4b, 0x55, 0xf5, 0xc1, 0x29, 0x73, 0x11, 0xb2, 0x5e, 0xbd, 0xa1, - 0x35, 0x9a, 0x2d, 0x1b, 0x4b, 0xcb, 0xdd, 0x19, 0x7f, 0x22, 0x57, 0xca, 0xc3, 0x15, 0x19, 0x2c, - 0x5f, 0x80, 0x0c, 0x6b, 0x0e, 0xeb, 0x92, 0x3f, 0x15, 0x44, 0xe3, 0x5d, 0x94, 0x08, 0x1c, 0x58, - 0x29, 0x61, 0xcd, 0x3b, 0x4c, 0xfc, 0xfb, 0x99, 0x0c, 0x1c, 0x02, 0xc2, 0xbd, 0x6f, 0xa2, 0x27, - 0x13, 0x2b, 0x61, 0x9f, 0x5f, 0x73, 0x9f, 0xbe, 0x20, 0xf6, 0x6c, 0x30, 0x11, 0xe7, 0x57, 0xa8, - 0x79, 0x82, 0xe9, 0x32, 0x9c, 0xec, 0xa1, 0x0b, 0x9e, 0x85, 0x02, 0xd9, 0x32, 0x7f, 0x12, 0xc6, - 0x03, 0xa9, 0x32, 0x9c, 0xea, 0x33, 0x82, 0x2a, 0xed, 0xcf, 0x94, 0xf9, 0x9b, 0x21, 0x46, 0xd3, - 0x5e, 0x38, 0xfc, 0xb3, 0x02, 0xce, 0xd4, 0xf3, 0x1f, 0x87, 0x84, 0x4c, 0x77, 0xe1, 0xd0, 0xcf, - 0x09, 0xa8, 0x07, 0xa1, 0x70, 0x99, 0xea, 0xc2, 0xe1, 0x9f, 0x97, 0x70, 0x09, 0xa1, 0xf0, 0xe1, - 0x4d, 0xf8, 0xf2, 0x17, 0x62, 0x22, 0x5c, 0x49, 0xdb, 0xd1, 0x6f, 0x3e, 0x3c, 0xc7, 0x85, 0xa3, - 0x1f, 0x16, 0x2f, 0x97, 0x88, 0xfc, 0xad, 0x10, 0x1f, 0xd2, 0xe0, 0x5f, 0x14, 0x50, 0xae, 0x8f, - 0x19, 0x24, 0xe5, 0xcb, 0x6b, 0xe1, 0xf0, 0x2f, 0x09, 0xb8, 0x1f, 0x45, 0x87, 0x2e, 0xf2, 0x5a, - 0x38, 0xc1, 0x97, 0xe5, 0xd0, 0x05, 0x82, 0x9a, 0x4d, 0xa6, 0xb4, 0x70, 0xf4, 0x57, 0xa4, 0xd5, - 0x25, 0x04, 0x77, 0x53, 0xd2, 0x0b, 0x53, 0xe1, 0xf8, 0xaf, 0x0a, 0x7c, 0x17, 0x43, 0x2d, 0xe0, - 0x0b, 0x93, 0xe1, 0x14, 0x5f, 0x93, 0x16, 0xf0, 0xa1, 0xe8, 0x36, 0xea, 0x4d, 0x7d, 0xe1, 0x4c, - 0x5f, 0x97, 0xdb, 0xa8, 0x27, 0xf3, 0xd1, 0xd5, 0x64, 0xd1, 0x22, 0x9c, 0xe2, 0x1b, 0x72, 0x35, - 0x99, 0x3e, 0x1d, 0x46, 0x6f, 0x2e, 0x09, 0xe7, 0xf8, 0xa6, 0x1c, 0x46, 0x4f, 0x2a, 0xc1, 0xcc, - 0xa4, 0xf4, 0xe7, 0x91, 0x70, 0xbe, 0x47, 0x04, 0xdf, 0x64, 0x5f, 0x1a, 0xc9, 0xdf, 0x03, 0xfb, - 0x06, 0xe7, 0x90, 0x70, 0xd6, 0x47, 0x2f, 0xf4, 0x54, 0xfd, 0xfe, 0x14, 0x82, 0x29, 0x6f, 0x7a, - 0x50, 0xfe, 0x08, 0xa7, 0x7d, 0xec, 0x42, 0xf0, 0x60, 0xe7, 0x4f, 0x1f, 0x58, 0xa1, 0x41, 0x37, - 0x74, 0x87, 0x73, 0x3d, 0x21, 0xb8, 0x7c, 0x20, 0xba, 0x35, 0x44, 0xe4, 0x0e, 0xc7, 0x3f, 0x29, - 0xb7, 0x86, 0x40, 0x20, 0x38, 0x61, 0x75, 0x4c, 0x93, 0x3a, 0x87, 0xb2, 0xfb, 0x7f, 0x69, 0xc8, - 0xfd, 0xf5, 0xa2, 0xd8, 0x18, 0x12, 0x80, 0x31, 0x34, 0x4e, 0x9a, 0x1b, 0x68, 0x83, 0x10, 0xe4, - 0xdf, 0x2e, 0xca, 0x80, 0x40, 0xb5, 0x71, 0x3f, 0x01, 0x3f, 0x34, 0xb2, 0x3b, 0xec, 0x10, 0xec, - 0xdf, 0x2f, 0x8a, 0xcf, 0xac, 0x5d, 0x48, 0x97, 0x80, 0x7f, 0xb4, 0xdd, 0x9d, 0xe0, 0xed, 0x20, - 0x01, 0x3b, 0x68, 0xde, 0x06, 0x63, 0xf4, 0x7f, 0x76, 0xb8, 0x7a, 0x3d, 0x0c, 0xfd, 0x0f, 0x81, - 0x96, 0xfa, 0xd4, 0x60, 0x4d, 0xbb, 0x4d, 0xf0, 0xa7, 0x13, 0x86, 0xfd, 0xa7, 0xc0, 0x7a, 0x00, - 0x0a, 0x36, 0x74, 0xc7, 0x1d, 0x66, 0xde, 0xff, 0x92, 0x60, 0x09, 0xa0, 0x83, 0xa6, 0xbf, 0xcf, - 0x92, 0xed, 0x30, 0xec, 0x3b, 0x72, 0xd0, 0x42, 0x1f, 0x03, 0x60, 0x92, 0xfe, 0xe4, 0xff, 0xf5, - 0x20, 0x04, 0xfc, 0x6f, 0x01, 0xee, 0x22, 0x16, 0x0e, 0x0f, 0xbe, 0xda, 0x81, 0x65, 0x7b, 0xd9, - 0xe6, 0x97, 0x3a, 0xf0, 0x42, 0x04, 0x32, 0xf4, 0x4b, 0xef, 0x5c, 0xcd, 0x76, 0xc5, 0x25, 0x4c, - 0x8a, 0xb6, 0xb1, 0x49, 0x2d, 0x3e, 0xb3, 0xb7, 0x0b, 0x9c, 0xd9, 0x49, 0x88, 0xac, 0x2a, 0x69, - 0x88, 0xe8, 0xe2, 0xa3, 0x74, 0x44, 0x5f, 0x58, 0x79, 0xf5, 0xf5, 0x83, 0x97, 0xfc, 0x0e, 0x9f, - 0x3f, 0xe2, 0xf3, 0xda, 0xeb, 0x07, 0x23, 0x6f, 0xe1, 0xf3, 0x0e, 0x3e, 0xef, 0xe2, 0xf3, 0xe0, - 0x1b, 0x07, 0x23, 0xcf, 0xe1, 0xf3, 0x22, 0x3e, 0xbf, 0xc0, 0xe7, 0x65, 0x7c, 0x5e, 0x7d, 0x03, - 0xf5, 0xf1, 0x79, 0x0d, 0x7f, 0xbf, 0x85, 0x7f, 0xdf, 0xc1, 0xbf, 0xef, 0xe2, 0xdf, 0x07, 0xff, - 0x7c, 0xf0, 0x92, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x43, 0x74, 0x16, 0x1a, 0x2b, 0x00, - 0x00, + // 3657 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, + 0x63, 0xda, 0x6e, 0xa8, 0x8c, 0x6c, 0xc9, 0xf2, 0xaa, 0x89, 0x06, 0x04, 0x21, 0x06, 0x2a, 0x49, + 0x20, 0x0b, 0x32, 0x96, 0xd2, 0x87, 0x9d, 0xe5, 0xee, 0x05, 0xb8, 0xd2, 0x62, 0x17, 0xd9, 0x5d, + 0x48, 0xa2, 0x9e, 0xd4, 0x71, 0x7f, 0x26, 0xd3, 0xe9, 0x7f, 0x67, 0x9a, 0xb8, 0x8e, 0xdb, 0x66, + 0xa6, 0x75, 0x9a, 0x34, 0x6d, 0xd2, 0x9f, 0x34, 0xd3, 0xa7, 0xbc, 0xa4, 0xf5, 0x53, 0x27, 0x79, + 0xeb, 0x43, 0x1f, 0x2c, 0xc6, 0x33, 0x75, 0x5b, 0xb5, 0x75, 0x1b, 0xcd, 0x34, 0x33, 0x7a, 0xc9, + 0xdc, 0xbf, 0xc5, 0x2e, 0x00, 0x72, 0xc1, 0xcc, 0x38, 0x7e, 0x22, 0xef, 0xb9, 0xe7, 0xfb, 0xf6, + 0xec, 0xb9, 0xe7, 0x9e, 0x73, 0xee, 0x5d, 0xc0, 0x0f, 0x2f, 0xc0, 0x52, 0xdb, 0x71, 0xda, 0x16, + 0x3a, 0xd7, 0x75, 0x1d, 0xdf, 0xd9, 0xeb, 0xb5, 0xce, 0x19, 0xc8, 0xd3, 0x5d, 0xb3, 0xeb, 0x3b, + 0xee, 0x2a, 0x91, 0x49, 0x33, 0x54, 0x63, 0x95, 0x6b, 0x2c, 0x6f, 0xc1, 0xec, 0x55, 0xd3, 0x42, + 0xeb, 0x81, 0x62, 0x13, 0xf9, 0xd2, 0x25, 0x48, 0xb5, 0x4c, 0x0b, 0x15, 0x85, 0xa5, 0xe4, 0x4a, + 0xee, 0xfc, 0xd3, 0xab, 0x03, 0xa0, 0xd5, 0x28, 0xa2, 0x81, 0xc5, 0x0a, 0x41, 0x2c, 0xbf, 0x9b, + 0x82, 0xb9, 0x11, 0xb3, 0x92, 0x04, 0x29, 0x5b, 0xeb, 0x60, 0x46, 0x61, 0x25, 0xab, 0x90, 0xff, + 0xa5, 0x22, 0x4c, 0x75, 0x35, 0xfd, 0x96, 0xd6, 0x46, 0xc5, 0x04, 0x11, 0xf3, 0xa1, 0x54, 0x02, + 0x30, 0x50, 0x17, 0xd9, 0x06, 0xb2, 0xf5, 0x83, 0x62, 0x72, 0x29, 0xb9, 0x92, 0x55, 0x42, 0x12, + 0xe9, 0x05, 0x98, 0xed, 0xf6, 0xf6, 0x2c, 0x53, 0x57, 0x43, 0x6a, 0xb0, 0x94, 0x5c, 0x49, 0x2b, + 0x22, 0x9d, 0x58, 0xef, 0x2b, 0x3f, 0x0b, 0x33, 0x77, 0x90, 0x76, 0x2b, 0xac, 0x9a, 0x23, 0xaa, + 0x05, 0x2c, 0x0e, 0x29, 0x56, 0x20, 0xdf, 0x41, 0x9e, 0xa7, 0xb5, 0x91, 0xea, 0x1f, 0x74, 0x51, + 0x31, 0x45, 0xde, 0x7e, 0x69, 0xe8, 0xed, 0x07, 0xdf, 0x3c, 0xc7, 0x50, 0x3b, 0x07, 0x5d, 0x24, + 0x95, 0x21, 0x8b, 0xec, 0x5e, 0x87, 0x32, 0xa4, 0x8f, 0xf0, 0x5f, 0xd5, 0xee, 0x75, 0x06, 0x59, + 0x32, 0x18, 0xc6, 0x28, 0xa6, 0x3c, 0xe4, 0xde, 0x36, 0x75, 0x54, 0x9c, 0x24, 0x04, 0xcf, 0x0e, + 0x11, 0x34, 0xe9, 0xfc, 0x20, 0x07, 0xc7, 0x49, 0x15, 0xc8, 0xa2, 0xbb, 0x3e, 0xb2, 0x3d, 0xd3, + 0xb1, 0x8b, 0x53, 0x84, 0xe4, 0x99, 0x11, 0xab, 0x88, 0x2c, 0x63, 0x90, 0xa2, 0x8f, 0x93, 0x2e, + 0xc2, 0x94, 0xd3, 0xf5, 0x4d, 0xc7, 0xf6, 0x8a, 0x99, 0x25, 0x61, 0x25, 0x77, 0xfe, 0x23, 0x23, + 0x03, 0xa1, 0x4e, 0x75, 0x14, 0xae, 0x2c, 0xd5, 0x40, 0xf4, 0x9c, 0x9e, 0xab, 0x23, 0x55, 0x77, + 0x0c, 0xa4, 0x9a, 0x76, 0xcb, 0x29, 0x66, 0x09, 0xc1, 0x99, 0xe1, 0x17, 0x21, 0x8a, 0x15, 0xc7, + 0x40, 0x35, 0xbb, 0xe5, 0x28, 0x05, 0x2f, 0x32, 0x96, 0x16, 0x60, 0xd2, 0x3b, 0xb0, 0x7d, 0xed, + 0x6e, 0x31, 0x4f, 0x22, 0x84, 0x8d, 0x96, 0xff, 0x3f, 0x0d, 0x33, 0xe3, 0x84, 0xd8, 0x65, 0x48, + 0xb7, 0xf0, 0x5b, 0x16, 0x13, 0x27, 0xf1, 0x01, 0xc5, 0x44, 0x9d, 0x38, 0xf9, 0x53, 0x3a, 0xb1, + 0x0c, 0x39, 0x1b, 0x79, 0x3e, 0x32, 0x68, 0x44, 0x24, 0xc7, 0x8c, 0x29, 0xa0, 0xa0, 0xe1, 0x90, + 0x4a, 0xfd, 0x54, 0x21, 0x75, 0x1d, 0x66, 0x02, 0x93, 0x54, 0x57, 0xb3, 0xdb, 0x3c, 0x36, 0xcf, + 0xc5, 0x59, 0xb2, 0x5a, 0xe5, 0x38, 0x05, 0xc3, 0x94, 0x02, 0x8a, 0x8c, 0xa5, 0x75, 0x00, 0xc7, + 0x46, 0x4e, 0x4b, 0x35, 0x90, 0x6e, 0x15, 0x33, 0x47, 0x78, 0xa9, 0x8e, 0x55, 0x86, 0xbc, 0xe4, + 0x50, 0xa9, 0x6e, 0x49, 0xaf, 0xf4, 0x43, 0x6d, 0xea, 0x88, 0x48, 0xd9, 0xa2, 0x9b, 0x6c, 0x28, + 0xda, 0x76, 0xa1, 0xe0, 0x22, 0x1c, 0xf7, 0xc8, 0x60, 0x6f, 0x96, 0x25, 0x46, 0xac, 0xc6, 0xbe, + 0x99, 0xc2, 0x60, 0xf4, 0xc5, 0xa6, 0xdd, 0xf0, 0x50, 0xfa, 0x28, 0x04, 0x02, 0x95, 0x84, 0x15, + 0x90, 0x2c, 0x94, 0xe7, 0xc2, 0x6d, 0xad, 0x83, 0x16, 0x2f, 0x41, 0x21, 0xea, 0x1e, 0x69, 0x1e, + 0xd2, 0x9e, 0xaf, 0xb9, 0x3e, 0x89, 0xc2, 0xb4, 0x42, 0x07, 0x92, 0x08, 0x49, 0x64, 0x1b, 0x24, + 0xcb, 0xa5, 0x15, 0xfc, 0xef, 0xe2, 0xcb, 0x30, 0x1d, 0x79, 0xfc, 0xb8, 0xc0, 0xe5, 0x2f, 0x4e, + 0xc2, 0xfc, 0xa8, 0x98, 0x1b, 0x19, 0xfe, 0x0b, 0x30, 0x69, 0xf7, 0x3a, 0x7b, 0xc8, 0x2d, 0x26, + 0x09, 0x03, 0x1b, 0x49, 0x65, 0x48, 0x5b, 0xda, 0x1e, 0xb2, 0x8a, 0xa9, 0x25, 0x61, 0xa5, 0x70, + 0xfe, 0x85, 0xb1, 0xa2, 0x7a, 0x75, 0x13, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x29, 0x96, 0xe2, + 0x30, 0xc3, 0xf3, 0xe3, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x12, 0xb2, 0xf8, 0x2f, 0xf5, + 0xed, 0x24, 0xb1, 0x39, 0x83, 0x05, 0xd8, 0xaf, 0xd2, 0x22, 0x64, 0x48, 0x98, 0x19, 0x88, 0x97, + 0x86, 0x60, 0x8c, 0x17, 0xc6, 0x40, 0x2d, 0xad, 0x67, 0xf9, 0xea, 0x6d, 0xcd, 0xea, 0x21, 0x12, + 0x30, 0x59, 0x25, 0xcf, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x0c, 0xe4, 0x68, 0x54, 0x9a, 0xb6, 0x81, + 0xee, 0x92, 0xec, 0x93, 0x56, 0x68, 0xa0, 0xd6, 0xb0, 0x04, 0x3f, 0xfe, 0xa6, 0xe7, 0xd8, 0x7c, + 0x69, 0xc9, 0x23, 0xb0, 0x80, 0x3c, 0xfe, 0xe5, 0xc1, 0xc4, 0xf7, 0xd4, 0xe8, 0xd7, 0x1b, 0x8c, + 0xc5, 0xe5, 0x6f, 0x27, 0x20, 0x45, 0xf6, 0xdb, 0x0c, 0xe4, 0x76, 0x6e, 0x34, 0xaa, 0xea, 0x7a, + 0x7d, 0x77, 0x6d, 0xb3, 0x2a, 0x0a, 0x52, 0x01, 0x80, 0x08, 0xae, 0x6e, 0xd6, 0xcb, 0x3b, 0x62, + 0x22, 0x18, 0xd7, 0xb6, 0x77, 0x2e, 0xbe, 0x24, 0x26, 0x03, 0xc0, 0x2e, 0x15, 0xa4, 0xc2, 0x0a, + 0x2f, 0x9e, 0x17, 0xd3, 0x92, 0x08, 0x79, 0x4a, 0x50, 0xbb, 0x5e, 0x5d, 0xbf, 0xf8, 0x92, 0x38, + 0x19, 0x95, 0xbc, 0x78, 0x5e, 0x9c, 0x92, 0xa6, 0x21, 0x4b, 0x24, 0x6b, 0xf5, 0xfa, 0xa6, 0x98, + 0x09, 0x38, 0x9b, 0x3b, 0x4a, 0x6d, 0x7b, 0x43, 0xcc, 0x06, 0x9c, 0x1b, 0x4a, 0x7d, 0xb7, 0x21, + 0x42, 0xc0, 0xb0, 0x55, 0x6d, 0x36, 0xcb, 0x1b, 0x55, 0x31, 0x17, 0x68, 0xac, 0xdd, 0xd8, 0xa9, + 0x36, 0xc5, 0x7c, 0xc4, 0xac, 0x17, 0xcf, 0x8b, 0xd3, 0xc1, 0x23, 0xaa, 0xdb, 0xbb, 0x5b, 0x62, + 0x41, 0x9a, 0x85, 0x69, 0xfa, 0x08, 0x6e, 0xc4, 0xcc, 0x80, 0xe8, 0xe2, 0x4b, 0xa2, 0xd8, 0x37, + 0x84, 0xb2, 0xcc, 0x46, 0x04, 0x17, 0x5f, 0x12, 0xa5, 0xe5, 0x0a, 0xa4, 0x49, 0x74, 0x49, 0x12, + 0x14, 0x36, 0xcb, 0x6b, 0xd5, 0x4d, 0xb5, 0xde, 0xd8, 0xa9, 0xd5, 0xb7, 0xcb, 0x9b, 0xa2, 0xd0, + 0x97, 0x29, 0xd5, 0xcf, 0xec, 0xd6, 0x94, 0xea, 0xba, 0x98, 0x08, 0xcb, 0x1a, 0xd5, 0xf2, 0x4e, + 0x75, 0x5d, 0x4c, 0x2e, 0xeb, 0x30, 0x3f, 0x2a, 0xcf, 0x8c, 0xdc, 0x19, 0xa1, 0x25, 0x4e, 0x1c, + 0xb1, 0xc4, 0x84, 0x6b, 0x68, 0x89, 0xbf, 0x22, 0xc0, 0xdc, 0x88, 0x5c, 0x3b, 0xf2, 0x21, 0x57, + 0x20, 0x4d, 0x43, 0x94, 0x56, 0x9f, 0xe7, 0x46, 0x26, 0x6d, 0x12, 0xb0, 0x43, 0x15, 0x88, 0xe0, + 0xc2, 0x15, 0x38, 0x79, 0x44, 0x05, 0xc6, 0x14, 0x43, 0x46, 0xbe, 0x26, 0x40, 0xf1, 0x28, 0xee, + 0x98, 0x44, 0x91, 0x88, 0x24, 0x8a, 0xcb, 0x83, 0x06, 0x9c, 0x3d, 0xfa, 0x1d, 0x86, 0xac, 0x78, + 0x4b, 0x80, 0x85, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x05, 0x93, 0x1d, 0xe4, 0xef, 0x3b, 0xbc, + 0x58, 0x7f, 0x6c, 0x44, 0x09, 0xc0, 0xd3, 0x83, 0xbe, 0x62, 0xa8, 0x70, 0x0d, 0x49, 0x1e, 0xd5, + 0x6d, 0x50, 0x6b, 0x86, 0x2c, 0xfd, 0x42, 0x02, 0x9e, 0x18, 0x49, 0x3e, 0xd2, 0xd0, 0xa7, 0x00, + 0x4c, 0xbb, 0xdb, 0xf3, 0x69, 0x41, 0xa6, 0xf9, 0x29, 0x4b, 0x24, 0x64, 0xef, 0xe3, 0xdc, 0xd3, + 0xf3, 0x83, 0xf9, 0x24, 0x99, 0x07, 0x2a, 0x22, 0x0a, 0x97, 0xfa, 0x86, 0xa6, 0x88, 0xa1, 0xa5, + 0x23, 0xde, 0x74, 0xa8, 0xd6, 0x7d, 0x02, 0x44, 0xdd, 0x32, 0x91, 0xed, 0xab, 0x9e, 0xef, 0x22, + 0xad, 0x63, 0xda, 0x6d, 0x92, 0x80, 0x33, 0x72, 0xba, 0xa5, 0x59, 0x1e, 0x52, 0x66, 0xe8, 0x74, + 0x93, 0xcf, 0x62, 0x04, 0xa9, 0x32, 0x6e, 0x08, 0x31, 0x19, 0x41, 0xd0, 0xe9, 0x00, 0xb1, 0xfc, + 0xf5, 0x29, 0xc8, 0x85, 0xda, 0x3a, 0xe9, 0x2c, 0xe4, 0x6f, 0x6a, 0xb7, 0x35, 0x95, 0xb7, 0xea, + 0xd4, 0x13, 0x39, 0x2c, 0x6b, 0xb0, 0x76, 0xfd, 0x13, 0x30, 0x4f, 0x54, 0x9c, 0x9e, 0x8f, 0x5c, + 0x55, 0xb7, 0x34, 0xcf, 0x23, 0x4e, 0xcb, 0x10, 0x55, 0x09, 0xcf, 0xd5, 0xf1, 0x54, 0x85, 0xcf, + 0x48, 0x17, 0x60, 0x8e, 0x20, 0x3a, 0x3d, 0xcb, 0x37, 0xbb, 0x16, 0x52, 0xf1, 0xe1, 0xc1, 0x23, + 0x89, 0x38, 0xb0, 0x6c, 0x16, 0x6b, 0x6c, 0x31, 0x05, 0x6c, 0x91, 0x27, 0xad, 0xc3, 0x53, 0x04, + 0xd6, 0x46, 0x36, 0x72, 0x35, 0x1f, 0xa9, 0xe8, 0xf3, 0x3d, 0xcd, 0xf2, 0x54, 0xcd, 0x36, 0xd4, + 0x7d, 0xcd, 0xdb, 0x2f, 0xce, 0x63, 0x82, 0xb5, 0x44, 0x51, 0x50, 0x4e, 0x63, 0xc5, 0x0d, 0xa6, + 0x57, 0x25, 0x6a, 0x65, 0xdb, 0xf8, 0xb4, 0xe6, 0xed, 0x4b, 0x32, 0x2c, 0x10, 0x16, 0xcf, 0x77, + 0x4d, 0xbb, 0xad, 0xea, 0xfb, 0x48, 0xbf, 0xa5, 0xf6, 0xfc, 0xd6, 0xa5, 0xe2, 0x93, 0xe1, 0xe7, + 0x13, 0x0b, 0x9b, 0x44, 0xa7, 0x82, 0x55, 0x76, 0xfd, 0xd6, 0x25, 0xa9, 0x09, 0x79, 0xbc, 0x18, + 0x1d, 0xf3, 0x1e, 0x52, 0x5b, 0x8e, 0x4b, 0x2a, 0x4b, 0x61, 0xc4, 0xce, 0x0e, 0x79, 0x70, 0xb5, + 0xce, 0x00, 0x5b, 0x8e, 0x81, 0xe4, 0x74, 0xb3, 0x51, 0xad, 0xae, 0x2b, 0x39, 0xce, 0x72, 0xd5, + 0x71, 0x71, 0x40, 0xb5, 0x9d, 0xc0, 0xc1, 0x39, 0x1a, 0x50, 0x6d, 0x87, 0xbb, 0xf7, 0x02, 0xcc, + 0xe9, 0x3a, 0x7d, 0x67, 0x53, 0x57, 0x59, 0x8b, 0xef, 0x15, 0xc5, 0x88, 0xb3, 0x74, 0x7d, 0x83, + 0x2a, 0xb0, 0x18, 0xf7, 0xa4, 0x57, 0xe0, 0x89, 0xbe, 0xb3, 0xc2, 0xc0, 0xd9, 0xa1, 0xb7, 0x1c, + 0x84, 0x5e, 0x80, 0xb9, 0xee, 0xc1, 0x30, 0x50, 0x8a, 0x3c, 0xb1, 0x7b, 0x30, 0x08, 0x7b, 0x86, + 0x1c, 0xdb, 0x5c, 0xa4, 0x6b, 0x3e, 0x32, 0x8a, 0xa7, 0xc2, 0xda, 0xa1, 0x09, 0xe9, 0x1c, 0x88, + 0xba, 0xae, 0x22, 0x5b, 0xdb, 0xb3, 0x90, 0xaa, 0xb9, 0xc8, 0xd6, 0xbc, 0xe2, 0x99, 0xb0, 0x72, + 0x41, 0xd7, 0xab, 0x64, 0xb6, 0x4c, 0x26, 0xa5, 0xe7, 0x61, 0xd6, 0xd9, 0xbb, 0xa9, 0xd3, 0xc8, + 0x52, 0xbb, 0x2e, 0x6a, 0x99, 0x77, 0x8b, 0x4f, 0x13, 0x37, 0xcd, 0xe0, 0x09, 0x12, 0x57, 0x0d, + 0x22, 0x96, 0x9e, 0x03, 0x51, 0xf7, 0xf6, 0x35, 0xb7, 0x4b, 0x4a, 0xbb, 0xd7, 0xd5, 0x74, 0x54, + 0x7c, 0x86, 0xaa, 0x52, 0xf9, 0x36, 0x17, 0xe3, 0xc8, 0xf6, 0xee, 0x98, 0x2d, 0x9f, 0x33, 0x3e, + 0x4b, 0x23, 0x9b, 0xc8, 0x18, 0xdb, 0x75, 0x98, 0xef, 0xd9, 0xa6, 0xed, 0x23, 0xb7, 0xeb, 0x22, + 0xdc, 0xc4, 0xd3, 0x9d, 0x58, 0xfc, 0xb7, 0xa9, 0x23, 0xda, 0xf0, 0xdd, 0xb0, 0x36, 0x0d, 0x00, + 0x65, 0xae, 0x37, 0x2c, 0x5c, 0x96, 0x21, 0x1f, 0x8e, 0x0b, 0x29, 0x0b, 0x34, 0x32, 0x44, 0x01, + 0xd7, 0xd8, 0x4a, 0x7d, 0x1d, 0x57, 0xc7, 0xcf, 0x55, 0xc5, 0x04, 0xae, 0xd2, 0x9b, 0xb5, 0x9d, + 0xaa, 0xaa, 0xec, 0x6e, 0xef, 0xd4, 0xb6, 0xaa, 0x62, 0xf2, 0xf9, 0x6c, 0xe6, 0xbd, 0x29, 0xf1, + 0xfe, 0xfd, 0xfb, 0xf7, 0x13, 0xcb, 0xdf, 0x4b, 0x40, 0x21, 0xda, 0x19, 0x4b, 0x3f, 0x0f, 0xa7, + 0xf8, 0x31, 0xd6, 0x43, 0xbe, 0x7a, 0xc7, 0x74, 0x49, 0xa8, 0x76, 0x34, 0xda, 0x5b, 0x06, 0x5e, + 0x9e, 0x67, 0x5a, 0x4d, 0xe4, 0xbf, 0x6a, 0xba, 0x38, 0x10, 0x3b, 0x9a, 0x2f, 0x6d, 0xc2, 0x19, + 0xdb, 0x51, 0x3d, 0x5f, 0xb3, 0x0d, 0xcd, 0x35, 0xd4, 0xfe, 0x05, 0x82, 0xaa, 0xe9, 0x3a, 0xf2, + 0x3c, 0x87, 0x96, 0x88, 0x80, 0xe5, 0x23, 0xb6, 0xd3, 0x64, 0xca, 0xfd, 0xdc, 0x59, 0x66, 0xaa, + 0x03, 0x11, 0x91, 0x3c, 0x2a, 0x22, 0x9e, 0x84, 0x6c, 0x47, 0xeb, 0xaa, 0xc8, 0xf6, 0xdd, 0x03, + 0xd2, 0xcf, 0x65, 0x94, 0x4c, 0x47, 0xeb, 0x56, 0xf1, 0xf8, 0x83, 0x5b, 0x83, 0xb0, 0x1f, 0xff, + 0x35, 0x09, 0xf9, 0x70, 0x4f, 0x87, 0x5b, 0x64, 0x9d, 0xe4, 0x6f, 0x81, 0xec, 0xf0, 0x8f, 0x1e, + 0xdb, 0x01, 0xae, 0x56, 0x70, 0x62, 0x97, 0x27, 0x69, 0xa7, 0xa5, 0x50, 0x24, 0x2e, 0xaa, 0x78, + 0x4f, 0x23, 0xda, 0xbf, 0x67, 0x14, 0x36, 0x92, 0x36, 0x60, 0xf2, 0xa6, 0x47, 0xb8, 0x27, 0x09, + 0xf7, 0xd3, 0xc7, 0x73, 0x5f, 0x6b, 0x12, 0xf2, 0xec, 0xb5, 0xa6, 0xba, 0x5d, 0x57, 0xb6, 0xca, + 0x9b, 0x0a, 0x83, 0x4b, 0xa7, 0x21, 0x65, 0x69, 0xf7, 0x0e, 0xa2, 0x25, 0x80, 0x88, 0xc6, 0x75, + 0xfc, 0x69, 0x48, 0xdd, 0x41, 0xda, 0xad, 0x68, 0xe2, 0x25, 0xa2, 0x0f, 0x30, 0xf4, 0xcf, 0x41, + 0x9a, 0xf8, 0x4b, 0x02, 0x60, 0x1e, 0x13, 0x27, 0xa4, 0x0c, 0xa4, 0x2a, 0x75, 0x05, 0x87, 0xbf, + 0x08, 0x79, 0x2a, 0x55, 0x1b, 0xb5, 0x6a, 0xa5, 0x2a, 0x26, 0x96, 0x2f, 0xc0, 0x24, 0x75, 0x02, + 0xde, 0x1a, 0x81, 0x1b, 0xc4, 0x09, 0x36, 0x64, 0x1c, 0x02, 0x9f, 0xdd, 0xdd, 0x5a, 0xab, 0x2a, + 0x62, 0x22, 0xbc, 0xbc, 0x1e, 0xe4, 0xc3, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xfe, 0x41, 0x80, 0x5c, + 0xa8, 0x3d, 0xc3, 0x8d, 0x81, 0x66, 0x59, 0xce, 0x1d, 0x55, 0xb3, 0x4c, 0xcd, 0x63, 0x41, 0x01, + 0x44, 0x54, 0xc6, 0x92, 0x71, 0x17, 0xed, 0x67, 0x62, 0xfc, 0x9b, 0x02, 0x88, 0x83, 0xad, 0xdd, + 0x80, 0x81, 0xc2, 0x87, 0x6a, 0xe0, 0x1b, 0x02, 0x14, 0xa2, 0xfd, 0xdc, 0x80, 0x79, 0x67, 0x3f, + 0x54, 0xf3, 0xde, 0x49, 0xc0, 0x74, 0xa4, 0x8b, 0x1b, 0xd7, 0xba, 0xcf, 0xc3, 0xac, 0x69, 0xa0, + 0x4e, 0xd7, 0xf1, 0x91, 0xad, 0x1f, 0xa8, 0x16, 0xba, 0x8d, 0xac, 0xe2, 0x32, 0x49, 0x14, 0xe7, + 0x8e, 0xef, 0x13, 0x57, 0x6b, 0x7d, 0xdc, 0x26, 0x86, 0xc9, 0x73, 0xb5, 0xf5, 0xea, 0x56, 0xa3, + 0xbe, 0x53, 0xdd, 0xae, 0xdc, 0x50, 0x77, 0xb7, 0x7f, 0x61, 0xbb, 0xfe, 0xea, 0xb6, 0x22, 0x9a, + 0x03, 0x6a, 0x1f, 0xe0, 0x56, 0x6f, 0x80, 0x38, 0x68, 0x94, 0x74, 0x0a, 0x46, 0x99, 0x25, 0x4e, + 0x48, 0x73, 0x30, 0xb3, 0x5d, 0x57, 0x9b, 0xb5, 0xf5, 0xaa, 0x5a, 0xbd, 0x7a, 0xb5, 0x5a, 0xd9, + 0x69, 0xd2, 0x83, 0x73, 0xa0, 0xbd, 0x13, 0xdd, 0xd4, 0xaf, 0x27, 0x61, 0x6e, 0x84, 0x25, 0x52, + 0x99, 0xf5, 0xec, 0xf4, 0x18, 0xf1, 0xf1, 0x71, 0xac, 0x5f, 0xc5, 0x5d, 0x41, 0x43, 0x73, 0x7d, + 0xd6, 0xe2, 0x3f, 0x07, 0xd8, 0x4b, 0xb6, 0x6f, 0xb6, 0x4c, 0xe4, 0xb2, 0x7b, 0x06, 0xda, 0xc8, + 0xcf, 0xf4, 0xe5, 0xf4, 0xaa, 0xe1, 0xe7, 0x40, 0xea, 0x3a, 0x9e, 0xe9, 0x9b, 0xb7, 0x91, 0x6a, + 0xda, 0xfc, 0x52, 0x02, 0x37, 0xf6, 0x29, 0x45, 0xe4, 0x33, 0x35, 0xdb, 0x0f, 0xb4, 0x6d, 0xd4, + 0xd6, 0x06, 0xb4, 0x71, 0x02, 0x4f, 0x2a, 0x22, 0x9f, 0x09, 0xb4, 0xcf, 0x42, 0xde, 0x70, 0x7a, + 0xb8, 0x4d, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x4a, 0x8e, 0xca, 0x02, 0x15, 0xd6, 0xc7, 0xf6, 0x6f, + 0x43, 0xf2, 0x4a, 0x8e, 0xca, 0xa8, 0xca, 0xb3, 0x30, 0xa3, 0xb5, 0xdb, 0x2e, 0x26, 0xe7, 0x44, + 0xb4, 0x33, 0x2f, 0x04, 0x62, 0xa2, 0xb8, 0x78, 0x0d, 0x32, 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, + 0xa8, 0x5d, 0x7a, 0x27, 0x95, 0x58, 0xc9, 0x2a, 0x19, 0x9b, 0x4f, 0x9e, 0x85, 0xbc, 0xe9, 0xa9, + 0xfd, 0xcb, 0xd1, 0xc4, 0x52, 0x62, 0x25, 0xa3, 0xe4, 0x4c, 0x2f, 0xb8, 0x0d, 0x5b, 0x7e, 0x2b, + 0x01, 0x85, 0xe8, 0xe5, 0xae, 0xb4, 0x0e, 0x19, 0xcb, 0xd1, 0x35, 0x12, 0x5a, 0xf4, 0xcb, 0xc2, + 0x4a, 0xcc, 0x7d, 0xf0, 0xea, 0x26, 0xd3, 0x57, 0x02, 0xe4, 0xe2, 0x3f, 0x0b, 0x90, 0xe1, 0x62, + 0x69, 0x01, 0x52, 0x5d, 0xcd, 0xdf, 0x27, 0x74, 0xe9, 0xb5, 0x84, 0x28, 0x28, 0x64, 0x8c, 0xe5, + 0x5e, 0x57, 0xb3, 0x49, 0x08, 0x30, 0x39, 0x1e, 0xe3, 0x75, 0xb5, 0x90, 0x66, 0x90, 0xb6, 0xdf, + 0xe9, 0x74, 0x90, 0xed, 0x7b, 0x7c, 0x5d, 0x99, 0xbc, 0xc2, 0xc4, 0xd2, 0x0b, 0x30, 0xeb, 0xbb, + 0x9a, 0x69, 0x45, 0x74, 0x53, 0x44, 0x57, 0xe4, 0x13, 0x81, 0xb2, 0x0c, 0xa7, 0x39, 0xaf, 0x81, + 0x7c, 0x4d, 0xdf, 0x47, 0x46, 0x1f, 0x34, 0x49, 0x6e, 0x0e, 0x4f, 0x31, 0x85, 0x75, 0x36, 0xcf, + 0xb1, 0xcb, 0x3f, 0x10, 0x60, 0x96, 0x1f, 0x54, 0x8c, 0xc0, 0x59, 0x5b, 0x00, 0x9a, 0x6d, 0x3b, + 0x7e, 0xd8, 0x5d, 0xc3, 0xa1, 0x3c, 0x84, 0x5b, 0x2d, 0x07, 0x20, 0x25, 0x44, 0xb0, 0xd8, 0x01, + 0xe8, 0xcf, 0x1c, 0xe9, 0xb6, 0x33, 0x90, 0x63, 0x37, 0xf7, 0xe4, 0xf3, 0x0f, 0x3d, 0xda, 0x02, + 0x15, 0xe1, 0x13, 0x8d, 0x34, 0x0f, 0xe9, 0x3d, 0xd4, 0x36, 0x6d, 0x76, 0x9f, 0x48, 0x07, 0xfc, + 0x96, 0x32, 0x15, 0xdc, 0x52, 0xae, 0x5d, 0x87, 0x39, 0xdd, 0xe9, 0x0c, 0x9a, 0xbb, 0x26, 0x0e, + 0x1c, 0xaf, 0xbd, 0x4f, 0x0b, 0x9f, 0x83, 0x7e, 0x8b, 0xf9, 0x95, 0x44, 0x72, 0xa3, 0xb1, 0xf6, + 0xb5, 0xc4, 0xe2, 0x06, 0xc5, 0x35, 0xf8, 0x6b, 0x2a, 0xa8, 0x65, 0x21, 0x1d, 0x9b, 0x0e, 0x3f, + 0xfa, 0x18, 0x7c, 0xbc, 0x6d, 0xfa, 0xfb, 0xbd, 0xbd, 0x55, 0xdd, 0xe9, 0x9c, 0x6b, 0x3b, 0x6d, + 0xa7, 0xff, 0xb9, 0x0b, 0x8f, 0xc8, 0x80, 0xfc, 0xc7, 0x3e, 0x79, 0x65, 0x03, 0xe9, 0x62, 0xec, + 0xf7, 0x31, 0x79, 0x1b, 0xe6, 0x98, 0xb2, 0x4a, 0xee, 0xdc, 0xe9, 0xd1, 0x40, 0x3a, 0xf6, 0xde, + 0xa5, 0xf8, 0xad, 0x77, 0x49, 0xad, 0x56, 0x66, 0x19, 0x14, 0xcf, 0xd1, 0x03, 0x84, 0xac, 0xc0, + 0x13, 0x11, 0x3e, 0xba, 0x2f, 0x91, 0x1b, 0xc3, 0xf8, 0x3d, 0xc6, 0x38, 0x17, 0x62, 0x6c, 0x32, + 0xa8, 0x5c, 0x81, 0xe9, 0x93, 0x70, 0xfd, 0x23, 0xe3, 0xca, 0xa3, 0x30, 0xc9, 0x06, 0xcc, 0x10, + 0x12, 0xbd, 0xe7, 0xf9, 0x4e, 0x87, 0x24, 0xbd, 0xe3, 0x69, 0xfe, 0xe9, 0x5d, 0xba, 0x51, 0x0a, + 0x18, 0x56, 0x09, 0x50, 0xb2, 0x0c, 0xe4, 0x33, 0x83, 0x81, 0x74, 0x2b, 0x86, 0xe1, 0x6d, 0x66, + 0x48, 0xa0, 0x2f, 0x7f, 0x16, 0xe6, 0xf1, 0xff, 0x24, 0x27, 0x85, 0x2d, 0x89, 0xbf, 0x65, 0x2a, + 0xfe, 0xe0, 0x35, 0xba, 0x17, 0xe7, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x55, 0x6c, 0x23, 0xdf, 0x47, + 0xae, 0xa7, 0x6a, 0xd6, 0x28, 0xf3, 0x42, 0xc7, 0xf4, 0xe2, 0x97, 0x1e, 0x46, 0x57, 0x71, 0x83, + 0x22, 0xcb, 0x96, 0x25, 0xef, 0xc2, 0xa9, 0x11, 0x51, 0x31, 0x06, 0xe7, 0xeb, 0x8c, 0x73, 0x7e, + 0x28, 0x32, 0x30, 0x6d, 0x03, 0xb8, 0x3c, 0x58, 0xcb, 0x31, 0x38, 0xff, 0x90, 0x71, 0x4a, 0x0c, + 0xcb, 0x97, 0x14, 0x33, 0x5e, 0x83, 0xd9, 0xdb, 0xc8, 0xdd, 0x73, 0x3c, 0x76, 0x35, 0x32, 0x06, + 0xdd, 0x1b, 0x8c, 0x6e, 0x86, 0x01, 0xc9, 0x5d, 0x09, 0xe6, 0x7a, 0x05, 0x32, 0x2d, 0x4d, 0x47, + 0x63, 0x50, 0x7c, 0x99, 0x51, 0x4c, 0x61, 0x7d, 0x0c, 0x2d, 0x43, 0xbe, 0xed, 0xb0, 0xb2, 0x14, + 0x0f, 0x7f, 0x93, 0xc1, 0x73, 0x1c, 0xc3, 0x28, 0xba, 0x4e, 0xb7, 0x67, 0xe1, 0x9a, 0x15, 0x4f, + 0xf1, 0x47, 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xdc, 0xfa, 0xc7, 0x9c, 0xc2, 0x0b, 0xf9, 0xf3, + 0x0a, 0xe4, 0x1c, 0xdb, 0x3a, 0x70, 0xec, 0x71, 0x8c, 0xf8, 0x13, 0xc6, 0x00, 0x0c, 0x82, 0x09, + 0x2e, 0x43, 0x76, 0xdc, 0x85, 0xf8, 0xd3, 0x87, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, 0x19, 0x9e, + 0xa0, 0x4c, 0xc7, 0x1e, 0x83, 0xe2, 0xcf, 0x18, 0x45, 0x21, 0x04, 0x63, 0xaf, 0xe1, 0x23, 0xcf, + 0x6f, 0xa3, 0x71, 0x48, 0xde, 0xe2, 0xaf, 0xc1, 0x20, 0xcc, 0x95, 0x7b, 0xc8, 0xd6, 0xf7, 0xc7, + 0x63, 0xf8, 0x2a, 0x77, 0x25, 0xc7, 0x60, 0x8a, 0x0a, 0x4c, 0x77, 0x34, 0xd7, 0xdb, 0xd7, 0xac, + 0xb1, 0x96, 0xe3, 0xcf, 0x19, 0x47, 0x3e, 0x00, 0x31, 0x8f, 0xf4, 0xec, 0x93, 0xd0, 0x7c, 0x8d, + 0x7b, 0x24, 0x04, 0x63, 0x5b, 0xcf, 0xf3, 0xc9, 0x05, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, + 0xc5, 0x6e, 0x85, 0x19, 0x2f, 0x43, 0xd6, 0x33, 0xef, 0x8d, 0x45, 0xf3, 0x17, 0x7c, 0xa5, 0x09, + 0x00, 0x83, 0x6f, 0xc0, 0xe9, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x6f, 0x30, 0xb2, 0x85, 0x11, 0xa5, + 0x82, 0xa5, 0x84, 0x93, 0x52, 0xfe, 0x25, 0x4f, 0x09, 0x68, 0x80, 0xab, 0x81, 0x0f, 0x0a, 0x9e, + 0xd6, 0x3a, 0x99, 0xd7, 0xfe, 0x8a, 0x7b, 0x8d, 0x62, 0x23, 0x5e, 0xdb, 0x81, 0x05, 0xc6, 0x78, + 0xb2, 0x75, 0xfd, 0x26, 0x4f, 0xac, 0x14, 0xbd, 0x1b, 0x5d, 0xdd, 0x5f, 0x84, 0xc5, 0xc0, 0x9d, + 0xbc, 0x23, 0xf5, 0xd4, 0x8e, 0xd6, 0x1d, 0x83, 0xf9, 0x5b, 0x8c, 0x99, 0x67, 0xfc, 0xa0, 0xa5, + 0xf5, 0xb6, 0xb4, 0x2e, 0x26, 0xbf, 0x0e, 0x45, 0x4e, 0xde, 0xb3, 0x5d, 0xa4, 0x3b, 0x6d, 0xdb, + 0xbc, 0x87, 0x8c, 0x31, 0xa8, 0xff, 0x7a, 0x60, 0xa9, 0x76, 0x43, 0x70, 0xcc, 0x5c, 0x03, 0x31, + 0xe8, 0x55, 0x54, 0xb3, 0xd3, 0x75, 0x5c, 0x3f, 0x86, 0xf1, 0x6f, 0xf8, 0x4a, 0x05, 0xb8, 0x1a, + 0x81, 0xc9, 0x55, 0x28, 0x90, 0xe1, 0xb8, 0x21, 0xf9, 0xb7, 0x8c, 0x68, 0xba, 0x8f, 0x62, 0x89, + 0x43, 0x77, 0x3a, 0x5d, 0xcd, 0x1d, 0x27, 0xff, 0xfd, 0x1d, 0x4f, 0x1c, 0x0c, 0xc2, 0x12, 0x87, + 0x7f, 0xd0, 0x45, 0xb8, 0xda, 0x8f, 0xc1, 0xf0, 0x6d, 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, + 0x61, 0x0c, 0x8a, 0xbf, 0xe7, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0xd3, 0x2f, 0xb4, 0x2e, 0x6a, 0x9b, + 0x9e, 0xef, 0xd2, 0x3e, 0xf8, 0x78, 0xaa, 0xef, 0x3c, 0x8c, 0x36, 0x61, 0x4a, 0x08, 0x2a, 0x5f, + 0x83, 0x99, 0x81, 0x16, 0x43, 0x8a, 0xfb, 0xcd, 0x42, 0xf1, 0x97, 0x1e, 0xb1, 0x64, 0x14, 0xed, + 0x30, 0xe4, 0x4d, 0xbc, 0xee, 0xd1, 0x3e, 0x20, 0x9e, 0xec, 0xb5, 0x47, 0xc1, 0xd2, 0x47, 0xda, + 0x00, 0xf9, 0x2a, 0x4c, 0x47, 0x7a, 0x80, 0x78, 0xaa, 0x5f, 0x66, 0x54, 0xf9, 0x70, 0x0b, 0x20, + 0x5f, 0x80, 0x14, 0xae, 0xe7, 0xf1, 0xf0, 0x5f, 0x61, 0x70, 0xa2, 0x2e, 0x7f, 0x12, 0x32, 0xbc, + 0x8e, 0xc7, 0x43, 0x7f, 0x95, 0x41, 0x03, 0x08, 0x86, 0xf3, 0x1a, 0x1e, 0x0f, 0xff, 0x35, 0x0e, + 0xe7, 0x10, 0x0c, 0x1f, 0xdf, 0x85, 0xdf, 0xfd, 0xf5, 0x14, 0xcb, 0xc3, 0xdc, 0x77, 0x97, 0x61, + 0x8a, 0x15, 0xef, 0x78, 0xf4, 0x17, 0xd8, 0xc3, 0x39, 0x42, 0x7e, 0x19, 0xd2, 0x63, 0x3a, 0xfc, + 0x37, 0x18, 0x94, 0xea, 0xcb, 0x15, 0xc8, 0x85, 0x0a, 0x76, 0x3c, 0xfc, 0x37, 0x19, 0x3c, 0x8c, + 0xc2, 0xa6, 0xb3, 0x82, 0x1d, 0x4f, 0xf0, 0x5b, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0xb5, 0x3a, + 0x1e, 0xfd, 0xdb, 0xdc, 0xeb, 0x1c, 0x22, 0x5f, 0x81, 0x6c, 0x90, 0x7f, 0xe3, 0xf1, 0xbf, 0xc3, + 0xf0, 0x7d, 0x0c, 0xf6, 0x40, 0x28, 0xff, 0xc7, 0x53, 0xfc, 0x2e, 0xf7, 0x40, 0x08, 0x85, 0xb7, + 0xd1, 0x60, 0x4d, 0x8f, 0x67, 0xfa, 0x3d, 0xbe, 0x8d, 0x06, 0x4a, 0x3a, 0x5e, 0x4d, 0x92, 0x06, + 0xe3, 0x29, 0x7e, 0x9f, 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x0c, 0x16, 0xc9, 0x78, 0x8e, 0x3f, 0xe0, + 0x66, 0x0c, 0xd4, 0x48, 0xb9, 0x01, 0xd2, 0x70, 0x81, 0x8c, 0xe7, 0xfb, 0x22, 0xe3, 0x9b, 0x1d, + 0xaa, 0x8f, 0xf2, 0xab, 0xb0, 0x30, 0xba, 0x38, 0xc6, 0xb3, 0x7e, 0xe9, 0xd1, 0xc0, 0x71, 0x26, + 0x5c, 0x1b, 0xe5, 0x9d, 0x7e, 0x96, 0x0d, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x1f, 0x45, 0x13, 0x6d, + 0xb8, 0x2e, 0xca, 0x65, 0x80, 0x7e, 0x4d, 0x8a, 0xe7, 0x7a, 0x83, 0x71, 0x85, 0x40, 0x78, 0x6b, + 0xb0, 0x92, 0x14, 0x8f, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xaf, 0x46, 0xf1, 0xe8, + 0x37, 0xf9, 0xd6, 0xe0, 0x10, 0xf9, 0x32, 0x64, 0xec, 0x9e, 0x65, 0xe1, 0xd8, 0x92, 0x8e, 0xff, + 0x19, 0x51, 0xf1, 0xdf, 0x1f, 0x33, 0x30, 0x07, 0xc8, 0x17, 0x20, 0x8d, 0x3a, 0x7b, 0xc8, 0x88, + 0x43, 0xfe, 0xc7, 0x63, 0x9e, 0x4f, 0xb0, 0xb6, 0x7c, 0x05, 0x80, 0x1e, 0xa6, 0xc9, 0x57, 0xa2, + 0x18, 0xec, 0x7f, 0x3e, 0x66, 0xbf, 0x50, 0xe8, 0x43, 0xfa, 0x04, 0xf4, 0xf7, 0x0e, 0xc7, 0x13, + 0x3c, 0x8c, 0x12, 0x90, 0x03, 0xf8, 0x2b, 0x30, 0x75, 0xd3, 0x73, 0x6c, 0x5f, 0x6b, 0xc7, 0xa1, + 0xff, 0x8b, 0xa1, 0xb9, 0x3e, 0x76, 0x58, 0xc7, 0x71, 0x91, 0xaf, 0xb5, 0xbd, 0x38, 0xec, 0x7f, + 0x33, 0x6c, 0x00, 0xc0, 0x60, 0x5d, 0xf3, 0xfc, 0x71, 0xde, 0xfb, 0x7f, 0x38, 0x98, 0x03, 0xb0, + 0xd1, 0xf8, 0xff, 0x5b, 0xe8, 0x20, 0x0e, 0xfb, 0x3e, 0x37, 0x9a, 0xe9, 0xcb, 0x9f, 0x84, 0x2c, + 0xfe, 0x97, 0xfe, 0x6a, 0x27, 0x06, 0xfc, 0xbf, 0x0c, 0xdc, 0x47, 0xe0, 0x27, 0x7b, 0xbe, 0xe1, + 0x9b, 0xf1, 0xce, 0xfe, 0x3f, 0xb6, 0xd2, 0x5c, 0x5f, 0x2e, 0x43, 0xce, 0xf3, 0x0d, 0xa3, 0xc7, + 0x3a, 0x9a, 0x18, 0xf8, 0x8f, 0x1e, 0x07, 0x87, 0xdc, 0x00, 0xb3, 0x76, 0x76, 0xf4, 0x65, 0x1d, + 0x6c, 0x38, 0x1b, 0x0e, 0xbd, 0xa6, 0x83, 0x6f, 0x08, 0x50, 0x68, 0x99, 0x16, 0x5a, 0x35, 0x1c, + 0x9f, 0x5d, 0xab, 0xe5, 0xf0, 0xd8, 0x70, 0x7c, 0xbc, 0xde, 0x8b, 0x27, 0xbb, 0x92, 0x5b, 0x9e, + 0x05, 0x61, 0x4b, 0xca, 0x83, 0xa0, 0xb1, 0x5f, 0x93, 0x08, 0xda, 0xda, 0xe6, 0xdb, 0x0f, 0x4a, + 0x13, 0xdf, 0x7f, 0x50, 0x9a, 0xf8, 0x97, 0x07, 0xa5, 0x89, 0x77, 0x1e, 0x94, 0x84, 0xf7, 0x1e, + 0x94, 0x84, 0xf7, 0x1f, 0x94, 0x84, 0x1f, 0x3f, 0x28, 0x09, 0xf7, 0x0f, 0x4b, 0xc2, 0x57, 0x0f, + 0x4b, 0xc2, 0x37, 0x0f, 0x4b, 0xc2, 0x77, 0x0e, 0x4b, 0xc2, 0x77, 0x0f, 0x4b, 0xc2, 0xdb, 0x87, + 0xa5, 0x89, 0xef, 0x1f, 0x96, 0x26, 0xde, 0x39, 0x2c, 0x09, 0xef, 0x1d, 0x96, 0x26, 0xde, 0x3f, + 0x2c, 0x09, 0x3f, 0x3e, 0x2c, 0x4d, 0xdc, 0xff, 0x61, 0x69, 0xe2, 0x27, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x7c, 0xbe, 0x1b, 0xf8, 0x0c, 0x2f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -406,27 +426,10 @@ func valueToGoStringFileDot(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringFileDot(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedM(r randyFileDot, easy bool) *M { this := &M{} if r.Intn(10) != 0 { - v1 := randStringFileDot(r) + v1 := string(randStringFileDot(r)) this.A = &v1 } if !easy && r.Intn(10) != 0 { @@ -461,7 +464,7 @@ func randStringFileDot(r randyFileDot) string { } return string(tmps) } -func randUnrecognizedFileDot(r randyFileDot, maxFieldNumber int) (data []byte) { +func randUnrecognizedFileDot(r randyFileDot, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -469,43 +472,43 @@ func randUnrecognizedFileDot(r randyFileDot, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldFileDot(data, r, fieldNumber, wire) + dAtA = randFieldFileDot(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldFileDot(data []byte, r randyFileDot, fieldNumber int, wire int) []byte { +func randFieldFileDot(dAtA []byte, r randyFileDot, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateFileDot(data, uint64(key)) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateFileDot(data, uint64(v3)) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateFileDot(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateFileDot(data, uint64(key)) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateFileDot(data, uint64(ll)) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateFileDot(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateFileDot(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateFileDot(data []byte, v uint64) []byte { +func encodeVarintPopulateFileDot(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *M) Size() (n int) { var l int @@ -553,16 +556,20 @@ func valueToStringFileDot(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("file.dot.proto", fileDescriptorFileDot) } + var fileDescriptorFileDot = []byte{ - // 158 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0xcb, 0xcc, 0x49, - 0xd5, 0x4b, 0xc9, 0x2f, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x06, 0xf1, 0x81, 0xdc, - 0xbc, 0xc4, 0xdc, 0x54, 0x29, 0xdd, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, - 0xfd, 0xf4, 0xfc, 0xf4, 0x7c, 0x7d, 0xb0, 0x9a, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, - 0x20, 0x7a, 0x95, 0x04, 0xb9, 0x18, 0x7d, 0x85, 0x78, 0xb8, 0x18, 0x13, 0x25, 0x18, 0x15, 0x18, - 0x35, 0x38, 0x83, 0x18, 0x13, 0x9d, 0x7c, 0x4e, 0x3c, 0x94, 0x63, 0xb8, 0x00, 0xc4, 0x37, 0x80, - 0xf8, 0xc1, 0x43, 0x39, 0xc6, 0x17, 0x40, 0xfc, 0x01, 0x88, 0x7f, 0x00, 0x71, 0xc3, 0x23, 0x39, - 0xc6, 0x15, 0x40, 0xbc, 0x01, 0x88, 0x77, 0x00, 0xf1, 0x01, 0x20, 0x3e, 0xf1, 0x08, 0xa8, 0x1e, - 0x88, 0x1f, 0x00, 0xd9, 0x2f, 0x80, 0xf4, 0x07, 0x20, 0xfd, 0x03, 0x48, 0x37, 0x3c, 0x96, 0x63, - 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x59, 0x32, 0x8a, 0xad, 0x00, 0x00, 0x00, + // 179 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x24, 0xcb, 0xaf, 0x6e, 0xc2, 0x50, + 0x1c, 0xc5, 0xf1, 0xdf, 0x91, 0xeb, 0x96, 0x25, 0xab, 0x5a, 0x26, 0x4e, 0x96, 0xa9, 0x99, 0xb5, + 0xef, 0x30, 0x0d, 0x86, 0x37, 0x68, 0xe9, 0x1f, 0x9a, 0x50, 0x2e, 0x21, 0xb7, 0xbe, 0x8f, 0x83, + 0x44, 0x22, 0x91, 0x95, 0x95, 0xc8, 0xde, 0x1f, 0xa6, 0xb2, 0xb2, 0x92, 0x70, 0x71, 0xe7, 0x93, + 0x9c, 0x6f, 0xf0, 0x5e, 0x54, 0xdb, 0x3c, 0xca, 0x8c, 0x8d, 0xf6, 0x07, 0x63, 0x4d, 0xf8, 0xfa, + 0x70, 0x66, 0xec, 0x2e, 0xa9, 0xf3, 0xaf, 0xbf, 0xb2, 0xb2, 0x9b, 0x26, 0x8d, 0xd6, 0xa6, 0x8e, + 0x4b, 0x53, 0x9a, 0xd8, 0x7f, 0xd2, 0xa6, 0xf0, 0xf2, 0xf0, 0xeb, 0xd9, 0xfe, 0x7c, 0x04, 0x58, + 0x86, 0x6f, 0x01, 0x92, 0x4f, 0x7c, 0xe3, 0xf7, 0x65, 0x85, 0xe4, 0x7f, 0xd1, 0x39, 0x4a, 0xef, + 0x28, 0x57, 0x47, 0x19, 0x1c, 0x31, 0x3a, 0x62, 0x72, 0xc4, 0xec, 0x88, 0x56, 0x89, 0xa3, 0x12, + 0x27, 0x25, 0xce, 0x4a, 0x5c, 0x94, 0xe8, 0x94, 0xd2, 0x2b, 0x65, 0x50, 0x62, 0x54, 0xca, 0xa4, + 0xc4, 0xac, 0x94, 0xf6, 0x46, 0xb9, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x59, 0x32, 0x8a, 0xad, + 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.proto b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.proto index d2dc7928..e1a047c4 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.proto +++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2016, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go b/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go index 5668122f..8031fc9e 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go @@ -33,18 +33,18 @@ func TestMProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -72,11 +72,11 @@ func BenchmarkMProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -86,11 +86,11 @@ func BenchmarkMProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedM(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedM(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &M{} b.ResetTimer() @@ -128,9 +128,9 @@ func TestMProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -145,9 +145,9 @@ func TestMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -164,12 +164,12 @@ func TestFileDotDescription(t *testing.T) { func TestMVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -202,13 +202,13 @@ func TestMSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedM(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/Makefile b/vendor/github.com/gogo/protobuf/test/fuzztests/Makefile index 2299ee10..aa82b00f 100644 --- a/vendor/github.com/gogo/protobuf/test/fuzztests/Makefile +++ b/vendor/github.com/gogo/protobuf/test/fuzztests/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2015, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -28,4 +28,4 @@ regenerate: go install github.com/gogo/protobuf/protoc-gen-gogofast - protoc --proto_path=../../../../../:../../protobuf/:. --gogofast_out=. fuzz.proto \ No newline at end of file + protoc --proto_path=../../../../../:../../protobuf/:. --gogofast_out=. fuzz.proto diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go index 0f3b1e01..834f11a1 100644 --- a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go +++ b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go @@ -22,9 +22,6 @@ import math "math" import _ "github.com/gogo/protobuf/gogoproto" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -36,7 +33,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Nil struct { XXX_unrecognized []byte `json:"-"` @@ -48,19 +47,19 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorFuzz, []int{0} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -161,21 +160,21 @@ func (m *NinRepPackedNative) GetField13() []bool { } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -290,16 +289,16 @@ func (m *NinOptNative) GetField15() []byte { } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NinOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NinOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -554,521 +553,504 @@ func valueToGoStringFuzz(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringFuzz(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Nil) Marshal() (data []byte, err error) { +func (m *Nil) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nil) MarshalTo(data []byte) (int, error) { +func (m *Nil) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinRepPackedNative) Marshal() (data []byte, err error) { +func (m *NinRepPackedNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinRepPackedNative) MarshalTo(data []byte) (int, error) { +func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field1) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field1)*8)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f1 := math.Float64bits(float64(num)) - data[i] = uint8(f1) + dAtA[i] = uint8(f1) i++ - data[i] = uint8(f1 >> 8) + dAtA[i] = uint8(f1 >> 8) i++ - data[i] = uint8(f1 >> 16) + dAtA[i] = uint8(f1 >> 16) i++ - data[i] = uint8(f1 >> 24) + dAtA[i] = uint8(f1 >> 24) i++ - data[i] = uint8(f1 >> 32) + dAtA[i] = uint8(f1 >> 32) i++ - data[i] = uint8(f1 >> 40) + dAtA[i] = uint8(f1 >> 40) i++ - data[i] = uint8(f1 >> 48) + dAtA[i] = uint8(f1 >> 48) i++ - data[i] = uint8(f1 >> 56) + dAtA[i] = uint8(f1 >> 56) i++ } } if len(m.Field2) > 0 { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field2)*4)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f2 := math.Float32bits(float32(num)) - data[i] = uint8(f2) + dAtA[i] = uint8(f2) i++ - data[i] = uint8(f2 >> 8) + dAtA[i] = uint8(f2 >> 8) i++ - data[i] = uint8(f2 >> 16) + dAtA[i] = uint8(f2 >> 16) i++ - data[i] = uint8(f2 >> 24) + dAtA[i] = uint8(f2 >> 24) i++ } } if len(m.Field3) > 0 { - data4 := make([]byte, len(m.Field3)*10) + dAtA4 := make([]byte, len(m.Field3)*10) var j3 int for _, num1 := range m.Field3 { num := uint64(num1) for num >= 1<<7 { - data4[j3] = uint8(uint64(num)&0x7f | 0x80) + dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j3++ } - data4[j3] = uint8(num) + dAtA4[j3] = uint8(num) j3++ } - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintFuzz(data, i, uint64(j3)) - i += copy(data[i:], data4[:j3]) + i = encodeVarintFuzz(dAtA, i, uint64(j3)) + i += copy(dAtA[i:], dAtA4[:j3]) } if len(m.Field4) > 0 { - data6 := make([]byte, len(m.Field4)*10) + dAtA6 := make([]byte, len(m.Field4)*10) var j5 int for _, num1 := range m.Field4 { num := uint64(num1) for num >= 1<<7 { - data6[j5] = uint8(uint64(num)&0x7f | 0x80) + dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j5++ } - data6[j5] = uint8(num) + dAtA6[j5] = uint8(num) j5++ } - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintFuzz(data, i, uint64(j5)) - i += copy(data[i:], data6[:j5]) + i = encodeVarintFuzz(dAtA, i, uint64(j5)) + i += copy(dAtA[i:], dAtA6[:j5]) } if len(m.Field5) > 0 { - data8 := make([]byte, len(m.Field5)*10) + dAtA8 := make([]byte, len(m.Field5)*10) var j7 int for _, num := range m.Field5 { for num >= 1<<7 { - data8[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j7++ } - data8[j7] = uint8(num) + dAtA8[j7] = uint8(num) j7++ } - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintFuzz(data, i, uint64(j7)) - i += copy(data[i:], data8[:j7]) + i = encodeVarintFuzz(dAtA, i, uint64(j7)) + i += copy(dAtA[i:], dAtA8[:j7]) } if len(m.Field6) > 0 { - data10 := make([]byte, len(m.Field6)*10) + dAtA10 := make([]byte, len(m.Field6)*10) var j9 int for _, num := range m.Field6 { for num >= 1<<7 { - data10[j9] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 j9++ } - data10[j9] = uint8(num) + dAtA10[j9] = uint8(num) j9++ } - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintFuzz(data, i, uint64(j9)) - i += copy(data[i:], data10[:j9]) + i = encodeVarintFuzz(dAtA, i, uint64(j9)) + i += copy(dAtA[i:], dAtA10[:j9]) } if len(m.Field7) > 0 { - data11 := make([]byte, len(m.Field7)*5) + dAtA11 := make([]byte, len(m.Field7)*5) var j12 int for _, num := range m.Field7 { x13 := (uint32(num) << 1) ^ uint32((num >> 31)) for x13 >= 1<<7 { - data11[j12] = uint8(uint64(x13)&0x7f | 0x80) + dAtA11[j12] = uint8(uint64(x13)&0x7f | 0x80) j12++ x13 >>= 7 } - data11[j12] = uint8(x13) + dAtA11[j12] = uint8(x13) j12++ } - data[i] = 0x3a + dAtA[i] = 0x3a i++ - i = encodeVarintFuzz(data, i, uint64(j12)) - i += copy(data[i:], data11[:j12]) + i = encodeVarintFuzz(dAtA, i, uint64(j12)) + i += copy(dAtA[i:], dAtA11[:j12]) } if len(m.Field8) > 0 { var j14 int - data16 := make([]byte, len(m.Field8)*10) + dAtA16 := make([]byte, len(m.Field8)*10) for _, num := range m.Field8 { x15 := (uint64(num) << 1) ^ uint64((num >> 63)) for x15 >= 1<<7 { - data16[j14] = uint8(uint64(x15)&0x7f | 0x80) + dAtA16[j14] = uint8(uint64(x15)&0x7f | 0x80) j14++ x15 >>= 7 } - data16[j14] = uint8(x15) + dAtA16[j14] = uint8(x15) j14++ } - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintFuzz(data, i, uint64(j14)) - i += copy(data[i:], data16[:j14]) + i = encodeVarintFuzz(dAtA, i, uint64(j14)) + i += copy(dAtA[i:], dAtA16[:j14]) } if len(m.Field9) > 0 { - data[i] = 0x4a + dAtA[i] = 0x4a i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field9)*4)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field10) > 0 { - data[i] = 0x52 + dAtA[i] = 0x52 i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field10)*4)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ } } if len(m.Field11) > 0 { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field11)*8)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field12) > 0 { - data[i] = 0x62 + dAtA[i] = 0x62 i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field12)*8)) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - data[i] = uint8(num) + dAtA[i] = uint8(num) i++ - data[i] = uint8(num >> 8) + dAtA[i] = uint8(num >> 8) i++ - data[i] = uint8(num >> 16) + dAtA[i] = uint8(num >> 16) i++ - data[i] = uint8(num >> 24) + dAtA[i] = uint8(num >> 24) i++ - data[i] = uint8(num >> 32) + dAtA[i] = uint8(num >> 32) i++ - data[i] = uint8(num >> 40) + dAtA[i] = uint8(num >> 40) i++ - data[i] = uint8(num >> 48) + dAtA[i] = uint8(num >> 48) i++ - data[i] = uint8(num >> 56) + dAtA[i] = uint8(num >> 56) i++ } } if len(m.Field13) > 0 { - data[i] = 0x6a + dAtA[i] = 0x6a i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field13))) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field13))) for _, b := range m.Field13 { if b { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Fuzz(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Fuzz(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Fuzz(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Fuzz(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintFuzz(data, i, uint64(*m.Field3)) + i = encodeVarintFuzz(dAtA, i, uint64(*m.Field3)) } if m.Field4 != nil { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintFuzz(data, i, uint64(*m.Field4)) + i = encodeVarintFuzz(dAtA, i, uint64(*m.Field4)) } if m.Field5 != nil { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintFuzz(data, i, uint64(*m.Field5)) + i = encodeVarintFuzz(dAtA, i, uint64(*m.Field5)) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintFuzz(data, i, uint64(*m.Field6)) + i = encodeVarintFuzz(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintFuzz(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintFuzz(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintFuzz(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintFuzz(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 != nil { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Fuzz(data, i, uint32(*m.Field9)) + i = encodeFixed32Fuzz(dAtA, i, uint32(*m.Field9)) } if m.Field10 != nil { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Fuzz(data, i, uint32(*m.Field10)) + i = encodeFixed32Fuzz(dAtA, i, uint32(*m.Field10)) } if m.Field11 != nil { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Fuzz(data, i, uint64(*m.Field11)) + i = encodeFixed64Fuzz(dAtA, i, uint64(*m.Field11)) } if m.Field12 != nil { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Fuzz(data, i, uint64(*m.Field12)) + i = encodeFixed64Fuzz(dAtA, i, uint64(*m.Field12)) } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintFuzz(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintFuzz(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptStruct) Marshal() (data []byte, err error) { +func (m *NinOptStruct) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptStruct) MarshalTo(data []byte) (int, error) { +func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Fuzz(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Fuzz(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 != nil { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Fuzz(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Fuzz(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintFuzz(data, i, uint64(m.Field3.Size())) - n17, err := m.Field3.MarshalTo(data[i:]) + i = encodeVarintFuzz(dAtA, i, uint64(m.Field3.Size())) + n17, err := m.Field3.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n17 } if m.Field4 != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintFuzz(data, i, uint64(m.Field4.Size())) - n18, err := m.Field4.MarshalTo(data[i:]) + i = encodeVarintFuzz(dAtA, i, uint64(m.Field4.Size())) + n18, err := m.Field4.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n18 } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintFuzz(data, i, uint64(*m.Field6)) + i = encodeVarintFuzz(dAtA, i, uint64(*m.Field6)) } if m.Field7 != nil { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintFuzz(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintFuzz(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 != nil { - data[i] = 0x42 + dAtA[i] = 0x42 i++ - i = encodeVarintFuzz(data, i, uint64(m.Field8.Size())) - n19, err := m.Field8.MarshalTo(data[i:]) + i = encodeVarintFuzz(dAtA, i, uint64(m.Field8.Size())) + n19, err := m.Field8.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n19 } if m.Field13 != nil { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 != nil { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintFuzz(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintFuzz(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintFuzz(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Fuzz(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Fuzz(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Fuzz(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Fuzz(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintFuzz(data []byte, offset int, v uint64) int { +func encodeVarintFuzz(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *Nil) Size() (n int) { @@ -1265,8 +1247,8 @@ func sovFuzz(x uint64) (n int) { func sozFuzz(x uint64) (n int) { return sovFuzz(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *Nil) Unmarshal(data []byte) error { - l := len(data) +func (m *Nil) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1278,7 +1260,7 @@ func (m *Nil) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1296,7 +1278,7 @@ func (m *Nil) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipFuzz(data[iNdEx:]) + skippy, err := skipFuzz(dAtA[iNdEx:]) if err != nil { return err } @@ -1306,7 +1288,7 @@ func (m *Nil) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1316,8 +1298,8 @@ func (m *Nil) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1329,7 +1311,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1346,7 +1328,23 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1355,7 +1353,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1375,38 +1373,34 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1415,7 +1409,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1435,30 +1429,35 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFuzz + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1467,7 +1466,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1490,7 +1489,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1499,8 +1498,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFuzz @@ -1508,19 +1511,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1529,7 +1528,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1552,7 +1551,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1561,8 +1560,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFuzz @@ -1570,19 +1573,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1591,7 +1590,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1614,7 +1613,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -1623,8 +1622,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFuzz @@ -1632,19 +1635,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1653,7 +1652,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1676,7 +1675,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1685,8 +1684,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFuzz @@ -1694,19 +1697,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1715,7 +1715,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1738,7 +1738,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1748,8 +1748,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFuzz @@ -1757,20 +1761,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1779,7 +1779,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1802,7 +1802,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1812,29 +1812,22 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowFuzz - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1843,7 +1836,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1863,28 +1856,28 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1893,7 +1886,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1913,28 +1906,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1943,7 +1940,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1963,36 +1960,36 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2001,7 +1998,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2021,36 +2018,38 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFuzz + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2059,7 +2058,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2082,7 +2081,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2091,29 +2090,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowFuzz - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipFuzz(data[iNdEx:]) + skippy, err := skipFuzz(dAtA[iNdEx:]) if err != nil { return err } @@ -2123,7 +2105,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2133,8 +2115,8 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2146,7 +2128,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2171,14 +2153,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -2190,10 +2172,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -2208,7 +2190,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2228,7 +2210,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2248,7 +2230,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -2268,7 +2250,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2288,7 +2270,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2309,7 +2291,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2328,10 +2310,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -2342,10 +2324,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -2356,14 +2338,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -2374,14 +2356,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -2395,7 +2377,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2416,7 +2398,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2431,7 +2413,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -2446,7 +2428,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2460,14 +2442,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipFuzz(data[iNdEx:]) + skippy, err := skipFuzz(dAtA[iNdEx:]) if err != nil { return err } @@ -2477,7 +2459,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2487,8 +2469,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptStruct) Unmarshal(data []byte) error { - l := len(data) +func (m *NinOptStruct) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2500,7 +2482,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2525,14 +2507,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -2544,10 +2526,10 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -2562,7 +2544,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2579,7 +2561,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field3 == nil { m.Field3 = &NinOptNative{} } - if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2595,7 +2577,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2612,7 +2594,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field4 == nil { m.Field4 = &NinOptNative{} } - if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2628,7 +2610,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2648,7 +2630,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2669,7 +2651,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2686,7 +2668,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if m.Field8 == nil { m.Field8 = &NinOptNative{} } - if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2702,7 +2684,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2723,7 +2705,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2738,7 +2720,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex case 15: @@ -2753,7 +2735,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2767,14 +2749,14 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipFuzz(data[iNdEx:]) + skippy, err := skipFuzz(dAtA[iNdEx:]) if err != nil { return err } @@ -2784,7 +2766,7 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2794,8 +2776,8 @@ func (m *NinOptStruct) Unmarshal(data []byte) error { } return nil } -func skipFuzz(data []byte) (n int, err error) { - l := len(data) +func skipFuzz(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2806,7 +2788,7 @@ func skipFuzz(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2824,7 +2806,7 @@ func skipFuzz(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2841,7 +2823,7 @@ func skipFuzz(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2864,7 +2846,7 @@ func skipFuzz(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2875,7 +2857,7 @@ func skipFuzz(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipFuzz(data[start:]) + next, err := skipFuzz(dAtA[start:]) if err != nil { return 0, err } @@ -2899,34 +2881,36 @@ var ( ErrIntOverflowFuzz = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("fuzz.proto", fileDescriptorFuzz) } + var fileDescriptorFuzz = []byte{ - // 439 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0xd3, 0x50, - 0x14, 0xc7, 0x71, 0x1d, 0x3b, 0xb1, 0x93, 0xdb, 0x84, 0xa4, 0x1e, 0x2e, 0x47, 0x15, 0xaa, 0x50, - 0xa6, 0xbb, 0x60, 0x37, 0xfe, 0xd3, 0xa6, 0x6b, 0x07, 0xc6, 0x80, 0xca, 0x13, 0xb4, 0xa9, 0x13, - 0x2c, 0x0a, 0x8e, 0xda, 0x6b, 0x86, 0x8e, 0x4c, 0x3c, 0x1a, 0x1b, 0x3c, 0x02, 0xf0, 0x04, 0x3c, - 0x02, 0x07, 0x87, 0x9c, 0x7b, 0x32, 0x55, 0x91, 0x3a, 0x58, 0xb2, 0xf3, 0x89, 0x15, 0xdd, 0xef, - 0x4f, 0x51, 0x6a, 0xd9, 0x3c, 0x3c, 0xc4, 0xeb, 0xbb, 0xda, 0xd6, 0x51, 0xff, 0xdf, 0xbd, 0x2d, - 0xef, 0xed, 0xfd, 0xd1, 0xab, 0x55, 0x65, 0xdf, 0x37, 0xd7, 0xf1, 0xa2, 0xfe, 0x98, 0xac, 0xea, - 0x55, 0x9d, 0xb4, 0xdf, 0xb8, 0x6e, 0x96, 0xed, 0x53, 0xfb, 0xd0, 0xde, 0x6d, 0xde, 0x9c, 0x74, - 0x95, 0x3f, 0xaf, 0x6e, 0x27, 0x5f, 0x7d, 0x15, 0xcd, 0xab, 0x4f, 0x97, 0xe5, 0xfa, 0xed, 0xd5, - 0xe2, 0x43, 0x79, 0x33, 0xbf, 0xb2, 0xd5, 0xe7, 0x32, 0x3a, 0x52, 0xc1, 0xeb, 0xaa, 0xbc, 0xbd, - 0x99, 0x22, 0xbc, 0xf4, 0x0d, 0x5c, 0x78, 0x63, 0xb8, 0x0c, 0x96, 0xed, 0x27, 0x6c, 0x29, 0x7a, - 0x64, 0x9e, 0xb0, 0x94, 0x2d, 0x43, 0x9f, 0xac, 0x2b, 0x2c, 0x63, 0xcb, 0xb1, 0x43, 0xe6, 0x0b, - 0xcb, 0xd9, 0x0a, 0xec, 0x92, 0x0d, 0x85, 0x15, 0x6c, 0xa7, 0x18, 0x90, 0x75, 0x84, 0x9d, 0xb2, - 0x9d, 0x61, 0x48, 0x76, 0x28, 0xec, 0x8c, 0x6d, 0x86, 0x3d, 0xb2, 0x48, 0xd8, 0x8c, 0xed, 0x1c, - 0xfb, 0x64, 0xa1, 0xb0, 0xf3, 0xe8, 0x85, 0x0a, 0x37, 0x67, 0x3f, 0x41, 0x45, 0x38, 0x6a, 0x31, - 0xdc, 0x1c, 0xfe, 0xc4, 0xe9, 0x14, 0x0f, 0x48, 0x03, 0xa9, 0x53, 0xa7, 0x29, 0x0e, 0x48, 0xc7, - 0x52, 0x53, 0xa7, 0x19, 0x0e, 0x49, 0x7b, 0x52, 0xb3, 0xc9, 0x17, 0x5f, 0x0d, 0x68, 0x8a, 0x37, - 0x6b, 0xfb, 0x7f, 0x04, 0x2d, 0x46, 0x00, 0xe3, 0x06, 0xd0, 0x62, 0x00, 0x30, 0x1e, 0xc7, 0xd7, - 0x22, 0x3e, 0x98, 0x2e, 0x87, 0xd7, 0x22, 0x3c, 0x18, 0x9f, 0xa3, 0x6b, 0x11, 0x1d, 0xcc, 0x90, - 0x83, 0x6b, 0x11, 0x1c, 0x4c, 0x87, 0x63, 0x6b, 0x11, 0x1b, 0xcc, 0x21, 0x87, 0xd6, 0x22, 0x34, - 0x98, 0x88, 0x23, 0x6b, 0x11, 0x19, 0x4c, 0xc8, 0x81, 0x51, 0x06, 0x06, 0x33, 0x72, 0x71, 0x51, - 0xc6, 0x05, 0x13, 0xb8, 0xb0, 0x28, 0xc3, 0x82, 0x19, 0xbb, 0xa8, 0x28, 0xa3, 0x82, 0xe9, 0x71, - 0x50, 0x27, 0x39, 0x3e, 0x23, 0xe9, 0x6f, 0x25, 0x77, 0x52, 0xe0, 0x88, 0x64, 0xb0, 0x95, 0x62, - 0xf2, 0xdd, 0xdb, 0x8e, 0xf0, 0xce, 0xde, 0x35, 0x0b, 0xbb, 0xf7, 0x08, 0xc9, 0xce, 0x08, 0x07, - 0xe9, 0xf3, 0x98, 0xff, 0xa2, 0xb1, 0x5c, 0x97, 0xd7, 0x49, 0x76, 0xd6, 0x79, 0xf4, 0x85, 0x7c, - 0xef, 0x79, 0x92, 0x9d, 0x79, 0x1e, 0xfd, 0x81, 0xd9, 0xd3, 0x16, 0xbd, 0x18, 0xff, 0xf9, 0x75, - 0x0c, 0xdf, 0x7e, 0x1f, 0xc3, 0x0f, 0xba, 0x7e, 0xd2, 0xf5, 0x37, 0x00, 0x00, 0xff, 0xff, 0xce, - 0xa6, 0x95, 0x94, 0xc1, 0x04, 0x00, 0x00, + // 445 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0x1a, 0x41, + 0x10, 0xc7, 0x71, 0xcd, 0x0d, 0x7f, 0xd7, 0x10, 0xf0, 0x15, 0x9b, 0x91, 0x15, 0xa1, 0x15, 0xd5, + 0x34, 0xe1, 0xc2, 0x71, 0xd8, 0xb8, 0x75, 0x91, 0x92, 0x44, 0xce, 0x13, 0xd8, 0xf8, 0x4c, 0x4e, + 0x71, 0x7c, 0xc8, 0x5e, 0x52, 0xb8, 0x4c, 0x95, 0x47, 0x4b, 0x97, 0x3c, 0x42, 0xc2, 0x13, 0xe4, + 0x11, 0xa2, 0x9c, 0xcd, 0xec, 0x50, 0x59, 0x48, 0xe9, 0xee, 0xf6, 0xc3, 0x0a, 0xf1, 0xfd, 0x09, + 0x63, 0xae, 0xd7, 0x0f, 0x0f, 0xa3, 0xd5, 0x5d, 0xe9, 0xcb, 0xb8, 0xfd, 0xef, 0xd9, 0xe7, 0xf7, + 0xfe, 0xfe, 0xe8, 0xf5, 0xb2, 0xf0, 0x1f, 0xd7, 0x97, 0xa3, 0x45, 0xf9, 0x39, 0x59, 0x96, 0xcb, + 0x32, 0xa9, 0x3e, 0x71, 0xb9, 0xbe, 0xae, 0xde, 0xaa, 0x97, 0xea, 0xe9, 0xf1, 0xe6, 0xb0, 0x6e, + 0x70, 0x5e, 0xdc, 0x0c, 0xbf, 0xa1, 0x89, 0xe7, 0xc5, 0xed, 0x79, 0xbe, 0x7a, 0x7f, 0xb1, 0xf8, + 0x94, 0x5f, 0xcd, 0x2f, 0x7c, 0xf1, 0x25, 0x8f, 0x8f, 0x4c, 0xe3, 0x6d, 0x91, 0xdf, 0x5c, 0x8d, + 0x09, 0x1c, 0x32, 0x9c, 0x45, 0x7d, 0x38, 0x7f, 0x3a, 0x11, 0x4b, 0x29, 0x72, 0xc8, 0x91, 0xb2, + 0x54, 0x6c, 0x42, 0xe8, 0x90, 0xeb, 0xca, 0x26, 0x62, 0x19, 0xd5, 0x1c, 0x32, 0x2a, 0xcb, 0xc4, + 0xa6, 0x54, 0x77, 0xc8, 0x5d, 0x65, 0x53, 0xb1, 0x63, 0x6a, 0x38, 0xe4, 0x9a, 0xb2, 0x63, 0xb1, + 0x13, 0x6a, 0x3a, 0xe4, 0x43, 0x65, 0x27, 0x62, 0x33, 0x6a, 0x39, 0xe4, 0x58, 0xd9, 0x4c, 0xec, + 0x94, 0xda, 0x0e, 0xb9, 0xa9, 0xec, 0x34, 0x7e, 0x65, 0x9a, 0x8f, 0xbf, 0xf4, 0x0d, 0x19, 0x87, + 0xdc, 0xab, 0x70, 0x7b, 0x14, 0x74, 0x4c, 0x07, 0x0e, 0xb9, 0xa1, 0x75, 0x1c, 0x34, 0xa5, 0x8e, + 0x43, 0xee, 0x6b, 0x4d, 0x83, 0x4e, 0xa8, 0xeb, 0x90, 0x5b, 0x5a, 0x27, 0xc3, 0xaf, 0x68, 0x3a, + 0xf3, 0xe2, 0xf6, 0xdd, 0xca, 0x3f, 0x8d, 0x60, 0xd5, 0x08, 0xc0, 0x61, 0x00, 0xab, 0x06, 0x00, + 0x8e, 0x24, 0xbe, 0x55, 0xf1, 0x81, 0xeb, 0x12, 0xde, 0xaa, 0xf0, 0xc0, 0x28, 0xd1, 0xad, 0x8a, + 0x0e, 0xdc, 0x95, 0xe0, 0x56, 0x05, 0x07, 0xae, 0x49, 0x6c, 0xab, 0x62, 0x03, 0x1f, 0x4a, 0x68, + 0xab, 0x42, 0x03, 0xc7, 0x12, 0xd9, 0xaa, 0xc8, 0xc0, 0x4d, 0x09, 0x4c, 0x3a, 0x30, 0x70, 0x2f, + 0xc4, 0x25, 0x1d, 0x17, 0xb8, 0x11, 0xc2, 0x92, 0x0e, 0x0b, 0xdc, 0x0f, 0x51, 0x49, 0x47, 0x05, + 0x6e, 0x49, 0xd0, 0x20, 0x19, 0xbd, 0x70, 0xc0, 0xed, 0xad, 0x64, 0x41, 0xa6, 0xd4, 0x73, 0xc0, + 0x9d, 0xad, 0x4c, 0x87, 0x3f, 0xa2, 0xed, 0x08, 0x1f, 0xfc, 0xdd, 0x7a, 0xe1, 0xf7, 0x1e, 0x21, + 0xd9, 0x19, 0xe1, 0x20, 0x7d, 0x39, 0x92, 0xbf, 0xe8, 0x48, 0xaf, 0x2b, 0xeb, 0x24, 0x3b, 0xeb, + 0x3c, 0x7b, 0x21, 0xdb, 0x7b, 0x9e, 0x64, 0x67, 0x9e, 0x67, 0xbf, 0x60, 0xf6, 0x7f, 0x8b, 0x9e, + 0xf5, 0xff, 0xfc, 0x1e, 0xc0, 0xf7, 0xcd, 0x00, 0x7e, 0x6e, 0x06, 0xf0, 0x6b, 0x33, 0x80, 0xbf, + 0x01, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x67, 0xe2, 0xa2, 0xc1, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.proto b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.proto index 9002ab71..eb01e63c 100644 --- a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.proto +++ b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz_test.go b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz_test.go index 5308e7f6..81c8793e 100644 --- a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz_test.go +++ b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/group/Makefile b/vendor/github.com/gogo/protobuf/test/group/Makefile index f2cc2bdf..ebbbbd2c 100644 --- a/vendor/github.com/gogo/protobuf/test/group/Makefile +++ b/vendor/github.com/gogo/protobuf/test/group/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/group/group.pb.go b/vendor/github.com/gogo/protobuf/test/group/group.pb.go index 35cb66e5..9938b660 100644 --- a/vendor/github.com/gogo/protobuf/test/group/group.pb.go +++ b/vendor/github.com/gogo/protobuf/test/group/group.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -37,7 +35,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Groups1 struct { G []*Groups1_G `protobuf:"group,1,rep,name=G,json=g" json:"g,omitempty"` @@ -49,8 +49,8 @@ func (*Groups1) ProtoMessage() {} func (*Groups1) Descriptor() ([]byte, []int) { return fileDescriptorGroup, []int{0} } type Groups1_G struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -68,8 +68,8 @@ func (*Groups2) ProtoMessage() {} func (*Groups2) Descriptor() ([]byte, []int) { return fileDescriptorGroup, []int{1} } type Groups2_G struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -98,218 +98,237 @@ func (this *Groups2_G) Description() (desc *github_com_gogo_protobuf_protoc_gen_ func GroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3364 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x69, 0x8c, 0x23, 0xd5, - 0xb5, 0xc6, 0x6d, 0xbb, 0xdb, 0x3e, 0xee, 0x76, 0x57, 0x57, 0x37, 0x33, 0x9e, 0x06, 0x66, 0x98, - 0x66, 0x1b, 0x86, 0x47, 0x0f, 0xd3, 0x6c, 0x83, 0x79, 0x0f, 0xd4, 0x8b, 0xc7, 0xf4, 0xa8, 0x17, - 0xbf, 0x72, 0x1b, 0x06, 0x9e, 0xf4, 0x4a, 0xd5, 0xe5, 0xdb, 0x6e, 0xcf, 0x94, 0xab, 0xfc, 0x5c, - 0xe5, 0x61, 0x9a, 0x5f, 0x3c, 0x91, 0x45, 0x28, 0xca, 0x1e, 0x29, 0xec, 0x09, 0x48, 0x09, 0x84, - 0x6c, 0x90, 0x4d, 0x49, 0x7e, 0x45, 0x8a, 0x48, 0xf8, 0x15, 0x25, 0xf9, 0x95, 0x1f, 0xf9, 0x01, - 0x08, 0x29, 0x1b, 0x49, 0x88, 0x34, 0x52, 0x22, 0xf1, 0x27, 0xe7, 0x6e, 0xe5, 0x2a, 0xdb, 0xdd, - 0xe5, 0x46, 0x22, 0x64, 0x24, 0x6b, 0x5c, 0xe7, 0x9e, 0xef, 0xab, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, - 0x73, 0xaf, 0x1b, 0x7e, 0x7a, 0x12, 0xae, 0xae, 0x39, 0x4e, 0xcd, 0x22, 0x27, 0x9a, 0x2d, 0xc7, - 0x73, 0x36, 0xdb, 0x5b, 0x27, 0xaa, 0xc4, 0x35, 0x5b, 0xf5, 0xa6, 0xe7, 0xb4, 0x66, 0x99, 0x4c, - 0x1d, 0xe7, 0x1a, 0xb3, 0x52, 0x63, 0x66, 0x15, 0x26, 0x4e, 0xd7, 0x2d, 0xb2, 0xe4, 0x2b, 0x96, - 0x89, 0xa7, 0x9e, 0x82, 0xc4, 0x16, 0x0a, 0x73, 0xb1, 0xab, 0xe3, 0xc7, 0x32, 0x73, 0xd7, 0xce, - 0x76, 0x81, 0x66, 0xc3, 0x88, 0x12, 0x15, 0x6b, 0x0c, 0x31, 0xf3, 0x76, 0x02, 0x26, 0xfb, 0x8c, - 0xaa, 0x2a, 0x24, 0x6c, 0xa3, 0x41, 0x19, 0x63, 0xc7, 0xd2, 0x1a, 0xfb, 0xae, 0xe6, 0x60, 0xa4, - 0x69, 0x98, 0xe7, 0x8d, 0x1a, 0xc9, 0x0d, 0x31, 0xb1, 0x7c, 0x54, 0x0f, 0x03, 0x54, 0x49, 0x93, - 0xd8, 0x55, 0x62, 0x9b, 0x3b, 0xb9, 0x38, 0x5a, 0x91, 0xd6, 0x02, 0x12, 0xf5, 0x26, 0x98, 0x68, - 0xb6, 0x37, 0xad, 0xba, 0xa9, 0x07, 0xd4, 0x00, 0xd5, 0x92, 0x9a, 0xc2, 0x07, 0x96, 0x3a, 0xca, - 0x37, 0xc0, 0xf8, 0xc3, 0xc4, 0x38, 0x1f, 0x54, 0xcd, 0x30, 0xd5, 0x2c, 0x15, 0x07, 0x14, 0x17, - 0x61, 0xb4, 0x41, 0x5c, 0x17, 0x0d, 0xd0, 0xbd, 0x9d, 0x26, 0xc9, 0x25, 0xd8, 0xec, 0xaf, 0xee, - 0x99, 0x7d, 0xf7, 0xcc, 0x33, 0x02, 0xb5, 0x81, 0x20, 0x75, 0x1e, 0xd2, 0xc4, 0x6e, 0x37, 0x38, - 0x43, 0x72, 0x17, 0xff, 0x15, 0x50, 0xa3, 0x9b, 0x25, 0x45, 0x61, 0x82, 0x62, 0xc4, 0x25, 0xad, - 0x0b, 0x75, 0x93, 0xe4, 0x86, 0x19, 0xc1, 0x0d, 0x3d, 0x04, 0x65, 0x3e, 0xde, 0xcd, 0x21, 0x71, - 0x38, 0x95, 0x34, 0xb9, 0xe8, 0x11, 0xdb, 0xad, 0x3b, 0x76, 0x6e, 0x84, 0x91, 0x5c, 0xd7, 0x67, - 0x15, 0x89, 0x55, 0xed, 0xa6, 0xe8, 0xe0, 0xd4, 0x3b, 0x60, 0xc4, 0x69, 0x7a, 0xf8, 0xcd, 0xcd, - 0xa5, 0x70, 0x7d, 0x32, 0x73, 0x57, 0xf6, 0x0d, 0x84, 0x75, 0xae, 0xa3, 0x49, 0x65, 0x75, 0x19, - 0x14, 0xd7, 0x69, 0xb7, 0x4c, 0xa2, 0x9b, 0x4e, 0x95, 0xe8, 0x75, 0x7b, 0xcb, 0xc9, 0xa5, 0x19, - 0xc1, 0x91, 0xde, 0x89, 0x30, 0xc5, 0x45, 0xd4, 0x5b, 0x46, 0x35, 0x2d, 0xeb, 0x86, 0x9e, 0xd5, - 0x03, 0x30, 0xec, 0xee, 0xd8, 0x9e, 0x71, 0x31, 0x37, 0xca, 0x22, 0x44, 0x3c, 0xcd, 0xfc, 0x3d, - 0x09, 0xe3, 0x83, 0x84, 0xd8, 0xdd, 0x90, 0xdc, 0xa2, 0xb3, 0xc4, 0x00, 0xdb, 0x87, 0x0f, 0x38, - 0x26, 0xec, 0xc4, 0xe1, 0xf7, 0xe9, 0xc4, 0x79, 0xc8, 0xd8, 0xc4, 0xf5, 0x48, 0x95, 0x47, 0x44, - 0x7c, 0xc0, 0x98, 0x02, 0x0e, 0xea, 0x0d, 0xa9, 0xc4, 0xfb, 0x0a, 0xa9, 0xb3, 0x30, 0xee, 0x9b, - 0xa4, 0xb7, 0x0c, 0xbb, 0x26, 0x63, 0xf3, 0x44, 0x94, 0x25, 0xb3, 0x05, 0x89, 0xd3, 0x28, 0x4c, - 0xcb, 0x92, 0xd0, 0xb3, 0xba, 0x04, 0xe0, 0xd8, 0xc4, 0xd9, 0xc2, 0xed, 0x65, 0x5a, 0x18, 0x27, - 0xfd, 0xbd, 0xb4, 0x4e, 0x55, 0x7a, 0xbc, 0xe4, 0x70, 0xa9, 0x69, 0xa9, 0x77, 0x75, 0x42, 0x6d, - 0x64, 0x97, 0x48, 0x59, 0xe5, 0x9b, 0xac, 0x27, 0xda, 0x2a, 0x90, 0x6d, 0x11, 0x1a, 0xf7, 0xe8, - 0x62, 0x3e, 0xb3, 0x34, 0x33, 0x62, 0x36, 0x72, 0x66, 0x9a, 0x80, 0xf1, 0x89, 0x8d, 0xb5, 0x82, - 0x8f, 0xea, 0x35, 0xe0, 0x0b, 0x74, 0x16, 0x56, 0xc0, 0xb2, 0xd0, 0xa8, 0x14, 0xae, 0xa1, 0x6c, - 0xfa, 0x14, 0x64, 0xc3, 0xee, 0x51, 0xa7, 0x20, 0xe9, 0x7a, 0x46, 0xcb, 0x63, 0x51, 0x98, 0xd4, - 0xf8, 0x83, 0xaa, 0x40, 0x1c, 0x93, 0x0c, 0xcb, 0x72, 0x49, 0x8d, 0x7e, 0x9d, 0xbe, 0x13, 0xc6, - 0x42, 0xaf, 0x1f, 0x14, 0x38, 0xf3, 0xc4, 0x30, 0x4c, 0xf5, 0x8b, 0xb9, 0xbe, 0xe1, 0x8f, 0xdb, - 0x07, 0x23, 0x60, 0x93, 0xb4, 0x30, 0xee, 0x28, 0x83, 0x78, 0xc2, 0x88, 0x4a, 0x5a, 0xc6, 0x26, - 0xb1, 0x30, 0x9a, 0x62, 0xc7, 0xb2, 0x73, 0x37, 0x0d, 0x14, 0xd5, 0xb3, 0x2b, 0x14, 0xa2, 0x71, - 0xa4, 0x7a, 0x0f, 0x24, 0x44, 0x8a, 0xa3, 0x0c, 0xc7, 0x07, 0x63, 0xa0, 0xb1, 0xa8, 0x31, 0x9c, - 0x7a, 0x05, 0xa4, 0xe9, 0xff, 0xdc, 0xb7, 0xc3, 0xcc, 0xe6, 0x14, 0x15, 0x50, 0xbf, 0xaa, 0xd3, - 0x90, 0x62, 0x61, 0x56, 0x25, 0xb2, 0x34, 0xf8, 0xcf, 0x74, 0x61, 0xaa, 0x64, 0xcb, 0x68, 0x5b, - 0x9e, 0x7e, 0xc1, 0xb0, 0xda, 0x84, 0x05, 0x0c, 0x2e, 0x8c, 0x10, 0xde, 0x4f, 0x65, 0xea, 0x11, - 0xc8, 0xf0, 0xa8, 0xac, 0x23, 0xe6, 0x22, 0xcb, 0x3e, 0x49, 0x8d, 0x07, 0xea, 0x32, 0x95, 0xd0, - 0xd7, 0x9f, 0x73, 0x71, 0x2f, 0x88, 0xa5, 0x65, 0xaf, 0xa0, 0x02, 0xf6, 0xfa, 0x3b, 0xbb, 0x13, - 0xdf, 0x55, 0xfd, 0xa7, 0xd7, 0x1d, 0x8b, 0x33, 0x3f, 0x18, 0x82, 0x04, 0xdb, 0x6f, 0xe3, 0x90, - 0xd9, 0x78, 0xb0, 0x54, 0xd0, 0x97, 0xd6, 0x2b, 0x0b, 0x2b, 0x05, 0x25, 0xa6, 0x66, 0x01, 0x98, - 0xe0, 0xf4, 0xca, 0xfa, 0xfc, 0x86, 0x32, 0xe4, 0x3f, 0x2f, 0xaf, 0x6d, 0xdc, 0x71, 0x9b, 0x12, - 0xf7, 0x01, 0x15, 0x2e, 0x48, 0x04, 0x15, 0x6e, 0x9d, 0x53, 0x92, 0x18, 0x09, 0xa3, 0x9c, 0x60, - 0xf9, 0x6c, 0x61, 0x09, 0x35, 0x86, 0xc3, 0x12, 0xd4, 0x19, 0x51, 0xc7, 0x20, 0xcd, 0x24, 0x0b, - 0xeb, 0xeb, 0x2b, 0x4a, 0xca, 0xe7, 0x2c, 0x6f, 0x68, 0xcb, 0x6b, 0x45, 0x25, 0xed, 0x73, 0x16, - 0xb5, 0xf5, 0x4a, 0x49, 0x01, 0x9f, 0x61, 0xb5, 0x50, 0x2e, 0xcf, 0x17, 0x0b, 0x4a, 0xc6, 0xd7, - 0x58, 0x78, 0x70, 0xa3, 0x50, 0x56, 0x46, 0x43, 0x66, 0xe1, 0x2b, 0xc6, 0xfc, 0x57, 0x14, 0xd6, - 0x2a, 0xab, 0x4a, 0x56, 0x9d, 0x80, 0x31, 0xfe, 0x0a, 0x69, 0xc4, 0x78, 0x97, 0x08, 0x2d, 0x55, - 0x3a, 0x86, 0x70, 0x96, 0x89, 0x90, 0x00, 0x35, 0xd4, 0x99, 0x45, 0x48, 0xb2, 0xe8, 0xc2, 0x28, - 0xce, 0xae, 0xcc, 0x2f, 0x14, 0x56, 0xf4, 0xf5, 0xd2, 0xc6, 0xf2, 0xfa, 0xda, 0xfc, 0x0a, 0xfa, - 0xce, 0x97, 0x69, 0x85, 0xff, 0xae, 0x2c, 0x6b, 0x85, 0x25, 0xf4, 0x5f, 0x40, 0x56, 0x2a, 0xcc, - 0x6f, 0xa0, 0x2c, 0x3e, 0x73, 0x1c, 0xa6, 0xfa, 0xe5, 0x99, 0x7e, 0x3b, 0x63, 0xe6, 0x85, 0x18, - 0x4c, 0xf6, 0x49, 0x99, 0x7d, 0x77, 0xd1, 0xbd, 0x90, 0xe4, 0x91, 0xc6, 0x8b, 0xc8, 0x8d, 0x7d, - 0x73, 0x2f, 0x8b, 0xbb, 0x9e, 0x42, 0xc2, 0x70, 0xc1, 0x42, 0x1a, 0xdf, 0xa5, 0x90, 0x52, 0x8a, - 0x9e, 0x70, 0x7a, 0x2c, 0x06, 0xb9, 0xdd, 0xb8, 0x23, 0xf6, 0xfb, 0x50, 0x68, 0xbf, 0xdf, 0xdd, - 0x6d, 0xc0, 0xd1, 0xdd, 0xe7, 0xd0, 0x63, 0xc5, 0x8b, 0x31, 0x38, 0xd0, 0xbf, 0xdf, 0xe8, 0x6b, - 0xc3, 0x3d, 0x30, 0xdc, 0x20, 0xde, 0xb6, 0x23, 0x6b, 0xee, 0xf5, 0x7d, 0x32, 0x39, 0x1d, 0xee, - 0xf6, 0x95, 0x40, 0x05, 0x4b, 0x41, 0x7c, 0xb7, 0xa6, 0x81, 0x5b, 0xd3, 0x63, 0xe9, 0xe3, 0x43, - 0x70, 0x79, 0x5f, 0xf2, 0xbe, 0x86, 0x5e, 0x05, 0x50, 0xb7, 0x9b, 0x6d, 0x8f, 0xd7, 0x55, 0x9e, - 0x66, 0xd2, 0x4c, 0xc2, 0xb6, 0x30, 0x4d, 0x21, 0x6d, 0xcf, 0x1f, 0x8f, 0xb3, 0x71, 0xe0, 0x22, - 0xa6, 0x70, 0xaa, 0x63, 0x68, 0x82, 0x19, 0x7a, 0x78, 0x97, 0x99, 0xf6, 0x94, 0xac, 0x5b, 0x40, - 0x31, 0xad, 0x3a, 0xb1, 0x3d, 0xdd, 0xf5, 0x5a, 0xc4, 0x68, 0xd4, 0xed, 0x1a, 0xcb, 0xa3, 0xa9, - 0x7c, 0x72, 0xcb, 0xb0, 0x5c, 0xa2, 0x8d, 0xf3, 0xe1, 0xb2, 0x1c, 0xa5, 0x08, 0x56, 0x2c, 0x5a, - 0x01, 0xc4, 0x70, 0x08, 0xc1, 0x87, 0x7d, 0xc4, 0xcc, 0xaf, 0x47, 0x20, 0x13, 0xe8, 0xce, 0xd4, - 0xa3, 0x30, 0x7a, 0xce, 0xb8, 0x60, 0xe8, 0xb2, 0xe3, 0xe6, 0x9e, 0xc8, 0x50, 0x59, 0x49, 0x74, - 0xdd, 0xb7, 0xc0, 0x14, 0x53, 0xc1, 0x39, 0xe2, 0x8b, 0x4c, 0xcb, 0x70, 0x5d, 0xe6, 0xb4, 0x14, - 0x53, 0x55, 0xe9, 0xd8, 0x3a, 0x1d, 0x5a, 0x94, 0x23, 0xea, 0xed, 0x30, 0xc9, 0x10, 0x0d, 0x4c, - 0xbc, 0xf5, 0xa6, 0x45, 0x74, 0x7a, 0x06, 0x70, 0x59, 0x3e, 0xf5, 0x2d, 0x9b, 0xa0, 0x1a, 0xab, - 0x42, 0x81, 0x5a, 0xe4, 0xaa, 0x45, 0xb8, 0x8a, 0xc1, 0x6a, 0xc4, 0x26, 0x2d, 0xc3, 0x23, 0x3a, - 0xf9, 0xbf, 0x36, 0xea, 0xea, 0x86, 0x5d, 0xd5, 0xb7, 0x0d, 0x77, 0x3b, 0x37, 0x15, 0x24, 0x38, - 0x44, 0x75, 0x8b, 0x42, 0xb5, 0xc0, 0x34, 0xe7, 0xed, 0xea, 0x7d, 0xa8, 0xa7, 0xe6, 0xe1, 0x00, - 0x23, 0x42, 0xa7, 0xe0, 0x9c, 0x75, 0x73, 0x9b, 0x98, 0xe7, 0xf5, 0xb6, 0xb7, 0x75, 0x2a, 0x77, - 0x45, 0x90, 0x81, 0x19, 0x59, 0x66, 0x3a, 0x8b, 0x54, 0xa5, 0x82, 0x1a, 0x6a, 0x19, 0x46, 0xe9, - 0x7a, 0x34, 0xea, 0x8f, 0xa0, 0xd9, 0x4e, 0x8b, 0xd5, 0x88, 0x6c, 0x9f, 0xcd, 0x1d, 0x70, 0xe2, - 0xec, 0xba, 0x00, 0xac, 0x62, 0x7f, 0x9a, 0x4f, 0x96, 0x4b, 0x85, 0xc2, 0x92, 0x96, 0x91, 0x2c, - 0xa7, 0x9d, 0x16, 0x8d, 0xa9, 0x9a, 0xe3, 0xfb, 0x38, 0xc3, 0x63, 0xaa, 0xe6, 0x48, 0x0f, 0xa3, - 0xbf, 0x4c, 0x93, 0x4f, 0x1b, 0xcf, 0x2e, 0xa2, 0x59, 0x77, 0x73, 0x4a, 0xc8, 0x5f, 0xa6, 0x59, - 0xe4, 0x0a, 0x22, 0xcc, 0x5d, 0xdc, 0x12, 0x97, 0x77, 0xfc, 0x15, 0x04, 0x4e, 0xf4, 0xcc, 0xb2, - 0x1b, 0x8a, 0x6f, 0x6c, 0xee, 0xf4, 0x02, 0xd5, 0xd0, 0x1b, 0x9b, 0x3b, 0xdd, 0xb0, 0xeb, 0xd8, - 0x01, 0xac, 0x45, 0x4c, 0x74, 0x79, 0x35, 0x77, 0x30, 0xa8, 0x1d, 0x18, 0x50, 0x4f, 0x60, 0x20, - 0x9b, 0x3a, 0xb1, 0x8d, 0x4d, 0x5c, 0x7b, 0xa3, 0x85, 0x5f, 0xdc, 0xdc, 0x91, 0xa0, 0x72, 0xd6, - 0x34, 0x0b, 0x6c, 0x74, 0x9e, 0x0d, 0xaa, 0xc7, 0x61, 0xc2, 0xd9, 0x3c, 0x67, 0xf2, 0xe0, 0xd2, - 0x91, 0x67, 0xab, 0x7e, 0x31, 0x77, 0x2d, 0x73, 0xd3, 0x38, 0x1d, 0x60, 0xa1, 0x55, 0x62, 0x62, - 0xf5, 0x46, 0x24, 0x77, 0xb7, 0x8d, 0x56, 0x93, 0x15, 0x69, 0x17, 0x9d, 0x4a, 0x72, 0xd7, 0x71, - 0x55, 0x2e, 0x5f, 0x93, 0x62, 0xb5, 0x00, 0x47, 0xe8, 0xe4, 0x6d, 0xc3, 0x76, 0xf4, 0xb6, 0x4b, - 0xf4, 0x8e, 0x89, 0xfe, 0x5a, 0x5c, 0x4f, 0xcd, 0xd2, 0xae, 0x94, 0x6a, 0x15, 0x17, 0x93, 0x99, - 0x54, 0x92, 0xcb, 0x73, 0x16, 0xa6, 0xda, 0x76, 0xdd, 0xc6, 0x10, 0xc7, 0x11, 0x0a, 0xe6, 0x1b, - 0x36, 0xf7, 0xbb, 0x91, 0x5d, 0x9a, 0xee, 0x4a, 0x50, 0x9b, 0x07, 0x89, 0x36, 0xd9, 0xee, 0x15, - 0xce, 0xe4, 0x61, 0x34, 0x18, 0x3b, 0x6a, 0x1a, 0x78, 0xf4, 0x60, 0x75, 0xc3, 0x8a, 0xba, 0xb8, - 0xbe, 0x44, 0x6b, 0xe1, 0x43, 0x05, 0x2c, 0x6c, 0x58, 0x93, 0x57, 0x96, 0x37, 0x0a, 0xba, 0x56, - 0x59, 0xdb, 0x58, 0x5e, 0x2d, 0x28, 0xf1, 0xe3, 0xe9, 0xd4, 0xef, 0x47, 0x94, 0x47, 0xf1, 0xdf, - 0xd0, 0xcc, 0x6b, 0x43, 0x90, 0x0d, 0xf7, 0xc1, 0xea, 0x7f, 0xc2, 0x41, 0x79, 0x68, 0x75, 0x89, - 0xa7, 0x3f, 0x5c, 0x6f, 0xb1, 0x70, 0x6e, 0x18, 0xbc, 0x93, 0xf4, 0x57, 0x62, 0x4a, 0x68, 0xe1, - 0xf1, 0xfe, 0x01, 0xd4, 0x39, 0xcd, 0x54, 0xd4, 0x15, 0x38, 0x82, 0x2e, 0xc3, 0x5e, 0xd3, 0xae, - 0x1a, 0xad, 0xaa, 0xde, 0xb9, 0x2e, 0xd0, 0x0d, 0x13, 0xe3, 0xc0, 0x75, 0x78, 0x25, 0xf1, 0x59, - 0xae, 0xb4, 0x9d, 0xb2, 0x50, 0xee, 0xa4, 0xd8, 0x79, 0xa1, 0xda, 0x15, 0x35, 0xf1, 0xdd, 0xa2, - 0x06, 0x7b, 0xaf, 0x86, 0xd1, 0xc4, 0xb0, 0xf1, 0x5a, 0x3b, 0xac, 0x7b, 0x4b, 0x69, 0x29, 0x14, - 0x14, 0xe8, 0xf3, 0x07, 0xb7, 0x06, 0x41, 0x3f, 0xfe, 0x36, 0x0e, 0xa3, 0xc1, 0x0e, 0x8e, 0x36, - 0xc4, 0x26, 0x4b, 0xf3, 0x31, 0x96, 0x05, 0xae, 0xd9, 0xb3, 0xdf, 0x9b, 0x5d, 0xa4, 0xf9, 0x3f, - 0x3f, 0xcc, 0xfb, 0x2a, 0x8d, 0x23, 0x69, 0xed, 0xa5, 0xb1, 0x46, 0x78, 0xb7, 0x9e, 0xd2, 0xc4, - 0x13, 0x26, 0xbb, 0xe1, 0x73, 0x2e, 0xe3, 0x1e, 0x66, 0xdc, 0xd7, 0xee, 0xcd, 0x7d, 0xa6, 0xcc, - 0xc8, 0xd3, 0x67, 0xca, 0xfa, 0xda, 0xba, 0xb6, 0x3a, 0xbf, 0xa2, 0x09, 0xb8, 0x7a, 0x08, 0x12, - 0x96, 0xf1, 0xc8, 0x4e, 0xb8, 0x52, 0x30, 0xd1, 0xa0, 0x8e, 0x47, 0x06, 0x7a, 0xe5, 0x11, 0xce, - 0xcf, 0x4c, 0xf4, 0x01, 0x86, 0xfe, 0x09, 0x48, 0x32, 0x7f, 0xa9, 0x00, 0xc2, 0x63, 0xca, 0x65, - 0x6a, 0x0a, 0x12, 0x8b, 0xeb, 0x1a, 0x0d, 0x7f, 0x8c, 0x77, 0x2e, 0xd5, 0x4b, 0xcb, 0x85, 0x45, - 0xdc, 0x01, 0x33, 0xb7, 0xc3, 0x30, 0x77, 0x02, 0xdd, 0x1a, 0xbe, 0x1b, 0x10, 0xc4, 0x1f, 0x05, - 0x47, 0x4c, 0x8e, 0x56, 0x56, 0x17, 0x0a, 0x9a, 0x32, 0x14, 0x5c, 0xde, 0x1f, 0xc7, 0x20, 0x13, - 0x68, 0xa8, 0x68, 0x29, 0x37, 0x2c, 0xcb, 0x79, 0x58, 0x37, 0xac, 0x3a, 0x66, 0x28, 0xbe, 0x3e, - 0xc0, 0x44, 0xf3, 0x54, 0x32, 0xa8, 0xff, 0xfe, 0x25, 0xb1, 0xf9, 0x5c, 0x0c, 0x94, 0xee, 0x66, - 0xac, 0xcb, 0xc0, 0xd8, 0x87, 0x6a, 0xe0, 0x33, 0x31, 0xc8, 0x86, 0x3b, 0xb0, 0x2e, 0xf3, 0x8e, - 0x7e, 0xa8, 0xe6, 0x3d, 0x1d, 0x83, 0xb1, 0x50, 0xdf, 0xf5, 0x6f, 0x65, 0xdd, 0x53, 0x71, 0x98, - 0xec, 0x83, 0xc3, 0x04, 0xc4, 0x1b, 0x54, 0xde, 0x33, 0xdf, 0x3c, 0xc8, 0xbb, 0x66, 0x69, 0xfd, - 0x2b, 0x19, 0x2d, 0x4f, 0xf4, 0xb3, 0x58, 0x2f, 0xeb, 0x55, 0x4c, 0xaa, 0xf5, 0xad, 0x3a, 0xb6, - 0x6f, 0xfc, 0xc4, 0xc2, 0xbb, 0xd6, 0xf1, 0x8e, 0x9c, 0x1f, 0x8f, 0xff, 0x03, 0xd4, 0xa6, 0xe3, - 0xd6, 0xbd, 0xfa, 0x05, 0x7a, 0x3d, 0x27, 0x0f, 0xd2, 0xb4, 0x8b, 0x4d, 0x68, 0x8a, 0x1c, 0x59, - 0xb6, 0x3d, 0x5f, 0xdb, 0x26, 0x35, 0xa3, 0x4b, 0x9b, 0xa6, 0xa1, 0xb8, 0xa6, 0xc8, 0x11, 0x5f, - 0x1b, 0x1b, 0xcd, 0xaa, 0xd3, 0xa6, 0x0d, 0x01, 0xd7, 0xa3, 0x59, 0x2f, 0xa6, 0x65, 0xb8, 0xcc, - 0x57, 0x11, 0x1d, 0x5b, 0xe7, 0x04, 0x3f, 0xaa, 0x65, 0xb8, 0x8c, 0xab, 0xdc, 0x00, 0xe3, 0x46, - 0xad, 0xd6, 0xa2, 0xe4, 0x92, 0x88, 0xb7, 0xa1, 0x59, 0x5f, 0xcc, 0x14, 0xa7, 0xcf, 0x40, 0x4a, - 0xfa, 0x81, 0x16, 0x16, 0xea, 0x09, 0xac, 0xf9, 0xec, 0x1e, 0x65, 0x88, 0x1e, 0xea, 0x6d, 0x39, - 0x88, 0x2f, 0xad, 0xbb, 0x7a, 0xe7, 0x42, 0x6f, 0x08, 0xc7, 0x53, 0x5a, 0xa6, 0xee, 0xfa, 0x37, - 0x38, 0x33, 0x2f, 0x62, 0x79, 0x0d, 0x5f, 0x48, 0xaa, 0x4b, 0x90, 0xb2, 0x1c, 0x8c, 0x0f, 0x8a, - 0xe0, 0xb7, 0xe1, 0xc7, 0x22, 0xee, 0x30, 0x67, 0x57, 0x84, 0xbe, 0xe6, 0x23, 0xa7, 0x7f, 0x11, - 0x83, 0x94, 0x14, 0x63, 0xa1, 0x48, 0x34, 0x0d, 0x6f, 0x9b, 0xd1, 0x25, 0x17, 0x86, 0x94, 0x98, - 0xc6, 0x9e, 0xa9, 0x1c, 0xbb, 0x19, 0x9b, 0x85, 0x80, 0x90, 0xd3, 0x67, 0xba, 0xae, 0x16, 0x31, - 0xaa, 0xac, 0xc1, 0x75, 0x1a, 0x0d, 0x5c, 0x49, 0x57, 0xae, 0xab, 0x90, 0x2f, 0x0a, 0x31, 0xbd, - 0x17, 0xf7, 0x5a, 0x46, 0xdd, 0x0a, 0xe9, 0x26, 0x98, 0xae, 0x22, 0x07, 0x7c, 0xe5, 0x3c, 0x1c, - 0x92, 0xbc, 0x55, 0xe2, 0x19, 0xd8, 0x3c, 0x57, 0x3b, 0xa0, 0x61, 0x76, 0xdb, 0x75, 0x50, 0x28, - 0x2c, 0x89, 0x71, 0x89, 0x5d, 0x38, 0x8b, 0x8d, 0xac, 0xd3, 0xe8, 0xf6, 0xc4, 0x82, 0xd2, 0x75, - 0xee, 0x72, 0xef, 0x8b, 0x3d, 0x04, 0x9d, 0xa6, 0xe2, 0x85, 0xa1, 0x78, 0xb1, 0xb4, 0xf0, 0xf2, - 0xd0, 0x74, 0x91, 0xe3, 0x4a, 0xd2, 0x83, 0x1a, 0xd9, 0xb2, 0x88, 0x49, 0xbd, 0x03, 0xcf, 0x5f, - 0x03, 0x37, 0xd7, 0xea, 0xde, 0x76, 0x7b, 0x73, 0x16, 0xdf, 0x70, 0xa2, 0xe6, 0xd4, 0x9c, 0xce, - 0xcf, 0x19, 0xf4, 0x89, 0x3d, 0xb0, 0x6f, 0xe2, 0x27, 0x8d, 0xb4, 0x2f, 0x9d, 0x8e, 0xfc, 0xfd, - 0x23, 0xbf, 0x06, 0x93, 0x42, 0x59, 0x67, 0x77, 0xaa, 0xbc, 0x05, 0x55, 0xf7, 0x3c, 0x90, 0xe7, - 0x5e, 0x7d, 0x9b, 0x95, 0x04, 0x6d, 0x42, 0x40, 0xe9, 0x18, 0x6f, 0x52, 0xf3, 0x1a, 0x5c, 0x1e, - 0xe2, 0xe3, 0x31, 0x8c, 0x47, 0xee, 0xbd, 0x19, 0x5f, 0x13, 0x8c, 0x93, 0x01, 0xc6, 0xb2, 0x80, - 0xe6, 0x17, 0x61, 0x6c, 0x3f, 0x5c, 0x3f, 0x13, 0x5c, 0xa3, 0x24, 0x48, 0x52, 0x84, 0x71, 0x46, - 0x62, 0xb6, 0x5d, 0xcf, 0x69, 0xb0, 0x04, 0xb1, 0x37, 0xcd, 0xcf, 0xdf, 0xe6, 0x41, 0x95, 0xa5, - 0xb0, 0x45, 0x1f, 0x95, 0xbf, 0x1f, 0xa6, 0xa8, 0x84, 0xed, 0xc1, 0x20, 0x5b, 0xf4, 0x15, 0x42, - 0xee, 0x57, 0x8f, 0xf1, 0xd8, 0x9b, 0xf4, 0x09, 0x02, 0xbc, 0x81, 0x95, 0xa8, 0x11, 0x0f, 0x73, - 0x1b, 0x9e, 0xff, 0x2c, 0x4b, 0xdd, 0xf3, 0x37, 0x86, 0xdc, 0x93, 0xef, 0x84, 0x57, 0xa2, 0xc8, - 0x91, 0xf3, 0x96, 0x95, 0xaf, 0xc0, 0xc1, 0x3e, 0x2b, 0x3b, 0x00, 0xe7, 0x53, 0x82, 0x73, 0xaa, - 0x67, 0x75, 0x29, 0x6d, 0x09, 0xa4, 0xdc, 0x5f, 0x8f, 0x01, 0x38, 0x9f, 0x16, 0x9c, 0xaa, 0xc0, - 0xca, 0x65, 0xa1, 0x8c, 0x67, 0x60, 0x02, 0x4f, 0xea, 0x9b, 0x8e, 0x2b, 0xce, 0xbd, 0x03, 0xd0, - 0x3d, 0x23, 0xe8, 0xc6, 0x05, 0x90, 0x9d, 0x82, 0x29, 0xd7, 0x5d, 0x90, 0xda, 0xc2, 0x03, 0xd0, - 0x00, 0x14, 0xcf, 0x0a, 0x8a, 0x11, 0xaa, 0x4f, 0xa1, 0xf3, 0x30, 0x5a, 0x73, 0x44, 0x1a, 0x8e, - 0x86, 0x3f, 0x27, 0xe0, 0x19, 0x89, 0x11, 0x14, 0x4d, 0xa7, 0xd9, 0xb6, 0x68, 0x8e, 0x8e, 0xa6, - 0xf8, 0x92, 0xa4, 0x90, 0x18, 0x41, 0xb1, 0x0f, 0xb7, 0x7e, 0x59, 0x52, 0xb8, 0x01, 0x7f, 0xde, - 0x4b, 0xef, 0x7a, 0xad, 0x1d, 0xc7, 0x1e, 0xc4, 0x88, 0xe7, 0x05, 0x03, 0x08, 0x08, 0x25, 0xb8, - 0x1b, 0xd2, 0x83, 0x2e, 0xc4, 0x57, 0x04, 0x3c, 0x45, 0xe4, 0x0a, 0xe0, 0x3e, 0x93, 0x49, 0x86, - 0xfe, 0xb6, 0x12, 0x4d, 0xf1, 0x55, 0x41, 0x91, 0x0d, 0xc0, 0xc4, 0x34, 0x3c, 0xe2, 0x7a, 0x78, - 0x54, 0x1f, 0x80, 0xe4, 0x45, 0x39, 0x0d, 0x01, 0x11, 0xae, 0xdc, 0x24, 0xb6, 0xb9, 0x3d, 0x18, - 0xc3, 0x4b, 0xd2, 0x95, 0x12, 0x43, 0x29, 0x30, 0xf3, 0x34, 0x8c, 0x16, 0x1e, 0xae, 0xad, 0x81, - 0x96, 0xe3, 0x6b, 0x82, 0x63, 0xd4, 0x07, 0x09, 0x8f, 0xb4, 0xed, 0xfd, 0xd0, 0xbc, 0x2c, 0x3d, - 0x12, 0x80, 0x89, 0xad, 0x87, 0x27, 0x53, 0xda, 0x49, 0xec, 0x87, 0xed, 0xeb, 0x72, 0xeb, 0x71, - 0xec, 0x6a, 0x90, 0x11, 0x57, 0xda, 0xc5, 0x23, 0xf8, 0x20, 0x34, 0xdf, 0x90, 0x2b, 0xcd, 0x00, - 0x14, 0xfc, 0x20, 0x1c, 0xea, 0x9b, 0xea, 0x07, 0x20, 0xfb, 0xa6, 0x20, 0x3b, 0xd0, 0x27, 0xdd, - 0x8b, 0x94, 0xb0, 0x5f, 0xca, 0x6f, 0xc9, 0x94, 0x40, 0xba, 0xb8, 0x4a, 0xb4, 0x8d, 0x75, 0x8d, - 0xad, 0xfd, 0x79, 0xed, 0xdb, 0xd2, 0x6b, 0x1c, 0x1b, 0xf2, 0xda, 0x06, 0x1c, 0x10, 0x8c, 0xfb, - 0x5b, 0xd7, 0x57, 0x64, 0x62, 0xe5, 0xe8, 0x4a, 0x78, 0x75, 0xff, 0x07, 0xa6, 0x7d, 0x77, 0xca, - 0x0e, 0xcc, 0xd5, 0xe9, 0xc5, 0x40, 0x34, 0xf3, 0xab, 0x82, 0x59, 0x66, 0x7c, 0xbf, 0x85, 0x73, - 0x57, 0x8d, 0x26, 0x25, 0x3f, 0x0b, 0x39, 0x49, 0xde, 0xb6, 0xb1, 0xc1, 0x77, 0x6a, 0x36, 0x2e, - 0x63, 0x75, 0x00, 0xea, 0xef, 0x74, 0x2d, 0x55, 0x25, 0x00, 0xa7, 0xcc, 0xcb, 0xa0, 0xf8, 0xfd, - 0x86, 0x5e, 0x6f, 0x34, 0x1d, 0x6c, 0x2d, 0xf7, 0x66, 0xfc, 0xae, 0x5c, 0x29, 0x1f, 0xb7, 0xcc, - 0x60, 0xf9, 0x02, 0x64, 0xd9, 0xe3, 0xa0, 0x21, 0xf9, 0x3d, 0x41, 0x34, 0xd6, 0x41, 0x89, 0xc4, - 0x81, 0x9d, 0x12, 0xf6, 0xbc, 0x83, 0xe4, 0xbf, 0xef, 0xcb, 0xc4, 0x21, 0x20, 0x3c, 0xfa, 0xc6, - 0xbb, 0x2a, 0xb1, 0x1a, 0xf5, 0xf3, 0x6b, 0xee, 0xff, 0x2f, 0x89, 0x3d, 0x1b, 0x2e, 0xc4, 0xf9, - 0x15, 0xea, 0x9e, 0x70, 0xb9, 0x8c, 0x26, 0x7b, 0xec, 0x92, 0xef, 0xa1, 0x50, 0xb5, 0xcc, 0x9f, - 0x86, 0xb1, 0x50, 0xa9, 0x8c, 0xa6, 0xfa, 0x88, 0xa0, 0x1a, 0x0d, 0x56, 0xca, 0xfc, 0xed, 0x90, - 0xa0, 0x65, 0x2f, 0x1a, 0xfe, 0x51, 0x01, 0x67, 0xea, 0xf9, 0xff, 0x82, 0x94, 0x2c, 0x77, 0xd1, - 0xd0, 0x8f, 0x09, 0xa8, 0x0f, 0xa1, 0x70, 0x59, 0xea, 0xa2, 0xe1, 0x1f, 0x97, 0x70, 0x09, 0xa1, - 0xf0, 0xc1, 0x5d, 0xf8, 0x93, 0x4f, 0x24, 0x44, 0xba, 0x92, 0xbe, 0xa3, 0xbf, 0xf9, 0xf0, 0x1a, - 0x17, 0x8d, 0x7e, 0x5c, 0xbc, 0x5c, 0x22, 0xf2, 0x77, 0x42, 0x72, 0x40, 0x87, 0x7f, 0x52, 0x40, - 0xb9, 0x3e, 0x56, 0x90, 0x4c, 0xa0, 0xae, 0x45, 0xc3, 0x3f, 0x25, 0xe0, 0x41, 0x14, 0x35, 0x5d, - 0xd4, 0xb5, 0x68, 0x82, 0x4f, 0x4b, 0xd3, 0x05, 0x82, 0xba, 0x4d, 0x96, 0xb4, 0x68, 0xf4, 0x67, - 0xa4, 0xd7, 0x25, 0x04, 0x77, 0x53, 0xda, 0x4f, 0x53, 0xd1, 0xf8, 0xcf, 0x0a, 0x7c, 0x07, 0x43, - 0x3d, 0x10, 0x48, 0x93, 0xd1, 0x14, 0x9f, 0x93, 0x1e, 0x08, 0xa0, 0xe8, 0x36, 0xea, 0x2e, 0x7d, - 0xd1, 0x4c, 0x9f, 0x97, 0xdb, 0xa8, 0xab, 0xf2, 0xd1, 0xd5, 0x64, 0xd9, 0x22, 0x9a, 0xe2, 0x0b, - 0x72, 0x35, 0x99, 0x3e, 0x35, 0xa3, 0xbb, 0x96, 0x44, 0x73, 0x7c, 0x51, 0x9a, 0xd1, 0x55, 0x4a, - 0xb0, 0x32, 0xa9, 0xbd, 0x75, 0x24, 0x9a, 0xef, 0x09, 0xc1, 0x37, 0xd1, 0x53, 0x46, 0xf2, 0x0f, - 0xc0, 0x81, 0xfe, 0x35, 0x24, 0x9a, 0xf5, 0xc9, 0x4b, 0x5d, 0x5d, 0x7f, 0xb0, 0x84, 0x60, 0xc9, - 0x9b, 0xea, 0x57, 0x3f, 0xa2, 0x69, 0x9f, 0xba, 0x14, 0x3e, 0xd8, 0x05, 0xcb, 0x07, 0x76, 0x68, - 0xd0, 0x49, 0xdd, 0xd1, 0x5c, 0xcf, 0x08, 0xae, 0x00, 0x88, 0x6e, 0x0d, 0x91, 0xb9, 0xa3, 0xf1, - 0xcf, 0xca, 0xad, 0x21, 0x10, 0x08, 0x4e, 0xd9, 0x6d, 0xcb, 0xa2, 0xc1, 0xa1, 0xee, 0xfd, 0x27, - 0x0d, 0xb9, 0x3f, 0xbc, 0x27, 0x36, 0x86, 0x04, 0x60, 0x0e, 0x4d, 0x92, 0xc6, 0x26, 0xfa, 0x20, - 0x02, 0xf9, 0xc7, 0xf7, 0x64, 0x42, 0xa0, 0xda, 0xb8, 0x9f, 0x80, 0x1f, 0x1a, 0xd9, 0x1d, 0x76, - 0x04, 0xf6, 0x4f, 0xef, 0x89, 0x9f, 0x59, 0x3b, 0x90, 0x0e, 0x01, 0xff, 0xd1, 0x76, 0x6f, 0x82, - 0x77, 0xc2, 0x04, 0xec, 0xa0, 0x79, 0x17, 0x8c, 0xd0, 0xbf, 0xec, 0xf0, 0x8c, 0x5a, 0x14, 0xfa, - 0xcf, 0x02, 0x2d, 0xf5, 0xa9, 0xc3, 0x1a, 0x4e, 0x8b, 0xe0, 0x57, 0x37, 0x0a, 0xfb, 0x17, 0x81, - 0xf5, 0x01, 0x14, 0x6c, 0x1a, 0xae, 0x37, 0xc8, 0xbc, 0xff, 0x2a, 0xc1, 0x12, 0x40, 0x8d, 0xa6, - 0xdf, 0xcf, 0x93, 0x9d, 0x28, 0xec, 0xbb, 0xd2, 0x68, 0xa1, 0x8f, 0x09, 0x30, 0x4d, 0xbf, 0xf2, - 0x3f, 0x3d, 0x88, 0x00, 0xff, 0x4d, 0x80, 0x3b, 0x88, 0x85, 0xa3, 0xfd, 0xaf, 0x76, 0xa0, 0xe8, - 0x14, 0x1d, 0x7e, 0xa9, 0x03, 0x3f, 0x1a, 0x82, 0x4c, 0xad, 0xe5, 0xb4, 0x9b, 0xe2, 0x06, 0x26, - 0xc9, 0x1e, 0xa6, 0xf7, 0x77, 0x6f, 0x33, 0xf3, 0xbf, 0x30, 0x52, 0xa4, 0x38, 0xf7, 0xa4, 0x7a, - 0x18, 0x62, 0x35, 0x76, 0x1f, 0x06, 0x73, 0xca, 0x2c, 0x67, 0x16, 0x43, 0xb3, 0x45, 0x2d, 0x56, - 0x9b, 0xbe, 0x15, 0x62, 0x45, 0xfa, 0x03, 0x0b, 0xb3, 0xfd, 0x24, 0xbb, 0xff, 0x8e, 0x6b, 0xc3, - 0xec, 0xaf, 0xf4, 0x4e, 0xfa, 0xf2, 0x39, 0x76, 0xb1, 0x1f, 0x13, 0xf2, 0xb9, 0x0e, 0xff, 0x9c, - 0xe4, 0x8f, 0xf5, 0xf0, 0xcf, 0xed, 0x93, 0x3f, 0xde, 0xe1, 0x5f, 0xb8, 0xed, 0xf5, 0x37, 0x0f, - 0x5f, 0xf6, 0x4b, 0xfc, 0xfc, 0x06, 0x3f, 0x6f, 0xbc, 0x79, 0x38, 0xf6, 0x2e, 0x7e, 0xfe, 0x81, - 0x9f, 0x47, 0xdf, 0x3a, 0x1c, 0x7b, 0x09, 0x3f, 0xaf, 0xe0, 0xe7, 0x87, 0xf8, 0x79, 0xfd, 0x2d, - 0xd4, 0xc3, 0xcf, 0x1b, 0xf8, 0xf9, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xe7, 0x78, 0x9f, - 0xa6, 0x2b, 0x00, 0x00, + // 3678 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdb, 0xd8, + 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0x5a, 0x99, 0xd6, 0x66, 0x69, 0x59, 0xd9, + 0xcd, 0x6a, 0x77, 0x1b, 0x3a, 0xd1, 0xda, 0x5e, 0x1b, 0x6e, 0xe2, 0xa1, 0x28, 0x9a, 0xa1, 0x2b, + 0x89, 0x0c, 0x28, 0x65, 0xed, 0x74, 0xa6, 0x18, 0x08, 0xbc, 0xa4, 0x60, 0x83, 0x00, 0x03, 0x80, + 0xb6, 0xe5, 0x27, 0x77, 0xb6, 0x3f, 0x93, 0xe9, 0xf4, 0xbf, 0x33, 0x4d, 0xb6, 0x9b, 0x6d, 0x9b, + 0x99, 0x76, 0xd3, 0xa4, 0x3f, 0x49, 0x7f, 0xd2, 0xb4, 0x4f, 0x7d, 0x49, 0xbb, 0x4f, 0x9d, 0xe4, + 0xad, 0x0f, 0x7d, 0x58, 0xbb, 0x3b, 0xd3, 0x3f, 0xb7, 0x4d, 0x1b, 0xcf, 0xb4, 0x33, 0x7e, 0xe9, + 0xdc, 0x3f, 0x10, 0x20, 0x29, 0x81, 0xca, 0xcc, 0x26, 0x4f, 0xe2, 0x3d, 0xf7, 0x7c, 0x1f, 0x0e, + 0xce, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x04, 0xff, 0x74, 0x01, 0x56, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, + 0xb9, 0x9e, 0x63, 0x7b, 0xf6, 0x7e, 0xbf, 0x7d, 0xae, 0x85, 0x5c, 0xdd, 0x31, 0x7a, 0x9e, 0xed, + 0x14, 0x89, 0x4c, 0x9a, 0xa3, 0x1a, 0x45, 0xae, 0xb1, 0xba, 0x0d, 0xf3, 0xd7, 0x0c, 0x13, 0x6d, + 0xfa, 0x8a, 0x4d, 0xe4, 0x49, 0x97, 0x20, 0xd1, 0x36, 0x4c, 0x94, 0x17, 0x56, 0xe2, 0x6b, 0x99, + 0xf5, 0xe7, 0x8b, 0x43, 0xa0, 0x62, 0x18, 0xd1, 0xc0, 0x62, 0x85, 0x20, 0x56, 0xdf, 0x4f, 0xc0, + 0xc2, 0x98, 0x59, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x96, 0x56, 0xc8, 0x6f, 0x29, + 0x0f, 0x33, 0x3d, 0x4d, 0xbf, 0xad, 0x75, 0x50, 0x3e, 0x46, 0xc4, 0x7c, 0x28, 0x15, 0x00, 0x5a, + 0xa8, 0x87, 0xac, 0x16, 0xb2, 0xf4, 0xc3, 0x7c, 0x7c, 0x25, 0xbe, 0x96, 0x56, 0x02, 0x12, 0xe9, + 0x15, 0x98, 0xef, 0xf5, 0xf7, 0x4d, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x12, 0x5f, 0x4b, 0x2a, 0x22, + 0x9d, 0xd8, 0x1c, 0x28, 0xbf, 0x08, 0x73, 0x77, 0x91, 0x76, 0x3b, 0xa8, 0x9a, 0x21, 0xaa, 0x39, + 0x2c, 0x0e, 0x28, 0x96, 0x21, 0xdb, 0x45, 0xae, 0xab, 0x75, 0x90, 0xea, 0x1d, 0xf6, 0x50, 0x3e, + 0x41, 0xde, 0x7e, 0x65, 0xe4, 0xed, 0x87, 0xdf, 0x3c, 0xc3, 0x50, 0xbb, 0x87, 0x3d, 0x24, 0x95, + 0x20, 0x8d, 0xac, 0x7e, 0x97, 0x32, 0x24, 0x8f, 0xf0, 0x5f, 0xc5, 0xea, 0x77, 0x87, 0x59, 0x52, + 0x18, 0xc6, 0x28, 0x66, 0x5c, 0xe4, 0xdc, 0x31, 0x74, 0x94, 0x9f, 0x26, 0x04, 0x2f, 0x8e, 0x10, + 0x34, 0xe9, 0xfc, 0x30, 0x07, 0xc7, 0x49, 0x65, 0x48, 0xa3, 0x7b, 0x1e, 0xb2, 0x5c, 0xc3, 0xb6, + 0xf2, 0x33, 0x84, 0xe4, 0x85, 0x31, 0xab, 0x88, 0xcc, 0xd6, 0x30, 0xc5, 0x00, 0x27, 0x5d, 0x84, + 0x19, 0xbb, 0xe7, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0x2b, 0xc2, 0x5a, 0x66, 0xfd, 0x43, 0x63, 0x03, + 0xa1, 0x4e, 0x75, 0x14, 0xae, 0x2c, 0xd5, 0x40, 0x74, 0xed, 0xbe, 0xa3, 0x23, 0x55, 0xb7, 0x5b, + 0x48, 0x35, 0xac, 0xb6, 0x9d, 0x4f, 0x13, 0x82, 0x33, 0xa3, 0x2f, 0x42, 0x14, 0xcb, 0x76, 0x0b, + 0xd5, 0xac, 0xb6, 0xad, 0xe4, 0xdc, 0xd0, 0x58, 0x5a, 0x82, 0x69, 0xf7, 0xd0, 0xf2, 0xb4, 0x7b, + 0xf9, 0x2c, 0x89, 0x10, 0x36, 0x5a, 0xfd, 0xdf, 0x24, 0xcc, 0x4d, 0x12, 0x62, 0x57, 0x20, 0xd9, + 0xc6, 0x6f, 0x99, 0x8f, 0x9d, 0xc4, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xf4, 0x0f, 0xe8, 0xc4, 0x12, + 0x64, 0x2c, 0xe4, 0x7a, 0xa8, 0x45, 0x23, 0x22, 0x3e, 0x61, 0x4c, 0x01, 0x05, 0x8d, 0x86, 0x54, + 0xe2, 0x07, 0x0a, 0xa9, 0x1b, 0x30, 0xe7, 0x9b, 0xa4, 0x3a, 0x9a, 0xd5, 0xe1, 0xb1, 0x79, 0x2e, + 0xca, 0x92, 0x62, 0x85, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0x28, 0x34, 0x96, 0x36, 0x01, 0x6c, 0x0b, + 0xd9, 0x6d, 0xb5, 0x85, 0x74, 0x33, 0x9f, 0x3a, 0xc2, 0x4b, 0x75, 0xac, 0x32, 0xe2, 0x25, 0x9b, + 0x4a, 0x75, 0x53, 0xba, 0x3c, 0x08, 0xb5, 0x99, 0x23, 0x22, 0x65, 0x9b, 0x6e, 0xb2, 0x91, 0x68, + 0xdb, 0x83, 0x9c, 0x83, 0x70, 0xdc, 0xa3, 0x16, 0x7b, 0xb3, 0x34, 0x31, 0xa2, 0x18, 0xf9, 0x66, + 0x0a, 0x83, 0xd1, 0x17, 0x9b, 0x75, 0x82, 0x43, 0xe9, 0xc3, 0xe0, 0x0b, 0x54, 0x12, 0x56, 0x40, + 0xb2, 0x50, 0x96, 0x0b, 0x77, 0xb4, 0x2e, 0x5a, 0xbe, 0x04, 0xb9, 0xb0, 0x7b, 0xa4, 0x45, 0x48, + 0xba, 0x9e, 0xe6, 0x78, 0x24, 0x0a, 0x93, 0x0a, 0x1d, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x22, 0x59, + 0x2e, 0xa9, 0xe0, 0x9f, 0xcb, 0xaf, 0xc1, 0x6c, 0xe8, 0xf1, 0x93, 0x02, 0x57, 0xbf, 0x30, 0x0d, + 0x8b, 0xe3, 0x62, 0x6e, 0x6c, 0xf8, 0x2f, 0xc1, 0xb4, 0xd5, 0xef, 0xee, 0x23, 0x27, 0x1f, 0x27, + 0x0c, 0x6c, 0x24, 0x95, 0x20, 0x69, 0x6a, 0xfb, 0xc8, 0xcc, 0x27, 0x56, 0x84, 0xb5, 0xdc, 0xfa, + 0x2b, 0x13, 0x45, 0x75, 0x71, 0x0b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x09, 0x09, 0x96, 0xe2, 0x30, + 0xc3, 0xcb, 0x93, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x16, 0xd2, 0xf8, 0x2f, 0xf5, 0xed, + 0x34, 0xb1, 0x39, 0x85, 0x05, 0xd8, 0xaf, 0xd2, 0x32, 0xa4, 0x48, 0x98, 0xb5, 0x10, 0x2f, 0x0d, + 0xfe, 0x18, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x34, 0xb3, 0x8f, 0x48, 0xc0, + 0xa4, 0x95, 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x33, 0x90, 0xa1, 0x51, 0x69, 0x58, 0x2d, 0x74, + 0x8f, 0x64, 0x9f, 0xa4, 0x42, 0x03, 0xb5, 0x86, 0x25, 0xf8, 0xf1, 0xb7, 0x5c, 0xdb, 0xe2, 0x4b, + 0x4b, 0x1e, 0x81, 0x05, 0xe4, 0xf1, 0xaf, 0x0d, 0x27, 0xbe, 0xe7, 0xc6, 0xbf, 0xde, 0x70, 0x2c, + 0xae, 0x7e, 0x33, 0x06, 0x09, 0xb2, 0xdf, 0xe6, 0x20, 0xb3, 0x7b, 0xb3, 0x51, 0x51, 0x37, 0xeb, + 0x7b, 0x1b, 0x5b, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x6d, 0xab, 0x5e, 0xda, 0x15, 0x63, + 0xfe, 0xb8, 0xb6, 0xb3, 0x7b, 0xf1, 0xbc, 0x18, 0xf7, 0x01, 0x7b, 0x54, 0x90, 0x08, 0x2a, 0xbc, + 0xba, 0x2e, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x76, 0xa3, 0xb2, 0x79, 0xf1, 0xbc, 0x38, 0x1d, + 0x96, 0xbc, 0xba, 0x2e, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x7a, 0x7d, 0x4b, 0x4c, 0xf9, + 0x9c, 0xcd, 0x5d, 0xa5, 0xb6, 0x53, 0x15, 0xd3, 0x3e, 0x67, 0x55, 0xa9, 0xef, 0x35, 0x44, 0xf0, + 0x19, 0xb6, 0x2b, 0xcd, 0x66, 0xa9, 0x5a, 0x11, 0x33, 0xbe, 0xc6, 0xc6, 0xcd, 0xdd, 0x4a, 0x53, + 0xcc, 0x86, 0xcc, 0x7a, 0x75, 0x5d, 0x9c, 0xf5, 0x1f, 0x51, 0xd9, 0xd9, 0xdb, 0x16, 0x73, 0xd2, + 0x3c, 0xcc, 0xd2, 0x47, 0x70, 0x23, 0xe6, 0x86, 0x44, 0x17, 0xcf, 0x8b, 0xe2, 0xc0, 0x10, 0xca, + 0x32, 0x1f, 0x12, 0x5c, 0x3c, 0x2f, 0x4a, 0xab, 0x65, 0x48, 0x92, 0xe8, 0x92, 0x24, 0xc8, 0x6d, + 0x95, 0x36, 0x2a, 0x5b, 0x6a, 0xbd, 0xb1, 0x5b, 0xab, 0xef, 0x94, 0xb6, 0x44, 0x61, 0x20, 0x53, + 0x2a, 0x9f, 0xde, 0xab, 0x29, 0x95, 0x4d, 0x31, 0x16, 0x94, 0x35, 0x2a, 0xa5, 0xdd, 0xca, 0xa6, + 0x18, 0x5f, 0xd5, 0x61, 0x71, 0x5c, 0x9e, 0x19, 0xbb, 0x33, 0x02, 0x4b, 0x1c, 0x3b, 0x62, 0x89, + 0x09, 0xd7, 0xc8, 0x12, 0x7f, 0x59, 0x80, 0x85, 0x31, 0xb9, 0x76, 0xec, 0x43, 0xae, 0x42, 0x92, + 0x86, 0x28, 0xad, 0x3e, 0x2f, 0x8d, 0x4d, 0xda, 0x24, 0x60, 0x47, 0x2a, 0x10, 0xc1, 0x05, 0x2b, + 0x70, 0xfc, 0x88, 0x0a, 0x8c, 0x29, 0x46, 0x8c, 0x7c, 0x43, 0x80, 0xfc, 0x51, 0xdc, 0x11, 0x89, + 0x22, 0x16, 0x4a, 0x14, 0x57, 0x86, 0x0d, 0x38, 0x7b, 0xf4, 0x3b, 0x8c, 0x58, 0xf1, 0x8e, 0x00, + 0x4b, 0xe3, 0x1b, 0x95, 0xb1, 0x36, 0x7c, 0x12, 0xa6, 0xbb, 0xc8, 0x3b, 0xb0, 0x79, 0xb1, 0xfe, + 0xc8, 0x98, 0x12, 0x80, 0xa7, 0x87, 0x7d, 0xc5, 0x50, 0xc1, 0x1a, 0x12, 0x3f, 0xaa, 0xdb, 0xa0, + 0xd6, 0x8c, 0x58, 0xfa, 0xf9, 0x18, 0x3c, 0x33, 0x96, 0x7c, 0xac, 0xa1, 0xcf, 0x01, 0x18, 0x56, + 0xaf, 0xef, 0xd1, 0x82, 0x4c, 0xf3, 0x53, 0x9a, 0x48, 0xc8, 0xde, 0xc7, 0xb9, 0xa7, 0xef, 0xf9, + 0xf3, 0x71, 0x32, 0x0f, 0x54, 0x44, 0x14, 0x2e, 0x0d, 0x0c, 0x4d, 0x10, 0x43, 0x0b, 0x47, 0xbc, + 0xe9, 0x48, 0xad, 0xfb, 0x18, 0x88, 0xba, 0x69, 0x20, 0xcb, 0x53, 0x5d, 0xcf, 0x41, 0x5a, 0xd7, + 0xb0, 0x3a, 0x24, 0x01, 0xa7, 0xe4, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xcc, 0xd1, 0xe9, 0x26, 0x9f, + 0xc5, 0x08, 0x52, 0x65, 0x9c, 0x00, 0x62, 0x3a, 0x84, 0xa0, 0xd3, 0x3e, 0x62, 0xf5, 0x6b, 0x33, + 0x90, 0x09, 0xb4, 0x75, 0xd2, 0x59, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x6f, 0xd5, 0xa9, 0x27, + 0x32, 0x58, 0xd6, 0x60, 0xed, 0xfa, 0xc7, 0x60, 0x91, 0xa8, 0xd8, 0x7d, 0x0f, 0x39, 0xaa, 0x6e, + 0x6a, 0xae, 0x4b, 0x9c, 0x96, 0x22, 0xaa, 0x12, 0x9e, 0xab, 0xe3, 0xa9, 0x32, 0x9f, 0x91, 0x2e, + 0xc0, 0x02, 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0xc3, 0x83, 0x4b, 0x12, 0xb1, + 0x6f, 0xd9, 0x3c, 0xd6, 0xd8, 0x66, 0x0a, 0xd8, 0x22, 0x57, 0xda, 0x84, 0xe7, 0x08, 0xac, 0x83, + 0x2c, 0xe4, 0x68, 0x1e, 0x52, 0xd1, 0xe7, 0xfa, 0x9a, 0xe9, 0xaa, 0x9a, 0xd5, 0x52, 0x0f, 0x34, + 0xf7, 0x20, 0xbf, 0x88, 0x09, 0x36, 0x62, 0x79, 0x41, 0x39, 0x8d, 0x15, 0xab, 0x4c, 0xaf, 0x42, + 0xd4, 0x4a, 0x56, 0xeb, 0x53, 0x9a, 0x7b, 0x20, 0xc9, 0xb0, 0x44, 0x58, 0x5c, 0xcf, 0x31, 0xac, + 0x8e, 0xaa, 0x1f, 0x20, 0xfd, 0xb6, 0xda, 0xf7, 0xda, 0x97, 0xf2, 0xcf, 0x06, 0x9f, 0x4f, 0x2c, + 0x6c, 0x12, 0x9d, 0x32, 0x56, 0xd9, 0xf3, 0xda, 0x97, 0xa4, 0x26, 0x64, 0xf1, 0x62, 0x74, 0x8d, + 0xfb, 0x48, 0x6d, 0xdb, 0x0e, 0xa9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0xe0, 0xc1, 0x62, 0x9d, 0x01, + 0xb6, 0xed, 0x16, 0x92, 0x93, 0xcd, 0x46, 0xa5, 0xb2, 0xa9, 0x64, 0x38, 0xcb, 0x35, 0xdb, 0xc1, + 0x01, 0xd5, 0xb1, 0x7d, 0x07, 0x67, 0x68, 0x40, 0x75, 0x6c, 0xee, 0xde, 0x0b, 0xb0, 0xa0, 0xeb, + 0xf4, 0x9d, 0x0d, 0x5d, 0x65, 0x2d, 0xbe, 0x9b, 0x17, 0x43, 0xce, 0xd2, 0xf5, 0x2a, 0x55, 0x60, + 0x31, 0xee, 0x4a, 0x97, 0xe1, 0x99, 0x81, 0xb3, 0x82, 0xc0, 0xf9, 0x91, 0xb7, 0x1c, 0x86, 0x5e, + 0x80, 0x85, 0xde, 0xe1, 0x28, 0x50, 0x0a, 0x3d, 0xb1, 0x77, 0x38, 0x0c, 0x7b, 0x81, 0x1c, 0xdb, + 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xe5, 0x4f, 0x05, 0xb5, 0x03, 0x13, 0xd2, 0x39, 0x10, 0x75, 0x5d, + 0x45, 0x96, 0xb6, 0x6f, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf9, 0x33, 0x41, 0xe5, 0x9c, 0xae, + 0x57, 0xc8, 0x6c, 0x89, 0x4c, 0x4a, 0x2f, 0xc3, 0xbc, 0xbd, 0x7f, 0x4b, 0xa7, 0x91, 0xa5, 0xf6, + 0x1c, 0xd4, 0x36, 0xee, 0xe5, 0x9f, 0x27, 0x6e, 0x9a, 0xc3, 0x13, 0x24, 0xae, 0x1a, 0x44, 0x2c, + 0xbd, 0x04, 0xa2, 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0x94, 0x76, 0xb7, 0xa7, 0xe9, 0x28, 0xff, 0x02, + 0x55, 0xa5, 0xf2, 0x1d, 0x2e, 0xc6, 0x91, 0xed, 0xde, 0x35, 0xda, 0x1e, 0x67, 0x7c, 0x91, 0x46, + 0x36, 0x91, 0x31, 0xb6, 0x1b, 0xb0, 0xd8, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0xb8, 0x89, + 0xa7, 0x3b, 0x31, 0xff, 0xcf, 0x33, 0x47, 0xb4, 0xe1, 0x7b, 0x41, 0x6d, 0x1a, 0x00, 0xca, 0x42, + 0x7f, 0x54, 0xb8, 0x2a, 0x43, 0x36, 0x18, 0x17, 0x52, 0x1a, 0x68, 0x64, 0x88, 0x02, 0xae, 0xb1, + 0xe5, 0xfa, 0x26, 0xae, 0x8e, 0x9f, 0xad, 0x88, 0x31, 0x5c, 0xa5, 0xb7, 0x6a, 0xbb, 0x15, 0x55, + 0xd9, 0xdb, 0xd9, 0xad, 0x6d, 0x57, 0xc4, 0xf8, 0xcb, 0xe9, 0xd4, 0xbf, 0xcc, 0x88, 0x0f, 0x1e, + 0x3c, 0x78, 0x10, 0x5b, 0xfd, 0x76, 0x0c, 0x72, 0xe1, 0xce, 0x58, 0xfa, 0x71, 0x38, 0xc5, 0x8f, + 0xb1, 0x2e, 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x42, 0xb5, 0xab, 0xd1, 0xde, 0xd2, 0xf7, 0xf2, 0x22, + 0xd3, 0x6a, 0x22, 0xef, 0x75, 0xc3, 0xc1, 0x81, 0xd8, 0xd5, 0x3c, 0x69, 0x0b, 0xce, 0x58, 0xb6, + 0xea, 0x7a, 0x9a, 0xd5, 0xd2, 0x9c, 0x96, 0x3a, 0xb8, 0x40, 0x50, 0x35, 0x5d, 0x47, 0xae, 0x6b, + 0xd3, 0x12, 0xe1, 0xb3, 0x7c, 0xc8, 0xb2, 0x9b, 0x4c, 0x79, 0x90, 0x3b, 0x4b, 0x4c, 0x75, 0x28, + 0x22, 0xe2, 0x47, 0x45, 0xc4, 0xb3, 0x90, 0xee, 0x6a, 0x3d, 0x15, 0x59, 0x9e, 0x73, 0x48, 0xfa, + 0xb9, 0x94, 0x92, 0xea, 0x6a, 0xbd, 0x0a, 0x1e, 0x7f, 0x70, 0x6b, 0x10, 0xf4, 0xe3, 0x3f, 0xc6, + 0x21, 0x1b, 0xec, 0xe9, 0x70, 0x8b, 0xac, 0x93, 0xfc, 0x2d, 0x90, 0x1d, 0xfe, 0xe1, 0x63, 0x3b, + 0xc0, 0x62, 0x19, 0x27, 0x76, 0x79, 0x9a, 0x76, 0x5a, 0x0a, 0x45, 0xe2, 0xa2, 0x8a, 0xf7, 0x34, + 0xa2, 0xfd, 0x7b, 0x4a, 0x61, 0x23, 0xa9, 0x0a, 0xd3, 0xb7, 0x5c, 0xc2, 0x3d, 0x4d, 0xb8, 0x9f, + 0x3f, 0x9e, 0xfb, 0x7a, 0x93, 0x90, 0xa7, 0xaf, 0x37, 0xd5, 0x9d, 0xba, 0xb2, 0x5d, 0xda, 0x52, + 0x18, 0x5c, 0x3a, 0x0d, 0x09, 0x53, 0xbb, 0x7f, 0x18, 0x2e, 0x01, 0x44, 0x34, 0xa9, 0xe3, 0x4f, + 0x43, 0xe2, 0x2e, 0xd2, 0x6e, 0x87, 0x13, 0x2f, 0x11, 0x7d, 0x80, 0xa1, 0x7f, 0x0e, 0x92, 0xc4, + 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x38, 0x25, 0xa5, 0x20, 0x51, 0xae, 0x2b, 0x38, 0xfc, 0x45, 0xc8, + 0x52, 0xa9, 0xda, 0xa8, 0x55, 0xca, 0x15, 0x31, 0xb6, 0x7a, 0x01, 0xa6, 0xa9, 0x13, 0xf0, 0xd6, + 0xf0, 0xdd, 0x20, 0x4e, 0xb1, 0x21, 0xe3, 0x10, 0xf8, 0xec, 0xde, 0xf6, 0x46, 0x45, 0x11, 0x63, + 0xc1, 0xe5, 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x38, 0x31, 0xf5, 0xd7, 0x02, 0x64, 0x02, 0xed, + 0x19, 0x6e, 0x0c, 0x34, 0xd3, 0xb4, 0xef, 0xaa, 0x9a, 0x69, 0x68, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, + 0x12, 0x96, 0x4c, 0xba, 0x68, 0x3f, 0x14, 0xe3, 0xdf, 0x16, 0x40, 0x1c, 0x6e, 0xed, 0x86, 0x0c, + 0x14, 0x7e, 0xa4, 0x06, 0xbe, 0x25, 0x40, 0x2e, 0xdc, 0xcf, 0x0d, 0x99, 0x77, 0xf6, 0x47, 0x6a, + 0xde, 0x7b, 0x31, 0x98, 0x0d, 0x75, 0x71, 0x93, 0x5a, 0xf7, 0x39, 0x98, 0x37, 0x5a, 0xa8, 0xdb, + 0xb3, 0x3d, 0x64, 0xe9, 0x87, 0xaa, 0x89, 0xee, 0x20, 0x33, 0xbf, 0x4a, 0x12, 0xc5, 0xb9, 0xe3, + 0xfb, 0xc4, 0x62, 0x6d, 0x80, 0xdb, 0xc2, 0x30, 0x79, 0xa1, 0xb6, 0x59, 0xd9, 0x6e, 0xd4, 0x77, + 0x2b, 0x3b, 0xe5, 0x9b, 0xea, 0xde, 0xce, 0x4f, 0xec, 0xd4, 0x5f, 0xdf, 0x51, 0x44, 0x63, 0x48, + 0xed, 0x03, 0xdc, 0xea, 0x0d, 0x10, 0x87, 0x8d, 0x92, 0x4e, 0xc1, 0x38, 0xb3, 0xc4, 0x29, 0x69, + 0x01, 0xe6, 0x76, 0xea, 0x6a, 0xb3, 0xb6, 0x59, 0x51, 0x2b, 0xd7, 0xae, 0x55, 0xca, 0xbb, 0x4d, + 0x7a, 0x70, 0xf6, 0xb5, 0x77, 0xc3, 0x9b, 0xfa, 0xcd, 0x38, 0x2c, 0x8c, 0xb1, 0x44, 0x2a, 0xb1, + 0x9e, 0x9d, 0x1e, 0x23, 0x3e, 0x3a, 0x89, 0xf5, 0x45, 0xdc, 0x15, 0x34, 0x34, 0xc7, 0x63, 0x2d, + 0xfe, 0x4b, 0x80, 0xbd, 0x64, 0x79, 0x46, 0xdb, 0x40, 0x0e, 0xbb, 0x67, 0xa0, 0x8d, 0xfc, 0xdc, + 0x40, 0x4e, 0xaf, 0x1a, 0x7e, 0x0c, 0xa4, 0x9e, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, + 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x50, 0x44, 0x3e, 0x53, 0xb3, 0x3c, 0x5f, 0xdb, 0x42, 0x1d, 0x6d, + 0x48, 0x1b, 0x27, 0xf0, 0xb8, 0x22, 0xf2, 0x19, 0x5f, 0xfb, 0x2c, 0x64, 0x5b, 0x76, 0x1f, 0xb7, + 0x49, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0xaf, 0xc2, 0xfa, 0xd8, 0xc1, 0x6d, 0x48, + 0x56, 0xc9, 0x50, 0x19, 0x55, 0x79, 0x11, 0xe6, 0xb4, 0x4e, 0xc7, 0xc1, 0xe4, 0x9c, 0x88, 0x76, + 0xe6, 0x39, 0x5f, 0x4c, 0x14, 0x97, 0xaf, 0x43, 0x8a, 0xfb, 0x01, 0x97, 0x64, 0xec, 0x09, 0xb5, + 0x47, 0xef, 0xa4, 0x62, 0x6b, 0x69, 0x25, 0x65, 0xf1, 0xc9, 0xb3, 0x90, 0x35, 0x5c, 0x75, 0x70, + 0x39, 0x1a, 0x5b, 0x89, 0xad, 0xa5, 0x94, 0x8c, 0xe1, 0xfa, 0xb7, 0x61, 0xab, 0xef, 0xc4, 0x20, + 0x17, 0xbe, 0xdc, 0x95, 0x36, 0x21, 0x65, 0xda, 0xba, 0x46, 0x42, 0x8b, 0x7e, 0x59, 0x58, 0x8b, + 0xb8, 0x0f, 0x2e, 0x6e, 0x31, 0x7d, 0xc5, 0x47, 0x2e, 0xff, 0xbd, 0x00, 0x29, 0x2e, 0x96, 0x96, + 0x20, 0xd1, 0xd3, 0xbc, 0x03, 0x42, 0x97, 0xdc, 0x88, 0x89, 0x82, 0x42, 0xc6, 0x58, 0xee, 0xf6, + 0x34, 0x8b, 0x84, 0x00, 0x93, 0xe3, 0x31, 0x5e, 0x57, 0x13, 0x69, 0x2d, 0xd2, 0xf6, 0xdb, 0xdd, + 0x2e, 0xb2, 0x3c, 0x97, 0xaf, 0x2b, 0x93, 0x97, 0x99, 0x58, 0x7a, 0x05, 0xe6, 0x3d, 0x47, 0x33, + 0xcc, 0x90, 0x6e, 0x82, 0xe8, 0x8a, 0x7c, 0xc2, 0x57, 0x96, 0xe1, 0x34, 0xe7, 0x6d, 0x21, 0x4f, + 0xd3, 0x0f, 0x50, 0x6b, 0x00, 0x9a, 0x26, 0x37, 0x87, 0xa7, 0x98, 0xc2, 0x26, 0x9b, 0xe7, 0xd8, + 0xd5, 0xef, 0x0a, 0x30, 0xcf, 0x0f, 0x2a, 0x2d, 0xdf, 0x59, 0xdb, 0x00, 0x9a, 0x65, 0xd9, 0x5e, + 0xd0, 0x5d, 0xa3, 0xa1, 0x3c, 0x82, 0x2b, 0x96, 0x7c, 0x90, 0x12, 0x20, 0x58, 0xee, 0x02, 0x0c, + 0x66, 0x8e, 0x74, 0xdb, 0x19, 0xc8, 0xb0, 0x9b, 0x7b, 0xf2, 0xf9, 0x87, 0x1e, 0x6d, 0x81, 0x8a, + 0xf0, 0x89, 0x46, 0x5a, 0x84, 0xe4, 0x3e, 0xea, 0x18, 0x16, 0xbb, 0x4f, 0xa4, 0x03, 0x7e, 0x4b, + 0x99, 0xf0, 0x6f, 0x29, 0x37, 0x6e, 0xc0, 0x82, 0x6e, 0x77, 0x87, 0xcd, 0xdd, 0x10, 0x87, 0x8e, + 0xd7, 0xee, 0xa7, 0x84, 0xcf, 0xc2, 0xa0, 0xc5, 0xfc, 0x72, 0x2c, 0x5e, 0x6d, 0x6c, 0x7c, 0x35, + 0xb6, 0x5c, 0xa5, 0xb8, 0x06, 0x7f, 0x4d, 0x05, 0xb5, 0x4d, 0xa4, 0x63, 0xd3, 0xe1, 0xfb, 0x1f, + 0x81, 0x8f, 0x76, 0x0c, 0xef, 0xa0, 0xbf, 0x5f, 0xd4, 0xed, 0xee, 0xb9, 0x8e, 0xdd, 0xb1, 0x07, + 0x9f, 0xbb, 0xf0, 0x88, 0x0c, 0xc8, 0x2f, 0xf6, 0xc9, 0x2b, 0xed, 0x4b, 0x97, 0x23, 0xbf, 0x8f, + 0xc9, 0x3b, 0xb0, 0xc0, 0x94, 0x55, 0x72, 0xe7, 0x4e, 0x8f, 0x06, 0xd2, 0xb1, 0xf7, 0x2e, 0xf9, + 0x6f, 0xbc, 0x4f, 0x6a, 0xb5, 0x32, 0xcf, 0xa0, 0x78, 0x8e, 0x1e, 0x20, 0x64, 0x05, 0x9e, 0x09, + 0xf1, 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0x6f, 0x33, 0xc6, 0x85, 0x00, 0x63, 0x93, 0x41, 0xe5, + 0x32, 0xcc, 0x9e, 0x84, 0xeb, 0x6f, 0x19, 0x57, 0x16, 0x05, 0x49, 0xaa, 0x30, 0x47, 0x48, 0xf4, + 0xbe, 0xeb, 0xd9, 0x5d, 0x92, 0xf4, 0x8e, 0xa7, 0xf9, 0xbb, 0xf7, 0xe9, 0x46, 0xc9, 0x61, 0x58, + 0xd9, 0x47, 0xc9, 0x32, 0x90, 0xcf, 0x0c, 0x2d, 0xa4, 0x9b, 0x11, 0x0c, 0xef, 0x32, 0x43, 0x7c, + 0x7d, 0xf9, 0x33, 0xb0, 0x88, 0x7f, 0x93, 0x9c, 0x14, 0xb4, 0x24, 0xfa, 0x96, 0x29, 0xff, 0xdd, + 0x37, 0xe8, 0x5e, 0x5c, 0xf0, 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x83, 0x3c, 0x0f, 0x39, 0xae, + 0xaa, 0x99, 0xe3, 0xcc, 0x0b, 0x1c, 0xd3, 0xf3, 0x5f, 0x7c, 0x1c, 0x5e, 0xc5, 0x2a, 0x45, 0x96, + 0x4c, 0x53, 0xde, 0x83, 0x53, 0x63, 0xa2, 0x62, 0x02, 0xce, 0x37, 0x19, 0xe7, 0xe2, 0x48, 0x64, + 0x60, 0xda, 0x06, 0x70, 0xb9, 0xbf, 0x96, 0x13, 0x70, 0xfe, 0x16, 0xe3, 0x94, 0x18, 0x96, 0x2f, + 0x29, 0x66, 0xbc, 0x0e, 0xf3, 0x77, 0x90, 0xb3, 0x6f, 0xbb, 0xec, 0x6a, 0x64, 0x02, 0xba, 0xb7, + 0x18, 0xdd, 0x1c, 0x03, 0x92, 0xbb, 0x12, 0xcc, 0x75, 0x19, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, + 0x7c, 0x89, 0x51, 0xcc, 0x60, 0x7d, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb2, 0x14, 0x0d, 0x7f, + 0x9b, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9a, 0x15, 0x4d, 0xf1, 0xdb, + 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xdc, 0xfa, 0x3b, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x2a, 0x64, + 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x8c, 0xf8, 0x5d, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x40, + 0x7a, 0xd2, 0x85, 0xf8, 0xbd, 0xc7, 0x7c, 0x7b, 0xf0, 0x15, 0xa8, 0xc2, 0x1c, 0x4f, 0x50, 0x86, + 0x6d, 0x4d, 0x40, 0xf1, 0xfb, 0x8c, 0x22, 0x17, 0x80, 0xb1, 0xd7, 0xf0, 0x90, 0xeb, 0x75, 0xd0, + 0x24, 0x24, 0xef, 0xf0, 0xd7, 0x60, 0x10, 0xe6, 0xca, 0x7d, 0x64, 0xe9, 0x07, 0x93, 0x31, 0x7c, + 0x85, 0xbb, 0x92, 0x63, 0x30, 0x45, 0x19, 0x66, 0xbb, 0x9a, 0xe3, 0x1e, 0x68, 0xe6, 0x44, 0xcb, + 0xf1, 0x07, 0x8c, 0x23, 0xeb, 0x83, 0x98, 0x47, 0xfa, 0xd6, 0x49, 0x68, 0xbe, 0xca, 0x3d, 0x12, + 0x80, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x02, 0xea, 0x24, 0x6c, 0x5f, 0xe3, 0x5b, 0x8f, 0x62, 0xb7, + 0x83, 0x8c, 0x57, 0x20, 0xed, 0x1a, 0xf7, 0x27, 0xa2, 0xf9, 0x43, 0xbe, 0xd2, 0x04, 0x80, 0xc1, + 0x37, 0xe1, 0xf4, 0xd8, 0x32, 0x31, 0x01, 0xd9, 0x1f, 0x31, 0xb2, 0xa5, 0x31, 0xa5, 0x82, 0xa5, + 0x84, 0x93, 0x52, 0xfe, 0x31, 0x4f, 0x09, 0x68, 0x88, 0xab, 0x81, 0x0f, 0x0a, 0xae, 0xd6, 0x3e, + 0x99, 0xd7, 0xfe, 0x84, 0x7b, 0x8d, 0x62, 0x43, 0x5e, 0xdb, 0x85, 0x25, 0xc6, 0x78, 0xb2, 0x75, + 0xfd, 0x3a, 0x4f, 0xac, 0x14, 0xbd, 0x17, 0x5e, 0xdd, 0x9f, 0x84, 0x65, 0xdf, 0x9d, 0xbc, 0x23, + 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x1b, 0x8c, 0x99, 0x67, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, + 0xb5, 0x1e, 0x26, 0xbf, 0x01, 0x79, 0x4e, 0xde, 0xb7, 0x1c, 0xa4, 0xdb, 0x1d, 0xcb, 0xb8, 0x8f, + 0x5a, 0x13, 0x50, 0xff, 0xe9, 0xd0, 0x52, 0xed, 0x05, 0xe0, 0x98, 0xb9, 0x06, 0xa2, 0xdf, 0xab, + 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0xf1, 0x95, 0xf2, 0x71, 0x35, 0x02, 0x93, + 0x2b, 0x90, 0x23, 0xc3, 0x49, 0x43, 0xf2, 0xcf, 0x19, 0xd1, 0xec, 0x00, 0xc5, 0x12, 0x87, 0x6e, + 0x77, 0x7b, 0x9a, 0x33, 0x49, 0xfe, 0xfb, 0x0b, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0xef, 0xb0, + 0x87, 0x70, 0xb5, 0x9f, 0x80, 0xe1, 0x9b, 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x04, + 0x14, 0x7f, 0xc9, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x7a, 0x50, 0x68, 0x1d, 0xd4, 0x31, 0x5c, 0xcf, + 0xa1, 0x7d, 0xf0, 0xf1, 0x54, 0xdf, 0x7a, 0x1c, 0x6e, 0xc2, 0x94, 0x00, 0x54, 0xbe, 0x0e, 0x73, + 0x43, 0x2d, 0x86, 0x14, 0xf5, 0x3f, 0x0b, 0xf9, 0x9f, 0x7e, 0xc2, 0x92, 0x51, 0xb8, 0xc3, 0x90, + 0xb7, 0xf0, 0xba, 0x87, 0xfb, 0x80, 0x68, 0xb2, 0x37, 0x9e, 0xf8, 0x4b, 0x1f, 0x6a, 0x03, 0xe4, + 0x6b, 0x30, 0x1b, 0xea, 0x01, 0xa2, 0xa9, 0x7e, 0x86, 0x51, 0x65, 0x83, 0x2d, 0x80, 0x7c, 0x01, + 0x12, 0xb8, 0x9e, 0x47, 0xc3, 0x7f, 0x96, 0xc1, 0x89, 0xba, 0xfc, 0x09, 0x48, 0xf1, 0x3a, 0x1e, + 0x0d, 0xfd, 0x39, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x6b, 0x78, 0x34, 0xfc, 0xe7, 0x39, 0x9c, 0x43, + 0x30, 0x7c, 0x72, 0x17, 0xfe, 0xcd, 0x2f, 0x24, 0x58, 0x1e, 0xe6, 0xbe, 0xbb, 0x02, 0x33, 0xac, + 0x78, 0x47, 0xa3, 0x3f, 0xcf, 0x1e, 0xce, 0x11, 0xf2, 0x6b, 0x90, 0x9c, 0xd0, 0xe1, 0xbf, 0xc8, + 0xa0, 0x54, 0x5f, 0x2e, 0x43, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc4, 0xe0, 0x41, 0x14, 0x36, + 0x9d, 0x15, 0xec, 0x68, 0x82, 0x5f, 0xe6, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0xaf, 0xd5, 0xd1, 0xe8, + 0x5f, 0xe1, 0x5e, 0xe7, 0x10, 0xf9, 0x2a, 0xa4, 0xfd, 0xfc, 0x1b, 0x8d, 0xff, 0x55, 0x86, 0x1f, + 0x60, 0xb0, 0x07, 0x02, 0xf9, 0x3f, 0x9a, 0xe2, 0xd7, 0xb8, 0x07, 0x02, 0x28, 0xbc, 0x8d, 0x86, + 0x6b, 0x7a, 0x34, 0xd3, 0xaf, 0xf3, 0x6d, 0x34, 0x54, 0xd2, 0xf1, 0x6a, 0x92, 0x34, 0x18, 0x4d, + 0xf1, 0x1b, 0x7c, 0x35, 0x89, 0x3e, 0x36, 0x63, 0xb8, 0x48, 0x46, 0x73, 0xfc, 0x26, 0x37, 0x63, + 0xa8, 0x46, 0xca, 0x0d, 0x90, 0x46, 0x0b, 0x64, 0x34, 0xdf, 0x17, 0x18, 0xdf, 0xfc, 0x48, 0x7d, + 0x94, 0x5f, 0x87, 0xa5, 0xf1, 0xc5, 0x31, 0x9a, 0xf5, 0x8b, 0x4f, 0x86, 0x8e, 0x33, 0xc1, 0xda, + 0x28, 0xef, 0x0e, 0xb2, 0x6c, 0xb0, 0x30, 0x46, 0xd3, 0xbe, 0xf9, 0x24, 0x9c, 0x68, 0x83, 0x75, + 0x51, 0x2e, 0x01, 0x0c, 0x6a, 0x52, 0x34, 0xd7, 0x5b, 0x8c, 0x2b, 0x00, 0xc2, 0x5b, 0x83, 0x95, + 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0x35, 0x8a, 0x46, 0xbf, 0xcd, + 0xb7, 0x06, 0x87, 0xc8, 0x57, 0x20, 0x65, 0xf5, 0x4d, 0x13, 0xc7, 0x96, 0x74, 0xfc, 0xbf, 0x11, + 0xe5, 0xff, 0xf5, 0x29, 0x03, 0x73, 0x80, 0x7c, 0x01, 0x92, 0xa8, 0xbb, 0x8f, 0x5a, 0x51, 0xc8, + 0x7f, 0x7b, 0xca, 0xf3, 0x09, 0xd6, 0x96, 0xaf, 0x02, 0xd0, 0xc3, 0x34, 0xf9, 0x4a, 0x14, 0x81, + 0xfd, 0xf7, 0xa7, 0xec, 0x3f, 0x14, 0x06, 0x90, 0x01, 0x01, 0xfd, 0x7f, 0x87, 0xe3, 0x09, 0x1e, + 0x87, 0x09, 0xc8, 0x01, 0xfc, 0x32, 0xcc, 0xdc, 0x72, 0x6d, 0xcb, 0xd3, 0x3a, 0x51, 0xe8, 0xff, + 0x60, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0xb5, 0x1d, 0xe4, 0x69, 0x1d, 0x37, 0x0a, 0xfb, 0x9f, 0x0c, + 0xeb, 0x03, 0x30, 0x58, 0xd7, 0x5c, 0x6f, 0x92, 0xf7, 0xfe, 0x2f, 0x0e, 0xe6, 0x00, 0x6c, 0x34, + 0xfe, 0x7d, 0x1b, 0x1d, 0x46, 0x61, 0xbf, 0xc7, 0x8d, 0x66, 0xfa, 0xf2, 0x27, 0x20, 0x8d, 0x7f, + 0xd2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x03, 0x0f, 0x10, 0xf8, 0xc9, 0xae, 0xd7, 0xf2, 0x8c, + 0x68, 0x67, 0xff, 0x0f, 0x5b, 0x69, 0xae, 0x2f, 0x97, 0x20, 0xe3, 0x7a, 0xad, 0x56, 0x9f, 0x75, + 0x34, 0x11, 0xf0, 0xef, 0x3f, 0xf5, 0x0f, 0xb9, 0x3e, 0x66, 0xe3, 0xec, 0xf8, 0xcb, 0x3a, 0xa8, + 0xda, 0x55, 0x9b, 0x5e, 0xd3, 0xc1, 0x5f, 0xc5, 0x20, 0xd3, 0x71, 0xec, 0x7e, 0x8f, 0xdd, 0xa9, + 0x25, 0xc9, 0x60, 0xf9, 0x64, 0x37, 0x71, 0xab, 0x3f, 0x05, 0x33, 0x55, 0x8c, 0x73, 0x3f, 0x2e, + 0x15, 0x40, 0xe8, 0x90, 0xeb, 0x47, 0x58, 0x17, 0x8b, 0x94, 0x99, 0x4d, 0x15, 0xab, 0x8a, 0xd0, + 0x59, 0x7e, 0x15, 0x84, 0xaa, 0xb4, 0x04, 0xd3, 0xc4, 0xfa, 0x8f, 0x93, 0x4f, 0x4d, 0x71, 0x85, + 0x8d, 0x7c, 0xf9, 0x3a, 0xb9, 0xa1, 0x14, 0x98, 0x7c, 0x7d, 0xc0, 0xbf, 0xce, 0xf9, 0x85, 0x11, + 0xfe, 0xf5, 0x13, 0xf2, 0xc7, 0x07, 0xfc, 0x1b, 0xe7, 0xdf, 0x7d, 0x58, 0x98, 0xfa, 0xce, 0xc3, + 0xc2, 0xd4, 0x3f, 0x3c, 0x2c, 0x4c, 0xbd, 0xf7, 0xb0, 0x20, 0x7c, 0xef, 0x61, 0x41, 0xf8, 0xbf, + 0x87, 0x05, 0xe1, 0xc1, 0xa3, 0x82, 0xf0, 0x95, 0x47, 0x05, 0xe1, 0xeb, 0x8f, 0x0a, 0xc2, 0xb7, + 0x1e, 0x15, 0x84, 0x77, 0x1f, 0x15, 0xa6, 0xbe, 0xf3, 0xa8, 0x30, 0xf5, 0xde, 0xa3, 0xc2, 0xd4, + 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x24, 0xb4, 0xef, 0x98, 0x2f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -731,23 +750,6 @@ func valueToGoStringGroup(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringGroup(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedGroups1(r randyGroup, easy bool) *Groups1 { this := &Groups1{} if r.Intn(10) != 0 { @@ -847,7 +849,7 @@ func randStringGroup(r randyGroup) string { } return string(tmps) } -func randUnrecognizedGroup(r randyGroup, maxFieldNumber int) (data []byte) { +func randUnrecognizedGroup(r randyGroup, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -855,43 +857,43 @@ func randUnrecognizedGroup(r randyGroup, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldGroup(data, r, fieldNumber, wire) + dAtA = randFieldGroup(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldGroup(data []byte, r randyGroup, fieldNumber int, wire int) []byte { +func randFieldGroup(dAtA []byte, r randyGroup, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateGroup(data, uint64(key)) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(key)) v7 := r.Int63() if r.Intn(2) == 0 { v7 *= -1 } - data = encodeVarintPopulateGroup(data, uint64(v7)) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(v7)) case 1: - data = encodeVarintPopulateGroup(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateGroup(data, uint64(key)) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateGroup(data, uint64(ll)) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateGroup(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateGroup(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateGroup(data []byte, v uint64) []byte { +func encodeVarintPopulateGroup(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (this *Groups1) String() string { if this == nil { @@ -948,19 +950,22 @@ func valueToStringGroup(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("group.proto", fileDescriptorGroup) } + var fileDescriptorGroup = []byte{ - // 195 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0x2f, 0xca, 0x2f, + // 211 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0x2f, 0xca, 0x2f, 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xc5, 0x71, 0xb1, 0xbb, 0x83, 0xf4, 0x15, 0x1b, 0x0a, 0xc9, 0x71, 0x31, 0xa6, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x19, 0x09, 0xe8, 0x41, 0x4c, 0x86, 0x4a, 0xe9, 0xb9, 0x07, 0x31, 0xa6, 0x4b, 0x19, 0x73, 0x31, 0xba, 0x0b, 0x89, - 0x71, 0xb1, 0xb9, 0x65, 0xa6, 0xe6, 0xa4, 0x18, 0x02, 0x55, 0x32, 0x6a, 0x30, 0x07, 0xb1, 0xa5, - 0x81, 0x79, 0x70, 0x71, 0x23, 0x09, 0x26, 0xa0, 0x38, 0x23, 0x54, 0xdc, 0x08, 0x61, 0xbe, 0x11, - 0xcc, 0x7c, 0x46, 0x0c, 0xf3, 0x8d, 0x48, 0x34, 0x9f, 0x19, 0x61, 0xbe, 0x93, 0xc9, 0x89, 0x87, - 0x72, 0x0c, 0x17, 0x80, 0xf8, 0x06, 0x10, 0x3f, 0x78, 0x28, 0xc7, 0xf8, 0x01, 0x88, 0x7f, 0x00, - 0x71, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x40, 0xbc, 0x01, 0x88, 0x77, 0x00, 0xf1, 0x89, 0x47, 0x40, - 0x75, 0x40, 0xfc, 0x00, 0x88, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd2, 0xbc, 0xd6, 0x4b, 0x39, + 0x71, 0xb1, 0xb9, 0x65, 0xa6, 0xe6, 0xa4, 0x18, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x41, + 0x79, 0x70, 0x71, 0x23, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x46, 0xa8, 0xb8, 0x11, 0xc2, 0x7c, 0x23, + 0x98, 0xf9, 0x8c, 0x18, 0xe6, 0x1b, 0x91, 0x68, 0x3e, 0x33, 0xc2, 0x7c, 0x27, 0x93, 0x13, 0x0f, + 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63, 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f, + 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c, 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, + 0x86, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x70, 0xe1, 0x91, 0x1c, + 0xc3, 0x83, 0x47, 0x72, 0x0c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xd8, 0xef, 0x2c, 0x39, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/group/group.proto b/vendor/github.com/gogo/protobuf/test/group/group.proto index c97e2611..0dad6569 100644 --- a/vendor/github.com/gogo/protobuf/test/group/group.proto +++ b/vendor/github.com/gogo/protobuf/test/group/group.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go b/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go index 1f9d30c5..6ae267c7 100644 --- a/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go +++ b/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go @@ -34,18 +34,18 @@ func TestGroups1Proto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -68,18 +68,18 @@ func TestGroups1_GProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -102,18 +102,18 @@ func TestGroups2Proto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -136,18 +136,18 @@ func TestGroups2_GProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -254,9 +254,9 @@ func TestGroups1ProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -271,9 +271,9 @@ func TestGroups1ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -288,9 +288,9 @@ func TestGroups1_GProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -305,9 +305,9 @@ func TestGroups1_GProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,9 +322,9 @@ func TestGroups2ProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -339,9 +339,9 @@ func TestGroups2ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -356,9 +356,9 @@ func TestGroups2_GProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -373,9 +373,9 @@ func TestGroups2_GProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -392,12 +392,12 @@ func TestGroupDescription(t *testing.T) { func TestGroups1VerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -407,12 +407,12 @@ func TestGroups1VerboseEqual(t *testing.T) { func TestGroups1_GVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1_G(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -422,12 +422,12 @@ func TestGroups1_GVerboseEqual(t *testing.T) { func TestGroups2VerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -437,12 +437,12 @@ func TestGroups2VerboseEqual(t *testing.T) { func TestGroups2_GVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2_G(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/Makefile b/vendor/github.com/gogo/protobuf/test/importdedup/Makefile index cf46ccc1..21d823a6 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/Makefile +++ b/vendor/github.com/gogo/protobuf/test/importdedup/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/importdedup_test.go b/vendor/github.com/gogo/protobuf/test/importdedup/importdedup_test.go index 9c5e67fd..8bdcc623 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/importdedup_test.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/importdedup_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go index 28543fdb..137f15d4 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go @@ -28,11 +28,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Object struct { - CustomField *github_com_gogo_protobuf_test_importdedup_subpkg.CustomType `protobuf:"bytes,1,opt,name=CustomField,json=customField,customtype=github.com/gogo/protobuf/test/importdedup/subpkg.CustomType" json:"CustomField,omitempty"` - SubObject *subpkg.SubObject `protobuf:"bytes,2,opt,name=SubObject,json=subObject" json:"SubObject,omitempty"` + CustomField *github_com_gogo_protobuf_test_importdedup_subpkg.CustomType `protobuf:"bytes,1,opt,name=CustomField,customtype=github.com/gogo/protobuf/test/importdedup/subpkg.CustomType" json:"CustomField,omitempty"` + SubObject *subpkg.SubObject `protobuf:"bytes,2,opt,name=SubObject" json:"SubObject,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -52,9 +54,11 @@ func init() { proto.RegisterType((*Object)(nil), "importdedup.Object") } +func init() { proto.RegisterFile("proto.proto", fileDescriptorProto) } + var fileDescriptorProto = []byte{ - // 178 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, + // 175 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xdc, 0x99, 0xb9, 0x05, 0xf9, 0x45, 0x25, 0x29, 0xa9, 0x29, 0xa5, 0x05, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0x35, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xf4, 0x4a, @@ -62,8 +66,7 @@ var fileDescriptorProto = []byte{ 0x76, 0x3a, 0x98, 0x42, 0x58, 0xae, 0x34, 0x87, 0x91, 0x8b, 0xcd, 0x3f, 0x29, 0x2b, 0x35, 0xb9, 0x44, 0x28, 0x91, 0x8b, 0xdb, 0xb9, 0xb4, 0xb8, 0x24, 0x3f, 0xd7, 0x2d, 0x33, 0x35, 0x27, 0x45, 0x82, 0x51, 0x81, 0x51, 0x83, 0xc7, 0xc9, 0xfe, 0xd6, 0x3d, 0x79, 0x6b, 0x52, 0x2d, 0xd1, 0x83, - 0x98, 0x13, 0x52, 0x59, 0x90, 0x1a, 0xc4, 0x9d, 0x8c, 0x30, 0x53, 0x48, 0x9f, 0x8b, 0x33, 0xb8, - 0x34, 0x09, 0x62, 0x9f, 0x04, 0x13, 0xd0, 0x02, 0x6e, 0x23, 0x41, 0x3d, 0xa8, 0x1e, 0xb8, 0x44, - 0x10, 0x67, 0x31, 0x8c, 0x09, 0x08, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x33, 0xcb, 0x76, 0x29, 0x01, - 0x00, 0x00, + 0x98, 0x13, 0x52, 0x59, 0x90, 0x1a, 0x84, 0x6c, 0xa6, 0x90, 0x3e, 0x17, 0x67, 0x70, 0x69, 0x12, + 0xc4, 0x3e, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x6e, 0x23, 0x41, 0x3d, 0xa8, 0x1e, 0xb8, 0x44, 0x10, + 0x42, 0x0d, 0x20, 0x00, 0x00, 0xff, 0xff, 0x21, 0x11, 0x7d, 0xc2, 0x29, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/proto.proto b/vendor/github.com/gogo/protobuf/test/importdedup/proto.proto index 494accb8..5d9c9c82 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/proto.proto +++ b/vendor/github.com/gogo/protobuf/test/importdedup/proto.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/customtype.go b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/customtype.go index 9a796576..59ccf729 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/customtype.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/customtype.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go index d84ec9ae..3a68b1f6 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go @@ -25,7 +25,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type SubObject struct { XXX_unrecognized []byte `json:"-"` @@ -40,9 +42,11 @@ func init() { proto.RegisterType((*SubObject)(nil), "subpkg.SubObject") } +func init() { proto.RegisterFile("subpkg/subproto.proto", fileDescriptorSubproto) } + var fileDescriptorSubproto = []byte{ // 88 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x2d, 0x2e, 0x4d, 0x2a, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2d, 0x2e, 0x4d, 0x2a, 0xc8, 0x4e, 0xd7, 0x07, 0x51, 0x45, 0xf9, 0x25, 0xf9, 0x7a, 0x60, 0x52, 0x88, 0x0d, 0x22, 0x2c, 0xa5, 0x9b, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0xab, 0x9f, 0x9e, 0x9f, 0x9e, 0xaf, 0x0f, 0x96, 0x4e, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x4d, 0x89, 0x9b, diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto index 6ff53e9e..b8df5e47 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto +++ b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/Makefile b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/Makefile index e83a2f21..0a2f73ac 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/Makefile +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go index e6c90cd7..4343836b 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go @@ -29,11 +29,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type IndexQuery struct { - Key *string `protobuf:"bytes,1,opt,name=Key,json=key" json:"Key,omitempty"` - Value *string `protobuf:"bytes,2,opt,name=Value,json=value" json:"Value,omitempty"` + Key *string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=Value" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -107,74 +109,74 @@ func (this *IndexQuery) Equal(that interface{}) bool { } return true } -func (m *IndexQuery) Marshal() (data []byte, err error) { +func (m *IndexQuery) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *IndexQuery) MarshalTo(data []byte) (int, error) { +func (m *IndexQuery) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Key != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintIndex(data, i, uint64(len(*m.Key))) - i += copy(data[i:], *m.Key) + i = encodeVarintIndex(dAtA, i, uint64(len(*m.Key))) + i += copy(dAtA[i:], *m.Key) } if m.Value != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintIndex(data, i, uint64(len(*m.Value))) - i += copy(data[i:], *m.Value) + i = encodeVarintIndex(dAtA, i, uint64(len(*m.Value))) + i += copy(dAtA[i:], *m.Value) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Index(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Index(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Index(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Index(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintIndex(data []byte, offset int, v uint64) int { +func encodeVarintIndex(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedIndexQuery(r randyIndex, easy bool) *IndexQuery { this := &IndexQuery{} if r.Intn(10) != 0 { - v1 := randStringIndex(r) + v1 := string(randStringIndex(r)) this.Key = &v1 } if r.Intn(10) != 0 { - v2 := randStringIndex(r) + v2 := string(randStringIndex(r)) this.Value = &v2 } if !easy && r.Intn(10) != 0 { @@ -209,7 +211,7 @@ func randStringIndex(r randyIndex) string { } return string(tmps) } -func randUnrecognizedIndex(r randyIndex, maxFieldNumber int) (data []byte) { +func randUnrecognizedIndex(r randyIndex, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -217,43 +219,43 @@ func randUnrecognizedIndex(r randyIndex, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldIndex(data, r, fieldNumber, wire) + dAtA = randFieldIndex(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldIndex(data []byte, r randyIndex, fieldNumber int, wire int) []byte { +func randFieldIndex(dAtA []byte, r randyIndex, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateIndex(data, uint64(key)) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(key)) v4 := r.Int63() if r.Intn(2) == 0 { v4 *= -1 } - data = encodeVarintPopulateIndex(data, uint64(v4)) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(v4)) case 1: - data = encodeVarintPopulateIndex(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateIndex(data, uint64(key)) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateIndex(data, uint64(ll)) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateIndex(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIndex(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateIndex(data []byte, v uint64) []byte { +func encodeVarintPopulateIndex(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *IndexQuery) Size() (n int) { var l int @@ -285,8 +287,8 @@ func sovIndex(x uint64) (n int) { func sozIndex(x uint64) (n int) { return sovIndex(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *IndexQuery) Unmarshal(data []byte) error { - l := len(data) +func (m *IndexQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -298,7 +300,7 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -326,7 +328,7 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -341,7 +343,7 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Key = &s iNdEx = postIndex case 2: @@ -356,7 +358,7 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -371,12 +373,12 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Value = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipIndex(data[iNdEx:]) + skippy, err := skipIndex(dAtA[iNdEx:]) if err != nil { return err } @@ -386,7 +388,7 @@ func (m *IndexQuery) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -396,8 +398,8 @@ func (m *IndexQuery) Unmarshal(data []byte) error { } return nil } -func skipIndex(data []byte) (n int, err error) { - l := len(data) +func skipIndex(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -408,7 +410,7 @@ func skipIndex(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -426,7 +428,7 @@ func skipIndex(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -443,7 +445,7 @@ func skipIndex(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -466,7 +468,7 @@ func skipIndex(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -477,7 +479,7 @@ func skipIndex(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipIndex(data[start:]) + next, err := skipIndex(dAtA[start:]) if err != nil { return 0, err } @@ -501,15 +503,17 @@ var ( ErrIntOverflowIndex = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("index.proto", fileDescriptorIndex) } + var fileDescriptorIndex = []byte{ - // 139 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0xcc, 0x4b, 0x49, + // 141 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0xcc, 0x4b, 0x49, 0xad, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0x99, 0x70, 0x71, 0x79, 0x82, 0xf4, 0x05, 0x96, 0xa6, 0x16, 0x55, 0x0a, 0x09, 0x70, 0x31, 0x7b, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30, - 0x6a, 0x70, 0x06, 0x31, 0x67, 0xa7, 0x56, 0x0a, 0x89, 0x70, 0xb1, 0x86, 0x25, 0xe6, 0x94, 0xa6, - 0x4a, 0x30, 0x81, 0xc5, 0x58, 0xcb, 0x40, 0x1c, 0x27, 0x89, 0x1f, 0x0f, 0xe5, 0x18, 0x57, 0x3c, - 0x92, 0x63, 0xdc, 0x01, 0xc4, 0x27, 0x80, 0xf8, 0x02, 0x10, 0x3f, 0x00, 0x62, 0x40, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xed, 0x22, 0xeb, 0x68, 0x93, 0x00, 0x00, 0x00, + 0x6a, 0x70, 0x06, 0x81, 0x98, 0x42, 0x22, 0x5c, 0xac, 0x61, 0x89, 0x39, 0xa5, 0xa9, 0x12, 0x4c, + 0x60, 0x31, 0x08, 0xc7, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, + 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x3d, 0x8f, 0x44, 0x93, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto index 4d8811bc..3f79b4aa 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go index 7e915f6b..00ab4b17 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go @@ -32,18 +32,18 @@ func TestIndexQueryProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -64,20 +64,20 @@ func TestIndexQueryMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -106,9 +106,9 @@ func TestIndexQueryProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -120,9 +120,9 @@ func TestIndexQueryProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -135,13 +135,13 @@ func TestIndexQuerySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go index 9a2b5db7..f5fb61f7 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go @@ -30,10 +30,12 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type IndexQueries struct { - Queries []*index.IndexQuery `protobuf:"bytes,1,rep,name=Queries,json=queries" json:"Queries,omitempty"` + Queries []*index.IndexQuery `protobuf:"bytes,1,rep,name=Queries" json:"Queries,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -90,27 +92,27 @@ func (this *IndexQueries) Equal(that interface{}) bool { } return true } -func (m *IndexQueries) Marshal() (data []byte, err error) { +func (m *IndexQueries) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *IndexQueries) MarshalTo(data []byte) (int, error) { +func (m *IndexQueries) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Queries) > 0 { for _, msg := range m.Queries { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintIndeximport(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintIndeximport(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -118,36 +120,36 @@ func (m *IndexQueries) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Indeximport(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Indeximport(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Indeximport(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Indeximport(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintIndeximport(data []byte, offset int, v uint64) int { +func encodeVarintIndeximport(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedIndexQueries(r randyIndeximport, easy bool) *IndexQueries { @@ -191,7 +193,7 @@ func randStringIndeximport(r randyIndeximport) string { } return string(tmps) } -func randUnrecognizedIndeximport(r randyIndeximport, maxFieldNumber int) (data []byte) { +func randUnrecognizedIndeximport(r randyIndeximport, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -199,43 +201,43 @@ func randUnrecognizedIndeximport(r randyIndeximport, maxFieldNumber int) (data [ wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldIndeximport(data, r, fieldNumber, wire) + dAtA = randFieldIndeximport(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldIndeximport(data []byte, r randyIndeximport, fieldNumber int, wire int) []byte { +func randFieldIndeximport(dAtA []byte, r randyIndeximport, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateIndeximport(data, uint64(key)) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateIndeximport(data, uint64(v3)) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateIndeximport(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateIndeximport(data, uint64(key)) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateIndeximport(data, uint64(ll)) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateIndeximport(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIndeximport(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateIndeximport(data []byte, v uint64) []byte { +func encodeVarintPopulateIndeximport(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *IndexQueries) Size() (n int) { var l int @@ -265,8 +267,8 @@ func sovIndeximport(x uint64) (n int) { func sozIndeximport(x uint64) (n int) { return sovIndeximport(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *IndexQueries) Unmarshal(data []byte) error { - l := len(data) +func (m *IndexQueries) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -278,7 +280,7 @@ func (m *IndexQueries) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -306,7 +308,7 @@ func (m *IndexQueries) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -321,13 +323,13 @@ func (m *IndexQueries) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Queries = append(m.Queries, &index.IndexQuery{}) - if err := m.Queries[len(m.Queries)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Queries[len(m.Queries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipIndeximport(data[iNdEx:]) + skippy, err := skipIndeximport(dAtA[iNdEx:]) if err != nil { return err } @@ -337,7 +339,7 @@ func (m *IndexQueries) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -347,8 +349,8 @@ func (m *IndexQueries) Unmarshal(data []byte) error { } return nil } -func skipIndeximport(data []byte) (n int, err error) { - l := len(data) +func skipIndeximport(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -359,7 +361,7 @@ func skipIndeximport(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -377,7 +379,7 @@ func skipIndeximport(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -394,7 +396,7 @@ func skipIndeximport(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -417,7 +419,7 @@ func skipIndeximport(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -428,7 +430,7 @@ func skipIndeximport(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipIndeximport(data[start:]) + next, err := skipIndeximport(dAtA[start:]) if err != nil { return 0, err } @@ -452,17 +454,19 @@ var ( ErrIntOverflowIndeximport = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("indeximport.proto", fileDescriptorIndeximport) } + var fileDescriptorIndeximport = []byte{ - // 163 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0xcc, 0xcc, 0x4b, 0x49, + // 168 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcc, 0xcc, 0x4b, 0x49, 0xad, 0xc8, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46, 0x12, 0x92, 0x72, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0xd3, 0x2f, 0x49, 0x2d, 0x2e, 0xd1, 0x47, 0x52, 0xaa, 0x9b, 0x59, 0x5c, 0x5c, 0x9a, 0x6a, 0x6e, 0x04, 0x11, 0x83, 0x90, 0x10, 0x13, 0xa5, 0x74, 0x71, 0x1a, 0x02, 0xe2, 0x81, 0x39, 0x60, 0x16, 0x44, 0xb9, 0x92, 0x35, 0x17, 0x8f, 0x27, 0x48, 0x77, 0x60, 0x69, 0x6a, 0x51, 0x66, 0x6a, 0xb1, 0x90, 0x36, 0x17, 0x3b, 0x94, 0x29, 0xc1, 0xa8, - 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0xa8, 0x07, 0x31, 0x1d, 0xae, 0xaa, 0x32, 0x88, 0xbd, 0x10, 0xa2, - 0xc2, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x00, 0xf1, 0x09, 0x20, - 0xbe, 0x00, 0xc4, 0x0f, 0x80, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x51, 0xf2, 0x07, 0xeb, - 0x00, 0x00, 0x00, + 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0xa8, 0x07, 0x31, 0x1d, 0xae, 0xaa, 0x32, 0x08, 0xa6, 0xc2, 0x49, + 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, + 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, + 0xd4, 0x50, 0x15, 0x6f, 0xeb, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto index 1b789cb8..6358b0bf 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go index 99d0592b..62133d17 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go @@ -33,18 +33,18 @@ func TestIndexQueriesProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -65,20 +65,20 @@ func TestIndexQueriesMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -107,9 +107,9 @@ func TestIndexQueriesProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -121,9 +121,9 @@ func TestIndexQueriesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -136,13 +136,13 @@ func TestIndexQueriesSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/issue260/Makefile b/vendor/github.com/gogo/protobuf/test/issue260/Makefile new file mode 100644 index 00000000..a0f5e529 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types:. --proto_path=../../../../../:../../protobuf/:. issue260.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue260/README.md b/vendor/github.com/gogo/protobuf/test/issue260/README.md new file mode 100644 index 00000000..d2508478 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/README.md @@ -0,0 +1,11 @@ +# The Bug + +If in a message the following options are set: + +* `typedecl` `false` +* `go_getters` `false` +* `marshaller` `true` + +And one of the fields is using the `stdtime` and `nullable` `false` extension (to +use `time.Time` instead of the protobuf type), then an import to the _time_ package +is added even if it is not needed. diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go new file mode 100644 index 00000000..ca9029ee --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go @@ -0,0 +1,1028 @@ +// Code generated by protoc-gen-gogo. +// source: issue260.proto +// DO NOT EDIT! + +/* + Package issue260 is a generated protocol buffer package. + + It is generated from these files: + issue260.proto + + It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package issue260 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" + +import time "time" + +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Dropped) Reset() { *m = Dropped{} } +func (m *Dropped) String() string { return proto.CompactTextString(m) } +func (*Dropped) ProtoMessage() {} +func (*Dropped) Descriptor() ([]byte, []int) { return fileDescriptorIssue260, []int{0} } + +func (m *Dropped) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Dropped) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} } +func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) } +func (*DroppedWithoutGetters) ProtoMessage() {} +func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) { return fileDescriptorIssue260, []int{1} } + +type Kept struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Age int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"` +} + +func (m *Kept) Reset() { *m = Kept{} } +func (m *Kept) String() string { return proto.CompactTextString(m) } +func (*Kept) ProtoMessage() {} +func (*Kept) Descriptor() ([]byte, []int) { return fileDescriptorIssue260, []int{2} } + +func (m *Kept) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Kept) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func init() { + proto.RegisterType((*Dropped)(nil), "issue260.Dropped") + proto.RegisterType((*DroppedWithoutGetters)(nil), "issue260.DroppedWithoutGetters") + proto.RegisterType((*Kept)(nil), "issue260.Kept") +} +func (this *Dropped) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Dropped") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Dropped but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Dropped but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Dropped) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (this *DroppedWithoutGetters) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *DroppedWithoutGetters") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *DroppedWithoutGetters but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *DroppedWithoutGetters but is not nil && this == nil") + } + if this.Height != that1.Height { + return fmt.Errorf("Height this(%v) Not Equal that(%v)", this.Height, that1.Height) + } + if this.Width != that1.Width { + return fmt.Errorf("Width this(%v) Not Equal that(%v)", this.Width, that1.Width) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *DroppedWithoutGetters) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Height != that1.Height { + return false + } + if this.Width != that1.Width { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *Kept) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Kept") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Kept but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Kept but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Kept) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (m *Dropped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Dropped) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIssue260(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIssue260(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func (m *DroppedWithoutGetters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DroppedWithoutGetters) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Height != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIssue260(dAtA, i, uint64(m.Height)) + } + if m.Width != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIssue260(dAtA, i, uint64(m.Width)) + } + dAtA[i] = 0x1a + i++ + i = encodeVarintIssue260(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + return i, nil +} + +func (m *Kept) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Kept) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintIssue260(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintIssue260(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func encodeFixed64Issue260(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Issue260(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintIssue260(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedDropped(r randyIssue260, easy bool) *Dropped { + this := &Dropped{} + this.Name = string(randStringIssue260(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedDroppedWithoutGetters(r randyIssue260, easy bool) *DroppedWithoutGetters { + this := &DroppedWithoutGetters{} + this.Height = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Height *= -1 + } + this.Width = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Width *= -1 + } + v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v1 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedKept(r randyIssue260, easy bool) *Kept { + this := &Kept{} + this.Name = string(randStringIssue260(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyIssue260 interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneIssue260(r randyIssue260) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringIssue260(r randyIssue260) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneIssue260(r) + } + return string(tmps) +} +func randUnrecognizedIssue260(r randyIssue260, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldIssue260(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldIssue260(dAtA []byte, r randyIssue260, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateIssue260(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateIssue260(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Dropped) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovIssue260(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovIssue260(uint64(m.Age)) + } + return n +} + +func (m *DroppedWithoutGetters) Size() (n int) { + var l int + _ = l + if m.Height != 0 { + n += 1 + sovIssue260(uint64(m.Height)) + } + if m.Width != 0 { + n += 1 + sovIssue260(uint64(m.Width)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovIssue260(uint64(l)) + return n +} + +func (m *Kept) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovIssue260(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovIssue260(uint64(m.Age)) + } + return n +} + +func sovIssue260(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIssue260(x uint64) (n int) { + return sovIssue260(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Dropped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Dropped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Dropped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIssue260 + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIssue260(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue260 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DroppedWithoutGetters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DroppedWithoutGetters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Width", wireType) + } + m.Width = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Width |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIssue260 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIssue260(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue260 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Kept) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Kept: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Kept: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthIssue260 + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue260 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIssue260(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue260 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIssue260(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue260 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue260 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue260 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthIssue260 + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue260 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipIssue260(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthIssue260 = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIssue260 = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("issue260.proto", fileDescriptorIssue260) } + +var fileDescriptorIssue260 = []byte{ + // 302 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x8f, 0x31, 0x4b, 0xc3, 0x40, + 0x18, 0x86, 0xf3, 0x99, 0xb6, 0xb6, 0x27, 0x88, 0x1c, 0x2a, 0x25, 0xc3, 0x25, 0x74, 0xca, 0xa0, + 0xa9, 0x54, 0x74, 0xe8, 0x18, 0x04, 0x07, 0xb7, 0x20, 0x38, 0x27, 0xf6, 0xbc, 0x1c, 0x18, 0x2f, + 0x24, 0x5f, 0x70, 0x75, 0x74, 0x14, 0xfc, 0x03, 0xba, 0xf9, 0x13, 0x1c, 0x1d, 0x3b, 0xfa, 0x0b, + 0xb4, 0x3d, 0xff, 0x80, 0x63, 0x47, 0xf1, 0xd2, 0xd8, 0xd5, 0xed, 0x7d, 0xe0, 0x7d, 0x3f, 0x9e, + 0x8f, 0x6c, 0xca, 0xb2, 0xac, 0xf8, 0xe8, 0xf8, 0x20, 0xc8, 0x0b, 0x85, 0x8a, 0x76, 0x1b, 0x76, + 0xf6, 0x85, 0xc4, 0xb4, 0x4a, 0x82, 0x4b, 0x95, 0x0d, 0x85, 0x12, 0x6a, 0x68, 0x0a, 0x49, 0x75, + 0x65, 0xc8, 0x80, 0x49, 0xf5, 0xd0, 0x71, 0x85, 0x52, 0xe2, 0x9a, 0xaf, 0x5a, 0x28, 0x33, 0x5e, + 0x62, 0x9c, 0xe5, 0x75, 0x61, 0x70, 0x44, 0xd6, 0x4f, 0x0a, 0x95, 0xe7, 0x7c, 0x42, 0x29, 0x69, + 0xdd, 0xc4, 0x19, 0xef, 0x83, 0x07, 0x7e, 0x2f, 0x32, 0x99, 0x6e, 0x11, 0x3b, 0x16, 0xbc, 0xbf, + 0xe6, 0x81, 0xdf, 0x8e, 0x7e, 0xe3, 0xb8, 0xf5, 0xfd, 0xec, 0x5a, 0x83, 0x47, 0x20, 0x3b, 0xcb, + 0xdd, 0x85, 0xc4, 0x54, 0x55, 0x78, 0xca, 0x11, 0x79, 0x51, 0xd2, 0x5d, 0xd2, 0x49, 0xb9, 0x14, + 0x29, 0x9a, 0x3b, 0x76, 0xb4, 0x24, 0xba, 0x4d, 0xda, 0xb7, 0x72, 0x82, 0xa9, 0xb9, 0x65, 0x47, + 0x35, 0xd0, 0x90, 0xf4, 0xfe, 0x8c, 0xfa, 0xb6, 0x07, 0xfe, 0xc6, 0xc8, 0x09, 0x6a, 0xe7, 0xa0, + 0x71, 0x0e, 0xce, 0x9b, 0x46, 0xd8, 0x9d, 0x7e, 0xb8, 0xd6, 0xc3, 0xa7, 0x0b, 0xd1, 0x6a, 0x36, + 0xee, 0xde, 0x3f, 0xb9, 0x96, 0xb1, 0xda, 0x23, 0xad, 0x33, 0x9e, 0xe3, 0xff, 0x3e, 0x09, 0xfd, + 0xd9, 0x9c, 0xc1, 0x62, 0xce, 0xe0, 0x45, 0x33, 0x78, 0xd5, 0x0c, 0xde, 0x34, 0x83, 0xa9, 0x66, + 0xf0, 0xae, 0x19, 0xcc, 0x34, 0x83, 0x85, 0x66, 0xd6, 0xdd, 0x17, 0xb3, 0x92, 0x8e, 0x51, 0x39, + 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x67, 0x75, 0x8b, 0x97, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260.proto b/vendor/github.com/gogo/protobuf/test/issue260/issue260.proto new file mode 100644 index 00000000..bd44c1cf --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package issue260; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message Dropped { + option (gogoproto.typedecl) = false; + string name = 1; + int32 age = 2; +} + +message DroppedWithoutGetters { + option (gogoproto.typedecl) = false; + option (gogoproto.goproto_getters) = false; + int64 height = 1; + int64 width = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; +} + +message Kept { + string name = 1; + int32 age = 2; +} diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go b/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go new file mode 100644 index 00000000..22a4efc4 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go @@ -0,0 +1,658 @@ +// Code generated by protoc-gen-gogo. +// source: issue260.proto +// DO NOT EDIT! + +/* +Package issue260 is a generated protocol buffer package. + +It is generated from these files: + issue260.proto + +It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package issue260 + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestDroppedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Dropped{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedWithoutGettersMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &DroppedWithoutGetters{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKeptMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKeptProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKeptProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Kept{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedWithoutGettersJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKeptJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKeptVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedWithoutGettersSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKeptSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/issue260/models.go b/vendor/github.com/gogo/protobuf/test/issue260/models.go new file mode 100644 index 00000000..de41a8bb --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue260/models.go @@ -0,0 +1,19 @@ +package issue260 + +import "time" + +type Dropped struct { + Name string + Age int32 +} + +func (d *Dropped) Drop() bool { + return true +} + +type DroppedWithoutGetters struct { + Width int64 + Height int64 + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + NullableTimestamp *time.Time `protobuf:"bytes,4,opt,name=nullable_timestamp,json=nullableTimestamp,stdtime" json:"nullable_timestamp,omitempty"` +} diff --git a/vendor/github.com/gogo/protobuf/test/issue261/Makefile b/vendor/github.com/gogo/protobuf/test/issue261/Makefile new file mode 100644 index 00000000..8e2d9a59 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue261/Makefile @@ -0,0 +1,7 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-min-version + go install github.com/gogo/protobuf/protoc-gen-gogoslick + protoc-min-version --version="3.0.0" --gogoslick_out=\ + Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ + :. \ + --proto_path=../../../../../:../../protobuf/:. issue261.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go new file mode 100644 index 00000000..a85f22f5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go @@ -0,0 +1,546 @@ +// Code generated by protoc-gen-gogo. +// source: issue261.proto +// DO NOT EDIT! + +/* + Package issue261 is a generated protocol buffer package. + + It is generated from these files: + issue261.proto + + It has these top-level messages: + MapStdTypes +*/ +package issue261 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" + +import time "time" + +import strings "strings" +import reflect "reflect" +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type MapStdTypes struct { + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorIssue261, []int{0} } + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func init() { + proto.RegisterType((*MapStdTypes)(nil), "issue261.MapStdTypes") +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + return true +} +func (this *MapStdTypes) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&issue261.MapStdTypes{") + keysForNullableDuration := make([]int32, 0, len(this.NullableDuration)) + for k := range this.NullableDuration { + keysForNullableDuration = append(keysForNullableDuration, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + mapStringForNullableDuration := "map[int32]*time.Duration{" + for _, k := range keysForNullableDuration { + mapStringForNullableDuration += fmt.Sprintf("%#v: %#v,", k, this.NullableDuration[k]) + } + mapStringForNullableDuration += "}" + if this.NullableDuration != nil { + s = append(s, "NullableDuration: "+mapStringForNullableDuration+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringIssue261(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *MapStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize += 1 + sovIssue261(uint64(msgSize)) + } + mapSize := 1 + sovIssue261(uint64(k)) + msgSize + i = encodeVarintIssue261(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintIssue261(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintIssue261(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) + n1, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + return i, nil +} + +func encodeFixed64Issue261(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Issue261(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintIssue261(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovIssue261(uint64(l)) + } + mapEntrySize := 1 + sovIssue261(uint64(k)) + l + n += mapEntrySize + 1 + sovIssue261(uint64(mapEntrySize)) + } + } + return n +} + +func sovIssue261(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIssue261(x uint64) (n int) { + return sovIssue261(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MapStdTypes) String() string { + if this == nil { + return "nil" + } + keysForNullableDuration := make([]int32, 0, len(this.NullableDuration)) + for k := range this.NullableDuration { + keysForNullableDuration = append(keysForNullableDuration, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + mapStringForNullableDuration := "map[int32]*time.Duration{" + for _, k := range keysForNullableDuration { + mapStringForNullableDuration += fmt.Sprintf("%v: %v,", k, this.NullableDuration[k]) + } + mapStringForNullableDuration += "}" + s := strings.Join([]string{`&MapStdTypes{`, + `NullableDuration:` + mapStringForNullableDuration + `,`, + `}`, + }, "") + return s +} +func valueToStringIssue261(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *MapStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthIssue261 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthIssue261 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthIssue261 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue = new(time.Duration) + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipIssue261(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue261 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIssue261(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue261 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue261 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue261 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthIssue261 + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue261 + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipIssue261(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthIssue261 = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIssue261 = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("issue261.proto", fileDescriptorIssue261) } + +var fileDescriptorIssue261 = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e, + 0x4d, 0x35, 0x32, 0x33, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4b, 0xcf, + 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x4a, 0x29, 0x2d, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x83, 0xc8, + 0x2b, 0x9d, 0x61, 0xe4, 0xe2, 0xf6, 0x4d, 0x2c, 0x08, 0x2e, 0x49, 0x09, 0xa9, 0x2c, 0x48, 0x2d, + 0x16, 0x8a, 0xe5, 0x12, 0xc8, 0x2b, 0xcd, 0xc9, 0x49, 0x4c, 0xca, 0x49, 0x75, 0x81, 0xaa, 0x94, + 0x60, 0x56, 0x60, 0xd6, 0xe0, 0x36, 0xd2, 0xd6, 0x83, 0xbb, 0x09, 0x49, 0x83, 0x9e, 0x1f, 0x9a, + 0x6a, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x96, 0x19, 0xf7, 0xe5, 0x19, 0x83, 0x30, 0x8c, 0x92, + 0x8a, 0xe3, 0x12, 0xc5, 0xaa, 0x41, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x52, 0x82, 0x51, 0x81, + 0x51, 0x83, 0x35, 0x08, 0xc4, 0x14, 0xd2, 0xe7, 0x62, 0x2d, 0x4b, 0xcc, 0x29, 0x4d, 0x95, 0x60, + 0x52, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd4, 0x83, 0xf8, 0x44, 0x0f, 0xe6, 0x13, 0x3d, 0x98, 0x01, + 0x41, 0x10, 0x75, 0x56, 0x4c, 0x16, 0x8c, 0x4e, 0x3a, 0x17, 0x1e, 0xca, 0x31, 0xdc, 0x78, 0x28, + 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, + 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x17, 0x8f, 0xe4, 0x18, 0x3e, + 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0x21, 0x89, 0x0d, 0x6c, 0x96, 0x31, 0x20, 0x00, 0x00, + 0xff, 0xff, 0xf1, 0xf2, 0x28, 0x08, 0x6e, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue261/issue261.proto b/vendor/github.com/gogo/protobuf/test/issue261/issue261.proto new file mode 100644 index 00000000..6f33793f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue261/issue261.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package issue261; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +import "google/protobuf/duration.proto"; + +message MapStdTypes { + map nullableDuration = 3 [(gogoproto.stdduration) = true]; +} diff --git a/vendor/github.com/gogo/protobuf/test/issue262/Makefile b/vendor/github.com/gogo/protobuf/test/issue262/Makefile new file mode 100644 index 00000000..55547790 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue262/Makefile @@ -0,0 +1,5 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-min-version + go install github.com/gogo/protobuf/protoc-gen-gogoslick + protoc-min-version --version="3.0.0" --proto_path=.:$(GOPATH)/src/:$(GOPATH)/src/github.com/gogo/protobuf/protobuf/ \ + --gogoslick_out=Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types:. timefail.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go new file mode 100644 index 00000000..6afa1445 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go @@ -0,0 +1,414 @@ +// Code generated by protoc-gen-gogo. +// source: timefail.proto +// DO NOT EDIT! + +/* + Package timefail is a generated protocol buffer package. + + It is generated from these files: + timefail.proto + + It has these top-level messages: + TimeFail +*/ +package timefail + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" + +import time "time" + +import strings "strings" +import reflect "reflect" + +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type TimeFail struct { + TimeTest *time.Time `protobuf:"bytes,1,opt,name=time_test,json=timeTest,stdtime" json:"time_test,omitempty"` +} + +func (m *TimeFail) Reset() { *m = TimeFail{} } +func (*TimeFail) ProtoMessage() {} +func (*TimeFail) Descriptor() ([]byte, []int) { return fileDescriptorTimefail, []int{0} } + +func (m *TimeFail) GetTimeTest() *time.Time { + if m != nil { + return m.TimeTest + } + return nil +} + +func init() { + proto.RegisterType((*TimeFail)(nil), "timefail.TimeFail") +} +func (this *TimeFail) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*TimeFail) + if !ok { + that2, ok := that.(TimeFail) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.TimeTest == nil { + if this.TimeTest != nil { + return false + } + } else if !this.TimeTest.Equal(*that1.TimeTest) { + return false + } + return true +} +func (this *TimeFail) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&timefail.TimeFail{") + s = append(s, "TimeTest: "+fmt.Sprintf("%#v", this.TimeTest)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringTimefail(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *TimeFail) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TimeFail) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.TimeTest != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTimefail(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.TimeTest))) + n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.TimeTest, dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + return i, nil +} + +func encodeFixed64Timefail(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Timefail(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTimefail(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *TimeFail) Size() (n int) { + var l int + _ = l + if m.TimeTest != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.TimeTest) + n += 1 + l + sovTimefail(uint64(l)) + } + return n +} + +func sovTimefail(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTimefail(x uint64) (n int) { + return sovTimefail(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *TimeFail) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TimeFail{`, + `TimeTest:` + strings.Replace(fmt.Sprintf("%v", this.TimeTest), "Timestamp", "google_protobuf1.Timestamp", 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringTimefail(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *TimeFail) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTimefail + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TimeFail: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TimeFail: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeTest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTimefail + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTimefail + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TimeTest == nil { + m.TimeTest = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.TimeTest, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTimefail(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTimefail + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTimefail(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimefail + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimefail + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimefail + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTimefail + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimefail + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTimefail(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTimefail = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTimefail = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("timefail.proto", fileDescriptorTimefail) } + +var fileDescriptorTimefail = []byte{ + // 202 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xc9, 0xcc, 0x4d, + 0x4d, 0x4b, 0xcc, 0xcc, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4f, 0xcf, + 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x02, 0x19, 0x54, 0x5c, 0x92, 0x98, 0x5b, 0x00, 0x51, 0xa0, + 0xe4, 0xc9, 0xc5, 0x11, 0x92, 0x99, 0x9b, 0xea, 0x96, 0x98, 0x99, 0x23, 0x64, 0xcb, 0xc5, 0x09, + 0x92, 0x8e, 0x2f, 0x49, 0x2d, 0x2e, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd2, 0x83, + 0x18, 0xa0, 0x07, 0x33, 0x40, 0x2f, 0x04, 0x66, 0x80, 0x13, 0xcb, 0x84, 0xfb, 0xf2, 0x8c, 0x41, + 0x60, 0xa7, 0x85, 0xa4, 0x16, 0x97, 0x38, 0xe9, 0x5c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c, + 0xc3, 0x87, 0x87, 0x72, 0x8c, 0x0d, 0x8f, 0xe4, 0x18, 0x57, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, + 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x5f, 0x3c, 0x92, 0x63, 0xf8, 0xf0, + 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0x89, 0xc6, 0x80, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xc3, 0xd6, 0xbd, 0x67, 0xeb, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue262/timefail.proto b/vendor/github.com/gogo/protobuf/test/issue262/timefail.proto new file mode 100644 index 00000000..06bce8be --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue262/timefail.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +package timefail; + +message TimeFail { + google.protobuf.Timestamp time_test = 1 [(gogoproto.stdtime) = true]; +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/issue34/Makefile b/vendor/github.com/gogo/protobuf/test/issue34/Makefile index e6a2cc3c..ecb3e74e 100644 --- a/vendor/github.com/gogo/protobuf/test/issue34/Makefile +++ b/vendor/github.com/gogo/protobuf/test/issue34/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/issue34/issue34_test.go b/vendor/github.com/gogo/protobuf/test/issue34/issue34_test.go index c246136e..a9fbde48 100644 --- a/vendor/github.com/gogo/protobuf/test/issue34/issue34_test.go +++ b/vendor/github.com/gogo/protobuf/test/issue34/issue34_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go index be2a3d76..6953a4c4 100644 --- a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go @@ -28,7 +28,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Foo struct { Bar []byte `protobuf:"bytes,1,opt,name=bar" json:"bar,omitempty"` @@ -68,8 +70,8 @@ func init() { proto.RegisterType((*Foo)(nil), "issue34.Foo") proto.RegisterType((*FooWithRepeated)(nil), "issue34.FooWithRepeated") } -func (m *Foo) Unmarshal(data []byte) error { - l := len(data) +func (m *Foo) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -81,7 +83,7 @@ func (m *Foo) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -109,7 +111,7 @@ func (m *Foo) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -123,14 +125,14 @@ func (m *Foo) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bar = append(m.Bar[:0], data[iNdEx:postIndex]...) + m.Bar = append(m.Bar[:0], dAtA[iNdEx:postIndex]...) if m.Bar == nil { m.Bar = []byte{} } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto(data[iNdEx:]) + skippy, err := skipProto(dAtA[iNdEx:]) if err != nil { return err } @@ -140,7 +142,7 @@ func (m *Foo) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -150,8 +152,8 @@ func (m *Foo) Unmarshal(data []byte) error { } return nil } -func (m *FooWithRepeated) Unmarshal(data []byte) error { - l := len(data) +func (m *FooWithRepeated) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -163,7 +165,7 @@ func (m *FooWithRepeated) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -191,7 +193,7 @@ func (m *FooWithRepeated) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -206,11 +208,11 @@ func (m *FooWithRepeated) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Bar = append(m.Bar, make([]byte, postIndex-iNdEx)) - copy(m.Bar[len(m.Bar)-1], data[iNdEx:postIndex]) + copy(m.Bar[len(m.Bar)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto(data[iNdEx:]) + skippy, err := skipProto(dAtA[iNdEx:]) if err != nil { return err } @@ -220,7 +222,7 @@ func (m *FooWithRepeated) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -230,8 +232,8 @@ func (m *FooWithRepeated) Unmarshal(data []byte) error { } return nil } -func skipProto(data []byte) (n int, err error) { - l := len(data) +func skipProto(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -242,7 +244,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -260,7 +262,7 @@ func skipProto(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -277,7 +279,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -300,7 +302,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -311,7 +313,7 @@ func skipProto(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto(data[start:]) + next, err := skipProto(dAtA[start:]) if err != nil { return 0, err } @@ -335,14 +337,16 @@ var ( ErrIntOverflowProto = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("proto.proto", fileDescriptorProto) } + var fileDescriptorProto = []byte{ - // 124 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, + // 126 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xec, 0x99, 0xc5, 0xc5, 0xa5, 0xa9, 0xc6, 0x26, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xf9, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xfa, 0x94, 0xc4, 0xb9, 0x98, 0xdd, 0xf2, 0xf3, 0x85, 0x04, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82, - 0x40, 0x4c, 0x25, 0x65, 0x2e, 0x7e, 0xa0, 0x44, 0x38, 0xd0, 0xb0, 0xa0, 0xd4, 0x82, 0xd4, 0xc4, - 0x92, 0xd4, 0x14, 0x84, 0x22, 0x66, 0xa8, 0x22, 0x27, 0x96, 0x0b, 0x8f, 0xe4, 0x18, 0x01, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x00, 0xb2, 0x1b, 0xef, 0x89, 0x00, 0x00, 0x00, + 0x40, 0x4c, 0x25, 0x65, 0x2e, 0x7e, 0xb7, 0xfc, 0xfc, 0xf0, 0xcc, 0x92, 0x8c, 0xa0, 0xd4, 0x82, + 0xd4, 0xc4, 0x92, 0xd4, 0x14, 0x84, 0x22, 0x66, 0xa8, 0x22, 0x27, 0x96, 0x0b, 0x8f, 0xe4, 0x18, + 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb2, 0x1b, 0xef, 0x89, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/issue34/proto.proto b/vendor/github.com/gogo/protobuf/test/issue34/proto.proto index 2a2d0b13..5531befb 100644 --- a/vendor/github.com/gogo/protobuf/test/issue34/proto.proto +++ b/vendor/github.com/gogo/protobuf/test/issue34/proto.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package issue34; diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/Makefile b/vendor/github.com/gogo/protobuf/test/issue42order/Makefile index 0f09007f..5b8e59bd 100644 --- a/vendor/github.com/gogo/protobuf/test/issue42order/Makefile +++ b/vendor/github.com/gogo/protobuf/test/issue42order/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go index d66f23a2..8b635cbe 100644 --- a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go @@ -28,11 +28,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type UnorderedFields struct { - A *int64 `protobuf:"varint,10,opt,name=A,json=a" json:"A,omitempty"` - B *uint64 `protobuf:"fixed64,1,opt,name=B,json=b" json:"B,omitempty"` + A *int64 `protobuf:"varint,10,opt,name=A" json:"A,omitempty"` + B *uint64 `protobuf:"fixed64,1,opt,name=B" json:"B,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -56,8 +58,8 @@ func (m *UnorderedFields) GetB() uint64 { } type OrderedFields struct { - B *uint64 `protobuf:"fixed64,1,opt,name=B,json=b" json:"B,omitempty"` - A *int64 `protobuf:"varint,10,opt,name=A,json=a" json:"A,omitempty"` + B *uint64 `protobuf:"fixed64,1,opt,name=B" json:"B,omitempty"` + A *int64 `protobuf:"varint,10,opt,name=A" json:"A,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -84,93 +86,93 @@ func init() { proto.RegisterType((*UnorderedFields)(nil), "issue42.UnorderedFields") proto.RegisterType((*OrderedFields)(nil), "issue42.OrderedFields") } -func (m *UnorderedFields) Marshal() (data []byte, err error) { +func (m *UnorderedFields) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *UnorderedFields) MarshalTo(data []byte) (int, error) { +func (m *UnorderedFields) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.B != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Issue42(data, i, uint64(*m.B)) + i = encodeFixed64Issue42(dAtA, i, uint64(*m.B)) } if m.A != nil { - data[i] = 0x50 + dAtA[i] = 0x50 i++ - i = encodeVarintIssue42(data, i, uint64(*m.A)) + i = encodeVarintIssue42(dAtA, i, uint64(*m.A)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OrderedFields) Marshal() (data []byte, err error) { +func (m *OrderedFields) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OrderedFields) MarshalTo(data []byte) (int, error) { +func (m *OrderedFields) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.B != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Issue42(data, i, uint64(*m.B)) + i = encodeFixed64Issue42(dAtA, i, uint64(*m.B)) } if m.A != nil { - data[i] = 0x50 + dAtA[i] = 0x50 i++ - i = encodeVarintIssue42(data, i, uint64(*m.A)) + i = encodeVarintIssue42(dAtA, i, uint64(*m.A)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Issue42(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Issue42(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Issue42(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Issue42(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintIssue42(data []byte, offset int, v uint64) int { +func encodeVarintIssue42(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedUnorderedFields(r randyIssue42, easy bool) *UnorderedFields { @@ -237,7 +239,7 @@ func randStringIssue42(r randyIssue42) string { } return string(tmps) } -func randUnrecognizedIssue42(r randyIssue42, maxFieldNumber int) (data []byte) { +func randUnrecognizedIssue42(r randyIssue42, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -245,43 +247,43 @@ func randUnrecognizedIssue42(r randyIssue42, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldIssue42(data, r, fieldNumber, wire) + dAtA = randFieldIssue42(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldIssue42(data []byte, r randyIssue42, fieldNumber int, wire int) []byte { +func randFieldIssue42(dAtA []byte, r randyIssue42, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateIssue42(data, uint64(key)) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateIssue42(data, uint64(v6)) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateIssue42(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateIssue42(data, uint64(key)) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateIssue42(data, uint64(ll)) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateIssue42(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateIssue42(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateIssue42(data []byte, v uint64) []byte { +func encodeVarintPopulateIssue42(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *UnorderedFields) Size() (n int) { var l int @@ -326,8 +328,8 @@ func sovIssue42(x uint64) (n int) { func sozIssue42(x uint64) (n int) { return sovIssue42(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *UnorderedFields) Unmarshal(data []byte) error { - l := len(data) +func (m *UnorderedFields) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -339,7 +341,7 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -364,14 +366,14 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.B = &v case 10: if wireType != 0 { @@ -385,7 +387,7 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -395,7 +397,7 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { m.A = &v default: iNdEx = preIndex - skippy, err := skipIssue42(data[iNdEx:]) + skippy, err := skipIssue42(dAtA[iNdEx:]) if err != nil { return err } @@ -405,7 +407,7 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -415,8 +417,8 @@ func (m *UnorderedFields) Unmarshal(data []byte) error { } return nil } -func (m *OrderedFields) Unmarshal(data []byte) error { - l := len(data) +func (m *OrderedFields) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -428,7 +430,7 @@ func (m *OrderedFields) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -453,14 +455,14 @@ func (m *OrderedFields) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.B = &v case 10: if wireType != 0 { @@ -474,7 +476,7 @@ func (m *OrderedFields) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -484,7 +486,7 @@ func (m *OrderedFields) Unmarshal(data []byte) error { m.A = &v default: iNdEx = preIndex - skippy, err := skipIssue42(data[iNdEx:]) + skippy, err := skipIssue42(dAtA[iNdEx:]) if err != nil { return err } @@ -494,7 +496,7 @@ func (m *OrderedFields) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -504,8 +506,8 @@ func (m *OrderedFields) Unmarshal(data []byte) error { } return nil } -func skipIssue42(data []byte) (n int, err error) { - l := len(data) +func skipIssue42(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -516,7 +518,7 @@ func skipIssue42(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -534,7 +536,7 @@ func skipIssue42(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -551,7 +553,7 @@ func skipIssue42(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -574,7 +576,7 @@ func skipIssue42(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -585,7 +587,7 @@ func skipIssue42(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipIssue42(data[start:]) + next, err := skipIssue42(dAtA[start:]) if err != nil { return 0, err } @@ -609,15 +611,17 @@ var ( ErrIntOverflowIssue42 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("issue42.proto", fileDescriptorIssue42) } + var fileDescriptorIssue42 = []byte{ - // 140 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0xcd, 0x2c, 0x2e, 0x2e, + // 144 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcd, 0x2c, 0x2e, 0x2e, 0x4d, 0x35, 0x31, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x87, 0x72, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xf2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xf4, 0x29, 0xe9, 0x72, 0xf1, 0x87, 0xe6, 0xe5, 0x17, 0xa5, 0xa4, 0x16, 0xa5, 0xa6, 0xb8, 0x65, 0xa6, 0xe6, 0xa4, 0x14, 0x0b, 0xf1, - 0x70, 0x31, 0x3a, 0x49, 0x30, 0x2a, 0x30, 0x6a, 0xb0, 0x05, 0x31, 0x26, 0x81, 0x78, 0x8e, 0x12, - 0x5c, 0x40, 0x1e, 0x73, 0x10, 0x63, 0xa2, 0x92, 0x36, 0x17, 0xaf, 0x3f, 0xb1, 0x8a, 0x9d, 0x04, - 0x7e, 0x3c, 0x94, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0x02, 0x10, 0x3f, 0x00, 0x62, 0x40, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xad, 0x9a, 0xd1, 0x5b, 0xb5, 0x00, 0x00, 0x00, + 0x70, 0x31, 0x3a, 0x49, 0x30, 0x2a, 0x30, 0x6a, 0xb0, 0x05, 0x31, 0x3a, 0x81, 0x78, 0x8e, 0x12, + 0x5c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x8c, 0x8e, 0x4a, 0xda, 0x5c, 0xbc, 0xfe, 0xc4, 0x2a, 0x76, + 0x12, 0xf8, 0xf1, 0x50, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, + 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x94, 0xa9, 0xfd, 0x9c, 0xb5, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.proto b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.proto index abaf4a63..5e8b77be 100644 --- a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.proto +++ b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.proto @@ -1,4 +1,6 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/order_test.go b/vendor/github.com/gogo/protobuf/test/issue42order/order_test.go index 2d8069a9..571731c7 100644 --- a/vendor/github.com/gogo/protobuf/test/issue42order/order_test.go +++ b/vendor/github.com/gogo/protobuf/test/issue42order/order_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/issue8/Makefile b/vendor/github.com/gogo/protobuf/test/issue8/Makefile index e6a2cc3c..ecb3e74e 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/Makefile +++ b/vendor/github.com/gogo/protobuf/test/issue8/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go index 75716381..e449983c 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go @@ -30,7 +30,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto1.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto1.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Foo struct { Bar *uint64 `protobuf:"varint,1,req,name=bar" json:"bar,omitempty"` @@ -127,7 +129,7 @@ func randStringProto(r randyProto) string { } return string(tmps) } -func randUnrecognizedProto(r randyProto, maxFieldNumber int) (data []byte) { +func randUnrecognizedProto(r randyProto, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -135,47 +137,47 @@ func randUnrecognizedProto(r randyProto, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldProto(data, r, fieldNumber, wire) + dAtA = randFieldProto(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldProto(data []byte, r randyProto, fieldNumber int, wire int) []byte { +func randFieldProto(dAtA []byte, r randyProto, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateProto(data, uint64(key)) + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateProto(data, uint64(v3)) + dAtA = encodeVarintPopulateProto(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateProto(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateProto(data, uint64(key)) + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateProto(data, uint64(ll)) + dAtA = encodeVarintPopulateProto(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateProto(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateProto(data []byte, v uint64) []byte { +func encodeVarintPopulateProto(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } -func (m *Foo) Unmarshal(data []byte) error { +func (m *Foo) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -187,7 +189,7 @@ func (m *Foo) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -215,7 +217,7 @@ func (m *Foo) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -226,7 +228,7 @@ func (m *Foo) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00000001) default: iNdEx = preIndex - skippy, err := skipProto(data[iNdEx:]) + skippy, err := skipProto(dAtA[iNdEx:]) if err != nil { return err } @@ -236,7 +238,7 @@ func (m *Foo) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -249,8 +251,8 @@ func (m *Foo) Unmarshal(data []byte) error { } return nil } -func skipProto(data []byte) (n int, err error) { - l := len(data) +func skipProto(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -261,7 +263,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -279,7 +281,7 @@ func skipProto(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -296,7 +298,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -319,7 +321,7 @@ func skipProto(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -330,7 +332,7 @@ func skipProto(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto(data[start:]) + next, err := skipProto(dAtA[start:]) if err != nil { return 0, err } @@ -354,13 +356,15 @@ var ( ErrIntOverflowProto = fmt.Errorf("proto: integer overflow") ) +func init() { proto1.RegisterFile("proto.proto", fileDescriptorProto) } + var fileDescriptorProto = []byte{ - // 106 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, + // 109 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f, 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xac, 0x60, 0x4a, 0x4a, 0x37, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0x3f, 0x3d, 0x3f, 0x3d, 0x5f, 0x1f, 0x2c, 0x9c, 0x54, 0x9a, 0x06, 0xe6, 0x81, 0x39, 0x60, 0x16, 0x44, 0x97, 0x92, 0x38, 0x17, 0xb3, 0x5b, 0x7e, 0xbe, 0x90, 0x00, 0x17, 0x73, 0x52, 0x62, 0x91, 0x04, 0xa3, 0x02, 0x93, 0x06, 0x4b, 0x10, 0x88, 0xe9, 0x24, 0xf0, 0xe3, - 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x80, 0xf8, 0x02, 0x10, 0x03, 0x02, 0x00, 0x00, - 0xff, 0xff, 0x54, 0x06, 0x1b, 0x76, 0x6e, 0x00, 0x00, 0x00, + 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0x08, + 0x08, 0x00, 0x00, 0xff, 0xff, 0x54, 0x06, 0x1b, 0x76, 0x6e, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/issue8/proto.proto b/vendor/github.com/gogo/protobuf/test/issue8/proto.proto index 61d23946..2c9bcf46 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/proto.proto +++ b/vendor/github.com/gogo/protobuf/test/issue8/proto.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package proto; diff --git a/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go b/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go index fd9207b3..304aaa54 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go +++ b/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go @@ -32,18 +32,18 @@ func TestFooProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -81,9 +81,9 @@ func TestFooProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -95,9 +95,9 @@ func TestFooProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/Makefile b/vendor/github.com/gogo/protobuf/test/mapsproto2/Makefile index 96f71ef1..6a43fe50 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/Makefile +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -27,7 +27,9 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: + go install github.com/gogo/protobuf/protoc-gen-combo + go install github.com/gogo/protobuf/protoc-gen-gogo cp header.proto mapsproto2.proto cat ../theproto3/maps.proto >> mapsproto2.proto - go install github.com/gogo/protobuf/protoc-gen-combo - protoc-gen-combo --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. mapsproto2.proto \ No newline at end of file + find combos -type d -not -name combos -exec cp mapsproto2_test.go.in {}/mapsproto2_test.go \; + protoc-gen-combo --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. mapsproto2.proto diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go index 7e1f0776..f8e42b0a 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go @@ -10,6 +10,7 @@ It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,12 +33,9 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -44,7 +45,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -92,58 +95,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -151,6 +167,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -160,264 +179,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4105 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x5e, 0xde, 0xc9, 0x43, 0x8a, 0x1c, 0x8d, 0xe4, 0x35, 0xad, 0xd8, 0xbb, 0x5e, 0xda, 0x8e, - 0xd7, 0x72, 0x22, 0x39, 0x4a, 0x6c, 0xaf, 0xe9, 0xc4, 0x81, 0x2e, 0x5c, 0xad, 0x1c, 0x5d, 0xd8, - 0xa1, 0x64, 0xaf, 0x5d, 0x18, 0xec, 0x88, 0x1c, 0x52, 0xb4, 0xc9, 0x19, 0x96, 0x33, 0x5c, 0xaf, - 0xf2, 0xe4, 0xc2, 0xbd, 0x20, 0x28, 0x7a, 0x2f, 0x50, 0xc7, 0x71, 0xd2, 0x3a, 0x68, 0xeb, 0x34, - 0xbd, 0x25, 0xbd, 0xa1, 0xe8, 0x53, 0x80, 0x22, 0x6d, 0x9e, 0x8a, 0xb4, 0x4f, 0x79, 0xc8, 0x43, - 0x92, 0x1a, 0xa8, 0xdb, 0xa6, 0xad, 0x0b, 0x2c, 0xd0, 0x00, 0x7e, 0xe9, 0xf9, 0x6f, 0xc3, 0x7f, - 0x86, 0x43, 0x0e, 0x15, 0x20, 0x89, 0x1f, 0x56, 0x00, 0x21, 0xce, 0xf9, 0xcf, 0xf7, 0xcd, 0x99, - 0xf3, 0x9f, 0xff, 0x9c, 0xf3, 0xff, 0x1c, 0xf8, 0xfb, 0x8f, 0xc0, 0xbd, 0x6d, 0xcb, 0x6a, 0x77, - 0x8d, 0xd5, 0xfe, 0xc0, 0x72, 0xac, 0xe3, 0x61, 0x6b, 0xb5, 0x69, 0xd8, 0x8d, 0x41, 0xa7, 0xef, - 0x58, 0x83, 0x15, 0x2a, 0x53, 0x0b, 0x4c, 0x63, 0x45, 0x68, 0x94, 0xf6, 0x60, 0xfe, 0x6a, 0xa7, - 0x6b, 0x6c, 0xb9, 0x8a, 0x35, 0xc3, 0x51, 0xaf, 0x40, 0xbc, 0x85, 0xc2, 0x62, 0xe4, 0xde, 0xd8, - 0xe5, 0xec, 0xda, 0xfd, 0x2b, 0x3e, 0xd0, 0x8a, 0x17, 0x51, 0x25, 0x62, 0x8d, 0x22, 0x4a, 0x6f, - 0xc7, 0x61, 0x21, 0x60, 0x54, 0x55, 0x21, 0x6e, 0xea, 0x3d, 0xc2, 0x18, 0xb9, 0x9c, 0xd1, 0xe8, - 0x77, 0xb5, 0x08, 0xa9, 0xbe, 0xde, 0x78, 0x49, 0x6f, 0x1b, 0xc5, 0x28, 0x15, 0x8b, 0x4b, 0xf5, - 0x02, 0x40, 0xd3, 0xe8, 0x1b, 0x66, 0xd3, 0x30, 0x1b, 0xa7, 0xc5, 0x18, 0x5a, 0x91, 0xd1, 0x24, - 0x89, 0xfa, 0x30, 0xcc, 0xf7, 0x87, 0xc7, 0xdd, 0x4e, 0xa3, 0x2e, 0xa9, 0x01, 0xaa, 0x25, 0x34, - 0x85, 0x0d, 0x6c, 0x8d, 0x94, 0x1f, 0x84, 0xc2, 0xcb, 0x86, 0xfe, 0x92, 0xac, 0x9a, 0xa5, 0xaa, - 0x79, 0x22, 0x96, 0x14, 0x37, 0x21, 0xd7, 0x33, 0x6c, 0x1b, 0x0d, 0xa8, 0x3b, 0xa7, 0x7d, 0xa3, - 0x18, 0xa7, 0x4f, 0x7f, 0xef, 0xd8, 0xd3, 0xfb, 0x9f, 0x3c, 0xcb, 0x51, 0x87, 0x08, 0x52, 0xd7, - 0x21, 0x63, 0x98, 0xc3, 0x1e, 0x63, 0x48, 0x4c, 0xf0, 0x5f, 0x05, 0x35, 0xfc, 0x2c, 0x69, 0x02, - 0xe3, 0x14, 0x29, 0xdb, 0x18, 0xdc, 0xe8, 0x34, 0x8c, 0x62, 0x92, 0x12, 0x3c, 0x38, 0x46, 0x50, - 0x63, 0xe3, 0x7e, 0x0e, 0x81, 0xc3, 0x47, 0xc9, 0x18, 0x37, 0x1d, 0xc3, 0xb4, 0x3b, 0x96, 0x59, - 0x4c, 0x51, 0x92, 0x07, 0x02, 0x66, 0xd1, 0xe8, 0x36, 0xfd, 0x14, 0x23, 0x9c, 0xfa, 0x18, 0xa4, - 0xac, 0xbe, 0x83, 0xdf, 0xec, 0x62, 0x1a, 0xe7, 0x27, 0xbb, 0x76, 0x77, 0x60, 0x20, 0x1c, 0x30, - 0x1d, 0x4d, 0x28, 0xab, 0x3b, 0xa0, 0xd8, 0xd6, 0x70, 0xd0, 0x30, 0xea, 0x0d, 0xab, 0x69, 0xd4, - 0x3b, 0x66, 0xcb, 0x2a, 0x66, 0x28, 0xc1, 0xc5, 0xf1, 0x07, 0xa1, 0x8a, 0x9b, 0xa8, 0xb7, 0x83, - 0x6a, 0x5a, 0xde, 0xf6, 0x5c, 0xab, 0xe7, 0x21, 0x69, 0x9f, 0x9a, 0x8e, 0x7e, 0xb3, 0x98, 0xa3, - 0x11, 0xc2, 0xaf, 0x4a, 0xff, 0x97, 0x80, 0xc2, 0x2c, 0x21, 0xf6, 0x24, 0x24, 0x5a, 0xe4, 0x29, - 0x31, 0xc0, 0xce, 0xe0, 0x03, 0x86, 0xf1, 0x3a, 0x31, 0xf9, 0x43, 0x3a, 0x71, 0x1d, 0xb2, 0xa6, - 0x61, 0x3b, 0x46, 0x93, 0x45, 0x44, 0x6c, 0xc6, 0x98, 0x02, 0x06, 0x1a, 0x0f, 0xa9, 0xf8, 0x0f, - 0x15, 0x52, 0xd7, 0xa1, 0xe0, 0x9a, 0x54, 0x1f, 0xe8, 0x66, 0x5b, 0xc4, 0xe6, 0x6a, 0x98, 0x25, - 0x2b, 0x15, 0x81, 0xd3, 0x08, 0x4c, 0xcb, 0x1b, 0x9e, 0x6b, 0x75, 0x0b, 0xc0, 0x32, 0x0d, 0xab, - 0x85, 0xcb, 0xab, 0xd1, 0xc5, 0x38, 0x09, 0xf6, 0xd2, 0x01, 0x51, 0x19, 0xf3, 0x92, 0xc5, 0xa4, - 0x8d, 0xae, 0xfa, 0xc4, 0x28, 0xd4, 0x52, 0x13, 0x22, 0x65, 0x8f, 0x2d, 0xb2, 0xb1, 0x68, 0x3b, - 0x82, 0xfc, 0xc0, 0x20, 0x71, 0x8f, 0x2e, 0x66, 0x4f, 0x96, 0xa1, 0x46, 0xac, 0x84, 0x3e, 0x99, - 0xc6, 0x61, 0xec, 0xc1, 0xe6, 0x06, 0xf2, 0xa5, 0x7a, 0x1f, 0xb8, 0x82, 0x3a, 0x0d, 0x2b, 0xa0, - 0x59, 0x28, 0x27, 0x84, 0xfb, 0x28, 0x5b, 0xba, 0x02, 0x79, 0xaf, 0x7b, 0xd4, 0x45, 0x48, 0xd8, - 0x8e, 0x3e, 0x70, 0x68, 0x14, 0x26, 0x34, 0x76, 0xa1, 0x2a, 0x10, 0xc3, 0x24, 0x43, 0xb3, 0x5c, - 0x42, 0x23, 0x5f, 0x97, 0x1e, 0x87, 0x39, 0xcf, 0xed, 0x67, 0x05, 0x96, 0x5e, 0x4b, 0xc2, 0x62, - 0x50, 0xcc, 0x05, 0x86, 0x3f, 0x2e, 0x1f, 0x8c, 0x80, 0x63, 0x63, 0x80, 0x71, 0x47, 0x18, 0xf8, - 0x15, 0x46, 0x54, 0xa2, 0xab, 0x1f, 0x1b, 0x5d, 0x8c, 0xa6, 0xc8, 0xe5, 0xfc, 0xda, 0xc3, 0x33, - 0x45, 0xf5, 0xca, 0x2e, 0x81, 0x68, 0x0c, 0xa9, 0x3e, 0x05, 0x71, 0x9e, 0xe2, 0x08, 0xc3, 0xf2, - 0x6c, 0x0c, 0x24, 0x16, 0x35, 0x8a, 0x53, 0x3f, 0x00, 0x19, 0xf2, 0x9f, 0xf9, 0x36, 0x49, 0x6d, - 0x4e, 0x13, 0x01, 0xf1, 0xab, 0xba, 0x04, 0x69, 0x1a, 0x66, 0x4d, 0x43, 0x94, 0x06, 0xf7, 0x9a, - 0x4c, 0x4c, 0xd3, 0x68, 0xe9, 0xc3, 0xae, 0x53, 0xbf, 0xa1, 0x77, 0x87, 0x06, 0x0d, 0x18, 0x9c, - 0x18, 0x2e, 0x7c, 0x86, 0xc8, 0xd4, 0x8b, 0x90, 0x65, 0x51, 0xd9, 0x41, 0xcc, 0x4d, 0x9a, 0x7d, - 0x12, 0x1a, 0x0b, 0xd4, 0x1d, 0x22, 0x21, 0xb7, 0x7f, 0xd1, 0xc6, 0xb5, 0xc0, 0xa7, 0x96, 0xde, - 0x82, 0x08, 0xe8, 0xed, 0x1f, 0xf7, 0x27, 0xbe, 0x7b, 0x82, 0x1f, 0xcf, 0x1f, 0x8b, 0xa5, 0xbf, - 0x89, 0x42, 0x9c, 0xae, 0xb7, 0x02, 0x64, 0x0f, 0x9f, 0xab, 0x56, 0xea, 0x5b, 0x07, 0x47, 0x1b, - 0xbb, 0x15, 0x25, 0xa2, 0xe6, 0x01, 0xa8, 0xe0, 0xea, 0xee, 0xc1, 0xfa, 0xa1, 0x12, 0x75, 0xaf, - 0x77, 0xf6, 0x0f, 0x1f, 0xfb, 0x98, 0x12, 0x73, 0x01, 0x47, 0x4c, 0x10, 0x97, 0x15, 0x3e, 0xba, - 0xa6, 0x24, 0x30, 0x12, 0x72, 0x8c, 0x60, 0xe7, 0x7a, 0x65, 0x0b, 0x35, 0x92, 0x5e, 0x09, 0xea, - 0xa4, 0xd4, 0x39, 0xc8, 0x50, 0xc9, 0xc6, 0xc1, 0xc1, 0xae, 0x92, 0x76, 0x39, 0x6b, 0x87, 0xda, - 0xce, 0xfe, 0xb6, 0x92, 0x71, 0x39, 0xb7, 0xb5, 0x83, 0xa3, 0xaa, 0x02, 0x2e, 0xc3, 0x5e, 0xa5, - 0x56, 0x5b, 0xdf, 0xae, 0x28, 0x59, 0x57, 0x63, 0xe3, 0xb9, 0xc3, 0x4a, 0x4d, 0xc9, 0x79, 0xcc, - 0xc2, 0x5b, 0xcc, 0xb9, 0xb7, 0xa8, 0xec, 0x1f, 0xed, 0x29, 0x79, 0x75, 0x1e, 0xe6, 0xd8, 0x2d, - 0x84, 0x11, 0x05, 0x9f, 0x08, 0x2d, 0x55, 0x46, 0x86, 0x30, 0x96, 0x79, 0x8f, 0x00, 0x35, 0xd4, - 0xd2, 0x26, 0x24, 0x68, 0x74, 0x61, 0x14, 0xe7, 0x77, 0xd7, 0x37, 0x2a, 0xbb, 0xf5, 0x83, 0xea, - 0xe1, 0xce, 0xc1, 0xfe, 0xfa, 0x2e, 0xfa, 0xce, 0x95, 0x69, 0x95, 0x9f, 0x3a, 0xda, 0xd1, 0x2a, - 0x5b, 0xe8, 0x3f, 0x49, 0x56, 0xad, 0xac, 0x1f, 0xa2, 0x2c, 0x56, 0x5a, 0x86, 0xc5, 0xa0, 0x3c, - 0x13, 0xb4, 0x32, 0x4a, 0x5f, 0x8c, 0xc0, 0x42, 0x40, 0xca, 0x0c, 0x5c, 0x45, 0x9f, 0x84, 0x04, - 0x8b, 0x34, 0x56, 0x44, 0x1e, 0x0a, 0xcc, 0xbd, 0x34, 0xee, 0xc6, 0x0a, 0x09, 0xc5, 0xc9, 0x85, - 0x34, 0x36, 0xa1, 0x90, 0x12, 0x8a, 0xb1, 0x70, 0x7a, 0x35, 0x02, 0xc5, 0x49, 0xdc, 0x21, 0xeb, - 0x3d, 0xea, 0x59, 0xef, 0x4f, 0xfa, 0x0d, 0xb8, 0x34, 0xf9, 0x19, 0xc6, 0xac, 0x78, 0x2b, 0x02, - 0xe7, 0x83, 0xfb, 0x8d, 0x40, 0x1b, 0x9e, 0x82, 0x64, 0xcf, 0x70, 0x4e, 0x2c, 0x51, 0x73, 0x3f, - 0x18, 0x90, 0xc9, 0xc9, 0xb0, 0xdf, 0x57, 0x1c, 0x25, 0x97, 0x82, 0xd8, 0xa4, 0xa6, 0x81, 0x59, - 0x33, 0x66, 0xe9, 0x67, 0xa2, 0x70, 0x47, 0x20, 0x79, 0xa0, 0xa1, 0xf7, 0x00, 0x74, 0xcc, 0xfe, - 0xd0, 0x61, 0x75, 0x95, 0xa5, 0x99, 0x0c, 0x95, 0xd0, 0x25, 0x4c, 0x52, 0xc8, 0xd0, 0x71, 0xc7, - 0x63, 0x74, 0x1c, 0x98, 0x88, 0x2a, 0x5c, 0x19, 0x19, 0x1a, 0xa7, 0x86, 0x5e, 0x98, 0xf0, 0xa4, - 0x63, 0x25, 0xeb, 0x11, 0x50, 0x1a, 0xdd, 0x8e, 0x61, 0x3a, 0x75, 0xdb, 0x19, 0x18, 0x7a, 0xaf, - 0x63, 0xb6, 0x69, 0x1e, 0x4d, 0x97, 0x13, 0x2d, 0xbd, 0x6b, 0x1b, 0x5a, 0x81, 0x0d, 0xd7, 0xc4, - 0x28, 0x41, 0xd0, 0x62, 0x31, 0x90, 0x10, 0x49, 0x0f, 0x82, 0x0d, 0xbb, 0x88, 0xd2, 0xbf, 0xa4, - 0x20, 0x2b, 0x75, 0x67, 0xea, 0x25, 0xc8, 0xbd, 0xa8, 0xdf, 0xd0, 0xeb, 0xa2, 0xe3, 0x66, 0x9e, - 0xc8, 0x12, 0x59, 0x95, 0x77, 0xdd, 0x8f, 0xc0, 0x22, 0x55, 0xc1, 0x67, 0xc4, 0x1b, 0x35, 0xba, - 0xba, 0x6d, 0x53, 0xa7, 0xa5, 0xa9, 0xaa, 0x4a, 0xc6, 0x0e, 0xc8, 0xd0, 0xa6, 0x18, 0x51, 0x1f, - 0x85, 0x05, 0x8a, 0xe8, 0x61, 0xe2, 0xed, 0xf4, 0xbb, 0x46, 0x9d, 0xec, 0x01, 0x6c, 0x9a, 0x4f, - 0x5d, 0xcb, 0xe6, 0x89, 0xc6, 0x1e, 0x57, 0x20, 0x16, 0xd9, 0xea, 0x36, 0xdc, 0x43, 0x61, 0x6d, - 0xc3, 0x34, 0x06, 0xba, 0x63, 0xd4, 0x8d, 0x9f, 0x1d, 0xa2, 0x6e, 0x5d, 0x37, 0x9b, 0xf5, 0x13, - 0xdd, 0x3e, 0x29, 0x2e, 0xca, 0x04, 0x77, 0x11, 0xdd, 0x6d, 0xae, 0x5a, 0xa1, 0x9a, 0xeb, 0x66, - 0xf3, 0x1a, 0xea, 0xa9, 0x65, 0x38, 0x4f, 0x89, 0xd0, 0x29, 0xf8, 0xcc, 0xf5, 0xc6, 0x89, 0xd1, - 0x78, 0xa9, 0x3e, 0x74, 0x5a, 0x57, 0x8a, 0x1f, 0x90, 0x19, 0xa8, 0x91, 0x35, 0xaa, 0xb3, 0x49, - 0x54, 0x8e, 0x50, 0x43, 0xad, 0x41, 0x8e, 0xcc, 0x47, 0xaf, 0xf3, 0x69, 0x34, 0xdb, 0x1a, 0xd0, - 0x1a, 0x91, 0x0f, 0x58, 0xdc, 0x92, 0x13, 0x57, 0x0e, 0x38, 0x60, 0x0f, 0xfb, 0xd3, 0x72, 0xa2, - 0x56, 0xad, 0x54, 0xb6, 0xb4, 0xac, 0x60, 0xb9, 0x6a, 0x0d, 0x48, 0x4c, 0xb5, 0x2d, 0xd7, 0xc7, - 0x59, 0x16, 0x53, 0x6d, 0x4b, 0x78, 0x18, 0xfd, 0xd5, 0x68, 0xb0, 0xc7, 0xc6, 0xbd, 0x0b, 0x6f, - 0xd6, 0xed, 0xa2, 0xe2, 0xf1, 0x57, 0xa3, 0xb1, 0xcd, 0x14, 0x78, 0x98, 0xdb, 0xb8, 0x24, 0xee, - 0x18, 0xf9, 0x4b, 0x06, 0xce, 0x8f, 0x3d, 0xa5, 0x1f, 0x8a, 0x77, 0xec, 0x9f, 0x8e, 0x03, 0x55, - 0xcf, 0x1d, 0xfb, 0xa7, 0x7e, 0xd8, 0x03, 0x74, 0x03, 0x36, 0x30, 0x1a, 0xe8, 0xf2, 0x66, 0xf1, - 0x4e, 0x59, 0x5b, 0x1a, 0x50, 0x57, 0x31, 0x90, 0x1b, 0x75, 0xc3, 0xd4, 0x8f, 0x71, 0xee, 0xf5, - 0x01, 0x7e, 0xb1, 0x8b, 0x17, 0x65, 0xe5, 0x7c, 0xa3, 0x51, 0xa1, 0xa3, 0xeb, 0x74, 0x50, 0x5d, - 0x86, 0x79, 0xeb, 0xf8, 0xc5, 0x06, 0x0b, 0xae, 0x3a, 0xf2, 0xb4, 0x3a, 0x37, 0x8b, 0xf7, 0x53, - 0x37, 0x15, 0xc8, 0x00, 0x0d, 0xad, 0x2a, 0x15, 0xab, 0x0f, 0x21, 0xb9, 0x7d, 0xa2, 0x0f, 0xfa, - 0xb4, 0x48, 0xdb, 0xe8, 0x54, 0xa3, 0xf8, 0x00, 0x53, 0x65, 0xf2, 0x7d, 0x21, 0x56, 0x2b, 0x70, - 0x91, 0x3c, 0xbc, 0xa9, 0x9b, 0x56, 0x7d, 0x68, 0x1b, 0xf5, 0x91, 0x89, 0xee, 0x5c, 0x7c, 0x90, - 0x98, 0xa5, 0xdd, 0x2d, 0xd4, 0x8e, 0x6c, 0x4c, 0x66, 0x42, 0x49, 0x4c, 0xcf, 0x75, 0x58, 0x1c, - 0x9a, 0x1d, 0x13, 0x43, 0x1c, 0x47, 0x08, 0x98, 0x2d, 0xd8, 0xe2, 0xbf, 0xa5, 0x26, 0x34, 0xdd, - 0x47, 0xb2, 0x36, 0x0b, 0x12, 0x6d, 0x61, 0x38, 0x2e, 0x2c, 0x95, 0x21, 0x27, 0xc7, 0x8e, 0x9a, - 0x01, 0x16, 0x3d, 0x58, 0xdd, 0xb0, 0xa2, 0x6e, 0x1e, 0x6c, 0x91, 0x5a, 0xf8, 0x7c, 0x05, 0x0b, - 0x1b, 0xd6, 0xe4, 0xdd, 0x9d, 0xc3, 0x4a, 0x5d, 0x3b, 0xda, 0x3f, 0xdc, 0xd9, 0xab, 0x28, 0xb1, - 0xe5, 0x4c, 0xfa, 0x9d, 0x94, 0xf2, 0x0a, 0xfe, 0x45, 0x4b, 0x5f, 0x8f, 0x42, 0xde, 0xdb, 0x07, - 0xab, 0x1f, 0x87, 0x3b, 0xc5, 0xa6, 0xd5, 0x36, 0x9c, 0xfa, 0xcb, 0x9d, 0x01, 0x0d, 0xe7, 0x9e, - 0xce, 0x3a, 0x49, 0x77, 0x26, 0x16, 0xb9, 0x16, 0x6e, 0xef, 0x9f, 0x45, 0x9d, 0xab, 0x54, 0x45, - 0xdd, 0x85, 0x8b, 0xe8, 0x32, 0xec, 0x35, 0xcd, 0xa6, 0x3e, 0x68, 0xd6, 0x47, 0xc7, 0x05, 0x75, - 0xbd, 0x81, 0x71, 0x60, 0x5b, 0xac, 0x92, 0xb8, 0x2c, 0x77, 0x9b, 0x56, 0x8d, 0x2b, 0x8f, 0x52, - 0xec, 0x3a, 0x57, 0xf5, 0x45, 0x4d, 0x6c, 0x52, 0xd4, 0x60, 0xef, 0xd5, 0xd3, 0xfb, 0x18, 0x36, - 0xce, 0xe0, 0x94, 0x76, 0x6f, 0x69, 0x2d, 0x8d, 0x82, 0x0a, 0xb9, 0xfe, 0xd1, 0xcd, 0x81, 0xec, - 0xc7, 0x6f, 0xc7, 0x20, 0x27, 0x77, 0x70, 0xa4, 0x21, 0x6e, 0xd0, 0x34, 0x1f, 0xa1, 0x59, 0xe0, - 0xbe, 0xa9, 0xfd, 0xde, 0xca, 0x26, 0xc9, 0xff, 0xe5, 0x24, 0xeb, 0xab, 0x34, 0x86, 0x24, 0xb5, - 0x97, 0xc4, 0x9a, 0xc1, 0xba, 0xf5, 0xb4, 0xc6, 0xaf, 0x30, 0xd9, 0x25, 0x5f, 0xb4, 0x29, 0x77, - 0x92, 0x72, 0xdf, 0x3f, 0x9d, 0xfb, 0xe9, 0x1a, 0x25, 0xcf, 0x3c, 0x5d, 0xab, 0xef, 0x1f, 0x68, - 0x7b, 0xeb, 0xbb, 0x1a, 0x87, 0xab, 0x77, 0x41, 0xbc, 0xab, 0x7f, 0xfa, 0xd4, 0x5b, 0x29, 0xa8, - 0x68, 0x56, 0xc7, 0x23, 0x03, 0x39, 0xf2, 0xf0, 0xe6, 0x67, 0x2a, 0xfa, 0x11, 0x86, 0xfe, 0x2a, - 0x24, 0xa8, 0xbf, 0x54, 0x00, 0xee, 0x31, 0xe5, 0x9c, 0x9a, 0x86, 0xf8, 0xe6, 0x81, 0x46, 0xc2, - 0x1f, 0xe3, 0x9d, 0x49, 0xeb, 0xd5, 0x9d, 0xca, 0x26, 0xae, 0x80, 0xd2, 0xa3, 0x90, 0x64, 0x4e, - 0x20, 0x4b, 0xc3, 0x75, 0x03, 0x82, 0xd8, 0x25, 0xe7, 0x88, 0x88, 0xd1, 0xa3, 0xbd, 0x8d, 0x8a, - 0xa6, 0x44, 0xe5, 0xe9, 0xfd, 0xbb, 0x08, 0x64, 0xa5, 0x86, 0x8a, 0x94, 0x72, 0xbd, 0xdb, 0xb5, - 0x5e, 0xae, 0xeb, 0xdd, 0x0e, 0x66, 0x28, 0x36, 0x3f, 0x40, 0x45, 0xeb, 0x44, 0x32, 0xab, 0xff, - 0x7e, 0x2c, 0xb1, 0xf9, 0x85, 0x08, 0x28, 0xfe, 0x66, 0xcc, 0x67, 0x60, 0xe4, 0x27, 0x6a, 0xe0, - 0x1b, 0x11, 0xc8, 0x7b, 0x3b, 0x30, 0x9f, 0x79, 0x97, 0x7e, 0xa2, 0xe6, 0x7d, 0x2e, 0x02, 0x73, - 0x9e, 0xbe, 0xeb, 0x7d, 0x65, 0xdd, 0xeb, 0x31, 0x58, 0x08, 0xc0, 0x61, 0x02, 0x62, 0x0d, 0x2a, - 0xeb, 0x99, 0x3f, 0x3c, 0xcb, 0xbd, 0x56, 0x48, 0xfd, 0xab, 0xea, 0x03, 0x87, 0xf7, 0xb3, 0x58, - 0x2f, 0x3b, 0x4d, 0x4c, 0xaa, 0x9d, 0x56, 0x07, 0xdb, 0x37, 0xb6, 0x63, 0x61, 0x5d, 0x6b, 0x61, - 0x24, 0x67, 0xdb, 0xe3, 0x0f, 0x81, 0xda, 0xb7, 0xec, 0x8e, 0xd3, 0xb9, 0x41, 0x8e, 0xe7, 0xc4, - 0x46, 0x9a, 0x74, 0xb1, 0x71, 0x4d, 0x11, 0x23, 0x3b, 0xa6, 0xe3, 0x6a, 0x9b, 0x46, 0x5b, 0xf7, - 0x69, 0x93, 0x34, 0x14, 0xd3, 0x14, 0x31, 0xe2, 0x6a, 0x63, 0xa3, 0xd9, 0xb4, 0x86, 0xa4, 0x21, - 0x60, 0x7a, 0x24, 0xeb, 0x45, 0xb4, 0x2c, 0x93, 0xb9, 0x2a, 0xbc, 0x63, 0x1b, 0xed, 0xe0, 0x73, - 0x5a, 0x96, 0xc9, 0x98, 0xca, 0x83, 0x50, 0xd0, 0xdb, 0xed, 0x01, 0x21, 0x17, 0x44, 0xac, 0x0d, - 0xcd, 0xbb, 0x62, 0xaa, 0xb8, 0xf4, 0x34, 0xa4, 0x85, 0x1f, 0x48, 0x61, 0x21, 0x9e, 0xc0, 0x9a, - 0x4f, 0xcf, 0x51, 0xa2, 0x64, 0x53, 0x6f, 0x8a, 0x41, 0xbc, 0x69, 0xc7, 0xae, 0x8f, 0x0e, 0xf4, - 0xa2, 0x38, 0x9e, 0xd6, 0xb2, 0x1d, 0xdb, 0x3d, 0xc1, 0x29, 0xbd, 0x85, 0xe5, 0xd5, 0x7b, 0x20, - 0xa9, 0x6e, 0x41, 0xba, 0x6b, 0x61, 0x7c, 0x10, 0x04, 0x3b, 0x0d, 0xbf, 0x1c, 0x72, 0x86, 0xb9, - 0xb2, 0xcb, 0xf5, 0x35, 0x17, 0xb9, 0xf4, 0x4f, 0x11, 0x48, 0x0b, 0x31, 0x16, 0x8a, 0x78, 0x5f, - 0x77, 0x4e, 0x28, 0x5d, 0x62, 0x23, 0xaa, 0x44, 0x34, 0x7a, 0x4d, 0xe4, 0xd8, 0xcd, 0x98, 0x34, - 0x04, 0xb8, 0x9c, 0x5c, 0x93, 0x79, 0xed, 0x1a, 0x7a, 0x93, 0x36, 0xb8, 0x56, 0xaf, 0x87, 0x33, - 0x69, 0x8b, 0x79, 0xe5, 0xf2, 0x4d, 0x2e, 0x26, 0xe7, 0xe2, 0xce, 0x40, 0xef, 0x74, 0x3d, 0xba, - 0x71, 0xaa, 0xab, 0x88, 0x01, 0x57, 0xb9, 0x0c, 0x77, 0x09, 0xde, 0xa6, 0xe1, 0xe8, 0xd8, 0x3c, - 0x37, 0x47, 0xa0, 0x24, 0x3d, 0xed, 0xba, 0x93, 0x2b, 0x6c, 0xf1, 0x71, 0x81, 0xdd, 0xb8, 0x8e, - 0x8d, 0xac, 0xd5, 0xf3, 0x7b, 0x62, 0x43, 0xf1, 0xed, 0xbb, 0xec, 0x6b, 0x91, 0xe7, 0x61, 0xd4, - 0x54, 0x7c, 0x31, 0x1a, 0xdb, 0xae, 0x6e, 0x7c, 0x39, 0xba, 0xb4, 0xcd, 0x70, 0x55, 0xe1, 0x41, - 0xcd, 0x68, 0x75, 0x8d, 0x06, 0xf1, 0x0e, 0xbc, 0x79, 0x1f, 0x7c, 0xb8, 0xdd, 0x71, 0x4e, 0x86, - 0xc7, 0x2b, 0x78, 0x87, 0xd5, 0xb6, 0xd5, 0xb6, 0x46, 0x3f, 0x67, 0x90, 0x2b, 0x7a, 0x41, 0xbf, - 0xf1, 0x9f, 0x34, 0x32, 0xae, 0x74, 0x29, 0xf4, 0xf7, 0x8f, 0xf2, 0x3e, 0x2c, 0x70, 0xe5, 0x3a, - 0x3d, 0x53, 0x65, 0x2d, 0xa8, 0x3a, 0x75, 0x43, 0x5e, 0xfc, 0xea, 0xdb, 0xb4, 0x24, 0x68, 0xf3, - 0x1c, 0x4a, 0xc6, 0x58, 0x93, 0x5a, 0xd6, 0xe0, 0x0e, 0x0f, 0x1f, 0x8b, 0x61, 0xdc, 0x72, 0x4f, - 0x67, 0xfc, 0x3a, 0x67, 0x5c, 0x90, 0x18, 0x6b, 0x1c, 0x5a, 0xde, 0x84, 0xb9, 0xb3, 0x70, 0xfd, - 0x03, 0xe7, 0xca, 0x19, 0x32, 0xc9, 0x36, 0x14, 0x28, 0x49, 0x63, 0x68, 0x3b, 0x56, 0x8f, 0x26, - 0x88, 0xe9, 0x34, 0xff, 0xf8, 0x36, 0x0b, 0xaa, 0x3c, 0x81, 0x6d, 0xba, 0xa8, 0xf2, 0x33, 0xb0, - 0x48, 0x24, 0x74, 0x0d, 0xca, 0x6c, 0xe1, 0x47, 0x08, 0xc5, 0x7f, 0x7e, 0x95, 0xc5, 0xde, 0x82, - 0x4b, 0x20, 0xf1, 0x4a, 0x33, 0xd1, 0x36, 0x1c, 0xcc, 0x6d, 0xb8, 0xff, 0xeb, 0x76, 0xd5, 0xa9, - 0xbf, 0x31, 0x14, 0x3f, 0xfb, 0x7d, 0xef, 0x4c, 0x6c, 0x33, 0xe4, 0x7a, 0xb7, 0x5b, 0x3e, 0x82, - 0x3b, 0x03, 0x66, 0x76, 0x06, 0xce, 0xd7, 0x39, 0xe7, 0xe2, 0xd8, 0xec, 0x12, 0xda, 0x2a, 0x08, - 0xb9, 0x3b, 0x1f, 0x33, 0x70, 0x7e, 0x8e, 0x73, 0xaa, 0x1c, 0x2b, 0xa6, 0x85, 0x30, 0x3e, 0x0d, - 0xf3, 0xb8, 0x53, 0x3f, 0xb6, 0x6c, 0xbe, 0xef, 0x9d, 0x81, 0xee, 0x0d, 0x4e, 0x57, 0xe0, 0x40, - 0xba, 0x0b, 0x26, 0x5c, 0x4f, 0x40, 0xba, 0x85, 0x1b, 0xa0, 0x19, 0x28, 0x3e, 0xcf, 0x29, 0x52, - 0x44, 0x9f, 0x40, 0xd7, 0x21, 0xd7, 0xb6, 0x78, 0x1a, 0x0e, 0x87, 0x7f, 0x81, 0xc3, 0xb3, 0x02, - 0xc3, 0x29, 0xfa, 0x56, 0x7f, 0xd8, 0x25, 0x39, 0x3a, 0x9c, 0xe2, 0x77, 0x05, 0x85, 0xc0, 0x70, - 0x8a, 0x33, 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x2d, 0xf9, 0xf3, 0x93, 0xe4, 0xac, 0xb7, 0x7b, 0x6a, - 0x99, 0xb3, 0x18, 0xf1, 0x26, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x4f, 0x42, 0x66, 0xd6, 0x89, 0xf8, - 0x03, 0x0e, 0x4f, 0x1b, 0x62, 0x06, 0x70, 0x9d, 0x89, 0x24, 0x43, 0x7e, 0x5b, 0x09, 0xa7, 0xf8, - 0x43, 0x4e, 0x91, 0x97, 0x60, 0xfc, 0x31, 0x1c, 0xc3, 0x76, 0x70, 0xab, 0x3e, 0x03, 0xc9, 0x5b, - 0xe2, 0x31, 0x38, 0x84, 0xbb, 0xf2, 0xd8, 0x30, 0x1b, 0x27, 0xb3, 0x31, 0x7c, 0x49, 0xb8, 0x52, - 0x60, 0x08, 0x05, 0x66, 0x9e, 0x9e, 0x3e, 0xc0, 0xcd, 0x75, 0x77, 0xa6, 0xe9, 0xf8, 0x23, 0xce, - 0x91, 0x73, 0x41, 0xdc, 0x23, 0x43, 0xf3, 0x2c, 0x34, 0x5f, 0x16, 0x1e, 0x91, 0x60, 0x7c, 0xe9, - 0xe1, 0xce, 0x94, 0x74, 0x12, 0x67, 0x61, 0xfb, 0x63, 0xb1, 0xf4, 0x18, 0x76, 0x4f, 0x66, 0xc4, - 0x99, 0xb6, 0x71, 0x0b, 0x3e, 0x0b, 0xcd, 0x9f, 0x88, 0x99, 0xa6, 0x00, 0x02, 0x7e, 0x0e, 0xee, - 0x0a, 0x4c, 0xf5, 0x33, 0x90, 0xfd, 0x29, 0x27, 0x3b, 0x1f, 0x90, 0xee, 0x79, 0x4a, 0x38, 0x2b, - 0xe5, 0x9f, 0x89, 0x94, 0x60, 0xf8, 0xb8, 0xaa, 0xa4, 0x8d, 0xb5, 0xf5, 0xd6, 0xd9, 0xbc, 0xf6, - 0xe7, 0xc2, 0x6b, 0x0c, 0xeb, 0xf1, 0xda, 0x21, 0x9c, 0xe7, 0x8c, 0x67, 0x9b, 0xd7, 0xaf, 0x88, - 0xc4, 0xca, 0xd0, 0x47, 0xde, 0xd9, 0xfd, 0x69, 0x58, 0x72, 0xdd, 0x29, 0x3a, 0x30, 0xbb, 0x4e, - 0x0e, 0x06, 0xc2, 0x99, 0xbf, 0xca, 0x99, 0x45, 0xc6, 0x77, 0x5b, 0x38, 0x7b, 0x4f, 0xef, 0x13, - 0xf2, 0xeb, 0x50, 0x14, 0xe4, 0x43, 0x13, 0x1b, 0x7c, 0xab, 0x6d, 0xe2, 0x34, 0x36, 0x67, 0xa0, - 0xfe, 0x0b, 0xdf, 0x54, 0x1d, 0x49, 0x70, 0xc2, 0xbc, 0x03, 0x8a, 0xdb, 0x6f, 0xd4, 0x3b, 0xbd, - 0xbe, 0x85, 0xad, 0xe5, 0x74, 0xc6, 0xbf, 0x14, 0x33, 0xe5, 0xe2, 0x76, 0x28, 0xac, 0x5c, 0x81, - 0x3c, 0xbd, 0x9c, 0x35, 0x24, 0xff, 0x8a, 0x13, 0xcd, 0x8d, 0x50, 0x3c, 0x71, 0x60, 0xa7, 0x84, - 0x3d, 0xef, 0x2c, 0xf9, 0xef, 0xaf, 0x45, 0xe2, 0xe0, 0x10, 0x16, 0x7d, 0x05, 0x5f, 0x25, 0x56, - 0xc3, 0x7e, 0x7e, 0x2d, 0xfe, 0xdc, 0x2d, 0xbe, 0x66, 0xbd, 0x85, 0xb8, 0xbc, 0x4b, 0xdc, 0xe3, - 0x2d, 0x97, 0xe1, 0x64, 0xaf, 0xde, 0x72, 0x3d, 0xe4, 0xa9, 0x96, 0xe5, 0xab, 0x30, 0xe7, 0x29, - 0x95, 0xe1, 0x54, 0x3f, 0xcf, 0xa9, 0x72, 0x72, 0xa5, 0x2c, 0x3f, 0x0a, 0x71, 0x52, 0xf6, 0xc2, - 0xe1, 0xbf, 0xc0, 0xe1, 0x54, 0xbd, 0xfc, 0x09, 0x48, 0x8b, 0x72, 0x17, 0x0e, 0xfd, 0x45, 0x0e, - 0x75, 0x21, 0x04, 0x2e, 0x4a, 0x5d, 0x38, 0xfc, 0x97, 0x04, 0x5c, 0x40, 0x08, 0x7c, 0x76, 0x17, - 0x7e, 0xed, 0x97, 0xe3, 0x3c, 0x5d, 0x09, 0xdf, 0x91, 0xdf, 0x7c, 0x58, 0x8d, 0x0b, 0x47, 0x7f, - 0x86, 0xdf, 0x5c, 0x20, 0xca, 0x8f, 0x43, 0x62, 0x46, 0x87, 0xff, 0x0a, 0x87, 0x32, 0x7d, 0xac, - 0x20, 0x59, 0xa9, 0xae, 0x85, 0xc3, 0x7f, 0x95, 0xc3, 0x65, 0x14, 0x31, 0x9d, 0xd7, 0xb5, 0x70, - 0x82, 0x5f, 0x13, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0x28, 0x69, 0xe1, 0xe8, 0x5f, 0x17, 0x5e, 0x17, - 0x10, 0x5c, 0x4d, 0x19, 0x37, 0x4d, 0x85, 0xe3, 0x7f, 0x83, 0xe3, 0x47, 0x18, 0xe2, 0x01, 0x29, - 0x4d, 0x86, 0x53, 0xfc, 0xa6, 0xf0, 0x80, 0x84, 0x22, 0xcb, 0xc8, 0x5f, 0xfa, 0xc2, 0x99, 0x7e, - 0x4b, 0x2c, 0x23, 0x5f, 0xe5, 0x23, 0xb3, 0x49, 0xb3, 0x45, 0x38, 0xc5, 0x6f, 0x8b, 0xd9, 0xa4, - 0xfa, 0xc4, 0x0c, 0x7f, 0x2d, 0x09, 0xe7, 0xf8, 0x1d, 0x61, 0x86, 0xaf, 0x94, 0x60, 0x65, 0x52, - 0xc7, 0xeb, 0x48, 0x38, 0xdf, 0x6b, 0x9c, 0x6f, 0x7e, 0xac, 0x8c, 0x94, 0x9f, 0x85, 0xf3, 0xc1, - 0x35, 0x24, 0x9c, 0xf5, 0xb3, 0xb7, 0x7c, 0x5d, 0xbf, 0x5c, 0x42, 0xb0, 0xe4, 0x2d, 0x06, 0xd5, - 0x8f, 0x70, 0xda, 0xd7, 0x6f, 0x79, 0x37, 0x76, 0x72, 0xf9, 0xc0, 0x0e, 0x0d, 0x46, 0xa9, 0x3b, - 0x9c, 0xeb, 0x0d, 0xce, 0x25, 0x81, 0xc8, 0xd2, 0xe0, 0x99, 0x3b, 0x1c, 0xff, 0x79, 0xb1, 0x34, - 0x38, 0x02, 0xc1, 0x69, 0x73, 0xd8, 0xed, 0x92, 0xe0, 0x50, 0xa7, 0xbf, 0xd2, 0x50, 0xfc, 0xf7, - 0xf7, 0xf8, 0xc2, 0x10, 0x00, 0xcc, 0xa1, 0x09, 0xa3, 0x77, 0x8c, 0x3e, 0x08, 0x41, 0xfe, 0xc7, - 0x7b, 0x22, 0x21, 0x10, 0x6d, 0x5c, 0x4f, 0xc0, 0x36, 0x8d, 0xf4, 0x0c, 0x3b, 0x04, 0xfb, 0x9f, - 0xef, 0xf1, 0x9f, 0x59, 0x47, 0x90, 0x11, 0x01, 0xfb, 0xd1, 0x76, 0x3a, 0xc1, 0xf7, 0xbd, 0x04, - 0x74, 0xa3, 0xf9, 0x04, 0xa4, 0xc8, 0x9b, 0x1d, 0x8e, 0xde, 0x0e, 0x43, 0xff, 0x17, 0x47, 0x0b, - 0x7d, 0xe2, 0xb0, 0x9e, 0x35, 0x30, 0xf0, 0xab, 0x1d, 0x86, 0xfd, 0x6f, 0x8e, 0x75, 0x01, 0x04, - 0xdc, 0xd0, 0x6d, 0x67, 0x96, 0xe7, 0xfe, 0x1f, 0x01, 0x16, 0x00, 0x62, 0x34, 0xf9, 0xfe, 0x92, - 0x71, 0x1a, 0x86, 0x7d, 0x57, 0x18, 0xcd, 0xf5, 0x31, 0x01, 0x66, 0xc8, 0x57, 0xf6, 0xea, 0x41, - 0x08, 0xf8, 0x7f, 0x39, 0x78, 0x84, 0xd8, 0xb8, 0x14, 0x7c, 0xb4, 0x03, 0xdb, 0xd6, 0xb6, 0xc5, - 0x0e, 0x75, 0xe0, 0xf7, 0x2f, 0xc3, 0xdd, 0xa8, 0x83, 0xf5, 0x75, 0xf5, 0xd8, 0x72, 0x4e, 0x56, - 0x71, 0xc1, 0xd9, 0x54, 0x71, 0x8d, 0x1f, 0xc9, 0x64, 0xf9, 0x15, 0x19, 0x58, 0x3a, 0xdb, 0x71, - 0x4e, 0xe9, 0x1e, 0x98, 0xbb, 0xda, 0xb5, 0x74, 0x07, 0xab, 0x58, 0xd5, 0xea, 0x98, 0x8e, 0x9a, - 0x83, 0x48, 0x8b, 0x1e, 0x79, 0x47, 0xb4, 0x48, 0xab, 0xf4, 0x2d, 0x15, 0x52, 0xd8, 0xb4, 0xe0, - 0x22, 0xb5, 0xd5, 0xe7, 0x60, 0x9e, 0xb5, 0x0a, 0x87, 0xd6, 0x16, 0x3d, 0x5e, 0x44, 0x29, 0x3f, - 0xa5, 0x7b, 0x78, 0x45, 0x32, 0x61, 0x85, 0x03, 0x56, 0xc6, 0xb4, 0xe9, 0x6f, 0x4e, 0xda, 0xbc, - 0xed, 0x97, 0xab, 0xcf, 0x80, 0x22, 0x94, 0xa9, 0x35, 0x84, 0x99, 0x9d, 0xcd, 0x2e, 0x4f, 0x65, - 0x16, 0xca, 0x8c, 0x58, 0xb1, 0x7d, 0x62, 0xf5, 0x29, 0x48, 0xef, 0x98, 0xce, 0x47, 0xd7, 0x08, - 0x1f, 0x7b, 0x17, 0xb0, 0x14, 0xc8, 0x27, 0x94, 0x18, 0x4f, 0xba, 0xc3, 0x2f, 0x39, 0xfe, 0xb1, - 0x8f, 0x11, 0x7c, 0x7c, 0x3a, 0x9e, 0x2a, 0x8d, 0xf0, 0xf4, 0x92, 0xbc, 0x4b, 0x78, 0x24, 0xc8, - 0xf8, 0x2b, 0x80, 0xf7, 0x05, 0x12, 0xb8, 0x5a, 0x8c, 0x21, 0x33, 0x74, 0x4d, 0xe0, 0x14, 0xcc, - 0x86, 0x64, 0x08, 0x85, 0x64, 0x04, 0xa5, 0x70, 0xad, 0xa8, 0xb9, 0x56, 0xa4, 0xa6, 0x50, 0xd4, - 0x7c, 0x56, 0xd8, 0xb2, 0x15, 0x35, 0xd7, 0x8a, 0x74, 0x08, 0x85, 0x6c, 0x85, 0xed, 0x5a, 0xb1, - 0x05, 0x70, 0xb5, 0x73, 0xd3, 0x68, 0x32, 0x33, 0x32, 0xfc, 0x94, 0x3f, 0x88, 0x63, 0xa4, 0xc6, - 0x48, 0xa0, 0xe5, 0x0a, 0xd4, 0x6d, 0xc8, 0xd6, 0x46, 0x97, 0xf4, 0x35, 0x41, 0xf2, 0x06, 0x64, - 0xa0, 0x29, 0x2d, 0x1f, 0x4f, 0xd6, 0x96, 0x88, 0x84, 0x39, 0xec, 0x91, 0xb2, 0x61, 0xe6, 0x48, - 0xcf, 0xc4, 0xcc, 0x61, 0x0f, 0xe5, 0x9a, 0xc3, 0x68, 0x72, 0xa1, 0xe6, 0x48, 0x3c, 0xdc, 0x1c, - 0x46, 0x84, 0x95, 0x66, 0xc3, 0xb2, 0x88, 0x66, 0x71, 0x8e, 0x92, 0x5c, 0x0a, 0x24, 0xe1, 0x3a, - 0x8c, 0x20, 0x75, 0xcc, 0xae, 0xe8, 0xec, 0xd0, 0xd0, 0x27, 0xf0, 0xfc, 0xb4, 0xd9, 0x11, 0x5a, - 0x62, 0x76, 0xc4, 0xb5, 0xbc, 0x02, 0x37, 0x4e, 0xb1, 0xb9, 0x23, 0x4c, 0x85, 0x19, 0x56, 0xa0, - 0x50, 0xf6, 0xad, 0x40, 0x21, 0x56, 0x6b, 0x50, 0x10, 0xaa, 0x64, 0x1b, 0x4e, 0x68, 0x15, 0xfe, - 0x5e, 0xd7, 0x34, 0x5a, 0xae, 0xcb, 0x58, 0x0b, 0xb6, 0x57, 0xaa, 0x56, 0x21, 0x2f, 0x14, 0xf7, - 0x6c, 0xfa, 0xd0, 0xf3, 0xfc, 0xc7, 0x82, 0x69, 0x9c, 0x4c, 0x95, 0x51, 0xe6, 0x6d, 0x8f, 0x70, - 0x69, 0x0b, 0xce, 0x07, 0x67, 0x2b, 0xf2, 0x4e, 0x28, 0xa6, 0x79, 0xfe, 0x02, 0x0f, 0xf9, 0x4a, - 0xde, 0x1d, 0x15, 0x2f, 0xa8, 0x91, 0x2c, 0xc9, 0x2e, 0xca, 0xd1, 0x2b, 0x91, 0xa5, 0x4d, 0xb8, - 0x23, 0x30, 0x33, 0x85, 0x91, 0x44, 0x65, 0x92, 0x27, 0x61, 0xce, 0x93, 0x8e, 0x64, 0x70, 0x22, - 0x00, 0x9c, 0x18, 0x07, 0x8f, 0x82, 0x4c, 0x06, 0xc7, 0x02, 0xc0, 0x31, 0x19, 0xfc, 0x71, 0xc8, - 0x7b, 0xf3, 0x90, 0x8c, 0x9e, 0x0b, 0x40, 0xcf, 0x05, 0xa0, 0x83, 0xef, 0x1d, 0x0f, 0x40, 0xc7, - 0x7d, 0xe8, 0xda, 0xc4, 0x7b, 0xcf, 0x07, 0xa0, 0xe7, 0x03, 0xd0, 0xc1, 0xf7, 0x56, 0x03, 0xd0, - 0xaa, 0x8c, 0xfe, 0x04, 0x14, 0x7c, 0x29, 0x47, 0x86, 0xa7, 0x02, 0xe0, 0x29, 0x19, 0xfe, 0x14, - 0x2e, 0x9d, 0xd6, 0x64, 0x7c, 0x21, 0x00, 0x5f, 0x08, 0xba, 0x7d, 0xb0, 0xf5, 0xc9, 0x00, 0x78, - 0x32, 0xf0, 0xf6, 0xc1, 0x78, 0x25, 0x00, 0xaf, 0xc8, 0xf8, 0x32, 0xe4, 0xe4, 0xac, 0x22, 0x63, - 0xd3, 0x01, 0xd8, 0xb4, 0xdf, 0xef, 0x9e, 0x94, 0x12, 0x16, 0xe9, 0x99, 0x09, 0xcb, 0xc5, 0x93, - 0x46, 0xc2, 0x48, 0x72, 0x32, 0xc9, 0x75, 0x58, 0x0c, 0x4a, 0x1a, 0x01, 0x1c, 0xcb, 0x32, 0x47, - 0x7e, 0x6d, 0xd1, 0x93, 0x2c, 0x28, 0x6e, 0xd8, 0x93, 0x99, 0x5f, 0x80, 0x85, 0x80, 0xd4, 0x11, - 0x40, 0xfc, 0x88, 0x4c, 0x9c, 0x5d, 0x5b, 0xf2, 0x10, 0x7b, 0xba, 0x2b, 0x89, 0xbe, 0xf4, 0xed, - 0x05, 0xc8, 0xf3, 0x14, 0x75, 0x30, 0x68, 0x1a, 0x03, 0xec, 0xf5, 0x7f, 0x66, 0x72, 0x87, 0xb5, - 0x16, 0x94, 0xda, 0x38, 0xee, 0x0c, 0x8d, 0xd6, 0x0b, 0x13, 0x1b, 0xad, 0x8f, 0xcc, 0x72, 0x83, - 0xb0, 0x7e, 0xab, 0x32, 0xd6, 0x6f, 0x3d, 0x34, 0x8d, 0x76, 0x52, 0xdb, 0x55, 0x19, 0x6b, 0xbb, - 0xc2, 0x68, 0x02, 0xbb, 0xaf, 0x6b, 0xe3, 0xdd, 0xd7, 0xf2, 0x34, 0x9e, 0xc9, 0x4d, 0xd8, 0xb5, - 0xf1, 0x26, 0x2c, 0x94, 0x29, 0xb8, 0x17, 0xbb, 0x36, 0xde, 0x8b, 0x4d, 0x65, 0x9a, 0xdc, 0x92, - 0x5d, 0x1b, 0x6f, 0xc9, 0x42, 0x99, 0x82, 0x3b, 0xb3, 0x4f, 0x05, 0x74, 0x66, 0x0f, 0x4f, 0xa3, - 0x9a, 0xd6, 0xa0, 0xed, 0x07, 0x35, 0x68, 0x1f, 0x9a, 0x6a, 0xd8, 0xd4, 0x3e, 0xed, 0x53, 0x01, - 0x7d, 0x5a, 0xb8, 0x71, 0x13, 0xda, 0xb5, 0xfd, 0xa0, 0x76, 0x6d, 0x06, 0xe3, 0x26, 0x75, 0x6d, - 0x1b, 0xfe, 0xae, 0xed, 0xf2, 0x34, 0xae, 0xe0, 0xe6, 0xed, 0xda, 0x78, 0xf3, 0xb6, 0x1c, 0xbe, - 0x16, 0x83, 0x7a, 0xb8, 0x17, 0x26, 0xf6, 0x70, 0x33, 0x2d, 0xee, 0xb0, 0x56, 0xee, 0xf9, 0x49, - 0xad, 0xdc, 0x23, 0xb3, 0xb0, 0x4f, 0xef, 0xe8, 0x9e, 0x9d, 0xd0, 0xd1, 0xad, 0xce, 0x42, 0x7d, - 0xbb, 0xb1, 0xbb, 0xdd, 0xd8, 0xdd, 0x6e, 0xec, 0x6e, 0x37, 0x76, 0xef, 0x8f, 0xc6, 0xae, 0x1c, - 0x7f, 0xed, 0xcd, 0x8b, 0x91, 0xe5, 0x4b, 0x90, 0xe2, 0xb7, 0x56, 0x93, 0x10, 0xdd, 0x5b, 0x57, - 0xce, 0xd1, 0xff, 0x1b, 0x4a, 0x84, 0xfe, 0xdf, 0x54, 0xa2, 0x1b, 0xbb, 0xdf, 0xf8, 0xee, 0x85, - 0x73, 0xdf, 0xc4, 0xcf, 0xb7, 0xf0, 0xf3, 0x9d, 0xef, 0x5e, 0x88, 0xbc, 0x83, 0x9f, 0x77, 0xf1, - 0xf3, 0x03, 0xfc, 0xbc, 0xf2, 0xbd, 0x0b, 0x91, 0x2f, 0xe1, 0xe7, 0x2b, 0xf8, 0xf9, 0x5b, 0xfc, - 0x7c, 0x0d, 0x3f, 0xdf, 0xc0, 0xcf, 0x37, 0xf1, 0xf3, 0x1d, 0xfc, 0xbc, 0xf3, 0xbd, 0x0b, 0xe7, - 0xde, 0xc5, 0xff, 0x3f, 0xc0, 0xff, 0xaf, 0xfc, 0xeb, 0x85, 0x73, 0xff, 0x1f, 0x00, 0x00, 0xff, - 0xff, 0x58, 0x4b, 0xd1, 0xa0, 0x91, 0x3e, 0x00, 0x00, + // 4577 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0x1a, 0xc9, 0x6b, 0x5a, 0xb6, 0xa9, 0x5d, 0xf9, + 0x25, 0xaf, 0x6d, 0xc9, 0x96, 0x77, 0xd7, 0x6b, 0x6e, 0x6c, 0x83, 0x92, 0xb8, 0x5a, 0xd9, 0x7a, + 0x65, 0x28, 0xd9, 0x6b, 0x17, 0xc6, 0x74, 0x34, 0xbc, 0xa4, 0xc6, 0x3b, 0x9c, 0xa1, 0x67, 0x86, + 0xeb, 0x95, 0x7f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, 0x04, + 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x7f, 0xe5, 0x4f, 0x5a, 0x03, 0x05, 0x8a, 0xe4, + 0x5f, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0x37, 0x31, 0xd0, 0x00, 0xfe, 0x53, + 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xe4, 0x87, 0x7f, 0x49, 0x73, 0xee, 0xf9, + 0xbe, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0x87, 0x67, 0xe1, 0x64, 0xd3, 0xb2, + 0x9a, 0x06, 0x5a, 0x6c, 0xdb, 0x96, 0x6b, 0xed, 0x77, 0x1a, 0x8b, 0x75, 0xe4, 0x68, 0xb6, 0xde, + 0x76, 0x2d, 0x7b, 0x81, 0xc8, 0xa4, 0x09, 0xaa, 0xb1, 0xc0, 0x35, 0xe6, 0x36, 0x61, 0xf2, 0xa2, + 0x6e, 0xa0, 0x55, 0x4f, 0xb1, 0x86, 0x5c, 0xe9, 0x3c, 0xa4, 0x1a, 0xba, 0x81, 0x8a, 0xc2, 0xc9, + 0xe4, 0x7c, 0x6e, 0xe9, 0xce, 0x85, 0x10, 0x68, 0x21, 0x88, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0xe6, + 0xde, 0x4d, 0xc1, 0x54, 0xc4, 0xa8, 0x24, 0x41, 0xca, 0x54, 0x5b, 0x98, 0x51, 0x98, 0xcf, 0xca, + 0xe4, 0x7f, 0xa9, 0x08, 0x63, 0x6d, 0x55, 0xbb, 0xa2, 0x36, 0x51, 0x31, 0x41, 0xc4, 0xfc, 0x51, + 0x2a, 0x01, 0xd4, 0x51, 0x1b, 0x99, 0x75, 0x64, 0x6a, 0x87, 0xc5, 0xe4, 0xc9, 0xe4, 0x7c, 0x56, + 0xf6, 0x49, 0xa4, 0xfb, 0x60, 0xb2, 0xdd, 0xd9, 0x37, 0x74, 0x4d, 0xf1, 0xa9, 0xc1, 0xc9, 0xe4, + 0x7c, 0x5a, 0x16, 0xe9, 0xc0, 0x6a, 0x57, 0xf9, 0x1e, 0x98, 0x78, 0x09, 0xa9, 0x57, 0xfc, 0xaa, + 0x39, 0xa2, 0x5a, 0xc0, 0x62, 0x9f, 0xe2, 0x0a, 0xe4, 0x5b, 0xc8, 0x71, 0xd4, 0x26, 0x52, 0xdc, + 0xc3, 0x36, 0x2a, 0xa6, 0xc8, 0xea, 0x4f, 0xf6, 0xac, 0x3e, 0xbc, 0xf2, 0x1c, 0x43, 0xed, 0x1e, + 0xb6, 0x91, 0x54, 0x81, 0x2c, 0x32, 0x3b, 0x2d, 0xca, 0x90, 0xee, 0xe3, 0xbf, 0xaa, 0xd9, 0x69, + 0x85, 0x59, 0x32, 0x18, 0xc6, 0x28, 0xc6, 0x1c, 0x64, 0x5f, 0xd5, 0x35, 0x54, 0x1c, 0x25, 0x04, + 0xf7, 0xf4, 0x10, 0xd4, 0xe8, 0x78, 0x98, 0x83, 0xe3, 0xa4, 0x15, 0xc8, 0xa2, 0x6b, 0x2e, 0x32, + 0x1d, 0xdd, 0x32, 0x8b, 0x63, 0x84, 0xe4, 0xae, 0x88, 0x5d, 0x44, 0x46, 0x3d, 0x4c, 0xd1, 0xc5, + 0x49, 0xe7, 0x60, 0xcc, 0x6a, 0xbb, 0xba, 0x65, 0x3a, 0xc5, 0xcc, 0x49, 0x61, 0x3e, 0xb7, 0x74, + 0x5b, 0x64, 0x20, 0x6c, 0x53, 0x1d, 0x99, 0x2b, 0x4b, 0xeb, 0x20, 0x3a, 0x56, 0xc7, 0xd6, 0x90, + 0xa2, 0x59, 0x75, 0xa4, 0xe8, 0x66, 0xc3, 0x2a, 0x66, 0x09, 0xc1, 0x6c, 0xef, 0x42, 0x88, 0xe2, + 0x8a, 0x55, 0x47, 0xeb, 0x66, 0xc3, 0x92, 0x0b, 0x4e, 0xe0, 0x59, 0x3a, 0x01, 0xa3, 0xce, 0xa1, + 0xe9, 0xaa, 0xd7, 0x8a, 0x79, 0x12, 0x21, 0xec, 0x69, 0xee, 0xff, 0xd2, 0x30, 0x31, 0x4c, 0x88, + 0x5d, 0x80, 0x74, 0x03, 0xaf, 0xb2, 0x98, 0x38, 0x8e, 0x0f, 0x28, 0x26, 0xe8, 0xc4, 0xd1, 0x8f, + 0xe9, 0xc4, 0x0a, 0xe4, 0x4c, 0xe4, 0xb8, 0xa8, 0x4e, 0x23, 0x22, 0x39, 0x64, 0x4c, 0x01, 0x05, + 0xf5, 0x86, 0x54, 0xea, 0x63, 0x85, 0xd4, 0x65, 0x98, 0xf0, 0x4c, 0x52, 0x6c, 0xd5, 0x6c, 0xf2, + 0xd8, 0x5c, 0x8c, 0xb3, 0x64, 0xa1, 0xca, 0x71, 0x32, 0x86, 0xc9, 0x05, 0x14, 0x78, 0x96, 0x56, + 0x01, 0x2c, 0x13, 0x59, 0x0d, 0xa5, 0x8e, 0x34, 0xa3, 0x98, 0xe9, 0xe3, 0xa5, 0x6d, 0xac, 0xd2, + 0xe3, 0x25, 0x8b, 0x4a, 0x35, 0x43, 0x7a, 0xb4, 0x1b, 0x6a, 0x63, 0x7d, 0x22, 0x65, 0x93, 0x1e, + 0xb2, 0x9e, 0x68, 0xdb, 0x83, 0x82, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0x5b, 0x59, 0x96, 0x18, 0xb1, + 0x10, 0xbb, 0x32, 0x99, 0xc1, 0xe8, 0xc2, 0xc6, 0x6d, 0xff, 0xa3, 0x74, 0x07, 0x78, 0x02, 0x85, + 0x84, 0x15, 0x90, 0x2c, 0x94, 0xe7, 0xc2, 0x2d, 0xb5, 0x85, 0x66, 0xce, 0x43, 0x21, 0xe8, 0x1e, + 0x69, 0x1a, 0xd2, 0x8e, 0xab, 0xda, 0x2e, 0x89, 0xc2, 0xb4, 0x4c, 0x1f, 0x24, 0x11, 0x92, 0xc8, + 0xac, 0x93, 0x2c, 0x97, 0x96, 0xf1, 0xbf, 0x33, 0x8f, 0xc0, 0x78, 0x60, 0xfa, 0x61, 0x81, 0x73, + 0xaf, 0x8e, 0xc2, 0x74, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x09, 0x18, 0x35, 0x3b, 0xad, 0x7d, 0x64, + 0x17, 0x93, 0x84, 0x81, 0x3d, 0x49, 0x15, 0x48, 0x1b, 0xea, 0x3e, 0x32, 0x8a, 0xa9, 0x93, 0xc2, + 0x7c, 0x61, 0xe9, 0xbe, 0xa1, 0xa2, 0x7a, 0x61, 0x03, 0x43, 0x64, 0x8a, 0x94, 0x1e, 0x87, 0x14, + 0x4b, 0x71, 0x98, 0xe1, 0xf4, 0x70, 0x0c, 0x38, 0x16, 0x65, 0x82, 0x93, 0x6e, 0x85, 0x2c, 0xfe, + 0x4b, 0x7d, 0x3b, 0x4a, 0x6c, 0xce, 0x60, 0x01, 0xf6, 0xab, 0x34, 0x03, 0x19, 0x12, 0x66, 0x75, + 0xc4, 0x4b, 0x83, 0xf7, 0x8c, 0x37, 0xa6, 0x8e, 0x1a, 0x6a, 0xc7, 0x70, 0x95, 0xab, 0xaa, 0xd1, + 0x41, 0x24, 0x60, 0xb2, 0x72, 0x9e, 0x09, 0x9f, 0xc6, 0x32, 0x69, 0x16, 0x72, 0x34, 0x2a, 0x75, + 0xb3, 0x8e, 0xae, 0x91, 0xec, 0x93, 0x96, 0x69, 0xa0, 0xae, 0x63, 0x09, 0x9e, 0xfe, 0x05, 0xc7, + 0x32, 0xf9, 0xd6, 0x92, 0x29, 0xb0, 0x80, 0x4c, 0xff, 0x48, 0x38, 0xf1, 0xdd, 0x1e, 0xbd, 0xbc, + 0x70, 0x2c, 0xce, 0x7d, 0x23, 0x01, 0x29, 0x72, 0xde, 0x26, 0x20, 0xb7, 0xfb, 0xec, 0x4e, 0x55, + 0x59, 0xdd, 0xde, 0x5b, 0xde, 0xa8, 0x8a, 0x82, 0x54, 0x00, 0x20, 0x82, 0x8b, 0x1b, 0xdb, 0x95, + 0x5d, 0x31, 0xe1, 0x3d, 0xaf, 0x6f, 0xed, 0x9e, 0x3b, 0x23, 0x26, 0x3d, 0xc0, 0x1e, 0x15, 0xa4, + 0xfc, 0x0a, 0x0f, 0x2f, 0x89, 0x69, 0x49, 0x84, 0x3c, 0x25, 0x58, 0xbf, 0x5c, 0x5d, 0x3d, 0x77, + 0x46, 0x1c, 0x0d, 0x4a, 0x1e, 0x5e, 0x12, 0xc7, 0xa4, 0x71, 0xc8, 0x12, 0xc9, 0xf2, 0xf6, 0xf6, + 0x86, 0x98, 0xf1, 0x38, 0x6b, 0xbb, 0xf2, 0xfa, 0xd6, 0x9a, 0x98, 0xf5, 0x38, 0xd7, 0xe4, 0xed, + 0xbd, 0x1d, 0x11, 0x3c, 0x86, 0xcd, 0x6a, 0xad, 0x56, 0x59, 0xab, 0x8a, 0x39, 0x4f, 0x63, 0xf9, + 0xd9, 0xdd, 0x6a, 0x4d, 0xcc, 0x07, 0xcc, 0x7a, 0x78, 0x49, 0x1c, 0xf7, 0xa6, 0xa8, 0x6e, 0xed, + 0x6d, 0x8a, 0x05, 0x69, 0x12, 0xc6, 0xe9, 0x14, 0xdc, 0x88, 0x89, 0x90, 0xe8, 0xdc, 0x19, 0x51, + 0xec, 0x1a, 0x42, 0x59, 0x26, 0x03, 0x82, 0x73, 0x67, 0x44, 0x69, 0x6e, 0x05, 0xd2, 0x24, 0xba, + 0x24, 0x09, 0x0a, 0x1b, 0x95, 0xe5, 0xea, 0x86, 0xb2, 0xbd, 0xb3, 0xbb, 0xbe, 0xbd, 0x55, 0xd9, + 0x10, 0x85, 0xae, 0x4c, 0xae, 0x7e, 0x76, 0x6f, 0x5d, 0xae, 0xae, 0x8a, 0x09, 0xbf, 0x6c, 0xa7, + 0x5a, 0xd9, 0xad, 0xae, 0x8a, 0xc9, 0x39, 0x0d, 0xa6, 0xa3, 0xf2, 0x4c, 0xe4, 0xc9, 0xf0, 0x6d, + 0x71, 0xa2, 0xcf, 0x16, 0x13, 0xae, 0x9e, 0x2d, 0xfe, 0x92, 0x00, 0x53, 0x11, 0xb9, 0x36, 0x72, + 0x92, 0x27, 0x20, 0x4d, 0x43, 0x94, 0x56, 0x9f, 0x7b, 0x23, 0x93, 0x36, 0x09, 0xd8, 0x9e, 0x0a, + 0x44, 0x70, 0xfe, 0x0a, 0x9c, 0xec, 0x53, 0x81, 0x31, 0x45, 0x8f, 0x91, 0xaf, 0x08, 0x50, 0xec, + 0xc7, 0x1d, 0x93, 0x28, 0x12, 0x81, 0x44, 0x71, 0x21, 0x6c, 0xc0, 0xa9, 0xfe, 0x6b, 0xe8, 0xb1, + 0xe2, 0x4d, 0x01, 0x4e, 0x44, 0x37, 0x2a, 0x91, 0x36, 0x3c, 0x0e, 0xa3, 0x2d, 0xe4, 0x1e, 0x58, + 0xbc, 0x58, 0xdf, 0x1d, 0x51, 0x02, 0xf0, 0x70, 0xd8, 0x57, 0x0c, 0xe5, 0xaf, 0x21, 0xc9, 0x7e, + 0xdd, 0x06, 0xb5, 0xa6, 0xc7, 0xd2, 0xcf, 0x25, 0xe0, 0xa6, 0x48, 0xf2, 0x48, 0x43, 0x6f, 0x07, + 0xd0, 0xcd, 0x76, 0xc7, 0xa5, 0x05, 0x99, 0xe6, 0xa7, 0x2c, 0x91, 0x90, 0xb3, 0x8f, 0x73, 0x4f, + 0xc7, 0xf5, 0xc6, 0x93, 0x64, 0x1c, 0xa8, 0x88, 0x28, 0x9c, 0xef, 0x1a, 0x9a, 0x22, 0x86, 0x96, + 0xfa, 0xac, 0xb4, 0xa7, 0xd6, 0x3d, 0x08, 0xa2, 0x66, 0xe8, 0xc8, 0x74, 0x15, 0xc7, 0xb5, 0x91, + 0xda, 0xd2, 0xcd, 0x26, 0x49, 0xc0, 0x99, 0x72, 0xba, 0xa1, 0x1a, 0x0e, 0x92, 0x27, 0xe8, 0x70, + 0x8d, 0x8f, 0x62, 0x04, 0xa9, 0x32, 0xb6, 0x0f, 0x31, 0x1a, 0x40, 0xd0, 0x61, 0x0f, 0x31, 0xf7, + 0xd5, 0x31, 0xc8, 0xf9, 0xda, 0x3a, 0xe9, 0x14, 0xe4, 0x5f, 0x50, 0xaf, 0xaa, 0x0a, 0x6f, 0xd5, + 0xa9, 0x27, 0x72, 0x58, 0xb6, 0xc3, 0xda, 0xf5, 0x07, 0x61, 0x9a, 0xa8, 0x58, 0x1d, 0x17, 0xd9, + 0x8a, 0x66, 0xa8, 0x8e, 0x43, 0x9c, 0x96, 0x21, 0xaa, 0x12, 0x1e, 0xdb, 0xc6, 0x43, 0x2b, 0x7c, + 0x44, 0x3a, 0x0b, 0x53, 0x04, 0xd1, 0xea, 0x18, 0xae, 0xde, 0x36, 0x90, 0x82, 0x5f, 0x1e, 0x1c, + 0x92, 0x88, 0x3d, 0xcb, 0x26, 0xb1, 0xc6, 0x26, 0x53, 0xc0, 0x16, 0x39, 0xd2, 0x2a, 0xdc, 0x4e, + 0x60, 0x4d, 0x64, 0x22, 0x5b, 0x75, 0x91, 0x82, 0x5e, 0xec, 0xa8, 0x86, 0xa3, 0xa8, 0x66, 0x5d, + 0x39, 0x50, 0x9d, 0x83, 0xe2, 0x34, 0x26, 0x58, 0x4e, 0x14, 0x05, 0xf9, 0x16, 0xac, 0xb8, 0xc6, + 0xf4, 0xaa, 0x44, 0xad, 0x62, 0xd6, 0x2f, 0xa9, 0xce, 0x81, 0x54, 0x86, 0x13, 0x84, 0xc5, 0x71, + 0x6d, 0xdd, 0x6c, 0x2a, 0xda, 0x01, 0xd2, 0xae, 0x28, 0x1d, 0xb7, 0x71, 0xbe, 0x78, 0xab, 0x7f, + 0x7e, 0x62, 0x61, 0x8d, 0xe8, 0xac, 0x60, 0x95, 0x3d, 0xb7, 0x71, 0x5e, 0xaa, 0x41, 0x1e, 0x6f, + 0x46, 0x4b, 0x7f, 0x19, 0x29, 0x0d, 0xcb, 0x26, 0x95, 0xa5, 0x10, 0x71, 0xb2, 0x7d, 0x1e, 0x5c, + 0xd8, 0x66, 0x80, 0x4d, 0xab, 0x8e, 0xca, 0xe9, 0xda, 0x4e, 0xb5, 0xba, 0x2a, 0xe7, 0x38, 0xcb, + 0x45, 0xcb, 0xc6, 0x01, 0xd5, 0xb4, 0x3c, 0x07, 0xe7, 0x68, 0x40, 0x35, 0x2d, 0xee, 0xde, 0xb3, + 0x30, 0xa5, 0x69, 0x74, 0xcd, 0xba, 0xa6, 0xb0, 0x16, 0xdf, 0x29, 0x8a, 0x01, 0x67, 0x69, 0xda, + 0x1a, 0x55, 0x60, 0x31, 0xee, 0x48, 0x8f, 0xc2, 0x4d, 0x5d, 0x67, 0xf9, 0x81, 0x93, 0x3d, 0xab, + 0x0c, 0x43, 0xcf, 0xc2, 0x54, 0xfb, 0xb0, 0x17, 0x28, 0x05, 0x66, 0x6c, 0x1f, 0x86, 0x61, 0x77, + 0x91, 0xd7, 0x36, 0x1b, 0x69, 0xaa, 0x8b, 0xea, 0xc5, 0x9b, 0xfd, 0xda, 0xbe, 0x01, 0x69, 0x11, + 0x44, 0x4d, 0x53, 0x90, 0xa9, 0xee, 0x1b, 0x48, 0x51, 0x6d, 0x64, 0xaa, 0x4e, 0x71, 0xd6, 0xaf, + 0x5c, 0xd0, 0xb4, 0x2a, 0x19, 0xad, 0x90, 0x41, 0xe9, 0x34, 0x4c, 0x5a, 0xfb, 0x2f, 0x68, 0x34, + 0xb2, 0x94, 0xb6, 0x8d, 0x1a, 0xfa, 0xb5, 0xe2, 0x9d, 0xc4, 0x4d, 0x13, 0x78, 0x80, 0xc4, 0xd5, + 0x0e, 0x11, 0x4b, 0xf7, 0x82, 0xa8, 0x39, 0x07, 0xaa, 0xdd, 0x26, 0xa5, 0xdd, 0x69, 0xab, 0x1a, + 0x2a, 0xde, 0x45, 0x55, 0xa9, 0x7c, 0x8b, 0x8b, 0x71, 0x64, 0x3b, 0x2f, 0xe9, 0x0d, 0x97, 0x33, + 0xde, 0x43, 0x23, 0x9b, 0xc8, 0x18, 0xdb, 0x65, 0x98, 0xee, 0x98, 0xba, 0xe9, 0x22, 0xbb, 0x6d, + 0x23, 0xdc, 0xc4, 0xd3, 0x93, 0x58, 0xfc, 0xb7, 0xb1, 0x3e, 0x6d, 0xf8, 0x9e, 0x5f, 0x9b, 0x06, + 0x80, 0x3c, 0xd5, 0xe9, 0x15, 0xce, 0x95, 0x21, 0xef, 0x8f, 0x0b, 0x29, 0x0b, 0x34, 0x32, 0x44, + 0x01, 0xd7, 0xd8, 0x95, 0xed, 0x55, 0x5c, 0x1d, 0x9f, 0xab, 0x8a, 0x09, 0x5c, 0xa5, 0x37, 0xd6, + 0x77, 0xab, 0x8a, 0xbc, 0xb7, 0xb5, 0xbb, 0xbe, 0x59, 0x15, 0x93, 0xa7, 0xb3, 0x99, 0xf7, 0xc6, + 0xc4, 0xeb, 0xd7, 0xaf, 0x5f, 0x4f, 0xcc, 0x7d, 0x3b, 0x01, 0x85, 0x60, 0x67, 0x2c, 0x7d, 0x06, + 0x6e, 0xe6, 0xaf, 0xb1, 0x0e, 0x72, 0x95, 0x97, 0x74, 0x9b, 0x84, 0x6a, 0x4b, 0xa5, 0xbd, 0xa5, + 0xe7, 0xe5, 0x69, 0xa6, 0x55, 0x43, 0xee, 0x33, 0xba, 0x8d, 0x03, 0xb1, 0xa5, 0xba, 0xd2, 0x06, + 0xcc, 0x9a, 0x96, 0xe2, 0xb8, 0xaa, 0x59, 0x57, 0xed, 0xba, 0xd2, 0xbd, 0x40, 0x50, 0x54, 0x4d, + 0x43, 0x8e, 0x63, 0xd1, 0x12, 0xe1, 0xb1, 0xdc, 0x66, 0x5a, 0x35, 0xa6, 0xdc, 0xcd, 0x9d, 0x15, + 0xa6, 0x1a, 0x8a, 0x88, 0x64, 0xbf, 0x88, 0xb8, 0x15, 0xb2, 0x2d, 0xb5, 0xad, 0x20, 0xd3, 0xb5, + 0x0f, 0x49, 0x3f, 0x97, 0x91, 0x33, 0x2d, 0xb5, 0x5d, 0xc5, 0xcf, 0x9f, 0xdc, 0x1e, 0xf8, 0xfd, + 0xf8, 0x83, 0x24, 0xe4, 0xfd, 0x3d, 0x1d, 0x6e, 0x91, 0x35, 0x92, 0xbf, 0x05, 0x72, 0xc2, 0xef, + 0x18, 0xd8, 0x01, 0x2e, 0xac, 0xe0, 0xc4, 0x5e, 0x1e, 0xa5, 0x9d, 0x96, 0x4c, 0x91, 0xb8, 0xa8, + 0xe2, 0x33, 0x8d, 0x68, 0xff, 0x9e, 0x91, 0xd9, 0x93, 0xb4, 0x06, 0xa3, 0x2f, 0x38, 0x84, 0x7b, + 0x94, 0x70, 0xdf, 0x39, 0x98, 0xfb, 0xc9, 0x1a, 0x21, 0xcf, 0x3e, 0x59, 0x53, 0xb6, 0xb6, 0xe5, + 0xcd, 0xca, 0x86, 0xcc, 0xe0, 0xd2, 0x2d, 0x90, 0x32, 0xd4, 0x97, 0x0f, 0x83, 0x25, 0x80, 0x88, + 0x86, 0x75, 0xfc, 0x2d, 0x90, 0x7a, 0x09, 0xa9, 0x57, 0x82, 0x89, 0x97, 0x88, 0x3e, 0xc1, 0xd0, + 0x5f, 0x84, 0x34, 0xf1, 0x97, 0x04, 0xc0, 0x3c, 0x26, 0x8e, 0x48, 0x19, 0x48, 0xad, 0x6c, 0xcb, + 0x38, 0xfc, 0x45, 0xc8, 0x53, 0xa9, 0xb2, 0xb3, 0x5e, 0x5d, 0xa9, 0x8a, 0x89, 0xb9, 0xb3, 0x30, + 0x4a, 0x9d, 0x80, 0x8f, 0x86, 0xe7, 0x06, 0x71, 0x84, 0x3d, 0x32, 0x0e, 0x81, 0x8f, 0xee, 0x6d, + 0x2e, 0x57, 0x65, 0x31, 0xe1, 0xdf, 0x5e, 0x07, 0xf2, 0xfe, 0x76, 0xee, 0xa7, 0x13, 0x53, 0xff, + 0x28, 0x40, 0xce, 0xd7, 0x9e, 0xe1, 0xc6, 0x40, 0x35, 0x0c, 0xeb, 0x25, 0x45, 0x35, 0x74, 0xd5, + 0x61, 0x41, 0x01, 0x44, 0x54, 0xc1, 0x92, 0x61, 0x37, 0xed, 0xa7, 0x62, 0xfc, 0x1b, 0x02, 0x88, + 0xe1, 0xd6, 0x2e, 0x64, 0xa0, 0xf0, 0x33, 0x35, 0xf0, 0x75, 0x01, 0x0a, 0xc1, 0x7e, 0x2e, 0x64, + 0xde, 0xa9, 0x9f, 0xa9, 0x79, 0xef, 0x24, 0x60, 0x3c, 0xd0, 0xc5, 0x0d, 0x6b, 0xdd, 0x8b, 0x30, + 0xa9, 0xd7, 0x51, 0xab, 0x6d, 0xb9, 0xc8, 0xd4, 0x0e, 0x15, 0x03, 0x5d, 0x45, 0x46, 0x71, 0x8e, + 0x24, 0x8a, 0xc5, 0xc1, 0x7d, 0xe2, 0xc2, 0x7a, 0x17, 0xb7, 0x81, 0x61, 0xe5, 0xa9, 0xf5, 0xd5, + 0xea, 0xe6, 0xce, 0xf6, 0x6e, 0x75, 0x6b, 0xe5, 0x59, 0x65, 0x6f, 0xeb, 0xa9, 0xad, 0xed, 0x67, + 0xb6, 0x64, 0x51, 0x0f, 0xa9, 0x7d, 0x82, 0x47, 0x7d, 0x07, 0xc4, 0xb0, 0x51, 0xd2, 0xcd, 0x10, + 0x65, 0x96, 0x38, 0x22, 0x4d, 0xc1, 0xc4, 0xd6, 0xb6, 0x52, 0x5b, 0x5f, 0xad, 0x2a, 0xd5, 0x8b, + 0x17, 0xab, 0x2b, 0xbb, 0x35, 0xfa, 0xe2, 0xec, 0x69, 0xef, 0x06, 0x0f, 0xf5, 0x6b, 0x49, 0x98, + 0x8a, 0xb0, 0x44, 0xaa, 0xb0, 0x9e, 0x9d, 0xbe, 0x46, 0x3c, 0x30, 0x8c, 0xf5, 0x0b, 0xb8, 0x2b, + 0xd8, 0x51, 0x6d, 0x97, 0xb5, 0xf8, 0xf7, 0x02, 0xf6, 0x92, 0xe9, 0xea, 0x0d, 0x1d, 0xd9, 0xec, + 0x9e, 0x81, 0x36, 0xf2, 0x13, 0x5d, 0x39, 0xbd, 0x6a, 0xb8, 0x1f, 0xa4, 0xb6, 0xe5, 0xe8, 0xae, + 0x7e, 0x15, 0x29, 0xba, 0xc9, 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x92, 0x45, 0x3e, 0xb2, 0x6e, 0xba, + 0x9e, 0xb6, 0x89, 0x9a, 0x6a, 0x48, 0x1b, 0x27, 0xf0, 0xa4, 0x2c, 0xf2, 0x11, 0x4f, 0xfb, 0x14, + 0xe4, 0xeb, 0x56, 0x07, 0xb7, 0x49, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xce, 0x51, 0x99, 0xa7, 0xc2, + 0xfa, 0xd8, 0xee, 0x6d, 0x48, 0x5e, 0xce, 0x51, 0x19, 0x55, 0xb9, 0x07, 0x26, 0xd4, 0x66, 0xd3, + 0xc6, 0xe4, 0x9c, 0x88, 0x76, 0xe6, 0x05, 0x4f, 0x4c, 0x14, 0x67, 0x9e, 0x84, 0x0c, 0xf7, 0x03, + 0x2e, 0xc9, 0xd8, 0x13, 0x4a, 0x9b, 0xde, 0x49, 0x25, 0xe6, 0xb3, 0x72, 0xc6, 0xe4, 0x83, 0xa7, + 0x20, 0xaf, 0x3b, 0x4a, 0xf7, 0x72, 0x34, 0x71, 0x32, 0x31, 0x9f, 0x91, 0x73, 0xba, 0xe3, 0xdd, + 0x86, 0xcd, 0xbd, 0x99, 0x80, 0x42, 0xf0, 0x72, 0x57, 0x5a, 0x85, 0x8c, 0x61, 0x69, 0x2a, 0x09, + 0x2d, 0xfa, 0xcb, 0xc2, 0x7c, 0xcc, 0x7d, 0xf0, 0xc2, 0x06, 0xd3, 0x97, 0x3d, 0xe4, 0xcc, 0xbf, + 0x0a, 0x90, 0xe1, 0x62, 0xe9, 0x04, 0xa4, 0xda, 0xaa, 0x7b, 0x40, 0xe8, 0xd2, 0xcb, 0x09, 0x51, + 0x90, 0xc9, 0x33, 0x96, 0x3b, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8, 0x19, 0xef, 0xab, 0x81, + 0xd4, 0x3a, 0x69, 0xfb, 0xad, 0x56, 0x0b, 0x99, 0xae, 0xc3, 0xf7, 0x95, 0xc9, 0x57, 0x98, 0x58, + 0xba, 0x0f, 0x26, 0x5d, 0x5b, 0xd5, 0x8d, 0x80, 0x6e, 0x8a, 0xe8, 0x8a, 0x7c, 0xc0, 0x53, 0x2e, + 0xc3, 0x2d, 0x9c, 0xb7, 0x8e, 0x5c, 0x55, 0x3b, 0x40, 0xf5, 0x2e, 0x68, 0x94, 0xdc, 0x1c, 0xde, + 0xcc, 0x14, 0x56, 0xd9, 0x38, 0xc7, 0xce, 0x7d, 0x57, 0x80, 0x49, 0xfe, 0xa2, 0x52, 0xf7, 0x9c, + 0xb5, 0x09, 0xa0, 0x9a, 0xa6, 0xe5, 0xfa, 0xdd, 0xd5, 0x1b, 0xca, 0x3d, 0xb8, 0x85, 0x8a, 0x07, + 0x92, 0x7d, 0x04, 0x33, 0x2d, 0x80, 0xee, 0x48, 0x5f, 0xb7, 0xcd, 0x42, 0x8e, 0xdd, 0xdc, 0x93, + 0x9f, 0x7f, 0xe8, 0xab, 0x2d, 0x50, 0x11, 0x7e, 0xa3, 0x91, 0xa6, 0x21, 0xbd, 0x8f, 0x9a, 0xba, + 0xc9, 0xee, 0x13, 0xe9, 0x03, 0xbf, 0xa5, 0x4c, 0x79, 0xb7, 0x94, 0xcb, 0x97, 0x61, 0x4a, 0xb3, + 0x5a, 0x61, 0x73, 0x97, 0xc5, 0xd0, 0xeb, 0xb5, 0x73, 0x49, 0x78, 0x0e, 0xba, 0x2d, 0xe6, 0x97, + 0x12, 0xc9, 0xb5, 0x9d, 0xe5, 0xaf, 0x24, 0x66, 0xd6, 0x28, 0x6e, 0x87, 0x2f, 0x53, 0x46, 0x0d, + 0x03, 0x69, 0xd8, 0x74, 0xf8, 0xf1, 0xdd, 0xf0, 0x40, 0x53, 0x77, 0x0f, 0x3a, 0xfb, 0x0b, 0x9a, + 0xd5, 0x5a, 0x6c, 0x5a, 0x4d, 0xab, 0xfb, 0x73, 0x17, 0x7e, 0x22, 0x0f, 0xe4, 0x3f, 0xf6, 0x93, + 0x57, 0xd6, 0x93, 0xce, 0xc4, 0xfe, 0x3e, 0x56, 0xde, 0x82, 0x29, 0xa6, 0xac, 0x90, 0x3b, 0x77, + 0xfa, 0x6a, 0x20, 0x0d, 0xbc, 0x77, 0x29, 0x7e, 0xfd, 0x5d, 0x52, 0xab, 0xe5, 0x49, 0x06, 0xc5, + 0x63, 0xf4, 0x05, 0xa2, 0x2c, 0xc3, 0x4d, 0x01, 0x3e, 0x7a, 0x2e, 0x91, 0x1d, 0xc3, 0xf8, 0x6d, + 0xc6, 0x38, 0xe5, 0x63, 0xac, 0x31, 0x68, 0x79, 0x05, 0xc6, 0x8f, 0xc3, 0xf5, 0x4f, 0x8c, 0x2b, + 0x8f, 0xfc, 0x24, 0x6b, 0x30, 0x41, 0x48, 0xb4, 0x8e, 0xe3, 0x5a, 0x2d, 0x92, 0xf4, 0x06, 0xd3, + 0xfc, 0xf3, 0xbb, 0xf4, 0xa0, 0x14, 0x30, 0x6c, 0xc5, 0x43, 0x95, 0xcb, 0x40, 0x7e, 0x66, 0xa8, + 0x23, 0xcd, 0x88, 0x61, 0x78, 0x8b, 0x19, 0xe2, 0xe9, 0x97, 0x9f, 0x86, 0x69, 0xfc, 0x3f, 0xc9, + 0x49, 0x7e, 0x4b, 0xe2, 0x6f, 0x99, 0x8a, 0xdf, 0x7d, 0x85, 0x9e, 0xc5, 0x29, 0x8f, 0xc0, 0x67, + 0x93, 0x6f, 0x17, 0x9b, 0xc8, 0x75, 0x91, 0xed, 0x28, 0xaa, 0x11, 0x65, 0x9e, 0xef, 0x35, 0xbd, + 0xf8, 0xf9, 0xf7, 0x83, 0xbb, 0xb8, 0x46, 0x91, 0x15, 0xc3, 0x28, 0xef, 0xc1, 0xcd, 0x11, 0x51, + 0x31, 0x04, 0xe7, 0x6b, 0x8c, 0x73, 0xba, 0x27, 0x32, 0x30, 0xed, 0x0e, 0x70, 0xb9, 0xb7, 0x97, + 0x43, 0x70, 0xfe, 0x11, 0xe3, 0x94, 0x18, 0x96, 0x6f, 0x29, 0x66, 0x7c, 0x12, 0x26, 0xaf, 0x22, + 0x7b, 0xdf, 0x72, 0xd8, 0xd5, 0xc8, 0x10, 0x74, 0xaf, 0x33, 0xba, 0x09, 0x06, 0x24, 0x77, 0x25, + 0x98, 0xeb, 0x51, 0xc8, 0x34, 0x54, 0x0d, 0x0d, 0x41, 0xf1, 0x05, 0x46, 0x31, 0x86, 0xf5, 0x31, + 0xb4, 0x02, 0xf9, 0xa6, 0xc5, 0xca, 0x52, 0x3c, 0xfc, 0x0d, 0x06, 0xcf, 0x71, 0x0c, 0xa3, 0x68, + 0x5b, 0xed, 0x8e, 0x81, 0x6b, 0x56, 0x3c, 0xc5, 0x1f, 0x73, 0x0a, 0x8e, 0x61, 0x14, 0xc7, 0x70, + 0xeb, 0x9f, 0x70, 0x0a, 0xc7, 0xe7, 0xcf, 0x27, 0x20, 0x67, 0x99, 0xc6, 0xa1, 0x65, 0x0e, 0x63, + 0xc4, 0x17, 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x00, 0xd9, 0x61, 0x37, 0xe2, 0x4f, 0xdf, 0xe7, + 0xc7, 0x83, 0xef, 0xc0, 0x1a, 0x4c, 0xf0, 0x04, 0xa5, 0x5b, 0xe6, 0x10, 0x14, 0x7f, 0xc6, 0x28, + 0x0a, 0x3e, 0x18, 0x5b, 0x86, 0x8b, 0x1c, 0xb7, 0x89, 0x86, 0x21, 0x79, 0x93, 0x2f, 0x83, 0x41, + 0x98, 0x2b, 0xf7, 0x91, 0xa9, 0x1d, 0x0c, 0xc7, 0xf0, 0x65, 0xee, 0x4a, 0x8e, 0xc1, 0x14, 0x2b, + 0x30, 0xde, 0x52, 0x6d, 0xe7, 0x40, 0x35, 0x86, 0xda, 0x8e, 0x3f, 0x67, 0x1c, 0x79, 0x0f, 0xc4, + 0x3c, 0xd2, 0x31, 0x8f, 0x43, 0xf3, 0x15, 0xee, 0x11, 0x1f, 0x8c, 0x1d, 0x3d, 0xc7, 0x25, 0x17, + 0x50, 0xc7, 0x61, 0xfb, 0x2a, 0x3f, 0x7a, 0x14, 0xbb, 0xe9, 0x67, 0xbc, 0x00, 0x59, 0x47, 0x7f, + 0x79, 0x28, 0x9a, 0xbf, 0xe0, 0x3b, 0x4d, 0x00, 0x18, 0xfc, 0x2c, 0xdc, 0x12, 0x59, 0x26, 0x86, + 0x20, 0xfb, 0x4b, 0x46, 0x76, 0x22, 0xa2, 0x54, 0xb0, 0x94, 0x70, 0x5c, 0xca, 0xbf, 0xe2, 0x29, + 0x01, 0x85, 0xb8, 0x76, 0xf0, 0x8b, 0x82, 0xa3, 0x36, 0x8e, 0xe7, 0xb5, 0xbf, 0xe6, 0x5e, 0xa3, + 0xd8, 0x80, 0xd7, 0x76, 0xe1, 0x04, 0x63, 0x3c, 0xde, 0xbe, 0x7e, 0x8d, 0x27, 0x56, 0x8a, 0xde, + 0x0b, 0xee, 0xee, 0x2f, 0xc0, 0x8c, 0xe7, 0x4e, 0xde, 0x91, 0x3a, 0x4a, 0x4b, 0x6d, 0x0f, 0xc1, + 0xfc, 0x75, 0xc6, 0xcc, 0x33, 0xbe, 0xd7, 0xd2, 0x3a, 0x9b, 0x6a, 0x1b, 0x93, 0x5f, 0x86, 0x22, + 0x27, 0xef, 0x98, 0x36, 0xd2, 0xac, 0xa6, 0xa9, 0xbf, 0x8c, 0xea, 0x43, 0x50, 0xff, 0x4d, 0x68, + 0xab, 0xf6, 0x7c, 0x70, 0xcc, 0xbc, 0x0e, 0xa2, 0xd7, 0xab, 0x28, 0x7a, 0xab, 0x6d, 0xd9, 0x6e, + 0x0c, 0xe3, 0xdf, 0xf2, 0x9d, 0xf2, 0x70, 0xeb, 0x04, 0x56, 0xae, 0x42, 0x81, 0x3c, 0x0e, 0x1b, + 0x92, 0x7f, 0xc7, 0x88, 0xc6, 0xbb, 0x28, 0x96, 0x38, 0x34, 0xab, 0xd5, 0x56, 0xed, 0x61, 0xf2, + 0xdf, 0xdf, 0xf3, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0xb8, 0x87, 0x6d, 0x84, 0xab, 0xfd, 0x10, 0x0c, + 0xdf, 0xe0, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x86, 0xa0, 0xf8, 0x07, 0x4e, 0xc1, 0x31, + 0x98, 0xe2, 0xb3, 0xdd, 0x42, 0x6b, 0xa3, 0xa6, 0xee, 0xb8, 0x36, 0xed, 0x83, 0x07, 0x53, 0x7d, + 0xf3, 0xfd, 0x60, 0x13, 0x26, 0xfb, 0xa0, 0xe5, 0x27, 0x61, 0x22, 0xd4, 0x62, 0x48, 0x71, 0xdf, + 0x2c, 0x14, 0x7f, 0xf9, 0x43, 0x96, 0x8c, 0x82, 0x1d, 0x46, 0x79, 0x03, 0xef, 0x7b, 0xb0, 0x0f, + 0x88, 0x27, 0x7b, 0xe5, 0x43, 0x6f, 0xeb, 0x03, 0x6d, 0x40, 0xf9, 0x22, 0x8c, 0x07, 0x7a, 0x80, + 0x78, 0xaa, 0x5f, 0x61, 0x54, 0x79, 0x7f, 0x0b, 0x50, 0x3e, 0x0b, 0x29, 0x5c, 0xcf, 0xe3, 0xe1, + 0xbf, 0xca, 0xe0, 0x44, 0xbd, 0xfc, 0x18, 0x64, 0x78, 0x1d, 0x8f, 0x87, 0xfe, 0x1a, 0x83, 0x7a, + 0x10, 0x0c, 0xe7, 0x35, 0x3c, 0x1e, 0xfe, 0xeb, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xbc, 0x0b, 0xbf, + 0xf5, 0x1b, 0x29, 0x96, 0x87, 0xb9, 0xef, 0x2e, 0xc0, 0x18, 0x2b, 0xde, 0xf1, 0xe8, 0xcf, 0xb1, + 0xc9, 0x39, 0xa2, 0xfc, 0x08, 0xa4, 0x87, 0x74, 0xf8, 0x6f, 0x32, 0x28, 0xd5, 0x2f, 0xaf, 0x40, + 0xce, 0x57, 0xb0, 0xe3, 0xe1, 0xbf, 0xc5, 0xe0, 0x7e, 0x14, 0x36, 0x9d, 0x15, 0xec, 0x78, 0x82, + 0xdf, 0xe6, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0xaf, 0xd5, 0xf1, 0xe8, 0xdf, 0xe1, 0x5e, 0xe7, 0x90, + 0xf2, 0x13, 0x90, 0xf5, 0xf2, 0x6f, 0x3c, 0xfe, 0x77, 0x19, 0xbe, 0x8b, 0xc1, 0x1e, 0xf0, 0xe5, + 0xff, 0x78, 0x8a, 0xdf, 0xe3, 0x1e, 0xf0, 0xa1, 0xf0, 0x31, 0x0a, 0xd7, 0xf4, 0x78, 0xa6, 0xdf, + 0xe7, 0xc7, 0x28, 0x54, 0xd2, 0xf1, 0x6e, 0x92, 0x34, 0x18, 0x4f, 0xf1, 0x07, 0x7c, 0x37, 0x89, + 0x3e, 0x36, 0x23, 0x5c, 0x24, 0xe3, 0x39, 0xfe, 0x90, 0x9b, 0x11, 0xaa, 0x91, 0xe5, 0x1d, 0x90, + 0x7a, 0x0b, 0x64, 0x3c, 0xdf, 0xab, 0x8c, 0x6f, 0xb2, 0xa7, 0x3e, 0x96, 0x9f, 0x81, 0x13, 0xd1, + 0xc5, 0x31, 0x9e, 0xf5, 0xf3, 0x1f, 0x86, 0x5e, 0x67, 0xfc, 0xb5, 0xb1, 0xbc, 0xdb, 0xcd, 0xb2, + 0xfe, 0xc2, 0x18, 0x4f, 0xfb, 0xda, 0x87, 0xc1, 0x44, 0xeb, 0xaf, 0x8b, 0xe5, 0x0a, 0x40, 0xb7, + 0x26, 0xc5, 0x73, 0xbd, 0xce, 0xb8, 0x7c, 0x20, 0x7c, 0x34, 0x58, 0x49, 0x8a, 0xc7, 0x7f, 0x81, + 0x1f, 0x0d, 0x86, 0xc0, 0x47, 0x83, 0x57, 0xa3, 0x78, 0xf4, 0x1b, 0xfc, 0x68, 0x70, 0x48, 0xf9, + 0x02, 0x64, 0xcc, 0x8e, 0x61, 0xe0, 0xd8, 0x92, 0x06, 0x7f, 0x46, 0x54, 0xfc, 0xf7, 0x8f, 0x18, + 0x98, 0x03, 0xca, 0x67, 0x21, 0x8d, 0x5a, 0xfb, 0xa8, 0x1e, 0x87, 0xfc, 0x8f, 0x8f, 0x78, 0x3e, + 0xc1, 0xda, 0xe5, 0x27, 0x00, 0xe8, 0xcb, 0x34, 0xf9, 0x95, 0x28, 0x06, 0xfb, 0x9f, 0x1f, 0xb1, + 0x2f, 0x14, 0xba, 0x90, 0x2e, 0x01, 0xfd, 0xde, 0x61, 0x30, 0xc1, 0xfb, 0x41, 0x02, 0xf2, 0x02, + 0xfe, 0x28, 0x8c, 0xbd, 0xe0, 0x58, 0xa6, 0xab, 0x36, 0xe3, 0xd0, 0xff, 0xc5, 0xd0, 0x5c, 0x1f, + 0x3b, 0xac, 0x65, 0xd9, 0xc8, 0x55, 0x9b, 0x4e, 0x1c, 0xf6, 0xbf, 0x19, 0xd6, 0x03, 0x60, 0xb0, + 0xa6, 0x3a, 0xee, 0x30, 0xeb, 0xfe, 0x1f, 0x0e, 0xe6, 0x00, 0x6c, 0x34, 0xfe, 0xff, 0x0a, 0x3a, + 0x8c, 0xc3, 0x7e, 0xc0, 0x8d, 0x66, 0xfa, 0xe5, 0xc7, 0x20, 0x8b, 0xff, 0xa5, 0x5f, 0xed, 0xc4, + 0x80, 0xff, 0x97, 0x81, 0xbb, 0x08, 0x3c, 0xb3, 0xe3, 0xd6, 0x5d, 0x3d, 0xde, 0xd9, 0x3f, 0x62, + 0x3b, 0xcd, 0xf5, 0xcb, 0x15, 0xc8, 0x39, 0x6e, 0xbd, 0xde, 0x61, 0x1d, 0x4d, 0x0c, 0xfc, 0xc7, + 0x1f, 0x79, 0x2f, 0xb9, 0x1e, 0x66, 0xf9, 0x54, 0xf4, 0x65, 0x1d, 0xac, 0x59, 0x6b, 0x16, 0xbd, + 0xa6, 0x83, 0x1f, 0x3d, 0x00, 0xb7, 0x69, 0x56, 0x6b, 0xdf, 0x72, 0x16, 0xf7, 0x2d, 0xf7, 0x60, + 0xb1, 0xa5, 0xb6, 0x1d, 0xa2, 0xb8, 0xc4, 0x2e, 0xd9, 0x72, 0xec, 0x09, 0x0f, 0xcc, 0x1c, 0xef, + 0x82, 0x6e, 0xee, 0x76, 0x18, 0xbf, 0x68, 0x58, 0xaa, 0xab, 0x9b, 0xcd, 0x1d, 0x4b, 0x37, 0x5d, + 0x29, 0x0f, 0x42, 0x83, 0xfc, 0xba, 0x24, 0xc8, 0x42, 0x63, 0xee, 0x5f, 0xd2, 0x90, 0xa5, 0x77, + 0x3b, 0x9b, 0x6a, 0x5b, 0xfa, 0x25, 0xc8, 0x6f, 0xb1, 0xe3, 0xf1, 0xd0, 0xd2, 0x79, 0xc7, 0xbb, + 0x48, 0xf6, 0xcd, 0xbf, 0xe0, 0x69, 0x2f, 0xf8, 0x55, 0xc9, 0xaf, 0xc9, 0xcb, 0x0f, 0x7e, 0xff, + 0xed, 0xd9, 0xfb, 0xfb, 0xda, 0x87, 0xeb, 0xe1, 0x22, 0x8d, 0xe3, 0x85, 0x3d, 0xdd, 0x74, 0x1f, + 0x5a, 0x3a, 0x2f, 0x07, 0xe6, 0x93, 0xae, 0x42, 0x86, 0x0d, 0x38, 0xec, 0x07, 0x86, 0x3b, 0xfb, + 0xcc, 0xcd, 0xd5, 0xe8, 0xbc, 0x67, 0xde, 0x7a, 0x7b, 0x76, 0xe4, 0xd8, 0x73, 0x7b, 0x73, 0x49, + 0x2f, 0x42, 0x8e, 0xdb, 0xb1, 0x5e, 0x77, 0xd8, 0x77, 0xc4, 0xf7, 0xc4, 0x2c, 0x7b, 0xbd, 0xce, + 0x66, 0xbf, 0xfb, 0xfb, 0x6f, 0xcf, 0xce, 0x0d, 0x9c, 0x79, 0x61, 0xaf, 0xa3, 0xd7, 0x65, 0xff, + 0x1c, 0xd2, 0xf3, 0x90, 0xc4, 0x53, 0xd1, 0x2f, 0x8e, 0x67, 0xfb, 0x4c, 0xe5, 0x4d, 0x71, 0x9a, + 0x2d, 0x70, 0x98, 0x69, 0x30, 0xef, 0xcc, 0x13, 0x30, 0xd9, 0xb3, 0x3d, 0x92, 0x08, 0xc9, 0x2b, + 0xe8, 0x90, 0x7d, 0x64, 0x84, 0xff, 0x95, 0xa6, 0xbb, 0x1f, 0xd1, 0x09, 0xf3, 0x79, 0xf6, 0x65, + 0x5c, 0x39, 0x71, 0x5e, 0x98, 0xb9, 0x00, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x38, 0x88, 0x61, + 0x2f, 0x1d, 0x0b, 0x7f, 0x0e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x3d, 0x09, 0xc6, 0x2a, 0x86, 0xb1, + 0xa9, 0xb6, 0x1d, 0xe9, 0x59, 0x98, 0xa4, 0x5d, 0xfb, 0xae, 0xb5, 0x4a, 0x7e, 0xd2, 0xd9, 0x54, + 0xdb, 0x2c, 0xa0, 0xef, 0x0b, 0xb8, 0x9b, 0x01, 0x16, 0x7a, 0xb4, 0xc9, 0xfc, 0x72, 0x2f, 0x8b, + 0xf4, 0x34, 0x88, 0x5c, 0x48, 0xce, 0x16, 0x66, 0xa6, 0xe1, 0x7a, 0x7a, 0x20, 0x33, 0x57, 0xa6, + 0xc4, 0x3d, 0x1c, 0xd2, 0xe3, 0x90, 0x59, 0x37, 0xdd, 0x87, 0x97, 0x30, 0x1f, 0x8d, 0xc1, 0xb9, + 0x48, 0x3e, 0xae, 0x44, 0x79, 0x3c, 0x0c, 0xc3, 0x9f, 0x3b, 0x83, 0xf1, 0xa9, 0xc1, 0x78, 0xa2, + 0xd4, 0xc5, 0x93, 0x47, 0xa9, 0x02, 0x59, 0xbc, 0xe7, 0xd4, 0x00, 0xfa, 0x09, 0xfb, 0x1d, 0x91, + 0x04, 0x9e, 0x16, 0x65, 0xe8, 0xa2, 0x38, 0x05, 0xb5, 0x61, 0x34, 0x86, 0xc2, 0x67, 0x44, 0x17, + 0x85, 0x29, 0x6a, 0x9e, 0x15, 0x63, 0x03, 0x28, 0x6a, 0x21, 0x2b, 0x6a, 0x7e, 0x2b, 0x6a, 0x9e, + 0x15, 0x99, 0x18, 0x0a, 0xbf, 0x15, 0xde, 0xb3, 0xb4, 0x0a, 0x70, 0x51, 0xbf, 0x86, 0xea, 0xd4, + 0x8c, 0x6c, 0x44, 0x32, 0xe2, 0x1c, 0x5d, 0x35, 0x4a, 0xe2, 0xc3, 0x49, 0x6b, 0x90, 0xab, 0x35, + 0xba, 0x34, 0xc0, 0xbe, 0xe0, 0x8f, 0x34, 0xa5, 0x11, 0xe2, 0xf1, 0x23, 0x3d, 0x73, 0xe8, 0x92, + 0x72, 0x71, 0xe6, 0xf8, 0xd6, 0xe4, 0xc3, 0x75, 0xcd, 0xa1, 0x34, 0xf9, 0x58, 0x73, 0x7c, 0x3c, + 0x7e, 0xa4, 0x74, 0x01, 0xc6, 0x96, 0x2d, 0x0b, 0x6b, 0x16, 0xc7, 0x09, 0xc9, 0xa9, 0x48, 0x12, + 0xa6, 0x43, 0x09, 0x38, 0x82, 0xec, 0x0e, 0x09, 0x7d, 0x0c, 0x2f, 0x0c, 0xda, 0x1d, 0xae, 0xc5, + 0x77, 0x87, 0x3f, 0xfb, 0x4f, 0xe0, 0xf2, 0xa1, 0x8b, 0x70, 0x87, 0x5c, 0x9c, 0x18, 0xe2, 0x04, + 0x72, 0xe5, 0xd0, 0x09, 0xe4, 0x62, 0xa9, 0x06, 0x13, 0x5c, 0x56, 0x35, 0x3b, 0x38, 0x07, 0x17, + 0x45, 0xf6, 0x79, 0xf1, 0x20, 0x5a, 0xa6, 0x4b, 0x59, 0xc3, 0x0c, 0xd2, 0x0e, 0x14, 0xb8, 0x68, + 0xd3, 0x21, 0x8b, 0x9e, 0x8c, 0xa8, 0xab, 0x61, 0x4e, 0xaa, 0x4a, 0x29, 0x43, 0xf8, 0x99, 0x55, + 0x38, 0x11, 0x9d, 0xad, 0xe2, 0xb2, 0xa5, 0xe0, 0xcf, 0xb2, 0x2b, 0x70, 0x53, 0x64, 0x66, 0x8a, + 0x23, 0x49, 0x84, 0xea, 0x44, 0x20, 0x1d, 0xf9, 0xc1, 0xe9, 0x08, 0x70, 0xba, 0x17, 0xdc, 0x0d, + 0x32, 0x3f, 0x38, 0x19, 0x01, 0x4e, 0xfa, 0xc1, 0x9f, 0x81, 0x42, 0x30, 0x0f, 0xf9, 0xd1, 0xe3, + 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xdc, 0xa9, 0x08, 0x74, 0x2a, 0x84, 0xae, 0xf5, 0x9d, 0x7b, + 0x32, 0x02, 0x3d, 0x19, 0x81, 0x8e, 0x9e, 0x5b, 0x8a, 0x40, 0x4b, 0x7e, 0xf4, 0x63, 0x30, 0x11, + 0x4a, 0x39, 0x7e, 0xf8, 0x58, 0x04, 0x7c, 0x2c, 0x54, 0x9b, 0xc3, 0xa9, 0xc6, 0x8f, 0x9f, 0x88, + 0xc0, 0x4f, 0x44, 0x4d, 0x1f, 0x6d, 0xfd, 0x68, 0x04, 0x7c, 0x34, 0x72, 0xfa, 0x68, 0xbc, 0x18, + 0x81, 0x17, 0xfd, 0xf8, 0x32, 0xe4, 0xfd, 0x59, 0xc5, 0x8f, 0xcd, 0x44, 0x60, 0x33, 0x61, 0xbf, + 0x07, 0x52, 0x4a, 0x5c, 0xa4, 0x67, 0xfb, 0x1c, 0x97, 0x40, 0x1a, 0x39, 0x56, 0x67, 0x73, 0x19, + 0xa6, 0xa3, 0x92, 0x46, 0x04, 0xc7, 0x69, 0x3f, 0x47, 0x61, 0x69, 0x3a, 0x90, 0x2c, 0x08, 0xae, + 0xd3, 0xf2, 0x33, 0x3f, 0x0f, 0x53, 0x11, 0xa9, 0x23, 0x82, 0xf8, 0x41, 0x3f, 0x71, 0x6e, 0x69, + 0x26, 0x40, 0x1c, 0x78, 0x57, 0xf0, 0xb7, 0x56, 0x3f, 0x98, 0x82, 0x02, 0x4b, 0x51, 0xdb, 0x76, + 0x1d, 0xd9, 0xa8, 0x2e, 0xfd, 0x62, 0xff, 0x0e, 0x6b, 0x29, 0x2a, 0xb5, 0x31, 0xdc, 0x31, 0x1a, + 0xad, 0xe7, 0xfb, 0x36, 0x5a, 0x0f, 0x0d, 0x33, 0x41, 0x5c, 0xbf, 0x55, 0xed, 0xe9, 0xb7, 0xee, + 0x1d, 0x44, 0xdb, 0xaf, 0xed, 0xaa, 0xf6, 0xb4, 0x5d, 0x71, 0x34, 0x91, 0xdd, 0xd7, 0xa5, 0xde, + 0xee, 0xeb, 0xf4, 0x20, 0x9e, 0xfe, 0x4d, 0xd8, 0xa5, 0xde, 0x26, 0x2c, 0x96, 0x29, 0xba, 0x17, + 0xbb, 0xd4, 0xdb, 0x8b, 0x0d, 0x64, 0xea, 0xdf, 0x92, 0x5d, 0xea, 0x6d, 0xc9, 0x62, 0x99, 0xa2, + 0x3b, 0xb3, 0xa7, 0x22, 0x3a, 0xb3, 0xfb, 0x06, 0x51, 0x0d, 0x6a, 0xd0, 0xb6, 0xa2, 0x1a, 0xb4, + 0xfb, 0x07, 0x1a, 0x36, 0xb0, 0x4f, 0x7b, 0x2a, 0xa2, 0x4f, 0x8b, 0x37, 0xae, 0x4f, 0xbb, 0xb6, + 0x15, 0xd5, 0xae, 0x0d, 0x61, 0x5c, 0xbf, 0xae, 0x6d, 0x39, 0xdc, 0xb5, 0xcd, 0x0f, 0xe2, 0x8a, + 0x6e, 0xde, 0x2e, 0xf5, 0x36, 0x6f, 0xa7, 0xe3, 0xcf, 0x62, 0x54, 0x0f, 0xf7, 0x7c, 0xdf, 0x1e, + 0x6e, 0xa8, 0xc3, 0x1d, 0xd7, 0xca, 0x3d, 0xd7, 0xaf, 0x95, 0x7b, 0x70, 0x18, 0xf6, 0xc1, 0x1d, + 0xdd, 0x33, 0x7d, 0x3a, 0xba, 0xc5, 0x61, 0xa8, 0x3f, 0x6d, 0xec, 0x3e, 0x6d, 0xec, 0x3e, 0x6d, + 0xec, 0x3e, 0x6d, 0xec, 0x7e, 0x3e, 0x1a, 0xbb, 0x72, 0xea, 0xd5, 0x2f, 0xce, 0x0a, 0xa7, 0x4f, + 0xc1, 0x18, 0x9b, 0x5a, 0x1a, 0x85, 0xc4, 0x66, 0x45, 0x1c, 0x21, 0x7f, 0x97, 0x45, 0x81, 0xfc, + 0x5d, 0x11, 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x28, 0x8d, 0x7c, 0xe7, 0x46, 0x69, 0xe4, 0x7b, 0x37, + 0x4a, 0x23, 0xef, 0xdc, 0x28, 0x09, 0xef, 0xdd, 0x28, 0x09, 0x1f, 0xdc, 0x28, 0x09, 0x3f, 0xb9, + 0x51, 0x12, 0xae, 0x1f, 0x95, 0x84, 0x2f, 0x1f, 0x95, 0x84, 0xaf, 0x1d, 0x95, 0x84, 0x6f, 0x1e, + 0x95, 0x84, 0x6f, 0x1d, 0x95, 0x84, 0xb7, 0x8e, 0x4a, 0xc2, 0x77, 0x8e, 0x4a, 0xc2, 0x3b, 0x47, + 0x25, 0xe1, 0xbd, 0xa3, 0xd2, 0xc8, 0x07, 0x47, 0x25, 0xe1, 0x27, 0x47, 0xa5, 0x91, 0xeb, 0x3f, + 0x2c, 0x8d, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0xa4, 0xc6, 0x17, 0x51, 0x45, 0x00, + 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -518,6 +567,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1206,6 +1379,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1459,6 +1673,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1933,367 +2211,484 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) + return dAtA[:n], nil +} + +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.F != nil { + dAtA[i] = 0x9 + i++ + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(*m.F)))) } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } - s += strings.Join(ss, ",") + "}" - return s + return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { + +func (m *CustomMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *CustomMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if m.F != nil { - data[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(*m.F)))) + if len(m.Nullable128S) > 0 { + for k := range m.Nullable128S { + dAtA[i] = 0xa + i++ + v := m.Nullable128S[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + if len(m.Uint128S) > 0 { + for k := range m.Uint128S { + dAtA[i] = 0x12 + i++ + v := m.Uint128S[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n2, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + } + if len(m.NullableIds) > 0 { + for k := range m.NullableIds { + dAtA[i] = 0x1a + i++ + v := m.NullableIds[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n3, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + } + } + if len(m.Ids) > 0 { + for k := range m.Ids { + dAtA[i] = 0x22 + i++ + v := m.Ids[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n5, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 } - i += n1 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -2305,18 +2700,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -2326,18 +2721,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -2347,17 +2742,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -2367,17 +2762,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -2387,17 +2782,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -2407,17 +2802,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -2427,17 +2822,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -2447,17 +2842,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -2467,17 +2862,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -2487,17 +2882,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -2507,17 +2902,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -2527,17 +2922,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -2547,25 +2942,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -2577,19 +2972,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -2599,19 +2994,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -2621,20 +3022,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -2644,62 +3045,65 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Mapsproto2(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Mapsproto2(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Mapsproto2(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Mapsproto2(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintMapsproto2(data []byte, offset int, v uint64) int { +func encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { @@ -2717,166 +3121,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2889,163 +3329,163 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} if r.Intn(10) != 0 { - v34 := r.Intn(10) + v38 := r.Intn(10) this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) + for i := 0; i < v38; i++ { + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { - v36 := r.Intn(10) + v40 := r.Intn(10) this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) + for i := 0; i < v40; i++ { + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { - v38 := r.Intn(10) + v42 := r.Intn(10) this.Int32Map = make(map[int32]int32) - for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + for i := 0; i < v42; i++ { + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.Int32Map[v43] *= -1 } } } if r.Intn(10) != 0 { - v40 := r.Intn(10) + v44 := r.Intn(10) this.Int64Map = make(map[int64]int64) - for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + for i := 0; i < v44; i++ { + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.Int64Map[v45] *= -1 } } } if r.Intn(10) != 0 { - v42 := r.Intn(10) + v46 := r.Intn(10) this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + for i := 0; i < v46; i++ { + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v44 := r.Intn(10) + v48 := r.Intn(10) this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + for i := 0; i < v48; i++ { + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v46 := r.Intn(10) + v50 := r.Intn(10) this.Sint32Map = make(map[int32]int32) - for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) + for i := 0; i < v50; i++ { + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 + this.Sint32Map[v51] *= -1 } } } if r.Intn(10) != 0 { - v48 := r.Intn(10) + v52 := r.Intn(10) this.Sint64Map = make(map[int64]int64) - for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) + for i := 0; i < v52; i++ { + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { - v50 := r.Intn(10) + v54 := r.Intn(10) this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + for i := 0; i < v54; i++ { + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v52 := r.Intn(10) + v56 := r.Intn(10) this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + for i := 0; i < v56; i++ { + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { - v54 := r.Intn(10) + v58 := r.Intn(10) this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + for i := 0; i < v58; i++ { + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v56 := r.Intn(10) + v60 := r.Intn(10) this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed64Map[v61] *= -1 } } } if r.Intn(10) != 0 { - v58 := r.Intn(10) + v62 := r.Intn(10) this.BoolMap = make(map[bool]bool) - for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) } } if r.Intn(10) != 0 { - v60 := r.Intn(10) + v64 := r.Intn(10) this.StringMap = make(map[string]string) - for i := 0; i < v60; i++ { + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -3074,14 +3514,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3089,43 +3529,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -3139,6 +3579,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -3258,7 +3755,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3277,8 +3778,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3407,7 +3909,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3426,8 +3932,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3461,6 +3968,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3863,8 +4424,8 @@ func valueToStringMapsproto2(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3876,7 +4437,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3901,19 +4462,19 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.F = &v2 default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -3923,7 +4484,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3933,8 +4494,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3946,7 +4507,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3956,15 +4517,15 @@ func (m *AllMaps) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + return fmt.Errorf("proto: CustomMap: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3974,7 +4535,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3996,7 +4557,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4011,7 +4572,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4026,45 +4587,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.Nullable128S == nil { + m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 + m.Nullable128S[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4074,7 +4655,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4096,7 +4677,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4111,7 +4692,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4126,41 +4707,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.Uint128S == nil { + m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_custom.Uint128 + m.Uint128S[mapkey] = mapvalue } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4170,7 +4775,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4192,29 +4797,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var valuekey uint64 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4222,36 +4812,80 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.NullableIds == nil { + m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err + } + iNdEx = postbytesIndex + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test.Uuid + m.NullableIds[mapkey] = mapvalue } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4261,7 +4895,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4283,14 +4917,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int64 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4298,14 +4932,457 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Ids == nil { + m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err + } + iNdEx = postbytesIndex + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test.Uuid + m.Ids[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4313,14 +5390,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 + var mapkey int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4328,9 +5405,9 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift + mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } @@ -4338,7 +5415,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - m.Int64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue + } iNdEx = postIndex case 5: if wireType != 2 { @@ -4352,7 +5464,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4374,7 +5486,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4389,47 +5501,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -4443,7 +5560,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4465,7 +5582,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4480,47 +5597,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -4534,7 +5656,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4556,7 +5678,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4571,7 +5693,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4580,42 +5702,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -4629,7 +5756,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4651,7 +5778,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4666,7 +5793,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4675,42 +5802,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -4724,7 +5856,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4746,7 +5878,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4758,38 +5890,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -4803,7 +5940,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4811,37 +5948,13 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + return ErrInvalidLengthMapsproto2 } - var mapkey int32 - if (iNdEx + 4) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4849,26 +5962,55 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 + var mapkey int32 if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - m.Sfixed32Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue + } iNdEx = postIndex case 11: if wireType != 2 { @@ -4882,7 +6024,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4904,7 +6046,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4916,46 +6058,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -4969,7 +6116,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4991,7 +6138,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5003,46 +6150,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -5056,7 +6208,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5078,7 +6230,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5093,7 +6245,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5101,41 +6253,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -5149,7 +6306,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5171,7 +6328,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5186,7 +6343,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5201,52 +6358,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -5260,7 +6422,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5282,7 +6444,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5297,7 +6459,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5312,53 +6474,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -5372,7 +6539,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5381,52 +6548,12 @@ func (m *AllMaps) Unmarshal(data []byte) error { } if msglen < 0 { return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + } + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5434,14 +6561,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5449,17 +6576,62 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - m.StringToEnumMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue + } iNdEx = postIndex case 17: if wireType != 2 { @@ -5473,7 +6645,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5495,7 +6667,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5510,7 +6682,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5525,61 +6697,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -5589,7 +6766,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5599,8 +6776,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5612,7 +6789,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5640,7 +6817,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5662,7 +6839,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5677,7 +6854,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5692,41 +6869,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -5740,7 +6922,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5762,7 +6944,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5777,7 +6959,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5792,37 +6974,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5836,7 +7023,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5858,7 +7045,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5873,47 +7060,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5927,7 +7119,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5949,7 +7141,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5964,47 +7156,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -6018,7 +7215,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6040,7 +7237,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6055,47 +7252,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -6109,7 +7311,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6131,7 +7333,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6146,47 +7348,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6200,7 +7407,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6222,7 +7429,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6237,7 +7444,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -6246,42 +7453,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6295,7 +7507,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6317,7 +7529,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6332,7 +7544,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6341,42 +7553,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6390,7 +7607,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6412,7 +7629,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6424,38 +7641,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6469,7 +7691,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6491,7 +7713,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6503,38 +7725,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6548,7 +7775,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6570,7 +7797,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6582,46 +7809,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6635,49 +7867,21 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 } - var mapkey int64 - if (iNdEx + 8) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6685,30 +7889,63 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 + var mapkey int64 if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - m.Sfixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 13: if wireType != 2 { @@ -6722,7 +7959,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6744,7 +7981,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6759,7 +7996,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6767,41 +8004,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6815,7 +8057,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6837,7 +8079,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6852,7 +8094,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6867,52 +8109,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6926,7 +8173,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6948,7 +8195,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6963,7 +8210,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6978,53 +8225,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -7038,7 +8290,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7060,7 +8312,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7075,7 +8327,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7090,42 +8342,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7139,7 +8396,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7161,7 +8418,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7176,7 +8433,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7191,61 +8448,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -7255,7 +8517,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -7265,8 +8527,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func skipMapsproto2(data []byte) (n int, err error) { - l := len(data) +func skipMapsproto2(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -7277,7 +8539,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7295,7 +8557,7 @@ func skipMapsproto2(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -7312,7 +8574,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7335,7 +8597,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7346,7 +8608,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipMapsproto2(data[start:]) + next, err := skipMapsproto2(dAtA[start:]) if err != nil { return 0, err } @@ -7370,67 +8632,80 @@ var ( ErrIntOverflowMapsproto2 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 968 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xcd, 0x4f, 0x1b, 0x47, - 0x18, 0xc6, 0xbd, 0xfe, 0xf6, 0xf8, 0x6b, 0x3d, 0xd0, 0xca, 0xb2, 0x5a, 0xb7, 0xb8, 0xad, 0x64, - 0x4c, 0x6b, 0x53, 0xb7, 0xaa, 0x2a, 0x68, 0x91, 0x30, 0x98, 0xba, 0xa2, 0x50, 0x84, 0xfb, 0x91, - 0x44, 0x42, 0x0a, 0x0e, 0xb6, 0xb1, 0x62, 0x7b, 0x91, 0x77, 0x1d, 0x85, 0x1b, 0x7f, 0x46, 0xae, - 0xb9, 0xe5, 0x98, 0x63, 0x8e, 0x39, 0x72, 0xe4, 0xc8, 0x21, 0x07, 0x20, 0x17, 0x8e, 0x1c, 0x39, - 0x66, 0x76, 0x66, 0x77, 0x3d, 0xbb, 0xfb, 0xee, 0xae, 0x73, 0xcb, 0xc1, 0x87, 0x57, 0xcb, 0x8c, - 0xdf, 0xe7, 0x37, 0xcf, 0x62, 0xcf, 0xab, 0x07, 0x7d, 0xf1, 0x44, 0x1a, 0xb4, 0x24, 0xb9, 0xd2, - 0x92, 0x94, 0xe3, 0xca, 0xe0, 0xf0, 0x44, 0x3e, 0x19, 0x49, 0x8a, 0x54, 0x2d, 0xd3, 0x07, 0x8e, - 0x6b, 0x2b, 0xf5, 0x83, 0xdc, 0x0f, 0xdd, 0x9e, 0x72, 0x3c, 0x6e, 0x95, 0x89, 0xa2, 0xd2, 0x95, - 0xba, 0x52, 0x85, 0x7e, 0xd8, 0x1a, 0x77, 0xe8, 0x8a, 0x2e, 0xe8, 0x5f, 0x4c, 0x5b, 0xf8, 0x12, - 0x25, 0xb7, 0xfa, 0xd2, 0xa1, 0xd2, 0x1b, 0x76, 0xf7, 0xa4, 0xde, 0x50, 0xc1, 0x09, 0x24, 0x74, - 0xb2, 0xc2, 0xd7, 0x42, 0x51, 0xd8, 0x17, 0x3a, 0x85, 0x4b, 0x8c, 0x22, 0xeb, 0xfd, 0xfe, 0x0e, - 0x21, 0xe3, 0x87, 0x28, 0xd3, 0x54, 0x46, 0xa4, 0xf1, 0x1f, 0x69, 0x53, 0x1a, 0xb7, 0xfa, 0x6d, - 0xb2, 0x4b, 0x3a, 0x03, 0xc5, 0x78, 0x75, 0xa9, 0xcc, 0x59, 0x28, 0x6b, 0x82, 0xb2, 0xad, 0xbb, - 0x3e, 0x54, 0x46, 0xa7, 0xfb, 0x19, 0xd9, 0xba, 0x8f, 0xff, 0x43, 0xa2, 0xde, 0x4c, 0xdd, 0xa8, - 0x64, 0x3f, 0x25, 0x97, 0x5c, 0xc9, 0x7a, 0x33, 0x03, 0x8b, 0xb2, 0x65, 0x1b, 0xaf, 0xa1, 0xe8, - 0x9f, 0x43, 0xe5, 0xa7, 0xaa, 0xca, 0x0b, 0x50, 0x5e, 0x01, 0xe4, 0xe9, 0x4d, 0x8c, 0x13, 0xed, - 0x69, 0x4b, 0x4d, 0xff, 0xcb, 0xcf, 0xaa, 0x3e, 0xe8, 0xae, 0xa7, 0x4d, 0x13, 0x3d, 0x5d, 0xe2, - 0x75, 0x14, 0xfb, 0x57, 0x87, 0x65, 0x43, 0x14, 0xf0, 0x0d, 0x08, 0x30, 0xba, 0x18, 0x21, 0x36, - 0x36, 0x2c, 0x68, 0x08, 0xe6, 0x21, 0xec, 0x81, 0xe0, 0x4c, 0x50, 0x84, 0xe1, 0xa2, 0x69, 0xb8, - 0x88, 0xb8, 0x20, 0x9a, 0x16, 0x17, 0x32, 0xef, 0xa2, 0x69, 0xb8, 0x88, 0x7a, 0x20, 0x78, 0x17, - 0xb2, 0xe1, 0x62, 0x13, 0xa1, 0xad, 0xde, 0xf3, 0xf6, 0x11, 0xb3, 0x11, 0xa3, 0x8c, 0x6f, 0x41, - 0xc6, 0xa4, 0x8d, 0x41, 0x50, 0xc7, 0xd8, 0xc0, 0x7f, 0xa0, 0x78, 0x73, 0xb2, 0xcc, 0x22, 0x8a, - 0xf9, 0x0e, 0xb6, 0xd2, 0xb1, 0x70, 0xe2, 0x32, 0x07, 0xd2, 0xed, 0xb0, 0x57, 0x8a, 0x7b, 0xd9, - 0xe1, 0xde, 0x89, 0xd9, 0x61, 0x2f, 0x65, 0xd8, 0x61, 0x98, 0x84, 0xa7, 0x1d, 0x8e, 0xa3, 0xd9, - 0x61, 0xa0, 0x55, 0x14, 0xa9, 0x49, 0x92, 0xda, 0x99, 0x4d, 0x52, 0xc8, 0x02, 0x08, 0xd1, 0x7a, - 0x18, 0x20, 0xd2, 0x62, 0x2b, 0xfa, 0xed, 0xd0, 0x9f, 0xbe, 0x2a, 0x4f, 0xb9, 0x7d, 0x3b, 0x7a, - 0x97, 0xfe, 0xed, 0xe8, 0x6b, 0xfe, 0x06, 0xd6, 0x4e, 0x95, 0xb6, 0xac, 0x92, 0xd2, 0x53, 0xdc, - 0x40, 0xbd, 0xd9, 0x72, 0x03, 0xf5, 0x6d, 0xdc, 0x44, 0x69, 0xbd, 0xb5, 0x3e, 0x1c, 0x0f, 0x54, - 0xac, 0x48, 0xb1, 0x8b, 0xae, 0x58, 0xad, 0x97, 0x51, 0xd3, 0xb2, 0x79, 0x17, 0xef, 0xa1, 0x94, - 0xde, 0xb8, 0x23, 0xd3, 0x97, 0xce, 0x50, 0x66, 0xd1, 0x95, 0xc9, 0x5a, 0x19, 0x32, 0x25, 0x9b, - 0x36, 0x73, 0x9b, 0xe8, 0x73, 0x78, 0x5a, 0x61, 0x11, 0x05, 0x9e, 0xb6, 0x4f, 0xe9, 0x44, 0x8c, - 0xed, 0xab, 0x7f, 0xe2, 0x79, 0x14, 0x7a, 0x76, 0xd8, 0x1f, 0xb7, 0xc9, 0x84, 0x52, 0xa7, 0x24, - 0x5b, 0xac, 0xf8, 0x7f, 0x15, 0x72, 0x1b, 0xe8, 0x33, 0x70, 0x32, 0x79, 0x41, 0xfc, 0x3c, 0x64, - 0x15, 0x25, 0x4d, 0xe3, 0x88, 0x17, 0x87, 0x00, 0x71, 0xc8, 0x2e, 0x9e, 0xfc, 0xc8, 0x78, 0x71, - 0x00, 0x10, 0x07, 0x78, 0xf1, 0x6f, 0x28, 0x65, 0x9e, 0x43, 0xbc, 0x3a, 0x09, 0xa8, 0x93, 0x80, - 0x1a, 0x3e, 0x3b, 0x08, 0xa8, 0x83, 0x16, 0x75, 0xd3, 0xf1, 0xec, 0x0c, 0xa0, 0xce, 0x00, 0x6a, - 0xf8, 0x6c, 0x0c, 0xa8, 0x31, 0xaf, 0xfe, 0x1d, 0xa5, 0x2d, 0x23, 0x87, 0x97, 0x47, 0x00, 0x79, - 0x84, 0x97, 0xaf, 0x91, 0xab, 0xd3, 0x71, 0xd6, 0xa7, 0x01, 0x7d, 0x1a, 0x3a, 0x1e, 0x76, 0x1f, - 0x06, 0xe4, 0x61, 0xf0, 0x78, 0x58, 0x2f, 0x02, 0x7a, 0x91, 0xd7, 0xaf, 0xa0, 0x04, 0x3f, 0x55, - 0x78, 0x6d, 0x14, 0xd0, 0x46, 0xad, 0xff, 0x77, 0xd3, 0x48, 0xf1, 0xfa, 0xa5, 0xc7, 0x1c, 0xae, - 0x8b, 0x69, 0x8c, 0x78, 0x41, 0x12, 0x3c, 0xe4, 0x01, 0x9a, 0x87, 0x86, 0x06, 0xc0, 0x28, 0xf1, - 0x8c, 0x54, 0x75, 0xde, 0x34, 0x2c, 0xa8, 0x6e, 0x3c, 0xe0, 0xc9, 0x07, 0x68, 0x0e, 0x18, 0x1d, - 0x00, 0x78, 0x99, 0x07, 0xc7, 0xab, 0x39, 0x13, 0xd8, 0x94, 0xae, 0x38, 0x7c, 0xe1, 0xdd, 0x1c, - 0x4a, 0x69, 0x23, 0xea, 0xef, 0xd1, 0x51, 0x7b, 0xd4, 0x3e, 0xc2, 0x8f, 0x9d, 0x13, 0x56, 0x15, - 0x1a, 0x6d, 0x9a, 0xee, 0x23, 0x82, 0xd6, 0x81, 0x63, 0xd0, 0xfa, 0x71, 0x9a, 0x03, 0xbc, 0xf2, - 0x56, 0xdd, 0x96, 0xb7, 0x16, 0xdd, 0xb0, 0x4e, 0xb1, 0xab, 0x6e, 0x8b, 0x5d, 0x5e, 0x18, 0x30, - 0x7d, 0x35, 0xec, 0xe9, 0xab, 0xe4, 0xc6, 0x71, 0x0e, 0x61, 0x0d, 0x7b, 0x08, 0xf3, 0x24, 0xc1, - 0x59, 0xac, 0x61, 0xcf, 0x62, 0xae, 0x24, 0xe7, 0x48, 0xd6, 0xb0, 0x47, 0x32, 0x4f, 0x12, 0x9c, - 0xcc, 0xb6, 0x81, 0x64, 0xb6, 0xe4, 0x86, 0x72, 0x0b, 0x68, 0xbb, 0x50, 0x40, 0xfb, 0xde, 0xd5, - 0x98, 0x6b, 0x4e, 0xdb, 0x06, 0x72, 0x9a, 0xb7, 0x39, 0x87, 0xb8, 0xb6, 0x0b, 0xc5, 0xb5, 0x29, - 0xcc, 0x39, 0xa5, 0xb6, 0x9a, 0x35, 0xb5, 0x15, 0xdd, 0x58, 0x70, 0x78, 0x6b, 0xd8, 0xc3, 0x5b, - 0xc9, 0xfb, 0x2e, 0x42, 0x19, 0xee, 0xc0, 0x31, 0xc3, 0x4d, 0x75, 0xb9, 0xbd, 0xa2, 0xdc, 0x23, - 0xa7, 0x28, 0xb7, 0x3c, 0x0d, 0xdd, 0x3d, 0xd1, 0xfd, 0xef, 0x90, 0xe8, 0x2a, 0xd3, 0xa0, 0x67, - 0xc1, 0x6e, 0x16, 0xec, 0x66, 0xc1, 0x6e, 0x16, 0xec, 0x3e, 0x8d, 0x60, 0xb7, 0x12, 0x7c, 0xf1, - 0xf2, 0x2b, 0xa1, 0xb4, 0x80, 0x22, 0xda, 0xd1, 0x38, 0x8c, 0xfc, 0x3b, 0xeb, 0xa2, 0x8f, 0x3e, - 0x6b, 0xa2, 0x40, 0x9f, 0x1b, 0xa2, 0xbf, 0xf6, 0xd7, 0xf9, 0x75, 0xde, 0x77, 0x41, 0xea, 0x92, - 0xd4, 0xd5, 0x75, 0x5e, 0xb8, 0x25, 0x75, 0x47, 0xea, 0x9e, 0xd4, 0xd9, 0x4d, 0x5e, 0x78, 0x45, - 0xea, 0x35, 0xa9, 0x37, 0xa4, 0xde, 0x92, 0x3a, 0x27, 0x75, 0x41, 0xea, 0x8a, 0xd4, 0xed, 0x4d, - 0xde, 0x77, 0x47, 0x9e, 0xf7, 0xe4, 0x79, 0xf6, 0x3e, 0xef, 0xfb, 0x10, 0x00, 0x00, 0xff, 0xff, - 0xbb, 0xd1, 0xdf, 0x2d, 0x24, 0x14, 0x00, 0x00, + // 1143 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcb, 0x6f, 0x1a, 0x57, + 0x14, 0xc6, 0xb9, 0x3c, 0x0c, 0x5c, 0xde, 0x37, 0x69, 0x85, 0x50, 0x7b, 0x71, 0xe8, 0x8b, 0x90, + 0x14, 0x6c, 0x1a, 0x45, 0x96, 0xd3, 0xa6, 0x32, 0xb6, 0x53, 0xac, 0x14, 0x37, 0x82, 0xa6, 0x2f, + 0xc9, 0x52, 0xc1, 0x3c, 0x82, 0x0a, 0x0c, 0x65, 0x86, 0xa8, 0xde, 0x54, 0xf9, 0x33, 0xba, 0xed, + 0xae, 0xcb, 0x2e, 0xbb, 0xec, 0xd2, 0x52, 0x37, 0x59, 0x46, 0x51, 0x65, 0x85, 0xe9, 0x26, 0xcb, + 0x2c, 0xb3, 0xac, 0xe6, 0xce, 0x83, 0x3b, 0x33, 0x67, 0x66, 0xa0, 0xab, 0x2e, 0xbc, 0xc2, 0x77, + 0x38, 0xdf, 0xef, 0x3b, 0x33, 0x73, 0xef, 0xe1, 0x33, 0x7e, 0xeb, 0x54, 0x18, 0x77, 0x04, 0xb1, + 0xd2, 0x11, 0xa4, 0x47, 0x95, 0x71, 0x7b, 0x2a, 0x4e, 0x67, 0x82, 0x24, 0x54, 0xcb, 0xec, 0x83, + 0xc4, 0xb4, 0x95, 0xf2, 0x45, 0xee, 0xc3, 0xc1, 0x50, 0x7a, 0x34, 0xef, 0x94, 0x4f, 0x85, 0x71, + 0x65, 0x20, 0x0c, 0x84, 0x0a, 0xfb, 0xb2, 0x33, 0xef, 0xb3, 0x15, 0x5b, 0xb0, 0xbf, 0x54, 0x6d, + 0xe1, 0x6d, 0x9c, 0xb8, 0x37, 0x12, 0xda, 0xd2, 0x70, 0x32, 0x78, 0x20, 0x0c, 0x27, 0x12, 0x89, + 0x63, 0xd4, 0xcf, 0xa2, 0x4d, 0x54, 0x44, 0x4d, 0xd4, 0x2f, 0xfc, 0x15, 0xc2, 0xd1, 0xfd, 0xb9, + 0x28, 0x09, 0xe3, 0x46, 0x7b, 0x4a, 0x7e, 0xc6, 0xf1, 0xe3, 0xf9, 0x68, 0xd4, 0xee, 0x8c, 0x7a, + 0xdb, 0xd5, 0x1d, 0x31, 0x8b, 0x36, 0x03, 0xc5, 0x58, 0xb5, 0x58, 0xe6, 0xfc, 0xcb, 0x46, 0x75, + 0x99, 0x2f, 0x3d, 0x9c, 0x48, 0xb3, 0xb3, 0xda, 0xd6, 0xf3, 0x8b, 0xfc, 0x4d, 0xc7, 0xfe, 0xa4, + 0x9e, 0x28, 0x55, 0x4e, 0x99, 0xbc, 0xfc, 0x70, 0x38, 0x91, 0xb6, 0xab, 0x3b, 0x4d, 0x93, 0x1f, + 0x79, 0x8c, 0x23, 0xda, 0x17, 0x62, 0xd6, 0xcf, 0xbc, 0xdf, 0x75, 0xf0, 0xd6, 0xcb, 0x54, 0xdf, + 0x5b, 0xe7, 0x17, 0x79, 0xdf, 0xda, 0xde, 0x86, 0x17, 0xf9, 0x11, 0xc7, 0xf4, 0x3e, 0x8e, 0xba, + 0x62, 0x36, 0xc0, 0xac, 0x3f, 0xf0, 0xb8, 0xed, 0xa3, 0xae, 0xe6, 0xfe, 0xfe, 0xf3, 0x8b, 0x7c, + 0xc1, 0xd5, 0xb9, 0xfc, 0x70, 0x3e, 0xec, 0x36, 0x79, 0x0f, 0x72, 0x82, 0x03, 0x8a, 0x55, 0x90, + 0x59, 0xe5, 0x1d, 0xac, 0x0c, 0x8b, 0x92, 0x76, 0x83, 0xab, 0xd8, 0x28, 0xdc, 0xdc, 0xa7, 0x38, + 0x63, 0x7b, 0x3d, 0x24, 0x8d, 0x03, 0x3f, 0xf4, 0xce, 0xd8, 0xcb, 0x8f, 0x36, 0x95, 0x3f, 0xc9, + 0x55, 0x1c, 0x7a, 0xdc, 0x1e, 0xcd, 0x7b, 0x59, 0xff, 0x26, 0x2a, 0xc6, 0x9b, 0xea, 0x62, 0xd7, + 0xbf, 0x83, 0x72, 0x77, 0x70, 0xc2, 0xf4, 0x8c, 0xd7, 0x12, 0xdf, 0xc5, 0x69, 0xeb, 0x53, 0x5a, + 0x4b, 0x7f, 0x1b, 0x47, 0xfe, 0x8b, 0xae, 0xf0, 0x8c, 0xe0, 0xf0, 0xde, 0x68, 0xd4, 0x68, 0x4f, + 0x45, 0xf2, 0x2d, 0xce, 0xb4, 0xa4, 0xd9, 0x70, 0x32, 0xf8, 0x52, 0x38, 0x10, 0xe6, 0x9d, 0x51, + 0xaf, 0xd1, 0x9e, 0x6a, 0x1b, 0xfa, 0x86, 0xe9, 0x71, 0x6b, 0x82, 0xb2, 0xad, 0x9a, 0xf9, 0x37, + 0xed, 0x14, 0xf2, 0x15, 0x4e, 0xeb, 0x17, 0xd9, 0xd9, 0x52, 0xc8, 0xea, 0x76, 0x2d, 0xb9, 0x92, + 0xf5, 0x62, 0x15, 0x6c, 0x63, 0x90, 0xbb, 0x38, 0x72, 0x34, 0x91, 0x3e, 0xaa, 0x2a, 0x3c, 0x75, + 0x0f, 0x16, 0x40, 0x9e, 0x5e, 0xa4, 0x72, 0x0c, 0x8d, 0xa6, 0xbf, 0x7d, 0x4b, 0xd1, 0x07, 0xdd, + 0xf5, 0xac, 0x68, 0xa9, 0x67, 0x4b, 0xb2, 0x87, 0xa3, 0xca, 0x3b, 0x57, 0x1b, 0x08, 0x31, 0xc0, + 0x3b, 0x20, 0xc0, 0xa8, 0x52, 0x09, 0x4b, 0x95, 0x8e, 0x50, 0x7b, 0xd8, 0xf0, 0x40, 0x70, 0x4d, + 0x2c, 0x55, 0x0a, 0xa2, 0x65, 0x74, 0x11, 0x76, 0x41, 0xb4, 0x2c, 0x5d, 0xb4, 0xf8, 0x2e, 0x5a, + 0x46, 0x17, 0x11, 0x0f, 0x04, 0xdf, 0x85, 0xb1, 0x26, 0x07, 0x18, 0xdf, 0x1b, 0xfe, 0xd4, 0xeb, + 0xaa, 0x6d, 0x44, 0x81, 0x61, 0xa4, 0x33, 0x96, 0x65, 0x2a, 0x84, 0xd3, 0x91, 0xcf, 0x70, 0xac, + 0xd5, 0x5f, 0x62, 0x30, 0xc3, 0xbc, 0x07, 0xb7, 0xd2, 0xb7, 0x70, 0x78, 0xa5, 0xd1, 0x8e, 0x7a, + 0x4b, 0x31, 0xaf, 0x76, 0xb8, 0x7b, 0xe2, 0x74, 0xcb, 0x76, 0x54, 0x4c, 0xdc, 0xb3, 0x1d, 0x8e, + 0xc3, 0x2b, 0xc9, 0x1d, 0x1c, 0xae, 0x09, 0x82, 0x52, 0x99, 0x4d, 0x30, 0xc8, 0x35, 0x10, 0xa2, + 0xd5, 0xa8, 0x00, 0x5d, 0xc1, 0xde, 0x0e, 0xdb, 0xfa, 0x8a, 0x3c, 0xe9, 0xf6, 0x76, 0xf4, 0x2a, + 0xfd, 0xed, 0xe8, 0x6b, 0xfe, 0x04, 0xd6, 0xce, 0xa4, 0x9e, 0xa8, 0x90, 0x52, 0x2b, 0x9c, 0x40, + 0xbd, 0xd8, 0x72, 0x02, 0xf5, 0xcb, 0xa4, 0x85, 0x53, 0xfa, 0xb5, 0xc3, 0xc9, 0x5c, 0x99, 0xc1, + 0xd9, 0x34, 0xc3, 0x5e, 0x77, 0xc5, 0x6a, 0xb5, 0x2a, 0xd5, 0x4a, 0x20, 0x0f, 0x70, 0x52, 0xbf, + 0xd4, 0x10, 0xd9, 0x4d, 0x67, 0x80, 0xdf, 0x55, 0x2b, 0x53, 0x2d, 0x55, 0x91, 0x16, 0x7d, 0xee, + 0x00, 0xbf, 0x09, 0x4f, 0x2b, 0xaf, 0x69, 0x89, 0xf8, 0x29, 0xbb, 0x8f, 0xdf, 0x00, 0x27, 0x93, + 0x17, 0xc4, 0x6f, 0xf9, 0x9d, 0x30, 0x8d, 0x23, 0x5e, 0x1c, 0x02, 0xc4, 0x21, 0xbb, 0x78, 0xb9, + 0xc9, 0x78, 0x71, 0x00, 0x10, 0x07, 0x78, 0xf1, 0xc7, 0x38, 0x69, 0x9e, 0x43, 0xbc, 0x3a, 0x01, + 0xa8, 0x13, 0x80, 0x1a, 0xf6, 0x0e, 0x02, 0xea, 0xa0, 0x45, 0xdd, 0x72, 0xf4, 0xce, 0x00, 0xea, + 0x0c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xbc, 0xfa, 0x13, 0x9c, 0xb2, 0x8c, 0x1c, 0x5e, 0x1e, + 0x06, 0xe4, 0x61, 0xcb, 0x6f, 0xb3, 0x75, 0xd4, 0xf0, 0xfa, 0x14, 0xa0, 0x4f, 0x41, 0xf6, 0x70, + 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, 0x69, 0x40, 0x9f, 0xe6, 0xf5, 0xbb, 0x38, 0xce, + 0x4f, 0x15, 0x5e, 0x1b, 0x01, 0xb4, 0x11, 0xeb, 0x73, 0x37, 0x8d, 0x14, 0xaf, 0x9d, 0x1e, 0x75, + 0x38, 0x2e, 0xa6, 0x31, 0xb2, 0x56, 0xb2, 0xf9, 0x06, 0x5f, 0x85, 0x86, 0x06, 0xc0, 0x28, 0xf1, + 0x8c, 0x64, 0xf5, 0xaa, 0x69, 0x58, 0x30, 0xdd, 0x7c, 0xcc, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74, + 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x4c, 0x60, 0xd3, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb, + 0x0a, 0x4e, 0x6a, 0x23, 0xea, 0x8b, 0x59, 0xb7, 0x37, 0xeb, 0x75, 0xc9, 0xf7, 0xce, 0x09, 0xab, + 0x0a, 0x8d, 0x36, 0x4d, 0xb7, 0x46, 0xd0, 0x3a, 0x71, 0x0c, 0x5a, 0xdb, 0xab, 0x18, 0x78, 0xe5, + 0xad, 0x43, 0x5b, 0xde, 0xba, 0xee, 0x86, 0x75, 0x8a, 0x5d, 0x87, 0xb6, 0xd8, 0xe5, 0x85, 0x01, + 0xd3, 0x57, 0xdd, 0x9e, 0xbe, 0x4a, 0x6e, 0x1c, 0xe7, 0x10, 0x56, 0xb7, 0x87, 0x30, 0x4f, 0x12, + 0x9c, 0xc5, 0xea, 0xf6, 0x2c, 0xe6, 0x4a, 0x72, 0x8e, 0x64, 0x75, 0x7b, 0x24, 0xf3, 0x24, 0xc1, + 0xc9, 0xec, 0x3e, 0x90, 0xcc, 0x6e, 0xb8, 0xa1, 0xdc, 0x02, 0xda, 0x31, 0x14, 0xd0, 0x6e, 0xba, + 0x36, 0xe6, 0x9a, 0xd3, 0xee, 0x03, 0x39, 0xcd, 0xbb, 0x39, 0x87, 0xb8, 0x76, 0x0c, 0xc5, 0xb5, + 0x15, 0x9a, 0x73, 0x4a, 0x6d, 0x35, 0x6b, 0x6a, 0x2b, 0xba, 0xb1, 0xe0, 0xf0, 0x56, 0xb7, 0x87, + 0xb7, 0x92, 0xf7, 0x59, 0x84, 0x32, 0xdc, 0x89, 0x63, 0x86, 0x5b, 0xe9, 0x70, 0x7b, 0x45, 0xb9, + 0xef, 0x9c, 0xa2, 0xdc, 0xd6, 0x2a, 0x74, 0xf7, 0x44, 0xf7, 0xb5, 0x43, 0xa2, 0xab, 0xac, 0x82, + 0xbe, 0x0c, 0x76, 0x97, 0xc1, 0xee, 0x32, 0xd8, 0x5d, 0x06, 0xbb, 0xff, 0x47, 0xb0, 0xdb, 0x0d, + 0xfe, 0xf2, 0x6b, 0x1e, 0x95, 0xae, 0xe1, 0xb0, 0x66, 0x4d, 0x36, 0xb0, 0xbf, 0xb1, 0x97, 0xf6, + 0xb1, 0xcf, 0x5a, 0x1a, 0xb1, 0xcf, 0xfd, 0xb4, 0xbf, 0xf6, 0xf9, 0xf9, 0x82, 0xfa, 0x9e, 0x2e, + 0xa8, 0xef, 0xd9, 0x82, 0xfa, 0x5e, 0x2c, 0x28, 0x7a, 0xb9, 0xa0, 0xe8, 0xd5, 0x82, 0xa2, 0xd7, + 0x0b, 0x8a, 0x9e, 0xc8, 0x14, 0xfd, 0x26, 0x53, 0xf4, 0xbb, 0x4c, 0xd1, 0x1f, 0x32, 0x45, 0x7f, + 0xca, 0x14, 0x9d, 0xcb, 0x14, 0x3d, 0x95, 0x29, 0x7a, 0x21, 0x53, 0xf4, 0x52, 0xa6, 0xbe, 0x57, + 0x32, 0x45, 0xaf, 0x65, 0xea, 0x7b, 0xf2, 0x0f, 0xf5, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfa, + 0x87, 0xd5, 0x9e, 0xf2, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto index 1d9c9aeb..4f8e4ab9 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go index b28199bc..6419067e 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -35,18 +36,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -70,20 +71,20 @@ func TestFloatingPointMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -102,11 +103,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -116,11 +117,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -133,22 +134,124 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestCustomMapMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -172,20 +275,20 @@ func TestAllMapsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -204,11 +307,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -218,11 +321,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -239,18 +342,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -274,20 +377,20 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -306,11 +409,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -320,11 +423,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -358,6 +461,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -404,9 +528,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -421,9 +545,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -438,9 +596,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -455,9 +613,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -472,9 +630,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -489,9 +647,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -508,12 +666,27 @@ func TestMapsproto2Description(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -523,12 +696,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -538,12 +711,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -558,6 +731,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -587,6 +768,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -618,13 +812,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -649,18 +843,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -690,13 +920,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -730,6 +960,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go index d0e6d6ff..be3e7569 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,12 +33,9 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -42,7 +43,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -90,58 +93,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -149,6 +165,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -158,264 +177,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4101 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xc5, 0xfb, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0x6d, 0xc7, - 0x6b, 0x39, 0xd1, 0x3a, 0x4a, 0x6c, 0xaf, 0xe9, 0xc4, 0x81, 0x2e, 0x5c, 0xad, 0x1c, 0xdd, 0x3a, - 0x94, 0xec, 0xb5, 0x0b, 0x83, 0x1d, 0x91, 0x43, 0x2e, 0x6d, 0x72, 0x86, 0xe5, 0x0c, 0xed, 0x55, - 0x9e, 0x5c, 0xb8, 0x17, 0x04, 0x45, 0xef, 0x05, 0xea, 0x38, 0x4e, 0x5a, 0x07, 0x68, 0x9d, 0xa4, - 0xb7, 0xa4, 0x37, 0x14, 0x7d, 0x0a, 0x50, 0xa4, 0xcd, 0x53, 0x91, 0xf6, 0x29, 0x0f, 0x79, 0x68, - 0x52, 0x03, 0x75, 0xdb, 0xb4, 0x75, 0x01, 0x03, 0x0d, 0xe0, 0x97, 0x9e, 0xff, 0x36, 0xfc, 0x67, - 0xf8, 0x93, 0x43, 0x05, 0x48, 0x93, 0x87, 0x15, 0x40, 0x88, 0x73, 0xfe, 0xf3, 0x7d, 0x73, 0xe6, - 0xfc, 0xe7, 0x3f, 0xe7, 0xfc, 0x3f, 0x07, 0xfe, 0xf6, 0x23, 0x70, 0x4f, 0xdb, 0x71, 0xda, 0x5d, - 0xeb, 0x72, 0x7f, 0xe0, 0x78, 0xce, 0xc9, 0xb0, 0x75, 0xb9, 0x69, 0xb9, 0x8d, 0x41, 0xa7, 0xef, - 0x39, 0x83, 0x55, 0x2a, 0xd3, 0x8b, 0x4c, 0x63, 0x55, 0x68, 0x94, 0xf7, 0x60, 0xe1, 0x6a, 0xa7, - 0x6b, 0x6d, 0xf9, 0x8a, 0x35, 0xcb, 0xd3, 0xaf, 0x40, 0xa2, 0x85, 0xc2, 0x52, 0xec, 0x9e, 0xf8, - 0xa5, 0xdc, 0xda, 0x7d, 0xab, 0x21, 0xd0, 0x6a, 0x10, 0x71, 0x48, 0xc4, 0x06, 0x45, 0x94, 0xdf, - 0x4e, 0xc0, 0xa2, 0x62, 0x54, 0xd7, 0x21, 0x61, 0x9b, 0x3d, 0xc2, 0x18, 0xbb, 0x94, 0x35, 0xe8, - 0x77, 0xbd, 0x04, 0xe9, 0xbe, 0xd9, 0x78, 0xd1, 0x6c, 0x5b, 0xa5, 0x39, 0x2a, 0x16, 0x97, 0xfa, - 0x79, 0x80, 0xa6, 0xd5, 0xb7, 0xec, 0xa6, 0x65, 0x37, 0x4e, 0x4b, 0x71, 0xb4, 0x22, 0x6b, 0x48, - 0x12, 0xfd, 0x21, 0x58, 0xe8, 0x0f, 0x4f, 0xba, 0x9d, 0x46, 0x5d, 0x52, 0x03, 0x54, 0x4b, 0x1a, - 0x1a, 0x1b, 0xd8, 0x1a, 0x29, 0x3f, 0x00, 0xc5, 0x97, 0x2d, 0xf3, 0x45, 0x59, 0x35, 0x47, 0x55, - 0x0b, 0x44, 0x2c, 0x29, 0x6e, 0x42, 0xbe, 0x67, 0xb9, 0x2e, 0x1a, 0x50, 0xf7, 0x4e, 0xfb, 0x56, - 0x29, 0x41, 0x9f, 0xfe, 0x9e, 0xb1, 0xa7, 0x0f, 0x3f, 0x79, 0x8e, 0xa3, 0x8e, 0x10, 0xa4, 0xaf, - 0x43, 0xd6, 0xb2, 0x87, 0x3d, 0xc6, 0x90, 0x9c, 0xe0, 0xbf, 0x2a, 0x6a, 0x84, 0x59, 0x32, 0x04, - 0xc6, 0x29, 0xd2, 0xae, 0x35, 0x78, 0xa9, 0xd3, 0xb0, 0x4a, 0x29, 0x4a, 0xf0, 0xc0, 0x18, 0x41, - 0x8d, 0x8d, 0x87, 0x39, 0x04, 0x0e, 0x1f, 0x25, 0x6b, 0xdd, 0xf4, 0x2c, 0xdb, 0xed, 0x38, 0x76, - 0x29, 0x4d, 0x49, 0xee, 0x57, 0xcc, 0xa2, 0xd5, 0x6d, 0x86, 0x29, 0x46, 0x38, 0xfd, 0x51, 0x48, - 0x3b, 0x7d, 0x0f, 0xbf, 0xb9, 0xa5, 0x0c, 0xce, 0x4f, 0x6e, 0xed, 0x2e, 0x65, 0x20, 0x1c, 0x30, - 0x1d, 0x43, 0x28, 0xeb, 0x3b, 0xa0, 0xb9, 0xce, 0x70, 0xd0, 0xb0, 0xea, 0x0d, 0xa7, 0x69, 0xd5, - 0x3b, 0x76, 0xcb, 0x29, 0x65, 0x29, 0xc1, 0x85, 0xf1, 0x07, 0xa1, 0x8a, 0x9b, 0xa8, 0xb7, 0x83, - 0x6a, 0x46, 0xc1, 0x0d, 0x5c, 0xeb, 0xe7, 0x20, 0xe5, 0x9e, 0xda, 0x9e, 0x79, 0xb3, 0x94, 0xa7, - 0x11, 0xc2, 0xaf, 0xca, 0xff, 0x9b, 0x84, 0xe2, 0x2c, 0x21, 0xf6, 0x04, 0x24, 0x5b, 0xe4, 0x29, - 0x31, 0xc0, 0xce, 0xe0, 0x03, 0x86, 0x09, 0x3a, 0x31, 0xf5, 0x43, 0x3a, 0x71, 0x1d, 0x72, 0xb6, - 0xe5, 0x7a, 0x56, 0x93, 0x45, 0x44, 0x7c, 0xc6, 0x98, 0x02, 0x06, 0x1a, 0x0f, 0xa9, 0xc4, 0x0f, - 0x15, 0x52, 0xd7, 0xa1, 0xe8, 0x9b, 0x54, 0x1f, 0x98, 0x76, 0x5b, 0xc4, 0xe6, 0xe5, 0x28, 0x4b, - 0x56, 0xab, 0x02, 0x67, 0x10, 0x98, 0x51, 0xb0, 0x02, 0xd7, 0xfa, 0x16, 0x80, 0x63, 0x5b, 0x4e, - 0x0b, 0x97, 0x57, 0xa3, 0x8b, 0x71, 0xa2, 0xf6, 0xd2, 0x01, 0x51, 0x19, 0xf3, 0x92, 0xc3, 0xa4, - 0x8d, 0xae, 0xfe, 0xf8, 0x28, 0xd4, 0xd2, 0x13, 0x22, 0x65, 0x8f, 0x2d, 0xb2, 0xb1, 0x68, 0x3b, - 0x86, 0xc2, 0xc0, 0x22, 0x71, 0x8f, 0x2e, 0x66, 0x4f, 0x96, 0xa5, 0x46, 0xac, 0x46, 0x3e, 0x99, - 0xc1, 0x61, 0xec, 0xc1, 0xe6, 0x07, 0xf2, 0xa5, 0x7e, 0x2f, 0xf8, 0x82, 0x3a, 0x0d, 0x2b, 0xa0, - 0x59, 0x28, 0x2f, 0x84, 0xfb, 0x28, 0x5b, 0xbe, 0x02, 0x85, 0xa0, 0x7b, 0xf4, 0x25, 0x48, 0xba, - 0x9e, 0x39, 0xf0, 0x68, 0x14, 0x26, 0x0d, 0x76, 0xa1, 0x6b, 0x10, 0xc7, 0x24, 0x43, 0xb3, 0x5c, - 0xd2, 0x20, 0x5f, 0x97, 0x1f, 0x83, 0xf9, 0xc0, 0xed, 0x67, 0x05, 0x96, 0x5f, 0x4b, 0xc1, 0x92, - 0x2a, 0xe6, 0x94, 0xe1, 0x8f, 0xcb, 0x07, 0x23, 0xe0, 0xc4, 0x1a, 0x60, 0xdc, 0x11, 0x06, 0x7e, - 0x85, 0x11, 0x95, 0xec, 0x9a, 0x27, 0x56, 0x17, 0xa3, 0x29, 0x76, 0xa9, 0xb0, 0xf6, 0xd0, 0x4c, - 0x51, 0xbd, 0xba, 0x4b, 0x20, 0x06, 0x43, 0xea, 0x4f, 0x42, 0x82, 0xa7, 0x38, 0xc2, 0xb0, 0x32, - 0x1b, 0x03, 0x89, 0x45, 0x83, 0xe2, 0xf4, 0x0f, 0x40, 0x96, 0xfc, 0x67, 0xbe, 0x4d, 0x51, 0x9b, - 0x33, 0x44, 0x40, 0xfc, 0xaa, 0x2f, 0x43, 0x86, 0x86, 0x59, 0xd3, 0x12, 0xa5, 0xc1, 0xbf, 0x26, - 0x13, 0xd3, 0xb4, 0x5a, 0xe6, 0xb0, 0xeb, 0xd5, 0x5f, 0x32, 0xbb, 0x43, 0x8b, 0x06, 0x0c, 0x4e, - 0x0c, 0x17, 0x3e, 0x4d, 0x64, 0xfa, 0x05, 0xc8, 0xb1, 0xa8, 0xec, 0x20, 0xe6, 0x26, 0xcd, 0x3e, - 0x49, 0x83, 0x05, 0xea, 0x0e, 0x91, 0x90, 0xdb, 0xbf, 0xe0, 0xe2, 0x5a, 0xe0, 0x53, 0x4b, 0x6f, - 0x41, 0x04, 0xf4, 0xf6, 0x8f, 0x85, 0x13, 0xdf, 0xdd, 0xea, 0xc7, 0x0b, 0xc7, 0x62, 0xf9, 0xaf, - 0xe6, 0x20, 0x41, 0xd7, 0x5b, 0x11, 0x72, 0x47, 0xcf, 0x1e, 0x56, 0xeb, 0x5b, 0x07, 0xc7, 0x1b, - 0xbb, 0x55, 0x2d, 0xa6, 0x17, 0x00, 0xa8, 0xe0, 0xea, 0xee, 0xc1, 0xfa, 0x91, 0x36, 0xe7, 0x5f, - 0xef, 0xec, 0x1f, 0x3d, 0xfa, 0x31, 0x2d, 0xee, 0x03, 0x8e, 0x99, 0x20, 0x21, 0x2b, 0x7c, 0x74, - 0x4d, 0x4b, 0x62, 0x24, 0xe4, 0x19, 0xc1, 0xce, 0xf5, 0xea, 0x16, 0x6a, 0xa4, 0x82, 0x12, 0xd4, - 0x49, 0xeb, 0xf3, 0x90, 0xa5, 0x92, 0x8d, 0x83, 0x83, 0x5d, 0x2d, 0xe3, 0x73, 0xd6, 0x8e, 0x8c, - 0x9d, 0xfd, 0x6d, 0x2d, 0xeb, 0x73, 0x6e, 0x1b, 0x07, 0xc7, 0x87, 0x1a, 0xf8, 0x0c, 0x7b, 0xd5, - 0x5a, 0x6d, 0x7d, 0xbb, 0xaa, 0xe5, 0x7c, 0x8d, 0x8d, 0x67, 0x8f, 0xaa, 0x35, 0x2d, 0x1f, 0x30, - 0x0b, 0x6f, 0x31, 0xef, 0xdf, 0xa2, 0xba, 0x7f, 0xbc, 0xa7, 0x15, 0xf4, 0x05, 0x98, 0x67, 0xb7, - 0x10, 0x46, 0x14, 0x43, 0x22, 0xb4, 0x54, 0x1b, 0x19, 0xc2, 0x58, 0x16, 0x02, 0x02, 0xd4, 0xd0, - 0xcb, 0x9b, 0x90, 0xa4, 0xd1, 0x85, 0x51, 0x5c, 0xd8, 0x5d, 0xdf, 0xa8, 0xee, 0xd6, 0x0f, 0x0e, - 0x8f, 0x76, 0x0e, 0xf6, 0xd7, 0x77, 0xd1, 0x77, 0xbe, 0xcc, 0xa8, 0xfe, 0xd4, 0xf1, 0x8e, 0x51, - 0xdd, 0x42, 0xff, 0x49, 0xb2, 0xc3, 0xea, 0xfa, 0x11, 0xca, 0xe2, 0xe5, 0x15, 0x58, 0x52, 0xe5, - 0x19, 0xd5, 0xca, 0x28, 0x7f, 0x31, 0x06, 0x8b, 0x8a, 0x94, 0xa9, 0x5c, 0x45, 0x9f, 0x84, 0x24, - 0x8b, 0x34, 0x56, 0x44, 0x1e, 0x54, 0xe6, 0x5e, 0x1a, 0x77, 0x63, 0x85, 0x84, 0xe2, 0xe4, 0x42, - 0x1a, 0x9f, 0x50, 0x48, 0x09, 0xc5, 0x58, 0x38, 0xbd, 0x1a, 0x83, 0xd2, 0x24, 0xee, 0x88, 0xf5, - 0x3e, 0x17, 0x58, 0xef, 0x4f, 0x84, 0x0d, 0xb8, 0x38, 0xf9, 0x19, 0xc6, 0xac, 0x78, 0x2b, 0x06, - 0xe7, 0xd4, 0xfd, 0x86, 0xd2, 0x86, 0x27, 0x21, 0xd5, 0xb3, 0xbc, 0x1b, 0x8e, 0xa8, 0xb9, 0x1f, - 0x54, 0x64, 0x72, 0x32, 0x1c, 0xf6, 0x15, 0x47, 0xc9, 0xa5, 0x20, 0x3e, 0xa9, 0x69, 0x60, 0xd6, - 0x8c, 0x59, 0xfa, 0x99, 0x39, 0xb8, 0x5d, 0x49, 0xae, 0x34, 0xf4, 0x6e, 0x80, 0x8e, 0xdd, 0x1f, - 0x7a, 0xac, 0xae, 0xb2, 0x34, 0x93, 0xa5, 0x12, 0xba, 0x84, 0x49, 0x0a, 0x19, 0x7a, 0xfe, 0x78, - 0x9c, 0x8e, 0x03, 0x13, 0x51, 0x85, 0x2b, 0x23, 0x43, 0x13, 0xd4, 0xd0, 0xf3, 0x13, 0x9e, 0x74, - 0xac, 0x64, 0x3d, 0x0c, 0x5a, 0xa3, 0xdb, 0xb1, 0x6c, 0xaf, 0xee, 0x7a, 0x03, 0xcb, 0xec, 0x75, - 0xec, 0x36, 0xcd, 0xa3, 0x99, 0x4a, 0xb2, 0x65, 0x76, 0x5d, 0xcb, 0x28, 0xb2, 0xe1, 0x9a, 0x18, - 0x25, 0x08, 0x5a, 0x2c, 0x06, 0x12, 0x22, 0x15, 0x40, 0xb0, 0x61, 0x1f, 0x51, 0xfe, 0xa7, 0x34, - 0xe4, 0xa4, 0xee, 0x4c, 0xbf, 0x08, 0xf9, 0x17, 0xcc, 0x97, 0xcc, 0xba, 0xe8, 0xb8, 0x99, 0x27, - 0x72, 0x44, 0x76, 0xc8, 0xbb, 0xee, 0x87, 0x61, 0x89, 0xaa, 0xe0, 0x33, 0xe2, 0x8d, 0x1a, 0x5d, - 0xd3, 0x75, 0xa9, 0xd3, 0x32, 0x54, 0x55, 0x27, 0x63, 0x07, 0x64, 0x68, 0x53, 0x8c, 0xe8, 0x8f, - 0xc0, 0x22, 0x45, 0xf4, 0x30, 0xf1, 0x76, 0xfa, 0x5d, 0xab, 0x4e, 0xf6, 0x00, 0x2e, 0xcd, 0xa7, - 0xbe, 0x65, 0x0b, 0x44, 0x63, 0x8f, 0x2b, 0x10, 0x8b, 0x5c, 0x7d, 0x1b, 0xee, 0xa6, 0xb0, 0xb6, - 0x65, 0x5b, 0x03, 0xd3, 0xb3, 0xea, 0xd6, 0xcf, 0x0e, 0x51, 0xb7, 0x6e, 0xda, 0xcd, 0xfa, 0x0d, - 0xd3, 0xbd, 0x51, 0x5a, 0x92, 0x09, 0xee, 0x24, 0xba, 0xdb, 0x5c, 0xb5, 0x4a, 0x35, 0xd7, 0xed, - 0xe6, 0x35, 0xd4, 0xd3, 0x2b, 0x70, 0x8e, 0x12, 0xa1, 0x53, 0xf0, 0x99, 0xeb, 0x8d, 0x1b, 0x56, - 0xe3, 0xc5, 0xfa, 0xd0, 0x6b, 0x5d, 0x29, 0x7d, 0x40, 0x66, 0xa0, 0x46, 0xd6, 0xa8, 0xce, 0x26, - 0x51, 0x39, 0x46, 0x0d, 0xbd, 0x06, 0x79, 0x32, 0x1f, 0xbd, 0xce, 0xa7, 0xd1, 0x6c, 0x67, 0x40, - 0x6b, 0x44, 0x41, 0xb1, 0xb8, 0x25, 0x27, 0xae, 0x1e, 0x70, 0xc0, 0x1e, 0xf6, 0xa7, 0x95, 0x64, - 0xed, 0xb0, 0x5a, 0xdd, 0x32, 0x72, 0x82, 0xe5, 0xaa, 0x33, 0x20, 0x31, 0xd5, 0x76, 0x7c, 0x1f, - 0xe7, 0x58, 0x4c, 0xb5, 0x1d, 0xe1, 0x61, 0xf4, 0x57, 0xa3, 0xc1, 0x1e, 0x1b, 0xf7, 0x2e, 0xbc, - 0x59, 0x77, 0x4b, 0x5a, 0xc0, 0x5f, 0x8d, 0xc6, 0x36, 0x53, 0xe0, 0x61, 0xee, 0xe2, 0x92, 0xb8, - 0x7d, 0xe4, 0x2f, 0x19, 0xb8, 0x30, 0xf6, 0x94, 0x61, 0x28, 0xde, 0xb1, 0x7f, 0x3a, 0x0e, 0xd4, - 0x03, 0x77, 0xec, 0x9f, 0x86, 0x61, 0xf7, 0xd3, 0x0d, 0xd8, 0xc0, 0x6a, 0xa0, 0xcb, 0x9b, 0xa5, - 0x3b, 0x64, 0x6d, 0x69, 0x40, 0xbf, 0x8c, 0x81, 0xdc, 0xa8, 0x5b, 0xb6, 0x79, 0x82, 0x73, 0x6f, - 0x0e, 0xf0, 0x8b, 0x5b, 0xba, 0x20, 0x2b, 0x17, 0x1a, 0x8d, 0x2a, 0x1d, 0x5d, 0xa7, 0x83, 0xfa, - 0x0a, 0x2c, 0x38, 0x27, 0x2f, 0x34, 0x58, 0x70, 0xd5, 0x91, 0xa7, 0xd5, 0xb9, 0x59, 0xba, 0x8f, - 0xba, 0xa9, 0x48, 0x06, 0x68, 0x68, 0x1d, 0x52, 0xb1, 0xfe, 0x20, 0x92, 0xbb, 0x37, 0xcc, 0x41, - 0x9f, 0x16, 0x69, 0x17, 0x9d, 0x6a, 0x95, 0xee, 0x67, 0xaa, 0x4c, 0xbe, 0x2f, 0xc4, 0x7a, 0x15, - 0x2e, 0x90, 0x87, 0xb7, 0x4d, 0xdb, 0xa9, 0x0f, 0x5d, 0xab, 0x3e, 0x32, 0xd1, 0x9f, 0x8b, 0x0f, - 0x12, 0xb3, 0x8c, 0xbb, 0x84, 0xda, 0xb1, 0x8b, 0xc9, 0x4c, 0x28, 0x89, 0xe9, 0xb9, 0x0e, 0x4b, - 0x43, 0xbb, 0x63, 0x63, 0x88, 0xe3, 0x08, 0x01, 0xb3, 0x05, 0x5b, 0xfa, 0xd7, 0xf4, 0x84, 0xa6, - 0xfb, 0x58, 0xd6, 0x66, 0x41, 0x62, 0x2c, 0x0e, 0xc7, 0x85, 0xe5, 0x0a, 0xe4, 0xe5, 0xd8, 0xd1, - 0xb3, 0xc0, 0xa2, 0x07, 0xab, 0x1b, 0x56, 0xd4, 0xcd, 0x83, 0x2d, 0x52, 0x0b, 0x9f, 0xab, 0x62, - 0x61, 0xc3, 0x9a, 0xbc, 0xbb, 0x73, 0x54, 0xad, 0x1b, 0xc7, 0xfb, 0x47, 0x3b, 0x7b, 0x55, 0x2d, - 0xbe, 0x92, 0xcd, 0xbc, 0x93, 0xd6, 0x5e, 0xc1, 0xbf, 0xb9, 0xf2, 0x37, 0xe6, 0xa0, 0x10, 0xec, - 0x83, 0xf5, 0x8f, 0xc3, 0x1d, 0x62, 0xd3, 0xea, 0x5a, 0x5e, 0xfd, 0xe5, 0xce, 0x80, 0x86, 0x73, - 0xcf, 0x64, 0x9d, 0xa4, 0x3f, 0x13, 0x4b, 0x5c, 0x0b, 0xb7, 0xf7, 0xcf, 0xa0, 0xce, 0x55, 0xaa, - 0xa2, 0xef, 0xc2, 0x05, 0x74, 0x19, 0xf6, 0x9a, 0x76, 0xd3, 0x1c, 0x34, 0xeb, 0xa3, 0xe3, 0x82, - 0xba, 0xd9, 0xc0, 0x38, 0x70, 0x1d, 0x56, 0x49, 0x7c, 0x96, 0xbb, 0x6c, 0xa7, 0xc6, 0x95, 0x47, - 0x29, 0x76, 0x9d, 0xab, 0x86, 0xa2, 0x26, 0x3e, 0x29, 0x6a, 0xb0, 0xf7, 0xea, 0x99, 0x7d, 0x0c, - 0x1b, 0x6f, 0x70, 0x4a, 0xbb, 0xb7, 0x8c, 0x91, 0x41, 0x41, 0x95, 0x5c, 0xff, 0xe8, 0xe6, 0x40, - 0xf6, 0xe3, 0x77, 0xe2, 0x90, 0x97, 0x3b, 0x38, 0xd2, 0x10, 0x37, 0x68, 0x9a, 0x8f, 0xd1, 0x2c, - 0x70, 0xef, 0xd4, 0x7e, 0x6f, 0x75, 0x93, 0xe4, 0xff, 0x4a, 0x8a, 0xf5, 0x55, 0x06, 0x43, 0x92, - 0xda, 0x4b, 0x62, 0xcd, 0x62, 0xdd, 0x7a, 0xc6, 0xe0, 0x57, 0x98, 0xec, 0x52, 0x2f, 0xb8, 0x94, - 0x3b, 0x45, 0xb9, 0xef, 0x9b, 0xce, 0xfd, 0x54, 0x8d, 0x92, 0x67, 0x9f, 0xaa, 0xd5, 0xf7, 0x0f, - 0x8c, 0xbd, 0xf5, 0x5d, 0x83, 0xc3, 0xf5, 0x3b, 0x21, 0xd1, 0x35, 0x3f, 0x7d, 0x1a, 0xac, 0x14, - 0x54, 0x34, 0xab, 0xe3, 0x91, 0x81, 0x1c, 0x79, 0x04, 0xf3, 0x33, 0x15, 0xfd, 0x08, 0x43, 0xff, - 0x32, 0x24, 0xa9, 0xbf, 0x74, 0x00, 0xee, 0x31, 0xed, 0x36, 0x3d, 0x03, 0x89, 0xcd, 0x03, 0x83, - 0x84, 0x3f, 0xc6, 0x3b, 0x93, 0xd6, 0x0f, 0x77, 0xaa, 0x9b, 0xb8, 0x02, 0xca, 0x8f, 0x40, 0x8a, - 0x39, 0x81, 0x2c, 0x0d, 0xdf, 0x0d, 0x08, 0x62, 0x97, 0x9c, 0x23, 0x26, 0x46, 0x8f, 0xf7, 0x36, - 0xaa, 0x86, 0x36, 0x27, 0x4f, 0xef, 0xdf, 0xc4, 0x20, 0x27, 0x35, 0x54, 0xa4, 0x94, 0x9b, 0xdd, - 0xae, 0xf3, 0x72, 0xdd, 0xec, 0x76, 0x30, 0x43, 0xb1, 0xf9, 0x01, 0x2a, 0x5a, 0x27, 0x92, 0x59, - 0xfd, 0xf7, 0xff, 0x12, 0x9b, 0x5f, 0x88, 0x81, 0x16, 0x6e, 0xc6, 0x42, 0x06, 0xc6, 0x7e, 0xac, - 0x06, 0xbe, 0x11, 0x83, 0x42, 0xb0, 0x03, 0x0b, 0x99, 0x77, 0xf1, 0xc7, 0x6a, 0xde, 0xe7, 0x62, - 0x30, 0x1f, 0xe8, 0xbb, 0x7e, 0xa2, 0xac, 0x7b, 0x3d, 0x0e, 0x8b, 0x0a, 0x1c, 0x26, 0x20, 0xd6, - 0xa0, 0xb2, 0x9e, 0xf9, 0xc3, 0xb3, 0xdc, 0x6b, 0x95, 0xd4, 0xbf, 0x43, 0x73, 0xe0, 0xf1, 0x7e, - 0x16, 0xeb, 0x65, 0xa7, 0x89, 0x49, 0xb5, 0xd3, 0xea, 0x60, 0xfb, 0xc6, 0x76, 0x2c, 0xac, 0x6b, - 0x2d, 0x8e, 0xe4, 0x6c, 0x7b, 0xfc, 0x21, 0xd0, 0xfb, 0x8e, 0xdb, 0xf1, 0x3a, 0x2f, 0x91, 0xe3, - 0x39, 0xb1, 0x91, 0x26, 0x5d, 0x6c, 0xc2, 0xd0, 0xc4, 0xc8, 0x8e, 0xed, 0xf9, 0xda, 0xb6, 0xd5, - 0x36, 0x43, 0xda, 0x24, 0x0d, 0xc5, 0x0d, 0x4d, 0x8c, 0xf8, 0xda, 0xd8, 0x68, 0x36, 0x9d, 0x21, - 0x69, 0x08, 0x98, 0x1e, 0xc9, 0x7a, 0x31, 0x23, 0xc7, 0x64, 0xbe, 0x0a, 0xef, 0xd8, 0x46, 0x3b, - 0xf8, 0xbc, 0x91, 0x63, 0x32, 0xa6, 0xf2, 0x00, 0x14, 0xcd, 0x76, 0x7b, 0x40, 0xc8, 0x05, 0x11, - 0x6b, 0x43, 0x0b, 0xbe, 0x98, 0x2a, 0x2e, 0x3f, 0x05, 0x19, 0xe1, 0x07, 0x52, 0x58, 0x88, 0x27, - 0xb0, 0xe6, 0xd3, 0x73, 0x94, 0x39, 0xb2, 0xa9, 0xb7, 0xc5, 0x20, 0xde, 0xb4, 0xe3, 0xd6, 0x47, - 0x07, 0x7a, 0x73, 0x38, 0x9e, 0x31, 0x72, 0x1d, 0xd7, 0x3f, 0xc1, 0x29, 0xbf, 0x85, 0xe5, 0x35, - 0x78, 0x20, 0xa9, 0x6f, 0x41, 0xa6, 0xeb, 0x60, 0x7c, 0x10, 0x04, 0x3b, 0x0d, 0xbf, 0x14, 0x71, - 0x86, 0xb9, 0xba, 0xcb, 0xf5, 0x0d, 0x1f, 0xb9, 0xfc, 0x0f, 0x31, 0xc8, 0x08, 0x31, 0x16, 0x8a, - 0x44, 0xdf, 0xf4, 0x6e, 0x50, 0xba, 0xe4, 0xc6, 0x9c, 0x16, 0x33, 0xe8, 0x35, 0x91, 0x63, 0x37, - 0x63, 0xd3, 0x10, 0xe0, 0x72, 0x72, 0x4d, 0xe6, 0xb5, 0x6b, 0x99, 0x4d, 0xda, 0xe0, 0x3a, 0xbd, - 0x1e, 0xce, 0xa4, 0x2b, 0xe6, 0x95, 0xcb, 0x37, 0xb9, 0x98, 0x9c, 0x8b, 0x7b, 0x03, 0xb3, 0xd3, - 0x0d, 0xe8, 0x26, 0xa8, 0xae, 0x26, 0x06, 0x7c, 0xe5, 0x0a, 0xdc, 0x29, 0x78, 0x9b, 0x96, 0x67, - 0x62, 0xf3, 0xdc, 0x1c, 0x81, 0x52, 0xf4, 0xb4, 0xeb, 0x0e, 0xae, 0xb0, 0xc5, 0xc7, 0x05, 0x76, - 0xe3, 0x3a, 0x36, 0xb2, 0x4e, 0x2f, 0xec, 0x89, 0x0d, 0x2d, 0xb4, 0xef, 0x72, 0xaf, 0xc5, 0x9e, - 0x83, 0x51, 0x53, 0xf1, 0xc5, 0xb9, 0xf8, 0xf6, 0xe1, 0xc6, 0x57, 0xe6, 0x96, 0xb7, 0x19, 0xee, - 0x50, 0x78, 0xd0, 0xb0, 0x5a, 0x5d, 0xab, 0x41, 0xbc, 0x03, 0x6f, 0xde, 0x0b, 0x1f, 0x6e, 0x77, - 0xbc, 0x1b, 0xc3, 0x93, 0x55, 0xbc, 0xc3, 0xe5, 0xb6, 0xd3, 0x76, 0x46, 0x3f, 0x67, 0x90, 0x2b, - 0x7a, 0x41, 0xbf, 0xf1, 0x9f, 0x34, 0xb2, 0xbe, 0x74, 0x39, 0xf2, 0xf7, 0x8f, 0xca, 0x3e, 0x2c, - 0x72, 0xe5, 0x3a, 0x3d, 0x53, 0x65, 0x2d, 0xa8, 0x3e, 0x75, 0x43, 0x5e, 0xfa, 0xda, 0xdb, 0xb4, - 0x24, 0x18, 0x0b, 0x1c, 0x4a, 0xc6, 0x58, 0x93, 0x5a, 0x31, 0xe0, 0xf6, 0x00, 0x1f, 0x8b, 0x61, - 0xdc, 0x72, 0x4f, 0x67, 0xfc, 0x06, 0x67, 0x5c, 0x94, 0x18, 0x6b, 0x1c, 0x5a, 0xd9, 0x84, 0xf9, - 0xb3, 0x70, 0xfd, 0x1d, 0xe7, 0xca, 0x5b, 0x32, 0xc9, 0x36, 0x14, 0x29, 0x49, 0x63, 0xe8, 0x7a, - 0x4e, 0x8f, 0x26, 0x88, 0xe9, 0x34, 0x7f, 0xff, 0x36, 0x0b, 0xaa, 0x02, 0x81, 0x6d, 0xfa, 0xa8, - 0xca, 0xd3, 0xb0, 0x44, 0x24, 0x74, 0x0d, 0xca, 0x6c, 0xd1, 0x47, 0x08, 0xa5, 0x7f, 0x7c, 0x95, - 0xc5, 0xde, 0xa2, 0x4f, 0x20, 0xf1, 0x4a, 0x33, 0xd1, 0xb6, 0x3c, 0xcc, 0x6d, 0xb8, 0xff, 0xeb, - 0x76, 0xf5, 0xa9, 0xbf, 0x31, 0x94, 0x3e, 0xfb, 0xfd, 0xe0, 0x4c, 0x6c, 0x33, 0xe4, 0x7a, 0xb7, - 0x5b, 0x39, 0x86, 0x3b, 0x14, 0x33, 0x3b, 0x03, 0xe7, 0xeb, 0x9c, 0x73, 0x69, 0x6c, 0x76, 0x09, - 0xed, 0x21, 0x08, 0xb9, 0x3f, 0x1f, 0x33, 0x70, 0x7e, 0x8e, 0x73, 0xea, 0x1c, 0x2b, 0xa6, 0x85, - 0x30, 0x3e, 0x05, 0x0b, 0xb8, 0x53, 0x3f, 0x71, 0x5c, 0xbe, 0xef, 0x9d, 0x81, 0xee, 0x0d, 0x4e, - 0x57, 0xe4, 0x40, 0xba, 0x0b, 0x26, 0x5c, 0x8f, 0x43, 0xa6, 0x85, 0x1b, 0xa0, 0x19, 0x28, 0x3e, - 0xcf, 0x29, 0xd2, 0x44, 0x9f, 0x40, 0xd7, 0x21, 0xdf, 0x76, 0x78, 0x1a, 0x8e, 0x86, 0x7f, 0x81, - 0xc3, 0x73, 0x02, 0xc3, 0x29, 0xfa, 0x4e, 0x7f, 0xd8, 0x25, 0x39, 0x3a, 0x9a, 0xe2, 0x77, 0x05, - 0x85, 0xc0, 0x70, 0x8a, 0x33, 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x2b, 0xf9, 0xf3, 0x93, 0xe4, 0xac, - 0xb7, 0x7b, 0xea, 0xd8, 0xb3, 0x18, 0xf1, 0x26, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x4f, 0x40, 0x76, - 0xd6, 0x89, 0xf8, 0x7d, 0x0e, 0xcf, 0x58, 0x62, 0x06, 0x70, 0x9d, 0x89, 0x24, 0x43, 0x7e, 0x5b, - 0x89, 0xa6, 0xf8, 0x03, 0x4e, 0x51, 0x90, 0x60, 0xfc, 0x31, 0x3c, 0xcb, 0xf5, 0x70, 0xab, 0x3e, - 0x03, 0xc9, 0x5b, 0xe2, 0x31, 0x38, 0x84, 0xbb, 0xf2, 0xc4, 0xb2, 0x1b, 0x37, 0x66, 0x63, 0xf8, - 0x92, 0x70, 0xa5, 0xc0, 0x10, 0x0a, 0xcc, 0x3c, 0x3d, 0x73, 0x80, 0x9b, 0xeb, 0xee, 0x4c, 0xd3, - 0xf1, 0x65, 0xce, 0x91, 0xf7, 0x41, 0xdc, 0x23, 0x43, 0xfb, 0x2c, 0x34, 0x5f, 0x11, 0x1e, 0x91, - 0x60, 0x7c, 0xe9, 0xe1, 0xce, 0x94, 0x74, 0x12, 0x67, 0x61, 0xfb, 0x43, 0xb1, 0xf4, 0x18, 0x76, - 0x4f, 0x66, 0xc4, 0x99, 0x76, 0x71, 0x0b, 0x3e, 0x0b, 0xcd, 0x1f, 0x89, 0x99, 0xa6, 0x00, 0x02, - 0x7e, 0x16, 0xee, 0x54, 0xa6, 0xfa, 0x19, 0xc8, 0xfe, 0x98, 0x93, 0x9d, 0x53, 0xa4, 0x7b, 0x9e, - 0x12, 0xce, 0x4a, 0xf9, 0x27, 0x22, 0x25, 0x58, 0x21, 0xae, 0x43, 0xd2, 0xc6, 0xba, 0x66, 0xeb, - 0x6c, 0x5e, 0xfb, 0x53, 0xe1, 0x35, 0x86, 0x0d, 0x78, 0xed, 0x08, 0xce, 0x71, 0xc6, 0xb3, 0xcd, - 0xeb, 0x57, 0x45, 0x62, 0x65, 0xe8, 0xe3, 0xe0, 0xec, 0xfe, 0x34, 0x2c, 0xfb, 0xee, 0x14, 0x1d, - 0x98, 0x5b, 0x27, 0x07, 0x03, 0xd1, 0xcc, 0x5f, 0xe3, 0xcc, 0x22, 0xe3, 0xfb, 0x2d, 0x9c, 0xbb, - 0x67, 0xf6, 0x09, 0xf9, 0x75, 0x28, 0x09, 0xf2, 0xa1, 0x8d, 0x0d, 0xbe, 0xd3, 0xb6, 0x71, 0x1a, - 0x9b, 0x33, 0x50, 0xff, 0x59, 0x68, 0xaa, 0x8e, 0x25, 0x38, 0x61, 0xde, 0x01, 0xcd, 0xef, 0x37, - 0xea, 0x9d, 0x5e, 0xdf, 0xc1, 0xd6, 0x72, 0x3a, 0xe3, 0x9f, 0x8b, 0x99, 0xf2, 0x71, 0x3b, 0x14, - 0x56, 0xa9, 0x42, 0x81, 0x5e, 0xce, 0x1a, 0x92, 0x7f, 0xc1, 0x89, 0xe6, 0x47, 0x28, 0x9e, 0x38, - 0xb0, 0x53, 0xc2, 0x9e, 0x77, 0x96, 0xfc, 0xf7, 0x97, 0x22, 0x71, 0x70, 0x08, 0x8b, 0xbe, 0x62, - 0xa8, 0x12, 0xeb, 0x51, 0x3f, 0xbf, 0x96, 0x7e, 0xee, 0x3d, 0xbe, 0x66, 0x83, 0x85, 0xb8, 0xb2, - 0x4b, 0xdc, 0x13, 0x2c, 0x97, 0xd1, 0x64, 0xaf, 0xbe, 0xe7, 0x7b, 0x28, 0x50, 0x2d, 0x2b, 0x57, - 0x61, 0x3e, 0x50, 0x2a, 0xa3, 0xa9, 0x7e, 0x9e, 0x53, 0xe5, 0xe5, 0x4a, 0x59, 0x79, 0x04, 0x12, - 0xa4, 0xec, 0x45, 0xc3, 0x7f, 0x81, 0xc3, 0xa9, 0x7a, 0xe5, 0x13, 0x90, 0x11, 0xe5, 0x2e, 0x1a, - 0xfa, 0x8b, 0x1c, 0xea, 0x43, 0x08, 0x5c, 0x94, 0xba, 0x68, 0xf8, 0x2f, 0x09, 0xb8, 0x80, 0x10, - 0xf8, 0xec, 0x2e, 0xfc, 0xfa, 0x2f, 0x27, 0x78, 0xba, 0x12, 0xbe, 0x23, 0xbf, 0xf9, 0xb0, 0x1a, - 0x17, 0x8d, 0xfe, 0x0c, 0xbf, 0xb9, 0x40, 0x54, 0x1e, 0x83, 0xe4, 0x8c, 0x0e, 0xff, 0x15, 0x0e, - 0x65, 0xfa, 0x58, 0x41, 0x72, 0x52, 0x5d, 0x8b, 0x86, 0xff, 0x2a, 0x87, 0xcb, 0x28, 0x62, 0x3a, - 0xaf, 0x6b, 0xd1, 0x04, 0xbf, 0x26, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xd2, 0xa2, 0xd1, 0xbf, - 0x2e, 0xbc, 0x2e, 0x20, 0xb8, 0x9a, 0xb2, 0x7e, 0x9a, 0x8a, 0xc6, 0xff, 0x06, 0xc7, 0x8f, 0x30, - 0xc4, 0x03, 0x52, 0x9a, 0x8c, 0xa6, 0xf8, 0x4d, 0xe1, 0x01, 0x09, 0x45, 0x96, 0x51, 0xb8, 0xf4, - 0x45, 0x33, 0xfd, 0x96, 0x58, 0x46, 0xa1, 0xca, 0x47, 0x66, 0x93, 0x66, 0x8b, 0x68, 0x8a, 0xdf, - 0x16, 0xb3, 0x49, 0xf5, 0x89, 0x19, 0xe1, 0x5a, 0x12, 0xcd, 0xf1, 0x3b, 0xc2, 0x8c, 0x50, 0x29, - 0xc1, 0xca, 0xa4, 0x8f, 0xd7, 0x91, 0x68, 0xbe, 0xd7, 0x38, 0xdf, 0xc2, 0x58, 0x19, 0xa9, 0x3c, - 0x03, 0xe7, 0xd4, 0x35, 0x24, 0x9a, 0xf5, 0xb3, 0xef, 0x85, 0xba, 0x7e, 0xb9, 0x84, 0x60, 0xc9, - 0x5b, 0x52, 0xd5, 0x8f, 0x68, 0xda, 0xd7, 0xdf, 0x0b, 0x6e, 0xec, 0xe4, 0xf2, 0x81, 0x1d, 0x1a, - 0x8c, 0x52, 0x77, 0x34, 0xd7, 0x1b, 0x9c, 0x4b, 0x02, 0x91, 0xa5, 0xc1, 0x33, 0x77, 0x34, 0xfe, - 0xf3, 0x62, 0x69, 0x70, 0x04, 0x82, 0x33, 0xf6, 0xb0, 0xdb, 0x25, 0xc1, 0xa1, 0x4f, 0x7f, 0xa5, - 0xa1, 0xf4, 0x6f, 0xef, 0xf3, 0x85, 0x21, 0x00, 0x98, 0x43, 0x93, 0x56, 0xef, 0x04, 0x7d, 0x10, - 0x81, 0xfc, 0xf7, 0xf7, 0x45, 0x42, 0x20, 0xda, 0xb8, 0x9e, 0x80, 0x6d, 0x1a, 0xe9, 0x19, 0x76, - 0x04, 0xf6, 0x3f, 0xde, 0xe7, 0x3f, 0xb3, 0x8e, 0x20, 0x23, 0x02, 0xf6, 0xa3, 0xed, 0x74, 0x82, - 0xef, 0x07, 0x09, 0xe8, 0x46, 0xf3, 0x71, 0x48, 0x93, 0x37, 0x3b, 0x3c, 0xb3, 0x1d, 0x85, 0xfe, - 0x4f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x3d, 0x67, 0x60, 0xe1, 0x57, 0x37, 0x0a, 0xfb, 0x5f, 0x1c, - 0xeb, 0x03, 0x08, 0xb8, 0x61, 0xba, 0xde, 0x2c, 0xcf, 0xfd, 0xdf, 0x02, 0x2c, 0x00, 0xc4, 0x68, - 0xf2, 0xfd, 0x45, 0xeb, 0x34, 0x0a, 0xfb, 0xae, 0x30, 0x9a, 0xeb, 0x63, 0x02, 0xcc, 0x92, 0xaf, - 0xec, 0xd5, 0x83, 0x08, 0xf0, 0xff, 0x70, 0xf0, 0x08, 0xb1, 0x71, 0x51, 0x7d, 0xb4, 0x03, 0xdb, - 0xce, 0xb6, 0xc3, 0x0e, 0x75, 0xe0, 0xcb, 0x97, 0xe0, 0x22, 0xea, 0x60, 0x7d, 0xbd, 0xec, 0xaf, - 0x45, 0xfc, 0xd6, 0x77, 0xa9, 0xf6, 0x1a, 0x3f, 0x97, 0xc9, 0xf1, 0x2b, 0x32, 0xb0, 0x7c, 0xb6, - 0x33, 0x9d, 0xf2, 0xdd, 0x30, 0x7f, 0xb5, 0xeb, 0x98, 0x1e, 0x96, 0xb2, 0x43, 0xa7, 0x63, 0x7b, - 0x7a, 0x1e, 0x62, 0x2d, 0x7a, 0xee, 0x1d, 0x33, 0x62, 0xad, 0xf2, 0xb7, 0x75, 0x48, 0x63, 0xe7, - 0x82, 0x2b, 0xd5, 0xd5, 0x9f, 0x85, 0x05, 0xd6, 0x2f, 0x1c, 0x39, 0x5b, 0xf4, 0x8c, 0x11, 0xa5, - 0xfc, 0xa8, 0xee, 0xa1, 0x55, 0xc9, 0x84, 0x55, 0x0e, 0x58, 0x1d, 0xd3, 0xa6, 0x3f, 0x3c, 0x19, - 0x0b, 0x6e, 0x58, 0xae, 0x3f, 0x0d, 0x9a, 0x50, 0xa6, 0xd6, 0x10, 0x66, 0x76, 0x40, 0xbb, 0x32, - 0x95, 0x59, 0x28, 0x33, 0x62, 0xcd, 0x0d, 0x89, 0xf5, 0x27, 0x21, 0xb3, 0x63, 0x7b, 0x1f, 0x5d, - 0x23, 0x7c, 0xec, 0x85, 0xc0, 0xb2, 0x92, 0x4f, 0x28, 0x31, 0x9e, 0x4c, 0x87, 0x5f, 0x72, 0xfc, - 0xa3, 0x1f, 0x23, 0xf8, 0xc4, 0x74, 0x3c, 0x55, 0x1a, 0xe1, 0xe9, 0x25, 0x79, 0xa1, 0xf0, 0x58, - 0x90, 0xf1, 0xf7, 0x00, 0xef, 0x55, 0x12, 0xf8, 0x5a, 0x8c, 0x21, 0x3b, 0xf4, 0x4d, 0xe0, 0x14, - 0xcc, 0x86, 0x54, 0x04, 0x85, 0x64, 0x04, 0xa5, 0xf0, 0xad, 0xa8, 0xf9, 0x56, 0xa4, 0xa7, 0x50, - 0xd4, 0x42, 0x56, 0xb8, 0xb2, 0x15, 0x35, 0xdf, 0x8a, 0x4c, 0x04, 0x85, 0x6c, 0x85, 0xeb, 0x5b, - 0xb1, 0x05, 0x70, 0xb5, 0x73, 0xd3, 0x6a, 0x32, 0x33, 0xb2, 0xfc, 0xa8, 0x5f, 0xc5, 0x31, 0x52, - 0x63, 0x24, 0xd0, 0xf2, 0x05, 0xfa, 0x36, 0xe4, 0x6a, 0xa3, 0x4b, 0xfa, 0xae, 0x20, 0x79, 0x0d, - 0x52, 0x69, 0x4a, 0x2b, 0xc4, 0x93, 0x73, 0x25, 0x22, 0x61, 0x0e, 0x7b, 0xa4, 0x5c, 0x94, 0x39, - 0xd2, 0x33, 0x31, 0x73, 0xd8, 0x43, 0xf9, 0xe6, 0x30, 0x9a, 0x7c, 0xa4, 0x39, 0x12, 0x0f, 0x37, - 0x87, 0x11, 0x61, 0xb9, 0xd9, 0x70, 0x1c, 0xa2, 0x59, 0x9a, 0xa7, 0x24, 0x17, 0x95, 0x24, 0x5c, - 0x87, 0x11, 0xa4, 0x4f, 0xd8, 0x15, 0x9d, 0x1d, 0x1a, 0xfa, 0x04, 0x5e, 0x98, 0x36, 0x3b, 0x42, - 0x4b, 0xcc, 0x8e, 0xb8, 0x96, 0x57, 0xe0, 0xc6, 0x29, 0x76, 0x78, 0x84, 0xa9, 0x38, 0xc3, 0x0a, - 0x14, 0xca, 0xa1, 0x15, 0x28, 0xc4, 0x7a, 0x0d, 0x8a, 0x42, 0x95, 0xec, 0xc5, 0x09, 0xad, 0xc6, - 0x5f, 0xee, 0x9a, 0x46, 0xcb, 0x75, 0x19, 0x6b, 0xd1, 0x0d, 0x4a, 0xf5, 0x43, 0x28, 0x08, 0xc5, - 0x3d, 0x97, 0x3e, 0xf4, 0x02, 0xff, 0xc5, 0x60, 0x1a, 0x27, 0x53, 0x65, 0x94, 0x05, 0x37, 0x20, - 0x5c, 0xde, 0x82, 0x73, 0xea, 0x6c, 0x45, 0x5e, 0x0c, 0xc5, 0x5c, 0xcf, 0xdf, 0xe2, 0x21, 0x5f, - 0xc9, 0x0b, 0xa4, 0xe2, 0x2d, 0x35, 0x92, 0x25, 0xd9, 0x45, 0x65, 0xee, 0x4a, 0x6c, 0x79, 0x13, - 0x6e, 0x57, 0x66, 0xa6, 0x28, 0x92, 0x39, 0x99, 0xe4, 0x09, 0x98, 0x0f, 0xa4, 0x23, 0x19, 0x9c, - 0x54, 0x80, 0x93, 0xe3, 0xe0, 0x51, 0x90, 0xc9, 0xe0, 0xb8, 0x02, 0x1c, 0x97, 0xc1, 0x1f, 0x87, - 0x42, 0x30, 0x0f, 0xc9, 0xe8, 0x79, 0x05, 0x7a, 0x5e, 0x81, 0x56, 0xdf, 0x3b, 0xa1, 0x40, 0x27, - 0x42, 0xe8, 0xda, 0xc4, 0x7b, 0x2f, 0x28, 0xd0, 0x0b, 0x0a, 0xb4, 0xfa, 0xde, 0xba, 0x02, 0xad, - 0xcb, 0xe8, 0x4f, 0x40, 0x31, 0x94, 0x72, 0x64, 0x78, 0x5a, 0x01, 0x4f, 0xcb, 0xf0, 0x27, 0x71, - 0xe9, 0xb4, 0x26, 0xe3, 0x8b, 0x0a, 0x7c, 0x51, 0x75, 0x7b, 0xb5, 0xf5, 0x29, 0x05, 0x3c, 0xa5, - 0xbc, 0xbd, 0x1a, 0xaf, 0x29, 0xf0, 0x9a, 0x8c, 0xaf, 0x40, 0x5e, 0xce, 0x2a, 0x32, 0x36, 0xa3, - 0xc0, 0x66, 0xc2, 0x7e, 0x0f, 0xa4, 0x94, 0xa8, 0x48, 0xcf, 0x4e, 0x58, 0x2e, 0x81, 0x34, 0x12, - 0x45, 0x92, 0x97, 0x49, 0xae, 0xc3, 0x92, 0x2a, 0x69, 0x28, 0x38, 0x56, 0x64, 0x8e, 0xc2, 0xda, - 0x52, 0x20, 0x59, 0x50, 0xdc, 0xb0, 0x27, 0x33, 0x3f, 0x0f, 0x8b, 0x8a, 0xd4, 0xa1, 0x20, 0x7e, - 0x58, 0x26, 0xce, 0xad, 0x2d, 0x07, 0x88, 0x03, 0xdd, 0x95, 0x44, 0x5f, 0xfe, 0xce, 0x22, 0x14, - 0x78, 0x8a, 0x3a, 0x18, 0x34, 0xad, 0x01, 0x36, 0xfc, 0x3f, 0x33, 0xb9, 0xc3, 0x5a, 0x53, 0xa5, - 0x36, 0x8e, 0x3b, 0x43, 0xa3, 0xf5, 0xfc, 0xc4, 0x46, 0xeb, 0x23, 0xb3, 0xdc, 0x20, 0xaa, 0xdf, - 0xaa, 0x8e, 0xf5, 0x5b, 0x0f, 0x4e, 0xa3, 0x9d, 0xd4, 0x76, 0x55, 0xc7, 0xda, 0xae, 0x28, 0x1a, - 0x65, 0xf7, 0x75, 0x6d, 0xbc, 0xfb, 0x5a, 0x99, 0xc6, 0x33, 0xb9, 0x09, 0xbb, 0x36, 0xde, 0x84, - 0x45, 0x32, 0xa9, 0x7b, 0xb1, 0x6b, 0xe3, 0xbd, 0xd8, 0x54, 0xa6, 0xc9, 0x2d, 0xd9, 0xb5, 0xf1, - 0x96, 0x2c, 0x92, 0x49, 0xdd, 0x99, 0x7d, 0x4a, 0xd1, 0x99, 0x3d, 0x34, 0x8d, 0x6a, 0x5a, 0x83, - 0xb6, 0xaf, 0x6a, 0xd0, 0x3e, 0x34, 0xd5, 0xb0, 0xa9, 0x7d, 0xda, 0xa7, 0x14, 0x7d, 0x5a, 0xb4, - 0x71, 0x13, 0xda, 0xb5, 0x7d, 0x55, 0xbb, 0x36, 0x83, 0x71, 0x93, 0xba, 0xb6, 0x8d, 0x70, 0xd7, - 0x76, 0x69, 0x1a, 0x97, 0xba, 0x79, 0xbb, 0x36, 0xde, 0xbc, 0xad, 0x44, 0xaf, 0x45, 0x55, 0x0f, - 0xf7, 0xfc, 0xc4, 0x1e, 0x6e, 0xa6, 0xc5, 0x1d, 0xd5, 0xca, 0x3d, 0x37, 0xa9, 0x95, 0x7b, 0x78, - 0x16, 0xf6, 0xe9, 0x1d, 0xdd, 0x33, 0x13, 0x3a, 0xba, 0xcb, 0xb3, 0x50, 0xdf, 0x6a, 0xec, 0x6e, - 0x35, 0x76, 0xb7, 0x1a, 0xbb, 0x5b, 0x8d, 0xdd, 0x4f, 0x46, 0x63, 0x57, 0x49, 0xbc, 0xf6, 0xe6, - 0x85, 0xd8, 0xca, 0x45, 0x48, 0xf3, 0x5b, 0xeb, 0x29, 0x98, 0xdb, 0x5b, 0xd7, 0x6e, 0xa3, 0xff, - 0x37, 0xb4, 0x18, 0xfd, 0xbf, 0xa9, 0xcd, 0x6d, 0xec, 0x7e, 0xf3, 0xbb, 0xe7, 0x6f, 0xfb, 0x16, - 0x7e, 0xbe, 0x8d, 0x9f, 0x7f, 0xfe, 0xee, 0xf9, 0xd8, 0x3b, 0xf8, 0x79, 0x17, 0x3f, 0x3f, 0xc0, - 0xcf, 0x2b, 0xdf, 0x3b, 0x1f, 0xfb, 0x12, 0x7e, 0xbe, 0x8a, 0x9f, 0xbf, 0xc6, 0xcf, 0xd7, 0xf1, - 0xf3, 0x4d, 0xfc, 0x7c, 0xeb, 0x7b, 0xa8, 0x8b, 0xff, 0xdf, 0xc1, 0xff, 0xef, 0xe2, 0xff, 0x1f, - 0xe0, 0xff, 0x57, 0xfe, 0xe5, 0xfc, 0x6d, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x34, 0x44, - 0xd5, 0x96, 0x3e, 0x00, 0x00, + // 4577 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, + 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, + 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, + 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, + 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, + 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0x04, 0xf0, + 0x97, 0xe2, 0xbe, 0x86, 0x33, 0xc3, 0x21, 0x87, 0x32, 0xe0, 0xa4, 0x1f, 0xfc, 0x49, 0x9a, 0x73, + 0xcf, 0xef, 0x77, 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0x5c, 0x0e, 0xfc, 0xe8, 0x1c, 0x9c, 0x6a, + 0x58, 0x56, 0xa3, 0x89, 0x17, 0xdb, 0xb6, 0xe5, 0x5a, 0xfb, 0x9d, 0xfa, 0x62, 0x0d, 0x3b, 0xba, + 0x6d, 0xb4, 0x5d, 0xcb, 0x5e, 0xa0, 0x32, 0x34, 0xc1, 0x34, 0x16, 0x84, 0xc6, 0xdc, 0x26, 0x4c, + 0x5e, 0x32, 0x9a, 0x78, 0xd5, 0x53, 0xac, 0x62, 0x17, 0x5d, 0x80, 0x54, 0xdd, 0x68, 0xe2, 0xa2, + 0x74, 0x2a, 0x39, 0x9f, 0x5b, 0xba, 0x63, 0x21, 0x04, 0x5a, 0x08, 0x22, 0x76, 0x88, 0x58, 0xa1, + 0x88, 0xb9, 0x77, 0x53, 0x30, 0x15, 0x31, 0x8a, 0x10, 0xa4, 0x4c, 0xad, 0x45, 0x18, 0xa5, 0xf9, + 0xac, 0x42, 0xff, 0x47, 0x45, 0x18, 0x6b, 0x6b, 0xfa, 0x55, 0xad, 0x81, 0x8b, 0x09, 0x2a, 0x16, + 0x8f, 0x68, 0x16, 0xa0, 0x86, 0xdb, 0xd8, 0xac, 0x61, 0x53, 0x3f, 0x2c, 0x26, 0x4f, 0x25, 0xe7, + 0xb3, 0x8a, 0x4f, 0x82, 0xee, 0x85, 0xc9, 0x76, 0x67, 0xbf, 0x69, 0xe8, 0xaa, 0x4f, 0x0d, 0x4e, + 0x25, 0xe7, 0xd3, 0x8a, 0xcc, 0x06, 0x56, 0xbb, 0xca, 0x77, 0xc3, 0xc4, 0x8b, 0x58, 0xbb, 0xea, + 0x57, 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, + 0xea, 0x1e, 0xb6, 0x71, 0x31, 0x45, 0x57, 0x7f, 0xaa, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x38, 0x6a, + 0xf7, 0xb0, 0x8d, 0x51, 0x19, 0xb2, 0xd8, 0xec, 0xb4, 0x18, 0x43, 0xba, 0x8f, 0xff, 0x2a, 0x66, + 0xa7, 0x15, 0x66, 0xc9, 0x10, 0x18, 0xa7, 0x18, 0x73, 0xb0, 0x7d, 0xcd, 0xd0, 0x71, 0x71, 0x94, + 0x12, 0xdc, 0xdd, 0x43, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc5, 0x2f, 0xb9, + 0xd8, 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x51, 0x92, 0x3b, 0x23, 0x76, 0x11, 0x37, 0x6b, 0x61, 0x8a, + 0x2e, 0x0e, 0x9d, 0x87, 0x31, 0xab, 0xed, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0xa7, 0xa4, 0xf9, 0xdc, + 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xe9, 0x28, 0x42, 0x19, 0xad, 0x83, 0xec, 0x58, 0x1d, 0x5b, + 0xc7, 0xaa, 0x6e, 0xd5, 0xb0, 0x6a, 0x98, 0x75, 0xab, 0x98, 0xa5, 0x04, 0x27, 0x7b, 0x17, 0x42, + 0x15, 0x57, 0xac, 0x1a, 0x5e, 0x37, 0xeb, 0x96, 0x52, 0x70, 0x02, 0xcf, 0xe8, 0x04, 0x8c, 0x3a, + 0x87, 0xa6, 0xab, 0xbd, 0x54, 0xcc, 0xd3, 0x08, 0xe1, 0x4f, 0x73, 0x3f, 0x49, 0xc3, 0xc4, 0x30, + 0x21, 0x76, 0x11, 0xd2, 0x75, 0xb2, 0xca, 0x62, 0xe2, 0x38, 0x3e, 0x60, 0x98, 0xa0, 0x13, 0x47, + 0x3f, 0xa6, 0x13, 0xcb, 0x90, 0x33, 0xb1, 0xe3, 0xe2, 0x1a, 0x8b, 0x88, 0xe4, 0x90, 0x31, 0x05, + 0x0c, 0xd4, 0x1b, 0x52, 0xa9, 0x8f, 0x15, 0x52, 0x57, 0x60, 0xc2, 0x33, 0x49, 0xb5, 0x35, 0xb3, + 0x21, 0x62, 0x73, 0x31, 0xce, 0x92, 0x85, 0x8a, 0xc0, 0x29, 0x04, 0xa6, 0x14, 0x70, 0xe0, 0x19, + 0xad, 0x02, 0x58, 0x26, 0xb6, 0xea, 0x6a, 0x0d, 0xeb, 0xcd, 0x62, 0xa6, 0x8f, 0x97, 0xb6, 0x89, + 0x4a, 0x8f, 0x97, 0x2c, 0x26, 0xd5, 0x9b, 0xe8, 0x91, 0x6e, 0xa8, 0x8d, 0xf5, 0x89, 0x94, 0x4d, + 0x76, 0xc8, 0x7a, 0xa2, 0x6d, 0x0f, 0x0a, 0x36, 0x26, 0x71, 0x8f, 0x6b, 0x7c, 0x65, 0x59, 0x6a, + 0xc4, 0x42, 0xec, 0xca, 0x14, 0x0e, 0x63, 0x0b, 0x1b, 0xb7, 0xfd, 0x8f, 0xe8, 0x76, 0xf0, 0x04, + 0x2a, 0x0d, 0x2b, 0xa0, 0x59, 0x28, 0x2f, 0x84, 0x5b, 0x5a, 0x0b, 0xcf, 0x5c, 0x80, 0x42, 0xd0, + 0x3d, 0x68, 0x1a, 0xd2, 0x8e, 0xab, 0xd9, 0x2e, 0x8d, 0xc2, 0xb4, 0xc2, 0x1e, 0x90, 0x0c, 0x49, + 0x6c, 0xd6, 0x68, 0x96, 0x4b, 0x2b, 0xe4, 0xdf, 0x99, 0x87, 0x61, 0x3c, 0x30, 0xfd, 0xb0, 0xc0, + 0xb9, 0x57, 0x47, 0x61, 0x3a, 0x2a, 0xe6, 0x22, 0xc3, 0xff, 0x04, 0x8c, 0x9a, 0x9d, 0xd6, 0x3e, + 0xb6, 0x8b, 0x49, 0xca, 0xc0, 0x9f, 0x50, 0x19, 0xd2, 0x4d, 0x6d, 0x1f, 0x37, 0x8b, 0xa9, 0x53, + 0xd2, 0x7c, 0x61, 0xe9, 0xde, 0xa1, 0xa2, 0x7a, 0x61, 0x83, 0x40, 0x14, 0x86, 0x44, 0x8f, 0x41, + 0x8a, 0xa7, 0x38, 0xc2, 0x70, 0x66, 0x38, 0x06, 0x12, 0x8b, 0x0a, 0xc5, 0xa1, 0x5b, 0x21, 0x4b, + 0xfe, 0x32, 0xdf, 0x8e, 0x52, 0x9b, 0x33, 0x44, 0x40, 0xfc, 0x8a, 0x66, 0x20, 0x43, 0xc3, 0xac, + 0x86, 0x45, 0x69, 0xf0, 0x9e, 0xc9, 0xc6, 0xd4, 0x70, 0x5d, 0xeb, 0x34, 0x5d, 0xf5, 0x9a, 0xd6, + 0xec, 0x60, 0x1a, 0x30, 0x59, 0x25, 0xcf, 0x85, 0x4f, 0x11, 0x19, 0x3a, 0x09, 0x39, 0x16, 0x95, + 0x86, 0x59, 0xc3, 0x2f, 0xd1, 0xec, 0x93, 0x56, 0x58, 0xa0, 0xae, 0x13, 0x09, 0x99, 0xfe, 0x79, + 0xc7, 0x32, 0xc5, 0xd6, 0xd2, 0x29, 0x88, 0x80, 0x4e, 0xff, 0x70, 0x38, 0xf1, 0xdd, 0x16, 0xbd, + 0xbc, 0x70, 0x2c, 0xce, 0x7d, 0x33, 0x01, 0x29, 0x7a, 0xde, 0x26, 0x20, 0xb7, 0xfb, 0xcc, 0x4e, + 0x45, 0x5d, 0xdd, 0xde, 0x5b, 0xde, 0xa8, 0xc8, 0x12, 0x2a, 0x00, 0x50, 0xc1, 0xa5, 0x8d, 0xed, + 0xf2, 0xae, 0x9c, 0xf0, 0x9e, 0xd7, 0xb7, 0x76, 0xcf, 0x9f, 0x95, 0x93, 0x1e, 0x60, 0x8f, 0x09, + 0x52, 0x7e, 0x85, 0x87, 0x96, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0xd6, 0xaf, 0x54, 0x56, 0xcf, + 0x9f, 0x95, 0x47, 0x83, 0x92, 0x87, 0x96, 0xe4, 0x31, 0x34, 0x0e, 0x59, 0x2a, 0x59, 0xde, 0xde, + 0xde, 0x90, 0x33, 0x1e, 0x67, 0x75, 0x57, 0x59, 0xdf, 0x5a, 0x93, 0xb3, 0x1e, 0xe7, 0x9a, 0xb2, + 0xbd, 0xb7, 0x23, 0x83, 0xc7, 0xb0, 0x59, 0xa9, 0x56, 0xcb, 0x6b, 0x15, 0x39, 0xe7, 0x69, 0x2c, + 0x3f, 0xb3, 0x5b, 0xa9, 0xca, 0xf9, 0x80, 0x59, 0x0f, 0x2d, 0xc9, 0xe3, 0xde, 0x14, 0x95, 0xad, + 0xbd, 0x4d, 0xb9, 0x80, 0x26, 0x61, 0x9c, 0x4d, 0x21, 0x8c, 0x98, 0x08, 0x89, 0xce, 0x9f, 0x95, + 0xe5, 0xae, 0x21, 0x8c, 0x65, 0x32, 0x20, 0x38, 0x7f, 0x56, 0x46, 0x73, 0x2b, 0x90, 0xa6, 0xd1, + 0x85, 0x10, 0x14, 0x36, 0xca, 0xcb, 0x95, 0x0d, 0x75, 0x7b, 0x67, 0x77, 0x7d, 0x7b, 0xab, 0xbc, + 0x21, 0x4b, 0x5d, 0x99, 0x52, 0xf9, 0xdc, 0xde, 0xba, 0x52, 0x59, 0x95, 0x13, 0x7e, 0xd9, 0x4e, + 0xa5, 0xbc, 0x5b, 0x59, 0x95, 0x93, 0x73, 0x3a, 0x4c, 0x47, 0xe5, 0x99, 0xc8, 0x93, 0xe1, 0xdb, + 0xe2, 0x44, 0x9f, 0x2d, 0xa6, 0x5c, 0x3d, 0x5b, 0xfc, 0x65, 0x09, 0xa6, 0x22, 0x72, 0x6d, 0xe4, + 0x24, 0x8f, 0x43, 0x9a, 0x85, 0x28, 0xab, 0x3e, 0xf7, 0x44, 0x26, 0x6d, 0x1a, 0xb0, 0x3d, 0x15, + 0x88, 0xe2, 0xfc, 0x15, 0x38, 0xd9, 0xa7, 0x02, 0x13, 0x8a, 0x1e, 0x23, 0x5f, 0x91, 0xa0, 0xd8, + 0x8f, 0x3b, 0x26, 0x51, 0x24, 0x02, 0x89, 0xe2, 0x62, 0xd8, 0x80, 0xd3, 0xfd, 0xd7, 0xd0, 0x63, + 0xc5, 0x9b, 0x12, 0x9c, 0x88, 0x6e, 0x54, 0x22, 0x6d, 0x78, 0x0c, 0x46, 0x5b, 0xd8, 0x3d, 0xb0, + 0x44, 0xb1, 0xbe, 0x2b, 0xa2, 0x04, 0x90, 0xe1, 0xb0, 0xaf, 0x38, 0xca, 0x5f, 0x43, 0x92, 0xfd, + 0xba, 0x0d, 0x66, 0x4d, 0x8f, 0xa5, 0x9f, 0x4f, 0xc0, 0x4d, 0x91, 0xe4, 0x91, 0x86, 0xde, 0x06, + 0x60, 0x98, 0xed, 0x8e, 0xcb, 0x0a, 0x32, 0xcb, 0x4f, 0x59, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, + 0x8e, 0xeb, 0x8d, 0x27, 0xe9, 0x38, 0x30, 0x11, 0x55, 0xb8, 0xd0, 0x35, 0x34, 0x45, 0x0d, 0x9d, + 0xed, 0xb3, 0xd2, 0x9e, 0x5a, 0xf7, 0x00, 0xc8, 0x7a, 0xd3, 0xc0, 0xa6, 0xab, 0x3a, 0xae, 0x8d, + 0xb5, 0x96, 0x61, 0x36, 0x68, 0x02, 0xce, 0x94, 0xd2, 0x75, 0xad, 0xe9, 0x60, 0x65, 0x82, 0x0d, + 0x57, 0xc5, 0x28, 0x41, 0xd0, 0x2a, 0x63, 0xfb, 0x10, 0xa3, 0x01, 0x04, 0x1b, 0xf6, 0x10, 0x73, + 0x5f, 0x1b, 0x83, 0x9c, 0xaf, 0xad, 0x43, 0xa7, 0x21, 0xff, 0xbc, 0x76, 0x4d, 0x53, 0x45, 0xab, + 0xce, 0x3c, 0x91, 0x23, 0xb2, 0x1d, 0xde, 0xae, 0x3f, 0x00, 0xd3, 0x54, 0xc5, 0xea, 0xb8, 0xd8, + 0x56, 0xf5, 0xa6, 0xe6, 0x38, 0xd4, 0x69, 0x19, 0xaa, 0x8a, 0xc8, 0xd8, 0x36, 0x19, 0x5a, 0x11, + 0x23, 0xe8, 0x1c, 0x4c, 0x51, 0x44, 0xab, 0xd3, 0x74, 0x8d, 0x76, 0x13, 0xab, 0xe4, 0xe5, 0xc1, + 0xa1, 0x89, 0xd8, 0xb3, 0x6c, 0x92, 0x68, 0x6c, 0x72, 0x05, 0x62, 0x91, 0x83, 0x56, 0xe1, 0x36, + 0x0a, 0x6b, 0x60, 0x13, 0xdb, 0x9a, 0x8b, 0x55, 0xfc, 0x42, 0x47, 0x6b, 0x3a, 0xaa, 0x66, 0xd6, + 0xd4, 0x03, 0xcd, 0x39, 0x28, 0x4e, 0x13, 0x82, 0xe5, 0x44, 0x51, 0x52, 0x6e, 0x21, 0x8a, 0x6b, + 0x5c, 0xaf, 0x42, 0xd5, 0xca, 0x66, 0xed, 0xb2, 0xe6, 0x1c, 0xa0, 0x12, 0x9c, 0xa0, 0x2c, 0x8e, + 0x6b, 0x1b, 0x66, 0x43, 0xd5, 0x0f, 0xb0, 0x7e, 0x55, 0xed, 0xb8, 0xf5, 0x0b, 0xc5, 0x5b, 0xfd, + 0xf3, 0x53, 0x0b, 0xab, 0x54, 0x67, 0x85, 0xa8, 0xec, 0xb9, 0xf5, 0x0b, 0xa8, 0x0a, 0x79, 0xb2, + 0x19, 0x2d, 0xe3, 0x65, 0xac, 0xd6, 0x2d, 0x9b, 0x56, 0x96, 0x42, 0xc4, 0xc9, 0xf6, 0x79, 0x70, + 0x61, 0x9b, 0x03, 0x36, 0xad, 0x1a, 0x2e, 0xa5, 0xab, 0x3b, 0x95, 0xca, 0xaa, 0x92, 0x13, 0x2c, + 0x97, 0x2c, 0x9b, 0x04, 0x54, 0xc3, 0xf2, 0x1c, 0x9c, 0x63, 0x01, 0xd5, 0xb0, 0x84, 0x7b, 0xcf, + 0xc1, 0x94, 0xae, 0xb3, 0x35, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0xa7, 0x28, 0x07, 0x9c, 0xa5, 0xeb, + 0x6b, 0x4c, 0x81, 0xc7, 0xb8, 0x83, 0x1e, 0x81, 0x9b, 0xba, 0xce, 0xf2, 0x03, 0x27, 0x7b, 0x56, + 0x19, 0x86, 0x9e, 0x83, 0xa9, 0xf6, 0x61, 0x2f, 0x10, 0x05, 0x66, 0x6c, 0x1f, 0x86, 0x61, 0x77, + 0xd2, 0xd7, 0x36, 0x1b, 0xeb, 0x9a, 0x8b, 0x6b, 0xc5, 0x9b, 0xfd, 0xda, 0xbe, 0x01, 0xb4, 0x08, + 0xb2, 0xae, 0xab, 0xd8, 0xd4, 0xf6, 0x9b, 0x58, 0xd5, 0x6c, 0x6c, 0x6a, 0x4e, 0xf1, 0xa4, 0x5f, + 0xb9, 0xa0, 0xeb, 0x15, 0x3a, 0x5a, 0xa6, 0x83, 0xe8, 0x0c, 0x4c, 0x5a, 0xfb, 0xcf, 0xeb, 0x2c, + 0xb2, 0xd4, 0xb6, 0x8d, 0xeb, 0xc6, 0x4b, 0xc5, 0x3b, 0xa8, 0x9b, 0x26, 0xc8, 0x00, 0x8d, 0xab, + 0x1d, 0x2a, 0x46, 0xf7, 0x80, 0xac, 0x3b, 0x07, 0x9a, 0xdd, 0xa6, 0xa5, 0xdd, 0x69, 0x6b, 0x3a, + 0x2e, 0xde, 0xc9, 0x54, 0x99, 0x7c, 0x4b, 0x88, 0x49, 0x64, 0x3b, 0x2f, 0x1a, 0x75, 0x57, 0x30, + 0xde, 0xcd, 0x22, 0x9b, 0xca, 0x38, 0xdb, 0x15, 0x98, 0xee, 0x98, 0x86, 0xe9, 0x62, 0xbb, 0x6d, + 0x63, 0xd2, 0xc4, 0xb3, 0x93, 0x58, 0xfc, 0x97, 0xb1, 0x3e, 0x6d, 0xf8, 0x9e, 0x5f, 0x9b, 0x05, + 0x80, 0x32, 0xd5, 0xe9, 0x15, 0xce, 0x95, 0x20, 0xef, 0x8f, 0x0b, 0x94, 0x05, 0x16, 0x19, 0xb2, + 0x44, 0x6a, 0xec, 0xca, 0xf6, 0x2a, 0xa9, 0x8e, 0xcf, 0x56, 0xe4, 0x04, 0xa9, 0xd2, 0x1b, 0xeb, + 0xbb, 0x15, 0x55, 0xd9, 0xdb, 0xda, 0x5d, 0xdf, 0xac, 0xc8, 0xc9, 0x33, 0xd9, 0xcc, 0x7b, 0x63, + 0xf2, 0xf5, 0xeb, 0xd7, 0xaf, 0x27, 0xe6, 0xbe, 0x93, 0x80, 0x42, 0xb0, 0x33, 0x46, 0x9f, 0x85, + 0x9b, 0xc5, 0x6b, 0xac, 0x83, 0x5d, 0xf5, 0x45, 0xc3, 0xa6, 0xa1, 0xda, 0xd2, 0x58, 0x6f, 0xe9, + 0x79, 0x79, 0x9a, 0x6b, 0x55, 0xb1, 0xfb, 0xb4, 0x61, 0x93, 0x40, 0x6c, 0x69, 0x2e, 0xda, 0x80, + 0x93, 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, 0x34, 0xbb, 0xa6, 0x76, 0x2f, 0x10, 0x54, 0x4d, 0xd7, + 0xb1, 0xe3, 0x58, 0xac, 0x44, 0x78, 0x2c, 0x9f, 0x31, 0xad, 0x2a, 0x57, 0xee, 0xe6, 0xce, 0x32, + 0x57, 0x0d, 0x45, 0x44, 0xb2, 0x5f, 0x44, 0xdc, 0x0a, 0xd9, 0x96, 0xd6, 0x56, 0xb1, 0xe9, 0xda, + 0x87, 0xb4, 0x9f, 0xcb, 0x28, 0x99, 0x96, 0xd6, 0xae, 0x90, 0xe7, 0x4f, 0x6e, 0x0f, 0xfc, 0x7e, + 0xfc, 0x61, 0x12, 0xf2, 0xfe, 0x9e, 0x8e, 0xb4, 0xc8, 0x3a, 0xcd, 0xdf, 0x12, 0x3d, 0xe1, 0xb7, + 0x0f, 0xec, 0x00, 0x17, 0x56, 0x48, 0x62, 0x2f, 0x8d, 0xb2, 0x4e, 0x4b, 0x61, 0x48, 0x52, 0x54, + 0xc9, 0x99, 0xc6, 0xac, 0x7f, 0xcf, 0x28, 0xfc, 0x09, 0xad, 0xc1, 0xe8, 0xf3, 0x0e, 0xe5, 0x1e, + 0xa5, 0xdc, 0x77, 0x0c, 0xe6, 0x7e, 0xa2, 0x4a, 0xc9, 0xb3, 0x4f, 0x54, 0xd5, 0xad, 0x6d, 0x65, + 0xb3, 0xbc, 0xa1, 0x70, 0x38, 0xba, 0x05, 0x52, 0x4d, 0xed, 0xe5, 0xc3, 0x60, 0x09, 0xa0, 0xa2, + 0x61, 0x1d, 0x7f, 0x0b, 0xa4, 0x5e, 0xc4, 0xda, 0xd5, 0x60, 0xe2, 0xa5, 0xa2, 0x4f, 0x30, 0xf4, + 0x17, 0x21, 0x4d, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x11, 0x94, 0x81, 0xd4, 0xca, 0xb6, 0x42, + 0xc2, 0x5f, 0x86, 0x3c, 0x93, 0xaa, 0x3b, 0xeb, 0x95, 0x95, 0x8a, 0x9c, 0x98, 0x3b, 0x07, 0xa3, + 0xcc, 0x09, 0xe4, 0x68, 0x78, 0x6e, 0x90, 0x47, 0xf8, 0x23, 0xe7, 0x90, 0xc4, 0xe8, 0xde, 0xe6, + 0x72, 0x45, 0x91, 0x13, 0xfe, 0xed, 0x75, 0x20, 0xef, 0x6f, 0xe7, 0x7e, 0x36, 0x31, 0xf5, 0xf7, + 0x12, 0xe4, 0x7c, 0xed, 0x19, 0x69, 0x0c, 0xb4, 0x66, 0xd3, 0x7a, 0x51, 0xd5, 0x9a, 0x86, 0xe6, + 0xf0, 0xa0, 0x00, 0x2a, 0x2a, 0x13, 0xc9, 0xb0, 0x9b, 0xf6, 0x33, 0x31, 0xfe, 0x0d, 0x09, 0xe4, + 0x70, 0x6b, 0x17, 0x32, 0x50, 0xfa, 0xb9, 0x1a, 0xf8, 0xba, 0x04, 0x85, 0x60, 0x3f, 0x17, 0x32, + 0xef, 0xf4, 0xcf, 0xd5, 0xbc, 0x77, 0x12, 0x30, 0x1e, 0xe8, 0xe2, 0x86, 0xb5, 0xee, 0x05, 0x98, + 0x34, 0x6a, 0xb8, 0xd5, 0xb6, 0x5c, 0x6c, 0xea, 0x87, 0x6a, 0x13, 0x5f, 0xc3, 0xcd, 0xe2, 0x1c, + 0x4d, 0x14, 0x8b, 0x83, 0xfb, 0xc4, 0x85, 0xf5, 0x2e, 0x6e, 0x83, 0xc0, 0x4a, 0x53, 0xeb, 0xab, + 0x95, 0xcd, 0x9d, 0xed, 0xdd, 0xca, 0xd6, 0xca, 0x33, 0xea, 0xde, 0xd6, 0x93, 0x5b, 0xdb, 0x4f, + 0x6f, 0x29, 0xb2, 0x11, 0x52, 0xfb, 0x04, 0x8f, 0xfa, 0x0e, 0xc8, 0x61, 0xa3, 0xd0, 0xcd, 0x10, + 0x65, 0x96, 0x3c, 0x82, 0xa6, 0x60, 0x62, 0x6b, 0x5b, 0xad, 0xae, 0xaf, 0x56, 0xd4, 0xca, 0xa5, + 0x4b, 0x95, 0x95, 0xdd, 0x2a, 0x7b, 0x71, 0xf6, 0xb4, 0x77, 0x83, 0x87, 0xfa, 0xb5, 0x24, 0x4c, + 0x45, 0x58, 0x82, 0xca, 0xbc, 0x67, 0x67, 0xaf, 0x11, 0xf7, 0x0f, 0x63, 0xfd, 0x02, 0xe9, 0x0a, + 0x76, 0x34, 0xdb, 0xe5, 0x2d, 0xfe, 0x3d, 0x40, 0xbc, 0x64, 0xba, 0x46, 0xdd, 0xc0, 0x36, 0xbf, + 0x67, 0x60, 0x8d, 0xfc, 0x44, 0x57, 0xce, 0xae, 0x1a, 0xee, 0x03, 0xd4, 0xb6, 0x1c, 0xc3, 0x35, + 0xae, 0x61, 0xd5, 0x30, 0xc5, 0xa5, 0x04, 0x69, 0xec, 0x53, 0x8a, 0x2c, 0x46, 0xd6, 0x4d, 0xd7, + 0xd3, 0x36, 0x71, 0x43, 0x0b, 0x69, 0x93, 0x04, 0x9e, 0x54, 0x64, 0x31, 0xe2, 0x69, 0x9f, 0x86, + 0x7c, 0xcd, 0xea, 0x90, 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x39, 0x26, 0xf3, 0x54, 0x78, + 0x1f, 0xdb, 0xbd, 0x0d, 0xc9, 0x2b, 0x39, 0x26, 0x63, 0x2a, 0x77, 0xc3, 0x84, 0xd6, 0x68, 0xd8, + 0x84, 0x5c, 0x10, 0xb1, 0xce, 0xbc, 0xe0, 0x89, 0xa9, 0xe2, 0xcc, 0x13, 0x90, 0x11, 0x7e, 0x20, + 0x25, 0x99, 0x78, 0x42, 0x6d, 0xb3, 0x3b, 0xa9, 0xc4, 0x7c, 0x56, 0xc9, 0x98, 0x62, 0xf0, 0x34, + 0xe4, 0x0d, 0x47, 0xed, 0x5e, 0x8e, 0x26, 0x4e, 0x25, 0xe6, 0x33, 0x4a, 0xce, 0x70, 0xbc, 0xdb, + 0xb0, 0xb9, 0x37, 0x13, 0x50, 0x08, 0x5e, 0xee, 0xa2, 0x55, 0xc8, 0x34, 0x2d, 0x5d, 0xa3, 0xa1, + 0xc5, 0x7e, 0x59, 0x98, 0x8f, 0xb9, 0x0f, 0x5e, 0xd8, 0xe0, 0xfa, 0x8a, 0x87, 0x9c, 0xf9, 0x67, + 0x09, 0x32, 0x42, 0x8c, 0x4e, 0x40, 0xaa, 0xad, 0xb9, 0x07, 0x94, 0x2e, 0xbd, 0x9c, 0x90, 0x25, + 0x85, 0x3e, 0x13, 0xb9, 0xd3, 0xd6, 0x4c, 0x1a, 0x02, 0x5c, 0x4e, 0x9e, 0xc9, 0xbe, 0x36, 0xb1, + 0x56, 0xa3, 0x6d, 0xbf, 0xd5, 0x6a, 0x61, 0xd3, 0x75, 0xc4, 0xbe, 0x72, 0xf9, 0x0a, 0x17, 0xa3, + 0x7b, 0x61, 0xd2, 0xb5, 0x35, 0xa3, 0x19, 0xd0, 0x4d, 0x51, 0x5d, 0x59, 0x0c, 0x78, 0xca, 0x25, + 0xb8, 0x45, 0xf0, 0xd6, 0xb0, 0xab, 0xe9, 0x07, 0xb8, 0xd6, 0x05, 0x8d, 0xd2, 0x9b, 0xc3, 0x9b, + 0xb9, 0xc2, 0x2a, 0x1f, 0x17, 0xd8, 0xb9, 0xef, 0x49, 0x30, 0x29, 0x5e, 0x54, 0x6a, 0x9e, 0xb3, + 0x36, 0x01, 0x34, 0xd3, 0xb4, 0x5c, 0xbf, 0xbb, 0x7a, 0x43, 0xb9, 0x07, 0xb7, 0x50, 0xf6, 0x40, + 0x8a, 0x8f, 0x60, 0xa6, 0x05, 0xd0, 0x1d, 0xe9, 0xeb, 0xb6, 0x93, 0x90, 0xe3, 0x37, 0xf7, 0xf4, + 0xe7, 0x1f, 0xf6, 0x6a, 0x0b, 0x4c, 0x44, 0xde, 0x68, 0xd0, 0x34, 0xa4, 0xf7, 0x71, 0xc3, 0x30, + 0xf9, 0x7d, 0x22, 0x7b, 0x10, 0xb7, 0x94, 0x29, 0xef, 0x96, 0x72, 0xf9, 0x0a, 0x4c, 0xe9, 0x56, + 0x2b, 0x6c, 0xee, 0xb2, 0x1c, 0x7a, 0xbd, 0x76, 0x2e, 0x4b, 0xcf, 0x42, 0xb7, 0xc5, 0xfc, 0x72, + 0x22, 0xb9, 0xb6, 0xb3, 0xfc, 0xd5, 0xc4, 0xcc, 0x1a, 0xc3, 0xed, 0x88, 0x65, 0x2a, 0xb8, 0xde, + 0xc4, 0x3a, 0x31, 0x1d, 0x7e, 0x7c, 0x17, 0xdc, 0xdf, 0x30, 0xdc, 0x83, 0xce, 0xfe, 0x82, 0x6e, + 0xb5, 0x16, 0x1b, 0x56, 0xc3, 0xea, 0xfe, 0xdc, 0x45, 0x9e, 0xe8, 0x03, 0xfd, 0x8f, 0xff, 0xe4, + 0x95, 0xf5, 0xa4, 0x33, 0xb1, 0xbf, 0x8f, 0x95, 0xb6, 0x60, 0x8a, 0x2b, 0xab, 0xf4, 0xce, 0x9d, + 0xbd, 0x1a, 0xa0, 0x81, 0xf7, 0x2e, 0xc5, 0x6f, 0xbc, 0x4b, 0x6b, 0xb5, 0x32, 0xc9, 0xa1, 0x64, + 0x8c, 0xbd, 0x40, 0x94, 0x14, 0xb8, 0x29, 0xc0, 0xc7, 0xce, 0x25, 0xb6, 0x63, 0x18, 0xbf, 0xc3, + 0x19, 0xa7, 0x7c, 0x8c, 0x55, 0x0e, 0x2d, 0xad, 0xc0, 0xf8, 0x71, 0xb8, 0xfe, 0x81, 0x73, 0xe5, + 0xb1, 0x9f, 0x64, 0x0d, 0x26, 0x28, 0x89, 0xde, 0x71, 0x5c, 0xab, 0x45, 0x93, 0xde, 0x60, 0x9a, + 0x7f, 0x7c, 0x97, 0x1d, 0x94, 0x02, 0x81, 0xad, 0x78, 0xa8, 0x52, 0x09, 0xe8, 0xcf, 0x0c, 0x35, + 0xac, 0x37, 0x63, 0x18, 0xde, 0xe2, 0x86, 0x78, 0xfa, 0xa5, 0xa7, 0x60, 0x9a, 0xfc, 0x4f, 0x73, + 0x92, 0xdf, 0x92, 0xf8, 0x5b, 0xa6, 0xe2, 0xf7, 0x5e, 0x61, 0x67, 0x71, 0xca, 0x23, 0xf0, 0xd9, + 0xe4, 0xdb, 0xc5, 0x06, 0x76, 0x5d, 0x6c, 0x3b, 0xaa, 0xd6, 0x8c, 0x32, 0xcf, 0xf7, 0x9a, 0x5e, + 0xfc, 0xc2, 0xfb, 0xc1, 0x5d, 0x5c, 0x63, 0xc8, 0x72, 0xb3, 0x59, 0xda, 0x83, 0x9b, 0x23, 0xa2, + 0x62, 0x08, 0xce, 0xd7, 0x38, 0xe7, 0x74, 0x4f, 0x64, 0x10, 0xda, 0x1d, 0x10, 0x72, 0x6f, 0x2f, + 0x87, 0xe0, 0xfc, 0x03, 0xce, 0x89, 0x38, 0x56, 0x6c, 0x29, 0x61, 0x7c, 0x02, 0x26, 0xaf, 0x61, + 0x7b, 0xdf, 0x72, 0xf8, 0xd5, 0xc8, 0x10, 0x74, 0xaf, 0x73, 0xba, 0x09, 0x0e, 0xa4, 0x77, 0x25, + 0x84, 0xeb, 0x11, 0xc8, 0xd4, 0x35, 0x1d, 0x0f, 0x41, 0xf1, 0x45, 0x4e, 0x31, 0x46, 0xf4, 0x09, + 0xb4, 0x0c, 0xf9, 0x86, 0xc5, 0xcb, 0x52, 0x3c, 0xfc, 0x0d, 0x0e, 0xcf, 0x09, 0x0c, 0xa7, 0x68, + 0x5b, 0xed, 0x4e, 0x93, 0xd4, 0xac, 0x78, 0x8a, 0x3f, 0x14, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe1, + 0xd6, 0x3f, 0x12, 0x14, 0x8e, 0xcf, 0x9f, 0x8f, 0x43, 0xce, 0x32, 0x9b, 0x87, 0x96, 0x39, 0x8c, + 0x11, 0x5f, 0xe2, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x22, 0x64, 0x87, 0xdd, 0x88, 0x3f, 0x7e, 0x5f, + 0x1c, 0x0f, 0xb1, 0x03, 0x6b, 0x30, 0x21, 0x12, 0x94, 0x61, 0x99, 0x43, 0x50, 0xfc, 0x09, 0xa7, + 0x28, 0xf8, 0x60, 0x7c, 0x19, 0x2e, 0x76, 0xdc, 0x06, 0x1e, 0x86, 0xe4, 0x4d, 0xb1, 0x0c, 0x0e, + 0xe1, 0xae, 0xdc, 0xc7, 0xa6, 0x7e, 0x30, 0x1c, 0xc3, 0x57, 0x84, 0x2b, 0x05, 0x86, 0x50, 0xac, + 0xc0, 0x78, 0x4b, 0xb3, 0x9d, 0x03, 0xad, 0x39, 0xd4, 0x76, 0xfc, 0x29, 0xe7, 0xc8, 0x7b, 0x20, + 0xee, 0x91, 0x8e, 0x79, 0x1c, 0x9a, 0xaf, 0x0a, 0x8f, 0xf8, 0x60, 0xfc, 0xe8, 0x39, 0x2e, 0xbd, + 0x80, 0x3a, 0x0e, 0xdb, 0xd7, 0xc4, 0xd1, 0x63, 0xd8, 0x4d, 0x3f, 0xe3, 0x45, 0xc8, 0x3a, 0xc6, + 0xcb, 0x43, 0xd1, 0xfc, 0x99, 0xd8, 0x69, 0x0a, 0x20, 0xe0, 0x67, 0xe0, 0x96, 0xc8, 0x32, 0x31, + 0x04, 0xd9, 0x9f, 0x73, 0xb2, 0x13, 0x11, 0xa5, 0x82, 0xa7, 0x84, 0xe3, 0x52, 0xfe, 0x85, 0x48, + 0x09, 0x38, 0xc4, 0xb5, 0x43, 0x5e, 0x14, 0x1c, 0xad, 0x7e, 0x3c, 0xaf, 0xfd, 0xa5, 0xf0, 0x1a, + 0xc3, 0x06, 0xbc, 0xb6, 0x0b, 0x27, 0x38, 0xe3, 0xf1, 0xf6, 0xf5, 0xeb, 0x22, 0xb1, 0x32, 0xf4, + 0x5e, 0x70, 0x77, 0xff, 0x1f, 0xcc, 0x78, 0xee, 0x14, 0x1d, 0xa9, 0xa3, 0xb6, 0xb4, 0xf6, 0x10, + 0xcc, 0xdf, 0xe0, 0xcc, 0x22, 0xe3, 0x7b, 0x2d, 0xad, 0xb3, 0xa9, 0xb5, 0x09, 0xf9, 0x15, 0x28, + 0x0a, 0xf2, 0x8e, 0x69, 0x63, 0xdd, 0x6a, 0x98, 0xc6, 0xcb, 0xb8, 0x36, 0x04, 0xf5, 0x5f, 0x85, + 0xb6, 0x6a, 0xcf, 0x07, 0x27, 0xcc, 0xeb, 0x20, 0x7b, 0xbd, 0x8a, 0x6a, 0xb4, 0xda, 0x96, 0xed, + 0xc6, 0x30, 0xfe, 0xb5, 0xd8, 0x29, 0x0f, 0xb7, 0x4e, 0x61, 0xa5, 0x0a, 0x14, 0xe8, 0xe3, 0xb0, + 0x21, 0xf9, 0x37, 0x9c, 0x68, 0xbc, 0x8b, 0xe2, 0x89, 0x43, 0xb7, 0x5a, 0x6d, 0xcd, 0x1e, 0x26, + 0xff, 0xfd, 0xad, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0x7b, 0xd8, 0xc6, 0xa4, 0xda, 0x0f, 0xc1, + 0xf0, 0x4d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x08, 0x8a, 0xbf, 0x13, 0x14, 0x02, + 0x43, 0x28, 0x3e, 0xd7, 0x2d, 0xb4, 0x36, 0x6e, 0x18, 0x8e, 0x6b, 0xb3, 0x3e, 0x78, 0x30, 0xd5, + 0xb7, 0xde, 0x0f, 0x36, 0x61, 0x8a, 0x0f, 0x5a, 0x7a, 0x02, 0x26, 0x42, 0x2d, 0x06, 0x8a, 0xfb, + 0x66, 0xa1, 0xf8, 0x8b, 0x1f, 0xf2, 0x64, 0x14, 0xec, 0x30, 0x4a, 0x1b, 0x64, 0xdf, 0x83, 0x7d, + 0x40, 0x3c, 0xd9, 0x2b, 0x1f, 0x7a, 0x5b, 0x1f, 0x68, 0x03, 0x4a, 0x97, 0x60, 0x3c, 0xd0, 0x03, + 0xc4, 0x53, 0xfd, 0x12, 0xa7, 0xca, 0xfb, 0x5b, 0x80, 0xd2, 0x39, 0x48, 0x91, 0x7a, 0x1e, 0x0f, + 0xff, 0x65, 0x0e, 0xa7, 0xea, 0xa5, 0x47, 0x21, 0x23, 0xea, 0x78, 0x3c, 0xf4, 0x57, 0x38, 0xd4, + 0x83, 0x10, 0xb8, 0xa8, 0xe1, 0xf1, 0xf0, 0x5f, 0x15, 0x70, 0x01, 0x21, 0xf0, 0xe1, 0x5d, 0xf8, + 0xed, 0x5f, 0x4b, 0xf1, 0x3c, 0x2c, 0x7c, 0x77, 0x11, 0xc6, 0x78, 0xf1, 0x8e, 0x47, 0x7f, 0x9e, + 0x4f, 0x2e, 0x10, 0xa5, 0x87, 0x21, 0x3d, 0xa4, 0xc3, 0x7f, 0x9d, 0x43, 0x99, 0x7e, 0x69, 0x05, + 0x72, 0xbe, 0x82, 0x1d, 0x0f, 0xff, 0x0d, 0x0e, 0xf7, 0xa3, 0x88, 0xe9, 0xbc, 0x60, 0xc7, 0x13, + 0xfc, 0xa6, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x47, 0xff, 0x96, 0xf0, 0xba, 0x80, + 0x94, 0x1e, 0x87, 0xac, 0x97, 0x7f, 0xe3, 0xf1, 0xbf, 0xcd, 0xf1, 0x5d, 0x0c, 0xf1, 0x80, 0x2f, + 0xff, 0xc7, 0x53, 0xfc, 0x8e, 0xf0, 0x80, 0x0f, 0x45, 0x8e, 0x51, 0xb8, 0xa6, 0xc7, 0x33, 0xfd, + 0xae, 0x38, 0x46, 0xa1, 0x92, 0x4e, 0x76, 0x93, 0xa6, 0xc1, 0x78, 0x8a, 0xdf, 0x13, 0xbb, 0x49, + 0xf5, 0x89, 0x19, 0xe1, 0x22, 0x19, 0xcf, 0xf1, 0xfb, 0xc2, 0x8c, 0x50, 0x8d, 0x2c, 0xed, 0x00, + 0xea, 0x2d, 0x90, 0xf1, 0x7c, 0xaf, 0x72, 0xbe, 0xc9, 0x9e, 0xfa, 0x58, 0x7a, 0x1a, 0x4e, 0x44, + 0x17, 0xc7, 0x78, 0xd6, 0x2f, 0x7c, 0x18, 0x7a, 0x9d, 0xf1, 0xd7, 0xc6, 0xd2, 0x6e, 0x37, 0xcb, + 0xfa, 0x0b, 0x63, 0x3c, 0xed, 0x6b, 0x1f, 0x06, 0x13, 0xad, 0xbf, 0x2e, 0x96, 0xca, 0x00, 0xdd, + 0x9a, 0x14, 0xcf, 0xf5, 0x3a, 0xe7, 0xf2, 0x81, 0xc8, 0xd1, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x45, + 0x71, 0x34, 0x38, 0x82, 0x1c, 0x0d, 0x51, 0x8d, 0xe2, 0xd1, 0x6f, 0x88, 0xa3, 0x21, 0x20, 0xa5, + 0x8b, 0x90, 0x31, 0x3b, 0xcd, 0x26, 0x89, 0x2d, 0x34, 0xf8, 0x33, 0xa2, 0xe2, 0xbf, 0x7e, 0xc4, + 0xc1, 0x02, 0x50, 0x3a, 0x07, 0x69, 0xdc, 0xda, 0xc7, 0xb5, 0x38, 0xe4, 0xbf, 0x7d, 0x24, 0xf2, + 0x09, 0xd1, 0x2e, 0x3d, 0x0e, 0xc0, 0x5e, 0xa6, 0xe9, 0xaf, 0x44, 0x31, 0xd8, 0x7f, 0xff, 0x88, + 0x7f, 0xa1, 0xd0, 0x85, 0x74, 0x09, 0xd8, 0xf7, 0x0e, 0x83, 0x09, 0xde, 0x0f, 0x12, 0xd0, 0x17, + 0xf0, 0x47, 0x60, 0xec, 0x79, 0xc7, 0x32, 0x5d, 0xad, 0x11, 0x87, 0xfe, 0x0f, 0x8e, 0x16, 0xfa, + 0xc4, 0x61, 0x2d, 0xcb, 0xc6, 0xae, 0xd6, 0x70, 0xe2, 0xb0, 0xff, 0xc9, 0xb1, 0x1e, 0x80, 0x80, + 0x75, 0xcd, 0x71, 0x87, 0x59, 0xf7, 0x7f, 0x09, 0xb0, 0x00, 0x10, 0xa3, 0xc9, 0xff, 0x57, 0xf1, + 0x61, 0x1c, 0xf6, 0x03, 0x61, 0x34, 0xd7, 0x2f, 0x3d, 0x0a, 0x59, 0xf2, 0x2f, 0xfb, 0x6a, 0x27, + 0x06, 0xfc, 0xdf, 0x1c, 0xdc, 0x45, 0x90, 0x99, 0x1d, 0xb7, 0xe6, 0x1a, 0xf1, 0xce, 0xfe, 0x1f, + 0xbe, 0xd3, 0x42, 0xbf, 0x54, 0x86, 0x9c, 0xe3, 0xd6, 0x6a, 0x1d, 0xde, 0xd1, 0xc4, 0xc0, 0x7f, + 0xfc, 0x91, 0xf7, 0x92, 0xeb, 0x61, 0x96, 0x4f, 0x47, 0x5f, 0xd6, 0xc1, 0x9a, 0xb5, 0x66, 0xb1, + 0x6b, 0x3a, 0xf8, 0xc9, 0xfd, 0x70, 0x5a, 0xb7, 0x5a, 0xfb, 0x96, 0xb3, 0xe8, 0x25, 0x92, 0xc5, + 0x96, 0xd6, 0x76, 0xa8, 0xf6, 0x12, 0xbf, 0x69, 0xcb, 0xf1, 0x27, 0x32, 0x30, 0x73, 0xbc, 0x5b, + 0xba, 0xb9, 0xdb, 0x60, 0xfc, 0x52, 0xd3, 0xd2, 0x5c, 0xc3, 0x6c, 0xec, 0x58, 0x86, 0xe9, 0xa2, + 0x3c, 0x48, 0x75, 0xfa, 0x13, 0x93, 0xa4, 0x48, 0xf5, 0xb9, 0x7f, 0x4a, 0x43, 0x96, 0x5d, 0xf0, + 0x6c, 0x6a, 0x6d, 0xf4, 0x0b, 0x90, 0xdf, 0xe2, 0x67, 0xe4, 0xc1, 0xa5, 0x0b, 0x8e, 0x77, 0x9b, + 0xec, 0x9b, 0x7f, 0xc1, 0xd3, 0x5e, 0xf0, 0xab, 0xd2, 0x9f, 0x94, 0x97, 0x1f, 0xf8, 0xc1, 0xdb, + 0x27, 0xef, 0xeb, 0x6b, 0x1f, 0x29, 0x8a, 0x8b, 0x2c, 0x98, 0x17, 0xf6, 0x0c, 0xd3, 0x7d, 0x70, + 0xe9, 0x82, 0x12, 0x98, 0x0f, 0x5d, 0x83, 0x0c, 0x1f, 0x70, 0xf8, 0xaf, 0x0c, 0x77, 0xf4, 0x99, + 0x5b, 0xa8, 0xb1, 0x79, 0xcf, 0xbe, 0xf5, 0xf6, 0xc9, 0x91, 0x63, 0xcf, 0xed, 0xcd, 0x85, 0x5e, + 0x80, 0x9c, 0xb0, 0x63, 0xbd, 0xe6, 0xf0, 0x8f, 0x89, 0xef, 0x8e, 0x59, 0xf6, 0x7a, 0x8d, 0xcf, + 0x7e, 0xd7, 0x0f, 0xde, 0x3e, 0x39, 0x37, 0x70, 0xe6, 0x85, 0xbd, 0x8e, 0x51, 0x53, 0xfc, 0x73, + 0xa0, 0xe7, 0x20, 0x49, 0xa6, 0x62, 0x9f, 0x1d, 0x9f, 0xec, 0x33, 0x95, 0x37, 0xc5, 0x19, 0xbe, + 0xc0, 0x61, 0xa6, 0x21, 0xbc, 0x33, 0x8f, 0xc3, 0x64, 0xcf, 0xf6, 0x20, 0x19, 0x92, 0x57, 0xf1, + 0x21, 0xff, 0xd2, 0x88, 0xfc, 0x8b, 0xa6, 0xbb, 0x5f, 0xd2, 0x49, 0xf3, 0x79, 0xfe, 0x79, 0x5c, + 0x29, 0x71, 0x41, 0x9a, 0xb9, 0x08, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x18, 0xc8, 0x61, 0x2f, + 0x1d, 0x0b, 0x7f, 0x1e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x7d, 0x04, 0x63, 0xe5, 0x66, 0x73, 0x53, + 0x6b, 0x3b, 0xe8, 0x19, 0x98, 0x64, 0xad, 0xfb, 0xae, 0xb5, 0x4a, 0x7f, 0xd7, 0xd9, 0xd4, 0xda, + 0x3c, 0xa0, 0xef, 0x0d, 0xb8, 0x9b, 0x03, 0x16, 0x7a, 0xb4, 0xe9, 0xfc, 0x4a, 0x2f, 0x0b, 0x7a, + 0x0a, 0x64, 0x21, 0xa4, 0x67, 0x8b, 0x30, 0xb3, 0x70, 0x3d, 0x33, 0x90, 0x59, 0x28, 0x33, 0xe2, + 0x1e, 0x0e, 0xf4, 0x18, 0x64, 0xd6, 0x4d, 0xf7, 0xa1, 0x25, 0xc2, 0xc7, 0x62, 0x70, 0x2e, 0x92, + 0x4f, 0x28, 0x31, 0x1e, 0x0f, 0xc3, 0xf1, 0xe7, 0xcf, 0x12, 0x7c, 0x6a, 0x30, 0x9e, 0x2a, 0x75, + 0xf1, 0xf4, 0x11, 0x95, 0x21, 0x4b, 0xf6, 0x9c, 0x19, 0xc0, 0xbe, 0x63, 0xbf, 0x3d, 0x92, 0xc0, + 0xd3, 0x62, 0x0c, 0x5d, 0x94, 0xa0, 0x60, 0x36, 0x8c, 0xc6, 0x50, 0xf8, 0x8c, 0xe8, 0xa2, 0x08, + 0x45, 0xd5, 0xb3, 0x62, 0x6c, 0x00, 0x45, 0x35, 0x64, 0x45, 0xd5, 0x6f, 0x45, 0xd5, 0xb3, 0x22, + 0x13, 0x43, 0xe1, 0xb7, 0xc2, 0x7b, 0x46, 0xab, 0x00, 0x97, 0x8c, 0x97, 0x70, 0x8d, 0x99, 0x91, + 0x8d, 0x48, 0x46, 0x82, 0xa3, 0xab, 0xc6, 0x48, 0x7c, 0x38, 0xb4, 0x06, 0xb9, 0x6a, 0xbd, 0x4b, + 0x03, 0xfc, 0x33, 0xfe, 0x48, 0x53, 0xea, 0x21, 0x1e, 0x3f, 0xd2, 0x33, 0x87, 0x2d, 0x29, 0x17, + 0x67, 0x8e, 0x6f, 0x4d, 0x3e, 0x5c, 0xd7, 0x1c, 0x46, 0x93, 0x8f, 0x35, 0xc7, 0xc7, 0xe3, 0x47, + 0xa2, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x44, 0xb3, 0x38, 0x4e, 0x49, 0x4e, 0x47, 0x92, 0x70, 0x1d, + 0x46, 0x20, 0x10, 0x74, 0x77, 0x68, 0xe8, 0x13, 0x78, 0x61, 0xd0, 0xee, 0x08, 0x2d, 0xb1, 0x3b, + 0xe2, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x4c, 0xda, 0xe4, 0xe2, 0xc4, 0x10, 0x27, 0x50, 0x28, + 0x87, 0x4e, 0xa0, 0x10, 0xa3, 0x2a, 0x4c, 0x08, 0x59, 0xc5, 0xec, 0x90, 0x1c, 0x5c, 0x94, 0xf9, + 0x37, 0xc6, 0x83, 0x68, 0xb9, 0x2e, 0x63, 0x0d, 0x33, 0xa0, 0x1d, 0x28, 0x08, 0xd1, 0xa6, 0x43, + 0x17, 0x3d, 0x19, 0x51, 0x57, 0xc3, 0x9c, 0x4c, 0x95, 0x51, 0x86, 0xf0, 0x33, 0xab, 0x70, 0x22, + 0x3a, 0x5b, 0xc5, 0x65, 0x4b, 0xc9, 0x9f, 0x65, 0x57, 0xe0, 0xa6, 0xc8, 0xcc, 0x14, 0x47, 0x92, + 0x08, 0xd5, 0x89, 0x40, 0x3a, 0xf2, 0x83, 0xd3, 0x11, 0xe0, 0x74, 0x2f, 0xb8, 0x1b, 0x64, 0x7e, + 0x70, 0x32, 0x02, 0x9c, 0xf4, 0x83, 0x3f, 0x0b, 0x85, 0x60, 0x1e, 0xf2, 0xa3, 0xc7, 0x23, 0xd0, + 0xe3, 0x11, 0xe8, 0xe8, 0xb9, 0x53, 0x11, 0xe8, 0x54, 0x08, 0x5d, 0xed, 0x3b, 0xf7, 0x64, 0x04, + 0x7a, 0x32, 0x02, 0x1d, 0x3d, 0x37, 0x8a, 0x40, 0x23, 0x3f, 0xfa, 0x51, 0x98, 0x08, 0xa5, 0x1c, + 0x3f, 0x7c, 0x2c, 0x02, 0x3e, 0x16, 0xaa, 0xcd, 0xe1, 0x54, 0xe3, 0xc7, 0x4f, 0x44, 0xe0, 0x27, + 0xa2, 0xa6, 0x8f, 0xb6, 0x7e, 0x34, 0x02, 0x3e, 0x1a, 0x39, 0x7d, 0x34, 0x5e, 0x8e, 0xc0, 0xcb, + 0x7e, 0x7c, 0x09, 0xf2, 0xfe, 0xac, 0xe2, 0xc7, 0x66, 0x22, 0xb0, 0x99, 0xb0, 0xdf, 0x03, 0x29, + 0x25, 0x2e, 0xd2, 0xb3, 0x7d, 0x8e, 0x4b, 0x20, 0x8d, 0x1c, 0xab, 0xb3, 0xb9, 0x02, 0xd3, 0x51, + 0x49, 0x23, 0x82, 0xe3, 0x8c, 0x9f, 0xa3, 0xb0, 0x34, 0x1d, 0x48, 0x16, 0x14, 0xd7, 0x69, 0xf9, + 0x99, 0x9f, 0x83, 0xa9, 0x88, 0xd4, 0x11, 0x41, 0xfc, 0x80, 0x9f, 0x38, 0xb7, 0x34, 0x13, 0x20, + 0x0e, 0xbc, 0x2b, 0xf8, 0x5b, 0xab, 0x1f, 0x4e, 0x41, 0x81, 0xa7, 0xa8, 0x6d, 0xbb, 0x86, 0x6d, + 0x5c, 0x43, 0xff, 0xbf, 0x7f, 0x87, 0xb5, 0x14, 0x95, 0xda, 0x38, 0xee, 0x18, 0x8d, 0xd6, 0x73, + 0x7d, 0x1b, 0xad, 0x07, 0x87, 0x99, 0x20, 0xae, 0xdf, 0xaa, 0xf4, 0xf4, 0x5b, 0xf7, 0x0c, 0xa2, + 0xed, 0xd7, 0x76, 0x55, 0x7a, 0xda, 0xae, 0x38, 0x9a, 0xc8, 0xee, 0xeb, 0x72, 0x6f, 0xf7, 0x75, + 0x66, 0x10, 0x4f, 0xff, 0x26, 0xec, 0x72, 0x6f, 0x13, 0x16, 0xcb, 0x14, 0xdd, 0x8b, 0x5d, 0xee, + 0xed, 0xc5, 0x06, 0x32, 0xf5, 0x6f, 0xc9, 0x2e, 0xf7, 0xb6, 0x64, 0xb1, 0x4c, 0xd1, 0x9d, 0xd9, + 0x93, 0x11, 0x9d, 0xd9, 0xbd, 0x83, 0xa8, 0x06, 0x35, 0x68, 0x5b, 0x51, 0x0d, 0xda, 0x7d, 0x03, + 0x0d, 0x1b, 0xd8, 0xa7, 0x3d, 0x19, 0xd1, 0xa7, 0xc5, 0x1b, 0xd7, 0xa7, 0x5d, 0xdb, 0x8a, 0x6a, + 0xd7, 0x86, 0x30, 0xae, 0x5f, 0xd7, 0xb6, 0x1c, 0xee, 0xda, 0xe6, 0x07, 0x71, 0x45, 0x37, 0x6f, + 0x97, 0x7b, 0x9b, 0xb7, 0x33, 0xf1, 0x67, 0x31, 0xaa, 0x87, 0x7b, 0xae, 0x6f, 0x0f, 0x37, 0xd4, + 0xe1, 0x8e, 0x6b, 0xe5, 0x9e, 0xed, 0xd7, 0xca, 0x3d, 0x30, 0x0c, 0xfb, 0xe0, 0x8e, 0xee, 0xe9, + 0x3e, 0x1d, 0xdd, 0xe2, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, + 0x36, 0x76, 0xff, 0x37, 0x1a, 0xbb, 0x52, 0xea, 0xd5, 0x2f, 0x9d, 0x94, 0xce, 0x9c, 0x86, 0x31, + 0x3e, 0x35, 0x1a, 0x85, 0xc4, 0x66, 0x59, 0x1e, 0xa1, 0x7f, 0x97, 0x65, 0x89, 0xfe, 0x5d, 0x91, + 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x98, 0x1d, 0xf9, 0xee, 0x8d, 0xd9, 0x91, 0xef, 0xdf, 0x98, 0x1d, + 0x79, 0xe7, 0xc6, 0xac, 0xf4, 0xde, 0x8d, 0x59, 0xe9, 0x83, 0x1b, 0xb3, 0xd2, 0x4f, 0x6f, 0xcc, + 0x4a, 0xd7, 0x8f, 0x66, 0xa5, 0xaf, 0x1c, 0xcd, 0x4a, 0x5f, 0x3f, 0x9a, 0x95, 0xbe, 0x75, 0x34, + 0x2b, 0x7d, 0xfb, 0x68, 0x56, 0x7a, 0xeb, 0x68, 0x56, 0xfa, 0xee, 0xd1, 0xec, 0xc8, 0x3b, 0x47, + 0xb3, 0xd2, 0x7b, 0x47, 0xb3, 0x23, 0x1f, 0x1c, 0xcd, 0x4a, 0x3f, 0x3d, 0x9a, 0x1d, 0xb9, 0xfe, + 0xa3, 0xd9, 0x91, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x91, 0x69, 0xdc, 0x1d, 0x56, 0x45, 0x00, + 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -516,6 +565,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1204,6 +1377,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1457,6 +1671,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1931,367 +2209,484 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) + return dAtA[:n], nil +} + +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.F != nil { + dAtA[i] = 0x9 + i++ + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(*m.F)))) } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } - s += strings.Join(ss, ",") + "}" - return s + return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { + +func (m *CustomMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *CustomMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if m.F != nil { - data[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(*m.F)))) + if len(m.Nullable128S) > 0 { + for k := range m.Nullable128S { + dAtA[i] = 0xa + i++ + v := m.Nullable128S[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + if len(m.Uint128S) > 0 { + for k := range m.Uint128S { + dAtA[i] = 0x12 + i++ + v := m.Uint128S[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n2, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + } + if len(m.NullableIds) > 0 { + for k := range m.NullableIds { + dAtA[i] = 0x1a + i++ + v := m.NullableIds[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n3, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + } + } + if len(m.Ids) > 0 { + for k := range m.Ids { + dAtA[i] = 0x22 + i++ + v := m.Ids[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n5, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 } - i += n1 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -2303,18 +2698,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -2324,18 +2719,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -2345,17 +2740,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -2365,17 +2760,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -2385,17 +2780,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -2405,17 +2800,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -2425,17 +2820,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -2445,17 +2840,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -2465,17 +2860,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -2485,17 +2880,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -2505,17 +2900,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -2525,17 +2920,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -2545,25 +2940,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -2575,19 +2970,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -2597,19 +2992,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -2619,20 +3020,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -2642,62 +3043,65 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Mapsproto2(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Mapsproto2(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Mapsproto2(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Mapsproto2(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintMapsproto2(data []byte, offset int, v uint64) int { +func encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { @@ -2715,166 +3119,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2887,163 +3327,163 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} if r.Intn(10) != 0 { - v34 := r.Intn(10) + v38 := r.Intn(10) this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) + for i := 0; i < v38; i++ { + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { - v36 := r.Intn(10) + v40 := r.Intn(10) this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) + for i := 0; i < v40; i++ { + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { - v38 := r.Intn(10) + v42 := r.Intn(10) this.Int32Map = make(map[int32]int32) - for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + for i := 0; i < v42; i++ { + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.Int32Map[v43] *= -1 } } } if r.Intn(10) != 0 { - v40 := r.Intn(10) + v44 := r.Intn(10) this.Int64Map = make(map[int64]int64) - for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + for i := 0; i < v44; i++ { + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.Int64Map[v45] *= -1 } } } if r.Intn(10) != 0 { - v42 := r.Intn(10) + v46 := r.Intn(10) this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + for i := 0; i < v46; i++ { + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v44 := r.Intn(10) + v48 := r.Intn(10) this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + for i := 0; i < v48; i++ { + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v46 := r.Intn(10) + v50 := r.Intn(10) this.Sint32Map = make(map[int32]int32) - for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) + for i := 0; i < v50; i++ { + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 + this.Sint32Map[v51] *= -1 } } } if r.Intn(10) != 0 { - v48 := r.Intn(10) + v52 := r.Intn(10) this.Sint64Map = make(map[int64]int64) - for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) + for i := 0; i < v52; i++ { + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { - v50 := r.Intn(10) + v54 := r.Intn(10) this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + for i := 0; i < v54; i++ { + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v52 := r.Intn(10) + v56 := r.Intn(10) this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + for i := 0; i < v56; i++ { + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { - v54 := r.Intn(10) + v58 := r.Intn(10) this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + for i := 0; i < v58; i++ { + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v56 := r.Intn(10) + v60 := r.Intn(10) this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed64Map[v61] *= -1 } } } if r.Intn(10) != 0 { - v58 := r.Intn(10) + v62 := r.Intn(10) this.BoolMap = make(map[bool]bool) - for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) } } if r.Intn(10) != 0 { - v60 := r.Intn(10) + v64 := r.Intn(10) this.StringMap = make(map[string]string) - for i := 0; i < v60; i++ { + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -3072,14 +3512,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3087,43 +3527,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -3137,6 +3577,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -3256,7 +3753,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3275,8 +3776,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3405,7 +3907,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3424,8 +3930,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -3459,6 +3966,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3862,67 +4423,80 @@ func valueToStringMapsproto2(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 969 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xcd, 0x4f, 0xe3, 0x46, - 0x18, 0xc6, 0x71, 0xbe, 0x33, 0xf9, 0x72, 0x06, 0x5a, 0x45, 0x91, 0x9a, 0x96, 0xb4, 0x95, 0x42, - 0x68, 0x13, 0x9a, 0x56, 0x55, 0x05, 0x2d, 0x12, 0x81, 0xd0, 0x54, 0x14, 0x8a, 0x48, 0xbf, 0x25, - 0xa4, 0x26, 0xc5, 0x09, 0xd1, 0x26, 0x31, 0x8a, 0x9d, 0xd5, 0x72, 0xe3, 0xcf, 0xd8, 0xeb, 0xde, - 0xf6, 0xb8, 0xc7, 0x3d, 0xee, 0x91, 0x23, 0x47, 0x0e, 0x7b, 0x58, 0xd8, 0x0b, 0x47, 0x8e, 0x1c, - 0x77, 0x3c, 0x63, 0x3b, 0x63, 0xfb, 0xb5, 0x9d, 0xbd, 0xed, 0x21, 0x87, 0xd1, 0x64, 0x86, 0xf7, - 0xf9, 0xcd, 0x63, 0xec, 0x79, 0xf5, 0xa0, 0xe5, 0xff, 0xe5, 0x61, 0x47, 0x56, 0xaa, 0xc3, 0xf6, - 0x58, 0x39, 0x6d, 0x0f, 0xa4, 0x31, 0xf9, 0x75, 0xa6, 0x9c, 0x8d, 0x65, 0x55, 0xae, 0x55, 0xe8, - 0x84, 0x13, 0xfa, 0x4a, 0xfb, 0x43, 0xfe, 0xeb, 0x5e, 0x5f, 0x3d, 0x9d, 0x74, 0x2a, 0x44, 0x56, - 0xed, 0xc9, 0x3d, 0xb9, 0x4a, 0xff, 0xd8, 0x99, 0x74, 0xe9, 0x8a, 0x2e, 0xe8, 0x2f, 0xa6, 0x2d, - 0x7e, 0x82, 0x52, 0xbb, 0x03, 0xb9, 0xad, 0xf6, 0x47, 0xbd, 0x43, 0xb9, 0x3f, 0x52, 0x71, 0x12, - 0x09, 0xdd, 0x9c, 0xf0, 0x99, 0x50, 0x12, 0x8e, 0x84, 0x6e, 0xf1, 0x1a, 0xa3, 0xe8, 0xd6, 0x60, - 0xb0, 0x4f, 0xc8, 0xf8, 0x1f, 0x94, 0x6d, 0xa9, 0x63, 0x52, 0xf8, 0xbb, 0xbc, 0x23, 0x4f, 0x3a, - 0x03, 0x89, 0xec, 0x92, 0xca, 0x60, 0x29, 0x51, 0x5b, 0xad, 0x70, 0x16, 0x2a, 0xba, 0xa0, 0xe2, - 0xa8, 0x6e, 0x8c, 0xd4, 0xf1, 0xf9, 0x51, 0x56, 0xb1, 0xef, 0xe3, 0x3f, 0x91, 0x68, 0x14, 0x53, - 0x37, 0x1a, 0x39, 0x40, 0xc9, 0x65, 0x4f, 0xb2, 0x51, 0xcc, 0xc0, 0xa2, 0x62, 0xdb, 0xc6, 0x9b, - 0x28, 0xf6, 0xcb, 0x48, 0xfd, 0xb6, 0xa6, 0xf1, 0x82, 0x94, 0x57, 0x04, 0x79, 0x46, 0x11, 0xe3, - 0xc4, 0xfa, 0xfa, 0x52, 0xd7, 0x7f, 0xff, 0x9d, 0xa6, 0x0f, 0x79, 0xeb, 0x69, 0xd1, 0x54, 0x4f, - 0x97, 0x78, 0x0b, 0xc5, 0xff, 0x30, 0x60, 0xb9, 0x30, 0x05, 0x7c, 0x0e, 0x02, 0xcc, 0x2a, 0x46, - 0x88, 0x4f, 0x4c, 0x0b, 0x3a, 0x82, 0x79, 0x88, 0xf8, 0x20, 0x38, 0x13, 0x14, 0x61, 0xba, 0x68, - 0x99, 0x2e, 0xa2, 0x1e, 0x88, 0x96, 0xcd, 0x85, 0xc2, 0xbb, 0x68, 0x99, 0x2e, 0x62, 0x3e, 0x08, - 0xde, 0x85, 0x62, 0xba, 0xd8, 0x41, 0x68, 0xb7, 0xff, 0x44, 0x3a, 0x61, 0x36, 0xe2, 0x94, 0xf1, - 0x05, 0xc8, 0x98, 0x96, 0x31, 0x08, 0xea, 0x9a, 0x1b, 0xf8, 0x67, 0x94, 0x68, 0x4d, 0x97, 0x39, - 0x44, 0x31, 0x5f, 0xc2, 0x56, 0xba, 0x36, 0x4e, 0x42, 0xe1, 0x40, 0x86, 0x1d, 0xf6, 0x48, 0x09, - 0x3f, 0x3b, 0xdc, 0x33, 0x31, 0x3b, 0xec, 0xa1, 0x4c, 0x3b, 0x0c, 0x93, 0xf4, 0xb5, 0xc3, 0x71, - 0x74, 0x3b, 0x0c, 0xb4, 0x81, 0xa2, 0x75, 0x59, 0xd6, 0x2a, 0x73, 0x29, 0x0a, 0x59, 0x06, 0x21, - 0x7a, 0x0d, 0x03, 0x44, 0x3b, 0x6c, 0x45, 0xdf, 0x0e, 0xfd, 0xf4, 0x35, 0x79, 0xda, 0xeb, 0xed, - 0x18, 0x55, 0xc6, 0xdb, 0x31, 0xd6, 0xfc, 0x0d, 0xac, 0x9f, 0xab, 0x92, 0xa2, 0x91, 0x32, 0x33, - 0xdc, 0x40, 0xa3, 0xd8, 0x76, 0x03, 0x8d, 0x6d, 0xdc, 0x42, 0x19, 0xa3, 0xb4, 0x31, 0x9a, 0x0c, - 0x35, 0xac, 0x48, 0xb1, 0x2b, 0x9e, 0x58, 0xbd, 0x96, 0x51, 0x33, 0x8a, 0x75, 0x17, 0x1f, 0xa2, - 0xb4, 0x51, 0xb8, 0xaf, 0xd0, 0x87, 0xce, 0x52, 0x66, 0xc9, 0x93, 0xc9, 0x4a, 0x19, 0x32, 0xad, - 0x58, 0x36, 0xf3, 0x3b, 0xe8, 0x63, 0xb8, 0x5b, 0x61, 0x11, 0x05, 0x1f, 0x49, 0xe7, 0xb4, 0x23, - 0xc6, 0x8f, 0xb4, 0x9f, 0x78, 0x09, 0x85, 0x1f, 0xb7, 0x07, 0x13, 0x89, 0x74, 0x28, 0xad, 0x4b, - 0xb2, 0xc5, 0x7a, 0xe0, 0x07, 0x21, 0xbf, 0x8d, 0x3e, 0x02, 0x3b, 0x93, 0x1f, 0x24, 0xc0, 0x43, - 0x36, 0x50, 0xca, 0xd2, 0x8e, 0x78, 0x71, 0x18, 0x10, 0x87, 0x9d, 0xe2, 0xe9, 0x47, 0xc6, 0x8b, - 0x83, 0x80, 0x38, 0xc8, 0x8b, 0x7f, 0x44, 0x69, 0x6b, 0x1f, 0xe2, 0xd5, 0x29, 0x40, 0x9d, 0x02, - 0xd4, 0xf0, 0xd9, 0x21, 0x40, 0x1d, 0xb2, 0xa9, 0x5b, 0xae, 0x67, 0x67, 0x01, 0x75, 0x16, 0x50, - 0xc3, 0x67, 0x63, 0x40, 0x8d, 0x79, 0xf5, 0x4f, 0x28, 0x63, 0x6b, 0x39, 0xbc, 0x3c, 0x0a, 0xc8, - 0xa3, 0xbc, 0x7c, 0x93, 0x5c, 0x9d, 0xae, 0xbb, 0x3e, 0x03, 0xe8, 0x33, 0xd0, 0xf1, 0xb0, 0xfb, - 0x08, 0x20, 0x8f, 0x80, 0xc7, 0xc3, 0x7a, 0x11, 0xd0, 0x8b, 0xbc, 0x7e, 0x1d, 0x25, 0xf9, 0xae, - 0xc2, 0x6b, 0x63, 0x80, 0x36, 0x66, 0xff, 0xbf, 0x5b, 0x5a, 0x8a, 0xdf, 0x97, 0x1e, 0x77, 0xb9, - 0x2e, 0x96, 0x36, 0xe2, 0x07, 0x49, 0xf2, 0x90, 0xbf, 0xd1, 0x12, 0xd4, 0x34, 0x00, 0x46, 0x99, - 0x67, 0xa4, 0x6b, 0x4b, 0x96, 0x66, 0x41, 0x75, 0x93, 0x21, 0x4f, 0x3e, 0x46, 0x8b, 0x40, 0xeb, - 0x00, 0xc0, 0x6b, 0x3c, 0x38, 0x51, 0xcb, 0x5b, 0xc0, 0x96, 0x74, 0xc5, 0xe1, 0x8b, 0xaf, 0x17, - 0x51, 0x5a, 0x6f, 0x51, 0xbf, 0x8d, 0x4f, 0xa4, 0xb1, 0x74, 0x82, 0xff, 0x73, 0x4f, 0x58, 0x35, - 0xa8, 0xb5, 0xe9, 0xba, 0xf7, 0x08, 0x5a, 0xc7, 0xae, 0x41, 0xeb, 0x9b, 0x59, 0x0e, 0xf0, 0xcb, - 0x5b, 0x0d, 0x47, 0xde, 0x5a, 0xf1, 0xc2, 0xba, 0xc5, 0xae, 0x86, 0x23, 0x76, 0xf9, 0x61, 0xc0, - 0xf4, 0xd5, 0x74, 0xa6, 0xaf, 0xb2, 0x17, 0xc7, 0x3d, 0x84, 0x35, 0x9d, 0x21, 0xcc, 0x97, 0x04, - 0x67, 0xb1, 0xa6, 0x33, 0x8b, 0x79, 0x92, 0xdc, 0x23, 0x59, 0xd3, 0x19, 0xc9, 0x7c, 0x49, 0x70, - 0x32, 0xdb, 0x03, 0x92, 0xd9, 0xaa, 0x17, 0xca, 0x2b, 0xa0, 0x1d, 0x40, 0x01, 0xed, 0x2b, 0x4f, - 0x63, 0x9e, 0x39, 0x6d, 0x0f, 0xc8, 0x69, 0xfe, 0xe6, 0x5c, 0xe2, 0xda, 0x01, 0x14, 0xd7, 0x66, - 0x30, 0xe7, 0x96, 0xda, 0xea, 0xf6, 0xd4, 0x56, 0xf2, 0x62, 0xc1, 0xe1, 0xad, 0xe9, 0x0c, 0x6f, - 0x65, 0xff, 0xbb, 0x08, 0x65, 0xb8, 0x63, 0xd7, 0x0c, 0x37, 0xd3, 0xe5, 0xf6, 0x8b, 0x72, 0xff, - 0xba, 0x45, 0xb9, 0xb5, 0x59, 0xe8, 0xde, 0x89, 0xee, 0x2f, 0x97, 0x44, 0x57, 0x9d, 0x05, 0x3d, - 0x0f, 0x76, 0xf3, 0x60, 0x37, 0x0f, 0x76, 0xf3, 0x60, 0xf7, 0x61, 0x04, 0xbb, 0xf5, 0xd0, 0xd3, - 0x67, 0x9f, 0x0a, 0xe5, 0x65, 0x14, 0xd5, 0x8f, 0xc6, 0x11, 0x14, 0xd8, 0xdf, 0x12, 0x17, 0xe8, - 0x5c, 0x17, 0x05, 0x3a, 0x6f, 0x8b, 0x81, 0xfa, 0xaf, 0x97, 0x37, 0x85, 0x85, 0x2b, 0x32, 0xae, - 0xc9, 0x78, 0x73, 0x53, 0x10, 0xee, 0xc8, 0xb8, 0x27, 0xe3, 0x81, 0x8c, 0x8b, 0xdb, 0x82, 0xf0, - 0x9c, 0x8c, 0x17, 0x64, 0xbc, 0x24, 0xe3, 0x15, 0x19, 0x97, 0x64, 0x5c, 0xdd, 0x92, 0x5a, 0x32, - 0xdf, 0x91, 0xf9, 0x9e, 0xcc, 0x0f, 0x64, 0xbe, 0x78, 0x5b, 0x58, 0x78, 0x17, 0x00, 0x00, 0xff, - 0xff, 0x0d, 0x6b, 0x00, 0x44, 0x29, 0x14, 0x00, 0x00, + // 1148 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47, + 0x18, 0xc6, 0x19, 0x30, 0x06, 0x86, 0xef, 0x89, 0x5b, 0x21, 0xa4, 0x0e, 0x36, 0xfd, 0x22, 0x24, + 0x05, 0x9b, 0x46, 0x91, 0xe5, 0xb4, 0xa9, 0x8c, 0xed, 0x14, 0x2b, 0xc5, 0x8d, 0xa0, 0xe9, 0x97, + 0x64, 0xa9, 0x60, 0x16, 0x82, 0x0a, 0x2c, 0x65, 0x97, 0xa8, 0xbe, 0x54, 0xf9, 0x33, 0x7a, 0xed, + 0xad, 0xc7, 0x1e, 0x7b, 0xec, 0xd1, 0x52, 0x2f, 0x39, 0x46, 0x51, 0x65, 0x85, 0xed, 0x25, 0xc7, + 0x1c, 0x73, 0xac, 0x76, 0x76, 0x17, 0x66, 0x77, 0xdf, 0xdd, 0x85, 0x9e, 0x72, 0xf0, 0x09, 0xcf, + 0xf2, 0x3e, 0xbf, 0xe7, 0xdd, 0xdd, 0x99, 0x97, 0xc7, 0x78, 0xeb, 0x4c, 0x1c, 0xb6, 0x45, 0xa9, + 0x3c, 0x6c, 0x4d, 0xa4, 0x47, 0xad, 0x81, 0x30, 0x29, 0x0f, 0x5b, 0x63, 0x69, 0x3c, 0x11, 0x65, + 0xb1, 0x52, 0x62, 0x1f, 0x24, 0xaa, 0xaf, 0xd4, 0x2f, 0xb2, 0x1f, 0xf5, 0xfa, 0xf2, 0xa3, 0x69, + 0xbb, 0x74, 0x26, 0x0e, 0xcb, 0x3d, 0xb1, 0x27, 0x96, 0xd9, 0x97, 0xed, 0x69, 0x97, 0xad, 0xd8, + 0x82, 0xfd, 0xa5, 0x69, 0xf3, 0xef, 0xe0, 0xf8, 0xbd, 0x81, 0xd8, 0x92, 0xfb, 0xa3, 0xde, 0x03, + 0xb1, 0x3f, 0x92, 0x49, 0x0c, 0xa3, 0x6e, 0x06, 0x6d, 0xa2, 0x02, 0x6a, 0xa0, 0x6e, 0xfe, 0xef, + 0x20, 0x8e, 0x1c, 0x4c, 0x25, 0x59, 0x1c, 0xd6, 0x5b, 0x63, 0xf2, 0x0b, 0x8e, 0x9d, 0x4c, 0x07, + 0x83, 0x56, 0x7b, 0x20, 0xec, 0x54, 0x76, 0xa5, 0x0c, 0xda, 0x0c, 0x14, 0xa2, 0x95, 0x42, 0x89, + 0xf3, 0x2f, 0xcd, 0xab, 0x4b, 0x7c, 0xe9, 0xd1, 0x48, 0x9e, 0x9c, 0x57, 0xb7, 0x9f, 0x5f, 0xe6, + 0x6e, 0x3a, 0xf6, 0x27, 0x0b, 0x92, 0x5c, 0x3e, 0x63, 0xf2, 0xd2, 0xc3, 0xfe, 0x48, 0xde, 0xa9, + 0xec, 0x36, 0x4c, 0x7e, 0xe4, 0x31, 0x0e, 0xeb, 0x5f, 0x48, 0x19, 0x3f, 0xf3, 0x7e, 0xcf, 0xc1, + 0xdb, 0x28, 0xd3, 0x7c, 0x6f, 0x5d, 0x5c, 0xe6, 0x7c, 0x2b, 0x7b, 0xcf, 0xbd, 0xc8, 0x4f, 0x38, + 0x6a, 0xf4, 0x71, 0xdc, 0x91, 0x32, 0x01, 0x66, 0xfd, 0xa1, 0xc7, 0x6d, 0x1f, 0x77, 0x74, 0xf7, + 0x0f, 0x9e, 0x5f, 0xe6, 0xf2, 0xae, 0xce, 0xa5, 0x87, 0xd3, 0x7e, 0xa7, 0xc1, 0x7b, 0x90, 0x53, + 0x1c, 0x50, 0xad, 0xd6, 0x98, 0x55, 0xce, 0xc1, 0x6a, 0x6e, 0x51, 0xd4, 0x6f, 0x70, 0x19, 0x1b, + 0x95, 0x9b, 0xfd, 0x0c, 0xa7, 0x6d, 0xaf, 0x87, 0xa4, 0x70, 0xe0, 0x47, 0xe1, 0x9c, 0xbd, 0xfc, + 0x48, 0x43, 0xfd, 0x93, 0x6c, 0xe0, 0xe0, 0xe3, 0xd6, 0x60, 0x2a, 0x64, 0xfc, 0x9b, 0xa8, 0x10, + 0x6b, 0x68, 0x8b, 0x3d, 0xff, 0x2e, 0xca, 0xde, 0xc1, 0x71, 0xd3, 0x33, 0x5e, 0x49, 0x7c, 0x17, + 0xa7, 0xac, 0x4f, 0x69, 0x25, 0xfd, 0x6d, 0x1c, 0xfe, 0x3f, 0xba, 0xfc, 0x33, 0x82, 0x43, 0xfb, + 0x83, 0x41, 0xbd, 0x35, 0x96, 0xc8, 0x77, 0x38, 0xdd, 0x94, 0x27, 0xfd, 0x51, 0xef, 0x2b, 0xf1, + 0x50, 0x9c, 0xb6, 0x07, 0x42, 0xbd, 0x35, 0xd6, 0x37, 0xf4, 0x0d, 0xd3, 0xe3, 0xd6, 0x05, 0x25, + 0x5b, 0x35, 0xf3, 0x6f, 0xd8, 0x29, 0xe4, 0x6b, 0x9c, 0x32, 0x2e, 0xb2, 0xb3, 0xa5, 0x92, 0xb5, + 0xed, 0x5a, 0x74, 0x25, 0x1b, 0xc5, 0x1a, 0xd8, 0xc6, 0x20, 0x77, 0x71, 0xf8, 0x78, 0x24, 0x7f, + 0x5c, 0x51, 0x79, 0xda, 0x1e, 0xcc, 0x83, 0x3c, 0xa3, 0x48, 0xe3, 0xcc, 0x35, 0xba, 0xfe, 0xf6, + 0x2d, 0x55, 0xbf, 0xe6, 0xae, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x7d, 0x1c, 0x51, 0xdf, 0xb9, + 0xd6, 0x40, 0x90, 0x01, 0xde, 0x05, 0x01, 0xf3, 0x2a, 0x8d, 0xb0, 0x50, 0x19, 0x08, 0xad, 0x87, + 0x75, 0x0f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x22, 0x9a, 0xf3, 0x2e, 0x42, 0x2e, 0x88, 0xa6, 0xa5, + 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x03, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c, + 0xef, 0xf5, 0x7f, 0x16, 0x3a, 0x5a, 0x1b, 0x11, 0x60, 0x18, 0x19, 0x8c, 0x45, 0x99, 0x06, 0xe1, + 0x74, 0xe4, 0x73, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc3, 0xad, 0x74, 0x2d, 0x1c, + 0x5e, 0x39, 0x6f, 0x47, 0xbb, 0xa5, 0xa8, 0x57, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x1a, + 0x26, 0xe6, 0xd9, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x0e, 0x0e, 0x55, 0x45, 0x51, 0xad, 0xcc, 0xc4, + 0x19, 0x64, 0x0b, 0x84, 0xe8, 0x35, 0x1a, 0xc0, 0x50, 0xb0, 0xb7, 0xc3, 0xb6, 0xbe, 0x2a, 0x4f, + 0xb8, 0xbd, 0x1d, 0xa3, 0xca, 0x78, 0x3b, 0xc6, 0x9a, 0x3f, 0x81, 0xd5, 0x73, 0x59, 0x90, 0x54, + 0x52, 0x72, 0x89, 0x13, 0x68, 0x14, 0x5b, 0x4e, 0xa0, 0x71, 0x99, 0x34, 0x71, 0xd2, 0xb8, 0x76, + 0x34, 0x9a, 0xaa, 0x33, 0x38, 0x93, 0x62, 0xd8, 0xeb, 0xae, 0x58, 0xbd, 0x56, 0xa3, 0x5a, 0x09, + 0xe4, 0x01, 0x4e, 0x18, 0x97, 0xea, 0x12, 0xbb, 0xe9, 0x34, 0xf0, 0xbb, 0x6a, 0x65, 0x6a, 0xa5, + 0x1a, 0xd2, 0xa2, 0xcf, 0x1e, 0xe2, 0xb7, 0xe1, 0x69, 0xe5, 0x35, 0x2d, 0x11, 0x3f, 0x65, 0x0f, + 0xf0, 0x5b, 0xe0, 0x64, 0xf2, 0x82, 0xf8, 0x2d, 0xbf, 0x13, 0xa6, 0x71, 0xc4, 0x8b, 0x83, 0x80, + 0x38, 0x68, 0x17, 0x2f, 0x36, 0x19, 0x2f, 0x0e, 0x00, 0xe2, 0x00, 0x2f, 0xfe, 0x04, 0x27, 0xcc, + 0x73, 0x88, 0x57, 0xc7, 0x01, 0x75, 0x1c, 0x50, 0xc3, 0xde, 0x6b, 0x80, 0x7a, 0xcd, 0xa2, 0x6e, + 0x3a, 0x7a, 0xa7, 0x01, 0x75, 0x1a, 0x50, 0xc3, 0xde, 0x04, 0x50, 0x13, 0x5e, 0xfd, 0x29, 0x4e, + 0x5a, 0x46, 0x0e, 0x2f, 0x0f, 0x01, 0xf2, 0x90, 0xe5, 0xb7, 0xd9, 0x3a, 0x6a, 0x78, 0x7d, 0x12, + 0xd0, 0x27, 0x21, 0x7b, 0xb8, 0xfb, 0x75, 0x40, 0xbe, 0x0e, 0xda, 0xc3, 0xfa, 0x14, 0xa0, 0x4f, + 0xf1, 0xfa, 0x3d, 0x1c, 0xe3, 0xa7, 0x0a, 0xaf, 0x0d, 0x03, 0xda, 0xb0, 0xf5, 0xb9, 0x9b, 0x46, + 0x8a, 0xd7, 0x4e, 0x8f, 0x38, 0x1c, 0x17, 0xd3, 0x18, 0x59, 0x29, 0xd9, 0x7c, 0x8b, 0x37, 0xa0, + 0xa1, 0x01, 0x30, 0x8a, 0x3c, 0x23, 0x51, 0xd9, 0x30, 0x0d, 0x0b, 0xa6, 0x9b, 0x0e, 0x79, 0xf2, + 0x29, 0xbe, 0x06, 0x8c, 0x0e, 0x00, 0xbc, 0xcd, 0x83, 0xa3, 0x95, 0xac, 0x09, 0x6c, 0xfa, 0x5f, + 0x81, 0x8f, 0x56, 0xff, 0x5c, 0xc3, 0x09, 0x7d, 0x44, 0x7d, 0x39, 0xe9, 0x08, 0x13, 0xa1, 0x43, + 0x7e, 0x70, 0x4e, 0x58, 0x15, 0x68, 0xb4, 0xe9, 0xba, 0x15, 0x82, 0xd6, 0xa9, 0x63, 0xd0, 0xda, + 0x59, 0xc6, 0xc0, 0x2b, 0x6f, 0x1d, 0xd9, 0xf2, 0xd6, 0x75, 0x37, 0xac, 0x53, 0xec, 0x3a, 0xb2, + 0xc5, 0x2e, 0x2f, 0x0c, 0x98, 0xbe, 0x6a, 0xf6, 0xf4, 0x55, 0x74, 0xe3, 0x38, 0x87, 0xb0, 0x9a, + 0x3d, 0x84, 0x79, 0x92, 0xe0, 0x2c, 0x56, 0xb3, 0x67, 0x31, 0x57, 0x92, 0x73, 0x24, 0xab, 0xd9, + 0x23, 0x99, 0x27, 0x09, 0x4e, 0x66, 0xf7, 0x81, 0x64, 0x76, 0xc3, 0x0d, 0xe5, 0x16, 0xd0, 0x4e, + 0xa0, 0x80, 0x76, 0xd3, 0xb5, 0x31, 0xd7, 0x9c, 0x76, 0x1f, 0xc8, 0x69, 0xde, 0xcd, 0x39, 0xc4, + 0xb5, 0x13, 0x28, 0xae, 0x2d, 0xd1, 0x9c, 0x53, 0x6a, 0xab, 0x5a, 0x53, 0x5b, 0xc1, 0x8d, 0x05, + 0x87, 0xb7, 0x9a, 0x3d, 0xbc, 0x15, 0xbd, 0xcf, 0x22, 0x94, 0xe1, 0x4e, 0x1d, 0x33, 0xdc, 0x52, + 0x87, 0xdb, 0x2b, 0xca, 0x7d, 0xef, 0x14, 0xe5, 0xb6, 0x97, 0xa1, 0xbb, 0x27, 0xba, 0x6f, 0x1c, + 0x12, 0x5d, 0x79, 0x19, 0xf4, 0x55, 0xb0, 0xbb, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0xbd, + 0x19, 0xc1, 0x6e, 0x6f, 0xed, 0xd7, 0xdf, 0x72, 0xa8, 0xb8, 0x85, 0x43, 0xba, 0x35, 0x59, 0xc7, + 0xfe, 0xfa, 0x7e, 0xca, 0xc7, 0x3e, 0xab, 0x29, 0xc4, 0x3e, 0x0f, 0x52, 0xfe, 0xea, 0x17, 0x17, + 0x33, 0xea, 0x7b, 0x3a, 0xa3, 0xbe, 0x67, 0x33, 0xea, 0x7b, 0x31, 0xa3, 0xe8, 0xe5, 0x8c, 0xa2, + 0x57, 0x33, 0x8a, 0x5e, 0xcf, 0x28, 0x7a, 0xa2, 0x50, 0xf4, 0xbb, 0x42, 0xd1, 0x1f, 0x0a, 0x45, + 0x7f, 0x2a, 0x14, 0xfd, 0xa5, 0x50, 0x74, 0xa1, 0x50, 0xf4, 0x54, 0xa1, 0xbe, 0x17, 0x0a, 0x45, + 0x2f, 0x15, 0xea, 0x7b, 0xa5, 0x50, 0xf4, 0x5a, 0xa1, 0xbe, 0x27, 0xff, 0x52, 0xdf, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xec, 0x4e, 0x18, 0x12, 0xf7, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto index d277f3a6..dc972a90 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go index 5836eb15..933932ea 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -35,18 +36,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -70,20 +71,20 @@ func TestFloatingPointMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -102,11 +103,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -116,11 +117,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -133,22 +134,124 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestCustomMapMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -172,20 +275,20 @@ func TestAllMapsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -204,11 +307,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -218,11 +321,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -239,18 +342,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -274,20 +377,20 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -306,11 +409,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -320,11 +423,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -358,6 +461,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -404,9 +528,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -421,9 +545,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -438,9 +596,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -455,9 +613,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -472,9 +630,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -489,9 +647,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -508,12 +666,27 @@ func TestMapsproto2Description(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -523,12 +696,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -538,12 +711,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -558,6 +731,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -587,6 +768,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -618,13 +812,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -649,18 +843,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -690,13 +920,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -730,6 +960,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go index 0238d16e..5609f29c 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,7 +33,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -40,7 +43,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -88,58 +93,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -147,6 +165,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -156,264 +177,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4105 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xef, 0xe4, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0x6d, 0xc7, - 0x6b, 0x39, 0x91, 0x1c, 0x25, 0xb6, 0xd7, 0x74, 0xe2, 0x40, 0x17, 0xae, 0x56, 0x8e, 0x6e, 0x1d, - 0x4a, 0xf6, 0xda, 0x85, 0xc1, 0x8e, 0xc8, 0x21, 0x45, 0x7b, 0x38, 0xc3, 0x72, 0x86, 0xf6, 0x2a, - 0x4f, 0x2e, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x1c, 0x27, 0xad, 0x03, 0xb4, 0x4e, 0xd3, - 0x5b, 0xd2, 0x1b, 0x8a, 0x3e, 0x05, 0x28, 0xd2, 0xe6, 0xa9, 0x68, 0xfb, 0x94, 0x87, 0x3c, 0x24, - 0xa9, 0x81, 0xba, 0x6d, 0xda, 0xba, 0x80, 0x81, 0x06, 0xf0, 0x4b, 0xcf, 0x7f, 0x1b, 0xfe, 0x33, - 0x1c, 0x72, 0xa8, 0x00, 0xb9, 0x3c, 0xac, 0x00, 0x42, 0x9c, 0xf3, 0x9f, 0xef, 0x9b, 0x33, 0xe7, - 0x3f, 0xff, 0x39, 0xe7, 0xff, 0x39, 0xf0, 0x77, 0x1f, 0x81, 0x7b, 0x3a, 0xb6, 0xdd, 0x31, 0x8d, - 0xd5, 0xfe, 0xc0, 0x76, 0xed, 0x93, 0x61, 0x7b, 0xb5, 0x65, 0x38, 0xcd, 0x41, 0xb7, 0xef, 0xda, - 0x83, 0x15, 0x2a, 0x53, 0x4b, 0x4c, 0x63, 0x45, 0x68, 0x54, 0xf6, 0x60, 0xfe, 0x5a, 0xd7, 0x34, - 0xb6, 0x3c, 0xc5, 0xba, 0xe1, 0xaa, 0x57, 0x21, 0xd9, 0x46, 0x61, 0x39, 0x76, 0x4f, 0xe2, 0x4a, - 0x7e, 0xed, 0xbe, 0x95, 0x00, 0x68, 0xc5, 0x8f, 0x38, 0x24, 0x62, 0x8d, 0x22, 0x2a, 0x6f, 0x27, - 0x61, 0x21, 0x64, 0x54, 0x55, 0x21, 0x69, 0xe9, 0x3d, 0xc2, 0x18, 0xbb, 0x92, 0xd3, 0xe8, 0x77, - 0xb5, 0x0c, 0x99, 0xbe, 0xde, 0x7c, 0x51, 0xef, 0x18, 0xe5, 0x38, 0x15, 0x8b, 0x4b, 0xf5, 0x22, - 0x40, 0xcb, 0xe8, 0x1b, 0x56, 0xcb, 0xb0, 0x9a, 0x67, 0xe5, 0x04, 0x5a, 0x91, 0xd3, 0x24, 0x89, - 0xfa, 0x10, 0xcc, 0xf7, 0x87, 0x27, 0x66, 0xb7, 0xd9, 0x90, 0xd4, 0x00, 0xd5, 0x52, 0x9a, 0xc2, - 0x06, 0xb6, 0x46, 0xca, 0x0f, 0x40, 0xe9, 0x65, 0x43, 0x7f, 0x51, 0x56, 0xcd, 0x53, 0xd5, 0x22, - 0x11, 0x4b, 0x8a, 0x9b, 0x50, 0xe8, 0x19, 0x8e, 0x83, 0x06, 0x34, 0xdc, 0xb3, 0xbe, 0x51, 0x4e, - 0xd2, 0xa7, 0xbf, 0x67, 0xec, 0xe9, 0x83, 0x4f, 0x9e, 0xe7, 0xa8, 0x23, 0x04, 0xa9, 0xeb, 0x90, - 0x33, 0xac, 0x61, 0x8f, 0x31, 0xa4, 0x26, 0xf8, 0xaf, 0x86, 0x1a, 0x41, 0x96, 0x2c, 0x81, 0x71, - 0x8a, 0x8c, 0x63, 0x0c, 0x5e, 0xea, 0x36, 0x8d, 0x72, 0x9a, 0x12, 0x3c, 0x30, 0x46, 0x50, 0x67, - 0xe3, 0x41, 0x0e, 0x81, 0xc3, 0x47, 0xc9, 0x19, 0x37, 0x5d, 0xc3, 0x72, 0xba, 0xb6, 0x55, 0xce, - 0x50, 0x92, 0xfb, 0x43, 0x66, 0xd1, 0x30, 0x5b, 0x41, 0x8a, 0x11, 0x4e, 0x7d, 0x14, 0x32, 0x76, - 0xdf, 0xc5, 0x6f, 0x4e, 0x39, 0x8b, 0xf3, 0x93, 0x5f, 0xbb, 0x2b, 0x34, 0x10, 0x0e, 0x98, 0x8e, - 0x26, 0x94, 0xd5, 0x1d, 0x50, 0x1c, 0x7b, 0x38, 0x68, 0x1a, 0x8d, 0xa6, 0xdd, 0x32, 0x1a, 0x5d, - 0xab, 0x6d, 0x97, 0x73, 0x94, 0xe0, 0xd2, 0xf8, 0x83, 0x50, 0xc5, 0x4d, 0xd4, 0xdb, 0x41, 0x35, - 0xad, 0xe8, 0xf8, 0xae, 0xd5, 0x0b, 0x90, 0x76, 0xce, 0x2c, 0x57, 0xbf, 0x59, 0x2e, 0xd0, 0x08, - 0xe1, 0x57, 0x95, 0xff, 0x4b, 0x41, 0x69, 0x96, 0x10, 0x7b, 0x02, 0x52, 0x6d, 0xf2, 0x94, 0x18, - 0x60, 0xe7, 0xf0, 0x01, 0xc3, 0xf8, 0x9d, 0x98, 0xfe, 0x01, 0x9d, 0xb8, 0x0e, 0x79, 0xcb, 0x70, - 0x5c, 0xa3, 0xc5, 0x22, 0x22, 0x31, 0x63, 0x4c, 0x01, 0x03, 0x8d, 0x87, 0x54, 0xf2, 0x07, 0x0a, - 0xa9, 0x1b, 0x50, 0xf2, 0x4c, 0x6a, 0x0c, 0x74, 0xab, 0x23, 0x62, 0x73, 0x35, 0xca, 0x92, 0x95, - 0x9a, 0xc0, 0x69, 0x04, 0xa6, 0x15, 0x0d, 0xdf, 0xb5, 0xba, 0x05, 0x60, 0x5b, 0x86, 0xdd, 0xc6, - 0xe5, 0xd5, 0x34, 0x31, 0x4e, 0xc2, 0xbd, 0x74, 0x40, 0x54, 0xc6, 0xbc, 0x64, 0x33, 0x69, 0xd3, - 0x54, 0x1f, 0x1f, 0x85, 0x5a, 0x66, 0x42, 0xa4, 0xec, 0xb1, 0x45, 0x36, 0x16, 0x6d, 0xc7, 0x50, - 0x1c, 0x18, 0x24, 0xee, 0xd1, 0xc5, 0xec, 0xc9, 0x72, 0xd4, 0x88, 0x95, 0xc8, 0x27, 0xd3, 0x38, - 0x8c, 0x3d, 0xd8, 0xdc, 0x40, 0xbe, 0x54, 0xef, 0x05, 0x4f, 0xd0, 0xa0, 0x61, 0x05, 0x34, 0x0b, - 0x15, 0x84, 0x70, 0x1f, 0x65, 0x4b, 0x57, 0xa1, 0xe8, 0x77, 0x8f, 0xba, 0x08, 0x29, 0xc7, 0xd5, - 0x07, 0x2e, 0x8d, 0xc2, 0x94, 0xc6, 0x2e, 0x54, 0x05, 0x12, 0x98, 0x64, 0x68, 0x96, 0x4b, 0x69, - 0xe4, 0xeb, 0xd2, 0x63, 0x30, 0xe7, 0xbb, 0xfd, 0xac, 0xc0, 0xca, 0x6b, 0x69, 0x58, 0x0c, 0x8b, - 0xb9, 0xd0, 0xf0, 0xc7, 0xe5, 0x83, 0x11, 0x70, 0x62, 0x0c, 0x30, 0xee, 0x08, 0x03, 0xbf, 0xc2, - 0x88, 0x4a, 0x99, 0xfa, 0x89, 0x61, 0x62, 0x34, 0xc5, 0xae, 0x14, 0xd7, 0x1e, 0x9a, 0x29, 0xaa, - 0x57, 0x76, 0x09, 0x44, 0x63, 0x48, 0xf5, 0x49, 0x48, 0xf2, 0x14, 0x47, 0x18, 0x96, 0x67, 0x63, - 0x20, 0xb1, 0xa8, 0x51, 0x9c, 0xfa, 0x01, 0xc8, 0x91, 0xff, 0xcc, 0xb7, 0x69, 0x6a, 0x73, 0x96, - 0x08, 0x88, 0x5f, 0xd5, 0x25, 0xc8, 0xd2, 0x30, 0x6b, 0x19, 0xa2, 0x34, 0x78, 0xd7, 0x64, 0x62, - 0x5a, 0x46, 0x5b, 0x1f, 0x9a, 0x6e, 0xe3, 0x25, 0xdd, 0x1c, 0x1a, 0x34, 0x60, 0x70, 0x62, 0xb8, - 0xf0, 0x69, 0x22, 0x53, 0x2f, 0x41, 0x9e, 0x45, 0x65, 0x17, 0x31, 0x37, 0x69, 0xf6, 0x49, 0x69, - 0x2c, 0x50, 0x77, 0x88, 0x84, 0xdc, 0xfe, 0x05, 0x07, 0xd7, 0x02, 0x9f, 0x5a, 0x7a, 0x0b, 0x22, - 0xa0, 0xb7, 0x7f, 0x2c, 0x98, 0xf8, 0xee, 0x0e, 0x7f, 0xbc, 0x60, 0x2c, 0x56, 0xfe, 0x3a, 0x0e, - 0x49, 0xba, 0xde, 0x4a, 0x90, 0x3f, 0x7a, 0xf6, 0xb0, 0xd6, 0xd8, 0x3a, 0x38, 0xde, 0xd8, 0xad, - 0x29, 0x31, 0xb5, 0x08, 0x40, 0x05, 0xd7, 0x76, 0x0f, 0xd6, 0x8f, 0x94, 0xb8, 0x77, 0xbd, 0xb3, - 0x7f, 0xf4, 0xe8, 0xc7, 0x94, 0x84, 0x07, 0x38, 0x66, 0x82, 0xa4, 0xac, 0xf0, 0xd1, 0x35, 0x25, - 0x85, 0x91, 0x50, 0x60, 0x04, 0x3b, 0x37, 0x6a, 0x5b, 0xa8, 0x91, 0xf6, 0x4b, 0x50, 0x27, 0xa3, - 0xce, 0x41, 0x8e, 0x4a, 0x36, 0x0e, 0x0e, 0x76, 0x95, 0xac, 0xc7, 0x59, 0x3f, 0xd2, 0x76, 0xf6, - 0xb7, 0x95, 0x9c, 0xc7, 0xb9, 0xad, 0x1d, 0x1c, 0x1f, 0x2a, 0xe0, 0x31, 0xec, 0xd5, 0xea, 0xf5, - 0xf5, 0xed, 0x9a, 0x92, 0xf7, 0x34, 0x36, 0x9e, 0x3d, 0xaa, 0xd5, 0x95, 0x82, 0xcf, 0x2c, 0xbc, - 0xc5, 0x9c, 0x77, 0x8b, 0xda, 0xfe, 0xf1, 0x9e, 0x52, 0x54, 0xe7, 0x61, 0x8e, 0xdd, 0x42, 0x18, - 0x51, 0x0a, 0x88, 0xd0, 0x52, 0x65, 0x64, 0x08, 0x63, 0x99, 0xf7, 0x09, 0x50, 0x43, 0xad, 0x6c, - 0x42, 0x8a, 0x46, 0x17, 0x46, 0x71, 0x71, 0x77, 0x7d, 0xa3, 0xb6, 0xdb, 0x38, 0x38, 0x3c, 0xda, - 0x39, 0xd8, 0x5f, 0xdf, 0x45, 0xdf, 0x79, 0x32, 0xad, 0xf6, 0x53, 0xc7, 0x3b, 0x5a, 0x6d, 0x0b, - 0xfd, 0x27, 0xc9, 0x0e, 0x6b, 0xeb, 0x47, 0x28, 0x4b, 0x54, 0x96, 0x61, 0x31, 0x2c, 0xcf, 0x84, - 0xad, 0x8c, 0xca, 0x17, 0x63, 0xb0, 0x10, 0x92, 0x32, 0x43, 0x57, 0xd1, 0x27, 0x21, 0xc5, 0x22, - 0x8d, 0x15, 0x91, 0x07, 0x43, 0x73, 0x2f, 0x8d, 0xbb, 0xb1, 0x42, 0x42, 0x71, 0x72, 0x21, 0x4d, - 0x4c, 0x28, 0xa4, 0x84, 0x62, 0x2c, 0x9c, 0x5e, 0x8d, 0x41, 0x79, 0x12, 0x77, 0xc4, 0x7a, 0x8f, - 0xfb, 0xd6, 0xfb, 0x13, 0x41, 0x03, 0x2e, 0x4f, 0x7e, 0x86, 0x31, 0x2b, 0xde, 0x8a, 0xc1, 0x85, - 0xf0, 0x7e, 0x23, 0xd4, 0x86, 0x27, 0x21, 0xdd, 0x33, 0xdc, 0x53, 0x5b, 0xd4, 0xdc, 0x0f, 0x86, - 0x64, 0x72, 0x32, 0x1c, 0xf4, 0x15, 0x47, 0xc9, 0xa5, 0x20, 0x31, 0xa9, 0x69, 0x60, 0xd6, 0x8c, - 0x59, 0xfa, 0x99, 0x38, 0xdc, 0x1e, 0x4a, 0x1e, 0x6a, 0xe8, 0xdd, 0x00, 0x5d, 0xab, 0x3f, 0x74, - 0x59, 0x5d, 0x65, 0x69, 0x26, 0x47, 0x25, 0x74, 0x09, 0x93, 0x14, 0x32, 0x74, 0xbd, 0xf1, 0x04, - 0x1d, 0x07, 0x26, 0xa2, 0x0a, 0x57, 0x47, 0x86, 0x26, 0xa9, 0xa1, 0x17, 0x27, 0x3c, 0xe9, 0x58, - 0xc9, 0x7a, 0x18, 0x94, 0xa6, 0xd9, 0x35, 0x2c, 0xb7, 0xe1, 0xb8, 0x03, 0x43, 0xef, 0x75, 0xad, - 0x0e, 0xcd, 0xa3, 0xd9, 0x6a, 0xaa, 0xad, 0x9b, 0x8e, 0xa1, 0x95, 0xd8, 0x70, 0x5d, 0x8c, 0x12, - 0x04, 0x2d, 0x16, 0x03, 0x09, 0x91, 0xf6, 0x21, 0xd8, 0xb0, 0x87, 0xa8, 0xfc, 0x4b, 0x06, 0xf2, - 0x52, 0x77, 0xa6, 0x5e, 0x86, 0xc2, 0x0b, 0xfa, 0x4b, 0x7a, 0x43, 0x74, 0xdc, 0xcc, 0x13, 0x79, - 0x22, 0x3b, 0xe4, 0x5d, 0xf7, 0xc3, 0xb0, 0x48, 0x55, 0xf0, 0x19, 0xf1, 0x46, 0x4d, 0x53, 0x77, - 0x1c, 0xea, 0xb4, 0x2c, 0x55, 0x55, 0xc9, 0xd8, 0x01, 0x19, 0xda, 0x14, 0x23, 0xea, 0x23, 0xb0, - 0x40, 0x11, 0x3d, 0x4c, 0xbc, 0xdd, 0xbe, 0x69, 0x34, 0xc8, 0x1e, 0xc0, 0xa1, 0xf9, 0xd4, 0xb3, - 0x6c, 0x9e, 0x68, 0xec, 0x71, 0x05, 0x62, 0x91, 0xa3, 0x6e, 0xc3, 0xdd, 0x14, 0xd6, 0x31, 0x2c, - 0x63, 0xa0, 0xbb, 0x46, 0xc3, 0xf8, 0xd9, 0x21, 0xea, 0x36, 0x74, 0xab, 0xd5, 0x38, 0xd5, 0x9d, - 0xd3, 0xf2, 0xa2, 0x4c, 0x70, 0x27, 0xd1, 0xdd, 0xe6, 0xaa, 0x35, 0xaa, 0xb9, 0x6e, 0xb5, 0xae, - 0xa3, 0x9e, 0x5a, 0x85, 0x0b, 0x94, 0x08, 0x9d, 0x82, 0xcf, 0xdc, 0x68, 0x9e, 0x1a, 0xcd, 0x17, - 0x1b, 0x43, 0xb7, 0x7d, 0xb5, 0xfc, 0x01, 0x99, 0x81, 0x1a, 0x59, 0xa7, 0x3a, 0x9b, 0x44, 0xe5, - 0x18, 0x35, 0xd4, 0x3a, 0x14, 0xc8, 0x7c, 0xf4, 0xba, 0x9f, 0x46, 0xb3, 0xed, 0x01, 0xad, 0x11, - 0xc5, 0x90, 0xc5, 0x2d, 0x39, 0x71, 0xe5, 0x80, 0x03, 0xf6, 0xb0, 0x3f, 0xad, 0xa6, 0xea, 0x87, - 0xb5, 0xda, 0x96, 0x96, 0x17, 0x2c, 0xd7, 0xec, 0x01, 0x89, 0xa9, 0x8e, 0xed, 0xf9, 0x38, 0xcf, - 0x62, 0xaa, 0x63, 0x0b, 0x0f, 0xa3, 0xbf, 0x9a, 0x4d, 0xf6, 0xd8, 0xb8, 0x77, 0xe1, 0xcd, 0xba, - 0x53, 0x56, 0x7c, 0xfe, 0x6a, 0x36, 0xb7, 0x99, 0x02, 0x0f, 0x73, 0x07, 0x97, 0xc4, 0xed, 0x23, - 0x7f, 0xc9, 0xc0, 0xf9, 0xb1, 0xa7, 0x0c, 0x42, 0xf1, 0x8e, 0xfd, 0xb3, 0x71, 0xa0, 0xea, 0xbb, - 0x63, 0xff, 0x2c, 0x08, 0xbb, 0x9f, 0x6e, 0xc0, 0x06, 0x46, 0x13, 0x5d, 0xde, 0x2a, 0xdf, 0x21, - 0x6b, 0x4b, 0x03, 0xea, 0x2a, 0x06, 0x72, 0xb3, 0x61, 0x58, 0xfa, 0x09, 0xce, 0xbd, 0x3e, 0xc0, - 0x2f, 0x4e, 0xf9, 0x92, 0xac, 0x5c, 0x6c, 0x36, 0x6b, 0x74, 0x74, 0x9d, 0x0e, 0xaa, 0xcb, 0x30, - 0x6f, 0x9f, 0xbc, 0xd0, 0x64, 0xc1, 0xd5, 0x40, 0x9e, 0x76, 0xf7, 0x66, 0xf9, 0x3e, 0xea, 0xa6, - 0x12, 0x19, 0xa0, 0xa1, 0x75, 0x48, 0xc5, 0xea, 0x83, 0x48, 0xee, 0x9c, 0xea, 0x83, 0x3e, 0x2d, - 0xd2, 0x0e, 0x3a, 0xd5, 0x28, 0xdf, 0xcf, 0x54, 0x99, 0x7c, 0x5f, 0x88, 0xd5, 0x1a, 0x5c, 0x22, - 0x0f, 0x6f, 0xe9, 0x96, 0xdd, 0x18, 0x3a, 0x46, 0x63, 0x64, 0xa2, 0x37, 0x17, 0x1f, 0x24, 0x66, - 0x69, 0x77, 0x09, 0xb5, 0x63, 0x07, 0x93, 0x99, 0x50, 0x12, 0xd3, 0x73, 0x03, 0x16, 0x87, 0x56, - 0xd7, 0xc2, 0x10, 0xc7, 0x11, 0x02, 0x66, 0x0b, 0xb6, 0xfc, 0x6f, 0x99, 0x09, 0x4d, 0xf7, 0xb1, - 0xac, 0xcd, 0x82, 0x44, 0x5b, 0x18, 0x8e, 0x0b, 0x2b, 0x55, 0x28, 0xc8, 0xb1, 0xa3, 0xe6, 0x80, - 0x45, 0x0f, 0x56, 0x37, 0xac, 0xa8, 0x9b, 0x07, 0x5b, 0xa4, 0x16, 0x3e, 0x57, 0xc3, 0xc2, 0x86, - 0x35, 0x79, 0x77, 0xe7, 0xa8, 0xd6, 0xd0, 0x8e, 0xf7, 0x8f, 0x76, 0xf6, 0x6a, 0x4a, 0x62, 0x39, - 0x97, 0x7d, 0x27, 0xa3, 0xbc, 0x82, 0x7f, 0xf1, 0xca, 0xd7, 0xe3, 0x50, 0xf4, 0xf7, 0xc1, 0xea, - 0xc7, 0xe1, 0x0e, 0xb1, 0x69, 0x75, 0x0c, 0xb7, 0xf1, 0x72, 0x77, 0x40, 0xc3, 0xb9, 0xa7, 0xb3, - 0x4e, 0xd2, 0x9b, 0x89, 0x45, 0xae, 0x85, 0xdb, 0xfb, 0x67, 0x50, 0xe7, 0x1a, 0x55, 0x51, 0x77, - 0xe1, 0x12, 0xba, 0x0c, 0x7b, 0x4d, 0xab, 0xa5, 0x0f, 0x5a, 0x8d, 0xd1, 0x71, 0x41, 0x43, 0x6f, - 0x62, 0x1c, 0x38, 0x36, 0xab, 0x24, 0x1e, 0xcb, 0x5d, 0x96, 0x5d, 0xe7, 0xca, 0xa3, 0x14, 0xbb, - 0xce, 0x55, 0x03, 0x51, 0x93, 0x98, 0x14, 0x35, 0xd8, 0x7b, 0xf5, 0xf4, 0x3e, 0x86, 0x8d, 0x3b, - 0x38, 0xa3, 0xdd, 0x5b, 0x56, 0xcb, 0xa2, 0xa0, 0x46, 0xae, 0x7f, 0x78, 0x73, 0x20, 0xfb, 0xf1, - 0x5b, 0x09, 0x28, 0xc8, 0x1d, 0x1c, 0x69, 0x88, 0x9b, 0x34, 0xcd, 0xc7, 0x68, 0x16, 0xb8, 0x77, - 0x6a, 0xbf, 0xb7, 0xb2, 0x49, 0xf2, 0x7f, 0x35, 0xcd, 0xfa, 0x2a, 0x8d, 0x21, 0x49, 0xed, 0x25, - 0xb1, 0x66, 0xb0, 0x6e, 0x3d, 0xab, 0xf1, 0x2b, 0x4c, 0x76, 0xe9, 0x17, 0x1c, 0xca, 0x9d, 0xa6, - 0xdc, 0xf7, 0x4d, 0xe7, 0x7e, 0xaa, 0x4e, 0xc9, 0x73, 0x4f, 0xd5, 0x1b, 0xfb, 0x07, 0xda, 0xde, - 0xfa, 0xae, 0xc6, 0xe1, 0xea, 0x9d, 0x90, 0x34, 0xf5, 0x4f, 0x9f, 0xf9, 0x2b, 0x05, 0x15, 0xcd, - 0xea, 0x78, 0x64, 0x20, 0x47, 0x1e, 0xfe, 0xfc, 0x4c, 0x45, 0x3f, 0xc4, 0xd0, 0x5f, 0x85, 0x14, - 0xf5, 0x97, 0x0a, 0xc0, 0x3d, 0xa6, 0xdc, 0xa6, 0x66, 0x21, 0xb9, 0x79, 0xa0, 0x91, 0xf0, 0xc7, - 0x78, 0x67, 0xd2, 0xc6, 0xe1, 0x4e, 0x6d, 0x13, 0x57, 0x40, 0xe5, 0x11, 0x48, 0x33, 0x27, 0x90, - 0xa5, 0xe1, 0xb9, 0x01, 0x41, 0xec, 0x92, 0x73, 0xc4, 0xc4, 0xe8, 0xf1, 0xde, 0x46, 0x4d, 0x53, - 0xe2, 0xf2, 0xf4, 0xfe, 0x6d, 0x0c, 0xf2, 0x52, 0x43, 0x45, 0x4a, 0xb9, 0x6e, 0x9a, 0xf6, 0xcb, - 0x0d, 0xdd, 0xec, 0x62, 0x86, 0x62, 0xf3, 0x03, 0x54, 0xb4, 0x4e, 0x24, 0xb3, 0xfa, 0xef, 0x47, - 0x12, 0x9b, 0x5f, 0x88, 0x81, 0x12, 0x6c, 0xc6, 0x02, 0x06, 0xc6, 0x7e, 0xac, 0x06, 0xbe, 0x11, - 0x83, 0xa2, 0xbf, 0x03, 0x0b, 0x98, 0x77, 0xf9, 0xc7, 0x6a, 0xde, 0xe7, 0x62, 0x30, 0xe7, 0xeb, - 0xbb, 0x7e, 0xa2, 0xac, 0x7b, 0x3d, 0x01, 0x0b, 0x21, 0x38, 0x4c, 0x40, 0xac, 0x41, 0x65, 0x3d, - 0xf3, 0x87, 0x67, 0xb9, 0xd7, 0x0a, 0xa9, 0x7f, 0x87, 0xfa, 0xc0, 0xe5, 0xfd, 0x2c, 0xd6, 0xcb, - 0x6e, 0x0b, 0x93, 0x6a, 0xb7, 0xdd, 0xc5, 0xf6, 0x8d, 0xed, 0x58, 0x58, 0xd7, 0x5a, 0x1a, 0xc9, - 0xd9, 0xf6, 0xf8, 0x43, 0xa0, 0xf6, 0x6d, 0xa7, 0xeb, 0x76, 0x5f, 0x22, 0xc7, 0x73, 0x62, 0x23, - 0x4d, 0xba, 0xd8, 0xa4, 0xa6, 0x88, 0x91, 0x1d, 0xcb, 0xf5, 0xb4, 0x2d, 0xa3, 0xa3, 0x07, 0xb4, - 0x49, 0x1a, 0x4a, 0x68, 0x8a, 0x18, 0xf1, 0xb4, 0xb1, 0xd1, 0x6c, 0xd9, 0x43, 0xd2, 0x10, 0x30, - 0x3d, 0x92, 0xf5, 0x62, 0x5a, 0x9e, 0xc9, 0x3c, 0x15, 0xde, 0xb1, 0x8d, 0x76, 0xf0, 0x05, 0x2d, - 0xcf, 0x64, 0x4c, 0xe5, 0x01, 0x28, 0xe9, 0x9d, 0xce, 0x80, 0x90, 0x0b, 0x22, 0xd6, 0x86, 0x16, - 0x3d, 0x31, 0x55, 0x5c, 0x7a, 0x0a, 0xb2, 0xc2, 0x0f, 0xa4, 0xb0, 0x10, 0x4f, 0x60, 0xcd, 0xa7, - 0xe7, 0x28, 0x71, 0xb2, 0xa9, 0xb7, 0xc4, 0x20, 0xde, 0xb4, 0xeb, 0x34, 0x46, 0x07, 0x7a, 0x71, - 0x1c, 0xcf, 0x6a, 0xf9, 0xae, 0xe3, 0x9d, 0xe0, 0x54, 0xde, 0xc2, 0xf2, 0xea, 0x3f, 0x90, 0x54, - 0xb7, 0x20, 0x6b, 0xda, 0x18, 0x1f, 0x04, 0xc1, 0x4e, 0xc3, 0xaf, 0x44, 0x9c, 0x61, 0xae, 0xec, - 0x72, 0x7d, 0xcd, 0x43, 0x2e, 0xfd, 0x63, 0x0c, 0xb2, 0x42, 0x8c, 0x85, 0x22, 0xd9, 0xd7, 0xdd, - 0x53, 0x4a, 0x97, 0xda, 0x88, 0x2b, 0x31, 0x8d, 0x5e, 0x13, 0x39, 0x76, 0x33, 0x16, 0x0d, 0x01, - 0x2e, 0x27, 0xd7, 0x64, 0x5e, 0x4d, 0x43, 0x6f, 0xd1, 0x06, 0xd7, 0xee, 0xf5, 0x70, 0x26, 0x1d, - 0x31, 0xaf, 0x5c, 0xbe, 0xc9, 0xc5, 0xe4, 0x5c, 0xdc, 0x1d, 0xe8, 0x5d, 0xd3, 0xa7, 0x9b, 0xa4, - 0xba, 0x8a, 0x18, 0xf0, 0x94, 0xab, 0x70, 0xa7, 0xe0, 0x6d, 0x19, 0xae, 0x8e, 0xcd, 0x73, 0x6b, - 0x04, 0x4a, 0xd3, 0xd3, 0xae, 0x3b, 0xb8, 0xc2, 0x16, 0x1f, 0x17, 0xd8, 0x8d, 0x1b, 0xd8, 0xc8, - 0xda, 0xbd, 0xa0, 0x27, 0x36, 0x94, 0xc0, 0xbe, 0xcb, 0xb9, 0x1e, 0x7b, 0x0e, 0x46, 0x4d, 0xc5, - 0x17, 0xe3, 0x89, 0xed, 0xc3, 0x8d, 0x2f, 0xc7, 0x97, 0xb6, 0x19, 0xee, 0x50, 0x78, 0x50, 0x33, - 0xda, 0xa6, 0xd1, 0x24, 0xde, 0x81, 0x37, 0xef, 0x85, 0x0f, 0x77, 0xba, 0xee, 0xe9, 0xf0, 0x64, - 0x05, 0xef, 0xb0, 0xda, 0xb1, 0x3b, 0xf6, 0xe8, 0xe7, 0x0c, 0x72, 0x45, 0x2f, 0xe8, 0x37, 0xfe, - 0x93, 0x46, 0xce, 0x93, 0x2e, 0x45, 0xfe, 0xfe, 0x51, 0xdd, 0x87, 0x05, 0xae, 0xdc, 0xa0, 0x67, - 0xaa, 0xac, 0x05, 0x55, 0xa7, 0x6e, 0xc8, 0xcb, 0x5f, 0x7d, 0x9b, 0x96, 0x04, 0x6d, 0x9e, 0x43, - 0xc9, 0x18, 0x6b, 0x52, 0xab, 0x1a, 0xdc, 0xee, 0xe3, 0x63, 0x31, 0x8c, 0x5b, 0xee, 0xe9, 0x8c, - 0x5f, 0xe7, 0x8c, 0x0b, 0x12, 0x63, 0x9d, 0x43, 0xab, 0x9b, 0x30, 0x77, 0x1e, 0xae, 0xbf, 0xe7, - 0x5c, 0x05, 0x43, 0x26, 0xd9, 0x86, 0x12, 0x25, 0x69, 0x0e, 0x1d, 0xd7, 0xee, 0xd1, 0x04, 0x31, - 0x9d, 0xe6, 0x1f, 0xde, 0x66, 0x41, 0x55, 0x24, 0xb0, 0x4d, 0x0f, 0x55, 0x7d, 0x1a, 0x16, 0x89, - 0x84, 0xae, 0x41, 0x99, 0x2d, 0xfa, 0x08, 0xa1, 0xfc, 0xcf, 0xaf, 0xb2, 0xd8, 0x5b, 0xf0, 0x08, - 0x24, 0x5e, 0x69, 0x26, 0x3a, 0x86, 0x8b, 0xb9, 0x0d, 0xf7, 0x7f, 0xa6, 0xa9, 0x4e, 0xfd, 0x8d, - 0xa1, 0xfc, 0xd9, 0xef, 0xf9, 0x67, 0x62, 0x9b, 0x21, 0xd7, 0x4d, 0xb3, 0x7a, 0x0c, 0x77, 0x84, - 0xcc, 0xec, 0x0c, 0x9c, 0xaf, 0x73, 0xce, 0xc5, 0xb1, 0xd9, 0x25, 0xb4, 0x87, 0x20, 0xe4, 0xde, - 0x7c, 0xcc, 0xc0, 0xf9, 0x39, 0xce, 0xa9, 0x72, 0xac, 0x98, 0x16, 0xc2, 0xf8, 0x14, 0xcc, 0xe3, - 0x4e, 0xfd, 0xc4, 0x76, 0xf8, 0xbe, 0x77, 0x06, 0xba, 0x37, 0x38, 0x5d, 0x89, 0x03, 0xe9, 0x2e, - 0x98, 0x70, 0x3d, 0x0e, 0xd9, 0x36, 0x6e, 0x80, 0x66, 0xa0, 0xf8, 0x3c, 0xa7, 0xc8, 0x10, 0x7d, - 0x02, 0x5d, 0x87, 0x42, 0xc7, 0xe6, 0x69, 0x38, 0x1a, 0xfe, 0x05, 0x0e, 0xcf, 0x0b, 0x0c, 0xa7, - 0xe8, 0xdb, 0xfd, 0xa1, 0x49, 0x72, 0x74, 0x34, 0xc5, 0xef, 0x0a, 0x0a, 0x81, 0xe1, 0x14, 0xe7, - 0x70, 0xeb, 0xef, 0x09, 0x0a, 0x47, 0xf2, 0xe7, 0x27, 0xc9, 0x59, 0xaf, 0x79, 0x66, 0x5b, 0xb3, - 0x18, 0xf1, 0x26, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x4f, 0x40, 0x6e, 0xd6, 0x89, 0xf8, 0x7d, 0x0e, - 0xcf, 0x1a, 0x62, 0x06, 0x70, 0x9d, 0x89, 0x24, 0x43, 0x7e, 0x5b, 0x89, 0xa6, 0xf8, 0x03, 0x4e, - 0x51, 0x94, 0x60, 0xfc, 0x31, 0x5c, 0xc3, 0x71, 0x71, 0xab, 0x3e, 0x03, 0xc9, 0x5b, 0xe2, 0x31, - 0x38, 0x84, 0xbb, 0xf2, 0xc4, 0xb0, 0x9a, 0xa7, 0xb3, 0x31, 0x7c, 0x49, 0xb8, 0x52, 0x60, 0x08, - 0x05, 0x66, 0x9e, 0x9e, 0x3e, 0xc0, 0xcd, 0xb5, 0x39, 0xd3, 0x74, 0xfc, 0x21, 0xe7, 0x28, 0x78, - 0x20, 0xee, 0x91, 0xa1, 0x75, 0x1e, 0x9a, 0x2f, 0x0b, 0x8f, 0x48, 0x30, 0xbe, 0xf4, 0x70, 0x67, - 0x4a, 0x3a, 0x89, 0xf3, 0xb0, 0xfd, 0x91, 0x58, 0x7a, 0x0c, 0xbb, 0x27, 0x33, 0xe2, 0x4c, 0x3b, - 0xb8, 0x05, 0x9f, 0x85, 0xe6, 0x8f, 0xc5, 0x4c, 0x53, 0x00, 0x01, 0x3f, 0x0b, 0x77, 0x86, 0xa6, - 0xfa, 0x19, 0xc8, 0xfe, 0x84, 0x93, 0x5d, 0x08, 0x49, 0xf7, 0x3c, 0x25, 0x9c, 0x97, 0xf2, 0x4f, - 0x45, 0x4a, 0x30, 0x02, 0x5c, 0x87, 0xa4, 0x8d, 0x75, 0xf4, 0xf6, 0xf9, 0xbc, 0xf6, 0x67, 0xc2, - 0x6b, 0x0c, 0xeb, 0xf3, 0xda, 0x11, 0x5c, 0xe0, 0x8c, 0xe7, 0x9b, 0xd7, 0xaf, 0x88, 0xc4, 0xca, - 0xd0, 0xc7, 0xfe, 0xd9, 0xfd, 0x69, 0x58, 0xf2, 0xdc, 0x29, 0x3a, 0x30, 0xa7, 0x41, 0x0e, 0x06, - 0xa2, 0x99, 0xbf, 0xca, 0x99, 0x45, 0xc6, 0xf7, 0x5a, 0x38, 0x67, 0x4f, 0xef, 0x13, 0xf2, 0x1b, - 0x50, 0x16, 0xe4, 0x43, 0x0b, 0x1b, 0x7c, 0xbb, 0x63, 0xe1, 0x34, 0xb6, 0x66, 0xa0, 0xfe, 0xf3, - 0xc0, 0x54, 0x1d, 0x4b, 0x70, 0xc2, 0xbc, 0x03, 0x8a, 0xd7, 0x6f, 0x34, 0xba, 0xbd, 0xbe, 0x8d, - 0xad, 0xe5, 0x74, 0xc6, 0xbf, 0x10, 0x33, 0xe5, 0xe1, 0x76, 0x28, 0xac, 0x5a, 0x83, 0x22, 0xbd, - 0x9c, 0x35, 0x24, 0xff, 0x92, 0x13, 0xcd, 0x8d, 0x50, 0x3c, 0x71, 0x60, 0xa7, 0x84, 0x3d, 0xef, - 0x2c, 0xf9, 0xef, 0xaf, 0x44, 0xe2, 0xe0, 0x10, 0x16, 0x7d, 0xa5, 0x40, 0x25, 0x56, 0xa3, 0x7e, - 0x7e, 0x2d, 0xff, 0xdc, 0x7b, 0x7c, 0xcd, 0xfa, 0x0b, 0x71, 0x75, 0x97, 0xb8, 0xc7, 0x5f, 0x2e, - 0xa3, 0xc9, 0x5e, 0x7d, 0xcf, 0xf3, 0x90, 0xaf, 0x5a, 0x56, 0xaf, 0xc1, 0x9c, 0xaf, 0x54, 0x46, - 0x53, 0xfd, 0x3c, 0xa7, 0x2a, 0xc8, 0x95, 0xb2, 0xfa, 0x08, 0x24, 0x49, 0xd9, 0x8b, 0x86, 0xff, - 0x02, 0x87, 0x53, 0xf5, 0xea, 0x27, 0x20, 0x2b, 0xca, 0x5d, 0x34, 0xf4, 0x17, 0x39, 0xd4, 0x83, - 0x10, 0xb8, 0x28, 0x75, 0xd1, 0xf0, 0x5f, 0x12, 0x70, 0x01, 0x21, 0xf0, 0xd9, 0x5d, 0xf8, 0xb5, - 0x5f, 0x4e, 0xf2, 0x74, 0x25, 0x7c, 0x47, 0x7e, 0xf3, 0x61, 0x35, 0x2e, 0x1a, 0xfd, 0x19, 0x7e, - 0x73, 0x81, 0xa8, 0x3e, 0x06, 0xa9, 0x19, 0x1d, 0xfe, 0x2b, 0x1c, 0xca, 0xf4, 0xb1, 0x82, 0xe4, - 0xa5, 0xba, 0x16, 0x0d, 0xff, 0x55, 0x0e, 0x97, 0x51, 0xc4, 0x74, 0x5e, 0xd7, 0xa2, 0x09, 0x7e, - 0x4d, 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0xa4, 0x45, 0xa3, 0x7f, 0x5d, 0x78, 0x5d, 0x40, 0x70, - 0x35, 0xe5, 0xbc, 0x34, 0x15, 0x8d, 0xff, 0x0d, 0x8e, 0x1f, 0x61, 0x88, 0x07, 0xa4, 0x34, 0x19, - 0x4d, 0xf1, 0x9b, 0xc2, 0x03, 0x12, 0x8a, 0x2c, 0xa3, 0x60, 0xe9, 0x8b, 0x66, 0xfa, 0x2d, 0xb1, - 0x8c, 0x02, 0x95, 0x8f, 0xcc, 0x26, 0xcd, 0x16, 0xd1, 0x14, 0xbf, 0x2d, 0x66, 0x93, 0xea, 0x13, - 0x33, 0x82, 0xb5, 0x24, 0x9a, 0xe3, 0x77, 0x84, 0x19, 0x81, 0x52, 0x82, 0x95, 0x49, 0x1d, 0xaf, - 0x23, 0xd1, 0x7c, 0xaf, 0x71, 0xbe, 0xf9, 0xb1, 0x32, 0x52, 0x7d, 0x06, 0x2e, 0x84, 0xd7, 0x90, - 0x68, 0xd6, 0xcf, 0xbe, 0x17, 0xe8, 0xfa, 0xe5, 0x12, 0x82, 0x25, 0x6f, 0x31, 0xac, 0x7e, 0x44, - 0xd3, 0xbe, 0xfe, 0x9e, 0x7f, 0x63, 0x27, 0x97, 0x0f, 0xec, 0xd0, 0x60, 0x94, 0xba, 0xa3, 0xb9, - 0xde, 0xe0, 0x5c, 0x12, 0x88, 0x2c, 0x0d, 0x9e, 0xb9, 0xa3, 0xf1, 0x9f, 0x17, 0x4b, 0x83, 0x23, - 0x10, 0x9c, 0xb5, 0x86, 0xa6, 0x49, 0x82, 0x43, 0x9d, 0xfe, 0x4a, 0x43, 0xf9, 0xdf, 0xdf, 0xe7, - 0x0b, 0x43, 0x00, 0x30, 0x87, 0xa6, 0x8c, 0xde, 0x09, 0xfa, 0x20, 0x02, 0xf9, 0x1f, 0xef, 0x8b, - 0x84, 0x40, 0xb4, 0x71, 0x3d, 0x01, 0xdb, 0x34, 0xd2, 0x33, 0xec, 0x08, 0xec, 0x7f, 0xbe, 0xcf, - 0x7f, 0x66, 0x1d, 0x41, 0x46, 0x04, 0xec, 0x47, 0xdb, 0xe9, 0x04, 0xdf, 0xf3, 0x13, 0xd0, 0x8d, - 0xe6, 0xe3, 0x90, 0x21, 0x6f, 0x76, 0xb8, 0x7a, 0x27, 0x0a, 0xfd, 0x5f, 0x1c, 0x2d, 0xf4, 0x89, - 0xc3, 0x7a, 0xf6, 0xc0, 0xc0, 0xaf, 0x4e, 0x14, 0xf6, 0xbf, 0x39, 0xd6, 0x03, 0x10, 0x70, 0x53, - 0x77, 0xdc, 0x59, 0x9e, 0xfb, 0x7f, 0x04, 0x58, 0x00, 0x88, 0xd1, 0xe4, 0xfb, 0x8b, 0xc6, 0x59, - 0x14, 0xf6, 0x5d, 0x61, 0x34, 0xd7, 0xc7, 0x04, 0x98, 0x23, 0x5f, 0xd9, 0xab, 0x07, 0x11, 0xe0, - 0xff, 0xe5, 0xe0, 0x11, 0x62, 0xe3, 0x72, 0xf8, 0xd1, 0x0e, 0x6c, 0xdb, 0xdb, 0x36, 0x3b, 0xd4, - 0x81, 0xb7, 0xae, 0xc0, 0x25, 0xd4, 0xc1, 0xfa, 0xba, 0x6a, 0x19, 0x5d, 0xf7, 0xd4, 0x18, 0xac, - 0xe2, 0x9a, 0x73, 0xa8, 0xee, 0x1a, 0x3f, 0x95, 0xc9, 0xf3, 0x2b, 0x32, 0xb0, 0x74, 0xbe, 0x13, - 0x9d, 0xca, 0xdd, 0x30, 0x77, 0xcd, 0xb4, 0x75, 0x17, 0x0b, 0xd9, 0xa1, 0xdd, 0xb5, 0x5c, 0xb5, - 0x00, 0xb1, 0x36, 0x3d, 0xf5, 0x8e, 0x69, 0xb1, 0x76, 0xe5, 0x9b, 0x2a, 0x64, 0xb0, 0x6f, 0xc1, - 0x75, 0xea, 0xa8, 0xcf, 0xc2, 0x3c, 0xeb, 0x16, 0x8e, 0xec, 0x2d, 0x7a, 0xc2, 0x88, 0x52, 0x7e, - 0x50, 0xf7, 0xd0, 0x8a, 0x64, 0xc2, 0x0a, 0x07, 0xac, 0x8c, 0x69, 0xd3, 0x9f, 0x9d, 0xb4, 0x79, - 0x27, 0x28, 0x57, 0x9f, 0x06, 0x45, 0x28, 0x53, 0x6b, 0x08, 0x33, 0x3b, 0x9e, 0x5d, 0x9e, 0xca, - 0x2c, 0x94, 0x19, 0xb1, 0xe2, 0x04, 0xc4, 0xea, 0x93, 0x90, 0xdd, 0xb1, 0xdc, 0x8f, 0xae, 0x11, - 0x3e, 0xf6, 0x3a, 0x60, 0x25, 0x94, 0x4f, 0x28, 0x31, 0x9e, 0x6c, 0x97, 0x5f, 0x72, 0xfc, 0xa3, - 0x1f, 0x23, 0xf8, 0xe4, 0x74, 0x3c, 0x55, 0x1a, 0xe1, 0xe9, 0x25, 0x79, 0x9d, 0xf0, 0x58, 0x90, - 0xf1, 0xb7, 0x00, 0xef, 0x0d, 0x25, 0xf0, 0xb4, 0x18, 0x43, 0x6e, 0xe8, 0x99, 0xc0, 0x29, 0x98, - 0x0d, 0xe9, 0x08, 0x0a, 0xc9, 0x08, 0x4a, 0xe1, 0x59, 0x51, 0xf7, 0xac, 0xc8, 0x4c, 0xa1, 0xa8, - 0x07, 0xac, 0x70, 0x64, 0x2b, 0xea, 0x9e, 0x15, 0xd9, 0x08, 0x0a, 0xd9, 0x0a, 0xc7, 0xb3, 0x62, - 0x0b, 0xe0, 0x5a, 0xf7, 0xa6, 0xd1, 0x62, 0x66, 0xe4, 0xf8, 0x41, 0x7f, 0x18, 0xc7, 0x48, 0x8d, - 0x91, 0x40, 0xdb, 0x13, 0xa8, 0xdb, 0x90, 0xaf, 0x8f, 0x2e, 0xe9, 0x9b, 0x82, 0xe4, 0x25, 0xc8, - 0x50, 0x53, 0xda, 0x01, 0x9e, 0xbc, 0x23, 0x11, 0x09, 0x73, 0xd8, 0x23, 0xe5, 0xa3, 0xcc, 0x91, - 0x9e, 0x89, 0x99, 0xc3, 0x1e, 0xca, 0x33, 0x87, 0xd1, 0x14, 0x22, 0xcd, 0x91, 0x78, 0xb8, 0x39, - 0x8c, 0x08, 0x8b, 0xcd, 0x86, 0x6d, 0x13, 0xcd, 0xf2, 0x1c, 0x25, 0xb9, 0x1c, 0x4a, 0xc2, 0x75, - 0x18, 0x41, 0xe6, 0x84, 0x5d, 0xd1, 0xd9, 0xa1, 0xa1, 0x4f, 0xe0, 0xc5, 0x69, 0xb3, 0x23, 0xb4, - 0xc4, 0xec, 0x88, 0x6b, 0x79, 0x05, 0x6e, 0x9c, 0x61, 0x7f, 0x47, 0x98, 0x4a, 0x33, 0xac, 0x40, - 0xa1, 0x1c, 0x58, 0x81, 0x42, 0xac, 0xd6, 0xa1, 0x24, 0x54, 0xc9, 0x4e, 0x9c, 0xd0, 0x2a, 0xfc, - 0xd5, 0xae, 0x69, 0xb4, 0x5c, 0x97, 0xb1, 0x96, 0x1c, 0xbf, 0x54, 0x3d, 0x84, 0xa2, 0x50, 0xdc, - 0x73, 0xe8, 0x43, 0xcf, 0xf3, 0xdf, 0x0b, 0xa6, 0x71, 0x32, 0x55, 0x46, 0x59, 0x74, 0x7c, 0xc2, - 0xa5, 0x2d, 0xb8, 0x10, 0x9e, 0xad, 0xc8, 0x6b, 0xa1, 0x98, 0xe9, 0xf9, 0x3b, 0x3c, 0xe4, 0x2b, - 0x79, 0x7d, 0x54, 0xbc, 0xa3, 0x46, 0xb2, 0x24, 0xbb, 0xa8, 0xc6, 0xaf, 0xc6, 0x96, 0x36, 0xe1, - 0xf6, 0xd0, 0xcc, 0x14, 0x45, 0x12, 0x97, 0x49, 0x9e, 0x80, 0x39, 0x5f, 0x3a, 0x92, 0xc1, 0xa9, - 0x10, 0x70, 0x6a, 0x1c, 0x3c, 0x0a, 0x32, 0x19, 0x9c, 0x08, 0x01, 0x27, 0x64, 0xf0, 0xc7, 0xa1, - 0xe8, 0xcf, 0x43, 0x32, 0x7a, 0x2e, 0x04, 0x3d, 0x17, 0x82, 0x0e, 0xbf, 0x77, 0x32, 0x04, 0x9d, - 0x0c, 0xa0, 0xeb, 0x13, 0xef, 0x3d, 0x1f, 0x82, 0x9e, 0x0f, 0x41, 0x87, 0xdf, 0x5b, 0x0d, 0x41, - 0xab, 0x32, 0xfa, 0x13, 0x50, 0x0a, 0xa4, 0x1c, 0x19, 0x9e, 0x09, 0x81, 0x67, 0x64, 0xf8, 0x93, - 0xb8, 0x74, 0xda, 0x93, 0xf1, 0xa5, 0x10, 0x7c, 0x29, 0xec, 0xf6, 0xe1, 0xd6, 0xa7, 0x43, 0xe0, - 0xe9, 0xd0, 0xdb, 0x87, 0xe3, 0x95, 0x10, 0xbc, 0x22, 0xe3, 0xab, 0x50, 0x90, 0xb3, 0x8a, 0x8c, - 0xcd, 0x86, 0x60, 0xb3, 0x41, 0xbf, 0xfb, 0x52, 0x4a, 0x54, 0xa4, 0xe7, 0x26, 0x2c, 0x17, 0x5f, - 0x1a, 0x89, 0x22, 0x29, 0xc8, 0x24, 0x37, 0x60, 0x31, 0x2c, 0x69, 0x84, 0x70, 0x2c, 0xcb, 0x1c, - 0xc5, 0xb5, 0x45, 0x5f, 0xb2, 0xa0, 0xb8, 0x61, 0x4f, 0x66, 0x7e, 0x1e, 0x16, 0x42, 0x52, 0x47, - 0x08, 0xf1, 0xc3, 0x32, 0x71, 0x7e, 0x6d, 0xc9, 0x47, 0xec, 0xeb, 0xae, 0x24, 0xfa, 0xca, 0xb7, - 0x16, 0xa0, 0xc8, 0x53, 0xd4, 0xc1, 0xa0, 0x65, 0x0c, 0xb0, 0xdd, 0xff, 0x99, 0xc9, 0x1d, 0xd6, - 0x5a, 0x58, 0x6a, 0xe3, 0xb8, 0x73, 0x34, 0x5a, 0xcf, 0x4f, 0x6c, 0xb4, 0x3e, 0x32, 0xcb, 0x0d, - 0xa2, 0xfa, 0xad, 0xda, 0x58, 0xbf, 0xf5, 0xe0, 0x34, 0xda, 0x49, 0x6d, 0x57, 0x6d, 0xac, 0xed, - 0x8a, 0xa2, 0x09, 0xed, 0xbe, 0xae, 0x8f, 0x77, 0x5f, 0xcb, 0xd3, 0x78, 0x26, 0x37, 0x61, 0xd7, - 0xc7, 0x9b, 0xb0, 0x48, 0xa6, 0xf0, 0x5e, 0xec, 0xfa, 0x78, 0x2f, 0x36, 0x95, 0x69, 0x72, 0x4b, - 0x76, 0x7d, 0xbc, 0x25, 0x8b, 0x64, 0x0a, 0xef, 0xcc, 0x3e, 0x15, 0xd2, 0x99, 0x3d, 0x34, 0x8d, - 0x6a, 0x5a, 0x83, 0xb6, 0x1f, 0xd6, 0xa0, 0x7d, 0x68, 0xaa, 0x61, 0x53, 0xfb, 0xb4, 0x4f, 0x85, - 0xf4, 0x69, 0xd1, 0xc6, 0x4d, 0x68, 0xd7, 0xf6, 0xc3, 0xda, 0xb5, 0x19, 0x8c, 0x9b, 0xd4, 0xb5, - 0x6d, 0x04, 0xbb, 0xb6, 0x2b, 0xd3, 0xb8, 0xc2, 0x9b, 0xb7, 0xeb, 0xe3, 0xcd, 0xdb, 0x72, 0xf4, - 0x5a, 0x0c, 0xeb, 0xe1, 0x9e, 0x9f, 0xd8, 0xc3, 0xcd, 0xb4, 0xb8, 0xa3, 0x5a, 0xb9, 0xe7, 0x26, - 0xb5, 0x72, 0x0f, 0xcf, 0xc2, 0x3e, 0xbd, 0xa3, 0x7b, 0x66, 0x42, 0x47, 0xb7, 0x3a, 0x0b, 0xf5, - 0xad, 0xc6, 0xee, 0x56, 0x63, 0x77, 0xab, 0xb1, 0xbb, 0xd5, 0xd8, 0xfd, 0x64, 0x34, 0x76, 0xd5, - 0xe4, 0x6b, 0x6f, 0x5e, 0x8a, 0x2d, 0x5f, 0x86, 0x0c, 0xbf, 0xb5, 0x9a, 0x86, 0xf8, 0xde, 0xba, - 0x72, 0x1b, 0xfd, 0xbf, 0xa1, 0xc4, 0xe8, 0xff, 0x4d, 0x25, 0xbe, 0xb1, 0xfb, 0x8d, 0xef, 0x5c, - 0xbc, 0xed, 0x9f, 0xf0, 0xf3, 0x4d, 0xfc, 0x7c, 0xfb, 0x3b, 0x17, 0x63, 0xef, 0xe0, 0xe7, 0x5d, - 0xfc, 0x7c, 0x1f, 0x3f, 0xaf, 0x7c, 0xf7, 0x62, 0xec, 0x4b, 0xf8, 0xf9, 0x0a, 0x7e, 0xfe, 0x06, - 0x3f, 0x5f, 0xc3, 0xcf, 0x37, 0xbe, 0x8b, 0xfa, 0xf8, 0xf9, 0x36, 0x7e, 0x7f, 0x07, 0xff, 0xbf, - 0x8b, 0xff, 0xbf, 0x8f, 0xff, 0x5f, 0xf9, 0xd7, 0x8b, 0xb7, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x88, 0xd1, 0x85, 0x15, 0x94, 0x3e, 0x00, 0x00, + // 4580 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0xf8, 0x92, 0xc8, 0x43, 0x8a, 0x1a, 0x5d, 0xc9, 0x6b, 0x5a, 0x8e, 0xa9, 0x5d, 0xf9, + 0x25, 0xaf, 0x6d, 0xc9, 0x96, 0x77, 0xd7, 0x6b, 0x6e, 0x6c, 0x83, 0x92, 0xb8, 0x5a, 0xd9, 0x7a, + 0x65, 0x28, 0xd9, 0x6b, 0xff, 0x61, 0xcc, 0x7f, 0x34, 0xbc, 0xa4, 0xc6, 0x4b, 0xce, 0xd0, 0x33, + 0xc3, 0xdd, 0x95, 0x3f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, + 0x04, 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x3f, 0xe5, 0x4b, 0x5a, 0x03, 0x05, 0x8a, + 0xe4, 0x5b, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0xb7, 0x71, 0xd1, 0x00, 0xfe, + 0x52, 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xf4, 0x83, 0x3f, 0x49, 0x73, 0xee, + 0xf9, 0xfd, 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0x99, 0xcb, 0x81, 0x1f, 0x9d, 0x85, 0x93, 0x0d, + 0xd3, 0x6c, 0x34, 0xf1, 0x62, 0xdb, 0x32, 0x1d, 0x73, 0xbf, 0x53, 0x5f, 0xac, 0x61, 0x5b, 0xb3, + 0xf4, 0xb6, 0x63, 0x5a, 0x0b, 0x54, 0x86, 0x26, 0x98, 0xc6, 0x82, 0xd0, 0x98, 0xdb, 0x84, 0xc9, + 0x8b, 0x7a, 0x13, 0xaf, 0xba, 0x8a, 0x55, 0xec, 0xa0, 0xf3, 0x90, 0xac, 0xeb, 0x4d, 0x5c, 0x88, + 0x9d, 0x4c, 0xcc, 0x67, 0x97, 0xee, 0x5a, 0x08, 0x80, 0x16, 0xfc, 0x88, 0x1d, 0x22, 0x96, 0x29, + 0x62, 0xee, 0xdd, 0x24, 0x4c, 0x85, 0x8c, 0x22, 0x04, 0x49, 0x43, 0x6d, 0x11, 0xc6, 0xd8, 0x7c, + 0x46, 0xa6, 0xff, 0xa3, 0x02, 0x8c, 0xb5, 0x55, 0xed, 0x8a, 0xda, 0xc0, 0x85, 0x38, 0x15, 0x8b, + 0x47, 0x54, 0x04, 0xa8, 0xe1, 0x36, 0x36, 0x6a, 0xd8, 0xd0, 0x0e, 0x0b, 0x89, 0x93, 0x89, 0xf9, + 0x8c, 0xec, 0x91, 0xa0, 0xfb, 0x61, 0xb2, 0xdd, 0xd9, 0x6f, 0xea, 0x9a, 0xe2, 0x51, 0x83, 0x93, + 0x89, 0xf9, 0x94, 0x2c, 0xb1, 0x81, 0xd5, 0xae, 0xf2, 0xbd, 0x30, 0x71, 0x0d, 0xab, 0x57, 0xbc, + 0xaa, 0x59, 0xaa, 0x9a, 0x27, 0x62, 0x8f, 0xe2, 0x0a, 0xe4, 0x5a, 0xd8, 0xb6, 0xd5, 0x06, 0x56, + 0x9c, 0xc3, 0x36, 0x2e, 0x24, 0xe9, 0xea, 0x4f, 0xf6, 0xac, 0x3e, 0xb8, 0xf2, 0x2c, 0x47, 0xed, + 0x1e, 0xb6, 0x31, 0x2a, 0x43, 0x06, 0x1b, 0x9d, 0x16, 0x63, 0x48, 0xf5, 0xf1, 0x5f, 0xc5, 0xe8, + 0xb4, 0x82, 0x2c, 0x69, 0x02, 0xe3, 0x14, 0x63, 0x36, 0xb6, 0xae, 0xea, 0x1a, 0x2e, 0x8c, 0x52, + 0x82, 0x7b, 0x7b, 0x08, 0xaa, 0x6c, 0x3c, 0xc8, 0x21, 0x70, 0x68, 0x05, 0x32, 0xf8, 0xba, 0x83, + 0x0d, 0x5b, 0x37, 0x8d, 0xc2, 0x18, 0x25, 0xb9, 0x3b, 0x64, 0x17, 0x71, 0xb3, 0x16, 0xa4, 0xe8, + 0xe2, 0xd0, 0x39, 0x18, 0x33, 0xdb, 0x8e, 0x6e, 0x1a, 0x76, 0x21, 0x7d, 0x32, 0x36, 0x9f, 0x5d, + 0xfa, 0x4c, 0x68, 0x20, 0x6c, 0x33, 0x1d, 0x59, 0x28, 0xa3, 0x75, 0x90, 0x6c, 0xb3, 0x63, 0x69, + 0x58, 0xd1, 0xcc, 0x1a, 0x56, 0x74, 0xa3, 0x6e, 0x16, 0x32, 0x94, 0x60, 0xb6, 0x77, 0x21, 0x54, + 0x71, 0xc5, 0xac, 0xe1, 0x75, 0xa3, 0x6e, 0xca, 0x79, 0xdb, 0xf7, 0x8c, 0x4e, 0xc0, 0xa8, 0x7d, + 0x68, 0x38, 0xea, 0xf5, 0x42, 0x8e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0x9f, 0x14, 0x4c, 0x0c, 0x13, + 0x62, 0x17, 0x20, 0x55, 0x27, 0xab, 0x2c, 0xc4, 0x8f, 0xe3, 0x03, 0x86, 0xf1, 0x3b, 0x71, 0xf4, + 0x63, 0x3a, 0xb1, 0x0c, 0x59, 0x03, 0xdb, 0x0e, 0xae, 0xb1, 0x88, 0x48, 0x0c, 0x19, 0x53, 0xc0, + 0x40, 0xbd, 0x21, 0x95, 0xfc, 0x58, 0x21, 0x75, 0x19, 0x26, 0x5c, 0x93, 0x14, 0x4b, 0x35, 0x1a, + 0x22, 0x36, 0x17, 0xa3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x4c, 0x60, 0x72, 0x1e, 0xfb, 0x9e, 0xd1, + 0x2a, 0x80, 0x69, 0x60, 0xb3, 0xae, 0xd4, 0xb0, 0xd6, 0x2c, 0xa4, 0xfb, 0x78, 0x69, 0x9b, 0xa8, + 0xf4, 0x78, 0xc9, 0x64, 0x52, 0xad, 0x89, 0x1e, 0xeb, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, 0x64, + 0x87, 0xac, 0x27, 0xda, 0xf6, 0x20, 0x6f, 0x61, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa1, 0x46, + 0x2c, 0x44, 0xae, 0x4c, 0xe6, 0x30, 0xb6, 0xb0, 0x71, 0xcb, 0xfb, 0x88, 0xee, 0x04, 0x57, 0xa0, + 0xd0, 0xb0, 0x02, 0x9a, 0x85, 0x72, 0x42, 0xb8, 0xa5, 0xb6, 0xf0, 0xcc, 0x79, 0xc8, 0xfb, 0xdd, + 0x83, 0xa6, 0x21, 0x65, 0x3b, 0xaa, 0xe5, 0xd0, 0x28, 0x4c, 0xc9, 0xec, 0x01, 0x49, 0x90, 0xc0, + 0x46, 0x8d, 0x66, 0xb9, 0x94, 0x4c, 0xfe, 0x9d, 0x79, 0x14, 0xc6, 0x7d, 0xd3, 0x0f, 0x0b, 0x9c, + 0x7b, 0x75, 0x14, 0xa6, 0xc3, 0x62, 0x2e, 0x34, 0xfc, 0x4f, 0xc0, 0xa8, 0xd1, 0x69, 0xed, 0x63, + 0xab, 0x90, 0xa0, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xd5, 0x54, 0xf7, 0x71, 0xb3, 0x90, 0x3c, 0x19, + 0x9b, 0xcf, 0x2f, 0xdd, 0x3f, 0x54, 0x54, 0x2f, 0x6c, 0x10, 0x88, 0xcc, 0x90, 0xe8, 0x09, 0x48, + 0xf2, 0x14, 0x47, 0x18, 0x4e, 0x0f, 0xc7, 0x40, 0x62, 0x51, 0xa6, 0x38, 0x74, 0x3b, 0x64, 0xc8, + 0x5f, 0xe6, 0xdb, 0x51, 0x6a, 0x73, 0x9a, 0x08, 0x88, 0x5f, 0xd1, 0x0c, 0xa4, 0x69, 0x98, 0xd5, + 0xb0, 0x28, 0x0d, 0xee, 0x33, 0xd9, 0x98, 0x1a, 0xae, 0xab, 0x9d, 0xa6, 0xa3, 0x5c, 0x55, 0x9b, + 0x1d, 0x4c, 0x03, 0x26, 0x23, 0xe7, 0xb8, 0xf0, 0x19, 0x22, 0x43, 0xb3, 0x90, 0x65, 0x51, 0xa9, + 0x1b, 0x35, 0x7c, 0x9d, 0x66, 0x9f, 0x94, 0xcc, 0x02, 0x75, 0x9d, 0x48, 0xc8, 0xf4, 0x2f, 0xda, + 0xa6, 0x21, 0xb6, 0x96, 0x4e, 0x41, 0x04, 0x74, 0xfa, 0x47, 0x83, 0x89, 0xef, 0x8e, 0xf0, 0xe5, + 0x05, 0x63, 0x71, 0xee, 0x9b, 0x71, 0x48, 0xd2, 0xf3, 0x36, 0x01, 0xd9, 0xdd, 0xe7, 0x76, 0x2a, + 0xca, 0xea, 0xf6, 0xde, 0xf2, 0x46, 0x45, 0x8a, 0xa1, 0x3c, 0x00, 0x15, 0x5c, 0xdc, 0xd8, 0x2e, + 0xef, 0x4a, 0x71, 0xf7, 0x79, 0x7d, 0x6b, 0xf7, 0xdc, 0x19, 0x29, 0xe1, 0x02, 0xf6, 0x98, 0x20, + 0xe9, 0x55, 0x78, 0x64, 0x49, 0x4a, 0x21, 0x09, 0x72, 0x8c, 0x60, 0xfd, 0x72, 0x65, 0xf5, 0xdc, + 0x19, 0x69, 0xd4, 0x2f, 0x79, 0x64, 0x49, 0x1a, 0x43, 0xe3, 0x90, 0xa1, 0x92, 0xe5, 0xed, 0xed, + 0x0d, 0x29, 0xed, 0x72, 0x56, 0x77, 0xe5, 0xf5, 0xad, 0x35, 0x29, 0xe3, 0x72, 0xae, 0xc9, 0xdb, + 0x7b, 0x3b, 0x12, 0xb8, 0x0c, 0x9b, 0x95, 0x6a, 0xb5, 0xbc, 0x56, 0x91, 0xb2, 0xae, 0xc6, 0xf2, + 0x73, 0xbb, 0x95, 0xaa, 0x94, 0xf3, 0x99, 0xf5, 0xc8, 0x92, 0x34, 0xee, 0x4e, 0x51, 0xd9, 0xda, + 0xdb, 0x94, 0xf2, 0x68, 0x12, 0xc6, 0xd9, 0x14, 0xc2, 0x88, 0x89, 0x80, 0xe8, 0xdc, 0x19, 0x49, + 0xea, 0x1a, 0xc2, 0x58, 0x26, 0x7d, 0x82, 0x73, 0x67, 0x24, 0x34, 0xb7, 0x02, 0x29, 0x1a, 0x5d, + 0x08, 0x41, 0x7e, 0xa3, 0xbc, 0x5c, 0xd9, 0x50, 0xb6, 0x77, 0x76, 0xd7, 0xb7, 0xb7, 0xca, 0x1b, + 0x52, 0xac, 0x2b, 0x93, 0x2b, 0x9f, 0xdb, 0x5b, 0x97, 0x2b, 0xab, 0x52, 0xdc, 0x2b, 0xdb, 0xa9, + 0x94, 0x77, 0x2b, 0xab, 0x52, 0x62, 0x4e, 0x83, 0xe9, 0xb0, 0x3c, 0x13, 0x7a, 0x32, 0x3c, 0x5b, + 0x1c, 0xef, 0xb3, 0xc5, 0x94, 0xab, 0x67, 0x8b, 0xbf, 0x1c, 0x83, 0xa9, 0x90, 0x5c, 0x1b, 0x3a, + 0xc9, 0x93, 0x90, 0x62, 0x21, 0xca, 0xaa, 0xcf, 0x7d, 0xa1, 0x49, 0x9b, 0x06, 0x6c, 0x4f, 0x05, + 0xa2, 0x38, 0x6f, 0x05, 0x4e, 0xf4, 0xa9, 0xc0, 0x84, 0xa2, 0xc7, 0xc8, 0x57, 0x62, 0x50, 0xe8, + 0xc7, 0x1d, 0x91, 0x28, 0xe2, 0xbe, 0x44, 0x71, 0x21, 0x68, 0xc0, 0xa9, 0xfe, 0x6b, 0xe8, 0xb1, + 0xe2, 0xcd, 0x18, 0x9c, 0x08, 0x6f, 0x54, 0x42, 0x6d, 0x78, 0x02, 0x46, 0x5b, 0xd8, 0x39, 0x30, + 0x45, 0xb1, 0xbe, 0x27, 0xa4, 0x04, 0x90, 0xe1, 0xa0, 0xaf, 0x38, 0xca, 0x5b, 0x43, 0x12, 0xfd, + 0xba, 0x0d, 0x66, 0x4d, 0x8f, 0xa5, 0x9f, 0x8f, 0xc3, 0x2d, 0xa1, 0xe4, 0xa1, 0x86, 0xde, 0x01, + 0xa0, 0x1b, 0xed, 0x8e, 0xc3, 0x0a, 0x32, 0xcb, 0x4f, 0x19, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, + 0x8e, 0xe3, 0x8e, 0x27, 0xe8, 0x38, 0x30, 0x11, 0x55, 0x38, 0xdf, 0x35, 0x34, 0x49, 0x0d, 0x2d, + 0xf6, 0x59, 0x69, 0x4f, 0xad, 0x7b, 0x08, 0x24, 0xad, 0xa9, 0x63, 0xc3, 0x51, 0x6c, 0xc7, 0xc2, + 0x6a, 0x4b, 0x37, 0x1a, 0x34, 0x01, 0xa7, 0x4b, 0xa9, 0xba, 0xda, 0xb4, 0xb1, 0x3c, 0xc1, 0x86, + 0xab, 0x62, 0x94, 0x20, 0x68, 0x95, 0xb1, 0x3c, 0x88, 0x51, 0x1f, 0x82, 0x0d, 0xbb, 0x88, 0xb9, + 0xaf, 0x8d, 0x41, 0xd6, 0xd3, 0xd6, 0xa1, 0x53, 0x90, 0x7b, 0x51, 0xbd, 0xaa, 0x2a, 0xa2, 0x55, + 0x67, 0x9e, 0xc8, 0x12, 0xd9, 0x0e, 0x6f, 0xd7, 0x1f, 0x82, 0x69, 0xaa, 0x62, 0x76, 0x1c, 0x6c, + 0x29, 0x5a, 0x53, 0xb5, 0x6d, 0xea, 0xb4, 0x34, 0x55, 0x45, 0x64, 0x6c, 0x9b, 0x0c, 0xad, 0x88, + 0x11, 0x74, 0x16, 0xa6, 0x28, 0xa2, 0xd5, 0x69, 0x3a, 0x7a, 0xbb, 0x89, 0x15, 0xf2, 0xf2, 0x60, + 0xd3, 0x44, 0xec, 0x5a, 0x36, 0x49, 0x34, 0x36, 0xb9, 0x02, 0xb1, 0xc8, 0x46, 0xab, 0x70, 0x07, + 0x85, 0x35, 0xb0, 0x81, 0x2d, 0xd5, 0xc1, 0x0a, 0x7e, 0xa9, 0xa3, 0x36, 0x6d, 0x45, 0x35, 0x6a, + 0xca, 0x81, 0x6a, 0x1f, 0x14, 0xa6, 0x09, 0xc1, 0x72, 0xbc, 0x10, 0x93, 0x6f, 0x23, 0x8a, 0x6b, + 0x5c, 0xaf, 0x42, 0xd5, 0xca, 0x46, 0xed, 0x92, 0x6a, 0x1f, 0xa0, 0x12, 0x9c, 0xa0, 0x2c, 0xb6, + 0x63, 0xe9, 0x46, 0x43, 0xd1, 0x0e, 0xb0, 0x76, 0x45, 0xe9, 0x38, 0xf5, 0xf3, 0x85, 0xdb, 0xbd, + 0xf3, 0x53, 0x0b, 0xab, 0x54, 0x67, 0x85, 0xa8, 0xec, 0x39, 0xf5, 0xf3, 0xa8, 0x0a, 0x39, 0xb2, + 0x19, 0x2d, 0xfd, 0x65, 0xac, 0xd4, 0x4d, 0x8b, 0x56, 0x96, 0x7c, 0xc8, 0xc9, 0xf6, 0x78, 0x70, + 0x61, 0x9b, 0x03, 0x36, 0xcd, 0x1a, 0x2e, 0xa5, 0xaa, 0x3b, 0x95, 0xca, 0xaa, 0x9c, 0x15, 0x2c, + 0x17, 0x4d, 0x8b, 0x04, 0x54, 0xc3, 0x74, 0x1d, 0x9c, 0x65, 0x01, 0xd5, 0x30, 0x85, 0x7b, 0xcf, + 0xc2, 0x94, 0xa6, 0xb1, 0x35, 0xeb, 0x9a, 0xc2, 0x5b, 0x7c, 0xbb, 0x20, 0xf9, 0x9c, 0xa5, 0x69, + 0x6b, 0x4c, 0x81, 0xc7, 0xb8, 0x8d, 0x1e, 0x83, 0x5b, 0xba, 0xce, 0xf2, 0x02, 0x27, 0x7b, 0x56, + 0x19, 0x84, 0x9e, 0x85, 0xa9, 0xf6, 0x61, 0x2f, 0x10, 0xf9, 0x66, 0x6c, 0x1f, 0x06, 0x61, 0x77, + 0xd3, 0xd7, 0x36, 0x0b, 0x6b, 0xaa, 0x83, 0x6b, 0x85, 0x5b, 0xbd, 0xda, 0x9e, 0x01, 0xb4, 0x08, + 0x92, 0xa6, 0x29, 0xd8, 0x50, 0xf7, 0x9b, 0x58, 0x51, 0x2d, 0x6c, 0xa8, 0x76, 0x61, 0xd6, 0xab, + 0x9c, 0xd7, 0xb4, 0x0a, 0x1d, 0x2d, 0xd3, 0x41, 0x74, 0x1a, 0x26, 0xcd, 0xfd, 0x17, 0x35, 0x16, + 0x59, 0x4a, 0xdb, 0xc2, 0x75, 0xfd, 0x7a, 0xe1, 0x2e, 0xea, 0xa6, 0x09, 0x32, 0x40, 0xe3, 0x6a, + 0x87, 0x8a, 0xd1, 0x7d, 0x20, 0x69, 0xf6, 0x81, 0x6a, 0xb5, 0x69, 0x69, 0xb7, 0xdb, 0xaa, 0x86, + 0x0b, 0x77, 0x33, 0x55, 0x26, 0xdf, 0x12, 0x62, 0x12, 0xd9, 0xf6, 0x35, 0xbd, 0xee, 0x08, 0xc6, + 0x7b, 0x59, 0x64, 0x53, 0x19, 0x67, 0xbb, 0x0c, 0xd3, 0x1d, 0x43, 0x37, 0x1c, 0x6c, 0xb5, 0x2d, + 0x4c, 0x9a, 0x78, 0x76, 0x12, 0x0b, 0xff, 0x34, 0xd6, 0xa7, 0x0d, 0xdf, 0xf3, 0x6a, 0xb3, 0x00, + 0x90, 0xa7, 0x3a, 0xbd, 0xc2, 0xb9, 0x12, 0xe4, 0xbc, 0x71, 0x81, 0x32, 0xc0, 0x22, 0x43, 0x8a, + 0x91, 0x1a, 0xbb, 0xb2, 0xbd, 0x4a, 0xaa, 0xe3, 0xf3, 0x15, 0x29, 0x4e, 0xaa, 0xf4, 0xc6, 0xfa, + 0x6e, 0x45, 0x91, 0xf7, 0xb6, 0x76, 0xd7, 0x37, 0x2b, 0x52, 0xe2, 0x74, 0x26, 0xfd, 0xde, 0x98, + 0x74, 0xe3, 0xc6, 0x8d, 0x1b, 0xf1, 0xb9, 0xef, 0xc4, 0x21, 0xef, 0xef, 0x8c, 0xd1, 0x67, 0xe1, + 0x56, 0xf1, 0x1a, 0x6b, 0x63, 0x47, 0xb9, 0xa6, 0x5b, 0x34, 0x54, 0x5b, 0x2a, 0xeb, 0x2d, 0x5d, + 0x2f, 0x4f, 0x73, 0xad, 0x2a, 0x76, 0x9e, 0xd5, 0x2d, 0x12, 0x88, 0x2d, 0xd5, 0x41, 0x1b, 0x30, + 0x6b, 0x98, 0x8a, 0xed, 0xa8, 0x46, 0x4d, 0xb5, 0x6a, 0x4a, 0xf7, 0x02, 0x41, 0x51, 0x35, 0x0d, + 0xdb, 0xb6, 0xc9, 0x4a, 0x84, 0xcb, 0xf2, 0x19, 0xc3, 0xac, 0x72, 0xe5, 0x6e, 0xee, 0x2c, 0x73, + 0xd5, 0x40, 0x44, 0x24, 0xfa, 0x45, 0xc4, 0xed, 0x90, 0x69, 0xa9, 0x6d, 0x05, 0x1b, 0x8e, 0x75, + 0x48, 0xfb, 0xb9, 0xb4, 0x9c, 0x6e, 0xa9, 0xed, 0x0a, 0x79, 0xfe, 0xe4, 0xf6, 0xc0, 0xeb, 0xc7, + 0x1f, 0x26, 0x20, 0xe7, 0xed, 0xe9, 0x48, 0x8b, 0xac, 0xd1, 0xfc, 0x1d, 0xa3, 0x27, 0xfc, 0xce, + 0x81, 0x1d, 0xe0, 0xc2, 0x0a, 0x49, 0xec, 0xa5, 0x51, 0xd6, 0x69, 0xc9, 0x0c, 0x49, 0x8a, 0x2a, + 0x39, 0xd3, 0x98, 0xf5, 0xef, 0x69, 0x99, 0x3f, 0xa1, 0x35, 0x18, 0x7d, 0xd1, 0xa6, 0xdc, 0xa3, + 0x94, 0xfb, 0xae, 0xc1, 0xdc, 0x4f, 0x55, 0x29, 0x79, 0xe6, 0xa9, 0xaa, 0xb2, 0xb5, 0x2d, 0x6f, + 0x96, 0x37, 0x64, 0x0e, 0x47, 0xb7, 0x41, 0xb2, 0xa9, 0xbe, 0x7c, 0xe8, 0x2f, 0x01, 0x54, 0x34, + 0xac, 0xe3, 0x6f, 0x83, 0xe4, 0x35, 0xac, 0x5e, 0xf1, 0x27, 0x5e, 0x2a, 0xfa, 0x04, 0x43, 0x7f, + 0x11, 0x52, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1a, 0x41, 0x69, 0x48, 0xae, 0x6c, 0xcb, 0x24, + 0xfc, 0x25, 0xc8, 0x31, 0xa9, 0xb2, 0xb3, 0x5e, 0x59, 0xa9, 0x48, 0xf1, 0xb9, 0xb3, 0x30, 0xca, + 0x9c, 0x40, 0x8e, 0x86, 0xeb, 0x06, 0x69, 0x84, 0x3f, 0x72, 0x8e, 0x98, 0x18, 0xdd, 0xdb, 0x5c, + 0xae, 0xc8, 0x52, 0xdc, 0xbb, 0xbd, 0x36, 0xe4, 0xbc, 0xed, 0xdc, 0x4f, 0x27, 0xa6, 0xfe, 0x36, + 0x06, 0x59, 0x4f, 0x7b, 0x46, 0x1a, 0x03, 0xb5, 0xd9, 0x34, 0xaf, 0x29, 0x6a, 0x53, 0x57, 0x6d, + 0x1e, 0x14, 0x40, 0x45, 0x65, 0x22, 0x19, 0x76, 0xd3, 0x7e, 0x2a, 0xc6, 0xbf, 0x11, 0x03, 0x29, + 0xd8, 0xda, 0x05, 0x0c, 0x8c, 0xfd, 0x4c, 0x0d, 0x7c, 0x3d, 0x06, 0x79, 0x7f, 0x3f, 0x17, 0x30, + 0xef, 0xd4, 0xcf, 0xd4, 0xbc, 0x77, 0xe2, 0x30, 0xee, 0xeb, 0xe2, 0x86, 0xb5, 0xee, 0x25, 0x98, + 0xd4, 0x6b, 0xb8, 0xd5, 0x36, 0x1d, 0x6c, 0x68, 0x87, 0x4a, 0x13, 0x5f, 0xc5, 0xcd, 0xc2, 0x1c, + 0x4d, 0x14, 0x8b, 0x83, 0xfb, 0xc4, 0x85, 0xf5, 0x2e, 0x6e, 0x83, 0xc0, 0x4a, 0x53, 0xeb, 0xab, + 0x95, 0xcd, 0x9d, 0xed, 0xdd, 0xca, 0xd6, 0xca, 0x73, 0xca, 0xde, 0xd6, 0xd3, 0x5b, 0xdb, 0xcf, + 0x6e, 0xc9, 0x92, 0x1e, 0x50, 0xfb, 0x04, 0x8f, 0xfa, 0x0e, 0x48, 0x41, 0xa3, 0xd0, 0xad, 0x10, + 0x66, 0x96, 0x34, 0x82, 0xa6, 0x60, 0x62, 0x6b, 0x5b, 0xa9, 0xae, 0xaf, 0x56, 0x94, 0xca, 0xc5, + 0x8b, 0x95, 0x95, 0xdd, 0x2a, 0x7b, 0x71, 0x76, 0xb5, 0x77, 0xfd, 0x87, 0xfa, 0xb5, 0x04, 0x4c, + 0x85, 0x58, 0x82, 0xca, 0xbc, 0x67, 0x67, 0xaf, 0x11, 0x0f, 0x0e, 0x63, 0xfd, 0x02, 0xe9, 0x0a, + 0x76, 0x54, 0xcb, 0xe1, 0x2d, 0xfe, 0x7d, 0x40, 0xbc, 0x64, 0x38, 0x7a, 0x5d, 0xc7, 0x16, 0xbf, + 0x67, 0x60, 0x8d, 0xfc, 0x44, 0x57, 0xce, 0xae, 0x1a, 0x1e, 0x00, 0xd4, 0x36, 0x6d, 0xdd, 0xd1, + 0xaf, 0x62, 0x45, 0x37, 0xc4, 0xa5, 0x04, 0x69, 0xec, 0x93, 0xb2, 0x24, 0x46, 0xd6, 0x0d, 0xc7, + 0xd5, 0x36, 0x70, 0x43, 0x0d, 0x68, 0x93, 0x04, 0x9e, 0x90, 0x25, 0x31, 0xe2, 0x6a, 0x9f, 0x82, + 0x5c, 0xcd, 0xec, 0x90, 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x11, 0x93, 0xb3, 0x4c, 0xe6, 0xaa, 0xf0, + 0x3e, 0xb6, 0x7b, 0x1b, 0x92, 0x93, 0xb3, 0x4c, 0xc6, 0x54, 0xee, 0x85, 0x09, 0xb5, 0xd1, 0xb0, + 0x08, 0xb9, 0x20, 0x62, 0x9d, 0x79, 0xde, 0x15, 0x53, 0xc5, 0x99, 0xa7, 0x20, 0x2d, 0xfc, 0x40, + 0x4a, 0x32, 0xf1, 0x84, 0xd2, 0x66, 0x77, 0x52, 0xf1, 0xf9, 0x8c, 0x9c, 0x36, 0xc4, 0xe0, 0x29, + 0xc8, 0xe9, 0xb6, 0xd2, 0xbd, 0x1c, 0x8d, 0x9f, 0x8c, 0xcf, 0xa7, 0xe5, 0xac, 0x6e, 0xbb, 0xb7, + 0x61, 0x73, 0x6f, 0xc6, 0x21, 0xef, 0xbf, 0xdc, 0x45, 0xab, 0x90, 0x6e, 0x9a, 0x9a, 0x4a, 0x43, + 0x8b, 0xfd, 0xb2, 0x30, 0x1f, 0x71, 0x1f, 0xbc, 0xb0, 0xc1, 0xf5, 0x65, 0x17, 0x39, 0xf3, 0x8f, + 0x31, 0x48, 0x0b, 0x31, 0x3a, 0x01, 0xc9, 0xb6, 0xea, 0x1c, 0x50, 0xba, 0xd4, 0x72, 0x5c, 0x8a, + 0xc9, 0xf4, 0x99, 0xc8, 0xed, 0xb6, 0x6a, 0xd0, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xf6, 0xb5, 0x89, + 0xd5, 0x1a, 0x6d, 0xfb, 0xcd, 0x56, 0x0b, 0x1b, 0x8e, 0x2d, 0xf6, 0x95, 0xcb, 0x57, 0xb8, 0x18, + 0xdd, 0x0f, 0x93, 0x8e, 0xa5, 0xea, 0x4d, 0x9f, 0x6e, 0x92, 0xea, 0x4a, 0x62, 0xc0, 0x55, 0x2e, + 0xc1, 0x6d, 0x82, 0xb7, 0x86, 0x1d, 0x55, 0x3b, 0xc0, 0xb5, 0x2e, 0x68, 0x94, 0xde, 0x1c, 0xde, + 0xca, 0x15, 0x56, 0xf9, 0xb8, 0xc0, 0xce, 0x7d, 0x2f, 0x06, 0x93, 0xe2, 0x45, 0xa5, 0xe6, 0x3a, + 0x6b, 0x13, 0x40, 0x35, 0x0c, 0xd3, 0xf1, 0xba, 0xab, 0x37, 0x94, 0x7b, 0x70, 0x0b, 0x65, 0x17, + 0x24, 0x7b, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x9b, 0x85, 0x2c, 0xbf, 0xb9, 0xa7, + 0x3f, 0xff, 0xb0, 0x57, 0x5b, 0x60, 0x22, 0xf2, 0x46, 0x83, 0xa6, 0x21, 0xb5, 0x8f, 0x1b, 0xba, + 0xc1, 0xef, 0x13, 0xd9, 0x83, 0xb8, 0xa5, 0x4c, 0xba, 0xb7, 0x94, 0xcb, 0x97, 0x61, 0x4a, 0x33, + 0x5b, 0x41, 0x73, 0x97, 0xa5, 0xc0, 0xeb, 0xb5, 0x7d, 0x29, 0xf6, 0x3c, 0x74, 0x5b, 0xcc, 0x2f, + 0xc7, 0x13, 0x6b, 0x3b, 0xcb, 0x5f, 0x8d, 0xcf, 0xac, 0x31, 0xdc, 0x8e, 0x58, 0xa6, 0x8c, 0xeb, + 0x4d, 0xac, 0x11, 0xd3, 0xe1, 0xc7, 0xf7, 0xc0, 0x83, 0x0d, 0xdd, 0x39, 0xe8, 0xec, 0x2f, 0x68, + 0x66, 0x6b, 0xb1, 0x61, 0x36, 0xcc, 0xee, 0xcf, 0x5d, 0xe4, 0x89, 0x3e, 0xd0, 0xff, 0xf8, 0x4f, + 0x5e, 0x19, 0x57, 0x3a, 0x13, 0xf9, 0xfb, 0x58, 0x69, 0x0b, 0xa6, 0xb8, 0xb2, 0x42, 0xef, 0xdc, + 0xd9, 0xab, 0x01, 0x1a, 0x78, 0xef, 0x52, 0xf8, 0xc6, 0xbb, 0xb4, 0x56, 0xcb, 0x93, 0x1c, 0x4a, + 0xc6, 0xd8, 0x0b, 0x44, 0x49, 0x86, 0x5b, 0x7c, 0x7c, 0xec, 0x5c, 0x62, 0x2b, 0x82, 0xf1, 0x3b, + 0x9c, 0x71, 0xca, 0xc3, 0x58, 0xe5, 0xd0, 0xd2, 0x0a, 0x8c, 0x1f, 0x87, 0xeb, 0xef, 0x38, 0x57, + 0x0e, 0x7b, 0x49, 0xd6, 0x60, 0x82, 0x92, 0x68, 0x1d, 0xdb, 0x31, 0x5b, 0x34, 0xe9, 0x0d, 0xa6, + 0xf9, 0xfb, 0x77, 0xd9, 0x41, 0xc9, 0x13, 0xd8, 0x8a, 0x8b, 0x2a, 0x95, 0x80, 0xfe, 0xcc, 0x50, + 0xc3, 0x5a, 0x33, 0x82, 0xe1, 0x2d, 0x6e, 0x88, 0xab, 0x5f, 0x7a, 0x06, 0xa6, 0xc9, 0xff, 0x34, + 0x27, 0x79, 0x2d, 0x89, 0xbe, 0x65, 0x2a, 0x7c, 0xef, 0x15, 0x76, 0x16, 0xa7, 0x5c, 0x02, 0x8f, + 0x4d, 0x9e, 0x5d, 0x6c, 0x60, 0xc7, 0xc1, 0x96, 0xad, 0xa8, 0xcd, 0x30, 0xf3, 0x3c, 0xaf, 0xe9, + 0x85, 0x2f, 0xbc, 0xef, 0xdf, 0xc5, 0x35, 0x86, 0x2c, 0x37, 0x9b, 0xa5, 0x3d, 0xb8, 0x35, 0x24, + 0x2a, 0x86, 0xe0, 0x7c, 0x8d, 0x73, 0x4e, 0xf7, 0x44, 0x06, 0xa1, 0xdd, 0x01, 0x21, 0x77, 0xf7, + 0x72, 0x08, 0xce, 0xdf, 0xe3, 0x9c, 0x88, 0x63, 0xc5, 0x96, 0x12, 0xc6, 0xa7, 0x60, 0xf2, 0x2a, + 0xb6, 0xf6, 0x4d, 0x9b, 0x5f, 0x8d, 0x0c, 0x41, 0xf7, 0x3a, 0xa7, 0x9b, 0xe0, 0x40, 0x7a, 0x57, + 0x42, 0xb8, 0x1e, 0x83, 0x74, 0x5d, 0xd5, 0xf0, 0x10, 0x14, 0x5f, 0xe4, 0x14, 0x63, 0x44, 0x9f, + 0x40, 0xcb, 0x90, 0x6b, 0x98, 0xbc, 0x2c, 0x45, 0xc3, 0xdf, 0xe0, 0xf0, 0xac, 0xc0, 0x70, 0x8a, + 0xb6, 0xd9, 0xee, 0x34, 0x49, 0xcd, 0x8a, 0xa6, 0xf8, 0x7d, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x18, + 0x6e, 0xfd, 0x03, 0x41, 0x61, 0x7b, 0xfc, 0xf9, 0x24, 0x64, 0x4d, 0xa3, 0x79, 0x68, 0x1a, 0xc3, + 0x18, 0xf1, 0x25, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x40, 0x66, 0xd8, 0x8d, 0xf8, 0xc3, 0xf7, + 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x06, 0x13, 0x22, 0x41, 0xe9, 0xa6, 0x31, 0x04, 0xc5, 0x1f, 0x71, + 0x8a, 0xbc, 0x07, 0xc6, 0x97, 0xe1, 0x60, 0xdb, 0x69, 0xe0, 0x61, 0x48, 0xde, 0x14, 0xcb, 0xe0, + 0x10, 0xee, 0xca, 0x7d, 0x6c, 0x68, 0x07, 0xc3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, + 0x0a, 0x8c, 0xb7, 0x54, 0xcb, 0x3e, 0x50, 0x9b, 0x43, 0x6d, 0xc7, 0x1f, 0x73, 0x8e, 0x9c, 0x0b, + 0xe2, 0x1e, 0xe9, 0x18, 0xc7, 0xa1, 0xf9, 0xaa, 0xf0, 0x88, 0x07, 0xc6, 0x8f, 0x9e, 0xed, 0xd0, + 0x0b, 0xa8, 0xe3, 0xb0, 0x7d, 0x4d, 0x1c, 0x3d, 0x86, 0xdd, 0xf4, 0x32, 0x5e, 0x80, 0x8c, 0xad, + 0xbf, 0x3c, 0x14, 0xcd, 0x9f, 0x88, 0x9d, 0xa6, 0x00, 0x02, 0x7e, 0x0e, 0x6e, 0x0b, 0x2d, 0x13, + 0x43, 0x90, 0xfd, 0x29, 0x27, 0x3b, 0x11, 0x52, 0x2a, 0x78, 0x4a, 0x38, 0x2e, 0xe5, 0x9f, 0x89, + 0x94, 0x80, 0x03, 0x5c, 0x3b, 0xe4, 0x45, 0xc1, 0x56, 0xeb, 0xc7, 0xf3, 0xda, 0x9f, 0x0b, 0xaf, + 0x31, 0xac, 0xcf, 0x6b, 0xbb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5f, 0xbf, 0x2e, 0x12, 0x2b, 0x43, + 0xef, 0xf9, 0x77, 0xf7, 0xff, 0xc1, 0x8c, 0xeb, 0x4e, 0xd1, 0x91, 0xda, 0x4a, 0x4b, 0x6d, 0x0f, + 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xdb, 0xd2, 0xda, 0x9b, 0x6a, 0x9b, 0x90, 0x5f, 0x86, + 0x82, 0x20, 0xef, 0x18, 0x16, 0xd6, 0xcc, 0x86, 0xa1, 0xbf, 0x8c, 0x6b, 0x43, 0x50, 0xff, 0x45, + 0x60, 0xab, 0xf6, 0x3c, 0x70, 0xc2, 0xbc, 0x0e, 0x92, 0xdb, 0xab, 0x28, 0x7a, 0xab, 0x6d, 0x5a, + 0x4e, 0x04, 0xe3, 0x5f, 0x8a, 0x9d, 0x72, 0x71, 0xeb, 0x14, 0x56, 0xaa, 0x40, 0x9e, 0x3e, 0x0e, + 0x1b, 0x92, 0x7f, 0xc5, 0x89, 0xc6, 0xbb, 0x28, 0x9e, 0x38, 0x34, 0xb3, 0xd5, 0x56, 0xad, 0x61, + 0xf2, 0xdf, 0x5f, 0x8b, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0x38, 0x87, 0x6d, 0x4c, 0xaa, 0xfd, 0x10, + 0x0c, 0xdf, 0x14, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x86, 0xa0, 0xf8, 0x1b, 0x41, 0x21, + 0x30, 0x84, 0xe2, 0x73, 0xdd, 0x42, 0x6b, 0xe1, 0x86, 0x6e, 0x3b, 0x16, 0xeb, 0x83, 0x07, 0x53, + 0x7d, 0xeb, 0x7d, 0x7f, 0x13, 0x26, 0x7b, 0xa0, 0xa5, 0xa7, 0x60, 0x22, 0xd0, 0x62, 0xa0, 0xa8, + 0x6f, 0x16, 0x0a, 0x3f, 0xff, 0x21, 0x4f, 0x46, 0xfe, 0x0e, 0xa3, 0xb4, 0x41, 0xf6, 0xdd, 0xdf, + 0x07, 0x44, 0x93, 0xbd, 0xf2, 0xa1, 0xbb, 0xf5, 0xbe, 0x36, 0xa0, 0x74, 0x11, 0xc6, 0x7d, 0x3d, + 0x40, 0x34, 0xd5, 0x2f, 0x70, 0xaa, 0x9c, 0xb7, 0x05, 0x28, 0x9d, 0x85, 0x24, 0xa9, 0xe7, 0xd1, + 0xf0, 0x5f, 0xe4, 0x70, 0xaa, 0x5e, 0x7a, 0x1c, 0xd2, 0xa2, 0x8e, 0x47, 0x43, 0x7f, 0x89, 0x43, + 0x5d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0d, 0xff, 0x65, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xde, 0x85, + 0xdf, 0xfe, 0x95, 0x24, 0xcf, 0xc3, 0xc2, 0x77, 0x17, 0x60, 0x8c, 0x17, 0xef, 0x68, 0xf4, 0xe7, + 0xf9, 0xe4, 0x02, 0x51, 0x7a, 0x14, 0x52, 0x43, 0x3a, 0xfc, 0x57, 0x39, 0x94, 0xe9, 0x97, 0x56, + 0x20, 0xeb, 0x29, 0xd8, 0xd1, 0xf0, 0x5f, 0xe3, 0x70, 0x2f, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x34, + 0xc1, 0xaf, 0x0b, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, 0x68, 0xf4, 0x6f, 0x08, 0xaf, 0x0b, + 0x48, 0xe9, 0x49, 0xc8, 0xb8, 0xf9, 0x37, 0x1a, 0xff, 0x9b, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0x78, + 0xf2, 0x7f, 0x34, 0xc5, 0x6f, 0x09, 0x0f, 0x78, 0x50, 0xe4, 0x18, 0x05, 0x6b, 0x7a, 0x34, 0xd3, + 0x6f, 0x8b, 0x63, 0x14, 0x28, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa6, 0xf8, 0x1d, 0xb1, 0x9b, + 0x54, 0x9f, 0x98, 0x11, 0x2c, 0x92, 0xd1, 0x1c, 0xbf, 0x2b, 0xcc, 0x08, 0xd4, 0xc8, 0xd2, 0x0e, + 0xa0, 0xde, 0x02, 0x19, 0xcd, 0xf7, 0x2a, 0xe7, 0x9b, 0xec, 0xa9, 0x8f, 0xa5, 0x67, 0xe1, 0x44, + 0x78, 0x71, 0x8c, 0x66, 0xfd, 0xc2, 0x87, 0x81, 0xd7, 0x19, 0x6f, 0x6d, 0x2c, 0xed, 0x76, 0xb3, + 0xac, 0xb7, 0x30, 0x46, 0xd3, 0xbe, 0xf6, 0xa1, 0x3f, 0xd1, 0x7a, 0xeb, 0x62, 0xa9, 0x0c, 0xd0, + 0xad, 0x49, 0xd1, 0x5c, 0xaf, 0x73, 0x2e, 0x0f, 0x88, 0x1c, 0x0d, 0x5e, 0x92, 0xa2, 0xf1, 0x5f, + 0x14, 0x47, 0x83, 0x23, 0xc8, 0xd1, 0x10, 0xd5, 0x28, 0x1a, 0xfd, 0x86, 0x38, 0x1a, 0x02, 0x52, + 0xba, 0x00, 0x69, 0xa3, 0xd3, 0x6c, 0x92, 0xd8, 0x42, 0x83, 0x3f, 0x23, 0x2a, 0xfc, 0xf3, 0x47, + 0x1c, 0x2c, 0x00, 0xa5, 0xb3, 0x90, 0xc2, 0xad, 0x7d, 0x5c, 0x8b, 0x42, 0xfe, 0xcb, 0x47, 0x22, + 0x9f, 0x10, 0xed, 0xd2, 0x93, 0x00, 0xec, 0x65, 0x9a, 0xfe, 0x4a, 0x14, 0x81, 0xfd, 0xd7, 0x8f, + 0xf8, 0x17, 0x0a, 0x5d, 0x48, 0x97, 0x80, 0x7d, 0xef, 0x30, 0x98, 0xe0, 0x7d, 0x3f, 0x01, 0x7d, + 0x01, 0x7f, 0x0c, 0xc6, 0x5e, 0xb4, 0x4d, 0xc3, 0x51, 0x1b, 0x51, 0xe8, 0x7f, 0xe3, 0x68, 0xa1, + 0x4f, 0x1c, 0xd6, 0x32, 0x2d, 0xec, 0xa8, 0x0d, 0x3b, 0x0a, 0xfb, 0xef, 0x1c, 0xeb, 0x02, 0x08, + 0x58, 0x53, 0x6d, 0x67, 0x98, 0x75, 0xff, 0x87, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0x7f, 0x05, + 0x1f, 0x46, 0x61, 0x3f, 0x10, 0x46, 0x73, 0xfd, 0xd2, 0xe3, 0x90, 0x21, 0xff, 0xb2, 0xaf, 0x76, + 0x22, 0xc0, 0xff, 0xc9, 0xc1, 0x5d, 0x04, 0x99, 0xd9, 0x76, 0x6a, 0x8e, 0x1e, 0xed, 0xec, 0xff, + 0xe2, 0x3b, 0x2d, 0xf4, 0x4b, 0x65, 0xc8, 0xda, 0x4e, 0xad, 0xd6, 0xe1, 0x1d, 0x4d, 0x04, 0xfc, + 0xc7, 0x1f, 0xb9, 0x2f, 0xb9, 0x2e, 0x66, 0xf9, 0x54, 0xf8, 0x65, 0x1d, 0xac, 0x99, 0x6b, 0x26, + 0xbb, 0xa6, 0x83, 0xff, 0x7e, 0x10, 0x66, 0x35, 0xb3, 0xb5, 0x6f, 0xda, 0x8b, 0x06, 0xd6, 0x9d, + 0x03, 0x6c, 0x2d, 0xb6, 0xd4, 0xb6, 0x4d, 0x75, 0x97, 0xf8, 0x3d, 0x5b, 0x96, 0x3f, 0x91, 0x81, + 0x99, 0xe3, 0xdd, 0xd1, 0xcd, 0xdd, 0x01, 0xe3, 0x17, 0x9b, 0xa6, 0xea, 0xe8, 0x46, 0x63, 0xc7, + 0xd4, 0x0d, 0x07, 0xe5, 0x20, 0x56, 0xa7, 0x3f, 0x30, 0xc5, 0xe4, 0x58, 0x7d, 0xee, 0x1f, 0x52, + 0x90, 0x61, 0xd7, 0x3b, 0x9b, 0x6a, 0x1b, 0xfd, 0x1c, 0xe4, 0xb6, 0xf8, 0x09, 0x79, 0x78, 0xe9, + 0xbc, 0xed, 0xde, 0x25, 0x7b, 0xe6, 0x5f, 0x70, 0xb5, 0x17, 0xbc, 0xaa, 0xf4, 0x07, 0xe5, 0xe5, + 0x87, 0x7e, 0xf0, 0xf6, 0xec, 0x03, 0x7d, 0xed, 0x23, 0x25, 0x71, 0x91, 0x85, 0xf2, 0xc2, 0x9e, + 0x6e, 0x38, 0x0f, 0x2f, 0x9d, 0x97, 0x7d, 0xf3, 0xa1, 0xab, 0x90, 0xe6, 0x03, 0x36, 0xff, 0x8d, + 0xe1, 0xae, 0x3e, 0x73, 0x0b, 0x35, 0x36, 0xef, 0x99, 0xb7, 0xde, 0x9e, 0x1d, 0x39, 0xf6, 0xdc, + 0xee, 0x5c, 0xe8, 0x25, 0xc8, 0x0a, 0x3b, 0xd6, 0x6b, 0x36, 0xff, 0x94, 0xf8, 0xde, 0x88, 0x65, + 0xaf, 0xd7, 0xf8, 0xec, 0xf7, 0xfc, 0xe0, 0xed, 0xd9, 0xb9, 0x81, 0x33, 0x2f, 0xec, 0x75, 0xf4, + 0x9a, 0xec, 0x9d, 0x03, 0xbd, 0x00, 0x09, 0x32, 0x15, 0xfb, 0xe8, 0x78, 0xb6, 0xcf, 0x54, 0xee, + 0x14, 0xa7, 0xf9, 0x02, 0x87, 0x99, 0x86, 0xf0, 0xce, 0x3c, 0x09, 0x93, 0x3d, 0xdb, 0x83, 0x24, + 0x48, 0x5c, 0xc1, 0x87, 0xfc, 0x3b, 0x23, 0xf2, 0x2f, 0x9a, 0xee, 0x7e, 0x47, 0x17, 0x9b, 0xcf, + 0xf1, 0x8f, 0xe3, 0x4a, 0xf1, 0xf3, 0xb1, 0x99, 0x0b, 0x30, 0xee, 0xf3, 0xf1, 0xb1, 0xc0, 0x4f, + 0x80, 0x14, 0xf4, 0xd2, 0xb1, 0xf0, 0xe7, 0x20, 0xfd, 0x71, 0x70, 0x73, 0xdf, 0x47, 0x30, 0x56, + 0x6e, 0x36, 0x37, 0xd5, 0xb6, 0x8d, 0x9e, 0x83, 0x49, 0xd6, 0xb8, 0xef, 0x9a, 0xab, 0xf4, 0x57, + 0x9d, 0x4d, 0xb5, 0xcd, 0x03, 0xfa, 0x7e, 0x9f, 0xbb, 0x39, 0x60, 0xa1, 0x47, 0x9b, 0xce, 0x2f, + 0xf7, 0xb2, 0xa0, 0x67, 0x40, 0x12, 0x42, 0x7a, 0xb6, 0x08, 0x33, 0x0b, 0xd7, 0xd3, 0x03, 0x99, + 0x85, 0x32, 0x23, 0xee, 0xe1, 0x40, 0x4f, 0x40, 0x7a, 0xdd, 0x70, 0x1e, 0x59, 0x22, 0x7c, 0x2c, + 0x06, 0xe7, 0x42, 0xf9, 0x84, 0x12, 0xe3, 0x71, 0x31, 0x1c, 0x7f, 0xee, 0x0c, 0xc1, 0x27, 0x07, + 0xe3, 0xa9, 0x52, 0x17, 0x4f, 0x1f, 0x51, 0x19, 0x32, 0x64, 0xcf, 0x99, 0x01, 0xec, 0x2b, 0xf6, + 0x3b, 0x43, 0x09, 0x5c, 0x2d, 0xc6, 0xd0, 0x45, 0x09, 0x0a, 0x66, 0xc3, 0x68, 0x04, 0x85, 0xc7, + 0x88, 0x2e, 0x8a, 0x50, 0x54, 0x5d, 0x2b, 0xc6, 0x06, 0x50, 0x54, 0x03, 0x56, 0x54, 0xbd, 0x56, + 0x54, 0x5d, 0x2b, 0xd2, 0x11, 0x14, 0x5e, 0x2b, 0xdc, 0x67, 0xb4, 0x0a, 0x70, 0x51, 0xbf, 0x8e, + 0x6b, 0xcc, 0x8c, 0x4c, 0x48, 0x32, 0x12, 0x1c, 0x5d, 0x35, 0x46, 0xe2, 0xc1, 0xa1, 0x35, 0xc8, + 0x56, 0xeb, 0x5d, 0x1a, 0xe0, 0x1f, 0xf1, 0x87, 0x9a, 0x52, 0x0f, 0xf0, 0x78, 0x91, 0xae, 0x39, + 0x6c, 0x49, 0xd9, 0x28, 0x73, 0x3c, 0x6b, 0xf2, 0xe0, 0xba, 0xe6, 0x30, 0x9a, 0x5c, 0xa4, 0x39, + 0x1e, 0x1e, 0x2f, 0x12, 0x5d, 0x80, 0xb1, 0x65, 0xd3, 0x24, 0x9a, 0x85, 0x71, 0x4a, 0x72, 0x2a, + 0x94, 0x84, 0xeb, 0x30, 0x02, 0x81, 0xa0, 0xbb, 0x43, 0x43, 0x9f, 0xc0, 0xf3, 0x83, 0x76, 0x47, + 0x68, 0x89, 0xdd, 0x11, 0xcf, 0xde, 0x13, 0xb8, 0x7c, 0xe8, 0x60, 0xd2, 0x24, 0x17, 0x26, 0x86, + 0x38, 0x81, 0x42, 0x39, 0x70, 0x02, 0x85, 0x18, 0x55, 0x61, 0x42, 0xc8, 0x2a, 0x46, 0x87, 0xe4, + 0xe0, 0x82, 0xc4, 0xbf, 0x30, 0x1e, 0x44, 0xcb, 0x75, 0x19, 0x6b, 0x90, 0x01, 0xed, 0x40, 0x5e, + 0x88, 0x36, 0x6d, 0xba, 0xe8, 0xc9, 0x90, 0xba, 0x1a, 0xe4, 0x64, 0xaa, 0x8c, 0x32, 0x80, 0x9f, + 0x59, 0x85, 0x13, 0xe1, 0xd9, 0x2a, 0x2a, 0x5b, 0xc6, 0xbc, 0x59, 0x76, 0x05, 0x6e, 0x09, 0xcd, + 0x4c, 0x51, 0x24, 0xf1, 0x40, 0x9d, 0xf0, 0xa5, 0x23, 0x2f, 0x38, 0x15, 0x02, 0x4e, 0xf5, 0x82, + 0xbb, 0x41, 0xe6, 0x05, 0x27, 0x42, 0xc0, 0x09, 0x2f, 0xf8, 0xb3, 0x90, 0xf7, 0xe7, 0x21, 0x2f, + 0x7a, 0x3c, 0x04, 0x3d, 0x1e, 0x82, 0x0e, 0x9f, 0x3b, 0x19, 0x82, 0x4e, 0x06, 0xd0, 0xd5, 0xbe, + 0x73, 0x4f, 0x86, 0xa0, 0x27, 0x43, 0xd0, 0xe1, 0x73, 0xa3, 0x10, 0x34, 0xf2, 0xa2, 0x1f, 0x87, + 0x89, 0x40, 0xca, 0xf1, 0xc2, 0xc7, 0x42, 0xe0, 0x63, 0x81, 0xda, 0x1c, 0x4c, 0x35, 0x5e, 0xfc, + 0x44, 0x08, 0x7e, 0x22, 0x6c, 0xfa, 0x70, 0xeb, 0x47, 0x43, 0xe0, 0xa3, 0xa1, 0xd3, 0x87, 0xe3, + 0xa5, 0x10, 0xbc, 0xe4, 0xc5, 0x97, 0x20, 0xe7, 0xcd, 0x2a, 0x5e, 0x6c, 0x3a, 0x04, 0x9b, 0x0e, + 0xfa, 0xdd, 0x97, 0x52, 0xa2, 0x22, 0x3d, 0xd3, 0xe7, 0xb8, 0xf8, 0xd2, 0xc8, 0xb1, 0x3a, 0x9b, + 0xcb, 0x30, 0x1d, 0x96, 0x34, 0x42, 0x38, 0x4e, 0x7b, 0x39, 0xf2, 0x4b, 0xd3, 0xbe, 0x64, 0x41, + 0x71, 0x9d, 0x96, 0x97, 0xf9, 0x05, 0x98, 0x0a, 0x49, 0x1d, 0x21, 0xc4, 0x0f, 0x79, 0x89, 0xb3, + 0x4b, 0x33, 0x3e, 0x62, 0xdf, 0xbb, 0x82, 0xb7, 0xb5, 0xfa, 0xe1, 0x14, 0xe4, 0x79, 0x8a, 0xda, + 0xb6, 0x6a, 0xd8, 0xc2, 0x35, 0xf4, 0xff, 0xfb, 0x77, 0x58, 0x4b, 0x61, 0xa9, 0x8d, 0xe3, 0x8e, + 0xd1, 0x68, 0xbd, 0xd0, 0xb7, 0xd1, 0x7a, 0x78, 0x98, 0x09, 0xa2, 0xfa, 0xad, 0x4a, 0x4f, 0xbf, + 0x75, 0xdf, 0x20, 0xda, 0x7e, 0x6d, 0x57, 0xa5, 0xa7, 0xed, 0x8a, 0xa2, 0x09, 0xed, 0xbe, 0x2e, + 0xf5, 0x76, 0x5f, 0xa7, 0x07, 0xf1, 0xf4, 0x6f, 0xc2, 0x2e, 0xf5, 0x36, 0x61, 0x91, 0x4c, 0xe1, + 0xbd, 0xd8, 0xa5, 0xde, 0x5e, 0x6c, 0x20, 0x53, 0xff, 0x96, 0xec, 0x52, 0x6f, 0x4b, 0x16, 0xc9, + 0x14, 0xde, 0x99, 0x3d, 0x1d, 0xd2, 0x99, 0xdd, 0x3f, 0x88, 0x6a, 0x50, 0x83, 0xb6, 0x15, 0xd6, + 0xa0, 0x3d, 0x30, 0xd0, 0xb0, 0x81, 0x7d, 0xda, 0xd3, 0x21, 0x7d, 0x5a, 0xb4, 0x71, 0x7d, 0xda, + 0xb5, 0xad, 0xb0, 0x76, 0x6d, 0x08, 0xe3, 0xfa, 0x75, 0x6d, 0xcb, 0xc1, 0xae, 0x6d, 0x7e, 0x10, + 0x57, 0x78, 0xf3, 0x76, 0xa9, 0xb7, 0x79, 0x3b, 0x1d, 0x7d, 0x16, 0xc3, 0x7a, 0xb8, 0x17, 0xfa, + 0xf6, 0x70, 0x43, 0x1d, 0xee, 0xa8, 0x56, 0xee, 0xf9, 0x7e, 0xad, 0xdc, 0x43, 0xc3, 0xb0, 0x0f, + 0xee, 0xe8, 0x9e, 0xed, 0xd3, 0xd1, 0x2d, 0x0e, 0x43, 0xfd, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, + 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, 0x7f, 0xa3, 0xb1, 0x2b, 0x25, 0x5f, 0xfd, 0xd2, 0x6c, 0xec, + 0xf4, 0x29, 0x18, 0xe3, 0x53, 0xa3, 0x51, 0x88, 0x6f, 0x96, 0xa5, 0x11, 0xfa, 0x77, 0x59, 0x8a, + 0xd1, 0xbf, 0x2b, 0x52, 0x7c, 0x79, 0xe3, 0xad, 0x9b, 0xc5, 0x91, 0xef, 0xde, 0x2c, 0x8e, 0x7c, + 0xff, 0x66, 0x71, 0xe4, 0x9d, 0x9b, 0xc5, 0xd8, 0x7b, 0x37, 0x8b, 0xb1, 0x0f, 0x6e, 0x16, 0x63, + 0x3f, 0xb9, 0x59, 0x8c, 0xdd, 0x38, 0x2a, 0xc6, 0xbe, 0x72, 0x54, 0x8c, 0x7d, 0xfd, 0xa8, 0x18, + 0xfb, 0xd6, 0x51, 0x31, 0xf6, 0xed, 0xa3, 0x62, 0xec, 0xad, 0xa3, 0xe2, 0xc8, 0x77, 0x8f, 0x8a, + 0x23, 0xef, 0x1c, 0x15, 0x63, 0xef, 0x1d, 0x15, 0x47, 0x3e, 0x38, 0x2a, 0xc6, 0x7e, 0x72, 0x54, + 0x1c, 0xb9, 0xf1, 0xa3, 0xe2, 0xc8, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x36, 0xa7, 0xef, 0xf4, + 0x54, 0x45, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -514,6 +565,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1202,6 +1377,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1455,6 +1671,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1929,23 +2209,6 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { this := &FloatingPoint{} if r.Intn(10) != 0 { @@ -1961,166 +2224,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2133,163 +2432,163 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} if r.Intn(10) != 0 { - v34 := r.Intn(10) + v38 := r.Intn(10) this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) + for i := 0; i < v38; i++ { + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { - v36 := r.Intn(10) + v40 := r.Intn(10) this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) + for i := 0; i < v40; i++ { + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { - v38 := r.Intn(10) + v42 := r.Intn(10) this.Int32Map = make(map[int32]int32) - for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + for i := 0; i < v42; i++ { + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.Int32Map[v43] *= -1 } } } if r.Intn(10) != 0 { - v40 := r.Intn(10) + v44 := r.Intn(10) this.Int64Map = make(map[int64]int64) - for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + for i := 0; i < v44; i++ { + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.Int64Map[v45] *= -1 } } } if r.Intn(10) != 0 { - v42 := r.Intn(10) + v46 := r.Intn(10) this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + for i := 0; i < v46; i++ { + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v44 := r.Intn(10) + v48 := r.Intn(10) this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + for i := 0; i < v48; i++ { + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v46 := r.Intn(10) + v50 := r.Intn(10) this.Sint32Map = make(map[int32]int32) - for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) + for i := 0; i < v50; i++ { + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 + this.Sint32Map[v51] *= -1 } } } if r.Intn(10) != 0 { - v48 := r.Intn(10) + v52 := r.Intn(10) this.Sint64Map = make(map[int64]int64) - for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) + for i := 0; i < v52; i++ { + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { - v50 := r.Intn(10) + v54 := r.Intn(10) this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + for i := 0; i < v54; i++ { + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v52 := r.Intn(10) + v56 := r.Intn(10) this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + for i := 0; i < v56; i++ { + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { - v54 := r.Intn(10) + v58 := r.Intn(10) this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + for i := 0; i < v58; i++ { + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v56 := r.Intn(10) + v60 := r.Intn(10) this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed64Map[v61] *= -1 } } } if r.Intn(10) != 0 { - v58 := r.Intn(10) + v62 := r.Intn(10) this.BoolMap = make(map[bool]bool) - for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) } } if r.Intn(10) != 0 { - v60 := r.Intn(10) + v64 := r.Intn(10) this.StringMap = make(map[string]string) - for i := 0; i < v60; i++ { + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2318,14 +2617,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2333,43 +2632,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -2383,6 +2682,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -2502,7 +2858,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2521,8 +2881,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2651,7 +3012,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2670,8 +3035,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2705,6 +3071,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3108,67 +3528,80 @@ func valueToStringMapsproto2(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/neither/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 968 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xbd, 0x6f, 0xdb, 0x46, - 0x18, 0xc6, 0x4d, 0x7d, 0xeb, 0xf4, 0x45, 0x9d, 0xdd, 0x42, 0x10, 0x50, 0xb9, 0x56, 0x5b, 0x40, - 0x96, 0x5b, 0xc9, 0x55, 0x8b, 0xa2, 0xb0, 0x5b, 0x03, 0x96, 0x2d, 0x57, 0x85, 0x6b, 0xd7, 0xb0, - 0xfa, 0x19, 0xc0, 0x40, 0xac, 0x98, 0x52, 0x84, 0x48, 0xa2, 0x21, 0x52, 0x41, 0xbc, 0xf9, 0xcf, - 0xc8, 0x9a, 0x2d, 0x63, 0xc6, 0x8c, 0x19, 0x3d, 0x66, 0xf4, 0x90, 0xc1, 0x76, 0x16, 0x8f, 0x1e, - 0x3d, 0xe6, 0x78, 0x47, 0x52, 0x47, 0xf2, 0x25, 0xa9, 0x6c, 0x19, 0x34, 0x1c, 0x4e, 0x77, 0x7e, - 0x9f, 0xdf, 0x3d, 0x34, 0x79, 0x2f, 0x1e, 0xb4, 0xf8, 0x48, 0x1e, 0xb4, 0x65, 0xa5, 0x3a, 0x94, - 0x7a, 0xea, 0x63, 0x69, 0x54, 0x1d, 0x1c, 0x9f, 0x2a, 0xa7, 0x23, 0x59, 0x95, 0x6b, 0x15, 0x3a, - 0xe1, 0x84, 0xbe, 0xd2, 0xfe, 0x90, 0xff, 0xae, 0x4b, 0xaa, 0xc6, 0xed, 0x0a, 0x11, 0x55, 0xbb, - 0x72, 0x57, 0xae, 0xd2, 0x3f, 0xb6, 0xc7, 0x1d, 0xba, 0xa2, 0x0b, 0xfa, 0x8b, 0x69, 0x8b, 0x5f, - 0xa0, 0xd4, 0x4e, 0x5f, 0x3e, 0x56, 0x7b, 0xc3, 0xee, 0x81, 0xdc, 0x1b, 0xaa, 0x38, 0x89, 0x84, - 0x4e, 0x4e, 0xf8, 0x52, 0x28, 0x09, 0x87, 0x42, 0xa7, 0x78, 0x89, 0x51, 0x74, 0xb3, 0xdf, 0xdf, - 0x23, 0x64, 0xfc, 0x3f, 0xca, 0xb6, 0xd4, 0x11, 0x29, 0xfc, 0x4b, 0xde, 0x96, 0xc7, 0xed, 0xbe, - 0x44, 0x76, 0x49, 0x65, 0xb0, 0x94, 0xa8, 0xad, 0x54, 0x38, 0x0b, 0x15, 0x5d, 0x50, 0x71, 0x54, - 0x37, 0x86, 0xea, 0xe8, 0xec, 0x30, 0xab, 0xd8, 0xf7, 0xf1, 0x3f, 0x48, 0x34, 0x8a, 0xa9, 0x1b, - 0x8d, 0x1c, 0xa0, 0xe4, 0xb2, 0x27, 0xd9, 0x28, 0x66, 0x60, 0x51, 0xb1, 0x6d, 0xe3, 0x0d, 0x14, - 0xfb, 0x7d, 0xa8, 0xfe, 0x50, 0xd3, 0x78, 0x41, 0xca, 0x2b, 0x82, 0x3c, 0xa3, 0x88, 0x71, 0x62, - 0x3d, 0x7d, 0xa9, 0xeb, 0x7f, 0xfa, 0x51, 0xd3, 0x87, 0xbc, 0xf5, 0xb4, 0x68, 0xa2, 0xa7, 0x4b, - 0xbc, 0x89, 0xe2, 0x7f, 0x1b, 0xb0, 0x5c, 0x98, 0x02, 0xbe, 0x02, 0x01, 0x66, 0x15, 0x23, 0xc4, - 0xc7, 0xa6, 0x05, 0x1d, 0xc1, 0x3c, 0x44, 0x7c, 0x10, 0x9c, 0x09, 0x8a, 0x30, 0x5d, 0xb4, 0x4c, - 0x17, 0x51, 0x0f, 0x44, 0xcb, 0xe6, 0x42, 0xe1, 0x5d, 0xb4, 0x4c, 0x17, 0x31, 0x1f, 0x04, 0xef, - 0x42, 0x31, 0x5d, 0x6c, 0x23, 0xb4, 0xd3, 0x7b, 0x26, 0x9d, 0x30, 0x1b, 0x71, 0xca, 0xf8, 0x1a, - 0x64, 0x4c, 0xca, 0x18, 0x04, 0x75, 0xcc, 0x0d, 0xfc, 0x1b, 0x4a, 0xb4, 0x26, 0xcb, 0x1c, 0xa2, - 0x98, 0x6f, 0x60, 0x2b, 0x1d, 0x1b, 0x27, 0xa1, 0x70, 0x20, 0xc3, 0x0e, 0x7b, 0xa4, 0x84, 0x9f, - 0x1d, 0xee, 0x99, 0x98, 0x1d, 0xf6, 0x50, 0xa6, 0x1d, 0x86, 0x49, 0xfa, 0xda, 0xe1, 0x38, 0xba, - 0x1d, 0x06, 0x5a, 0x47, 0xd1, 0xba, 0x2c, 0x6b, 0x95, 0xb9, 0x14, 0x85, 0x2c, 0x81, 0x10, 0xbd, - 0x86, 0x01, 0xa2, 0x6d, 0xb6, 0xa2, 0x6f, 0x87, 0x7e, 0xfa, 0x9a, 0x3c, 0xed, 0xf5, 0x76, 0x8c, - 0x2a, 0xe3, 0xed, 0x18, 0x6b, 0xfe, 0x06, 0xd6, 0xcf, 0x54, 0x49, 0xd1, 0x48, 0x99, 0x29, 0x6e, - 0xa0, 0x51, 0x6c, 0xbb, 0x81, 0xc6, 0x36, 0x6e, 0xa1, 0x8c, 0x51, 0xda, 0x18, 0x8e, 0x07, 0x1a, - 0x56, 0xa4, 0xd8, 0x65, 0x4f, 0xac, 0x5e, 0xcb, 0xa8, 0x19, 0xc5, 0xba, 0x8b, 0x0f, 0x50, 0xda, - 0x28, 0xdc, 0x53, 0xe8, 0x43, 0x67, 0x29, 0xb3, 0xe4, 0xc9, 0x64, 0xa5, 0x0c, 0x99, 0x56, 0x2c, - 0x9b, 0xf9, 0x6d, 0xf4, 0x39, 0xdc, 0xad, 0xb0, 0x88, 0x82, 0x4f, 0xa4, 0x33, 0xda, 0x11, 0xe3, - 0x87, 0xda, 0x4f, 0xbc, 0x80, 0xc2, 0x4f, 0x8f, 0xfb, 0x63, 0x89, 0x74, 0x28, 0xad, 0x4b, 0xb2, - 0xc5, 0x5a, 0xe0, 0x67, 0x21, 0xbf, 0x85, 0x3e, 0x03, 0x3b, 0x93, 0x1f, 0x24, 0xc0, 0x43, 0xd6, - 0x51, 0xca, 0xd2, 0x8e, 0x78, 0x71, 0x18, 0x10, 0x87, 0x9d, 0xe2, 0xc9, 0x47, 0xc6, 0x8b, 0x83, - 0x80, 0x38, 0xc8, 0x8b, 0x7f, 0x41, 0x69, 0x6b, 0x1f, 0xe2, 0xd5, 0x29, 0x40, 0x9d, 0x02, 0xd4, - 0xf0, 0xd9, 0x21, 0x40, 0x1d, 0xb2, 0xa9, 0x5b, 0xae, 0x67, 0x67, 0x01, 0x75, 0x16, 0x50, 0xc3, - 0x67, 0x63, 0x40, 0x8d, 0x79, 0xf5, 0xaf, 0x28, 0x63, 0x6b, 0x39, 0xbc, 0x3c, 0x0a, 0xc8, 0xa3, - 0xbc, 0x7c, 0x83, 0x5c, 0x9d, 0x8e, 0xbb, 0x3e, 0x03, 0xe8, 0x33, 0xd0, 0xf1, 0xb0, 0xfb, 0x08, - 0x20, 0x8f, 0x80, 0xc7, 0xc3, 0x7a, 0x11, 0xd0, 0x8b, 0xbc, 0x7e, 0x0d, 0x25, 0xf9, 0xae, 0xc2, - 0x6b, 0x63, 0x80, 0x36, 0x66, 0xff, 0xbf, 0x5b, 0x5a, 0x8a, 0xdf, 0x97, 0x1e, 0x77, 0xb9, 0x2e, - 0x96, 0x36, 0xe2, 0x07, 0x49, 0xf2, 0x90, 0xff, 0xd0, 0x02, 0xd4, 0x34, 0x00, 0x46, 0x99, 0x67, - 0xa4, 0x6b, 0x0b, 0x96, 0x66, 0x41, 0x75, 0xe3, 0x01, 0x4f, 0x3e, 0x42, 0xf3, 0x40, 0xeb, 0x00, - 0xc0, 0xab, 0x3c, 0x38, 0x51, 0xcb, 0x5b, 0xc0, 0x96, 0x74, 0xc5, 0xe1, 0x8b, 0xef, 0xe6, 0x51, - 0x5a, 0x6f, 0x51, 0x7f, 0x8e, 0x4e, 0xa4, 0x91, 0x74, 0x82, 0x1f, 0xba, 0x27, 0xac, 0x1a, 0xd4, - 0xda, 0x74, 0xdd, 0x47, 0x04, 0xad, 0x23, 0xd7, 0xa0, 0xf5, 0xfd, 0x34, 0x07, 0xf8, 0xe5, 0xad, - 0x86, 0x23, 0x6f, 0x2d, 0x7b, 0x61, 0xdd, 0x62, 0x57, 0xc3, 0x11, 0xbb, 0xfc, 0x30, 0x60, 0xfa, - 0x6a, 0x3a, 0xd3, 0x57, 0xd9, 0x8b, 0xe3, 0x1e, 0xc2, 0x9a, 0xce, 0x10, 0xe6, 0x4b, 0x82, 0xb3, - 0x58, 0xd3, 0x99, 0xc5, 0x3c, 0x49, 0xee, 0x91, 0xac, 0xe9, 0x8c, 0x64, 0xbe, 0x24, 0x38, 0x99, - 0xed, 0x02, 0xc9, 0x6c, 0xc5, 0x0b, 0xe5, 0x15, 0xd0, 0xf6, 0xa1, 0x80, 0xf6, 0xad, 0xa7, 0x31, - 0xcf, 0x9c, 0xb6, 0x0b, 0xe4, 0x34, 0x7f, 0x73, 0x2e, 0x71, 0x6d, 0x1f, 0x8a, 0x6b, 0x53, 0x98, - 0x73, 0x4b, 0x6d, 0x75, 0x7b, 0x6a, 0x2b, 0x79, 0xb1, 0xe0, 0xf0, 0xd6, 0x74, 0x86, 0xb7, 0xb2, - 0xff, 0x5d, 0x84, 0x32, 0xdc, 0x91, 0x6b, 0x86, 0x9b, 0xea, 0x72, 0xfb, 0x45, 0xb9, 0x07, 0x6e, - 0x51, 0x6e, 0x75, 0x1a, 0xba, 0x77, 0xa2, 0xfb, 0xd7, 0x25, 0xd1, 0x55, 0xa7, 0x41, 0xcf, 0x82, - 0xdd, 0x2c, 0xd8, 0xcd, 0x82, 0xdd, 0x2c, 0xd8, 0x7d, 0x1a, 0xc1, 0x6e, 0x2d, 0xf4, 0xfc, 0xc5, - 0xa2, 0x50, 0x5e, 0x42, 0x51, 0xfd, 0x68, 0x1c, 0x41, 0x81, 0xbd, 0x4d, 0x71, 0x8e, 0xce, 0x75, - 0x51, 0xa0, 0xf3, 0x96, 0x18, 0xa8, 0xff, 0x71, 0x71, 0x5d, 0x98, 0x7b, 0x4b, 0xc6, 0x25, 0x19, - 0x57, 0xd7, 0x05, 0xe1, 0x96, 0x8c, 0x3b, 0x32, 0xee, 0xc9, 0x38, 0xbf, 0x29, 0x08, 0x2f, 0xc9, - 0x78, 0x45, 0xc6, 0x6b, 0x32, 0xde, 0x90, 0x71, 0x71, 0x43, 0xea, 0xc9, 0xb8, 0x22, 0xbf, 0x6f, - 0xc9, 0x7c, 0x47, 0xe6, 0x7b, 0x32, 0x9f, 0xbf, 0x2f, 0xcc, 0x7d, 0x08, 0x00, 0x00, 0xff, 0xff, - 0x87, 0xb4, 0x7a, 0x0b, 0x27, 0x14, 0x00, 0x00, + // 1148 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0xc7, + 0x1b, 0xc7, 0x77, 0xc0, 0x36, 0x30, 0xbc, 0x4f, 0xfc, 0xfb, 0x09, 0x21, 0x75, 0x70, 0xe8, 0x1b, + 0x21, 0x29, 0xd8, 0x34, 0x8a, 0x2c, 0xa7, 0x4d, 0x65, 0x6c, 0xa7, 0x58, 0x29, 0x6e, 0x04, 0x4d, + 0xdf, 0x24, 0x4b, 0x05, 0xb3, 0x10, 0x54, 0x60, 0x29, 0xbb, 0x44, 0xf5, 0xa5, 0xca, 0x9f, 0xd1, + 0x6b, 0x6f, 0x3d, 0xf6, 0xd8, 0x63, 0x8f, 0x96, 0x7a, 0xc9, 0x31, 0x8a, 0x2a, 0x2b, 0x6c, 0x2f, + 0x39, 0xe6, 0x98, 0x63, 0xb5, 0xb3, 0xbb, 0x30, 0xbb, 0xfb, 0xec, 0x2e, 0xf4, 0xd4, 0x83, 0x4f, + 0x78, 0x96, 0xe7, 0xfb, 0xf9, 0x3e, 0xbb, 0x3b, 0xf3, 0xf0, 0x35, 0xce, 0x9d, 0x49, 0xc3, 0xb6, + 0x24, 0x97, 0x47, 0x62, 0x5f, 0x79, 0x2c, 0x4e, 0xca, 0xc3, 0xd6, 0x58, 0x1e, 0x4f, 0x24, 0x45, + 0xaa, 0x94, 0xd8, 0x07, 0x89, 0x1a, 0x2b, 0xed, 0x8b, 0xec, 0x07, 0xbd, 0xbe, 0xf2, 0x78, 0xda, + 0x2e, 0x9d, 0x49, 0xc3, 0x72, 0x4f, 0xea, 0x49, 0x65, 0xf6, 0x65, 0x7b, 0xda, 0x65, 0x2b, 0xb6, + 0x60, 0x7f, 0xe9, 0xda, 0xfc, 0x5b, 0x38, 0x7e, 0x7f, 0x20, 0xb5, 0x94, 0xfe, 0xa8, 0xf7, 0x50, + 0xea, 0x8f, 0x14, 0x12, 0xc3, 0xa8, 0x9b, 0x41, 0x5b, 0xa8, 0x80, 0x1a, 0xa8, 0x9b, 0xff, 0x73, + 0x1d, 0x47, 0x0e, 0xa6, 0xb2, 0x22, 0x0d, 0xeb, 0xad, 0x31, 0xf9, 0x09, 0xc7, 0x4e, 0xa6, 0x83, + 0x41, 0xab, 0x3d, 0x10, 0x77, 0x2a, 0xbb, 0x72, 0x06, 0x6d, 0x05, 0x0b, 0xd1, 0x4a, 0xa1, 0xc4, + 0xf9, 0x97, 0xe6, 0xd5, 0x25, 0xbe, 0xf4, 0x68, 0xa4, 0x4c, 0xce, 0xab, 0xdb, 0x2f, 0x2e, 0x73, + 0xb7, 0x5c, 0xfb, 0x53, 0x44, 0x59, 0x29, 0x9f, 0x31, 0x79, 0xe9, 0x51, 0x7f, 0xa4, 0xec, 0x54, + 0x76, 0x1b, 0x16, 0x3f, 0xf2, 0x04, 0x87, 0x8d, 0x2f, 0xe4, 0x4c, 0x80, 0x79, 0xbf, 0xe3, 0xe2, + 0x6d, 0x96, 0xe9, 0xbe, 0xb7, 0x2f, 0x2e, 0x73, 0xc2, 0xca, 0xde, 0x73, 0x2f, 0xf2, 0x03, 0x8e, + 0x9a, 0x7d, 0x1c, 0x77, 0xe4, 0x4c, 0x90, 0x59, 0xbf, 0xef, 0x73, 0xdb, 0xc7, 0x1d, 0xc3, 0xfd, + 0xbd, 0x17, 0x97, 0xb9, 0xbc, 0xa7, 0x73, 0xe9, 0xd1, 0xb4, 0xdf, 0x69, 0xf0, 0x1e, 0xe4, 0x14, + 0x07, 0x35, 0xab, 0x35, 0x66, 0x95, 0x73, 0xb1, 0x9a, 0x5b, 0x14, 0x8d, 0x1b, 0x5c, 0xc6, 0x46, + 0xe3, 0x66, 0x3f, 0xc1, 0x69, 0xc7, 0xeb, 0x21, 0x29, 0x1c, 0xfc, 0x5e, 0x3c, 0x67, 0x2f, 0x3f, + 0xd2, 0xd0, 0xfe, 0x24, 0x9b, 0x78, 0xfd, 0x49, 0x6b, 0x30, 0x15, 0x33, 0x81, 0x2d, 0x54, 0x88, + 0x35, 0xf4, 0xc5, 0x5e, 0x60, 0x17, 0x65, 0xef, 0xe2, 0xb8, 0xe5, 0x19, 0xaf, 0x24, 0xbe, 0x87, + 0x53, 0xf6, 0xa7, 0xb4, 0x92, 0xfe, 0x0e, 0x0e, 0xff, 0x1b, 0x5d, 0xfe, 0x39, 0xc1, 0xa1, 0xfd, + 0xc1, 0xa0, 0xde, 0x1a, 0xcb, 0xe4, 0x1b, 0x9c, 0x6e, 0x2a, 0x93, 0xfe, 0xa8, 0xf7, 0x85, 0x74, + 0x28, 0x4d, 0xdb, 0x03, 0xb1, 0xde, 0x1a, 0x1b, 0x1b, 0xfa, 0xa6, 0xe5, 0x71, 0x1b, 0x82, 0x92, + 0xa3, 0x9a, 0xf9, 0x37, 0x9c, 0x14, 0xf2, 0x25, 0x4e, 0x99, 0x17, 0xd9, 0xd9, 0xd2, 0xc8, 0xfa, + 0x76, 0x2d, 0x7a, 0x92, 0xcd, 0x62, 0x1d, 0xec, 0x60, 0x90, 0x7b, 0x38, 0x7c, 0x3c, 0x52, 0x3e, + 0xac, 0x68, 0x3c, 0x7d, 0x0f, 0xe6, 0x41, 0x9e, 0x59, 0xa4, 0x73, 0xe6, 0x1a, 0x43, 0x7f, 0xe7, + 0xb6, 0xa6, 0x5f, 0xf3, 0xd6, 0xb3, 0xa2, 0x85, 0x9e, 0x2d, 0xc9, 0x3e, 0x8e, 0x68, 0xef, 0x5c, + 0x6f, 0x60, 0x9d, 0x01, 0xde, 0x06, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08, 0xbd, 0x87, + 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x9a, 0xf3, 0x2e, 0x42, 0x1e, 0x88, 0xa6, 0xad, + 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c, + 0xef, 0xf7, 0x7f, 0x14, 0x3b, 0x7a, 0x1b, 0x11, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99, 0x0e, 0xe1, + 0x74, 0xe4, 0x53, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc2, 0xad, 0x74, 0x6d, 0x1c, + 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0xa8, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x3a, + 0x26, 0xe6, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0x55, 0x25, 0x49, 0xab, 0xcc, 0xc4, + 0x19, 0xe4, 0x3a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d, 0x4d, 0x9e, + 0xf0, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0xab, 0xe7, 0x8a, 0x28, 0x6b, + 0xa4, 0xe4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe2, 0xa4, 0x79, 0xed, + 0x68, 0x34, 0xd5, 0x66, 0x70, 0x26, 0xc5, 0xb0, 0x37, 0x3c, 0xb1, 0x46, 0xad, 0x4e, 0xb5, 0x13, + 0xc8, 0x43, 0x9c, 0x30, 0x2f, 0xd5, 0x65, 0x76, 0xd3, 0x69, 0xe0, 0x77, 0xd5, 0xce, 0xd4, 0x4b, + 0x75, 0xa4, 0x4d, 0x9f, 0x3d, 0xc4, 0xff, 0x87, 0xa7, 0x95, 0xdf, 0xb4, 0x44, 0xfc, 0x94, 0x3d, + 0xc0, 0xff, 0x03, 0x27, 0x93, 0x1f, 0x24, 0x60, 0xfb, 0x9d, 0xb0, 0x8c, 0x23, 0x5e, 0xbc, 0x0e, + 0x88, 0xd7, 0x9d, 0xe2, 0xc5, 0x26, 0xe3, 0xc5, 0x41, 0x40, 0x1c, 0xe4, 0xc5, 0x1f, 0xe1, 0x84, + 0x75, 0x0e, 0xf1, 0xea, 0x38, 0xa0, 0x8e, 0x03, 0x6a, 0xd8, 0x7b, 0x0d, 0x50, 0xaf, 0xd9, 0xd4, + 0x4d, 0x57, 0xef, 0x34, 0xa0, 0x4e, 0x03, 0x6a, 0xd8, 0x9b, 0x00, 0x6a, 0xc2, 0xab, 0x3f, 0xc6, + 0x49, 0xdb, 0xc8, 0xe1, 0xe5, 0x21, 0x40, 0x1e, 0xb2, 0xfd, 0x36, 0xdb, 0x47, 0x0d, 0xaf, 0x4f, + 0x02, 0xfa, 0x24, 0x64, 0x0f, 0x77, 0xbf, 0x01, 0xc8, 0x37, 0x40, 0x7b, 0x58, 0x9f, 0x02, 0xf4, + 0x29, 0x5e, 0xbf, 0x87, 0x63, 0xfc, 0x54, 0xe1, 0xb5, 0x61, 0x40, 0x1b, 0xb6, 0x3f, 0x77, 0xcb, + 0x48, 0xf1, 0xdb, 0xe9, 0x11, 0x97, 0xe3, 0x62, 0x19, 0x23, 0x2b, 0x25, 0x9b, 0xaf, 0xf1, 0x26, + 0x34, 0x34, 0x00, 0x46, 0x91, 0x67, 0x24, 0x2a, 0x9b, 0x96, 0x61, 0xc1, 0x74, 0xd3, 0x21, 0x4f, + 0x3e, 0xc5, 0xd7, 0x80, 0xd1, 0x01, 0x80, 0xb7, 0x79, 0x70, 0xb4, 0x92, 0xb5, 0x80, 0x2d, 0xff, + 0x2b, 0xf0, 0xd1, 0xea, 0xaf, 0x6b, 0x38, 0x61, 0x8c, 0xa8, 0xcf, 0x27, 0x1d, 0x71, 0x22, 0x76, + 0xc8, 0x77, 0xee, 0x09, 0xab, 0x02, 0x8d, 0x36, 0x43, 0xb7, 0x42, 0xd0, 0x3a, 0x75, 0x0d, 0x5a, + 0x3b, 0xcb, 0x18, 0xf8, 0xe5, 0xad, 0x23, 0x47, 0xde, 0xba, 0xe1, 0x85, 0x75, 0x8b, 0x5d, 0x47, + 0x8e, 0xd8, 0xe5, 0x87, 0x01, 0xd3, 0x57, 0xcd, 0x99, 0xbe, 0x8a, 0x5e, 0x1c, 0xf7, 0x10, 0x56, + 0x73, 0x86, 0x30, 0x5f, 0x12, 0x9c, 0xc5, 0x6a, 0xce, 0x2c, 0xe6, 0x49, 0x72, 0x8f, 0x64, 0x35, + 0x67, 0x24, 0xf3, 0x25, 0xc1, 0xc9, 0xec, 0x01, 0x90, 0xcc, 0x6e, 0x7a, 0xa1, 0xbc, 0x02, 0xda, + 0x09, 0x14, 0xd0, 0x6e, 0x79, 0x36, 0xe6, 0x99, 0xd3, 0x1e, 0x00, 0x39, 0xcd, 0xbf, 0x39, 0x97, + 0xb8, 0x76, 0x02, 0xc5, 0xb5, 0x25, 0x9a, 0x73, 0x4b, 0x6d, 0x55, 0x7b, 0x6a, 0x2b, 0x78, 0xb1, + 0xe0, 0xf0, 0x56, 0x73, 0x86, 0xb7, 0xa2, 0xff, 0x59, 0x84, 0x32, 0xdc, 0xa9, 0x6b, 0x86, 0x5b, + 0xea, 0x70, 0xfb, 0x45, 0xb9, 0x6f, 0xdd, 0xa2, 0xdc, 0xf6, 0x32, 0x74, 0xef, 0x44, 0xf7, 0x95, + 0x4b, 0xa2, 0x2b, 0x2f, 0x83, 0xbe, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0x5d, 0x05, 0xbb, + 0xff, 0x46, 0xb0, 0xdb, 0x5b, 0xfb, 0xf9, 0x97, 0x1c, 0x2a, 0x5e, 0xc7, 0x21, 0xc3, 0x9a, 0x6c, + 0xe0, 0x40, 0x7d, 0x3f, 0x25, 0xb0, 0xcf, 0x6a, 0x0a, 0xb1, 0xcf, 0x83, 0x54, 0xa0, 0xfa, 0xd9, + 0xc5, 0x8c, 0x0a, 0xcf, 0x66, 0x54, 0x78, 0x3e, 0xa3, 0xc2, 0xcb, 0x19, 0x45, 0xaf, 0x66, 0x14, + 0xbd, 0x9e, 0x51, 0xf4, 0x66, 0x46, 0xd1, 0x53, 0x95, 0xa2, 0x5f, 0x55, 0x8a, 0x7e, 0x53, 0x29, + 0xfa, 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x0b, 0x95, 0x0a, 0xcf, 0x54, 0x2a, 0xbc, 0x54, 0x29, + 0x7a, 0xa5, 0x52, 0xe1, 0xb5, 0x4a, 0xd1, 0x1b, 0x95, 0x0a, 0x4f, 0xff, 0xa6, 0xc2, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x3c, 0x2b, 0x76, 0x8f, 0xf5, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto index 4f940946..39de5831 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go index 36fdec4f..479c8ce7 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -35,18 +36,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -74,11 +75,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -88,11 +89,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -105,22 +106,96 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -148,11 +223,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -162,11 +237,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -183,18 +258,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -222,11 +297,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -236,11 +311,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -274,6 +349,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -320,9 +416,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -337,9 +433,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -354,9 +484,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -371,9 +501,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -388,9 +518,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -405,9 +535,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,12 +554,27 @@ func TestMapsproto2Description(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -439,12 +584,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -454,12 +599,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -474,6 +619,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -503,6 +656,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -534,13 +700,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -565,18 +731,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -606,13 +808,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -646,6 +848,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go index 78a829d6..e9ccaa87 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go @@ -10,6 +10,7 @@ It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,7 +33,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -42,7 +45,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -90,58 +95,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -149,6 +167,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -158,264 +179,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4102 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xef, 0xe4, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0xd7, 0x8e, - 0xd7, 0x72, 0x22, 0x39, 0x4a, 0x6c, 0xaf, 0xe9, 0xc4, 0x81, 0x2e, 0x5c, 0xad, 0x1c, 0xdd, 0x3a, - 0x94, 0xec, 0xb5, 0x0b, 0x83, 0x1d, 0x91, 0x43, 0x8a, 0xf6, 0x70, 0x86, 0xe5, 0x0c, 0xed, 0x55, - 0x9e, 0x5c, 0xb8, 0x17, 0x04, 0x45, 0xef, 0x05, 0xea, 0x38, 0x4e, 0x5a, 0x07, 0x68, 0x9d, 0x26, - 0xbd, 0x24, 0xbd, 0xa1, 0xe8, 0x53, 0x80, 0x22, 0x6d, 0x9e, 0x8a, 0xb6, 0x4f, 0x79, 0xc8, 0x43, - 0x92, 0x1a, 0xa8, 0xdb, 0xa6, 0xad, 0x0b, 0x18, 0x68, 0x00, 0xbf, 0xf4, 0xfc, 0xb7, 0xe1, 0x3f, - 0xc3, 0x21, 0x87, 0x0a, 0x90, 0x26, 0x0f, 0x16, 0x40, 0x88, 0x73, 0xfe, 0xf3, 0x7d, 0x73, 0xe6, - 0xfc, 0xe7, 0x3f, 0xe7, 0xfc, 0x3f, 0x07, 0xfe, 0xf6, 0x23, 0x70, 0x4f, 0xc7, 0xb6, 0x3b, 0xa6, - 0xb1, 0xda, 0x1f, 0xd8, 0xae, 0x7d, 0x32, 0x6c, 0xaf, 0xb6, 0x0c, 0xa7, 0x39, 0xe8, 0xf6, 0x5d, - 0x7b, 0xb0, 0x42, 0x65, 0x6a, 0x89, 0x69, 0xac, 0x08, 0x8d, 0xca, 0x1e, 0xcc, 0x5f, 0xef, 0x9a, - 0xc6, 0x96, 0xa7, 0x58, 0x37, 0x5c, 0xf5, 0x1a, 0x24, 0xdb, 0x28, 0x2c, 0xc7, 0xee, 0x49, 0x5c, - 0xcd, 0xaf, 0xdd, 0xbb, 0x12, 0x00, 0xad, 0xf8, 0x11, 0x87, 0x44, 0xac, 0x51, 0x44, 0xe5, 0xad, - 0x24, 0x2c, 0x84, 0x8c, 0xaa, 0x2a, 0x24, 0x2d, 0xbd, 0x47, 0x18, 0x63, 0x57, 0x73, 0x1a, 0xfd, - 0xae, 0x96, 0x21, 0xd3, 0xd7, 0x9b, 0x2f, 0xe8, 0x1d, 0xa3, 0x1c, 0xa7, 0x62, 0x71, 0xa9, 0x5e, - 0x04, 0x68, 0x19, 0x7d, 0xc3, 0x6a, 0x19, 0x56, 0xf3, 0xac, 0x9c, 0x40, 0x2b, 0x72, 0x9a, 0x24, - 0x51, 0x1f, 0x84, 0xf9, 0xfe, 0xf0, 0xc4, 0xec, 0x36, 0x1b, 0x92, 0x1a, 0xa0, 0x5a, 0x4a, 0x53, - 0xd8, 0xc0, 0xd6, 0x48, 0xf9, 0x7e, 0x28, 0xbd, 0x64, 0xe8, 0x2f, 0xc8, 0xaa, 0x79, 0xaa, 0x5a, - 0x24, 0x62, 0x49, 0x71, 0x13, 0x0a, 0x3d, 0xc3, 0x71, 0xd0, 0x80, 0x86, 0x7b, 0xd6, 0x37, 0xca, - 0x49, 0xfa, 0xf4, 0xf7, 0x8c, 0x3d, 0x7d, 0xf0, 0xc9, 0xf3, 0x1c, 0x75, 0x84, 0x20, 0x75, 0x1d, - 0x72, 0x86, 0x35, 0xec, 0x31, 0x86, 0xd4, 0x04, 0xff, 0xd5, 0x50, 0x23, 0xc8, 0x92, 0x25, 0x30, - 0x4e, 0x91, 0x71, 0x8c, 0xc1, 0x8b, 0xdd, 0xa6, 0x51, 0x4e, 0x53, 0x82, 0xfb, 0xc7, 0x08, 0xea, - 0x6c, 0x3c, 0xc8, 0x21, 0x70, 0xf8, 0x28, 0x39, 0xe3, 0x96, 0x6b, 0x58, 0x4e, 0xd7, 0xb6, 0xca, - 0x19, 0x4a, 0x72, 0x5f, 0xc8, 0x2c, 0x1a, 0x66, 0x2b, 0x48, 0x31, 0xc2, 0xa9, 0x8f, 0x40, 0xc6, - 0xee, 0xbb, 0xf8, 0xcd, 0x29, 0x67, 0x71, 0x7e, 0xf2, 0x6b, 0x77, 0x85, 0x06, 0xc2, 0x01, 0xd3, - 0xd1, 0x84, 0xb2, 0xba, 0x03, 0x8a, 0x63, 0x0f, 0x07, 0x4d, 0xa3, 0xd1, 0xb4, 0x5b, 0x46, 0xa3, - 0x6b, 0xb5, 0xed, 0x72, 0x8e, 0x12, 0x5c, 0x1a, 0x7f, 0x10, 0xaa, 0xb8, 0x89, 0x7a, 0x3b, 0xa8, - 0xa6, 0x15, 0x1d, 0xdf, 0xb5, 0x7a, 0x01, 0xd2, 0xce, 0x99, 0xe5, 0xea, 0xb7, 0xca, 0x05, 0x1a, - 0x21, 0xfc, 0xaa, 0xf2, 0xbf, 0x29, 0x28, 0xcd, 0x12, 0x62, 0x8f, 0x43, 0xaa, 0x4d, 0x9e, 0x12, - 0x03, 0xec, 0x1c, 0x3e, 0x60, 0x18, 0xbf, 0x13, 0xd3, 0x3f, 0xa4, 0x13, 0xd7, 0x21, 0x6f, 0x19, - 0x8e, 0x6b, 0xb4, 0x58, 0x44, 0x24, 0x66, 0x8c, 0x29, 0x60, 0xa0, 0xf1, 0x90, 0x4a, 0xfe, 0x50, - 0x21, 0x75, 0x13, 0x4a, 0x9e, 0x49, 0x8d, 0x81, 0x6e, 0x75, 0x44, 0x6c, 0xae, 0x46, 0x59, 0xb2, - 0x52, 0x13, 0x38, 0x8d, 0xc0, 0xb4, 0xa2, 0xe1, 0xbb, 0x56, 0xb7, 0x00, 0x6c, 0xcb, 0xb0, 0xdb, - 0xb8, 0xbc, 0x9a, 0x26, 0xc6, 0x49, 0xb8, 0x97, 0x0e, 0x88, 0xca, 0x98, 0x97, 0x6c, 0x26, 0x6d, - 0x9a, 0xea, 0x63, 0xa3, 0x50, 0xcb, 0x4c, 0x88, 0x94, 0x3d, 0xb6, 0xc8, 0xc6, 0xa2, 0xed, 0x18, - 0x8a, 0x03, 0x83, 0xc4, 0x3d, 0xba, 0x98, 0x3d, 0x59, 0x8e, 0x1a, 0xb1, 0x12, 0xf9, 0x64, 0x1a, - 0x87, 0xb1, 0x07, 0x9b, 0x1b, 0xc8, 0x97, 0xea, 0x15, 0xf0, 0x04, 0x0d, 0x1a, 0x56, 0x40, 0xb3, - 0x50, 0x41, 0x08, 0xf7, 0x51, 0xb6, 0x74, 0x0d, 0x8a, 0x7e, 0xf7, 0xa8, 0x8b, 0x90, 0x72, 0x5c, - 0x7d, 0xe0, 0xd2, 0x28, 0x4c, 0x69, 0xec, 0x42, 0x55, 0x20, 0x81, 0x49, 0x86, 0x66, 0xb9, 0x94, - 0x46, 0xbe, 0x2e, 0x3d, 0x0a, 0x73, 0xbe, 0xdb, 0xcf, 0x0a, 0xac, 0xbc, 0x9a, 0x86, 0xc5, 0xb0, - 0x98, 0x0b, 0x0d, 0x7f, 0x5c, 0x3e, 0x18, 0x01, 0x27, 0xc6, 0x00, 0xe3, 0x8e, 0x30, 0xf0, 0x2b, - 0x8c, 0xa8, 0x94, 0xa9, 0x9f, 0x18, 0x26, 0x46, 0x53, 0xec, 0x6a, 0x71, 0xed, 0xc1, 0x99, 0xa2, - 0x7a, 0x65, 0x97, 0x40, 0x34, 0x86, 0x54, 0x9f, 0x80, 0x24, 0x4f, 0x71, 0x84, 0x61, 0x79, 0x36, - 0x06, 0x12, 0x8b, 0x1a, 0xc5, 0xa9, 0x1f, 0x80, 0x1c, 0xf9, 0xcf, 0x7c, 0x9b, 0xa6, 0x36, 0x67, - 0x89, 0x80, 0xf8, 0x55, 0x5d, 0x82, 0x2c, 0x0d, 0xb3, 0x96, 0x21, 0x4a, 0x83, 0x77, 0x4d, 0x26, - 0xa6, 0x65, 0xb4, 0xf5, 0xa1, 0xe9, 0x36, 0x5e, 0xd4, 0xcd, 0xa1, 0x41, 0x03, 0x06, 0x27, 0x86, - 0x0b, 0x9f, 0x22, 0x32, 0xf5, 0x12, 0xe4, 0x59, 0x54, 0x76, 0x11, 0x73, 0x8b, 0x66, 0x9f, 0x94, - 0xc6, 0x02, 0x75, 0x87, 0x48, 0xc8, 0xed, 0x9f, 0x77, 0x70, 0x2d, 0xf0, 0xa9, 0xa5, 0xb7, 0x20, - 0x02, 0x7a, 0xfb, 0x47, 0x83, 0x89, 0xef, 0xee, 0xf0, 0xc7, 0x0b, 0xc6, 0x62, 0xe5, 0xaf, 0xe2, - 0x90, 0xa4, 0xeb, 0xad, 0x04, 0xf9, 0xa3, 0x67, 0x0e, 0x6b, 0x8d, 0xad, 0x83, 0xe3, 0x8d, 0xdd, - 0x9a, 0x12, 0x53, 0x8b, 0x00, 0x54, 0x70, 0x7d, 0xf7, 0x60, 0xfd, 0x48, 0x89, 0x7b, 0xd7, 0x3b, - 0xfb, 0x47, 0x8f, 0x7c, 0x4c, 0x49, 0x78, 0x80, 0x63, 0x26, 0x48, 0xca, 0x0a, 0x1f, 0x5d, 0x53, - 0x52, 0x18, 0x09, 0x05, 0x46, 0xb0, 0x73, 0xb3, 0xb6, 0x85, 0x1a, 0x69, 0xbf, 0x04, 0x75, 0x32, - 0xea, 0x1c, 0xe4, 0xa8, 0x64, 0xe3, 0xe0, 0x60, 0x57, 0xc9, 0x7a, 0x9c, 0xf5, 0x23, 0x6d, 0x67, - 0x7f, 0x5b, 0xc9, 0x79, 0x9c, 0xdb, 0xda, 0xc1, 0xf1, 0xa1, 0x02, 0x1e, 0xc3, 0x5e, 0xad, 0x5e, - 0x5f, 0xdf, 0xae, 0x29, 0x79, 0x4f, 0x63, 0xe3, 0x99, 0xa3, 0x5a, 0x5d, 0x29, 0xf8, 0xcc, 0xc2, - 0x5b, 0xcc, 0x79, 0xb7, 0xa8, 0xed, 0x1f, 0xef, 0x29, 0x45, 0x75, 0x1e, 0xe6, 0xd8, 0x2d, 0x84, - 0x11, 0xa5, 0x80, 0x08, 0x2d, 0x55, 0x46, 0x86, 0x30, 0x96, 0x79, 0x9f, 0x00, 0x35, 0xd4, 0xca, - 0x26, 0xa4, 0x68, 0x74, 0x61, 0x14, 0x17, 0x77, 0xd7, 0x37, 0x6a, 0xbb, 0x8d, 0x83, 0xc3, 0xa3, - 0x9d, 0x83, 0xfd, 0xf5, 0x5d, 0xf4, 0x9d, 0x27, 0xd3, 0x6a, 0x3f, 0x75, 0xbc, 0xa3, 0xd5, 0xb6, - 0xd0, 0x7f, 0x92, 0xec, 0xb0, 0xb6, 0x7e, 0x84, 0xb2, 0x44, 0x65, 0x19, 0x16, 0xc3, 0xf2, 0x4c, - 0xd8, 0xca, 0xa8, 0x7c, 0x31, 0x06, 0x0b, 0x21, 0x29, 0x33, 0x74, 0x15, 0x7d, 0x12, 0x52, 0x2c, - 0xd2, 0x58, 0x11, 0x79, 0x20, 0x34, 0xf7, 0xd2, 0xb8, 0x1b, 0x2b, 0x24, 0x14, 0x27, 0x17, 0xd2, - 0xc4, 0x84, 0x42, 0x4a, 0x28, 0xc6, 0xc2, 0xe9, 0x95, 0x18, 0x94, 0x27, 0x71, 0x47, 0xac, 0xf7, - 0xb8, 0x6f, 0xbd, 0x3f, 0x1e, 0x34, 0xe0, 0xf2, 0xe4, 0x67, 0x18, 0xb3, 0xe2, 0xcd, 0x18, 0x5c, - 0x08, 0xef, 0x37, 0x42, 0x6d, 0x78, 0x02, 0xd2, 0x3d, 0xc3, 0x3d, 0xb5, 0x45, 0xcd, 0xfd, 0x60, - 0x48, 0x26, 0x27, 0xc3, 0x41, 0x5f, 0x71, 0x94, 0x5c, 0x0a, 0x12, 0x93, 0x9a, 0x06, 0x66, 0xcd, - 0x98, 0xa5, 0x9f, 0x89, 0xc3, 0xed, 0xa1, 0xe4, 0xa1, 0x86, 0xde, 0x0d, 0xd0, 0xb5, 0xfa, 0x43, - 0x97, 0xd5, 0x55, 0x96, 0x66, 0x72, 0x54, 0x42, 0x97, 0x30, 0x49, 0x21, 0x43, 0xd7, 0x1b, 0x4f, - 0xd0, 0x71, 0x60, 0x22, 0xaa, 0x70, 0x6d, 0x64, 0x68, 0x92, 0x1a, 0x7a, 0x71, 0xc2, 0x93, 0x8e, - 0x95, 0xac, 0x87, 0x40, 0x69, 0x9a, 0x5d, 0xc3, 0x72, 0x1b, 0x8e, 0x3b, 0x30, 0xf4, 0x5e, 0xd7, - 0xea, 0xd0, 0x3c, 0x9a, 0xad, 0xa6, 0xda, 0xba, 0xe9, 0x18, 0x5a, 0x89, 0x0d, 0xd7, 0xc5, 0x28, - 0x41, 0xd0, 0x62, 0x31, 0x90, 0x10, 0x69, 0x1f, 0x82, 0x0d, 0x7b, 0x88, 0xca, 0x3f, 0x67, 0x20, - 0x2f, 0x75, 0x67, 0xea, 0x65, 0x28, 0x3c, 0xaf, 0xbf, 0xa8, 0x37, 0x44, 0xc7, 0xcd, 0x3c, 0x91, - 0x27, 0xb2, 0x43, 0xde, 0x75, 0x3f, 0x04, 0x8b, 0x54, 0x05, 0x9f, 0x11, 0x6f, 0xd4, 0x34, 0x75, - 0xc7, 0xa1, 0x4e, 0xcb, 0x52, 0x55, 0x95, 0x8c, 0x1d, 0x90, 0xa1, 0x4d, 0x31, 0xa2, 0x3e, 0x0c, - 0x0b, 0x14, 0xd1, 0xc3, 0xc4, 0xdb, 0xed, 0x9b, 0x46, 0x83, 0xec, 0x01, 0x1c, 0x9a, 0x4f, 0x3d, - 0xcb, 0xe6, 0x89, 0xc6, 0x1e, 0x57, 0x20, 0x16, 0x39, 0xea, 0x36, 0xdc, 0x4d, 0x61, 0x1d, 0xc3, - 0x32, 0x06, 0xba, 0x6b, 0x34, 0x8c, 0x9f, 0x1d, 0xa2, 0x6e, 0x43, 0xb7, 0x5a, 0x8d, 0x53, 0xdd, - 0x39, 0x2d, 0x2f, 0xca, 0x04, 0x77, 0x12, 0xdd, 0x6d, 0xae, 0x5a, 0xa3, 0x9a, 0xeb, 0x56, 0xeb, - 0x06, 0xea, 0xa9, 0x55, 0xb8, 0x40, 0x89, 0xd0, 0x29, 0xf8, 0xcc, 0x8d, 0xe6, 0xa9, 0xd1, 0x7c, - 0xa1, 0x31, 0x74, 0xdb, 0xd7, 0xca, 0x1f, 0x90, 0x19, 0xa8, 0x91, 0x75, 0xaa, 0xb3, 0x49, 0x54, - 0x8e, 0x51, 0x43, 0xad, 0x43, 0x81, 0xcc, 0x47, 0xaf, 0xfb, 0x69, 0x34, 0xdb, 0x1e, 0xd0, 0x1a, - 0x51, 0x0c, 0x59, 0xdc, 0x92, 0x13, 0x57, 0x0e, 0x38, 0x60, 0x0f, 0xfb, 0xd3, 0x6a, 0xaa, 0x7e, - 0x58, 0xab, 0x6d, 0x69, 0x79, 0xc1, 0x72, 0xdd, 0x1e, 0x90, 0x98, 0xea, 0xd8, 0x9e, 0x8f, 0xf3, - 0x2c, 0xa6, 0x3a, 0xb6, 0xf0, 0x30, 0xfa, 0xab, 0xd9, 0x64, 0x8f, 0x8d, 0x7b, 0x17, 0xde, 0xac, - 0x3b, 0x65, 0xc5, 0xe7, 0xaf, 0x66, 0x73, 0x9b, 0x29, 0xf0, 0x30, 0x77, 0x70, 0x49, 0xdc, 0x3e, - 0xf2, 0x97, 0x0c, 0x9c, 0x1f, 0x7b, 0xca, 0x20, 0x14, 0xef, 0xd8, 0x3f, 0x1b, 0x07, 0xaa, 0xbe, - 0x3b, 0xf6, 0xcf, 0x82, 0xb0, 0xfb, 0xe8, 0x06, 0x6c, 0x60, 0x34, 0xd1, 0xe5, 0xad, 0xf2, 0x1d, - 0xb2, 0xb6, 0x34, 0xa0, 0xae, 0x62, 0x20, 0x37, 0x1b, 0x86, 0xa5, 0x9f, 0xe0, 0xdc, 0xeb, 0x03, - 0xfc, 0xe2, 0x94, 0x2f, 0xc9, 0xca, 0xc5, 0x66, 0xb3, 0x46, 0x47, 0xd7, 0xe9, 0xa0, 0xba, 0x0c, - 0xf3, 0xf6, 0xc9, 0xf3, 0x4d, 0x16, 0x5c, 0x0d, 0xe4, 0x69, 0x77, 0x6f, 0x95, 0xef, 0xa5, 0x6e, - 0x2a, 0x91, 0x01, 0x1a, 0x5a, 0x87, 0x54, 0xac, 0x3e, 0x80, 0xe4, 0xce, 0xa9, 0x3e, 0xe8, 0xd3, - 0x22, 0xed, 0xa0, 0x53, 0x8d, 0xf2, 0x7d, 0x4c, 0x95, 0xc9, 0xf7, 0x85, 0x58, 0xad, 0xc1, 0x25, - 0xf2, 0xf0, 0x96, 0x6e, 0xd9, 0x8d, 0xa1, 0x63, 0x34, 0x46, 0x26, 0x7a, 0x73, 0xf1, 0x41, 0x62, - 0x96, 0x76, 0x97, 0x50, 0x3b, 0x76, 0x30, 0x99, 0x09, 0x25, 0x31, 0x3d, 0x37, 0x61, 0x71, 0x68, - 0x75, 0x2d, 0x0c, 0x71, 0x1c, 0x21, 0x60, 0xb6, 0x60, 0xcb, 0xff, 0x9a, 0x99, 0xd0, 0x74, 0x1f, - 0xcb, 0xda, 0x2c, 0x48, 0xb4, 0x85, 0xe1, 0xb8, 0xb0, 0x52, 0x85, 0x82, 0x1c, 0x3b, 0x6a, 0x0e, - 0x58, 0xf4, 0x60, 0x75, 0xc3, 0x8a, 0xba, 0x79, 0xb0, 0x45, 0x6a, 0xe1, 0xb3, 0x35, 0x2c, 0x6c, - 0x58, 0x93, 0x77, 0x77, 0x8e, 0x6a, 0x0d, 0xed, 0x78, 0xff, 0x68, 0x67, 0xaf, 0xa6, 0x24, 0x96, - 0x73, 0xd9, 0xb7, 0x33, 0xca, 0xcb, 0xf8, 0x17, 0xaf, 0x7c, 0x23, 0x0e, 0x45, 0x7f, 0x1f, 0xac, - 0x7e, 0x1c, 0xee, 0x10, 0x9b, 0x56, 0xc7, 0x70, 0x1b, 0x2f, 0x75, 0x07, 0x34, 0x9c, 0x7b, 0x3a, - 0xeb, 0x24, 0xbd, 0x99, 0x58, 0xe4, 0x5a, 0xb8, 0xbd, 0x7f, 0x1a, 0x75, 0xae, 0x53, 0x15, 0x75, - 0x17, 0x2e, 0xa1, 0xcb, 0xb0, 0xd7, 0xb4, 0x5a, 0xfa, 0xa0, 0xd5, 0x18, 0x1d, 0x17, 0x34, 0xf4, - 0x26, 0xc6, 0x81, 0x63, 0xb3, 0x4a, 0xe2, 0xb1, 0xdc, 0x65, 0xd9, 0x75, 0xae, 0x3c, 0x4a, 0xb1, - 0xeb, 0x5c, 0x35, 0x10, 0x35, 0x89, 0x49, 0x51, 0x83, 0xbd, 0x57, 0x4f, 0xef, 0x63, 0xd8, 0xb8, - 0x83, 0x33, 0xda, 0xbd, 0x65, 0xb5, 0x2c, 0x0a, 0x6a, 0xe4, 0xfa, 0x47, 0x37, 0x07, 0xb2, 0x1f, - 0xbf, 0x9d, 0x80, 0x82, 0xdc, 0xc1, 0x91, 0x86, 0xb8, 0x49, 0xd3, 0x7c, 0x8c, 0x66, 0x81, 0x2b, - 0x53, 0xfb, 0xbd, 0x95, 0x4d, 0x92, 0xff, 0xab, 0x69, 0xd6, 0x57, 0x69, 0x0c, 0x49, 0x6a, 0x2f, - 0x89, 0x35, 0x83, 0x75, 0xeb, 0x59, 0x8d, 0x5f, 0x61, 0xb2, 0x4b, 0x3f, 0xef, 0x50, 0xee, 0x34, - 0xe5, 0xbe, 0x77, 0x3a, 0xf7, 0x93, 0x75, 0x4a, 0x9e, 0x7b, 0xb2, 0xde, 0xd8, 0x3f, 0xd0, 0xf6, - 0xd6, 0x77, 0x35, 0x0e, 0x57, 0xef, 0x84, 0xa4, 0xa9, 0x7f, 0xfa, 0xcc, 0x5f, 0x29, 0xa8, 0x68, - 0x56, 0xc7, 0x23, 0x03, 0x39, 0xf2, 0xf0, 0xe7, 0x67, 0x2a, 0xfa, 0x11, 0x86, 0xfe, 0x2a, 0xa4, - 0xa8, 0xbf, 0x54, 0x00, 0xee, 0x31, 0xe5, 0x36, 0x35, 0x0b, 0xc9, 0xcd, 0x03, 0x8d, 0x84, 0x3f, - 0xc6, 0x3b, 0x93, 0x36, 0x0e, 0x77, 0x6a, 0x9b, 0xb8, 0x02, 0x2a, 0x0f, 0x43, 0x9a, 0x39, 0x81, - 0x2c, 0x0d, 0xcf, 0x0d, 0x08, 0x62, 0x97, 0x9c, 0x23, 0x26, 0x46, 0x8f, 0xf7, 0x36, 0x6a, 0x9a, - 0x12, 0x97, 0xa7, 0xf7, 0x6f, 0x62, 0x90, 0x97, 0x1a, 0x2a, 0x52, 0xca, 0x75, 0xd3, 0xb4, 0x5f, - 0x6a, 0xe8, 0x66, 0x17, 0x33, 0x14, 0x9b, 0x1f, 0xa0, 0xa2, 0x75, 0x22, 0x99, 0xd5, 0x7f, 0xff, - 0x2f, 0xb1, 0xf9, 0x85, 0x18, 0x28, 0xc1, 0x66, 0x2c, 0x60, 0x60, 0xec, 0xc7, 0x6a, 0xe0, 0xeb, - 0x31, 0x28, 0xfa, 0x3b, 0xb0, 0x80, 0x79, 0x97, 0x7f, 0xac, 0xe6, 0x7d, 0x2e, 0x06, 0x73, 0xbe, - 0xbe, 0xeb, 0x27, 0xca, 0xba, 0xd7, 0x12, 0xb0, 0x10, 0x82, 0xc3, 0x04, 0xc4, 0x1a, 0x54, 0xd6, - 0x33, 0x7f, 0x78, 0x96, 0x7b, 0xad, 0x90, 0xfa, 0x77, 0xa8, 0x0f, 0x5c, 0xde, 0xcf, 0x62, 0xbd, - 0xec, 0xb6, 0x30, 0xa9, 0x76, 0xdb, 0x5d, 0x6c, 0xdf, 0xd8, 0x8e, 0x85, 0x75, 0xad, 0xa5, 0x91, - 0x9c, 0x6d, 0x8f, 0x3f, 0x04, 0x6a, 0xdf, 0x76, 0xba, 0x6e, 0xf7, 0x45, 0x72, 0x3c, 0x27, 0x36, - 0xd2, 0xa4, 0x8b, 0x4d, 0x6a, 0x8a, 0x18, 0xd9, 0xb1, 0x5c, 0x4f, 0xdb, 0x32, 0x3a, 0x7a, 0x40, - 0x9b, 0xa4, 0xa1, 0x84, 0xa6, 0x88, 0x11, 0x4f, 0x1b, 0x1b, 0xcd, 0x96, 0x3d, 0x24, 0x0d, 0x01, - 0xd3, 0x23, 0x59, 0x2f, 0xa6, 0xe5, 0x99, 0xcc, 0x53, 0xe1, 0x1d, 0xdb, 0x68, 0x07, 0x5f, 0xd0, - 0xf2, 0x4c, 0xc6, 0x54, 0xee, 0x87, 0x92, 0xde, 0xe9, 0x0c, 0x08, 0xb9, 0x20, 0x62, 0x6d, 0x68, - 0xd1, 0x13, 0x53, 0xc5, 0xa5, 0x27, 0x21, 0x2b, 0xfc, 0x40, 0x0a, 0x0b, 0xf1, 0x04, 0xd6, 0x7c, - 0x7a, 0x8e, 0x12, 0x27, 0x9b, 0x7a, 0x4b, 0x0c, 0xe2, 0x4d, 0xbb, 0x4e, 0x63, 0x74, 0xa0, 0x17, - 0xc7, 0xf1, 0xac, 0x96, 0xef, 0x3a, 0xde, 0x09, 0x4e, 0xe5, 0x4d, 0x2c, 0xaf, 0xfe, 0x03, 0x49, - 0x75, 0x0b, 0xb2, 0xa6, 0x8d, 0xf1, 0x41, 0x10, 0xec, 0x34, 0xfc, 0x6a, 0xc4, 0x19, 0xe6, 0xca, - 0x2e, 0xd7, 0xd7, 0x3c, 0xe4, 0xd2, 0x3f, 0xc4, 0x20, 0x2b, 0xc4, 0x58, 0x28, 0x92, 0x7d, 0xdd, - 0x3d, 0xa5, 0x74, 0xa9, 0x8d, 0xb8, 0x12, 0xd3, 0xe8, 0x35, 0x91, 0x63, 0x37, 0x63, 0xd1, 0x10, - 0xe0, 0x72, 0x72, 0x4d, 0xe6, 0xd5, 0x34, 0xf4, 0x16, 0x6d, 0x70, 0xed, 0x5e, 0x0f, 0x67, 0xd2, - 0x11, 0xf3, 0xca, 0xe5, 0x9b, 0x5c, 0x4c, 0xce, 0xc5, 0xdd, 0x81, 0xde, 0x35, 0x7d, 0xba, 0x49, - 0xaa, 0xab, 0x88, 0x01, 0x4f, 0xb9, 0x0a, 0x77, 0x0a, 0xde, 0x96, 0xe1, 0xea, 0xd8, 0x3c, 0xb7, - 0x46, 0xa0, 0x34, 0x3d, 0xed, 0xba, 0x83, 0x2b, 0x6c, 0xf1, 0x71, 0x81, 0xdd, 0xb8, 0x89, 0x8d, - 0xac, 0xdd, 0x0b, 0x7a, 0x62, 0x43, 0x09, 0xec, 0xbb, 0x9c, 0x1b, 0xb1, 0x67, 0x61, 0xd4, 0x54, - 0x7c, 0x31, 0x9e, 0xd8, 0x3e, 0xdc, 0xf8, 0x72, 0x7c, 0x69, 0x9b, 0xe1, 0x0e, 0x85, 0x07, 0x35, - 0xa3, 0x6d, 0x1a, 0x4d, 0xe2, 0x1d, 0x78, 0xe3, 0x0a, 0x7c, 0xb8, 0xd3, 0x75, 0x4f, 0x87, 0x27, - 0x2b, 0x78, 0x87, 0xd5, 0x8e, 0xdd, 0xb1, 0x47, 0x3f, 0x67, 0x90, 0x2b, 0x7a, 0x41, 0xbf, 0xf1, - 0x9f, 0x34, 0x72, 0x9e, 0x74, 0x29, 0xf2, 0xf7, 0x8f, 0xea, 0x3e, 0x2c, 0x70, 0xe5, 0x06, 0x3d, - 0x53, 0x65, 0x2d, 0xa8, 0x3a, 0x75, 0x43, 0x5e, 0xfe, 0xda, 0x5b, 0xb4, 0x24, 0x68, 0xf3, 0x1c, - 0x4a, 0xc6, 0x58, 0x93, 0x5a, 0xd5, 0xe0, 0x76, 0x1f, 0x1f, 0x8b, 0x61, 0xdc, 0x72, 0x4f, 0x67, - 0xfc, 0x06, 0x67, 0x5c, 0x90, 0x18, 0xeb, 0x1c, 0x5a, 0xdd, 0x84, 0xb9, 0xf3, 0x70, 0xfd, 0x1d, - 0xe7, 0x2a, 0x18, 0x32, 0xc9, 0x36, 0x94, 0x28, 0x49, 0x73, 0xe8, 0xb8, 0x76, 0x8f, 0x26, 0x88, - 0xe9, 0x34, 0x7f, 0xff, 0x16, 0x0b, 0xaa, 0x22, 0x81, 0x6d, 0x7a, 0xa8, 0xea, 0x53, 0xb0, 0x48, - 0x24, 0x74, 0x0d, 0xca, 0x6c, 0xd1, 0x47, 0x08, 0xe5, 0x7f, 0x7a, 0x85, 0xc5, 0xde, 0x82, 0x47, - 0x20, 0xf1, 0x4a, 0x33, 0xd1, 0x31, 0x5c, 0xcc, 0x6d, 0xb8, 0xff, 0x33, 0x4d, 0x75, 0xea, 0x6f, - 0x0c, 0xe5, 0xcf, 0x7e, 0xdf, 0x3f, 0x13, 0xdb, 0x0c, 0xb9, 0x6e, 0x9a, 0xd5, 0x63, 0xb8, 0x23, - 0x64, 0x66, 0x67, 0xe0, 0x7c, 0x8d, 0x73, 0x2e, 0x8e, 0xcd, 0x2e, 0xa1, 0x3d, 0x04, 0x21, 0xf7, - 0xe6, 0x63, 0x06, 0xce, 0xcf, 0x71, 0x4e, 0x95, 0x63, 0xc5, 0xb4, 0x10, 0xc6, 0x27, 0x61, 0x1e, - 0x77, 0xea, 0x27, 0xb6, 0xc3, 0xf7, 0xbd, 0x33, 0xd0, 0xbd, 0xce, 0xe9, 0x4a, 0x1c, 0x48, 0x77, - 0xc1, 0x84, 0xeb, 0x31, 0xc8, 0xb6, 0x71, 0x03, 0x34, 0x03, 0xc5, 0xe7, 0x39, 0x45, 0x86, 0xe8, - 0x13, 0xe8, 0x3a, 0x14, 0x3a, 0x36, 0x4f, 0xc3, 0xd1, 0xf0, 0x2f, 0x70, 0x78, 0x5e, 0x60, 0x38, - 0x45, 0xdf, 0xee, 0x0f, 0x4d, 0x92, 0xa3, 0xa3, 0x29, 0x7e, 0x57, 0x50, 0x08, 0x0c, 0xa7, 0x38, - 0x87, 0x5b, 0x7f, 0x4f, 0x50, 0x38, 0x92, 0x3f, 0x3f, 0x49, 0xce, 0x7a, 0xcd, 0x33, 0xdb, 0x9a, - 0xc5, 0x88, 0x37, 0x38, 0x03, 0x70, 0x08, 0x21, 0x78, 0x1c, 0x72, 0xb3, 0x4e, 0xc4, 0xef, 0x73, - 0x78, 0xd6, 0x10, 0x33, 0x80, 0xeb, 0x4c, 0x24, 0x19, 0xf2, 0xdb, 0x4a, 0x34, 0xc5, 0x1f, 0x70, - 0x8a, 0xa2, 0x04, 0xe3, 0x8f, 0xe1, 0x1a, 0x8e, 0x8b, 0x5b, 0xf5, 0x19, 0x48, 0xde, 0x14, 0x8f, - 0xc1, 0x21, 0xdc, 0x95, 0x27, 0x86, 0xd5, 0x3c, 0x9d, 0x8d, 0xe1, 0x4b, 0xc2, 0x95, 0x02, 0x43, - 0x28, 0x30, 0xf3, 0xf4, 0xf4, 0x01, 0x6e, 0xae, 0xcd, 0x99, 0xa6, 0xe3, 0x0f, 0x39, 0x47, 0xc1, - 0x03, 0x71, 0x8f, 0x0c, 0xad, 0xf3, 0xd0, 0x7c, 0x59, 0x78, 0x44, 0x82, 0xf1, 0xa5, 0x87, 0x3b, - 0x53, 0xd2, 0x49, 0x9c, 0x87, 0xed, 0x2b, 0x62, 0xe9, 0x31, 0xec, 0x9e, 0xcc, 0x88, 0x33, 0xed, - 0xe0, 0x16, 0x7c, 0x16, 0x9a, 0x3f, 0x12, 0x33, 0x4d, 0x01, 0x04, 0xfc, 0x0c, 0xdc, 0x19, 0x9a, - 0xea, 0x67, 0x20, 0xfb, 0x63, 0x4e, 0x76, 0x21, 0x24, 0xdd, 0xf3, 0x94, 0x70, 0x5e, 0xca, 0x3f, - 0x11, 0x29, 0xc1, 0x08, 0x70, 0x1d, 0x92, 0x36, 0xd6, 0xd1, 0xdb, 0xe7, 0xf3, 0xda, 0x9f, 0x0a, - 0xaf, 0x31, 0xac, 0xcf, 0x6b, 0x47, 0x70, 0x81, 0x33, 0x9e, 0x6f, 0x5e, 0xbf, 0x2a, 0x12, 0x2b, - 0x43, 0x1f, 0xfb, 0x67, 0xf7, 0xa7, 0x61, 0xc9, 0x73, 0xa7, 0xe8, 0xc0, 0x9c, 0x06, 0x39, 0x18, - 0x88, 0x66, 0xfe, 0x1a, 0x67, 0x16, 0x19, 0xdf, 0x6b, 0xe1, 0x9c, 0x3d, 0xbd, 0x4f, 0xc8, 0x6f, - 0x42, 0x59, 0x90, 0x0f, 0x2d, 0x6c, 0xf0, 0xed, 0x8e, 0x85, 0xd3, 0xd8, 0x9a, 0x81, 0xfa, 0xcf, - 0x02, 0x53, 0x75, 0x2c, 0xc1, 0x09, 0xf3, 0x0e, 0x28, 0x5e, 0xbf, 0xd1, 0xe8, 0xf6, 0xfa, 0x36, - 0xb6, 0x96, 0xd3, 0x19, 0xff, 0x5c, 0xcc, 0x94, 0x87, 0xdb, 0xa1, 0xb0, 0x6a, 0x0d, 0x8a, 0xf4, - 0x72, 0xd6, 0x90, 0xfc, 0x0b, 0x4e, 0x34, 0x37, 0x42, 0xf1, 0xc4, 0x81, 0x9d, 0x12, 0xf6, 0xbc, - 0xb3, 0xe4, 0xbf, 0xbf, 0x14, 0x89, 0x83, 0x43, 0x58, 0xf4, 0x95, 0x02, 0x95, 0x58, 0x8d, 0xfa, - 0xf9, 0xb5, 0xfc, 0x73, 0xef, 0xf2, 0x35, 0xeb, 0x2f, 0xc4, 0xd5, 0x5d, 0xe2, 0x1e, 0x7f, 0xb9, - 0x8c, 0x26, 0x7b, 0xe5, 0x5d, 0xcf, 0x43, 0xbe, 0x6a, 0x59, 0xbd, 0x0e, 0x73, 0xbe, 0x52, 0x19, - 0x4d, 0xf5, 0xf3, 0x9c, 0xaa, 0x20, 0x57, 0xca, 0xea, 0xc3, 0x90, 0x24, 0x65, 0x2f, 0x1a, 0xfe, - 0x0b, 0x1c, 0x4e, 0xd5, 0xab, 0x9f, 0x80, 0xac, 0x28, 0x77, 0xd1, 0xd0, 0x5f, 0xe4, 0x50, 0x0f, - 0x42, 0xe0, 0xa2, 0xd4, 0x45, 0xc3, 0x7f, 0x49, 0xc0, 0x05, 0x84, 0xc0, 0x67, 0x77, 0xe1, 0xd7, - 0x7f, 0x39, 0xc9, 0xd3, 0x95, 0xf0, 0x1d, 0xf9, 0xcd, 0x87, 0xd5, 0xb8, 0x68, 0xf4, 0x67, 0xf8, - 0xcd, 0x05, 0xa2, 0xfa, 0x28, 0xa4, 0x66, 0x74, 0xf8, 0xaf, 0x70, 0x28, 0xd3, 0xc7, 0x0a, 0x92, - 0x97, 0xea, 0x5a, 0x34, 0xfc, 0x57, 0x39, 0x5c, 0x46, 0x11, 0xd3, 0x79, 0x5d, 0x8b, 0x26, 0xf8, - 0x35, 0x61, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x92, 0x16, 0x8d, 0xfe, 0x75, 0xe1, 0x75, 0x01, 0xc1, - 0xd5, 0x94, 0xf3, 0xd2, 0x54, 0x34, 0xfe, 0x37, 0x38, 0x7e, 0x84, 0x21, 0x1e, 0x90, 0xd2, 0x64, - 0x34, 0xc5, 0x6f, 0x0a, 0x0f, 0x48, 0x28, 0xb2, 0x8c, 0x82, 0xa5, 0x2f, 0x9a, 0xe9, 0xb7, 0xc4, - 0x32, 0x0a, 0x54, 0x3e, 0x32, 0x9b, 0x34, 0x5b, 0x44, 0x53, 0xfc, 0xb6, 0x98, 0x4d, 0xaa, 0x4f, - 0xcc, 0x08, 0xd6, 0x92, 0x68, 0x8e, 0xdf, 0x11, 0x66, 0x04, 0x4a, 0x09, 0x56, 0x26, 0x75, 0xbc, - 0x8e, 0x44, 0xf3, 0xbd, 0xca, 0xf9, 0xe6, 0xc7, 0xca, 0x48, 0xf5, 0x69, 0xb8, 0x10, 0x5e, 0x43, - 0xa2, 0x59, 0x3f, 0xfb, 0x6e, 0xa0, 0xeb, 0x97, 0x4b, 0x08, 0x96, 0xbc, 0xc5, 0xb0, 0xfa, 0x11, - 0x4d, 0xfb, 0xda, 0xbb, 0xfe, 0x8d, 0x9d, 0x5c, 0x3e, 0xb0, 0x43, 0x83, 0x51, 0xea, 0x8e, 0xe6, - 0x7a, 0x9d, 0x73, 0x49, 0x20, 0xb2, 0x34, 0x78, 0xe6, 0x8e, 0xc6, 0x7f, 0x5e, 0x2c, 0x0d, 0x8e, - 0x40, 0x70, 0xd6, 0x1a, 0x9a, 0x26, 0x09, 0x0e, 0x75, 0xfa, 0x2b, 0x0d, 0xe5, 0x7f, 0x7b, 0x8f, - 0x2f, 0x0c, 0x01, 0xc0, 0x1c, 0x9a, 0x32, 0x7a, 0x27, 0xe8, 0x83, 0x08, 0xe4, 0xbf, 0xbf, 0x27, - 0x12, 0x02, 0xd1, 0xc6, 0xf5, 0x04, 0x6c, 0xd3, 0x48, 0xcf, 0xb0, 0x23, 0xb0, 0xff, 0xf1, 0x1e, - 0xff, 0x99, 0x75, 0x04, 0x19, 0x11, 0xb0, 0x1f, 0x6d, 0xa7, 0x13, 0x7c, 0xdf, 0x4f, 0x40, 0x37, - 0x9a, 0x8f, 0x41, 0x86, 0xbc, 0xd9, 0xe1, 0xea, 0x9d, 0x28, 0xf4, 0x7f, 0x72, 0xb4, 0xd0, 0x27, - 0x0e, 0xeb, 0xd9, 0x03, 0x03, 0xbf, 0x3a, 0x51, 0xd8, 0xff, 0xe2, 0x58, 0x0f, 0x40, 0xc0, 0x4d, - 0xdd, 0x71, 0x67, 0x79, 0xee, 0xff, 0x16, 0x60, 0x01, 0x20, 0x46, 0x93, 0xef, 0x2f, 0x18, 0x67, - 0x51, 0xd8, 0x77, 0x84, 0xd1, 0x5c, 0x1f, 0x13, 0x60, 0x8e, 0x7c, 0x65, 0xaf, 0x1e, 0x44, 0x80, - 0xff, 0x87, 0x83, 0x47, 0x88, 0x8d, 0xcb, 0xe1, 0x47, 0x3b, 0xb0, 0x6d, 0x6f, 0xdb, 0xec, 0x50, - 0x07, 0xbe, 0x72, 0x15, 0xae, 0xa0, 0x0e, 0xd6, 0xd7, 0x55, 0x69, 0x25, 0xaf, 0xe2, 0xba, 0x73, - 0xa8, 0xfe, 0x1a, 0x3f, 0x99, 0xc9, 0xf3, 0x2b, 0x32, 0xb0, 0x74, 0xbe, 0x53, 0x9d, 0xca, 0xdd, - 0x30, 0x77, 0xdd, 0xb4, 0x75, 0x17, 0x8b, 0xd9, 0xa1, 0xdd, 0xb5, 0x5c, 0xb5, 0x00, 0xb1, 0x36, - 0x3d, 0xf9, 0x8e, 0x69, 0xb1, 0x76, 0xe5, 0x5b, 0x2a, 0x64, 0xb0, 0x77, 0xc1, 0xb5, 0xea, 0xa8, - 0xcf, 0xc0, 0x3c, 0xeb, 0x18, 0x8e, 0xec, 0x2d, 0x7a, 0xca, 0x88, 0x52, 0x7e, 0x58, 0xf7, 0xe0, - 0x8a, 0x64, 0xc2, 0x0a, 0x07, 0xac, 0x8c, 0x69, 0xd3, 0x9f, 0x9e, 0xb4, 0x79, 0x27, 0x28, 0x57, - 0x9f, 0x02, 0x45, 0x28, 0x53, 0x6b, 0x08, 0x33, 0x3b, 0xa2, 0x5d, 0x9e, 0xca, 0x2c, 0x94, 0x19, - 0xb1, 0xe2, 0x04, 0xc4, 0xea, 0x13, 0x90, 0xdd, 0xb1, 0xdc, 0x8f, 0xae, 0x11, 0x3e, 0xf6, 0x4a, - 0x60, 0x25, 0x94, 0x4f, 0x28, 0x31, 0x9e, 0x6c, 0x97, 0x5f, 0x72, 0xfc, 0x23, 0x1f, 0x23, 0xf8, - 0xe4, 0x74, 0x3c, 0x55, 0x1a, 0xe1, 0xe9, 0x25, 0x79, 0xa5, 0xf0, 0x58, 0x90, 0xf1, 0x37, 0x01, - 0xaf, 0x84, 0x12, 0x78, 0x5a, 0x8c, 0x21, 0x37, 0xf4, 0x4c, 0xe0, 0x14, 0xcc, 0x86, 0x74, 0x04, - 0x85, 0x64, 0x04, 0xa5, 0xf0, 0xac, 0xa8, 0x7b, 0x56, 0x64, 0xa6, 0x50, 0xd4, 0x03, 0x56, 0x38, - 0xb2, 0x15, 0x75, 0xcf, 0x8a, 0x6c, 0x04, 0x85, 0x6c, 0x85, 0xe3, 0x59, 0xb1, 0x05, 0x70, 0xbd, - 0x7b, 0xcb, 0x68, 0x31, 0x33, 0x72, 0xfc, 0xb0, 0x3f, 0x8c, 0x63, 0xa4, 0xc6, 0x48, 0xa0, 0xed, - 0x09, 0xd4, 0x6d, 0xc8, 0xd7, 0x47, 0x97, 0xf4, 0x6d, 0x41, 0xf2, 0x22, 0x64, 0xa8, 0x29, 0xed, - 0x00, 0x4f, 0xde, 0x91, 0x88, 0x84, 0x39, 0xec, 0x91, 0xf2, 0x51, 0xe6, 0x48, 0xcf, 0xc4, 0xcc, - 0x61, 0x0f, 0xe5, 0x99, 0xc3, 0x68, 0x0a, 0x91, 0xe6, 0x48, 0x3c, 0xdc, 0x1c, 0x46, 0x84, 0x05, - 0x67, 0xc3, 0xb6, 0x89, 0x66, 0x79, 0x8e, 0x92, 0x5c, 0x0e, 0x25, 0xe1, 0x3a, 0x8c, 0x20, 0x73, - 0xc2, 0xae, 0xe8, 0xec, 0xd0, 0xd0, 0x27, 0xf0, 0xe2, 0xb4, 0xd9, 0x11, 0x5a, 0x62, 0x76, 0xc4, - 0xb5, 0xbc, 0x02, 0x37, 0xce, 0xb0, 0xc7, 0x23, 0x4c, 0xa5, 0x19, 0x56, 0xa0, 0x50, 0x0e, 0xac, - 0x40, 0x21, 0x56, 0xeb, 0x50, 0x12, 0xaa, 0x64, 0x37, 0x4e, 0x68, 0x15, 0xfe, 0x7a, 0xd7, 0x34, - 0x5a, 0xae, 0xcb, 0x58, 0x4b, 0x8e, 0x5f, 0xaa, 0x1e, 0x42, 0x51, 0x28, 0xee, 0x39, 0xf4, 0xa1, - 0xe7, 0xf9, 0x6f, 0x06, 0xd3, 0x38, 0x99, 0x2a, 0xa3, 0x2c, 0x3a, 0x3e, 0xe1, 0xd2, 0x16, 0x5c, - 0x08, 0xcf, 0x56, 0xe4, 0xd5, 0x50, 0xcc, 0xf6, 0xfc, 0x3d, 0x1e, 0xf2, 0x95, 0xbc, 0x42, 0x2a, - 0xde, 0x53, 0x23, 0x59, 0x92, 0x5d, 0x54, 0xe3, 0xd7, 0x62, 0x4b, 0x9b, 0x70, 0x7b, 0x68, 0x66, - 0x8a, 0x22, 0x89, 0xcb, 0x24, 0x8f, 0xc3, 0x9c, 0x2f, 0x1d, 0xc9, 0xe0, 0x54, 0x08, 0x38, 0x35, - 0x0e, 0x1e, 0x05, 0x99, 0x0c, 0x4e, 0x84, 0x80, 0x13, 0x32, 0xf8, 0xe3, 0x50, 0xf4, 0xe7, 0x21, - 0x19, 0x3d, 0x17, 0x82, 0x9e, 0x0b, 0x41, 0x87, 0xdf, 0x3b, 0x19, 0x82, 0x4e, 0x06, 0xd0, 0xf5, - 0x89, 0xf7, 0x9e, 0x0f, 0x41, 0xcf, 0x87, 0xa0, 0xc3, 0xef, 0xad, 0x86, 0xa0, 0x55, 0x19, 0xfd, - 0x09, 0x28, 0x05, 0x52, 0x8e, 0x0c, 0xcf, 0x84, 0xc0, 0x33, 0x32, 0xfc, 0x09, 0x5c, 0x3a, 0xed, - 0xc9, 0xf8, 0x52, 0x08, 0xbe, 0x14, 0x76, 0xfb, 0x70, 0xeb, 0xd3, 0x21, 0xf0, 0x74, 0xe8, 0xed, - 0xc3, 0xf1, 0x4a, 0x08, 0x5e, 0x91, 0xf1, 0x55, 0x28, 0xc8, 0x59, 0x45, 0xc6, 0x66, 0x43, 0xb0, - 0xd9, 0xa0, 0xdf, 0x7d, 0x29, 0x25, 0x2a, 0xd2, 0x73, 0x13, 0x96, 0x8b, 0x2f, 0x8d, 0x44, 0x91, - 0x14, 0x64, 0x92, 0x9b, 0xb0, 0x18, 0x96, 0x34, 0x42, 0x38, 0x96, 0x65, 0x8e, 0xe2, 0xda, 0xa2, - 0x2f, 0x59, 0x50, 0xdc, 0xb0, 0x27, 0x33, 0x3f, 0x07, 0x0b, 0x21, 0xa9, 0x23, 0x84, 0xf8, 0x21, - 0x99, 0x38, 0xbf, 0xb6, 0xe4, 0x23, 0xf6, 0x75, 0x57, 0x12, 0x7d, 0xe5, 0xdb, 0x0b, 0x50, 0xe4, - 0x29, 0xea, 0x60, 0xd0, 0x32, 0x06, 0xd8, 0xf2, 0xff, 0xcc, 0xe4, 0x0e, 0x6b, 0x2d, 0x2c, 0xb5, - 0x71, 0xdc, 0x39, 0x1a, 0xad, 0xe7, 0x26, 0x36, 0x5a, 0x1f, 0x99, 0xe5, 0x06, 0x51, 0xfd, 0x56, - 0x6d, 0xac, 0xdf, 0x7a, 0x60, 0x1a, 0xed, 0xa4, 0xb6, 0xab, 0x36, 0xd6, 0x76, 0x45, 0xd1, 0x84, - 0x76, 0x5f, 0x37, 0xc6, 0xbb, 0xaf, 0xe5, 0x69, 0x3c, 0x93, 0x9b, 0xb0, 0x1b, 0xe3, 0x4d, 0x58, - 0x24, 0x53, 0x78, 0x2f, 0x76, 0x63, 0xbc, 0x17, 0x9b, 0xca, 0x34, 0xb9, 0x25, 0xbb, 0x31, 0xde, - 0x92, 0x45, 0x32, 0x85, 0x77, 0x66, 0x9f, 0x0a, 0xe9, 0xcc, 0x1e, 0x9c, 0x46, 0x35, 0xad, 0x41, - 0xdb, 0x0f, 0x6b, 0xd0, 0x3e, 0x34, 0xd5, 0xb0, 0xa9, 0x7d, 0xda, 0xa7, 0x42, 0xfa, 0xb4, 0x68, - 0xe3, 0x26, 0xb4, 0x6b, 0xfb, 0x61, 0xed, 0xda, 0x0c, 0xc6, 0x4d, 0xea, 0xda, 0x36, 0x82, 0x5d, - 0xdb, 0xd5, 0x69, 0x5c, 0xe1, 0xcd, 0xdb, 0x8d, 0xf1, 0xe6, 0x6d, 0x39, 0x7a, 0x2d, 0x86, 0xf5, - 0x70, 0xcf, 0x4d, 0xec, 0xe1, 0x66, 0x5a, 0xdc, 0x51, 0xad, 0xdc, 0xb3, 0x93, 0x5a, 0xb9, 0x87, - 0x66, 0x61, 0x9f, 0xde, 0xd1, 0x3d, 0x3d, 0xa1, 0xa3, 0x5b, 0x9d, 0x85, 0xfa, 0xfd, 0xc6, 0xee, - 0xfd, 0xc6, 0xee, 0xfd, 0xc6, 0xee, 0xfd, 0xc6, 0xee, 0x27, 0xa3, 0xb1, 0xab, 0x26, 0x5f, 0x7d, - 0xe3, 0x52, 0x6c, 0xf9, 0x32, 0x64, 0xf8, 0xad, 0xd5, 0x34, 0xc4, 0xf7, 0xd6, 0x95, 0xdb, 0xe8, - 0xff, 0x0d, 0x25, 0x46, 0xff, 0x6f, 0x2a, 0xf1, 0x8d, 0xdd, 0x6f, 0x7e, 0xf7, 0xe2, 0x6d, 0xff, - 0x88, 0x9f, 0x6f, 0xe1, 0xe7, 0x3b, 0xdf, 0xbd, 0x18, 0x7b, 0x1b, 0x3f, 0xef, 0xe0, 0xe7, 0x07, - 0xf8, 0x79, 0xf9, 0x7b, 0x17, 0x63, 0x5f, 0xc2, 0xcf, 0x57, 0xf1, 0xf3, 0xd7, 0xf8, 0xf9, 0x3a, - 0x7e, 0xbe, 0xf9, 0x3d, 0xd4, 0xc7, 0xff, 0xdf, 0xc1, 0xcf, 0xdb, 0xf8, 0xfd, 0x1d, 0xfc, 0xff, - 0x03, 0xfc, 0xff, 0xf2, 0xbf, 0x5c, 0xbc, 0xed, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x22, 0x46, - 0x25, 0x7d, 0x98, 0x3e, 0x00, 0x00, + // 4578 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, + 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, + 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, + 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, + 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, + 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0xa6, 0xf0, + 0x97, 0xe2, 0xbe, 0x86, 0x33, 0xc3, 0x21, 0x87, 0x32, 0xe0, 0xa4, 0x1f, 0xfc, 0x49, 0x9a, 0x73, + 0xcf, 0xef, 0x77, 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0x5c, 0x0e, 0xfc, 0xe8, 0x1c, 0x9c, 0x6a, + 0x58, 0x56, 0xa3, 0x89, 0x17, 0xdb, 0xb6, 0xe5, 0x5a, 0xfb, 0x9d, 0xfa, 0x62, 0x0d, 0x3b, 0xba, + 0x6d, 0xb4, 0x5d, 0xcb, 0x5e, 0xa0, 0x32, 0x34, 0xc1, 0x34, 0x16, 0x84, 0xc6, 0xdc, 0x26, 0x4c, + 0x5e, 0x32, 0x9a, 0x78, 0xd5, 0x53, 0xac, 0x62, 0x17, 0x5d, 0x80, 0x54, 0xdd, 0x68, 0xe2, 0xa2, + 0x74, 0x2a, 0x39, 0x9f, 0x5b, 0xba, 0x63, 0x21, 0x04, 0x5a, 0x08, 0x22, 0x76, 0x88, 0x58, 0xa1, + 0x88, 0xb9, 0x77, 0x53, 0x30, 0x15, 0x31, 0x8a, 0x10, 0xa4, 0x4c, 0xad, 0x45, 0x18, 0xa5, 0xf9, + 0xac, 0x42, 0xff, 0x47, 0x45, 0x18, 0x6b, 0x6b, 0xfa, 0x55, 0xad, 0x81, 0x8b, 0x09, 0x2a, 0x16, + 0x8f, 0x68, 0x16, 0xa0, 0x86, 0xdb, 0xd8, 0xac, 0x61, 0x53, 0x3f, 0x2c, 0x26, 0x4f, 0x25, 0xe7, + 0xb3, 0x8a, 0x4f, 0x82, 0xee, 0x85, 0xc9, 0x76, 0x67, 0xbf, 0x69, 0xe8, 0xaa, 0x4f, 0x0d, 0x4e, + 0x25, 0xe7, 0xd3, 0x8a, 0xcc, 0x06, 0x56, 0xbb, 0xca, 0x77, 0xc3, 0xc4, 0x8b, 0x58, 0xbb, 0xea, + 0x57, 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, + 0xea, 0x1e, 0xb6, 0x71, 0x31, 0x45, 0x57, 0x7f, 0xaa, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x38, 0x6a, + 0xf7, 0xb0, 0x8d, 0x51, 0x19, 0xb2, 0xd8, 0xec, 0xb4, 0x18, 0x43, 0xba, 0x8f, 0xff, 0x2a, 0x66, + 0xa7, 0x15, 0x66, 0xc9, 0x10, 0x18, 0xa7, 0x18, 0x73, 0xb0, 0x7d, 0xcd, 0xd0, 0x71, 0x71, 0x94, + 0x12, 0xdc, 0xdd, 0x43, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc5, 0x2f, 0xb9, + 0xd8, 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x51, 0x92, 0x3b, 0x23, 0x76, 0x11, 0x37, 0x6b, 0x61, 0x8a, + 0x2e, 0x0e, 0x9d, 0x87, 0x31, 0xab, 0xed, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0xa7, 0xa4, 0xf9, 0xdc, + 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xe9, 0x28, 0x42, 0x19, 0xad, 0x83, 0xec, 0x58, 0x1d, 0x5b, + 0xc7, 0xaa, 0x6e, 0xd5, 0xb0, 0x6a, 0x98, 0x75, 0xab, 0x98, 0xa5, 0x04, 0x27, 0x7b, 0x17, 0x42, + 0x15, 0x57, 0xac, 0x1a, 0x5e, 0x37, 0xeb, 0x96, 0x52, 0x70, 0x02, 0xcf, 0xe8, 0x04, 0x8c, 0x3a, + 0x87, 0xa6, 0xab, 0xbd, 0x54, 0xcc, 0xd3, 0x08, 0xe1, 0x4f, 0x73, 0xff, 0x9d, 0x86, 0x89, 0x61, + 0x42, 0xec, 0x22, 0xa4, 0xeb, 0x64, 0x95, 0xc5, 0xc4, 0x71, 0x7c, 0xc0, 0x30, 0x41, 0x27, 0x8e, + 0x7e, 0x4c, 0x27, 0x96, 0x21, 0x67, 0x62, 0xc7, 0xc5, 0x35, 0x16, 0x11, 0xc9, 0x21, 0x63, 0x0a, + 0x18, 0xa8, 0x37, 0xa4, 0x52, 0x1f, 0x2b, 0xa4, 0xae, 0xc0, 0x84, 0x67, 0x92, 0x6a, 0x6b, 0x66, + 0x43, 0xc4, 0xe6, 0x62, 0x9c, 0x25, 0x0b, 0x15, 0x81, 0x53, 0x08, 0x4c, 0x29, 0xe0, 0xc0, 0x33, + 0x5a, 0x05, 0xb0, 0x4c, 0x6c, 0xd5, 0xd5, 0x1a, 0xd6, 0x9b, 0xc5, 0x4c, 0x1f, 0x2f, 0x6d, 0x13, + 0x95, 0x1e, 0x2f, 0x59, 0x4c, 0xaa, 0x37, 0xd1, 0x23, 0xdd, 0x50, 0x1b, 0xeb, 0x13, 0x29, 0x9b, + 0xec, 0x90, 0xf5, 0x44, 0xdb, 0x1e, 0x14, 0x6c, 0x4c, 0xe2, 0x1e, 0xd7, 0xf8, 0xca, 0xb2, 0xd4, + 0x88, 0x85, 0xd8, 0x95, 0x29, 0x1c, 0xc6, 0x16, 0x36, 0x6e, 0xfb, 0x1f, 0xd1, 0xed, 0xe0, 0x09, + 0x54, 0x1a, 0x56, 0x40, 0xb3, 0x50, 0x5e, 0x08, 0xb7, 0xb4, 0x16, 0x9e, 0xb9, 0x00, 0x85, 0xa0, + 0x7b, 0xd0, 0x34, 0xa4, 0x1d, 0x57, 0xb3, 0x5d, 0x1a, 0x85, 0x69, 0x85, 0x3d, 0x20, 0x19, 0x92, + 0xd8, 0xac, 0xd1, 0x2c, 0x97, 0x56, 0xc8, 0xbf, 0x33, 0x0f, 0xc3, 0x78, 0x60, 0xfa, 0x61, 0x81, + 0x73, 0xaf, 0x8e, 0xc2, 0x74, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x09, 0x18, 0x35, 0x3b, 0xad, 0x7d, + 0x6c, 0x17, 0x93, 0x94, 0x81, 0x3f, 0xa1, 0x32, 0xa4, 0x9b, 0xda, 0x3e, 0x6e, 0x16, 0x53, 0xa7, + 0xa4, 0xf9, 0xc2, 0xd2, 0xbd, 0x43, 0x45, 0xf5, 0xc2, 0x06, 0x81, 0x28, 0x0c, 0x89, 0x1e, 0x83, + 0x14, 0x4f, 0x71, 0x84, 0xe1, 0xcc, 0x70, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0xb7, 0x42, 0x96, + 0xfc, 0x65, 0xbe, 0x1d, 0xa5, 0x36, 0x67, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x40, 0x86, 0x86, 0x59, + 0x0d, 0x8b, 0xd2, 0xe0, 0x3d, 0x93, 0x8d, 0xa9, 0xe1, 0xba, 0xd6, 0x69, 0xba, 0xea, 0x35, 0xad, + 0xd9, 0xc1, 0x34, 0x60, 0xb2, 0x4a, 0x9e, 0x0b, 0x9f, 0x22, 0x32, 0x74, 0x12, 0x72, 0x2c, 0x2a, + 0x0d, 0xb3, 0x86, 0x5f, 0xa2, 0xd9, 0x27, 0xad, 0xb0, 0x40, 0x5d, 0x27, 0x12, 0x32, 0xfd, 0xf3, + 0x8e, 0x65, 0x8a, 0xad, 0xa5, 0x53, 0x10, 0x01, 0x9d, 0xfe, 0xe1, 0x70, 0xe2, 0xbb, 0x2d, 0x7a, + 0x79, 0xe1, 0x58, 0x9c, 0xfb, 0x66, 0x02, 0x52, 0xf4, 0xbc, 0x4d, 0x40, 0x6e, 0xf7, 0x99, 0x9d, + 0x8a, 0xba, 0xba, 0xbd, 0xb7, 0xbc, 0x51, 0x91, 0x25, 0x54, 0x00, 0xa0, 0x82, 0x4b, 0x1b, 0xdb, + 0xe5, 0x5d, 0x39, 0xe1, 0x3d, 0xaf, 0x6f, 0xed, 0x9e, 0x3f, 0x2b, 0x27, 0x3d, 0xc0, 0x1e, 0x13, + 0xa4, 0xfc, 0x0a, 0x0f, 0x2d, 0xc9, 0x69, 0x24, 0x43, 0x9e, 0x11, 0xac, 0x5f, 0xa9, 0xac, 0x9e, + 0x3f, 0x2b, 0x8f, 0x06, 0x25, 0x0f, 0x2d, 0xc9, 0x63, 0x68, 0x1c, 0xb2, 0x54, 0xb2, 0xbc, 0xbd, + 0xbd, 0x21, 0x67, 0x3c, 0xce, 0xea, 0xae, 0xb2, 0xbe, 0xb5, 0x26, 0x67, 0x3d, 0xce, 0x35, 0x65, + 0x7b, 0x6f, 0x47, 0x06, 0x8f, 0x61, 0xb3, 0x52, 0xad, 0x96, 0xd7, 0x2a, 0x72, 0xce, 0xd3, 0x58, + 0x7e, 0x66, 0xb7, 0x52, 0x95, 0xf3, 0x01, 0xb3, 0x1e, 0x5a, 0x92, 0xc7, 0xbd, 0x29, 0x2a, 0x5b, + 0x7b, 0x9b, 0x72, 0x01, 0x4d, 0xc2, 0x38, 0x9b, 0x42, 0x18, 0x31, 0x11, 0x12, 0x9d, 0x3f, 0x2b, + 0xcb, 0x5d, 0x43, 0x18, 0xcb, 0x64, 0x40, 0x70, 0xfe, 0xac, 0x8c, 0xe6, 0x56, 0x20, 0x4d, 0xa3, + 0x0b, 0x21, 0x28, 0x6c, 0x94, 0x97, 0x2b, 0x1b, 0xea, 0xf6, 0xce, 0xee, 0xfa, 0xf6, 0x56, 0x79, + 0x43, 0x96, 0xba, 0x32, 0xa5, 0xf2, 0xb9, 0xbd, 0x75, 0xa5, 0xb2, 0x2a, 0x27, 0xfc, 0xb2, 0x9d, + 0x4a, 0x79, 0xb7, 0xb2, 0x2a, 0x27, 0xe7, 0x74, 0x98, 0x8e, 0xca, 0x33, 0x91, 0x27, 0xc3, 0xb7, + 0xc5, 0x89, 0x3e, 0x5b, 0x4c, 0xb9, 0x7a, 0xb6, 0xf8, 0xcb, 0x12, 0x4c, 0x45, 0xe4, 0xda, 0xc8, + 0x49, 0x1e, 0x87, 0x34, 0x0b, 0x51, 0x56, 0x7d, 0xee, 0x89, 0x4c, 0xda, 0x34, 0x60, 0x7b, 0x2a, + 0x10, 0xc5, 0xf9, 0x2b, 0x70, 0xb2, 0x4f, 0x05, 0x26, 0x14, 0x3d, 0x46, 0xbe, 0x22, 0x41, 0xb1, + 0x1f, 0x77, 0x4c, 0xa2, 0x48, 0x04, 0x12, 0xc5, 0xc5, 0xb0, 0x01, 0xa7, 0xfb, 0xaf, 0xa1, 0xc7, + 0x8a, 0x37, 0x25, 0x38, 0x11, 0xdd, 0xa8, 0x44, 0xda, 0xf0, 0x18, 0x8c, 0xb6, 0xb0, 0x7b, 0x60, + 0x89, 0x62, 0x7d, 0x57, 0x44, 0x09, 0x20, 0xc3, 0x61, 0x5f, 0x71, 0x94, 0xbf, 0x86, 0x24, 0xfb, + 0x75, 0x1b, 0xcc, 0x9a, 0x1e, 0x4b, 0x3f, 0x9f, 0x80, 0x9b, 0x22, 0xc9, 0x23, 0x0d, 0xbd, 0x0d, + 0xc0, 0x30, 0xdb, 0x1d, 0x97, 0x15, 0x64, 0x96, 0x9f, 0xb2, 0x54, 0x42, 0xcf, 0x3e, 0xc9, 0x3d, + 0x1d, 0xd7, 0x1b, 0x4f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8a, 0x1a, 0x3a, + 0xdb, 0x67, 0xa5, 0x3d, 0xb5, 0xee, 0x01, 0x90, 0xf5, 0xa6, 0x81, 0x4d, 0x57, 0x75, 0x5c, 0x1b, + 0x6b, 0x2d, 0xc3, 0x6c, 0xd0, 0x04, 0x9c, 0x29, 0xa5, 0xeb, 0x5a, 0xd3, 0xc1, 0xca, 0x04, 0x1b, + 0xae, 0x8a, 0x51, 0x82, 0xa0, 0x55, 0xc6, 0xf6, 0x21, 0x46, 0x03, 0x08, 0x36, 0xec, 0x21, 0xe6, + 0xbe, 0x36, 0x06, 0x39, 0x5f, 0x5b, 0x87, 0x4e, 0x43, 0xfe, 0x79, 0xed, 0x9a, 0xa6, 0x8a, 0x56, + 0x9d, 0x79, 0x22, 0x47, 0x64, 0x3b, 0xbc, 0x5d, 0x7f, 0x00, 0xa6, 0xa9, 0x8a, 0xd5, 0x71, 0xb1, + 0xad, 0xea, 0x4d, 0xcd, 0x71, 0xa8, 0xd3, 0x32, 0x54, 0x15, 0x91, 0xb1, 0x6d, 0x32, 0xb4, 0x22, + 0x46, 0xd0, 0x39, 0x98, 0xa2, 0x88, 0x56, 0xa7, 0xe9, 0x1a, 0xed, 0x26, 0x56, 0xc9, 0xcb, 0x83, + 0x43, 0x13, 0xb1, 0x67, 0xd9, 0x24, 0xd1, 0xd8, 0xe4, 0x0a, 0xc4, 0x22, 0x07, 0xad, 0xc2, 0x6d, + 0x14, 0xd6, 0xc0, 0x26, 0xb6, 0x35, 0x17, 0xab, 0xf8, 0x85, 0x8e, 0xd6, 0x74, 0x54, 0xcd, 0xac, + 0xa9, 0x07, 0x9a, 0x73, 0x50, 0x9c, 0x26, 0x04, 0xcb, 0x89, 0xa2, 0xa4, 0xdc, 0x42, 0x14, 0xd7, + 0xb8, 0x5e, 0x85, 0xaa, 0x95, 0xcd, 0xda, 0x65, 0xcd, 0x39, 0x40, 0x25, 0x38, 0x41, 0x59, 0x1c, + 0xd7, 0x36, 0xcc, 0x86, 0xaa, 0x1f, 0x60, 0xfd, 0xaa, 0xda, 0x71, 0xeb, 0x17, 0x8a, 0xb7, 0xfa, + 0xe7, 0xa7, 0x16, 0x56, 0xa9, 0xce, 0x0a, 0x51, 0xd9, 0x73, 0xeb, 0x17, 0x50, 0x15, 0xf2, 0x64, + 0x33, 0x5a, 0xc6, 0xcb, 0x58, 0xad, 0x5b, 0x36, 0xad, 0x2c, 0x85, 0x88, 0x93, 0xed, 0xf3, 0xe0, + 0xc2, 0x36, 0x07, 0x6c, 0x5a, 0x35, 0x5c, 0x4a, 0x57, 0x77, 0x2a, 0x95, 0x55, 0x25, 0x27, 0x58, + 0x2e, 0x59, 0x36, 0x09, 0xa8, 0x86, 0xe5, 0x39, 0x38, 0xc7, 0x02, 0xaa, 0x61, 0x09, 0xf7, 0x9e, + 0x83, 0x29, 0x5d, 0x67, 0x6b, 0x36, 0x74, 0x95, 0xb7, 0xf8, 0x4e, 0x51, 0x0e, 0x38, 0x4b, 0xd7, + 0xd7, 0x98, 0x02, 0x8f, 0x71, 0x07, 0x3d, 0x02, 0x37, 0x75, 0x9d, 0xe5, 0x07, 0x4e, 0xf6, 0xac, + 0x32, 0x0c, 0x3d, 0x07, 0x53, 0xed, 0xc3, 0x5e, 0x20, 0x0a, 0xcc, 0xd8, 0x3e, 0x0c, 0xc3, 0xee, + 0xa4, 0xaf, 0x6d, 0x36, 0xd6, 0x35, 0x17, 0xd7, 0x8a, 0x37, 0xfb, 0xb5, 0x7d, 0x03, 0x68, 0x11, + 0x64, 0x5d, 0x57, 0xb1, 0xa9, 0xed, 0x37, 0xb1, 0xaa, 0xd9, 0xd8, 0xd4, 0x9c, 0xe2, 0x49, 0xbf, + 0x72, 0x41, 0xd7, 0x2b, 0x74, 0xb4, 0x4c, 0x07, 0xd1, 0x19, 0x98, 0xb4, 0xf6, 0x9f, 0xd7, 0x59, + 0x64, 0xa9, 0x6d, 0x1b, 0xd7, 0x8d, 0x97, 0x8a, 0x77, 0x50, 0x37, 0x4d, 0x90, 0x01, 0x1a, 0x57, + 0x3b, 0x54, 0x8c, 0xee, 0x01, 0x59, 0x77, 0x0e, 0x34, 0xbb, 0x4d, 0x4b, 0xbb, 0xd3, 0xd6, 0x74, + 0x5c, 0xbc, 0x93, 0xa9, 0x32, 0xf9, 0x96, 0x10, 0x93, 0xc8, 0x76, 0x5e, 0x34, 0xea, 0xae, 0x60, + 0xbc, 0x9b, 0x45, 0x36, 0x95, 0x71, 0xb6, 0x2b, 0x30, 0xdd, 0x31, 0x0d, 0xd3, 0xc5, 0x76, 0xdb, + 0xc6, 0xa4, 0x89, 0x67, 0x27, 0xb1, 0xf8, 0x4f, 0x63, 0x7d, 0xda, 0xf0, 0x3d, 0xbf, 0x36, 0x0b, + 0x00, 0x65, 0xaa, 0xd3, 0x2b, 0x9c, 0x2b, 0x41, 0xde, 0x1f, 0x17, 0x28, 0x0b, 0x2c, 0x32, 0x64, + 0x89, 0xd4, 0xd8, 0x95, 0xed, 0x55, 0x52, 0x1d, 0x9f, 0xad, 0xc8, 0x09, 0x52, 0xa5, 0x37, 0xd6, + 0x77, 0x2b, 0xaa, 0xb2, 0xb7, 0xb5, 0xbb, 0xbe, 0x59, 0x91, 0x93, 0x67, 0xb2, 0x99, 0xf7, 0xc6, + 0xe4, 0xeb, 0xd7, 0xaf, 0x5f, 0x4f, 0xcc, 0x7d, 0x27, 0x01, 0x85, 0x60, 0x67, 0x8c, 0x3e, 0x0b, + 0x37, 0x8b, 0xd7, 0x58, 0x07, 0xbb, 0xea, 0x8b, 0x86, 0x4d, 0x43, 0xb5, 0xa5, 0xb1, 0xde, 0xd2, + 0xf3, 0xf2, 0x34, 0xd7, 0xaa, 0x62, 0xf7, 0x69, 0xc3, 0x26, 0x81, 0xd8, 0xd2, 0x5c, 0xb4, 0x01, + 0x27, 0x4d, 0x4b, 0x75, 0x5c, 0xcd, 0xac, 0x69, 0x76, 0x4d, 0xed, 0x5e, 0x20, 0xa8, 0x9a, 0xae, + 0x63, 0xc7, 0xb1, 0x58, 0x89, 0xf0, 0x58, 0x3e, 0x63, 0x5a, 0x55, 0xae, 0xdc, 0xcd, 0x9d, 0x65, + 0xae, 0x1a, 0x8a, 0x88, 0x64, 0xbf, 0x88, 0xb8, 0x15, 0xb2, 0x2d, 0xad, 0xad, 0x62, 0xd3, 0xb5, + 0x0f, 0x69, 0x3f, 0x97, 0x51, 0x32, 0x2d, 0xad, 0x5d, 0x21, 0xcf, 0x9f, 0xdc, 0x1e, 0xf8, 0xfd, + 0xf8, 0xc3, 0x24, 0xe4, 0xfd, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0x7a, 0xc2, 0x6f, + 0x1f, 0xd8, 0x01, 0x2e, 0xac, 0x90, 0xc4, 0x5e, 0x1a, 0x65, 0x9d, 0x96, 0xc2, 0x90, 0xa4, 0xa8, + 0x92, 0x33, 0x8d, 0x59, 0xff, 0x9e, 0x51, 0xf8, 0x13, 0x5a, 0x83, 0xd1, 0xe7, 0x1d, 0xca, 0x3d, + 0x4a, 0xb9, 0xef, 0x18, 0xcc, 0xfd, 0x44, 0x95, 0x92, 0x67, 0x9f, 0xa8, 0xaa, 0x5b, 0xdb, 0xca, + 0x66, 0x79, 0x43, 0xe1, 0x70, 0x74, 0x0b, 0xa4, 0x9a, 0xda, 0xcb, 0x87, 0xc1, 0x12, 0x40, 0x45, + 0xc3, 0x3a, 0xfe, 0x16, 0x48, 0xbd, 0x88, 0xb5, 0xab, 0xc1, 0xc4, 0x4b, 0x45, 0x9f, 0x60, 0xe8, + 0x2f, 0x42, 0x9a, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x23, 0x28, 0x03, 0xa9, 0x95, 0x6d, 0x85, + 0x84, 0xbf, 0x0c, 0x79, 0x26, 0x55, 0x77, 0xd6, 0x2b, 0x2b, 0x15, 0x39, 0x31, 0x77, 0x0e, 0x46, + 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdc, 0x20, 0x8f, 0xf0, 0x47, 0xce, 0x21, 0x89, 0xd1, 0xbd, 0xcd, + 0xe5, 0x8a, 0x22, 0x27, 0xfc, 0xdb, 0xeb, 0x40, 0xde, 0xdf, 0xce, 0xfd, 0x74, 0x62, 0xea, 0x6f, + 0x25, 0xc8, 0xf9, 0xda, 0x33, 0xd2, 0x18, 0x68, 0xcd, 0xa6, 0xf5, 0xa2, 0xaa, 0x35, 0x0d, 0xcd, + 0xe1, 0x41, 0x01, 0x54, 0x54, 0x26, 0x92, 0x61, 0x37, 0xed, 0xa7, 0x62, 0xfc, 0x1b, 0x12, 0xc8, + 0xe1, 0xd6, 0x2e, 0x64, 0xa0, 0xf4, 0x33, 0x35, 0xf0, 0x75, 0x09, 0x0a, 0xc1, 0x7e, 0x2e, 0x64, + 0xde, 0xe9, 0x9f, 0xa9, 0x79, 0xef, 0x24, 0x60, 0x3c, 0xd0, 0xc5, 0x0d, 0x6b, 0xdd, 0x0b, 0x30, + 0x69, 0xd4, 0x70, 0xab, 0x6d, 0xb9, 0xd8, 0xd4, 0x0f, 0xd5, 0x26, 0xbe, 0x86, 0x9b, 0xc5, 0x39, + 0x9a, 0x28, 0x16, 0x07, 0xf7, 0x89, 0x0b, 0xeb, 0x5d, 0xdc, 0x06, 0x81, 0x95, 0xa6, 0xd6, 0x57, + 0x2b, 0x9b, 0x3b, 0xdb, 0xbb, 0x95, 0xad, 0x95, 0x67, 0xd4, 0xbd, 0xad, 0x27, 0xb7, 0xb6, 0x9f, + 0xde, 0x52, 0x64, 0x23, 0xa4, 0xf6, 0x09, 0x1e, 0xf5, 0x1d, 0x90, 0xc3, 0x46, 0xa1, 0x9b, 0x21, + 0xca, 0x2c, 0x79, 0x04, 0x4d, 0xc1, 0xc4, 0xd6, 0xb6, 0x5a, 0x5d, 0x5f, 0xad, 0xa8, 0x95, 0x4b, + 0x97, 0x2a, 0x2b, 0xbb, 0x55, 0xf6, 0xe2, 0xec, 0x69, 0xef, 0x06, 0x0f, 0xf5, 0x6b, 0x49, 0x98, + 0x8a, 0xb0, 0x04, 0x95, 0x79, 0xcf, 0xce, 0x5e, 0x23, 0xee, 0x1f, 0xc6, 0xfa, 0x05, 0xd2, 0x15, + 0xec, 0x68, 0xb6, 0xcb, 0x5b, 0xfc, 0x7b, 0x80, 0x78, 0xc9, 0x74, 0x8d, 0xba, 0x81, 0x6d, 0x7e, + 0xcf, 0xc0, 0x1a, 0xf9, 0x89, 0xae, 0x9c, 0x5d, 0x35, 0xdc, 0x07, 0xa8, 0x6d, 0x39, 0x86, 0x6b, + 0x5c, 0xc3, 0xaa, 0x61, 0x8a, 0x4b, 0x09, 0xd2, 0xd8, 0xa7, 0x14, 0x59, 0x8c, 0xac, 0x9b, 0xae, + 0xa7, 0x6d, 0xe2, 0x86, 0x16, 0xd2, 0x26, 0x09, 0x3c, 0xa9, 0xc8, 0x62, 0xc4, 0xd3, 0x3e, 0x0d, + 0xf9, 0x9a, 0xd5, 0x21, 0x6d, 0x12, 0xd3, 0x23, 0xf5, 0x42, 0x52, 0x72, 0x4c, 0xe6, 0xa9, 0xf0, + 0x3e, 0xb6, 0x7b, 0x1b, 0x92, 0x57, 0x72, 0x4c, 0xc6, 0x54, 0xee, 0x86, 0x09, 0xad, 0xd1, 0xb0, + 0x09, 0xb9, 0x20, 0x62, 0x9d, 0x79, 0xc1, 0x13, 0x53, 0xc5, 0x99, 0x27, 0x20, 0x23, 0xfc, 0x40, + 0x4a, 0x32, 0xf1, 0x84, 0xda, 0x66, 0x77, 0x52, 0x89, 0xf9, 0xac, 0x92, 0x31, 0xc5, 0xe0, 0x69, + 0xc8, 0x1b, 0x8e, 0xda, 0xbd, 0x1c, 0x4d, 0x9c, 0x4a, 0xcc, 0x67, 0x94, 0x9c, 0xe1, 0x78, 0xb7, + 0x61, 0x73, 0x6f, 0x26, 0xa0, 0x10, 0xbc, 0xdc, 0x45, 0xab, 0x90, 0x69, 0x5a, 0xba, 0x46, 0x43, + 0x8b, 0xfd, 0xb2, 0x30, 0x1f, 0x73, 0x1f, 0xbc, 0xb0, 0xc1, 0xf5, 0x15, 0x0f, 0x39, 0xf3, 0x8f, + 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x54, 0x5b, 0x73, 0x0f, 0x28, 0x5d, 0x7a, 0x39, 0x21, 0x4b, + 0x0a, 0x7d, 0x26, 0x72, 0xa7, 0xad, 0x99, 0x34, 0x04, 0xb8, 0x9c, 0x3c, 0x93, 0x7d, 0x6d, 0x62, + 0xad, 0x46, 0xdb, 0x7e, 0xab, 0xd5, 0xc2, 0xa6, 0xeb, 0x88, 0x7d, 0xe5, 0xf2, 0x15, 0x2e, 0x46, + 0xf7, 0xc2, 0xa4, 0x6b, 0x6b, 0x46, 0x33, 0xa0, 0x9b, 0xa2, 0xba, 0xb2, 0x18, 0xf0, 0x94, 0x4b, + 0x70, 0x8b, 0xe0, 0xad, 0x61, 0x57, 0xd3, 0x0f, 0x70, 0xad, 0x0b, 0x1a, 0xa5, 0x37, 0x87, 0x37, + 0x73, 0x85, 0x55, 0x3e, 0x2e, 0xb0, 0x73, 0xdf, 0x93, 0x60, 0x52, 0xbc, 0xa8, 0xd4, 0x3c, 0x67, + 0x6d, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x7e, 0x77, 0xf5, 0x86, 0x72, 0x0f, 0x6e, 0xa1, 0xec, 0x81, + 0x14, 0x1f, 0xc1, 0x4c, 0x0b, 0xa0, 0x3b, 0xd2, 0xd7, 0x6d, 0x27, 0x21, 0xc7, 0x6f, 0xee, 0xe9, + 0xcf, 0x3f, 0xec, 0xd5, 0x16, 0x98, 0x88, 0xbc, 0xd1, 0xa0, 0x69, 0x48, 0xef, 0xe3, 0x86, 0x61, + 0xf2, 0xfb, 0x44, 0xf6, 0x20, 0x6e, 0x29, 0x53, 0xde, 0x2d, 0xe5, 0xf2, 0x15, 0x98, 0xd2, 0xad, + 0x56, 0xd8, 0xdc, 0x65, 0x39, 0xf4, 0x7a, 0xed, 0x5c, 0x96, 0x9e, 0x85, 0x6e, 0x8b, 0xf9, 0xe5, + 0x44, 0x72, 0x6d, 0x67, 0xf9, 0xab, 0x89, 0x99, 0x35, 0x86, 0xdb, 0x11, 0xcb, 0x54, 0x70, 0xbd, + 0x89, 0x75, 0x62, 0x3a, 0xfc, 0xf8, 0x2e, 0xb8, 0xbf, 0x61, 0xb8, 0x07, 0x9d, 0xfd, 0x05, 0xdd, + 0x6a, 0x2d, 0x36, 0xac, 0x86, 0xd5, 0xfd, 0xb9, 0x8b, 0x3c, 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xc9, + 0x2b, 0xeb, 0x49, 0x67, 0x62, 0x7f, 0x1f, 0x2b, 0x6d, 0xc1, 0x14, 0x57, 0x56, 0xe9, 0x9d, 0x3b, + 0x7b, 0x35, 0x40, 0x03, 0xef, 0x5d, 0x8a, 0xdf, 0x78, 0x97, 0xd6, 0x6a, 0x65, 0x92, 0x43, 0xc9, + 0x18, 0x7b, 0x81, 0x28, 0x29, 0x70, 0x53, 0x80, 0x8f, 0x9d, 0x4b, 0x6c, 0xc7, 0x30, 0x7e, 0x87, + 0x33, 0x4e, 0xf9, 0x18, 0xab, 0x1c, 0x5a, 0x5a, 0x81, 0xf1, 0xe3, 0x70, 0xfd, 0x1d, 0xe7, 0xca, + 0x63, 0x3f, 0xc9, 0x1a, 0x4c, 0x50, 0x12, 0xbd, 0xe3, 0xb8, 0x56, 0x8b, 0x26, 0xbd, 0xc1, 0x34, + 0x7f, 0xff, 0x2e, 0x3b, 0x28, 0x05, 0x02, 0x5b, 0xf1, 0x50, 0xa5, 0x12, 0xd0, 0x9f, 0x19, 0x6a, + 0x58, 0x6f, 0xc6, 0x30, 0xbc, 0xc5, 0x0d, 0xf1, 0xf4, 0x4b, 0x4f, 0xc1, 0x34, 0xf9, 0x9f, 0xe6, + 0x24, 0xbf, 0x25, 0xf1, 0xb7, 0x4c, 0xc5, 0xef, 0xbd, 0xc2, 0xce, 0xe2, 0x94, 0x47, 0xe0, 0xb3, + 0xc9, 0xb7, 0x8b, 0x0d, 0xec, 0xba, 0xd8, 0x76, 0x54, 0xad, 0x19, 0x65, 0x9e, 0xef, 0x35, 0xbd, + 0xf8, 0x85, 0xf7, 0x83, 0xbb, 0xb8, 0xc6, 0x90, 0xe5, 0x66, 0xb3, 0xb4, 0x07, 0x37, 0x47, 0x44, + 0xc5, 0x10, 0x9c, 0xaf, 0x71, 0xce, 0xe9, 0x9e, 0xc8, 0x20, 0xb4, 0x3b, 0x20, 0xe4, 0xde, 0x5e, + 0x0e, 0xc1, 0xf9, 0x7b, 0x9c, 0x13, 0x71, 0xac, 0xd8, 0x52, 0xc2, 0xf8, 0x04, 0x4c, 0x5e, 0xc3, + 0xf6, 0xbe, 0xe5, 0xf0, 0xab, 0x91, 0x21, 0xe8, 0x5e, 0xe7, 0x74, 0x13, 0x1c, 0x48, 0xef, 0x4a, + 0x08, 0xd7, 0x23, 0x90, 0xa9, 0x6b, 0x3a, 0x1e, 0x82, 0xe2, 0x8b, 0x9c, 0x62, 0x8c, 0xe8, 0x13, + 0x68, 0x19, 0xf2, 0x0d, 0x8b, 0x97, 0xa5, 0x78, 0xf8, 0x1b, 0x1c, 0x9e, 0x13, 0x18, 0x4e, 0xd1, + 0xb6, 0xda, 0x9d, 0x26, 0xa9, 0x59, 0xf1, 0x14, 0xbf, 0x2f, 0x28, 0x04, 0x86, 0x53, 0x1c, 0xc3, + 0xad, 0x7f, 0x20, 0x28, 0x1c, 0x9f, 0x3f, 0x1f, 0x87, 0x9c, 0x65, 0x36, 0x0f, 0x2d, 0x73, 0x18, + 0x23, 0xbe, 0xc4, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x45, 0xc8, 0x0e, 0xbb, 0x11, 0x7f, 0xf8, 0xbe, + 0x38, 0x1e, 0x62, 0x07, 0xd6, 0x60, 0x42, 0x24, 0x28, 0xc3, 0x32, 0x87, 0xa0, 0xf8, 0x23, 0x4e, + 0x51, 0xf0, 0xc1, 0xf8, 0x32, 0x5c, 0xec, 0xb8, 0x0d, 0x3c, 0x0c, 0xc9, 0x9b, 0x62, 0x19, 0x1c, + 0xc2, 0x5d, 0xb9, 0x8f, 0x4d, 0xfd, 0x60, 0x38, 0x86, 0xaf, 0x08, 0x57, 0x0a, 0x0c, 0xa1, 0x58, + 0x81, 0xf1, 0x96, 0x66, 0x3b, 0x07, 0x5a, 0x73, 0xa8, 0xed, 0xf8, 0x63, 0xce, 0x91, 0xf7, 0x40, + 0xdc, 0x23, 0x1d, 0xf3, 0x38, 0x34, 0x5f, 0x15, 0x1e, 0xf1, 0xc1, 0xf8, 0xd1, 0x73, 0x5c, 0x7a, + 0x01, 0x75, 0x1c, 0xb6, 0xaf, 0x89, 0xa3, 0xc7, 0xb0, 0x9b, 0x7e, 0xc6, 0x8b, 0x90, 0x75, 0x8c, + 0x97, 0x87, 0xa2, 0xf9, 0x13, 0xb1, 0xd3, 0x14, 0x40, 0xc0, 0xcf, 0xc0, 0x2d, 0x91, 0x65, 0x62, + 0x08, 0xb2, 0x3f, 0xe5, 0x64, 0x27, 0x22, 0x4a, 0x05, 0x4f, 0x09, 0xc7, 0xa5, 0xfc, 0x33, 0x91, + 0x12, 0x70, 0x88, 0x6b, 0x87, 0xbc, 0x28, 0x38, 0x5a, 0xfd, 0x78, 0x5e, 0xfb, 0x73, 0xe1, 0x35, + 0x86, 0x0d, 0x78, 0x6d, 0x17, 0x4e, 0x70, 0xc6, 0xe3, 0xed, 0xeb, 0xd7, 0x45, 0x62, 0x65, 0xe8, + 0xbd, 0xe0, 0xee, 0xfe, 0x3f, 0x98, 0xf1, 0xdc, 0x29, 0x3a, 0x52, 0x47, 0x6d, 0x69, 0xed, 0x21, + 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0x5a, 0x5a, 0x67, 0x53, 0x6b, 0x13, 0xf2, 0x2b, 0x50, + 0x14, 0xe4, 0x1d, 0xd3, 0xc6, 0xba, 0xd5, 0x30, 0x8d, 0x97, 0x71, 0x6d, 0x08, 0xea, 0xbf, 0x08, + 0x6d, 0xd5, 0x9e, 0x0f, 0x4e, 0x98, 0xd7, 0x41, 0xf6, 0x7a, 0x15, 0xd5, 0x68, 0xb5, 0x2d, 0xdb, + 0x8d, 0x61, 0xfc, 0x4b, 0xb1, 0x53, 0x1e, 0x6e, 0x9d, 0xc2, 0x4a, 0x15, 0x28, 0xd0, 0xc7, 0x61, + 0x43, 0xf2, 0xaf, 0x38, 0xd1, 0x78, 0x17, 0xc5, 0x13, 0x87, 0x6e, 0xb5, 0xda, 0x9a, 0x3d, 0x4c, + 0xfe, 0xfb, 0x6b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xf7, 0xb0, 0x8d, 0x49, 0xb5, 0x1f, 0x82, + 0xe1, 0x9b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x10, 0x14, 0x7f, 0x23, 0x28, 0x04, + 0x86, 0x50, 0x7c, 0xae, 0x5b, 0x68, 0x6d, 0xdc, 0x30, 0x1c, 0xd7, 0x66, 0x7d, 0xf0, 0x60, 0xaa, + 0x6f, 0xbd, 0x1f, 0x6c, 0xc2, 0x14, 0x1f, 0xb4, 0xf4, 0x04, 0x4c, 0x84, 0x5a, 0x0c, 0x14, 0xf7, + 0xcd, 0x42, 0xf1, 0xe7, 0x3f, 0xe4, 0xc9, 0x28, 0xd8, 0x61, 0x94, 0x36, 0xc8, 0xbe, 0x07, 0xfb, + 0x80, 0x78, 0xb2, 0x57, 0x3e, 0xf4, 0xb6, 0x3e, 0xd0, 0x06, 0x94, 0x2e, 0xc1, 0x78, 0xa0, 0x07, + 0x88, 0xa7, 0xfa, 0x05, 0x4e, 0x95, 0xf7, 0xb7, 0x00, 0xa5, 0x73, 0x90, 0x22, 0xf5, 0x3c, 0x1e, + 0xfe, 0x8b, 0x1c, 0x4e, 0xd5, 0x4b, 0x8f, 0x42, 0x46, 0xd4, 0xf1, 0x78, 0xe8, 0x2f, 0x71, 0xa8, + 0x07, 0x21, 0x70, 0x51, 0xc3, 0xe3, 0xe1, 0xbf, 0x2c, 0xe0, 0x02, 0x42, 0xe0, 0xc3, 0xbb, 0xf0, + 0xdb, 0xbf, 0x92, 0xe2, 0x79, 0x58, 0xf8, 0xee, 0x22, 0x8c, 0xf1, 0xe2, 0x1d, 0x8f, 0xfe, 0x3c, + 0x9f, 0x5c, 0x20, 0x4a, 0x0f, 0x43, 0x7a, 0x48, 0x87, 0xff, 0x2a, 0x87, 0x32, 0xfd, 0xd2, 0x0a, + 0xe4, 0x7c, 0x05, 0x3b, 0x1e, 0xfe, 0x6b, 0x1c, 0xee, 0x47, 0x11, 0xd3, 0x79, 0xc1, 0x8e, 0x27, + 0xf8, 0x75, 0x61, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x5a, 0x1d, 0x8f, 0xfe, 0x0d, 0xe1, 0x75, 0x01, + 0x29, 0x3d, 0x0e, 0x59, 0x2f, 0xff, 0xc6, 0xe3, 0x7f, 0x93, 0xe3, 0xbb, 0x18, 0xe2, 0x01, 0x5f, + 0xfe, 0x8f, 0xa7, 0xf8, 0x2d, 0xe1, 0x01, 0x1f, 0x8a, 0x1c, 0xa3, 0x70, 0x4d, 0x8f, 0x67, 0xfa, + 0x6d, 0x71, 0x8c, 0x42, 0x25, 0x9d, 0xec, 0x26, 0x4d, 0x83, 0xf1, 0x14, 0xbf, 0x23, 0x76, 0x93, + 0xea, 0x13, 0x33, 0xc2, 0x45, 0x32, 0x9e, 0xe3, 0x77, 0x85, 0x19, 0xa1, 0x1a, 0x59, 0xda, 0x01, + 0xd4, 0x5b, 0x20, 0xe3, 0xf9, 0x5e, 0xe5, 0x7c, 0x93, 0x3d, 0xf5, 0xb1, 0xf4, 0x34, 0x9c, 0x88, + 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0xf8, 0x30, 0xf4, 0x3a, 0xe3, 0xaf, 0x8d, 0xa5, 0xdd, 0x6e, 0x96, + 0xf5, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x3e, 0x0c, 0x26, 0x5a, 0x7f, 0x5d, 0x2c, 0x95, 0x01, 0xba, + 0x35, 0x29, 0x9e, 0xeb, 0x75, 0xce, 0xe5, 0x03, 0x91, 0xa3, 0xc1, 0x4b, 0x52, 0x3c, 0xfe, 0x8b, + 0xe2, 0x68, 0x70, 0x04, 0x39, 0x1a, 0xa2, 0x1a, 0xc5, 0xa3, 0xdf, 0x10, 0x47, 0x43, 0x40, 0x4a, + 0x17, 0x21, 0x63, 0x76, 0x9a, 0x4d, 0x12, 0x5b, 0x68, 0xf0, 0x67, 0x44, 0xc5, 0x7f, 0xfe, 0x88, + 0x83, 0x05, 0xa0, 0x74, 0x0e, 0xd2, 0xb8, 0xb5, 0x8f, 0x6b, 0x71, 0xc8, 0x7f, 0xf9, 0x48, 0xe4, + 0x13, 0xa2, 0x5d, 0x7a, 0x1c, 0x80, 0xbd, 0x4c, 0xd3, 0x5f, 0x89, 0x62, 0xb0, 0xff, 0xfa, 0x11, + 0xff, 0x42, 0xa1, 0x0b, 0xe9, 0x12, 0xb0, 0xef, 0x1d, 0x06, 0x13, 0xbc, 0x1f, 0x24, 0xa0, 0x2f, + 0xe0, 0x8f, 0xc0, 0xd8, 0xf3, 0x8e, 0x65, 0xba, 0x5a, 0x23, 0x0e, 0xfd, 0x6f, 0x1c, 0x2d, 0xf4, + 0x89, 0xc3, 0x5a, 0x96, 0x8d, 0x5d, 0xad, 0xe1, 0xc4, 0x61, 0xff, 0x9d, 0x63, 0x3d, 0x00, 0x01, + 0xeb, 0x9a, 0xe3, 0x0e, 0xb3, 0xee, 0xff, 0x10, 0x60, 0x01, 0x20, 0x46, 0x93, 0xff, 0xaf, 0xe2, + 0xc3, 0x38, 0xec, 0x07, 0xc2, 0x68, 0xae, 0x5f, 0x7a, 0x14, 0xb2, 0xe4, 0x5f, 0xf6, 0xd5, 0x4e, + 0x0c, 0xf8, 0x3f, 0x39, 0xb8, 0x8b, 0x20, 0x33, 0x3b, 0x6e, 0xcd, 0x35, 0xe2, 0x9d, 0xfd, 0x5f, + 0x7c, 0xa7, 0x85, 0x7e, 0xa9, 0x0c, 0x39, 0xc7, 0xad, 0xd5, 0x3a, 0xbc, 0xa3, 0x89, 0x81, 0xff, + 0xf8, 0x23, 0xef, 0x25, 0xd7, 0xc3, 0x2c, 0x9f, 0x8e, 0xbe, 0xac, 0x83, 0x35, 0x6b, 0xcd, 0x62, + 0xd7, 0x74, 0xf0, 0x3f, 0xf7, 0xc3, 0xed, 0xba, 0xd5, 0xda, 0xb7, 0x9c, 0x45, 0x5f, 0x1a, 0x5a, + 0x6c, 0x69, 0x6d, 0x87, 0xea, 0x2f, 0xf1, 0xbb, 0xb6, 0x1c, 0x7f, 0x22, 0x03, 0x33, 0xc7, 0xbb, + 0xa7, 0x9b, 0xbb, 0x0d, 0xc6, 0x2f, 0x35, 0x2d, 0xcd, 0x35, 0xcc, 0xc6, 0x8e, 0x65, 0x98, 0x2e, + 0xca, 0x83, 0x54, 0xa7, 0x3f, 0x32, 0x49, 0x8a, 0x54, 0x9f, 0xfb, 0x87, 0x34, 0x64, 0xd9, 0x15, + 0xcf, 0xa6, 0xd6, 0x46, 0x3f, 0x07, 0xf9, 0x2d, 0x7e, 0x4a, 0x1e, 0x5c, 0xba, 0xe0, 0x78, 0xf7, + 0xc9, 0xbe, 0xf9, 0x17, 0x3c, 0xed, 0x05, 0xbf, 0x2a, 0xfd, 0x51, 0x79, 0xf9, 0x81, 0x1f, 0xbc, + 0x7d, 0xf2, 0xbe, 0xbe, 0xf6, 0x91, 0xb2, 0xb8, 0xc8, 0xc2, 0x79, 0x61, 0xcf, 0x30, 0xdd, 0x07, + 0x97, 0x2e, 0x28, 0x81, 0xf9, 0xd0, 0x35, 0xc8, 0xf0, 0x01, 0x87, 0xff, 0xce, 0x70, 0x47, 0x9f, + 0xb9, 0x85, 0x1a, 0x9b, 0xf7, 0xec, 0x5b, 0x6f, 0x9f, 0x1c, 0x39, 0xf6, 0xdc, 0xde, 0x5c, 0xe8, + 0x05, 0xc8, 0x09, 0x3b, 0xd6, 0x6b, 0x0e, 0xff, 0x9c, 0xf8, 0xee, 0x98, 0x65, 0xaf, 0xd7, 0xf8, + 0xec, 0x77, 0xfd, 0xe0, 0xed, 0x93, 0x73, 0x03, 0x67, 0x5e, 0xd8, 0xeb, 0x18, 0x35, 0xc5, 0x3f, + 0x07, 0x7a, 0x0e, 0x92, 0x64, 0x2a, 0xf6, 0xe1, 0xf1, 0xc9, 0x3e, 0x53, 0x79, 0x53, 0x9c, 0xe1, + 0x0b, 0x1c, 0x66, 0x1a, 0xc2, 0x3b, 0xf3, 0x38, 0x4c, 0xf6, 0x6c, 0x0f, 0x92, 0x21, 0x79, 0x15, + 0x1f, 0xf2, 0x6f, 0x8d, 0xc8, 0xbf, 0x68, 0xba, 0xfb, 0x2d, 0x9d, 0x34, 0x9f, 0xe7, 0x1f, 0xc8, + 0x95, 0x12, 0x17, 0xa4, 0x99, 0x8b, 0x30, 0x1e, 0xf0, 0xf1, 0xb1, 0xc0, 0x8f, 0x81, 0x1c, 0xf6, + 0xd2, 0xb1, 0xf0, 0xe7, 0x21, 0xf3, 0x71, 0x70, 0x73, 0xdf, 0x47, 0x30, 0x56, 0x6e, 0x36, 0x37, + 0xb5, 0xb6, 0x83, 0x9e, 0x81, 0x49, 0xd6, 0xbc, 0xef, 0x5a, 0xab, 0xf4, 0x97, 0x9d, 0x4d, 0xad, + 0xcd, 0x03, 0xfa, 0xde, 0x80, 0xbb, 0x39, 0x60, 0xa1, 0x47, 0x9b, 0xce, 0xaf, 0xf4, 0xb2, 0xa0, + 0xa7, 0x40, 0x16, 0x42, 0x7a, 0xb6, 0x08, 0x33, 0x0b, 0xd7, 0x33, 0x03, 0x99, 0x85, 0x32, 0x23, + 0xee, 0xe1, 0x40, 0x8f, 0x41, 0x66, 0xdd, 0x74, 0x1f, 0x5a, 0x22, 0x7c, 0x2c, 0x06, 0xe7, 0x22, + 0xf9, 0x84, 0x12, 0xe3, 0xf1, 0x30, 0x1c, 0x7f, 0xfe, 0x2c, 0xc1, 0xa7, 0x06, 0xe3, 0xa9, 0x52, + 0x17, 0x4f, 0x1f, 0x51, 0x19, 0xb2, 0x64, 0xcf, 0x99, 0x01, 0xec, 0x4b, 0xf6, 0xdb, 0x23, 0x09, + 0x3c, 0x2d, 0xc6, 0xd0, 0x45, 0x09, 0x0a, 0x66, 0xc3, 0x68, 0x0c, 0x85, 0xcf, 0x88, 0x2e, 0x8a, + 0x50, 0x54, 0x3d, 0x2b, 0xc6, 0x06, 0x50, 0x54, 0x43, 0x56, 0x54, 0xfd, 0x56, 0x54, 0x3d, 0x2b, + 0x32, 0x31, 0x14, 0x7e, 0x2b, 0xbc, 0x67, 0xb4, 0x0a, 0x70, 0xc9, 0x78, 0x09, 0xd7, 0x98, 0x19, + 0xd9, 0x88, 0x64, 0x24, 0x38, 0xba, 0x6a, 0x8c, 0xc4, 0x87, 0x43, 0x6b, 0x90, 0xab, 0xd6, 0xbb, + 0x34, 0xc0, 0x3f, 0xe4, 0x8f, 0x34, 0xa5, 0x1e, 0xe2, 0xf1, 0x23, 0x3d, 0x73, 0xd8, 0x92, 0x72, + 0x71, 0xe6, 0xf8, 0xd6, 0xe4, 0xc3, 0x75, 0xcd, 0x61, 0x34, 0xf9, 0x58, 0x73, 0x7c, 0x3c, 0x7e, + 0x24, 0xba, 0x08, 0x63, 0xcb, 0x96, 0x45, 0x34, 0x8b, 0xe3, 0x94, 0xe4, 0x74, 0x24, 0x09, 0xd7, + 0x61, 0x04, 0x02, 0x41, 0x77, 0x87, 0x86, 0x3e, 0x81, 0x17, 0x06, 0xed, 0x8e, 0xd0, 0x12, 0xbb, + 0x23, 0x9e, 0xfd, 0x27, 0x70, 0xf9, 0xd0, 0xc5, 0xa4, 0x51, 0x2e, 0x4e, 0x0c, 0x71, 0x02, 0x85, + 0x72, 0xe8, 0x04, 0x0a, 0x31, 0xaa, 0xc2, 0x84, 0x90, 0x55, 0xcc, 0x0e, 0xc9, 0xc1, 0x45, 0x99, + 0x7f, 0x65, 0x3c, 0x88, 0x96, 0xeb, 0x32, 0xd6, 0x30, 0x03, 0xda, 0x81, 0x82, 0x10, 0x6d, 0x3a, + 0x74, 0xd1, 0x93, 0x11, 0x75, 0x35, 0xcc, 0xc9, 0x54, 0x19, 0x65, 0x08, 0x3f, 0xb3, 0x0a, 0x27, + 0xa2, 0xb3, 0x55, 0x5c, 0xb6, 0x94, 0xfc, 0x59, 0x76, 0x05, 0x6e, 0x8a, 0xcc, 0x4c, 0x71, 0x24, + 0x89, 0x50, 0x9d, 0x08, 0xa4, 0x23, 0x3f, 0x38, 0x1d, 0x01, 0x4e, 0xf7, 0x82, 0xbb, 0x41, 0xe6, + 0x07, 0x27, 0x23, 0xc0, 0x49, 0x3f, 0xf8, 0xb3, 0x50, 0x08, 0xe6, 0x21, 0x3f, 0x7a, 0x3c, 0x02, + 0x3d, 0x1e, 0x81, 0x8e, 0x9e, 0x3b, 0x15, 0x81, 0x4e, 0x85, 0xd0, 0xd5, 0xbe, 0x73, 0x4f, 0x46, + 0xa0, 0x27, 0x23, 0xd0, 0xd1, 0x73, 0xa3, 0x08, 0x34, 0xf2, 0xa3, 0x1f, 0x85, 0x89, 0x50, 0xca, + 0xf1, 0xc3, 0xc7, 0x22, 0xe0, 0x63, 0xa1, 0xda, 0x1c, 0x4e, 0x35, 0x7e, 0xfc, 0x44, 0x04, 0x7e, + 0x22, 0x6a, 0xfa, 0x68, 0xeb, 0x47, 0x23, 0xe0, 0xa3, 0x91, 0xd3, 0x47, 0xe3, 0xe5, 0x08, 0xbc, + 0xec, 0xc7, 0x97, 0x20, 0xef, 0xcf, 0x2a, 0x7e, 0x6c, 0x26, 0x02, 0x9b, 0x09, 0xfb, 0x3d, 0x90, + 0x52, 0xe2, 0x22, 0x3d, 0xdb, 0xe7, 0xb8, 0x04, 0xd2, 0xc8, 0xb1, 0x3a, 0x9b, 0x2b, 0x30, 0x1d, + 0x95, 0x34, 0x22, 0x38, 0xce, 0xf8, 0x39, 0x0a, 0x4b, 0xd3, 0x81, 0x64, 0x41, 0x71, 0x9d, 0x96, + 0x9f, 0xf9, 0x39, 0x98, 0x8a, 0x48, 0x1d, 0x11, 0xc4, 0x0f, 0xf8, 0x89, 0x73, 0x4b, 0x33, 0x01, + 0xe2, 0xc0, 0xbb, 0x82, 0xbf, 0xb5, 0xfa, 0xe1, 0x14, 0x14, 0x78, 0x8a, 0xda, 0xb6, 0x6b, 0xd8, + 0xc6, 0x35, 0xf4, 0xff, 0xfb, 0x77, 0x58, 0x4b, 0x51, 0xa9, 0x8d, 0xe3, 0x8e, 0xd1, 0x68, 0x3d, + 0xd7, 0xb7, 0xd1, 0x7a, 0x70, 0x98, 0x09, 0xe2, 0xfa, 0xad, 0x4a, 0x4f, 0xbf, 0x75, 0xcf, 0x20, + 0xda, 0x7e, 0x6d, 0x57, 0xa5, 0xa7, 0xed, 0x8a, 0xa3, 0x89, 0xec, 0xbe, 0x2e, 0xf7, 0x76, 0x5f, + 0x67, 0x06, 0xf1, 0xf4, 0x6f, 0xc2, 0x2e, 0xf7, 0x36, 0x61, 0xb1, 0x4c, 0xd1, 0xbd, 0xd8, 0xe5, + 0xde, 0x5e, 0x6c, 0x20, 0x53, 0xff, 0x96, 0xec, 0x72, 0x6f, 0x4b, 0x16, 0xcb, 0x14, 0xdd, 0x99, + 0x3d, 0x19, 0xd1, 0x99, 0xdd, 0x3b, 0x88, 0x6a, 0x50, 0x83, 0xb6, 0x15, 0xd5, 0xa0, 0xdd, 0x37, + 0xd0, 0xb0, 0x81, 0x7d, 0xda, 0x93, 0x11, 0x7d, 0x5a, 0xbc, 0x71, 0x7d, 0xda, 0xb5, 0xad, 0xa8, + 0x76, 0x6d, 0x08, 0xe3, 0xfa, 0x75, 0x6d, 0xcb, 0xe1, 0xae, 0x6d, 0x7e, 0x10, 0x57, 0x74, 0xf3, + 0x76, 0xb9, 0xb7, 0x79, 0x3b, 0x13, 0x7f, 0x16, 0xa3, 0x7a, 0xb8, 0xe7, 0xfa, 0xf6, 0x70, 0x43, + 0x1d, 0xee, 0xb8, 0x56, 0xee, 0xd9, 0x7e, 0xad, 0xdc, 0x03, 0xc3, 0xb0, 0x0f, 0xee, 0xe8, 0x9e, + 0xee, 0xd3, 0xd1, 0x2d, 0x0e, 0x43, 0xfd, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, + 0x69, 0x63, 0xf7, 0x7f, 0xa3, 0xb1, 0x2b, 0xa5, 0x5e, 0xfd, 0xd2, 0x49, 0xe9, 0xcc, 0x69, 0x18, + 0xe3, 0x53, 0xa3, 0x51, 0x48, 0x6c, 0x96, 0xe5, 0x11, 0xfa, 0x77, 0x59, 0x96, 0xe8, 0xdf, 0x15, + 0x39, 0xb1, 0xbc, 0xf1, 0xd6, 0x8d, 0xd9, 0x91, 0xef, 0xde, 0x98, 0x1d, 0xf9, 0xfe, 0x8d, 0xd9, + 0x91, 0x77, 0x6e, 0xcc, 0x4a, 0xef, 0xdd, 0x98, 0x95, 0x3e, 0xb8, 0x31, 0x2b, 0xfd, 0xe4, 0xc6, + 0xac, 0x74, 0xfd, 0x68, 0x56, 0xfa, 0xca, 0xd1, 0xac, 0xf4, 0xf5, 0xa3, 0x59, 0xe9, 0x5b, 0x47, + 0xb3, 0xd2, 0xb7, 0x8f, 0x66, 0xa5, 0xb7, 0x8e, 0x66, 0x47, 0xbe, 0x7b, 0x34, 0x2b, 0xbd, 0x73, + 0x34, 0x2b, 0xbd, 0x77, 0x34, 0x3b, 0xf2, 0xc1, 0xd1, 0xac, 0xf4, 0x93, 0xa3, 0xd9, 0x91, 0xeb, + 0x3f, 0x9a, 0x1d, 0xf9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x95, 0x80, 0x4e, 0xc0, 0x58, 0x45, + 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -516,6 +567,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1204,6 +1379,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1457,6 +1673,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1931,23 +2211,6 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { this := &FloatingPoint{} if r.Intn(10) != 0 { @@ -1963,166 +2226,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2134,164 +2433,164 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 - } - } - } if r.Intn(10) != 0 { v38 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { v40 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { v42 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v43] *= -1 + } } } if r.Intn(10) != 0 { v44 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v45] *= -1 + } } } if r.Intn(10) != 0 { v46 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 - } + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v48 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 - } + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v50 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v51] *= -1 + } } } if r.Intn(10) != 0 { v52 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { v54 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v56 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { v58 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v60 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v61] *= -1 + } + } + } + if r.Intn(10) != 0 { + v62 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v64 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2320,14 +2619,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2335,43 +2634,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -2385,6 +2684,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -2504,7 +2860,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2523,8 +2883,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2653,7 +3014,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2672,8 +3037,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2707,6 +3073,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3109,8 +3529,8 @@ func valueToStringMapsproto2(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3122,7 +3542,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3147,19 +3567,19 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.F = &v2 default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -3169,7 +3589,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3179,8 +3599,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3192,7 +3612,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3202,15 +3622,15 @@ func (m *AllMaps) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + return fmt.Errorf("proto: CustomMap: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3220,7 +3640,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3242,7 +3662,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3257,7 +3677,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3272,45 +3692,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.Nullable128S == nil { + m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 + m.Nullable128S[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3320,7 +3760,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3342,7 +3782,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3357,7 +3797,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3372,41 +3812,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.Uint128S == nil { + m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_custom.Uint128 + m.Uint128S[mapkey] = mapvalue } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3416,7 +3880,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3438,14 +3902,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3453,51 +3917,80 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.NullableIds == nil { + m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test.Uuid + m.NullableIds[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3507,7 +4000,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3529,14 +4022,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int64 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3544,51 +4037,131 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Ids == nil { + m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test.Uuid + m.Ids[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3598,7 +4171,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3620,14 +4193,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey uint32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3635,14 +4208,89 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3650,14 +4298,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3665,21 +4313,61 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3689,7 +4377,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3711,14 +4399,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey uint64 + var mapkey int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3726,14 +4414,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift + mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3741,14 +4473,21 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3756,21 +4495,71 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) + var mapkey int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex - case 7: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3780,7 +4569,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3802,14 +4591,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkeytemp int32 + var mapkey uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3817,16 +4606,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift + mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - var valuekey uint64 + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3834,14 +4665,21 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3849,23 +4687,71 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) + var mapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex - case 8: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3875,7 +4761,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3897,14 +4783,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkeytemp uint64 + var mapkeytemp int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3912,16 +4798,84 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift + mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - var valuekey uint64 + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey := int32(mapkeytemp) + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3929,14 +4883,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 + var mapkeytemp uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3944,19 +4898,56 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift + mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - m.Sint64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue + } iNdEx = postIndex case 9: if wireType != 2 { @@ -3970,7 +4961,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3992,7 +4983,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4004,38 +4995,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -4049,7 +5045,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4071,7 +5067,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4083,38 +5079,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -4128,7 +5129,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4150,7 +5151,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4162,46 +5163,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -4215,7 +5221,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4237,7 +5243,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4249,46 +5255,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -4302,7 +5313,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4324,7 +5335,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4339,7 +5350,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4347,41 +5358,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -4395,7 +5411,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4417,7 +5433,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4432,7 +5448,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4447,52 +5463,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -4506,7 +5527,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4528,7 +5549,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4543,7 +5564,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4551,60 +5572,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { + if intStringLenmapkey < 0 { return ErrInvalidLengthMapsproto2 } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - m.StringToBytesMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue + } iNdEx = postIndex case 16: if wireType != 2 { @@ -4618,7 +5644,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4640,7 +5666,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4655,7 +5681,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4670,42 +5696,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -4719,7 +5750,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4741,7 +5772,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4756,7 +5787,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4771,61 +5802,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -4835,7 +5871,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4845,8 +5881,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4858,7 +5894,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4886,7 +5922,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4908,7 +5944,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4923,7 +5959,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4938,41 +5974,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -4986,7 +6027,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5008,7 +6049,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5023,7 +6064,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5038,37 +6079,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5082,7 +6128,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5104,7 +6150,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5119,47 +6165,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5173,7 +6224,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5195,7 +6246,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5210,47 +6261,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5264,7 +6320,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5286,7 +6342,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5301,47 +6357,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -5355,7 +6416,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5377,7 +6438,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5392,47 +6453,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -5446,7 +6512,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5468,7 +6534,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5483,7 +6549,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5492,42 +6558,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -5541,7 +6612,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5563,7 +6634,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5578,7 +6649,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5587,42 +6658,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -5636,7 +6712,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5658,7 +6734,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5670,38 +6746,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -5715,7 +6796,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5737,7 +6818,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5749,38 +6830,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -5794,7 +6880,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5816,7 +6902,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5828,46 +6914,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - m.Fixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 12: if wireType != 2 { @@ -5881,7 +6972,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5903,7 +6994,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5915,46 +7006,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -5968,7 +7064,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5990,7 +7086,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6005,7 +7101,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6013,41 +7109,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6061,7 +7162,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6083,7 +7184,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6098,7 +7199,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6113,52 +7214,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6172,7 +7278,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6194,7 +7300,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6209,7 +7315,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6224,53 +7330,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6284,7 +7395,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6306,7 +7417,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6321,7 +7432,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6336,42 +7447,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -6385,7 +7501,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6407,7 +7523,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6422,7 +7538,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6437,61 +7553,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2(data[iNdEx:]) + skippy, err := skipMapsproto2(dAtA[iNdEx:]) if err != nil { return err } @@ -6501,7 +7622,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -6511,8 +7632,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func skipMapsproto2(data []byte) (n int, err error) { - l := len(data) +func skipMapsproto2(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -6523,7 +7644,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6541,7 +7662,7 @@ func skipMapsproto2(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -6558,7 +7679,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6581,7 +7702,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6592,7 +7713,7 @@ func skipMapsproto2(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipMapsproto2(data[start:]) + next, err := skipMapsproto2(dAtA[start:]) if err != nil { return 0, err } @@ -6616,67 +7737,80 @@ var ( ErrIntOverflowMapsproto2 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xbd, 0x4f, 0xf3, 0x46, - 0x1c, 0xc7, 0x71, 0xde, 0x73, 0x79, 0x73, 0x0e, 0x5a, 0x45, 0x91, 0x9a, 0x96, 0xd0, 0x4a, 0x21, - 0xb4, 0x09, 0x4d, 0xab, 0xaa, 0x82, 0x16, 0x89, 0x40, 0x68, 0x2a, 0x0a, 0x45, 0xa4, 0xef, 0x12, - 0x52, 0x93, 0xe2, 0x84, 0xa8, 0x49, 0x8c, 0x62, 0xbb, 0x2a, 0x1b, 0x7f, 0x46, 0xd7, 0x6e, 0x1d, - 0x3b, 0x76, 0xec, 0xc8, 0xd8, 0x91, 0xa1, 0x03, 0xf0, 0x2c, 0x8c, 0x8c, 0x8c, 0xcf, 0xf9, 0xce, - 0x76, 0xce, 0xf6, 0xcf, 0x76, 0x9e, 0xed, 0x19, 0x32, 0x9c, 0x2e, 0x77, 0xfc, 0xbe, 0x9f, 0xfb, - 0x1a, 0xfb, 0x7e, 0xfa, 0xa2, 0xb5, 0x5f, 0xe4, 0x71, 0x4f, 0x56, 0xea, 0xda, 0x64, 0xdc, 0x9d, - 0x2a, 0x17, 0xdd, 0x91, 0x34, 0xad, 0x8f, 0xbb, 0x97, 0xca, 0xe5, 0x54, 0x56, 0xe5, 0x46, 0x8d, - 0x4e, 0x38, 0x65, 0xac, 0xf4, 0x3f, 0x14, 0x3f, 0x18, 0x0c, 0xd5, 0x0b, 0xad, 0x57, 0x23, 0xc2, - 0xfa, 0x40, 0x1e, 0xc8, 0x75, 0xfa, 0xc7, 0x9e, 0xd6, 0xa7, 0x2b, 0xba, 0xa0, 0xbf, 0x98, 0xb6, - 0xfc, 0x16, 0xca, 0x1c, 0x8c, 0xe4, 0xae, 0x3a, 0x9c, 0x0c, 0x4e, 0xe4, 0xe1, 0x44, 0xc5, 0x69, - 0x24, 0xf4, 0x0b, 0xc2, 0x3b, 0x42, 0x45, 0x38, 0x15, 0xfa, 0xe5, 0x5b, 0x8c, 0xe2, 0xbb, 0xa3, - 0xd1, 0x11, 0x21, 0xe3, 0x1f, 0x51, 0xbe, 0xa3, 0x4e, 0x49, 0xe1, 0x37, 0xf2, 0xbe, 0xac, 0xf5, - 0x46, 0x12, 0xd9, 0x25, 0x95, 0xe1, 0x4a, 0xaa, 0xb1, 0x51, 0xe3, 0x2c, 0xd4, 0x0c, 0x41, 0xcd, - 0x55, 0xdd, 0x9a, 0xa8, 0xd3, 0xab, 0xd3, 0xbc, 0xe2, 0xdc, 0xc7, 0xdf, 0x21, 0xd1, 0x2c, 0xa6, - 0x6e, 0x74, 0x72, 0x88, 0x92, 0xab, 0xbe, 0x64, 0xb3, 0x98, 0x81, 0x45, 0xc5, 0xb1, 0x8d, 0x77, - 0x50, 0xe2, 0xcb, 0x89, 0xfa, 0x51, 0x43, 0xe7, 0x85, 0x29, 0xaf, 0x0c, 0xf2, 0xcc, 0x22, 0xc6, - 0x49, 0x0c, 0x8d, 0xa5, 0xa1, 0xff, 0xe4, 0x63, 0x5d, 0x1f, 0xf1, 0xd7, 0xd3, 0xa2, 0x99, 0x9e, - 0x2e, 0xf1, 0x2e, 0x4a, 0x7e, 0x6b, 0xc2, 0x0a, 0x51, 0x0a, 0x58, 0x03, 0x01, 0x56, 0x15, 0x23, - 0x24, 0x35, 0xcb, 0x82, 0x81, 0x60, 0x1e, 0x62, 0x01, 0x08, 0xce, 0x04, 0x45, 0x58, 0x2e, 0x3a, - 0x96, 0x8b, 0xb8, 0x0f, 0xa2, 0xe3, 0x70, 0xa1, 0xf0, 0x2e, 0x3a, 0x96, 0x8b, 0x44, 0x00, 0x82, - 0x77, 0xa1, 0x58, 0x2e, 0xf6, 0x11, 0x3a, 0x18, 0xfe, 0x2e, 0x9d, 0x33, 0x1b, 0x49, 0xca, 0x78, - 0x17, 0x64, 0xcc, 0xca, 0x18, 0x04, 0xf5, 0xad, 0x0d, 0xfc, 0x05, 0x4a, 0x75, 0x66, 0xcb, 0x02, - 0xa2, 0x98, 0xf7, 0x60, 0x2b, 0x7d, 0x07, 0x27, 0xa5, 0x70, 0x20, 0xd3, 0x0e, 0x7b, 0xa4, 0x54, - 0x90, 0x1d, 0xee, 0x99, 0x98, 0x1d, 0xf6, 0x50, 0x96, 0x1d, 0x86, 0x49, 0x07, 0xda, 0xe1, 0x38, - 0x86, 0x1d, 0x06, 0xda, 0x46, 0xf1, 0xa6, 0x2c, 0xeb, 0x95, 0x85, 0x0c, 0x85, 0xac, 0x82, 0x10, - 0xa3, 0x86, 0x01, 0xe2, 0x3d, 0xb6, 0xa2, 0x6f, 0x87, 0x7e, 0xfa, 0xba, 0x3c, 0xeb, 0xf7, 0x76, - 0xcc, 0x2a, 0xf3, 0xed, 0x98, 0x6b, 0xfe, 0x06, 0x36, 0xaf, 0x54, 0x49, 0xd1, 0x49, 0xb9, 0x39, - 0x6e, 0xa0, 0x59, 0xec, 0xb8, 0x81, 0xe6, 0x36, 0xee, 0xa0, 0x9c, 0x59, 0xda, 0x9a, 0x68, 0x63, - 0x1d, 0x2b, 0x52, 0xec, 0xba, 0x2f, 0xd6, 0xa8, 0x65, 0xd4, 0x9c, 0x62, 0xdf, 0xc5, 0x27, 0x28, - 0x6b, 0x16, 0x1e, 0x29, 0xf4, 0xa1, 0xf3, 0x94, 0x59, 0xf1, 0x65, 0xb2, 0x52, 0x86, 0xcc, 0x2a, - 0xb6, 0xcd, 0xe2, 0x3e, 0x7a, 0x13, 0xee, 0x56, 0x58, 0x44, 0xe1, 0x5f, 0xa5, 0x2b, 0xda, 0x11, - 0x93, 0xa7, 0xfa, 0x4f, 0xbc, 0x82, 0xa2, 0xbf, 0x75, 0x47, 0x9a, 0x44, 0x3a, 0x94, 0xde, 0x25, - 0xd9, 0x62, 0x2b, 0xf4, 0xa9, 0x50, 0xdc, 0x43, 0x6f, 0x80, 0x9d, 0x29, 0x08, 0x12, 0xe2, 0x21, - 0xdb, 0x28, 0x63, 0x6b, 0x47, 0xbc, 0x38, 0x0a, 0x88, 0xa3, 0x6e, 0xf1, 0xec, 0x23, 0xe3, 0xc5, - 0x61, 0x40, 0x1c, 0xe6, 0xc5, 0x9f, 0xa1, 0xac, 0xbd, 0x0f, 0xf1, 0xea, 0x0c, 0xa0, 0xce, 0x00, - 0x6a, 0xf8, 0xec, 0x08, 0xa0, 0x8e, 0x38, 0xd4, 0x1d, 0xcf, 0xb3, 0xf3, 0x80, 0x3a, 0x0f, 0xa8, - 0xe1, 0xb3, 0x31, 0xa0, 0xc6, 0xbc, 0xfa, 0x73, 0x94, 0x73, 0xb4, 0x1c, 0x5e, 0x1e, 0x07, 0xe4, - 0x71, 0x5e, 0xbe, 0x43, 0xae, 0x4e, 0xdf, 0x5b, 0x9f, 0x03, 0xf4, 0x39, 0xe8, 0x78, 0xd8, 0x7d, - 0x0c, 0x90, 0xc7, 0xc0, 0xe3, 0x61, 0xbd, 0x08, 0xe8, 0x45, 0x5e, 0xbf, 0x85, 0xd2, 0x7c, 0x57, - 0xe1, 0xb5, 0x09, 0x40, 0x9b, 0x70, 0xfe, 0xdf, 0x6d, 0x2d, 0x25, 0xe8, 0x4b, 0x4f, 0x7a, 0x5c, - 0x17, 0x5b, 0x1b, 0x09, 0x82, 0xa4, 0x79, 0xc8, 0x0f, 0x68, 0x05, 0x6a, 0x1a, 0x00, 0xa3, 0xca, - 0x33, 0xb2, 0x8d, 0x15, 0x5b, 0xb3, 0xa0, 0x3a, 0x6d, 0xcc, 0x93, 0xcf, 0xd0, 0x32, 0xd0, 0x3a, - 0x00, 0xf0, 0x26, 0x0f, 0x4e, 0x35, 0x8a, 0x36, 0xb0, 0x2d, 0x5d, 0x71, 0xf8, 0xf2, 0xff, 0xcb, - 0x28, 0x6b, 0xb4, 0xa8, 0xaf, 0xa7, 0xe7, 0xd2, 0x54, 0x3a, 0xc7, 0x3f, 0x7b, 0x27, 0xac, 0x06, - 0xd4, 0xda, 0x0c, 0xdd, 0x2b, 0x04, 0xad, 0x33, 0xcf, 0xa0, 0xf5, 0xe1, 0x3c, 0x07, 0x04, 0xe5, - 0xad, 0x96, 0x2b, 0x6f, 0xad, 0xfb, 0x61, 0xbd, 0x62, 0x57, 0xcb, 0x15, 0xbb, 0x82, 0x30, 0x60, - 0xfa, 0x6a, 0xbb, 0xd3, 0x57, 0xd5, 0x8f, 0xe3, 0x1d, 0xc2, 0xda, 0xee, 0x10, 0x16, 0x48, 0x82, - 0xb3, 0x58, 0xdb, 0x9d, 0xc5, 0x7c, 0x49, 0xde, 0x91, 0xac, 0xed, 0x8e, 0x64, 0x81, 0x24, 0x38, - 0x99, 0x1d, 0x02, 0xc9, 0x6c, 0xc3, 0x0f, 0xe5, 0x17, 0xd0, 0x8e, 0xa1, 0x80, 0xf6, 0xbe, 0xaf, - 0x31, 0xdf, 0x9c, 0x76, 0x08, 0xe4, 0xb4, 0x60, 0x73, 0x1e, 0x71, 0xed, 0x18, 0x8a, 0x6b, 0x73, - 0x98, 0xf3, 0x4a, 0x6d, 0x4d, 0x67, 0x6a, 0xab, 0xf8, 0xb1, 0xe0, 0xf0, 0xd6, 0x76, 0x87, 0xb7, - 0x6a, 0xf0, 0x5d, 0x84, 0x32, 0xdc, 0x99, 0x67, 0x86, 0x9b, 0xeb, 0x72, 0x07, 0x45, 0xb9, 0x9f, - 0xbc, 0xa2, 0xdc, 0xe6, 0x3c, 0x74, 0xff, 0x44, 0xf7, 0xbd, 0x47, 0xa2, 0xab, 0xcf, 0x83, 0x5e, - 0x04, 0xbb, 0x45, 0xb0, 0x5b, 0x04, 0xbb, 0x45, 0xb0, 0x7b, 0x3d, 0x82, 0xdd, 0x56, 0xe4, 0x8f, - 0x3f, 0xdf, 0x16, 0xaa, 0xab, 0x28, 0x6e, 0x1c, 0x8d, 0x63, 0x28, 0x74, 0xb4, 0x2b, 0x2e, 0xd1, - 0xb9, 0x29, 0x0a, 0x74, 0xde, 0x13, 0x43, 0xcd, 0xaf, 0x6e, 0xee, 0x4b, 0x4b, 0xff, 0x91, 0x71, - 0x4b, 0xc6, 0xdd, 0x7d, 0x49, 0x78, 0x24, 0xe3, 0x89, 0x8c, 0x67, 0x32, 0xae, 0x1f, 0x4a, 0xc2, - 0x5f, 0x64, 0xfc, 0x4d, 0xc6, 0x3f, 0x64, 0xfc, 0x4b, 0xc6, 0xcd, 0x03, 0xa9, 0x27, 0xf3, 0x1d, - 0x19, 0x8f, 0xe4, 0xf7, 0x13, 0x99, 0x9f, 0xc9, 0x7c, 0xfd, 0xa2, 0xb4, 0xf4, 0x32, 0x00, 0x00, - 0xff, 0xff, 0x7f, 0x9b, 0x8a, 0x9e, 0x2b, 0x14, 0x00, 0x00, + // 1150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47, + 0x18, 0xc6, 0x19, 0xb0, 0x0d, 0x0c, 0xdf, 0x93, 0xb4, 0x42, 0x48, 0x1d, 0x1c, 0xd2, 0x0f, 0x42, + 0x52, 0xb0, 0x69, 0x14, 0x59, 0x4e, 0x9b, 0xca, 0xd8, 0x4e, 0xb1, 0x52, 0xdc, 0x08, 0x9a, 0x7e, + 0x49, 0x96, 0x0a, 0x66, 0x21, 0xa8, 0xc0, 0x52, 0x76, 0x37, 0xaa, 0x2f, 0x55, 0xfe, 0x8c, 0x5e, + 0x7b, 0xeb, 0xb1, 0xc7, 0x1e, 0x7b, 0xb4, 0xd4, 0x4b, 0x8e, 0x51, 0x54, 0x59, 0x61, 0x7b, 0xc9, + 0x31, 0xc7, 0x1c, 0xab, 0x9d, 0xdd, 0x85, 0xd9, 0xdd, 0x77, 0x77, 0xa1, 0xa7, 0x1e, 0x7c, 0xc2, + 0xb3, 0xbc, 0xcf, 0xef, 0x79, 0x77, 0x77, 0xe6, 0xe5, 0x31, 0xbe, 0x7e, 0x2a, 0x8e, 0x3a, 0xa2, + 0x54, 0x51, 0xc6, 0xa3, 0xf6, 0x54, 0x7a, 0xdc, 0x1e, 0x0a, 0xd3, 0xca, 0xa8, 0x3d, 0x91, 0x26, + 0x53, 0x51, 0x16, 0xab, 0x65, 0xf6, 0x41, 0x62, 0xc6, 0x4a, 0xfb, 0x22, 0xf7, 0x61, 0x7f, 0x20, + 0x3f, 0x56, 0x3a, 0xe5, 0x53, 0x71, 0x54, 0xe9, 0x8b, 0x7d, 0xb1, 0xc2, 0xbe, 0xec, 0x28, 0x3d, + 0xb6, 0x62, 0x0b, 0xf6, 0x97, 0xae, 0x2d, 0xbc, 0x83, 0x13, 0xf7, 0x87, 0x62, 0x5b, 0x1e, 0x8c, + 0xfb, 0x0f, 0xc5, 0xc1, 0x58, 0x26, 0x71, 0x8c, 0x7a, 0x59, 0xb4, 0x89, 0x8a, 0xa8, 0x89, 0x7a, + 0x85, 0xbf, 0xd6, 0x71, 0x74, 0x5f, 0x91, 0x64, 0x71, 0xd4, 0x68, 0x4f, 0xc8, 0xcf, 0x38, 0x7e, + 0xac, 0x0c, 0x87, 0xed, 0xce, 0x50, 0xd8, 0xae, 0xee, 0x48, 0x59, 0xb4, 0x19, 0x2a, 0xc6, 0xaa, + 0xc5, 0x32, 0xe7, 0x5f, 0x9e, 0x57, 0x97, 0xf9, 0xd2, 0xc3, 0xb1, 0x3c, 0x3d, 0xab, 0x6d, 0xbd, + 0xb8, 0xc8, 0xdf, 0x72, 0xed, 0x4f, 0x16, 0x24, 0xb9, 0x72, 0xca, 0xe4, 0xe5, 0x47, 0x83, 0xb1, + 0xbc, 0x5d, 0xdd, 0x69, 0x5a, 0xfc, 0xc8, 0x13, 0x1c, 0x31, 0xbe, 0x90, 0xb2, 0x41, 0xe6, 0xfd, + 0xae, 0x8b, 0xb7, 0x59, 0xa6, 0xfb, 0xde, 0x3e, 0xbf, 0xc8, 0x07, 0x56, 0xf6, 0x9e, 0x7b, 0x91, + 0x1f, 0x71, 0xcc, 0xec, 0xe3, 0xa8, 0x2b, 0x65, 0x43, 0xcc, 0xfa, 0x03, 0x9f, 0xdb, 0x3e, 0xea, + 0x1a, 0xee, 0xef, 0xbf, 0xb8, 0xc8, 0x17, 0x3c, 0x9d, 0xcb, 0x8f, 0x94, 0x41, 0xb7, 0xc9, 0x7b, + 0x90, 0x13, 0x1c, 0xd2, 0xac, 0xd6, 0x98, 0x55, 0xde, 0xc5, 0x6a, 0x6e, 0x51, 0x32, 0x6e, 0x70, + 0x19, 0x1b, 0x8d, 0x9b, 0xfb, 0x14, 0x67, 0x1c, 0xaf, 0x87, 0xa4, 0x71, 0xe8, 0x07, 0xe1, 0x8c, + 0xbd, 0xfc, 0x68, 0x53, 0xfb, 0x93, 0x5c, 0xc5, 0xeb, 0x4f, 0xda, 0x43, 0x45, 0xc8, 0x06, 0x37, + 0x51, 0x31, 0xde, 0xd4, 0x17, 0xbb, 0xc1, 0x1d, 0x94, 0xbb, 0x8b, 0x13, 0x96, 0x67, 0xbc, 0x92, + 0xf8, 0x1e, 0x4e, 0xdb, 0x9f, 0xd2, 0x4a, 0xfa, 0x3b, 0x38, 0xf2, 0x5f, 0x74, 0x85, 0xe7, 0x04, + 0x87, 0xf7, 0x86, 0xc3, 0x46, 0x7b, 0x22, 0x91, 0x6f, 0x71, 0xa6, 0x25, 0x4f, 0x07, 0xe3, 0xfe, + 0x97, 0xe2, 0x81, 0xa8, 0x74, 0x86, 0x42, 0xa3, 0x3d, 0x31, 0x36, 0xf4, 0x4d, 0xcb, 0xe3, 0x36, + 0x04, 0x65, 0x47, 0x35, 0xf3, 0x6f, 0x3a, 0x29, 0xe4, 0x2b, 0x9c, 0x36, 0x2f, 0xb2, 0xb3, 0xa5, + 0x91, 0xf5, 0xed, 0x5a, 0xf2, 0x24, 0x9b, 0xc5, 0x3a, 0xd8, 0xc1, 0x20, 0xf7, 0x70, 0xe4, 0x68, + 0x2c, 0x7f, 0x54, 0xd5, 0x78, 0xfa, 0x1e, 0x2c, 0x80, 0x3c, 0xb3, 0x48, 0xe7, 0xcc, 0x35, 0x86, + 0xfe, 0xce, 0x6d, 0x4d, 0xbf, 0xe6, 0xad, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x3d, 0x1c, 0xd5, + 0xde, 0xb9, 0xde, 0xc0, 0x3a, 0x03, 0x5c, 0x07, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08, + 0xbd, 0x87, 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x5a, 0xf3, 0x2e, 0xc2, 0x1e, 0x88, + 0x96, 0xad, 0x8b, 0x16, 0xdf, 0x45, 0x6b, 0xde, 0x45, 0xc4, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93, + 0x03, 0x8c, 0xef, 0x0f, 0x7e, 0x12, 0xba, 0x7a, 0x1b, 0x51, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99, + 0x0e, 0xe1, 0x74, 0xe4, 0x33, 0x1c, 0x6b, 0xf5, 0x16, 0x18, 0xcc, 0x30, 0xef, 0xc1, 0xad, 0xf4, + 0x6c, 0x1c, 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0x98, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, + 0x3b, 0x3a, 0x26, 0xee, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0xd7, 0x44, 0x51, 0xab, + 0xcc, 0x26, 0x18, 0xe4, 0x1a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d, + 0x4d, 0x9e, 0xf4, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0x6b, 0x67, 0xb2, + 0x20, 0x69, 0xa4, 0xd4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe1, 0x94, + 0x79, 0xed, 0x70, 0xac, 0x68, 0x33, 0x38, 0x9b, 0x66, 0xd8, 0x1b, 0x9e, 0x58, 0xa3, 0x56, 0xa7, + 0xda, 0x09, 0xe4, 0x21, 0x4e, 0x9a, 0x97, 0x1a, 0x12, 0xbb, 0xe9, 0x0c, 0xf0, 0xbb, 0x6a, 0x67, + 0xea, 0xa5, 0x3a, 0xd2, 0xa6, 0xcf, 0x1d, 0xe0, 0xb7, 0xe1, 0x69, 0xe5, 0x37, 0x2d, 0x11, 0x3f, + 0x65, 0xf7, 0xf1, 0x5b, 0xe0, 0x64, 0xf2, 0x83, 0x04, 0x6d, 0xbf, 0x13, 0x96, 0x71, 0xc4, 0x8b, + 0xd7, 0x01, 0xf1, 0xba, 0x53, 0xbc, 0xd8, 0x64, 0xbc, 0x38, 0x04, 0x88, 0x43, 0xbc, 0xf8, 0x63, + 0x9c, 0xb4, 0xce, 0x21, 0x5e, 0x9d, 0x00, 0xd4, 0x09, 0x40, 0x0d, 0x7b, 0xaf, 0x01, 0xea, 0x35, + 0x9b, 0xba, 0xe5, 0xea, 0x9d, 0x01, 0xd4, 0x19, 0x40, 0x0d, 0x7b, 0x13, 0x40, 0x4d, 0x78, 0xf5, + 0x27, 0x38, 0x65, 0x1b, 0x39, 0xbc, 0x3c, 0x0c, 0xc8, 0xc3, 0xb6, 0xdf, 0x66, 0xfb, 0xa8, 0xe1, + 0xf5, 0x29, 0x40, 0x9f, 0x82, 0xec, 0xe1, 0xee, 0x37, 0x00, 0xf9, 0x06, 0x68, 0x0f, 0xeb, 0xd3, + 0x80, 0x3e, 0xcd, 0xeb, 0x77, 0x71, 0x9c, 0x9f, 0x2a, 0xbc, 0x36, 0x02, 0x68, 0x23, 0xf6, 0xe7, + 0x6e, 0x19, 0x29, 0x7e, 0x3b, 0x3d, 0xea, 0x72, 0x5c, 0x2c, 0x63, 0x64, 0xa5, 0x64, 0xf3, 0x0d, + 0xbe, 0x0a, 0x0d, 0x0d, 0x80, 0x51, 0xe2, 0x19, 0xc9, 0xea, 0x55, 0xcb, 0xb0, 0x60, 0x3a, 0x65, + 0xc4, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74, 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x2c, 0x60, + 0xcb, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb, 0x0a, 0x4e, 0x1a, 0x23, 0xea, 0x8b, 0x69, 0x57, 0x98, + 0x0a, 0x5d, 0xf2, 0xbd, 0x7b, 0xc2, 0xaa, 0x42, 0xa3, 0xcd, 0xd0, 0xad, 0x10, 0xb4, 0x4e, 0x5c, + 0x83, 0xd6, 0xf6, 0x32, 0x06, 0x7e, 0x79, 0xeb, 0xd0, 0x91, 0xb7, 0x6e, 0x78, 0x61, 0xdd, 0x62, + 0xd7, 0xa1, 0x23, 0x76, 0xf9, 0x61, 0xc0, 0xf4, 0x55, 0x77, 0xa6, 0xaf, 0x92, 0x17, 0xc7, 0x3d, + 0x84, 0xd5, 0x9d, 0x21, 0xcc, 0x97, 0x04, 0x67, 0xb1, 0xba, 0x33, 0x8b, 0x79, 0x92, 0xdc, 0x23, + 0x59, 0xdd, 0x19, 0xc9, 0x7c, 0x49, 0x70, 0x32, 0x7b, 0x00, 0x24, 0xb3, 0x9b, 0x5e, 0x28, 0xaf, + 0x80, 0x76, 0x0c, 0x05, 0xb4, 0x5b, 0x9e, 0x8d, 0x79, 0xe6, 0xb4, 0x07, 0x40, 0x4e, 0xf3, 0x6f, + 0xce, 0x25, 0xae, 0x1d, 0x43, 0x71, 0x6d, 0x89, 0xe6, 0xdc, 0x52, 0x5b, 0xcd, 0x9e, 0xda, 0x8a, + 0x5e, 0x2c, 0x38, 0xbc, 0xd5, 0x9d, 0xe1, 0xad, 0xe4, 0x7f, 0x16, 0xa1, 0x0c, 0x77, 0xe2, 0x9a, + 0xe1, 0x96, 0x3a, 0xdc, 0x7e, 0x51, 0xee, 0x3b, 0xb7, 0x28, 0xb7, 0xb5, 0x0c, 0xdd, 0x3b, 0xd1, + 0x7d, 0xed, 0x92, 0xe8, 0x2a, 0xcb, 0xa0, 0x2f, 0x83, 0xdd, 0x65, 0xb0, 0xbb, 0x0c, 0x76, 0x97, + 0xc1, 0xee, 0xff, 0x11, 0xec, 0x76, 0xd7, 0x7e, 0xf9, 0x35, 0x8f, 0x4a, 0xd7, 0x70, 0xd8, 0xb0, + 0x26, 0x1b, 0x38, 0xd8, 0xd8, 0x4b, 0x07, 0xd8, 0x67, 0x2d, 0x8d, 0xd8, 0xe7, 0x7e, 0x3a, 0x58, + 0xfb, 0xfc, 0x7c, 0x46, 0x03, 0xcf, 0x66, 0x34, 0xf0, 0x7c, 0x46, 0x03, 0x2f, 0x67, 0x14, 0xbd, + 0x9a, 0x51, 0xf4, 0x7a, 0x46, 0xd1, 0x9b, 0x19, 0x45, 0x4f, 0x55, 0x8a, 0x7e, 0x53, 0x29, 0xfa, + 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x3f, 0x55, 0x8a, 0xce, 0x55, 0x1a, 0x78, 0xa6, 0x52, 0xf4, + 0x52, 0xa5, 0xe8, 0x95, 0x4a, 0x03, 0xaf, 0x55, 0x8a, 0xde, 0xa8, 0x34, 0xf0, 0xf4, 0x1f, 0x1a, + 0xf8, 0x37, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xc4, 0xd5, 0x8e, 0xf9, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto index 7d2eb480..27a47d6a 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go index a6dfcca1..baebea70 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -35,18 +36,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -74,11 +75,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -88,11 +89,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -105,22 +106,96 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -148,11 +223,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -162,11 +237,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -183,18 +258,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -222,11 +297,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -236,11 +311,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -274,6 +349,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -320,9 +416,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -337,9 +433,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -354,9 +484,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -371,9 +501,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -388,9 +518,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -405,9 +535,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,12 +554,27 @@ func TestMapsproto2Description(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -439,12 +584,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -454,12 +599,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -474,6 +619,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -503,6 +656,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -534,13 +700,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -565,18 +731,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -606,13 +808,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -646,6 +848,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go index 2a33ce54..f2755168 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go @@ -10,6 +10,7 @@ It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,12 +33,10 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" import unsafe "unsafe" -import errors "errors" import io "io" @@ -45,7 +47,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -93,58 +97,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -152,6 +169,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -161,264 +181,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4104 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xef, 0xe4, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0x6d, 0xc7, - 0x6b, 0x39, 0x91, 0x1c, 0x25, 0xb6, 0xd7, 0x74, 0xe2, 0x40, 0x17, 0xae, 0x56, 0x8e, 0x6e, 0x1d, - 0x4a, 0xf6, 0xda, 0x85, 0xc1, 0x8e, 0xc8, 0x21, 0x45, 0x7b, 0x38, 0xc3, 0x72, 0x86, 0xf6, 0x2a, - 0x4f, 0x2e, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x1c, 0x27, 0xad, 0x03, 0xb4, 0x4e, 0xdd, - 0x5b, 0xd2, 0x1b, 0x8a, 0x3e, 0x05, 0x28, 0xd2, 0xe6, 0xa9, 0x68, 0xfb, 0x94, 0x87, 0x3c, 0x24, - 0xa9, 0x81, 0xba, 0x6d, 0xda, 0xba, 0x80, 0x81, 0x06, 0xf0, 0x4b, 0xcf, 0x7f, 0x1b, 0xfe, 0x33, - 0x1c, 0x72, 0xa8, 0x00, 0x49, 0xfc, 0x60, 0x01, 0x84, 0x38, 0xe7, 0x3f, 0xdf, 0x37, 0x67, 0xce, - 0x7f, 0xfe, 0x73, 0xce, 0xff, 0x73, 0xe0, 0xef, 0x3e, 0x06, 0x77, 0x75, 0x6c, 0xbb, 0x63, 0x1a, - 0xab, 0xfd, 0x81, 0xed, 0xda, 0x27, 0xc3, 0xf6, 0x6a, 0xcb, 0x70, 0x9a, 0x83, 0x6e, 0xdf, 0xb5, - 0x07, 0x2b, 0x54, 0xa6, 0x96, 0x98, 0xc6, 0x8a, 0xd0, 0xa8, 0xec, 0xc1, 0xfc, 0xb5, 0xae, 0x69, - 0x6c, 0x79, 0x8a, 0x75, 0xc3, 0x55, 0xaf, 0x42, 0xb2, 0x8d, 0xc2, 0x72, 0xec, 0xae, 0xc4, 0x95, - 0xfc, 0xda, 0x3d, 0x2b, 0x01, 0xd0, 0x8a, 0x1f, 0x71, 0x48, 0xc4, 0x1a, 0x45, 0x54, 0xde, 0x4a, - 0xc2, 0x42, 0xc8, 0xa8, 0xaa, 0x42, 0xd2, 0xd2, 0x7b, 0x84, 0x31, 0x76, 0x25, 0xa7, 0xd1, 0xef, - 0x6a, 0x19, 0x32, 0x7d, 0xbd, 0xf9, 0xbc, 0xde, 0x31, 0xca, 0x71, 0x2a, 0x16, 0x97, 0xea, 0x45, - 0x80, 0x96, 0xd1, 0x37, 0xac, 0x96, 0x61, 0x35, 0xcf, 0xca, 0x09, 0xb4, 0x22, 0xa7, 0x49, 0x12, - 0xf5, 0x01, 0x98, 0xef, 0x0f, 0x4f, 0xcc, 0x6e, 0xb3, 0x21, 0xa9, 0x01, 0xaa, 0xa5, 0x34, 0x85, - 0x0d, 0x6c, 0x8d, 0x94, 0xef, 0x83, 0xd2, 0x8b, 0x86, 0xfe, 0xbc, 0xac, 0x9a, 0xa7, 0xaa, 0x45, - 0x22, 0x96, 0x14, 0x37, 0xa1, 0xd0, 0x33, 0x1c, 0x07, 0x0d, 0x68, 0xb8, 0x67, 0x7d, 0xa3, 0x9c, - 0xa4, 0x4f, 0x7f, 0xd7, 0xd8, 0xd3, 0x07, 0x9f, 0x3c, 0xcf, 0x51, 0x47, 0x08, 0x52, 0xd7, 0x21, - 0x67, 0x58, 0xc3, 0x1e, 0x63, 0x48, 0x4d, 0xf0, 0x5f, 0x0d, 0x35, 0x82, 0x2c, 0x59, 0x02, 0xe3, - 0x14, 0x19, 0xc7, 0x18, 0xbc, 0xd0, 0x6d, 0x1a, 0xe5, 0x34, 0x25, 0xb8, 0x6f, 0x8c, 0xa0, 0xce, - 0xc6, 0x83, 0x1c, 0x02, 0x87, 0x8f, 0x92, 0x33, 0x6e, 0xba, 0x86, 0xe5, 0x74, 0x6d, 0xab, 0x9c, - 0xa1, 0x24, 0xf7, 0x86, 0xcc, 0xa2, 0x61, 0xb6, 0x82, 0x14, 0x23, 0x9c, 0xfa, 0x30, 0x64, 0xec, - 0xbe, 0x8b, 0xdf, 0x9c, 0x72, 0x16, 0xe7, 0x27, 0xbf, 0x76, 0x47, 0x68, 0x20, 0x1c, 0x30, 0x1d, - 0x4d, 0x28, 0xab, 0x3b, 0xa0, 0x38, 0xf6, 0x70, 0xd0, 0x34, 0x1a, 0x4d, 0xbb, 0x65, 0x34, 0xba, - 0x56, 0xdb, 0x2e, 0xe7, 0x28, 0xc1, 0xa5, 0xf1, 0x07, 0xa1, 0x8a, 0x9b, 0xa8, 0xb7, 0x83, 0x6a, - 0x5a, 0xd1, 0xf1, 0x5d, 0xab, 0x17, 0x20, 0xed, 0x9c, 0x59, 0xae, 0x7e, 0xb3, 0x5c, 0xa0, 0x11, - 0xc2, 0xaf, 0x2a, 0xff, 0x97, 0x82, 0xd2, 0x2c, 0x21, 0xf6, 0x18, 0xa4, 0xda, 0xe4, 0x29, 0x31, - 0xc0, 0xce, 0xe1, 0x03, 0x86, 0xf1, 0x3b, 0x31, 0xfd, 0x43, 0x3a, 0x71, 0x1d, 0xf2, 0x96, 0xe1, - 0xb8, 0x46, 0x8b, 0x45, 0x44, 0x62, 0xc6, 0x98, 0x02, 0x06, 0x1a, 0x0f, 0xa9, 0xe4, 0x0f, 0x15, - 0x52, 0x37, 0xa0, 0xe4, 0x99, 0xd4, 0x18, 0xe8, 0x56, 0x47, 0xc4, 0xe6, 0x6a, 0x94, 0x25, 0x2b, - 0x35, 0x81, 0xd3, 0x08, 0x4c, 0x2b, 0x1a, 0xbe, 0x6b, 0x75, 0x0b, 0xc0, 0xb6, 0x0c, 0xbb, 0x8d, - 0xcb, 0xab, 0x69, 0x62, 0x9c, 0x84, 0x7b, 0xe9, 0x80, 0xa8, 0x8c, 0x79, 0xc9, 0x66, 0xd2, 0xa6, - 0xa9, 0x3e, 0x3a, 0x0a, 0xb5, 0xcc, 0x84, 0x48, 0xd9, 0x63, 0x8b, 0x6c, 0x2c, 0xda, 0x8e, 0xa1, - 0x38, 0x30, 0x48, 0xdc, 0xa3, 0x8b, 0xd9, 0x93, 0xe5, 0xa8, 0x11, 0x2b, 0x91, 0x4f, 0xa6, 0x71, - 0x18, 0x7b, 0xb0, 0xb9, 0x81, 0x7c, 0xa9, 0xde, 0x0d, 0x9e, 0xa0, 0x41, 0xc3, 0x0a, 0x68, 0x16, - 0x2a, 0x08, 0xe1, 0x3e, 0xca, 0x96, 0xae, 0x42, 0xd1, 0xef, 0x1e, 0x75, 0x11, 0x52, 0x8e, 0xab, - 0x0f, 0x5c, 0x1a, 0x85, 0x29, 0x8d, 0x5d, 0xa8, 0x0a, 0x24, 0x30, 0xc9, 0xd0, 0x2c, 0x97, 0xd2, - 0xc8, 0xd7, 0xa5, 0x47, 0x60, 0xce, 0x77, 0xfb, 0x59, 0x81, 0x95, 0x57, 0xd2, 0xb0, 0x18, 0x16, - 0x73, 0xa1, 0xe1, 0x8f, 0xcb, 0x07, 0x23, 0xe0, 0xc4, 0x18, 0x60, 0xdc, 0x11, 0x06, 0x7e, 0x85, - 0x11, 0x95, 0x32, 0xf5, 0x13, 0xc3, 0xc4, 0x68, 0x8a, 0x5d, 0x29, 0xae, 0x3d, 0x30, 0x53, 0x54, - 0xaf, 0xec, 0x12, 0x88, 0xc6, 0x90, 0xea, 0xe3, 0x90, 0xe4, 0x29, 0x8e, 0x30, 0x2c, 0xcf, 0xc6, - 0x40, 0x62, 0x51, 0xa3, 0x38, 0xf5, 0x43, 0x90, 0x23, 0xff, 0x99, 0x6f, 0xd3, 0xd4, 0xe6, 0x2c, - 0x11, 0x10, 0xbf, 0xaa, 0x4b, 0x90, 0xa5, 0x61, 0xd6, 0x32, 0x44, 0x69, 0xf0, 0xae, 0xc9, 0xc4, - 0xb4, 0x8c, 0xb6, 0x3e, 0x34, 0xdd, 0xc6, 0x0b, 0xba, 0x39, 0x34, 0x68, 0xc0, 0xe0, 0xc4, 0x70, - 0xe1, 0x93, 0x44, 0xa6, 0x5e, 0x82, 0x3c, 0x8b, 0xca, 0x2e, 0x62, 0x6e, 0xd2, 0xec, 0x93, 0xd2, - 0x58, 0xa0, 0xee, 0x10, 0x09, 0xb9, 0xfd, 0x73, 0x0e, 0xae, 0x05, 0x3e, 0xb5, 0xf4, 0x16, 0x44, - 0x40, 0x6f, 0xff, 0x48, 0x30, 0xf1, 0xdd, 0x19, 0xfe, 0x78, 0xc1, 0x58, 0xac, 0xfc, 0x75, 0x1c, - 0x92, 0x74, 0xbd, 0x95, 0x20, 0x7f, 0xf4, 0xf4, 0x61, 0xad, 0xb1, 0x75, 0x70, 0xbc, 0xb1, 0x5b, - 0x53, 0x62, 0x6a, 0x11, 0x80, 0x0a, 0xae, 0xed, 0x1e, 0xac, 0x1f, 0x29, 0x71, 0xef, 0x7a, 0x67, - 0xff, 0xe8, 0xe1, 0x4f, 0x28, 0x09, 0x0f, 0x70, 0xcc, 0x04, 0x49, 0x59, 0xe1, 0xe3, 0x6b, 0x4a, - 0x0a, 0x23, 0xa1, 0xc0, 0x08, 0x76, 0x6e, 0xd4, 0xb6, 0x50, 0x23, 0xed, 0x97, 0xa0, 0x4e, 0x46, - 0x9d, 0x83, 0x1c, 0x95, 0x6c, 0x1c, 0x1c, 0xec, 0x2a, 0x59, 0x8f, 0xb3, 0x7e, 0xa4, 0xed, 0xec, - 0x6f, 0x2b, 0x39, 0x8f, 0x73, 0x5b, 0x3b, 0x38, 0x3e, 0x54, 0xc0, 0x63, 0xd8, 0xab, 0xd5, 0xeb, - 0xeb, 0xdb, 0x35, 0x25, 0xef, 0x69, 0x6c, 0x3c, 0x7d, 0x54, 0xab, 0x2b, 0x05, 0x9f, 0x59, 0x78, - 0x8b, 0x39, 0xef, 0x16, 0xb5, 0xfd, 0xe3, 0x3d, 0xa5, 0xa8, 0xce, 0xc3, 0x1c, 0xbb, 0x85, 0x30, - 0xa2, 0x14, 0x10, 0xa1, 0xa5, 0xca, 0xc8, 0x10, 0xc6, 0x32, 0xef, 0x13, 0xa0, 0x86, 0x5a, 0xd9, - 0x84, 0x14, 0x8d, 0x2e, 0x8c, 0xe2, 0xe2, 0xee, 0xfa, 0x46, 0x6d, 0xb7, 0x71, 0x70, 0x78, 0xb4, - 0x73, 0xb0, 0xbf, 0xbe, 0x8b, 0xbe, 0xf3, 0x64, 0x5a, 0xed, 0xa7, 0x8e, 0x77, 0xb4, 0xda, 0x16, - 0xfa, 0x4f, 0x92, 0x1d, 0xd6, 0xd6, 0x8f, 0x50, 0x96, 0xa8, 0x2c, 0xc3, 0x62, 0x58, 0x9e, 0x09, - 0x5b, 0x19, 0x95, 0x2f, 0xc7, 0x60, 0x21, 0x24, 0x65, 0x86, 0xae, 0xa2, 0x4f, 0x43, 0x8a, 0x45, - 0x1a, 0x2b, 0x22, 0xf7, 0x87, 0xe6, 0x5e, 0x1a, 0x77, 0x63, 0x85, 0x84, 0xe2, 0xe4, 0x42, 0x9a, - 0x98, 0x50, 0x48, 0x09, 0xc5, 0x58, 0x38, 0xbd, 0x1c, 0x83, 0xf2, 0x24, 0xee, 0x88, 0xf5, 0x1e, - 0xf7, 0xad, 0xf7, 0xc7, 0x82, 0x06, 0x5c, 0x9e, 0xfc, 0x0c, 0x63, 0x56, 0xbc, 0x11, 0x83, 0x0b, - 0xe1, 0xfd, 0x46, 0xa8, 0x0d, 0x8f, 0x43, 0xba, 0x67, 0xb8, 0xa7, 0xb6, 0xa8, 0xb9, 0x1f, 0x0e, - 0xc9, 0xe4, 0x64, 0x38, 0xe8, 0x2b, 0x8e, 0x92, 0x4b, 0x41, 0x62, 0x52, 0xd3, 0xc0, 0xac, 0x19, - 0xb3, 0xf4, 0x73, 0x71, 0xb8, 0x35, 0x94, 0x3c, 0xd4, 0xd0, 0x3b, 0x01, 0xba, 0x56, 0x7f, 0xe8, - 0xb2, 0xba, 0xca, 0xd2, 0x4c, 0x8e, 0x4a, 0xe8, 0x12, 0x26, 0x29, 0x64, 0xe8, 0x7a, 0xe3, 0x09, - 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0xae, 0x8e, 0x0c, 0x4d, 0x52, 0x43, 0x2f, 0x4e, 0x78, 0xd2, 0xb1, - 0x92, 0xf5, 0x20, 0x28, 0x4d, 0xb3, 0x6b, 0x58, 0x6e, 0xc3, 0x71, 0x07, 0x86, 0xde, 0xeb, 0x5a, - 0x1d, 0x9a, 0x47, 0xb3, 0xd5, 0x54, 0x5b, 0x37, 0x1d, 0x43, 0x2b, 0xb1, 0xe1, 0xba, 0x18, 0x25, - 0x08, 0x5a, 0x2c, 0x06, 0x12, 0x22, 0xed, 0x43, 0xb0, 0x61, 0x0f, 0x51, 0xf9, 0x97, 0x0c, 0xe4, - 0xa5, 0xee, 0x4c, 0xbd, 0x0c, 0x85, 0xe7, 0xf4, 0x17, 0xf4, 0x86, 0xe8, 0xb8, 0x99, 0x27, 0xf2, - 0x44, 0x76, 0xc8, 0xbb, 0xee, 0x07, 0x61, 0x91, 0xaa, 0xe0, 0x33, 0xe2, 0x8d, 0x9a, 0xa6, 0xee, - 0x38, 0xd4, 0x69, 0x59, 0xaa, 0xaa, 0x92, 0xb1, 0x03, 0x32, 0xb4, 0x29, 0x46, 0xd4, 0x87, 0x60, - 0x81, 0x22, 0x7a, 0x98, 0x78, 0xbb, 0x7d, 0xd3, 0x68, 0x90, 0x3d, 0x80, 0x43, 0xf3, 0xa9, 0x67, - 0xd9, 0x3c, 0xd1, 0xd8, 0xe3, 0x0a, 0xc4, 0x22, 0x47, 0xdd, 0x86, 0x3b, 0x29, 0xac, 0x63, 0x58, - 0xc6, 0x40, 0x77, 0x8d, 0x86, 0xf1, 0xb3, 0x43, 0xd4, 0x6d, 0xe8, 0x56, 0xab, 0x71, 0xaa, 0x3b, - 0xa7, 0xe5, 0x45, 0x99, 0xe0, 0x76, 0xa2, 0xbb, 0xcd, 0x55, 0x6b, 0x54, 0x73, 0xdd, 0x6a, 0x5d, - 0x47, 0x3d, 0xb5, 0x0a, 0x17, 0x28, 0x11, 0x3a, 0x05, 0x9f, 0xb9, 0xd1, 0x3c, 0x35, 0x9a, 0xcf, - 0x37, 0x86, 0x6e, 0xfb, 0x6a, 0xf9, 0x43, 0x32, 0x03, 0x35, 0xb2, 0x4e, 0x75, 0x36, 0x89, 0xca, - 0x31, 0x6a, 0xa8, 0x75, 0x28, 0x90, 0xf9, 0xe8, 0x75, 0x3f, 0x8b, 0x66, 0xdb, 0x03, 0x5a, 0x23, - 0x8a, 0x21, 0x8b, 0x5b, 0x72, 0xe2, 0xca, 0x01, 0x07, 0xec, 0x61, 0x7f, 0x5a, 0x4d, 0xd5, 0x0f, - 0x6b, 0xb5, 0x2d, 0x2d, 0x2f, 0x58, 0xae, 0xd9, 0x03, 0x12, 0x53, 0x1d, 0xdb, 0xf3, 0x71, 0x9e, - 0xc5, 0x54, 0xc7, 0x16, 0x1e, 0x46, 0x7f, 0x35, 0x9b, 0xec, 0xb1, 0x71, 0xef, 0xc2, 0x9b, 0x75, - 0xa7, 0xac, 0xf8, 0xfc, 0xd5, 0x6c, 0x6e, 0x33, 0x05, 0x1e, 0xe6, 0x0e, 0x2e, 0x89, 0x5b, 0x47, - 0xfe, 0x92, 0x81, 0xf3, 0x63, 0x4f, 0x19, 0x84, 0xe2, 0x1d, 0xfb, 0x67, 0xe3, 0x40, 0xd5, 0x77, - 0xc7, 0xfe, 0x59, 0x10, 0x76, 0x2f, 0xdd, 0x80, 0x0d, 0x8c, 0x26, 0xba, 0xbc, 0x55, 0xbe, 0x4d, - 0xd6, 0x96, 0x06, 0xd4, 0x55, 0x0c, 0xe4, 0x66, 0xc3, 0xb0, 0xf4, 0x13, 0x9c, 0x7b, 0x7d, 0x80, - 0x5f, 0x9c, 0xf2, 0x25, 0x59, 0xb9, 0xd8, 0x6c, 0xd6, 0xe8, 0xe8, 0x3a, 0x1d, 0x54, 0x97, 0x61, - 0xde, 0x3e, 0x79, 0xae, 0xc9, 0x82, 0xab, 0x81, 0x3c, 0xed, 0xee, 0xcd, 0xf2, 0x3d, 0xd4, 0x4d, - 0x25, 0x32, 0x40, 0x43, 0xeb, 0x90, 0x8a, 0xd5, 0xfb, 0x91, 0xdc, 0x39, 0xd5, 0x07, 0x7d, 0x5a, - 0xa4, 0x1d, 0x74, 0xaa, 0x51, 0xbe, 0x97, 0xa9, 0x32, 0xf9, 0xbe, 0x10, 0xab, 0x35, 0xb8, 0x44, - 0x1e, 0xde, 0xd2, 0x2d, 0xbb, 0x31, 0x74, 0x8c, 0xc6, 0xc8, 0x44, 0x6f, 0x2e, 0x3e, 0x4c, 0xcc, - 0xd2, 0xee, 0x10, 0x6a, 0xc7, 0x0e, 0x26, 0x33, 0xa1, 0x24, 0xa6, 0xe7, 0x06, 0x2c, 0x0e, 0xad, - 0xae, 0x85, 0x21, 0x8e, 0x23, 0x04, 0xcc, 0x16, 0x6c, 0xf9, 0xdf, 0x32, 0x13, 0x9a, 0xee, 0x63, - 0x59, 0x9b, 0x05, 0x89, 0xb6, 0x30, 0x1c, 0x17, 0x56, 0xaa, 0x50, 0x90, 0x63, 0x47, 0xcd, 0x01, - 0x8b, 0x1e, 0xac, 0x6e, 0x58, 0x51, 0x37, 0x0f, 0xb6, 0x48, 0x2d, 0x7c, 0xa6, 0x86, 0x85, 0x0d, - 0x6b, 0xf2, 0xee, 0xce, 0x51, 0xad, 0xa1, 0x1d, 0xef, 0x1f, 0xed, 0xec, 0xd5, 0x94, 0xc4, 0x72, - 0x2e, 0xfb, 0x76, 0x46, 0x79, 0x09, 0xff, 0xe2, 0x95, 0x6f, 0xc4, 0xa1, 0xe8, 0xef, 0x83, 0xd5, - 0x4f, 0xc2, 0x6d, 0x62, 0xd3, 0xea, 0x18, 0x6e, 0xe3, 0xc5, 0xee, 0x80, 0x86, 0x73, 0x4f, 0x67, - 0x9d, 0xa4, 0x37, 0x13, 0x8b, 0x5c, 0x0b, 0xb7, 0xf7, 0x4f, 0xa1, 0xce, 0x35, 0xaa, 0xa2, 0xee, - 0xc2, 0x25, 0x74, 0x19, 0xf6, 0x9a, 0x56, 0x4b, 0x1f, 0xb4, 0x1a, 0xa3, 0xe3, 0x82, 0x86, 0xde, - 0xc4, 0x38, 0x70, 0x6c, 0x56, 0x49, 0x3c, 0x96, 0x3b, 0x2c, 0xbb, 0xce, 0x95, 0x47, 0x29, 0x76, - 0x9d, 0xab, 0x06, 0xa2, 0x26, 0x31, 0x29, 0x6a, 0xb0, 0xf7, 0xea, 0xe9, 0x7d, 0x0c, 0x1b, 0x77, - 0x70, 0x46, 0xbb, 0xb7, 0xac, 0x96, 0x45, 0x41, 0x8d, 0x5c, 0xff, 0xe8, 0xe6, 0x40, 0xf6, 0xe3, - 0xb7, 0x13, 0x50, 0x90, 0x3b, 0x38, 0xd2, 0x10, 0x37, 0x69, 0x9a, 0x8f, 0xd1, 0x2c, 0x70, 0xf7, - 0xd4, 0x7e, 0x6f, 0x65, 0x93, 0xe4, 0xff, 0x6a, 0x9a, 0xf5, 0x55, 0x1a, 0x43, 0x92, 0xda, 0x4b, - 0x62, 0xcd, 0x60, 0xdd, 0x7a, 0x56, 0xe3, 0x57, 0x98, 0xec, 0xd2, 0xcf, 0x39, 0x94, 0x3b, 0x4d, - 0xb9, 0xef, 0x99, 0xce, 0xfd, 0x44, 0x9d, 0x92, 0xe7, 0x9e, 0xa8, 0x37, 0xf6, 0x0f, 0xb4, 0xbd, - 0xf5, 0x5d, 0x8d, 0xc3, 0xd5, 0xdb, 0x21, 0x69, 0xea, 0x9f, 0x3d, 0xf3, 0x57, 0x0a, 0x2a, 0x9a, - 0xd5, 0xf1, 0xc8, 0x40, 0x8e, 0x3c, 0xfc, 0xf9, 0x99, 0x8a, 0x7e, 0x84, 0xa1, 0xbf, 0x0a, 0x29, - 0xea, 0x2f, 0x15, 0x80, 0x7b, 0x4c, 0xb9, 0x45, 0xcd, 0x42, 0x72, 0xf3, 0x40, 0x23, 0xe1, 0x8f, - 0xf1, 0xce, 0xa4, 0x8d, 0xc3, 0x9d, 0xda, 0x26, 0xae, 0x80, 0xca, 0x43, 0x90, 0x66, 0x4e, 0x20, - 0x4b, 0xc3, 0x73, 0x03, 0x82, 0xd8, 0x25, 0xe7, 0x88, 0x89, 0xd1, 0xe3, 0xbd, 0x8d, 0x9a, 0xa6, - 0xc4, 0xe5, 0xe9, 0xfd, 0xdb, 0x18, 0xe4, 0xa5, 0x86, 0x8a, 0x94, 0x72, 0xdd, 0x34, 0xed, 0x17, - 0x1b, 0xba, 0xd9, 0xc5, 0x0c, 0xc5, 0xe6, 0x07, 0xa8, 0x68, 0x9d, 0x48, 0x66, 0xf5, 0xdf, 0x8f, - 0x25, 0x36, 0xbf, 0x14, 0x03, 0x25, 0xd8, 0x8c, 0x05, 0x0c, 0x8c, 0xfd, 0x44, 0x0d, 0x7c, 0x2d, - 0x06, 0x45, 0x7f, 0x07, 0x16, 0x30, 0xef, 0xf2, 0x4f, 0xd4, 0xbc, 0x2f, 0xc4, 0x60, 0xce, 0xd7, - 0x77, 0xbd, 0xaf, 0xac, 0x7b, 0x35, 0x01, 0x0b, 0x21, 0x38, 0x4c, 0x40, 0xac, 0x41, 0x65, 0x3d, - 0xf3, 0x47, 0x67, 0xb9, 0xd7, 0x0a, 0xa9, 0x7f, 0x87, 0xfa, 0xc0, 0xe5, 0xfd, 0x2c, 0xd6, 0xcb, - 0x6e, 0x0b, 0x93, 0x6a, 0xb7, 0xdd, 0xc5, 0xf6, 0x8d, 0xed, 0x58, 0x58, 0xd7, 0x5a, 0x1a, 0xc9, - 0xd9, 0xf6, 0xf8, 0x23, 0xa0, 0xf6, 0x6d, 0xa7, 0xeb, 0x76, 0x5f, 0x20, 0xc7, 0x73, 0x62, 0x23, - 0x4d, 0xba, 0xd8, 0xa4, 0xa6, 0x88, 0x91, 0x1d, 0xcb, 0xf5, 0xb4, 0x2d, 0xa3, 0xa3, 0x07, 0xb4, - 0x49, 0x1a, 0x4a, 0x68, 0x8a, 0x18, 0xf1, 0xb4, 0xb1, 0xd1, 0x6c, 0xd9, 0x43, 0xd2, 0x10, 0x30, - 0x3d, 0x92, 0xf5, 0x62, 0x5a, 0x9e, 0xc9, 0x3c, 0x15, 0xde, 0xb1, 0x8d, 0x76, 0xf0, 0x05, 0x2d, - 0xcf, 0x64, 0x4c, 0xe5, 0x3e, 0x28, 0xe9, 0x9d, 0xce, 0x80, 0x90, 0x0b, 0x22, 0xd6, 0x86, 0x16, - 0x3d, 0x31, 0x55, 0x5c, 0x7a, 0x02, 0xb2, 0xc2, 0x0f, 0xa4, 0xb0, 0x10, 0x4f, 0x60, 0xcd, 0xa7, - 0xe7, 0x28, 0x71, 0xb2, 0xa9, 0xb7, 0xc4, 0x20, 0xde, 0xb4, 0xeb, 0x34, 0x46, 0x07, 0x7a, 0x71, - 0x1c, 0xcf, 0x6a, 0xf9, 0xae, 0xe3, 0x9d, 0xe0, 0x54, 0xde, 0xc0, 0xf2, 0xea, 0x3f, 0x90, 0x54, - 0xb7, 0x20, 0x6b, 0xda, 0x18, 0x1f, 0x04, 0xc1, 0x4e, 0xc3, 0xaf, 0x44, 0x9c, 0x61, 0xae, 0xec, - 0x72, 0x7d, 0xcd, 0x43, 0x2e, 0xfd, 0x63, 0x0c, 0xb2, 0x42, 0x8c, 0x85, 0x22, 0xd9, 0xd7, 0xdd, - 0x53, 0x4a, 0x97, 0xda, 0x88, 0x2b, 0x31, 0x8d, 0x5e, 0x13, 0x39, 0x76, 0x33, 0x16, 0x0d, 0x01, - 0x2e, 0x27, 0xd7, 0x64, 0x5e, 0x4d, 0x43, 0x6f, 0xd1, 0x06, 0xd7, 0xee, 0xf5, 0x70, 0x26, 0x1d, - 0x31, 0xaf, 0x5c, 0xbe, 0xc9, 0xc5, 0xe4, 0x5c, 0xdc, 0x1d, 0xe8, 0x5d, 0xd3, 0xa7, 0x9b, 0xa4, - 0xba, 0x8a, 0x18, 0xf0, 0x94, 0xab, 0x70, 0xbb, 0xe0, 0x6d, 0x19, 0xae, 0x8e, 0xcd, 0x73, 0x6b, - 0x04, 0x4a, 0xd3, 0xd3, 0xae, 0xdb, 0xb8, 0xc2, 0x16, 0x1f, 0x17, 0xd8, 0x8d, 0x1b, 0xd8, 0xc8, - 0xda, 0xbd, 0xa0, 0x27, 0x36, 0x94, 0xc0, 0xbe, 0xcb, 0xb9, 0x1e, 0x7b, 0x06, 0x46, 0x4d, 0xc5, - 0x97, 0xe3, 0x89, 0xed, 0xc3, 0x8d, 0x37, 0xe3, 0x4b, 0xdb, 0x0c, 0x77, 0x28, 0x3c, 0xa8, 0x19, - 0x6d, 0xd3, 0x68, 0x12, 0xef, 0xc0, 0xeb, 0x77, 0xc3, 0x47, 0x3b, 0x5d, 0xf7, 0x74, 0x78, 0xb2, - 0x82, 0x77, 0x58, 0xed, 0xd8, 0x1d, 0x7b, 0xf4, 0x73, 0x06, 0xb9, 0xa2, 0x17, 0xf4, 0x1b, 0xff, - 0x49, 0x23, 0xe7, 0x49, 0x97, 0x22, 0x7f, 0xff, 0xa8, 0xee, 0xc3, 0x02, 0x57, 0x6e, 0xd0, 0x33, - 0x55, 0xd6, 0x82, 0xaa, 0x53, 0x37, 0xe4, 0xe5, 0xaf, 0xbd, 0x45, 0x4b, 0x82, 0x36, 0xcf, 0xa1, - 0x64, 0x8c, 0x35, 0xa9, 0x55, 0x0d, 0x6e, 0xf5, 0xf1, 0xb1, 0x18, 0xc6, 0x2d, 0xf7, 0x74, 0xc6, - 0x6f, 0x70, 0xc6, 0x05, 0x89, 0xb1, 0xce, 0xa1, 0xd5, 0x4d, 0x98, 0x3b, 0x0f, 0xd7, 0xdf, 0x73, - 0xae, 0x82, 0x21, 0x93, 0x6c, 0x43, 0x89, 0x92, 0x34, 0x87, 0x8e, 0x6b, 0xf7, 0x68, 0x82, 0x98, - 0x4e, 0xf3, 0x0f, 0x6f, 0xb1, 0xa0, 0x2a, 0x12, 0xd8, 0xa6, 0x87, 0xaa, 0x3e, 0x09, 0x8b, 0x44, - 0x42, 0xd7, 0xa0, 0xcc, 0x16, 0x7d, 0x84, 0x50, 0xfe, 0xe7, 0x97, 0x59, 0xec, 0x2d, 0x78, 0x04, - 0x12, 0xaf, 0x34, 0x13, 0x1d, 0xc3, 0xc5, 0xdc, 0x86, 0xfb, 0x3f, 0xd3, 0x54, 0xa7, 0xfe, 0xc6, - 0x50, 0xfe, 0xfc, 0xf7, 0xfd, 0x33, 0xb1, 0xcd, 0x90, 0xeb, 0xa6, 0x59, 0x3d, 0x86, 0xdb, 0x42, - 0x66, 0x76, 0x06, 0xce, 0x57, 0x39, 0xe7, 0xe2, 0xd8, 0xec, 0x12, 0xda, 0x43, 0x10, 0x72, 0x6f, - 0x3e, 0x66, 0xe0, 0xfc, 0x02, 0xe7, 0x54, 0x39, 0x56, 0x4c, 0x0b, 0x61, 0x7c, 0x02, 0xe6, 0x71, - 0xa7, 0x7e, 0x62, 0x3b, 0x7c, 0xdf, 0x3b, 0x03, 0xdd, 0x6b, 0x9c, 0xae, 0xc4, 0x81, 0x74, 0x17, - 0x4c, 0xb8, 0x1e, 0x85, 0x6c, 0x1b, 0x37, 0x40, 0x33, 0x50, 0x7c, 0x91, 0x53, 0x64, 0x88, 0x3e, - 0x81, 0xae, 0x43, 0xa1, 0x63, 0xf3, 0x34, 0x1c, 0x0d, 0xff, 0x12, 0x87, 0xe7, 0x05, 0x86, 0x53, - 0xf4, 0xed, 0xfe, 0xd0, 0x24, 0x39, 0x3a, 0x9a, 0xe2, 0x77, 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x73, - 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x23, 0xf9, 0xf3, 0xd3, 0xe4, 0xac, 0xd7, 0x3c, 0xb3, 0xad, 0x59, - 0x8c, 0x78, 0x9d, 0x33, 0x00, 0x87, 0x10, 0x82, 0xc7, 0x20, 0x37, 0xeb, 0x44, 0xfc, 0x3e, 0x87, - 0x67, 0x0d, 0x31, 0x03, 0xb8, 0xce, 0x44, 0x92, 0x21, 0xbf, 0xad, 0x44, 0x53, 0xfc, 0x01, 0xa7, - 0x28, 0x4a, 0x30, 0xfe, 0x18, 0xae, 0xe1, 0xb8, 0xb8, 0x55, 0x9f, 0x81, 0xe4, 0x0d, 0xf1, 0x18, - 0x1c, 0xc2, 0x5d, 0x79, 0x62, 0x58, 0xcd, 0xd3, 0xd9, 0x18, 0xbe, 0x22, 0x5c, 0x29, 0x30, 0x84, - 0x02, 0x33, 0x4f, 0x4f, 0x1f, 0xe0, 0xe6, 0xda, 0x9c, 0x69, 0x3a, 0xfe, 0x90, 0x73, 0x14, 0x3c, - 0x10, 0xf7, 0xc8, 0xd0, 0x3a, 0x0f, 0xcd, 0x9b, 0xc2, 0x23, 0x12, 0x8c, 0x2f, 0x3d, 0xdc, 0x99, - 0x92, 0x4e, 0xe2, 0x3c, 0x6c, 0x7f, 0x24, 0x96, 0x1e, 0xc3, 0xee, 0xc9, 0x8c, 0x38, 0xd3, 0x0e, - 0x6e, 0xc1, 0x67, 0xa1, 0xf9, 0x63, 0x31, 0xd3, 0x14, 0x40, 0xc0, 0x4f, 0xc3, 0xed, 0xa1, 0xa9, - 0x7e, 0x06, 0xb2, 0x3f, 0xe1, 0x64, 0x17, 0x42, 0xd2, 0x3d, 0x4f, 0x09, 0xe7, 0xa5, 0xfc, 0x53, - 0x91, 0x12, 0x8c, 0x00, 0xd7, 0x21, 0x69, 0x63, 0x1d, 0xbd, 0x7d, 0x3e, 0xaf, 0xfd, 0x99, 0xf0, - 0x1a, 0xc3, 0xfa, 0xbc, 0x76, 0x04, 0x17, 0x38, 0xe3, 0xf9, 0xe6, 0xf5, 0xab, 0x22, 0xb1, 0x32, - 0xf4, 0xb1, 0x7f, 0x76, 0x7f, 0x1a, 0x96, 0x3c, 0x77, 0x8a, 0x0e, 0xcc, 0x69, 0x90, 0x83, 0x81, - 0x68, 0xe6, 0xaf, 0x71, 0x66, 0x91, 0xf1, 0xbd, 0x16, 0xce, 0xd9, 0xd3, 0xfb, 0x84, 0xfc, 0x06, - 0x94, 0x05, 0xf9, 0xd0, 0xc2, 0x06, 0xdf, 0xee, 0x58, 0x38, 0x8d, 0xad, 0x19, 0xa8, 0xff, 0x3c, - 0x30, 0x55, 0xc7, 0x12, 0x9c, 0x30, 0xef, 0x80, 0xe2, 0xf5, 0x1b, 0x8d, 0x6e, 0xaf, 0x6f, 0x63, - 0x6b, 0x39, 0x9d, 0xf1, 0x2f, 0xc4, 0x4c, 0x79, 0xb8, 0x1d, 0x0a, 0xab, 0xd6, 0xa0, 0x48, 0x2f, - 0x67, 0x0d, 0xc9, 0xbf, 0xe4, 0x44, 0x73, 0x23, 0x14, 0x4f, 0x1c, 0xd8, 0x29, 0x61, 0xcf, 0x3b, - 0x4b, 0xfe, 0xfb, 0x2b, 0x91, 0x38, 0x38, 0x84, 0x45, 0x5f, 0x29, 0x50, 0x89, 0xd5, 0xa8, 0x9f, - 0x5f, 0xcb, 0x3f, 0xf7, 0x2e, 0x5f, 0xb3, 0xfe, 0x42, 0x5c, 0xdd, 0x25, 0xee, 0xf1, 0x97, 0xcb, - 0x68, 0xb2, 0x97, 0xdf, 0xf5, 0x3c, 0xe4, 0xab, 0x96, 0xd5, 0x6b, 0x30, 0xe7, 0x2b, 0x95, 0xd1, - 0x54, 0x3f, 0xcf, 0xa9, 0x0a, 0x72, 0xa5, 0xac, 0x3e, 0x04, 0x49, 0x52, 0xf6, 0xa2, 0xe1, 0xbf, - 0xc0, 0xe1, 0x54, 0xbd, 0xfa, 0x29, 0xc8, 0x8a, 0x72, 0x17, 0x0d, 0xfd, 0x45, 0x0e, 0xf5, 0x20, - 0x04, 0x2e, 0x4a, 0x5d, 0x34, 0xfc, 0x97, 0x04, 0x5c, 0x40, 0x08, 0x7c, 0x76, 0x17, 0x7e, 0xfd, - 0x97, 0x93, 0x3c, 0x5d, 0x09, 0xdf, 0x91, 0xdf, 0x7c, 0x58, 0x8d, 0x8b, 0x46, 0x7f, 0x8e, 0xdf, - 0x5c, 0x20, 0xaa, 0x8f, 0x40, 0x6a, 0x46, 0x87, 0xff, 0x0a, 0x87, 0x32, 0x7d, 0xac, 0x20, 0x79, - 0xa9, 0xae, 0x45, 0xc3, 0x7f, 0x95, 0xc3, 0x65, 0x14, 0x31, 0x9d, 0xd7, 0xb5, 0x68, 0x82, 0x5f, - 0x13, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0x28, 0x69, 0xd1, 0xe8, 0x5f, 0x17, 0x5e, 0x17, 0x10, 0x5c, - 0x4d, 0x39, 0x2f, 0x4d, 0x45, 0xe3, 0x7f, 0x83, 0xe3, 0x47, 0x18, 0xe2, 0x01, 0x29, 0x4d, 0x46, - 0x53, 0xfc, 0xa6, 0xf0, 0x80, 0x84, 0x22, 0xcb, 0x28, 0x58, 0xfa, 0xa2, 0x99, 0x7e, 0x4b, 0x2c, - 0xa3, 0x40, 0xe5, 0x23, 0xb3, 0x49, 0xb3, 0x45, 0x34, 0xc5, 0x6f, 0x8b, 0xd9, 0xa4, 0xfa, 0xc4, - 0x8c, 0x60, 0x2d, 0x89, 0xe6, 0xf8, 0x1d, 0x61, 0x46, 0xa0, 0x94, 0x60, 0x65, 0x52, 0xc7, 0xeb, - 0x48, 0x34, 0xdf, 0x2b, 0x9c, 0x6f, 0x7e, 0xac, 0x8c, 0x54, 0x9f, 0x82, 0x0b, 0xe1, 0x35, 0x24, - 0x9a, 0xf5, 0xf3, 0xef, 0x06, 0xba, 0x7e, 0xb9, 0x84, 0x60, 0xc9, 0x5b, 0x0c, 0xab, 0x1f, 0xd1, - 0xb4, 0xaf, 0xbe, 0xeb, 0xdf, 0xd8, 0xc9, 0xe5, 0x03, 0x3b, 0x34, 0x18, 0xa5, 0xee, 0x68, 0xae, - 0xd7, 0x38, 0x97, 0x04, 0x22, 0x4b, 0x83, 0x67, 0xee, 0x68, 0xfc, 0x17, 0xc5, 0xd2, 0xe0, 0x08, - 0x04, 0x67, 0xad, 0xa1, 0x69, 0x92, 0xe0, 0x50, 0xa7, 0xbf, 0xd2, 0x50, 0xfe, 0xf7, 0xf7, 0xf8, - 0xc2, 0x10, 0x00, 0xcc, 0xa1, 0x29, 0xa3, 0x77, 0x82, 0x3e, 0x88, 0x40, 0xfe, 0xc7, 0x7b, 0x22, - 0x21, 0x10, 0x6d, 0x5c, 0x4f, 0xc0, 0x36, 0x8d, 0xf4, 0x0c, 0x3b, 0x02, 0xfb, 0x9f, 0xef, 0xf1, - 0x9f, 0x59, 0x47, 0x90, 0x11, 0x01, 0xfb, 0xd1, 0x76, 0x3a, 0xc1, 0xf7, 0xfd, 0x04, 0x74, 0xa3, - 0xf9, 0x28, 0x64, 0xc8, 0x9b, 0x1d, 0xae, 0xde, 0x89, 0x42, 0xff, 0x17, 0x47, 0x0b, 0x7d, 0xe2, - 0xb0, 0x9e, 0x3d, 0x30, 0xf0, 0xab, 0x13, 0x85, 0xfd, 0x6f, 0x8e, 0xf5, 0x00, 0x04, 0xdc, 0xd4, - 0x1d, 0x77, 0x96, 0xe7, 0xfe, 0x1f, 0x01, 0x16, 0x00, 0x62, 0x34, 0xf9, 0xfe, 0xbc, 0x71, 0x16, - 0x85, 0x7d, 0x47, 0x18, 0xcd, 0xf5, 0x31, 0x01, 0xe6, 0xc8, 0x57, 0xf6, 0xea, 0x41, 0x04, 0xf8, - 0x7f, 0x39, 0x78, 0x84, 0xd8, 0xb8, 0x1c, 0x7e, 0xb4, 0x03, 0xdb, 0xf6, 0xb6, 0xcd, 0x0e, 0x75, - 0xe0, 0xcd, 0x2b, 0x50, 0x41, 0x1d, 0xac, 0xaf, 0xab, 0x6c, 0x4d, 0x9e, 0xd8, 0xee, 0xe9, 0x2a, - 0x2e, 0x3b, 0x87, 0xaa, 0xaf, 0xf1, 0x83, 0x99, 0x3c, 0xbf, 0x22, 0x03, 0x4b, 0xe7, 0x3b, 0xd4, - 0xa9, 0xdc, 0x09, 0x73, 0xd7, 0x4c, 0x5b, 0x77, 0xb1, 0x96, 0x1d, 0xda, 0x5d, 0xcb, 0x55, 0x0b, - 0x10, 0x6b, 0xd3, 0x83, 0xef, 0x98, 0x16, 0x6b, 0x57, 0xbe, 0xa5, 0x42, 0x06, 0x5b, 0x17, 0x5c, - 0xaa, 0x8e, 0xfa, 0x34, 0xcc, 0xb3, 0x86, 0xe1, 0xc8, 0xde, 0xa2, 0x87, 0x8c, 0x28, 0xe5, 0x67, - 0x75, 0x0f, 0xac, 0x48, 0x26, 0xac, 0x70, 0xc0, 0xca, 0x98, 0x36, 0xfd, 0xe5, 0x49, 0x9b, 0x77, - 0x82, 0x72, 0xf5, 0x49, 0x50, 0x84, 0x32, 0xb5, 0x86, 0x30, 0xb3, 0x13, 0xda, 0xe5, 0xa9, 0xcc, - 0x42, 0x99, 0x11, 0x2b, 0x4e, 0x40, 0xac, 0x3e, 0x0e, 0xd9, 0x1d, 0xcb, 0xfd, 0xf8, 0x1a, 0xe1, - 0x63, 0x6f, 0x04, 0x56, 0x42, 0xf9, 0x84, 0x12, 0xe3, 0xc9, 0x76, 0xf9, 0x25, 0xc7, 0x3f, 0xfc, - 0x09, 0x82, 0x4f, 0x4e, 0xc7, 0x53, 0xa5, 0x11, 0x9e, 0x5e, 0x92, 0x37, 0x0a, 0x8f, 0x05, 0x19, - 0x7f, 0x11, 0xf0, 0xee, 0x50, 0x02, 0x4f, 0x8b, 0x31, 0xe4, 0x86, 0x9e, 0x09, 0x9c, 0x82, 0xd9, - 0x90, 0x8e, 0xa0, 0x90, 0x8c, 0xa0, 0x14, 0x9e, 0x15, 0x75, 0xcf, 0x8a, 0xcc, 0x14, 0x8a, 0x7a, - 0xc0, 0x0a, 0x47, 0xb6, 0xa2, 0xee, 0x59, 0x91, 0x8d, 0xa0, 0x90, 0xad, 0x70, 0x3c, 0x2b, 0xb6, - 0x00, 0xae, 0x75, 0x6f, 0x1a, 0x2d, 0x66, 0x46, 0x8e, 0x9f, 0xf5, 0x87, 0x71, 0x8c, 0xd4, 0x18, - 0x09, 0xb4, 0x3d, 0x81, 0xba, 0x0d, 0xf9, 0xfa, 0xe8, 0x92, 0xbe, 0x2c, 0x48, 0xde, 0x83, 0x0c, - 0x35, 0xa5, 0x1d, 0xe0, 0xc9, 0x3b, 0x12, 0x91, 0x30, 0x87, 0x3d, 0x52, 0x3e, 0xca, 0x1c, 0xe9, - 0x99, 0x98, 0x39, 0xec, 0xa1, 0x3c, 0x73, 0x18, 0x4d, 0x21, 0xd2, 0x1c, 0x89, 0x87, 0x9b, 0xc3, - 0x88, 0xb0, 0xde, 0x6c, 0xd8, 0x36, 0xd1, 0x2c, 0xcf, 0x51, 0x92, 0xcb, 0xa1, 0x24, 0x5c, 0x87, - 0x11, 0x64, 0x4e, 0xd8, 0x15, 0x9d, 0x1d, 0x1a, 0xfa, 0x04, 0x5e, 0x9c, 0x36, 0x3b, 0x42, 0x4b, - 0xcc, 0x8e, 0xb8, 0x96, 0x57, 0xe0, 0xc6, 0x19, 0xb6, 0x78, 0x84, 0xa9, 0x34, 0xc3, 0x0a, 0x14, - 0xca, 0x81, 0x15, 0x28, 0xc4, 0x6a, 0x1d, 0x4a, 0x42, 0x95, 0x6c, 0xc6, 0x09, 0xad, 0xc2, 0xdf, - 0xee, 0x9a, 0x46, 0xcb, 0x75, 0x19, 0x6b, 0xc9, 0xf1, 0x4b, 0xd5, 0x43, 0x28, 0x0a, 0xc5, 0x3d, - 0x87, 0x3e, 0xf4, 0x3c, 0xff, 0xc9, 0x60, 0x1a, 0x27, 0x53, 0x65, 0x94, 0x45, 0xc7, 0x27, 0x5c, - 0xda, 0x82, 0x0b, 0xe1, 0xd9, 0x8a, 0xbc, 0x19, 0x8a, 0xc9, 0x9e, 0xbf, 0xc6, 0x43, 0xbe, 0x92, - 0x37, 0x48, 0xc5, 0x6b, 0x6a, 0x24, 0x4b, 0xb2, 0x8b, 0x6a, 0xfc, 0x6a, 0x6c, 0x69, 0x13, 0x6e, - 0x0d, 0xcd, 0x4c, 0x51, 0x24, 0x71, 0x99, 0xe4, 0x31, 0x98, 0xf3, 0xa5, 0x23, 0x19, 0x9c, 0x0a, - 0x01, 0xa7, 0xc6, 0xc1, 0xa3, 0x20, 0x93, 0xc1, 0x89, 0x10, 0x70, 0x42, 0x06, 0x7f, 0x12, 0x8a, - 0xfe, 0x3c, 0x24, 0xa3, 0xe7, 0x42, 0xd0, 0x73, 0x21, 0xe8, 0xf0, 0x7b, 0x27, 0x43, 0xd0, 0xc9, - 0x00, 0xba, 0x3e, 0xf1, 0xde, 0xf3, 0x21, 0xe8, 0xf9, 0x10, 0x74, 0xf8, 0xbd, 0xd5, 0x10, 0xb4, - 0x2a, 0xa3, 0x3f, 0x05, 0xa5, 0x40, 0xca, 0x91, 0xe1, 0x99, 0x10, 0x78, 0x46, 0x86, 0x3f, 0x8e, - 0x4b, 0xa7, 0x3d, 0x19, 0x5f, 0x0a, 0xc1, 0x97, 0xc2, 0x6e, 0x1f, 0x6e, 0x7d, 0x3a, 0x04, 0x9e, - 0x0e, 0xbd, 0x7d, 0x38, 0x5e, 0x09, 0xc1, 0x2b, 0x32, 0xbe, 0x0a, 0x05, 0x39, 0xab, 0xc8, 0xd8, - 0x6c, 0x08, 0x36, 0x1b, 0xf4, 0xbb, 0x2f, 0xa5, 0x44, 0x45, 0x7a, 0x6e, 0xc2, 0x72, 0xf1, 0xa5, - 0x91, 0x28, 0x92, 0x82, 0x4c, 0x72, 0x03, 0x16, 0xc3, 0x92, 0x46, 0x08, 0xc7, 0xb2, 0xcc, 0x51, - 0x5c, 0x5b, 0xf4, 0x25, 0x0b, 0x8a, 0x1b, 0xf6, 0x64, 0xe6, 0x67, 0x61, 0x21, 0x24, 0x75, 0x84, - 0x10, 0x3f, 0x28, 0x13, 0xe7, 0xd7, 0x96, 0x7c, 0xc4, 0xbe, 0xee, 0x4a, 0xa2, 0xaf, 0x7c, 0x7b, - 0x01, 0x8a, 0x3c, 0x45, 0x1d, 0x0c, 0x5a, 0xc6, 0x00, 0x3b, 0xfe, 0x9f, 0x99, 0xdc, 0x61, 0xad, - 0x85, 0xa5, 0x36, 0x8e, 0x3b, 0x47, 0xa3, 0xf5, 0xec, 0xc4, 0x46, 0xeb, 0x63, 0xb3, 0xdc, 0x20, - 0xaa, 0xdf, 0xaa, 0x8d, 0xf5, 0x5b, 0xf7, 0x4f, 0xa3, 0x9d, 0xd4, 0x76, 0xd5, 0xc6, 0xda, 0xae, - 0x28, 0x9a, 0xd0, 0xee, 0xeb, 0xfa, 0x78, 0xf7, 0xb5, 0x3c, 0x8d, 0x67, 0x72, 0x13, 0x76, 0x7d, - 0xbc, 0x09, 0x8b, 0x64, 0x0a, 0xef, 0xc5, 0xae, 0x8f, 0xf7, 0x62, 0x53, 0x99, 0x26, 0xb7, 0x64, - 0xd7, 0xc7, 0x5b, 0xb2, 0x48, 0xa6, 0xf0, 0xce, 0xec, 0x33, 0x21, 0x9d, 0xd9, 0x03, 0xd3, 0xa8, - 0xa6, 0x35, 0x68, 0xfb, 0x61, 0x0d, 0xda, 0x47, 0xa6, 0x1a, 0x36, 0xb5, 0x4f, 0xfb, 0x4c, 0x48, - 0x9f, 0x16, 0x6d, 0xdc, 0x84, 0x76, 0x6d, 0x3f, 0xac, 0x5d, 0x9b, 0xc1, 0xb8, 0x49, 0x5d, 0xdb, - 0x46, 0xb0, 0x6b, 0xbb, 0x32, 0x8d, 0x2b, 0xbc, 0x79, 0xbb, 0x3e, 0xde, 0xbc, 0x2d, 0x47, 0xaf, - 0xc5, 0xb0, 0x1e, 0xee, 0xd9, 0x89, 0x3d, 0xdc, 0x4c, 0x8b, 0x3b, 0xaa, 0x95, 0x7b, 0x66, 0x52, - 0x2b, 0xf7, 0xe0, 0x2c, 0xec, 0xd3, 0x3b, 0xba, 0xa7, 0x26, 0x74, 0x74, 0xab, 0xb3, 0x50, 0x7f, - 0xd0, 0xd8, 0x7d, 0xd0, 0xd8, 0x7d, 0xd0, 0xd8, 0x7d, 0xd0, 0xd8, 0xbd, 0x3f, 0x1a, 0xbb, 0x6a, - 0xf2, 0x95, 0xd7, 0x2f, 0xc5, 0x96, 0x2f, 0x43, 0x86, 0xdf, 0x5a, 0x4d, 0x43, 0x7c, 0x6f, 0x5d, - 0xb9, 0x85, 0xfe, 0xdf, 0x50, 0x62, 0xf4, 0xff, 0xa6, 0x12, 0xdf, 0xd8, 0xfd, 0xe6, 0x77, 0x2f, - 0xde, 0xf2, 0x4f, 0xf8, 0xf9, 0x16, 0x7e, 0xbe, 0xf3, 0xdd, 0x8b, 0xb1, 0xb7, 0xf1, 0xf3, 0x0e, - 0x7e, 0x7e, 0x80, 0x9f, 0x97, 0xbe, 0x77, 0x31, 0xf6, 0x15, 0xfc, 0x7c, 0x15, 0x3f, 0x7f, 0x83, - 0x9f, 0xaf, 0xe3, 0xe7, 0x9b, 0xdf, 0x43, 0x7d, 0xfc, 0x7c, 0x07, 0xbf, 0xbf, 0x8d, 0xff, 0xdf, - 0xc1, 0xff, 0x3f, 0xc0, 0xcf, 0x4b, 0xff, 0x7a, 0x31, 0xf6, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x19, 0x7f, 0xee, 0x57, 0x97, 0x3e, 0x00, 0x00, + // 4578 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0xba, 0x92, 0xd7, 0xb4, 0x12, 0x6b, 0x77, 0xe5, + 0x97, 0xbc, 0xb6, 0x25, 0x5b, 0xde, 0x5d, 0xaf, 0xb9, 0xb1, 0x0d, 0x4a, 0xe2, 0x6a, 0x65, 0xeb, + 0x95, 0xa1, 0x64, 0xaf, 0x5d, 0x18, 0xd3, 0xd1, 0xf0, 0x92, 0x1a, 0x2f, 0x39, 0x43, 0xcf, 0x0c, + 0xd7, 0x96, 0x7f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, 0x04, + 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x7f, 0xe5, 0x4f, 0x5a, 0x03, 0x05, 0x8a, 0xe4, + 0x5f, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0xb7, 0x31, 0x50, 0x03, 0xfe, 0x53, + 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xf4, 0x87, 0x7f, 0x49, 0x73, 0xee, 0xf9, + 0xbe, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0xc7, 0xe7, 0xe0, 0x54, 0xc3, 0xb2, + 0x1a, 0x4d, 0xbc, 0xd8, 0xb6, 0x2d, 0xd7, 0xda, 0xef, 0xd4, 0x17, 0x6b, 0xd8, 0xd1, 0x6d, 0xa3, + 0xed, 0x5a, 0xf6, 0x02, 0x95, 0xa1, 0x09, 0xa6, 0xb1, 0x20, 0x34, 0xe6, 0x36, 0x61, 0xf2, 0x92, + 0xd1, 0xc4, 0xab, 0x9e, 0x62, 0x15, 0xbb, 0xe8, 0x02, 0xa4, 0xea, 0x46, 0x13, 0x17, 0xa5, 0x53, + 0xc9, 0xf9, 0xdc, 0xd2, 0xed, 0x0b, 0x21, 0xd0, 0x42, 0x10, 0xb1, 0x43, 0xc4, 0x0a, 0x45, 0xcc, + 0xbd, 0x93, 0x82, 0xa9, 0x88, 0x51, 0x84, 0x20, 0x65, 0x6a, 0x2d, 0xc2, 0x28, 0xcd, 0x67, 0x15, + 0xfa, 0x3f, 0x2a, 0xc2, 0x58, 0x5b, 0xd3, 0xaf, 0x6a, 0x0d, 0x5c, 0x4c, 0x50, 0xb1, 0x78, 0x44, + 0xb3, 0x00, 0x35, 0xdc, 0xc6, 0x66, 0x0d, 0x9b, 0xfa, 0x61, 0x31, 0x79, 0x2a, 0x39, 0x9f, 0x55, + 0x7c, 0x12, 0x74, 0x0f, 0x4c, 0xb6, 0x3b, 0xfb, 0x4d, 0x43, 0x57, 0x7d, 0x6a, 0x70, 0x2a, 0x39, + 0x9f, 0x56, 0x64, 0x36, 0xb0, 0xda, 0x55, 0xbe, 0x0b, 0x26, 0x5e, 0xc0, 0xda, 0x55, 0xbf, 0x6a, + 0x8e, 0xaa, 0x16, 0x88, 0xd8, 0xa7, 0xb8, 0x02, 0xf9, 0x16, 0x76, 0x1c, 0xad, 0x81, 0x55, 0xf7, + 0xb0, 0x8d, 0x8b, 0x29, 0xba, 0xfa, 0x53, 0x3d, 0xab, 0x0f, 0xaf, 0x3c, 0xc7, 0x51, 0xbb, 0x87, + 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, 0x3b, 0xad, + 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0x6b, 0x86, 0x8e, 0x8b, 0xa3, 0x94, 0xe0, + 0xae, 0x1e, 0x82, 0x2a, 0x1b, 0x0f, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x2c, 0x7e, 0xd1, 0xc5, 0xa6, + 0x63, 0x58, 0x66, 0x71, 0x8c, 0x92, 0xdc, 0x11, 0xb1, 0x8b, 0xb8, 0x59, 0x0b, 0x53, 0x74, 0x71, + 0xe8, 0x3c, 0x8c, 0x59, 0x6d, 0xd7, 0xb0, 0x4c, 0xa7, 0x98, 0x39, 0x25, 0xcd, 0xe7, 0x96, 0x3e, + 0x1b, 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x11, 0xca, 0x68, 0x1d, 0x64, 0xc7, 0xea, 0xd8, 0x3a, 0x56, + 0x75, 0xab, 0x86, 0x55, 0xc3, 0xac, 0x5b, 0xc5, 0x2c, 0x25, 0x38, 0xd9, 0xbb, 0x10, 0xaa, 0xb8, + 0x62, 0xd5, 0xf0, 0xba, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0x27, 0x60, 0xd4, 0x39, 0x34, + 0x5d, 0xed, 0xc5, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xdf, 0x34, 0x4c, 0x0c, 0x13, 0x62, + 0x17, 0x21, 0x5d, 0x27, 0xab, 0x2c, 0x26, 0x8e, 0xe3, 0x03, 0x86, 0x09, 0x3a, 0x71, 0xf4, 0x63, + 0x3a, 0xb1, 0x0c, 0x39, 0x13, 0x3b, 0x2e, 0xae, 0xb1, 0x88, 0x48, 0x0e, 0x19, 0x53, 0xc0, 0x40, + 0xbd, 0x21, 0x95, 0xfa, 0x58, 0x21, 0x75, 0x05, 0x26, 0x3c, 0x93, 0x54, 0x5b, 0x33, 0x1b, 0x22, + 0x36, 0x17, 0xe3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x42, 0x60, 0x4a, 0x01, 0x07, 0x9e, 0xd1, 0x2a, + 0x80, 0x65, 0x62, 0xab, 0xae, 0xd6, 0xb0, 0xde, 0x2c, 0x66, 0xfa, 0x78, 0x69, 0x9b, 0xa8, 0xf4, + 0x78, 0xc9, 0x62, 0x52, 0xbd, 0x89, 0x1e, 0xee, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, 0x64, 0x87, + 0xac, 0x27, 0xda, 0xf6, 0xa0, 0x60, 0x63, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa5, 0x46, 0x2c, + 0xc4, 0xae, 0x4c, 0xe1, 0x30, 0xb6, 0xb0, 0x71, 0xdb, 0xff, 0x88, 0x6e, 0x03, 0x4f, 0xa0, 0xd2, + 0xb0, 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0xa5, 0xb5, 0xf0, 0xcc, 0x05, 0x28, 0x04, 0xdd, 0x83, + 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, 0xc4, 0x66, + 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x9d, 0x79, 0x08, 0xc6, 0x03, 0xd3, 0x0f, 0x0b, 0x9c, 0x7b, + 0x65, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, 0xed, 0x63, 0xbb, + 0x98, 0xa4, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x71, 0xb3, 0x98, 0x3a, 0x25, 0xcd, + 0x17, 0x96, 0xee, 0x19, 0x2a, 0xaa, 0x17, 0x36, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x28, 0xa4, 0x78, + 0x8a, 0x23, 0x0c, 0x67, 0x86, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0xfa, 0x0c, 0x64, 0xc9, 0x5f, + 0xe6, 0xdb, 0x51, 0x6a, 0x73, 0x86, 0x08, 0x88, 0x5f, 0xd1, 0x0c, 0x64, 0x68, 0x98, 0xd5, 0xb0, + 0x28, 0x0d, 0xde, 0x33, 0xd9, 0x98, 0x1a, 0xae, 0x6b, 0x9d, 0xa6, 0xab, 0x5e, 0xd3, 0x9a, 0x1d, + 0x4c, 0x03, 0x26, 0xab, 0xe4, 0xb9, 0xf0, 0x49, 0x22, 0x43, 0x27, 0x21, 0xc7, 0xa2, 0xd2, 0x30, + 0x6b, 0xf8, 0x45, 0x9a, 0x7d, 0xd2, 0x0a, 0x0b, 0xd4, 0x75, 0x22, 0x21, 0xd3, 0x3f, 0xe7, 0x58, + 0xa6, 0xd8, 0x5a, 0x3a, 0x05, 0x11, 0xd0, 0xe9, 0x1f, 0x0a, 0x27, 0xbe, 0x5b, 0xa3, 0x97, 0x17, + 0x8e, 0xc5, 0xb9, 0x6f, 0x25, 0x20, 0x45, 0xcf, 0xdb, 0x04, 0xe4, 0x76, 0x9f, 0xde, 0xa9, 0xa8, + 0xab, 0xdb, 0x7b, 0xcb, 0x1b, 0x15, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb4, 0xb1, 0x5d, 0xde, + 0x95, 0x13, 0xde, 0xf3, 0xfa, 0xd6, 0xee, 0xf9, 0xb3, 0x72, 0xd2, 0x03, 0xec, 0x31, 0x41, 0xca, + 0xaf, 0xf0, 0xe0, 0x92, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0xc1, 0xfa, 0x95, 0xca, 0xea, 0xf9, 0xb3, + 0xf2, 0x68, 0x50, 0xf2, 0xe0, 0x92, 0x3c, 0x86, 0xc6, 0x21, 0x4b, 0x25, 0xcb, 0xdb, 0xdb, 0x1b, + 0x72, 0xc6, 0xe3, 0xac, 0xee, 0x2a, 0xeb, 0x5b, 0x6b, 0x72, 0xd6, 0xe3, 0x5c, 0x53, 0xb6, 0xf7, + 0x76, 0x64, 0xf0, 0x18, 0x36, 0x2b, 0xd5, 0x6a, 0x79, 0xad, 0x22, 0xe7, 0x3c, 0x8d, 0xe5, 0xa7, + 0x77, 0x2b, 0x55, 0x39, 0x1f, 0x30, 0xeb, 0xc1, 0x25, 0x79, 0xdc, 0x9b, 0xa2, 0xb2, 0xb5, 0xb7, + 0x29, 0x17, 0xd0, 0x24, 0x8c, 0xb3, 0x29, 0x84, 0x11, 0x13, 0x21, 0xd1, 0xf9, 0xb3, 0xb2, 0xdc, + 0x35, 0x84, 0xb1, 0x4c, 0x06, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x6e, 0x05, 0xd2, 0x34, 0xba, 0x10, + 0x82, 0xc2, 0x46, 0x79, 0xb9, 0xb2, 0xa1, 0x6e, 0xef, 0xec, 0xae, 0x6f, 0x6f, 0x95, 0x37, 0x64, + 0xa9, 0x2b, 0x53, 0x2a, 0x9f, 0xdf, 0x5b, 0x57, 0x2a, 0xab, 0x72, 0xc2, 0x2f, 0xdb, 0xa9, 0x94, + 0x77, 0x2b, 0xab, 0x72, 0x72, 0x4e, 0x87, 0xe9, 0xa8, 0x3c, 0x13, 0x79, 0x32, 0x7c, 0x5b, 0x9c, + 0xe8, 0xb3, 0xc5, 0x94, 0xab, 0x67, 0x8b, 0xbf, 0x22, 0xc1, 0x54, 0x44, 0xae, 0x8d, 0x9c, 0xe4, + 0x31, 0x48, 0xb3, 0x10, 0x65, 0xd5, 0xe7, 0xee, 0xc8, 0xa4, 0x4d, 0x03, 0xb6, 0xa7, 0x02, 0x51, + 0x9c, 0xbf, 0x02, 0x27, 0xfb, 0x54, 0x60, 0x42, 0xd1, 0x63, 0xe4, 0xcb, 0x12, 0x14, 0xfb, 0x71, + 0xc7, 0x24, 0x8a, 0x44, 0x20, 0x51, 0x5c, 0x0c, 0x1b, 0x70, 0xba, 0xff, 0x1a, 0x7a, 0xac, 0x78, + 0x43, 0x82, 0x13, 0xd1, 0x8d, 0x4a, 0xa4, 0x0d, 0x8f, 0xc2, 0x68, 0x0b, 0xbb, 0x07, 0x96, 0x28, + 0xd6, 0x77, 0x46, 0x94, 0x00, 0x32, 0x1c, 0xf6, 0x15, 0x47, 0xf9, 0x6b, 0x48, 0xb2, 0x5f, 0xb7, + 0xc1, 0xac, 0xe9, 0xb1, 0xf4, 0x0b, 0x09, 0xb8, 0x29, 0x92, 0x3c, 0xd2, 0xd0, 0x5b, 0x01, 0x0c, + 0xb3, 0xdd, 0x71, 0x59, 0x41, 0x66, 0xf9, 0x29, 0x4b, 0x25, 0xf4, 0xec, 0x93, 0xdc, 0xd3, 0x71, + 0xbd, 0xf1, 0x24, 0x1d, 0x07, 0x26, 0xa2, 0x0a, 0x17, 0xba, 0x86, 0xa6, 0xa8, 0xa1, 0xb3, 0x7d, + 0x56, 0xda, 0x53, 0xeb, 0xee, 0x07, 0x59, 0x6f, 0x1a, 0xd8, 0x74, 0x55, 0xc7, 0xb5, 0xb1, 0xd6, + 0x32, 0xcc, 0x06, 0x4d, 0xc0, 0x99, 0x52, 0xba, 0xae, 0x35, 0x1d, 0xac, 0x4c, 0xb0, 0xe1, 0xaa, + 0x18, 0x25, 0x08, 0x5a, 0x65, 0x6c, 0x1f, 0x62, 0x34, 0x80, 0x60, 0xc3, 0x1e, 0x62, 0xee, 0xeb, + 0x63, 0x90, 0xf3, 0xb5, 0x75, 0xe8, 0x34, 0xe4, 0x9f, 0xd3, 0xae, 0x69, 0xaa, 0x68, 0xd5, 0x99, + 0x27, 0x72, 0x44, 0xb6, 0xc3, 0xdb, 0xf5, 0xfb, 0x61, 0x9a, 0xaa, 0x58, 0x1d, 0x17, 0xdb, 0xaa, + 0xde, 0xd4, 0x1c, 0x87, 0x3a, 0x2d, 0x43, 0x55, 0x11, 0x19, 0xdb, 0x26, 0x43, 0x2b, 0x62, 0x04, + 0x9d, 0x83, 0x29, 0x8a, 0x68, 0x75, 0x9a, 0xae, 0xd1, 0x6e, 0x62, 0x95, 0xbc, 0x3c, 0x38, 0x34, + 0x11, 0x7b, 0x96, 0x4d, 0x12, 0x8d, 0x4d, 0xae, 0x40, 0x2c, 0x72, 0xd0, 0x2a, 0xdc, 0x4a, 0x61, + 0x0d, 0x6c, 0x62, 0x5b, 0x73, 0xb1, 0x8a, 0x9f, 0xef, 0x68, 0x4d, 0x47, 0xd5, 0xcc, 0x9a, 0x7a, + 0xa0, 0x39, 0x07, 0xc5, 0x69, 0x42, 0xb0, 0x9c, 0x28, 0x4a, 0xca, 0x2d, 0x44, 0x71, 0x8d, 0xeb, + 0x55, 0xa8, 0x5a, 0xd9, 0xac, 0x5d, 0xd6, 0x9c, 0x03, 0x54, 0x82, 0x13, 0x94, 0xc5, 0x71, 0x6d, + 0xc3, 0x6c, 0xa8, 0xfa, 0x01, 0xd6, 0xaf, 0xaa, 0x1d, 0xb7, 0x7e, 0xa1, 0xf8, 0x19, 0xff, 0xfc, + 0xd4, 0xc2, 0x2a, 0xd5, 0x59, 0x21, 0x2a, 0x7b, 0x6e, 0xfd, 0x02, 0xaa, 0x42, 0x9e, 0x6c, 0x46, + 0xcb, 0x78, 0x09, 0xab, 0x75, 0xcb, 0xa6, 0x95, 0xa5, 0x10, 0x71, 0xb2, 0x7d, 0x1e, 0x5c, 0xd8, + 0xe6, 0x80, 0x4d, 0xab, 0x86, 0x4b, 0xe9, 0xea, 0x4e, 0xa5, 0xb2, 0xaa, 0xe4, 0x04, 0xcb, 0x25, + 0xcb, 0x26, 0x01, 0xd5, 0xb0, 0x3c, 0x07, 0xe7, 0x58, 0x40, 0x35, 0x2c, 0xe1, 0xde, 0x73, 0x30, + 0xa5, 0xeb, 0x6c, 0xcd, 0x86, 0xae, 0xf2, 0x16, 0xdf, 0x29, 0xca, 0x01, 0x67, 0xe9, 0xfa, 0x1a, + 0x53, 0xe0, 0x31, 0xee, 0xa0, 0x87, 0xe1, 0xa6, 0xae, 0xb3, 0xfc, 0xc0, 0xc9, 0x9e, 0x55, 0x86, + 0xa1, 0xe7, 0x60, 0xaa, 0x7d, 0xd8, 0x0b, 0x44, 0x81, 0x19, 0xdb, 0x87, 0x61, 0xd8, 0x1d, 0xf4, + 0xb5, 0xcd, 0xc6, 0xba, 0xe6, 0xe2, 0x5a, 0xf1, 0x66, 0xbf, 0xb6, 0x6f, 0x00, 0x2d, 0x82, 0xac, + 0xeb, 0x2a, 0x36, 0xb5, 0xfd, 0x26, 0x56, 0x35, 0x1b, 0x9b, 0x9a, 0x53, 0x3c, 0xe9, 0x57, 0x2e, + 0xe8, 0x7a, 0x85, 0x8e, 0x96, 0xe9, 0x20, 0x3a, 0x03, 0x93, 0xd6, 0xfe, 0x73, 0x3a, 0x8b, 0x2c, + 0xb5, 0x6d, 0xe3, 0xba, 0xf1, 0x62, 0xf1, 0x76, 0xea, 0xa6, 0x09, 0x32, 0x40, 0xe3, 0x6a, 0x87, + 0x8a, 0xd1, 0xdd, 0x20, 0xeb, 0xce, 0x81, 0x66, 0xb7, 0x69, 0x69, 0x77, 0xda, 0x9a, 0x8e, 0x8b, + 0x77, 0x30, 0x55, 0x26, 0xdf, 0x12, 0x62, 0x12, 0xd9, 0xce, 0x0b, 0x46, 0xdd, 0x15, 0x8c, 0x77, + 0xb1, 0xc8, 0xa6, 0x32, 0xce, 0x76, 0x05, 0xa6, 0x3b, 0xa6, 0x61, 0xba, 0xd8, 0x6e, 0xdb, 0x98, + 0x34, 0xf1, 0xec, 0x24, 0x16, 0xff, 0x65, 0xac, 0x4f, 0x1b, 0xbe, 0xe7, 0xd7, 0x66, 0x01, 0xa0, + 0x4c, 0x75, 0x7a, 0x85, 0x73, 0x25, 0xc8, 0xfb, 0xe3, 0x02, 0x65, 0x81, 0x45, 0x86, 0x2c, 0x91, + 0x1a, 0xbb, 0xb2, 0xbd, 0x4a, 0xaa, 0xe3, 0x33, 0x15, 0x39, 0x41, 0xaa, 0xf4, 0xc6, 0xfa, 0x6e, + 0x45, 0x55, 0xf6, 0xb6, 0x76, 0xd7, 0x37, 0x2b, 0x72, 0xf2, 0x4c, 0x36, 0xf3, 0xee, 0x98, 0x7c, + 0xfd, 0xfa, 0xf5, 0xeb, 0x89, 0xb9, 0xef, 0x26, 0xa0, 0x10, 0xec, 0x8c, 0xd1, 0xe7, 0xe0, 0x66, + 0xf1, 0x1a, 0xeb, 0x60, 0x57, 0x7d, 0xc1, 0xb0, 0x69, 0xa8, 0xb6, 0x34, 0xd6, 0x5b, 0x7a, 0x5e, + 0x9e, 0xe6, 0x5a, 0x55, 0xec, 0x3e, 0x65, 0xd8, 0x24, 0x10, 0x5b, 0x9a, 0x8b, 0x36, 0xe0, 0xa4, + 0x69, 0xa9, 0x8e, 0xab, 0x99, 0x35, 0xcd, 0xae, 0xa9, 0xdd, 0x0b, 0x04, 0x55, 0xd3, 0x75, 0xec, + 0x38, 0x16, 0x2b, 0x11, 0x1e, 0xcb, 0x67, 0x4d, 0xab, 0xca, 0x95, 0xbb, 0xb9, 0xb3, 0xcc, 0x55, + 0x43, 0x11, 0x91, 0xec, 0x17, 0x11, 0x9f, 0x81, 0x6c, 0x4b, 0x6b, 0xab, 0xd8, 0x74, 0xed, 0x43, + 0xda, 0xcf, 0x65, 0x94, 0x4c, 0x4b, 0x6b, 0x57, 0xc8, 0xf3, 0x27, 0xb7, 0x07, 0x7e, 0x3f, 0xfe, + 0x28, 0x09, 0x79, 0x7f, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0x9e, 0xf0, 0xdb, 0x06, + 0x76, 0x80, 0x0b, 0x2b, 0x24, 0xb1, 0x97, 0x46, 0x59, 0xa7, 0xa5, 0x30, 0x24, 0x29, 0xaa, 0xe4, + 0x4c, 0x63, 0xd6, 0xbf, 0x67, 0x14, 0xfe, 0x84, 0xd6, 0x60, 0xf4, 0x39, 0x87, 0x72, 0x8f, 0x52, + 0xee, 0xdb, 0x07, 0x73, 0x3f, 0x5e, 0xa5, 0xe4, 0xd9, 0xc7, 0xab, 0xea, 0xd6, 0xb6, 0xb2, 0x59, + 0xde, 0x50, 0x38, 0x1c, 0xdd, 0x02, 0xa9, 0xa6, 0xf6, 0xd2, 0x61, 0xb0, 0x04, 0x50, 0xd1, 0xb0, + 0x8e, 0xbf, 0x05, 0x52, 0x2f, 0x60, 0xed, 0x6a, 0x30, 0xf1, 0x52, 0xd1, 0x27, 0x18, 0xfa, 0x8b, + 0x90, 0xa6, 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xf2, 0x08, 0xca, 0x40, 0x6a, 0x65, 0x5b, 0x21, 0xe1, + 0x2f, 0x43, 0x9e, 0x49, 0xd5, 0x9d, 0xf5, 0xca, 0x4a, 0x45, 0x4e, 0xcc, 0x9d, 0x83, 0x51, 0xe6, + 0x04, 0x72, 0x34, 0x3c, 0x37, 0xc8, 0x23, 0xfc, 0x91, 0x73, 0x48, 0x62, 0x74, 0x6f, 0x73, 0xb9, + 0xa2, 0xc8, 0x09, 0xff, 0xf6, 0x3a, 0x90, 0xf7, 0xb7, 0x73, 0x3f, 0x9d, 0x98, 0xfa, 0x7b, 0x09, + 0x72, 0xbe, 0xf6, 0x8c, 0x34, 0x06, 0x5a, 0xb3, 0x69, 0xbd, 0xa0, 0x6a, 0x4d, 0x43, 0x73, 0x78, + 0x50, 0x00, 0x15, 0x95, 0x89, 0x64, 0xd8, 0x4d, 0xfb, 0xa9, 0x18, 0xff, 0xba, 0x04, 0x72, 0xb8, + 0xb5, 0x0b, 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x4d, 0x82, 0x42, 0xb0, 0x9f, 0x0b, 0x99, 0x77, + 0xfa, 0x67, 0x6a, 0xde, 0xdb, 0x09, 0x18, 0x0f, 0x74, 0x71, 0xc3, 0x5a, 0xf7, 0x3c, 0x4c, 0x1a, + 0x35, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x43, 0xb5, 0x89, 0xaf, 0xe1, 0x66, 0x71, 0x8e, 0x26, + 0x8a, 0xc5, 0xc1, 0x7d, 0xe2, 0xc2, 0x7a, 0x17, 0xb7, 0x41, 0x60, 0xa5, 0xa9, 0xf5, 0xd5, 0xca, + 0xe6, 0xce, 0xf6, 0x6e, 0x65, 0x6b, 0xe5, 0x69, 0x75, 0x6f, 0xeb, 0x89, 0xad, 0xed, 0xa7, 0xb6, + 0x14, 0xd9, 0x08, 0xa9, 0x7d, 0x82, 0x47, 0x7d, 0x07, 0xe4, 0xb0, 0x51, 0xe8, 0x66, 0x88, 0x32, + 0x4b, 0x1e, 0x41, 0x53, 0x30, 0xb1, 0xb5, 0xad, 0x56, 0xd7, 0x57, 0x2b, 0x6a, 0xe5, 0xd2, 0xa5, + 0xca, 0xca, 0x6e, 0x95, 0xbd, 0x38, 0x7b, 0xda, 0xbb, 0xc1, 0x43, 0xfd, 0x6a, 0x12, 0xa6, 0x22, + 0x2c, 0x41, 0x65, 0xde, 0xb3, 0xb3, 0xd7, 0x88, 0xfb, 0x86, 0xb1, 0x7e, 0x81, 0x74, 0x05, 0x3b, + 0x9a, 0xed, 0xf2, 0x16, 0xff, 0x6e, 0x20, 0x5e, 0x32, 0x5d, 0xa3, 0x6e, 0x60, 0x9b, 0xdf, 0x33, + 0xb0, 0x46, 0x7e, 0xa2, 0x2b, 0x67, 0x57, 0x0d, 0xf7, 0x02, 0x6a, 0x5b, 0x8e, 0xe1, 0x1a, 0xd7, + 0xb0, 0x6a, 0x98, 0xe2, 0x52, 0x82, 0x34, 0xf6, 0x29, 0x45, 0x16, 0x23, 0xeb, 0xa6, 0xeb, 0x69, + 0x9b, 0xb8, 0xa1, 0x85, 0xb4, 0x49, 0x02, 0x4f, 0x2a, 0xb2, 0x18, 0xf1, 0xb4, 0x4f, 0x43, 0xbe, + 0x66, 0x75, 0x48, 0x9b, 0xc4, 0xf4, 0x48, 0xbd, 0x90, 0x94, 0x1c, 0x93, 0x79, 0x2a, 0xbc, 0x8f, + 0xed, 0xde, 0x86, 0xe4, 0x95, 0x1c, 0x93, 0x31, 0x95, 0xbb, 0x60, 0x42, 0x6b, 0x34, 0x6c, 0x42, + 0x2e, 0x88, 0x58, 0x67, 0x5e, 0xf0, 0xc4, 0x54, 0x71, 0xe6, 0x71, 0xc8, 0x08, 0x3f, 0x90, 0x92, + 0x4c, 0x3c, 0xa1, 0xb6, 0xd9, 0x9d, 0x54, 0x62, 0x3e, 0xab, 0x64, 0x4c, 0x31, 0x78, 0x1a, 0xf2, + 0x86, 0xa3, 0x76, 0x2f, 0x47, 0x13, 0xa7, 0x12, 0xf3, 0x19, 0x25, 0x67, 0x38, 0xde, 0x6d, 0xd8, + 0xdc, 0x1b, 0x09, 0x28, 0x04, 0x2f, 0x77, 0xd1, 0x2a, 0x64, 0x9a, 0x96, 0xae, 0xd1, 0xd0, 0x62, + 0xbf, 0x2c, 0xcc, 0xc7, 0xdc, 0x07, 0x2f, 0x6c, 0x70, 0x7d, 0xc5, 0x43, 0xce, 0xfc, 0xb3, 0x04, + 0x19, 0x21, 0x46, 0x27, 0x20, 0xd5, 0xd6, 0xdc, 0x03, 0x4a, 0x97, 0x5e, 0x4e, 0xc8, 0x92, 0x42, + 0x9f, 0x89, 0xdc, 0x69, 0x6b, 0x26, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5f, 0x9b, 0x58, 0xab, + 0xd1, 0xb6, 0xdf, 0x6a, 0xb5, 0xb0, 0xe9, 0x3a, 0x62, 0x5f, 0xb9, 0x7c, 0x85, 0x8b, 0xd1, 0x3d, + 0x30, 0xe9, 0xda, 0x9a, 0xd1, 0x0c, 0xe8, 0xa6, 0xa8, 0xae, 0x2c, 0x06, 0x3c, 0xe5, 0x12, 0xdc, + 0x22, 0x78, 0x6b, 0xd8, 0xd5, 0xf4, 0x03, 0x5c, 0xeb, 0x82, 0x46, 0xe9, 0xcd, 0xe1, 0xcd, 0x5c, + 0x61, 0x95, 0x8f, 0x0b, 0xec, 0xdc, 0xf7, 0x25, 0x98, 0x14, 0x2f, 0x2a, 0x35, 0xcf, 0x59, 0x9b, + 0x00, 0x9a, 0x69, 0x5a, 0xae, 0xdf, 0x5d, 0xbd, 0xa1, 0xdc, 0x83, 0x5b, 0x28, 0x7b, 0x20, 0xc5, + 0x47, 0x30, 0xd3, 0x02, 0xe8, 0x8e, 0xf4, 0x75, 0xdb, 0x49, 0xc8, 0xf1, 0x9b, 0x7b, 0xfa, 0xf3, + 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, 0x68, 0x1a, 0xd2, 0xfb, 0xb8, 0x61, 0x98, 0xfc, + 0x3e, 0x91, 0x3d, 0x88, 0x5b, 0xca, 0x94, 0x77, 0x4b, 0xb9, 0x7c, 0x05, 0xa6, 0x74, 0xab, 0x15, + 0x36, 0x77, 0x59, 0x0e, 0xbd, 0x5e, 0x3b, 0x97, 0xa5, 0x67, 0xa0, 0xdb, 0x62, 0x7e, 0x25, 0x91, + 0x5c, 0xdb, 0x59, 0xfe, 0x5a, 0x62, 0x66, 0x8d, 0xe1, 0x76, 0xc4, 0x32, 0x15, 0x5c, 0x6f, 0x62, + 0x9d, 0x98, 0x0e, 0x3f, 0xb9, 0x13, 0xee, 0x6b, 0x18, 0xee, 0x41, 0x67, 0x7f, 0x41, 0xb7, 0x5a, + 0x8b, 0x0d, 0xab, 0x61, 0x75, 0x7f, 0xee, 0x22, 0x4f, 0xf4, 0x81, 0xfe, 0xc7, 0x7f, 0xf2, 0xca, + 0x7a, 0xd2, 0x99, 0xd8, 0xdf, 0xc7, 0x4a, 0x5b, 0x30, 0xc5, 0x95, 0x55, 0x7a, 0xe7, 0xce, 0x5e, + 0x0d, 0xd0, 0xc0, 0x7b, 0x97, 0xe2, 0x37, 0xdf, 0xa1, 0xb5, 0x5a, 0x99, 0xe4, 0x50, 0x32, 0xc6, + 0x5e, 0x20, 0x4a, 0x0a, 0xdc, 0x14, 0xe0, 0x63, 0xe7, 0x12, 0xdb, 0x31, 0x8c, 0xdf, 0xe5, 0x8c, + 0x53, 0x3e, 0xc6, 0x2a, 0x87, 0x96, 0x56, 0x60, 0xfc, 0x38, 0x5c, 0xff, 0xc0, 0xb9, 0xf2, 0xd8, + 0x4f, 0xb2, 0x06, 0x13, 0x94, 0x44, 0xef, 0x38, 0xae, 0xd5, 0xa2, 0x49, 0x6f, 0x30, 0xcd, 0x3f, + 0xbe, 0xc3, 0x0e, 0x4a, 0x81, 0xc0, 0x56, 0x3c, 0x54, 0xa9, 0x04, 0xf4, 0x67, 0x86, 0x1a, 0xd6, + 0x9b, 0x31, 0x0c, 0x6f, 0x72, 0x43, 0x3c, 0xfd, 0xd2, 0x93, 0x30, 0x4d, 0xfe, 0xa7, 0x39, 0xc9, + 0x6f, 0x49, 0xfc, 0x2d, 0x53, 0xf1, 0xfb, 0x2f, 0xb3, 0xb3, 0x38, 0xe5, 0x11, 0xf8, 0x6c, 0xf2, + 0xed, 0x62, 0x03, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0x46, 0x99, 0xe7, 0x7b, 0x4d, 0x2f, 0x7e, + 0xf1, 0xbd, 0xe0, 0x2e, 0xae, 0x31, 0x64, 0xb9, 0xd9, 0x2c, 0xed, 0xc1, 0xcd, 0x11, 0x51, 0x31, + 0x04, 0xe7, 0xab, 0x9c, 0x73, 0xba, 0x27, 0x32, 0x08, 0xed, 0x0e, 0x08, 0xb9, 0xb7, 0x97, 0x43, + 0x70, 0xfe, 0x01, 0xe7, 0x44, 0x1c, 0x2b, 0xb6, 0x94, 0x30, 0x3e, 0x0e, 0x93, 0xd7, 0xb0, 0xbd, + 0x6f, 0x39, 0xfc, 0x6a, 0x64, 0x08, 0xba, 0xd7, 0x38, 0xdd, 0x04, 0x07, 0xd2, 0xbb, 0x12, 0xc2, + 0xf5, 0x30, 0x64, 0xea, 0x9a, 0x8e, 0x87, 0xa0, 0xf8, 0x12, 0xa7, 0x18, 0x23, 0xfa, 0x04, 0x5a, + 0x86, 0x7c, 0xc3, 0xe2, 0x65, 0x29, 0x1e, 0xfe, 0x3a, 0x87, 0xe7, 0x04, 0x86, 0x53, 0xb4, 0xad, + 0x76, 0xa7, 0x49, 0x6a, 0x56, 0x3c, 0xc5, 0x1f, 0x0a, 0x0a, 0x81, 0xe1, 0x14, 0xc7, 0x70, 0xeb, + 0x1f, 0x09, 0x0a, 0xc7, 0xe7, 0xcf, 0xc7, 0x20, 0x67, 0x99, 0xcd, 0x43, 0xcb, 0x1c, 0xc6, 0x88, + 0x2f, 0x73, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x11, 0xb2, 0xc3, 0x6e, 0xc4, 0x1f, 0xbf, 0x27, 0x8e, + 0x87, 0xd8, 0x81, 0x35, 0x98, 0x10, 0x09, 0xca, 0xb0, 0xcc, 0x21, 0x28, 0xfe, 0x84, 0x53, 0x14, + 0x7c, 0x30, 0xbe, 0x0c, 0x17, 0x3b, 0x6e, 0x03, 0x0f, 0x43, 0xf2, 0x86, 0x58, 0x06, 0x87, 0x70, + 0x57, 0xee, 0x63, 0x53, 0x3f, 0x18, 0x8e, 0xe1, 0xab, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, + 0xbc, 0xa5, 0xd9, 0xce, 0x81, 0xd6, 0x1c, 0x6a, 0x3b, 0xfe, 0x94, 0x73, 0xe4, 0x3d, 0x10, 0xf7, + 0x48, 0xc7, 0x3c, 0x0e, 0xcd, 0xd7, 0x84, 0x47, 0x7c, 0x30, 0x7e, 0xf4, 0x1c, 0x97, 0x5e, 0x40, + 0x1d, 0x87, 0xed, 0xeb, 0xe2, 0xe8, 0x31, 0xec, 0xa6, 0x9f, 0xf1, 0x22, 0x64, 0x1d, 0xe3, 0xa5, + 0xa1, 0x68, 0xfe, 0x4c, 0xec, 0x34, 0x05, 0x10, 0xf0, 0xd3, 0x70, 0x4b, 0x64, 0x99, 0x18, 0x82, + 0xec, 0xcf, 0x39, 0xd9, 0x89, 0x88, 0x52, 0xc1, 0x53, 0xc2, 0x71, 0x29, 0xff, 0x42, 0xa4, 0x04, + 0x1c, 0xe2, 0xda, 0x21, 0x2f, 0x0a, 0x8e, 0x56, 0x3f, 0x9e, 0xd7, 0xfe, 0x52, 0x78, 0x8d, 0x61, + 0x03, 0x5e, 0xdb, 0x85, 0x13, 0x9c, 0xf1, 0x78, 0xfb, 0xfa, 0x0d, 0x91, 0x58, 0x19, 0x7a, 0x2f, + 0xb8, 0xbb, 0x3f, 0x07, 0x33, 0x9e, 0x3b, 0x45, 0x47, 0xea, 0xa8, 0x2d, 0xad, 0x3d, 0x04, 0xf3, + 0x37, 0x39, 0xb3, 0xc8, 0xf8, 0x5e, 0x4b, 0xeb, 0x6c, 0x6a, 0x6d, 0x42, 0x7e, 0x05, 0x8a, 0x82, + 0xbc, 0x63, 0xda, 0x58, 0xb7, 0x1a, 0xa6, 0xf1, 0x12, 0xae, 0x0d, 0x41, 0xfd, 0x57, 0xa1, 0xad, + 0xda, 0xf3, 0xc1, 0x09, 0xf3, 0x3a, 0xc8, 0x5e, 0xaf, 0xa2, 0x1a, 0xad, 0xb6, 0x65, 0xbb, 0x31, + 0x8c, 0x7f, 0x2d, 0x76, 0xca, 0xc3, 0xad, 0x53, 0x58, 0xa9, 0x02, 0x05, 0xfa, 0x38, 0x6c, 0x48, + 0xfe, 0x0d, 0x27, 0x1a, 0xef, 0xa2, 0x78, 0xe2, 0xd0, 0xad, 0x56, 0x5b, 0xb3, 0x87, 0xc9, 0x7f, + 0x7f, 0x2b, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, 0x1e, 0xb6, 0x31, 0xa9, 0xf6, 0x43, 0x30, 0x7c, + 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x82, 0xe2, 0xef, 0x04, 0x85, 0xc0, 0x10, + 0x8a, 0xcf, 0x77, 0x0b, 0xad, 0x8d, 0x1b, 0x86, 0xe3, 0xda, 0xac, 0x0f, 0x1e, 0x4c, 0xf5, 0xed, + 0xf7, 0x82, 0x4d, 0x98, 0xe2, 0x83, 0x96, 0x1e, 0x87, 0x89, 0x50, 0x8b, 0x81, 0xe2, 0xbe, 0x59, + 0x28, 0xfe, 0xe2, 0x07, 0x3c, 0x19, 0x05, 0x3b, 0x8c, 0xd2, 0x06, 0xd9, 0xf7, 0x60, 0x1f, 0x10, + 0x4f, 0xf6, 0xf2, 0x07, 0xde, 0xd6, 0x07, 0xda, 0x80, 0xd2, 0x25, 0x18, 0x0f, 0xf4, 0x00, 0xf1, + 0x54, 0xbf, 0xc4, 0xa9, 0xf2, 0xfe, 0x16, 0xa0, 0x74, 0x0e, 0x52, 0xa4, 0x9e, 0xc7, 0xc3, 0x7f, + 0x99, 0xc3, 0xa9, 0x7a, 0xe9, 0x11, 0xc8, 0x88, 0x3a, 0x1e, 0x0f, 0xfd, 0x15, 0x0e, 0xf5, 0x20, + 0x04, 0x2e, 0x6a, 0x78, 0x3c, 0xfc, 0x57, 0x05, 0x5c, 0x40, 0x08, 0x7c, 0x78, 0x17, 0x7e, 0xe7, + 0xd7, 0x52, 0x3c, 0x0f, 0x0b, 0xdf, 0x5d, 0x84, 0x31, 0x5e, 0xbc, 0xe3, 0xd1, 0x5f, 0xe0, 0x93, + 0x0b, 0x44, 0xe9, 0x21, 0x48, 0x0f, 0xe9, 0xf0, 0x5f, 0xe7, 0x50, 0xa6, 0x5f, 0x5a, 0x81, 0x9c, + 0xaf, 0x60, 0xc7, 0xc3, 0x7f, 0x83, 0xc3, 0xfd, 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xf1, 0x04, 0xbf, + 0x29, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xe3, 0xd1, 0xbf, 0x25, 0xbc, 0x2e, 0x20, 0xa5, + 0xc7, 0x20, 0xeb, 0xe5, 0xdf, 0x78, 0xfc, 0x6f, 0x73, 0x7c, 0x17, 0x43, 0x3c, 0xe0, 0xcb, 0xff, + 0xf1, 0x14, 0xbf, 0x23, 0x3c, 0xe0, 0x43, 0x91, 0x63, 0x14, 0xae, 0xe9, 0xf1, 0x4c, 0xbf, 0x2b, + 0x8e, 0x51, 0xa8, 0xa4, 0x93, 0xdd, 0xa4, 0x69, 0x30, 0x9e, 0xe2, 0xf7, 0xc4, 0x6e, 0x52, 0x7d, + 0x62, 0x46, 0xb8, 0x48, 0xc6, 0x73, 0xfc, 0xbe, 0x30, 0x23, 0x54, 0x23, 0x4b, 0x3b, 0x80, 0x7a, + 0x0b, 0x64, 0x3c, 0xdf, 0x2b, 0x9c, 0x6f, 0xb2, 0xa7, 0x3e, 0x96, 0x9e, 0x82, 0x13, 0xd1, 0xc5, + 0x31, 0x9e, 0xf5, 0x8b, 0x1f, 0x84, 0x5e, 0x67, 0xfc, 0xb5, 0xb1, 0xb4, 0xdb, 0xcd, 0xb2, 0xfe, + 0xc2, 0x18, 0x4f, 0xfb, 0xea, 0x07, 0xc1, 0x44, 0xeb, 0xaf, 0x8b, 0xa5, 0x32, 0x40, 0xb7, 0x26, + 0xc5, 0x73, 0xbd, 0xc6, 0xb9, 0x7c, 0x20, 0x72, 0x34, 0x78, 0x49, 0x8a, 0xc7, 0x7f, 0x49, 0x1c, + 0x0d, 0x8e, 0x20, 0x47, 0x43, 0x54, 0xa3, 0x78, 0xf4, 0xeb, 0xe2, 0x68, 0x08, 0x48, 0xe9, 0x22, + 0x64, 0xcc, 0x4e, 0xb3, 0x49, 0x62, 0x0b, 0x0d, 0xfe, 0x8c, 0xa8, 0xf8, 0xaf, 0x1f, 0x71, 0xb0, + 0x00, 0x94, 0xce, 0x41, 0x1a, 0xb7, 0xf6, 0x71, 0x2d, 0x0e, 0xf9, 0x6f, 0x1f, 0x89, 0x7c, 0x42, + 0xb4, 0x4b, 0x8f, 0x01, 0xb0, 0x97, 0x69, 0xfa, 0x2b, 0x51, 0x0c, 0xf6, 0xdf, 0x3f, 0xe2, 0x5f, + 0x28, 0x74, 0x21, 0x5d, 0x02, 0xf6, 0xbd, 0xc3, 0x60, 0x82, 0xf7, 0x82, 0x04, 0xf4, 0x05, 0xfc, + 0x61, 0x18, 0x7b, 0xce, 0xb1, 0x4c, 0x57, 0x6b, 0xc4, 0xa1, 0xff, 0x83, 0xa3, 0x85, 0x3e, 0x71, + 0x58, 0xcb, 0xb2, 0xb1, 0xab, 0x35, 0x9c, 0x38, 0xec, 0x7f, 0x72, 0xac, 0x07, 0x20, 0x60, 0x5d, + 0x73, 0xdc, 0x61, 0xd6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xff, 0x55, 0x7c, 0x18, + 0x87, 0x7d, 0x5f, 0x18, 0xcd, 0xf5, 0x4b, 0x8f, 0x40, 0x96, 0xfc, 0xcb, 0xbe, 0xda, 0x89, 0x01, + 0xff, 0x37, 0x07, 0x77, 0x11, 0x64, 0x66, 0xc7, 0xad, 0xb9, 0x46, 0xbc, 0xb3, 0xff, 0x87, 0xef, + 0xb4, 0xd0, 0x2f, 0x95, 0x21, 0xe7, 0xb8, 0xb5, 0x5a, 0x87, 0x77, 0x34, 0x31, 0xf0, 0x9f, 0x7c, + 0xe4, 0xbd, 0xe4, 0x7a, 0x98, 0xe5, 0xd3, 0xd1, 0x97, 0x75, 0xb0, 0x66, 0xad, 0x59, 0xec, 0x9a, + 0x0e, 0x3e, 0xbc, 0x0f, 0xe6, 0x74, 0xab, 0xb5, 0x6f, 0x39, 0x8b, 0x2c, 0xa1, 0xec, 0x5b, 0xee, + 0xc1, 0x62, 0x4b, 0x6b, 0x3b, 0x54, 0x7d, 0x89, 0x5f, 0xb5, 0xe5, 0xf8, 0x13, 0x19, 0x98, 0x39, + 0xde, 0x35, 0xdd, 0xdc, 0xad, 0x30, 0x7e, 0xa9, 0x69, 0x69, 0xae, 0x61, 0x36, 0x76, 0x2c, 0xc3, + 0x74, 0x51, 0x1e, 0xa4, 0x3a, 0xfd, 0x8d, 0x49, 0x52, 0xa4, 0xfa, 0xdc, 0x3f, 0xa5, 0x21, 0xcb, + 0x6e, 0x78, 0x36, 0xb5, 0x36, 0xfa, 0x05, 0xc8, 0x6f, 0xf1, 0x43, 0xf2, 0xc0, 0xd2, 0x05, 0xc7, + 0xbb, 0x4e, 0xf6, 0xcd, 0xbf, 0xe0, 0x69, 0x2f, 0xf8, 0x55, 0xe9, 0x6f, 0xca, 0xcb, 0xf7, 0xff, + 0xf0, 0xad, 0x93, 0xf7, 0xf6, 0xb5, 0x8f, 0x54, 0xc5, 0x45, 0x16, 0xcd, 0x0b, 0x7b, 0x86, 0xe9, + 0x3e, 0xb0, 0x74, 0x41, 0x09, 0xcc, 0x87, 0xae, 0x41, 0x86, 0x0f, 0x38, 0xfc, 0x67, 0x86, 0xdb, + 0xfb, 0xcc, 0x2d, 0xd4, 0xd8, 0xbc, 0x67, 0xdf, 0x7c, 0xeb, 0xe4, 0xc8, 0xb1, 0xe7, 0xf6, 0xe6, + 0x42, 0xcf, 0x43, 0x4e, 0xd8, 0xb1, 0x5e, 0x73, 0xf8, 0xd7, 0xc4, 0x77, 0xc5, 0x2c, 0x7b, 0xbd, + 0xc6, 0x67, 0xbf, 0xf3, 0x87, 0x6f, 0x9d, 0x9c, 0x1b, 0x38, 0xf3, 0xc2, 0x5e, 0xc7, 0xa8, 0x29, + 0xfe, 0x39, 0xd0, 0xb3, 0x90, 0x24, 0x53, 0xb1, 0xef, 0x8e, 0x4f, 0xf6, 0x99, 0xca, 0x9b, 0xe2, + 0x0c, 0x5f, 0xe0, 0x30, 0xd3, 0x10, 0xde, 0x99, 0xc7, 0x60, 0xb2, 0x67, 0x7b, 0x90, 0x0c, 0xc9, + 0xab, 0xf8, 0x90, 0x7f, 0x6a, 0x44, 0xfe, 0x45, 0xd3, 0xdd, 0x4f, 0xe9, 0xa4, 0xf9, 0x3c, 0xff, + 0x3e, 0xae, 0x94, 0xb8, 0x20, 0xcd, 0x5c, 0x84, 0xf1, 0x80, 0x8f, 0x8f, 0x05, 0x7e, 0x14, 0xe4, + 0xb0, 0x97, 0x8e, 0x85, 0x3f, 0x0f, 0x99, 0x8f, 0x83, 0x9b, 0xfb, 0x01, 0x82, 0xb1, 0x72, 0xb3, + 0xb9, 0xa9, 0xb5, 0x1d, 0xf4, 0x34, 0x4c, 0xb2, 0xde, 0x7d, 0xd7, 0x5a, 0xa5, 0x3f, 0xec, 0x6c, + 0x6a, 0x6d, 0x1e, 0xd0, 0xf7, 0x04, 0xdc, 0xcd, 0x01, 0x0b, 0x3d, 0xda, 0x74, 0x7e, 0xa5, 0x97, + 0x05, 0x3d, 0x09, 0xb2, 0x10, 0xd2, 0xb3, 0x45, 0x98, 0x59, 0xb8, 0x9e, 0x19, 0xc8, 0x2c, 0x94, + 0x19, 0x71, 0x0f, 0x07, 0x7a, 0x14, 0x32, 0xeb, 0xa6, 0xfb, 0xe0, 0x12, 0xe1, 0x63, 0x31, 0x38, + 0x17, 0xc9, 0x27, 0x94, 0x18, 0x8f, 0x87, 0xe1, 0xf8, 0xf3, 0x67, 0x09, 0x3e, 0x35, 0x18, 0x4f, + 0x95, 0xba, 0x78, 0xfa, 0x88, 0xca, 0x90, 0x25, 0x7b, 0xce, 0x0c, 0x60, 0x1f, 0xb2, 0xdf, 0x16, + 0x49, 0xe0, 0x69, 0x31, 0x86, 0x2e, 0x4a, 0x50, 0x30, 0x1b, 0x46, 0x63, 0x28, 0x7c, 0x46, 0x74, + 0x51, 0x84, 0xa2, 0xea, 0x59, 0x31, 0x36, 0x80, 0xa2, 0x1a, 0xb2, 0xa2, 0xea, 0xb7, 0xa2, 0xea, + 0x59, 0x91, 0x89, 0xa1, 0xf0, 0x5b, 0xe1, 0x3d, 0xa3, 0x55, 0x80, 0x4b, 0xc6, 0x8b, 0xb8, 0xc6, + 0xcc, 0xc8, 0x46, 0x24, 0x23, 0xc1, 0xd1, 0x55, 0x63, 0x24, 0x3e, 0x1c, 0x5a, 0x83, 0x5c, 0xb5, + 0xde, 0xa5, 0x01, 0xfe, 0x1d, 0x7f, 0xa4, 0x29, 0xf5, 0x10, 0x8f, 0x1f, 0xe9, 0x99, 0xc3, 0x96, + 0x94, 0x8b, 0x33, 0xc7, 0xb7, 0x26, 0x1f, 0xae, 0x6b, 0x0e, 0xa3, 0xc9, 0xc7, 0x9a, 0xe3, 0xe3, + 0xf1, 0x23, 0xd1, 0x45, 0x18, 0x5b, 0xb6, 0x2c, 0xa2, 0x59, 0x1c, 0xa7, 0x24, 0xa7, 0x23, 0x49, + 0xb8, 0x0e, 0x23, 0x10, 0x08, 0xba, 0x3b, 0x34, 0xf4, 0x09, 0xbc, 0x30, 0x68, 0x77, 0x84, 0x96, + 0xd8, 0x1d, 0xf1, 0xec, 0x3f, 0x81, 0xcb, 0x87, 0x2e, 0x26, 0x7d, 0x72, 0x71, 0x62, 0x88, 0x13, + 0x28, 0x94, 0x43, 0x27, 0x50, 0x88, 0x51, 0x15, 0x26, 0x84, 0xac, 0x62, 0x76, 0x48, 0x0e, 0x2e, + 0xca, 0xfc, 0x23, 0xe3, 0x41, 0xb4, 0x5c, 0x97, 0xb1, 0x86, 0x19, 0xd0, 0x0e, 0x14, 0x84, 0x68, + 0xd3, 0xa1, 0x8b, 0x9e, 0x8c, 0xa8, 0xab, 0x61, 0x4e, 0xa6, 0xca, 0x28, 0x43, 0xf8, 0x99, 0x55, + 0x38, 0x11, 0x9d, 0xad, 0xe2, 0xb2, 0xa5, 0xe4, 0xcf, 0xb2, 0x2b, 0x70, 0x53, 0x64, 0x66, 0x8a, + 0x23, 0x49, 0x84, 0xea, 0x44, 0x20, 0x1d, 0xf9, 0xc1, 0xe9, 0x08, 0x70, 0xba, 0x17, 0xdc, 0x0d, + 0x32, 0x3f, 0x38, 0x19, 0x01, 0x4e, 0xfa, 0xc1, 0x9f, 0x83, 0x42, 0x30, 0x0f, 0xf9, 0xd1, 0xe3, + 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xdc, 0xa9, 0x08, 0x74, 0x2a, 0x84, 0xae, 0xf6, 0x9d, 0x7b, + 0x32, 0x02, 0x3d, 0x19, 0x81, 0x8e, 0x9e, 0x1b, 0x45, 0xa0, 0x91, 0x1f, 0xfd, 0x08, 0x4c, 0x84, + 0x52, 0x8e, 0x1f, 0x3e, 0x16, 0x01, 0x1f, 0x0b, 0xd5, 0xe6, 0x70, 0xaa, 0xf1, 0xe3, 0x27, 0x22, + 0xf0, 0x13, 0x51, 0xd3, 0x47, 0x5b, 0x3f, 0x1a, 0x01, 0x1f, 0x8d, 0x9c, 0x3e, 0x1a, 0x2f, 0x47, + 0xe0, 0x65, 0x3f, 0xbe, 0x04, 0x79, 0x7f, 0x56, 0xf1, 0x63, 0x33, 0x11, 0xd8, 0x4c, 0xd8, 0xef, + 0x81, 0x94, 0x12, 0x17, 0xe9, 0xd9, 0x3e, 0xc7, 0x25, 0x90, 0x46, 0x8e, 0xd5, 0xd9, 0x5c, 0x81, + 0xe9, 0xa8, 0xa4, 0x11, 0xc1, 0x71, 0xc6, 0xcf, 0x51, 0x58, 0x9a, 0x0e, 0x24, 0x0b, 0x8a, 0xeb, + 0xb4, 0xfc, 0xcc, 0xcf, 0xc2, 0x54, 0x44, 0xea, 0x88, 0x20, 0xbe, 0xdf, 0x4f, 0x9c, 0x5b, 0x9a, + 0x09, 0x10, 0x07, 0xde, 0x15, 0xfc, 0xad, 0xd5, 0x8f, 0xa6, 0xa0, 0xc0, 0x53, 0xd4, 0xb6, 0x5d, + 0xc3, 0x36, 0xae, 0xa1, 0x9f, 0xef, 0xdf, 0x61, 0x2d, 0x45, 0xa5, 0x36, 0x8e, 0x3b, 0x46, 0xa3, + 0xf5, 0x6c, 0xdf, 0x46, 0xeb, 0x81, 0x61, 0x26, 0x88, 0xeb, 0xb7, 0x2a, 0x3d, 0xfd, 0xd6, 0xdd, + 0x83, 0x68, 0xfb, 0xb5, 0x5d, 0x95, 0x9e, 0xb6, 0x2b, 0x8e, 0x26, 0xb2, 0xfb, 0xba, 0xdc, 0xdb, + 0x7d, 0x9d, 0x19, 0xc4, 0xd3, 0xbf, 0x09, 0xbb, 0xdc, 0xdb, 0x84, 0xc5, 0x32, 0x45, 0xf7, 0x62, + 0x97, 0x7b, 0x7b, 0xb1, 0x81, 0x4c, 0xfd, 0x5b, 0xb2, 0xcb, 0xbd, 0x2d, 0x59, 0x2c, 0x53, 0x74, + 0x67, 0xf6, 0x44, 0x44, 0x67, 0x76, 0xcf, 0x20, 0xaa, 0x41, 0x0d, 0xda, 0x56, 0x54, 0x83, 0x76, + 0xef, 0x40, 0xc3, 0x06, 0xf6, 0x69, 0x4f, 0x44, 0xf4, 0x69, 0xf1, 0xc6, 0xf5, 0x69, 0xd7, 0xb6, + 0xa2, 0xda, 0xb5, 0x21, 0x8c, 0xeb, 0xd7, 0xb5, 0x2d, 0x87, 0xbb, 0xb6, 0xf9, 0x41, 0x5c, 0xd1, + 0xcd, 0xdb, 0xe5, 0xde, 0xe6, 0xed, 0x4c, 0xfc, 0x59, 0x8c, 0xea, 0xe1, 0x9e, 0xed, 0xdb, 0xc3, + 0x0d, 0x75, 0xb8, 0xe3, 0x5a, 0xb9, 0x67, 0xfa, 0xb5, 0x72, 0xf7, 0x0f, 0xc3, 0x3e, 0xb8, 0xa3, + 0x7b, 0xaa, 0x4f, 0x47, 0xb7, 0x38, 0x0c, 0xf5, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, + 0xdd, 0xa7, 0x8d, 0xdd, 0xff, 0x8f, 0xc6, 0xae, 0x94, 0x7a, 0xe5, 0xcb, 0x27, 0xa5, 0x33, 0xa7, + 0x61, 0x8c, 0x4f, 0x8d, 0x46, 0x21, 0xb1, 0x59, 0x96, 0x47, 0xe8, 0xdf, 0x65, 0x59, 0xa2, 0x7f, + 0x57, 0xe4, 0xc4, 0xf2, 0xc6, 0x9b, 0x37, 0x66, 0x47, 0xbe, 0x77, 0x63, 0x76, 0xe4, 0x07, 0x37, + 0x66, 0x47, 0xde, 0xbe, 0x31, 0x2b, 0xbd, 0x7b, 0x63, 0x56, 0x7a, 0xff, 0xc6, 0xac, 0xf4, 0xe1, + 0x8d, 0x59, 0xe9, 0xfa, 0xd1, 0xac, 0xf4, 0xd5, 0xa3, 0x59, 0xe9, 0x1b, 0x47, 0xb3, 0xd2, 0xb7, + 0x8f, 0x66, 0xa5, 0xef, 0x1c, 0xcd, 0x4a, 0x6f, 0x1e, 0xcd, 0x8e, 0x7c, 0xef, 0x68, 0x76, 0xe4, + 0xed, 0xa3, 0x59, 0xe9, 0xdd, 0xa3, 0xd9, 0x91, 0xf7, 0x8f, 0x66, 0xa5, 0x0f, 0x8f, 0x66, 0xa5, + 0xeb, 0x3f, 0x9e, 0x95, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x23, 0x13, 0x20, 0x9a, 0x57, 0x45, + 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -519,6 +569,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1207,6 +1381,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1460,6 +1675,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1934,23 +2213,6 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { this := &FloatingPoint{} if r.Intn(10) != 0 { @@ -1966,166 +2228,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2137,164 +2435,164 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 - } - } - } if r.Intn(10) != 0 { v38 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { v40 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { v42 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v43] *= -1 + } } } if r.Intn(10) != 0 { v44 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v45] *= -1 + } } } if r.Intn(10) != 0 { v46 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 - } + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v48 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 - } + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v50 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v51] *= -1 + } } } if r.Intn(10) != 0 { v52 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { v54 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v56 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { v58 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v60 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v61] *= -1 + } + } + } + if r.Intn(10) != 0 { + v62 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v64 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2323,14 +2621,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2338,43 +2636,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -2388,6 +2686,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -2507,7 +2862,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2526,8 +2885,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2656,7 +3016,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2675,8 +3039,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2710,6 +3075,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3112,351 +3531,485 @@ func valueToStringMapsproto2(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.F + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.F i += 8 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *CustomMap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CustomMap) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k := range m.Nullable128S { + dAtA[i] = 0xa + i++ + v := m.Nullable128S[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + if len(m.Uint128S) > 0 { + for k := range m.Uint128S { + dAtA[i] = 0x12 + i++ + v := m.Uint128S[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n2, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + } + if len(m.NullableIds) > 0 { + for k := range m.NullableIds { + dAtA[i] = 0x1a + i++ + v := m.NullableIds[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n3, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + } + } + if len(m.Ids) > 0 { + for k := range m.Ids { + dAtA[i] = 0x22 + i++ + v := m.Ids[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n5, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 } - i += n1 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -3468,18 +4021,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -3489,18 +4042,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -3510,17 +4063,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -3530,17 +4083,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -3550,17 +4103,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -3570,17 +4123,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -3590,17 +4143,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -3610,17 +4163,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -3630,17 +4183,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -3650,17 +4203,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -3670,17 +4223,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -3690,17 +4243,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -3710,25 +4263,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -3740,19 +4293,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -3762,19 +4315,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -3784,20 +4343,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -3807,66 +4366,69 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Mapsproto2(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Mapsproto2(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Mapsproto2(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Mapsproto2(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintMapsproto2(data []byte, offset int, v uint64) int { +func encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3878,7 +4440,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3902,12 +4464,12 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.F = &v default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -3917,7 +4479,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3927,8 +4489,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3940,7 +4502,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3950,15 +4512,15 @@ func (m *AllMaps) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + return fmt.Errorf("proto: CustomMap: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3968,7 +4530,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3990,7 +4552,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4005,7 +4567,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4020,45 +4582,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.Nullable128S == nil { + m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 + m.Nullable128S[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4068,7 +4650,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4090,7 +4672,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4105,7 +4687,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4120,41 +4702,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.Uint128S == nil { + m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_custom.Uint128 + m.Uint128S[mapkey] = mapvalue } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4164,7 +4770,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4186,14 +4792,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -4201,51 +4807,251 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.NullableIds == nil { + m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err + } + iNdEx = postbytesIndex + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test.Uuid + m.NullableIds[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe } if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Ids == nil { + m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err + } + iNdEx = postbytesIndex + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test.Uuid + m.Ids[mapkey] = mapvalue } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex - case 4: + default: + iNdEx = preIndex + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4255,7 +5061,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4277,14 +5083,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int64 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -4292,14 +5098,286 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -4307,14 +5385,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 + var mapkey int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -4322,9 +5400,9 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift + mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } @@ -4332,7 +5410,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - m.Int64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue + } iNdEx = postIndex case 5: if wireType != 2 { @@ -4346,7 +5459,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4368,7 +5481,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4383,47 +5496,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -4437,7 +5555,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4459,7 +5577,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4474,47 +5592,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -4528,7 +5651,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4550,7 +5673,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4565,7 +5688,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4574,42 +5697,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -4623,7 +5751,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4645,7 +5773,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4660,7 +5788,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4669,42 +5797,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -4718,7 +5851,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4740,7 +5873,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4752,38 +5885,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -4797,7 +5935,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4805,37 +5943,13 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + return ErrInvalidLengthMapsproto2Unsafe } - var mapkey int32 - if (iNdEx + 4) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -4843,26 +5957,55 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 + var mapkey int32 if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - m.Sfixed32Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue + } iNdEx = postIndex case 11: if wireType != 2 { @@ -4876,7 +6019,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4898,7 +6041,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4910,46 +6053,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -4963,7 +6111,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4985,7 +6133,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4997,46 +6145,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -5050,7 +6203,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5072,7 +6225,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5087,7 +6240,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5095,41 +6248,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -5143,7 +6301,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5165,7 +6323,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5180,7 +6338,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5195,52 +6353,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -5254,7 +6417,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5276,7 +6439,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5291,7 +6454,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5306,53 +6469,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -5366,7 +6534,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5375,52 +6543,12 @@ func (m *AllMaps) Unmarshal(data []byte) error { } if msglen < 0 { return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + } + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -5428,14 +6556,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -5443,17 +6571,62 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - m.StringToEnumMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue + } iNdEx = postIndex case 17: if wireType != 2 { @@ -5467,7 +6640,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5489,7 +6662,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5504,7 +6677,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5519,61 +6692,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5583,7 +6761,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5593,8 +6771,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5606,7 +6784,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5634,7 +6812,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5656,7 +6834,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5671,7 +6849,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5686,41 +6864,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -5734,7 +6917,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5756,7 +6939,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5771,7 +6954,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5786,37 +6969,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5830,7 +7018,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5852,7 +7040,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5867,47 +7055,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5921,7 +7114,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5943,7 +7136,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5958,47 +7151,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -6012,7 +7210,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6034,7 +7232,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6049,47 +7247,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -6103,7 +7306,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6125,7 +7328,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6140,47 +7343,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6194,7 +7402,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6216,7 +7424,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6231,7 +7439,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -6240,42 +7448,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6289,7 +7502,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6311,7 +7524,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6326,7 +7539,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6335,42 +7548,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6384,7 +7602,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6406,7 +7624,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6418,38 +7636,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6463,7 +7686,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6485,7 +7708,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6497,38 +7720,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6542,7 +7770,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6564,7 +7792,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6576,46 +7804,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6629,49 +7862,21 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - var mapkey int64 - if (iNdEx + 8) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -6679,30 +7884,63 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 + var mapkey int64 if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - m.Sfixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 13: if wireType != 2 { @@ -6716,7 +7954,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6738,7 +7976,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6753,7 +7991,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6761,41 +7999,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6809,7 +8052,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6831,7 +8074,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6846,7 +8089,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6861,52 +8104,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6920,7 +8168,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6942,7 +8190,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6957,7 +8205,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6972,53 +8220,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -7032,7 +8285,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7054,7 +8307,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7069,7 +8322,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7084,42 +8337,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7133,7 +8391,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7155,7 +8413,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7170,7 +8428,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7185,61 +8443,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -7249,7 +8512,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -7259,8 +8522,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func skipMapsproto2Unsafe(data []byte) (n int, err error) { - l := len(data) +func skipMapsproto2Unsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -7271,7 +8534,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7289,7 +8552,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -7306,7 +8569,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7329,7 +8592,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7340,7 +8603,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipMapsproto2Unsafe(data[start:]) + next, err := skipMapsproto2Unsafe(dAtA[start:]) if err != nil { return 0, err } @@ -7364,67 +8627,80 @@ var ( ErrIntOverflowMapsproto2Unsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xbd, 0x4f, 0xeb, 0x56, - 0x18, 0xc6, 0x71, 0xbe, 0x73, 0xf2, 0xe5, 0x1c, 0x68, 0x15, 0x45, 0x6a, 0x5a, 0xd2, 0x56, 0x0a, - 0xa1, 0x4d, 0x68, 0x5a, 0x55, 0x15, 0xb4, 0x48, 0x04, 0x42, 0x53, 0x51, 0x28, 0x22, 0xfd, 0x96, - 0x90, 0x9a, 0x14, 0x27, 0x44, 0x4d, 0x62, 0x14, 0xdb, 0x55, 0xd9, 0xf8, 0x33, 0xba, 0x76, 0xeb, - 0xd8, 0xb1, 0xe3, 0x1d, 0x19, 0xef, 0xc8, 0x70, 0x07, 0xe0, 0x2e, 0x8c, 0x8c, 0x8c, 0xf7, 0xf8, - 0x1c, 0xdb, 0x39, 0xb6, 0x5f, 0xdb, 0xb9, 0xdb, 0x1d, 0x32, 0x1c, 0xd9, 0xe7, 0xe4, 0x7d, 0x7e, - 0xe7, 0x71, 0xec, 0xf3, 0xea, 0x41, 0xe5, 0xdf, 0xe5, 0x71, 0x4f, 0x56, 0xea, 0xda, 0x44, 0xe9, - 0xf6, 0xa5, 0x9e, 0xac, 0x9e, 0xd7, 0xc7, 0xdd, 0x0b, 0xe5, 0x62, 0x2a, 0xab, 0x72, 0xa3, 0x46, - 0x2f, 0x38, 0x65, 0xcc, 0xf4, 0x1f, 0x8a, 0x1f, 0x0f, 0x86, 0xea, 0xb9, 0xd6, 0xab, 0x11, 0x5d, - 0x7d, 0x20, 0x0f, 0xe4, 0x3a, 0xfd, 0xb1, 0xa7, 0xf5, 0xe9, 0x8c, 0x4e, 0xe8, 0x1d, 0xd3, 0x96, - 0xdf, 0x41, 0x99, 0xfd, 0x91, 0xdc, 0x55, 0x87, 0x93, 0xc1, 0xb1, 0x3c, 0x9c, 0xa8, 0x38, 0x8d, - 0x84, 0x7e, 0x41, 0x78, 0x4f, 0xa8, 0x08, 0x27, 0x42, 0xbf, 0x7c, 0x83, 0x51, 0x7c, 0x67, 0x34, - 0x3a, 0x24, 0x64, 0xfc, 0x0b, 0xca, 0x77, 0xd4, 0x29, 0x29, 0xfc, 0x5e, 0xde, 0x93, 0xb5, 0xde, - 0x48, 0x22, 0xab, 0xa4, 0x32, 0x5c, 0x49, 0x35, 0xd6, 0x6b, 0x9c, 0x85, 0x9a, 0x21, 0xa8, 0xb9, - 0xaa, 0x5b, 0x13, 0x75, 0x7a, 0x79, 0x92, 0x57, 0x9c, 0xeb, 0xf8, 0x47, 0x24, 0x9a, 0xc5, 0xd4, - 0x8d, 0x4e, 0x0e, 0x51, 0x72, 0xd5, 0x97, 0x6c, 0x16, 0x33, 0xb0, 0xa8, 0x38, 0x96, 0xf1, 0x36, - 0x4a, 0x7c, 0x33, 0x51, 0x3f, 0x6d, 0xe8, 0xbc, 0x30, 0xe5, 0x95, 0x41, 0x9e, 0x59, 0xc4, 0x38, - 0x89, 0xa1, 0x31, 0x35, 0xf4, 0x9f, 0x7f, 0xa6, 0xeb, 0x23, 0xfe, 0x7a, 0x5a, 0x34, 0xd3, 0xd3, - 0x29, 0xde, 0x41, 0xc9, 0x1f, 0x4c, 0x58, 0x21, 0x4a, 0x01, 0xef, 0x83, 0x00, 0xab, 0x8a, 0x11, - 0x92, 0x9a, 0x65, 0xc1, 0x40, 0x30, 0x0f, 0xb1, 0x00, 0x04, 0x67, 0x82, 0x22, 0x2c, 0x17, 0x1d, - 0xcb, 0x45, 0xdc, 0x07, 0xd1, 0x71, 0xb8, 0x50, 0x78, 0x17, 0x1d, 0xcb, 0x45, 0x22, 0x00, 0xc1, - 0xbb, 0x50, 0x2c, 0x17, 0x7b, 0x08, 0xed, 0x0f, 0xff, 0x92, 0xce, 0x98, 0x8d, 0x24, 0x65, 0x7c, - 0x00, 0x32, 0x66, 0x65, 0x0c, 0x82, 0xfa, 0xd6, 0x02, 0xfe, 0x1a, 0xa5, 0x3a, 0xb3, 0x69, 0x01, - 0x51, 0xcc, 0x87, 0xb0, 0x95, 0xbe, 0x83, 0x93, 0x52, 0x38, 0x90, 0x69, 0x87, 0x3d, 0x52, 0x2a, - 0xc8, 0x0e, 0xf7, 0x4c, 0xcc, 0x0e, 0x7b, 0x28, 0xcb, 0x0e, 0xc3, 0xa4, 0x03, 0xed, 0x70, 0x1c, - 0xc3, 0x0e, 0x03, 0x6d, 0xa1, 0x78, 0x53, 0x96, 0xf5, 0xca, 0x42, 0x86, 0x42, 0x56, 0x41, 0x88, - 0x51, 0xc3, 0x00, 0xf1, 0x1e, 0x9b, 0xd1, 0xb7, 0x43, 0x3f, 0x7d, 0x5d, 0x9e, 0xf5, 0x7b, 0x3b, - 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x39, 0x7f, 0x02, 0x9b, 0x97, 0xaa, 0xa4, 0xe8, 0xa4, 0xdc, 0x1c, - 0x27, 0xd0, 0x2c, 0x76, 0x9c, 0x40, 0x73, 0x19, 0x77, 0x50, 0xce, 0x2c, 0x6d, 0x4d, 0xb4, 0xb1, - 0x8e, 0x15, 0x29, 0x76, 0xcd, 0x17, 0x6b, 0xd4, 0x32, 0x6a, 0x4e, 0xb1, 0xaf, 0xe2, 0x63, 0x94, - 0x35, 0x0b, 0x0f, 0x15, 0xfa, 0xd0, 0x79, 0xca, 0xac, 0xf8, 0x32, 0x59, 0x29, 0x43, 0x66, 0x15, - 0xdb, 0x62, 0x71, 0x0f, 0xbd, 0x0d, 0x77, 0x2b, 0x2c, 0xa2, 0xf0, 0x1f, 0xd2, 0x25, 0xed, 0x88, - 0xc9, 0x13, 0xfd, 0x16, 0xaf, 0xa0, 0xe8, 0x9f, 0xdd, 0x91, 0x26, 0x91, 0x0e, 0xa5, 0x77, 0x49, - 0x36, 0xd9, 0x0c, 0x7d, 0x21, 0x14, 0x77, 0xd1, 0x5b, 0x60, 0x67, 0x0a, 0x82, 0x84, 0x78, 0xc8, - 0x16, 0xca, 0xd8, 0xda, 0x11, 0x2f, 0x8e, 0x02, 0xe2, 0xa8, 0x5b, 0x3c, 0xfb, 0xc8, 0x78, 0x71, - 0x18, 0x10, 0x87, 0x79, 0xf1, 0x97, 0x28, 0x6b, 0xef, 0x43, 0xbc, 0x3a, 0x03, 0xa8, 0x33, 0x80, - 0x1a, 0xde, 0x3b, 0x02, 0xa8, 0x23, 0x0e, 0x75, 0xc7, 0x73, 0xef, 0x3c, 0xa0, 0xce, 0x03, 0x6a, - 0x78, 0x6f, 0x0c, 0xa8, 0x31, 0xaf, 0xfe, 0x0a, 0xe5, 0x1c, 0x2d, 0x87, 0x97, 0xc7, 0x01, 0x79, - 0x9c, 0x97, 0x6f, 0x93, 0xa3, 0xd3, 0xf7, 0xd6, 0xe7, 0x00, 0x7d, 0x0e, 0xda, 0x1e, 0x76, 0x1f, - 0x03, 0xe4, 0x31, 0x70, 0x7b, 0x58, 0x2f, 0x02, 0x7a, 0x91, 0xd7, 0x6f, 0xa2, 0x34, 0xdf, 0x55, - 0x78, 0x6d, 0x02, 0xd0, 0x26, 0x9c, 0xff, 0xbb, 0xad, 0xa5, 0x04, 0x7d, 0xe9, 0x49, 0x8f, 0xe3, - 0x62, 0x6b, 0x23, 0x41, 0x90, 0x34, 0x0f, 0xf9, 0x19, 0xad, 0x40, 0x4d, 0x03, 0x60, 0x54, 0x79, - 0x46, 0xb6, 0xb1, 0x62, 0x6b, 0x16, 0x54, 0xa7, 0x8d, 0x79, 0xf2, 0x29, 0x5a, 0x06, 0x5a, 0x07, - 0x00, 0xde, 0xe0, 0xc1, 0xa9, 0x46, 0xd1, 0x06, 0xb6, 0xa5, 0x2b, 0x0e, 0x5f, 0x7e, 0xb1, 0x8c, - 0xb2, 0x46, 0x8b, 0xfa, 0x6e, 0x7a, 0x26, 0x4d, 0xa5, 0x33, 0xfc, 0x9b, 0x77, 0xc2, 0x6a, 0x40, - 0xad, 0xcd, 0xd0, 0xbd, 0x46, 0xd0, 0x3a, 0xf5, 0x0c, 0x5a, 0x9f, 0xcc, 0xb3, 0x41, 0x50, 0xde, - 0x6a, 0xb9, 0xf2, 0xd6, 0x9a, 0x1f, 0xd6, 0x2b, 0x76, 0xb5, 0x5c, 0xb1, 0x2b, 0x08, 0x03, 0xa6, - 0xaf, 0xb6, 0x3b, 0x7d, 0x55, 0xfd, 0x38, 0xde, 0x21, 0xac, 0xed, 0x0e, 0x61, 0x81, 0x24, 0x38, - 0x8b, 0xb5, 0xdd, 0x59, 0xcc, 0x97, 0xe4, 0x1d, 0xc9, 0xda, 0xee, 0x48, 0x16, 0x48, 0x82, 0x93, - 0xd9, 0x01, 0x90, 0xcc, 0xd6, 0xfd, 0x50, 0x7e, 0x01, 0xed, 0x08, 0x0a, 0x68, 0x1f, 0xf9, 0x1a, - 0xf3, 0xcd, 0x69, 0x07, 0x40, 0x4e, 0x0b, 0x36, 0xe7, 0x11, 0xd7, 0x8e, 0xa0, 0xb8, 0x36, 0x87, - 0x39, 0xaf, 0xd4, 0xd6, 0x74, 0xa6, 0xb6, 0x8a, 0x1f, 0x0b, 0x0e, 0x6f, 0x6d, 0x77, 0x78, 0xab, - 0x06, 0x9f, 0x45, 0x28, 0xc3, 0x9d, 0x7a, 0x66, 0xb8, 0xb9, 0x0e, 0x77, 0x50, 0x94, 0xfb, 0xd5, - 0x2b, 0xca, 0x6d, 0xcc, 0x43, 0xf7, 0x4f, 0x74, 0x3f, 0x79, 0x24, 0xba, 0xfa, 0x3c, 0xe8, 0x45, - 0xb0, 0x5b, 0x04, 0xbb, 0x45, 0xb0, 0x5b, 0x04, 0xbb, 0x37, 0x23, 0xd8, 0x6d, 0x46, 0xfe, 0xfe, - 0xe7, 0x5d, 0xa1, 0xba, 0x8a, 0xe2, 0xc6, 0xd6, 0x38, 0x86, 0x42, 0x87, 0x3b, 0xe2, 0x12, 0xbd, - 0x36, 0x45, 0x81, 0x5e, 0x77, 0xc5, 0x50, 0xf3, 0xdb, 0xeb, 0xbb, 0xd2, 0xd2, 0x73, 0x32, 0x6e, - 0xc8, 0xb8, 0xbd, 0x2b, 0x09, 0x0f, 0x64, 0x3c, 0x92, 0xf1, 0x44, 0xc6, 0xd5, 0x7d, 0x49, 0xf8, - 0x97, 0x8c, 0xff, 0xc8, 0xf8, 0x9f, 0x8c, 0x67, 0x64, 0x5c, 0xdf, 0x93, 0x7a, 0x32, 0x6e, 0xc9, - 0xfd, 0x03, 0xb9, 0x3e, 0x92, 0xeb, 0x13, 0x19, 0x57, 0x2f, 0x4b, 0xc2, 0xab, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x41, 0x47, 0x97, 0x39, 0x2a, 0x14, 0x00, 0x00, + // 1150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0xc7, + 0x1b, 0xc7, 0x19, 0xb0, 0x0d, 0x0c, 0xef, 0x13, 0xff, 0x7e, 0x42, 0x48, 0x1d, 0x1c, 0xfa, 0x46, + 0x48, 0x0a, 0x36, 0x8d, 0x22, 0xcb, 0x69, 0x53, 0x19, 0xdb, 0x29, 0x56, 0x8a, 0x1b, 0x41, 0xd3, + 0x37, 0xc9, 0x52, 0xc1, 0x2c, 0x04, 0x15, 0x58, 0xca, 0xee, 0x46, 0xf5, 0xa5, 0xca, 0x9f, 0xd1, + 0x6b, 0x6f, 0x3d, 0xf6, 0xd8, 0x63, 0x8f, 0x96, 0x7a, 0xc9, 0x31, 0x8a, 0x2a, 0x2b, 0x6c, 0x2f, + 0x39, 0xe6, 0x98, 0x63, 0xb5, 0xb3, 0xbb, 0x30, 0xbb, 0xfb, 0xec, 0x2e, 0xf4, 0xd4, 0x83, 0x4f, + 0x78, 0x96, 0xe7, 0xfb, 0xf9, 0x3e, 0xbb, 0x3b, 0xf3, 0xf0, 0x35, 0x2e, 0x9c, 0x89, 0xa3, 0x8e, + 0x28, 0x55, 0x94, 0xb1, 0xd4, 0xee, 0x09, 0x1d, 0x51, 0x7e, 0x5c, 0x19, 0xb5, 0x27, 0xd2, 0x64, + 0x2a, 0xca, 0x62, 0xb5, 0xcc, 0x3e, 0x48, 0xcc, 0x58, 0x69, 0x5f, 0xe4, 0x3e, 0xe8, 0x0f, 0xe4, + 0xc7, 0x4a, 0xa7, 0x7c, 0x26, 0x8e, 0x2a, 0x7d, 0xb1, 0x2f, 0x56, 0xd8, 0x97, 0x1d, 0xa5, 0xc7, + 0x56, 0x6c, 0xc1, 0xfe, 0xd2, 0xb5, 0x85, 0xb7, 0x70, 0xe2, 0xfe, 0x50, 0x6c, 0xcb, 0x83, 0x71, + 0xff, 0xa1, 0x38, 0x18, 0xcb, 0x24, 0x8e, 0x51, 0x2f, 0x8b, 0xb6, 0x50, 0x11, 0x35, 0x51, 0xaf, + 0xf0, 0xe7, 0x3a, 0x8e, 0x1e, 0x28, 0x92, 0x2c, 0x8e, 0x1a, 0xed, 0x09, 0xf9, 0x09, 0xc7, 0x4f, + 0x94, 0xe1, 0xb0, 0xdd, 0x19, 0x0a, 0x3b, 0xd5, 0x5d, 0x29, 0x8b, 0xb6, 0x42, 0xc5, 0x58, 0xb5, + 0x58, 0xe6, 0xfc, 0xcb, 0xf3, 0xea, 0x32, 0x5f, 0x7a, 0x34, 0x96, 0xa7, 0xe7, 0xb5, 0xed, 0x17, + 0x97, 0xf9, 0x5b, 0xae, 0xfd, 0xc9, 0x82, 0x24, 0x57, 0xce, 0x98, 0xbc, 0xfc, 0x68, 0x30, 0x96, + 0x77, 0xaa, 0xbb, 0x4d, 0x8b, 0x1f, 0x79, 0x82, 0x23, 0xc6, 0x17, 0x52, 0x36, 0xc8, 0xbc, 0xdf, + 0x71, 0xf1, 0x36, 0xcb, 0x74, 0xdf, 0xdb, 0x17, 0x97, 0xf9, 0xc0, 0xca, 0xde, 0x73, 0x2f, 0xf2, + 0x03, 0x8e, 0x99, 0x7d, 0x1c, 0x77, 0xa5, 0x6c, 0x88, 0x59, 0xbf, 0xef, 0x73, 0xdb, 0xc7, 0x5d, + 0xc3, 0xfd, 0xbd, 0x17, 0x97, 0xf9, 0x82, 0xa7, 0x73, 0xf9, 0x91, 0x32, 0xe8, 0x36, 0x79, 0x0f, + 0x72, 0x8a, 0x43, 0x9a, 0xd5, 0x1a, 0xb3, 0xca, 0xbb, 0x58, 0xcd, 0x2d, 0x4a, 0xc6, 0x0d, 0x2e, + 0x63, 0xa3, 0x71, 0x73, 0x9f, 0xe0, 0x8c, 0xe3, 0xf5, 0x90, 0x34, 0x0e, 0x7d, 0x2f, 0x9c, 0xb3, + 0x97, 0x1f, 0x6d, 0x6a, 0x7f, 0x92, 0x4d, 0xbc, 0xfe, 0xa4, 0x3d, 0x54, 0x84, 0x6c, 0x70, 0x0b, + 0x15, 0xe3, 0x4d, 0x7d, 0xb1, 0x17, 0xdc, 0x45, 0xb9, 0xbb, 0x38, 0x61, 0x79, 0xc6, 0x2b, 0x89, + 0xef, 0xe1, 0xb4, 0xfd, 0x29, 0xad, 0xa4, 0xbf, 0x83, 0x23, 0xff, 0x46, 0x57, 0x78, 0x4e, 0x70, + 0x78, 0x7f, 0x38, 0x6c, 0xb4, 0x27, 0x12, 0xf9, 0x06, 0x67, 0x5a, 0xf2, 0x74, 0x30, 0xee, 0x7f, + 0x21, 0x1e, 0x8a, 0x4a, 0x67, 0x28, 0x34, 0xda, 0x13, 0x63, 0x43, 0xdf, 0xb4, 0x3c, 0x6e, 0x43, + 0x50, 0x76, 0x54, 0x33, 0xff, 0xa6, 0x93, 0x42, 0xbe, 0xc4, 0x69, 0xf3, 0x22, 0x3b, 0x5b, 0x1a, + 0x59, 0xdf, 0xae, 0x25, 0x4f, 0xb2, 0x59, 0xac, 0x83, 0x1d, 0x0c, 0x72, 0x0f, 0x47, 0x8e, 0xc7, + 0xf2, 0x87, 0x55, 0x8d, 0xa7, 0xef, 0xc1, 0x02, 0xc8, 0x33, 0x8b, 0x74, 0xce, 0x5c, 0x63, 0xe8, + 0xef, 0xdc, 0xd6, 0xf4, 0x6b, 0xde, 0x7a, 0x56, 0xb4, 0xd0, 0xb3, 0x25, 0xd9, 0xc7, 0x51, 0xed, + 0x9d, 0xeb, 0x0d, 0xac, 0x33, 0xc0, 0xdb, 0x20, 0x60, 0x5e, 0xa5, 0x13, 0x16, 0x2a, 0x13, 0xa1, + 0xf7, 0xb0, 0xe1, 0x83, 0xe0, 0x9a, 0x58, 0xa8, 0x34, 0x44, 0x6b, 0xde, 0x45, 0xd8, 0x03, 0xd1, + 0xb2, 0x75, 0xd1, 0xe2, 0xbb, 0x68, 0xcd, 0xbb, 0x88, 0xf8, 0x20, 0xf8, 0x2e, 0xe6, 0x6b, 0x72, + 0x88, 0xf1, 0xfd, 0xc1, 0x8f, 0x42, 0x57, 0x6f, 0x23, 0x0a, 0x0c, 0x23, 0x93, 0xb1, 0x28, 0xd3, + 0x21, 0x9c, 0x8e, 0x7c, 0x8a, 0x63, 0xad, 0xde, 0x02, 0x83, 0x19, 0xe6, 0x5d, 0xb8, 0x95, 0x9e, + 0x8d, 0xc3, 0x2b, 0xe7, 0xed, 0xe8, 0xb7, 0x14, 0xf3, 0x6b, 0x87, 0xbb, 0x27, 0x4e, 0xb7, 0x68, + 0x47, 0xc7, 0xc4, 0x7d, 0xdb, 0xe1, 0x38, 0xbc, 0x92, 0xdc, 0xc5, 0xe1, 0x9a, 0x28, 0x6a, 0x95, + 0xd9, 0x04, 0x83, 0x5c, 0x07, 0x21, 0x46, 0x8d, 0x0e, 0x30, 0x15, 0xec, 0xed, 0xb0, 0xad, 0xaf, + 0xc9, 0x93, 0x5e, 0x6f, 0xc7, 0xac, 0x32, 0xdf, 0x8e, 0xb9, 0xe6, 0x4f, 0x60, 0xed, 0x5c, 0x16, + 0x24, 0x8d, 0x94, 0x5a, 0xe2, 0x04, 0x9a, 0xc5, 0xb6, 0x13, 0x68, 0x5e, 0x26, 0x2d, 0x9c, 0x32, + 0xaf, 0x1d, 0x8d, 0x15, 0x6d, 0x06, 0x67, 0xd3, 0x0c, 0x7b, 0xc3, 0x13, 0x6b, 0xd4, 0xea, 0x54, + 0x3b, 0x81, 0x3c, 0xc4, 0x49, 0xf3, 0x52, 0x43, 0x62, 0x37, 0x9d, 0x01, 0x7e, 0x57, 0xed, 0x4c, + 0xbd, 0x54, 0x47, 0xda, 0xf4, 0xb9, 0x43, 0xfc, 0x7f, 0x78, 0x5a, 0xf9, 0x4d, 0x4b, 0xc4, 0x4f, + 0xd9, 0x03, 0xfc, 0x3f, 0x70, 0x32, 0xf9, 0x41, 0x82, 0xb6, 0xdf, 0x09, 0xcb, 0x38, 0xe2, 0xc5, + 0xeb, 0x80, 0x78, 0xdd, 0x29, 0x5e, 0x6c, 0x32, 0x5e, 0x1c, 0x02, 0xc4, 0x21, 0x5e, 0xfc, 0x11, + 0x4e, 0x5a, 0xe7, 0x10, 0xaf, 0x4e, 0x00, 0xea, 0x04, 0xa0, 0x86, 0xbd, 0xd7, 0x00, 0xf5, 0x9a, + 0x4d, 0xdd, 0x72, 0xf5, 0xce, 0x00, 0xea, 0x0c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xbc, 0xfa, + 0x63, 0x9c, 0xb2, 0x8d, 0x1c, 0x5e, 0x1e, 0x06, 0xe4, 0x61, 0xdb, 0x6f, 0xb3, 0x7d, 0xd4, 0xf0, + 0xfa, 0x14, 0xa0, 0x4f, 0x41, 0xf6, 0x70, 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, 0x69, + 0x40, 0x9f, 0xe6, 0xf5, 0x7b, 0x38, 0xce, 0x4f, 0x15, 0x5e, 0x1b, 0x01, 0xb4, 0x11, 0xfb, 0x73, + 0xb7, 0x8c, 0x14, 0xbf, 0x9d, 0x1e, 0x75, 0x39, 0x2e, 0x96, 0x31, 0xb2, 0x52, 0xb2, 0xf9, 0x1a, + 0x6f, 0x42, 0x43, 0x03, 0x60, 0x94, 0x78, 0x46, 0xb2, 0xba, 0x69, 0x19, 0x16, 0x4c, 0xa7, 0x8c, + 0x78, 0xf2, 0x29, 0xbe, 0x06, 0x8c, 0x0e, 0x00, 0xbc, 0xcd, 0x83, 0x63, 0xd5, 0x9c, 0x05, 0x6c, + 0xf9, 0x5f, 0x81, 0x8f, 0x56, 0x7f, 0x5d, 0xc3, 0x49, 0x63, 0x44, 0x7d, 0x3e, 0xed, 0x0a, 0x53, + 0xa1, 0x4b, 0xbe, 0x73, 0x4f, 0x58, 0x55, 0x68, 0xb4, 0x19, 0xba, 0x15, 0x82, 0xd6, 0xa9, 0x6b, + 0xd0, 0xda, 0x59, 0xc6, 0xc0, 0x2f, 0x6f, 0x1d, 0x39, 0xf2, 0xd6, 0x0d, 0x2f, 0xac, 0x5b, 0xec, + 0x3a, 0x72, 0xc4, 0x2e, 0x3f, 0x0c, 0x98, 0xbe, 0xea, 0xce, 0xf4, 0x55, 0xf2, 0xe2, 0xb8, 0x87, + 0xb0, 0xba, 0x33, 0x84, 0xf9, 0x92, 0xe0, 0x2c, 0x56, 0x77, 0x66, 0x31, 0x4f, 0x92, 0x7b, 0x24, + 0xab, 0x3b, 0x23, 0x99, 0x2f, 0x09, 0x4e, 0x66, 0x0f, 0x80, 0x64, 0x76, 0xd3, 0x0b, 0xe5, 0x15, + 0xd0, 0x4e, 0xa0, 0x80, 0x76, 0xcb, 0xb3, 0x31, 0xcf, 0x9c, 0xf6, 0x00, 0xc8, 0x69, 0xfe, 0xcd, + 0xb9, 0xc4, 0xb5, 0x13, 0x28, 0xae, 0x2d, 0xd1, 0x9c, 0x5b, 0x6a, 0xab, 0xd9, 0x53, 0x5b, 0xd1, + 0x8b, 0x05, 0x87, 0xb7, 0xba, 0x33, 0xbc, 0x95, 0xfc, 0xcf, 0x22, 0x94, 0xe1, 0x4e, 0x5d, 0x33, + 0xdc, 0x52, 0x87, 0xdb, 0x2f, 0xca, 0x7d, 0xeb, 0x16, 0xe5, 0xb6, 0x97, 0xa1, 0x7b, 0x27, 0xba, + 0xaf, 0x5c, 0x12, 0x5d, 0x65, 0x19, 0xf4, 0x55, 0xb0, 0xbb, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, + 0xd8, 0xfd, 0x37, 0x82, 0xdd, 0xde, 0xda, 0xcf, 0xbf, 0xe4, 0x51, 0xe9, 0x3a, 0x0e, 0x1b, 0xd6, + 0x64, 0x03, 0x07, 0x1b, 0xfb, 0xe9, 0x00, 0xfb, 0xac, 0xa5, 0x11, 0xfb, 0x3c, 0x48, 0x07, 0x6b, + 0x9f, 0x5d, 0xcc, 0x68, 0xe0, 0xd9, 0x8c, 0x06, 0x9e, 0xcf, 0x68, 0xe0, 0xe5, 0x8c, 0xa2, 0x57, + 0x33, 0x8a, 0x5e, 0xcf, 0x28, 0x7a, 0x33, 0xa3, 0xe8, 0xa9, 0x4a, 0xd1, 0xaf, 0x2a, 0x45, 0xbf, + 0xa9, 0x14, 0xfd, 0xae, 0x52, 0xf4, 0x87, 0x4a, 0xd1, 0x85, 0x4a, 0x03, 0xcf, 0x54, 0x1a, 0x78, + 0xa9, 0x52, 0xf4, 0x4a, 0xa5, 0x81, 0xd7, 0x2a, 0x45, 0x6f, 0x54, 0x8a, 0x9e, 0xfe, 0x4d, 0xd1, + 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x97, 0x11, 0x03, 0x1b, 0xf8, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto index 6bcbeaba..c98fc2d2 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go index a9b09af7..ba3a6a0d 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -18,6 +19,7 @@ package proto2_maps import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -32,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -66,24 +72,28 @@ func TestFloatingPointProto(t *testing.T) { } func TestFloatingPointMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -102,11 +112,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -116,11 +126,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -133,22 +143,136 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestCustomMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -168,24 +292,28 @@ func TestAllMapsProto(t *testing.T) { } func TestAllMapsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -204,11 +332,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -218,11 +346,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -236,21 +364,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -270,24 +402,28 @@ func TestAllMapsOrderedProto(t *testing.T) { } func TestAllMapsOrderedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -306,11 +442,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -320,11 +456,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -358,6 +494,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -404,9 +561,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -421,9 +578,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -438,9 +629,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -455,9 +646,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -472,9 +663,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -489,9 +680,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -506,14 +697,37 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -521,14 +735,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -536,14 +754,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -558,6 +780,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -587,6 +817,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -618,13 +861,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -649,18 +892,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -690,13 +969,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -730,6 +1009,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go index 27b44ea4..42993b24 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,12 +33,10 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" import unsafe "unsafe" -import errors "errors" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -43,7 +45,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -91,58 +95,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -150,6 +167,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -159,264 +179,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4104 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xef, 0xe4, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0x6d, 0xc7, - 0x6b, 0x39, 0x91, 0x1c, 0x25, 0xb6, 0xd7, 0x74, 0xe2, 0x40, 0x17, 0xae, 0x56, 0x8e, 0x6e, 0x1d, - 0x4a, 0xf6, 0xda, 0x85, 0xc1, 0x8e, 0xc8, 0x21, 0x45, 0x7b, 0x38, 0xc3, 0x72, 0x86, 0xf6, 0x2a, - 0x4f, 0x2e, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x1c, 0x27, 0xad, 0x03, 0xb4, 0x4e, 0xd3, - 0x4b, 0x92, 0xde, 0x50, 0xf4, 0x29, 0x40, 0x91, 0x36, 0x4f, 0x45, 0xdb, 0xa7, 0x3c, 0xe4, 0x21, - 0x49, 0x0d, 0xd4, 0x6d, 0xd3, 0xd6, 0x05, 0x0c, 0x34, 0x80, 0x5f, 0x7a, 0xfe, 0xdb, 0xf0, 0x9f, - 0xe1, 0x90, 0x43, 0x05, 0x48, 0x93, 0x87, 0x15, 0x40, 0x88, 0x73, 0xfe, 0xf3, 0x7d, 0x73, 0xe6, - 0xfc, 0xe7, 0x3f, 0xe7, 0xfc, 0x3f, 0x07, 0xfe, 0xf6, 0x23, 0x70, 0x4f, 0xc7, 0xb6, 0x3b, 0xa6, - 0xb1, 0xda, 0x1f, 0xd8, 0xae, 0x7d, 0x32, 0x6c, 0xaf, 0xb6, 0x0c, 0xa7, 0x39, 0xe8, 0xf6, 0x5d, - 0x7b, 0xb0, 0x42, 0x65, 0x6a, 0x89, 0x69, 0xac, 0x08, 0x8d, 0xca, 0x1e, 0xcc, 0x5f, 0xeb, 0x9a, - 0xc6, 0x96, 0xa7, 0x58, 0x37, 0x5c, 0xf5, 0x2a, 0x24, 0xdb, 0x28, 0x2c, 0xc7, 0xee, 0x49, 0x5c, - 0xc9, 0xaf, 0xdd, 0xb7, 0x12, 0x00, 0xad, 0xf8, 0x11, 0x87, 0x44, 0xac, 0x51, 0x44, 0xe5, 0xed, - 0x24, 0x2c, 0x84, 0x8c, 0xaa, 0x2a, 0x24, 0x2d, 0xbd, 0x47, 0x18, 0x63, 0x57, 0x72, 0x1a, 0xfd, - 0xae, 0x96, 0x21, 0xd3, 0xd7, 0x9b, 0x2f, 0xea, 0x1d, 0xa3, 0x1c, 0xa7, 0x62, 0x71, 0xa9, 0x5e, - 0x04, 0x68, 0x19, 0x7d, 0xc3, 0x6a, 0x19, 0x56, 0xf3, 0xac, 0x9c, 0x40, 0x2b, 0x72, 0x9a, 0x24, - 0x51, 0x1f, 0x82, 0xf9, 0xfe, 0xf0, 0xc4, 0xec, 0x36, 0x1b, 0x92, 0x1a, 0xa0, 0x5a, 0x4a, 0x53, - 0xd8, 0xc0, 0xd6, 0x48, 0xf9, 0x01, 0x28, 0xbd, 0x6c, 0xe8, 0x2f, 0xca, 0xaa, 0x79, 0xaa, 0x5a, - 0x24, 0x62, 0x49, 0x71, 0x13, 0x0a, 0x3d, 0xc3, 0x71, 0xd0, 0x80, 0x86, 0x7b, 0xd6, 0x37, 0xca, - 0x49, 0xfa, 0xf4, 0xf7, 0x8c, 0x3d, 0x7d, 0xf0, 0xc9, 0xf3, 0x1c, 0x75, 0x84, 0x20, 0x75, 0x1d, - 0x72, 0x86, 0x35, 0xec, 0x31, 0x86, 0xd4, 0x04, 0xff, 0xd5, 0x50, 0x23, 0xc8, 0x92, 0x25, 0x30, - 0x4e, 0x91, 0x71, 0x8c, 0xc1, 0x4b, 0xdd, 0xa6, 0x51, 0x4e, 0x53, 0x82, 0x07, 0xc6, 0x08, 0xea, - 0x6c, 0x3c, 0xc8, 0x21, 0x70, 0xf8, 0x28, 0x39, 0xe3, 0xa6, 0x6b, 0x58, 0x4e, 0xd7, 0xb6, 0xca, - 0x19, 0x4a, 0x72, 0x7f, 0xc8, 0x2c, 0x1a, 0x66, 0x2b, 0x48, 0x31, 0xc2, 0xa9, 0x8f, 0x42, 0xc6, - 0xee, 0xbb, 0xf8, 0xcd, 0x29, 0x67, 0x71, 0x7e, 0xf2, 0x6b, 0x77, 0x85, 0x06, 0xc2, 0x01, 0xd3, - 0xd1, 0x84, 0xb2, 0xba, 0x03, 0x8a, 0x63, 0x0f, 0x07, 0x4d, 0xa3, 0xd1, 0xb4, 0x5b, 0x46, 0xa3, - 0x6b, 0xb5, 0xed, 0x72, 0x8e, 0x12, 0x5c, 0x1a, 0x7f, 0x10, 0xaa, 0xb8, 0x89, 0x7a, 0x3b, 0xa8, - 0xa6, 0x15, 0x1d, 0xdf, 0xb5, 0x7a, 0x01, 0xd2, 0xce, 0x99, 0xe5, 0xea, 0x37, 0xcb, 0x05, 0x1a, - 0x21, 0xfc, 0xaa, 0xf2, 0xbf, 0x29, 0x28, 0xcd, 0x12, 0x62, 0x4f, 0x40, 0xaa, 0x4d, 0x9e, 0x12, - 0x03, 0xec, 0x1c, 0x3e, 0x60, 0x18, 0xbf, 0x13, 0xd3, 0x3f, 0xa4, 0x13, 0xd7, 0x21, 0x6f, 0x19, - 0x8e, 0x6b, 0xb4, 0x58, 0x44, 0x24, 0x66, 0x8c, 0x29, 0x60, 0xa0, 0xf1, 0x90, 0x4a, 0xfe, 0x50, - 0x21, 0x75, 0x03, 0x4a, 0x9e, 0x49, 0x8d, 0x81, 0x6e, 0x75, 0x44, 0x6c, 0xae, 0x46, 0x59, 0xb2, - 0x52, 0x13, 0x38, 0x8d, 0xc0, 0xb4, 0xa2, 0xe1, 0xbb, 0x56, 0xb7, 0x00, 0x6c, 0xcb, 0xb0, 0xdb, - 0xb8, 0xbc, 0x9a, 0x26, 0xc6, 0x49, 0xb8, 0x97, 0x0e, 0x88, 0xca, 0x98, 0x97, 0x6c, 0x26, 0x6d, - 0x9a, 0xea, 0xe3, 0xa3, 0x50, 0xcb, 0x4c, 0x88, 0x94, 0x3d, 0xb6, 0xc8, 0xc6, 0xa2, 0xed, 0x18, - 0x8a, 0x03, 0x83, 0xc4, 0x3d, 0xba, 0x98, 0x3d, 0x59, 0x8e, 0x1a, 0xb1, 0x12, 0xf9, 0x64, 0x1a, - 0x87, 0xb1, 0x07, 0x9b, 0x1b, 0xc8, 0x97, 0xea, 0xbd, 0xe0, 0x09, 0x1a, 0x34, 0xac, 0x80, 0x66, - 0xa1, 0x82, 0x10, 0xee, 0xa3, 0x6c, 0xe9, 0x2a, 0x14, 0xfd, 0xee, 0x51, 0x17, 0x21, 0xe5, 0xb8, - 0xfa, 0xc0, 0xa5, 0x51, 0x98, 0xd2, 0xd8, 0x85, 0xaa, 0x40, 0x02, 0x93, 0x0c, 0xcd, 0x72, 0x29, - 0x8d, 0x7c, 0x5d, 0x7a, 0x0c, 0xe6, 0x7c, 0xb7, 0x9f, 0x15, 0x58, 0x79, 0x2d, 0x0d, 0x8b, 0x61, - 0x31, 0x17, 0x1a, 0xfe, 0xb8, 0x7c, 0x30, 0x02, 0x4e, 0x8c, 0x01, 0xc6, 0x1d, 0x61, 0xe0, 0x57, - 0x18, 0x51, 0x29, 0x53, 0x3f, 0x31, 0x4c, 0x8c, 0xa6, 0xd8, 0x95, 0xe2, 0xda, 0x43, 0x33, 0x45, - 0xf5, 0xca, 0x2e, 0x81, 0x68, 0x0c, 0xa9, 0x3e, 0x09, 0x49, 0x9e, 0xe2, 0x08, 0xc3, 0xf2, 0x6c, - 0x0c, 0x24, 0x16, 0x35, 0x8a, 0x53, 0x3f, 0x00, 0x39, 0xf2, 0x9f, 0xf9, 0x36, 0x4d, 0x6d, 0xce, - 0x12, 0x01, 0xf1, 0xab, 0xba, 0x04, 0x59, 0x1a, 0x66, 0x2d, 0x43, 0x94, 0x06, 0xef, 0x9a, 0x4c, - 0x4c, 0xcb, 0x68, 0xeb, 0x43, 0xd3, 0x6d, 0xbc, 0xa4, 0x9b, 0x43, 0x83, 0x06, 0x0c, 0x4e, 0x0c, - 0x17, 0x3e, 0x4d, 0x64, 0xea, 0x25, 0xc8, 0xb3, 0xa8, 0xec, 0x22, 0xe6, 0x26, 0xcd, 0x3e, 0x29, - 0x8d, 0x05, 0xea, 0x0e, 0x91, 0x90, 0xdb, 0xbf, 0xe0, 0xe0, 0x5a, 0xe0, 0x53, 0x4b, 0x6f, 0x41, - 0x04, 0xf4, 0xf6, 0x8f, 0x05, 0x13, 0xdf, 0xdd, 0xe1, 0x8f, 0x17, 0x8c, 0xc5, 0xca, 0x5f, 0xc5, - 0x21, 0x49, 0xd7, 0x5b, 0x09, 0xf2, 0x47, 0xcf, 0x1e, 0xd6, 0x1a, 0x5b, 0x07, 0xc7, 0x1b, 0xbb, - 0x35, 0x25, 0xa6, 0x16, 0x01, 0xa8, 0xe0, 0xda, 0xee, 0xc1, 0xfa, 0x91, 0x12, 0xf7, 0xae, 0x77, - 0xf6, 0x8f, 0x1e, 0xfd, 0x98, 0x92, 0xf0, 0x00, 0xc7, 0x4c, 0x90, 0x94, 0x15, 0x3e, 0xba, 0xa6, - 0xa4, 0x30, 0x12, 0x0a, 0x8c, 0x60, 0xe7, 0x46, 0x6d, 0x0b, 0x35, 0xd2, 0x7e, 0x09, 0xea, 0x64, - 0xd4, 0x39, 0xc8, 0x51, 0xc9, 0xc6, 0xc1, 0xc1, 0xae, 0x92, 0xf5, 0x38, 0xeb, 0x47, 0xda, 0xce, - 0xfe, 0xb6, 0x92, 0xf3, 0x38, 0xb7, 0xb5, 0x83, 0xe3, 0x43, 0x05, 0x3c, 0x86, 0xbd, 0x5a, 0xbd, - 0xbe, 0xbe, 0x5d, 0x53, 0xf2, 0x9e, 0xc6, 0xc6, 0xb3, 0x47, 0xb5, 0xba, 0x52, 0xf0, 0x99, 0x85, - 0xb7, 0x98, 0xf3, 0x6e, 0x51, 0xdb, 0x3f, 0xde, 0x53, 0x8a, 0xea, 0x3c, 0xcc, 0xb1, 0x5b, 0x08, - 0x23, 0x4a, 0x01, 0x11, 0x5a, 0xaa, 0x8c, 0x0c, 0x61, 0x2c, 0xf3, 0x3e, 0x01, 0x6a, 0xa8, 0x95, - 0x4d, 0x48, 0xd1, 0xe8, 0xc2, 0x28, 0x2e, 0xee, 0xae, 0x6f, 0xd4, 0x76, 0x1b, 0x07, 0x87, 0x47, - 0x3b, 0x07, 0xfb, 0xeb, 0xbb, 0xe8, 0x3b, 0x4f, 0xa6, 0xd5, 0x7e, 0xea, 0x78, 0x47, 0xab, 0x6d, - 0xa1, 0xff, 0x24, 0xd9, 0x61, 0x6d, 0xfd, 0x08, 0x65, 0x89, 0xca, 0x32, 0x2c, 0x86, 0xe5, 0x99, - 0xb0, 0x95, 0x51, 0xf9, 0x62, 0x0c, 0x16, 0x42, 0x52, 0x66, 0xe8, 0x2a, 0xfa, 0x24, 0xa4, 0x58, - 0xa4, 0xb1, 0x22, 0xf2, 0x60, 0x68, 0xee, 0xa5, 0x71, 0x37, 0x56, 0x48, 0x28, 0x4e, 0x2e, 0xa4, - 0x89, 0x09, 0x85, 0x94, 0x50, 0x8c, 0x85, 0xd3, 0xab, 0x31, 0x28, 0x4f, 0xe2, 0x8e, 0x58, 0xef, - 0x71, 0xdf, 0x7a, 0x7f, 0x22, 0x68, 0xc0, 0xe5, 0xc9, 0xcf, 0x30, 0x66, 0xc5, 0x5b, 0x31, 0xb8, - 0x10, 0xde, 0x6f, 0x84, 0xda, 0xf0, 0x24, 0xa4, 0x7b, 0x86, 0x7b, 0x6a, 0x8b, 0x9a, 0xfb, 0xc1, - 0x90, 0x4c, 0x4e, 0x86, 0x83, 0xbe, 0xe2, 0x28, 0xb9, 0x14, 0x24, 0x26, 0x35, 0x0d, 0xcc, 0x9a, - 0x31, 0x4b, 0x3f, 0x13, 0x87, 0xdb, 0x43, 0xc9, 0x43, 0x0d, 0xbd, 0x1b, 0xa0, 0x6b, 0xf5, 0x87, - 0x2e, 0xab, 0xab, 0x2c, 0xcd, 0xe4, 0xa8, 0x84, 0x2e, 0x61, 0x92, 0x42, 0x86, 0xae, 0x37, 0x9e, - 0xa0, 0xe3, 0xc0, 0x44, 0x54, 0xe1, 0xea, 0xc8, 0xd0, 0x24, 0x35, 0xf4, 0xe2, 0x84, 0x27, 0x1d, - 0x2b, 0x59, 0x0f, 0x83, 0xd2, 0x34, 0xbb, 0x86, 0xe5, 0x36, 0x1c, 0x77, 0x60, 0xe8, 0xbd, 0xae, - 0xd5, 0xa1, 0x79, 0x34, 0x5b, 0x4d, 0xb5, 0x75, 0xd3, 0x31, 0xb4, 0x12, 0x1b, 0xae, 0x8b, 0x51, - 0x82, 0xa0, 0xc5, 0x62, 0x20, 0x21, 0xd2, 0x3e, 0x04, 0x1b, 0xf6, 0x10, 0x95, 0x7f, 0xce, 0x40, - 0x5e, 0xea, 0xce, 0xd4, 0xcb, 0x50, 0x78, 0x41, 0x7f, 0x49, 0x6f, 0x88, 0x8e, 0x9b, 0x79, 0x22, - 0x4f, 0x64, 0x87, 0xbc, 0xeb, 0x7e, 0x18, 0x16, 0xa9, 0x0a, 0x3e, 0x23, 0xde, 0xa8, 0x69, 0xea, - 0x8e, 0x43, 0x9d, 0x96, 0xa5, 0xaa, 0x2a, 0x19, 0x3b, 0x20, 0x43, 0x9b, 0x62, 0x44, 0x7d, 0x04, - 0x16, 0x28, 0xa2, 0x87, 0x89, 0xb7, 0xdb, 0x37, 0x8d, 0x06, 0xd9, 0x03, 0x38, 0x34, 0x9f, 0x7a, - 0x96, 0xcd, 0x13, 0x8d, 0x3d, 0xae, 0x40, 0x2c, 0x72, 0xd4, 0x6d, 0xb8, 0x9b, 0xc2, 0x3a, 0x86, - 0x65, 0x0c, 0x74, 0xd7, 0x68, 0x18, 0x3f, 0x3b, 0x44, 0xdd, 0x86, 0x6e, 0xb5, 0x1a, 0xa7, 0xba, - 0x73, 0x5a, 0x5e, 0x94, 0x09, 0xee, 0x24, 0xba, 0xdb, 0x5c, 0xb5, 0x46, 0x35, 0xd7, 0xad, 0xd6, - 0x75, 0xd4, 0x53, 0xab, 0x70, 0x81, 0x12, 0xa1, 0x53, 0xf0, 0x99, 0x1b, 0xcd, 0x53, 0xa3, 0xf9, - 0x62, 0x63, 0xe8, 0xb6, 0xaf, 0x96, 0x3f, 0x20, 0x33, 0x50, 0x23, 0xeb, 0x54, 0x67, 0x93, 0xa8, - 0x1c, 0xa3, 0x86, 0x5a, 0x87, 0x02, 0x99, 0x8f, 0x5e, 0xf7, 0xd3, 0x68, 0xb6, 0x3d, 0xa0, 0x35, - 0xa2, 0x18, 0xb2, 0xb8, 0x25, 0x27, 0xae, 0x1c, 0x70, 0xc0, 0x1e, 0xf6, 0xa7, 0xd5, 0x54, 0xfd, - 0xb0, 0x56, 0xdb, 0xd2, 0xf2, 0x82, 0xe5, 0x9a, 0x3d, 0x20, 0x31, 0xd5, 0xb1, 0x3d, 0x1f, 0xe7, - 0x59, 0x4c, 0x75, 0x6c, 0xe1, 0x61, 0xf4, 0x57, 0xb3, 0xc9, 0x1e, 0x1b, 0xf7, 0x2e, 0xbc, 0x59, - 0x77, 0xca, 0x8a, 0xcf, 0x5f, 0xcd, 0xe6, 0x36, 0x53, 0xe0, 0x61, 0xee, 0xe0, 0x92, 0xb8, 0x7d, - 0xe4, 0x2f, 0x19, 0x38, 0x3f, 0xf6, 0x94, 0x41, 0x28, 0xde, 0xb1, 0x7f, 0x36, 0x0e, 0x54, 0x7d, - 0x77, 0xec, 0x9f, 0x05, 0x61, 0xf7, 0xd3, 0x0d, 0xd8, 0xc0, 0x68, 0xa2, 0xcb, 0x5b, 0xe5, 0x3b, - 0x64, 0x6d, 0x69, 0x40, 0x5d, 0xc5, 0x40, 0x6e, 0x36, 0x0c, 0x4b, 0x3f, 0xc1, 0xb9, 0xd7, 0x07, - 0xf8, 0xc5, 0x29, 0x5f, 0x92, 0x95, 0x8b, 0xcd, 0x66, 0x8d, 0x8e, 0xae, 0xd3, 0x41, 0x75, 0x19, - 0xe6, 0xed, 0x93, 0x17, 0x9a, 0x2c, 0xb8, 0x1a, 0xc8, 0xd3, 0xee, 0xde, 0x2c, 0xdf, 0x47, 0xdd, - 0x54, 0x22, 0x03, 0x34, 0xb4, 0x0e, 0xa9, 0x58, 0x7d, 0x10, 0xc9, 0x9d, 0x53, 0x7d, 0xd0, 0xa7, - 0x45, 0xda, 0x41, 0xa7, 0x1a, 0xe5, 0xfb, 0x99, 0x2a, 0x93, 0xef, 0x0b, 0xb1, 0x5a, 0x83, 0x4b, - 0xe4, 0xe1, 0x2d, 0xdd, 0xb2, 0x1b, 0x43, 0xc7, 0x68, 0x8c, 0x4c, 0xf4, 0xe6, 0xe2, 0x83, 0xc4, - 0x2c, 0xed, 0x2e, 0xa1, 0x76, 0xec, 0x60, 0x32, 0x13, 0x4a, 0x62, 0x7a, 0x6e, 0xc0, 0xe2, 0xd0, - 0xea, 0x5a, 0x18, 0xe2, 0x38, 0x42, 0xc0, 0x6c, 0xc1, 0x96, 0xff, 0x35, 0x33, 0xa1, 0xe9, 0x3e, - 0x96, 0xb5, 0x59, 0x90, 0x68, 0x0b, 0xc3, 0x71, 0x61, 0xa5, 0x0a, 0x05, 0x39, 0x76, 0xd4, 0x1c, - 0xb0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0xf3, 0x60, 0x8b, 0xd4, 0xc2, 0xe7, 0x6a, 0x58, 0xd8, - 0xb0, 0x26, 0xef, 0xee, 0x1c, 0xd5, 0x1a, 0xda, 0xf1, 0xfe, 0xd1, 0xce, 0x5e, 0x4d, 0x49, 0x2c, - 0xe7, 0xb2, 0xef, 0x64, 0x94, 0x57, 0xf0, 0x2f, 0x5e, 0xf9, 0x46, 0x1c, 0x8a, 0xfe, 0x3e, 0x58, - 0xfd, 0x38, 0xdc, 0x21, 0x36, 0xad, 0x8e, 0xe1, 0x36, 0x5e, 0xee, 0x0e, 0x68, 0x38, 0xf7, 0x74, - 0xd6, 0x49, 0x7a, 0x33, 0xb1, 0xc8, 0xb5, 0x70, 0x7b, 0xff, 0x0c, 0xea, 0x5c, 0xa3, 0x2a, 0xea, - 0x2e, 0x5c, 0x42, 0x97, 0x61, 0xaf, 0x69, 0xb5, 0xf4, 0x41, 0xab, 0x31, 0x3a, 0x2e, 0x68, 0xe8, - 0x4d, 0x8c, 0x03, 0xc7, 0x66, 0x95, 0xc4, 0x63, 0xb9, 0xcb, 0xb2, 0xeb, 0x5c, 0x79, 0x94, 0x62, - 0xd7, 0xb9, 0x6a, 0x20, 0x6a, 0x12, 0x93, 0xa2, 0x06, 0x7b, 0xaf, 0x9e, 0xde, 0xc7, 0xb0, 0x71, - 0x07, 0x67, 0xb4, 0x7b, 0xcb, 0x6a, 0x59, 0x14, 0xd4, 0xc8, 0xf5, 0x8f, 0x6e, 0x0e, 0x64, 0x3f, - 0x7e, 0x3b, 0x01, 0x05, 0xb9, 0x83, 0x23, 0x0d, 0x71, 0x93, 0xa6, 0xf9, 0x18, 0xcd, 0x02, 0xf7, - 0x4e, 0xed, 0xf7, 0x56, 0x36, 0x49, 0xfe, 0xaf, 0xa6, 0x59, 0x5f, 0xa5, 0x31, 0x24, 0xa9, 0xbd, - 0x24, 0xd6, 0x0c, 0xd6, 0xad, 0x67, 0x35, 0x7e, 0x85, 0xc9, 0x2e, 0xfd, 0x82, 0x43, 0xb9, 0xd3, - 0x94, 0xfb, 0xbe, 0xe9, 0xdc, 0x4f, 0xd5, 0x29, 0x79, 0xee, 0xa9, 0x7a, 0x63, 0xff, 0x40, 0xdb, - 0x5b, 0xdf, 0xd5, 0x38, 0x5c, 0xbd, 0x13, 0x92, 0xa6, 0xfe, 0xe9, 0x33, 0x7f, 0xa5, 0xa0, 0xa2, - 0x59, 0x1d, 0x8f, 0x0c, 0xe4, 0xc8, 0xc3, 0x9f, 0x9f, 0xa9, 0xe8, 0x47, 0x18, 0xfa, 0xab, 0x90, - 0xa2, 0xfe, 0x52, 0x01, 0xb8, 0xc7, 0x94, 0xdb, 0xd4, 0x2c, 0x24, 0x37, 0x0f, 0x34, 0x12, 0xfe, - 0x18, 0xef, 0x4c, 0xda, 0x38, 0xdc, 0xa9, 0x6d, 0xe2, 0x0a, 0xa8, 0x3c, 0x02, 0x69, 0xe6, 0x04, - 0xb2, 0x34, 0x3c, 0x37, 0x20, 0x88, 0x5d, 0x72, 0x8e, 0x98, 0x18, 0x3d, 0xde, 0xdb, 0xa8, 0x69, - 0x4a, 0x5c, 0x9e, 0xde, 0xbf, 0x89, 0x41, 0x5e, 0x6a, 0xa8, 0x48, 0x29, 0xd7, 0x4d, 0xd3, 0x7e, - 0xb9, 0xa1, 0x9b, 0x5d, 0xcc, 0x50, 0x6c, 0x7e, 0x80, 0x8a, 0xd6, 0x89, 0x64, 0x56, 0xff, 0xfd, - 0xbf, 0xc4, 0xe6, 0x17, 0x62, 0xa0, 0x04, 0x9b, 0xb1, 0x80, 0x81, 0xb1, 0x1f, 0xab, 0x81, 0x6f, - 0xc4, 0xa0, 0xe8, 0xef, 0xc0, 0x02, 0xe6, 0x5d, 0xfe, 0xb1, 0x9a, 0xf7, 0xb9, 0x18, 0xcc, 0xf9, - 0xfa, 0xae, 0x9f, 0x28, 0xeb, 0x5e, 0x4f, 0xc0, 0x42, 0x08, 0x0e, 0x13, 0x10, 0x6b, 0x50, 0x59, - 0xcf, 0xfc, 0xe1, 0x59, 0xee, 0xb5, 0x42, 0xea, 0xdf, 0xa1, 0x3e, 0x70, 0x79, 0x3f, 0x8b, 0xf5, - 0xb2, 0xdb, 0xc2, 0xa4, 0xda, 0x6d, 0x77, 0xb1, 0x7d, 0x63, 0x3b, 0x16, 0xd6, 0xb5, 0x96, 0x46, - 0x72, 0xb6, 0x3d, 0xfe, 0x10, 0xa8, 0x7d, 0xdb, 0xe9, 0xba, 0xdd, 0x97, 0xc8, 0xf1, 0x9c, 0xd8, - 0x48, 0x93, 0x2e, 0x36, 0xa9, 0x29, 0x62, 0x64, 0xc7, 0x72, 0x3d, 0x6d, 0xcb, 0xe8, 0xe8, 0x01, - 0x6d, 0x92, 0x86, 0x12, 0x9a, 0x22, 0x46, 0x3c, 0x6d, 0x6c, 0x34, 0x5b, 0xf6, 0x90, 0x34, 0x04, - 0x4c, 0x8f, 0x64, 0xbd, 0x98, 0x96, 0x67, 0x32, 0x4f, 0x85, 0x77, 0x6c, 0xa3, 0x1d, 0x7c, 0x41, - 0xcb, 0x33, 0x19, 0x53, 0x79, 0x00, 0x4a, 0x7a, 0xa7, 0x33, 0x20, 0xe4, 0x82, 0x88, 0xb5, 0xa1, - 0x45, 0x4f, 0x4c, 0x15, 0x97, 0x9e, 0x82, 0xac, 0xf0, 0x03, 0x29, 0x2c, 0xc4, 0x13, 0x58, 0xf3, - 0xe9, 0x39, 0x4a, 0x9c, 0x6c, 0xea, 0x2d, 0x31, 0x88, 0x37, 0xed, 0x3a, 0x8d, 0xd1, 0x81, 0x5e, - 0x1c, 0xc7, 0xb3, 0x5a, 0xbe, 0xeb, 0x78, 0x27, 0x38, 0x95, 0xb7, 0xb0, 0xbc, 0xfa, 0x0f, 0x24, - 0xd5, 0x2d, 0xc8, 0x9a, 0x36, 0xc6, 0x07, 0x41, 0xb0, 0xd3, 0xf0, 0x2b, 0x11, 0x67, 0x98, 0x2b, - 0xbb, 0x5c, 0x5f, 0xf3, 0x90, 0x4b, 0xff, 0x10, 0x83, 0xac, 0x10, 0x63, 0xa1, 0x48, 0xf6, 0x75, - 0xf7, 0x94, 0xd2, 0xa5, 0x36, 0xe2, 0x4a, 0x4c, 0xa3, 0xd7, 0x44, 0x8e, 0xdd, 0x8c, 0x45, 0x43, - 0x80, 0xcb, 0xc9, 0x35, 0x99, 0x57, 0xd3, 0xd0, 0x5b, 0xb4, 0xc1, 0xb5, 0x7b, 0x3d, 0x9c, 0x49, - 0x47, 0xcc, 0x2b, 0x97, 0x6f, 0x72, 0x31, 0x39, 0x17, 0x77, 0x07, 0x7a, 0xd7, 0xf4, 0xe9, 0x26, - 0xa9, 0xae, 0x22, 0x06, 0x3c, 0xe5, 0x2a, 0xdc, 0x29, 0x78, 0x5b, 0x86, 0xab, 0x63, 0xf3, 0xdc, - 0x1a, 0x81, 0xd2, 0xf4, 0xb4, 0xeb, 0x0e, 0xae, 0xb0, 0xc5, 0xc7, 0x05, 0x76, 0xe3, 0x06, 0x36, - 0xb2, 0x76, 0x2f, 0xe8, 0x89, 0x0d, 0x25, 0xb0, 0xef, 0x72, 0xae, 0xc7, 0x9e, 0x83, 0x51, 0x53, - 0xf1, 0xc5, 0x78, 0x62, 0xfb, 0x70, 0xe3, 0xcb, 0xf1, 0xa5, 0x6d, 0x86, 0x3b, 0x14, 0x1e, 0xd4, - 0x8c, 0xb6, 0x69, 0x34, 0x89, 0x77, 0xe0, 0xcd, 0x7b, 0xe1, 0xc3, 0x9d, 0xae, 0x7b, 0x3a, 0x3c, - 0x59, 0xc1, 0x3b, 0xac, 0x76, 0xec, 0x8e, 0x3d, 0xfa, 0x39, 0x83, 0x5c, 0xd1, 0x0b, 0xfa, 0x8d, - 0xff, 0xa4, 0x91, 0xf3, 0xa4, 0x4b, 0x91, 0xbf, 0x7f, 0x54, 0xf7, 0x61, 0x81, 0x2b, 0x37, 0xe8, - 0x99, 0x2a, 0x6b, 0x41, 0xd5, 0xa9, 0x1b, 0xf2, 0xf2, 0xd7, 0xde, 0xa6, 0x25, 0x41, 0x9b, 0xe7, - 0x50, 0x32, 0xc6, 0x9a, 0xd4, 0xaa, 0x06, 0xb7, 0xfb, 0xf8, 0x58, 0x0c, 0xe3, 0x96, 0x7b, 0x3a, - 0xe3, 0x37, 0x38, 0xe3, 0x82, 0xc4, 0x58, 0xe7, 0xd0, 0xea, 0x26, 0xcc, 0x9d, 0x87, 0xeb, 0xef, - 0x38, 0x57, 0xc1, 0x90, 0x49, 0xb6, 0xa1, 0x44, 0x49, 0x9a, 0x43, 0xc7, 0xb5, 0x7b, 0x34, 0x41, - 0x4c, 0xa7, 0xf9, 0xfb, 0xb7, 0x59, 0x50, 0x15, 0x09, 0x6c, 0xd3, 0x43, 0x55, 0x9f, 0x86, 0x45, - 0x22, 0xa1, 0x6b, 0x50, 0x66, 0x8b, 0x3e, 0x42, 0x28, 0xff, 0xd3, 0xab, 0x2c, 0xf6, 0x16, 0x3c, - 0x02, 0x89, 0x57, 0x9a, 0x89, 0x8e, 0xe1, 0x62, 0x6e, 0xc3, 0xfd, 0x9f, 0x69, 0xaa, 0x53, 0x7f, - 0x63, 0x28, 0x7f, 0xf6, 0xfb, 0xfe, 0x99, 0xd8, 0x66, 0xc8, 0x75, 0xd3, 0xac, 0x1e, 0xc3, 0x1d, - 0x21, 0x33, 0x3b, 0x03, 0xe7, 0xeb, 0x9c, 0x73, 0x71, 0x6c, 0x76, 0x09, 0xed, 0x21, 0x08, 0xb9, - 0x37, 0x1f, 0x33, 0x70, 0x7e, 0x8e, 0x73, 0xaa, 0x1c, 0x2b, 0xa6, 0x85, 0x30, 0x3e, 0x05, 0xf3, - 0xb8, 0x53, 0x3f, 0xb1, 0x1d, 0xbe, 0xef, 0x9d, 0x81, 0xee, 0x0d, 0x4e, 0x57, 0xe2, 0x40, 0xba, - 0x0b, 0x26, 0x5c, 0x8f, 0x43, 0xb6, 0x8d, 0x1b, 0xa0, 0x19, 0x28, 0x3e, 0xcf, 0x29, 0x32, 0x44, - 0x9f, 0x40, 0xd7, 0xa1, 0xd0, 0xb1, 0x79, 0x1a, 0x8e, 0x86, 0x7f, 0x81, 0xc3, 0xf3, 0x02, 0xc3, - 0x29, 0xfa, 0x76, 0x7f, 0x68, 0x92, 0x1c, 0x1d, 0x4d, 0xf1, 0xbb, 0x82, 0x42, 0x60, 0x38, 0xc5, - 0x39, 0xdc, 0xfa, 0x7b, 0x82, 0xc2, 0x91, 0xfc, 0xf9, 0x49, 0x72, 0xd6, 0x6b, 0x9e, 0xd9, 0xd6, - 0x2c, 0x46, 0xbc, 0xc9, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x13, 0x90, 0x9b, 0x75, 0x22, 0x7e, 0x9f, - 0xc3, 0xb3, 0x86, 0x98, 0x01, 0x5c, 0x67, 0x22, 0xc9, 0x90, 0xdf, 0x56, 0xa2, 0x29, 0xfe, 0x80, - 0x53, 0x14, 0x25, 0x18, 0x7f, 0x0c, 0xd7, 0x70, 0x5c, 0xdc, 0xaa, 0xcf, 0x40, 0xf2, 0x96, 0x78, - 0x0c, 0x0e, 0xe1, 0xae, 0x3c, 0x31, 0xac, 0xe6, 0xe9, 0x6c, 0x0c, 0x5f, 0x12, 0xae, 0x14, 0x18, - 0x42, 0x81, 0x99, 0xa7, 0xa7, 0x0f, 0x70, 0x73, 0x6d, 0xce, 0x34, 0x1d, 0x7f, 0xc8, 0x39, 0x0a, - 0x1e, 0x88, 0x7b, 0x64, 0x68, 0x9d, 0x87, 0xe6, 0xcb, 0xc2, 0x23, 0x12, 0x8c, 0x2f, 0x3d, 0xdc, - 0x99, 0x92, 0x4e, 0xe2, 0x3c, 0x6c, 0x7f, 0x24, 0x96, 0x1e, 0xc3, 0xee, 0xc9, 0x8c, 0x38, 0xd3, - 0x0e, 0x6e, 0xc1, 0x67, 0xa1, 0xf9, 0x63, 0x31, 0xd3, 0x14, 0x40, 0xc0, 0xcf, 0xc2, 0x9d, 0xa1, - 0xa9, 0x7e, 0x06, 0xb2, 0x3f, 0xe1, 0x64, 0x17, 0x42, 0xd2, 0x3d, 0x4f, 0x09, 0xe7, 0xa5, 0xfc, - 0x53, 0x91, 0x12, 0x8c, 0x00, 0xd7, 0x21, 0x69, 0x63, 0x1d, 0xbd, 0x7d, 0x3e, 0xaf, 0x7d, 0x45, - 0x78, 0x8d, 0x61, 0x7d, 0x5e, 0x3b, 0x82, 0x0b, 0x9c, 0xf1, 0x7c, 0xf3, 0xfa, 0x55, 0x91, 0x58, - 0x19, 0xfa, 0xd8, 0x3f, 0xbb, 0x3f, 0x0d, 0x4b, 0x9e, 0x3b, 0x45, 0x07, 0xe6, 0x34, 0xc8, 0xc1, - 0x40, 0x34, 0xf3, 0xd7, 0x38, 0xb3, 0xc8, 0xf8, 0x5e, 0x0b, 0xe7, 0xec, 0xe9, 0x7d, 0x42, 0x7e, - 0x03, 0xca, 0x82, 0x7c, 0x68, 0x61, 0x83, 0x6f, 0x77, 0x2c, 0x9c, 0xc6, 0xd6, 0x0c, 0xd4, 0x7f, - 0x16, 0x98, 0xaa, 0x63, 0x09, 0x4e, 0x98, 0x77, 0x40, 0xf1, 0xfa, 0x8d, 0x46, 0xb7, 0xd7, 0xb7, - 0xb1, 0xb5, 0x9c, 0xce, 0xf8, 0xe7, 0x62, 0xa6, 0x3c, 0xdc, 0x0e, 0x85, 0x55, 0x6b, 0x50, 0xa4, - 0x97, 0xb3, 0x86, 0xe4, 0x5f, 0x70, 0xa2, 0xb9, 0x11, 0x8a, 0x27, 0x0e, 0xec, 0x94, 0xb0, 0xe7, - 0x9d, 0x25, 0xff, 0xfd, 0xa5, 0x48, 0x1c, 0x1c, 0xc2, 0xa2, 0xaf, 0x14, 0xa8, 0xc4, 0x6a, 0xd4, - 0xcf, 0xaf, 0xe5, 0x9f, 0x7b, 0x8f, 0xaf, 0x59, 0x7f, 0x21, 0xae, 0xee, 0x12, 0xf7, 0xf8, 0xcb, - 0x65, 0x34, 0xd9, 0xab, 0xef, 0x79, 0x1e, 0xf2, 0x55, 0xcb, 0xea, 0x35, 0x98, 0xf3, 0x95, 0xca, - 0x68, 0xaa, 0x9f, 0xe7, 0x54, 0x05, 0xb9, 0x52, 0x56, 0x1f, 0x81, 0x24, 0x29, 0x7b, 0xd1, 0xf0, - 0x5f, 0xe0, 0x70, 0xaa, 0x5e, 0xfd, 0x04, 0x64, 0x45, 0xb9, 0x8b, 0x86, 0xfe, 0x22, 0x87, 0x7a, - 0x10, 0x02, 0x17, 0xa5, 0x2e, 0x1a, 0xfe, 0x4b, 0x02, 0x2e, 0x20, 0x04, 0x3e, 0xbb, 0x0b, 0xbf, - 0xfe, 0xcb, 0x49, 0x9e, 0xae, 0x84, 0xef, 0xc8, 0x6f, 0x3e, 0xac, 0xc6, 0x45, 0xa3, 0x3f, 0xc3, - 0x6f, 0x2e, 0x10, 0xd5, 0xc7, 0x20, 0x35, 0xa3, 0xc3, 0x7f, 0x85, 0x43, 0x99, 0x3e, 0x56, 0x90, - 0xbc, 0x54, 0xd7, 0xa2, 0xe1, 0xbf, 0xca, 0xe1, 0x32, 0x8a, 0x98, 0xce, 0xeb, 0x5a, 0x34, 0xc1, - 0xaf, 0x09, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0x94, 0xb4, 0x68, 0xf4, 0xaf, 0x0b, 0xaf, 0x0b, 0x08, - 0xae, 0xa6, 0x9c, 0x97, 0xa6, 0xa2, 0xf1, 0xbf, 0xc1, 0xf1, 0x23, 0x0c, 0xf1, 0x80, 0x94, 0x26, - 0xa3, 0x29, 0x7e, 0x53, 0x78, 0x40, 0x42, 0x91, 0x65, 0x14, 0x2c, 0x7d, 0xd1, 0x4c, 0xbf, 0x25, - 0x96, 0x51, 0xa0, 0xf2, 0x91, 0xd9, 0xa4, 0xd9, 0x22, 0x9a, 0xe2, 0xb7, 0xc5, 0x6c, 0x52, 0x7d, - 0x62, 0x46, 0xb0, 0x96, 0x44, 0x73, 0xfc, 0x8e, 0x30, 0x23, 0x50, 0x4a, 0xb0, 0x32, 0xa9, 0xe3, - 0x75, 0x24, 0x9a, 0xef, 0x35, 0xce, 0x37, 0x3f, 0x56, 0x46, 0xaa, 0xcf, 0xc0, 0x85, 0xf0, 0x1a, - 0x12, 0xcd, 0xfa, 0xd9, 0xf7, 0x02, 0x5d, 0xbf, 0x5c, 0x42, 0xb0, 0xe4, 0x2d, 0x86, 0xd5, 0x8f, - 0x68, 0xda, 0xd7, 0xdf, 0xf3, 0x6f, 0xec, 0xe4, 0xf2, 0x81, 0x1d, 0x1a, 0x8c, 0x52, 0x77, 0x34, - 0xd7, 0x1b, 0x9c, 0x4b, 0x02, 0x91, 0xa5, 0xc1, 0x33, 0x77, 0x34, 0xfe, 0xf3, 0x62, 0x69, 0x70, - 0x04, 0x82, 0xb3, 0xd6, 0xd0, 0x34, 0x49, 0x70, 0xa8, 0xd3, 0x5f, 0x69, 0x28, 0xff, 0xdb, 0xfb, - 0x7c, 0x61, 0x08, 0x00, 0xe6, 0xd0, 0x94, 0xd1, 0x3b, 0x41, 0x1f, 0x44, 0x20, 0xff, 0xfd, 0x7d, - 0x91, 0x10, 0x88, 0x36, 0xae, 0x27, 0x60, 0x9b, 0x46, 0x7a, 0x86, 0x1d, 0x81, 0xfd, 0x8f, 0xf7, - 0xf9, 0xcf, 0xac, 0x23, 0xc8, 0x88, 0x80, 0xfd, 0x68, 0x3b, 0x9d, 0xe0, 0xfb, 0x7e, 0x02, 0xba, - 0xd1, 0x7c, 0x1c, 0x32, 0xe4, 0xcd, 0x0e, 0x57, 0xef, 0x44, 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, - 0x71, 0x58, 0xcf, 0x1e, 0x18, 0xf8, 0xd5, 0x89, 0xc2, 0xfe, 0x17, 0xc7, 0x7a, 0x00, 0x02, 0x6e, - 0xea, 0x8e, 0x3b, 0xcb, 0x73, 0xff, 0xb7, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0x7c, 0x7f, 0xd1, 0x38, - 0x8b, 0xc2, 0xbe, 0x2b, 0x8c, 0xe6, 0xfa, 0x98, 0x00, 0x73, 0xe4, 0x2b, 0x7b, 0xf5, 0x20, 0x02, - 0xfc, 0x3f, 0x1c, 0x3c, 0x42, 0x6c, 0x5c, 0x0e, 0x3f, 0xda, 0x81, 0x6d, 0x7b, 0xdb, 0x66, 0x87, - 0x3a, 0xf0, 0x95, 0x2b, 0xf0, 0x00, 0xea, 0x60, 0x7d, 0x5d, 0x65, 0x6b, 0xd2, 0x5b, 0x91, 0xab, - 0xb8, 0xf6, 0x1c, 0x8a, 0x59, 0xe3, 0xa7, 0x33, 0x79, 0x7e, 0x45, 0x06, 0x96, 0xce, 0x77, 0xb2, - 0x53, 0xb9, 0x1b, 0xe6, 0xae, 0x99, 0xb6, 0xee, 0x62, 0x41, 0x3b, 0xb4, 0xbb, 0x96, 0xab, 0x16, - 0x20, 0xd6, 0xa6, 0xa7, 0xdf, 0x31, 0x2d, 0xd6, 0xae, 0x7c, 0x4b, 0x85, 0x0c, 0xf6, 0x2f, 0xb8, - 0x5e, 0x1d, 0xf5, 0x59, 0x98, 0x67, 0x5d, 0xc3, 0x91, 0xbd, 0x45, 0x4f, 0x1a, 0x51, 0xca, 0x0f, - 0xec, 0x1e, 0x5a, 0x91, 0x4c, 0x58, 0xe1, 0x80, 0x95, 0x31, 0x6d, 0xfa, 0xf3, 0x93, 0x36, 0xef, - 0x04, 0xe5, 0xea, 0xd3, 0xa0, 0x08, 0x65, 0x6a, 0x0d, 0x61, 0x66, 0xc7, 0xb4, 0xcb, 0x53, 0x99, - 0x85, 0x32, 0x23, 0x56, 0x9c, 0x80, 0x58, 0x7d, 0x12, 0xb2, 0x3b, 0x96, 0xfb, 0xd1, 0x35, 0xc2, - 0xc7, 0x5e, 0x0b, 0xac, 0x84, 0xf2, 0x09, 0x25, 0xc6, 0x93, 0xed, 0xf2, 0x4b, 0x8e, 0x7f, 0xf4, - 0x63, 0x04, 0x9f, 0x9c, 0x8e, 0xa7, 0x4a, 0x23, 0x3c, 0xbd, 0x24, 0xaf, 0x15, 0x1e, 0x0b, 0x32, - 0xfe, 0x36, 0xe0, 0xbd, 0xa1, 0x04, 0x9e, 0x16, 0x63, 0xc8, 0x0d, 0x3d, 0x13, 0x38, 0x05, 0xb3, - 0x21, 0x1d, 0x41, 0x21, 0x19, 0x41, 0x29, 0x3c, 0x2b, 0xea, 0x9e, 0x15, 0x99, 0x29, 0x14, 0xf5, - 0x80, 0x15, 0x8e, 0x6c, 0x45, 0xdd, 0xb3, 0x22, 0x1b, 0x41, 0x21, 0x5b, 0xe1, 0x78, 0x56, 0x6c, - 0x01, 0x5c, 0xeb, 0xde, 0x34, 0x5a, 0xcc, 0x8c, 0x1c, 0x3f, 0xf0, 0x0f, 0xe3, 0x18, 0xa9, 0x31, - 0x12, 0x68, 0x7b, 0x02, 0x75, 0x1b, 0xf2, 0xf5, 0xd1, 0x25, 0x7d, 0x63, 0x90, 0xbc, 0x0c, 0x19, - 0x6a, 0x4a, 0x3b, 0xc0, 0x93, 0x77, 0x24, 0x22, 0x61, 0x0e, 0x7b, 0xa4, 0x7c, 0x94, 0x39, 0xd2, - 0x33, 0x31, 0x73, 0xd8, 0x43, 0x79, 0xe6, 0x30, 0x9a, 0x42, 0xa4, 0x39, 0x12, 0x0f, 0x37, 0x87, - 0x11, 0x61, 0xd1, 0xd9, 0xb0, 0x6d, 0xa2, 0x59, 0x9e, 0xa3, 0x24, 0x97, 0x43, 0x49, 0xb8, 0x0e, - 0x23, 0xc8, 0x9c, 0xb0, 0x2b, 0x3a, 0x3b, 0x34, 0xf4, 0x09, 0xbc, 0x38, 0x6d, 0x76, 0x84, 0x96, - 0x98, 0x1d, 0x71, 0x2d, 0xaf, 0xc0, 0x8d, 0x33, 0xec, 0xf3, 0x08, 0x53, 0x69, 0x86, 0x15, 0x28, - 0x94, 0x03, 0x2b, 0x50, 0x88, 0xd5, 0x3a, 0x94, 0x84, 0x2a, 0xd9, 0x91, 0x13, 0x5a, 0x85, 0xbf, - 0xe2, 0x35, 0x8d, 0x96, 0xeb, 0x32, 0xd6, 0x92, 0xe3, 0x97, 0xaa, 0x87, 0x50, 0x14, 0x8a, 0x7b, - 0x0e, 0x7d, 0xe8, 0x79, 0xfe, 0xbb, 0xc1, 0x34, 0x4e, 0xa6, 0xca, 0x28, 0x8b, 0x8e, 0x4f, 0xb8, - 0xb4, 0x05, 0x17, 0xc2, 0xb3, 0x15, 0x79, 0x3d, 0x14, 0x33, 0x3e, 0x7f, 0x97, 0x87, 0x7c, 0x25, - 0xaf, 0x91, 0x8a, 0x77, 0xd5, 0x48, 0x96, 0x64, 0x17, 0xd5, 0xf8, 0xd5, 0xd8, 0xd2, 0x26, 0xdc, - 0x1e, 0x9a, 0x99, 0xa2, 0x48, 0xe2, 0x32, 0xc9, 0x13, 0x30, 0xe7, 0x4b, 0x47, 0x32, 0x38, 0x15, - 0x02, 0x4e, 0x8d, 0x83, 0x47, 0x41, 0x26, 0x83, 0x13, 0x21, 0xe0, 0x84, 0x0c, 0xfe, 0x38, 0x14, - 0xfd, 0x79, 0x48, 0x46, 0xcf, 0x85, 0xa0, 0xe7, 0x42, 0xd0, 0xe1, 0xf7, 0x4e, 0x86, 0xa0, 0x93, - 0x01, 0x74, 0x7d, 0xe2, 0xbd, 0xe7, 0x43, 0xd0, 0xf3, 0x21, 0xe8, 0xf0, 0x7b, 0xab, 0x21, 0x68, - 0x55, 0x46, 0x7f, 0x02, 0x4a, 0x81, 0x94, 0x23, 0xc3, 0x33, 0x21, 0xf0, 0x8c, 0x0c, 0x7f, 0x12, - 0x97, 0x4e, 0x7b, 0x32, 0xbe, 0x14, 0x82, 0x2f, 0x85, 0xdd, 0x3e, 0xdc, 0xfa, 0x74, 0x08, 0x3c, - 0x1d, 0x7a, 0xfb, 0x70, 0xbc, 0x12, 0x82, 0x57, 0x64, 0x7c, 0x15, 0x0a, 0x72, 0x56, 0x91, 0xb1, - 0xd9, 0x10, 0x6c, 0x36, 0xe8, 0x77, 0x5f, 0x4a, 0x89, 0x8a, 0xf4, 0xdc, 0x84, 0xe5, 0xe2, 0x4b, - 0x23, 0x51, 0x24, 0x05, 0x99, 0xe4, 0x06, 0x2c, 0x86, 0x25, 0x8d, 0x10, 0x8e, 0x65, 0x99, 0xa3, - 0xb8, 0xb6, 0xe8, 0x4b, 0x16, 0x14, 0x37, 0xec, 0xc9, 0xcc, 0xcf, 0xc3, 0x42, 0x48, 0xea, 0x08, - 0x21, 0x7e, 0x58, 0x26, 0xce, 0xaf, 0x2d, 0xf9, 0x88, 0x7d, 0xdd, 0x95, 0x44, 0x5f, 0xf9, 0xf6, - 0x02, 0x14, 0x79, 0x8a, 0x3a, 0x18, 0xb4, 0x8c, 0x01, 0xb6, 0xfd, 0x3f, 0x33, 0xb9, 0xc3, 0x5a, - 0x0b, 0x4b, 0x6d, 0x1c, 0x77, 0x8e, 0x46, 0xeb, 0xf9, 0x89, 0x8d, 0xd6, 0x47, 0x66, 0xb9, 0x41, - 0x54, 0xbf, 0x55, 0x1b, 0xeb, 0xb7, 0x1e, 0x9c, 0x46, 0x3b, 0xa9, 0xed, 0xaa, 0x8d, 0xb5, 0x5d, - 0x51, 0x34, 0xa1, 0xdd, 0xd7, 0xf5, 0xf1, 0xee, 0x6b, 0x79, 0x1a, 0xcf, 0xe4, 0x26, 0xec, 0xfa, - 0x78, 0x13, 0x16, 0xc9, 0x14, 0xde, 0x8b, 0x5d, 0x1f, 0xef, 0xc5, 0xa6, 0x32, 0x4d, 0x6e, 0xc9, - 0xae, 0x8f, 0xb7, 0x64, 0x91, 0x4c, 0xe1, 0x9d, 0xd9, 0xa7, 0x42, 0x3a, 0xb3, 0x87, 0xa6, 0x51, - 0x4d, 0x6b, 0xd0, 0xf6, 0xc3, 0x1a, 0xb4, 0x0f, 0x4d, 0x35, 0x6c, 0x6a, 0x9f, 0xf6, 0xa9, 0x90, - 0x3e, 0x2d, 0xda, 0xb8, 0x09, 0xed, 0xda, 0x7e, 0x58, 0xbb, 0x36, 0x83, 0x71, 0x93, 0xba, 0xb6, - 0x8d, 0x60, 0xd7, 0x76, 0x65, 0x1a, 0x57, 0x78, 0xf3, 0x76, 0x7d, 0xbc, 0x79, 0x5b, 0x8e, 0x5e, - 0x8b, 0x61, 0x3d, 0xdc, 0xf3, 0x13, 0x7b, 0xb8, 0x99, 0x16, 0x77, 0x54, 0x2b, 0xf7, 0xdc, 0xa4, - 0x56, 0xee, 0xe1, 0x59, 0xd8, 0xa7, 0x77, 0x74, 0xcf, 0x4c, 0xe8, 0xe8, 0x56, 0x67, 0xa1, 0xbe, - 0xd5, 0xd8, 0xdd, 0x6a, 0xec, 0x6e, 0x35, 0x76, 0xb7, 0x1a, 0xbb, 0x9f, 0x8c, 0xc6, 0xae, 0x9a, - 0x7c, 0xed, 0xcd, 0x4b, 0xb1, 0xe5, 0xcb, 0x90, 0xe1, 0xb7, 0x56, 0xd3, 0x10, 0xdf, 0x5b, 0x57, - 0x6e, 0xa3, 0xff, 0x37, 0x94, 0x18, 0xfd, 0xbf, 0xa9, 0xc4, 0x37, 0x76, 0xbf, 0xf9, 0xdd, 0x8b, - 0xb7, 0xfd, 0x23, 0x7e, 0xbe, 0x85, 0x9f, 0xef, 0x7c, 0xf7, 0x62, 0xec, 0x1d, 0xfc, 0xbc, 0x8b, - 0x9f, 0x1f, 0xe0, 0xe7, 0x95, 0xef, 0x5d, 0x8c, 0x7d, 0x09, 0x3f, 0x5f, 0xc5, 0xcf, 0x5f, 0xe3, - 0xe7, 0xeb, 0xf8, 0xf9, 0xe6, 0xf7, 0x50, 0x1f, 0x3f, 0xdf, 0xc1, 0xef, 0xef, 0xe0, 0xff, 0x77, - 0xf1, 0xff, 0x0f, 0xf0, 0xf3, 0xca, 0xbf, 0x5c, 0xbc, 0xed, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x40, 0xb7, 0xf5, 0x58, 0x9c, 0x3e, 0x00, 0x00, + // 4580 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x48, 0x5e, 0xd3, 0x72, 0x4c, 0xed, 0xca, + 0x8f, 0x95, 0xd7, 0xb6, 0x64, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x41, 0x49, 0x5c, 0xad, 0x6c, + 0xbd, 0x32, 0x94, 0xec, 0xb5, 0xff, 0x30, 0xe6, 0x3f, 0x1a, 0x5e, 0x52, 0xe3, 0x1d, 0xce, 0xd0, + 0x33, 0xc3, 0xf5, 0xca, 0x1f, 0x8a, 0x2d, 0xdc, 0x07, 0x82, 0xa2, 0xef, 0x02, 0x75, 0x5c, 0xc7, + 0x6d, 0x02, 0xb4, 0x4e, 0x93, 0x3e, 0x92, 0x3e, 0xd2, 0xa0, 0x9f, 0xf2, 0x25, 0xad, 0x81, 0x02, + 0x45, 0xf2, 0x2d, 0x08, 0x02, 0xc3, 0xab, 0x18, 0xa8, 0xdb, 0xba, 0xad, 0xdb, 0x18, 0x68, 0x00, + 0xa3, 0x40, 0x71, 0x5f, 0xc3, 0x99, 0xe1, 0x90, 0x43, 0x19, 0x70, 0xd2, 0x0f, 0xfe, 0x24, 0xcd, + 0xb9, 0xe7, 0xf7, 0xbb, 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0x2e, 0x07, 0x7e, 0x74, 0x0e, 0x4e, + 0x36, 0x2d, 0xab, 0x69, 0xa0, 0xc5, 0xb6, 0x6d, 0xb9, 0xd6, 0x7e, 0xa7, 0xb1, 0x58, 0x47, 0x8e, + 0x66, 0xeb, 0x6d, 0xd7, 0xb2, 0x17, 0x88, 0x4c, 0x9a, 0xa0, 0x1a, 0x0b, 0x5c, 0x63, 0x6e, 0x13, + 0x26, 0x2f, 0xe9, 0x06, 0x5a, 0xf5, 0x14, 0x6b, 0xc8, 0x95, 0x2e, 0x40, 0xaa, 0xa1, 0x1b, 0xa8, + 0x28, 0x9c, 0x4c, 0xce, 0xe7, 0x96, 0xee, 0x5a, 0x08, 0x81, 0x16, 0x82, 0x88, 0x1d, 0x2c, 0x96, + 0x09, 0x62, 0xee, 0xdd, 0x14, 0x4c, 0x45, 0x8c, 0x4a, 0x12, 0xa4, 0x4c, 0xb5, 0x85, 0x19, 0x85, + 0xf9, 0xac, 0x4c, 0xfe, 0x97, 0x8a, 0x30, 0xd6, 0x56, 0xb5, 0xab, 0x6a, 0x13, 0x15, 0x13, 0x44, + 0xcc, 0x1f, 0xa5, 0x12, 0x40, 0x1d, 0xb5, 0x91, 0x59, 0x47, 0xa6, 0x76, 0x58, 0x4c, 0x9e, 0x4c, + 0xce, 0x67, 0x65, 0x9f, 0x44, 0xba, 0x0f, 0x26, 0xdb, 0x9d, 0x7d, 0x43, 0xd7, 0x14, 0x9f, 0x1a, + 0x9c, 0x4c, 0xce, 0xa7, 0x65, 0x91, 0x0e, 0xac, 0x76, 0x95, 0x4f, 0xc3, 0xc4, 0x4b, 0x48, 0xbd, + 0xea, 0x57, 0xcd, 0x11, 0xd5, 0x02, 0x16, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0x42, 0x8e, 0xa3, 0x36, + 0x91, 0xe2, 0x1e, 0xb6, 0x51, 0x31, 0x45, 0x56, 0x7f, 0xb2, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x18, + 0x6a, 0xf7, 0xb0, 0x8d, 0xa4, 0x0a, 0x64, 0x91, 0xd9, 0x69, 0x51, 0x86, 0x74, 0x1f, 0xff, 0x55, + 0xcd, 0x4e, 0x2b, 0xcc, 0x92, 0xc1, 0x30, 0x46, 0x31, 0xe6, 0x20, 0xfb, 0x9a, 0xae, 0xa1, 0xe2, + 0x28, 0x21, 0x38, 0xdd, 0x43, 0x50, 0xa3, 0xe3, 0x61, 0x0e, 0x8e, 0x93, 0x56, 0x20, 0x8b, 0xae, + 0xbb, 0xc8, 0x74, 0x74, 0xcb, 0x2c, 0x8e, 0x11, 0x92, 0xbb, 0x23, 0x76, 0x11, 0x19, 0xf5, 0x30, + 0x45, 0x17, 0x27, 0x9d, 0x87, 0x31, 0xab, 0xed, 0xea, 0x96, 0xe9, 0x14, 0x33, 0x27, 0x85, 0xf9, + 0xdc, 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xea, 0xc8, 0x5c, 0x59, 0x5a, 0x07, 0xd1, 0xb1, 0x3a, + 0xb6, 0x86, 0x14, 0xcd, 0xaa, 0x23, 0x45, 0x37, 0x1b, 0x56, 0x31, 0x4b, 0x08, 0x66, 0x7b, 0x17, + 0x42, 0x14, 0x57, 0xac, 0x3a, 0x5a, 0x37, 0x1b, 0x96, 0x5c, 0x70, 0x02, 0xcf, 0xd2, 0x09, 0x18, + 0x75, 0x0e, 0x4d, 0x57, 0xbd, 0x5e, 0xcc, 0x93, 0x08, 0x61, 0x4f, 0x73, 0xff, 0x9d, 0x86, 0x89, + 0x61, 0x42, 0xec, 0x22, 0xa4, 0x1b, 0x78, 0x95, 0xc5, 0xc4, 0x71, 0x7c, 0x40, 0x31, 0x41, 0x27, + 0x8e, 0x7e, 0x4c, 0x27, 0x56, 0x20, 0x67, 0x22, 0xc7, 0x45, 0x75, 0x1a, 0x11, 0xc9, 0x21, 0x63, + 0x0a, 0x28, 0xa8, 0x37, 0xa4, 0x52, 0x1f, 0x2b, 0xa4, 0xae, 0xc0, 0x84, 0x67, 0x92, 0x62, 0xab, + 0x66, 0x93, 0xc7, 0xe6, 0x62, 0x9c, 0x25, 0x0b, 0x55, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa0, 0xc0, + 0xb3, 0xb4, 0x0a, 0x60, 0x99, 0xc8, 0x6a, 0x28, 0x75, 0xa4, 0x19, 0xc5, 0x4c, 0x1f, 0x2f, 0x6d, + 0x63, 0x95, 0x1e, 0x2f, 0x59, 0x54, 0xaa, 0x19, 0xd2, 0xa3, 0xdd, 0x50, 0x1b, 0xeb, 0x13, 0x29, + 0x9b, 0xf4, 0x90, 0xf5, 0x44, 0xdb, 0x1e, 0x14, 0x6c, 0x84, 0xe3, 0x1e, 0xd5, 0xd9, 0xca, 0xb2, + 0xc4, 0x88, 0x85, 0xd8, 0x95, 0xc9, 0x0c, 0x46, 0x17, 0x36, 0x6e, 0xfb, 0x1f, 0xa5, 0x3b, 0xc1, + 0x13, 0x28, 0x24, 0xac, 0x80, 0x64, 0xa1, 0x3c, 0x17, 0x6e, 0xa9, 0x2d, 0x34, 0x73, 0x01, 0x0a, + 0x41, 0xf7, 0x48, 0xd3, 0x90, 0x76, 0x5c, 0xd5, 0x76, 0x49, 0x14, 0xa6, 0x65, 0xfa, 0x20, 0x89, + 0x90, 0x44, 0x66, 0x9d, 0x64, 0xb9, 0xb4, 0x8c, 0xff, 0x9d, 0x79, 0x04, 0xc6, 0x03, 0xd3, 0x0f, + 0x0b, 0x9c, 0x7b, 0x75, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, + 0xed, 0x23, 0xbb, 0x98, 0x24, 0x0c, 0xec, 0x49, 0xaa, 0x40, 0xda, 0x50, 0xf7, 0x91, 0x51, 0x4c, + 0x9d, 0x14, 0xe6, 0x0b, 0x4b, 0xf7, 0x0d, 0x15, 0xd5, 0x0b, 0x1b, 0x18, 0x22, 0x53, 0xa4, 0xf4, + 0x38, 0xa4, 0x58, 0x8a, 0xc3, 0x0c, 0x67, 0x86, 0x63, 0xc0, 0xb1, 0x28, 0x13, 0x9c, 0x74, 0x3b, + 0x64, 0xf1, 0x5f, 0xea, 0xdb, 0x51, 0x62, 0x73, 0x06, 0x0b, 0xb0, 0x5f, 0xa5, 0x19, 0xc8, 0x90, + 0x30, 0xab, 0x23, 0x5e, 0x1a, 0xbc, 0x67, 0xbc, 0x31, 0x75, 0xd4, 0x50, 0x3b, 0x86, 0xab, 0x5c, + 0x53, 0x8d, 0x0e, 0x22, 0x01, 0x93, 0x95, 0xf3, 0x4c, 0xf8, 0x34, 0x96, 0x49, 0xb3, 0x90, 0xa3, + 0x51, 0xa9, 0x9b, 0x75, 0x74, 0x9d, 0x64, 0x9f, 0xb4, 0x4c, 0x03, 0x75, 0x1d, 0x4b, 0xf0, 0xf4, + 0x2f, 0x38, 0x96, 0xc9, 0xb7, 0x96, 0x4c, 0x81, 0x05, 0x64, 0xfa, 0x47, 0xc2, 0x89, 0xef, 0x8e, + 0xe8, 0xe5, 0x85, 0x63, 0x71, 0xee, 0x9b, 0x09, 0x48, 0x91, 0xf3, 0x36, 0x01, 0xb9, 0xdd, 0x67, + 0x77, 0xaa, 0xca, 0xea, 0xf6, 0xde, 0xf2, 0x46, 0x55, 0x14, 0xa4, 0x02, 0x00, 0x11, 0x5c, 0xda, + 0xd8, 0xae, 0xec, 0x8a, 0x09, 0xef, 0x79, 0x7d, 0x6b, 0xf7, 0xfc, 0x59, 0x31, 0xe9, 0x01, 0xf6, + 0xa8, 0x20, 0xe5, 0x57, 0x78, 0x78, 0x49, 0x4c, 0x4b, 0x22, 0xe4, 0x29, 0xc1, 0xfa, 0x95, 0xea, + 0xea, 0xf9, 0xb3, 0xe2, 0x68, 0x50, 0xf2, 0xf0, 0x92, 0x38, 0x26, 0x8d, 0x43, 0x96, 0x48, 0x96, + 0xb7, 0xb7, 0x37, 0xc4, 0x8c, 0xc7, 0x59, 0xdb, 0x95, 0xd7, 0xb7, 0xd6, 0xc4, 0xac, 0xc7, 0xb9, + 0x26, 0x6f, 0xef, 0xed, 0x88, 0xe0, 0x31, 0x6c, 0x56, 0x6b, 0xb5, 0xca, 0x5a, 0x55, 0xcc, 0x79, + 0x1a, 0xcb, 0xcf, 0xee, 0x56, 0x6b, 0x62, 0x3e, 0x60, 0xd6, 0xc3, 0x4b, 0xe2, 0xb8, 0x37, 0x45, + 0x75, 0x6b, 0x6f, 0x53, 0x2c, 0x48, 0x93, 0x30, 0x4e, 0xa7, 0xe0, 0x46, 0x4c, 0x84, 0x44, 0xe7, + 0xcf, 0x8a, 0x62, 0xd7, 0x10, 0xca, 0x32, 0x19, 0x10, 0x9c, 0x3f, 0x2b, 0x4a, 0x73, 0x2b, 0x90, + 0x26, 0xd1, 0x25, 0x49, 0x50, 0xd8, 0xa8, 0x2c, 0x57, 0x37, 0x94, 0xed, 0x9d, 0xdd, 0xf5, 0xed, + 0xad, 0xca, 0x86, 0x28, 0x74, 0x65, 0x72, 0xf5, 0x73, 0x7b, 0xeb, 0x72, 0x75, 0x55, 0x4c, 0xf8, + 0x65, 0x3b, 0xd5, 0xca, 0x6e, 0x75, 0x55, 0x4c, 0xce, 0x69, 0x30, 0x1d, 0x95, 0x67, 0x22, 0x4f, + 0x86, 0x6f, 0x8b, 0x13, 0x7d, 0xb6, 0x98, 0x70, 0xf5, 0x6c, 0xf1, 0x97, 0x05, 0x98, 0x8a, 0xc8, + 0xb5, 0x91, 0x93, 0x3c, 0x01, 0x69, 0x1a, 0xa2, 0xb4, 0xfa, 0xdc, 0x1b, 0x99, 0xb4, 0x49, 0xc0, + 0xf6, 0x54, 0x20, 0x82, 0xf3, 0x57, 0xe0, 0x64, 0x9f, 0x0a, 0x8c, 0x29, 0x7a, 0x8c, 0x7c, 0x45, + 0x80, 0x62, 0x3f, 0xee, 0x98, 0x44, 0x91, 0x08, 0x24, 0x8a, 0x8b, 0x61, 0x03, 0x4e, 0xf5, 0x5f, + 0x43, 0x8f, 0x15, 0x6f, 0x0a, 0x70, 0x22, 0xba, 0x51, 0x89, 0xb4, 0xe1, 0x71, 0x18, 0x6d, 0x21, + 0xf7, 0xc0, 0xe2, 0xc5, 0xfa, 0x9e, 0x88, 0x12, 0x80, 0x87, 0xc3, 0xbe, 0x62, 0x28, 0x7f, 0x0d, + 0x49, 0xf6, 0xeb, 0x36, 0xa8, 0x35, 0x3d, 0x96, 0x7e, 0x3e, 0x01, 0xb7, 0x44, 0x92, 0x47, 0x1a, + 0x7a, 0x07, 0x80, 0x6e, 0xb6, 0x3b, 0x2e, 0x2d, 0xc8, 0x34, 0x3f, 0x65, 0x89, 0x84, 0x9c, 0x7d, + 0x9c, 0x7b, 0x3a, 0xae, 0x37, 0x9e, 0x24, 0xe3, 0x40, 0x45, 0x44, 0xe1, 0x42, 0xd7, 0xd0, 0x14, + 0x31, 0xb4, 0xd4, 0x67, 0xa5, 0x3d, 0xb5, 0xee, 0x41, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xab, 0x38, + 0xae, 0x8d, 0xd4, 0x96, 0x6e, 0x36, 0x49, 0x02, 0xce, 0x94, 0xd3, 0x0d, 0xd5, 0x70, 0x90, 0x3c, + 0x41, 0x87, 0x6b, 0x7c, 0x14, 0x23, 0x48, 0x95, 0xb1, 0x7d, 0x88, 0xd1, 0x00, 0x82, 0x0e, 0x7b, + 0x88, 0xb9, 0xaf, 0x8d, 0x41, 0xce, 0xd7, 0xd6, 0x49, 0xa7, 0x20, 0xff, 0x82, 0x7a, 0x4d, 0x55, + 0x78, 0xab, 0x4e, 0x3d, 0x91, 0xc3, 0xb2, 0x1d, 0xd6, 0xae, 0x3f, 0x08, 0xd3, 0x44, 0xc5, 0xea, + 0xb8, 0xc8, 0x56, 0x34, 0x43, 0x75, 0x1c, 0xe2, 0xb4, 0x0c, 0x51, 0x95, 0xf0, 0xd8, 0x36, 0x1e, + 0x5a, 0xe1, 0x23, 0xd2, 0x39, 0x98, 0x22, 0x88, 0x56, 0xc7, 0x70, 0xf5, 0xb6, 0x81, 0x14, 0xfc, + 0xf2, 0xe0, 0x90, 0x44, 0xec, 0x59, 0x36, 0x89, 0x35, 0x36, 0x99, 0x02, 0xb6, 0xc8, 0x91, 0x56, + 0xe1, 0x0e, 0x02, 0x6b, 0x22, 0x13, 0xd9, 0xaa, 0x8b, 0x14, 0xf4, 0x62, 0x47, 0x35, 0x1c, 0x45, + 0x35, 0xeb, 0xca, 0x81, 0xea, 0x1c, 0x14, 0xa7, 0x31, 0xc1, 0x72, 0xa2, 0x28, 0xc8, 0xb7, 0x61, + 0xc5, 0x35, 0xa6, 0x57, 0x25, 0x6a, 0x15, 0xb3, 0x7e, 0x59, 0x75, 0x0e, 0xa4, 0x32, 0x9c, 0x20, + 0x2c, 0x8e, 0x6b, 0xeb, 0x66, 0x53, 0xd1, 0x0e, 0x90, 0x76, 0x55, 0xe9, 0xb8, 0x8d, 0x0b, 0xc5, + 0xdb, 0xfd, 0xf3, 0x13, 0x0b, 0x6b, 0x44, 0x67, 0x05, 0xab, 0xec, 0xb9, 0x8d, 0x0b, 0x52, 0x0d, + 0xf2, 0x78, 0x33, 0x5a, 0xfa, 0xcb, 0x48, 0x69, 0x58, 0x36, 0xa9, 0x2c, 0x85, 0x88, 0x93, 0xed, + 0xf3, 0xe0, 0xc2, 0x36, 0x03, 0x6c, 0x5a, 0x75, 0x54, 0x4e, 0xd7, 0x76, 0xaa, 0xd5, 0x55, 0x39, + 0xc7, 0x59, 0x2e, 0x59, 0x36, 0x0e, 0xa8, 0xa6, 0xe5, 0x39, 0x38, 0x47, 0x03, 0xaa, 0x69, 0x71, + 0xf7, 0x9e, 0x83, 0x29, 0x4d, 0xa3, 0x6b, 0xd6, 0x35, 0x85, 0xb5, 0xf8, 0x4e, 0x51, 0x0c, 0x38, + 0x4b, 0xd3, 0xd6, 0xa8, 0x02, 0x8b, 0x71, 0x47, 0x7a, 0x14, 0x6e, 0xe9, 0x3a, 0xcb, 0x0f, 0x9c, + 0xec, 0x59, 0x65, 0x18, 0x7a, 0x0e, 0xa6, 0xda, 0x87, 0xbd, 0x40, 0x29, 0x30, 0x63, 0xfb, 0x30, + 0x0c, 0xbb, 0x9b, 0xbc, 0xb6, 0xd9, 0x48, 0x53, 0x5d, 0x54, 0x2f, 0xde, 0xea, 0xd7, 0xf6, 0x0d, + 0x48, 0x8b, 0x20, 0x6a, 0x9a, 0x82, 0x4c, 0x75, 0xdf, 0x40, 0x8a, 0x6a, 0x23, 0x53, 0x75, 0x8a, + 0xb3, 0x7e, 0xe5, 0x82, 0xa6, 0x55, 0xc9, 0x68, 0x85, 0x0c, 0x4a, 0x67, 0x60, 0xd2, 0xda, 0x7f, + 0x41, 0xa3, 0x91, 0xa5, 0xb4, 0x6d, 0xd4, 0xd0, 0xaf, 0x17, 0xef, 0x22, 0x6e, 0x9a, 0xc0, 0x03, + 0x24, 0xae, 0x76, 0x88, 0x58, 0xba, 0x17, 0x44, 0xcd, 0x39, 0x50, 0xed, 0x36, 0x29, 0xed, 0x4e, + 0x5b, 0xd5, 0x50, 0xf1, 0x6e, 0xaa, 0x4a, 0xe5, 0x5b, 0x5c, 0x8c, 0x23, 0xdb, 0x79, 0x49, 0x6f, + 0xb8, 0x9c, 0xf1, 0x34, 0x8d, 0x6c, 0x22, 0x63, 0x6c, 0x57, 0x60, 0xba, 0x63, 0xea, 0xa6, 0x8b, + 0xec, 0xb6, 0x8d, 0x70, 0x13, 0x4f, 0x4f, 0x62, 0xf1, 0x9f, 0xc6, 0xfa, 0xb4, 0xe1, 0x7b, 0x7e, + 0x6d, 0x1a, 0x00, 0xf2, 0x54, 0xa7, 0x57, 0x38, 0x57, 0x86, 0xbc, 0x3f, 0x2e, 0xa4, 0x2c, 0xd0, + 0xc8, 0x10, 0x05, 0x5c, 0x63, 0x57, 0xb6, 0x57, 0x71, 0x75, 0x7c, 0xae, 0x2a, 0x26, 0x70, 0x95, + 0xde, 0x58, 0xdf, 0xad, 0x2a, 0xf2, 0xde, 0xd6, 0xee, 0xfa, 0x66, 0x55, 0x4c, 0x9e, 0xc9, 0x66, + 0xde, 0x1b, 0x13, 0x6f, 0xdc, 0xb8, 0x71, 0x23, 0x31, 0xf7, 0x9d, 0x04, 0x14, 0x82, 0x9d, 0xb1, + 0xf4, 0x59, 0xb8, 0x95, 0xbf, 0xc6, 0x3a, 0xc8, 0x55, 0x5e, 0xd2, 0x6d, 0x12, 0xaa, 0x2d, 0x95, + 0xf6, 0x96, 0x9e, 0x97, 0xa7, 0x99, 0x56, 0x0d, 0xb9, 0xcf, 0xe8, 0x36, 0x0e, 0xc4, 0x96, 0xea, + 0x4a, 0x1b, 0x30, 0x6b, 0x5a, 0x8a, 0xe3, 0xaa, 0x66, 0x5d, 0xb5, 0xeb, 0x4a, 0xf7, 0x02, 0x41, + 0x51, 0x35, 0x0d, 0x39, 0x8e, 0x45, 0x4b, 0x84, 0xc7, 0xf2, 0x19, 0xd3, 0xaa, 0x31, 0xe5, 0x6e, + 0xee, 0xac, 0x30, 0xd5, 0x50, 0x44, 0x24, 0xfb, 0x45, 0xc4, 0xed, 0x90, 0x6d, 0xa9, 0x6d, 0x05, + 0x99, 0xae, 0x7d, 0x48, 0xfa, 0xb9, 0x8c, 0x9c, 0x69, 0xa9, 0xed, 0x2a, 0x7e, 0xfe, 0xe4, 0xf6, + 0xc0, 0xef, 0xc7, 0x1f, 0x26, 0x21, 0xef, 0xef, 0xe9, 0x70, 0x8b, 0xac, 0x91, 0xfc, 0x2d, 0x90, + 0x13, 0x7e, 0xe7, 0xc0, 0x0e, 0x70, 0x61, 0x05, 0x27, 0xf6, 0xf2, 0x28, 0xed, 0xb4, 0x64, 0x8a, + 0xc4, 0x45, 0x15, 0x9f, 0x69, 0x44, 0xfb, 0xf7, 0x8c, 0xcc, 0x9e, 0xa4, 0x35, 0x18, 0x7d, 0xc1, + 0x21, 0xdc, 0xa3, 0x84, 0xfb, 0xae, 0xc1, 0xdc, 0x4f, 0xd6, 0x08, 0x79, 0xf6, 0xc9, 0x9a, 0xb2, + 0xb5, 0x2d, 0x6f, 0x56, 0x36, 0x64, 0x06, 0x97, 0x6e, 0x83, 0x94, 0xa1, 0xbe, 0x7c, 0x18, 0x2c, + 0x01, 0x44, 0x34, 0xac, 0xe3, 0x6f, 0x83, 0xd4, 0x4b, 0x48, 0xbd, 0x1a, 0x4c, 0xbc, 0x44, 0xf4, + 0x09, 0x86, 0xfe, 0x22, 0xa4, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0x71, 0x44, 0xca, 0x40, 0x6a, + 0x65, 0x5b, 0xc6, 0xe1, 0x2f, 0x42, 0x9e, 0x4a, 0x95, 0x9d, 0xf5, 0xea, 0x4a, 0x55, 0x4c, 0xcc, + 0x9d, 0x83, 0x51, 0xea, 0x04, 0x7c, 0x34, 0x3c, 0x37, 0x88, 0x23, 0xec, 0x91, 0x71, 0x08, 0x7c, + 0x74, 0x6f, 0x73, 0xb9, 0x2a, 0x8b, 0x09, 0xff, 0xf6, 0x3a, 0x90, 0xf7, 0xb7, 0x73, 0x3f, 0x9d, + 0x98, 0xfa, 0x5b, 0x01, 0x72, 0xbe, 0xf6, 0x0c, 0x37, 0x06, 0xaa, 0x61, 0x58, 0x2f, 0x29, 0xaa, + 0xa1, 0xab, 0x0e, 0x0b, 0x0a, 0x20, 0xa2, 0x0a, 0x96, 0x0c, 0xbb, 0x69, 0x3f, 0x15, 0xe3, 0xdf, + 0x10, 0x40, 0x0c, 0xb7, 0x76, 0x21, 0x03, 0x85, 0x9f, 0xa9, 0x81, 0xaf, 0x0b, 0x50, 0x08, 0xf6, + 0x73, 0x21, 0xf3, 0x4e, 0xfd, 0x4c, 0xcd, 0x7b, 0x27, 0x01, 0xe3, 0x81, 0x2e, 0x6e, 0x58, 0xeb, + 0x5e, 0x84, 0x49, 0xbd, 0x8e, 0x5a, 0x6d, 0xcb, 0x45, 0xa6, 0x76, 0xa8, 0x18, 0xe8, 0x1a, 0x32, + 0x8a, 0x73, 0x24, 0x51, 0x2c, 0x0e, 0xee, 0x13, 0x17, 0xd6, 0xbb, 0xb8, 0x0d, 0x0c, 0x2b, 0x4f, + 0xad, 0xaf, 0x56, 0x37, 0x77, 0xb6, 0x77, 0xab, 0x5b, 0x2b, 0xcf, 0x2a, 0x7b, 0x5b, 0x4f, 0x6d, + 0x6d, 0x3f, 0xb3, 0x25, 0x8b, 0x7a, 0x48, 0xed, 0x13, 0x3c, 0xea, 0x3b, 0x20, 0x86, 0x8d, 0x92, + 0x6e, 0x85, 0x28, 0xb3, 0xc4, 0x11, 0x69, 0x0a, 0x26, 0xb6, 0xb6, 0x95, 0xda, 0xfa, 0x6a, 0x55, + 0xa9, 0x5e, 0xba, 0x54, 0x5d, 0xd9, 0xad, 0xd1, 0x17, 0x67, 0x4f, 0x7b, 0x37, 0x78, 0xa8, 0x5f, + 0x4b, 0xc2, 0x54, 0x84, 0x25, 0x52, 0x85, 0xf5, 0xec, 0xf4, 0x35, 0xe2, 0x81, 0x61, 0xac, 0x5f, + 0xc0, 0x5d, 0xc1, 0x8e, 0x6a, 0xbb, 0xac, 0xc5, 0xbf, 0x17, 0xb0, 0x97, 0x4c, 0x57, 0x6f, 0xe8, + 0xc8, 0x66, 0xf7, 0x0c, 0xb4, 0x91, 0x9f, 0xe8, 0xca, 0xe9, 0x55, 0xc3, 0xfd, 0x20, 0xb5, 0x2d, + 0x47, 0x77, 0xf5, 0x6b, 0x48, 0xd1, 0x4d, 0x7e, 0x29, 0x81, 0x1b, 0xfb, 0x94, 0x2c, 0xf2, 0x91, + 0x75, 0xd3, 0xf5, 0xb4, 0x4d, 0xd4, 0x54, 0x43, 0xda, 0x38, 0x81, 0x27, 0x65, 0x91, 0x8f, 0x78, + 0xda, 0xa7, 0x20, 0x5f, 0xb7, 0x3a, 0xb8, 0x4d, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x8e, 0xca, + 0x3c, 0x15, 0xd6, 0xc7, 0x76, 0x6f, 0x43, 0xf2, 0x72, 0x8e, 0xca, 0xa8, 0xca, 0x69, 0x98, 0x50, + 0x9b, 0x4d, 0x1b, 0x93, 0x73, 0x22, 0xda, 0x99, 0x17, 0x3c, 0x31, 0x51, 0x9c, 0x79, 0x12, 0x32, + 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, 0x28, 0x6d, 0x7a, 0x27, 0x95, 0x98, 0xcf, 0xca, 0x19, 0x93, + 0x0f, 0x9e, 0x82, 0xbc, 0xee, 0x28, 0xdd, 0xcb, 0xd1, 0xc4, 0xc9, 0xc4, 0x7c, 0x46, 0xce, 0xe9, + 0x8e, 0x77, 0x1b, 0x36, 0xf7, 0x66, 0x02, 0x0a, 0xc1, 0xcb, 0x5d, 0x69, 0x15, 0x32, 0x86, 0xa5, + 0xa9, 0x24, 0xb4, 0xe8, 0x2f, 0x0b, 0xf3, 0x31, 0xf7, 0xc1, 0x0b, 0x1b, 0x4c, 0x5f, 0xf6, 0x90, + 0x33, 0xff, 0x28, 0x40, 0x86, 0x8b, 0xa5, 0x13, 0x90, 0x6a, 0xab, 0xee, 0x01, 0xa1, 0x4b, 0x2f, + 0x27, 0x44, 0x41, 0x26, 0xcf, 0x58, 0xee, 0xb4, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x67, 0xbc, + 0xaf, 0x06, 0x52, 0xeb, 0xa4, 0xed, 0xb7, 0x5a, 0x2d, 0x64, 0xba, 0x0e, 0xdf, 0x57, 0x26, 0x5f, + 0x61, 0x62, 0xe9, 0x3e, 0x98, 0x74, 0x6d, 0x55, 0x37, 0x02, 0xba, 0x29, 0xa2, 0x2b, 0xf2, 0x01, + 0x4f, 0xb9, 0x0c, 0xb7, 0x71, 0xde, 0x3a, 0x72, 0x55, 0xed, 0x00, 0xd5, 0xbb, 0xa0, 0x51, 0x72, + 0x73, 0x78, 0x2b, 0x53, 0x58, 0x65, 0xe3, 0x1c, 0x3b, 0xf7, 0x3d, 0x01, 0x26, 0xf9, 0x8b, 0x4a, + 0xdd, 0x73, 0xd6, 0x26, 0x80, 0x6a, 0x9a, 0x96, 0xeb, 0x77, 0x57, 0x6f, 0x28, 0xf7, 0xe0, 0x16, + 0x2a, 0x1e, 0x48, 0xf6, 0x11, 0xcc, 0xb4, 0x00, 0xba, 0x23, 0x7d, 0xdd, 0x36, 0x0b, 0x39, 0x76, + 0x73, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, 0xf8, 0x8d, 0x46, 0x9a, 0x86, 0xf4, 0x3e, + 0x6a, 0xea, 0x26, 0xbb, 0x4f, 0xa4, 0x0f, 0xfc, 0x96, 0x32, 0xe5, 0xdd, 0x52, 0x2e, 0x5f, 0x81, + 0x29, 0xcd, 0x6a, 0x85, 0xcd, 0x5d, 0x16, 0x43, 0xaf, 0xd7, 0xce, 0x65, 0xe1, 0x39, 0xe8, 0xb6, + 0x98, 0x5f, 0x4e, 0x24, 0xd7, 0x76, 0x96, 0xbf, 0x9a, 0x98, 0x59, 0xa3, 0xb8, 0x1d, 0xbe, 0x4c, + 0x19, 0x35, 0x0c, 0xa4, 0x61, 0xd3, 0xe1, 0xc7, 0xf7, 0xc0, 0x03, 0x4d, 0xdd, 0x3d, 0xe8, 0xec, + 0x2f, 0x68, 0x56, 0x6b, 0xb1, 0x69, 0x35, 0xad, 0xee, 0xcf, 0x5d, 0xf8, 0x89, 0x3c, 0x90, 0xff, + 0xd8, 0x4f, 0x5e, 0x59, 0x4f, 0x3a, 0x13, 0xfb, 0xfb, 0x58, 0x79, 0x0b, 0xa6, 0x98, 0xb2, 0x42, + 0xee, 0xdc, 0xe9, 0xab, 0x81, 0x34, 0xf0, 0xde, 0xa5, 0xf8, 0x8d, 0x77, 0x49, 0xad, 0x96, 0x27, + 0x19, 0x14, 0x8f, 0xd1, 0x17, 0x88, 0xb2, 0x0c, 0xb7, 0x04, 0xf8, 0xe8, 0xb9, 0x44, 0x76, 0x0c, + 0xe3, 0x77, 0x18, 0xe3, 0x94, 0x8f, 0xb1, 0xc6, 0xa0, 0xe5, 0x15, 0x18, 0x3f, 0x0e, 0xd7, 0xdf, + 0x31, 0xae, 0x3c, 0xf2, 0x93, 0xac, 0xc1, 0x04, 0x21, 0xd1, 0x3a, 0x8e, 0x6b, 0xb5, 0x48, 0xd2, + 0x1b, 0x4c, 0xf3, 0xf7, 0xef, 0xd2, 0x83, 0x52, 0xc0, 0xb0, 0x15, 0x0f, 0x55, 0x2e, 0x03, 0xf9, + 0x99, 0xa1, 0x8e, 0x34, 0x23, 0x86, 0xe1, 0x2d, 0x66, 0x88, 0xa7, 0x5f, 0x7e, 0x1a, 0xa6, 0xf1, + 0xff, 0x24, 0x27, 0xf9, 0x2d, 0x89, 0xbf, 0x65, 0x2a, 0x7e, 0xef, 0x15, 0x7a, 0x16, 0xa7, 0x3c, + 0x02, 0x9f, 0x4d, 0xbe, 0x5d, 0x6c, 0x22, 0xd7, 0x45, 0xb6, 0xa3, 0xa8, 0x46, 0x94, 0x79, 0xbe, + 0xd7, 0xf4, 0xe2, 0x17, 0xde, 0x0f, 0xee, 0xe2, 0x1a, 0x45, 0x56, 0x0c, 0xa3, 0xbc, 0x07, 0xb7, + 0x46, 0x44, 0xc5, 0x10, 0x9c, 0xaf, 0x31, 0xce, 0xe9, 0x9e, 0xc8, 0xc0, 0xb4, 0x3b, 0xc0, 0xe5, + 0xde, 0x5e, 0x0e, 0xc1, 0xf9, 0x7b, 0x8c, 0x53, 0x62, 0x58, 0xbe, 0xa5, 0x98, 0xf1, 0x49, 0x98, + 0xbc, 0x86, 0xec, 0x7d, 0xcb, 0x61, 0x57, 0x23, 0x43, 0xd0, 0xbd, 0xce, 0xe8, 0x26, 0x18, 0x90, + 0xdc, 0x95, 0x60, 0xae, 0x47, 0x21, 0xd3, 0x50, 0x35, 0x34, 0x04, 0xc5, 0x17, 0x19, 0xc5, 0x18, + 0xd6, 0xc7, 0xd0, 0x0a, 0xe4, 0x9b, 0x16, 0x2b, 0x4b, 0xf1, 0xf0, 0x37, 0x18, 0x3c, 0xc7, 0x31, + 0x8c, 0xa2, 0x6d, 0xb5, 0x3b, 0x06, 0xae, 0x59, 0xf1, 0x14, 0xbf, 0xcf, 0x29, 0x38, 0x86, 0x51, + 0x1c, 0xc3, 0xad, 0x7f, 0xc0, 0x29, 0x1c, 0x9f, 0x3f, 0x9f, 0x80, 0x9c, 0x65, 0x1a, 0x87, 0x96, + 0x39, 0x8c, 0x11, 0x5f, 0x62, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x22, 0x64, 0x87, 0xdd, 0x88, 0x3f, + 0x7c, 0x9f, 0x1f, 0x0f, 0xbe, 0x03, 0x6b, 0x30, 0xc1, 0x13, 0x94, 0x6e, 0x99, 0x43, 0x50, 0xfc, + 0x11, 0xa3, 0x28, 0xf8, 0x60, 0x6c, 0x19, 0x2e, 0x72, 0xdc, 0x26, 0x1a, 0x86, 0xe4, 0x4d, 0xbe, + 0x0c, 0x06, 0x61, 0xae, 0xdc, 0x47, 0xa6, 0x76, 0x30, 0x1c, 0xc3, 0x57, 0xb8, 0x2b, 0x39, 0x06, + 0x53, 0xac, 0xc0, 0x78, 0x4b, 0xb5, 0x9d, 0x03, 0xd5, 0x18, 0x6a, 0x3b, 0xfe, 0x98, 0x71, 0xe4, + 0x3d, 0x10, 0xf3, 0x48, 0xc7, 0x3c, 0x0e, 0xcd, 0x57, 0xb9, 0x47, 0x7c, 0x30, 0x76, 0xf4, 0x1c, + 0x97, 0x5c, 0x40, 0x1d, 0x87, 0xed, 0x6b, 0xfc, 0xe8, 0x51, 0xec, 0xa6, 0x9f, 0xf1, 0x22, 0x64, + 0x1d, 0xfd, 0xe5, 0xa1, 0x68, 0xfe, 0x84, 0xef, 0x34, 0x01, 0x60, 0xf0, 0xb3, 0x70, 0x5b, 0x64, + 0x99, 0x18, 0x82, 0xec, 0x4f, 0x19, 0xd9, 0x89, 0x88, 0x52, 0xc1, 0x52, 0xc2, 0x71, 0x29, 0xff, + 0x8c, 0xa7, 0x04, 0x14, 0xe2, 0xda, 0xc1, 0x2f, 0x0a, 0x8e, 0xda, 0x38, 0x9e, 0xd7, 0xfe, 0x9c, + 0x7b, 0x8d, 0x62, 0x03, 0x5e, 0xdb, 0x85, 0x13, 0x8c, 0xf1, 0x78, 0xfb, 0xfa, 0x75, 0x9e, 0x58, + 0x29, 0x7a, 0x2f, 0xb8, 0xbb, 0xff, 0x0f, 0x66, 0x3c, 0x77, 0xf2, 0x8e, 0xd4, 0x51, 0x5a, 0x6a, + 0x7b, 0x08, 0xe6, 0x6f, 0x30, 0x66, 0x9e, 0xf1, 0xbd, 0x96, 0xd6, 0xd9, 0x54, 0xdb, 0x98, 0xfc, + 0x0a, 0x14, 0x39, 0x79, 0xc7, 0xb4, 0x91, 0x66, 0x35, 0x4d, 0xfd, 0x65, 0x54, 0x1f, 0x82, 0xfa, + 0x2f, 0x42, 0x5b, 0xb5, 0xe7, 0x83, 0x63, 0xe6, 0x75, 0x10, 0xbd, 0x5e, 0x45, 0xd1, 0x5b, 0x6d, + 0xcb, 0x76, 0x63, 0x18, 0xff, 0x92, 0xef, 0x94, 0x87, 0x5b, 0x27, 0xb0, 0x72, 0x15, 0x0a, 0xe4, + 0x71, 0xd8, 0x90, 0xfc, 0x2b, 0x46, 0x34, 0xde, 0x45, 0xb1, 0xc4, 0xa1, 0x59, 0xad, 0xb6, 0x6a, + 0x0f, 0x93, 0xff, 0xfe, 0x9a, 0x27, 0x0e, 0x06, 0x61, 0x89, 0xc3, 0x3d, 0x6c, 0x23, 0x5c, 0xed, + 0x87, 0x60, 0xf8, 0x26, 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x30, 0x04, 0xc5, 0xdf, 0x70, + 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0xeb, 0x16, 0x5a, 0x1b, 0x35, 0x75, 0xc7, 0xb5, 0x69, 0x1f, 0x3c, + 0x98, 0xea, 0x5b, 0xef, 0x07, 0x9b, 0x30, 0xd9, 0x07, 0x2d, 0x3f, 0x09, 0x13, 0xa1, 0x16, 0x43, + 0x8a, 0xfb, 0x66, 0xa1, 0xf8, 0xf3, 0x1f, 0xb2, 0x64, 0x14, 0xec, 0x30, 0xca, 0x1b, 0x78, 0xdf, + 0x83, 0x7d, 0x40, 0x3c, 0xd9, 0x2b, 0x1f, 0x7a, 0x5b, 0x1f, 0x68, 0x03, 0xca, 0x97, 0x60, 0x3c, + 0xd0, 0x03, 0xc4, 0x53, 0xfd, 0x02, 0xa3, 0xca, 0xfb, 0x5b, 0x80, 0xf2, 0x39, 0x48, 0xe1, 0x7a, + 0x1e, 0x0f, 0xff, 0x45, 0x06, 0x27, 0xea, 0xe5, 0xc7, 0x20, 0xc3, 0xeb, 0x78, 0x3c, 0xf4, 0x97, + 0x18, 0xd4, 0x83, 0x60, 0x38, 0xaf, 0xe1, 0xf1, 0xf0, 0x5f, 0xe6, 0x70, 0x0e, 0xc1, 0xf0, 0xe1, + 0x5d, 0xf8, 0xed, 0x5f, 0x49, 0xb1, 0x3c, 0xcc, 0x7d, 0x77, 0x11, 0xc6, 0x58, 0xf1, 0x8e, 0x47, + 0x7f, 0x9e, 0x4d, 0xce, 0x11, 0xe5, 0x47, 0x20, 0x3d, 0xa4, 0xc3, 0x7f, 0x95, 0x41, 0xa9, 0x7e, + 0x79, 0x05, 0x72, 0xbe, 0x82, 0x1d, 0x0f, 0xff, 0x35, 0x06, 0xf7, 0xa3, 0xb0, 0xe9, 0xac, 0x60, + 0xc7, 0x13, 0xfc, 0x3a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0xad, 0x8e, 0x47, 0xff, 0x06, 0xf7, + 0x3a, 0x87, 0x94, 0x9f, 0x80, 0xac, 0x97, 0x7f, 0xe3, 0xf1, 0xbf, 0xc9, 0xf0, 0x5d, 0x0c, 0xf6, + 0x80, 0x2f, 0xff, 0xc7, 0x53, 0xfc, 0x16, 0xf7, 0x80, 0x0f, 0x85, 0x8f, 0x51, 0xb8, 0xa6, 0xc7, + 0x33, 0xfd, 0x36, 0x3f, 0x46, 0xa1, 0x92, 0x8e, 0x77, 0x93, 0xa4, 0xc1, 0x78, 0x8a, 0xdf, 0xe1, + 0xbb, 0x49, 0xf4, 0xb1, 0x19, 0xe1, 0x22, 0x19, 0xcf, 0xf1, 0xbb, 0xdc, 0x8c, 0x50, 0x8d, 0x2c, + 0xef, 0x80, 0xd4, 0x5b, 0x20, 0xe3, 0xf9, 0x5e, 0x65, 0x7c, 0x93, 0x3d, 0xf5, 0xb1, 0xfc, 0x0c, + 0x9c, 0x88, 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0xf8, 0x30, 0xf4, 0x3a, 0xe3, 0xaf, 0x8d, 0xe5, 0xdd, + 0x6e, 0x96, 0xf5, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x3e, 0x0c, 0x26, 0x5a, 0x7f, 0x5d, 0x2c, 0x57, + 0x00, 0xba, 0x35, 0x29, 0x9e, 0xeb, 0x75, 0xc6, 0xe5, 0x03, 0xe1, 0xa3, 0xc1, 0x4a, 0x52, 0x3c, + 0xfe, 0x8b, 0xfc, 0x68, 0x30, 0x04, 0x3e, 0x1a, 0xbc, 0x1a, 0xc5, 0xa3, 0xdf, 0xe0, 0x47, 0x83, + 0x43, 0xca, 0x17, 0x21, 0x63, 0x76, 0x0c, 0x03, 0xc7, 0x96, 0x34, 0xf8, 0x33, 0xa2, 0xe2, 0x3f, + 0x7f, 0xc4, 0xc0, 0x1c, 0x50, 0x3e, 0x07, 0x69, 0xd4, 0xda, 0x47, 0xf5, 0x38, 0xe4, 0xbf, 0x7c, + 0xc4, 0xf3, 0x09, 0xd6, 0x2e, 0x3f, 0x01, 0x40, 0x5f, 0xa6, 0xc9, 0xaf, 0x44, 0x31, 0xd8, 0x7f, + 0xfd, 0x88, 0x7d, 0xa1, 0xd0, 0x85, 0x74, 0x09, 0xe8, 0xf7, 0x0e, 0x83, 0x09, 0xde, 0x0f, 0x12, + 0x90, 0x17, 0xf0, 0x47, 0x61, 0xec, 0x05, 0xc7, 0x32, 0x5d, 0xb5, 0x19, 0x87, 0xfe, 0x37, 0x86, + 0xe6, 0xfa, 0xd8, 0x61, 0x2d, 0xcb, 0x46, 0xae, 0xda, 0x74, 0xe2, 0xb0, 0xff, 0xce, 0xb0, 0x1e, + 0x00, 0x83, 0x35, 0xd5, 0x71, 0x87, 0x59, 0xf7, 0x7f, 0x70, 0x30, 0x07, 0x60, 0xa3, 0xf1, 0xff, + 0x57, 0xd1, 0x61, 0x1c, 0xf6, 0x03, 0x6e, 0x34, 0xd3, 0x2f, 0x3f, 0x06, 0x59, 0xfc, 0x2f, 0xfd, + 0x6a, 0x27, 0x06, 0xfc, 0x9f, 0x0c, 0xdc, 0x45, 0xe0, 0x99, 0x1d, 0xb7, 0xee, 0xea, 0xf1, 0xce, + 0xfe, 0x2f, 0xb6, 0xd3, 0x5c, 0xbf, 0x5c, 0x81, 0x9c, 0xe3, 0xd6, 0xeb, 0x1d, 0xd6, 0xd1, 0xc4, + 0xc0, 0x7f, 0xfc, 0x91, 0xf7, 0x92, 0xeb, 0x61, 0x96, 0x4f, 0x45, 0x5f, 0xd6, 0xc1, 0x9a, 0xb5, + 0x66, 0xd1, 0x6b, 0x3a, 0xf8, 0x9f, 0x07, 0xe0, 0xb4, 0x66, 0xb5, 0xf6, 0x2d, 0x67, 0x91, 0x26, + 0x14, 0x2f, 0x9d, 0x2c, 0xb6, 0xd4, 0xb6, 0x43, 0x30, 0x4b, 0xec, 0xbe, 0x2d, 0xc7, 0x9e, 0xf0, + 0xc0, 0xcc, 0xf1, 0xee, 0xea, 0xe6, 0xee, 0x80, 0xf1, 0x4b, 0x86, 0xa5, 0xba, 0xba, 0xd9, 0xdc, + 0xb1, 0x74, 0xd3, 0x95, 0xf2, 0x20, 0x34, 0xc8, 0x0f, 0x4d, 0x82, 0x2c, 0x34, 0xe6, 0xfe, 0x21, + 0x0d, 0x59, 0x7a, 0xcd, 0xb3, 0xa9, 0xb6, 0xa5, 0x9f, 0x83, 0xfc, 0x16, 0x3b, 0x29, 0x0f, 0x2d, + 0x5d, 0x70, 0xbc, 0x3b, 0x65, 0xdf, 0xfc, 0x0b, 0x9e, 0xf6, 0x82, 0x5f, 0x95, 0xfc, 0xb0, 0xbc, + 0xfc, 0xe0, 0x0f, 0xde, 0x9e, 0xbd, 0xbf, 0xaf, 0x7d, 0xb8, 0x34, 0x2e, 0xd2, 0x90, 0x5e, 0xd8, + 0xd3, 0x4d, 0xf7, 0xa1, 0xa5, 0x0b, 0x72, 0x60, 0x3e, 0xe9, 0x1a, 0x64, 0xd8, 0x80, 0xc3, 0x7e, + 0x6b, 0xb8, 0xab, 0xcf, 0xdc, 0x5c, 0x8d, 0xce, 0x7b, 0xf6, 0xad, 0xb7, 0x67, 0x47, 0x8e, 0x3d, + 0xb7, 0x37, 0x97, 0xf4, 0x22, 0xe4, 0xb8, 0x1d, 0xeb, 0x75, 0x87, 0x7d, 0x52, 0x7c, 0x3a, 0x66, + 0xd9, 0xeb, 0x75, 0x36, 0xfb, 0x3d, 0x3f, 0x78, 0x7b, 0x76, 0x6e, 0xe0, 0xcc, 0x0b, 0x7b, 0x1d, + 0xbd, 0x2e, 0xfb, 0xe7, 0x90, 0x9e, 0x87, 0x24, 0x9e, 0x8a, 0x7e, 0x7c, 0x3c, 0xdb, 0x67, 0x2a, + 0x6f, 0x8a, 0x33, 0x6c, 0x81, 0xc3, 0x4c, 0x83, 0x79, 0x67, 0x9e, 0x80, 0xc9, 0x9e, 0xed, 0x91, + 0x44, 0x48, 0x5e, 0x45, 0x87, 0xec, 0x7b, 0x23, 0xfc, 0xaf, 0x34, 0xdd, 0xfd, 0x9e, 0x4e, 0x98, + 0xcf, 0xb3, 0x8f, 0xe4, 0xca, 0x89, 0x0b, 0xc2, 0xcc, 0x45, 0x18, 0x0f, 0xf8, 0xf8, 0x58, 0xe0, + 0xc7, 0x41, 0x0c, 0x7b, 0xe9, 0x58, 0xf8, 0xf3, 0x90, 0xf9, 0x38, 0xb8, 0xb9, 0xef, 0x4b, 0x30, + 0x56, 0x31, 0x8c, 0x4d, 0xb5, 0xed, 0x48, 0xcf, 0xc2, 0x24, 0x6d, 0xe0, 0x77, 0xad, 0x55, 0xf2, + 0xeb, 0xce, 0xa6, 0xda, 0x66, 0x01, 0x7d, 0x5f, 0xc0, 0xdd, 0x0c, 0xb0, 0xd0, 0xa3, 0x4d, 0xe6, + 0x97, 0x7b, 0x59, 0xa4, 0xa7, 0x41, 0xe4, 0x42, 0x72, 0xb6, 0x30, 0x33, 0x0d, 0xd7, 0x33, 0x03, + 0x99, 0xb9, 0x32, 0x25, 0xee, 0xe1, 0x90, 0x1e, 0x87, 0xcc, 0xba, 0xe9, 0x3e, 0xbc, 0x84, 0xf9, + 0x68, 0x0c, 0xce, 0x45, 0xf2, 0x71, 0x25, 0xca, 0xe3, 0x61, 0x18, 0xfe, 0xfc, 0x59, 0x8c, 0x4f, + 0x0d, 0xc6, 0x13, 0xa5, 0x2e, 0x9e, 0x3c, 0x4a, 0x15, 0xc8, 0xe2, 0x3d, 0xa7, 0x06, 0xd0, 0xaf, + 0xd9, 0xef, 0x8c, 0x24, 0xf0, 0xb4, 0x28, 0x43, 0x17, 0xc5, 0x29, 0xa8, 0x0d, 0xa3, 0x31, 0x14, + 0x3e, 0x23, 0xba, 0x28, 0x4c, 0x51, 0xf3, 0xac, 0x18, 0x1b, 0x40, 0x51, 0x0b, 0x59, 0x51, 0xf3, + 0x5b, 0x51, 0xf3, 0xac, 0xc8, 0xc4, 0x50, 0xf8, 0xad, 0xf0, 0x9e, 0xa5, 0x55, 0x80, 0x4b, 0xfa, + 0x75, 0x54, 0xa7, 0x66, 0x64, 0x23, 0x92, 0x11, 0xe7, 0xe8, 0xaa, 0x51, 0x12, 0x1f, 0x4e, 0x5a, + 0x83, 0x5c, 0xad, 0xd1, 0xa5, 0x01, 0xf6, 0x31, 0x7f, 0xa4, 0x29, 0x8d, 0x10, 0x8f, 0x1f, 0xe9, + 0x99, 0x43, 0x97, 0x94, 0x8b, 0x33, 0xc7, 0xb7, 0x26, 0x1f, 0xae, 0x6b, 0x0e, 0xa5, 0xc9, 0xc7, + 0x9a, 0xe3, 0xe3, 0xf1, 0x23, 0xa5, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x58, 0xb3, 0x38, 0x4e, 0x48, + 0x4e, 0x45, 0x92, 0x30, 0x1d, 0x4a, 0xc0, 0x11, 0x64, 0x77, 0x48, 0xe8, 0x63, 0x78, 0x61, 0xd0, + 0xee, 0x70, 0x2d, 0xbe, 0x3b, 0xfc, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x84, 0x9b, 0xe5, 0xe2, + 0xc4, 0x10, 0x27, 0x90, 0x2b, 0x87, 0x4e, 0x20, 0x17, 0x4b, 0x35, 0x98, 0xe0, 0xb2, 0xaa, 0xd9, + 0xc1, 0x39, 0xb8, 0x28, 0xb2, 0x2f, 0x8d, 0x07, 0xd1, 0x32, 0x5d, 0xca, 0x1a, 0x66, 0x90, 0x76, + 0xa0, 0xc0, 0x45, 0x9b, 0x0e, 0x59, 0xf4, 0x64, 0x44, 0x5d, 0x0d, 0x73, 0x52, 0x55, 0x4a, 0x19, + 0xc2, 0xcf, 0xac, 0xc2, 0x89, 0xe8, 0x6c, 0x15, 0x97, 0x2d, 0x05, 0x7f, 0x96, 0x5d, 0x81, 0x5b, + 0x22, 0x33, 0x53, 0x1c, 0x49, 0x22, 0x54, 0x27, 0x02, 0xe9, 0xc8, 0x0f, 0x4e, 0x47, 0x80, 0xd3, + 0xbd, 0xe0, 0x6e, 0x90, 0xf9, 0xc1, 0xc9, 0x08, 0x70, 0xd2, 0x0f, 0xfe, 0x2c, 0x14, 0x82, 0x79, + 0xc8, 0x8f, 0x1e, 0x8f, 0x40, 0x8f, 0x47, 0xa0, 0xa3, 0xe7, 0x4e, 0x45, 0xa0, 0x53, 0x21, 0x74, + 0xad, 0xef, 0xdc, 0x93, 0x11, 0xe8, 0xc9, 0x08, 0x74, 0xf4, 0xdc, 0x52, 0x04, 0x5a, 0xf2, 0xa3, + 0x1f, 0x83, 0x89, 0x50, 0xca, 0xf1, 0xc3, 0xc7, 0x22, 0xe0, 0x63, 0xa1, 0xda, 0x1c, 0x4e, 0x35, + 0x7e, 0xfc, 0x44, 0x04, 0x7e, 0x22, 0x6a, 0xfa, 0x68, 0xeb, 0x47, 0x23, 0xe0, 0xa3, 0x91, 0xd3, + 0x47, 0xe3, 0xc5, 0x08, 0xbc, 0xe8, 0xc7, 0x97, 0x21, 0xef, 0xcf, 0x2a, 0x7e, 0x6c, 0x26, 0x02, + 0x9b, 0x09, 0xfb, 0x3d, 0x90, 0x52, 0xe2, 0x22, 0x3d, 0xdb, 0xe7, 0xb8, 0x04, 0xd2, 0xc8, 0xb1, + 0x3a, 0x9b, 0x2b, 0x30, 0x1d, 0x95, 0x34, 0x22, 0x38, 0xce, 0xf8, 0x39, 0x0a, 0x4b, 0xd3, 0x81, + 0x64, 0x41, 0x70, 0x9d, 0x96, 0x9f, 0xf9, 0x79, 0x98, 0x8a, 0x48, 0x1d, 0x11, 0xc4, 0x0f, 0xfa, + 0x89, 0x73, 0x4b, 0x33, 0x01, 0xe2, 0xc0, 0xbb, 0x82, 0xbf, 0xb5, 0xfa, 0xe1, 0x14, 0x14, 0x58, + 0x8a, 0xda, 0xb6, 0xeb, 0xc8, 0x46, 0x75, 0xe9, 0xff, 0xf7, 0xef, 0xb0, 0x96, 0xa2, 0x52, 0x1b, + 0xc3, 0x1d, 0xa3, 0xd1, 0x7a, 0xbe, 0x6f, 0xa3, 0xf5, 0xd0, 0x30, 0x13, 0xc4, 0xf5, 0x5b, 0xd5, + 0x9e, 0x7e, 0xeb, 0xde, 0x41, 0xb4, 0xfd, 0xda, 0xae, 0x6a, 0x4f, 0xdb, 0x15, 0x47, 0x13, 0xd9, + 0x7d, 0x5d, 0xee, 0xed, 0xbe, 0xce, 0x0c, 0xe2, 0xe9, 0xdf, 0x84, 0x5d, 0xee, 0x6d, 0xc2, 0x62, + 0x99, 0xa2, 0x7b, 0xb1, 0xcb, 0xbd, 0xbd, 0xd8, 0x40, 0xa6, 0xfe, 0x2d, 0xd9, 0xe5, 0xde, 0x96, + 0x2c, 0x96, 0x29, 0xba, 0x33, 0x7b, 0x2a, 0xa2, 0x33, 0xbb, 0x6f, 0x10, 0xd5, 0xa0, 0x06, 0x6d, + 0x2b, 0xaa, 0x41, 0xbb, 0x7f, 0xa0, 0x61, 0x03, 0xfb, 0xb4, 0xa7, 0x22, 0xfa, 0xb4, 0x78, 0xe3, + 0xfa, 0xb4, 0x6b, 0x5b, 0x51, 0xed, 0xda, 0x10, 0xc6, 0xf5, 0xeb, 0xda, 0x96, 0xc3, 0x5d, 0xdb, + 0xfc, 0x20, 0xae, 0xe8, 0xe6, 0xed, 0x72, 0x6f, 0xf3, 0x76, 0x26, 0xfe, 0x2c, 0x46, 0xf5, 0x70, + 0xcf, 0xf7, 0xed, 0xe1, 0x86, 0x3a, 0xdc, 0x71, 0xad, 0xdc, 0x73, 0xfd, 0x5a, 0xb9, 0x07, 0x87, + 0x61, 0x1f, 0xdc, 0xd1, 0x3d, 0xd3, 0xa7, 0xa3, 0x5b, 0x1c, 0x86, 0xfa, 0xd3, 0xc6, 0xee, 0xd3, + 0xc6, 0xee, 0xd3, 0xc6, 0xee, 0xd3, 0xc6, 0xee, 0xff, 0x46, 0x63, 0x57, 0x4e, 0xbd, 0xfa, 0xa5, + 0x59, 0xe1, 0xcc, 0x29, 0x18, 0x63, 0x53, 0x4b, 0xa3, 0x90, 0xd8, 0xac, 0x88, 0x23, 0xe4, 0xef, + 0xb2, 0x28, 0x90, 0xbf, 0x2b, 0x62, 0x62, 0x79, 0xe3, 0xad, 0x9b, 0xa5, 0x91, 0xef, 0xde, 0x2c, + 0x8d, 0x7c, 0xff, 0x66, 0x69, 0xe4, 0x9d, 0x9b, 0x25, 0xe1, 0xbd, 0x9b, 0x25, 0xe1, 0x83, 0x9b, + 0x25, 0xe1, 0x27, 0x37, 0x4b, 0xc2, 0x8d, 0xa3, 0x92, 0xf0, 0x95, 0xa3, 0x92, 0xf0, 0xf5, 0xa3, + 0x92, 0xf0, 0xad, 0xa3, 0x92, 0xf0, 0xed, 0xa3, 0x92, 0xf0, 0xd6, 0x51, 0x69, 0xe4, 0xbb, 0x47, + 0xa5, 0x91, 0x77, 0x8e, 0x4a, 0xc2, 0x7b, 0x47, 0xa5, 0x91, 0x0f, 0x8e, 0x4a, 0xc2, 0x4f, 0x8e, + 0x4a, 0xc2, 0x8d, 0x1f, 0x95, 0x46, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x39, 0x51, 0x04, 0x4e, + 0x5c, 0x45, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -517,6 +567,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1205,6 +1379,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1458,6 +1673,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1932,23 +2211,6 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { this := &FloatingPoint{} if r.Intn(10) != 0 { @@ -1964,166 +2226,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2136,163 +2434,163 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} if r.Intn(10) != 0 { - v34 := r.Intn(10) + v38 := r.Intn(10) this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) + for i := 0; i < v38; i++ { + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { - v36 := r.Intn(10) + v40 := r.Intn(10) this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) + for i := 0; i < v40; i++ { + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { - v38 := r.Intn(10) + v42 := r.Intn(10) this.Int32Map = make(map[int32]int32) - for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + for i := 0; i < v42; i++ { + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.Int32Map[v43] *= -1 } } } if r.Intn(10) != 0 { - v40 := r.Intn(10) + v44 := r.Intn(10) this.Int64Map = make(map[int64]int64) - for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + for i := 0; i < v44; i++ { + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.Int64Map[v45] *= -1 } } } if r.Intn(10) != 0 { - v42 := r.Intn(10) + v46 := r.Intn(10) this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + for i := 0; i < v46; i++ { + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v44 := r.Intn(10) + v48 := r.Intn(10) this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + for i := 0; i < v48; i++ { + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v46 := r.Intn(10) + v50 := r.Intn(10) this.Sint32Map = make(map[int32]int32) - for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) + for i := 0; i < v50; i++ { + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 + this.Sint32Map[v51] *= -1 } } } if r.Intn(10) != 0 { - v48 := r.Intn(10) + v52 := r.Intn(10) this.Sint64Map = make(map[int64]int64) - for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) + for i := 0; i < v52; i++ { + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { - v50 := r.Intn(10) + v54 := r.Intn(10) this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + for i := 0; i < v54; i++ { + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { - v52 := r.Intn(10) + v56 := r.Intn(10) this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + for i := 0; i < v56; i++ { + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { - v54 := r.Intn(10) + v58 := r.Intn(10) this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + for i := 0; i < v58; i++ { + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { - v56 := r.Intn(10) + v60 := r.Intn(10) this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed64Map[v61] *= -1 } } } if r.Intn(10) != 0 { - v58 := r.Intn(10) + v62 := r.Intn(10) this.BoolMap = make(map[bool]bool) - for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) } } if r.Intn(10) != 0 { - v60 := r.Intn(10) + v64 := r.Intn(10) this.StringMap = make(map[string]string) - for i := 0; i < v60; i++ { + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2321,14 +2619,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2336,43 +2634,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -2386,6 +2684,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -2505,7 +2860,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2524,8 +2883,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2654,7 +3014,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2673,8 +3037,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2708,6 +3073,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3110,351 +3529,485 @@ func valueToStringMapsproto2(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != nil { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = *m.F + *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.F i += 8 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *CustomMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *CustomMap) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k := range m.Nullable128S { + dAtA[i] = 0xa + i++ + v := m.Nullable128S[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + if len(m.Uint128S) > 0 { + for k := range m.Uint128S { + dAtA[i] = 0x12 + i++ + v := m.Uint128S[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n2, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + } + if len(m.NullableIds) > 0 { + for k := range m.NullableIds { + dAtA[i] = 0x1a + i++ + v := m.NullableIds[k] + cSize := 0 + if v != nil { + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n3, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + } + } + if len(m.Ids) > 0 { + for k := range m.Ids { + dAtA[i] = 0x22 + i++ + v := m.Ids[k] + cSize := 0 + cSize = v.Size() + cSize += 1 + sovMapsproto2(uint64(cSize)) + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *AllMaps) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n1, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n5, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 } - i += n1 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -3466,18 +4019,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -3487,18 +4040,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -3508,17 +4061,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -3528,17 +4081,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -3548,17 +4101,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -3568,17 +4121,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -3588,17 +4141,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -3608,17 +4161,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -3628,17 +4181,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -3648,17 +4201,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(data, i, uint32(v)) + i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -3668,17 +4221,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -3688,17 +4241,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(data, i, uint64(v)) + i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -3708,25 +4261,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -3738,19 +4291,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -3760,19 +4313,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if v != nil { + byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -3782,20 +4341,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintMapsproto2(data, i, uint64(v)) + i = encodeVarintMapsproto2(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -3805,126 +4364,143 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovMapsproto2(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + msgSize + sovMapsproto2(uint64(msgSize)) - i = encodeVarintMapsproto2(data, i, uint64(mapSize)) - data[i] = 0xa + mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize + i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintMapsproto2(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintMapsproto2(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n2 } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Mapsproto2(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Mapsproto2(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Mapsproto2(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Mapsproto2(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintMapsproto2(data []byte, offset int, v uint64) int { +func encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 974 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xbd, 0x6f, 0xeb, 0x54, - 0x18, 0xc6, 0xeb, 0x7c, 0xe7, 0xe4, 0xcb, 0x39, 0x2d, 0x28, 0x8a, 0x44, 0xa0, 0x01, 0x44, 0x9a, - 0x42, 0x52, 0x02, 0x42, 0xa8, 0x85, 0x4a, 0x4d, 0x9b, 0x12, 0x54, 0x5a, 0xaa, 0x86, 0x6f, 0xa9, - 0x12, 0x09, 0x75, 0xd2, 0x88, 0x24, 0xae, 0x62, 0x1b, 0xd1, 0xad, 0x7f, 0x06, 0x2b, 0x1b, 0x23, - 0x23, 0x23, 0x63, 0xc7, 0x3b, 0x76, 0xb8, 0x43, 0xdb, 0xbb, 0x74, 0xec, 0xd8, 0xf1, 0x1e, 0x9f, - 0x63, 0x3b, 0xc7, 0xf6, 0x6b, 0x3b, 0x77, 0xbb, 0x43, 0x86, 0x23, 0xfb, 0x9c, 0xbc, 0xcf, 0xef, - 0x3c, 0x8e, 0x7d, 0x5e, 0x3d, 0xe8, 0x83, 0xdf, 0xe4, 0x71, 0x4f, 0x56, 0xea, 0xda, 0x44, 0xe9, - 0xf6, 0xa5, 0x71, 0x77, 0xaa, 0x9c, 0x77, 0x47, 0xd2, 0xb4, 0x3e, 0xee, 0x5e, 0x28, 0x17, 0x53, - 0x59, 0x95, 0x1b, 0x35, 0x7a, 0xc1, 0x29, 0x63, 0xa6, 0xff, 0x50, 0xfc, 0x68, 0x30, 0x54, 0xcf, - 0xb5, 0x5e, 0x8d, 0x88, 0xeb, 0x03, 0x79, 0x20, 0xd7, 0xe9, 0x8f, 0x3d, 0xad, 0x4f, 0x67, 0x74, - 0x42, 0xef, 0x98, 0xb6, 0xfc, 0x16, 0xca, 0xec, 0x8f, 0xe4, 0xae, 0x3a, 0x9c, 0x0c, 0x8e, 0xe5, - 0xe1, 0x44, 0xc5, 0x69, 0x24, 0xf4, 0x0b, 0xc2, 0x3b, 0x42, 0x45, 0x38, 0x11, 0xfa, 0xe5, 0x1b, - 0x8c, 0xe2, 0x3b, 0xa3, 0xd1, 0x21, 0x21, 0xe3, 0x9f, 0x51, 0xbe, 0xa3, 0x4e, 0x49, 0xe1, 0x77, - 0xf2, 0x9e, 0xac, 0xf5, 0x46, 0x12, 0x59, 0x25, 0x95, 0xe1, 0x4a, 0xaa, 0xb1, 0x5e, 0xe3, 0x2c, - 0xd4, 0x0c, 0x41, 0xcd, 0x55, 0xdd, 0x9a, 0xa8, 0xd3, 0xcb, 0x93, 0xbc, 0xe2, 0x5c, 0xc7, 0x3f, - 0x20, 0xd1, 0x2c, 0xa6, 0x6e, 0x74, 0x72, 0x88, 0x92, 0xab, 0xbe, 0x64, 0xb3, 0x98, 0x81, 0x45, - 0xc5, 0xb1, 0x8c, 0xb7, 0x51, 0xe2, 0xeb, 0x89, 0xfa, 0x49, 0x43, 0xe7, 0x85, 0x29, 0xaf, 0x0c, - 0xf2, 0xcc, 0x22, 0xc6, 0x49, 0x0c, 0x8d, 0xa9, 0xa1, 0xff, 0xec, 0x53, 0x5d, 0x1f, 0xf1, 0xd7, - 0xd3, 0xa2, 0x99, 0x9e, 0x4e, 0xf1, 0x0e, 0x4a, 0x7e, 0x6f, 0xc2, 0x0a, 0x51, 0x0a, 0x78, 0x17, - 0x04, 0x58, 0x55, 0x8c, 0x90, 0xd4, 0x2c, 0x0b, 0x06, 0x82, 0x79, 0x88, 0x05, 0x20, 0x38, 0x13, - 0x14, 0x61, 0xb9, 0xe8, 0x58, 0x2e, 0xe2, 0x3e, 0x88, 0x8e, 0xc3, 0x85, 0xc2, 0xbb, 0xe8, 0x58, - 0x2e, 0x12, 0x01, 0x08, 0xde, 0x85, 0x62, 0xb9, 0xd8, 0x43, 0x68, 0x7f, 0xf8, 0xa7, 0x74, 0xc6, - 0x6c, 0x24, 0x29, 0xe3, 0x3d, 0x90, 0x31, 0x2b, 0x63, 0x10, 0xd4, 0xb7, 0x16, 0xf0, 0x57, 0x28, - 0xd5, 0x99, 0x4d, 0x0b, 0x88, 0x62, 0xde, 0x87, 0xad, 0xf4, 0x1d, 0x9c, 0x94, 0xc2, 0x81, 0x4c, - 0x3b, 0xec, 0x91, 0x52, 0x41, 0x76, 0xb8, 0x67, 0x62, 0x76, 0xd8, 0x43, 0x59, 0x76, 0x18, 0x26, - 0x1d, 0x68, 0x87, 0xe3, 0x18, 0x76, 0x18, 0x68, 0x0b, 0xc5, 0x9b, 0xb2, 0xac, 0x57, 0x16, 0x32, - 0x14, 0xb2, 0x0a, 0x42, 0x8c, 0x1a, 0x06, 0x88, 0xf7, 0xd8, 0x8c, 0xbe, 0x1d, 0xfa, 0xe9, 0xeb, - 0xf2, 0xac, 0xdf, 0xdb, 0x31, 0xab, 0xcc, 0xb7, 0x63, 0xce, 0xf9, 0x13, 0xd8, 0xbc, 0x54, 0x25, - 0x45, 0x27, 0xe5, 0xe6, 0x38, 0x81, 0x66, 0xb1, 0xe3, 0x04, 0x9a, 0xcb, 0xb8, 0x83, 0x72, 0x66, - 0x69, 0x6b, 0xa2, 0x8d, 0x75, 0xac, 0x48, 0xb1, 0x6b, 0xbe, 0x58, 0xa3, 0x96, 0x51, 0x73, 0x8a, - 0x7d, 0x15, 0x1f, 0xa3, 0xac, 0x59, 0x78, 0xa8, 0xd0, 0x87, 0xce, 0x53, 0x66, 0xc5, 0x97, 0xc9, - 0x4a, 0x19, 0x32, 0xab, 0xd8, 0x16, 0x8b, 0x7b, 0xe8, 0x4d, 0xb8, 0x5b, 0x61, 0x11, 0x85, 0x7f, - 0x97, 0x2e, 0x69, 0x47, 0x4c, 0x9e, 0xe8, 0xb7, 0x78, 0x05, 0x45, 0xff, 0xe8, 0x8e, 0x34, 0x89, - 0x74, 0x28, 0xbd, 0x4b, 0xb2, 0xc9, 0x66, 0xe8, 0x73, 0xa1, 0xb8, 0x8b, 0xde, 0x00, 0x3b, 0x53, - 0x10, 0x24, 0xc4, 0x43, 0xb6, 0x50, 0xc6, 0xd6, 0x8e, 0x78, 0x71, 0x14, 0x10, 0x47, 0xdd, 0xe2, - 0xd9, 0x47, 0xc6, 0x8b, 0xc3, 0x80, 0x38, 0xcc, 0x8b, 0xbf, 0x40, 0x59, 0x7b, 0x1f, 0xe2, 0xd5, - 0x19, 0x40, 0x9d, 0x01, 0xd4, 0xf0, 0xde, 0x11, 0x40, 0x1d, 0x71, 0xa8, 0x3b, 0x9e, 0x7b, 0xe7, - 0x01, 0x75, 0x1e, 0x50, 0xc3, 0x7b, 0x63, 0x40, 0x8d, 0x79, 0xf5, 0x97, 0x28, 0xe7, 0x68, 0x39, - 0xbc, 0x3c, 0x0e, 0xc8, 0xe3, 0xbc, 0x7c, 0x9b, 0x1c, 0x9d, 0xbe, 0xb7, 0x3e, 0x07, 0xe8, 0x73, - 0xd0, 0xf6, 0xb0, 0xfb, 0x18, 0x20, 0x8f, 0x81, 0xdb, 0xc3, 0x7a, 0x11, 0xd0, 0x8b, 0xbc, 0x7e, - 0x13, 0xa5, 0xf9, 0xae, 0xc2, 0x6b, 0x13, 0x80, 0x36, 0xe1, 0xfc, 0xdf, 0x6d, 0x2d, 0x25, 0xe8, - 0x4b, 0x4f, 0x7a, 0x1c, 0x17, 0x5b, 0x1b, 0x09, 0x82, 0xa4, 0x79, 0xc8, 0x4f, 0x68, 0x05, 0x6a, - 0x1a, 0x00, 0xa3, 0xca, 0x33, 0xb2, 0x8d, 0x15, 0x5b, 0xb3, 0xa0, 0x3a, 0x6d, 0xcc, 0x93, 0x4f, - 0xd1, 0x32, 0xd0, 0x3a, 0x00, 0xf0, 0x06, 0x0f, 0x4e, 0x35, 0x8a, 0x36, 0xb0, 0x2d, 0x5d, 0x71, - 0xf8, 0xf2, 0xf3, 0x65, 0x94, 0x35, 0x5a, 0xd4, 0xb7, 0xd3, 0x33, 0x69, 0x2a, 0x9d, 0xe1, 0x5f, - 0xbd, 0x13, 0x56, 0x03, 0x6a, 0x6d, 0x86, 0xee, 0x15, 0x82, 0xd6, 0xa9, 0x67, 0xd0, 0xfa, 0x78, - 0x9e, 0x0d, 0x82, 0xf2, 0x56, 0xcb, 0x95, 0xb7, 0xd6, 0xfc, 0xb0, 0x5e, 0xb1, 0xab, 0xe5, 0x8a, - 0x5d, 0x41, 0x18, 0x30, 0x7d, 0xb5, 0xdd, 0xe9, 0xab, 0xea, 0xc7, 0xf1, 0x0e, 0x61, 0x6d, 0x77, - 0x08, 0x0b, 0x24, 0xc1, 0x59, 0xac, 0xed, 0xce, 0x62, 0xbe, 0x24, 0xef, 0x48, 0xd6, 0x76, 0x47, - 0xb2, 0x40, 0x12, 0x9c, 0xcc, 0x0e, 0x80, 0x64, 0xb6, 0xee, 0x87, 0xf2, 0x0b, 0x68, 0x47, 0x50, - 0x40, 0xfb, 0xd0, 0xd7, 0x98, 0x6f, 0x4e, 0x3b, 0x00, 0x72, 0x5a, 0xb0, 0x39, 0x8f, 0xb8, 0x76, - 0x04, 0xc5, 0xb5, 0x39, 0xcc, 0x79, 0xa5, 0xb6, 0xa6, 0x33, 0xb5, 0x55, 0xfc, 0x58, 0x70, 0x78, - 0x6b, 0xbb, 0xc3, 0x5b, 0x35, 0xf8, 0x2c, 0x42, 0x19, 0xee, 0xd4, 0x33, 0xc3, 0xcd, 0x75, 0xb8, - 0x83, 0xa2, 0xdc, 0x2f, 0x5e, 0x51, 0x6e, 0x63, 0x1e, 0xba, 0x7f, 0xa2, 0xfb, 0xd1, 0x23, 0xd1, - 0xd5, 0xe7, 0x41, 0x2f, 0x82, 0xdd, 0x22, 0xd8, 0x2d, 0x82, 0xdd, 0x22, 0xd8, 0xbd, 0x1e, 0xc1, - 0x6e, 0x33, 0xf2, 0xd7, 0xdf, 0x6f, 0x0b, 0xd5, 0x55, 0x14, 0x37, 0xb6, 0xc6, 0x31, 0x14, 0x3a, - 0xdc, 0x11, 0x97, 0xe8, 0xb5, 0x29, 0x0a, 0xf4, 0xba, 0x2b, 0x86, 0x9a, 0xdf, 0x5c, 0xdf, 0x95, - 0x96, 0x9e, 0x91, 0x71, 0x43, 0xc6, 0xed, 0x5d, 0x49, 0x78, 0x20, 0xe3, 0x91, 0x8c, 0x27, 0x32, - 0xae, 0xee, 0x4b, 0xc2, 0x3f, 0x64, 0xfc, 0x4b, 0xc6, 0x7f, 0x64, 0xfc, 0x4f, 0xc6, 0xf5, 0x3d, - 0xa9, 0x27, 0xe3, 0x96, 0xdc, 0x3f, 0x90, 0xeb, 0x23, 0xb9, 0x3e, 0x91, 0x71, 0xf5, 0xa2, 0xb4, - 0xf4, 0x32, 0x00, 0x00, 0xff, 0xff, 0x90, 0x58, 0x7f, 0x30, 0x2f, 0x14, 0x00, 0x00, + // 1154 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x8f, 0xda, 0x46, + 0x18, 0xc6, 0x19, 0x3e, 0x16, 0x18, 0xbe, 0x27, 0x69, 0x85, 0x90, 0x6a, 0x36, 0xf4, 0x23, 0x84, + 0xa4, 0xb0, 0x4b, 0xa3, 0x68, 0xb5, 0x69, 0x53, 0x2d, 0xbb, 0x9b, 0xb2, 0x4a, 0xd9, 0x46, 0xd0, + 0xf4, 0x4b, 0x5a, 0xa9, 0x66, 0x31, 0x04, 0x15, 0x30, 0xc5, 0x76, 0xd4, 0xbd, 0x54, 0xf9, 0x33, + 0x7a, 0xed, 0xad, 0xc7, 0x1e, 0x7b, 0xec, 0x71, 0xa5, 0x5e, 0x72, 0x8c, 0xa2, 0x6a, 0x15, 0xdc, + 0x4b, 0x8e, 0x39, 0xe6, 0x58, 0x79, 0x6c, 0xc3, 0xd8, 0x7e, 0x6d, 0x43, 0x4f, 0x3d, 0xec, 0x89, + 0x1d, 0xf3, 0x3e, 0xbf, 0xe7, 0xb5, 0x3d, 0xf3, 0xf2, 0x2c, 0xbe, 0x7e, 0x2a, 0x8e, 0xbb, 0xa2, + 0x54, 0x53, 0x26, 0x12, 0xdf, 0x17, 0xc6, 0xfc, 0x4c, 0x7a, 0xcc, 0x8f, 0x84, 0x59, 0x6d, 0xcc, + 0x4f, 0xa5, 0xe9, 0x4c, 0x94, 0xc5, 0x7a, 0x95, 0x7e, 0x90, 0x84, 0xb1, 0xd2, 0xbe, 0x28, 0x7c, + 0x38, 0x18, 0xca, 0x8f, 0x95, 0x6e, 0xf5, 0x54, 0x1c, 0xd7, 0x06, 0xe2, 0x40, 0xac, 0xd1, 0x2f, + 0xbb, 0x4a, 0x9f, 0xae, 0xe8, 0x82, 0xfe, 0xa5, 0x6b, 0x4b, 0xef, 0xe0, 0xd4, 0xfd, 0x91, 0xc8, + 0xcb, 0xc3, 0xc9, 0xe0, 0xa1, 0x38, 0x9c, 0xc8, 0x24, 0x89, 0x51, 0x3f, 0x8f, 0x36, 0x51, 0x19, + 0xb5, 0x51, 0xbf, 0xf4, 0x57, 0x04, 0xc7, 0xf7, 0x15, 0x49, 0x16, 0xc7, 0x2d, 0x7e, 0x4a, 0x7e, + 0xc6, 0xc9, 0x63, 0x65, 0x34, 0xe2, 0xbb, 0x23, 0x61, 0xbb, 0xbe, 0x23, 0xe5, 0xd1, 0x66, 0xa8, + 0x9c, 0xa8, 0x97, 0xab, 0x8c, 0x7f, 0x75, 0x51, 0x5d, 0x65, 0x4b, 0x0f, 0x27, 0xf2, 0xec, 0xac, + 0xb1, 0xf5, 0xe2, 0xa2, 0x78, 0xcb, 0xb5, 0x3f, 0x59, 0x90, 0xe4, 0xda, 0x29, 0x95, 0x57, 0x1f, + 0x0d, 0x27, 0xf2, 0x76, 0x7d, 0xa7, 0x6d, 0xf1, 0x23, 0x4f, 0x70, 0xcc, 0xf8, 0x42, 0xca, 0x07, + 0xa9, 0xf7, 0x7b, 0x2e, 0xde, 0x66, 0x99, 0xee, 0x7b, 0xfb, 0xfc, 0xa2, 0x18, 0x58, 0xdb, 0x7b, + 0xe1, 0x45, 0x7e, 0xc4, 0x09, 0xb3, 0x8f, 0xa3, 0x9e, 0x94, 0x0f, 0x51, 0xeb, 0xeb, 0x3e, 0xb7, + 0x7d, 0xd4, 0x33, 0xdc, 0x3f, 0x78, 0x71, 0x51, 0x2c, 0x79, 0x3a, 0x57, 0x1f, 0x29, 0xc3, 0x5e, + 0x9b, 0xf5, 0x20, 0x27, 0x38, 0xa4, 0x59, 0x85, 0xa9, 0x55, 0xd1, 0xc5, 0x6a, 0x61, 0x51, 0x31, + 0x6e, 0x70, 0x15, 0x1b, 0x8d, 0x5b, 0xf8, 0x14, 0xe7, 0x1c, 0xaf, 0x87, 0x64, 0x71, 0xe8, 0x07, + 0xe1, 0x8c, 0xbe, 0xfc, 0x78, 0x5b, 0xfb, 0x93, 0x5c, 0xc5, 0x91, 0x27, 0xfc, 0x48, 0x11, 0xf2, + 0xc1, 0x4d, 0x54, 0x4e, 0xb6, 0xf5, 0xc5, 0x6e, 0x70, 0x07, 0x15, 0xee, 0xe2, 0x94, 0xe5, 0x19, + 0xaf, 0x25, 0xbe, 0x87, 0xb3, 0xf6, 0xa7, 0xb4, 0x96, 0xfe, 0x0e, 0x8e, 0xfd, 0x17, 0x5d, 0xe9, + 0x39, 0xc1, 0xd1, 0xbd, 0xd1, 0xa8, 0xc5, 0x4f, 0x25, 0xf2, 0x2d, 0xce, 0x75, 0xe4, 0xd9, 0x70, + 0x32, 0xf8, 0x52, 0x3c, 0x10, 0x95, 0xee, 0x48, 0x68, 0xf1, 0x53, 0x63, 0x43, 0xdf, 0xb4, 0x3c, + 0x6e, 0x43, 0x50, 0x75, 0x54, 0x53, 0xff, 0xb6, 0x93, 0x42, 0xbe, 0xc2, 0x59, 0xf3, 0x22, 0x3d, + 0x5b, 0x1a, 0x59, 0xdf, 0xae, 0x15, 0x4f, 0xb2, 0x59, 0xac, 0x83, 0x1d, 0x0c, 0x72, 0x0f, 0xc7, + 0x8e, 0x26, 0xf2, 0x47, 0x75, 0x8d, 0xa7, 0xef, 0xc1, 0x12, 0xc8, 0x33, 0x8b, 0x74, 0xce, 0x42, + 0x63, 0xe8, 0xef, 0xdc, 0xd6, 0xf4, 0x61, 0x6f, 0x3d, 0x2d, 0x5a, 0xea, 0xe9, 0x92, 0xec, 0xe1, + 0xb8, 0xf6, 0xce, 0xf5, 0x06, 0x22, 0x14, 0xf0, 0x2e, 0x08, 0x58, 0x54, 0xe9, 0x84, 0xa5, 0xca, + 0x44, 0xe8, 0x3d, 0x6c, 0xf8, 0x20, 0x98, 0x26, 0x96, 0x2a, 0x0d, 0xd1, 0x59, 0x74, 0x11, 0xf5, + 0x40, 0x74, 0x6c, 0x5d, 0x74, 0xd8, 0x2e, 0x3a, 0x8b, 0x2e, 0x62, 0x3e, 0x08, 0xb6, 0x8b, 0xc5, + 0x9a, 0x1c, 0x60, 0x7c, 0x7f, 0xf8, 0x93, 0xd0, 0xd3, 0xdb, 0x88, 0x03, 0xc3, 0xc8, 0x64, 0x2c, + 0xcb, 0x74, 0x08, 0xa3, 0x23, 0x9f, 0xe1, 0x44, 0xa7, 0xbf, 0xc4, 0x60, 0x8a, 0x79, 0x1f, 0x6e, + 0xa5, 0x6f, 0xe3, 0xb0, 0xca, 0x45, 0x3b, 0xfa, 0x2d, 0x25, 0xfc, 0xda, 0x61, 0xee, 0x89, 0xd1, + 0x2d, 0xdb, 0xd1, 0x31, 0x49, 0xdf, 0x76, 0x18, 0x0e, 0xab, 0x24, 0x77, 0x71, 0xb4, 0x21, 0x8a, + 0x5a, 0x65, 0x3e, 0x45, 0x21, 0xd7, 0x40, 0x88, 0x51, 0xa3, 0x03, 0x4c, 0x05, 0x7d, 0x3b, 0x74, + 0xeb, 0x6b, 0xf2, 0xb4, 0xd7, 0xdb, 0x31, 0xab, 0xcc, 0xb7, 0x63, 0xae, 0xd9, 0x13, 0xd8, 0x38, + 0x93, 0x05, 0x49, 0x23, 0x65, 0x56, 0x38, 0x81, 0x66, 0xb1, 0xed, 0x04, 0x9a, 0x97, 0x49, 0x07, + 0x67, 0xcc, 0x6b, 0x87, 0x13, 0x45, 0x9b, 0xc1, 0xf9, 0x2c, 0xc5, 0xde, 0xf0, 0xc4, 0x1a, 0xb5, + 0x3a, 0xd5, 0x4e, 0x20, 0x0f, 0x71, 0xda, 0xbc, 0xd4, 0x92, 0xe8, 0x4d, 0xe7, 0x80, 0xdf, 0x55, + 0x3b, 0x53, 0x2f, 0xd5, 0x91, 0x36, 0x7d, 0xe1, 0x00, 0xbf, 0x0d, 0x4f, 0x2b, 0xbf, 0x69, 0x89, + 0xd8, 0x29, 0xbb, 0x8f, 0xdf, 0x02, 0x27, 0x93, 0x1f, 0x24, 0x68, 0xfb, 0x9d, 0xb0, 0x8c, 0x23, + 0x56, 0x1c, 0x01, 0xc4, 0x11, 0xa7, 0x78, 0xb9, 0xc9, 0x58, 0x71, 0x08, 0x10, 0x87, 0x58, 0xf1, + 0xc7, 0x38, 0x6d, 0x9d, 0x43, 0xac, 0x3a, 0x05, 0xa8, 0x53, 0x80, 0x1a, 0xf6, 0x0e, 0x03, 0xea, + 0xb0, 0x4d, 0xdd, 0x71, 0xf5, 0xce, 0x01, 0xea, 0x1c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xac, + 0xfa, 0x13, 0x9c, 0xb1, 0x8d, 0x1c, 0x56, 0x1e, 0x05, 0xe4, 0x51, 0xdb, 0x6f, 0xb3, 0x7d, 0xd4, + 0xb0, 0xfa, 0x0c, 0xa0, 0xcf, 0x40, 0xf6, 0x70, 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, + 0x59, 0x40, 0x9f, 0x65, 0xf5, 0xbb, 0x38, 0xc9, 0x4e, 0x15, 0x56, 0x1b, 0x03, 0xb4, 0x31, 0xfb, + 0x73, 0xb7, 0x8c, 0x14, 0xbf, 0x9d, 0x1e, 0x77, 0x39, 0x2e, 0x96, 0x31, 0xb2, 0x56, 0xb2, 0xf9, + 0x06, 0x5f, 0x85, 0x86, 0x06, 0xc0, 0xa8, 0xb0, 0x8c, 0x74, 0xfd, 0xaa, 0x65, 0x58, 0x50, 0x9d, + 0x32, 0x66, 0xc9, 0x27, 0xf8, 0x0a, 0x30, 0x3a, 0x00, 0xf0, 0x16, 0x0b, 0x4e, 0xd4, 0x0b, 0x16, + 0xb0, 0xe5, 0x7f, 0x05, 0x36, 0x5a, 0xfd, 0x7d, 0x05, 0xa7, 0x8d, 0x11, 0xf5, 0xc5, 0xac, 0x27, + 0xcc, 0x84, 0x1e, 0xf9, 0xde, 0x3d, 0x61, 0xd5, 0xa1, 0xd1, 0x66, 0xe8, 0xd6, 0x08, 0x5a, 0x27, + 0xae, 0x41, 0x6b, 0x7b, 0x15, 0x03, 0xbf, 0xbc, 0x75, 0xe8, 0xc8, 0x5b, 0x37, 0xbc, 0xb0, 0x6e, + 0xb1, 0xeb, 0xd0, 0x11, 0xbb, 0xfc, 0x30, 0x60, 0xfa, 0x6a, 0x3a, 0xd3, 0x57, 0xc5, 0x8b, 0xe3, + 0x1e, 0xc2, 0x9a, 0xce, 0x10, 0xe6, 0x4b, 0x82, 0xb3, 0x58, 0xd3, 0x99, 0xc5, 0x3c, 0x49, 0xee, + 0x91, 0xac, 0xe9, 0x8c, 0x64, 0xbe, 0x24, 0x38, 0x99, 0x3d, 0x00, 0x92, 0xd9, 0x4d, 0x2f, 0x94, + 0x57, 0x40, 0x3b, 0x86, 0x02, 0xda, 0x2d, 0xcf, 0xc6, 0x3c, 0x73, 0xda, 0x03, 0x20, 0xa7, 0xf9, + 0x37, 0xe7, 0x12, 0xd7, 0x8e, 0xa1, 0xb8, 0xb6, 0x42, 0x73, 0x6e, 0xa9, 0xad, 0x61, 0x4f, 0x6d, + 0x65, 0x2f, 0x16, 0x1c, 0xde, 0x9a, 0xce, 0xf0, 0x56, 0xf1, 0x3f, 0x8b, 0x50, 0x86, 0x3b, 0x71, + 0xcd, 0x70, 0x2b, 0x1d, 0x6e, 0xbf, 0x28, 0xf7, 0x9d, 0x5b, 0x94, 0xdb, 0x5a, 0x85, 0xee, 0x9d, + 0xe8, 0xbe, 0x76, 0x49, 0x74, 0xb5, 0x55, 0xd0, 0x97, 0xc1, 0xee, 0x32, 0xd8, 0x5d, 0x06, 0xbb, + 0xcb, 0x60, 0xf7, 0xff, 0x08, 0x76, 0xbb, 0xe1, 0x5f, 0x7e, 0x2d, 0xa2, 0xca, 0x35, 0x1c, 0x35, + 0xac, 0xc9, 0x06, 0x0e, 0xb6, 0xf6, 0xb2, 0x01, 0xfa, 0xd9, 0xc8, 0x22, 0xfa, 0xb9, 0x9f, 0x0d, + 0x36, 0x3e, 0x3f, 0x9f, 0x73, 0x81, 0x67, 0x73, 0x2e, 0xf0, 0x7c, 0xce, 0x05, 0x5e, 0xce, 0x39, + 0xf4, 0x6a, 0xce, 0xa1, 0xd7, 0x73, 0x0e, 0xbd, 0x99, 0x73, 0xe8, 0xa9, 0xca, 0xa1, 0xdf, 0x54, + 0x0e, 0xfd, 0xae, 0x72, 0xe8, 0x0f, 0x95, 0x43, 0x7f, 0xaa, 0x1c, 0x3a, 0x57, 0xb9, 0xc0, 0x33, + 0x95, 0x0b, 0xbc, 0x54, 0x39, 0xf4, 0x4a, 0xe5, 0x02, 0xaf, 0x55, 0x0e, 0xbd, 0x51, 0x39, 0xf4, + 0xf4, 0x1f, 0x2e, 0xf0, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x93, 0x38, 0xa7, 0x8f, 0xfd, 0x16, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto index d86af368..1bb8ef5e 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go index 0d1e7df3..b59669eb 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -18,6 +19,7 @@ package proto2_maps import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -32,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -66,24 +72,28 @@ func TestFloatingPointProto(t *testing.T) { } func TestFloatingPointMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -102,11 +112,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -116,11 +126,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -133,22 +143,136 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestCustomMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -168,24 +292,28 @@ func TestAllMapsProto(t *testing.T) { } func TestAllMapsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -204,11 +332,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -218,11 +346,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -236,21 +364,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -270,24 +402,28 @@ func TestAllMapsOrderedProto(t *testing.T) { } func TestAllMapsOrderedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -306,11 +442,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -320,11 +456,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -358,6 +494,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -404,9 +561,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -421,9 +578,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -438,9 +629,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -455,9 +646,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -472,9 +663,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -489,9 +680,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -506,14 +697,37 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -521,14 +735,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -536,14 +754,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -558,6 +780,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -587,6 +817,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -618,13 +861,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -649,18 +892,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -690,13 +969,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -730,6 +1009,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go index fa73b124..65d09fb7 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go @@ -10,6 +10,7 @@ It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -20,6 +21,9 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" +import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" + import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" @@ -29,7 +33,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -43,7 +46,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -91,58 +96,71 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (*FloatingPoint) ProtoMessage() {} func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } +type CustomMap struct { + Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CustomMap) Reset() { *m = CustomMap{} } +func (*CustomMap) ProtoMessage() {} +func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } + type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMaps) Reset() { *m = AllMaps{} } func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } +func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` XXX_unrecognized []byte `json:"-"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } +func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } func init() { proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") + proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) @@ -150,6 +168,9 @@ func init() { func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } +func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Mapsproto2Description() +} func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Mapsproto2Description() } @@ -159,264 +180,294 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4103 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0x36, 0xef, 0xe4, 0x21, 0x45, 0x8e, 0x46, 0xf2, 0x9a, 0x56, 0xec, 0x5d, 0x2f, 0x6d, 0xc7, - 0x6b, 0x39, 0x91, 0x1c, 0x25, 0xb6, 0xd7, 0x74, 0xe2, 0x40, 0x17, 0xae, 0x56, 0x8e, 0x6e, 0x1d, - 0x4a, 0xf6, 0xda, 0x85, 0xc1, 0x8e, 0xc8, 0x21, 0x45, 0x7b, 0x38, 0xc3, 0x72, 0x86, 0xf6, 0x2a, - 0x4f, 0x2e, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x1c, 0x27, 0xad, 0x03, 0xb4, 0x4e, 0xd3, - 0x5b, 0xdc, 0x1b, 0x8a, 0x3e, 0x05, 0x28, 0xd2, 0xe6, 0xa9, 0x68, 0xfb, 0x94, 0x87, 0x3c, 0x24, - 0xa9, 0x81, 0xba, 0x6d, 0xda, 0xba, 0x80, 0x81, 0x06, 0xf0, 0x4b, 0xcf, 0x7f, 0x1b, 0xfe, 0x33, - 0x1c, 0x72, 0xa8, 0x00, 0x49, 0xfc, 0x60, 0x01, 0x84, 0x38, 0xe7, 0x3f, 0xdf, 0x37, 0x67, 0xce, - 0x7f, 0xfe, 0x73, 0xce, 0xff, 0x73, 0xe0, 0xef, 0x3e, 0x06, 0x77, 0x75, 0x6c, 0xbb, 0x63, 0x1a, - 0xab, 0xfd, 0x81, 0xed, 0xda, 0x27, 0xc3, 0xf6, 0x6a, 0xcb, 0x70, 0x9a, 0x83, 0x6e, 0xdf, 0xb5, - 0x07, 0x2b, 0x54, 0xa6, 0x96, 0x98, 0xc6, 0x8a, 0xd0, 0xa8, 0xec, 0xc1, 0xfc, 0xb5, 0xae, 0x69, - 0x6c, 0x79, 0x8a, 0x75, 0xc3, 0x55, 0xaf, 0x42, 0xb2, 0x8d, 0xc2, 0x72, 0xec, 0xae, 0xc4, 0x95, - 0xfc, 0xda, 0x3d, 0x2b, 0x01, 0xd0, 0x8a, 0x1f, 0x71, 0x48, 0xc4, 0x1a, 0x45, 0x54, 0xde, 0x4a, - 0xc2, 0x42, 0xc8, 0xa8, 0xaa, 0x42, 0xd2, 0xd2, 0x7b, 0x84, 0x31, 0x76, 0x25, 0xa7, 0xd1, 0xef, - 0x6a, 0x19, 0x32, 0x7d, 0xbd, 0xf9, 0xbc, 0xde, 0x31, 0xca, 0x71, 0x2a, 0x16, 0x97, 0xea, 0x45, - 0x80, 0x96, 0xd1, 0x37, 0xac, 0x96, 0x61, 0x35, 0xcf, 0xca, 0x09, 0xb4, 0x22, 0xa7, 0x49, 0x12, - 0xf5, 0x01, 0x98, 0xef, 0x0f, 0x4f, 0xcc, 0x6e, 0xb3, 0x21, 0xa9, 0x01, 0xaa, 0xa5, 0x34, 0x85, - 0x0d, 0x6c, 0x8d, 0x94, 0xef, 0x83, 0xd2, 0x8b, 0x86, 0xfe, 0xbc, 0xac, 0x9a, 0xa7, 0xaa, 0x45, - 0x22, 0x96, 0x14, 0x37, 0xa1, 0xd0, 0x33, 0x1c, 0x07, 0x0d, 0x68, 0xb8, 0x67, 0x7d, 0xa3, 0x9c, - 0xa4, 0x4f, 0x7f, 0xd7, 0xd8, 0xd3, 0x07, 0x9f, 0x3c, 0xcf, 0x51, 0x47, 0x08, 0x52, 0xd7, 0x21, - 0x67, 0x58, 0xc3, 0x1e, 0x63, 0x48, 0x4d, 0xf0, 0x5f, 0x0d, 0x35, 0x82, 0x2c, 0x59, 0x02, 0xe3, - 0x14, 0x19, 0xc7, 0x18, 0xbc, 0xd0, 0x6d, 0x1a, 0xe5, 0x34, 0x25, 0xb8, 0x6f, 0x8c, 0xa0, 0xce, - 0xc6, 0x83, 0x1c, 0x02, 0x87, 0x8f, 0x92, 0x33, 0x6e, 0xba, 0x86, 0xe5, 0x74, 0x6d, 0xab, 0x9c, - 0xa1, 0x24, 0xf7, 0x86, 0xcc, 0xa2, 0x61, 0xb6, 0x82, 0x14, 0x23, 0x9c, 0xfa, 0x30, 0x64, 0xec, - 0xbe, 0x8b, 0xdf, 0x9c, 0x72, 0x16, 0xe7, 0x27, 0xbf, 0x76, 0x47, 0x68, 0x20, 0x1c, 0x30, 0x1d, - 0x4d, 0x28, 0xab, 0x3b, 0xa0, 0x38, 0xf6, 0x70, 0xd0, 0x34, 0x1a, 0x4d, 0xbb, 0x65, 0x34, 0xba, - 0x56, 0xdb, 0x2e, 0xe7, 0x28, 0xc1, 0xa5, 0xf1, 0x07, 0xa1, 0x8a, 0x9b, 0xa8, 0xb7, 0x83, 0x6a, - 0x5a, 0xd1, 0xf1, 0x5d, 0xab, 0x17, 0x20, 0xed, 0x9c, 0x59, 0xae, 0x7e, 0xb3, 0x5c, 0xa0, 0x11, - 0xc2, 0xaf, 0x2a, 0xff, 0x97, 0x82, 0xd2, 0x2c, 0x21, 0xf6, 0x18, 0xa4, 0xda, 0xe4, 0x29, 0x31, - 0xc0, 0xce, 0xe1, 0x03, 0x86, 0xf1, 0x3b, 0x31, 0xfd, 0x43, 0x3a, 0x71, 0x1d, 0xf2, 0x96, 0xe1, - 0xb8, 0x46, 0x8b, 0x45, 0x44, 0x62, 0xc6, 0x98, 0x02, 0x06, 0x1a, 0x0f, 0xa9, 0xe4, 0x0f, 0x15, - 0x52, 0x37, 0xa0, 0xe4, 0x99, 0xd4, 0x18, 0xe8, 0x56, 0x47, 0xc4, 0xe6, 0x6a, 0x94, 0x25, 0x2b, - 0x35, 0x81, 0xd3, 0x08, 0x4c, 0x2b, 0x1a, 0xbe, 0x6b, 0x75, 0x0b, 0xc0, 0xb6, 0x0c, 0xbb, 0x8d, - 0xcb, 0xab, 0x69, 0x62, 0x9c, 0x84, 0x7b, 0xe9, 0x80, 0xa8, 0x8c, 0x79, 0xc9, 0x66, 0xd2, 0xa6, - 0xa9, 0x3e, 0x3a, 0x0a, 0xb5, 0xcc, 0x84, 0x48, 0xd9, 0x63, 0x8b, 0x6c, 0x2c, 0xda, 0x8e, 0xa1, - 0x38, 0x30, 0x48, 0xdc, 0xa3, 0x8b, 0xd9, 0x93, 0xe5, 0xa8, 0x11, 0x2b, 0x91, 0x4f, 0xa6, 0x71, - 0x18, 0x7b, 0xb0, 0xb9, 0x81, 0x7c, 0xa9, 0xde, 0x0d, 0x9e, 0xa0, 0x41, 0xc3, 0x0a, 0x68, 0x16, - 0x2a, 0x08, 0xe1, 0x3e, 0xca, 0x96, 0xae, 0x42, 0xd1, 0xef, 0x1e, 0x75, 0x11, 0x52, 0x8e, 0xab, - 0x0f, 0x5c, 0x1a, 0x85, 0x29, 0x8d, 0x5d, 0xa8, 0x0a, 0x24, 0x30, 0xc9, 0xd0, 0x2c, 0x97, 0xd2, - 0xc8, 0xd7, 0xa5, 0x47, 0x60, 0xce, 0x77, 0xfb, 0x59, 0x81, 0x95, 0x57, 0xd2, 0xb0, 0x18, 0x16, - 0x73, 0xa1, 0xe1, 0x8f, 0xcb, 0x07, 0x23, 0xe0, 0xc4, 0x18, 0x60, 0xdc, 0x11, 0x06, 0x7e, 0x85, - 0x11, 0x95, 0x32, 0xf5, 0x13, 0xc3, 0xc4, 0x68, 0x8a, 0x5d, 0x29, 0xae, 0x3d, 0x30, 0x53, 0x54, - 0xaf, 0xec, 0x12, 0x88, 0xc6, 0x90, 0xea, 0xe3, 0x90, 0xe4, 0x29, 0x8e, 0x30, 0x2c, 0xcf, 0xc6, - 0x40, 0x62, 0x51, 0xa3, 0x38, 0xf5, 0x43, 0x90, 0x23, 0xff, 0x99, 0x6f, 0xd3, 0xd4, 0xe6, 0x2c, - 0x11, 0x10, 0xbf, 0xaa, 0x4b, 0x90, 0xa5, 0x61, 0xd6, 0x32, 0x44, 0x69, 0xf0, 0xae, 0xc9, 0xc4, - 0xb4, 0x8c, 0xb6, 0x3e, 0x34, 0xdd, 0xc6, 0x0b, 0xba, 0x39, 0x34, 0x68, 0xc0, 0xe0, 0xc4, 0x70, - 0xe1, 0x93, 0x44, 0xa6, 0x5e, 0x82, 0x3c, 0x8b, 0xca, 0x2e, 0x62, 0x6e, 0xd2, 0xec, 0x93, 0xd2, - 0x58, 0xa0, 0xee, 0x10, 0x09, 0xb9, 0xfd, 0x73, 0x0e, 0xae, 0x05, 0x3e, 0xb5, 0xf4, 0x16, 0x44, - 0x40, 0x6f, 0xff, 0x48, 0x30, 0xf1, 0xdd, 0x19, 0xfe, 0x78, 0xc1, 0x58, 0xac, 0xfc, 0x75, 0x1c, - 0x92, 0x74, 0xbd, 0x95, 0x20, 0x7f, 0xf4, 0xf4, 0x61, 0xad, 0xb1, 0x75, 0x70, 0xbc, 0xb1, 0x5b, - 0x53, 0x62, 0x6a, 0x11, 0x80, 0x0a, 0xae, 0xed, 0x1e, 0xac, 0x1f, 0x29, 0x71, 0xef, 0x7a, 0x67, - 0xff, 0xe8, 0xe1, 0x4f, 0x28, 0x09, 0x0f, 0x70, 0xcc, 0x04, 0x49, 0x59, 0xe1, 0xe3, 0x6b, 0x4a, - 0x0a, 0x23, 0xa1, 0xc0, 0x08, 0x76, 0x6e, 0xd4, 0xb6, 0x50, 0x23, 0xed, 0x97, 0xa0, 0x4e, 0x46, - 0x9d, 0x83, 0x1c, 0x95, 0x6c, 0x1c, 0x1c, 0xec, 0x2a, 0x59, 0x8f, 0xb3, 0x7e, 0xa4, 0xed, 0xec, - 0x6f, 0x2b, 0x39, 0x8f, 0x73, 0x5b, 0x3b, 0x38, 0x3e, 0x54, 0xc0, 0x63, 0xd8, 0xab, 0xd5, 0xeb, - 0xeb, 0xdb, 0x35, 0x25, 0xef, 0x69, 0x6c, 0x3c, 0x7d, 0x54, 0xab, 0x2b, 0x05, 0x9f, 0x59, 0x78, - 0x8b, 0x39, 0xef, 0x16, 0xb5, 0xfd, 0xe3, 0x3d, 0xa5, 0xa8, 0xce, 0xc3, 0x1c, 0xbb, 0x85, 0x30, - 0xa2, 0x14, 0x10, 0xa1, 0xa5, 0xca, 0xc8, 0x10, 0xc6, 0x32, 0xef, 0x13, 0xa0, 0x86, 0x5a, 0xd9, - 0x84, 0x14, 0x8d, 0x2e, 0x8c, 0xe2, 0xe2, 0xee, 0xfa, 0x46, 0x6d, 0xb7, 0x71, 0x70, 0x78, 0xb4, - 0x73, 0xb0, 0xbf, 0xbe, 0x8b, 0xbe, 0xf3, 0x64, 0x5a, 0xed, 0xa7, 0x8e, 0x77, 0xb4, 0xda, 0x16, - 0xfa, 0x4f, 0x92, 0x1d, 0xd6, 0xd6, 0x8f, 0x50, 0x96, 0xa8, 0x2c, 0xc3, 0x62, 0x58, 0x9e, 0x09, - 0x5b, 0x19, 0x95, 0x2f, 0xc7, 0x60, 0x21, 0x24, 0x65, 0x86, 0xae, 0xa2, 0x4f, 0x43, 0x8a, 0x45, - 0x1a, 0x2b, 0x22, 0xf7, 0x87, 0xe6, 0x5e, 0x1a, 0x77, 0x63, 0x85, 0x84, 0xe2, 0xe4, 0x42, 0x9a, - 0x98, 0x50, 0x48, 0x09, 0xc5, 0x58, 0x38, 0xbd, 0x1c, 0x83, 0xf2, 0x24, 0xee, 0x88, 0xf5, 0x1e, - 0xf7, 0xad, 0xf7, 0xc7, 0x82, 0x06, 0x5c, 0x9e, 0xfc, 0x0c, 0x63, 0x56, 0xbc, 0x11, 0x83, 0x0b, - 0xe1, 0xfd, 0x46, 0xa8, 0x0d, 0x8f, 0x43, 0xba, 0x67, 0xb8, 0xa7, 0xb6, 0xa8, 0xb9, 0x1f, 0x0e, - 0xc9, 0xe4, 0x64, 0x38, 0xe8, 0x2b, 0x8e, 0x92, 0x4b, 0x41, 0x62, 0x52, 0xd3, 0xc0, 0xac, 0x19, - 0xb3, 0xf4, 0x73, 0x71, 0xb8, 0x35, 0x94, 0x3c, 0xd4, 0xd0, 0x3b, 0x01, 0xba, 0x56, 0x7f, 0xe8, - 0xb2, 0xba, 0xca, 0xd2, 0x4c, 0x8e, 0x4a, 0xe8, 0x12, 0x26, 0x29, 0x64, 0xe8, 0x7a, 0xe3, 0x09, - 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0xae, 0x8e, 0x0c, 0x4d, 0x52, 0x43, 0x2f, 0x4e, 0x78, 0xd2, 0xb1, - 0x92, 0xf5, 0x20, 0x28, 0x4d, 0xb3, 0x6b, 0x58, 0x6e, 0xc3, 0x71, 0x07, 0x86, 0xde, 0xeb, 0x5a, - 0x1d, 0x9a, 0x47, 0xb3, 0xd5, 0x54, 0x5b, 0x37, 0x1d, 0x43, 0x2b, 0xb1, 0xe1, 0xba, 0x18, 0x25, - 0x08, 0x5a, 0x2c, 0x06, 0x12, 0x22, 0xed, 0x43, 0xb0, 0x61, 0x0f, 0x51, 0xf9, 0x97, 0x0c, 0xe4, - 0xa5, 0xee, 0x4c, 0xbd, 0x0c, 0x85, 0xe7, 0xf4, 0x17, 0xf4, 0x86, 0xe8, 0xb8, 0x99, 0x27, 0xf2, - 0x44, 0x76, 0xc8, 0xbb, 0xee, 0x07, 0x61, 0x91, 0xaa, 0xe0, 0x33, 0xe2, 0x8d, 0x9a, 0xa6, 0xee, - 0x38, 0xd4, 0x69, 0x59, 0xaa, 0xaa, 0x92, 0xb1, 0x03, 0x32, 0xb4, 0x29, 0x46, 0xd4, 0x87, 0x60, - 0x81, 0x22, 0x7a, 0x98, 0x78, 0xbb, 0x7d, 0xd3, 0x68, 0x90, 0x3d, 0x80, 0x43, 0xf3, 0xa9, 0x67, - 0xd9, 0x3c, 0xd1, 0xd8, 0xe3, 0x0a, 0xc4, 0x22, 0x47, 0xdd, 0x86, 0x3b, 0x29, 0xac, 0x63, 0x58, - 0xc6, 0x40, 0x77, 0x8d, 0x86, 0xf1, 0xb3, 0x43, 0xd4, 0x6d, 0xe8, 0x56, 0xab, 0x71, 0xaa, 0x3b, - 0xa7, 0xe5, 0x45, 0x99, 0xe0, 0x76, 0xa2, 0xbb, 0xcd, 0x55, 0x6b, 0x54, 0x73, 0xdd, 0x6a, 0x5d, - 0x47, 0x3d, 0xb5, 0x0a, 0x17, 0x28, 0x11, 0x3a, 0x05, 0x9f, 0xb9, 0xd1, 0x3c, 0x35, 0x9a, 0xcf, - 0x37, 0x86, 0x6e, 0xfb, 0x6a, 0xf9, 0x43, 0x32, 0x03, 0x35, 0xb2, 0x4e, 0x75, 0x36, 0x89, 0xca, - 0x31, 0x6a, 0xa8, 0x75, 0x28, 0x90, 0xf9, 0xe8, 0x75, 0x3f, 0x8b, 0x66, 0xdb, 0x03, 0x5a, 0x23, - 0x8a, 0x21, 0x8b, 0x5b, 0x72, 0xe2, 0xca, 0x01, 0x07, 0xec, 0x61, 0x7f, 0x5a, 0x4d, 0xd5, 0x0f, - 0x6b, 0xb5, 0x2d, 0x2d, 0x2f, 0x58, 0xae, 0xd9, 0x03, 0x12, 0x53, 0x1d, 0xdb, 0xf3, 0x71, 0x9e, - 0xc5, 0x54, 0xc7, 0x16, 0x1e, 0x46, 0x7f, 0x35, 0x9b, 0xec, 0xb1, 0x71, 0xef, 0xc2, 0x9b, 0x75, - 0xa7, 0xac, 0xf8, 0xfc, 0xd5, 0x6c, 0x6e, 0x33, 0x05, 0x1e, 0xe6, 0x0e, 0x2e, 0x89, 0x5b, 0x47, - 0xfe, 0x92, 0x81, 0xf3, 0x63, 0x4f, 0x19, 0x84, 0xe2, 0x1d, 0xfb, 0x67, 0xe3, 0x40, 0xd5, 0x77, - 0xc7, 0xfe, 0x59, 0x10, 0x76, 0x2f, 0xdd, 0x80, 0x0d, 0x8c, 0x26, 0xba, 0xbc, 0x55, 0xbe, 0x4d, - 0xd6, 0x96, 0x06, 0xd4, 0x55, 0x0c, 0xe4, 0x66, 0xc3, 0xb0, 0xf4, 0x13, 0x9c, 0x7b, 0x7d, 0x80, - 0x5f, 0x9c, 0xf2, 0x25, 0x59, 0xb9, 0xd8, 0x6c, 0xd6, 0xe8, 0xe8, 0x3a, 0x1d, 0x54, 0x97, 0x61, - 0xde, 0x3e, 0x79, 0xae, 0xc9, 0x82, 0xab, 0x81, 0x3c, 0xed, 0xee, 0xcd, 0xf2, 0x3d, 0xd4, 0x4d, - 0x25, 0x32, 0x40, 0x43, 0xeb, 0x90, 0x8a, 0xd5, 0xfb, 0x91, 0xdc, 0x39, 0xd5, 0x07, 0x7d, 0x5a, - 0xa4, 0x1d, 0x74, 0xaa, 0x51, 0xbe, 0x97, 0xa9, 0x32, 0xf9, 0xbe, 0x10, 0xab, 0x35, 0xb8, 0x44, - 0x1e, 0xde, 0xd2, 0x2d, 0xbb, 0x31, 0x74, 0x8c, 0xc6, 0xc8, 0x44, 0x6f, 0x2e, 0x3e, 0x4c, 0xcc, - 0xd2, 0xee, 0x10, 0x6a, 0xc7, 0x0e, 0x26, 0x33, 0xa1, 0x24, 0xa6, 0xe7, 0x06, 0x2c, 0x0e, 0xad, - 0xae, 0x85, 0x21, 0x8e, 0x23, 0x04, 0xcc, 0x16, 0x6c, 0xf9, 0xdf, 0x32, 0x13, 0x9a, 0xee, 0x63, - 0x59, 0x9b, 0x05, 0x89, 0xb6, 0x30, 0x1c, 0x17, 0x56, 0xaa, 0x50, 0x90, 0x63, 0x47, 0xcd, 0x01, - 0x8b, 0x1e, 0xac, 0x6e, 0x58, 0x51, 0x37, 0x0f, 0xb6, 0x48, 0x2d, 0x7c, 0xa6, 0x86, 0x85, 0x0d, - 0x6b, 0xf2, 0xee, 0xce, 0x51, 0xad, 0xa1, 0x1d, 0xef, 0x1f, 0xed, 0xec, 0xd5, 0x94, 0xc4, 0x72, - 0x2e, 0xfb, 0x76, 0x46, 0x79, 0x09, 0xff, 0xe2, 0x95, 0x6f, 0xc4, 0xa1, 0xe8, 0xef, 0x83, 0xd5, - 0x4f, 0xc2, 0x6d, 0x62, 0xd3, 0xea, 0x18, 0x6e, 0xe3, 0xc5, 0xee, 0x80, 0x86, 0x73, 0x4f, 0x67, - 0x9d, 0xa4, 0x37, 0x13, 0x8b, 0x5c, 0x0b, 0xb7, 0xf7, 0x4f, 0xa1, 0xce, 0x35, 0xaa, 0xa2, 0xee, - 0xc2, 0x25, 0x74, 0x19, 0xf6, 0x9a, 0x56, 0x4b, 0x1f, 0xb4, 0x1a, 0xa3, 0xe3, 0x82, 0x86, 0xde, - 0xc4, 0x38, 0x70, 0x6c, 0x56, 0x49, 0x3c, 0x96, 0x3b, 0x2c, 0xbb, 0xce, 0x95, 0x47, 0x29, 0x76, - 0x9d, 0xab, 0x06, 0xa2, 0x26, 0x31, 0x29, 0x6a, 0xb0, 0xf7, 0xea, 0xe9, 0x7d, 0x0c, 0x1b, 0x77, - 0x70, 0x46, 0xbb, 0xb7, 0xac, 0x96, 0x45, 0x41, 0x8d, 0x5c, 0xff, 0xe8, 0xe6, 0x40, 0xf6, 0xe3, - 0xb7, 0x13, 0x50, 0x90, 0x3b, 0x38, 0xd2, 0x10, 0x37, 0x69, 0x9a, 0x8f, 0xd1, 0x2c, 0x70, 0xf7, - 0xd4, 0x7e, 0x6f, 0x65, 0x93, 0xe4, 0xff, 0x6a, 0x9a, 0xf5, 0x55, 0x1a, 0x43, 0x92, 0xda, 0x4b, - 0x62, 0xcd, 0x60, 0xdd, 0x7a, 0x56, 0xe3, 0x57, 0x98, 0xec, 0xd2, 0xcf, 0x39, 0x94, 0x3b, 0x4d, - 0xb9, 0xef, 0x99, 0xce, 0xfd, 0x44, 0x9d, 0x92, 0xe7, 0x9e, 0xa8, 0x37, 0xf6, 0x0f, 0xb4, 0xbd, - 0xf5, 0x5d, 0x8d, 0xc3, 0xd5, 0xdb, 0x21, 0x69, 0xea, 0x9f, 0x3d, 0xf3, 0x57, 0x0a, 0x2a, 0x9a, - 0xd5, 0xf1, 0xc8, 0x40, 0x8e, 0x3c, 0xfc, 0xf9, 0x99, 0x8a, 0x7e, 0x84, 0xa1, 0xbf, 0x0a, 0x29, - 0xea, 0x2f, 0x15, 0x80, 0x7b, 0x4c, 0xb9, 0x45, 0xcd, 0x42, 0x72, 0xf3, 0x40, 0x23, 0xe1, 0x8f, - 0xf1, 0xce, 0xa4, 0x8d, 0xc3, 0x9d, 0xda, 0x26, 0xae, 0x80, 0xca, 0x43, 0x90, 0x66, 0x4e, 0x20, - 0x4b, 0xc3, 0x73, 0x03, 0x82, 0xd8, 0x25, 0xe7, 0x88, 0x89, 0xd1, 0xe3, 0xbd, 0x8d, 0x9a, 0xa6, - 0xc4, 0xe5, 0xe9, 0xfd, 0xdb, 0x18, 0xe4, 0xa5, 0x86, 0x8a, 0x94, 0x72, 0xdd, 0x34, 0xed, 0x17, - 0x1b, 0xba, 0xd9, 0xc5, 0x0c, 0xc5, 0xe6, 0x07, 0xa8, 0x68, 0x9d, 0x48, 0x66, 0xf5, 0xdf, 0x8f, - 0x25, 0x36, 0xbf, 0x14, 0x03, 0x25, 0xd8, 0x8c, 0x05, 0x0c, 0x8c, 0xfd, 0x44, 0x0d, 0x7c, 0x2d, - 0x06, 0x45, 0x7f, 0x07, 0x16, 0x30, 0xef, 0xf2, 0x4f, 0xd4, 0xbc, 0x2f, 0xc4, 0x60, 0xce, 0xd7, - 0x77, 0xbd, 0xaf, 0xac, 0x7b, 0x35, 0x01, 0x0b, 0x21, 0x38, 0x4c, 0x40, 0xac, 0x41, 0x65, 0x3d, - 0xf3, 0x47, 0x67, 0xb9, 0xd7, 0x0a, 0xa9, 0x7f, 0x87, 0xfa, 0xc0, 0xe5, 0xfd, 0x2c, 0xd6, 0xcb, - 0x6e, 0x0b, 0x93, 0x6a, 0xb7, 0xdd, 0xc5, 0xf6, 0x8d, 0xed, 0x58, 0x58, 0xd7, 0x5a, 0x1a, 0xc9, - 0xd9, 0xf6, 0xf8, 0x23, 0xa0, 0xf6, 0x6d, 0xa7, 0xeb, 0x76, 0x5f, 0x20, 0xc7, 0x73, 0x62, 0x23, - 0x4d, 0xba, 0xd8, 0xa4, 0xa6, 0x88, 0x91, 0x1d, 0xcb, 0xf5, 0xb4, 0x2d, 0xa3, 0xa3, 0x07, 0xb4, - 0x49, 0x1a, 0x4a, 0x68, 0x8a, 0x18, 0xf1, 0xb4, 0xb1, 0xd1, 0x6c, 0xd9, 0x43, 0xd2, 0x10, 0x30, - 0x3d, 0x92, 0xf5, 0x62, 0x5a, 0x9e, 0xc9, 0x3c, 0x15, 0xde, 0xb1, 0x8d, 0x76, 0xf0, 0x05, 0x2d, - 0xcf, 0x64, 0x4c, 0xe5, 0x3e, 0x28, 0xe9, 0x9d, 0xce, 0x80, 0x90, 0x0b, 0x22, 0xd6, 0x86, 0x16, - 0x3d, 0x31, 0x55, 0x5c, 0x7a, 0x02, 0xb2, 0xc2, 0x0f, 0xa4, 0xb0, 0x10, 0x4f, 0x60, 0xcd, 0xa7, - 0xe7, 0x28, 0x71, 0xb2, 0xa9, 0xb7, 0xc4, 0x20, 0xde, 0xb4, 0xeb, 0x34, 0x46, 0x07, 0x7a, 0x71, - 0x1c, 0xcf, 0x6a, 0xf9, 0xae, 0xe3, 0x9d, 0xe0, 0x54, 0xde, 0xc0, 0xf2, 0xea, 0x3f, 0x90, 0x54, - 0xb7, 0x20, 0x6b, 0xda, 0x18, 0x1f, 0x04, 0xc1, 0x4e, 0xc3, 0xaf, 0x44, 0x9c, 0x61, 0xae, 0xec, - 0x72, 0x7d, 0xcd, 0x43, 0x2e, 0xfd, 0x63, 0x0c, 0xb2, 0x42, 0x8c, 0x85, 0x22, 0xd9, 0xd7, 0xdd, - 0x53, 0x4a, 0x97, 0xda, 0x88, 0x2b, 0x31, 0x8d, 0x5e, 0x13, 0x39, 0x76, 0x33, 0x16, 0x0d, 0x01, - 0x2e, 0x27, 0xd7, 0x64, 0x5e, 0x4d, 0x43, 0x6f, 0xd1, 0x06, 0xd7, 0xee, 0xf5, 0x70, 0x26, 0x1d, - 0x31, 0xaf, 0x5c, 0xbe, 0xc9, 0xc5, 0xe4, 0x5c, 0xdc, 0x1d, 0xe8, 0x5d, 0xd3, 0xa7, 0x9b, 0xa4, - 0xba, 0x8a, 0x18, 0xf0, 0x94, 0xab, 0x70, 0xbb, 0xe0, 0x6d, 0x19, 0xae, 0x8e, 0xcd, 0x73, 0x6b, - 0x04, 0x4a, 0xd3, 0xd3, 0xae, 0xdb, 0xb8, 0xc2, 0x16, 0x1f, 0x17, 0xd8, 0x8d, 0x1b, 0xd8, 0xc8, - 0xda, 0xbd, 0xa0, 0x27, 0x36, 0x94, 0xc0, 0xbe, 0xcb, 0xb9, 0x1e, 0x7b, 0x06, 0x46, 0x4d, 0xc5, - 0x97, 0xe3, 0x89, 0xed, 0xc3, 0x8d, 0xaf, 0xc6, 0x97, 0xb6, 0x19, 0xee, 0x50, 0x78, 0x50, 0x33, - 0xda, 0xa6, 0xd1, 0x24, 0xde, 0x81, 0xd7, 0xef, 0x86, 0x8f, 0x76, 0xba, 0xee, 0xe9, 0xf0, 0x64, - 0x05, 0xef, 0xb0, 0xda, 0xb1, 0x3b, 0xf6, 0xe8, 0xe7, 0x0c, 0x72, 0x45, 0x2f, 0xe8, 0x37, 0xfe, - 0x93, 0x46, 0xce, 0x93, 0x2e, 0x45, 0xfe, 0xfe, 0x51, 0xdd, 0x87, 0x05, 0xae, 0xdc, 0xa0, 0x67, - 0xaa, 0xac, 0x05, 0x55, 0xa7, 0x6e, 0xc8, 0xcb, 0x6f, 0xbe, 0x45, 0x4b, 0x82, 0x36, 0xcf, 0xa1, - 0x64, 0x8c, 0x35, 0xa9, 0x55, 0x0d, 0x6e, 0xf5, 0xf1, 0xb1, 0x18, 0xc6, 0x2d, 0xf7, 0x74, 0xc6, - 0x6f, 0x70, 0xc6, 0x05, 0x89, 0xb1, 0xce, 0xa1, 0xd5, 0x4d, 0x98, 0x3b, 0x0f, 0xd7, 0xdf, 0x73, - 0xae, 0x82, 0x21, 0x93, 0x6c, 0x43, 0x89, 0x92, 0x34, 0x87, 0x8e, 0x6b, 0xf7, 0x68, 0x82, 0x98, - 0x4e, 0xf3, 0x0f, 0x6f, 0xb1, 0xa0, 0x2a, 0x12, 0xd8, 0xa6, 0x87, 0xaa, 0x3e, 0x09, 0x8b, 0x44, - 0x42, 0xd7, 0xa0, 0xcc, 0x16, 0x7d, 0x84, 0x50, 0xfe, 0xe7, 0x97, 0x59, 0xec, 0x2d, 0x78, 0x04, - 0x12, 0xaf, 0x34, 0x13, 0x1d, 0xc3, 0xc5, 0xdc, 0x86, 0xfb, 0x3f, 0xd3, 0x54, 0xa7, 0xfe, 0xc6, - 0x50, 0xfe, 0xfc, 0xf7, 0xfd, 0x33, 0xb1, 0xcd, 0x90, 0xeb, 0xa6, 0x59, 0x3d, 0x86, 0xdb, 0x42, - 0x66, 0x76, 0x06, 0xce, 0x57, 0x39, 0xe7, 0xe2, 0xd8, 0xec, 0x12, 0xda, 0x43, 0x10, 0x72, 0x6f, - 0x3e, 0x66, 0xe0, 0xfc, 0x02, 0xe7, 0x54, 0x39, 0x56, 0x4c, 0x0b, 0x61, 0x7c, 0x02, 0xe6, 0x71, - 0xa7, 0x7e, 0x62, 0x3b, 0x7c, 0xdf, 0x3b, 0x03, 0xdd, 0x6b, 0x9c, 0xae, 0xc4, 0x81, 0x74, 0x17, - 0x4c, 0xb8, 0x1e, 0x85, 0x6c, 0x1b, 0x37, 0x40, 0x33, 0x50, 0x7c, 0x91, 0x53, 0x64, 0x88, 0x3e, - 0x81, 0xae, 0x43, 0xa1, 0x63, 0xf3, 0x34, 0x1c, 0x0d, 0xff, 0x12, 0x87, 0xe7, 0x05, 0x86, 0x53, - 0xf4, 0xed, 0xfe, 0xd0, 0x24, 0x39, 0x3a, 0x9a, 0xe2, 0x77, 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x73, - 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x23, 0xf9, 0xf3, 0xd3, 0xe4, 0xac, 0xd7, 0x3c, 0xb3, 0xad, 0x59, - 0x8c, 0x78, 0x9d, 0x33, 0x00, 0x87, 0x10, 0x82, 0xc7, 0x20, 0x37, 0xeb, 0x44, 0xfc, 0x3e, 0x87, - 0x67, 0x0d, 0x31, 0x03, 0xb8, 0xce, 0x44, 0x92, 0x21, 0xbf, 0xad, 0x44, 0x53, 0xfc, 0x01, 0xa7, - 0x28, 0x4a, 0x30, 0xfe, 0x18, 0xae, 0xe1, 0xb8, 0xb8, 0x55, 0x9f, 0x81, 0xe4, 0x0d, 0xf1, 0x18, - 0x1c, 0xc2, 0x5d, 0x79, 0x62, 0x58, 0xcd, 0xd3, 0xd9, 0x18, 0xbe, 0x22, 0x5c, 0x29, 0x30, 0x84, - 0x02, 0x33, 0x4f, 0x4f, 0x1f, 0xe0, 0xe6, 0xda, 0x9c, 0x69, 0x3a, 0xfe, 0x90, 0x73, 0x14, 0x3c, - 0x10, 0xf7, 0xc8, 0xd0, 0x3a, 0x0f, 0xcd, 0x57, 0x85, 0x47, 0x24, 0x18, 0x5f, 0x7a, 0xb8, 0x33, - 0x25, 0x9d, 0xc4, 0x79, 0xd8, 0xfe, 0x48, 0x2c, 0x3d, 0x86, 0xdd, 0x93, 0x19, 0x71, 0xa6, 0x1d, - 0xdc, 0x82, 0xcf, 0x42, 0xf3, 0xc7, 0x62, 0xa6, 0x29, 0x80, 0x80, 0x9f, 0x86, 0xdb, 0x43, 0x53, - 0xfd, 0x0c, 0x64, 0x7f, 0xc2, 0xc9, 0x2e, 0x84, 0xa4, 0x7b, 0x9e, 0x12, 0xce, 0x4b, 0xf9, 0xa7, - 0x22, 0x25, 0x18, 0x01, 0xae, 0x43, 0xd2, 0xc6, 0x3a, 0x7a, 0xfb, 0x7c, 0x5e, 0xfb, 0x33, 0xe1, - 0x35, 0x86, 0xf5, 0x79, 0xed, 0x08, 0x2e, 0x70, 0xc6, 0xf3, 0xcd, 0xeb, 0xd7, 0x44, 0x62, 0x65, - 0xe8, 0x63, 0xff, 0xec, 0xfe, 0x34, 0x2c, 0x79, 0xee, 0x14, 0x1d, 0x98, 0xd3, 0x20, 0x07, 0x03, - 0xd1, 0xcc, 0x6f, 0x72, 0x66, 0x91, 0xf1, 0xbd, 0x16, 0xce, 0xd9, 0xd3, 0xfb, 0x84, 0xfc, 0x06, - 0x94, 0x05, 0xf9, 0xd0, 0xc2, 0x06, 0xdf, 0xee, 0x58, 0x38, 0x8d, 0xad, 0x19, 0xa8, 0xff, 0x3c, - 0x30, 0x55, 0xc7, 0x12, 0x9c, 0x30, 0xef, 0x80, 0xe2, 0xf5, 0x1b, 0x8d, 0x6e, 0xaf, 0x6f, 0x63, - 0x6b, 0x39, 0x9d, 0xf1, 0x2f, 0xc4, 0x4c, 0x79, 0xb8, 0x1d, 0x0a, 0xab, 0xd6, 0xa0, 0x48, 0x2f, - 0x67, 0x0d, 0xc9, 0xbf, 0xe4, 0x44, 0x73, 0x23, 0x14, 0x4f, 0x1c, 0xd8, 0x29, 0x61, 0xcf, 0x3b, - 0x4b, 0xfe, 0xfb, 0x2b, 0x91, 0x38, 0x38, 0x84, 0x45, 0x5f, 0x29, 0x50, 0x89, 0xd5, 0xa8, 0x9f, - 0x5f, 0xcb, 0x3f, 0xf7, 0x2e, 0x5f, 0xb3, 0xfe, 0x42, 0x5c, 0xdd, 0x25, 0xee, 0xf1, 0x97, 0xcb, - 0x68, 0xb2, 0x97, 0xdf, 0xf5, 0x3c, 0xe4, 0xab, 0x96, 0xd5, 0x6b, 0x30, 0xe7, 0x2b, 0x95, 0xd1, - 0x54, 0x3f, 0xcf, 0xa9, 0x0a, 0x72, 0xa5, 0xac, 0x3e, 0x04, 0x49, 0x52, 0xf6, 0xa2, 0xe1, 0xbf, - 0xc0, 0xe1, 0x54, 0xbd, 0xfa, 0x29, 0xc8, 0x8a, 0x72, 0x17, 0x0d, 0xfd, 0x45, 0x0e, 0xf5, 0x20, - 0x04, 0x2e, 0x4a, 0x5d, 0x34, 0xfc, 0x97, 0x04, 0x5c, 0x40, 0x08, 0x7c, 0x76, 0x17, 0x7e, 0xfd, - 0x97, 0x93, 0x3c, 0x5d, 0x09, 0xdf, 0x91, 0xdf, 0x7c, 0x58, 0x8d, 0x8b, 0x46, 0x7f, 0x8e, 0xdf, - 0x5c, 0x20, 0xaa, 0x8f, 0x40, 0x6a, 0x46, 0x87, 0xff, 0x0a, 0x87, 0x32, 0x7d, 0xac, 0x20, 0x79, - 0xa9, 0xae, 0x45, 0xc3, 0x7f, 0x95, 0xc3, 0x65, 0x14, 0x31, 0x9d, 0xd7, 0xb5, 0x68, 0x82, 0x5f, - 0x13, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0x28, 0x69, 0xd1, 0xe8, 0x5f, 0x17, 0x5e, 0x17, 0x10, 0x5c, - 0x4d, 0x39, 0x2f, 0x4d, 0x45, 0xe3, 0x7f, 0x83, 0xe3, 0x47, 0x18, 0xe2, 0x01, 0x29, 0x4d, 0x46, - 0x53, 0xfc, 0xa6, 0xf0, 0x80, 0x84, 0x22, 0xcb, 0x28, 0x58, 0xfa, 0xa2, 0x99, 0x7e, 0x4b, 0x2c, - 0xa3, 0x40, 0xe5, 0x23, 0xb3, 0x49, 0xb3, 0x45, 0x34, 0xc5, 0x6f, 0x8b, 0xd9, 0xa4, 0xfa, 0xc4, - 0x8c, 0x60, 0x2d, 0x89, 0xe6, 0xf8, 0x1d, 0x61, 0x46, 0xa0, 0x94, 0x60, 0x65, 0x52, 0xc7, 0xeb, - 0x48, 0x34, 0xdf, 0x2b, 0x9c, 0x6f, 0x7e, 0xac, 0x8c, 0x54, 0x9f, 0x82, 0x0b, 0xe1, 0x35, 0x24, - 0x9a, 0xf5, 0xf3, 0xef, 0x06, 0xba, 0x7e, 0xb9, 0x84, 0x60, 0xc9, 0x5b, 0x0c, 0xab, 0x1f, 0xd1, - 0xb4, 0xaf, 0xbe, 0xeb, 0xdf, 0xd8, 0xc9, 0xe5, 0x03, 0x3b, 0x34, 0x18, 0xa5, 0xee, 0x68, 0xae, - 0xd7, 0x38, 0x97, 0x04, 0x22, 0x4b, 0x83, 0x67, 0xee, 0x68, 0xfc, 0x17, 0xc5, 0xd2, 0xe0, 0x08, - 0x04, 0x67, 0xad, 0xa1, 0x69, 0x92, 0xe0, 0x50, 0xa7, 0xbf, 0xd2, 0x50, 0xfe, 0xf7, 0xf7, 0xf8, - 0xc2, 0x10, 0x00, 0xcc, 0xa1, 0x29, 0xa3, 0x77, 0x82, 0x3e, 0x88, 0x40, 0xfe, 0xc7, 0x7b, 0x22, - 0x21, 0x10, 0x6d, 0x5c, 0x4f, 0xc0, 0x36, 0x8d, 0xf4, 0x0c, 0x3b, 0x02, 0xfb, 0x9f, 0xef, 0xf1, - 0x9f, 0x59, 0x47, 0x90, 0x11, 0x01, 0xfb, 0xd1, 0x76, 0x3a, 0xc1, 0xf7, 0xfd, 0x04, 0x74, 0xa3, - 0xf9, 0x28, 0x64, 0xc8, 0x9b, 0x1d, 0xae, 0xde, 0x89, 0x42, 0xff, 0x17, 0x47, 0x0b, 0x7d, 0xe2, - 0xb0, 0x9e, 0x3d, 0x30, 0xf0, 0xab, 0x13, 0x85, 0xfd, 0x6f, 0x8e, 0xf5, 0x00, 0x04, 0xdc, 0xd4, - 0x1d, 0x77, 0x96, 0xe7, 0xfe, 0x1f, 0x01, 0x16, 0x00, 0x62, 0x34, 0xf9, 0xfe, 0xbc, 0x71, 0x16, - 0x85, 0x7d, 0x47, 0x18, 0xcd, 0xf5, 0x31, 0x01, 0xe6, 0xc8, 0x57, 0xf6, 0xea, 0x41, 0x04, 0xf8, - 0x7f, 0x39, 0x78, 0x84, 0xd8, 0xb8, 0x1c, 0x7e, 0xb4, 0x03, 0xdb, 0xf6, 0xb6, 0xcd, 0x0e, 0x75, - 0xe0, 0xcd, 0x2b, 0x70, 0x3f, 0xea, 0x60, 0x7d, 0x5d, 0x65, 0x6b, 0x52, 0x5a, 0xcf, 0xab, 0xb8, - 0xfa, 0x1c, 0x8a, 0x5a, 0xe3, 0xe7, 0x33, 0x79, 0x7e, 0x45, 0x06, 0x96, 0xce, 0x77, 0xb6, 0x53, - 0xb9, 0x13, 0xe6, 0xae, 0x99, 0xb6, 0xee, 0x62, 0x49, 0x3b, 0xb4, 0xbb, 0x96, 0xab, 0x16, 0x20, - 0xd6, 0xa6, 0xe7, 0xdf, 0x31, 0x2d, 0xd6, 0xae, 0x7c, 0x4b, 0x85, 0x0c, 0x76, 0x30, 0xb8, 0x62, - 0x1d, 0xf5, 0x69, 0x98, 0x67, 0x7d, 0xc3, 0x91, 0xbd, 0x45, 0xcf, 0x1a, 0x51, 0xca, 0x8f, 0xec, - 0x1e, 0x58, 0x91, 0x4c, 0x58, 0xe1, 0x80, 0x95, 0x31, 0x6d, 0xfa, 0x03, 0x94, 0x36, 0xef, 0x04, - 0xe5, 0xea, 0x93, 0xa0, 0x08, 0x65, 0x6a, 0x0d, 0x61, 0x66, 0x07, 0xb5, 0xcb, 0x53, 0x99, 0x85, - 0x32, 0x23, 0x56, 0x9c, 0x80, 0x58, 0x7d, 0x1c, 0xb2, 0x3b, 0x96, 0xfb, 0xf1, 0x35, 0xc2, 0xc7, - 0x5e, 0x0c, 0xac, 0x84, 0xf2, 0x09, 0x25, 0xc6, 0x93, 0xed, 0xf2, 0x4b, 0x8e, 0x7f, 0xf8, 0x13, - 0x04, 0x9f, 0x9c, 0x8e, 0xa7, 0x4a, 0x23, 0x3c, 0xbd, 0x24, 0x2f, 0x16, 0x1e, 0x0b, 0x32, 0xfe, - 0x3e, 0xe0, 0xdd, 0xa1, 0x04, 0x9e, 0x16, 0x63, 0xc8, 0x0d, 0x3d, 0x13, 0x38, 0x05, 0xb3, 0x21, - 0x1d, 0x41, 0x21, 0x19, 0x41, 0x29, 0x3c, 0x2b, 0xea, 0x9e, 0x15, 0x99, 0x29, 0x14, 0xf5, 0x80, - 0x15, 0x8e, 0x6c, 0x45, 0xdd, 0xb3, 0x22, 0x1b, 0x41, 0x21, 0x5b, 0xe1, 0x78, 0x56, 0x6c, 0x01, - 0x5c, 0xeb, 0xde, 0x34, 0x5a, 0xcc, 0x8c, 0x1c, 0x3f, 0xf2, 0x0f, 0xe3, 0x18, 0xa9, 0x31, 0x12, - 0x68, 0x7b, 0x02, 0x75, 0x1b, 0xf2, 0xf5, 0xd1, 0x25, 0x7d, 0x67, 0x90, 0xbc, 0x0e, 0x19, 0x6a, - 0x4a, 0x3b, 0xc0, 0x93, 0x77, 0x24, 0x22, 0x61, 0x0e, 0x7b, 0xa4, 0x7c, 0x94, 0x39, 0xd2, 0x33, - 0x31, 0x73, 0xd8, 0x43, 0x79, 0xe6, 0x30, 0x9a, 0x42, 0xa4, 0x39, 0x12, 0x0f, 0x37, 0x87, 0x11, - 0x61, 0xd9, 0xd9, 0xb0, 0x6d, 0xa2, 0x59, 0x9e, 0xa3, 0x24, 0x97, 0x43, 0x49, 0xb8, 0x0e, 0x23, - 0xc8, 0x9c, 0xb0, 0x2b, 0x3a, 0x3b, 0x34, 0xf4, 0x09, 0xbc, 0x38, 0x6d, 0x76, 0x84, 0x96, 0x98, - 0x1d, 0x71, 0x2d, 0xaf, 0xc0, 0x8d, 0x33, 0xec, 0xf4, 0x08, 0x53, 0x69, 0x86, 0x15, 0x28, 0x94, - 0x03, 0x2b, 0x50, 0x88, 0xd5, 0x3a, 0x94, 0x84, 0x2a, 0xd9, 0x93, 0x13, 0x5a, 0x85, 0xbf, 0xe4, - 0x35, 0x8d, 0x96, 0xeb, 0x32, 0xd6, 0x92, 0xe3, 0x97, 0xaa, 0x87, 0x50, 0x14, 0x8a, 0x7b, 0x0e, - 0x7d, 0xe8, 0x79, 0xfe, 0xcb, 0xc1, 0x34, 0x4e, 0xa6, 0xca, 0x28, 0x8b, 0x8e, 0x4f, 0xb8, 0xb4, - 0x05, 0x17, 0xc2, 0xb3, 0x15, 0x79, 0x41, 0x14, 0x73, 0x3e, 0x7f, 0x9b, 0x87, 0x7c, 0x25, 0x2f, - 0x92, 0x8a, 0xb7, 0xd5, 0x48, 0x96, 0x64, 0x17, 0xd5, 0xf8, 0xd5, 0xd8, 0xd2, 0x26, 0xdc, 0x1a, - 0x9a, 0x99, 0xa2, 0x48, 0xe2, 0x32, 0xc9, 0x63, 0x30, 0xe7, 0x4b, 0x47, 0x32, 0x38, 0x15, 0x02, - 0x4e, 0x8d, 0x83, 0x47, 0x41, 0x26, 0x83, 0x13, 0x21, 0xe0, 0x84, 0x0c, 0xfe, 0x24, 0x14, 0xfd, - 0x79, 0x48, 0x46, 0xcf, 0x85, 0xa0, 0xe7, 0x42, 0xd0, 0xe1, 0xf7, 0x4e, 0x86, 0xa0, 0x93, 0x01, - 0x74, 0x7d, 0xe2, 0xbd, 0xe7, 0x43, 0xd0, 0xf3, 0x21, 0xe8, 0xf0, 0x7b, 0xab, 0x21, 0x68, 0x55, - 0x46, 0x7f, 0x0a, 0x4a, 0x81, 0x94, 0x23, 0xc3, 0x33, 0x21, 0xf0, 0x8c, 0x0c, 0x7f, 0x1c, 0x97, - 0x4e, 0x7b, 0x32, 0xbe, 0x14, 0x82, 0x2f, 0x85, 0xdd, 0x3e, 0xdc, 0xfa, 0x74, 0x08, 0x3c, 0x1d, - 0x7a, 0xfb, 0x70, 0xbc, 0x12, 0x82, 0x57, 0x64, 0x7c, 0x15, 0x0a, 0x72, 0x56, 0x91, 0xb1, 0xd9, - 0x10, 0x6c, 0x36, 0xe8, 0x77, 0x5f, 0x4a, 0x89, 0x8a, 0xf4, 0xdc, 0x84, 0xe5, 0xe2, 0x4b, 0x23, - 0x51, 0x24, 0x05, 0x99, 0xe4, 0x06, 0x2c, 0x86, 0x25, 0x8d, 0x10, 0x8e, 0x65, 0x99, 0xa3, 0xb8, - 0xb6, 0xe8, 0x4b, 0x16, 0x14, 0x37, 0xec, 0xc9, 0xcc, 0xcf, 0xc2, 0x42, 0x48, 0xea, 0x08, 0x21, - 0x7e, 0x50, 0x26, 0xce, 0xaf, 0x2d, 0xf9, 0x88, 0x7d, 0xdd, 0x95, 0x44, 0x5f, 0xf9, 0xf6, 0x02, - 0x14, 0x79, 0x8a, 0x3a, 0x18, 0xb4, 0x8c, 0x01, 0x36, 0xfe, 0x3f, 0x33, 0xb9, 0xc3, 0x5a, 0x0b, - 0x4b, 0x6d, 0x1c, 0x77, 0x8e, 0x46, 0xeb, 0xd9, 0x89, 0x8d, 0xd6, 0xc7, 0x66, 0xb9, 0x41, 0x54, - 0xbf, 0x55, 0x1b, 0xeb, 0xb7, 0xee, 0x9f, 0x46, 0x3b, 0xa9, 0xed, 0xaa, 0x8d, 0xb5, 0x5d, 0x51, - 0x34, 0xa1, 0xdd, 0xd7, 0xf5, 0xf1, 0xee, 0x6b, 0x79, 0x1a, 0xcf, 0xe4, 0x26, 0xec, 0xfa, 0x78, - 0x13, 0x16, 0xc9, 0x14, 0xde, 0x8b, 0x5d, 0x1f, 0xef, 0xc5, 0xa6, 0x32, 0x4d, 0x6e, 0xc9, 0xae, - 0x8f, 0xb7, 0x64, 0x91, 0x4c, 0xe1, 0x9d, 0xd9, 0x67, 0x42, 0x3a, 0xb3, 0x07, 0xa6, 0x51, 0x4d, - 0x6b, 0xd0, 0xf6, 0xc3, 0x1a, 0xb4, 0x8f, 0x4c, 0x35, 0x6c, 0x6a, 0x9f, 0xf6, 0x99, 0x90, 0x3e, - 0x2d, 0xda, 0xb8, 0x09, 0xed, 0xda, 0x7e, 0x58, 0xbb, 0x36, 0x83, 0x71, 0x93, 0xba, 0xb6, 0x8d, - 0x60, 0xd7, 0x76, 0x65, 0x1a, 0x57, 0x78, 0xf3, 0x76, 0x7d, 0xbc, 0x79, 0x5b, 0x8e, 0x5e, 0x8b, - 0x61, 0x3d, 0xdc, 0xb3, 0x13, 0x7b, 0xb8, 0x99, 0x16, 0x77, 0x54, 0x2b, 0xf7, 0xcc, 0xa4, 0x56, - 0xee, 0xc1, 0x59, 0xd8, 0xa7, 0x77, 0x74, 0x4f, 0x4d, 0xe8, 0xe8, 0x56, 0x67, 0xa1, 0xfe, 0xa0, - 0xb1, 0xfb, 0xa0, 0xb1, 0xfb, 0xa0, 0xb1, 0xfb, 0xa0, 0xb1, 0x7b, 0x7f, 0x34, 0x76, 0xd5, 0xe4, - 0x2b, 0xaf, 0x5f, 0x8a, 0x2d, 0x5f, 0x86, 0x0c, 0xbf, 0xb5, 0x9a, 0x86, 0xf8, 0xde, 0xba, 0x72, - 0x0b, 0xfd, 0xbf, 0xa1, 0xc4, 0xe8, 0xff, 0x4d, 0x25, 0xbe, 0xb1, 0xfb, 0xcd, 0xef, 0x5e, 0xbc, - 0xe5, 0x9f, 0xf0, 0xf3, 0x2d, 0xfc, 0x7c, 0xe7, 0xbb, 0x17, 0x63, 0x6f, 0xe3, 0xe7, 0x1d, 0xfc, - 0xfc, 0x00, 0x3f, 0x2f, 0x7d, 0xef, 0x62, 0xec, 0x2b, 0xf8, 0xf9, 0x1a, 0x7e, 0xfe, 0x06, 0x3f, - 0x5f, 0xc7, 0xcf, 0x37, 0xbf, 0x87, 0xfa, 0xf8, 0xf9, 0x0e, 0x7e, 0x7f, 0x1b, 0xff, 0xbf, 0x83, - 0xff, 0x7f, 0x80, 0xff, 0x5f, 0xfa, 0xd7, 0x8b, 0xb1, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xbf, - 0x19, 0x35, 0x8f, 0x9e, 0x3e, 0x00, 0x00, + // 4580 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, + 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, + 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, + 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, + 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, + 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0x06, 0xf0, + 0x87, 0x16, 0xf7, 0x35, 0x9c, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x27, 0xfd, 0xe0, 0x4f, 0xd2, 0x9c, + 0x7b, 0x7e, 0xbf, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0x47, 0xe7, 0xe0, 0x54, + 0xc3, 0xb2, 0x1a, 0x4d, 0xbc, 0xd8, 0xb6, 0x2d, 0xd7, 0xda, 0xef, 0xd4, 0x17, 0x6b, 0xd8, 0xd1, + 0x6d, 0xa3, 0xed, 0x5a, 0xf6, 0x02, 0x95, 0xa1, 0x09, 0xa6, 0xb1, 0x20, 0x34, 0xe6, 0x36, 0x61, + 0xf2, 0x92, 0xd1, 0xc4, 0xab, 0x9e, 0x62, 0x15, 0xbb, 0xe8, 0x02, 0xa4, 0xea, 0x46, 0x13, 0x17, + 0xa5, 0x53, 0xc9, 0xf9, 0xdc, 0xd2, 0x1d, 0x0b, 0x21, 0xd0, 0x42, 0x10, 0xb1, 0x43, 0xc4, 0x0a, + 0x45, 0xcc, 0xbd, 0x9b, 0x82, 0xa9, 0x88, 0x51, 0x84, 0x20, 0x65, 0x6a, 0x2d, 0xc2, 0x28, 0xcd, + 0x67, 0x15, 0xfa, 0x3f, 0x2a, 0xc2, 0x58, 0x5b, 0xd3, 0xaf, 0x6a, 0x0d, 0x5c, 0x4c, 0x50, 0xb1, + 0x78, 0x44, 0xb3, 0x00, 0x35, 0xdc, 0xc6, 0x66, 0x0d, 0x9b, 0xfa, 0x61, 0x31, 0x79, 0x2a, 0x39, + 0x9f, 0x55, 0x7c, 0x12, 0x74, 0x2f, 0x4c, 0xb6, 0x3b, 0xfb, 0x4d, 0x43, 0x57, 0x7d, 0x6a, 0x70, + 0x2a, 0x39, 0x9f, 0x56, 0x64, 0x36, 0xb0, 0xda, 0x55, 0xbe, 0x1b, 0x26, 0x5e, 0xc4, 0xda, 0x55, + 0xbf, 0x6a, 0x8e, 0xaa, 0x16, 0x88, 0xd8, 0xa7, 0xb8, 0x02, 0xf9, 0x16, 0x76, 0x1c, 0xad, 0x81, + 0x55, 0xf7, 0xb0, 0x8d, 0x8b, 0x29, 0xba, 0xfa, 0x53, 0x3d, 0xab, 0x0f, 0xaf, 0x3c, 0xc7, 0x51, + 0xbb, 0x87, 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, + 0x3b, 0xad, 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0x6b, 0x86, 0x8e, 0x8b, 0xa3, + 0x94, 0xe0, 0xee, 0x1e, 0x82, 0x2a, 0x1b, 0x0f, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x2c, 0x7e, 0xc9, + 0xc5, 0xa6, 0x63, 0x58, 0x66, 0x71, 0x8c, 0x92, 0xdc, 0x19, 0xb1, 0x8b, 0xb8, 0x59, 0x0b, 0x53, + 0x74, 0x71, 0xe8, 0x3c, 0x8c, 0x59, 0x6d, 0xd7, 0xb0, 0x4c, 0xa7, 0x98, 0x39, 0x25, 0xcd, 0xe7, + 0x96, 0x3e, 0x13, 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x11, 0xca, 0x68, 0x1d, 0x64, 0xc7, 0xea, 0xd8, + 0x3a, 0x56, 0x75, 0xab, 0x86, 0x55, 0xc3, 0xac, 0x5b, 0xc5, 0x2c, 0x25, 0x38, 0xd9, 0xbb, 0x10, + 0xaa, 0xb8, 0x62, 0xd5, 0xf0, 0xba, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0x27, 0x60, 0xd4, + 0x39, 0x34, 0x5d, 0xed, 0xa5, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xef, 0x34, 0x4c, 0x0c, + 0x13, 0x62, 0x17, 0x21, 0x5d, 0x27, 0xab, 0x2c, 0x26, 0x8e, 0xe3, 0x03, 0x86, 0x09, 0x3a, 0x71, + 0xf4, 0x63, 0x3a, 0xb1, 0x0c, 0x39, 0x13, 0x3b, 0x2e, 0xae, 0xb1, 0x88, 0x48, 0x0e, 0x19, 0x53, + 0xc0, 0x40, 0xbd, 0x21, 0x95, 0xfa, 0x58, 0x21, 0x75, 0x05, 0x26, 0x3c, 0x93, 0x54, 0x5b, 0x33, + 0x1b, 0x22, 0x36, 0x17, 0xe3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x42, 0x60, 0x4a, 0x01, 0x07, 0x9e, + 0xd1, 0x2a, 0x80, 0x65, 0x62, 0xab, 0xae, 0xd6, 0xb0, 0xde, 0x2c, 0x66, 0xfa, 0x78, 0x69, 0x9b, + 0xa8, 0xf4, 0x78, 0xc9, 0x62, 0x52, 0xbd, 0x89, 0x1e, 0xe9, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, + 0x64, 0x87, 0xac, 0x27, 0xda, 0xf6, 0xa0, 0x60, 0x63, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa5, + 0x46, 0x2c, 0xc4, 0xae, 0x4c, 0xe1, 0x30, 0xb6, 0xb0, 0x71, 0xdb, 0xff, 0x88, 0x6e, 0x07, 0x4f, + 0xa0, 0xd2, 0xb0, 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0xa5, 0xb5, 0xf0, 0xcc, 0x05, 0x28, 0x04, + 0xdd, 0x83, 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, + 0xc4, 0x66, 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x9d, 0x79, 0x18, 0xc6, 0x03, 0xd3, 0x0f, 0x0b, + 0x9c, 0x7b, 0x75, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, 0xed, + 0x63, 0xbb, 0x98, 0xa4, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x71, 0xb3, 0x98, 0x3a, + 0x25, 0xcd, 0x17, 0x96, 0xee, 0x1d, 0x2a, 0xaa, 0x17, 0x36, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x18, + 0xa4, 0x78, 0x8a, 0x23, 0x0c, 0x67, 0x86, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0xba, 0x15, 0xb2, + 0xe4, 0x2f, 0xf3, 0xed, 0x28, 0xb5, 0x39, 0x43, 0x04, 0xc4, 0xaf, 0x68, 0x06, 0x32, 0x34, 0xcc, + 0x6a, 0x58, 0x94, 0x06, 0xef, 0x99, 0x6c, 0x4c, 0x0d, 0xd7, 0xb5, 0x4e, 0xd3, 0x55, 0xaf, 0x69, + 0xcd, 0x0e, 0xa6, 0x01, 0x93, 0x55, 0xf2, 0x5c, 0xf8, 0x14, 0x91, 0xa1, 0x93, 0x90, 0x63, 0x51, + 0x69, 0x98, 0x35, 0xfc, 0x12, 0xcd, 0x3e, 0x69, 0x85, 0x05, 0xea, 0x3a, 0x91, 0x90, 0xe9, 0x9f, + 0x77, 0x2c, 0x53, 0x6c, 0x2d, 0x9d, 0x82, 0x08, 0xe8, 0xf4, 0x0f, 0x87, 0x13, 0xdf, 0x6d, 0xd1, + 0xcb, 0x0b, 0xc7, 0xe2, 0xdc, 0x37, 0x13, 0x90, 0xa2, 0xe7, 0x6d, 0x02, 0x72, 0xbb, 0xcf, 0xec, + 0x54, 0xd4, 0xd5, 0xed, 0xbd, 0xe5, 0x8d, 0x8a, 0x2c, 0xa1, 0x02, 0x00, 0x15, 0x5c, 0xda, 0xd8, + 0x2e, 0xef, 0xca, 0x09, 0xef, 0x79, 0x7d, 0x6b, 0xf7, 0xfc, 0x59, 0x39, 0xe9, 0x01, 0xf6, 0x98, + 0x20, 0xe5, 0x57, 0x78, 0x68, 0x49, 0x4e, 0x23, 0x19, 0xf2, 0x8c, 0x60, 0xfd, 0x4a, 0x65, 0xf5, + 0xfc, 0x59, 0x79, 0x34, 0x28, 0x79, 0x68, 0x49, 0x1e, 0x43, 0xe3, 0x90, 0xa5, 0x92, 0xe5, 0xed, + 0xed, 0x0d, 0x39, 0xe3, 0x71, 0x56, 0x77, 0x95, 0xf5, 0xad, 0x35, 0x39, 0xeb, 0x71, 0xae, 0x29, + 0xdb, 0x7b, 0x3b, 0x32, 0x78, 0x0c, 0x9b, 0x95, 0x6a, 0xb5, 0xbc, 0x56, 0x91, 0x73, 0x9e, 0xc6, + 0xf2, 0x33, 0xbb, 0x95, 0xaa, 0x9c, 0x0f, 0x98, 0xf5, 0xd0, 0x92, 0x3c, 0xee, 0x4d, 0x51, 0xd9, + 0xda, 0xdb, 0x94, 0x0b, 0x68, 0x12, 0xc6, 0xd9, 0x14, 0xc2, 0x88, 0x89, 0x90, 0xe8, 0xfc, 0x59, + 0x59, 0xee, 0x1a, 0xc2, 0x58, 0x26, 0x03, 0x82, 0xf3, 0x67, 0x65, 0x34, 0xb7, 0x02, 0x69, 0x1a, + 0x5d, 0x08, 0x41, 0x61, 0xa3, 0xbc, 0x5c, 0xd9, 0x50, 0xb7, 0x77, 0x76, 0xd7, 0xb7, 0xb7, 0xca, + 0x1b, 0xb2, 0xd4, 0x95, 0x29, 0x95, 0xcf, 0xed, 0xad, 0x2b, 0x95, 0x55, 0x39, 0xe1, 0x97, 0xed, + 0x54, 0xca, 0xbb, 0x95, 0x55, 0x39, 0x39, 0xa7, 0xc3, 0x74, 0x54, 0x9e, 0x89, 0x3c, 0x19, 0xbe, + 0x2d, 0x4e, 0xf4, 0xd9, 0x62, 0xca, 0xd5, 0xb3, 0xc5, 0x5f, 0x96, 0x60, 0x2a, 0x22, 0xd7, 0x46, + 0x4e, 0xf2, 0x38, 0xa4, 0x59, 0x88, 0xb2, 0xea, 0x73, 0x4f, 0x64, 0xd2, 0xa6, 0x01, 0xdb, 0x53, + 0x81, 0x28, 0xce, 0x5f, 0x81, 0x93, 0x7d, 0x2a, 0x30, 0xa1, 0xe8, 0x31, 0xf2, 0x15, 0x09, 0x8a, + 0xfd, 0xb8, 0x63, 0x12, 0x45, 0x22, 0x90, 0x28, 0x2e, 0x86, 0x0d, 0x38, 0xdd, 0x7f, 0x0d, 0x3d, + 0x56, 0xbc, 0x29, 0xc1, 0x89, 0xe8, 0x46, 0x25, 0xd2, 0x86, 0xc7, 0x60, 0xb4, 0x85, 0xdd, 0x03, + 0x4b, 0x14, 0xeb, 0xbb, 0x22, 0x4a, 0x00, 0x19, 0x0e, 0xfb, 0x8a, 0xa3, 0xfc, 0x35, 0x24, 0xd9, + 0xaf, 0xdb, 0x60, 0xd6, 0xf4, 0x58, 0xfa, 0xf9, 0x04, 0xdc, 0x14, 0x49, 0x1e, 0x69, 0xe8, 0x6d, + 0x00, 0x86, 0xd9, 0xee, 0xb8, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa5, 0x12, 0x7a, 0xf6, 0x49, 0xee, + 0xe9, 0xb8, 0xde, 0x78, 0x92, 0x8e, 0x03, 0x13, 0x51, 0x85, 0x0b, 0x5d, 0x43, 0x53, 0xd4, 0xd0, + 0xd9, 0x3e, 0x2b, 0xed, 0xa9, 0x75, 0x0f, 0x80, 0xac, 0x37, 0x0d, 0x6c, 0xba, 0xaa, 0xe3, 0xda, + 0x58, 0x6b, 0x19, 0x66, 0x83, 0x26, 0xe0, 0x4c, 0x29, 0x5d, 0xd7, 0x9a, 0x0e, 0x56, 0x26, 0xd8, + 0x70, 0x55, 0x8c, 0x12, 0x04, 0xad, 0x32, 0xb6, 0x0f, 0x31, 0x1a, 0x40, 0xb0, 0x61, 0x0f, 0x31, + 0xf7, 0xb5, 0x31, 0xc8, 0xf9, 0xda, 0x3a, 0x74, 0x1a, 0xf2, 0xcf, 0x6b, 0xd7, 0x34, 0x55, 0xb4, + 0xea, 0xcc, 0x13, 0x39, 0x22, 0xdb, 0xe1, 0xed, 0xfa, 0x03, 0x30, 0x4d, 0x55, 0xac, 0x8e, 0x8b, + 0x6d, 0x55, 0x6f, 0x6a, 0x8e, 0x43, 0x9d, 0x96, 0xa1, 0xaa, 0x88, 0x8c, 0x6d, 0x93, 0xa1, 0x15, + 0x31, 0x82, 0xce, 0xc1, 0x14, 0x45, 0xb4, 0x3a, 0x4d, 0xd7, 0x68, 0x37, 0xb1, 0x4a, 0x5e, 0x1e, + 0x1c, 0x9a, 0x88, 0x3d, 0xcb, 0x26, 0x89, 0xc6, 0x26, 0x57, 0x20, 0x16, 0x39, 0x68, 0x15, 0x6e, + 0xa3, 0xb0, 0x06, 0x36, 0xb1, 0xad, 0xb9, 0x58, 0xc5, 0x2f, 0x74, 0xb4, 0xa6, 0xa3, 0x6a, 0x66, + 0x4d, 0x3d, 0xd0, 0x9c, 0x83, 0xe2, 0x34, 0x21, 0x58, 0x4e, 0x14, 0x25, 0xe5, 0x16, 0xa2, 0xb8, + 0xc6, 0xf5, 0x2a, 0x54, 0xad, 0x6c, 0xd6, 0x2e, 0x6b, 0xce, 0x01, 0x2a, 0xc1, 0x09, 0xca, 0xe2, + 0xb8, 0xb6, 0x61, 0x36, 0x54, 0xfd, 0x00, 0xeb, 0x57, 0xd5, 0x8e, 0x5b, 0xbf, 0x50, 0xbc, 0xd5, + 0x3f, 0x3f, 0xb5, 0xb0, 0x4a, 0x75, 0x56, 0x88, 0xca, 0x9e, 0x5b, 0xbf, 0x80, 0xaa, 0x90, 0x27, + 0x9b, 0xd1, 0x32, 0x5e, 0xc6, 0x6a, 0xdd, 0xb2, 0x69, 0x65, 0x29, 0x44, 0x9c, 0x6c, 0x9f, 0x07, + 0x17, 0xb6, 0x39, 0x60, 0xd3, 0xaa, 0xe1, 0x52, 0xba, 0xba, 0x53, 0xa9, 0xac, 0x2a, 0x39, 0xc1, + 0x72, 0xc9, 0xb2, 0x49, 0x40, 0x35, 0x2c, 0xcf, 0xc1, 0x39, 0x16, 0x50, 0x0d, 0x4b, 0xb8, 0xf7, + 0x1c, 0x4c, 0xe9, 0x3a, 0x5b, 0xb3, 0xa1, 0xab, 0xbc, 0xc5, 0x77, 0x8a, 0x72, 0xc0, 0x59, 0xba, + 0xbe, 0xc6, 0x14, 0x78, 0x8c, 0x3b, 0xe8, 0x11, 0xb8, 0xa9, 0xeb, 0x2c, 0x3f, 0x70, 0xb2, 0x67, + 0x95, 0x61, 0xe8, 0x39, 0x98, 0x6a, 0x1f, 0xf6, 0x02, 0x51, 0x60, 0xc6, 0xf6, 0x61, 0x18, 0x76, + 0x27, 0x7d, 0x6d, 0xb3, 0xb1, 0xae, 0xb9, 0xb8, 0x56, 0xbc, 0xd9, 0xaf, 0xed, 0x1b, 0x40, 0x8b, + 0x20, 0xeb, 0xba, 0x8a, 0x4d, 0x6d, 0xbf, 0x89, 0x55, 0xcd, 0xc6, 0xa6, 0xe6, 0x14, 0x4f, 0xfa, + 0x95, 0x0b, 0xba, 0x5e, 0xa1, 0xa3, 0x65, 0x3a, 0x88, 0xce, 0xc0, 0xa4, 0xb5, 0xff, 0xbc, 0xce, + 0x22, 0x4b, 0x6d, 0xdb, 0xb8, 0x6e, 0xbc, 0x54, 0xbc, 0x83, 0xba, 0x69, 0x82, 0x0c, 0xd0, 0xb8, + 0xda, 0xa1, 0x62, 0x74, 0x0f, 0xc8, 0xba, 0x73, 0xa0, 0xd9, 0x6d, 0x5a, 0xda, 0x9d, 0xb6, 0xa6, + 0xe3, 0xe2, 0x9d, 0x4c, 0x95, 0xc9, 0xb7, 0x84, 0x98, 0x44, 0xb6, 0xf3, 0xa2, 0x51, 0x77, 0x05, + 0xe3, 0xdd, 0x2c, 0xb2, 0xa9, 0x8c, 0xb3, 0x5d, 0x81, 0xe9, 0x8e, 0x69, 0x98, 0x2e, 0xb6, 0xdb, + 0x36, 0x26, 0x4d, 0x3c, 0x3b, 0x89, 0xc5, 0x7f, 0x1a, 0xeb, 0xd3, 0x86, 0xef, 0xf9, 0xb5, 0x59, + 0x00, 0x28, 0x53, 0x9d, 0x5e, 0xe1, 0x5c, 0x09, 0xf2, 0xfe, 0xb8, 0x40, 0x59, 0x60, 0x91, 0x21, + 0x4b, 0xa4, 0xc6, 0xae, 0x6c, 0xaf, 0x92, 0xea, 0xf8, 0x6c, 0x45, 0x4e, 0x90, 0x2a, 0xbd, 0xb1, + 0xbe, 0x5b, 0x51, 0x95, 0xbd, 0xad, 0xdd, 0xf5, 0xcd, 0x8a, 0x9c, 0x3c, 0x93, 0xcd, 0xbc, 0x37, + 0x26, 0x5f, 0xbf, 0x7e, 0xfd, 0x7a, 0x62, 0xee, 0x3b, 0x09, 0x28, 0x04, 0x3b, 0x63, 0xf4, 0x59, + 0xb8, 0x59, 0xbc, 0xc6, 0x3a, 0xd8, 0x55, 0x5f, 0x34, 0x6c, 0x1a, 0xaa, 0x2d, 0x8d, 0xf5, 0x96, + 0x9e, 0x97, 0xa7, 0xb9, 0x56, 0x15, 0xbb, 0x4f, 0x1b, 0x36, 0x09, 0xc4, 0x96, 0xe6, 0xa2, 0x0d, + 0x38, 0x69, 0x5a, 0xaa, 0xe3, 0x6a, 0x66, 0x4d, 0xb3, 0x6b, 0x6a, 0xf7, 0x02, 0x41, 0xd5, 0x74, + 0x1d, 0x3b, 0x8e, 0xc5, 0x4a, 0x84, 0xc7, 0xf2, 0x19, 0xd3, 0xaa, 0x72, 0xe5, 0x6e, 0xee, 0x2c, + 0x73, 0xd5, 0x50, 0x44, 0x24, 0xfb, 0x45, 0xc4, 0xad, 0x90, 0x6d, 0x69, 0x6d, 0x15, 0x9b, 0xae, + 0x7d, 0x48, 0xfb, 0xb9, 0x8c, 0x92, 0x69, 0x69, 0xed, 0x0a, 0x79, 0xfe, 0xe4, 0xf6, 0xc0, 0xef, + 0xc7, 0x1f, 0x26, 0x21, 0xef, 0xef, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x13, 0x7e, + 0xfb, 0xc0, 0x0e, 0x70, 0x61, 0x85, 0x24, 0xf6, 0xd2, 0x28, 0xeb, 0xb4, 0x14, 0x86, 0x24, 0x45, + 0x95, 0x9c, 0x69, 0xcc, 0xfa, 0xf7, 0x8c, 0xc2, 0x9f, 0xd0, 0x1a, 0x8c, 0x3e, 0xef, 0x50, 0xee, + 0x51, 0xca, 0x7d, 0xc7, 0x60, 0xee, 0x27, 0xaa, 0x94, 0x3c, 0xfb, 0x44, 0x55, 0xdd, 0xda, 0x56, + 0x36, 0xcb, 0x1b, 0x0a, 0x87, 0xa3, 0x5b, 0x20, 0xd5, 0xd4, 0x5e, 0x3e, 0x0c, 0x96, 0x00, 0x2a, + 0x1a, 0xd6, 0xf1, 0xb7, 0x40, 0xea, 0x45, 0xac, 0x5d, 0x0d, 0x26, 0x5e, 0x2a, 0xfa, 0x04, 0x43, + 0x7f, 0x11, 0xd2, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x41, 0x19, 0x48, 0xad, 0x6c, 0x2b, + 0x24, 0xfc, 0x65, 0xc8, 0x33, 0xa9, 0xba, 0xb3, 0x5e, 0x59, 0xa9, 0xc8, 0x89, 0xb9, 0x73, 0x30, + 0xca, 0x9c, 0x40, 0x8e, 0x86, 0xe7, 0x06, 0x79, 0x84, 0x3f, 0x72, 0x0e, 0x49, 0x8c, 0xee, 0x6d, + 0x2e, 0x57, 0x14, 0x39, 0xe1, 0xdf, 0x5e, 0x07, 0xf2, 0xfe, 0x76, 0xee, 0xa7, 0x13, 0x53, 0x7f, + 0x2b, 0x41, 0xce, 0xd7, 0x9e, 0x91, 0xc6, 0x40, 0x6b, 0x36, 0xad, 0x17, 0x55, 0xad, 0x69, 0x68, + 0x0e, 0x0f, 0x0a, 0xa0, 0xa2, 0x32, 0x91, 0x0c, 0xbb, 0x69, 0x3f, 0x15, 0xe3, 0xdf, 0x90, 0x40, + 0x0e, 0xb7, 0x76, 0x21, 0x03, 0xa5, 0x9f, 0xa9, 0x81, 0xaf, 0x4b, 0x50, 0x08, 0xf6, 0x73, 0x21, + 0xf3, 0x4e, 0xff, 0x4c, 0xcd, 0x7b, 0x27, 0x01, 0xe3, 0x81, 0x2e, 0x6e, 0x58, 0xeb, 0x5e, 0x80, + 0x49, 0xa3, 0x86, 0x5b, 0x6d, 0xcb, 0xc5, 0xa6, 0x7e, 0xa8, 0x36, 0xf1, 0x35, 0xdc, 0x2c, 0xce, + 0xd1, 0x44, 0xb1, 0x38, 0xb8, 0x4f, 0x5c, 0x58, 0xef, 0xe2, 0x36, 0x08, 0xac, 0x34, 0xb5, 0xbe, + 0x5a, 0xd9, 0xdc, 0xd9, 0xde, 0xad, 0x6c, 0xad, 0x3c, 0xa3, 0xee, 0x6d, 0x3d, 0xb9, 0xb5, 0xfd, + 0xf4, 0x96, 0x22, 0x1b, 0x21, 0xb5, 0x4f, 0xf0, 0xa8, 0xef, 0x80, 0x1c, 0x36, 0x0a, 0xdd, 0x0c, + 0x51, 0x66, 0xc9, 0x23, 0x68, 0x0a, 0x26, 0xb6, 0xb6, 0xd5, 0xea, 0xfa, 0x6a, 0x45, 0xad, 0x5c, + 0xba, 0x54, 0x59, 0xd9, 0xad, 0xb2, 0x17, 0x67, 0x4f, 0x7b, 0x37, 0x78, 0xa8, 0x5f, 0x4b, 0xc2, + 0x54, 0x84, 0x25, 0xa8, 0xcc, 0x7b, 0x76, 0xf6, 0x1a, 0x71, 0xff, 0x30, 0xd6, 0x2f, 0x90, 0xae, + 0x60, 0x47, 0xb3, 0x5d, 0xde, 0xe2, 0xdf, 0x03, 0xc4, 0x4b, 0xa6, 0x6b, 0xd4, 0x0d, 0x6c, 0xf3, + 0x7b, 0x06, 0xd6, 0xc8, 0x4f, 0x74, 0xe5, 0xec, 0xaa, 0xe1, 0x3e, 0x40, 0x6d, 0xcb, 0x31, 0x5c, + 0xe3, 0x1a, 0x56, 0x0d, 0x53, 0x5c, 0x4a, 0x90, 0xc6, 0x3e, 0xa5, 0xc8, 0x62, 0x64, 0xdd, 0x74, + 0x3d, 0x6d, 0x13, 0x37, 0xb4, 0x90, 0x36, 0x49, 0xe0, 0x49, 0x45, 0x16, 0x23, 0x9e, 0xf6, 0x69, + 0xc8, 0xd7, 0xac, 0x0e, 0x69, 0x93, 0x98, 0x1e, 0xa9, 0x17, 0x92, 0x92, 0x63, 0x32, 0x4f, 0x85, + 0xf7, 0xb1, 0xdd, 0xdb, 0x90, 0xbc, 0x92, 0x63, 0x32, 0xa6, 0x72, 0x37, 0x4c, 0x68, 0x8d, 0x86, + 0x4d, 0xc8, 0x05, 0x11, 0xeb, 0xcc, 0x0b, 0x9e, 0x98, 0x2a, 0xce, 0x3c, 0x01, 0x19, 0xe1, 0x07, + 0x52, 0x92, 0x89, 0x27, 0xd4, 0x36, 0xbb, 0x93, 0x4a, 0xcc, 0x67, 0x95, 0x8c, 0x29, 0x06, 0x4f, + 0x43, 0xde, 0x70, 0xd4, 0xee, 0xe5, 0x68, 0xe2, 0x54, 0x62, 0x3e, 0xa3, 0xe4, 0x0c, 0xc7, 0xbb, + 0x0d, 0x9b, 0x7b, 0x33, 0x01, 0x85, 0xe0, 0xe5, 0x2e, 0x5a, 0x85, 0x4c, 0xd3, 0xd2, 0x35, 0x1a, + 0x5a, 0xec, 0x97, 0x85, 0xf9, 0x98, 0xfb, 0xe0, 0x85, 0x0d, 0xae, 0xaf, 0x78, 0xc8, 0x99, 0x7f, + 0x94, 0x20, 0x23, 0xc4, 0xe8, 0x04, 0xa4, 0xda, 0x9a, 0x7b, 0x40, 0xe9, 0xd2, 0xcb, 0x09, 0x59, + 0x52, 0xe8, 0x33, 0x91, 0x3b, 0x6d, 0xcd, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, 0x99, 0xec, 0x6b, 0x13, + 0x6b, 0x35, 0xda, 0xf6, 0x5b, 0xad, 0x16, 0x36, 0x5d, 0x47, 0xec, 0x2b, 0x97, 0xaf, 0x70, 0x31, + 0xba, 0x17, 0x26, 0x5d, 0x5b, 0x33, 0x9a, 0x01, 0xdd, 0x14, 0xd5, 0x95, 0xc5, 0x80, 0xa7, 0x5c, + 0x82, 0x5b, 0x04, 0x6f, 0x0d, 0xbb, 0x9a, 0x7e, 0x80, 0x6b, 0x5d, 0xd0, 0x28, 0xbd, 0x39, 0xbc, + 0x99, 0x2b, 0xac, 0xf2, 0x71, 0x81, 0x9d, 0xfb, 0x9e, 0x04, 0x93, 0xe2, 0x45, 0xa5, 0xe6, 0x39, + 0x6b, 0x13, 0x40, 0x33, 0x4d, 0xcb, 0xf5, 0xbb, 0xab, 0x37, 0x94, 0x7b, 0x70, 0x0b, 0x65, 0x0f, + 0xa4, 0xf8, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x3b, 0x09, 0x39, 0x7e, 0x73, 0x4f, + 0x7f, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, 0x44, 0xe4, 0x8d, 0x06, 0x4d, 0x43, 0x7a, 0x1f, 0x37, 0x0c, + 0x93, 0xdf, 0x27, 0xb2, 0x07, 0x71, 0x4b, 0x99, 0xf2, 0x6e, 0x29, 0x97, 0xaf, 0xc0, 0x94, 0x6e, + 0xb5, 0xc2, 0xe6, 0x2e, 0xcb, 0xa1, 0xd7, 0x6b, 0xe7, 0xb2, 0xf4, 0x2c, 0x74, 0x5b, 0xcc, 0x2f, + 0x27, 0x92, 0x6b, 0x3b, 0xcb, 0x5f, 0x4d, 0xcc, 0xac, 0x31, 0xdc, 0x8e, 0x58, 0xa6, 0x82, 0xeb, + 0x4d, 0xac, 0x13, 0xd3, 0xe1, 0xc7, 0x77, 0xc1, 0xfd, 0x0d, 0xc3, 0x3d, 0xe8, 0xec, 0x2f, 0xe8, + 0x56, 0x6b, 0xb1, 0x61, 0x35, 0xac, 0xee, 0xcf, 0x5d, 0xe4, 0x89, 0x3e, 0xd0, 0xff, 0xf8, 0x4f, + 0x5e, 0x59, 0x4f, 0x3a, 0x13, 0xfb, 0xfb, 0x58, 0x69, 0x0b, 0xa6, 0xb8, 0xb2, 0x4a, 0xef, 0xdc, + 0xd9, 0xab, 0x01, 0x1a, 0x78, 0xef, 0x52, 0xfc, 0xc6, 0xbb, 0xb4, 0x56, 0x2b, 0x93, 0x1c, 0x4a, + 0xc6, 0xd8, 0x0b, 0x44, 0x49, 0x81, 0x9b, 0x02, 0x7c, 0xec, 0x5c, 0x62, 0x3b, 0x86, 0xf1, 0x3b, + 0x9c, 0x71, 0xca, 0xc7, 0x58, 0xe5, 0xd0, 0xd2, 0x0a, 0x8c, 0x1f, 0x87, 0xeb, 0xef, 0x38, 0x57, + 0x1e, 0xfb, 0x49, 0xd6, 0x60, 0x82, 0x92, 0xe8, 0x1d, 0xc7, 0xb5, 0x5a, 0x34, 0xe9, 0x0d, 0xa6, + 0xf9, 0xfb, 0x77, 0xd9, 0x41, 0x29, 0x10, 0xd8, 0x8a, 0x87, 0x2a, 0x95, 0x80, 0xfe, 0xcc, 0x50, + 0xc3, 0x7a, 0x33, 0x86, 0xe1, 0x2d, 0x6e, 0x88, 0xa7, 0x5f, 0x7a, 0x0a, 0xa6, 0xc9, 0xff, 0x34, + 0x27, 0xf9, 0x2d, 0x89, 0xbf, 0x65, 0x2a, 0x7e, 0xef, 0x15, 0x76, 0x16, 0xa7, 0x3c, 0x02, 0x9f, + 0x4d, 0xbe, 0x5d, 0x6c, 0x60, 0xd7, 0xc5, 0xb6, 0xa3, 0x6a, 0xcd, 0x28, 0xf3, 0x7c, 0xaf, 0xe9, + 0xc5, 0x2f, 0xbc, 0x1f, 0xdc, 0xc5, 0x35, 0x86, 0x2c, 0x37, 0x9b, 0xa5, 0x3d, 0xb8, 0x39, 0x22, + 0x2a, 0x86, 0xe0, 0x7c, 0x8d, 0x73, 0x4e, 0xf7, 0x44, 0x06, 0xa1, 0xdd, 0x01, 0x21, 0xf7, 0xf6, + 0x72, 0x08, 0xce, 0xdf, 0xe3, 0x9c, 0x88, 0x63, 0xc5, 0x96, 0x12, 0xc6, 0x27, 0x60, 0xf2, 0x1a, + 0xb6, 0xf7, 0x2d, 0x87, 0x5f, 0x8d, 0x0c, 0x41, 0xf7, 0x3a, 0xa7, 0x9b, 0xe0, 0x40, 0x7a, 0x57, + 0x42, 0xb8, 0x1e, 0x81, 0x4c, 0x5d, 0xd3, 0xf1, 0x10, 0x14, 0x5f, 0xe4, 0x14, 0x63, 0x44, 0x9f, + 0x40, 0xcb, 0x90, 0x6f, 0x58, 0xbc, 0x2c, 0xc5, 0xc3, 0xdf, 0xe0, 0xf0, 0x9c, 0xc0, 0x70, 0x8a, + 0xb6, 0xd5, 0xee, 0x34, 0x49, 0xcd, 0x8a, 0xa7, 0xf8, 0x7d, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x18, + 0x6e, 0xfd, 0x03, 0x41, 0xe1, 0xf8, 0xfc, 0xf9, 0x38, 0xe4, 0x2c, 0xb3, 0x79, 0x68, 0x99, 0xc3, + 0x18, 0xf1, 0x25, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x42, 0x76, 0xd8, 0x8d, 0xf8, 0xc3, 0xf7, + 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x06, 0x13, 0x22, 0x41, 0x19, 0x96, 0x39, 0x04, 0xc5, 0x1f, 0x71, + 0x8a, 0x82, 0x0f, 0xc6, 0x97, 0xe1, 0x62, 0xc7, 0x6d, 0xe0, 0x61, 0x48, 0xde, 0x14, 0xcb, 0xe0, + 0x10, 0xee, 0xca, 0x7d, 0x6c, 0xea, 0x07, 0xc3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, + 0x0a, 0x8c, 0xb7, 0x34, 0xdb, 0x39, 0xd0, 0x9a, 0x43, 0x6d, 0xc7, 0x1f, 0x73, 0x8e, 0xbc, 0x07, + 0xe2, 0x1e, 0xe9, 0x98, 0xc7, 0xa1, 0xf9, 0xaa, 0xf0, 0x88, 0x0f, 0xc6, 0x8f, 0x9e, 0xe3, 0xd2, + 0x0b, 0xa8, 0xe3, 0xb0, 0x7d, 0x4d, 0x1c, 0x3d, 0x86, 0xdd, 0xf4, 0x33, 0x5e, 0x84, 0xac, 0x63, + 0xbc, 0x3c, 0x14, 0xcd, 0x9f, 0x88, 0x9d, 0xa6, 0x00, 0x02, 0x7e, 0x06, 0x6e, 0x89, 0x2c, 0x13, + 0x43, 0x90, 0xfd, 0x29, 0x27, 0x3b, 0x11, 0x51, 0x2a, 0x78, 0x4a, 0x38, 0x2e, 0xe5, 0x9f, 0x89, + 0x94, 0x80, 0x43, 0x5c, 0x3b, 0xe4, 0x45, 0xc1, 0xd1, 0xea, 0xc7, 0xf3, 0xda, 0x9f, 0x0b, 0xaf, + 0x31, 0x6c, 0xc0, 0x6b, 0xbb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5f, 0xbf, 0x2e, 0x12, 0x2b, 0x43, + 0xef, 0x05, 0x77, 0xf7, 0xff, 0xc1, 0x8c, 0xe7, 0x4e, 0xd1, 0x91, 0x3a, 0x6a, 0x4b, 0x6b, 0x0f, + 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xd7, 0xd2, 0x3a, 0x9b, 0x5a, 0x9b, 0x90, 0x5f, 0x81, + 0xa2, 0x20, 0xef, 0x98, 0x36, 0xd6, 0xad, 0x86, 0x69, 0xbc, 0x8c, 0x6b, 0x43, 0x50, 0xff, 0x45, + 0x68, 0xab, 0xf6, 0x7c, 0x70, 0xc2, 0xbc, 0x0e, 0xb2, 0xd7, 0xab, 0xa8, 0x46, 0xab, 0x6d, 0xd9, + 0x6e, 0x0c, 0xe3, 0x5f, 0x8a, 0x9d, 0xf2, 0x70, 0xeb, 0x14, 0x56, 0xaa, 0x40, 0x81, 0x3e, 0x0e, + 0x1b, 0x92, 0x7f, 0xc5, 0x89, 0xc6, 0xbb, 0x28, 0x9e, 0x38, 0x74, 0xab, 0xd5, 0xd6, 0xec, 0x61, + 0xf2, 0xdf, 0x5f, 0x8b, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0xb8, 0x87, 0x6d, 0x4c, 0xaa, 0xfd, 0x10, + 0x0c, 0xdf, 0x14, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x86, 0xa0, 0xf8, 0x1b, 0x41, 0x21, + 0x30, 0x84, 0xe2, 0x73, 0xdd, 0x42, 0x6b, 0xe3, 0x86, 0xe1, 0xb8, 0x36, 0xeb, 0x83, 0x07, 0x53, + 0x7d, 0xeb, 0xfd, 0x60, 0x13, 0xa6, 0xf8, 0xa0, 0xa5, 0x27, 0x60, 0x22, 0xd4, 0x62, 0xa0, 0xb8, + 0x6f, 0x16, 0x8a, 0x3f, 0xff, 0x21, 0x4f, 0x46, 0xc1, 0x0e, 0xa3, 0xb4, 0x41, 0xf6, 0x3d, 0xd8, + 0x07, 0xc4, 0x93, 0xbd, 0xf2, 0xa1, 0xb7, 0xf5, 0x81, 0x36, 0xa0, 0x74, 0x09, 0xc6, 0x03, 0x3d, + 0x40, 0x3c, 0xd5, 0x2f, 0x70, 0xaa, 0xbc, 0xbf, 0x05, 0x28, 0x9d, 0x83, 0x14, 0xa9, 0xe7, 0xf1, + 0xf0, 0x5f, 0xe4, 0x70, 0xaa, 0x5e, 0x7a, 0x14, 0x32, 0xa2, 0x8e, 0xc7, 0x43, 0x7f, 0x89, 0x43, + 0x3d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0f, 0xff, 0x65, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xde, 0x85, + 0xdf, 0xfe, 0x95, 0x14, 0xcf, 0xc3, 0xc2, 0x77, 0x17, 0x61, 0x8c, 0x17, 0xef, 0x78, 0xf4, 0xe7, + 0xf9, 0xe4, 0x02, 0x51, 0x7a, 0x18, 0xd2, 0x43, 0x3a, 0xfc, 0x57, 0x39, 0x94, 0xe9, 0x97, 0x56, + 0x20, 0xe7, 0x2b, 0xd8, 0xf1, 0xf0, 0x5f, 0xe3, 0x70, 0x3f, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x3c, + 0xc1, 0xaf, 0x0b, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, 0x78, 0xf4, 0x6f, 0x08, 0xaf, 0x0b, + 0x48, 0xe9, 0x71, 0xc8, 0x7a, 0xf9, 0x37, 0x1e, 0xff, 0x9b, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0xf8, + 0xf2, 0x7f, 0x3c, 0xc5, 0x6f, 0x09, 0x0f, 0xf8, 0x50, 0xe4, 0x18, 0x85, 0x6b, 0x7a, 0x3c, 0xd3, + 0x6f, 0x8b, 0x63, 0x14, 0x2a, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa7, 0xf8, 0x1d, 0xb1, 0x9b, + 0x54, 0x9f, 0x98, 0x11, 0x2e, 0x92, 0xf1, 0x1c, 0xbf, 0x2b, 0xcc, 0x08, 0xd5, 0xc8, 0xd2, 0x0e, + 0xa0, 0xde, 0x02, 0x19, 0xcf, 0xf7, 0x2a, 0xe7, 0x9b, 0xec, 0xa9, 0x8f, 0xa5, 0xa7, 0xe1, 0x44, + 0x74, 0x71, 0x8c, 0x67, 0xfd, 0xc2, 0x87, 0xa1, 0xd7, 0x19, 0x7f, 0x6d, 0x2c, 0xed, 0x76, 0xb3, + 0xac, 0xbf, 0x30, 0xc6, 0xd3, 0xbe, 0xf6, 0x61, 0x30, 0xd1, 0xfa, 0xeb, 0x62, 0xa9, 0x0c, 0xd0, + 0xad, 0x49, 0xf1, 0x5c, 0xaf, 0x73, 0x2e, 0x1f, 0x88, 0x1c, 0x0d, 0x5e, 0x92, 0xe2, 0xf1, 0x5f, + 0x14, 0x47, 0x83, 0x23, 0xc8, 0xd1, 0x10, 0xd5, 0x28, 0x1e, 0xfd, 0x86, 0x38, 0x1a, 0x02, 0x52, + 0xba, 0x08, 0x19, 0xb3, 0xd3, 0x6c, 0x92, 0xd8, 0x42, 0x83, 0x3f, 0x23, 0x2a, 0xfe, 0xf3, 0x47, + 0x1c, 0x2c, 0x00, 0xa5, 0x73, 0x90, 0xc6, 0xad, 0x7d, 0x5c, 0x8b, 0x43, 0xfe, 0xcb, 0x47, 0x22, + 0x9f, 0x10, 0xed, 0xd2, 0xe3, 0x00, 0xec, 0x65, 0x9a, 0xfe, 0x4a, 0x14, 0x83, 0xfd, 0xd7, 0x8f, + 0xf8, 0x17, 0x0a, 0x5d, 0x48, 0x97, 0x80, 0x7d, 0xef, 0x30, 0x98, 0xe0, 0xfd, 0x20, 0x01, 0x7d, + 0x01, 0x7f, 0x04, 0xc6, 0x9e, 0x77, 0x2c, 0xd3, 0xd5, 0x1a, 0x71, 0xe8, 0x7f, 0xe3, 0x68, 0xa1, + 0x4f, 0x1c, 0xd6, 0xb2, 0x6c, 0xec, 0x6a, 0x0d, 0x27, 0x0e, 0xfb, 0xef, 0x1c, 0xeb, 0x01, 0x08, + 0x58, 0xd7, 0x1c, 0x77, 0x98, 0x75, 0xff, 0x87, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0x7f, 0x15, + 0x1f, 0xc6, 0x61, 0x3f, 0x10, 0x46, 0x73, 0xfd, 0xd2, 0xa3, 0x90, 0x25, 0xff, 0xb2, 0xaf, 0x76, + 0x62, 0xc0, 0xff, 0xc9, 0xc1, 0x5d, 0x04, 0x99, 0xd9, 0x71, 0x6b, 0xae, 0x11, 0xef, 0xec, 0xff, + 0xe2, 0x3b, 0x2d, 0xf4, 0x4b, 0x65, 0xc8, 0x39, 0x6e, 0xad, 0xd6, 0xe1, 0x1d, 0x4d, 0x0c, 0xfc, + 0xc7, 0x1f, 0x79, 0x2f, 0xb9, 0x1e, 0x66, 0xf9, 0x74, 0xf4, 0x65, 0x1d, 0xac, 0x59, 0x6b, 0x16, + 0xbb, 0xa6, 0x83, 0xff, 0xb9, 0x1f, 0xee, 0xd1, 0xad, 0xd6, 0xbe, 0xe5, 0x2c, 0xb2, 0x84, 0xe2, + 0x4b, 0x46, 0x8b, 0x2d, 0xad, 0xed, 0x50, 0xd4, 0x12, 0xbf, 0x71, 0xcb, 0xf1, 0x27, 0x32, 0x30, + 0x73, 0xbc, 0xdb, 0xba, 0xb9, 0xdb, 0x60, 0xfc, 0x52, 0xd3, 0xd2, 0x5c, 0xc3, 0x6c, 0xec, 0x58, + 0x86, 0xe9, 0xa2, 0x3c, 0x48, 0x75, 0xfa, 0x53, 0x93, 0xa4, 0x48, 0xf5, 0xb9, 0x7f, 0x48, 0x43, + 0x96, 0x5d, 0xf4, 0x6c, 0x6a, 0x6d, 0xf4, 0x73, 0x90, 0xdf, 0xe2, 0x67, 0xe5, 0xc1, 0xa5, 0x0b, + 0x8e, 0x77, 0xab, 0xec, 0x9b, 0x7f, 0xc1, 0xd3, 0x5e, 0xf0, 0xab, 0xd2, 0x9f, 0x96, 0x97, 0x1f, + 0xf8, 0xc1, 0xdb, 0x27, 0xef, 0xeb, 0x6b, 0x1f, 0x29, 0x8e, 0x8b, 0x2c, 0xa8, 0x17, 0xf6, 0x0c, + 0xd3, 0x7d, 0x70, 0xe9, 0x82, 0x12, 0x98, 0x0f, 0x5d, 0x83, 0x0c, 0x1f, 0x70, 0xf8, 0xaf, 0x0d, + 0x77, 0xf4, 0x99, 0x5b, 0xa8, 0xb1, 0x79, 0xcf, 0xbe, 0xf5, 0xf6, 0xc9, 0x91, 0x63, 0xcf, 0xed, + 0xcd, 0x85, 0x5e, 0x80, 0x9c, 0xb0, 0x63, 0xbd, 0xe6, 0xf0, 0x8f, 0x8a, 0xef, 0x8e, 0x59, 0xf6, + 0x7a, 0x8d, 0xcf, 0x7e, 0xd7, 0x0f, 0xde, 0x3e, 0x39, 0x37, 0x70, 0xe6, 0x85, 0xbd, 0x8e, 0x51, + 0x53, 0xfc, 0x73, 0xa0, 0xe7, 0x20, 0x49, 0xa6, 0x62, 0x9f, 0x1f, 0x9f, 0xec, 0x33, 0x95, 0x37, + 0xc5, 0x19, 0xbe, 0xc0, 0x61, 0xa6, 0x21, 0xbc, 0x33, 0x8f, 0xc3, 0x64, 0xcf, 0xf6, 0x20, 0x19, + 0x92, 0x57, 0xf1, 0x21, 0xff, 0xe2, 0x88, 0xfc, 0x8b, 0xa6, 0xbb, 0x5f, 0xd4, 0x49, 0xf3, 0x79, + 0xfe, 0x99, 0x5c, 0x29, 0x71, 0x41, 0x9a, 0xb9, 0x08, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x18, + 0xc8, 0x61, 0x2f, 0x1d, 0x0b, 0x7f, 0x1e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x7d, 0x04, 0x63, 0xe5, + 0x66, 0x73, 0x53, 0x6b, 0x3b, 0xe8, 0x19, 0x98, 0x64, 0x2d, 0xfc, 0xae, 0xb5, 0x4a, 0x7f, 0xdf, + 0xd9, 0xd4, 0xda, 0x3c, 0xa0, 0xef, 0x0d, 0xb8, 0x9b, 0x03, 0x16, 0x7a, 0xb4, 0xe9, 0xfc, 0x4a, + 0x2f, 0x0b, 0x7a, 0x0a, 0x64, 0x21, 0xa4, 0x67, 0x8b, 0x30, 0xb3, 0x70, 0x3d, 0x33, 0x90, 0x59, + 0x28, 0x33, 0xe2, 0x1e, 0x0e, 0xf4, 0x18, 0x64, 0xd6, 0x4d, 0xf7, 0xa1, 0x25, 0xc2, 0xc7, 0x62, + 0x70, 0x2e, 0x92, 0x4f, 0x28, 0x31, 0x1e, 0x0f, 0xc3, 0xf1, 0xe7, 0xcf, 0x12, 0x7c, 0x6a, 0x30, + 0x9e, 0x2a, 0x75, 0xf1, 0xf4, 0x11, 0x95, 0x21, 0x4b, 0xf6, 0x9c, 0x19, 0xc0, 0xbe, 0x67, 0xbf, + 0x3d, 0x92, 0xc0, 0xd3, 0x62, 0x0c, 0x5d, 0x94, 0xa0, 0x60, 0x36, 0x8c, 0xc6, 0x50, 0xf8, 0x8c, + 0xe8, 0xa2, 0x08, 0x45, 0xd5, 0xb3, 0x62, 0x6c, 0x00, 0x45, 0x35, 0x64, 0x45, 0xd5, 0x6f, 0x45, + 0xd5, 0xb3, 0x22, 0x13, 0x43, 0xe1, 0xb7, 0xc2, 0x7b, 0x46, 0xab, 0x00, 0x97, 0x8c, 0x97, 0x70, + 0x8d, 0x99, 0x91, 0x8d, 0x48, 0x46, 0x82, 0xa3, 0xab, 0xc6, 0x48, 0x7c, 0x38, 0xb4, 0x06, 0xb9, + 0x6a, 0xbd, 0x4b, 0x03, 0xfc, 0x73, 0xfe, 0x48, 0x53, 0xea, 0x21, 0x1e, 0x3f, 0xd2, 0x33, 0x87, + 0x2d, 0x29, 0x17, 0x67, 0x8e, 0x6f, 0x4d, 0x3e, 0x5c, 0xd7, 0x1c, 0x46, 0x93, 0x8f, 0x35, 0xc7, + 0xc7, 0xe3, 0x47, 0xa2, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x44, 0xb3, 0x38, 0x4e, 0x49, 0x4e, 0x47, + 0x92, 0x70, 0x1d, 0x46, 0x20, 0x10, 0x74, 0x77, 0x68, 0xe8, 0x13, 0x78, 0x61, 0xd0, 0xee, 0x08, + 0x2d, 0xb1, 0x3b, 0xe2, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x4c, 0xda, 0xe5, 0xe2, 0xc4, 0x10, + 0x27, 0x50, 0x28, 0x87, 0x4e, 0xa0, 0x10, 0xa3, 0x2a, 0x4c, 0x08, 0x59, 0xc5, 0xec, 0x90, 0x1c, + 0x5c, 0x94, 0xf9, 0xb7, 0xc6, 0x83, 0x68, 0xb9, 0x2e, 0x63, 0x0d, 0x33, 0xa0, 0x1d, 0x28, 0x08, + 0xd1, 0xa6, 0x43, 0x17, 0x3d, 0x19, 0x51, 0x57, 0xc3, 0x9c, 0x4c, 0x95, 0x51, 0x86, 0xf0, 0x33, + 0xab, 0x70, 0x22, 0x3a, 0x5b, 0xc5, 0x65, 0x4b, 0xc9, 0x9f, 0x65, 0x57, 0xe0, 0xa6, 0xc8, 0xcc, + 0x14, 0x47, 0x92, 0x08, 0xd5, 0x89, 0x40, 0x3a, 0xf2, 0x83, 0xd3, 0x11, 0xe0, 0x74, 0x2f, 0xb8, + 0x1b, 0x64, 0x7e, 0x70, 0x32, 0x02, 0x9c, 0xf4, 0x83, 0x3f, 0x0b, 0x85, 0x60, 0x1e, 0xf2, 0xa3, + 0xc7, 0x23, 0xd0, 0xe3, 0x11, 0xe8, 0xe8, 0xb9, 0x53, 0x11, 0xe8, 0x54, 0x08, 0x5d, 0xed, 0x3b, + 0xf7, 0x64, 0x04, 0x7a, 0x32, 0x02, 0x1d, 0x3d, 0x37, 0x8a, 0x40, 0x23, 0x3f, 0xfa, 0x51, 0x98, + 0x08, 0xa5, 0x1c, 0x3f, 0x7c, 0x2c, 0x02, 0x3e, 0x16, 0xaa, 0xcd, 0xe1, 0x54, 0xe3, 0xc7, 0x4f, + 0x44, 0xe0, 0x27, 0xa2, 0xa6, 0x8f, 0xb6, 0x7e, 0x34, 0x02, 0x3e, 0x1a, 0x39, 0x7d, 0x34, 0x5e, + 0x8e, 0xc0, 0xcb, 0x7e, 0x7c, 0x09, 0xf2, 0xfe, 0xac, 0xe2, 0xc7, 0x66, 0x22, 0xb0, 0x99, 0xb0, + 0xdf, 0x03, 0x29, 0x25, 0x2e, 0xd2, 0xb3, 0x7d, 0x8e, 0x4b, 0x20, 0x8d, 0x1c, 0xab, 0xb3, 0xb9, + 0x02, 0xd3, 0x51, 0x49, 0x23, 0x82, 0xe3, 0x8c, 0x9f, 0xa3, 0xb0, 0x34, 0x1d, 0x48, 0x16, 0x14, + 0xd7, 0x69, 0xf9, 0x99, 0x9f, 0x83, 0xa9, 0x88, 0xd4, 0x11, 0x41, 0xfc, 0x80, 0x9f, 0x38, 0xb7, + 0x34, 0x13, 0x20, 0x0e, 0xbc, 0x2b, 0xf8, 0x5b, 0xab, 0x1f, 0x4e, 0x41, 0x81, 0xa7, 0xa8, 0x6d, + 0xbb, 0x86, 0x6d, 0x5c, 0x43, 0xff, 0xbf, 0x7f, 0x87, 0xb5, 0x14, 0x95, 0xda, 0x38, 0xee, 0x18, + 0x8d, 0xd6, 0x73, 0x7d, 0x1b, 0xad, 0x07, 0x87, 0x99, 0x20, 0xae, 0xdf, 0xaa, 0xf4, 0xf4, 0x5b, + 0xf7, 0x0c, 0xa2, 0xed, 0xd7, 0x76, 0x55, 0x7a, 0xda, 0xae, 0x38, 0x9a, 0xc8, 0xee, 0xeb, 0x72, + 0x6f, 0xf7, 0x75, 0x66, 0x10, 0x4f, 0xff, 0x26, 0xec, 0x72, 0x6f, 0x13, 0x16, 0xcb, 0x14, 0xdd, + 0x8b, 0x5d, 0xee, 0xed, 0xc5, 0x06, 0x32, 0xf5, 0x6f, 0xc9, 0x2e, 0xf7, 0xb6, 0x64, 0xb1, 0x4c, + 0xd1, 0x9d, 0xd9, 0x93, 0x11, 0x9d, 0xd9, 0xbd, 0x83, 0xa8, 0x06, 0x35, 0x68, 0x5b, 0x51, 0x0d, + 0xda, 0x7d, 0x03, 0x0d, 0x1b, 0xd8, 0xa7, 0x3d, 0x19, 0xd1, 0xa7, 0xc5, 0x1b, 0xd7, 0xa7, 0x5d, + 0xdb, 0x8a, 0x6a, 0xd7, 0x86, 0x30, 0xae, 0x5f, 0xd7, 0xb6, 0x1c, 0xee, 0xda, 0xe6, 0x07, 0x71, + 0x45, 0x37, 0x6f, 0x97, 0x7b, 0x9b, 0xb7, 0x33, 0xf1, 0x67, 0x31, 0xaa, 0x87, 0x7b, 0xae, 0x6f, + 0x0f, 0x37, 0xd4, 0xe1, 0x8e, 0x6b, 0xe5, 0x9e, 0xed, 0xd7, 0xca, 0x3d, 0x30, 0x0c, 0xfb, 0xe0, + 0x8e, 0xee, 0xe9, 0x3e, 0x1d, 0xdd, 0xe2, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, + 0x36, 0x76, 0x9f, 0x36, 0x76, 0xff, 0x37, 0x1a, 0xbb, 0x52, 0xea, 0xd5, 0x2f, 0x9d, 0x94, 0xce, + 0x9c, 0x86, 0x31, 0x3e, 0x35, 0x1a, 0x85, 0xc4, 0x66, 0x59, 0x1e, 0xa1, 0x7f, 0x97, 0x65, 0x89, + 0xfe, 0x5d, 0x91, 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x98, 0x1d, 0xf9, 0xee, 0x8d, 0xd9, 0x91, 0xef, + 0xdf, 0x98, 0x1d, 0x79, 0xe7, 0xc6, 0xac, 0xf4, 0xde, 0x8d, 0x59, 0xe9, 0x83, 0x1b, 0xb3, 0xd2, + 0x4f, 0x6e, 0xcc, 0x4a, 0xd7, 0x8f, 0x66, 0xa5, 0xaf, 0x1c, 0xcd, 0x4a, 0x5f, 0x3f, 0x9a, 0x95, + 0xbe, 0x75, 0x34, 0x2b, 0x7d, 0xfb, 0x68, 0x56, 0x7a, 0xeb, 0x68, 0x76, 0xe4, 0xbb, 0x47, 0xb3, + 0x23, 0xef, 0x1c, 0xcd, 0x4a, 0xef, 0x1d, 0xcd, 0x8e, 0x7c, 0x70, 0x34, 0x2b, 0xfd, 0xe4, 0x68, + 0x76, 0xe4, 0xfa, 0x8f, 0x66, 0xa5, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x94, 0x59, 0xbb, 0xb2, + 0x5e, 0x45, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -517,6 +568,130 @@ func (this *FloatingPoint) Equal(that interface{}) bool { } return true } +func (this *CustomMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *CustomMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *CustomMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) + } + } + if len(this.Ids) != len(that1.Ids) { + return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *CustomMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*CustomMap) + if !ok { + that2, ok := that.(CustomMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Nullable128S) != len(that1.Nullable128S) { + return false + } + for i := range this.Nullable128S { + if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable + return false + } + } + if len(this.Uint128S) != len(that1.Uint128S) { + return false + } + for i := range this.Uint128S { + if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable + return false + } + } + if len(this.NullableIds) != len(that1.NullableIds) { + return false + } + for i := range this.NullableIds { + if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable + return false + } + } + if len(this.Ids) != len(that1.Ids) { + return false + } + for i := range this.Ids { + if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *AllMaps) VerboseEqual(that interface{}) error { if that == nil { if this == nil { @@ -1205,6 +1380,47 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { return this } +type CustomMapFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 + GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 + GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid + GetIds() map[string]github_com_gogo_protobuf_test.Uuid +} + +func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { + return NewCustomMapFromFace(this) +} + +func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { + return this.Nullable128S +} + +func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { + return this.Uint128S +} + +func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { + return this.NullableIds +} + +func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { + return this.Ids +} + +func NewCustomMapFromFace(that CustomMapFace) *CustomMap { + this := &CustomMap{} + this.Nullable128S = that.GetNullable128S() + this.Uint128S = that.GetUint128S() + this.NullableIds = that.GetNullableIds() + this.Ids = that.GetIds() + return this +} + type AllMapsFace interface { Proto() github_com_gogo_protobuf_proto.Message GetStringToDoubleMap() map[string]float64 @@ -1458,6 +1674,70 @@ func (this *FloatingPoint) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *CustomMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&proto2_maps.CustomMap{") + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + if this.Nullable128S != nil { + s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") + } + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + if this.Uint128S != nil { + s = append(s, "Uint128S: "+mapStringForUint128S+",\n") + } + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + if this.NullableIds != nil { + s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") + } + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) + } + mapStringForIds += "}" + if this.Ids != nil { + s = append(s, "Ids: "+mapStringForIds+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *AllMaps) GoString() string { if this == nil { return "nil" @@ -1932,23 +2212,6 @@ func valueToGoStringMapsproto2(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringMapsproto2(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { this := &FloatingPoint{} if r.Intn(10) != 0 { @@ -1964,166 +2227,202 @@ func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { return this } -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} +func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { + this := &CustomMap{} if r.Intn(10) != 0 { v2 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) + this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) for i := 0; i < v2; i++ { - v3 := randStringMapsproto2(r) - this.StringToDoubleMap[v3] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v3] *= -1 - } + this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) + } + } + if r.Intn(10) != 0 { + v3 := r.Intn(10) + this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + for i := 0; i < v3; i++ { + this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) } } if r.Intn(10) != 0 { v4 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) + this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) for i := 0; i < v4; i++ { - v5 := randStringMapsproto2(r) - this.StringToFloatMap[v5] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v5] *= -1 - } + this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(10) + this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + for i := 0; i < v5; i++ { + this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) } } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) + } + return this +} + +func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { + this := &AllMaps{} if r.Intn(10) != 0 { v6 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v6; i++ { - v7 := int32(r.Int31()) - this.Int32Map[v7] = int32(r.Int31()) + v7 := randStringMapsproto2(r) + this.StringToDoubleMap[v7] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v7] *= -1 + this.StringToDoubleMap[v7] *= -1 } } } if r.Intn(10) != 0 { v8 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v8; i++ { - v9 := int64(r.Int63()) - this.Int64Map[v9] = int64(r.Int63()) + v9 := randStringMapsproto2(r) + this.StringToFloatMap[v9] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v9] *= -1 + this.StringToFloatMap[v9] *= -1 } } } if r.Intn(10) != 0 { v10 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v10; i++ { - v11 := uint32(r.Uint32()) - this.Uint32Map[v11] = uint32(r.Uint32()) + v11 := int32(r.Int31()) + this.Int32Map[v11] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v11] *= -1 + } } } if r.Intn(10) != 0 { v12 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v12; i++ { - v13 := uint64(uint64(r.Uint32())) - this.Uint64Map[v13] = uint64(uint64(r.Uint32())) + v13 := int64(r.Int63()) + this.Int64Map[v13] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v13] *= -1 + } } } if r.Intn(10) != 0 { v14 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v14; i++ { - v15 := int32(r.Int31()) - this.Sint32Map[v15] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v15] *= -1 - } + v15 := uint32(r.Uint32()) + this.Uint32Map[v15] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v16 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v16; i++ { - v17 := int64(r.Int63()) - this.Sint64Map[v17] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v17] *= -1 - } + v17 := uint64(uint64(r.Uint32())) + this.Uint64Map[v17] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v18 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v18; i++ { - v19 := uint32(r.Uint32()) - this.Fixed32Map[v19] = uint32(r.Uint32()) + v19 := int32(r.Int31()) + this.Sint32Map[v19] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v19] *= -1 + } } } if r.Intn(10) != 0 { v20 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v20; i++ { - v21 := int32(r.Int31()) - this.Sfixed32Map[v21] = int32(r.Int31()) + v21 := int64(r.Int63()) + this.Sint64Map[v21] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v21] *= -1 + this.Sint64Map[v21] *= -1 } } } if r.Intn(10) != 0 { v22 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v22; i++ { - v23 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v23] = uint64(uint64(r.Uint32())) + v23 := uint32(r.Uint32()) + this.Fixed32Map[v23] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v24 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v24; i++ { - v25 := int64(r.Int63()) - this.Sfixed64Map[v25] = int64(r.Int63()) + v25 := int32(r.Int31()) + this.Sfixed32Map[v25] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v25] *= -1 + this.Sfixed32Map[v25] *= -1 } } } if r.Intn(10) != 0 { v26 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v26; i++ { - v27 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v27] = bool(bool(r.Intn(2) == 0)) + v27 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v28 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v28; i++ { + v29 := int64(r.Int63()) + this.Sfixed64Map[v29] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v29] *= -1 + } + } + } + if r.Intn(10) != 0 { + v30 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v30; i++ { + v31 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v32 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v32; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v29 := r.Intn(10) + v33 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v29; i++ { - v30 := r.Intn(100) - v31 := randStringMapsproto2(r) - this.StringToBytesMap[v31] = make([]byte, v30) - for i := 0; i < v30; i++ { - this.StringToBytesMap[v31][i] = byte(r.Intn(256)) + for i := 0; i < v33; i++ { + v34 := r.Intn(100) + v35 := randStringMapsproto2(r) + this.StringToBytesMap[v35] = make([]byte, v34) + for i := 0; i < v34; i++ { + this.StringToBytesMap[v35][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v32 := r.Intn(10) + v36 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v32; i++ { + for i := 0; i < v36; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v33 := r.Intn(10) + v37 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v33; i++ { + for i := 0; i < v37; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2135,164 +2434,164 @@ func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v34; i++ { - v35 := randStringMapsproto2(r) - this.StringToDoubleMap[v35] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v35] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v36; i++ { - v37 := randStringMapsproto2(r) - this.StringToFloatMap[v37] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v37] *= -1 - } - } - } if r.Intn(10) != 0 { v38 := r.Intn(10) - this.Int32Map = make(map[int32]int32) + this.StringToDoubleMap = make(map[string]float64) for i := 0; i < v38; i++ { - v39 := int32(r.Int31()) - this.Int32Map[v39] = int32(r.Int31()) + v39 := randStringMapsproto2(r) + this.StringToDoubleMap[v39] = float64(r.Float64()) if r.Intn(2) == 0 { - this.Int32Map[v39] *= -1 + this.StringToDoubleMap[v39] *= -1 } } } if r.Intn(10) != 0 { v40 := r.Intn(10) - this.Int64Map = make(map[int64]int64) + this.StringToFloatMap = make(map[string]float32) for i := 0; i < v40; i++ { - v41 := int64(r.Int63()) - this.Int64Map[v41] = int64(r.Int63()) + v41 := randStringMapsproto2(r) + this.StringToFloatMap[v41] = float32(r.Float32()) if r.Intn(2) == 0 { - this.Int64Map[v41] *= -1 + this.StringToFloatMap[v41] *= -1 } } } if r.Intn(10) != 0 { v42 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) + this.Int32Map = make(map[int32]int32) for i := 0; i < v42; i++ { - v43 := uint32(r.Uint32()) - this.Uint32Map[v43] = uint32(r.Uint32()) + v43 := int32(r.Int31()) + this.Int32Map[v43] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Int32Map[v43] *= -1 + } } } if r.Intn(10) != 0 { v44 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) + this.Int64Map = make(map[int64]int64) for i := 0; i < v44; i++ { - v45 := uint64(uint64(r.Uint32())) - this.Uint64Map[v45] = uint64(uint64(r.Uint32())) + v45 := int64(r.Int63()) + this.Int64Map[v45] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Int64Map[v45] *= -1 + } } } if r.Intn(10) != 0 { v46 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) + this.Uint32Map = make(map[uint32]uint32) for i := 0; i < v46; i++ { - v47 := int32(r.Int31()) - this.Sint32Map[v47] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v47] *= -1 - } + v47 := uint32(r.Uint32()) + this.Uint32Map[v47] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v48 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) + this.Uint64Map = make(map[uint64]uint64) for i := 0; i < v48; i++ { - v49 := int64(r.Int63()) - this.Sint64Map[v49] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v49] *= -1 - } + v49 := uint64(uint64(r.Uint32())) + this.Uint64Map[v49] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v50 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) + this.Sint32Map = make(map[int32]int32) for i := 0; i < v50; i++ { - v51 := uint32(r.Uint32()) - this.Fixed32Map[v51] = uint32(r.Uint32()) + v51 := int32(r.Int31()) + this.Sint32Map[v51] = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Sint32Map[v51] *= -1 + } } } if r.Intn(10) != 0 { v52 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) + this.Sint64Map = make(map[int64]int64) for i := 0; i < v52; i++ { - v53 := int32(r.Int31()) - this.Sfixed32Map[v53] = int32(r.Int31()) + v53 := int64(r.Int63()) + this.Sint64Map[v53] = int64(r.Int63()) if r.Intn(2) == 0 { - this.Sfixed32Map[v53] *= -1 + this.Sint64Map[v53] *= -1 } } } if r.Intn(10) != 0 { v54 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) + this.Fixed32Map = make(map[uint32]uint32) for i := 0; i < v54; i++ { - v55 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v55] = uint64(uint64(r.Uint32())) + v55 := uint32(r.Uint32()) + this.Fixed32Map[v55] = uint32(r.Uint32()) } } if r.Intn(10) != 0 { v56 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) + this.Sfixed32Map = make(map[int32]int32) for i := 0; i < v56; i++ { - v57 := int64(r.Int63()) - this.Sfixed64Map[v57] = int64(r.Int63()) + v57 := int32(r.Int31()) + this.Sfixed32Map[v57] = int32(r.Int31()) if r.Intn(2) == 0 { - this.Sfixed64Map[v57] *= -1 + this.Sfixed32Map[v57] *= -1 } } } if r.Intn(10) != 0 { v58 := r.Intn(10) - this.BoolMap = make(map[bool]bool) + this.Fixed64Map = make(map[uint64]uint64) for i := 0; i < v58; i++ { - v59 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v59] = bool(bool(r.Intn(2) == 0)) + v59 := uint64(uint64(r.Uint32())) + this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) } } if r.Intn(10) != 0 { v60 := r.Intn(10) - this.StringMap = make(map[string]string) + this.Sfixed64Map = make(map[int64]int64) for i := 0; i < v60; i++ { + v61 := int64(r.Int63()) + this.Sfixed64Map[v61] = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Sfixed64Map[v61] *= -1 + } + } + } + if r.Intn(10) != 0 { + v62 := r.Intn(10) + this.BoolMap = make(map[bool]bool) + for i := 0; i < v62; i++ { + v63 := bool(bool(r.Intn(2) == 0)) + this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) + } + } + if r.Intn(10) != 0 { + v64 := r.Intn(10) + this.StringMap = make(map[string]string) + for i := 0; i < v64; i++ { this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) } } if r.Intn(10) != 0 { - v61 := r.Intn(10) + v65 := r.Intn(10) this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v61; i++ { - v62 := r.Intn(100) - v63 := randStringMapsproto2(r) - this.StringToBytesMap[v63] = make([]byte, v62) - for i := 0; i < v62; i++ { - this.StringToBytesMap[v63][i] = byte(r.Intn(256)) + for i := 0; i < v65; i++ { + v66 := r.Intn(100) + v67 := randStringMapsproto2(r) + this.StringToBytesMap[v67] = make([]byte, v66) + for i := 0; i < v66; i++ { + this.StringToBytesMap[v67][i] = byte(r.Intn(256)) } } } if r.Intn(10) != 0 { - v64 := r.Intn(10) + v68 := r.Intn(10) this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v64; i++ { + for i := 0; i < v68; i++ { this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) } } if r.Intn(10) != 0 { - v65 := r.Intn(10) + v69 := r.Intn(10) this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v65; i++ { + for i := 0; i < v69; i++ { this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) } } @@ -2321,14 +2620,14 @@ func randUTF8RuneMapsproto2(r randyMapsproto2) rune { return rune(ru + 61) } func randStringMapsproto2(r randyMapsproto2) string { - v66 := r.Intn(100) - tmps := make([]rune, v66) - for i := 0; i < v66; i++ { + v70 := r.Intn(100) + tmps := make([]rune, v70) + for i := 0; i < v70; i++ { tmps[i] = randUTF8RuneMapsproto2(r) } return string(tmps) } -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []byte) { +func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2336,43 +2635,43 @@ func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMapsproto2(data, r, fieldNumber, wire) + dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMapsproto2(data []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { +func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - v67 := r.Int63() + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + v71 := r.Int63() if r.Intn(2) == 0 { - v67 *= -1 + v71 *= -1 } - data = encodeVarintPopulateMapsproto2(data, uint64(v67)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) case 1: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMapsproto2(data, uint64(ll)) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMapsproto2(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMapsproto2(data []byte, v uint64) []byte { +func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *FloatingPoint) Size() (n int) { var l int @@ -2386,6 +2685,63 @@ func (m *FloatingPoint) Size() (n int) { return n } +func (m *CustomMap) Size() (n int) { + var l int + _ = l + if len(m.Nullable128S) > 0 { + for k, v := range m.Nullable128S { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Uint128S) > 0 { + for k, v := range m.Uint128S { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.NullableIds) > 0 { + for k, v := range m.NullableIds { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if len(m.Ids) > 0 { + for k, v := range m.Ids { + _ = k + _ = v + l = 0 + l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l + n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *AllMaps) Size() (n int) { var l int _ = l @@ -2505,7 +2861,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2524,8 +2884,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2654,7 +3015,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) + l = 0 + if v != nil { + l = 1 + len(v) + sovMapsproto2(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2673,8 +3038,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovMapsproto2(uint64(l)) } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + l + sovMapsproto2(uint64(l)) + mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) } } @@ -2708,6 +3074,60 @@ func (this *FloatingPoint) String() string { }, "") return s } +func (this *CustomMap) String() string { + if this == nil { + return "nil" + } + keysForNullable128S := make([]string, 0, len(this.Nullable128S)) + for k := range this.Nullable128S { + keysForNullable128S = append(keysForNullable128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForNullable128S { + mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) + } + mapStringForNullable128S += "}" + keysForUint128S := make([]string, 0, len(this.Uint128S)) + for k := range this.Uint128S { + keysForUint128S = append(keysForUint128S, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" + for _, k := range keysForUint128S { + mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) + } + mapStringForUint128S += "}" + keysForNullableIds := make([]string, 0, len(this.NullableIds)) + for k := range this.NullableIds { + keysForNullableIds = append(keysForNullableIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForNullableIds { + mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) + } + mapStringForNullableIds += "}" + keysForIds := make([]string, 0, len(this.Ids)) + for k := range this.Ids { + keysForIds = append(keysForIds, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" + for _, k := range keysForIds { + mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) + } + mapStringForIds += "}" + s := strings.Join([]string{`&CustomMap{`, + `Nullable128S:` + mapStringForNullable128S + `,`, + `Uint128S:` + mapStringForUint128S + `,`, + `NullableIds:` + mapStringForNullableIds + `,`, + `Ids:` + mapStringForIds + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func (this *AllMaps) String() string { if this == nil { return "nil" @@ -3110,8 +3530,8 @@ func valueToStringMapsproto2(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3123,7 +3543,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3147,12 +3567,12 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.F = &v default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -3162,7 +3582,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3172,8 +3592,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3185,7 +3605,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3195,15 +3615,15 @@ func (m *AllMaps) Unmarshal(data []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + return fmt.Errorf("proto: CustomMap: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3213,7 +3633,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3235,7 +3655,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3250,7 +3670,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3265,45 +3685,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.Nullable128S == nil { + m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 + m.Nullable128S[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3313,7 +3753,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3335,7 +3775,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3350,7 +3790,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3365,41 +3805,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.Uint128S == nil { + m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test_custom.Uint128 + m.Uint128S[mapkey] = mapvalue } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3409,7 +3873,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3431,14 +3895,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3446,51 +3910,80 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.NullableIds == nil { + m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) + } else { + var mapvalue *github_com_gogo_protobuf_test.Uuid + m.NullableIds[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3500,7 +3993,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3522,14 +4015,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int64 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3537,51 +4030,131 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Ids == nil { + m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) + } else { + var mapvalue github_com_gogo_protobuf_test.Uuid + m.Ids[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AllMaps: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3591,7 +4164,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3613,14 +4186,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey uint32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3628,14 +4201,89 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3643,14 +4291,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3658,21 +4306,61 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3682,7 +4370,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3704,14 +4392,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey uint64 + var mapkey int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3719,14 +4407,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift + mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3734,14 +4466,21 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3749,21 +4488,71 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) + var mapkey int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex - case 7: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3773,7 +4562,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3795,14 +4584,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkeytemp int32 + var mapkey uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3810,16 +4599,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift + mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - var valuekey uint64 + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3827,14 +4658,21 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3842,23 +4680,71 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) + var mapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex - case 8: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3868,7 +4754,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3890,14 +4776,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkeytemp uint64 + var mapkeytemp int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3905,16 +4791,84 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift + mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - var valuekey uint64 + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey := int32(mapkeytemp) + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3922,14 +4876,14 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 + var mapkeytemp uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2Unsafe @@ -3937,19 +4891,56 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift + mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - m.Sint64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue + } iNdEx = postIndex case 9: if wireType != 2 { @@ -3963,7 +4954,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3985,7 +4976,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3997,38 +4988,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -4042,7 +5038,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4064,7 +5060,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4076,38 +5072,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -4121,7 +5122,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4143,7 +5144,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4155,46 +5156,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -4208,7 +5214,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4230,7 +5236,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4242,46 +5248,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -4295,7 +5306,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4317,7 +5328,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4332,7 +5343,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4340,41 +5351,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -4388,7 +5404,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4410,7 +5426,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4425,7 +5441,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4440,52 +5456,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -4499,7 +5520,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4521,7 +5542,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4536,7 +5557,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4544,60 +5565,65 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { + if intStringLenmapkey < 0 { return ErrInvalidLengthMapsproto2Unsafe } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - m.StringToBytesMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue + } iNdEx = postIndex case 16: if wireType != 2 { @@ -4611,7 +5637,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4633,7 +5659,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4648,7 +5674,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4663,42 +5689,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -4712,7 +5743,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4734,7 +5765,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4749,7 +5780,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4764,61 +5795,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -4828,7 +5864,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4838,8 +5874,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4851,7 +5887,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4879,7 +5915,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4901,7 +5937,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4916,7 +5952,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4931,41 +5967,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -4979,7 +6020,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5001,7 +6042,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5016,7 +6057,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5031,37 +6072,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5075,7 +6121,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5097,7 +6143,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5112,47 +6158,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5166,7 +6217,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5188,7 +6239,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5203,47 +6254,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5257,7 +6313,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5279,7 +6335,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5294,47 +6350,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -5348,7 +6409,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5370,7 +6431,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5385,47 +6446,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -5439,7 +6505,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5461,7 +6527,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5476,7 +6542,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5485,42 +6551,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -5534,7 +6605,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5556,7 +6627,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5571,7 +6642,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5580,42 +6651,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -5629,7 +6705,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5651,7 +6727,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5663,38 +6739,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -5708,7 +6789,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5730,7 +6811,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5742,38 +6823,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -5787,7 +6873,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5809,7 +6895,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5821,46 +6907,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - m.Fixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 12: if wireType != 2 { @@ -5874,7 +6965,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5896,7 +6987,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5908,46 +6999,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -5961,7 +7057,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5983,7 +7079,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5998,7 +7094,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6006,41 +7102,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6054,7 +7155,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6076,7 +7177,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6091,7 +7192,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6106,52 +7207,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6165,7 +7271,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6187,7 +7293,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6202,7 +7308,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6217,53 +7323,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6277,7 +7388,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6299,7 +7410,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6314,7 +7425,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6329,42 +7440,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -6378,7 +7494,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6400,7 +7516,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6415,7 +7531,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6430,61 +7546,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(data[iNdEx:]) + skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -6494,7 +7615,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -6504,8 +7625,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func skipMapsproto2Unsafe(data []byte) (n int, err error) { - l := len(data) +func skipMapsproto2Unsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -6516,7 +7637,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6534,7 +7655,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -6551,7 +7672,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6574,7 +7695,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6585,7 +7706,7 @@ func skipMapsproto2Unsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipMapsproto2Unsafe(data[start:]) + next, err := skipMapsproto2Unsafe(dAtA[start:]) if err != nil { return 0, err } @@ -6609,67 +7730,81 @@ var ( ErrIntOverflowMapsproto2Unsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/mapsproto2.proto", fileDescriptorMapsproto2) } + var fileDescriptorMapsproto2 = []byte{ - // 976 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x96, 0xcd, 0x4f, 0xe3, 0x46, - 0x18, 0xc6, 0x71, 0xbe, 0x33, 0xf9, 0x72, 0x06, 0x5a, 0x45, 0x91, 0x9a, 0x96, 0xb4, 0x95, 0x42, - 0x68, 0x13, 0x9a, 0x56, 0x55, 0x05, 0x2d, 0x12, 0x81, 0xd0, 0x54, 0x14, 0x8a, 0x48, 0xbf, 0x25, - 0xa4, 0x26, 0xc5, 0x09, 0x51, 0x93, 0x18, 0xc5, 0x76, 0x55, 0x6e, 0xfc, 0x19, 0xbd, 0xf6, 0xd6, - 0x63, 0x8f, 0x3d, 0xee, 0x91, 0xe3, 0x1e, 0x39, 0xec, 0x01, 0xd8, 0x0b, 0x47, 0x8e, 0x1c, 0x77, - 0x3c, 0x63, 0x3b, 0x63, 0xfb, 0xb5, 0x9d, 0xbd, 0xed, 0x21, 0x87, 0xd1, 0x64, 0x86, 0xf7, 0xf9, - 0xcd, 0x63, 0xec, 0x79, 0xf5, 0xa0, 0xb5, 0xdf, 0xe5, 0x71, 0x4f, 0x56, 0xea, 0xda, 0x44, 0xe9, - 0xf6, 0x25, 0x6d, 0x32, 0xee, 0x4e, 0x95, 0xf3, 0xee, 0x48, 0x9a, 0xd6, 0xc7, 0xdd, 0x0b, 0xe5, - 0x62, 0x2a, 0xab, 0x72, 0xa3, 0x46, 0x27, 0x9c, 0x32, 0x56, 0xfa, 0x1f, 0x8a, 0x1f, 0x0f, 0x86, - 0xea, 0xb9, 0xd6, 0xab, 0x11, 0x79, 0x7d, 0x20, 0x0f, 0xe4, 0x3a, 0xfd, 0x63, 0x4f, 0xeb, 0xd3, - 0x15, 0x5d, 0xd0, 0x5f, 0x4c, 0x5b, 0x7e, 0x07, 0x65, 0xf6, 0x47, 0x72, 0x57, 0x1d, 0x4e, 0x06, - 0xc7, 0xf2, 0x70, 0xa2, 0xe2, 0x34, 0x12, 0xfa, 0x05, 0xe1, 0x3d, 0xa1, 0x22, 0x9c, 0x08, 0xfd, - 0xf2, 0x0d, 0x46, 0xf1, 0x9d, 0xd1, 0xe8, 0x90, 0x90, 0xf1, 0x2f, 0x28, 0xdf, 0x51, 0xa7, 0xa4, - 0xf0, 0x7b, 0x79, 0x4f, 0xd6, 0x7a, 0x23, 0x89, 0xec, 0x92, 0xca, 0x70, 0x25, 0xd5, 0x58, 0xaf, - 0x71, 0x16, 0x6a, 0x86, 0xa0, 0xe6, 0xaa, 0x6e, 0x4d, 0xd4, 0xe9, 0xe5, 0x49, 0x5e, 0x71, 0xee, - 0xe3, 0x1f, 0x91, 0x68, 0x16, 0x53, 0x37, 0x3a, 0x39, 0x44, 0xc9, 0x55, 0x5f, 0xb2, 0x59, 0xcc, - 0xc0, 0xa2, 0xe2, 0xd8, 0xc6, 0xdb, 0x28, 0xf1, 0xcd, 0x44, 0xfd, 0xb4, 0xa1, 0xf3, 0xc2, 0x94, - 0x57, 0x06, 0x79, 0x66, 0x11, 0xe3, 0x24, 0x86, 0xc6, 0xd2, 0xd0, 0x7f, 0xfe, 0x99, 0xae, 0x8f, - 0xf8, 0xeb, 0x69, 0xd1, 0x4c, 0x4f, 0x97, 0x78, 0x07, 0x25, 0x7f, 0x30, 0x61, 0x85, 0x28, 0x05, - 0xbc, 0x0f, 0x02, 0xac, 0x2a, 0x46, 0x48, 0x6a, 0x96, 0x05, 0x03, 0xc1, 0x3c, 0xc4, 0x02, 0x10, - 0x9c, 0x09, 0x8a, 0xb0, 0x5c, 0x74, 0x2c, 0x17, 0x71, 0x1f, 0x44, 0xc7, 0xe1, 0x42, 0xe1, 0x5d, - 0x74, 0x2c, 0x17, 0x89, 0x00, 0x04, 0xef, 0x42, 0xb1, 0x5c, 0xec, 0x21, 0xb4, 0x3f, 0xfc, 0x4b, - 0x3a, 0x63, 0x36, 0x92, 0x94, 0xf1, 0x01, 0xc8, 0x98, 0x95, 0x31, 0x08, 0xea, 0x5b, 0x1b, 0xf8, - 0x6b, 0x94, 0xea, 0xcc, 0x96, 0x05, 0x44, 0x31, 0x1f, 0xc2, 0x56, 0xfa, 0x0e, 0x4e, 0x4a, 0xe1, - 0x40, 0xa6, 0x1d, 0xf6, 0x48, 0xa9, 0x20, 0x3b, 0xdc, 0x33, 0x31, 0x3b, 0xec, 0xa1, 0x2c, 0x3b, - 0x0c, 0x93, 0x0e, 0xb4, 0xc3, 0x71, 0x0c, 0x3b, 0x0c, 0xb4, 0x85, 0xe2, 0x4d, 0x59, 0xd6, 0x2b, - 0x0b, 0x19, 0x0a, 0x59, 0x05, 0x21, 0x46, 0x0d, 0x03, 0xc4, 0x7b, 0x6c, 0x45, 0xdf, 0x0e, 0xfd, - 0xf4, 0x75, 0x79, 0xd6, 0xef, 0xed, 0x98, 0x55, 0xe6, 0xdb, 0x31, 0xd7, 0xfc, 0x0d, 0x6c, 0x5e, - 0xaa, 0x92, 0xa2, 0x93, 0x72, 0x73, 0xdc, 0x40, 0xb3, 0xd8, 0x71, 0x03, 0xcd, 0x6d, 0xdc, 0x41, - 0x39, 0xb3, 0xb4, 0x35, 0xd1, 0xc6, 0x3a, 0x56, 0xa4, 0xd8, 0x35, 0x5f, 0xac, 0x51, 0xcb, 0xa8, - 0x39, 0xc5, 0xbe, 0x8b, 0x8f, 0x51, 0xd6, 0x2c, 0x3c, 0x54, 0xe8, 0x43, 0xe7, 0x29, 0xb3, 0xe2, - 0xcb, 0x64, 0xa5, 0x0c, 0x99, 0x55, 0x6c, 0x9b, 0xc5, 0x3d, 0xf4, 0x36, 0xdc, 0xad, 0xb0, 0x88, - 0xc2, 0x7f, 0x48, 0x97, 0xb4, 0x23, 0x26, 0x4f, 0xf4, 0x9f, 0x78, 0x05, 0x45, 0xff, 0xec, 0x8e, - 0x34, 0x89, 0x74, 0x28, 0xbd, 0x4b, 0xb2, 0xc5, 0x66, 0xe8, 0x0b, 0xa1, 0xb8, 0x8b, 0xde, 0x02, - 0x3b, 0x53, 0x10, 0x24, 0xc4, 0x43, 0xb6, 0x50, 0xc6, 0xd6, 0x8e, 0x78, 0x71, 0x14, 0x10, 0x47, - 0xdd, 0xe2, 0xd9, 0x47, 0xc6, 0x8b, 0xc3, 0x80, 0x38, 0xcc, 0x8b, 0xbf, 0x44, 0x59, 0x7b, 0x1f, - 0xe2, 0xd5, 0x19, 0x40, 0x9d, 0x01, 0xd4, 0xf0, 0xd9, 0x11, 0x40, 0x1d, 0x71, 0xa8, 0x3b, 0x9e, - 0x67, 0xe7, 0x01, 0x75, 0x1e, 0x50, 0xc3, 0x67, 0x63, 0x40, 0x8d, 0x79, 0xf5, 0x57, 0x28, 0xe7, - 0x68, 0x39, 0xbc, 0x3c, 0x0e, 0xc8, 0xe3, 0xbc, 0x7c, 0x9b, 0x5c, 0x9d, 0xbe, 0xb7, 0x3e, 0x07, - 0xe8, 0x73, 0xd0, 0xf1, 0xb0, 0xfb, 0x18, 0x20, 0x8f, 0x81, 0xc7, 0xc3, 0x7a, 0x11, 0xd0, 0x8b, - 0xbc, 0x7e, 0x13, 0xa5, 0xf9, 0xae, 0xc2, 0x6b, 0x13, 0x80, 0x36, 0xe1, 0xfc, 0xbf, 0xdb, 0x5a, - 0x4a, 0xd0, 0x97, 0x9e, 0xf4, 0xb8, 0x2e, 0xb6, 0x36, 0x12, 0x04, 0x49, 0xf3, 0x90, 0x9f, 0xd1, - 0x0a, 0xd4, 0x34, 0x00, 0x46, 0x95, 0x67, 0x64, 0x1b, 0x2b, 0xb6, 0x66, 0x41, 0x75, 0xda, 0x98, - 0x27, 0x9f, 0xa2, 0x65, 0xa0, 0x75, 0x00, 0xe0, 0x0d, 0x1e, 0x9c, 0x6a, 0x14, 0x6d, 0x60, 0x5b, - 0xba, 0xe2, 0xf0, 0xe5, 0x17, 0xcb, 0x28, 0x6b, 0xb4, 0xa8, 0xef, 0xa6, 0x67, 0xd2, 0x54, 0x3a, - 0xc3, 0xbf, 0x79, 0x27, 0xac, 0x06, 0xd4, 0xda, 0x0c, 0xdd, 0x6b, 0x04, 0xad, 0x53, 0xcf, 0xa0, - 0xf5, 0xc9, 0x3c, 0x07, 0x04, 0xe5, 0xad, 0x96, 0x2b, 0x6f, 0xad, 0xf9, 0x61, 0xbd, 0x62, 0x57, - 0xcb, 0x15, 0xbb, 0x82, 0x30, 0x60, 0xfa, 0x6a, 0xbb, 0xd3, 0x57, 0xd5, 0x8f, 0xe3, 0x1d, 0xc2, - 0xda, 0xee, 0x10, 0x16, 0x48, 0x82, 0xb3, 0x58, 0xdb, 0x9d, 0xc5, 0x7c, 0x49, 0xde, 0x91, 0xac, - 0xed, 0x8e, 0x64, 0x81, 0x24, 0x38, 0x99, 0x1d, 0x00, 0xc9, 0x6c, 0xdd, 0x0f, 0xe5, 0x17, 0xd0, - 0x8e, 0xa0, 0x80, 0xf6, 0x91, 0xaf, 0x31, 0xdf, 0x9c, 0x76, 0x00, 0xe4, 0xb4, 0x60, 0x73, 0x1e, - 0x71, 0xed, 0x08, 0x8a, 0x6b, 0x73, 0x98, 0xf3, 0x4a, 0x6d, 0x4d, 0x67, 0x6a, 0xab, 0xf8, 0xb1, - 0xe0, 0xf0, 0xd6, 0x76, 0x87, 0xb7, 0x6a, 0xf0, 0x5d, 0x84, 0x32, 0xdc, 0xa9, 0x67, 0x86, 0x9b, - 0xeb, 0x72, 0x07, 0x45, 0xb9, 0x5f, 0xbd, 0xa2, 0xdc, 0xc6, 0x3c, 0x74, 0xff, 0x44, 0xf7, 0x93, - 0x47, 0xa2, 0xab, 0xcf, 0x83, 0x5e, 0x04, 0xbb, 0x45, 0xb0, 0x5b, 0x04, 0xbb, 0x45, 0xb0, 0x7b, - 0x33, 0x82, 0xdd, 0x66, 0xe4, 0xef, 0x7f, 0xde, 0x15, 0xaa, 0xab, 0x28, 0x6e, 0x1c, 0x8d, 0x63, - 0x28, 0x74, 0xb8, 0x23, 0x2e, 0xd1, 0xb9, 0x29, 0x0a, 0x74, 0xde, 0x15, 0x43, 0xcd, 0x6f, 0xaf, - 0xef, 0x4a, 0x4b, 0xcf, 0xc9, 0xb8, 0x21, 0xe3, 0xf6, 0xae, 0x24, 0x3c, 0x90, 0xf1, 0x48, 0xc6, - 0x13, 0x19, 0x57, 0xf7, 0x25, 0xe1, 0x5f, 0x32, 0xfe, 0x23, 0xe3, 0x7f, 0x32, 0x9e, 0x91, 0x71, - 0x7d, 0x4f, 0xea, 0xc9, 0xb8, 0x25, 0xbf, 0x1f, 0xc8, 0xfc, 0x48, 0xe6, 0x27, 0x32, 0x5f, 0xbd, - 0x2c, 0x09, 0xaf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xce, 0x63, 0x16, 0xb2, 0x31, 0x14, 0x00, 0x00, + // 1155 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcf, 0x6f, 0xda, 0x66, + 0x18, 0xc7, 0x79, 0x21, 0x04, 0x78, 0xf9, 0xfd, 0x36, 0x9b, 0x10, 0xd2, 0x4c, 0xca, 0x7e, 0x11, + 0xda, 0x41, 0xc2, 0xaa, 0x2a, 0x4a, 0xb7, 0x4e, 0x21, 0x49, 0x47, 0xd4, 0x91, 0x55, 0xb0, 0xee, + 0x97, 0x14, 0x69, 0x26, 0x18, 0x8a, 0x06, 0x98, 0x61, 0xbb, 0x5a, 0x2e, 0x53, 0xff, 0x8c, 0x5d, + 0x77, 0xdb, 0x71, 0xc7, 0x1d, 0x77, 0x8c, 0xb4, 0x4b, 0x8f, 0x55, 0x35, 0x45, 0xc5, 0xbb, 0xf4, + 0xd8, 0x63, 0x8f, 0x93, 0x5f, 0xdb, 0xf0, 0xda, 0x7e, 0x6c, 0xc3, 0x4e, 0x3d, 0xe4, 0x44, 0x5e, + 0xf3, 0x7c, 0x3f, 0xdf, 0xc7, 0xf6, 0xfb, 0x3e, 0x7c, 0x83, 0xb7, 0xce, 0xc4, 0x51, 0x47, 0x94, + 0xaa, 0xca, 0x58, 0xe2, 0x7b, 0x82, 0x32, 0x1e, 0xf1, 0x53, 0xe9, 0x11, 0x3f, 0x14, 0xa6, 0xd5, + 0x11, 0x3f, 0x91, 0x26, 0x53, 0x51, 0x16, 0x6b, 0x15, 0xfa, 0x41, 0xe2, 0xc6, 0x4a, 0xfb, 0x22, + 0xff, 0x51, 0x7f, 0x20, 0x3f, 0x52, 0x3a, 0x95, 0x33, 0x71, 0x54, 0xed, 0x8b, 0x7d, 0xb1, 0x4a, + 0xbf, 0xec, 0x28, 0x3d, 0xba, 0xa2, 0x0b, 0xfa, 0x97, 0xae, 0x2d, 0xbe, 0x83, 0x93, 0xf7, 0x86, + 0x22, 0x2f, 0x0f, 0xc6, 0xfd, 0x07, 0xe2, 0x60, 0x2c, 0x93, 0x04, 0x46, 0xbd, 0x1c, 0xda, 0x44, + 0x25, 0xd4, 0x42, 0xbd, 0xe2, 0xdf, 0x61, 0x1c, 0x3b, 0x50, 0x24, 0x59, 0x1c, 0x35, 0xf9, 0x09, + 0xf9, 0x05, 0x27, 0x4e, 0x94, 0xe1, 0x90, 0xef, 0x0c, 0x85, 0x9d, 0xda, 0xae, 0x94, 0x43, 0x9b, + 0xa1, 0x52, 0xbc, 0x56, 0xaa, 0x30, 0xfe, 0x95, 0x79, 0x75, 0x85, 0x2d, 0x3d, 0x1a, 0xcb, 0xd3, + 0xf3, 0xfa, 0xf6, 0xf3, 0xcb, 0xc2, 0x4d, 0xd7, 0xfe, 0x64, 0x41, 0x92, 0xab, 0x67, 0x54, 0x5e, + 0x79, 0x38, 0x18, 0xcb, 0x3b, 0xb5, 0xdd, 0x96, 0xc5, 0x8f, 0x3c, 0xc6, 0x51, 0xe3, 0x0b, 0x29, + 0x17, 0xa4, 0xde, 0xef, 0xb9, 0x78, 0x9b, 0x65, 0xba, 0xef, 0xad, 0x8b, 0xcb, 0x42, 0x60, 0x65, + 0xef, 0xb9, 0x17, 0xf9, 0x09, 0xc7, 0xcd, 0x3e, 0x8e, 0xbb, 0x52, 0x2e, 0x44, 0xad, 0x3f, 0xf4, + 0xb9, 0xed, 0xe3, 0xae, 0xe1, 0xfe, 0xc1, 0xf3, 0xcb, 0x42, 0xd1, 0xd3, 0xb9, 0xf2, 0x50, 0x19, + 0x74, 0x5b, 0xac, 0x07, 0x39, 0xc5, 0x21, 0xcd, 0x6a, 0x8d, 0x5a, 0x15, 0x5c, 0xac, 0xe6, 0x16, + 0x65, 0xe3, 0x06, 0x97, 0xb1, 0xd1, 0xb8, 0xf9, 0xcf, 0x70, 0xd6, 0xf1, 0x7a, 0x48, 0x06, 0x87, + 0x7e, 0x14, 0xce, 0xe9, 0xcb, 0x8f, 0xb5, 0xb4, 0x3f, 0xc9, 0x06, 0x0e, 0x3f, 0xe6, 0x87, 0x8a, + 0x90, 0x0b, 0x6e, 0xa2, 0x52, 0xa2, 0xa5, 0x2f, 0xf6, 0x82, 0xbb, 0x28, 0x7f, 0x07, 0x27, 0x2d, + 0xcf, 0x78, 0x25, 0xf1, 0x5d, 0x9c, 0xb1, 0x3f, 0xa5, 0x95, 0xf4, 0xb7, 0x71, 0xf4, 0xff, 0xe8, + 0x8a, 0xcf, 0x08, 0x8e, 0xec, 0x0f, 0x87, 0x4d, 0x7e, 0x22, 0x91, 0xef, 0x70, 0xb6, 0x2d, 0x4f, + 0x07, 0xe3, 0xfe, 0x57, 0xe2, 0xa1, 0xa8, 0x74, 0x86, 0x42, 0x93, 0x9f, 0x18, 0x1b, 0xfa, 0x86, + 0xe5, 0x71, 0x1b, 0x82, 0x8a, 0xa3, 0x9a, 0xfa, 0xb7, 0x9c, 0x14, 0xf2, 0x35, 0xce, 0x98, 0x17, + 0xe9, 0xd9, 0xd2, 0xc8, 0xfa, 0x76, 0x2d, 0x7b, 0x92, 0xcd, 0x62, 0x1d, 0xec, 0x60, 0x90, 0xbb, + 0x38, 0x7a, 0x3c, 0x96, 0x3f, 0xae, 0x69, 0x3c, 0x7d, 0x0f, 0x16, 0x41, 0x9e, 0x59, 0xa4, 0x73, + 0xe6, 0x1a, 0x43, 0x7f, 0xfb, 0x96, 0xa6, 0x5f, 0xf3, 0xd6, 0xd3, 0xa2, 0x85, 0x9e, 0x2e, 0xc9, + 0x3e, 0x8e, 0x69, 0xef, 0x5c, 0x6f, 0x20, 0x4c, 0x01, 0xef, 0x82, 0x80, 0x79, 0x95, 0x4e, 0x58, + 0xa8, 0x4c, 0x84, 0xde, 0xc3, 0xba, 0x0f, 0x82, 0x69, 0x62, 0xa1, 0xd2, 0x10, 0xed, 0x79, 0x17, + 0x11, 0x0f, 0x44, 0xdb, 0xd6, 0x45, 0x9b, 0xed, 0xa2, 0x3d, 0xef, 0x22, 0xea, 0x83, 0x60, 0xbb, + 0x98, 0xaf, 0xc9, 0x21, 0xc6, 0xf7, 0x06, 0x3f, 0x0b, 0x5d, 0xbd, 0x8d, 0x18, 0x30, 0x8c, 0x4c, + 0xc6, 0xa2, 0x4c, 0x87, 0x30, 0x3a, 0xf2, 0x39, 0x8e, 0xb7, 0x7b, 0x0b, 0x0c, 0xa6, 0x98, 0xf7, + 0xe1, 0x56, 0x7a, 0x36, 0x0e, 0xab, 0x9c, 0xb7, 0xa3, 0xdf, 0x52, 0xdc, 0xaf, 0x1d, 0xe6, 0x9e, + 0x18, 0xdd, 0xa2, 0x1d, 0x1d, 0x93, 0xf0, 0x6d, 0x87, 0xe1, 0xb0, 0x4a, 0x72, 0x07, 0x47, 0xea, + 0xa2, 0xa8, 0x55, 0xe6, 0x92, 0x14, 0x72, 0x1d, 0x84, 0x18, 0x35, 0x3a, 0xc0, 0x54, 0xd0, 0xb7, + 0x43, 0xb7, 0xbe, 0x26, 0x4f, 0x79, 0xbd, 0x1d, 0xb3, 0xca, 0x7c, 0x3b, 0xe6, 0x9a, 0x3d, 0x81, + 0xf5, 0x73, 0x59, 0x90, 0x34, 0x52, 0x7a, 0x89, 0x13, 0x68, 0x16, 0xdb, 0x4e, 0xa0, 0x79, 0x99, + 0xb4, 0x71, 0xda, 0xbc, 0x76, 0x34, 0x56, 0xb4, 0x19, 0x9c, 0xcb, 0x50, 0xec, 0x96, 0x27, 0xd6, + 0xa8, 0xd5, 0xa9, 0x76, 0x02, 0x79, 0x80, 0x53, 0xe6, 0xa5, 0xa6, 0x44, 0x6f, 0x3a, 0x0b, 0xfc, + 0xae, 0xda, 0x99, 0x7a, 0xa9, 0x8e, 0xb4, 0xe9, 0xf3, 0x87, 0xf8, 0x6d, 0x78, 0x5a, 0xf9, 0x4d, + 0x4b, 0xc4, 0x4e, 0xd9, 0x03, 0xfc, 0x16, 0x38, 0x99, 0xfc, 0x20, 0x41, 0xdb, 0xef, 0x84, 0x65, + 0x1c, 0xb1, 0xe2, 0x30, 0x20, 0x0e, 0x3b, 0xc5, 0x8b, 0x4d, 0xc6, 0x8a, 0x43, 0x80, 0x38, 0xc4, + 0x8a, 0x3f, 0xc1, 0x29, 0xeb, 0x1c, 0x62, 0xd5, 0x49, 0x40, 0x9d, 0x04, 0xd4, 0xb0, 0xf7, 0x1a, + 0xa0, 0x5e, 0xb3, 0xa9, 0xdb, 0xae, 0xde, 0x59, 0x40, 0x9d, 0x05, 0xd4, 0xb0, 0x37, 0x01, 0xd4, + 0x84, 0x55, 0x7f, 0x8a, 0xd3, 0xb6, 0x91, 0xc3, 0xca, 0x23, 0x80, 0x3c, 0x62, 0xfb, 0x6d, 0xb6, + 0x8f, 0x1a, 0x56, 0x9f, 0x06, 0xf4, 0x69, 0xc8, 0x1e, 0xee, 0x7e, 0x1d, 0x90, 0xaf, 0x83, 0xf6, + 0xb0, 0x3e, 0x03, 0xe8, 0x33, 0xac, 0x7e, 0x0f, 0x27, 0xd8, 0xa9, 0xc2, 0x6a, 0xa3, 0x80, 0x36, + 0x6a, 0x7f, 0xee, 0x96, 0x91, 0xe2, 0xb7, 0xd3, 0x63, 0x2e, 0xc7, 0xc5, 0x32, 0x46, 0x56, 0x4a, + 0x36, 0xdf, 0xe2, 0x0d, 0x68, 0x68, 0x00, 0x8c, 0x32, 0xcb, 0x48, 0xd5, 0x36, 0x2c, 0xc3, 0x82, + 0xea, 0x94, 0x11, 0x4b, 0x3e, 0xc5, 0xd7, 0x80, 0xd1, 0x01, 0x80, 0xb7, 0x59, 0x70, 0xbc, 0x96, + 0xb7, 0x80, 0x2d, 0xff, 0x2b, 0xb0, 0xd1, 0xea, 0x9f, 0x6b, 0x38, 0x65, 0x8c, 0xa8, 0x2f, 0xa7, + 0x5d, 0x61, 0x2a, 0x74, 0xc9, 0x0f, 0xee, 0x09, 0xab, 0x06, 0x8d, 0x36, 0x43, 0xb7, 0x42, 0xd0, + 0x3a, 0x75, 0x0d, 0x5a, 0x3b, 0xcb, 0x18, 0xf8, 0xe5, 0xad, 0x23, 0x47, 0xde, 0xda, 0xf2, 0xc2, + 0xba, 0xc5, 0xae, 0x23, 0x47, 0xec, 0xf2, 0xc3, 0x80, 0xe9, 0xab, 0xe1, 0x4c, 0x5f, 0x65, 0x2f, + 0x8e, 0x7b, 0x08, 0x6b, 0x38, 0x43, 0x98, 0x2f, 0x09, 0xce, 0x62, 0x0d, 0x67, 0x16, 0xf3, 0x24, + 0xb9, 0x47, 0xb2, 0x86, 0x33, 0x92, 0xf9, 0x92, 0xe0, 0x64, 0x76, 0x1f, 0x48, 0x66, 0x37, 0xbc, + 0x50, 0x5e, 0x01, 0xed, 0x04, 0x0a, 0x68, 0x37, 0x3d, 0x1b, 0xf3, 0xcc, 0x69, 0xf7, 0x81, 0x9c, + 0xe6, 0xdf, 0x9c, 0x4b, 0x5c, 0x3b, 0x81, 0xe2, 0xda, 0x12, 0xcd, 0xb9, 0xa5, 0xb6, 0xba, 0x3d, + 0xb5, 0x95, 0xbc, 0x58, 0x70, 0x78, 0x6b, 0x38, 0xc3, 0x5b, 0xd9, 0xff, 0x2c, 0x42, 0x19, 0xee, + 0xd4, 0x35, 0xc3, 0x2d, 0x75, 0xb8, 0xfd, 0xa2, 0xdc, 0xf7, 0x6e, 0x51, 0x6e, 0x7b, 0x19, 0xba, + 0x77, 0xa2, 0xfb, 0xc6, 0x25, 0xd1, 0x55, 0x97, 0x41, 0x5f, 0x05, 0xbb, 0xab, 0x60, 0x77, 0x15, + 0xec, 0xae, 0x82, 0xdd, 0x9b, 0x11, 0xec, 0xf6, 0xd6, 0x7e, 0xfd, 0xad, 0x80, 0xca, 0xd7, 0x71, + 0xc4, 0xb0, 0x26, 0xeb, 0x38, 0xd8, 0xdc, 0xcf, 0x04, 0xe8, 0x67, 0x3d, 0x83, 0xe8, 0xe7, 0x41, + 0x26, 0x58, 0xff, 0xe2, 0x62, 0xc6, 0x05, 0x9e, 0xce, 0xb8, 0xc0, 0xb3, 0x19, 0x17, 0x78, 0x31, + 0xe3, 0xd0, 0xcb, 0x19, 0x87, 0x5e, 0xcd, 0x38, 0xf4, 0x7a, 0xc6, 0xa1, 0x27, 0x2a, 0x87, 0x7e, + 0x57, 0x39, 0xf4, 0x87, 0xca, 0xa1, 0x3f, 0x55, 0x0e, 0xfd, 0xa5, 0x72, 0xe8, 0x42, 0xe5, 0x02, + 0x4f, 0x55, 0x2e, 0xf0, 0x42, 0xe5, 0xd0, 0x4b, 0x95, 0x0b, 0xbc, 0x52, 0x39, 0xf4, 0x5a, 0xe5, + 0x02, 0x4f, 0xfe, 0xe5, 0xd0, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x11, 0x15, 0xb8, 0xae, 0xff, + 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto index 193c24f6..b7e52026 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go new file mode 100644 index 00000000..488bc86b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go index 6d8570df..181f75d5 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go @@ -10,6 +10,7 @@ It is generated from these files: It has these top-level messages: FloatingPoint + CustomMap AllMaps AllMapsOrdered */ @@ -18,6 +19,7 @@ package proto2_maps import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -32,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -74,11 +80,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -88,11 +94,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -105,22 +111,104 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkCustomMapProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &CustomMap{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -148,11 +236,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -162,11 +250,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -180,21 +268,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -222,11 +314,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -236,11 +328,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -274,6 +366,27 @@ func TestFloatingPointJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestCustomMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomMap{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -320,9 +433,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -337,9 +450,43 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -354,9 +501,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -371,9 +518,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -388,9 +535,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -405,9 +552,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -422,14 +569,37 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestCustomMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -437,14 +607,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -452,14 +626,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -474,6 +652,14 @@ func TestFloatingPointFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestCustomMapFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestAllMapsFace(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) @@ -503,6 +689,19 @@ func TestFloatingPointGoString(t *testing.T) { panic(err) } } +func TestCustomMapGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestAllMapsGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) @@ -534,13 +733,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -565,18 +764,54 @@ func BenchmarkFloatingPointSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestCustomMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomMap(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkCustomMapSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*CustomMap, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedCustomMap(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -606,13 +841,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -646,6 +881,15 @@ func TestFloatingPointStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestCustomMapStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestAllMapsStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/header.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/header.proto index dbdc990e..5d87649a 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/header.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/header.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -65,3 +67,10 @@ option (gogoproto.unsafe_unmarshaler_all) = false; message FloatingPoint { optional double f = 1; } + +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto index 4f940946..39de5831 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -66,6 +68,13 @@ message FloatingPoint { optional double f = 1; } +message CustomMap { + map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; + map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; + map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; + map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; +} + enum MapEnum { MA = 0; MB = 1; diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2_test.go.in b/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2_test.go.in new file mode 100644 index 00000000..5ccc8660 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/mapsproto2_test.go.in @@ -0,0 +1,104 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto2_maps + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestNilMaps(t *testing.T) { + m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": []byte{}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go b/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go index b00c76b7..b8e447c8 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go +++ b/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/Makefile b/vendor/github.com/gogo/protobuf/test/moredefaults/Makefile index c7bd3032..0d4f698d 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/Makefile +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go index 1af8180e..708b936d 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go @@ -29,10 +29,12 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MoreDefaultsB struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -49,12 +51,12 @@ func (m *MoreDefaultsB) GetField1() string { } type MoreDefaultsA struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1,def=1234" json:"Field1,omitempty"` - Field2 int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2"` - B1 *MoreDefaultsB `protobuf:"bytes,3,opt,name=B1,json=b1" json:"B1,omitempty"` - B2 MoreDefaultsB `protobuf:"bytes,4,opt,name=B2,json=b2" json:"B2"` - A1 *test.A `protobuf:"bytes,5,opt,name=A1,json=a1" json:"A1,omitempty"` - A2 test.A `protobuf:"bytes,6,opt,name=A2,json=a2" json:"A2"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1,def=1234" json:"Field1,omitempty"` + Field2 int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2"` + B1 *MoreDefaultsB `protobuf:"bytes,3,opt,name=B1" json:"B1,omitempty"` + B2 MoreDefaultsB `protobuf:"bytes,4,opt,name=B2" json:"B2"` + A1 *test.A `protobuf:"bytes,5,opt,name=A1" json:"A1,omitempty"` + A2 test.A `protobuf:"bytes,6,opt,name=A2" json:"A2"` XXX_unrecognized []byte `json:"-"` } @@ -207,7 +209,7 @@ func (this *MoreDefaultsA) Equal(that interface{}) bool { func NewPopulatedMoreDefaultsB(r randyMd, easy bool) *MoreDefaultsB { this := &MoreDefaultsB{} if r.Intn(10) != 0 { - v1 := randStringMd(r) + v1 := string(randStringMd(r)) this.Field1 = &v1 } if !easy && r.Intn(10) != 0 { @@ -271,7 +273,7 @@ func randStringMd(r randyMd) string { } return string(tmps) } -func randUnrecognizedMd(r randyMd, maxFieldNumber int) (data []byte) { +func randUnrecognizedMd(r randyMd, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -279,61 +281,64 @@ func randUnrecognizedMd(r randyMd, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldMd(data, r, fieldNumber, wire) + dAtA = randFieldMd(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldMd(data []byte, r randyMd, fieldNumber int, wire int) []byte { +func randFieldMd(dAtA []byte, r randyMd, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateMd(data, uint64(key)) + dAtA = encodeVarintPopulateMd(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateMd(data, uint64(v6)) + dAtA = encodeVarintPopulateMd(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateMd(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMd(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateMd(data, uint64(key)) + dAtA = encodeVarintPopulateMd(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateMd(data, uint64(ll)) + dAtA = encodeVarintPopulateMd(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateMd(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateMd(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateMd(data []byte, v uint64) []byte { +func encodeVarintPopulateMd(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } +func init() { proto.RegisterFile("md.proto", fileDescriptorMd) } + var fileDescriptorMd = []byte{ - // 252 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0xc8, 0x4d, 0xd1, 0x2b, + // 258 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc8, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcd, 0x2f, 0x4a, 0x4d, 0x49, 0x4d, 0x4b, 0x2c, 0xcd, 0x29, 0x29, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x59, 0xca, 0x18, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0xfd, 0xd4, 0x8a, 0xc4, 0xdc, 0x82, 0x9c, - 0x54, 0x18, 0x0d, 0xd1, 0xa4, 0xa4, 0xce, 0xc5, 0xeb, 0x0b, 0xb4, 0xd3, 0x05, 0x6a, 0xa7, 0x93, - 0x90, 0x18, 0x17, 0x9b, 0x5b, 0x66, 0x6a, 0x4e, 0x8a, 0xa1, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, - 0x10, 0x5b, 0x1a, 0x98, 0xa7, 0xf4, 0x98, 0x11, 0x55, 0xa5, 0xa3, 0x90, 0x0c, 0x8a, 0x4a, 0x66, - 0x2b, 0x16, 0x43, 0x23, 0x63, 0x13, 0x98, 0x7a, 0xb8, 0xac, 0x91, 0x04, 0x13, 0x48, 0xd6, 0x89, - 0xe5, 0xc4, 0x3d, 0x79, 0x06, 0xa8, 0xac, 0x91, 0x90, 0x36, 0x17, 0x93, 0x93, 0xa1, 0x04, 0x33, - 0x50, 0x86, 0xdb, 0x48, 0x5a, 0x0f, 0xd9, 0xd7, 0x7a, 0x28, 0xce, 0x09, 0x62, 0x4a, 0x32, 0x14, - 0x32, 0x04, 0x2a, 0x36, 0x92, 0x60, 0x21, 0xa8, 0x18, 0x6a, 0x07, 0x53, 0x92, 0x91, 0x90, 0x38, - 0x17, 0x93, 0xa3, 0xa1, 0x04, 0x2b, 0x58, 0x0b, 0xbb, 0x1e, 0xc8, 0xff, 0x7a, 0x8e, 0x41, 0x4c, - 0x89, 0x86, 0x42, 0xb2, 0x40, 0x09, 0x23, 0x09, 0x36, 0x14, 0x09, 0x98, 0xbe, 0x44, 0x23, 0x27, - 0x81, 0x13, 0x0f, 0xe5, 0x18, 0x7f, 0x00, 0xf1, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x80, 0x18, 0x10, - 0x00, 0x00, 0xff, 0xff, 0x0f, 0x4e, 0xe8, 0x88, 0x9d, 0x01, 0x00, 0x00, + 0x54, 0x18, 0x0d, 0xd1, 0xa4, 0xa4, 0xce, 0xc5, 0xeb, 0x9b, 0x5f, 0x94, 0xea, 0x02, 0xb5, 0xd3, + 0x49, 0x48, 0x8c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, + 0x33, 0x08, 0xca, 0x53, 0x7a, 0xcc, 0x88, 0xaa, 0xd2, 0x51, 0x48, 0x06, 0x45, 0x25, 0xb3, 0x15, + 0x8b, 0xa1, 0x91, 0xb1, 0x09, 0x4c, 0x3d, 0x5c, 0xd6, 0x48, 0x82, 0x09, 0x24, 0xeb, 0xc4, 0x72, + 0xe2, 0x9e, 0x3c, 0x03, 0x54, 0xd6, 0x48, 0x48, 0x9b, 0x8b, 0xc9, 0xc9, 0x50, 0x82, 0x59, 0x81, + 0x51, 0x83, 0xdb, 0x48, 0x5a, 0x0f, 0xd9, 0xd7, 0x7a, 0x28, 0xce, 0x09, 0x62, 0x72, 0x32, 0x14, + 0x32, 0xe4, 0x62, 0x72, 0x32, 0x92, 0x60, 0x21, 0xa8, 0x18, 0x6a, 0x07, 0x93, 0x93, 0x91, 0x90, + 0x38, 0x17, 0x93, 0xa3, 0xa1, 0x04, 0x2b, 0x58, 0x0b, 0xbb, 0x1e, 0xc8, 0xff, 0x7a, 0x8e, 0x41, + 0x4c, 0x8e, 0x86, 0x42, 0xb2, 0x5c, 0x4c, 0x8e, 0x46, 0x12, 0x6c, 0x28, 0x12, 0x30, 0x7d, 0x8e, + 0x46, 0x4e, 0x02, 0x27, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, + 0x8e, 0x47, 0x72, 0x8c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0xf0, 0x3f, 0xeb, 0x9d, 0x01, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/md.proto b/vendor/github.com/gogo/protobuf/test/moredefaults/md.proto index 55a0d188..7f5b2190 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/md.proto +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/md.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/md_test.go b/vendor/github.com/gogo/protobuf/test/moredefaults/md_test.go index 7b7a08ed..45a8eac5 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/md_test.go +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/md_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go b/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go index 85fe2640..b6057939 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go @@ -34,18 +34,18 @@ func TestMoreDefaultsBProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -65,18 +65,18 @@ func TestMoreDefaultsAProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -132,9 +132,9 @@ func TestMoreDefaultsBProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -146,9 +146,9 @@ func TestMoreDefaultsBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -160,9 +160,9 @@ func TestMoreDefaultsAProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -174,9 +174,9 @@ func TestMoreDefaultsAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/Makefile b/vendor/github.com/gogo/protobuf/test/nopackage/Makefile index 093ec0f1..0aa49e25 100644 --- a/vendor/github.com/gogo/protobuf/test/nopackage/Makefile +++ b/vendor/github.com/gogo/protobuf/test/nopackage/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go index cb24a3f6..d6f6fd05 100644 --- a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go +++ b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go @@ -26,7 +26,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type M struct { F map[string]float64 `protobuf:"bytes,1,rep,name=f" json:"f,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` @@ -47,65 +49,65 @@ func (m *M) GetF() map[string]float64 { func init() { proto.RegisterType((*M)(nil), "M") } -func (m *M) Marshal() (data []byte, err error) { +func (m *M) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *M) MarshalTo(data []byte) (int, error) { +func (m *M) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.F) > 0 { for k := range m.F { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.F[k] mapSize := 1 + len(k) + sovNopackage(uint64(len(k))) + 1 + 8 - i = encodeVarintNopackage(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintNopackage(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintNopackage(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintNopackage(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Nopackage(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Nopackage(dAtA, i, uint64(math.Float64bits(float64(v)))) } } return i, nil } -func encodeFixed64Nopackage(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Nopackage(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Nopackage(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Nopackage(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintNopackage(data []byte, offset int, v uint64) int { +func encodeVarintNopackage(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *M) Size() (n int) { @@ -135,8 +137,8 @@ func sovNopackage(x uint64) (n int) { func sozNopackage(x uint64) (n int) { return sovNopackage(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *M) Unmarshal(data []byte) error { - l := len(data) +func (m *M) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -148,7 +150,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -176,7 +178,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -198,7 +200,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -213,7 +215,7 @@ func (m *M) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -228,45 +230,50 @@ func (m *M) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowNopackage + if m.F == nil { + m.F = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNopackage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.F[mapkey] = mapvalue + } else { + var mapvalue float64 + m.F[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.F == nil { - m.F = make(map[string]float64) - } - m.F[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipNopackage(data[iNdEx:]) + skippy, err := skipNopackage(dAtA[iNdEx:]) if err != nil { return err } @@ -285,8 +292,8 @@ func (m *M) Unmarshal(data []byte) error { } return nil } -func skipNopackage(data []byte) (n int, err error) { - l := len(data) +func skipNopackage(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -297,7 +304,7 @@ func skipNopackage(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -315,7 +322,7 @@ func skipNopackage(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -332,7 +339,7 @@ func skipNopackage(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -355,7 +362,7 @@ func skipNopackage(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -366,7 +373,7 @@ func skipNopackage(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipNopackage(data[start:]) + next, err := skipNopackage(dAtA[start:]) if err != nil { return 0, err } @@ -390,15 +397,17 @@ var ( ErrIntOverflowNopackage = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("nopackage.proto", fileDescriptorNopackage) } + var fileDescriptorNopackage = []byte{ - // 129 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0xcf, 0xcb, 0x2f, 0x48, + // 134 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcf, 0xcb, 0x2f, 0x48, 0x4c, 0xce, 0x4e, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x0a, 0xe2, 0x62, 0xf4, 0x15, 0x12, 0xe7, 0x62, 0x4c, 0x93, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, 0xe2, 0xd4, 0xf3, 0xd5, 0x73, 0x73, 0xcd, 0x2b, 0x29, 0xaa, 0x0c, 0x62, 0x4c, 0x93, 0x32, 0xe1, 0x62, 0x83, 0x70, 0x84, - 0x04, 0xb8, 0x98, 0xb3, 0x53, 0x2b, 0x81, 0x8a, 0x18, 0x35, 0x38, 0x83, 0x40, 0x4c, 0x21, 0x11, - 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x26, 0xa0, 0x18, 0x63, 0x10, 0x84, 0x63, 0xc5, - 0x64, 0xc1, 0xe8, 0xc4, 0x73, 0xe2, 0x91, 0x1c, 0xe3, 0x05, 0x20, 0x7e, 0x00, 0xc4, 0x49, 0x6c, - 0x60, 0x8b, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0x62, 0xb2, 0xed, 0x7b, 0x00, 0x00, - 0x00, + 0x04, 0xb8, 0x98, 0xb3, 0x53, 0x2b, 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x40, 0x4c, 0x21, + 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xc6, 0x20, 0x08, + 0xc7, 0x8a, 0xc9, 0x82, 0xd1, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, + 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x5b, 0x64, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x62, 0x62, + 0xb2, 0xed, 0x7b, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.proto b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.proto index 9a1309aa..cfaed76b 100644 --- a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.proto +++ b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto3"; message M { diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage_test.go b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage_test.go index 58c98cc6..3318a29c 100644 --- a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage_test.go +++ b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package nopackage import ( diff --git a/vendor/github.com/gogo/protobuf/test/oneof/Makefile b/vendor/github.com/gogo/protobuf/test/oneof/Makefile index b73c7581..d9c0c4c3 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/Makefile +++ b/vendor/github.com/gogo/protobuf/test/oneof/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -28,4 +28,5 @@ regenerate: go install github.com/gogo/protobuf/protoc-gen-combo - protoc-gen-combo --version="2.6.0" --proto_path=../../../../../:../../protobuf/:. one.proto \ No newline at end of file + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-gen-combo --version="2.6.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. one.proto diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go index 4ca241bb..340c4410 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -44,7 +42,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -90,49 +90,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -579,19 +579,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -821,16 +821,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -885,11 +885,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -991,241 +991,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3729 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x1b, 0xe7, - 0xb5, 0x36, 0xc5, 0x45, 0xe4, 0x21, 0x45, 0x51, 0x23, 0xd9, 0xa6, 0x95, 0xc4, 0x8a, 0xe9, 0x2c, - 0x8e, 0x93, 0x48, 0xb6, 0x64, 0x79, 0x61, 0xee, 0x4d, 0x20, 0x4a, 0xb4, 0x22, 0x43, 0x12, 0x75, - 0x47, 0x62, 0xe2, 0xe4, 0x3e, 0x0c, 0x46, 0xe4, 0x88, 0xa2, 0x4d, 0xce, 0xf0, 0x72, 0x86, 0xb6, - 0x95, 0xa7, 0x5c, 0xe4, 0x2e, 0x08, 0x2e, 0x6e, 0x97, 0xb4, 0x40, 0xb3, 0xb7, 0x09, 0xd0, 0x26, - 0x4d, 0xb7, 0xa4, 0x1b, 0x8a, 0x3e, 0x15, 0x28, 0xd2, 0xe6, 0xa9, 0x48, 0xfb, 0x54, 0x14, 0x85, - 0x91, 0xa4, 0x01, 0x9a, 0xb6, 0x69, 0x9b, 0x02, 0x2e, 0x1a, 0x34, 0x2f, 0x3d, 0xff, 0x36, 0x0b, - 0x49, 0x69, 0xa8, 0xa0, 0x69, 0x2a, 0x80, 0x10, 0xe7, 0x9c, 0xf3, 0x7d, 0xf3, 0xff, 0xe7, 0x3f, - 0xff, 0x39, 0x67, 0xfe, 0x21, 0xfc, 0xf0, 0x38, 0xdc, 0x58, 0x31, 0x8c, 0x4a, 0x4d, 0x9b, 0x68, - 0x34, 0x0d, 0xcb, 0x58, 0x6f, 0x6d, 0x4c, 0x94, 0x35, 0xb3, 0xd4, 0xac, 0x36, 0x2c, 0xa3, 0x39, - 0x4e, 0x65, 0xd2, 0x20, 0xb3, 0x18, 0x17, 0x16, 0x99, 0x25, 0x18, 0x3a, 0x5b, 0xad, 0x69, 0x73, - 0xb6, 0xe1, 0xaa, 0x66, 0x49, 0xa7, 0x21, 0xb4, 0x81, 0xc2, 0x74, 0xe0, 0xc6, 0xe0, 0x91, 0xf8, - 0xe4, 0x4d, 0xe3, 0x6d, 0xa0, 0x71, 0x2f, 0x62, 0x85, 0x88, 0x65, 0x8a, 0xc8, 0xbc, 0x1d, 0x82, - 0xe1, 0x2e, 0x5a, 0x49, 0x82, 0x90, 0xae, 0xd6, 0x09, 0x63, 0xe0, 0x48, 0x4c, 0xa6, 0xdf, 0xa5, - 0x34, 0xf4, 0x37, 0xd4, 0xd2, 0x45, 0xb5, 0xa2, 0xa5, 0xfb, 0xa8, 0x58, 0x5c, 0x4a, 0x07, 0x01, - 0xca, 0x5a, 0x43, 0xd3, 0xcb, 0x9a, 0x5e, 0xda, 0x4a, 0x07, 0x71, 0x14, 0x31, 0xd9, 0x25, 0x91, - 0x6e, 0x87, 0xa1, 0x46, 0x6b, 0xbd, 0x56, 0x2d, 0x29, 0x2e, 0x33, 0x40, 0xb3, 0xb0, 0x9c, 0x62, - 0x8a, 0x39, 0xc7, 0xf8, 0x56, 0x18, 0xbc, 0xac, 0xa9, 0x17, 0xdd, 0xa6, 0x71, 0x6a, 0x9a, 0x24, - 0x62, 0x97, 0xe1, 0x2c, 0x24, 0xea, 0x9a, 0x69, 0xe2, 0x00, 0x14, 0x6b, 0xab, 0xa1, 0xa5, 0x43, - 0x74, 0xf6, 0x37, 0x76, 0xcc, 0xbe, 0x7d, 0xe6, 0x71, 0x8e, 0x5a, 0x43, 0x90, 0x34, 0x03, 0x31, - 0x4d, 0x6f, 0xd5, 0x19, 0x43, 0x78, 0x1b, 0xff, 0xe5, 0xd1, 0xa2, 0x9d, 0x25, 0x4a, 0x60, 0x9c, - 0xa2, 0xdf, 0xd4, 0x9a, 0x97, 0xaa, 0x25, 0x2d, 0x1d, 0xa1, 0x04, 0xb7, 0x76, 0x10, 0xac, 0x32, - 0x7d, 0x3b, 0x87, 0xc0, 0xe1, 0x54, 0x62, 0xda, 0x15, 0x4b, 0xd3, 0xcd, 0xaa, 0xa1, 0xa7, 0xfb, - 0x29, 0xc9, 0xcd, 0x5d, 0x56, 0x51, 0xab, 0x95, 0xdb, 0x29, 0x1c, 0x9c, 0x74, 0x12, 0xfa, 0x8d, - 0x86, 0x85, 0xdf, 0xcc, 0x74, 0x14, 0xd7, 0x27, 0x3e, 0x79, 0x7d, 0xd7, 0x40, 0x28, 0x30, 0x1b, - 0x59, 0x18, 0x4b, 0x0b, 0x90, 0x32, 0x8d, 0x56, 0xb3, 0xa4, 0x29, 0x25, 0xa3, 0xac, 0x29, 0x55, - 0x7d, 0xc3, 0x48, 0xc7, 0x28, 0xc1, 0x58, 0xe7, 0x44, 0xa8, 0xe1, 0x2c, 0xda, 0x2d, 0xa0, 0x99, - 0x9c, 0x34, 0x3d, 0xd7, 0xd2, 0x3e, 0x88, 0x98, 0x5b, 0xba, 0xa5, 0x5e, 0x49, 0x27, 0x68, 0x84, - 0xf0, 0xab, 0xcc, 0x5f, 0xc2, 0x30, 0xd8, 0x4b, 0x88, 0xdd, 0x05, 0xe1, 0x0d, 0x32, 0x4b, 0x0c, - 0xb0, 0x5d, 0xf8, 0x80, 0x61, 0xbc, 0x4e, 0x8c, 0x7c, 0x48, 0x27, 0xce, 0x40, 0x5c, 0xd7, 0x4c, - 0x4b, 0x2b, 0xb3, 0x88, 0x08, 0xf6, 0x18, 0x53, 0xc0, 0x40, 0x9d, 0x21, 0x15, 0xfa, 0x50, 0x21, - 0x75, 0x1e, 0x06, 0xed, 0x21, 0x29, 0x4d, 0x55, 0xaf, 0x88, 0xd8, 0x9c, 0xf0, 0x1b, 0xc9, 0x78, - 0x5e, 0xe0, 0x64, 0x02, 0x93, 0x93, 0x9a, 0xe7, 0x5a, 0x9a, 0x03, 0x30, 0x74, 0xcd, 0xd8, 0xc0, - 0xed, 0x55, 0xaa, 0x61, 0x9c, 0x74, 0xf7, 0x52, 0x81, 0x98, 0x74, 0x78, 0xc9, 0x60, 0xd2, 0x52, - 0x4d, 0x3a, 0xe3, 0x84, 0x5a, 0xff, 0x36, 0x91, 0xb2, 0xc4, 0x36, 0x59, 0x47, 0xb4, 0x15, 0x21, - 0xd9, 0xd4, 0x48, 0xdc, 0xa3, 0x8b, 0xd9, 0xcc, 0x62, 0x74, 0x10, 0xe3, 0xbe, 0x33, 0x93, 0x39, - 0x8c, 0x4d, 0x6c, 0xa0, 0xe9, 0xbe, 0x94, 0x0e, 0x83, 0x2d, 0x50, 0x68, 0x58, 0x01, 0xcd, 0x42, - 0x09, 0x21, 0x5c, 0x46, 0xd9, 0xe8, 0x69, 0x48, 0x7a, 0xdd, 0x23, 0x8d, 0x40, 0xd8, 0xb4, 0xd4, - 0xa6, 0x45, 0xa3, 0x30, 0x2c, 0xb3, 0x0b, 0x29, 0x05, 0x41, 0x4c, 0x32, 0x34, 0xcb, 0x85, 0x65, - 0xf2, 0x75, 0xf4, 0x14, 0x0c, 0x78, 0x6e, 0xdf, 0x2b, 0x30, 0xf3, 0x78, 0x04, 0x46, 0xba, 0xc5, - 0x5c, 0xd7, 0xf0, 0xc7, 0xed, 0x83, 0x11, 0xb0, 0xae, 0x35, 0x31, 0xee, 0x08, 0x03, 0xbf, 0xc2, - 0x88, 0x0a, 0xd7, 0xd4, 0x75, 0xad, 0x86, 0xd1, 0x14, 0x38, 0x92, 0x9c, 0xbc, 0xbd, 0xa7, 0xa8, - 0x1e, 0x5f, 0x24, 0x10, 0x99, 0x21, 0xa5, 0xbb, 0x21, 0xc4, 0x53, 0x1c, 0x61, 0x38, 0xda, 0x1b, - 0x03, 0x89, 0x45, 0x99, 0xe2, 0xa4, 0xeb, 0x20, 0x46, 0xfe, 0x33, 0xdf, 0x46, 0xe8, 0x98, 0xa3, - 0x44, 0x40, 0xfc, 0x2a, 0x8d, 0x42, 0x94, 0x86, 0x59, 0x59, 0x13, 0xa5, 0xc1, 0xbe, 0x26, 0x0b, - 0x53, 0xd6, 0x36, 0xd4, 0x56, 0xcd, 0x52, 0x2e, 0xa9, 0xb5, 0x96, 0x46, 0x03, 0x06, 0x17, 0x86, - 0x0b, 0xef, 0x23, 0x32, 0x69, 0x0c, 0xe2, 0x2c, 0x2a, 0xab, 0x88, 0xb9, 0x42, 0xb3, 0x4f, 0x58, - 0x66, 0x81, 0xba, 0x40, 0x24, 0xe4, 0xf6, 0x17, 0x4c, 0xdc, 0x0b, 0x7c, 0x69, 0xe9, 0x2d, 0x88, - 0x80, 0xde, 0xfe, 0x54, 0x7b, 0xe2, 0xbb, 0xa1, 0xfb, 0xf4, 0xda, 0x63, 0x31, 0xf3, 0xdd, 0x3e, - 0x08, 0xd1, 0xfd, 0x36, 0x08, 0xf1, 0xb5, 0x07, 0x56, 0xf2, 0xca, 0x5c, 0xa1, 0x98, 0x5b, 0xcc, - 0xa7, 0x02, 0x52, 0x12, 0x80, 0x0a, 0xce, 0x2e, 0x16, 0x66, 0xd6, 0x52, 0x7d, 0xf6, 0xf5, 0xc2, - 0xf2, 0xda, 0xc9, 0x13, 0xa9, 0xa0, 0x0d, 0x28, 0x32, 0x41, 0xc8, 0x6d, 0x30, 0x35, 0x99, 0x0a, - 0x63, 0x24, 0x24, 0x18, 0xc1, 0xc2, 0xf9, 0xfc, 0x1c, 0x5a, 0x44, 0xbc, 0x12, 0xb4, 0xe9, 0x97, - 0x06, 0x20, 0x46, 0x25, 0xb9, 0x42, 0x61, 0x31, 0x15, 0xb5, 0x39, 0x57, 0xd7, 0xe4, 0x85, 0xe5, - 0xf9, 0x54, 0xcc, 0xe6, 0x9c, 0x97, 0x0b, 0xc5, 0x95, 0x14, 0xd8, 0x0c, 0x4b, 0xf9, 0xd5, 0xd5, - 0x99, 0xf9, 0x7c, 0x2a, 0x6e, 0x5b, 0xe4, 0x1e, 0x58, 0xcb, 0xaf, 0xa6, 0x12, 0x9e, 0x61, 0xe1, - 0x2d, 0x06, 0xec, 0x5b, 0xe4, 0x97, 0x8b, 0x4b, 0xa9, 0xa4, 0x34, 0x04, 0x03, 0xec, 0x16, 0x62, - 0x10, 0x83, 0x6d, 0x22, 0x1c, 0x69, 0xca, 0x19, 0x08, 0x63, 0x19, 0xf2, 0x08, 0xd0, 0x42, 0xca, - 0xcc, 0x42, 0x98, 0x46, 0x17, 0x46, 0x71, 0x72, 0x71, 0x26, 0x97, 0x5f, 0x54, 0x0a, 0x2b, 0x6b, - 0x0b, 0x85, 0xe5, 0x99, 0x45, 0xf4, 0x9d, 0x2d, 0x93, 0xf3, 0xff, 0x56, 0x5c, 0x90, 0xf3, 0x73, - 0xe8, 0x3f, 0x97, 0x6c, 0x25, 0x3f, 0xb3, 0x86, 0xb2, 0x60, 0xe6, 0x28, 0x8c, 0x74, 0xcb, 0x33, - 0xdd, 0x76, 0x46, 0xe6, 0xf9, 0x00, 0x0c, 0x77, 0x49, 0x99, 0x5d, 0x77, 0xd1, 0x3d, 0x10, 0x66, - 0x91, 0xc6, 0x8a, 0xc8, 0x6d, 0x5d, 0x73, 0x2f, 0x8d, 0xbb, 0x8e, 0x42, 0x42, 0x71, 0xee, 0x42, - 0x1a, 0xdc, 0xa6, 0x90, 0x12, 0x8a, 0x8e, 0x70, 0x7a, 0x24, 0x00, 0xe9, 0xed, 0xb8, 0x7d, 0xf6, - 0x7b, 0x9f, 0x67, 0xbf, 0xdf, 0xd5, 0x3e, 0x80, 0x43, 0xdb, 0xcf, 0xa1, 0x63, 0x14, 0x2f, 0x04, - 0x60, 0x5f, 0xf7, 0x7e, 0xa3, 0xeb, 0x18, 0xee, 0x86, 0x48, 0x5d, 0xb3, 0x36, 0x0d, 0x51, 0x73, - 0x6f, 0xe9, 0x92, 0xc9, 0x89, 0xba, 0xdd, 0x57, 0x1c, 0xe5, 0x2e, 0x05, 0xc1, 0xed, 0x9a, 0x06, - 0x36, 0x9a, 0x8e, 0x91, 0x3e, 0xda, 0x07, 0x7b, 0xbb, 0x92, 0x77, 0x1d, 0xe8, 0x0d, 0x00, 0x55, - 0xbd, 0xd1, 0xb2, 0x58, 0x5d, 0x65, 0x69, 0x26, 0x46, 0x25, 0x74, 0x0b, 0x93, 0x14, 0xd2, 0xb2, - 0x6c, 0x7d, 0x90, 0xea, 0x81, 0x89, 0xa8, 0xc1, 0x69, 0x67, 0xa0, 0x21, 0x3a, 0xd0, 0x83, 0xdb, - 0xcc, 0xb4, 0xa3, 0x64, 0x1d, 0x83, 0x54, 0xa9, 0x56, 0xd5, 0x74, 0x4b, 0x31, 0xad, 0xa6, 0xa6, - 0xd6, 0xab, 0x7a, 0x85, 0xe6, 0xd1, 0x68, 0x36, 0xbc, 0xa1, 0xd6, 0x4c, 0x4d, 0x1e, 0x64, 0xea, - 0x55, 0xa1, 0x25, 0x08, 0x5a, 0x2c, 0x9a, 0x2e, 0x44, 0xc4, 0x83, 0x60, 0x6a, 0x1b, 0x91, 0xf9, - 0x59, 0x3f, 0xc4, 0x5d, 0xdd, 0x99, 0x74, 0x08, 0x12, 0x17, 0xd4, 0x4b, 0xaa, 0x22, 0x3a, 0x6e, - 0xe6, 0x89, 0x38, 0x91, 0xad, 0xf0, 0xae, 0xfb, 0x18, 0x8c, 0x50, 0x13, 0x9c, 0x23, 0xde, 0xa8, - 0x54, 0x53, 0x4d, 0x93, 0x3a, 0x2d, 0x4a, 0x4d, 0x25, 0xa2, 0x2b, 0x10, 0xd5, 0xac, 0xd0, 0x48, - 0xd3, 0x30, 0x4c, 0x11, 0x75, 0x4c, 0xbc, 0xd5, 0x46, 0x4d, 0x53, 0xc8, 0x33, 0x80, 0x49, 0xf3, - 0xa9, 0x3d, 0xb2, 0x21, 0x62, 0xb1, 0xc4, 0x0d, 0xc8, 0x88, 0x4c, 0x69, 0x1e, 0x6e, 0xa0, 0xb0, - 0x8a, 0xa6, 0x6b, 0x4d, 0xd5, 0xd2, 0x14, 0xed, 0x3f, 0x5a, 0x68, 0xab, 0xa8, 0x7a, 0x59, 0xd9, - 0x54, 0xcd, 0xcd, 0xf4, 0x88, 0x9b, 0xe0, 0x00, 0xb1, 0x9d, 0xe7, 0xa6, 0x79, 0x6a, 0x39, 0xa3, - 0x97, 0xef, 0x45, 0x3b, 0x29, 0x0b, 0xfb, 0x28, 0x11, 0x3a, 0x05, 0xe7, 0xac, 0x94, 0x36, 0xb5, - 0xd2, 0x45, 0xa5, 0x65, 0x6d, 0x9c, 0x4e, 0x5f, 0xe7, 0x66, 0xa0, 0x83, 0x5c, 0xa5, 0x36, 0xb3, - 0xc4, 0xa4, 0x88, 0x16, 0xd2, 0x2a, 0x24, 0xc8, 0x7a, 0xd4, 0xab, 0x0f, 0xe1, 0xb0, 0x8d, 0x26, - 0xad, 0x11, 0xc9, 0x2e, 0x9b, 0xdb, 0xe5, 0xc4, 0xf1, 0x02, 0x07, 0x2c, 0x61, 0x7f, 0x9a, 0x0d, - 0xaf, 0xae, 0xe4, 0xf3, 0x73, 0x72, 0x5c, 0xb0, 0x9c, 0x35, 0x9a, 0x24, 0xa6, 0x2a, 0x86, 0xed, - 0xe3, 0x38, 0x8b, 0xa9, 0x8a, 0x21, 0x3c, 0x8c, 0xfe, 0x2a, 0x95, 0xd8, 0xb4, 0xf1, 0xd9, 0x85, - 0x37, 0xeb, 0x66, 0x3a, 0xe5, 0xf1, 0x57, 0xa9, 0x34, 0xcf, 0x0c, 0x78, 0x98, 0x9b, 0xb8, 0x25, - 0xf6, 0x3a, 0xfe, 0x72, 0x03, 0x87, 0x3a, 0x66, 0xd9, 0x0e, 0xc5, 0x3b, 0x36, 0xb6, 0x3a, 0x81, - 0x92, 0xe7, 0x8e, 0x8d, 0xad, 0x76, 0xd8, 0xcd, 0xf4, 0x01, 0xac, 0xa9, 0x95, 0xd0, 0xe5, 0xe5, - 0xf4, 0x7e, 0xb7, 0xb5, 0x4b, 0x21, 0x4d, 0x60, 0x20, 0x97, 0x14, 0x4d, 0x57, 0xd7, 0x71, 0xed, - 0xd5, 0x26, 0x7e, 0x31, 0xd3, 0x63, 0x6e, 0xe3, 0x64, 0xa9, 0x94, 0xa7, 0xda, 0x19, 0xaa, 0x94, - 0x8e, 0xc2, 0x90, 0xb1, 0x7e, 0xa1, 0xc4, 0x82, 0x4b, 0x41, 0x9e, 0x8d, 0xea, 0x95, 0xf4, 0x4d, - 0xd4, 0x4d, 0x83, 0x44, 0x41, 0x43, 0x6b, 0x85, 0x8a, 0xa5, 0xdb, 0x90, 0xdc, 0xdc, 0x54, 0x9b, - 0x0d, 0x5a, 0xa4, 0x4d, 0x74, 0xaa, 0x96, 0xbe, 0x99, 0x99, 0x32, 0xf9, 0xb2, 0x10, 0x4b, 0x79, - 0x18, 0x23, 0x93, 0xd7, 0x55, 0xdd, 0x50, 0x5a, 0xa6, 0xa6, 0x38, 0x43, 0xb4, 0xd7, 0xe2, 0x16, - 0x32, 0x2c, 0xf9, 0x7a, 0x61, 0x56, 0x34, 0x31, 0x99, 0x09, 0x23, 0xb1, 0x3c, 0xe7, 0x61, 0xa4, - 0xa5, 0x57, 0x75, 0x0c, 0x71, 0xd4, 0x10, 0x30, 0xdb, 0xb0, 0xe9, 0x5f, 0xf7, 0x6f, 0xd3, 0x74, - 0x17, 0xdd, 0xd6, 0x2c, 0x48, 0xe4, 0xe1, 0x56, 0xa7, 0x30, 0x93, 0x85, 0x84, 0x3b, 0x76, 0xa4, - 0x18, 0xb0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0xb6, 0x30, 0x47, 0x6a, 0xe1, 0x83, 0x79, 0x2c, - 0x6c, 0x58, 0x93, 0x17, 0x17, 0xd6, 0xf2, 0x8a, 0x5c, 0x5c, 0x5e, 0x5b, 0x58, 0xca, 0xa7, 0x82, - 0x47, 0x63, 0xd1, 0x77, 0xfa, 0x53, 0x0f, 0xe3, 0x5f, 0x5f, 0xe6, 0xd5, 0x3e, 0x48, 0x7a, 0xfb, - 0x60, 0xe9, 0x5f, 0x60, 0xbf, 0x78, 0x68, 0x35, 0x35, 0x4b, 0xb9, 0x5c, 0x6d, 0xd2, 0x70, 0xae, - 0xab, 0xac, 0x93, 0xb4, 0x57, 0x62, 0x84, 0x5b, 0xe1, 0xe3, 0xfd, 0xfd, 0x68, 0x73, 0x96, 0x9a, - 0x48, 0x8b, 0x30, 0x86, 0x2e, 0xc3, 0x5e, 0x53, 0x2f, 0xab, 0xcd, 0xb2, 0xe2, 0x1c, 0x17, 0x28, - 0x6a, 0x09, 0xe3, 0xc0, 0x34, 0x58, 0x25, 0xb1, 0x59, 0xae, 0xd7, 0x8d, 0x55, 0x6e, 0xec, 0xa4, - 0xd8, 0x19, 0x6e, 0xda, 0x16, 0x35, 0xc1, 0xed, 0xa2, 0x06, 0x7b, 0xaf, 0xba, 0xda, 0xc0, 0xb0, - 0xb1, 0x9a, 0x5b, 0xb4, 0x7b, 0x8b, 0xca, 0x51, 0x14, 0xe4, 0xc9, 0xf5, 0x47, 0xb7, 0x06, 0x6e, - 0x3f, 0xfe, 0x32, 0x08, 0x09, 0x77, 0x07, 0x47, 0x1a, 0xe2, 0x12, 0x4d, 0xf3, 0x01, 0x9a, 0x05, - 0x0e, 0xef, 0xd8, 0xef, 0x8d, 0xcf, 0x92, 0xfc, 0x9f, 0x8d, 0xb0, 0xbe, 0x4a, 0x66, 0x48, 0x52, - 0x7b, 0x49, 0xac, 0x69, 0xac, 0x5b, 0x8f, 0xca, 0xfc, 0x0a, 0x93, 0x5d, 0xe4, 0x82, 0x49, 0xb9, - 0x23, 0x94, 0xfb, 0xa6, 0x9d, 0xb9, 0xcf, 0xad, 0x52, 0xf2, 0xd8, 0xb9, 0x55, 0x65, 0xb9, 0x20, - 0x2f, 0xcd, 0x2c, 0xca, 0x1c, 0x2e, 0x1d, 0x80, 0x50, 0x4d, 0x7d, 0x68, 0xcb, 0x5b, 0x29, 0xa8, - 0xa8, 0x57, 0xc7, 0x23, 0x03, 0x39, 0xf2, 0xf0, 0xe6, 0x67, 0x2a, 0xfa, 0x08, 0x43, 0x7f, 0x02, - 0xc2, 0xd4, 0x5f, 0x12, 0x00, 0xf7, 0x58, 0x6a, 0x8f, 0x14, 0x85, 0xd0, 0x6c, 0x41, 0x26, 0xe1, - 0x8f, 0xf1, 0xce, 0xa4, 0xca, 0xca, 0x42, 0x7e, 0x16, 0x77, 0x40, 0x66, 0x1a, 0x22, 0xcc, 0x09, - 0x64, 0x6b, 0xd8, 0x6e, 0x40, 0x10, 0xbb, 0xe4, 0x1c, 0x01, 0xa1, 0x2d, 0x2e, 0xe5, 0xf2, 0x72, - 0xaa, 0xcf, 0xbd, 0xbc, 0xdf, 0x0f, 0x40, 0xdc, 0xd5, 0x50, 0x91, 0x52, 0xae, 0xd6, 0x6a, 0xc6, - 0x65, 0x45, 0xad, 0x55, 0x31, 0x43, 0xb1, 0xf5, 0x01, 0x2a, 0x9a, 0x21, 0x92, 0x5e, 0xfd, 0xf7, - 0x0f, 0x89, 0xcd, 0x67, 0x03, 0x90, 0x6a, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf8, 0x58, 0x07, 0xf8, - 0x74, 0x00, 0x92, 0xde, 0x0e, 0xac, 0x6d, 0x78, 0x87, 0x3e, 0xd6, 0xe1, 0x3d, 0x15, 0x80, 0x01, - 0x4f, 0xdf, 0xf5, 0x4f, 0x35, 0xba, 0x27, 0x83, 0x30, 0xdc, 0x05, 0x87, 0x09, 0x88, 0x35, 0xa8, - 0xac, 0x67, 0xbe, 0xb3, 0x97, 0x7b, 0x8d, 0x93, 0xfa, 0xb7, 0xa2, 0x36, 0x2d, 0xde, 0xcf, 0x62, - 0xbd, 0xac, 0x96, 0x31, 0xa9, 0x56, 0x37, 0xaa, 0xd8, 0xbe, 0xb1, 0x27, 0x16, 0xd6, 0xb5, 0x0e, - 0x3a, 0x72, 0xf6, 0x78, 0x7c, 0x07, 0x48, 0x0d, 0xc3, 0xac, 0x5a, 0xd5, 0x4b, 0xe4, 0x78, 0x4e, - 0x3c, 0x48, 0x93, 0x2e, 0x36, 0x24, 0xa7, 0x84, 0x66, 0x41, 0xb7, 0x6c, 0x6b, 0x5d, 0xab, 0xa8, - 0x6d, 0xd6, 0x24, 0x0d, 0x05, 0xe5, 0x94, 0xd0, 0xd8, 0xd6, 0xd8, 0x68, 0x96, 0x8d, 0x16, 0x69, - 0x08, 0x98, 0x1d, 0xc9, 0x7a, 0x01, 0x39, 0xce, 0x64, 0xb6, 0x09, 0xef, 0xd8, 0x9c, 0x27, 0xf8, - 0x84, 0x1c, 0x67, 0x32, 0x66, 0x72, 0x2b, 0x0c, 0xaa, 0x95, 0x4a, 0x93, 0x90, 0x0b, 0x22, 0xd6, - 0x86, 0x26, 0x6d, 0x31, 0x35, 0x1c, 0x3d, 0x07, 0x51, 0xe1, 0x07, 0x52, 0x58, 0x88, 0x27, 0xb0, - 0xe6, 0xd3, 0x73, 0x94, 0x3e, 0xf2, 0x50, 0xaf, 0x0b, 0x25, 0xde, 0xb4, 0x6a, 0x2a, 0xce, 0x81, - 0x5e, 0x1f, 0xea, 0xa3, 0x72, 0xbc, 0x6a, 0xda, 0x27, 0x38, 0x99, 0x17, 0xb0, 0xbc, 0x7a, 0x0f, - 0x24, 0xa5, 0x39, 0x88, 0xd6, 0x0c, 0x8c, 0x0f, 0x82, 0x60, 0xa7, 0xe1, 0x47, 0x7c, 0xce, 0x30, - 0xc7, 0x17, 0xb9, 0xbd, 0x6c, 0x23, 0x47, 0x7f, 0x12, 0x80, 0xa8, 0x10, 0x63, 0xa1, 0x08, 0x35, - 0x54, 0x6b, 0x93, 0xd2, 0x85, 0x73, 0x7d, 0xa9, 0x80, 0x4c, 0xaf, 0x89, 0x1c, 0xbb, 0x19, 0x9d, - 0x86, 0x00, 0x97, 0x93, 0x6b, 0xb2, 0xae, 0x35, 0x4d, 0x2d, 0xd3, 0x06, 0xd7, 0xa8, 0xd7, 0x71, - 0x25, 0x4d, 0xb1, 0xae, 0x5c, 0x3e, 0xcb, 0xc5, 0xe4, 0x5c, 0xdc, 0x6a, 0xaa, 0xd5, 0x9a, 0xc7, - 0x36, 0x44, 0x6d, 0x53, 0x42, 0x61, 0x1b, 0x67, 0xe1, 0x80, 0xe0, 0x2d, 0x6b, 0x96, 0x8a, 0xcd, - 0x73, 0xd9, 0x01, 0x45, 0xe8, 0x69, 0xd7, 0x7e, 0x6e, 0x30, 0xc7, 0xf5, 0x02, 0x9b, 0x3b, 0x8f, - 0x8d, 0xac, 0x51, 0x6f, 0xf7, 0x44, 0x2e, 0xd5, 0xf6, 0xdc, 0x65, 0xde, 0x1b, 0x78, 0x10, 0x9c, - 0xa6, 0xe2, 0xf9, 0xbe, 0xe0, 0xfc, 0x4a, 0xee, 0xa5, 0xbe, 0xd1, 0x79, 0x86, 0x5b, 0x11, 0x1e, - 0x94, 0xb5, 0x8d, 0x9a, 0x56, 0x22, 0xde, 0x81, 0xe7, 0x0e, 0xc3, 0x9d, 0x95, 0xaa, 0xb5, 0xd9, - 0x5a, 0x1f, 0xc7, 0x3b, 0x4c, 0x54, 0x8c, 0x8a, 0xe1, 0xbc, 0xce, 0x20, 0x57, 0xf4, 0x82, 0x7e, - 0xe3, 0xaf, 0x34, 0x62, 0xb6, 0x74, 0xd4, 0xf7, 0xfd, 0x47, 0x76, 0x19, 0x86, 0xb9, 0xb1, 0x42, - 0xcf, 0x54, 0x59, 0x0b, 0x2a, 0xed, 0xf8, 0x40, 0x9e, 0x7e, 0xe5, 0x6d, 0x5a, 0x12, 0xe4, 0x21, - 0x0e, 0x25, 0x3a, 0xd6, 0xa4, 0x66, 0x65, 0xd8, 0xeb, 0xe1, 0x63, 0x31, 0x8c, 0x8f, 0xdc, 0x3b, - 0x33, 0xbe, 0xca, 0x19, 0x87, 0x5d, 0x8c, 0xab, 0x1c, 0x9a, 0x9d, 0x85, 0x81, 0xdd, 0x70, 0xfd, - 0x88, 0x73, 0x25, 0x34, 0x37, 0xc9, 0x3c, 0x0c, 0x52, 0x92, 0x52, 0xcb, 0xb4, 0x8c, 0x3a, 0x4d, - 0x10, 0x3b, 0xd3, 0xfc, 0xf8, 0x6d, 0x16, 0x54, 0x49, 0x02, 0x9b, 0xb5, 0x51, 0xd9, 0xfb, 0x60, - 0x84, 0x48, 0xe8, 0x1e, 0x74, 0xb3, 0xf9, 0x1f, 0x21, 0xa4, 0x7f, 0xfa, 0x08, 0x8b, 0xbd, 0x61, - 0x9b, 0xc0, 0xc5, 0xeb, 0x5a, 0x89, 0x8a, 0x66, 0x61, 0x6e, 0xc3, 0xe7, 0xbf, 0x5a, 0x4d, 0xda, - 0xf1, 0x1d, 0x43, 0xfa, 0x89, 0x77, 0xbd, 0x2b, 0x31, 0xcf, 0x90, 0x33, 0xb5, 0x5a, 0xb6, 0x08, - 0xfb, 0xbb, 0xac, 0x6c, 0x0f, 0x9c, 0x4f, 0x72, 0xce, 0x91, 0x8e, 0xd5, 0x25, 0xb4, 0x2b, 0x20, - 0xe4, 0xf6, 0x7a, 0xf4, 0xc0, 0xf9, 0x14, 0xe7, 0x94, 0x38, 0x56, 0x2c, 0x0b, 0x61, 0x3c, 0x07, - 0x43, 0xf8, 0xa4, 0xbe, 0x6e, 0x98, 0xfc, 0xb9, 0xb7, 0x07, 0xba, 0xa7, 0x39, 0xdd, 0x20, 0x07, - 0xd2, 0xa7, 0x60, 0xc2, 0x75, 0x06, 0xa2, 0x1b, 0xf8, 0x00, 0xd4, 0x03, 0xc5, 0x33, 0x9c, 0xa2, - 0x9f, 0xd8, 0x13, 0xe8, 0x0c, 0x24, 0x2a, 0x06, 0x4f, 0xc3, 0xfe, 0xf0, 0x67, 0x39, 0x3c, 0x2e, - 0x30, 0x9c, 0xa2, 0x61, 0x34, 0x5a, 0x35, 0x92, 0xa3, 0xfd, 0x29, 0x3e, 0x2f, 0x28, 0x04, 0x86, - 0x53, 0xec, 0xc2, 0xad, 0x5f, 0x10, 0x14, 0xa6, 0xcb, 0x9f, 0xf7, 0x90, 0xb3, 0xde, 0xda, 0x96, - 0xa1, 0xf7, 0x32, 0x88, 0xe7, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x0b, 0x62, 0xbd, 0x2e, 0xc4, - 0x17, 0x39, 0x3c, 0xaa, 0x89, 0x15, 0xc0, 0x7d, 0x26, 0x92, 0x0c, 0x79, 0xb7, 0xe2, 0x4f, 0xf1, - 0x25, 0x4e, 0x91, 0x74, 0xc1, 0xf8, 0x34, 0x2c, 0xcd, 0xb4, 0xf0, 0x51, 0xbd, 0x07, 0x92, 0x17, - 0xc4, 0x34, 0x38, 0x84, 0xbb, 0x72, 0x5d, 0xd3, 0x4b, 0x9b, 0xbd, 0x31, 0xbc, 0x28, 0x5c, 0x29, - 0x30, 0x84, 0x02, 0x33, 0x4f, 0x5d, 0x6d, 0xe2, 0xc3, 0x75, 0xad, 0xa7, 0xe5, 0xf8, 0x32, 0xe7, - 0x48, 0xd8, 0x20, 0xee, 0x91, 0x96, 0xbe, 0x1b, 0x9a, 0x97, 0x84, 0x47, 0x5c, 0x30, 0xbe, 0xf5, - 0xf0, 0xc9, 0x94, 0x74, 0x12, 0xbb, 0x61, 0xfb, 0x8a, 0xd8, 0x7a, 0x0c, 0xbb, 0xe4, 0x66, 0xc4, - 0x95, 0x36, 0xf1, 0x11, 0xbc, 0x17, 0x9a, 0xaf, 0x8a, 0x95, 0xa6, 0x00, 0x02, 0x7e, 0x00, 0x0e, - 0x74, 0x4d, 0xf5, 0x3d, 0x90, 0x7d, 0x8d, 0x93, 0xed, 0xeb, 0x92, 0xee, 0x79, 0x4a, 0xd8, 0x2d, - 0xe5, 0xd7, 0x45, 0x4a, 0xd0, 0xda, 0xb8, 0x56, 0x48, 0x1b, 0x6b, 0xaa, 0x1b, 0xbb, 0xf3, 0xda, - 0x37, 0x84, 0xd7, 0x18, 0xd6, 0xe3, 0xb5, 0x35, 0xd8, 0xc7, 0x19, 0x77, 0xb7, 0xae, 0x2f, 0x8b, - 0xc4, 0xca, 0xd0, 0x45, 0xef, 0xea, 0xfe, 0x3b, 0x8c, 0xda, 0xee, 0x14, 0x1d, 0x98, 0xa9, 0x90, - 0x83, 0x01, 0x7f, 0xe6, 0x57, 0x38, 0xb3, 0xc8, 0xf8, 0x76, 0x0b, 0x67, 0x2e, 0xa9, 0x0d, 0x42, - 0x7e, 0x1e, 0xd2, 0x82, 0xbc, 0xa5, 0x63, 0x83, 0x6f, 0x54, 0x74, 0x5c, 0xc6, 0x72, 0x0f, 0xd4, - 0xdf, 0x6c, 0x5b, 0xaa, 0xa2, 0x0b, 0x4e, 0x98, 0x17, 0x20, 0x65, 0xf7, 0x1b, 0x4a, 0xb5, 0xde, - 0x30, 0xb0, 0xb5, 0xdc, 0x99, 0xf1, 0x5b, 0x62, 0xa5, 0x6c, 0xdc, 0x02, 0x85, 0x65, 0xf3, 0x90, - 0xa4, 0x97, 0xbd, 0x86, 0xe4, 0xb7, 0x39, 0xd1, 0x80, 0x83, 0xe2, 0x89, 0x03, 0x3b, 0x25, 0xec, - 0x79, 0x7b, 0xc9, 0x7f, 0xdf, 0x11, 0x89, 0x83, 0x43, 0x58, 0xf4, 0x0d, 0xb6, 0x55, 0x62, 0xc9, - 0xef, 0xf5, 0x6b, 0xfa, 0x3f, 0xaf, 0xf1, 0x3d, 0xeb, 0x2d, 0xc4, 0xd9, 0x45, 0xe2, 0x1e, 0x6f, - 0xb9, 0xf4, 0x27, 0x7b, 0xe4, 0x9a, 0xed, 0x21, 0x4f, 0xb5, 0xcc, 0x9e, 0x85, 0x01, 0x4f, 0xa9, - 0xf4, 0xa7, 0xfa, 0x2f, 0x4e, 0x95, 0x70, 0x57, 0xca, 0xec, 0x34, 0x84, 0x48, 0xd9, 0xf3, 0x87, - 0xff, 0x37, 0x87, 0x53, 0xf3, 0xec, 0xbf, 0x42, 0x54, 0x94, 0x3b, 0x7f, 0xe8, 0xff, 0x70, 0xa8, - 0x0d, 0x21, 0x70, 0x51, 0xea, 0xfc, 0xe1, 0xff, 0x2b, 0xe0, 0x02, 0x42, 0xe0, 0xbd, 0xbb, 0xf0, - 0x07, 0xff, 0x17, 0xe2, 0xe9, 0x4a, 0xf8, 0x8e, 0xbc, 0xf3, 0x61, 0x35, 0xce, 0x1f, 0xfd, 0x28, - 0xbf, 0xb9, 0x40, 0x64, 0x4f, 0x41, 0xb8, 0x47, 0x87, 0xff, 0x3f, 0x87, 0x32, 0x7b, 0xac, 0x20, - 0x71, 0x57, 0x5d, 0xf3, 0x87, 0x7f, 0x82, 0xc3, 0xdd, 0x28, 0x32, 0x74, 0x5e, 0xd7, 0xfc, 0x09, - 0x3e, 0x29, 0x86, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0xa4, 0xf9, 0xa3, 0x3f, 0x25, 0xbc, 0x2e, 0x20, - 0xb8, 0x9b, 0x62, 0x76, 0x9a, 0xf2, 0xc7, 0x7f, 0x9a, 0xe3, 0x1d, 0x0c, 0xf1, 0x80, 0x2b, 0x4d, - 0xfa, 0x53, 0x3c, 0x26, 0x3c, 0xe0, 0x42, 0x91, 0x6d, 0xd4, 0x5e, 0xfa, 0xfc, 0x99, 0x3e, 0x23, - 0xb6, 0x51, 0x5b, 0xe5, 0x23, 0xab, 0x49, 0xb3, 0x85, 0x3f, 0xc5, 0x67, 0xc5, 0x6a, 0x52, 0x7b, - 0x32, 0x8c, 0xf6, 0x5a, 0xe2, 0xcf, 0xf1, 0x39, 0x31, 0x8c, 0xb6, 0x52, 0x82, 0x95, 0x49, 0xea, - 0xac, 0x23, 0xfe, 0x7c, 0x8f, 0x73, 0xbe, 0xa1, 0x8e, 0x32, 0x92, 0xbd, 0x1f, 0xf6, 0x75, 0xaf, - 0x21, 0xfe, 0xac, 0x4f, 0x5c, 0x6b, 0xeb, 0xfa, 0xdd, 0x25, 0x04, 0x4b, 0xde, 0x48, 0xb7, 0xfa, - 0xe1, 0x4f, 0xfb, 0xe4, 0x35, 0xef, 0x83, 0x9d, 0xbb, 0x7c, 0x60, 0x87, 0x06, 0x4e, 0xea, 0xf6, - 0xe7, 0x7a, 0x9a, 0x73, 0xb9, 0x40, 0x64, 0x6b, 0xf0, 0xcc, 0xed, 0x8f, 0x7f, 0x46, 0x6c, 0x0d, - 0x8e, 0x40, 0x70, 0x54, 0x6f, 0xd5, 0x6a, 0x24, 0x38, 0xa4, 0x9d, 0x7f, 0xd2, 0x90, 0xfe, 0xcd, - 0x07, 0x7c, 0x63, 0x08, 0x00, 0xe6, 0xd0, 0xb0, 0x56, 0x5f, 0x47, 0x1f, 0xf8, 0x20, 0x7f, 0xfb, - 0x81, 0x48, 0x08, 0xc4, 0x1a, 0xf7, 0x13, 0xb0, 0x87, 0x46, 0x7a, 0x86, 0xed, 0x83, 0xfd, 0xdd, - 0x07, 0xfc, 0x35, 0xab, 0x03, 0x71, 0x08, 0xd8, 0x4b, 0xdb, 0x9d, 0x09, 0xde, 0xf5, 0x12, 0xd0, - 0x07, 0xcd, 0x33, 0xd0, 0x4f, 0x7e, 0xd9, 0x61, 0xa9, 0x15, 0x3f, 0xf4, 0xef, 0x39, 0x5a, 0xd8, - 0x13, 0x87, 0xd5, 0x8d, 0xa6, 0x86, 0x5f, 0x4d, 0x3f, 0xec, 0x1f, 0x38, 0xd6, 0x06, 0x10, 0x70, - 0x49, 0x35, 0xad, 0x5e, 0xe6, 0xfd, 0x47, 0x01, 0x16, 0x00, 0x32, 0x68, 0xf2, 0xfd, 0xa2, 0xb6, - 0xe5, 0x87, 0x7d, 0x4f, 0x0c, 0x9a, 0xdb, 0x63, 0x02, 0x8c, 0x91, 0xaf, 0xec, 0xa7, 0x07, 0x3e, - 0xe0, 0x3f, 0x71, 0xb0, 0x83, 0xc8, 0x1d, 0xea, 0x7e, 0xb4, 0x03, 0xf3, 0xc6, 0xbc, 0xc1, 0x0e, - 0x75, 0xe0, 0xcf, 0x51, 0xd8, 0x8b, 0x36, 0x58, 0x5f, 0x27, 0xd6, 0x0d, 0x6b, 0x73, 0x02, 0x2b, - 0x06, 0x3f, 0x8b, 0x09, 0xe2, 0xd7, 0xd1, 0xdd, 0x9d, 0xdf, 0x64, 0x0e, 0x40, 0x78, 0xb5, 0xb5, - 0xbe, 0xbe, 0x45, 0x7e, 0xec, 0x64, 0xb6, 0xd6, 0xf9, 0x9b, 0x69, 0xf2, 0x35, 0x73, 0x35, 0x08, - 0x03, 0xd8, 0xa1, 0x90, 0x97, 0x01, 0x66, 0x41, 0xd7, 0x0a, 0x1b, 0x52, 0x1a, 0x22, 0x74, 0x02, - 0xc7, 0xa9, 0x59, 0xe0, 0xde, 0x3d, 0x72, 0x84, 0xfe, 0x58, 0xef, 0xb8, 0xad, 0x99, 0xa4, 0xe7, - 0xfb, 0x7d, 0xb6, 0x66, 0xd2, 0xd6, 0x4c, 0xb1, 0x5f, 0x41, 0xd9, 0x9a, 0x29, 0x5b, 0x73, 0x82, - 0x1e, 0x92, 0x05, 0x6d, 0xcd, 0x09, 0x5b, 0x33, 0x4d, 0xcf, 0x39, 0x07, 0x6c, 0xcd, 0xb4, 0xad, - 0x39, 0x49, 0x4f, 0x36, 0x43, 0xb6, 0xe6, 0xa4, 0xad, 0x39, 0x45, 0x0f, 0x34, 0x87, 0x6c, 0xcd, - 0x29, 0x5b, 0x73, 0x9a, 0x1e, 0x62, 0x4a, 0xb6, 0xe6, 0xb4, 0xad, 0x39, 0x43, 0xdf, 0x3f, 0xf7, - 0xdb, 0x9a, 0x33, 0xd2, 0x28, 0xf4, 0xb3, 0x99, 0x1e, 0xa3, 0xef, 0x6b, 0x06, 0x51, 0xd5, 0xcf, - 0xa6, 0x7a, 0xcc, 0xd1, 0x1d, 0xa7, 0xef, 0x98, 0x23, 0x8e, 0xee, 0xb8, 0xa3, 0x9b, 0xa4, 0xbf, - 0x99, 0x4c, 0x39, 0xba, 0x49, 0x47, 0x37, 0x95, 0x1e, 0x20, 0x9b, 0xd4, 0xd1, 0x4d, 0x39, 0xba, - 0x13, 0xe9, 0x24, 0x59, 0x01, 0x47, 0x77, 0xc2, 0xd1, 0x4d, 0xa7, 0x07, 0xc9, 0x59, 0xad, 0xa3, - 0x9b, 0x96, 0xee, 0x84, 0x38, 0x2e, 0x95, 0xc2, 0x5f, 0x2f, 0xd2, 0x77, 0xd9, 0xf1, 0x49, 0x18, - 0x27, 0x31, 0x41, 0x97, 0x15, 0x6d, 0x01, 0x0d, 0x78, 0x6e, 0xca, 0x25, 0x80, 0x3e, 0xb3, 0x2a, - 0xf4, 0xb7, 0x58, 0x99, 0xd7, 0x03, 0x10, 0x5b, 0xbb, 0x6c, 0xd0, 0x9f, 0xed, 0x98, 0x7f, 0xe7, - 0xc5, 0x15, 0x83, 0x9e, 0x3a, 0x91, 0xce, 0xd0, 0x09, 0x05, 0xf8, 0xa0, 0xa7, 0x9c, 0x09, 0x4d, - 0x4d, 0xa7, 0x0f, 0xd3, 0x09, 0xd9, 0xba, 0x69, 0x69, 0x02, 0x12, 0xae, 0x09, 0x4d, 0xd2, 0xd7, - 0xd3, 0xde, 0x19, 0x05, 0xe4, 0xb8, 0x33, 0xa3, 0xc9, 0x5c, 0x18, 0x48, 0xd8, 0x93, 0x7f, 0xd6, - 0x65, 0x23, 0xf3, 0x58, 0x1f, 0xc4, 0xd9, 0x31, 0x17, 0x9d, 0x15, 0xb9, 0x15, 0xeb, 0x67, 0xb7, - 0xf8, 0x30, 0xd0, 0x77, 0xac, 0x49, 0xdb, 0x92, 0x64, 0x00, 0x66, 0x4a, 0x22, 0x9c, 0x8d, 0x24, - 0x77, 0xec, 0x17, 0x57, 0xc7, 0xee, 0xd8, 0x76, 0x07, 0x11, 0xdf, 0x4d, 0xb0, 0xe4, 0x36, 0x5e, - 0xac, 0xea, 0xd6, 0xf1, 0xc9, 0xd3, 0xc4, 0xc1, 0x25, 0x9b, 0x45, 0x2a, 0x42, 0x74, 0x16, 0x37, - 0x33, 0x65, 0x24, 0x43, 0x0f, 0xe5, 0x4e, 0xfd, 0xf5, 0xea, 0xd8, 0x94, 0x0f, 0x23, 0xcf, 0x3b, - 0xe3, 0x4b, 0x5b, 0x84, 0xf5, 0xe4, 0x09, 0x02, 0x47, 0x62, 0x9a, 0x90, 0x28, 0xed, 0xa4, 0x18, - 0x2a, 0x39, 0x6d, 0xa7, 0xef, 0xe1, 0x83, 0xb9, 0xd4, 0x5b, 0x57, 0xc7, 0x12, 0x4b, 0x5b, 0x8e, - 0xdc, 0x19, 0x0a, 0xb9, 0xca, 0x45, 0x21, 0xc2, 0xae, 0x72, 0x73, 0xaf, 0xbd, 0x79, 0x70, 0xcf, - 0xeb, 0xf8, 0xf9, 0x39, 0x7e, 0xde, 0x78, 0xf3, 0x60, 0xe0, 0x3d, 0xfc, 0xbc, 0x8f, 0x9f, 0x87, - 0xdf, 0x3a, 0x18, 0x78, 0x11, 0x3f, 0x2f, 0xe3, 0xe7, 0x7b, 0xf8, 0x79, 0x0d, 0x3f, 0xaf, 0xe3, - 0xe7, 0x0d, 0xfc, 0xbc, 0xf3, 0xd6, 0xc1, 0x3d, 0xef, 0xe1, 0xff, 0xf7, 0xf1, 0xff, 0xc3, 0xbf, - 0x3a, 0xb8, 0xe7, 0x6f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x4b, 0x4e, 0x2e, 0xe2, 0x2e, 0x00, - 0x00, + // 4043 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0xee, 0xd2, + 0x76, 0x2c, 0xdb, 0xb1, 0x64, 0x6b, 0xa5, 0xbd, 0x70, 0xff, 0x89, 0x87, 0xa4, 0xb8, 0x5a, 0xed, + 0x5f, 0x12, 0x15, 0x50, 0x8a, 0xd7, 0xe9, 0x03, 0x06, 0x04, 0x3f, 0x52, 0xd8, 0x05, 0x01, 0x06, + 0x00, 0x77, 0x2d, 0x3f, 0x6d, 0xc7, 0xbd, 0x4c, 0xa6, 0xd3, 0x5b, 0xda, 0x99, 0x26, 0xae, 0xe3, + 0xb6, 0x99, 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, + 0xce, 0x5b, 0xa7, 0xd3, 0xf1, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0xdc, 0x69, 0xa6, + 0x7e, 0xe9, 0x7c, 0x37, 0x00, 0xbc, 0x68, 0x41, 0x65, 0xea, 0xe4, 0x49, 0xfa, 0xce, 0x39, 0xbf, + 0x1f, 0xce, 0x77, 0xbe, 0xf3, 0x7d, 0xe7, 0xe0, 0x23, 0xe0, 0x7b, 0x6b, 0x70, 0xae, 0x6d, 0xdb, + 0x6d, 0x13, 0x2d, 0x77, 0x1d, 0xdb, 0xb3, 0x1b, 0xbd, 0xd6, 0x72, 0x13, 0xb9, 0xba, 0x63, 0x74, + 0x3d, 0xdb, 0x59, 0x22, 0x32, 0x69, 0x86, 0x5a, 0x2c, 0x71, 0x8b, 0xc2, 0x36, 0xcc, 0x5e, 0x33, + 0x4c, 0xb4, 0xee, 0x1b, 0xd6, 0x91, 0x27, 0x5d, 0x86, 0x44, 0xcb, 0x30, 0x91, 0x2c, 0x9c, 0x8b, + 0x2f, 0x66, 0x56, 0x1e, 0x5b, 0x1a, 0x00, 0x2d, 0xf5, 0x23, 0x76, 0xb1, 0x58, 0x21, 0x88, 0xc2, + 0xbb, 0x09, 0x98, 0x1b, 0xa1, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x07, 0x33, 0x0a, 0x8b, 0x69, 0x85, + 0xfc, 0x2f, 0xc9, 0x30, 0xd5, 0xd5, 0xf4, 0xdb, 0x5a, 0x1b, 0xc9, 0x31, 0x22, 0xe6, 0x43, 0x29, + 0x0f, 0xd0, 0x44, 0x5d, 0x64, 0x35, 0x91, 0xa5, 0x1f, 0xca, 0xf1, 0x73, 0xf1, 0xc5, 0xb4, 0x12, + 0x92, 0x48, 0x4f, 0xc3, 0x6c, 0xb7, 0xd7, 0x30, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0xb9, 0xf8, 0x62, + 0x52, 0x11, 0xa9, 0x62, 0x3d, 0x30, 0x7e, 0x02, 0x66, 0xee, 0x22, 0xed, 0x76, 0xd8, 0x34, 0x43, + 0x4c, 0x73, 0x58, 0x1c, 0x32, 0xac, 0x40, 0xb6, 0x83, 0x5c, 0x57, 0x6b, 0x23, 0xd5, 0x3b, 0xec, + 0x22, 0x39, 0x41, 0x66, 0x7f, 0x6e, 0x68, 0xf6, 0x83, 0x33, 0xcf, 0x30, 0xd4, 0xde, 0x61, 0x17, + 0x49, 0x25, 0x48, 0x23, 0xab, 0xd7, 0xa1, 0x0c, 0xc9, 0x63, 0xe2, 0x57, 0xb5, 0x7a, 0x9d, 0x41, + 0x96, 0x14, 0x86, 0x31, 0x8a, 0x29, 0x17, 0x39, 0x77, 0x0c, 0x1d, 0xc9, 0x93, 0x84, 0xe0, 0x89, + 0x21, 0x82, 0x3a, 0xd5, 0x0f, 0x72, 0x70, 0x9c, 0x54, 0x81, 0x34, 0x7a, 0xc9, 0x43, 0x96, 0x6b, + 0xd8, 0x96, 0x3c, 0x45, 0x48, 0x1e, 0x1f, 0xb1, 0x8a, 0xc8, 0x6c, 0x0e, 0x52, 0x04, 0x38, 0xe9, + 0x22, 0x4c, 0xd9, 0x5d, 0xcf, 0xb0, 0x2d, 0x57, 0x4e, 0x9d, 0x13, 0x16, 0x33, 0x2b, 0x1f, 0x1b, + 0x99, 0x08, 0x35, 0x6a, 0xa3, 0x70, 0x63, 0x69, 0x13, 0x44, 0xd7, 0xee, 0x39, 0x3a, 0x52, 0x75, + 0xbb, 0x89, 0x54, 0xc3, 0x6a, 0xd9, 0x72, 0x9a, 0x10, 0x9c, 0x1d, 0x9e, 0x08, 0x31, 0xac, 0xd8, + 0x4d, 0xb4, 0x69, 0xb5, 0x6c, 0x25, 0xe7, 0xf6, 0x8d, 0xa5, 0x53, 0x30, 0xe9, 0x1e, 0x5a, 0x9e, + 0xf6, 0x92, 0x9c, 0x25, 0x19, 0xc2, 0x46, 0x85, 0xff, 0x4e, 0xc2, 0xcc, 0x38, 0x29, 0x76, 0x15, + 0x92, 0x2d, 0x3c, 0x4b, 0x39, 0x76, 0x92, 0x18, 0x50, 0x4c, 0x7f, 0x10, 0x27, 0x7f, 0xc4, 0x20, + 0x96, 0x20, 0x63, 0x21, 0xd7, 0x43, 0x4d, 0x9a, 0x11, 0xf1, 0x31, 0x73, 0x0a, 0x28, 0x68, 0x38, + 0xa5, 0x12, 0x3f, 0x52, 0x4a, 0xdd, 0x84, 0x19, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x36, 0xcf, 0xcd, + 0xe5, 0x28, 0x4f, 0x96, 0xaa, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x7d, 0x63, 0x69, 0x1d, 0xc0, + 0xb6, 0x90, 0xdd, 0x52, 0x9b, 0x48, 0x37, 0xe5, 0xd4, 0x31, 0x51, 0xaa, 0x61, 0x93, 0xa1, 0x28, + 0xd9, 0x54, 0xaa, 0x9b, 0xd2, 0x95, 0x20, 0xd5, 0xa6, 0x8e, 0xc9, 0x94, 0x6d, 0xba, 0xc9, 0x86, + 0xb2, 0x6d, 0x1f, 0x72, 0x0e, 0xc2, 0x79, 0x8f, 0x9a, 0x6c, 0x66, 0x69, 0xe2, 0xc4, 0x52, 0xe4, + 0xcc, 0x14, 0x06, 0xa3, 0x13, 0x9b, 0x76, 0xc2, 0x43, 0xe9, 0x51, 0xf0, 0x05, 0x2a, 0x49, 0x2b, + 0x20, 0xa7, 0x50, 0x96, 0x0b, 0x77, 0xb4, 0x0e, 0x5a, 0xb8, 0x0c, 0xb9, 0xfe, 0xf0, 0x48, 0xf3, + 0x90, 0x74, 0x3d, 0xcd, 0xf1, 0x48, 0x16, 0x26, 0x15, 0x3a, 0x90, 0x44, 0x88, 0x23, 0xab, 0x49, + 0x4e, 0xb9, 0xa4, 0x82, 0xff, 0x5d, 0xb8, 0x04, 0xd3, 0x7d, 0x8f, 0x1f, 0x17, 0x58, 0xf8, 0xe2, + 0x24, 0xcc, 0x8f, 0xca, 0xb9, 0x91, 0xe9, 0x7f, 0x0a, 0x26, 0xad, 0x5e, 0xa7, 0x81, 0x1c, 0x39, + 0x4e, 0x18, 0xd8, 0x48, 0x2a, 0x41, 0xd2, 0xd4, 0x1a, 0xc8, 0x94, 0x13, 0xe7, 0x84, 0xc5, 0xdc, + 0xca, 0xd3, 0x63, 0x65, 0xf5, 0xd2, 0x16, 0x86, 0x28, 0x14, 0x29, 0x7d, 0x0a, 0x12, 0xec, 0x88, + 0xc3, 0x0c, 0x4f, 0x8d, 0xc7, 0x80, 0x73, 0x51, 0x21, 0x38, 0xe9, 0x61, 0x48, 0xe3, 0xbf, 0x34, + 0xb6, 0x93, 0xc4, 0xe7, 0x14, 0x16, 0xe0, 0xb8, 0x4a, 0x0b, 0x90, 0x22, 0x69, 0xd6, 0x44, 0xbc, + 0x34, 0xf8, 0x63, 0xbc, 0x30, 0x4d, 0xd4, 0xd2, 0x7a, 0xa6, 0xa7, 0xde, 0xd1, 0xcc, 0x1e, 0x22, + 0x09, 0x93, 0x56, 0xb2, 0x4c, 0xf8, 0x19, 0x2c, 0x93, 0xce, 0x42, 0x86, 0x66, 0xa5, 0x61, 0x35, + 0xd1, 0x4b, 0xe4, 0xf4, 0x49, 0x2a, 0x34, 0x51, 0x37, 0xb1, 0x04, 0x3f, 0xfe, 0x96, 0x6b, 0x5b, + 0x7c, 0x69, 0xc9, 0x23, 0xb0, 0x80, 0x3c, 0xfe, 0xd2, 0xe0, 0xc1, 0xf7, 0xc8, 0xe8, 0xe9, 0x0d, + 0xe6, 0x62, 0xe1, 0x5b, 0x31, 0x48, 0x90, 0xfd, 0x36, 0x03, 0x99, 0xbd, 0x17, 0x77, 0xab, 0xea, + 0x7a, 0x6d, 0xbf, 0xbc, 0x55, 0x15, 0x05, 0x29, 0x07, 0x40, 0x04, 0xd7, 0xb6, 0x6a, 0xa5, 0x3d, + 0x31, 0xe6, 0x8f, 0x37, 0x77, 0xf6, 0x2e, 0xae, 0x8a, 0x71, 0x1f, 0xb0, 0x4f, 0x05, 0x89, 0xb0, + 0xc1, 0x85, 0x15, 0x31, 0x29, 0x89, 0x90, 0xa5, 0x04, 0x9b, 0x37, 0xab, 0xeb, 0x17, 0x57, 0xc5, + 0xc9, 0x7e, 0xc9, 0x85, 0x15, 0x71, 0x4a, 0x9a, 0x86, 0x34, 0x91, 0x94, 0x6b, 0xb5, 0x2d, 0x31, + 0xe5, 0x73, 0xd6, 0xf7, 0x94, 0xcd, 0x9d, 0x0d, 0x31, 0xed, 0x73, 0x6e, 0x28, 0xb5, 0xfd, 0x5d, + 0x11, 0x7c, 0x86, 0xed, 0x6a, 0xbd, 0x5e, 0xda, 0xa8, 0x8a, 0x19, 0xdf, 0xa2, 0xfc, 0xe2, 0x5e, + 0xb5, 0x2e, 0x66, 0xfb, 0xdc, 0xba, 0xb0, 0x22, 0x4e, 0xfb, 0x8f, 0xa8, 0xee, 0xec, 0x6f, 0x8b, + 0x39, 0x69, 0x16, 0xa6, 0xe9, 0x23, 0xb8, 0x13, 0x33, 0x03, 0xa2, 0x8b, 0xab, 0xa2, 0x18, 0x38, + 0x42, 0x59, 0x66, 0xfb, 0x04, 0x17, 0x57, 0x45, 0xa9, 0x50, 0x81, 0x24, 0xc9, 0x2e, 0x49, 0x82, + 0xdc, 0x56, 0xa9, 0x5c, 0xdd, 0x52, 0x6b, 0xbb, 0x7b, 0x9b, 0xb5, 0x9d, 0xd2, 0x96, 0x28, 0x04, + 0x32, 0xa5, 0xfa, 0xe9, 0xfd, 0x4d, 0xa5, 0xba, 0x2e, 0xc6, 0xc2, 0xb2, 0xdd, 0x6a, 0x69, 0xaf, + 0xba, 0x2e, 0xc6, 0x0b, 0x3a, 0xcc, 0x8f, 0x3a, 0x67, 0x46, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x8e, + 0x59, 0x62, 0xc2, 0x35, 0xb4, 0xc4, 0x5f, 0x11, 0x60, 0x6e, 0xc4, 0x59, 0x3b, 0xf2, 0x21, 0xcf, + 0x43, 0x92, 0xa6, 0x28, 0xad, 0x3e, 0x4f, 0x8e, 0x3c, 0xb4, 0x49, 0xc2, 0x0e, 0x55, 0x20, 0x82, + 0x0b, 0x57, 0xe0, 0xf8, 0x31, 0x15, 0x18, 0x53, 0x0c, 0x39, 0xf9, 0x8a, 0x00, 0xf2, 0x71, 0xdc, + 0x11, 0x07, 0x45, 0xac, 0xef, 0xa0, 0xb8, 0x3a, 0xe8, 0xc0, 0xf9, 0xe3, 0xe7, 0x30, 0xe4, 0xc5, + 0x1b, 0x02, 0x9c, 0x1a, 0xdd, 0xa8, 0x8c, 0xf4, 0xe1, 0x53, 0x30, 0xd9, 0x41, 0xde, 0x81, 0xcd, + 0x8b, 0xf5, 0xc7, 0x47, 0x94, 0x00, 0xac, 0x1e, 0x8c, 0x15, 0x43, 0x85, 0x6b, 0x48, 0xfc, 0xb8, + 0x6e, 0x83, 0x7a, 0x33, 0xe4, 0xe9, 0xe7, 0x63, 0xf0, 0xd0, 0x48, 0xf2, 0x91, 0x8e, 0x3e, 0x02, + 0x60, 0x58, 0xdd, 0x9e, 0x47, 0x0b, 0x32, 0x3d, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0x3e, 0x7b, + 0x7a, 0x9e, 0xaf, 0x8f, 0x13, 0x3d, 0x50, 0x11, 0x31, 0xb8, 0x1c, 0x38, 0x9a, 0x20, 0x8e, 0xe6, + 0x8f, 0x99, 0xe9, 0x50, 0xad, 0x7b, 0x16, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, + 0xad, 0x63, 0x58, 0x6d, 0x72, 0x00, 0xa7, 0x8a, 0xc9, 0x96, 0x66, 0xba, 0x48, 0x99, 0xa1, 0xea, + 0x3a, 0xd7, 0x62, 0x04, 0xa9, 0x32, 0x4e, 0x08, 0x31, 0xd9, 0x87, 0xa0, 0x6a, 0x1f, 0x51, 0xf8, + 0xfa, 0x14, 0x64, 0x42, 0x6d, 0x9d, 0x74, 0x1e, 0xb2, 0xb7, 0xb4, 0x3b, 0x9a, 0xca, 0x5b, 0x75, + 0x1a, 0x89, 0x0c, 0x96, 0xed, 0xb2, 0x76, 0xfd, 0x59, 0x98, 0x27, 0x26, 0x76, 0xcf, 0x43, 0x8e, + 0xaa, 0x9b, 0x9a, 0xeb, 0x92, 0xa0, 0xa5, 0x88, 0xa9, 0x84, 0x75, 0x35, 0xac, 0xaa, 0x70, 0x8d, + 0xb4, 0x06, 0x73, 0x04, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0x91, 0x8a, 0x5f, 0x1e, 0x5c, 0x72, + 0x10, 0xfb, 0x9e, 0xcd, 0x62, 0x8b, 0x6d, 0x66, 0x80, 0x3d, 0x72, 0xa5, 0x75, 0x78, 0x84, 0xc0, + 0xda, 0xc8, 0x42, 0x8e, 0xe6, 0x21, 0x15, 0x7d, 0xae, 0xa7, 0x99, 0xae, 0xaa, 0x59, 0x4d, 0xf5, + 0x40, 0x73, 0x0f, 0xe4, 0x79, 0x4c, 0x50, 0x8e, 0xc9, 0x82, 0x72, 0x06, 0x1b, 0x6e, 0x30, 0xbb, + 0x2a, 0x31, 0x2b, 0x59, 0xcd, 0xeb, 0x9a, 0x7b, 0x20, 0x15, 0xe1, 0x14, 0x61, 0x71, 0x3d, 0xc7, + 0xb0, 0xda, 0xaa, 0x7e, 0x80, 0xf4, 0xdb, 0x6a, 0xcf, 0x6b, 0x5d, 0x96, 0x1f, 0x0e, 0x3f, 0x9f, + 0x78, 0x58, 0x27, 0x36, 0x15, 0x6c, 0xb2, 0xef, 0xb5, 0x2e, 0x4b, 0x75, 0xc8, 0xe2, 0xc5, 0xe8, + 0x18, 0x2f, 0x23, 0xb5, 0x65, 0x3b, 0xa4, 0xb2, 0xe4, 0x46, 0xec, 0xec, 0x50, 0x04, 0x97, 0x6a, + 0x0c, 0xb0, 0x6d, 0x37, 0x51, 0x31, 0x59, 0xdf, 0xad, 0x56, 0xd7, 0x95, 0x0c, 0x67, 0xb9, 0x66, + 0x3b, 0x38, 0xa1, 0xda, 0xb6, 0x1f, 0xe0, 0x0c, 0x4d, 0xa8, 0xb6, 0xcd, 0xc3, 0xbb, 0x06, 0x73, + 0xba, 0x4e, 0xe7, 0x6c, 0xe8, 0x2a, 0x6b, 0xf1, 0x5d, 0x59, 0xec, 0x0b, 0x96, 0xae, 0x6f, 0x50, + 0x03, 0x96, 0xe3, 0xae, 0x74, 0x05, 0x1e, 0x0a, 0x82, 0x15, 0x06, 0xce, 0x0e, 0xcd, 0x72, 0x10, + 0xba, 0x06, 0x73, 0xdd, 0xc3, 0x61, 0xa0, 0xd4, 0xf7, 0xc4, 0xee, 0xe1, 0x20, 0xec, 0x71, 0xf2, + 0xda, 0xe6, 0x20, 0x5d, 0xf3, 0x50, 0x53, 0x3e, 0x1d, 0xb6, 0x0e, 0x29, 0xa4, 0x65, 0x10, 0x75, + 0x5d, 0x45, 0x96, 0xd6, 0x30, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x6c, 0xd8, 0x38, 0xa7, + 0xeb, 0x55, 0xa2, 0x2d, 0x11, 0xa5, 0xf4, 0x14, 0xcc, 0xda, 0x8d, 0x5b, 0x3a, 0xcd, 0x2c, 0xb5, + 0xeb, 0xa0, 0x96, 0xf1, 0x92, 0xfc, 0x18, 0x09, 0xd3, 0x0c, 0x56, 0x90, 0xbc, 0xda, 0x25, 0x62, + 0xe9, 0x49, 0x10, 0x75, 0xf7, 0x40, 0x73, 0xba, 0xa4, 0xb4, 0xbb, 0x5d, 0x4d, 0x47, 0xf2, 0xe3, + 0xd4, 0x94, 0xca, 0x77, 0xb8, 0x18, 0x67, 0xb6, 0x7b, 0xd7, 0x68, 0x79, 0x9c, 0xf1, 0x09, 0x9a, + 0xd9, 0x44, 0xc6, 0xd8, 0x6e, 0xc2, 0x7c, 0xcf, 0x32, 0x2c, 0x0f, 0x39, 0x5d, 0x07, 0xe1, 0x26, + 0x9e, 0xee, 0x44, 0xf9, 0x1f, 0xa7, 0x8e, 0x69, 0xc3, 0xf7, 0xc3, 0xd6, 0x34, 0x01, 0x94, 0xb9, + 0xde, 0xb0, 0xb0, 0x50, 0x84, 0x6c, 0x38, 0x2f, 0xa4, 0x34, 0xd0, 0xcc, 0x10, 0x05, 0x5c, 0x63, + 0x2b, 0xb5, 0x75, 0x5c, 0x1d, 0x3f, 0x5b, 0x15, 0x63, 0xb8, 0x4a, 0x6f, 0x6d, 0xee, 0x55, 0x55, + 0x65, 0x7f, 0x67, 0x6f, 0x73, 0xbb, 0x2a, 0xc6, 0x9f, 0x4a, 0xa7, 0xbe, 0x3f, 0x25, 0xde, 0xbb, + 0x77, 0xef, 0x5e, 0xac, 0xf0, 0x9d, 0x18, 0xe4, 0xfa, 0x3b, 0x63, 0xe9, 0xff, 0xc1, 0x69, 0xfe, + 0x1a, 0xeb, 0x22, 0x4f, 0xbd, 0x6b, 0x38, 0x24, 0x55, 0x3b, 0x1a, 0xed, 0x2d, 0xfd, 0x28, 0xcf, + 0x33, 0xab, 0x3a, 0xf2, 0x5e, 0x30, 0x1c, 0x9c, 0x88, 0x1d, 0xcd, 0x93, 0xb6, 0xe0, 0xac, 0x65, + 0xab, 0xae, 0xa7, 0x59, 0x4d, 0xcd, 0x69, 0xaa, 0xc1, 0x05, 0x82, 0xaa, 0xe9, 0x3a, 0x72, 0x5d, + 0x9b, 0x96, 0x08, 0x9f, 0xe5, 0x63, 0x96, 0x5d, 0x67, 0xc6, 0xc1, 0xd9, 0x59, 0x62, 0xa6, 0x03, + 0x19, 0x11, 0x3f, 0x2e, 0x23, 0x1e, 0x86, 0x74, 0x47, 0xeb, 0xaa, 0xc8, 0xf2, 0x9c, 0x43, 0xd2, + 0xcf, 0xa5, 0x94, 0x54, 0x47, 0xeb, 0x56, 0xf1, 0xf8, 0xa3, 0x5b, 0x83, 0x70, 0x1c, 0xff, 0x21, + 0x0e, 0xd9, 0x70, 0x4f, 0x87, 0x5b, 0x64, 0x9d, 0x9c, 0xdf, 0x02, 0xd9, 0xe1, 0x8f, 0x3e, 0xb0, + 0x03, 0x5c, 0xaa, 0xe0, 0x83, 0xbd, 0x38, 0x49, 0x3b, 0x2d, 0x85, 0x22, 0x71, 0x51, 0xc5, 0x7b, + 0x1a, 0xd1, 0xfe, 0x3d, 0xa5, 0xb0, 0x91, 0xb4, 0x01, 0x93, 0xb7, 0x5c, 0xc2, 0x3d, 0x49, 0xb8, + 0x1f, 0x7b, 0x30, 0xf7, 0x8d, 0x3a, 0x21, 0x4f, 0xdf, 0xa8, 0xab, 0x3b, 0x35, 0x65, 0xbb, 0xb4, + 0xa5, 0x30, 0xb8, 0x74, 0x06, 0x12, 0xa6, 0xf6, 0xf2, 0x61, 0x7f, 0x09, 0x20, 0xa2, 0x71, 0x03, + 0x7f, 0x06, 0x12, 0x77, 0x91, 0x76, 0xbb, 0xff, 0xe0, 0x25, 0xa2, 0x8f, 0x30, 0xf5, 0x97, 0x21, + 0x49, 0xe2, 0x25, 0x01, 0xb0, 0x88, 0x89, 0x13, 0x52, 0x0a, 0x12, 0x95, 0x9a, 0x82, 0xd3, 0x5f, + 0x84, 0x2c, 0x95, 0xaa, 0xbb, 0x9b, 0xd5, 0x4a, 0x55, 0x8c, 0x15, 0xd6, 0x60, 0x92, 0x06, 0x01, + 0x6f, 0x0d, 0x3f, 0x0c, 0xe2, 0x04, 0x1b, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0xb7, 0xcb, 0x55, 0x45, + 0x8c, 0x85, 0x97, 0xd7, 0x85, 0x6c, 0xb8, 0x9d, 0xfb, 0xf1, 0xe4, 0xd4, 0x5f, 0x0a, 0x90, 0x09, + 0xb5, 0x67, 0xb8, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x29, 0x80, + 0x88, 0x4a, 0x58, 0x32, 0xee, 0xa2, 0xfd, 0x58, 0x9c, 0x7f, 0x5d, 0x00, 0x71, 0xb0, 0xb5, 0x1b, + 0x70, 0x50, 0xf8, 0x89, 0x3a, 0xf8, 0x9a, 0x00, 0xb9, 0xfe, 0x7e, 0x6e, 0xc0, 0xbd, 0xf3, 0x3f, + 0x51, 0xf7, 0xde, 0x89, 0xc1, 0x74, 0x5f, 0x17, 0x37, 0xae, 0x77, 0x9f, 0x83, 0x59, 0xa3, 0x89, + 0x3a, 0x5d, 0xdb, 0x43, 0x96, 0x7e, 0xa8, 0x9a, 0xe8, 0x0e, 0x32, 0xe5, 0x02, 0x39, 0x28, 0x96, + 0x1f, 0xdc, 0x27, 0x2e, 0x6d, 0x06, 0xb8, 0x2d, 0x0c, 0x2b, 0xce, 0x6d, 0xae, 0x57, 0xb7, 0x77, + 0x6b, 0x7b, 0xd5, 0x9d, 0xca, 0x8b, 0xea, 0xfe, 0xce, 0xff, 0xdf, 0xa9, 0xbd, 0xb0, 0xa3, 0x88, + 0xc6, 0x80, 0xd9, 0x47, 0xb8, 0xd5, 0x77, 0x41, 0x1c, 0x74, 0x4a, 0x3a, 0x0d, 0xa3, 0xdc, 0x12, + 0x27, 0xa4, 0x39, 0x98, 0xd9, 0xa9, 0xa9, 0xf5, 0xcd, 0xf5, 0xaa, 0x5a, 0xbd, 0x76, 0xad, 0x5a, + 0xd9, 0xab, 0xd3, 0x17, 0x67, 0xdf, 0x7a, 0xaf, 0x7f, 0x53, 0xbf, 0x1a, 0x87, 0xb9, 0x11, 0x9e, + 0x48, 0x25, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x67, 0xc6, 0xf1, 0x7e, 0x09, 0x77, 0x05, 0xbb, 0x9a, + 0xe3, 0xb1, 0x16, 0xff, 0x49, 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x65, 0x20, 0x87, 0xdd, 0x33, 0xd0, + 0x46, 0x7e, 0x26, 0x90, 0xd3, 0xab, 0x86, 0x4f, 0x80, 0xd4, 0xb5, 0x5d, 0xc3, 0x33, 0xee, 0x20, + 0xd5, 0xb0, 0xf8, 0xa5, 0x04, 0x6e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x9b, 0x96, 0xe7, 0x5b, 0x5b, + 0xa8, 0xad, 0x0d, 0x58, 0xe3, 0x03, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x9f, 0x87, 0x6c, 0xd3, + 0xee, 0xe1, 0x36, 0x89, 0xda, 0xe1, 0x7a, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0x58, 0x1f, 0x1b, + 0xdc, 0x86, 0x64, 0x95, 0x0c, 0x95, 0x51, 0x93, 0x27, 0x60, 0x46, 0x6b, 0xb7, 0x1d, 0x4c, 0xce, + 0x89, 0x68, 0x67, 0x9e, 0xf3, 0xc5, 0xc4, 0x70, 0xe1, 0x06, 0xa4, 0x78, 0x1c, 0x70, 0x49, 0xc6, + 0x91, 0x50, 0xbb, 0xf4, 0x4e, 0x2a, 0xb6, 0x98, 0x56, 0x52, 0x16, 0x57, 0x9e, 0x87, 0xac, 0xe1, + 0xaa, 0xc1, 0xe5, 0x68, 0xec, 0x5c, 0x6c, 0x31, 0xa5, 0x64, 0x0c, 0xd7, 0xbf, 0x0d, 0x2b, 0xbc, + 0x11, 0x83, 0x5c, 0xff, 0xe5, 0xae, 0xb4, 0x0e, 0x29, 0xd3, 0xd6, 0x35, 0x92, 0x5a, 0xf4, 0x97, + 0x85, 0xc5, 0x88, 0xfb, 0xe0, 0xa5, 0x2d, 0x66, 0xaf, 0xf8, 0xc8, 0x85, 0xbf, 0x15, 0x20, 0xc5, + 0xc5, 0xd2, 0x29, 0x48, 0x74, 0x35, 0xef, 0x80, 0xd0, 0x25, 0xcb, 0x31, 0x51, 0x50, 0xc8, 0x18, + 0xcb, 0xdd, 0xae, 0x66, 0x91, 0x14, 0x60, 0x72, 0x3c, 0xc6, 0xeb, 0x6a, 0x22, 0xad, 0x49, 0xda, + 0x7e, 0xbb, 0xd3, 0x41, 0x96, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x0a, 0x13, 0x4b, 0x4f, 0xc3, 0xac, + 0xe7, 0x68, 0x86, 0xd9, 0x67, 0x9b, 0x20, 0xb6, 0x22, 0x57, 0xf8, 0xc6, 0x45, 0x38, 0xc3, 0x79, + 0x9b, 0xc8, 0xd3, 0xf4, 0x03, 0xd4, 0x0c, 0x40, 0x93, 0xe4, 0xe6, 0xf0, 0x34, 0x33, 0x58, 0x67, + 0x7a, 0x8e, 0x2d, 0x7c, 0x57, 0x80, 0x59, 0xfe, 0xa2, 0xd2, 0xf4, 0x83, 0xb5, 0x0d, 0xa0, 0x59, + 0x96, 0xed, 0x85, 0xc3, 0x35, 0x9c, 0xca, 0x43, 0xb8, 0xa5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x0b, + 0x1d, 0x80, 0x40, 0x73, 0x6c, 0xd8, 0xce, 0x42, 0x86, 0xdd, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, + 0x2d, 0x50, 0x11, 0x7e, 0xa3, 0x91, 0xe6, 0x21, 0xd9, 0x40, 0x6d, 0xc3, 0x62, 0xf7, 0x89, 0x74, + 0xc0, 0x6f, 0x29, 0x13, 0xfe, 0x2d, 0x65, 0xf9, 0x26, 0xcc, 0xe9, 0x76, 0x67, 0xd0, 0xdd, 0xb2, + 0x38, 0xf0, 0x7a, 0xed, 0x5e, 0x17, 0x3e, 0x0b, 0x41, 0x8b, 0xf9, 0x95, 0x58, 0x7c, 0x63, 0xb7, + 0xfc, 0xb5, 0xd8, 0xc2, 0x06, 0xc5, 0xed, 0xf2, 0x69, 0x2a, 0xa8, 0x65, 0x22, 0x1d, 0xbb, 0x0e, + 0x3f, 0xf8, 0x38, 0x3c, 0xd3, 0x36, 0xbc, 0x83, 0x5e, 0x63, 0x49, 0xb7, 0x3b, 0xcb, 0x6d, 0xbb, + 0x6d, 0x07, 0x3f, 0x77, 0xe1, 0x11, 0x19, 0x90, 0xff, 0xd8, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x10, + 0xf9, 0xfb, 0x58, 0x71, 0x07, 0xe6, 0x98, 0xb1, 0x4a, 0xee, 0xdc, 0xe9, 0xab, 0x81, 0xf4, 0xc0, + 0x7b, 0x17, 0xf9, 0x9b, 0xef, 0x92, 0x5a, 0xad, 0xcc, 0x32, 0x28, 0xd6, 0xd1, 0x17, 0x88, 0xa2, + 0x02, 0x0f, 0xf5, 0xf1, 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0xef, 0x30, 0xc6, 0xb9, 0x10, 0x63, + 0x9d, 0x41, 0x8b, 0x15, 0x98, 0x3e, 0x09, 0xd7, 0x5f, 0x33, 0xae, 0x2c, 0x0a, 0x93, 0x6c, 0xc0, + 0x0c, 0x21, 0xd1, 0x7b, 0xae, 0x67, 0x77, 0xc8, 0xa1, 0xf7, 0x60, 0x9a, 0xbf, 0x79, 0x97, 0x6e, + 0x94, 0x1c, 0x86, 0x55, 0x7c, 0x54, 0xb1, 0x08, 0xe4, 0x67, 0x86, 0x26, 0xd2, 0xcd, 0x08, 0x86, + 0x37, 0x99, 0x23, 0xbe, 0x7d, 0xf1, 0x33, 0x30, 0x8f, 0xff, 0x27, 0x67, 0x52, 0xd8, 0x93, 0xe8, + 0x5b, 0x26, 0xf9, 0xbb, 0xaf, 0xd0, 0xbd, 0x38, 0xe7, 0x13, 0x84, 0x7c, 0x0a, 0xad, 0x62, 0x1b, + 0x79, 0x1e, 0x72, 0x5c, 0x55, 0x33, 0x47, 0xb9, 0x17, 0x7a, 0x4d, 0x97, 0xbf, 0xf4, 0x5e, 0xff, + 0x2a, 0x6e, 0x50, 0x64, 0xc9, 0x34, 0x8b, 0xfb, 0x70, 0x7a, 0x44, 0x56, 0x8c, 0xc1, 0xf9, 0x2a, + 0xe3, 0x9c, 0x1f, 0xca, 0x0c, 0x4c, 0xbb, 0x0b, 0x5c, 0xee, 0xaf, 0xe5, 0x18, 0x9c, 0xbf, 0xc9, + 0x38, 0x25, 0x86, 0xe5, 0x4b, 0x8a, 0x19, 0x6f, 0xc0, 0xec, 0x1d, 0xe4, 0x34, 0x6c, 0x97, 0x5d, + 0x8d, 0x8c, 0x41, 0xf7, 0x1a, 0xa3, 0x9b, 0x61, 0x40, 0x72, 0x57, 0x82, 0xb9, 0xae, 0x40, 0xaa, + 0xa5, 0xe9, 0x68, 0x0c, 0x8a, 0x2f, 0x33, 0x8a, 0x29, 0x6c, 0x8f, 0xa1, 0x25, 0xc8, 0xb6, 0x6d, + 0x56, 0x96, 0xa2, 0xe1, 0xaf, 0x33, 0x78, 0x86, 0x63, 0x18, 0x45, 0xd7, 0xee, 0xf6, 0x4c, 0x5c, + 0xb3, 0xa2, 0x29, 0x7e, 0x8b, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x41, 0x58, 0x7f, 0x9b, 0x53, 0xb8, + 0xa1, 0x78, 0x3e, 0x0f, 0x19, 0xdb, 0x32, 0x0f, 0x6d, 0x6b, 0x1c, 0x27, 0x7e, 0x87, 0x31, 0x00, + 0x83, 0x60, 0x82, 0xab, 0x90, 0x1e, 0x77, 0x21, 0x7e, 0xf7, 0x3d, 0xbe, 0x3d, 0xf8, 0x0a, 0x6c, + 0xc0, 0x0c, 0x3f, 0xa0, 0x0c, 0xdb, 0x1a, 0x83, 0xe2, 0xf7, 0x18, 0x45, 0x2e, 0x04, 0x63, 0xd3, + 0xf0, 0x90, 0xeb, 0xb5, 0xd1, 0x38, 0x24, 0x6f, 0xf0, 0x69, 0x30, 0x08, 0x0b, 0x65, 0x03, 0x59, + 0xfa, 0xc1, 0x78, 0x0c, 0x5f, 0xe5, 0xa1, 0xe4, 0x18, 0x4c, 0x51, 0x81, 0xe9, 0x8e, 0xe6, 0xb8, + 0x07, 0x9a, 0x39, 0xd6, 0x72, 0xfc, 0x3e, 0xe3, 0xc8, 0xfa, 0x20, 0x16, 0x91, 0x9e, 0x75, 0x12, + 0x9a, 0xaf, 0xf1, 0x88, 0x84, 0x60, 0x6c, 0xeb, 0xb9, 0x1e, 0xb9, 0x80, 0x3a, 0x09, 0xdb, 0xd7, + 0xf9, 0xd6, 0xa3, 0xd8, 0xed, 0x30, 0xe3, 0x55, 0x48, 0xbb, 0xc6, 0xcb, 0x63, 0xd1, 0xfc, 0x01, + 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xcc, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x32, 0xb2, + 0x53, 0x23, 0x4a, 0x05, 0x3b, 0x12, 0x4e, 0x4a, 0xf9, 0x47, 0xfc, 0x48, 0x40, 0x03, 0x5c, 0xbb, + 0xf8, 0x45, 0xc1, 0xd5, 0x5a, 0x27, 0x8b, 0xda, 0x1f, 0xf3, 0xa8, 0x51, 0x6c, 0x5f, 0xd4, 0xf6, + 0xe0, 0x14, 0x63, 0x3c, 0xd9, 0xba, 0x7e, 0x83, 0x1f, 0xac, 0x14, 0xbd, 0xdf, 0xbf, 0xba, 0x3f, + 0x05, 0x0b, 0x7e, 0x38, 0x79, 0x47, 0xea, 0xaa, 0x1d, 0xad, 0x3b, 0x06, 0xf3, 0x37, 0x19, 0x33, + 0x3f, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0xd6, 0xba, 0x98, 0xfc, 0x26, 0xc8, 0x9c, 0xbc, 0x67, 0x39, + 0x48, 0xb7, 0xdb, 0x96, 0xf1, 0x32, 0x6a, 0x8e, 0x41, 0xfd, 0x27, 0x03, 0x4b, 0xb5, 0x1f, 0x82, + 0x63, 0xe6, 0x4d, 0x10, 0xfd, 0x5e, 0x45, 0x35, 0x3a, 0x5d, 0xdb, 0xf1, 0x22, 0x18, 0xff, 0x94, + 0xaf, 0x94, 0x8f, 0xdb, 0x24, 0xb0, 0x62, 0x15, 0x72, 0x64, 0x38, 0x6e, 0x4a, 0xfe, 0x19, 0x23, + 0x9a, 0x0e, 0x50, 0xec, 0xe0, 0xd0, 0xed, 0x4e, 0x57, 0x73, 0xc6, 0x39, 0xff, 0xfe, 0x9c, 0x1f, + 0x1c, 0x0c, 0xc2, 0x0e, 0x0e, 0xef, 0xb0, 0x8b, 0x70, 0xb5, 0x1f, 0x83, 0xe1, 0x5b, 0xfc, 0xe0, + 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x31, 0x28, 0xfe, 0x82, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, + 0x50, 0x68, 0x1d, 0xd4, 0x36, 0x5c, 0xcf, 0xa1, 0x7d, 0xf0, 0x83, 0xa9, 0xbe, 0xfd, 0x5e, 0x7f, + 0x13, 0xa6, 0x84, 0xa0, 0xc5, 0x1b, 0x30, 0x33, 0xd0, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0x3f, + 0xfd, 0x01, 0x3b, 0x8c, 0xfa, 0x3b, 0x8c, 0xe2, 0x16, 0x5e, 0xf7, 0xfe, 0x3e, 0x20, 0x9a, 0xec, + 0x95, 0x0f, 0xfc, 0xa5, 0xef, 0x6b, 0x03, 0x8a, 0xd7, 0x60, 0xba, 0xaf, 0x07, 0x88, 0xa6, 0xfa, + 0x19, 0x46, 0x95, 0x0d, 0xb7, 0x00, 0xc5, 0x35, 0x48, 0xe0, 0x7a, 0x1e, 0x0d, 0xff, 0x59, 0x06, + 0x27, 0xe6, 0xc5, 0x4f, 0x42, 0x8a, 0xd7, 0xf1, 0x68, 0xe8, 0xcf, 0x31, 0xa8, 0x0f, 0xc1, 0x70, + 0x5e, 0xc3, 0xa3, 0xe1, 0x3f, 0xcf, 0xe1, 0x1c, 0x82, 0xe1, 0xe3, 0x87, 0xf0, 0xaf, 0x7e, 0x21, + 0xc1, 0xce, 0x61, 0x1e, 0xbb, 0xab, 0x30, 0xc5, 0x8a, 0x77, 0x34, 0xfa, 0xf3, 0xec, 0xe1, 0x1c, + 0x51, 0xbc, 0x04, 0xc9, 0x31, 0x03, 0xfe, 0x8b, 0x0c, 0x4a, 0xed, 0x8b, 0x15, 0xc8, 0x84, 0x0a, + 0x76, 0x34, 0xfc, 0x97, 0x18, 0x3c, 0x8c, 0xc2, 0xae, 0xb3, 0x82, 0x1d, 0x4d, 0xf0, 0xcb, 0xdc, + 0x75, 0x86, 0xc0, 0x61, 0xe3, 0xb5, 0x3a, 0x1a, 0xfd, 0x2b, 0x3c, 0xea, 0x1c, 0x52, 0x7c, 0x1e, + 0xd2, 0xfe, 0xf9, 0x1b, 0x8d, 0xff, 0x55, 0x86, 0x0f, 0x30, 0x38, 0x02, 0xa1, 0xf3, 0x3f, 0x9a, + 0xe2, 0x0b, 0x3c, 0x02, 0x21, 0x14, 0xde, 0x46, 0x83, 0x35, 0x3d, 0x9a, 0xe9, 0xd7, 0xf8, 0x36, + 0x1a, 0x28, 0xe9, 0x78, 0x35, 0xc9, 0x31, 0x18, 0x4d, 0xf1, 0xeb, 0x7c, 0x35, 0x89, 0x3d, 0x76, + 0x63, 0xb0, 0x48, 0x46, 0x73, 0xfc, 0x06, 0x77, 0x63, 0xa0, 0x46, 0x16, 0x77, 0x41, 0x1a, 0x2e, + 0x90, 0xd1, 0x7c, 0x5f, 0x64, 0x7c, 0xb3, 0x43, 0xf5, 0xb1, 0xf8, 0x02, 0x9c, 0x1a, 0x5d, 0x1c, + 0xa3, 0x59, 0xbf, 0xf4, 0xc1, 0xc0, 0xeb, 0x4c, 0xb8, 0x36, 0x16, 0xf7, 0x82, 0x53, 0x36, 0x5c, + 0x18, 0xa3, 0x69, 0x5f, 0xfd, 0xa0, 0xff, 0xa0, 0x0d, 0xd7, 0xc5, 0x62, 0x09, 0x20, 0xa8, 0x49, + 0xd1, 0x5c, 0xaf, 0x31, 0xae, 0x10, 0x08, 0x6f, 0x0d, 0x56, 0x92, 0xa2, 0xf1, 0x5f, 0xe6, 0x5b, + 0x83, 0x21, 0xf0, 0xd6, 0xe0, 0xd5, 0x28, 0x1a, 0xfd, 0x3a, 0xdf, 0x1a, 0x1c, 0x52, 0xbc, 0x0a, + 0x29, 0xab, 0x67, 0x9a, 0x38, 0xb7, 0xa4, 0x07, 0x7f, 0x46, 0x24, 0xff, 0xd3, 0x87, 0x0c, 0xcc, + 0x01, 0xc5, 0x35, 0x48, 0xa2, 0x4e, 0x03, 0x35, 0xa3, 0x90, 0xff, 0xfc, 0x21, 0x3f, 0x4f, 0xb0, + 0x75, 0xf1, 0x79, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xcb, 0x87, 0xec, 0x0b, + 0x85, 0x00, 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x5e, 0x3f, 0x01, 0x79, 0x01, 0xbf, + 0x02, 0x53, 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x76, 0x14, 0xfa, 0x5f, 0x19, 0x9a, 0xdb, 0xe3, 0x80, + 0x75, 0x6c, 0x07, 0x79, 0x5a, 0xdb, 0x8d, 0xc2, 0xfe, 0x1b, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, + 0xd7, 0x1b, 0x67, 0xde, 0xff, 0xce, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x87, 0x51, + 0xd8, 0xf7, 0xb9, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, + 0xff, 0x60, 0xe0, 0x00, 0x81, 0x9f, 0xec, 0x7a, 0x4d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb2, 0x95, + 0xe6, 0xf6, 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, 0xb1, 0x8e, 0x26, 0x02, 0xfe, 0x83, 0x0f, + 0xfd, 0x97, 0x5c, 0x1f, 0x53, 0x3e, 0x3f, 0xfa, 0xb2, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x5e, 0xd3, + 0xc1, 0x7f, 0xa5, 0xe0, 0x21, 0xdd, 0xee, 0x34, 0x6c, 0x77, 0xb9, 0x61, 0x7b, 0x07, 0xcb, 0xb6, + 0xc5, 0x0c, 0xa5, 0xb8, 0x6d, 0xa1, 0x85, 0x93, 0xdd, 0xc8, 0x15, 0xce, 0x40, 0xb2, 0xde, 0x6b, + 0x34, 0x0e, 0x25, 0x11, 0xe2, 0x6e, 0xaf, 0xc1, 0x3e, 0x29, 0xc1, 0xff, 0x16, 0xde, 0x8e, 0xc3, + 0x74, 0xc9, 0x34, 0xf7, 0x0e, 0xbb, 0xc8, 0xad, 0x59, 0xa8, 0xd6, 0x92, 0x64, 0x98, 0x24, 0x53, + 0x78, 0x8e, 0x98, 0x09, 0xd7, 0x27, 0x14, 0x36, 0xf6, 0x35, 0x2b, 0xe4, 0xa2, 0x32, 0xe6, 0x6b, + 0x56, 0x7c, 0xcd, 0x05, 0x7a, 0x4f, 0xe9, 0x6b, 0x2e, 0xf8, 0x9a, 0x55, 0x72, 0x5b, 0x19, 0xf7, + 0x35, 0xab, 0xbe, 0x66, 0x8d, 0xdc, 0xc6, 0x4f, 0xfb, 0x9a, 0x35, 0x5f, 0x73, 0x91, 0xdc, 0xbf, + 0x27, 0x7c, 0xcd, 0x45, 0x5f, 0x73, 0x89, 0x5c, 0xbb, 0xcf, 0xfa, 0x9a, 0x4b, 0xbe, 0xe6, 0x32, + 0xb9, 0x6a, 0x97, 0x7c, 0xcd, 0x65, 0x5f, 0x73, 0x85, 0x7c, 0x3b, 0x32, 0xe5, 0x6b, 0xae, 0x48, + 0x0b, 0x30, 0x45, 0x67, 0xf6, 0x2c, 0xf9, 0x3d, 0x76, 0xe6, 0xfa, 0x84, 0xc2, 0x05, 0x81, 0xee, + 0x39, 0xf2, 0x7d, 0xc8, 0x64, 0xa0, 0x7b, 0x2e, 0xd0, 0xad, 0x90, 0xaf, 0xa4, 0xc5, 0x40, 0xb7, + 0x12, 0xe8, 0x2e, 0xc8, 0xd3, 0x78, 0xe5, 0x03, 0xdd, 0x85, 0x40, 0xb7, 0x2a, 0xe7, 0xf0, 0x0a, + 0x04, 0xba, 0xd5, 0x40, 0xb7, 0x26, 0xcf, 0x9c, 0x13, 0x16, 0xb3, 0x81, 0x6e, 0x4d, 0x7a, 0x06, + 0x32, 0x6e, 0xaf, 0xa1, 0xb2, 0xcf, 0x07, 0xc8, 0x77, 0x28, 0x99, 0x15, 0x58, 0xc2, 0x39, 0x41, + 0x96, 0xf5, 0xfa, 0x84, 0x02, 0x6e, 0xaf, 0xc1, 0x8e, 0xc6, 0x72, 0x16, 0xc8, 0x4d, 0x82, 0x4a, + 0xbe, 0xbe, 0x2c, 0xbc, 0x25, 0x40, 0x7a, 0xef, 0xae, 0x4d, 0x7e, 0x8d, 0x75, 0xff, 0x8f, 0x17, + 0x97, 0x3b, 0x7d, 0x61, 0x95, 0xfc, 0x60, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, + 0x47, 0xc9, 0x84, 0x7c, 0xdd, 0x9a, 0xb4, 0x0c, 0xd9, 0xd0, 0x84, 0x56, 0xc8, 0xa7, 0x25, 0xfd, + 0x33, 0x12, 0x94, 0x4c, 0x30, 0xa3, 0x95, 0x72, 0x12, 0x70, 0xda, 0xe3, 0x3f, 0xde, 0x5d, 0xbb, + 0xf0, 0x85, 0x18, 0x64, 0xe8, 0xe5, 0x23, 0x99, 0x15, 0x7e, 0x14, 0x6d, 0xc6, 0x0f, 0x99, 0x1b, + 0x13, 0x0a, 0x17, 0x48, 0x0a, 0x00, 0x35, 0xc5, 0x19, 0x4e, 0x3d, 0x29, 0x3f, 0xfb, 0xf7, 0x6f, + 0x9f, 0xfd, 0xc4, 0xb1, 0x3b, 0x08, 0xc7, 0x6e, 0x99, 0x1e, 0xad, 0x4b, 0xfb, 0x86, 0xe5, 0x3d, + 0xb7, 0x72, 0x19, 0x07, 0x38, 0x60, 0x91, 0xf6, 0x21, 0x55, 0xd1, 0x5c, 0xf2, 0x6d, 0x19, 0x71, + 0x3d, 0x51, 0xbe, 0xf4, 0x3f, 0x6f, 0x9f, 0xbd, 0x10, 0xc1, 0xc8, 0x4e, 0xbd, 0xa5, 0xed, 0x43, + 0xcc, 0x7a, 0x71, 0x15, 0xc3, 0xaf, 0x4f, 0x28, 0x3e, 0x95, 0xb4, 0xc2, 0x5d, 0xdd, 0xd1, 0x3a, + 0xf4, 0x1b, 0x9a, 0x78, 0x59, 0x3c, 0x7a, 0xfb, 0x6c, 0x76, 0xfb, 0x30, 0x90, 0x07, 0xae, 0xe0, + 0x51, 0x39, 0x05, 0x93, 0xd4, 0xd5, 0xf2, 0xfa, 0x9b, 0xf7, 0xf3, 0x13, 0x6f, 0xdd, 0xcf, 0x4f, + 0xfc, 0xdd, 0xfd, 0xfc, 0xc4, 0x3b, 0xf7, 0xf3, 0xc2, 0xfb, 0xf7, 0xf3, 0xc2, 0x0f, 0xef, 0xe7, + 0x85, 0x7b, 0x47, 0x79, 0xe1, 0xab, 0x47, 0x79, 0xe1, 0x1b, 0x47, 0x79, 0xe1, 0xdb, 0x47, 0x79, + 0xe1, 0xcd, 0xa3, 0xbc, 0xf0, 0xd6, 0x51, 0x5e, 0x78, 0xe7, 0x28, 0x2f, 0x7c, 0xff, 0x28, 0x3f, + 0xf1, 0xfe, 0x51, 0x5e, 0xf8, 0xe1, 0x51, 0x7e, 0xe2, 0xde, 0xf7, 0xf2, 0x13, 0xff, 0x1b, 0x00, + 0x00, 0xff, 0xff, 0xb8, 0x5b, 0xbb, 0x19, 0xd4, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3410,201 +3429,184 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Sub != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(*m.Sub))) - i += copy(data[i:], *m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) + i += copy(dAtA[i:], *m.Sub) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf) Marshal() (data []byte, err error) { +func (m *AllTypesOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllTypesOneOf) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn1 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *AllTypesOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *AllTypesOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *AllTypesOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *AllTypesOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *AllTypesOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *AllTypesOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *AllTypesOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *AllTypesOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32One(data, i, uint32(m.Field9)) + i = encodeFixed32One(dAtA, i, uint32(m.Field9)) return i, nil } -func (m *AllTypesOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32One(data, i, uint32(m.Field10)) + i = encodeFixed32One(dAtA, i, uint32(m.Field10)) return i, nil } -func (m *AllTypesOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64One(data, i, uint64(m.Field11)) + i = encodeFixed64One(dAtA, i, uint64(m.Field11)) return i, nil } -func (m *AllTypesOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64One(data, i, uint64(m.Field12)) + i = encodeFixed64One(dAtA, i, uint64(m.Field12)) return i, nil } -func (m *AllTypesOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *AllTypesOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *AllTypesOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -3612,93 +3614,93 @@ func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *TwoOneofs) Marshal() (data []byte, err error) { +func (m *TwoOneofs) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *TwoOneofs) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.One != nil { - nn3, err := m.One.MarshalTo(data[i:]) + nn3, err := m.One.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn3 } if m.Two != nil { - nn4, err := m.Two.MarshalTo(data[i:]) + nn4, err := m.Two.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn4 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *TwoOneofs_Field1) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *TwoOneofs_Field2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *TwoOneofs_Field3) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *TwoOneofs_Field34) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field34))) - i += copy(data[i:], m.Field34) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) + i += copy(dAtA[i:], m.Field34) return i, nil } -func (m *TwoOneofs_Field35) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field35 != nil { - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field35))) - i += copy(data[i:], m.Field35) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) + i += copy(dAtA[i:], m.Field35) } return i, nil } -func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage2 != nil { - data[i] = 0xa2 + dAtA[i] = 0xa2 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) + n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -3706,107 +3708,107 @@ func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *CustomOneof) Marshal() (data []byte, err error) { +func (m *CustomOneof) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomOneof) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(data[i:]) + nn6, err := m.Custom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn6 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomOneof_Stringy) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Stringy))) - i += copy(data[i:], m.Stringy) + i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) + i += copy(dAtA[i:], m.Stringy) return i, nil } -func (m *CustomOneof_CustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) + n7, err := m.CustomType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n7 return i, nil } -func (m *CustomOneof_CastType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa0 + dAtA[i] = 0xa0 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CastType)) + i = encodeVarintOne(dAtA, i, uint64(m.CastType)) return i, nil } -func (m *CustomOneof_MyCustomName) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa8 + dAtA[i] = 0xa8 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.MyCustomName)) + i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3949,7 +3951,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -4018,7 +4020,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -4056,7 +4058,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -4105,7 +4107,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -4113,43 +4115,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4702,8 +4704,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4715,7 +4717,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4743,7 +4745,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4758,12 +4760,12 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Sub = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -4773,7 +4775,7 @@ func (m *Subby) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4783,8 +4785,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *AllTypesOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4796,7 +4798,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4821,14 +4823,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4839,10 +4841,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -4856,7 +4858,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4876,7 +4878,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4896,7 +4898,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4916,7 +4918,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4936,7 +4938,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4957,7 +4959,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4975,10 +4977,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: if wireType != 5 { @@ -4989,10 +4991,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: if wireType != 1 { @@ -5003,14 +5005,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: if wireType != 1 { @@ -5021,14 +5023,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: if wireType != 0 { @@ -5042,7 +5044,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5063,7 +5065,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5078,7 +5080,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &AllTypesOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -5092,7 +5094,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5107,7 +5109,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &AllTypesOneOf_Field15{v} iNdEx = postIndex case 16: @@ -5122,7 +5124,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5137,14 +5139,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &AllTypesOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -5154,7 +5156,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5164,8 +5166,8 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { } return nil } -func (m *TwoOneofs) Unmarshal(data []byte) error { - l := len(data) +func (m *TwoOneofs) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5177,7 +5179,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5202,14 +5204,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.One = &TwoOneofs_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -5220,10 +5222,10 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.One = &TwoOneofs_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -5237,7 +5239,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5257,7 +5259,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5272,7 +5274,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Two = &TwoOneofs_Field34{string(data[iNdEx:postIndex])} + m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5286,7 +5288,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5301,7 +5303,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.Two = &TwoOneofs_Field35{v} iNdEx = postIndex case 36: @@ -5316,7 +5318,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5331,14 +5333,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Two = &TwoOneofs_SubMessage2{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -5348,7 +5350,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5358,8 +5360,8 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { } return nil } -func (m *CustomOneof) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomOneof) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5371,7 +5373,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5399,7 +5401,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5414,7 +5416,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Custom = &CustomOneof_Stringy{string(data[iNdEx:postIndex])} + m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5428,7 +5430,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5444,7 +5446,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } var vv github_com_gogo_protobuf_test_custom.Uint128 v := &vv - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Custom = &CustomOneof_CustomType{*v} @@ -5461,7 +5463,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -5481,7 +5483,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5491,7 +5493,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { m.Custom = &CustomOneof_MyCustomName{v} default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -5501,7 +5503,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5511,8 +5513,8 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } return nil } -func skipOne(data []byte) (n int, err error) { - l := len(data) +func skipOne(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -5523,7 +5525,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5541,7 +5543,7 @@ func skipOne(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -5558,7 +5560,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5581,7 +5583,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5592,7 +5594,7 @@ func skipOne(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOne(data[start:]) + next, err := skipOne(dAtA[start:]) if err != nil { return 0, err } @@ -5616,42 +5618,46 @@ var ( ErrIntOverflowOne = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 573 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x6f, 0xda, 0x40, - 0x14, 0x00, 0x70, 0xcc, 0x7f, 0x0e, 0x68, 0xa8, 0xa5, 0x4a, 0xaf, 0x19, 0xa0, 0xa2, 0xad, 0xd4, - 0xa1, 0xc1, 0xe0, 0x3f, 0x40, 0xc6, 0x3a, 0x55, 0xd5, 0x85, 0x22, 0x91, 0x64, 0x8e, 0x30, 0x35, - 0x04, 0x09, 0xb8, 0x28, 0x77, 0x28, 0xf2, 0x96, 0xcf, 0xd0, 0x4f, 0xd1, 0xb1, 0x63, 0x3f, 0x42, - 0x46, 0xc6, 0xaa, 0x03, 0x4a, 0xe8, 0xd2, 0x31, 0x63, 0xd4, 0xa9, 0xef, 0xce, 0xe4, 0xae, 0x52, - 0x55, 0x75, 0xc9, 0xf0, 0x64, 0x3f, 0x7e, 0x77, 0x8f, 0xf7, 0x7c, 0x36, 0x79, 0x32, 0xa2, 0xf3, - 0x80, 0x32, 0x2b, 0xa0, 0xfc, 0xd4, 0xa2, 0x8b, 0xb0, 0x71, 0x76, 0x4e, 0x39, 0x35, 0x53, 0x78, - 0xbb, 0xbb, 0x37, 0x99, 0xf2, 0xd3, 0x65, 0xd0, 0xc0, 0x25, 0xd6, 0x84, 0x4e, 0xa8, 0x25, 0x2d, - 0x58, 0x8e, 0x65, 0x26, 0x13, 0x79, 0x17, 0xef, 0xa9, 0x3f, 0x25, 0x99, 0xc3, 0x65, 0x10, 0x44, - 0x66, 0x85, 0xa4, 0xd8, 0x32, 0x00, 0xe3, 0x99, 0xf1, 0xaa, 0x30, 0x10, 0xb7, 0xf5, 0x75, 0x8a, - 0x94, 0xdf, 0xcc, 0x66, 0x47, 0xd1, 0x59, 0xc8, 0xfa, 0x8b, 0xb0, 0x3f, 0x36, 0x81, 0x64, 0xdf, - 0x4d, 0xc3, 0xd9, 0xc7, 0x96, 0x5c, 0x66, 0xbc, 0x4f, 0x0c, 0xb2, 0x63, 0x99, 0x2b, 0xb1, 0x21, - 0x89, 0x92, 0x54, 0x62, 0x2b, 0x71, 0x20, 0x85, 0x92, 0x51, 0xe2, 0x28, 0x71, 0x21, 0x8d, 0x92, - 0x52, 0xe2, 0x2a, 0xf1, 0x20, 0x83, 0x52, 0x56, 0xe2, 0x29, 0x69, 0x43, 0x16, 0x25, 0xad, 0xa4, - 0xad, 0xa4, 0x03, 0x39, 0x94, 0xc7, 0x4a, 0x3a, 0x4a, 0xba, 0x90, 0x47, 0x31, 0x95, 0x74, 0x95, - 0xec, 0x43, 0x01, 0x25, 0xa7, 0x64, 0xdf, 0xdc, 0x25, 0xb9, 0x78, 0xd2, 0x26, 0x10, 0xa4, 0x1d, - 0xa4, 0x5c, 0x3c, 0x6a, 0x53, 0x5b, 0x0b, 0x8a, 0x68, 0x59, 0x6d, 0x2d, 0x6d, 0x36, 0x94, 0xd0, - 0x2a, 0xda, 0x6c, 0x6d, 0x0e, 0x94, 0xd1, 0xf2, 0xda, 0x1c, 0x6d, 0x2e, 0x3c, 0x12, 0x27, 0xa0, - 0xcd, 0xd5, 0xe6, 0xc1, 0x0e, 0x5a, 0x49, 0x9b, 0x67, 0xee, 0x91, 0x22, 0x1e, 0xd5, 0xc9, 0x3c, - 0x64, 0x6c, 0x38, 0x09, 0xa1, 0x82, 0x5e, 0xb4, 0x49, 0x43, 0xbc, 0x13, 0xf2, 0x58, 0x71, 0x2d, - 0xc1, 0x05, 0xbd, 0xd8, 0xfd, 0x12, 0x21, 0x3c, 0x64, 0xfc, 0x04, 0x9d, 0x8e, 0xeb, 0x2b, 0x83, - 0x14, 0x8e, 0x2e, 0x68, 0x5f, 0x24, 0xec, 0x81, 0x0f, 0xf7, 0xbe, 0x69, 0xc7, 0x85, 0xba, 0x1c, - 0xc8, 0xd8, 0x36, 0xed, 0xe8, 0x81, 0x1c, 0x0f, 0x9e, 0xcb, 0x81, 0x94, 0x79, 0xa6, 0x45, 0x4a, - 0x7f, 0x0c, 0x64, 0xc3, 0x8b, 0xbf, 0x26, 0x32, 0x06, 0x45, 0x3d, 0x91, 0xed, 0x67, 0x88, 0x78, - 0xed, 0xc5, 0x85, 0x5f, 0xd0, 0xfa, 0xa7, 0x24, 0x29, 0x1e, 0x2c, 0x19, 0xa7, 0x73, 0x39, 0x95, - 0xf8, 0xab, 0x43, 0x7e, 0x3e, 0x5d, 0x4c, 0xa2, 0x6d, 0x1b, 0xf8, 0xec, 0x58, 0xfc, 0x83, 0x39, - 0x20, 0x24, 0x5e, 0x2a, 0xde, 0xf0, 0xb8, 0x13, 0xbf, 0xf9, 0x7d, 0x5d, 0x7b, 0xfd, 0xcf, 0x2f, - 0x48, 0x3c, 0x3b, 0x6b, 0x24, 0xf7, 0x34, 0x8e, 0xa7, 0x0b, 0xde, 0xb2, 0xbb, 0xe2, 0x01, 0x8f, - 0x54, 0x15, 0xf3, 0x98, 0xe4, 0x0f, 0x86, 0x8c, 0xcb, 0x8a, 0xa2, 0xf5, 0xb4, 0xdf, 0xf9, 0xb5, - 0xae, 0x39, 0xff, 0xa9, 0x88, 0x3b, 0x38, 0xee, 0x68, 0xf4, 0x22, 0x51, 0xb5, 0xed, 0x8a, 0xed, - 0x58, 0x38, 0x3f, 0xda, 0x96, 0x32, 0xed, 0xfb, 0x56, 0x3f, 0x0c, 0xe7, 0x21, 0xbc, 0x14, 0x9f, - 0x8b, 0x5f, 0xd9, 0xac, 0x6b, 0xa5, 0x5e, 0xa4, 0x7f, 0xd7, 0xad, 0x88, 0xcc, 0xcf, 0x93, 0x6c, - 0x9c, 0xf9, 0x6f, 0xaf, 0x6e, 0xaa, 0x89, 0x15, 0xc6, 0x37, 0x8c, 0xeb, 0x9b, 0xaa, 0x71, 0x8b, - 0x71, 0x87, 0x71, 0xb9, 0xa9, 0x1a, 0x9f, 0x31, 0xbe, 0x60, 0x7c, 0xc5, 0xb8, 0xc2, 0x58, 0x61, - 0x5c, 0x63, 0xfc, 0xdc, 0x54, 0x13, 0xb7, 0x78, 0xbd, 0xc3, 0xeb, 0xe5, 0x8f, 0x6a, 0xe2, 0x77, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x75, 0xe8, 0x19, 0x58, 0x75, 0x04, 0x00, 0x00, + // 596 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0xdb, 0x40, + 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0xb8, 0x84, 0x92, 0x5a, 0xaa, 0x74, 0x65, 0x38, 0x4e, 0x69, + 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0xd8, 0xfc, 0x19, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3, + 0x98, 0x9a, 0x10, 0x89, 0xf8, 0x10, 0x77, 0x16, 0xf2, 0xc6, 0x67, 0xe8, 0xa7, 0xe8, 0xd8, 0xb1, + 0x1f, 0x81, 0x31, 0x63, 0xd5, 0x21, 0xc2, 0xee, 0xd2, 0x91, 0x11, 0x75, 0xaa, 0xce, 0x26, 0x77, + 0x95, 0xaa, 0xaa, 0x4b, 0xa7, 0xf8, 0xbd, 0x9f, 0xef, 0xe5, 0x3d, 0xdf, 0x1d, 0x7a, 0x76, 0xca, + 0x27, 0x21, 0x17, 0xdd, 0x90, 0xcb, 0xf3, 0x2e, 0x8f, 0xa3, 0xce, 0xe5, 0x15, 0x97, 0xdc, 0xae, + 0xf0, 0x38, 0x5a, 0xdb, 0x18, 0x8d, 0xe5, 0x79, 0x12, 0x76, 0x4e, 0xf9, 0xa4, 0x3b, 0xe2, 0x23, + 0xde, 0x2d, 0x2c, 0x4c, 0xce, 0x8a, 0xa8, 0x08, 0x8a, 0xa7, 0x72, 0x4d, 0xfb, 0x39, 0xaa, 0x1e, + 0x26, 0x61, 0x98, 0xda, 0x2d, 0x54, 0x11, 0x49, 0x88, 0x81, 0x02, 0x5b, 0x0e, 0xd4, 0x63, 0x7b, + 0x56, 0x41, 0x2b, 0x6f, 0x2e, 0x2e, 0x8e, 0xd2, 0xcb, 0x48, 0x1c, 0xc4, 0xd1, 0xc1, 0x99, 0x8d, + 0x51, 0xed, 0xdd, 0x38, 0xba, 0xf8, 0xd0, 0x2b, 0x5e, 0x83, 0x81, 0x15, 0x3c, 0xc6, 0x5a, 0x1c, + 0xbc, 0x40, 0x81, 0x2d, 0x68, 0x71, 0xb4, 0xf4, 0x71, 0x85, 0x02, 0xab, 0x6a, 0xe9, 0x6b, 0x71, + 0xf1, 0x22, 0x05, 0x56, 0xd1, 0xe2, 0x6a, 0xf1, 0x70, 0x95, 0x02, 0x5b, 0xd1, 0xe2, 0x69, 0xd9, + 0xc2, 0x35, 0x0a, 0x6c, 0x51, 0xcb, 0x96, 0x96, 0x6d, 0xbc, 0x44, 0x81, 0x3d, 0xd5, 0xb2, 0xad, + 0x65, 0x07, 0xd7, 0x29, 0x30, 0x5b, 0xcb, 0x8e, 0x96, 0x5d, 0xbc, 0x4c, 0x81, 0x2d, 0x69, 0xd9, + 0xb5, 0xd7, 0xd0, 0x52, 0x39, 0xd9, 0x26, 0x46, 0x14, 0xd8, 0xea, 0xc0, 0x0a, 0xe6, 0x09, 0x63, + 0x3d, 0xdc, 0xa0, 0xc0, 0x6a, 0xc6, 0x7a, 0xc6, 0x1c, 0xdc, 0xa4, 0xc0, 0x5a, 0xc6, 0x1c, 0x63, + 0x7d, 0xbc, 0x42, 0x81, 0xd5, 0x8d, 0xf5, 0x8d, 0xb9, 0xf8, 0x89, 0xda, 0x01, 0x63, 0xae, 0x31, + 0x0f, 0xaf, 0x52, 0x60, 0x4d, 0x63, 0x9e, 0xbd, 0x81, 0x1a, 0x22, 0x09, 0x4f, 0x26, 0x91, 0x10, + 0xc3, 0x51, 0x84, 0x5b, 0x14, 0x58, 0xc3, 0x41, 0x1d, 0x75, 0x26, 0x8a, 0x6d, 0x1d, 0x58, 0x01, + 0x12, 0x49, 0xb8, 0x5f, 0xba, 0xdf, 0x44, 0x48, 0x46, 0x42, 0x9e, 0xf0, 0x38, 0xe2, 0x67, 0xed, + 0x29, 0xa0, 0xe5, 0xa3, 0x6b, 0x7e, 0xa0, 0x02, 0xf1, 0x9f, 0x37, 0x77, 0xde, 0x74, 0xdf, 0xc5, + 0xed, 0x62, 0x20, 0x08, 0xe6, 0x09, 0x63, 0x1e, 0x7e, 0x51, 0x0c, 0xa4, 0xcd, 0xb3, 0xbb, 0xa8, + 0xf9, 0xdb, 0x40, 0x0e, 0x7e, 0xf9, 0xc7, 0x44, 0x10, 0x34, 0xcc, 0x44, 0x8e, 0x5f, 0x45, 0xea, + 0xd8, 0xab, 0x1f, 0x79, 0xcd, 0xdb, 0x1f, 0x17, 0x50, 0x63, 0x2f, 0x11, 0x92, 0x4f, 0x8a, 0xa9, + 0xd4, 0x5f, 0x1d, 0xca, 0xab, 0x71, 0x3c, 0x4a, 0x1f, 0xdb, 0xb0, 0x82, 0x79, 0xc2, 0x0e, 0x10, + 0x2a, 0x5f, 0x55, 0x27, 0xbc, 0xec, 0xc4, 0xdf, 0xfc, 0x36, 0x5b, 0x7f, 0xfd, 0xd7, 0x1b, 0xa4, + 0xbe, 0x5d, 0xf7, 0xb4, 0x58, 0xd3, 0x39, 0x1e, 0xc7, 0xb2, 0xe7, 0xec, 0xa8, 0x0f, 0x6c, 0xaa, + 0xd8, 0xc7, 0xa8, 0xbe, 0x37, 0x14, 0xb2, 0xa8, 0xa8, 0x5a, 0x5f, 0xf4, 0xb7, 0x7f, 0xce, 0xd6, + 0xfb, 0xff, 0xa8, 0x38, 0x14, 0x52, 0xa6, 0x97, 0x51, 0x67, 0x3f, 0x55, 0x55, 0xb7, 0x5c, 0xb5, + 0x7c, 0x60, 0x05, 0xba, 0x94, 0xed, 0xcc, 0x5b, 0x7d, 0x3f, 0x9c, 0x44, 0xf8, 0x95, 0xba, 0x2e, + 0x7e, 0x2b, 0x9f, 0xad, 0x37, 0xf7, 0x53, 0x93, 0x37, 0xad, 0xa8, 0xc8, 0xaf, 0xa3, 0x5a, 0xd9, + 0xaa, 0xff, 0xf6, 0x36, 0x23, 0xd6, 0x34, 0x23, 0xd6, 0xd7, 0x8c, 0x58, 0x77, 0x19, 0x81, 0xfb, + 0x8c, 0xc0, 0x43, 0x46, 0xe0, 0x26, 0x27, 0xf0, 0x29, 0x27, 0xf0, 0x39, 0x27, 0xf0, 0x25, 0x27, + 0x70, 0x9b, 0x13, 0x98, 0xe6, 0x04, 0xee, 0x72, 0x02, 0x3f, 0x72, 0x62, 0xdd, 0xe7, 0x04, 0x1e, + 0x72, 0x62, 0xdd, 0x7c, 0x27, 0xd6, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x65, 0xb5, 0xca, + 0x75, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.proto index 9f36cf72..a72dde02 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go index 562e89e4..19bd5344 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go @@ -36,18 +36,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -71,20 +71,20 @@ func TestSubbyMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -98,18 +98,18 @@ func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -133,20 +133,20 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -160,18 +160,18 @@ func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -195,20 +195,20 @@ func TestTwoOneofsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -222,18 +222,18 @@ func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -257,20 +257,20 @@ func TestCustomOneofMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -368,9 +368,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -385,9 +385,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -402,9 +402,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -419,9 +419,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,9 +436,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,9 +453,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,9 +470,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,9 +487,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -506,12 +506,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -521,12 +521,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestAllTypesOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -536,12 +536,12 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { func TestTwoOneofsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -551,12 +551,12 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { func TestCustomOneofVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -620,13 +620,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -642,13 +642,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -664,13 +664,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -686,13 +686,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go index ff157546..6e4e0887 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -42,7 +40,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -88,49 +88,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -577,19 +577,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -819,16 +819,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -883,11 +883,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -989,240 +989,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3724 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0xe5, - 0xd5, 0x5e, 0xc7, 0x97, 0xd8, 0xc7, 0x8e, 0xe3, 0x4c, 0xc2, 0xae, 0x37, 0xc0, 0x86, 0xf5, 0x72, - 0x59, 0x16, 0x48, 0x76, 0x93, 0xcd, 0x5e, 0xcc, 0xf7, 0x81, 0xe2, 0xc4, 0x1b, 0xb2, 0x4a, 0xe2, - 0x7c, 0x93, 0x18, 0x16, 0xbe, 0x1f, 0xa3, 0x89, 0x3d, 0x71, 0xbc, 0x6b, 0xcf, 0xf8, 0xf3, 0x8c, - 0x77, 0x37, 0xfc, 0xe2, 0x13, 0xbd, 0x08, 0x55, 0xbd, 0xd1, 0x4a, 0xe5, 0xde, 0x82, 0xd4, 0x42, - 0xe9, 0x0d, 0x7a, 0x53, 0xd5, 0x5f, 0x95, 0x2a, 0x5a, 0x7e, 0x55, 0xb4, 0xbf, 0xaa, 0xaa, 0x5a, - 0x15, 0x8a, 0x54, 0xda, 0xd2, 0x96, 0x4a, 0x2b, 0x15, 0xc1, 0x9f, 0x9e, 0xf7, 0x36, 0x17, 0xdb, - 0xc9, 0x38, 0xa8, 0x94, 0x46, 0xb2, 0xe2, 0x39, 0xe7, 0x3c, 0xcf, 0xbc, 0xef, 0x79, 0xcf, 0x7b, - 0xce, 0x99, 0x77, 0x0c, 0x3f, 0x3d, 0x06, 0x37, 0x54, 0x0c, 0xa3, 0x52, 0xd3, 0x26, 0x1a, 0x4d, - 0xc3, 0x32, 0xd6, 0x5b, 0x1b, 0x13, 0x65, 0xcd, 0x2c, 0x35, 0xab, 0x0d, 0xcb, 0x68, 0x8e, 0x53, - 0x99, 0x34, 0xc8, 0x2c, 0xc6, 0x85, 0x45, 0x66, 0x09, 0x86, 0xce, 0x54, 0x6b, 0xda, 0x9c, 0x6d, - 0xb8, 0xaa, 0x59, 0xd2, 0x29, 0x08, 0x6d, 0xa0, 0x30, 0x1d, 0xb8, 0x21, 0x78, 0x38, 0x3e, 0x79, - 0xe3, 0x78, 0x1b, 0x68, 0xdc, 0x8b, 0x58, 0x21, 0x62, 0x99, 0x22, 0x32, 0x6f, 0x86, 0x60, 0xb8, - 0x8b, 0x56, 0x92, 0x20, 0xa4, 0xab, 0x75, 0xc2, 0x18, 0x38, 0x1c, 0x93, 0xe9, 0x77, 0x29, 0x0d, - 0xfd, 0x0d, 0xb5, 0x74, 0x41, 0xad, 0x68, 0xe9, 0x3e, 0x2a, 0x16, 0x97, 0xd2, 0x01, 0x80, 0xb2, - 0xd6, 0xd0, 0xf4, 0xb2, 0xa6, 0x97, 0xb6, 0xd2, 0x41, 0x1c, 0x45, 0x4c, 0x76, 0x49, 0xa4, 0xdb, - 0x60, 0xa8, 0xd1, 0x5a, 0xaf, 0x55, 0x4b, 0x8a, 0xcb, 0x0c, 0xd0, 0x2c, 0x2c, 0xa7, 0x98, 0x62, - 0xce, 0x31, 0xbe, 0x05, 0x06, 0x2f, 0x69, 0xea, 0x05, 0xb7, 0x69, 0x9c, 0x9a, 0x26, 0x89, 0xd8, - 0x65, 0x38, 0x0b, 0x89, 0xba, 0x66, 0x9a, 0x38, 0x00, 0xc5, 0xda, 0x6a, 0x68, 0xe9, 0x10, 0x9d, - 0xfd, 0x0d, 0x1d, 0xb3, 0x6f, 0x9f, 0x79, 0x9c, 0xa3, 0xd6, 0x10, 0x24, 0xcd, 0x40, 0x4c, 0xd3, - 0x5b, 0x75, 0xc6, 0x10, 0xde, 0xc6, 0x7f, 0x79, 0xb4, 0x68, 0x67, 0x89, 0x12, 0x18, 0xa7, 0xe8, - 0x37, 0xb5, 0xe6, 0xc5, 0x6a, 0x49, 0x4b, 0x47, 0x28, 0xc1, 0x2d, 0x1d, 0x04, 0xab, 0x4c, 0xdf, - 0xce, 0x21, 0x70, 0x38, 0x95, 0x98, 0x76, 0xd9, 0xd2, 0x74, 0xb3, 0x6a, 0xe8, 0xe9, 0x7e, 0x4a, - 0x72, 0x53, 0x97, 0x55, 0xd4, 0x6a, 0xe5, 0x76, 0x0a, 0x07, 0x27, 0x9d, 0x80, 0x7e, 0xa3, 0x61, - 0xe1, 0x37, 0x33, 0x1d, 0xc5, 0xf5, 0x89, 0x4f, 0x5e, 0xd7, 0x35, 0x10, 0x0a, 0xcc, 0x46, 0x16, - 0xc6, 0xd2, 0x02, 0xa4, 0x4c, 0xa3, 0xd5, 0x2c, 0x69, 0x4a, 0xc9, 0x28, 0x6b, 0x4a, 0x55, 0xdf, - 0x30, 0xd2, 0x31, 0x4a, 0x30, 0xd6, 0x39, 0x11, 0x6a, 0x38, 0x8b, 0x76, 0x0b, 0x68, 0x26, 0x27, - 0x4d, 0xcf, 0xb5, 0xb4, 0x17, 0x22, 0xe6, 0x96, 0x6e, 0xa9, 0x97, 0xd3, 0x09, 0x1a, 0x21, 0xfc, - 0x2a, 0xf3, 0x8f, 0x30, 0x0c, 0xf6, 0x12, 0x62, 0x77, 0x42, 0x78, 0x83, 0xcc, 0x12, 0x03, 0x6c, - 0x17, 0x3e, 0x60, 0x18, 0xaf, 0x13, 0x23, 0x1f, 0xd0, 0x89, 0x33, 0x10, 0xd7, 0x35, 0xd3, 0xd2, - 0xca, 0x2c, 0x22, 0x82, 0x3d, 0xc6, 0x14, 0x30, 0x50, 0x67, 0x48, 0x85, 0x3e, 0x50, 0x48, 0x9d, - 0x83, 0x41, 0x7b, 0x48, 0x4a, 0x53, 0xd5, 0x2b, 0x22, 0x36, 0x27, 0xfc, 0x46, 0x32, 0x9e, 0x17, - 0x38, 0x99, 0xc0, 0xe4, 0xa4, 0xe6, 0xb9, 0x96, 0xe6, 0x00, 0x0c, 0x5d, 0x33, 0x36, 0x70, 0x7b, - 0x95, 0x6a, 0x18, 0x27, 0xdd, 0xbd, 0x54, 0x20, 0x26, 0x1d, 0x5e, 0x32, 0x98, 0xb4, 0x54, 0x93, - 0x4e, 0x3b, 0xa1, 0xd6, 0xbf, 0x4d, 0xa4, 0x2c, 0xb1, 0x4d, 0xd6, 0x11, 0x6d, 0x45, 0x48, 0x36, - 0x35, 0x12, 0xf7, 0xe8, 0x62, 0x36, 0xb3, 0x18, 0x1d, 0xc4, 0xb8, 0xef, 0xcc, 0x64, 0x0e, 0x63, - 0x13, 0x1b, 0x68, 0xba, 0x2f, 0xa5, 0x43, 0x60, 0x0b, 0x14, 0x1a, 0x56, 0x40, 0xb3, 0x50, 0x42, - 0x08, 0x97, 0x51, 0x36, 0x7a, 0x0a, 0x92, 0x5e, 0xf7, 0x48, 0x23, 0x10, 0x36, 0x2d, 0xb5, 0x69, - 0xd1, 0x28, 0x0c, 0xcb, 0xec, 0x42, 0x4a, 0x41, 0x10, 0x93, 0x0c, 0xcd, 0x72, 0x61, 0x99, 0x7c, - 0x1d, 0x3d, 0x09, 0x03, 0x9e, 0xdb, 0xf7, 0x0a, 0xcc, 0x3c, 0x16, 0x81, 0x91, 0x6e, 0x31, 0xd7, - 0x35, 0xfc, 0x71, 0xfb, 0x60, 0x04, 0xac, 0x6b, 0x4d, 0x8c, 0x3b, 0xc2, 0xc0, 0xaf, 0x30, 0xa2, - 0xc2, 0x35, 0x75, 0x5d, 0xab, 0x61, 0x34, 0x05, 0x0e, 0x27, 0x27, 0x6f, 0xeb, 0x29, 0xaa, 0xc7, - 0x17, 0x09, 0x44, 0x66, 0x48, 0xe9, 0x2e, 0x08, 0xf1, 0x14, 0x47, 0x18, 0x8e, 0xf4, 0xc6, 0x40, - 0x62, 0x51, 0xa6, 0x38, 0xe9, 0x5a, 0x88, 0x91, 0xff, 0xcc, 0xb7, 0x11, 0x3a, 0xe6, 0x28, 0x11, - 0x10, 0xbf, 0x4a, 0xa3, 0x10, 0xa5, 0x61, 0x56, 0xd6, 0x44, 0x69, 0xb0, 0xaf, 0xc9, 0xc2, 0x94, - 0xb5, 0x0d, 0xb5, 0x55, 0xb3, 0x94, 0x8b, 0x6a, 0xad, 0xa5, 0xd1, 0x80, 0xc1, 0x85, 0xe1, 0xc2, - 0x7b, 0x89, 0x4c, 0x1a, 0x83, 0x38, 0x8b, 0xca, 0x2a, 0x62, 0x2e, 0xd3, 0xec, 0x13, 0x96, 0x59, - 0xa0, 0x2e, 0x10, 0x09, 0xb9, 0xfd, 0x79, 0x13, 0xf7, 0x02, 0x5f, 0x5a, 0x7a, 0x0b, 0x22, 0xa0, - 0xb7, 0x3f, 0xd9, 0x9e, 0xf8, 0xae, 0xef, 0x3e, 0xbd, 0xf6, 0x58, 0xcc, 0xfc, 0xb0, 0x0f, 0x42, - 0x74, 0xbf, 0x0d, 0x42, 0x7c, 0xed, 0xfe, 0x95, 0xbc, 0x32, 0x57, 0x28, 0xe6, 0x16, 0xf3, 0xa9, - 0x80, 0x94, 0x04, 0xa0, 0x82, 0x33, 0x8b, 0x85, 0x99, 0xb5, 0x54, 0x9f, 0x7d, 0xbd, 0xb0, 0xbc, - 0x76, 0xe2, 0x78, 0x2a, 0x68, 0x03, 0x8a, 0x4c, 0x10, 0x72, 0x1b, 0x4c, 0x4d, 0xa6, 0xc2, 0x18, - 0x09, 0x09, 0x46, 0xb0, 0x70, 0x2e, 0x3f, 0x87, 0x16, 0x11, 0xaf, 0x04, 0x6d, 0xfa, 0xa5, 0x01, - 0x88, 0x51, 0x49, 0xae, 0x50, 0x58, 0x4c, 0x45, 0x6d, 0xce, 0xd5, 0x35, 0x79, 0x61, 0x79, 0x3e, - 0x15, 0xb3, 0x39, 0xe7, 0xe5, 0x42, 0x71, 0x25, 0x05, 0x36, 0xc3, 0x52, 0x7e, 0x75, 0x75, 0x66, - 0x3e, 0x9f, 0x8a, 0xdb, 0x16, 0xb9, 0xfb, 0xd7, 0xf2, 0xab, 0xa9, 0x84, 0x67, 0x58, 0x78, 0x8b, - 0x01, 0xfb, 0x16, 0xf9, 0xe5, 0xe2, 0x52, 0x2a, 0x29, 0x0d, 0xc1, 0x00, 0xbb, 0x85, 0x18, 0xc4, - 0x60, 0x9b, 0x08, 0x47, 0x9a, 0x72, 0x06, 0xc2, 0x58, 0x86, 0x3c, 0x02, 0xb4, 0x90, 0x32, 0xb3, - 0x10, 0xa6, 0xd1, 0x85, 0x51, 0x9c, 0x5c, 0x9c, 0xc9, 0xe5, 0x17, 0x95, 0xc2, 0xca, 0xda, 0x42, - 0x61, 0x79, 0x66, 0x11, 0x7d, 0x67, 0xcb, 0xe4, 0xfc, 0xff, 0x14, 0x17, 0xe4, 0xfc, 0x1c, 0xfa, - 0xcf, 0x25, 0x5b, 0xc9, 0xcf, 0xac, 0xa1, 0x2c, 0x98, 0x39, 0x02, 0x23, 0xdd, 0xf2, 0x4c, 0xb7, - 0x9d, 0x91, 0x79, 0x2e, 0x00, 0xc3, 0x5d, 0x52, 0x66, 0xd7, 0x5d, 0x74, 0x37, 0x84, 0x59, 0xa4, - 0xb1, 0x22, 0x72, 0x6b, 0xd7, 0xdc, 0x4b, 0xe3, 0xae, 0xa3, 0x90, 0x50, 0x9c, 0xbb, 0x90, 0x06, - 0xb7, 0x29, 0xa4, 0x84, 0xa2, 0x23, 0x9c, 0x1e, 0x0e, 0x40, 0x7a, 0x3b, 0x6e, 0x9f, 0xfd, 0xde, - 0xe7, 0xd9, 0xef, 0x77, 0xb6, 0x0f, 0xe0, 0xe0, 0xf6, 0x73, 0xe8, 0x18, 0xc5, 0xf3, 0x01, 0xd8, - 0xdb, 0xbd, 0xdf, 0xe8, 0x3a, 0x86, 0xbb, 0x20, 0x52, 0xd7, 0xac, 0x4d, 0x43, 0xd4, 0xdc, 0x9b, - 0xbb, 0x64, 0x72, 0xa2, 0x6e, 0xf7, 0x15, 0x47, 0xb9, 0x4b, 0x41, 0x70, 0xbb, 0xa6, 0x81, 0x8d, - 0xa6, 0x63, 0xa4, 0x8f, 0xf4, 0xc1, 0x35, 0x5d, 0xc9, 0xbb, 0x0e, 0xf4, 0x7a, 0x80, 0xaa, 0xde, - 0x68, 0x59, 0xac, 0xae, 0xb2, 0x34, 0x13, 0xa3, 0x12, 0xba, 0x85, 0x49, 0x0a, 0x69, 0x59, 0xb6, - 0x3e, 0x48, 0xf5, 0xc0, 0x44, 0xd4, 0xe0, 0x94, 0x33, 0xd0, 0x10, 0x1d, 0xe8, 0x81, 0x6d, 0x66, - 0xda, 0x51, 0xb2, 0x8e, 0x42, 0xaa, 0x54, 0xab, 0x6a, 0xba, 0xa5, 0x98, 0x56, 0x53, 0x53, 0xeb, - 0x55, 0xbd, 0x42, 0xf3, 0x68, 0x34, 0x1b, 0xde, 0x50, 0x6b, 0xa6, 0x26, 0x0f, 0x32, 0xf5, 0xaa, - 0xd0, 0x12, 0x04, 0x2d, 0x16, 0x4d, 0x17, 0x22, 0xe2, 0x41, 0x30, 0xb5, 0x8d, 0xc8, 0xfc, 0xaa, - 0x1f, 0xe2, 0xae, 0xee, 0x4c, 0x3a, 0x08, 0x89, 0xf3, 0xea, 0x45, 0x55, 0x11, 0x1d, 0x37, 0xf3, - 0x44, 0x9c, 0xc8, 0x56, 0x78, 0xd7, 0x7d, 0x14, 0x46, 0xa8, 0x09, 0xce, 0x11, 0x6f, 0x54, 0xaa, - 0xa9, 0xa6, 0x49, 0x9d, 0x16, 0xa5, 0xa6, 0x12, 0xd1, 0x15, 0x88, 0x6a, 0x56, 0x68, 0xa4, 0x69, - 0x18, 0xa6, 0x88, 0x3a, 0x26, 0xde, 0x6a, 0xa3, 0xa6, 0x29, 0xe4, 0x19, 0xc0, 0xa4, 0xf9, 0xd4, - 0x1e, 0xd9, 0x10, 0xb1, 0x58, 0xe2, 0x06, 0x64, 0x44, 0xa6, 0x34, 0x0f, 0xd7, 0x53, 0x58, 0x45, - 0xd3, 0xb5, 0xa6, 0x6a, 0x69, 0x8a, 0xf6, 0x7f, 0x2d, 0xb4, 0x55, 0x54, 0xbd, 0xac, 0x6c, 0xaa, - 0xe6, 0x66, 0x7a, 0xc4, 0x4d, 0xb0, 0x9f, 0xd8, 0xce, 0x73, 0xd3, 0x3c, 0xb5, 0x9c, 0xd1, 0xcb, - 0xf7, 0xa0, 0x9d, 0x94, 0x85, 0xbd, 0x94, 0x08, 0x9d, 0x82, 0x73, 0x56, 0x4a, 0x9b, 0x5a, 0xe9, - 0x82, 0xd2, 0xb2, 0x36, 0x4e, 0xa5, 0xaf, 0x75, 0x33, 0xd0, 0x41, 0xae, 0x52, 0x9b, 0x59, 0x62, - 0x52, 0x44, 0x0b, 0x69, 0x15, 0x12, 0x64, 0x3d, 0xea, 0xd5, 0x07, 0x71, 0xd8, 0x46, 0x93, 0xd6, - 0x88, 0x64, 0x97, 0xcd, 0xed, 0x72, 0xe2, 0x78, 0x81, 0x03, 0x96, 0xb0, 0x3f, 0xcd, 0x86, 0x57, - 0x57, 0xf2, 0xf9, 0x39, 0x39, 0x2e, 0x58, 0xce, 0x18, 0x4d, 0x12, 0x53, 0x15, 0xc3, 0xf6, 0x71, - 0x9c, 0xc5, 0x54, 0xc5, 0x10, 0x1e, 0x46, 0x7f, 0x95, 0x4a, 0x6c, 0xda, 0xf8, 0xec, 0xc2, 0x9b, - 0x75, 0x33, 0x9d, 0xf2, 0xf8, 0xab, 0x54, 0x9a, 0x67, 0x06, 0x3c, 0xcc, 0x4d, 0xdc, 0x12, 0xd7, - 0x38, 0xfe, 0x72, 0x03, 0x87, 0x3a, 0x66, 0xd9, 0x0e, 0xc5, 0x3b, 0x36, 0xb6, 0x3a, 0x81, 0x92, - 0xe7, 0x8e, 0x8d, 0xad, 0x76, 0xd8, 0x4d, 0xf4, 0x01, 0xac, 0xa9, 0x95, 0xd0, 0xe5, 0xe5, 0xf4, - 0x3e, 0xb7, 0xb5, 0x4b, 0x21, 0x4d, 0x60, 0x20, 0x97, 0x14, 0x4d, 0x57, 0xd7, 0x71, 0xed, 0xd5, - 0x26, 0x7e, 0x31, 0xd3, 0x63, 0x6e, 0xe3, 0x64, 0xa9, 0x94, 0xa7, 0xda, 0x19, 0xaa, 0x94, 0x8e, - 0xc0, 0x90, 0xb1, 0x7e, 0xbe, 0xc4, 0x82, 0x4b, 0x41, 0x9e, 0x8d, 0xea, 0xe5, 0xf4, 0x8d, 0xd4, - 0x4d, 0x83, 0x44, 0x41, 0x43, 0x6b, 0x85, 0x8a, 0xa5, 0x5b, 0x91, 0xdc, 0xdc, 0x54, 0x9b, 0x0d, - 0x5a, 0xa4, 0x4d, 0x74, 0xaa, 0x96, 0xbe, 0x89, 0x99, 0x32, 0xf9, 0xb2, 0x10, 0x4b, 0x79, 0x18, - 0x23, 0x93, 0xd7, 0x55, 0xdd, 0x50, 0x5a, 0xa6, 0xa6, 0x38, 0x43, 0xb4, 0xd7, 0xe2, 0x66, 0x32, - 0x2c, 0xf9, 0x3a, 0x61, 0x56, 0x34, 0x31, 0x99, 0x09, 0x23, 0xb1, 0x3c, 0xe7, 0x60, 0xa4, 0xa5, - 0x57, 0x75, 0x0c, 0x71, 0xd4, 0x10, 0x30, 0xdb, 0xb0, 0xe9, 0x3f, 0xf4, 0x6f, 0xd3, 0x74, 0x17, - 0xdd, 0xd6, 0x2c, 0x48, 0xe4, 0xe1, 0x56, 0xa7, 0x30, 0x93, 0x85, 0x84, 0x3b, 0x76, 0xa4, 0x18, - 0xb0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0xb6, 0x30, 0x47, 0x6a, 0xe1, 0x03, 0x79, 0x2c, 0x6c, - 0x58, 0x93, 0x17, 0x17, 0xd6, 0xf2, 0x8a, 0x5c, 0x5c, 0x5e, 0x5b, 0x58, 0xca, 0xa7, 0x82, 0x47, - 0x62, 0xd1, 0xb7, 0xfa, 0x53, 0x0f, 0xe1, 0x5f, 0x5f, 0xe6, 0x95, 0x3e, 0x48, 0x7a, 0xfb, 0x60, - 0xe9, 0xbf, 0x60, 0x9f, 0x78, 0x68, 0x35, 0x35, 0x4b, 0xb9, 0x54, 0x6d, 0xd2, 0x70, 0xae, 0xab, - 0xac, 0x93, 0xb4, 0x57, 0x62, 0x84, 0x5b, 0xe1, 0xe3, 0xfd, 0x7d, 0x68, 0x73, 0x86, 0x9a, 0x48, - 0x8b, 0x30, 0x86, 0x2e, 0xc3, 0x5e, 0x53, 0x2f, 0xab, 0xcd, 0xb2, 0xe2, 0x1c, 0x17, 0x28, 0x6a, - 0x09, 0xe3, 0xc0, 0x34, 0x58, 0x25, 0xb1, 0x59, 0xae, 0xd3, 0x8d, 0x55, 0x6e, 0xec, 0xa4, 0xd8, - 0x19, 0x6e, 0xda, 0x16, 0x35, 0xc1, 0xed, 0xa2, 0x06, 0x7b, 0xaf, 0xba, 0xda, 0xc0, 0xb0, 0xb1, - 0x9a, 0x5b, 0xb4, 0x7b, 0x8b, 0xca, 0x51, 0x14, 0xe4, 0xc9, 0xf5, 0x87, 0xb7, 0x06, 0x6e, 0x3f, - 0xfe, 0x36, 0x08, 0x09, 0x77, 0x07, 0x47, 0x1a, 0xe2, 0x12, 0x4d, 0xf3, 0x01, 0x9a, 0x05, 0x0e, - 0xed, 0xd8, 0xef, 0x8d, 0xcf, 0x92, 0xfc, 0x9f, 0x8d, 0xb0, 0xbe, 0x4a, 0x66, 0x48, 0x52, 0x7b, - 0x49, 0xac, 0x69, 0xac, 0x5b, 0x8f, 0xca, 0xfc, 0x0a, 0x93, 0x5d, 0xe4, 0xbc, 0x49, 0xb9, 0x23, - 0x94, 0xfb, 0xc6, 0x9d, 0xb9, 0xcf, 0xae, 0x52, 0xf2, 0xd8, 0xd9, 0x55, 0x65, 0xb9, 0x20, 0x2f, - 0xcd, 0x2c, 0xca, 0x1c, 0x2e, 0xed, 0x87, 0x50, 0x4d, 0x7d, 0x70, 0xcb, 0x5b, 0x29, 0xa8, 0xa8, - 0x57, 0xc7, 0x23, 0x03, 0x39, 0xf2, 0xf0, 0xe6, 0x67, 0x2a, 0xfa, 0x10, 0x43, 0x7f, 0x02, 0xc2, - 0xd4, 0x5f, 0x12, 0x00, 0xf7, 0x58, 0x6a, 0x8f, 0x14, 0x85, 0xd0, 0x6c, 0x41, 0x26, 0xe1, 0x8f, - 0xf1, 0xce, 0xa4, 0xca, 0xca, 0x42, 0x7e, 0x16, 0x77, 0x40, 0x66, 0x1a, 0x22, 0xcc, 0x09, 0x64, - 0x6b, 0xd8, 0x6e, 0x40, 0x10, 0xbb, 0xe4, 0x1c, 0x01, 0xa1, 0x2d, 0x2e, 0xe5, 0xf2, 0x72, 0xaa, - 0xcf, 0xbd, 0xbc, 0x3f, 0x0e, 0x40, 0xdc, 0xd5, 0x50, 0x91, 0x52, 0xae, 0xd6, 0x6a, 0xc6, 0x25, - 0x45, 0xad, 0x55, 0x31, 0x43, 0xb1, 0xf5, 0x01, 0x2a, 0x9a, 0x21, 0x92, 0x5e, 0xfd, 0xf7, 0x6f, - 0x89, 0xcd, 0x67, 0x02, 0x90, 0x6a, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf8, 0x48, 0x07, 0xf8, 0x54, - 0x00, 0x92, 0xde, 0x0e, 0xac, 0x6d, 0x78, 0x07, 0x3f, 0xd2, 0xe1, 0x3d, 0x19, 0x80, 0x01, 0x4f, - 0xdf, 0xf5, 0x1f, 0x35, 0xba, 0x27, 0x82, 0x30, 0xdc, 0x05, 0x87, 0x09, 0x88, 0x35, 0xa8, 0xac, - 0x67, 0xbe, 0xa3, 0x97, 0x7b, 0x8d, 0x93, 0xfa, 0xb7, 0xa2, 0x36, 0x2d, 0xde, 0xcf, 0x62, 0xbd, - 0xac, 0x96, 0x31, 0xa9, 0x56, 0x37, 0xaa, 0xd8, 0xbe, 0xb1, 0x27, 0x16, 0xd6, 0xb5, 0x0e, 0x3a, - 0x72, 0xf6, 0x78, 0x7c, 0x3b, 0x48, 0x0d, 0xc3, 0xac, 0x5a, 0xd5, 0x8b, 0xe4, 0x78, 0x4e, 0x3c, - 0x48, 0x93, 0x2e, 0x36, 0x24, 0xa7, 0x84, 0x66, 0x41, 0xb7, 0x6c, 0x6b, 0x5d, 0xab, 0xa8, 0x6d, - 0xd6, 0x24, 0x0d, 0x05, 0xe5, 0x94, 0xd0, 0xd8, 0xd6, 0xd8, 0x68, 0x96, 0x8d, 0x16, 0x69, 0x08, - 0x98, 0x1d, 0xc9, 0x7a, 0x01, 0x39, 0xce, 0x64, 0xb6, 0x09, 0xef, 0xd8, 0x9c, 0x27, 0xf8, 0x84, - 0x1c, 0x67, 0x32, 0x66, 0x72, 0x0b, 0x0c, 0xaa, 0x95, 0x4a, 0x93, 0x90, 0x0b, 0x22, 0xd6, 0x86, - 0x26, 0x6d, 0x31, 0x35, 0x1c, 0x3d, 0x0b, 0x51, 0xe1, 0x07, 0x52, 0x58, 0x88, 0x27, 0xb0, 0xe6, - 0xd3, 0x73, 0x94, 0x3e, 0xf2, 0x50, 0xaf, 0x0b, 0x25, 0xde, 0xb4, 0x6a, 0x2a, 0xce, 0x81, 0x5e, - 0x1f, 0xea, 0xa3, 0x72, 0xbc, 0x6a, 0xda, 0x27, 0x38, 0x99, 0xe7, 0xb1, 0xbc, 0x7a, 0x0f, 0x24, - 0xa5, 0x39, 0x88, 0xd6, 0x0c, 0x8c, 0x0f, 0x82, 0x60, 0xa7, 0xe1, 0x87, 0x7d, 0xce, 0x30, 0xc7, - 0x17, 0xb9, 0xbd, 0x6c, 0x23, 0x47, 0x7f, 0x11, 0x80, 0xa8, 0x10, 0x63, 0xa1, 0x08, 0x35, 0x54, - 0x6b, 0x93, 0xd2, 0x85, 0x73, 0x7d, 0xa9, 0x80, 0x4c, 0xaf, 0x89, 0x1c, 0xbb, 0x19, 0x9d, 0x86, - 0x00, 0x97, 0x93, 0x6b, 0xb2, 0xae, 0x35, 0x4d, 0x2d, 0xd3, 0x06, 0xd7, 0xa8, 0xd7, 0x71, 0x25, - 0x4d, 0xb1, 0xae, 0x5c, 0x3e, 0xcb, 0xc5, 0xe4, 0x5c, 0xdc, 0x6a, 0xaa, 0xd5, 0x9a, 0xc7, 0x36, - 0x44, 0x6d, 0x53, 0x42, 0x61, 0x1b, 0x67, 0x61, 0xbf, 0xe0, 0x2d, 0x6b, 0x96, 0x8a, 0xcd, 0x73, - 0xd9, 0x01, 0x45, 0xe8, 0x69, 0xd7, 0x3e, 0x6e, 0x30, 0xc7, 0xf5, 0x02, 0x9b, 0x3b, 0x87, 0x8d, - 0xac, 0x51, 0x6f, 0xf7, 0x44, 0x2e, 0xd5, 0xf6, 0xdc, 0x65, 0xde, 0x13, 0x78, 0x00, 0x9c, 0xa6, - 0xe2, 0xb9, 0xbe, 0xe0, 0xfc, 0x4a, 0xee, 0xc5, 0xbe, 0xd1, 0x79, 0x86, 0x5b, 0x11, 0x1e, 0x94, - 0xb5, 0x8d, 0x9a, 0x56, 0x22, 0xde, 0x81, 0x67, 0x0f, 0xc1, 0x1d, 0x95, 0xaa, 0xb5, 0xd9, 0x5a, - 0x1f, 0xc7, 0x3b, 0x4c, 0x54, 0x8c, 0x8a, 0xe1, 0xbc, 0xce, 0x20, 0x57, 0xf4, 0x82, 0x7e, 0xe3, - 0xaf, 0x34, 0x62, 0xb6, 0x74, 0xd4, 0xf7, 0xfd, 0x47, 0x76, 0x19, 0x86, 0xb9, 0xb1, 0x42, 0xcf, - 0x54, 0x59, 0x0b, 0x2a, 0xed, 0xf8, 0x40, 0x9e, 0x7e, 0xf9, 0x4d, 0x5a, 0x12, 0xe4, 0x21, 0x0e, - 0x25, 0x3a, 0xd6, 0xa4, 0x66, 0x65, 0xb8, 0xc6, 0xc3, 0xc7, 0x62, 0x18, 0x1f, 0xb9, 0x77, 0x66, - 0x7c, 0x85, 0x33, 0x0e, 0xbb, 0x18, 0x57, 0x39, 0x34, 0x3b, 0x0b, 0x03, 0xbb, 0xe1, 0xfa, 0x19, - 0xe7, 0x4a, 0x68, 0x6e, 0x92, 0x79, 0x18, 0xa4, 0x24, 0xa5, 0x96, 0x69, 0x19, 0x75, 0x9a, 0x20, - 0x76, 0xa6, 0xf9, 0xf9, 0x9b, 0x2c, 0xa8, 0x92, 0x04, 0x36, 0x6b, 0xa3, 0xb2, 0xf7, 0xc2, 0x08, - 0x91, 0xd0, 0x3d, 0xe8, 0x66, 0xf3, 0x3f, 0x42, 0x48, 0xff, 0xf2, 0x61, 0x16, 0x7b, 0xc3, 0x36, - 0x81, 0x8b, 0xd7, 0xb5, 0x12, 0x15, 0xcd, 0xc2, 0xdc, 0x86, 0xcf, 0x7f, 0xb5, 0x9a, 0xb4, 0xe3, - 0x3b, 0x86, 0xf4, 0xe3, 0x6f, 0x7b, 0x57, 0x62, 0x9e, 0x21, 0x67, 0x6a, 0xb5, 0x6c, 0x11, 0xf6, - 0x75, 0x59, 0xd9, 0x1e, 0x38, 0x9f, 0xe0, 0x9c, 0x23, 0x1d, 0xab, 0x4b, 0x68, 0x57, 0x40, 0xc8, - 0xed, 0xf5, 0xe8, 0x81, 0xf3, 0x49, 0xce, 0x29, 0x71, 0xac, 0x58, 0x16, 0xc2, 0x78, 0x16, 0x86, - 0xf0, 0x49, 0x7d, 0xdd, 0x30, 0xf9, 0x73, 0x6f, 0x0f, 0x74, 0x4f, 0x71, 0xba, 0x41, 0x0e, 0xa4, - 0x4f, 0xc1, 0x84, 0xeb, 0x34, 0x44, 0x37, 0xf0, 0x01, 0xa8, 0x07, 0x8a, 0xa7, 0x39, 0x45, 0x3f, - 0xb1, 0x27, 0xd0, 0x19, 0x48, 0x54, 0x0c, 0x9e, 0x86, 0xfd, 0xe1, 0xcf, 0x70, 0x78, 0x5c, 0x60, - 0x38, 0x45, 0xc3, 0x68, 0xb4, 0x6a, 0x24, 0x47, 0xfb, 0x53, 0x7c, 0x59, 0x50, 0x08, 0x0c, 0xa7, - 0xd8, 0x85, 0x5b, 0xbf, 0x22, 0x28, 0x4c, 0x97, 0x3f, 0xef, 0x26, 0x67, 0xbd, 0xb5, 0x2d, 0x43, - 0xef, 0x65, 0x10, 0xcf, 0x72, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x27, 0xc4, 0x7a, 0x5d, 0x88, 0xaf, - 0x72, 0x78, 0x54, 0x13, 0x2b, 0x80, 0xfb, 0x4c, 0x24, 0x19, 0xf2, 0x6e, 0xc5, 0x9f, 0xe2, 0x6b, - 0x9c, 0x22, 0xe9, 0x82, 0xf1, 0x69, 0x58, 0x9a, 0x69, 0xe1, 0xa3, 0x7a, 0x0f, 0x24, 0xcf, 0x8b, - 0x69, 0x70, 0x08, 0x77, 0xe5, 0xba, 0xa6, 0x97, 0x36, 0x7b, 0x63, 0x78, 0x41, 0xb8, 0x52, 0x60, - 0x08, 0x05, 0x66, 0x9e, 0xba, 0xda, 0xc4, 0x87, 0xeb, 0x5a, 0x4f, 0xcb, 0xf1, 0x75, 0xce, 0x91, - 0xb0, 0x41, 0xdc, 0x23, 0x2d, 0x7d, 0x37, 0x34, 0x2f, 0x0a, 0x8f, 0xb8, 0x60, 0x7c, 0xeb, 0xe1, - 0x93, 0x29, 0xe9, 0x24, 0x76, 0xc3, 0xf6, 0x0d, 0xb1, 0xf5, 0x18, 0x76, 0xc9, 0xcd, 0x88, 0x2b, - 0x6d, 0xe2, 0x23, 0x78, 0x2f, 0x34, 0xdf, 0x14, 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x3f, 0xec, 0xef, - 0x9a, 0xea, 0x7b, 0x20, 0xfb, 0x16, 0x27, 0xdb, 0xdb, 0x25, 0xdd, 0xf3, 0x94, 0xb0, 0x5b, 0xca, - 0x6f, 0x8b, 0x94, 0xa0, 0xb5, 0x71, 0xad, 0x90, 0x36, 0xd6, 0x54, 0x37, 0x76, 0xe7, 0xb5, 0xef, - 0x08, 0xaf, 0x31, 0xac, 0xc7, 0x6b, 0x6b, 0xb0, 0x97, 0x33, 0xee, 0x6e, 0x5d, 0x5f, 0x12, 0x89, - 0x95, 0xa1, 0x8b, 0xde, 0xd5, 0xfd, 0x5f, 0x18, 0xb5, 0xdd, 0x29, 0x3a, 0x30, 0x53, 0x21, 0x07, - 0x03, 0xfe, 0xcc, 0x2f, 0x73, 0x66, 0x91, 0xf1, 0xed, 0x16, 0xce, 0x5c, 0x52, 0x1b, 0x84, 0xfc, - 0x1c, 0xa4, 0x05, 0x79, 0x4b, 0xc7, 0x06, 0xdf, 0xa8, 0xe8, 0xb8, 0x8c, 0xe5, 0x1e, 0xa8, 0xbf, - 0xdb, 0xb6, 0x54, 0x45, 0x17, 0x9c, 0x30, 0x2f, 0x40, 0xca, 0xee, 0x37, 0x94, 0x6a, 0xbd, 0x61, - 0x60, 0x6b, 0xb9, 0x33, 0xe3, 0xf7, 0xc4, 0x4a, 0xd9, 0xb8, 0x05, 0x0a, 0xcb, 0xe6, 0x21, 0x49, - 0x2f, 0x7b, 0x0d, 0xc9, 0xef, 0x73, 0xa2, 0x01, 0x07, 0xc5, 0x13, 0x07, 0x76, 0x4a, 0xd8, 0xf3, - 0xf6, 0x92, 0xff, 0x7e, 0x20, 0x12, 0x07, 0x87, 0xb0, 0xe8, 0x1b, 0x6c, 0xab, 0xc4, 0x92, 0xdf, - 0xeb, 0xd7, 0xf4, 0xff, 0x5f, 0xe5, 0x7b, 0xd6, 0x5b, 0x88, 0xb3, 0x8b, 0xc4, 0x3d, 0xde, 0x72, - 0xe9, 0x4f, 0xf6, 0xf0, 0x55, 0xdb, 0x43, 0x9e, 0x6a, 0x99, 0x3d, 0x03, 0x03, 0x9e, 0x52, 0xe9, - 0x4f, 0xf5, 0x31, 0x4e, 0x95, 0x70, 0x57, 0xca, 0xec, 0x34, 0x84, 0x48, 0xd9, 0xf3, 0x87, 0x7f, - 0x9c, 0xc3, 0xa9, 0x79, 0xf6, 0xbf, 0x21, 0x2a, 0xca, 0x9d, 0x3f, 0xf4, 0x13, 0x1c, 0x6a, 0x43, - 0x08, 0x5c, 0x94, 0x3a, 0x7f, 0xf8, 0x27, 0x05, 0x5c, 0x40, 0x08, 0xbc, 0x77, 0x17, 0xfe, 0xe4, - 0x53, 0x21, 0x9e, 0xae, 0x84, 0xef, 0xc8, 0x3b, 0x1f, 0x56, 0xe3, 0xfc, 0xd1, 0x8f, 0xf0, 0x9b, - 0x0b, 0x44, 0xf6, 0x24, 0x84, 0x7b, 0x74, 0xf8, 0xa7, 0x39, 0x94, 0xd9, 0x63, 0x05, 0x89, 0xbb, - 0xea, 0x9a, 0x3f, 0xfc, 0x33, 0x1c, 0xee, 0x46, 0x91, 0xa1, 0xf3, 0xba, 0xe6, 0x4f, 0xf0, 0x59, - 0x31, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0x25, 0xcd, 0x1f, 0xfd, 0x39, 0xe1, 0x75, 0x01, 0xc1, 0xdd, - 0x14, 0xb3, 0xd3, 0x94, 0x3f, 0xfe, 0xf3, 0x1c, 0xef, 0x60, 0x88, 0x07, 0x5c, 0x69, 0xd2, 0x9f, - 0xe2, 0x51, 0xe1, 0x01, 0x17, 0x8a, 0x6c, 0xa3, 0xf6, 0xd2, 0xe7, 0xcf, 0xf4, 0x05, 0xb1, 0x8d, - 0xda, 0x2a, 0x1f, 0x59, 0x4d, 0x9a, 0x2d, 0xfc, 0x29, 0xbe, 0x28, 0x56, 0x93, 0xda, 0x93, 0x61, - 0xb4, 0xd7, 0x12, 0x7f, 0x8e, 0x2f, 0x89, 0x61, 0xb4, 0x95, 0x12, 0xac, 0x4c, 0x52, 0x67, 0x1d, - 0xf1, 0xe7, 0x7b, 0x8c, 0xf3, 0x0d, 0x75, 0x94, 0x91, 0xec, 0x7d, 0xb0, 0xb7, 0x7b, 0x0d, 0xf1, - 0x67, 0x7d, 0xfc, 0x6a, 0x5b, 0xd7, 0xef, 0x2e, 0x21, 0x58, 0xf2, 0x46, 0xba, 0xd5, 0x0f, 0x7f, - 0xda, 0x27, 0xae, 0x7a, 0x1f, 0xec, 0xdc, 0xe5, 0x03, 0x3b, 0x34, 0x70, 0x52, 0xb7, 0x3f, 0xd7, - 0x53, 0x9c, 0xcb, 0x05, 0x22, 0x5b, 0x83, 0x67, 0x6e, 0x7f, 0xfc, 0xd3, 0x62, 0x6b, 0x70, 0x04, - 0x82, 0xa3, 0x7a, 0xab, 0x56, 0x23, 0xc1, 0x21, 0xed, 0xfc, 0x93, 0x86, 0xf4, 0x1f, 0xdf, 0xe7, - 0x1b, 0x43, 0x00, 0x30, 0x87, 0x86, 0xb5, 0xfa, 0x3a, 0xfa, 0xc0, 0x07, 0xf9, 0xa7, 0xf7, 0x45, - 0x42, 0x20, 0xd6, 0xb8, 0x9f, 0x80, 0x3d, 0x34, 0xd2, 0x33, 0x6c, 0x1f, 0xec, 0x9f, 0xdf, 0xe7, - 0xaf, 0x59, 0x1d, 0x88, 0x43, 0xc0, 0x5e, 0xda, 0xee, 0x4c, 0xf0, 0xb6, 0x97, 0x80, 0x3e, 0x68, - 0x9e, 0x86, 0x7e, 0xf2, 0xcb, 0x0e, 0x4b, 0xad, 0xf8, 0xa1, 0xff, 0xc2, 0xd1, 0xc2, 0x9e, 0x38, - 0xac, 0x6e, 0x34, 0x35, 0xfc, 0x6a, 0xfa, 0x61, 0xff, 0xca, 0xb1, 0x36, 0x80, 0x80, 0x4b, 0xaa, - 0x69, 0xf5, 0x32, 0xef, 0xbf, 0x09, 0xb0, 0x00, 0x90, 0x41, 0x93, 0xef, 0x17, 0xb4, 0x2d, 0x3f, - 0xec, 0x3b, 0x62, 0xd0, 0xdc, 0x1e, 0x13, 0x60, 0x8c, 0x7c, 0x65, 0x3f, 0x3d, 0xf0, 0x01, 0xff, - 0x9d, 0x83, 0x1d, 0x44, 0xee, 0x60, 0xf7, 0xa3, 0x1d, 0x98, 0x37, 0xe6, 0x0d, 0x76, 0xa8, 0x03, - 0xef, 0x45, 0x61, 0x14, 0x6d, 0xb0, 0xbe, 0x4e, 0xd8, 0x7b, 0x71, 0x02, 0xcb, 0x06, 0x3f, 0x90, - 0x09, 0xe2, 0xd7, 0xd1, 0xdd, 0x1d, 0xe2, 0x64, 0xf6, 0x43, 0x78, 0xb5, 0xb5, 0xbe, 0xbe, 0x45, - 0x7e, 0xf1, 0x64, 0xb6, 0xd6, 0xf9, 0xeb, 0x69, 0xf2, 0x35, 0x73, 0x25, 0x08, 0x03, 0xd8, 0xa6, - 0x90, 0x37, 0x02, 0x66, 0x41, 0xd7, 0x0a, 0x1b, 0x52, 0x1a, 0x22, 0x74, 0x16, 0xc7, 0xa8, 0x59, - 0xe0, 0x9e, 0x3d, 0x72, 0x84, 0xfe, 0x62, 0xef, 0x98, 0xad, 0x99, 0xa4, 0x87, 0xfc, 0x7d, 0xb6, - 0x66, 0xd2, 0xd6, 0x4c, 0xb1, 0x9f, 0x42, 0xd9, 0x9a, 0x29, 0x5b, 0x73, 0x9c, 0x9e, 0x94, 0x05, - 0x6d, 0xcd, 0x71, 0x5b, 0x33, 0x4d, 0x0f, 0x3b, 0x07, 0x6c, 0xcd, 0xb4, 0xad, 0x39, 0x41, 0x8f, - 0x37, 0x43, 0xb6, 0xe6, 0x84, 0xad, 0x39, 0x49, 0x4f, 0x35, 0x87, 0x6c, 0xcd, 0x49, 0x5b, 0x73, - 0x8a, 0x9e, 0x64, 0x4a, 0xb6, 0xe6, 0x94, 0xad, 0x39, 0x4d, 0x5f, 0x42, 0xf7, 0xdb, 0x9a, 0xd3, - 0xd2, 0x28, 0xf4, 0xb3, 0x99, 0x1e, 0xa5, 0x2f, 0x6d, 0x06, 0x51, 0xd5, 0xcf, 0xa6, 0x7a, 0xd4, - 0xd1, 0x1d, 0xa3, 0x2f, 0x9a, 0x23, 0x8e, 0xee, 0x98, 0xa3, 0x9b, 0xa4, 0x3f, 0x9c, 0x4c, 0x39, - 0xba, 0x49, 0x47, 0x37, 0x95, 0x1e, 0x20, 0x3b, 0xd5, 0xd1, 0x4d, 0x39, 0xba, 0xe3, 0xe9, 0x24, - 0x59, 0x01, 0x47, 0x77, 0xdc, 0xd1, 0x4d, 0xa7, 0x07, 0xc9, 0x81, 0xad, 0xa3, 0x9b, 0x96, 0xee, - 0x80, 0x38, 0x2e, 0x95, 0xc2, 0xdf, 0x31, 0xd2, 0x17, 0xda, 0xf1, 0x49, 0x18, 0x27, 0x31, 0x41, - 0x97, 0x15, 0x6d, 0x01, 0x0d, 0x78, 0x82, 0xca, 0x25, 0x80, 0x3e, 0xb8, 0x2a, 0xf4, 0x07, 0x59, - 0x99, 0xd7, 0x02, 0x10, 0x5b, 0xbb, 0x64, 0xd0, 0xdf, 0xee, 0x98, 0xff, 0xe2, 0xc5, 0x15, 0x83, - 0x9e, 0x3a, 0x9e, 0xce, 0xd0, 0x09, 0x05, 0xf8, 0xa0, 0xa7, 0x9c, 0x09, 0x4d, 0x4d, 0xa7, 0x0f, - 0xd1, 0x09, 0xd9, 0xba, 0x69, 0x69, 0x02, 0x12, 0xae, 0x09, 0x4d, 0xd2, 0x77, 0xd4, 0xde, 0x19, - 0x05, 0xe4, 0xb8, 0x33, 0xa3, 0xc9, 0x5c, 0x18, 0x48, 0xd8, 0x93, 0x7f, 0xd6, 0x25, 0x23, 0xf3, - 0x68, 0x1f, 0xc4, 0xd9, 0x59, 0x17, 0x9d, 0x15, 0xb9, 0x15, 0x6b, 0x6a, 0xb7, 0xf8, 0x30, 0xd0, - 0x77, 0xac, 0x53, 0xdb, 0x92, 0x64, 0x00, 0x66, 0x4a, 0x22, 0x9c, 0x8d, 0x24, 0x77, 0xf4, 0x37, - 0x57, 0xc6, 0x6e, 0xdf, 0x76, 0x07, 0x11, 0xdf, 0x4d, 0xb0, 0x0c, 0x37, 0x5e, 0xac, 0xea, 0xd6, - 0xb1, 0xc9, 0x53, 0xc4, 0xc1, 0x25, 0x9b, 0x45, 0x2a, 0x42, 0x74, 0x16, 0x77, 0x34, 0x65, 0x24, - 0x43, 0x0f, 0xe5, 0x4e, 0xbe, 0x77, 0x65, 0x6c, 0xca, 0x87, 0x91, 0x27, 0x9f, 0xf1, 0xa5, 0x2d, - 0xc2, 0x7a, 0xe2, 0x38, 0x81, 0x23, 0x31, 0xcd, 0x4a, 0x94, 0x76, 0x52, 0x0c, 0x95, 0x1c, 0xb9, - 0xd3, 0x97, 0xf1, 0xc1, 0x5c, 0xea, 0x8d, 0x2b, 0x63, 0x89, 0xa5, 0x2d, 0x47, 0xee, 0x0c, 0x85, - 0x5c, 0xe5, 0xa2, 0x10, 0x61, 0x57, 0xb9, 0xb9, 0x57, 0x5f, 0x3f, 0xb0, 0xe7, 0x35, 0xfc, 0xfc, - 0x1a, 0x3f, 0xbf, 0x7b, 0xfd, 0x40, 0xe0, 0x1d, 0xfc, 0xbc, 0x8b, 0x9f, 0x87, 0xde, 0x38, 0x10, - 0x78, 0x01, 0x3f, 0x2f, 0xe1, 0xe7, 0x47, 0xf8, 0x79, 0x15, 0x3f, 0xaf, 0xbd, 0x81, 0x36, 0xf8, - 0xff, 0x2d, 0xfc, 0xff, 0x0e, 0xfe, 0x7f, 0x17, 0xff, 0x3f, 0xf4, 0xfb, 0x03, 0x7b, 0xfe, 0x19, - 0x00, 0x00, 0xff, 0xff, 0xc2, 0x89, 0xd3, 0xd0, 0xe7, 0x2e, 0x00, 0x00, + // 4041 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0x6a, 0x69, + 0x3b, 0x96, 0xed, 0x58, 0xb2, 0x75, 0xd9, 0x0b, 0xf7, 0x9f, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0xfe, + 0x25, 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x20, 0xf0, 0x23, 0x85, 0x5d, 0x10, 0x60, 0x00, + 0x70, 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0xa5, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, + 0x9b, 0x99, 0xd6, 0x69, 0xd2, 0x4b, 0xd2, 0x4b, 0x9a, 0xe9, 0x53, 0x5f, 0xd2, 0xfa, 0xa9, 0xe3, + 0xbc, 0x75, 0x3a, 0x1d, 0x8f, 0x57, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc4, + 0x2f, 0x9d, 0xef, 0x06, 0x80, 0x17, 0x2d, 0xa8, 0x4c, 0x9d, 0x3c, 0x49, 0x38, 0xe7, 0xfc, 0x7e, + 0x38, 0x38, 0xdf, 0xf9, 0xce, 0x39, 0xf8, 0x08, 0xf8, 0xde, 0x1a, 0xcc, 0xb7, 0x6c, 0xbb, 0x65, + 0xa2, 0xa5, 0x8e, 0x63, 0x7b, 0xf6, 0x41, 0xb7, 0xb9, 0xd4, 0x40, 0xae, 0xee, 0x18, 0x1d, 0xcf, + 0x76, 0x16, 0x89, 0x4c, 0x9a, 0xa2, 0x16, 0x8b, 0xdc, 0xa2, 0xb0, 0x0d, 0xd3, 0xd7, 0x0c, 0x13, + 0xad, 0xfb, 0x86, 0x75, 0xe4, 0x49, 0x97, 0x21, 0xd1, 0x34, 0x4c, 0x24, 0x0b, 0xf3, 0xf1, 0x85, + 0xcc, 0xf2, 0x63, 0x8b, 0x7d, 0xa0, 0xc5, 0x5e, 0xc4, 0x2e, 0x16, 0x2b, 0x04, 0x51, 0x78, 0x37, + 0x01, 0x33, 0x43, 0xb4, 0x92, 0x04, 0x09, 0x4b, 0x6b, 0x63, 0x46, 0x61, 0x21, 0xad, 0x90, 0xff, + 0x25, 0x19, 0x26, 0x3a, 0x9a, 0x7e, 0x5b, 0x6b, 0x21, 0x39, 0x46, 0xc4, 0xfc, 0x52, 0xca, 0x03, + 0x34, 0x50, 0x07, 0x59, 0x0d, 0x64, 0xe9, 0x47, 0x72, 0x7c, 0x3e, 0xbe, 0x90, 0x56, 0x42, 0x12, + 0xe9, 0x69, 0x98, 0xee, 0x74, 0x0f, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x30, 0x1f, 0x5f, 0x48, 0x2a, + 0x22, 0x55, 0xac, 0x07, 0xc6, 0x4f, 0xc0, 0xd4, 0x5d, 0xa4, 0xdd, 0x0e, 0x9b, 0x66, 0x88, 0x69, + 0x0e, 0x8b, 0x43, 0x86, 0x15, 0xc8, 0xb6, 0x91, 0xeb, 0x6a, 0x2d, 0xa4, 0x7a, 0x47, 0x1d, 0x24, + 0x27, 0xc8, 0xd3, 0xcf, 0x0f, 0x3c, 0x7d, 0xff, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xa8, 0x83, 0xa4, + 0x12, 0xa4, 0x91, 0xd5, 0x6d, 0x53, 0x86, 0xe4, 0x09, 0xf1, 0xab, 0x5a, 0xdd, 0x76, 0x3f, 0x4b, + 0x0a, 0xc3, 0x18, 0xc5, 0x84, 0x8b, 0x9c, 0x3b, 0x86, 0x8e, 0xe4, 0x71, 0x42, 0xf0, 0xc4, 0x00, + 0x41, 0x9d, 0xea, 0xfb, 0x39, 0x38, 0x4e, 0xaa, 0x40, 0x1a, 0xbd, 0xe4, 0x21, 0xcb, 0x35, 0x6c, + 0x4b, 0x9e, 0x20, 0x24, 0x8f, 0x0f, 0x59, 0x45, 0x64, 0x36, 0xfa, 0x29, 0x02, 0x9c, 0x74, 0x11, + 0x26, 0xec, 0x8e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xe6, 0x85, 0x85, 0xcc, 0xf2, 0xc7, 0x86, 0x26, + 0x42, 0x8d, 0xda, 0x28, 0xdc, 0x58, 0xda, 0x04, 0xd1, 0xb5, 0xbb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, + 0x20, 0xd5, 0xb0, 0x9a, 0xb6, 0x9c, 0x26, 0x04, 0xe7, 0x07, 0x1f, 0x84, 0x18, 0x56, 0xec, 0x06, + 0xda, 0xb4, 0x9a, 0xb6, 0x92, 0x73, 0x7b, 0xae, 0xa5, 0x33, 0x30, 0xee, 0x1e, 0x59, 0x9e, 0xf6, + 0x92, 0x9c, 0x25, 0x19, 0xc2, 0xae, 0x0a, 0xff, 0x93, 0x84, 0xa9, 0x51, 0x52, 0xec, 0x2a, 0x24, + 0x9b, 0xf8, 0x29, 0xe5, 0xd8, 0x69, 0x62, 0x40, 0x31, 0xbd, 0x41, 0x1c, 0xff, 0x31, 0x83, 0x58, + 0x82, 0x8c, 0x85, 0x5c, 0x0f, 0x35, 0x68, 0x46, 0xc4, 0x47, 0xcc, 0x29, 0xa0, 0xa0, 0xc1, 0x94, + 0x4a, 0xfc, 0x58, 0x29, 0x75, 0x13, 0xa6, 0x7c, 0x97, 0x54, 0x47, 0xb3, 0x5a, 0x3c, 0x37, 0x97, + 0xa2, 0x3c, 0x59, 0xac, 0x72, 0x9c, 0x82, 0x61, 0x4a, 0x0e, 0xf5, 0x5c, 0x4b, 0xeb, 0x00, 0xb6, + 0x85, 0xec, 0xa6, 0xda, 0x40, 0xba, 0x29, 0xa7, 0x4e, 0x88, 0x52, 0x0d, 0x9b, 0x0c, 0x44, 0xc9, + 0xa6, 0x52, 0xdd, 0x94, 0xae, 0x04, 0xa9, 0x36, 0x71, 0x42, 0xa6, 0x6c, 0xd3, 0x4d, 0x36, 0x90, + 0x6d, 0xfb, 0x90, 0x73, 0x10, 0xce, 0x7b, 0xd4, 0x60, 0x4f, 0x96, 0x26, 0x4e, 0x2c, 0x46, 0x3e, + 0x99, 0xc2, 0x60, 0xf4, 0xc1, 0x26, 0x9d, 0xf0, 0xa5, 0xf4, 0x28, 0xf8, 0x02, 0x95, 0xa4, 0x15, + 0x90, 0x2a, 0x94, 0xe5, 0xc2, 0x1d, 0xad, 0x8d, 0xe6, 0x2e, 0x43, 0xae, 0x37, 0x3c, 0xd2, 0x2c, + 0x24, 0x5d, 0x4f, 0x73, 0x3c, 0x92, 0x85, 0x49, 0x85, 0x5e, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x20, + 0x55, 0x2e, 0xa9, 0xe0, 0x7f, 0xe7, 0x2e, 0xc1, 0x64, 0xcf, 0xed, 0x47, 0x05, 0x16, 0xbe, 0x38, + 0x0e, 0xb3, 0xc3, 0x72, 0x6e, 0x68, 0xfa, 0x9f, 0x81, 0x71, 0xab, 0xdb, 0x3e, 0x40, 0x8e, 0x1c, + 0x27, 0x0c, 0xec, 0x4a, 0x2a, 0x41, 0xd2, 0xd4, 0x0e, 0x90, 0x29, 0x27, 0xe6, 0x85, 0x85, 0xdc, + 0xf2, 0xd3, 0x23, 0x65, 0xf5, 0xe2, 0x16, 0x86, 0x28, 0x14, 0x29, 0x7d, 0x0a, 0x12, 0xac, 0xc4, + 0x61, 0x86, 0xa7, 0x46, 0x63, 0xc0, 0xb9, 0xa8, 0x10, 0x9c, 0xf4, 0x30, 0xa4, 0xf1, 0x5f, 0x1a, + 0xdb, 0x71, 0xe2, 0x73, 0x0a, 0x0b, 0x70, 0x5c, 0xa5, 0x39, 0x48, 0x91, 0x34, 0x6b, 0x20, 0xde, + 0x1a, 0xfc, 0x6b, 0xbc, 0x30, 0x0d, 0xd4, 0xd4, 0xba, 0xa6, 0xa7, 0xde, 0xd1, 0xcc, 0x2e, 0x22, + 0x09, 0x93, 0x56, 0xb2, 0x4c, 0xf8, 0x19, 0x2c, 0x93, 0xce, 0x43, 0x86, 0x66, 0xa5, 0x61, 0x35, + 0xd0, 0x4b, 0xa4, 0xfa, 0x24, 0x15, 0x9a, 0xa8, 0x9b, 0x58, 0x82, 0x6f, 0x7f, 0xcb, 0xb5, 0x2d, + 0xbe, 0xb4, 0xe4, 0x16, 0x58, 0x40, 0x6e, 0x7f, 0xa9, 0xbf, 0xf0, 0x3d, 0x32, 0xfc, 0xf1, 0xfa, + 0x73, 0xb1, 0xf0, 0xad, 0x18, 0x24, 0xc8, 0x7e, 0x9b, 0x82, 0xcc, 0xde, 0x8b, 0xbb, 0x55, 0x75, + 0xbd, 0xb6, 0x5f, 0xde, 0xaa, 0x8a, 0x82, 0x94, 0x03, 0x20, 0x82, 0x6b, 0x5b, 0xb5, 0xd2, 0x9e, + 0x18, 0xf3, 0xaf, 0x37, 0x77, 0xf6, 0x2e, 0xae, 0x8a, 0x71, 0x1f, 0xb0, 0x4f, 0x05, 0x89, 0xb0, + 0xc1, 0xca, 0xb2, 0x98, 0x94, 0x44, 0xc8, 0x52, 0x82, 0xcd, 0x9b, 0xd5, 0xf5, 0x8b, 0xab, 0xe2, + 0x78, 0xaf, 0x64, 0x65, 0x59, 0x9c, 0x90, 0x26, 0x21, 0x4d, 0x24, 0xe5, 0x5a, 0x6d, 0x4b, 0x4c, + 0xf9, 0x9c, 0xf5, 0x3d, 0x65, 0x73, 0x67, 0x43, 0x4c, 0xfb, 0x9c, 0x1b, 0x4a, 0x6d, 0x7f, 0x57, + 0x04, 0x9f, 0x61, 0xbb, 0x5a, 0xaf, 0x97, 0x36, 0xaa, 0x62, 0xc6, 0xb7, 0x28, 0xbf, 0xb8, 0x57, + 0xad, 0x8b, 0xd9, 0x1e, 0xb7, 0x56, 0x96, 0xc5, 0x49, 0xff, 0x16, 0xd5, 0x9d, 0xfd, 0x6d, 0x31, + 0x27, 0x4d, 0xc3, 0x24, 0xbd, 0x05, 0x77, 0x62, 0xaa, 0x4f, 0x74, 0x71, 0x55, 0x14, 0x03, 0x47, + 0x28, 0xcb, 0x74, 0x8f, 0xe0, 0xe2, 0xaa, 0x28, 0x15, 0x2a, 0x90, 0x24, 0xd9, 0x25, 0x49, 0x90, + 0xdb, 0x2a, 0x95, 0xab, 0x5b, 0x6a, 0x6d, 0x77, 0x6f, 0xb3, 0xb6, 0x53, 0xda, 0x12, 0x85, 0x40, + 0xa6, 0x54, 0x3f, 0xbd, 0xbf, 0xa9, 0x54, 0xd7, 0xc5, 0x58, 0x58, 0xb6, 0x5b, 0x2d, 0xed, 0x55, + 0xd7, 0xc5, 0x78, 0x41, 0x87, 0xd9, 0x61, 0x75, 0x66, 0xe8, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x84, + 0x25, 0x26, 0x5c, 0x03, 0x4b, 0xfc, 0x15, 0x01, 0x66, 0x86, 0xd4, 0xda, 0xa1, 0x37, 0x79, 0x1e, + 0x92, 0x34, 0x45, 0x69, 0xf7, 0x79, 0x72, 0x68, 0xd1, 0x26, 0x09, 0x3b, 0xd0, 0x81, 0x08, 0x2e, + 0xdc, 0x81, 0xe3, 0x27, 0x74, 0x60, 0x4c, 0x31, 0xe0, 0xe4, 0x2b, 0x02, 0xc8, 0x27, 0x71, 0x47, + 0x14, 0x8a, 0x58, 0x4f, 0xa1, 0xb8, 0xda, 0xef, 0xc0, 0x85, 0x93, 0x9f, 0x61, 0xc0, 0x8b, 0x37, + 0x04, 0x38, 0x33, 0x7c, 0x50, 0x19, 0xea, 0xc3, 0xa7, 0x60, 0xbc, 0x8d, 0xbc, 0x43, 0x9b, 0x37, + 0xeb, 0x8f, 0x0f, 0x69, 0x01, 0x58, 0xdd, 0x1f, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x49, 0xd3, + 0x06, 0xf5, 0x66, 0xc0, 0xd3, 0xcf, 0xc7, 0xe0, 0xa1, 0xa1, 0xe4, 0x43, 0x1d, 0x7d, 0x04, 0xc0, + 0xb0, 0x3a, 0x5d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x5d, + 0xcf, 0xd7, 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x0e, 0x1c, 0x4d, 0x10, 0x47, 0xf3, 0x27, + 0x3c, 0xe9, 0x40, 0xaf, 0x7b, 0x16, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, + 0x6d, 0x58, 0x2d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x53, 0x33, 0x5d, 0xa4, 0x4c, 0x51, 0x75, 0x9d, + 0x6b, 0x31, 0x82, 0x74, 0x19, 0x27, 0x84, 0x18, 0xef, 0x41, 0x50, 0xb5, 0x8f, 0x28, 0x7c, 0x7d, + 0x02, 0x32, 0xa1, 0xb1, 0x4e, 0xba, 0x00, 0xd9, 0x5b, 0xda, 0x1d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, + 0x44, 0x06, 0xcb, 0x76, 0xd9, 0xb8, 0xfe, 0x2c, 0xcc, 0x12, 0x13, 0xbb, 0xeb, 0x21, 0x47, 0xd5, + 0x4d, 0xcd, 0x75, 0x49, 0xd0, 0x52, 0xc4, 0x54, 0xc2, 0xba, 0x1a, 0x56, 0x55, 0xb8, 0x46, 0x5a, + 0x83, 0x19, 0x82, 0x68, 0x77, 0x4d, 0xcf, 0xe8, 0x98, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x29, 0xc4, + 0xbe, 0x67, 0xd3, 0xd8, 0x62, 0x9b, 0x19, 0x60, 0x8f, 0x5c, 0x69, 0x1d, 0x1e, 0x21, 0xb0, 0x16, + 0xb2, 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0xeb, 0x6a, 0xa6, 0xab, 0x6a, 0x56, 0x43, 0x3d, 0xd4, + 0xdc, 0x43, 0x79, 0x16, 0x13, 0x94, 0x63, 0xb2, 0xa0, 0x9c, 0xc3, 0x86, 0x1b, 0xcc, 0xae, 0x4a, + 0xcc, 0x4a, 0x56, 0xe3, 0xba, 0xe6, 0x1e, 0x4a, 0x45, 0x38, 0x43, 0x58, 0x5c, 0xcf, 0x31, 0xac, + 0x96, 0xaa, 0x1f, 0x22, 0xfd, 0xb6, 0xda, 0xf5, 0x9a, 0x97, 0xe5, 0x87, 0xc3, 0xf7, 0x27, 0x1e, + 0xd6, 0x89, 0x4d, 0x05, 0x9b, 0xec, 0x7b, 0xcd, 0xcb, 0x52, 0x1d, 0xb2, 0x78, 0x31, 0xda, 0xc6, + 0xcb, 0x48, 0x6d, 0xda, 0x0e, 0xe9, 0x2c, 0xb9, 0x21, 0x3b, 0x3b, 0x14, 0xc1, 0xc5, 0x1a, 0x03, + 0x6c, 0xdb, 0x0d, 0x54, 0x4c, 0xd6, 0x77, 0xab, 0xd5, 0x75, 0x25, 0xc3, 0x59, 0xae, 0xd9, 0x0e, + 0x4e, 0xa8, 0x96, 0xed, 0x07, 0x38, 0x43, 0x13, 0xaa, 0x65, 0xf3, 0xf0, 0xae, 0xc1, 0x8c, 0xae, + 0xd3, 0x67, 0x36, 0x74, 0x95, 0x8d, 0xf8, 0xae, 0x2c, 0xf6, 0x04, 0x4b, 0xd7, 0x37, 0xa8, 0x01, + 0xcb, 0x71, 0x57, 0xba, 0x02, 0x0f, 0x05, 0xc1, 0x0a, 0x03, 0xa7, 0x07, 0x9e, 0xb2, 0x1f, 0xba, + 0x06, 0x33, 0x9d, 0xa3, 0x41, 0xa0, 0xd4, 0x73, 0xc7, 0xce, 0x51, 0x3f, 0xec, 0x71, 0xf2, 0xda, + 0xe6, 0x20, 0x5d, 0xf3, 0x50, 0x43, 0x3e, 0x1b, 0xb6, 0x0e, 0x29, 0xa4, 0x25, 0x10, 0x75, 0x5d, + 0x45, 0x96, 0x76, 0x60, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf2, 0xf9, 0xb0, 0x71, 0x4e, 0xd7, + 0xab, 0x44, 0x5b, 0x22, 0x4a, 0xe9, 0x29, 0x98, 0xb6, 0x0f, 0x6e, 0xe9, 0x34, 0xb3, 0xd4, 0x8e, + 0x83, 0x9a, 0xc6, 0x4b, 0xf2, 0x63, 0x24, 0x4c, 0x53, 0x58, 0x41, 0xf2, 0x6a, 0x97, 0x88, 0xa5, + 0x27, 0x41, 0xd4, 0xdd, 0x43, 0xcd, 0xe9, 0x90, 0xd6, 0xee, 0x76, 0x34, 0x1d, 0xc9, 0x8f, 0x53, + 0x53, 0x2a, 0xdf, 0xe1, 0x62, 0x9c, 0xd9, 0xee, 0x5d, 0xa3, 0xe9, 0x71, 0xc6, 0x27, 0x68, 0x66, + 0x13, 0x19, 0x63, 0xbb, 0x09, 0xb3, 0x5d, 0xcb, 0xb0, 0x3c, 0xe4, 0x74, 0x1c, 0x84, 0x87, 0x78, + 0xba, 0x13, 0xe5, 0x7f, 0x9e, 0x38, 0x61, 0x0c, 0xdf, 0x0f, 0x5b, 0xd3, 0x04, 0x50, 0x66, 0xba, + 0x83, 0xc2, 0x42, 0x11, 0xb2, 0xe1, 0xbc, 0x90, 0xd2, 0x40, 0x33, 0x43, 0x14, 0x70, 0x8f, 0xad, + 0xd4, 0xd6, 0x71, 0x77, 0xfc, 0x6c, 0x55, 0x8c, 0xe1, 0x2e, 0xbd, 0xb5, 0xb9, 0x57, 0x55, 0x95, + 0xfd, 0x9d, 0xbd, 0xcd, 0xed, 0xaa, 0x18, 0x7f, 0x2a, 0x9d, 0xfa, 0xfe, 0x84, 0x78, 0xef, 0xde, + 0xbd, 0x7b, 0xb1, 0xc2, 0x77, 0x62, 0x90, 0xeb, 0x9d, 0x8c, 0xa5, 0xff, 0x07, 0x67, 0xf9, 0x6b, + 0xac, 0x8b, 0x3c, 0xf5, 0xae, 0xe1, 0x90, 0x54, 0x6d, 0x6b, 0x74, 0xb6, 0xf4, 0xa3, 0x3c, 0xcb, + 0xac, 0xea, 0xc8, 0x7b, 0xc1, 0x70, 0x70, 0x22, 0xb6, 0x35, 0x4f, 0xda, 0x82, 0xf3, 0x96, 0xad, + 0xba, 0x9e, 0x66, 0x35, 0x34, 0xa7, 0xa1, 0x06, 0x07, 0x08, 0xaa, 0xa6, 0xeb, 0xc8, 0x75, 0x6d, + 0xda, 0x22, 0x7c, 0x96, 0x8f, 0x59, 0x76, 0x9d, 0x19, 0x07, 0xb5, 0xb3, 0xc4, 0x4c, 0xfb, 0x32, + 0x22, 0x7e, 0x52, 0x46, 0x3c, 0x0c, 0xe9, 0xb6, 0xd6, 0x51, 0x91, 0xe5, 0x39, 0x47, 0x64, 0x9e, + 0x4b, 0x29, 0xa9, 0xb6, 0xd6, 0xa9, 0xe2, 0xeb, 0x8f, 0x6e, 0x0d, 0xc2, 0x71, 0xfc, 0xa7, 0x38, + 0x64, 0xc3, 0x33, 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x1f, 0x7d, 0xe0, 0x04, + 0xb8, 0x58, 0xc1, 0x85, 0xbd, 0x38, 0x4e, 0x27, 0x2d, 0x85, 0x22, 0x71, 0x53, 0xc5, 0x7b, 0x1a, + 0xd1, 0xf9, 0x3d, 0xa5, 0xb0, 0x2b, 0x69, 0x03, 0xc6, 0x6f, 0xb9, 0x84, 0x7b, 0x9c, 0x70, 0x3f, + 0xf6, 0x60, 0xee, 0x1b, 0x75, 0x42, 0x9e, 0xbe, 0x51, 0x57, 0x77, 0x6a, 0xca, 0x76, 0x69, 0x4b, + 0x61, 0x70, 0xe9, 0x1c, 0x24, 0x4c, 0xed, 0xe5, 0xa3, 0xde, 0x16, 0x40, 0x44, 0xa3, 0x06, 0xfe, + 0x1c, 0x24, 0xee, 0x22, 0xed, 0x76, 0x6f, 0xe1, 0x25, 0xa2, 0x8f, 0x30, 0xf5, 0x97, 0x20, 0x49, + 0xe2, 0x25, 0x01, 0xb0, 0x88, 0x89, 0x63, 0x52, 0x0a, 0x12, 0x95, 0x9a, 0x82, 0xd3, 0x5f, 0x84, + 0x2c, 0x95, 0xaa, 0xbb, 0x9b, 0xd5, 0x4a, 0x55, 0x8c, 0x15, 0xd6, 0x60, 0x9c, 0x06, 0x01, 0x6f, + 0x0d, 0x3f, 0x0c, 0xe2, 0x18, 0xbb, 0x64, 0x1c, 0x02, 0xd7, 0xee, 0x6f, 0x97, 0xab, 0x8a, 0x18, + 0x0b, 0x2f, 0xaf, 0x0b, 0xd9, 0xf0, 0x38, 0xf7, 0x93, 0xc9, 0xa9, 0xbf, 0x16, 0x20, 0x13, 0x1a, + 0xcf, 0xf0, 0x60, 0xa0, 0x99, 0xa6, 0x7d, 0x57, 0xd5, 0x4c, 0x43, 0x73, 0x59, 0x52, 0x00, 0x11, + 0x95, 0xb0, 0x64, 0xd4, 0x45, 0xfb, 0x89, 0x38, 0xff, 0xba, 0x00, 0x62, 0xff, 0x68, 0xd7, 0xe7, + 0xa0, 0xf0, 0x53, 0x75, 0xf0, 0x35, 0x01, 0x72, 0xbd, 0xf3, 0x5c, 0x9f, 0x7b, 0x17, 0x7e, 0xaa, + 0xee, 0xbd, 0x13, 0x83, 0xc9, 0x9e, 0x29, 0x6e, 0x54, 0xef, 0x3e, 0x07, 0xd3, 0x46, 0x03, 0xb5, + 0x3b, 0xb6, 0x87, 0x2c, 0xfd, 0x48, 0x35, 0xd1, 0x1d, 0x64, 0xca, 0x05, 0x52, 0x28, 0x96, 0x1e, + 0x3c, 0x27, 0x2e, 0x6e, 0x06, 0xb8, 0x2d, 0x0c, 0x2b, 0xce, 0x6c, 0xae, 0x57, 0xb7, 0x77, 0x6b, + 0x7b, 0xd5, 0x9d, 0xca, 0x8b, 0xea, 0xfe, 0xce, 0xff, 0xdf, 0xa9, 0xbd, 0xb0, 0xa3, 0x88, 0x46, + 0x9f, 0xd9, 0x47, 0xb8, 0xd5, 0x77, 0x41, 0xec, 0x77, 0x4a, 0x3a, 0x0b, 0xc3, 0xdc, 0x12, 0xc7, + 0xa4, 0x19, 0x98, 0xda, 0xa9, 0xa9, 0xf5, 0xcd, 0xf5, 0xaa, 0x5a, 0xbd, 0x76, 0xad, 0x5a, 0xd9, + 0xab, 0xd3, 0x17, 0x67, 0xdf, 0x7a, 0xaf, 0x77, 0x53, 0xbf, 0x1a, 0x87, 0x99, 0x21, 0x9e, 0x48, + 0x25, 0x36, 0xb3, 0xd3, 0xd7, 0x88, 0x67, 0x46, 0xf1, 0x7e, 0x11, 0x4f, 0x05, 0xbb, 0x9a, 0xe3, + 0xb1, 0x11, 0xff, 0x49, 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x69, 0x20, 0x87, 0x9d, 0x33, 0xd0, 0x41, + 0x7e, 0x2a, 0x90, 0xd3, 0xa3, 0x86, 0x4f, 0x80, 0xd4, 0xb1, 0x5d, 0xc3, 0x33, 0xee, 0x20, 0xd5, + 0xb0, 0xf8, 0xa1, 0x04, 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x9b, 0x96, 0xe7, 0x5b, 0x5b, 0xa8, + 0xa5, 0xf5, 0x59, 0xe3, 0x02, 0x1e, 0x57, 0x44, 0xae, 0xf1, 0xad, 0x2f, 0x40, 0xb6, 0x61, 0x77, + 0xf1, 0x98, 0x44, 0xed, 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x26, 0x6c, 0x8e, 0x0d, 0x4e, + 0x43, 0xb2, 0x4a, 0x86, 0xca, 0xa8, 0xc9, 0x13, 0x30, 0xa5, 0xb5, 0x5a, 0x0e, 0x26, 0xe7, 0x44, + 0x74, 0x32, 0xcf, 0xf9, 0x62, 0x62, 0x38, 0x77, 0x03, 0x52, 0x3c, 0x0e, 0xb8, 0x25, 0xe3, 0x48, + 0xa8, 0x1d, 0x7a, 0x26, 0x15, 0x5b, 0x48, 0x2b, 0x29, 0x8b, 0x2b, 0x2f, 0x40, 0xd6, 0x70, 0xd5, + 0xe0, 0x70, 0x34, 0x36, 0x1f, 0x5b, 0x48, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x0a, 0x6f, 0xc4, + 0x20, 0xd7, 0x7b, 0xb8, 0x2b, 0xad, 0x43, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, + 0x21, 0xe2, 0x3c, 0x78, 0x71, 0x8b, 0xd9, 0x2b, 0x3e, 0x72, 0xee, 0xef, 0x05, 0x48, 0x71, 0xb1, + 0x74, 0x06, 0x12, 0x1d, 0xcd, 0x3b, 0x24, 0x74, 0xc9, 0x72, 0x4c, 0x14, 0x14, 0x72, 0x8d, 0xe5, + 0x6e, 0x47, 0xb3, 0x48, 0x0a, 0x30, 0x39, 0xbe, 0xc6, 0xeb, 0x6a, 0x22, 0xad, 0x41, 0xc6, 0x7e, + 0xbb, 0xdd, 0x46, 0x96, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x0a, 0x13, 0x4b, 0x4f, 0xc3, 0xb4, 0xe7, + 0x68, 0x86, 0xd9, 0x63, 0x9b, 0x20, 0xb6, 0x22, 0x57, 0xf8, 0xc6, 0x45, 0x38, 0xc7, 0x79, 0x1b, + 0xc8, 0xd3, 0xf4, 0x43, 0xd4, 0x08, 0x40, 0xe3, 0xe4, 0xe4, 0xf0, 0x2c, 0x33, 0x58, 0x67, 0x7a, + 0x8e, 0x2d, 0x7c, 0x57, 0x80, 0x69, 0xfe, 0xa2, 0xd2, 0xf0, 0x83, 0xb5, 0x0d, 0xa0, 0x59, 0x96, + 0xed, 0x85, 0xc3, 0x35, 0x98, 0xca, 0x03, 0xb8, 0xc5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x73, 0x6d, + 0x80, 0x40, 0x73, 0x62, 0xd8, 0xce, 0x43, 0x86, 0x9d, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, 0x2d, + 0x50, 0x11, 0x7e, 0xa3, 0x91, 0x66, 0x21, 0x79, 0x80, 0x5a, 0x86, 0xc5, 0xce, 0x13, 0xe9, 0x05, + 0x3f, 0xa5, 0x4c, 0xf8, 0xa7, 0x94, 0xe5, 0x9b, 0x30, 0xa3, 0xdb, 0xed, 0x7e, 0x77, 0xcb, 0x62, + 0xdf, 0xeb, 0xb5, 0x7b, 0x5d, 0xf8, 0x2c, 0x04, 0x23, 0xe6, 0x57, 0x62, 0xf1, 0x8d, 0xdd, 0xf2, + 0xd7, 0x62, 0x73, 0x1b, 0x14, 0xb7, 0xcb, 0x1f, 0x53, 0x41, 0x4d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, + 0xc1, 0xc7, 0xe1, 0x99, 0x96, 0xe1, 0x1d, 0x76, 0x0f, 0x16, 0x75, 0xbb, 0xbd, 0xd4, 0xb2, 0x5b, + 0x76, 0xf0, 0x73, 0x17, 0xbe, 0x22, 0x17, 0xe4, 0x3f, 0xf6, 0x93, 0x57, 0xda, 0x97, 0xce, 0x45, + 0xfe, 0x3e, 0x56, 0xdc, 0x81, 0x19, 0x66, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf0, + 0xdc, 0x45, 0xfe, 0xe6, 0xbb, 0xa4, 0x57, 0x2b, 0xd3, 0x0c, 0x8a, 0x75, 0xf4, 0x05, 0xa2, 0xa8, + 0xc0, 0x43, 0x3d, 0x7c, 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x3b, 0x8c, 0x71, 0x26, 0xc4, 0x58, + 0x67, 0xd0, 0x62, 0x05, 0x26, 0x4f, 0xc3, 0xf5, 0xb7, 0x8c, 0x2b, 0x8b, 0xc2, 0x24, 0x1b, 0x30, + 0x45, 0x48, 0xf4, 0xae, 0xeb, 0xd9, 0x6d, 0x52, 0xf4, 0x1e, 0x4c, 0xf3, 0x77, 0xef, 0xd2, 0x8d, + 0x92, 0xc3, 0xb0, 0x8a, 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x40, 0xba, 0x19, 0xc1, 0xf0, + 0x26, 0x73, 0xc4, 0xb7, 0x2f, 0x7e, 0x06, 0x66, 0xf1, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, + 0x65, 0x92, 0xbf, 0xfb, 0x0a, 0xdd, 0x8b, 0x33, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0xb6, 0x90, + 0xe7, 0x21, 0xc7, 0x55, 0x35, 0x73, 0x98, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x4b, 0xef, 0xf5, 0xae, + 0xe2, 0x06, 0x45, 0x96, 0x4c, 0xb3, 0xb8, 0x0f, 0x67, 0x87, 0x64, 0xc5, 0x08, 0x9c, 0xaf, 0x32, + 0xce, 0xd9, 0x81, 0xcc, 0xc0, 0xb4, 0xbb, 0xc0, 0xe5, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0xdb, 0x8c, + 0x53, 0x62, 0x58, 0xbe, 0xa4, 0x98, 0xf1, 0x06, 0x4c, 0xdf, 0x41, 0xce, 0x81, 0xed, 0xb2, 0xa3, + 0x91, 0x11, 0xe8, 0x5e, 0x63, 0x74, 0x53, 0x0c, 0x48, 0xce, 0x4a, 0x30, 0xd7, 0x15, 0x48, 0x35, + 0x35, 0x1d, 0x8d, 0x40, 0xf1, 0x65, 0x46, 0x31, 0x81, 0xed, 0x31, 0xb4, 0x04, 0xd9, 0x96, 0xcd, + 0xda, 0x52, 0x34, 0xfc, 0x75, 0x06, 0xcf, 0x70, 0x0c, 0xa3, 0xe8, 0xd8, 0x9d, 0xae, 0x89, 0x7b, + 0x56, 0x34, 0xc5, 0xef, 0x70, 0x0a, 0x8e, 0x61, 0x14, 0xa7, 0x08, 0xeb, 0xef, 0x72, 0x0a, 0x37, + 0x14, 0xcf, 0xe7, 0x21, 0x63, 0x5b, 0xe6, 0x91, 0x6d, 0x8d, 0xe2, 0xc4, 0xef, 0x31, 0x06, 0x60, + 0x10, 0x4c, 0x70, 0x15, 0xd2, 0xa3, 0x2e, 0xc4, 0xef, 0xbf, 0xc7, 0xb7, 0x07, 0x5f, 0x81, 0x0d, + 0x98, 0xe2, 0x05, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x80, 0x51, 0xe4, 0x42, 0x30, 0xf6, 0x18, + 0x1e, 0x72, 0xbd, 0x16, 0x1a, 0x85, 0xe4, 0x0d, 0xfe, 0x18, 0x0c, 0xc2, 0x42, 0x79, 0x80, 0x2c, + 0xfd, 0x70, 0x34, 0x86, 0xaf, 0xf2, 0x50, 0x72, 0x0c, 0xa6, 0xa8, 0xc0, 0x64, 0x5b, 0x73, 0xdc, + 0x43, 0xcd, 0x1c, 0x69, 0x39, 0xfe, 0x90, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xd7, 0x3a, 0x0d, + 0xcd, 0xd7, 0x78, 0x44, 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x1c, 0x40, 0x9d, 0x86, 0xed, 0xeb, + 0x7c, 0xeb, 0x51, 0xec, 0x76, 0x98, 0xf1, 0x2a, 0xa4, 0x5d, 0xe3, 0xe5, 0x91, 0x68, 0xfe, 0x88, + 0xaf, 0x34, 0x01, 0x60, 0xf0, 0x8b, 0x70, 0x6e, 0x68, 0x9b, 0x18, 0x81, 0xec, 0x8f, 0x19, 0xd9, + 0x99, 0x21, 0xad, 0x82, 0x95, 0x84, 0xd3, 0x52, 0xfe, 0x09, 0x2f, 0x09, 0xa8, 0x8f, 0x6b, 0x17, + 0xbf, 0x28, 0xb8, 0x5a, 0xf3, 0x74, 0x51, 0xfb, 0x53, 0x1e, 0x35, 0x8a, 0xed, 0x89, 0xda, 0x1e, + 0x9c, 0x61, 0x8c, 0xa7, 0x5b, 0xd7, 0x6f, 0xf0, 0xc2, 0x4a, 0xd1, 0xfb, 0xbd, 0xab, 0xfb, 0x33, + 0x30, 0xe7, 0x87, 0x93, 0x4f, 0xa4, 0xae, 0xda, 0xd6, 0x3a, 0x23, 0x30, 0x7f, 0x93, 0x31, 0xf3, + 0x8a, 0xef, 0x8f, 0xb4, 0xee, 0xb6, 0xd6, 0xc1, 0xe4, 0x37, 0x41, 0xe6, 0xe4, 0x5d, 0xcb, 0x41, + 0xba, 0xdd, 0xb2, 0x8c, 0x97, 0x51, 0x63, 0x04, 0xea, 0x3f, 0xeb, 0x5b, 0xaa, 0xfd, 0x10, 0x1c, + 0x33, 0x6f, 0x82, 0xe8, 0xcf, 0x2a, 0xaa, 0xd1, 0xee, 0xd8, 0x8e, 0x17, 0xc1, 0xf8, 0xe7, 0x7c, + 0xa5, 0x7c, 0xdc, 0x26, 0x81, 0x15, 0xab, 0x90, 0x23, 0x97, 0xa3, 0xa6, 0xe4, 0x5f, 0x30, 0xa2, + 0xc9, 0x00, 0xc5, 0x0a, 0x87, 0x6e, 0xb7, 0x3b, 0x9a, 0x33, 0x4a, 0xfd, 0xfb, 0x4b, 0x5e, 0x38, + 0x18, 0x84, 0x15, 0x0e, 0xef, 0xa8, 0x83, 0x70, 0xb7, 0x1f, 0x81, 0xe1, 0x5b, 0xbc, 0x70, 0x70, + 0x0c, 0xa3, 0xe0, 0x03, 0xc3, 0x08, 0x14, 0x7f, 0xc5, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x3a, 0x68, + 0xb4, 0x0e, 0x6a, 0x19, 0xae, 0xe7, 0xd0, 0x39, 0xf8, 0xc1, 0x54, 0xdf, 0x7e, 0xaf, 0x77, 0x08, + 0x53, 0x42, 0xd0, 0xe2, 0x0d, 0x98, 0xea, 0x1b, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x9f, 0xfd, + 0x80, 0x15, 0xa3, 0xde, 0x09, 0xa3, 0xb8, 0x85, 0xd7, 0xbd, 0x77, 0x0e, 0x88, 0x26, 0x7b, 0xe5, + 0x03, 0x7f, 0xe9, 0x7b, 0xc6, 0x80, 0xe2, 0x35, 0x98, 0xec, 0x99, 0x01, 0xa2, 0xa9, 0x7e, 0x8e, + 0x51, 0x65, 0xc3, 0x23, 0x40, 0x71, 0x0d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x9e, 0xc1, 0x89, + 0x79, 0xf1, 0x93, 0x90, 0xe2, 0x7d, 0x3c, 0x1a, 0xfa, 0x0b, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, + 0xf0, 0x68, 0xf8, 0x2f, 0x72, 0x38, 0x87, 0x60, 0xf8, 0xe8, 0x21, 0xfc, 0x9b, 0x5f, 0x4a, 0xb0, + 0x3a, 0xcc, 0x63, 0x77, 0x15, 0x26, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x9e, 0xdd, 0x9c, 0x23, 0x8a, + 0x97, 0x20, 0x39, 0x62, 0xc0, 0x7f, 0x99, 0x41, 0xa9, 0x7d, 0xb1, 0x02, 0x99, 0x50, 0xc3, 0x8e, + 0x86, 0xff, 0x0a, 0x83, 0x87, 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x95, 0xbb, 0xce, + 0x10, 0x38, 0x6c, 0xbc, 0x57, 0x47, 0xa3, 0x7f, 0x8d, 0x47, 0x9d, 0x43, 0x8a, 0xcf, 0x43, 0xda, + 0xaf, 0xbf, 0xd1, 0xf8, 0x5f, 0x67, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0x5f, + 0xe0, 0x11, 0x08, 0xa1, 0xf0, 0x36, 0xea, 0xef, 0xe9, 0xd1, 0x4c, 0xbf, 0xc1, 0xb7, 0x51, 0x5f, + 0x4b, 0xc7, 0xab, 0x49, 0xca, 0x60, 0x34, 0xc5, 0x6f, 0xf2, 0xd5, 0x24, 0xf6, 0xd8, 0x8d, 0xfe, + 0x26, 0x19, 0xcd, 0xf1, 0x5b, 0xdc, 0x8d, 0xbe, 0x1e, 0x59, 0xdc, 0x05, 0x69, 0xb0, 0x41, 0x46, + 0xf3, 0x7d, 0x91, 0xf1, 0x4d, 0x0f, 0xf4, 0xc7, 0xe2, 0x0b, 0x70, 0x66, 0x78, 0x73, 0x8c, 0x66, + 0xfd, 0xd2, 0x07, 0x7d, 0xaf, 0x33, 0xe1, 0xde, 0x58, 0xdc, 0x0b, 0xaa, 0x6c, 0xb8, 0x31, 0x46, + 0xd3, 0xbe, 0xfa, 0x41, 0x6f, 0xa1, 0x0d, 0xf7, 0xc5, 0x62, 0x09, 0x20, 0xe8, 0x49, 0xd1, 0x5c, + 0xaf, 0x31, 0xae, 0x10, 0x08, 0x6f, 0x0d, 0xd6, 0x92, 0xa2, 0xf1, 0x5f, 0xe6, 0x5b, 0x83, 0x21, + 0xf0, 0xd6, 0xe0, 0xdd, 0x28, 0x1a, 0xfd, 0x3a, 0xdf, 0x1a, 0x1c, 0x52, 0xbc, 0x0a, 0x29, 0xab, + 0x6b, 0x9a, 0x38, 0xb7, 0xa4, 0x07, 0x7f, 0x46, 0x24, 0xff, 0xcb, 0x87, 0x0c, 0xcc, 0x01, 0xc5, + 0x35, 0x48, 0xa2, 0xf6, 0x01, 0x6a, 0x44, 0x21, 0xff, 0xf5, 0x43, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, + 0x79, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x87, 0xec, 0x0b, 0x85, 0x00, + 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x5e, 0x2f, 0x01, 0x79, 0x01, 0xbf, 0x02, 0x13, + 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x56, 0x14, 0xfa, 0xdf, 0x19, 0x9a, 0xdb, 0xe3, 0x80, 0xb5, 0x6d, + 0x07, 0x79, 0x5a, 0xcb, 0x8d, 0xc2, 0xfe, 0x07, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x1b, + 0xe5, 0xb9, 0xff, 0x93, 0x83, 0x39, 0x00, 0x3b, 0x8d, 0xff, 0xbf, 0x8d, 0x8e, 0xa2, 0xb0, 0xef, + 0x73, 0xa7, 0x99, 0x7d, 0xf1, 0x93, 0x90, 0xc6, 0xff, 0xd2, 0xaf, 0x76, 0x22, 0xc0, 0xff, 0xc5, + 0xc0, 0x01, 0x02, 0xdf, 0xd9, 0xf5, 0x1a, 0x9e, 0x11, 0x1d, 0xec, 0xff, 0x66, 0x2b, 0xcd, 0xed, + 0x8b, 0x25, 0xc8, 0xb8, 0x5e, 0xa3, 0xd1, 0x65, 0x13, 0x4d, 0x04, 0xfc, 0x07, 0x1f, 0xfa, 0x2f, + 0xb9, 0x3e, 0xa6, 0x7c, 0x61, 0xf8, 0x61, 0x1d, 0x6c, 0xd8, 0x1b, 0x36, 0x3d, 0xa6, 0x83, 0x1f, + 0xa5, 0x60, 0x4e, 0xb7, 0xdb, 0x07, 0xb6, 0xbb, 0xe4, 0x17, 0x92, 0x25, 0xdb, 0x62, 0xd6, 0x52, + 0xdc, 0xb6, 0xd0, 0xdc, 0xe9, 0x8e, 0xe5, 0x0a, 0xe7, 0x20, 0x59, 0xef, 0x1e, 0x1c, 0x1c, 0x49, + 0x22, 0xc4, 0xdd, 0xee, 0x01, 0xfb, 0xae, 0x04, 0xff, 0x5b, 0x78, 0x3b, 0x0e, 0x93, 0x25, 0xd3, + 0xdc, 0x3b, 0xea, 0x20, 0xb7, 0x66, 0xa1, 0x5a, 0x53, 0x92, 0x61, 0x9c, 0x3c, 0xc7, 0x73, 0xc4, + 0x4c, 0xb8, 0x3e, 0xa6, 0xb0, 0x6b, 0x5f, 0xb3, 0x4c, 0x4e, 0x2b, 0x63, 0xbe, 0x66, 0xd9, 0xd7, + 0xac, 0xd0, 0xc3, 0x4a, 0x5f, 0xb3, 0xe2, 0x6b, 0x56, 0xc9, 0x91, 0x65, 0xdc, 0xd7, 0xac, 0xfa, + 0x9a, 0x35, 0x72, 0x24, 0x3f, 0xe9, 0x6b, 0xd6, 0x7c, 0xcd, 0x45, 0x72, 0x08, 0x9f, 0xf0, 0x35, + 0x17, 0x7d, 0xcd, 0x25, 0x72, 0xf6, 0x3e, 0xed, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xbc, 0x5d, + 0xf2, 0x35, 0x97, 0x7d, 0xcd, 0x15, 0xf2, 0x01, 0xc9, 0x84, 0xaf, 0xb9, 0x22, 0xcd, 0xc1, 0x04, + 0x7d, 0xb2, 0x67, 0xc9, 0x8f, 0xb2, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x91, 0x8f, + 0x44, 0xc6, 0x03, 0xdd, 0x73, 0x81, 0x6e, 0x99, 0x7c, 0x2a, 0x2d, 0x06, 0xba, 0xe5, 0x40, 0xb7, + 0x22, 0x4f, 0xe2, 0xe5, 0x0f, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, 0x74, 0xab, + 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x06, 0x32, 0x6e, 0xf7, + 0x40, 0x65, 0xdf, 0x10, 0x90, 0x8f, 0x51, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, 0xeb, 0xf5, + 0x31, 0x05, 0xdc, 0xee, 0x01, 0xab, 0x8f, 0xe5, 0x2c, 0x90, 0xe3, 0x04, 0x95, 0x7c, 0x82, 0x59, + 0x78, 0x4b, 0x80, 0xf4, 0xde, 0x5d, 0x9b, 0xfc, 0x24, 0xeb, 0xfe, 0x1f, 0x2f, 0x2e, 0x77, 0x7a, + 0x65, 0x95, 0xfc, 0x6a, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0x47, 0xc9, 0x03, + 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x07, 0x5a, 0x26, 0xdf, 0x97, 0xf4, 0x3e, 0x91, 0xa0, + 0x64, 0x82, 0x27, 0x5a, 0x2e, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb5, 0x0b, 0x5f, 0x88, + 0x41, 0x86, 0x9e, 0x40, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x13, 0xf9, 0x11, 0x73, 0x63, 0x4c, 0xe1, + 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0x67, 0xff, 0xf1, 0xed, 0xf3, 0x9f, + 0x38, 0x71, 0x07, 0xe1, 0xd8, 0x2d, 0xd1, 0xfa, 0xba, 0xb8, 0x6f, 0x58, 0xde, 0x73, 0xcb, 0x97, + 0x71, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x1f, 0x98, 0x11, 0xd7, 0x13, 0xe5, + 0x4b, 0x3f, 0x7a, 0xfb, 0xfc, 0x4a, 0x04, 0x23, 0x2b, 0x7d, 0x8b, 0xdb, 0x47, 0x98, 0xf5, 0xe2, + 0x2a, 0x86, 0x5f, 0x1f, 0x53, 0x7c, 0x2a, 0x69, 0x99, 0xbb, 0xba, 0xa3, 0xb5, 0xe9, 0x87, 0x34, + 0xf1, 0xb2, 0x78, 0xfc, 0xf6, 0xf9, 0xec, 0xf6, 0x51, 0x20, 0x0f, 0x5c, 0xc1, 0x57, 0xe5, 0x14, + 0x8c, 0x53, 0x57, 0xcb, 0xeb, 0x6f, 0xde, 0xcf, 0x8f, 0xbd, 0x75, 0x3f, 0x3f, 0xf6, 0x0f, 0xf7, + 0xf3, 0x63, 0xef, 0xdc, 0xcf, 0x0b, 0xef, 0xdf, 0xcf, 0x0b, 0x3f, 0xbc, 0x9f, 0x17, 0xee, 0x1d, + 0xe7, 0x85, 0xaf, 0x1e, 0xe7, 0x85, 0x6f, 0x1c, 0xe7, 0x85, 0x6f, 0x1f, 0xe7, 0x85, 0x37, 0x8f, + 0xf3, 0xc2, 0x5b, 0xc7, 0xf9, 0xb1, 0x77, 0x8e, 0xf3, 0xc2, 0xf7, 0x8f, 0xf3, 0x63, 0xef, 0x1f, + 0xe7, 0x85, 0x1f, 0x1e, 0xe7, 0xc7, 0xee, 0x7d, 0x2f, 0x3f, 0xf6, 0xbf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x91, 0x3b, 0x4f, 0xd7, 0xd9, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3407,201 +3427,184 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Sub != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(*m.Sub))) - i += copy(data[i:], *m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) + i += copy(dAtA[i:], *m.Sub) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf) Marshal() (data []byte, err error) { +func (m *AllTypesOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllTypesOneOf) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn1 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *AllTypesOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *AllTypesOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *AllTypesOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *AllTypesOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *AllTypesOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *AllTypesOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *AllTypesOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *AllTypesOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32One(data, i, uint32(m.Field9)) + i = encodeFixed32One(dAtA, i, uint32(m.Field9)) return i, nil } -func (m *AllTypesOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32One(data, i, uint32(m.Field10)) + i = encodeFixed32One(dAtA, i, uint32(m.Field10)) return i, nil } -func (m *AllTypesOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64One(data, i, uint64(m.Field11)) + i = encodeFixed64One(dAtA, i, uint64(m.Field11)) return i, nil } -func (m *AllTypesOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64One(data, i, uint64(m.Field12)) + i = encodeFixed64One(dAtA, i, uint64(m.Field12)) return i, nil } -func (m *AllTypesOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *AllTypesOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *AllTypesOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -3609,93 +3612,93 @@ func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *TwoOneofs) Marshal() (data []byte, err error) { +func (m *TwoOneofs) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *TwoOneofs) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.One != nil { - nn3, err := m.One.MarshalTo(data[i:]) + nn3, err := m.One.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn3 } if m.Two != nil { - nn4, err := m.Two.MarshalTo(data[i:]) + nn4, err := m.Two.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn4 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *TwoOneofs_Field1) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *TwoOneofs_Field2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *TwoOneofs_Field3) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *TwoOneofs_Field34) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field34))) - i += copy(data[i:], m.Field34) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) + i += copy(dAtA[i:], m.Field34) return i, nil } -func (m *TwoOneofs_Field35) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field35 != nil { - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field35))) - i += copy(data[i:], m.Field35) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) + i += copy(dAtA[i:], m.Field35) } return i, nil } -func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage2 != nil { - data[i] = 0xa2 + dAtA[i] = 0xa2 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) + n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -3703,107 +3706,107 @@ func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *CustomOneof) Marshal() (data []byte, err error) { +func (m *CustomOneof) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomOneof) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(data[i:]) + nn6, err := m.Custom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn6 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomOneof_Stringy) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Stringy))) - i += copy(data[i:], m.Stringy) + i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) + i += copy(dAtA[i:], m.Stringy) return i, nil } -func (m *CustomOneof_CustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) + n7, err := m.CustomType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n7 return i, nil } -func (m *CustomOneof_CastType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa0 + dAtA[i] = 0xa0 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CastType)) + i = encodeVarintOne(dAtA, i, uint64(m.CastType)) return i, nil } -func (m *CustomOneof_MyCustomName) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa8 + dAtA[i] = 0xa8 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.MyCustomName)) + i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3946,7 +3949,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -4015,7 +4018,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -4053,7 +4056,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -4102,7 +4105,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -4110,43 +4113,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4700,42 +4703,46 @@ func valueToStringOne(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 576 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6f, 0x1a, 0x3f, - 0x14, 0x00, 0x70, 0x8e, 0xdf, 0x18, 0xf8, 0x86, 0xef, 0x4d, 0xaf, 0x0c, 0x50, 0xd1, 0x56, 0xea, - 0xd0, 0x70, 0x70, 0x3f, 0x80, 0x8c, 0xbd, 0x54, 0x55, 0x17, 0x8a, 0x44, 0x92, 0x39, 0xe2, 0xe8, - 0x41, 0x90, 0x00, 0x47, 0xd8, 0x28, 0xba, 0x2d, 0x7f, 0x43, 0xff, 0x8a, 0x8e, 0x1d, 0xfb, 0x27, - 0x64, 0x64, 0xac, 0x3a, 0xa0, 0x86, 0x2e, 0x1d, 0x33, 0x46, 0x9d, 0xfa, 0xec, 0x23, 0x76, 0xa5, - 0xaa, 0xea, 0xd2, 0xe1, 0xc9, 0x67, 0x3e, 0xf6, 0xe3, 0xbd, 0xb3, 0x8f, 0x54, 0xc7, 0x74, 0x11, - 0x50, 0x66, 0x2d, 0x46, 0x2b, 0x76, 0x31, 0x9a, 0x87, 0x2b, 0x8b, 0x2e, 0xc3, 0xe6, 0xe5, 0x8a, - 0x72, 0x6a, 0xa6, 0xf0, 0xb1, 0x7a, 0x38, 0x9d, 0xf1, 0x8b, 0x75, 0xd0, 0xc4, 0x75, 0xd6, 0x94, - 0x4e, 0xa9, 0x25, 0x2d, 0x58, 0x4f, 0xe4, 0x4c, 0x4e, 0xe4, 0x53, 0xbc, 0xa7, 0xf1, 0x88, 0x64, - 0x4e, 0xd6, 0x41, 0x10, 0x99, 0x15, 0x92, 0x62, 0xeb, 0x00, 0x8c, 0xc7, 0xc6, 0xf3, 0xc2, 0x50, - 0x3c, 0x36, 0xb6, 0x29, 0x52, 0x7e, 0x39, 0x9f, 0x9f, 0x46, 0x97, 0x21, 0x1b, 0x2c, 0xc3, 0xc1, - 0xc4, 0x04, 0x92, 0x7d, 0x3d, 0x0b, 0xe7, 0xef, 0xda, 0x72, 0x99, 0xf1, 0x26, 0x31, 0xcc, 0x4e, - 0xe4, 0x5c, 0x89, 0x0d, 0x49, 0x94, 0xa4, 0x12, 0x5b, 0x89, 0x03, 0x29, 0x94, 0x8c, 0x12, 0x47, - 0x89, 0x0b, 0x69, 0x94, 0x94, 0x12, 0x57, 0x89, 0x07, 0x19, 0x94, 0xb2, 0x12, 0x4f, 0x49, 0x07, - 0xb2, 0x28, 0x69, 0x25, 0x1d, 0x25, 0x5d, 0xc8, 0xa1, 0xfc, 0xaf, 0xa4, 0xab, 0xa4, 0x07, 0x79, - 0x14, 0x53, 0x49, 0x4f, 0xc9, 0x11, 0x14, 0x50, 0x72, 0x4a, 0x8e, 0xcc, 0x2a, 0xc9, 0xc5, 0x9d, - 0xb6, 0x80, 0x20, 0x1d, 0x20, 0xe5, 0xe2, 0x56, 0x5b, 0xda, 0xda, 0x50, 0x44, 0xcb, 0x6a, 0x6b, - 0x6b, 0xb3, 0xa1, 0x84, 0x56, 0xd1, 0x66, 0x6b, 0x73, 0xa0, 0x8c, 0x96, 0xd7, 0xe6, 0x68, 0x73, - 0xe1, 0x3f, 0x71, 0x02, 0xda, 0x5c, 0x6d, 0x1e, 0x1c, 0xa0, 0x95, 0xb4, 0x79, 0xe6, 0x21, 0x29, - 0xe2, 0x51, 0x9d, 0x2f, 0x42, 0xc6, 0x46, 0xd3, 0x10, 0x2a, 0xe8, 0x45, 0x9b, 0x34, 0xc5, 0x9d, - 0x90, 0xc7, 0x8a, 0x6b, 0x09, 0x2e, 0xe8, 0xc7, 0xee, 0x97, 0x08, 0xe1, 0x21, 0xe3, 0xe7, 0xe8, - 0x74, 0xd2, 0xd8, 0x18, 0xa4, 0x70, 0x7a, 0x45, 0x07, 0x62, 0xc2, 0xfe, 0xf1, 0xe1, 0x3e, 0x14, - 0xed, 0xb8, 0xd0, 0x90, 0x0d, 0x19, 0xfb, 0xa2, 0x1d, 0xdd, 0x90, 0xe3, 0xc1, 0x13, 0xd9, 0x90, - 0x32, 0xcf, 0xb4, 0x48, 0xe9, 0x97, 0x86, 0x6c, 0x78, 0xfa, 0x5b, 0x47, 0xc6, 0xb0, 0xa8, 0x3b, - 0xb2, 0xfd, 0x0c, 0x11, 0xd7, 0x5e, 0x0c, 0xfc, 0x8a, 0x36, 0xde, 0x27, 0x49, 0xf1, 0x78, 0xcd, - 0x38, 0x5d, 0xc8, 0xae, 0xc4, 0x5f, 0x9d, 0xf0, 0xd5, 0x6c, 0x39, 0x8d, 0xf6, 0x65, 0xe0, 0xbb, - 0x63, 0xf1, 0x0f, 0xe6, 0x90, 0x90, 0x78, 0xa9, 0xb8, 0xe1, 0x71, 0x25, 0x7e, 0xeb, 0xcb, 0xb6, - 0xfe, 0xe2, 0x8f, 0x5f, 0x90, 0x78, 0x77, 0xd6, 0x58, 0xee, 0x69, 0x9e, 0xcd, 0x96, 0xbc, 0x6d, - 0xf7, 0xc4, 0x0b, 0x1e, 0xab, 0x2c, 0xe6, 0x19, 0xc9, 0x1f, 0x8f, 0x18, 0x97, 0x19, 0x45, 0xe9, - 0x69, 0xbf, 0xfb, 0x63, 0x5b, 0x77, 0xfe, 0x92, 0x11, 0x77, 0x70, 0xdc, 0xd1, 0xec, 0x47, 0x22, - 0x6b, 0xc7, 0x15, 0xdb, 0x31, 0x71, 0x7e, 0xbc, 0x4f, 0x65, 0xda, 0x0f, 0xa5, 0xbe, 0x1d, 0x2d, - 0x42, 0x78, 0x26, 0x3e, 0x17, 0xbf, 0xb2, 0xdb, 0xd6, 0x4b, 0xfd, 0x48, 0xff, 0xae, 0x4b, 0x11, - 0x33, 0x3f, 0x4f, 0xb2, 0xf1, 0xcc, 0x7f, 0x75, 0x73, 0x5b, 0x4b, 0x6c, 0x30, 0x3e, 0x63, 0x7c, - 0xbd, 0xad, 0x19, 0x77, 0x18, 0xf7, 0x18, 0xd7, 0xbb, 0x9a, 0xf1, 0x01, 0xe3, 0x23, 0xc6, 0x27, - 0x8c, 0x1b, 0x8c, 0xcd, 0x0e, 0xd7, 0xe0, 0xf8, 0x1d, 0xc7, 0x3b, 0x1c, 0xef, 0x71, 0xbc, 0xfe, - 0x56, 0x4b, 0xfc, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x02, 0x28, 0x50, 0xa1, 0x7a, 0x04, 0x00, 0x00, + // 601 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0xdb, 0x4e, + 0x14, 0x00, 0xf0, 0x7b, 0x84, 0x84, 0x70, 0x09, 0x5f, 0xf2, 0xf5, 0x74, 0x65, 0x38, 0x4e, 0x69, + 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0x24, 0xfc, 0x18, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3, + 0x98, 0x1e, 0x21, 0x52, 0xe2, 0x43, 0x39, 0x5b, 0xc8, 0x1b, 0x7f, 0x43, 0xff, 0x8a, 0x8e, 0x1d, + 0xfb, 0x27, 0x30, 0x32, 0x56, 0x1d, 0x22, 0xec, 0x2e, 0x1d, 0x19, 0x51, 0xa7, 0xea, 0x6c, 0x72, + 0x57, 0xa9, 0xaa, 0xba, 0x74, 0x8a, 0xdf, 0xfb, 0xf8, 0x5e, 0xde, 0xf3, 0xdd, 0xe1, 0x8d, 0x73, + 0x39, 0x0d, 0xa4, 0x6a, 0x4f, 0x87, 0x33, 0x75, 0x39, 0x9c, 0x88, 0x59, 0x5b, 0x86, 0xa2, 0x75, + 0x35, 0x93, 0x91, 0x74, 0x4a, 0x32, 0x14, 0x1b, 0x5b, 0xa3, 0x71, 0x74, 0x19, 0x07, 0xad, 0x73, + 0x39, 0x6d, 0x8f, 0xe4, 0x48, 0xb6, 0x73, 0x0b, 0xe2, 0x8b, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58, + 0xd3, 0x7c, 0x86, 0xcb, 0xc7, 0x71, 0x10, 0x24, 0x4e, 0x03, 0x97, 0x54, 0x1c, 0x10, 0x60, 0xc0, + 0x57, 0x7d, 0xfd, 0xd8, 0x9c, 0x97, 0xf0, 0xda, 0xeb, 0xc9, 0xe4, 0x24, 0xb9, 0x12, 0xea, 0x28, + 0x14, 0x47, 0x17, 0x0e, 0xc1, 0x95, 0xb7, 0x63, 0x31, 0x79, 0xdf, 0xc9, 0x5f, 0x83, 0x01, 0xf2, + 0x9f, 0x62, 0x23, 0x2e, 0x59, 0x62, 0xc0, 0x97, 0x8c, 0xb8, 0x46, 0xba, 0xa4, 0xc4, 0x80, 0x97, + 0x8d, 0x74, 0x8d, 0xf4, 0xc8, 0x32, 0x03, 0x5e, 0x32, 0xd2, 0x33, 0xd2, 0x27, 0x65, 0x06, 0x7c, + 0xcd, 0x48, 0xdf, 0xc8, 0x0e, 0xa9, 0x30, 0xe0, 0xcb, 0x46, 0x76, 0x8c, 0xec, 0x92, 0x15, 0x06, + 0xfc, 0x7f, 0x23, 0xbb, 0x46, 0xf6, 0x48, 0x95, 0x01, 0x77, 0x8c, 0xec, 0x19, 0xd9, 0x27, 0xab, + 0x0c, 0xf8, 0x8a, 0x91, 0x7d, 0x67, 0x03, 0xaf, 0x14, 0x93, 0x6d, 0x13, 0xcc, 0x80, 0xaf, 0x0f, + 0x90, 0xbf, 0x48, 0x58, 0xeb, 0x90, 0x1a, 0x03, 0x5e, 0xb1, 0xd6, 0xb1, 0xe6, 0x92, 0x3a, 0x03, + 0xde, 0xb0, 0xe6, 0x5a, 0xeb, 0x92, 0x35, 0x06, 0xbc, 0x6a, 0xad, 0x6b, 0xad, 0x47, 0xfe, 0xd3, + 0x3b, 0x60, 0xad, 0x67, 0xad, 0x4f, 0xd6, 0x19, 0xf0, 0xba, 0xb5, 0xbe, 0xb3, 0x85, 0x6b, 0x2a, + 0x0e, 0xce, 0xa6, 0x42, 0xa9, 0xe1, 0x48, 0x90, 0x06, 0x03, 0x5e, 0x73, 0x71, 0x4b, 0x9f, 0x89, + 0x7c, 0x5b, 0x07, 0xc8, 0xc7, 0x2a, 0x0e, 0x0e, 0x0b, 0xf7, 0xea, 0x18, 0x47, 0x42, 0x45, 0x67, + 0x32, 0x14, 0xf2, 0xa2, 0x79, 0x07, 0x78, 0xf5, 0xe4, 0x5a, 0x1e, 0xe9, 0x40, 0xfd, 0xe3, 0xcd, + 0x5d, 0x34, 0xdd, 0xed, 0x91, 0x66, 0x3e, 0x10, 0xf8, 0x8b, 0x84, 0xb5, 0x3e, 0x79, 0x9e, 0x0f, + 0x64, 0xac, 0xef, 0xb4, 0x71, 0xfd, 0x97, 0x81, 0x5c, 0xf2, 0xe2, 0xb7, 0x89, 0xc0, 0xaf, 0xd9, + 0x89, 0x5c, 0xaf, 0x8c, 0xf5, 0xb1, 0xd7, 0x3f, 0xd1, 0xb5, 0x6c, 0x7e, 0x58, 0xc2, 0xb5, 0x83, + 0x58, 0x45, 0x72, 0x9a, 0x4f, 0xa5, 0xff, 0xea, 0x38, 0x9a, 0x8d, 0xc3, 0x51, 0xf2, 0xd4, 0x06, + 0xf2, 0x17, 0x09, 0xc7, 0xc7, 0xb8, 0x78, 0x55, 0x9f, 0xf0, 0xa2, 0x13, 0x6f, 0xfb, 0xeb, 0x7c, + 0xf3, 0xd5, 0x1f, 0x6f, 0x90, 0xfe, 0x76, 0xed, 0xf3, 0x7c, 0x4d, 0xeb, 0x74, 0x1c, 0x46, 0x1d, + 0x77, 0x4f, 0x7f, 0x60, 0x5b, 0xc5, 0x39, 0xc5, 0xd5, 0x83, 0xa1, 0x8a, 0xf2, 0x8a, 0xba, 0xf5, + 0x65, 0x6f, 0xf7, 0xc7, 0x7c, 0xb3, 0xfb, 0x97, 0x8a, 0x43, 0x15, 0x45, 0xc9, 0x95, 0x68, 0x1d, + 0x26, 0xba, 0xea, 0x4e, 0x4f, 0x2f, 0x1f, 0x20, 0xdf, 0x94, 0x72, 0xdc, 0x45, 0xab, 0xef, 0x86, + 0x53, 0x41, 0x5e, 0xea, 0xeb, 0xe2, 0x35, 0xb2, 0xf9, 0x66, 0xfd, 0x30, 0xb1, 0x79, 0xdb, 0x8a, + 0x8e, 0xbc, 0x2a, 0xae, 0x14, 0xad, 0x7a, 0x6f, 0x6e, 0x53, 0x8a, 0xee, 0x52, 0x8a, 0xbe, 0xa4, + 0x14, 0xdd, 0xa7, 0x14, 0x1e, 0x52, 0x0a, 0x8f, 0x29, 0x85, 0x9b, 0x8c, 0xc2, 0xc7, 0x8c, 0xc2, + 0xa7, 0x8c, 0xc2, 0xe7, 0x8c, 0xc2, 0x6d, 0x46, 0xe1, 0x2e, 0xa3, 0xe8, 0x3e, 0xa3, 0xf0, 0x3d, + 0xa3, 0xe8, 0x21, 0xa3, 0xf0, 0x98, 0x51, 0x74, 0xf3, 0x8d, 0xa2, 0x9f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xcf, 0xa5, 0xfc, 0x33, 0x7a, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto index 30e171ad..d9a8204e 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go index eac19ae2..c442b0a7 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go @@ -36,18 +36,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -71,20 +71,20 @@ func TestSubbyMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -98,18 +98,18 @@ func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -133,20 +133,20 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -160,18 +160,18 @@ func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -195,20 +195,20 @@ func TestTwoOneofsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -222,18 +222,18 @@ func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -257,20 +257,20 @@ func TestCustomOneofMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -368,9 +368,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -385,9 +385,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -402,9 +402,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -419,9 +419,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,9 +436,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,9 +453,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,9 +470,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,9 +487,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -506,12 +506,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -521,12 +521,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestAllTypesOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -536,12 +536,12 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { func TestTwoOneofsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -551,12 +551,12 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { func TestCustomOneofVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -620,13 +620,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -642,13 +642,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -664,13 +664,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -686,13 +686,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go index 9762497e..04d34106 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -42,7 +40,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -87,49 +87,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -574,19 +574,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -815,16 +815,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -879,11 +879,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -985,240 +985,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3728 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0xe5, - 0xd5, 0x5e, 0xc7, 0x97, 0xd8, 0xc7, 0x8e, 0xe3, 0x4c, 0xc2, 0xee, 0x6c, 0x80, 0x0d, 0xeb, 0xe5, - 0xb2, 0x2c, 0x90, 0xec, 0x26, 0x9b, 0xbd, 0x98, 0xef, 0x03, 0xc5, 0x89, 0x37, 0x64, 0x95, 0xc4, - 0xf9, 0x26, 0x31, 0x2c, 0x7c, 0x3f, 0x46, 0x13, 0x7b, 0xe2, 0x78, 0xd7, 0x9e, 0xf1, 0xe7, 0x19, - 0xef, 0x6e, 0xf8, 0xc5, 0x27, 0x7a, 0x11, 0xaa, 0x7a, 0xa3, 0x95, 0xca, 0xbd, 0x05, 0xa9, 0x85, - 0xd2, 0x1b, 0xf4, 0xa6, 0xaa, 0xbf, 0x2a, 0x55, 0xb4, 0xfc, 0xaa, 0x68, 0x7f, 0x55, 0x55, 0xb5, - 0x02, 0x8a, 0x54, 0xda, 0xd2, 0x96, 0x4a, 0x2b, 0x15, 0x95, 0x3f, 0x3d, 0xef, 0x6d, 0x66, 0x7c, - 0x49, 0xc6, 0x41, 0xa5, 0x34, 0x92, 0x15, 0xcf, 0x39, 0xe7, 0x79, 0xe6, 0x7d, 0xcf, 0x7b, 0xde, - 0x73, 0xce, 0xbc, 0x63, 0xf8, 0xe9, 0x31, 0xb8, 0xa1, 0x6c, 0x9a, 0xe5, 0xaa, 0x3e, 0x51, 0x6f, - 0x98, 0xb6, 0xb9, 0xde, 0xdc, 0x98, 0x28, 0xe9, 0x56, 0xb1, 0x51, 0xa9, 0xdb, 0x66, 0x63, 0x9c, - 0xca, 0xa4, 0x41, 0x66, 0x31, 0x2e, 0x2c, 0xd2, 0x4b, 0x30, 0x74, 0xa6, 0x52, 0xd5, 0xe7, 0x1c, - 0xc3, 0x55, 0xdd, 0x96, 0x4e, 0x41, 0x68, 0x03, 0x85, 0x72, 0xe0, 0x86, 0xe0, 0xe1, 0xf8, 0xe4, - 0x8d, 0xe3, 0x6d, 0xa0, 0xf1, 0x56, 0xc4, 0x0a, 0x11, 0x2b, 0x14, 0x91, 0x7e, 0x2b, 0x04, 0xc3, - 0x5d, 0xb4, 0x92, 0x04, 0x21, 0x43, 0xab, 0x11, 0xc6, 0xc0, 0xe1, 0x98, 0x42, 0xbf, 0x4b, 0x32, - 0xf4, 0xd7, 0xb5, 0xe2, 0x05, 0xad, 0xac, 0xcb, 0x7d, 0x54, 0x2c, 0x2e, 0xa5, 0x03, 0x00, 0x25, - 0xbd, 0xae, 0x1b, 0x25, 0xdd, 0x28, 0x6e, 0xc9, 0x41, 0x1c, 0x45, 0x4c, 0xf1, 0x48, 0xa4, 0xdb, - 0x60, 0xa8, 0xde, 0x5c, 0xaf, 0x56, 0x8a, 0xaa, 0xc7, 0x0c, 0xd0, 0x2c, 0xac, 0xa4, 0x98, 0x62, - 0xce, 0x35, 0xbe, 0x05, 0x06, 0x2f, 0xe9, 0xda, 0x05, 0xaf, 0x69, 0x9c, 0x9a, 0x26, 0x89, 0xd8, - 0x63, 0x38, 0x0b, 0x89, 0x9a, 0x6e, 0x59, 0x38, 0x00, 0xd5, 0xde, 0xaa, 0xeb, 0x72, 0x88, 0xce, - 0xfe, 0x86, 0x8e, 0xd9, 0xb7, 0xcf, 0x3c, 0xce, 0x51, 0x6b, 0x08, 0x92, 0x66, 0x20, 0xa6, 0x1b, - 0xcd, 0x1a, 0x63, 0x08, 0x6f, 0xe3, 0xbf, 0x1c, 0x5a, 0xb4, 0xb3, 0x44, 0x09, 0x8c, 0x53, 0xf4, - 0x5b, 0x7a, 0xe3, 0x62, 0xa5, 0xa8, 0xcb, 0x11, 0x4a, 0x70, 0x4b, 0x07, 0xc1, 0x2a, 0xd3, 0xb7, - 0x73, 0x08, 0x1c, 0x4e, 0x25, 0xa6, 0x5f, 0xb6, 0x75, 0xc3, 0xaa, 0x98, 0x86, 0xdc, 0x4f, 0x49, - 0x6e, 0xea, 0xb2, 0x8a, 0x7a, 0xb5, 0xd4, 0x4e, 0xe1, 0xe2, 0xa4, 0x13, 0xd0, 0x6f, 0xd6, 0x6d, - 0xfc, 0x66, 0xc9, 0x51, 0x5c, 0x9f, 0xf8, 0xe4, 0x75, 0x5d, 0x03, 0x21, 0xcf, 0x6c, 0x14, 0x61, - 0x2c, 0x2d, 0x40, 0xca, 0x32, 0x9b, 0x8d, 0xa2, 0xae, 0x16, 0xcd, 0x92, 0xae, 0x56, 0x8c, 0x0d, - 0x53, 0x8e, 0x51, 0x82, 0xb1, 0xce, 0x89, 0x50, 0xc3, 0x59, 0xb4, 0x5b, 0x40, 0x33, 0x25, 0x69, - 0xb5, 0x5c, 0x4b, 0x7b, 0x21, 0x62, 0x6d, 0x19, 0xb6, 0x76, 0x59, 0x4e, 0xd0, 0x08, 0xe1, 0x57, - 0xe9, 0xbf, 0x87, 0x61, 0xb0, 0x97, 0x10, 0xbb, 0x13, 0xc2, 0x1b, 0x64, 0x96, 0x18, 0x60, 0xbb, - 0xf0, 0x01, 0xc3, 0xb4, 0x3a, 0x31, 0xf2, 0x01, 0x9d, 0x38, 0x03, 0x71, 0x43, 0xb7, 0x6c, 0xbd, - 0xc4, 0x22, 0x22, 0xd8, 0x63, 0x4c, 0x01, 0x03, 0x75, 0x86, 0x54, 0xe8, 0x03, 0x85, 0xd4, 0x39, - 0x18, 0x74, 0x86, 0xa4, 0x36, 0x34, 0xa3, 0x2c, 0x62, 0x73, 0xc2, 0x6f, 0x24, 0xe3, 0x39, 0x81, - 0x53, 0x08, 0x4c, 0x49, 0xea, 0x2d, 0xd7, 0xd2, 0x1c, 0x80, 0x69, 0xe8, 0xe6, 0x06, 0x6e, 0xaf, - 0x62, 0x15, 0xe3, 0xa4, 0xbb, 0x97, 0xf2, 0xc4, 0xa4, 0xc3, 0x4b, 0x26, 0x93, 0x16, 0xab, 0xd2, - 0x69, 0x37, 0xd4, 0xfa, 0xb7, 0x89, 0x94, 0x25, 0xb6, 0xc9, 0x3a, 0xa2, 0xad, 0x00, 0xc9, 0x86, - 0x4e, 0xe2, 0x1e, 0x5d, 0xcc, 0x66, 0x16, 0xa3, 0x83, 0x18, 0xf7, 0x9d, 0x99, 0xc2, 0x61, 0x6c, - 0x62, 0x03, 0x0d, 0xef, 0xa5, 0x74, 0x08, 0x1c, 0x81, 0x4a, 0xc3, 0x0a, 0x68, 0x16, 0x4a, 0x08, - 0xe1, 0x32, 0xca, 0x46, 0x4f, 0x41, 0xb2, 0xd5, 0x3d, 0xd2, 0x08, 0x84, 0x2d, 0x5b, 0x6b, 0xd8, - 0x34, 0x0a, 0xc3, 0x0a, 0xbb, 0x90, 0x52, 0x10, 0xc4, 0x24, 0x43, 0xb3, 0x5c, 0x58, 0x21, 0x5f, - 0x47, 0x4f, 0xc2, 0x40, 0xcb, 0xed, 0x7b, 0x05, 0xa6, 0x1f, 0x8b, 0xc0, 0x48, 0xb7, 0x98, 0xeb, - 0x1a, 0xfe, 0xb8, 0x7d, 0x30, 0x02, 0xd6, 0xf5, 0x06, 0xc6, 0x1d, 0x61, 0xe0, 0x57, 0x18, 0x51, - 0xe1, 0xaa, 0xb6, 0xae, 0x57, 0x31, 0x9a, 0x02, 0x87, 0x93, 0x93, 0xb7, 0xf5, 0x14, 0xd5, 0xe3, - 0x8b, 0x04, 0xa2, 0x30, 0xa4, 0x74, 0x17, 0x84, 0x78, 0x8a, 0x23, 0x0c, 0x47, 0x7a, 0x63, 0x20, - 0xb1, 0xa8, 0x50, 0x9c, 0x74, 0x2d, 0xc4, 0xc8, 0x7f, 0xe6, 0xdb, 0x08, 0x1d, 0x73, 0x94, 0x08, - 0x88, 0x5f, 0xa5, 0x51, 0x88, 0xd2, 0x30, 0x2b, 0xe9, 0xa2, 0x34, 0x38, 0xd7, 0x64, 0x61, 0x4a, - 0xfa, 0x86, 0xd6, 0xac, 0xda, 0xea, 0x45, 0xad, 0xda, 0xd4, 0x69, 0xc0, 0xe0, 0xc2, 0x70, 0xe1, - 0xbd, 0x44, 0x26, 0x8d, 0x41, 0x9c, 0x45, 0x65, 0x05, 0x31, 0x97, 0x69, 0xf6, 0x09, 0x2b, 0x2c, - 0x50, 0x17, 0x88, 0x84, 0xdc, 0xfe, 0xbc, 0x85, 0x7b, 0x81, 0x2f, 0x2d, 0xbd, 0x05, 0x11, 0xd0, - 0xdb, 0x9f, 0x6c, 0x4f, 0x7c, 0xd7, 0x77, 0x9f, 0x5e, 0x7b, 0x2c, 0xa6, 0x7f, 0xd8, 0x07, 0x21, - 0xba, 0xdf, 0x06, 0x21, 0xbe, 0x76, 0xff, 0x4a, 0x4e, 0x9d, 0xcb, 0x17, 0xb2, 0x8b, 0xb9, 0x54, - 0x40, 0x4a, 0x02, 0x50, 0xc1, 0x99, 0xc5, 0xfc, 0xcc, 0x5a, 0xaa, 0xcf, 0xb9, 0x5e, 0x58, 0x5e, - 0x3b, 0x71, 0x3c, 0x15, 0x74, 0x00, 0x05, 0x26, 0x08, 0x79, 0x0d, 0xa6, 0x26, 0x53, 0x61, 0x8c, - 0x84, 0x04, 0x23, 0x58, 0x38, 0x97, 0x9b, 0x43, 0x8b, 0x48, 0xab, 0x04, 0x6d, 0xfa, 0xa5, 0x01, - 0x88, 0x51, 0x49, 0x36, 0x9f, 0x5f, 0x4c, 0x45, 0x1d, 0xce, 0xd5, 0x35, 0x65, 0x61, 0x79, 0x3e, - 0x15, 0x73, 0x38, 0xe7, 0x95, 0x7c, 0x61, 0x25, 0x05, 0x0e, 0xc3, 0x52, 0x6e, 0x75, 0x75, 0x66, - 0x3e, 0x97, 0x8a, 0x3b, 0x16, 0xd9, 0xfb, 0xd7, 0x72, 0xab, 0xa9, 0x44, 0xcb, 0xb0, 0xf0, 0x16, - 0x03, 0xce, 0x2d, 0x72, 0xcb, 0x85, 0xa5, 0x54, 0x52, 0x1a, 0x82, 0x01, 0x76, 0x0b, 0x31, 0x88, - 0xc1, 0x36, 0x11, 0x8e, 0x34, 0xe5, 0x0e, 0x84, 0xb1, 0x0c, 0xb5, 0x08, 0xd0, 0x42, 0x4a, 0xcf, - 0x42, 0x98, 0x46, 0x17, 0x46, 0x71, 0x72, 0x71, 0x26, 0x9b, 0x5b, 0x54, 0xf3, 0x2b, 0x6b, 0x0b, - 0xf9, 0xe5, 0x99, 0x45, 0xf4, 0x9d, 0x23, 0x53, 0x72, 0xff, 0x53, 0x58, 0x50, 0x72, 0x73, 0xe8, - 0x3f, 0x8f, 0x6c, 0x25, 0x37, 0xb3, 0x86, 0xb2, 0x60, 0xfa, 0x08, 0x8c, 0x74, 0xcb, 0x33, 0xdd, - 0x76, 0x46, 0xfa, 0xb9, 0x00, 0x0c, 0x77, 0x49, 0x99, 0x5d, 0x77, 0xd1, 0xdd, 0x10, 0x66, 0x91, - 0xc6, 0x8a, 0xc8, 0xad, 0x5d, 0x73, 0x2f, 0x8d, 0xbb, 0x8e, 0x42, 0x42, 0x71, 0xde, 0x42, 0x1a, - 0xdc, 0xa6, 0x90, 0x12, 0x8a, 0x8e, 0x70, 0x7a, 0x38, 0x00, 0xf2, 0x76, 0xdc, 0x3e, 0xfb, 0xbd, - 0xaf, 0x65, 0xbf, 0xdf, 0xd9, 0x3e, 0x80, 0x83, 0xdb, 0xcf, 0xa1, 0x63, 0x14, 0xcf, 0x07, 0x60, - 0x6f, 0xf7, 0x7e, 0xa3, 0xeb, 0x18, 0xee, 0x82, 0x48, 0x4d, 0xb7, 0x37, 0x4d, 0x51, 0x73, 0x6f, - 0xee, 0x92, 0xc9, 0x89, 0xba, 0xdd, 0x57, 0x1c, 0xe5, 0x2d, 0x05, 0xc1, 0xed, 0x9a, 0x06, 0x36, - 0x9a, 0x8e, 0x91, 0x3e, 0xd2, 0x07, 0xd7, 0x74, 0x25, 0xef, 0x3a, 0xd0, 0xeb, 0x01, 0x2a, 0x46, - 0xbd, 0x69, 0xb3, 0xba, 0xca, 0xd2, 0x4c, 0x8c, 0x4a, 0xe8, 0x16, 0x26, 0x29, 0xa4, 0x69, 0x3b, - 0xfa, 0x20, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x53, 0xee, 0x40, 0x43, 0x74, 0xa0, 0x07, 0xb6, 0x99, - 0x69, 0x47, 0xc9, 0x3a, 0x0a, 0xa9, 0x62, 0xb5, 0xa2, 0x1b, 0xb6, 0x6a, 0xd9, 0x0d, 0x5d, 0xab, - 0x55, 0x8c, 0x32, 0xcd, 0xa3, 0xd1, 0x4c, 0x78, 0x43, 0xab, 0x5a, 0xba, 0x32, 0xc8, 0xd4, 0xab, - 0x42, 0x4b, 0x10, 0xb4, 0x58, 0x34, 0x3c, 0x88, 0x48, 0x0b, 0x82, 0xa9, 0x1d, 0x44, 0xfa, 0x57, - 0xfd, 0x10, 0xf7, 0x74, 0x67, 0xd2, 0x41, 0x48, 0x9c, 0xd7, 0x2e, 0x6a, 0xaa, 0xe8, 0xb8, 0x99, - 0x27, 0xe2, 0x44, 0xb6, 0xc2, 0xbb, 0xee, 0xa3, 0x30, 0x42, 0x4d, 0x70, 0x8e, 0x78, 0xa3, 0x62, - 0x55, 0xb3, 0x2c, 0xea, 0xb4, 0x28, 0x35, 0x95, 0x88, 0x2e, 0x4f, 0x54, 0xb3, 0x42, 0x23, 0x4d, - 0xc3, 0x30, 0x45, 0xd4, 0x30, 0xf1, 0x56, 0xea, 0x55, 0x5d, 0x25, 0xcf, 0x00, 0x16, 0xcd, 0xa7, - 0xce, 0xc8, 0x86, 0x88, 0xc5, 0x12, 0x37, 0x20, 0x23, 0xb2, 0xa4, 0x79, 0xb8, 0x9e, 0xc2, 0xca, - 0xba, 0xa1, 0x37, 0x34, 0x5b, 0x57, 0xf5, 0xff, 0x6b, 0xa2, 0xad, 0xaa, 0x19, 0x25, 0x75, 0x53, - 0xb3, 0x36, 0xe5, 0x11, 0x2f, 0xc1, 0x7e, 0x62, 0x3b, 0xcf, 0x4d, 0x73, 0xd4, 0x72, 0xc6, 0x28, - 0xdd, 0x83, 0x76, 0x52, 0x06, 0xf6, 0x52, 0x22, 0x74, 0x0a, 0xce, 0x59, 0x2d, 0x6e, 0xea, 0xc5, - 0x0b, 0x6a, 0xd3, 0xde, 0x38, 0x25, 0x5f, 0xeb, 0x65, 0xa0, 0x83, 0x5c, 0xa5, 0x36, 0xb3, 0xc4, - 0xa4, 0x80, 0x16, 0xd2, 0x2a, 0x24, 0xc8, 0x7a, 0xd4, 0x2a, 0x0f, 0xe2, 0xb0, 0xcd, 0x06, 0xad, - 0x11, 0xc9, 0x2e, 0x9b, 0xdb, 0xe3, 0xc4, 0xf1, 0x3c, 0x07, 0x2c, 0x61, 0x7f, 0x9a, 0x09, 0xaf, - 0xae, 0xe4, 0x72, 0x73, 0x4a, 0x5c, 0xb0, 0x9c, 0x31, 0x1b, 0x24, 0xa6, 0xca, 0xa6, 0xe3, 0xe3, - 0x38, 0x8b, 0xa9, 0xb2, 0x29, 0x3c, 0x8c, 0xfe, 0x2a, 0x16, 0xd9, 0xb4, 0xf1, 0xd9, 0x85, 0x37, - 0xeb, 0x96, 0x9c, 0x6a, 0xf1, 0x57, 0xb1, 0x38, 0xcf, 0x0c, 0x78, 0x98, 0x5b, 0xb8, 0x25, 0xae, - 0x71, 0xfd, 0xe5, 0x05, 0x0e, 0x75, 0xcc, 0xb2, 0x1d, 0x8a, 0x77, 0xac, 0x6f, 0x75, 0x02, 0xa5, - 0x96, 0x3b, 0xd6, 0xb7, 0xda, 0x61, 0x37, 0xd1, 0x07, 0xb0, 0x86, 0x5e, 0x44, 0x97, 0x97, 0xe4, - 0x7d, 0x5e, 0x6b, 0x8f, 0x42, 0x9a, 0xc0, 0x40, 0x2e, 0xaa, 0xba, 0xa1, 0xad, 0xe3, 0xda, 0x6b, - 0x0d, 0xfc, 0x62, 0xc9, 0x63, 0x5e, 0xe3, 0x64, 0xb1, 0x98, 0xa3, 0xda, 0x19, 0xaa, 0x94, 0x8e, - 0xc0, 0x90, 0xb9, 0x7e, 0xbe, 0xc8, 0x82, 0x4b, 0x45, 0x9e, 0x8d, 0xca, 0x65, 0xf9, 0x46, 0xea, - 0xa6, 0x41, 0xa2, 0xa0, 0xa1, 0xb5, 0x42, 0xc5, 0xd2, 0xad, 0x48, 0x6e, 0x6d, 0x6a, 0x8d, 0x3a, - 0x2d, 0xd2, 0x16, 0x3a, 0x55, 0x97, 0x6f, 0x62, 0xa6, 0x4c, 0xbe, 0x2c, 0xc4, 0x52, 0x0e, 0xc6, - 0xc8, 0xe4, 0x0d, 0xcd, 0x30, 0xd5, 0xa6, 0xa5, 0xab, 0xee, 0x10, 0x9d, 0xb5, 0xb8, 0x99, 0x0c, - 0x4b, 0xb9, 0x4e, 0x98, 0x15, 0x2c, 0x4c, 0x66, 0xc2, 0x48, 0x2c, 0xcf, 0x39, 0x18, 0x69, 0x1a, - 0x15, 0x03, 0x43, 0x1c, 0x35, 0x04, 0xcc, 0x36, 0xac, 0xfc, 0xfb, 0xfe, 0x6d, 0x9a, 0xee, 0x82, - 0xd7, 0x9a, 0x05, 0x89, 0x32, 0xdc, 0xec, 0x14, 0xa6, 0x33, 0x90, 0xf0, 0xc6, 0x8e, 0x14, 0x03, - 0x16, 0x3d, 0x58, 0xdd, 0xb0, 0xa2, 0xce, 0xe6, 0xe7, 0x48, 0x2d, 0x7c, 0x20, 0x87, 0x85, 0x0d, - 0x6b, 0xf2, 0xe2, 0xc2, 0x5a, 0x4e, 0x55, 0x0a, 0xcb, 0x6b, 0x0b, 0x4b, 0xb9, 0x54, 0xf0, 0x48, - 0x2c, 0xfa, 0x76, 0x7f, 0xea, 0x21, 0xfc, 0xeb, 0x4b, 0xbf, 0xd2, 0x07, 0xc9, 0xd6, 0x3e, 0x58, - 0xfa, 0x2f, 0xd8, 0x27, 0x1e, 0x5a, 0x2d, 0xdd, 0x56, 0x2f, 0x55, 0x1a, 0x34, 0x9c, 0x6b, 0x1a, - 0xeb, 0x24, 0x9d, 0x95, 0x18, 0xe1, 0x56, 0xf8, 0x78, 0x7f, 0x1f, 0xda, 0x9c, 0xa1, 0x26, 0xd2, - 0x22, 0x8c, 0xa1, 0xcb, 0xb0, 0xd7, 0x34, 0x4a, 0x5a, 0xa3, 0xa4, 0xba, 0xc7, 0x05, 0xaa, 0x56, - 0xc4, 0x38, 0xb0, 0x4c, 0x56, 0x49, 0x1c, 0x96, 0xeb, 0x0c, 0x73, 0x95, 0x1b, 0xbb, 0x29, 0x76, - 0x86, 0x9b, 0xb6, 0x45, 0x4d, 0x70, 0xbb, 0xa8, 0xc1, 0xde, 0xab, 0xa6, 0xd5, 0x31, 0x6c, 0xec, - 0xc6, 0x16, 0xed, 0xde, 0xa2, 0x4a, 0x14, 0x05, 0x39, 0x72, 0xfd, 0xe1, 0xad, 0x81, 0xd7, 0x8f, - 0xbf, 0x0d, 0x42, 0xc2, 0xdb, 0xc1, 0x91, 0x86, 0xb8, 0x48, 0xd3, 0x7c, 0x80, 0x66, 0x81, 0x43, - 0x3b, 0xf6, 0x7b, 0xe3, 0xb3, 0x24, 0xff, 0x67, 0x22, 0xac, 0xaf, 0x52, 0x18, 0x92, 0xd4, 0x5e, - 0x12, 0x6b, 0x3a, 0xeb, 0xd6, 0xa3, 0x0a, 0xbf, 0xc2, 0x64, 0x17, 0x39, 0x6f, 0x51, 0xee, 0x08, - 0xe5, 0xbe, 0x71, 0x67, 0xee, 0xb3, 0xab, 0x94, 0x3c, 0x76, 0x76, 0x55, 0x5d, 0xce, 0x2b, 0x4b, - 0x33, 0x8b, 0x0a, 0x87, 0x4b, 0xfb, 0x21, 0x54, 0xd5, 0x1e, 0xdc, 0x6a, 0xad, 0x14, 0x54, 0xd4, - 0xab, 0xe3, 0x91, 0x81, 0x1c, 0x79, 0xb4, 0xe6, 0x67, 0x2a, 0xfa, 0x10, 0x43, 0x7f, 0x02, 0xc2, - 0xd4, 0x5f, 0x12, 0x00, 0xf7, 0x58, 0x6a, 0x8f, 0x14, 0x85, 0xd0, 0x6c, 0x5e, 0x21, 0xe1, 0x8f, - 0xf1, 0xce, 0xa4, 0xea, 0xca, 0x42, 0x6e, 0x16, 0x77, 0x40, 0x7a, 0x1a, 0x22, 0xcc, 0x09, 0x64, - 0x6b, 0x38, 0x6e, 0x40, 0x10, 0xbb, 0xe4, 0x1c, 0x01, 0xa1, 0x2d, 0x2c, 0x65, 0x73, 0x4a, 0xaa, - 0xcf, 0xbb, 0xbc, 0x3f, 0x0e, 0x40, 0xdc, 0xd3, 0x50, 0x91, 0x52, 0xae, 0x55, 0xab, 0xe6, 0x25, - 0x55, 0xab, 0x56, 0x30, 0x43, 0xb1, 0xf5, 0x01, 0x2a, 0x9a, 0x21, 0x92, 0x5e, 0xfd, 0xf7, 0x6f, - 0x89, 0xcd, 0x67, 0x02, 0x90, 0x6a, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf8, 0x48, 0x07, 0xf8, 0x54, - 0x00, 0x92, 0xad, 0x1d, 0x58, 0xdb, 0xf0, 0x0e, 0x7e, 0xa4, 0xc3, 0x7b, 0x32, 0x00, 0x03, 0x2d, - 0x7d, 0xd7, 0x7f, 0xd4, 0xe8, 0x9e, 0x08, 0xc2, 0x70, 0x17, 0x1c, 0x26, 0x20, 0xd6, 0xa0, 0xb2, - 0x9e, 0xf9, 0x8e, 0x5e, 0xee, 0x35, 0x4e, 0xea, 0xdf, 0x8a, 0xd6, 0xb0, 0x79, 0x3f, 0x8b, 0xf5, - 0xb2, 0x52, 0xc2, 0xa4, 0x5a, 0xd9, 0xa8, 0x60, 0xfb, 0xc6, 0x9e, 0x58, 0x58, 0xd7, 0x3a, 0xe8, - 0xca, 0xd9, 0xe3, 0xf1, 0xed, 0x20, 0xd5, 0x4d, 0xab, 0x62, 0x57, 0x2e, 0x92, 0xe3, 0x39, 0xf1, - 0x20, 0x4d, 0xba, 0xd8, 0x90, 0x92, 0x12, 0x9a, 0x05, 0xc3, 0x76, 0xac, 0x0d, 0xbd, 0xac, 0xb5, - 0x59, 0x93, 0x34, 0x14, 0x54, 0x52, 0x42, 0xe3, 0x58, 0x63, 0xa3, 0x59, 0x32, 0x9b, 0xa4, 0x21, - 0x60, 0x76, 0x24, 0xeb, 0x05, 0x94, 0x38, 0x93, 0x39, 0x26, 0xbc, 0x63, 0x73, 0x9f, 0xe0, 0x13, - 0x4a, 0x9c, 0xc9, 0x98, 0xc9, 0x2d, 0x30, 0xa8, 0x95, 0xcb, 0x0d, 0x42, 0x2e, 0x88, 0x58, 0x1b, - 0x9a, 0x74, 0xc4, 0xd4, 0x70, 0xf4, 0x2c, 0x44, 0x85, 0x1f, 0x48, 0x61, 0x21, 0x9e, 0xc0, 0x9a, - 0x4f, 0xcf, 0x51, 0xfa, 0xc8, 0x43, 0xbd, 0x21, 0x94, 0x78, 0xd3, 0x8a, 0xa5, 0xba, 0x07, 0x7a, - 0x7d, 0xa8, 0x8f, 0x2a, 0xf1, 0x8a, 0xe5, 0x9c, 0xe0, 0xa4, 0x9f, 0xc7, 0xf2, 0xda, 0x7a, 0x20, - 0x29, 0xcd, 0x41, 0xb4, 0x6a, 0x62, 0x7c, 0x10, 0x04, 0x3b, 0x0d, 0x3f, 0xec, 0x73, 0x86, 0x39, - 0xbe, 0xc8, 0xed, 0x15, 0x07, 0x39, 0xfa, 0x8b, 0x00, 0x44, 0x85, 0x18, 0x0b, 0x45, 0xa8, 0xae, - 0xd9, 0x9b, 0x94, 0x2e, 0x9c, 0xed, 0x4b, 0x05, 0x14, 0x7a, 0x4d, 0xe4, 0xd8, 0xcd, 0x18, 0x34, - 0x04, 0xb8, 0x9c, 0x5c, 0x93, 0x75, 0xad, 0xea, 0x5a, 0x89, 0x36, 0xb8, 0x66, 0xad, 0x86, 0x2b, - 0x69, 0x89, 0x75, 0xe5, 0xf2, 0x59, 0x2e, 0x26, 0xe7, 0xe2, 0x76, 0x43, 0xab, 0x54, 0x5b, 0x6c, - 0x43, 0xd4, 0x36, 0x25, 0x14, 0x8e, 0x71, 0x06, 0xf6, 0x0b, 0xde, 0x92, 0x6e, 0x6b, 0xd8, 0x3c, - 0x97, 0x5c, 0x50, 0x84, 0x9e, 0x76, 0xed, 0xe3, 0x06, 0x73, 0x5c, 0x2f, 0xb0, 0xd9, 0x73, 0xd8, - 0xc8, 0x9a, 0xb5, 0x76, 0x4f, 0x64, 0x53, 0x6d, 0xcf, 0x5d, 0xd6, 0x3d, 0x81, 0x07, 0xc0, 0x6d, - 0x2a, 0x9e, 0xeb, 0x0b, 0xce, 0xaf, 0x64, 0x5f, 0xec, 0x1b, 0x9d, 0x67, 0xb8, 0x15, 0xe1, 0x41, - 0x45, 0xdf, 0xa8, 0xea, 0x45, 0xe2, 0x1d, 0x78, 0xf6, 0x10, 0xdc, 0x51, 0xae, 0xd8, 0x9b, 0xcd, - 0xf5, 0x71, 0xbc, 0xc3, 0x44, 0xd9, 0x2c, 0x9b, 0xee, 0xeb, 0x0c, 0x72, 0x45, 0x2f, 0xe8, 0x37, - 0xfe, 0x4a, 0x23, 0xe6, 0x48, 0x47, 0x7d, 0xdf, 0x7f, 0x64, 0x96, 0x61, 0x98, 0x1b, 0xab, 0xf4, - 0x4c, 0x95, 0xb5, 0xa0, 0xd2, 0x8e, 0x0f, 0xe4, 0xf2, 0xcb, 0x6f, 0xd1, 0x92, 0xa0, 0x0c, 0x71, - 0x28, 0xd1, 0xb1, 0x26, 0x35, 0xa3, 0xc0, 0x35, 0x2d, 0x7c, 0x2c, 0x86, 0xf1, 0x91, 0x7b, 0x67, - 0xc6, 0x57, 0x38, 0xe3, 0xb0, 0x87, 0x71, 0x95, 0x43, 0x33, 0xb3, 0x30, 0xb0, 0x1b, 0xae, 0x9f, - 0x71, 0xae, 0x84, 0xee, 0x25, 0x99, 0x87, 0x41, 0x4a, 0x52, 0x6c, 0x5a, 0xb6, 0x59, 0xa3, 0x09, - 0x62, 0x67, 0x9a, 0x9f, 0xbf, 0xc5, 0x82, 0x2a, 0x49, 0x60, 0xb3, 0x0e, 0x2a, 0x73, 0x2f, 0x8c, - 0x10, 0x09, 0xdd, 0x83, 0x5e, 0x36, 0xff, 0x23, 0x04, 0xf9, 0x97, 0x0f, 0xb3, 0xd8, 0x1b, 0x76, - 0x08, 0x3c, 0xbc, 0x9e, 0x95, 0x28, 0xeb, 0x36, 0xe6, 0x36, 0x7c, 0xfe, 0xab, 0x56, 0xa5, 0x1d, - 0xdf, 0x31, 0xc8, 0x8f, 0xbf, 0xd3, 0xba, 0x12, 0xf3, 0x0c, 0x39, 0x53, 0xad, 0x66, 0x0a, 0xb0, - 0xaf, 0xcb, 0xca, 0xf6, 0xc0, 0xf9, 0x04, 0xe7, 0x1c, 0xe9, 0x58, 0x5d, 0x42, 0xbb, 0x02, 0x42, - 0xee, 0xac, 0x47, 0x0f, 0x9c, 0x4f, 0x72, 0x4e, 0x89, 0x63, 0xc5, 0xb2, 0x10, 0xc6, 0xb3, 0x30, - 0x84, 0x4f, 0xea, 0xeb, 0xa6, 0xc5, 0x9f, 0x7b, 0x7b, 0xa0, 0x7b, 0x8a, 0xd3, 0x0d, 0x72, 0x20, - 0x7d, 0x0a, 0x26, 0x5c, 0xa7, 0x21, 0xba, 0x81, 0x0f, 0x40, 0x3d, 0x50, 0x3c, 0xcd, 0x29, 0xfa, - 0x89, 0x3d, 0x81, 0xce, 0x40, 0xa2, 0x6c, 0xf2, 0x34, 0xec, 0x0f, 0x7f, 0x86, 0xc3, 0xe3, 0x02, - 0xc3, 0x29, 0xea, 0x66, 0xbd, 0x59, 0x25, 0x39, 0xda, 0x9f, 0xe2, 0xcb, 0x82, 0x42, 0x60, 0x38, - 0xc5, 0x2e, 0xdc, 0xfa, 0x15, 0x41, 0x61, 0x79, 0xfc, 0x79, 0x37, 0x39, 0xeb, 0xad, 0x6e, 0x99, - 0x46, 0x2f, 0x83, 0x78, 0x96, 0x33, 0x00, 0x87, 0x10, 0x82, 0x3b, 0x21, 0xd6, 0xeb, 0x42, 0x7c, - 0x95, 0xc3, 0xa3, 0xba, 0x58, 0x01, 0xdc, 0x67, 0x22, 0xc9, 0x90, 0x77, 0x2b, 0xfe, 0x14, 0x5f, - 0xe3, 0x14, 0x49, 0x0f, 0x8c, 0x4f, 0xc3, 0xd6, 0x2d, 0x1b, 0x1f, 0xd5, 0x7b, 0x20, 0x79, 0x5e, - 0x4c, 0x83, 0x43, 0xb8, 0x2b, 0xd7, 0x75, 0xa3, 0xb8, 0xd9, 0x1b, 0xc3, 0x0b, 0xc2, 0x95, 0x02, - 0x43, 0x28, 0x30, 0xf3, 0xd4, 0xb4, 0x06, 0x3e, 0x5c, 0x57, 0x7b, 0x5a, 0x8e, 0xaf, 0x73, 0x8e, - 0x84, 0x03, 0xe2, 0x1e, 0x69, 0x1a, 0xbb, 0xa1, 0x79, 0x51, 0x78, 0xc4, 0x03, 0xe3, 0x5b, 0x0f, - 0x9f, 0x4c, 0x49, 0x27, 0xb1, 0x1b, 0xb6, 0x6f, 0x88, 0xad, 0xc7, 0xb0, 0x4b, 0x5e, 0x46, 0x5c, - 0x69, 0x0b, 0x1f, 0xc1, 0x7b, 0xa1, 0xf9, 0xa6, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0xfb, 0x61, 0x7f, - 0xd7, 0x54, 0xdf, 0x03, 0xd9, 0xb7, 0x38, 0xd9, 0xde, 0x2e, 0xe9, 0x9e, 0xa7, 0x84, 0xdd, 0x52, - 0x7e, 0x5b, 0xa4, 0x04, 0xbd, 0x8d, 0x6b, 0x85, 0xb4, 0xb1, 0x96, 0xb6, 0xb1, 0x3b, 0xaf, 0x7d, - 0x47, 0x78, 0x8d, 0x61, 0x5b, 0xbc, 0xb6, 0x06, 0x7b, 0x39, 0xe3, 0xee, 0xd6, 0xf5, 0x25, 0x91, - 0x58, 0x19, 0xba, 0xd0, 0xba, 0xba, 0xff, 0x0b, 0xa3, 0x8e, 0x3b, 0x45, 0x07, 0x66, 0xa9, 0xe4, - 0x60, 0xc0, 0x9f, 0xf9, 0x65, 0xce, 0x2c, 0x32, 0xbe, 0xd3, 0xc2, 0x59, 0x4b, 0x5a, 0x9d, 0x90, - 0x9f, 0x03, 0x59, 0x90, 0x37, 0x0d, 0x6c, 0xf0, 0xcd, 0xb2, 0x81, 0xcb, 0x58, 0xea, 0x81, 0xfa, - 0xbb, 0x6d, 0x4b, 0x55, 0xf0, 0xc0, 0x09, 0xf3, 0x02, 0xa4, 0x9c, 0x7e, 0x43, 0xad, 0xd4, 0xea, - 0x26, 0xb6, 0x96, 0x3b, 0x33, 0x7e, 0x4f, 0xac, 0x94, 0x83, 0x5b, 0xa0, 0xb0, 0x4c, 0x0e, 0x92, - 0xf4, 0xb2, 0xd7, 0x90, 0xfc, 0x3e, 0x27, 0x1a, 0x70, 0x51, 0x3c, 0x71, 0x60, 0xa7, 0x84, 0x3d, - 0x6f, 0x2f, 0xf9, 0xef, 0x07, 0x22, 0x71, 0x70, 0x08, 0x8b, 0xbe, 0xc1, 0xb6, 0x4a, 0x2c, 0xf9, - 0xbd, 0x7e, 0x95, 0xff, 0xff, 0x2a, 0xdf, 0xb3, 0xad, 0x85, 0x38, 0xb3, 0x48, 0xdc, 0xd3, 0x5a, - 0x2e, 0xfd, 0xc9, 0x1e, 0xbe, 0xea, 0x78, 0xa8, 0xa5, 0x5a, 0x66, 0xce, 0xc0, 0x40, 0x4b, 0xa9, - 0xf4, 0xa7, 0xfa, 0x18, 0xa7, 0x4a, 0x78, 0x2b, 0x65, 0x66, 0x1a, 0x42, 0xa4, 0xec, 0xf9, 0xc3, - 0x3f, 0xce, 0xe1, 0xd4, 0x3c, 0xf3, 0xdf, 0x10, 0x15, 0xe5, 0xce, 0x1f, 0xfa, 0x09, 0x0e, 0x75, - 0x20, 0x04, 0x2e, 0x4a, 0x9d, 0x3f, 0xfc, 0x93, 0x02, 0x2e, 0x20, 0x04, 0xde, 0xbb, 0x0b, 0x7f, - 0xf2, 0xa9, 0x10, 0x4f, 0x57, 0xc2, 0x77, 0xe4, 0x9d, 0x0f, 0xab, 0x71, 0xfe, 0xe8, 0x47, 0xf8, - 0xcd, 0x05, 0x22, 0x73, 0x12, 0xc2, 0x3d, 0x3a, 0xfc, 0xd3, 0x1c, 0xca, 0xec, 0xb1, 0x82, 0xc4, - 0x3d, 0x75, 0xcd, 0x1f, 0xfe, 0x19, 0x0e, 0xf7, 0xa2, 0xc8, 0xd0, 0x79, 0x5d, 0xf3, 0x27, 0xf8, - 0xac, 0x18, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x92, 0xe6, 0x8f, 0xfe, 0x9c, 0xf0, 0xba, 0x80, 0xe0, - 0x6e, 0x8a, 0x39, 0x69, 0xca, 0x1f, 0xff, 0x79, 0x8e, 0x77, 0x31, 0xc4, 0x03, 0x9e, 0x34, 0xe9, - 0x4f, 0xf1, 0xa8, 0xf0, 0x80, 0x07, 0x45, 0xb6, 0x51, 0x7b, 0xe9, 0xf3, 0x67, 0xfa, 0x82, 0xd8, - 0x46, 0x6d, 0x95, 0x8f, 0xac, 0x26, 0xcd, 0x16, 0xfe, 0x14, 0x5f, 0x14, 0xab, 0x49, 0xed, 0xc9, - 0x30, 0xda, 0x6b, 0x89, 0x3f, 0xc7, 0x97, 0xc4, 0x30, 0xda, 0x4a, 0x09, 0x56, 0x26, 0xa9, 0xb3, - 0x8e, 0xf8, 0xf3, 0x3d, 0xc6, 0xf9, 0x86, 0x3a, 0xca, 0x48, 0xe6, 0x3e, 0xd8, 0xdb, 0xbd, 0x86, - 0xf8, 0xb3, 0x3e, 0x7e, 0xb5, 0xad, 0xeb, 0xf7, 0x96, 0x10, 0x2c, 0x79, 0x23, 0xdd, 0xea, 0x87, - 0x3f, 0xed, 0x13, 0x57, 0x5b, 0x1f, 0xec, 0xbc, 0xe5, 0x03, 0x3b, 0x34, 0x70, 0x53, 0xb7, 0x3f, - 0xd7, 0x53, 0x9c, 0xcb, 0x03, 0x22, 0x5b, 0x83, 0x67, 0x6e, 0x7f, 0xfc, 0xd3, 0x62, 0x6b, 0x70, - 0x04, 0x82, 0xa3, 0x46, 0xb3, 0x5a, 0x25, 0xc1, 0x21, 0xed, 0xfc, 0x93, 0x06, 0xf9, 0x0f, 0xef, - 0xf3, 0x8d, 0x21, 0x00, 0x98, 0x43, 0xc3, 0x7a, 0x6d, 0x1d, 0x7d, 0xe0, 0x83, 0xfc, 0xe3, 0xfb, - 0x22, 0x21, 0x10, 0x6b, 0xdc, 0x4f, 0xc0, 0x1e, 0x1a, 0xe9, 0x19, 0xb6, 0x0f, 0xf6, 0x4f, 0xef, - 0xf3, 0xd7, 0xac, 0x2e, 0xc4, 0x25, 0x60, 0x2f, 0x6d, 0x77, 0x26, 0x78, 0xa7, 0x95, 0x80, 0x3e, - 0x68, 0x9e, 0x86, 0x7e, 0xf2, 0xcb, 0x0e, 0x5b, 0x2b, 0xfb, 0xa1, 0xff, 0xcc, 0xd1, 0xc2, 0x9e, - 0x38, 0xac, 0x66, 0x36, 0x74, 0xfc, 0x6a, 0xf9, 0x61, 0xff, 0xc2, 0xb1, 0x0e, 0x80, 0x80, 0x8b, - 0x9a, 0x65, 0xf7, 0x32, 0xef, 0xbf, 0x0a, 0xb0, 0x00, 0x90, 0x41, 0x93, 0xef, 0x17, 0xf4, 0x2d, - 0x3f, 0xec, 0xbb, 0x62, 0xd0, 0xdc, 0x1e, 0x13, 0x60, 0x8c, 0x7c, 0x65, 0x3f, 0x3d, 0xf0, 0x01, - 0xff, 0x8d, 0x83, 0x5d, 0x44, 0xf6, 0x60, 0xf7, 0xa3, 0x1d, 0x98, 0x37, 0xe7, 0x4d, 0x76, 0xa8, - 0x03, 0xef, 0x45, 0x41, 0x46, 0x1b, 0xac, 0xaf, 0x13, 0x86, 0x5e, 0xb1, 0x37, 0xf5, 0xc6, 0x04, - 0x16, 0x0d, 0x7e, 0x1c, 0x13, 0xc4, 0xaf, 0xa3, 0xbb, 0x3b, 0xc2, 0x49, 0xef, 0x87, 0xf0, 0x6a, - 0x73, 0x7d, 0x7d, 0x8b, 0xfc, 0xde, 0xc9, 0x6a, 0xae, 0xf3, 0x97, 0xd3, 0xe4, 0x6b, 0xfa, 0x4a, - 0x10, 0x06, 0xb0, 0x49, 0x21, 0xef, 0x03, 0xac, 0xbc, 0xa1, 0xe7, 0x37, 0x24, 0x19, 0x22, 0x74, - 0x0e, 0xc7, 0xa8, 0x59, 0xe0, 0x9e, 0x3d, 0x4a, 0x84, 0xfe, 0x5e, 0xef, 0x98, 0xa3, 0x99, 0xa4, - 0x47, 0xfc, 0x7d, 0x8e, 0x66, 0xd2, 0xd1, 0x4c, 0xb1, 0x1f, 0x42, 0x39, 0x9a, 0x29, 0x47, 0x73, - 0x9c, 0x9e, 0x93, 0x05, 0x1d, 0xcd, 0x71, 0x47, 0x33, 0x4d, 0x8f, 0x3a, 0x07, 0x1c, 0xcd, 0xb4, - 0xa3, 0x39, 0x41, 0x0f, 0x37, 0x43, 0x8e, 0xe6, 0x84, 0xa3, 0x39, 0x49, 0xcf, 0x34, 0x87, 0x1c, - 0xcd, 0x49, 0x47, 0x73, 0x8a, 0x9e, 0x63, 0x4a, 0x8e, 0xe6, 0x94, 0xa3, 0x39, 0x4d, 0x5f, 0x41, - 0xf7, 0x3b, 0x9a, 0xd3, 0xd2, 0x28, 0xf4, 0xb3, 0x99, 0x1e, 0xa5, 0xaf, 0x6c, 0x06, 0x51, 0xd5, - 0xcf, 0xa6, 0x7a, 0xd4, 0xd5, 0x1d, 0xa3, 0xaf, 0x99, 0x23, 0xae, 0xee, 0x98, 0xab, 0x9b, 0xa4, - 0x3f, 0x9b, 0x4c, 0xb9, 0xba, 0x49, 0x57, 0x37, 0x25, 0x0f, 0x90, 0x7d, 0xea, 0xea, 0xa6, 0x5c, - 0xdd, 0x71, 0x39, 0x49, 0x56, 0xc0, 0xd5, 0x1d, 0x77, 0x75, 0xd3, 0xf2, 0x20, 0x39, 0xae, 0x75, - 0x75, 0xd3, 0xd2, 0x1d, 0x10, 0xc7, 0xa5, 0x52, 0xf9, 0x1b, 0x46, 0xfa, 0x3a, 0x3b, 0x3e, 0x09, - 0xe3, 0x24, 0x26, 0xe8, 0xb2, 0xa2, 0x2d, 0xa0, 0x01, 0x4f, 0x4f, 0xd9, 0x04, 0xd0, 0xc7, 0x56, - 0x95, 0xfe, 0x1c, 0x2b, 0xfd, 0x5a, 0x00, 0x62, 0x6b, 0x97, 0x4c, 0xfa, 0xcb, 0x1d, 0xeb, 0x5f, - 0xbc, 0xb8, 0x62, 0xd0, 0x53, 0xc7, 0xe5, 0x34, 0x9d, 0x50, 0x80, 0x0f, 0x7a, 0xca, 0x9d, 0xd0, - 0xd4, 0xb4, 0x7c, 0x88, 0x4e, 0xc8, 0xd1, 0x4d, 0x4b, 0x13, 0x90, 0xf0, 0x4c, 0x68, 0x92, 0xbe, - 0xa1, 0x6e, 0x9d, 0x51, 0x40, 0x89, 0xbb, 0x33, 0x9a, 0xcc, 0x86, 0x81, 0x84, 0x3d, 0xf9, 0x67, - 0x5f, 0x32, 0xd3, 0x8f, 0xf6, 0x41, 0x9c, 0x9d, 0x74, 0xd1, 0x59, 0x91, 0x5b, 0xb1, 0x96, 0x76, - 0x8b, 0x0f, 0x03, 0x7d, 0xc7, 0xfa, 0xb4, 0x2d, 0x49, 0x01, 0x60, 0xa6, 0x24, 0xc2, 0xd9, 0x48, - 0xb2, 0x47, 0x7f, 0x73, 0x65, 0xec, 0xf6, 0x6d, 0x77, 0x10, 0xf1, 0xdd, 0x04, 0xcb, 0x6f, 0xe3, - 0x85, 0x8a, 0x61, 0x1f, 0x9b, 0x3c, 0x45, 0x1c, 0x5c, 0x74, 0x58, 0xa4, 0x02, 0x44, 0x67, 0x71, - 0x3f, 0x53, 0x46, 0x32, 0xf4, 0x50, 0xf6, 0xe4, 0x3f, 0xae, 0x8c, 0x4d, 0xf9, 0x30, 0xf2, 0xd4, - 0x33, 0xbe, 0xb4, 0x45, 0x58, 0x4f, 0x1c, 0x27, 0x70, 0x24, 0xa6, 0x39, 0x89, 0xd2, 0x4e, 0x8a, - 0xa1, 0x92, 0x03, 0x77, 0xfa, 0x2a, 0x3e, 0x98, 0x4d, 0xbd, 0x79, 0x65, 0x2c, 0xb1, 0xb4, 0xe5, - 0xca, 0xdd, 0xa1, 0x90, 0xab, 0x6c, 0x14, 0x22, 0xec, 0x2a, 0x3b, 0xf7, 0xea, 0x1b, 0x07, 0xf6, - 0xbc, 0x86, 0x9f, 0x5f, 0xe3, 0xe7, 0xf5, 0x37, 0x0e, 0x04, 0xde, 0xc5, 0xcf, 0x7b, 0xf8, 0x79, - 0xe8, 0xcd, 0x03, 0x81, 0x17, 0xf0, 0xf3, 0x12, 0x7e, 0x7e, 0x84, 0x9f, 0x57, 0xdf, 0x44, 0x3b, - 0xfc, 0xbc, 0x8e, 0xdf, 0xdf, 0xc6, 0xff, 0xef, 0xe2, 0xff, 0xf7, 0xf0, 0xff, 0x43, 0xbf, 0x3b, - 0xb0, 0xe7, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0xcf, 0xed, 0x16, 0xe5, 0x2e, 0x00, 0x00, + // 4043 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, + 0x75, 0xd6, 0xf0, 0x22, 0x91, 0x87, 0x14, 0x35, 0x1a, 0x29, 0xbb, 0xb3, 0x72, 0xcc, 0xd5, 0xd2, + 0x76, 0x2c, 0xdb, 0xb1, 0x64, 0xeb, 0xb2, 0x17, 0x6e, 0x13, 0x83, 0xa4, 0xb8, 0x5a, 0x6d, 0x25, + 0x51, 0x19, 0x4a, 0xf1, 0x3a, 0x7d, 0x18, 0x8c, 0x86, 0x3f, 0xa9, 0xd9, 0x1d, 0xce, 0x30, 0x33, + 0xc3, 0x5d, 0xcb, 0x4f, 0x5b, 0xb8, 0x17, 0x04, 0x45, 0x6f, 0x69, 0x81, 0x26, 0xae, 0xe3, 0xb6, + 0x01, 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xd0, 0xa7, 0xbe, 0xa4, 0xf5, 0x53, 0xe1, 0xbc, + 0x15, 0x45, 0x61, 0x78, 0x15, 0x03, 0x4d, 0x5b, 0xb7, 0x75, 0x1b, 0x03, 0x35, 0xea, 0x97, 0xe2, + 0xbf, 0xcd, 0x0c, 0x2f, 0xda, 0xa1, 0x82, 0x3a, 0x79, 0x92, 0xfe, 0x73, 0xce, 0xf7, 0xcd, 0xf9, + 0xcf, 0x7f, 0xfe, 0xff, 0x9c, 0xf9, 0x39, 0xf0, 0xfd, 0x35, 0x98, 0x6f, 0xd9, 0x76, 0xcb, 0x44, + 0x4b, 0x1d, 0xc7, 0xf6, 0xec, 0x83, 0x6e, 0x73, 0xa9, 0x81, 0x5c, 0xdd, 0x31, 0x3a, 0x9e, 0xed, + 0x2c, 0x12, 0x99, 0x34, 0x45, 0x2d, 0x16, 0xb9, 0x45, 0x61, 0x1b, 0xa6, 0xaf, 0x19, 0x26, 0x5a, + 0xf7, 0x0d, 0xeb, 0xc8, 0x93, 0x2e, 0x43, 0xa2, 0x69, 0x98, 0x48, 0x16, 0xe6, 0xe3, 0x0b, 0x99, + 0xe5, 0x47, 0x17, 0xfb, 0x40, 0x8b, 0xbd, 0x88, 0x5d, 0x2c, 0x56, 0x08, 0xa2, 0xf0, 0x4e, 0x02, + 0x66, 0x86, 0x68, 0x25, 0x09, 0x12, 0x96, 0xd6, 0xc6, 0x8c, 0xc2, 0x42, 0x5a, 0x21, 0xff, 0x4b, + 0x32, 0x4c, 0x74, 0x34, 0xfd, 0xb6, 0xd6, 0x42, 0x72, 0x8c, 0x88, 0xf9, 0x50, 0xca, 0x03, 0x34, + 0x50, 0x07, 0x59, 0x0d, 0x64, 0xe9, 0x47, 0x72, 0x7c, 0x3e, 0xbe, 0x90, 0x56, 0x42, 0x12, 0xe9, + 0x29, 0x98, 0xee, 0x74, 0x0f, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x30, 0x1f, 0x5f, 0x48, 0x2a, 0x22, + 0x55, 0xac, 0x07, 0xc6, 0x8f, 0xc3, 0xd4, 0x5d, 0xa4, 0xdd, 0x0e, 0x9b, 0x66, 0x88, 0x69, 0x0e, + 0x8b, 0x43, 0x86, 0x15, 0xc8, 0xb6, 0x91, 0xeb, 0x6a, 0x2d, 0xa4, 0x7a, 0x47, 0x1d, 0x24, 0x27, + 0xc8, 0xec, 0xe7, 0x07, 0x66, 0xdf, 0x3f, 0xf3, 0x0c, 0x43, 0xed, 0x1d, 0x75, 0x90, 0x54, 0x82, + 0x34, 0xb2, 0xba, 0x6d, 0xca, 0x90, 0x3c, 0x21, 0x7e, 0x55, 0xab, 0xdb, 0xee, 0x67, 0x49, 0x61, + 0x18, 0xa3, 0x98, 0x70, 0x91, 0x73, 0xc7, 0xd0, 0x91, 0x3c, 0x4e, 0x08, 0x1e, 0x1f, 0x20, 0xa8, + 0x53, 0x7d, 0x3f, 0x07, 0xc7, 0x49, 0x15, 0x48, 0xa3, 0x17, 0x3d, 0x64, 0xb9, 0x86, 0x6d, 0xc9, + 0x13, 0x84, 0xe4, 0xb1, 0x21, 0xab, 0x88, 0xcc, 0x46, 0x3f, 0x45, 0x80, 0x93, 0x2e, 0xc2, 0x84, + 0xdd, 0xf1, 0x0c, 0xdb, 0x72, 0xe5, 0xd4, 0xbc, 0xb0, 0x90, 0x59, 0xfe, 0xf8, 0xd0, 0x44, 0xa8, + 0x51, 0x1b, 0x85, 0x1b, 0x4b, 0x9b, 0x20, 0xba, 0x76, 0xd7, 0xd1, 0x91, 0xaa, 0xdb, 0x0d, 0xa4, + 0x1a, 0x56, 0xd3, 0x96, 0xd3, 0x84, 0xe0, 0xfc, 0xe0, 0x44, 0x88, 0x61, 0xc5, 0x6e, 0xa0, 0x4d, + 0xab, 0x69, 0x2b, 0x39, 0xb7, 0x67, 0x2c, 0x9d, 0x81, 0x71, 0xf7, 0xc8, 0xf2, 0xb4, 0x17, 0xe5, + 0x2c, 0xc9, 0x10, 0x36, 0x2a, 0xfc, 0x4f, 0x12, 0xa6, 0x46, 0x49, 0xb1, 0xab, 0x90, 0x6c, 0xe2, + 0x59, 0xca, 0xb1, 0xd3, 0xc4, 0x80, 0x62, 0x7a, 0x83, 0x38, 0xfe, 0x23, 0x06, 0xb1, 0x04, 0x19, + 0x0b, 0xb9, 0x1e, 0x6a, 0xd0, 0x8c, 0x88, 0x8f, 0x98, 0x53, 0x40, 0x41, 0x83, 0x29, 0x95, 0xf8, + 0x91, 0x52, 0xea, 0x26, 0x4c, 0xf9, 0x2e, 0xa9, 0x8e, 0x66, 0xb5, 0x78, 0x6e, 0x2e, 0x45, 0x79, + 0xb2, 0x58, 0xe5, 0x38, 0x05, 0xc3, 0x94, 0x1c, 0xea, 0x19, 0x4b, 0xeb, 0x00, 0xb6, 0x85, 0xec, + 0xa6, 0xda, 0x40, 0xba, 0x29, 0xa7, 0x4e, 0x88, 0x52, 0x0d, 0x9b, 0x0c, 0x44, 0xc9, 0xa6, 0x52, + 0xdd, 0x94, 0xae, 0x04, 0xa9, 0x36, 0x71, 0x42, 0xa6, 0x6c, 0xd3, 0x4d, 0x36, 0x90, 0x6d, 0xfb, + 0x90, 0x73, 0x10, 0xce, 0x7b, 0xd4, 0x60, 0x33, 0x4b, 0x13, 0x27, 0x16, 0x23, 0x67, 0xa6, 0x30, + 0x18, 0x9d, 0xd8, 0xa4, 0x13, 0x1e, 0x4a, 0x8f, 0x80, 0x2f, 0x50, 0x49, 0x5a, 0x01, 0x39, 0x85, + 0xb2, 0x5c, 0xb8, 0xa3, 0xb5, 0xd1, 0xdc, 0x65, 0xc8, 0xf5, 0x86, 0x47, 0x9a, 0x85, 0xa4, 0xeb, + 0x69, 0x8e, 0x47, 0xb2, 0x30, 0xa9, 0xd0, 0x81, 0x24, 0x42, 0x1c, 0x59, 0x0d, 0x72, 0xca, 0x25, + 0x15, 0xfc, 0xef, 0xdc, 0x25, 0x98, 0xec, 0x79, 0xfc, 0xa8, 0xc0, 0xc2, 0x97, 0xc6, 0x61, 0x76, + 0x58, 0xce, 0x0d, 0x4d, 0xff, 0x33, 0x30, 0x6e, 0x75, 0xdb, 0x07, 0xc8, 0x91, 0xe3, 0x84, 0x81, + 0x8d, 0xa4, 0x12, 0x24, 0x4d, 0xed, 0x00, 0x99, 0x72, 0x62, 0x5e, 0x58, 0xc8, 0x2d, 0x3f, 0x35, + 0x52, 0x56, 0x2f, 0x6e, 0x61, 0x88, 0x42, 0x91, 0xd2, 0xa7, 0x21, 0xc1, 0x8e, 0x38, 0xcc, 0xf0, + 0xe4, 0x68, 0x0c, 0x38, 0x17, 0x15, 0x82, 0x93, 0x1e, 0x82, 0x34, 0xfe, 0x4b, 0x63, 0x3b, 0x4e, + 0x7c, 0x4e, 0x61, 0x01, 0x8e, 0xab, 0x34, 0x07, 0x29, 0x92, 0x66, 0x0d, 0xc4, 0x4b, 0x83, 0x3f, + 0xc6, 0x0b, 0xd3, 0x40, 0x4d, 0xad, 0x6b, 0x7a, 0xea, 0x1d, 0xcd, 0xec, 0x22, 0x92, 0x30, 0x69, + 0x25, 0xcb, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x3c, 0x64, 0x68, 0x56, 0x1a, 0x56, 0x03, 0xbd, 0x48, + 0x4e, 0x9f, 0xa4, 0x42, 0x13, 0x75, 0x13, 0x4b, 0xf0, 0xe3, 0x6f, 0xb9, 0xb6, 0xc5, 0x97, 0x96, + 0x3c, 0x02, 0x0b, 0xc8, 0xe3, 0x2f, 0xf5, 0x1f, 0x7c, 0x0f, 0x0f, 0x9f, 0x5e, 0x7f, 0x2e, 0x16, + 0xbe, 0x1d, 0x83, 0x04, 0xd9, 0x6f, 0x53, 0x90, 0xd9, 0x7b, 0x61, 0xb7, 0xaa, 0xae, 0xd7, 0xf6, + 0xcb, 0x5b, 0x55, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x6d, 0xab, 0x56, 0xda, 0x13, 0x63, 0xfe, + 0x78, 0x73, 0x67, 0xef, 0xe2, 0xaa, 0x18, 0xf7, 0x01, 0xfb, 0x54, 0x90, 0x08, 0x1b, 0xac, 0x2c, + 0x8b, 0x49, 0x49, 0x84, 0x2c, 0x25, 0xd8, 0xbc, 0x59, 0x5d, 0xbf, 0xb8, 0x2a, 0x8e, 0xf7, 0x4a, + 0x56, 0x96, 0xc5, 0x09, 0x69, 0x12, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, 0xcf, 0x59, + 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, 0xf0, 0x19, + 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x0b, 0x7b, 0xd5, 0xba, 0x98, + 0xed, 0x71, 0x6b, 0x65, 0x59, 0x9c, 0xf4, 0x1f, 0x51, 0xdd, 0xd9, 0xdf, 0x16, 0x73, 0xd2, 0x34, + 0x4c, 0xd2, 0x47, 0x70, 0x27, 0xa6, 0xfa, 0x44, 0x17, 0x57, 0x45, 0x31, 0x70, 0x84, 0xb2, 0x4c, + 0xf7, 0x08, 0x2e, 0xae, 0x8a, 0x52, 0xa1, 0x02, 0x49, 0x92, 0x5d, 0x92, 0x04, 0xb9, 0xad, 0x52, + 0xb9, 0xba, 0xa5, 0xd6, 0x76, 0xf7, 0x36, 0x6b, 0x3b, 0xa5, 0x2d, 0x51, 0x08, 0x64, 0x4a, 0xf5, + 0x33, 0xfb, 0x9b, 0x4a, 0x75, 0x5d, 0x8c, 0x85, 0x65, 0xbb, 0xd5, 0xd2, 0x5e, 0x75, 0x5d, 0x8c, + 0x17, 0x74, 0x98, 0x1d, 0x76, 0xce, 0x0c, 0xdd, 0x19, 0xa1, 0x25, 0x8e, 0x9d, 0xb0, 0xc4, 0x84, + 0x6b, 0x60, 0x89, 0xbf, 0x2a, 0xc0, 0xcc, 0x90, 0xb3, 0x76, 0xe8, 0x43, 0x9e, 0x83, 0x24, 0x4d, + 0x51, 0x5a, 0x7d, 0x9e, 0x18, 0x7a, 0x68, 0x93, 0x84, 0x1d, 0xa8, 0x40, 0x04, 0x17, 0xae, 0xc0, + 0xf1, 0x13, 0x2a, 0x30, 0xa6, 0x18, 0x70, 0xf2, 0x65, 0x01, 0xe4, 0x93, 0xb8, 0x23, 0x0e, 0x8a, + 0x58, 0xcf, 0x41, 0x71, 0xb5, 0xdf, 0x81, 0x0b, 0x27, 0xcf, 0x61, 0xc0, 0x8b, 0xd7, 0x05, 0x38, + 0x33, 0xbc, 0x51, 0x19, 0xea, 0xc3, 0xa7, 0x61, 0xbc, 0x8d, 0xbc, 0x43, 0x9b, 0x17, 0xeb, 0x4f, + 0x0c, 0x29, 0x01, 0x58, 0xdd, 0x1f, 0x2b, 0x86, 0x0a, 0xd7, 0x90, 0xf8, 0x49, 0xdd, 0x06, 0xf5, + 0x66, 0xc0, 0xd3, 0x2f, 0xc4, 0xe0, 0x63, 0x43, 0xc9, 0x87, 0x3a, 0xfa, 0x30, 0x80, 0x61, 0x75, + 0xba, 0x1e, 0x2d, 0xc8, 0xf4, 0x7c, 0x4a, 0x13, 0x09, 0xd9, 0xfb, 0xf8, 0xec, 0xe9, 0x7a, 0xbe, + 0x3e, 0x4e, 0xf4, 0x40, 0x45, 0xc4, 0xe0, 0x72, 0xe0, 0x68, 0x82, 0x38, 0x9a, 0x3f, 0x61, 0xa6, + 0x03, 0xb5, 0xee, 0x19, 0x10, 0x75, 0xd3, 0x40, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb4, 0xb6, 0x61, + 0xb5, 0xc8, 0x01, 0x9c, 0x2a, 0x26, 0x9b, 0x9a, 0xe9, 0x22, 0x65, 0x8a, 0xaa, 0xeb, 0x5c, 0x8b, + 0x11, 0xa4, 0xca, 0x38, 0x21, 0xc4, 0x78, 0x0f, 0x82, 0xaa, 0x7d, 0x44, 0xe1, 0x1b, 0x13, 0x90, + 0x09, 0xb5, 0x75, 0xd2, 0x05, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x6f, 0xd5, 0x69, 0x24, 0x32, + 0x58, 0xb6, 0xcb, 0xda, 0xf5, 0x67, 0x60, 0x96, 0x98, 0xd8, 0x5d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, + 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xc2, 0x35, 0xd2, 0x1a, 0xcc, + 0x10, 0x44, 0xbb, 0x6b, 0x7a, 0x46, 0xc7, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0xc9, 0x41, 0xec, 0x7b, + 0x36, 0x8d, 0x2d, 0xb6, 0x99, 0x01, 0xf6, 0xc8, 0x95, 0xd6, 0xe1, 0x61, 0x02, 0x6b, 0x21, 0x0b, + 0x39, 0x9a, 0x87, 0x54, 0xf4, 0xf9, 0xae, 0x66, 0xba, 0xaa, 0x66, 0x35, 0xd4, 0x43, 0xcd, 0x3d, + 0x94, 0x67, 0x31, 0x41, 0x39, 0x26, 0x0b, 0xca, 0x39, 0x6c, 0xb8, 0xc1, 0xec, 0xaa, 0xc4, 0xac, + 0x64, 0x35, 0xae, 0x6b, 0xee, 0xa1, 0x54, 0x84, 0x33, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, 0xa9, + 0xfa, 0x21, 0xd2, 0x6f, 0xab, 0x5d, 0xaf, 0x79, 0x59, 0x7e, 0x28, 0xfc, 0x7c, 0xe2, 0x61, 0x9d, + 0xd8, 0x54, 0xb0, 0xc9, 0xbe, 0xd7, 0xbc, 0x2c, 0xd5, 0x21, 0x8b, 0x17, 0xa3, 0x6d, 0xbc, 0x84, + 0xd4, 0xa6, 0xed, 0x90, 0xca, 0x92, 0x1b, 0xb2, 0xb3, 0x43, 0x11, 0x5c, 0xac, 0x31, 0xc0, 0xb6, + 0xdd, 0x40, 0xc5, 0x64, 0x7d, 0xb7, 0x5a, 0x5d, 0x57, 0x32, 0x9c, 0xe5, 0x9a, 0xed, 0xe0, 0x84, + 0x6a, 0xd9, 0x7e, 0x80, 0x33, 0x34, 0xa1, 0x5a, 0x36, 0x0f, 0xef, 0x1a, 0xcc, 0xe8, 0x3a, 0x9d, + 0xb3, 0xa1, 0xab, 0xac, 0xc5, 0x77, 0x65, 0xb1, 0x27, 0x58, 0xba, 0xbe, 0x41, 0x0d, 0x58, 0x8e, + 0xbb, 0xd2, 0x15, 0xf8, 0x58, 0x10, 0xac, 0x30, 0x70, 0x7a, 0x60, 0x96, 0xfd, 0xd0, 0x35, 0x98, + 0xe9, 0x1c, 0x0d, 0x02, 0xa5, 0x9e, 0x27, 0x76, 0x8e, 0xfa, 0x61, 0x8f, 0x91, 0xd7, 0x36, 0x07, + 0xe9, 0x9a, 0x87, 0x1a, 0xf2, 0xd9, 0xb0, 0x75, 0x48, 0x21, 0x2d, 0x81, 0xa8, 0xeb, 0x2a, 0xb2, + 0xb4, 0x03, 0x13, 0xa9, 0x9a, 0x83, 0x2c, 0xcd, 0x95, 0xcf, 0x87, 0x8d, 0x73, 0xba, 0x5e, 0x25, + 0xda, 0x12, 0x51, 0x4a, 0x4f, 0xc2, 0xb4, 0x7d, 0x70, 0x4b, 0xa7, 0x99, 0xa5, 0x76, 0x1c, 0xd4, + 0x34, 0x5e, 0x94, 0x1f, 0x25, 0x61, 0x9a, 0xc2, 0x0a, 0x92, 0x57, 0xbb, 0x44, 0x2c, 0x3d, 0x01, + 0xa2, 0xee, 0x1e, 0x6a, 0x4e, 0x87, 0x94, 0x76, 0xb7, 0xa3, 0xe9, 0x48, 0x7e, 0x8c, 0x9a, 0x52, + 0xf9, 0x0e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x1a, 0x4d, 0x8f, 0x33, 0x3e, 0x4e, 0x33, 0x9b, 0xc8, + 0x18, 0xdb, 0x4d, 0x98, 0xed, 0x5a, 0x86, 0xe5, 0x21, 0xa7, 0xe3, 0x20, 0xdc, 0xc4, 0xd3, 0x9d, + 0x28, 0xff, 0xf3, 0xc4, 0x09, 0x6d, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xd3, 0x1d, 0x14, + 0x16, 0x8a, 0x90, 0x0d, 0xe7, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x6b, 0x6c, 0xa5, 0xb6, + 0x8e, 0xab, 0xe3, 0xe7, 0xaa, 0x62, 0x0c, 0x57, 0xe9, 0xad, 0xcd, 0xbd, 0xaa, 0xaa, 0xec, 0xef, + 0xec, 0x6d, 0x6e, 0x57, 0xc5, 0xf8, 0x93, 0xe9, 0xd4, 0x0f, 0x26, 0xc4, 0x7b, 0xf7, 0xee, 0xdd, + 0x8b, 0x15, 0xbe, 0x1b, 0x83, 0x5c, 0x6f, 0x67, 0x2c, 0xfd, 0x14, 0x9c, 0xe5, 0xaf, 0xb1, 0x2e, + 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x52, 0xb5, 0xad, 0xd1, 0xde, 0xd2, 0x8f, 0xf2, 0x2c, 0xb3, 0xaa, + 0x23, 0xef, 0x79, 0xc3, 0xc1, 0x89, 0xd8, 0xd6, 0x3c, 0x69, 0x0b, 0xce, 0x5b, 0xb6, 0xea, 0x7a, + 0x9a, 0xd5, 0xd0, 0x9c, 0x86, 0x1a, 0x5c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x89, + 0xf0, 0x59, 0x3e, 0x6e, 0xd9, 0x75, 0x66, 0x1c, 0x9c, 0x9d, 0x25, 0x66, 0xda, 0x97, 0x11, 0xf1, + 0x93, 0x32, 0xe2, 0x21, 0x48, 0xb7, 0xb5, 0x8e, 0x8a, 0x2c, 0xcf, 0x39, 0x22, 0xfd, 0x5c, 0x4a, + 0x49, 0xb5, 0xb5, 0x4e, 0x15, 0x8f, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0x9f, 0xe2, 0x90, 0x0d, + 0xf7, 0x74, 0xb8, 0x45, 0xd6, 0xc9, 0xf9, 0x2d, 0x90, 0x1d, 0xfe, 0xc8, 0x03, 0x3b, 0xc0, 0xc5, + 0x0a, 0x3e, 0xd8, 0x8b, 0xe3, 0xb4, 0xd3, 0x52, 0x28, 0x12, 0x17, 0x55, 0xbc, 0xa7, 0x11, 0xed, + 0xdf, 0x53, 0x0a, 0x1b, 0x49, 0x1b, 0x30, 0x7e, 0xcb, 0x25, 0xdc, 0xe3, 0x84, 0xfb, 0xd1, 0x07, + 0x73, 0xdf, 0xa8, 0x13, 0xf2, 0xf4, 0x8d, 0xba, 0xba, 0x53, 0x53, 0xb6, 0x4b, 0x5b, 0x0a, 0x83, + 0x4b, 0xe7, 0x20, 0x61, 0x6a, 0x2f, 0x1d, 0xf5, 0x96, 0x00, 0x22, 0x1a, 0x35, 0xf0, 0xe7, 0x20, + 0x71, 0x17, 0x69, 0xb7, 0x7b, 0x0f, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x09, 0x92, 0x24, 0x5e, + 0x12, 0x00, 0x8b, 0x98, 0x38, 0x26, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, + 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0xc6, 0x69, 0x10, 0xf0, 0xd6, 0xf0, + 0xc3, 0x20, 0x8e, 0xb1, 0x21, 0xe3, 0x10, 0xb8, 0x76, 0x7f, 0xbb, 0x5c, 0x55, 0xc4, 0x58, 0x78, + 0x79, 0x5d, 0xc8, 0x86, 0xdb, 0xb9, 0x1f, 0x4f, 0x4e, 0xfd, 0xb5, 0x00, 0x99, 0x50, 0x7b, 0x86, + 0x1b, 0x03, 0xcd, 0x34, 0xed, 0xbb, 0xaa, 0x66, 0x1a, 0x9a, 0xcb, 0x92, 0x02, 0x88, 0xa8, 0x84, + 0x25, 0xa3, 0x2e, 0xda, 0x8f, 0xc5, 0xf9, 0xd7, 0x04, 0x10, 0xfb, 0x5b, 0xbb, 0x3e, 0x07, 0x85, + 0x9f, 0xa8, 0x83, 0xaf, 0x0a, 0x90, 0xeb, 0xed, 0xe7, 0xfa, 0xdc, 0xbb, 0xf0, 0x13, 0x75, 0xef, + 0xed, 0x18, 0x4c, 0xf6, 0x74, 0x71, 0xa3, 0x7a, 0xf7, 0x79, 0x98, 0x36, 0x1a, 0xa8, 0xdd, 0xb1, + 0x3d, 0x64, 0xe9, 0x47, 0xaa, 0x89, 0xee, 0x20, 0x53, 0x2e, 0x90, 0x83, 0x62, 0xe9, 0xc1, 0x7d, + 0xe2, 0xe2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xcc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, 0x57, + 0xdd, 0xa9, 0xbc, 0xa0, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0xf9, 0x1d, 0x45, 0x34, 0xfa, 0xcc, + 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0x62, 0xbf, 0x53, 0xd2, 0x59, 0x18, 0xe6, 0x96, 0x38, 0x26, 0xcd, + 0xc0, 0xd4, 0x4e, 0x4d, 0xad, 0x6f, 0xae, 0x57, 0xd5, 0xea, 0xb5, 0x6b, 0xd5, 0xca, 0x5e, 0x9d, + 0xbe, 0x38, 0xfb, 0xd6, 0x7b, 0xbd, 0x9b, 0xfa, 0x95, 0x38, 0xcc, 0x0c, 0xf1, 0x44, 0x2a, 0xb1, + 0x9e, 0x9d, 0xbe, 0x46, 0x3c, 0x3d, 0x8a, 0xf7, 0x8b, 0xb8, 0x2b, 0xd8, 0xd5, 0x1c, 0x8f, 0xb5, + 0xf8, 0x4f, 0x00, 0x8e, 0x92, 0xe5, 0x19, 0x4d, 0x03, 0x39, 0xec, 0x9e, 0x81, 0x36, 0xf2, 0x53, + 0x81, 0x9c, 0x5e, 0x35, 0x7c, 0x12, 0xa4, 0x8e, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, + 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x50, 0x44, 0xae, 0xd9, 0xb4, 0x3c, 0xdf, 0xda, 0x42, 0x2d, 0xad, + 0xcf, 0x1a, 0x1f, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x02, 0x64, 0x1b, 0x76, 0x17, 0xb7, + 0x49, 0xd4, 0x0e, 0xd7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xfa, 0xd8, 0xe0, 0x36, 0x24, + 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x0e, 0x53, 0x5a, 0xab, 0xe5, 0x60, 0x72, 0x4e, 0x44, 0x3b, + 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x73, 0x37, 0x20, 0xc5, 0xe3, 0x80, 0x4b, 0x32, 0x8e, 0x84, 0xda, + 0xa1, 0x77, 0x52, 0xb1, 0x85, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x02, 0x64, 0x0d, 0x57, 0x0d, 0x2e, + 0x47, 0x63, 0xf3, 0xb1, 0x85, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x36, 0xac, 0xf0, 0x7a, 0x0c, 0x72, + 0xbd, 0x97, 0xbb, 0xd2, 0x3a, 0xa4, 0x4c, 0x5b, 0xd7, 0x48, 0x6a, 0xd1, 0x5f, 0x16, 0x16, 0x22, + 0xee, 0x83, 0x17, 0xb7, 0x98, 0xbd, 0xe2, 0x23, 0xe7, 0xfe, 0x5e, 0x80, 0x14, 0x17, 0x4b, 0x67, + 0x20, 0xd1, 0xd1, 0xbc, 0x43, 0x42, 0x97, 0x2c, 0xc7, 0x44, 0x41, 0x21, 0x63, 0x2c, 0x77, 0x3b, + 0x9a, 0x45, 0x52, 0x80, 0xc9, 0xf1, 0x18, 0xaf, 0xab, 0x89, 0xb4, 0x06, 0x69, 0xfb, 0xed, 0x76, + 0x1b, 0x59, 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0x2b, 0x4c, 0x2c, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, 0x19, + 0x66, 0x8f, 0x6d, 0x82, 0xd8, 0x8a, 0x5c, 0xe1, 0x1b, 0x17, 0xe1, 0x1c, 0xe7, 0x6d, 0x20, 0x4f, + 0xd3, 0x0f, 0x51, 0x23, 0x00, 0x8d, 0x93, 0x9b, 0xc3, 0xb3, 0xcc, 0x60, 0x9d, 0xe9, 0x39, 0xb6, + 0xf0, 0x3d, 0x01, 0xa6, 0xf9, 0x8b, 0x4a, 0xc3, 0x0f, 0xd6, 0x36, 0x80, 0x66, 0x59, 0xb6, 0x17, + 0x0e, 0xd7, 0x60, 0x2a, 0x0f, 0xe0, 0x16, 0x4b, 0x3e, 0x48, 0x09, 0x11, 0xcc, 0xb5, 0x01, 0x02, + 0xcd, 0x89, 0x61, 0x3b, 0x0f, 0x19, 0x76, 0x73, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, + 0xf8, 0x8d, 0x46, 0x9a, 0x85, 0xe4, 0x01, 0x6a, 0x19, 0x16, 0xbb, 0x4f, 0xa4, 0x03, 0x7e, 0x4b, + 0x99, 0xf0, 0x6f, 0x29, 0xcb, 0x37, 0x61, 0x46, 0xb7, 0xdb, 0xfd, 0xee, 0x96, 0xc5, 0xbe, 0xd7, + 0x6b, 0xf7, 0xba, 0xf0, 0x39, 0x08, 0x5a, 0xcc, 0xaf, 0xc6, 0xe2, 0x1b, 0xbb, 0xe5, 0xaf, 0xc7, + 0xe6, 0x36, 0x28, 0x6e, 0x97, 0x4f, 0x53, 0x41, 0x4d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, 0xe1, 0x27, + 0xe0, 0xe9, 0x96, 0xe1, 0x1d, 0x76, 0x0f, 0x16, 0x75, 0xbb, 0xbd, 0xd4, 0xb2, 0x5b, 0x76, 0xf0, + 0x73, 0x17, 0x1e, 0x91, 0x01, 0xf9, 0x8f, 0xfd, 0xe4, 0x95, 0xf6, 0xa5, 0x73, 0x91, 0xbf, 0x8f, + 0x15, 0x77, 0x60, 0x86, 0x19, 0xab, 0xe4, 0xce, 0x9d, 0xbe, 0x1a, 0x48, 0x0f, 0xbc, 0x77, 0x91, + 0xbf, 0xf5, 0x0e, 0xa9, 0xd5, 0xca, 0x34, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0x2a, 0xf0, 0xb1, + 0x1e, 0x3e, 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x5d, 0xc6, 0x38, 0x13, 0x62, 0xac, 0x33, 0x68, + 0xb1, 0x02, 0x93, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x0d, 0x98, 0x22, 0x24, + 0x7a, 0xd7, 0xf5, 0xec, 0x36, 0x39, 0xf4, 0x1e, 0x4c, 0xf3, 0x77, 0xef, 0xd0, 0x8d, 0x92, 0xc3, + 0xb0, 0x8a, 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x40, 0xba, 0x19, 0xc1, 0xf0, 0x06, 0x73, + 0xc4, 0xb7, 0x2f, 0x7e, 0x16, 0x66, 0xf1, 0xff, 0xe4, 0x4c, 0x0a, 0x7b, 0x12, 0x7d, 0xcb, 0x24, + 0x7f, 0xef, 0x65, 0xba, 0x17, 0x67, 0x7c, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0x6c, 0x21, 0xcf, 0x43, + 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xdf, 0xed, 0x5d, 0xc5, 0x0d, + 0x8a, 0x2c, 0x99, 0x66, 0x71, 0x1f, 0xce, 0x0e, 0xc9, 0x8a, 0x11, 0x38, 0x5f, 0x61, 0x9c, 0xb3, + 0x03, 0x99, 0x81, 0x69, 0x77, 0x81, 0xcb, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0xb7, 0x19, 0xa7, 0xc4, + 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x0d, 0x98, 0xbe, 0x83, 0x9c, 0x03, 0xdb, 0x65, 0x57, 0x23, 0x23, + 0xd0, 0xbd, 0xca, 0xe8, 0xa6, 0x18, 0x90, 0xdc, 0x95, 0x60, 0xae, 0x2b, 0x90, 0x6a, 0x6a, 0x3a, + 0x1a, 0x81, 0xe2, 0x2b, 0x8c, 0x62, 0x02, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x2d, 0x9b, 0x95, 0xa5, + 0x68, 0xf8, 0x6b, 0x0c, 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb1, 0x3b, 0x5d, 0x13, 0xd7, 0xac, 0x68, + 0x8a, 0xdf, 0xe1, 0x14, 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0xdf, 0xe5, 0x14, 0x6e, 0x28, 0x9e, + 0xcf, 0x41, 0xc6, 0xb6, 0xcc, 0x23, 0xdb, 0x1a, 0xc5, 0x89, 0xdf, 0x63, 0x0c, 0xc0, 0x20, 0x98, + 0xe0, 0x2a, 0xa4, 0x47, 0x5d, 0x88, 0xdf, 0x7f, 0x97, 0x6f, 0x0f, 0xbe, 0x02, 0x1b, 0x30, 0xc5, + 0x0f, 0x28, 0xc3, 0xb6, 0x46, 0xa0, 0xf8, 0x03, 0x46, 0x91, 0x0b, 0xc1, 0xd8, 0x34, 0x3c, 0xe4, + 0x7a, 0x2d, 0x34, 0x0a, 0xc9, 0xeb, 0x7c, 0x1a, 0x0c, 0xc2, 0x42, 0x79, 0x80, 0x2c, 0xfd, 0x70, + 0x34, 0x86, 0xaf, 0xf1, 0x50, 0x72, 0x0c, 0xa6, 0xa8, 0xc0, 0x64, 0x5b, 0x73, 0xdc, 0x43, 0xcd, + 0x1c, 0x69, 0x39, 0xfe, 0x90, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xd7, 0x3a, 0x0d, 0xcd, 0xd7, + 0x79, 0x44, 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x5c, 0x40, 0x9d, 0x86, 0xed, 0x1b, 0x7c, 0xeb, + 0x51, 0xec, 0x76, 0x98, 0xf1, 0x2a, 0xa4, 0x5d, 0xe3, 0xa5, 0x91, 0x68, 0xfe, 0x88, 0xaf, 0x34, + 0x01, 0x60, 0xf0, 0x0b, 0x70, 0x6e, 0x68, 0x99, 0x18, 0x81, 0xec, 0x8f, 0x19, 0xd9, 0x99, 0x21, + 0xa5, 0x82, 0x1d, 0x09, 0xa7, 0xa5, 0xfc, 0x13, 0x7e, 0x24, 0xa0, 0x3e, 0xae, 0x5d, 0xfc, 0xa2, + 0xe0, 0x6a, 0xcd, 0xd3, 0x45, 0xed, 0x4f, 0x79, 0xd4, 0x28, 0xb6, 0x27, 0x6a, 0x7b, 0x70, 0x86, + 0x31, 0x9e, 0x6e, 0x5d, 0xbf, 0xc9, 0x0f, 0x56, 0x8a, 0xde, 0xef, 0x5d, 0xdd, 0x9f, 0x81, 0x39, + 0x3f, 0x9c, 0xbc, 0x23, 0x75, 0xd5, 0xb6, 0xd6, 0x19, 0x81, 0xf9, 0x5b, 0x8c, 0x99, 0x9f, 0xf8, + 0x7e, 0x4b, 0xeb, 0x6e, 0x6b, 0x1d, 0x4c, 0x7e, 0x13, 0x64, 0x4e, 0xde, 0xb5, 0x1c, 0xa4, 0xdb, + 0x2d, 0xcb, 0x78, 0x09, 0x35, 0x46, 0xa0, 0xfe, 0xb3, 0xbe, 0xa5, 0xda, 0x0f, 0xc1, 0x31, 0xf3, + 0x26, 0x88, 0x7e, 0xaf, 0xa2, 0x1a, 0xed, 0x8e, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0xce, 0x57, 0xca, + 0xc7, 0x6d, 0x12, 0x58, 0xb1, 0x0a, 0x39, 0x32, 0x1c, 0x35, 0x25, 0xff, 0x82, 0x11, 0x4d, 0x06, + 0x28, 0x76, 0x70, 0xe8, 0x76, 0xbb, 0xa3, 0x39, 0xa3, 0x9c, 0x7f, 0x7f, 0xc9, 0x0f, 0x0e, 0x06, + 0x61, 0x07, 0x87, 0x77, 0xd4, 0x41, 0xb8, 0xda, 0x8f, 0xc0, 0xf0, 0x6d, 0x7e, 0x70, 0x70, 0x0c, + 0xa3, 0xe0, 0x0d, 0xc3, 0x08, 0x14, 0x7f, 0xc5, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x26, 0x28, 0xb4, + 0x0e, 0x6a, 0x19, 0xae, 0xe7, 0xd0, 0x3e, 0xf8, 0xc1, 0x54, 0xdf, 0x79, 0xb7, 0xb7, 0x09, 0x53, + 0x42, 0xd0, 0xe2, 0x0d, 0x98, 0xea, 0x6b, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x9f, 0x7d, 0x9f, + 0x1d, 0x46, 0xbd, 0x1d, 0x46, 0x71, 0x0b, 0xaf, 0x7b, 0x6f, 0x1f, 0x10, 0x4d, 0xf6, 0xf2, 0xfb, + 0xfe, 0xd2, 0xf7, 0xb4, 0x01, 0xc5, 0x6b, 0x30, 0xd9, 0xd3, 0x03, 0x44, 0x53, 0xfd, 0x1c, 0xa3, + 0xca, 0x86, 0x5b, 0x80, 0xe2, 0x1a, 0x24, 0x70, 0x3d, 0x8f, 0x86, 0xff, 0x3c, 0x83, 0x13, 0xf3, + 0xe2, 0xa7, 0x20, 0xc5, 0xeb, 0x78, 0x34, 0xf4, 0x17, 0x18, 0xd4, 0x87, 0x60, 0x38, 0xaf, 0xe1, + 0xd1, 0xf0, 0x5f, 0xe4, 0x70, 0x0e, 0xc1, 0xf0, 0xd1, 0x43, 0xf8, 0x37, 0xbf, 0x94, 0x60, 0xe7, + 0x30, 0x8f, 0xdd, 0x55, 0x98, 0x60, 0xc5, 0x3b, 0x1a, 0xfd, 0x05, 0xf6, 0x70, 0x8e, 0x28, 0x5e, + 0x82, 0xe4, 0x88, 0x01, 0xff, 0x65, 0x06, 0xa5, 0xf6, 0xc5, 0x0a, 0x64, 0x42, 0x05, 0x3b, 0x1a, + 0xfe, 0x2b, 0x0c, 0x1e, 0x46, 0x61, 0xd7, 0x59, 0xc1, 0x8e, 0x26, 0xf8, 0x55, 0xee, 0x3a, 0x43, + 0xe0, 0xb0, 0xf1, 0x5a, 0x1d, 0x8d, 0xfe, 0x35, 0x1e, 0x75, 0x0e, 0x29, 0x3e, 0x07, 0x69, 0xff, + 0xfc, 0x8d, 0xc6, 0xff, 0x3a, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0xd0, 0xf9, 0x1f, 0x4d, 0xf1, 0x45, + 0x1e, 0x81, 0x10, 0x0a, 0x6f, 0xa3, 0xfe, 0x9a, 0x1e, 0xcd, 0xf4, 0x1b, 0x7c, 0x1b, 0xf5, 0x95, + 0x74, 0xbc, 0x9a, 0xe4, 0x18, 0x8c, 0xa6, 0xf8, 0x4d, 0xbe, 0x9a, 0xc4, 0x1e, 0xbb, 0xd1, 0x5f, + 0x24, 0xa3, 0x39, 0x7e, 0x8b, 0xbb, 0xd1, 0x57, 0x23, 0x8b, 0xbb, 0x20, 0x0d, 0x16, 0xc8, 0x68, + 0xbe, 0x2f, 0x31, 0xbe, 0xe9, 0x81, 0xfa, 0x58, 0x7c, 0x1e, 0xce, 0x0c, 0x2f, 0x8e, 0xd1, 0xac, + 0x5f, 0x7e, 0xbf, 0xef, 0x75, 0x26, 0x5c, 0x1b, 0x8b, 0x7b, 0xc1, 0x29, 0x1b, 0x2e, 0x8c, 0xd1, + 0xb4, 0xaf, 0xbc, 0xdf, 0x7b, 0xd0, 0x86, 0xeb, 0x62, 0xb1, 0x04, 0x10, 0xd4, 0xa4, 0x68, 0xae, + 0x57, 0x19, 0x57, 0x08, 0x84, 0xb7, 0x06, 0x2b, 0x49, 0xd1, 0xf8, 0xaf, 0xf0, 0xad, 0xc1, 0x10, + 0x78, 0x6b, 0xf0, 0x6a, 0x14, 0x8d, 0x7e, 0x8d, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x85, 0x94, 0xd5, + 0x35, 0x4d, 0x9c, 0x5b, 0xd2, 0x83, 0x3f, 0x23, 0x92, 0xff, 0xe5, 0x43, 0x06, 0xe6, 0x80, 0xe2, + 0x1a, 0x24, 0x51, 0xfb, 0x00, 0x35, 0xa2, 0x90, 0xff, 0xfa, 0x21, 0x3f, 0x4f, 0xb0, 0x75, 0xf1, + 0x39, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x87, 0xec, 0x0b, 0x85, 0x00, + 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x6e, 0x2f, 0x01, 0x79, 0x01, 0xbf, 0x02, 0x13, + 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x56, 0x14, 0xfa, 0xdf, 0x19, 0x9a, 0xdb, 0xe3, 0x80, 0xb5, 0x6d, + 0x07, 0x79, 0x5a, 0xcb, 0x8d, 0xc2, 0xfe, 0x07, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x1b, + 0x65, 0xde, 0xff, 0xc9, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x47, 0x51, 0xd8, 0xf7, + 0xb8, 0xd3, 0xcc, 0xbe, 0xf8, 0x29, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x62, + 0xe0, 0x00, 0x81, 0x9f, 0xec, 0x7a, 0x0d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb3, 0x95, 0xe6, 0xf6, + 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd1, 0xe8, 0xb2, 0x8e, 0x26, 0x02, 0xfe, 0xc3, 0x0f, 0xfd, 0x97, + 0x5c, 0x1f, 0x53, 0xbe, 0x30, 0xfc, 0xb2, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x5e, 0xd3, 0xc1, 0x07, + 0x29, 0x90, 0x75, 0xbb, 0x7d, 0x60, 0xbb, 0x4b, 0x16, 0x32, 0xbc, 0x43, 0xe4, 0x2c, 0xd9, 0x16, + 0xb3, 0x95, 0xe2, 0xb6, 0x85, 0xe6, 0x4e, 0x77, 0x29, 0x57, 0x38, 0x07, 0xc9, 0x7a, 0xf7, 0xe0, + 0xe0, 0x48, 0x12, 0x21, 0xee, 0x76, 0x0f, 0xd8, 0x57, 0x25, 0xf8, 0xdf, 0xc2, 0x5b, 0x71, 0x98, + 0x2c, 0x99, 0xe6, 0xde, 0x51, 0x07, 0xb9, 0x35, 0x0b, 0xd5, 0x9a, 0x92, 0x0c, 0xe3, 0x64, 0x16, + 0xcf, 0x12, 0x33, 0xe1, 0xfa, 0x98, 0xc2, 0xc6, 0xbe, 0x66, 0x99, 0xdc, 0x55, 0xc6, 0x7c, 0xcd, + 0xb2, 0xaf, 0x59, 0xa1, 0x57, 0x95, 0xbe, 0x66, 0xc5, 0xd7, 0xac, 0x92, 0x0b, 0xcb, 0xb8, 0xaf, + 0x59, 0xf5, 0x35, 0x6b, 0xe4, 0x42, 0x7e, 0xd2, 0xd7, 0xac, 0xf9, 0x9a, 0x8b, 0xe4, 0x0a, 0x3e, + 0xe1, 0x6b, 0x2e, 0xfa, 0x9a, 0x4b, 0xe4, 0xe6, 0x7d, 0xda, 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, + 0x6d, 0xbb, 0xe4, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0xf3, 0x91, 0x09, 0x5f, 0x73, 0x45, 0x9a, + 0x83, 0x09, 0x3a, 0xb3, 0x67, 0xc8, 0x4f, 0xb2, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, + 0x92, 0x4f, 0x44, 0xc6, 0x03, 0xdd, 0xb3, 0x81, 0x6e, 0x99, 0x7c, 0x28, 0x2d, 0x06, 0xba, 0xe5, + 0x40, 0xb7, 0x22, 0x4f, 0xe2, 0xc5, 0x0f, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, + 0x74, 0xab, 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x1a, 0x32, + 0x6e, 0xf7, 0x40, 0x65, 0x5f, 0x10, 0x90, 0x4f, 0x51, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, + 0xeb, 0xf5, 0x31, 0x05, 0xdc, 0xee, 0x01, 0x3b, 0x1d, 0xcb, 0x59, 0x20, 0x97, 0x09, 0x2a, 0xf9, + 0x00, 0xb3, 0xf0, 0xa6, 0x00, 0xe9, 0xbd, 0xbb, 0x36, 0xf9, 0x41, 0xd6, 0xfd, 0x7f, 0x5e, 0x5c, + 0xee, 0xf4, 0xca, 0x2a, 0xf9, 0xcd, 0x2c, 0x7d, 0x5d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, + 0x90, 0x09, 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x09, 0x2d, 0x93, 0xaf, 0x4b, 0x7a, 0x67, + 0x24, 0x28, 0x99, 0x60, 0x46, 0xcb, 0xe5, 0x24, 0xe0, 0xb4, 0xc7, 0x7f, 0xbc, 0xbb, 0x76, 0xe1, + 0x8b, 0x31, 0xc8, 0xd0, 0xfb, 0x47, 0x32, 0x2b, 0xfc, 0x28, 0xda, 0x8f, 0x1f, 0x31, 0x37, 0xc6, + 0x14, 0x2e, 0x90, 0x14, 0x00, 0x6a, 0x8a, 0x33, 0x9c, 0x7a, 0x52, 0x7e, 0xe6, 0x1f, 0xdf, 0x3a, + 0xff, 0xc9, 0x13, 0x77, 0x10, 0x8e, 0xdd, 0x12, 0x3d, 0x5d, 0x17, 0xf7, 0x0d, 0xcb, 0x7b, 0x76, + 0xf9, 0x32, 0x0e, 0x70, 0xc0, 0x22, 0xed, 0x43, 0xaa, 0xa2, 0xb9, 0xe4, 0xf3, 0x32, 0xe2, 0x7a, + 0xa2, 0x7c, 0xe9, 0x7f, 0xdf, 0x3a, 0xbf, 0x12, 0xc1, 0xc8, 0x0e, 0xbe, 0xc5, 0xed, 0x23, 0xcc, + 0x7a, 0x71, 0x15, 0xc3, 0xaf, 0x8f, 0x29, 0x3e, 0x95, 0xb4, 0xcc, 0x5d, 0xdd, 0xd1, 0xda, 0xf4, + 0x33, 0x9a, 0x78, 0x59, 0x3c, 0x7e, 0xeb, 0x7c, 0x76, 0xfb, 0x28, 0x90, 0x07, 0xae, 0xe0, 0x51, + 0x39, 0x05, 0xe3, 0xd4, 0xd5, 0xf2, 0xfa, 0x1b, 0xf7, 0xf3, 0x63, 0x6f, 0xde, 0xcf, 0x8f, 0xfd, + 0xc3, 0xfd, 0xfc, 0xd8, 0xdb, 0xf7, 0xf3, 0xc2, 0x7b, 0xf7, 0xf3, 0xc2, 0x07, 0xf7, 0xf3, 0xc2, + 0xbd, 0xe3, 0xbc, 0xf0, 0xb5, 0xe3, 0xbc, 0xf0, 0xcd, 0xe3, 0xbc, 0xf0, 0x9d, 0xe3, 0xbc, 0xf0, + 0xc6, 0x71, 0x7e, 0xec, 0xcd, 0xe3, 0xfc, 0xd8, 0xdb, 0xc7, 0x79, 0xe1, 0x07, 0xc7, 0xf9, 0xb1, + 0xf7, 0x8e, 0xf3, 0xc2, 0x07, 0xc7, 0xf9, 0xb1, 0x7b, 0xdf, 0xcf, 0x8f, 0xfd, 0x5f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x62, 0x75, 0xc3, 0x94, 0xd7, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3403,27 +3423,10 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3566,7 +3569,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -3635,7 +3638,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -3673,7 +3676,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -3722,7 +3725,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3730,43 +3733,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4320,42 +4323,46 @@ func valueToStringOne(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 573 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0xbd, 0x6e, 0x1a, 0x4f, - 0x10, 0x00, 0x70, 0x8e, 0x6f, 0x06, 0xf8, 0x9b, 0xff, 0x55, 0x13, 0x17, 0x10, 0x91, 0x44, 0x4a, - 0x11, 0x73, 0x70, 0x1f, 0x80, 0xcb, 0x9c, 0xa3, 0x28, 0x0d, 0x41, 0xc2, 0x76, 0x6d, 0x71, 0xe4, - 0x20, 0x48, 0xc0, 0x5a, 0xdc, 0x22, 0x8b, 0xce, 0xcf, 0x90, 0xa7, 0x48, 0x99, 0x32, 0x8f, 0xe0, - 0xd2, 0x65, 0x94, 0x02, 0xd9, 0xa4, 0x49, 0xe9, 0xd2, 0x4a, 0x95, 0xd9, 0x3d, 0xbc, 0x1b, 0x29, - 0x8a, 0xd2, 0xa4, 0x18, 0xed, 0xee, 0xfd, 0x76, 0x87, 0x99, 0xdb, 0x03, 0x70, 0xc4, 0xe6, 0x01, - 0x8b, 0xac, 0x45, 0x38, 0xe5, 0xef, 0xc3, 0xa5, 0xc5, 0x16, 0x61, 0xe3, 0x7c, 0xc9, 0x38, 0x33, - 0x53, 0x34, 0xdd, 0x3f, 0x98, 0xd0, 0xe3, 0x55, 0xd0, 0xa0, 0x5d, 0xd6, 0x84, 0x4d, 0x98, 0x25, - 0x2d, 0x58, 0x8d, 0xe5, 0x4a, 0x2e, 0xe4, 0x2c, 0x3e, 0x53, 0x7f, 0x04, 0x99, 0xe3, 0x55, 0x10, - 0xac, 0xcd, 0x0a, 0xa4, 0xa2, 0x55, 0x80, 0xc6, 0x63, 0xe3, 0x79, 0x61, 0x20, 0xa6, 0xf5, 0x4d, - 0x0a, 0xca, 0x2f, 0x67, 0xb3, 0x93, 0xf5, 0x79, 0x18, 0xf5, 0x17, 0x61, 0x7f, 0x6c, 0x22, 0x64, - 0x5f, 0x4f, 0xc3, 0xd9, 0xbb, 0x96, 0xdc, 0x66, 0xbc, 0x49, 0x0c, 0xb2, 0x63, 0xb9, 0x56, 0x62, - 0x63, 0x92, 0x24, 0xa9, 0xc4, 0x56, 0xe2, 0x60, 0x8a, 0x24, 0xa3, 0xc4, 0x51, 0xe2, 0x62, 0x9a, - 0x24, 0xa5, 0xc4, 0x55, 0xe2, 0x61, 0x86, 0xa4, 0xac, 0xc4, 0x53, 0xd2, 0xc6, 0x2c, 0x49, 0x5a, - 0x49, 0x5b, 0x49, 0x07, 0x73, 0x24, 0xff, 0x2b, 0xe9, 0x28, 0xe9, 0x62, 0x9e, 0xc4, 0x54, 0xd2, - 0x55, 0x72, 0x88, 0x05, 0x92, 0x9c, 0x92, 0x43, 0x73, 0x1f, 0x72, 0x71, 0xa7, 0x4d, 0x04, 0xa2, - 0x3d, 0xa2, 0x5c, 0xdc, 0x6a, 0x53, 0x5b, 0x0b, 0x8b, 0x64, 0x59, 0x6d, 0x2d, 0x6d, 0x36, 0x96, - 0xc8, 0x2a, 0xda, 0x6c, 0x6d, 0x0e, 0x96, 0xc9, 0xf2, 0xda, 0x1c, 0x6d, 0x2e, 0xfe, 0x27, 0x6e, - 0x40, 0x9b, 0xab, 0xcd, 0xc3, 0x3d, 0xb2, 0x92, 0x36, 0xcf, 0x3c, 0x80, 0x22, 0x5d, 0xd5, 0xd9, - 0x3c, 0x8c, 0xa2, 0xe1, 0x24, 0xc4, 0x0a, 0x79, 0xd1, 0x86, 0x86, 0xf8, 0x26, 0xe4, 0xb5, 0xd2, - 0x5e, 0xa0, 0x0d, 0xbd, 0xd8, 0xfd, 0x12, 0x00, 0x0f, 0x23, 0x7e, 0x46, 0xce, 0xc6, 0xf5, 0x6b, - 0x03, 0x0a, 0x27, 0x17, 0xac, 0x2f, 0x16, 0xd1, 0x3f, 0xbe, 0xdc, 0x87, 0xa2, 0x1d, 0x17, 0xeb, - 0xb2, 0x21, 0x63, 0x57, 0xb4, 0xa3, 0x1b, 0x72, 0x3c, 0x7c, 0x22, 0x1b, 0x52, 0xe6, 0x99, 0x16, - 0x94, 0x7e, 0x69, 0xc8, 0xc6, 0xa7, 0xbf, 0x75, 0x64, 0x0c, 0x8a, 0xba, 0x23, 0xdb, 0xcf, 0x80, - 0xf8, 0xec, 0xc5, 0xc0, 0x2f, 0x58, 0xfd, 0x43, 0x12, 0x8a, 0x47, 0xab, 0x88, 0xb3, 0xb9, 0xec, - 0x4a, 0xfc, 0xd4, 0x31, 0x5f, 0x4e, 0x17, 0x93, 0xf5, 0xae, 0x0c, 0x7a, 0x77, 0x51, 0xfc, 0xc0, - 0x1c, 0x00, 0xc4, 0x5b, 0xc5, 0x17, 0x1e, 0x57, 0xe2, 0x37, 0xbf, 0x6e, 0x6a, 0x2f, 0xfe, 0xf8, - 0x0f, 0x12, 0xef, 0xce, 0x1a, 0xc9, 0x33, 0x8d, 0xd3, 0xe9, 0x82, 0xb7, 0xec, 0xae, 0x78, 0xc1, - 0x23, 0x95, 0xc5, 0x3c, 0x85, 0xfc, 0xd1, 0x30, 0xe2, 0x32, 0xa3, 0x28, 0x3d, 0xed, 0x77, 0x7e, - 0x6c, 0x6a, 0xce, 0x5f, 0x32, 0xd2, 0x09, 0x4e, 0x27, 0x1a, 0xbd, 0xb5, 0xc8, 0xda, 0x76, 0xc5, - 0x71, 0x4a, 0x9c, 0x1f, 0xed, 0x52, 0x99, 0xf6, 0x43, 0xa9, 0x6f, 0x87, 0xf3, 0x10, 0x9f, 0x89, - 0xbf, 0x8b, 0x5f, 0xd9, 0x6e, 0x6a, 0xa5, 0xde, 0x5a, 0x3f, 0xd7, 0xa5, 0x88, 0x95, 0x9f, 0x87, - 0x6c, 0xbc, 0xf2, 0x5f, 0x5d, 0xdd, 0x56, 0x13, 0xd7, 0x14, 0x5f, 0x28, 0x6e, 0x6e, 0xab, 0xc6, - 0x1d, 0xc5, 0x3d, 0xc5, 0xe5, 0xb6, 0x6a, 0x7c, 0xa4, 0xf8, 0x44, 0xf1, 0x99, 0xe2, 0x6a, 0x4b, - 0xfb, 0x28, 0x6e, 0x68, 0xfe, 0x9d, 0xc6, 0x3b, 0x1a, 0xef, 0x69, 0xbc, 0xfc, 0x56, 0x4d, 0xfc, - 0x0c, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xaa, 0xe1, 0x2b, 0x78, 0x04, 0x00, 0x00, + // 598 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0x1b, 0x3f, + 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0xc2, 0x97, 0x7c, 0x6f, 0x72, 0x19, 0x8c, 0x95, 0xb6, + 0x92, 0x87, 0x92, 0x90, 0x4b, 0xc2, 0x8f, 0xb1, 0x47, 0x55, 0x65, 0xa1, 0x48, 0x07, 0xcc, 0x28, + 0x47, 0x4d, 0x88, 0x44, 0xce, 0x08, 0xfb, 0x84, 0xb2, 0xf1, 0x37, 0xf4, 0xaf, 0xe8, 0xd8, 0xb1, + 0x7f, 0x02, 0x23, 0x63, 0xd5, 0x21, 0xe2, 0xae, 0x4b, 0x47, 0x46, 0xd4, 0xa9, 0xf2, 0x1d, 0xb1, + 0x2b, 0x55, 0x55, 0x97, 0x4e, 0xb9, 0xf7, 0x3e, 0xe7, 0x97, 0xf7, 0xce, 0x36, 0x26, 0xa7, 0x72, + 0x12, 0x49, 0xd5, 0x8e, 0xc5, 0x58, 0x9f, 0x8b, 0xab, 0xb6, 0x8c, 0x45, 0xeb, 0xf2, 0x4a, 0x6a, + 0xe9, 0x95, 0x64, 0x2c, 0xd6, 0x36, 0x46, 0x63, 0x7d, 0x9e, 0x44, 0xad, 0x53, 0x39, 0x69, 0x8f, + 0xe4, 0x48, 0xb6, 0x73, 0x8b, 0x92, 0xb3, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58, 0xd3, 0x7c, 0x86, + 0xcb, 0x87, 0x49, 0x14, 0x4d, 0xbd, 0x06, 0x2e, 0xa9, 0x24, 0x22, 0xc0, 0x80, 0x2f, 0x87, 0xe6, + 0xb1, 0x39, 0x2b, 0xe1, 0x95, 0xd7, 0x17, 0x17, 0x47, 0xd3, 0x4b, 0xa1, 0x0e, 0x62, 0x71, 0x70, + 0xe6, 0x11, 0x5c, 0x79, 0x3b, 0x16, 0x17, 0xef, 0x3b, 0xf9, 0x6b, 0x30, 0x40, 0xe1, 0x53, 0x6c, + 0xc5, 0x27, 0x0b, 0x0c, 0xf8, 0x82, 0x15, 0xdf, 0x4a, 0x97, 0x94, 0x18, 0xf0, 0xb2, 0x95, 0xae, + 0x95, 0x1e, 0x59, 0x64, 0xc0, 0x4b, 0x56, 0x7a, 0x56, 0xfa, 0xa4, 0xcc, 0x80, 0xaf, 0x58, 0xe9, + 0x5b, 0xd9, 0x22, 0x15, 0x06, 0x7c, 0xd1, 0xca, 0x96, 0x95, 0x6d, 0xb2, 0xc4, 0x80, 0xff, 0x6f, + 0x65, 0xdb, 0xca, 0x0e, 0xa9, 0x32, 0xe0, 0x9e, 0x95, 0x1d, 0x2b, 0xbb, 0x64, 0x99, 0x01, 0x5f, + 0xb2, 0xb2, 0xeb, 0xad, 0xe1, 0xa5, 0x62, 0xb2, 0x4d, 0x82, 0x19, 0xf0, 0xd5, 0x01, 0x0a, 0xe7, + 0x09, 0x67, 0x1d, 0x52, 0x63, 0xc0, 0x2b, 0xce, 0x3a, 0xce, 0x7c, 0x52, 0x67, 0xc0, 0x1b, 0xce, + 0x7c, 0x67, 0x5d, 0xb2, 0xc2, 0x80, 0x57, 0x9d, 0x75, 0x9d, 0xf5, 0xc8, 0x7f, 0x66, 0x07, 0x9c, + 0xf5, 0x9c, 0xf5, 0xc9, 0x2a, 0x03, 0x5e, 0x77, 0xd6, 0xf7, 0x36, 0x70, 0x4d, 0x25, 0xd1, 0xc9, + 0x44, 0x28, 0x35, 0x1c, 0x09, 0xd2, 0x60, 0xc0, 0x6b, 0x3e, 0x6e, 0x99, 0x33, 0x91, 0x6f, 0xeb, + 0x00, 0x85, 0x58, 0x25, 0xd1, 0x7e, 0xe1, 0x41, 0x1d, 0x63, 0x2d, 0x94, 0x3e, 0x91, 0xb1, 0x90, + 0x67, 0xcd, 0x3b, 0xc0, 0xcb, 0x47, 0xd7, 0xf2, 0xc0, 0x04, 0xea, 0x1f, 0x6f, 0xee, 0xbc, 0xe9, + 0x6e, 0x8f, 0x34, 0xf3, 0x81, 0x20, 0x9c, 0x27, 0x9c, 0xf5, 0xc9, 0xf3, 0x7c, 0x20, 0x6b, 0x7d, + 0xaf, 0x8d, 0xeb, 0xbf, 0x0c, 0xe4, 0x93, 0x17, 0xbf, 0x4d, 0x04, 0x61, 0xcd, 0x4d, 0xe4, 0x07, + 0x65, 0x6c, 0x8e, 0xbd, 0xf9, 0xd1, 0xd7, 0xb2, 0xf9, 0x61, 0x01, 0xd7, 0xf6, 0x12, 0xa5, 0xe5, + 0x24, 0x9f, 0xca, 0xfc, 0xd5, 0xa1, 0xbe, 0x1a, 0xc7, 0xa3, 0xe9, 0x53, 0x1b, 0x28, 0x9c, 0x27, + 0xbc, 0x10, 0xe3, 0xe2, 0x55, 0x73, 0xc2, 0x8b, 0x4e, 0x82, 0xcd, 0xaf, 0xb3, 0xf5, 0x57, 0x7f, + 0xbc, 0x41, 0xe6, 0xdb, 0xb5, 0x4f, 0xf3, 0x35, 0xad, 0xe3, 0x71, 0xac, 0x3b, 0xfe, 0x8e, 0xf9, + 0xc0, 0xae, 0x8a, 0x77, 0x8c, 0xab, 0x7b, 0x43, 0xa5, 0xf3, 0x8a, 0xa6, 0xf5, 0xc5, 0x60, 0xfb, + 0xc7, 0x6c, 0xbd, 0xfb, 0x97, 0x8a, 0x43, 0xa5, 0xf5, 0xf4, 0x52, 0xb4, 0xf6, 0xa7, 0xa6, 0xea, + 0x56, 0xcf, 0x2c, 0x1f, 0xa0, 0xd0, 0x96, 0xf2, 0xfc, 0x79, 0xab, 0xef, 0x86, 0x13, 0x41, 0x5e, + 0x9a, 0xeb, 0x12, 0x34, 0xb2, 0xd9, 0x7a, 0x7d, 0x7f, 0xea, 0xf2, 0xae, 0x15, 0x13, 0x05, 0x55, + 0x5c, 0x29, 0x5a, 0x0d, 0xde, 0xdc, 0xa6, 0x14, 0xdd, 0xa5, 0x14, 0x7d, 0x49, 0x29, 0xba, 0x4f, + 0x29, 0x3c, 0xa4, 0x14, 0x1e, 0x53, 0x0a, 0x37, 0x19, 0x85, 0x8f, 0x19, 0x85, 0x4f, 0x19, 0x85, + 0xcf, 0x19, 0x85, 0xdb, 0x8c, 0xa2, 0xbb, 0x8c, 0xa2, 0xfb, 0x8c, 0xc2, 0xf7, 0x8c, 0xa2, 0x87, + 0x8c, 0xc2, 0x63, 0x46, 0xd1, 0xcd, 0x37, 0x8a, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x27, + 0x4d, 0xb9, 0x78, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto index 0c88ac86..66d4b449 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go index fdbacc07..ba30505a 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go @@ -36,18 +36,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -70,18 +70,18 @@ func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -104,18 +104,18 @@ func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -138,18 +138,18 @@ func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -256,9 +256,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,9 +273,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -290,9 +290,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,9 +307,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -324,9 +324,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -341,9 +341,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -358,9 +358,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -375,9 +375,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -394,12 +394,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -409,12 +409,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestAllTypesOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,12 +424,12 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { func TestTwoOneofsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -439,12 +439,12 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { func TestCustomOneofVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -508,13 +508,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -530,13 +530,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -552,13 +552,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -574,13 +574,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go index 0a632930..63958ee3 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -44,7 +42,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -89,49 +89,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -576,19 +576,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -817,16 +817,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -881,11 +881,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -987,240 +987,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3727 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x1b, 0xe7, - 0xb5, 0x36, 0xc5, 0x45, 0xe4, 0x21, 0x45, 0x51, 0x23, 0xc5, 0xa6, 0x15, 0xc7, 0x8a, 0xe9, 0x2c, - 0x8e, 0x93, 0x48, 0xb6, 0x64, 0x79, 0x61, 0xee, 0x4d, 0x20, 0x4a, 0xb4, 0x22, 0x43, 0x12, 0x75, - 0x47, 0x62, 0xe2, 0xe4, 0x3e, 0x0c, 0x46, 0xe4, 0x88, 0xa2, 0x4d, 0xce, 0xf0, 0x72, 0x86, 0xb6, - 0x95, 0xa7, 0x5c, 0xe4, 0x2e, 0x08, 0x2e, 0x6e, 0x97, 0xb4, 0x40, 0xb3, 0xb7, 0x09, 0xd0, 0x26, - 0x4d, 0xb7, 0xa4, 0x1b, 0x8a, 0x3e, 0x15, 0x28, 0xd2, 0xe6, 0xa9, 0x48, 0xfb, 0x54, 0x14, 0x85, - 0x91, 0xa4, 0x01, 0x9a, 0xb6, 0x69, 0x9b, 0x02, 0x06, 0x1a, 0x34, 0x7d, 0xe8, 0xf9, 0xb7, 0x59, - 0x48, 0x4a, 0x43, 0x05, 0x4d, 0x53, 0x01, 0x84, 0x38, 0xe7, 0x9c, 0xef, 0x9b, 0xff, 0x3f, 0xff, - 0xf9, 0xcf, 0x39, 0xf3, 0x0f, 0xe1, 0x87, 0xc7, 0xe1, 0xc6, 0x8a, 0x61, 0x54, 0x6a, 0xda, 0x44, - 0xa3, 0x69, 0x58, 0xc6, 0x7a, 0x6b, 0x63, 0xa2, 0xac, 0x99, 0xa5, 0x66, 0xb5, 0x61, 0x19, 0xcd, - 0x71, 0x2a, 0x93, 0x06, 0x99, 0xc5, 0xb8, 0xb0, 0xc8, 0x2c, 0xc1, 0xd0, 0xd9, 0x6a, 0x4d, 0x9b, - 0xb3, 0x0d, 0x57, 0x35, 0x4b, 0x3a, 0x0d, 0xa1, 0x0d, 0x14, 0xa6, 0x03, 0x37, 0x06, 0x8f, 0xc4, - 0x27, 0x6f, 0x1a, 0x6f, 0x03, 0x8d, 0x7b, 0x11, 0x2b, 0x44, 0x2c, 0x53, 0x44, 0xe6, 0xed, 0x10, - 0x0c, 0x77, 0xd1, 0x4a, 0x12, 0x84, 0x74, 0xb5, 0x4e, 0x18, 0x03, 0x47, 0x62, 0x32, 0xfd, 0x2e, - 0xa5, 0xa1, 0xbf, 0xa1, 0x96, 0x2e, 0xaa, 0x15, 0x2d, 0xdd, 0x47, 0xc5, 0xe2, 0x52, 0x3a, 0x08, - 0x50, 0xd6, 0x1a, 0x9a, 0x5e, 0xd6, 0xf4, 0xd2, 0x56, 0x3a, 0x88, 0xa3, 0x88, 0xc9, 0x2e, 0x89, - 0x74, 0x3b, 0x0c, 0x35, 0x5a, 0xeb, 0xb5, 0x6a, 0x49, 0x71, 0x99, 0x01, 0x9a, 0x85, 0xe5, 0x14, - 0x53, 0xcc, 0x39, 0xc6, 0xb7, 0xc2, 0xe0, 0x65, 0x4d, 0xbd, 0xe8, 0x36, 0x8d, 0x53, 0xd3, 0x24, - 0x11, 0xbb, 0x0c, 0x67, 0x21, 0x51, 0xd7, 0x4c, 0x13, 0x07, 0xa0, 0x58, 0x5b, 0x0d, 0x2d, 0x1d, - 0xa2, 0xb3, 0xbf, 0xb1, 0x63, 0xf6, 0xed, 0x33, 0x8f, 0x73, 0xd4, 0x1a, 0x82, 0xa4, 0x19, 0x88, - 0x69, 0x7a, 0xab, 0xce, 0x18, 0xc2, 0xdb, 0xf8, 0x2f, 0x8f, 0x16, 0xed, 0x2c, 0x51, 0x02, 0xe3, - 0x14, 0xfd, 0xa6, 0xd6, 0xbc, 0x54, 0x2d, 0x69, 0xe9, 0x08, 0x25, 0xb8, 0xb5, 0x83, 0x60, 0x95, - 0xe9, 0xdb, 0x39, 0x04, 0x0e, 0xa7, 0x12, 0xd3, 0xae, 0x58, 0x9a, 0x6e, 0x56, 0x0d, 0x3d, 0xdd, - 0x4f, 0x49, 0x6e, 0xee, 0xb2, 0x8a, 0x5a, 0xad, 0xdc, 0x4e, 0xe1, 0xe0, 0xa4, 0x93, 0xd0, 0x6f, - 0x34, 0x2c, 0xfc, 0x66, 0xa6, 0xa3, 0xb8, 0x3e, 0xf1, 0xc9, 0x03, 0x5d, 0x03, 0xa1, 0xc0, 0x6c, - 0x64, 0x61, 0x2c, 0x2d, 0x40, 0xca, 0x34, 0x5a, 0xcd, 0x92, 0xa6, 0x94, 0x8c, 0xb2, 0xa6, 0x54, - 0xf5, 0x0d, 0x23, 0x1d, 0xa3, 0x04, 0x63, 0x9d, 0x13, 0xa1, 0x86, 0xb3, 0x68, 0xb7, 0x80, 0x66, - 0x72, 0xd2, 0xf4, 0x5c, 0x4b, 0x7b, 0x21, 0x62, 0x6e, 0xe9, 0x96, 0x7a, 0x25, 0x9d, 0xa0, 0x11, - 0xc2, 0xaf, 0x32, 0x7f, 0x0e, 0xc3, 0x60, 0x2f, 0x21, 0x76, 0x17, 0x84, 0x37, 0xc8, 0x2c, 0x31, - 0xc0, 0x76, 0xe1, 0x03, 0x86, 0xf1, 0x3a, 0x31, 0xf2, 0x21, 0x9d, 0x38, 0x03, 0x71, 0x5d, 0x33, - 0x2d, 0xad, 0xcc, 0x22, 0x22, 0xd8, 0x63, 0x4c, 0x01, 0x03, 0x75, 0x86, 0x54, 0xe8, 0x43, 0x85, - 0xd4, 0x79, 0x18, 0xb4, 0x87, 0xa4, 0x34, 0x55, 0xbd, 0x22, 0x62, 0x73, 0xc2, 0x6f, 0x24, 0xe3, - 0x79, 0x81, 0x93, 0x09, 0x4c, 0x4e, 0x6a, 0x9e, 0x6b, 0x69, 0x0e, 0xc0, 0xd0, 0x35, 0x63, 0x03, - 0xb7, 0x57, 0xa9, 0x86, 0x71, 0xd2, 0xdd, 0x4b, 0x05, 0x62, 0xd2, 0xe1, 0x25, 0x83, 0x49, 0x4b, - 0x35, 0xe9, 0x8c, 0x13, 0x6a, 0xfd, 0xdb, 0x44, 0xca, 0x12, 0xdb, 0x64, 0x1d, 0xd1, 0x56, 0x84, - 0x64, 0x53, 0x23, 0x71, 0x8f, 0x2e, 0x66, 0x33, 0x8b, 0xd1, 0x41, 0x8c, 0xfb, 0xce, 0x4c, 0xe6, - 0x30, 0x36, 0xb1, 0x81, 0xa6, 0xfb, 0x52, 0x3a, 0x0c, 0xb6, 0x40, 0xa1, 0x61, 0x05, 0x34, 0x0b, - 0x25, 0x84, 0x70, 0x19, 0x65, 0xa3, 0xa7, 0x21, 0xe9, 0x75, 0x8f, 0x34, 0x02, 0x61, 0xd3, 0x52, - 0x9b, 0x16, 0x8d, 0xc2, 0xb0, 0xcc, 0x2e, 0xa4, 0x14, 0x04, 0x31, 0xc9, 0xd0, 0x2c, 0x17, 0x96, - 0xc9, 0xd7, 0xd1, 0x53, 0x30, 0xe0, 0xb9, 0x7d, 0xaf, 0xc0, 0xcc, 0xe3, 0x11, 0x18, 0xe9, 0x16, - 0x73, 0x5d, 0xc3, 0x1f, 0xb7, 0x0f, 0x46, 0xc0, 0xba, 0xd6, 0xc4, 0xb8, 0x23, 0x0c, 0xfc, 0x0a, - 0x23, 0x2a, 0x5c, 0x53, 0xd7, 0xb5, 0x1a, 0x46, 0x53, 0xe0, 0x48, 0x72, 0xf2, 0xf6, 0x9e, 0xa2, - 0x7a, 0x7c, 0x91, 0x40, 0x64, 0x86, 0x94, 0xee, 0x86, 0x10, 0x4f, 0x71, 0x84, 0xe1, 0x68, 0x6f, - 0x0c, 0x24, 0x16, 0x65, 0x8a, 0x93, 0xae, 0x87, 0x18, 0xf9, 0xcf, 0x7c, 0x1b, 0xa1, 0x63, 0x8e, - 0x12, 0x01, 0xf1, 0xab, 0x34, 0x0a, 0x51, 0x1a, 0x66, 0x65, 0x4d, 0x94, 0x06, 0xfb, 0x9a, 0x2c, - 0x4c, 0x59, 0xdb, 0x50, 0x5b, 0x35, 0x4b, 0xb9, 0xa4, 0xd6, 0x5a, 0x1a, 0x0d, 0x18, 0x5c, 0x18, - 0x2e, 0xbc, 0x8f, 0xc8, 0xa4, 0x31, 0x88, 0xb3, 0xa8, 0xac, 0x22, 0xe6, 0x0a, 0xcd, 0x3e, 0x61, - 0x99, 0x05, 0xea, 0x02, 0x91, 0x90, 0xdb, 0x5f, 0x30, 0x71, 0x2f, 0xf0, 0xa5, 0xa5, 0xb7, 0x20, - 0x02, 0x7a, 0xfb, 0x53, 0xed, 0x89, 0xef, 0x86, 0xee, 0xd3, 0x6b, 0x8f, 0xc5, 0xcc, 0x77, 0xfb, - 0x20, 0x44, 0xf7, 0xdb, 0x20, 0xc4, 0xd7, 0x1e, 0x58, 0xc9, 0x2b, 0x73, 0x85, 0x62, 0x6e, 0x31, - 0x9f, 0x0a, 0x48, 0x49, 0x00, 0x2a, 0x38, 0xbb, 0x58, 0x98, 0x59, 0x4b, 0xf5, 0xd9, 0xd7, 0x0b, - 0xcb, 0x6b, 0x27, 0x4f, 0xa4, 0x82, 0x36, 0xa0, 0xc8, 0x04, 0x21, 0xb7, 0xc1, 0xd4, 0x64, 0x2a, - 0x8c, 0x91, 0x90, 0x60, 0x04, 0x0b, 0xe7, 0xf3, 0x73, 0x68, 0x11, 0xf1, 0x4a, 0xd0, 0xa6, 0x5f, - 0x1a, 0x80, 0x18, 0x95, 0xe4, 0x0a, 0x85, 0xc5, 0x54, 0xd4, 0xe6, 0x5c, 0x5d, 0x93, 0x17, 0x96, - 0xe7, 0x53, 0x31, 0x9b, 0x73, 0x5e, 0x2e, 0x14, 0x57, 0x52, 0x60, 0x33, 0x2c, 0xe5, 0x57, 0x57, - 0x67, 0xe6, 0xf3, 0xa9, 0xb8, 0x6d, 0x91, 0x7b, 0x60, 0x2d, 0xbf, 0x9a, 0x4a, 0x78, 0x86, 0x85, - 0xb7, 0x18, 0xb0, 0x6f, 0x91, 0x5f, 0x2e, 0x2e, 0xa5, 0x92, 0xd2, 0x10, 0x0c, 0xb0, 0x5b, 0x88, - 0x41, 0x0c, 0xb6, 0x89, 0x70, 0xa4, 0x29, 0x67, 0x20, 0x8c, 0x65, 0xc8, 0x23, 0x40, 0x0b, 0x29, - 0x33, 0x0b, 0x61, 0x1a, 0x5d, 0x18, 0xc5, 0xc9, 0xc5, 0x99, 0x5c, 0x7e, 0x51, 0x29, 0xac, 0xac, - 0x2d, 0x14, 0x96, 0x67, 0x16, 0xd1, 0x77, 0xb6, 0x4c, 0xce, 0xff, 0x5b, 0x71, 0x41, 0xce, 0xcf, - 0xa1, 0xff, 0x5c, 0xb2, 0x95, 0xfc, 0xcc, 0x1a, 0xca, 0x82, 0x99, 0xa3, 0x30, 0xd2, 0x2d, 0xcf, - 0x74, 0xdb, 0x19, 0x99, 0xe7, 0x03, 0x30, 0xdc, 0x25, 0x65, 0x76, 0xdd, 0x45, 0xf7, 0x40, 0x98, - 0x45, 0x1a, 0x2b, 0x22, 0xb7, 0x75, 0xcd, 0xbd, 0x34, 0xee, 0x3a, 0x0a, 0x09, 0xc5, 0xb9, 0x0b, - 0x69, 0x70, 0x9b, 0x42, 0x4a, 0x28, 0x3a, 0xc2, 0xe9, 0x91, 0x00, 0xa4, 0xb7, 0xe3, 0xf6, 0xd9, - 0xef, 0x7d, 0x9e, 0xfd, 0x7e, 0x57, 0xfb, 0x00, 0x0e, 0x6d, 0x3f, 0x87, 0x8e, 0x51, 0xbc, 0x10, - 0x80, 0xbd, 0xdd, 0xfb, 0x8d, 0xae, 0x63, 0xb8, 0x1b, 0x22, 0x75, 0xcd, 0xda, 0x34, 0x44, 0xcd, - 0xbd, 0xa5, 0x4b, 0x26, 0x27, 0xea, 0x76, 0x5f, 0x71, 0x94, 0xbb, 0x14, 0x04, 0xb7, 0x6b, 0x1a, - 0xd8, 0x68, 0x3a, 0x46, 0xfa, 0x68, 0x1f, 0x5c, 0xd7, 0x95, 0xbc, 0xeb, 0x40, 0x6f, 0x00, 0xa8, - 0xea, 0x8d, 0x96, 0xc5, 0xea, 0x2a, 0x4b, 0x33, 0x31, 0x2a, 0xa1, 0x5b, 0x98, 0xa4, 0x90, 0x96, - 0x65, 0xeb, 0x83, 0x54, 0x0f, 0x4c, 0x44, 0x0d, 0x4e, 0x3b, 0x03, 0x0d, 0xd1, 0x81, 0x1e, 0xdc, - 0x66, 0xa6, 0x1d, 0x25, 0xeb, 0x18, 0xa4, 0x4a, 0xb5, 0xaa, 0xa6, 0x5b, 0x8a, 0x69, 0x35, 0x35, - 0xb5, 0x5e, 0xd5, 0x2b, 0x34, 0x8f, 0x46, 0xb3, 0xe1, 0x0d, 0xb5, 0x66, 0x6a, 0xf2, 0x20, 0x53, - 0xaf, 0x0a, 0x2d, 0x41, 0xd0, 0x62, 0xd1, 0x74, 0x21, 0x22, 0x1e, 0x04, 0x53, 0xdb, 0x88, 0xcc, - 0xcf, 0xfa, 0x21, 0xee, 0xea, 0xce, 0xa4, 0x43, 0x90, 0xb8, 0xa0, 0x5e, 0x52, 0x15, 0xd1, 0x71, - 0x33, 0x4f, 0xc4, 0x89, 0x6c, 0x85, 0x77, 0xdd, 0xc7, 0x60, 0x84, 0x9a, 0xe0, 0x1c, 0xf1, 0x46, - 0xa5, 0x9a, 0x6a, 0x9a, 0xd4, 0x69, 0x51, 0x6a, 0x2a, 0x11, 0x5d, 0x81, 0xa8, 0x66, 0x85, 0x46, - 0x9a, 0x86, 0x61, 0x8a, 0xa8, 0x63, 0xe2, 0xad, 0x36, 0x6a, 0x9a, 0x42, 0x9e, 0x01, 0x4c, 0x9a, - 0x4f, 0xed, 0x91, 0x0d, 0x11, 0x8b, 0x25, 0x6e, 0x40, 0x46, 0x64, 0x4a, 0xf3, 0x70, 0x03, 0x85, - 0x55, 0x34, 0x5d, 0x6b, 0xaa, 0x96, 0xa6, 0x68, 0xff, 0xd1, 0x42, 0x5b, 0x45, 0xd5, 0xcb, 0xca, - 0xa6, 0x6a, 0x6e, 0xa6, 0x47, 0xdc, 0x04, 0xfb, 0x89, 0xed, 0x3c, 0x37, 0xcd, 0x53, 0xcb, 0x19, - 0xbd, 0x7c, 0x2f, 0xda, 0x49, 0x59, 0xd8, 0x4b, 0x89, 0xd0, 0x29, 0x38, 0x67, 0xa5, 0xb4, 0xa9, - 0x95, 0x2e, 0x2a, 0x2d, 0x6b, 0xe3, 0x74, 0xfa, 0x7a, 0x37, 0x03, 0x1d, 0xe4, 0x2a, 0xb5, 0x99, - 0x25, 0x26, 0x45, 0xb4, 0x90, 0x56, 0x21, 0x41, 0xd6, 0xa3, 0x5e, 0x7d, 0x08, 0x87, 0x6d, 0x34, - 0x69, 0x8d, 0x48, 0x76, 0xd9, 0xdc, 0x2e, 0x27, 0x8e, 0x17, 0x38, 0x60, 0x09, 0xfb, 0xd3, 0x6c, - 0x78, 0x75, 0x25, 0x9f, 0x9f, 0x93, 0xe3, 0x82, 0xe5, 0xac, 0xd1, 0x24, 0x31, 0x55, 0x31, 0x6c, - 0x1f, 0xc7, 0x59, 0x4c, 0x55, 0x0c, 0xe1, 0x61, 0xf4, 0x57, 0xa9, 0xc4, 0xa6, 0x8d, 0xcf, 0x2e, - 0xbc, 0x59, 0x37, 0xd3, 0x29, 0x8f, 0xbf, 0x4a, 0xa5, 0x79, 0x66, 0xc0, 0xc3, 0xdc, 0xc4, 0x2d, - 0x71, 0x9d, 0xe3, 0x2f, 0x37, 0x70, 0xa8, 0x63, 0x96, 0xed, 0x50, 0xbc, 0x63, 0x63, 0xab, 0x13, - 0x28, 0x79, 0xee, 0xd8, 0xd8, 0x6a, 0x87, 0xdd, 0x4c, 0x1f, 0xc0, 0x9a, 0x5a, 0x09, 0x5d, 0x5e, - 0x4e, 0xef, 0x73, 0x5b, 0xbb, 0x14, 0xd2, 0x04, 0x06, 0x72, 0x49, 0xd1, 0x74, 0x75, 0x1d, 0xd7, - 0x5e, 0x6d, 0xe2, 0x17, 0x33, 0x3d, 0xe6, 0x36, 0x4e, 0x96, 0x4a, 0x79, 0xaa, 0x9d, 0xa1, 0x4a, - 0xe9, 0x28, 0x0c, 0x19, 0xeb, 0x17, 0x4a, 0x2c, 0xb8, 0x14, 0xe4, 0xd9, 0xa8, 0x5e, 0x49, 0xdf, - 0x44, 0xdd, 0x34, 0x48, 0x14, 0x34, 0xb4, 0x56, 0xa8, 0x58, 0xba, 0x0d, 0xc9, 0xcd, 0x4d, 0xb5, - 0xd9, 0xa0, 0x45, 0xda, 0x44, 0xa7, 0x6a, 0xe9, 0x9b, 0x99, 0x29, 0x93, 0x2f, 0x0b, 0xb1, 0x94, - 0x87, 0x31, 0x32, 0x79, 0x5d, 0xd5, 0x0d, 0xa5, 0x65, 0x6a, 0x8a, 0x33, 0x44, 0x7b, 0x2d, 0x6e, - 0x21, 0xc3, 0x92, 0x0f, 0x08, 0xb3, 0xa2, 0x89, 0xc9, 0x4c, 0x18, 0x89, 0xe5, 0x39, 0x0f, 0x23, - 0x2d, 0xbd, 0xaa, 0x63, 0x88, 0xa3, 0x86, 0x80, 0xd9, 0x86, 0x4d, 0xff, 0xba, 0x7f, 0x9b, 0xa6, - 0xbb, 0xe8, 0xb6, 0x66, 0x41, 0x22, 0x0f, 0xb7, 0x3a, 0x85, 0x99, 0x2c, 0x24, 0xdc, 0xb1, 0x23, - 0xc5, 0x80, 0x45, 0x0f, 0x56, 0x37, 0xac, 0xa8, 0xb3, 0x85, 0x39, 0x52, 0x0b, 0x1f, 0xcc, 0x63, - 0x61, 0xc3, 0x9a, 0xbc, 0xb8, 0xb0, 0x96, 0x57, 0xe4, 0xe2, 0xf2, 0xda, 0xc2, 0x52, 0x3e, 0x15, - 0x3c, 0x1a, 0x8b, 0xbe, 0xd3, 0x9f, 0x7a, 0x18, 0xff, 0xfa, 0x32, 0xaf, 0xf6, 0x41, 0xd2, 0xdb, - 0x07, 0x4b, 0xff, 0x02, 0xfb, 0xc4, 0x43, 0xab, 0xa9, 0x59, 0xca, 0xe5, 0x6a, 0x93, 0x86, 0x73, - 0x5d, 0x65, 0x9d, 0xa4, 0xbd, 0x12, 0x23, 0xdc, 0x0a, 0x1f, 0xef, 0xef, 0x47, 0x9b, 0xb3, 0xd4, - 0x44, 0x5a, 0x84, 0x31, 0x74, 0x19, 0xf6, 0x9a, 0x7a, 0x59, 0x6d, 0x96, 0x15, 0xe7, 0xb8, 0x40, - 0x51, 0x4b, 0x18, 0x07, 0xa6, 0xc1, 0x2a, 0x89, 0xcd, 0x72, 0x40, 0x37, 0x56, 0xb9, 0xb1, 0x93, - 0x62, 0x67, 0xb8, 0x69, 0x5b, 0xd4, 0x04, 0xb7, 0x8b, 0x1a, 0xec, 0xbd, 0xea, 0x6a, 0x03, 0xc3, - 0xc6, 0x6a, 0x6e, 0xd1, 0xee, 0x2d, 0x2a, 0x47, 0x51, 0x90, 0x27, 0xd7, 0x1f, 0xdd, 0x1a, 0xb8, - 0xfd, 0xf8, 0xcb, 0x20, 0x24, 0xdc, 0x1d, 0x1c, 0x69, 0x88, 0x4b, 0x34, 0xcd, 0x07, 0x68, 0x16, - 0x38, 0xbc, 0x63, 0xbf, 0x37, 0x3e, 0x4b, 0xf2, 0x7f, 0x36, 0xc2, 0xfa, 0x2a, 0x99, 0x21, 0x49, - 0xed, 0x25, 0xb1, 0xa6, 0xb1, 0x6e, 0x3d, 0x2a, 0xf3, 0x2b, 0x4c, 0x76, 0x91, 0x0b, 0x26, 0xe5, - 0x8e, 0x50, 0xee, 0x9b, 0x76, 0xe6, 0x3e, 0xb7, 0x4a, 0xc9, 0x63, 0xe7, 0x56, 0x95, 0xe5, 0x82, - 0xbc, 0x34, 0xb3, 0x28, 0x73, 0xb8, 0xb4, 0x1f, 0x42, 0x35, 0xf5, 0xa1, 0x2d, 0x6f, 0xa5, 0xa0, - 0xa2, 0x5e, 0x1d, 0x8f, 0x0c, 0xe4, 0xc8, 0xc3, 0x9b, 0x9f, 0xa9, 0xe8, 0x23, 0x0c, 0xfd, 0x09, - 0x08, 0x53, 0x7f, 0x49, 0x00, 0xdc, 0x63, 0xa9, 0x3d, 0x52, 0x14, 0x42, 0xb3, 0x05, 0x99, 0x84, - 0x3f, 0xc6, 0x3b, 0x93, 0x2a, 0x2b, 0x0b, 0xf9, 0x59, 0xdc, 0x01, 0x99, 0x69, 0x88, 0x30, 0x27, - 0x90, 0xad, 0x61, 0xbb, 0x01, 0x41, 0xec, 0x92, 0x73, 0x04, 0x84, 0xb6, 0xb8, 0x94, 0xcb, 0xcb, - 0xa9, 0x3e, 0xf7, 0xf2, 0x7e, 0x3f, 0x00, 0x71, 0x57, 0x43, 0x45, 0x4a, 0xb9, 0x5a, 0xab, 0x19, - 0x97, 0x15, 0xb5, 0x56, 0xc5, 0x0c, 0xc5, 0xd6, 0x07, 0xa8, 0x68, 0x86, 0x48, 0x7a, 0xf5, 0xdf, - 0x3f, 0x24, 0x36, 0x9f, 0x0d, 0x40, 0xaa, 0xbd, 0x19, 0x6b, 0x1b, 0x60, 0xe0, 0x63, 0x1d, 0xe0, - 0xd3, 0x01, 0x48, 0x7a, 0x3b, 0xb0, 0xb6, 0xe1, 0x1d, 0xfa, 0x58, 0x87, 0xf7, 0x54, 0x00, 0x06, - 0x3c, 0x7d, 0xd7, 0x3f, 0xd5, 0xe8, 0x9e, 0x0c, 0xc2, 0x70, 0x17, 0x1c, 0x26, 0x20, 0xd6, 0xa0, - 0xb2, 0x9e, 0xf9, 0xce, 0x5e, 0xee, 0x35, 0x4e, 0xea, 0xdf, 0x8a, 0xda, 0xb4, 0x78, 0x3f, 0x8b, - 0xf5, 0xb2, 0x5a, 0xc6, 0xa4, 0x5a, 0xdd, 0xa8, 0x62, 0xfb, 0xc6, 0x9e, 0x58, 0x58, 0xd7, 0x3a, - 0xe8, 0xc8, 0xd9, 0xe3, 0xf1, 0x1d, 0x20, 0x35, 0x0c, 0xb3, 0x6a, 0x55, 0x2f, 0x91, 0xe3, 0x39, - 0xf1, 0x20, 0x4d, 0xba, 0xd8, 0x90, 0x9c, 0x12, 0x9a, 0x05, 0xdd, 0xb2, 0xad, 0x75, 0xad, 0xa2, - 0xb6, 0x59, 0x93, 0x34, 0x14, 0x94, 0x53, 0x42, 0x63, 0x5b, 0x63, 0xa3, 0x59, 0x36, 0x5a, 0xa4, - 0x21, 0x60, 0x76, 0x24, 0xeb, 0x05, 0xe4, 0x38, 0x93, 0xd9, 0x26, 0xbc, 0x63, 0x73, 0x9e, 0xe0, - 0x13, 0x72, 0x9c, 0xc9, 0x98, 0xc9, 0xad, 0x30, 0xa8, 0x56, 0x2a, 0x4d, 0x42, 0x2e, 0x88, 0x58, - 0x1b, 0x9a, 0xb4, 0xc5, 0xd4, 0x70, 0xf4, 0x1c, 0x44, 0x85, 0x1f, 0x48, 0x61, 0x21, 0x9e, 0xc0, - 0x9a, 0x4f, 0xcf, 0x51, 0xfa, 0xc8, 0x43, 0xbd, 0x2e, 0x94, 0x78, 0xd3, 0xaa, 0xa9, 0x38, 0x07, - 0x7a, 0x7d, 0xa8, 0x8f, 0xca, 0xf1, 0xaa, 0x69, 0x9f, 0xe0, 0x64, 0x5e, 0xc0, 0xf2, 0xea, 0x3d, - 0x90, 0x94, 0xe6, 0x20, 0x5a, 0x33, 0x30, 0x3e, 0x08, 0x82, 0x9d, 0x86, 0x1f, 0xf1, 0x39, 0xc3, - 0x1c, 0x5f, 0xe4, 0xf6, 0xb2, 0x8d, 0x1c, 0xfd, 0x49, 0x00, 0xa2, 0x42, 0x8c, 0x85, 0x22, 0xd4, - 0x50, 0xad, 0x4d, 0x4a, 0x17, 0xce, 0xf5, 0xa5, 0x02, 0x32, 0xbd, 0x26, 0x72, 0xec, 0x66, 0x74, - 0x1a, 0x02, 0x5c, 0x4e, 0xae, 0xc9, 0xba, 0xd6, 0x34, 0xb5, 0x4c, 0x1b, 0x5c, 0xa3, 0x5e, 0xc7, - 0x95, 0x34, 0xc5, 0xba, 0x72, 0xf9, 0x2c, 0x17, 0x93, 0x73, 0x71, 0xab, 0xa9, 0x56, 0x6b, 0x1e, - 0xdb, 0x10, 0xb5, 0x4d, 0x09, 0x85, 0x6d, 0x9c, 0x85, 0xfd, 0x82, 0xb7, 0xac, 0x59, 0x2a, 0x36, - 0xcf, 0x65, 0x07, 0x14, 0xa1, 0xa7, 0x5d, 0xfb, 0xb8, 0xc1, 0x1c, 0xd7, 0x0b, 0x6c, 0xee, 0x3c, - 0x36, 0xb2, 0x46, 0xbd, 0xdd, 0x13, 0xb9, 0x54, 0xdb, 0x73, 0x97, 0x79, 0x6f, 0xe0, 0x41, 0x70, - 0x9a, 0x8a, 0xe7, 0xfb, 0x82, 0xf3, 0x2b, 0xb9, 0x97, 0xfa, 0x46, 0xe7, 0x19, 0x6e, 0x45, 0x78, - 0x50, 0xd6, 0x36, 0x6a, 0x5a, 0x89, 0x78, 0x07, 0x9e, 0x3b, 0x0c, 0x77, 0x56, 0xaa, 0xd6, 0x66, - 0x6b, 0x7d, 0x1c, 0xef, 0x30, 0x51, 0x31, 0x2a, 0x86, 0xf3, 0x3a, 0x83, 0x5c, 0xd1, 0x0b, 0xfa, - 0x8d, 0xbf, 0xd2, 0x88, 0xd9, 0xd2, 0x51, 0xdf, 0xf7, 0x1f, 0xd9, 0x65, 0x18, 0xe6, 0xc6, 0x0a, - 0x3d, 0x53, 0x65, 0x2d, 0xa8, 0xb4, 0xe3, 0x03, 0x79, 0xfa, 0x95, 0xb7, 0x69, 0x49, 0x90, 0x87, - 0x38, 0x94, 0xe8, 0x58, 0x93, 0x9a, 0x95, 0xe1, 0x3a, 0x0f, 0x1f, 0x8b, 0x61, 0x7c, 0xe4, 0xde, - 0x99, 0xf1, 0x55, 0xce, 0x38, 0xec, 0x62, 0x5c, 0xe5, 0xd0, 0xec, 0x2c, 0x0c, 0xec, 0x86, 0xeb, - 0x47, 0x9c, 0x2b, 0xa1, 0xb9, 0x49, 0xe6, 0x61, 0x90, 0x92, 0x94, 0x5a, 0xa6, 0x65, 0xd4, 0x69, - 0x82, 0xd8, 0x99, 0xe6, 0xc7, 0x6f, 0xb3, 0xa0, 0x4a, 0x12, 0xd8, 0xac, 0x8d, 0xca, 0xde, 0x07, - 0x23, 0x44, 0x42, 0xf7, 0xa0, 0x9b, 0xcd, 0xff, 0x08, 0x21, 0xfd, 0xd3, 0x47, 0x58, 0xec, 0x0d, - 0xdb, 0x04, 0x2e, 0x5e, 0xd7, 0x4a, 0x54, 0x34, 0x0b, 0x73, 0x1b, 0x3e, 0xff, 0xd5, 0x6a, 0xd2, - 0x8e, 0xef, 0x18, 0xd2, 0x4f, 0xbc, 0xeb, 0x5d, 0x89, 0x79, 0x86, 0x9c, 0xa9, 0xd5, 0xb2, 0x45, - 0xd8, 0xd7, 0x65, 0x65, 0x7b, 0xe0, 0x7c, 0x92, 0x73, 0x8e, 0x74, 0xac, 0x2e, 0xa1, 0x5d, 0x01, - 0x21, 0xb7, 0xd7, 0xa3, 0x07, 0xce, 0xa7, 0x38, 0xa7, 0xc4, 0xb1, 0x62, 0x59, 0x08, 0xe3, 0x39, - 0x18, 0xc2, 0x27, 0xf5, 0x75, 0xc3, 0xe4, 0xcf, 0xbd, 0x3d, 0xd0, 0x3d, 0xcd, 0xe9, 0x06, 0x39, - 0x90, 0x3e, 0x05, 0x13, 0xae, 0x33, 0x10, 0xdd, 0xc0, 0x07, 0xa0, 0x1e, 0x28, 0x9e, 0xe1, 0x14, - 0xfd, 0xc4, 0x9e, 0x40, 0x67, 0x20, 0x51, 0x31, 0x78, 0x1a, 0xf6, 0x87, 0x3f, 0xcb, 0xe1, 0x71, - 0x81, 0xe1, 0x14, 0x0d, 0xa3, 0xd1, 0xaa, 0x91, 0x1c, 0xed, 0x4f, 0xf1, 0x79, 0x41, 0x21, 0x30, - 0x9c, 0x62, 0x17, 0x6e, 0xfd, 0x82, 0xa0, 0x30, 0x5d, 0xfe, 0xbc, 0x87, 0x9c, 0xf5, 0xd6, 0xb6, - 0x0c, 0xbd, 0x97, 0x41, 0x3c, 0xc7, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x5d, 0x10, 0xeb, 0x75, 0x21, - 0xbe, 0xc8, 0xe1, 0x51, 0x4d, 0xac, 0x00, 0xee, 0x33, 0x91, 0x64, 0xc8, 0xbb, 0x15, 0x7f, 0x8a, - 0x2f, 0x71, 0x8a, 0xa4, 0x0b, 0xc6, 0xa7, 0x61, 0x69, 0xa6, 0x85, 0x8f, 0xea, 0x3d, 0x90, 0xbc, - 0x20, 0xa6, 0xc1, 0x21, 0xdc, 0x95, 0xeb, 0x9a, 0x5e, 0xda, 0xec, 0x8d, 0xe1, 0x45, 0xe1, 0x4a, - 0x81, 0x21, 0x14, 0x98, 0x79, 0xea, 0x6a, 0x13, 0x1f, 0xae, 0x6b, 0x3d, 0x2d, 0xc7, 0x97, 0x39, - 0x47, 0xc2, 0x06, 0x71, 0x8f, 0xb4, 0xf4, 0xdd, 0xd0, 0xbc, 0x24, 0x3c, 0xe2, 0x82, 0xf1, 0xad, - 0x87, 0x4f, 0xa6, 0xa4, 0x93, 0xd8, 0x0d, 0xdb, 0x57, 0xc4, 0xd6, 0x63, 0xd8, 0x25, 0x37, 0x23, - 0xae, 0xb4, 0x89, 0x8f, 0xe0, 0xbd, 0xd0, 0x7c, 0x55, 0xac, 0x34, 0x05, 0x10, 0xf0, 0x03, 0xb0, - 0xbf, 0x6b, 0xaa, 0xef, 0x81, 0xec, 0x6b, 0x9c, 0x6c, 0x6f, 0x97, 0x74, 0xcf, 0x53, 0xc2, 0x6e, - 0x29, 0xbf, 0x2e, 0x52, 0x82, 0xd6, 0xc6, 0xb5, 0x42, 0xda, 0x58, 0x53, 0xdd, 0xd8, 0x9d, 0xd7, - 0xbe, 0x21, 0xbc, 0xc6, 0xb0, 0x1e, 0xaf, 0xad, 0xc1, 0x5e, 0xce, 0xb8, 0xbb, 0x75, 0x7d, 0x59, - 0x24, 0x56, 0x86, 0x2e, 0x7a, 0x57, 0xf7, 0xdf, 0x61, 0xd4, 0x76, 0xa7, 0xe8, 0xc0, 0x4c, 0x85, - 0x1c, 0x0c, 0xf8, 0x33, 0xbf, 0xc2, 0x99, 0x45, 0xc6, 0xb7, 0x5b, 0x38, 0x73, 0x49, 0x6d, 0x10, - 0xf2, 0xf3, 0x90, 0x16, 0xe4, 0x2d, 0x1d, 0x1b, 0x7c, 0xa3, 0xa2, 0xe3, 0x32, 0x96, 0x7b, 0xa0, - 0xfe, 0x66, 0xdb, 0x52, 0x15, 0x5d, 0x70, 0xc2, 0xbc, 0x00, 0x29, 0xbb, 0xdf, 0x50, 0xaa, 0xf5, - 0x86, 0x81, 0xad, 0xe5, 0xce, 0x8c, 0xdf, 0x12, 0x2b, 0x65, 0xe3, 0x16, 0x28, 0x2c, 0x9b, 0x87, - 0x24, 0xbd, 0xec, 0x35, 0x24, 0xbf, 0xcd, 0x89, 0x06, 0x1c, 0x14, 0x4f, 0x1c, 0xd8, 0x29, 0x61, - 0xcf, 0xdb, 0x4b, 0xfe, 0xfb, 0x8e, 0x48, 0x1c, 0x1c, 0xc2, 0xa2, 0x6f, 0xb0, 0xad, 0x12, 0x4b, - 0x7e, 0xaf, 0x5f, 0xd3, 0xff, 0x79, 0x8d, 0xef, 0x59, 0x6f, 0x21, 0xce, 0x2e, 0x12, 0xf7, 0x78, - 0xcb, 0xa5, 0x3f, 0xd9, 0x23, 0xd7, 0x6c, 0x0f, 0x79, 0xaa, 0x65, 0xf6, 0x2c, 0x0c, 0x78, 0x4a, - 0xa5, 0x3f, 0xd5, 0x7f, 0x71, 0xaa, 0x84, 0xbb, 0x52, 0x66, 0xa7, 0x21, 0x44, 0xca, 0x9e, 0x3f, - 0xfc, 0xbf, 0x39, 0x9c, 0x9a, 0x67, 0xff, 0x15, 0xa2, 0xa2, 0xdc, 0xf9, 0x43, 0xff, 0x87, 0x43, - 0x6d, 0x08, 0x81, 0x8b, 0x52, 0xe7, 0x0f, 0xff, 0x5f, 0x01, 0x17, 0x10, 0x02, 0xef, 0xdd, 0x85, - 0x3f, 0xf8, 0xbf, 0x10, 0x4f, 0x57, 0xc2, 0x77, 0xe4, 0x9d, 0x0f, 0xab, 0x71, 0xfe, 0xe8, 0x47, - 0xf9, 0xcd, 0x05, 0x22, 0x7b, 0x0a, 0xc2, 0x3d, 0x3a, 0xfc, 0xff, 0x39, 0x94, 0xd9, 0x63, 0x05, - 0x89, 0xbb, 0xea, 0x9a, 0x3f, 0xfc, 0x13, 0x1c, 0xee, 0x46, 0x91, 0xa1, 0xf3, 0xba, 0xe6, 0x4f, - 0xf0, 0x49, 0x31, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0x25, 0xcd, 0x1f, 0xfd, 0x29, 0xe1, 0x75, 0x01, - 0xc1, 0xdd, 0x14, 0xb3, 0xd3, 0x94, 0x3f, 0xfe, 0xd3, 0x1c, 0xef, 0x60, 0x88, 0x07, 0x5c, 0x69, - 0xd2, 0x9f, 0xe2, 0x31, 0xe1, 0x01, 0x17, 0x8a, 0x6c, 0xa3, 0xf6, 0xd2, 0xe7, 0xcf, 0xf4, 0x19, - 0xb1, 0x8d, 0xda, 0x2a, 0x1f, 0x59, 0x4d, 0x9a, 0x2d, 0xfc, 0x29, 0x3e, 0x2b, 0x56, 0x93, 0xda, - 0x93, 0x61, 0xb4, 0xd7, 0x12, 0x7f, 0x8e, 0xcf, 0x89, 0x61, 0xb4, 0x95, 0x12, 0xac, 0x4c, 0x52, - 0x67, 0x1d, 0xf1, 0xe7, 0x7b, 0x9c, 0xf3, 0x0d, 0x75, 0x94, 0x91, 0xec, 0xfd, 0xb0, 0xb7, 0x7b, - 0x0d, 0xf1, 0x67, 0x7d, 0xe2, 0x5a, 0x5b, 0xd7, 0xef, 0x2e, 0x21, 0x58, 0xf2, 0x46, 0xba, 0xd5, - 0x0f, 0x7f, 0xda, 0x27, 0xaf, 0x79, 0x1f, 0xec, 0xdc, 0xe5, 0x03, 0x3b, 0x34, 0x70, 0x52, 0xb7, - 0x3f, 0xd7, 0xd3, 0x9c, 0xcb, 0x05, 0x22, 0x5b, 0x83, 0x67, 0x6e, 0x7f, 0xfc, 0x33, 0x62, 0x6b, - 0x70, 0x04, 0x82, 0xa3, 0x7a, 0xab, 0x56, 0x23, 0xc1, 0x21, 0xed, 0xfc, 0x93, 0x86, 0xf4, 0x6f, - 0x3e, 0xe0, 0x1b, 0x43, 0x00, 0x30, 0x87, 0x86, 0xb5, 0xfa, 0x3a, 0xfa, 0xc0, 0x07, 0xf9, 0xdb, - 0x0f, 0x44, 0x42, 0x20, 0xd6, 0xb8, 0x9f, 0x80, 0x3d, 0x34, 0xd2, 0x33, 0x6c, 0x1f, 0xec, 0xef, - 0x3e, 0xe0, 0xaf, 0x59, 0x1d, 0x88, 0x43, 0xc0, 0x5e, 0xda, 0xee, 0x4c, 0xf0, 0xae, 0x97, 0x80, - 0x3e, 0x68, 0x9e, 0x81, 0x7e, 0xf2, 0xcb, 0x0e, 0x4b, 0xad, 0xf8, 0xa1, 0x7f, 0xcf, 0xd1, 0xc2, - 0x9e, 0x38, 0xac, 0x6e, 0x34, 0x35, 0xfc, 0x6a, 0xfa, 0x61, 0xff, 0xc0, 0xb1, 0x36, 0x80, 0x80, - 0x4b, 0xaa, 0x69, 0xf5, 0x32, 0xef, 0x3f, 0x0a, 0xb0, 0x00, 0x90, 0x41, 0x93, 0xef, 0x17, 0xb5, - 0x2d, 0x3f, 0xec, 0x7b, 0x62, 0xd0, 0xdc, 0x1e, 0x13, 0x60, 0x8c, 0x7c, 0x65, 0x3f, 0x3d, 0xf0, - 0x01, 0xff, 0x89, 0x83, 0x1d, 0x44, 0xee, 0x50, 0xf7, 0xa3, 0x1d, 0x98, 0x37, 0xe6, 0x0d, 0x76, - 0xa8, 0x03, 0x7f, 0x8d, 0xc2, 0x01, 0xb4, 0xc1, 0xfa, 0x3a, 0xe1, 0xda, 0xc9, 0x13, 0x58, 0x38, - 0xf8, 0x91, 0x4c, 0x10, 0xbf, 0x8e, 0xee, 0xee, 0x18, 0x27, 0xb3, 0x1f, 0xc2, 0xab, 0xad, 0xf5, - 0xf5, 0x2d, 0xf2, 0x9b, 0x27, 0xb3, 0xb5, 0xce, 0x5f, 0x50, 0x93, 0xaf, 0x99, 0xab, 0x41, 0x18, - 0xc0, 0x46, 0x85, 0xbc, 0x13, 0x30, 0x0b, 0xba, 0x56, 0xd8, 0x90, 0xd2, 0x10, 0xa1, 0xf3, 0x38, - 0x4e, 0xcd, 0x02, 0xf7, 0xee, 0x91, 0x23, 0xf4, 0x37, 0x7b, 0xc7, 0x6d, 0xcd, 0x24, 0x3d, 0xe6, - 0xef, 0xb3, 0x35, 0x93, 0xb6, 0x66, 0x8a, 0xfd, 0x18, 0xca, 0xd6, 0x4c, 0xd9, 0x9a, 0x13, 0xf4, - 0xac, 0x2c, 0x68, 0x6b, 0x4e, 0xd8, 0x9a, 0x69, 0x7a, 0xdc, 0x39, 0x60, 0x6b, 0xa6, 0x6d, 0xcd, - 0x49, 0x7a, 0xc0, 0x19, 0xb2, 0x35, 0x27, 0x6d, 0xcd, 0x29, 0x7a, 0xae, 0x39, 0x64, 0x6b, 0x4e, - 0xd9, 0x9a, 0xd3, 0xf4, 0x2c, 0x53, 0xb2, 0x35, 0xa7, 0x6d, 0xcd, 0x19, 0xfa, 0x1a, 0xba, 0xdf, - 0xd6, 0x9c, 0x91, 0x46, 0xa1, 0x9f, 0xcd, 0xf4, 0x18, 0x7d, 0x6d, 0x33, 0x88, 0xaa, 0x7e, 0x36, - 0xd5, 0x63, 0x8e, 0xee, 0x38, 0x7d, 0xd5, 0x1c, 0x71, 0x74, 0xc7, 0x1d, 0xdd, 0x24, 0xfd, 0xe9, - 0x64, 0xca, 0xd1, 0x4d, 0x3a, 0xba, 0xa9, 0xf4, 0x00, 0xd9, 0xab, 0x8e, 0x6e, 0xca, 0xd1, 0x9d, - 0x48, 0x27, 0xc9, 0x0a, 0x38, 0xba, 0x13, 0x8e, 0x6e, 0x3a, 0x3d, 0x48, 0x8e, 0x6c, 0x1d, 0xdd, - 0xb4, 0x74, 0x27, 0xc4, 0x71, 0xa9, 0x14, 0xfe, 0x96, 0x91, 0xbe, 0xd2, 0x8e, 0x4f, 0xc2, 0x38, - 0x89, 0x09, 0xba, 0xac, 0x68, 0x0b, 0x68, 0xc0, 0x53, 0x54, 0x2e, 0x01, 0xf4, 0xd1, 0x55, 0xa1, - 0x3f, 0xc9, 0xca, 0xbc, 0x1e, 0x80, 0xd8, 0xda, 0x65, 0x83, 0xfe, 0x7a, 0xc7, 0xfc, 0x3b, 0x2f, - 0xae, 0x18, 0xf4, 0xd4, 0x89, 0x74, 0x86, 0x4e, 0x28, 0xc0, 0x07, 0x3d, 0xe5, 0x4c, 0x68, 0x6a, - 0x3a, 0x7d, 0x98, 0x4e, 0xc8, 0xd6, 0x4d, 0x4b, 0x13, 0x90, 0x70, 0x4d, 0x68, 0x92, 0xbe, 0xa5, - 0xf6, 0xce, 0x28, 0x20, 0xc7, 0x9d, 0x19, 0x4d, 0xe6, 0xc2, 0x40, 0xc2, 0x9e, 0xfc, 0xb3, 0x2e, - 0x1b, 0x99, 0xc7, 0xfa, 0x20, 0xce, 0x4e, 0xbb, 0xe8, 0xac, 0xc8, 0xad, 0x58, 0x5b, 0xbb, 0xc5, - 0x87, 0x81, 0xbe, 0x63, 0xbd, 0xda, 0x96, 0x24, 0x03, 0x30, 0x53, 0x12, 0xe1, 0x6c, 0x24, 0xb9, - 0x63, 0xbf, 0xb8, 0x3a, 0x76, 0xc7, 0xb6, 0x3b, 0x88, 0xf8, 0x6e, 0x82, 0xe5, 0xb8, 0xf1, 0x62, - 0x55, 0xb7, 0x8e, 0x4f, 0x9e, 0x26, 0x0e, 0x2e, 0xd9, 0x2c, 0x52, 0x11, 0xa2, 0xb3, 0xb8, 0xa7, - 0x29, 0x23, 0x19, 0x7a, 0x28, 0x77, 0xea, 0x2f, 0x57, 0xc7, 0xa6, 0x7c, 0x18, 0x79, 0xfa, 0x19, - 0x5f, 0xda, 0x22, 0xac, 0x27, 0x4f, 0x10, 0x38, 0x12, 0xd3, 0xbc, 0x44, 0x69, 0x27, 0xc5, 0x50, - 0xc9, 0xa1, 0x3b, 0x7d, 0x1d, 0x1f, 0xcc, 0xa5, 0xde, 0xba, 0x3a, 0x96, 0x58, 0xda, 0x72, 0xe4, - 0xce, 0x50, 0xc8, 0x55, 0x2e, 0x0a, 0x11, 0x76, 0x95, 0x9b, 0x7b, 0xed, 0xcd, 0x83, 0x7b, 0x5e, - 0xc7, 0xcf, 0xcf, 0xf1, 0xf3, 0xc6, 0x9b, 0x07, 0x03, 0xef, 0xe1, 0xe7, 0x7d, 0xfc, 0x3c, 0xfc, - 0xd6, 0xc1, 0xc0, 0x8b, 0xf8, 0x79, 0x19, 0x3f, 0xdf, 0xc3, 0xcf, 0x6b, 0x6f, 0xa1, 0x1d, 0xfe, - 0x7f, 0x03, 0x3f, 0xef, 0xe0, 0xf7, 0xf7, 0xf0, 0xff, 0xfb, 0xf8, 0xff, 0xe1, 0x5f, 0x1d, 0xdc, - 0xf3, 0xb7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x30, 0x06, 0x19, 0xe9, 0x2e, 0x00, 0x00, + // 4040 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x8d, 0x95, 0x6d, 0xae, 0x96, 0xb6, + 0x63, 0xd9, 0x8e, 0x25, 0x5b, 0x97, 0xbd, 0x70, 0x9b, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0x56, 0x12, + 0x15, 0x50, 0x8a, 0xd7, 0xe9, 0x03, 0x06, 0x02, 0x7f, 0x52, 0xd8, 0x05, 0x01, 0x06, 0x00, 0x77, + 0x2d, 0x3f, 0x6d, 0xc7, 0xbd, 0x4c, 0xa6, 0xd3, 0x5b, 0xda, 0x99, 0x26, 0xae, 0xe3, 0xb6, 0x99, + 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xce, 0x5b, + 0xa7, 0xd3, 0xf1, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0x4c, 0xdd, 0x87, + 0xce, 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x26, 0x4e, 0x9e, 0x24, 0x9c, 0x73, 0xbe, 0x0f, 0x07, + 0xe7, 0x3f, 0xff, 0x39, 0x07, 0x3f, 0x01, 0xdf, 0x5d, 0x83, 0xf9, 0x96, 0x6d, 0xb7, 0x4c, 0xb4, + 0xd4, 0x71, 0x6c, 0xcf, 0x3e, 0xe8, 0x36, 0x97, 0x1a, 0xc8, 0xd5, 0x1d, 0xa3, 0xe3, 0xd9, 0xce, + 0x22, 0x91, 0x49, 0x53, 0xd4, 0x62, 0x91, 0x5b, 0x14, 0xb6, 0x61, 0xfa, 0xaa, 0x61, 0xa2, 0x75, + 0xdf, 0xb0, 0x8e, 0x3c, 0xe9, 0x12, 0x24, 0x9a, 0x86, 0x89, 0x64, 0x61, 0x3e, 0xbe, 0x90, 0x59, + 0x7e, 0x6c, 0xb1, 0x0f, 0xb4, 0xd8, 0x8b, 0xd8, 0xc5, 0x62, 0x85, 0x20, 0x0a, 0xef, 0x26, 0x60, + 0x66, 0x88, 0x56, 0x92, 0x20, 0x61, 0x69, 0x6d, 0xcc, 0x28, 0x2c, 0xa4, 0x15, 0xf2, 0xbf, 0x24, + 0xc3, 0x44, 0x47, 0xd3, 0x6f, 0x69, 0x2d, 0x24, 0xc7, 0x88, 0x98, 0x5f, 0x4a, 0x79, 0x80, 0x06, + 0xea, 0x20, 0xab, 0x81, 0x2c, 0xfd, 0x48, 0x8e, 0xcf, 0xc7, 0x17, 0xd2, 0x4a, 0x48, 0x22, 0x3d, + 0x0d, 0xd3, 0x9d, 0xee, 0x81, 0x69, 0xe8, 0x6a, 0xc8, 0x0c, 0xe6, 0xe3, 0x0b, 0x49, 0x45, 0xa4, + 0x8a, 0xf5, 0xc0, 0xf8, 0x09, 0x98, 0xba, 0x83, 0xb4, 0x5b, 0x61, 0xd3, 0x0c, 0x31, 0xcd, 0x61, + 0x71, 0xc8, 0xb0, 0x02, 0xd9, 0x36, 0x72, 0x5d, 0xad, 0x85, 0x54, 0xef, 0xa8, 0x83, 0xe4, 0x04, + 0x79, 0xfa, 0xf9, 0x81, 0xa7, 0xef, 0x7f, 0xf2, 0x0c, 0x43, 0xed, 0x1d, 0x75, 0x90, 0x54, 0x82, + 0x34, 0xb2, 0xba, 0x6d, 0xca, 0x90, 0x3c, 0x21, 0x7e, 0x55, 0xab, 0xdb, 0xee, 0x67, 0x49, 0x61, + 0x18, 0xa3, 0x98, 0x70, 0x91, 0x73, 0xdb, 0xd0, 0x91, 0x3c, 0x4e, 0x08, 0x9e, 0x18, 0x20, 0xa8, + 0x53, 0x7d, 0x3f, 0x07, 0xc7, 0x49, 0x15, 0x48, 0xa3, 0x97, 0x3c, 0x64, 0xb9, 0x86, 0x6d, 0xc9, + 0x13, 0x84, 0xe4, 0xf1, 0x21, 0xab, 0x88, 0xcc, 0x46, 0x3f, 0x45, 0x80, 0x93, 0x2e, 0xc0, 0x84, + 0xdd, 0xf1, 0x0c, 0xdb, 0x72, 0xe5, 0xd4, 0xbc, 0xb0, 0x90, 0x59, 0x7e, 0x78, 0x68, 0x22, 0xd4, + 0xa8, 0x8d, 0xc2, 0x8d, 0xa5, 0x4d, 0x10, 0x5d, 0xbb, 0xeb, 0xe8, 0x48, 0xd5, 0xed, 0x06, 0x52, + 0x0d, 0xab, 0x69, 0xcb, 0x69, 0x42, 0x70, 0x6e, 0xf0, 0x41, 0x88, 0x61, 0xc5, 0x6e, 0xa0, 0x4d, + 0xab, 0x69, 0x2b, 0x39, 0xb7, 0xe7, 0x5a, 0x3a, 0x03, 0xe3, 0xee, 0x91, 0xe5, 0x69, 0x2f, 0xc9, + 0x59, 0x92, 0x21, 0xec, 0xaa, 0xf0, 0x3f, 0x49, 0x98, 0x1a, 0x25, 0xc5, 0xae, 0x40, 0xb2, 0x89, + 0x9f, 0x52, 0x8e, 0x9d, 0x26, 0x06, 0x14, 0xd3, 0x1b, 0xc4, 0xf1, 0x1f, 0x32, 0x88, 0x25, 0xc8, + 0x58, 0xc8, 0xf5, 0x50, 0x83, 0x66, 0x44, 0x7c, 0xc4, 0x9c, 0x02, 0x0a, 0x1a, 0x4c, 0xa9, 0xc4, + 0x0f, 0x95, 0x52, 0x37, 0x60, 0xca, 0x77, 0x49, 0x75, 0x34, 0xab, 0xc5, 0x73, 0x73, 0x29, 0xca, + 0x93, 0xc5, 0x2a, 0xc7, 0x29, 0x18, 0xa6, 0xe4, 0x50, 0xcf, 0xb5, 0xb4, 0x0e, 0x60, 0x5b, 0xc8, + 0x6e, 0xaa, 0x0d, 0xa4, 0x9b, 0x72, 0xea, 0x84, 0x28, 0xd5, 0xb0, 0xc9, 0x40, 0x94, 0x6c, 0x2a, + 0xd5, 0x4d, 0xe9, 0x72, 0x90, 0x6a, 0x13, 0x27, 0x64, 0xca, 0x36, 0xdd, 0x64, 0x03, 0xd9, 0xb6, + 0x0f, 0x39, 0x07, 0xe1, 0xbc, 0x47, 0x0d, 0xf6, 0x64, 0x69, 0xe2, 0xc4, 0x62, 0xe4, 0x93, 0x29, + 0x0c, 0x46, 0x1f, 0x6c, 0xd2, 0x09, 0x5f, 0x4a, 0x8f, 0x82, 0x2f, 0x50, 0x49, 0x5a, 0x01, 0xa9, + 0x42, 0x59, 0x2e, 0xdc, 0xd1, 0xda, 0x68, 0xee, 0x12, 0xe4, 0x7a, 0xc3, 0x23, 0xcd, 0x42, 0xd2, + 0xf5, 0x34, 0xc7, 0x23, 0x59, 0x98, 0x54, 0xe8, 0x85, 0x24, 0x42, 0x1c, 0x59, 0x0d, 0x52, 0xe5, + 0x92, 0x0a, 0xfe, 0x77, 0xee, 0x22, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0x60, 0xe1, 0x0b, 0xe3, 0x30, + 0x3b, 0x2c, 0xe7, 0x86, 0xa6, 0xff, 0x19, 0x18, 0xb7, 0xba, 0xed, 0x03, 0xe4, 0xc8, 0x71, 0xc2, + 0xc0, 0xae, 0xa4, 0x12, 0x24, 0x4d, 0xed, 0x00, 0x99, 0x72, 0x62, 0x5e, 0x58, 0xc8, 0x2d, 0x3f, + 0x3d, 0x52, 0x56, 0x2f, 0x6e, 0x61, 0x88, 0x42, 0x91, 0xd2, 0x27, 0x21, 0xc1, 0x4a, 0x1c, 0x66, + 0x78, 0x6a, 0x34, 0x06, 0x9c, 0x8b, 0x0a, 0xc1, 0x49, 0x0f, 0x41, 0x1a, 0xff, 0xa5, 0xb1, 0x1d, + 0x27, 0x3e, 0xa7, 0xb0, 0x00, 0xc7, 0x55, 0x9a, 0x83, 0x14, 0x49, 0xb3, 0x06, 0xe2, 0xad, 0xc1, + 0xbf, 0xc6, 0x0b, 0xd3, 0x40, 0x4d, 0xad, 0x6b, 0x7a, 0xea, 0x6d, 0xcd, 0xec, 0x22, 0x92, 0x30, + 0x69, 0x25, 0xcb, 0x84, 0x9f, 0xc6, 0x32, 0xe9, 0x1c, 0x64, 0x68, 0x56, 0x1a, 0x56, 0x03, 0xbd, + 0x44, 0xaa, 0x4f, 0x52, 0xa1, 0x89, 0xba, 0x89, 0x25, 0xf8, 0xf6, 0x37, 0x5d, 0xdb, 0xe2, 0x4b, + 0x4b, 0x6e, 0x81, 0x05, 0xe4, 0xf6, 0x17, 0xfb, 0x0b, 0xdf, 0x23, 0xc3, 0x1f, 0xaf, 0x3f, 0x17, + 0x0b, 0xdf, 0x8c, 0x41, 0x82, 0xec, 0xb7, 0x29, 0xc8, 0xec, 0xbd, 0xb8, 0x5b, 0x55, 0xd7, 0x6b, + 0xfb, 0xe5, 0xad, 0xaa, 0x28, 0x48, 0x39, 0x00, 0x22, 0xb8, 0xba, 0x55, 0x2b, 0xed, 0x89, 0x31, + 0xff, 0x7a, 0x73, 0x67, 0xef, 0xc2, 0xaa, 0x18, 0xf7, 0x01, 0xfb, 0x54, 0x90, 0x08, 0x1b, 0xac, + 0x2c, 0x8b, 0x49, 0x49, 0x84, 0x2c, 0x25, 0xd8, 0xbc, 0x51, 0x5d, 0xbf, 0xb0, 0x2a, 0x8e, 0xf7, + 0x4a, 0x56, 0x96, 0xc5, 0x09, 0x69, 0x12, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, 0xcf, + 0x59, 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, 0xf0, + 0x19, 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x8b, 0x7b, 0xd5, 0xba, + 0x98, 0xed, 0x71, 0x6b, 0x65, 0x59, 0x9c, 0xf4, 0x6f, 0x51, 0xdd, 0xd9, 0xdf, 0x16, 0x73, 0xd2, + 0x34, 0x4c, 0xd2, 0x5b, 0x70, 0x27, 0xa6, 0xfa, 0x44, 0x17, 0x56, 0x45, 0x31, 0x70, 0x84, 0xb2, + 0x4c, 0xf7, 0x08, 0x2e, 0xac, 0x8a, 0x52, 0xa1, 0x02, 0x49, 0x92, 0x5d, 0x92, 0x04, 0xb9, 0xad, + 0x52, 0xb9, 0xba, 0xa5, 0xd6, 0x76, 0xf7, 0x36, 0x6b, 0x3b, 0xa5, 0x2d, 0x51, 0x08, 0x64, 0x4a, + 0xf5, 0x53, 0xfb, 0x9b, 0x4a, 0x75, 0x5d, 0x8c, 0x85, 0x65, 0xbb, 0xd5, 0xd2, 0x5e, 0x75, 0x5d, + 0x8c, 0x17, 0x74, 0x98, 0x1d, 0x56, 0x67, 0x86, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x4e, 0x58, 0x62, + 0xc2, 0x35, 0xb0, 0xc4, 0x5f, 0x16, 0x60, 0x66, 0x48, 0xad, 0x1d, 0x7a, 0x93, 0xe7, 0x21, 0x49, + 0x53, 0x94, 0x76, 0x9f, 0x27, 0x87, 0x16, 0x6d, 0x92, 0xb0, 0x03, 0x1d, 0x88, 0xe0, 0xc2, 0x1d, + 0x38, 0x7e, 0x42, 0x07, 0xc6, 0x14, 0x03, 0x4e, 0xbe, 0x22, 0x80, 0x7c, 0x12, 0x77, 0x44, 0xa1, + 0x88, 0xf5, 0x14, 0x8a, 0x2b, 0xfd, 0x0e, 0x9c, 0x3f, 0xf9, 0x19, 0x06, 0xbc, 0x78, 0x43, 0x80, + 0x33, 0xc3, 0x07, 0x95, 0xa1, 0x3e, 0x7c, 0x12, 0xc6, 0xdb, 0xc8, 0x3b, 0xb4, 0x79, 0xb3, 0xfe, + 0xd8, 0x90, 0x16, 0x80, 0xd5, 0xfd, 0xb1, 0x62, 0xa8, 0x70, 0x0f, 0x89, 0x9f, 0x34, 0x6d, 0x50, + 0x6f, 0x06, 0x3c, 0xfd, 0x5c, 0x0c, 0x1e, 0x18, 0x4a, 0x3e, 0xd4, 0xd1, 0x47, 0x00, 0x0c, 0xab, + 0xd3, 0xf5, 0x68, 0x43, 0xa6, 0xf5, 0x29, 0x4d, 0x24, 0x64, 0xef, 0xe3, 0xda, 0xd3, 0xf5, 0x7c, + 0x7d, 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0xa5, 0xc0, 0xd1, 0x04, 0x71, 0x34, 0x7f, 0xc2, 0x93, + 0x0e, 0xf4, 0xba, 0x67, 0x41, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xda, 0x86, + 0xd5, 0x22, 0x05, 0x38, 0x55, 0x4c, 0x36, 0x35, 0xd3, 0x45, 0xca, 0x14, 0x55, 0xd7, 0xb9, 0x16, + 0x23, 0x48, 0x97, 0x71, 0x42, 0x88, 0xf1, 0x1e, 0x04, 0x55, 0xfb, 0x88, 0xc2, 0xd7, 0x26, 0x20, + 0x13, 0x1a, 0xeb, 0xa4, 0xf3, 0x90, 0xbd, 0xa9, 0xdd, 0xd6, 0x54, 0x3e, 0xaa, 0xd3, 0x48, 0x64, + 0xb0, 0x6c, 0x97, 0x8d, 0xeb, 0xcf, 0xc2, 0x2c, 0x31, 0xb1, 0xbb, 0x1e, 0x72, 0x54, 0xdd, 0xd4, + 0x5c, 0x97, 0x04, 0x2d, 0x45, 0x4c, 0x25, 0xac, 0xab, 0x61, 0x55, 0x85, 0x6b, 0xa4, 0x35, 0x98, + 0x21, 0x88, 0x76, 0xd7, 0xf4, 0x8c, 0x8e, 0x89, 0x54, 0xfc, 0xf2, 0xe0, 0x92, 0x42, 0xec, 0x7b, + 0x36, 0x8d, 0x2d, 0xb6, 0x99, 0x01, 0xf6, 0xc8, 0x95, 0xd6, 0xe1, 0x11, 0x02, 0x6b, 0x21, 0x0b, + 0x39, 0x9a, 0x87, 0x54, 0xf4, 0xd9, 0xae, 0x66, 0xba, 0xaa, 0x66, 0x35, 0xd4, 0x43, 0xcd, 0x3d, + 0x94, 0x67, 0x31, 0x41, 0x39, 0x26, 0x0b, 0xca, 0x59, 0x6c, 0xb8, 0xc1, 0xec, 0xaa, 0xc4, 0xac, + 0x64, 0x35, 0xae, 0x69, 0xee, 0xa1, 0x54, 0x84, 0x33, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, 0xa9, + 0xfa, 0x21, 0xd2, 0x6f, 0xa9, 0x5d, 0xaf, 0x79, 0x49, 0x7e, 0x28, 0x7c, 0x7f, 0xe2, 0x61, 0x9d, + 0xd8, 0x54, 0xb0, 0xc9, 0xbe, 0xd7, 0xbc, 0x24, 0xd5, 0x21, 0x8b, 0x17, 0xa3, 0x6d, 0xbc, 0x8c, + 0xd4, 0xa6, 0xed, 0x90, 0xce, 0x92, 0x1b, 0xb2, 0xb3, 0x43, 0x11, 0x5c, 0xac, 0x31, 0xc0, 0xb6, + 0xdd, 0x40, 0xc5, 0x64, 0x7d, 0xb7, 0x5a, 0x5d, 0x57, 0x32, 0x9c, 0xe5, 0xaa, 0xed, 0xe0, 0x84, + 0x6a, 0xd9, 0x7e, 0x80, 0x33, 0x34, 0xa1, 0x5a, 0x36, 0x0f, 0xef, 0x1a, 0xcc, 0xe8, 0x3a, 0x7d, + 0x66, 0x43, 0x57, 0xd9, 0x88, 0xef, 0xca, 0x62, 0x4f, 0xb0, 0x74, 0x7d, 0x83, 0x1a, 0xb0, 0x1c, + 0x77, 0xa5, 0xcb, 0xf0, 0x40, 0x10, 0xac, 0x30, 0x70, 0x7a, 0xe0, 0x29, 0xfb, 0xa1, 0x6b, 0x30, + 0xd3, 0x39, 0x1a, 0x04, 0x4a, 0x3d, 0x77, 0xec, 0x1c, 0xf5, 0xc3, 0x1e, 0x27, 0xaf, 0x6d, 0x0e, + 0xd2, 0x35, 0x0f, 0x35, 0xe4, 0x07, 0xc3, 0xd6, 0x21, 0x85, 0xb4, 0x04, 0xa2, 0xae, 0xab, 0xc8, + 0xd2, 0x0e, 0x4c, 0xa4, 0x6a, 0x0e, 0xb2, 0x34, 0x57, 0x3e, 0x17, 0x36, 0xce, 0xe9, 0x7a, 0x95, + 0x68, 0x4b, 0x44, 0x29, 0x3d, 0x05, 0xd3, 0xf6, 0xc1, 0x4d, 0x9d, 0x66, 0x96, 0xda, 0x71, 0x50, + 0xd3, 0x78, 0x49, 0x7e, 0x8c, 0x84, 0x69, 0x0a, 0x2b, 0x48, 0x5e, 0xed, 0x12, 0xb1, 0xf4, 0x24, + 0x88, 0xba, 0x7b, 0xa8, 0x39, 0x1d, 0xd2, 0xda, 0xdd, 0x8e, 0xa6, 0x23, 0xf9, 0x71, 0x6a, 0x4a, + 0xe5, 0x3b, 0x5c, 0x8c, 0x33, 0xdb, 0xbd, 0x63, 0x34, 0x3d, 0xce, 0xf8, 0x04, 0xcd, 0x6c, 0x22, + 0x63, 0x6c, 0x37, 0x60, 0xb6, 0x6b, 0x19, 0x96, 0x87, 0x9c, 0x8e, 0x83, 0xf0, 0x10, 0x4f, 0x77, + 0xa2, 0xfc, 0xcf, 0x13, 0x27, 0x8c, 0xe1, 0xfb, 0x61, 0x6b, 0x9a, 0x00, 0xca, 0x4c, 0x77, 0x50, + 0x58, 0x28, 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0x95, 0xda, + 0x3a, 0xee, 0x8e, 0x9f, 0xa9, 0x8a, 0x31, 0xdc, 0xa5, 0xb7, 0x36, 0xf7, 0xaa, 0xaa, 0xb2, 0xbf, + 0xb3, 0xb7, 0xb9, 0x5d, 0x15, 0xe3, 0x4f, 0xa5, 0x53, 0xdf, 0x9b, 0x10, 0xef, 0xde, 0xbd, 0x7b, + 0x37, 0x56, 0xf8, 0x76, 0x0c, 0x72, 0xbd, 0x93, 0xb1, 0xf4, 0x53, 0xf0, 0x20, 0x7f, 0x8d, 0x75, + 0x91, 0xa7, 0xde, 0x31, 0x1c, 0x92, 0xaa, 0x6d, 0x8d, 0xce, 0x96, 0x7e, 0x94, 0x67, 0x99, 0x55, + 0x1d, 0x79, 0x2f, 0x18, 0x0e, 0x4e, 0xc4, 0xb6, 0xe6, 0x49, 0x5b, 0x70, 0xce, 0xb2, 0x55, 0xd7, + 0xd3, 0xac, 0x86, 0xe6, 0x34, 0xd4, 0xe0, 0x00, 0x41, 0xd5, 0x74, 0x1d, 0xb9, 0xae, 0x4d, 0x5b, + 0x84, 0xcf, 0xf2, 0xb0, 0x65, 0xd7, 0x99, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0xb4, 0x2f, 0x23, 0xe2, + 0x27, 0x65, 0xc4, 0x43, 0x90, 0x6e, 0x6b, 0x1d, 0x15, 0x59, 0x9e, 0x73, 0x44, 0xe6, 0xb9, 0x94, + 0x92, 0x6a, 0x6b, 0x9d, 0x2a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0x7f, 0x8a, 0x43, 0x36, + 0x3c, 0xd3, 0xe1, 0x11, 0x59, 0x27, 0xf5, 0x5b, 0x20, 0x3b, 0xfc, 0xd1, 0xfb, 0x4e, 0x80, 0x8b, + 0x15, 0x5c, 0xd8, 0x8b, 0xe3, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, + 0xdf, 0x53, 0x0a, 0xbb, 0x92, 0x36, 0x60, 0xfc, 0xa6, 0x4b, 0xb8, 0xc7, 0x09, 0xf7, 0x63, 0xf7, + 0xe7, 0xbe, 0x5e, 0x27, 0xe4, 0xe9, 0xeb, 0x75, 0x75, 0xa7, 0xa6, 0x6c, 0x97, 0xb6, 0x14, 0x06, + 0x97, 0xce, 0x42, 0xc2, 0xd4, 0x5e, 0x3e, 0xea, 0x6d, 0x01, 0x44, 0x34, 0x6a, 0xe0, 0xcf, 0x42, + 0xe2, 0x0e, 0xd2, 0x6e, 0xf5, 0x16, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x09, 0x92, 0x24, 0x5e, + 0x12, 0x00, 0x8b, 0x98, 0x38, 0x26, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, + 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0xc6, 0x69, 0x10, 0xf0, 0xd6, 0xf0, + 0xc3, 0x20, 0x8e, 0xb1, 0x4b, 0xc6, 0x21, 0x70, 0xed, 0xfe, 0x76, 0xb9, 0xaa, 0x88, 0xb1, 0xf0, + 0xf2, 0xba, 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x9e, 0x9c, 0xfa, 0x6b, 0x01, 0x32, 0xa1, 0xf1, 0x0c, + 0x0f, 0x06, 0x9a, 0x69, 0xda, 0x77, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, 0x09, + 0x4b, 0x46, 0x5d, 0xb4, 0x1f, 0x8b, 0xf3, 0xaf, 0x0b, 0x20, 0xf6, 0x8f, 0x76, 0x7d, 0x0e, 0x0a, + 0x3f, 0x51, 0x07, 0x5f, 0x13, 0x20, 0xd7, 0x3b, 0xcf, 0xf5, 0xb9, 0x77, 0xfe, 0x27, 0xea, 0xde, + 0x3b, 0x31, 0x98, 0xec, 0x99, 0xe2, 0x46, 0xf5, 0xee, 0xb3, 0x30, 0x6d, 0x34, 0x50, 0xbb, 0x63, + 0x7b, 0xc8, 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x46, 0xa6, 0x5c, 0x20, 0x85, 0x62, 0xe9, 0xfe, 0x73, + 0xe2, 0xe2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xcc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, 0x57, + 0xdd, 0xa9, 0xbc, 0xa8, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0x85, 0x1d, 0x45, 0x34, 0xfa, 0xcc, + 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0x62, 0xbf, 0x53, 0xd2, 0x83, 0x30, 0xcc, 0x2d, 0x71, 0x4c, 0x9a, + 0x81, 0xa9, 0x9d, 0x9a, 0x5a, 0xdf, 0x5c, 0xaf, 0xaa, 0xd5, 0xab, 0x57, 0xab, 0x95, 0xbd, 0x3a, + 0x7d, 0x71, 0xf6, 0xad, 0xf7, 0x7a, 0x37, 0xf5, 0xab, 0x71, 0x98, 0x19, 0xe2, 0x89, 0x54, 0x62, + 0x33, 0x3b, 0x7d, 0x8d, 0x78, 0x66, 0x14, 0xef, 0x17, 0xf1, 0x54, 0xb0, 0xab, 0x39, 0x1e, 0x1b, + 0xf1, 0x9f, 0x04, 0x1c, 0x25, 0xcb, 0x33, 0x9a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, 0xa7, + 0x02, 0x39, 0x3d, 0x6a, 0xf8, 0x38, 0x48, 0x1d, 0xdb, 0x35, 0x3c, 0xe3, 0x36, 0x52, 0x0d, 0x8b, + 0x1f, 0x4a, 0xe0, 0xc1, 0x3e, 0xa1, 0x88, 0x5c, 0xb3, 0x69, 0x79, 0xbe, 0xb5, 0x85, 0x5a, 0x5a, + 0x9f, 0x35, 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x3c, 0x64, 0x1b, 0x76, 0x17, 0x8f, + 0x49, 0xd4, 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, 0x24, + 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x01, 0x53, 0x5a, 0xab, 0xe5, 0x60, 0x72, 0x4e, 0x44, 0x27, + 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x73, 0xd7, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, 0xda, + 0xa1, 0x67, 0x52, 0xb1, 0x85, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x3c, 0x64, 0x0d, 0x57, 0x0d, 0x0e, + 0x47, 0x63, 0xf3, 0xb1, 0x85, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0xac, 0xf0, 0x46, 0x0c, 0x72, + 0xbd, 0x87, 0xbb, 0xd2, 0x3a, 0xa4, 0x4c, 0x5b, 0xd7, 0x48, 0x6a, 0xd1, 0x5f, 0x16, 0x16, 0x22, + 0xce, 0x83, 0x17, 0xb7, 0x98, 0xbd, 0xe2, 0x23, 0xe7, 0xfe, 0x5e, 0x80, 0x14, 0x17, 0x4b, 0x67, + 0x20, 0xd1, 0xd1, 0xbc, 0x43, 0x42, 0x97, 0x2c, 0xc7, 0x44, 0x41, 0x21, 0xd7, 0x58, 0xee, 0x76, + 0x34, 0x8b, 0xa4, 0x00, 0x93, 0xe3, 0x6b, 0xbc, 0xae, 0x26, 0xd2, 0x1a, 0x64, 0xec, 0xb7, 0xdb, + 0x6d, 0x64, 0x79, 0x2e, 0x5f, 0x57, 0x26, 0xaf, 0x30, 0xb1, 0xf4, 0x34, 0x4c, 0x7b, 0x8e, 0x66, + 0x98, 0x3d, 0xb6, 0x09, 0x62, 0x2b, 0x72, 0x85, 0x6f, 0x5c, 0x84, 0xb3, 0x9c, 0xb7, 0x81, 0x3c, + 0x4d, 0x3f, 0x44, 0x8d, 0x00, 0x34, 0x4e, 0x4e, 0x0e, 0x1f, 0x64, 0x06, 0xeb, 0x4c, 0xcf, 0xb1, + 0x85, 0xef, 0x08, 0x30, 0xcd, 0x5f, 0x54, 0x1a, 0x7e, 0xb0, 0xb6, 0x01, 0x34, 0xcb, 0xb2, 0xbd, + 0x70, 0xb8, 0x06, 0x53, 0x79, 0x00, 0xb7, 0x58, 0xf2, 0x41, 0x4a, 0x88, 0x60, 0xae, 0x0d, 0x10, + 0x68, 0x4e, 0x0c, 0xdb, 0x39, 0xc8, 0xb0, 0x93, 0x7b, 0xf2, 0xf3, 0x0f, 0x7d, 0xb5, 0x05, 0x2a, + 0xc2, 0x6f, 0x34, 0xd2, 0x2c, 0x24, 0x0f, 0x50, 0xcb, 0xb0, 0xd8, 0x79, 0x22, 0xbd, 0xe0, 0xa7, + 0x94, 0x09, 0xff, 0x94, 0xb2, 0x7c, 0x03, 0x66, 0x74, 0xbb, 0xdd, 0xef, 0x6e, 0x59, 0xec, 0x7b, + 0xbd, 0x76, 0xaf, 0x09, 0x9f, 0x81, 0x60, 0xc4, 0xfc, 0x72, 0x2c, 0xbe, 0xb1, 0x5b, 0xfe, 0x6a, + 0x6c, 0x6e, 0x83, 0xe2, 0x76, 0xf9, 0x63, 0x2a, 0xa8, 0x69, 0x22, 0x1d, 0xbb, 0x0e, 0xdf, 0xff, + 0x18, 0x3c, 0xd3, 0x32, 0xbc, 0xc3, 0xee, 0xc1, 0xa2, 0x6e, 0xb7, 0x97, 0x5a, 0x76, 0xcb, 0x0e, + 0x7e, 0xee, 0xc2, 0x57, 0xe4, 0x82, 0xfc, 0xc7, 0x7e, 0xf2, 0x4a, 0xfb, 0xd2, 0xb9, 0xc8, 0xdf, + 0xc7, 0x8a, 0x3b, 0x30, 0xc3, 0x8c, 0x55, 0x72, 0xe6, 0x4e, 0x5f, 0x0d, 0xa4, 0xfb, 0x9e, 0xbb, + 0xc8, 0xdf, 0x78, 0x97, 0xf4, 0x6a, 0x65, 0x9a, 0x41, 0xb1, 0x8e, 0xbe, 0x40, 0x14, 0x15, 0x78, + 0xa0, 0x87, 0x8f, 0xee, 0x4b, 0xe4, 0x44, 0x30, 0x7e, 0x9b, 0x31, 0xce, 0x84, 0x18, 0xeb, 0x0c, + 0x5a, 0xac, 0xc0, 0xe4, 0x69, 0xb8, 0xfe, 0x96, 0x71, 0x65, 0x51, 0x98, 0x64, 0x03, 0xa6, 0x08, + 0x89, 0xde, 0x75, 0x3d, 0xbb, 0x4d, 0x8a, 0xde, 0xfd, 0x69, 0xfe, 0xee, 0x5d, 0xba, 0x51, 0x72, + 0x18, 0x56, 0xf1, 0x51, 0xc5, 0x22, 0x90, 0x9f, 0x19, 0x1a, 0x48, 0x37, 0x23, 0x18, 0xde, 0x64, + 0x8e, 0xf8, 0xf6, 0xc5, 0x4f, 0xc3, 0x2c, 0xfe, 0x9f, 0xd4, 0xa4, 0xb0, 0x27, 0xd1, 0xa7, 0x4c, + 0xf2, 0x77, 0x5e, 0xa1, 0x7b, 0x71, 0xc6, 0x27, 0x08, 0xf9, 0x14, 0x5a, 0xc5, 0x16, 0xf2, 0x3c, + 0xe4, 0xb8, 0xaa, 0x66, 0x0e, 0x73, 0x2f, 0xf4, 0x9a, 0x2e, 0x7f, 0xf1, 0xbd, 0xde, 0x55, 0xdc, + 0xa0, 0xc8, 0x92, 0x69, 0x16, 0xf7, 0xe1, 0xc1, 0x21, 0x59, 0x31, 0x02, 0xe7, 0xab, 0x8c, 0x73, + 0x76, 0x20, 0x33, 0x30, 0xed, 0x2e, 0x70, 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x36, 0xe3, 0x94, + 0x18, 0x96, 0x2f, 0x29, 0x66, 0xbc, 0x0e, 0xd3, 0xb7, 0x91, 0x73, 0x60, 0xbb, 0xec, 0x68, 0x64, + 0x04, 0xba, 0xd7, 0x18, 0xdd, 0x14, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x19, 0x52, 0x4d, 0x4d, + 0x47, 0x23, 0x50, 0x7c, 0x89, 0x51, 0x4c, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x65, 0xb3, 0xb6, + 0x14, 0x0d, 0x7f, 0x9d, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x3a, 0x76, 0xa7, 0x6b, 0xe2, 0x9e, 0x15, + 0x4d, 0xf1, 0x3b, 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x29, 0xc2, 0xfa, 0xbb, 0x9c, 0xc2, 0x0d, 0xc5, + 0xf3, 0x79, 0xc8, 0xd8, 0x96, 0x79, 0x64, 0x5b, 0xa3, 0x38, 0xf1, 0x7b, 0x8c, 0x01, 0x18, 0x04, + 0x13, 0x5c, 0x81, 0xf4, 0xa8, 0x0b, 0xf1, 0xfb, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x03, 0xa6, + 0x78, 0x81, 0x32, 0x6c, 0x6b, 0x04, 0x8a, 0x3f, 0x60, 0x14, 0xb9, 0x10, 0x8c, 0x3d, 0x86, 0x87, + 0x5c, 0xaf, 0x85, 0x46, 0x21, 0x79, 0x83, 0x3f, 0x06, 0x83, 0xb0, 0x50, 0x1e, 0x20, 0x4b, 0x3f, + 0x1c, 0x8d, 0xe1, 0x2b, 0x3c, 0x94, 0x1c, 0x83, 0x29, 0x2a, 0x30, 0xd9, 0xd6, 0x1c, 0xf7, 0x50, + 0x33, 0x47, 0x5a, 0x8e, 0x3f, 0x64, 0x1c, 0x59, 0x1f, 0xc4, 0x22, 0xd2, 0xb5, 0x4e, 0x43, 0xf3, + 0x55, 0x1e, 0x91, 0x10, 0x8c, 0x6d, 0x3d, 0xd7, 0x23, 0x07, 0x50, 0xa7, 0x61, 0xfb, 0x1a, 0xdf, + 0x7a, 0x14, 0xbb, 0x1d, 0x66, 0xbc, 0x02, 0x69, 0xd7, 0x78, 0x79, 0x24, 0x9a, 0x3f, 0xe2, 0x2b, + 0x4d, 0x00, 0x18, 0xfc, 0x22, 0x9c, 0x1d, 0xda, 0x26, 0x46, 0x20, 0xfb, 0x63, 0x46, 0x76, 0x66, + 0x48, 0xab, 0x60, 0x25, 0xe1, 0xb4, 0x94, 0x7f, 0xc2, 0x4b, 0x02, 0xea, 0xe3, 0xda, 0xc5, 0x2f, + 0x0a, 0xae, 0xd6, 0x3c, 0x5d, 0xd4, 0xfe, 0x94, 0x47, 0x8d, 0x62, 0x7b, 0xa2, 0xb6, 0x07, 0x67, + 0x18, 0xe3, 0xe9, 0xd6, 0xf5, 0xeb, 0xbc, 0xb0, 0x52, 0xf4, 0x7e, 0xef, 0xea, 0xfe, 0x0c, 0xcc, + 0xf9, 0xe1, 0xe4, 0x13, 0xa9, 0xab, 0xb6, 0xb5, 0xce, 0x08, 0xcc, 0xdf, 0x60, 0xcc, 0xbc, 0xe2, + 0xfb, 0x23, 0xad, 0xbb, 0xad, 0x75, 0x30, 0xf9, 0x0d, 0x90, 0x39, 0x79, 0xd7, 0x72, 0x90, 0x6e, + 0xb7, 0x2c, 0xe3, 0x65, 0xd4, 0x18, 0x81, 0xfa, 0xcf, 0xfa, 0x96, 0x6a, 0x3f, 0x04, 0xc7, 0xcc, + 0x9b, 0x20, 0xfa, 0xb3, 0x8a, 0x6a, 0xb4, 0x3b, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0x39, 0x5f, 0x29, + 0x1f, 0xb7, 0x49, 0x60, 0xc5, 0x2a, 0xe4, 0xc8, 0xe5, 0xa8, 0x29, 0xf9, 0x17, 0x8c, 0x68, 0x32, + 0x40, 0xb1, 0xc2, 0xa1, 0xdb, 0xed, 0x8e, 0xe6, 0x8c, 0x52, 0xff, 0xfe, 0x92, 0x17, 0x0e, 0x06, + 0x61, 0x85, 0xc3, 0x3b, 0xea, 0x20, 0xdc, 0xed, 0x47, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, + 0x28, 0xf8, 0xc0, 0x30, 0x02, 0xc5, 0x5f, 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x0a, 0x1a, 0xad, + 0x83, 0x5a, 0x86, 0xeb, 0x39, 0x74, 0x0e, 0xbe, 0x3f, 0xd5, 0xb7, 0xde, 0xeb, 0x1d, 0xc2, 0x94, + 0x10, 0xb4, 0x78, 0x1d, 0xa6, 0xfa, 0x46, 0x0c, 0x29, 0xea, 0x9b, 0x05, 0xf9, 0x67, 0x3f, 0x60, + 0xc5, 0xa8, 0x77, 0xc2, 0x28, 0x6e, 0xe1, 0x75, 0xef, 0x9d, 0x03, 0xa2, 0xc9, 0x5e, 0xf9, 0xc0, + 0x5f, 0xfa, 0x9e, 0x31, 0xa0, 0x78, 0x15, 0x26, 0x7b, 0x66, 0x80, 0x68, 0xaa, 0x9f, 0x63, 0x54, + 0xd9, 0xf0, 0x08, 0x50, 0x5c, 0x83, 0x04, 0xee, 0xe7, 0xd1, 0xf0, 0x9f, 0x67, 0x70, 0x62, 0x5e, + 0xfc, 0x04, 0xa4, 0x78, 0x1f, 0x8f, 0x86, 0xfe, 0x02, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x3d, 0x3c, + 0x1a, 0xfe, 0x8b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x7a, 0x08, 0xff, 0xe6, 0x97, 0x12, 0xac, 0x0e, + 0xf3, 0xd8, 0x5d, 0x81, 0x09, 0xd6, 0xbc, 0xa3, 0xd1, 0x9f, 0x63, 0x37, 0xe7, 0x88, 0xe2, 0x45, + 0x48, 0x8e, 0x18, 0xf0, 0x5f, 0x66, 0x50, 0x6a, 0x5f, 0xac, 0x40, 0x26, 0xd4, 0xb0, 0xa3, 0xe1, + 0xbf, 0xc2, 0xe0, 0x61, 0x14, 0x76, 0x9d, 0x35, 0xec, 0x68, 0x82, 0x5f, 0xe5, 0xae, 0x33, 0x04, + 0x0e, 0x1b, 0xef, 0xd5, 0xd1, 0xe8, 0x5f, 0xe3, 0x51, 0xe7, 0x90, 0xe2, 0xf3, 0x90, 0xf6, 0xeb, + 0x6f, 0x34, 0xfe, 0xd7, 0x19, 0x3e, 0xc0, 0xe0, 0x08, 0x84, 0xea, 0x7f, 0x34, 0xc5, 0xe7, 0x79, + 0x04, 0x42, 0x28, 0xbc, 0x8d, 0xfa, 0x7b, 0x7a, 0x34, 0xd3, 0x6f, 0xf0, 0x6d, 0xd4, 0xd7, 0xd2, + 0xf1, 0x6a, 0x92, 0x32, 0x18, 0x4d, 0xf1, 0x9b, 0x7c, 0x35, 0x89, 0x3d, 0x76, 0xa3, 0xbf, 0x49, + 0x46, 0x73, 0xfc, 0x16, 0x77, 0xa3, 0xaf, 0x47, 0x16, 0x77, 0x41, 0x1a, 0x6c, 0x90, 0xd1, 0x7c, + 0x5f, 0x60, 0x7c, 0xd3, 0x03, 0xfd, 0xb1, 0xf8, 0x02, 0x9c, 0x19, 0xde, 0x1c, 0xa3, 0x59, 0xbf, + 0xf8, 0x41, 0xdf, 0xeb, 0x4c, 0xb8, 0x37, 0x16, 0xf7, 0x82, 0x2a, 0x1b, 0x6e, 0x8c, 0xd1, 0xb4, + 0xaf, 0x7e, 0xd0, 0x5b, 0x68, 0xc3, 0x7d, 0xb1, 0x58, 0x02, 0x08, 0x7a, 0x52, 0x34, 0xd7, 0x6b, + 0x8c, 0x2b, 0x04, 0xc2, 0x5b, 0x83, 0xb5, 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, + 0x35, 0x78, 0x37, 0x8a, 0x46, 0xbf, 0xce, 0xb7, 0x06, 0x87, 0x14, 0xaf, 0x40, 0xca, 0xea, 0x9a, + 0x26, 0xce, 0x2d, 0xe9, 0xfe, 0x9f, 0x11, 0xc9, 0xff, 0xf2, 0x21, 0x03, 0x73, 0x40, 0x71, 0x0d, + 0x92, 0xa8, 0x7d, 0x80, 0x1a, 0x51, 0xc8, 0x7f, 0xfd, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x1e, + 0x80, 0xbe, 0x4c, 0x93, 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf6, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, + 0x04, 0xf4, 0x7b, 0x87, 0xfb, 0x13, 0xbc, 0xd7, 0x4b, 0x40, 0x5e, 0xc0, 0x2f, 0xc3, 0xc4, 0x4d, + 0xd7, 0xb6, 0x3c, 0xad, 0x15, 0x85, 0xfe, 0x77, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x6d, 0xdb, 0x41, + 0x9e, 0xd6, 0x72, 0xa3, 0xb0, 0xff, 0xc1, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x46, 0x79, + 0xee, 0xff, 0xe4, 0x60, 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0x6f, 0xa1, 0xa3, 0x28, 0xec, 0xfb, 0xdc, + 0x69, 0x66, 0x5f, 0xfc, 0x04, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0x7f, 0x31, 0x70, + 0x80, 0xc0, 0x77, 0x76, 0xbd, 0x86, 0x67, 0x44, 0x07, 0xfb, 0xbf, 0xd9, 0x4a, 0x73, 0xfb, 0x62, + 0x09, 0x32, 0xae, 0xd7, 0x68, 0x74, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xfe, 0x87, 0xfe, 0x4b, 0xae, + 0x8f, 0x29, 0x9f, 0x1f, 0x7e, 0x58, 0x07, 0x1b, 0xf6, 0x86, 0x4d, 0x8f, 0xe9, 0xe0, 0xff, 0x52, + 0xf0, 0xb0, 0x6e, 0xb7, 0x0f, 0x6c, 0x77, 0x29, 0x54, 0x86, 0x96, 0x6c, 0x8b, 0xd9, 0x4b, 0x71, + 0xdb, 0x42, 0x73, 0xa7, 0x3b, 0x98, 0x2b, 0x9c, 0x85, 0x64, 0xbd, 0x7b, 0x70, 0x70, 0x24, 0x89, + 0x10, 0x77, 0xbb, 0x07, 0xec, 0xcb, 0x12, 0xfc, 0x6f, 0xe1, 0xed, 0x38, 0x4c, 0x96, 0x4c, 0x73, + 0xef, 0xa8, 0x83, 0xdc, 0x9a, 0x85, 0x6a, 0x4d, 0x49, 0x86, 0x71, 0xf2, 0x24, 0xcf, 0x11, 0x33, + 0xe1, 0xda, 0x98, 0xc2, 0xae, 0x7d, 0xcd, 0x32, 0x39, 0xaf, 0x8c, 0xf9, 0x9a, 0x65, 0x5f, 0xb3, + 0x42, 0x8f, 0x2b, 0x7d, 0xcd, 0x8a, 0xaf, 0x59, 0x25, 0x87, 0x96, 0x71, 0x5f, 0xb3, 0xea, 0x6b, + 0xd6, 0xc8, 0xa1, 0xfc, 0xa4, 0xaf, 0x59, 0xf3, 0x35, 0x17, 0xc8, 0x31, 0x7c, 0xc2, 0xd7, 0x5c, + 0xf0, 0x35, 0x17, 0xc9, 0xe9, 0xfb, 0xb4, 0xaf, 0xb9, 0xe8, 0x6b, 0x2e, 0x91, 0x13, 0x77, 0xc9, + 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, 0x27, 0x24, 0x13, 0xbe, 0xe6, 0xb2, 0x34, 0x07, 0x13, 0xf4, + 0xc9, 0x9e, 0x25, 0x3f, 0xcb, 0x4e, 0x5d, 0x1b, 0x53, 0xb8, 0x20, 0xd0, 0x3d, 0x47, 0x3e, 0x13, + 0x19, 0x0f, 0x74, 0xcf, 0x05, 0xba, 0x65, 0xf2, 0xb1, 0xb4, 0x18, 0xe8, 0x96, 0x03, 0xdd, 0x8a, + 0x3c, 0x89, 0x13, 0x20, 0xd0, 0xad, 0x04, 0xba, 0x55, 0x39, 0x87, 0x57, 0x20, 0xd0, 0xad, 0x06, + 0xba, 0x35, 0x79, 0x6a, 0x5e, 0x58, 0xc8, 0x06, 0xba, 0x35, 0xe9, 0x19, 0xc8, 0xb8, 0xdd, 0x03, + 0x95, 0x7d, 0x45, 0x40, 0x3e, 0x47, 0xc9, 0x2c, 0xc3, 0x22, 0xce, 0x09, 0xb2, 0xac, 0xd7, 0xc6, + 0x14, 0x70, 0xbb, 0x07, 0xac, 0x42, 0x96, 0xb3, 0x40, 0x0e, 0x14, 0x54, 0xf2, 0x11, 0x66, 0xe1, + 0x2d, 0x01, 0xd2, 0x7b, 0x77, 0x6c, 0xf2, 0xa3, 0xac, 0xfb, 0x23, 0x5e, 0x5c, 0xee, 0xf4, 0xca, + 0x2a, 0xf9, 0xdd, 0x2c, 0x7d, 0x4d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, 0x92, 0x07, 0xf2, + 0x75, 0x6b, 0xd2, 0x12, 0x64, 0x43, 0x0f, 0xb4, 0x4c, 0xbe, 0x30, 0xe9, 0x7d, 0x22, 0x41, 0xc9, + 0x04, 0x4f, 0xb4, 0x5c, 0x4e, 0x02, 0x4e, 0x7b, 0xfc, 0xc7, 0xbb, 0x63, 0x17, 0x3e, 0x1f, 0x83, + 0x0c, 0x3d, 0x83, 0x24, 0x4f, 0x85, 0x6f, 0x45, 0x67, 0xf2, 0x23, 0xe6, 0xc6, 0x98, 0xc2, 0x05, + 0x92, 0x02, 0x40, 0x4d, 0x71, 0x86, 0x53, 0x4f, 0xca, 0xcf, 0xfe, 0xe3, 0xdb, 0xe7, 0x3e, 0x7e, + 0xe2, 0x0e, 0xc2, 0xb1, 0x5b, 0xa2, 0x15, 0x76, 0x71, 0xdf, 0xb0, 0xbc, 0xe7, 0x96, 0x2f, 0xe1, + 0x00, 0x07, 0x2c, 0xd2, 0x3e, 0xa4, 0x2a, 0x9a, 0x4b, 0x3e, 0x31, 0x23, 0xae, 0x27, 0xca, 0x17, + 0xff, 0xf7, 0xed, 0x73, 0x2b, 0x11, 0x8c, 0xac, 0xf8, 0x2d, 0x6e, 0x1f, 0x61, 0xd6, 0x0b, 0xab, + 0x18, 0x7e, 0x6d, 0x4c, 0xf1, 0xa9, 0xa4, 0x65, 0xee, 0xea, 0x8e, 0xd6, 0xa6, 0x9f, 0xd2, 0xc4, + 0xcb, 0xe2, 0xf1, 0xdb, 0xe7, 0xb2, 0xdb, 0x47, 0x81, 0x3c, 0x70, 0x05, 0x5f, 0x95, 0x53, 0x30, + 0x4e, 0x5d, 0x2d, 0xaf, 0xbf, 0x79, 0x2f, 0x3f, 0xf6, 0xd6, 0xbd, 0xfc, 0xd8, 0x3f, 0xdc, 0xcb, + 0x8f, 0xbd, 0x73, 0x2f, 0x2f, 0xbc, 0x7f, 0x2f, 0x2f, 0xfc, 0xe0, 0x5e, 0x5e, 0xb8, 0x7b, 0x9c, + 0x17, 0xbe, 0x72, 0x9c, 0x17, 0xbe, 0x7e, 0x9c, 0x17, 0xbe, 0x75, 0x9c, 0x17, 0xde, 0x3c, 0xce, + 0x8f, 0xbd, 0x75, 0x9c, 0x17, 0xde, 0x39, 0xce, 0x0b, 0xdf, 0x3b, 0xce, 0x8f, 0xbd, 0x7f, 0x9c, + 0x17, 0x7e, 0x70, 0x9c, 0x1f, 0xbb, 0xfb, 0xdd, 0xfc, 0xd8, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, + 0xb7, 0xa2, 0x0e, 0xd2, 0xdb, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3405,27 +3425,10 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3568,7 +3571,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -3637,7 +3640,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -3675,7 +3678,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -3724,7 +3727,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3732,43 +3735,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4321,8 +4324,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4334,7 +4337,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4362,7 +4365,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4377,12 +4380,12 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Sub = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -4392,7 +4395,7 @@ func (m *Subby) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4402,8 +4405,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *AllTypesOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4415,7 +4418,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4440,14 +4443,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4458,10 +4461,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -4475,7 +4478,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4495,7 +4498,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4515,7 +4518,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4535,7 +4538,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4555,7 +4558,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4576,7 +4579,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4594,10 +4597,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: if wireType != 5 { @@ -4608,10 +4611,10 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: if wireType != 1 { @@ -4622,14 +4625,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: if wireType != 1 { @@ -4640,14 +4643,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: if wireType != 0 { @@ -4661,7 +4664,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4682,7 +4685,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4697,7 +4700,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &AllTypesOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -4711,7 +4714,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4726,7 +4729,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &AllTypesOneOf_Field15{v} iNdEx = postIndex case 16: @@ -4741,7 +4744,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4756,14 +4759,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &AllTypesOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -4773,7 +4776,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4783,8 +4786,8 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { } return nil } -func (m *TwoOneofs) Unmarshal(data []byte) error { - l := len(data) +func (m *TwoOneofs) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4796,7 +4799,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4821,14 +4824,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.One = &TwoOneofs_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4839,10 +4842,10 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.One = &TwoOneofs_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -4856,7 +4859,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4876,7 +4879,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4891,7 +4894,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Two = &TwoOneofs_Field34{string(data[iNdEx:postIndex])} + m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -4905,7 +4908,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4920,7 +4923,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.Two = &TwoOneofs_Field35{v} iNdEx = postIndex case 36: @@ -4935,7 +4938,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4950,14 +4953,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Two = &TwoOneofs_SubMessage2{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -4967,7 +4970,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4977,8 +4980,8 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { } return nil } -func (m *CustomOneof) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomOneof) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4990,7 +4993,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5018,7 +5021,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5033,7 +5036,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Custom = &CustomOneof_Stringy{string(data[iNdEx:postIndex])} + m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5047,7 +5050,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5063,7 +5066,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } var vv github_com_gogo_protobuf_test_custom.Uint128 v := &vv - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Custom = &CustomOneof_CustomType{*v} @@ -5080,7 +5083,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -5100,7 +5103,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5110,7 +5113,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { m.Custom = &CustomOneof_MyCustomName{v} default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -5120,7 +5123,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5130,8 +5133,8 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } return nil } -func skipOne(data []byte) (n int, err error) { - l := len(data) +func skipOne(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -5142,7 +5145,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5160,7 +5163,7 @@ func skipOne(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -5177,7 +5180,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5200,7 +5203,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5211,7 +5214,7 @@ func skipOne(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOne(data[start:]) + next, err := skipOne(dAtA[start:]) if err != nil { return 0, err } @@ -5235,43 +5238,46 @@ var ( ErrIntOverflowOne = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 578 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x6f, 0x1a, 0x31, - 0x14, 0x00, 0x70, 0x8e, 0xff, 0x18, 0x68, 0xe8, 0x4d, 0xaf, 0x51, 0x05, 0x15, 0x6d, 0xa5, 0x0e, - 0x0d, 0x07, 0xf7, 0x07, 0xc8, 0xd8, 0x4b, 0x55, 0x75, 0xa1, 0x48, 0x24, 0x99, 0x23, 0x8e, 0x1e, - 0x04, 0x09, 0x70, 0x84, 0x7d, 0x8a, 0xd8, 0xf2, 0x19, 0xfa, 0x29, 0x3a, 0x76, 0xec, 0x47, 0xc8, - 0x98, 0xb1, 0xea, 0x80, 0x12, 0xba, 0x74, 0xcc, 0x18, 0x75, 0xea, 0xb3, 0x8f, 0xd8, 0x95, 0xaa, - 0xaa, 0x4b, 0x86, 0x27, 0xdb, 0xfc, 0xec, 0xc7, 0x7b, 0xe7, 0x3b, 0xf2, 0x74, 0x44, 0xe7, 0x01, - 0x65, 0x56, 0xb4, 0x98, 0x0f, 0x97, 0xec, 0x74, 0x38, 0x0b, 0x97, 0x16, 0x5d, 0x84, 0x8d, 0xb3, - 0x25, 0xe5, 0xd4, 0x4c, 0xe1, 0x74, 0x77, 0x6f, 0x32, 0xe5, 0xa7, 0x51, 0xd0, 0xc0, 0x9d, 0xd6, - 0x84, 0x4e, 0xa8, 0x25, 0x2d, 0x88, 0xc6, 0x72, 0x25, 0x17, 0x72, 0x16, 0x9f, 0xa9, 0x3f, 0x21, - 0x99, 0xc3, 0x28, 0x08, 0x56, 0x66, 0x85, 0xa4, 0x58, 0x14, 0x80, 0xf1, 0xcc, 0x78, 0x55, 0x18, - 0x88, 0x69, 0x7d, 0x9d, 0x22, 0xe5, 0x37, 0xb3, 0xd9, 0xd1, 0xea, 0x2c, 0x64, 0xfd, 0x45, 0xd8, - 0x1f, 0x9b, 0x40, 0xb2, 0xef, 0xa6, 0xe1, 0xec, 0x63, 0x4b, 0x6e, 0x33, 0xde, 0x27, 0x06, 0xd9, - 0xb1, 0x5c, 0x2b, 0xb1, 0x21, 0x89, 0x92, 0x54, 0x62, 0x2b, 0x71, 0x20, 0x85, 0x92, 0x51, 0xe2, - 0x28, 0x71, 0x21, 0x8d, 0x92, 0x52, 0xe2, 0x2a, 0xf1, 0x20, 0x83, 0x52, 0x56, 0xe2, 0x29, 0x69, - 0x43, 0x16, 0x25, 0xad, 0xa4, 0xad, 0xa4, 0x03, 0x39, 0x94, 0xc7, 0x4a, 0x3a, 0x4a, 0xba, 0x90, - 0x47, 0x31, 0x95, 0x74, 0x95, 0xec, 0x43, 0x01, 0x25, 0xa7, 0x64, 0xdf, 0xdc, 0x25, 0xb9, 0xb8, - 0xd3, 0x26, 0x10, 0xa4, 0x1d, 0xa4, 0x5c, 0xdc, 0x6a, 0x53, 0x5b, 0x0b, 0x8a, 0x68, 0x59, 0x6d, - 0x2d, 0x6d, 0x36, 0x94, 0xd0, 0x2a, 0xda, 0x6c, 0x6d, 0x0e, 0x94, 0xd1, 0xf2, 0xda, 0x1c, 0x6d, - 0x2e, 0x3c, 0x12, 0x37, 0xa0, 0xcd, 0xd5, 0xe6, 0xc1, 0x0e, 0x5a, 0x49, 0x9b, 0x67, 0xee, 0x91, - 0x22, 0x5e, 0xd5, 0xc9, 0x3c, 0x64, 0x6c, 0x38, 0x09, 0xa1, 0x82, 0x5e, 0xb4, 0x49, 0x43, 0xbc, - 0x13, 0xf2, 0x5a, 0x71, 0x2f, 0xc1, 0x0d, 0xbd, 0xd8, 0xfd, 0x12, 0x21, 0x3c, 0x64, 0xfc, 0x04, - 0x9d, 0x8e, 0xeb, 0x57, 0x06, 0x29, 0x1c, 0x9d, 0xd3, 0xbe, 0x58, 0xb0, 0x07, 0xbe, 0xdc, 0xfb, - 0xa2, 0x1d, 0x17, 0xea, 0xb2, 0x21, 0x63, 0x5b, 0xb4, 0xa3, 0x1b, 0x72, 0x3c, 0x78, 0x2e, 0x1b, - 0x52, 0xe6, 0x99, 0x16, 0x29, 0xfd, 0xd1, 0x90, 0x0d, 0x2f, 0xfe, 0xea, 0xc8, 0x18, 0x14, 0x75, - 0x47, 0xb6, 0x9f, 0x21, 0xe2, 0xb5, 0x17, 0x03, 0x3f, 0xa7, 0xf5, 0x4f, 0x49, 0x52, 0x3c, 0x88, - 0x18, 0xa7, 0x73, 0xd9, 0x95, 0xf8, 0xab, 0x43, 0xbe, 0x9c, 0x2e, 0x26, 0xab, 0x6d, 0x19, 0xf8, - 0xec, 0x58, 0xfc, 0x83, 0x39, 0x20, 0x24, 0xde, 0x2a, 0xde, 0xf0, 0xb8, 0x12, 0xbf, 0xf9, 0x7d, - 0x5d, 0x7b, 0xfd, 0xcf, 0x2f, 0x48, 0x3c, 0x3b, 0x6b, 0x24, 0xcf, 0x34, 0x8e, 0xa7, 0x0b, 0xde, - 0xb2, 0xbb, 0xe2, 0x01, 0x8f, 0x54, 0x16, 0xf3, 0x98, 0xe4, 0x0f, 0x86, 0x8c, 0xcb, 0x8c, 0xa2, - 0xf4, 0xb4, 0xdf, 0xf9, 0xb5, 0xae, 0x39, 0xff, 0xc9, 0x88, 0x27, 0x38, 0x9e, 0x68, 0xf4, 0x56, - 0x22, 0x6b, 0xdb, 0x15, 0xc7, 0x31, 0x71, 0x7e, 0xb4, 0x4d, 0x65, 0xda, 0xf7, 0xa5, 0x7e, 0x18, - 0xce, 0x43, 0x78, 0x29, 0x3e, 0x17, 0xbf, 0xb2, 0x59, 0xd7, 0x4a, 0xbd, 0x95, 0xfe, 0x5d, 0x97, - 0x22, 0x56, 0x7e, 0x9e, 0x64, 0xe3, 0x95, 0xff, 0xf6, 0xf2, 0xa6, 0x9a, 0xb8, 0xc2, 0xf8, 0x86, - 0x71, 0x7d, 0x53, 0x35, 0x6e, 0x31, 0xee, 0x30, 0x2e, 0x36, 0x55, 0xe3, 0x33, 0xc6, 0x17, 0x8c, - 0xaf, 0x18, 0x97, 0x1b, 0xdc, 0x87, 0xe3, 0x35, 0xc6, 0x4f, 0x9c, 0xdf, 0xe2, 0x78, 0x87, 0xe3, - 0xc5, 0x8f, 0x6a, 0xe2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x10, 0x91, 0xf4, 0xfe, 0x7c, 0x04, - 0x00, 0x00, + // 602 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0x1b, 0x31, + 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0x42, 0x49, 0x6f, 0x72, 0x51, 0x65, 0xac, 0xb4, 0x95, + 0x3c, 0x94, 0x84, 0x5c, 0x12, 0xfe, 0x8c, 0x3d, 0xaa, 0x2a, 0x0b, 0x45, 0x3a, 0x60, 0x46, 0x39, + 0x6a, 0x42, 0xa4, 0xe4, 0x8c, 0xe2, 0x3b, 0xa1, 0x6c, 0x7c, 0x86, 0x7e, 0x8a, 0x8e, 0x1d, 0xfb, + 0x11, 0x18, 0x33, 0x56, 0x1d, 0x22, 0xee, 0xba, 0x74, 0x64, 0x44, 0x9d, 0x2a, 0xdf, 0x11, 0xbb, + 0x52, 0x55, 0x75, 0xe9, 0x94, 0x7b, 0xef, 0x77, 0x7e, 0x79, 0xef, 0x6c, 0xe3, 0xe7, 0xe7, 0x72, + 0x1c, 0x48, 0xd5, 0x8c, 0xc3, 0x71, 0x7f, 0xa2, 0x2e, 0xfb, 0x23, 0x31, 0x69, 0xca, 0x50, 0x34, + 0xae, 0x26, 0x32, 0x92, 0x4e, 0x41, 0x86, 0x62, 0x63, 0x6b, 0x30, 0x8c, 0x2e, 0xe3, 0xa0, 0x71, + 0x2e, 0xc7, 0xcd, 0x81, 0x1c, 0xc8, 0x66, 0x66, 0x41, 0x7c, 0x91, 0x45, 0x59, 0x90, 0x3d, 0xe5, + 0x6b, 0xea, 0xcf, 0x70, 0xf1, 0x38, 0x0e, 0x82, 0xa9, 0x53, 0xc3, 0x05, 0x15, 0x07, 0x04, 0x18, + 0xf0, 0x55, 0x5f, 0x3f, 0xd6, 0xe7, 0x05, 0xbc, 0xf6, 0x66, 0x34, 0x3a, 0x99, 0x5e, 0x09, 0x75, + 0x14, 0x8a, 0xa3, 0x0b, 0x87, 0xe0, 0xd2, 0xbb, 0xa1, 0x18, 0x7d, 0x68, 0x65, 0xaf, 0x41, 0x0f, + 0xf9, 0x8f, 0xb1, 0x11, 0x97, 0x2c, 0x31, 0xe0, 0x4b, 0x46, 0x5c, 0x23, 0x6d, 0x52, 0x60, 0xc0, + 0x8b, 0x46, 0xda, 0x46, 0x3a, 0x64, 0x99, 0x01, 0x2f, 0x18, 0xe9, 0x18, 0xe9, 0x92, 0x22, 0x03, + 0xbe, 0x66, 0xa4, 0x6b, 0x64, 0x87, 0x94, 0x18, 0xf0, 0x65, 0x23, 0x3b, 0x46, 0x76, 0xc9, 0x0a, + 0x03, 0xfe, 0xd4, 0xc8, 0xae, 0x91, 0x3d, 0x52, 0x66, 0xc0, 0x1d, 0x23, 0x7b, 0x46, 0xf6, 0xc9, + 0x2a, 0x03, 0xbe, 0x62, 0x64, 0xdf, 0xd9, 0xc0, 0x2b, 0xf9, 0x64, 0xdb, 0x04, 0x33, 0xe0, 0xeb, + 0x3d, 0xe4, 0x2f, 0x12, 0xd6, 0x5a, 0xa4, 0xc2, 0x80, 0x97, 0xac, 0xb5, 0xac, 0xb9, 0xa4, 0xca, + 0x80, 0xd7, 0xac, 0xb9, 0xd6, 0xda, 0x64, 0x8d, 0x01, 0x2f, 0x5b, 0x6b, 0x5b, 0xeb, 0x90, 0x27, + 0x7a, 0x07, 0xac, 0x75, 0xac, 0x75, 0xc9, 0x3a, 0x03, 0x5e, 0xb5, 0xd6, 0x75, 0xb6, 0x70, 0x45, + 0xc5, 0xc1, 0xd9, 0x58, 0x28, 0xd5, 0x1f, 0x08, 0x52, 0x63, 0xc0, 0x2b, 0x2e, 0x6e, 0xe8, 0x33, + 0x91, 0x6d, 0x6b, 0x0f, 0xf9, 0x58, 0xc5, 0xc1, 0x61, 0xee, 0x5e, 0x15, 0xe3, 0x48, 0xa8, 0xe8, + 0x4c, 0x86, 0x42, 0x5e, 0xd4, 0x67, 0x80, 0x57, 0x4f, 0xae, 0xe5, 0x91, 0x0e, 0xd4, 0x7f, 0xde, + 0xdc, 0x45, 0xd3, 0xed, 0x0e, 0xa9, 0x67, 0x03, 0x81, 0xbf, 0x48, 0x58, 0xeb, 0x92, 0x17, 0xd9, + 0x40, 0xc6, 0xba, 0x4e, 0x13, 0x57, 0x7f, 0x1b, 0xc8, 0x25, 0x2f, 0xff, 0x98, 0x08, 0xfc, 0x8a, + 0x9d, 0xc8, 0xf5, 0x8a, 0x58, 0x1f, 0x7b, 0xfd, 0x13, 0x5d, 0xcb, 0xfa, 0xc7, 0x25, 0x5c, 0x39, + 0x88, 0x55, 0x24, 0xc7, 0xd9, 0x54, 0xfa, 0xaf, 0x8e, 0xa3, 0xc9, 0x30, 0x1c, 0x4c, 0x1f, 0xdb, + 0x40, 0xfe, 0x22, 0xe1, 0xf8, 0x18, 0xe7, 0xaf, 0xea, 0x13, 0x9e, 0x77, 0xe2, 0x6d, 0x7f, 0x9b, + 0x6f, 0xbe, 0xfe, 0xeb, 0x0d, 0xd2, 0xdf, 0xae, 0x79, 0x9e, 0xad, 0x69, 0x9c, 0x0e, 0xc3, 0xa8, + 0xe5, 0xee, 0xe9, 0x0f, 0x6c, 0xab, 0x38, 0xa7, 0xb8, 0x7c, 0xd0, 0x57, 0x51, 0x56, 0x51, 0xb7, + 0xbe, 0xec, 0xed, 0xfe, 0x9c, 0x6f, 0xb6, 0xff, 0x51, 0xb1, 0xaf, 0xa2, 0x68, 0x7a, 0x25, 0x1a, + 0x87, 0x53, 0x5d, 0x75, 0xa7, 0xa3, 0x97, 0xf7, 0x90, 0x6f, 0x4a, 0x39, 0xee, 0xa2, 0xd5, 0xf7, + 0xfd, 0xb1, 0x20, 0xaf, 0xf4, 0x75, 0xf1, 0x6a, 0xe9, 0x7c, 0xb3, 0x7a, 0x38, 0xb5, 0x79, 0xdb, + 0x8a, 0x8e, 0xbc, 0x32, 0x2e, 0xe5, 0xad, 0x7a, 0x6f, 0x6f, 0x13, 0x8a, 0x66, 0x09, 0x45, 0x5f, + 0x13, 0x8a, 0xee, 0x12, 0x0a, 0xf7, 0x09, 0x85, 0x87, 0x84, 0xc2, 0x4d, 0x4a, 0xe1, 0x53, 0x4a, + 0xe1, 0x73, 0x4a, 0xe1, 0x4b, 0x4a, 0xe1, 0x36, 0xa5, 0x68, 0x96, 0x52, 0xb8, 0x4b, 0x29, 0xfc, + 0x48, 0x29, 0xba, 0x4f, 0x29, 0x3c, 0xa4, 0x14, 0xdd, 0x7c, 0xa7, 0xe8, 0x57, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xdd, 0x1c, 0x58, 0x6c, 0x7c, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto index aa2637f5..633f0122 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go index fd53b248..f1181cea 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go @@ -36,18 +36,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -70,18 +70,18 @@ func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -104,18 +104,18 @@ func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -138,18 +138,18 @@ func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -256,9 +256,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,9 +273,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -290,9 +290,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,9 +307,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -324,9 +324,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -341,9 +341,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -358,9 +358,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -375,9 +375,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -394,12 +394,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -409,12 +409,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestAllTypesOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -424,12 +424,12 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { func TestTwoOneofsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -439,12 +439,12 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { func TestCustomOneofVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -508,13 +508,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -530,13 +530,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -552,13 +552,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -574,13 +574,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go index f9612a0c..ab5afc6a 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import unsafe "unsafe" @@ -46,7 +44,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -92,49 +92,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -581,19 +581,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -823,16 +823,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -887,11 +887,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -993,240 +993,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3727 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6b, 0x6c, 0x23, 0xe5, - 0xd5, 0xc6, 0xf1, 0x25, 0xf6, 0xb1, 0xe3, 0x38, 0x93, 0xb0, 0xeb, 0x0d, 0xb0, 0x61, 0xbd, 0x5c, - 0x96, 0x05, 0x92, 0xdd, 0x64, 0xb3, 0x17, 0xf3, 0x7d, 0xa0, 0x38, 0xf1, 0x86, 0xac, 0x92, 0x38, - 0xdf, 0x24, 0x86, 0x85, 0xef, 0xc7, 0x68, 0x62, 0x4f, 0x1c, 0xef, 0xda, 0x33, 0xfe, 0x3c, 0xe3, - 0xdd, 0x0d, 0xbf, 0xf8, 0x44, 0x2f, 0x42, 0x55, 0x6f, 0xb4, 0x52, 0xb9, 0xb7, 0x20, 0xb5, 0x50, - 0x7a, 0x83, 0xde, 0x54, 0xf5, 0x57, 0xa5, 0x8a, 0x96, 0x5f, 0x15, 0xed, 0xaf, 0xaa, 0xaa, 0x56, - 0x40, 0x91, 0x4a, 0x5b, 0xda, 0x52, 0x69, 0xa5, 0xa2, 0xee, 0x9f, 0x9e, 0xf7, 0x36, 0x17, 0xdb, - 0xc9, 0x38, 0xa8, 0x94, 0x46, 0xb2, 0xe2, 0x39, 0xe7, 0x3c, 0xcf, 0xbc, 0xef, 0x79, 0xcf, 0x7b, - 0xce, 0x99, 0x77, 0x0c, 0x3f, 0x3d, 0x0a, 0x37, 0x56, 0x0c, 0xa3, 0x52, 0xd3, 0x26, 0x1a, 0x4d, - 0xc3, 0x32, 0xd6, 0x5b, 0x1b, 0x13, 0x65, 0xcd, 0x2c, 0x35, 0xab, 0x0d, 0xcb, 0x68, 0x8e, 0x53, - 0x99, 0x34, 0xc8, 0x2c, 0xc6, 0x85, 0x45, 0x66, 0x09, 0x86, 0x4e, 0x57, 0x6b, 0xda, 0x9c, 0x6d, - 0xb8, 0xaa, 0x59, 0xd2, 0x49, 0x08, 0x6d, 0xa0, 0x30, 0x1d, 0xb8, 0x31, 0x78, 0x28, 0x3e, 0x79, - 0xd3, 0x78, 0x1b, 0x68, 0xdc, 0x8b, 0x58, 0x21, 0x62, 0x99, 0x22, 0x32, 0x6f, 0x87, 0x60, 0xb8, - 0x8b, 0x56, 0x92, 0x20, 0xa4, 0xab, 0x75, 0xc2, 0x18, 0x38, 0x14, 0x93, 0xe9, 0x77, 0x29, 0x0d, - 0xfd, 0x0d, 0xb5, 0x74, 0x5e, 0xad, 0x68, 0xe9, 0x3e, 0x2a, 0x16, 0x97, 0xd2, 0x7e, 0x80, 0xb2, - 0xd6, 0xd0, 0xf4, 0xb2, 0xa6, 0x97, 0xb6, 0xd2, 0x41, 0x1c, 0x45, 0x4c, 0x76, 0x49, 0xa4, 0xdb, - 0x61, 0xa8, 0xd1, 0x5a, 0xaf, 0x55, 0x4b, 0x8a, 0xcb, 0x0c, 0xd0, 0x2c, 0x2c, 0xa7, 0x98, 0x62, - 0xce, 0x31, 0xbe, 0x15, 0x06, 0x2f, 0x6a, 0xea, 0x79, 0xb7, 0x69, 0x9c, 0x9a, 0x26, 0x89, 0xd8, - 0x65, 0x38, 0x0b, 0x89, 0xba, 0x66, 0x9a, 0x38, 0x00, 0xc5, 0xda, 0x6a, 0x68, 0xe9, 0x10, 0x9d, - 0xfd, 0x8d, 0x1d, 0xb3, 0x6f, 0x9f, 0x79, 0x9c, 0xa3, 0xd6, 0x10, 0x24, 0xcd, 0x40, 0x4c, 0xd3, - 0x5b, 0x75, 0xc6, 0x10, 0xde, 0xc6, 0x7f, 0x79, 0xb4, 0x68, 0x67, 0x89, 0x12, 0x18, 0xa7, 0xe8, - 0x37, 0xb5, 0xe6, 0x85, 0x6a, 0x49, 0x4b, 0x47, 0x28, 0xc1, 0xad, 0x1d, 0x04, 0xab, 0x4c, 0xdf, - 0xce, 0x21, 0x70, 0x38, 0x95, 0x98, 0x76, 0xc9, 0xd2, 0x74, 0xb3, 0x6a, 0xe8, 0xe9, 0x7e, 0x4a, - 0x72, 0x73, 0x97, 0x55, 0xd4, 0x6a, 0xe5, 0x76, 0x0a, 0x07, 0x27, 0x1d, 0x87, 0x7e, 0xa3, 0x61, - 0xe1, 0x37, 0x33, 0x1d, 0xc5, 0xf5, 0x89, 0x4f, 0x5e, 0xdf, 0x35, 0x10, 0x0a, 0xcc, 0x46, 0x16, - 0xc6, 0xd2, 0x02, 0xa4, 0x4c, 0xa3, 0xd5, 0x2c, 0x69, 0x4a, 0xc9, 0x28, 0x6b, 0x4a, 0x55, 0xdf, - 0x30, 0xd2, 0x31, 0x4a, 0x30, 0xd6, 0x39, 0x11, 0x6a, 0x38, 0x8b, 0x76, 0x0b, 0x68, 0x26, 0x27, - 0x4d, 0xcf, 0xb5, 0xb4, 0x07, 0x22, 0xe6, 0x96, 0x6e, 0xa9, 0x97, 0xd2, 0x09, 0x1a, 0x21, 0xfc, - 0x2a, 0xf3, 0xf7, 0x30, 0x0c, 0xf6, 0x12, 0x62, 0x77, 0x41, 0x78, 0x83, 0xcc, 0x12, 0x03, 0x6c, - 0x17, 0x3e, 0x60, 0x18, 0xaf, 0x13, 0x23, 0x1f, 0xd0, 0x89, 0x33, 0x10, 0xd7, 0x35, 0xd3, 0xd2, - 0xca, 0x2c, 0x22, 0x82, 0x3d, 0xc6, 0x14, 0x30, 0x50, 0x67, 0x48, 0x85, 0x3e, 0x50, 0x48, 0x9d, - 0x85, 0x41, 0x7b, 0x48, 0x4a, 0x53, 0xd5, 0x2b, 0x22, 0x36, 0x27, 0xfc, 0x46, 0x32, 0x9e, 0x17, - 0x38, 0x99, 0xc0, 0xe4, 0xa4, 0xe6, 0xb9, 0x96, 0xe6, 0x00, 0x0c, 0x5d, 0x33, 0x36, 0x70, 0x7b, - 0x95, 0x6a, 0x18, 0x27, 0xdd, 0xbd, 0x54, 0x20, 0x26, 0x1d, 0x5e, 0x32, 0x98, 0xb4, 0x54, 0x93, - 0x4e, 0x39, 0xa1, 0xd6, 0xbf, 0x4d, 0xa4, 0x2c, 0xb1, 0x4d, 0xd6, 0x11, 0x6d, 0x45, 0x48, 0x36, - 0x35, 0x12, 0xf7, 0xe8, 0x62, 0x36, 0xb3, 0x18, 0x1d, 0xc4, 0xb8, 0xef, 0xcc, 0x64, 0x0e, 0x63, - 0x13, 0x1b, 0x68, 0xba, 0x2f, 0xa5, 0x83, 0x60, 0x0b, 0x14, 0x1a, 0x56, 0x40, 0xb3, 0x50, 0x42, - 0x08, 0x97, 0x51, 0x36, 0x7a, 0x12, 0x92, 0x5e, 0xf7, 0x48, 0x23, 0x10, 0x36, 0x2d, 0xb5, 0x69, - 0xd1, 0x28, 0x0c, 0xcb, 0xec, 0x42, 0x4a, 0x41, 0x10, 0x93, 0x0c, 0xcd, 0x72, 0x61, 0x99, 0x7c, - 0x1d, 0x3d, 0x01, 0x03, 0x9e, 0xdb, 0xf7, 0x0a, 0xcc, 0x3c, 0x1e, 0x81, 0x91, 0x6e, 0x31, 0xd7, - 0x35, 0xfc, 0x71, 0xfb, 0x60, 0x04, 0xac, 0x6b, 0x4d, 0x8c, 0x3b, 0xc2, 0xc0, 0xaf, 0x30, 0xa2, - 0xc2, 0x35, 0x75, 0x5d, 0xab, 0x61, 0x34, 0x05, 0x0e, 0x25, 0x27, 0x6f, 0xef, 0x29, 0xaa, 0xc7, - 0x17, 0x09, 0x44, 0x66, 0x48, 0xe9, 0x6e, 0x08, 0xf1, 0x14, 0x47, 0x18, 0x0e, 0xf7, 0xc6, 0x40, - 0x62, 0x51, 0xa6, 0x38, 0xe9, 0x3a, 0x88, 0x91, 0xff, 0xcc, 0xb7, 0x11, 0x3a, 0xe6, 0x28, 0x11, - 0x10, 0xbf, 0x4a, 0xa3, 0x10, 0xa5, 0x61, 0x56, 0xd6, 0x44, 0x69, 0xb0, 0xaf, 0xc9, 0xc2, 0x94, - 0xb5, 0x0d, 0xb5, 0x55, 0xb3, 0x94, 0x0b, 0x6a, 0xad, 0xa5, 0xd1, 0x80, 0xc1, 0x85, 0xe1, 0xc2, - 0xfb, 0x88, 0x4c, 0x1a, 0x83, 0x38, 0x8b, 0xca, 0x2a, 0x62, 0x2e, 0xd1, 0xec, 0x13, 0x96, 0x59, - 0xa0, 0x2e, 0x10, 0x09, 0xb9, 0xfd, 0x39, 0x13, 0xf7, 0x02, 0x5f, 0x5a, 0x7a, 0x0b, 0x22, 0xa0, - 0xb7, 0x3f, 0xd1, 0x9e, 0xf8, 0x6e, 0xe8, 0x3e, 0xbd, 0xf6, 0x58, 0xcc, 0xfc, 0xb0, 0x0f, 0x42, - 0x74, 0xbf, 0x0d, 0x42, 0x7c, 0xed, 0x81, 0x95, 0xbc, 0x32, 0x57, 0x28, 0xe6, 0x16, 0xf3, 0xa9, - 0x80, 0x94, 0x04, 0xa0, 0x82, 0xd3, 0x8b, 0x85, 0x99, 0xb5, 0x54, 0x9f, 0x7d, 0xbd, 0xb0, 0xbc, - 0x76, 0xfc, 0x58, 0x2a, 0x68, 0x03, 0x8a, 0x4c, 0x10, 0x72, 0x1b, 0x4c, 0x4d, 0xa6, 0xc2, 0x18, - 0x09, 0x09, 0x46, 0xb0, 0x70, 0x36, 0x3f, 0x87, 0x16, 0x11, 0xaf, 0x04, 0x6d, 0xfa, 0xa5, 0x01, - 0x88, 0x51, 0x49, 0xae, 0x50, 0x58, 0x4c, 0x45, 0x6d, 0xce, 0xd5, 0x35, 0x79, 0x61, 0x79, 0x3e, - 0x15, 0xb3, 0x39, 0xe7, 0xe5, 0x42, 0x71, 0x25, 0x05, 0x36, 0xc3, 0x52, 0x7e, 0x75, 0x75, 0x66, - 0x3e, 0x9f, 0x8a, 0xdb, 0x16, 0xb9, 0x07, 0xd6, 0xf2, 0xab, 0xa9, 0x84, 0x67, 0x58, 0x78, 0x8b, - 0x01, 0xfb, 0x16, 0xf9, 0xe5, 0xe2, 0x52, 0x2a, 0x29, 0x0d, 0xc1, 0x00, 0xbb, 0x85, 0x18, 0xc4, - 0x60, 0x9b, 0x08, 0x47, 0x9a, 0x72, 0x06, 0xc2, 0x58, 0x86, 0x3c, 0x02, 0xb4, 0x90, 0x32, 0xb3, - 0x10, 0xa6, 0xd1, 0x85, 0x51, 0x9c, 0x5c, 0x9c, 0xc9, 0xe5, 0x17, 0x95, 0xc2, 0xca, 0xda, 0x42, - 0x61, 0x79, 0x66, 0x11, 0x7d, 0x67, 0xcb, 0xe4, 0xfc, 0xff, 0x14, 0x17, 0xe4, 0xfc, 0x1c, 0xfa, - 0xcf, 0x25, 0x5b, 0xc9, 0xcf, 0xac, 0xa1, 0x2c, 0x98, 0x39, 0x0c, 0x23, 0xdd, 0xf2, 0x4c, 0xb7, - 0x9d, 0x91, 0x79, 0x3e, 0x00, 0xc3, 0x5d, 0x52, 0x66, 0xd7, 0x5d, 0x74, 0x0f, 0x84, 0x59, 0xa4, - 0xb1, 0x22, 0x72, 0x5b, 0xd7, 0xdc, 0x4b, 0xe3, 0xae, 0xa3, 0x90, 0x50, 0x9c, 0xbb, 0x90, 0x06, - 0xb7, 0x29, 0xa4, 0x84, 0xa2, 0x23, 0x9c, 0x1e, 0x09, 0x40, 0x7a, 0x3b, 0x6e, 0x9f, 0xfd, 0xde, - 0xe7, 0xd9, 0xef, 0x77, 0xb5, 0x0f, 0xe0, 0xc0, 0xf6, 0x73, 0xe8, 0x18, 0xc5, 0x0b, 0x01, 0xd8, - 0xd3, 0xbd, 0xdf, 0xe8, 0x3a, 0x86, 0xbb, 0x21, 0x52, 0xd7, 0xac, 0x4d, 0x43, 0xd4, 0xdc, 0x5b, - 0xba, 0x64, 0x72, 0xa2, 0x6e, 0xf7, 0x15, 0x47, 0xb9, 0x4b, 0x41, 0x70, 0xbb, 0xa6, 0x81, 0x8d, - 0xa6, 0x63, 0xa4, 0x8f, 0xf6, 0xc1, 0xb5, 0x5d, 0xc9, 0xbb, 0x0e, 0xf4, 0x06, 0x80, 0xaa, 0xde, - 0x68, 0x59, 0xac, 0xae, 0xb2, 0x34, 0x13, 0xa3, 0x12, 0xba, 0x85, 0x49, 0x0a, 0x69, 0x59, 0xb6, - 0x3e, 0x48, 0xf5, 0xc0, 0x44, 0xd4, 0xe0, 0xa4, 0x33, 0xd0, 0x10, 0x1d, 0xe8, 0xfe, 0x6d, 0x66, - 0xda, 0x51, 0xb2, 0x8e, 0x40, 0xaa, 0x54, 0xab, 0x6a, 0xba, 0xa5, 0x98, 0x56, 0x53, 0x53, 0xeb, - 0x55, 0xbd, 0x42, 0xf3, 0x68, 0x34, 0x1b, 0xde, 0x50, 0x6b, 0xa6, 0x26, 0x0f, 0x32, 0xf5, 0xaa, - 0xd0, 0x12, 0x04, 0x2d, 0x16, 0x4d, 0x17, 0x22, 0xe2, 0x41, 0x30, 0xb5, 0x8d, 0xc8, 0xfc, 0xaa, - 0x1f, 0xe2, 0xae, 0xee, 0x4c, 0x3a, 0x00, 0x89, 0x73, 0xea, 0x05, 0x55, 0x11, 0x1d, 0x37, 0xf3, - 0x44, 0x9c, 0xc8, 0x56, 0x78, 0xd7, 0x7d, 0x04, 0x46, 0xa8, 0x09, 0xce, 0x11, 0x6f, 0x54, 0xaa, - 0xa9, 0xa6, 0x49, 0x9d, 0x16, 0xa5, 0xa6, 0x12, 0xd1, 0x15, 0x88, 0x6a, 0x56, 0x68, 0xa4, 0x69, - 0x18, 0xa6, 0x88, 0x3a, 0x26, 0xde, 0x6a, 0xa3, 0xa6, 0x29, 0xe4, 0x19, 0xc0, 0xa4, 0xf9, 0xd4, - 0x1e, 0xd9, 0x10, 0xb1, 0x58, 0xe2, 0x06, 0x64, 0x44, 0xa6, 0x34, 0x0f, 0x37, 0x50, 0x58, 0x45, - 0xd3, 0xb5, 0xa6, 0x6a, 0x69, 0x8a, 0xf6, 0x7f, 0x2d, 0xb4, 0x55, 0x54, 0xbd, 0xac, 0x6c, 0xaa, - 0xe6, 0x66, 0x7a, 0xc4, 0x4d, 0xb0, 0x8f, 0xd8, 0xce, 0x73, 0xd3, 0x3c, 0xb5, 0x9c, 0xd1, 0xcb, - 0xf7, 0xa2, 0x9d, 0x94, 0x85, 0x3d, 0x94, 0x08, 0x9d, 0x82, 0x73, 0x56, 0x4a, 0x9b, 0x5a, 0xe9, - 0xbc, 0xd2, 0xb2, 0x36, 0x4e, 0xa6, 0xaf, 0x73, 0x33, 0xd0, 0x41, 0xae, 0x52, 0x9b, 0x59, 0x62, - 0x52, 0x44, 0x0b, 0x69, 0x15, 0x12, 0x64, 0x3d, 0xea, 0xd5, 0x87, 0x70, 0xd8, 0x46, 0x93, 0xd6, - 0x88, 0x64, 0x97, 0xcd, 0xed, 0x72, 0xe2, 0x78, 0x81, 0x03, 0x96, 0xb0, 0x3f, 0xcd, 0x86, 0x57, - 0x57, 0xf2, 0xf9, 0x39, 0x39, 0x2e, 0x58, 0x4e, 0x1b, 0x4d, 0x12, 0x53, 0x15, 0xc3, 0xf6, 0x71, - 0x9c, 0xc5, 0x54, 0xc5, 0x10, 0x1e, 0x46, 0x7f, 0x95, 0x4a, 0x6c, 0xda, 0xf8, 0xec, 0xc2, 0x9b, - 0x75, 0x33, 0x9d, 0xf2, 0xf8, 0xab, 0x54, 0x9a, 0x67, 0x06, 0x3c, 0xcc, 0x4d, 0xdc, 0x12, 0xd7, - 0x3a, 0xfe, 0x72, 0x03, 0x87, 0x3a, 0x66, 0xd9, 0x0e, 0xc5, 0x3b, 0x36, 0xb6, 0x3a, 0x81, 0x92, - 0xe7, 0x8e, 0x8d, 0xad, 0x76, 0xd8, 0xcd, 0xf4, 0x01, 0xac, 0xa9, 0x95, 0xd0, 0xe5, 0xe5, 0xf4, - 0x5e, 0xb7, 0xb5, 0x4b, 0x21, 0x4d, 0x60, 0x20, 0x97, 0x14, 0x4d, 0x57, 0xd7, 0x71, 0xed, 0xd5, - 0x26, 0x7e, 0x31, 0xd3, 0x63, 0x6e, 0xe3, 0x64, 0xa9, 0x94, 0xa7, 0xda, 0x19, 0xaa, 0x94, 0x0e, - 0xc3, 0x90, 0xb1, 0x7e, 0xae, 0xc4, 0x82, 0x4b, 0x41, 0x9e, 0x8d, 0xea, 0xa5, 0xf4, 0x4d, 0xd4, - 0x4d, 0x83, 0x44, 0x41, 0x43, 0x6b, 0x85, 0x8a, 0xa5, 0xdb, 0x90, 0xdc, 0xdc, 0x54, 0x9b, 0x0d, - 0x5a, 0xa4, 0x4d, 0x74, 0xaa, 0x96, 0xbe, 0x99, 0x99, 0x32, 0xf9, 0xb2, 0x10, 0x4b, 0x79, 0x18, - 0x23, 0x93, 0xd7, 0x55, 0xdd, 0x50, 0x5a, 0xa6, 0xa6, 0x38, 0x43, 0xb4, 0xd7, 0xe2, 0x16, 0x32, - 0x2c, 0xf9, 0x7a, 0x61, 0x56, 0x34, 0x31, 0x99, 0x09, 0x23, 0xb1, 0x3c, 0x67, 0x61, 0xa4, 0xa5, - 0x57, 0x75, 0x0c, 0x71, 0xd4, 0x10, 0x30, 0xdb, 0xb0, 0xe9, 0xdf, 0xf7, 0x6f, 0xd3, 0x74, 0x17, - 0xdd, 0xd6, 0x2c, 0x48, 0xe4, 0xe1, 0x56, 0xa7, 0x30, 0x93, 0x85, 0x84, 0x3b, 0x76, 0xa4, 0x18, - 0xb0, 0xe8, 0xc1, 0xea, 0x86, 0x15, 0x75, 0xb6, 0x30, 0x47, 0x6a, 0xe1, 0x83, 0x79, 0x2c, 0x6c, - 0x58, 0x93, 0x17, 0x17, 0xd6, 0xf2, 0x8a, 0x5c, 0x5c, 0x5e, 0x5b, 0x58, 0xca, 0xa7, 0x82, 0x87, - 0x63, 0xd1, 0x77, 0xfa, 0x53, 0x0f, 0xe3, 0x5f, 0x5f, 0xe6, 0xd5, 0x3e, 0x48, 0x7a, 0xfb, 0x60, - 0xe9, 0xbf, 0x60, 0xaf, 0x78, 0x68, 0x35, 0x35, 0x4b, 0xb9, 0x58, 0x6d, 0xd2, 0x70, 0xae, 0xab, - 0xac, 0x93, 0xb4, 0x57, 0x62, 0x84, 0x5b, 0xe1, 0xe3, 0xfd, 0xfd, 0x68, 0x73, 0x9a, 0x9a, 0x48, - 0x8b, 0x30, 0x86, 0x2e, 0xc3, 0x5e, 0x53, 0x2f, 0xab, 0xcd, 0xb2, 0xe2, 0x1c, 0x17, 0x28, 0x6a, - 0x09, 0xe3, 0xc0, 0x34, 0x58, 0x25, 0xb1, 0x59, 0xae, 0xd7, 0x8d, 0x55, 0x6e, 0xec, 0xa4, 0xd8, - 0x19, 0x6e, 0xda, 0x16, 0x35, 0xc1, 0xed, 0xa2, 0x06, 0x7b, 0xaf, 0xba, 0xda, 0xc0, 0xb0, 0xb1, - 0x9a, 0x5b, 0xb4, 0x7b, 0x8b, 0xca, 0x51, 0x14, 0xe4, 0xc9, 0xf5, 0x87, 0xb7, 0x06, 0x6e, 0x3f, - 0xfe, 0x36, 0x08, 0x09, 0x77, 0x07, 0x47, 0x1a, 0xe2, 0x12, 0x4d, 0xf3, 0x01, 0x9a, 0x05, 0x0e, - 0xee, 0xd8, 0xef, 0x8d, 0xcf, 0x92, 0xfc, 0x9f, 0x8d, 0xb0, 0xbe, 0x4a, 0x66, 0x48, 0x52, 0x7b, - 0x49, 0xac, 0x69, 0xac, 0x5b, 0x8f, 0xca, 0xfc, 0x0a, 0x93, 0x5d, 0xe4, 0x9c, 0x49, 0xb9, 0x23, - 0x94, 0xfb, 0xa6, 0x9d, 0xb9, 0xcf, 0xac, 0x52, 0xf2, 0xd8, 0x99, 0x55, 0x65, 0xb9, 0x20, 0x2f, - 0xcd, 0x2c, 0xca, 0x1c, 0x2e, 0xed, 0x83, 0x50, 0x4d, 0x7d, 0x68, 0xcb, 0x5b, 0x29, 0xa8, 0xa8, - 0x57, 0xc7, 0x23, 0x03, 0x39, 0xf2, 0xf0, 0xe6, 0x67, 0x2a, 0xfa, 0x10, 0x43, 0x7f, 0x02, 0xc2, - 0xd4, 0x5f, 0x12, 0x00, 0xf7, 0x58, 0xea, 0x1a, 0x29, 0x0a, 0xa1, 0xd9, 0x82, 0x4c, 0xc2, 0x1f, - 0xe3, 0x9d, 0x49, 0x95, 0x95, 0x85, 0xfc, 0x2c, 0xee, 0x80, 0xcc, 0x34, 0x44, 0x98, 0x13, 0xc8, - 0xd6, 0xb0, 0xdd, 0x80, 0x20, 0x76, 0xc9, 0x39, 0x02, 0x42, 0x5b, 0x5c, 0xca, 0xe5, 0xe5, 0x54, - 0x9f, 0x7b, 0x79, 0x7f, 0x1c, 0x80, 0xb8, 0xab, 0xa1, 0x22, 0xa5, 0x5c, 0xad, 0xd5, 0x8c, 0x8b, - 0x8a, 0x5a, 0xab, 0x62, 0x86, 0x62, 0xeb, 0x03, 0x54, 0x34, 0x43, 0x24, 0xbd, 0xfa, 0xef, 0xdf, - 0x12, 0x9b, 0xcf, 0x06, 0x20, 0xd5, 0xde, 0x8c, 0xb5, 0x0d, 0x30, 0xf0, 0x91, 0x0e, 0xf0, 0xe9, - 0x00, 0x24, 0xbd, 0x1d, 0x58, 0xdb, 0xf0, 0x0e, 0x7c, 0xa4, 0xc3, 0x7b, 0x2a, 0x00, 0x03, 0x9e, - 0xbe, 0xeb, 0x3f, 0x6a, 0x74, 0x4f, 0x06, 0x61, 0xb8, 0x0b, 0x0e, 0x13, 0x10, 0x6b, 0x50, 0x59, - 0xcf, 0x7c, 0x67, 0x2f, 0xf7, 0x1a, 0x27, 0xf5, 0x6f, 0x45, 0x6d, 0x5a, 0xbc, 0x9f, 0xc5, 0x7a, - 0x59, 0x2d, 0x63, 0x52, 0xad, 0x6e, 0x54, 0xb1, 0x7d, 0x63, 0x4f, 0x2c, 0xac, 0x6b, 0x1d, 0x74, - 0xe4, 0xec, 0xf1, 0xf8, 0x0e, 0x90, 0x1a, 0x86, 0x59, 0xb5, 0xaa, 0x17, 0xc8, 0xf1, 0x9c, 0x78, - 0x90, 0x26, 0x5d, 0x6c, 0x48, 0x4e, 0x09, 0xcd, 0x82, 0x6e, 0xd9, 0xd6, 0xba, 0x56, 0x51, 0xdb, - 0xac, 0x49, 0x1a, 0x0a, 0xca, 0x29, 0xa1, 0xb1, 0xad, 0xb1, 0xd1, 0x2c, 0x1b, 0x2d, 0xd2, 0x10, - 0x30, 0x3b, 0x92, 0xf5, 0x02, 0x72, 0x9c, 0xc9, 0x6c, 0x13, 0xde, 0xb1, 0x39, 0x4f, 0xf0, 0x09, - 0x39, 0xce, 0x64, 0xcc, 0xe4, 0x56, 0x18, 0x54, 0x2b, 0x95, 0x26, 0x21, 0x17, 0x44, 0xac, 0x0d, - 0x4d, 0xda, 0x62, 0x6a, 0x38, 0x7a, 0x06, 0xa2, 0xc2, 0x0f, 0xa4, 0xb0, 0x10, 0x4f, 0x60, 0xcd, - 0xa7, 0xe7, 0x28, 0x7d, 0xe4, 0xa1, 0x5e, 0x17, 0x4a, 0xbc, 0x69, 0xd5, 0x54, 0x9c, 0x03, 0xbd, - 0x3e, 0xd4, 0x47, 0xe5, 0x78, 0xd5, 0xb4, 0x4f, 0x70, 0x32, 0x2f, 0x60, 0x79, 0xf5, 0x1e, 0x48, - 0x4a, 0x73, 0x10, 0xad, 0x19, 0x18, 0x1f, 0x04, 0xc1, 0x4e, 0xc3, 0x0f, 0xf9, 0x9c, 0x61, 0x8e, - 0x2f, 0x72, 0x7b, 0xd9, 0x46, 0x8e, 0xfe, 0x22, 0x00, 0x51, 0x21, 0xc6, 0x42, 0x11, 0x6a, 0xa8, - 0xd6, 0x26, 0xa5, 0x0b, 0xe7, 0xfa, 0x52, 0x01, 0x99, 0x5e, 0x13, 0x39, 0x76, 0x33, 0x3a, 0x0d, - 0x01, 0x2e, 0x27, 0xd7, 0x64, 0x5d, 0x6b, 0x9a, 0x5a, 0xa6, 0x0d, 0xae, 0x51, 0xaf, 0xe3, 0x4a, - 0x9a, 0x62, 0x5d, 0xb9, 0x7c, 0x96, 0x8b, 0xc9, 0xb9, 0xb8, 0xd5, 0x54, 0xab, 0x35, 0x8f, 0x6d, - 0x88, 0xda, 0xa6, 0x84, 0xc2, 0x36, 0xce, 0xc2, 0x3e, 0xc1, 0x5b, 0xd6, 0x2c, 0x15, 0x9b, 0xe7, - 0xb2, 0x03, 0x8a, 0xd0, 0xd3, 0xae, 0xbd, 0xdc, 0x60, 0x8e, 0xeb, 0x05, 0x36, 0x77, 0x16, 0x1b, - 0x59, 0xa3, 0xde, 0xee, 0x89, 0x5c, 0xaa, 0xed, 0xb9, 0xcb, 0xbc, 0x37, 0xf0, 0x20, 0x38, 0x4d, - 0xc5, 0xf3, 0x7d, 0xc1, 0xf9, 0x95, 0xdc, 0x4b, 0x7d, 0xa3, 0xf3, 0x0c, 0xb7, 0x22, 0x3c, 0x28, - 0x6b, 0x1b, 0x35, 0xad, 0x44, 0xbc, 0x03, 0xcf, 0x1d, 0x84, 0x3b, 0x2b, 0x55, 0x6b, 0xb3, 0xb5, - 0x3e, 0x8e, 0x77, 0x98, 0xa8, 0x18, 0x15, 0xc3, 0x79, 0x9d, 0x41, 0xae, 0xe8, 0x05, 0xfd, 0xc6, - 0x5f, 0x69, 0xc4, 0x6c, 0xe9, 0xa8, 0xef, 0xfb, 0x8f, 0xec, 0x32, 0x0c, 0x73, 0x63, 0x85, 0x9e, - 0xa9, 0xb2, 0x16, 0x54, 0xda, 0xf1, 0x81, 0x3c, 0xfd, 0xca, 0xdb, 0xb4, 0x24, 0xc8, 0x43, 0x1c, - 0x4a, 0x74, 0xac, 0x49, 0xcd, 0xca, 0x70, 0xad, 0x87, 0x8f, 0xc5, 0x30, 0x3e, 0x72, 0xef, 0xcc, - 0xf8, 0x2a, 0x67, 0x1c, 0x76, 0x31, 0xae, 0x72, 0x68, 0x76, 0x16, 0x06, 0x76, 0xc3, 0xf5, 0x33, - 0xce, 0x95, 0xd0, 0xdc, 0x24, 0xf3, 0x30, 0x48, 0x49, 0x4a, 0x2d, 0xd3, 0x32, 0xea, 0x34, 0x41, - 0xec, 0x4c, 0xf3, 0xf3, 0xb7, 0x59, 0x50, 0x25, 0x09, 0x6c, 0xd6, 0x46, 0x65, 0xef, 0x83, 0x11, - 0x22, 0xa1, 0x7b, 0xd0, 0xcd, 0xe6, 0x7f, 0x84, 0x90, 0xfe, 0xe5, 0x23, 0x2c, 0xf6, 0x86, 0x6d, - 0x02, 0x17, 0xaf, 0x6b, 0x25, 0x2a, 0x9a, 0x85, 0xb9, 0x0d, 0x9f, 0xff, 0x6a, 0x35, 0x69, 0xc7, - 0x77, 0x0c, 0xe9, 0x27, 0xde, 0xf5, 0xae, 0xc4, 0x3c, 0x43, 0xce, 0xd4, 0x6a, 0xd9, 0x22, 0xec, - 0xed, 0xb2, 0xb2, 0x3d, 0x70, 0x3e, 0xc9, 0x39, 0x47, 0x3a, 0x56, 0x97, 0xd0, 0xae, 0x80, 0x90, - 0xdb, 0xeb, 0xd1, 0x03, 0xe7, 0x53, 0x9c, 0x53, 0xe2, 0x58, 0xb1, 0x2c, 0x84, 0xf1, 0x0c, 0x0c, - 0xe1, 0x93, 0xfa, 0xba, 0x61, 0xf2, 0xe7, 0xde, 0x1e, 0xe8, 0x9e, 0xe6, 0x74, 0x83, 0x1c, 0x48, - 0x9f, 0x82, 0x09, 0xd7, 0x29, 0x88, 0x6e, 0xe0, 0x03, 0x50, 0x0f, 0x14, 0xcf, 0x70, 0x8a, 0x7e, - 0x62, 0x4f, 0xa0, 0x33, 0x90, 0xa8, 0x18, 0x3c, 0x0d, 0xfb, 0xc3, 0x9f, 0xe5, 0xf0, 0xb8, 0xc0, - 0x70, 0x8a, 0x86, 0xd1, 0x68, 0xd5, 0x48, 0x8e, 0xf6, 0xa7, 0xf8, 0xb2, 0xa0, 0x10, 0x18, 0x4e, - 0xb1, 0x0b, 0xb7, 0x7e, 0x45, 0x50, 0x98, 0x2e, 0x7f, 0xde, 0x43, 0xce, 0x7a, 0x6b, 0x5b, 0x86, - 0xde, 0xcb, 0x20, 0x9e, 0xe3, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x2e, 0x88, 0xf5, 0xba, 0x10, 0x5f, - 0xe5, 0xf0, 0xa8, 0x26, 0x56, 0x00, 0xf7, 0x99, 0x48, 0x32, 0xe4, 0xdd, 0x8a, 0x3f, 0xc5, 0xd7, - 0x38, 0x45, 0xd2, 0x05, 0xe3, 0xd3, 0xb0, 0x34, 0xd3, 0xc2, 0x47, 0xf5, 0x1e, 0x48, 0x5e, 0x10, - 0xd3, 0xe0, 0x10, 0xee, 0xca, 0x75, 0x4d, 0x2f, 0x6d, 0xf6, 0xc6, 0xf0, 0xa2, 0x70, 0xa5, 0xc0, - 0x10, 0x0a, 0xcc, 0x3c, 0x75, 0xb5, 0x89, 0x0f, 0xd7, 0xb5, 0x9e, 0x96, 0xe3, 0xeb, 0x9c, 0x23, - 0x61, 0x83, 0xb8, 0x47, 0x5a, 0xfa, 0x6e, 0x68, 0x5e, 0x12, 0x1e, 0x71, 0xc1, 0xf8, 0xd6, 0xc3, - 0x27, 0x53, 0xd2, 0x49, 0xec, 0x86, 0xed, 0x1b, 0x62, 0xeb, 0x31, 0xec, 0x92, 0x9b, 0x11, 0x57, - 0xda, 0xc4, 0x47, 0xf0, 0x5e, 0x68, 0xbe, 0x29, 0x56, 0x9a, 0x02, 0x08, 0xf8, 0x01, 0xd8, 0xd7, - 0x35, 0xd5, 0xf7, 0x40, 0xf6, 0x2d, 0x4e, 0xb6, 0xa7, 0x4b, 0xba, 0xe7, 0x29, 0x61, 0xb7, 0x94, - 0xdf, 0x16, 0x29, 0x41, 0x6b, 0xe3, 0x5a, 0x21, 0x6d, 0xac, 0xa9, 0x6e, 0xec, 0xce, 0x6b, 0xdf, - 0x11, 0x5e, 0x63, 0x58, 0x8f, 0xd7, 0xd6, 0x60, 0x0f, 0x67, 0xdc, 0xdd, 0xba, 0xbe, 0x2c, 0x12, - 0x2b, 0x43, 0x17, 0xbd, 0xab, 0xfb, 0xbf, 0x30, 0x6a, 0xbb, 0x53, 0x74, 0x60, 0xa6, 0x42, 0x0e, - 0x06, 0xfc, 0x99, 0x5f, 0xe1, 0xcc, 0x22, 0xe3, 0xdb, 0x2d, 0x9c, 0xb9, 0xa4, 0x36, 0x08, 0xf9, - 0x59, 0x48, 0x0b, 0xf2, 0x96, 0x8e, 0x0d, 0xbe, 0x51, 0xd1, 0x71, 0x19, 0xcb, 0x3d, 0x50, 0x7f, - 0xb7, 0x6d, 0xa9, 0x8a, 0x2e, 0x38, 0x61, 0x5e, 0x80, 0x94, 0xdd, 0x6f, 0x28, 0xd5, 0x7a, 0xc3, - 0xc0, 0xd6, 0x72, 0x67, 0xc6, 0xef, 0x89, 0x95, 0xb2, 0x71, 0x0b, 0x14, 0x96, 0xcd, 0x43, 0x92, - 0x5e, 0xf6, 0x1a, 0x92, 0xdf, 0xe7, 0x44, 0x03, 0x0e, 0x8a, 0x27, 0x0e, 0xec, 0x94, 0xb0, 0xe7, - 0xed, 0x25, 0xff, 0xfd, 0x40, 0x24, 0x0e, 0x0e, 0x61, 0xd1, 0x37, 0xd8, 0x56, 0x89, 0x25, 0xbf, - 0xd7, 0xaf, 0xe9, 0xff, 0xbf, 0xc2, 0xf7, 0xac, 0xb7, 0x10, 0x67, 0x17, 0x89, 0x7b, 0xbc, 0xe5, - 0xd2, 0x9f, 0xec, 0x91, 0x2b, 0xb6, 0x87, 0x3c, 0xd5, 0x32, 0x7b, 0x1a, 0x06, 0x3c, 0xa5, 0xd2, - 0x9f, 0xea, 0x63, 0x9c, 0x2a, 0xe1, 0xae, 0x94, 0xd9, 0x69, 0x08, 0x91, 0xb2, 0xe7, 0x0f, 0xff, - 0x38, 0x87, 0x53, 0xf3, 0xec, 0x7f, 0x43, 0x54, 0x94, 0x3b, 0x7f, 0xe8, 0x27, 0x38, 0xd4, 0x86, - 0x10, 0xb8, 0x28, 0x75, 0xfe, 0xf0, 0x4f, 0x0a, 0xb8, 0x80, 0x10, 0x78, 0xef, 0x2e, 0xfc, 0xc9, - 0xa7, 0x42, 0x3c, 0x5d, 0x09, 0xdf, 0x91, 0x77, 0x3e, 0xac, 0xc6, 0xf9, 0xa3, 0x1f, 0xe5, 0x37, - 0x17, 0x88, 0xec, 0x09, 0x08, 0xf7, 0xe8, 0xf0, 0x4f, 0x73, 0x28, 0xb3, 0xc7, 0x0a, 0x12, 0x77, - 0xd5, 0x35, 0x7f, 0xf8, 0x67, 0x38, 0xdc, 0x8d, 0x22, 0x43, 0xe7, 0x75, 0xcd, 0x9f, 0xe0, 0xb3, - 0x62, 0xe8, 0x1c, 0x41, 0xdc, 0x26, 0x4a, 0x9a, 0x3f, 0xfa, 0x73, 0xc2, 0xeb, 0x02, 0x82, 0xbb, - 0x29, 0x66, 0xa7, 0x29, 0x7f, 0xfc, 0xe7, 0x39, 0xde, 0xc1, 0x10, 0x0f, 0xb8, 0xd2, 0xa4, 0x3f, - 0xc5, 0x63, 0xc2, 0x03, 0x2e, 0x14, 0xd9, 0x46, 0xed, 0xa5, 0xcf, 0x9f, 0xe9, 0x0b, 0x62, 0x1b, - 0xb5, 0x55, 0x3e, 0xb2, 0x9a, 0x34, 0x5b, 0xf8, 0x53, 0x7c, 0x51, 0xac, 0x26, 0xb5, 0x27, 0xc3, - 0x68, 0xaf, 0x25, 0xfe, 0x1c, 0x5f, 0x12, 0xc3, 0x68, 0x2b, 0x25, 0x58, 0x99, 0xa4, 0xce, 0x3a, - 0xe2, 0xcf, 0xf7, 0x38, 0xe7, 0x1b, 0xea, 0x28, 0x23, 0xd9, 0xfb, 0x61, 0x4f, 0xf7, 0x1a, 0xe2, - 0xcf, 0xfa, 0xc4, 0x95, 0xb6, 0xae, 0xdf, 0x5d, 0x42, 0xb0, 0xe4, 0x8d, 0x74, 0xab, 0x1f, 0xfe, - 0xb4, 0x4f, 0x5e, 0xf1, 0x3e, 0xd8, 0xb9, 0xcb, 0x07, 0x76, 0x68, 0xe0, 0xa4, 0x6e, 0x7f, 0xae, - 0xa7, 0x39, 0x97, 0x0b, 0x44, 0xb6, 0x06, 0xcf, 0xdc, 0xfe, 0xf8, 0x67, 0xc4, 0xd6, 0xe0, 0x08, - 0x04, 0x47, 0xf5, 0x56, 0xad, 0x46, 0x82, 0x43, 0xda, 0xf9, 0x27, 0x0d, 0xe9, 0x3f, 0x5c, 0xe5, - 0x1b, 0x43, 0x00, 0x30, 0x87, 0x86, 0xb5, 0xfa, 0x3a, 0xfa, 0xc0, 0x07, 0xf9, 0xc7, 0xab, 0x22, - 0x21, 0x10, 0x6b, 0xdc, 0x4f, 0xc0, 0x1e, 0x1a, 0xe9, 0x19, 0xb6, 0x0f, 0xf6, 0x4f, 0x57, 0xf9, - 0x6b, 0x56, 0x07, 0xe2, 0x10, 0xb0, 0x97, 0xb6, 0x3b, 0x13, 0xbc, 0xeb, 0x25, 0xa0, 0x0f, 0x9a, - 0xa7, 0xa0, 0x9f, 0xfc, 0xb2, 0xc3, 0x52, 0x2b, 0x7e, 0xe8, 0x3f, 0x73, 0xb4, 0xb0, 0x27, 0x0e, - 0xab, 0x1b, 0x4d, 0x0d, 0xbf, 0x9a, 0x7e, 0xd8, 0xbf, 0x70, 0xac, 0x0d, 0x20, 0xe0, 0x92, 0x6a, - 0x5a, 0xbd, 0xcc, 0xfb, 0xaf, 0x02, 0x2c, 0x00, 0x64, 0xd0, 0xe4, 0xfb, 0x79, 0x6d, 0xcb, 0x0f, - 0xfb, 0x9e, 0x18, 0x34, 0xb7, 0xc7, 0x04, 0x18, 0x23, 0x5f, 0xd9, 0x4f, 0x0f, 0x7c, 0xc0, 0x7f, - 0xe3, 0x60, 0x07, 0x91, 0x3b, 0xd0, 0xfd, 0x68, 0x07, 0xe6, 0x8d, 0x79, 0x83, 0x1d, 0xea, 0xc0, - 0xd5, 0x28, 0x5c, 0x87, 0x36, 0x58, 0x5f, 0x27, 0xd8, 0x9e, 0x5c, 0x37, 0xac, 0xcd, 0x09, 0xac, - 0x1b, 0xfc, 0x44, 0x26, 0x88, 0x5f, 0x47, 0x77, 0x77, 0x8a, 0x93, 0xd9, 0x07, 0xe1, 0xd5, 0xd6, - 0xfa, 0xfa, 0x16, 0xf9, 0xc9, 0x93, 0xd9, 0x5a, 0xe7, 0xef, 0xa7, 0xc9, 0xd7, 0xcc, 0xe5, 0x20, - 0x0c, 0x60, 0x9f, 0x42, 0x5e, 0x09, 0x98, 0x05, 0x5d, 0x2b, 0x6c, 0x48, 0x69, 0x88, 0xd0, 0x69, - 0x1c, 0xa5, 0x66, 0x81, 0x7b, 0xaf, 0x91, 0x23, 0xf4, 0x27, 0x7b, 0x47, 0x6d, 0xcd, 0x24, 0x3d, - 0xe5, 0xef, 0xb3, 0x35, 0x93, 0xb6, 0x66, 0x8a, 0xfd, 0x16, 0xca, 0xd6, 0x4c, 0xd9, 0x9a, 0x63, - 0xf4, 0xa8, 0x2c, 0x68, 0x6b, 0x8e, 0xd9, 0x9a, 0x69, 0x7a, 0xda, 0x39, 0x60, 0x6b, 0xa6, 0x6d, - 0xcd, 0x71, 0x7a, 0xbe, 0x19, 0xb2, 0x35, 0xc7, 0x6d, 0xcd, 0x09, 0x7a, 0xac, 0x39, 0x64, 0x6b, - 0x4e, 0xd8, 0x9a, 0x93, 0xf4, 0x28, 0x53, 0xb2, 0x35, 0x27, 0x6d, 0xcd, 0x29, 0xfa, 0x16, 0xba, - 0xdf, 0xd6, 0x9c, 0x92, 0x46, 0xa1, 0x9f, 0xcd, 0xf4, 0x08, 0x7d, 0x6b, 0x33, 0x88, 0xaa, 0x7e, - 0x36, 0xd5, 0x23, 0x8e, 0xee, 0x28, 0x7d, 0xd3, 0x1c, 0x71, 0x74, 0x47, 0x1d, 0xdd, 0x24, 0xfd, - 0xe5, 0x64, 0xca, 0xd1, 0x4d, 0x3a, 0xba, 0xa9, 0xf4, 0x00, 0xd9, 0xaa, 0x8e, 0x6e, 0xca, 0xd1, - 0x1d, 0x4b, 0x27, 0xc9, 0x0a, 0x38, 0xba, 0x63, 0x8e, 0x6e, 0x3a, 0x3d, 0x48, 0x4e, 0x6c, 0x1d, - 0xdd, 0xb4, 0x74, 0x27, 0xc4, 0x71, 0xa9, 0x14, 0xfe, 0x92, 0x91, 0xbe, 0xd1, 0x8e, 0x4f, 0xc2, - 0x38, 0x89, 0x09, 0xba, 0xac, 0x68, 0x0b, 0x68, 0xc0, 0x33, 0x54, 0x2e, 0x01, 0xf4, 0xc9, 0x55, - 0xa1, 0xbf, 0xc8, 0xca, 0xbc, 0x1e, 0x80, 0xd8, 0xda, 0x45, 0x83, 0xfe, 0x78, 0xc7, 0xfc, 0x17, - 0x2f, 0xae, 0x18, 0xf4, 0xd4, 0xb1, 0x74, 0x86, 0x4e, 0x28, 0xc0, 0x07, 0x3d, 0xe5, 0x4c, 0x68, - 0x6a, 0x3a, 0x7d, 0x90, 0x4e, 0xc8, 0xd6, 0x4d, 0x4b, 0x13, 0x90, 0x70, 0x4d, 0x68, 0x92, 0xbe, - 0xa4, 0xf6, 0xce, 0x28, 0x20, 0xc7, 0x9d, 0x19, 0x4d, 0xe6, 0xc2, 0x40, 0xc2, 0x9e, 0xfc, 0xb3, - 0x2e, 0x1a, 0x99, 0xc7, 0xfa, 0x20, 0xce, 0x0e, 0xbb, 0xe8, 0xac, 0xc8, 0xad, 0x58, 0x57, 0xbb, - 0xc5, 0x87, 0x81, 0xbe, 0x63, 0xad, 0xda, 0x96, 0x24, 0x03, 0x30, 0x53, 0x12, 0xe1, 0x6c, 0x24, - 0xb9, 0x23, 0xbf, 0xb9, 0x3c, 0x76, 0xc7, 0xb6, 0x3b, 0x88, 0xf8, 0x6e, 0x82, 0xa5, 0xb8, 0xf1, - 0x62, 0x55, 0xb7, 0x8e, 0x4e, 0x9e, 0x24, 0x0e, 0x2e, 0xd9, 0x2c, 0x52, 0x11, 0xa2, 0xb3, 0xb8, - 0xa5, 0x29, 0x23, 0x19, 0x7a, 0x28, 0x77, 0xe2, 0x1f, 0x97, 0xc7, 0xa6, 0x7c, 0x18, 0x79, 0xf6, - 0x19, 0x5f, 0xda, 0x22, 0xac, 0xc7, 0x8f, 0x11, 0x38, 0x12, 0xd3, 0xb4, 0x44, 0x69, 0x27, 0xc5, - 0x50, 0xc9, 0x99, 0x3b, 0x7d, 0x1b, 0x1f, 0xcc, 0xa5, 0xde, 0xba, 0x3c, 0x96, 0x58, 0xda, 0x72, - 0xe4, 0xce, 0x50, 0xc8, 0x55, 0x2e, 0x0a, 0x11, 0x76, 0x95, 0x9b, 0x7b, 0xed, 0xcd, 0xfd, 0xd7, - 0xbc, 0x8e, 0x9f, 0x5f, 0xe3, 0xe7, 0x8d, 0x37, 0xf7, 0x07, 0xde, 0xc3, 0xcf, 0xfb, 0xf8, 0x79, - 0xf8, 0xad, 0xfd, 0x81, 0x17, 0xf1, 0xf3, 0x32, 0x7e, 0x7e, 0x84, 0x9f, 0xd7, 0xde, 0x42, 0x3b, - 0xfc, 0xbc, 0x81, 0xdf, 0xdf, 0xc1, 0xff, 0xef, 0xe1, 0xff, 0xf7, 0xf1, 0xf3, 0xf0, 0xef, 0xf6, - 0x07, 0xfe, 0x19, 0x00, 0x00, 0xff, 0xff, 0x23, 0x0a, 0x13, 0xbd, 0xe8, 0x2e, 0x00, 0x00, + // 4043 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x8d, 0x95, 0x63, 0xee, 0x2e, 0x6d, + 0xc7, 0xb2, 0x1d, 0x4b, 0xb6, 0x56, 0xda, 0x0b, 0xb7, 0x89, 0x87, 0xa4, 0xb8, 0x5a, 0x6d, 0x25, + 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x40, 0xf0, 0x27, 0x85, 0x5d, 0x10, 0x60, 0x00, 0x70, + 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0xa5, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, 0x9b, + 0x99, 0xd6, 0x69, 0xd2, 0x4b, 0xd2, 0x4b, 0x9a, 0xe9, 0x53, 0x5f, 0xd2, 0xfa, 0xa9, 0xe3, 0xbc, + 0x75, 0x3a, 0x1d, 0x8f, 0x57, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0x74, 0x5f, + 0x3a, 0xff, 0x0d, 0x00, 0x2f, 0x5a, 0x50, 0x99, 0x3a, 0x79, 0x92, 0x70, 0xce, 0xf9, 0x3e, 0x1c, + 0x9c, 0xff, 0xfc, 0xe7, 0x1c, 0xfc, 0x04, 0x7c, 0x6f, 0x0d, 0xce, 0xb6, 0x6d, 0xbb, 0x6d, 0xa2, + 0xe5, 0xae, 0x63, 0x7b, 0x76, 0xa3, 0xd7, 0x5a, 0x6e, 0x22, 0x57, 0x77, 0x8c, 0xae, 0x67, 0x3b, + 0x4b, 0x44, 0x26, 0xcd, 0x50, 0x8b, 0x25, 0x6e, 0x51, 0xd8, 0x86, 0xd9, 0xab, 0x86, 0x89, 0xd6, + 0x7d, 0xc3, 0x3a, 0xf2, 0xa4, 0x4b, 0x90, 0x68, 0x19, 0x26, 0x92, 0x85, 0xb3, 0xf1, 0xc5, 0xcc, + 0xca, 0xe3, 0x4b, 0x03, 0xa0, 0xa5, 0x7e, 0xc4, 0x2e, 0x16, 0x2b, 0x04, 0x51, 0x78, 0x2f, 0x01, + 0x73, 0x23, 0xb4, 0x92, 0x04, 0x09, 0x4b, 0xeb, 0x60, 0x46, 0x61, 0x31, 0xad, 0x90, 0xff, 0x25, + 0x19, 0xa6, 0xba, 0x9a, 0x7e, 0x4b, 0x6b, 0x23, 0x39, 0x46, 0xc4, 0xfc, 0x52, 0xca, 0x03, 0x34, + 0x51, 0x17, 0x59, 0x4d, 0x64, 0xe9, 0x87, 0x72, 0xfc, 0x6c, 0x7c, 0x31, 0xad, 0x84, 0x24, 0xd2, + 0x33, 0x30, 0xdb, 0xed, 0x35, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x70, 0x36, 0xbe, 0x98, 0x54, 0x44, + 0xaa, 0x58, 0x0f, 0x8c, 0x9f, 0x84, 0x99, 0x3b, 0x48, 0xbb, 0x15, 0x36, 0xcd, 0x10, 0xd3, 0x1c, + 0x16, 0x87, 0x0c, 0x2b, 0x90, 0xed, 0x20, 0xd7, 0xd5, 0xda, 0x48, 0xf5, 0x0e, 0xbb, 0x48, 0x4e, + 0x90, 0xa7, 0x3f, 0x3b, 0xf4, 0xf4, 0x83, 0x4f, 0x9e, 0x61, 0xa8, 0xbd, 0xc3, 0x2e, 0x92, 0x4a, + 0x90, 0x46, 0x56, 0xaf, 0x43, 0x19, 0x92, 0xc7, 0xc4, 0xaf, 0x6a, 0xf5, 0x3a, 0x83, 0x2c, 0x29, + 0x0c, 0x63, 0x14, 0x53, 0x2e, 0x72, 0x6e, 0x1b, 0x3a, 0x92, 0x27, 0x09, 0xc1, 0x93, 0x43, 0x04, + 0x75, 0xaa, 0x1f, 0xe4, 0xe0, 0x38, 0xa9, 0x02, 0x69, 0xf4, 0xb2, 0x87, 0x2c, 0xd7, 0xb0, 0x2d, + 0x79, 0x8a, 0x90, 0x3c, 0x31, 0x62, 0x15, 0x91, 0xd9, 0x1c, 0xa4, 0x08, 0x70, 0xd2, 0x05, 0x98, + 0xb2, 0xbb, 0x9e, 0x61, 0x5b, 0xae, 0x9c, 0x3a, 0x2b, 0x2c, 0x66, 0x56, 0x3e, 0x36, 0x32, 0x11, + 0x6a, 0xd4, 0x46, 0xe1, 0xc6, 0xd2, 0x26, 0x88, 0xae, 0xdd, 0x73, 0x74, 0xa4, 0xea, 0x76, 0x13, + 0xa9, 0x86, 0xd5, 0xb2, 0xe5, 0x34, 0x21, 0x38, 0x33, 0xfc, 0x20, 0xc4, 0xb0, 0x62, 0x37, 0xd1, + 0xa6, 0xd5, 0xb2, 0x95, 0x9c, 0xdb, 0x77, 0x2d, 0x9d, 0x82, 0x49, 0xf7, 0xd0, 0xf2, 0xb4, 0x97, + 0xe5, 0x2c, 0xc9, 0x10, 0x76, 0x55, 0xf8, 0x9f, 0x24, 0xcc, 0x8c, 0x93, 0x62, 0x57, 0x20, 0xd9, + 0xc2, 0x4f, 0x29, 0xc7, 0x4e, 0x12, 0x03, 0x8a, 0xe9, 0x0f, 0xe2, 0xe4, 0x8f, 0x18, 0xc4, 0x12, + 0x64, 0x2c, 0xe4, 0x7a, 0xa8, 0x49, 0x33, 0x22, 0x3e, 0x66, 0x4e, 0x01, 0x05, 0x0d, 0xa7, 0x54, + 0xe2, 0x47, 0x4a, 0xa9, 0x1b, 0x30, 0xe3, 0xbb, 0xa4, 0x3a, 0x9a, 0xd5, 0xe6, 0xb9, 0xb9, 0x1c, + 0xe5, 0xc9, 0x52, 0x95, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0xa8, 0xef, 0x5a, 0x5a, 0x07, 0xb0, 0x2d, + 0x64, 0xb7, 0xd4, 0x26, 0xd2, 0x4d, 0x39, 0x75, 0x4c, 0x94, 0x6a, 0xd8, 0x64, 0x28, 0x4a, 0x36, + 0x95, 0xea, 0xa6, 0x74, 0x39, 0x48, 0xb5, 0xa9, 0x63, 0x32, 0x65, 0x9b, 0x6e, 0xb2, 0xa1, 0x6c, + 0xdb, 0x87, 0x9c, 0x83, 0x70, 0xde, 0xa3, 0x26, 0x7b, 0xb2, 0x34, 0x71, 0x62, 0x29, 0xf2, 0xc9, + 0x14, 0x06, 0xa3, 0x0f, 0x36, 0xed, 0x84, 0x2f, 0xa5, 0xc7, 0xc0, 0x17, 0xa8, 0x24, 0xad, 0x80, + 0x54, 0xa1, 0x2c, 0x17, 0xee, 0x68, 0x1d, 0xb4, 0x70, 0x09, 0x72, 0xfd, 0xe1, 0x91, 0xe6, 0x21, + 0xe9, 0x7a, 0x9a, 0xe3, 0x91, 0x2c, 0x4c, 0x2a, 0xf4, 0x42, 0x12, 0x21, 0x8e, 0xac, 0x26, 0xa9, + 0x72, 0x49, 0x05, 0xff, 0xbb, 0x70, 0x11, 0xa6, 0xfb, 0x6e, 0x3f, 0x2e, 0xb0, 0xf0, 0xc5, 0x49, + 0x98, 0x1f, 0x95, 0x73, 0x23, 0xd3, 0xff, 0x14, 0x4c, 0x5a, 0xbd, 0x4e, 0x03, 0x39, 0x72, 0x9c, + 0x30, 0xb0, 0x2b, 0xa9, 0x04, 0x49, 0x53, 0x6b, 0x20, 0x53, 0x4e, 0x9c, 0x15, 0x16, 0x73, 0x2b, + 0xcf, 0x8c, 0x95, 0xd5, 0x4b, 0x5b, 0x18, 0xa2, 0x50, 0xa4, 0xf4, 0x29, 0x48, 0xb0, 0x12, 0x87, + 0x19, 0x9e, 0x1e, 0x8f, 0x01, 0xe7, 0xa2, 0x42, 0x70, 0xd2, 0x23, 0x90, 0xc6, 0x7f, 0x69, 0x6c, + 0x27, 0x89, 0xcf, 0x29, 0x2c, 0xc0, 0x71, 0x95, 0x16, 0x20, 0x45, 0xd2, 0xac, 0x89, 0x78, 0x6b, + 0xf0, 0xaf, 0xf1, 0xc2, 0x34, 0x51, 0x4b, 0xeb, 0x99, 0x9e, 0x7a, 0x5b, 0x33, 0x7b, 0x88, 0x24, + 0x4c, 0x5a, 0xc9, 0x32, 0xe1, 0x67, 0xb0, 0x4c, 0x3a, 0x03, 0x19, 0x9a, 0x95, 0x86, 0xd5, 0x44, + 0x2f, 0x93, 0xea, 0x93, 0x54, 0x68, 0xa2, 0x6e, 0x62, 0x09, 0xbe, 0xfd, 0x4d, 0xd7, 0xb6, 0xf8, + 0xd2, 0x92, 0x5b, 0x60, 0x01, 0xb9, 0xfd, 0xc5, 0xc1, 0xc2, 0xf7, 0xe8, 0xe8, 0xc7, 0x1b, 0xcc, + 0xc5, 0xc2, 0xb7, 0x62, 0x90, 0x20, 0xfb, 0x6d, 0x06, 0x32, 0x7b, 0x2f, 0xed, 0x56, 0xd5, 0xf5, + 0xda, 0x7e, 0x79, 0xab, 0x2a, 0x0a, 0x52, 0x0e, 0x80, 0x08, 0xae, 0x6e, 0xd5, 0x4a, 0x7b, 0x62, + 0xcc, 0xbf, 0xde, 0xdc, 0xd9, 0xbb, 0xb0, 0x2a, 0xc6, 0x7d, 0xc0, 0x3e, 0x15, 0x24, 0xc2, 0x06, + 0xe7, 0x57, 0xc4, 0xa4, 0x24, 0x42, 0x96, 0x12, 0x6c, 0xde, 0xa8, 0xae, 0x5f, 0x58, 0x15, 0x27, + 0xfb, 0x25, 0xe7, 0x57, 0xc4, 0x29, 0x69, 0x1a, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, + 0xcf, 0x59, 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, + 0xf0, 0x19, 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x4b, 0x7b, 0xd5, + 0xba, 0x98, 0xed, 0x73, 0xeb, 0xfc, 0x8a, 0x38, 0xed, 0xdf, 0xa2, 0xba, 0xb3, 0xbf, 0x2d, 0xe6, + 0xa4, 0x59, 0x98, 0xa6, 0xb7, 0xe0, 0x4e, 0xcc, 0x0c, 0x88, 0x2e, 0xac, 0x8a, 0x62, 0xe0, 0x08, + 0x65, 0x99, 0xed, 0x13, 0x5c, 0x58, 0x15, 0xa5, 0x42, 0x05, 0x92, 0x24, 0xbb, 0x24, 0x09, 0x72, + 0x5b, 0xa5, 0x72, 0x75, 0x4b, 0xad, 0xed, 0xee, 0x6d, 0xd6, 0x76, 0x4a, 0x5b, 0xa2, 0x10, 0xc8, + 0x94, 0xea, 0xa7, 0xf7, 0x37, 0x95, 0xea, 0xba, 0x18, 0x0b, 0xcb, 0x76, 0xab, 0xa5, 0xbd, 0xea, + 0xba, 0x18, 0x2f, 0xe8, 0x30, 0x3f, 0xaa, 0xce, 0x8c, 0xdc, 0x19, 0xa1, 0x25, 0x8e, 0x1d, 0xb3, + 0xc4, 0x84, 0x6b, 0x68, 0x89, 0xbf, 0x22, 0xc0, 0xdc, 0x88, 0x5a, 0x3b, 0xf2, 0x26, 0x2f, 0x40, + 0x92, 0xa6, 0x28, 0xed, 0x3e, 0x4f, 0x8d, 0x2c, 0xda, 0x24, 0x61, 0x87, 0x3a, 0x10, 0xc1, 0x85, + 0x3b, 0x70, 0xfc, 0x98, 0x0e, 0x8c, 0x29, 0x86, 0x9c, 0x7c, 0x55, 0x00, 0xf9, 0x38, 0xee, 0x88, + 0x42, 0x11, 0xeb, 0x2b, 0x14, 0x57, 0x06, 0x1d, 0x38, 0x77, 0xfc, 0x33, 0x0c, 0x79, 0xf1, 0xa6, + 0x00, 0xa7, 0x46, 0x0f, 0x2a, 0x23, 0x7d, 0xf8, 0x14, 0x4c, 0x76, 0x90, 0x77, 0x60, 0xf3, 0x66, + 0xfd, 0xf1, 0x11, 0x2d, 0x00, 0xab, 0x07, 0x63, 0xc5, 0x50, 0xe1, 0x1e, 0x12, 0x3f, 0x6e, 0xda, + 0xa0, 0xde, 0x0c, 0x79, 0xfa, 0xf9, 0x18, 0x3c, 0x34, 0x92, 0x7c, 0xa4, 0xa3, 0x8f, 0x02, 0x18, + 0x56, 0xb7, 0xe7, 0xd1, 0x86, 0x4c, 0xeb, 0x53, 0x9a, 0x48, 0xc8, 0xde, 0xc7, 0xb5, 0xa7, 0xe7, + 0xf9, 0xfa, 0x38, 0xd1, 0x03, 0x15, 0x11, 0x83, 0x4b, 0x81, 0xa3, 0x09, 0xe2, 0x68, 0xfe, 0x98, + 0x27, 0x1d, 0xea, 0x75, 0xcf, 0x81, 0xa8, 0x9b, 0x06, 0xb2, 0x3c, 0xd5, 0xf5, 0x1c, 0xa4, 0x75, + 0x0c, 0xab, 0x4d, 0x0a, 0x70, 0xaa, 0x98, 0x6c, 0x69, 0xa6, 0x8b, 0x94, 0x19, 0xaa, 0xae, 0x73, + 0x2d, 0x46, 0x90, 0x2e, 0xe3, 0x84, 0x10, 0x93, 0x7d, 0x08, 0xaa, 0xf6, 0x11, 0x85, 0xaf, 0x4f, + 0x41, 0x26, 0x34, 0xd6, 0x49, 0xe7, 0x20, 0x7b, 0x53, 0xbb, 0xad, 0xa9, 0x7c, 0x54, 0xa7, 0x91, + 0xc8, 0x60, 0xd9, 0x2e, 0x1b, 0xd7, 0x9f, 0x83, 0x79, 0x62, 0x62, 0xf7, 0x3c, 0xe4, 0xa8, 0xba, + 0xa9, 0xb9, 0x2e, 0x09, 0x5a, 0x8a, 0x98, 0x4a, 0x58, 0x57, 0xc3, 0xaa, 0x0a, 0xd7, 0x48, 0x6b, + 0x30, 0x47, 0x10, 0x9d, 0x9e, 0xe9, 0x19, 0x5d, 0x13, 0xa9, 0xf8, 0xe5, 0xc1, 0x25, 0x85, 0xd8, + 0xf7, 0x6c, 0x16, 0x5b, 0x6c, 0x33, 0x03, 0xec, 0x91, 0x2b, 0xad, 0xc3, 0xa3, 0x04, 0xd6, 0x46, + 0x16, 0x72, 0x34, 0x0f, 0xa9, 0xe8, 0x73, 0x3d, 0xcd, 0x74, 0x55, 0xcd, 0x6a, 0xaa, 0x07, 0x9a, + 0x7b, 0x20, 0xcf, 0x63, 0x82, 0x72, 0x4c, 0x16, 0x94, 0xd3, 0xd8, 0x70, 0x83, 0xd9, 0x55, 0x89, + 0x59, 0xc9, 0x6a, 0x5e, 0xd3, 0xdc, 0x03, 0xa9, 0x08, 0xa7, 0x08, 0x8b, 0xeb, 0x39, 0x86, 0xd5, + 0x56, 0xf5, 0x03, 0xa4, 0xdf, 0x52, 0x7b, 0x5e, 0xeb, 0x92, 0xfc, 0x48, 0xf8, 0xfe, 0xc4, 0xc3, + 0x3a, 0xb1, 0xa9, 0x60, 0x93, 0x7d, 0xaf, 0x75, 0x49, 0xaa, 0x43, 0x16, 0x2f, 0x46, 0xc7, 0x78, + 0x05, 0xa9, 0x2d, 0xdb, 0x21, 0x9d, 0x25, 0x37, 0x62, 0x67, 0x87, 0x22, 0xb8, 0x54, 0x63, 0x80, + 0x6d, 0xbb, 0x89, 0x8a, 0xc9, 0xfa, 0x6e, 0xb5, 0xba, 0xae, 0x64, 0x38, 0xcb, 0x55, 0xdb, 0xc1, + 0x09, 0xd5, 0xb6, 0xfd, 0x00, 0x67, 0x68, 0x42, 0xb5, 0x6d, 0x1e, 0xde, 0x35, 0x98, 0xd3, 0x75, + 0xfa, 0xcc, 0x86, 0xae, 0xb2, 0x11, 0xdf, 0x95, 0xc5, 0xbe, 0x60, 0xe9, 0xfa, 0x06, 0x35, 0x60, + 0x39, 0xee, 0x4a, 0x97, 0xe1, 0xa1, 0x20, 0x58, 0x61, 0xe0, 0xec, 0xd0, 0x53, 0x0e, 0x42, 0xd7, + 0x60, 0xae, 0x7b, 0x38, 0x0c, 0x94, 0xfa, 0xee, 0xd8, 0x3d, 0x1c, 0x84, 0x3d, 0x41, 0x5e, 0xdb, + 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xca, 0x0f, 0x87, 0xad, 0x43, 0x0a, 0x69, 0x19, 0x44, 0x5d, 0x57, + 0x91, 0xa5, 0x35, 0x4c, 0xa4, 0x6a, 0x0e, 0xb2, 0x34, 0x57, 0x3e, 0x13, 0x36, 0xce, 0xe9, 0x7a, + 0x95, 0x68, 0x4b, 0x44, 0x29, 0x3d, 0x0d, 0xb3, 0x76, 0xe3, 0xa6, 0x4e, 0x33, 0x4b, 0xed, 0x3a, + 0xa8, 0x65, 0xbc, 0x2c, 0x3f, 0x4e, 0xc2, 0x34, 0x83, 0x15, 0x24, 0xaf, 0x76, 0x89, 0x58, 0x7a, + 0x0a, 0x44, 0xdd, 0x3d, 0xd0, 0x9c, 0x2e, 0x69, 0xed, 0x6e, 0x57, 0xd3, 0x91, 0xfc, 0x04, 0x35, + 0xa5, 0xf2, 0x1d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x31, 0x5a, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, + 0x91, 0x31, 0xb6, 0x1b, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0x43, 0x4e, 0xd7, 0x41, 0x78, 0x88, 0xa7, + 0x3b, 0x51, 0xfe, 0xe7, 0xa9, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xae, 0x37, + 0x2c, 0x2c, 0x14, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x4a, + 0x6d, 0x1d, 0x77, 0xc7, 0xcf, 0x56, 0xc5, 0x18, 0xee, 0xd2, 0x5b, 0x9b, 0x7b, 0x55, 0x55, 0xd9, + 0xdf, 0xd9, 0xdb, 0xdc, 0xae, 0x8a, 0xf1, 0xa7, 0xd3, 0xa9, 0xef, 0x4f, 0x89, 0x77, 0xef, 0xde, + 0xbd, 0x1b, 0x2b, 0x7c, 0x27, 0x06, 0xb9, 0xfe, 0xc9, 0x58, 0xfa, 0x29, 0x78, 0x98, 0xbf, 0xc6, + 0xba, 0xc8, 0x53, 0xef, 0x18, 0x0e, 0x49, 0xd5, 0x8e, 0x46, 0x67, 0x4b, 0x3f, 0xca, 0xf3, 0xcc, + 0xaa, 0x8e, 0xbc, 0x17, 0x0d, 0x07, 0x27, 0x62, 0x47, 0xf3, 0xa4, 0x2d, 0x38, 0x63, 0xd9, 0xaa, + 0xeb, 0x69, 0x56, 0x53, 0x73, 0x9a, 0x6a, 0x70, 0x80, 0xa0, 0x6a, 0xba, 0x8e, 0x5c, 0xd7, 0xa6, + 0x2d, 0xc2, 0x67, 0xf9, 0x98, 0x65, 0xd7, 0x99, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0x74, 0x20, 0x23, + 0xe2, 0xc7, 0x65, 0xc4, 0x23, 0x90, 0xee, 0x68, 0x5d, 0x15, 0x59, 0x9e, 0x73, 0x48, 0xe6, 0xb9, + 0x94, 0x92, 0xea, 0x68, 0xdd, 0x2a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0x7f, 0x8a, 0x43, + 0x36, 0x3c, 0xd3, 0xe1, 0x11, 0x59, 0x27, 0xf5, 0x5b, 0x20, 0x3b, 0xfc, 0xb1, 0x07, 0x4e, 0x80, + 0x4b, 0x15, 0x5c, 0xd8, 0x8b, 0x93, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, + 0x9d, 0xdf, 0x53, 0x0a, 0xbb, 0x92, 0x36, 0x60, 0xf2, 0xa6, 0x4b, 0xb8, 0x27, 0x09, 0xf7, 0xe3, + 0x0f, 0xe6, 0xbe, 0x5e, 0x27, 0xe4, 0xe9, 0xeb, 0x75, 0x75, 0xa7, 0xa6, 0x6c, 0x97, 0xb6, 0x14, + 0x06, 0x97, 0x4e, 0x43, 0xc2, 0xd4, 0x5e, 0x39, 0xec, 0x6f, 0x01, 0x44, 0x34, 0x6e, 0xe0, 0x4f, + 0x43, 0xe2, 0x0e, 0xd2, 0x6e, 0xf5, 0x17, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x19, 0x92, 0x24, + 0x5e, 0x12, 0x00, 0x8b, 0x98, 0x38, 0x21, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, + 0x52, 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0x26, 0x69, 0x10, 0xf0, 0xd6, + 0xf0, 0xc3, 0x20, 0x4e, 0xb0, 0x4b, 0xc6, 0x21, 0x70, 0xed, 0xfe, 0x76, 0xb9, 0xaa, 0x88, 0xb1, + 0xf0, 0xf2, 0xba, 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x9e, 0x9c, 0xfa, 0x6b, 0x01, 0x32, 0xa1, 0xf1, + 0x0c, 0x0f, 0x06, 0x9a, 0x69, 0xda, 0x77, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, + 0x09, 0x4b, 0xc6, 0x5d, 0xb4, 0x1f, 0x8b, 0xf3, 0x6f, 0x08, 0x20, 0x0e, 0x8e, 0x76, 0x03, 0x0e, + 0x0a, 0x3f, 0x51, 0x07, 0x5f, 0x17, 0x20, 0xd7, 0x3f, 0xcf, 0x0d, 0xb8, 0x77, 0xee, 0x27, 0xea, + 0xde, 0xbb, 0x31, 0x98, 0xee, 0x9b, 0xe2, 0xc6, 0xf5, 0xee, 0x73, 0x30, 0x6b, 0x34, 0x51, 0xa7, + 0x6b, 0x7b, 0xc8, 0xd2, 0x0f, 0x55, 0x13, 0xdd, 0x46, 0xa6, 0x5c, 0x20, 0x85, 0x62, 0xf9, 0xc1, + 0x73, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xdc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, + 0x57, 0xdd, 0xa9, 0xbc, 0xa4, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0xc5, 0x1d, 0x45, 0x34, 0x06, + 0xcc, 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0xe2, 0xa0, 0x53, 0xd2, 0xc3, 0x30, 0xca, 0x2d, 0x71, 0x42, + 0x9a, 0x83, 0x99, 0x9d, 0x9a, 0x5a, 0xdf, 0x5c, 0xaf, 0xaa, 0xd5, 0xab, 0x57, 0xab, 0x95, 0xbd, + 0x3a, 0x7d, 0x71, 0xf6, 0xad, 0xf7, 0xfa, 0x37, 0xf5, 0x6b, 0x71, 0x98, 0x1b, 0xe1, 0x89, 0x54, + 0x62, 0x33, 0x3b, 0x7d, 0x8d, 0x78, 0x76, 0x1c, 0xef, 0x97, 0xf0, 0x54, 0xb0, 0xab, 0x39, 0x1e, + 0x1b, 0xf1, 0x9f, 0x02, 0x1c, 0x25, 0xcb, 0x33, 0x5a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, + 0x67, 0x02, 0x39, 0x3d, 0x6a, 0xf8, 0x04, 0x48, 0x5d, 0xdb, 0x35, 0x3c, 0xe3, 0x36, 0x52, 0x0d, + 0x8b, 0x1f, 0x4a, 0xe0, 0xc1, 0x3e, 0xa1, 0x88, 0x5c, 0xb3, 0x69, 0x79, 0xbe, 0xb5, 0x85, 0xda, + 0xda, 0x80, 0x35, 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x1c, 0x64, 0x9b, 0x76, 0x0f, + 0x8f, 0x49, 0xd4, 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, + 0x24, 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x09, 0x33, 0x5a, 0xbb, 0xed, 0x60, 0x72, 0x4e, 0x44, + 0x27, 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x0b, 0xd7, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, + 0xda, 0xa5, 0x67, 0x52, 0xb1, 0xc5, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x1c, 0x64, 0x0d, 0x57, 0x0d, + 0x0e, 0x47, 0x63, 0x67, 0x63, 0x8b, 0x29, 0x25, 0x63, 0xb8, 0xfe, 0x69, 0x58, 0xe1, 0xcd, 0x18, + 0xe4, 0xfa, 0x0f, 0x77, 0xa5, 0x75, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0x2c, + 0x46, 0x9c, 0x07, 0x2f, 0x6d, 0x31, 0x7b, 0xc5, 0x47, 0x2e, 0xfc, 0xbd, 0x00, 0x29, 0x2e, 0x96, + 0x4e, 0x41, 0xa2, 0xab, 0x79, 0x07, 0x84, 0x2e, 0x59, 0x8e, 0x89, 0x82, 0x42, 0xae, 0xb1, 0xdc, + 0xed, 0x6a, 0x16, 0x49, 0x01, 0x26, 0xc7, 0xd7, 0x78, 0x5d, 0x4d, 0xa4, 0x35, 0xc9, 0xd8, 0x6f, + 0x77, 0x3a, 0xc8, 0xf2, 0x5c, 0xbe, 0xae, 0x4c, 0x5e, 0x61, 0x62, 0xe9, 0x19, 0x98, 0xf5, 0x1c, + 0xcd, 0x30, 0xfb, 0x6c, 0x13, 0xc4, 0x56, 0xe4, 0x0a, 0xdf, 0xb8, 0x08, 0xa7, 0x39, 0x6f, 0x13, + 0x79, 0x9a, 0x7e, 0x80, 0x9a, 0x01, 0x68, 0x92, 0x9c, 0x1c, 0x3e, 0xcc, 0x0c, 0xd6, 0x99, 0x9e, + 0x63, 0x0b, 0xdf, 0x15, 0x60, 0x96, 0xbf, 0xa8, 0x34, 0xfd, 0x60, 0x6d, 0x03, 0x68, 0x96, 0x65, + 0x7b, 0xe1, 0x70, 0x0d, 0xa7, 0xf2, 0x10, 0x6e, 0xa9, 0xe4, 0x83, 0x94, 0x10, 0xc1, 0x42, 0x07, + 0x20, 0xd0, 0x1c, 0x1b, 0xb6, 0x33, 0x90, 0x61, 0x27, 0xf7, 0xe4, 0xe7, 0x1f, 0xfa, 0x6a, 0x0b, + 0x54, 0x84, 0xdf, 0x68, 0xa4, 0x79, 0x48, 0x36, 0x50, 0xdb, 0xb0, 0xd8, 0x79, 0x22, 0xbd, 0xe0, + 0xa7, 0x94, 0x09, 0xff, 0x94, 0xb2, 0x7c, 0x03, 0xe6, 0x74, 0xbb, 0x33, 0xe8, 0x6e, 0x59, 0x1c, + 0x78, 0xbd, 0x76, 0xaf, 0x09, 0x9f, 0x85, 0x60, 0xc4, 0xfc, 0x4a, 0x2c, 0xbe, 0xb1, 0x5b, 0xfe, + 0x5a, 0x6c, 0x61, 0x83, 0xe2, 0x76, 0xf9, 0x63, 0x2a, 0xa8, 0x65, 0x22, 0x1d, 0xbb, 0x0e, 0x3f, + 0xf8, 0x38, 0x3c, 0xdb, 0x36, 0xbc, 0x83, 0x5e, 0x63, 0x49, 0xb7, 0x3b, 0xcb, 0x6d, 0xbb, 0x6d, + 0x07, 0x3f, 0x77, 0xe1, 0x2b, 0x72, 0x41, 0xfe, 0x63, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x42, 0xe4, + 0xef, 0x63, 0xc5, 0x1d, 0x98, 0x63, 0xc6, 0x2a, 0x39, 0x73, 0xa7, 0xaf, 0x06, 0xd2, 0x03, 0xcf, + 0x5d, 0xe4, 0x6f, 0xbe, 0x47, 0x7a, 0xb5, 0x32, 0xcb, 0xa0, 0x58, 0x47, 0x5f, 0x20, 0x8a, 0x0a, + 0x3c, 0xd4, 0xc7, 0x47, 0xf7, 0x25, 0x72, 0x22, 0x18, 0xbf, 0xc3, 0x18, 0xe7, 0x42, 0x8c, 0x75, + 0x06, 0x2d, 0x56, 0x60, 0xfa, 0x24, 0x5c, 0x7f, 0xcb, 0xb8, 0xb2, 0x28, 0x4c, 0xb2, 0x01, 0x33, + 0x84, 0x44, 0xef, 0xb9, 0x9e, 0xdd, 0x21, 0x45, 0xef, 0xc1, 0x34, 0x7f, 0xf7, 0x1e, 0xdd, 0x28, + 0x39, 0x0c, 0xab, 0xf8, 0xa8, 0x62, 0x11, 0xc8, 0xcf, 0x0c, 0x4d, 0xa4, 0x9b, 0x11, 0x0c, 0x6f, + 0x31, 0x47, 0x7c, 0xfb, 0xe2, 0x67, 0x60, 0x1e, 0xff, 0x4f, 0x6a, 0x52, 0xd8, 0x93, 0xe8, 0x53, + 0x26, 0xf9, 0xbb, 0xaf, 0xd2, 0xbd, 0x38, 0xe7, 0x13, 0x84, 0x7c, 0x0a, 0xad, 0x62, 0x1b, 0x79, + 0x1e, 0x72, 0x5c, 0x55, 0x33, 0x47, 0xb9, 0x17, 0x7a, 0x4d, 0x97, 0xbf, 0xf4, 0x7e, 0xff, 0x2a, + 0x6e, 0x50, 0x64, 0xc9, 0x34, 0x8b, 0xfb, 0xf0, 0xf0, 0x88, 0xac, 0x18, 0x83, 0xf3, 0x35, 0xc6, + 0x39, 0x3f, 0x94, 0x19, 0x98, 0x76, 0x17, 0xb8, 0xdc, 0x5f, 0xcb, 0x31, 0x38, 0x7f, 0x9b, 0x71, + 0x4a, 0x0c, 0xcb, 0x97, 0x14, 0x33, 0x5e, 0x87, 0xd9, 0xdb, 0xc8, 0x69, 0xd8, 0x2e, 0x3b, 0x1a, + 0x19, 0x83, 0xee, 0x75, 0x46, 0x37, 0xc3, 0x80, 0xe4, 0xac, 0x04, 0x73, 0x5d, 0x86, 0x54, 0x4b, + 0xd3, 0xd1, 0x18, 0x14, 0x5f, 0x66, 0x14, 0x53, 0xd8, 0x1e, 0x43, 0x4b, 0x90, 0x6d, 0xdb, 0xac, + 0x2d, 0x45, 0xc3, 0xdf, 0x60, 0xf0, 0x0c, 0xc7, 0x30, 0x8a, 0xae, 0xdd, 0xed, 0x99, 0xb8, 0x67, + 0x45, 0x53, 0xfc, 0x0e, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x82, 0xb0, 0xfe, 0x2e, 0xa7, 0x70, 0x43, + 0xf1, 0x7c, 0x01, 0x32, 0xb6, 0x65, 0x1e, 0xda, 0xd6, 0x38, 0x4e, 0xfc, 0x1e, 0x63, 0x00, 0x06, + 0xc1, 0x04, 0x57, 0x20, 0x3d, 0xee, 0x42, 0xfc, 0xfe, 0xfb, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, + 0x19, 0x5e, 0xa0, 0x0c, 0xdb, 0x1a, 0x83, 0xe2, 0x0f, 0x18, 0x45, 0x2e, 0x04, 0x63, 0x8f, 0xe1, + 0x21, 0xd7, 0x6b, 0xa3, 0x71, 0x48, 0xde, 0xe4, 0x8f, 0xc1, 0x20, 0x2c, 0x94, 0x0d, 0x64, 0xe9, + 0x07, 0xe3, 0x31, 0x7c, 0x95, 0x87, 0x92, 0x63, 0x30, 0x45, 0x05, 0xa6, 0x3b, 0x9a, 0xe3, 0x1e, + 0x68, 0xe6, 0x58, 0xcb, 0xf1, 0x87, 0x8c, 0x23, 0xeb, 0x83, 0x58, 0x44, 0x7a, 0xd6, 0x49, 0x68, + 0xbe, 0xc6, 0x23, 0x12, 0x82, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x00, 0xea, 0x24, 0x6c, 0x5f, 0xe7, + 0x5b, 0x8f, 0x62, 0xb7, 0xc3, 0x8c, 0x57, 0x20, 0xed, 0x1a, 0xaf, 0x8c, 0x45, 0xf3, 0x47, 0x7c, + 0xa5, 0x09, 0x00, 0x83, 0x5f, 0x82, 0xd3, 0x23, 0xdb, 0xc4, 0x18, 0x64, 0x7f, 0xcc, 0xc8, 0x4e, + 0x8d, 0x68, 0x15, 0xac, 0x24, 0x9c, 0x94, 0xf2, 0x4f, 0x78, 0x49, 0x40, 0x03, 0x5c, 0xbb, 0xf8, + 0x45, 0xc1, 0xd5, 0x5a, 0x27, 0x8b, 0xda, 0x9f, 0xf2, 0xa8, 0x51, 0x6c, 0x5f, 0xd4, 0xf6, 0xe0, + 0x14, 0x63, 0x3c, 0xd9, 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0xef, 0x5f, 0xdd, 0x9f, 0x81, + 0x05, 0x3f, 0x9c, 0x7c, 0x22, 0x75, 0xd5, 0x8e, 0xd6, 0x1d, 0x83, 0xf9, 0x9b, 0x8c, 0x99, 0x57, + 0x7c, 0x7f, 0xa4, 0x75, 0xb7, 0xb5, 0x2e, 0x26, 0xbf, 0x01, 0x32, 0x27, 0xef, 0x59, 0x0e, 0xd2, + 0xed, 0xb6, 0x65, 0xbc, 0x82, 0x9a, 0x63, 0x50, 0xff, 0xd9, 0xc0, 0x52, 0xed, 0x87, 0xe0, 0x98, + 0x79, 0x13, 0x44, 0x7f, 0x56, 0x51, 0x8d, 0x4e, 0xd7, 0x76, 0xbc, 0x08, 0xc6, 0x3f, 0xe7, 0x2b, + 0xe5, 0xe3, 0x36, 0x09, 0xac, 0x58, 0x85, 0x1c, 0xb9, 0x1c, 0x37, 0x25, 0xff, 0x82, 0x11, 0x4d, + 0x07, 0x28, 0x56, 0x38, 0x74, 0xbb, 0xd3, 0xd5, 0x9c, 0x71, 0xea, 0xdf, 0x5f, 0xf2, 0xc2, 0xc1, + 0x20, 0xac, 0x70, 0x78, 0x87, 0x5d, 0x84, 0xbb, 0xfd, 0x18, 0x0c, 0xdf, 0xe2, 0x85, 0x83, 0x63, + 0x18, 0x05, 0x1f, 0x18, 0xc6, 0xa0, 0xf8, 0x2b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0xd3, 0x41, 0xa3, + 0x75, 0x50, 0xdb, 0x70, 0x3d, 0x87, 0xce, 0xc1, 0x0f, 0xa6, 0xfa, 0xf6, 0xfb, 0xfd, 0x43, 0x98, + 0x12, 0x82, 0x16, 0xaf, 0xc3, 0xcc, 0xc0, 0x88, 0x21, 0x45, 0x7d, 0xb3, 0x20, 0xff, 0xec, 0x87, + 0xac, 0x18, 0xf5, 0x4f, 0x18, 0xc5, 0x2d, 0xbc, 0xee, 0xfd, 0x73, 0x40, 0x34, 0xd9, 0xab, 0x1f, + 0xfa, 0x4b, 0xdf, 0x37, 0x06, 0x14, 0xaf, 0xc2, 0x74, 0xdf, 0x0c, 0x10, 0x4d, 0xf5, 0x73, 0x8c, + 0x2a, 0x1b, 0x1e, 0x01, 0x8a, 0x6b, 0x90, 0xc0, 0xfd, 0x3c, 0x1a, 0xfe, 0xf3, 0x0c, 0x4e, 0xcc, + 0x8b, 0x9f, 0x84, 0x14, 0xef, 0xe3, 0xd1, 0xd0, 0x5f, 0x60, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x87, + 0x47, 0xc3, 0x7f, 0x91, 0xc3, 0x39, 0x04, 0xc3, 0xc7, 0x0f, 0xe1, 0xdf, 0xfc, 0x52, 0x82, 0xd5, + 0x61, 0x1e, 0xbb, 0x2b, 0x30, 0xc5, 0x9a, 0x77, 0x34, 0xfa, 0xf3, 0xec, 0xe6, 0x1c, 0x51, 0xbc, + 0x08, 0xc9, 0x31, 0x03, 0xfe, 0xcb, 0x0c, 0x4a, 0xed, 0x8b, 0x15, 0xc8, 0x84, 0x1a, 0x76, 0x34, + 0xfc, 0x57, 0x18, 0x3c, 0x8c, 0xc2, 0xae, 0xb3, 0x86, 0x1d, 0x4d, 0xf0, 0xab, 0xdc, 0x75, 0x86, + 0xc0, 0x61, 0xe3, 0xbd, 0x3a, 0x1a, 0xfd, 0x6b, 0x3c, 0xea, 0x1c, 0x52, 0x7c, 0x01, 0xd2, 0x7e, + 0xfd, 0x8d, 0xc6, 0xff, 0x3a, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0x50, 0xfd, 0x8f, 0xa6, 0xf8, 0x02, + 0x8f, 0x40, 0x08, 0x85, 0xb7, 0xd1, 0x60, 0x4f, 0x8f, 0x66, 0xfa, 0x0d, 0xbe, 0x8d, 0x06, 0x5a, + 0x3a, 0x5e, 0x4d, 0x52, 0x06, 0xa3, 0x29, 0x7e, 0x93, 0xaf, 0x26, 0xb1, 0xc7, 0x6e, 0x0c, 0x36, + 0xc9, 0x68, 0x8e, 0xdf, 0xe2, 0x6e, 0x0c, 0xf4, 0xc8, 0xe2, 0x2e, 0x48, 0xc3, 0x0d, 0x32, 0x9a, + 0xef, 0x8b, 0x8c, 0x6f, 0x76, 0xa8, 0x3f, 0x16, 0x5f, 0x84, 0x53, 0xa3, 0x9b, 0x63, 0x34, 0xeb, + 0x97, 0x3e, 0x1c, 0x78, 0x9d, 0x09, 0xf7, 0xc6, 0xe2, 0x5e, 0x50, 0x65, 0xc3, 0x8d, 0x31, 0x9a, + 0xf6, 0xb5, 0x0f, 0xfb, 0x0b, 0x6d, 0xb8, 0x2f, 0x16, 0x4b, 0x00, 0x41, 0x4f, 0x8a, 0xe6, 0x7a, + 0x9d, 0x71, 0x85, 0x40, 0x78, 0x6b, 0xb0, 0x96, 0x14, 0x8d, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, + 0xb7, 0x06, 0xef, 0x46, 0xd1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x90, 0xe2, 0x15, 0x48, 0x59, 0x3d, + 0xd3, 0xc4, 0xb9, 0x25, 0x3d, 0xf8, 0x33, 0x22, 0xf9, 0x5f, 0xee, 0x33, 0x30, 0x07, 0x14, 0xd7, + 0x20, 0x89, 0x3a, 0x0d, 0xd4, 0x8c, 0x42, 0xfe, 0xeb, 0x7d, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, + 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x7d, 0xf6, 0x85, 0x42, 0x00, 0x09, + 0x08, 0xe8, 0xf7, 0x0e, 0x0f, 0x26, 0x78, 0xbf, 0x9f, 0x80, 0xbc, 0x80, 0x5f, 0x86, 0xa9, 0x9b, + 0xae, 0x6d, 0x79, 0x5a, 0x3b, 0x0a, 0xfd, 0xef, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0x3a, 0xb6, 0x83, + 0x3c, 0xad, 0xed, 0x46, 0x61, 0xff, 0x83, 0x61, 0x7d, 0x00, 0x06, 0xeb, 0x9a, 0xeb, 0x8d, 0xf3, + 0xdc, 0xff, 0xc9, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x42, 0x87, 0x51, 0xd8, 0x0f, 0xb8, + 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x62, 0xe0, + 0x00, 0x81, 0xef, 0xec, 0x7a, 0x4d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb3, 0x95, 0xe6, 0xf6, 0xc5, + 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, 0xb1, 0x89, 0x26, 0x02, 0xfe, 0x83, 0xfb, 0xfe, 0x4b, 0xae, + 0x8f, 0x29, 0x9f, 0x1b, 0x7d, 0x58, 0x07, 0x1b, 0xf6, 0x86, 0x4d, 0x8f, 0xe9, 0xe0, 0x7e, 0x0a, + 0x1e, 0xd1, 0xed, 0x4e, 0xc3, 0x76, 0x97, 0x69, 0x41, 0x69, 0xd8, 0xde, 0xc1, 0xb2, 0x6d, 0x31, + 0x73, 0x29, 0x6e, 0x5b, 0x68, 0xe1, 0x64, 0xe7, 0x72, 0x85, 0xd3, 0x90, 0xac, 0xf7, 0x1a, 0x8d, + 0x43, 0x49, 0x84, 0xb8, 0xdb, 0x6b, 0xb0, 0x0f, 0x4b, 0xf0, 0xbf, 0x85, 0x77, 0xe2, 0x30, 0x5d, + 0x32, 0xcd, 0xbd, 0xc3, 0x2e, 0x72, 0x6b, 0x16, 0xaa, 0xb5, 0x24, 0x19, 0x26, 0xc9, 0x83, 0x3c, + 0x4f, 0xcc, 0x84, 0x6b, 0x13, 0x0a, 0xbb, 0xf6, 0x35, 0x2b, 0xe4, 0xb8, 0x32, 0xe6, 0x6b, 0x56, + 0x7c, 0xcd, 0x79, 0x7a, 0x5a, 0xe9, 0x6b, 0xce, 0xfb, 0x9a, 0x55, 0x72, 0x66, 0x19, 0xf7, 0x35, + 0xab, 0xbe, 0x66, 0x8d, 0x9c, 0xc9, 0x4f, 0xfb, 0x9a, 0x35, 0x5f, 0x73, 0x81, 0x9c, 0xc2, 0x27, + 0x7c, 0xcd, 0x05, 0x5f, 0x73, 0x91, 0x1c, 0xbe, 0xcf, 0xfa, 0x9a, 0x8b, 0xbe, 0xe6, 0x12, 0x39, + 0x70, 0x97, 0x7c, 0xcd, 0x25, 0x5f, 0x73, 0x99, 0x7c, 0x41, 0x32, 0xe5, 0x6b, 0x2e, 0x4b, 0x0b, + 0x30, 0x45, 0x9f, 0xec, 0x39, 0xf2, 0xab, 0xec, 0xcc, 0xb5, 0x09, 0x85, 0x0b, 0x02, 0xdd, 0xf3, + 0xe4, 0x2b, 0x91, 0xc9, 0x40, 0xf7, 0x7c, 0xa0, 0x5b, 0x21, 0xdf, 0x4a, 0x8b, 0x81, 0x6e, 0x25, + 0xd0, 0x9d, 0x97, 0xa7, 0xf1, 0xfa, 0x07, 0xba, 0xf3, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, + 0x74, 0xab, 0x81, 0x6e, 0x4d, 0x9e, 0x39, 0x2b, 0x2c, 0x66, 0x03, 0xdd, 0x9a, 0xf4, 0x2c, 0x64, + 0xdc, 0x5e, 0x43, 0x65, 0x1f, 0x11, 0x90, 0xaf, 0x51, 0x32, 0x2b, 0xb0, 0x84, 0x73, 0x82, 0x2c, + 0xeb, 0xb5, 0x09, 0x05, 0xdc, 0x5e, 0x83, 0x15, 0xc8, 0x72, 0x16, 0xc8, 0x79, 0x82, 0x4a, 0xbe, + 0xc1, 0x2c, 0xbc, 0x2d, 0x40, 0x7a, 0xef, 0x8e, 0x4d, 0x7e, 0x93, 0x75, 0xff, 0x9f, 0x17, 0x97, + 0x3b, 0x7d, 0x7e, 0x95, 0xfc, 0x6c, 0x96, 0xbe, 0x26, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0xc7, + 0xc8, 0x03, 0xf9, 0xba, 0x35, 0x69, 0x19, 0xb2, 0xa1, 0x07, 0x5a, 0x21, 0x1f, 0x98, 0xf4, 0x3f, + 0x91, 0xa0, 0x64, 0x82, 0x27, 0x5a, 0x29, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb1, 0x0b, + 0x5f, 0x88, 0x41, 0x86, 0x1e, 0x41, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x23, 0xf9, 0x21, 0x73, 0x63, + 0x42, 0xe1, 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0xe7, 0xfe, 0xf1, 0x9d, + 0x33, 0x9f, 0x38, 0x76, 0x07, 0xe1, 0xd8, 0x2d, 0xd3, 0x02, 0xbb, 0xb4, 0x6f, 0x58, 0xde, 0xf3, + 0x2b, 0x97, 0x70, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x5f, 0x98, 0x11, 0xd7, + 0x13, 0xe5, 0x8b, 0xff, 0xfb, 0xce, 0x99, 0xf3, 0x11, 0x8c, 0xac, 0xf6, 0x2d, 0x6d, 0x1f, 0x62, + 0xd6, 0x0b, 0xab, 0x18, 0x7e, 0x6d, 0x42, 0xf1, 0xa9, 0xa4, 0x15, 0xee, 0xea, 0x8e, 0xd6, 0xa1, + 0x5f, 0xd2, 0xc4, 0xcb, 0xe2, 0xd1, 0x3b, 0x67, 0xb2, 0xdb, 0x87, 0x81, 0x3c, 0x70, 0x05, 0x5f, + 0x95, 0x53, 0x30, 0x49, 0x5d, 0x2d, 0xaf, 0xbf, 0x75, 0x2f, 0x3f, 0xf1, 0xf6, 0xbd, 0xfc, 0xc4, + 0x3f, 0xdc, 0xcb, 0x4f, 0xbc, 0x7b, 0x2f, 0x2f, 0x7c, 0x70, 0x2f, 0x2f, 0xfc, 0xf0, 0x5e, 0x5e, + 0xb8, 0x7b, 0x94, 0x17, 0xbe, 0x7a, 0x94, 0x17, 0xbe, 0x71, 0x94, 0x17, 0xbe, 0x7d, 0x94, 0x17, + 0xde, 0x3a, 0xca, 0x4f, 0xbc, 0x7d, 0x94, 0x9f, 0x78, 0xf7, 0x28, 0x2f, 0x7c, 0xff, 0x28, 0x3f, + 0xf1, 0xc1, 0x51, 0x5e, 0xf8, 0xe1, 0x51, 0x5e, 0xb8, 0xfb, 0xbd, 0xbc, 0xf0, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x92, 0x09, 0x9d, 0x38, 0xda, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3411,27 +3431,10 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3574,7 +3577,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -3643,7 +3646,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -3681,7 +3684,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -3730,7 +3733,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3738,43 +3741,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4327,190 +4330,190 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Sub != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(*m.Sub))) - i += copy(data[i:], *m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) + i += copy(dAtA[i:], *m.Sub) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf) Marshal() (data []byte, err error) { +func (m *AllTypesOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllTypesOneOf) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn1 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *AllTypesOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *AllTypesOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *AllTypesOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *AllTypesOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *AllTypesOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *AllTypesOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *AllTypesOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *AllTypesOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 return i, nil } -func (m *AllTypesOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 return i, nil } -func (m *AllTypesOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 return i, nil } -func (m *AllTypesOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 return i, nil } -func (m *AllTypesOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *AllTypesOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *AllTypesOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -4518,95 +4521,95 @@ func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *TwoOneofs) Marshal() (data []byte, err error) { +func (m *TwoOneofs) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *TwoOneofs) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.One != nil { - nn3, err := m.One.MarshalTo(data[i:]) + nn3, err := m.One.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn3 } if m.Two != nil { - nn4, err := m.Two.MarshalTo(data[i:]) + nn4, err := m.Two.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn4 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *TwoOneofs_Field1) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *TwoOneofs_Field2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *TwoOneofs_Field3) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *TwoOneofs_Field34) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field34))) - i += copy(data[i:], m.Field34) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) + i += copy(dAtA[i:], m.Field34) return i, nil } -func (m *TwoOneofs_Field35) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field35 != nil { - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field35))) - i += copy(data[i:], m.Field35) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) + i += copy(dAtA[i:], m.Field35) } return i, nil } -func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage2 != nil { - data[i] = 0xa2 + dAtA[i] = 0xa2 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) + n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -4614,105 +4617,105 @@ func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *CustomOneof) Marshal() (data []byte, err error) { +func (m *CustomOneof) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomOneof) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(data[i:]) + nn6, err := m.Custom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn6 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomOneof_Stringy) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Stringy))) - i += copy(data[i:], m.Stringy) + i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) + i += copy(dAtA[i:], m.Stringy) return i, nil } -func (m *CustomOneof_CustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) + n7, err := m.CustomType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n7 return i, nil } -func (m *CustomOneof_CastType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa0 + dAtA[i] = 0xa0 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CastType)) + i = encodeVarintOne(dAtA, i, uint64(m.CastType)) return i, nil } -func (m *CustomOneof_MyCustomName) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa8 + dAtA[i] = 0xa8 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.MyCustomName)) + i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4724,7 +4727,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4752,7 +4755,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4767,12 +4770,12 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Sub = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -4782,7 +4785,7 @@ func (m *Subby) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4792,8 +4795,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *AllTypesOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4805,7 +4808,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4829,7 +4832,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field1{v} case 2: @@ -4840,7 +4843,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field2{v} case 3: @@ -4855,7 +4858,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4875,7 +4878,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4895,7 +4898,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4915,7 +4918,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4935,7 +4938,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4956,7 +4959,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4973,7 +4976,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: @@ -4984,7 +4987,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: @@ -4995,7 +4998,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: @@ -5006,7 +5009,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: @@ -5021,7 +5024,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5042,7 +5045,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5057,7 +5060,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &AllTypesOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -5071,7 +5074,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5086,7 +5089,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &AllTypesOneOf_Field15{v} iNdEx = postIndex case 16: @@ -5101,7 +5104,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5116,14 +5119,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &AllTypesOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5133,7 +5136,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5143,8 +5146,8 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { } return nil } -func (m *TwoOneofs) Unmarshal(data []byte) error { - l := len(data) +func (m *TwoOneofs) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5156,7 +5159,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5180,7 +5183,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.One = &TwoOneofs_Field1{v} case 2: @@ -5191,7 +5194,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.One = &TwoOneofs_Field2{v} case 3: @@ -5206,7 +5209,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5226,7 +5229,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5241,7 +5244,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Two = &TwoOneofs_Field34{string(data[iNdEx:postIndex])} + m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5255,7 +5258,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5270,7 +5273,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.Two = &TwoOneofs_Field35{v} iNdEx = postIndex case 36: @@ -5285,7 +5288,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5300,14 +5303,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Two = &TwoOneofs_SubMessage2{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5317,7 +5320,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5327,8 +5330,8 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { } return nil } -func (m *CustomOneof) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomOneof) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5340,7 +5343,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5368,7 +5371,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5383,7 +5386,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Custom = &CustomOneof_Stringy{string(data[iNdEx:postIndex])} + m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5397,7 +5400,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5413,7 +5416,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } var vv github_com_gogo_protobuf_test_custom.Uint128 v := &vv - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Custom = &CustomOneof_CustomType{*v} @@ -5430,7 +5433,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -5450,7 +5453,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5460,7 +5463,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { m.Custom = &CustomOneof_MyCustomName{v} default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5470,7 +5473,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5480,8 +5483,8 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } return nil } -func skipOneUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipOneUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -5492,7 +5495,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5510,7 +5513,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -5527,7 +5530,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5550,7 +5553,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5561,7 +5564,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOneUnsafe(data[start:]) + next, err := skipOneUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -5585,42 +5588,46 @@ var ( ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 576 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x6f, 0x1a, 0x31, - 0x14, 0x00, 0xf0, 0x1c, 0xff, 0x31, 0xd0, 0xd0, 0x9b, 0x5e, 0x53, 0x09, 0x2a, 0xda, 0x4a, 0x1d, - 0x1a, 0x0e, 0xee, 0x0f, 0x90, 0xb1, 0x97, 0xaa, 0xea, 0x42, 0x91, 0x48, 0x32, 0x47, 0x1c, 0x3d, - 0x08, 0x12, 0xe0, 0x28, 0xf6, 0x29, 0xba, 0x2d, 0x9f, 0xa1, 0x9f, 0xa2, 0x63, 0xc7, 0x7e, 0x84, - 0x8c, 0x19, 0xab, 0x0e, 0x28, 0xa1, 0x4b, 0xc7, 0x8c, 0x51, 0xa7, 0x3e, 0xfb, 0x88, 0x5d, 0xa9, - 0xaa, 0xba, 0x64, 0x78, 0x3a, 0x9b, 0x9f, 0xfd, 0x78, 0xef, 0xec, 0x23, 0x4f, 0xc7, 0x74, 0x11, - 0x50, 0x66, 0x45, 0x4b, 0x36, 0x9a, 0x84, 0x01, 0xe5, 0x27, 0x16, 0x5d, 0x86, 0xcd, 0xd3, 0x33, - 0xca, 0xa9, 0x99, 0xc6, 0xe1, 0xce, 0xee, 0x74, 0xc6, 0x4f, 0xa2, 0xa0, 0x89, 0x0b, 0xad, 0x29, - 0x9d, 0x52, 0x4b, 0x5a, 0x10, 0x4d, 0xe4, 0x4c, 0x4e, 0xe4, 0x28, 0xd9, 0xd3, 0x78, 0x42, 0xb2, - 0x07, 0x51, 0x10, 0xc4, 0x66, 0x95, 0xa4, 0x59, 0x14, 0x80, 0xf1, 0xcc, 0x78, 0x55, 0x1c, 0x8a, - 0x61, 0x63, 0x95, 0x26, 0x95, 0x37, 0xf3, 0xf9, 0x61, 0x7c, 0x1a, 0xb2, 0xc1, 0x32, 0x1c, 0x4c, - 0x4c, 0x20, 0xb9, 0x77, 0xb3, 0x70, 0xfe, 0xb1, 0x2d, 0x97, 0x19, 0xef, 0xb7, 0x86, 0xb9, 0x89, - 0x9c, 0x2b, 0xb1, 0x21, 0x85, 0x92, 0x52, 0x62, 0x2b, 0x71, 0x20, 0x8d, 0x92, 0x55, 0xe2, 0x28, - 0x71, 0x21, 0x83, 0x92, 0x56, 0xe2, 0x2a, 0xf1, 0x20, 0x8b, 0x52, 0x51, 0xe2, 0x29, 0xe9, 0x40, - 0x0e, 0x25, 0xa3, 0xa4, 0xa3, 0xa4, 0x0b, 0x79, 0x94, 0xc7, 0x4a, 0xba, 0x4a, 0x7a, 0x50, 0x40, - 0x31, 0x95, 0xf4, 0x94, 0xec, 0x41, 0x11, 0x25, 0xaf, 0x64, 0xcf, 0xdc, 0x21, 0xf9, 0xa4, 0xd3, - 0x16, 0x10, 0xa4, 0x6d, 0xa4, 0x7c, 0xd2, 0x6a, 0x4b, 0x5b, 0x1b, 0x4a, 0x68, 0x39, 0x6d, 0x6d, - 0x6d, 0x36, 0x94, 0xd1, 0xaa, 0xda, 0x6c, 0x6d, 0x0e, 0x54, 0xd0, 0x0a, 0xda, 0x1c, 0x6d, 0x2e, - 0x3c, 0x12, 0x27, 0xa0, 0xcd, 0xd5, 0xe6, 0xc1, 0x36, 0x5a, 0x59, 0x9b, 0x67, 0xee, 0x92, 0x12, - 0x1e, 0xd5, 0xf1, 0x22, 0x64, 0x6c, 0x34, 0x0d, 0xa1, 0x8a, 0x5e, 0xb2, 0x49, 0x53, 0xdc, 0x09, - 0x79, 0xac, 0xb8, 0x96, 0xe0, 0x82, 0x7e, 0xe2, 0x7e, 0x99, 0x10, 0x1e, 0x32, 0x7e, 0x8c, 0x4e, - 0x27, 0x8d, 0x2b, 0x83, 0x14, 0x0f, 0xcf, 0xe9, 0x40, 0x4c, 0xd8, 0x03, 0x1f, 0xee, 0x7d, 0xd1, - 0x8e, 0x0b, 0x0d, 0xd9, 0x90, 0xb1, 0x29, 0xda, 0xd1, 0x0d, 0x39, 0x1e, 0x3c, 0x97, 0x0d, 0x29, - 0xf3, 0x4c, 0x8b, 0x94, 0xff, 0x68, 0xc8, 0x86, 0x17, 0x7f, 0x75, 0x64, 0x0c, 0x4b, 0xba, 0x23, - 0xdb, 0xcf, 0x12, 0x71, 0xed, 0xc5, 0x83, 0x9f, 0xd3, 0xc6, 0xa7, 0x14, 0x29, 0xed, 0x47, 0x8c, - 0xd3, 0x85, 0xec, 0x4a, 0xfc, 0xd5, 0x01, 0x3f, 0x9b, 0x2d, 0xa7, 0xf1, 0xa6, 0x0c, 0x7c, 0x77, - 0x2c, 0xf9, 0xc1, 0x1c, 0x12, 0x92, 0x2c, 0x15, 0x37, 0x3c, 0xa9, 0xc4, 0x6f, 0x7d, 0x5f, 0xd5, - 0x5f, 0xff, 0xf3, 0x0b, 0x12, 0xef, 0xce, 0x1a, 0xcb, 0x3d, 0xcd, 0xa3, 0xd9, 0x92, 0xb7, 0xed, - 0x9e, 0x78, 0xc1, 0x63, 0x95, 0xc5, 0x3c, 0x22, 0x85, 0xfd, 0x11, 0xe3, 0x32, 0xa3, 0x28, 0x3d, - 0xe3, 0x77, 0x7f, 0xad, 0xea, 0xce, 0x7f, 0x32, 0xe2, 0x0e, 0x8e, 0x3b, 0x9a, 0xfd, 0x58, 0x64, - 0xed, 0xb8, 0x62, 0x3b, 0x26, 0x2e, 0x8c, 0x37, 0xa9, 0x4c, 0xfb, 0xbe, 0xd4, 0x0f, 0xa3, 0x45, - 0x08, 0x2f, 0xc5, 0xe7, 0xe2, 0x57, 0xd7, 0xab, 0x7a, 0xb9, 0x1f, 0xeb, 0xdf, 0x75, 0x29, 0x62, - 0xe6, 0x17, 0x48, 0x2e, 0x99, 0xf9, 0x6f, 0x2f, 0x6f, 0x6a, 0x5b, 0x57, 0x18, 0xdf, 0x30, 0xae, - 0x6f, 0x6a, 0xc6, 0x2d, 0xc6, 0x1d, 0xc6, 0xc5, 0xba, 0x66, 0x7c, 0xc6, 0xf8, 0x82, 0xf1, 0x15, - 0xe3, 0x72, 0x8d, 0xeb, 0x30, 0xae, 0x71, 0xfc, 0x13, 0x9f, 0xb7, 0xf8, 0xbc, 0xc3, 0xb8, 0xf8, - 0x51, 0x33, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x68, 0x7e, 0x05, 0xec, 0x7b, 0x04, 0x00, 0x00, + // 600 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0xdb, 0x40, + 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0xb8, 0x84, 0x92, 0x7a, 0xba, 0x52, 0xe9, 0x38, 0xa5, 0xad, + 0x74, 0x43, 0x49, 0x88, 0x93, 0xf0, 0x67, 0xac, 0xa9, 0xaa, 0x2c, 0x14, 0xc9, 0xc0, 0x8c, 0x62, + 0x7a, 0x09, 0x91, 0x88, 0x0f, 0x71, 0x67, 0x21, 0x6f, 0x7c, 0x86, 0x7e, 0x8a, 0x8e, 0x1d, 0xfb, + 0x11, 0x18, 0x19, 0xab, 0x0e, 0x11, 0x76, 0x97, 0x8e, 0x8c, 0xa8, 0x53, 0x75, 0x36, 0xb9, 0xab, + 0x54, 0x55, 0x5d, 0x3a, 0xc5, 0xef, 0xfd, 0x7c, 0x2f, 0xef, 0xf9, 0xee, 0xd0, 0xf3, 0x53, 0x31, + 0x0d, 0x85, 0x6c, 0xc7, 0x91, 0x1c, 0x8e, 0x78, 0x28, 0xd4, 0x59, 0x5b, 0x44, 0xbc, 0x75, 0x71, + 0x29, 0x94, 0x70, 0x4b, 0x22, 0xe2, 0x6b, 0x1b, 0xe3, 0x89, 0x3a, 0x8b, 0xc3, 0xd6, 0xa9, 0x98, + 0xb6, 0xc7, 0x62, 0x2c, 0xda, 0xb9, 0x85, 0xf1, 0x28, 0x8f, 0xf2, 0x20, 0x7f, 0x2a, 0xd6, 0x34, + 0x9f, 0xa1, 0xf2, 0x61, 0x1c, 0x86, 0x89, 0xdb, 0x40, 0x25, 0x19, 0x87, 0x18, 0x28, 0xb0, 0xe5, + 0x40, 0x3f, 0x36, 0x67, 0x25, 0xb4, 0xf2, 0xe6, 0xfc, 0xfc, 0x28, 0xb9, 0xe0, 0xf2, 0x20, 0xe2, + 0x07, 0x23, 0x17, 0xa3, 0xca, 0xbb, 0x09, 0x3f, 0xff, 0xd0, 0xc9, 0x5f, 0x83, 0x81, 0x13, 0x3c, + 0xc6, 0x46, 0x3c, 0xbc, 0x40, 0x81, 0x2d, 0x18, 0xf1, 0x8c, 0x74, 0x71, 0x89, 0x02, 0x2b, 0x1b, + 0xe9, 0x1a, 0xe9, 0xe1, 0x45, 0x0a, 0xac, 0x64, 0xa4, 0x67, 0xa4, 0x8f, 0xcb, 0x14, 0xd8, 0x8a, + 0x91, 0xbe, 0x91, 0x2d, 0x5c, 0xa1, 0xc0, 0x16, 0x8d, 0x6c, 0x19, 0xd9, 0xc6, 0x4b, 0x14, 0xd8, + 0x53, 0x23, 0xdb, 0x46, 0x76, 0x70, 0x95, 0x02, 0x73, 0x8d, 0xec, 0x18, 0xd9, 0xc5, 0xcb, 0x14, + 0xd8, 0x92, 0x91, 0x5d, 0x77, 0x0d, 0x2d, 0x15, 0x93, 0x6d, 0x62, 0x44, 0x81, 0xad, 0x0e, 0x9c, + 0x60, 0x9e, 0xb0, 0xd6, 0xc1, 0x35, 0x0a, 0xac, 0x62, 0xad, 0x63, 0xcd, 0xc3, 0x75, 0x0a, 0xac, + 0x61, 0xcd, 0xb3, 0xd6, 0xc5, 0x2b, 0x14, 0x58, 0xd5, 0x5a, 0xd7, 0x5a, 0x0f, 0x3f, 0xd1, 0x3b, + 0x60, 0xad, 0x67, 0xad, 0x8f, 0x57, 0x29, 0xb0, 0xba, 0xb5, 0xbe, 0xbb, 0x81, 0x6a, 0x32, 0x0e, + 0x4f, 0xa6, 0x5c, 0xca, 0xe1, 0x98, 0xe3, 0x06, 0x05, 0x56, 0xf3, 0x50, 0x4b, 0x9f, 0x89, 0x7c, + 0x5b, 0x07, 0x4e, 0x80, 0x64, 0x1c, 0xee, 0x17, 0xee, 0xd7, 0x11, 0x52, 0x5c, 0xaa, 0x13, 0x11, + 0x71, 0x31, 0x6a, 0xde, 0x02, 0x5a, 0x3e, 0xba, 0x12, 0x07, 0x3a, 0x90, 0xff, 0x79, 0x73, 0xe7, + 0x4d, 0x77, 0x7b, 0xb8, 0x99, 0x0f, 0x04, 0xc1, 0x3c, 0x61, 0xad, 0x8f, 0x5f, 0xe4, 0x03, 0x19, + 0xeb, 0xbb, 0x6d, 0x54, 0xff, 0x6d, 0x20, 0x0f, 0xbf, 0xfc, 0x63, 0x22, 0x08, 0x6a, 0x76, 0x22, + 0xcf, 0x2f, 0x23, 0x7d, 0xec, 0xf5, 0x8f, 0xba, 0x12, 0xcd, 0x8f, 0x0b, 0xa8, 0xb6, 0x17, 0x4b, + 0x25, 0xa6, 0xf9, 0x54, 0xfa, 0xaf, 0x0e, 0xd5, 0xe5, 0x24, 0x1a, 0x27, 0x8f, 0x6d, 0x38, 0xc1, + 0x3c, 0xe1, 0x06, 0x08, 0x15, 0xaf, 0xea, 0x13, 0x5e, 0x74, 0xe2, 0x6f, 0x7e, 0x9b, 0xad, 0xbf, + 0xfe, 0xeb, 0x0d, 0xd2, 0xdf, 0xae, 0x7d, 0x9a, 0xaf, 0x69, 0x1d, 0x4f, 0x22, 0xd5, 0xf1, 0x76, + 0xf4, 0x07, 0xb6, 0x55, 0xdc, 0x63, 0x54, 0xdd, 0x1b, 0x4a, 0x95, 0x57, 0xd4, 0xad, 0x2f, 0xfa, + 0xdb, 0x3f, 0x67, 0xeb, 0xdd, 0x7f, 0x54, 0x1c, 0x4a, 0xa5, 0x92, 0x0b, 0xde, 0xda, 0x4f, 0x74, + 0xd5, 0xad, 0x9e, 0x5e, 0x3e, 0x70, 0x02, 0x53, 0xca, 0xf5, 0xe6, 0xad, 0xbe, 0x1f, 0x4e, 0x39, + 0x7e, 0xa5, 0xaf, 0x8b, 0xdf, 0xc8, 0x66, 0xeb, 0xf5, 0xfd, 0xc4, 0xe6, 0x6d, 0x2b, 0x3a, 0xf2, + 0xab, 0xa8, 0x52, 0xb4, 0xea, 0xbf, 0xbd, 0x49, 0x89, 0x73, 0x9b, 0x12, 0xe7, 0x6b, 0x4a, 0x9c, + 0xbb, 0x94, 0xc0, 0x7d, 0x4a, 0xe0, 0x21, 0x25, 0x70, 0x9d, 0x11, 0xf8, 0x94, 0x11, 0xf8, 0x9c, + 0x11, 0xf8, 0x92, 0x11, 0xb8, 0xc9, 0x88, 0x73, 0x9b, 0x11, 0xe7, 0x2e, 0x23, 0xf0, 0x23, 0x23, + 0xce, 0x7d, 0x46, 0xe0, 0x21, 0x23, 0x70, 0xfd, 0x9d, 0xc0, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xa5, 0xf3, 0xa9, 0x7e, 0x7b, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto index 9d6230ad..3e17abed 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go index 469b47d6..09f0c697 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go @@ -19,6 +19,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -33,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -67,24 +72,28 @@ func TestSubbyProto(t *testing.T) { } func TestSubbyMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -95,21 +104,25 @@ func TestSubbyMarshalTo(t *testing.T) { } func TestAllTypesOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -129,24 +142,28 @@ func TestAllTypesOneOfProto(t *testing.T) { } func TestAllTypesOneOfMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,21 +174,25 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { } func TestTwoOneofsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -191,24 +212,28 @@ func TestTwoOneofsProto(t *testing.T) { } func TestTwoOneofsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -219,21 +244,25 @@ func TestTwoOneofsMarshalTo(t *testing.T) { } func TestCustomOneofProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -253,24 +282,28 @@ func TestCustomOneofProto(t *testing.T) { } func TestCustomOneofMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -368,9 +401,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -385,9 +418,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -402,9 +435,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -419,9 +452,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,9 +469,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,9 +486,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,9 +503,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,9 +520,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -504,14 +537,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -519,14 +556,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -534,14 +575,18 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -549,14 +594,18 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -620,13 +669,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -642,13 +691,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -664,13 +713,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -686,13 +735,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go index db3543db..5b10110b 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import unsafe "unsafe" @@ -44,7 +42,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -90,49 +90,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -579,19 +579,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -821,16 +821,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -885,11 +885,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -991,240 +991,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3728 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x1b, 0xe7, - 0x95, 0x36, 0xc5, 0x8b, 0xc8, 0x43, 0x8a, 0xa2, 0x46, 0x8a, 0x4d, 0x2b, 0x89, 0x65, 0xd3, 0xb9, - 0x38, 0x4e, 0x22, 0xd9, 0x92, 0xe5, 0x0b, 0xb3, 0x9b, 0x40, 0x94, 0x68, 0x45, 0x86, 0x24, 0x6a, - 0x47, 0x62, 0xe2, 0x64, 0x1f, 0x06, 0x23, 0x72, 0x44, 0xd1, 0x26, 0x67, 0xb8, 0x9c, 0xa1, 0x6d, - 0xe5, 0xc9, 0x8b, 0xec, 0x05, 0xc1, 0x62, 0x77, 0xdb, 0xb4, 0x40, 0x73, 0x6f, 0x13, 0xa0, 0x4d, - 0x9a, 0xde, 0x92, 0xde, 0x50, 0xf4, 0xa9, 0x40, 0x91, 0x36, 0x4f, 0x45, 0xda, 0xa7, 0xa2, 0x28, - 0x8c, 0x24, 0x0d, 0xd0, 0xb4, 0x4d, 0xdb, 0x14, 0x30, 0xd0, 0xa0, 0x79, 0xe9, 0xf9, 0x6f, 0x73, - 0x21, 0x29, 0x0d, 0x15, 0x34, 0x4d, 0x05, 0x10, 0xe2, 0x9c, 0x73, 0xbe, 0x6f, 0xfe, 0xff, 0xfc, - 0xe7, 0x3f, 0xe7, 0xcc, 0x3f, 0x84, 0x1f, 0x1e, 0x87, 0x83, 0x15, 0xc3, 0xa8, 0xd4, 0xb4, 0x89, - 0x46, 0xd3, 0xb0, 0x8c, 0xf5, 0xd6, 0xc6, 0x44, 0x59, 0x33, 0x4b, 0xcd, 0x6a, 0xc3, 0x32, 0x9a, - 0xe3, 0x54, 0x26, 0x0d, 0x32, 0x8b, 0x71, 0x61, 0x91, 0x59, 0x82, 0xa1, 0xb3, 0xd5, 0x9a, 0x36, - 0x67, 0x1b, 0xae, 0x6a, 0x96, 0x74, 0x1a, 0x42, 0x1b, 0x28, 0x4c, 0x07, 0x0e, 0x06, 0x8f, 0xc4, - 0x27, 0x6f, 0x19, 0x6f, 0x03, 0x8d, 0x7b, 0x11, 0x2b, 0x44, 0x2c, 0x53, 0x44, 0xe6, 0x9d, 0x10, - 0x0c, 0x77, 0xd1, 0x4a, 0x12, 0x84, 0x74, 0xb5, 0x4e, 0x18, 0x03, 0x47, 0x62, 0x32, 0xfd, 0x2e, - 0xa5, 0xa1, 0xbf, 0xa1, 0x96, 0x2e, 0xaa, 0x15, 0x2d, 0xdd, 0x47, 0xc5, 0xe2, 0x52, 0x3a, 0x00, - 0x50, 0xd6, 0x1a, 0x9a, 0x5e, 0xd6, 0xf4, 0xd2, 0x56, 0x3a, 0x88, 0xa3, 0x88, 0xc9, 0x2e, 0x89, - 0x74, 0x27, 0x0c, 0x35, 0x5a, 0xeb, 0xb5, 0x6a, 0x49, 0x71, 0x99, 0x01, 0x9a, 0x85, 0xe5, 0x14, - 0x53, 0xcc, 0x39, 0xc6, 0xb7, 0xc3, 0xe0, 0x65, 0x4d, 0xbd, 0xe8, 0x36, 0x8d, 0x53, 0xd3, 0x24, - 0x11, 0xbb, 0x0c, 0x67, 0x21, 0x51, 0xd7, 0x4c, 0x13, 0x07, 0xa0, 0x58, 0x5b, 0x0d, 0x2d, 0x1d, - 0xa2, 0xb3, 0x3f, 0xd8, 0x31, 0xfb, 0xf6, 0x99, 0xc7, 0x39, 0x6a, 0x0d, 0x41, 0xd2, 0x0c, 0xc4, - 0x34, 0xbd, 0x55, 0x67, 0x0c, 0xe1, 0x6d, 0xfc, 0x97, 0x47, 0x8b, 0x76, 0x96, 0x28, 0x81, 0x71, - 0x8a, 0x7e, 0x53, 0x6b, 0x5e, 0xaa, 0x96, 0xb4, 0x74, 0x84, 0x12, 0xdc, 0xde, 0x41, 0xb0, 0xca, - 0xf4, 0xed, 0x1c, 0x02, 0x87, 0x53, 0x89, 0x69, 0x57, 0x2c, 0x4d, 0x37, 0xab, 0x86, 0x9e, 0xee, - 0xa7, 0x24, 0xb7, 0x76, 0x59, 0x45, 0xad, 0x56, 0x6e, 0xa7, 0x70, 0x70, 0xd2, 0x49, 0xe8, 0x37, - 0x1a, 0x16, 0x7e, 0x33, 0xd3, 0x51, 0x5c, 0x9f, 0xf8, 0xe4, 0x4d, 0x5d, 0x03, 0xa1, 0xc0, 0x6c, - 0x64, 0x61, 0x2c, 0x2d, 0x40, 0xca, 0x34, 0x5a, 0xcd, 0x92, 0xa6, 0x94, 0x8c, 0xb2, 0xa6, 0x54, - 0xf5, 0x0d, 0x23, 0x1d, 0xa3, 0x04, 0x63, 0x9d, 0x13, 0xa1, 0x86, 0xb3, 0x68, 0xb7, 0x80, 0x66, - 0x72, 0xd2, 0xf4, 0x5c, 0x4b, 0x7b, 0x21, 0x62, 0x6e, 0xe9, 0x96, 0x7a, 0x25, 0x9d, 0xa0, 0x11, - 0xc2, 0xaf, 0x32, 0x7f, 0x0e, 0xc3, 0x60, 0x2f, 0x21, 0x76, 0x0f, 0x84, 0x37, 0xc8, 0x2c, 0x31, - 0xc0, 0x76, 0xe1, 0x03, 0x86, 0xf1, 0x3a, 0x31, 0xf2, 0x11, 0x9d, 0x38, 0x03, 0x71, 0x5d, 0x33, - 0x2d, 0xad, 0xcc, 0x22, 0x22, 0xd8, 0x63, 0x4c, 0x01, 0x03, 0x75, 0x86, 0x54, 0xe8, 0x23, 0x85, - 0xd4, 0x79, 0x18, 0xb4, 0x87, 0xa4, 0x34, 0x55, 0xbd, 0x22, 0x62, 0x73, 0xc2, 0x6f, 0x24, 0xe3, - 0x79, 0x81, 0x93, 0x09, 0x4c, 0x4e, 0x6a, 0x9e, 0x6b, 0x69, 0x0e, 0xc0, 0xd0, 0x35, 0x63, 0x03, - 0xb7, 0x57, 0xa9, 0x86, 0x71, 0xd2, 0xdd, 0x4b, 0x05, 0x62, 0xd2, 0xe1, 0x25, 0x83, 0x49, 0x4b, - 0x35, 0xe9, 0x8c, 0x13, 0x6a, 0xfd, 0xdb, 0x44, 0xca, 0x12, 0xdb, 0x64, 0x1d, 0xd1, 0x56, 0x84, - 0x64, 0x53, 0x23, 0x71, 0x8f, 0x2e, 0x66, 0x33, 0x8b, 0xd1, 0x41, 0x8c, 0xfb, 0xce, 0x4c, 0xe6, - 0x30, 0x36, 0xb1, 0x81, 0xa6, 0xfb, 0x52, 0x3a, 0x0c, 0xb6, 0x40, 0xa1, 0x61, 0x05, 0x34, 0x0b, - 0x25, 0x84, 0x70, 0x19, 0x65, 0xa3, 0xa7, 0x21, 0xe9, 0x75, 0x8f, 0x34, 0x02, 0x61, 0xd3, 0x52, - 0x9b, 0x16, 0x8d, 0xc2, 0xb0, 0xcc, 0x2e, 0xa4, 0x14, 0x04, 0x31, 0xc9, 0xd0, 0x2c, 0x17, 0x96, - 0xc9, 0xd7, 0xd1, 0x53, 0x30, 0xe0, 0xb9, 0x7d, 0xaf, 0xc0, 0xcc, 0x13, 0x11, 0x18, 0xe9, 0x16, - 0x73, 0x5d, 0xc3, 0x1f, 0xb7, 0x0f, 0x46, 0xc0, 0xba, 0xd6, 0xc4, 0xb8, 0x23, 0x0c, 0xfc, 0x0a, - 0x23, 0x2a, 0x5c, 0x53, 0xd7, 0xb5, 0x1a, 0x46, 0x53, 0xe0, 0x48, 0x72, 0xf2, 0xce, 0x9e, 0xa2, - 0x7a, 0x7c, 0x91, 0x40, 0x64, 0x86, 0x94, 0xee, 0x85, 0x10, 0x4f, 0x71, 0x84, 0xe1, 0x68, 0x6f, - 0x0c, 0x24, 0x16, 0x65, 0x8a, 0x93, 0x6e, 0x84, 0x18, 0xf9, 0xcf, 0x7c, 0x1b, 0xa1, 0x63, 0x8e, - 0x12, 0x01, 0xf1, 0xab, 0x34, 0x0a, 0x51, 0x1a, 0x66, 0x65, 0x4d, 0x94, 0x06, 0xfb, 0x9a, 0x2c, - 0x4c, 0x59, 0xdb, 0x50, 0x5b, 0x35, 0x4b, 0xb9, 0xa4, 0xd6, 0x5a, 0x1a, 0x0d, 0x18, 0x5c, 0x18, - 0x2e, 0x7c, 0x80, 0xc8, 0xa4, 0x31, 0x88, 0xb3, 0xa8, 0xac, 0x22, 0xe6, 0x0a, 0xcd, 0x3e, 0x61, - 0x99, 0x05, 0xea, 0x02, 0x91, 0x90, 0xdb, 0x5f, 0x30, 0x71, 0x2f, 0xf0, 0xa5, 0xa5, 0xb7, 0x20, - 0x02, 0x7a, 0xfb, 0x53, 0xed, 0x89, 0xef, 0xe6, 0xee, 0xd3, 0x6b, 0x8f, 0xc5, 0xcc, 0x77, 0xfb, - 0x20, 0x44, 0xf7, 0xdb, 0x20, 0xc4, 0xd7, 0x1e, 0x5a, 0xc9, 0x2b, 0x73, 0x85, 0x62, 0x6e, 0x31, - 0x9f, 0x0a, 0x48, 0x49, 0x00, 0x2a, 0x38, 0xbb, 0x58, 0x98, 0x59, 0x4b, 0xf5, 0xd9, 0xd7, 0x0b, - 0xcb, 0x6b, 0x27, 0x4f, 0xa4, 0x82, 0x36, 0xa0, 0xc8, 0x04, 0x21, 0xb7, 0xc1, 0xd4, 0x64, 0x2a, - 0x8c, 0x91, 0x90, 0x60, 0x04, 0x0b, 0xe7, 0xf3, 0x73, 0x68, 0x11, 0xf1, 0x4a, 0xd0, 0xa6, 0x5f, - 0x1a, 0x80, 0x18, 0x95, 0xe4, 0x0a, 0x85, 0xc5, 0x54, 0xd4, 0xe6, 0x5c, 0x5d, 0x93, 0x17, 0x96, - 0xe7, 0x53, 0x31, 0x9b, 0x73, 0x5e, 0x2e, 0x14, 0x57, 0x52, 0x60, 0x33, 0x2c, 0xe5, 0x57, 0x57, - 0x67, 0xe6, 0xf3, 0xa9, 0xb8, 0x6d, 0x91, 0x7b, 0x68, 0x2d, 0xbf, 0x9a, 0x4a, 0x78, 0x86, 0x85, - 0xb7, 0x18, 0xb0, 0x6f, 0x91, 0x5f, 0x2e, 0x2e, 0xa5, 0x92, 0xd2, 0x10, 0x0c, 0xb0, 0x5b, 0x88, - 0x41, 0x0c, 0xb6, 0x89, 0x70, 0xa4, 0x29, 0x67, 0x20, 0x8c, 0x65, 0xc8, 0x23, 0x40, 0x0b, 0x29, - 0x33, 0x0b, 0x61, 0x1a, 0x5d, 0x18, 0xc5, 0xc9, 0xc5, 0x99, 0x5c, 0x7e, 0x51, 0x29, 0xac, 0xac, - 0x2d, 0x14, 0x96, 0x67, 0x16, 0xd1, 0x77, 0xb6, 0x4c, 0xce, 0xff, 0x4b, 0x71, 0x41, 0xce, 0xcf, - 0xa1, 0xff, 0x5c, 0xb2, 0x95, 0xfc, 0xcc, 0x1a, 0xca, 0x82, 0x99, 0xa3, 0x30, 0xd2, 0x2d, 0xcf, - 0x74, 0xdb, 0x19, 0x99, 0x17, 0x02, 0x30, 0xdc, 0x25, 0x65, 0x76, 0xdd, 0x45, 0xf7, 0x41, 0x98, - 0x45, 0x1a, 0x2b, 0x22, 0x77, 0x74, 0xcd, 0xbd, 0x34, 0xee, 0x3a, 0x0a, 0x09, 0xc5, 0xb9, 0x0b, - 0x69, 0x70, 0x9b, 0x42, 0x4a, 0x28, 0x3a, 0xc2, 0xe9, 0xd1, 0x00, 0xa4, 0xb7, 0xe3, 0xf6, 0xd9, - 0xef, 0x7d, 0x9e, 0xfd, 0x7e, 0x4f, 0xfb, 0x00, 0x0e, 0x6d, 0x3f, 0x87, 0x8e, 0x51, 0xbc, 0x18, - 0x80, 0xbd, 0xdd, 0xfb, 0x8d, 0xae, 0x63, 0xb8, 0x17, 0x22, 0x75, 0xcd, 0xda, 0x34, 0x44, 0xcd, - 0xbd, 0xad, 0x4b, 0x26, 0x27, 0xea, 0x76, 0x5f, 0x71, 0x94, 0xbb, 0x14, 0x04, 0xb7, 0x6b, 0x1a, - 0xd8, 0x68, 0x3a, 0x46, 0xfa, 0x58, 0x1f, 0xdc, 0xd0, 0x95, 0xbc, 0xeb, 0x40, 0x6f, 0x06, 0xa8, - 0xea, 0x8d, 0x96, 0xc5, 0xea, 0x2a, 0x4b, 0x33, 0x31, 0x2a, 0xa1, 0x5b, 0x98, 0xa4, 0x90, 0x96, - 0x65, 0xeb, 0x83, 0x54, 0x0f, 0x4c, 0x44, 0x0d, 0x4e, 0x3b, 0x03, 0x0d, 0xd1, 0x81, 0x1e, 0xd8, - 0x66, 0xa6, 0x1d, 0x25, 0xeb, 0x18, 0xa4, 0x4a, 0xb5, 0xaa, 0xa6, 0x5b, 0x8a, 0x69, 0x35, 0x35, - 0xb5, 0x5e, 0xd5, 0x2b, 0x34, 0x8f, 0x46, 0xb3, 0xe1, 0x0d, 0xb5, 0x66, 0x6a, 0xf2, 0x20, 0x53, - 0xaf, 0x0a, 0x2d, 0x41, 0xd0, 0x62, 0xd1, 0x74, 0x21, 0x22, 0x1e, 0x04, 0x53, 0xdb, 0x88, 0xcc, - 0xcf, 0xfa, 0x21, 0xee, 0xea, 0xce, 0xa4, 0x43, 0x90, 0xb8, 0xa0, 0x5e, 0x52, 0x15, 0xd1, 0x71, - 0x33, 0x4f, 0xc4, 0x89, 0x6c, 0x85, 0x77, 0xdd, 0xc7, 0x60, 0x84, 0x9a, 0xe0, 0x1c, 0xf1, 0x46, - 0xa5, 0x9a, 0x6a, 0x9a, 0xd4, 0x69, 0x51, 0x6a, 0x2a, 0x11, 0x5d, 0x81, 0xa8, 0x66, 0x85, 0x46, - 0x9a, 0x86, 0x61, 0x8a, 0xa8, 0x63, 0xe2, 0xad, 0x36, 0x6a, 0x9a, 0x42, 0x9e, 0x01, 0x4c, 0x9a, - 0x4f, 0xed, 0x91, 0x0d, 0x11, 0x8b, 0x25, 0x6e, 0x40, 0x46, 0x64, 0x4a, 0xf3, 0x70, 0x33, 0x85, - 0x55, 0x34, 0x5d, 0x6b, 0xaa, 0x96, 0xa6, 0x68, 0xff, 0xd6, 0x42, 0x5b, 0x45, 0xd5, 0xcb, 0xca, - 0xa6, 0x6a, 0x6e, 0xa6, 0x47, 0xdc, 0x04, 0xfb, 0x89, 0xed, 0x3c, 0x37, 0xcd, 0x53, 0xcb, 0x19, - 0xbd, 0x7c, 0x3f, 0xda, 0x49, 0x59, 0xd8, 0x4b, 0x89, 0xd0, 0x29, 0x38, 0x67, 0xa5, 0xb4, 0xa9, - 0x95, 0x2e, 0x2a, 0x2d, 0x6b, 0xe3, 0x74, 0xfa, 0x46, 0x37, 0x03, 0x1d, 0xe4, 0x2a, 0xb5, 0x99, - 0x25, 0x26, 0x45, 0xb4, 0x90, 0x56, 0x21, 0x41, 0xd6, 0xa3, 0x5e, 0x7d, 0x04, 0x87, 0x6d, 0x34, - 0x69, 0x8d, 0x48, 0x76, 0xd9, 0xdc, 0x2e, 0x27, 0x8e, 0x17, 0x38, 0x60, 0x09, 0xfb, 0xd3, 0x6c, - 0x78, 0x75, 0x25, 0x9f, 0x9f, 0x93, 0xe3, 0x82, 0xe5, 0xac, 0xd1, 0x24, 0x31, 0x55, 0x31, 0x6c, - 0x1f, 0xc7, 0x59, 0x4c, 0x55, 0x0c, 0xe1, 0x61, 0xf4, 0x57, 0xa9, 0xc4, 0xa6, 0x8d, 0xcf, 0x2e, - 0xbc, 0x59, 0x37, 0xd3, 0x29, 0x8f, 0xbf, 0x4a, 0xa5, 0x79, 0x66, 0xc0, 0xc3, 0xdc, 0xc4, 0x2d, - 0x71, 0x83, 0xe3, 0x2f, 0x37, 0x70, 0xa8, 0x63, 0x96, 0xed, 0x50, 0xbc, 0x63, 0x63, 0xab, 0x13, - 0x28, 0x79, 0xee, 0xd8, 0xd8, 0x6a, 0x87, 0xdd, 0x4a, 0x1f, 0xc0, 0x9a, 0x5a, 0x09, 0x5d, 0x5e, - 0x4e, 0xef, 0x73, 0x5b, 0xbb, 0x14, 0xd2, 0x04, 0x06, 0x72, 0x49, 0xd1, 0x74, 0x75, 0x1d, 0xd7, - 0x5e, 0x6d, 0xe2, 0x17, 0x33, 0x3d, 0xe6, 0x36, 0x4e, 0x96, 0x4a, 0x79, 0xaa, 0x9d, 0xa1, 0x4a, - 0xe9, 0x28, 0x0c, 0x19, 0xeb, 0x17, 0x4a, 0x2c, 0xb8, 0x14, 0xe4, 0xd9, 0xa8, 0x5e, 0x49, 0xdf, - 0x42, 0xdd, 0x34, 0x48, 0x14, 0x34, 0xb4, 0x56, 0xa8, 0x58, 0xba, 0x03, 0xc9, 0xcd, 0x4d, 0xb5, - 0xd9, 0xa0, 0x45, 0xda, 0x44, 0xa7, 0x6a, 0xe9, 0x5b, 0x99, 0x29, 0x93, 0x2f, 0x0b, 0xb1, 0x94, - 0x87, 0x31, 0x32, 0x79, 0x5d, 0xd5, 0x0d, 0xa5, 0x65, 0x6a, 0x8a, 0x33, 0x44, 0x7b, 0x2d, 0x6e, - 0x23, 0xc3, 0x92, 0x6f, 0x12, 0x66, 0x45, 0x13, 0x93, 0x99, 0x30, 0x12, 0xcb, 0x73, 0x1e, 0x46, - 0x5a, 0x7a, 0x55, 0xc7, 0x10, 0x47, 0x0d, 0x01, 0xb3, 0x0d, 0x9b, 0xfe, 0x75, 0xff, 0x36, 0x4d, - 0x77, 0xd1, 0x6d, 0xcd, 0x82, 0x44, 0x1e, 0x6e, 0x75, 0x0a, 0x33, 0x59, 0x48, 0xb8, 0x63, 0x47, - 0x8a, 0x01, 0x8b, 0x1e, 0xac, 0x6e, 0x58, 0x51, 0x67, 0x0b, 0x73, 0xa4, 0x16, 0x3e, 0x9c, 0xc7, - 0xc2, 0x86, 0x35, 0x79, 0x71, 0x61, 0x2d, 0xaf, 0xc8, 0xc5, 0xe5, 0xb5, 0x85, 0xa5, 0x7c, 0x2a, - 0x78, 0x34, 0x16, 0x7d, 0xb7, 0x3f, 0x75, 0x15, 0xff, 0xfa, 0x32, 0xaf, 0xf5, 0x41, 0xd2, 0xdb, - 0x07, 0x4b, 0xff, 0x04, 0xfb, 0xc4, 0x43, 0xab, 0xa9, 0x59, 0xca, 0xe5, 0x6a, 0x93, 0x86, 0x73, - 0x5d, 0x65, 0x9d, 0xa4, 0xbd, 0x12, 0x23, 0xdc, 0x0a, 0x1f, 0xef, 0x1f, 0x44, 0x9b, 0xb3, 0xd4, - 0x44, 0x5a, 0x84, 0x31, 0x74, 0x19, 0xf6, 0x9a, 0x7a, 0x59, 0x6d, 0x96, 0x15, 0xe7, 0xb8, 0x40, - 0x51, 0x4b, 0x18, 0x07, 0xa6, 0xc1, 0x2a, 0x89, 0xcd, 0x72, 0x93, 0x6e, 0xac, 0x72, 0x63, 0x27, - 0xc5, 0xce, 0x70, 0xd3, 0xb6, 0xa8, 0x09, 0x6e, 0x17, 0x35, 0xd8, 0x7b, 0xd5, 0xd5, 0x06, 0x86, - 0x8d, 0xd5, 0xdc, 0xa2, 0xdd, 0x5b, 0x54, 0x8e, 0xa2, 0x20, 0x4f, 0xae, 0x3f, 0xbe, 0x35, 0x70, - 0xfb, 0xf1, 0x97, 0x41, 0x48, 0xb8, 0x3b, 0x38, 0xd2, 0x10, 0x97, 0x68, 0x9a, 0x0f, 0xd0, 0x2c, - 0x70, 0x78, 0xc7, 0x7e, 0x6f, 0x7c, 0x96, 0xe4, 0xff, 0x6c, 0x84, 0xf5, 0x55, 0x32, 0x43, 0x92, - 0xda, 0x4b, 0x62, 0x4d, 0x63, 0xdd, 0x7a, 0x54, 0xe6, 0x57, 0x98, 0xec, 0x22, 0x17, 0x4c, 0xca, - 0x1d, 0xa1, 0xdc, 0xb7, 0xec, 0xcc, 0x7d, 0x6e, 0x95, 0x92, 0xc7, 0xce, 0xad, 0x2a, 0xcb, 0x05, - 0x79, 0x69, 0x66, 0x51, 0xe6, 0x70, 0x69, 0x3f, 0x84, 0x6a, 0xea, 0x23, 0x5b, 0xde, 0x4a, 0x41, - 0x45, 0xbd, 0x3a, 0x1e, 0x19, 0xc8, 0x91, 0x87, 0x37, 0x3f, 0x53, 0xd1, 0xc7, 0x18, 0xfa, 0x13, - 0x10, 0xa6, 0xfe, 0x92, 0x00, 0xb8, 0xc7, 0x52, 0x7b, 0xa4, 0x28, 0x84, 0x66, 0x0b, 0x32, 0x09, - 0x7f, 0x8c, 0x77, 0x26, 0x55, 0x56, 0x16, 0xf2, 0xb3, 0xb8, 0x03, 0x32, 0xd3, 0x10, 0x61, 0x4e, - 0x20, 0x5b, 0xc3, 0x76, 0x03, 0x82, 0xd8, 0x25, 0xe7, 0x08, 0x08, 0x6d, 0x71, 0x29, 0x97, 0x97, - 0x53, 0x7d, 0xee, 0xe5, 0xfd, 0x7e, 0x00, 0xe2, 0xae, 0x86, 0x8a, 0x94, 0x72, 0xb5, 0x56, 0x33, - 0x2e, 0x2b, 0x6a, 0xad, 0x8a, 0x19, 0x8a, 0xad, 0x0f, 0x50, 0xd1, 0x0c, 0x91, 0xf4, 0xea, 0xbf, - 0xbf, 0x4b, 0x6c, 0x3e, 0x17, 0x80, 0x54, 0x7b, 0x33, 0xd6, 0x36, 0xc0, 0xc0, 0x27, 0x3a, 0xc0, - 0x67, 0x02, 0x90, 0xf4, 0x76, 0x60, 0x6d, 0xc3, 0x3b, 0xf4, 0x89, 0x0e, 0xef, 0xe9, 0x00, 0x0c, - 0x78, 0xfa, 0xae, 0x7f, 0xa8, 0xd1, 0x3d, 0x15, 0x84, 0xe1, 0x2e, 0x38, 0x4c, 0x40, 0xac, 0x41, - 0x65, 0x3d, 0xf3, 0xdd, 0xbd, 0xdc, 0x6b, 0x9c, 0xd4, 0xbf, 0x15, 0xb5, 0x69, 0xf1, 0x7e, 0x16, - 0xeb, 0x65, 0xb5, 0x8c, 0x49, 0xb5, 0xba, 0x51, 0xc5, 0xf6, 0x8d, 0x3d, 0xb1, 0xb0, 0xae, 0x75, - 0xd0, 0x91, 0xb3, 0xc7, 0xe3, 0xbb, 0x40, 0x6a, 0x18, 0x66, 0xd5, 0xaa, 0x5e, 0x22, 0xc7, 0x73, - 0xe2, 0x41, 0x9a, 0x74, 0xb1, 0x21, 0x39, 0x25, 0x34, 0x0b, 0xba, 0x65, 0x5b, 0xeb, 0x5a, 0x45, - 0x6d, 0xb3, 0x26, 0x69, 0x28, 0x28, 0xa7, 0x84, 0xc6, 0xb6, 0xc6, 0x46, 0xb3, 0x6c, 0xb4, 0x48, - 0x43, 0xc0, 0xec, 0x48, 0xd6, 0x0b, 0xc8, 0x71, 0x26, 0xb3, 0x4d, 0x78, 0xc7, 0xe6, 0x3c, 0xc1, - 0x27, 0xe4, 0x38, 0x93, 0x31, 0x93, 0xdb, 0x61, 0x50, 0xad, 0x54, 0x9a, 0x84, 0x5c, 0x10, 0xb1, - 0x36, 0x34, 0x69, 0x8b, 0xa9, 0xe1, 0xe8, 0x39, 0x88, 0x0a, 0x3f, 0x90, 0xc2, 0x42, 0x3c, 0x81, - 0x35, 0x9f, 0x9e, 0xa3, 0xf4, 0x91, 0x87, 0x7a, 0x5d, 0x28, 0xf1, 0xa6, 0x55, 0x53, 0x71, 0x0e, - 0xf4, 0xfa, 0x50, 0x1f, 0x95, 0xe3, 0x55, 0xd3, 0x3e, 0xc1, 0xc9, 0xbc, 0x88, 0xe5, 0xd5, 0x7b, - 0x20, 0x29, 0xcd, 0x41, 0xb4, 0x66, 0x60, 0x7c, 0x10, 0x04, 0x3b, 0x0d, 0x3f, 0xe2, 0x73, 0x86, - 0x39, 0xbe, 0xc8, 0xed, 0x65, 0x1b, 0x39, 0xfa, 0x93, 0x00, 0x44, 0x85, 0x18, 0x0b, 0x45, 0xa8, - 0xa1, 0x5a, 0x9b, 0x94, 0x2e, 0x9c, 0xeb, 0x4b, 0x05, 0x64, 0x7a, 0x4d, 0xe4, 0xd8, 0xcd, 0xe8, - 0x34, 0x04, 0xb8, 0x9c, 0x5c, 0x93, 0x75, 0xad, 0x69, 0x6a, 0x99, 0x36, 0xb8, 0x46, 0xbd, 0x8e, - 0x2b, 0x69, 0x8a, 0x75, 0xe5, 0xf2, 0x59, 0x2e, 0x26, 0xe7, 0xe2, 0x56, 0x53, 0xad, 0xd6, 0x3c, - 0xb6, 0x21, 0x6a, 0x9b, 0x12, 0x0a, 0xdb, 0x38, 0x0b, 0xfb, 0x05, 0x6f, 0x59, 0xb3, 0x54, 0x6c, - 0x9e, 0xcb, 0x0e, 0x28, 0x42, 0x4f, 0xbb, 0xf6, 0x71, 0x83, 0x39, 0xae, 0x17, 0xd8, 0xdc, 0x79, - 0x6c, 0x64, 0x8d, 0x7a, 0xbb, 0x27, 0x72, 0xa9, 0xb6, 0xe7, 0x2e, 0xf3, 0xfe, 0xc0, 0xc3, 0xe0, - 0x34, 0x15, 0x2f, 0xf4, 0x05, 0xe7, 0x57, 0x72, 0x2f, 0xf7, 0x8d, 0xce, 0x33, 0xdc, 0x8a, 0xf0, - 0xa0, 0xac, 0x6d, 0xd4, 0xb4, 0x12, 0xf1, 0x0e, 0x3c, 0x7f, 0x18, 0xee, 0xae, 0x54, 0xad, 0xcd, - 0xd6, 0xfa, 0x38, 0xde, 0x61, 0xa2, 0x62, 0x54, 0x0c, 0xe7, 0x75, 0x06, 0xb9, 0xa2, 0x17, 0xf4, - 0x1b, 0x7f, 0xa5, 0x11, 0xb3, 0xa5, 0xa3, 0xbe, 0xef, 0x3f, 0xb2, 0xcb, 0x30, 0xcc, 0x8d, 0x15, - 0x7a, 0xa6, 0xca, 0x5a, 0x50, 0x69, 0xc7, 0x07, 0xf2, 0xf4, 0xab, 0xef, 0xd0, 0x92, 0x20, 0x0f, - 0x71, 0x28, 0xd1, 0xb1, 0x26, 0x35, 0x2b, 0xc3, 0x0d, 0x1e, 0x3e, 0x16, 0xc3, 0xf8, 0xc8, 0xbd, - 0x33, 0xe3, 0x6b, 0x9c, 0x71, 0xd8, 0xc5, 0xb8, 0xca, 0xa1, 0xd9, 0x59, 0x18, 0xd8, 0x0d, 0xd7, - 0x8f, 0x38, 0x57, 0x42, 0x73, 0x93, 0xcc, 0xc3, 0x20, 0x25, 0x29, 0xb5, 0x4c, 0xcb, 0xa8, 0xd3, - 0x04, 0xb1, 0x33, 0xcd, 0x8f, 0xdf, 0x61, 0x41, 0x95, 0x24, 0xb0, 0x59, 0x1b, 0x95, 0x7d, 0x00, - 0x46, 0x88, 0x84, 0xee, 0x41, 0x37, 0x9b, 0xff, 0x11, 0x42, 0xfa, 0xa7, 0x8f, 0xb2, 0xd8, 0x1b, - 0xb6, 0x09, 0x5c, 0xbc, 0xae, 0x95, 0xa8, 0x68, 0x16, 0xe6, 0x36, 0x7c, 0xfe, 0xab, 0xd5, 0xa4, - 0x1d, 0xdf, 0x31, 0xa4, 0x9f, 0x7c, 0xcf, 0xbb, 0x12, 0xf3, 0x0c, 0x39, 0x53, 0xab, 0x65, 0x8b, - 0xb0, 0xaf, 0xcb, 0xca, 0xf6, 0xc0, 0xf9, 0x14, 0xe7, 0x1c, 0xe9, 0x58, 0x5d, 0x42, 0xbb, 0x02, - 0x42, 0x6e, 0xaf, 0x47, 0x0f, 0x9c, 0x4f, 0x73, 0x4e, 0x89, 0x63, 0xc5, 0xb2, 0x10, 0xc6, 0x73, - 0x30, 0x84, 0x4f, 0xea, 0xeb, 0x86, 0xc9, 0x9f, 0x7b, 0x7b, 0xa0, 0x7b, 0x86, 0xd3, 0x0d, 0x72, - 0x20, 0x7d, 0x0a, 0x26, 0x5c, 0x67, 0x20, 0xba, 0x81, 0x0f, 0x40, 0x3d, 0x50, 0x3c, 0xcb, 0x29, - 0xfa, 0x89, 0x3d, 0x81, 0xce, 0x40, 0xa2, 0x62, 0xf0, 0x34, 0xec, 0x0f, 0x7f, 0x8e, 0xc3, 0xe3, - 0x02, 0xc3, 0x29, 0x1a, 0x46, 0xa3, 0x55, 0x23, 0x39, 0xda, 0x9f, 0xe2, 0xf3, 0x82, 0x42, 0x60, - 0x38, 0xc5, 0x2e, 0xdc, 0xfa, 0x05, 0x41, 0x61, 0xba, 0xfc, 0x79, 0x1f, 0x39, 0xeb, 0xad, 0x6d, - 0x19, 0x7a, 0x2f, 0x83, 0x78, 0x9e, 0x33, 0x00, 0x87, 0x10, 0x82, 0x7b, 0x20, 0xd6, 0xeb, 0x42, - 0x7c, 0x91, 0xc3, 0xa3, 0x9a, 0x58, 0x01, 0xdc, 0x67, 0x22, 0xc9, 0x90, 0x77, 0x2b, 0xfe, 0x14, - 0x5f, 0xe2, 0x14, 0x49, 0x17, 0x8c, 0x4f, 0xc3, 0xd2, 0x4c, 0x0b, 0x1f, 0xd5, 0x7b, 0x20, 0x79, - 0x51, 0x4c, 0x83, 0x43, 0xb8, 0x2b, 0xd7, 0x35, 0xbd, 0xb4, 0xd9, 0x1b, 0xc3, 0x4b, 0xc2, 0x95, - 0x02, 0x43, 0x28, 0x30, 0xf3, 0xd4, 0xd5, 0x26, 0x3e, 0x5c, 0xd7, 0x7a, 0x5a, 0x8e, 0x2f, 0x73, - 0x8e, 0x84, 0x0d, 0xe2, 0x1e, 0x69, 0xe9, 0xbb, 0xa1, 0x79, 0x59, 0x78, 0xc4, 0x05, 0xe3, 0x5b, - 0x0f, 0x9f, 0x4c, 0x49, 0x27, 0xb1, 0x1b, 0xb6, 0xaf, 0x88, 0xad, 0xc7, 0xb0, 0x4b, 0x6e, 0x46, - 0x5c, 0x69, 0x13, 0x1f, 0xc1, 0x7b, 0xa1, 0xf9, 0xaa, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0x87, 0x60, - 0x7f, 0xd7, 0x54, 0xdf, 0x03, 0xd9, 0xd7, 0x38, 0xd9, 0xde, 0x2e, 0xe9, 0x9e, 0xa7, 0x84, 0xdd, - 0x52, 0x7e, 0x5d, 0xa4, 0x04, 0xad, 0x8d, 0x6b, 0x85, 0xb4, 0xb1, 0xa6, 0xba, 0xb1, 0x3b, 0xaf, - 0x7d, 0x43, 0x78, 0x8d, 0x61, 0x3d, 0x5e, 0x5b, 0x83, 0xbd, 0x9c, 0x71, 0x77, 0xeb, 0xfa, 0x8a, - 0x48, 0xac, 0x0c, 0x5d, 0xf4, 0xae, 0xee, 0xbf, 0xc2, 0xa8, 0xed, 0x4e, 0xd1, 0x81, 0x99, 0x0a, - 0x39, 0x18, 0xf0, 0x67, 0x7e, 0x95, 0x33, 0x8b, 0x8c, 0x6f, 0xb7, 0x70, 0xe6, 0x92, 0xda, 0x20, - 0xe4, 0xe7, 0x21, 0x2d, 0xc8, 0x5b, 0x3a, 0x36, 0xf8, 0x46, 0x45, 0xc7, 0x65, 0x2c, 0xf7, 0x40, - 0xfd, 0xcd, 0xb6, 0xa5, 0x2a, 0xba, 0xe0, 0x84, 0x79, 0x01, 0x52, 0x76, 0xbf, 0xa1, 0x54, 0xeb, - 0x0d, 0x03, 0x5b, 0xcb, 0x9d, 0x19, 0xbf, 0x25, 0x56, 0xca, 0xc6, 0x2d, 0x50, 0x58, 0x36, 0x0f, - 0x49, 0x7a, 0xd9, 0x6b, 0x48, 0x7e, 0x9b, 0x13, 0x0d, 0x38, 0x28, 0x9e, 0x38, 0xb0, 0x53, 0xc2, - 0x9e, 0xb7, 0x97, 0xfc, 0xf7, 0x1d, 0x91, 0x38, 0x38, 0x84, 0x45, 0xdf, 0x60, 0x5b, 0x25, 0x96, - 0xfc, 0x5e, 0xbf, 0xa6, 0xff, 0xfd, 0x3a, 0xdf, 0xb3, 0xde, 0x42, 0x9c, 0x5d, 0x24, 0xee, 0xf1, - 0x96, 0x4b, 0x7f, 0xb2, 0x47, 0xaf, 0xdb, 0x1e, 0xf2, 0x54, 0xcb, 0xec, 0x59, 0x18, 0xf0, 0x94, - 0x4a, 0x7f, 0xaa, 0xff, 0xe0, 0x54, 0x09, 0x77, 0xa5, 0xcc, 0x4e, 0x43, 0x88, 0x94, 0x3d, 0x7f, - 0xf8, 0x7f, 0x72, 0x38, 0x35, 0xcf, 0xfe, 0x33, 0x44, 0x45, 0xb9, 0xf3, 0x87, 0xfe, 0x17, 0x87, - 0xda, 0x10, 0x02, 0x17, 0xa5, 0xce, 0x1f, 0xfe, 0xdf, 0x02, 0x2e, 0x20, 0x04, 0xde, 0xbb, 0x0b, - 0x7f, 0xf0, 0x3f, 0x21, 0x9e, 0xae, 0x84, 0xef, 0xc8, 0x3b, 0x1f, 0x56, 0xe3, 0xfc, 0xd1, 0x8f, - 0xf1, 0x9b, 0x0b, 0x44, 0xf6, 0x14, 0x84, 0x7b, 0x74, 0xf8, 0xff, 0x72, 0x28, 0xb3, 0xc7, 0x0a, - 0x12, 0x77, 0xd5, 0x35, 0x7f, 0xf8, 0xff, 0x71, 0xb8, 0x1b, 0x45, 0x86, 0xce, 0xeb, 0x9a, 0x3f, - 0xc1, 0xff, 0x8b, 0xa1, 0x73, 0x04, 0x71, 0x9b, 0x28, 0x69, 0xfe, 0xe8, 0x4f, 0x09, 0xaf, 0x0b, - 0x08, 0xee, 0xa6, 0x98, 0x9d, 0xa6, 0xfc, 0xf1, 0x9f, 0xe6, 0x78, 0x07, 0x43, 0x3c, 0xe0, 0x4a, - 0x93, 0xfe, 0x14, 0x8f, 0x0b, 0x0f, 0xb8, 0x50, 0x64, 0x1b, 0xb5, 0x97, 0x3e, 0x7f, 0xa6, 0xcf, - 0x88, 0x6d, 0xd4, 0x56, 0xf9, 0xc8, 0x6a, 0xd2, 0x6c, 0xe1, 0x4f, 0xf1, 0x59, 0xb1, 0x9a, 0xd4, - 0x9e, 0x0c, 0xa3, 0xbd, 0x96, 0xf8, 0x73, 0x7c, 0x4e, 0x0c, 0xa3, 0xad, 0x94, 0x60, 0x65, 0x92, - 0x3a, 0xeb, 0x88, 0x3f, 0xdf, 0x13, 0x9c, 0x6f, 0xa8, 0xa3, 0x8c, 0x64, 0x1f, 0x84, 0xbd, 0xdd, - 0x6b, 0x88, 0x3f, 0xeb, 0x93, 0xd7, 0xdb, 0xba, 0x7e, 0x77, 0x09, 0xc1, 0x92, 0x37, 0xd2, 0xad, - 0x7e, 0xf8, 0xd3, 0x3e, 0x75, 0xdd, 0xfb, 0x60, 0xe7, 0x2e, 0x1f, 0xd8, 0xa1, 0x81, 0x93, 0xba, - 0xfd, 0xb9, 0x9e, 0xe1, 0x5c, 0x2e, 0x10, 0xd9, 0x1a, 0x3c, 0x73, 0xfb, 0xe3, 0x9f, 0x15, 0x5b, - 0x83, 0x23, 0x10, 0x1c, 0xd5, 0x5b, 0xb5, 0x1a, 0x09, 0x0e, 0x69, 0xe7, 0x9f, 0x34, 0xa4, 0x7f, - 0xf3, 0x21, 0xdf, 0x18, 0x02, 0x80, 0x39, 0x34, 0xac, 0xd5, 0xd7, 0xd1, 0x07, 0x3e, 0xc8, 0xdf, - 0x7e, 0x28, 0x12, 0x02, 0xb1, 0xc6, 0xfd, 0x04, 0xec, 0xa1, 0x91, 0x9e, 0x61, 0xfb, 0x60, 0x7f, - 0xf7, 0x21, 0x7f, 0xcd, 0xea, 0x40, 0x1c, 0x02, 0xf6, 0xd2, 0x76, 0x67, 0x82, 0xf7, 0xbc, 0x04, - 0xf4, 0x41, 0xf3, 0x0c, 0xf4, 0x93, 0x5f, 0x76, 0x58, 0x6a, 0xc5, 0x0f, 0xfd, 0x7b, 0x8e, 0x16, - 0xf6, 0xc4, 0x61, 0x75, 0xa3, 0xa9, 0xe1, 0x57, 0xd3, 0x0f, 0xfb, 0x07, 0x8e, 0xb5, 0x01, 0x04, - 0x5c, 0x52, 0x4d, 0xab, 0x97, 0x79, 0xff, 0x51, 0x80, 0x05, 0x80, 0x0c, 0x9a, 0x7c, 0xbf, 0xa8, - 0x6d, 0xf9, 0x61, 0xdf, 0x17, 0x83, 0xe6, 0xf6, 0x98, 0x00, 0x63, 0xe4, 0x2b, 0xfb, 0xe9, 0x81, - 0x0f, 0xf8, 0x4f, 0x1c, 0xec, 0x20, 0x72, 0x87, 0xba, 0x1f, 0xed, 0xc0, 0xbc, 0x31, 0x6f, 0xb0, - 0x43, 0x1d, 0xb8, 0x1a, 0x83, 0x83, 0x68, 0x83, 0xf5, 0x75, 0x82, 0xed, 0x49, 0x7b, 0x47, 0x4e, - 0x60, 0xf1, 0xe0, 0xc7, 0x32, 0x41, 0xfc, 0x3a, 0xba, 0xbb, 0xa3, 0x9c, 0xcc, 0x7e, 0x08, 0xaf, - 0xb6, 0xd6, 0xd7, 0xb7, 0xc8, 0xef, 0x9e, 0xcc, 0xd6, 0x3a, 0x7f, 0x49, 0x4d, 0xbe, 0x66, 0xae, - 0x05, 0x61, 0x00, 0x9b, 0x15, 0xf2, 0x5e, 0xc0, 0x2c, 0xe8, 0x5a, 0x61, 0x43, 0x4a, 0x43, 0x84, - 0xce, 0xe5, 0x38, 0x35, 0x0b, 0xdc, 0xbf, 0x47, 0x8e, 0xd0, 0xdf, 0xed, 0x1d, 0xb7, 0x35, 0x93, - 0xf4, 0xa8, 0xbf, 0xcf, 0xd6, 0x4c, 0xda, 0x9a, 0x29, 0xf6, 0x83, 0x28, 0x5b, 0x33, 0x65, 0x6b, - 0x4e, 0xd0, 0xf3, 0xb2, 0xa0, 0xad, 0x39, 0x61, 0x6b, 0xa6, 0xe9, 0x91, 0xe7, 0x80, 0xad, 0x99, - 0xb6, 0x35, 0x27, 0xe9, 0x21, 0x67, 0xc8, 0xd6, 0x9c, 0xb4, 0x35, 0xa7, 0xe8, 0xd9, 0xe6, 0x90, - 0xad, 0x39, 0x65, 0x6b, 0x4e, 0xd3, 0xf3, 0x4c, 0xc9, 0xd6, 0x9c, 0xb6, 0x35, 0x67, 0xe8, 0xab, - 0xe8, 0x7e, 0x5b, 0x73, 0x46, 0x1a, 0x85, 0x7e, 0x36, 0xd3, 0x63, 0xf4, 0xd5, 0xcd, 0x20, 0xaa, - 0xfa, 0xd9, 0x54, 0x8f, 0x39, 0xba, 0xe3, 0xf4, 0x75, 0x73, 0xc4, 0xd1, 0x1d, 0x77, 0x74, 0x93, - 0xf4, 0xe7, 0x93, 0x29, 0x47, 0x37, 0xe9, 0xe8, 0xa6, 0xd2, 0x03, 0x64, 0xbf, 0x3a, 0xba, 0x29, - 0x47, 0x77, 0x22, 0x9d, 0x24, 0x2b, 0xe0, 0xe8, 0x4e, 0x38, 0xba, 0xe9, 0xf4, 0x20, 0x39, 0xb6, - 0x75, 0x74, 0xd3, 0xd2, 0xdd, 0x10, 0xc7, 0xa5, 0x52, 0xf8, 0x9b, 0x46, 0xfa, 0x5a, 0x3b, 0x3e, - 0x09, 0xe3, 0x24, 0x26, 0xe8, 0xb2, 0xa2, 0x2d, 0xa0, 0x01, 0x4f, 0x53, 0xb9, 0x04, 0xd0, 0xc7, - 0x57, 0x85, 0xfe, 0x2c, 0x2b, 0xf3, 0x46, 0x00, 0x62, 0x6b, 0x97, 0x0d, 0xfa, 0x0b, 0x1e, 0xf3, - 0x6f, 0xbc, 0xb8, 0x62, 0xd0, 0x53, 0x27, 0xd2, 0x19, 0x3a, 0xa1, 0x00, 0x1f, 0xf4, 0x94, 0x33, - 0xa1, 0xa9, 0xe9, 0xf4, 0x61, 0x3a, 0x21, 0x5b, 0x37, 0x2d, 0x4d, 0x40, 0xc2, 0x35, 0xa1, 0x49, - 0xfa, 0xa6, 0xda, 0x3b, 0xa3, 0x80, 0x1c, 0x77, 0x66, 0x34, 0x99, 0x0b, 0x03, 0x09, 0x7b, 0xf2, - 0xcf, 0xba, 0x6c, 0x64, 0x1e, 0xef, 0x83, 0x38, 0x3b, 0xf1, 0xa2, 0xb3, 0x22, 0xb7, 0x62, 0xad, - 0xed, 0x16, 0x1f, 0x06, 0xfa, 0x8e, 0xf5, 0x6b, 0x5b, 0x92, 0x0c, 0xc0, 0x4c, 0x49, 0x84, 0xb3, - 0x91, 0xe4, 0x8e, 0xfd, 0xe2, 0xda, 0xd8, 0x5d, 0xdb, 0xee, 0x20, 0xe2, 0xbb, 0x09, 0x96, 0xe7, - 0xc6, 0x8b, 0x55, 0xdd, 0x3a, 0x3e, 0x79, 0x9a, 0x38, 0xb8, 0x64, 0xb3, 0x48, 0x45, 0x88, 0xce, - 0xe2, 0xbe, 0xa6, 0x8c, 0x64, 0xe8, 0xa1, 0xdc, 0xa9, 0xbf, 0x5c, 0x1b, 0x9b, 0xf2, 0x61, 0xe4, - 0x29, 0x68, 0x7c, 0x69, 0x8b, 0xb0, 0x9e, 0x3c, 0x41, 0xe0, 0x48, 0x4c, 0x73, 0x13, 0xa5, 0x9d, - 0x14, 0x43, 0x25, 0x07, 0xef, 0xf4, 0x95, 0x7c, 0x30, 0x97, 0x7a, 0xfb, 0xda, 0x58, 0x62, 0x69, - 0xcb, 0x91, 0x3b, 0x43, 0x21, 0x57, 0xb9, 0x28, 0x44, 0xd8, 0x55, 0x6e, 0xee, 0xf5, 0xb7, 0x0e, - 0xec, 0x79, 0x03, 0x3f, 0x3f, 0xc7, 0xcf, 0x9b, 0x6f, 0x1d, 0x08, 0xbc, 0x8f, 0x9f, 0x0f, 0xf0, - 0x73, 0xf5, 0xed, 0x03, 0x81, 0x97, 0xf0, 0xf3, 0x0a, 0x7e, 0xbe, 0x87, 0x9f, 0xd7, 0xdf, 0x46, - 0x3b, 0xfc, 0xbc, 0x89, 0xdf, 0xdf, 0xc5, 0xff, 0xef, 0xe3, 0xff, 0x0f, 0xf0, 0x73, 0xf5, 0x57, - 0x07, 0xf6, 0xfc, 0x35, 0x00, 0x00, 0xff, 0xff, 0x93, 0x59, 0x7f, 0xe0, 0xed, 0x2e, 0x00, 0x00, + // 4041 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0x5c, 0x2d, 0x6d, + 0xc7, 0xb2, 0x1d, 0x4b, 0xb6, 0x2e, 0x7b, 0xe1, 0x36, 0xf1, 0x90, 0x14, 0x57, 0xab, 0xad, 0x24, + 0x2a, 0xa0, 0x14, 0xaf, 0xd3, 0x07, 0x0c, 0x04, 0xfe, 0xa4, 0xb0, 0x0b, 0x02, 0x0c, 0x00, 0xee, + 0x5a, 0x7e, 0xda, 0x8e, 0x7b, 0x99, 0x4c, 0xa7, 0xb7, 0xb4, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, + 0xd3, 0x3a, 0x4d, 0x7a, 0x49, 0x7a, 0x49, 0x33, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x9c, 0xb7, + 0x4e, 0xa7, 0xe3, 0xf1, 0x2a, 0x9e, 0x69, 0xda, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xfa, 0xa5, + 0xf3, 0xdf, 0x00, 0xf0, 0xa2, 0x05, 0x95, 0xa9, 0x93, 0x27, 0x09, 0xe7, 0x9c, 0xef, 0xc3, 0xc1, + 0xf9, 0xcf, 0x7f, 0xce, 0xc1, 0x4f, 0xc0, 0xf7, 0xd6, 0x60, 0xbe, 0x65, 0xdb, 0x2d, 0x13, 0x2d, + 0x75, 0x1c, 0xdb, 0xb3, 0x0f, 0xba, 0xcd, 0xa5, 0x06, 0x72, 0x75, 0xc7, 0xe8, 0x78, 0xb6, 0xb3, + 0x48, 0x64, 0xd2, 0x14, 0xb5, 0x58, 0xe4, 0x16, 0x85, 0x6d, 0x98, 0xbe, 0x66, 0x98, 0x68, 0xdd, + 0x37, 0xac, 0x23, 0x4f, 0xba, 0x0c, 0x89, 0xa6, 0x61, 0x22, 0x59, 0x98, 0x8f, 0x2f, 0x64, 0x96, + 0x1f, 0x5b, 0xec, 0x03, 0x2d, 0xf6, 0x22, 0x76, 0xb1, 0x58, 0x21, 0x88, 0xc2, 0xbb, 0x09, 0x98, + 0x19, 0xa2, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x1b, 0x33, 0x0a, 0x0b, 0x69, 0x85, 0xfc, 0x2f, 0xc9, + 0x30, 0xd1, 0xd1, 0xf4, 0xdb, 0x5a, 0x0b, 0xc9, 0x31, 0x22, 0xe6, 0x97, 0x52, 0x1e, 0xa0, 0x81, + 0x3a, 0xc8, 0x6a, 0x20, 0x4b, 0x3f, 0x92, 0xe3, 0xf3, 0xf1, 0x85, 0xb4, 0x12, 0x92, 0x48, 0x4f, + 0xc3, 0x74, 0xa7, 0x7b, 0x60, 0x1a, 0xba, 0x1a, 0x32, 0x83, 0xf9, 0xf8, 0x42, 0x52, 0x11, 0xa9, + 0x62, 0x3d, 0x30, 0x7e, 0x02, 0xa6, 0xee, 0x22, 0xed, 0x76, 0xd8, 0x34, 0x43, 0x4c, 0x73, 0x58, + 0x1c, 0x32, 0xac, 0x40, 0xb6, 0x8d, 0x5c, 0x57, 0x6b, 0x21, 0xd5, 0x3b, 0xea, 0x20, 0x39, 0x41, + 0x9e, 0x7e, 0x7e, 0xe0, 0xe9, 0xfb, 0x9f, 0x3c, 0xc3, 0x50, 0x7b, 0x47, 0x1d, 0x24, 0x95, 0x20, + 0x8d, 0xac, 0x6e, 0x9b, 0x32, 0x24, 0x4f, 0x88, 0x5f, 0xd5, 0xea, 0xb6, 0xfb, 0x59, 0x52, 0x18, + 0xc6, 0x28, 0x26, 0x5c, 0xe4, 0xdc, 0x31, 0x74, 0x24, 0x8f, 0x13, 0x82, 0x27, 0x06, 0x08, 0xea, + 0x54, 0xdf, 0xcf, 0xc1, 0x71, 0x52, 0x05, 0xd2, 0xe8, 0x25, 0x0f, 0x59, 0xae, 0x61, 0x5b, 0xf2, + 0x04, 0x21, 0x79, 0x7c, 0xc8, 0x2a, 0x22, 0xb3, 0xd1, 0x4f, 0x11, 0xe0, 0xa4, 0x8b, 0x30, 0x61, + 0x77, 0x3c, 0xc3, 0xb6, 0x5c, 0x39, 0x35, 0x2f, 0x2c, 0x64, 0x96, 0x3f, 0x36, 0x34, 0x11, 0x6a, + 0xd4, 0x46, 0xe1, 0xc6, 0xd2, 0x26, 0x88, 0xae, 0xdd, 0x75, 0x74, 0xa4, 0xea, 0x76, 0x03, 0xa9, + 0x86, 0xd5, 0xb4, 0xe5, 0x34, 0x21, 0x38, 0x3f, 0xf8, 0x20, 0xc4, 0xb0, 0x62, 0x37, 0xd0, 0xa6, + 0xd5, 0xb4, 0x95, 0x9c, 0xdb, 0x73, 0x2d, 0x9d, 0x81, 0x71, 0xf7, 0xc8, 0xf2, 0xb4, 0x97, 0xe4, + 0x2c, 0xc9, 0x10, 0x76, 0x55, 0xf8, 0x9f, 0x24, 0x4c, 0x8d, 0x92, 0x62, 0x57, 0x21, 0xd9, 0xc4, + 0x4f, 0x29, 0xc7, 0x4e, 0x13, 0x03, 0x8a, 0xe9, 0x0d, 0xe2, 0xf8, 0x8f, 0x18, 0xc4, 0x12, 0x64, + 0x2c, 0xe4, 0x7a, 0xa8, 0x41, 0x33, 0x22, 0x3e, 0x62, 0x4e, 0x01, 0x05, 0x0d, 0xa6, 0x54, 0xe2, + 0x47, 0x4a, 0xa9, 0x9b, 0x30, 0xe5, 0xbb, 0xa4, 0x3a, 0x9a, 0xd5, 0xe2, 0xb9, 0xb9, 0x14, 0xe5, + 0xc9, 0x62, 0x95, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0xa8, 0xe7, 0x5a, 0x5a, 0x07, 0xb0, 0x2d, 0x64, + 0x37, 0xd5, 0x06, 0xd2, 0x4d, 0x39, 0x75, 0x42, 0x94, 0x6a, 0xd8, 0x64, 0x20, 0x4a, 0x36, 0x95, + 0xea, 0xa6, 0x74, 0x25, 0x48, 0xb5, 0x89, 0x13, 0x32, 0x65, 0x9b, 0x6e, 0xb2, 0x81, 0x6c, 0xdb, + 0x87, 0x9c, 0x83, 0x70, 0xde, 0xa3, 0x06, 0x7b, 0xb2, 0x34, 0x71, 0x62, 0x31, 0xf2, 0xc9, 0x14, + 0x06, 0xa3, 0x0f, 0x36, 0xe9, 0x84, 0x2f, 0xa5, 0x47, 0xc1, 0x17, 0xa8, 0x24, 0xad, 0x80, 0x54, + 0xa1, 0x2c, 0x17, 0xee, 0x68, 0x6d, 0x34, 0x77, 0x19, 0x72, 0xbd, 0xe1, 0x91, 0x66, 0x21, 0xe9, + 0x7a, 0x9a, 0xe3, 0x91, 0x2c, 0x4c, 0x2a, 0xf4, 0x42, 0x12, 0x21, 0x8e, 0xac, 0x06, 0xa9, 0x72, + 0x49, 0x05, 0xff, 0x3b, 0x77, 0x09, 0x26, 0x7b, 0x6e, 0x3f, 0x2a, 0xb0, 0xf0, 0xc5, 0x71, 0x98, + 0x1d, 0x96, 0x73, 0x43, 0xd3, 0xff, 0x0c, 0x8c, 0x5b, 0xdd, 0xf6, 0x01, 0x72, 0xe4, 0x38, 0x61, + 0x60, 0x57, 0x52, 0x09, 0x92, 0xa6, 0x76, 0x80, 0x4c, 0x39, 0x31, 0x2f, 0x2c, 0xe4, 0x96, 0x9f, + 0x1e, 0x29, 0xab, 0x17, 0xb7, 0x30, 0x44, 0xa1, 0x48, 0xe9, 0x53, 0x90, 0x60, 0x25, 0x0e, 0x33, + 0x3c, 0x35, 0x1a, 0x03, 0xce, 0x45, 0x85, 0xe0, 0xa4, 0x87, 0x21, 0x8d, 0xff, 0xd2, 0xd8, 0x8e, + 0x13, 0x9f, 0x53, 0x58, 0x80, 0xe3, 0x2a, 0xcd, 0x41, 0x8a, 0xa4, 0x59, 0x03, 0xf1, 0xd6, 0xe0, + 0x5f, 0xe3, 0x85, 0x69, 0xa0, 0xa6, 0xd6, 0x35, 0x3d, 0xf5, 0x8e, 0x66, 0x76, 0x11, 0x49, 0x98, + 0xb4, 0x92, 0x65, 0xc2, 0xcf, 0x60, 0x99, 0x74, 0x1e, 0x32, 0x34, 0x2b, 0x0d, 0xab, 0x81, 0x5e, + 0x22, 0xd5, 0x27, 0xa9, 0xd0, 0x44, 0xdd, 0xc4, 0x12, 0x7c, 0xfb, 0x5b, 0xae, 0x6d, 0xf1, 0xa5, + 0x25, 0xb7, 0xc0, 0x02, 0x72, 0xfb, 0x4b, 0xfd, 0x85, 0xef, 0x91, 0xe1, 0x8f, 0xd7, 0x9f, 0x8b, + 0x85, 0x6f, 0xc5, 0x20, 0x41, 0xf6, 0xdb, 0x14, 0x64, 0xf6, 0x5e, 0xdc, 0xad, 0xaa, 0xeb, 0xb5, + 0xfd, 0xf2, 0x56, 0x55, 0x14, 0xa4, 0x1c, 0x00, 0x11, 0x5c, 0xdb, 0xaa, 0x95, 0xf6, 0xc4, 0x98, + 0x7f, 0xbd, 0xb9, 0xb3, 0x77, 0x71, 0x55, 0x8c, 0xfb, 0x80, 0x7d, 0x2a, 0x48, 0x84, 0x0d, 0x56, + 0x96, 0xc5, 0xa4, 0x24, 0x42, 0x96, 0x12, 0x6c, 0xde, 0xac, 0xae, 0x5f, 0x5c, 0x15, 0xc7, 0x7b, + 0x25, 0x2b, 0xcb, 0xe2, 0x84, 0x34, 0x09, 0x69, 0x22, 0x29, 0xd7, 0x6a, 0x5b, 0x62, 0xca, 0xe7, + 0xac, 0xef, 0x29, 0x9b, 0x3b, 0x1b, 0x62, 0xda, 0xe7, 0xdc, 0x50, 0x6a, 0xfb, 0xbb, 0x22, 0xf8, + 0x0c, 0xdb, 0xd5, 0x7a, 0xbd, 0xb4, 0x51, 0x15, 0x33, 0xbe, 0x45, 0xf9, 0xc5, 0xbd, 0x6a, 0x5d, + 0xcc, 0xf6, 0xb8, 0xb5, 0xb2, 0x2c, 0x4e, 0xfa, 0xb7, 0xa8, 0xee, 0xec, 0x6f, 0x8b, 0x39, 0x69, + 0x1a, 0x26, 0xe9, 0x2d, 0xb8, 0x13, 0x53, 0x7d, 0xa2, 0x8b, 0xab, 0xa2, 0x18, 0x38, 0x42, 0x59, + 0xa6, 0x7b, 0x04, 0x17, 0x57, 0x45, 0xa9, 0x50, 0x81, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x56, + 0xa9, 0x5c, 0xdd, 0x52, 0x6b, 0xbb, 0x7b, 0x9b, 0xb5, 0x9d, 0xd2, 0x96, 0x28, 0x04, 0x32, 0xa5, + 0xfa, 0xe9, 0xfd, 0x4d, 0xa5, 0xba, 0x2e, 0xc6, 0xc2, 0xb2, 0xdd, 0x6a, 0x69, 0xaf, 0xba, 0x2e, + 0xc6, 0x0b, 0x3a, 0xcc, 0x0e, 0xab, 0x33, 0x43, 0x77, 0x46, 0x68, 0x89, 0x63, 0x27, 0x2c, 0x31, + 0xe1, 0x1a, 0x58, 0xe2, 0xaf, 0x08, 0x30, 0x33, 0xa4, 0xd6, 0x0e, 0xbd, 0xc9, 0xf3, 0x90, 0xa4, + 0x29, 0x4a, 0xbb, 0xcf, 0x93, 0x43, 0x8b, 0x36, 0x49, 0xd8, 0x81, 0x0e, 0x44, 0x70, 0xe1, 0x0e, + 0x1c, 0x3f, 0xa1, 0x03, 0x63, 0x8a, 0x01, 0x27, 0x5f, 0x11, 0x40, 0x3e, 0x89, 0x3b, 0xa2, 0x50, + 0xc4, 0x7a, 0x0a, 0xc5, 0xd5, 0x7e, 0x07, 0x2e, 0x9c, 0xfc, 0x0c, 0x03, 0x5e, 0xbc, 0x21, 0xc0, + 0x99, 0xe1, 0x83, 0xca, 0x50, 0x1f, 0x3e, 0x05, 0xe3, 0x6d, 0xe4, 0x1d, 0xda, 0xbc, 0x59, 0x7f, + 0x7c, 0x48, 0x0b, 0xc0, 0xea, 0xfe, 0x58, 0x31, 0x54, 0xb8, 0x87, 0xc4, 0x4f, 0x9a, 0x36, 0xa8, + 0x37, 0x03, 0x9e, 0x7e, 0x3e, 0x06, 0x0f, 0x0d, 0x25, 0x1f, 0xea, 0xe8, 0x23, 0x00, 0x86, 0xd5, + 0xe9, 0x7a, 0xb4, 0x21, 0xd3, 0xfa, 0x94, 0x26, 0x12, 0xb2, 0xf7, 0x71, 0xed, 0xe9, 0x7a, 0xbe, + 0x3e, 0x4e, 0xf4, 0x40, 0x45, 0xc4, 0xe0, 0x72, 0xe0, 0x68, 0x82, 0x38, 0x9a, 0x3f, 0xe1, 0x49, + 0x07, 0x7a, 0xdd, 0xb3, 0x20, 0xea, 0xa6, 0x81, 0x2c, 0x4f, 0x75, 0x3d, 0x07, 0x69, 0x6d, 0xc3, + 0x6a, 0x91, 0x02, 0x9c, 0x2a, 0x26, 0x9b, 0x9a, 0xe9, 0x22, 0x65, 0x8a, 0xaa, 0xeb, 0x5c, 0x8b, + 0x11, 0xa4, 0xcb, 0x38, 0x21, 0xc4, 0x78, 0x0f, 0x82, 0xaa, 0x7d, 0x44, 0xe1, 0xeb, 0x13, 0x90, + 0x09, 0x8d, 0x75, 0xd2, 0x05, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x1f, 0xd5, 0x69, 0x24, 0x32, + 0x58, 0xb6, 0xcb, 0xc6, 0xf5, 0x67, 0x61, 0x96, 0x98, 0xd8, 0x5d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, + 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xc2, 0x35, 0xd2, 0x1a, 0xcc, + 0x10, 0x44, 0xbb, 0x6b, 0x7a, 0x46, 0xc7, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x3d, + 0x9b, 0xc6, 0x16, 0xdb, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0xeb, 0xf0, 0x08, 0x81, 0xb5, 0x90, 0x85, + 0x1c, 0xcd, 0x43, 0x2a, 0xfa, 0x5c, 0x57, 0x33, 0x5d, 0x55, 0xb3, 0x1a, 0xea, 0xa1, 0xe6, 0x1e, + 0xca, 0xb3, 0x98, 0xa0, 0x1c, 0x93, 0x05, 0xe5, 0x1c, 0x36, 0xdc, 0x60, 0x76, 0x55, 0x62, 0x56, + 0xb2, 0x1a, 0xd7, 0x35, 0xf7, 0x50, 0x2a, 0xc2, 0x19, 0xc2, 0xe2, 0x7a, 0x8e, 0x61, 0xb5, 0x54, + 0xfd, 0x10, 0xe9, 0xb7, 0xd5, 0xae, 0xd7, 0xbc, 0x2c, 0x3f, 0x1c, 0xbe, 0x3f, 0xf1, 0xb0, 0x4e, + 0x6c, 0x2a, 0xd8, 0x64, 0xdf, 0x6b, 0x5e, 0x96, 0xea, 0x90, 0xc5, 0x8b, 0xd1, 0x36, 0x5e, 0x46, + 0x6a, 0xd3, 0x76, 0x48, 0x67, 0xc9, 0x0d, 0xd9, 0xd9, 0xa1, 0x08, 0x2e, 0xd6, 0x18, 0x60, 0xdb, + 0x6e, 0xa0, 0x62, 0xb2, 0xbe, 0x5b, 0xad, 0xae, 0x2b, 0x19, 0xce, 0x72, 0xcd, 0x76, 0x70, 0x42, + 0xb5, 0x6c, 0x3f, 0xc0, 0x19, 0x9a, 0x50, 0x2d, 0x9b, 0x87, 0x77, 0x0d, 0x66, 0x74, 0x9d, 0x3e, + 0xb3, 0xa1, 0xab, 0x6c, 0xc4, 0x77, 0x65, 0xb1, 0x27, 0x58, 0xba, 0xbe, 0x41, 0x0d, 0x58, 0x8e, + 0xbb, 0xd2, 0x15, 0x78, 0x28, 0x08, 0x56, 0x18, 0x38, 0x3d, 0xf0, 0x94, 0xfd, 0xd0, 0x35, 0x98, + 0xe9, 0x1c, 0x0d, 0x02, 0xa5, 0x9e, 0x3b, 0x76, 0x8e, 0xfa, 0x61, 0x8f, 0x93, 0xd7, 0x36, 0x07, + 0xe9, 0x9a, 0x87, 0x1a, 0xf2, 0xd9, 0xb0, 0x75, 0x48, 0x21, 0x2d, 0x81, 0xa8, 0xeb, 0x2a, 0xb2, + 0xb4, 0x03, 0x13, 0xa9, 0x9a, 0x83, 0x2c, 0xcd, 0x95, 0xcf, 0x87, 0x8d, 0x73, 0xba, 0x5e, 0x25, + 0xda, 0x12, 0x51, 0x4a, 0x4f, 0xc1, 0xb4, 0x7d, 0x70, 0x4b, 0xa7, 0x99, 0xa5, 0x76, 0x1c, 0xd4, + 0x34, 0x5e, 0x92, 0x1f, 0x23, 0x61, 0x9a, 0xc2, 0x0a, 0x92, 0x57, 0xbb, 0x44, 0x2c, 0x3d, 0x09, + 0xa2, 0xee, 0x1e, 0x6a, 0x4e, 0x87, 0xb4, 0x76, 0xb7, 0xa3, 0xe9, 0x48, 0x7e, 0x9c, 0x9a, 0x52, + 0xf9, 0x0e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x1a, 0x4d, 0x8f, 0x33, 0x3e, 0x41, 0x33, 0x9b, 0xc8, + 0x18, 0xdb, 0x4d, 0x98, 0xed, 0x5a, 0x86, 0xe5, 0x21, 0xa7, 0xe3, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, + 0x28, 0xff, 0xf3, 0xc4, 0x09, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xd3, 0x1d, 0x14, + 0x16, 0x8a, 0x90, 0x0d, 0xe7, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x7b, 0x6c, 0xa5, 0xb6, + 0x8e, 0xbb, 0xe3, 0x67, 0xab, 0x62, 0x0c, 0x77, 0xe9, 0xad, 0xcd, 0xbd, 0xaa, 0xaa, 0xec, 0xef, + 0xec, 0x6d, 0x6e, 0x57, 0xc5, 0xf8, 0x53, 0xe9, 0xd4, 0xf7, 0x27, 0xc4, 0x7b, 0xf7, 0xee, 0xdd, + 0x8b, 0x15, 0xbe, 0x13, 0x83, 0x5c, 0xef, 0x64, 0x2c, 0xfd, 0x14, 0x9c, 0xe5, 0xaf, 0xb1, 0x2e, + 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x52, 0xb5, 0xad, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x2c, 0xb3, 0xaa, + 0x23, 0xef, 0x05, 0xc3, 0xc1, 0x89, 0xd8, 0xd6, 0x3c, 0x69, 0x0b, 0xce, 0x5b, 0xb6, 0xea, 0x7a, + 0x9a, 0xd5, 0xd0, 0x9c, 0x86, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, + 0xf0, 0x59, 0x3e, 0x66, 0xd9, 0x75, 0x66, 0x1c, 0xd4, 0xce, 0x12, 0x33, 0xed, 0xcb, 0x88, 0xf8, + 0x49, 0x19, 0xf1, 0x30, 0xa4, 0xdb, 0x5a, 0x47, 0x45, 0x96, 0xe7, 0x1c, 0x91, 0x79, 0x2e, 0xa5, + 0xa4, 0xda, 0x5a, 0xa7, 0x8a, 0xaf, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0x9f, 0xe2, 0x90, 0x0d, + 0xcf, 0x74, 0x78, 0x44, 0xd6, 0x49, 0xfd, 0x16, 0xc8, 0x0e, 0x7f, 0xf4, 0x81, 0x13, 0xe0, 0x62, + 0x05, 0x17, 0xf6, 0xe2, 0x38, 0x9d, 0xb4, 0x14, 0x8a, 0xc4, 0x4d, 0x15, 0xef, 0x69, 0x44, 0xe7, + 0xf7, 0x94, 0xc2, 0xae, 0xa4, 0x0d, 0x18, 0xbf, 0xe5, 0x12, 0xee, 0x71, 0xc2, 0xfd, 0xd8, 0x83, + 0xb9, 0x6f, 0xd4, 0x09, 0x79, 0xfa, 0x46, 0x5d, 0xdd, 0xa9, 0x29, 0xdb, 0xa5, 0x2d, 0x85, 0xc1, + 0xa5, 0x73, 0x90, 0x30, 0xb5, 0x97, 0x8f, 0x7a, 0x5b, 0x00, 0x11, 0x8d, 0x1a, 0xf8, 0x73, 0x90, + 0xb8, 0x8b, 0xb4, 0xdb, 0xbd, 0x85, 0x97, 0x88, 0x3e, 0xc2, 0xd4, 0x5f, 0x82, 0x24, 0x89, 0x97, + 0x04, 0xc0, 0x22, 0x26, 0x8e, 0x49, 0x29, 0x48, 0x54, 0x6a, 0x0a, 0x4e, 0x7f, 0x11, 0xb2, 0x54, + 0xaa, 0xee, 0x6e, 0x56, 0x2b, 0x55, 0x31, 0x56, 0x58, 0x83, 0x71, 0x1a, 0x04, 0xbc, 0x35, 0xfc, + 0x30, 0x88, 0x63, 0xec, 0x92, 0x71, 0x08, 0x5c, 0xbb, 0xbf, 0x5d, 0xae, 0x2a, 0x62, 0x2c, 0xbc, + 0xbc, 0x2e, 0x64, 0xc3, 0xe3, 0xdc, 0x8f, 0x27, 0xa7, 0xfe, 0x5a, 0x80, 0x4c, 0x68, 0x3c, 0xc3, + 0x83, 0x81, 0x66, 0x9a, 0xf6, 0x5d, 0x55, 0x33, 0x0d, 0xcd, 0x65, 0x49, 0x01, 0x44, 0x54, 0xc2, + 0x92, 0x51, 0x17, 0xed, 0xc7, 0xe2, 0xfc, 0xeb, 0x02, 0x88, 0xfd, 0xa3, 0x5d, 0x9f, 0x83, 0xc2, + 0x4f, 0xd4, 0xc1, 0xd7, 0x04, 0xc8, 0xf5, 0xce, 0x73, 0x7d, 0xee, 0x5d, 0xf8, 0x89, 0xba, 0xf7, + 0x4e, 0x0c, 0x26, 0x7b, 0xa6, 0xb8, 0x51, 0xbd, 0xfb, 0x1c, 0x4c, 0x1b, 0x0d, 0xd4, 0xee, 0xd8, + 0x1e, 0xb2, 0xf4, 0x23, 0xd5, 0x44, 0x77, 0x90, 0x29, 0x17, 0x48, 0xa1, 0x58, 0x7a, 0xf0, 0x9c, + 0xb8, 0xb8, 0x19, 0xe0, 0xb6, 0x30, 0xac, 0x38, 0xb3, 0xb9, 0x5e, 0xdd, 0xde, 0xad, 0xed, 0x55, + 0x77, 0x2a, 0x2f, 0xaa, 0xfb, 0x3b, 0x3f, 0xbd, 0x53, 0x7b, 0x61, 0x47, 0x11, 0x8d, 0x3e, 0xb3, + 0x8f, 0x70, 0xab, 0xef, 0x82, 0xd8, 0xef, 0x94, 0x74, 0x16, 0x86, 0xb9, 0x25, 0x8e, 0x49, 0x33, + 0x30, 0xb5, 0x53, 0x53, 0xeb, 0x9b, 0xeb, 0x55, 0xb5, 0x7a, 0xed, 0x5a, 0xb5, 0xb2, 0x57, 0xa7, + 0x2f, 0xce, 0xbe, 0xf5, 0x5e, 0xef, 0xa6, 0x7e, 0x35, 0x0e, 0x33, 0x43, 0x3c, 0x91, 0x4a, 0x6c, + 0x66, 0xa7, 0xaf, 0x11, 0xcf, 0x8c, 0xe2, 0xfd, 0x22, 0x9e, 0x0a, 0x76, 0x35, 0xc7, 0x63, 0x23, + 0xfe, 0x93, 0x80, 0xa3, 0x64, 0x79, 0x46, 0xd3, 0x40, 0x0e, 0x3b, 0x67, 0xa0, 0x83, 0xfc, 0x54, + 0x20, 0xa7, 0x47, 0x0d, 0x9f, 0x00, 0xa9, 0x63, 0xbb, 0x86, 0x67, 0xdc, 0x41, 0xaa, 0x61, 0xf1, + 0x43, 0x09, 0x3c, 0xd8, 0x27, 0x14, 0x91, 0x6b, 0x36, 0x2d, 0xcf, 0xb7, 0xb6, 0x50, 0x4b, 0xeb, + 0xb3, 0xc6, 0x05, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x5f, 0x80, 0x6c, 0xc3, 0xee, 0xe2, 0x31, + 0x89, 0xda, 0xe1, 0x7e, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0xd8, 0x1c, 0x1b, 0x9c, 0x86, 0x64, + 0x95, 0x0c, 0x95, 0x51, 0x93, 0x27, 0x60, 0x4a, 0x6b, 0xb5, 0x1c, 0x4c, 0xce, 0x89, 0xe8, 0x64, + 0x9e, 0xf3, 0xc5, 0xc4, 0x70, 0xee, 0x06, 0xa4, 0x78, 0x1c, 0x70, 0x4b, 0xc6, 0x91, 0x50, 0x3b, + 0xf4, 0x4c, 0x2a, 0xb6, 0x90, 0x56, 0x52, 0x16, 0x57, 0x5e, 0x80, 0xac, 0xe1, 0xaa, 0xc1, 0xe1, + 0x68, 0x6c, 0x3e, 0xb6, 0x90, 0x52, 0x32, 0x86, 0xeb, 0x9f, 0x86, 0x15, 0xde, 0x88, 0x41, 0xae, + 0xf7, 0x70, 0x57, 0x5a, 0x87, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0xcb, 0xc2, 0x42, 0xc4, + 0x79, 0xf0, 0xe2, 0x16, 0xb3, 0x57, 0x7c, 0xe4, 0xdc, 0xdf, 0x0b, 0x90, 0xe2, 0x62, 0xe9, 0x0c, + 0x24, 0x3a, 0x9a, 0x77, 0x48, 0xe8, 0x92, 0xe5, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x8e, + 0x66, 0x91, 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x83, 0x8c, 0xfd, 0x76, 0xbb, + 0x8d, 0x2c, 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x15, 0x26, 0x96, 0x9e, 0x86, 0x69, 0xcf, 0xd1, 0x0c, + 0xb3, 0xc7, 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x8e, 0xf3, 0x36, 0x90, 0xa7, + 0xe9, 0x87, 0xa8, 0x11, 0x80, 0xc6, 0xc9, 0xc9, 0xe1, 0x59, 0x66, 0xb0, 0xce, 0xf4, 0x1c, 0x5b, + 0xf8, 0xae, 0x00, 0xd3, 0xfc, 0x45, 0xa5, 0xe1, 0x07, 0x6b, 0x1b, 0x40, 0xb3, 0x2c, 0xdb, 0x0b, + 0x87, 0x6b, 0x30, 0x95, 0x07, 0x70, 0x8b, 0x25, 0x1f, 0xa4, 0x84, 0x08, 0xe6, 0xda, 0x00, 0x81, + 0xe6, 0xc4, 0xb0, 0x9d, 0x87, 0x0c, 0x3b, 0xb9, 0x27, 0x3f, 0xff, 0xd0, 0x57, 0x5b, 0xa0, 0x22, + 0xfc, 0x46, 0x23, 0xcd, 0x42, 0xf2, 0x00, 0xb5, 0x0c, 0x8b, 0x9d, 0x27, 0xd2, 0x0b, 0x7e, 0x4a, + 0x99, 0xf0, 0x4f, 0x29, 0xcb, 0x37, 0x61, 0x46, 0xb7, 0xdb, 0xfd, 0xee, 0x96, 0xc5, 0xbe, 0xd7, + 0x6b, 0xf7, 0xba, 0xf0, 0x59, 0x08, 0x46, 0xcc, 0xaf, 0xc4, 0xe2, 0x1b, 0xbb, 0xe5, 0xaf, 0xc5, + 0xe6, 0x36, 0x28, 0x6e, 0x97, 0x3f, 0xa6, 0x82, 0x9a, 0x26, 0xd2, 0xb1, 0xeb, 0xf0, 0x83, 0x8f, + 0xc3, 0x33, 0x2d, 0xc3, 0x3b, 0xec, 0x1e, 0x2c, 0xea, 0x76, 0x7b, 0xa9, 0x65, 0xb7, 0xec, 0xe0, + 0xe7, 0x2e, 0x7c, 0x45, 0x2e, 0xc8, 0x7f, 0xec, 0x27, 0xaf, 0xb4, 0x2f, 0x9d, 0x8b, 0xfc, 0x7d, + 0xac, 0xb8, 0x03, 0x33, 0xcc, 0x58, 0x25, 0x67, 0xee, 0xf4, 0xd5, 0x40, 0x7a, 0xe0, 0xb9, 0x8b, + 0xfc, 0xcd, 0x77, 0x49, 0xaf, 0x56, 0xa6, 0x19, 0x14, 0xeb, 0xe8, 0x0b, 0x44, 0x51, 0x81, 0x87, + 0x7a, 0xf8, 0xe8, 0xbe, 0x44, 0x4e, 0x04, 0xe3, 0x77, 0x18, 0xe3, 0x4c, 0x88, 0xb1, 0xce, 0xa0, + 0xc5, 0x0a, 0x4c, 0x9e, 0x86, 0xeb, 0x6f, 0x19, 0x57, 0x16, 0x85, 0x49, 0x36, 0x60, 0x8a, 0x90, + 0xe8, 0x5d, 0xd7, 0xb3, 0xdb, 0xa4, 0xe8, 0x3d, 0x98, 0xe6, 0xef, 0xde, 0xa5, 0x1b, 0x25, 0x87, + 0x61, 0x15, 0x1f, 0x55, 0x2c, 0x02, 0xf9, 0x99, 0xa1, 0x81, 0x74, 0x33, 0x82, 0xe1, 0x4d, 0xe6, + 0x88, 0x6f, 0x5f, 0xfc, 0x0c, 0xcc, 0xe2, 0xff, 0x49, 0x4d, 0x0a, 0x7b, 0x12, 0x7d, 0xca, 0x24, + 0x7f, 0xf7, 0x15, 0xba, 0x17, 0x67, 0x7c, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0x6c, 0x21, 0xcf, 0x43, + 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xde, 0xeb, 0x5d, 0xc5, 0x0d, + 0x8a, 0x2c, 0x99, 0x66, 0x71, 0x1f, 0xce, 0x0e, 0xc9, 0x8a, 0x11, 0x38, 0x5f, 0x65, 0x9c, 0xb3, + 0x03, 0x99, 0x81, 0x69, 0x77, 0x81, 0xcb, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0xb7, 0x19, 0xa7, 0xc4, + 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x0d, 0x98, 0xbe, 0x83, 0x9c, 0x03, 0xdb, 0x65, 0x47, 0x23, 0x23, + 0xd0, 0xbd, 0xc6, 0xe8, 0xa6, 0x18, 0x90, 0x9c, 0x95, 0x60, 0xae, 0x2b, 0x90, 0x6a, 0x6a, 0x3a, + 0x1a, 0x81, 0xe2, 0xcb, 0x8c, 0x62, 0x02, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x2d, 0x9b, 0xb5, 0xa5, + 0x68, 0xf8, 0xeb, 0x0c, 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb1, 0x3b, 0x5d, 0x13, 0xf7, 0xac, 0x68, + 0x8a, 0xdf, 0xe1, 0x14, 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0xdf, 0xe5, 0x14, 0x6e, 0x28, 0x9e, + 0xcf, 0x43, 0xc6, 0xb6, 0xcc, 0x23, 0xdb, 0x1a, 0xc5, 0x89, 0xdf, 0x63, 0x0c, 0xc0, 0x20, 0x98, + 0xe0, 0x2a, 0xa4, 0x47, 0x5d, 0x88, 0xdf, 0x7f, 0x8f, 0x6f, 0x0f, 0xbe, 0x02, 0x1b, 0x30, 0xc5, + 0x0b, 0x94, 0x61, 0x5b, 0x23, 0x50, 0xfc, 0x01, 0xa3, 0xc8, 0x85, 0x60, 0xec, 0x31, 0x3c, 0xe4, + 0x7a, 0x2d, 0x34, 0x0a, 0xc9, 0x1b, 0xfc, 0x31, 0x18, 0x84, 0x85, 0xf2, 0x00, 0x59, 0xfa, 0xe1, + 0x68, 0x0c, 0x5f, 0xe5, 0xa1, 0xe4, 0x18, 0x4c, 0x51, 0x81, 0xc9, 0xb6, 0xe6, 0xb8, 0x87, 0x9a, + 0x39, 0xd2, 0x72, 0xfc, 0x21, 0xe3, 0xc8, 0xfa, 0x20, 0x16, 0x91, 0xae, 0x75, 0x1a, 0x9a, 0xaf, + 0xf1, 0x88, 0x84, 0x60, 0x6c, 0xeb, 0xb9, 0x1e, 0x39, 0x80, 0x3a, 0x0d, 0xdb, 0xd7, 0xf9, 0xd6, + 0xa3, 0xd8, 0xed, 0x30, 0xe3, 0x55, 0x48, 0xbb, 0xc6, 0xcb, 0x23, 0xd1, 0xfc, 0x11, 0x5f, 0x69, + 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xdc, 0xd0, 0x36, 0x31, 0x02, 0xd9, 0x1f, 0x33, 0xb2, 0x33, 0x43, + 0x5a, 0x05, 0x2b, 0x09, 0xa7, 0xa5, 0xfc, 0x13, 0x5e, 0x12, 0x50, 0x1f, 0xd7, 0x2e, 0x7e, 0x51, + 0x70, 0xb5, 0xe6, 0xe9, 0xa2, 0xf6, 0xa7, 0x3c, 0x6a, 0x14, 0xdb, 0x13, 0xb5, 0x3d, 0x38, 0xc3, + 0x18, 0x4f, 0xb7, 0xae, 0xdf, 0xe0, 0x85, 0x95, 0xa2, 0xf7, 0x7b, 0x57, 0xf7, 0x67, 0x60, 0xce, + 0x0f, 0x27, 0x9f, 0x48, 0x5d, 0xb5, 0xad, 0x75, 0x46, 0x60, 0xfe, 0x26, 0x63, 0xe6, 0x15, 0xdf, + 0x1f, 0x69, 0xdd, 0x6d, 0xad, 0x83, 0xc9, 0x6f, 0x82, 0xcc, 0xc9, 0xbb, 0x96, 0x83, 0x74, 0xbb, + 0x65, 0x19, 0x2f, 0xa3, 0xc6, 0x08, 0xd4, 0x7f, 0xd6, 0xb7, 0x54, 0xfb, 0x21, 0x38, 0x66, 0xde, + 0x04, 0xd1, 0x9f, 0x55, 0x54, 0xa3, 0xdd, 0xb1, 0x1d, 0x2f, 0x82, 0xf1, 0xcf, 0xf9, 0x4a, 0xf9, + 0xb8, 0x4d, 0x02, 0x2b, 0x56, 0x21, 0x47, 0x2e, 0x47, 0x4d, 0xc9, 0xbf, 0x60, 0x44, 0x93, 0x01, + 0x8a, 0x15, 0x0e, 0xdd, 0x6e, 0x77, 0x34, 0x67, 0x94, 0xfa, 0xf7, 0x97, 0xbc, 0x70, 0x30, 0x08, + 0x2b, 0x1c, 0xde, 0x51, 0x07, 0xe1, 0x6e, 0x3f, 0x02, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, + 0xc1, 0x07, 0x86, 0x11, 0x28, 0xfe, 0x8a, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, 0xd0, 0x68, 0x1d, + 0xd4, 0x32, 0x5c, 0xcf, 0xa1, 0x73, 0xf0, 0x83, 0xa9, 0xbe, 0xfd, 0x5e, 0xef, 0x10, 0xa6, 0x84, + 0xa0, 0xc5, 0x1b, 0x30, 0xd5, 0x37, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0x3f, 0xfb, 0x01, 0x2b, + 0x46, 0xbd, 0x13, 0x46, 0x71, 0x0b, 0xaf, 0x7b, 0xef, 0x1c, 0x10, 0x4d, 0xf6, 0xca, 0x07, 0xfe, + 0xd2, 0xf7, 0x8c, 0x01, 0xc5, 0x6b, 0x30, 0xd9, 0x33, 0x03, 0x44, 0x53, 0xfd, 0x1c, 0xa3, 0xca, + 0x86, 0x47, 0x80, 0xe2, 0x1a, 0x24, 0x70, 0x3f, 0x8f, 0x86, 0xff, 0x3c, 0x83, 0x13, 0xf3, 0xe2, + 0x27, 0x21, 0xc5, 0xfb, 0x78, 0x34, 0xf4, 0x17, 0x18, 0xd4, 0x87, 0x60, 0x38, 0xef, 0xe1, 0xd1, + 0xf0, 0x5f, 0xe4, 0x70, 0x0e, 0xc1, 0xf0, 0xd1, 0x43, 0xf8, 0x37, 0xbf, 0x94, 0x60, 0x75, 0x98, + 0xc7, 0xee, 0x2a, 0x4c, 0xb0, 0xe6, 0x1d, 0x8d, 0xfe, 0x3c, 0xbb, 0x39, 0x47, 0x14, 0x2f, 0x41, + 0x72, 0xc4, 0x80, 0xff, 0x32, 0x83, 0x52, 0xfb, 0x62, 0x05, 0x32, 0xa1, 0x86, 0x1d, 0x0d, 0xff, + 0x15, 0x06, 0x0f, 0xa3, 0xb0, 0xeb, 0xac, 0x61, 0x47, 0x13, 0xfc, 0x2a, 0x77, 0x9d, 0x21, 0x70, + 0xd8, 0x78, 0xaf, 0x8e, 0x46, 0xff, 0x1a, 0x8f, 0x3a, 0x87, 0x14, 0x9f, 0x87, 0xb4, 0x5f, 0x7f, + 0xa3, 0xf1, 0xbf, 0xce, 0xf0, 0x01, 0x06, 0x47, 0x20, 0x54, 0xff, 0xa3, 0x29, 0xbe, 0xc0, 0x23, + 0x10, 0x42, 0xe1, 0x6d, 0xd4, 0xdf, 0xd3, 0xa3, 0x99, 0x7e, 0x83, 0x6f, 0xa3, 0xbe, 0x96, 0x8e, + 0x57, 0x93, 0x94, 0xc1, 0x68, 0x8a, 0xdf, 0xe4, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xfd, 0x4d, 0x32, + 0x9a, 0xe3, 0xb7, 0xb8, 0x1b, 0x7d, 0x3d, 0xb2, 0xb8, 0x0b, 0xd2, 0x60, 0x83, 0x8c, 0xe6, 0xfb, + 0x22, 0xe3, 0x9b, 0x1e, 0xe8, 0x8f, 0xc5, 0x17, 0xe0, 0xcc, 0xf0, 0xe6, 0x18, 0xcd, 0xfa, 0xa5, + 0x0f, 0xfa, 0x5e, 0x67, 0xc2, 0xbd, 0xb1, 0xb8, 0x17, 0x54, 0xd9, 0x70, 0x63, 0x8c, 0xa6, 0x7d, + 0xf5, 0x83, 0xde, 0x42, 0x1b, 0xee, 0x8b, 0xc5, 0x12, 0x40, 0xd0, 0x93, 0xa2, 0xb9, 0x5e, 0x63, + 0x5c, 0x21, 0x10, 0xde, 0x1a, 0xac, 0x25, 0x45, 0xe3, 0xbf, 0xcc, 0xb7, 0x06, 0x43, 0xe0, 0xad, + 0xc1, 0xbb, 0x51, 0x34, 0xfa, 0x75, 0xbe, 0x35, 0x38, 0xa4, 0x78, 0x15, 0x52, 0x56, 0xd7, 0x34, + 0x71, 0x6e, 0x49, 0x0f, 0xfe, 0x8c, 0x48, 0xfe, 0x97, 0x0f, 0x19, 0x98, 0x03, 0x8a, 0x6b, 0x90, + 0x44, 0xed, 0x03, 0xd4, 0x88, 0x42, 0xfe, 0xeb, 0x87, 0xbc, 0x9e, 0x60, 0xeb, 0xe2, 0xf3, 0x00, + 0xf4, 0x65, 0x9a, 0xfc, 0x4a, 0x14, 0x81, 0xfd, 0xb7, 0x0f, 0xd9, 0x17, 0x0a, 0x01, 0x24, 0x20, + 0xa0, 0xdf, 0x3b, 0x3c, 0x98, 0xe0, 0xbd, 0x5e, 0x02, 0xf2, 0x02, 0x7e, 0x05, 0x26, 0x6e, 0xb9, + 0xb6, 0xe5, 0x69, 0xad, 0x28, 0xf4, 0xbf, 0x33, 0x34, 0xb7, 0xc7, 0x01, 0x6b, 0xdb, 0x0e, 0xf2, + 0xb4, 0x96, 0x1b, 0x85, 0xfd, 0x0f, 0x86, 0xf5, 0x01, 0x18, 0xac, 0x6b, 0xae, 0x37, 0xca, 0x73, + 0xff, 0x27, 0x07, 0x73, 0x00, 0x76, 0x1a, 0xff, 0x7f, 0x1b, 0x1d, 0x45, 0x61, 0xdf, 0xe7, 0x4e, + 0x33, 0xfb, 0xe2, 0x27, 0x21, 0x8d, 0xff, 0xa5, 0x5f, 0xed, 0x44, 0x80, 0xff, 0x8b, 0x81, 0x03, + 0x04, 0xbe, 0xb3, 0xeb, 0x35, 0x3c, 0x23, 0x3a, 0xd8, 0xff, 0xcd, 0x56, 0x9a, 0xdb, 0x17, 0x4b, + 0x90, 0x71, 0xbd, 0x46, 0xa3, 0xcb, 0x26, 0x9a, 0x08, 0xf8, 0x0f, 0x3e, 0xf4, 0x5f, 0x72, 0x7d, + 0x4c, 0xf9, 0xc2, 0xf0, 0xc3, 0x3a, 0xd8, 0xb0, 0x37, 0x6c, 0x7a, 0x4c, 0x07, 0xf7, 0xd2, 0x30, + 0xaf, 0xdb, 0xed, 0x03, 0xdb, 0x5d, 0xa2, 0x05, 0xc5, 0x2f, 0x27, 0x4b, 0xb6, 0xc5, 0x30, 0x52, + 0xdc, 0xb6, 0xd0, 0xdc, 0xe9, 0x0e, 0xe7, 0x0a, 0xe7, 0x20, 0x59, 0xef, 0x1e, 0x1c, 0x1c, 0x49, + 0x22, 0xc4, 0xdd, 0xee, 0x01, 0xfb, 0xba, 0x04, 0xff, 0x5b, 0x78, 0x3b, 0x0e, 0x93, 0x25, 0xd3, + 0xdc, 0x3b, 0xea, 0x20, 0xb7, 0x66, 0xa1, 0x5a, 0x53, 0x92, 0x61, 0x9c, 0x3c, 0xcd, 0x73, 0xc4, + 0x4c, 0xb8, 0x3e, 0xa6, 0xb0, 0x6b, 0x5f, 0xb3, 0x4c, 0xce, 0x2c, 0x63, 0xbe, 0x66, 0xd9, 0xd7, + 0xac, 0xd0, 0x23, 0x4b, 0x5f, 0xb3, 0xe2, 0x6b, 0x56, 0xc9, 0xc1, 0x65, 0xdc, 0xd7, 0xac, 0xfa, + 0x9a, 0x35, 0x72, 0x30, 0x3f, 0xe9, 0x6b, 0xd6, 0x7c, 0xcd, 0x45, 0x72, 0x14, 0x9f, 0xf0, 0x35, + 0x17, 0x7d, 0xcd, 0x25, 0x72, 0x02, 0x3f, 0xed, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xd4, 0x5d, + 0xf2, 0x35, 0x97, 0x7d, 0xcd, 0x15, 0xf2, 0x19, 0xc9, 0x84, 0xaf, 0xb9, 0x22, 0xcd, 0xc1, 0x04, + 0x7d, 0xb2, 0x67, 0xc9, 0x4f, 0xb3, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x91, 0x4f, + 0x45, 0xc6, 0x03, 0xdd, 0x73, 0x81, 0x6e, 0x99, 0x7c, 0x30, 0x2d, 0x06, 0xba, 0xe5, 0x40, 0xb7, + 0x22, 0x4f, 0xe2, 0x24, 0x08, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, 0x74, 0xab, + 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x06, 0x32, 0x6e, 0xf7, + 0x40, 0x65, 0x5f, 0x12, 0x90, 0x4f, 0x52, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, 0xeb, 0xf5, + 0x31, 0x05, 0xdc, 0xee, 0x01, 0xab, 0x92, 0xe5, 0x2c, 0x90, 0x43, 0x05, 0x95, 0x7c, 0x88, 0x59, + 0x78, 0x4b, 0x80, 0xf4, 0xde, 0x5d, 0x9b, 0xfc, 0x30, 0xeb, 0xfe, 0x3f, 0x2f, 0x2e, 0x77, 0x7a, + 0x65, 0x95, 0xfc, 0x76, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0x47, 0xc9, 0x03, + 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x07, 0x5a, 0x26, 0x5f, 0x99, 0xf4, 0x3e, 0x91, 0xa0, + 0x64, 0x82, 0x27, 0x5a, 0x2e, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb5, 0x0b, 0x5f, 0x88, + 0x41, 0x86, 0x9e, 0x43, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x73, 0xf9, 0x11, 0x73, 0x63, 0x4c, 0xe1, + 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0x67, 0xff, 0xf1, 0xed, 0xf3, 0x9f, + 0x38, 0x71, 0x07, 0xe1, 0xd8, 0x2d, 0xd1, 0x2a, 0xbb, 0xb8, 0x6f, 0x58, 0xde, 0x73, 0xcb, 0x97, + 0x71, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x9f, 0x99, 0x11, 0xd7, 0x13, 0xe5, + 0x4b, 0xff, 0xfb, 0xf6, 0xf9, 0x95, 0x08, 0x46, 0x56, 0x00, 0x17, 0xb7, 0x8f, 0x30, 0xeb, 0xc5, + 0x55, 0x0c, 0xbf, 0x3e, 0xa6, 0xf8, 0x54, 0xd2, 0x32, 0x77, 0x75, 0x47, 0x6b, 0xd3, 0xcf, 0x69, + 0xe2, 0x65, 0xf1, 0xf8, 0xed, 0xf3, 0xd9, 0xed, 0xa3, 0x40, 0x1e, 0xb8, 0x82, 0xaf, 0xca, 0x29, + 0x18, 0xa7, 0xae, 0x96, 0xd7, 0xdf, 0xbc, 0x9f, 0x1f, 0x7b, 0xeb, 0x7e, 0x7e, 0xec, 0x1f, 0xee, + 0xe7, 0xc7, 0xde, 0xb9, 0x9f, 0x17, 0xde, 0xbf, 0x9f, 0x17, 0x7e, 0x78, 0x3f, 0x2f, 0xdc, 0x3b, + 0xce, 0x0b, 0x5f, 0x3d, 0xce, 0x0b, 0xdf, 0x38, 0xce, 0x0b, 0xdf, 0x3e, 0xce, 0x0b, 0x6f, 0x1e, + 0xe7, 0xc7, 0xde, 0x3a, 0xce, 0x8f, 0xbd, 0x73, 0x9c, 0x17, 0xbe, 0x7f, 0x9c, 0x1f, 0x7b, 0xff, + 0x38, 0x2f, 0xfc, 0xf0, 0x38, 0x2f, 0xdc, 0xfb, 0x5e, 0x7e, 0xec, 0xff, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x80, 0x0e, 0x3d, 0x7d, 0xdf, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3409,27 +3429,10 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3572,7 +3575,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -3641,7 +3644,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -3679,7 +3682,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -3728,7 +3731,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3736,43 +3739,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4325,190 +4328,190 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Sub != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(*m.Sub))) - i += copy(data[i:], *m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) + i += copy(dAtA[i:], *m.Sub) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf) Marshal() (data []byte, err error) { +func (m *AllTypesOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllTypesOneOf) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn1 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *AllTypesOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *AllTypesOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *AllTypesOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *AllTypesOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *AllTypesOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *AllTypesOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *AllTypesOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *AllTypesOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *AllTypesOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 return i, nil } -func (m *AllTypesOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 return i, nil } -func (m *AllTypesOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 return i, nil } -func (m *AllTypesOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 return i, nil } -func (m *AllTypesOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *AllTypesOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *AllTypesOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -4516,95 +4519,95 @@ func (m *AllTypesOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *TwoOneofs) Marshal() (data []byte, err error) { +func (m *TwoOneofs) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *TwoOneofs) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.One != nil { - nn3, err := m.One.MarshalTo(data[i:]) + nn3, err := m.One.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn3 } if m.Two != nil { - nn4, err := m.Two.MarshalTo(data[i:]) + nn4, err := m.Two.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn4 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *TwoOneofs_Field1) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *TwoOneofs_Field2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *TwoOneofs_Field3) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *TwoOneofs_Field34) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field34))) - i += copy(data[i:], m.Field34) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) + i += copy(dAtA[i:], m.Field34) return i, nil } -func (m *TwoOneofs_Field35) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field35 != nil { - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field35))) - i += copy(data[i:], m.Field35) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) + i += copy(dAtA[i:], m.Field35) } return i, nil } -func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { +func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage2 != nil { - data[i] = 0xa2 + dAtA[i] = 0xa2 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) + n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -4612,141 +4615,144 @@ func (m *TwoOneofs_SubMessage2) MarshalTo(data []byte) (int, error) { } return i, nil } -func (m *CustomOneof) Marshal() (data []byte, err error) { +func (m *CustomOneof) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *CustomOneof) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(data[i:]) + nn6, err := m.Custom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += nn6 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *CustomOneof_Stringy) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x92 + dAtA[i] = 0x92 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(len(m.Stringy))) - i += copy(data[i:], m.Stringy) + i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) + i += copy(dAtA[i:], m.Stringy) return i, nil } -func (m *CustomOneof_CustomType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9a + dAtA[i] = 0x9a i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) + n7, err := m.CustomType.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n7 return i, nil } -func (m *CustomOneof_CastType) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa0 + dAtA[i] = 0xa0 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.CastType)) + i = encodeVarintOne(dAtA, i, uint64(m.CastType)) return i, nil } -func (m *CustomOneof_MyCustomName) MarshalTo(data []byte) (int, error) { +func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0xa8 + dAtA[i] = 0xa8 i++ - data[i] = 0x2 + dAtA[i] = 0x2 i++ - i = encodeVarintOne(data, i, uint64(m.MyCustomName)) + i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 580 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x6f, 0xda, 0x40, - 0x14, 0x00, 0x70, 0xcc, 0x7f, 0x0e, 0x68, 0xa8, 0xa7, 0xd7, 0x0c, 0x10, 0xd1, 0x56, 0xea, 0xd0, - 0x60, 0xf0, 0x1f, 0x20, 0x63, 0x9d, 0xaa, 0xea, 0x42, 0x91, 0x48, 0x32, 0x47, 0x36, 0x35, 0x04, - 0x09, 0xb8, 0x88, 0xb3, 0x15, 0x79, 0xcb, 0x67, 0xe8, 0xa7, 0xe8, 0xd8, 0xb1, 0x1f, 0x21, 0x63, - 0xc6, 0xaa, 0x03, 0x4a, 0xe8, 0xd2, 0x31, 0x63, 0xd4, 0xa9, 0xef, 0xce, 0xe4, 0xae, 0x52, 0x55, - 0x75, 0xc9, 0xf0, 0xe4, 0x3b, 0x7e, 0x77, 0x8f, 0xf7, 0x7c, 0x67, 0xb2, 0x37, 0xa6, 0x0b, 0x9f, - 0x32, 0x23, 0x5a, 0x32, 0x6f, 0x12, 0x2c, 0xbc, 0x15, 0x3b, 0xf3, 0xe6, 0xc1, 0xca, 0xa0, 0xcb, - 0xa0, 0x75, 0xbe, 0xa2, 0x21, 0xd5, 0x33, 0x38, 0xdc, 0xdd, 0x9f, 0xce, 0xc2, 0xb3, 0xc8, 0x6f, - 0xe1, 0x6a, 0x63, 0x4a, 0xa7, 0xd4, 0x10, 0xe6, 0x47, 0x13, 0x31, 0x13, 0x13, 0x31, 0x4a, 0xf6, - 0x34, 0x9f, 0x91, 0xdc, 0x51, 0xe4, 0xfb, 0xb1, 0x5e, 0x23, 0x19, 0x16, 0xf9, 0xa0, 0xed, 0x69, - 0xaf, 0x4a, 0x23, 0x3e, 0x6c, 0xae, 0x33, 0xa4, 0xfa, 0x66, 0x3e, 0x3f, 0x8e, 0xcf, 0x03, 0x36, - 0x5c, 0x06, 0xc3, 0x89, 0x0e, 0x24, 0xff, 0x6e, 0x16, 0xcc, 0x3f, 0x76, 0xc4, 0x32, 0xed, 0x7d, - 0x6a, 0x94, 0x9f, 0x88, 0xb9, 0x14, 0x13, 0xd2, 0x28, 0x69, 0x29, 0xa6, 0x14, 0x0b, 0x32, 0x28, - 0x39, 0x29, 0x96, 0x14, 0x1b, 0xb2, 0x28, 0x19, 0x29, 0xb6, 0x14, 0x07, 0x72, 0x28, 0x55, 0x29, - 0x8e, 0x94, 0x2e, 0xe4, 0x51, 0xb2, 0x52, 0xba, 0x52, 0x7a, 0x50, 0x40, 0x79, 0x2a, 0xa5, 0x27, - 0xa5, 0x0f, 0x45, 0x14, 0x5d, 0x4a, 0x5f, 0xca, 0x01, 0x94, 0x50, 0x0a, 0x52, 0x0e, 0xf4, 0x5d, - 0x52, 0x48, 0x3a, 0x6d, 0x03, 0x41, 0xda, 0x41, 0x2a, 0x24, 0xad, 0xb6, 0x95, 0x75, 0xa0, 0x8c, - 0x96, 0x57, 0xd6, 0x51, 0x66, 0x42, 0x05, 0xad, 0xa6, 0xcc, 0x54, 0x66, 0x41, 0x15, 0xad, 0xa8, - 0xcc, 0x52, 0x66, 0xc3, 0x13, 0x7e, 0x02, 0xca, 0x6c, 0x65, 0x0e, 0xec, 0xa0, 0x55, 0x94, 0x39, - 0xfa, 0x3e, 0x29, 0xe3, 0x51, 0x9d, 0x2e, 0x02, 0xc6, 0xbc, 0x69, 0x00, 0x35, 0xf4, 0xb2, 0x49, - 0x5a, 0xfc, 0x4e, 0x88, 0x63, 0xc5, 0xb5, 0x04, 0x17, 0x0c, 0x12, 0x77, 0x2b, 0x84, 0x84, 0x01, - 0x0b, 0x4f, 0xd1, 0xe9, 0xa4, 0x79, 0xad, 0x91, 0xd2, 0xf1, 0x05, 0x1d, 0xf2, 0x09, 0x7b, 0xe4, - 0xc3, 0x7d, 0x28, 0xda, 0xb2, 0xa1, 0x29, 0x1a, 0xd2, 0xb6, 0x45, 0x5b, 0xaa, 0x21, 0xcb, 0x81, - 0xe7, 0xa2, 0x21, 0x69, 0x8e, 0x6e, 0x90, 0xca, 0x1f, 0x0d, 0x99, 0xf0, 0xe2, 0xaf, 0x8e, 0xb4, - 0x51, 0x59, 0x75, 0x64, 0xba, 0x39, 0xc2, 0xaf, 0x3d, 0x7f, 0x84, 0x17, 0xb4, 0xf9, 0x29, 0x4d, - 0xca, 0x87, 0x11, 0x0b, 0xe9, 0x42, 0x74, 0xc5, 0xff, 0xea, 0x28, 0x5c, 0xcd, 0x96, 0xd3, 0x78, - 0x5b, 0x06, 0xbe, 0x3b, 0x96, 0xfc, 0xa0, 0x8f, 0x08, 0x49, 0x96, 0xf2, 0x1b, 0x9e, 0x54, 0xe2, - 0xb6, 0xbf, 0xaf, 0x1b, 0xaf, 0xff, 0xf9, 0x05, 0xf1, 0x77, 0x67, 0x8c, 0xc5, 0x9e, 0xd6, 0xc9, - 0x6c, 0x19, 0x76, 0xcc, 0x3e, 0x7f, 0xc1, 0x63, 0x99, 0x45, 0x3f, 0x21, 0xc5, 0x43, 0x8f, 0x85, - 0x22, 0x23, 0x2f, 0x3d, 0xeb, 0xf6, 0x7e, 0xad, 0x1b, 0xd6, 0x7f, 0x32, 0xe2, 0x8e, 0x10, 0x77, - 0xb4, 0x06, 0x31, 0xcf, 0xda, 0xb5, 0xf9, 0x76, 0x4c, 0x5c, 0x1c, 0x6f, 0x53, 0xe9, 0xe6, 0x43, - 0xa9, 0x1f, 0xbc, 0x45, 0x00, 0x2f, 0xf9, 0xe7, 0xe2, 0xd6, 0x36, 0xeb, 0x46, 0x65, 0x10, 0xab, - 0xdf, 0x55, 0x29, 0x7c, 0xe6, 0x16, 0x49, 0x3e, 0x99, 0xb9, 0x6f, 0xaf, 0x6e, 0xeb, 0xa9, 0x6b, - 0x8c, 0x6f, 0x18, 0x37, 0xb7, 0x75, 0xed, 0x0e, 0xe3, 0x1e, 0xe3, 0x72, 0x53, 0xd7, 0x3e, 0x63, - 0x7c, 0xc1, 0xf8, 0x8a, 0x71, 0xb5, 0xc1, 0x75, 0x18, 0x37, 0x38, 0xfe, 0x89, 0xcf, 0x3b, 0x7c, - 0xde, 0x63, 0x5c, 0xfe, 0xa8, 0xa7, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6f, 0x77, 0xee, 0xde, - 0x80, 0x04, 0x00, 0x00, + // 605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0xdb, 0x3c, + 0x10, 0x00, 0x70, 0x5e, 0x1c, 0x3b, 0x0e, 0xed, 0x7c, 0xf1, 0xa7, 0x89, 0xcd, 0xc0, 0x10, 0x6e, + 0x0b, 0x70, 0x68, 0xec, 0x58, 0xb6, 0xf3, 0x67, 0xac, 0x52, 0x14, 0x5e, 0xd2, 0x00, 0x4a, 0x32, + 0x07, 0x52, 0x4a, 0x3b, 0x06, 0x6c, 0x31, 0x30, 0x25, 0x04, 0xde, 0xf2, 0x0c, 0x7d, 0x8a, 0x8e, + 0x1d, 0xfb, 0x08, 0x19, 0x3d, 0x16, 0x1d, 0x8c, 0x58, 0x5d, 0x3a, 0x66, 0x0c, 0x3a, 0x15, 0x94, + 0x62, 0xb2, 0x40, 0x51, 0x74, 0xe9, 0x64, 0xdd, 0xfd, 0xc4, 0xf3, 0x9d, 0x48, 0x62, 0x76, 0x29, + 0xc7, 0xa1, 0x54, 0xcd, 0x24, 0x52, 0x41, 0x5f, 0x8c, 0x83, 0x89, 0xba, 0x0a, 0x46, 0x62, 0xd2, + 0x94, 0x91, 0x68, 0x5c, 0x4f, 0x64, 0x2c, 0x9d, 0x82, 0x8c, 0xc4, 0xd6, 0xce, 0x60, 0x18, 0x5f, + 0x25, 0x61, 0xe3, 0x52, 0x8e, 0x9b, 0x03, 0x39, 0x90, 0xcd, 0xcc, 0xc2, 0xa4, 0x9f, 0x45, 0x59, + 0x90, 0x3d, 0xe5, 0x6b, 0xea, 0xcf, 0x70, 0xf1, 0x34, 0x09, 0xc3, 0xa9, 0x53, 0xc3, 0x05, 0x95, + 0x84, 0x04, 0x18, 0xf0, 0x75, 0x5f, 0x3f, 0xd6, 0xe7, 0x05, 0xbc, 0xf1, 0x7a, 0x34, 0x3a, 0x9b, + 0x5e, 0x0b, 0x75, 0x12, 0x89, 0x93, 0xbe, 0x43, 0x70, 0xe9, 0xed, 0x50, 0x8c, 0xde, 0xb7, 0xb2, + 0xd7, 0xa0, 0x87, 0xfc, 0xa7, 0xd8, 0x88, 0x4b, 0x56, 0x18, 0xf0, 0x15, 0x23, 0xae, 0x91, 0x36, + 0x29, 0x30, 0xe0, 0x45, 0x23, 0x6d, 0x23, 0x1d, 0xb2, 0xca, 0x80, 0x17, 0x8c, 0x74, 0x8c, 0x74, + 0x49, 0x91, 0x01, 0xdf, 0x30, 0xd2, 0x35, 0xb2, 0x47, 0x4a, 0x0c, 0xf8, 0xaa, 0x91, 0x3d, 0x23, + 0xfb, 0x64, 0x8d, 0x01, 0xff, 0xdf, 0xc8, 0xbe, 0x91, 0x03, 0x52, 0x66, 0xc0, 0x1d, 0x23, 0x07, + 0x46, 0x0e, 0xc9, 0x3a, 0x03, 0xbe, 0x66, 0xe4, 0xd0, 0xd9, 0xc2, 0x6b, 0xf9, 0x64, 0xbb, 0x04, + 0x33, 0xe0, 0x9b, 0x3d, 0xe4, 0x2f, 0x13, 0xd6, 0x5a, 0xa4, 0xc2, 0x80, 0x97, 0xac, 0xb5, 0xac, + 0xb9, 0xa4, 0xca, 0x80, 0xd7, 0xac, 0xb9, 0xd6, 0xda, 0x64, 0x83, 0x01, 0x2f, 0x5b, 0x6b, 0x5b, + 0xeb, 0x90, 0xff, 0xf4, 0x0e, 0x58, 0xeb, 0x58, 0xeb, 0x92, 0x4d, 0x06, 0xbc, 0x6a, 0xad, 0xeb, + 0xec, 0xe0, 0x8a, 0x4a, 0xc2, 0x8b, 0xb1, 0x50, 0x2a, 0x18, 0x08, 0x52, 0x63, 0xc0, 0x2b, 0x2e, + 0x6e, 0xe8, 0x33, 0x91, 0x6d, 0x6b, 0x0f, 0xf9, 0x58, 0x25, 0xe1, 0x71, 0xee, 0x5e, 0x15, 0xe3, + 0x58, 0xa8, 0xf8, 0x42, 0x46, 0x42, 0xf6, 0xeb, 0x33, 0xc0, 0xeb, 0x67, 0x37, 0xf2, 0x44, 0x07, + 0xea, 0x1f, 0x6f, 0xee, 0xb2, 0xe9, 0x76, 0x87, 0xd4, 0xb3, 0x81, 0xc0, 0x5f, 0x26, 0xac, 0x75, + 0xc9, 0xf3, 0x6c, 0x20, 0x63, 0x5d, 0xa7, 0x89, 0xab, 0xbf, 0x0c, 0xe4, 0x92, 0x17, 0xbf, 0x4d, + 0x04, 0x7e, 0xc5, 0x4e, 0xe4, 0x7a, 0x45, 0xac, 0x8f, 0xbd, 0xfe, 0x89, 0x6f, 0x64, 0xfd, 0xc3, + 0x0a, 0xae, 0x1c, 0x25, 0x2a, 0x96, 0xe3, 0x6c, 0x2a, 0xfd, 0x57, 0xa7, 0xf1, 0x64, 0x18, 0x0d, + 0xa6, 0x4f, 0x6d, 0x20, 0x7f, 0x99, 0x70, 0x7c, 0x8c, 0xf3, 0x57, 0xf5, 0x09, 0xcf, 0x3b, 0xf1, + 0x76, 0xbf, 0xce, 0xb7, 0x5f, 0xfd, 0xf1, 0x06, 0xe9, 0x6f, 0xd7, 0xbc, 0xcc, 0xd6, 0x34, 0xce, + 0x87, 0x51, 0xdc, 0x72, 0x0f, 0xf4, 0x07, 0xb6, 0x55, 0x9c, 0x73, 0x5c, 0x3e, 0x0a, 0x54, 0x9c, + 0x55, 0xd4, 0xad, 0xaf, 0x7a, 0xfb, 0x3f, 0xe6, 0xdb, 0xed, 0xbf, 0x54, 0x0c, 0x54, 0x1c, 0x4f, + 0xaf, 0x45, 0xe3, 0x78, 0xaa, 0xab, 0xee, 0x75, 0xf4, 0xf2, 0x1e, 0xf2, 0x4d, 0x29, 0xc7, 0x5d, + 0xb6, 0xfa, 0x2e, 0x18, 0x0b, 0xf2, 0x52, 0x5f, 0x17, 0xaf, 0x96, 0xce, 0xb7, 0xab, 0xc7, 0x53, + 0x9b, 0xb7, 0xad, 0xe8, 0xc8, 0x2b, 0xe3, 0x52, 0xde, 0xaa, 0xf7, 0xe6, 0x6e, 0x41, 0xd1, 0x6c, + 0x41, 0xd1, 0x97, 0x05, 0x45, 0xf7, 0x0b, 0x0a, 0x0f, 0x0b, 0x0a, 0x8f, 0x0b, 0x0a, 0xb7, 0x29, + 0x85, 0x8f, 0x29, 0x85, 0x4f, 0x29, 0x85, 0xcf, 0x29, 0x85, 0xbb, 0x94, 0xa2, 0x59, 0x4a, 0xd1, + 0x7d, 0x4a, 0xe1, 0x7b, 0x4a, 0xd1, 0x43, 0x4a, 0xe1, 0x31, 0xa5, 0x70, 0xfb, 0x8d, 0xa2, 0x9f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0xa2, 0xfa, 0x42, 0x4c, 0x80, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto index 66b1233b..3d29620a 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go index ca2ff287..becfa0dd 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go @@ -19,6 +19,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -33,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -67,24 +72,28 @@ func TestSubbyProto(t *testing.T) { } func TestSubbyMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -95,21 +104,25 @@ func TestSubbyMarshalTo(t *testing.T) { } func TestAllTypesOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -129,24 +142,28 @@ func TestAllTypesOneOfProto(t *testing.T) { } func TestAllTypesOneOfMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -157,21 +174,25 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { } func TestTwoOneofsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -191,24 +212,28 @@ func TestTwoOneofsProto(t *testing.T) { } func TestTwoOneofsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -219,21 +244,25 @@ func TestTwoOneofsMarshalTo(t *testing.T) { } func TestCustomOneofProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -253,24 +282,28 @@ func TestCustomOneofProto(t *testing.T) { } func TestCustomOneofMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -368,9 +401,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -385,9 +418,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -402,9 +435,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -419,9 +452,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,9 +469,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,9 +486,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,9 +503,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,9 +520,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -504,14 +537,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -519,14 +556,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -534,14 +575,18 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -549,14 +594,18 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -620,13 +669,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -642,13 +691,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -664,13 +713,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -686,13 +735,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go index e60bf69b..b853264c 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go @@ -31,8 +31,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -45,7 +43,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` @@ -90,49 +90,49 @@ type isAllTypesOneOf_TestOneof interface { } type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` } type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` } type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` } type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` } type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` } type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` } type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` } type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` } type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` } type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` } type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` } type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` } type AllTypesOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -577,19 +577,19 @@ type isTwoOneofs_Two interface { } type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` } type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` } type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` } type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"` + Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` } type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=field35,oneof"` + Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` } type TwoOneofs_SubMessage2 struct { SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` @@ -818,16 +818,16 @@ type isCustomOneof_Custom interface { } type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"` + Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` } type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=customType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` + CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` } type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` + CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` } type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=customName,oneof"` + MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` } func (*CustomOneof_Stringy) isCustomOneof_Custom() {} @@ -882,11 +882,11 @@ func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { _ = b.EncodeStringBytes(x.Stringy) case *CustomOneof_CustomType: _ = b.EncodeVarint(35<<3 | proto.WireBytes) - data, err := x.CustomType.Marshal() + dAtA, err := x.CustomType.Marshal() if err != nil { return err } - _ = b.EncodeRawBytes(data) + _ = b.EncodeRawBytes(dAtA) case *CustomOneof_CastType: _ = b.EncodeVarint(36<<3 | proto.WireVarint) _ = b.EncodeVarint(uint64(x.CastType)) @@ -988,240 +988,260 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3726 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x23, 0xe5, - 0xf5, 0xc7, 0xf1, 0x25, 0xf6, 0xb1, 0xe3, 0x38, 0x93, 0xb0, 0xeb, 0x0d, 0xb0, 0x61, 0xbd, 0x5c, - 0x96, 0x05, 0x92, 0xdd, 0x64, 0xb3, 0x17, 0xf3, 0xff, 0x83, 0xe2, 0xc4, 0x1b, 0xb2, 0x4a, 0xe2, - 0xfc, 0x27, 0x31, 0x2c, 0xfc, 0x1f, 0x46, 0x13, 0x7b, 0xe2, 0x78, 0xd7, 0x9e, 0x71, 0x3d, 0xe3, - 0xdd, 0x0d, 0x4f, 0xb4, 0xf4, 0x22, 0x54, 0xf5, 0x46, 0x2b, 0x95, 0x7b, 0x0b, 0x52, 0x0b, 0xa5, - 0x37, 0xe8, 0x4d, 0x55, 0x9f, 0x2a, 0x55, 0xb4, 0x3c, 0x55, 0xb4, 0x4f, 0x55, 0x55, 0xad, 0x80, - 0x22, 0x95, 0xb6, 0xb4, 0xa5, 0xd2, 0x4a, 0x45, 0xe5, 0xa5, 0xe7, 0xbb, 0xcd, 0xc5, 0x76, 0x32, - 0x0e, 0x2a, 0xa5, 0x91, 0xac, 0x78, 0xce, 0x39, 0xbf, 0xdf, 0x7c, 0xdf, 0xf9, 0xce, 0x77, 0xce, - 0x99, 0x6f, 0x0c, 0x3f, 0x3b, 0x0a, 0xd7, 0x57, 0x0c, 0xa3, 0x52, 0xd3, 0x26, 0x1a, 0x4d, 0xc3, - 0x32, 0xd6, 0x5b, 0x1b, 0x13, 0x65, 0xcd, 0x2c, 0x35, 0xab, 0x0d, 0xcb, 0x68, 0x8e, 0x53, 0x99, - 0x34, 0xc8, 0x2c, 0xc6, 0x85, 0x45, 0x66, 0x09, 0x86, 0x4e, 0x57, 0x6b, 0xda, 0x9c, 0x6d, 0xb8, - 0xaa, 0x59, 0xd2, 0x49, 0x08, 0x6d, 0xa0, 0x30, 0x1d, 0xb8, 0x3e, 0x78, 0x28, 0x3e, 0x79, 0xc3, - 0x78, 0x1b, 0x68, 0xdc, 0x8b, 0x58, 0x21, 0x62, 0x99, 0x22, 0x32, 0x6f, 0x86, 0x60, 0xb8, 0x8b, - 0x56, 0x92, 0x20, 0xa4, 0xab, 0x75, 0xc2, 0x18, 0x38, 0x14, 0x93, 0xe9, 0x77, 0x29, 0x0d, 0xfd, - 0x0d, 0xb5, 0x74, 0x5e, 0xad, 0x68, 0xe9, 0x3e, 0x2a, 0x16, 0x97, 0xd2, 0x7e, 0x80, 0xb2, 0xd6, - 0xd0, 0xf4, 0xb2, 0xa6, 0x97, 0xb6, 0xd2, 0x41, 0x1c, 0x45, 0x4c, 0x76, 0x49, 0xa4, 0x5b, 0x61, - 0xa8, 0xd1, 0x5a, 0xaf, 0x55, 0x4b, 0x8a, 0xcb, 0x0c, 0xd0, 0x2c, 0x2c, 0xa7, 0x98, 0x62, 0xce, - 0x31, 0xbe, 0x19, 0x06, 0x2f, 0x6a, 0xea, 0x79, 0xb7, 0x69, 0x9c, 0x9a, 0x26, 0x89, 0xd8, 0x65, - 0x38, 0x0b, 0x89, 0xba, 0x66, 0x9a, 0x38, 0x00, 0xc5, 0xda, 0x6a, 0x68, 0xe9, 0x10, 0x9d, 0xfd, - 0xf5, 0x1d, 0xb3, 0x6f, 0x9f, 0x79, 0x9c, 0xa3, 0xd6, 0x10, 0x24, 0xcd, 0x40, 0x4c, 0xd3, 0x5b, - 0x75, 0xc6, 0x10, 0xde, 0xc6, 0x7f, 0x79, 0xb4, 0x68, 0x67, 0x89, 0x12, 0x18, 0xa7, 0xe8, 0x37, - 0xb5, 0xe6, 0x85, 0x6a, 0x49, 0x4b, 0x47, 0x28, 0xc1, 0xcd, 0x1d, 0x04, 0xab, 0x4c, 0xdf, 0xce, - 0x21, 0x70, 0x38, 0x95, 0x98, 0x76, 0xc9, 0xd2, 0x74, 0xb3, 0x6a, 0xe8, 0xe9, 0x7e, 0x4a, 0x72, - 0x63, 0x97, 0x55, 0xd4, 0x6a, 0xe5, 0x76, 0x0a, 0x07, 0x27, 0x1d, 0x87, 0x7e, 0xa3, 0x61, 0xe1, - 0x37, 0x33, 0x1d, 0xc5, 0xf5, 0x89, 0x4f, 0x5e, 0xdb, 0x35, 0x10, 0x0a, 0xcc, 0x46, 0x16, 0xc6, - 0xd2, 0x02, 0xa4, 0x4c, 0xa3, 0xd5, 0x2c, 0x69, 0x4a, 0xc9, 0x28, 0x6b, 0x4a, 0x55, 0xdf, 0x30, - 0xd2, 0x31, 0x4a, 0x30, 0xd6, 0x39, 0x11, 0x6a, 0x38, 0x8b, 0x76, 0x0b, 0x68, 0x26, 0x27, 0x4d, - 0xcf, 0xb5, 0xb4, 0x07, 0x22, 0xe6, 0x96, 0x6e, 0xa9, 0x97, 0xd2, 0x09, 0x1a, 0x21, 0xfc, 0x2a, - 0xf3, 0x8f, 0x30, 0x0c, 0xf6, 0x12, 0x62, 0x77, 0x40, 0x78, 0x83, 0xcc, 0x12, 0x03, 0x6c, 0x17, - 0x3e, 0x60, 0x18, 0xaf, 0x13, 0x23, 0xef, 0xd3, 0x89, 0x33, 0x10, 0xd7, 0x35, 0xd3, 0xd2, 0xca, - 0x2c, 0x22, 0x82, 0x3d, 0xc6, 0x14, 0x30, 0x50, 0x67, 0x48, 0x85, 0xde, 0x57, 0x48, 0x9d, 0x85, - 0x41, 0x7b, 0x48, 0x4a, 0x53, 0xd5, 0x2b, 0x22, 0x36, 0x27, 0xfc, 0x46, 0x32, 0x9e, 0x17, 0x38, - 0x99, 0xc0, 0xe4, 0xa4, 0xe6, 0xb9, 0x96, 0xe6, 0x00, 0x0c, 0x5d, 0x33, 0x36, 0x70, 0x7b, 0x95, - 0x6a, 0x18, 0x27, 0xdd, 0xbd, 0x54, 0x20, 0x26, 0x1d, 0x5e, 0x32, 0x98, 0xb4, 0x54, 0x93, 0x4e, - 0x39, 0xa1, 0xd6, 0xbf, 0x4d, 0xa4, 0x2c, 0xb1, 0x4d, 0xd6, 0x11, 0x6d, 0x45, 0x48, 0x36, 0x35, - 0x12, 0xf7, 0xe8, 0x62, 0x36, 0xb3, 0x18, 0x1d, 0xc4, 0xb8, 0xef, 0xcc, 0x64, 0x0e, 0x63, 0x13, - 0x1b, 0x68, 0xba, 0x2f, 0xa5, 0x83, 0x60, 0x0b, 0x14, 0x1a, 0x56, 0x40, 0xb3, 0x50, 0x42, 0x08, - 0x97, 0x51, 0x36, 0x7a, 0x12, 0x92, 0x5e, 0xf7, 0x48, 0x23, 0x10, 0x36, 0x2d, 0xb5, 0x69, 0xd1, - 0x28, 0x0c, 0xcb, 0xec, 0x42, 0x4a, 0x41, 0x10, 0x93, 0x0c, 0xcd, 0x72, 0x61, 0x99, 0x7c, 0x1d, - 0x3d, 0x01, 0x03, 0x9e, 0xdb, 0xf7, 0x0a, 0xcc, 0x3c, 0x1a, 0x81, 0x91, 0x6e, 0x31, 0xd7, 0x35, - 0xfc, 0x71, 0xfb, 0x60, 0x04, 0xac, 0x6b, 0x4d, 0x8c, 0x3b, 0xc2, 0xc0, 0xaf, 0x30, 0xa2, 0xc2, - 0x35, 0x75, 0x5d, 0xab, 0x61, 0x34, 0x05, 0x0e, 0x25, 0x27, 0x6f, 0xed, 0x29, 0xaa, 0xc7, 0x17, - 0x09, 0x44, 0x66, 0x48, 0xe9, 0x4e, 0x08, 0xf1, 0x14, 0x47, 0x18, 0x0e, 0xf7, 0xc6, 0x40, 0x62, - 0x51, 0xa6, 0x38, 0xe9, 0x1a, 0x88, 0x91, 0xff, 0xcc, 0xb7, 0x11, 0x3a, 0xe6, 0x28, 0x11, 0x10, - 0xbf, 0x4a, 0xa3, 0x10, 0xa5, 0x61, 0x56, 0xd6, 0x44, 0x69, 0xb0, 0xaf, 0xc9, 0xc2, 0x94, 0xb5, - 0x0d, 0xb5, 0x55, 0xb3, 0x94, 0x0b, 0x6a, 0xad, 0xa5, 0xd1, 0x80, 0xc1, 0x85, 0xe1, 0xc2, 0x7b, - 0x88, 0x4c, 0x1a, 0x83, 0x38, 0x8b, 0xca, 0x2a, 0x62, 0x2e, 0xd1, 0xec, 0x13, 0x96, 0x59, 0xa0, - 0x2e, 0x10, 0x09, 0xb9, 0xfd, 0x39, 0x13, 0xf7, 0x02, 0x5f, 0x5a, 0x7a, 0x0b, 0x22, 0xa0, 0xb7, - 0x3f, 0xd1, 0x9e, 0xf8, 0xae, 0xeb, 0x3e, 0xbd, 0xf6, 0x58, 0xcc, 0xfc, 0xa8, 0x0f, 0x42, 0x74, - 0xbf, 0x0d, 0x42, 0x7c, 0xed, 0xbe, 0x95, 0xbc, 0x32, 0x57, 0x28, 0xe6, 0x16, 0xf3, 0xa9, 0x80, - 0x94, 0x04, 0xa0, 0x82, 0xd3, 0x8b, 0x85, 0x99, 0xb5, 0x54, 0x9f, 0x7d, 0xbd, 0xb0, 0xbc, 0x76, - 0xfc, 0x58, 0x2a, 0x68, 0x03, 0x8a, 0x4c, 0x10, 0x72, 0x1b, 0x4c, 0x4d, 0xa6, 0xc2, 0x18, 0x09, - 0x09, 0x46, 0xb0, 0x70, 0x36, 0x3f, 0x87, 0x16, 0x11, 0xaf, 0x04, 0x6d, 0xfa, 0xa5, 0x01, 0x88, - 0x51, 0x49, 0xae, 0x50, 0x58, 0x4c, 0x45, 0x6d, 0xce, 0xd5, 0x35, 0x79, 0x61, 0x79, 0x3e, 0x15, - 0xb3, 0x39, 0xe7, 0xe5, 0x42, 0x71, 0x25, 0x05, 0x36, 0xc3, 0x52, 0x7e, 0x75, 0x75, 0x66, 0x3e, - 0x9f, 0x8a, 0xdb, 0x16, 0xb9, 0xfb, 0xd6, 0xf2, 0xab, 0xa9, 0x84, 0x67, 0x58, 0x78, 0x8b, 0x01, - 0xfb, 0x16, 0xf9, 0xe5, 0xe2, 0x52, 0x2a, 0x29, 0x0d, 0xc1, 0x00, 0xbb, 0x85, 0x18, 0xc4, 0x60, - 0x9b, 0x08, 0x47, 0x9a, 0x72, 0x06, 0xc2, 0x58, 0x86, 0x3c, 0x02, 0xb4, 0x90, 0x32, 0xb3, 0x10, - 0xa6, 0xd1, 0x85, 0x51, 0x9c, 0x5c, 0x9c, 0xc9, 0xe5, 0x17, 0x95, 0xc2, 0xca, 0xda, 0x42, 0x61, - 0x79, 0x66, 0x11, 0x7d, 0x67, 0xcb, 0xe4, 0xfc, 0xff, 0x15, 0x17, 0xe4, 0xfc, 0x1c, 0xfa, 0xcf, - 0x25, 0x5b, 0xc9, 0xcf, 0xac, 0xa1, 0x2c, 0x98, 0x39, 0x0c, 0x23, 0xdd, 0xf2, 0x4c, 0xb7, 0x9d, - 0x91, 0x79, 0x36, 0x00, 0xc3, 0x5d, 0x52, 0x66, 0xd7, 0x5d, 0x74, 0x17, 0x84, 0x59, 0xa4, 0xb1, - 0x22, 0x72, 0x4b, 0xd7, 0xdc, 0x4b, 0xe3, 0xae, 0xa3, 0x90, 0x50, 0x9c, 0xbb, 0x90, 0x06, 0xb7, - 0x29, 0xa4, 0x84, 0xa2, 0x23, 0x9c, 0x1e, 0x0a, 0x40, 0x7a, 0x3b, 0x6e, 0x9f, 0xfd, 0xde, 0xe7, - 0xd9, 0xef, 0x77, 0xb4, 0x0f, 0xe0, 0xc0, 0xf6, 0x73, 0xe8, 0x18, 0xc5, 0x73, 0x01, 0xd8, 0xd3, - 0xbd, 0xdf, 0xe8, 0x3a, 0x86, 0x3b, 0x21, 0x52, 0xd7, 0xac, 0x4d, 0x43, 0xd4, 0xdc, 0x9b, 0xba, - 0x64, 0x72, 0xa2, 0x6e, 0xf7, 0x15, 0x47, 0xb9, 0x4b, 0x41, 0x70, 0xbb, 0xa6, 0x81, 0x8d, 0xa6, - 0x63, 0xa4, 0x0f, 0xf7, 0xc1, 0xd5, 0x5d, 0xc9, 0xbb, 0x0e, 0xf4, 0x3a, 0x80, 0xaa, 0xde, 0x68, - 0x59, 0xac, 0xae, 0xb2, 0x34, 0x13, 0xa3, 0x12, 0xba, 0x85, 0x49, 0x0a, 0x69, 0x59, 0xb6, 0x3e, - 0x48, 0xf5, 0xc0, 0x44, 0xd4, 0xe0, 0xa4, 0x33, 0xd0, 0x10, 0x1d, 0xe8, 0xfe, 0x6d, 0x66, 0xda, - 0x51, 0xb2, 0x8e, 0x40, 0xaa, 0x54, 0xab, 0x6a, 0xba, 0xa5, 0x98, 0x56, 0x53, 0x53, 0xeb, 0x55, - 0xbd, 0x42, 0xf3, 0x68, 0x34, 0x1b, 0xde, 0x50, 0x6b, 0xa6, 0x26, 0x0f, 0x32, 0xf5, 0xaa, 0xd0, - 0x12, 0x04, 0x2d, 0x16, 0x4d, 0x17, 0x22, 0xe2, 0x41, 0x30, 0xb5, 0x8d, 0xc8, 0xfc, 0xba, 0x1f, - 0xe2, 0xae, 0xee, 0x4c, 0x3a, 0x00, 0x89, 0x73, 0xea, 0x05, 0x55, 0x11, 0x1d, 0x37, 0xf3, 0x44, - 0x9c, 0xc8, 0x56, 0x78, 0xd7, 0x7d, 0x04, 0x46, 0xa8, 0x09, 0xce, 0x11, 0x6f, 0x54, 0xaa, 0xa9, - 0xa6, 0x49, 0x9d, 0x16, 0xa5, 0xa6, 0x12, 0xd1, 0x15, 0x88, 0x6a, 0x56, 0x68, 0xa4, 0x69, 0x18, - 0xa6, 0x88, 0x3a, 0x26, 0xde, 0x6a, 0xa3, 0xa6, 0x29, 0xe4, 0x19, 0xc0, 0xa4, 0xf9, 0xd4, 0x1e, - 0xd9, 0x10, 0xb1, 0x58, 0xe2, 0x06, 0x64, 0x44, 0xa6, 0x34, 0x0f, 0xd7, 0x51, 0x58, 0x45, 0xd3, - 0xb5, 0xa6, 0x6a, 0x69, 0x8a, 0xf6, 0x91, 0x16, 0xda, 0x2a, 0xaa, 0x5e, 0x56, 0x36, 0x55, 0x73, - 0x33, 0x3d, 0xe2, 0x26, 0xd8, 0x47, 0x6c, 0xe7, 0xb9, 0x69, 0x9e, 0x5a, 0xce, 0xe8, 0xe5, 0xbb, - 0xd1, 0x4e, 0xca, 0xc2, 0x1e, 0x4a, 0x84, 0x4e, 0xc1, 0x39, 0x2b, 0xa5, 0x4d, 0xad, 0x74, 0x5e, - 0x69, 0x59, 0x1b, 0x27, 0xd3, 0xd7, 0xb8, 0x19, 0xe8, 0x20, 0x57, 0xa9, 0xcd, 0x2c, 0x31, 0x29, - 0xa2, 0x85, 0xb4, 0x0a, 0x09, 0xb2, 0x1e, 0xf5, 0xea, 0x03, 0x38, 0x6c, 0xa3, 0x49, 0x6b, 0x44, - 0xb2, 0xcb, 0xe6, 0x76, 0x39, 0x71, 0xbc, 0xc0, 0x01, 0x4b, 0xd8, 0x9f, 0x66, 0xc3, 0xab, 0x2b, - 0xf9, 0xfc, 0x9c, 0x1c, 0x17, 0x2c, 0xa7, 0x8d, 0x26, 0x89, 0xa9, 0x8a, 0x61, 0xfb, 0x38, 0xce, - 0x62, 0xaa, 0x62, 0x08, 0x0f, 0xa3, 0xbf, 0x4a, 0x25, 0x36, 0x6d, 0x7c, 0x76, 0xe1, 0xcd, 0xba, - 0x99, 0x4e, 0x79, 0xfc, 0x55, 0x2a, 0xcd, 0x33, 0x03, 0x1e, 0xe6, 0x26, 0x6e, 0x89, 0xab, 0x1d, - 0x7f, 0xb9, 0x81, 0x43, 0x1d, 0xb3, 0x6c, 0x87, 0xe2, 0x1d, 0x1b, 0x5b, 0x9d, 0x40, 0xc9, 0x73, - 0xc7, 0xc6, 0x56, 0x3b, 0xec, 0x46, 0xfa, 0x00, 0xd6, 0xd4, 0x4a, 0xe8, 0xf2, 0x72, 0x7a, 0xaf, - 0xdb, 0xda, 0xa5, 0x90, 0x26, 0x30, 0x90, 0x4b, 0x8a, 0xa6, 0xab, 0xeb, 0xb8, 0xf6, 0x6a, 0x13, - 0xbf, 0x98, 0xe9, 0x31, 0xb7, 0x71, 0xb2, 0x54, 0xca, 0x53, 0xed, 0x0c, 0x55, 0x4a, 0x87, 0x61, - 0xc8, 0x58, 0x3f, 0x57, 0x62, 0xc1, 0xa5, 0x20, 0xcf, 0x46, 0xf5, 0x52, 0xfa, 0x06, 0xea, 0xa6, - 0x41, 0xa2, 0xa0, 0xa1, 0xb5, 0x42, 0xc5, 0xd2, 0x2d, 0x48, 0x6e, 0x6e, 0xaa, 0xcd, 0x06, 0x2d, - 0xd2, 0x26, 0x3a, 0x55, 0x4b, 0xdf, 0xc8, 0x4c, 0x99, 0x7c, 0x59, 0x88, 0xa5, 0x3c, 0x8c, 0x91, - 0xc9, 0xeb, 0xaa, 0x6e, 0x28, 0x2d, 0x53, 0x53, 0x9c, 0x21, 0xda, 0x6b, 0x71, 0x13, 0x19, 0x96, - 0x7c, 0xad, 0x30, 0x2b, 0x9a, 0x98, 0xcc, 0x84, 0x91, 0x58, 0x9e, 0xb3, 0x30, 0xd2, 0xd2, 0xab, - 0x3a, 0x86, 0x38, 0x6a, 0x08, 0x98, 0x6d, 0xd8, 0xf4, 0x1f, 0xfa, 0xb7, 0x69, 0xba, 0x8b, 0x6e, - 0x6b, 0x16, 0x24, 0xf2, 0x70, 0xab, 0x53, 0x98, 0xc9, 0x42, 0xc2, 0x1d, 0x3b, 0x52, 0x0c, 0x58, - 0xf4, 0x60, 0x75, 0xc3, 0x8a, 0x3a, 0x5b, 0x98, 0x23, 0xb5, 0xf0, 0xfe, 0x3c, 0x16, 0x36, 0xac, - 0xc9, 0x8b, 0x0b, 0x6b, 0x79, 0x45, 0x2e, 0x2e, 0xaf, 0x2d, 0x2c, 0xe5, 0x53, 0xc1, 0xc3, 0xb1, - 0xe8, 0x5b, 0xfd, 0xa9, 0x07, 0xf1, 0xaf, 0x2f, 0xf3, 0x72, 0x1f, 0x24, 0xbd, 0x7d, 0xb0, 0xf4, - 0x3f, 0xb0, 0x57, 0x3c, 0xb4, 0x9a, 0x9a, 0xa5, 0x5c, 0xac, 0x36, 0x69, 0x38, 0xd7, 0x55, 0xd6, - 0x49, 0xda, 0x2b, 0x31, 0xc2, 0xad, 0xf0, 0xf1, 0xfe, 0x5e, 0xb4, 0x39, 0x4d, 0x4d, 0xa4, 0x45, - 0x18, 0x43, 0x97, 0x61, 0xaf, 0xa9, 0x97, 0xd5, 0x66, 0x59, 0x71, 0x8e, 0x0b, 0x14, 0xb5, 0x84, - 0x71, 0x60, 0x1a, 0xac, 0x92, 0xd8, 0x2c, 0xd7, 0xea, 0xc6, 0x2a, 0x37, 0x76, 0x52, 0xec, 0x0c, - 0x37, 0x6d, 0x8b, 0x9a, 0xe0, 0x76, 0x51, 0x83, 0xbd, 0x57, 0x5d, 0x6d, 0x60, 0xd8, 0x58, 0xcd, - 0x2d, 0xda, 0xbd, 0x45, 0xe5, 0x28, 0x0a, 0xf2, 0xe4, 0xfa, 0x83, 0x5b, 0x03, 0xb7, 0x1f, 0x7f, - 0x17, 0x84, 0x84, 0xbb, 0x83, 0x23, 0x0d, 0x71, 0x89, 0xa6, 0xf9, 0x00, 0xcd, 0x02, 0x07, 0x77, - 0xec, 0xf7, 0xc6, 0x67, 0x49, 0xfe, 0xcf, 0x46, 0x58, 0x5f, 0x25, 0x33, 0x24, 0xa9, 0xbd, 0x24, - 0xd6, 0x34, 0xd6, 0xad, 0x47, 0x65, 0x7e, 0x85, 0xc9, 0x2e, 0x72, 0xce, 0xa4, 0xdc, 0x11, 0xca, - 0x7d, 0xc3, 0xce, 0xdc, 0x67, 0x56, 0x29, 0x79, 0xec, 0xcc, 0xaa, 0xb2, 0x5c, 0x90, 0x97, 0x66, - 0x16, 0x65, 0x0e, 0x97, 0xf6, 0x41, 0xa8, 0xa6, 0x3e, 0xb0, 0xe5, 0xad, 0x14, 0x54, 0xd4, 0xab, - 0xe3, 0x91, 0x81, 0x1c, 0x79, 0x78, 0xf3, 0x33, 0x15, 0x7d, 0x80, 0xa1, 0x3f, 0x01, 0x61, 0xea, - 0x2f, 0x09, 0x80, 0x7b, 0x2c, 0x75, 0x95, 0x14, 0x85, 0xd0, 0x6c, 0x41, 0x26, 0xe1, 0x8f, 0xf1, - 0xce, 0xa4, 0xca, 0xca, 0x42, 0x7e, 0x16, 0x77, 0x40, 0x66, 0x1a, 0x22, 0xcc, 0x09, 0x64, 0x6b, - 0xd8, 0x6e, 0x40, 0x10, 0xbb, 0xe4, 0x1c, 0x01, 0xa1, 0x2d, 0x2e, 0xe5, 0xf2, 0x72, 0xaa, 0xcf, - 0xbd, 0xbc, 0x3f, 0x09, 0x40, 0xdc, 0xd5, 0x50, 0x91, 0x52, 0xae, 0xd6, 0x6a, 0xc6, 0x45, 0x45, - 0xad, 0x55, 0x31, 0x43, 0xb1, 0xf5, 0x01, 0x2a, 0x9a, 0x21, 0x92, 0x5e, 0xfd, 0xf7, 0x1f, 0x89, - 0xcd, 0xa7, 0x03, 0x90, 0x6a, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf8, 0x50, 0x07, 0xf8, 0x64, 0x00, - 0x92, 0xde, 0x0e, 0xac, 0x6d, 0x78, 0x07, 0x3e, 0xd4, 0xe1, 0x3d, 0x11, 0x80, 0x01, 0x4f, 0xdf, - 0xf5, 0x5f, 0x35, 0xba, 0xc7, 0x83, 0x30, 0xdc, 0x05, 0x87, 0x09, 0x88, 0x35, 0xa8, 0xac, 0x67, - 0xbe, 0xbd, 0x97, 0x7b, 0x8d, 0x93, 0xfa, 0xb7, 0xa2, 0x36, 0x2d, 0xde, 0xcf, 0x62, 0xbd, 0xac, - 0x96, 0x31, 0xa9, 0x56, 0x37, 0xaa, 0xd8, 0xbe, 0xb1, 0x27, 0x16, 0xd6, 0xb5, 0x0e, 0x3a, 0x72, - 0xf6, 0x78, 0x7c, 0x1b, 0x48, 0x0d, 0xc3, 0xac, 0x5a, 0xd5, 0x0b, 0xe4, 0x78, 0x4e, 0x3c, 0x48, - 0x93, 0x2e, 0x36, 0x24, 0xa7, 0x84, 0x66, 0x41, 0xb7, 0x6c, 0x6b, 0x5d, 0xab, 0xa8, 0x6d, 0xd6, - 0x24, 0x0d, 0x05, 0xe5, 0x94, 0xd0, 0xd8, 0xd6, 0xd8, 0x68, 0x96, 0x8d, 0x16, 0x69, 0x08, 0x98, - 0x1d, 0xc9, 0x7a, 0x01, 0x39, 0xce, 0x64, 0xb6, 0x09, 0xef, 0xd8, 0x9c, 0x27, 0xf8, 0x84, 0x1c, - 0x67, 0x32, 0x66, 0x72, 0x33, 0x0c, 0xaa, 0x95, 0x4a, 0x93, 0x90, 0x0b, 0x22, 0xd6, 0x86, 0x26, - 0x6d, 0x31, 0x35, 0x1c, 0x3d, 0x03, 0x51, 0xe1, 0x07, 0x52, 0x58, 0x88, 0x27, 0xb0, 0xe6, 0xd3, - 0x73, 0x94, 0x3e, 0xf2, 0x50, 0xaf, 0x0b, 0x25, 0xde, 0xb4, 0x6a, 0x2a, 0xce, 0x81, 0x5e, 0x1f, - 0xea, 0xa3, 0x72, 0xbc, 0x6a, 0xda, 0x27, 0x38, 0x99, 0xe7, 0xb0, 0xbc, 0x7a, 0x0f, 0x24, 0xa5, - 0x39, 0x88, 0xd6, 0x0c, 0x8c, 0x0f, 0x82, 0x60, 0xa7, 0xe1, 0x87, 0x7c, 0xce, 0x30, 0xc7, 0x17, - 0xb9, 0xbd, 0x6c, 0x23, 0x47, 0x7f, 0x19, 0x80, 0xa8, 0x10, 0x63, 0xa1, 0x08, 0x35, 0x54, 0x6b, - 0x93, 0xd2, 0x85, 0x73, 0x7d, 0xa9, 0x80, 0x4c, 0xaf, 0x89, 0x1c, 0xbb, 0x19, 0x9d, 0x86, 0x00, - 0x97, 0x93, 0x6b, 0xb2, 0xae, 0x35, 0x4d, 0x2d, 0xd3, 0x06, 0xd7, 0xa8, 0xd7, 0x71, 0x25, 0x4d, - 0xb1, 0xae, 0x5c, 0x3e, 0xcb, 0xc5, 0xe4, 0x5c, 0xdc, 0x6a, 0xaa, 0xd5, 0x9a, 0xc7, 0x36, 0x44, - 0x6d, 0x53, 0x42, 0x61, 0x1b, 0x67, 0x61, 0x9f, 0xe0, 0x2d, 0x6b, 0x96, 0x8a, 0xcd, 0x73, 0xd9, - 0x01, 0x45, 0xe8, 0x69, 0xd7, 0x5e, 0x6e, 0x30, 0xc7, 0xf5, 0x02, 0x9b, 0x3b, 0x8b, 0x8d, 0xac, - 0x51, 0x6f, 0xf7, 0x44, 0x2e, 0xd5, 0xf6, 0xdc, 0x65, 0xde, 0x1d, 0xb8, 0x1f, 0x9c, 0xa6, 0xe2, - 0xd9, 0xbe, 0xe0, 0xfc, 0x4a, 0xee, 0x85, 0xbe, 0xd1, 0x79, 0x86, 0x5b, 0x11, 0x1e, 0x94, 0xb5, - 0x8d, 0x9a, 0x56, 0x22, 0xde, 0x81, 0x67, 0x0e, 0xc2, 0xed, 0x95, 0xaa, 0xb5, 0xd9, 0x5a, 0x1f, - 0xc7, 0x3b, 0x4c, 0x54, 0x8c, 0x8a, 0xe1, 0xbc, 0xce, 0x20, 0x57, 0xf4, 0x82, 0x7e, 0xe3, 0xaf, - 0x34, 0x62, 0xb6, 0x74, 0xd4, 0xf7, 0xfd, 0x47, 0x76, 0x19, 0x86, 0xb9, 0xb1, 0x42, 0xcf, 0x54, - 0x59, 0x0b, 0x2a, 0xed, 0xf8, 0x40, 0x9e, 0x7e, 0xe9, 0x4d, 0x5a, 0x12, 0xe4, 0x21, 0x0e, 0x25, - 0x3a, 0xd6, 0xa4, 0x66, 0x65, 0xb8, 0xda, 0xc3, 0xc7, 0x62, 0x18, 0x1f, 0xb9, 0x77, 0x66, 0x7c, - 0x99, 0x33, 0x0e, 0xbb, 0x18, 0x57, 0x39, 0x34, 0x3b, 0x0b, 0x03, 0xbb, 0xe1, 0xfa, 0x39, 0xe7, - 0x4a, 0x68, 0x6e, 0x92, 0x79, 0x18, 0xa4, 0x24, 0xa5, 0x96, 0x69, 0x19, 0x75, 0x9a, 0x20, 0x76, - 0xa6, 0xf9, 0xc5, 0x9b, 0x2c, 0xa8, 0x92, 0x04, 0x36, 0x6b, 0xa3, 0xb2, 0xf7, 0xc0, 0x08, 0x91, - 0xd0, 0x3d, 0xe8, 0x66, 0xf3, 0x3f, 0x42, 0x48, 0xff, 0xea, 0x21, 0x16, 0x7b, 0xc3, 0x36, 0x81, - 0x8b, 0xd7, 0xb5, 0x12, 0x15, 0xcd, 0xc2, 0xdc, 0x86, 0xcf, 0x7f, 0xb5, 0x9a, 0xb4, 0xe3, 0x3b, - 0x86, 0xf4, 0x63, 0x6f, 0x7b, 0x57, 0x62, 0x9e, 0x21, 0x67, 0x6a, 0xb5, 0x6c, 0x11, 0xf6, 0x76, - 0x59, 0xd9, 0x1e, 0x38, 0x1f, 0xe7, 0x9c, 0x23, 0x1d, 0xab, 0x4b, 0x68, 0x57, 0x40, 0xc8, 0xed, - 0xf5, 0xe8, 0x81, 0xf3, 0x09, 0xce, 0x29, 0x71, 0xac, 0x58, 0x16, 0xc2, 0x78, 0x06, 0x86, 0xf0, - 0x49, 0x7d, 0xdd, 0x30, 0xf9, 0x73, 0x6f, 0x0f, 0x74, 0x4f, 0x72, 0xba, 0x41, 0x0e, 0xa4, 0x4f, - 0xc1, 0x84, 0xeb, 0x14, 0x44, 0x37, 0xf0, 0x01, 0xa8, 0x07, 0x8a, 0xa7, 0x38, 0x45, 0x3f, 0xb1, - 0x27, 0xd0, 0x19, 0x48, 0x54, 0x0c, 0x9e, 0x86, 0xfd, 0xe1, 0x4f, 0x73, 0x78, 0x5c, 0x60, 0x38, - 0x45, 0xc3, 0x68, 0xb4, 0x6a, 0x24, 0x47, 0xfb, 0x53, 0x7c, 0x45, 0x50, 0x08, 0x0c, 0xa7, 0xd8, - 0x85, 0x5b, 0xbf, 0x2a, 0x28, 0x4c, 0x97, 0x3f, 0xef, 0x22, 0x67, 0xbd, 0xb5, 0x2d, 0x43, 0xef, - 0x65, 0x10, 0xcf, 0x70, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x07, 0xc4, 0x7a, 0x5d, 0x88, 0xaf, 0x71, - 0x78, 0x54, 0x13, 0x2b, 0x80, 0xfb, 0x4c, 0x24, 0x19, 0xf2, 0x6e, 0xc5, 0x9f, 0xe2, 0xeb, 0x9c, - 0x22, 0xe9, 0x82, 0xf1, 0x69, 0x58, 0x9a, 0x69, 0xe1, 0xa3, 0x7a, 0x0f, 0x24, 0xcf, 0x89, 0x69, - 0x70, 0x08, 0x77, 0xe5, 0xba, 0xa6, 0x97, 0x36, 0x7b, 0x63, 0x78, 0x5e, 0xb8, 0x52, 0x60, 0x08, - 0x05, 0x66, 0x9e, 0xba, 0xda, 0xc4, 0x87, 0xeb, 0x5a, 0x4f, 0xcb, 0xf1, 0x0d, 0xce, 0x91, 0xb0, - 0x41, 0xdc, 0x23, 0x2d, 0x7d, 0x37, 0x34, 0x2f, 0x08, 0x8f, 0xb8, 0x60, 0x7c, 0xeb, 0xe1, 0x93, - 0x29, 0xe9, 0x24, 0x76, 0xc3, 0xf6, 0x4d, 0xb1, 0xf5, 0x18, 0x76, 0xc9, 0xcd, 0x88, 0x2b, 0x6d, - 0xe2, 0x23, 0x78, 0x2f, 0x34, 0xdf, 0x12, 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x1f, 0xec, 0xeb, 0x9a, - 0xea, 0x7b, 0x20, 0xfb, 0x36, 0x27, 0xdb, 0xd3, 0x25, 0xdd, 0xf3, 0x94, 0xb0, 0x5b, 0xca, 0xef, - 0x88, 0x94, 0xa0, 0xb5, 0x71, 0xad, 0x90, 0x36, 0xd6, 0x54, 0x37, 0x76, 0xe7, 0xb5, 0xef, 0x0a, - 0xaf, 0x31, 0xac, 0xc7, 0x6b, 0x6b, 0xb0, 0x87, 0x33, 0xee, 0x6e, 0x5d, 0x5f, 0x14, 0x89, 0x95, - 0xa1, 0x8b, 0xde, 0xd5, 0xfd, 0x7f, 0x18, 0xb5, 0xdd, 0x29, 0x3a, 0x30, 0x53, 0x21, 0x07, 0x03, - 0xfe, 0xcc, 0x2f, 0x71, 0x66, 0x91, 0xf1, 0xed, 0x16, 0xce, 0x5c, 0x52, 0x1b, 0x84, 0xfc, 0x2c, - 0xa4, 0x05, 0x79, 0x4b, 0xc7, 0x06, 0xdf, 0xa8, 0xe8, 0xb8, 0x8c, 0xe5, 0x1e, 0xa8, 0xbf, 0xd7, - 0xb6, 0x54, 0x45, 0x17, 0x9c, 0x30, 0x2f, 0x40, 0xca, 0xee, 0x37, 0x94, 0x6a, 0xbd, 0x61, 0x60, - 0x6b, 0xb9, 0x33, 0xe3, 0xf7, 0xc5, 0x4a, 0xd9, 0xb8, 0x05, 0x0a, 0xcb, 0xe6, 0x21, 0x49, 0x2f, - 0x7b, 0x0d, 0xc9, 0x1f, 0x70, 0xa2, 0x01, 0x07, 0xc5, 0x13, 0x07, 0x76, 0x4a, 0xd8, 0xf3, 0xf6, - 0x92, 0xff, 0x7e, 0x28, 0x12, 0x07, 0x87, 0xb0, 0xe8, 0x1b, 0x6c, 0xab, 0xc4, 0x92, 0xdf, 0xeb, - 0xd7, 0xf4, 0x47, 0xaf, 0xf0, 0x3d, 0xeb, 0x2d, 0xc4, 0xd9, 0x45, 0xe2, 0x1e, 0x6f, 0xb9, 0xf4, - 0x27, 0x7b, 0xe8, 0x8a, 0xed, 0x21, 0x4f, 0xb5, 0xcc, 0x9e, 0x86, 0x01, 0x4f, 0xa9, 0xf4, 0xa7, - 0xfa, 0x38, 0xa7, 0x4a, 0xb8, 0x2b, 0x65, 0x76, 0x1a, 0x42, 0xa4, 0xec, 0xf9, 0xc3, 0x3f, 0xc1, - 0xe1, 0xd4, 0x3c, 0xfb, 0xbf, 0x10, 0x15, 0xe5, 0xce, 0x1f, 0xfa, 0x49, 0x0e, 0xb5, 0x21, 0x04, - 0x2e, 0x4a, 0x9d, 0x3f, 0xfc, 0x53, 0x02, 0x2e, 0x20, 0x04, 0xde, 0xbb, 0x0b, 0x7f, 0xfa, 0xe9, - 0x10, 0x4f, 0x57, 0xc2, 0x77, 0xe4, 0x9d, 0x0f, 0xab, 0x71, 0xfe, 0xe8, 0x87, 0xf9, 0xcd, 0x05, - 0x22, 0x7b, 0x02, 0xc2, 0x3d, 0x3a, 0xfc, 0x33, 0x1c, 0xca, 0xec, 0xb1, 0x82, 0xc4, 0x5d, 0x75, - 0xcd, 0x1f, 0xfe, 0x59, 0x0e, 0x77, 0xa3, 0xc8, 0xd0, 0x79, 0x5d, 0xf3, 0x27, 0xf8, 0x9c, 0x18, - 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x92, 0xe6, 0x8f, 0xfe, 0xbc, 0xf0, 0xba, 0x80, 0xe0, 0x6e, 0x8a, - 0xd9, 0x69, 0xca, 0x1f, 0xff, 0x05, 0x8e, 0x77, 0x30, 0xc4, 0x03, 0xae, 0x34, 0xe9, 0x4f, 0xf1, - 0x88, 0xf0, 0x80, 0x0b, 0x45, 0xb6, 0x51, 0x7b, 0xe9, 0xf3, 0x67, 0xfa, 0xa2, 0xd8, 0x46, 0x6d, - 0x95, 0x8f, 0xac, 0x26, 0xcd, 0x16, 0xfe, 0x14, 0x5f, 0x12, 0xab, 0x49, 0xed, 0xc9, 0x30, 0xda, - 0x6b, 0x89, 0x3f, 0xc7, 0x97, 0xc5, 0x30, 0xda, 0x4a, 0x09, 0x56, 0x26, 0xa9, 0xb3, 0x8e, 0xf8, - 0xf3, 0x3d, 0xca, 0xf9, 0x86, 0x3a, 0xca, 0x48, 0xf6, 0x5e, 0xd8, 0xd3, 0xbd, 0x86, 0xf8, 0xb3, - 0x3e, 0x76, 0xa5, 0xad, 0xeb, 0x77, 0x97, 0x10, 0x2c, 0x79, 0x23, 0xdd, 0xea, 0x87, 0x3f, 0xed, - 0xe3, 0x57, 0xbc, 0x0f, 0x76, 0xee, 0xf2, 0x81, 0x1d, 0x1a, 0x38, 0xa9, 0xdb, 0x9f, 0xeb, 0x49, - 0xce, 0xe5, 0x02, 0x91, 0xad, 0xc1, 0x33, 0xb7, 0x3f, 0xfe, 0x29, 0xb1, 0x35, 0x38, 0x02, 0xc1, - 0x51, 0xbd, 0x55, 0xab, 0x91, 0xe0, 0x90, 0x76, 0xfe, 0x49, 0x43, 0xfa, 0x8f, 0xef, 0xf1, 0x8d, - 0x21, 0x00, 0x98, 0x43, 0xc3, 0x5a, 0x7d, 0x1d, 0x7d, 0xe0, 0x83, 0xfc, 0xd3, 0x7b, 0x22, 0x21, - 0x10, 0x6b, 0xdc, 0x4f, 0xc0, 0x1e, 0x1a, 0xe9, 0x19, 0xb6, 0x0f, 0xf6, 0xcf, 0xef, 0xf1, 0xd7, - 0xac, 0x0e, 0xc4, 0x21, 0x60, 0x2f, 0x6d, 0x77, 0x26, 0x78, 0xdb, 0x4b, 0x40, 0x1f, 0x34, 0x4f, - 0x41, 0x3f, 0xf9, 0x65, 0x87, 0xa5, 0x56, 0xfc, 0xd0, 0x7f, 0xe1, 0x68, 0x61, 0x4f, 0x1c, 0x56, - 0x37, 0x9a, 0x1a, 0x7e, 0x35, 0xfd, 0xb0, 0x7f, 0xe5, 0x58, 0x1b, 0x40, 0xc0, 0x25, 0xd5, 0xb4, - 0x7a, 0x99, 0xf7, 0xdf, 0x04, 0x58, 0x00, 0xc8, 0xa0, 0xc9, 0xf7, 0xf3, 0xda, 0x96, 0x1f, 0xf6, - 0x1d, 0x31, 0x68, 0x6e, 0x8f, 0x09, 0x30, 0x46, 0xbe, 0xb2, 0x9f, 0x1e, 0xf8, 0x80, 0xff, 0xce, - 0xc1, 0x0e, 0x22, 0x77, 0xa0, 0xfb, 0xd1, 0x0e, 0xcc, 0x1b, 0xf3, 0x06, 0x3b, 0xd4, 0x81, 0x8f, - 0xc5, 0x20, 0x83, 0x36, 0x58, 0x5f, 0x27, 0xd8, 0x9e, 0x74, 0xed, 0xe7, 0x09, 0x2c, 0x1f, 0xfc, - 0x60, 0x26, 0x88, 0x5f, 0x47, 0x77, 0x77, 0x98, 0x93, 0xd9, 0x07, 0xe1, 0xd5, 0xd6, 0xfa, 0xfa, - 0x16, 0xf9, 0xe5, 0x93, 0xd9, 0x5a, 0xe7, 0xaf, 0xa9, 0xc9, 0xd7, 0xcc, 0xe5, 0x20, 0x0c, 0x60, - 0xbb, 0x42, 0xde, 0x0c, 0x98, 0x05, 0x5d, 0x2b, 0x6c, 0x48, 0x69, 0x88, 0xd0, 0xd9, 0x1c, 0xa5, - 0x66, 0x81, 0xbb, 0xaf, 0x92, 0x23, 0xf4, 0x97, 0x7b, 0x47, 0x6d, 0xcd, 0x24, 0x3d, 0xec, 0xef, - 0xb3, 0x35, 0x93, 0xb6, 0x66, 0x8a, 0xfd, 0x24, 0xca, 0xd6, 0x4c, 0xd9, 0x9a, 0x63, 0xf4, 0xc4, - 0x2c, 0x68, 0x6b, 0x8e, 0xd9, 0x9a, 0x69, 0x7a, 0xe8, 0x39, 0x60, 0x6b, 0xa6, 0x6d, 0xcd, 0x71, - 0x7a, 0xcc, 0x19, 0xb2, 0x35, 0xc7, 0x6d, 0xcd, 0x09, 0x7a, 0xba, 0x39, 0x64, 0x6b, 0x4e, 0xd8, - 0x9a, 0x93, 0xf4, 0x44, 0x53, 0xb2, 0x35, 0x27, 0x6d, 0xcd, 0x29, 0xfa, 0x32, 0xba, 0xdf, 0xd6, - 0x9c, 0x92, 0x46, 0xa1, 0x9f, 0xcd, 0xf4, 0x08, 0x7d, 0x79, 0x33, 0x88, 0xaa, 0x7e, 0x36, 0xd5, - 0x23, 0x8e, 0xee, 0x28, 0x7d, 0xe1, 0x1c, 0x71, 0x74, 0x47, 0x1d, 0xdd, 0x24, 0xfd, 0x01, 0x65, - 0xca, 0xd1, 0x4d, 0x3a, 0xba, 0xa9, 0xf4, 0x00, 0xd9, 0xb1, 0x8e, 0x6e, 0xca, 0xd1, 0x1d, 0x4b, - 0x27, 0xc9, 0x0a, 0x38, 0xba, 0x63, 0x8e, 0x6e, 0x3a, 0x3d, 0x48, 0x0e, 0x6e, 0x1d, 0xdd, 0xb4, - 0x74, 0x3b, 0xc4, 0x71, 0xa9, 0x14, 0xfe, 0xae, 0x91, 0xbe, 0xd8, 0x8e, 0x4f, 0xc2, 0x38, 0x89, - 0x09, 0xba, 0xac, 0x68, 0x0b, 0x68, 0xc0, 0x13, 0x55, 0x2e, 0x01, 0xf4, 0x01, 0x56, 0xa1, 0x3f, - 0xcc, 0xca, 0xbc, 0x1a, 0x80, 0xd8, 0xda, 0x45, 0x83, 0xfe, 0x86, 0xc7, 0xfc, 0x37, 0x2f, 0xae, - 0x18, 0xf4, 0xd4, 0xb1, 0x74, 0x86, 0x4e, 0x28, 0xc0, 0x07, 0x3d, 0xe5, 0x4c, 0x68, 0x6a, 0x3a, - 0x7d, 0x90, 0x4e, 0xc8, 0xd6, 0x4d, 0x4b, 0x13, 0x90, 0x70, 0x4d, 0x68, 0x92, 0xbe, 0xab, 0xf6, - 0xce, 0x28, 0x20, 0xc7, 0x9d, 0x19, 0x4d, 0xe6, 0xc2, 0x40, 0xc2, 0x9e, 0xfc, 0xb3, 0x2e, 0x1a, - 0x99, 0x47, 0xfa, 0x20, 0xce, 0xce, 0xbc, 0xe8, 0xac, 0xc8, 0xad, 0x58, 0x73, 0xbb, 0xc5, 0x87, - 0x81, 0xbe, 0x63, 0x1d, 0xdb, 0x96, 0x24, 0x03, 0x30, 0x53, 0x12, 0xe1, 0x6c, 0x24, 0xb9, 0x23, - 0xbf, 0xbd, 0x3c, 0x76, 0xdb, 0xb6, 0x3b, 0x88, 0xf8, 0x6e, 0x82, 0x65, 0xba, 0xf1, 0x62, 0x55, - 0xb7, 0x8e, 0x4e, 0x9e, 0x24, 0x0e, 0x2e, 0xd9, 0x2c, 0x52, 0x11, 0xa2, 0xb3, 0xb8, 0xb3, 0x29, - 0x23, 0x19, 0x7a, 0x28, 0x77, 0xe2, 0x9f, 0x97, 0xc7, 0xa6, 0x7c, 0x18, 0x79, 0x12, 0x1a, 0x5f, - 0xda, 0x22, 0xac, 0xc7, 0x8f, 0x11, 0x38, 0x12, 0xd3, 0xec, 0x44, 0x69, 0x27, 0xc5, 0x50, 0xc9, - 0xd1, 0x3b, 0x7d, 0x29, 0x1f, 0xcc, 0xa5, 0xde, 0xb8, 0x3c, 0x96, 0x58, 0xda, 0x72, 0xe4, 0xce, - 0x50, 0xc8, 0x55, 0x2e, 0x0a, 0x11, 0x76, 0x95, 0x9b, 0x7b, 0xe5, 0xf5, 0xfd, 0x57, 0xbd, 0x8a, - 0x9f, 0xdf, 0xe0, 0xe7, 0xb5, 0xd7, 0xf7, 0x07, 0xde, 0xc1, 0xcf, 0xbb, 0xf8, 0x79, 0xf0, 0x8d, - 0xfd, 0x81, 0xe7, 0xf1, 0xf3, 0x22, 0x7e, 0x7e, 0x8c, 0x9f, 0x57, 0xde, 0x40, 0x3b, 0xfc, 0xbc, - 0x86, 0xdf, 0xdf, 0xc2, 0xff, 0xef, 0xe0, 0xff, 0x77, 0xf1, 0xff, 0x83, 0xbf, 0xdf, 0x1f, 0xf8, - 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x5d, 0xef, 0xf6, 0xef, 0x2e, 0x00, 0x00, + // 4043 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0x6a, 0x69, + 0x3b, 0x96, 0xed, 0x58, 0xb2, 0x75, 0xd9, 0x0b, 0xf7, 0x9f, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0xfe, + 0x25, 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x20, 0xf0, 0x23, 0x85, 0x5d, 0x10, 0x60, 0x00, + 0x70, 0xd7, 0xf2, 0xd3, 0xb6, 0xee, 0x65, 0x32, 0x9d, 0xde, 0xd2, 0xce, 0x34, 0x71, 0x1d, 0xb7, + 0xcd, 0x4c, 0xeb, 0x34, 0xe9, 0x25, 0xe9, 0x25, 0xcd, 0xf4, 0xa9, 0x2f, 0x69, 0xfd, 0xd4, 0x71, + 0xde, 0x3a, 0x9d, 0x8e, 0xc7, 0xab, 0x78, 0xa6, 0x69, 0xeb, 0xb6, 0x6e, 0xe3, 0x99, 0x66, 0xea, + 0x97, 0xce, 0x77, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0xa6, 0x4e, 0x9e, 0x24, 0x9c, 0x73, 0x7e, 0x3f, + 0x1c, 0x9c, 0xef, 0x7c, 0xe7, 0x1c, 0x7c, 0x04, 0x7c, 0x6f, 0x0d, 0xe6, 0x5b, 0xb6, 0xdd, 0x32, + 0xd1, 0x52, 0xc7, 0xb1, 0x3d, 0xfb, 0xa0, 0xdb, 0x5c, 0x6a, 0x20, 0x57, 0x77, 0x8c, 0x8e, 0x67, + 0x3b, 0x8b, 0x44, 0x26, 0x4d, 0x51, 0x8b, 0x45, 0x6e, 0x51, 0xd8, 0x86, 0xe9, 0x6b, 0x86, 0x89, + 0xd6, 0x7d, 0xc3, 0x3a, 0xf2, 0xa4, 0xcb, 0x90, 0x68, 0x1a, 0x26, 0x92, 0x85, 0xf9, 0xf8, 0x42, + 0x66, 0xf9, 0xb1, 0xc5, 0x3e, 0xd0, 0x62, 0x2f, 0x62, 0x17, 0x8b, 0x15, 0x82, 0x28, 0xbc, 0x9b, + 0x80, 0x99, 0x21, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0xb5, 0x31, 0xa3, 0xb0, 0x90, 0x56, 0xc8, 0xff, + 0x92, 0x0c, 0x13, 0x1d, 0x4d, 0xbf, 0xad, 0xb5, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0xe5, 0x01, + 0x1a, 0xa8, 0x83, 0xac, 0x06, 0xb2, 0xf4, 0x23, 0x39, 0x3e, 0x1f, 0x5f, 0x48, 0x2b, 0x21, 0x89, + 0xf4, 0x34, 0x4c, 0x77, 0xba, 0x07, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x98, 0x8f, 0x2f, 0x24, 0x15, + 0x91, 0x2a, 0xd6, 0x03, 0xe3, 0x27, 0x60, 0xea, 0x2e, 0xd2, 0x6e, 0x87, 0x4d, 0x33, 0xc4, 0x34, + 0x87, 0xc5, 0x21, 0xc3, 0x0a, 0x64, 0xdb, 0xc8, 0x75, 0xb5, 0x16, 0x52, 0xbd, 0xa3, 0x0e, 0x92, + 0x13, 0xe4, 0xe9, 0xe7, 0x07, 0x9e, 0xbe, 0xff, 0xc9, 0x33, 0x0c, 0xb5, 0x77, 0xd4, 0x41, 0x52, + 0x09, 0xd2, 0xc8, 0xea, 0xb6, 0x29, 0x43, 0xf2, 0x84, 0xf8, 0x55, 0xad, 0x6e, 0xbb, 0x9f, 0x25, + 0x85, 0x61, 0x8c, 0x62, 0xc2, 0x45, 0xce, 0x1d, 0x43, 0x47, 0xf2, 0x38, 0x21, 0x78, 0x62, 0x80, + 0xa0, 0x4e, 0xf5, 0xfd, 0x1c, 0x1c, 0x27, 0x55, 0x20, 0x8d, 0x5e, 0xf2, 0x90, 0xe5, 0x1a, 0xb6, + 0x25, 0x4f, 0x10, 0x92, 0xc7, 0x87, 0xac, 0x22, 0x32, 0x1b, 0xfd, 0x14, 0x01, 0x4e, 0xba, 0x08, + 0x13, 0x76, 0xc7, 0x33, 0x6c, 0xcb, 0x95, 0x53, 0xf3, 0xc2, 0x42, 0x66, 0xf9, 0x63, 0x43, 0x13, + 0xa1, 0x46, 0x6d, 0x14, 0x6e, 0x2c, 0x6d, 0x82, 0xe8, 0xda, 0x5d, 0x47, 0x47, 0xaa, 0x6e, 0x37, + 0x90, 0x6a, 0x58, 0x4d, 0x5b, 0x4e, 0x13, 0x82, 0xf3, 0x83, 0x0f, 0x42, 0x0c, 0x2b, 0x76, 0x03, + 0x6d, 0x5a, 0x4d, 0x5b, 0xc9, 0xb9, 0x3d, 0xd7, 0xd2, 0x19, 0x18, 0x77, 0x8f, 0x2c, 0x4f, 0x7b, + 0x49, 0xce, 0x92, 0x0c, 0x61, 0x57, 0x85, 0xff, 0x4e, 0xc2, 0xd4, 0x28, 0x29, 0x76, 0x15, 0x92, + 0x4d, 0xfc, 0x94, 0x72, 0xec, 0x34, 0x31, 0xa0, 0x98, 0xde, 0x20, 0x8e, 0xff, 0x88, 0x41, 0x2c, + 0x41, 0xc6, 0x42, 0xae, 0x87, 0x1a, 0x34, 0x23, 0xe2, 0x23, 0xe6, 0x14, 0x50, 0xd0, 0x60, 0x4a, + 0x25, 0x7e, 0xa4, 0x94, 0xba, 0x09, 0x53, 0xbe, 0x4b, 0xaa, 0xa3, 0x59, 0x2d, 0x9e, 0x9b, 0x4b, + 0x51, 0x9e, 0x2c, 0x56, 0x39, 0x4e, 0xc1, 0x30, 0x25, 0x87, 0x7a, 0xae, 0xa5, 0x75, 0x00, 0xdb, + 0x42, 0x76, 0x53, 0x6d, 0x20, 0xdd, 0x94, 0x53, 0x27, 0x44, 0xa9, 0x86, 0x4d, 0x06, 0xa2, 0x64, + 0x53, 0xa9, 0x6e, 0x4a, 0x57, 0x82, 0x54, 0x9b, 0x38, 0x21, 0x53, 0xb6, 0xe9, 0x26, 0x1b, 0xc8, + 0xb6, 0x7d, 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb0, 0x27, 0x4b, 0x13, 0x27, 0x16, 0x23, 0x9f, + 0x4c, 0x61, 0x30, 0xfa, 0x60, 0x93, 0x4e, 0xf8, 0x52, 0x7a, 0x14, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, + 0x48, 0x15, 0xca, 0x72, 0xe1, 0x8e, 0xd6, 0x46, 0x73, 0x97, 0x21, 0xd7, 0x1b, 0x1e, 0x69, 0x16, + 0x92, 0xae, 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x90, + 0x2a, 0x97, 0x54, 0xf0, 0xbf, 0x73, 0x97, 0x60, 0xb2, 0xe7, 0xf6, 0xa3, 0x02, 0x0b, 0x5f, 0x1c, + 0x87, 0xd9, 0x61, 0x39, 0x37, 0x34, 0xfd, 0xcf, 0xc0, 0xb8, 0xd5, 0x6d, 0x1f, 0x20, 0x47, 0x8e, + 0x13, 0x06, 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x07, 0xc8, 0x94, 0x13, 0xf3, 0xc2, 0x42, 0x6e, + 0xf9, 0xe9, 0x91, 0xb2, 0x7a, 0x71, 0x0b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, + 0x30, 0xc3, 0x53, 0xa3, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x18, 0xd2, 0xf8, 0x2f, 0x8d, + 0xed, 0x38, 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x1c, 0xa4, 0x48, 0x9a, 0x35, 0x10, 0x6f, + 0x0d, 0xfe, 0x35, 0x5e, 0x98, 0x06, 0x6a, 0x6a, 0x5d, 0xd3, 0x53, 0xef, 0x68, 0x66, 0x17, 0x91, + 0x84, 0x49, 0x2b, 0x59, 0x26, 0xfc, 0x0c, 0x96, 0x49, 0xe7, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x1a, + 0xe8, 0x25, 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x4d, 0x2c, 0xc1, 0xb7, 0xbf, 0xe5, 0xda, 0x16, + 0x5f, 0x5a, 0x72, 0x0b, 0x2c, 0x20, 0xb7, 0xbf, 0xd4, 0x5f, 0xf8, 0x1e, 0x19, 0xfe, 0x78, 0xfd, + 0xb9, 0x58, 0xf8, 0x56, 0x0c, 0x12, 0x64, 0xbf, 0x4d, 0x41, 0x66, 0xef, 0xc5, 0xdd, 0xaa, 0xba, + 0x5e, 0xdb, 0x2f, 0x6f, 0x55, 0x45, 0x41, 0xca, 0x01, 0x10, 0xc1, 0xb5, 0xad, 0x5a, 0x69, 0x4f, + 0x8c, 0xf9, 0xd7, 0x9b, 0x3b, 0x7b, 0x17, 0x57, 0xc5, 0xb8, 0x0f, 0xd8, 0xa7, 0x82, 0x44, 0xd8, + 0x60, 0x65, 0x59, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0xc1, 0xe6, 0xcd, 0xea, 0xfa, 0xc5, 0x55, 0x71, + 0xbc, 0x57, 0xb2, 0xb2, 0x2c, 0x4e, 0x48, 0x93, 0x90, 0x26, 0x92, 0x72, 0xad, 0xb6, 0x25, 0xa6, + 0x7c, 0xce, 0xfa, 0x9e, 0xb2, 0xb9, 0xb3, 0x21, 0xa6, 0x7d, 0xce, 0x0d, 0xa5, 0xb6, 0xbf, 0x2b, + 0x82, 0xcf, 0xb0, 0x5d, 0xad, 0xd7, 0x4b, 0x1b, 0x55, 0x31, 0xe3, 0x5b, 0x94, 0x5f, 0xdc, 0xab, + 0xd6, 0xc5, 0x6c, 0x8f, 0x5b, 0x2b, 0xcb, 0xe2, 0xa4, 0x7f, 0x8b, 0xea, 0xce, 0xfe, 0xb6, 0x98, + 0x93, 0xa6, 0x61, 0x92, 0xde, 0x82, 0x3b, 0x31, 0xd5, 0x27, 0xba, 0xb8, 0x2a, 0x8a, 0x81, 0x23, + 0x94, 0x65, 0xba, 0x47, 0x70, 0x71, 0x55, 0x94, 0x0a, 0x15, 0x48, 0x92, 0xec, 0x92, 0x24, 0xc8, + 0x6d, 0x95, 0xca, 0xd5, 0x2d, 0xb5, 0xb6, 0xbb, 0xb7, 0x59, 0xdb, 0x29, 0x6d, 0x89, 0x42, 0x20, + 0x53, 0xaa, 0x9f, 0xde, 0xdf, 0x54, 0xaa, 0xeb, 0x62, 0x2c, 0x2c, 0xdb, 0xad, 0x96, 0xf6, 0xaa, + 0xeb, 0x62, 0xbc, 0xa0, 0xc3, 0xec, 0xb0, 0x3a, 0x33, 0x74, 0x67, 0x84, 0x96, 0x38, 0x76, 0xc2, + 0x12, 0x13, 0xae, 0x81, 0x25, 0xfe, 0x8a, 0x00, 0x33, 0x43, 0x6a, 0xed, 0xd0, 0x9b, 0x3c, 0x0f, + 0x49, 0x9a, 0xa2, 0xb4, 0xfb, 0x3c, 0x39, 0xb4, 0x68, 0x93, 0x84, 0x1d, 0xe8, 0x40, 0x04, 0x17, + 0xee, 0xc0, 0xf1, 0x13, 0x3a, 0x30, 0xa6, 0x18, 0x70, 0xf2, 0x15, 0x01, 0xe4, 0x93, 0xb8, 0x23, + 0x0a, 0x45, 0xac, 0xa7, 0x50, 0x5c, 0xed, 0x77, 0xe0, 0xc2, 0xc9, 0xcf, 0x30, 0xe0, 0xc5, 0x1b, + 0x02, 0x9c, 0x19, 0x3e, 0xa8, 0x0c, 0xf5, 0xe1, 0x53, 0x30, 0xde, 0x46, 0xde, 0xa1, 0xcd, 0x9b, + 0xf5, 0xc7, 0x87, 0xb4, 0x00, 0xac, 0xee, 0x8f, 0x15, 0x43, 0x85, 0x7b, 0x48, 0xfc, 0xa4, 0x69, + 0x83, 0x7a, 0x33, 0xe0, 0xe9, 0xe7, 0x63, 0xf0, 0xd0, 0x50, 0xf2, 0xa1, 0x8e, 0x3e, 0x02, 0x60, + 0x58, 0x9d, 0xae, 0x47, 0x1b, 0x32, 0xad, 0x4f, 0x69, 0x22, 0x21, 0x7b, 0x1f, 0xd7, 0x9e, 0xae, + 0xe7, 0xeb, 0xe3, 0x44, 0x0f, 0x54, 0x44, 0x0c, 0x2e, 0x07, 0x8e, 0x26, 0x88, 0xa3, 0xf9, 0x13, + 0x9e, 0x74, 0xa0, 0xd7, 0x3d, 0x0b, 0xa2, 0x6e, 0x1a, 0xc8, 0xf2, 0x54, 0xd7, 0x73, 0x90, 0xd6, + 0x36, 0xac, 0x16, 0x29, 0xc0, 0xa9, 0x62, 0xb2, 0xa9, 0x99, 0x2e, 0x52, 0xa6, 0xa8, 0xba, 0xce, + 0xb5, 0x18, 0x41, 0xba, 0x8c, 0x13, 0x42, 0x8c, 0xf7, 0x20, 0xa8, 0xda, 0x47, 0x14, 0xbe, 0x3e, + 0x01, 0x99, 0xd0, 0x58, 0x27, 0x5d, 0x80, 0xec, 0x2d, 0xed, 0x8e, 0xa6, 0xf2, 0x51, 0x9d, 0x46, + 0x22, 0x83, 0x65, 0xbb, 0x6c, 0x5c, 0x7f, 0x16, 0x66, 0x89, 0x89, 0xdd, 0xf5, 0x90, 0xa3, 0xea, + 0xa6, 0xe6, 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0x2a, 0x5c, 0x23, 0xad, + 0xc1, 0x0c, 0x41, 0xb4, 0xbb, 0xa6, 0x67, 0x74, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, + 0xdf, 0xb3, 0x69, 0x6c, 0xb1, 0xcd, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x0e, 0x8f, 0x10, 0x58, 0x0b, + 0x59, 0xc8, 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0x75, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa1, 0x1e, 0x6a, + 0xee, 0xa1, 0x3c, 0x8b, 0x09, 0xca, 0x31, 0x59, 0x50, 0xce, 0x61, 0xc3, 0x0d, 0x66, 0x57, 0x25, + 0x66, 0x25, 0xab, 0x71, 0x5d, 0x73, 0x0f, 0xa5, 0x22, 0x9c, 0x21, 0x2c, 0xae, 0xe7, 0x18, 0x56, + 0x4b, 0xd5, 0x0f, 0x91, 0x7e, 0x5b, 0xed, 0x7a, 0xcd, 0xcb, 0xf2, 0xc3, 0xe1, 0xfb, 0x13, 0x0f, + 0xeb, 0xc4, 0xa6, 0x82, 0x4d, 0xf6, 0xbd, 0xe6, 0x65, 0xa9, 0x0e, 0x59, 0xbc, 0x18, 0x6d, 0xe3, + 0x65, 0xa4, 0x36, 0x6d, 0x87, 0x74, 0x96, 0xdc, 0x90, 0x9d, 0x1d, 0x8a, 0xe0, 0x62, 0x8d, 0x01, + 0xb6, 0xed, 0x06, 0x2a, 0x26, 0xeb, 0xbb, 0xd5, 0xea, 0xba, 0x92, 0xe1, 0x2c, 0xd7, 0x6c, 0x07, + 0x27, 0x54, 0xcb, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb2, 0x79, 0x78, 0xd7, 0x60, 0x46, 0xd7, + 0xe9, 0x33, 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x7b, 0x82, 0xa5, 0xeb, 0x1b, 0xd4, 0x80, + 0xe5, 0xb8, 0x2b, 0x5d, 0x81, 0x87, 0x82, 0x60, 0x85, 0x81, 0xd3, 0x03, 0x4f, 0xd9, 0x0f, 0x5d, + 0x83, 0x99, 0xce, 0xd1, 0x20, 0x50, 0xea, 0xb9, 0x63, 0xe7, 0xa8, 0x1f, 0xf6, 0x38, 0x79, 0x6d, + 0x73, 0x90, 0xae, 0x79, 0xa8, 0x21, 0x9f, 0x0d, 0x5b, 0x87, 0x14, 0xd2, 0x12, 0x88, 0xba, 0xae, + 0x22, 0x4b, 0x3b, 0x30, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x7c, 0xd8, 0x38, 0xa7, 0xeb, + 0x55, 0xa2, 0x2d, 0x11, 0xa5, 0xf4, 0x14, 0x4c, 0xdb, 0x07, 0xb7, 0x74, 0x9a, 0x59, 0x6a, 0xc7, + 0x41, 0x4d, 0xe3, 0x25, 0xf9, 0x31, 0x12, 0xa6, 0x29, 0xac, 0x20, 0x79, 0xb5, 0x4b, 0xc4, 0xd2, + 0x93, 0x20, 0xea, 0xee, 0xa1, 0xe6, 0x74, 0x48, 0x6b, 0x77, 0x3b, 0x9a, 0x8e, 0xe4, 0xc7, 0xa9, + 0x29, 0x95, 0xef, 0x70, 0x31, 0xce, 0x6c, 0xf7, 0xae, 0xd1, 0xf4, 0x38, 0xe3, 0x13, 0x34, 0xb3, + 0x89, 0x8c, 0xb1, 0xdd, 0x84, 0xd9, 0xae, 0x65, 0x58, 0x1e, 0x72, 0x3a, 0x0e, 0xc2, 0x43, 0x3c, + 0xdd, 0x89, 0xf2, 0x3f, 0x4d, 0x9c, 0x30, 0x86, 0xef, 0x87, 0xad, 0x69, 0x02, 0x28, 0x33, 0xdd, + 0x41, 0x61, 0xa1, 0x08, 0xd9, 0x70, 0x5e, 0x48, 0x69, 0xa0, 0x99, 0x21, 0x0a, 0xb8, 0xc7, 0x56, + 0x6a, 0xeb, 0xb8, 0x3b, 0x7e, 0xb6, 0x2a, 0xc6, 0x70, 0x97, 0xde, 0xda, 0xdc, 0xab, 0xaa, 0xca, + 0xfe, 0xce, 0xde, 0xe6, 0x76, 0x55, 0x8c, 0x3f, 0x95, 0x4e, 0x7d, 0x7f, 0x42, 0xbc, 0x77, 0xef, + 0xde, 0xbd, 0x58, 0xe1, 0x3b, 0x31, 0xc8, 0xf5, 0x4e, 0xc6, 0xd2, 0xff, 0x83, 0xb3, 0xfc, 0x35, + 0xd6, 0x45, 0x9e, 0x7a, 0xd7, 0x70, 0x48, 0xaa, 0xb6, 0x35, 0x3a, 0x5b, 0xfa, 0x51, 0x9e, 0x65, + 0x56, 0x75, 0xe4, 0xbd, 0x60, 0x38, 0x38, 0x11, 0xdb, 0x9a, 0x27, 0x6d, 0xc1, 0x79, 0xcb, 0x56, + 0x5d, 0x4f, 0xb3, 0x1a, 0x9a, 0xd3, 0x50, 0x83, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xe4, 0xba, 0x36, + 0x6d, 0x11, 0x3e, 0xcb, 0xc7, 0x2c, 0xbb, 0xce, 0x8c, 0x83, 0xda, 0x59, 0x62, 0xa6, 0x7d, 0x19, + 0x11, 0x3f, 0x29, 0x23, 0x1e, 0x86, 0x74, 0x5b, 0xeb, 0xa8, 0xc8, 0xf2, 0x9c, 0x23, 0x32, 0xcf, + 0xa5, 0x94, 0x54, 0x5b, 0xeb, 0x54, 0xf1, 0xf5, 0x47, 0xb7, 0x06, 0xe1, 0x38, 0xfe, 0x63, 0x1c, + 0xb2, 0xe1, 0x99, 0x0e, 0x8f, 0xc8, 0x3a, 0xa9, 0xdf, 0x02, 0xd9, 0xe1, 0x8f, 0x3e, 0x70, 0x02, + 0x5c, 0xac, 0xe0, 0xc2, 0x5e, 0x1c, 0xa7, 0x93, 0x96, 0x42, 0x91, 0xb8, 0xa9, 0xe2, 0x3d, 0x8d, + 0xe8, 0xfc, 0x9e, 0x52, 0xd8, 0x95, 0xb4, 0x01, 0xe3, 0xb7, 0x5c, 0xc2, 0x3d, 0x4e, 0xb8, 0x1f, + 0x7b, 0x30, 0xf7, 0x8d, 0x3a, 0x21, 0x4f, 0xdf, 0xa8, 0xab, 0x3b, 0x35, 0x65, 0xbb, 0xb4, 0xa5, + 0x30, 0xb8, 0x74, 0x0e, 0x12, 0xa6, 0xf6, 0xf2, 0x51, 0x6f, 0x0b, 0x20, 0xa2, 0x51, 0x03, 0x7f, + 0x0e, 0x12, 0x77, 0x91, 0x76, 0xbb, 0xb7, 0xf0, 0x12, 0xd1, 0x47, 0x98, 0xfa, 0x4b, 0x90, 0x24, + 0xf1, 0x92, 0x00, 0x58, 0xc4, 0xc4, 0x31, 0x29, 0x05, 0x89, 0x4a, 0x4d, 0xc1, 0xe9, 0x2f, 0x42, + 0x96, 0x4a, 0xd5, 0xdd, 0xcd, 0x6a, 0xa5, 0x2a, 0xc6, 0x0a, 0x6b, 0x30, 0x4e, 0x83, 0x80, 0xb7, + 0x86, 0x1f, 0x06, 0x71, 0x8c, 0x5d, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0xb7, 0xcb, 0x55, 0x45, 0x8c, + 0x85, 0x97, 0xd7, 0x85, 0x6c, 0x78, 0x9c, 0xfb, 0xf1, 0xe4, 0xd4, 0x5f, 0x09, 0x90, 0x09, 0x8d, + 0x67, 0x78, 0x30, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x29, 0x80, 0x88, + 0x4a, 0x58, 0x32, 0xea, 0xa2, 0xfd, 0x58, 0x9c, 0x7f, 0x5d, 0x00, 0xb1, 0x7f, 0xb4, 0xeb, 0x73, + 0x50, 0xf8, 0x89, 0x3a, 0xf8, 0x9a, 0x00, 0xb9, 0xde, 0x79, 0xae, 0xcf, 0xbd, 0x0b, 0x3f, 0x51, + 0xf7, 0xde, 0x89, 0xc1, 0x64, 0xcf, 0x14, 0x37, 0xaa, 0x77, 0x9f, 0x83, 0x69, 0xa3, 0x81, 0xda, + 0x1d, 0xdb, 0x43, 0x96, 0x7e, 0xa4, 0x9a, 0xe8, 0x0e, 0x32, 0xe5, 0x02, 0x29, 0x14, 0x4b, 0x0f, + 0x9e, 0x13, 0x17, 0x37, 0x03, 0xdc, 0x16, 0x86, 0x15, 0x67, 0x36, 0xd7, 0xab, 0xdb, 0xbb, 0xb5, + 0xbd, 0xea, 0x4e, 0xe5, 0x45, 0x75, 0x7f, 0xe7, 0xff, 0xef, 0xd4, 0x5e, 0xd8, 0x51, 0x44, 0xa3, + 0xcf, 0xec, 0x23, 0xdc, 0xea, 0xbb, 0x20, 0xf6, 0x3b, 0x25, 0x9d, 0x85, 0x61, 0x6e, 0x89, 0x63, + 0xd2, 0x0c, 0x4c, 0xed, 0xd4, 0xd4, 0xfa, 0xe6, 0x7a, 0x55, 0xad, 0x5e, 0xbb, 0x56, 0xad, 0xec, + 0xd5, 0xe9, 0x8b, 0xb3, 0x6f, 0xbd, 0xd7, 0xbb, 0xa9, 0x5f, 0x8d, 0xc3, 0xcc, 0x10, 0x4f, 0xa4, + 0x12, 0x9b, 0xd9, 0xe9, 0x6b, 0xc4, 0x33, 0xa3, 0x78, 0xbf, 0x88, 0xa7, 0x82, 0x5d, 0xcd, 0xf1, + 0xd8, 0x88, 0xff, 0x24, 0xe0, 0x28, 0x59, 0x9e, 0xd1, 0x34, 0x90, 0xc3, 0xce, 0x19, 0xe8, 0x20, + 0x3f, 0x15, 0xc8, 0xe9, 0x51, 0xc3, 0x27, 0x40, 0xea, 0xd8, 0xae, 0xe1, 0x19, 0x77, 0x90, 0x6a, + 0x58, 0xfc, 0x50, 0x02, 0x0f, 0xf6, 0x09, 0x45, 0xe4, 0x9a, 0x4d, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, + 0xd2, 0xfa, 0xac, 0x71, 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0x17, 0x20, 0xdb, 0xb0, 0xbb, + 0x78, 0x4c, 0xa2, 0x76, 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, + 0x21, 0x59, 0x25, 0x43, 0x65, 0xd4, 0xe4, 0x09, 0x98, 0xd2, 0x5a, 0x2d, 0x07, 0x93, 0x73, 0x22, + 0x3a, 0x99, 0xe7, 0x7c, 0x31, 0x31, 0x9c, 0xbb, 0x01, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, + 0xd4, 0x0e, 0x3d, 0x93, 0x8a, 0x2d, 0xa4, 0x95, 0x94, 0xc5, 0x95, 0x17, 0x20, 0x6b, 0xb8, 0x6a, + 0x70, 0x38, 0x1a, 0x9b, 0x8f, 0x2d, 0xa4, 0x94, 0x8c, 0xe1, 0xfa, 0xa7, 0x61, 0x85, 0x37, 0x62, + 0x90, 0xeb, 0x3d, 0xdc, 0x95, 0xd6, 0x21, 0x65, 0xda, 0xba, 0x46, 0x52, 0x8b, 0xfe, 0xb2, 0xb0, + 0x10, 0x71, 0x1e, 0xbc, 0xb8, 0xc5, 0xec, 0x15, 0x1f, 0x39, 0xf7, 0x77, 0x02, 0xa4, 0xb8, 0x58, + 0x3a, 0x03, 0x89, 0x8e, 0xe6, 0x1d, 0x12, 0xba, 0x64, 0x39, 0x26, 0x0a, 0x0a, 0xb9, 0xc6, 0x72, + 0xb7, 0xa3, 0x59, 0x24, 0x05, 0x98, 0x1c, 0x5f, 0xe3, 0x75, 0x35, 0x91, 0xd6, 0x20, 0x63, 0xbf, + 0xdd, 0x6e, 0x23, 0xcb, 0x73, 0xf9, 0xba, 0x32, 0x79, 0x85, 0x89, 0xa5, 0xa7, 0x61, 0xda, 0x73, + 0x34, 0xc3, 0xec, 0xb1, 0x4d, 0x10, 0x5b, 0x91, 0x2b, 0x7c, 0xe3, 0x22, 0x9c, 0xe3, 0xbc, 0x0d, + 0xe4, 0x69, 0xfa, 0x21, 0x6a, 0x04, 0xa0, 0x71, 0x72, 0x72, 0x78, 0x96, 0x19, 0xac, 0x33, 0x3d, + 0xc7, 0x16, 0xbe, 0x2b, 0xc0, 0x34, 0x7f, 0x51, 0x69, 0xf8, 0xc1, 0xda, 0x06, 0xd0, 0x2c, 0xcb, + 0xf6, 0xc2, 0xe1, 0x1a, 0x4c, 0xe5, 0x01, 0xdc, 0x62, 0xc9, 0x07, 0x29, 0x21, 0x82, 0xb9, 0x36, + 0x40, 0xa0, 0x39, 0x31, 0x6c, 0xe7, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, + 0xa8, 0x08, 0xbf, 0xd1, 0x48, 0xb3, 0x90, 0x3c, 0x40, 0x2d, 0xc3, 0x62, 0xe7, 0x89, 0xf4, 0x82, + 0x9f, 0x52, 0x26, 0xfc, 0x53, 0xca, 0xf2, 0x4d, 0x98, 0xd1, 0xed, 0x76, 0xbf, 0xbb, 0x65, 0xb1, + 0xef, 0xf5, 0xda, 0xbd, 0x2e, 0x7c, 0x16, 0x82, 0x11, 0xf3, 0x2b, 0xb1, 0xf8, 0xc6, 0x6e, 0xf9, + 0x6b, 0xb1, 0xb9, 0x0d, 0x8a, 0xdb, 0xe5, 0x8f, 0xa9, 0xa0, 0xa6, 0x89, 0x74, 0xec, 0x3a, 0xfc, + 0xe0, 0xe3, 0xf0, 0x4c, 0xcb, 0xf0, 0x0e, 0xbb, 0x07, 0x8b, 0xba, 0xdd, 0x5e, 0x6a, 0xd9, 0x2d, + 0x3b, 0xf8, 0xb9, 0x0b, 0x5f, 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x4b, 0xe7, 0x22, + 0x7f, 0x1f, 0x2b, 0xee, 0xc0, 0x0c, 0x33, 0x56, 0xc9, 0x99, 0x3b, 0x7d, 0x35, 0x90, 0x1e, 0x78, + 0xee, 0x22, 0x7f, 0xf3, 0x5d, 0xd2, 0xab, 0x95, 0x69, 0x06, 0xc5, 0x3a, 0xfa, 0x02, 0x51, 0x54, + 0xe0, 0xa1, 0x1e, 0x3e, 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x1d, 0xc6, 0x38, 0x13, 0x62, 0xac, + 0x33, 0x68, 0xb1, 0x02, 0x93, 0xa7, 0xe1, 0xfa, 0x1b, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x0d, 0x98, + 0x22, 0x24, 0x7a, 0xd7, 0xf5, 0xec, 0x36, 0x29, 0x7a, 0x0f, 0xa6, 0xf9, 0xdb, 0x77, 0xe9, 0x46, + 0xc9, 0x61, 0x58, 0xc5, 0x47, 0x15, 0x8b, 0x40, 0x7e, 0x66, 0x68, 0x20, 0xdd, 0x8c, 0x60, 0x78, + 0x93, 0x39, 0xe2, 0xdb, 0x17, 0x3f, 0x03, 0xb3, 0xf8, 0x7f, 0x52, 0x93, 0xc2, 0x9e, 0x44, 0x9f, + 0x32, 0xc9, 0xdf, 0x7d, 0x85, 0xee, 0xc5, 0x19, 0x9f, 0x20, 0xe4, 0x53, 0x68, 0x15, 0x5b, 0xc8, + 0xf3, 0x90, 0xe3, 0xaa, 0x9a, 0x39, 0xcc, 0xbd, 0xd0, 0x6b, 0xba, 0xfc, 0xa5, 0xf7, 0x7a, 0x57, + 0x71, 0x83, 0x22, 0x4b, 0xa6, 0x59, 0xdc, 0x87, 0xb3, 0x43, 0xb2, 0x62, 0x04, 0xce, 0x57, 0x19, + 0xe7, 0xec, 0x40, 0x66, 0x60, 0xda, 0x5d, 0xe0, 0x72, 0x7f, 0x2d, 0x47, 0xe0, 0xfc, 0x2d, 0xc6, + 0x29, 0x31, 0x2c, 0x5f, 0x52, 0xcc, 0x78, 0x03, 0xa6, 0xef, 0x20, 0xe7, 0xc0, 0x76, 0xd9, 0xd1, + 0xc8, 0x08, 0x74, 0xaf, 0x31, 0xba, 0x29, 0x06, 0x24, 0x67, 0x25, 0x98, 0xeb, 0x0a, 0xa4, 0x9a, + 0x9a, 0x8e, 0x46, 0xa0, 0xf8, 0x32, 0xa3, 0x98, 0xc0, 0xf6, 0x18, 0x5a, 0x82, 0x6c, 0xcb, 0x66, + 0x6d, 0x29, 0x1a, 0xfe, 0x3a, 0x83, 0x67, 0x38, 0x86, 0x51, 0x74, 0xec, 0x4e, 0xd7, 0xc4, 0x3d, + 0x2b, 0x9a, 0xe2, 0xb7, 0x39, 0x05, 0xc7, 0x30, 0x8a, 0x53, 0x84, 0xf5, 0x77, 0x38, 0x85, 0x1b, + 0x8a, 0xe7, 0xf3, 0x90, 0xb1, 0x2d, 0xf3, 0xc8, 0xb6, 0x46, 0x71, 0xe2, 0x77, 0x19, 0x03, 0x30, + 0x08, 0x26, 0xb8, 0x0a, 0xe9, 0x51, 0x17, 0xe2, 0xf7, 0xde, 0xe3, 0xdb, 0x83, 0xaf, 0xc0, 0x06, + 0x4c, 0xf1, 0x02, 0x65, 0xd8, 0xd6, 0x08, 0x14, 0xbf, 0xcf, 0x28, 0x72, 0x21, 0x18, 0x7b, 0x0c, + 0x0f, 0xb9, 0x5e, 0x0b, 0x8d, 0x42, 0xf2, 0x06, 0x7f, 0x0c, 0x06, 0x61, 0xa1, 0x3c, 0x40, 0x96, + 0x7e, 0x38, 0x1a, 0xc3, 0x57, 0x79, 0x28, 0x39, 0x06, 0x53, 0x54, 0x60, 0xb2, 0xad, 0x39, 0xee, + 0xa1, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc0, 0x38, 0xb2, 0x3e, 0x88, 0x45, 0xa4, 0x6b, 0x9d, 0x86, + 0xe6, 0x6b, 0x3c, 0x22, 0x21, 0x18, 0xdb, 0x7a, 0xae, 0x47, 0x0e, 0xa0, 0x4e, 0xc3, 0xf6, 0x75, + 0xbe, 0xf5, 0x28, 0x76, 0x3b, 0xcc, 0x78, 0x15, 0xd2, 0xae, 0xf1, 0xf2, 0x48, 0x34, 0x7f, 0xc8, + 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x45, 0x38, 0x37, 0xb4, 0x4d, 0x8c, 0x40, 0xf6, 0x47, 0x8c, 0xec, + 0xcc, 0x90, 0x56, 0xc1, 0x4a, 0xc2, 0x69, 0x29, 0xff, 0x98, 0x97, 0x04, 0xd4, 0xc7, 0xb5, 0x8b, + 0x5f, 0x14, 0x5c, 0xad, 0x79, 0xba, 0xa8, 0xfd, 0x09, 0x8f, 0x1a, 0xc5, 0xf6, 0x44, 0x6d, 0x0f, + 0xce, 0x30, 0xc6, 0xd3, 0xad, 0xeb, 0x37, 0x78, 0x61, 0xa5, 0xe8, 0xfd, 0xde, 0xd5, 0xfd, 0x29, + 0x98, 0xf3, 0xc3, 0xc9, 0x27, 0x52, 0x57, 0x6d, 0x6b, 0x9d, 0x11, 0x98, 0xbf, 0xc9, 0x98, 0x79, + 0xc5, 0xf7, 0x47, 0x5a, 0x77, 0x5b, 0xeb, 0x60, 0xf2, 0x9b, 0x20, 0x73, 0xf2, 0xae, 0xe5, 0x20, + 0xdd, 0x6e, 0x59, 0xc6, 0xcb, 0xa8, 0x31, 0x02, 0xf5, 0x9f, 0xf6, 0x2d, 0xd5, 0x7e, 0x08, 0x8e, + 0x99, 0x37, 0x41, 0xf4, 0x67, 0x15, 0xd5, 0x68, 0x77, 0x6c, 0xc7, 0x8b, 0x60, 0xfc, 0x33, 0xbe, + 0x52, 0x3e, 0x6e, 0x93, 0xc0, 0x8a, 0x55, 0xc8, 0x91, 0xcb, 0x51, 0x53, 0xf2, 0xcf, 0x19, 0xd1, + 0x64, 0x80, 0x62, 0x85, 0x43, 0xb7, 0xdb, 0x1d, 0xcd, 0x19, 0xa5, 0xfe, 0xfd, 0x05, 0x2f, 0x1c, + 0x0c, 0xc2, 0x0a, 0x87, 0x77, 0xd4, 0x41, 0xb8, 0xdb, 0x8f, 0xc0, 0xf0, 0x2d, 0x5e, 0x38, 0x38, + 0x86, 0x51, 0xf0, 0x81, 0x61, 0x04, 0x8a, 0xbf, 0xe4, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x1d, 0x34, + 0x5a, 0x07, 0xb5, 0x0c, 0xd7, 0x73, 0xe8, 0x1c, 0xfc, 0x60, 0xaa, 0x6f, 0xbf, 0xd7, 0x3b, 0x84, + 0x29, 0x21, 0x68, 0xf1, 0x06, 0x4c, 0xf5, 0x8d, 0x18, 0x52, 0xd4, 0x37, 0x0b, 0xf2, 0x4f, 0x7f, + 0xc0, 0x8a, 0x51, 0xef, 0x84, 0x51, 0xdc, 0xc2, 0xeb, 0xde, 0x3b, 0x07, 0x44, 0x93, 0xbd, 0xf2, + 0x81, 0xbf, 0xf4, 0x3d, 0x63, 0x40, 0xf1, 0x1a, 0x4c, 0xf6, 0xcc, 0x00, 0xd1, 0x54, 0x3f, 0xcb, + 0xa8, 0xb2, 0xe1, 0x11, 0xa0, 0xb8, 0x06, 0x09, 0xdc, 0xcf, 0xa3, 0xe1, 0x3f, 0xc7, 0xe0, 0xc4, + 0xbc, 0xf8, 0x49, 0x48, 0xf1, 0x3e, 0x1e, 0x0d, 0xfd, 0x79, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, + 0x78, 0x34, 0xfc, 0x17, 0x38, 0x9c, 0x43, 0x30, 0x7c, 0xf4, 0x10, 0xfe, 0xf5, 0x2f, 0x26, 0x58, + 0x1d, 0xe6, 0xb1, 0xbb, 0x0a, 0x13, 0xac, 0x79, 0x47, 0xa3, 0x3f, 0xcf, 0x6e, 0xce, 0x11, 0xc5, + 0x4b, 0x90, 0x1c, 0x31, 0xe0, 0xbf, 0xc4, 0xa0, 0xd4, 0xbe, 0x58, 0x81, 0x4c, 0xa8, 0x61, 0x47, + 0xc3, 0x7f, 0x99, 0xc1, 0xc3, 0x28, 0xec, 0x3a, 0x6b, 0xd8, 0xd1, 0x04, 0xbf, 0xc2, 0x5d, 0x67, + 0x08, 0x1c, 0x36, 0xde, 0xab, 0xa3, 0xd1, 0xbf, 0xca, 0xa3, 0xce, 0x21, 0xc5, 0xe7, 0x21, 0xed, + 0xd7, 0xdf, 0x68, 0xfc, 0xaf, 0x31, 0x7c, 0x80, 0xc1, 0x11, 0x08, 0xd5, 0xff, 0x68, 0x8a, 0x2f, + 0xf0, 0x08, 0x84, 0x50, 0x78, 0x1b, 0xf5, 0xf7, 0xf4, 0x68, 0xa6, 0x5f, 0xe7, 0xdb, 0xa8, 0xaf, + 0xa5, 0xe3, 0xd5, 0x24, 0x65, 0x30, 0x9a, 0xe2, 0x37, 0xf8, 0x6a, 0x12, 0x7b, 0xec, 0x46, 0x7f, + 0x93, 0x8c, 0xe6, 0xf8, 0x4d, 0xee, 0x46, 0x5f, 0x8f, 0x2c, 0xee, 0x82, 0x34, 0xd8, 0x20, 0xa3, + 0xf9, 0xbe, 0xc8, 0xf8, 0xa6, 0x07, 0xfa, 0x63, 0xf1, 0x05, 0x38, 0x33, 0xbc, 0x39, 0x46, 0xb3, + 0x7e, 0xe9, 0x83, 0xbe, 0xd7, 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, + 0x69, 0x5f, 0xfd, 0xa0, 0xb7, 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, + 0xd7, 0x18, 0x57, 0x08, 0x84, 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, + 0x78, 0x6b, 0xf0, 0x6e, 0x14, 0x8d, 0x7e, 0x9d, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x85, 0x94, 0xd5, + 0x35, 0x4d, 0x9c, 0x5b, 0xd2, 0x83, 0x3f, 0x23, 0x92, 0xff, 0xf9, 0x43, 0x06, 0xe6, 0x80, 0xe2, + 0x1a, 0x24, 0x51, 0xfb, 0x00, 0x35, 0xa2, 0x90, 0xff, 0xf2, 0x21, 0xaf, 0x27, 0xd8, 0xba, 0xf8, + 0x3c, 0x00, 0x7d, 0x99, 0x26, 0xbf, 0x12, 0x45, 0x60, 0xff, 0xf5, 0x43, 0xf6, 0x85, 0x42, 0x00, + 0x09, 0x08, 0xe8, 0xf7, 0x0e, 0x0f, 0x26, 0x78, 0xaf, 0x97, 0x80, 0xbc, 0x80, 0x5f, 0x81, 0x89, + 0x5b, 0xae, 0x6d, 0x79, 0x5a, 0x2b, 0x0a, 0xfd, 0x6f, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0xda, 0xb6, + 0x83, 0x3c, 0xad, 0xe5, 0x46, 0x61, 0xff, 0x9d, 0x61, 0x7d, 0x00, 0x06, 0xeb, 0x9a, 0xeb, 0x8d, + 0xf2, 0xdc, 0xff, 0xc1, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x47, 0x51, 0xd8, 0xf7, + 0xb9, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x64, + 0xe0, 0x00, 0x81, 0xef, 0xec, 0x7a, 0x0d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb1, 0x95, 0xe6, 0xf6, + 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd1, 0xe8, 0xb2, 0x89, 0x26, 0x02, 0xfe, 0x83, 0x0f, 0xfd, 0x97, + 0x5c, 0x1f, 0x53, 0xbe, 0x30, 0xfc, 0xb0, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x1e, 0xd3, 0xc1, 0xcf, + 0xa4, 0xa1, 0xa0, 0xdb, 0xed, 0x03, 0xdb, 0x5d, 0xa2, 0x05, 0x25, 0x54, 0x8c, 0x96, 0x6c, 0x8b, + 0xa1, 0xa4, 0xb8, 0x6d, 0xa1, 0xb9, 0xd3, 0x1d, 0xcf, 0x15, 0xce, 0x41, 0xb2, 0xde, 0x3d, 0x38, + 0x38, 0x92, 0x44, 0x88, 0xbb, 0xdd, 0x03, 0xf6, 0x7d, 0x09, 0xfe, 0xb7, 0xf0, 0x76, 0x1c, 0x26, + 0x4b, 0xa6, 0xb9, 0x77, 0xd4, 0x41, 0x6e, 0xcd, 0x42, 0xb5, 0xa6, 0x24, 0xc3, 0x38, 0x79, 0x9e, + 0xe7, 0x88, 0x99, 0x70, 0x7d, 0x4c, 0x61, 0xd7, 0xbe, 0x66, 0x99, 0x9c, 0x5a, 0xc6, 0x7c, 0xcd, + 0xb2, 0xaf, 0x59, 0xa1, 0x87, 0x96, 0xbe, 0x66, 0xc5, 0xd7, 0xac, 0x92, 0xa3, 0xcb, 0xb8, 0xaf, + 0x59, 0xf5, 0x35, 0x6b, 0xe4, 0x68, 0x7e, 0xd2, 0xd7, 0xac, 0xf9, 0x9a, 0x8b, 0xe4, 0x30, 0x3e, + 0xe1, 0x6b, 0x2e, 0xfa, 0x9a, 0x4b, 0xe4, 0x0c, 0x7e, 0xda, 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, + 0xb9, 0xbb, 0xe4, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0x43, 0x92, 0x09, 0x5f, 0x73, 0x45, 0x9a, + 0x83, 0x09, 0xfa, 0x64, 0xcf, 0x92, 0x1f, 0x67, 0xa7, 0xae, 0x8f, 0x29, 0x5c, 0x10, 0xe8, 0x9e, + 0x23, 0x1f, 0x8b, 0x8c, 0x07, 0xba, 0xe7, 0x02, 0xdd, 0x32, 0xf9, 0x64, 0x5a, 0x0c, 0x74, 0xcb, + 0x81, 0x6e, 0x45, 0x9e, 0xc4, 0x69, 0x10, 0xe8, 0x56, 0x02, 0xdd, 0xaa, 0x9c, 0xc3, 0x2b, 0x10, + 0xe8, 0x56, 0x03, 0xdd, 0x9a, 0x3c, 0x35, 0x2f, 0x2c, 0x64, 0x03, 0xdd, 0x9a, 0xf4, 0x0c, 0x64, + 0xdc, 0xee, 0x81, 0xca, 0xbe, 0x25, 0x20, 0x1f, 0xa5, 0x64, 0x96, 0x61, 0x11, 0xe7, 0x04, 0x59, + 0xd6, 0xeb, 0x63, 0x0a, 0xb8, 0xdd, 0x03, 0x56, 0x27, 0xcb, 0x59, 0x20, 0xc7, 0x0a, 0x2a, 0xf9, + 0x14, 0xb3, 0xf0, 0x96, 0x00, 0xe9, 0xbd, 0xbb, 0x36, 0xf9, 0x69, 0xd6, 0xfd, 0x3f, 0x5e, 0x5c, + 0xee, 0xf4, 0xca, 0x2a, 0xf9, 0xf5, 0x2c, 0x7d, 0x5d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, + 0x92, 0x07, 0xf2, 0x75, 0x6b, 0xd2, 0x12, 0x64, 0x43, 0x0f, 0xb4, 0x4c, 0xbe, 0x33, 0xe9, 0x7d, + 0x22, 0x41, 0xc9, 0x04, 0x4f, 0xb4, 0x5c, 0x4e, 0x02, 0x4e, 0x7b, 0xfc, 0xc7, 0xbb, 0x6b, 0x17, + 0xbe, 0x10, 0x83, 0x0c, 0x3d, 0x89, 0x24, 0x4f, 0x85, 0x6f, 0x45, 0x27, 0xf3, 0x23, 0xe6, 0xc6, + 0x98, 0xc2, 0x05, 0x92, 0x02, 0x40, 0x4d, 0x71, 0x86, 0x53, 0x4f, 0xca, 0xcf, 0xfe, 0xc3, 0xdb, + 0xe7, 0x3f, 0x71, 0xe2, 0x0e, 0xc2, 0xb1, 0x5b, 0xa2, 0x75, 0x76, 0x71, 0xdf, 0xb0, 0xbc, 0xe7, + 0x96, 0x2f, 0xe3, 0x00, 0x07, 0x2c, 0xd2, 0x3e, 0xa4, 0x2a, 0x9a, 0x4b, 0x3e, 0x34, 0x23, 0xae, + 0x27, 0xca, 0x97, 0xfe, 0xe7, 0xed, 0xf3, 0x2b, 0x11, 0x8c, 0xac, 0x04, 0x2e, 0x6e, 0x1f, 0x61, + 0xd6, 0x8b, 0xab, 0x18, 0x7e, 0x7d, 0x4c, 0xf1, 0xa9, 0xa4, 0x65, 0xee, 0xea, 0x8e, 0xd6, 0xa6, + 0x1f, 0xd4, 0xc4, 0xcb, 0xe2, 0xf1, 0xdb, 0xe7, 0xb3, 0xdb, 0x47, 0x81, 0x3c, 0x70, 0x05, 0x5f, + 0x95, 0x53, 0x30, 0x4e, 0x5d, 0x2d, 0xaf, 0xbf, 0x79, 0x3f, 0x3f, 0xf6, 0xd6, 0xfd, 0xfc, 0xd8, + 0xdf, 0xdf, 0xcf, 0x8f, 0xbd, 0x73, 0x3f, 0x2f, 0xbc, 0x7f, 0x3f, 0x2f, 0xfc, 0xf0, 0x7e, 0x5e, + 0xb8, 0x77, 0x9c, 0x17, 0xbe, 0x7a, 0x9c, 0x17, 0xbe, 0x71, 0x9c, 0x17, 0xbe, 0x7d, 0x9c, 0x17, + 0xde, 0x3c, 0xce, 0x8f, 0xbd, 0x75, 0x9c, 0x1f, 0x7b, 0xe7, 0x38, 0x2f, 0x7c, 0xff, 0x38, 0x3f, + 0xf6, 0xfe, 0x71, 0x5e, 0xf8, 0xe1, 0x71, 0x7e, 0xec, 0xde, 0xf7, 0xf2, 0xc2, 0xff, 0x06, 0x00, + 0x00, 0xff, 0xff, 0xf7, 0x0c, 0xfe, 0x1d, 0xe1, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3406,27 +3426,10 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} if r.Intn(10) != 0 { - v1 := randStringOne(r) + v1 := string(randStringOne(r)) this.Sub = &v1 } if !easy && r.Intn(10) != 0 { @@ -3569,7 +3572,7 @@ func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Fie } func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { this := &AllTypesOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { @@ -3638,7 +3641,7 @@ func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { } func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { this := &TwoOneofs_Field34{} - this.Field34 = randStringOne(r) + this.Field34 = string(randStringOne(r)) return this } func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { @@ -3676,7 +3679,7 @@ func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { this := &CustomOneof_Stringy{} - this.Stringy = randStringOne(r) + this.Stringy = string(randStringOne(r)) return this } func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { @@ -3725,7 +3728,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3733,43 +3736,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v6)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -4322,8 +4325,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4335,7 +4338,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4363,7 +4366,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4378,12 +4381,12 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Sub = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -4393,7 +4396,7 @@ func (m *Subby) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4403,8 +4406,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *AllTypesOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4416,7 +4419,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4440,7 +4443,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field1{v} case 2: @@ -4451,7 +4454,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field2{v} case 3: @@ -4466,7 +4469,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4486,7 +4489,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4506,7 +4509,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4526,7 +4529,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4546,7 +4549,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4567,7 +4570,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4584,7 +4587,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: @@ -4595,7 +4598,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: @@ -4606,7 +4609,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: @@ -4617,7 +4620,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: @@ -4632,7 +4635,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4653,7 +4656,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4668,7 +4671,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &AllTypesOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -4682,7 +4685,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4697,7 +4700,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &AllTypesOneOf_Field15{v} iNdEx = postIndex case 16: @@ -4712,7 +4715,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4727,14 +4730,14 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &AllTypesOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -4744,7 +4747,7 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4754,8 +4757,8 @@ func (m *AllTypesOneOf) Unmarshal(data []byte) error { } return nil } -func (m *TwoOneofs) Unmarshal(data []byte) error { - l := len(data) +func (m *TwoOneofs) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4767,7 +4770,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4791,7 +4794,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.One = &TwoOneofs_Field1{v} case 2: @@ -4802,7 +4805,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.One = &TwoOneofs_Field2{v} case 3: @@ -4817,7 +4820,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -4837,7 +4840,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4852,7 +4855,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Two = &TwoOneofs_Field34{string(data[iNdEx:postIndex])} + m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -4866,7 +4869,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4881,7 +4884,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.Two = &TwoOneofs_Field35{v} iNdEx = postIndex case 36: @@ -4896,7 +4899,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4911,14 +4914,14 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Two = &TwoOneofs_SubMessage2{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -4928,7 +4931,7 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -4938,8 +4941,8 @@ func (m *TwoOneofs) Unmarshal(data []byte) error { } return nil } -func (m *CustomOneof) Unmarshal(data []byte) error { - l := len(data) +func (m *CustomOneof) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4951,7 +4954,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4979,7 +4982,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4994,7 +4997,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Custom = &CustomOneof_Stringy{string(data[iNdEx:postIndex])} + m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 35: if wireType != 2 { @@ -5008,7 +5011,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5024,7 +5027,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } var vv github_com_gogo_protobuf_test_custom.Uint128 v := &vv - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.Custom = &CustomOneof_CustomType{*v} @@ -5041,7 +5044,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift if b < 0x80 { @@ -5061,7 +5064,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5071,7 +5074,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { m.Custom = &CustomOneof_MyCustomName{v} default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5081,7 +5084,7 @@ func (m *CustomOneof) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -5091,8 +5094,8 @@ func (m *CustomOneof) Unmarshal(data []byte) error { } return nil } -func skipOneUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipOneUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -5103,7 +5106,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5121,7 +5124,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -5138,7 +5141,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5161,7 +5164,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5172,7 +5175,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOneUnsafe(data[start:]) + next, err := skipOneUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -5196,43 +5199,46 @@ var ( ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 582 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x6f, 0xd3, 0x40, - 0x14, 0x00, 0xf0, 0x3a, 0xff, 0x73, 0x49, 0x68, 0xf0, 0xf4, 0xe8, 0x90, 0x20, 0x03, 0x12, 0x03, - 0x8d, 0x13, 0xff, 0x49, 0xd2, 0x11, 0x17, 0x21, 0x96, 0x10, 0x29, 0x6d, 0xe7, 0xca, 0x0e, 0x4e, - 0x1a, 0x29, 0xf1, 0x55, 0x39, 0x5b, 0x55, 0xb6, 0x7e, 0x06, 0x3e, 0x05, 0x23, 0x23, 0x1f, 0xa1, - 0x63, 0x47, 0xc4, 0x10, 0xb5, 0x61, 0x61, 0xec, 0x58, 0x31, 0xf1, 0xee, 0x9c, 0xde, 0x21, 0x21, - 0xc4, 0xc2, 0xf0, 0x74, 0x77, 0xf9, 0xdd, 0xbd, 0xbc, 0xe7, 0xb3, 0x89, 0x31, 0xa6, 0x8b, 0x80, - 0x32, 0x33, 0x89, 0x98, 0x3f, 0x09, 0x93, 0x68, 0xe1, 0x2f, 0xd9, 0x99, 0x3f, 0x0f, 0x97, 0x26, - 0x8d, 0xc2, 0xd6, 0xf9, 0x92, 0xc6, 0x54, 0xcf, 0xe2, 0x74, 0x6f, 0x7f, 0x3a, 0x8b, 0xcf, 0x92, - 0xa0, 0x85, 0xfb, 0xcd, 0x29, 0x9d, 0x52, 0x53, 0x58, 0x90, 0x4c, 0xc4, 0x4a, 0x2c, 0xc4, 0x2c, - 0x3d, 0x63, 0x3c, 0x21, 0xf9, 0xa3, 0x24, 0x08, 0x56, 0x7a, 0x9d, 0x64, 0x59, 0x12, 0x80, 0xf6, - 0x54, 0x7b, 0x59, 0x1e, 0xf1, 0xa9, 0xb1, 0xce, 0x92, 0xda, 0xeb, 0xf9, 0xfc, 0x78, 0x75, 0x1e, - 0xb2, 0x61, 0x14, 0x0e, 0x27, 0x3a, 0x90, 0xc2, 0xdb, 0x59, 0x38, 0xff, 0xd0, 0x11, 0xdb, 0xb4, - 0x77, 0x3b, 0xa3, 0xc2, 0x44, 0xac, 0xa5, 0x58, 0x90, 0x41, 0xc9, 0x48, 0xb1, 0xa4, 0xd8, 0x90, - 0x45, 0xc9, 0x4b, 0xb1, 0xa5, 0x38, 0x90, 0x43, 0xc9, 0x4a, 0x71, 0xa4, 0xb8, 0x90, 0x47, 0xa9, - 0x49, 0x71, 0xa5, 0x74, 0xa1, 0x80, 0x92, 0x93, 0xd2, 0x95, 0xd2, 0x83, 0x22, 0xca, 0x63, 0x29, - 0x3d, 0x29, 0x7d, 0x28, 0xa1, 0xe8, 0x52, 0xfa, 0x52, 0x0e, 0xa0, 0x8c, 0x52, 0x94, 0x72, 0xa0, - 0xef, 0x91, 0x62, 0xda, 0x69, 0x1b, 0x08, 0xd2, 0x2e, 0x52, 0x31, 0x6d, 0xb5, 0xad, 0xac, 0x03, - 0x15, 0xb4, 0x82, 0xb2, 0x8e, 0x32, 0x0b, 0xaa, 0x68, 0x75, 0x65, 0x96, 0x32, 0x1b, 0x6a, 0x68, - 0x25, 0x65, 0xb6, 0x32, 0x07, 0x1e, 0xf1, 0x1b, 0x50, 0xe6, 0x28, 0x73, 0x61, 0x17, 0xad, 0xaa, - 0xcc, 0xd5, 0xf7, 0x49, 0x05, 0xaf, 0xea, 0x74, 0x11, 0x32, 0xe6, 0x4f, 0x43, 0xa8, 0xa3, 0x57, - 0x2c, 0xd2, 0xe2, 0xef, 0x84, 0xb8, 0x56, 0xdc, 0x4b, 0x70, 0xc3, 0x20, 0x75, 0xaf, 0x4a, 0x48, - 0x1c, 0xb2, 0xf8, 0x14, 0x9d, 0x4e, 0x8c, 0x6b, 0x8d, 0x94, 0x8f, 0x2f, 0xe8, 0x90, 0x2f, 0xd8, - 0x7f, 0xbe, 0xdc, 0x87, 0xa2, 0x6d, 0x07, 0x0c, 0xd1, 0x90, 0xb6, 0x2d, 0xda, 0x56, 0x0d, 0xd9, - 0x2e, 0x3c, 0x13, 0x0d, 0x49, 0x73, 0x75, 0x93, 0x54, 0x7f, 0x6b, 0xc8, 0x82, 0xe7, 0x7f, 0x74, - 0xa4, 0x8d, 0x2a, 0xaa, 0x23, 0xcb, 0xcb, 0x13, 0xfe, 0xda, 0xf3, 0x21, 0xbe, 0xa0, 0xc6, 0xc7, - 0x0c, 0xa9, 0x1c, 0x26, 0x2c, 0xa6, 0x0b, 0xd1, 0x15, 0xff, 0xab, 0xa3, 0x78, 0x39, 0x8b, 0xa6, - 0xab, 0x6d, 0x19, 0xf8, 0xec, 0x58, 0xfa, 0x83, 0x3e, 0x22, 0x24, 0xdd, 0xca, 0xdf, 0xf0, 0xb4, - 0x12, 0xaf, 0xfd, 0x6d, 0xdd, 0x7c, 0xf5, 0xd7, 0x2f, 0x88, 0x3f, 0x3b, 0x73, 0x2c, 0xce, 0xb4, - 0x4e, 0x66, 0x51, 0xdc, 0xb1, 0xfa, 0xfc, 0x01, 0x8f, 0x65, 0x16, 0xfd, 0x84, 0x94, 0x0e, 0x7d, - 0x16, 0x8b, 0x8c, 0xbc, 0xf4, 0x9c, 0xd7, 0xfb, 0xb9, 0x6e, 0xda, 0xff, 0xc8, 0x88, 0x27, 0x62, - 0x3c, 0xd1, 0x1a, 0xac, 0x78, 0xd6, 0xae, 0xc3, 0x8f, 0x63, 0xe2, 0xd2, 0x78, 0x9b, 0x4a, 0xb7, - 0x1e, 0x4a, 0x7d, 0xef, 0x2f, 0x42, 0x78, 0xc1, 0x3f, 0x17, 0xaf, 0xbe, 0x59, 0x37, 0xab, 0x83, - 0x95, 0xfa, 0x5d, 0x95, 0xc2, 0x57, 0x5e, 0x89, 0x14, 0xd2, 0x95, 0xf7, 0xe6, 0xea, 0xb6, 0xb1, - 0x73, 0x8d, 0xf1, 0x15, 0xe3, 0xe6, 0xb6, 0xa1, 0xdd, 0x61, 0xdc, 0x63, 0x5c, 0x6e, 0x1a, 0xda, - 0x27, 0x8c, 0xcf, 0x18, 0x5f, 0x30, 0xae, 0x36, 0xb8, 0x0f, 0xe3, 0x06, 0xe7, 0x3f, 0x70, 0xbc, - 0xc3, 0xf1, 0x1e, 0xc7, 0xcb, 0xef, 0x0d, 0xed, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x6e, - 0xc5, 0x53, 0x82, 0x04, 0x00, 0x00, + // 607 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0xdb, 0x3c, + 0x10, 0x00, 0x70, 0x5e, 0x1c, 0x3b, 0x0e, 0xed, 0x7c, 0xf1, 0xa7, 0x89, 0xcd, 0xc0, 0x10, 0x6e, + 0x0b, 0x70, 0x68, 0xec, 0x58, 0xb6, 0xf3, 0x67, 0xac, 0x52, 0x14, 0x5e, 0xd2, 0x00, 0x4a, 0x32, + 0x07, 0x52, 0x4a, 0x3b, 0x06, 0x6c, 0x31, 0x30, 0x25, 0x04, 0xde, 0xf2, 0x0c, 0x7d, 0x8a, 0x8e, + 0x1d, 0xfb, 0x08, 0x19, 0x3d, 0x16, 0x1d, 0x8c, 0x58, 0x5d, 0x3a, 0x66, 0x0c, 0x3a, 0x15, 0x94, + 0x62, 0xb2, 0x40, 0x51, 0x74, 0xe9, 0x64, 0xdd, 0xfd, 0xc4, 0xf3, 0x9d, 0x48, 0xe2, 0xfa, 0xa5, + 0x1c, 0x87, 0x52, 0x35, 0x93, 0x48, 0x05, 0x7d, 0x91, 0x44, 0xe3, 0x60, 0xa2, 0xae, 0x82, 0x91, + 0x98, 0x34, 0x65, 0x24, 0x1a, 0xd7, 0x13, 0x19, 0x4b, 0xa7, 0x20, 0x23, 0xb1, 0xb5, 0x33, 0x18, + 0xc6, 0x57, 0x49, 0xd8, 0xb8, 0x94, 0xe3, 0xe6, 0x40, 0x0e, 0x64, 0x33, 0xb3, 0x30, 0xe9, 0x67, + 0x51, 0x16, 0x64, 0x4f, 0xf9, 0x9a, 0xfa, 0x33, 0x5c, 0x3c, 0x4d, 0xc2, 0x70, 0xea, 0xd4, 0x70, + 0x41, 0x25, 0x21, 0x01, 0x06, 0x7c, 0xdd, 0xd7, 0x8f, 0xf5, 0x79, 0x01, 0x6f, 0xbc, 0x1e, 0x8d, + 0xce, 0xa6, 0xd7, 0x42, 0x9d, 0x44, 0xe2, 0xa4, 0xef, 0x10, 0x5c, 0x7a, 0x3b, 0x14, 0xa3, 0xf7, + 0xad, 0xec, 0x35, 0xe8, 0x21, 0xff, 0x29, 0x36, 0xe2, 0x92, 0x15, 0x06, 0x7c, 0xc5, 0x88, 0x6b, + 0xa4, 0x4d, 0x0a, 0x0c, 0x78, 0xd1, 0x48, 0xdb, 0x48, 0x87, 0xac, 0x32, 0xe0, 0x05, 0x23, 0x1d, + 0x23, 0x5d, 0x52, 0x64, 0xc0, 0x37, 0x8c, 0x74, 0x8d, 0xec, 0x91, 0x12, 0x03, 0xbe, 0x6a, 0x64, + 0xcf, 0xc8, 0x3e, 0x59, 0x63, 0xc0, 0xff, 0x37, 0xb2, 0x6f, 0xe4, 0x80, 0x94, 0x19, 0x70, 0xc7, + 0xc8, 0x81, 0x91, 0x43, 0xb2, 0xce, 0x80, 0xaf, 0x19, 0x39, 0x74, 0xb6, 0xf0, 0x5a, 0x3e, 0xd9, + 0x2e, 0xc1, 0x0c, 0xf8, 0x66, 0x0f, 0xf9, 0xcb, 0x84, 0xb5, 0x16, 0xa9, 0x30, 0xe0, 0x25, 0x6b, + 0x2d, 0x6b, 0x2e, 0xa9, 0x32, 0xe0, 0x35, 0x6b, 0xae, 0xb5, 0x36, 0xd9, 0x60, 0xc0, 0xcb, 0xd6, + 0xda, 0xd6, 0x3a, 0xe4, 0x3f, 0xbd, 0x03, 0xd6, 0x3a, 0xd6, 0xba, 0x64, 0x93, 0x01, 0xaf, 0x5a, + 0xeb, 0x3a, 0x3b, 0xb8, 0xa2, 0x92, 0xf0, 0x62, 0x2c, 0x94, 0x0a, 0x06, 0x82, 0xd4, 0x18, 0xf0, + 0x8a, 0x8b, 0x1b, 0xfa, 0x4c, 0x64, 0xdb, 0xda, 0x43, 0x3e, 0x56, 0x49, 0x78, 0x9c, 0xbb, 0x57, + 0xc5, 0x38, 0x16, 0x2a, 0xbe, 0x90, 0x91, 0x90, 0xfd, 0xfa, 0x0c, 0xf0, 0xfa, 0xd9, 0x8d, 0x3c, + 0xd1, 0x81, 0xfa, 0xc7, 0x9b, 0xbb, 0x6c, 0xba, 0xdd, 0x21, 0xf5, 0x6c, 0x20, 0xf0, 0x97, 0x09, + 0x6b, 0x5d, 0xf2, 0x3c, 0x1b, 0xc8, 0x58, 0xd7, 0x69, 0xe2, 0xea, 0x2f, 0x03, 0xb9, 0xe4, 0xc5, + 0x6f, 0x13, 0x81, 0x5f, 0xb1, 0x13, 0xb9, 0x5e, 0x11, 0xeb, 0x63, 0xaf, 0x7f, 0xe2, 0x1b, 0x59, + 0xff, 0xb0, 0x82, 0x2b, 0x47, 0x89, 0x8a, 0xe5, 0x38, 0x9b, 0x4a, 0xff, 0xd5, 0x69, 0x3c, 0x19, + 0x46, 0x83, 0xe9, 0x53, 0x1b, 0xc8, 0x5f, 0x26, 0x1c, 0x1f, 0xe3, 0xfc, 0x55, 0x7d, 0xc2, 0xf3, + 0x4e, 0xbc, 0xdd, 0xaf, 0xf3, 0xed, 0x57, 0x7f, 0xbc, 0x41, 0xfa, 0xdb, 0x35, 0x2f, 0xb3, 0x35, + 0x8d, 0xf3, 0x61, 0x14, 0xb7, 0xdc, 0x03, 0xfd, 0x81, 0x6d, 0x15, 0xe7, 0x1c, 0x97, 0x8f, 0x02, + 0x15, 0x67, 0x15, 0x75, 0xeb, 0xab, 0xde, 0xfe, 0x8f, 0xf9, 0x76, 0xfb, 0x2f, 0x15, 0x03, 0x15, + 0xc7, 0xd3, 0x6b, 0xd1, 0x38, 0x9e, 0xea, 0xaa, 0x7b, 0x1d, 0xbd, 0xbc, 0x87, 0x7c, 0x53, 0xca, + 0x71, 0x97, 0xad, 0xbe, 0x0b, 0xc6, 0x82, 0xbc, 0xd4, 0xd7, 0xc5, 0xab, 0xa5, 0xf3, 0xed, 0xea, + 0xf1, 0xd4, 0xe6, 0x6d, 0x2b, 0x3a, 0xf2, 0xca, 0xb8, 0x94, 0xb7, 0xea, 0xbd, 0xb9, 0x5b, 0x50, + 0x34, 0x5b, 0x50, 0xf4, 0x65, 0x41, 0xd1, 0xfd, 0x82, 0xc2, 0xc3, 0x82, 0xc2, 0xe3, 0x82, 0xc2, + 0x6d, 0x4a, 0xe1, 0x63, 0x4a, 0xe1, 0x53, 0x4a, 0xe1, 0x73, 0x4a, 0xe1, 0x2e, 0xa5, 0x68, 0x96, + 0x52, 0x74, 0x9f, 0x52, 0xf8, 0x9e, 0x52, 0xf4, 0x90, 0x52, 0x78, 0x4c, 0x29, 0xba, 0xfd, 0x46, + 0xe1, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x46, 0xe3, 0x69, 0xc1, 0x82, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto index cef2b7f2..a27916a0 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go index 9ea42ecf..18110e33 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go @@ -19,6 +19,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -33,21 +34,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -67,21 +72,25 @@ func TestSubbyProto(t *testing.T) { } func TestAllTypesOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -101,21 +110,25 @@ func TestAllTypesOneOfProto(t *testing.T) { } func TestTwoOneofsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -135,21 +148,25 @@ func TestTwoOneofsProto(t *testing.T) { } func TestCustomOneofProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -256,9 +273,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,9 +290,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -290,9 +307,9 @@ func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,9 +324,9 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -324,9 +341,9 @@ func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -341,9 +358,9 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -358,9 +375,9 @@ func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -375,9 +392,9 @@ func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -392,14 +409,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -407,14 +428,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -422,14 +447,18 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -437,14 +466,18 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -508,13 +541,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -530,13 +563,13 @@ func TestAllTypesOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -552,13 +585,13 @@ func TestTwoOneofsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -574,13 +607,13 @@ func TestCustomOneofSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/one.proto index 0c88ac86..66d4b449 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/Makefile b/vendor/github.com/gogo/protobuf/test/oneof3/Makefile index 70da5300..b42ef60e 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/Makefile +++ b/vendor/github.com/gogo/protobuf/test/oneof3/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -28,4 +28,5 @@ regenerate: go install github.com/gogo/protobuf/protoc-gen-combo - protoc-gen-combo --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. one.proto \ No newline at end of file + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-gen-combo --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. one.proto diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go index c9f2d417..1d870cba 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -39,7 +37,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -83,49 +83,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -551,229 +551,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3543 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x1b, 0xe7, - 0xb5, 0x36, 0xc5, 0x45, 0xe4, 0xa1, 0x44, 0x51, 0x23, 0xd9, 0xa6, 0x95, 0xc4, 0x8e, 0x95, 0xcd, - 0x71, 0x6e, 0x24, 0x5b, 0xde, 0x99, 0x7b, 0x13, 0x68, 0xa1, 0x15, 0x19, 0xda, 0xee, 0x50, 0x4a, - 0x9c, 0xdc, 0x87, 0xc1, 0x90, 0xfc, 0x45, 0xd1, 0x1e, 0xce, 0xf0, 0x72, 0x86, 0x8e, 0x95, 0xa7, - 0x5c, 0xe4, 0xde, 0x5b, 0x04, 0x45, 0xd7, 0x14, 0x68, 0xf6, 0x36, 0x01, 0xda, 0xa4, 0xe9, 0x96, - 0x74, 0x43, 0xd1, 0xa7, 0x02, 0x45, 0xda, 0x3c, 0x15, 0x69, 0x9f, 0xfa, 0xd0, 0x87, 0x24, 0x0d, - 0xd0, 0xb4, 0x4d, 0xdb, 0x14, 0x30, 0xd0, 0x00, 0x79, 0xe9, 0xf9, 0xb7, 0x59, 0x48, 0x4a, 0x43, - 0x05, 0x48, 0x53, 0x01, 0x84, 0x38, 0xe7, 0x9c, 0xef, 0x9b, 0x7f, 0xce, 0x7f, 0xfe, 0x73, 0xce, - 0xff, 0x0f, 0xe1, 0x67, 0xc7, 0xe1, 0xc6, 0xaa, 0x65, 0x55, 0x0d, 0x32, 0xd9, 0x68, 0x5a, 0x8e, - 0x55, 0x6a, 0x6d, 0x4c, 0x56, 0x88, 0x5d, 0x6e, 0xd6, 0x1a, 0x8e, 0xd5, 0x9c, 0x60, 0x32, 0x65, - 0x88, 0x5b, 0x4c, 0x48, 0x8b, 0xf1, 0x25, 0x18, 0x3e, 0x5f, 0x33, 0xc8, 0x9c, 0x6b, 0x58, 0x24, - 0x8e, 0x72, 0x16, 0x62, 0x1b, 0x28, 0xcc, 0x45, 0x6e, 0x8c, 0x1e, 0x49, 0x4f, 0xdd, 0x3c, 0xd1, - 0x06, 0x9a, 0x08, 0x22, 0x56, 0xa9, 0x58, 0x65, 0x88, 0xf1, 0x77, 0x62, 0x30, 0xd2, 0x45, 0xab, - 0x28, 0x10, 0x33, 0xf5, 0x3a, 0x65, 0x8c, 0x1c, 0x49, 0xa9, 0xec, 0xbb, 0x92, 0x83, 0xfe, 0x86, - 0x5e, 0xbe, 0xac, 0x57, 0x49, 0xae, 0x8f, 0x89, 0xe5, 0xa5, 0x72, 0x10, 0xa0, 0x42, 0x1a, 0xc4, - 0xac, 0x10, 0xb3, 0xbc, 0x95, 0x8b, 0xe2, 0x28, 0x52, 0xaa, 0x4f, 0xa2, 0xdc, 0x01, 0xc3, 0x8d, - 0x56, 0xc9, 0xa8, 0x95, 0x35, 0x9f, 0x19, 0xa0, 0x59, 0x5c, 0xcd, 0x72, 0xc5, 0x9c, 0x67, 0x7c, - 0x1b, 0x0c, 0x3d, 0x44, 0xf4, 0xcb, 0x7e, 0xd3, 0x34, 0x33, 0xcd, 0x50, 0xb1, 0xcf, 0x70, 0x16, - 0x06, 0xea, 0xc4, 0xb6, 0x71, 0x00, 0x9a, 0xb3, 0xd5, 0x20, 0xb9, 0x18, 0x7b, 0xfa, 0x1b, 0x3b, - 0x9e, 0xbe, 0xfd, 0xc9, 0xd3, 0x02, 0xb5, 0x86, 0x20, 0x65, 0x1a, 0x52, 0xc4, 0x6c, 0xd5, 0x39, - 0x43, 0x7c, 0x1b, 0xff, 0x15, 0xd0, 0xa2, 0x9d, 0x25, 0x49, 0x61, 0x82, 0xa2, 0xdf, 0x26, 0xcd, - 0x2b, 0xb5, 0x32, 0xc9, 0x25, 0x18, 0xc1, 0x6d, 0x1d, 0x04, 0x45, 0xae, 0x6f, 0xe7, 0x90, 0x38, - 0x7c, 0x94, 0x14, 0xb9, 0xea, 0x10, 0xd3, 0xae, 0x59, 0x66, 0xae, 0x9f, 0x91, 0xdc, 0xd2, 0x65, - 0x16, 0x89, 0x51, 0x69, 0xa7, 0xf0, 0x70, 0xca, 0x69, 0xe8, 0xb7, 0x1a, 0x0e, 0x7e, 0xb3, 0x73, - 0x49, 0x9c, 0x9f, 0xf4, 0xd4, 0xf5, 0x5d, 0x03, 0x61, 0x85, 0xdb, 0xa8, 0xd2, 0x58, 0x59, 0x80, - 0xac, 0x6d, 0xb5, 0x9a, 0x65, 0xa2, 0x95, 0xad, 0x0a, 0xd1, 0x6a, 0xe6, 0x86, 0x95, 0x4b, 0x31, - 0x82, 0x43, 0x9d, 0x0f, 0xc2, 0x0c, 0x67, 0xd1, 0x6e, 0x01, 0xcd, 0xd4, 0x8c, 0x1d, 0xb8, 0x56, - 0xf6, 0x41, 0xc2, 0xde, 0x32, 0x1d, 0xfd, 0x6a, 0x6e, 0x80, 0x45, 0x88, 0xb8, 0x1a, 0xff, 0x7b, - 0x1c, 0x86, 0x7a, 0x09, 0xb1, 0xbb, 0x20, 0xbe, 0x41, 0x9f, 0x12, 0x03, 0x6c, 0x17, 0x3e, 0xe0, - 0x98, 0xa0, 0x13, 0x13, 0x1f, 0xd1, 0x89, 0xd3, 0x90, 0x36, 0x89, 0xed, 0x90, 0x0a, 0x8f, 0x88, - 0x68, 0x8f, 0x31, 0x05, 0x1c, 0xd4, 0x19, 0x52, 0xb1, 0x8f, 0x14, 0x52, 0x17, 0x61, 0xc8, 0x1d, - 0x92, 0xd6, 0xd4, 0xcd, 0xaa, 0x8c, 0xcd, 0xc9, 0xb0, 0x91, 0x4c, 0x14, 0x24, 0x4e, 0xa5, 0x30, - 0x35, 0x43, 0x02, 0xd7, 0xca, 0x1c, 0x80, 0x65, 0x12, 0x6b, 0x03, 0x97, 0x57, 0xd9, 0xc0, 0x38, - 0xe9, 0xee, 0xa5, 0x15, 0x6a, 0xd2, 0xe1, 0x25, 0x8b, 0x4b, 0xcb, 0x86, 0x72, 0xce, 0x0b, 0xb5, - 0xfe, 0x6d, 0x22, 0x65, 0x89, 0x2f, 0xb2, 0x8e, 0x68, 0x5b, 0x87, 0x4c, 0x93, 0xd0, 0xb8, 0x47, - 0x17, 0xf3, 0x27, 0x4b, 0xb1, 0x41, 0x4c, 0x84, 0x3e, 0x99, 0x2a, 0x60, 0xfc, 0xc1, 0x06, 0x9b, - 0xfe, 0x4b, 0xe5, 0x26, 0x70, 0x05, 0x1a, 0x0b, 0x2b, 0x60, 0x59, 0x68, 0x40, 0x0a, 0x97, 0x51, - 0x36, 0x76, 0x16, 0x32, 0x41, 0xf7, 0x28, 0xa3, 0x10, 0xb7, 0x1d, 0xbd, 0xe9, 0xb0, 0x28, 0x8c, - 0xab, 0xfc, 0x42, 0xc9, 0x42, 0x14, 0x93, 0x0c, 0xcb, 0x72, 0x71, 0x95, 0x7e, 0x1d, 0x3b, 0x03, - 0x83, 0x81, 0xdb, 0xf7, 0x0a, 0x1c, 0x7f, 0x22, 0x01, 0xa3, 0xdd, 0x62, 0xae, 0x6b, 0xf8, 0xe3, - 0xf2, 0xc1, 0x08, 0x28, 0x91, 0x26, 0xc6, 0x1d, 0x65, 0x10, 0x57, 0x18, 0x51, 0x71, 0x43, 0x2f, - 0x11, 0x03, 0xa3, 0x29, 0x72, 0x24, 0x33, 0x75, 0x47, 0x4f, 0x51, 0x3d, 0xb1, 0x48, 0x21, 0x2a, - 0x47, 0x2a, 0x77, 0x43, 0x4c, 0xa4, 0x38, 0xca, 0x70, 0xb4, 0x37, 0x06, 0x1a, 0x8b, 0x2a, 0xc3, - 0x29, 0xd7, 0x41, 0x8a, 0xfe, 0xe7, 0xbe, 0x4d, 0xb0, 0x31, 0x27, 0xa9, 0x80, 0xfa, 0x55, 0x19, - 0x83, 0x24, 0x0b, 0xb3, 0x0a, 0x91, 0xa5, 0xc1, 0xbd, 0xa6, 0x13, 0x53, 0x21, 0x1b, 0x7a, 0xcb, - 0x70, 0xb4, 0x2b, 0xba, 0xd1, 0x22, 0x2c, 0x60, 0x70, 0x62, 0x84, 0xf0, 0x3e, 0x2a, 0x53, 0x0e, - 0x41, 0x9a, 0x47, 0x65, 0x0d, 0x31, 0x57, 0x59, 0xf6, 0x89, 0xab, 0x3c, 0x50, 0x17, 0xa8, 0x84, - 0xde, 0xfe, 0x92, 0x8d, 0x6b, 0x41, 0x4c, 0x2d, 0xbb, 0x05, 0x15, 0xb0, 0xdb, 0x9f, 0x69, 0x4f, - 0x7c, 0x37, 0x74, 0x7f, 0xbc, 0xf6, 0x58, 0x1c, 0xff, 0x51, 0x1f, 0xc4, 0xd8, 0x7a, 0x1b, 0x82, - 0xf4, 0xda, 0x03, 0xab, 0x05, 0x6d, 0x6e, 0x65, 0x7d, 0x66, 0xb1, 0x90, 0x8d, 0x28, 0x19, 0x00, - 0x26, 0x38, 0xbf, 0xb8, 0x32, 0xbd, 0x96, 0xed, 0x73, 0xaf, 0x17, 0x96, 0xd7, 0x4e, 0x9f, 0xcc, - 0x46, 0x5d, 0xc0, 0x3a, 0x17, 0xc4, 0xfc, 0x06, 0x27, 0xa6, 0xb2, 0x71, 0x8c, 0x84, 0x01, 0x4e, - 0xb0, 0x70, 0xb1, 0x30, 0x87, 0x16, 0x89, 0xa0, 0x04, 0x6d, 0xfa, 0x95, 0x41, 0x48, 0x31, 0xc9, - 0xcc, 0xca, 0xca, 0x62, 0x36, 0xe9, 0x72, 0x16, 0xd7, 0xd4, 0x85, 0xe5, 0xf9, 0x6c, 0xca, 0xe5, - 0x9c, 0x57, 0x57, 0xd6, 0x57, 0xb3, 0xe0, 0x32, 0x2c, 0x15, 0x8a, 0xc5, 0xe9, 0xf9, 0x42, 0x36, - 0xed, 0x5a, 0xcc, 0x3c, 0xb0, 0x56, 0x28, 0x66, 0x07, 0x02, 0xc3, 0xc2, 0x5b, 0x0c, 0xba, 0xb7, - 0x28, 0x2c, 0xaf, 0x2f, 0x65, 0x33, 0xca, 0x30, 0x0c, 0xf2, 0x5b, 0xc8, 0x41, 0x0c, 0xb5, 0x89, - 0x70, 0xa4, 0x59, 0x6f, 0x20, 0x9c, 0x65, 0x38, 0x20, 0x40, 0x0b, 0x65, 0x7c, 0x16, 0xe2, 0x2c, - 0xba, 0x30, 0x8a, 0x33, 0x8b, 0xd3, 0x33, 0x85, 0x45, 0x6d, 0x65, 0x75, 0x6d, 0x61, 0x65, 0x79, - 0x7a, 0x11, 0x7d, 0xe7, 0xca, 0xd4, 0xc2, 0x7f, 0xae, 0x2f, 0xa8, 0x85, 0x39, 0xf4, 0x9f, 0x4f, - 0xb6, 0x5a, 0x98, 0x5e, 0x43, 0x59, 0x74, 0xfc, 0x28, 0x8c, 0x76, 0xcb, 0x33, 0xdd, 0x56, 0xc6, - 0xf8, 0x0b, 0x11, 0x18, 0xe9, 0x92, 0x32, 0xbb, 0xae, 0xa2, 0x7b, 0x20, 0xce, 0x23, 0x8d, 0x17, - 0x91, 0xdb, 0xbb, 0xe6, 0x5e, 0x16, 0x77, 0x1d, 0x85, 0x84, 0xe1, 0xfc, 0x85, 0x34, 0xba, 0x4d, - 0x21, 0xa5, 0x14, 0x1d, 0xe1, 0xf4, 0x68, 0x04, 0x72, 0xdb, 0x71, 0x87, 0xac, 0xf7, 0xbe, 0xc0, - 0x7a, 0xbf, 0xab, 0x7d, 0x00, 0x87, 0xb7, 0x7f, 0x86, 0x8e, 0x51, 0xbc, 0x18, 0x81, 0x7d, 0xdd, - 0xfb, 0x8d, 0xae, 0x63, 0xb8, 0x1b, 0x12, 0x75, 0xe2, 0x6c, 0x5a, 0xb2, 0xe6, 0xde, 0xda, 0x25, - 0x93, 0x53, 0x75, 0xbb, 0xaf, 0x04, 0xca, 0x5f, 0x0a, 0xa2, 0xdb, 0x35, 0x0d, 0x7c, 0x34, 0x1d, - 0x23, 0x7d, 0xac, 0x0f, 0xf6, 0x76, 0x25, 0xef, 0x3a, 0xd0, 0x1b, 0x00, 0x6a, 0x66, 0xa3, 0xe5, - 0xf0, 0xba, 0xca, 0xd3, 0x4c, 0x8a, 0x49, 0xd8, 0x12, 0xa6, 0x29, 0xa4, 0xe5, 0xb8, 0xfa, 0x28, - 0xd3, 0x03, 0x17, 0x31, 0x83, 0xb3, 0xde, 0x40, 0x63, 0x6c, 0xa0, 0x07, 0xb7, 0x79, 0xd2, 0x8e, - 0x92, 0x75, 0x0c, 0xb2, 0x65, 0xa3, 0x46, 0x4c, 0x47, 0xb3, 0x9d, 0x26, 0xd1, 0xeb, 0x35, 0xb3, - 0xca, 0xf2, 0x68, 0x32, 0x1f, 0xdf, 0xd0, 0x0d, 0x9b, 0xa8, 0x43, 0x5c, 0x5d, 0x94, 0x5a, 0x8a, - 0x60, 0xc5, 0xa2, 0xe9, 0x43, 0x24, 0x02, 0x08, 0xae, 0x76, 0x11, 0xe3, 0xbf, 0xee, 0x87, 0xb4, - 0xaf, 0x3b, 0x53, 0x0e, 0xc3, 0xc0, 0x25, 0xfd, 0x8a, 0xae, 0xc9, 0x8e, 0x9b, 0x7b, 0x22, 0x4d, - 0x65, 0xab, 0xa2, 0xeb, 0x3e, 0x06, 0xa3, 0xcc, 0x04, 0x9f, 0x11, 0x6f, 0x54, 0x36, 0x74, 0xdb, - 0x66, 0x4e, 0x4b, 0x32, 0x53, 0x85, 0xea, 0x56, 0xa8, 0x6a, 0x56, 0x6a, 0x94, 0x53, 0x30, 0xc2, - 0x10, 0x75, 0x4c, 0xbc, 0xb5, 0x86, 0x41, 0x34, 0xba, 0x07, 0xb0, 0x59, 0x3e, 0x75, 0x47, 0x36, - 0x4c, 0x2d, 0x96, 0x84, 0x01, 0x1d, 0x91, 0xad, 0xcc, 0xc3, 0x0d, 0x0c, 0x56, 0x25, 0x26, 0x69, - 0xea, 0x0e, 0xd1, 0xc8, 0x7f, 0xb7, 0xd0, 0x56, 0xd3, 0xcd, 0x8a, 0xb6, 0xa9, 0xdb, 0x9b, 0xb9, - 0x51, 0x3f, 0xc1, 0x01, 0x6a, 0x3b, 0x2f, 0x4c, 0x0b, 0xcc, 0x72, 0xda, 0xac, 0xdc, 0x8b, 0x76, - 0x4a, 0x1e, 0xf6, 0x31, 0x22, 0x74, 0x0a, 0x3e, 0xb3, 0x56, 0xde, 0x24, 0xe5, 0xcb, 0x5a, 0xcb, - 0xd9, 0x38, 0x9b, 0xbb, 0xce, 0xcf, 0xc0, 0x06, 0x59, 0x64, 0x36, 0xb3, 0xd4, 0x64, 0x1d, 0x2d, - 0x94, 0x22, 0x0c, 0xd0, 0xf9, 0xa8, 0xd7, 0x1e, 0xc6, 0x61, 0x5b, 0x4d, 0x56, 0x23, 0x32, 0x5d, - 0x16, 0xb7, 0xcf, 0x89, 0x13, 0x2b, 0x02, 0xb0, 0x84, 0xfd, 0x69, 0x3e, 0x5e, 0x5c, 0x2d, 0x14, - 0xe6, 0xd4, 0xb4, 0x64, 0x39, 0x6f, 0x35, 0x69, 0x4c, 0x55, 0x2d, 0xd7, 0xc7, 0x69, 0x1e, 0x53, - 0x55, 0x4b, 0x7a, 0x18, 0xfd, 0x55, 0x2e, 0xf3, 0xc7, 0xc6, 0xbd, 0x8b, 0x68, 0xd6, 0xed, 0x5c, - 0x36, 0xe0, 0xaf, 0x72, 0x79, 0x9e, 0x1b, 0x88, 0x30, 0xb7, 0x71, 0x49, 0xec, 0xf5, 0xfc, 0xe5, - 0x07, 0x0e, 0x77, 0x3c, 0x65, 0x3b, 0x14, 0xef, 0xd8, 0xd8, 0xea, 0x04, 0x2a, 0x81, 0x3b, 0x36, - 0xb6, 0xda, 0x61, 0xb7, 0xb0, 0x0d, 0x58, 0x93, 0x94, 0xd1, 0xe5, 0x95, 0xdc, 0x7e, 0xbf, 0xb5, - 0x4f, 0xa1, 0x4c, 0x62, 0x20, 0x97, 0x35, 0x62, 0xea, 0x25, 0x9c, 0x7b, 0xbd, 0x89, 0x5f, 0xec, - 0xdc, 0x21, 0xbf, 0x71, 0xa6, 0x5c, 0x2e, 0x30, 0xed, 0x34, 0x53, 0x2a, 0x47, 0x61, 0xd8, 0x2a, - 0x5d, 0x2a, 0xf3, 0xe0, 0xd2, 0x90, 0x67, 0xa3, 0x76, 0x35, 0x77, 0x33, 0x73, 0xd3, 0x10, 0x55, - 0xb0, 0xd0, 0x5a, 0x65, 0x62, 0xe5, 0x76, 0x24, 0xb7, 0x37, 0xf5, 0x66, 0x83, 0x15, 0x69, 0x1b, - 0x9d, 0x4a, 0x72, 0xb7, 0x70, 0x53, 0x2e, 0x5f, 0x96, 0x62, 0xa5, 0x00, 0x87, 0xe8, 0xc3, 0x9b, - 0xba, 0x69, 0x69, 0x2d, 0x9b, 0x68, 0xde, 0x10, 0xdd, 0xb9, 0xb8, 0x95, 0x0e, 0x4b, 0xbd, 0x5e, - 0x9a, 0xad, 0xdb, 0x98, 0xcc, 0xa4, 0x91, 0x9c, 0x9e, 0x8b, 0x30, 0xda, 0x32, 0x6b, 0x26, 0x86, - 0x38, 0x6a, 0x28, 0x98, 0x2f, 0xd8, 0xdc, 0xef, 0xfb, 0xb7, 0x69, 0xba, 0xd7, 0xfd, 0xd6, 0x3c, - 0x48, 0xd4, 0x91, 0x56, 0xa7, 0x70, 0x3c, 0x0f, 0x03, 0xfe, 0xd8, 0x51, 0x52, 0xc0, 0xa3, 0x07, - 0xab, 0x1b, 0x56, 0xd4, 0xd9, 0x95, 0x39, 0x5a, 0x0b, 0x1f, 0x2c, 0x60, 0x61, 0xc3, 0x9a, 0xbc, - 0xb8, 0xb0, 0x56, 0xd0, 0xd4, 0xf5, 0xe5, 0xb5, 0x85, 0xa5, 0x42, 0x36, 0x7a, 0x34, 0x95, 0x7c, - 0xb7, 0x3f, 0xfb, 0x08, 0xfe, 0xf5, 0x8d, 0xbf, 0xd6, 0x07, 0x99, 0x60, 0x1f, 0xac, 0xfc, 0x3b, - 0xec, 0x97, 0x9b, 0x56, 0x9b, 0x38, 0xda, 0x43, 0xb5, 0x26, 0x0b, 0xe7, 0xba, 0xce, 0x3b, 0x49, - 0x77, 0x26, 0x46, 0x85, 0x15, 0x6e, 0xef, 0xef, 0x47, 0x9b, 0xf3, 0xcc, 0x44, 0x59, 0x84, 0x43, - 0xe8, 0x32, 0xec, 0x35, 0xcd, 0x8a, 0xde, 0xac, 0x68, 0xde, 0x71, 0x81, 0xa6, 0x97, 0x31, 0x0e, - 0x6c, 0x8b, 0x57, 0x12, 0x97, 0xe5, 0x7a, 0xd3, 0x2a, 0x0a, 0x63, 0x2f, 0xc5, 0x4e, 0x0b, 0xd3, - 0xb6, 0xa8, 0x89, 0x6e, 0x17, 0x35, 0xd8, 0x7b, 0xd5, 0xf5, 0x06, 0x86, 0x8d, 0xd3, 0xdc, 0x62, - 0xdd, 0x5b, 0x52, 0x4d, 0xa2, 0xa0, 0x40, 0xaf, 0x3f, 0xbe, 0x39, 0xf0, 0xfb, 0xf1, 0xb7, 0x51, - 0x18, 0xf0, 0x77, 0x70, 0xb4, 0x21, 0x2e, 0xb3, 0x34, 0x1f, 0x61, 0x59, 0xe0, 0xa6, 0x1d, 0xfb, - 0xbd, 0x89, 0x59, 0x9a, 0xff, 0xf3, 0x09, 0xde, 0x57, 0xa9, 0x1c, 0x49, 0x6b, 0x2f, 0x8d, 0x35, - 0xc2, 0xbb, 0xf5, 0xa4, 0x2a, 0xae, 0x30, 0xd9, 0x25, 0x2e, 0xd9, 0x8c, 0x3b, 0xc1, 0xb8, 0x6f, - 0xde, 0x99, 0xfb, 0x42, 0x91, 0x91, 0xa7, 0x2e, 0x14, 0xb5, 0xe5, 0x15, 0x75, 0x69, 0x7a, 0x51, - 0x15, 0x70, 0xe5, 0x00, 0xc4, 0x0c, 0xfd, 0xe1, 0xad, 0x60, 0xa5, 0x60, 0xa2, 0x5e, 0x1d, 0x8f, - 0x0c, 0xf4, 0xc8, 0x23, 0x98, 0x9f, 0x99, 0xe8, 0x63, 0x0c, 0xfd, 0x49, 0x88, 0x33, 0x7f, 0x29, - 0x00, 0xc2, 0x63, 0xd9, 0x3d, 0x4a, 0x12, 0x62, 0xb3, 0x2b, 0x2a, 0x0d, 0x7f, 0x8c, 0x77, 0x2e, - 0xd5, 0x56, 0x17, 0x0a, 0xb3, 0xb8, 0x02, 0xc6, 0x4f, 0x41, 0x82, 0x3b, 0x81, 0x2e, 0x0d, 0xd7, - 0x0d, 0x08, 0xe2, 0x97, 0x82, 0x23, 0x22, 0xb5, 0xeb, 0x4b, 0x33, 0x05, 0x35, 0xdb, 0xe7, 0x9f, - 0xde, 0x9f, 0x44, 0x20, 0xed, 0x6b, 0xa8, 0x68, 0x29, 0xd7, 0x0d, 0xc3, 0x7a, 0x48, 0xd3, 0x8d, - 0x1a, 0x66, 0x28, 0x3e, 0x3f, 0xc0, 0x44, 0xd3, 0x54, 0xd2, 0xab, 0xff, 0xfe, 0x29, 0xb1, 0xf9, - 0x5c, 0x04, 0xb2, 0xed, 0xcd, 0x58, 0xdb, 0x00, 0x23, 0x9f, 0xe8, 0x00, 0x9f, 0x89, 0x40, 0x26, - 0xd8, 0x81, 0xb5, 0x0d, 0xef, 0xf0, 0x27, 0x3a, 0xbc, 0xa7, 0x23, 0x30, 0x18, 0xe8, 0xbb, 0xfe, - 0xa5, 0x46, 0xf7, 0x54, 0x14, 0x46, 0xba, 0xe0, 0x30, 0x01, 0xf1, 0x06, 0x95, 0xf7, 0xcc, 0x77, - 0xf6, 0x72, 0xaf, 0x09, 0x5a, 0xff, 0x56, 0xf5, 0xa6, 0x23, 0xfa, 0x59, 0xac, 0x97, 0xb5, 0x0a, - 0x26, 0xd5, 0xda, 0x46, 0x0d, 0xdb, 0x37, 0xbe, 0x63, 0xe1, 0x5d, 0xeb, 0x90, 0x27, 0xe7, 0xdb, - 0xe3, 0x7f, 0x03, 0xa5, 0x61, 0xd9, 0x35, 0xa7, 0x76, 0x85, 0x1e, 0xcf, 0xc9, 0x8d, 0x34, 0xed, - 0x62, 0x63, 0x6a, 0x56, 0x6a, 0x16, 0x4c, 0xc7, 0xb5, 0x36, 0x49, 0x55, 0x6f, 0xb3, 0xa6, 0x69, - 0x28, 0xaa, 0x66, 0xa5, 0xc6, 0xb5, 0xc6, 0x46, 0xb3, 0x62, 0xb5, 0x68, 0x43, 0xc0, 0xed, 0x68, - 0xd6, 0x8b, 0xa8, 0x69, 0x2e, 0x73, 0x4d, 0x44, 0xc7, 0xe6, 0xed, 0xe0, 0x07, 0xd4, 0x34, 0x97, - 0x71, 0x93, 0xdb, 0x60, 0x48, 0xaf, 0x56, 0x9b, 0x94, 0x5c, 0x12, 0xf1, 0x36, 0x34, 0xe3, 0x8a, - 0x99, 0xe1, 0xd8, 0x05, 0x48, 0x4a, 0x3f, 0xd0, 0xc2, 0x42, 0x3d, 0x81, 0x35, 0x9f, 0x9d, 0xa3, - 0xf4, 0xd1, 0x4d, 0xbd, 0x29, 0x95, 0x78, 0xd3, 0x9a, 0xad, 0x79, 0x07, 0x7a, 0x7d, 0xa8, 0x4f, - 0xaa, 0xe9, 0x9a, 0xed, 0x9e, 0xe0, 0x8c, 0xbf, 0x88, 0xe5, 0x35, 0x78, 0x20, 0xa9, 0xcc, 0x41, - 0xd2, 0xb0, 0x30, 0x3e, 0x28, 0x82, 0x9f, 0x86, 0x1f, 0x09, 0x39, 0xc3, 0x9c, 0x58, 0x14, 0xf6, - 0xaa, 0x8b, 0x1c, 0xfb, 0x65, 0x04, 0x92, 0x52, 0x8c, 0x85, 0x22, 0xd6, 0xd0, 0x9d, 0x4d, 0x46, - 0x17, 0x9f, 0xe9, 0xcb, 0x46, 0x54, 0x76, 0x4d, 0xe5, 0xd8, 0xcd, 0x98, 0x2c, 0x04, 0x84, 0x9c, - 0x5e, 0xd3, 0x79, 0x35, 0x88, 0x5e, 0x61, 0x0d, 0xae, 0x55, 0xaf, 0xe3, 0x4c, 0xda, 0x72, 0x5e, - 0x85, 0x7c, 0x56, 0x88, 0xe9, 0xb9, 0xb8, 0xd3, 0xd4, 0x6b, 0x46, 0xc0, 0x36, 0xc6, 0x6c, 0xb3, - 0x52, 0xe1, 0x1a, 0xe7, 0xe1, 0x80, 0xe4, 0xad, 0x10, 0x47, 0xc7, 0xe6, 0xb9, 0xe2, 0x81, 0x12, - 0xec, 0xb4, 0x6b, 0xbf, 0x30, 0x98, 0x13, 0x7a, 0x89, 0x9d, 0xb9, 0x88, 0x8d, 0xac, 0x55, 0x6f, - 0xf7, 0xc4, 0x4c, 0xb6, 0x6d, 0xdf, 0x65, 0xdf, 0x1b, 0x79, 0x10, 0xbc, 0xa6, 0xe2, 0x85, 0xbe, - 0xe8, 0xfc, 0xea, 0xcc, 0xcb, 0x7d, 0x63, 0xf3, 0x1c, 0xb7, 0x2a, 0x3d, 0xa8, 0x92, 0x0d, 0x83, - 0x94, 0xa9, 0x77, 0xe0, 0xf9, 0x9b, 0xe0, 0xce, 0x6a, 0xcd, 0xd9, 0x6c, 0x95, 0x26, 0xf0, 0x0e, - 0x93, 0x55, 0xab, 0x6a, 0x79, 0xaf, 0x33, 0xe8, 0x15, 0xbb, 0x60, 0xdf, 0xc4, 0x2b, 0x8d, 0x94, - 0x2b, 0x1d, 0x0b, 0x7d, 0xff, 0x91, 0x5f, 0x86, 0x11, 0x61, 0xac, 0xb1, 0x33, 0x55, 0xde, 0x82, - 0x2a, 0x3b, 0x6e, 0xc8, 0x73, 0xaf, 0xbe, 0xc3, 0x4a, 0x82, 0x3a, 0x2c, 0xa0, 0x54, 0xc7, 0x9b, - 0xd4, 0xbc, 0x0a, 0x7b, 0x03, 0x7c, 0x3c, 0x86, 0x71, 0xcb, 0xbd, 0x33, 0xe3, 0x6b, 0x82, 0x71, - 0xc4, 0xc7, 0x58, 0x14, 0xd0, 0xfc, 0x2c, 0x0c, 0xee, 0x86, 0xeb, 0xe7, 0x82, 0x6b, 0x80, 0xf8, - 0x49, 0xe6, 0x61, 0x88, 0x91, 0x94, 0x5b, 0xb6, 0x63, 0xd5, 0x59, 0x82, 0xd8, 0x99, 0xe6, 0x17, - 0xef, 0xf0, 0xa0, 0xca, 0x50, 0xd8, 0xac, 0x8b, 0xca, 0xdf, 0x07, 0xa3, 0x54, 0xc2, 0xd6, 0xa0, - 0x9f, 0x2d, 0xfc, 0x08, 0x21, 0xf7, 0xab, 0x47, 0x79, 0xec, 0x8d, 0xb8, 0x04, 0x3e, 0x5e, 0xdf, - 0x4c, 0x54, 0x89, 0x83, 0xb9, 0x0d, 0xf7, 0x7f, 0x86, 0xa1, 0xec, 0xf8, 0x8e, 0x21, 0xf7, 0xe4, - 0x7b, 0xc1, 0x99, 0x98, 0xe7, 0xc8, 0x69, 0xc3, 0xc8, 0xaf, 0xc3, 0xfe, 0x2e, 0x33, 0xdb, 0x03, - 0xe7, 0x53, 0x82, 0x73, 0xb4, 0x63, 0x76, 0x29, 0xed, 0x2a, 0x48, 0xb9, 0x3b, 0x1f, 0x3d, 0x70, - 0x3e, 0x2d, 0x38, 0x15, 0x81, 0x95, 0xd3, 0x42, 0x19, 0x2f, 0xc0, 0x30, 0xee, 0xd4, 0x4b, 0x96, - 0x2d, 0xf6, 0xbd, 0x3d, 0xd0, 0x3d, 0x23, 0xe8, 0x86, 0x04, 0x90, 0xed, 0x82, 0x29, 0xd7, 0x39, - 0x48, 0x6e, 0xe0, 0x06, 0xa8, 0x07, 0x8a, 0x67, 0x05, 0x45, 0x3f, 0xb5, 0xa7, 0xd0, 0x69, 0x18, - 0xa8, 0x5a, 0x22, 0x0d, 0x87, 0xc3, 0x9f, 0x13, 0xf0, 0xb4, 0xc4, 0x08, 0x8a, 0x86, 0xd5, 0x68, - 0x19, 0x34, 0x47, 0x87, 0x53, 0x7c, 0x45, 0x52, 0x48, 0x8c, 0xa0, 0xd8, 0x85, 0x5b, 0xbf, 0x2a, - 0x29, 0x6c, 0x9f, 0x3f, 0xef, 0xa1, 0x67, 0xbd, 0xc6, 0x96, 0x65, 0xf6, 0x32, 0x88, 0xe7, 0x05, - 0x03, 0x08, 0x08, 0x25, 0xb8, 0x0b, 0x52, 0xbd, 0x4e, 0xc4, 0xd7, 0x04, 0x3c, 0x49, 0xe4, 0x0c, - 0xe0, 0x3a, 0x93, 0x49, 0x86, 0xbe, 0x5b, 0x09, 0xa7, 0xf8, 0xba, 0xa0, 0xc8, 0xf8, 0x60, 0xe2, - 0x31, 0x1c, 0x62, 0x3b, 0xb8, 0x55, 0xef, 0x81, 0xe4, 0x45, 0xf9, 0x18, 0x02, 0x22, 0x5c, 0x59, - 0x22, 0x66, 0x79, 0xb3, 0x37, 0x86, 0x97, 0xa4, 0x2b, 0x25, 0x86, 0x52, 0x60, 0xe6, 0xa9, 0xeb, - 0x4d, 0xdc, 0x5c, 0x1b, 0x3d, 0x4d, 0xc7, 0x37, 0x04, 0xc7, 0x80, 0x0b, 0x12, 0x1e, 0x69, 0x99, - 0xbb, 0xa1, 0x79, 0x59, 0x7a, 0xc4, 0x07, 0x13, 0x4b, 0x0f, 0x77, 0xa6, 0xb4, 0x93, 0xd8, 0x0d, - 0xdb, 0x37, 0xe5, 0xd2, 0xe3, 0xd8, 0x25, 0x3f, 0x23, 0xce, 0xb4, 0x8d, 0x5b, 0xf0, 0x5e, 0x68, - 0xbe, 0x25, 0x67, 0x9a, 0x01, 0x28, 0xf8, 0x01, 0x38, 0xd0, 0x35, 0xd5, 0xf7, 0x40, 0xf6, 0x6d, - 0x41, 0xb6, 0xaf, 0x4b, 0xba, 0x17, 0x29, 0x61, 0xb7, 0x94, 0xdf, 0x91, 0x29, 0x81, 0xb4, 0x71, - 0xad, 0xd2, 0x36, 0xd6, 0xd6, 0x37, 0x76, 0xe7, 0xb5, 0xef, 0x4a, 0xaf, 0x71, 0x6c, 0xc0, 0x6b, - 0x6b, 0xb0, 0x4f, 0x30, 0xee, 0x6e, 0x5e, 0x5f, 0x91, 0x89, 0x95, 0xa3, 0xd7, 0x83, 0xb3, 0xfb, - 0x5f, 0x30, 0xe6, 0xba, 0x53, 0x76, 0x60, 0xb6, 0x46, 0x0f, 0x06, 0xc2, 0x99, 0x5f, 0x15, 0xcc, - 0x32, 0xe3, 0xbb, 0x2d, 0x9c, 0xbd, 0xa4, 0x37, 0x28, 0xf9, 0x45, 0xc8, 0x49, 0xf2, 0x96, 0x89, - 0x0d, 0xbe, 0x55, 0x35, 0x71, 0x1a, 0x2b, 0x3d, 0x50, 0x7f, 0xaf, 0x6d, 0xaa, 0xd6, 0x7d, 0x70, - 0xca, 0xbc, 0x00, 0x59, 0xb7, 0xdf, 0xd0, 0x6a, 0xf5, 0x86, 0x85, 0xad, 0xe5, 0xce, 0x8c, 0xdf, - 0x97, 0x33, 0xe5, 0xe2, 0x16, 0x18, 0x2c, 0x5f, 0x80, 0x0c, 0xbb, 0xec, 0x35, 0x24, 0x7f, 0x20, - 0x88, 0x06, 0x3d, 0x94, 0x48, 0x1c, 0xd8, 0x29, 0x61, 0xcf, 0xdb, 0x4b, 0xfe, 0xfb, 0xa1, 0x4c, - 0x1c, 0x02, 0xc2, 0xa3, 0x6f, 0xa8, 0xad, 0x12, 0x2b, 0x61, 0xaf, 0x5f, 0x73, 0xff, 0x73, 0x4d, - 0xac, 0xd9, 0x60, 0x21, 0xce, 0x2f, 0x52, 0xf7, 0x04, 0xcb, 0x65, 0x38, 0xd9, 0xa3, 0xd7, 0x5c, - 0x0f, 0x05, 0xaa, 0x65, 0xfe, 0x3c, 0x0c, 0x06, 0x4a, 0x65, 0x38, 0xd5, 0xff, 0x0a, 0xaa, 0x01, - 0x7f, 0xa5, 0xcc, 0x9f, 0x82, 0x18, 0x2d, 0x7b, 0xe1, 0xf0, 0xff, 0x13, 0x70, 0x66, 0x9e, 0xff, - 0x0f, 0x48, 0xca, 0x72, 0x17, 0x0e, 0xfd, 0x7f, 0x01, 0x75, 0x21, 0x14, 0x2e, 0x4b, 0x5d, 0x38, - 0xfc, 0x53, 0x12, 0x2e, 0x21, 0x14, 0xde, 0xbb, 0x0b, 0x7f, 0xfa, 0xe9, 0x98, 0x48, 0x57, 0xd2, - 0x77, 0xf4, 0x9d, 0x0f, 0xaf, 0x71, 0xe1, 0xe8, 0xc7, 0xc4, 0xcd, 0x25, 0x22, 0x7f, 0x06, 0xe2, - 0x3d, 0x3a, 0xfc, 0x33, 0x02, 0xca, 0xed, 0xb1, 0x82, 0xa4, 0x7d, 0x75, 0x2d, 0x1c, 0xfe, 0x59, - 0x01, 0xf7, 0xa3, 0xe8, 0xd0, 0x45, 0x5d, 0x0b, 0x27, 0xf8, 0x9c, 0x1c, 0xba, 0x40, 0x50, 0xb7, - 0xc9, 0x92, 0x16, 0x8e, 0xfe, 0xbc, 0xf4, 0xba, 0x84, 0xe0, 0x6a, 0x4a, 0xb9, 0x69, 0x2a, 0x1c, - 0xff, 0x05, 0x81, 0xf7, 0x30, 0xd4, 0x03, 0xbe, 0x34, 0x19, 0x4e, 0xf1, 0x45, 0xe9, 0x01, 0x1f, - 0x8a, 0x2e, 0xa3, 0xf6, 0xd2, 0x17, 0xce, 0xf4, 0xb8, 0x5c, 0x46, 0x6d, 0x95, 0x8f, 0xce, 0x26, - 0xcb, 0x16, 0xe1, 0x14, 0x5f, 0x92, 0xb3, 0xc9, 0xec, 0xe9, 0x30, 0xda, 0x6b, 0x49, 0x38, 0xc7, - 0x97, 0xe5, 0x30, 0xda, 0x4a, 0x09, 0x56, 0x26, 0xa5, 0xb3, 0x8e, 0x84, 0xf3, 0x3d, 0x21, 0xf8, - 0x86, 0x3b, 0xca, 0x48, 0xfe, 0x7e, 0xd8, 0xd7, 0xbd, 0x86, 0x84, 0xb3, 0x3e, 0x79, 0xad, 0xad, - 0xeb, 0xf7, 0x97, 0x10, 0x2c, 0x79, 0xa3, 0xdd, 0xea, 0x47, 0x38, 0xed, 0x53, 0xd7, 0x82, 0x1b, - 0x3b, 0x7f, 0xf9, 0xc0, 0x0e, 0x0d, 0xbc, 0xd4, 0x1d, 0xce, 0xf5, 0x8c, 0xe0, 0xf2, 0x81, 0xe8, - 0xd2, 0x10, 0x99, 0x3b, 0x1c, 0xff, 0xac, 0x5c, 0x1a, 0x02, 0x81, 0xe0, 0xa4, 0xd9, 0x32, 0x0c, - 0x1a, 0x1c, 0xca, 0xce, 0x3f, 0x69, 0xc8, 0xfd, 0xe1, 0x43, 0xb1, 0x30, 0x24, 0x00, 0x73, 0x68, - 0x9c, 0xd4, 0x4b, 0xe8, 0x83, 0x10, 0xe4, 0x1f, 0x3f, 0x94, 0x09, 0x81, 0x5a, 0xe3, 0x7a, 0x02, - 0xbe, 0x69, 0x64, 0x67, 0xd8, 0x21, 0xd8, 0x3f, 0x7d, 0x28, 0x5e, 0xb3, 0x7a, 0x10, 0x8f, 0x80, - 0xbf, 0xb4, 0xdd, 0x99, 0xe0, 0xbd, 0x20, 0x01, 0xdb, 0x68, 0x9e, 0x83, 0x7e, 0xfa, 0xcb, 0x0e, - 0x47, 0xaf, 0x86, 0xa1, 0xff, 0x2c, 0xd0, 0xd2, 0x9e, 0x3a, 0xac, 0x6e, 0x35, 0x09, 0x7e, 0xb5, - 0xc3, 0xb0, 0x7f, 0x11, 0x58, 0x17, 0x40, 0xc1, 0x65, 0xdd, 0x76, 0x7a, 0x79, 0xee, 0xbf, 0x4a, - 0xb0, 0x04, 0xd0, 0x41, 0xd3, 0xef, 0x97, 0xc9, 0x56, 0x18, 0xf6, 0x7d, 0x39, 0x68, 0x61, 0x8f, - 0x09, 0x30, 0x45, 0xbf, 0xf2, 0x9f, 0x1e, 0x84, 0x80, 0xff, 0x26, 0xc0, 0x1e, 0x62, 0xe6, 0x70, - 0xf7, 0xa3, 0x1d, 0x98, 0xb7, 0xe6, 0x2d, 0x7e, 0xa8, 0x03, 0x8f, 0xc7, 0x61, 0x2f, 0xda, 0x60, - 0x7d, 0x9d, 0x2c, 0x59, 0xce, 0xe6, 0x24, 0x56, 0x0c, 0x71, 0x16, 0x13, 0xc5, 0xaf, 0x63, 0xbb, - 0x3b, 0xbf, 0x19, 0x3f, 0x00, 0xf1, 0x62, 0xab, 0x54, 0xda, 0xa2, 0x3f, 0x76, 0xb2, 0x5b, 0x25, - 0xf1, 0x66, 0x9a, 0x7e, 0xa5, 0xef, 0x69, 0xd2, 0x45, 0xbd, 0xde, 0xc0, 0xfe, 0xc5, 0x24, 0x2b, - 0x1b, 0x4a, 0x0e, 0x12, 0x6c, 0xf8, 0xc7, 0x99, 0x51, 0xe4, 0xde, 0x3d, 0x6a, 0x82, 0xfd, 0x54, - 0xef, 0xb8, 0xab, 0x99, 0x62, 0xa7, 0xfb, 0x7d, 0xae, 0x66, 0xca, 0xd5, 0x9c, 0xe0, 0xbf, 0x81, - 0x72, 0x35, 0x27, 0x5c, 0xcd, 0x49, 0x76, 0x44, 0x16, 0x75, 0x35, 0x27, 0x5d, 0xcd, 0x29, 0x76, - 0xca, 0x39, 0xe8, 0x6a, 0x4e, 0xb9, 0x9a, 0xd3, 0xec, 0x5c, 0x33, 0xe6, 0x6a, 0x4e, 0xbb, 0x9a, - 0x33, 0xec, 0x38, 0x73, 0xd8, 0xd5, 0x9c, 0x71, 0x35, 0x67, 0xd9, 0x11, 0xa6, 0xe2, 0x6a, 0xce, - 0xba, 0x9a, 0x73, 0xec, 0xed, 0x73, 0xbf, 0xab, 0x39, 0xa7, 0x8c, 0x41, 0x3f, 0x7f, 0xd2, 0x63, - 0xec, 0x6d, 0xcd, 0x10, 0xaa, 0xfa, 0xf9, 0xa3, 0x1e, 0xf3, 0x74, 0xc7, 0xd9, 0x1b, 0xe6, 0x84, - 0xa7, 0x3b, 0xee, 0xe9, 0xa6, 0xd8, 0x2f, 0x26, 0xb3, 0x9e, 0x6e, 0xca, 0xd3, 0x9d, 0xc8, 0x0d, - 0xd2, 0x25, 0xea, 0xe9, 0x4e, 0x78, 0xba, 0x93, 0xb9, 0x0c, 0xf5, 0xbf, 0xa7, 0x3b, 0xe9, 0xe9, - 0x4e, 0xe5, 0x86, 0xe8, 0x49, 0xad, 0xa7, 0x3b, 0xa5, 0xdc, 0x09, 0x69, 0x9c, 0x28, 0x4d, 0xbc, - 0x5c, 0x64, 0x6f, 0xb2, 0xd3, 0x53, 0x30, 0x41, 0x23, 0x82, 0x4d, 0x2a, 0xda, 0x02, 0x1a, 0x88, - 0xcc, 0x34, 0x33, 0x00, 0x6c, 0xc7, 0xaa, 0xb1, 0x5f, 0x62, 0xcd, 0xcc, 0xbd, 0xfe, 0xd6, 0xc1, - 0x3d, 0x6f, 0xe0, 0xe7, 0x37, 0xf8, 0x79, 0xf3, 0xad, 0x83, 0x91, 0xf7, 0xf1, 0xf3, 0x01, 0x7e, - 0x1e, 0x79, 0xfb, 0x60, 0xe4, 0x25, 0xfc, 0xbc, 0x82, 0x9f, 0x1f, 0xe3, 0xe7, 0x75, 0xfc, 0xbc, - 0x81, 0x9f, 0x37, 0xf1, 0xf3, 0xee, 0xdb, 0x07, 0xf7, 0xbc, 0x8f, 0xff, 0x3f, 0xc0, 0xff, 0x8f, - 0xfc, 0xee, 0xe0, 0x9e, 0x52, 0x82, 0x85, 0xd1, 0x89, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff, 0x12, - 0xc1, 0x5e, 0x75, 0x00, 0x2d, 0x00, 0x00, + // 3861 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, + 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, + 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, + 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0x9a, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, + 0x4c, 0xeb, 0x34, 0xe9, 0x25, 0xe9, 0x25, 0xcd, 0xf4, 0xa9, 0x2f, 0x69, 0xfd, 0xd4, 0x49, 0xde, + 0xfa, 0x90, 0x07, 0xaf, 0xe2, 0x99, 0xa6, 0xad, 0xdb, 0xba, 0x8d, 0x67, 0x9a, 0x19, 0xbf, 0x64, + 0xfe, 0x1b, 0x00, 0x5e, 0xb4, 0xa0, 0x32, 0xe3, 0xf8, 0x49, 0xc2, 0x39, 0xe7, 0xfb, 0x70, 0x70, + 0xfe, 0xf3, 0x9f, 0x73, 0xf0, 0x13, 0xf0, 0x83, 0x75, 0x38, 0xd7, 0xb1, 0xed, 0x8e, 0x89, 0x56, + 0x7b, 0x8e, 0xed, 0xd9, 0xcd, 0x7e, 0x7b, 0xb5, 0x85, 0x5c, 0xdd, 0x31, 0x7a, 0x9e, 0xed, 0xac, + 0x10, 0x99, 0x94, 0xa7, 0x16, 0x2b, 0xdc, 0x62, 0x69, 0x07, 0xe6, 0xae, 0x1b, 0x26, 0xda, 0xf4, + 0x0d, 0x1b, 0xc8, 0x93, 0xae, 0x40, 0xa2, 0x6d, 0x98, 0x48, 0x16, 0xce, 0xc5, 0x97, 0x33, 0x6b, + 0x8f, 0xaf, 0x0c, 0x81, 0x56, 0x06, 0x11, 0x75, 0x2c, 0x56, 0x08, 0x62, 0xe9, 0x9d, 0x04, 0xcc, + 0x8f, 0xd1, 0x4a, 0x12, 0x24, 0x2c, 0xad, 0x8b, 0x19, 0x85, 0xe5, 0xb4, 0x42, 0xfe, 0x97, 0x64, + 0x98, 0xe9, 0x69, 0xfa, 0x1d, 0xad, 0x83, 0xe4, 0x18, 0x11, 0xf3, 0x4b, 0xa9, 0x00, 0xd0, 0x42, + 0x3d, 0x64, 0xb5, 0x90, 0xa5, 0x1f, 0xca, 0xf1, 0x73, 0xf1, 0xe5, 0xb4, 0x12, 0x92, 0x48, 0xcf, + 0xc0, 0x5c, 0xaf, 0xdf, 0x34, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0xb9, 0xf8, 0x72, 0x52, 0x11, 0xa9, + 0x62, 0x33, 0x30, 0x7e, 0x12, 0xf2, 0xf7, 0x90, 0x76, 0x27, 0x6c, 0x9a, 0x21, 0xa6, 0x39, 0x2c, + 0x0e, 0x19, 0x96, 0x21, 0xdb, 0x45, 0xae, 0xab, 0x75, 0x90, 0xea, 0x1d, 0xf6, 0x90, 0x9c, 0x20, + 0x4f, 0x7f, 0x6e, 0xe4, 0xe9, 0x87, 0x9f, 0x3c, 0xc3, 0x50, 0x7b, 0x87, 0x3d, 0x24, 0x95, 0x20, + 0x8d, 0xac, 0x7e, 0x97, 0x32, 0x24, 0x8f, 0x89, 0x5f, 0xc5, 0xea, 0x77, 0x87, 0x59, 0x52, 0x18, + 0xc6, 0x28, 0x66, 0x5c, 0xe4, 0xdc, 0x35, 0x74, 0x24, 0x4f, 0x13, 0x82, 0x27, 0x47, 0x08, 0x1a, + 0x54, 0x3f, 0xcc, 0xc1, 0x71, 0x52, 0x19, 0xd2, 0xe8, 0x65, 0x0f, 0x59, 0xae, 0x61, 0x5b, 0xf2, + 0x0c, 0x21, 0x79, 0x62, 0xcc, 0x2a, 0x22, 0xb3, 0x35, 0x4c, 0x11, 0xe0, 0xa4, 0x4b, 0x30, 0x63, + 0xf7, 0x3c, 0xc3, 0xb6, 0x5c, 0x39, 0x75, 0x4e, 0x58, 0xce, 0xac, 0x7d, 0x6c, 0x6c, 0x22, 0xd4, + 0xa8, 0x8d, 0xc2, 0x8d, 0xa5, 0x2a, 0x88, 0xae, 0xdd, 0x77, 0x74, 0xa4, 0xea, 0x76, 0x0b, 0xa9, + 0x86, 0xd5, 0xb6, 0xe5, 0x34, 0x21, 0x38, 0x3b, 0xfa, 0x20, 0xc4, 0xb0, 0x6c, 0xb7, 0x50, 0xd5, + 0x6a, 0xdb, 0x4a, 0xce, 0x1d, 0xb8, 0x96, 0x4e, 0xc1, 0xb4, 0x7b, 0x68, 0x79, 0xda, 0xcb, 0x72, + 0x96, 0x64, 0x08, 0xbb, 0x5a, 0xfa, 0xff, 0x24, 0xe4, 0x27, 0x49, 0xb1, 0x6b, 0x90, 0x6c, 0xe3, + 0xa7, 0x94, 0x63, 0x27, 0x89, 0x01, 0xc5, 0x0c, 0x06, 0x71, 0xfa, 0xa7, 0x0c, 0x62, 0x09, 0x32, + 0x16, 0x72, 0x3d, 0xd4, 0xa2, 0x19, 0x11, 0x9f, 0x30, 0xa7, 0x80, 0x82, 0x46, 0x53, 0x2a, 0xf1, + 0x53, 0xa5, 0xd4, 0x2d, 0xc8, 0xfb, 0x2e, 0xa9, 0x8e, 0x66, 0x75, 0x78, 0x6e, 0xae, 0x46, 0x79, + 0xb2, 0x52, 0xe1, 0x38, 0x05, 0xc3, 0x94, 0x1c, 0x1a, 0xb8, 0x96, 0x36, 0x01, 0x6c, 0x0b, 0xd9, + 0x6d, 0xb5, 0x85, 0x74, 0x53, 0x4e, 0x1d, 0x13, 0xa5, 0x1a, 0x36, 0x19, 0x89, 0x92, 0x4d, 0xa5, + 0xba, 0x29, 0x5d, 0x0d, 0x52, 0x6d, 0xe6, 0x98, 0x4c, 0xd9, 0xa1, 0x9b, 0x6c, 0x24, 0xdb, 0xf6, + 0x21, 0xe7, 0x20, 0x9c, 0xf7, 0xa8, 0xc5, 0x9e, 0x2c, 0x4d, 0x9c, 0x58, 0x89, 0x7c, 0x32, 0x85, + 0xc1, 0xe8, 0x83, 0xcd, 0x3a, 0xe1, 0x4b, 0xe9, 0xe3, 0xe0, 0x0b, 0x54, 0x92, 0x56, 0x40, 0xaa, + 0x50, 0x96, 0x0b, 0x77, 0xb5, 0x2e, 0x5a, 0xbc, 0x02, 0xb9, 0xc1, 0xf0, 0x48, 0x0b, 0x90, 0x74, + 0x3d, 0xcd, 0xf1, 0x48, 0x16, 0x26, 0x15, 0x7a, 0x21, 0x89, 0x10, 0x47, 0x56, 0x8b, 0x54, 0xb9, + 0xa4, 0x82, 0xff, 0x5d, 0xbc, 0x0c, 0xb3, 0x03, 0xb7, 0x9f, 0x14, 0xb8, 0xf4, 0xc5, 0x69, 0x58, + 0x18, 0x97, 0x73, 0x63, 0xd3, 0xff, 0x14, 0x4c, 0x5b, 0xfd, 0x6e, 0x13, 0x39, 0x72, 0x9c, 0x30, + 0xb0, 0x2b, 0xa9, 0x04, 0x49, 0x53, 0x6b, 0x22, 0x53, 0x4e, 0x9c, 0x13, 0x96, 0x73, 0x6b, 0xcf, + 0x4c, 0x94, 0xd5, 0x2b, 0xdb, 0x18, 0xa2, 0x50, 0xa4, 0xf4, 0x29, 0x48, 0xb0, 0x12, 0x87, 0x19, + 0x9e, 0x9e, 0x8c, 0x01, 0xe7, 0xa2, 0x42, 0x70, 0xd2, 0xa3, 0x90, 0xc6, 0x7f, 0x69, 0x6c, 0xa7, + 0x89, 0xcf, 0x29, 0x2c, 0xc0, 0x71, 0x95, 0x16, 0x21, 0x45, 0xd2, 0xac, 0x85, 0x78, 0x6b, 0xf0, + 0xaf, 0xf1, 0xc2, 0xb4, 0x50, 0x5b, 0xeb, 0x9b, 0x9e, 0x7a, 0x57, 0x33, 0xfb, 0x88, 0x24, 0x4c, + 0x5a, 0xc9, 0x32, 0xe1, 0x67, 0xb0, 0x4c, 0x3a, 0x0b, 0x19, 0x9a, 0x95, 0x86, 0xd5, 0x42, 0x2f, + 0x93, 0xea, 0x93, 0x54, 0x68, 0xa2, 0x56, 0xb1, 0x04, 0xdf, 0xfe, 0xb6, 0x6b, 0x5b, 0x7c, 0x69, + 0xc9, 0x2d, 0xb0, 0x80, 0xdc, 0xfe, 0xf2, 0x70, 0xe1, 0x7b, 0x6c, 0xfc, 0xe3, 0x0d, 0xe7, 0xe2, + 0xd2, 0xb7, 0x62, 0x90, 0x20, 0xfb, 0x2d, 0x0f, 0x99, 0xbd, 0x97, 0xea, 0x15, 0x75, 0xb3, 0xb6, + 0xbf, 0xb1, 0x5d, 0x11, 0x05, 0x29, 0x07, 0x40, 0x04, 0xd7, 0xb7, 0x6b, 0xa5, 0x3d, 0x31, 0xe6, + 0x5f, 0x57, 0x77, 0xf7, 0x2e, 0x5d, 0x14, 0xe3, 0x3e, 0x60, 0x9f, 0x0a, 0x12, 0x61, 0x83, 0x0b, + 0x6b, 0x62, 0x52, 0x12, 0x21, 0x4b, 0x09, 0xaa, 0xb7, 0x2a, 0x9b, 0x97, 0x2e, 0x8a, 0xd3, 0x83, + 0x92, 0x0b, 0x6b, 0xe2, 0x8c, 0x34, 0x0b, 0x69, 0x22, 0xd9, 0xa8, 0xd5, 0xb6, 0xc5, 0x94, 0xcf, + 0xd9, 0xd8, 0x53, 0xaa, 0xbb, 0x5b, 0x62, 0xda, 0xe7, 0xdc, 0x52, 0x6a, 0xfb, 0x75, 0x11, 0x7c, + 0x86, 0x9d, 0x4a, 0xa3, 0x51, 0xda, 0xaa, 0x88, 0x19, 0xdf, 0x62, 0xe3, 0xa5, 0xbd, 0x4a, 0x43, + 0xcc, 0x0e, 0xb8, 0x75, 0x61, 0x4d, 0x9c, 0xf5, 0x6f, 0x51, 0xd9, 0xdd, 0xdf, 0x11, 0x73, 0xd2, + 0x1c, 0xcc, 0xd2, 0x5b, 0x70, 0x27, 0xf2, 0x43, 0xa2, 0x4b, 0x17, 0x45, 0x31, 0x70, 0x84, 0xb2, + 0xcc, 0x0d, 0x08, 0x2e, 0x5d, 0x14, 0xa5, 0xa5, 0x32, 0x24, 0x49, 0x76, 0x49, 0x12, 0xe4, 0xb6, + 0x4b, 0x1b, 0x95, 0x6d, 0xb5, 0x56, 0xdf, 0xab, 0xd6, 0x76, 0x4b, 0xdb, 0xa2, 0x10, 0xc8, 0x94, + 0xca, 0xa7, 0xf7, 0xab, 0x4a, 0x65, 0x53, 0x8c, 0x85, 0x65, 0xf5, 0x4a, 0x69, 0xaf, 0xb2, 0x29, + 0xc6, 0x97, 0x74, 0x58, 0x18, 0x57, 0x67, 0xc6, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x8e, 0x59, 0x62, + 0xc2, 0x35, 0xb2, 0xc4, 0x5f, 0x11, 0x60, 0x7e, 0x4c, 0xad, 0x1d, 0x7b, 0x93, 0x17, 0x20, 0x49, + 0x53, 0x94, 0x76, 0x9f, 0xa7, 0xc6, 0x16, 0x6d, 0x92, 0xb0, 0x23, 0x1d, 0x88, 0xe0, 0xc2, 0x1d, + 0x38, 0x7e, 0x4c, 0x07, 0xc6, 0x14, 0x23, 0x4e, 0xbe, 0x2a, 0x80, 0x7c, 0x1c, 0x77, 0x44, 0xa1, + 0x88, 0x0d, 0x14, 0x8a, 0x6b, 0xc3, 0x0e, 0x9c, 0x3f, 0xfe, 0x19, 0x46, 0xbc, 0x78, 0x53, 0x80, + 0x53, 0xe3, 0x07, 0x95, 0xb1, 0x3e, 0x7c, 0x0a, 0xa6, 0xbb, 0xc8, 0x3b, 0xb0, 0x79, 0xb3, 0xfe, + 0xc4, 0x98, 0x16, 0x80, 0xd5, 0xc3, 0xb1, 0x62, 0xa8, 0x70, 0x0f, 0x89, 0x1f, 0x37, 0x6d, 0x50, + 0x6f, 0x46, 0x3c, 0xfd, 0x7c, 0x0c, 0x1e, 0x19, 0x4b, 0x3e, 0xd6, 0xd1, 0xc7, 0x00, 0x0c, 0xab, + 0xd7, 0xf7, 0x68, 0x43, 0xa6, 0xf5, 0x29, 0x4d, 0x24, 0x64, 0xef, 0xe3, 0xda, 0xd3, 0xf7, 0x7c, + 0x7d, 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0x95, 0xc0, 0xd1, 0x04, 0x71, 0xb4, 0x70, 0xcc, 0x93, + 0x8e, 0xf4, 0xba, 0xe7, 0x40, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xba, 0x86, + 0xd5, 0x21, 0x05, 0x38, 0x55, 0x4c, 0xb6, 0x35, 0xd3, 0x45, 0x4a, 0x9e, 0xaa, 0x1b, 0x5c, 0x8b, + 0x11, 0xa4, 0xcb, 0x38, 0x21, 0xc4, 0xf4, 0x00, 0x82, 0xaa, 0x7d, 0xc4, 0xd2, 0xd7, 0x67, 0x20, + 0x13, 0x1a, 0xeb, 0xa4, 0xf3, 0x90, 0xbd, 0xad, 0xdd, 0xd5, 0x54, 0x3e, 0xaa, 0xd3, 0x48, 0x64, + 0xb0, 0xac, 0xce, 0xc6, 0xf5, 0xe7, 0x60, 0x81, 0x98, 0xd8, 0x7d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, + 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xcc, 0x35, 0xd2, 0x3a, 0xcc, + 0x13, 0x44, 0xb7, 0x6f, 0x7a, 0x46, 0xcf, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x3d, + 0x9b, 0xc3, 0x16, 0x3b, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0x9b, 0xf0, 0x18, 0x81, 0x75, 0x90, 0x85, + 0x1c, 0xcd, 0x43, 0x2a, 0xfa, 0x5c, 0x5f, 0x33, 0x5d, 0x55, 0xb3, 0x5a, 0xea, 0x81, 0xe6, 0x1e, + 0xc8, 0x0b, 0x98, 0x60, 0x23, 0x26, 0x0b, 0xca, 0x19, 0x6c, 0xb8, 0xc5, 0xec, 0x2a, 0xc4, 0xac, + 0x64, 0xb5, 0x6e, 0x68, 0xee, 0x81, 0x54, 0x84, 0x53, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0xea, 0xa8, + 0xfa, 0x01, 0xd2, 0xef, 0xa8, 0x7d, 0xaf, 0x7d, 0x45, 0x7e, 0x34, 0x7c, 0x7f, 0xe2, 0x61, 0x83, + 0xd8, 0x94, 0xb1, 0xc9, 0xbe, 0xd7, 0xbe, 0x22, 0x35, 0x20, 0x8b, 0x17, 0xa3, 0x6b, 0xbc, 0x82, + 0xd4, 0xb6, 0xed, 0x90, 0xce, 0x92, 0x1b, 0xb3, 0xb3, 0x43, 0x11, 0x5c, 0xa9, 0x31, 0xc0, 0x8e, + 0xdd, 0x42, 0xc5, 0x64, 0xa3, 0x5e, 0xa9, 0x6c, 0x2a, 0x19, 0xce, 0x72, 0xdd, 0x76, 0x70, 0x42, + 0x75, 0x6c, 0x3f, 0xc0, 0x19, 0x9a, 0x50, 0x1d, 0x9b, 0x87, 0x77, 0x1d, 0xe6, 0x75, 0x9d, 0x3e, + 0xb3, 0xa1, 0xab, 0x6c, 0xc4, 0x77, 0x65, 0x71, 0x20, 0x58, 0xba, 0xbe, 0x45, 0x0d, 0x58, 0x8e, + 0xbb, 0xd2, 0x55, 0x78, 0x24, 0x08, 0x56, 0x18, 0x38, 0x37, 0xf2, 0x94, 0xc3, 0xd0, 0x75, 0x98, + 0xef, 0x1d, 0x8e, 0x02, 0xa5, 0x81, 0x3b, 0xf6, 0x0e, 0x87, 0x61, 0x4f, 0x90, 0xd7, 0x36, 0x07, + 0xe9, 0x9a, 0x87, 0x5a, 0xf2, 0xe9, 0xb0, 0x75, 0x48, 0x21, 0xad, 0x82, 0xa8, 0xeb, 0x2a, 0xb2, + 0xb4, 0xa6, 0x89, 0x54, 0xcd, 0x41, 0x96, 0xe6, 0xca, 0x67, 0xc3, 0xc6, 0x39, 0x5d, 0xaf, 0x10, + 0x6d, 0x89, 0x28, 0xa5, 0xa7, 0x61, 0xce, 0x6e, 0xde, 0xd6, 0x69, 0x66, 0xa9, 0x3d, 0x07, 0xb5, + 0x8d, 0x97, 0xe5, 0xc7, 0x49, 0x98, 0xf2, 0x58, 0x41, 0xf2, 0xaa, 0x4e, 0xc4, 0xd2, 0x53, 0x20, + 0xea, 0xee, 0x81, 0xe6, 0xf4, 0x48, 0x6b, 0x77, 0x7b, 0x9a, 0x8e, 0xe4, 0x27, 0xa8, 0x29, 0x95, + 0xef, 0x72, 0x31, 0xce, 0x6c, 0xf7, 0x9e, 0xd1, 0xf6, 0x38, 0xe3, 0x93, 0x34, 0xb3, 0x89, 0x8c, + 0xb1, 0xdd, 0x82, 0x85, 0xbe, 0x65, 0x58, 0x1e, 0x72, 0x7a, 0x0e, 0xc2, 0x43, 0x3c, 0xdd, 0x89, + 0xf2, 0xbf, 0xcd, 0x1c, 0x33, 0x86, 0xef, 0x87, 0xad, 0x69, 0x02, 0x28, 0xf3, 0xfd, 0x51, 0xe1, + 0x52, 0x11, 0xb2, 0xe1, 0xbc, 0x90, 0xd2, 0x40, 0x33, 0x43, 0x14, 0x70, 0x8f, 0x2d, 0xd7, 0x36, + 0x71, 0x77, 0xfc, 0x6c, 0x45, 0x8c, 0xe1, 0x2e, 0xbd, 0x5d, 0xdd, 0xab, 0xa8, 0xca, 0xfe, 0xee, + 0x5e, 0x75, 0xa7, 0x22, 0xc6, 0x9f, 0x4e, 0xa7, 0x7e, 0x38, 0x23, 0xde, 0xbf, 0x7f, 0xff, 0x7e, + 0x6c, 0xe9, 0x3b, 0x31, 0xc8, 0x0d, 0x4e, 0xc6, 0xd2, 0xcf, 0xc3, 0x69, 0xfe, 0x1a, 0xeb, 0x22, + 0x4f, 0xbd, 0x67, 0x38, 0x24, 0x55, 0xbb, 0x1a, 0x9d, 0x2d, 0xfd, 0x28, 0x2f, 0x30, 0xab, 0x06, + 0xf2, 0x5e, 0x34, 0x1c, 0x9c, 0x88, 0x5d, 0xcd, 0x93, 0xb6, 0xe1, 0xac, 0x65, 0xab, 0xae, 0xa7, + 0x59, 0x2d, 0xcd, 0x69, 0xa9, 0xc1, 0x01, 0x82, 0xaa, 0xe9, 0x3a, 0x72, 0x5d, 0x9b, 0xb6, 0x08, + 0x9f, 0xe5, 0x63, 0x96, 0xdd, 0x60, 0xc6, 0x41, 0xed, 0x2c, 0x31, 0xd3, 0xa1, 0x8c, 0x88, 0x1f, + 0x97, 0x11, 0x8f, 0x42, 0xba, 0xab, 0xf5, 0x54, 0x64, 0x79, 0xce, 0x21, 0x99, 0xe7, 0x52, 0x4a, + 0xaa, 0xab, 0xf5, 0x2a, 0xf8, 0xfa, 0xc3, 0x5b, 0x83, 0x70, 0x1c, 0xbf, 0x1f, 0x87, 0x6c, 0x78, + 0xa6, 0xc3, 0x23, 0xb2, 0x4e, 0xea, 0xb7, 0x40, 0x76, 0xf8, 0xc7, 0x1f, 0x3a, 0x01, 0xae, 0x94, + 0x71, 0x61, 0x2f, 0x4e, 0xd3, 0x49, 0x4b, 0xa1, 0x48, 0xdc, 0x54, 0xf1, 0x9e, 0x46, 0x74, 0x7e, + 0x4f, 0x29, 0xec, 0x4a, 0xda, 0x82, 0xe9, 0xdb, 0x2e, 0xe1, 0x9e, 0x26, 0xdc, 0x8f, 0x3f, 0x9c, + 0xfb, 0x66, 0x83, 0x90, 0xa7, 0x6f, 0x36, 0xd4, 0xdd, 0x9a, 0xb2, 0x53, 0xda, 0x56, 0x18, 0x5c, + 0x3a, 0x03, 0x09, 0x53, 0x7b, 0xe5, 0x70, 0xb0, 0x05, 0x10, 0xd1, 0xa4, 0x81, 0x3f, 0x03, 0x89, + 0x7b, 0x48, 0xbb, 0x33, 0x58, 0x78, 0x89, 0xe8, 0x43, 0x4c, 0xfd, 0x55, 0x48, 0x92, 0x78, 0x49, + 0x00, 0x2c, 0x62, 0xe2, 0x94, 0x94, 0x82, 0x44, 0xb9, 0xa6, 0xe0, 0xf4, 0x17, 0x21, 0x4b, 0xa5, + 0x6a, 0xbd, 0x5a, 0x29, 0x57, 0xc4, 0xd8, 0xd2, 0x3a, 0x4c, 0xd3, 0x20, 0xe0, 0xad, 0xe1, 0x87, + 0x41, 0x9c, 0x62, 0x97, 0x8c, 0x43, 0xe0, 0xda, 0xfd, 0x9d, 0x8d, 0x8a, 0x22, 0xc6, 0xc2, 0xcb, + 0xeb, 0x42, 0x36, 0x3c, 0xce, 0xfd, 0x6c, 0x72, 0xea, 0x1f, 0x04, 0xc8, 0x84, 0xc6, 0x33, 0x3c, + 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x53, 0x35, 0xd3, 0xd0, 0x5c, 0x96, 0x14, 0x40, 0x44, 0x25, 0x2c, + 0x99, 0x74, 0xd1, 0x7e, 0x26, 0xce, 0xbf, 0x21, 0x80, 0x38, 0x3c, 0xda, 0x0d, 0x39, 0x28, 0x7c, + 0xa4, 0x0e, 0xbe, 0x2e, 0x40, 0x6e, 0x70, 0x9e, 0x1b, 0x72, 0xef, 0xfc, 0x47, 0xea, 0xde, 0xdb, + 0x31, 0x98, 0x1d, 0x98, 0xe2, 0x26, 0xf5, 0xee, 0x73, 0x30, 0x67, 0xb4, 0x50, 0xb7, 0x67, 0x7b, + 0xc8, 0xd2, 0x0f, 0x55, 0x13, 0xdd, 0x45, 0xa6, 0xbc, 0x44, 0x0a, 0xc5, 0xea, 0xc3, 0xe7, 0xc4, + 0x95, 0x6a, 0x80, 0xdb, 0xc6, 0xb0, 0xe2, 0x7c, 0x75, 0xb3, 0xb2, 0x53, 0xaf, 0xed, 0x55, 0x76, + 0xcb, 0x2f, 0xa9, 0xfb, 0xbb, 0xbf, 0xb0, 0x5b, 0x7b, 0x71, 0x57, 0x11, 0x8d, 0x21, 0xb3, 0x0f, + 0x71, 0xab, 0xd7, 0x41, 0x1c, 0x76, 0x4a, 0x3a, 0x0d, 0xe3, 0xdc, 0x12, 0xa7, 0xa4, 0x79, 0xc8, + 0xef, 0xd6, 0xd4, 0x46, 0x75, 0xb3, 0xa2, 0x56, 0xae, 0x5f, 0xaf, 0x94, 0xf7, 0x1a, 0xf4, 0xc5, + 0xd9, 0xb7, 0xde, 0x1b, 0xdc, 0xd4, 0xaf, 0xc5, 0x61, 0x7e, 0x8c, 0x27, 0x52, 0x89, 0xcd, 0xec, + 0xf4, 0x35, 0xe2, 0xd9, 0x49, 0xbc, 0x5f, 0xc1, 0x53, 0x41, 0x5d, 0x73, 0x3c, 0x36, 0xe2, 0x3f, + 0x05, 0x38, 0x4a, 0x96, 0x67, 0xb4, 0x0d, 0xe4, 0xb0, 0x73, 0x06, 0x3a, 0xc8, 0xe7, 0x03, 0x39, + 0x3d, 0x6a, 0xf8, 0x39, 0x90, 0x7a, 0xb6, 0x6b, 0x78, 0xc6, 0x5d, 0xa4, 0x1a, 0x16, 0x3f, 0x94, + 0xc0, 0x83, 0x7d, 0x42, 0x11, 0xb9, 0xa6, 0x6a, 0x79, 0xbe, 0xb5, 0x85, 0x3a, 0xda, 0x90, 0x35, + 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x3c, 0x64, 0x5b, 0x76, 0x1f, 0x8f, 0x49, 0xd4, + 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, 0x24, 0xab, 0x64, + 0xa8, 0x8c, 0x9a, 0x3c, 0x09, 0x79, 0xad, 0xd3, 0x71, 0x30, 0x39, 0x27, 0xa2, 0x93, 0x79, 0xce, + 0x17, 0x13, 0xc3, 0xc5, 0x9b, 0x90, 0xe2, 0x71, 0xc0, 0x2d, 0x19, 0x47, 0x42, 0xed, 0xd1, 0x33, + 0xa9, 0xd8, 0x72, 0x5a, 0x49, 0x59, 0x5c, 0x79, 0x1e, 0xb2, 0x86, 0xab, 0x06, 0x87, 0xa3, 0xb1, + 0x73, 0xb1, 0xe5, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0x6c, 0xe9, 0xcd, 0x18, 0xe4, 0x06, 0x0f, + 0x77, 0xa5, 0x4d, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0x2c, 0x47, 0x9c, 0x07, + 0xaf, 0x6c, 0x33, 0x7b, 0xc5, 0x47, 0x2e, 0xfe, 0x8b, 0x00, 0x29, 0x2e, 0x96, 0x4e, 0x41, 0xa2, + 0xa7, 0x79, 0x07, 0x84, 0x2e, 0xb9, 0x11, 0x13, 0x05, 0x85, 0x5c, 0x63, 0xb9, 0xdb, 0xd3, 0x2c, + 0x92, 0x02, 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x9a, 0x48, 0x6b, 0x91, 0xb1, 0xdf, 0xee, 0x76, 0x91, + 0xe5, 0xb9, 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xd2, 0x33, 0x30, 0xe7, 0x39, 0x9a, 0x61, 0x0e, + 0xd8, 0x26, 0x88, 0xad, 0xc8, 0x15, 0xbe, 0x71, 0x11, 0xce, 0x70, 0xde, 0x16, 0xf2, 0x34, 0xfd, + 0x00, 0xb5, 0x02, 0xd0, 0x34, 0x39, 0x39, 0x3c, 0xcd, 0x0c, 0x36, 0x99, 0x9e, 0x63, 0x97, 0xbe, + 0x27, 0xc0, 0x1c, 0x7f, 0x51, 0x69, 0xf9, 0xc1, 0xda, 0x01, 0xd0, 0x2c, 0xcb, 0xf6, 0xc2, 0xe1, + 0x1a, 0x4d, 0xe5, 0x11, 0xdc, 0x4a, 0xc9, 0x07, 0x29, 0x21, 0x82, 0xc5, 0x2e, 0x40, 0xa0, 0x39, + 0x36, 0x6c, 0x67, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, 0xa8, 0x08, 0xbf, + 0xd1, 0x48, 0x0b, 0x90, 0x6c, 0xa2, 0x8e, 0x61, 0xb1, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, 0x29, 0x13, + 0xfe, 0x29, 0xe5, 0xc6, 0x2d, 0x98, 0xd7, 0xed, 0xee, 0xb0, 0xbb, 0x1b, 0xe2, 0xd0, 0xeb, 0xb5, + 0x7b, 0x43, 0xf8, 0x2c, 0x04, 0x23, 0xe6, 0x57, 0x62, 0xf1, 0xad, 0xfa, 0xc6, 0xd7, 0x62, 0x8b, + 0x5b, 0x14, 0x57, 0xe7, 0x8f, 0xa9, 0xa0, 0xb6, 0x89, 0x74, 0xec, 0x3a, 0xfc, 0xe8, 0x13, 0xf0, + 0x6c, 0xc7, 0xf0, 0x0e, 0xfa, 0xcd, 0x15, 0xdd, 0xee, 0xae, 0x76, 0xec, 0x8e, 0x1d, 0xfc, 0xdc, + 0x85, 0xaf, 0xc8, 0x05, 0xf9, 0x8f, 0xfd, 0xe4, 0x95, 0xf6, 0xa5, 0x8b, 0x91, 0xbf, 0x8f, 0x15, + 0x77, 0x61, 0x9e, 0x19, 0xab, 0xe4, 0xcc, 0x9d, 0xbe, 0x1a, 0x48, 0x0f, 0x3d, 0x77, 0x91, 0xbf, + 0xf9, 0x0e, 0xe9, 0xd5, 0xca, 0x1c, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0x2a, 0xf0, 0xc8, 0x00, + 0x1f, 0xdd, 0x97, 0xc8, 0x89, 0x60, 0xfc, 0x0e, 0x63, 0x9c, 0x0f, 0x31, 0x36, 0x18, 0xb4, 0x58, + 0x86, 0xd9, 0x93, 0x70, 0xfd, 0x13, 0xe3, 0xca, 0xa2, 0x30, 0xc9, 0x16, 0xe4, 0x09, 0x89, 0xde, + 0x77, 0x3d, 0xbb, 0x4b, 0x8a, 0xde, 0xc3, 0x69, 0xfe, 0xf9, 0x1d, 0xba, 0x51, 0x72, 0x18, 0x56, + 0xf6, 0x51, 0xc5, 0x22, 0x90, 0x9f, 0x19, 0x5a, 0x48, 0x37, 0x23, 0x18, 0xde, 0x62, 0x8e, 0xf8, + 0xf6, 0xc5, 0xcf, 0xc0, 0x02, 0xfe, 0x9f, 0xd4, 0xa4, 0xb0, 0x27, 0xd1, 0xa7, 0x4c, 0xf2, 0xf7, + 0x5e, 0xa5, 0x7b, 0x71, 0xde, 0x27, 0x08, 0xf9, 0x14, 0x5a, 0xc5, 0x0e, 0xf2, 0x3c, 0xe4, 0xb8, + 0xaa, 0x66, 0x8e, 0x73, 0x2f, 0xf4, 0x9a, 0x2e, 0x7f, 0xe9, 0xdd, 0xc1, 0x55, 0xdc, 0xa2, 0xc8, + 0x92, 0x69, 0x16, 0xf7, 0xe1, 0xf4, 0x98, 0xac, 0x98, 0x80, 0xf3, 0x35, 0xc6, 0xb9, 0x30, 0x92, + 0x19, 0x98, 0xb6, 0x0e, 0x5c, 0xee, 0xaf, 0xe5, 0x04, 0x9c, 0x7f, 0xc0, 0x38, 0x25, 0x86, 0xe5, + 0x4b, 0x8a, 0x19, 0x6f, 0xc2, 0xdc, 0x5d, 0xe4, 0x34, 0x6d, 0x97, 0x1d, 0x8d, 0x4c, 0x40, 0xf7, + 0x3a, 0xa3, 0xcb, 0x33, 0x20, 0x39, 0x2b, 0xc1, 0x5c, 0x57, 0x21, 0xd5, 0xd6, 0x74, 0x34, 0x01, + 0xc5, 0x97, 0x19, 0xc5, 0x0c, 0xb6, 0xc7, 0xd0, 0x12, 0x64, 0x3b, 0x36, 0x6b, 0x4b, 0xd1, 0xf0, + 0x37, 0x18, 0x3c, 0xc3, 0x31, 0x8c, 0xa2, 0x67, 0xf7, 0xfa, 0x26, 0xee, 0x59, 0xd1, 0x14, 0x7f, + 0xc8, 0x29, 0x38, 0x86, 0x51, 0x9c, 0x20, 0xac, 0x7f, 0xc4, 0x29, 0xdc, 0x50, 0x3c, 0x5f, 0x80, + 0x8c, 0x6d, 0x99, 0x87, 0xb6, 0x35, 0x89, 0x13, 0x7f, 0xcc, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x35, + 0x48, 0x4f, 0xba, 0x10, 0x7f, 0xf2, 0x2e, 0xdf, 0x1e, 0x7c, 0x05, 0xb6, 0x20, 0xcf, 0x0b, 0x94, + 0x61, 0x5b, 0x13, 0x50, 0xfc, 0x29, 0xa3, 0xc8, 0x85, 0x60, 0xec, 0x31, 0x3c, 0xe4, 0x7a, 0x1d, + 0x34, 0x09, 0xc9, 0x9b, 0xfc, 0x31, 0x18, 0x84, 0x85, 0xb2, 0x89, 0x2c, 0xfd, 0x60, 0x32, 0x86, + 0xaf, 0xf2, 0x50, 0x72, 0x0c, 0xa6, 0x28, 0xc3, 0x6c, 0x57, 0x73, 0xdc, 0x03, 0xcd, 0x9c, 0x68, + 0x39, 0xfe, 0x8c, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xdf, 0x3a, 0x09, 0xcd, 0xd7, 0x78, 0x44, + 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x1c, 0x40, 0x9d, 0x84, 0xed, 0xeb, 0x7c, 0xeb, 0x51, 0xec, + 0x4e, 0x98, 0xf1, 0x1a, 0xa4, 0x5d, 0xe3, 0x95, 0x89, 0x68, 0xfe, 0x9c, 0xaf, 0x34, 0x01, 0x60, + 0xf0, 0x4b, 0x70, 0x66, 0x6c, 0x9b, 0x98, 0x80, 0xec, 0x2f, 0x18, 0xd9, 0xa9, 0x31, 0xad, 0x82, + 0x95, 0x84, 0x93, 0x52, 0xfe, 0x25, 0x2f, 0x09, 0x68, 0x88, 0xab, 0x8e, 0x5f, 0x14, 0x5c, 0xad, + 0x7d, 0xb2, 0xa8, 0xfd, 0x15, 0x8f, 0x1a, 0xc5, 0x0e, 0x44, 0x6d, 0x0f, 0x4e, 0x31, 0xc6, 0x93, + 0xad, 0xeb, 0x37, 0x78, 0x61, 0xa5, 0xe8, 0xfd, 0xc1, 0xd5, 0xfd, 0x45, 0x58, 0xf4, 0xc3, 0xc9, + 0x27, 0x52, 0x57, 0xed, 0x6a, 0xbd, 0x09, 0x98, 0xbf, 0xc9, 0x98, 0x79, 0xc5, 0xf7, 0x47, 0x5a, + 0x77, 0x47, 0xeb, 0x61, 0xf2, 0x5b, 0x20, 0x73, 0xf2, 0xbe, 0xe5, 0x20, 0xdd, 0xee, 0x58, 0xc6, + 0x2b, 0xa8, 0x35, 0x01, 0xf5, 0x5f, 0x0f, 0x2d, 0xd5, 0x7e, 0x08, 0x8e, 0x99, 0xab, 0x20, 0xfa, + 0xb3, 0x8a, 0x6a, 0x74, 0x7b, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0x0d, 0x5f, 0x29, 0x1f, 0x57, 0x25, + 0xb0, 0x62, 0x05, 0x72, 0xe4, 0x72, 0xd2, 0x94, 0xfc, 0x5b, 0x46, 0x34, 0x1b, 0xa0, 0x58, 0xe1, + 0xd0, 0xed, 0x6e, 0x4f, 0x73, 0x26, 0xa9, 0x7f, 0x7f, 0xc7, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, + 0x1d, 0xf6, 0x10, 0xee, 0xf6, 0x13, 0x30, 0x7c, 0x8b, 0x17, 0x0e, 0x8e, 0x61, 0x14, 0x7c, 0x60, + 0x98, 0x80, 0xe2, 0xef, 0x39, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x07, 0x8d, 0xd6, 0x41, 0x1d, 0xc3, + 0xf5, 0x1c, 0x3a, 0x07, 0x3f, 0x9c, 0xea, 0xdb, 0xef, 0x0e, 0x0e, 0x61, 0x4a, 0x08, 0x5a, 0xbc, + 0x09, 0xf9, 0xa1, 0x11, 0x43, 0x8a, 0xfa, 0x66, 0x41, 0xfe, 0xa5, 0xf7, 0x59, 0x31, 0x1a, 0x9c, + 0x30, 0x8a, 0xdb, 0x78, 0xdd, 0x07, 0xe7, 0x80, 0x68, 0xb2, 0x57, 0xdf, 0xf7, 0x97, 0x7e, 0x60, + 0x0c, 0x28, 0x5e, 0x87, 0xd9, 0x81, 0x19, 0x20, 0x9a, 0xea, 0x97, 0x19, 0x55, 0x36, 0x3c, 0x02, + 0x14, 0xd7, 0x21, 0x81, 0xfb, 0x79, 0x34, 0xfc, 0x57, 0x18, 0x9c, 0x98, 0x17, 0x3f, 0x09, 0x29, + 0xde, 0xc7, 0xa3, 0xa1, 0xbf, 0xca, 0xa0, 0x3e, 0x04, 0xc3, 0x79, 0x0f, 0x8f, 0x86, 0xff, 0x1a, + 0x87, 0x73, 0x08, 0x86, 0x4f, 0x1e, 0xc2, 0x7f, 0xfc, 0xf5, 0x04, 0xab, 0xc3, 0x3c, 0x76, 0xd7, + 0x60, 0x86, 0x35, 0xef, 0x68, 0xf4, 0xe7, 0xd9, 0xcd, 0x39, 0xa2, 0x78, 0x19, 0x92, 0x13, 0x06, + 0xfc, 0x37, 0x18, 0x94, 0xda, 0x17, 0xcb, 0x90, 0x09, 0x35, 0xec, 0x68, 0xf8, 0x6f, 0x32, 0x78, + 0x18, 0x85, 0x5d, 0x67, 0x0d, 0x3b, 0x9a, 0xe0, 0xb7, 0xb8, 0xeb, 0x0c, 0x81, 0xc3, 0xc6, 0x7b, + 0x75, 0x34, 0xfa, 0xb7, 0x79, 0xd4, 0x39, 0xa4, 0xf8, 0x02, 0xa4, 0xfd, 0xfa, 0x1b, 0x8d, 0xff, + 0x1d, 0x86, 0x0f, 0x30, 0x38, 0x02, 0xa1, 0xfa, 0x1f, 0x4d, 0xf1, 0xbb, 0x3c, 0x02, 0x21, 0x14, + 0xde, 0x46, 0xc3, 0x3d, 0x3d, 0x9a, 0xe9, 0x0b, 0x7c, 0x1b, 0x0d, 0xb5, 0x74, 0xbc, 0x9a, 0xa4, + 0x0c, 0x46, 0x53, 0xfc, 0x1e, 0x5f, 0x4d, 0x62, 0x8f, 0xdd, 0x18, 0x6e, 0x92, 0xd1, 0x1c, 0xbf, + 0xcf, 0xdd, 0x18, 0xea, 0x91, 0xc5, 0x3a, 0x48, 0xa3, 0x0d, 0x32, 0x9a, 0xef, 0x8b, 0x8c, 0x6f, + 0x6e, 0xa4, 0x3f, 0x16, 0x5f, 0x84, 0x53, 0xe3, 0x9b, 0x63, 0x34, 0xeb, 0x97, 0xde, 0x1f, 0x7a, + 0x9d, 0x09, 0xf7, 0xc6, 0xe2, 0x5e, 0x50, 0x65, 0xc3, 0x8d, 0x31, 0x9a, 0xf6, 0xb5, 0xf7, 0x07, + 0x0b, 0x6d, 0xb8, 0x2f, 0x16, 0x4b, 0x00, 0x41, 0x4f, 0x8a, 0xe6, 0x7a, 0x9d, 0x71, 0x85, 0x40, + 0x78, 0x6b, 0xb0, 0x96, 0x14, 0x8d, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xef, 0x46, + 0xd1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x90, 0xe2, 0x35, 0x48, 0x59, 0x7d, 0xd3, 0xc4, 0xb9, 0x25, + 0x3d, 0xfc, 0x33, 0x22, 0xf9, 0xdf, 0x3f, 0x60, 0x60, 0x0e, 0x28, 0xae, 0x43, 0x12, 0x75, 0x9b, + 0xa8, 0x15, 0x85, 0xfc, 0x8f, 0x0f, 0x78, 0x3d, 0xc1, 0xd6, 0xc5, 0x17, 0x00, 0xe8, 0xcb, 0x34, + 0xf9, 0x95, 0x28, 0x02, 0xfb, 0x9f, 0x1f, 0xb0, 0x2f, 0x14, 0x02, 0x48, 0x40, 0x40, 0xbf, 0x77, + 0x78, 0x38, 0xc1, 0xbb, 0x83, 0x04, 0xe4, 0x05, 0xfc, 0x2a, 0xcc, 0xdc, 0x76, 0x6d, 0xcb, 0xd3, + 0x3a, 0x51, 0xe8, 0xff, 0x62, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb5, 0x1d, 0xe4, 0x69, 0x1d, 0x37, + 0x0a, 0xfb, 0xdf, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0xd7, 0x5c, 0x6f, 0x92, 0xe7, 0xfe, 0x1f, 0x0e, + 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xff, 0x0e, 0x3a, 0x8c, 0xc2, 0xbe, 0xc7, 0x9d, 0x66, 0xf6, 0xc5, + 0x4f, 0x42, 0x1a, 0xff, 0x4b, 0xbf, 0xda, 0x89, 0x00, 0xff, 0x2f, 0x03, 0x07, 0x08, 0x7c, 0x67, + 0xd7, 0x6b, 0x79, 0x46, 0x74, 0xb0, 0xff, 0x8f, 0xad, 0x34, 0xb7, 0x2f, 0x96, 0x20, 0xe3, 0x7a, + 0xad, 0x56, 0x9f, 0x4d, 0x34, 0x11, 0xf0, 0x1f, 0x7d, 0xe0, 0xbf, 0xe4, 0xfa, 0x98, 0x8d, 0xf3, + 0xe3, 0x0f, 0xeb, 0x60, 0xcb, 0xde, 0xb2, 0xe9, 0x31, 0x1d, 0x7c, 0x21, 0x09, 0x8f, 0xe8, 0x76, + 0xb7, 0x69, 0xbb, 0xab, 0x4d, 0xdb, 0x3b, 0x58, 0xb5, 0x2d, 0x66, 0x28, 0xc5, 0x6d, 0x0b, 0x2d, + 0x9e, 0xec, 0x44, 0x6e, 0xe9, 0x0c, 0x24, 0x1b, 0xfd, 0x66, 0xf3, 0x50, 0x12, 0x21, 0xee, 0xf6, + 0x9b, 0xec, 0x93, 0x12, 0xfc, 0xef, 0xd2, 0xf7, 0xe3, 0x90, 0x69, 0x68, 0xdd, 0x9e, 0x89, 0x6a, + 0x16, 0xaa, 0xb5, 0x25, 0x19, 0xa6, 0xc9, 0x03, 0x3c, 0x4f, 0x8c, 0x84, 0x1b, 0x53, 0x0a, 0xbb, + 0xf6, 0x35, 0x6b, 0xe4, 0x98, 0x32, 0xe6, 0x6b, 0xd6, 0x7c, 0xcd, 0x05, 0x7a, 0x4a, 0xe9, 0x6b, + 0x2e, 0xf8, 0x9a, 0x8b, 0xe4, 0xac, 0x32, 0xee, 0x6b, 0x2e, 0xfa, 0x9a, 0x75, 0x72, 0x16, 0x3f, + 0xeb, 0x6b, 0xd6, 0x7d, 0xcd, 0x25, 0x72, 0xfa, 0x9e, 0xf0, 0x35, 0x97, 0x7c, 0xcd, 0x65, 0x72, + 0xe8, 0x3e, 0xe7, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0xa0, 0x5d, 0xf2, 0x35, 0x57, 0x7c, 0xcd, + 0x55, 0xf2, 0xe5, 0xc8, 0x8c, 0xaf, 0xb9, 0x2a, 0x2d, 0xc2, 0x0c, 0x7d, 0xb2, 0xe7, 0xc8, 0xaf, + 0xb1, 0xf9, 0x1b, 0x53, 0x0a, 0x17, 0x04, 0xba, 0xe7, 0xc9, 0xd7, 0x21, 0xd3, 0x81, 0xee, 0xf9, + 0x40, 0xb7, 0x46, 0xbe, 0x91, 0x16, 0x03, 0xdd, 0x5a, 0xa0, 0xbb, 0x20, 0xcf, 0xe2, 0x75, 0x0f, + 0x74, 0x17, 0x02, 0xdd, 0x45, 0x39, 0x87, 0xe3, 0x1f, 0xe8, 0x2e, 0x06, 0xba, 0x75, 0x39, 0x7f, + 0x4e, 0x58, 0xce, 0x06, 0xba, 0x75, 0xe9, 0x59, 0xc8, 0xb8, 0xfd, 0xa6, 0xca, 0x3e, 0x1e, 0x20, + 0x5f, 0xa1, 0x64, 0xd6, 0x60, 0x05, 0x67, 0x04, 0x59, 0xd4, 0x1b, 0x53, 0x0a, 0xb8, 0xfd, 0x26, + 0x2b, 0x8c, 0x1b, 0x59, 0x20, 0xe7, 0x08, 0x2a, 0xf9, 0xf6, 0x72, 0x63, 0xf3, 0xad, 0x07, 0x85, + 0xa9, 0xef, 0x3e, 0x28, 0x4c, 0xfd, 0xeb, 0x83, 0xc2, 0xd4, 0xdb, 0x0f, 0x0a, 0xc2, 0x7b, 0x0f, + 0x0a, 0xc2, 0x8f, 0x1f, 0x14, 0x84, 0xfb, 0x47, 0x05, 0xe1, 0xab, 0x47, 0x05, 0xe1, 0x1b, 0x47, + 0x05, 0xe1, 0xdb, 0x47, 0x05, 0xe1, 0xad, 0xa3, 0x82, 0xf0, 0xdd, 0xa3, 0x82, 0xf0, 0xf6, 0x51, + 0x41, 0xf8, 0xe1, 0x51, 0x61, 0xea, 0xbd, 0xa3, 0x82, 0xf0, 0xe3, 0xa3, 0xc2, 0xd4, 0xfd, 0x1f, + 0x14, 0xa6, 0x9a, 0xd3, 0x24, 0x8d, 0x2e, 0xfc, 0x24, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xd1, 0x4a, + 0x50, 0xf2, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2039,64 +2059,47 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Sub) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(m.Sub))) - i += copy(data[i:], m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) + i += copy(dAtA[i:], m.Sub) } return i, nil } -func (m *SampleOneOf) Marshal() (data []byte, err error) { +func (m *SampleOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2105,129 +2108,129 @@ func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *SampleOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *SampleOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *SampleOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *SampleOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *SampleOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *SampleOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *SampleOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *SampleOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *SampleOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32One(data, i, uint32(m.Field9)) + i = encodeFixed32One(dAtA, i, uint32(m.Field9)) return i, nil } -func (m *SampleOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32One(data, i, uint32(m.Field10)) + i = encodeFixed32One(dAtA, i, uint32(m.Field10)) return i, nil } -func (m *SampleOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64One(data, i, uint64(m.Field11)) + i = encodeFixed64One(dAtA, i, uint64(m.Field11)) return i, nil } -func (m *SampleOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64One(data, i, uint64(m.Field12)) + i = encodeFixed64One(dAtA, i, uint64(m.Field12)) return i, nil } -func (m *SampleOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *SampleOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *SampleOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2235,36 +2238,36 @@ func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2403,7 +2406,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2447,7 +2450,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2455,43 +2458,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2817,8 +2820,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2830,7 +2833,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2858,7 +2861,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2873,11 +2876,11 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sub = string(data[iNdEx:postIndex]) + m.Sub = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -2896,8 +2899,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *SampleOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *SampleOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2909,7 +2912,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2934,14 +2937,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -2952,10 +2955,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -2969,7 +2972,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2989,7 +2992,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3009,7 +3012,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -3029,7 +3032,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3049,7 +3052,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -3070,7 +3073,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3088,10 +3091,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field9{v} case 10: if wireType != 5 { @@ -3102,10 +3105,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field10{v} case 11: if wireType != 1 { @@ -3116,14 +3119,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field11{v} case 12: if wireType != 1 { @@ -3134,14 +3137,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field12{v} case 13: if wireType != 0 { @@ -3155,7 +3158,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3176,7 +3179,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3191,7 +3194,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &SampleOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -3205,7 +3208,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3220,7 +3223,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &SampleOneOf_Field15{v} iNdEx = postIndex case 16: @@ -3235,7 +3238,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3250,14 +3253,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &SampleOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -3276,8 +3279,8 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { } return nil } -func skipOne(data []byte) (n int, err error) { - l := len(data) +func skipOne(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3288,7 +3291,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3306,7 +3309,7 @@ func skipOne(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3323,7 +3326,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3346,7 +3349,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3357,7 +3360,7 @@ func skipOne(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOne(data[start:]) + next, err := skipOne(dAtA[start:]) if err != nil { return 0, err } @@ -3381,30 +3384,34 @@ var ( ErrIntOverflowOne = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 379 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0x07, 0x70, 0xbb, 0x6e, 0xec, 0xf6, 0x9c, 0xd2, 0x60, 0x09, 0xe9, 0xd1, 0xc1, 0x42, 0x9d, - 0x58, 0x1a, 0x37, 0xfe, 0xd1, 0x1f, 0x6b, 0x85, 0x10, 0x0b, 0xaa, 0xd4, 0xfe, 0x01, 0x55, 0x0e, - 0x6c, 0x27, 0x52, 0x92, 0x8b, 0xb0, 0x3d, 0xb0, 0xe5, 0xcf, 0x61, 0x64, 0xe4, 0x4f, 0xc8, 0x98, - 0x91, 0x81, 0x21, 0x09, 0x0b, 0x63, 0xc6, 0x8c, 0x7c, 0x73, 0x96, 0xde, 0x0d, 0x5f, 0xdd, 0x7b, - 0xfa, 0x3c, 0x0f, 0xe7, 0x7b, 0xe2, 0xcd, 0x17, 0x35, 0x95, 0xaa, 0x8a, 0xa4, 0xaa, 0x47, 0x91, - 0x9a, 0xe5, 0xfd, 0xf9, 0x37, 0x55, 0xab, 0xc0, 0x41, 0x79, 0x71, 0x55, 0x8e, 0xeb, 0x51, 0x23, - 0xfb, 0x18, 0x89, 0x4a, 0x55, 0xaa, 0x48, 0x9b, 0x6c, 0x0a, 0xdd, 0xe9, 0x46, 0x57, 0xed, 0x37, - 0x97, 0x6f, 0x45, 0xe7, 0xb9, 0x91, 0xf2, 0x7b, 0xd0, 0x13, 0x4e, 0xd5, 0x48, 0xb2, 0xdf, 0xd9, - 0xef, 0x4f, 0x9f, 0x0e, 0xe5, 0xe5, 0x1f, 0x47, 0xf8, 0xcf, 0xc3, 0xe9, 0x7c, 0x92, 0x3f, 0xce, - 0xf2, 0xc7, 0x22, 0x20, 0xe1, 0x7e, 0x1c, 0xe7, 0x93, 0xaf, 0x03, 0x3d, 0x64, 0x7f, 0xb2, 0x9e, - 0xdc, 0x42, 0xf7, 0x2c, 0x31, 0x1d, 0x41, 0x8e, 0x58, 0x62, 0x96, 0x84, 0x1c, 0x48, 0x87, 0x25, - 0x61, 0x49, 0xe9, 0x18, 0xe2, 0xb0, 0xa4, 0x2c, 0x19, 0x75, 0x20, 0x67, 0x2c, 0x19, 0xcb, 0x0d, - 0xb9, 0x90, 0x63, 0x96, 0x1b, 0x96, 0x5b, 0xf2, 0x20, 0xaf, 0x59, 0x6e, 0x59, 0xee, 0xe8, 0x04, - 0x12, 0xb0, 0xdc, 0xb1, 0xdc, 0xd3, 0x29, 0xc4, 0x63, 0xb9, 0x0f, 0x2e, 0x84, 0xd7, 0xde, 0xf4, - 0x9a, 0x04, 0xe8, 0x1c, 0xe4, 0xb5, 0x57, 0xbd, 0x36, 0x36, 0x20, 0x1f, 0xe6, 0x1a, 0x1b, 0x18, - 0x8b, 0xa9, 0x0b, 0xeb, 0x19, 0x8b, 0x8d, 0x25, 0x74, 0x06, 0x3b, 0x31, 0x96, 0x18, 0x4b, 0xe9, - 0xd5, 0xe1, 0xff, 0x1b, 0x4b, 0x8d, 0x65, 0x74, 0x0e, 0xeb, 0x1a, 0xcb, 0x82, 0x2b, 0xe1, 0xe3, - 0xa1, 0x5e, 0xa6, 0x79, 0x55, 0x0d, 0xcb, 0x9c, 0x7a, 0x70, 0x3f, 0x16, 0xfd, 0xc3, 0x46, 0xe8, - 0x47, 0xc5, 0xac, 0xc0, 0xc0, 0xe7, 0xd6, 0x1f, 0xba, 0x42, 0xd4, 0x79, 0x55, 0xbf, 0xc0, 0x55, - 0xf1, 0xf0, 0x61, 0xb9, 0x09, 0xad, 0x15, 0xf2, 0x1b, 0x59, 0x6f, 0x42, 0x7b, 0x87, 0xec, 0x91, - 0xc5, 0x36, 0xb4, 0x7f, 0x20, 0x3f, 0x91, 0x5f, 0xc8, 0x12, 0x59, 0x21, 0x6b, 0xe4, 0xdf, 0x36, - 0xb4, 0x76, 0x38, 0xf7, 0x38, 0x17, 0x7f, 0x43, 0x4b, 0xba, 0x7a, 0x8d, 0x92, 0xff, 0x01, 0x00, - 0x00, 0xff, 0xff, 0xc7, 0x33, 0xb2, 0x1d, 0x93, 0x02, 0x00, 0x00, + // 404 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, + 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0x9e, 0x54, 0xe9, 0x95, 0xe1, 0xc9, 0x62, + 0xf2, 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x30, + 0x75, 0x0e, 0x24, 0xee, 0x8c, 0x7a, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30, + 0x32, 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f, + 0xf6, 0x60, 0xfb, 0x2b, 0xdf, 0x5d, 0xb9, 0xdc, 0xb8, 0x72, 0x6c, 0x5c, 0x75, 0x3d, 0x76, 0x85, + 0x1d, 0xdd, 0x7d, 0x75, 0x95, 0x8b, 0x23, 0x57, 0xd8, 0xbd, 0x83, 0xec, 0xa6, 0xba, 0xae, 0xcd, + 0xe8, 0xca, 0xe5, 0xe3, 0xcc, 0x65, 0x6e, 0xdc, 0x9a, 0xa9, 0x97, 0x6d, 0x6a, 0x43, 0x3b, 0xad, + 0xcf, 0xec, 0xbf, 0x97, 0x9d, 0xf3, 0xda, 0x98, 0x6f, 0xf1, 0x50, 0x46, 0x65, 0x6d, 0x10, 0x14, + 0xe8, 0xed, 0xc5, 0x6a, 0xdc, 0xff, 0x1d, 0xc9, 0xfe, 0xf9, 0x65, 0x7e, 0x77, 0x6b, 0xcf, 0x0a, + 0x7b, 0xb6, 0x8c, 0x51, 0x76, 0x3f, 0xdd, 0xd8, 0xdb, 0x2f, 0x93, 0x76, 0x13, 0xcc, 0xc5, 0xe2, + 0x7f, 0x66, 0x49, 0x70, 0x43, 0x81, 0xde, 0x60, 0x49, 0x58, 0x52, 0x8c, 0x14, 0xe8, 0x0e, 0x4b, + 0xca, 0x32, 0xc5, 0x4d, 0x05, 0x3a, 0x62, 0x99, 0xb2, 0xcc, 0xb0, 0xa3, 0x40, 0xef, 0xb0, 0xcc, + 0x58, 0x0e, 0xb1, 0xab, 0x40, 0x6f, 0xb2, 0x1c, 0xb2, 0x1c, 0x61, 0x4f, 0x81, 0x7e, 0xcb, 0x72, + 0xc4, 0x72, 0x8c, 0x5b, 0x0a, 0x74, 0xcc, 0x72, 0xcc, 0x72, 0x82, 0xdb, 0x0a, 0x74, 0x8f, 0xe5, + 0x24, 0xde, 0x93, 0xbd, 0xf5, 0xcd, 0x3e, 0xa0, 0x54, 0xa0, 0x77, 0xe7, 0x62, 0xf1, 0xba, 0x10, + 0x6c, 0x82, 0x7d, 0x05, 0xba, 0x1b, 0x6c, 0x12, 0x2c, 0xc1, 0x81, 0x02, 0x3d, 0x0c, 0x96, 0x04, + 0x4b, 0x71, 0x47, 0x81, 0xde, 0x0a, 0x96, 0x06, 0x9b, 0xe2, 0x9b, 0xd5, 0xfb, 0x07, 0x9b, 0x06, + 0x9b, 0xe1, 0xae, 0x02, 0x3d, 0x08, 0x36, 0x8b, 0x0f, 0x64, 0xbf, 0xac, 0xcd, 0x45, 0x6e, 0xcb, + 0xf2, 0x32, 0xb3, 0x38, 0x54, 0xa0, 0xfb, 0x89, 0x1c, 0xad, 0x1a, 0xd1, 0x7e, 0xea, 0x5c, 0x2c, + 0x64, 0x59, 0x9b, 0xcf, 0x6b, 0x3f, 0x1d, 0x48, 0x59, 0xd9, 0xb2, 0xba, 0x70, 0x85, 0x75, 0xcb, + 0xd3, 0x8f, 0x0f, 0x0d, 0x89, 0xc7, 0x86, 0xc4, 0xaf, 0x86, 0xc4, 0x53, 0x43, 0xf0, 0xdc, 0x10, + 0xbc, 0x34, 0x04, 0xf7, 0x9e, 0xe0, 0xbb, 0x27, 0xf8, 0xe1, 0x09, 0x7e, 0x7a, 0x82, 0x07, 0x4f, + 0xf0, 0xe8, 0x09, 0x9e, 0x3c, 0xc1, 0x5f, 0x4f, 0xe2, 0xd9, 0x13, 0xbc, 0x78, 0x12, 0xf7, 0x7f, + 0x48, 0x98, 0x6e, 0x5b, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x42, 0xd6, 0x88, + 0x93, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto index 5c91b6c7..51876e23 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go index f08f66fe..ec354a09 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go @@ -34,18 +34,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestSubbyMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -96,18 +96,18 @@ func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -131,20 +131,20 @@ func TestSampleOneOfMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -200,9 +200,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -217,9 +217,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -234,9 +234,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -251,9 +251,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -270,12 +270,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -285,12 +285,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestSampleOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -328,13 +328,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -350,13 +350,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go index b1e82f78..7d9877f3 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -37,7 +35,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -81,49 +81,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -549,229 +549,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3537 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x23, 0xe5, - 0xf5, 0x5f, 0xc7, 0x97, 0xd8, 0xc7, 0x89, 0xe3, 0x4c, 0xc2, 0xae, 0x37, 0xc0, 0x2e, 0x1b, 0x6e, - 0xcb, 0xf2, 0x27, 0xd9, 0xcd, 0xde, 0xcd, 0xbf, 0xa0, 0x5c, 0xbc, 0x21, 0xab, 0x24, 0x4e, 0xc7, - 0x09, 0x2c, 0xf4, 0x61, 0x34, 0xb1, 0xbf, 0x38, 0xde, 0x1d, 0xcf, 0xb8, 0x9e, 0xf1, 0xb2, 0xe1, - 0x89, 0x8a, 0x5e, 0x84, 0xaa, 0xde, 0x2b, 0x95, 0x7b, 0x0b, 0x52, 0x0b, 0xa5, 0x37, 0xe8, 0x4d, - 0x55, 0x9f, 0x2a, 0x55, 0xb4, 0x3c, 0x55, 0xb4, 0x4f, 0x7d, 0xe8, 0x43, 0xa1, 0x48, 0xa5, 0x2d, - 0x6d, 0xa9, 0xb4, 0x52, 0x91, 0x78, 0xe9, 0xf9, 0x6e, 0x73, 0xb1, 0x9d, 0x8c, 0x83, 0x44, 0x69, - 0x24, 0x2b, 0x9e, 0x73, 0xce, 0xef, 0x37, 0xdf, 0x9c, 0xef, 0x7c, 0xe7, 0x9c, 0xef, 0x1b, 0xc3, - 0x2f, 0x8f, 0xc1, 0x0d, 0x55, 0xcb, 0xaa, 0x1a, 0x64, 0xb2, 0xd1, 0xb4, 0x1c, 0x6b, 0xbd, 0xb5, - 0x31, 0x59, 0x21, 0x76, 0xb9, 0x59, 0x6b, 0x38, 0x56, 0x73, 0x82, 0xc9, 0x94, 0x21, 0x6e, 0x31, - 0x21, 0x2d, 0xc6, 0x97, 0x60, 0xf8, 0x5c, 0xcd, 0x20, 0x73, 0xae, 0x61, 0x89, 0x38, 0xca, 0x19, - 0x88, 0x6d, 0xa0, 0x30, 0x17, 0xb9, 0x21, 0x7a, 0x38, 0x3d, 0x75, 0xd3, 0x44, 0x1b, 0x68, 0x22, - 0x88, 0x58, 0xa1, 0x62, 0x95, 0x21, 0xc6, 0xdf, 0x8c, 0xc1, 0x48, 0x17, 0xad, 0xa2, 0x40, 0xcc, - 0xd4, 0xeb, 0x94, 0x31, 0x72, 0x38, 0xa5, 0xb2, 0xef, 0x4a, 0x0e, 0xfa, 0x1b, 0x7a, 0xf9, 0x92, - 0x5e, 0x25, 0xb9, 0x3e, 0x26, 0x96, 0x97, 0xca, 0x01, 0x80, 0x0a, 0x69, 0x10, 0xb3, 0x42, 0xcc, - 0xf2, 0x56, 0x2e, 0x8a, 0xa3, 0x48, 0xa9, 0x3e, 0x89, 0x72, 0x3b, 0x0c, 0x37, 0x5a, 0xeb, 0x46, - 0xad, 0xac, 0xf9, 0xcc, 0x00, 0xcd, 0xe2, 0x6a, 0x96, 0x2b, 0xe6, 0x3c, 0xe3, 0x5b, 0x61, 0xe8, - 0x41, 0xa2, 0x5f, 0xf2, 0x9b, 0xa6, 0x99, 0x69, 0x86, 0x8a, 0x7d, 0x86, 0xb3, 0x30, 0x50, 0x27, - 0xb6, 0x8d, 0x03, 0xd0, 0x9c, 0xad, 0x06, 0xc9, 0xc5, 0xd8, 0xd3, 0xdf, 0xd0, 0xf1, 0xf4, 0xed, - 0x4f, 0x9e, 0x16, 0xa8, 0x55, 0x04, 0x29, 0xd3, 0x90, 0x22, 0x66, 0xab, 0xce, 0x19, 0xe2, 0xdb, - 0xf8, 0xaf, 0x80, 0x16, 0xed, 0x2c, 0x49, 0x0a, 0x13, 0x14, 0xfd, 0x36, 0x69, 0x5e, 0xae, 0x95, - 0x49, 0x2e, 0xc1, 0x08, 0x6e, 0xed, 0x20, 0x28, 0x71, 0x7d, 0x3b, 0x87, 0xc4, 0xe1, 0xa3, 0xa4, - 0xc8, 0x15, 0x87, 0x98, 0x76, 0xcd, 0x32, 0x73, 0xfd, 0x8c, 0xe4, 0xe6, 0x2e, 0xb3, 0x48, 0x8c, - 0x4a, 0x3b, 0x85, 0x87, 0x53, 0x4e, 0x41, 0xbf, 0xd5, 0x70, 0xf0, 0x9b, 0x9d, 0x4b, 0xe2, 0xfc, - 0xa4, 0xa7, 0xae, 0xeb, 0x1a, 0x08, 0x45, 0x6e, 0xa3, 0x4a, 0x63, 0x65, 0x01, 0xb2, 0xb6, 0xd5, - 0x6a, 0x96, 0x89, 0x56, 0xb6, 0x2a, 0x44, 0xab, 0x99, 0x1b, 0x56, 0x2e, 0xc5, 0x08, 0x0e, 0x76, - 0x3e, 0x08, 0x33, 0x9c, 0x45, 0xbb, 0x05, 0x34, 0x53, 0x33, 0x76, 0xe0, 0x5a, 0xd9, 0x0b, 0x09, - 0x7b, 0xcb, 0x74, 0xf4, 0x2b, 0xb9, 0x01, 0x16, 0x21, 0xe2, 0x6a, 0xfc, 0xdf, 0x71, 0x18, 0xea, - 0x25, 0xc4, 0xee, 0x84, 0xf8, 0x06, 0x7d, 0x4a, 0x0c, 0xb0, 0x5d, 0xf8, 0x80, 0x63, 0x82, 0x4e, - 0x4c, 0xbc, 0x4f, 0x27, 0x4e, 0x43, 0xda, 0x24, 0xb6, 0x43, 0x2a, 0x3c, 0x22, 0xa2, 0x3d, 0xc6, - 0x14, 0x70, 0x50, 0x67, 0x48, 0xc5, 0xde, 0x57, 0x48, 0x5d, 0x80, 0x21, 0x77, 0x48, 0x5a, 0x53, - 0x37, 0xab, 0x32, 0x36, 0x27, 0xc3, 0x46, 0x32, 0x51, 0x90, 0x38, 0x95, 0xc2, 0xd4, 0x0c, 0x09, - 0x5c, 0x2b, 0x73, 0x00, 0x96, 0x49, 0xac, 0x0d, 0x5c, 0x5e, 0x65, 0x03, 0xe3, 0xa4, 0xbb, 0x97, - 0x8a, 0xd4, 0xa4, 0xc3, 0x4b, 0x16, 0x97, 0x96, 0x0d, 0xe5, 0xac, 0x17, 0x6a, 0xfd, 0xdb, 0x44, - 0xca, 0x12, 0x5f, 0x64, 0x1d, 0xd1, 0xb6, 0x06, 0x99, 0x26, 0xa1, 0x71, 0x8f, 0x2e, 0xe6, 0x4f, - 0x96, 0x62, 0x83, 0x98, 0x08, 0x7d, 0x32, 0x55, 0xc0, 0xf8, 0x83, 0x0d, 0x36, 0xfd, 0x97, 0xca, - 0x8d, 0xe0, 0x0a, 0x34, 0x16, 0x56, 0xc0, 0xb2, 0xd0, 0x80, 0x14, 0x2e, 0xa3, 0x6c, 0xec, 0x0c, - 0x64, 0x82, 0xee, 0x51, 0x46, 0x21, 0x6e, 0x3b, 0x7a, 0xd3, 0x61, 0x51, 0x18, 0x57, 0xf9, 0x85, - 0x92, 0x85, 0x28, 0x26, 0x19, 0x96, 0xe5, 0xe2, 0x2a, 0xfd, 0x3a, 0x76, 0x1a, 0x06, 0x03, 0xb7, - 0xef, 0x15, 0x38, 0xfe, 0x58, 0x02, 0x46, 0xbb, 0xc5, 0x5c, 0xd7, 0xf0, 0xc7, 0xe5, 0x83, 0x11, - 0xb0, 0x4e, 0x9a, 0x18, 0x77, 0x94, 0x41, 0x5c, 0x61, 0x44, 0xc5, 0x0d, 0x7d, 0x9d, 0x18, 0x18, - 0x4d, 0x91, 0xc3, 0x99, 0xa9, 0xdb, 0x7b, 0x8a, 0xea, 0x89, 0x45, 0x0a, 0x51, 0x39, 0x52, 0xb9, - 0x0b, 0x62, 0x22, 0xc5, 0x51, 0x86, 0x23, 0xbd, 0x31, 0xd0, 0x58, 0x54, 0x19, 0x4e, 0xb9, 0x16, - 0x52, 0xf4, 0x3f, 0xf7, 0x6d, 0x82, 0x8d, 0x39, 0x49, 0x05, 0xd4, 0xaf, 0xca, 0x18, 0x24, 0x59, - 0x98, 0x55, 0x88, 0x2c, 0x0d, 0xee, 0x35, 0x9d, 0x98, 0x0a, 0xd9, 0xd0, 0x5b, 0x86, 0xa3, 0x5d, - 0xd6, 0x8d, 0x16, 0x61, 0x01, 0x83, 0x13, 0x23, 0x84, 0xf7, 0x52, 0x99, 0x72, 0x10, 0xd2, 0x3c, - 0x2a, 0x6b, 0x88, 0xb9, 0xc2, 0xb2, 0x4f, 0x5c, 0xe5, 0x81, 0xba, 0x40, 0x25, 0xf4, 0xf6, 0x17, - 0x6d, 0x5c, 0x0b, 0x62, 0x6a, 0xd9, 0x2d, 0xa8, 0x80, 0xdd, 0xfe, 0x74, 0x7b, 0xe2, 0xbb, 0xbe, - 0xfb, 0xe3, 0xb5, 0xc7, 0xe2, 0xf8, 0x4f, 0xfb, 0x20, 0xc6, 0xd6, 0xdb, 0x10, 0xa4, 0x57, 0xef, - 0x5f, 0x29, 0x68, 0x73, 0xc5, 0xb5, 0x99, 0xc5, 0x42, 0x36, 0xa2, 0x64, 0x00, 0x98, 0xe0, 0xdc, - 0x62, 0x71, 0x7a, 0x35, 0xdb, 0xe7, 0x5e, 0x2f, 0x2c, 0xaf, 0x9e, 0x3a, 0x91, 0x8d, 0xba, 0x80, - 0x35, 0x2e, 0x88, 0xf9, 0x0d, 0x8e, 0x4f, 0x65, 0xe3, 0x18, 0x09, 0x03, 0x9c, 0x60, 0xe1, 0x42, - 0x61, 0x0e, 0x2d, 0x12, 0x41, 0x09, 0xda, 0xf4, 0x2b, 0x83, 0x90, 0x62, 0x92, 0x99, 0x62, 0x71, - 0x31, 0x9b, 0x74, 0x39, 0x4b, 0xab, 0xea, 0xc2, 0xf2, 0x7c, 0x36, 0xe5, 0x72, 0xce, 0xab, 0xc5, - 0xb5, 0x95, 0x2c, 0xb8, 0x0c, 0x4b, 0x85, 0x52, 0x69, 0x7a, 0xbe, 0x90, 0x4d, 0xbb, 0x16, 0x33, - 0xf7, 0xaf, 0x16, 0x4a, 0xd9, 0x81, 0xc0, 0xb0, 0xf0, 0x16, 0x83, 0xee, 0x2d, 0x0a, 0xcb, 0x6b, - 0x4b, 0xd9, 0x8c, 0x32, 0x0c, 0x83, 0xfc, 0x16, 0x72, 0x10, 0x43, 0x6d, 0x22, 0x1c, 0x69, 0xd6, - 0x1b, 0x08, 0x67, 0x19, 0x0e, 0x08, 0xd0, 0x42, 0x19, 0x9f, 0x85, 0x38, 0x8b, 0x2e, 0x8c, 0xe2, - 0xcc, 0xe2, 0xf4, 0x4c, 0x61, 0x51, 0x2b, 0xae, 0xac, 0x2e, 0x14, 0x97, 0xa7, 0x17, 0xd1, 0x77, - 0xae, 0x4c, 0x2d, 0x7c, 0x74, 0x6d, 0x41, 0x2d, 0xcc, 0xa1, 0xff, 0x7c, 0xb2, 0x95, 0xc2, 0xf4, - 0x2a, 0xca, 0xa2, 0xe3, 0x47, 0x60, 0xb4, 0x5b, 0x9e, 0xe9, 0xb6, 0x32, 0xc6, 0x9f, 0x8b, 0xc0, - 0x48, 0x97, 0x94, 0xd9, 0x75, 0x15, 0xdd, 0x0d, 0x71, 0x1e, 0x69, 0xbc, 0x88, 0xdc, 0xd6, 0x35, - 0xf7, 0xb2, 0xb8, 0xeb, 0x28, 0x24, 0x0c, 0xe7, 0x2f, 0xa4, 0xd1, 0x6d, 0x0a, 0x29, 0xa5, 0xe8, - 0x08, 0xa7, 0x47, 0x22, 0x90, 0xdb, 0x8e, 0x3b, 0x64, 0xbd, 0xf7, 0x05, 0xd6, 0xfb, 0x9d, 0xed, - 0x03, 0x38, 0xb4, 0xfd, 0x33, 0x74, 0x8c, 0xe2, 0xf9, 0x08, 0xec, 0xed, 0xde, 0x6f, 0x74, 0x1d, - 0xc3, 0x5d, 0x90, 0xa8, 0x13, 0x67, 0xd3, 0x92, 0x35, 0xf7, 0x96, 0x2e, 0x99, 0x9c, 0xaa, 0xdb, - 0x7d, 0x25, 0x50, 0xfe, 0x52, 0x10, 0xdd, 0xae, 0x69, 0xe0, 0xa3, 0xe9, 0x18, 0xe9, 0xa3, 0x7d, - 0x70, 0x4d, 0x57, 0xf2, 0xae, 0x03, 0xbd, 0x1e, 0xa0, 0x66, 0x36, 0x5a, 0x0e, 0xaf, 0xab, 0x3c, - 0xcd, 0xa4, 0x98, 0x84, 0x2d, 0x61, 0x9a, 0x42, 0x5a, 0x8e, 0xab, 0x8f, 0x32, 0x3d, 0x70, 0x11, - 0x33, 0x38, 0xe3, 0x0d, 0x34, 0xc6, 0x06, 0x7a, 0x60, 0x9b, 0x27, 0xed, 0x28, 0x59, 0x47, 0x21, - 0x5b, 0x36, 0x6a, 0xc4, 0x74, 0x34, 0xdb, 0x69, 0x12, 0xbd, 0x5e, 0x33, 0xab, 0x2c, 0x8f, 0x26, - 0xf3, 0xf1, 0x0d, 0xdd, 0xb0, 0x89, 0x3a, 0xc4, 0xd5, 0x25, 0xa9, 0xa5, 0x08, 0x56, 0x2c, 0x9a, - 0x3e, 0x44, 0x22, 0x80, 0xe0, 0x6a, 0x17, 0x31, 0xfe, 0xbb, 0x7e, 0x48, 0xfb, 0xba, 0x33, 0xe5, - 0x10, 0x0c, 0x5c, 0xd4, 0x2f, 0xeb, 0x9a, 0xec, 0xb8, 0xb9, 0x27, 0xd2, 0x54, 0xb6, 0x22, 0xba, - 0xee, 0xa3, 0x30, 0xca, 0x4c, 0xf0, 0x19, 0xf1, 0x46, 0x65, 0x43, 0xb7, 0x6d, 0xe6, 0xb4, 0x24, - 0x33, 0x55, 0xa8, 0xae, 0x48, 0x55, 0xb3, 0x52, 0xa3, 0x9c, 0x84, 0x11, 0x86, 0xa8, 0x63, 0xe2, - 0xad, 0x35, 0x0c, 0xa2, 0xd1, 0x3d, 0x80, 0xcd, 0xf2, 0xa9, 0x3b, 0xb2, 0x61, 0x6a, 0xb1, 0x24, - 0x0c, 0xe8, 0x88, 0x6c, 0x65, 0x1e, 0xae, 0x67, 0xb0, 0x2a, 0x31, 0x49, 0x53, 0x77, 0x88, 0x46, - 0x3e, 0xde, 0x42, 0x5b, 0x4d, 0x37, 0x2b, 0xda, 0xa6, 0x6e, 0x6f, 0xe6, 0x46, 0xfd, 0x04, 0xfb, - 0xa9, 0xed, 0xbc, 0x30, 0x2d, 0x30, 0xcb, 0x69, 0xb3, 0x72, 0x0f, 0xda, 0x29, 0x79, 0xd8, 0xcb, - 0x88, 0xd0, 0x29, 0xf8, 0xcc, 0x5a, 0x79, 0x93, 0x94, 0x2f, 0x69, 0x2d, 0x67, 0xe3, 0x4c, 0xee, - 0x5a, 0x3f, 0x03, 0x1b, 0x64, 0x89, 0xd9, 0xcc, 0x52, 0x93, 0x35, 0xb4, 0x50, 0x4a, 0x30, 0x40, - 0xe7, 0xa3, 0x5e, 0x7b, 0x08, 0x87, 0x6d, 0x35, 0x59, 0x8d, 0xc8, 0x74, 0x59, 0xdc, 0x3e, 0x27, - 0x4e, 0x14, 0x05, 0x60, 0x09, 0xfb, 0xd3, 0x7c, 0xbc, 0xb4, 0x52, 0x28, 0xcc, 0xa9, 0x69, 0xc9, - 0x72, 0xce, 0x6a, 0xd2, 0x98, 0xaa, 0x5a, 0xae, 0x8f, 0xd3, 0x3c, 0xa6, 0xaa, 0x96, 0xf4, 0x30, - 0xfa, 0xab, 0x5c, 0xe6, 0x8f, 0x8d, 0x7b, 0x17, 0xd1, 0xac, 0xdb, 0xb9, 0x6c, 0xc0, 0x5f, 0xe5, - 0xf2, 0x3c, 0x37, 0x10, 0x61, 0x6e, 0xe3, 0x92, 0xb8, 0xc6, 0xf3, 0x97, 0x1f, 0x38, 0xdc, 0xf1, - 0x94, 0xed, 0x50, 0xbc, 0x63, 0x63, 0xab, 0x13, 0xa8, 0x04, 0xee, 0xd8, 0xd8, 0x6a, 0x87, 0xdd, - 0xcc, 0x36, 0x60, 0x4d, 0x52, 0x46, 0x97, 0x57, 0x72, 0xfb, 0xfc, 0xd6, 0x3e, 0x85, 0x32, 0x89, - 0x81, 0x5c, 0xd6, 0x88, 0xa9, 0xaf, 0xe3, 0xdc, 0xeb, 0x4d, 0xfc, 0x62, 0xe7, 0x0e, 0xfa, 0x8d, - 0x33, 0xe5, 0x72, 0x81, 0x69, 0xa7, 0x99, 0x52, 0x39, 0x02, 0xc3, 0xd6, 0xfa, 0xc5, 0x32, 0x0f, - 0x2e, 0x0d, 0x79, 0x36, 0x6a, 0x57, 0x72, 0x37, 0x31, 0x37, 0x0d, 0x51, 0x05, 0x0b, 0xad, 0x15, - 0x26, 0x56, 0x6e, 0x43, 0x72, 0x7b, 0x53, 0x6f, 0x36, 0x58, 0x91, 0xb6, 0xd1, 0xa9, 0x24, 0x77, - 0x33, 0x37, 0xe5, 0xf2, 0x65, 0x29, 0x56, 0x0a, 0x70, 0x90, 0x3e, 0xbc, 0xa9, 0x9b, 0x96, 0xd6, - 0xb2, 0x89, 0xe6, 0x0d, 0xd1, 0x9d, 0x8b, 0x5b, 0xe8, 0xb0, 0xd4, 0xeb, 0xa4, 0xd9, 0x9a, 0x8d, - 0xc9, 0x4c, 0x1a, 0xc9, 0xe9, 0xb9, 0x00, 0xa3, 0x2d, 0xb3, 0x66, 0x62, 0x88, 0xa3, 0x86, 0x82, - 0xf9, 0x82, 0xcd, 0xfd, 0xb9, 0x7f, 0x9b, 0xa6, 0x7b, 0xcd, 0x6f, 0xcd, 0x83, 0x44, 0x1d, 0x69, - 0x75, 0x0a, 0xc7, 0xf3, 0x30, 0xe0, 0x8f, 0x1d, 0x25, 0x05, 0x3c, 0x7a, 0xb0, 0xba, 0x61, 0x45, - 0x9d, 0x2d, 0xce, 0xd1, 0x5a, 0xf8, 0x40, 0x01, 0x0b, 0x1b, 0xd6, 0xe4, 0xc5, 0x85, 0xd5, 0x82, - 0xa6, 0xae, 0x2d, 0xaf, 0x2e, 0x2c, 0x15, 0xb2, 0xd1, 0x23, 0xa9, 0xe4, 0x5b, 0xfd, 0xd9, 0x87, - 0xf1, 0xaf, 0x6f, 0xfc, 0x95, 0x3e, 0xc8, 0x04, 0xfb, 0x60, 0xe5, 0xff, 0x61, 0x9f, 0xdc, 0xb4, - 0xda, 0xc4, 0xd1, 0x1e, 0xac, 0x35, 0x59, 0x38, 0xd7, 0x75, 0xde, 0x49, 0xba, 0x33, 0x31, 0x2a, - 0xac, 0x70, 0x7b, 0x7f, 0x1f, 0xda, 0x9c, 0x63, 0x26, 0xca, 0x22, 0x1c, 0x44, 0x97, 0x61, 0xaf, - 0x69, 0x56, 0xf4, 0x66, 0x45, 0xf3, 0x8e, 0x0b, 0x34, 0xbd, 0x8c, 0x71, 0x60, 0x5b, 0xbc, 0x92, - 0xb8, 0x2c, 0xd7, 0x99, 0x56, 0x49, 0x18, 0x7b, 0x29, 0x76, 0x5a, 0x98, 0xb6, 0x45, 0x4d, 0x74, - 0xbb, 0xa8, 0xc1, 0xde, 0xab, 0xae, 0x37, 0x30, 0x6c, 0x9c, 0xe6, 0x16, 0xeb, 0xde, 0x92, 0x6a, - 0x12, 0x05, 0x05, 0x7a, 0xfd, 0xc1, 0xcd, 0x81, 0xdf, 0x8f, 0x7f, 0x88, 0xc2, 0x80, 0xbf, 0x83, - 0xa3, 0x0d, 0x71, 0x99, 0xa5, 0xf9, 0x08, 0xcb, 0x02, 0x37, 0xee, 0xd8, 0xef, 0x4d, 0xcc, 0xd2, - 0xfc, 0x9f, 0x4f, 0xf0, 0xbe, 0x4a, 0xe5, 0x48, 0x5a, 0x7b, 0x69, 0xac, 0x11, 0xde, 0xad, 0x27, - 0x55, 0x71, 0x85, 0xc9, 0x2e, 0x71, 0xd1, 0x66, 0xdc, 0x09, 0xc6, 0x7d, 0xd3, 0xce, 0xdc, 0xe7, - 0x4b, 0x8c, 0x3c, 0x75, 0xbe, 0xa4, 0x2d, 0x17, 0xd5, 0xa5, 0xe9, 0x45, 0x55, 0xc0, 0x95, 0xfd, - 0x10, 0x33, 0xf4, 0x87, 0xb6, 0x82, 0x95, 0x82, 0x89, 0x7a, 0x75, 0x3c, 0x32, 0xd0, 0x23, 0x8f, - 0x60, 0x7e, 0x66, 0xa2, 0x0f, 0x30, 0xf4, 0x27, 0x21, 0xce, 0xfc, 0xa5, 0x00, 0x08, 0x8f, 0x65, - 0xf7, 0x28, 0x49, 0x88, 0xcd, 0x16, 0x55, 0x1a, 0xfe, 0x18, 0xef, 0x5c, 0xaa, 0xad, 0x2c, 0x14, - 0x66, 0x71, 0x05, 0x8c, 0x9f, 0x84, 0x04, 0x77, 0x02, 0x5d, 0x1a, 0xae, 0x1b, 0x10, 0xc4, 0x2f, - 0x05, 0x47, 0x44, 0x6a, 0xd7, 0x96, 0x66, 0x0a, 0x6a, 0xb6, 0xcf, 0x3f, 0xbd, 0x3f, 0x8f, 0x40, - 0xda, 0xd7, 0x50, 0xd1, 0x52, 0xae, 0x1b, 0x86, 0xf5, 0xa0, 0xa6, 0x1b, 0x35, 0xcc, 0x50, 0x7c, - 0x7e, 0x80, 0x89, 0xa6, 0xa9, 0xa4, 0x57, 0xff, 0xfd, 0x57, 0x62, 0xf3, 0x99, 0x08, 0x64, 0xdb, - 0x9b, 0xb1, 0xb6, 0x01, 0x46, 0x3e, 0xd4, 0x01, 0x3e, 0x15, 0x81, 0x4c, 0xb0, 0x03, 0x6b, 0x1b, - 0xde, 0xa1, 0x0f, 0x75, 0x78, 0x4f, 0x46, 0x60, 0x30, 0xd0, 0x77, 0xfd, 0x4f, 0x8d, 0xee, 0x89, - 0x28, 0x8c, 0x74, 0xc1, 0x61, 0x02, 0xe2, 0x0d, 0x2a, 0xef, 0x99, 0xef, 0xe8, 0xe5, 0x5e, 0x13, - 0xb4, 0xfe, 0xad, 0xe8, 0x4d, 0x47, 0xf4, 0xb3, 0x58, 0x2f, 0x6b, 0x15, 0x4c, 0xaa, 0xb5, 0x8d, - 0x1a, 0xb6, 0x6f, 0x7c, 0xc7, 0xc2, 0xbb, 0xd6, 0x21, 0x4f, 0xce, 0xb7, 0xc7, 0xff, 0x07, 0x4a, - 0xc3, 0xb2, 0x6b, 0x4e, 0xed, 0x32, 0x3d, 0x9e, 0x93, 0x1b, 0x69, 0xda, 0xc5, 0xc6, 0xd4, 0xac, - 0xd4, 0x2c, 0x98, 0x8e, 0x6b, 0x6d, 0x92, 0xaa, 0xde, 0x66, 0x4d, 0xd3, 0x50, 0x54, 0xcd, 0x4a, - 0x8d, 0x6b, 0x8d, 0x8d, 0x66, 0xc5, 0x6a, 0xd1, 0x86, 0x80, 0xdb, 0xd1, 0xac, 0x17, 0x51, 0xd3, - 0x5c, 0xe6, 0x9a, 0x88, 0x8e, 0xcd, 0xdb, 0xc1, 0x0f, 0xa8, 0x69, 0x2e, 0xe3, 0x26, 0xb7, 0xc2, - 0x90, 0x5e, 0xad, 0x36, 0x29, 0xb9, 0x24, 0xe2, 0x6d, 0x68, 0xc6, 0x15, 0x33, 0xc3, 0xb1, 0xf3, - 0x90, 0x94, 0x7e, 0xa0, 0x85, 0x85, 0x7a, 0x02, 0x6b, 0x3e, 0x3b, 0x47, 0xe9, 0xa3, 0x9b, 0x7a, - 0x53, 0x2a, 0xf1, 0xa6, 0x35, 0x5b, 0xf3, 0x0e, 0xf4, 0xfa, 0x50, 0x9f, 0x54, 0xd3, 0x35, 0xdb, - 0x3d, 0xc1, 0x19, 0x7f, 0x1e, 0xcb, 0x6b, 0xf0, 0x40, 0x52, 0x99, 0x83, 0xa4, 0x61, 0x61, 0x7c, - 0x50, 0x04, 0x3f, 0x0d, 0x3f, 0x1c, 0x72, 0x86, 0x39, 0xb1, 0x28, 0xec, 0x55, 0x17, 0x39, 0xf6, - 0x9b, 0x08, 0x24, 0xa5, 0x18, 0x0b, 0x45, 0xac, 0xa1, 0x3b, 0x9b, 0x8c, 0x2e, 0x3e, 0xd3, 0x97, - 0x8d, 0xa8, 0xec, 0x9a, 0xca, 0xb1, 0x9b, 0x31, 0x59, 0x08, 0x08, 0x39, 0xbd, 0xa6, 0xf3, 0x6a, - 0x10, 0xbd, 0xc2, 0x1a, 0x5c, 0xab, 0x5e, 0xc7, 0x99, 0xb4, 0xe5, 0xbc, 0x0a, 0xf9, 0xac, 0x10, - 0xd3, 0x73, 0x71, 0xa7, 0xa9, 0xd7, 0x8c, 0x80, 0x6d, 0x8c, 0xd9, 0x66, 0xa5, 0xc2, 0x35, 0xce, - 0xc3, 0x7e, 0xc9, 0x5b, 0x21, 0x8e, 0x8e, 0xcd, 0x73, 0xc5, 0x03, 0x25, 0xd8, 0x69, 0xd7, 0x3e, - 0x61, 0x30, 0x27, 0xf4, 0x12, 0x3b, 0x73, 0x01, 0x1b, 0x59, 0xab, 0xde, 0xee, 0x89, 0x99, 0x6c, - 0xdb, 0xbe, 0xcb, 0xbe, 0x27, 0xf2, 0x00, 0x78, 0x4d, 0xc5, 0x73, 0x7d, 0xd1, 0xf9, 0x95, 0x99, - 0x17, 0xfb, 0xc6, 0xe6, 0x39, 0x6e, 0x45, 0x7a, 0x50, 0x25, 0x1b, 0x06, 0x29, 0x53, 0xef, 0xc0, - 0xb3, 0x37, 0xc2, 0x1d, 0xd5, 0x9a, 0xb3, 0xd9, 0x5a, 0x9f, 0xc0, 0x3b, 0x4c, 0x56, 0xad, 0xaa, - 0xe5, 0xbd, 0xce, 0xa0, 0x57, 0xec, 0x82, 0x7d, 0x13, 0xaf, 0x34, 0x52, 0xae, 0x74, 0x2c, 0xf4, - 0xfd, 0x47, 0x7e, 0x19, 0x46, 0x84, 0xb1, 0xc6, 0xce, 0x54, 0x79, 0x0b, 0xaa, 0xec, 0xb8, 0x21, - 0xcf, 0xbd, 0xfc, 0x26, 0x2b, 0x09, 0xea, 0xb0, 0x80, 0x52, 0x1d, 0x6f, 0x52, 0xf3, 0x2a, 0x5c, - 0x13, 0xe0, 0xe3, 0x31, 0x8c, 0x5b, 0xee, 0x9d, 0x19, 0x5f, 0x11, 0x8c, 0x23, 0x3e, 0xc6, 0x92, - 0x80, 0xe6, 0x67, 0x61, 0x70, 0x37, 0x5c, 0xbf, 0x12, 0x5c, 0x03, 0xc4, 0x4f, 0x32, 0x0f, 0x43, - 0x8c, 0xa4, 0xdc, 0xb2, 0x1d, 0xab, 0xce, 0x12, 0xc4, 0xce, 0x34, 0xbf, 0x7e, 0x93, 0x07, 0x55, - 0x86, 0xc2, 0x66, 0x5d, 0x54, 0xfe, 0x5e, 0x18, 0xa5, 0x12, 0xb6, 0x06, 0xfd, 0x6c, 0xe1, 0x47, - 0x08, 0xb9, 0xdf, 0x3e, 0xc2, 0x63, 0x6f, 0xc4, 0x25, 0xf0, 0xf1, 0xfa, 0x66, 0xa2, 0x4a, 0x1c, - 0xcc, 0x6d, 0xb8, 0xff, 0x33, 0x0c, 0x65, 0xc7, 0x77, 0x0c, 0xb9, 0xc7, 0xdf, 0x0e, 0xce, 0xc4, - 0x3c, 0x47, 0x4e, 0x1b, 0x46, 0x7e, 0x0d, 0xf6, 0x75, 0x99, 0xd9, 0x1e, 0x38, 0x9f, 0x10, 0x9c, - 0xa3, 0x1d, 0xb3, 0x4b, 0x69, 0x57, 0x40, 0xca, 0xdd, 0xf9, 0xe8, 0x81, 0xf3, 0x49, 0xc1, 0xa9, - 0x08, 0xac, 0x9c, 0x16, 0xca, 0x78, 0x1e, 0x86, 0x71, 0xa7, 0xbe, 0x6e, 0xd9, 0x62, 0xdf, 0xdb, - 0x03, 0xdd, 0x53, 0x82, 0x6e, 0x48, 0x00, 0xd9, 0x2e, 0x98, 0x72, 0x9d, 0x85, 0xe4, 0x06, 0x6e, - 0x80, 0x7a, 0xa0, 0x78, 0x5a, 0x50, 0xf4, 0x53, 0x7b, 0x0a, 0x9d, 0x86, 0x81, 0xaa, 0x25, 0xd2, - 0x70, 0x38, 0xfc, 0x19, 0x01, 0x4f, 0x4b, 0x8c, 0xa0, 0x68, 0x58, 0x8d, 0x96, 0x41, 0x73, 0x74, - 0x38, 0xc5, 0xd7, 0x25, 0x85, 0xc4, 0x08, 0x8a, 0x5d, 0xb8, 0xf5, 0x1b, 0x92, 0xc2, 0xf6, 0xf9, - 0xf3, 0x6e, 0x7a, 0xd6, 0x6b, 0x6c, 0x59, 0x66, 0x2f, 0x83, 0x78, 0x56, 0x30, 0x80, 0x80, 0x50, - 0x82, 0x3b, 0x21, 0xd5, 0xeb, 0x44, 0x7c, 0x53, 0xc0, 0x93, 0x44, 0xce, 0x00, 0xae, 0x33, 0x99, - 0x64, 0xe8, 0xbb, 0x95, 0x70, 0x8a, 0x6f, 0x09, 0x8a, 0x8c, 0x0f, 0x26, 0x1e, 0xc3, 0x21, 0xb6, - 0x83, 0x5b, 0xf5, 0x1e, 0x48, 0x9e, 0x97, 0x8f, 0x21, 0x20, 0xc2, 0x95, 0xeb, 0xc4, 0x2c, 0x6f, - 0xf6, 0xc6, 0xf0, 0x82, 0x74, 0xa5, 0xc4, 0x50, 0x0a, 0xcc, 0x3c, 0x75, 0xbd, 0x89, 0x9b, 0x6b, - 0xa3, 0xa7, 0xe9, 0xf8, 0xb6, 0xe0, 0x18, 0x70, 0x41, 0xc2, 0x23, 0x2d, 0x73, 0x37, 0x34, 0x2f, - 0x4a, 0x8f, 0xf8, 0x60, 0x62, 0xe9, 0xe1, 0xce, 0x94, 0x76, 0x12, 0xbb, 0x61, 0xfb, 0x8e, 0x5c, - 0x7a, 0x1c, 0xbb, 0xe4, 0x67, 0xc4, 0x99, 0xb6, 0x71, 0x0b, 0xde, 0x0b, 0xcd, 0x77, 0xe5, 0x4c, - 0x33, 0x00, 0x05, 0xdf, 0x0f, 0xfb, 0xbb, 0xa6, 0xfa, 0x1e, 0xc8, 0xbe, 0x27, 0xc8, 0xf6, 0x76, - 0x49, 0xf7, 0x22, 0x25, 0xec, 0x96, 0xf2, 0xfb, 0x32, 0x25, 0x90, 0x36, 0xae, 0x15, 0xda, 0xc6, - 0xda, 0xfa, 0xc6, 0xee, 0xbc, 0xf6, 0x03, 0xe9, 0x35, 0x8e, 0x0d, 0x78, 0x6d, 0x15, 0xf6, 0x0a, - 0xc6, 0xdd, 0xcd, 0xeb, 0x4b, 0x32, 0xb1, 0x72, 0xf4, 0x5a, 0x70, 0x76, 0x3f, 0x06, 0x63, 0xae, - 0x3b, 0x65, 0x07, 0x66, 0x6b, 0xf4, 0x60, 0x20, 0x9c, 0xf9, 0x65, 0xc1, 0x2c, 0x33, 0xbe, 0xdb, - 0xc2, 0xd9, 0x4b, 0x7a, 0x83, 0x92, 0x5f, 0x80, 0x9c, 0x24, 0x6f, 0x99, 0xd8, 0xe0, 0x5b, 0x55, - 0x13, 0xa7, 0xb1, 0xd2, 0x03, 0xf5, 0x0f, 0xdb, 0xa6, 0x6a, 0xcd, 0x07, 0xa7, 0xcc, 0x0b, 0x90, - 0x75, 0xfb, 0x0d, 0xad, 0x56, 0x6f, 0x58, 0xd8, 0x5a, 0xee, 0xcc, 0xf8, 0x23, 0x39, 0x53, 0x2e, - 0x6e, 0x81, 0xc1, 0xf2, 0x05, 0xc8, 0xb0, 0xcb, 0x5e, 0x43, 0xf2, 0xc7, 0x82, 0x68, 0xd0, 0x43, - 0x89, 0xc4, 0x81, 0x9d, 0x12, 0xf6, 0xbc, 0xbd, 0xe4, 0xbf, 0x9f, 0xc8, 0xc4, 0x21, 0x20, 0x3c, - 0xfa, 0x86, 0xda, 0x2a, 0xb1, 0x12, 0xf6, 0xfa, 0x35, 0xf7, 0x89, 0xab, 0x62, 0xcd, 0x06, 0x0b, - 0x71, 0x7e, 0x91, 0xba, 0x27, 0x58, 0x2e, 0xc3, 0xc9, 0x1e, 0xb9, 0xea, 0x7a, 0x28, 0x50, 0x2d, - 0xf3, 0xe7, 0x60, 0x30, 0x50, 0x2a, 0xc3, 0xa9, 0x3e, 0x29, 0xa8, 0x06, 0xfc, 0x95, 0x32, 0x7f, - 0x12, 0x62, 0xb4, 0xec, 0x85, 0xc3, 0x3f, 0x25, 0xe0, 0xcc, 0x3c, 0xff, 0x11, 0x48, 0xca, 0x72, - 0x17, 0x0e, 0xfd, 0xb4, 0x80, 0xba, 0x10, 0x0a, 0x97, 0xa5, 0x2e, 0x1c, 0xfe, 0x19, 0x09, 0x97, - 0x10, 0x0a, 0xef, 0xdd, 0x85, 0xbf, 0xf8, 0x6c, 0x4c, 0xa4, 0x2b, 0xe9, 0x3b, 0xfa, 0xce, 0x87, - 0xd7, 0xb8, 0x70, 0xf4, 0xa3, 0xe2, 0xe6, 0x12, 0x91, 0x3f, 0x0d, 0xf1, 0x1e, 0x1d, 0xfe, 0x39, - 0x01, 0xe5, 0xf6, 0x58, 0x41, 0xd2, 0xbe, 0xba, 0x16, 0x0e, 0xff, 0xbc, 0x80, 0xfb, 0x51, 0x74, - 0xe8, 0xa2, 0xae, 0x85, 0x13, 0x7c, 0x41, 0x0e, 0x5d, 0x20, 0xa8, 0xdb, 0x64, 0x49, 0x0b, 0x47, - 0x7f, 0x51, 0x7a, 0x5d, 0x42, 0x70, 0x35, 0xa5, 0xdc, 0x34, 0x15, 0x8e, 0xff, 0x92, 0xc0, 0x7b, - 0x18, 0xea, 0x01, 0x5f, 0x9a, 0x0c, 0xa7, 0xf8, 0xb2, 0xf4, 0x80, 0x0f, 0x45, 0x97, 0x51, 0x7b, - 0xe9, 0x0b, 0x67, 0xfa, 0x8a, 0x5c, 0x46, 0x6d, 0x95, 0x8f, 0xce, 0x26, 0xcb, 0x16, 0xe1, 0x14, - 0x5f, 0x95, 0xb3, 0xc9, 0xec, 0xe9, 0x30, 0xda, 0x6b, 0x49, 0x38, 0xc7, 0xd7, 0xe4, 0x30, 0xda, - 0x4a, 0x09, 0x56, 0x26, 0xa5, 0xb3, 0x8e, 0x84, 0xf3, 0x3d, 0x26, 0xf8, 0x86, 0x3b, 0xca, 0x48, - 0xfe, 0x3e, 0xd8, 0xdb, 0xbd, 0x86, 0x84, 0xb3, 0x3e, 0x7e, 0xb5, 0xad, 0xeb, 0xf7, 0x97, 0x10, - 0x2c, 0x79, 0xa3, 0xdd, 0xea, 0x47, 0x38, 0xed, 0x13, 0x57, 0x83, 0x1b, 0x3b, 0x7f, 0xf9, 0xc0, - 0x0e, 0x0d, 0xbc, 0xd4, 0x1d, 0xce, 0xf5, 0x94, 0xe0, 0xf2, 0x81, 0xe8, 0xd2, 0x10, 0x99, 0x3b, - 0x1c, 0xff, 0xb4, 0x5c, 0x1a, 0x02, 0x81, 0xe0, 0xa4, 0xd9, 0x32, 0x0c, 0x1a, 0x1c, 0xca, 0xce, - 0x3f, 0x69, 0xc8, 0xfd, 0xe5, 0x3d, 0xb1, 0x30, 0x24, 0x00, 0x73, 0x68, 0x9c, 0xd4, 0xd7, 0xd1, - 0x07, 0x21, 0xc8, 0xbf, 0xbe, 0x27, 0x13, 0x02, 0xb5, 0xc6, 0xf5, 0x04, 0x7c, 0xd3, 0xc8, 0xce, - 0xb0, 0x43, 0xb0, 0x7f, 0x7b, 0x4f, 0xbc, 0x66, 0xf5, 0x20, 0x1e, 0x01, 0x7f, 0x69, 0xbb, 0x33, - 0xc1, 0xdb, 0x41, 0x02, 0xb6, 0xd1, 0x3c, 0x0b, 0xfd, 0xf4, 0x97, 0x1d, 0x8e, 0x5e, 0x0d, 0x43, - 0xff, 0x5d, 0xa0, 0xa5, 0x3d, 0x75, 0x58, 0xdd, 0x6a, 0x12, 0xfc, 0x6a, 0x87, 0x61, 0xff, 0x21, - 0xb0, 0x2e, 0x80, 0x82, 0xcb, 0xba, 0xed, 0xf4, 0xf2, 0xdc, 0xff, 0x94, 0x60, 0x09, 0xa0, 0x83, - 0xa6, 0xdf, 0x2f, 0x91, 0xad, 0x30, 0xec, 0x3b, 0x72, 0xd0, 0xc2, 0x1e, 0x13, 0x60, 0x8a, 0x7e, - 0xe5, 0x3f, 0x3d, 0x08, 0x01, 0xff, 0x4b, 0x80, 0x3d, 0xc4, 0xcc, 0xa1, 0xee, 0x47, 0x3b, 0x30, - 0x6f, 0xcd, 0x5b, 0xfc, 0x50, 0x07, 0x1e, 0x8b, 0xc3, 0x18, 0xda, 0x60, 0x7d, 0x9d, 0x74, 0xd7, - 0xe2, 0x24, 0x96, 0x0d, 0x71, 0x20, 0x13, 0xc5, 0xaf, 0x63, 0xbb, 0x3b, 0xc4, 0x19, 0xdf, 0x0f, - 0xf1, 0x52, 0x6b, 0x7d, 0x7d, 0x8b, 0xfe, 0xe2, 0xc9, 0x6e, 0xad, 0x8b, 0xd7, 0xd3, 0xf4, 0x2b, - 0x7d, 0x59, 0x93, 0x2e, 0xe9, 0xf5, 0x06, 0x36, 0x31, 0x26, 0x29, 0x6e, 0x28, 0x39, 0x48, 0xb0, - 0x67, 0x38, 0xc6, 0x8c, 0x22, 0xf7, 0xec, 0x51, 0x13, 0xec, 0xf7, 0x7a, 0xc7, 0x5c, 0xcd, 0x14, - 0x3b, 0xe2, 0xef, 0x73, 0x35, 0x53, 0xae, 0xe6, 0x38, 0xff, 0x21, 0x94, 0xab, 0x39, 0xee, 0x6a, - 0x4e, 0xb0, 0x73, 0xb2, 0xa8, 0xab, 0x39, 0xe1, 0x6a, 0x4e, 0xb2, 0xa3, 0xce, 0x41, 0x57, 0x73, - 0xd2, 0xd5, 0x9c, 0x62, 0x87, 0x9b, 0x31, 0x57, 0x73, 0xca, 0xd5, 0x9c, 0x66, 0x67, 0x9a, 0xc3, - 0xae, 0xe6, 0xb4, 0xab, 0x39, 0xc3, 0xce, 0x31, 0x15, 0x57, 0x73, 0xc6, 0xd5, 0x9c, 0x65, 0xaf, - 0xa0, 0xfb, 0x5d, 0xcd, 0x59, 0x65, 0x0c, 0xfa, 0xf9, 0x93, 0x1e, 0x65, 0xaf, 0x6c, 0x86, 0x50, - 0xd5, 0xcf, 0x1f, 0xf5, 0xa8, 0xa7, 0x3b, 0xc6, 0x5e, 0x33, 0x27, 0x3c, 0xdd, 0x31, 0x4f, 0x37, - 0xc5, 0x7e, 0x36, 0x99, 0xf5, 0x74, 0x53, 0x9e, 0xee, 0x78, 0x6e, 0x90, 0xae, 0x53, 0x4f, 0x77, - 0xdc, 0xd3, 0x9d, 0xc8, 0x65, 0xa8, 0xff, 0x3d, 0xdd, 0x09, 0x4f, 0x77, 0x32, 0x37, 0x44, 0x8f, - 0x6b, 0x3d, 0xdd, 0x49, 0xe5, 0x0e, 0x48, 0xe3, 0x44, 0x69, 0xe2, 0x0d, 0x23, 0x7b, 0x9d, 0x9d, - 0x9e, 0x82, 0x09, 0x1a, 0x11, 0x6c, 0x52, 0xd1, 0x16, 0xd0, 0x40, 0xa4, 0xa7, 0x99, 0x01, 0x60, - 0xdb, 0x56, 0x8d, 0xfd, 0x1c, 0x6b, 0x66, 0xee, 0xd5, 0xd7, 0x0f, 0xec, 0x79, 0x0d, 0x3f, 0xbf, - 0xc7, 0xcf, 0x1f, 0x5f, 0x3f, 0x10, 0x79, 0x07, 0x3f, 0xef, 0xe2, 0xe7, 0xe1, 0x37, 0x0e, 0x44, - 0x5e, 0xc0, 0xcf, 0x4b, 0xf8, 0xf9, 0x19, 0x7e, 0x5e, 0xc5, 0xcf, 0x6b, 0x6f, 0xa0, 0x0d, 0xfe, - 0x7f, 0x0b, 0xff, 0xbf, 0x83, 0xff, 0xdf, 0xc5, 0xff, 0x0f, 0xff, 0xe9, 0xc0, 0x9e, 0xf5, 0x04, - 0x0b, 0xa3, 0xe3, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x20, 0x45, 0x76, 0x91, 0x05, 0x2d, 0x00, - 0x00, + // 3860 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, + 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, + 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, + 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x3a, 0xae, 0xe3, 0xb6, 0x99, + 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, + 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, + 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, + 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, + 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, + 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, + 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, + 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, + 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, + 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, + 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x19, + 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, + 0x6c, 0x06, 0xc6, 0x4f, 0x42, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, + 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, + 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, + 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, + 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, + 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, + 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, + 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x4f, 0x8c, 0x4d, 0x84, 0x1a, + 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, + 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, + 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, + 0x92, 0x0c, 0x61, 0x57, 0x4b, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, + 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x84, 0x41, 0x2c, 0x41, 0xc6, + 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, + 0xa2, 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xd5, 0x28, 0x4f, + 0x56, 0x2a, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x26, 0x80, 0x6d, 0x21, 0xbb, + 0xad, 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x63, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, + 0x37, 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x1c, 0x93, 0x29, 0x3b, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x3e, + 0xe4, 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0x2b, 0x91, 0x4f, 0xa6, 0x30, + 0x18, 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x12, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, + 0xca, 0x72, 0xe1, 0xae, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, + 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, + 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0x5e, 0x9b, 0x86, 0x85, + 0x71, 0x39, 0x37, 0x36, 0xfd, 0x4f, 0xc1, 0xb4, 0xd5, 0xef, 0x36, 0x91, 0x23, 0xc7, 0x09, 0x03, + 0xbb, 0x92, 0x4a, 0x90, 0x34, 0xb5, 0x26, 0x32, 0xe5, 0xc4, 0x39, 0x61, 0x39, 0xb7, 0xf6, 0xcc, + 0x44, 0x59, 0xbd, 0xb2, 0x8d, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x81, 0x04, 0x2b, 0x71, 0x98, 0xe1, + 0xe9, 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, + 0xf8, 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, + 0x1a, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, + 0x95, 0x2c, 0x13, 0x7e, 0x0e, 0xcb, 0xa4, 0xb3, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x32, + 0xa9, 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, + 0xdc, 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc6, 0x3f, 0xde, 0x70, 0x2e, 0x2e, + 0x7d, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7b, 0xa9, 0x5e, 0x51, 0x37, 0x6b, 0xfb, + 0x1b, 0xdb, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xbb, 0x56, 0xda, 0x13, 0x63, 0xfe, + 0x75, 0x75, 0x77, 0xef, 0xd2, 0x45, 0x31, 0xee, 0x03, 0xf6, 0xa9, 0x20, 0x11, 0x36, 0xb8, 0xb0, + 0x26, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x79, 0xe9, 0xa2, 0x38, 0x3d, 0x28, + 0xb9, 0xb0, 0x26, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x5a, 0x6d, 0x5b, 0x4c, 0xf9, 0x9c, + 0x8d, 0x3d, 0xa5, 0xba, 0xbb, 0x25, 0xa6, 0x7d, 0xce, 0x2d, 0xa5, 0xb6, 0x5f, 0x17, 0xc1, 0x67, + 0xd8, 0xa9, 0x34, 0x1a, 0xa5, 0xad, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5e, 0xda, 0xab, 0x34, 0xc4, + 0xec, 0x80, 0x5b, 0x17, 0xd6, 0xc4, 0x59, 0xff, 0x16, 0x95, 0xdd, 0xfd, 0x1d, 0x31, 0x27, 0xcd, + 0xc1, 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, + 0xdc, 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2a, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xbb, + 0xb4, 0x51, 0xd9, 0x56, 0x6b, 0xf5, 0xbd, 0x6a, 0x6d, 0xb7, 0xb4, 0x2d, 0x0a, 0x81, 0x4c, 0xa9, + 0x7c, 0x76, 0xbf, 0xaa, 0x54, 0x36, 0xc5, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x62, + 0x7c, 0x49, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, + 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x01, 0x92, 0x34, + 0x45, 0x69, 0xf7, 0x79, 0x6a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, + 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0xab, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, + 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, + 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0x67, 0x60, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, + 0x8d, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, + 0x66, 0xc4, 0xd3, 0x2f, 0xc6, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x0c, 0xc0, 0xb0, 0x7a, + 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, + 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0xc7, 0x3c, 0xe9, + 0x48, 0xaf, 0x7b, 0x0e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, + 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, + 0x41, 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7d, 0x7d, 0x06, 0x32, + 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, + 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x0e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, + 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x3c, + 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, + 0x39, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x11, 0x58, 0x07, 0x59, 0xc8, + 0xd1, 0x3c, 0xa4, 0xa2, 0x2f, 0xf4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, + 0xbc, 0x80, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, + 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, + 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, + 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0x2b, 0x48, + 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, + 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, + 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x5e, 0xd7, 0xe9, 0x33, + 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, + 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0xf9, + 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x04, 0x79, 0x6d, 0x73, 0x90, + 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, + 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, + 0x96, 0x88, 0x52, 0x7a, 0x1a, 0xe6, 0xec, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, + 0x78, 0x59, 0x7e, 0x9c, 0x84, 0x29, 0x8f, 0x15, 0x24, 0xaf, 0xea, 0x44, 0x2c, 0x3d, 0x05, 0xa2, + 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0xb4, 0x76, 0xb7, 0xa7, 0xe9, 0x48, 0x7e, 0x82, 0x9a, 0x52, 0xf9, + 0x2e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x19, 0x6d, 0x8f, 0x33, 0x3e, 0x49, 0x33, 0x9b, 0xc8, 0x18, + 0xdb, 0x2d, 0x58, 0xe8, 0x5b, 0x86, 0xe5, 0x21, 0xa7, 0xe7, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, 0x28, + 0xff, 0xeb, 0xcc, 0x31, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xdf, 0x1f, 0x15, 0x2e, + 0x15, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, + 0x77, 0xc7, 0xcf, 0x57, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, + 0x55, 0x77, 0x2a, 0x62, 0xfc, 0xe9, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, + 0x96, 0xbe, 0x13, 0x83, 0xdc, 0xe0, 0x64, 0x2c, 0xfd, 0x2c, 0x9c, 0xe6, 0xaf, 0xb1, 0x2e, 0xf2, + 0xd4, 0x7b, 0x86, 0x43, 0x52, 0xb5, 0xab, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x02, 0xb3, 0x6a, 0x20, + 0xef, 0x45, 0xc3, 0xc1, 0x89, 0xd8, 0xd5, 0x3c, 0x69, 0x1b, 0xce, 0x5a, 0xb6, 0xea, 0x7a, 0x9a, + 0xd5, 0xd2, 0x9c, 0x96, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, 0xf0, + 0x59, 0x3e, 0x61, 0xd9, 0x0d, 0x66, 0x1c, 0xd4, 0xce, 0x12, 0x33, 0x1d, 0xca, 0x88, 0xf8, 0x71, + 0x19, 0xf1, 0x28, 0xa4, 0xbb, 0x5a, 0x4f, 0x45, 0x96, 0xe7, 0x1c, 0x92, 0x79, 0x2e, 0xa5, 0xa4, + 0xba, 0x5a, 0xaf, 0x82, 0xaf, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0xfb, 0x71, 0xc8, 0x86, 0x67, + 0x3a, 0x3c, 0x22, 0xeb, 0xa4, 0x7e, 0x0b, 0x64, 0x87, 0x7f, 0xf2, 0xa1, 0x13, 0xe0, 0x4a, 0x19, + 0x17, 0xf6, 0xe2, 0x34, 0x9d, 0xb4, 0x14, 0x8a, 0xc4, 0x4d, 0x15, 0xef, 0x69, 0x44, 0xe7, 0xf7, + 0x94, 0xc2, 0xae, 0xa4, 0x2d, 0x98, 0xbe, 0xed, 0x12, 0xee, 0x69, 0xc2, 0xfd, 0xf8, 0xc3, 0xb9, + 0x6f, 0x36, 0x08, 0x79, 0xfa, 0x66, 0x43, 0xdd, 0xad, 0x29, 0x3b, 0xa5, 0x6d, 0x85, 0xc1, 0xa5, + 0x33, 0x90, 0x30, 0xb5, 0x57, 0x0e, 0x07, 0x5b, 0x00, 0x11, 0x4d, 0x1a, 0xf8, 0x33, 0x90, 0xb8, + 0x87, 0xb4, 0x3b, 0x83, 0x85, 0x97, 0x88, 0x3e, 0xc2, 0xd4, 0x5f, 0x85, 0x24, 0x89, 0x97, 0x04, + 0xc0, 0x22, 0x26, 0x4e, 0x49, 0x29, 0x48, 0x94, 0x6b, 0x0a, 0x4e, 0x7f, 0x11, 0xb2, 0x54, 0xaa, + 0xd6, 0xab, 0x95, 0x72, 0x45, 0x8c, 0x2d, 0xad, 0xc3, 0x34, 0x0d, 0x02, 0xde, 0x1a, 0x7e, 0x18, + 0xc4, 0x29, 0x76, 0xc9, 0x38, 0x04, 0xae, 0xdd, 0xdf, 0xd9, 0xa8, 0x28, 0x62, 0x2c, 0xbc, 0xbc, + 0x2e, 0x64, 0xc3, 0xe3, 0xdc, 0x4f, 0x27, 0xa7, 0xfe, 0x5e, 0x80, 0x4c, 0x68, 0x3c, 0xc3, 0x83, + 0x81, 0x66, 0x9a, 0xf6, 0x3d, 0x55, 0x33, 0x0d, 0xcd, 0x65, 0x49, 0x01, 0x44, 0x54, 0xc2, 0x92, + 0x49, 0x17, 0xed, 0xa7, 0xe2, 0xfc, 0x9b, 0x02, 0x88, 0xc3, 0xa3, 0xdd, 0x90, 0x83, 0xc2, 0xc7, + 0xea, 0xe0, 0x1b, 0x02, 0xe4, 0x06, 0xe7, 0xb9, 0x21, 0xf7, 0xce, 0x7f, 0xac, 0xee, 0xbd, 0x13, + 0x83, 0xd9, 0x81, 0x29, 0x6e, 0x52, 0xef, 0xbe, 0x00, 0x73, 0x46, 0x0b, 0x75, 0x7b, 0xb6, 0x87, + 0x2c, 0xfd, 0x50, 0x35, 0xd1, 0x5d, 0x64, 0xca, 0x4b, 0xa4, 0x50, 0xac, 0x3e, 0x7c, 0x4e, 0x5c, + 0xa9, 0x06, 0xb8, 0x6d, 0x0c, 0x2b, 0xce, 0x57, 0x37, 0x2b, 0x3b, 0xf5, 0xda, 0x5e, 0x65, 0xb7, + 0xfc, 0x92, 0xba, 0xbf, 0xfb, 0x73, 0xbb, 0xb5, 0x17, 0x77, 0x15, 0xd1, 0x18, 0x32, 0xfb, 0x08, + 0xb7, 0x7a, 0x1d, 0xc4, 0x61, 0xa7, 0xa4, 0xd3, 0x30, 0xce, 0x2d, 0x71, 0x4a, 0x9a, 0x87, 0xfc, + 0x6e, 0x4d, 0x6d, 0x54, 0x37, 0x2b, 0x6a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xaf, 0x41, 0x5f, 0x9c, + 0x7d, 0xeb, 0xbd, 0xc1, 0x4d, 0xfd, 0x7a, 0x1c, 0xe6, 0xc7, 0x78, 0x22, 0x95, 0xd8, 0xcc, 0x4e, + 0x5f, 0x23, 0x9e, 0x9d, 0xc4, 0xfb, 0x15, 0x3c, 0x15, 0xd4, 0x35, 0xc7, 0x63, 0x23, 0xfe, 0x53, + 0x80, 0xa3, 0x64, 0x79, 0x46, 0xdb, 0x40, 0x0e, 0x3b, 0x67, 0xa0, 0x83, 0x7c, 0x3e, 0x90, 0xd3, + 0xa3, 0x86, 0x9f, 0x01, 0xa9, 0x67, 0xbb, 0x86, 0x67, 0xdc, 0x45, 0xaa, 0x61, 0xf1, 0x43, 0x09, + 0x3c, 0xd8, 0x27, 0x14, 0x91, 0x6b, 0xaa, 0x96, 0xe7, 0x5b, 0x5b, 0xa8, 0xa3, 0x0d, 0x59, 0xe3, + 0x02, 0x1e, 0x57, 0x44, 0xae, 0xf1, 0xad, 0xcf, 0x43, 0xb6, 0x65, 0xf7, 0xf1, 0x98, 0x44, 0xed, + 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x26, 0x6c, 0x8e, 0x0d, 0x4e, 0x43, 0xb2, 0x4a, 0x86, + 0xca, 0xa8, 0xc9, 0x93, 0x90, 0xd7, 0x3a, 0x1d, 0x07, 0x93, 0x73, 0x22, 0x3a, 0x99, 0xe7, 0x7c, + 0x31, 0x31, 0x5c, 0xbc, 0x09, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, 0xd4, 0x1e, 0x3d, 0x93, + 0x8a, 0x2d, 0xa7, 0x95, 0x94, 0xc5, 0x95, 0xe7, 0x21, 0x6b, 0xb8, 0x6a, 0x70, 0x38, 0x1a, 0x3b, + 0x17, 0x5b, 0x4e, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x96, 0xde, 0x8a, 0x41, 0x6e, 0xf0, 0x70, + 0x57, 0xda, 0x84, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0xcb, 0xc2, 0x72, 0xc4, 0x79, 0xf0, + 0xca, 0x36, 0xb3, 0x57, 0x7c, 0xe4, 0xe2, 0x3f, 0x0b, 0x90, 0xe2, 0x62, 0xe9, 0x14, 0x24, 0x7a, + 0x9a, 0x77, 0x40, 0xe8, 0x92, 0x1b, 0x31, 0x51, 0x50, 0xc8, 0x35, 0x96, 0xbb, 0x3d, 0xcd, 0x22, + 0x29, 0xc0, 0xe4, 0xf8, 0x1a, 0xaf, 0xab, 0x89, 0xb4, 0x16, 0x19, 0xfb, 0xed, 0x6e, 0x17, 0x59, + 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0xcb, 0x4c, 0x2c, 0x3d, 0x03, 0x73, 0x9e, 0xa3, 0x19, 0xe6, 0x80, + 0x6d, 0x82, 0xd8, 0x8a, 0x5c, 0xe1, 0x1b, 0x17, 0xe1, 0x0c, 0xe7, 0x6d, 0x21, 0x4f, 0xd3, 0x0f, + 0x50, 0x2b, 0x00, 0x4d, 0x93, 0x93, 0xc3, 0xd3, 0xcc, 0x60, 0x93, 0xe9, 0x39, 0x76, 0xe9, 0x7b, + 0x02, 0xcc, 0xf1, 0x17, 0x95, 0x96, 0x1f, 0xac, 0x1d, 0x00, 0xcd, 0xb2, 0x6c, 0x2f, 0x1c, 0xae, + 0xd1, 0x54, 0x1e, 0xc1, 0xad, 0x94, 0x7c, 0x90, 0x12, 0x22, 0x58, 0xec, 0x02, 0x04, 0x9a, 0x63, + 0xc3, 0x76, 0x16, 0x32, 0xec, 0xe4, 0x9e, 0xfc, 0xfc, 0x43, 0x5f, 0x6d, 0x81, 0x8a, 0xf0, 0x1b, + 0x8d, 0xb4, 0x00, 0xc9, 0x26, 0xea, 0x18, 0x16, 0x3b, 0x4f, 0xa4, 0x17, 0xfc, 0x94, 0x32, 0xe1, + 0x9f, 0x52, 0x6e, 0xdc, 0x82, 0x79, 0xdd, 0xee, 0x0e, 0xbb, 0xbb, 0x21, 0x0e, 0xbd, 0x5e, 0xbb, + 0x37, 0x84, 0xcf, 0x43, 0x30, 0x62, 0x7e, 0x25, 0x16, 0xdf, 0xaa, 0x6f, 0x7c, 0x2d, 0xb6, 0xb8, + 0x45, 0x71, 0x75, 0xfe, 0x98, 0x0a, 0x6a, 0x9b, 0x48, 0xc7, 0xae, 0xc3, 0x8f, 0x3e, 0x05, 0xcf, + 0x76, 0x0c, 0xef, 0xa0, 0xdf, 0x5c, 0xd1, 0xed, 0xee, 0x6a, 0xc7, 0xee, 0xd8, 0xc1, 0xcf, 0x5d, + 0xf8, 0x8a, 0x5c, 0x90, 0xff, 0xd8, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x18, 0xf9, 0xfb, 0x58, 0x71, + 0x17, 0xe6, 0x99, 0xb1, 0x4a, 0xce, 0xdc, 0xe9, 0xab, 0x81, 0xf4, 0xd0, 0x73, 0x17, 0xf9, 0x9b, + 0xef, 0x92, 0x5e, 0xad, 0xcc, 0x31, 0x28, 0xd6, 0xd1, 0x17, 0x88, 0xa2, 0x02, 0x8f, 0x0c, 0xf0, + 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0xef, 0x30, 0xc6, 0xf9, 0x10, 0x63, 0x83, 0x41, 0x8b, 0x65, + 0x98, 0x3d, 0x09, 0xd7, 0x3f, 0x32, 0xae, 0x2c, 0x0a, 0x93, 0x6c, 0x41, 0x9e, 0x90, 0xe8, 0x7d, + 0xd7, 0xb3, 0xbb, 0xa4, 0xe8, 0x3d, 0x9c, 0xe6, 0x9f, 0xde, 0xa5, 0x1b, 0x25, 0x87, 0x61, 0x65, + 0x1f, 0x55, 0x2c, 0x02, 0xf9, 0x99, 0xa1, 0x85, 0x74, 0x33, 0x82, 0xe1, 0x6d, 0xe6, 0x88, 0x6f, + 0x5f, 0xfc, 0x1c, 0x2c, 0xe0, 0xff, 0x49, 0x4d, 0x0a, 0x7b, 0x12, 0x7d, 0xca, 0x24, 0x7f, 0xef, + 0x55, 0xba, 0x17, 0xe7, 0x7d, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0xec, 0x20, 0xcf, 0x43, 0x8e, 0xab, + 0x6a, 0xe6, 0x38, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xde, 0x1b, 0x5c, 0xc5, 0x2d, 0x8a, 0x2c, + 0x99, 0x66, 0x71, 0x1f, 0x4e, 0x8f, 0xc9, 0x8a, 0x09, 0x38, 0x5f, 0x67, 0x9c, 0x0b, 0x23, 0x99, + 0x81, 0x69, 0xeb, 0xc0, 0xe5, 0xfe, 0x5a, 0x4e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x62, 0x58, 0xbe, + 0xa4, 0x98, 0xf1, 0x26, 0xcc, 0xdd, 0x45, 0x4e, 0xd3, 0x76, 0xd9, 0xd1, 0xc8, 0x04, 0x74, 0x6f, + 0x30, 0xba, 0x3c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, + 0x7c, 0x99, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, + 0x93, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x07, + 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x87, 0x9c, 0xc2, 0x0d, 0xc5, 0xf3, 0x05, 0xc8, + 0xd8, 0x96, 0x79, 0x68, 0x5b, 0x93, 0x38, 0xf1, 0x47, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x83, + 0xf4, 0xa4, 0x0b, 0xf1, 0xc7, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x0b, 0xf2, 0xbc, 0x40, 0x19, + 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x30, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, + 0x93, 0x90, 0xbc, 0xc5, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, + 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, + 0xe3, 0x4f, 0x19, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, + 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, + 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf8, 0x4a, 0x13, 0x00, 0x06, + 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, + 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf0, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, + 0x27, 0x8b, 0xda, 0x5f, 0xf2, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, + 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x9f, 0x87, 0x45, 0x3f, 0x9c, 0x7c, + 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, + 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, + 0x82, 0x5a, 0x13, 0x50, 0xff, 0xd5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, + 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x5f, 0xf3, 0x95, 0xf2, 0x71, 0x55, 0x02, + 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x61, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, + 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0xb7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, + 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, + 0x09, 0x28, 0xfe, 0x8e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x6c, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, + 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xde, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, + 0x90, 0x1f, 0x1a, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x5f, 0xf8, 0x80, 0x15, 0xa3, 0xc1, 0x09, + 0xa3, 0xb8, 0x8d, 0xd7, 0x7d, 0x70, 0x0e, 0x88, 0x26, 0x7b, 0xf5, 0x03, 0x7f, 0xe9, 0x07, 0xc6, + 0x80, 0xe2, 0x75, 0x98, 0x1d, 0x98, 0x01, 0xa2, 0xa9, 0x7e, 0x91, 0x51, 0x65, 0xc3, 0x23, 0x40, + 0x71, 0x1d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x89, 0xc1, 0x89, 0x79, 0xf1, 0xd3, 0x90, 0xe2, + 0x7d, 0x3c, 0x1a, 0xfa, 0xcb, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, 0xf0, 0x68, 0xf8, 0xaf, 0x70, + 0x38, 0x87, 0x60, 0xf8, 0xe4, 0x21, 0xfc, 0x87, 0x5f, 0x4d, 0xb0, 0x3a, 0xcc, 0x63, 0x77, 0x0d, + 0x66, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x91, 0xdd, 0x9c, 0x23, 0x8a, 0x97, 0x21, 0x39, 0x61, 0xc0, + 0x7f, 0x8d, 0x41, 0xa9, 0x7d, 0xb1, 0x0c, 0x99, 0x50, 0xc3, 0x8e, 0x86, 0xff, 0x3a, 0x83, 0x87, + 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x83, 0xbb, 0xce, 0x10, 0x38, 0x6c, 0xbc, 0x57, + 0x47, 0xa3, 0x7f, 0x93, 0x47, 0x9d, 0x43, 0x8a, 0x2f, 0x40, 0xda, 0xaf, 0xbf, 0xd1, 0xf8, 0xdf, + 0x62, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0xbf, 0xcd, 0x23, 0x10, 0x42, 0xe1, + 0x6d, 0x34, 0xdc, 0xd3, 0xa3, 0x99, 0x7e, 0x87, 0x6f, 0xa3, 0xa1, 0x96, 0x8e, 0x57, 0x93, 0x94, + 0xc1, 0x68, 0x8a, 0xdf, 0xe5, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xc3, 0x4d, 0x32, 0x9a, 0xe3, 0xf7, + 0xb8, 0x1b, 0x43, 0x3d, 0xb2, 0x58, 0x07, 0x69, 0xb4, 0x41, 0x46, 0xf3, 0xbd, 0xc6, 0xf8, 0xe6, + 0x46, 0xfa, 0x63, 0xf1, 0x45, 0x38, 0x35, 0xbe, 0x39, 0x46, 0xb3, 0x7e, 0xe9, 0x83, 0xa1, 0xd7, + 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, + 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, + 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, + 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, + 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, + 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x01, 0x80, 0xbe, 0x4c, 0x93, + 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, + 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, + 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, + 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, + 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, + 0x34, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, + 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, + 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, + 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0x6b, 0x49, 0x58, 0xd4, 0xed, 0x6e, + 0xd3, 0x76, 0x57, 0xfd, 0x42, 0xb2, 0x6a, 0x5b, 0xcc, 0x5a, 0x8a, 0xdb, 0x16, 0x5a, 0x3c, 0xd9, + 0xb1, 0xdc, 0xd2, 0x19, 0x48, 0x36, 0xfa, 0xcd, 0xe6, 0xa1, 0x24, 0x42, 0xdc, 0xed, 0x37, 0xd9, + 0x77, 0x25, 0xf8, 0xdf, 0xa5, 0xef, 0xc7, 0x21, 0xd3, 0xd0, 0xba, 0x3d, 0x13, 0xd5, 0x2c, 0x54, + 0x6b, 0x4b, 0x32, 0x4c, 0x93, 0xa7, 0x78, 0x9e, 0x18, 0x09, 0x37, 0xa6, 0x14, 0x76, 0xed, 0x6b, + 0xd6, 0xc8, 0x59, 0x65, 0xcc, 0xd7, 0xac, 0xf9, 0x9a, 0x0b, 0xf4, 0xa8, 0xd2, 0xd7, 0x5c, 0xf0, + 0x35, 0x17, 0xc9, 0x81, 0x65, 0xdc, 0xd7, 0x5c, 0xf4, 0x35, 0xeb, 0xe4, 0x40, 0x7e, 0xd6, 0xd7, + 0xac, 0xfb, 0x9a, 0x4b, 0xe4, 0x08, 0x3e, 0xe1, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xe4, 0x7d, + 0xce, 0xd7, 0x5c, 0xf6, 0x35, 0x57, 0xc8, 0x69, 0xbb, 0xe4, 0x6b, 0xae, 0xf8, 0x9a, 0xab, 0xe4, + 0xf3, 0x91, 0x19, 0x5f, 0x73, 0x55, 0x5a, 0x84, 0x19, 0xfa, 0x64, 0xcf, 0x91, 0x9f, 0x64, 0xf3, + 0x37, 0xa6, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x93, 0x4f, 0x44, 0xa6, 0x03, 0xdd, 0xf3, 0x81, 0x6e, + 0x8d, 0x7c, 0x28, 0x2d, 0x06, 0xba, 0xb5, 0x40, 0x77, 0x41, 0x9e, 0xc5, 0x8b, 0x1f, 0xe8, 0x2e, + 0x04, 0xba, 0x8b, 0x72, 0x0e, 0xc7, 0x3f, 0xd0, 0x5d, 0x0c, 0x74, 0xeb, 0x72, 0xfe, 0x9c, 0xb0, + 0x9c, 0x0d, 0x74, 0xeb, 0xd2, 0xb3, 0x90, 0x71, 0xfb, 0x4d, 0x95, 0x7d, 0x41, 0x40, 0x3e, 0x45, + 0xc9, 0xac, 0xc1, 0x0a, 0xce, 0x08, 0xb2, 0xa8, 0x37, 0xa6, 0x14, 0x70, 0xfb, 0x4d, 0x56, 0x1d, + 0x37, 0xb2, 0x40, 0x0e, 0x13, 0x54, 0xf2, 0x01, 0xe6, 0xc6, 0xe6, 0xdb, 0x0f, 0x0a, 0x53, 0xdf, + 0x7d, 0x50, 0x98, 0xfa, 0x97, 0x07, 0x85, 0xa9, 0x77, 0x1e, 0x14, 0x84, 0xf7, 0x1f, 0x14, 0x84, + 0x1f, 0x3f, 0x28, 0x08, 0xf7, 0x8f, 0x0a, 0xc2, 0x57, 0x8f, 0x0a, 0xc2, 0x37, 0x8e, 0x0a, 0xc2, + 0xb7, 0x8f, 0x0a, 0xc2, 0xdb, 0x47, 0x05, 0xe1, 0xbb, 0x47, 0x85, 0xa9, 0x77, 0x8e, 0x0a, 0xc2, + 0x0f, 0x8f, 0x0a, 0x53, 0xef, 0x1f, 0x15, 0x84, 0x1f, 0x1f, 0x15, 0xa6, 0xee, 0xff, 0xa0, 0x30, + 0xd5, 0x9c, 0x26, 0x69, 0x74, 0xe1, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x6c, 0xda, 0xdb, + 0xf7, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2037,64 +2057,47 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Sub) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(m.Sub))) - i += copy(data[i:], m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) + i += copy(dAtA[i:], m.Sub) } return i, nil } -func (m *SampleOneOf) Marshal() (data []byte, err error) { +func (m *SampleOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2103,129 +2106,129 @@ func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *SampleOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64One(data, i, uint64(math.Float64bits(float64(m.Field1)))) + i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) return i, nil } -func (m *SampleOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32One(data, i, uint32(math.Float32bits(float32(m.Field2)))) + i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) return i, nil } -func (m *SampleOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *SampleOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *SampleOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *SampleOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *SampleOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *SampleOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *SampleOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32One(data, i, uint32(m.Field9)) + i = encodeFixed32One(dAtA, i, uint32(m.Field9)) return i, nil } -func (m *SampleOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32One(data, i, uint32(m.Field10)) + i = encodeFixed32One(dAtA, i, uint32(m.Field10)) return i, nil } -func (m *SampleOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64One(data, i, uint64(m.Field11)) + i = encodeFixed64One(dAtA, i, uint64(m.Field11)) return i, nil } -func (m *SampleOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64One(data, i, uint64(m.Field12)) + i = encodeFixed64One(dAtA, i, uint64(m.Field12)) return i, nil } -func (m *SampleOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *SampleOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *SampleOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2233,36 +2236,36 @@ func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2401,7 +2404,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2445,7 +2448,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2453,43 +2456,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2816,30 +2819,34 @@ func valueToStringOne(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 381 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbd, 0x6e, 0xdb, 0x30, - 0x10, 0x07, 0x70, 0x2b, 0x8a, 0xa5, 0x84, 0x72, 0x1a, 0x57, 0xd3, 0xd5, 0x83, 0x50, 0x64, 0xea, - 0x12, 0x2b, 0xd6, 0x47, 0x3e, 0xd6, 0xa0, 0x28, 0xba, 0x14, 0x01, 0x92, 0x07, 0x08, 0xa4, 0x96, - 0x52, 0x02, 0x58, 0xa1, 0x61, 0x49, 0x43, 0x37, 0x3f, 0x4e, 0xc7, 0x8e, 0x7d, 0x04, 0x8f, 0x1e, - 0x3b, 0x74, 0xa8, 0xdd, 0xa5, 0xa3, 0x47, 0x8f, 0xf9, 0x9b, 0x02, 0x8e, 0xc3, 0x1f, 0x77, 0x87, - 0xdf, 0x69, 0xa0, 0x48, 0x31, 0xfa, 0xaa, 0xaa, 0x5c, 0xd5, 0x61, 0x95, 0xcd, 0xeb, 0xa7, 0x6c, - 0x2a, 0xe7, 0xa1, 0x7a, 0x91, 0xe3, 0xd9, 0x5c, 0x35, 0xca, 0xb7, 0xd1, 0x8e, 0xce, 0xcb, 0xe7, - 0xe6, 0xa9, 0xcd, 0xc7, 0xd8, 0x0b, 0x4b, 0x55, 0xaa, 0x50, 0x5b, 0xde, 0x16, 0x7a, 0xd2, 0x83, - 0xee, 0xba, 0x6f, 0xce, 0xde, 0x89, 0xfe, 0x43, 0x9b, 0xe7, 0xdf, 0xfd, 0xa1, 0xb0, 0xeb, 0x36, - 0x27, 0xeb, 0xbd, 0xf5, 0xe1, 0xf8, 0x7e, 0xdf, 0x9e, 0xfd, 0xb1, 0x85, 0xf7, 0x90, 0x55, 0xb3, - 0xa9, 0xbc, 0x7b, 0x91, 0x77, 0x85, 0x4f, 0xc2, 0xf9, 0xf4, 0x2c, 0xa7, 0xdf, 0x26, 0x7a, 0xc9, - 0xfa, 0xdc, 0xbb, 0x77, 0x0a, 0x3d, 0xb3, 0x44, 0x74, 0x00, 0x39, 0x60, 0x89, 0x58, 0x62, 0xb2, - 0x21, 0x7d, 0x96, 0x98, 0x25, 0xa1, 0x43, 0x88, 0xcd, 0x92, 0xb0, 0xa4, 0xd4, 0x87, 0x9c, 0xb0, - 0xa4, 0x2c, 0x97, 0xe4, 0x40, 0x0e, 0x59, 0x2e, 0x59, 0xae, 0xc8, 0x85, 0xbc, 0x65, 0xb9, 0x62, - 0xb9, 0xa6, 0x23, 0x88, 0xcf, 0x72, 0xcd, 0x72, 0x43, 0xc7, 0x10, 0x97, 0xe5, 0xc6, 0x1f, 0x09, - 0xb7, 0x3b, 0xe9, 0x05, 0x09, 0xd0, 0x29, 0xc8, 0xed, 0x8e, 0x7a, 0x61, 0x6c, 0x42, 0x1e, 0xcc, - 0x31, 0x36, 0x31, 0x16, 0xd1, 0x00, 0x36, 0x34, 0x16, 0x19, 0x8b, 0xe9, 0x04, 0x76, 0x64, 0x2c, - 0x36, 0x96, 0xd0, 0x9b, 0xfd, 0xff, 0x37, 0x96, 0x18, 0x4b, 0xe9, 0x14, 0x36, 0x30, 0x96, 0xfa, - 0xe7, 0xc2, 0xc3, 0x45, 0x3d, 0x56, 0xb2, 0xae, 0xb3, 0x52, 0xd2, 0x10, 0xee, 0x45, 0x62, 0xbc, - 0x7f, 0x11, 0xfa, 0x52, 0xb1, 0x2b, 0xb0, 0xf0, 0xa5, 0xf3, 0xdb, 0x81, 0x10, 0x8d, 0xac, 0x9b, - 0x47, 0xb8, 0x2a, 0x6e, 0x3f, 0x2e, 0xd7, 0x41, 0x6f, 0x85, 0xfc, 0x46, 0xfe, 0xae, 0x03, 0x6b, - 0x8b, 0xec, 0x90, 0xc5, 0x26, 0xb0, 0x7e, 0x20, 0x3f, 0x91, 0x5f, 0xc8, 0x12, 0x59, 0x6d, 0xb0, - 0x83, 0xfa, 0x1f, 0x75, 0x8b, 0xba, 0x43, 0x5d, 0xfc, 0x0b, 0x7a, 0xb9, 0xa3, 0x9f, 0x51, 0xfc, - 0x1a, 0x00, 0x00, 0xff, 0xff, 0xed, 0x24, 0x6f, 0xbe, 0x98, 0x02, 0x00, 0x00, + // 407 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, + 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x9a, 0xe1, 0xc9, 0x62, 0xf2, + 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x62, 0xea, + 0x04, 0xa4, 0x5c, 0x8c, 0x72, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30, 0x32, + 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f, 0xf6, + 0x60, 0xfb, 0x2b, 0x7b, 0x37, 0x2e, 0x33, 0x2e, 0x1f, 0x64, 0xb3, 0x75, 0x7e, 0x3b, 0x5b, 0xda, + 0xf5, 0xc0, 0xad, 0x6c, 0xff, 0x7e, 0xed, 0x0a, 0x17, 0x47, 0x6e, 0x65, 0x7b, 0xc7, 0x8b, 0xbb, + 0xe2, 0xb6, 0x34, 0xfd, 0x1b, 0x97, 0x0d, 0x16, 0x6e, 0xe1, 0x06, 0xb5, 0x99, 0x72, 0x5e, 0xa7, + 0x3a, 0xd4, 0xd3, 0xf6, 0xcc, 0xd1, 0x07, 0xd9, 0xb8, 0x2a, 0x8d, 0xf9, 0x16, 0x77, 0x65, 0x94, + 0x97, 0x06, 0x41, 0x81, 0xde, 0x9f, 0x6e, 0xc6, 0xa3, 0xdf, 0x91, 0x6c, 0x5f, 0xcd, 0xb2, 0xfb, + 0xa5, 0xbd, 0x5c, 0xd9, 0xcb, 0x79, 0x8c, 0xb2, 0xf9, 0xf9, 0xce, 0x2e, 0xbf, 0x0e, 0xeb, 0x4d, + 0x30, 0x11, 0xd3, 0xff, 0x99, 0x25, 0xc1, 0x1d, 0x05, 0x7a, 0x87, 0x25, 0x61, 0x49, 0x31, 0x52, + 0xa0, 0x1b, 0x2c, 0x29, 0xcb, 0x08, 0x77, 0x15, 0xe8, 0x88, 0x65, 0xc4, 0x32, 0xc6, 0x86, 0x02, + 0x7d, 0xc0, 0x32, 0x66, 0x39, 0xc1, 0xa6, 0x02, 0xbd, 0xcb, 0x72, 0xc2, 0x72, 0x8a, 0x2d, 0x05, + 0xfa, 0x3d, 0xcb, 0x29, 0xcb, 0x19, 0xee, 0x29, 0xd0, 0x31, 0xcb, 0x19, 0xcb, 0x39, 0xee, 0x2b, + 0xd0, 0x2d, 0x96, 0xf3, 0xb8, 0x27, 0x5b, 0xdb, 0x9b, 0x7d, 0x44, 0xa9, 0x40, 0x1f, 0x4e, 0xc4, + 0xf4, 0x6d, 0x21, 0xd8, 0x10, 0xdb, 0x0a, 0x74, 0x33, 0xd8, 0x30, 0x58, 0x82, 0x1d, 0x05, 0xba, + 0x1b, 0x2c, 0x09, 0x96, 0xe2, 0x81, 0x02, 0xbd, 0x17, 0x2c, 0x0d, 0x36, 0xc2, 0x77, 0x9b, 0xf7, + 0x0f, 0x36, 0x0a, 0x36, 0xc6, 0x43, 0x05, 0xba, 0x13, 0x6c, 0x1c, 0x1f, 0xcb, 0x76, 0x5e, 0x9a, + 0xeb, 0xcc, 0xe6, 0xf9, 0x6c, 0x61, 0xb1, 0xab, 0x40, 0xb7, 0x13, 0xd9, 0xdf, 0x34, 0xa2, 0xfe, + 0xd4, 0x89, 0x98, 0xca, 0xbc, 0x34, 0x5f, 0xb6, 0x7e, 0xd1, 0x91, 0xb2, 0xb0, 0x79, 0x71, 0xed, + 0x56, 0xd6, 0xcd, 0x2f, 0x3e, 0x3d, 0x56, 0x24, 0x9e, 0x2a, 0x12, 0xbf, 0x2a, 0x12, 0xcf, 0x15, + 0xc1, 0x4b, 0x45, 0xf0, 0x5a, 0x11, 0x3c, 0x78, 0x82, 0xef, 0x9e, 0xe0, 0x87, 0x27, 0xf8, 0xe9, + 0x09, 0x1e, 0x3d, 0xc1, 0x93, 0x27, 0xf1, 0xec, 0x09, 0xfe, 0x7a, 0x12, 0x2f, 0x9e, 0xe0, 0xd5, + 0x93, 0x78, 0xf8, 0x43, 0xc2, 0x34, 0xeb, 0x1a, 0xa5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x34, + 0x55, 0x0b, 0x2b, 0x98, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto index e8f562eb..32ea8482 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go index 3b3602c5..0eebdc14 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go @@ -34,18 +34,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -69,20 +69,20 @@ func TestSubbyMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -96,18 +96,18 @@ func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -131,20 +131,20 @@ func TestSampleOneOfMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -200,9 +200,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -217,9 +217,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -234,9 +234,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -251,9 +251,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -270,12 +270,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -285,12 +285,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestSampleOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -328,13 +328,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -350,13 +350,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go index bb618881..b4501784 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" // Reference imports to suppress errors if they are not otherwise used. @@ -37,7 +35,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -80,49 +80,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -548,229 +548,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3542 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x23, 0xe5, - 0xf5, 0x5f, 0xc7, 0x97, 0xd8, 0xc7, 0x89, 0xe3, 0x4c, 0xc2, 0xae, 0x37, 0xc0, 0x2e, 0x1b, 0x6e, - 0xcb, 0xf2, 0x27, 0xd9, 0xcd, 0xde, 0xcd, 0xff, 0x0f, 0xca, 0xc5, 0x1b, 0xb2, 0x4a, 0xe2, 0xfc, - 0xc7, 0x09, 0x2c, 0xf4, 0x61, 0x34, 0xb1, 0xbf, 0x38, 0xde, 0x1d, 0xcf, 0xb8, 0x9e, 0xf1, 0xb2, - 0xe1, 0x89, 0x8a, 0x5e, 0x84, 0xaa, 0xde, 0xab, 0x96, 0x7b, 0x0b, 0x52, 0x0b, 0xa5, 0x37, 0xe8, - 0x4d, 0x55, 0x9f, 0x2a, 0x55, 0xb4, 0x3c, 0x55, 0x6d, 0x9f, 0xfa, 0xd0, 0x07, 0xa0, 0x48, 0xa5, - 0x2d, 0x6d, 0xa9, 0xb4, 0x52, 0x91, 0x78, 0xe9, 0xf9, 0x6e, 0x73, 0xb1, 0x9d, 0x8c, 0x83, 0x44, - 0x69, 0x24, 0x2b, 0x9e, 0x73, 0xce, 0xef, 0x37, 0xdf, 0x9c, 0xef, 0x7c, 0xe7, 0x9c, 0xef, 0x1b, - 0xc3, 0x2f, 0x8e, 0xc1, 0x0d, 0x55, 0xcb, 0xaa, 0x1a, 0x64, 0xb2, 0xd1, 0xb4, 0x1c, 0x6b, 0xbd, - 0xb5, 0x31, 0x59, 0x21, 0x76, 0xb9, 0x59, 0x6b, 0x38, 0x56, 0x73, 0x82, 0xc9, 0x94, 0x21, 0x6e, - 0x31, 0x21, 0x2d, 0xc6, 0x97, 0x60, 0xf8, 0x5c, 0xcd, 0x20, 0x73, 0xae, 0x61, 0x89, 0x38, 0xca, - 0x19, 0x88, 0x6d, 0xa0, 0x30, 0x17, 0xb9, 0x21, 0x7a, 0x38, 0x3d, 0x75, 0xd3, 0x44, 0x1b, 0x68, - 0x22, 0x88, 0x58, 0xa1, 0x62, 0x95, 0x21, 0xc6, 0xdf, 0x8c, 0xc1, 0x48, 0x17, 0xad, 0xa2, 0x40, - 0xcc, 0xd4, 0xeb, 0x94, 0x31, 0x72, 0x38, 0xa5, 0xb2, 0xef, 0x4a, 0x0e, 0xfa, 0x1b, 0x7a, 0xf9, - 0x92, 0x5e, 0x25, 0xb9, 0x3e, 0x26, 0x96, 0x97, 0xca, 0x01, 0x80, 0x0a, 0x69, 0x10, 0xb3, 0x42, - 0xcc, 0xf2, 0x56, 0x2e, 0x8a, 0xa3, 0x48, 0xa9, 0x3e, 0x89, 0x72, 0x3b, 0x0c, 0x37, 0x5a, 0xeb, - 0x46, 0xad, 0xac, 0xf9, 0xcc, 0x00, 0xcd, 0xe2, 0x6a, 0x96, 0x2b, 0xe6, 0x3c, 0xe3, 0x5b, 0x61, - 0xe8, 0x41, 0xa2, 0x5f, 0xf2, 0x9b, 0xa6, 0x99, 0x69, 0x86, 0x8a, 0x7d, 0x86, 0xb3, 0x30, 0x50, - 0x27, 0xb6, 0x8d, 0x03, 0xd0, 0x9c, 0xad, 0x06, 0xc9, 0xc5, 0xd8, 0xd3, 0xdf, 0xd0, 0xf1, 0xf4, - 0xed, 0x4f, 0x9e, 0x16, 0xa8, 0x55, 0x04, 0x29, 0xd3, 0x90, 0x22, 0x66, 0xab, 0xce, 0x19, 0xe2, - 0xdb, 0xf8, 0xaf, 0x80, 0x16, 0xed, 0x2c, 0x49, 0x0a, 0x13, 0x14, 0xfd, 0x36, 0x69, 0x5e, 0xae, - 0x95, 0x49, 0x2e, 0xc1, 0x08, 0x6e, 0xed, 0x20, 0x28, 0x71, 0x7d, 0x3b, 0x87, 0xc4, 0xe1, 0xa3, - 0xa4, 0xc8, 0x15, 0x87, 0x98, 0x76, 0xcd, 0x32, 0x73, 0xfd, 0x8c, 0xe4, 0xe6, 0x2e, 0xb3, 0x48, - 0x8c, 0x4a, 0x3b, 0x85, 0x87, 0x53, 0x4e, 0x41, 0xbf, 0xd5, 0x70, 0xf0, 0x9b, 0x9d, 0x4b, 0xe2, - 0xfc, 0xa4, 0xa7, 0xae, 0xeb, 0x1a, 0x08, 0x45, 0x6e, 0xa3, 0x4a, 0x63, 0x65, 0x01, 0xb2, 0xb6, - 0xd5, 0x6a, 0x96, 0x89, 0x56, 0xb6, 0x2a, 0x44, 0xab, 0x99, 0x1b, 0x56, 0x2e, 0xc5, 0x08, 0x0e, - 0x76, 0x3e, 0x08, 0x33, 0x9c, 0x45, 0xbb, 0x05, 0x34, 0x53, 0x33, 0x76, 0xe0, 0x5a, 0xd9, 0x0b, - 0x09, 0x7b, 0xcb, 0x74, 0xf4, 0x2b, 0xb9, 0x01, 0x16, 0x21, 0xe2, 0x6a, 0xfc, 0x5f, 0x71, 0x18, - 0xea, 0x25, 0xc4, 0xee, 0x84, 0xf8, 0x06, 0x7d, 0x4a, 0x0c, 0xb0, 0x5d, 0xf8, 0x80, 0x63, 0x82, - 0x4e, 0x4c, 0xbc, 0x4f, 0x27, 0x4e, 0x43, 0xda, 0x24, 0xb6, 0x43, 0x2a, 0x3c, 0x22, 0xa2, 0x3d, - 0xc6, 0x14, 0x70, 0x50, 0x67, 0x48, 0xc5, 0xde, 0x57, 0x48, 0x5d, 0x80, 0x21, 0x77, 0x48, 0x5a, - 0x53, 0x37, 0xab, 0x32, 0x36, 0x27, 0xc3, 0x46, 0x32, 0x51, 0x90, 0x38, 0x95, 0xc2, 0xd4, 0x0c, - 0x09, 0x5c, 0x2b, 0x73, 0x00, 0x96, 0x49, 0xac, 0x0d, 0x5c, 0x5e, 0x65, 0x03, 0xe3, 0xa4, 0xbb, - 0x97, 0x8a, 0xd4, 0xa4, 0xc3, 0x4b, 0x16, 0x97, 0x96, 0x0d, 0xe5, 0xac, 0x17, 0x6a, 0xfd, 0xdb, - 0x44, 0xca, 0x12, 0x5f, 0x64, 0x1d, 0xd1, 0xb6, 0x06, 0x99, 0x26, 0xa1, 0x71, 0x8f, 0x2e, 0xe6, - 0x4f, 0x96, 0x62, 0x83, 0x98, 0x08, 0x7d, 0x32, 0x55, 0xc0, 0xf8, 0x83, 0x0d, 0x36, 0xfd, 0x97, - 0xca, 0x8d, 0xe0, 0x0a, 0x34, 0x16, 0x56, 0xc0, 0xb2, 0xd0, 0x80, 0x14, 0x2e, 0xa3, 0x6c, 0xec, - 0x0c, 0x64, 0x82, 0xee, 0x51, 0x46, 0x21, 0x6e, 0x3b, 0x7a, 0xd3, 0x61, 0x51, 0x18, 0x57, 0xf9, - 0x85, 0x92, 0x85, 0x28, 0x26, 0x19, 0x96, 0xe5, 0xe2, 0x2a, 0xfd, 0x3a, 0x76, 0x1a, 0x06, 0x03, - 0xb7, 0xef, 0x15, 0x38, 0xfe, 0x58, 0x02, 0x46, 0xbb, 0xc5, 0x5c, 0xd7, 0xf0, 0xc7, 0xe5, 0x83, - 0x11, 0xb0, 0x4e, 0x9a, 0x18, 0x77, 0x94, 0x41, 0x5c, 0x61, 0x44, 0xc5, 0x0d, 0x7d, 0x9d, 0x18, - 0x18, 0x4d, 0x91, 0xc3, 0x99, 0xa9, 0xdb, 0x7b, 0x8a, 0xea, 0x89, 0x45, 0x0a, 0x51, 0x39, 0x52, - 0xb9, 0x0b, 0x62, 0x22, 0xc5, 0x51, 0x86, 0x23, 0xbd, 0x31, 0xd0, 0x58, 0x54, 0x19, 0x4e, 0xb9, - 0x16, 0x52, 0xf4, 0x3f, 0xf7, 0x6d, 0x82, 0x8d, 0x39, 0x49, 0x05, 0xd4, 0xaf, 0xca, 0x18, 0x24, - 0x59, 0x98, 0x55, 0x88, 0x2c, 0x0d, 0xee, 0x35, 0x9d, 0x98, 0x0a, 0xd9, 0xd0, 0x5b, 0x86, 0xa3, - 0x5d, 0xd6, 0x8d, 0x16, 0x61, 0x01, 0x83, 0x13, 0x23, 0x84, 0xf7, 0x52, 0x99, 0x72, 0x10, 0xd2, - 0x3c, 0x2a, 0x6b, 0x88, 0xb9, 0xc2, 0xb2, 0x4f, 0x5c, 0xe5, 0x81, 0xba, 0x40, 0x25, 0xf4, 0xf6, - 0x17, 0x6d, 0x5c, 0x0b, 0x62, 0x6a, 0xd9, 0x2d, 0xa8, 0x80, 0xdd, 0xfe, 0x74, 0x7b, 0xe2, 0xbb, - 0xbe, 0xfb, 0xe3, 0xb5, 0xc7, 0xe2, 0xf8, 0x4f, 0xfa, 0x20, 0xc6, 0xd6, 0xdb, 0x10, 0xa4, 0x57, - 0xef, 0x5f, 0x29, 0x68, 0x73, 0xc5, 0xb5, 0x99, 0xc5, 0x42, 0x36, 0xa2, 0x64, 0x00, 0x98, 0xe0, - 0xdc, 0x62, 0x71, 0x7a, 0x35, 0xdb, 0xe7, 0x5e, 0x2f, 0x2c, 0xaf, 0x9e, 0x3a, 0x91, 0x8d, 0xba, - 0x80, 0x35, 0x2e, 0x88, 0xf9, 0x0d, 0x8e, 0x4f, 0x65, 0xe3, 0x18, 0x09, 0x03, 0x9c, 0x60, 0xe1, - 0x42, 0x61, 0x0e, 0x2d, 0x12, 0x41, 0x09, 0xda, 0xf4, 0x2b, 0x83, 0x90, 0x62, 0x92, 0x99, 0x62, - 0x71, 0x31, 0x9b, 0x74, 0x39, 0x4b, 0xab, 0xea, 0xc2, 0xf2, 0x7c, 0x36, 0xe5, 0x72, 0xce, 0xab, - 0xc5, 0xb5, 0x95, 0x2c, 0xb8, 0x0c, 0x4b, 0x85, 0x52, 0x69, 0x7a, 0xbe, 0x90, 0x4d, 0xbb, 0x16, - 0x33, 0xf7, 0xaf, 0x16, 0x4a, 0xd9, 0x81, 0xc0, 0xb0, 0xf0, 0x16, 0x83, 0xee, 0x2d, 0x0a, 0xcb, - 0x6b, 0x4b, 0xd9, 0x8c, 0x32, 0x0c, 0x83, 0xfc, 0x16, 0x72, 0x10, 0x43, 0x6d, 0x22, 0x1c, 0x69, - 0xd6, 0x1b, 0x08, 0x67, 0x19, 0x0e, 0x08, 0xd0, 0x42, 0x19, 0x9f, 0x85, 0x38, 0x8b, 0x2e, 0x8c, - 0xe2, 0xcc, 0xe2, 0xf4, 0x4c, 0x61, 0x51, 0x2b, 0xae, 0xac, 0x2e, 0x14, 0x97, 0xa7, 0x17, 0xd1, - 0x77, 0xae, 0x4c, 0x2d, 0xfc, 0xff, 0xda, 0x82, 0x5a, 0x98, 0x43, 0xff, 0xf9, 0x64, 0x2b, 0x85, - 0xe9, 0x55, 0x94, 0x45, 0xc7, 0x8f, 0xc0, 0x68, 0xb7, 0x3c, 0xd3, 0x6d, 0x65, 0x8c, 0x3f, 0x17, - 0x81, 0x91, 0x2e, 0x29, 0xb3, 0xeb, 0x2a, 0xba, 0x1b, 0xe2, 0x3c, 0xd2, 0x78, 0x11, 0xb9, 0xad, - 0x6b, 0xee, 0x65, 0x71, 0xd7, 0x51, 0x48, 0x18, 0xce, 0x5f, 0x48, 0xa3, 0xdb, 0x14, 0x52, 0x4a, - 0xd1, 0x11, 0x4e, 0x8f, 0x44, 0x20, 0xb7, 0x1d, 0x77, 0xc8, 0x7a, 0xef, 0x0b, 0xac, 0xf7, 0x3b, - 0xdb, 0x07, 0x70, 0x68, 0xfb, 0x67, 0xe8, 0x18, 0xc5, 0xf3, 0x11, 0xd8, 0xdb, 0xbd, 0xdf, 0xe8, - 0x3a, 0x86, 0xbb, 0x20, 0x51, 0x27, 0xce, 0xa6, 0x25, 0x6b, 0xee, 0x2d, 0x5d, 0x32, 0x39, 0x55, - 0xb7, 0xfb, 0x4a, 0xa0, 0xfc, 0xa5, 0x20, 0xba, 0x5d, 0xd3, 0xc0, 0x47, 0xd3, 0x31, 0xd2, 0x47, - 0xfb, 0xe0, 0x9a, 0xae, 0xe4, 0x5d, 0x07, 0x7a, 0x3d, 0x40, 0xcd, 0x6c, 0xb4, 0x1c, 0x5e, 0x57, - 0x79, 0x9a, 0x49, 0x31, 0x09, 0x5b, 0xc2, 0x34, 0x85, 0xb4, 0x1c, 0x57, 0x1f, 0x65, 0x7a, 0xe0, - 0x22, 0x66, 0x70, 0xc6, 0x1b, 0x68, 0x8c, 0x0d, 0xf4, 0xc0, 0x36, 0x4f, 0xda, 0x51, 0xb2, 0x8e, - 0x42, 0xb6, 0x6c, 0xd4, 0x88, 0xe9, 0x68, 0xb6, 0xd3, 0x24, 0x7a, 0xbd, 0x66, 0x56, 0x59, 0x1e, - 0x4d, 0xe6, 0xe3, 0x1b, 0xba, 0x61, 0x13, 0x75, 0x88, 0xab, 0x4b, 0x52, 0x4b, 0x11, 0xac, 0x58, - 0x34, 0x7d, 0x88, 0x44, 0x00, 0xc1, 0xd5, 0x2e, 0x62, 0xfc, 0x77, 0xfd, 0x90, 0xf6, 0x75, 0x67, - 0xca, 0x21, 0x18, 0xb8, 0xa8, 0x5f, 0xd6, 0x35, 0xd9, 0x71, 0x73, 0x4f, 0xa4, 0xa9, 0x6c, 0x45, - 0x74, 0xdd, 0x47, 0x61, 0x94, 0x99, 0xe0, 0x33, 0xe2, 0x8d, 0xca, 0x86, 0x6e, 0xdb, 0xcc, 0x69, - 0x49, 0x66, 0xaa, 0x50, 0x5d, 0x91, 0xaa, 0x66, 0xa5, 0x46, 0x39, 0x09, 0x23, 0x0c, 0x51, 0xc7, - 0xc4, 0x5b, 0x6b, 0x18, 0x44, 0xa3, 0x7b, 0x00, 0x9b, 0xe5, 0x53, 0x77, 0x64, 0xc3, 0xd4, 0x62, - 0x49, 0x18, 0xd0, 0x11, 0xd9, 0xca, 0x3c, 0x5c, 0xcf, 0x60, 0x55, 0x62, 0x92, 0xa6, 0xee, 0x10, - 0x8d, 0x7c, 0xb4, 0x85, 0xb6, 0x9a, 0x6e, 0x56, 0xb4, 0x4d, 0xdd, 0xde, 0xcc, 0x8d, 0xfa, 0x09, - 0xf6, 0x53, 0xdb, 0x79, 0x61, 0x5a, 0x60, 0x96, 0xd3, 0x66, 0xe5, 0x1e, 0xb4, 0x53, 0xf2, 0xb0, - 0x97, 0x11, 0xa1, 0x53, 0xf0, 0x99, 0xb5, 0xf2, 0x26, 0x29, 0x5f, 0xd2, 0x5a, 0xce, 0xc6, 0x99, - 0xdc, 0xb5, 0x7e, 0x06, 0x36, 0xc8, 0x12, 0xb3, 0x99, 0xa5, 0x26, 0x6b, 0x68, 0xa1, 0x94, 0x60, - 0x80, 0xce, 0x47, 0xbd, 0xf6, 0x10, 0x0e, 0xdb, 0x6a, 0xb2, 0x1a, 0x91, 0xe9, 0xb2, 0xb8, 0x7d, - 0x4e, 0x9c, 0x28, 0x0a, 0xc0, 0x12, 0xf6, 0xa7, 0xf9, 0x78, 0x69, 0xa5, 0x50, 0x98, 0x53, 0xd3, - 0x92, 0xe5, 0x9c, 0xd5, 0xa4, 0x31, 0x55, 0xb5, 0x5c, 0x1f, 0xa7, 0x79, 0x4c, 0x55, 0x2d, 0xe9, - 0x61, 0xf4, 0x57, 0xb9, 0xcc, 0x1f, 0x1b, 0xf7, 0x2e, 0xa2, 0x59, 0xb7, 0x73, 0xd9, 0x80, 0xbf, - 0xca, 0xe5, 0x79, 0x6e, 0x20, 0xc2, 0xdc, 0xc6, 0x25, 0x71, 0x8d, 0xe7, 0x2f, 0x3f, 0x70, 0xb8, - 0xe3, 0x29, 0xdb, 0xa1, 0x78, 0xc7, 0xc6, 0x56, 0x27, 0x50, 0x09, 0xdc, 0xb1, 0xb1, 0xd5, 0x0e, - 0xbb, 0x99, 0x6d, 0xc0, 0x9a, 0xa4, 0x8c, 0x2e, 0xaf, 0xe4, 0xf6, 0xf9, 0xad, 0x7d, 0x0a, 0x65, - 0x12, 0x03, 0xb9, 0xac, 0x11, 0x53, 0x5f, 0xc7, 0xb9, 0xd7, 0x9b, 0xf8, 0xc5, 0xce, 0x1d, 0xf4, - 0x1b, 0x67, 0xca, 0xe5, 0x02, 0xd3, 0x4e, 0x33, 0xa5, 0x72, 0x04, 0x86, 0xad, 0xf5, 0x8b, 0x65, - 0x1e, 0x5c, 0x1a, 0xf2, 0x6c, 0xd4, 0xae, 0xe4, 0x6e, 0x62, 0x6e, 0x1a, 0xa2, 0x0a, 0x16, 0x5a, - 0x2b, 0x4c, 0xac, 0xdc, 0x86, 0xe4, 0xf6, 0xa6, 0xde, 0x6c, 0xb0, 0x22, 0x6d, 0xa3, 0x53, 0x49, - 0xee, 0x66, 0x6e, 0xca, 0xe5, 0xcb, 0x52, 0xac, 0x14, 0xe0, 0x20, 0x7d, 0x78, 0x53, 0x37, 0x2d, - 0xad, 0x65, 0x13, 0xcd, 0x1b, 0xa2, 0x3b, 0x17, 0xb7, 0xd0, 0x61, 0xa9, 0xd7, 0x49, 0xb3, 0x35, - 0x1b, 0x93, 0x99, 0x34, 0x92, 0xd3, 0x73, 0x01, 0x46, 0x5b, 0x66, 0xcd, 0xc4, 0x10, 0x47, 0x0d, - 0x05, 0xf3, 0x05, 0x9b, 0xfb, 0x53, 0xff, 0x36, 0x4d, 0xf7, 0x9a, 0xdf, 0x9a, 0x07, 0x89, 0x3a, - 0xd2, 0xea, 0x14, 0x8e, 0xe7, 0x61, 0xc0, 0x1f, 0x3b, 0x4a, 0x0a, 0x78, 0xf4, 0x60, 0x75, 0xc3, - 0x8a, 0x3a, 0x5b, 0x9c, 0xa3, 0xb5, 0xf0, 0x81, 0x02, 0x16, 0x36, 0xac, 0xc9, 0x8b, 0x0b, 0xab, - 0x05, 0x4d, 0x5d, 0x5b, 0x5e, 0x5d, 0x58, 0x2a, 0x64, 0xa3, 0x47, 0x52, 0xc9, 0xb7, 0xfa, 0xb3, - 0x0f, 0xe3, 0x5f, 0xdf, 0xf8, 0x2b, 0x7d, 0x90, 0x09, 0xf6, 0xc1, 0xca, 0xff, 0xc2, 0x3e, 0xb9, - 0x69, 0xb5, 0x89, 0xa3, 0x3d, 0x58, 0x6b, 0xb2, 0x70, 0xae, 0xeb, 0xbc, 0x93, 0x74, 0x67, 0x62, - 0x54, 0x58, 0xe1, 0xf6, 0xfe, 0x3e, 0xb4, 0x39, 0xc7, 0x4c, 0x94, 0x45, 0x38, 0x88, 0x2e, 0xc3, - 0x5e, 0xd3, 0xac, 0xe8, 0xcd, 0x8a, 0xe6, 0x1d, 0x17, 0x68, 0x7a, 0x19, 0xe3, 0xc0, 0xb6, 0x78, - 0x25, 0x71, 0x59, 0xae, 0x33, 0xad, 0x92, 0x30, 0xf6, 0x52, 0xec, 0xb4, 0x30, 0x6d, 0x8b, 0x9a, - 0xe8, 0x76, 0x51, 0x83, 0xbd, 0x57, 0x5d, 0x6f, 0x60, 0xd8, 0x38, 0xcd, 0x2d, 0xd6, 0xbd, 0x25, - 0xd5, 0x24, 0x0a, 0x0a, 0xf4, 0xfa, 0x83, 0x9b, 0x03, 0xbf, 0x1f, 0xff, 0x10, 0x85, 0x01, 0x7f, - 0x07, 0x47, 0x1b, 0xe2, 0x32, 0x4b, 0xf3, 0x11, 0x96, 0x05, 0x6e, 0xdc, 0xb1, 0xdf, 0x9b, 0x98, - 0xa5, 0xf9, 0x3f, 0x9f, 0xe0, 0x7d, 0x95, 0xca, 0x91, 0xb4, 0xf6, 0xd2, 0x58, 0x23, 0xbc, 0x5b, - 0x4f, 0xaa, 0xe2, 0x0a, 0x93, 0x5d, 0xe2, 0xa2, 0xcd, 0xb8, 0x13, 0x8c, 0xfb, 0xa6, 0x9d, 0xb9, - 0xcf, 0x97, 0x18, 0x79, 0xea, 0x7c, 0x49, 0x5b, 0x2e, 0xaa, 0x4b, 0xd3, 0x8b, 0xaa, 0x80, 0x2b, - 0xfb, 0x21, 0x66, 0xe8, 0x0f, 0x6d, 0x05, 0x2b, 0x05, 0x13, 0xf5, 0xea, 0x78, 0x64, 0xa0, 0x47, - 0x1e, 0xc1, 0xfc, 0xcc, 0x44, 0x1f, 0x60, 0xe8, 0x4f, 0x42, 0x9c, 0xf9, 0x4b, 0x01, 0x10, 0x1e, - 0xcb, 0xee, 0x51, 0x92, 0x10, 0x9b, 0x2d, 0xaa, 0x34, 0xfc, 0x31, 0xde, 0xb9, 0x54, 0x5b, 0x59, - 0x28, 0xcc, 0xe2, 0x0a, 0x18, 0x3f, 0x09, 0x09, 0xee, 0x04, 0xba, 0x34, 0x5c, 0x37, 0x20, 0x88, - 0x5f, 0x0a, 0x8e, 0x88, 0xd4, 0xae, 0x2d, 0xcd, 0x14, 0xd4, 0x6c, 0x9f, 0x7f, 0x7a, 0x7f, 0x16, - 0x81, 0xb4, 0xaf, 0xa1, 0xa2, 0xa5, 0x5c, 0x37, 0x0c, 0xeb, 0x41, 0x4d, 0x37, 0x6a, 0x98, 0xa1, - 0xf8, 0xfc, 0x00, 0x13, 0x4d, 0x53, 0x49, 0xaf, 0xfe, 0xfb, 0x8f, 0xc4, 0xe6, 0x33, 0x11, 0xc8, - 0xb6, 0x37, 0x63, 0x6d, 0x03, 0x8c, 0x7c, 0xa8, 0x03, 0x7c, 0x2a, 0x02, 0x99, 0x60, 0x07, 0xd6, - 0x36, 0xbc, 0x43, 0x1f, 0xea, 0xf0, 0x9e, 0x8c, 0xc0, 0x60, 0xa0, 0xef, 0xfa, 0xaf, 0x1a, 0xdd, - 0x13, 0x51, 0x18, 0xe9, 0x82, 0xc3, 0x04, 0xc4, 0x1b, 0x54, 0xde, 0x33, 0xdf, 0xd1, 0xcb, 0xbd, - 0x26, 0x68, 0xfd, 0x5b, 0xd1, 0x9b, 0x8e, 0xe8, 0x67, 0xb1, 0x5e, 0xd6, 0x2a, 0x98, 0x54, 0x6b, - 0x1b, 0x35, 0x6c, 0xdf, 0xf8, 0x8e, 0x85, 0x77, 0xad, 0x43, 0x9e, 0x9c, 0x6f, 0x8f, 0xff, 0x07, - 0x94, 0x86, 0x65, 0xd7, 0x9c, 0xda, 0x65, 0x7a, 0x3c, 0x27, 0x37, 0xd2, 0xb4, 0x8b, 0x8d, 0xa9, - 0x59, 0xa9, 0x59, 0x30, 0x1d, 0xd7, 0xda, 0x24, 0x55, 0xbd, 0xcd, 0x9a, 0xa6, 0xa1, 0xa8, 0x9a, - 0x95, 0x1a, 0xd7, 0x1a, 0x1b, 0xcd, 0x8a, 0xd5, 0xa2, 0x0d, 0x01, 0xb7, 0xa3, 0x59, 0x2f, 0xa2, - 0xa6, 0xb9, 0xcc, 0x35, 0x11, 0x1d, 0x9b, 0xb7, 0x83, 0x1f, 0x50, 0xd3, 0x5c, 0xc6, 0x4d, 0x6e, - 0x85, 0x21, 0xbd, 0x5a, 0x6d, 0x52, 0x72, 0x49, 0xc4, 0xdb, 0xd0, 0x8c, 0x2b, 0x66, 0x86, 0x63, - 0xe7, 0x21, 0x29, 0xfd, 0x40, 0x0b, 0x0b, 0xf5, 0x04, 0xd6, 0x7c, 0x76, 0x8e, 0xd2, 0x47, 0x37, - 0xf5, 0xa6, 0x54, 0xe2, 0x4d, 0x6b, 0xb6, 0xe6, 0x1d, 0xe8, 0xf5, 0xa1, 0x3e, 0xa9, 0xa6, 0x6b, - 0xb6, 0x7b, 0x82, 0x33, 0xfe, 0x3c, 0x96, 0xd7, 0xe0, 0x81, 0xa4, 0x32, 0x07, 0x49, 0xc3, 0xc2, - 0xf8, 0xa0, 0x08, 0x7e, 0x1a, 0x7e, 0x38, 0xe4, 0x0c, 0x73, 0x62, 0x51, 0xd8, 0xab, 0x2e, 0x72, - 0xec, 0xd7, 0x11, 0x48, 0x4a, 0x31, 0x16, 0x8a, 0x58, 0x43, 0x77, 0x36, 0x19, 0x5d, 0x7c, 0xa6, - 0x2f, 0x1b, 0x51, 0xd9, 0x35, 0x95, 0x63, 0x37, 0x63, 0xb2, 0x10, 0x10, 0x72, 0x7a, 0x4d, 0xe7, - 0xd5, 0x20, 0x7a, 0x85, 0x35, 0xb8, 0x56, 0xbd, 0x8e, 0x33, 0x69, 0xcb, 0x79, 0x15, 0xf2, 0x59, - 0x21, 0xa6, 0xe7, 0xe2, 0x4e, 0x53, 0xaf, 0x19, 0x01, 0xdb, 0x18, 0xb3, 0xcd, 0x4a, 0x85, 0x6b, - 0x9c, 0x87, 0xfd, 0x92, 0xb7, 0x42, 0x1c, 0x1d, 0x9b, 0xe7, 0x8a, 0x07, 0x4a, 0xb0, 0xd3, 0xae, - 0x7d, 0xc2, 0x60, 0x4e, 0xe8, 0x25, 0x76, 0xe6, 0x02, 0x36, 0xb2, 0x56, 0xbd, 0xdd, 0x13, 0x33, - 0xd9, 0xb6, 0x7d, 0x97, 0x7d, 0x4f, 0xe4, 0x01, 0xf0, 0x9a, 0x8a, 0xe7, 0xfa, 0xa2, 0xf3, 0x2b, - 0x33, 0x2f, 0xf6, 0x8d, 0xcd, 0x73, 0xdc, 0x8a, 0xf4, 0xa0, 0x4a, 0x36, 0x0c, 0x52, 0xa6, 0xde, - 0x81, 0x67, 0x6f, 0x84, 0x3b, 0xaa, 0x35, 0x67, 0xb3, 0xb5, 0x3e, 0x81, 0x77, 0x98, 0xac, 0x5a, - 0x55, 0xcb, 0x7b, 0x9d, 0x41, 0xaf, 0xd8, 0x05, 0xfb, 0x26, 0x5e, 0x69, 0xa4, 0x5c, 0xe9, 0x58, - 0xe8, 0xfb, 0x8f, 0xfc, 0x32, 0x8c, 0x08, 0x63, 0x8d, 0x9d, 0xa9, 0xf2, 0x16, 0x54, 0xd9, 0x71, - 0x43, 0x9e, 0x7b, 0xf9, 0x4d, 0x56, 0x12, 0xd4, 0x61, 0x01, 0xa5, 0x3a, 0xde, 0xa4, 0xe6, 0x55, - 0xb8, 0x26, 0xc0, 0xc7, 0x63, 0x18, 0xb7, 0xdc, 0x3b, 0x33, 0xbe, 0x22, 0x18, 0x47, 0x7c, 0x8c, - 0x25, 0x01, 0xcd, 0xcf, 0xc2, 0xe0, 0x6e, 0xb8, 0x7e, 0x29, 0xb8, 0x06, 0x88, 0x9f, 0x64, 0x1e, - 0x86, 0x18, 0x49, 0xb9, 0x65, 0x3b, 0x56, 0x9d, 0x25, 0x88, 0x9d, 0x69, 0x7e, 0xf5, 0x26, 0x0f, - 0xaa, 0x0c, 0x85, 0xcd, 0xba, 0xa8, 0xfc, 0xbd, 0x30, 0x4a, 0x25, 0x6c, 0x0d, 0xfa, 0xd9, 0xc2, - 0x8f, 0x10, 0x72, 0xbf, 0x7d, 0x84, 0xc7, 0xde, 0x88, 0x4b, 0xe0, 0xe3, 0xf5, 0xcd, 0x44, 0x95, - 0x38, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x18, 0xca, 0x8e, 0xef, 0x18, 0x72, 0x8f, 0xbf, 0x1d, 0x9c, - 0x89, 0x79, 0x8e, 0x9c, 0x36, 0x8c, 0xfc, 0x1a, 0xec, 0xeb, 0x32, 0xb3, 0x3d, 0x70, 0x3e, 0x21, - 0x38, 0x47, 0x3b, 0x66, 0x97, 0xd2, 0xae, 0x80, 0x94, 0xbb, 0xf3, 0xd1, 0x03, 0xe7, 0x93, 0x82, - 0x53, 0x11, 0x58, 0x39, 0x2d, 0x94, 0xf1, 0x3c, 0x0c, 0xe3, 0x4e, 0x7d, 0xdd, 0xb2, 0xc5, 0xbe, - 0xb7, 0x07, 0xba, 0xa7, 0x04, 0xdd, 0x90, 0x00, 0xb2, 0x5d, 0x30, 0xe5, 0x3a, 0x0b, 0xc9, 0x0d, - 0xdc, 0x00, 0xf5, 0x40, 0xf1, 0xb4, 0xa0, 0xe8, 0xa7, 0xf6, 0x14, 0x3a, 0x0d, 0x03, 0x55, 0x4b, - 0xa4, 0xe1, 0x70, 0xf8, 0x33, 0x02, 0x9e, 0x96, 0x18, 0x41, 0xd1, 0xb0, 0x1a, 0x2d, 0x83, 0xe6, - 0xe8, 0x70, 0x8a, 0xaf, 0x49, 0x0a, 0x89, 0x11, 0x14, 0xbb, 0x70, 0xeb, 0xd7, 0x25, 0x85, 0xed, - 0xf3, 0xe7, 0xdd, 0xf4, 0xac, 0xd7, 0xd8, 0xb2, 0xcc, 0x5e, 0x06, 0xf1, 0xac, 0x60, 0x00, 0x01, - 0xa1, 0x04, 0x77, 0x42, 0xaa, 0xd7, 0x89, 0xf8, 0x86, 0x80, 0x27, 0x89, 0x9c, 0x01, 0x5c, 0x67, - 0x32, 0xc9, 0xd0, 0x77, 0x2b, 0xe1, 0x14, 0xdf, 0x14, 0x14, 0x19, 0x1f, 0x4c, 0x3c, 0x86, 0x43, - 0x6c, 0x07, 0xb7, 0xea, 0x3d, 0x90, 0x3c, 0x2f, 0x1f, 0x43, 0x40, 0x84, 0x2b, 0xd7, 0x89, 0x59, - 0xde, 0xec, 0x8d, 0xe1, 0x05, 0xe9, 0x4a, 0x89, 0xa1, 0x14, 0x98, 0x79, 0xea, 0x7a, 0x13, 0x37, - 0xd7, 0x46, 0x4f, 0xd3, 0xf1, 0x2d, 0xc1, 0x31, 0xe0, 0x82, 0x84, 0x47, 0x5a, 0xe6, 0x6e, 0x68, - 0x5e, 0x94, 0x1e, 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, 0x9d, 0x29, 0xed, 0x24, 0x76, 0xc3, 0xf6, 0x6d, - 0xb9, 0xf4, 0x38, 0x76, 0xc9, 0xcf, 0x88, 0x33, 0x6d, 0xe3, 0x16, 0xbc, 0x17, 0x9a, 0xef, 0xc8, - 0x99, 0x66, 0x00, 0x0a, 0xbe, 0x1f, 0xf6, 0x77, 0x4d, 0xf5, 0x3d, 0x90, 0x7d, 0x57, 0x90, 0xed, - 0xed, 0x92, 0xee, 0x45, 0x4a, 0xd8, 0x2d, 0xe5, 0xf7, 0x64, 0x4a, 0x20, 0x6d, 0x5c, 0x2b, 0xb4, - 0x8d, 0xb5, 0xf5, 0x8d, 0xdd, 0x79, 0xed, 0xfb, 0xd2, 0x6b, 0x1c, 0x1b, 0xf0, 0xda, 0x2a, 0xec, - 0x15, 0x8c, 0xbb, 0x9b, 0xd7, 0x97, 0x64, 0x62, 0xe5, 0xe8, 0xb5, 0xe0, 0xec, 0x7e, 0x04, 0xc6, - 0x5c, 0x77, 0xca, 0x0e, 0xcc, 0xd6, 0xe8, 0xc1, 0x40, 0x38, 0xf3, 0xcb, 0x82, 0x59, 0x66, 0x7c, - 0xb7, 0x85, 0xb3, 0x97, 0xf4, 0x06, 0x25, 0xbf, 0x00, 0x39, 0x49, 0xde, 0x32, 0xb1, 0xc1, 0xb7, - 0xaa, 0x26, 0x4e, 0x63, 0xa5, 0x07, 0xea, 0x1f, 0xb4, 0x4d, 0xd5, 0x9a, 0x0f, 0x4e, 0x99, 0x17, - 0x20, 0xeb, 0xf6, 0x1b, 0x5a, 0xad, 0xde, 0xb0, 0xb0, 0xb5, 0xdc, 0x99, 0xf1, 0x87, 0x72, 0xa6, - 0x5c, 0xdc, 0x02, 0x83, 0xe5, 0x0b, 0x90, 0x61, 0x97, 0xbd, 0x86, 0xe4, 0x8f, 0x04, 0xd1, 0xa0, - 0x87, 0x12, 0x89, 0x03, 0x3b, 0x25, 0xec, 0x79, 0x7b, 0xc9, 0x7f, 0x3f, 0x96, 0x89, 0x43, 0x40, - 0x78, 0xf4, 0x0d, 0xb5, 0x55, 0x62, 0x25, 0xec, 0xf5, 0x6b, 0xee, 0x63, 0x57, 0xc5, 0x9a, 0x0d, - 0x16, 0xe2, 0xfc, 0x22, 0x75, 0x4f, 0xb0, 0x5c, 0x86, 0x93, 0x3d, 0x72, 0xd5, 0xf5, 0x50, 0xa0, - 0x5a, 0xe6, 0xcf, 0xc1, 0x60, 0xa0, 0x54, 0x86, 0x53, 0x7d, 0x5c, 0x50, 0x0d, 0xf8, 0x2b, 0x65, - 0xfe, 0x24, 0xc4, 0x68, 0xd9, 0x0b, 0x87, 0x7f, 0x42, 0xc0, 0x99, 0x79, 0xfe, 0xff, 0x20, 0x29, - 0xcb, 0x5d, 0x38, 0xf4, 0x93, 0x02, 0xea, 0x42, 0x28, 0x5c, 0x96, 0xba, 0x70, 0xf8, 0xa7, 0x24, - 0x5c, 0x42, 0x28, 0xbc, 0x77, 0x17, 0xfe, 0xfc, 0xd3, 0x31, 0x91, 0xae, 0xa4, 0xef, 0xe8, 0x3b, - 0x1f, 0x5e, 0xe3, 0xc2, 0xd1, 0x8f, 0x8a, 0x9b, 0x4b, 0x44, 0xfe, 0x34, 0xc4, 0x7b, 0x74, 0xf8, - 0x67, 0x04, 0x94, 0xdb, 0x63, 0x05, 0x49, 0xfb, 0xea, 0x5a, 0x38, 0xfc, 0xb3, 0x02, 0xee, 0x47, - 0xd1, 0xa1, 0x8b, 0xba, 0x16, 0x4e, 0xf0, 0x39, 0x39, 0x74, 0x81, 0xa0, 0x6e, 0x93, 0x25, 0x2d, - 0x1c, 0xfd, 0x79, 0xe9, 0x75, 0x09, 0xc1, 0xd5, 0x94, 0x72, 0xd3, 0x54, 0x38, 0xfe, 0x0b, 0x02, - 0xef, 0x61, 0xa8, 0x07, 0x7c, 0x69, 0x32, 0x9c, 0xe2, 0x8b, 0xd2, 0x03, 0x3e, 0x14, 0x5d, 0x46, - 0xed, 0xa5, 0x2f, 0x9c, 0xe9, 0x4b, 0x72, 0x19, 0xb5, 0x55, 0x3e, 0x3a, 0x9b, 0x2c, 0x5b, 0x84, - 0x53, 0x7c, 0x59, 0xce, 0x26, 0xb3, 0xa7, 0xc3, 0x68, 0xaf, 0x25, 0xe1, 0x1c, 0x5f, 0x95, 0xc3, - 0x68, 0x2b, 0x25, 0x58, 0x99, 0x94, 0xce, 0x3a, 0x12, 0xce, 0xf7, 0x98, 0xe0, 0x1b, 0xee, 0x28, - 0x23, 0xf9, 0xfb, 0x60, 0x6f, 0xf7, 0x1a, 0x12, 0xce, 0xfa, 0xf8, 0xd5, 0xb6, 0xae, 0xdf, 0x5f, - 0x42, 0xb0, 0xe4, 0x8d, 0x76, 0xab, 0x1f, 0xe1, 0xb4, 0x4f, 0x5c, 0x0d, 0x6e, 0xec, 0xfc, 0xe5, - 0x03, 0x3b, 0x34, 0xf0, 0x52, 0x77, 0x38, 0xd7, 0x53, 0x82, 0xcb, 0x07, 0xa2, 0x4b, 0x43, 0x64, - 0xee, 0x70, 0xfc, 0xd3, 0x72, 0x69, 0x08, 0x04, 0x82, 0x93, 0x66, 0xcb, 0x30, 0x68, 0x70, 0x28, - 0x3b, 0xff, 0xa4, 0x21, 0xf7, 0xe7, 0xf7, 0xc4, 0xc2, 0x90, 0x00, 0xcc, 0xa1, 0x71, 0x52, 0x5f, - 0x47, 0x1f, 0x84, 0x20, 0xff, 0xf2, 0x9e, 0x4c, 0x08, 0xd4, 0x1a, 0xd7, 0x13, 0xf0, 0x4d, 0x23, - 0x3b, 0xc3, 0x0e, 0xc1, 0xfe, 0xf5, 0x3d, 0xf1, 0x9a, 0xd5, 0x83, 0x78, 0x04, 0xfc, 0xa5, 0xed, - 0xce, 0x04, 0x6f, 0x07, 0x09, 0xd8, 0x46, 0xf3, 0x2c, 0xf4, 0xd3, 0x5f, 0x76, 0x38, 0x7a, 0x35, - 0x0c, 0xfd, 0x37, 0x81, 0x96, 0xf6, 0xd4, 0x61, 0x75, 0xab, 0x49, 0xf0, 0xab, 0x1d, 0x86, 0xfd, - 0xbb, 0xc0, 0xba, 0x00, 0x0a, 0x2e, 0xeb, 0xb6, 0xd3, 0xcb, 0x73, 0xff, 0x43, 0x82, 0x25, 0x80, - 0x0e, 0x9a, 0x7e, 0xbf, 0x44, 0xb6, 0xc2, 0xb0, 0xef, 0xc8, 0x41, 0x0b, 0x7b, 0x4c, 0x80, 0x29, - 0xfa, 0x95, 0xff, 0xf4, 0x20, 0x04, 0xfc, 0x4f, 0x01, 0xf6, 0x10, 0x33, 0x87, 0xba, 0x1f, 0xed, - 0xc0, 0xbc, 0x35, 0x6f, 0xf1, 0x43, 0x1d, 0xf8, 0x4a, 0x1c, 0x72, 0x68, 0x83, 0xf5, 0x75, 0xd2, - 0x24, 0x35, 0x67, 0x93, 0x34, 0x27, 0xb1, 0x68, 0x88, 0xe3, 0x98, 0x28, 0x7e, 0x1d, 0xdb, 0xdd, - 0x11, 0xce, 0xf8, 0x7e, 0x88, 0x97, 0x5a, 0xeb, 0xeb, 0x5b, 0xf4, 0xf7, 0x4e, 0x76, 0x6b, 0x5d, - 0xbc, 0x9c, 0xa6, 0x5f, 0xe9, 0xab, 0x9a, 0x74, 0x49, 0xaf, 0x37, 0xb0, 0x85, 0x31, 0x49, 0x71, - 0x43, 0xc9, 0x41, 0x82, 0x3d, 0xc1, 0x31, 0x66, 0x14, 0xb9, 0x67, 0x8f, 0x9a, 0x60, 0xbf, 0xd6, - 0x3b, 0xe6, 0x6a, 0xa6, 0xd8, 0x01, 0x7f, 0x9f, 0xab, 0x99, 0x72, 0x35, 0xc7, 0xf9, 0xcf, 0xa0, - 0x5c, 0xcd, 0x71, 0x57, 0x73, 0x82, 0x9d, 0x92, 0x45, 0x5d, 0xcd, 0x09, 0x57, 0x73, 0x92, 0x1d, - 0x74, 0x0e, 0xba, 0x9a, 0x93, 0xae, 0xe6, 0x14, 0x3b, 0xda, 0x8c, 0xb9, 0x9a, 0x53, 0xae, 0xe6, - 0x34, 0x3b, 0xd1, 0x1c, 0x76, 0x35, 0xa7, 0x5d, 0xcd, 0x19, 0x76, 0x8a, 0xa9, 0xb8, 0x9a, 0x33, - 0xae, 0xe6, 0x2c, 0x7b, 0x01, 0xdd, 0xef, 0x6a, 0xce, 0x2a, 0x63, 0xd0, 0xcf, 0x9f, 0xf4, 0x28, - 0x7b, 0x61, 0x33, 0x84, 0xaa, 0x7e, 0xfe, 0xa8, 0x47, 0x3d, 0xdd, 0x31, 0xf6, 0x92, 0x39, 0xe1, - 0xe9, 0x8e, 0x79, 0xba, 0x29, 0xf6, 0xa3, 0xc9, 0xac, 0xa7, 0x9b, 0xf2, 0x74, 0xc7, 0x73, 0x83, - 0x74, 0x95, 0x7a, 0xba, 0xe3, 0x9e, 0xee, 0x44, 0x2e, 0x43, 0xfd, 0xef, 0xe9, 0x4e, 0x78, 0xba, - 0x93, 0xb9, 0x21, 0x7a, 0x58, 0xeb, 0xe9, 0x4e, 0x2a, 0x77, 0x40, 0x1a, 0x27, 0x4a, 0x13, 0xef, - 0x17, 0xd9, 0xcb, 0xec, 0xf4, 0x14, 0x4c, 0xd0, 0x88, 0x60, 0x93, 0x8a, 0xb6, 0x80, 0x06, 0x22, - 0x39, 0xcd, 0x0c, 0x00, 0xdb, 0xb4, 0x6a, 0xec, 0xc7, 0x58, 0x33, 0x73, 0xaf, 0xbe, 0x7e, 0x60, - 0xcf, 0x6f, 0xf0, 0xf3, 0x7b, 0xfc, 0xbc, 0xf6, 0xfa, 0x81, 0xc8, 0x3b, 0xf8, 0x79, 0x17, 0x3f, - 0x0f, 0xbf, 0x71, 0x20, 0xf2, 0x02, 0x7e, 0x5e, 0xc2, 0xcf, 0x4f, 0xf1, 0xf3, 0xea, 0x1b, 0x68, - 0x87, 0x9f, 0xd7, 0xf0, 0xfb, 0x5b, 0xf8, 0xff, 0x1d, 0xfc, 0xff, 0x2e, 0xfe, 0x7f, 0xf8, 0x8f, - 0x07, 0xf6, 0xac, 0x27, 0x58, 0x18, 0x1d, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x60, 0x93, - 0x75, 0x07, 0x03, 0x2d, 0x00, 0x00, + // 3862 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0xaf, 0x22, 0x0f, 0x29, 0x12, 0x82, 0xe4, 0x5d, 0xac, 0x1c, 0x73, 0xb5, 0x8a, 0x1d, + 0xcb, 0x76, 0x2d, 0xd9, 0xda, 0xd5, 0x5e, 0xb8, 0x4d, 0x3c, 0x14, 0xc5, 0xd5, 0x72, 0x2b, 0x89, + 0x0c, 0x28, 0xc5, 0xeb, 0xf4, 0x01, 0x03, 0x82, 0x3f, 0x29, 0xec, 0x82, 0x00, 0x03, 0x80, 0xbb, + 0x96, 0x9f, 0xb6, 0xe3, 0x5e, 0x26, 0xd3, 0xe9, 0xbd, 0xd3, 0x26, 0xae, 0xe3, 0xb6, 0x99, 0x69, + 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, 0x1f, + 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xcc, 0x7f, + 0x03, 0xc0, 0x8b, 0x04, 0x2a, 0x33, 0x8e, 0x9f, 0x24, 0x9c, 0x73, 0xbe, 0x0f, 0x07, 0xe7, 0x3f, + 0xff, 0x39, 0x07, 0x3f, 0x01, 0xdf, 0x5f, 0x87, 0xc5, 0x8e, 0x65, 0x75, 0x0c, 0xb4, 0xda, 0xb3, + 0x2d, 0xd7, 0x6a, 0xf6, 0xdb, 0xab, 0x2d, 0xe4, 0x68, 0xb6, 0xde, 0x73, 0x2d, 0x7b, 0x85, 0xc8, + 0xc4, 0x3c, 0xb5, 0x58, 0xe1, 0x16, 0x4b, 0x3b, 0x30, 0x7b, 0x43, 0x37, 0xd0, 0xa6, 0x67, 0xd8, + 0x40, 0xae, 0x78, 0x15, 0xe2, 0x6d, 0xdd, 0x40, 0x52, 0x64, 0x31, 0xb6, 0x9c, 0x59, 0x7b, 0x7c, + 0x65, 0x08, 0xb4, 0x32, 0x88, 0xa8, 0x63, 0xb1, 0x4c, 0x10, 0x4b, 0xef, 0xc4, 0x61, 0x6e, 0x8c, + 0x56, 0x14, 0x21, 0x6e, 0xaa, 0x5d, 0xcc, 0x18, 0x59, 0x4e, 0xcb, 0xe4, 0x7f, 0x51, 0x82, 0xe9, + 0x9e, 0xaa, 0xdd, 0x55, 0x3b, 0x48, 0x8a, 0x12, 0x31, 0xbf, 0x14, 0x0b, 0x00, 0x2d, 0xd4, 0x43, + 0x66, 0x0b, 0x99, 0xda, 0xa1, 0x14, 0x5b, 0x8c, 0x2d, 0xa7, 0xe5, 0x80, 0x44, 0x7c, 0x06, 0x66, + 0x7b, 0xfd, 0xa6, 0xa1, 0x6b, 0x4a, 0xc0, 0x0c, 0x16, 0x63, 0xcb, 0x09, 0x59, 0xa0, 0x8a, 0x4d, + 0xdf, 0xf8, 0x49, 0xc8, 0xdf, 0x47, 0xea, 0xdd, 0xa0, 0x69, 0x86, 0x98, 0xe6, 0xb0, 0x38, 0x60, + 0x58, 0x86, 0x6c, 0x17, 0x39, 0x8e, 0xda, 0x41, 0x8a, 0x7b, 0xd8, 0x43, 0x52, 0x9c, 0x3c, 0xfd, + 0xe2, 0xc8, 0xd3, 0x0f, 0x3f, 0x79, 0x86, 0xa1, 0xf6, 0x0e, 0x7b, 0x48, 0x2c, 0x41, 0x1a, 0x99, + 0xfd, 0x2e, 0x65, 0x48, 0x1c, 0x13, 0xbf, 0x8a, 0xd9, 0xef, 0x0e, 0xb3, 0xa4, 0x30, 0x8c, 0x51, + 0x4c, 0x3b, 0xc8, 0xbe, 0xa7, 0x6b, 0x48, 0x4a, 0x12, 0x82, 0x27, 0x47, 0x08, 0x1a, 0x54, 0x3f, + 0xcc, 0xc1, 0x71, 0x62, 0x19, 0xd2, 0xe8, 0x65, 0x17, 0x99, 0x8e, 0x6e, 0x99, 0xd2, 0x34, 0x21, + 0x79, 0x62, 0xcc, 0x2a, 0x22, 0xa3, 0x35, 0x4c, 0xe1, 0xe3, 0xc4, 0xcb, 0x30, 0x6d, 0xf5, 0x5c, + 0xdd, 0x32, 0x1d, 0x29, 0xb5, 0x18, 0x59, 0xce, 0xac, 0x7d, 0x6c, 0x6c, 0x22, 0xd4, 0xa8, 0x8d, + 0xcc, 0x8d, 0xc5, 0x2a, 0x08, 0x8e, 0xd5, 0xb7, 0x35, 0xa4, 0x68, 0x56, 0x0b, 0x29, 0xba, 0xd9, + 0xb6, 0xa4, 0x34, 0x21, 0x38, 0x3f, 0xfa, 0x20, 0xc4, 0xb0, 0x6c, 0xb5, 0x50, 0xd5, 0x6c, 0x5b, + 0x72, 0xce, 0x19, 0xb8, 0x16, 0xcf, 0x40, 0xd2, 0x39, 0x34, 0x5d, 0xf5, 0x65, 0x29, 0x4b, 0x32, + 0x84, 0x5d, 0x2d, 0xfd, 0x7f, 0x02, 0xf2, 0x93, 0xa4, 0xd8, 0x75, 0x48, 0xb4, 0xf1, 0x53, 0x4a, + 0xd1, 0xd3, 0xc4, 0x80, 0x62, 0x06, 0x83, 0x98, 0xfc, 0x09, 0x83, 0x58, 0x82, 0x8c, 0x89, 0x1c, + 0x17, 0xb5, 0x68, 0x46, 0xc4, 0x26, 0xcc, 0x29, 0xa0, 0xa0, 0xd1, 0x94, 0x8a, 0xff, 0x44, 0x29, + 0x75, 0x1b, 0xf2, 0x9e, 0x4b, 0x8a, 0xad, 0x9a, 0x1d, 0x9e, 0x9b, 0xab, 0x61, 0x9e, 0xac, 0x54, + 0x38, 0x4e, 0xc6, 0x30, 0x39, 0x87, 0x06, 0xae, 0xc5, 0x4d, 0x00, 0xcb, 0x44, 0x56, 0x5b, 0x69, + 0x21, 0xcd, 0x90, 0x52, 0xc7, 0x44, 0xa9, 0x86, 0x4d, 0x46, 0xa2, 0x64, 0x51, 0xa9, 0x66, 0x88, + 0xd7, 0xfc, 0x54, 0x9b, 0x3e, 0x26, 0x53, 0x76, 0xe8, 0x26, 0x1b, 0xc9, 0xb6, 0x7d, 0xc8, 0xd9, + 0x08, 0xe7, 0x3d, 0x6a, 0xb1, 0x27, 0x4b, 0x13, 0x27, 0x56, 0x42, 0x9f, 0x4c, 0x66, 0x30, 0xfa, + 0x60, 0x33, 0x76, 0xf0, 0x52, 0xfc, 0x38, 0x78, 0x02, 0x85, 0xa4, 0x15, 0x90, 0x2a, 0x94, 0xe5, + 0xc2, 0x5d, 0xb5, 0x8b, 0x16, 0xae, 0x42, 0x6e, 0x30, 0x3c, 0xe2, 0x3c, 0x24, 0x1c, 0x57, 0xb5, + 0x5d, 0x92, 0x85, 0x09, 0x99, 0x5e, 0x88, 0x02, 0xc4, 0x90, 0xd9, 0x22, 0x55, 0x2e, 0x21, 0xe3, + 0x7f, 0x17, 0xae, 0xc0, 0xcc, 0xc0, 0xed, 0x27, 0x05, 0x2e, 0x7d, 0x21, 0x09, 0xf3, 0xe3, 0x72, + 0x6e, 0x6c, 0xfa, 0x9f, 0x81, 0xa4, 0xd9, 0xef, 0x36, 0x91, 0x2d, 0xc5, 0x08, 0x03, 0xbb, 0x12, + 0x4b, 0x90, 0x30, 0xd4, 0x26, 0x32, 0xa4, 0xf8, 0x62, 0x64, 0x39, 0xb7, 0xf6, 0xcc, 0x44, 0x59, + 0xbd, 0xb2, 0x8d, 0x21, 0x32, 0x45, 0x8a, 0x9f, 0x82, 0x38, 0x2b, 0x71, 0x98, 0xe1, 0xe9, 0xc9, + 0x18, 0x70, 0x2e, 0xca, 0x04, 0x27, 0x3e, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x36, 0x49, 0x7c, 0x4e, + 0x61, 0x01, 0x8e, 0xab, 0xb8, 0x00, 0x29, 0x92, 0x66, 0x2d, 0xc4, 0x5b, 0x83, 0x77, 0x8d, 0x17, + 0xa6, 0x85, 0xda, 0x6a, 0xdf, 0x70, 0x95, 0x7b, 0xaa, 0xd1, 0x47, 0x24, 0x61, 0xd2, 0x72, 0x96, + 0x09, 0x3f, 0x83, 0x65, 0xe2, 0x79, 0xc8, 0xd0, 0xac, 0xd4, 0xcd, 0x16, 0x7a, 0x99, 0x54, 0x9f, + 0x84, 0x4c, 0x13, 0xb5, 0x8a, 0x25, 0xf8, 0xf6, 0x77, 0x1c, 0xcb, 0xe4, 0x4b, 0x4b, 0x6e, 0x81, + 0x05, 0xe4, 0xf6, 0x57, 0x86, 0x0b, 0xdf, 0x63, 0xe3, 0x1f, 0x6f, 0x38, 0x17, 0x97, 0xbe, 0x19, + 0x85, 0x38, 0xd9, 0x6f, 0x79, 0xc8, 0xec, 0xbd, 0x54, 0xaf, 0x28, 0x9b, 0xb5, 0xfd, 0x8d, 0xed, + 0x8a, 0x10, 0x11, 0x73, 0x00, 0x44, 0x70, 0x63, 0xbb, 0x56, 0xda, 0x13, 0xa2, 0xde, 0x75, 0x75, + 0x77, 0xef, 0xf2, 0x25, 0x21, 0xe6, 0x01, 0xf6, 0xa9, 0x20, 0x1e, 0x34, 0xb8, 0xb8, 0x26, 0x24, + 0x44, 0x01, 0xb2, 0x94, 0xa0, 0x7a, 0xbb, 0xb2, 0x79, 0xf9, 0x92, 0x90, 0x1c, 0x94, 0x5c, 0x5c, + 0x13, 0xa6, 0xc5, 0x19, 0x48, 0x13, 0xc9, 0x46, 0xad, 0xb6, 0x2d, 0xa4, 0x3c, 0xce, 0xc6, 0x9e, + 0x5c, 0xdd, 0xdd, 0x12, 0xd2, 0x1e, 0xe7, 0x96, 0x5c, 0xdb, 0xaf, 0x0b, 0xe0, 0x31, 0xec, 0x54, + 0x1a, 0x8d, 0xd2, 0x56, 0x45, 0xc8, 0x78, 0x16, 0x1b, 0x2f, 0xed, 0x55, 0x1a, 0x42, 0x76, 0xc0, + 0xad, 0x8b, 0x6b, 0xc2, 0x8c, 0x77, 0x8b, 0xca, 0xee, 0xfe, 0x8e, 0x90, 0x13, 0x67, 0x61, 0x86, + 0xde, 0x82, 0x3b, 0x91, 0x1f, 0x12, 0x5d, 0xbe, 0x24, 0x08, 0xbe, 0x23, 0x94, 0x65, 0x76, 0x40, + 0x70, 0xf9, 0x92, 0x20, 0x2e, 0x95, 0x21, 0x41, 0xb2, 0x4b, 0x14, 0x21, 0xb7, 0x5d, 0xda, 0xa8, + 0x6c, 0x2b, 0xb5, 0xfa, 0x5e, 0xb5, 0xb6, 0x5b, 0xda, 0x16, 0x22, 0xbe, 0x4c, 0xae, 0x7c, 0x7a, + 0xbf, 0x2a, 0x57, 0x36, 0x85, 0x68, 0x50, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x42, 0x6c, 0x49, + 0x83, 0xf9, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2c, 0x71, 0xf4, 0x98, 0x25, 0x26, 0x5c, 0x23, + 0x4b, 0xfc, 0xe5, 0x08, 0xcc, 0x8d, 0xa9, 0xb5, 0x63, 0x6f, 0xf2, 0x02, 0x24, 0x68, 0x8a, 0xd2, + 0xee, 0xf3, 0xd4, 0xd8, 0xa2, 0x4d, 0x12, 0x76, 0xa4, 0x03, 0x11, 0x5c, 0xb0, 0x03, 0xc7, 0x8e, + 0xe9, 0xc0, 0x98, 0x62, 0xc4, 0xc9, 0x57, 0x23, 0x20, 0x1d, 0xc7, 0x1d, 0x52, 0x28, 0xa2, 0x03, + 0x85, 0xe2, 0xfa, 0xb0, 0x03, 0x17, 0x8e, 0x7f, 0x86, 0x11, 0x2f, 0xde, 0x8c, 0xc0, 0x99, 0xf1, + 0x83, 0xca, 0x58, 0x1f, 0x3e, 0x05, 0xc9, 0x2e, 0x72, 0x0f, 0x2c, 0xde, 0xac, 0x3f, 0x31, 0xa6, + 0x05, 0x60, 0xf5, 0x70, 0xac, 0x18, 0x2a, 0xd8, 0x43, 0x62, 0xc7, 0x4d, 0x1b, 0xd4, 0x9b, 0x11, + 0x4f, 0x3f, 0x1f, 0x85, 0x47, 0xc6, 0x92, 0x8f, 0x75, 0xf4, 0x31, 0x00, 0xdd, 0xec, 0xf5, 0x5d, + 0xda, 0x90, 0x69, 0x7d, 0x4a, 0x13, 0x09, 0xd9, 0xfb, 0xb8, 0xf6, 0xf4, 0x5d, 0x4f, 0x1f, 0x23, + 0x7a, 0xa0, 0x22, 0x62, 0x70, 0xd5, 0x77, 0x34, 0x4e, 0x1c, 0x2d, 0x1c, 0xf3, 0xa4, 0x23, 0xbd, + 0xee, 0x39, 0x10, 0x34, 0x43, 0x47, 0xa6, 0xab, 0x38, 0xae, 0x8d, 0xd4, 0xae, 0x6e, 0x76, 0x48, + 0x01, 0x4e, 0x15, 0x13, 0x6d, 0xd5, 0x70, 0x90, 0x9c, 0xa7, 0xea, 0x06, 0xd7, 0x62, 0x04, 0xe9, + 0x32, 0x76, 0x00, 0x91, 0x1c, 0x40, 0x50, 0xb5, 0x87, 0x58, 0xfa, 0xda, 0x34, 0x64, 0x02, 0x63, + 0x9d, 0x78, 0x01, 0xb2, 0x77, 0xd4, 0x7b, 0xaa, 0xc2, 0x47, 0x75, 0x1a, 0x89, 0x0c, 0x96, 0xd5, + 0xd9, 0xb8, 0xfe, 0x1c, 0xcc, 0x13, 0x13, 0xab, 0xef, 0x22, 0x5b, 0xd1, 0x0c, 0xd5, 0x71, 0x48, + 0xd0, 0x52, 0xc4, 0x54, 0xc4, 0xba, 0x1a, 0x56, 0x95, 0xb9, 0x46, 0x5c, 0x87, 0x39, 0x82, 0xe8, + 0xf6, 0x0d, 0x57, 0xef, 0x19, 0x48, 0xc1, 0x2f, 0x0f, 0x0e, 0x29, 0xc4, 0x9e, 0x67, 0xb3, 0xd8, + 0x62, 0x87, 0x19, 0x60, 0x8f, 0x1c, 0x71, 0x13, 0x1e, 0x23, 0xb0, 0x0e, 0x32, 0x91, 0xad, 0xba, + 0x48, 0x41, 0x9f, 0xeb, 0xab, 0x86, 0xa3, 0xa8, 0x66, 0x4b, 0x39, 0x50, 0x9d, 0x03, 0x69, 0x1e, + 0x13, 0x6c, 0x44, 0xa5, 0x88, 0x7c, 0x0e, 0x1b, 0x6e, 0x31, 0xbb, 0x0a, 0x31, 0x2b, 0x99, 0xad, + 0x9b, 0xaa, 0x73, 0x20, 0x16, 0xe1, 0x0c, 0x61, 0x71, 0x5c, 0x5b, 0x37, 0x3b, 0x8a, 0x76, 0x80, + 0xb4, 0xbb, 0x4a, 0xdf, 0x6d, 0x5f, 0x95, 0x1e, 0x0d, 0xde, 0x9f, 0x78, 0xd8, 0x20, 0x36, 0x65, + 0x6c, 0xb2, 0xef, 0xb6, 0xaf, 0x8a, 0x0d, 0xc8, 0xe2, 0xc5, 0xe8, 0xea, 0xaf, 0x20, 0xa5, 0x6d, + 0xd9, 0xa4, 0xb3, 0xe4, 0xc6, 0xec, 0xec, 0x40, 0x04, 0x57, 0x6a, 0x0c, 0xb0, 0x63, 0xb5, 0x50, + 0x31, 0xd1, 0xa8, 0x57, 0x2a, 0x9b, 0x72, 0x86, 0xb3, 0xdc, 0xb0, 0x6c, 0x9c, 0x50, 0x1d, 0xcb, + 0x0b, 0x70, 0x86, 0x26, 0x54, 0xc7, 0xe2, 0xe1, 0x5d, 0x87, 0x39, 0x4d, 0xa3, 0xcf, 0xac, 0x6b, + 0x0a, 0x1b, 0xf1, 0x1d, 0x49, 0x18, 0x08, 0x96, 0xa6, 0x6d, 0x51, 0x03, 0x96, 0xe3, 0x8e, 0x78, + 0x0d, 0x1e, 0xf1, 0x83, 0x15, 0x04, 0xce, 0x8e, 0x3c, 0xe5, 0x30, 0x74, 0x1d, 0xe6, 0x7a, 0x87, + 0xa3, 0x40, 0x71, 0xe0, 0x8e, 0xbd, 0xc3, 0x61, 0xd8, 0x13, 0xe4, 0xb5, 0xcd, 0x46, 0x9a, 0xea, + 0xa2, 0x96, 0x74, 0x36, 0x68, 0x1d, 0x50, 0x88, 0xab, 0x20, 0x68, 0x9a, 0x82, 0x4c, 0xb5, 0x69, + 0x20, 0x45, 0xb5, 0x91, 0xa9, 0x3a, 0xd2, 0xf9, 0xa0, 0x71, 0x4e, 0xd3, 0x2a, 0x44, 0x5b, 0x22, + 0x4a, 0xf1, 0x69, 0x98, 0xb5, 0x9a, 0x77, 0x34, 0x9a, 0x59, 0x4a, 0xcf, 0x46, 0x6d, 0xfd, 0x65, + 0xe9, 0x71, 0x12, 0xa6, 0x3c, 0x56, 0x90, 0xbc, 0xaa, 0x13, 0xb1, 0xf8, 0x14, 0x08, 0x9a, 0x73, + 0xa0, 0xda, 0x3d, 0xd2, 0xda, 0x9d, 0x9e, 0xaa, 0x21, 0xe9, 0x09, 0x6a, 0x4a, 0xe5, 0xbb, 0x5c, + 0x8c, 0x33, 0xdb, 0xb9, 0xaf, 0xb7, 0x5d, 0xce, 0xf8, 0x24, 0xcd, 0x6c, 0x22, 0x63, 0x6c, 0xb7, + 0x61, 0xbe, 0x6f, 0xea, 0xa6, 0x8b, 0xec, 0x9e, 0x8d, 0xf0, 0x10, 0x4f, 0x77, 0xa2, 0xf4, 0x6f, + 0xd3, 0xc7, 0x8c, 0xe1, 0xfb, 0x41, 0x6b, 0x9a, 0x00, 0xf2, 0x5c, 0x7f, 0x54, 0xb8, 0x54, 0x84, + 0x6c, 0x30, 0x2f, 0xc4, 0x34, 0xd0, 0xcc, 0x10, 0x22, 0xb8, 0xc7, 0x96, 0x6b, 0x9b, 0xb8, 0x3b, + 0x7e, 0xb6, 0x22, 0x44, 0x71, 0x97, 0xde, 0xae, 0xee, 0x55, 0x14, 0x79, 0x7f, 0x77, 0xaf, 0xba, + 0x53, 0x11, 0x62, 0x4f, 0xa7, 0x53, 0x3f, 0x98, 0x16, 0x1e, 0x3c, 0x78, 0xf0, 0x20, 0xba, 0xf4, + 0xed, 0x28, 0xe4, 0x06, 0x27, 0x63, 0xf1, 0x67, 0xe1, 0x2c, 0x7f, 0x8d, 0x75, 0x90, 0xab, 0xdc, + 0xd7, 0x6d, 0x92, 0xaa, 0x5d, 0x95, 0xce, 0x96, 0x5e, 0x94, 0xe7, 0x99, 0x55, 0x03, 0xb9, 0x2f, + 0xea, 0x36, 0x4e, 0xc4, 0xae, 0xea, 0x8a, 0xdb, 0x70, 0xde, 0xb4, 0x14, 0xc7, 0x55, 0xcd, 0x96, + 0x6a, 0xb7, 0x14, 0xff, 0x00, 0x41, 0x51, 0x35, 0x0d, 0x39, 0x8e, 0x45, 0x5b, 0x84, 0xc7, 0xf2, + 0x31, 0xd3, 0x6a, 0x30, 0x63, 0xbf, 0x76, 0x96, 0x98, 0xe9, 0x50, 0x46, 0xc4, 0x8e, 0xcb, 0x88, + 0x47, 0x21, 0xdd, 0x55, 0x7b, 0x0a, 0x32, 0x5d, 0xfb, 0x90, 0xcc, 0x73, 0x29, 0x39, 0xd5, 0x55, + 0x7b, 0x15, 0x7c, 0xfd, 0xe1, 0xad, 0x41, 0x30, 0x8e, 0xdf, 0x8b, 0x41, 0x36, 0x38, 0xd3, 0xe1, + 0x11, 0x59, 0x23, 0xf5, 0x3b, 0x42, 0x76, 0xf8, 0xc7, 0x4f, 0x9c, 0x00, 0x57, 0xca, 0xb8, 0xb0, + 0x17, 0x93, 0x74, 0xd2, 0x92, 0x29, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, 0xdf, 0x53, 0x32, + 0xbb, 0x12, 0xb7, 0x20, 0x79, 0xc7, 0x21, 0xdc, 0x49, 0xc2, 0xfd, 0xf8, 0xc9, 0xdc, 0xb7, 0x1a, + 0x84, 0x3c, 0x7d, 0xab, 0xa1, 0xec, 0xd6, 0xe4, 0x9d, 0xd2, 0xb6, 0xcc, 0xe0, 0xe2, 0x39, 0x88, + 0x1b, 0xea, 0x2b, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x39, 0x88, 0xdf, 0x47, 0xea, + 0xdd, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x62, 0xea, 0xaf, 0x42, 0x82, 0xc4, 0x4b, 0x04, 0x60, 0x11, + 0x13, 0xa6, 0xc4, 0x14, 0xc4, 0xcb, 0x35, 0x19, 0xa7, 0xbf, 0x00, 0x59, 0x2a, 0x55, 0xea, 0xd5, + 0x4a, 0xb9, 0x22, 0x44, 0x97, 0xd6, 0x21, 0x49, 0x83, 0x80, 0xb7, 0x86, 0x17, 0x06, 0x61, 0x8a, + 0x5d, 0x32, 0x8e, 0x08, 0xd7, 0xee, 0xef, 0x6c, 0x54, 0x64, 0x21, 0x1a, 0x5c, 0x5e, 0x07, 0xb2, + 0xc1, 0x71, 0xee, 0xa7, 0x93, 0x53, 0xff, 0x10, 0x81, 0x4c, 0x60, 0x3c, 0xc3, 0x83, 0x81, 0x6a, + 0x18, 0xd6, 0x7d, 0x45, 0x35, 0x74, 0xd5, 0x61, 0x49, 0x01, 0x44, 0x54, 0xc2, 0x92, 0x49, 0x17, + 0xed, 0xa7, 0xe2, 0xfc, 0x1b, 0x11, 0x10, 0x86, 0x47, 0xbb, 0x21, 0x07, 0x23, 0x1f, 0xa9, 0x83, + 0xaf, 0x47, 0x20, 0x37, 0x38, 0xcf, 0x0d, 0xb9, 0x77, 0xe1, 0x23, 0x75, 0xef, 0xed, 0x28, 0xcc, + 0x0c, 0x4c, 0x71, 0x93, 0x7a, 0xf7, 0x39, 0x98, 0xd5, 0x5b, 0xa8, 0xdb, 0xb3, 0x5c, 0x64, 0x6a, + 0x87, 0x8a, 0x81, 0xee, 0x21, 0x43, 0x5a, 0x22, 0x85, 0x62, 0xf5, 0xe4, 0x39, 0x71, 0xa5, 0xea, + 0xe3, 0xb6, 0x31, 0xac, 0x38, 0x57, 0xdd, 0xac, 0xec, 0xd4, 0x6b, 0x7b, 0x95, 0xdd, 0xf2, 0x4b, + 0xca, 0xfe, 0xee, 0xcf, 0xed, 0xd6, 0x5e, 0xdc, 0x95, 0x05, 0x7d, 0xc8, 0xec, 0x43, 0xdc, 0xea, + 0x75, 0x10, 0x86, 0x9d, 0x12, 0xcf, 0xc2, 0x38, 0xb7, 0x84, 0x29, 0x71, 0x0e, 0xf2, 0xbb, 0x35, + 0xa5, 0x51, 0xdd, 0xac, 0x28, 0x95, 0x1b, 0x37, 0x2a, 0xe5, 0xbd, 0x06, 0x7d, 0x71, 0xf6, 0xac, + 0xf7, 0x06, 0x37, 0xf5, 0x6b, 0x31, 0x98, 0x1b, 0xe3, 0x89, 0x58, 0x62, 0x33, 0x3b, 0x7d, 0x8d, + 0x78, 0x76, 0x12, 0xef, 0x57, 0xf0, 0x54, 0x50, 0x57, 0x6d, 0x97, 0x8d, 0xf8, 0x4f, 0x01, 0x8e, + 0x92, 0xe9, 0xea, 0x6d, 0x1d, 0xd9, 0xec, 0x9c, 0x81, 0x0e, 0xf2, 0x79, 0x5f, 0x4e, 0x8f, 0x1a, + 0x7e, 0x06, 0xc4, 0x9e, 0xe5, 0xe8, 0xae, 0x7e, 0x0f, 0x29, 0xba, 0xc9, 0x0f, 0x25, 0xf0, 0x60, + 0x1f, 0x97, 0x05, 0xae, 0xa9, 0x9a, 0xae, 0x67, 0x6d, 0xa2, 0x8e, 0x3a, 0x64, 0x8d, 0x0b, 0x78, + 0x4c, 0x16, 0xb8, 0xc6, 0xb3, 0xbe, 0x00, 0xd9, 0x96, 0xd5, 0xc7, 0x63, 0x12, 0xb5, 0xc3, 0xfd, + 0x22, 0x22, 0x67, 0xa8, 0xcc, 0x33, 0x61, 0x73, 0xac, 0x7f, 0x1a, 0x92, 0x95, 0x33, 0x54, 0x46, + 0x4d, 0x9e, 0x84, 0xbc, 0xda, 0xe9, 0xd8, 0x98, 0x9c, 0x13, 0xd1, 0xc9, 0x3c, 0xe7, 0x89, 0x89, + 0xe1, 0xc2, 0x2d, 0x48, 0xf1, 0x38, 0xe0, 0x96, 0x8c, 0x23, 0xa1, 0xf4, 0xe8, 0x99, 0x54, 0x74, + 0x39, 0x2d, 0xa7, 0x4c, 0xae, 0xbc, 0x00, 0x59, 0xdd, 0x51, 0xfc, 0xc3, 0xd1, 0xe8, 0x62, 0x74, + 0x39, 0x25, 0x67, 0x74, 0xc7, 0x3b, 0x0d, 0x5b, 0x7a, 0x33, 0x0a, 0xb9, 0xc1, 0xc3, 0x5d, 0x71, + 0x13, 0x52, 0x86, 0xa5, 0xa9, 0x24, 0xb5, 0xe8, 0x2f, 0x0b, 0xcb, 0x21, 0xe7, 0xc1, 0x2b, 0xdb, + 0xcc, 0x5e, 0xf6, 0x90, 0x0b, 0xff, 0x12, 0x81, 0x14, 0x17, 0x8b, 0x67, 0x20, 0xde, 0x53, 0xdd, + 0x03, 0x42, 0x97, 0xd8, 0x88, 0x0a, 0x11, 0x99, 0x5c, 0x63, 0xb9, 0xd3, 0x53, 0x4d, 0x92, 0x02, + 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x1a, 0x48, 0x6d, 0x91, 0xb1, 0xdf, 0xea, 0x76, 0x91, 0xe9, 0x3a, + 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xe2, 0x33, 0x30, 0xeb, 0xda, 0xaa, 0x6e, 0x0c, 0xd8, 0xc6, + 0x89, 0xad, 0xc0, 0x15, 0x9e, 0x71, 0x11, 0xce, 0x71, 0xde, 0x16, 0x72, 0x55, 0xed, 0x00, 0xb5, + 0x7c, 0x50, 0x92, 0x9c, 0x1c, 0x9e, 0x65, 0x06, 0x9b, 0x4c, 0xcf, 0xb1, 0x4b, 0xdf, 0x8d, 0xc0, + 0x2c, 0x7f, 0x51, 0x69, 0x79, 0xc1, 0xda, 0x01, 0x50, 0x4d, 0xd3, 0x72, 0x83, 0xe1, 0x1a, 0x4d, + 0xe5, 0x11, 0xdc, 0x4a, 0xc9, 0x03, 0xc9, 0x01, 0x82, 0x85, 0x2e, 0x80, 0xaf, 0x39, 0x36, 0x6c, + 0xe7, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, 0xa8, 0x08, 0xbf, 0xd1, 0x88, + 0xf3, 0x90, 0x68, 0xa2, 0x8e, 0x6e, 0xb2, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, 0x29, 0xe3, 0xde, 0x29, + 0xe5, 0xc6, 0x6d, 0x98, 0xd3, 0xac, 0xee, 0xb0, 0xbb, 0x1b, 0xc2, 0xd0, 0xeb, 0xb5, 0x73, 0x33, + 0xf2, 0x59, 0xf0, 0x47, 0xcc, 0x2f, 0x47, 0x63, 0x5b, 0xf5, 0x8d, 0xaf, 0x46, 0x17, 0xb6, 0x28, + 0xae, 0xce, 0x1f, 0x53, 0x46, 0x6d, 0x03, 0x69, 0xd8, 0x75, 0xf8, 0xe1, 0x27, 0xe0, 0xd9, 0x8e, + 0xee, 0x1e, 0xf4, 0x9b, 0x2b, 0x9a, 0xd5, 0x5d, 0xed, 0x58, 0x1d, 0xcb, 0xff, 0xb9, 0x0b, 0x5f, + 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x49, 0x17, 0x42, 0x7f, 0x1f, 0x2b, 0xee, 0xc2, + 0x1c, 0x33, 0x56, 0xc8, 0x99, 0x3b, 0x7d, 0x35, 0x10, 0x4f, 0x3c, 0x77, 0x91, 0xbe, 0xf1, 0x0e, + 0xe9, 0xd5, 0xf2, 0x2c, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0xca, 0xf0, 0xc8, 0x00, 0x1f, 0xdd, + 0x97, 0xc8, 0x0e, 0x61, 0xfc, 0x36, 0x63, 0x9c, 0x0b, 0x30, 0x36, 0x18, 0xb4, 0x58, 0x86, 0x99, + 0xd3, 0x70, 0xfd, 0x13, 0xe3, 0xca, 0xa2, 0x20, 0xc9, 0x16, 0xe4, 0x09, 0x89, 0xd6, 0x77, 0x5c, + 0xab, 0x4b, 0x8a, 0xde, 0xc9, 0x34, 0xff, 0xfc, 0x0e, 0xdd, 0x28, 0x39, 0x0c, 0x2b, 0x7b, 0xa8, + 0x62, 0x11, 0xc8, 0xcf, 0x0c, 0x2d, 0xa4, 0x19, 0x21, 0x0c, 0x6f, 0x31, 0x47, 0x3c, 0xfb, 0xe2, + 0x67, 0x60, 0x1e, 0xff, 0x4f, 0x6a, 0x52, 0xd0, 0x93, 0xf0, 0x53, 0x26, 0xe9, 0xbb, 0xaf, 0xd2, + 0xbd, 0x38, 0xe7, 0x11, 0x04, 0x7c, 0x0a, 0xac, 0x62, 0x07, 0xb9, 0x2e, 0xb2, 0x1d, 0x45, 0x35, + 0xc6, 0xb9, 0x17, 0x78, 0x4d, 0x97, 0xbe, 0xf8, 0xee, 0xe0, 0x2a, 0x6e, 0x51, 0x64, 0xc9, 0x30, + 0x8a, 0xfb, 0x70, 0x76, 0x4c, 0x56, 0x4c, 0xc0, 0xf9, 0x1a, 0xe3, 0x9c, 0x1f, 0xc9, 0x0c, 0x4c, + 0x5b, 0x07, 0x2e, 0xf7, 0xd6, 0x72, 0x02, 0xce, 0x3f, 0x60, 0x9c, 0x22, 0xc3, 0xf2, 0x25, 0xc5, + 0x8c, 0xb7, 0x60, 0xf6, 0x1e, 0xb2, 0x9b, 0x96, 0xc3, 0x8e, 0x46, 0x26, 0xa0, 0x7b, 0x9d, 0xd1, + 0xe5, 0x19, 0x90, 0x9c, 0x95, 0x60, 0xae, 0x6b, 0x90, 0x6a, 0xab, 0x1a, 0x9a, 0x80, 0xe2, 0x4b, + 0x8c, 0x62, 0x1a, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x1d, 0x8b, 0xb5, 0xa5, 0x70, 0xf8, 0x1b, 0x0c, + 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb3, 0x7a, 0x7d, 0x03, 0xf7, 0xac, 0x70, 0x8a, 0x3f, 0xe4, 0x14, + 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0x3f, 0xe2, 0x14, 0x4e, 0x20, 0x9e, 0x2f, 0x40, 0xc6, 0x32, + 0x8d, 0x43, 0xcb, 0x9c, 0xc4, 0x89, 0x3f, 0x66, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x3a, 0xa4, 0x27, + 0x5d, 0x88, 0x3f, 0x79, 0x97, 0x6f, 0x0f, 0xbe, 0x02, 0x5b, 0x90, 0xe7, 0x05, 0x4a, 0xb7, 0xcc, + 0x09, 0x28, 0xfe, 0x94, 0x51, 0xe4, 0x02, 0x30, 0xf6, 0x18, 0x2e, 0x72, 0xdc, 0x0e, 0x9a, 0x84, + 0xe4, 0x4d, 0xfe, 0x18, 0x0c, 0xc2, 0x42, 0xd9, 0x44, 0xa6, 0x76, 0x30, 0x19, 0xc3, 0x57, 0x78, + 0x28, 0x39, 0x06, 0x53, 0x94, 0x61, 0xa6, 0xab, 0xda, 0xce, 0x81, 0x6a, 0x4c, 0xb4, 0x1c, 0x7f, + 0xc6, 0x38, 0xb2, 0x1e, 0x88, 0x45, 0xa4, 0x6f, 0x9e, 0x86, 0xe6, 0xab, 0x3c, 0x22, 0x01, 0x18, + 0xdb, 0x7a, 0x8e, 0x4b, 0x0e, 0xa0, 0x4e, 0xc3, 0xf6, 0x35, 0xbe, 0xf5, 0x28, 0x76, 0x27, 0xc8, + 0x78, 0x1d, 0xd2, 0x8e, 0xfe, 0xca, 0x44, 0x34, 0x7f, 0xce, 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x25, + 0x38, 0x37, 0xb6, 0x4d, 0x4c, 0x40, 0xf6, 0x17, 0x8c, 0xec, 0xcc, 0x98, 0x56, 0xc1, 0x4a, 0xc2, + 0x69, 0x29, 0xff, 0x92, 0x97, 0x04, 0x34, 0xc4, 0x55, 0xc7, 0x2f, 0x0a, 0x8e, 0xda, 0x3e, 0x5d, + 0xd4, 0xfe, 0x8a, 0x47, 0x8d, 0x62, 0x07, 0xa2, 0xb6, 0x07, 0x67, 0x18, 0xe3, 0xe9, 0xd6, 0xf5, + 0xeb, 0xbc, 0xb0, 0x52, 0xf4, 0xfe, 0xe0, 0xea, 0xfe, 0x3c, 0x2c, 0x78, 0xe1, 0xe4, 0x13, 0xa9, + 0xa3, 0x74, 0xd5, 0xde, 0x04, 0xcc, 0xdf, 0x60, 0xcc, 0xbc, 0xe2, 0x7b, 0x23, 0xad, 0xb3, 0xa3, + 0xf6, 0x30, 0xf9, 0x6d, 0x90, 0x38, 0x79, 0xdf, 0xb4, 0x91, 0x66, 0x75, 0x4c, 0xfd, 0x15, 0xd4, + 0x9a, 0x80, 0xfa, 0xaf, 0x87, 0x96, 0x6a, 0x3f, 0x00, 0xc7, 0xcc, 0x55, 0x10, 0xbc, 0x59, 0x45, + 0xd1, 0xbb, 0x3d, 0xcb, 0x76, 0x43, 0x18, 0xff, 0x86, 0xaf, 0x94, 0x87, 0xab, 0x12, 0x58, 0xb1, + 0x02, 0x39, 0x72, 0x39, 0x69, 0x4a, 0xfe, 0x2d, 0x23, 0x9a, 0xf1, 0x51, 0xac, 0x70, 0x68, 0x56, + 0xb7, 0xa7, 0xda, 0x93, 0xd4, 0xbf, 0xbf, 0xe3, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0x0f, 0x7b, + 0x08, 0x77, 0xfb, 0x09, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0x3e, 0x30, 0x4c, 0x40, + 0xf1, 0xf7, 0x9c, 0x82, 0x63, 0x30, 0xc5, 0xa7, 0xfd, 0x46, 0x6b, 0xa3, 0x8e, 0xee, 0xb8, 0x36, + 0x9d, 0x83, 0x4f, 0xa6, 0xfa, 0xd6, 0xbb, 0x83, 0x43, 0x98, 0x1c, 0x80, 0x16, 0x6f, 0x41, 0x7e, + 0x68, 0xc4, 0x10, 0xc3, 0xbe, 0x59, 0x90, 0x7e, 0xe1, 0x7d, 0x56, 0x8c, 0x06, 0x27, 0x8c, 0xe2, + 0x36, 0x5e, 0xf7, 0xc1, 0x39, 0x20, 0x9c, 0xec, 0xd5, 0xf7, 0xbd, 0xa5, 0x1f, 0x18, 0x03, 0x8a, + 0x37, 0x60, 0x66, 0x60, 0x06, 0x08, 0xa7, 0xfa, 0x45, 0x46, 0x95, 0x0d, 0x8e, 0x00, 0xc5, 0x75, + 0x88, 0xe3, 0x7e, 0x1e, 0x0e, 0xff, 0x25, 0x06, 0x27, 0xe6, 0xc5, 0x4f, 0x42, 0x8a, 0xf7, 0xf1, + 0x70, 0xe8, 0x2f, 0x33, 0xa8, 0x07, 0xc1, 0x70, 0xde, 0xc3, 0xc3, 0xe1, 0xbf, 0xc2, 0xe1, 0x1c, + 0x82, 0xe1, 0x93, 0x87, 0xf0, 0x1f, 0x7f, 0x35, 0xce, 0xea, 0x30, 0x8f, 0xdd, 0x75, 0x98, 0x66, + 0xcd, 0x3b, 0x1c, 0xfd, 0x79, 0x76, 0x73, 0x8e, 0x28, 0x5e, 0x81, 0xc4, 0x84, 0x01, 0xff, 0x35, + 0x06, 0xa5, 0xf6, 0xc5, 0x32, 0x64, 0x02, 0x0d, 0x3b, 0x1c, 0xfe, 0xeb, 0x0c, 0x1e, 0x44, 0x61, + 0xd7, 0x59, 0xc3, 0x0e, 0x27, 0xf8, 0x0d, 0xee, 0x3a, 0x43, 0xe0, 0xb0, 0xf1, 0x5e, 0x1d, 0x8e, + 0xfe, 0x4d, 0x1e, 0x75, 0x0e, 0x29, 0xbe, 0x00, 0x69, 0xaf, 0xfe, 0x86, 0xe3, 0x7f, 0x8b, 0xe1, + 0x7d, 0x0c, 0x8e, 0x40, 0xa0, 0xfe, 0x87, 0x53, 0xfc, 0x36, 0x8f, 0x40, 0x00, 0x85, 0xb7, 0xd1, + 0x70, 0x4f, 0x0f, 0x67, 0xfa, 0x1d, 0xbe, 0x8d, 0x86, 0x5a, 0x3a, 0x5e, 0x4d, 0x52, 0x06, 0xc3, + 0x29, 0x7e, 0x97, 0xaf, 0x26, 0xb1, 0xc7, 0x6e, 0x0c, 0x37, 0xc9, 0x70, 0x8e, 0xdf, 0xe7, 0x6e, + 0x0c, 0xf5, 0xc8, 0x62, 0x1d, 0xc4, 0xd1, 0x06, 0x19, 0xce, 0xf7, 0x05, 0xc6, 0x37, 0x3b, 0xd2, + 0x1f, 0x8b, 0x2f, 0xc2, 0x99, 0xf1, 0xcd, 0x31, 0x9c, 0xf5, 0x8b, 0xef, 0x0f, 0xbd, 0xce, 0x04, + 0x7b, 0x63, 0x71, 0xcf, 0xaf, 0xb2, 0xc1, 0xc6, 0x18, 0x4e, 0xfb, 0xda, 0xfb, 0x83, 0x85, 0x36, + 0xd8, 0x17, 0x8b, 0x25, 0x00, 0xbf, 0x27, 0x85, 0x73, 0xbd, 0xce, 0xb8, 0x02, 0x20, 0xbc, 0x35, + 0x58, 0x4b, 0x0a, 0xc7, 0x7f, 0x89, 0x6f, 0x0d, 0x86, 0xc0, 0x5b, 0x83, 0x77, 0xa3, 0x70, 0xf4, + 0x1b, 0x7c, 0x6b, 0x70, 0x48, 0xf1, 0x3a, 0xa4, 0xcc, 0xbe, 0x61, 0xe0, 0xdc, 0x12, 0x4f, 0xfe, + 0x8c, 0x48, 0xfa, 0xf7, 0x0f, 0x18, 0x98, 0x03, 0x8a, 0xeb, 0x90, 0x40, 0xdd, 0x26, 0x6a, 0x85, + 0x21, 0xff, 0xe3, 0x03, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, + 0x0a, 0xc1, 0xfe, 0xe7, 0x07, 0xec, 0x0b, 0x05, 0x1f, 0xe2, 0x13, 0xd0, 0xef, 0x1d, 0x4e, 0x26, + 0x78, 0x77, 0x90, 0x80, 0xbc, 0x80, 0x5f, 0x83, 0xe9, 0x3b, 0x8e, 0x65, 0xba, 0x6a, 0x27, 0x0c, + 0xfd, 0x5f, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0xba, 0x96, 0x8d, 0x5c, 0xb5, 0xe3, 0x84, 0x61, 0xff, + 0x9b, 0x61, 0x3d, 0x00, 0x06, 0x6b, 0xaa, 0xe3, 0x4e, 0xf2, 0xdc, 0xff, 0xc3, 0xc1, 0x1c, 0x80, + 0x9d, 0xc6, 0xff, 0xdf, 0x45, 0x87, 0x61, 0xd8, 0xf7, 0xb8, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, + 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x21, 0xe0, 0xff, 0x65, 0x60, 0x1f, 0x81, 0xef, 0xec, 0xb8, 0x2d, + 0x57, 0x0f, 0x0f, 0xf6, 0xff, 0xb1, 0x95, 0xe6, 0xf6, 0xc5, 0x12, 0x64, 0x1c, 0xb7, 0xd5, 0xea, + 0xb3, 0x89, 0x26, 0x04, 0xfe, 0xc3, 0x0f, 0xbc, 0x97, 0x5c, 0x0f, 0xb3, 0x71, 0x61, 0xfc, 0x61, + 0x1d, 0x6c, 0x59, 0x5b, 0x16, 0x3d, 0xa6, 0x83, 0xdf, 0x4b, 0x80, 0xa4, 0x59, 0xdd, 0xa6, 0xe5, + 0xac, 0x9a, 0x48, 0x77, 0x0f, 0x90, 0xbd, 0x6a, 0x99, 0xcc, 0x56, 0x8c, 0x59, 0x26, 0x5a, 0x38, + 0xdd, 0xa1, 0xdc, 0xd2, 0x39, 0x48, 0x34, 0xfa, 0xcd, 0xe6, 0xa1, 0x28, 0x40, 0xcc, 0xe9, 0x37, + 0xd9, 0x57, 0x25, 0xf8, 0xdf, 0xa5, 0xef, 0xc5, 0x20, 0xd3, 0x50, 0xbb, 0x3d, 0x03, 0xd5, 0x4c, + 0x54, 0x6b, 0x8b, 0x12, 0x24, 0xc9, 0x33, 0x3c, 0x4f, 0x8c, 0x22, 0x37, 0xa7, 0x64, 0x76, 0xed, + 0x69, 0xd6, 0xc8, 0x49, 0x65, 0xd4, 0xd3, 0xac, 0x79, 0x9a, 0x8b, 0xf4, 0xa0, 0xd2, 0xd3, 0x5c, + 0xf4, 0x34, 0x97, 0xc8, 0x71, 0x65, 0xcc, 0xd3, 0x5c, 0xf2, 0x34, 0xeb, 0xe4, 0x38, 0x7e, 0xc6, + 0xd3, 0xac, 0x7b, 0x9a, 0xcb, 0xe4, 0x00, 0x3e, 0xee, 0x69, 0x2e, 0x7b, 0x9a, 0x2b, 0xe4, 0xdc, + 0x7d, 0xd6, 0xd3, 0x5c, 0xf1, 0x34, 0x57, 0xc9, 0x59, 0xbb, 0xe8, 0x69, 0xae, 0x7a, 0x9a, 0x6b, + 0xe4, 0xe3, 0x91, 0x69, 0x4f, 0x73, 0x4d, 0x5c, 0x80, 0x69, 0xfa, 0x64, 0xcf, 0x91, 0x1f, 0x64, + 0xf3, 0x37, 0xa7, 0x64, 0x2e, 0xf0, 0x75, 0xcf, 0x93, 0x0f, 0x44, 0x92, 0xbe, 0xee, 0x79, 0x5f, + 0xb7, 0x46, 0x3e, 0x93, 0x16, 0x7c, 0xdd, 0x9a, 0xaf, 0xbb, 0x28, 0xcd, 0xe0, 0xa5, 0xf7, 0x75, + 0x17, 0x7d, 0xdd, 0x25, 0x29, 0x87, 0xe3, 0xef, 0xeb, 0x2e, 0xf9, 0xba, 0x75, 0x29, 0xbf, 0x18, + 0x59, 0xce, 0xfa, 0xba, 0x75, 0xf1, 0x59, 0xc8, 0x38, 0xfd, 0xa6, 0xc2, 0xbe, 0x1f, 0x20, 0x1f, + 0xa2, 0x64, 0xd6, 0x60, 0x05, 0x67, 0x04, 0x59, 0xd4, 0x9b, 0x53, 0x32, 0x38, 0xfd, 0x26, 0xab, + 0x8d, 0x1b, 0x59, 0x20, 0x47, 0x09, 0x0a, 0xf9, 0xfc, 0x72, 0x63, 0xf3, 0xad, 0x87, 0x85, 0xa9, + 0xef, 0x3c, 0x2c, 0x4c, 0xfd, 0xeb, 0xc3, 0xc2, 0xd4, 0xdb, 0x0f, 0x0b, 0x91, 0xf7, 0x1e, 0x16, + 0x22, 0x3f, 0x7a, 0x58, 0x88, 0x3c, 0x38, 0x2a, 0x44, 0xbe, 0x72, 0x54, 0x88, 0x7c, 0xfd, 0xa8, + 0x10, 0xf9, 0xd6, 0x51, 0x21, 0xf2, 0xd6, 0x51, 0x61, 0xea, 0x3b, 0x47, 0x85, 0xa9, 0xb7, 0x8f, + 0x0a, 0x91, 0x1f, 0x1c, 0x15, 0xa6, 0xde, 0x3b, 0x2a, 0x44, 0x7e, 0x74, 0x54, 0x98, 0x7a, 0xf0, + 0xfd, 0xc2, 0x54, 0x33, 0x49, 0xd2, 0xe8, 0xe2, 0x8f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x14, 0x1b, + 0x23, 0x42, 0xf5, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2036,26 +2056,9 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2194,7 +2197,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2238,7 +2241,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2246,43 +2249,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2609,30 +2612,34 @@ func valueToStringOne(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 377 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbd, 0x8e, 0xda, 0x40, - 0x10, 0x07, 0x70, 0x7c, 0x3e, 0xec, 0xbb, 0x35, 0x97, 0x23, 0xae, 0x26, 0x57, 0x58, 0xd1, 0x55, - 0x69, 0x0e, 0x1f, 0xfe, 0xb8, 0x8f, 0xf6, 0x14, 0x45, 0x69, 0x22, 0x24, 0x78, 0x00, 0x84, 0x93, - 0xb5, 0x83, 0x04, 0x2c, 0xc2, 0x76, 0x91, 0x8e, 0xc7, 0x49, 0x99, 0x32, 0x8f, 0x40, 0x99, 0x32, - 0x45, 0x0a, 0x20, 0x4d, 0x4a, 0x4a, 0xca, 0xfc, 0x59, 0x4b, 0xb3, 0xc5, 0x5f, 0x33, 0xc3, 0x6f, - 0x28, 0xd6, 0xbb, 0x82, 0x3e, 0xab, 0x79, 0xa6, 0xca, 0x70, 0x21, 0xa7, 0xd5, 0x57, 0xb9, 0x0a, - 0xd5, 0x42, 0xf6, 0x96, 0x2b, 0x55, 0x29, 0xdf, 0x46, 0x7b, 0x73, 0x57, 0xe0, 0xe7, 0x3a, 0xeb, - 0x61, 0x2b, 0x2c, 0x54, 0xa1, 0x42, 0x6d, 0x59, 0x9d, 0xeb, 0x49, 0x0f, 0xba, 0x6b, 0xfe, 0x73, - 0xfb, 0x46, 0xb4, 0x47, 0x75, 0x96, 0x7d, 0xf3, 0xbb, 0xc2, 0x2e, 0xeb, 0x8c, 0xac, 0xb7, 0xd6, - 0xbb, 0xcb, 0xe1, 0xa9, 0xbd, 0xfd, 0x63, 0x0b, 0x6f, 0x34, 0x99, 0x2f, 0x67, 0x72, 0xb0, 0x90, - 0x83, 0xdc, 0x27, 0xe1, 0x7c, 0x98, 0xca, 0xd9, 0x97, 0xbe, 0x5e, 0xb2, 0x3e, 0xb6, 0x86, 0x4e, - 0xae, 0x67, 0x96, 0x88, 0xce, 0x20, 0x67, 0x2c, 0x11, 0x4b, 0x4c, 0x36, 0xa4, 0xcd, 0x12, 0xb3, - 0x24, 0x74, 0x0e, 0xb1, 0x59, 0x12, 0x96, 0x94, 0xda, 0x90, 0x2b, 0x96, 0x94, 0xe5, 0x81, 0x1c, - 0xc8, 0x39, 0xcb, 0x03, 0xcb, 0x23, 0xb9, 0x90, 0xd7, 0x2c, 0x8f, 0x2c, 0x4f, 0x74, 0x01, 0xf1, - 0x59, 0x9e, 0x58, 0x9e, 0xe9, 0x12, 0xe2, 0xb2, 0x3c, 0xfb, 0x37, 0xc2, 0x6d, 0x4e, 0x7a, 0x4f, - 0x02, 0x74, 0x0d, 0x72, 0x9b, 0xa3, 0xde, 0x1b, 0xeb, 0x93, 0x07, 0x73, 0x8c, 0xf5, 0x8d, 0x45, - 0xd4, 0x81, 0x75, 0x8d, 0x45, 0xc6, 0x62, 0xba, 0x82, 0x5d, 0x18, 0x8b, 0x8d, 0x25, 0xf4, 0xea, - 0xf4, 0xfd, 0x8d, 0x25, 0xc6, 0x52, 0xba, 0x86, 0x75, 0x8c, 0xa5, 0xfe, 0x9d, 0xf0, 0x70, 0x51, - 0xe3, 0xb9, 0x2c, 0xcb, 0x49, 0x21, 0xa9, 0x0b, 0xf7, 0x22, 0xd1, 0x3b, 0xbd, 0x08, 0x7d, 0xa9, - 0xd8, 0x15, 0x58, 0xf8, 0xd4, 0xf8, 0x4b, 0x47, 0x88, 0x4a, 0x96, 0xd5, 0x18, 0xae, 0xf2, 0x97, - 0xf7, 0x9b, 0x5d, 0xd0, 0xfa, 0x85, 0xfc, 0x46, 0xb6, 0xbb, 0xc0, 0x3a, 0x20, 0x47, 0x64, 0xbd, - 0x0f, 0xac, 0xef, 0xc8, 0x0f, 0xe4, 0x27, 0xb2, 0xd9, 0x63, 0x0f, 0xd9, 0xa2, 0xff, 0x87, 0x7a, - 0x40, 0x3d, 0xa2, 0xae, 0xff, 0x06, 0xad, 0xcc, 0xd1, 0xcf, 0x28, 0xfe, 0x1f, 0x00, 0x00, 0xff, - 0xff, 0x08, 0x75, 0xb6, 0x0d, 0x96, 0x02, 0x00, 0x00, + // 405 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, + 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0xca, 0xf0, 0x64, 0x31, 0x79, + 0x21, 0x69, 0xee, 0x12, 0x7e, 0xac, 0xa8, 0xaa, 0xb2, 0x54, 0x48, 0xe1, 0x0f, 0x40, 0x98, 0x3a, + 0x21, 0x12, 0x77, 0x46, 0xdc, 0xdd, 0xd0, 0x8d, 0x3f, 0xa7, 0x63, 0xc7, 0xfe, 0x09, 0x8c, 0x8c, + 0x1d, 0x3a, 0x70, 0xee, 0xd2, 0x91, 0x31, 0x63, 0x95, 0x4b, 0x79, 0xde, 0xde, 0xd7, 0x1f, 0x7b, + 0xb0, 0xfd, 0x95, 0x78, 0xe3, 0x32, 0xe3, 0x8a, 0x61, 0x6e, 0x97, 0xe5, 0xad, 0x7d, 0x18, 0xba, + 0xdc, 0x0e, 0xee, 0x1f, 0x5c, 0xe9, 0xe2, 0xc8, 0xe5, 0xf6, 0xe0, 0x68, 0xb1, 0x2c, 0x6f, 0x2b, + 0x33, 0xb8, 0x71, 0xd9, 0x70, 0xe1, 0x16, 0x6e, 0xd8, 0x98, 0xa9, 0xe6, 0x4d, 0x6a, 0x42, 0x33, + 0x6d, 0xce, 0x1c, 0x7e, 0x90, 0xad, 0xcb, 0xca, 0x98, 0x6f, 0x71, 0x5f, 0x46, 0x45, 0x65, 0x10, + 0x14, 0xe8, 0xdd, 0xd9, 0x7a, 0x3c, 0xfc, 0x1d, 0xc9, 0xee, 0xe5, 0x75, 0x76, 0x7f, 0x67, 0x2f, + 0x72, 0x7b, 0x31, 0x8f, 0x51, 0xb6, 0x3f, 0x2f, 0xed, 0xdd, 0xd7, 0x51, 0xb3, 0x09, 0xa6, 0x62, + 0xf6, 0x3f, 0xb3, 0x24, 0xb8, 0xa5, 0x40, 0x6f, 0xb1, 0x24, 0x2c, 0x29, 0x46, 0x0a, 0x74, 0x8b, + 0x25, 0x65, 0x19, 0xe3, 0xb6, 0x02, 0x1d, 0xb1, 0x8c, 0x59, 0x26, 0xd8, 0x52, 0xa0, 0xf7, 0x58, + 0x26, 0x2c, 0xc7, 0xd8, 0x56, 0xa0, 0xb7, 0x59, 0x8e, 0x59, 0x4e, 0xb0, 0xa3, 0x40, 0xbf, 0x67, + 0x39, 0x61, 0x39, 0xc5, 0x1d, 0x05, 0x3a, 0x66, 0x39, 0x65, 0x39, 0xc3, 0x5d, 0x05, 0xba, 0xc3, + 0x72, 0x16, 0x1f, 0xc8, 0xce, 0xe6, 0x66, 0x1f, 0x51, 0x2a, 0xd0, 0xfb, 0x53, 0x31, 0x7b, 0x5b, + 0x08, 0x36, 0xc2, 0xae, 0x02, 0xdd, 0x0e, 0x36, 0x0a, 0x96, 0x60, 0x4f, 0x81, 0xee, 0x07, 0x4b, + 0x82, 0xa5, 0xb8, 0xa7, 0x40, 0xef, 0x04, 0x4b, 0x83, 0x8d, 0xf1, 0xdd, 0xfa, 0xfd, 0x83, 0x8d, + 0x83, 0x4d, 0x70, 0x5f, 0x81, 0xee, 0x05, 0x9b, 0xc4, 0x47, 0xb2, 0x5b, 0x54, 0xe6, 0x2a, 0xb3, + 0x45, 0x71, 0xbd, 0xb0, 0xd8, 0x57, 0xa0, 0xbb, 0x89, 0x1c, 0xac, 0x1b, 0xd1, 0x7c, 0xea, 0x54, + 0xcc, 0x64, 0x51, 0x99, 0x2f, 0x1b, 0x3f, 0xef, 0x49, 0x59, 0xda, 0xa2, 0xbc, 0x72, 0xb9, 0x75, + 0xf3, 0xf3, 0x4f, 0x4f, 0x35, 0x89, 0xe7, 0x9a, 0xc4, 0xaf, 0x9a, 0xc4, 0x4b, 0x4d, 0xf0, 0x5a, + 0x13, 0xac, 0x6a, 0x82, 0x47, 0x4f, 0xf0, 0xdd, 0x13, 0xfc, 0xf0, 0x04, 0x3f, 0x3d, 0xc1, 0x93, + 0x27, 0xf1, 0xec, 0x49, 0xbc, 0x78, 0x82, 0xbf, 0x9e, 0xc4, 0xab, 0x27, 0x58, 0x79, 0x12, 0x8f, + 0x7f, 0x48, 0x98, 0x76, 0x53, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x04, 0xd2, + 0x98, 0x96, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto index c3cdff7e..2eca9a07 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go index 96aaadb9..b6811e13 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go @@ -34,18 +34,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -68,18 +68,18 @@ func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -144,9 +144,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -161,9 +161,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -178,9 +178,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -195,9 +195,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -214,12 +214,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -229,12 +229,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestSampleOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -272,13 +272,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -294,13 +294,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go index e1f56831..706092be 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -39,7 +37,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -82,49 +82,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -550,229 +550,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3542 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x1b, 0xe7, - 0xb5, 0x36, 0xc5, 0x45, 0xe4, 0xa1, 0x44, 0x51, 0x23, 0xc5, 0xa6, 0x15, 0xc7, 0x8e, 0x95, 0xcd, - 0x71, 0x6e, 0x24, 0x5b, 0xde, 0x99, 0x7b, 0x13, 0x68, 0xa1, 0x15, 0x19, 0x92, 0xa8, 0x3b, 0x94, - 0x12, 0x27, 0xf7, 0x61, 0x30, 0x22, 0x7f, 0x51, 0xb4, 0x87, 0x33, 0xbc, 0x9c, 0xa1, 0x63, 0xe5, - 0x29, 0x17, 0xb9, 0xf7, 0x16, 0x41, 0xd1, 0xbd, 0x40, 0x13, 0x67, 0x69, 0x13, 0xa0, 0x4d, 0x9a, - 0x6e, 0x49, 0x37, 0x14, 0x7d, 0x2a, 0x50, 0xa4, 0xcd, 0x53, 0xd1, 0xf6, 0xa9, 0x0f, 0x7d, 0x48, - 0xd2, 0x00, 0x4d, 0xdb, 0xb4, 0x4d, 0x01, 0x03, 0x0d, 0x90, 0x97, 0x9e, 0x7f, 0x9b, 0x85, 0xa4, - 0x34, 0x54, 0x80, 0x34, 0x15, 0x40, 0x88, 0x73, 0xce, 0xf9, 0xbe, 0xf9, 0xe7, 0xfc, 0xe7, 0x3f, - 0xe7, 0xfc, 0xff, 0x10, 0x7e, 0x7a, 0x1c, 0x6e, 0xae, 0x5a, 0x56, 0xd5, 0x20, 0x93, 0x8d, 0xa6, - 0xe5, 0x58, 0xeb, 0xad, 0x8d, 0xc9, 0x0a, 0xb1, 0xcb, 0xcd, 0x5a, 0xc3, 0xb1, 0x9a, 0x13, 0x4c, - 0xa6, 0x0c, 0x71, 0x8b, 0x09, 0x69, 0x31, 0xbe, 0x04, 0xc3, 0xe7, 0x6b, 0x06, 0x99, 0x73, 0x0d, - 0x4b, 0xc4, 0x51, 0xce, 0x42, 0x6c, 0x03, 0x85, 0xb9, 0xc8, 0xcd, 0xd1, 0x23, 0xe9, 0xa9, 0x5b, - 0x27, 0xda, 0x40, 0x13, 0x41, 0xc4, 0x0a, 0x15, 0xab, 0x0c, 0x31, 0xfe, 0x76, 0x0c, 0x46, 0xba, - 0x68, 0x15, 0x05, 0x62, 0xa6, 0x5e, 0xa7, 0x8c, 0x91, 0x23, 0x29, 0x95, 0x7d, 0x57, 0x72, 0xd0, - 0xdf, 0xd0, 0xcb, 0x97, 0xf5, 0x2a, 0xc9, 0xf5, 0x31, 0xb1, 0xbc, 0x54, 0x0e, 0x02, 0x54, 0x48, - 0x83, 0x98, 0x15, 0x62, 0x96, 0xb7, 0x72, 0x51, 0x1c, 0x45, 0x4a, 0xf5, 0x49, 0x94, 0xbb, 0x60, - 0xb8, 0xd1, 0x5a, 0x37, 0x6a, 0x65, 0xcd, 0x67, 0x06, 0x68, 0x16, 0x57, 0xb3, 0x5c, 0x31, 0xe7, - 0x19, 0xdf, 0x01, 0x43, 0x8f, 0x10, 0xfd, 0xb2, 0xdf, 0x34, 0xcd, 0x4c, 0x33, 0x54, 0xec, 0x33, - 0x9c, 0x85, 0x81, 0x3a, 0xb1, 0x6d, 0x1c, 0x80, 0xe6, 0x6c, 0x35, 0x48, 0x2e, 0xc6, 0x9e, 0xfe, - 0xe6, 0x8e, 0xa7, 0x6f, 0x7f, 0xf2, 0xb4, 0x40, 0xad, 0x22, 0x48, 0x99, 0x86, 0x14, 0x31, 0x5b, - 0x75, 0xce, 0x10, 0xdf, 0xc6, 0x7f, 0x05, 0xb4, 0x68, 0x67, 0x49, 0x52, 0x98, 0xa0, 0xe8, 0xb7, - 0x49, 0xf3, 0x4a, 0xad, 0x4c, 0x72, 0x09, 0x46, 0x70, 0x47, 0x07, 0x41, 0x89, 0xeb, 0xdb, 0x39, - 0x24, 0x0e, 0x1f, 0x25, 0x45, 0xae, 0x3a, 0xc4, 0xb4, 0x6b, 0x96, 0x99, 0xeb, 0x67, 0x24, 0xb7, - 0x75, 0x99, 0x45, 0x62, 0x54, 0xda, 0x29, 0x3c, 0x9c, 0x72, 0x1a, 0xfa, 0xad, 0x86, 0x83, 0xdf, - 0xec, 0x5c, 0x12, 0xe7, 0x27, 0x3d, 0x75, 0xa0, 0x6b, 0x20, 0x14, 0xb9, 0x8d, 0x2a, 0x8d, 0x95, - 0x05, 0xc8, 0xda, 0x56, 0xab, 0x59, 0x26, 0x5a, 0xd9, 0xaa, 0x10, 0xad, 0x66, 0x6e, 0x58, 0xb9, - 0x14, 0x23, 0x38, 0xd4, 0xf9, 0x20, 0xcc, 0x70, 0x16, 0xed, 0x16, 0xd0, 0x4c, 0xcd, 0xd8, 0x81, - 0x6b, 0x65, 0x2f, 0x24, 0xec, 0x2d, 0xd3, 0xd1, 0xaf, 0xe6, 0x06, 0x58, 0x84, 0x88, 0xab, 0xf1, - 0xbf, 0xc7, 0x61, 0xa8, 0x97, 0x10, 0xbb, 0x07, 0xe2, 0x1b, 0xf4, 0x29, 0x31, 0xc0, 0x76, 0xe1, - 0x03, 0x8e, 0x09, 0x3a, 0x31, 0xf1, 0x21, 0x9d, 0x38, 0x0d, 0x69, 0x93, 0xd8, 0x0e, 0xa9, 0xf0, - 0x88, 0x88, 0xf6, 0x18, 0x53, 0xc0, 0x41, 0x9d, 0x21, 0x15, 0xfb, 0x50, 0x21, 0x75, 0x11, 0x86, - 0xdc, 0x21, 0x69, 0x4d, 0xdd, 0xac, 0xca, 0xd8, 0x9c, 0x0c, 0x1b, 0xc9, 0x44, 0x41, 0xe2, 0x54, - 0x0a, 0x53, 0x33, 0x24, 0x70, 0xad, 0xcc, 0x01, 0x58, 0x26, 0xb1, 0x36, 0x70, 0x79, 0x95, 0x0d, - 0x8c, 0x93, 0xee, 0x5e, 0x2a, 0x52, 0x93, 0x0e, 0x2f, 0x59, 0x5c, 0x5a, 0x36, 0x94, 0x73, 0x5e, - 0xa8, 0xf5, 0x6f, 0x13, 0x29, 0x4b, 0x7c, 0x91, 0x75, 0x44, 0xdb, 0x1a, 0x64, 0x9a, 0x84, 0xc6, - 0x3d, 0xba, 0x98, 0x3f, 0x59, 0x8a, 0x0d, 0x62, 0x22, 0xf4, 0xc9, 0x54, 0x01, 0xe3, 0x0f, 0x36, - 0xd8, 0xf4, 0x5f, 0x2a, 0xb7, 0x80, 0x2b, 0xd0, 0x58, 0x58, 0x01, 0xcb, 0x42, 0x03, 0x52, 0xb8, - 0x8c, 0xb2, 0xb1, 0xb3, 0x90, 0x09, 0xba, 0x47, 0x19, 0x85, 0xb8, 0xed, 0xe8, 0x4d, 0x87, 0x45, - 0x61, 0x5c, 0xe5, 0x17, 0x4a, 0x16, 0xa2, 0x98, 0x64, 0x58, 0x96, 0x8b, 0xab, 0xf4, 0xeb, 0xd8, - 0x19, 0x18, 0x0c, 0xdc, 0xbe, 0x57, 0xe0, 0xf8, 0x93, 0x09, 0x18, 0xed, 0x16, 0x73, 0x5d, 0xc3, - 0x1f, 0x97, 0x0f, 0x46, 0xc0, 0x3a, 0x69, 0x62, 0xdc, 0x51, 0x06, 0x71, 0x85, 0x11, 0x15, 0x37, - 0xf4, 0x75, 0x62, 0x60, 0x34, 0x45, 0x8e, 0x64, 0xa6, 0xee, 0xea, 0x29, 0xaa, 0x27, 0x16, 0x29, - 0x44, 0xe5, 0x48, 0xe5, 0x5e, 0x88, 0x89, 0x14, 0x47, 0x19, 0x8e, 0xf6, 0xc6, 0x40, 0x63, 0x51, - 0x65, 0x38, 0xe5, 0x46, 0x48, 0xd1, 0xff, 0xdc, 0xb7, 0x09, 0x36, 0xe6, 0x24, 0x15, 0x50, 0xbf, - 0x2a, 0x63, 0x90, 0x64, 0x61, 0x56, 0x21, 0xb2, 0x34, 0xb8, 0xd7, 0x74, 0x62, 0x2a, 0x64, 0x43, - 0x6f, 0x19, 0x8e, 0x76, 0x45, 0x37, 0x5a, 0x84, 0x05, 0x0c, 0x4e, 0x8c, 0x10, 0x3e, 0x40, 0x65, - 0xca, 0x21, 0x48, 0xf3, 0xa8, 0xac, 0x21, 0xe6, 0x2a, 0xcb, 0x3e, 0x71, 0x95, 0x07, 0xea, 0x02, - 0x95, 0xd0, 0xdb, 0x5f, 0xb2, 0x71, 0x2d, 0x88, 0xa9, 0x65, 0xb7, 0xa0, 0x02, 0x76, 0xfb, 0x33, - 0xed, 0x89, 0xef, 0xa6, 0xee, 0x8f, 0xd7, 0x1e, 0x8b, 0xe3, 0x3f, 0xec, 0x83, 0x18, 0x5b, 0x6f, - 0x43, 0x90, 0x5e, 0x7d, 0x68, 0xa5, 0xa0, 0xcd, 0x15, 0xd7, 0x66, 0x16, 0x0b, 0xd9, 0x88, 0x92, - 0x01, 0x60, 0x82, 0xf3, 0x8b, 0xc5, 0xe9, 0xd5, 0x6c, 0x9f, 0x7b, 0xbd, 0xb0, 0xbc, 0x7a, 0xfa, - 0x64, 0x36, 0xea, 0x02, 0xd6, 0xb8, 0x20, 0xe6, 0x37, 0x38, 0x31, 0x95, 0x8d, 0x63, 0x24, 0x0c, - 0x70, 0x82, 0x85, 0x8b, 0x85, 0x39, 0xb4, 0x48, 0x04, 0x25, 0x68, 0xd3, 0xaf, 0x0c, 0x42, 0x8a, - 0x49, 0x66, 0x8a, 0xc5, 0xc5, 0x6c, 0xd2, 0xe5, 0x2c, 0xad, 0xaa, 0x0b, 0xcb, 0xf3, 0xd9, 0x94, - 0xcb, 0x39, 0xaf, 0x16, 0xd7, 0x56, 0xb2, 0xe0, 0x32, 0x2c, 0x15, 0x4a, 0xa5, 0xe9, 0xf9, 0x42, - 0x36, 0xed, 0x5a, 0xcc, 0x3c, 0xb4, 0x5a, 0x28, 0x65, 0x07, 0x02, 0xc3, 0xc2, 0x5b, 0x0c, 0xba, - 0xb7, 0x28, 0x2c, 0xaf, 0x2d, 0x65, 0x33, 0xca, 0x30, 0x0c, 0xf2, 0x5b, 0xc8, 0x41, 0x0c, 0xb5, - 0x89, 0x70, 0xa4, 0x59, 0x6f, 0x20, 0x9c, 0x65, 0x38, 0x20, 0x40, 0x0b, 0x65, 0x7c, 0x16, 0xe2, - 0x2c, 0xba, 0x30, 0x8a, 0x33, 0x8b, 0xd3, 0x33, 0x85, 0x45, 0xad, 0xb8, 0xb2, 0xba, 0x50, 0x5c, - 0x9e, 0x5e, 0x44, 0xdf, 0xb9, 0x32, 0xb5, 0xf0, 0x9f, 0x6b, 0x0b, 0x6a, 0x61, 0x0e, 0xfd, 0xe7, - 0x93, 0xad, 0x14, 0xa6, 0x57, 0x51, 0x16, 0x1d, 0x3f, 0x0a, 0xa3, 0xdd, 0xf2, 0x4c, 0xb7, 0x95, - 0x31, 0xfe, 0x42, 0x04, 0x46, 0xba, 0xa4, 0xcc, 0xae, 0xab, 0xe8, 0x3e, 0x88, 0xf3, 0x48, 0xe3, - 0x45, 0xe4, 0xce, 0xae, 0xb9, 0x97, 0xc5, 0x5d, 0x47, 0x21, 0x61, 0x38, 0x7f, 0x21, 0x8d, 0x6e, - 0x53, 0x48, 0x29, 0x45, 0x47, 0x38, 0x3d, 0x1e, 0x81, 0xdc, 0x76, 0xdc, 0x21, 0xeb, 0xbd, 0x2f, - 0xb0, 0xde, 0xef, 0x69, 0x1f, 0xc0, 0xe1, 0xed, 0x9f, 0xa1, 0x63, 0x14, 0x2f, 0x46, 0x60, 0x6f, - 0xf7, 0x7e, 0xa3, 0xeb, 0x18, 0xee, 0x85, 0x44, 0x9d, 0x38, 0x9b, 0x96, 0xac, 0xb9, 0xb7, 0x77, - 0xc9, 0xe4, 0x54, 0xdd, 0xee, 0x2b, 0x81, 0xf2, 0x97, 0x82, 0xe8, 0x76, 0x4d, 0x03, 0x1f, 0x4d, - 0xc7, 0x48, 0x9f, 0xe8, 0x83, 0x1b, 0xba, 0x92, 0x77, 0x1d, 0xe8, 0x4d, 0x00, 0x35, 0xb3, 0xd1, - 0x72, 0x78, 0x5d, 0xe5, 0x69, 0x26, 0xc5, 0x24, 0x6c, 0x09, 0xd3, 0x14, 0xd2, 0x72, 0x5c, 0x7d, - 0x94, 0xe9, 0x81, 0x8b, 0x98, 0xc1, 0x59, 0x6f, 0xa0, 0x31, 0x36, 0xd0, 0x83, 0xdb, 0x3c, 0x69, - 0x47, 0xc9, 0x3a, 0x06, 0xd9, 0xb2, 0x51, 0x23, 0xa6, 0xa3, 0xd9, 0x4e, 0x93, 0xe8, 0xf5, 0x9a, - 0x59, 0x65, 0x79, 0x34, 0x99, 0x8f, 0x6f, 0xe8, 0x86, 0x4d, 0xd4, 0x21, 0xae, 0x2e, 0x49, 0x2d, - 0x45, 0xb0, 0x62, 0xd1, 0xf4, 0x21, 0x12, 0x01, 0x04, 0x57, 0xbb, 0x88, 0xf1, 0x5f, 0xf7, 0x43, - 0xda, 0xd7, 0x9d, 0x29, 0x87, 0x61, 0xe0, 0x92, 0x7e, 0x45, 0xd7, 0x64, 0xc7, 0xcd, 0x3d, 0x91, - 0xa6, 0xb2, 0x15, 0xd1, 0x75, 0x1f, 0x83, 0x51, 0x66, 0x82, 0xcf, 0x88, 0x37, 0x2a, 0x1b, 0xba, - 0x6d, 0x33, 0xa7, 0x25, 0x99, 0xa9, 0x42, 0x75, 0x45, 0xaa, 0x9a, 0x95, 0x1a, 0xe5, 0x14, 0x8c, - 0x30, 0x44, 0x1d, 0x13, 0x6f, 0xad, 0x61, 0x10, 0x8d, 0xee, 0x01, 0x6c, 0x96, 0x4f, 0xdd, 0x91, - 0x0d, 0x53, 0x8b, 0x25, 0x61, 0x40, 0x47, 0x64, 0x2b, 0xf3, 0x70, 0x13, 0x83, 0x55, 0x89, 0x49, - 0x9a, 0xba, 0x43, 0x34, 0xf2, 0xdf, 0x2d, 0xb4, 0xd5, 0x74, 0xb3, 0xa2, 0x6d, 0xea, 0xf6, 0x66, - 0x6e, 0xd4, 0x4f, 0xb0, 0x9f, 0xda, 0xce, 0x0b, 0xd3, 0x02, 0xb3, 0x9c, 0x36, 0x2b, 0xf7, 0xa3, - 0x9d, 0x92, 0x87, 0xbd, 0x8c, 0x08, 0x9d, 0x82, 0xcf, 0xac, 0x95, 0x37, 0x49, 0xf9, 0xb2, 0xd6, - 0x72, 0x36, 0xce, 0xe6, 0x6e, 0xf4, 0x33, 0xb0, 0x41, 0x96, 0x98, 0xcd, 0x2c, 0x35, 0x59, 0x43, - 0x0b, 0xa5, 0x04, 0x03, 0x74, 0x3e, 0xea, 0xb5, 0x47, 0x71, 0xd8, 0x56, 0x93, 0xd5, 0x88, 0x4c, - 0x97, 0xc5, 0xed, 0x73, 0xe2, 0x44, 0x51, 0x00, 0x96, 0xb0, 0x3f, 0xcd, 0xc7, 0x4b, 0x2b, 0x85, - 0xc2, 0x9c, 0x9a, 0x96, 0x2c, 0xe7, 0xad, 0x26, 0x8d, 0xa9, 0xaa, 0xe5, 0xfa, 0x38, 0xcd, 0x63, - 0xaa, 0x6a, 0x49, 0x0f, 0xa3, 0xbf, 0xca, 0x65, 0xfe, 0xd8, 0xb8, 0x77, 0x11, 0xcd, 0xba, 0x9d, - 0xcb, 0x06, 0xfc, 0x55, 0x2e, 0xcf, 0x73, 0x03, 0x11, 0xe6, 0x36, 0x2e, 0x89, 0x1b, 0x3c, 0x7f, - 0xf9, 0x81, 0xc3, 0x1d, 0x4f, 0xd9, 0x0e, 0xc5, 0x3b, 0x36, 0xb6, 0x3a, 0x81, 0x4a, 0xe0, 0x8e, - 0x8d, 0xad, 0x76, 0xd8, 0x6d, 0x6c, 0x03, 0xd6, 0x24, 0x65, 0x74, 0x79, 0x25, 0xb7, 0xcf, 0x6f, - 0xed, 0x53, 0x28, 0x93, 0x18, 0xc8, 0x65, 0x8d, 0x98, 0xfa, 0x3a, 0xce, 0xbd, 0xde, 0xc4, 0x2f, - 0x76, 0xee, 0x90, 0xdf, 0x38, 0x53, 0x2e, 0x17, 0x98, 0x76, 0x9a, 0x29, 0x95, 0xa3, 0x30, 0x6c, - 0xad, 0x5f, 0x2a, 0xf3, 0xe0, 0xd2, 0x90, 0x67, 0xa3, 0x76, 0x35, 0x77, 0x2b, 0x73, 0xd3, 0x10, - 0x55, 0xb0, 0xd0, 0x5a, 0x61, 0x62, 0xe5, 0x4e, 0x24, 0xb7, 0x37, 0xf5, 0x66, 0x83, 0x15, 0x69, - 0x1b, 0x9d, 0x4a, 0x72, 0xb7, 0x71, 0x53, 0x2e, 0x5f, 0x96, 0x62, 0xa5, 0x00, 0x87, 0xe8, 0xc3, - 0x9b, 0xba, 0x69, 0x69, 0x2d, 0x9b, 0x68, 0xde, 0x10, 0xdd, 0xb9, 0xb8, 0x9d, 0x0e, 0x4b, 0x3d, - 0x20, 0xcd, 0xd6, 0x6c, 0x4c, 0x66, 0xd2, 0x48, 0x4e, 0xcf, 0x45, 0x18, 0x6d, 0x99, 0x35, 0x13, - 0x43, 0x1c, 0x35, 0x14, 0xcc, 0x17, 0x6c, 0xee, 0xf7, 0xfd, 0xdb, 0x34, 0xdd, 0x6b, 0x7e, 0x6b, - 0x1e, 0x24, 0xea, 0x48, 0xab, 0x53, 0x38, 0x9e, 0x87, 0x01, 0x7f, 0xec, 0x28, 0x29, 0xe0, 0xd1, - 0x83, 0xd5, 0x0d, 0x2b, 0xea, 0x6c, 0x71, 0x8e, 0xd6, 0xc2, 0x87, 0x0b, 0x58, 0xd8, 0xb0, 0x26, - 0x2f, 0x2e, 0xac, 0x16, 0x34, 0x75, 0x6d, 0x79, 0x75, 0x61, 0xa9, 0x90, 0x8d, 0x1e, 0x4d, 0x25, - 0xdf, 0xe9, 0xcf, 0x3e, 0x86, 0x7f, 0x7d, 0xe3, 0xaf, 0xf5, 0x41, 0x26, 0xd8, 0x07, 0x2b, 0xff, - 0x0e, 0xfb, 0xe4, 0xa6, 0xd5, 0x26, 0x8e, 0xf6, 0x48, 0xad, 0xc9, 0xc2, 0xb9, 0xae, 0xf3, 0x4e, - 0xd2, 0x9d, 0x89, 0x51, 0x61, 0x85, 0xdb, 0xfb, 0x07, 0xd1, 0xe6, 0x3c, 0x33, 0x51, 0x16, 0xe1, - 0x10, 0xba, 0x0c, 0x7b, 0x4d, 0xb3, 0xa2, 0x37, 0x2b, 0x9a, 0x77, 0x5c, 0xa0, 0xe9, 0x65, 0x8c, - 0x03, 0xdb, 0xe2, 0x95, 0xc4, 0x65, 0x39, 0x60, 0x5a, 0x25, 0x61, 0xec, 0xa5, 0xd8, 0x69, 0x61, - 0xda, 0x16, 0x35, 0xd1, 0xed, 0xa2, 0x06, 0x7b, 0xaf, 0xba, 0xde, 0xc0, 0xb0, 0x71, 0x9a, 0x5b, - 0xac, 0x7b, 0x4b, 0xaa, 0x49, 0x14, 0x14, 0xe8, 0xf5, 0x47, 0x37, 0x07, 0x7e, 0x3f, 0xfe, 0x36, - 0x0a, 0x03, 0xfe, 0x0e, 0x8e, 0x36, 0xc4, 0x65, 0x96, 0xe6, 0x23, 0x2c, 0x0b, 0xdc, 0xb2, 0x63, - 0xbf, 0x37, 0x31, 0x4b, 0xf3, 0x7f, 0x3e, 0xc1, 0xfb, 0x2a, 0x95, 0x23, 0x69, 0xed, 0xa5, 0xb1, - 0x46, 0x78, 0xb7, 0x9e, 0x54, 0xc5, 0x15, 0x26, 0xbb, 0xc4, 0x25, 0x9b, 0x71, 0x27, 0x18, 0xf7, - 0xad, 0x3b, 0x73, 0x5f, 0x28, 0x31, 0xf2, 0xd4, 0x85, 0x92, 0xb6, 0x5c, 0x54, 0x97, 0xa6, 0x17, - 0x55, 0x01, 0x57, 0xf6, 0x43, 0xcc, 0xd0, 0x1f, 0xdd, 0x0a, 0x56, 0x0a, 0x26, 0xea, 0xd5, 0xf1, - 0xc8, 0x40, 0x8f, 0x3c, 0x82, 0xf9, 0x99, 0x89, 0x3e, 0xc2, 0xd0, 0x9f, 0x84, 0x38, 0xf3, 0x97, - 0x02, 0x20, 0x3c, 0x96, 0xdd, 0xa3, 0x24, 0x21, 0x36, 0x5b, 0x54, 0x69, 0xf8, 0x63, 0xbc, 0x73, - 0xa9, 0xb6, 0xb2, 0x50, 0x98, 0xc5, 0x15, 0x30, 0x7e, 0x0a, 0x12, 0xdc, 0x09, 0x74, 0x69, 0xb8, - 0x6e, 0x40, 0x10, 0xbf, 0x14, 0x1c, 0x11, 0xa9, 0x5d, 0x5b, 0x9a, 0x29, 0xa8, 0xd9, 0x3e, 0xff, - 0xf4, 0xfe, 0x38, 0x02, 0x69, 0x5f, 0x43, 0x45, 0x4b, 0xb9, 0x6e, 0x18, 0xd6, 0x23, 0x9a, 0x6e, - 0xd4, 0x30, 0x43, 0xf1, 0xf9, 0x01, 0x26, 0x9a, 0xa6, 0x92, 0x5e, 0xfd, 0xf7, 0x4f, 0x89, 0xcd, - 0xe7, 0x22, 0x90, 0x6d, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf9, 0x58, 0x07, 0xf8, 0x4c, 0x04, 0x32, - 0xc1, 0x0e, 0xac, 0x6d, 0x78, 0x87, 0x3f, 0xd6, 0xe1, 0x3d, 0x1d, 0x81, 0xc1, 0x40, 0xdf, 0xf5, - 0x2f, 0x35, 0xba, 0x6b, 0x51, 0x18, 0xe9, 0x82, 0xc3, 0x04, 0xc4, 0x1b, 0x54, 0xde, 0x33, 0xdf, - 0xdd, 0xcb, 0xbd, 0x26, 0x68, 0xfd, 0x5b, 0xd1, 0x9b, 0x8e, 0xe8, 0x67, 0xb1, 0x5e, 0xd6, 0x2a, - 0x98, 0x54, 0x6b, 0x1b, 0x35, 0x6c, 0xdf, 0xf8, 0x8e, 0x85, 0x77, 0xad, 0x43, 0x9e, 0x9c, 0x6f, - 0x8f, 0xff, 0x0d, 0x94, 0x86, 0x65, 0xd7, 0x9c, 0xda, 0x15, 0x7a, 0x3c, 0x27, 0x37, 0xd2, 0xb4, - 0x8b, 0x8d, 0xa9, 0x59, 0xa9, 0x59, 0x30, 0x1d, 0xd7, 0xda, 0x24, 0x55, 0xbd, 0xcd, 0x9a, 0xa6, - 0xa1, 0xa8, 0x9a, 0x95, 0x1a, 0xd7, 0x1a, 0x1b, 0xcd, 0x8a, 0xd5, 0xa2, 0x0d, 0x01, 0xb7, 0xa3, - 0x59, 0x2f, 0xa2, 0xa6, 0xb9, 0xcc, 0x35, 0x11, 0x1d, 0x9b, 0xb7, 0x83, 0x1f, 0x50, 0xd3, 0x5c, - 0xc6, 0x4d, 0xee, 0x80, 0x21, 0xbd, 0x5a, 0x6d, 0x52, 0x72, 0x49, 0xc4, 0xdb, 0xd0, 0x8c, 0x2b, - 0x66, 0x86, 0x63, 0x17, 0x20, 0x29, 0xfd, 0x40, 0x0b, 0x0b, 0xf5, 0x04, 0xd6, 0x7c, 0x76, 0x8e, - 0xd2, 0x47, 0x37, 0xf5, 0xa6, 0x54, 0xe2, 0x4d, 0x6b, 0xb6, 0xe6, 0x1d, 0xe8, 0xf5, 0xa1, 0x3e, - 0xa9, 0xa6, 0x6b, 0xb6, 0x7b, 0x82, 0x33, 0xfe, 0x22, 0x96, 0xd7, 0xe0, 0x81, 0xa4, 0x32, 0x07, - 0x49, 0xc3, 0xc2, 0xf8, 0xa0, 0x08, 0x7e, 0x1a, 0x7e, 0x24, 0xe4, 0x0c, 0x73, 0x62, 0x51, 0xd8, - 0xab, 0x2e, 0x72, 0xec, 0x17, 0x11, 0x48, 0x4a, 0x31, 0x16, 0x8a, 0x58, 0x43, 0x77, 0x36, 0x19, - 0x5d, 0x7c, 0xa6, 0x2f, 0x1b, 0x51, 0xd9, 0x35, 0x95, 0x63, 0x37, 0x63, 0xb2, 0x10, 0x10, 0x72, - 0x7a, 0x4d, 0xe7, 0xd5, 0x20, 0x7a, 0x85, 0x35, 0xb8, 0x56, 0xbd, 0x8e, 0x33, 0x69, 0xcb, 0x79, - 0x15, 0xf2, 0x59, 0x21, 0xa6, 0xe7, 0xe2, 0x4e, 0x53, 0xaf, 0x19, 0x01, 0xdb, 0x18, 0xb3, 0xcd, - 0x4a, 0x85, 0x6b, 0x9c, 0x87, 0xfd, 0x92, 0xb7, 0x42, 0x1c, 0x1d, 0x9b, 0xe7, 0x8a, 0x07, 0x4a, - 0xb0, 0xd3, 0xae, 0x7d, 0xc2, 0x60, 0x4e, 0xe8, 0x25, 0x76, 0xe6, 0x22, 0x36, 0xb2, 0x56, 0xbd, - 0xdd, 0x13, 0x33, 0xd9, 0xb6, 0x7d, 0x97, 0x7d, 0x7f, 0xe4, 0x61, 0xf0, 0x9a, 0x8a, 0x17, 0xfa, - 0xa2, 0xf3, 0x2b, 0x33, 0x2f, 0xf7, 0x8d, 0xcd, 0x73, 0xdc, 0x8a, 0xf4, 0xa0, 0x4a, 0x36, 0x0c, - 0x52, 0xa6, 0xde, 0x81, 0xe7, 0x6f, 0x81, 0xbb, 0xab, 0x35, 0x67, 0xb3, 0xb5, 0x3e, 0x81, 0x77, - 0x98, 0xac, 0x5a, 0x55, 0xcb, 0x7b, 0x9d, 0x41, 0xaf, 0xd8, 0x05, 0xfb, 0x26, 0x5e, 0x69, 0xa4, - 0x5c, 0xe9, 0x58, 0xe8, 0xfb, 0x8f, 0xfc, 0x32, 0x8c, 0x08, 0x63, 0x8d, 0x9d, 0xa9, 0xf2, 0x16, - 0x54, 0xd9, 0x71, 0x43, 0x9e, 0x7b, 0xf5, 0x6d, 0x56, 0x12, 0xd4, 0x61, 0x01, 0xa5, 0x3a, 0xde, - 0xa4, 0xe6, 0x55, 0xb8, 0x21, 0xc0, 0xc7, 0x63, 0x18, 0xb7, 0xdc, 0x3b, 0x33, 0xbe, 0x26, 0x18, - 0x47, 0x7c, 0x8c, 0x25, 0x01, 0xcd, 0xcf, 0xc2, 0xe0, 0x6e, 0xb8, 0x7e, 0x26, 0xb8, 0x06, 0x88, - 0x9f, 0x64, 0x1e, 0x86, 0x18, 0x49, 0xb9, 0x65, 0x3b, 0x56, 0x9d, 0x25, 0x88, 0x9d, 0x69, 0x7e, - 0xfe, 0x36, 0x0f, 0xaa, 0x0c, 0x85, 0xcd, 0xba, 0xa8, 0xfc, 0x03, 0x30, 0x4a, 0x25, 0x6c, 0x0d, - 0xfa, 0xd9, 0xc2, 0x8f, 0x10, 0x72, 0xbf, 0x7a, 0x9c, 0xc7, 0xde, 0x88, 0x4b, 0xe0, 0xe3, 0xf5, - 0xcd, 0x44, 0x95, 0x38, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x18, 0xca, 0x8e, 0xef, 0x18, 0x72, 0x4f, - 0xbd, 0x1b, 0x9c, 0x89, 0x79, 0x8e, 0x9c, 0x36, 0x8c, 0xfc, 0x1a, 0xec, 0xeb, 0x32, 0xb3, 0x3d, - 0x70, 0x5e, 0x13, 0x9c, 0xa3, 0x1d, 0xb3, 0x4b, 0x69, 0x57, 0x40, 0xca, 0xdd, 0xf9, 0xe8, 0x81, - 0xf3, 0x69, 0xc1, 0xa9, 0x08, 0xac, 0x9c, 0x16, 0xca, 0x78, 0x01, 0x86, 0x71, 0xa7, 0xbe, 0x6e, - 0xd9, 0x62, 0xdf, 0xdb, 0x03, 0xdd, 0x33, 0x82, 0x6e, 0x48, 0x00, 0xd9, 0x2e, 0x98, 0x72, 0x9d, - 0x83, 0xe4, 0x06, 0x6e, 0x80, 0x7a, 0xa0, 0x78, 0x56, 0x50, 0xf4, 0x53, 0x7b, 0x0a, 0x9d, 0x86, - 0x81, 0xaa, 0x25, 0xd2, 0x70, 0x38, 0xfc, 0x39, 0x01, 0x4f, 0x4b, 0x8c, 0xa0, 0x68, 0x58, 0x8d, - 0x96, 0x41, 0x73, 0x74, 0x38, 0xc5, 0x97, 0x25, 0x85, 0xc4, 0x08, 0x8a, 0x5d, 0xb8, 0xf5, 0x2b, - 0x92, 0xc2, 0xf6, 0xf9, 0xf3, 0x3e, 0x7a, 0xd6, 0x6b, 0x6c, 0x59, 0x66, 0x2f, 0x83, 0x78, 0x5e, - 0x30, 0x80, 0x80, 0x50, 0x82, 0x7b, 0x20, 0xd5, 0xeb, 0x44, 0x7c, 0x55, 0xc0, 0x93, 0x44, 0xce, - 0x00, 0xae, 0x33, 0x99, 0x64, 0xe8, 0xbb, 0x95, 0x70, 0x8a, 0xaf, 0x09, 0x8a, 0x8c, 0x0f, 0x26, - 0x1e, 0xc3, 0x21, 0xb6, 0x83, 0x5b, 0xf5, 0x1e, 0x48, 0x5e, 0x94, 0x8f, 0x21, 0x20, 0xc2, 0x95, - 0xeb, 0xc4, 0x2c, 0x6f, 0xf6, 0xc6, 0xf0, 0x92, 0x74, 0xa5, 0xc4, 0x50, 0x0a, 0xcc, 0x3c, 0x75, - 0xbd, 0x89, 0x9b, 0x6b, 0xa3, 0xa7, 0xe9, 0xf8, 0xba, 0xe0, 0x18, 0x70, 0x41, 0xc2, 0x23, 0x2d, - 0x73, 0x37, 0x34, 0x2f, 0x4b, 0x8f, 0xf8, 0x60, 0x62, 0xe9, 0xe1, 0xce, 0x94, 0x76, 0x12, 0xbb, - 0x61, 0xfb, 0x86, 0x5c, 0x7a, 0x1c, 0xbb, 0xe4, 0x67, 0xc4, 0x99, 0xb6, 0x71, 0x0b, 0xde, 0x0b, - 0xcd, 0x37, 0xe5, 0x4c, 0x33, 0x00, 0x05, 0x3f, 0x04, 0xfb, 0xbb, 0xa6, 0xfa, 0x1e, 0xc8, 0xbe, - 0x25, 0xc8, 0xf6, 0x76, 0x49, 0xf7, 0x22, 0x25, 0xec, 0x96, 0xf2, 0xdb, 0x32, 0x25, 0x90, 0x36, - 0xae, 0x15, 0xda, 0xc6, 0xda, 0xfa, 0xc6, 0xee, 0xbc, 0xf6, 0x1d, 0xe9, 0x35, 0x8e, 0x0d, 0x78, - 0x6d, 0x15, 0xf6, 0x0a, 0xc6, 0xdd, 0xcd, 0xeb, 0x2b, 0x32, 0xb1, 0x72, 0xf4, 0x5a, 0x70, 0x76, - 0xff, 0x0b, 0xc6, 0x5c, 0x77, 0xca, 0x0e, 0xcc, 0xd6, 0xe8, 0xc1, 0x40, 0x38, 0xf3, 0xab, 0x82, - 0x59, 0x66, 0x7c, 0xb7, 0x85, 0xb3, 0x97, 0xf4, 0x06, 0x25, 0xbf, 0x08, 0x39, 0x49, 0xde, 0x32, - 0xb1, 0xc1, 0xb7, 0xaa, 0x26, 0x4e, 0x63, 0xa5, 0x07, 0xea, 0xef, 0xb6, 0x4d, 0xd5, 0x9a, 0x0f, - 0x4e, 0x99, 0x17, 0x20, 0xeb, 0xf6, 0x1b, 0x5a, 0xad, 0xde, 0xb0, 0xb0, 0xb5, 0xdc, 0x99, 0xf1, - 0x7b, 0x72, 0xa6, 0x5c, 0xdc, 0x02, 0x83, 0xe5, 0x0b, 0x90, 0x61, 0x97, 0xbd, 0x86, 0xe4, 0xf7, - 0x05, 0xd1, 0xa0, 0x87, 0x12, 0x89, 0x03, 0x3b, 0x25, 0xec, 0x79, 0x7b, 0xc9, 0x7f, 0x3f, 0x90, - 0x89, 0x43, 0x40, 0x78, 0xf4, 0x0d, 0xb5, 0x55, 0x62, 0x25, 0xec, 0xf5, 0x6b, 0xee, 0x7f, 0xae, - 0x8b, 0x35, 0x1b, 0x2c, 0xc4, 0xf9, 0x45, 0xea, 0x9e, 0x60, 0xb9, 0x0c, 0x27, 0x7b, 0xfc, 0xba, - 0xeb, 0xa1, 0x40, 0xb5, 0xcc, 0x9f, 0x87, 0xc1, 0x40, 0xa9, 0x0c, 0xa7, 0xfa, 0x5f, 0x41, 0x35, - 0xe0, 0xaf, 0x94, 0xf9, 0x53, 0x10, 0xa3, 0x65, 0x2f, 0x1c, 0xfe, 0x7f, 0x02, 0xce, 0xcc, 0xf3, - 0xff, 0x01, 0x49, 0x59, 0xee, 0xc2, 0xa1, 0xff, 0x2f, 0xa0, 0x2e, 0x84, 0xc2, 0x65, 0xa9, 0x0b, - 0x87, 0x7f, 0x42, 0xc2, 0x25, 0x84, 0xc2, 0x7b, 0x77, 0xe1, 0x4f, 0x3e, 0x19, 0x13, 0xe9, 0x4a, - 0xfa, 0x8e, 0xbe, 0xf3, 0xe1, 0x35, 0x2e, 0x1c, 0xfd, 0x84, 0xb8, 0xb9, 0x44, 0xe4, 0xcf, 0x40, - 0xbc, 0x47, 0x87, 0x7f, 0x4a, 0x40, 0xb9, 0x3d, 0x56, 0x90, 0xb4, 0xaf, 0xae, 0x85, 0xc3, 0x3f, - 0x2d, 0xe0, 0x7e, 0x14, 0x1d, 0xba, 0xa8, 0x6b, 0xe1, 0x04, 0x9f, 0x91, 0x43, 0x17, 0x08, 0xea, - 0x36, 0x59, 0xd2, 0xc2, 0xd1, 0x9f, 0x95, 0x5e, 0x97, 0x10, 0x5c, 0x4d, 0x29, 0x37, 0x4d, 0x85, - 0xe3, 0x3f, 0x27, 0xf0, 0x1e, 0x86, 0x7a, 0xc0, 0x97, 0x26, 0xc3, 0x29, 0x3e, 0x2f, 0x3d, 0xe0, - 0x43, 0xd1, 0x65, 0xd4, 0x5e, 0xfa, 0xc2, 0x99, 0xbe, 0x20, 0x97, 0x51, 0x5b, 0xe5, 0xa3, 0xb3, - 0xc9, 0xb2, 0x45, 0x38, 0xc5, 0x17, 0xe5, 0x6c, 0x32, 0x7b, 0x3a, 0x8c, 0xf6, 0x5a, 0x12, 0xce, - 0xf1, 0x25, 0x39, 0x8c, 0xb6, 0x52, 0x82, 0x95, 0x49, 0xe9, 0xac, 0x23, 0xe1, 0x7c, 0x4f, 0x0a, - 0xbe, 0xe1, 0x8e, 0x32, 0x92, 0x7f, 0x10, 0xf6, 0x76, 0xaf, 0x21, 0xe1, 0xac, 0x4f, 0x5d, 0x6f, - 0xeb, 0xfa, 0xfd, 0x25, 0x04, 0x4b, 0xde, 0x68, 0xb7, 0xfa, 0x11, 0x4e, 0x7b, 0xed, 0x7a, 0x70, - 0x63, 0xe7, 0x2f, 0x1f, 0xd8, 0xa1, 0x81, 0x97, 0xba, 0xc3, 0xb9, 0x9e, 0x11, 0x5c, 0x3e, 0x10, - 0x5d, 0x1a, 0x22, 0x73, 0x87, 0xe3, 0x9f, 0x95, 0x4b, 0x43, 0x20, 0x10, 0x9c, 0x34, 0x5b, 0x86, - 0x41, 0x83, 0x43, 0xd9, 0xf9, 0x27, 0x0d, 0xb9, 0x3f, 0x7c, 0x20, 0x16, 0x86, 0x04, 0x60, 0x0e, - 0x8d, 0x93, 0xfa, 0x3a, 0xfa, 0x20, 0x04, 0xf9, 0xc7, 0x0f, 0x64, 0x42, 0xa0, 0xd6, 0xb8, 0x9e, - 0x80, 0x6f, 0x1a, 0xd9, 0x19, 0x76, 0x08, 0xf6, 0x4f, 0x1f, 0x88, 0xd7, 0xac, 0x1e, 0xc4, 0x23, - 0xe0, 0x2f, 0x6d, 0x77, 0x26, 0x78, 0x37, 0x48, 0xc0, 0x36, 0x9a, 0xe7, 0xa0, 0x9f, 0xfe, 0xb2, - 0xc3, 0xd1, 0xab, 0x61, 0xe8, 0x3f, 0x0b, 0xb4, 0xb4, 0xa7, 0x0e, 0xab, 0x5b, 0x4d, 0x82, 0x5f, - 0xed, 0x30, 0xec, 0x5f, 0x04, 0xd6, 0x05, 0x50, 0x70, 0x59, 0xb7, 0x9d, 0x5e, 0x9e, 0xfb, 0xaf, - 0x12, 0x2c, 0x01, 0x74, 0xd0, 0xf4, 0xfb, 0x65, 0xb2, 0x15, 0x86, 0x7d, 0x4f, 0x0e, 0x5a, 0xd8, - 0x63, 0x02, 0x4c, 0xd1, 0xaf, 0xfc, 0xa7, 0x07, 0x21, 0xe0, 0xbf, 0x09, 0xb0, 0x87, 0x98, 0x39, - 0xdc, 0xfd, 0x68, 0x07, 0xe6, 0xad, 0x79, 0x8b, 0x1f, 0xea, 0xc0, 0xb5, 0x38, 0x1c, 0x40, 0x1b, - 0xac, 0xaf, 0x93, 0xbe, 0x95, 0x3c, 0x89, 0x85, 0x43, 0x1c, 0xc9, 0x44, 0xf1, 0xeb, 0xd8, 0xee, - 0x8e, 0x71, 0xc6, 0xf7, 0x43, 0xbc, 0xd4, 0x5a, 0x5f, 0xdf, 0xa2, 0xbf, 0x79, 0xb2, 0x5b, 0xeb, - 0xe2, 0x05, 0x35, 0xfd, 0x4a, 0x5f, 0xd7, 0xa4, 0x4b, 0x7a, 0xbd, 0x81, 0x6d, 0x8c, 0x49, 0x8a, - 0x1b, 0x4a, 0x0e, 0x12, 0xec, 0x29, 0x8e, 0x33, 0xa3, 0xc8, 0xfd, 0x7b, 0xd4, 0x04, 0xfb, 0xc5, - 0xde, 0x71, 0x57, 0x33, 0xc5, 0x0e, 0xf9, 0xfb, 0x5c, 0xcd, 0x94, 0xab, 0x39, 0xc1, 0x7f, 0x0a, - 0xe5, 0x6a, 0x4e, 0xb8, 0x9a, 0x93, 0xec, 0xa4, 0x2c, 0xea, 0x6a, 0x4e, 0xba, 0x9a, 0x53, 0xec, - 0xb0, 0x73, 0xd0, 0xd5, 0x9c, 0x72, 0x35, 0xa7, 0xd9, 0xf1, 0x66, 0xcc, 0xd5, 0x9c, 0x76, 0x35, - 0x67, 0xd8, 0xa9, 0xe6, 0xb0, 0xab, 0x39, 0xe3, 0x6a, 0xce, 0xb2, 0x93, 0x4c, 0xc5, 0xd5, 0x9c, - 0x75, 0x35, 0xe7, 0xd8, 0x4b, 0xe8, 0x7e, 0x57, 0x73, 0x4e, 0x19, 0x83, 0x7e, 0xfe, 0xa4, 0xc7, - 0xd8, 0x4b, 0x9b, 0x21, 0x54, 0xf5, 0xf3, 0x47, 0x3d, 0xe6, 0xe9, 0x8e, 0xb3, 0x17, 0xcd, 0x09, - 0x4f, 0x77, 0xdc, 0xd3, 0x4d, 0xb1, 0x1f, 0x4e, 0x66, 0x3d, 0xdd, 0x94, 0xa7, 0x3b, 0x91, 0x1b, - 0xa4, 0x2b, 0xd5, 0xd3, 0x9d, 0xf0, 0x74, 0x27, 0x73, 0x19, 0xea, 0x7f, 0x4f, 0x77, 0xd2, 0xd3, - 0x9d, 0xca, 0x0d, 0xd1, 0x03, 0x5b, 0x4f, 0x77, 0x4a, 0xb9, 0x1b, 0xd2, 0x38, 0x51, 0x9a, 0x78, - 0xc7, 0xc8, 0x5e, 0x68, 0xa7, 0xa7, 0x60, 0x82, 0x46, 0x04, 0x9b, 0x54, 0xb4, 0x05, 0x34, 0x10, - 0x09, 0x6a, 0x66, 0x00, 0xd8, 0xc6, 0x55, 0x63, 0x3f, 0xc8, 0x9a, 0x99, 0x7b, 0xfd, 0xcd, 0x83, - 0x7b, 0x7e, 0x89, 0x9f, 0xdf, 0xe0, 0xe7, 0x8d, 0x37, 0x0f, 0x46, 0xde, 0xc3, 0xcf, 0xfb, 0xf8, - 0x79, 0xec, 0xad, 0x83, 0x91, 0x97, 0xf0, 0xf3, 0x0a, 0x7e, 0x7e, 0x84, 0x9f, 0xd7, 0xdf, 0x42, - 0x3b, 0xfc, 0xff, 0x06, 0x7e, 0xde, 0xc1, 0xef, 0xef, 0xe1, 0xff, 0xf7, 0xf1, 0xff, 0x63, 0xbf, - 0x3b, 0xb8, 0x67, 0x3d, 0xc1, 0xc2, 0xe8, 0xc4, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x65, 0xc5, - 0x89, 0x4f, 0x07, 0x2d, 0x00, 0x00, + // 3860 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xdb, 0xdc, 0x5d, 0xc5, + 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, + 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, + 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x26, 0xae, 0xe3, 0xb6, 0x99, + 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, + 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, + 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, + 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, + 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, + 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, + 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, + 0x89, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, + 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, + 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, + 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x59, + 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, + 0x6c, 0x06, 0xc6, 0x4f, 0x41, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, + 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, + 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, + 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, + 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xd4, 0x08, 0x41, 0x83, + 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xe2, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, + 0x21, 0x24, 0x4f, 0x8e, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, + 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0xc7, 0xc6, 0x26, 0x42, 0x8d, + 0xda, 0x28, 0xdc, 0x58, 0xaa, 0x82, 0xe8, 0xda, 0x7d, 0x47, 0x47, 0xaa, 0x6e, 0xb7, 0x90, 0x6a, + 0x58, 0x6d, 0x5b, 0x4e, 0x13, 0x82, 0xb3, 0xa3, 0x0f, 0x42, 0x0c, 0xcb, 0x76, 0x0b, 0x55, 0xad, + 0xb6, 0xad, 0xe4, 0xdc, 0x81, 0x6b, 0xe9, 0x14, 0x4c, 0xbb, 0x87, 0x96, 0xa7, 0xbd, 0x22, 0x67, + 0x49, 0x86, 0xb0, 0xab, 0xa5, 0xff, 0x4b, 0x42, 0x7e, 0x92, 0x14, 0xbb, 0x06, 0xc9, 0x36, 0x7e, + 0x4a, 0x39, 0x76, 0x92, 0x18, 0x50, 0xcc, 0x60, 0x10, 0xa7, 0x7f, 0xc2, 0x20, 0x96, 0x20, 0x63, + 0x21, 0xd7, 0x43, 0x2d, 0x9a, 0x11, 0xf1, 0x09, 0x73, 0x0a, 0x28, 0x68, 0x34, 0xa5, 0x12, 0x3f, + 0x51, 0x4a, 0xdd, 0x82, 0xbc, 0xef, 0x92, 0xea, 0x68, 0x56, 0x87, 0xe7, 0xe6, 0x6a, 0x94, 0x27, + 0x2b, 0x15, 0x8e, 0x53, 0x30, 0x4c, 0xc9, 0xa1, 0x81, 0x6b, 0x69, 0x13, 0xc0, 0xb6, 0x90, 0xdd, + 0x56, 0x5b, 0x48, 0x37, 0xe5, 0xd4, 0x31, 0x51, 0xaa, 0x61, 0x93, 0x91, 0x28, 0xd9, 0x54, 0xaa, + 0x9b, 0xd2, 0xd5, 0x20, 0xd5, 0x66, 0x8e, 0xc9, 0x94, 0x1d, 0xba, 0xc9, 0x46, 0xb2, 0x6d, 0x1f, + 0x72, 0x0e, 0xc2, 0x79, 0x8f, 0x5a, 0xec, 0xc9, 0xd2, 0xc4, 0x89, 0x95, 0xc8, 0x27, 0x53, 0x18, + 0x8c, 0x3e, 0xd8, 0xac, 0x13, 0xbe, 0x94, 0x3e, 0x01, 0xbe, 0x40, 0x25, 0x69, 0x05, 0xa4, 0x0a, + 0x65, 0xb9, 0x70, 0x57, 0xeb, 0xa2, 0xc5, 0x2b, 0x90, 0x1b, 0x0c, 0x8f, 0xb4, 0x00, 0x49, 0xd7, + 0xd3, 0x1c, 0x8f, 0x64, 0x61, 0x52, 0xa1, 0x17, 0x92, 0x08, 0x71, 0x64, 0xb5, 0x48, 0x95, 0x4b, + 0x2a, 0xf8, 0xdf, 0xc5, 0xcb, 0x30, 0x3b, 0x70, 0xfb, 0x49, 0x81, 0x4b, 0x5f, 0x9c, 0x86, 0x85, + 0x71, 0x39, 0x37, 0x36, 0xfd, 0x4f, 0xc1, 0xb4, 0xd5, 0xef, 0x36, 0x91, 0x23, 0xc7, 0x09, 0x03, + 0xbb, 0x92, 0x4a, 0x90, 0x34, 0xb5, 0x26, 0x32, 0xe5, 0xc4, 0x39, 0x61, 0x39, 0xb7, 0xf6, 0xec, + 0x44, 0x59, 0xbd, 0xb2, 0x8d, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x86, 0x04, 0x2b, 0x71, 0x98, 0xe1, + 0x99, 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, + 0xf8, 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, + 0x1a, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, + 0x95, 0x2c, 0x13, 0x7e, 0x16, 0xcb, 0xa4, 0xb3, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x0a, + 0xa9, 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, + 0xdc, 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc7, 0x3f, 0xde, 0x70, 0x2e, 0x2e, + 0x7d, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7b, 0xb9, 0x5e, 0x51, 0x37, 0x6b, 0xfb, + 0x1b, 0xdb, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xbb, 0x56, 0xda, 0x13, 0x63, 0xfe, + 0x75, 0x75, 0x77, 0xef, 0xd2, 0x45, 0x31, 0xee, 0x03, 0xf6, 0xa9, 0x20, 0x11, 0x36, 0xb8, 0xb0, + 0x26, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x79, 0xe9, 0xa2, 0x38, 0x3d, 0x28, + 0xb9, 0xb0, 0x26, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x5a, 0x6d, 0x5b, 0x4c, 0xf9, 0x9c, + 0x8d, 0x3d, 0xa5, 0xba, 0xbb, 0x25, 0xa6, 0x7d, 0xce, 0x2d, 0xa5, 0xb6, 0x5f, 0x17, 0xc1, 0x67, + 0xd8, 0xa9, 0x34, 0x1a, 0xa5, 0xad, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5e, 0xde, 0xab, 0x34, 0xc4, + 0xec, 0x80, 0x5b, 0x17, 0xd6, 0xc4, 0x59, 0xff, 0x16, 0x95, 0xdd, 0xfd, 0x1d, 0x31, 0x27, 0xcd, + 0xc1, 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, + 0xdc, 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2a, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xbb, + 0xb4, 0x51, 0xd9, 0x56, 0x6b, 0xf5, 0xbd, 0x6a, 0x6d, 0xb7, 0xb4, 0x2d, 0x0a, 0x81, 0x4c, 0xa9, + 0x7c, 0x66, 0xbf, 0xaa, 0x54, 0x36, 0xc5, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x62, + 0x7c, 0x49, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, + 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x11, 0x92, 0x34, + 0x45, 0x69, 0xf7, 0x79, 0x7a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, + 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0x6b, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, + 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, + 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x61, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, + 0x8e, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, + 0x66, 0xc4, 0xd3, 0x2f, 0xc4, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x1c, 0xc0, 0xb0, 0x7a, + 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, + 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0xc7, 0x3c, 0xe9, + 0x48, 0xaf, 0x7b, 0x1e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, + 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, + 0x41, 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7d, 0x7d, 0x06, 0x32, + 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, + 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x1e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, + 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x3c, + 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, + 0x39, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x13, 0x58, 0x07, 0x59, 0xc8, + 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0xf7, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, + 0xbc, 0x80, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, + 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, + 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, + 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0xab, 0x48, + 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, + 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, + 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x5e, 0xd7, 0xe9, 0x33, + 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, + 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0xf9, + 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x24, 0x79, 0x6d, 0x73, 0x90, + 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, + 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, + 0x96, 0x88, 0x52, 0x7a, 0x06, 0xe6, 0xec, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, + 0x78, 0x45, 0x7e, 0x82, 0x84, 0x29, 0x8f, 0x15, 0x24, 0xaf, 0xea, 0x44, 0x2c, 0x3d, 0x0d, 0xa2, + 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0xb4, 0x76, 0xb7, 0xa7, 0xe9, 0x48, 0x7e, 0x92, 0x9a, 0x52, 0xf9, + 0x2e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x19, 0x6d, 0x8f, 0x33, 0x3e, 0x45, 0x33, 0x9b, 0xc8, 0x18, + 0xdb, 0x2d, 0x58, 0xe8, 0x5b, 0x86, 0xe5, 0x21, 0xa7, 0xe7, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, 0x28, + 0xff, 0xeb, 0xcc, 0x31, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xdf, 0x1f, 0x15, 0x2e, + 0x15, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, + 0x77, 0xc7, 0xcf, 0x55, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, + 0x55, 0x77, 0x2a, 0x62, 0xfc, 0x99, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, + 0x96, 0xbe, 0x13, 0x83, 0xdc, 0xe0, 0x64, 0x2c, 0xfd, 0x2c, 0x9c, 0xe6, 0xaf, 0xb1, 0x2e, 0xf2, + 0xd4, 0x7b, 0x86, 0x43, 0x52, 0xb5, 0xab, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x02, 0xb3, 0x6a, 0x20, + 0xef, 0x25, 0xc3, 0xc1, 0x89, 0xd8, 0xd5, 0x3c, 0x69, 0x1b, 0xce, 0x5a, 0xb6, 0xea, 0x7a, 0x9a, + 0xd5, 0xd2, 0x9c, 0x96, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, 0xf0, + 0x59, 0x1e, 0xb3, 0xec, 0x06, 0x33, 0x0e, 0x6a, 0x67, 0x89, 0x99, 0x0e, 0x65, 0x44, 0xfc, 0xb8, + 0x8c, 0x78, 0x14, 0xd2, 0x5d, 0xad, 0xa7, 0x22, 0xcb, 0x73, 0x0e, 0xc9, 0x3c, 0x97, 0x52, 0x52, + 0x5d, 0xad, 0x57, 0xc1, 0xd7, 0x1f, 0xdd, 0x1a, 0x84, 0xe3, 0xf8, 0xfd, 0x38, 0x64, 0xc3, 0x33, + 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xf1, 0xd0, 0x09, 0x70, 0xa5, 0x8c, + 0x0b, 0x7b, 0x71, 0x9a, 0x4e, 0x5a, 0x0a, 0x45, 0xe2, 0xa6, 0x8a, 0xf7, 0x34, 0xa2, 0xf3, 0x7b, + 0x4a, 0x61, 0x57, 0xd2, 0x16, 0x4c, 0xdf, 0x76, 0x09, 0xf7, 0x34, 0xe1, 0x7e, 0xe2, 0xe1, 0xdc, + 0x37, 0x1b, 0x84, 0x3c, 0x7d, 0xb3, 0xa1, 0xee, 0xd6, 0x94, 0x9d, 0xd2, 0xb6, 0xc2, 0xe0, 0xd2, + 0x19, 0x48, 0x98, 0xda, 0xab, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x19, 0x48, 0xdc, + 0x43, 0xda, 0x9d, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x61, 0xea, 0xaf, 0x42, 0x92, 0xc4, 0x4b, 0x02, + 0x60, 0x11, 0x13, 0xa7, 0xa4, 0x14, 0x24, 0xca, 0x35, 0x05, 0xa7, 0xbf, 0x08, 0x59, 0x2a, 0x55, + 0xeb, 0xd5, 0x4a, 0xb9, 0x22, 0xc6, 0x96, 0xd6, 0x61, 0x9a, 0x06, 0x01, 0x6f, 0x0d, 0x3f, 0x0c, + 0xe2, 0x14, 0xbb, 0x64, 0x1c, 0x02, 0xd7, 0xee, 0xef, 0x6c, 0x54, 0x14, 0x31, 0x16, 0x5e, 0x5e, + 0x17, 0xb2, 0xe1, 0x71, 0xee, 0xa7, 0x93, 0x53, 0x7f, 0x2f, 0x40, 0x26, 0x34, 0x9e, 0xe1, 0xc1, + 0x40, 0x33, 0x4d, 0xfb, 0x9e, 0xaa, 0x99, 0x86, 0xe6, 0xb2, 0xa4, 0x00, 0x22, 0x2a, 0x61, 0xc9, + 0xa4, 0x8b, 0xf6, 0x53, 0x71, 0xfe, 0x4d, 0x01, 0xc4, 0xe1, 0xd1, 0x6e, 0xc8, 0x41, 0xe1, 0x63, + 0x75, 0xf0, 0x0d, 0x01, 0x72, 0x83, 0xf3, 0xdc, 0x90, 0x7b, 0xe7, 0x3f, 0x56, 0xf7, 0xde, 0x89, + 0xc1, 0xec, 0xc0, 0x14, 0x37, 0xa9, 0x77, 0x9f, 0x87, 0x39, 0xa3, 0x85, 0xba, 0x3d, 0xdb, 0x43, + 0x96, 0x7e, 0xa8, 0x9a, 0xe8, 0x2e, 0x32, 0xe5, 0x25, 0x52, 0x28, 0x56, 0x1f, 0x3e, 0x27, 0xae, + 0x54, 0x03, 0xdc, 0x36, 0x86, 0x15, 0xe7, 0xab, 0x9b, 0x95, 0x9d, 0x7a, 0x6d, 0xaf, 0xb2, 0x5b, + 0x7e, 0x59, 0xdd, 0xdf, 0xfd, 0xb9, 0xdd, 0xda, 0x4b, 0xbb, 0x8a, 0x68, 0x0c, 0x99, 0x7d, 0x84, + 0x5b, 0xbd, 0x0e, 0xe2, 0xb0, 0x53, 0xd2, 0x69, 0x18, 0xe7, 0x96, 0x38, 0x25, 0xcd, 0x43, 0x7e, + 0xb7, 0xa6, 0x36, 0xaa, 0x9b, 0x15, 0xb5, 0x72, 0xfd, 0x7a, 0xa5, 0xbc, 0xd7, 0xa0, 0x2f, 0xce, + 0xbe, 0xf5, 0xde, 0xe0, 0xa6, 0x7e, 0x3d, 0x0e, 0xf3, 0x63, 0x3c, 0x91, 0x4a, 0x6c, 0x66, 0xa7, + 0xaf, 0x11, 0xcf, 0x4d, 0xe2, 0xfd, 0x0a, 0x9e, 0x0a, 0xea, 0x9a, 0xe3, 0xb1, 0x11, 0xff, 0x69, + 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x6d, 0x20, 0x87, 0x9d, 0x33, 0xd0, 0x41, 0x3e, 0x1f, 0xc8, 0xe9, + 0x51, 0xc3, 0xcf, 0x80, 0xd4, 0xb3, 0x5d, 0xc3, 0x33, 0xee, 0x22, 0xd5, 0xb0, 0xf8, 0xa1, 0x04, + 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x55, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, 0xd1, 0x86, 0xac, 0x71, + 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0x78, 0x4c, 0xa2, 0x76, + 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, 0x21, 0x59, 0x25, 0x43, + 0x65, 0xd4, 0xe4, 0x29, 0xc8, 0x6b, 0x9d, 0x8e, 0x83, 0xc9, 0x39, 0x11, 0x9d, 0xcc, 0x73, 0xbe, + 0x98, 0x18, 0x2e, 0xde, 0x84, 0x14, 0x8f, 0x03, 0x6e, 0xc9, 0x38, 0x12, 0x6a, 0x8f, 0x9e, 0x49, + 0xc5, 0x96, 0xd3, 0x4a, 0xca, 0xe2, 0xca, 0xf3, 0x90, 0x35, 0x5c, 0x35, 0x38, 0x1c, 0x8d, 0x9d, + 0x8b, 0x2d, 0xa7, 0x94, 0x8c, 0xe1, 0xfa, 0xa7, 0x61, 0x4b, 0x6f, 0xc5, 0x20, 0x37, 0x78, 0xb8, + 0x2b, 0x6d, 0x42, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, 0x39, 0xe2, 0x3c, 0x78, + 0x65, 0x9b, 0xd9, 0x2b, 0x3e, 0x72, 0xf1, 0x9f, 0x05, 0x48, 0x71, 0xb1, 0x74, 0x0a, 0x12, 0x3d, + 0xcd, 0x3b, 0x20, 0x74, 0xc9, 0x8d, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x9e, 0x66, 0x91, + 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x8b, 0x8c, 0xfd, 0x76, 0xb7, 0x8b, 0x2c, + 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x65, 0x26, 0x96, 0x9e, 0x85, 0x39, 0xcf, 0xd1, 0x0c, 0x73, 0xc0, + 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x86, 0xf3, 0xb6, 0x90, 0xa7, 0xe9, 0x07, + 0xa8, 0x15, 0x80, 0xa6, 0xc9, 0xc9, 0xe1, 0x69, 0x66, 0xb0, 0xc9, 0xf4, 0x1c, 0xbb, 0xf4, 0x3d, + 0x01, 0xe6, 0xf8, 0x8b, 0x4a, 0xcb, 0x0f, 0xd6, 0x0e, 0x80, 0x66, 0x59, 0xb6, 0x17, 0x0e, 0xd7, + 0x68, 0x2a, 0x8f, 0xe0, 0x56, 0x4a, 0x3e, 0x48, 0x09, 0x11, 0x2c, 0x76, 0x01, 0x02, 0xcd, 0xb1, + 0x61, 0x3b, 0x0b, 0x19, 0x76, 0x72, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, 0xf8, 0x8d, + 0x46, 0x5a, 0x80, 0x64, 0x13, 0x75, 0x0c, 0x8b, 0x9d, 0x27, 0xd2, 0x0b, 0x7e, 0x4a, 0x99, 0xf0, + 0x4f, 0x29, 0x37, 0x6e, 0xc1, 0xbc, 0x6e, 0x77, 0x87, 0xdd, 0xdd, 0x10, 0x87, 0x5e, 0xaf, 0xdd, + 0x1b, 0xc2, 0xe7, 0x20, 0x18, 0x31, 0xbf, 0x12, 0x8b, 0x6f, 0xd5, 0x37, 0xbe, 0x16, 0x5b, 0xdc, + 0xa2, 0xb8, 0x3a, 0x7f, 0x4c, 0x05, 0xb5, 0x4d, 0xa4, 0x63, 0xd7, 0xe1, 0x47, 0x9f, 0x84, 0xe7, + 0x3a, 0x86, 0x77, 0xd0, 0x6f, 0xae, 0xe8, 0x76, 0x77, 0xb5, 0x63, 0x77, 0xec, 0xe0, 0xe7, 0x2e, + 0x7c, 0x45, 0x2e, 0xc8, 0x7f, 0xec, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8c, 0xfc, 0x7d, 0xac, 0xb8, + 0x0b, 0xf3, 0xcc, 0x58, 0x25, 0x67, 0xee, 0xf4, 0xd5, 0x40, 0x7a, 0xe8, 0xb9, 0x8b, 0xfc, 0xcd, + 0x77, 0x49, 0xaf, 0x56, 0xe6, 0x18, 0x14, 0xeb, 0xe8, 0x0b, 0x44, 0x51, 0x81, 0x47, 0x06, 0xf8, + 0xe8, 0xbe, 0x44, 0x4e, 0x04, 0xe3, 0x77, 0x18, 0xe3, 0x7c, 0x88, 0xb1, 0xc1, 0xa0, 0xc5, 0x32, + 0xcc, 0x9e, 0x84, 0xeb, 0x1f, 0x19, 0x57, 0x16, 0x85, 0x49, 0xb6, 0x20, 0x4f, 0x48, 0xf4, 0xbe, + 0xeb, 0xd9, 0x5d, 0x52, 0xf4, 0x1e, 0x4e, 0xf3, 0x4f, 0xef, 0xd2, 0x8d, 0x92, 0xc3, 0xb0, 0xb2, + 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x42, 0xba, 0x19, 0xc1, 0xf0, 0x36, 0x73, 0xc4, 0xb7, + 0x2f, 0x7e, 0x16, 0x16, 0xf0, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, 0x65, 0x92, 0xbf, 0xf7, + 0x1a, 0xdd, 0x8b, 0xf3, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, + 0x35, 0x73, 0x9c, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x4b, 0xef, 0x0d, 0xae, 0xe2, 0x16, 0x45, 0x96, + 0x4c, 0xb3, 0xb8, 0x0f, 0xa7, 0xc7, 0x64, 0xc5, 0x04, 0x9c, 0xaf, 0x33, 0xce, 0x85, 0x91, 0xcc, + 0xc0, 0xb4, 0x75, 0xe0, 0x72, 0x7f, 0x2d, 0x27, 0xe0, 0xfc, 0x7d, 0xc6, 0x29, 0x31, 0x2c, 0x5f, + 0x52, 0xcc, 0x78, 0x13, 0xe6, 0xee, 0x22, 0xa7, 0x69, 0xbb, 0xec, 0x68, 0x64, 0x02, 0xba, 0x37, + 0x18, 0x5d, 0x9e, 0x01, 0xc9, 0x59, 0x09, 0xe6, 0xba, 0x0a, 0xa9, 0xb6, 0xa6, 0xa3, 0x09, 0x28, + 0xbe, 0xcc, 0x28, 0x66, 0xb0, 0x3d, 0x86, 0x96, 0x20, 0xdb, 0xb1, 0x59, 0x5b, 0x8a, 0x86, 0xbf, + 0xc9, 0xe0, 0x19, 0x8e, 0x61, 0x14, 0x3d, 0xbb, 0xd7, 0x37, 0x71, 0xcf, 0x8a, 0xa6, 0xf8, 0x03, + 0x4e, 0xc1, 0x31, 0x8c, 0xe2, 0x04, 0x61, 0xfd, 0x43, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x22, 0x64, + 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x9c, 0xf8, 0x23, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x41, + 0x7a, 0xd2, 0x85, 0xf8, 0xe3, 0xf7, 0xf8, 0xf6, 0xe0, 0x2b, 0xb0, 0x05, 0x79, 0x5e, 0xa0, 0x0c, + 0xdb, 0x9a, 0x80, 0xe2, 0x4f, 0x18, 0x45, 0x2e, 0x04, 0x63, 0x8f, 0xe1, 0x21, 0xd7, 0xeb, 0xa0, + 0x49, 0x48, 0xde, 0xe2, 0x8f, 0xc1, 0x20, 0x2c, 0x94, 0x4d, 0x64, 0xe9, 0x07, 0x93, 0x31, 0x7c, + 0x95, 0x87, 0x92, 0x63, 0x30, 0x45, 0x19, 0x66, 0xbb, 0x9a, 0xe3, 0x1e, 0x68, 0xe6, 0x44, 0xcb, + 0xf1, 0xa7, 0x8c, 0x23, 0xeb, 0x83, 0x58, 0x44, 0xfa, 0xd6, 0x49, 0x68, 0xbe, 0xc6, 0x23, 0x12, + 0x82, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x00, 0xea, 0x24, 0x6c, 0x5f, 0xe7, 0x5b, 0x8f, 0x62, 0x77, + 0xc2, 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0xaf, 0x4e, 0x44, 0xf3, 0x67, 0x7c, 0xa5, 0x09, 0x00, 0x83, + 0x5f, 0x86, 0x33, 0x63, 0xdb, 0xc4, 0x04, 0x64, 0x7f, 0xce, 0xc8, 0x4e, 0x8d, 0x69, 0x15, 0xac, + 0x24, 0x9c, 0x94, 0xf2, 0x2f, 0x78, 0x49, 0x40, 0x43, 0x5c, 0x75, 0xfc, 0xa2, 0xe0, 0x6a, 0xed, + 0x93, 0x45, 0xed, 0x2f, 0x79, 0xd4, 0x28, 0x76, 0x20, 0x6a, 0x7b, 0x70, 0x8a, 0x31, 0x9e, 0x6c, + 0x5d, 0xbf, 0xc1, 0x0b, 0x2b, 0x45, 0xef, 0x0f, 0xae, 0xee, 0xcf, 0xc3, 0xa2, 0x1f, 0x4e, 0x3e, + 0x91, 0xba, 0x6a, 0x57, 0xeb, 0x4d, 0xc0, 0xfc, 0x4d, 0xc6, 0xcc, 0x2b, 0xbe, 0x3f, 0xd2, 0xba, + 0x3b, 0x5a, 0x0f, 0x93, 0xdf, 0x02, 0x99, 0x93, 0xf7, 0x2d, 0x07, 0xe9, 0x76, 0xc7, 0x32, 0x5e, + 0x45, 0xad, 0x09, 0xa8, 0xff, 0x6a, 0x68, 0xa9, 0xf6, 0x43, 0x70, 0xcc, 0x5c, 0x05, 0xd1, 0x9f, + 0x55, 0x54, 0xa3, 0xdb, 0xb3, 0x1d, 0x2f, 0x82, 0xf1, 0xaf, 0xf9, 0x4a, 0xf9, 0xb8, 0x2a, 0x81, + 0x15, 0x2b, 0x90, 0x23, 0x97, 0x93, 0xa6, 0xe4, 0xdf, 0x30, 0xa2, 0xd9, 0x00, 0xc5, 0x0a, 0x87, + 0x6e, 0x77, 0x7b, 0x9a, 0x33, 0x49, 0xfd, 0xfb, 0x5b, 0x5e, 0x38, 0x18, 0x84, 0x15, 0x0e, 0xef, + 0xb0, 0x87, 0x70, 0xb7, 0x9f, 0x80, 0xe1, 0x5b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x03, 0xc3, + 0x04, 0x14, 0x7f, 0xc7, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x26, 0x68, 0xb4, 0x0e, 0xea, 0x18, 0xae, + 0xe7, 0xd0, 0x39, 0xf8, 0xe1, 0x54, 0xdf, 0x7e, 0x6f, 0x70, 0x08, 0x53, 0x42, 0xd0, 0xe2, 0x4d, + 0xc8, 0x0f, 0x8d, 0x18, 0x52, 0xd4, 0x37, 0x0b, 0xf2, 0x2f, 0x7c, 0xc0, 0x8a, 0xd1, 0xe0, 0x84, + 0x51, 0xdc, 0xc6, 0xeb, 0x3e, 0x38, 0x07, 0x44, 0x93, 0xbd, 0xf6, 0x81, 0xbf, 0xf4, 0x03, 0x63, + 0x40, 0xf1, 0x3a, 0xcc, 0x0e, 0xcc, 0x00, 0xd1, 0x54, 0xbf, 0xc8, 0xa8, 0xb2, 0xe1, 0x11, 0xa0, + 0xb8, 0x0e, 0x09, 0xdc, 0xcf, 0xa3, 0xe1, 0xbf, 0xc4, 0xe0, 0xc4, 0xbc, 0xf8, 0x29, 0x48, 0xf1, + 0x3e, 0x1e, 0x0d, 0xfd, 0x65, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, 0x78, 0x34, 0xfc, 0x57, 0x38, + 0x9c, 0x43, 0x30, 0x7c, 0xf2, 0x10, 0xfe, 0xc3, 0xaf, 0x26, 0x58, 0x1d, 0xe6, 0xb1, 0xbb, 0x06, + 0x33, 0xac, 0x79, 0x47, 0xa3, 0xbf, 0xc0, 0x6e, 0xce, 0x11, 0xc5, 0xcb, 0x90, 0x9c, 0x30, 0xe0, + 0xbf, 0xc6, 0xa0, 0xd4, 0xbe, 0x58, 0x86, 0x4c, 0xa8, 0x61, 0x47, 0xc3, 0x7f, 0x9d, 0xc1, 0xc3, + 0x28, 0xec, 0x3a, 0x6b, 0xd8, 0xd1, 0x04, 0xbf, 0xc1, 0x5d, 0x67, 0x08, 0x1c, 0x36, 0xde, 0xab, + 0xa3, 0xd1, 0xbf, 0xc9, 0xa3, 0xce, 0x21, 0xc5, 0x17, 0x21, 0xed, 0xd7, 0xdf, 0x68, 0xfc, 0x6f, + 0x31, 0x7c, 0x80, 0xc1, 0x11, 0x08, 0xd5, 0xff, 0x68, 0x8a, 0xdf, 0xe6, 0x11, 0x08, 0xa1, 0xf0, + 0x36, 0x1a, 0xee, 0xe9, 0xd1, 0x4c, 0xbf, 0xc3, 0xb7, 0xd1, 0x50, 0x4b, 0xc7, 0xab, 0x49, 0xca, + 0x60, 0x34, 0xc5, 0xef, 0xf2, 0xd5, 0x24, 0xf6, 0xd8, 0x8d, 0xe1, 0x26, 0x19, 0xcd, 0xf1, 0x7b, + 0xdc, 0x8d, 0xa1, 0x1e, 0x59, 0xac, 0x83, 0x34, 0xda, 0x20, 0xa3, 0xf9, 0xbe, 0xc8, 0xf8, 0xe6, + 0x46, 0xfa, 0x63, 0xf1, 0x25, 0x38, 0x35, 0xbe, 0x39, 0x46, 0xb3, 0x7e, 0xe9, 0x83, 0xa1, 0xd7, + 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, + 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, + 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, + 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, + 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, + 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x11, 0x80, 0xbe, 0x4c, 0x93, + 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, + 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, + 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, + 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, + 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, + 0x14, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, + 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, + 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, + 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0xeb, 0x49, 0x78, 0x4c, 0xb7, 0xbb, + 0x4d, 0xdb, 0x5d, 0x0d, 0x95, 0xa1, 0x55, 0xdb, 0x62, 0xf6, 0x52, 0xdc, 0xb6, 0xd0, 0xe2, 0xc9, + 0x0e, 0xe6, 0x96, 0xce, 0x40, 0xb2, 0xd1, 0x6f, 0x36, 0x0f, 0x25, 0x11, 0xe2, 0x6e, 0xbf, 0xc9, + 0xbe, 0x2c, 0xc1, 0xff, 0x2e, 0x7d, 0x3f, 0x0e, 0x99, 0x86, 0xd6, 0xed, 0x99, 0xa8, 0x66, 0xa1, + 0x5a, 0x5b, 0x92, 0x61, 0x9a, 0x3c, 0xc7, 0x0b, 0xc4, 0x48, 0xb8, 0x31, 0xa5, 0xb0, 0x6b, 0x5f, + 0xb3, 0x46, 0x4e, 0x2b, 0x63, 0xbe, 0x66, 0xcd, 0xd7, 0x5c, 0xa0, 0x87, 0x95, 0xbe, 0xe6, 0x82, + 0xaf, 0xb9, 0x48, 0x8e, 0x2c, 0xe3, 0xbe, 0xe6, 0xa2, 0xaf, 0x59, 0x27, 0x47, 0xf2, 0xb3, 0xbe, + 0x66, 0xdd, 0xd7, 0x5c, 0x22, 0x87, 0xf0, 0x09, 0x5f, 0x73, 0xc9, 0xd7, 0x5c, 0x26, 0x67, 0xef, + 0x73, 0xbe, 0xe6, 0xb2, 0xaf, 0xb9, 0x42, 0xce, 0xdb, 0x25, 0x5f, 0x73, 0xc5, 0xd7, 0x5c, 0x25, + 0x1f, 0x90, 0xcc, 0xf8, 0x9a, 0xab, 0xd2, 0x22, 0xcc, 0xd0, 0x27, 0x7b, 0x9e, 0xfc, 0x28, 0x9b, + 0xbf, 0x31, 0xa5, 0x70, 0x41, 0xa0, 0x7b, 0x81, 0x7c, 0x24, 0x32, 0x1d, 0xe8, 0x5e, 0x08, 0x74, + 0x6b, 0xe4, 0x53, 0x69, 0x31, 0xd0, 0xad, 0x05, 0xba, 0x0b, 0xf2, 0x2c, 0x5e, 0xfe, 0x40, 0x77, + 0x21, 0xd0, 0x5d, 0x94, 0x73, 0x38, 0xfe, 0x81, 0xee, 0x62, 0xa0, 0x5b, 0x97, 0xf3, 0xe7, 0x84, + 0xe5, 0x6c, 0xa0, 0x5b, 0x97, 0x9e, 0x83, 0x8c, 0xdb, 0x6f, 0xaa, 0xec, 0x1b, 0x02, 0xf2, 0x31, + 0x4a, 0x66, 0x0d, 0x56, 0x70, 0x46, 0x90, 0x45, 0xbd, 0x31, 0xa5, 0x80, 0xdb, 0x6f, 0xb2, 0xfa, + 0xb8, 0x91, 0x05, 0x72, 0x9c, 0xa0, 0x92, 0x4f, 0x30, 0x37, 0x36, 0xdf, 0x7e, 0x50, 0x98, 0xfa, + 0xee, 0x83, 0xc2, 0xd4, 0xbf, 0x3c, 0x28, 0x4c, 0xbd, 0xf3, 0xa0, 0x20, 0xbc, 0xff, 0xa0, 0x20, + 0xfc, 0xf8, 0x41, 0x41, 0xb8, 0x7f, 0x54, 0x10, 0xbe, 0x7a, 0x54, 0x10, 0xbe, 0x71, 0x54, 0x10, + 0xbe, 0x7d, 0x54, 0x10, 0xde, 0x3e, 0x2a, 0x4c, 0x7d, 0xf7, 0xa8, 0x20, 0xbc, 0x73, 0x54, 0x10, + 0x7e, 0x78, 0x54, 0x98, 0x7a, 0xff, 0xa8, 0x20, 0xfc, 0xf8, 0xa8, 0x30, 0x75, 0xff, 0x07, 0x85, + 0xa9, 0xe6, 0x34, 0x49, 0xa3, 0x0b, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x9e, 0xbb, 0x5a, 0xb4, + 0xf9, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2038,26 +2058,9 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2196,7 +2199,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2240,7 +2243,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2248,43 +2251,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2610,8 +2613,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2623,7 +2626,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2651,7 +2654,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2666,11 +2669,11 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sub = string(data[iNdEx:postIndex]) + m.Sub = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -2689,8 +2692,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *SampleOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *SampleOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2702,7 +2705,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2727,14 +2730,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -2745,10 +2748,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -2762,7 +2765,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2782,7 +2785,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2802,7 +2805,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -2822,7 +2825,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2842,7 +2845,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2863,7 +2866,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2881,10 +2884,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field9{v} case 10: if wireType != 5 { @@ -2895,10 +2898,10 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field10{v} case 11: if wireType != 1 { @@ -2909,14 +2912,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field11{v} case 12: if wireType != 1 { @@ -2927,14 +2930,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field12{v} case 13: if wireType != 0 { @@ -2948,7 +2951,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2969,7 +2972,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2984,7 +2987,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &SampleOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -2998,7 +3001,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3013,7 +3016,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &SampleOneOf_Field15{v} iNdEx = postIndex case 16: @@ -3028,7 +3031,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3043,14 +3046,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &SampleOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOne(data[iNdEx:]) + skippy, err := skipOne(dAtA[iNdEx:]) if err != nil { return err } @@ -3069,8 +3072,8 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { } return nil } -func skipOne(data []byte) (n int, err error) { - l := len(data) +func skipOne(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3081,7 +3084,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3099,7 +3102,7 @@ func skipOne(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3116,7 +3119,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3139,7 +3142,7 @@ func skipOne(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3150,7 +3153,7 @@ func skipOne(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOne(data[start:]) + next, err := skipOne(dAtA[start:]) if err != nil { return 0, err } @@ -3174,30 +3177,34 @@ var ( ErrIntOverflowOne = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 384 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0x07, 0xf0, 0xb8, 0x6e, 0xec, 0xf6, 0x9c, 0xd2, 0xe0, 0xe9, 0x51, 0x21, 0x0b, 0x75, 0x62, - 0x69, 0xdc, 0xf8, 0x47, 0x7f, 0xac, 0x15, 0x42, 0x2c, 0xa8, 0x52, 0xfb, 0x07, 0x54, 0x36, 0x9c, - 0xdd, 0x4a, 0x71, 0x2e, 0x8a, 0xed, 0x81, 0x2d, 0x7f, 0x0e, 0x23, 0x23, 0x7f, 0x42, 0x46, 0x46, - 0x06, 0x86, 0x24, 0x2c, 0x8c, 0x19, 0x33, 0xf2, 0xcd, 0x59, 0x7a, 0x37, 0x7c, 0xf5, 0xde, 0xd3, - 0xe7, 0x79, 0x38, 0xdf, 0x89, 0xb7, 0x5f, 0x54, 0x95, 0xab, 0x3a, 0x6c, 0xa7, 0x55, 0x36, 0xaf, - 0x9f, 0xb3, 0x89, 0x9c, 0x87, 0x6a, 0x2a, 0x47, 0xb3, 0xb9, 0x6a, 0x94, 0x6f, 0xa3, 0x3d, 0xbb, - 0x28, 0x5f, 0x9a, 0xe7, 0x36, 0x1f, 0x61, 0x33, 0x2c, 0x55, 0xa9, 0x42, 0x6d, 0x79, 0x5b, 0xe8, - 0x49, 0x0f, 0xba, 0xeb, 0xbe, 0x39, 0x7f, 0x23, 0xfa, 0x8f, 0x6d, 0x9e, 0x7f, 0xf3, 0x87, 0xc2, - 0xae, 0xdb, 0x9c, 0xac, 0x77, 0xd6, 0xfb, 0xe3, 0x87, 0x7d, 0x7b, 0xfe, 0xc7, 0x16, 0xde, 0x63, - 0x56, 0xcd, 0x26, 0xf2, 0x7e, 0x2a, 0xef, 0x0b, 0x9f, 0x84, 0xf3, 0xf1, 0x45, 0x4e, 0xbe, 0x8e, - 0xf5, 0x92, 0xf5, 0xa9, 0xf7, 0xe0, 0x14, 0x7a, 0x66, 0x89, 0xe8, 0x00, 0x72, 0xc0, 0x12, 0xb1, - 0xc4, 0x64, 0x43, 0xfa, 0x2c, 0x31, 0x4b, 0x42, 0x87, 0x10, 0x9b, 0x25, 0x61, 0x49, 0xa9, 0x0f, - 0x39, 0x61, 0x49, 0x59, 0xae, 0xc8, 0x81, 0x1c, 0xb2, 0x5c, 0xb1, 0x5c, 0x93, 0x0b, 0x79, 0xcd, - 0x72, 0xcd, 0x72, 0x43, 0x47, 0x10, 0x9f, 0xe5, 0x86, 0xe5, 0x96, 0x8e, 0x21, 0x2e, 0xcb, 0xad, - 0x7f, 0x26, 0xdc, 0xee, 0xa4, 0x97, 0x24, 0x40, 0xa7, 0x20, 0xb7, 0x3b, 0xea, 0xa5, 0xb1, 0x31, - 0x79, 0x30, 0xc7, 0xd8, 0xd8, 0x58, 0x44, 0x03, 0xd8, 0xd0, 0x58, 0x64, 0x2c, 0xa6, 0x13, 0xd8, - 0x91, 0xb1, 0xd8, 0x58, 0x42, 0xaf, 0xf6, 0xff, 0xdf, 0x58, 0x62, 0x2c, 0xa5, 0x53, 0xd8, 0xc0, - 0x58, 0xea, 0x5f, 0x08, 0x0f, 0x17, 0xf5, 0x54, 0xc9, 0xba, 0xce, 0x4a, 0x49, 0x43, 0xb8, 0x17, - 0x89, 0xd1, 0xfe, 0x45, 0xe8, 0x4b, 0xc5, 0xae, 0xc0, 0xc2, 0xe7, 0xce, 0xef, 0x06, 0x42, 0x34, - 0xb2, 0x6e, 0x9e, 0xe0, 0xaa, 0xb8, 0xfb, 0xb0, 0x5c, 0x07, 0xbd, 0x5f, 0xc8, 0x6f, 0x64, 0xb5, - 0x0e, 0xac, 0x2d, 0xb2, 0x43, 0x16, 0x9b, 0xc0, 0xfa, 0x8e, 0xfc, 0x40, 0x7e, 0x22, 0xcb, 0x0d, - 0xf6, 0x50, 0x57, 0xc8, 0x3f, 0xf4, 0x5b, 0xd4, 0x1d, 0xea, 0xe2, 0x6f, 0xd0, 0xcb, 0x1d, 0xfd, - 0x8c, 0xe2, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x8a, 0xb7, 0x0c, 0x9a, 0x02, 0x00, 0x00, + // 409 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, + 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x8a, 0xaa, 0x27, 0x8b, 0xc9, + 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x7f, 0x00, 0x8a, 0xa9, + 0x13, 0x90, 0x72, 0x67, 0x94, 0xcb, 0x0d, 0xdd, 0xf8, 0x73, 0x3a, 0x76, 0xec, 0x9f, 0xc0, 0xc8, + 0xd8, 0xa1, 0x03, 0xe7, 0x2e, 0x1d, 0x19, 0x33, 0x56, 0xb9, 0xb4, 0xcf, 0xdb, 0xfb, 0xfa, 0x63, + 0x0f, 0xb6, 0xbf, 0xf2, 0xfd, 0xad, 0xcb, 0x8c, 0x2b, 0xfa, 0x65, 0x9e, 0x4d, 0x97, 0xc5, 0xdd, + 0x74, 0x61, 0x97, 0x7d, 0x97, 0xdb, 0xde, 0xc3, 0xd2, 0xad, 0x5c, 0x1c, 0xb9, 0xdc, 0x1e, 0x9d, + 0xcc, 0xef, 0x57, 0x77, 0xa5, 0xe9, 0xdd, 0xba, 0xac, 0x3f, 0x77, 0x73, 0xd7, 0xaf, 0xcd, 0x94, + 0xb3, 0x3a, 0xd5, 0xa1, 0x9e, 0xb6, 0x67, 0x8e, 0xdf, 0xc9, 0xc6, 0x75, 0x69, 0xcc, 0xd7, 0xb8, + 0x2b, 0xa3, 0xa2, 0x34, 0x08, 0x0a, 0xf4, 0xfe, 0x64, 0x33, 0x1e, 0xff, 0x8a, 0x64, 0xfb, 0x7a, + 0x9a, 0x3d, 0x2c, 0xec, 0x55, 0x6e, 0xaf, 0x66, 0x31, 0xca, 0xe6, 0xa7, 0x7b, 0xbb, 0xf8, 0x32, + 0xa8, 0x37, 0xc1, 0x58, 0x4c, 0xfe, 0x65, 0x96, 0x04, 0x77, 0x14, 0xe8, 0x1d, 0x96, 0x84, 0x25, + 0xc5, 0x48, 0x81, 0x6e, 0xb0, 0xa4, 0x2c, 0x43, 0xdc, 0x55, 0xa0, 0x23, 0x96, 0x21, 0xcb, 0x08, + 0x1b, 0x0a, 0xf4, 0x01, 0xcb, 0x88, 0xe5, 0x14, 0x9b, 0x0a, 0xf4, 0x2e, 0xcb, 0x29, 0xcb, 0x19, + 0xb6, 0x14, 0xe8, 0xb7, 0x2c, 0x67, 0x2c, 0xe7, 0xb8, 0xa7, 0x40, 0xc7, 0x2c, 0xe7, 0x2c, 0x17, + 0xb8, 0xaf, 0x40, 0xb7, 0x58, 0x2e, 0xe2, 0x23, 0xd9, 0xda, 0xde, 0xec, 0x03, 0x4a, 0x05, 0xfa, + 0x70, 0x2c, 0x26, 0xff, 0x17, 0x82, 0x0d, 0xb0, 0xad, 0x40, 0x37, 0x83, 0x0d, 0x82, 0x25, 0xd8, + 0x51, 0xa0, 0xbb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x28, 0xd0, 0x7b, 0xc1, 0xd2, 0x60, 0x43, 0x7c, + 0xb3, 0x79, 0xff, 0x60, 0xc3, 0x60, 0x23, 0x3c, 0x54, 0xa0, 0x3b, 0xc1, 0x46, 0xf1, 0x89, 0x6c, + 0x17, 0xa5, 0xb9, 0xc9, 0x6c, 0x51, 0x4c, 0xe7, 0x16, 0xbb, 0x0a, 0x74, 0x3b, 0x91, 0xbd, 0x4d, + 0x23, 0xea, 0x4f, 0x1d, 0x8b, 0x89, 0x2c, 0x4a, 0xf3, 0x79, 0xeb, 0x97, 0x1d, 0x29, 0x57, 0xb6, + 0x58, 0xdd, 0xb8, 0xdc, 0xba, 0xd9, 0xe5, 0xc7, 0xa7, 0x8a, 0xc4, 0x73, 0x45, 0xe2, 0x67, 0x45, + 0xe2, 0xa5, 0x22, 0x78, 0xad, 0x08, 0xd6, 0x15, 0xc1, 0xa3, 0x27, 0xf8, 0xe6, 0x09, 0xbe, 0x7b, + 0x82, 0x1f, 0x9e, 0xe0, 0xc9, 0x93, 0x78, 0xf6, 0x04, 0x2f, 0x9e, 0xe0, 0x8f, 0x27, 0xf1, 0xea, + 0x09, 0xd6, 0x9e, 0xc4, 0xe3, 0x6f, 0x12, 0xa6, 0x59, 0xd7, 0x28, 0xfd, 0x1b, 0x00, 0x00, 0xff, + 0xff, 0x3b, 0xfb, 0xd3, 0x99, 0x9a, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto index 87d60624..d8b55043 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go index 26c71b4e..ffbaaad8 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go @@ -34,18 +34,18 @@ func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -68,18 +68,18 @@ func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -144,9 +144,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -161,9 +161,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -178,9 +178,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -195,9 +195,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -214,12 +214,12 @@ func TestOneDescription(t *testing.T) { func TestSubbyVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -229,12 +229,12 @@ func TestSubbyVerboseEqual(t *testing.T) { func TestSampleOneOfVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -272,13 +272,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -294,13 +294,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go index eb4210a9..3fe98be9 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import unsafe "unsafe" @@ -41,7 +39,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -85,49 +85,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -553,229 +553,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3544 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x23, 0xe7, - 0x91, 0x36, 0xc5, 0x43, 0x64, 0x51, 0xa2, 0xa8, 0x96, 0x3c, 0xc3, 0x91, 0xed, 0x19, 0x8f, 0x7c, - 0x8d, 0xc7, 0x6b, 0x69, 0x46, 0x73, 0xd3, 0xbb, 0x36, 0x74, 0x70, 0x64, 0x0d, 0x24, 0x51, 0xdb, - 0x94, 0xec, 0xb1, 0xf7, 0xa1, 0xd1, 0x24, 0x7f, 0x51, 0x9c, 0x69, 0x76, 0x73, 0xd9, 0xcd, 0xf1, - 0xc8, 0x4f, 0x5e, 0x78, 0x0f, 0x18, 0x8b, 0xdd, 0x9c, 0x40, 0x7c, 0x27, 0x36, 0x90, 0xd8, 0x71, - 0x2e, 0x3b, 0x17, 0x82, 0x3c, 0x05, 0x08, 0x9c, 0xf8, 0x29, 0x48, 0xf2, 0x94, 0x87, 0x3c, 0xd8, - 0x8e, 0x81, 0x38, 0x89, 0x93, 0x38, 0xc0, 0x00, 0x31, 0xe0, 0x97, 0xd4, 0x7f, 0xf5, 0x41, 0x52, - 0x6a, 0xca, 0x80, 0xe3, 0x08, 0x20, 0xc4, 0xae, 0xaa, 0xef, 0xeb, 0xbf, 0xeb, 0xaf, 0xbf, 0xaa, - 0xfe, 0xbf, 0x09, 0x3f, 0x3e, 0x0e, 0x37, 0xd7, 0x2c, 0xab, 0x66, 0x90, 0xe9, 0x66, 0xcb, 0x72, - 0xac, 0x72, 0x7b, 0x73, 0xba, 0x4a, 0xec, 0x4a, 0xab, 0xde, 0x74, 0xac, 0xd6, 0x14, 0x93, 0x29, - 0x23, 0xdc, 0x62, 0x4a, 0x5a, 0x4c, 0xae, 0xc0, 0xe8, 0xf9, 0xba, 0x41, 0x16, 0x5c, 0xc3, 0x12, - 0x71, 0x94, 0xb3, 0x10, 0xdb, 0x44, 0x61, 0x2e, 0x72, 0x73, 0xf4, 0x48, 0x7a, 0xe6, 0xd6, 0xa9, - 0x0e, 0xd0, 0x54, 0x10, 0xb1, 0x46, 0xc5, 0x2a, 0x43, 0x4c, 0xbe, 0x13, 0x83, 0xb1, 0x1e, 0x5a, - 0x45, 0x81, 0x98, 0xa9, 0x37, 0x28, 0x63, 0xe4, 0x48, 0x4a, 0x65, 0xdf, 0x95, 0x1c, 0x0c, 0x36, - 0xf5, 0xca, 0x65, 0xbd, 0x46, 0x72, 0x03, 0x4c, 0x2c, 0x2f, 0x95, 0x83, 0x00, 0x55, 0xd2, 0x24, - 0x66, 0x95, 0x98, 0x95, 0xed, 0x5c, 0x14, 0x47, 0x91, 0x52, 0x7d, 0x12, 0xe5, 0x2e, 0x18, 0x6d, - 0xb6, 0xcb, 0x46, 0xbd, 0xa2, 0xf9, 0xcc, 0x00, 0xcd, 0xe2, 0x6a, 0x96, 0x2b, 0x16, 0x3c, 0xe3, - 0x3b, 0x60, 0xe4, 0x11, 0xa2, 0x5f, 0xf6, 0x9b, 0xa6, 0x99, 0x69, 0x86, 0x8a, 0x7d, 0x86, 0xf3, - 0x30, 0xd4, 0x20, 0xb6, 0x8d, 0x03, 0xd0, 0x9c, 0xed, 0x26, 0xc9, 0xc5, 0xd8, 0xd3, 0xdf, 0xdc, - 0xf5, 0xf4, 0x9d, 0x4f, 0x9e, 0x16, 0xa8, 0x75, 0x04, 0x29, 0xb3, 0x90, 0x22, 0x66, 0xbb, 0xc1, - 0x19, 0xe2, 0x3b, 0xf8, 0xaf, 0x80, 0x16, 0x9d, 0x2c, 0x49, 0x0a, 0x13, 0x14, 0x83, 0x36, 0x69, - 0x5d, 0xa9, 0x57, 0x48, 0x2e, 0xc1, 0x08, 0xee, 0xe8, 0x22, 0x28, 0x71, 0x7d, 0x27, 0x87, 0xc4, - 0xe1, 0xa3, 0xa4, 0xc8, 0x55, 0x87, 0x98, 0x76, 0xdd, 0x32, 0x73, 0x83, 0x8c, 0xe4, 0xb6, 0x1e, - 0xb3, 0x48, 0x8c, 0x6a, 0x27, 0x85, 0x87, 0x53, 0x4e, 0xc3, 0xa0, 0xd5, 0x74, 0xf0, 0x9b, 0x9d, - 0x4b, 0xe2, 0xfc, 0xa4, 0x67, 0x6e, 0xec, 0x19, 0x08, 0x45, 0x6e, 0xa3, 0x4a, 0x63, 0x65, 0x09, - 0xb2, 0xb6, 0xd5, 0x6e, 0x55, 0x88, 0x56, 0xb1, 0xaa, 0x44, 0xab, 0x9b, 0x9b, 0x56, 0x2e, 0xc5, - 0x08, 0x0e, 0x75, 0x3f, 0x08, 0x33, 0x9c, 0x47, 0xbb, 0x25, 0x34, 0x53, 0x33, 0x76, 0xe0, 0x5a, - 0xd9, 0x07, 0x09, 0x7b, 0xdb, 0x74, 0xf4, 0xab, 0xb9, 0x21, 0x16, 0x21, 0xe2, 0x6a, 0xf2, 0xaf, - 0x71, 0x18, 0xe9, 0x27, 0xc4, 0xee, 0x81, 0xf8, 0x26, 0x7d, 0x4a, 0x0c, 0xb0, 0x3d, 0xf8, 0x80, - 0x63, 0x82, 0x4e, 0x4c, 0x7c, 0x44, 0x27, 0xce, 0x42, 0xda, 0x24, 0xb6, 0x43, 0xaa, 0x3c, 0x22, - 0xa2, 0x7d, 0xc6, 0x14, 0x70, 0x50, 0x77, 0x48, 0xc5, 0x3e, 0x52, 0x48, 0x5d, 0x84, 0x11, 0x77, - 0x48, 0x5a, 0x4b, 0x37, 0x6b, 0x32, 0x36, 0xa7, 0xc3, 0x46, 0x32, 0x55, 0x90, 0x38, 0x95, 0xc2, - 0xd4, 0x0c, 0x09, 0x5c, 0x2b, 0x0b, 0x00, 0x96, 0x49, 0xac, 0x4d, 0x5c, 0x5e, 0x15, 0x03, 0xe3, - 0xa4, 0xb7, 0x97, 0x8a, 0xd4, 0xa4, 0xcb, 0x4b, 0x16, 0x97, 0x56, 0x0c, 0xe5, 0x9c, 0x17, 0x6a, - 0x83, 0x3b, 0x44, 0xca, 0x0a, 0x5f, 0x64, 0x5d, 0xd1, 0xb6, 0x01, 0x99, 0x16, 0xa1, 0x71, 0x8f, - 0x2e, 0xe6, 0x4f, 0x96, 0x62, 0x83, 0x98, 0x0a, 0x7d, 0x32, 0x55, 0xc0, 0xf8, 0x83, 0x0d, 0xb7, - 0xfc, 0x97, 0xca, 0x2d, 0xe0, 0x0a, 0x34, 0x16, 0x56, 0xc0, 0xb2, 0xd0, 0x90, 0x14, 0xae, 0xa2, - 0x6c, 0xe2, 0x2c, 0x64, 0x82, 0xee, 0x51, 0xc6, 0x21, 0x6e, 0x3b, 0x7a, 0xcb, 0x61, 0x51, 0x18, - 0x57, 0xf9, 0x85, 0x92, 0x85, 0x28, 0x26, 0x19, 0x96, 0xe5, 0xe2, 0x2a, 0xfd, 0x3a, 0x71, 0x06, - 0x86, 0x03, 0xb7, 0xef, 0x17, 0x38, 0xf9, 0x64, 0x02, 0xc6, 0x7b, 0xc5, 0x5c, 0xcf, 0xf0, 0xc7, - 0xe5, 0x83, 0x11, 0x50, 0x26, 0x2d, 0x8c, 0x3b, 0xca, 0x20, 0xae, 0x30, 0xa2, 0xe2, 0x86, 0x5e, - 0x26, 0x06, 0x46, 0x53, 0xe4, 0x48, 0x66, 0xe6, 0xae, 0xbe, 0xa2, 0x7a, 0x6a, 0x99, 0x42, 0x54, - 0x8e, 0x54, 0xee, 0x85, 0x98, 0x48, 0x71, 0x94, 0xe1, 0x68, 0x7f, 0x0c, 0x34, 0x16, 0x55, 0x86, - 0x53, 0x6e, 0x80, 0x14, 0xfd, 0xcf, 0x7d, 0x9b, 0x60, 0x63, 0x4e, 0x52, 0x01, 0xf5, 0xab, 0x32, - 0x01, 0x49, 0x16, 0x66, 0x55, 0x22, 0x4b, 0x83, 0x7b, 0x4d, 0x27, 0xa6, 0x4a, 0x36, 0xf5, 0xb6, - 0xe1, 0x68, 0x57, 0x74, 0xa3, 0x4d, 0x58, 0xc0, 0xe0, 0xc4, 0x08, 0xe1, 0x03, 0x54, 0xa6, 0x1c, - 0x82, 0x34, 0x8f, 0xca, 0x3a, 0x62, 0xae, 0xb2, 0xec, 0x13, 0x57, 0x79, 0xa0, 0x2e, 0x51, 0x09, - 0xbd, 0xfd, 0x25, 0x1b, 0xd7, 0x82, 0x98, 0x5a, 0x76, 0x0b, 0x2a, 0x60, 0xb7, 0x3f, 0xd3, 0x99, - 0xf8, 0x6e, 0xea, 0xfd, 0x78, 0x9d, 0xb1, 0x38, 0xf9, 0xfd, 0x01, 0x88, 0xb1, 0xf5, 0x36, 0x02, - 0xe9, 0xf5, 0x87, 0xd6, 0x0a, 0xda, 0x42, 0x71, 0x63, 0x6e, 0xb9, 0x90, 0x8d, 0x28, 0x19, 0x00, - 0x26, 0x38, 0xbf, 0x5c, 0x9c, 0x5d, 0xcf, 0x0e, 0xb8, 0xd7, 0x4b, 0xab, 0xeb, 0xa7, 0x4f, 0x66, - 0xa3, 0x2e, 0x60, 0x83, 0x0b, 0x62, 0x7e, 0x83, 0x13, 0x33, 0xd9, 0x38, 0x46, 0xc2, 0x10, 0x27, - 0x58, 0xba, 0x58, 0x58, 0x40, 0x8b, 0x44, 0x50, 0x82, 0x36, 0x83, 0xca, 0x30, 0xa4, 0x98, 0x64, - 0xae, 0x58, 0x5c, 0xce, 0x26, 0x5d, 0xce, 0xd2, 0xba, 0xba, 0xb4, 0xba, 0x98, 0x4d, 0xb9, 0x9c, - 0x8b, 0x6a, 0x71, 0x63, 0x2d, 0x0b, 0x2e, 0xc3, 0x4a, 0xa1, 0x54, 0x9a, 0x5d, 0x2c, 0x64, 0xd3, - 0xae, 0xc5, 0xdc, 0x43, 0xeb, 0x85, 0x52, 0x76, 0x28, 0x30, 0x2c, 0xbc, 0xc5, 0xb0, 0x7b, 0x8b, - 0xc2, 0xea, 0xc6, 0x4a, 0x36, 0xa3, 0x8c, 0xc2, 0x30, 0xbf, 0x85, 0x1c, 0xc4, 0x48, 0x87, 0x08, - 0x47, 0x9a, 0xf5, 0x06, 0xc2, 0x59, 0x46, 0x03, 0x02, 0xb4, 0x50, 0x26, 0xe7, 0x21, 0xce, 0xa2, - 0x0b, 0xa3, 0x38, 0xb3, 0x3c, 0x3b, 0x57, 0x58, 0xd6, 0x8a, 0x6b, 0xeb, 0x4b, 0xc5, 0xd5, 0xd9, - 0x65, 0xf4, 0x9d, 0x2b, 0x53, 0x0b, 0xff, 0xba, 0xb1, 0xa4, 0x16, 0x16, 0xd0, 0x7f, 0x3e, 0xd9, - 0x5a, 0x61, 0x76, 0x1d, 0x65, 0xd1, 0xc9, 0xa3, 0x30, 0xde, 0x2b, 0xcf, 0xf4, 0x5a, 0x19, 0x93, - 0x2f, 0x46, 0x60, 0xac, 0x47, 0xca, 0xec, 0xb9, 0x8a, 0xee, 0x83, 0x38, 0x8f, 0x34, 0x5e, 0x44, - 0xee, 0xec, 0x99, 0x7b, 0x59, 0xdc, 0x75, 0x15, 0x12, 0x86, 0xf3, 0x17, 0xd2, 0xe8, 0x0e, 0x85, - 0x94, 0x52, 0x74, 0x85, 0xd3, 0xe3, 0x11, 0xc8, 0xed, 0xc4, 0x1d, 0xb2, 0xde, 0x07, 0x02, 0xeb, - 0xfd, 0x9e, 0xce, 0x01, 0x1c, 0xde, 0xf9, 0x19, 0xba, 0x46, 0xf1, 0x52, 0x04, 0xf6, 0xf5, 0xee, - 0x37, 0x7a, 0x8e, 0xe1, 0x5e, 0x48, 0x34, 0x88, 0xb3, 0x65, 0xc9, 0x9a, 0x7b, 0x7b, 0x8f, 0x4c, - 0x4e, 0xd5, 0x9d, 0xbe, 0x12, 0x28, 0x7f, 0x29, 0x88, 0xee, 0xd4, 0x34, 0xf0, 0xd1, 0x74, 0x8d, - 0xf4, 0x89, 0x01, 0xb8, 0xbe, 0x27, 0x79, 0xcf, 0x81, 0xde, 0x04, 0x50, 0x37, 0x9b, 0x6d, 0x87, - 0xd7, 0x55, 0x9e, 0x66, 0x52, 0x4c, 0xc2, 0x96, 0x30, 0x4d, 0x21, 0x6d, 0xc7, 0xd5, 0x47, 0x99, - 0x1e, 0xb8, 0x88, 0x19, 0x9c, 0xf5, 0x06, 0x1a, 0x63, 0x03, 0x3d, 0xb8, 0xc3, 0x93, 0x76, 0x95, - 0xac, 0x63, 0x90, 0xad, 0x18, 0x75, 0x62, 0x3a, 0x9a, 0xed, 0xb4, 0x88, 0xde, 0xa8, 0x9b, 0x35, - 0x96, 0x47, 0x93, 0xf9, 0xf8, 0xa6, 0x6e, 0xd8, 0x44, 0x1d, 0xe1, 0xea, 0x92, 0xd4, 0x52, 0x04, - 0x2b, 0x16, 0x2d, 0x1f, 0x22, 0x11, 0x40, 0x70, 0xb5, 0x8b, 0x98, 0xfc, 0xe5, 0x20, 0xa4, 0x7d, - 0xdd, 0x99, 0x72, 0x18, 0x86, 0x2e, 0xe9, 0x57, 0x74, 0x4d, 0x76, 0xdc, 0xdc, 0x13, 0x69, 0x2a, - 0x5b, 0x13, 0x5d, 0xf7, 0x31, 0x18, 0x67, 0x26, 0xf8, 0x8c, 0x78, 0xa3, 0x8a, 0xa1, 0xdb, 0x36, - 0x73, 0x5a, 0x92, 0x99, 0x2a, 0x54, 0x57, 0xa4, 0xaa, 0x79, 0xa9, 0x51, 0x4e, 0xc1, 0x18, 0x43, - 0x34, 0x30, 0xf1, 0xd6, 0x9b, 0x06, 0xd1, 0xe8, 0x1e, 0xc0, 0x66, 0xf9, 0xd4, 0x1d, 0xd9, 0x28, - 0xb5, 0x58, 0x11, 0x06, 0x74, 0x44, 0xb6, 0xb2, 0x08, 0x37, 0x31, 0x58, 0x8d, 0x98, 0xa4, 0xa5, - 0x3b, 0x44, 0x23, 0xff, 0xde, 0x46, 0x5b, 0x4d, 0x37, 0xab, 0xda, 0x96, 0x6e, 0x6f, 0xe5, 0xc6, - 0xfd, 0x04, 0x07, 0xa8, 0xed, 0xa2, 0x30, 0x2d, 0x30, 0xcb, 0x59, 0xb3, 0x7a, 0x3f, 0xda, 0x29, - 0x79, 0xd8, 0xc7, 0x88, 0xd0, 0x29, 0xf8, 0xcc, 0x5a, 0x65, 0x8b, 0x54, 0x2e, 0x6b, 0x6d, 0x67, - 0xf3, 0x6c, 0xee, 0x06, 0x3f, 0x03, 0x1b, 0x64, 0x89, 0xd9, 0xcc, 0x53, 0x93, 0x0d, 0xb4, 0x50, - 0x4a, 0x30, 0x44, 0xe7, 0xa3, 0x51, 0x7f, 0x14, 0x87, 0x6d, 0xb5, 0x58, 0x8d, 0xc8, 0xf4, 0x58, - 0xdc, 0x3e, 0x27, 0x4e, 0x15, 0x05, 0x60, 0x05, 0xfb, 0xd3, 0x7c, 0xbc, 0xb4, 0x56, 0x28, 0x2c, - 0xa8, 0x69, 0xc9, 0x72, 0xde, 0x6a, 0xd1, 0x98, 0xaa, 0x59, 0xae, 0x8f, 0xd3, 0x3c, 0xa6, 0x6a, - 0x96, 0xf4, 0x30, 0xfa, 0xab, 0x52, 0xe1, 0x8f, 0x8d, 0x7b, 0x17, 0xd1, 0xac, 0xdb, 0xb9, 0x6c, - 0xc0, 0x5f, 0x95, 0xca, 0x22, 0x37, 0x10, 0x61, 0x6e, 0xe3, 0x92, 0xb8, 0xde, 0xf3, 0x97, 0x1f, - 0x38, 0xda, 0xf5, 0x94, 0x9d, 0x50, 0xbc, 0x63, 0x73, 0xbb, 0x1b, 0xa8, 0x04, 0xee, 0xd8, 0xdc, - 0xee, 0x84, 0xdd, 0xc6, 0x36, 0x60, 0x2d, 0x52, 0x41, 0x97, 0x57, 0x73, 0xfb, 0xfd, 0xd6, 0x3e, - 0x85, 0x32, 0x8d, 0x81, 0x5c, 0xd1, 0x88, 0xa9, 0x97, 0x71, 0xee, 0xf5, 0x16, 0x7e, 0xb1, 0x73, - 0x87, 0xfc, 0xc6, 0x99, 0x4a, 0xa5, 0xc0, 0xb4, 0xb3, 0x4c, 0xa9, 0x1c, 0x85, 0x51, 0xab, 0x7c, - 0xa9, 0xc2, 0x83, 0x4b, 0x43, 0x9e, 0xcd, 0xfa, 0xd5, 0xdc, 0xad, 0xcc, 0x4d, 0x23, 0x54, 0xc1, - 0x42, 0x6b, 0x8d, 0x89, 0x95, 0x3b, 0x91, 0xdc, 0xde, 0xd2, 0x5b, 0x4d, 0x56, 0xa4, 0x6d, 0x74, - 0x2a, 0xc9, 0xdd, 0xc6, 0x4d, 0xb9, 0x7c, 0x55, 0x8a, 0x95, 0x02, 0x1c, 0xa2, 0x0f, 0x6f, 0xea, - 0xa6, 0xa5, 0xb5, 0x6d, 0xa2, 0x79, 0x43, 0x74, 0xe7, 0xe2, 0x76, 0x3a, 0x2c, 0xf5, 0x46, 0x69, - 0xb6, 0x61, 0x63, 0x32, 0x93, 0x46, 0x72, 0x7a, 0x2e, 0xc2, 0x78, 0xdb, 0xac, 0x9b, 0x18, 0xe2, - 0xa8, 0xa1, 0x60, 0xbe, 0x60, 0x73, 0xbf, 0x1d, 0xdc, 0xa1, 0xe9, 0xde, 0xf0, 0x5b, 0xf3, 0x20, - 0x51, 0xc7, 0xda, 0xdd, 0xc2, 0xc9, 0x3c, 0x0c, 0xf9, 0x63, 0x47, 0x49, 0x01, 0x8f, 0x1e, 0xac, - 0x6e, 0x58, 0x51, 0xe7, 0x8b, 0x0b, 0xb4, 0x16, 0x3e, 0x5c, 0xc0, 0xc2, 0x86, 0x35, 0x79, 0x79, - 0x69, 0xbd, 0xa0, 0xa9, 0x1b, 0xab, 0xeb, 0x4b, 0x2b, 0x85, 0x6c, 0xf4, 0x68, 0x2a, 0xf9, 0xee, - 0x60, 0xf6, 0x31, 0xfc, 0x1b, 0x98, 0x7c, 0x7d, 0x00, 0x32, 0xc1, 0x3e, 0x58, 0xf9, 0x67, 0xd8, - 0x2f, 0x37, 0xad, 0x36, 0x71, 0xb4, 0x47, 0xea, 0x2d, 0x16, 0xce, 0x0d, 0x9d, 0x77, 0x92, 0xee, - 0x4c, 0x8c, 0x0b, 0x2b, 0xdc, 0xde, 0x3f, 0x88, 0x36, 0xe7, 0x99, 0x89, 0xb2, 0x0c, 0x87, 0xd0, - 0x65, 0xd8, 0x6b, 0x9a, 0x55, 0xbd, 0x55, 0xd5, 0xbc, 0xe3, 0x02, 0x4d, 0xaf, 0x60, 0x1c, 0xd8, - 0x16, 0xaf, 0x24, 0x2e, 0xcb, 0x8d, 0xa6, 0x55, 0x12, 0xc6, 0x5e, 0x8a, 0x9d, 0x15, 0xa6, 0x1d, - 0x51, 0x13, 0xdd, 0x29, 0x6a, 0xb0, 0xf7, 0x6a, 0xe8, 0x4d, 0x0c, 0x1b, 0xa7, 0xb5, 0xcd, 0xba, - 0xb7, 0xa4, 0x9a, 0x44, 0x41, 0x81, 0x5e, 0x7f, 0x7c, 0x73, 0xe0, 0xf7, 0xe3, 0xaf, 0xa3, 0x30, - 0xe4, 0xef, 0xe0, 0x68, 0x43, 0x5c, 0x61, 0x69, 0x3e, 0xc2, 0xb2, 0xc0, 0x2d, 0xbb, 0xf6, 0x7b, - 0x53, 0xf3, 0x34, 0xff, 0xe7, 0x13, 0xbc, 0xaf, 0x52, 0x39, 0x92, 0xd6, 0x5e, 0x1a, 0x6b, 0x84, - 0x77, 0xeb, 0x49, 0x55, 0x5c, 0x61, 0xb2, 0x4b, 0x5c, 0xb2, 0x19, 0x77, 0x82, 0x71, 0xdf, 0xba, - 0x3b, 0xf7, 0x85, 0x12, 0x23, 0x4f, 0x5d, 0x28, 0x69, 0xab, 0x45, 0x75, 0x65, 0x76, 0x59, 0x15, - 0x70, 0xe5, 0x00, 0xc4, 0x0c, 0xfd, 0xd1, 0xed, 0x60, 0xa5, 0x60, 0xa2, 0x7e, 0x1d, 0x8f, 0x0c, - 0xf4, 0xc8, 0x23, 0x98, 0x9f, 0x99, 0xe8, 0x63, 0x0c, 0xfd, 0x69, 0x88, 0x33, 0x7f, 0x29, 0x00, - 0xc2, 0x63, 0xd9, 0xeb, 0x94, 0x24, 0xc4, 0xe6, 0x8b, 0x2a, 0x0d, 0x7f, 0x8c, 0x77, 0x2e, 0xd5, - 0xd6, 0x96, 0x0a, 0xf3, 0xb8, 0x02, 0x26, 0x4f, 0x41, 0x82, 0x3b, 0x81, 0x2e, 0x0d, 0xd7, 0x0d, - 0x08, 0xe2, 0x97, 0x82, 0x23, 0x22, 0xb5, 0x1b, 0x2b, 0x73, 0x05, 0x35, 0x3b, 0xe0, 0x9f, 0xde, - 0x1f, 0x46, 0x20, 0xed, 0x6b, 0xa8, 0x68, 0x29, 0xd7, 0x0d, 0xc3, 0x7a, 0x44, 0xd3, 0x8d, 0x3a, - 0x66, 0x28, 0x3e, 0x3f, 0xc0, 0x44, 0xb3, 0x54, 0xd2, 0xaf, 0xff, 0xfe, 0x2e, 0xb1, 0xf9, 0x7c, - 0x04, 0xb2, 0x9d, 0xcd, 0x58, 0xc7, 0x00, 0x23, 0x9f, 0xe8, 0x00, 0x9f, 0x8d, 0x40, 0x26, 0xd8, - 0x81, 0x75, 0x0c, 0xef, 0xf0, 0x27, 0x3a, 0xbc, 0x67, 0x22, 0x30, 0x1c, 0xe8, 0xbb, 0xfe, 0xa1, - 0x46, 0xf7, 0x74, 0x14, 0xc6, 0x7a, 0xe0, 0x30, 0x01, 0xf1, 0x06, 0x95, 0xf7, 0xcc, 0x77, 0xf7, - 0x73, 0xaf, 0x29, 0x5a, 0xff, 0xd6, 0xf4, 0x96, 0x23, 0xfa, 0x59, 0xac, 0x97, 0xf5, 0x2a, 0x26, - 0xd5, 0xfa, 0x66, 0x1d, 0xdb, 0x37, 0xbe, 0x63, 0xe1, 0x5d, 0xeb, 0x88, 0x27, 0xe7, 0xdb, 0xe3, - 0x7f, 0x02, 0xa5, 0x69, 0xd9, 0x75, 0xa7, 0x7e, 0x85, 0x1e, 0xcf, 0xc9, 0x8d, 0x34, 0xed, 0x62, - 0x63, 0x6a, 0x56, 0x6a, 0x96, 0x4c, 0xc7, 0xb5, 0x36, 0x49, 0x4d, 0xef, 0xb0, 0xa6, 0x69, 0x28, - 0xaa, 0x66, 0xa5, 0xc6, 0xb5, 0xc6, 0x46, 0xb3, 0x6a, 0xb5, 0x69, 0x43, 0xc0, 0xed, 0x68, 0xd6, - 0x8b, 0xa8, 0x69, 0x2e, 0x73, 0x4d, 0x44, 0xc7, 0xe6, 0xed, 0xe0, 0x87, 0xd4, 0x34, 0x97, 0x71, - 0x93, 0x3b, 0x60, 0x44, 0xaf, 0xd5, 0x5a, 0x94, 0x5c, 0x12, 0xf1, 0x36, 0x34, 0xe3, 0x8a, 0x99, - 0xe1, 0xc4, 0x05, 0x48, 0x4a, 0x3f, 0xd0, 0xc2, 0x42, 0x3d, 0x81, 0x35, 0x9f, 0x9d, 0xa3, 0x0c, - 0xd0, 0x4d, 0xbd, 0x29, 0x95, 0x78, 0xd3, 0xba, 0xad, 0x79, 0x07, 0x7a, 0x03, 0xa8, 0x4f, 0xaa, - 0xe9, 0xba, 0xed, 0x9e, 0xe0, 0x4c, 0xbe, 0x84, 0xe5, 0x35, 0x78, 0x20, 0xa9, 0x2c, 0x40, 0xd2, - 0xb0, 0x30, 0x3e, 0x28, 0x82, 0x9f, 0x86, 0x1f, 0x09, 0x39, 0xc3, 0x9c, 0x5a, 0x16, 0xf6, 0xaa, - 0x8b, 0x9c, 0xf8, 0x59, 0x04, 0x92, 0x52, 0x8c, 0x85, 0x22, 0xd6, 0xd4, 0x9d, 0x2d, 0x46, 0x17, - 0x9f, 0x1b, 0xc8, 0x46, 0x54, 0x76, 0x4d, 0xe5, 0xd8, 0xcd, 0x98, 0x2c, 0x04, 0x84, 0x9c, 0x5e, - 0xd3, 0x79, 0x35, 0x88, 0x5e, 0x65, 0x0d, 0xae, 0xd5, 0x68, 0xe0, 0x4c, 0xda, 0x72, 0x5e, 0x85, - 0x7c, 0x5e, 0x88, 0xe9, 0xb9, 0xb8, 0xd3, 0xd2, 0xeb, 0x46, 0xc0, 0x36, 0xc6, 0x6c, 0xb3, 0x52, - 0xe1, 0x1a, 0xe7, 0xe1, 0x80, 0xe4, 0xad, 0x12, 0x47, 0xc7, 0xe6, 0xb9, 0xea, 0x81, 0x12, 0xec, - 0xb4, 0x6b, 0xbf, 0x30, 0x58, 0x10, 0x7a, 0x89, 0x9d, 0xbb, 0x88, 0x8d, 0xac, 0xd5, 0xe8, 0xf4, - 0xc4, 0x5c, 0xb6, 0x63, 0xdf, 0x65, 0xdf, 0x1f, 0x79, 0x18, 0xbc, 0xa6, 0xe2, 0xc5, 0x81, 0xe8, - 0xe2, 0xda, 0xdc, 0x2b, 0x03, 0x13, 0x8b, 0x1c, 0xb7, 0x26, 0x3d, 0xa8, 0x92, 0x4d, 0x83, 0x54, - 0xa8, 0x77, 0xe0, 0x85, 0x5b, 0xe0, 0xee, 0x5a, 0xdd, 0xd9, 0x6a, 0x97, 0xa7, 0xf0, 0x0e, 0xd3, - 0x35, 0xab, 0x66, 0x79, 0xaf, 0x33, 0xe8, 0x15, 0xbb, 0x60, 0xdf, 0xc4, 0x2b, 0x8d, 0x94, 0x2b, - 0x9d, 0x08, 0x7d, 0xff, 0x91, 0x5f, 0x85, 0x31, 0x61, 0xac, 0xb1, 0x33, 0x55, 0xde, 0x82, 0x2a, - 0xbb, 0x6e, 0xc8, 0x73, 0xaf, 0xbd, 0xc3, 0x4a, 0x82, 0x3a, 0x2a, 0xa0, 0x54, 0xc7, 0x9b, 0xd4, - 0xbc, 0x0a, 0xd7, 0x07, 0xf8, 0x78, 0x0c, 0xe3, 0x96, 0x7b, 0x77, 0xc6, 0xd7, 0x05, 0xe3, 0x98, - 0x8f, 0xb1, 0x24, 0xa0, 0xf9, 0x79, 0x18, 0xde, 0x0b, 0xd7, 0x4f, 0x04, 0xd7, 0x10, 0xf1, 0x93, - 0x2c, 0xc2, 0x08, 0x23, 0xa9, 0xb4, 0x6d, 0xc7, 0x6a, 0xb0, 0x04, 0xb1, 0x3b, 0xcd, 0x4f, 0xdf, - 0xe1, 0x41, 0x95, 0xa1, 0xb0, 0x79, 0x17, 0x95, 0x7f, 0x00, 0xc6, 0xa9, 0x84, 0xad, 0x41, 0x3f, - 0x5b, 0xf8, 0x11, 0x42, 0xee, 0x17, 0x8f, 0xf3, 0xd8, 0x1b, 0x73, 0x09, 0x7c, 0xbc, 0xbe, 0x99, - 0xa8, 0x11, 0x07, 0x73, 0x1b, 0xee, 0xff, 0x0c, 0x43, 0xd9, 0xf5, 0x1d, 0x43, 0xee, 0xa9, 0xf7, - 0x82, 0x33, 0xb1, 0xc8, 0x91, 0xb3, 0x86, 0x91, 0xdf, 0x80, 0xfd, 0x3d, 0x66, 0xb6, 0x0f, 0xce, - 0xa7, 0x05, 0xe7, 0x78, 0xd7, 0xec, 0x52, 0xda, 0x35, 0x90, 0x72, 0x77, 0x3e, 0xfa, 0xe0, 0x7c, - 0x46, 0x70, 0x2a, 0x02, 0x2b, 0xa7, 0x85, 0x32, 0x5e, 0x80, 0x51, 0xdc, 0xa9, 0x97, 0x2d, 0x5b, - 0xec, 0x7b, 0xfb, 0xa0, 0x7b, 0x56, 0xd0, 0x8d, 0x08, 0x20, 0xdb, 0x05, 0x53, 0xae, 0x73, 0x90, - 0xdc, 0xc4, 0x0d, 0x50, 0x1f, 0x14, 0xcf, 0x09, 0x8a, 0x41, 0x6a, 0x4f, 0xa1, 0xb3, 0x30, 0x54, - 0xb3, 0x44, 0x1a, 0x0e, 0x87, 0x3f, 0x2f, 0xe0, 0x69, 0x89, 0x11, 0x14, 0x4d, 0xab, 0xd9, 0x36, - 0x68, 0x8e, 0x0e, 0xa7, 0xf8, 0xa2, 0xa4, 0x90, 0x18, 0x41, 0xb1, 0x07, 0xb7, 0x7e, 0x49, 0x52, - 0xd8, 0x3e, 0x7f, 0xde, 0x47, 0xcf, 0x7a, 0x8d, 0x6d, 0xcb, 0xec, 0x67, 0x10, 0x2f, 0x08, 0x06, - 0x10, 0x10, 0x4a, 0x70, 0x0f, 0xa4, 0xfa, 0x9d, 0x88, 0x2f, 0x0b, 0x78, 0x92, 0xc8, 0x19, 0xc0, - 0x75, 0x26, 0x93, 0x0c, 0x7d, 0xb7, 0x12, 0x4e, 0xf1, 0x15, 0x41, 0x91, 0xf1, 0xc1, 0xc4, 0x63, - 0x38, 0xc4, 0x76, 0x70, 0xab, 0xde, 0x07, 0xc9, 0x4b, 0xf2, 0x31, 0x04, 0x44, 0xb8, 0xb2, 0x4c, - 0xcc, 0xca, 0x56, 0x7f, 0x0c, 0x2f, 0x4b, 0x57, 0x4a, 0x0c, 0xa5, 0xc0, 0xcc, 0xd3, 0xd0, 0x5b, - 0xb8, 0xb9, 0x36, 0xfa, 0x9a, 0x8e, 0xaf, 0x0a, 0x8e, 0x21, 0x17, 0x24, 0x3c, 0xd2, 0x36, 0xf7, - 0x42, 0xf3, 0x8a, 0xf4, 0x88, 0x0f, 0x26, 0x96, 0x1e, 0xee, 0x4c, 0x69, 0x27, 0xb1, 0x17, 0xb6, - 0xaf, 0xc9, 0xa5, 0xc7, 0xb1, 0x2b, 0x7e, 0x46, 0x9c, 0x69, 0x1b, 0xb7, 0xe0, 0xfd, 0xd0, 0x7c, - 0x5d, 0xce, 0x34, 0x03, 0x50, 0xf0, 0x43, 0x70, 0xa0, 0x67, 0xaa, 0xef, 0x83, 0xec, 0x1b, 0x82, - 0x6c, 0x5f, 0x8f, 0x74, 0x2f, 0x52, 0xc2, 0x5e, 0x29, 0xbf, 0x29, 0x53, 0x02, 0xe9, 0xe0, 0x5a, - 0xa3, 0x6d, 0xac, 0xad, 0x6f, 0xee, 0xcd, 0x6b, 0xdf, 0x92, 0x5e, 0xe3, 0xd8, 0x80, 0xd7, 0xd6, - 0x61, 0x9f, 0x60, 0xdc, 0xdb, 0xbc, 0xbe, 0x2a, 0x13, 0x2b, 0x47, 0x6f, 0x04, 0x67, 0xf7, 0xdf, - 0x60, 0xc2, 0x75, 0xa7, 0xec, 0xc0, 0x6c, 0x8d, 0x1e, 0x0c, 0x84, 0x33, 0xbf, 0x26, 0x98, 0x65, - 0xc6, 0x77, 0x5b, 0x38, 0x7b, 0x45, 0x6f, 0x52, 0xf2, 0x8b, 0x90, 0x93, 0xe4, 0x6d, 0x13, 0x1b, - 0x7c, 0xab, 0x66, 0xe2, 0x34, 0x56, 0xfb, 0xa0, 0xfe, 0x76, 0xc7, 0x54, 0x6d, 0xf8, 0xe0, 0x94, - 0x79, 0x09, 0xb2, 0x6e, 0xbf, 0xa1, 0xd5, 0x1b, 0x4d, 0x0b, 0x5b, 0xcb, 0xdd, 0x19, 0xbf, 0x23, - 0x67, 0xca, 0xc5, 0x2d, 0x31, 0x58, 0xbe, 0x00, 0x19, 0x76, 0xd9, 0x6f, 0x48, 0x7e, 0x57, 0x10, - 0x0d, 0x7b, 0x28, 0x91, 0x38, 0xb0, 0x53, 0xc2, 0x9e, 0xb7, 0x9f, 0xfc, 0xf7, 0x3d, 0x99, 0x38, - 0x04, 0x84, 0x47, 0xdf, 0x48, 0x47, 0x25, 0x56, 0xc2, 0x5e, 0xbf, 0xe6, 0xfe, 0xe3, 0x9a, 0x58, - 0xb3, 0xc1, 0x42, 0x9c, 0x5f, 0xa6, 0xee, 0x09, 0x96, 0xcb, 0x70, 0xb2, 0xc7, 0xaf, 0xb9, 0x1e, - 0x0a, 0x54, 0xcb, 0xfc, 0x79, 0x18, 0x0e, 0x94, 0xca, 0x70, 0xaa, 0xff, 0x14, 0x54, 0x43, 0xfe, - 0x4a, 0x99, 0x3f, 0x05, 0x31, 0x5a, 0xf6, 0xc2, 0xe1, 0xff, 0x25, 0xe0, 0xcc, 0x3c, 0xff, 0x2f, - 0x90, 0x94, 0xe5, 0x2e, 0x1c, 0xfa, 0xdf, 0x02, 0xea, 0x42, 0x28, 0x5c, 0x96, 0xba, 0x70, 0xf8, - 0xff, 0x48, 0xb8, 0x84, 0x50, 0x78, 0xff, 0x2e, 0xfc, 0xd1, 0xff, 0xc6, 0x44, 0xba, 0x92, 0xbe, - 0xa3, 0xef, 0x7c, 0x78, 0x8d, 0x0b, 0x47, 0x3f, 0x21, 0x6e, 0x2e, 0x11, 0xf9, 0x33, 0x10, 0xef, - 0xd3, 0xe1, 0xff, 0x27, 0xa0, 0xdc, 0x1e, 0x2b, 0x48, 0xda, 0x57, 0xd7, 0xc2, 0xe1, 0xff, 0x2f, - 0xe0, 0x7e, 0x14, 0x1d, 0xba, 0xa8, 0x6b, 0xe1, 0x04, 0x9f, 0x92, 0x43, 0x17, 0x08, 0xea, 0x36, - 0x59, 0xd2, 0xc2, 0xd1, 0x9f, 0x96, 0x5e, 0x97, 0x10, 0x5c, 0x4d, 0x29, 0x37, 0x4d, 0x85, 0xe3, - 0x3f, 0x23, 0xf0, 0x1e, 0x86, 0x7a, 0xc0, 0x97, 0x26, 0xc3, 0x29, 0x3e, 0x2b, 0x3d, 0xe0, 0x43, - 0xd1, 0x65, 0xd4, 0x59, 0xfa, 0xc2, 0x99, 0x3e, 0x27, 0x97, 0x51, 0x47, 0xe5, 0xa3, 0xb3, 0xc9, - 0xb2, 0x45, 0x38, 0xc5, 0xe7, 0xe5, 0x6c, 0x32, 0x7b, 0x3a, 0x8c, 0xce, 0x5a, 0x12, 0xce, 0xf1, - 0x05, 0x39, 0x8c, 0x8e, 0x52, 0x82, 0x95, 0x49, 0xe9, 0xae, 0x23, 0xe1, 0x7c, 0x4f, 0x0a, 0xbe, - 0xd1, 0xae, 0x32, 0x92, 0x7f, 0x10, 0xf6, 0xf5, 0xae, 0x21, 0xe1, 0xac, 0x4f, 0x5d, 0xeb, 0xe8, - 0xfa, 0xfd, 0x25, 0x04, 0x4b, 0xde, 0x78, 0xaf, 0xfa, 0x11, 0x4e, 0xfb, 0xf4, 0xb5, 0xe0, 0xc6, - 0xce, 0x5f, 0x3e, 0xb0, 0x43, 0x03, 0x2f, 0x75, 0x87, 0x73, 0x3d, 0x2b, 0xb8, 0x7c, 0x20, 0xba, - 0x34, 0x44, 0xe6, 0x0e, 0xc7, 0x3f, 0x27, 0x97, 0x86, 0x40, 0x20, 0x38, 0x69, 0xb6, 0x0d, 0x83, - 0x06, 0x87, 0xb2, 0xfb, 0x4f, 0x1a, 0x72, 0xbf, 0xfb, 0x50, 0x2c, 0x0c, 0x09, 0xc0, 0x1c, 0x1a, - 0x27, 0x8d, 0x32, 0xfa, 0x20, 0x04, 0xf9, 0xfb, 0x0f, 0x65, 0x42, 0xa0, 0xd6, 0xb8, 0x9e, 0x80, - 0x6f, 0x1a, 0xd9, 0x19, 0x76, 0x08, 0xf6, 0x0f, 0x1f, 0x8a, 0xd7, 0xac, 0x1e, 0xc4, 0x23, 0xe0, - 0x2f, 0x6d, 0x77, 0x27, 0x78, 0x2f, 0x48, 0xc0, 0x36, 0x9a, 0xe7, 0x60, 0x90, 0xfe, 0xb2, 0xc3, - 0xd1, 0x6b, 0x61, 0xe8, 0x3f, 0x0a, 0xb4, 0xb4, 0xa7, 0x0e, 0x6b, 0x58, 0x2d, 0x82, 0x5f, 0xed, - 0x30, 0xec, 0x9f, 0x04, 0xd6, 0x05, 0x50, 0x70, 0x45, 0xb7, 0x9d, 0x7e, 0x9e, 0xfb, 0xcf, 0x12, - 0x2c, 0x01, 0x74, 0xd0, 0xf4, 0xfb, 0x65, 0xb2, 0x1d, 0x86, 0x7d, 0x5f, 0x0e, 0x5a, 0xd8, 0x63, - 0x02, 0x4c, 0xd1, 0xaf, 0xfc, 0xa7, 0x07, 0x21, 0xe0, 0xbf, 0x08, 0xb0, 0x87, 0x98, 0x3b, 0xdc, - 0xfb, 0x68, 0x07, 0x16, 0xad, 0x45, 0x8b, 0x1f, 0xea, 0xc0, 0x53, 0x71, 0xb8, 0x01, 0x6d, 0xb0, - 0xbe, 0x4e, 0xf3, 0x35, 0x59, 0xb6, 0x9c, 0xad, 0x69, 0xac, 0x1b, 0xe2, 0x44, 0x26, 0x8a, 0x5f, - 0x27, 0xf6, 0x76, 0x8a, 0x33, 0x79, 0x00, 0xe2, 0xa5, 0x76, 0xb9, 0xbc, 0x4d, 0x7f, 0xf2, 0x64, - 0xb7, 0xcb, 0xe2, 0xfd, 0x34, 0xfd, 0x4a, 0xdf, 0xd6, 0xa4, 0x4b, 0x7a, 0xa3, 0x89, 0x5d, 0x8c, - 0x49, 0x8a, 0x9b, 0x4a, 0x0e, 0x12, 0xec, 0x21, 0x8e, 0x33, 0xa3, 0xc8, 0xfd, 0xd7, 0xa9, 0x09, - 0xf6, 0x83, 0xbd, 0xe3, 0xae, 0x66, 0x86, 0x9d, 0xf1, 0x0f, 0xb8, 0x9a, 0x19, 0x57, 0x73, 0x82, - 0xff, 0x12, 0xca, 0xd5, 0x9c, 0x70, 0x35, 0x27, 0xd9, 0x41, 0x59, 0xd4, 0xd5, 0x9c, 0x74, 0x35, - 0xa7, 0xd8, 0x59, 0xe7, 0xb0, 0xab, 0x39, 0xe5, 0x6a, 0x4e, 0xb3, 0xd3, 0xcd, 0x98, 0xab, 0x39, - 0xed, 0x6a, 0xce, 0xb0, 0x43, 0xcd, 0x51, 0x57, 0x73, 0xc6, 0xd5, 0x9c, 0x65, 0x07, 0x99, 0x8a, - 0xab, 0x39, 0xeb, 0x6a, 0xce, 0xb1, 0x77, 0xd0, 0x83, 0xae, 0xe6, 0x9c, 0x32, 0x01, 0x83, 0xfc, - 0x49, 0x8f, 0xb1, 0x77, 0x36, 0x23, 0xa8, 0x1a, 0xe4, 0x8f, 0x7a, 0xcc, 0xd3, 0x1d, 0x67, 0xef, - 0x99, 0x13, 0x9e, 0xee, 0xb8, 0xa7, 0x9b, 0x61, 0xbf, 0x9b, 0xcc, 0x7a, 0xba, 0x19, 0x4f, 0x77, - 0x22, 0x37, 0x4c, 0x17, 0xaa, 0xa7, 0x3b, 0xe1, 0xe9, 0x4e, 0xe6, 0x32, 0xd4, 0xff, 0x9e, 0xee, - 0xa4, 0xa7, 0x3b, 0x95, 0x1b, 0xa1, 0xe7, 0xb5, 0x9e, 0xee, 0x94, 0x72, 0x37, 0xa4, 0x71, 0xa2, - 0x34, 0xf1, 0x8a, 0x91, 0xbd, 0xcf, 0x4e, 0xcf, 0xc0, 0x14, 0x8d, 0x08, 0x36, 0xa9, 0x68, 0x0b, - 0x68, 0x20, 0xf2, 0xd3, 0xdc, 0x10, 0xb0, 0x7d, 0xab, 0xc6, 0x7e, 0x8f, 0x35, 0xb7, 0xf0, 0xc6, - 0x5b, 0x07, 0xaf, 0xfb, 0x39, 0x7e, 0x7e, 0x85, 0x9f, 0x37, 0xdf, 0x3a, 0x18, 0x79, 0x1f, 0x3f, - 0x1f, 0xe0, 0xe7, 0xb1, 0xb7, 0x0f, 0x46, 0x5e, 0xc6, 0xcf, 0xab, 0xf8, 0xf9, 0x01, 0x7e, 0xde, - 0x78, 0x1b, 0xed, 0xf0, 0xf3, 0x26, 0x7e, 0x7f, 0x17, 0xff, 0xbf, 0x8f, 0xff, 0x3f, 0xc0, 0xcf, - 0x63, 0xbf, 0x39, 0x18, 0x29, 0x27, 0x58, 0x18, 0x9d, 0xf8, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xfe, 0xe2, 0xe2, 0x22, 0x06, 0x2d, 0x00, 0x00, + // 3863 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, + 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, + 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, + 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0xc6, 0xae, 0xe3, 0xb6, 0x99, + 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, + 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, + 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, + 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, + 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, + 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, + 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, + 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, + 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, + 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, + 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x19, + 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, + 0x6c, 0x06, 0xc6, 0x4f, 0x42, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, + 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, + 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, + 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, + 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, + 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, + 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, + 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x4f, 0x8c, 0x4d, 0x84, 0x1a, + 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, + 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, + 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, + 0x92, 0x0c, 0x61, 0x57, 0x4b, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, + 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x84, 0x41, 0x2c, 0x41, 0xc6, + 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, + 0xa2, 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xd5, 0x28, 0x4f, + 0x56, 0x2a, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x26, 0x80, 0x6d, 0x21, 0xbb, + 0xad, 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x63, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, + 0x37, 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x1c, 0x93, 0x29, 0x3b, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x3e, + 0xe4, 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0x2b, 0x91, 0x4f, 0xa6, 0x30, + 0x18, 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x12, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, + 0xca, 0x72, 0xe1, 0xae, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, + 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, + 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0xbe, 0x34, 0x0d, 0x0b, + 0xe3, 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x82, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, + 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x73, 0xc2, 0x72, 0x6e, 0xed, 0x99, + 0x89, 0xb2, 0x7a, 0x65, 0x1b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x03, 0x09, 0x56, 0xe2, 0x30, 0xc3, + 0xd3, 0x93, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x14, 0xd2, 0xf8, 0x2f, 0x8d, 0xed, 0x34, + 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x22, 0xa4, 0x48, 0x9a, 0xb5, 0x10, 0x6f, 0x0d, 0xfe, + 0x35, 0x5e, 0x98, 0x16, 0x6a, 0x6b, 0x7d, 0xd3, 0x53, 0xef, 0x6a, 0x66, 0x1f, 0x91, 0x84, 0x49, + 0x2b, 0x59, 0x26, 0xfc, 0x1c, 0x96, 0x49, 0x67, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x5a, 0xe8, 0x65, + 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x2a, 0x96, 0xe0, 0xdb, 0xdf, 0x76, 0x6d, 0x8b, 0x2f, 0x2d, + 0xb9, 0x05, 0x16, 0x90, 0xdb, 0x5f, 0x1e, 0x2e, 0x7c, 0x8f, 0x8d, 0x7f, 0xbc, 0xe1, 0x5c, 0x5c, + 0xfa, 0x56, 0x0c, 0x12, 0x64, 0xbf, 0xe5, 0x21, 0xb3, 0xf7, 0x52, 0xbd, 0xa2, 0x6e, 0xd6, 0xf6, + 0x37, 0xb6, 0x2b, 0xa2, 0x20, 0xe5, 0x00, 0x88, 0xe0, 0xfa, 0x76, 0xad, 0xb4, 0x27, 0xc6, 0xfc, + 0xeb, 0xea, 0xee, 0xde, 0xa5, 0x8b, 0x62, 0xdc, 0x07, 0xec, 0x53, 0x41, 0x22, 0x6c, 0x70, 0x61, + 0x4d, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0x41, 0xf5, 0x56, 0x65, 0xf3, 0xd2, 0x45, 0x71, 0x7a, 0x50, + 0x72, 0x61, 0x4d, 0x9c, 0x91, 0x66, 0x21, 0x4d, 0x24, 0x1b, 0xb5, 0xda, 0xb6, 0x98, 0xf2, 0x39, + 0x1b, 0x7b, 0x4a, 0x75, 0x77, 0x4b, 0x4c, 0xfb, 0x9c, 0x5b, 0x4a, 0x6d, 0xbf, 0x2e, 0x82, 0xcf, + 0xb0, 0x53, 0x69, 0x34, 0x4a, 0x5b, 0x15, 0x31, 0xe3, 0x5b, 0x6c, 0xbc, 0xb4, 0x57, 0x69, 0x88, + 0xd9, 0x01, 0xb7, 0x2e, 0xac, 0x89, 0xb3, 0xfe, 0x2d, 0x2a, 0xbb, 0xfb, 0x3b, 0x62, 0x4e, 0x9a, + 0x83, 0x59, 0x7a, 0x0b, 0xee, 0x44, 0x7e, 0x48, 0x74, 0xe9, 0xa2, 0x28, 0x06, 0x8e, 0x50, 0x96, + 0xb9, 0x01, 0xc1, 0xa5, 0x8b, 0xa2, 0xb4, 0x54, 0x86, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x76, + 0x69, 0xa3, 0xb2, 0xad, 0xd6, 0xea, 0x7b, 0xd5, 0xda, 0x6e, 0x69, 0x5b, 0x14, 0x02, 0x99, 0x52, + 0xf9, 0xec, 0x7e, 0x55, 0xa9, 0x6c, 0x8a, 0xb1, 0xb0, 0xac, 0x5e, 0x29, 0xed, 0x55, 0x36, 0xc5, + 0xf8, 0x92, 0x0e, 0x0b, 0xe3, 0xea, 0xcc, 0xd8, 0x9d, 0x11, 0x5a, 0xe2, 0xd8, 0x31, 0x4b, 0x4c, + 0xb8, 0x46, 0x96, 0xf8, 0x2b, 0x02, 0xcc, 0x8f, 0xa9, 0xb5, 0x63, 0x6f, 0xf2, 0x02, 0x24, 0x69, + 0x8a, 0xd2, 0xee, 0xf3, 0xd4, 0xd8, 0xa2, 0x4d, 0x12, 0x76, 0xa4, 0x03, 0x11, 0x5c, 0xb8, 0x03, + 0xc7, 0x8f, 0xe9, 0xc0, 0x98, 0x62, 0xc4, 0xc9, 0x57, 0x05, 0x90, 0x8f, 0xe3, 0x8e, 0x28, 0x14, + 0xb1, 0x81, 0x42, 0x71, 0x6d, 0xd8, 0x81, 0xf3, 0xc7, 0x3f, 0xc3, 0x88, 0x17, 0x6f, 0x09, 0x70, + 0x6a, 0xfc, 0xa0, 0x32, 0xd6, 0x87, 0xcf, 0xc0, 0x74, 0x17, 0x79, 0x07, 0x36, 0x6f, 0xd6, 0x9f, + 0x1a, 0xd3, 0x02, 0xb0, 0x7a, 0x38, 0x56, 0x0c, 0x15, 0xee, 0x21, 0xf1, 0xe3, 0xa6, 0x0d, 0xea, + 0xcd, 0x88, 0xa7, 0x5f, 0x8c, 0xc1, 0x23, 0x63, 0xc9, 0xc7, 0x3a, 0xfa, 0x18, 0x80, 0x61, 0xf5, + 0xfa, 0x1e, 0x6d, 0xc8, 0xb4, 0x3e, 0xa5, 0x89, 0x84, 0xec, 0x7d, 0x5c, 0x7b, 0xfa, 0x9e, 0xaf, + 0x8f, 0x13, 0x3d, 0x50, 0x11, 0x31, 0xb8, 0x12, 0x38, 0x9a, 0x20, 0x8e, 0x16, 0x8e, 0x79, 0xd2, + 0x91, 0x5e, 0xf7, 0x1c, 0x88, 0xba, 0x69, 0x20, 0xcb, 0x53, 0x5d, 0xcf, 0x41, 0x5a, 0xd7, 0xb0, + 0x3a, 0xa4, 0x00, 0xa7, 0x8a, 0xc9, 0xb6, 0x66, 0xba, 0x48, 0xc9, 0x53, 0x75, 0x83, 0x6b, 0x31, + 0x82, 0x74, 0x19, 0x27, 0x84, 0x98, 0x1e, 0x40, 0x50, 0xb5, 0x8f, 0x58, 0xfa, 0xfa, 0x0c, 0x64, + 0x42, 0x63, 0x9d, 0x74, 0x1e, 0xb2, 0xb7, 0xb5, 0xbb, 0x9a, 0xca, 0x47, 0x75, 0x1a, 0x89, 0x0c, + 0x96, 0xd5, 0xd9, 0xb8, 0xfe, 0x1c, 0x2c, 0x10, 0x13, 0xbb, 0xef, 0x21, 0x47, 0xd5, 0x4d, 0xcd, + 0x75, 0x49, 0xd0, 0x52, 0xc4, 0x54, 0xc2, 0xba, 0x1a, 0x56, 0x95, 0xb9, 0x46, 0x5a, 0x87, 0x79, + 0x82, 0xe8, 0xf6, 0x4d, 0xcf, 0xe8, 0x99, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x67, + 0x73, 0xd8, 0x62, 0x87, 0x19, 0x60, 0x8f, 0x5c, 0x69, 0x13, 0x1e, 0x23, 0xb0, 0x0e, 0xb2, 0x90, + 0xa3, 0x79, 0x48, 0x45, 0x5f, 0xe8, 0x6b, 0xa6, 0xab, 0x6a, 0x56, 0x4b, 0x3d, 0xd0, 0xdc, 0x03, + 0x79, 0x01, 0x13, 0x6c, 0xc4, 0x64, 0x41, 0x39, 0x83, 0x0d, 0xb7, 0x98, 0x5d, 0x85, 0x98, 0x95, + 0xac, 0xd6, 0x0d, 0xcd, 0x3d, 0x90, 0x8a, 0x70, 0x8a, 0xb0, 0xb8, 0x9e, 0x63, 0x58, 0x1d, 0x55, + 0x3f, 0x40, 0xfa, 0x1d, 0xb5, 0xef, 0xb5, 0xaf, 0xc8, 0x8f, 0x86, 0xef, 0x4f, 0x3c, 0x6c, 0x10, + 0x9b, 0x32, 0x36, 0xd9, 0xf7, 0xda, 0x57, 0xa4, 0x06, 0x64, 0xf1, 0x62, 0x74, 0x8d, 0x57, 0x90, + 0xda, 0xb6, 0x1d, 0xd2, 0x59, 0x72, 0x63, 0x76, 0x76, 0x28, 0x82, 0x2b, 0x35, 0x06, 0xd8, 0xb1, + 0x5b, 0xa8, 0x98, 0x6c, 0xd4, 0x2b, 0x95, 0x4d, 0x25, 0xc3, 0x59, 0xae, 0xdb, 0x0e, 0x4e, 0xa8, + 0x8e, 0xed, 0x07, 0x38, 0x43, 0x13, 0xaa, 0x63, 0xf3, 0xf0, 0xae, 0xc3, 0xbc, 0xae, 0xd3, 0x67, + 0x36, 0x74, 0x95, 0x8d, 0xf8, 0xae, 0x2c, 0x0e, 0x04, 0x4b, 0xd7, 0xb7, 0xa8, 0x01, 0xcb, 0x71, + 0x57, 0xba, 0x0a, 0x8f, 0x04, 0xc1, 0x0a, 0x03, 0xe7, 0x46, 0x9e, 0x72, 0x18, 0xba, 0x0e, 0xf3, + 0xbd, 0xc3, 0x51, 0xa0, 0x34, 0x70, 0xc7, 0xde, 0xe1, 0x30, 0xec, 0x09, 0xf2, 0xda, 0xe6, 0x20, + 0x5d, 0xf3, 0x50, 0x4b, 0x3e, 0x1d, 0xb6, 0x0e, 0x29, 0xa4, 0x55, 0x10, 0x75, 0x5d, 0x45, 0x96, + 0xd6, 0x34, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x6c, 0xd8, 0x38, 0xa7, 0xeb, 0x15, 0xa2, + 0x2d, 0x11, 0xa5, 0xf4, 0x34, 0xcc, 0xd9, 0xcd, 0xdb, 0x3a, 0xcd, 0x2c, 0xb5, 0xe7, 0xa0, 0xb6, + 0xf1, 0xb2, 0xfc, 0x38, 0x09, 0x53, 0x1e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x0a, 0x44, + 0xdd, 0x3d, 0xd0, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x04, 0x35, 0xa5, 0xf2, + 0x5d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, 0x91, 0x31, + 0xb6, 0x5b, 0xb0, 0xd0, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, + 0xfe, 0xd7, 0x99, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xbe, 0x3f, 0x2a, 0x5c, + 0x2a, 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0xe5, 0xda, 0x26, + 0xee, 0x8e, 0x9f, 0xaf, 0x88, 0x31, 0xdc, 0xa5, 0xb7, 0xab, 0x7b, 0x15, 0x55, 0xd9, 0xdf, 0xdd, + 0xab, 0xee, 0x54, 0xc4, 0xf8, 0xd3, 0xe9, 0xd4, 0x0f, 0x67, 0xc4, 0xfb, 0xf7, 0xef, 0xdf, 0x8f, + 0x2d, 0x7d, 0x27, 0x06, 0xb9, 0xc1, 0xc9, 0x58, 0xfa, 0x59, 0x38, 0xcd, 0x5f, 0x63, 0x5d, 0xe4, + 0xa9, 0xf7, 0x0c, 0x87, 0xa4, 0x6a, 0x57, 0xa3, 0xb3, 0xa5, 0x1f, 0xe5, 0x05, 0x66, 0xd5, 0x40, + 0xde, 0x8b, 0x86, 0x83, 0x13, 0xb1, 0xab, 0x79, 0xd2, 0x36, 0x9c, 0xb5, 0x6c, 0xd5, 0xf5, 0x34, + 0xab, 0xa5, 0x39, 0x2d, 0x35, 0x38, 0x40, 0x50, 0x35, 0x5d, 0x47, 0xae, 0x6b, 0xd3, 0x16, 0xe1, + 0xb3, 0x7c, 0xc2, 0xb2, 0x1b, 0xcc, 0x38, 0xa8, 0x9d, 0x25, 0x66, 0x3a, 0x94, 0x11, 0xf1, 0xe3, + 0x32, 0xe2, 0x51, 0x48, 0x77, 0xb5, 0x9e, 0x8a, 0x2c, 0xcf, 0x39, 0x24, 0xf3, 0x5c, 0x4a, 0x49, + 0x75, 0xb5, 0x5e, 0x05, 0x5f, 0x7f, 0x74, 0x6b, 0x10, 0x8e, 0xe3, 0xf7, 0xe3, 0x90, 0x0d, 0xcf, + 0x74, 0x78, 0x44, 0xd6, 0x49, 0xfd, 0x16, 0xc8, 0x0e, 0xff, 0xe4, 0x43, 0x27, 0xc0, 0x95, 0x32, + 0x2e, 0xec, 0xc5, 0x69, 0x3a, 0x69, 0x29, 0x14, 0x89, 0x9b, 0x2a, 0xde, 0xd3, 0x88, 0xce, 0xef, + 0x29, 0x85, 0x5d, 0x49, 0x5b, 0x30, 0x7d, 0xdb, 0x25, 0xdc, 0xd3, 0x84, 0xfb, 0xf1, 0x87, 0x73, + 0xdf, 0x6c, 0x10, 0xf2, 0xf4, 0xcd, 0x86, 0xba, 0x5b, 0x53, 0x76, 0x4a, 0xdb, 0x0a, 0x83, 0x4b, + 0x67, 0x20, 0x61, 0x6a, 0xaf, 0x1c, 0x0e, 0xb6, 0x00, 0x22, 0x9a, 0x34, 0xf0, 0x67, 0x20, 0x71, + 0x0f, 0x69, 0x77, 0x06, 0x0b, 0x2f, 0x11, 0x7d, 0x84, 0xa9, 0xbf, 0x0a, 0x49, 0x12, 0x2f, 0x09, + 0x80, 0x45, 0x4c, 0x9c, 0x92, 0x52, 0x90, 0x28, 0xd7, 0x14, 0x9c, 0xfe, 0x22, 0x64, 0xa9, 0x54, + 0xad, 0x57, 0x2b, 0xe5, 0x8a, 0x18, 0x5b, 0x5a, 0x87, 0x69, 0x1a, 0x04, 0xbc, 0x35, 0xfc, 0x30, + 0x88, 0x53, 0xec, 0x92, 0x71, 0x08, 0x5c, 0xbb, 0xbf, 0xb3, 0x51, 0x51, 0xc4, 0x58, 0x78, 0x79, + 0x5d, 0xc8, 0x86, 0xc7, 0xb9, 0x9f, 0x4e, 0x4e, 0xfd, 0xbd, 0x00, 0x99, 0xd0, 0x78, 0x86, 0x07, + 0x03, 0xcd, 0x34, 0xed, 0x7b, 0xaa, 0x66, 0x1a, 0x9a, 0xcb, 0x92, 0x02, 0x88, 0xa8, 0x84, 0x25, + 0x93, 0x2e, 0xda, 0x4f, 0xc5, 0xf9, 0x37, 0x05, 0x10, 0x87, 0x47, 0xbb, 0x21, 0x07, 0x85, 0x8f, + 0xd5, 0xc1, 0x37, 0x04, 0xc8, 0x0d, 0xce, 0x73, 0x43, 0xee, 0x9d, 0xff, 0x58, 0xdd, 0x7b, 0x27, + 0x06, 0xb3, 0x03, 0x53, 0xdc, 0xa4, 0xde, 0x7d, 0x01, 0xe6, 0x8c, 0x16, 0xea, 0xf6, 0x6c, 0x0f, + 0x59, 0xfa, 0xa1, 0x6a, 0xa2, 0xbb, 0xc8, 0x94, 0x97, 0x48, 0xa1, 0x58, 0x7d, 0xf8, 0x9c, 0xb8, + 0x52, 0x0d, 0x70, 0xdb, 0x18, 0x56, 0x9c, 0xaf, 0x6e, 0x56, 0x76, 0xea, 0xb5, 0xbd, 0xca, 0x6e, + 0xf9, 0x25, 0x75, 0x7f, 0xf7, 0xe7, 0x76, 0x6b, 0x2f, 0xee, 0x2a, 0xa2, 0x31, 0x64, 0xf6, 0x11, + 0x6e, 0xf5, 0x3a, 0x88, 0xc3, 0x4e, 0x49, 0xa7, 0x61, 0x9c, 0x5b, 0xe2, 0x94, 0x34, 0x0f, 0xf9, + 0xdd, 0x9a, 0xda, 0xa8, 0x6e, 0x56, 0xd4, 0xca, 0xf5, 0xeb, 0x95, 0xf2, 0x5e, 0x83, 0xbe, 0x38, + 0xfb, 0xd6, 0x7b, 0x83, 0x9b, 0xfa, 0xf5, 0x38, 0xcc, 0x8f, 0xf1, 0x44, 0x2a, 0xb1, 0x99, 0x9d, + 0xbe, 0x46, 0x3c, 0x3b, 0x89, 0xf7, 0x2b, 0x78, 0x2a, 0xa8, 0x6b, 0x8e, 0xc7, 0x46, 0xfc, 0xa7, + 0x00, 0x47, 0xc9, 0xf2, 0x8c, 0xb6, 0x81, 0x1c, 0x76, 0xce, 0x40, 0x07, 0xf9, 0x7c, 0x20, 0xa7, + 0x47, 0x0d, 0x3f, 0x03, 0x52, 0xcf, 0x76, 0x0d, 0xcf, 0xb8, 0x8b, 0x54, 0xc3, 0xe2, 0x87, 0x12, + 0x78, 0xb0, 0x4f, 0x28, 0x22, 0xd7, 0x54, 0x2d, 0xcf, 0xb7, 0xb6, 0x50, 0x47, 0x1b, 0xb2, 0xc6, + 0x05, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x9f, 0x87, 0x6c, 0xcb, 0xee, 0xe3, 0x31, 0x89, 0xda, + 0xe1, 0x7e, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0xd8, 0x1c, 0x1b, 0x9c, 0x86, 0x64, 0x95, 0x0c, + 0x95, 0x51, 0x93, 0x27, 0x21, 0xaf, 0x75, 0x3a, 0x0e, 0x26, 0xe7, 0x44, 0x74, 0x32, 0xcf, 0xf9, + 0x62, 0x62, 0xb8, 0x78, 0x13, 0x52, 0x3c, 0x0e, 0xb8, 0x25, 0xe3, 0x48, 0xa8, 0x3d, 0x7a, 0x26, + 0x15, 0x5b, 0x4e, 0x2b, 0x29, 0x8b, 0x2b, 0xcf, 0x43, 0xd6, 0x70, 0xd5, 0xe0, 0x70, 0x34, 0x76, + 0x2e, 0xb6, 0x9c, 0x52, 0x32, 0x86, 0xeb, 0x9f, 0x86, 0x2d, 0xbd, 0x15, 0x83, 0xdc, 0xe0, 0xe1, + 0xae, 0xb4, 0x09, 0x29, 0xd3, 0xd6, 0x35, 0x92, 0x5a, 0xf4, 0x97, 0x85, 0xe5, 0x88, 0xf3, 0xe0, + 0x95, 0x6d, 0x66, 0xaf, 0xf8, 0xc8, 0xc5, 0x7f, 0x16, 0x20, 0xc5, 0xc5, 0xd2, 0x29, 0x48, 0xf4, + 0x34, 0xef, 0x80, 0xd0, 0x25, 0x37, 0x62, 0xa2, 0xa0, 0x90, 0x6b, 0x2c, 0x77, 0x7b, 0x9a, 0x45, + 0x52, 0x80, 0xc9, 0xf1, 0x35, 0x5e, 0x57, 0x13, 0x69, 0x2d, 0x32, 0xf6, 0xdb, 0xdd, 0x2e, 0xb2, + 0x3c, 0x97, 0xaf, 0x2b, 0x93, 0x97, 0x99, 0x58, 0x7a, 0x06, 0xe6, 0x3c, 0x47, 0x33, 0xcc, 0x01, + 0xdb, 0x04, 0xb1, 0x15, 0xb9, 0xc2, 0x37, 0x2e, 0xc2, 0x19, 0xce, 0xdb, 0x42, 0x9e, 0xa6, 0x1f, + 0xa0, 0x56, 0x00, 0x9a, 0x26, 0x27, 0x87, 0xa7, 0x99, 0xc1, 0x26, 0xd3, 0x73, 0xec, 0xd2, 0xf7, + 0x04, 0x98, 0xe3, 0x2f, 0x2a, 0x2d, 0x3f, 0x58, 0x3b, 0x00, 0x9a, 0x65, 0xd9, 0x5e, 0x38, 0x5c, + 0xa3, 0xa9, 0x3c, 0x82, 0x5b, 0x29, 0xf9, 0x20, 0x25, 0x44, 0xb0, 0xd8, 0x05, 0x08, 0x34, 0xc7, + 0x86, 0xed, 0x2c, 0x64, 0xd8, 0xc9, 0x3d, 0xf9, 0xf9, 0x87, 0xbe, 0xda, 0x02, 0x15, 0xe1, 0x37, + 0x1a, 0x69, 0x01, 0x92, 0x4d, 0xd4, 0x31, 0x2c, 0x76, 0x9e, 0x48, 0x2f, 0xf8, 0x29, 0x65, 0xc2, + 0x3f, 0xa5, 0xdc, 0xb8, 0x05, 0xf3, 0xba, 0xdd, 0x1d, 0x76, 0x77, 0x43, 0x1c, 0x7a, 0xbd, 0x76, + 0x6f, 0x08, 0x9f, 0x87, 0x60, 0xc4, 0xfc, 0x4a, 0x2c, 0xbe, 0x55, 0xdf, 0xf8, 0x5a, 0x6c, 0x71, + 0x8b, 0xe2, 0xea, 0xfc, 0x31, 0x15, 0xd4, 0x36, 0x91, 0x8e, 0x5d, 0x87, 0x1f, 0x7d, 0x0a, 0x9e, + 0xed, 0x18, 0xde, 0x41, 0xbf, 0xb9, 0xa2, 0xdb, 0xdd, 0xd5, 0x8e, 0xdd, 0xb1, 0x83, 0x9f, 0xbb, + 0xf0, 0x15, 0xb9, 0x20, 0xff, 0xb1, 0x9f, 0xbc, 0xd2, 0xbe, 0x74, 0x31, 0xf2, 0xf7, 0xb1, 0xe2, + 0x2e, 0xcc, 0x33, 0x63, 0x95, 0x9c, 0xb9, 0xd3, 0x57, 0x03, 0xe9, 0xa1, 0xe7, 0x2e, 0xf2, 0x37, + 0xdf, 0x25, 0xbd, 0x5a, 0x99, 0x63, 0x50, 0xac, 0xa3, 0x2f, 0x10, 0x45, 0x05, 0x1e, 0x19, 0xe0, + 0xa3, 0xfb, 0x12, 0x39, 0x11, 0x8c, 0xdf, 0x61, 0x8c, 0xf3, 0x21, 0xc6, 0x06, 0x83, 0x16, 0xcb, + 0x30, 0x7b, 0x12, 0xae, 0x7f, 0x64, 0x5c, 0x59, 0x14, 0x26, 0xd9, 0x82, 0x3c, 0x21, 0xd1, 0xfb, + 0xae, 0x67, 0x77, 0x49, 0xd1, 0x7b, 0x38, 0xcd, 0x3f, 0xbd, 0x4b, 0x37, 0x4a, 0x0e, 0xc3, 0xca, + 0x3e, 0xaa, 0x58, 0x04, 0xf2, 0x33, 0x43, 0x0b, 0xe9, 0x66, 0x04, 0xc3, 0xdb, 0xcc, 0x11, 0xdf, + 0xbe, 0xf8, 0x39, 0x58, 0xc0, 0xff, 0x93, 0x9a, 0x14, 0xf6, 0x24, 0xfa, 0x94, 0x49, 0xfe, 0xde, + 0xab, 0x74, 0x2f, 0xce, 0xfb, 0x04, 0x21, 0x9f, 0x42, 0xab, 0xd8, 0x41, 0x9e, 0x87, 0x1c, 0x57, + 0xd5, 0xcc, 0x71, 0xee, 0x85, 0x5e, 0xd3, 0xe5, 0xd7, 0xde, 0x1b, 0x5c, 0xc5, 0x2d, 0x8a, 0x2c, + 0x99, 0x66, 0x71, 0x1f, 0x4e, 0x8f, 0xc9, 0x8a, 0x09, 0x38, 0x5f, 0x67, 0x9c, 0x0b, 0x23, 0x99, + 0x81, 0x69, 0xeb, 0xc0, 0xe5, 0xfe, 0x5a, 0x4e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x62, 0x58, 0xbe, + 0xa4, 0x98, 0xf1, 0x26, 0xcc, 0xdd, 0x45, 0x4e, 0xd3, 0x76, 0xd9, 0xd1, 0xc8, 0x04, 0x74, 0x6f, + 0x30, 0xba, 0x3c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, + 0x7c, 0x99, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, + 0x93, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x07, + 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x87, 0x9c, 0xc2, 0x0d, 0xc5, 0xf3, 0x05, 0xc8, + 0xd8, 0x96, 0x79, 0x68, 0x5b, 0x93, 0x38, 0xf1, 0x47, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x83, + 0xf4, 0xa4, 0x0b, 0xf1, 0xc7, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x0b, 0xf2, 0xbc, 0x40, 0x19, + 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x30, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, + 0x93, 0x90, 0xbc, 0xc5, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, + 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, + 0xe3, 0x4f, 0x19, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, + 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, + 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf8, 0x4a, 0x13, 0x00, 0x06, + 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, + 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf0, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, + 0x27, 0x8b, 0xda, 0x5f, 0xf2, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, + 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x9f, 0x87, 0x45, 0x3f, 0x9c, 0x7c, + 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, + 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, + 0x82, 0x5a, 0x13, 0x50, 0xff, 0xd5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, + 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x5f, 0xf3, 0x95, 0xf2, 0x71, 0x55, 0x02, + 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x61, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, + 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0xb7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, + 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, + 0x09, 0x28, 0xfe, 0x8e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x6c, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, + 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xde, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, + 0x90, 0x1f, 0x1a, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x5f, 0xf8, 0x80, 0x15, 0xa3, 0xc1, 0x09, + 0xa3, 0xb8, 0x8d, 0xd7, 0x7d, 0x70, 0x0e, 0x88, 0x26, 0x7b, 0xf5, 0x03, 0x7f, 0xe9, 0x07, 0xc6, + 0x80, 0xe2, 0x75, 0x98, 0x1d, 0x98, 0x01, 0xa2, 0xa9, 0x7e, 0x91, 0x51, 0x65, 0xc3, 0x23, 0x40, + 0x71, 0x1d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x89, 0xc1, 0x89, 0x79, 0xf1, 0xd3, 0x90, 0xe2, + 0x7d, 0x3c, 0x1a, 0xfa, 0xcb, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, 0xf0, 0x68, 0xf8, 0xaf, 0x70, + 0x38, 0x87, 0x60, 0xf8, 0xe4, 0x21, 0xfc, 0x87, 0x5f, 0x4d, 0xb0, 0x3a, 0xcc, 0x63, 0x77, 0x0d, + 0x66, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x91, 0xdd, 0x9c, 0x23, 0x8a, 0x97, 0x21, 0x39, 0x61, 0xc0, + 0x7f, 0x8d, 0x41, 0xa9, 0x7d, 0xb1, 0x0c, 0x99, 0x50, 0xc3, 0x8e, 0x86, 0xff, 0x3a, 0x83, 0x87, + 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x83, 0xbb, 0xce, 0x10, 0x38, 0x6c, 0xbc, 0x57, + 0x47, 0xa3, 0x7f, 0x93, 0x47, 0x9d, 0x43, 0x8a, 0x2f, 0x40, 0xda, 0xaf, 0xbf, 0xd1, 0xf8, 0xdf, + 0x62, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0xbf, 0xcd, 0x23, 0x10, 0x42, 0xe1, + 0x6d, 0x34, 0xdc, 0xd3, 0xa3, 0x99, 0x7e, 0x87, 0x6f, 0xa3, 0xa1, 0x96, 0x8e, 0x57, 0x93, 0x94, + 0xc1, 0x68, 0x8a, 0xdf, 0xe5, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xc3, 0x4d, 0x32, 0x9a, 0xe3, 0xf7, + 0xb8, 0x1b, 0x43, 0x3d, 0xb2, 0x58, 0x07, 0x69, 0xb4, 0x41, 0x46, 0xf3, 0x7d, 0x89, 0xf1, 0xcd, + 0x8d, 0xf4, 0xc7, 0xe2, 0x8b, 0x70, 0x6a, 0x7c, 0x73, 0x8c, 0x66, 0x7d, 0xed, 0x83, 0xa1, 0xd7, + 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, + 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, + 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, + 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, + 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, + 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x01, 0x80, 0xbe, 0x4c, 0x93, + 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, + 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, + 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, + 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, + 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, + 0x34, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, + 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, + 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, + 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0x6b, 0x49, 0x78, 0x54, 0xb7, 0xbb, + 0x4d, 0xdb, 0x5d, 0xa5, 0x05, 0xa5, 0x69, 0x7b, 0x07, 0xab, 0xb6, 0xc5, 0xcc, 0xa5, 0xb8, 0x6d, + 0xa1, 0xc5, 0x93, 0x9d, 0xcb, 0x2d, 0x9d, 0x81, 0x64, 0xa3, 0xdf, 0x6c, 0x1e, 0x4a, 0x22, 0xc4, + 0xdd, 0x7e, 0x93, 0x7d, 0x58, 0x82, 0xff, 0x5d, 0xfa, 0x7e, 0x1c, 0x32, 0x0d, 0xad, 0xdb, 0x33, + 0x51, 0xcd, 0x42, 0xb5, 0xb6, 0x24, 0xc3, 0x34, 0x79, 0x8c, 0xe7, 0x89, 0x91, 0x70, 0x63, 0x4a, + 0x61, 0xd7, 0xbe, 0x66, 0x8d, 0x1c, 0x56, 0xc6, 0x7c, 0xcd, 0x9a, 0xaf, 0xb9, 0x40, 0xcf, 0x2a, + 0x7d, 0xcd, 0x05, 0x5f, 0x73, 0x91, 0x9c, 0x58, 0xc6, 0x7d, 0xcd, 0x45, 0x5f, 0xb3, 0x4e, 0x4e, + 0xe4, 0x67, 0x7d, 0xcd, 0xba, 0xaf, 0xb9, 0x44, 0xce, 0xe0, 0x13, 0xbe, 0xe6, 0x92, 0xaf, 0xb9, + 0x4c, 0x8e, 0xde, 0xe7, 0x7c, 0xcd, 0x65, 0x5f, 0x73, 0x85, 0x1c, 0xb7, 0x4b, 0xbe, 0xe6, 0x8a, + 0xaf, 0xb9, 0x4a, 0xbe, 0x1f, 0x99, 0xf1, 0x35, 0x57, 0xa5, 0x45, 0x98, 0xa1, 0x4f, 0xf6, 0x1c, + 0xf9, 0x4d, 0x36, 0x7f, 0x63, 0x4a, 0xe1, 0x82, 0x40, 0xf7, 0x3c, 0xf9, 0x46, 0x64, 0x3a, 0xd0, + 0x3d, 0x1f, 0xe8, 0xd6, 0xc8, 0x97, 0xd2, 0x62, 0xa0, 0x5b, 0x0b, 0x74, 0x17, 0xe4, 0x59, 0xbc, + 0xfa, 0x81, 0xee, 0x42, 0xa0, 0xbb, 0x28, 0xe7, 0x70, 0xfc, 0x03, 0xdd, 0xc5, 0x40, 0xb7, 0x2e, + 0xe7, 0xcf, 0x09, 0xcb, 0xd9, 0x40, 0xb7, 0x2e, 0x3d, 0x0b, 0x19, 0xb7, 0xdf, 0x54, 0xd9, 0x27, + 0x04, 0xe4, 0x5b, 0x94, 0xcc, 0x1a, 0xac, 0xe0, 0x8c, 0x20, 0x8b, 0x7a, 0x63, 0x4a, 0x01, 0xb7, + 0xdf, 0x64, 0xe5, 0x71, 0x23, 0x0b, 0xe4, 0x34, 0x41, 0x25, 0x5f, 0x60, 0x6e, 0x6c, 0xbe, 0xfd, + 0xa0, 0x30, 0xf5, 0xdd, 0x07, 0x85, 0xa9, 0x7f, 0x79, 0x50, 0x98, 0x7a, 0xe7, 0x41, 0x41, 0x78, + 0xff, 0x41, 0x41, 0xf8, 0xf1, 0x83, 0x82, 0x70, 0xff, 0xa8, 0x20, 0x7c, 0xf5, 0xa8, 0x20, 0x7c, + 0xe3, 0xa8, 0x20, 0x7c, 0xfb, 0xa8, 0x20, 0xbc, 0x7d, 0x54, 0x98, 0xfa, 0xee, 0x51, 0x61, 0xea, + 0x9d, 0xa3, 0x82, 0xf0, 0xc3, 0xa3, 0xc2, 0xd4, 0xfb, 0x47, 0x05, 0xe1, 0xc7, 0x47, 0x05, 0xe1, + 0xfe, 0x0f, 0x0a, 0x42, 0x73, 0x9a, 0xa4, 0xd1, 0x85, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xb0, + 0x56, 0x8f, 0x6b, 0xf8, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2041,26 +2061,9 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2199,7 +2202,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2243,7 +2246,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2251,43 +2254,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2613,47 +2616,47 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Sub) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(m.Sub))) - i += copy(data[i:], m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) + i += copy(dAtA[i:], m.Sub) } return i, nil } -func (m *SampleOneOf) Marshal() (data []byte, err error) { +func (m *SampleOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2662,135 +2665,135 @@ func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *SampleOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *SampleOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *SampleOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *SampleOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *SampleOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *SampleOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *SampleOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *SampleOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *SampleOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 return i, nil } -func (m *SampleOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 return i, nil } -func (m *SampleOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 return i, nil } -func (m *SampleOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 return i, nil } -func (m *SampleOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *SampleOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *SampleOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2798,35 +2801,35 @@ func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2838,7 +2841,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2866,7 +2869,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2881,11 +2884,11 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sub = string(data[iNdEx:postIndex]) + m.Sub = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2904,8 +2907,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *SampleOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *SampleOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2917,7 +2920,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2941,7 +2944,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field1{v} case 2: @@ -2952,7 +2955,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field2{v} case 3: @@ -2967,7 +2970,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2987,7 +2990,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3007,7 +3010,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -3027,7 +3030,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3047,7 +3050,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -3068,7 +3071,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3085,7 +3088,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field9{v} case 10: @@ -3096,7 +3099,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field10{v} case 11: @@ -3107,7 +3110,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field11{v} case 12: @@ -3118,7 +3121,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field12{v} case 13: @@ -3133,7 +3136,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3154,7 +3157,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3169,7 +3172,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &SampleOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -3183,7 +3186,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3198,7 +3201,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &SampleOneOf_Field15{v} iNdEx = postIndex case 16: @@ -3213,7 +3216,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3228,14 +3231,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &SampleOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -3254,8 +3257,8 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { } return nil } -func skipOneUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipOneUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3266,7 +3269,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3284,7 +3287,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3301,7 +3304,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3324,7 +3327,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3335,7 +3338,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOneUnsafe(data[start:]) + next, err := skipOneUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -3359,30 +3362,34 @@ var ( ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 381 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbd, 0x6e, 0xdb, 0x30, - 0x14, 0x05, 0xe0, 0x28, 0x8a, 0xa5, 0x84, 0x72, 0x1a, 0x57, 0xd3, 0x6d, 0x0a, 0x08, 0x45, 0xa6, - 0x2e, 0xb1, 0x62, 0xfd, 0xe4, 0x67, 0x0d, 0x8a, 0xa2, 0x4b, 0x11, 0x20, 0x79, 0x80, 0xc0, 0x6c, - 0x29, 0xd9, 0x80, 0x6d, 0x1a, 0x95, 0x34, 0x74, 0xf3, 0xe3, 0x74, 0xec, 0xd8, 0x47, 0xf0, 0xd8, - 0xb1, 0x43, 0x07, 0xdb, 0x5d, 0x3a, 0x7a, 0xf4, 0x98, 0x63, 0x0a, 0xb8, 0x1c, 0x0e, 0x78, 0x89, - 0xef, 0x68, 0xa0, 0x48, 0xf1, 0xf6, 0x8b, 0x9e, 0x4a, 0x5d, 0xc5, 0xcd, 0xac, 0x1a, 0x16, 0x4a, - 0xea, 0x7a, 0x14, 0xeb, 0x99, 0xea, 0xcf, 0xbf, 0xe9, 0x5a, 0x87, 0x2e, 0xc6, 0xf3, 0xcb, 0x72, - 0x5c, 0x8f, 0x1a, 0xd9, 0x47, 0x31, 0x2e, 0x75, 0xa9, 0x63, 0x63, 0xb2, 0x29, 0xcc, 0xce, 0x6c, - 0xcc, 0xd4, 0x7e, 0x73, 0xf1, 0x46, 0x74, 0x9e, 0x1a, 0x29, 0xbf, 0x87, 0x3d, 0xe1, 0x56, 0x8d, - 0x24, 0xe7, 0x9d, 0xf3, 0xfe, 0xe4, 0x71, 0x3f, 0x5e, 0xfc, 0x75, 0x45, 0xf0, 0x34, 0x9c, 0xce, - 0x27, 0xea, 0x61, 0xa6, 0x1e, 0x8a, 0x90, 0x84, 0xf7, 0x71, 0xac, 0x26, 0x5f, 0x07, 0xa6, 0xe4, - 0x7c, 0x3a, 0x78, 0xf4, 0x0a, 0xb3, 0x67, 0x49, 0xe8, 0x10, 0x72, 0xc8, 0x92, 0xb0, 0xa4, 0xe4, - 0x42, 0x3a, 0x2c, 0x29, 0x4b, 0x46, 0x47, 0x10, 0x97, 0x25, 0x63, 0xc9, 0xa9, 0x03, 0x39, 0x65, - 0xc9, 0x59, 0xae, 0xc9, 0x83, 0x1c, 0xb1, 0x5c, 0xb3, 0xdc, 0x90, 0x0f, 0x79, 0xcd, 0x72, 0xc3, - 0x72, 0x4b, 0xc7, 0x90, 0x90, 0xe5, 0x96, 0xe5, 0x8e, 0x4e, 0x20, 0x3e, 0xcb, 0x5d, 0x78, 0x2e, - 0xfc, 0xf6, 0xa4, 0x57, 0x24, 0x40, 0x67, 0x20, 0xbf, 0x3d, 0xea, 0x95, 0xb5, 0x01, 0x05, 0x30, - 0xcf, 0xda, 0xc0, 0x5a, 0x42, 0x5d, 0x58, 0xcf, 0x5a, 0x62, 0x2d, 0xa5, 0x53, 0xd8, 0xb1, 0xb5, - 0xd4, 0x5a, 0x46, 0xaf, 0xf6, 0xff, 0xdf, 0x5a, 0x66, 0x2d, 0xa7, 0x33, 0x58, 0xd7, 0x5a, 0x1e, - 0x5e, 0x8a, 0x00, 0x17, 0xf5, 0x3c, 0x55, 0x55, 0x35, 0x2c, 0x15, 0xf5, 0xe0, 0x41, 0x22, 0xfa, - 0xfb, 0x17, 0x61, 0x2e, 0x15, 0x5d, 0x81, 0xc2, 0xe7, 0xd6, 0xef, 0xbb, 0x42, 0xd4, 0xaa, 0xaa, - 0x9f, 0xe1, 0xba, 0xb8, 0xff, 0xb0, 0x5c, 0x47, 0x07, 0xbf, 0x91, 0x3f, 0xc8, 0x6a, 0x1d, 0x39, - 0x5b, 0x64, 0x87, 0x2c, 0x36, 0x91, 0xf3, 0x03, 0xf9, 0x89, 0xfc, 0x42, 0x96, 0x1b, 0xf4, 0x90, - 0x15, 0xe6, 0xff, 0x58, 0xb7, 0x58, 0x77, 0xc8, 0xe2, 0x5f, 0xe4, 0x48, 0xcf, 0x3c, 0xa3, 0xf4, - 0x25, 0x00, 0x00, 0xff, 0xff, 0x90, 0x60, 0x36, 0x9e, 0x99, 0x02, 0x00, 0x00, + // 408 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, + 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x4a, 0xa5, 0x27, 0x8b, 0xc9, + 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x7f, 0x00, 0x8a, 0xa9, + 0x13, 0x90, 0xb8, 0x33, 0xea, 0xdd, 0x0d, 0xdd, 0xf8, 0x73, 0x3a, 0x76, 0xec, 0x9f, 0xc0, 0xc8, + 0xd8, 0xa1, 0x03, 0xe7, 0x2e, 0x1d, 0x19, 0x33, 0x56, 0xb9, 0x94, 0xe7, 0xed, 0x7d, 0xfd, 0xb1, + 0x07, 0xdb, 0x5f, 0xf9, 0xfe, 0xda, 0x65, 0xc6, 0x15, 0xc3, 0x2a, 0x2f, 0xe6, 0x0b, 0x6b, 0x5c, + 0x79, 0x33, 0x74, 0xb9, 0x1d, 0xdc, 0x7f, 0x75, 0xa5, 0x8b, 0x23, 0x97, 0xdb, 0x83, 0xa3, 0xe5, + 0x6d, 0x79, 0x53, 0x99, 0xc1, 0xb5, 0xcb, 0x86, 0x4b, 0xb7, 0x74, 0xc3, 0xc6, 0x4c, 0xb5, 0x68, + 0x52, 0x13, 0x9a, 0x69, 0x73, 0xe6, 0xf0, 0x9d, 0x6c, 0x5d, 0x56, 0xc6, 0x7c, 0x8b, 0xfb, 0x32, + 0x2a, 0x2a, 0x83, 0xa0, 0x40, 0xef, 0xce, 0xd6, 0xe3, 0xe1, 0xef, 0x48, 0x76, 0x2f, 0xe7, 0xd9, + 0xfd, 0x9d, 0xbd, 0xc8, 0xed, 0xc5, 0x22, 0x46, 0xd9, 0xfe, 0x74, 0x6b, 0xef, 0xbe, 0x8c, 0x9a, + 0x4d, 0x30, 0x15, 0xb3, 0xff, 0x99, 0x25, 0xc1, 0x2d, 0x05, 0x7a, 0x8b, 0x25, 0x61, 0x49, 0x31, + 0x52, 0xa0, 0x5b, 0x2c, 0x29, 0xcb, 0x18, 0xb7, 0x15, 0xe8, 0x88, 0x65, 0xcc, 0x32, 0xc1, 0x96, + 0x02, 0xbd, 0xc7, 0x32, 0x61, 0x39, 0xc6, 0xb6, 0x02, 0xbd, 0xcd, 0x72, 0xcc, 0x72, 0x82, 0x1d, + 0x05, 0xfa, 0x2d, 0xcb, 0x09, 0xcb, 0x29, 0xee, 0x28, 0xd0, 0x31, 0xcb, 0x29, 0xcb, 0x19, 0xee, + 0x2a, 0xd0, 0x1d, 0x96, 0xb3, 0xf8, 0x40, 0x76, 0x36, 0x37, 0xfb, 0x80, 0x52, 0x81, 0xde, 0x9f, + 0x8a, 0xd9, 0xeb, 0x42, 0xb0, 0x11, 0x76, 0x15, 0xe8, 0x76, 0xb0, 0x51, 0xb0, 0x04, 0x7b, 0x0a, + 0x74, 0x3f, 0x58, 0x12, 0x2c, 0xc5, 0x3d, 0x05, 0x7a, 0x27, 0x58, 0x1a, 0x6c, 0x8c, 0x6f, 0xd6, + 0xef, 0x1f, 0x6c, 0x1c, 0x6c, 0x82, 0xfb, 0x0a, 0x74, 0x2f, 0xd8, 0x24, 0x3e, 0x92, 0xdd, 0xa2, + 0x32, 0x57, 0x99, 0x2d, 0x8a, 0xf9, 0xd2, 0x62, 0x5f, 0x81, 0xee, 0x26, 0x72, 0xb0, 0x6e, 0x44, + 0xf3, 0xa9, 0x53, 0x31, 0x93, 0x45, 0x65, 0x3e, 0x6f, 0xfc, 0xbc, 0x27, 0x65, 0x69, 0x8b, 0xf2, + 0xca, 0xe5, 0xd6, 0x2d, 0xce, 0x3f, 0x3e, 0xd6, 0x24, 0x9e, 0x6a, 0x12, 0xbf, 0x6a, 0x12, 0xcf, + 0x35, 0xc1, 0x4b, 0x4d, 0xb0, 0xaa, 0x09, 0x1e, 0x3c, 0xc1, 0x77, 0x4f, 0xf0, 0xc3, 0x13, 0xfc, + 0xf4, 0x04, 0x8f, 0x9e, 0xc4, 0x93, 0x27, 0xf1, 0xec, 0x09, 0xfe, 0x7a, 0x12, 0x2f, 0x9e, 0x60, + 0xe5, 0x09, 0x1e, 0xfe, 0x10, 0x98, 0x76, 0x53, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x49, 0x11, 0x52, 0x0b, 0x99, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto index 112cabc2..8c161fbb 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go index baf9b22b..1951ceae 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go @@ -17,6 +17,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestSubbyProto(t *testing.T) { } func TestSubbyMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -93,21 +102,25 @@ func TestSubbyMarshalTo(t *testing.T) { } func TestSampleOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -127,24 +140,28 @@ func TestSampleOneOfProto(t *testing.T) { } func TestSampleOneOfMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -200,9 +217,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -217,9 +234,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -234,9 +251,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -251,9 +268,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -268,14 +285,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -283,14 +304,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -328,13 +353,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -350,13 +375,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go index 2656c807..79eb41fa 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import unsafe "unsafe" @@ -39,7 +37,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -83,49 +83,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -551,229 +551,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3541 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x59, 0x6c, 0x1b, 0xd7, - 0xd5, 0x36, 0xc5, 0x45, 0xe4, 0xa1, 0x44, 0x51, 0x23, 0xc5, 0xa6, 0x95, 0xc4, 0x8b, 0xb2, 0x39, - 0xce, 0x1f, 0xc9, 0x96, 0x77, 0xe6, 0xff, 0x13, 0x68, 0xa1, 0x15, 0x19, 0x92, 0xa8, 0x7f, 0x28, - 0x25, 0x4e, 0xfe, 0x87, 0xc1, 0x88, 0xbc, 0xa2, 0x68, 0x0f, 0x67, 0xf8, 0x73, 0x86, 0x8e, 0x95, - 0xa7, 0x14, 0xe9, 0x82, 0xa0, 0xe8, 0x5e, 0xa0, 0xd9, 0xdb, 0x04, 0x68, 0x93, 0xa6, 0x5b, 0xd2, - 0x0d, 0x45, 0x9f, 0x0a, 0x14, 0x69, 0xf3, 0x54, 0xb4, 0x7d, 0xea, 0x43, 0x1f, 0x92, 0x34, 0x40, - 0xd3, 0x36, 0x6d, 0x53, 0xc0, 0x40, 0x03, 0xe4, 0xa5, 0xe7, 0x6e, 0xb3, 0x90, 0x94, 0x86, 0x0a, - 0x90, 0xa6, 0x02, 0x08, 0x71, 0xce, 0x39, 0xdf, 0x37, 0x77, 0xce, 0x3d, 0xf7, 0x9c, 0x73, 0xef, - 0x10, 0x7e, 0x7e, 0x1c, 0x0e, 0x55, 0x2d, 0xab, 0x6a, 0x90, 0xc9, 0x46, 0xd3, 0x72, 0xac, 0xf5, - 0xd6, 0xc6, 0x64, 0x85, 0xd8, 0xe5, 0x66, 0xad, 0xe1, 0x58, 0xcd, 0x09, 0x26, 0x53, 0x86, 0xb8, - 0xc5, 0x84, 0xb4, 0x18, 0x5f, 0x82, 0xe1, 0xf3, 0x35, 0x83, 0xcc, 0xb9, 0x86, 0x25, 0xe2, 0x28, - 0x67, 0x21, 0xb6, 0x81, 0xc2, 0x5c, 0xe4, 0x50, 0xf4, 0x48, 0x7a, 0xea, 0xe6, 0x89, 0x36, 0xd0, - 0x44, 0x10, 0xb1, 0x42, 0xc5, 0x2a, 0x43, 0x8c, 0xbf, 0x15, 0x83, 0x91, 0x2e, 0x5a, 0x45, 0x81, - 0x98, 0xa9, 0xd7, 0x29, 0x63, 0xe4, 0x48, 0x4a, 0x65, 0xdf, 0x95, 0x1c, 0xf4, 0x37, 0xf4, 0xf2, - 0x65, 0xbd, 0x4a, 0x72, 0x7d, 0x4c, 0x2c, 0x2f, 0x95, 0x03, 0x00, 0x15, 0xd2, 0x20, 0x66, 0x85, - 0x98, 0xe5, 0xad, 0x5c, 0x14, 0x47, 0x91, 0x52, 0x7d, 0x12, 0xe5, 0x0e, 0x18, 0x6e, 0xb4, 0xd6, - 0x8d, 0x5a, 0x59, 0xf3, 0x99, 0x01, 0x9a, 0xc5, 0xd5, 0x2c, 0x57, 0xcc, 0x79, 0xc6, 0xb7, 0xc1, - 0xd0, 0x43, 0x44, 0xbf, 0xec, 0x37, 0x4d, 0x33, 0xd3, 0x0c, 0x15, 0xfb, 0x0c, 0x67, 0x61, 0xa0, - 0x4e, 0x6c, 0x1b, 0x07, 0xa0, 0x39, 0x5b, 0x0d, 0x92, 0x8b, 0xb1, 0xa7, 0x3f, 0xd4, 0xf1, 0xf4, - 0xed, 0x4f, 0x9e, 0x16, 0xa8, 0x55, 0x04, 0x29, 0xd3, 0x90, 0x22, 0x66, 0xab, 0xce, 0x19, 0xe2, - 0xdb, 0xf8, 0xaf, 0x80, 0x16, 0xed, 0x2c, 0x49, 0x0a, 0x13, 0x14, 0xfd, 0x36, 0x69, 0x5e, 0xa9, - 0x95, 0x49, 0x2e, 0xc1, 0x08, 0x6e, 0xeb, 0x20, 0x28, 0x71, 0x7d, 0x3b, 0x87, 0xc4, 0xe1, 0xa3, - 0xa4, 0xc8, 0x55, 0x87, 0x98, 0x76, 0xcd, 0x32, 0x73, 0xfd, 0x8c, 0xe4, 0x96, 0x2e, 0xb3, 0x48, - 0x8c, 0x4a, 0x3b, 0x85, 0x87, 0x53, 0x4e, 0x43, 0xbf, 0xd5, 0x70, 0xf0, 0x9b, 0x9d, 0x4b, 0xe2, - 0xfc, 0xa4, 0xa7, 0x6e, 0xe8, 0x1a, 0x08, 0x45, 0x6e, 0xa3, 0x4a, 0x63, 0x65, 0x01, 0xb2, 0xb6, - 0xd5, 0x6a, 0x96, 0x89, 0x56, 0xb6, 0x2a, 0x44, 0xab, 0x99, 0x1b, 0x56, 0x2e, 0xc5, 0x08, 0x0e, - 0x76, 0x3e, 0x08, 0x33, 0x9c, 0x45, 0xbb, 0x05, 0x34, 0x53, 0x33, 0x76, 0xe0, 0x5a, 0xd9, 0x0b, - 0x09, 0x7b, 0xcb, 0x74, 0xf4, 0xab, 0xb9, 0x01, 0x16, 0x21, 0xe2, 0x6a, 0xfc, 0x9f, 0x71, 0x18, - 0xea, 0x25, 0xc4, 0xee, 0x82, 0xf8, 0x06, 0x7d, 0x4a, 0x0c, 0xb0, 0x5d, 0xf8, 0x80, 0x63, 0x82, - 0x4e, 0x4c, 0x7c, 0x40, 0x27, 0x4e, 0x43, 0xda, 0x24, 0xb6, 0x43, 0x2a, 0x3c, 0x22, 0xa2, 0x3d, - 0xc6, 0x14, 0x70, 0x50, 0x67, 0x48, 0xc5, 0x3e, 0x50, 0x48, 0x5d, 0x84, 0x21, 0x77, 0x48, 0x5a, - 0x53, 0x37, 0xab, 0x32, 0x36, 0x27, 0xc3, 0x46, 0x32, 0x51, 0x90, 0x38, 0x95, 0xc2, 0xd4, 0x0c, - 0x09, 0x5c, 0x2b, 0x73, 0x00, 0x96, 0x49, 0xac, 0x0d, 0x5c, 0x5e, 0x65, 0x03, 0xe3, 0xa4, 0xbb, - 0x97, 0x8a, 0xd4, 0xa4, 0xc3, 0x4b, 0x16, 0x97, 0x96, 0x0d, 0xe5, 0x9c, 0x17, 0x6a, 0xfd, 0xdb, - 0x44, 0xca, 0x12, 0x5f, 0x64, 0x1d, 0xd1, 0xb6, 0x06, 0x99, 0x26, 0xa1, 0x71, 0x8f, 0x2e, 0xe6, - 0x4f, 0x96, 0x62, 0x83, 0x98, 0x08, 0x7d, 0x32, 0x55, 0xc0, 0xf8, 0x83, 0x0d, 0x36, 0xfd, 0x97, - 0xca, 0x4d, 0xe0, 0x0a, 0x34, 0x16, 0x56, 0xc0, 0xb2, 0xd0, 0x80, 0x14, 0x2e, 0xa3, 0x6c, 0xec, - 0x2c, 0x64, 0x82, 0xee, 0x51, 0x46, 0x21, 0x6e, 0x3b, 0x7a, 0xd3, 0x61, 0x51, 0x18, 0x57, 0xf9, - 0x85, 0x92, 0x85, 0x28, 0x26, 0x19, 0x96, 0xe5, 0xe2, 0x2a, 0xfd, 0x3a, 0x76, 0x06, 0x06, 0x03, - 0xb7, 0xef, 0x15, 0x38, 0xfe, 0x78, 0x02, 0x46, 0xbb, 0xc5, 0x5c, 0xd7, 0xf0, 0xc7, 0xe5, 0x83, - 0x11, 0xb0, 0x4e, 0x9a, 0x18, 0x77, 0x94, 0x41, 0x5c, 0x61, 0x44, 0xc5, 0x0d, 0x7d, 0x9d, 0x18, - 0x18, 0x4d, 0x91, 0x23, 0x99, 0xa9, 0x3b, 0x7a, 0x8a, 0xea, 0x89, 0x45, 0x0a, 0x51, 0x39, 0x52, - 0xb9, 0x1b, 0x62, 0x22, 0xc5, 0x51, 0x86, 0xa3, 0xbd, 0x31, 0xd0, 0x58, 0x54, 0x19, 0x4e, 0xb9, - 0x1e, 0x52, 0xf4, 0x3f, 0xf7, 0x6d, 0x82, 0x8d, 0x39, 0x49, 0x05, 0xd4, 0xaf, 0xca, 0x18, 0x24, - 0x59, 0x98, 0x55, 0x88, 0x2c, 0x0d, 0xee, 0x35, 0x9d, 0x98, 0x0a, 0xd9, 0xd0, 0x5b, 0x86, 0xa3, - 0x5d, 0xd1, 0x8d, 0x16, 0x61, 0x01, 0x83, 0x13, 0x23, 0x84, 0xf7, 0x51, 0x99, 0x72, 0x10, 0xd2, - 0x3c, 0x2a, 0x6b, 0x88, 0xb9, 0xca, 0xb2, 0x4f, 0x5c, 0xe5, 0x81, 0xba, 0x40, 0x25, 0xf4, 0xf6, - 0x97, 0x6c, 0x5c, 0x0b, 0x62, 0x6a, 0xd9, 0x2d, 0xa8, 0x80, 0xdd, 0xfe, 0x4c, 0x7b, 0xe2, 0xbb, - 0xb1, 0xfb, 0xe3, 0xb5, 0xc7, 0xe2, 0xf8, 0x8f, 0xfb, 0x20, 0xc6, 0xd6, 0xdb, 0x10, 0xa4, 0x57, - 0x1f, 0x58, 0x29, 0x68, 0x73, 0xc5, 0xb5, 0x99, 0xc5, 0x42, 0x36, 0xa2, 0x64, 0x00, 0x98, 0xe0, - 0xfc, 0x62, 0x71, 0x7a, 0x35, 0xdb, 0xe7, 0x5e, 0x2f, 0x2c, 0xaf, 0x9e, 0x3e, 0x99, 0x8d, 0xba, - 0x80, 0x35, 0x2e, 0x88, 0xf9, 0x0d, 0x4e, 0x4c, 0x65, 0xe3, 0x18, 0x09, 0x03, 0x9c, 0x60, 0xe1, - 0x62, 0x61, 0x0e, 0x2d, 0x12, 0x41, 0x09, 0xda, 0xf4, 0x2b, 0x83, 0x90, 0x62, 0x92, 0x99, 0x62, - 0x71, 0x31, 0x9b, 0x74, 0x39, 0x4b, 0xab, 0xea, 0xc2, 0xf2, 0x7c, 0x36, 0xe5, 0x72, 0xce, 0xab, - 0xc5, 0xb5, 0x95, 0x2c, 0xb8, 0x0c, 0x4b, 0x85, 0x52, 0x69, 0x7a, 0xbe, 0x90, 0x4d, 0xbb, 0x16, - 0x33, 0x0f, 0xac, 0x16, 0x4a, 0xd9, 0x81, 0xc0, 0xb0, 0xf0, 0x16, 0x83, 0xee, 0x2d, 0x0a, 0xcb, - 0x6b, 0x4b, 0xd9, 0x8c, 0x32, 0x0c, 0x83, 0xfc, 0x16, 0x72, 0x10, 0x43, 0x6d, 0x22, 0x1c, 0x69, - 0xd6, 0x1b, 0x08, 0x67, 0x19, 0x0e, 0x08, 0xd0, 0x42, 0x19, 0x9f, 0x85, 0x38, 0x8b, 0x2e, 0x8c, - 0xe2, 0xcc, 0xe2, 0xf4, 0x4c, 0x61, 0x51, 0x2b, 0xae, 0xac, 0x2e, 0x14, 0x97, 0xa7, 0x17, 0xd1, - 0x77, 0xae, 0x4c, 0x2d, 0xfc, 0xef, 0xda, 0x82, 0x5a, 0x98, 0x43, 0xff, 0xf9, 0x64, 0x2b, 0x85, - 0xe9, 0x55, 0x94, 0x45, 0xc7, 0x8f, 0xc2, 0x68, 0xb7, 0x3c, 0xd3, 0x6d, 0x65, 0x8c, 0x3f, 0x1f, - 0x81, 0x91, 0x2e, 0x29, 0xb3, 0xeb, 0x2a, 0xba, 0x07, 0xe2, 0x3c, 0xd2, 0x78, 0x11, 0xb9, 0xbd, - 0x6b, 0xee, 0x65, 0x71, 0xd7, 0x51, 0x48, 0x18, 0xce, 0x5f, 0x48, 0xa3, 0xdb, 0x14, 0x52, 0x4a, - 0xd1, 0x11, 0x4e, 0x8f, 0x46, 0x20, 0xb7, 0x1d, 0x77, 0xc8, 0x7a, 0xef, 0x0b, 0xac, 0xf7, 0xbb, - 0xda, 0x07, 0x70, 0x78, 0xfb, 0x67, 0xe8, 0x18, 0xc5, 0x0b, 0x11, 0xd8, 0xdb, 0xbd, 0xdf, 0xe8, - 0x3a, 0x86, 0xbb, 0x21, 0x51, 0x27, 0xce, 0xa6, 0x25, 0x6b, 0xee, 0xad, 0x5d, 0x32, 0x39, 0x55, - 0xb7, 0xfb, 0x4a, 0xa0, 0xfc, 0xa5, 0x20, 0xba, 0x5d, 0xd3, 0xc0, 0x47, 0xd3, 0x31, 0xd2, 0xc7, - 0xfa, 0xe0, 0xba, 0xae, 0xe4, 0x5d, 0x07, 0x7a, 0x23, 0x40, 0xcd, 0x6c, 0xb4, 0x1c, 0x5e, 0x57, - 0x79, 0x9a, 0x49, 0x31, 0x09, 0x5b, 0xc2, 0x34, 0x85, 0xb4, 0x1c, 0x57, 0x1f, 0x65, 0x7a, 0xe0, - 0x22, 0x66, 0x70, 0xd6, 0x1b, 0x68, 0x8c, 0x0d, 0xf4, 0xc0, 0x36, 0x4f, 0xda, 0x51, 0xb2, 0x8e, - 0x41, 0xb6, 0x6c, 0xd4, 0x88, 0xe9, 0x68, 0xb6, 0xd3, 0x24, 0x7a, 0xbd, 0x66, 0x56, 0x59, 0x1e, - 0x4d, 0xe6, 0xe3, 0x1b, 0xba, 0x61, 0x13, 0x75, 0x88, 0xab, 0x4b, 0x52, 0x4b, 0x11, 0xac, 0x58, - 0x34, 0x7d, 0x88, 0x44, 0x00, 0xc1, 0xd5, 0x2e, 0x62, 0xfc, 0xb7, 0xfd, 0x90, 0xf6, 0x75, 0x67, - 0xca, 0x61, 0x18, 0xb8, 0xa4, 0x5f, 0xd1, 0x35, 0xd9, 0x71, 0x73, 0x4f, 0xa4, 0xa9, 0x6c, 0x45, - 0x74, 0xdd, 0xc7, 0x60, 0x94, 0x99, 0xe0, 0x33, 0xe2, 0x8d, 0xca, 0x86, 0x6e, 0xdb, 0xcc, 0x69, - 0x49, 0x66, 0xaa, 0x50, 0x5d, 0x91, 0xaa, 0x66, 0xa5, 0x46, 0x39, 0x05, 0x23, 0x0c, 0x51, 0xc7, - 0xc4, 0x5b, 0x6b, 0x18, 0x44, 0xa3, 0x7b, 0x00, 0x9b, 0xe5, 0x53, 0x77, 0x64, 0xc3, 0xd4, 0x62, - 0x49, 0x18, 0xd0, 0x11, 0xd9, 0xca, 0x3c, 0xdc, 0xc8, 0x60, 0x55, 0x62, 0x92, 0xa6, 0xee, 0x10, - 0x8d, 0xfc, 0x7f, 0x0b, 0x6d, 0x35, 0xdd, 0xac, 0x68, 0x9b, 0xba, 0xbd, 0x99, 0x1b, 0xf5, 0x13, - 0xec, 0xa7, 0xb6, 0xf3, 0xc2, 0xb4, 0xc0, 0x2c, 0xa7, 0xcd, 0xca, 0xbd, 0x68, 0xa7, 0xe4, 0x61, - 0x2f, 0x23, 0x42, 0xa7, 0xe0, 0x33, 0x6b, 0xe5, 0x4d, 0x52, 0xbe, 0xac, 0xb5, 0x9c, 0x8d, 0xb3, - 0xb9, 0xeb, 0xfd, 0x0c, 0x6c, 0x90, 0x25, 0x66, 0x33, 0x4b, 0x4d, 0xd6, 0xd0, 0x42, 0x29, 0xc1, - 0x00, 0x9d, 0x8f, 0x7a, 0xed, 0x61, 0x1c, 0xb6, 0xd5, 0x64, 0x35, 0x22, 0xd3, 0x65, 0x71, 0xfb, - 0x9c, 0x38, 0x51, 0x14, 0x80, 0x25, 0xec, 0x4f, 0xf3, 0xf1, 0xd2, 0x4a, 0xa1, 0x30, 0xa7, 0xa6, - 0x25, 0xcb, 0x79, 0xab, 0x49, 0x63, 0xaa, 0x6a, 0xb9, 0x3e, 0x4e, 0xf3, 0x98, 0xaa, 0x5a, 0xd2, - 0xc3, 0xe8, 0xaf, 0x72, 0x99, 0x3f, 0x36, 0xee, 0x5d, 0x44, 0xb3, 0x6e, 0xe7, 0xb2, 0x01, 0x7f, - 0x95, 0xcb, 0xf3, 0xdc, 0x40, 0x84, 0xb9, 0x8d, 0x4b, 0xe2, 0x3a, 0xcf, 0x5f, 0x7e, 0xe0, 0x70, - 0xc7, 0x53, 0xb6, 0x43, 0xf1, 0x8e, 0x8d, 0xad, 0x4e, 0xa0, 0x12, 0xb8, 0x63, 0x63, 0xab, 0x1d, - 0x76, 0x0b, 0xdb, 0x80, 0x35, 0x49, 0x19, 0x5d, 0x5e, 0xc9, 0xed, 0xf3, 0x5b, 0xfb, 0x14, 0xca, - 0x24, 0x06, 0x72, 0x59, 0x23, 0xa6, 0xbe, 0x8e, 0x73, 0xaf, 0x37, 0xf1, 0x8b, 0x9d, 0x3b, 0xe8, - 0x37, 0xce, 0x94, 0xcb, 0x05, 0xa6, 0x9d, 0x66, 0x4a, 0xe5, 0x28, 0x0c, 0x5b, 0xeb, 0x97, 0xca, - 0x3c, 0xb8, 0x34, 0xe4, 0xd9, 0xa8, 0x5d, 0xcd, 0xdd, 0xcc, 0xdc, 0x34, 0x44, 0x15, 0x2c, 0xb4, - 0x56, 0x98, 0x58, 0xb9, 0x1d, 0xc9, 0xed, 0x4d, 0xbd, 0xd9, 0x60, 0x45, 0xda, 0x46, 0xa7, 0x92, - 0xdc, 0x2d, 0xdc, 0x94, 0xcb, 0x97, 0xa5, 0x58, 0x29, 0xc0, 0x41, 0xfa, 0xf0, 0xa6, 0x6e, 0x5a, - 0x5a, 0xcb, 0x26, 0x9a, 0x37, 0x44, 0x77, 0x2e, 0x6e, 0xa5, 0xc3, 0x52, 0x6f, 0x90, 0x66, 0x6b, - 0x36, 0x26, 0x33, 0x69, 0x24, 0xa7, 0xe7, 0x22, 0x8c, 0xb6, 0xcc, 0x9a, 0x89, 0x21, 0x8e, 0x1a, - 0x0a, 0xe6, 0x0b, 0x36, 0xf7, 0xc7, 0xfe, 0x6d, 0x9a, 0xee, 0x35, 0xbf, 0x35, 0x0f, 0x12, 0x75, - 0xa4, 0xd5, 0x29, 0x1c, 0xcf, 0xc3, 0x80, 0x3f, 0x76, 0x94, 0x14, 0xf0, 0xe8, 0xc1, 0xea, 0x86, - 0x15, 0x75, 0xb6, 0x38, 0x47, 0x6b, 0xe1, 0x83, 0x05, 0x2c, 0x6c, 0x58, 0x93, 0x17, 0x17, 0x56, - 0x0b, 0x9a, 0xba, 0xb6, 0xbc, 0xba, 0xb0, 0x54, 0xc8, 0x46, 0x8f, 0xa6, 0x92, 0x6f, 0xf7, 0x67, - 0x1f, 0xc1, 0xbf, 0xbe, 0xf1, 0x57, 0xfb, 0x20, 0x13, 0xec, 0x83, 0x95, 0xff, 0x86, 0x7d, 0x72, - 0xd3, 0x6a, 0x13, 0x47, 0x7b, 0xa8, 0xd6, 0x64, 0xe1, 0x5c, 0xd7, 0x79, 0x27, 0xe9, 0xce, 0xc4, - 0xa8, 0xb0, 0xc2, 0xed, 0xfd, 0xfd, 0x68, 0x73, 0x9e, 0x99, 0x28, 0x8b, 0x70, 0x10, 0x5d, 0x86, - 0xbd, 0xa6, 0x59, 0xd1, 0x9b, 0x15, 0xcd, 0x3b, 0x2e, 0xd0, 0xf4, 0x32, 0xc6, 0x81, 0x6d, 0xf1, - 0x4a, 0xe2, 0xb2, 0xdc, 0x60, 0x5a, 0x25, 0x61, 0xec, 0xa5, 0xd8, 0x69, 0x61, 0xda, 0x16, 0x35, - 0xd1, 0xed, 0xa2, 0x06, 0x7b, 0xaf, 0xba, 0xde, 0xc0, 0xb0, 0x71, 0x9a, 0x5b, 0xac, 0x7b, 0x4b, - 0xaa, 0x49, 0x14, 0x14, 0xe8, 0xf5, 0x87, 0x37, 0x07, 0x7e, 0x3f, 0xfe, 0x3e, 0x0a, 0x03, 0xfe, - 0x0e, 0x8e, 0x36, 0xc4, 0x65, 0x96, 0xe6, 0x23, 0x2c, 0x0b, 0xdc, 0xb4, 0x63, 0xbf, 0x37, 0x31, - 0x4b, 0xf3, 0x7f, 0x3e, 0xc1, 0xfb, 0x2a, 0x95, 0x23, 0x69, 0xed, 0xa5, 0xb1, 0x46, 0x78, 0xb7, - 0x9e, 0x54, 0xc5, 0x15, 0x26, 0xbb, 0xc4, 0x25, 0x9b, 0x71, 0x27, 0x18, 0xf7, 0xcd, 0x3b, 0x73, - 0x5f, 0x28, 0x31, 0xf2, 0xd4, 0x85, 0x92, 0xb6, 0x5c, 0x54, 0x97, 0xa6, 0x17, 0x55, 0x01, 0x57, - 0xf6, 0x43, 0xcc, 0xd0, 0x1f, 0xde, 0x0a, 0x56, 0x0a, 0x26, 0xea, 0xd5, 0xf1, 0xc8, 0x40, 0x8f, - 0x3c, 0x82, 0xf9, 0x99, 0x89, 0x3e, 0xc4, 0xd0, 0x9f, 0x84, 0x38, 0xf3, 0x97, 0x02, 0x20, 0x3c, - 0x96, 0xdd, 0xa3, 0x24, 0x21, 0x36, 0x5b, 0x54, 0x69, 0xf8, 0x63, 0xbc, 0x73, 0xa9, 0xb6, 0xb2, - 0x50, 0x98, 0xc5, 0x15, 0x30, 0x7e, 0x0a, 0x12, 0xdc, 0x09, 0x74, 0x69, 0xb8, 0x6e, 0x40, 0x10, - 0xbf, 0x14, 0x1c, 0x11, 0xa9, 0x5d, 0x5b, 0x9a, 0x29, 0xa8, 0xd9, 0x3e, 0xff, 0xf4, 0xfe, 0x34, - 0x02, 0x69, 0x5f, 0x43, 0x45, 0x4b, 0xb9, 0x6e, 0x18, 0xd6, 0x43, 0x9a, 0x6e, 0xd4, 0x30, 0x43, - 0xf1, 0xf9, 0x01, 0x26, 0x9a, 0xa6, 0x92, 0x5e, 0xfd, 0xf7, 0x6f, 0x89, 0xcd, 0x67, 0x23, 0x90, - 0x6d, 0x6f, 0xc6, 0xda, 0x06, 0x18, 0xf9, 0x48, 0x07, 0xf8, 0x74, 0x04, 0x32, 0xc1, 0x0e, 0xac, - 0x6d, 0x78, 0x87, 0x3f, 0xd2, 0xe1, 0x3d, 0x15, 0x81, 0xc1, 0x40, 0xdf, 0xf5, 0x1f, 0x35, 0xba, - 0x27, 0xa3, 0x30, 0xd2, 0x05, 0x87, 0x09, 0x88, 0x37, 0xa8, 0xbc, 0x67, 0xbe, 0xb3, 0x97, 0x7b, - 0x4d, 0xd0, 0xfa, 0xb7, 0xa2, 0x37, 0x1d, 0xd1, 0xcf, 0x62, 0xbd, 0xac, 0x55, 0x30, 0xa9, 0xd6, - 0x36, 0x6a, 0xd8, 0xbe, 0xf1, 0x1d, 0x0b, 0xef, 0x5a, 0x87, 0x3c, 0x39, 0xdf, 0x1e, 0xff, 0x17, - 0x28, 0x0d, 0xcb, 0xae, 0x39, 0xb5, 0x2b, 0xf4, 0x78, 0x4e, 0x6e, 0xa4, 0x69, 0x17, 0x1b, 0x53, - 0xb3, 0x52, 0xb3, 0x60, 0x3a, 0xae, 0xb5, 0x49, 0xaa, 0x7a, 0x9b, 0x35, 0x4d, 0x43, 0x51, 0x35, - 0x2b, 0x35, 0xae, 0x35, 0x36, 0x9a, 0x15, 0xab, 0x45, 0x1b, 0x02, 0x6e, 0x47, 0xb3, 0x5e, 0x44, - 0x4d, 0x73, 0x99, 0x6b, 0x22, 0x3a, 0x36, 0x6f, 0x07, 0x3f, 0xa0, 0xa6, 0xb9, 0x8c, 0x9b, 0xdc, - 0x06, 0x43, 0x7a, 0xb5, 0xda, 0xa4, 0xe4, 0x92, 0x88, 0xb7, 0xa1, 0x19, 0x57, 0xcc, 0x0c, 0xc7, - 0x2e, 0x40, 0x52, 0xfa, 0x81, 0x16, 0x16, 0xea, 0x09, 0xac, 0xf9, 0xec, 0x1c, 0xa5, 0x8f, 0x6e, - 0xea, 0x4d, 0xa9, 0xc4, 0x9b, 0xd6, 0x6c, 0xcd, 0x3b, 0xd0, 0xeb, 0x43, 0x7d, 0x52, 0x4d, 0xd7, - 0x6c, 0xf7, 0x04, 0x67, 0xfc, 0x05, 0x2c, 0xaf, 0xc1, 0x03, 0x49, 0x65, 0x0e, 0x92, 0x86, 0x85, - 0xf1, 0x41, 0x11, 0xfc, 0x34, 0xfc, 0x48, 0xc8, 0x19, 0xe6, 0xc4, 0xa2, 0xb0, 0x57, 0x5d, 0xe4, - 0xd8, 0xaf, 0x22, 0x90, 0x94, 0x62, 0x2c, 0x14, 0xb1, 0x86, 0xee, 0x6c, 0x32, 0xba, 0xf8, 0x4c, - 0x5f, 0x36, 0xa2, 0xb2, 0x6b, 0x2a, 0xc7, 0x6e, 0xc6, 0x64, 0x21, 0x20, 0xe4, 0xf4, 0x9a, 0xce, - 0xab, 0x41, 0xf4, 0x0a, 0x6b, 0x70, 0xad, 0x7a, 0x1d, 0x67, 0xd2, 0x96, 0xf3, 0x2a, 0xe4, 0xb3, - 0x42, 0x4c, 0xcf, 0xc5, 0x9d, 0xa6, 0x5e, 0x33, 0x02, 0xb6, 0x31, 0x66, 0x9b, 0x95, 0x0a, 0xd7, - 0x38, 0x0f, 0xfb, 0x25, 0x6f, 0x85, 0x38, 0x3a, 0x36, 0xcf, 0x15, 0x0f, 0x94, 0x60, 0xa7, 0x5d, - 0xfb, 0x84, 0xc1, 0x9c, 0xd0, 0x4b, 0xec, 0xcc, 0x45, 0x6c, 0x64, 0xad, 0x7a, 0xbb, 0x27, 0x66, - 0xb2, 0x6d, 0xfb, 0x2e, 0xfb, 0xde, 0xc8, 0x83, 0xe0, 0x35, 0x15, 0xcf, 0xf7, 0x45, 0xe7, 0x57, - 0x66, 0x5e, 0xea, 0x1b, 0x9b, 0xe7, 0xb8, 0x15, 0xe9, 0x41, 0x95, 0x6c, 0x18, 0xa4, 0x4c, 0xbd, - 0x03, 0xcf, 0xdd, 0x04, 0x77, 0x56, 0x6b, 0xce, 0x66, 0x6b, 0x7d, 0x02, 0xef, 0x30, 0x59, 0xb5, - 0xaa, 0x96, 0xf7, 0x3a, 0x83, 0x5e, 0xb1, 0x0b, 0xf6, 0x4d, 0xbc, 0xd2, 0x48, 0xb9, 0xd2, 0xb1, - 0xd0, 0xf7, 0x1f, 0xf9, 0x65, 0x18, 0x11, 0xc6, 0x1a, 0x3b, 0x53, 0xe5, 0x2d, 0xa8, 0xb2, 0xe3, - 0x86, 0x3c, 0xf7, 0xca, 0x5b, 0xac, 0x24, 0xa8, 0xc3, 0x02, 0x4a, 0x75, 0xbc, 0x49, 0xcd, 0xab, - 0x70, 0x5d, 0x80, 0x8f, 0xc7, 0x30, 0x6e, 0xb9, 0x77, 0x66, 0x7c, 0x55, 0x30, 0x8e, 0xf8, 0x18, - 0x4b, 0x02, 0x9a, 0x9f, 0x85, 0xc1, 0xdd, 0x70, 0xfd, 0x42, 0x70, 0x0d, 0x10, 0x3f, 0xc9, 0x3c, - 0x0c, 0x31, 0x92, 0x72, 0xcb, 0x76, 0xac, 0x3a, 0x4b, 0x10, 0x3b, 0xd3, 0xfc, 0xf2, 0x2d, 0x1e, - 0x54, 0x19, 0x0a, 0x9b, 0x75, 0x51, 0xf9, 0xfb, 0x60, 0x94, 0x4a, 0xd8, 0x1a, 0xf4, 0xb3, 0x85, - 0x1f, 0x21, 0xe4, 0x7e, 0xf3, 0x28, 0x8f, 0xbd, 0x11, 0x97, 0xc0, 0xc7, 0xeb, 0x9b, 0x89, 0x2a, - 0x71, 0x30, 0xb7, 0xe1, 0xfe, 0xcf, 0x30, 0x94, 0x1d, 0xdf, 0x31, 0xe4, 0x9e, 0x78, 0x27, 0x38, - 0x13, 0xf3, 0x1c, 0x39, 0x6d, 0x18, 0xf9, 0x35, 0xd8, 0xd7, 0x65, 0x66, 0x7b, 0xe0, 0x7c, 0x52, - 0x70, 0x8e, 0x76, 0xcc, 0x2e, 0xa5, 0x5d, 0x01, 0x29, 0x77, 0xe7, 0xa3, 0x07, 0xce, 0xa7, 0x04, - 0xa7, 0x22, 0xb0, 0x72, 0x5a, 0x28, 0xe3, 0x05, 0x18, 0xc6, 0x9d, 0xfa, 0xba, 0x65, 0x8b, 0x7d, - 0x6f, 0x0f, 0x74, 0x4f, 0x0b, 0xba, 0x21, 0x01, 0x64, 0xbb, 0x60, 0xca, 0x75, 0x0e, 0x92, 0x1b, - 0xb8, 0x01, 0xea, 0x81, 0xe2, 0x19, 0x41, 0xd1, 0x4f, 0xed, 0x29, 0x74, 0x1a, 0x06, 0xaa, 0x96, - 0x48, 0xc3, 0xe1, 0xf0, 0x67, 0x05, 0x3c, 0x2d, 0x31, 0x82, 0xa2, 0x61, 0x35, 0x5a, 0x06, 0xcd, - 0xd1, 0xe1, 0x14, 0x5f, 0x95, 0x14, 0x12, 0x23, 0x28, 0x76, 0xe1, 0xd6, 0xaf, 0x49, 0x0a, 0xdb, - 0xe7, 0xcf, 0x7b, 0xe8, 0x59, 0xaf, 0xb1, 0x65, 0x99, 0xbd, 0x0c, 0xe2, 0x39, 0xc1, 0x00, 0x02, - 0x42, 0x09, 0xee, 0x82, 0x54, 0xaf, 0x13, 0xf1, 0x75, 0x01, 0x4f, 0x12, 0x39, 0x03, 0xb8, 0xce, - 0x64, 0x92, 0xa1, 0xef, 0x56, 0xc2, 0x29, 0xbe, 0x21, 0x28, 0x32, 0x3e, 0x98, 0x78, 0x0c, 0x87, - 0xd8, 0x0e, 0x6e, 0xd5, 0x7b, 0x20, 0x79, 0x41, 0x3e, 0x86, 0x80, 0x08, 0x57, 0xae, 0x13, 0xb3, - 0xbc, 0xd9, 0x1b, 0xc3, 0x8b, 0xd2, 0x95, 0x12, 0x43, 0x29, 0x30, 0xf3, 0xd4, 0xf5, 0x26, 0x6e, - 0xae, 0x8d, 0x9e, 0xa6, 0xe3, 0x9b, 0x82, 0x63, 0xc0, 0x05, 0x09, 0x8f, 0xb4, 0xcc, 0xdd, 0xd0, - 0xbc, 0x24, 0x3d, 0xe2, 0x83, 0x89, 0xa5, 0x87, 0x3b, 0x53, 0xda, 0x49, 0xec, 0x86, 0xed, 0x5b, - 0x72, 0xe9, 0x71, 0xec, 0x92, 0x9f, 0x11, 0x67, 0xda, 0xc6, 0x2d, 0x78, 0x2f, 0x34, 0xdf, 0x96, - 0x33, 0xcd, 0x00, 0x14, 0xfc, 0x00, 0xec, 0xef, 0x9a, 0xea, 0x7b, 0x20, 0xfb, 0x8e, 0x20, 0xdb, - 0xdb, 0x25, 0xdd, 0x8b, 0x94, 0xb0, 0x5b, 0xca, 0xef, 0xca, 0x94, 0x40, 0xda, 0xb8, 0x56, 0x68, - 0x1b, 0x6b, 0xeb, 0x1b, 0xbb, 0xf3, 0xda, 0xf7, 0xa4, 0xd7, 0x38, 0x36, 0xe0, 0xb5, 0x55, 0xd8, - 0x2b, 0x18, 0x77, 0x37, 0xaf, 0x2f, 0xcb, 0xc4, 0xca, 0xd1, 0x6b, 0xc1, 0xd9, 0xfd, 0x3f, 0x18, - 0x73, 0xdd, 0x29, 0x3b, 0x30, 0x5b, 0xa3, 0x07, 0x03, 0xe1, 0xcc, 0xaf, 0x08, 0x66, 0x99, 0xf1, - 0xdd, 0x16, 0xce, 0x5e, 0xd2, 0x1b, 0x94, 0xfc, 0x22, 0xe4, 0x24, 0x79, 0xcb, 0xc4, 0x06, 0xdf, - 0xaa, 0x9a, 0x38, 0x8d, 0x95, 0x1e, 0xa8, 0xbf, 0xdf, 0x36, 0x55, 0x6b, 0x3e, 0x38, 0x65, 0x5e, - 0x80, 0xac, 0xdb, 0x6f, 0x68, 0xb5, 0x7a, 0xc3, 0xc2, 0xd6, 0x72, 0x67, 0xc6, 0x1f, 0xc8, 0x99, - 0x72, 0x71, 0x0b, 0x0c, 0x96, 0x2f, 0x40, 0x86, 0x5d, 0xf6, 0x1a, 0x92, 0x3f, 0x14, 0x44, 0x83, - 0x1e, 0x4a, 0x24, 0x0e, 0xec, 0x94, 0xb0, 0xe7, 0xed, 0x25, 0xff, 0xfd, 0x48, 0x26, 0x0e, 0x01, - 0xe1, 0xd1, 0x37, 0xd4, 0x56, 0x89, 0x95, 0xb0, 0xd7, 0xaf, 0xb9, 0x8f, 0x5d, 0x13, 0x6b, 0x36, - 0x58, 0x88, 0xf3, 0x8b, 0xd4, 0x3d, 0xc1, 0x72, 0x19, 0x4e, 0xf6, 0xe8, 0x35, 0xd7, 0x43, 0x81, - 0x6a, 0x99, 0x3f, 0x0f, 0x83, 0x81, 0x52, 0x19, 0x4e, 0xf5, 0x71, 0x41, 0x35, 0xe0, 0xaf, 0x94, - 0xf9, 0x53, 0x10, 0xa3, 0x65, 0x2f, 0x1c, 0xfe, 0x09, 0x01, 0x67, 0xe6, 0xf9, 0xff, 0x81, 0xa4, - 0x2c, 0x77, 0xe1, 0xd0, 0x4f, 0x0a, 0xa8, 0x0b, 0xa1, 0x70, 0x59, 0xea, 0xc2, 0xe1, 0x9f, 0x92, - 0x70, 0x09, 0xa1, 0xf0, 0xde, 0x5d, 0xf8, 0xb3, 0x4f, 0xc7, 0x44, 0xba, 0x92, 0xbe, 0xa3, 0xef, - 0x7c, 0x78, 0x8d, 0x0b, 0x47, 0x3f, 0x26, 0x6e, 0x2e, 0x11, 0xf9, 0x33, 0x10, 0xef, 0xd1, 0xe1, - 0x9f, 0x11, 0x50, 0x6e, 0x8f, 0x15, 0x24, 0xed, 0xab, 0x6b, 0xe1, 0xf0, 0xcf, 0x0a, 0xb8, 0x1f, - 0x45, 0x87, 0x2e, 0xea, 0x5a, 0x38, 0xc1, 0xe7, 0xe4, 0xd0, 0x05, 0x82, 0xba, 0x4d, 0x96, 0xb4, - 0x70, 0xf4, 0xe7, 0xa5, 0xd7, 0x25, 0x04, 0x57, 0x53, 0xca, 0x4d, 0x53, 0xe1, 0xf8, 0x2f, 0x08, - 0xbc, 0x87, 0xa1, 0x1e, 0xf0, 0xa5, 0xc9, 0x70, 0x8a, 0x2f, 0x4a, 0x0f, 0xf8, 0x50, 0x74, 0x19, - 0xb5, 0x97, 0xbe, 0x70, 0xa6, 0x2f, 0xc9, 0x65, 0xd4, 0x56, 0xf9, 0xe8, 0x6c, 0xb2, 0x6c, 0x11, - 0x4e, 0xf1, 0x65, 0x39, 0x9b, 0xcc, 0x9e, 0x0e, 0xa3, 0xbd, 0x96, 0x84, 0x73, 0x7c, 0x45, 0x0e, - 0xa3, 0xad, 0x94, 0x60, 0x65, 0x52, 0x3a, 0xeb, 0x48, 0x38, 0xdf, 0xe3, 0x82, 0x6f, 0xb8, 0xa3, - 0x8c, 0xe4, 0xef, 0x87, 0xbd, 0xdd, 0x6b, 0x48, 0x38, 0xeb, 0x13, 0xd7, 0xda, 0xba, 0x7e, 0x7f, - 0x09, 0xc1, 0x92, 0x37, 0xda, 0xad, 0x7e, 0x84, 0xd3, 0x3e, 0x79, 0x2d, 0xb8, 0xb1, 0xf3, 0x97, - 0x0f, 0xec, 0xd0, 0xc0, 0x4b, 0xdd, 0xe1, 0x5c, 0x4f, 0x0b, 0x2e, 0x1f, 0x88, 0x2e, 0x0d, 0x91, - 0xb9, 0xc3, 0xf1, 0xcf, 0xc8, 0xa5, 0x21, 0x10, 0x08, 0x4e, 0x9a, 0x2d, 0xc3, 0xa0, 0xc1, 0xa1, - 0xec, 0xfc, 0x93, 0x86, 0xdc, 0x9f, 0xde, 0x17, 0x0b, 0x43, 0x02, 0x30, 0x87, 0xc6, 0x49, 0x7d, - 0x1d, 0x7d, 0x10, 0x82, 0xfc, 0xf3, 0xfb, 0x32, 0x21, 0x50, 0x6b, 0x5c, 0x4f, 0xc0, 0x37, 0x8d, - 0xec, 0x0c, 0x3b, 0x04, 0xfb, 0x97, 0xf7, 0xc5, 0x6b, 0x56, 0x0f, 0xe2, 0x11, 0xf0, 0x97, 0xb6, - 0x3b, 0x13, 0xbc, 0x13, 0x24, 0x60, 0x1b, 0xcd, 0x73, 0xd0, 0x4f, 0x7f, 0xd9, 0xe1, 0xe8, 0xd5, - 0x30, 0xf4, 0x5f, 0x05, 0x5a, 0xda, 0x53, 0x87, 0xd5, 0xad, 0x26, 0xc1, 0xaf, 0x76, 0x18, 0xf6, - 0x6f, 0x02, 0xeb, 0x02, 0x28, 0xb8, 0xac, 0xdb, 0x4e, 0x2f, 0xcf, 0xfd, 0x77, 0x09, 0x96, 0x00, - 0x3a, 0x68, 0xfa, 0xfd, 0x32, 0xd9, 0x0a, 0xc3, 0xbe, 0x2b, 0x07, 0x2d, 0xec, 0x31, 0x01, 0xa6, - 0xe8, 0x57, 0xfe, 0xd3, 0x83, 0x10, 0xf0, 0x3f, 0x04, 0xd8, 0x43, 0xcc, 0x1c, 0xee, 0x7e, 0xb4, - 0x03, 0xf3, 0xd6, 0xbc, 0xc5, 0x0f, 0x75, 0xe0, 0xd9, 0x38, 0x1c, 0x42, 0x1b, 0xac, 0xaf, 0x93, - 0x7c, 0x4d, 0xba, 0x2b, 0x72, 0x12, 0x8b, 0x87, 0x38, 0x96, 0x89, 0xe2, 0xd7, 0xb1, 0xdd, 0x1d, - 0xe5, 0x8c, 0xef, 0x87, 0x78, 0xa9, 0xb5, 0xbe, 0xbe, 0x45, 0x7f, 0xf7, 0x64, 0xb7, 0xd6, 0xc5, - 0x4b, 0x6a, 0xfa, 0x95, 0xbe, 0xb2, 0x49, 0x97, 0xf4, 0x7a, 0x03, 0x5b, 0x19, 0x93, 0x14, 0x37, - 0x94, 0x1c, 0x24, 0xd8, 0x93, 0x1c, 0x67, 0x46, 0x91, 0x7b, 0xf7, 0xa8, 0x09, 0xf6, 0xab, 0xbd, - 0xe3, 0xae, 0x66, 0x8a, 0x1d, 0xf4, 0xf7, 0xb9, 0x9a, 0x29, 0x57, 0x73, 0x82, 0xff, 0x1c, 0xca, - 0xd5, 0x9c, 0x70, 0x35, 0x27, 0xd9, 0x69, 0x59, 0xd4, 0xd5, 0x9c, 0x74, 0x35, 0xa7, 0xd8, 0x81, - 0xe7, 0xa0, 0xab, 0x39, 0xe5, 0x6a, 0x4e, 0xb3, 0x23, 0xce, 0x98, 0xab, 0x39, 0xed, 0x6a, 0xce, - 0xb0, 0x93, 0xcd, 0x61, 0x57, 0x73, 0xc6, 0xd5, 0x9c, 0x65, 0xa7, 0x99, 0x8a, 0xab, 0x39, 0xeb, - 0x6a, 0xce, 0xb1, 0x17, 0xd1, 0xfd, 0xae, 0xe6, 0x9c, 0x32, 0x06, 0xfd, 0xfc, 0x49, 0x8f, 0xb1, - 0x17, 0x37, 0x43, 0xa8, 0xea, 0xe7, 0x8f, 0x7a, 0xcc, 0xd3, 0x1d, 0x67, 0x2f, 0x9b, 0x13, 0x9e, - 0xee, 0xb8, 0xa7, 0x9b, 0x62, 0x3f, 0x9e, 0xcc, 0x7a, 0xba, 0x29, 0x4f, 0x77, 0x22, 0x37, 0x48, - 0x57, 0xab, 0xa7, 0x3b, 0xe1, 0xe9, 0x4e, 0xe6, 0x32, 0xd4, 0xff, 0x9e, 0xee, 0xa4, 0xa7, 0x3b, - 0x95, 0x1b, 0xa2, 0x87, 0xb6, 0x9e, 0xee, 0x94, 0x72, 0x27, 0xa4, 0x71, 0xa2, 0x34, 0xf1, 0x9e, - 0x91, 0xbd, 0xd4, 0x4e, 0x4f, 0xc1, 0x04, 0x8d, 0x08, 0x36, 0xa9, 0x68, 0x0b, 0x68, 0x20, 0x92, - 0xd4, 0xcc, 0x00, 0xb0, 0xcd, 0xab, 0xc6, 0x7e, 0x94, 0x35, 0x33, 0xf7, 0xda, 0x1b, 0x07, 0xf6, - 0xfc, 0x1a, 0x3f, 0xbf, 0xc3, 0xcf, 0xeb, 0x6f, 0x1c, 0x88, 0xbc, 0x8b, 0x9f, 0xf7, 0xf0, 0xf3, - 0xc8, 0x9b, 0x07, 0x22, 0x2f, 0xe2, 0xe7, 0x65, 0xfc, 0xfc, 0x04, 0x3f, 0xaf, 0xbd, 0x89, 0x76, - 0xf8, 0x79, 0x1d, 0xbf, 0xbf, 0x8d, 0xff, 0xdf, 0xc5, 0xff, 0xef, 0xe1, 0xe7, 0x91, 0x3f, 0x1c, - 0xd8, 0xb3, 0x9e, 0x60, 0x61, 0x74, 0xe2, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xfc, 0x25, - 0xa8, 0x0b, 0x2d, 0x00, 0x00, + // 3862 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x8d, 0x95, 0x63, 0xae, 0x56, 0xb1, + 0x63, 0xd9, 0xae, 0x25, 0x5b, 0xbb, 0xda, 0x0b, 0xb7, 0x89, 0x87, 0xa2, 0xb8, 0x5a, 0x6e, 0x25, + 0x91, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x40, 0xf0, 0x27, 0x85, 0x5d, 0x10, 0x60, 0x00, 0x70, + 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, 0x66, + 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xa6, 0x4f, 0x7d, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, + 0x87, 0x3c, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0xcc, 0xf8, 0xa5, 0xf3, + 0xdf, 0x00, 0xf0, 0xa2, 0x05, 0x95, 0x19, 0x27, 0x4f, 0x12, 0xce, 0x39, 0xdf, 0x87, 0x83, 0xf3, + 0x9f, 0xff, 0x9c, 0x83, 0x9f, 0x80, 0xef, 0x6f, 0xc0, 0x52, 0xc7, 0xb6, 0x3b, 0x26, 0x5a, 0xeb, + 0x39, 0xb6, 0x67, 0x37, 0xfb, 0xed, 0xb5, 0x16, 0x72, 0x75, 0xc7, 0xe8, 0x79, 0xb6, 0xb3, 0x4a, + 0x64, 0x52, 0x9e, 0x5a, 0xac, 0x72, 0x8b, 0xe5, 0x5d, 0x98, 0xbb, 0x6e, 0x98, 0x68, 0xcb, 0x37, + 0x6c, 0x20, 0x4f, 0xba, 0x02, 0x89, 0xb6, 0x61, 0x22, 0x59, 0x58, 0x8a, 0xaf, 0x64, 0xd6, 0x9f, + 0x58, 0x1d, 0x02, 0xad, 0x0e, 0x22, 0xea, 0x58, 0xac, 0x10, 0xc4, 0xf2, 0xbb, 0x09, 0x98, 0x1f, + 0xa3, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x17, 0x33, 0x0a, 0x2b, 0x69, 0x85, 0xfc, 0x2f, 0xc9, 0x30, + 0xd3, 0xd3, 0xf4, 0x3b, 0x5a, 0x07, 0xc9, 0x31, 0x22, 0xe6, 0x97, 0x52, 0x01, 0xa0, 0x85, 0x7a, + 0xc8, 0x6a, 0x21, 0x4b, 0x3f, 0x92, 0xe3, 0x4b, 0xf1, 0x95, 0xb4, 0x12, 0x92, 0x48, 0xcf, 0xc2, + 0x5c, 0xaf, 0xdf, 0x34, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0x52, 0x7c, 0x25, 0xa9, 0x88, 0x54, 0xb1, + 0x15, 0x18, 0x3f, 0x05, 0xf9, 0x7b, 0x48, 0xbb, 0x13, 0x36, 0xcd, 0x10, 0xd3, 0x1c, 0x16, 0x87, + 0x0c, 0xcb, 0x90, 0xed, 0x22, 0xd7, 0xd5, 0x3a, 0x48, 0xf5, 0x8e, 0x7a, 0x48, 0x4e, 0x90, 0xa7, + 0x5f, 0x1a, 0x79, 0xfa, 0xe1, 0x27, 0xcf, 0x30, 0xd4, 0xfe, 0x51, 0x0f, 0x49, 0x25, 0x48, 0x23, + 0xab, 0xdf, 0xa5, 0x0c, 0xc9, 0x13, 0xe2, 0x57, 0xb1, 0xfa, 0xdd, 0x61, 0x96, 0x14, 0x86, 0x31, + 0x8a, 0x19, 0x17, 0x39, 0x77, 0x0d, 0x1d, 0xc9, 0xd3, 0x84, 0xe0, 0xa9, 0x11, 0x82, 0x06, 0xd5, + 0x0f, 0x73, 0x70, 0x9c, 0x54, 0x86, 0x34, 0x7a, 0xc5, 0x43, 0x96, 0x6b, 0xd8, 0x96, 0x3c, 0x43, + 0x48, 0x9e, 0x1c, 0xb3, 0x8a, 0xc8, 0x6c, 0x0d, 0x53, 0x04, 0x38, 0xe9, 0x12, 0xcc, 0xd8, 0x3d, + 0xcf, 0xb0, 0x2d, 0x57, 0x4e, 0x2d, 0x09, 0x2b, 0x99, 0xf5, 0x8f, 0x8d, 0x4d, 0x84, 0x1a, 0xb5, + 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, 0xb0, + 0xda, 0xb6, 0x9c, 0x26, 0x04, 0xe7, 0x46, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, 0x6d, + 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x19, 0x98, 0x76, 0x8f, 0x2c, 0x4f, 0x7b, 0x45, 0xce, 0x92, + 0x0c, 0x61, 0x57, 0xcb, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, 0x94, + 0x72, 0xec, 0x34, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x98, 0x41, 0x2c, 0x41, 0xc6, 0x42, + 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, 0xac, + 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xb5, 0x28, 0x4f, 0x56, + 0x2b, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x16, 0x80, 0x6d, 0x21, 0xbb, 0xad, + 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x13, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, 0x37, + 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x9c, 0x90, 0x29, 0xbb, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x01, 0xe4, + 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0xab, 0x91, 0x4f, 0xa6, 0x30, 0x18, + 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x1c, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, 0xca, + 0x72, 0xe1, 0x9e, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, 0xa7, + 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, 0x54, + 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0xbf, 0x30, 0x0d, 0x0b, 0xe3, + 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x81, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, 0x76, + 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x25, 0x61, 0x25, 0xb7, 0xfe, 0xec, 0x44, + 0x59, 0xbd, 0xba, 0x83, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x82, 0x04, 0x2b, 0x71, 0x98, 0xe1, 0x99, + 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x06, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, 0xf8, + 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, 0x1a, + 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, 0x95, + 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x73, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x0a, 0xa9, + 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, 0xdc, + 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc7, 0x3f, 0xde, 0x70, 0x2e, 0x2e, 0x7f, + 0x33, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7f, 0xb9, 0x5e, 0x51, 0xb7, 0x6a, 0x07, 0x9b, + 0x3b, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xa7, 0x56, 0xda, 0x17, 0x63, 0xfe, 0x75, + 0x75, 0x6f, 0xff, 0xd2, 0x45, 0x31, 0xee, 0x03, 0x0e, 0xa8, 0x20, 0x11, 0x36, 0xb8, 0xb0, 0x2e, + 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x75, 0xe9, 0xa2, 0x38, 0x3d, 0x28, 0xb9, + 0xb0, 0x2e, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0xcd, 0x5a, 0x6d, 0x47, 0x4c, 0xf9, 0x9c, 0x8d, + 0x7d, 0xa5, 0xba, 0xb7, 0x2d, 0xa6, 0x7d, 0xce, 0x6d, 0xa5, 0x76, 0x50, 0x17, 0xc1, 0x67, 0xd8, + 0xad, 0x34, 0x1a, 0xa5, 0xed, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5f, 0xde, 0xaf, 0x34, 0xc4, 0xec, + 0x80, 0x5b, 0x17, 0xd6, 0xc5, 0x59, 0xff, 0x16, 0x95, 0xbd, 0x83, 0x5d, 0x31, 0x27, 0xcd, 0xc1, + 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, 0xdc, + 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2e, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xa7, 0xb4, + 0x59, 0xd9, 0x51, 0x6b, 0xf5, 0xfd, 0x6a, 0x6d, 0xaf, 0xb4, 0x23, 0x0a, 0x81, 0x4c, 0xa9, 0x7c, + 0xfa, 0xa0, 0xaa, 0x54, 0xb6, 0xc4, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2b, 0x5b, 0x62, 0x7c, + 0x59, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x84, 0x25, 0x26, 0x5c, + 0x23, 0x4b, 0xfc, 0x65, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x11, 0x92, 0x34, 0x45, + 0x69, 0xf7, 0x79, 0x7a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, 0xe3, + 0x27, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0x6b, 0x02, 0xc8, 0x27, 0x71, 0x47, 0x14, 0x8a, 0xd8, + 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0x93, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, 0x33, + 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x60, 0xba, 0x8b, 0xbc, 0x43, 0x9b, 0x37, 0xeb, 0x4f, 0x8c, + 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x49, 0xd3, 0x06, 0xf5, 0x66, + 0xc4, 0xd3, 0xcf, 0xc7, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x1c, 0xc0, 0xb0, 0x7a, 0x7d, + 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, 0xc7, + 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0x27, 0x3c, 0xe9, 0x48, + 0xaf, 0x7b, 0x1e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, 0x1d, + 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, 0x41, + 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7f, 0x6d, 0x06, 0x32, 0xa1, + 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, 0xcb, + 0xea, 0x6c, 0x5c, 0x7f, 0x1e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, 0xba, + 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0x6d, 0xc0, 0x3c, 0x41, + 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, 0x39, + 0x6c, 0xb1, 0xcb, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x05, 0x8f, 0x13, 0x58, 0x07, 0x59, 0xc8, 0xd1, + 0x3c, 0xa4, 0xa2, 0xcf, 0xf5, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x6a, 0xee, 0xa1, 0xbc, + 0x80, 0x09, 0x36, 0x63, 0xb2, 0xa0, 0x9c, 0xc5, 0x86, 0xdb, 0xcc, 0xae, 0x42, 0xcc, 0x4a, 0x56, + 0xeb, 0x86, 0xe6, 0x1e, 0x4a, 0x45, 0x38, 0x43, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, 0x1f, + 0x22, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0xc7, 0xc2, 0xf7, 0x27, 0x1e, 0x36, 0x88, 0x4d, + 0x19, 0x9b, 0x1c, 0x78, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0xab, 0x48, 0x6d, + 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0xd5, 0x1a, 0x03, 0xec, 0xda, 0x2d, + 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0x96, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, 0xc7, + 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0x37, 0x60, 0x5e, 0xd7, 0xe9, 0x33, 0x1b, + 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0xdb, 0xd4, 0x80, 0xe5, 0xb8, 0x2b, + 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0xdd, 0x80, 0xf9, 0xde, + 0xd1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x68, 0x18, 0xf6, 0x24, 0x79, 0x6d, 0x73, 0x90, 0xae, + 0x79, 0xa8, 0x25, 0x3f, 0x1a, 0xb6, 0x0e, 0x29, 0xa4, 0x35, 0x10, 0x75, 0x5d, 0x45, 0x96, 0xd6, + 0x34, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x5c, 0xd8, 0x38, 0xa7, 0xeb, 0x15, 0xa2, 0x2d, + 0x11, 0xa5, 0xf4, 0x0c, 0xcc, 0xd9, 0xcd, 0xdb, 0x3a, 0xcd, 0x2c, 0xb5, 0xe7, 0xa0, 0xb6, 0xf1, + 0x8a, 0xfc, 0x04, 0x09, 0x53, 0x1e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x1a, 0x44, 0xdd, + 0x3d, 0xd4, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x24, 0x35, 0xa5, 0xf2, 0x3d, + 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x8a, 0x66, 0x36, 0x91, 0x31, 0xb6, + 0x5b, 0xb0, 0xd0, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, 0xfe, + 0xd7, 0x99, 0x13, 0xc6, 0xf0, 0x83, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xbe, 0x3f, 0x2a, 0x5c, 0x2e, + 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0xe5, 0xda, 0x16, 0xee, + 0x8e, 0x9f, 0xad, 0x88, 0x31, 0xdc, 0xa5, 0x77, 0xaa, 0xfb, 0x15, 0x55, 0x39, 0xd8, 0xdb, 0xaf, + 0xee, 0x56, 0xc4, 0xf8, 0x33, 0xe9, 0xd4, 0x0f, 0x66, 0xc4, 0xfb, 0xf7, 0xef, 0xdf, 0x8f, 0x2d, + 0x7f, 0x3b, 0x06, 0xb9, 0xc1, 0xc9, 0x58, 0xfa, 0x59, 0x78, 0x94, 0xbf, 0xc6, 0xba, 0xc8, 0x53, + 0xef, 0x19, 0x0e, 0x49, 0xd5, 0xae, 0x46, 0x67, 0x4b, 0x3f, 0xca, 0x0b, 0xcc, 0xaa, 0x81, 0xbc, + 0x97, 0x0c, 0x07, 0x27, 0x62, 0x57, 0xf3, 0xa4, 0x1d, 0x38, 0x67, 0xd9, 0xaa, 0xeb, 0x69, 0x56, + 0x4b, 0x73, 0x5a, 0x6a, 0x70, 0x80, 0xa0, 0x6a, 0xba, 0x8e, 0x5c, 0xd7, 0xa6, 0x2d, 0xc2, 0x67, + 0xf9, 0x98, 0x65, 0x37, 0x98, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0x74, 0x28, 0x23, 0xe2, 0x27, 0x65, + 0xc4, 0x63, 0x90, 0xee, 0x6a, 0x3d, 0x15, 0x59, 0x9e, 0x73, 0x44, 0xe6, 0xb9, 0x94, 0x92, 0xea, + 0x6a, 0xbd, 0x0a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0xef, 0xc5, 0x21, 0x1b, 0x9e, 0xe9, + 0xf0, 0x88, 0xac, 0x93, 0xfa, 0x2d, 0x90, 0x1d, 0xfe, 0xf1, 0x87, 0x4e, 0x80, 0xab, 0x65, 0x5c, + 0xd8, 0x8b, 0xd3, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, 0xdf, 0x53, + 0x0a, 0xbb, 0x92, 0xb6, 0x61, 0xfa, 0xb6, 0x4b, 0xb8, 0xa7, 0x09, 0xf7, 0x13, 0x0f, 0xe7, 0xbe, + 0xd9, 0x20, 0xe4, 0xe9, 0x9b, 0x0d, 0x75, 0xaf, 0xa6, 0xec, 0x96, 0x76, 0x14, 0x06, 0x97, 0xce, + 0x42, 0xc2, 0xd4, 0x5e, 0x3d, 0x1a, 0x6c, 0x01, 0x44, 0x34, 0x69, 0xe0, 0xcf, 0x42, 0xe2, 0x1e, + 0xd2, 0xee, 0x0c, 0x16, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x0d, 0x92, 0x24, 0x5e, 0x12, 0x00, + 0x8b, 0x98, 0x38, 0x25, 0xa5, 0x20, 0x51, 0xae, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, 0xa9, 0x5a, + 0xaf, 0x56, 0xca, 0x15, 0x31, 0xb6, 0xbc, 0x01, 0xd3, 0x34, 0x08, 0x78, 0x6b, 0xf8, 0x61, 0x10, + 0xa7, 0xd8, 0x25, 0xe3, 0x10, 0xb8, 0xf6, 0x60, 0x77, 0xb3, 0xa2, 0x88, 0xb1, 0xf0, 0xf2, 0xba, + 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x99, 0x9c, 0xfa, 0x7b, 0x01, 0x32, 0xa1, 0xf1, 0x0c, 0x0f, 0x06, + 0x9a, 0x69, 0xda, 0xf7, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, 0x09, 0x4b, 0x26, + 0x5d, 0xb4, 0x9f, 0x88, 0xf3, 0x6f, 0x0a, 0x20, 0x0e, 0x8f, 0x76, 0x43, 0x0e, 0x0a, 0x3f, 0x55, + 0x07, 0xdf, 0x10, 0x20, 0x37, 0x38, 0xcf, 0x0d, 0xb9, 0x77, 0xfe, 0xa7, 0xea, 0xde, 0x3b, 0x31, + 0x98, 0x1d, 0x98, 0xe2, 0x26, 0xf5, 0xee, 0x73, 0x30, 0x67, 0xb4, 0x50, 0xb7, 0x67, 0x7b, 0xc8, + 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x45, 0xa6, 0xbc, 0x4c, 0x0a, 0xc5, 0xda, 0xc3, 0xe7, 0xc4, 0xd5, + 0x6a, 0x80, 0xdb, 0xc1, 0xb0, 0xe2, 0x7c, 0x75, 0xab, 0xb2, 0x5b, 0xaf, 0xed, 0x57, 0xf6, 0xca, + 0x2f, 0xab, 0x07, 0x7b, 0x3f, 0xb7, 0x57, 0x7b, 0x69, 0x4f, 0x11, 0x8d, 0x21, 0xb3, 0x8f, 0x70, + 0xab, 0xd7, 0x41, 0x1c, 0x76, 0x4a, 0x7a, 0x14, 0xc6, 0xb9, 0x25, 0x4e, 0x49, 0xf3, 0x90, 0xdf, + 0xab, 0xa9, 0x8d, 0xea, 0x56, 0x45, 0xad, 0x5c, 0xbf, 0x5e, 0x29, 0xef, 0x37, 0xe8, 0x8b, 0xb3, + 0x6f, 0xbd, 0x3f, 0xb8, 0xa9, 0x5f, 0x8f, 0xc3, 0xfc, 0x18, 0x4f, 0xa4, 0x12, 0x9b, 0xd9, 0xe9, + 0x6b, 0xc4, 0x73, 0x93, 0x78, 0xbf, 0x8a, 0xa7, 0x82, 0xba, 0xe6, 0x78, 0x6c, 0xc4, 0x7f, 0x1a, + 0x70, 0x94, 0x2c, 0xcf, 0x68, 0x1b, 0xc8, 0x61, 0xe7, 0x0c, 0x74, 0x90, 0xcf, 0x07, 0x72, 0x7a, + 0xd4, 0xf0, 0x33, 0x20, 0xf5, 0x6c, 0xd7, 0xf0, 0x8c, 0xbb, 0x48, 0x35, 0x2c, 0x7e, 0x28, 0x81, + 0x07, 0xfb, 0x84, 0x22, 0x72, 0x4d, 0xd5, 0xf2, 0x7c, 0x6b, 0x0b, 0x75, 0xb4, 0x21, 0x6b, 0x5c, + 0xc0, 0xe3, 0x8a, 0xc8, 0x35, 0xbe, 0xf5, 0x79, 0xc8, 0xb6, 0xec, 0x3e, 0x1e, 0x93, 0xa8, 0x1d, + 0xee, 0x17, 0x82, 0x92, 0xa1, 0x32, 0xdf, 0x84, 0xcd, 0xb1, 0xc1, 0x69, 0x48, 0x56, 0xc9, 0x50, + 0x19, 0x35, 0x79, 0x0a, 0xf2, 0x5a, 0xa7, 0xe3, 0x60, 0x72, 0x4e, 0x44, 0x27, 0xf3, 0x9c, 0x2f, + 0x26, 0x86, 0x8b, 0x37, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, 0xda, 0xa3, 0x67, 0x52, + 0xb1, 0x95, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x3c, 0x64, 0x0d, 0x57, 0x0d, 0x0e, 0x47, 0x63, 0x4b, + 0xb1, 0x95, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0x6c, 0xf9, 0xad, 0x18, 0xe4, 0x06, 0x0f, 0x77, + 0xa5, 0x2d, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0xac, 0x44, 0x9c, 0x07, 0xaf, + 0xee, 0x30, 0x7b, 0xc5, 0x47, 0x2e, 0xfe, 0xb3, 0x00, 0x29, 0x2e, 0x96, 0xce, 0x40, 0xa2, 0xa7, + 0x79, 0x87, 0x84, 0x2e, 0xb9, 0x19, 0x13, 0x05, 0x85, 0x5c, 0x63, 0xb9, 0xdb, 0xd3, 0x2c, 0x92, + 0x02, 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x9a, 0x48, 0x6b, 0x91, 0xb1, 0xdf, 0xee, 0x76, 0x91, 0xe5, + 0xb9, 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xd2, 0xb3, 0x30, 0xe7, 0x39, 0x9a, 0x61, 0x0e, 0xd8, + 0x26, 0x88, 0xad, 0xc8, 0x15, 0xbe, 0x71, 0x11, 0xce, 0x72, 0xde, 0x16, 0xf2, 0x34, 0xfd, 0x10, + 0xb5, 0x02, 0xd0, 0x34, 0x39, 0x39, 0x7c, 0x94, 0x19, 0x6c, 0x31, 0x3d, 0xc7, 0x2e, 0x7f, 0x57, + 0x80, 0x39, 0xfe, 0xa2, 0xd2, 0xf2, 0x83, 0xb5, 0x0b, 0xa0, 0x59, 0x96, 0xed, 0x85, 0xc3, 0x35, + 0x9a, 0xca, 0x23, 0xb8, 0xd5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x8b, 0x5d, 0x80, 0x40, 0x73, 0x62, + 0xd8, 0xce, 0x41, 0x86, 0x9d, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, 0x2d, 0x50, 0x11, 0x7e, 0xa3, + 0x91, 0x16, 0x20, 0xd9, 0x44, 0x1d, 0xc3, 0x62, 0xe7, 0x89, 0xf4, 0x82, 0x9f, 0x52, 0x26, 0xfc, + 0x53, 0xca, 0xcd, 0x5b, 0x30, 0xaf, 0xdb, 0xdd, 0x61, 0x77, 0x37, 0xc5, 0xa1, 0xd7, 0x6b, 0xf7, + 0x86, 0xf0, 0x59, 0x08, 0x46, 0xcc, 0x2f, 0xc7, 0xe2, 0xdb, 0xf5, 0xcd, 0xaf, 0xc6, 0x16, 0xb7, + 0x29, 0xae, 0xce, 0x1f, 0x53, 0x41, 0x6d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, 0xe1, 0x27, 0xe0, 0xb9, + 0x8e, 0xe1, 0x1d, 0xf6, 0x9b, 0xab, 0xba, 0xdd, 0x5d, 0xeb, 0xd8, 0x1d, 0x3b, 0xf8, 0xb9, 0x0b, + 0x5f, 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x4b, 0x17, 0x23, 0x7f, 0x1f, 0x2b, 0xee, + 0xc1, 0x3c, 0x33, 0x56, 0xc9, 0x99, 0x3b, 0x7d, 0x35, 0x90, 0x1e, 0x7a, 0xee, 0x22, 0x7f, 0xe3, + 0x5d, 0xd2, 0xab, 0x95, 0x39, 0x06, 0xc5, 0x3a, 0xfa, 0x02, 0x51, 0x54, 0xe0, 0x91, 0x01, 0x3e, + 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x6d, 0xc6, 0x38, 0x1f, 0x62, 0x6c, 0x30, 0x68, 0xb1, 0x0c, + 0xb3, 0xa7, 0xe1, 0xfa, 0x47, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x6d, 0xc8, 0x13, 0x12, 0xbd, 0xef, + 0x7a, 0x76, 0x97, 0x14, 0xbd, 0x87, 0xd3, 0xfc, 0xd3, 0xbb, 0x74, 0xa3, 0xe4, 0x30, 0xac, 0xec, + 0xa3, 0x8a, 0x45, 0x20, 0x3f, 0x33, 0xb4, 0x90, 0x6e, 0x46, 0x30, 0xbc, 0xcd, 0x1c, 0xf1, 0xed, + 0x8b, 0x9f, 0x81, 0x05, 0xfc, 0x3f, 0xa9, 0x49, 0x61, 0x4f, 0xa2, 0x4f, 0x99, 0xe4, 0xef, 0xbe, + 0x46, 0xf7, 0xe2, 0xbc, 0x4f, 0x10, 0xf2, 0x29, 0xb4, 0x8a, 0x1d, 0xe4, 0x79, 0xc8, 0x71, 0x55, + 0xcd, 0x1c, 0xe7, 0x5e, 0xe8, 0x35, 0x5d, 0xfe, 0xe2, 0x7b, 0x83, 0xab, 0xb8, 0x4d, 0x91, 0x25, + 0xd3, 0x2c, 0x1e, 0xc0, 0xa3, 0x63, 0xb2, 0x62, 0x02, 0xce, 0xd7, 0x19, 0xe7, 0xc2, 0x48, 0x66, + 0x60, 0xda, 0x3a, 0x70, 0xb9, 0xbf, 0x96, 0x13, 0x70, 0xfe, 0x3e, 0xe3, 0x94, 0x18, 0x96, 0x2f, + 0x29, 0x66, 0xbc, 0x09, 0x73, 0x77, 0x91, 0xd3, 0xb4, 0x5d, 0x76, 0x34, 0x32, 0x01, 0xdd, 0x1b, + 0x8c, 0x2e, 0xcf, 0x80, 0xe4, 0xac, 0x04, 0x73, 0x5d, 0x85, 0x54, 0x5b, 0xd3, 0xd1, 0x04, 0x14, + 0x5f, 0x62, 0x14, 0x33, 0xd8, 0x1e, 0x43, 0x4b, 0x90, 0xed, 0xd8, 0xac, 0x2d, 0x45, 0xc3, 0xdf, + 0x64, 0xf0, 0x0c, 0xc7, 0x30, 0x8a, 0x9e, 0xdd, 0xeb, 0x9b, 0xb8, 0x67, 0x45, 0x53, 0xfc, 0x01, + 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x8a, 0xb0, 0xfe, 0x21, 0xa7, 0x70, 0x43, 0xf1, 0x7c, 0x11, 0x32, + 0xb6, 0x65, 0x1e, 0xd9, 0xd6, 0x24, 0x4e, 0xfc, 0x11, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xd7, 0x20, + 0x3d, 0xe9, 0x42, 0xfc, 0xf1, 0x7b, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x86, 0x3c, 0x2f, 0x50, 0x86, + 0x6d, 0x4d, 0x40, 0xf1, 0x27, 0x8c, 0x22, 0x17, 0x82, 0xb1, 0xc7, 0xf0, 0x90, 0xeb, 0x75, 0xd0, + 0x24, 0x24, 0x6f, 0xf1, 0xc7, 0x60, 0x10, 0x16, 0xca, 0x26, 0xb2, 0xf4, 0xc3, 0xc9, 0x18, 0xbe, + 0xc2, 0x43, 0xc9, 0x31, 0x98, 0xa2, 0x0c, 0xb3, 0x5d, 0xcd, 0x71, 0x0f, 0x35, 0x73, 0xa2, 0xe5, + 0xf8, 0x53, 0xc6, 0x91, 0xf5, 0x41, 0x2c, 0x22, 0x7d, 0xeb, 0x34, 0x34, 0x5f, 0xe5, 0x11, 0x09, + 0xc1, 0xd8, 0xd6, 0x73, 0x3d, 0x72, 0x00, 0x75, 0x1a, 0xb6, 0xaf, 0xf1, 0xad, 0x47, 0xb1, 0xbb, + 0x61, 0xc6, 0x6b, 0x90, 0x76, 0x8d, 0x57, 0x27, 0xa2, 0xf9, 0x33, 0xbe, 0xd2, 0x04, 0x80, 0xc1, + 0x2f, 0xc3, 0xd9, 0xb1, 0x6d, 0x62, 0x02, 0xb2, 0x3f, 0x67, 0x64, 0x67, 0xc6, 0xb4, 0x0a, 0x56, + 0x12, 0x4e, 0x4b, 0xf9, 0x17, 0xbc, 0x24, 0xa0, 0x21, 0xae, 0x3a, 0x7e, 0x51, 0x70, 0xb5, 0xf6, + 0xe9, 0xa2, 0xf6, 0x97, 0x3c, 0x6a, 0x14, 0x3b, 0x10, 0xb5, 0x7d, 0x38, 0xc3, 0x18, 0x4f, 0xb7, + 0xae, 0x5f, 0xe7, 0x85, 0x95, 0xa2, 0x0f, 0x06, 0x57, 0xf7, 0xe7, 0x61, 0xd1, 0x0f, 0x27, 0x9f, + 0x48, 0x5d, 0xb5, 0xab, 0xf5, 0x26, 0x60, 0xfe, 0x06, 0x63, 0xe6, 0x15, 0xdf, 0x1f, 0x69, 0xdd, + 0x5d, 0xad, 0x87, 0xc9, 0x6f, 0x81, 0xcc, 0xc9, 0xfb, 0x96, 0x83, 0x74, 0xbb, 0x63, 0x19, 0xaf, + 0xa2, 0xd6, 0x04, 0xd4, 0x7f, 0x35, 0xb4, 0x54, 0x07, 0x21, 0x38, 0x66, 0xae, 0x82, 0xe8, 0xcf, + 0x2a, 0xaa, 0xd1, 0xed, 0xd9, 0x8e, 0x17, 0xc1, 0xf8, 0xd7, 0x7c, 0xa5, 0x7c, 0x5c, 0x95, 0xc0, + 0x8a, 0x15, 0xc8, 0x91, 0xcb, 0x49, 0x53, 0xf2, 0x6f, 0x18, 0xd1, 0x6c, 0x80, 0x62, 0x85, 0x43, + 0xb7, 0xbb, 0x3d, 0xcd, 0x99, 0xa4, 0xfe, 0xfd, 0x2d, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0x77, + 0xd4, 0x43, 0xb8, 0xdb, 0x4f, 0xc0, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x81, 0x61, + 0x02, 0x8a, 0xbf, 0xe3, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x1d, 0x34, 0x5a, 0x07, 0x75, 0x0c, 0xd7, + 0x73, 0xe8, 0x1c, 0xfc, 0x70, 0xaa, 0x6f, 0xbd, 0x37, 0x38, 0x84, 0x29, 0x21, 0x68, 0xf1, 0x26, + 0xe4, 0x87, 0x46, 0x0c, 0x29, 0xea, 0x9b, 0x05, 0xf9, 0x17, 0x3e, 0x60, 0xc5, 0x68, 0x70, 0xc2, + 0x28, 0xee, 0xe0, 0x75, 0x1f, 0x9c, 0x03, 0xa2, 0xc9, 0x5e, 0xfb, 0xc0, 0x5f, 0xfa, 0x81, 0x31, + 0xa0, 0x78, 0x1d, 0x66, 0x07, 0x66, 0x80, 0x68, 0xaa, 0x5f, 0x64, 0x54, 0xd9, 0xf0, 0x08, 0x50, + 0xdc, 0x80, 0x04, 0xee, 0xe7, 0xd1, 0xf0, 0x5f, 0x62, 0x70, 0x62, 0x5e, 0xfc, 0x24, 0xa4, 0x78, + 0x1f, 0x8f, 0x86, 0xfe, 0x32, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x3d, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, + 0xce, 0x21, 0x18, 0x3e, 0x79, 0x08, 0xff, 0xe1, 0x57, 0x13, 0xac, 0x0e, 0xf3, 0xd8, 0x5d, 0x83, + 0x19, 0xd6, 0xbc, 0xa3, 0xd1, 0x9f, 0x67, 0x37, 0xe7, 0x88, 0xe2, 0x65, 0x48, 0x4e, 0x18, 0xf0, + 0x5f, 0x63, 0x50, 0x6a, 0x5f, 0x2c, 0x43, 0x26, 0xd4, 0xb0, 0xa3, 0xe1, 0xbf, 0xce, 0xe0, 0x61, + 0x14, 0x76, 0x9d, 0x35, 0xec, 0x68, 0x82, 0xdf, 0xe0, 0xae, 0x33, 0x04, 0x0e, 0x1b, 0xef, 0xd5, + 0xd1, 0xe8, 0xdf, 0xe4, 0x51, 0xe7, 0x90, 0xe2, 0x8b, 0x90, 0xf6, 0xeb, 0x6f, 0x34, 0xfe, 0xb7, + 0x18, 0x3e, 0xc0, 0xe0, 0x08, 0x84, 0xea, 0x7f, 0x34, 0xc5, 0x6f, 0xf3, 0x08, 0x84, 0x50, 0x78, + 0x1b, 0x0d, 0xf7, 0xf4, 0x68, 0xa6, 0xdf, 0xe1, 0xdb, 0x68, 0xa8, 0xa5, 0xe3, 0xd5, 0x24, 0x65, + 0x30, 0x9a, 0xe2, 0x77, 0xf9, 0x6a, 0x12, 0x7b, 0xec, 0xc6, 0x70, 0x93, 0x8c, 0xe6, 0xf8, 0x3d, + 0xee, 0xc6, 0x50, 0x8f, 0x2c, 0xd6, 0x41, 0x1a, 0x6d, 0x90, 0xd1, 0x7c, 0x5f, 0x60, 0x7c, 0x73, + 0x23, 0xfd, 0xb1, 0xf8, 0x12, 0x9c, 0x19, 0xdf, 0x1c, 0xa3, 0x59, 0xbf, 0xf8, 0xc1, 0xd0, 0xeb, + 0x4c, 0xb8, 0x37, 0x16, 0xf7, 0x83, 0x2a, 0x1b, 0x6e, 0x8c, 0xd1, 0xb4, 0xaf, 0x7f, 0x30, 0x58, + 0x68, 0xc3, 0x7d, 0xb1, 0x58, 0x02, 0x08, 0x7a, 0x52, 0x34, 0xd7, 0x1b, 0x8c, 0x2b, 0x04, 0xc2, + 0x5b, 0x83, 0xb5, 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0x37, 0x8a, + 0x46, 0xbf, 0xc9, 0xb7, 0x06, 0x87, 0x14, 0xaf, 0x41, 0xca, 0xea, 0x9b, 0x26, 0xce, 0x2d, 0xe9, + 0xe1, 0x9f, 0x11, 0xc9, 0xff, 0xf6, 0x21, 0x03, 0x73, 0x40, 0x71, 0x03, 0x92, 0xa8, 0xdb, 0x44, + 0xad, 0x28, 0xe4, 0xbf, 0x7f, 0xc8, 0xeb, 0x09, 0xb6, 0x2e, 0xbe, 0x08, 0x40, 0x5f, 0xa6, 0xc9, + 0xaf, 0x44, 0x11, 0xd8, 0xff, 0xf8, 0x90, 0x7d, 0xa1, 0x10, 0x40, 0x02, 0x02, 0xfa, 0xbd, 0xc3, + 0xc3, 0x09, 0xde, 0x1b, 0x24, 0x20, 0x2f, 0xe0, 0x57, 0x61, 0xe6, 0xb6, 0x6b, 0x5b, 0x9e, 0xd6, + 0x89, 0x42, 0xff, 0x27, 0x43, 0x73, 0x7b, 0x1c, 0xb0, 0xae, 0xed, 0x20, 0x4f, 0xeb, 0xb8, 0x51, + 0xd8, 0xff, 0x62, 0x58, 0x1f, 0x80, 0xc1, 0xba, 0xe6, 0x7a, 0x93, 0x3c, 0xf7, 0x7f, 0x73, 0x30, + 0x07, 0x60, 0xa7, 0xf1, 0xff, 0x77, 0xd0, 0x51, 0x14, 0xf6, 0x7d, 0xee, 0x34, 0xb3, 0x2f, 0x7e, + 0x12, 0xd2, 0xf8, 0x5f, 0xfa, 0xd5, 0x4e, 0x04, 0xf8, 0x7f, 0x18, 0x38, 0x40, 0xe0, 0x3b, 0xbb, + 0x5e, 0xcb, 0x33, 0xa2, 0x83, 0xfd, 0xbf, 0x6c, 0xa5, 0xb9, 0x7d, 0xb1, 0x04, 0x19, 0xd7, 0x6b, + 0xb5, 0xfa, 0x6c, 0xa2, 0x89, 0x80, 0xff, 0xf0, 0x43, 0xff, 0x25, 0xd7, 0xc7, 0x6c, 0x9e, 0x1f, + 0x7f, 0x58, 0x07, 0xdb, 0xf6, 0xb6, 0x4d, 0x8f, 0xe9, 0xe0, 0xcd, 0x24, 0x2c, 0xe9, 0x76, 0xb7, + 0x69, 0xbb, 0x6b, 0xb4, 0xa0, 0xf8, 0xe5, 0x64, 0xcd, 0xb6, 0x18, 0x46, 0x8a, 0xdb, 0x16, 0x5a, + 0x3c, 0xdd, 0xe1, 0xdc, 0xf2, 0x59, 0x48, 0x36, 0xfa, 0xcd, 0xe6, 0x91, 0x24, 0x42, 0xdc, 0xed, + 0x37, 0xd9, 0xd7, 0x25, 0xf8, 0xdf, 0xe5, 0xef, 0xc5, 0x21, 0xd3, 0xd0, 0xba, 0x3d, 0x13, 0xd5, + 0x2c, 0x54, 0x6b, 0x4b, 0x32, 0x4c, 0x93, 0x67, 0x79, 0x81, 0x18, 0x09, 0x37, 0xa6, 0x14, 0x76, + 0xed, 0x6b, 0xd6, 0xc9, 0x89, 0x65, 0xcc, 0xd7, 0xac, 0xfb, 0x9a, 0x0b, 0xf4, 0xc0, 0xd2, 0xd7, + 0x5c, 0xf0, 0x35, 0x17, 0xc9, 0xb1, 0x65, 0xdc, 0xd7, 0x5c, 0xf4, 0x35, 0x1b, 0xe4, 0x58, 0x7e, + 0xd6, 0xd7, 0x6c, 0xf8, 0x9a, 0x4b, 0xe4, 0x20, 0x3e, 0xe1, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, + 0xfc, 0x7d, 0xce, 0xd7, 0x5c, 0xf6, 0x35, 0x57, 0xc8, 0x99, 0xbb, 0xe4, 0x6b, 0xae, 0xf8, 0x9a, + 0xab, 0xe4, 0x23, 0x92, 0x19, 0x5f, 0x73, 0x55, 0x5a, 0x84, 0x19, 0xfa, 0x64, 0xcf, 0x93, 0x1f, + 0x66, 0xf3, 0x37, 0xa6, 0x14, 0x2e, 0x08, 0x74, 0x2f, 0x90, 0x0f, 0x45, 0xa6, 0x03, 0xdd, 0x0b, + 0x81, 0x6e, 0x9d, 0x7c, 0x2e, 0x2d, 0x06, 0xba, 0xf5, 0x40, 0x77, 0x41, 0x9e, 0xc5, 0x29, 0x10, + 0xe8, 0x2e, 0x04, 0xba, 0x8b, 0x72, 0x0e, 0xc7, 0x3f, 0xd0, 0x5d, 0x0c, 0x74, 0x1b, 0x72, 0x7e, + 0x49, 0x58, 0xc9, 0x06, 0xba, 0x0d, 0xe9, 0x39, 0xc8, 0xb8, 0xfd, 0xa6, 0xca, 0xbe, 0x23, 0x20, + 0x1f, 0xa4, 0x64, 0xd6, 0x61, 0x15, 0x67, 0x04, 0x59, 0xd4, 0x1b, 0x53, 0x0a, 0xb8, 0xfd, 0x26, + 0xab, 0x91, 0x9b, 0x59, 0x20, 0x47, 0x0a, 0x2a, 0xf9, 0x0c, 0x73, 0x73, 0xeb, 0xed, 0x07, 0x85, + 0xa9, 0xef, 0x3c, 0x28, 0x4c, 0xfd, 0xcb, 0x83, 0xc2, 0xd4, 0x3b, 0x0f, 0x0a, 0xc2, 0xfb, 0x0f, + 0x0a, 0xc2, 0x8f, 0x1e, 0x14, 0x84, 0xfb, 0xc7, 0x05, 0xe1, 0x2b, 0xc7, 0x05, 0xe1, 0xeb, 0xc7, + 0x05, 0xe1, 0x5b, 0xc7, 0x05, 0xe1, 0xed, 0xe3, 0xc2, 0xd4, 0x77, 0x8e, 0x0b, 0x53, 0xef, 0x1c, + 0x17, 0x84, 0x1f, 0x1c, 0x17, 0xa6, 0xde, 0x3f, 0x2e, 0x08, 0x3f, 0x3a, 0x2e, 0x08, 0xf7, 0xbf, + 0x5f, 0x98, 0x6a, 0x4e, 0x93, 0x34, 0xba, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0f, 0xd9, + 0xa8, 0x3d, 0xfd, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2039,26 +2059,9 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2197,7 +2200,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2241,7 +2244,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2249,43 +2252,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2611,47 +2614,47 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Marshal() (data []byte, err error) { +func (m *Subby) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Subby) MarshalTo(data []byte) (int, error) { +func (m *Subby) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Sub) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintOne(data, i, uint64(len(m.Sub))) - i += copy(data[i:], m.Sub) + i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) + i += copy(dAtA[i:], m.Sub) } return i, nil } -func (m *SampleOneOf) Marshal() (data []byte, err error) { +func (m *SampleOneOf) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(data[i:]) + nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2660,135 +2663,135 @@ func (m *SampleOneOf) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *SampleOneOf_Field1) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.Field1 + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 i += 8 return i, nil } -func (m *SampleOneOf_Field2) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x15 + dAtA[i] = 0x15 i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Field2 + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 i += 4 return i, nil } -func (m *SampleOneOf_Field3) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintOne(data, i, uint64(m.Field3)) + i = encodeVarintOne(dAtA, i, uint64(m.Field3)) return i, nil } -func (m *SampleOneOf_Field4) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintOne(data, i, uint64(m.Field4)) + i = encodeVarintOne(dAtA, i, uint64(m.Field4)) return i, nil } -func (m *SampleOneOf_Field5) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintOne(data, i, uint64(m.Field5)) + i = encodeVarintOne(dAtA, i, uint64(m.Field5)) return i, nil } -func (m *SampleOneOf_Field6) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintOne(data, i, uint64(m.Field6)) + i = encodeVarintOne(dAtA, i, uint64(m.Field6)) return i, nil } -func (m *SampleOneOf_Field7) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintOne(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) return i, nil } -func (m *SampleOneOf_Field8) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintOne(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) return i, nil } -func (m *SampleOneOf_Field9) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*uint32)(unsafe.Pointer(&data[i])) = m.Field9 + *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 i += 4 return i, nil } -func (m *SampleOneOf_Field10) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x55 + dAtA[i] = 0x55 i++ - *(*int32)(unsafe.Pointer(&data[i])) = m.Field10 + *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 i += 4 return i, nil } -func (m *SampleOneOf_Field11) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x59 + dAtA[i] = 0x59 i++ - *(*uint64)(unsafe.Pointer(&data[i])) = m.Field11 + *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 i += 8 return i, nil } -func (m *SampleOneOf_Field12) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x61 + dAtA[i] = 0x61 i++ - *(*int64)(unsafe.Pointer(&data[i])) = m.Field12 + *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 i += 8 return i, nil } -func (m *SampleOneOf_Field13) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x68 + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ return i, nil } -func (m *SampleOneOf_Field14) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { i := 0 - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintOne(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) return i, nil } -func (m *SampleOneOf_Field15) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintOne(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } return i, nil } -func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { +func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { i := 0 if m.SubMessage != nil { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ - i = encodeVarintOne(data, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(data[i:]) + i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) + n2, err := m.SubMessage.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2796,59 +2799,62 @@ func (m *SampleOneOf_SubMessage) MarshalTo(data []byte) (int, error) { } return i, nil } -func encodeFixed64One(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64One(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32One(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32One(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintOne(data []byte, offset int, v uint64) int { +func encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 385 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbd, 0x6e, 0xdb, 0x30, - 0x14, 0x05, 0x60, 0x2b, 0x8a, 0xa5, 0x84, 0x72, 0x1a, 0x57, 0xd3, 0x6d, 0x06, 0x21, 0xc8, 0xd4, - 0x25, 0x56, 0xac, 0x9f, 0xfc, 0xac, 0x41, 0x51, 0x74, 0x29, 0x02, 0x24, 0x0f, 0x10, 0x48, 0x2d, - 0xa5, 0x04, 0xb0, 0x4c, 0xc3, 0x92, 0x86, 0x6e, 0x7e, 0x9c, 0x8e, 0x1d, 0xfb, 0x08, 0x1e, 0x3b, - 0x76, 0xe8, 0x60, 0xbb, 0x4b, 0x47, 0x8f, 0x1e, 0x7b, 0x4c, 0x01, 0x97, 0xc3, 0x01, 0x2f, 0xf1, - 0x1d, 0x0d, 0x14, 0x29, 0xce, 0xbf, 0xa8, 0x2a, 0x57, 0x75, 0xd8, 0x4e, 0xeb, 0xac, 0x90, 0x55, - 0x36, 0xaf, 0x5f, 0xb2, 0x89, 0x9c, 0x87, 0x6a, 0x2a, 0x47, 0xb3, 0xb9, 0x6a, 0x94, 0x6f, 0x63, - 0x3c, 0xbb, 0x2c, 0x5f, 0x9b, 0x97, 0x36, 0x1f, 0xa1, 0x1d, 0x96, 0xaa, 0x54, 0xa1, 0xb6, 0xbc, - 0x2d, 0xf4, 0x4e, 0x6f, 0xf4, 0xd4, 0x7d, 0x73, 0xf1, 0x4e, 0xf4, 0x9f, 0xda, 0x3c, 0xff, 0xe6, - 0x0f, 0x85, 0x5d, 0xb7, 0x39, 0x59, 0xe7, 0xd6, 0xfb, 0xe3, 0xc7, 0xfd, 0x78, 0xf1, 0xc7, 0x16, - 0xde, 0x53, 0x56, 0xcd, 0x26, 0xf2, 0x61, 0x2a, 0x1f, 0x0a, 0x9f, 0x84, 0xf3, 0xf1, 0x55, 0x4e, - 0xbe, 0x8e, 0x75, 0xc9, 0xfa, 0xd4, 0x7b, 0x74, 0x0a, 0xbd, 0x67, 0x89, 0xe8, 0x00, 0x72, 0xc0, - 0x12, 0xb1, 0xc4, 0x64, 0x43, 0xfa, 0x2c, 0x31, 0x4b, 0x42, 0x87, 0x10, 0x9b, 0x25, 0x61, 0x49, - 0xa9, 0x0f, 0x39, 0x61, 0x49, 0x59, 0xae, 0xc9, 0x81, 0x1c, 0xb2, 0x5c, 0xb3, 0xdc, 0x90, 0x0b, - 0x79, 0xcb, 0x72, 0xc3, 0x72, 0x4b, 0x47, 0x10, 0x9f, 0xe5, 0x96, 0xe5, 0x8e, 0x8e, 0x21, 0x2e, - 0xcb, 0x9d, 0x7f, 0x26, 0xdc, 0xee, 0xa4, 0x57, 0x24, 0x40, 0xa7, 0x20, 0xb7, 0x3b, 0xea, 0x95, - 0xb1, 0x31, 0x79, 0x30, 0xc7, 0xd8, 0xd8, 0x58, 0x44, 0x03, 0xd8, 0xd0, 0x58, 0x64, 0x2c, 0xa6, - 0x13, 0xd8, 0x91, 0xb1, 0xd8, 0x58, 0x42, 0x6f, 0xf6, 0xff, 0xdf, 0x58, 0x62, 0x2c, 0xa5, 0x53, - 0xd8, 0xc0, 0x58, 0xea, 0x5f, 0x0a, 0x0f, 0x17, 0xf5, 0x5c, 0xc9, 0xba, 0xce, 0x4a, 0x49, 0x43, - 0xb8, 0x17, 0x89, 0xd1, 0xfe, 0x45, 0xe8, 0x4b, 0x45, 0x57, 0xa0, 0xf0, 0xb9, 0xf3, 0xfb, 0x81, - 0x10, 0x8d, 0xac, 0x9b, 0x67, 0xb8, 0x2a, 0xee, 0x3f, 0x2c, 0xd7, 0x41, 0xef, 0x17, 0xf2, 0x1b, - 0x59, 0xad, 0x03, 0x6b, 0x8b, 0xec, 0x90, 0xc5, 0x26, 0xb0, 0xbe, 0x23, 0x3f, 0x90, 0x9f, 0xc8, - 0x72, 0x83, 0x1e, 0xb2, 0xc2, 0xfc, 0x0f, 0xeb, 0x16, 0xeb, 0x0e, 0x59, 0xfc, 0x0d, 0x7a, 0xb9, - 0xa3, 0x9f, 0x51, 0xfc, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xbf, 0xf4, 0xb2, 0x9e, 0x02, 0x00, - 0x00, + // 411 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0x3f, 0x4f, 0x1b, 0x31, + 0x18, 0x06, 0x70, 0xbf, 0x1c, 0x49, 0xc0, 0x09, 0x25, 0xbd, 0xe9, 0x2d, 0xc3, 0x2b, 0x8b, 0xc9, + 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x67, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x1f, 0x00, 0x9d, 0xa9, + 0x13, 0x90, 0x72, 0x67, 0x14, 0xdf, 0x0d, 0xdd, 0xf8, 0x38, 0x1d, 0x3b, 0xf6, 0x23, 0x30, 0x32, + 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0xc6, 0x8c, 0x55, 0x2e, 0xc5, 0xde, 0xde, 0xc7, 0x3f, 0x7b, + 0xb0, 0xfd, 0x70, 0x71, 0x6b, 0x72, 0x65, 0xec, 0xb0, 0x2a, 0x6c, 0x36, 0xd7, 0x79, 0xb6, 0xb2, + 0x77, 0xd9, 0x52, 0xaf, 0x86, 0xa6, 0xd0, 0x83, 0x87, 0x95, 0x29, 0x4d, 0x1c, 0x99, 0x42, 0x1f, + 0x9d, 0x2c, 0xee, 0xcb, 0xbb, 0x4a, 0x0d, 0x6e, 0x4d, 0x3e, 0x5c, 0x98, 0x85, 0x19, 0x36, 0xa6, + 0xaa, 0x79, 0x93, 0x9a, 0xd0, 0x4c, 0xdb, 0x33, 0xc7, 0x1f, 0x78, 0xeb, 0xba, 0x52, 0xea, 0x5b, + 0xdc, 0xe7, 0x91, 0xad, 0x14, 0x82, 0x00, 0xb9, 0x3f, 0xdb, 0x8c, 0xc7, 0xbf, 0x23, 0xde, 0xbd, + 0xce, 0xf2, 0x87, 0xa5, 0xbe, 0x2a, 0xf4, 0xd5, 0x3c, 0x46, 0xde, 0xfe, 0x7c, 0xaf, 0x97, 0x5f, + 0x47, 0xcd, 0x26, 0x98, 0xb2, 0xd9, 0xff, 0xec, 0x25, 0xc1, 0x1d, 0x01, 0x72, 0xc7, 0x4b, 0xe2, + 0x25, 0xc5, 0x48, 0x80, 0x6c, 0x79, 0x49, 0xbd, 0x8c, 0x71, 0x57, 0x80, 0x8c, 0xbc, 0x8c, 0xbd, + 0x4c, 0xb0, 0x25, 0x40, 0x1e, 0x78, 0x99, 0x78, 0x39, 0xc5, 0xb6, 0x00, 0xb9, 0xeb, 0xe5, 0xd4, + 0xcb, 0x19, 0x76, 0x04, 0xc8, 0xf7, 0x5e, 0xce, 0xbc, 0x9c, 0xe3, 0x9e, 0x00, 0x19, 0x7b, 0x39, + 0xf7, 0x72, 0x81, 0xfb, 0x02, 0x64, 0xc7, 0xcb, 0x45, 0x7c, 0xc4, 0x3b, 0xdb, 0x9b, 0x7d, 0x44, + 0x2e, 0x40, 0x1e, 0x4e, 0xd9, 0xec, 0x6d, 0x21, 0xd8, 0x08, 0xbb, 0x02, 0x64, 0x3b, 0xd8, 0x28, + 0x58, 0x82, 0x3d, 0x01, 0xb2, 0x1f, 0x2c, 0x09, 0x96, 0xe2, 0x81, 0x00, 0xb9, 0x17, 0x2c, 0x0d, + 0x36, 0xc6, 0x77, 0x9b, 0xf7, 0x0f, 0x36, 0x0e, 0x36, 0xc1, 0x43, 0x01, 0xb2, 0x17, 0x6c, 0x12, + 0x9f, 0xf0, 0xae, 0xad, 0xd4, 0x4d, 0xae, 0xad, 0xcd, 0x16, 0x1a, 0xfb, 0x02, 0x64, 0x37, 0xe1, + 0x83, 0x4d, 0x23, 0x9a, 0x4f, 0x9d, 0xb2, 0x19, 0xb7, 0x95, 0xfa, 0xb2, 0xf5, 0xcb, 0x1e, 0xe7, + 0xa5, 0xb6, 0xe5, 0x8d, 0x29, 0xb4, 0x99, 0x5f, 0x7e, 0x7a, 0xaa, 0x89, 0x3d, 0xd7, 0xc4, 0x7e, + 0xd5, 0xc4, 0x5e, 0x6a, 0x82, 0xd7, 0x9a, 0x60, 0x5d, 0x13, 0x3c, 0x3a, 0x82, 0xef, 0x8e, 0xe0, + 0x87, 0x23, 0xf8, 0xe9, 0x08, 0x9e, 0x1c, 0xb1, 0x67, 0x47, 0xec, 0xc5, 0x11, 0xfc, 0x75, 0xc4, + 0x5e, 0x1d, 0xc1, 0xda, 0x11, 0x3c, 0xfe, 0x21, 0xa6, 0xda, 0x4d, 0x8d, 0xd2, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x20, 0xce, 0x90, 0x27, 0x9e, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto index 2cc11418..717dbf2f 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go index 34f6ec41..f705abc4 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go @@ -17,6 +17,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,24 +70,28 @@ func TestSubbyProto(t *testing.T) { } func TestSubbyMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -93,21 +102,25 @@ func TestSubbyMarshalTo(t *testing.T) { } func TestSampleOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -127,24 +140,28 @@ func TestSampleOneOfProto(t *testing.T) { } func TestSampleOneOfMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -200,9 +217,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -217,9 +234,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -234,9 +251,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -251,9 +268,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -268,14 +285,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -283,14 +304,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -328,13 +353,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -350,13 +375,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go index 02189f8a..fc75b666 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go @@ -26,8 +26,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -40,7 +38,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Subby struct { Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` @@ -83,49 +83,49 @@ type isSampleOneOf_TestOneof interface { } type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,proto3,oneof"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` } type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,proto3,oneof"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` } type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,proto3,oneof"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` } type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,proto3,oneof"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` } type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,proto3,oneof"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` } type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,proto3,oneof"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` } type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,proto3,oneof"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` } type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,proto3,oneof"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` } type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,proto3,oneof"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` } type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,proto3,oneof"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` } type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,proto3,oneof"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` } type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,proto3,oneof"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` } type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,proto3,oneof"` + Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` } type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,proto3,oneof"` + Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` } type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15,proto3,oneof"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` } type SampleOneOf_SubMessage struct { SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` @@ -551,229 +551,249 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3538 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x23, 0xe5, - 0x15, 0xc6, 0xf1, 0x25, 0xf6, 0x71, 0xe2, 0x38, 0x93, 0xb0, 0xeb, 0x0d, 0xb0, 0xcb, 0x86, 0xdb, - 0xb2, 0x94, 0x64, 0x37, 0x7b, 0x37, 0x2d, 0x28, 0x17, 0x6f, 0xc8, 0x2a, 0x89, 0xd3, 0x71, 0x02, - 0x0b, 0x7d, 0x18, 0x4d, 0xec, 0x3f, 0x8e, 0x77, 0xc7, 0x33, 0xae, 0x67, 0xbc, 0x6c, 0x78, 0xa2, - 0xa2, 0x17, 0xa1, 0xaa, 0xf7, 0x4a, 0xe5, 0x5e, 0x40, 0x6a, 0xa1, 0xf4, 0x06, 0xbd, 0xa9, 0xea, - 0x53, 0xa5, 0x8a, 0x96, 0xa7, 0xaa, 0xed, 0x53, 0x1f, 0xfa, 0x00, 0x14, 0xa9, 0xb4, 0xa5, 0x2d, - 0x95, 0x56, 0x2a, 0x12, 0x2f, 0x3d, 0xff, 0x6d, 0x2e, 0xb6, 0x93, 0x71, 0x90, 0x28, 0x8d, 0x64, - 0xc5, 0x73, 0xce, 0xf9, 0xbe, 0xf9, 0xe7, 0xfc, 0xe7, 0x3f, 0xe7, 0xfc, 0xff, 0x18, 0x7e, 0x75, - 0x14, 0xae, 0xaf, 0x5a, 0x56, 0xd5, 0x20, 0x93, 0x8d, 0xa6, 0xe5, 0x58, 0xeb, 0xad, 0x8d, 0xc9, - 0x0a, 0xb1, 0xcb, 0xcd, 0x5a, 0xc3, 0xb1, 0x9a, 0x13, 0x4c, 0xa6, 0x0c, 0x71, 0x8b, 0x09, 0x69, - 0x31, 0xbe, 0x04, 0xc3, 0x67, 0x6b, 0x06, 0x99, 0x73, 0x0d, 0x4b, 0xc4, 0x51, 0x4e, 0x43, 0x6c, - 0x03, 0x85, 0xb9, 0xc8, 0xf5, 0xd1, 0x43, 0xe9, 0xa9, 0x1b, 0x27, 0xda, 0x40, 0x13, 0x41, 0xc4, - 0x0a, 0x15, 0xab, 0x0c, 0x31, 0xfe, 0x66, 0x0c, 0x46, 0xba, 0x68, 0x15, 0x05, 0x62, 0xa6, 0x5e, - 0xa7, 0x8c, 0x91, 0x43, 0x29, 0x95, 0x7d, 0x57, 0x72, 0xd0, 0xdf, 0xd0, 0xcb, 0x17, 0xf5, 0x2a, - 0xc9, 0xf5, 0x31, 0xb1, 0xbc, 0x54, 0xf6, 0x03, 0x54, 0x48, 0x83, 0x98, 0x15, 0x62, 0x96, 0xb7, - 0x72, 0x51, 0x1c, 0x45, 0x4a, 0xf5, 0x49, 0x94, 0xdb, 0x60, 0xb8, 0xd1, 0x5a, 0x37, 0x6a, 0x65, - 0xcd, 0x67, 0x06, 0x68, 0x16, 0x57, 0xb3, 0x5c, 0x31, 0xe7, 0x19, 0xdf, 0x02, 0x43, 0x0f, 0x10, - 0xfd, 0xa2, 0xdf, 0x34, 0xcd, 0x4c, 0x33, 0x54, 0xec, 0x33, 0x9c, 0x85, 0x81, 0x3a, 0xb1, 0x6d, - 0x1c, 0x80, 0xe6, 0x6c, 0x35, 0x48, 0x2e, 0xc6, 0x9e, 0xfe, 0xfa, 0x8e, 0xa7, 0x6f, 0x7f, 0xf2, - 0xb4, 0x40, 0xad, 0x22, 0x48, 0x99, 0x86, 0x14, 0x31, 0x5b, 0x75, 0xce, 0x10, 0xdf, 0xc6, 0x7f, - 0x05, 0xb4, 0x68, 0x67, 0x49, 0x52, 0x98, 0xa0, 0xe8, 0xb7, 0x49, 0xf3, 0x52, 0xad, 0x4c, 0x72, - 0x09, 0x46, 0x70, 0x4b, 0x07, 0x41, 0x89, 0xeb, 0xdb, 0x39, 0x24, 0x0e, 0x1f, 0x25, 0x45, 0x2e, - 0x3b, 0xc4, 0xb4, 0x6b, 0x96, 0x99, 0xeb, 0x67, 0x24, 0x37, 0x75, 0x99, 0x45, 0x62, 0x54, 0xda, - 0x29, 0x3c, 0x9c, 0x72, 0x12, 0xfa, 0xad, 0x86, 0x83, 0xdf, 0xec, 0x5c, 0x12, 0xe7, 0x27, 0x3d, - 0x75, 0x6d, 0xd7, 0x40, 0x28, 0x72, 0x1b, 0x55, 0x1a, 0x2b, 0x0b, 0x90, 0xb5, 0xad, 0x56, 0xb3, - 0x4c, 0xb4, 0xb2, 0x55, 0x21, 0x5a, 0xcd, 0xdc, 0xb0, 0x72, 0x29, 0x46, 0x70, 0xa0, 0xf3, 0x41, - 0x98, 0xe1, 0x2c, 0xda, 0x2d, 0xa0, 0x99, 0x9a, 0xb1, 0x03, 0xd7, 0xca, 0x1e, 0x48, 0xd8, 0x5b, - 0xa6, 0xa3, 0x5f, 0xce, 0x0d, 0xb0, 0x08, 0x11, 0x57, 0xe3, 0xff, 0x89, 0xc3, 0x50, 0x2f, 0x21, - 0x76, 0x07, 0xc4, 0x37, 0xe8, 0x53, 0x62, 0x80, 0xed, 0xc2, 0x07, 0x1c, 0x13, 0x74, 0x62, 0xe2, - 0x7d, 0x3a, 0x71, 0x1a, 0xd2, 0x26, 0xb1, 0x1d, 0x52, 0xe1, 0x11, 0x11, 0xed, 0x31, 0xa6, 0x80, - 0x83, 0x3a, 0x43, 0x2a, 0xf6, 0xbe, 0x42, 0xea, 0x3c, 0x0c, 0xb9, 0x43, 0xd2, 0x9a, 0xba, 0x59, - 0x95, 0xb1, 0x39, 0x19, 0x36, 0x92, 0x89, 0x82, 0xc4, 0xa9, 0x14, 0xa6, 0x66, 0x48, 0xe0, 0x5a, - 0x99, 0x03, 0xb0, 0x4c, 0x62, 0x6d, 0xe0, 0xf2, 0x2a, 0x1b, 0x18, 0x27, 0xdd, 0xbd, 0x54, 0xa4, - 0x26, 0x1d, 0x5e, 0xb2, 0xb8, 0xb4, 0x6c, 0x28, 0x67, 0xbc, 0x50, 0xeb, 0xdf, 0x26, 0x52, 0x96, - 0xf8, 0x22, 0xeb, 0x88, 0xb6, 0x35, 0xc8, 0x34, 0x09, 0x8d, 0x7b, 0x74, 0x31, 0x7f, 0xb2, 0x14, - 0x1b, 0xc4, 0x44, 0xe8, 0x93, 0xa9, 0x02, 0xc6, 0x1f, 0x6c, 0xb0, 0xe9, 0xbf, 0x54, 0x6e, 0x00, - 0x57, 0xa0, 0xb1, 0xb0, 0x02, 0x96, 0x85, 0x06, 0xa4, 0x70, 0x19, 0x65, 0x63, 0xa7, 0x21, 0x13, - 0x74, 0x8f, 0x32, 0x0a, 0x71, 0xdb, 0xd1, 0x9b, 0x0e, 0x8b, 0xc2, 0xb8, 0xca, 0x2f, 0x94, 0x2c, - 0x44, 0x31, 0xc9, 0xb0, 0x2c, 0x17, 0x57, 0xe9, 0xd7, 0xb1, 0x53, 0x30, 0x18, 0xb8, 0x7d, 0xaf, - 0xc0, 0xf1, 0x47, 0x13, 0x30, 0xda, 0x2d, 0xe6, 0xba, 0x86, 0x3f, 0x2e, 0x1f, 0x8c, 0x80, 0x75, - 0xd2, 0xc4, 0xb8, 0xa3, 0x0c, 0xe2, 0x0a, 0x23, 0x2a, 0x6e, 0xe8, 0xeb, 0xc4, 0xc0, 0x68, 0x8a, - 0x1c, 0xca, 0x4c, 0xdd, 0xd6, 0x53, 0x54, 0x4f, 0x2c, 0x52, 0x88, 0xca, 0x91, 0xca, 0x9d, 0x10, - 0x13, 0x29, 0x8e, 0x32, 0x1c, 0xee, 0x8d, 0x81, 0xc6, 0xa2, 0xca, 0x70, 0xca, 0x35, 0x90, 0xa2, - 0xff, 0xb9, 0x6f, 0x13, 0x6c, 0xcc, 0x49, 0x2a, 0xa0, 0x7e, 0x55, 0xc6, 0x20, 0xc9, 0xc2, 0xac, - 0x42, 0x64, 0x69, 0x70, 0xaf, 0xe9, 0xc4, 0x54, 0xc8, 0x86, 0xde, 0x32, 0x1c, 0xed, 0x92, 0x6e, - 0xb4, 0x08, 0x0b, 0x18, 0x9c, 0x18, 0x21, 0xbc, 0x87, 0xca, 0x94, 0x03, 0x90, 0xe6, 0x51, 0x59, - 0x43, 0xcc, 0x65, 0x96, 0x7d, 0xe2, 0x2a, 0x0f, 0xd4, 0x05, 0x2a, 0xa1, 0xb7, 0xbf, 0x60, 0xe3, - 0x5a, 0x10, 0x53, 0xcb, 0x6e, 0x41, 0x05, 0xec, 0xf6, 0xa7, 0xda, 0x13, 0xdf, 0x75, 0xdd, 0x1f, - 0xaf, 0x3d, 0x16, 0xc7, 0x7f, 0xd6, 0x07, 0x31, 0xb6, 0xde, 0x86, 0x20, 0xbd, 0x7a, 0xdf, 0x4a, - 0x41, 0x9b, 0x2b, 0xae, 0xcd, 0x2c, 0x16, 0xb2, 0x11, 0x25, 0x03, 0xc0, 0x04, 0x67, 0x17, 0x8b, - 0xd3, 0xab, 0xd9, 0x3e, 0xf7, 0x7a, 0x61, 0x79, 0xf5, 0xe4, 0xf1, 0x6c, 0xd4, 0x05, 0xac, 0x71, - 0x41, 0xcc, 0x6f, 0x70, 0x6c, 0x2a, 0x1b, 0xc7, 0x48, 0x18, 0xe0, 0x04, 0x0b, 0xe7, 0x0b, 0x73, - 0x68, 0x91, 0x08, 0x4a, 0xd0, 0xa6, 0x5f, 0x19, 0x84, 0x14, 0x93, 0xcc, 0x14, 0x8b, 0x8b, 0xd9, - 0xa4, 0xcb, 0x59, 0x5a, 0x55, 0x17, 0x96, 0xe7, 0xb3, 0x29, 0x97, 0x73, 0x5e, 0x2d, 0xae, 0xad, - 0x64, 0xc1, 0x65, 0x58, 0x2a, 0x94, 0x4a, 0xd3, 0xf3, 0x85, 0x6c, 0xda, 0xb5, 0x98, 0xb9, 0x6f, - 0xb5, 0x50, 0xca, 0x0e, 0x04, 0x86, 0x85, 0xb7, 0x18, 0x74, 0x6f, 0x51, 0x58, 0x5e, 0x5b, 0xca, - 0x66, 0x94, 0x61, 0x18, 0xe4, 0xb7, 0x90, 0x83, 0x18, 0x6a, 0x13, 0xe1, 0x48, 0xb3, 0xde, 0x40, - 0x38, 0xcb, 0x70, 0x40, 0x80, 0x16, 0xca, 0xf8, 0x2c, 0xc4, 0x59, 0x74, 0x61, 0x14, 0x67, 0x16, - 0xa7, 0x67, 0x0a, 0x8b, 0x5a, 0x71, 0x65, 0x75, 0xa1, 0xb8, 0x3c, 0xbd, 0x88, 0xbe, 0x73, 0x65, - 0x6a, 0xe1, 0xe3, 0x6b, 0x0b, 0x6a, 0x61, 0x0e, 0xfd, 0xe7, 0x93, 0xad, 0x14, 0xa6, 0x57, 0x51, - 0x16, 0x1d, 0x3f, 0x0c, 0xa3, 0xdd, 0xf2, 0x4c, 0xb7, 0x95, 0x31, 0xfe, 0x5c, 0x04, 0x46, 0xba, - 0xa4, 0xcc, 0xae, 0xab, 0xe8, 0x2e, 0x88, 0xf3, 0x48, 0xe3, 0x45, 0xe4, 0xd6, 0xae, 0xb9, 0x97, - 0xc5, 0x5d, 0x47, 0x21, 0x61, 0x38, 0x7f, 0x21, 0x8d, 0x6e, 0x53, 0x48, 0x29, 0x45, 0x47, 0x38, - 0x3d, 0x1c, 0x81, 0xdc, 0x76, 0xdc, 0x21, 0xeb, 0xbd, 0x2f, 0xb0, 0xde, 0xef, 0x68, 0x1f, 0xc0, - 0xc1, 0xed, 0x9f, 0xa1, 0x63, 0x14, 0xcf, 0x47, 0x60, 0x4f, 0xf7, 0x7e, 0xa3, 0xeb, 0x18, 0xee, - 0x84, 0x44, 0x9d, 0x38, 0x9b, 0x96, 0xac, 0xb9, 0x37, 0x77, 0xc9, 0xe4, 0x54, 0xdd, 0xee, 0x2b, - 0x81, 0xf2, 0x97, 0x82, 0xe8, 0x76, 0x4d, 0x03, 0x1f, 0x4d, 0xc7, 0x48, 0x1f, 0xe9, 0x83, 0xab, - 0xbb, 0x92, 0x77, 0x1d, 0xe8, 0x75, 0x00, 0x35, 0xb3, 0xd1, 0x72, 0x78, 0x5d, 0xe5, 0x69, 0x26, - 0xc5, 0x24, 0x6c, 0x09, 0xd3, 0x14, 0xd2, 0x72, 0x5c, 0x7d, 0x94, 0xe9, 0x81, 0x8b, 0x98, 0xc1, - 0x69, 0x6f, 0xa0, 0x31, 0x36, 0xd0, 0xfd, 0xdb, 0x3c, 0x69, 0x47, 0xc9, 0x3a, 0x02, 0xd9, 0xb2, - 0x51, 0x23, 0xa6, 0xa3, 0xd9, 0x4e, 0x93, 0xe8, 0xf5, 0x9a, 0x59, 0x65, 0x79, 0x34, 0x99, 0x8f, - 0x6f, 0xe8, 0x86, 0x4d, 0xd4, 0x21, 0xae, 0x2e, 0x49, 0x2d, 0x45, 0xb0, 0x62, 0xd1, 0xf4, 0x21, - 0x12, 0x01, 0x04, 0x57, 0xbb, 0x88, 0xf1, 0x3f, 0xf4, 0x43, 0xda, 0xd7, 0x9d, 0x29, 0x07, 0x61, - 0xe0, 0x82, 0x7e, 0x49, 0xd7, 0x64, 0xc7, 0xcd, 0x3d, 0x91, 0xa6, 0xb2, 0x15, 0xd1, 0x75, 0x1f, - 0x81, 0x51, 0x66, 0x82, 0xcf, 0x88, 0x37, 0x2a, 0x1b, 0xba, 0x6d, 0x33, 0xa7, 0x25, 0x99, 0xa9, - 0x42, 0x75, 0x45, 0xaa, 0x9a, 0x95, 0x1a, 0xe5, 0x04, 0x8c, 0x30, 0x44, 0x1d, 0x13, 0x6f, 0xad, - 0x61, 0x10, 0x8d, 0xee, 0x01, 0x6c, 0x96, 0x4f, 0xdd, 0x91, 0x0d, 0x53, 0x8b, 0x25, 0x61, 0x40, - 0x47, 0x64, 0x2b, 0xf3, 0x70, 0x1d, 0x83, 0x55, 0x89, 0x49, 0x9a, 0xba, 0x43, 0x34, 0xf2, 0xc9, - 0x16, 0xda, 0x6a, 0xba, 0x59, 0xd1, 0x36, 0x75, 0x7b, 0x33, 0x37, 0xea, 0x27, 0xd8, 0x47, 0x6d, - 0xe7, 0x85, 0x69, 0x81, 0x59, 0x4e, 0x9b, 0x95, 0xbb, 0xd1, 0x4e, 0xc9, 0xc3, 0x1e, 0x46, 0x84, - 0x4e, 0xc1, 0x67, 0xd6, 0xca, 0x9b, 0xa4, 0x7c, 0x51, 0x6b, 0x39, 0x1b, 0xa7, 0x73, 0xd7, 0xf8, - 0x19, 0xd8, 0x20, 0x4b, 0xcc, 0x66, 0x96, 0x9a, 0xac, 0xa1, 0x85, 0x52, 0x82, 0x01, 0x3a, 0x1f, - 0xf5, 0xda, 0x83, 0x38, 0x6c, 0xab, 0xc9, 0x6a, 0x44, 0xa6, 0xcb, 0xe2, 0xf6, 0x39, 0x71, 0xa2, - 0x28, 0x00, 0x4b, 0xd8, 0x9f, 0xe6, 0xe3, 0xa5, 0x95, 0x42, 0x61, 0x4e, 0x4d, 0x4b, 0x96, 0xb3, - 0x56, 0x93, 0xc6, 0x54, 0xd5, 0x72, 0x7d, 0x9c, 0xe6, 0x31, 0x55, 0xb5, 0xa4, 0x87, 0xd1, 0x5f, - 0xe5, 0x32, 0x7f, 0x6c, 0xdc, 0xbb, 0x88, 0x66, 0xdd, 0xce, 0x65, 0x03, 0xfe, 0x2a, 0x97, 0xe7, - 0xb9, 0x81, 0x08, 0x73, 0x1b, 0x97, 0xc4, 0xd5, 0x9e, 0xbf, 0xfc, 0xc0, 0xe1, 0x8e, 0xa7, 0x6c, - 0x87, 0xe2, 0x1d, 0x1b, 0x5b, 0x9d, 0x40, 0x25, 0x70, 0xc7, 0xc6, 0x56, 0x3b, 0xec, 0x26, 0xb6, - 0x01, 0x6b, 0x92, 0x32, 0xba, 0xbc, 0x92, 0xdb, 0xeb, 0xb7, 0xf6, 0x29, 0x94, 0x49, 0x0c, 0xe4, - 0xb2, 0x46, 0x4c, 0x7d, 0x1d, 0xe7, 0x5e, 0x6f, 0xe2, 0x17, 0x3b, 0x77, 0xc0, 0x6f, 0x9c, 0x29, - 0x97, 0x0b, 0x4c, 0x3b, 0xcd, 0x94, 0xca, 0x61, 0x18, 0xb6, 0xd6, 0x2f, 0x94, 0x79, 0x70, 0x69, - 0xc8, 0xb3, 0x51, 0xbb, 0x9c, 0xbb, 0x91, 0xb9, 0x69, 0x88, 0x2a, 0x58, 0x68, 0xad, 0x30, 0xb1, - 0x72, 0x2b, 0x92, 0xdb, 0x9b, 0x7a, 0xb3, 0xc1, 0x8a, 0xb4, 0x8d, 0x4e, 0x25, 0xb9, 0x9b, 0xb8, - 0x29, 0x97, 0x2f, 0x4b, 0xb1, 0x52, 0x80, 0x03, 0xf4, 0xe1, 0x4d, 0xdd, 0xb4, 0xb4, 0x96, 0x4d, - 0x34, 0x6f, 0x88, 0xee, 0x5c, 0xdc, 0x4c, 0x87, 0xa5, 0x5e, 0x2b, 0xcd, 0xd6, 0x6c, 0x4c, 0x66, - 0xd2, 0x48, 0x4e, 0xcf, 0x79, 0x18, 0x6d, 0x99, 0x35, 0x13, 0x43, 0x1c, 0x35, 0x14, 0xcc, 0x17, - 0x6c, 0xee, 0x2f, 0xfd, 0xdb, 0x34, 0xdd, 0x6b, 0x7e, 0x6b, 0x1e, 0x24, 0xea, 0x48, 0xab, 0x53, - 0x38, 0x9e, 0x87, 0x01, 0x7f, 0xec, 0x28, 0x29, 0xe0, 0xd1, 0x83, 0xd5, 0x0d, 0x2b, 0xea, 0x6c, - 0x71, 0x8e, 0xd6, 0xc2, 0xfb, 0x0b, 0x58, 0xd8, 0xb0, 0x26, 0x2f, 0x2e, 0xac, 0x16, 0x34, 0x75, - 0x6d, 0x79, 0x75, 0x61, 0xa9, 0x90, 0x8d, 0x1e, 0x4e, 0x25, 0xdf, 0xea, 0xcf, 0x3e, 0x84, 0x7f, - 0x7d, 0xe3, 0xaf, 0xf4, 0x41, 0x26, 0xd8, 0x07, 0x2b, 0x1f, 0x85, 0xbd, 0x72, 0xd3, 0x6a, 0x13, - 0x47, 0x7b, 0xa0, 0xd6, 0x64, 0xe1, 0x5c, 0xd7, 0x79, 0x27, 0xe9, 0xce, 0xc4, 0xa8, 0xb0, 0xc2, - 0xed, 0xfd, 0xbd, 0x68, 0x73, 0x96, 0x99, 0x28, 0x8b, 0x70, 0x00, 0x5d, 0x86, 0xbd, 0xa6, 0x59, - 0xd1, 0x9b, 0x15, 0xcd, 0x3b, 0x2e, 0xd0, 0xf4, 0x32, 0xc6, 0x81, 0x6d, 0xf1, 0x4a, 0xe2, 0xb2, - 0x5c, 0x6b, 0x5a, 0x25, 0x61, 0xec, 0xa5, 0xd8, 0x69, 0x61, 0xda, 0x16, 0x35, 0xd1, 0xed, 0xa2, - 0x06, 0x7b, 0xaf, 0xba, 0xde, 0xc0, 0xb0, 0x71, 0x9a, 0x5b, 0xac, 0x7b, 0x4b, 0xaa, 0x49, 0x14, - 0x14, 0xe8, 0xf5, 0x07, 0x37, 0x07, 0x7e, 0x3f, 0xfe, 0x29, 0x0a, 0x03, 0xfe, 0x0e, 0x8e, 0x36, - 0xc4, 0x65, 0x96, 0xe6, 0x23, 0x2c, 0x0b, 0xdc, 0xb0, 0x63, 0xbf, 0x37, 0x31, 0x4b, 0xf3, 0x7f, - 0x3e, 0xc1, 0xfb, 0x2a, 0x95, 0x23, 0x69, 0xed, 0xa5, 0xb1, 0x46, 0x78, 0xb7, 0x9e, 0x54, 0xc5, - 0x15, 0x26, 0xbb, 0xc4, 0x05, 0x9b, 0x71, 0x27, 0x18, 0xf7, 0x8d, 0x3b, 0x73, 0x9f, 0x2b, 0x31, - 0xf2, 0xd4, 0xb9, 0x92, 0xb6, 0x5c, 0x54, 0x97, 0xa6, 0x17, 0x55, 0x01, 0x57, 0xf6, 0x41, 0xcc, - 0xd0, 0x1f, 0xdc, 0x0a, 0x56, 0x0a, 0x26, 0xea, 0xd5, 0xf1, 0xc8, 0x40, 0x8f, 0x3c, 0x82, 0xf9, - 0x99, 0x89, 0x3e, 0xc0, 0xd0, 0x9f, 0x84, 0x38, 0xf3, 0x97, 0x02, 0x20, 0x3c, 0x96, 0xbd, 0x4a, - 0x49, 0x42, 0x6c, 0xb6, 0xa8, 0xd2, 0xf0, 0xc7, 0x78, 0xe7, 0x52, 0x6d, 0x65, 0xa1, 0x30, 0x8b, - 0x2b, 0x60, 0xfc, 0x04, 0x24, 0xb8, 0x13, 0xe8, 0xd2, 0x70, 0xdd, 0x80, 0x20, 0x7e, 0x29, 0x38, - 0x22, 0x52, 0xbb, 0xb6, 0x34, 0x53, 0x50, 0xb3, 0x7d, 0xfe, 0xe9, 0xfd, 0x45, 0x04, 0xd2, 0xbe, - 0x86, 0x8a, 0x96, 0x72, 0xdd, 0x30, 0xac, 0x07, 0x34, 0xdd, 0xa8, 0x61, 0x86, 0xe2, 0xf3, 0x03, - 0x4c, 0x34, 0x4d, 0x25, 0xbd, 0xfa, 0xef, 0x7f, 0x12, 0x9b, 0x4f, 0x47, 0x20, 0xdb, 0xde, 0x8c, - 0xb5, 0x0d, 0x30, 0xf2, 0xa1, 0x0e, 0xf0, 0xc9, 0x08, 0x64, 0x82, 0x1d, 0x58, 0xdb, 0xf0, 0x0e, - 0x7e, 0xa8, 0xc3, 0x7b, 0x22, 0x02, 0x83, 0x81, 0xbe, 0xeb, 0xff, 0x6a, 0x74, 0x8f, 0x47, 0x61, - 0xa4, 0x0b, 0x0e, 0x13, 0x10, 0x6f, 0x50, 0x79, 0xcf, 0x7c, 0x7b, 0x2f, 0xf7, 0x9a, 0xa0, 0xf5, - 0x6f, 0x45, 0x6f, 0x3a, 0xa2, 0x9f, 0xc5, 0x7a, 0x59, 0xab, 0x60, 0x52, 0xad, 0x6d, 0xd4, 0xb0, - 0x7d, 0xe3, 0x3b, 0x16, 0xde, 0xb5, 0x0e, 0x79, 0x72, 0xbe, 0x3d, 0xfe, 0x08, 0x28, 0x0d, 0xcb, - 0xae, 0x39, 0xb5, 0x4b, 0xf4, 0x78, 0x4e, 0x6e, 0xa4, 0x69, 0x17, 0x1b, 0x53, 0xb3, 0x52, 0xb3, - 0x60, 0x3a, 0xae, 0xb5, 0x49, 0xaa, 0x7a, 0x9b, 0x35, 0x4d, 0x43, 0x51, 0x35, 0x2b, 0x35, 0xae, - 0x35, 0x36, 0x9a, 0x15, 0xab, 0x45, 0x1b, 0x02, 0x6e, 0x47, 0xb3, 0x5e, 0x44, 0x4d, 0x73, 0x99, - 0x6b, 0x22, 0x3a, 0x36, 0x6f, 0x07, 0x3f, 0xa0, 0xa6, 0xb9, 0x8c, 0x9b, 0xdc, 0x02, 0x43, 0x7a, - 0xb5, 0xda, 0xa4, 0xe4, 0x92, 0x88, 0xb7, 0xa1, 0x19, 0x57, 0xcc, 0x0c, 0xc7, 0xce, 0x41, 0x52, - 0xfa, 0x81, 0x16, 0x16, 0xea, 0x09, 0xac, 0xf9, 0xec, 0x1c, 0xa5, 0x8f, 0x6e, 0xea, 0x4d, 0xa9, - 0xc4, 0x9b, 0xd6, 0x6c, 0xcd, 0x3b, 0xd0, 0xeb, 0x43, 0x7d, 0x52, 0x4d, 0xd7, 0x6c, 0xf7, 0x04, - 0x67, 0xfc, 0x79, 0x2c, 0xaf, 0xc1, 0x03, 0x49, 0x65, 0x0e, 0x92, 0x86, 0x85, 0xf1, 0x41, 0x11, - 0xfc, 0x34, 0xfc, 0x50, 0xc8, 0x19, 0xe6, 0xc4, 0xa2, 0xb0, 0x57, 0x5d, 0xe4, 0xd8, 0x6f, 0x23, - 0x90, 0x94, 0x62, 0x2c, 0x14, 0xb1, 0x86, 0xee, 0x6c, 0x32, 0xba, 0xf8, 0x4c, 0x5f, 0x36, 0xa2, - 0xb2, 0x6b, 0x2a, 0xc7, 0x6e, 0xc6, 0x64, 0x21, 0x20, 0xe4, 0xf4, 0x9a, 0xce, 0xab, 0x41, 0xf4, - 0x0a, 0x6b, 0x70, 0xad, 0x7a, 0x1d, 0x67, 0xd2, 0x96, 0xf3, 0x2a, 0xe4, 0xb3, 0x42, 0x4c, 0xcf, - 0xc5, 0x9d, 0xa6, 0x5e, 0x33, 0x02, 0xb6, 0x31, 0x66, 0x9b, 0x95, 0x0a, 0xd7, 0x38, 0x0f, 0xfb, - 0x24, 0x6f, 0x85, 0x38, 0x3a, 0x36, 0xcf, 0x15, 0x0f, 0x94, 0x60, 0xa7, 0x5d, 0x7b, 0x85, 0xc1, - 0x9c, 0xd0, 0x4b, 0xec, 0xcc, 0x79, 0x6c, 0x64, 0xad, 0x7a, 0xbb, 0x27, 0x66, 0xb2, 0x6d, 0xfb, - 0x2e, 0xfb, 0xee, 0xc8, 0xfd, 0xe0, 0x35, 0x15, 0xcf, 0xf5, 0x45, 0xe7, 0x57, 0x66, 0x5e, 0xec, - 0x1b, 0x9b, 0xe7, 0xb8, 0x15, 0xe9, 0x41, 0x95, 0x6c, 0x18, 0xa4, 0x4c, 0xbd, 0x03, 0xcf, 0xde, - 0x00, 0xb7, 0x57, 0x6b, 0xce, 0x66, 0x6b, 0x7d, 0x02, 0xef, 0x30, 0x59, 0xb5, 0xaa, 0x96, 0xf7, - 0x3a, 0x83, 0x5e, 0xb1, 0x0b, 0xf6, 0x4d, 0xbc, 0xd2, 0x48, 0xb9, 0xd2, 0xb1, 0xd0, 0xf7, 0x1f, - 0xf9, 0x65, 0x18, 0x11, 0xc6, 0x1a, 0x3b, 0x53, 0xe5, 0x2d, 0xa8, 0xb2, 0xe3, 0x86, 0x3c, 0xf7, - 0xf2, 0x9b, 0xac, 0x24, 0xa8, 0xc3, 0x02, 0x4a, 0x75, 0xbc, 0x49, 0xcd, 0xab, 0x70, 0x75, 0x80, - 0x8f, 0xc7, 0x30, 0x6e, 0xb9, 0x77, 0x66, 0x7c, 0x45, 0x30, 0x8e, 0xf8, 0x18, 0x4b, 0x02, 0x9a, - 0x9f, 0x85, 0xc1, 0xdd, 0x70, 0xfd, 0x5a, 0x70, 0x0d, 0x10, 0x3f, 0xc9, 0x3c, 0x0c, 0x31, 0x92, - 0x72, 0xcb, 0x76, 0xac, 0x3a, 0x4b, 0x10, 0x3b, 0xd3, 0xfc, 0xe6, 0x4d, 0x1e, 0x54, 0x19, 0x0a, - 0x9b, 0x75, 0x51, 0xf9, 0x7b, 0x60, 0x94, 0x4a, 0xd8, 0x1a, 0xf4, 0xb3, 0x85, 0x1f, 0x21, 0xe4, - 0x7e, 0xff, 0x30, 0x8f, 0xbd, 0x11, 0x97, 0xc0, 0xc7, 0xeb, 0x9b, 0x89, 0x2a, 0x71, 0x30, 0xb7, - 0xe1, 0xfe, 0xcf, 0x30, 0x94, 0x1d, 0xdf, 0x31, 0xe4, 0x1e, 0x7b, 0x3b, 0x38, 0x13, 0xf3, 0x1c, - 0x39, 0x6d, 0x18, 0xf9, 0x35, 0xd8, 0xdb, 0x65, 0x66, 0x7b, 0xe0, 0x7c, 0x5c, 0x70, 0x8e, 0x76, - 0xcc, 0x2e, 0xa5, 0x5d, 0x01, 0x29, 0x77, 0xe7, 0xa3, 0x07, 0xce, 0x27, 0x04, 0xa7, 0x22, 0xb0, - 0x72, 0x5a, 0x28, 0xe3, 0x39, 0x18, 0xc6, 0x9d, 0xfa, 0xba, 0x65, 0x8b, 0x7d, 0x6f, 0x0f, 0x74, - 0x4f, 0x0a, 0xba, 0x21, 0x01, 0x64, 0xbb, 0x60, 0xca, 0x75, 0x06, 0x92, 0x1b, 0xb8, 0x01, 0xea, - 0x81, 0xe2, 0x29, 0x41, 0xd1, 0x4f, 0xed, 0x29, 0x74, 0x1a, 0x06, 0xaa, 0x96, 0x48, 0xc3, 0xe1, - 0xf0, 0xa7, 0x05, 0x3c, 0x2d, 0x31, 0x82, 0xa2, 0x61, 0x35, 0x5a, 0x06, 0xcd, 0xd1, 0xe1, 0x14, - 0xdf, 0x94, 0x14, 0x12, 0x23, 0x28, 0x76, 0xe1, 0xd6, 0x67, 0x24, 0x85, 0xed, 0xf3, 0xe7, 0x5d, - 0xf4, 0xac, 0xd7, 0xd8, 0xb2, 0xcc, 0x5e, 0x06, 0xf1, 0xac, 0x60, 0x00, 0x01, 0xa1, 0x04, 0x77, - 0x40, 0xaa, 0xd7, 0x89, 0xf8, 0x96, 0x80, 0x27, 0x89, 0x9c, 0x01, 0x5c, 0x67, 0x32, 0xc9, 0xd0, - 0x77, 0x2b, 0xe1, 0x14, 0xdf, 0x16, 0x14, 0x19, 0x1f, 0x4c, 0x3c, 0x86, 0x43, 0x6c, 0x07, 0xb7, - 0xea, 0x3d, 0x90, 0x3c, 0x2f, 0x1f, 0x43, 0x40, 0x84, 0x2b, 0xd7, 0x89, 0x59, 0xde, 0xec, 0x8d, - 0xe1, 0x05, 0xe9, 0x4a, 0x89, 0xa1, 0x14, 0x98, 0x79, 0xea, 0x7a, 0x13, 0x37, 0xd7, 0x46, 0x4f, - 0xd3, 0xf1, 0x1d, 0xc1, 0x31, 0xe0, 0x82, 0x84, 0x47, 0x5a, 0xe6, 0x6e, 0x68, 0x5e, 0x94, 0x1e, - 0xf1, 0xc1, 0xc4, 0xd2, 0xc3, 0x9d, 0x29, 0xed, 0x24, 0x76, 0xc3, 0xf6, 0x5d, 0xb9, 0xf4, 0x38, - 0x76, 0xc9, 0xcf, 0x88, 0x33, 0x6d, 0xe3, 0x16, 0xbc, 0x17, 0x9a, 0xef, 0xc9, 0x99, 0x66, 0x00, - 0x0a, 0xbe, 0x0f, 0xf6, 0x75, 0x4d, 0xf5, 0x3d, 0x90, 0x7d, 0x5f, 0x90, 0xed, 0xe9, 0x92, 0xee, - 0x45, 0x4a, 0xd8, 0x2d, 0xe5, 0x0f, 0x64, 0x4a, 0x20, 0x6d, 0x5c, 0x2b, 0xb4, 0x8d, 0xb5, 0xf5, - 0x8d, 0xdd, 0x79, 0xed, 0x87, 0xd2, 0x6b, 0x1c, 0x1b, 0xf0, 0xda, 0x2a, 0xec, 0x11, 0x8c, 0xbb, - 0x9b, 0xd7, 0x97, 0x64, 0x62, 0xe5, 0xe8, 0xb5, 0xe0, 0xec, 0x7e, 0x02, 0xc6, 0x5c, 0x77, 0xca, - 0x0e, 0xcc, 0xd6, 0xe8, 0xc1, 0x40, 0x38, 0xf3, 0xcb, 0x82, 0x59, 0x66, 0x7c, 0xb7, 0x85, 0xb3, - 0x97, 0xf4, 0x06, 0x25, 0x3f, 0x0f, 0x39, 0x49, 0xde, 0x32, 0xb1, 0xc1, 0xb7, 0xaa, 0x26, 0x4e, - 0x63, 0xa5, 0x07, 0xea, 0x1f, 0xb5, 0x4d, 0xd5, 0x9a, 0x0f, 0x4e, 0x99, 0x17, 0x20, 0xeb, 0xf6, - 0x1b, 0x5a, 0xad, 0xde, 0xb0, 0xb0, 0xb5, 0xdc, 0x99, 0xf1, 0xc7, 0x72, 0xa6, 0x5c, 0xdc, 0x02, - 0x83, 0xe5, 0x0b, 0x90, 0x61, 0x97, 0xbd, 0x86, 0xe4, 0x4f, 0x04, 0xd1, 0xa0, 0x87, 0x12, 0x89, - 0x03, 0x3b, 0x25, 0xec, 0x79, 0x7b, 0xc9, 0x7f, 0x3f, 0x95, 0x89, 0x43, 0x40, 0x78, 0xf4, 0x0d, - 0xb5, 0x55, 0x62, 0x25, 0xec, 0xf5, 0x6b, 0xee, 0x53, 0x57, 0xc4, 0x9a, 0x0d, 0x16, 0xe2, 0xfc, - 0x22, 0x75, 0x4f, 0xb0, 0x5c, 0x86, 0x93, 0x3d, 0x7c, 0xc5, 0xf5, 0x50, 0xa0, 0x5a, 0xe6, 0xcf, - 0xc2, 0x60, 0xa0, 0x54, 0x86, 0x53, 0x7d, 0x5a, 0x50, 0x0d, 0xf8, 0x2b, 0x65, 0xfe, 0x04, 0xc4, - 0x68, 0xd9, 0x0b, 0x87, 0x7f, 0x46, 0xc0, 0x99, 0x79, 0xfe, 0x63, 0x90, 0x94, 0xe5, 0x2e, 0x1c, - 0xfa, 0x59, 0x01, 0x75, 0x21, 0x14, 0x2e, 0x4b, 0x5d, 0x38, 0xfc, 0x73, 0x12, 0x2e, 0x21, 0x14, - 0xde, 0xbb, 0x0b, 0x7f, 0xf9, 0xf9, 0x98, 0x48, 0x57, 0xd2, 0x77, 0xf4, 0x9d, 0x0f, 0xaf, 0x71, - 0xe1, 0xe8, 0x47, 0xc4, 0xcd, 0x25, 0x22, 0x7f, 0x0a, 0xe2, 0x3d, 0x3a, 0xfc, 0x0b, 0x02, 0xca, - 0xed, 0xb1, 0x82, 0xa4, 0x7d, 0x75, 0x2d, 0x1c, 0xfe, 0x45, 0x01, 0xf7, 0xa3, 0xe8, 0xd0, 0x45, - 0x5d, 0x0b, 0x27, 0xf8, 0x92, 0x1c, 0xba, 0x40, 0x50, 0xb7, 0xc9, 0x92, 0x16, 0x8e, 0xfe, 0xb2, - 0xf4, 0xba, 0x84, 0xe0, 0x6a, 0x4a, 0xb9, 0x69, 0x2a, 0x1c, 0xff, 0x15, 0x81, 0xf7, 0x30, 0xd4, - 0x03, 0xbe, 0x34, 0x19, 0x4e, 0xf1, 0x55, 0xe9, 0x01, 0x1f, 0x8a, 0x2e, 0xa3, 0xf6, 0xd2, 0x17, - 0xce, 0xf4, 0x35, 0xb9, 0x8c, 0xda, 0x2a, 0x1f, 0x9d, 0x4d, 0x96, 0x2d, 0xc2, 0x29, 0xbe, 0x2e, - 0x67, 0x93, 0xd9, 0xd3, 0x61, 0xb4, 0xd7, 0x92, 0x70, 0x8e, 0x6f, 0xc8, 0x61, 0xb4, 0x95, 0x12, - 0xac, 0x4c, 0x4a, 0x67, 0x1d, 0x09, 0xe7, 0x7b, 0x54, 0xf0, 0x0d, 0x77, 0x94, 0x91, 0xfc, 0xbd, - 0xb0, 0xa7, 0x7b, 0x0d, 0x09, 0x67, 0x7d, 0xec, 0x4a, 0x5b, 0xd7, 0xef, 0x2f, 0x21, 0x58, 0xf2, - 0x46, 0xbb, 0xd5, 0x8f, 0x70, 0xda, 0xc7, 0xaf, 0x04, 0x37, 0x76, 0xfe, 0xf2, 0x81, 0x1d, 0x1a, - 0x78, 0xa9, 0x3b, 0x9c, 0xeb, 0x49, 0xc1, 0xe5, 0x03, 0xd1, 0xa5, 0x21, 0x32, 0x77, 0x38, 0xfe, - 0x29, 0xb9, 0x34, 0x04, 0x02, 0xc1, 0x49, 0xb3, 0x65, 0x18, 0x34, 0x38, 0x94, 0x9d, 0x7f, 0xd2, - 0x90, 0xfb, 0xeb, 0x7b, 0x62, 0x61, 0x48, 0x00, 0xe6, 0xd0, 0x38, 0xa9, 0xaf, 0xa3, 0x0f, 0x42, - 0x90, 0x7f, 0x7b, 0x4f, 0x26, 0x04, 0x6a, 0x8d, 0xeb, 0x09, 0xf8, 0xa6, 0x91, 0x9d, 0x61, 0x87, - 0x60, 0xff, 0xfe, 0x9e, 0x78, 0xcd, 0xea, 0x41, 0x3c, 0x02, 0xfe, 0xd2, 0x76, 0x67, 0x82, 0xb7, - 0x83, 0x04, 0x6c, 0xa3, 0x79, 0x06, 0xfa, 0xe9, 0x2f, 0x3b, 0x1c, 0xbd, 0x1a, 0x86, 0xfe, 0x87, - 0x40, 0x4b, 0x7b, 0xea, 0xb0, 0xba, 0xd5, 0x24, 0xf8, 0xd5, 0x0e, 0xc3, 0xfe, 0x53, 0x60, 0x5d, - 0x00, 0x05, 0x97, 0x75, 0xdb, 0xe9, 0xe5, 0xb9, 0xff, 0x25, 0xc1, 0x12, 0x40, 0x07, 0x4d, 0xbf, - 0x5f, 0x24, 0x5b, 0x61, 0xd8, 0x77, 0xe4, 0xa0, 0x85, 0x3d, 0x26, 0xc0, 0x14, 0xfd, 0xca, 0x7f, - 0x7a, 0x10, 0x02, 0xfe, 0xb7, 0x00, 0x7b, 0x88, 0x99, 0x83, 0xdd, 0x8f, 0x76, 0x60, 0xde, 0x9a, - 0xb7, 0xf8, 0xa1, 0x0e, 0x3c, 0x13, 0x87, 0x71, 0xb4, 0xc1, 0xfa, 0x3a, 0xc9, 0xd7, 0xa4, 0x6f, - 0x3d, 0x4f, 0x62, 0xf9, 0x10, 0x07, 0x33, 0x51, 0xfc, 0x3a, 0xb6, 0xbb, 0xc3, 0x9c, 0xf1, 0x7d, - 0x10, 0x2f, 0xb5, 0xd6, 0xd7, 0xb7, 0xe8, 0x2f, 0x9f, 0xec, 0xd6, 0xba, 0x78, 0x4d, 0x4d, 0xbf, - 0xd2, 0x97, 0x36, 0xe9, 0x92, 0x5e, 0x6f, 0x60, 0x33, 0x63, 0x92, 0xe2, 0x86, 0x92, 0x83, 0x04, - 0x7b, 0x96, 0xa3, 0xcc, 0x28, 0x72, 0xf7, 0x55, 0x6a, 0x82, 0xfd, 0x6e, 0xef, 0xa8, 0xab, 0x99, - 0x62, 0x47, 0xfd, 0x7d, 0xae, 0x66, 0xca, 0xd5, 0x1c, 0xe3, 0x3f, 0x88, 0x72, 0x35, 0xc7, 0x5c, - 0xcd, 0x71, 0x76, 0x5e, 0x16, 0x75, 0x35, 0xc7, 0x5d, 0xcd, 0x09, 0x76, 0xe4, 0x39, 0xe8, 0x6a, - 0x4e, 0xb8, 0x9a, 0x93, 0xec, 0x90, 0x33, 0xe6, 0x6a, 0x4e, 0xba, 0x9a, 0x53, 0xec, 0x6c, 0x73, - 0xd8, 0xd5, 0x9c, 0x72, 0x35, 0xa7, 0xd9, 0x79, 0xa6, 0xe2, 0x6a, 0x4e, 0xbb, 0x9a, 0x33, 0xec, - 0x55, 0x74, 0xbf, 0xab, 0x39, 0xa3, 0x8c, 0x41, 0x3f, 0x7f, 0xd2, 0x23, 0xec, 0xd5, 0xcd, 0x10, - 0xaa, 0xfa, 0xf9, 0xa3, 0x1e, 0xf1, 0x74, 0x47, 0xd9, 0xeb, 0xe6, 0x84, 0xa7, 0x3b, 0xea, 0xe9, - 0xa6, 0xd8, 0xcf, 0x27, 0xb3, 0x9e, 0x6e, 0xca, 0xd3, 0x1d, 0xcb, 0x0d, 0xd2, 0xf5, 0xea, 0xe9, - 0x8e, 0x79, 0xba, 0xe3, 0xb9, 0x0c, 0xf5, 0xbf, 0xa7, 0x3b, 0xee, 0xe9, 0x4e, 0xe4, 0x86, 0xe8, - 0xb1, 0xad, 0xa7, 0x3b, 0xa1, 0xdc, 0x0e, 0x69, 0x9c, 0x28, 0x4d, 0xbc, 0x69, 0x64, 0xaf, 0xb5, - 0xd3, 0x53, 0x30, 0x41, 0x23, 0x82, 0x4d, 0x2a, 0xda, 0x02, 0x1a, 0x88, 0x34, 0x35, 0x33, 0x00, - 0x6c, 0xfb, 0xaa, 0xb1, 0x9f, 0x65, 0xcd, 0xcc, 0xbd, 0xfa, 0xfa, 0xfe, 0xab, 0x7e, 0x87, 0x9f, - 0x3f, 0xe2, 0xe7, 0xb5, 0xd7, 0xf7, 0x47, 0xde, 0xc1, 0xcf, 0xbb, 0xf8, 0x79, 0xe8, 0x8d, 0xfd, - 0x91, 0x17, 0xf0, 0xf3, 0x12, 0x7e, 0x7e, 0x8e, 0x9f, 0x57, 0xdf, 0x40, 0x3b, 0xfc, 0xbc, 0x86, - 0xdf, 0xdf, 0xc2, 0xff, 0xef, 0xe0, 0xff, 0x77, 0xf1, 0xff, 0x43, 0x7f, 0xde, 0x1f, 0x59, 0x4f, - 0xb0, 0x30, 0x3a, 0xf6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x2b, 0xe8, 0xe7, 0x0d, 0x2d, - 0x00, 0x00, + // 3862 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc6, + 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, + 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, + 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x26, 0xae, 0xe3, 0xa6, 0x99, + 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, + 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xcc, + 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, + 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, + 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, + 0x22, 0x93, 0xe6, 0xa8, 0xc5, 0x0a, 0xb7, 0x28, 0xec, 0xc0, 0xfc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, + 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, + 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x14, 0xde, 0x49, 0xc0, 0xc2, + 0x18, 0xad, 0x24, 0x41, 0xc2, 0xd2, 0xba, 0x98, 0x51, 0x58, 0x4e, 0x2b, 0xe4, 0x7f, 0x49, 0x86, + 0x99, 0x9e, 0xa6, 0xdf, 0xd1, 0x3a, 0x48, 0x8e, 0x11, 0x31, 0xbf, 0x94, 0xf2, 0x00, 0x2d, 0xd4, + 0x43, 0x56, 0x0b, 0x59, 0xfa, 0xa1, 0x1c, 0x3f, 0x17, 0x5f, 0x4e, 0x2b, 0x21, 0x89, 0xf4, 0x0c, + 0xcc, 0xf7, 0xfa, 0x4d, 0xd3, 0xd0, 0xd5, 0x90, 0x19, 0x9c, 0x8b, 0x2f, 0x27, 0x15, 0x91, 0x2a, + 0x36, 0x03, 0xe3, 0x27, 0x61, 0xee, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, + 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, + 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, + 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, + 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, + 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, + 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, + 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x8f, 0x8d, 0x4d, 0x84, 0x1a, + 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, + 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, + 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, + 0x92, 0x0c, 0x61, 0x57, 0x85, 0xff, 0x4f, 0xc2, 0xdc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, + 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x94, 0x41, 0x2c, 0x41, 0xc6, + 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, + 0xaa, 0x94, 0xba, 0x05, 0x73, 0xbe, 0x4b, 0xaa, 0xa3, 0x59, 0x1d, 0x9e, 0x9b, 0xab, 0x51, 0x9e, + 0xac, 0x54, 0x38, 0x4e, 0xc1, 0x30, 0x25, 0x87, 0x06, 0xae, 0xa5, 0x4d, 0x00, 0xdb, 0x42, 0x76, + 0x5b, 0x6d, 0x21, 0xdd, 0x94, 0x53, 0xc7, 0x44, 0xa9, 0x86, 0x4d, 0x46, 0xa2, 0x64, 0x53, 0xa9, + 0x6e, 0x4a, 0x57, 0x83, 0x54, 0x9b, 0x39, 0x26, 0x53, 0x76, 0xe8, 0x26, 0x1b, 0xc9, 0xb6, 0x7d, + 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb1, 0x27, 0x4b, 0x13, 0x27, 0x56, 0x22, 0x9f, 0x4c, 0x61, + 0x30, 0xfa, 0x60, 0xb3, 0x4e, 0xf8, 0x52, 0xfa, 0x38, 0xf8, 0x02, 0x95, 0xa4, 0x15, 0x90, 0x2a, + 0x94, 0xe5, 0xc2, 0x5d, 0xad, 0x8b, 0x96, 0xae, 0x40, 0x6e, 0x30, 0x3c, 0xd2, 0x22, 0x24, 0x5d, + 0x4f, 0x73, 0x3c, 0x92, 0x85, 0x49, 0x85, 0x5e, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x22, 0x55, 0x2e, + 0xa9, 0xe0, 0x7f, 0x97, 0x2e, 0xc3, 0xec, 0xc0, 0xed, 0x27, 0x05, 0x16, 0xbe, 0x30, 0x0d, 0x8b, + 0xe3, 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x82, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, + 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x73, 0xc2, 0x72, 0x6e, 0xed, 0x99, + 0x89, 0xb2, 0x7a, 0x65, 0x1b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, 0x30, 0xc3, + 0xd3, 0x93, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x14, 0xd2, 0xf8, 0x2f, 0x8d, 0xed, 0x34, + 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x12, 0xa4, 0x48, 0x9a, 0xb5, 0x10, 0x6f, 0x0d, 0xfe, + 0x35, 0x5e, 0x98, 0x16, 0x6a, 0x6b, 0x7d, 0xd3, 0x53, 0xef, 0x6a, 0x66, 0x1f, 0x91, 0x84, 0x49, + 0x2b, 0x59, 0x26, 0xfc, 0x0c, 0x96, 0x49, 0x67, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x5a, 0xe8, 0x65, + 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x2a, 0x96, 0xe0, 0xdb, 0xdf, 0x76, 0x6d, 0x8b, 0x2f, 0x2d, + 0xb9, 0x05, 0x16, 0x90, 0xdb, 0x5f, 0x1e, 0x2e, 0x7c, 0x8f, 0x8d, 0x7f, 0xbc, 0xe1, 0x5c, 0x2c, + 0x7c, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xe6, 0x20, 0xb3, 0xf7, 0x52, 0xbd, 0xa2, 0x6e, 0xd6, 0xf6, + 0x37, 0xb6, 0x2b, 0xa2, 0x20, 0xe5, 0x00, 0x88, 0xe0, 0xfa, 0x76, 0xad, 0xb4, 0x27, 0xc6, 0xfc, + 0xeb, 0xea, 0xee, 0xde, 0xa5, 0x8b, 0x62, 0xdc, 0x07, 0xec, 0x53, 0x41, 0x22, 0x6c, 0x70, 0x61, + 0x4d, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0x41, 0xf5, 0x56, 0x65, 0xf3, 0xd2, 0x45, 0x71, 0x7a, 0x50, + 0x72, 0x61, 0x4d, 0x9c, 0x91, 0x66, 0x21, 0x4d, 0x24, 0x1b, 0xb5, 0xda, 0xb6, 0x98, 0xf2, 0x39, + 0x1b, 0x7b, 0x4a, 0x75, 0x77, 0x4b, 0x4c, 0xfb, 0x9c, 0x5b, 0x4a, 0x6d, 0xbf, 0x2e, 0x82, 0xcf, + 0xb0, 0x53, 0x69, 0x34, 0x4a, 0x5b, 0x15, 0x31, 0xe3, 0x5b, 0x6c, 0xbc, 0xb4, 0x57, 0x69, 0x88, + 0xd9, 0x01, 0xb7, 0x2e, 0xac, 0x89, 0xb3, 0xfe, 0x2d, 0x2a, 0xbb, 0xfb, 0x3b, 0x62, 0x4e, 0x9a, + 0x87, 0x59, 0x7a, 0x0b, 0xee, 0xc4, 0xdc, 0x90, 0xe8, 0xd2, 0x45, 0x51, 0x0c, 0x1c, 0xa1, 0x2c, + 0xf3, 0x03, 0x82, 0x4b, 0x17, 0x45, 0xa9, 0x50, 0x86, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x76, + 0x69, 0xa3, 0xb2, 0xad, 0xd6, 0xea, 0x7b, 0xd5, 0xda, 0x6e, 0x69, 0x5b, 0x14, 0x02, 0x99, 0x52, + 0xf9, 0xf4, 0x7e, 0x55, 0xa9, 0x6c, 0x8a, 0xb1, 0xb0, 0xac, 0x5e, 0x29, 0xed, 0x55, 0x36, 0xc5, + 0x78, 0x41, 0x87, 0xc5, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, + 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0x16, 0xc6, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x01, 0x92, 0x34, + 0x45, 0x69, 0xf7, 0x79, 0x6a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, + 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0xab, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, + 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0x37, 0x05, 0x38, + 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x60, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, + 0x8c, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, + 0x66, 0xc4, 0xd3, 0xcf, 0xc7, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x0c, 0xc0, 0xb0, 0x7a, + 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, + 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0xf3, 0xc7, 0x3c, 0xe9, + 0x48, 0xaf, 0x7b, 0x0e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, + 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xcc, 0x51, 0x75, 0x83, 0x6b, 0x31, + 0x82, 0x74, 0x19, 0x27, 0x84, 0x98, 0x1e, 0x40, 0x50, 0xb5, 0x8f, 0x28, 0x7c, 0x7d, 0x06, 0x32, + 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, + 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x0e, 0x16, 0x89, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, + 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x02, + 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, + 0x79, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x11, 0x58, 0x07, 0x59, 0xc8, + 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0xf5, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, + 0xbc, 0x88, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, + 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, + 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, + 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0x2b, 0x48, + 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, + 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, + 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x41, 0xd7, 0xe9, 0x33, + 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, + 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0xf3, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0x85, + 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x04, 0x79, 0x6d, 0x73, 0x90, + 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, + 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, + 0x96, 0x88, 0x52, 0x7a, 0x1a, 0xe6, 0xed, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, + 0x78, 0x59, 0x7e, 0x9c, 0x84, 0x69, 0x0e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x0a, 0x44, + 0xdd, 0x3d, 0xd0, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x04, 0x35, 0xa5, 0xf2, + 0x5d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, 0x91, 0x31, + 0xb6, 0x5b, 0xb0, 0xd8, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, + 0xfe, 0xb7, 0x99, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xa1, 0x3f, 0x2a, 0x2c, + 0x14, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, + 0x77, 0xc7, 0xcf, 0x56, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, + 0x55, 0x77, 0x2a, 0x62, 0xfc, 0xe9, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, + 0x0a, 0xdf, 0x89, 0x41, 0x6e, 0x70, 0x32, 0x96, 0x7e, 0x1e, 0x4e, 0xf3, 0xd7, 0x58, 0x17, 0x79, + 0xea, 0x3d, 0xc3, 0x21, 0xa9, 0xda, 0xd5, 0xe8, 0x6c, 0xe9, 0x47, 0x79, 0x91, 0x59, 0x35, 0x90, + 0xf7, 0xa2, 0xe1, 0xe0, 0x44, 0xec, 0x6a, 0x9e, 0xb4, 0x0d, 0x67, 0x2d, 0x5b, 0x75, 0x3d, 0xcd, + 0x6a, 0x69, 0x4e, 0x4b, 0x0d, 0x0e, 0x10, 0x54, 0x4d, 0xd7, 0x91, 0xeb, 0xda, 0xb4, 0x45, 0xf8, + 0x2c, 0x1f, 0xb3, 0xec, 0x06, 0x33, 0x0e, 0x6a, 0x67, 0x89, 0x99, 0x0e, 0x65, 0x44, 0xfc, 0xb8, + 0x8c, 0x78, 0x14, 0xd2, 0x5d, 0xad, 0xa7, 0x22, 0xcb, 0x73, 0x0e, 0xc9, 0x3c, 0x97, 0x52, 0x52, + 0x5d, 0xad, 0x57, 0xc1, 0xd7, 0x1f, 0xde, 0x1a, 0x84, 0xe3, 0xf8, 0xfd, 0x38, 0x64, 0xc3, 0x33, + 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xfe, 0xd0, 0x09, 0x70, 0xa5, 0x8c, + 0x0b, 0x7b, 0x71, 0x9a, 0x4e, 0x5a, 0x0a, 0x45, 0xe2, 0xa6, 0x8a, 0xf7, 0x34, 0xa2, 0xf3, 0x7b, + 0x4a, 0x61, 0x57, 0xd2, 0x16, 0x4c, 0xdf, 0x76, 0x09, 0xf7, 0x34, 0xe1, 0x7e, 0xfc, 0xe1, 0xdc, + 0x37, 0x1b, 0x84, 0x3c, 0x7d, 0xb3, 0xa1, 0xee, 0xd6, 0x94, 0x9d, 0xd2, 0xb6, 0xc2, 0xe0, 0xd2, + 0x19, 0x48, 0x98, 0xda, 0x2b, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x19, 0x48, 0xdc, + 0x43, 0xda, 0x9d, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x62, 0xea, 0xaf, 0x42, 0x92, 0xc4, 0x4b, 0x02, + 0x60, 0x11, 0x13, 0xa7, 0xa4, 0x14, 0x24, 0xca, 0x35, 0x05, 0xa7, 0xbf, 0x08, 0x59, 0x2a, 0x55, + 0xeb, 0xd5, 0x4a, 0xb9, 0x22, 0xc6, 0x0a, 0xeb, 0x30, 0x4d, 0x83, 0x80, 0xb7, 0x86, 0x1f, 0x06, + 0x71, 0x8a, 0x5d, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0x77, 0x36, 0x2a, 0x8a, 0x18, 0x0b, 0x2f, 0xaf, + 0x0b, 0xd9, 0xf0, 0x38, 0xf7, 0xb3, 0xc9, 0xa9, 0x7f, 0x10, 0x20, 0x13, 0x1a, 0xcf, 0xf0, 0x60, + 0xa0, 0x99, 0xa6, 0x7d, 0x4f, 0xd5, 0x4c, 0x43, 0x73, 0x59, 0x52, 0x00, 0x11, 0x95, 0xb0, 0x64, + 0xd2, 0x45, 0xfb, 0x99, 0x38, 0xff, 0x86, 0x00, 0xe2, 0xf0, 0x68, 0x37, 0xe4, 0xa0, 0xf0, 0x91, + 0x3a, 0xf8, 0xba, 0x00, 0xb9, 0xc1, 0x79, 0x6e, 0xc8, 0xbd, 0xf3, 0x1f, 0xa9, 0x7b, 0x6f, 0xc7, + 0x60, 0x76, 0x60, 0x8a, 0x9b, 0xd4, 0xbb, 0xcf, 0xc1, 0xbc, 0xd1, 0x42, 0xdd, 0x9e, 0xed, 0x21, + 0x4b, 0x3f, 0x54, 0x4d, 0x74, 0x17, 0x99, 0x72, 0x81, 0x14, 0x8a, 0xd5, 0x87, 0xcf, 0x89, 0x2b, + 0xd5, 0x00, 0xb7, 0x8d, 0x61, 0xc5, 0x85, 0xea, 0x66, 0x65, 0xa7, 0x5e, 0xdb, 0xab, 0xec, 0x96, + 0x5f, 0x52, 0xf7, 0x77, 0x7f, 0x61, 0xb7, 0xf6, 0xe2, 0xae, 0x22, 0x1a, 0x43, 0x66, 0x1f, 0xe2, + 0x56, 0xaf, 0x83, 0x38, 0xec, 0x94, 0x74, 0x1a, 0xc6, 0xb9, 0x25, 0x4e, 0x49, 0x0b, 0x30, 0xb7, + 0x5b, 0x53, 0x1b, 0xd5, 0xcd, 0x8a, 0x5a, 0xb9, 0x7e, 0xbd, 0x52, 0xde, 0x6b, 0xd0, 0x17, 0x67, + 0xdf, 0x7a, 0x6f, 0x70, 0x53, 0xbf, 0x16, 0x87, 0x85, 0x31, 0x9e, 0x48, 0x25, 0x36, 0xb3, 0xd3, + 0xd7, 0x88, 0x67, 0x27, 0xf1, 0x7e, 0x05, 0x4f, 0x05, 0x75, 0xcd, 0xf1, 0xd8, 0x88, 0xff, 0x14, + 0xe0, 0x28, 0x59, 0x9e, 0xd1, 0x36, 0x90, 0xc3, 0xce, 0x19, 0xe8, 0x20, 0x3f, 0x17, 0xc8, 0xe9, + 0x51, 0xc3, 0xcf, 0x81, 0xd4, 0xb3, 0x5d, 0xc3, 0x33, 0xee, 0x22, 0xd5, 0xb0, 0xf8, 0xa1, 0x04, + 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x55, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, 0xd1, 0x86, 0xac, 0x71, + 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0x78, 0x4c, 0xa2, 0x76, + 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, 0x21, 0x59, 0x25, 0x43, + 0x65, 0xd4, 0xe4, 0x49, 0x98, 0xd3, 0x3a, 0x1d, 0x07, 0x93, 0x73, 0x22, 0x3a, 0x99, 0xe7, 0x7c, + 0x31, 0x31, 0x5c, 0xba, 0x09, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, 0xd4, 0x1e, 0x3d, 0x93, + 0x8a, 0x2d, 0xa7, 0x95, 0x94, 0xc5, 0x95, 0xe7, 0x21, 0x6b, 0xb8, 0x6a, 0x70, 0x38, 0x1a, 0x3b, + 0x17, 0x5b, 0x4e, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x0a, 0x6f, 0xc6, 0x20, 0x37, 0x78, 0xb8, + 0x2b, 0x6d, 0x42, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, 0x39, 0xe2, 0x3c, 0x78, + 0x65, 0x9b, 0xd9, 0x2b, 0x3e, 0x72, 0xe9, 0x5f, 0x04, 0x48, 0x71, 0xb1, 0x74, 0x0a, 0x12, 0x3d, + 0xcd, 0x3b, 0x20, 0x74, 0xc9, 0x8d, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x9e, 0x66, 0x91, + 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x8b, 0x8c, 0xfd, 0x76, 0xb7, 0x8b, 0x2c, + 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x65, 0x26, 0x96, 0x9e, 0x81, 0x79, 0xcf, 0xd1, 0x0c, 0x73, 0xc0, + 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x86, 0xf3, 0xb6, 0x90, 0xa7, 0xe9, 0x07, + 0xa8, 0x15, 0x80, 0xa6, 0xc9, 0xc9, 0xe1, 0x69, 0x66, 0xb0, 0xc9, 0xf4, 0x1c, 0x5b, 0xf8, 0x9e, + 0x00, 0xf3, 0xfc, 0x45, 0xa5, 0xe5, 0x07, 0x6b, 0x07, 0x40, 0xb3, 0x2c, 0xdb, 0x0b, 0x87, 0x6b, + 0x34, 0x95, 0x47, 0x70, 0x2b, 0x25, 0x1f, 0xa4, 0x84, 0x08, 0x96, 0xba, 0x00, 0x81, 0xe6, 0xd8, + 0xb0, 0x9d, 0x85, 0x0c, 0x3b, 0xb9, 0x27, 0x3f, 0xff, 0xd0, 0x57, 0x5b, 0xa0, 0x22, 0xfc, 0x46, + 0x23, 0x2d, 0x42, 0xb2, 0x89, 0x3a, 0x86, 0xc5, 0xce, 0x13, 0xe9, 0x05, 0x3f, 0xa5, 0x4c, 0xf8, + 0xa7, 0x94, 0x1b, 0xb7, 0x60, 0x41, 0xb7, 0xbb, 0xc3, 0xee, 0x6e, 0x88, 0x43, 0xaf, 0xd7, 0xee, + 0x0d, 0xe1, 0xb3, 0x10, 0x8c, 0x98, 0x5f, 0x89, 0xc5, 0xb7, 0xea, 0x1b, 0x5f, 0x8b, 0x2d, 0x6d, + 0x51, 0x5c, 0x9d, 0x3f, 0xa6, 0x82, 0xda, 0x26, 0xd2, 0xb1, 0xeb, 0xf0, 0xa3, 0x4f, 0xc0, 0xb3, + 0x1d, 0xc3, 0x3b, 0xe8, 0x37, 0x57, 0x74, 0xbb, 0xbb, 0xda, 0xb1, 0x3b, 0x76, 0xf0, 0x73, 0x17, + 0xbe, 0x22, 0x17, 0xe4, 0x3f, 0xf6, 0x93, 0x57, 0xda, 0x97, 0x2e, 0x45, 0xfe, 0x3e, 0x56, 0xdc, + 0x85, 0x05, 0x66, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf4, 0xdc, 0x45, 0xfe, 0xe6, + 0x3b, 0xa4, 0x57, 0x2b, 0xf3, 0x0c, 0x8a, 0x75, 0xf4, 0x05, 0xa2, 0xa8, 0xc0, 0x23, 0x03, 0x7c, + 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x3b, 0x8c, 0x71, 0x21, 0xc4, 0xd8, 0x60, 0xd0, 0x62, 0x19, + 0x66, 0x4f, 0xc2, 0xf5, 0x4f, 0x8c, 0x2b, 0x8b, 0xc2, 0x24, 0x5b, 0x30, 0x47, 0x48, 0xf4, 0xbe, + 0xeb, 0xd9, 0x5d, 0x52, 0xf4, 0x1e, 0x4e, 0xf3, 0xcf, 0xef, 0xd0, 0x8d, 0x92, 0xc3, 0xb0, 0xb2, + 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x42, 0xba, 0x19, 0xc1, 0xf0, 0x16, 0x73, 0xc4, 0xb7, + 0x2f, 0x7e, 0x06, 0x16, 0xf1, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, 0x65, 0x92, 0xbf, 0xf7, + 0x2a, 0xdd, 0x8b, 0x0b, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, + 0x35, 0x73, 0x9c, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x8b, 0xef, 0x0e, 0xae, 0xe2, 0x16, 0x45, 0x96, + 0x4c, 0xb3, 0xb8, 0x0f, 0xa7, 0xc7, 0x64, 0xc5, 0x04, 0x9c, 0xaf, 0x31, 0xce, 0xc5, 0x91, 0xcc, + 0xc0, 0xb4, 0x75, 0xe0, 0x72, 0x7f, 0x2d, 0x27, 0xe0, 0xfc, 0x43, 0xc6, 0x29, 0x31, 0x2c, 0x5f, + 0x52, 0xcc, 0x78, 0x13, 0xe6, 0xef, 0x22, 0xa7, 0x69, 0xbb, 0xec, 0x68, 0x64, 0x02, 0xba, 0xd7, + 0x19, 0xdd, 0x1c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, + 0x7c, 0x89, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, + 0x83, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x47, + 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x65, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x02, 0x64, + 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x9c, 0xf8, 0x63, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x41, + 0x7a, 0xd2, 0x85, 0xf8, 0x93, 0x77, 0xf9, 0xf6, 0xe0, 0x2b, 0xb0, 0x05, 0x73, 0xbc, 0x40, 0x19, + 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x32, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, + 0x93, 0x90, 0xbc, 0xc9, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, + 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, + 0xe3, 0xcf, 0x18, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, + 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, + 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf9, 0x4a, 0x13, 0x00, 0x06, + 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x82, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, + 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf2, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, + 0x27, 0x8b, 0xda, 0x5f, 0xf1, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, + 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x5f, 0x84, 0x25, 0x3f, 0x9c, 0x7c, + 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, + 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, + 0x82, 0x5a, 0x13, 0x50, 0xff, 0xf5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, + 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0xdf, 0xf0, 0x95, 0xf2, 0x71, 0x55, 0x02, + 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x65, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, + 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0x77, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, + 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, + 0x09, 0x28, 0xfe, 0x9e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, + 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xee, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, + 0x30, 0x37, 0x34, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0xbf, 0xf4, 0x3e, 0x2b, 0x46, 0x83, 0x13, + 0x46, 0x71, 0x1b, 0xaf, 0xfb, 0xe0, 0x1c, 0x10, 0x4d, 0xf6, 0xea, 0xfb, 0xfe, 0xd2, 0x0f, 0x8c, + 0x01, 0xc5, 0xeb, 0x30, 0x3b, 0x30, 0x03, 0x44, 0x53, 0xfd, 0x32, 0xa3, 0xca, 0x86, 0x47, 0x80, + 0xe2, 0x3a, 0x24, 0x70, 0x3f, 0x8f, 0x86, 0xff, 0x0a, 0x83, 0x13, 0xf3, 0xe2, 0x27, 0x21, 0xc5, + 0xfb, 0x78, 0x34, 0xf4, 0x57, 0x19, 0xd4, 0x87, 0x60, 0x38, 0xef, 0xe1, 0xd1, 0xf0, 0x5f, 0xe3, + 0x70, 0x0e, 0xc1, 0xf0, 0xc9, 0x43, 0xf8, 0x8f, 0xbf, 0x9e, 0x60, 0x75, 0x98, 0xc7, 0xee, 0x1a, + 0xcc, 0xb0, 0xe6, 0x1d, 0x8d, 0xfe, 0x3c, 0xbb, 0x39, 0x47, 0x14, 0x2f, 0x43, 0x72, 0xc2, 0x80, + 0xff, 0x06, 0x83, 0x52, 0xfb, 0x62, 0x19, 0x32, 0xa1, 0x86, 0x1d, 0x0d, 0xff, 0x4d, 0x06, 0x0f, + 0xa3, 0xb0, 0xeb, 0xac, 0x61, 0x47, 0x13, 0xfc, 0x16, 0x77, 0x9d, 0x21, 0x70, 0xd8, 0x78, 0xaf, + 0x8e, 0x46, 0xff, 0x36, 0x8f, 0x3a, 0x87, 0x14, 0x5f, 0x80, 0xb4, 0x5f, 0x7f, 0xa3, 0xf1, 0xbf, + 0xc3, 0xf0, 0x01, 0x06, 0x47, 0x20, 0x54, 0xff, 0xa3, 0x29, 0x7e, 0x97, 0x47, 0x20, 0x84, 0xc2, + 0xdb, 0x68, 0xb8, 0xa7, 0x47, 0x33, 0xfd, 0x1e, 0xdf, 0x46, 0x43, 0x2d, 0x1d, 0xaf, 0x26, 0x29, + 0x83, 0xd1, 0x14, 0xbf, 0xcf, 0x57, 0x93, 0xd8, 0x63, 0x37, 0x86, 0x9b, 0x64, 0x34, 0xc7, 0x1f, + 0x70, 0x37, 0x86, 0x7a, 0x64, 0xb1, 0x0e, 0xd2, 0x68, 0x83, 0x8c, 0xe6, 0xfb, 0x02, 0xe3, 0x9b, + 0x1f, 0xe9, 0x8f, 0xc5, 0x17, 0xe1, 0xd4, 0xf8, 0xe6, 0x18, 0xcd, 0xfa, 0xc5, 0xf7, 0x87, 0x5e, + 0x67, 0xc2, 0xbd, 0xb1, 0xb8, 0x17, 0x54, 0xd9, 0x70, 0x63, 0x8c, 0xa6, 0x7d, 0xed, 0xfd, 0xc1, + 0x42, 0x1b, 0xee, 0x8b, 0xc5, 0x12, 0x40, 0xd0, 0x93, 0xa2, 0xb9, 0x5e, 0x67, 0x5c, 0x21, 0x10, + 0xde, 0x1a, 0xac, 0x25, 0x45, 0xe3, 0xbf, 0xc4, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0xbb, 0x51, + 0x34, 0xfa, 0x0d, 0xbe, 0x35, 0x38, 0xa4, 0x78, 0x0d, 0x52, 0x56, 0xdf, 0x34, 0x71, 0x6e, 0x49, + 0x0f, 0xff, 0x8c, 0x48, 0xfe, 0xf7, 0x0f, 0x18, 0x98, 0x03, 0x8a, 0xeb, 0x90, 0x44, 0xdd, 0x26, + 0x6a, 0x45, 0x21, 0xff, 0xe3, 0x03, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, 0x00, 0xfa, 0x32, 0x4d, + 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xe7, 0x07, 0xec, 0x0b, 0x85, 0x00, 0x12, 0x10, 0xd0, 0xef, 0x1d, + 0x1e, 0x4e, 0xf0, 0xee, 0x20, 0x01, 0x79, 0x01, 0xbf, 0x0a, 0x33, 0xb7, 0x5d, 0xdb, 0xf2, 0xb4, + 0x4e, 0x14, 0xfa, 0xbf, 0x18, 0x9a, 0xdb, 0xe3, 0x80, 0x75, 0x6d, 0x07, 0x79, 0x5a, 0xc7, 0x8d, + 0xc2, 0xfe, 0x37, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x9b, 0xe4, 0xb9, 0xff, 0x87, 0x83, + 0x39, 0x00, 0x3b, 0x8d, 0xff, 0xbf, 0x83, 0x0e, 0xa3, 0xb0, 0xef, 0x71, 0xa7, 0x99, 0x7d, 0xf1, + 0x93, 0x90, 0xc6, 0xff, 0xd2, 0xaf, 0x76, 0x22, 0xc0, 0xff, 0xcb, 0xc0, 0x01, 0x02, 0xdf, 0xd9, + 0xf5, 0x5a, 0x9e, 0x11, 0x1d, 0xec, 0xff, 0x63, 0x2b, 0xcd, 0xed, 0x8b, 0x25, 0xc8, 0xb8, 0x5e, + 0xab, 0xd5, 0x67, 0x13, 0x4d, 0x04, 0xfc, 0x47, 0x1f, 0xf8, 0x2f, 0xb9, 0x3e, 0x66, 0xe3, 0xfc, + 0xf8, 0xc3, 0x3a, 0xd8, 0xb2, 0xb7, 0x6c, 0x7a, 0x4c, 0x07, 0x5f, 0x4e, 0x42, 0x41, 0xb7, 0xbb, + 0x4d, 0xdb, 0x5d, 0xa5, 0x05, 0x25, 0x54, 0x8c, 0x56, 0x6d, 0x8b, 0xa1, 0xa4, 0xb8, 0x6d, 0xa1, + 0xa5, 0x93, 0x1d, 0xcf, 0x15, 0xce, 0x40, 0xb2, 0xd1, 0x6f, 0x36, 0x0f, 0x25, 0x11, 0xe2, 0x6e, + 0xbf, 0xc9, 0xbe, 0x2f, 0xc1, 0xff, 0x16, 0xbe, 0x1f, 0x87, 0x4c, 0x43, 0xeb, 0xf6, 0x4c, 0x54, + 0xb3, 0x50, 0xad, 0x2d, 0xc9, 0x30, 0x4d, 0x9e, 0xe6, 0x79, 0x62, 0x24, 0xdc, 0x98, 0x52, 0xd8, + 0xb5, 0xaf, 0x59, 0x23, 0x67, 0x96, 0x31, 0x5f, 0xb3, 0xe6, 0x6b, 0x2e, 0xd0, 0x23, 0x4b, 0x5f, + 0x73, 0xc1, 0xd7, 0x5c, 0x24, 0x07, 0x97, 0x71, 0x5f, 0x73, 0xd1, 0xd7, 0xac, 0x93, 0x83, 0xf9, + 0x59, 0x5f, 0xb3, 0xee, 0x6b, 0x2e, 0x91, 0xa3, 0xf8, 0x84, 0xaf, 0xb9, 0xe4, 0x6b, 0x2e, 0x93, + 0x13, 0xf8, 0x79, 0x5f, 0x73, 0xd9, 0xd7, 0x5c, 0x21, 0xa7, 0xee, 0x92, 0xaf, 0xb9, 0xe2, 0x6b, + 0xae, 0x92, 0xcf, 0x48, 0x66, 0x7c, 0xcd, 0x55, 0x69, 0x09, 0x66, 0xe8, 0x93, 0x3d, 0x47, 0x7e, + 0x9a, 0x9d, 0xbb, 0x31, 0xa5, 0x70, 0x41, 0xa0, 0x7b, 0x9e, 0x7c, 0x2a, 0x32, 0x1d, 0xe8, 0x9e, + 0x0f, 0x74, 0x6b, 0xe4, 0x83, 0x69, 0x31, 0xd0, 0xad, 0x05, 0xba, 0x0b, 0xf2, 0x2c, 0x4e, 0x82, + 0x40, 0x77, 0x21, 0xd0, 0x5d, 0x94, 0x73, 0x38, 0xfe, 0x81, 0xee, 0x62, 0xa0, 0x5b, 0x97, 0xe7, + 0xce, 0x09, 0xcb, 0xd9, 0x40, 0xb7, 0x2e, 0x3d, 0x0b, 0x19, 0xb7, 0xdf, 0x54, 0xd9, 0x97, 0x04, + 0xe4, 0x93, 0x94, 0xcc, 0x1a, 0xac, 0xe0, 0x8c, 0x20, 0x8b, 0x7a, 0x63, 0x4a, 0x01, 0xb7, 0xdf, + 0x64, 0x55, 0x72, 0x23, 0x0b, 0xe4, 0x50, 0x41, 0x25, 0x1f, 0x62, 0x6e, 0x6c, 0xbe, 0xf5, 0x20, + 0x3f, 0xf5, 0xdd, 0x07, 0xf9, 0xa9, 0x7f, 0x7d, 0x90, 0x9f, 0x7a, 0xfb, 0x41, 0x5e, 0x78, 0xef, + 0x41, 0x5e, 0xf8, 0xf1, 0x83, 0xbc, 0x70, 0xff, 0x28, 0x2f, 0x7c, 0xf5, 0x28, 0x2f, 0x7c, 0xe3, + 0x28, 0x2f, 0x7c, 0xfb, 0x28, 0x2f, 0xbc, 0x75, 0x94, 0x9f, 0xfa, 0xee, 0x51, 0x7e, 0xea, 0xed, + 0xa3, 0xbc, 0xf0, 0xc3, 0xa3, 0xfc, 0xd4, 0x7b, 0x47, 0x79, 0xe1, 0xc7, 0x47, 0xf9, 0xa9, 0xfb, + 0x3f, 0xc8, 0x0b, 0xcd, 0x69, 0x92, 0x46, 0x17, 0x7e, 0x12, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xf9, + 0x54, 0x78, 0xff, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2039,26 +2059,9 @@ func valueToGoStringOne(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedSubby(r randyOne, easy bool) *Subby { this := &Subby{} - this.Sub = randStringOne(r) + this.Sub = string(randStringOne(r)) if !easy && r.Intn(10) != 0 { } return this @@ -2197,7 +2200,7 @@ func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 } func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { this := &SampleOneOf_Field14{} - this.Field14 = randStringOne(r) + this.Field14 = string(randStringOne(r)) return this } func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { @@ -2241,7 +2244,7 @@ func randStringOne(r randyOne) string { } return string(tmps) } -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { +func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2249,43 +2252,43 @@ func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOne(data, r, fieldNumber, wire) + dAtA = randFieldOne(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte { +func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) v3 := r.Int63() if r.Intn(2) == 0 { v3 *= -1 } - data = encodeVarintPopulateOne(data, uint64(v3)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) case 1: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOne(data, uint64(key)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOne(data, uint64(ll)) + dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOne(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOne(data []byte, v uint64) []byte { +func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Subby) Size() (n int) { var l int @@ -2611,8 +2614,8 @@ func valueToStringOne(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Subby) Unmarshal(data []byte) error { - l := len(data) +func (m *Subby) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2624,7 +2627,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2652,7 +2655,7 @@ func (m *Subby) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2667,11 +2670,11 @@ func (m *Subby) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sub = string(data[iNdEx:postIndex]) + m.Sub = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2690,8 +2693,8 @@ func (m *Subby) Unmarshal(data []byte) error { } return nil } -func (m *SampleOneOf) Unmarshal(data []byte) error { - l := len(data) +func (m *SampleOneOf) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2703,7 +2706,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2727,7 +2730,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field1{v} case 2: @@ -2738,7 +2741,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field2{v} case 3: @@ -2753,7 +2756,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2773,7 +2776,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2793,7 +2796,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -2813,7 +2816,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2833,7 +2836,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2854,7 +2857,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2871,7 +2874,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field9{v} case 10: @@ -2882,7 +2885,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.TestOneof = &SampleOneOf_Field10{v} case 11: @@ -2893,7 +2896,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field11{v} case 12: @@ -2904,7 +2907,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.TestOneof = &SampleOneOf_Field12{v} case 13: @@ -2919,7 +2922,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2940,7 +2943,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2955,7 +2958,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TestOneof = &SampleOneOf_Field14{string(data[iNdEx:postIndex])} + m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex case 15: if wireType != 2 { @@ -2969,7 +2972,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2984,7 +2987,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := make([]byte, postIndex-iNdEx) - copy(v, data[iNdEx:postIndex]) + copy(v, dAtA[iNdEx:postIndex]) m.TestOneof = &SampleOneOf_Field15{v} iNdEx = postIndex case 16: @@ -2999,7 +3002,7 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3014,14 +3017,14 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } v := &Subby{} - if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } m.TestOneof = &SampleOneOf_SubMessage{v} iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipOneUnsafe(data[iNdEx:]) + skippy, err := skipOneUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -3040,8 +3043,8 @@ func (m *SampleOneOf) Unmarshal(data []byte) error { } return nil } -func skipOneUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipOneUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3052,7 +3055,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3070,7 +3073,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3087,7 +3090,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3110,7 +3113,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3121,7 +3124,7 @@ func skipOneUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipOneUnsafe(data[start:]) + next, err := skipOneUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -3145,31 +3148,34 @@ var ( ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) } + var fileDescriptorOne = []byte{ - // 387 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0xbd, 0x6e, 0xdb, 0x30, - 0x10, 0x07, 0xf0, 0x28, 0x8a, 0xa5, 0x84, 0x72, 0x1a, 0x57, 0xd3, 0x35, 0x83, 0x50, 0x78, 0xea, - 0x12, 0x2b, 0xd6, 0x47, 0x3e, 0xd6, 0xa0, 0x28, 0xba, 0x14, 0x01, 0x92, 0x07, 0x08, 0xa4, 0x96, - 0x52, 0x02, 0x58, 0x62, 0x60, 0x49, 0x43, 0xb7, 0x3c, 0x4e, 0xc7, 0x8e, 0x7d, 0x04, 0x8f, 0x1d, - 0x3b, 0x74, 0xb0, 0xdd, 0xa5, 0xa3, 0x47, 0x8f, 0xf9, 0x9b, 0x02, 0x8e, 0xc3, 0x1f, 0x77, 0x87, - 0xdf, 0x69, 0xa0, 0x48, 0x31, 0xfe, 0xaa, 0xaa, 0x5c, 0x35, 0x61, 0x57, 0x37, 0x59, 0x21, 0xbb, - 0xba, 0xca, 0xe6, 0xcd, 0x63, 0x36, 0x93, 0xf3, 0x50, 0xd5, 0x72, 0xf2, 0x3c, 0x57, 0xad, 0xf2, - 0x6d, 0xb4, 0xa7, 0x67, 0xe5, 0x53, 0xfb, 0xd8, 0xe5, 0x13, 0xec, 0x87, 0xa5, 0x2a, 0x55, 0xa8, - 0x2d, 0xef, 0x0a, 0x3d, 0xe9, 0x41, 0x77, 0xfd, 0x37, 0xe3, 0x77, 0x62, 0x70, 0xdf, 0xe5, 0xf9, - 0x77, 0x7f, 0x24, 0xec, 0xa6, 0xcb, 0xc9, 0x7a, 0x6f, 0x7d, 0x38, 0xba, 0xdb, 0xb5, 0xe3, 0xbf, - 0xb6, 0xf0, 0xee, 0xb3, 0xea, 0x79, 0x26, 0x6f, 0x6b, 0x79, 0x5b, 0xf8, 0x24, 0x9c, 0x4f, 0x4f, - 0x72, 0xf6, 0x6d, 0xaa, 0x97, 0xac, 0xcf, 0x7b, 0x77, 0x4e, 0xa1, 0x67, 0x96, 0x88, 0xf6, 0x21, - 0xfb, 0x2c, 0x11, 0x4b, 0x4c, 0x36, 0x64, 0xc0, 0x12, 0xb3, 0x24, 0x74, 0x00, 0xb1, 0x59, 0x12, - 0x96, 0x94, 0x06, 0x90, 0x63, 0x96, 0x94, 0xe5, 0x82, 0x1c, 0xc8, 0x01, 0xcb, 0x05, 0xcb, 0x25, - 0xb9, 0x90, 0xb7, 0x2c, 0x97, 0x2c, 0x57, 0x74, 0x08, 0xf1, 0x59, 0xae, 0x58, 0xae, 0xe9, 0x08, - 0xe2, 0xb2, 0x5c, 0xfb, 0xa7, 0xc2, 0xed, 0x4f, 0x7a, 0x4e, 0x02, 0x74, 0x02, 0x72, 0xfb, 0xa3, - 0x9e, 0x1b, 0x9b, 0x92, 0x07, 0x73, 0x8c, 0x4d, 0x8d, 0x45, 0x34, 0x84, 0x8d, 0x8c, 0x45, 0xc6, - 0x62, 0x3a, 0x86, 0x1d, 0x1a, 0x8b, 0x8d, 0x25, 0xf4, 0x66, 0xf7, 0xff, 0x8d, 0x25, 0xc6, 0x52, - 0x3a, 0x81, 0x0d, 0x8d, 0xa5, 0xfe, 0x99, 0xf0, 0x70, 0x51, 0x0f, 0x95, 0x6c, 0x9a, 0xac, 0x94, - 0x34, 0x82, 0x7b, 0x91, 0x98, 0xec, 0x5e, 0x84, 0xbe, 0x54, 0xec, 0x0a, 0x2c, 0x7c, 0xe9, 0xfd, - 0x66, 0x28, 0x44, 0x2b, 0x9b, 0xf6, 0x01, 0xae, 0x8a, 0x9b, 0x8f, 0x8b, 0x55, 0xb0, 0xf7, 0x1b, - 0xf9, 0x83, 0x2c, 0x57, 0x81, 0xb5, 0x41, 0xb6, 0xc8, 0xcb, 0x3a, 0xb0, 0x7e, 0x20, 0x3f, 0x91, - 0x5f, 0xc8, 0x62, 0x8d, 0x3d, 0x64, 0x89, 0xfe, 0x3f, 0xea, 0x06, 0x75, 0x8b, 0xfa, 0xf2, 0x2f, - 0xb0, 0x72, 0x47, 0x3f, 0xa3, 0xf8, 0x35, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xa6, 0x0e, 0x56, 0xa0, - 0x02, 0x00, 0x00, + // 413 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0x3f, 0x4f, 0x1b, 0x31, + 0x18, 0x06, 0x70, 0xbf, 0x1c, 0x49, 0xc0, 0x09, 0x25, 0xbd, 0xe9, 0x2d, 0xc3, 0x2b, 0x2b, 0x93, + 0x17, 0x92, 0xe6, 0x2e, 0xe1, 0xcf, 0x8a, 0xaa, 0x2a, 0x4b, 0x85, 0x14, 0x3e, 0x00, 0x3a, 0x53, + 0x27, 0x20, 0xe5, 0xce, 0x28, 0xbe, 0x1b, 0xba, 0xf1, 0x71, 0x3a, 0x76, 0xec, 0x47, 0x60, 0x64, + 0xec, 0xd0, 0x81, 0x73, 0x97, 0x8e, 0x8c, 0x8c, 0x55, 0x2e, 0xc5, 0xde, 0xde, 0xc7, 0x3f, 0x7b, + 0xb0, 0xfd, 0xf0, 0xc1, 0x8d, 0xc9, 0x95, 0xb1, 0xa3, 0xaa, 0xb0, 0xd9, 0x42, 0x57, 0x45, 0x9e, + 0xad, 0xed, 0x6d, 0xb6, 0xd2, 0xeb, 0x91, 0x29, 0xf4, 0xf0, 0x7e, 0x6d, 0x4a, 0x13, 0x47, 0xa6, + 0xd0, 0x47, 0xc7, 0xcb, 0xbb, 0xf2, 0xb6, 0x52, 0xc3, 0x1b, 0x93, 0x8f, 0x96, 0x66, 0x69, 0x46, + 0x8d, 0xa9, 0x6a, 0xd1, 0xa4, 0x26, 0x34, 0xd3, 0xf6, 0xcc, 0xe0, 0x03, 0x6f, 0x5d, 0x55, 0x4a, + 0x7d, 0x8b, 0xfb, 0x3c, 0xb2, 0x95, 0x42, 0x10, 0x20, 0xf7, 0xe7, 0x9b, 0x71, 0xf0, 0x3b, 0xe2, + 0xdd, 0xab, 0x2c, 0xbf, 0x5f, 0xe9, 0xcb, 0x42, 0x5f, 0x2e, 0x62, 0xe4, 0xed, 0xcf, 0x77, 0x7a, + 0xf5, 0x75, 0xdc, 0x6c, 0x82, 0x19, 0x9b, 0xff, 0xcf, 0x5e, 0x12, 0xdc, 0x11, 0x20, 0x77, 0xbc, + 0x24, 0x5e, 0x52, 0x8c, 0x04, 0xc8, 0x96, 0x97, 0xd4, 0xcb, 0x04, 0x77, 0x05, 0xc8, 0xc8, 0xcb, + 0xc4, 0xcb, 0x14, 0x5b, 0x02, 0xe4, 0x81, 0x97, 0xa9, 0x97, 0x13, 0x6c, 0x0b, 0x90, 0xbb, 0x5e, + 0x4e, 0xbc, 0x9c, 0x62, 0x47, 0x80, 0x7c, 0xef, 0xe5, 0xd4, 0xcb, 0x19, 0xee, 0x09, 0x90, 0xb1, + 0x97, 0x33, 0x2f, 0xe7, 0xb8, 0x2f, 0x40, 0x76, 0xbc, 0x9c, 0xc7, 0x47, 0xbc, 0xb3, 0xbd, 0xd9, + 0x47, 0xe4, 0x02, 0xe4, 0xe1, 0x8c, 0xcd, 0xdf, 0x16, 0x82, 0x8d, 0xb1, 0x2b, 0x40, 0xb6, 0x83, + 0x8d, 0x83, 0x25, 0xd8, 0x13, 0x20, 0xfb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x08, 0x90, 0x7b, 0xc1, + 0xd2, 0x60, 0x13, 0x7c, 0xb7, 0x79, 0xff, 0x60, 0x93, 0x60, 0x53, 0x3c, 0x14, 0x20, 0x7b, 0xc1, + 0xa6, 0xf1, 0x31, 0xef, 0xda, 0x4a, 0x5d, 0xe7, 0xda, 0xda, 0x6c, 0xa9, 0xb1, 0x2f, 0x40, 0x76, + 0x13, 0x3e, 0xdc, 0x34, 0xa2, 0xf9, 0xd4, 0x19, 0x9b, 0x73, 0x5b, 0xa9, 0x2f, 0x5b, 0xbf, 0xe8, + 0x71, 0x5e, 0x6a, 0x5b, 0x5e, 0x9b, 0x42, 0x9b, 0xc5, 0xc5, 0xa7, 0xc7, 0x9a, 0xd8, 0x53, 0x4d, + 0xec, 0x57, 0x4d, 0xec, 0xb9, 0x26, 0x78, 0xa9, 0x09, 0x5e, 0x6b, 0x82, 0x07, 0x47, 0xf0, 0xdd, + 0x11, 0xfc, 0x70, 0x04, 0x3f, 0x1d, 0xc1, 0xa3, 0x23, 0xf6, 0xe4, 0x88, 0x3d, 0x3b, 0x82, 0xbf, + 0x8e, 0xd8, 0x8b, 0x23, 0x78, 0x75, 0xc4, 0x1e, 0xfe, 0x10, 0xa8, 0x76, 0x53, 0xa3, 0xf4, 0x5f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x1a, 0xd7, 0x6a, 0xc3, 0xa0, 0x02, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto index d9b60c9a..a9e71137 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go index e9203419..eb664495 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go @@ -17,6 +17,7 @@ package one import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -31,21 +32,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestSubbyProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -65,21 +70,25 @@ func TestSubbyProto(t *testing.T) { } func TestSampleOneOfProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -144,9 +153,9 @@ func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -161,9 +170,9 @@ func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -178,9 +187,9 @@ func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -195,9 +204,9 @@ func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -212,14 +221,18 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -227,14 +240,18 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -272,13 +289,13 @@ func TestSubbySize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -294,13 +311,13 @@ func TestSampleOneOfSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/one.proto index c3cdff7e..2eca9a07 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/one.proto +++ b/vendor/github.com/gogo/protobuf/test/oneof3/one.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/Makefile b/vendor/github.com/gogo/protobuf/test/oneofembed/Makefile index e1c88147..c68629fa 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/Makefile +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/Makefile @@ -1,7 +1,7 @@ -# Go support for Protocol Buffers - Google's data interchange format +# Protocol Buffers for Go with Gadgets # -# Copyright 2015 The Go Authors. All rights reserved. -# https://github.com/golang/protobuf +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -13,9 +13,6 @@ # 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 diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go index 9e60eeb2..6592cfdd 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go @@ -26,7 +26,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto1.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto1.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Foo struct { *Bar `protobuf:"bytes,1,opt,name=bar,embedded=bar" json:"bar,omitempty"` @@ -348,7 +350,7 @@ func randStringOneofembed(r randyOneofembed) string { } return string(tmps) } -func randUnrecognizedOneofembed(r randyOneofembed, maxFieldNumber int) (data []byte) { +func randUnrecognizedOneofembed(r randyOneofembed, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -356,56 +358,58 @@ func randUnrecognizedOneofembed(r randyOneofembed, maxFieldNumber int) (data []b wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldOneofembed(data, r, fieldNumber, wire) + dAtA = randFieldOneofembed(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldOneofembed(data []byte, r randyOneofembed, fieldNumber int, wire int) []byte { +func randFieldOneofembed(dAtA []byte, r randyOneofembed, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateOneofembed(data, uint64(key)) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(key)) v2 := r.Int63() if r.Intn(2) == 0 { v2 *= -1 } - data = encodeVarintPopulateOneofembed(data, uint64(v2)) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(v2)) case 1: - data = encodeVarintPopulateOneofembed(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateOneofembed(data, uint64(key)) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateOneofembed(data, uint64(ll)) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateOneofembed(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateOneofembed(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateOneofembed(data []byte, v uint64) []byte { +func encodeVarintPopulateOneofembed(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } +func init() { proto1.RegisterFile("oneofembed.proto", fileDescriptorOneofembed) } + var fileDescriptorOneofembed = []byte{ - // 167 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0xc8, 0xcf, 0x4b, 0xcd, + // 171 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xc8, 0xcf, 0x4b, 0xcd, 0x4f, 0x4b, 0xcd, 0x4d, 0x4a, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x53, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xe1, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xba, 0x94, 0x34, 0xb9, 0x98, 0xdd, 0xf2, 0xf3, 0x85, 0x94, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18, 0x35, 0xb8, 0x8d, 0xb8, 0x20, 0x72, 0x7a, 0x4e, 0x89, 0x45, 0x4e, 0x2c, 0x17, 0xee, 0xc9, 0x33, - 0x06, 0x81, 0x24, 0x95, 0x74, 0xb9, 0x98, 0x81, 0x22, 0x42, 0x7c, 0x5c, 0x8c, 0x89, 0x12, 0xdc, - 0x40, 0x85, 0x1c, 0x1e, 0x0c, 0x41, 0x8c, 0x89, 0x20, 0x7e, 0x92, 0x04, 0x0f, 0x8c, 0x9f, 0xe4, - 0xc4, 0xc6, 0xc5, 0x52, 0x90, 0x99, 0x9c, 0xed, 0xc4, 0xf3, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, - 0x72, 0x8c, 0x3b, 0x80, 0x38, 0x89, 0x0d, 0x6c, 0xa4, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x56, - 0x58, 0x05, 0x27, 0xb8, 0x00, 0x00, 0x00, + 0x06, 0x81, 0x24, 0x95, 0x74, 0xb9, 0x98, 0x9d, 0x12, 0x8b, 0x84, 0xf8, 0xb8, 0x18, 0x13, 0x25, + 0xb8, 0x15, 0x18, 0x35, 0x38, 0x3c, 0x18, 0x82, 0x18, 0x13, 0x41, 0xfc, 0x24, 0x09, 0x1e, 0x18, + 0x3f, 0xc9, 0x89, 0x8d, 0x8b, 0xa5, 0x20, 0x33, 0x39, 0xdb, 0x89, 0xe7, 0xc7, 0x43, 0x39, 0xc6, + 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x1b, 0x69, 0x0c, 0x08, 0x00, + 0x00, 0xff, 0xff, 0x56, 0x58, 0x05, 0x27, 0xb8, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto index cf8e5ed0..8c1ee383 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto3"; package proto; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -15,4 +43,4 @@ message Bar { bool a = 11; bool b = 12; } -} \ No newline at end of file +} diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go index 25ca293c..974c657e 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go @@ -33,18 +33,18 @@ func TestFooProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -64,18 +64,18 @@ func TestBarProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBar(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Bar{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -131,9 +131,9 @@ func TestFooProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -145,9 +145,9 @@ func TestFooProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -159,9 +159,9 @@ func TestBarProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBar(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Bar{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -173,9 +173,9 @@ func TestBarProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBar(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Bar{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/packed/Makefile b/vendor/github.com/gogo/protobuf/test/packed/Makefile index 63c75abf..9d195810 100644 --- a/vendor/github.com/gogo/protobuf/test/packed/Makefile +++ b/vendor/github.com/gogo/protobuf/test/packed/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go index f53803ae..f909f5ea 100644 --- a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go +++ b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go @@ -32,22 +32,24 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -148,19 +150,19 @@ func (m *NinRepNative) GetField13() []bool { } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -261,19 +263,19 @@ func (m *NinRepPackedNative) GetField13() []bool { } type NinRepNativeUnsafe struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -374,19 +376,19 @@ func (m *NinRepNativeUnsafe) GetField13() []bool { } type NinRepPackedNativeUnsafe struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1010,7 +1012,7 @@ func randStringPacked(r randyPacked) string { } return string(tmps) } -func randUnrecognizedPacked(r randyPacked, maxFieldNumber int) (data []byte) { +func randUnrecognizedPacked(r randyPacked, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1018,46 +1020,46 @@ func randUnrecognizedPacked(r randyPacked, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldPacked(data, r, fieldNumber, wire) + dAtA = randFieldPacked(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldPacked(data []byte, r randyPacked, fieldNumber int, wire int) []byte { +func randFieldPacked(dAtA []byte, r randyPacked, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulatePacked(data, uint64(key)) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(key)) v54 := r.Int63() if r.Intn(2) == 0 { v54 *= -1 } - data = encodeVarintPopulatePacked(data, uint64(v54)) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(v54)) case 1: - data = encodeVarintPopulatePacked(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulatePacked(data, uint64(key)) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulatePacked(data, uint64(ll)) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulatePacked(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulatePacked(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulatePacked(data []byte, v uint64) []byte { +func encodeVarintPopulatePacked(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } -func (m *NinRepNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1069,7 +1071,7 @@ func (m *NinRepNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1086,298 +1088,23 @@ func (m *NinRepNative) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - default: - iNdEx = preIndex - skippy, err := skipPacked(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthPacked - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepPackedNative) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 2 { + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1386,7 +1113,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1406,38 +1133,34 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field1 = append(m.Field1, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1446,7 +1169,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1466,30 +1189,35 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field2 = append(m.Field2, v2) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1498,7 +1226,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1521,7 +1249,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1530,8 +1258,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPacked @@ -1539,19 +1271,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1560,7 +1288,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1583,7 +1311,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1592,8 +1320,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPacked @@ -1601,19 +1333,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1622,7 +1350,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1645,7 +1373,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -1654,8 +1382,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPacked @@ -1663,19 +1395,15 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1684,7 +1412,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1707,7 +1435,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1716,8 +1444,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPacked @@ -1725,19 +1457,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1746,7 +1475,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1769,7 +1498,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1779,8 +1508,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPacked @@ -1788,20 +1521,16 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1810,7 +1539,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1833,7 +1562,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1843,29 +1572,22 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1874,7 +1596,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1894,28 +1616,28 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1924,7 +1646,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1944,28 +1666,32 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -1974,7 +1700,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1994,36 +1720,36 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2032,7 +1758,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2052,36 +1778,38 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2090,7 +1818,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2113,7 +1841,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2122,29 +1850,12 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPacked - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipPacked(data[iNdEx:]) + skippy, err := skipPacked(dAtA[iNdEx:]) if err != nil { return err } @@ -2154,7 +1865,7 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2164,351 +1875,1662 @@ func (m *NinRepPackedNative) Unmarshal(data []byte) error { } return nil } -func skipPacked(data []byte) (n int, err error) { - l := len(data) +func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { + preIndex := iNdEx var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowPacked + return ErrIntOverflowPacked } if iNdEx >= l { - return 0, io.ErrUnexpectedEOF + return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } + fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPacked + if wireType == 4 { + return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - iNdEx++ - if data[iNdEx-1] < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPacked + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthPacked } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthPacked - } - return iNdEx, nil case 3: - for { - var innerWire uint64 - var start int = iNdEx + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowPacked + return ErrIntOverflowPacked } if iNdEx >= l { - return 0, io.ErrUnexpectedEOF + return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - next, err := skipPacked(data[start:]) - if err != nil { - return 0, err + if packedLen < 0 { + return ErrInvalidLengthPacked } - iNdEx = start + next + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - return iNdEx, nil case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthPacked = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowPacked = fmt.Errorf("proto: integer overflow") -) - -func (m *NinRepNativeUnsafe) Unmarshal(data []byte) error { - l := len(data) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NinRepNativeUnsafe: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNativeUnsafe: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) + } + case 9: + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Field9 = append(m.Field9, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) + } + case 10: + if wireType == 5 { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 + m.Field10 = append(m.Field10, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) + } + case 11: + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Field11 = append(m.Field11, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) + } + case 12: + if wireType == 1 { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 + m.Field12 = append(m.Field12, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) + } + case 13: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPacked + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPacked + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipPacked(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthPacked + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipPacked(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPacked + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPacked + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPacked + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthPacked + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPacked + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipPacked(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthPacked = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPacked = fmt.Errorf("proto: integer overflow") +) + +func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NinRepNativeUnsafe: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NinRepNativeUnsafe: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) + } + case 2: + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) + } + case 3: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field4 = append(m.Field4, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field5 = append(m.Field5, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field6 = append(m.Field6, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field3 = append(m.Field3, v) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } - m.Field4 = append(m.Field4, v) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe - } - if iNdEx >= l { + case 9: + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - m.Field5 = append(m.Field5, v) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } - m.Field6 = append(m.Field6, v) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe - } - if iNdEx >= l { + case 10: + if wireType == 5 { + var v int32 + if iNdEx+4 > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe } - if iNdEx >= l { + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - case 10: - if wireType != 5 { + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) case 11: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) case 12: - if wireType != 1 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPackedUnsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } - m.Field13 = append(m.Field13, bool(v != 0)) default: iNdEx = preIndex - skippy, err := skipPackedUnsafe(data[iNdEx:]) + skippy, err := skipPackedUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -2518,7 +3540,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2528,8 +3550,8 @@ func (m *NinRepNativeUnsafe) Unmarshal(data []byte) error { } return nil } -func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { - l := len(data) +func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2541,7 +3563,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2558,7 +3580,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } switch fieldNum { case 1: - if wireType == 2 { + if wireType == 1 { + var v float64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field1 = append(m.Field1, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2567,7 +3597,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2586,23 +3616,23 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) + v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field1 = append(m.Field1, v) } - } else if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: - if wireType == 2 { + if wireType == 5 { + var v float32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field2 = append(m.Field2, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2611,7 +3641,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2630,23 +3660,32 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) + v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field2 = append(m.Field2, v) } - } else if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } case 3: - if wireType == 2 { + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field3 = append(m.Field3, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2655,7 +3694,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2678,7 +3717,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2687,8 +3726,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } m.Field3 = append(m.Field3, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) + } + case 4: + if wireType == 0 { + var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPackedUnsafe @@ -2696,19 +3739,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field3 = append(m.Field3, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 2 { + m.Field4 = append(m.Field4, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2717,7 +3756,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2740,7 +3779,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2749,8 +3788,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } m.Field4 = append(m.Field4, v) } - } else if wireType == 0 { - var v int64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) + } + case 5: + if wireType == 0 { + var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPackedUnsafe @@ -2758,19 +3801,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int64(b) & 0x7F) << shift + v |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field4 = append(m.Field4, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 2 { + m.Field5 = append(m.Field5, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2779,7 +3818,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2802,7 +3841,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -2811,8 +3850,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } m.Field5 = append(m.Field5, v) } - } else if wireType == 0 { - var v uint32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) + } + case 6: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPackedUnsafe @@ -2820,19 +3863,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field5 = append(m.Field5, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 2 { + m.Field6 = append(m.Field6, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2841,7 +3880,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2864,7 +3903,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2873,8 +3912,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } m.Field6 = append(m.Field6, v) } - } else if wireType == 0 { - var v uint64 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) + } + case 7: + if wireType == 0 { + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPackedUnsafe @@ -2882,19 +3925,16 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (uint64(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - m.Field6 = append(m.Field6, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 2 { + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + m.Field7 = append(m.Field7, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2903,7 +3943,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2926,7 +3966,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -2936,8 +3976,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) m.Field7 = append(m.Field7, v) } - } else if wireType == 0 { - var v int32 + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) + } + case 8: + if wireType == 0 { + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPackedUnsafe @@ -2945,20 +3989,16 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + v |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 2 { + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + m.Field8 = append(m.Field8, int64(v)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -2967,7 +4007,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2990,7 +4030,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3000,29 +4040,19 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) m.Field8 = append(m.Field8, int64(v)) } - } else if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) } case 9: - if wireType == 2 { + if wireType == 5 { + var v uint32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field9 = append(m.Field9, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -3031,7 +4061,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3050,23 +4080,23 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field9 = append(m.Field9, v) } - } else if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) } case 10: - if wireType == 2 { + if wireType == 5 { + var v int32 + if iNdEx+4 > l { + return io.ErrUnexpectedEOF + } + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 4 + m.Field10 = append(m.Field10, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -3075,7 +4105,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3094,23 +4124,23 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) + v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 m.Field10 = append(m.Field10, v) } - } else if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) } case 11: - if wireType == 2 { + if wireType == 1 { + var v uint64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field11 = append(m.Field11, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -3119,7 +4149,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3138,23 +4168,23 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) + v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field11 = append(m.Field11, v) } - } else if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) } case 12: - if wireType == 2 { + if wireType == 1 { + var v int64 + if iNdEx+8 > l { + return io.ErrUnexpectedEOF + } + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + iNdEx += 8 + m.Field12 = append(m.Field12, v) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -3163,7 +4193,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3182,23 +4212,32 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) + v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 m.Field12 = append(m.Field12, v) } - } else if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&data[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) } case 13: - if wireType == 2 { + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPackedUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Field13 = append(m.Field13, bool(v != 0)) + } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { @@ -3207,7 +4246,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ packedLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3230,7 +4269,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3239,29 +4278,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } m.Field13 = append(m.Field13, bool(v != 0)) } - } else if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPackedUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) } else { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) } default: iNdEx = preIndex - skippy, err := skipPackedUnsafe(data[iNdEx:]) + skippy, err := skipPackedUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -3271,7 +4293,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3281,8 +4303,8 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(data []byte) error { } return nil } -func skipPackedUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipPackedUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3293,7 +4315,7 @@ func skipPackedUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3311,7 +4333,7 @@ func skipPackedUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3328,7 +4350,7 @@ func skipPackedUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3351,7 +4373,7 @@ func skipPackedUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3362,7 +4384,7 @@ func skipPackedUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipPackedUnsafe(data[start:]) + next, err := skipPackedUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -3386,30 +4408,33 @@ var ( ErrIntOverflowPackedUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("packed.proto", fileDescriptorPacked) } + var fileDescriptorPacked = []byte{ - // 383 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x92, 0xbd, 0x4e, 0xc2, 0x50, - 0x14, 0xc7, 0xd3, 0x0f, 0x5a, 0xbc, 0x42, 0xc4, 0x0e, 0xe6, 0x84, 0x10, 0x35, 0x4c, 0x2e, 0x02, - 0x6d, 0xf9, 0x74, 0x64, 0x70, 0x24, 0x86, 0xc4, 0x07, 0xe0, 0xa3, 0x60, 0xa3, 0x52, 0xa2, 0xc5, - 0xc7, 0x30, 0x0e, 0xbe, 0x80, 0x6f, 0xe2, 0x43, 0x38, 0xb9, 0xf9, 0x16, 0x8e, 0x1e, 0x6e, 0x4f, - 0x4f, 0x2f, 0x38, 0x3a, 0xb8, 0xb0, 0x71, 0x7f, 0xbf, 0x30, 0xf4, 0xf7, 0x3f, 0xa2, 0xb0, 0x1c, - 0x4d, 0x6e, 0x83, 0x69, 0x6d, 0xf9, 0x10, 0xc5, 0x91, 0x63, 0x25, 0xaf, 0xf2, 0xf9, 0x3c, 0x8c, - 0x6f, 0x56, 0xe3, 0xda, 0x24, 0xba, 0xaf, 0xcf, 0xa3, 0x79, 0x54, 0x97, 0x7a, 0xbc, 0x9a, 0xc9, - 0x97, 0x7c, 0xc8, 0x5f, 0xc9, 0xdf, 0xaa, 0x1f, 0xba, 0x28, 0x0c, 0xc2, 0xc5, 0x30, 0x58, 0x0e, - 0x46, 0x71, 0xf8, 0x14, 0x38, 0x47, 0xc2, 0xba, 0x0c, 0x83, 0xbb, 0xa9, 0x0b, 0xda, 0xa9, 0x71, - 0xa6, 0x0d, 0xad, 0x99, 0x7c, 0x31, 0xf7, 0x40, 0x47, 0xae, 0x13, 0xf7, 0x98, 0xfb, 0x60, 0x20, - 0xcf, 0x11, 0xf7, 0x99, 0x37, 0xc1, 0x44, 0x6e, 0x10, 0x6f, 0x32, 0x6f, 0x41, 0x0e, 0x79, 0x91, - 0x78, 0x8b, 0x79, 0x1b, 0x2c, 0xe4, 0x26, 0xf1, 0x36, 0xf3, 0x0e, 0xd8, 0xc8, 0x0f, 0x89, 0x77, - 0x98, 0x77, 0x21, 0x8f, 0xdc, 0x21, 0xde, 0x65, 0xde, 0x83, 0x3d, 0xe4, 0x36, 0xf1, 0x9e, 0x03, - 0xc2, 0x4e, 0xbe, 0xab, 0x01, 0x02, 0xc5, 0xc1, 0xd0, 0x4e, 0x3e, 0xac, 0x91, 0x19, 0x17, 0xf6, - 0xd1, 0x58, 0xa9, 0x71, 0x33, 0xe3, 0x41, 0x01, 0x4d, 0x29, 0x35, 0x5e, 0x66, 0x7c, 0x28, 0xa2, - 0xc9, 0xa7, 0xc6, 0xbf, 0x30, 0x5f, 0xde, 0x4e, 0xb4, 0xea, 0xb3, 0x21, 0x9c, 0x24, 0xeb, 0x95, - 0x9c, 0x85, 0xe2, 0x96, 0x37, 0xe3, 0xf6, 0xf5, 0x52, 0x16, 0xb8, 0xbc, 0x19, 0x58, 0x71, 0x1e, - 0x3b, 0x8a, 0xac, 0x38, 0x9f, 0x1d, 0x85, 0x56, 0x5c, 0x93, 0x1d, 0xc5, 0x56, 0x5c, 0x8b, 0x1d, - 0x05, 0x57, 0x5c, 0x9b, 0x1d, 0x45, 0x57, 0x5c, 0x87, 0x1d, 0x85, 0x57, 0x5c, 0x97, 0x1d, 0xc5, - 0x57, 0x5c, 0xcf, 0xa9, 0x6c, 0x0d, 0x20, 0x25, 0x8f, 0x50, 0xd9, 0x1a, 0x41, 0xb5, 0x6e, 0x66, - 0x69, 0x08, 0xd5, 0x7a, 0x99, 0xa5, 0x31, 0x54, 0x9b, 0x0e, 0xf2, 0xa9, 0xa7, 0x83, 0x24, 0x53, - 0x5c, 0x2f, 0x1e, 0x47, 0xb3, 0xdd, 0xb5, 0xff, 0xf9, 0xda, 0xdf, 0xd7, 0x71, 0x5f, 0x0d, 0x01, - 0xbf, 0xaf, 0x9d, 0x12, 0xef, 0x6e, 0xfe, 0x1f, 0x6e, 0x7e, 0x3d, 0x4b, 0xdf, 0xfc, 0xfe, 0x3a, - 0xd6, 0x7e, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x4d, 0xb0, 0xaa, 0x27, 0x06, 0x00, 0x00, + // 388 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x92, 0xbf, 0x4e, 0xfa, 0x50, + 0x14, 0xc7, 0xd3, 0x9e, 0x52, 0xf8, 0xdd, 0x1f, 0x44, 0xec, 0x60, 0x4e, 0x08, 0xd1, 0x1b, 0xa6, + 0xbb, 0x08, 0xb6, 0xe5, 0xaf, 0x23, 0x83, 0x23, 0x31, 0x24, 0x3e, 0x00, 0x7f, 0x0a, 0x36, 0x2a, + 0x25, 0x0a, 0x3e, 0x86, 0x71, 0xf0, 0x05, 0x7c, 0x13, 0x1f, 0xc2, 0xc9, 0xcd, 0xb7, 0x70, 0x34, + 0xb4, 0xa7, 0xa7, 0x17, 0x1c, 0x1d, 0x5c, 0xd8, 0xb8, 0x9f, 0x4f, 0x18, 0xfa, 0xf9, 0x1e, 0x51, + 0x5c, 0x8e, 0x26, 0x37, 0xc1, 0xb4, 0xbe, 0xbc, 0x8f, 0x56, 0x91, 0x63, 0x27, 0xaf, 0xca, 0xe9, + 0x3c, 0x5c, 0x5d, 0xaf, 0xc7, 0xf5, 0x49, 0x74, 0xd7, 0x98, 0x47, 0xf3, 0xa8, 0x11, 0xeb, 0xf1, + 0x7a, 0x16, 0xbf, 0xe2, 0x47, 0xfc, 0x2b, 0xf9, 0x5b, 0xed, 0xdd, 0x14, 0xc5, 0x41, 0xb8, 0x18, + 0x06, 0xcb, 0xc1, 0x68, 0x15, 0x3e, 0x06, 0xce, 0x91, 0xb0, 0x2f, 0xc2, 0xe0, 0x76, 0xea, 0xa2, + 0x21, 0x41, 0x19, 0x43, 0x7a, 0x31, 0xf7, 0xd0, 0x94, 0xa0, 0x4c, 0xe2, 0x1e, 0x73, 0x1f, 0x41, + 0x82, 0xca, 0x11, 0xf7, 0x99, 0x37, 0xd1, 0x92, 0xa0, 0x80, 0x78, 0x93, 0x79, 0x0b, 0x73, 0x12, + 0x54, 0x89, 0x78, 0x8b, 0x79, 0x1b, 0x6d, 0x09, 0xca, 0x22, 0xde, 0x66, 0xde, 0xc1, 0xbc, 0x04, + 0x75, 0x48, 0xbc, 0xc3, 0xbc, 0x8b, 0x05, 0x09, 0xca, 0x21, 0xde, 0x65, 0xde, 0xc3, 0x7f, 0x12, + 0x54, 0x9e, 0x78, 0xcf, 0x41, 0x91, 0x4f, 0xbe, 0xe4, 0x0c, 0x85, 0x04, 0x75, 0x30, 0x4c, 0x9f, + 0x99, 0x71, 0xf1, 0xbf, 0x04, 0x65, 0xa7, 0xc6, 0xcd, 0x8c, 0x87, 0x45, 0x09, 0xaa, 0x9c, 0x1a, + 0x2f, 0x33, 0x3e, 0x96, 0x24, 0xa8, 0x42, 0x6a, 0xfc, 0x73, 0xeb, 0xf9, 0xf5, 0xc4, 0xa8, 0x3d, + 0x81, 0x70, 0x92, 0xac, 0x97, 0xf1, 0x2c, 0x14, 0xb7, 0xb2, 0x1d, 0xb7, 0x6f, 0x96, 0xb3, 0xc0, + 0x95, 0xed, 0xc0, 0x9a, 0xf3, 0xd8, 0x51, 0x64, 0xcd, 0xf9, 0xec, 0x28, 0xb4, 0xe6, 0x9a, 0xec, + 0x28, 0xb6, 0xe6, 0x5a, 0xec, 0x28, 0xb8, 0xe6, 0xda, 0xec, 0x28, 0xba, 0xe6, 0x3a, 0xec, 0x28, + 0xbc, 0xe6, 0xba, 0xec, 0x28, 0xbe, 0xe6, 0x7a, 0x4e, 0x75, 0x67, 0x80, 0x58, 0xf2, 0x08, 0xd5, + 0x9d, 0x11, 0x74, 0xeb, 0x66, 0x96, 0x86, 0xd0, 0xad, 0x97, 0x59, 0x1a, 0x43, 0xb7, 0xe9, 0x20, + 0x1f, 0x66, 0x3a, 0x48, 0x32, 0xc5, 0xd5, 0xe2, 0x61, 0x34, 0xdb, 0x5f, 0xfb, 0xaf, 0xaf, 0xfd, + 0x6d, 0x13, 0xf7, 0x05, 0x04, 0xfe, 0xbc, 0x76, 0x4a, 0xbc, 0xbf, 0xf9, 0x3f, 0xb8, 0xf9, 0xcd, + 0x2c, 0x7d, 0xeb, 0xeb, 0xf3, 0xd8, 0xf8, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x13, 0x20, 0xf1, 0x6c, + 0x27, 0x06, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/packed/packed.proto b/vendor/github.com/gogo/protobuf/test/packed/packed.proto index 29f0e6c8..f37df6e3 100644 --- a/vendor/github.com/gogo/protobuf/test/packed/packed.proto +++ b/vendor/github.com/gogo/protobuf/test/packed/packed.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/packed/packed_test.go b/vendor/github.com/gogo/protobuf/test/packed/packed_test.go index dcad5ad9..ea66292c 100644 --- a/vendor/github.com/gogo/protobuf/test/packed/packed_test.go +++ b/vendor/github.com/gogo/protobuf/test/packed/packed_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -33,6 +35,7 @@ import ( math_rand "math/rand" "testing" "time" + "unsafe" ) /* @@ -45,12 +48,12 @@ func TestSafeIssue21(t *testing.T) { msg1 := NewPopulatedNinRepNative(popr, true) data1, err := proto.Marshal(msg1) if err != nil { - panic(err) + t.Fatal(err) } packedmsg := &NinRepPackedNative{} err = proto.Unmarshal(data1, packedmsg) if err != nil { - panic(err) + t.Fatal(err) } if len(packedmsg.XXX_unrecognized) != 0 { t.Fatalf("packed msg unmarshaled unrecognized fields, even though there aren't any") @@ -61,16 +64,20 @@ func TestSafeIssue21(t *testing.T) { } func TestUnsafeIssue21(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) msg1 := NewPopulatedNinRepNativeUnsafe(popr, true) data1, err := proto.Marshal(msg1) if err != nil { - panic(err) + t.Fatal(err) } packedmsg := &NinRepPackedNativeUnsafe{} err = proto.Unmarshal(data1, packedmsg) if err != nil { - panic(err) + t.Fatal(err) } if len(packedmsg.XXX_unrecognized) != 0 { t.Fatalf("packed msg unmarshaled unrecognized fields, even though there aren't any") diff --git a/vendor/github.com/gogo/protobuf/test/proto3extension/Makefile b/vendor/github.com/gogo/protobuf/test/proto3extension/Makefile new file mode 100644 index 00000000..4477b52d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/proto3extension/Makefile @@ -0,0 +1,32 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + go install github.com/gogo/protobuf/protoc-min-version + protoc-min-version --version="3.0.0" --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../../:../../protobuf/:. *.proto \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go new file mode 100644 index 00000000..a149e4c3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go @@ -0,0 +1,67 @@ +// Code generated by protoc-gen-gogo. +// source: proto3ext.proto +// DO NOT EDIT! + +/* +Package proto3extension is a generated protocol buffer package. + +It is generated from these files: + proto3ext.proto + +It has these top-level messages: +*/ +package proto3extension + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +var E_Primary = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 51234, + Name: "proto3extension.primary", + Tag: "varint,51234,opt,name=primary", + Filename: "proto3ext.proto", +} + +var E_Index = &proto.ExtensionDesc{ + ExtendedType: (*google_protobuf.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 51235, + Name: "proto3extension.index", + Tag: "varint,51235,opt,name=index", + Filename: "proto3ext.proto", +} + +func init() { + proto.RegisterExtension(E_Primary) + proto.RegisterExtension(E_Index) +} + +func init() { proto.RegisterFile("proto3ext.proto", fileDescriptorProto3Ext) } + +var fileDescriptorProto3Ext = []byte{ + // 137 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f, + 0xc9, 0x37, 0x4e, 0xad, 0x28, 0xd1, 0x03, 0xb3, 0x84, 0x10, 0x02, 0xa9, 0x79, 0xc5, 0x99, 0xf9, + 0x79, 0x52, 0x0a, 0xe9, 0xf9, 0xf9, 0xe9, 0x39, 0xa9, 0xfa, 0x60, 0xf1, 0xa4, 0xd2, 0x34, 0xfd, + 0x94, 0xd4, 0xe2, 0xe4, 0xa2, 0xcc, 0x82, 0x92, 0xfc, 0x22, 0x88, 0x16, 0x2b, 0x4b, 0x2e, 0xf6, + 0x82, 0xa2, 0xcc, 0xdc, 0xc4, 0xa2, 0x4a, 0x21, 0x59, 0x3d, 0x88, 0x6a, 0x3d, 0x98, 0x6a, 0x3d, + 0xb7, 0xcc, 0xd4, 0x9c, 0x14, 0xff, 0x82, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0x89, 0x45, 0x13, 0x98, + 0x15, 0x18, 0x35, 0x38, 0x82, 0x60, 0xea, 0xad, 0x4c, 0xb9, 0x58, 0x33, 0xf3, 0x52, 0x52, 0x2b, + 0x08, 0x69, 0x5c, 0x0c, 0xd5, 0x08, 0x51, 0x9d, 0xc4, 0x06, 0x71, 0x24, 0x20, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xd4, 0x32, 0x01, 0xbe, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto new file mode 100644 index 00000000..8249f7a9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package proto3extension; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.FieldOptions { + bool primary = 51234; + bool index = 51235; +} + diff --git a/vendor/github.com/gogo/protobuf/test/protosize/Makefile b/vendor/github.com/gogo/protobuf/test/protosize/Makefile index a8411727..dea154ae 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/Makefile +++ b/vendor/github.com/gogo/protobuf/test/protosize/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go index b09e1791..ea113f41 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go @@ -29,13 +29,15 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type SizeMessage struct { Size *int64 `protobuf:"varint,1,opt,name=size" json:"size,omitempty"` ProtoSize_ *int64 `protobuf:"varint,2,opt,name=proto_size,json=protoSize" json:"proto_size,omitempty"` - Equal_ *bool `protobuf:"varint,3,opt,name=Equal,json=equal" json:"Equal,omitempty"` - String_ *string `protobuf:"bytes,4,opt,name=String,json=string" json:"String,omitempty"` + Equal_ *bool `protobuf:"varint,3,opt,name=Equal" json:"Equal,omitempty"` + String_ *string `protobuf:"bytes,4,opt,name=String" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -141,78 +143,78 @@ func (this *SizeMessage) Equal(that interface{}) bool { } return true } -func (m *SizeMessage) Marshal() (data []byte, err error) { +func (m *SizeMessage) Marshal() (dAtA []byte, err error) { size := m.ProtoSize() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SizeMessage) MarshalTo(data []byte) (int, error) { +func (m *SizeMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Size != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintProtosize(data, i, uint64(*m.Size)) + i = encodeVarintProtosize(dAtA, i, uint64(*m.Size)) } if m.ProtoSize_ != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintProtosize(data, i, uint64(*m.ProtoSize_)) + i = encodeVarintProtosize(dAtA, i, uint64(*m.ProtoSize_)) } if m.Equal_ != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ if *m.Equal_ { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.String_ != nil { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintProtosize(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) + i = encodeVarintProtosize(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Protosize(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Protosize(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Protosize(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Protosize(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintProtosize(data []byte, offset int, v uint64) int { +func encodeVarintProtosize(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSizeMessage(r randyProtosize, easy bool) *SizeMessage { @@ -236,7 +238,7 @@ func NewPopulatedSizeMessage(r randyProtosize, easy bool) *SizeMessage { this.Equal_ = &v3 } if r.Intn(10) != 0 { - v4 := randStringProtosize(r) + v4 := string(randStringProtosize(r)) this.String_ = &v4 } if !easy && r.Intn(10) != 0 { @@ -271,7 +273,7 @@ func randStringProtosize(r randyProtosize) string { } return string(tmps) } -func randUnrecognizedProtosize(r randyProtosize, maxFieldNumber int) (data []byte) { +func randUnrecognizedProtosize(r randyProtosize, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -279,43 +281,43 @@ func randUnrecognizedProtosize(r randyProtosize, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldProtosize(data, r, fieldNumber, wire) + dAtA = randFieldProtosize(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldProtosize(data []byte, r randyProtosize, fieldNumber int, wire int) []byte { +func randFieldProtosize(dAtA []byte, r randyProtosize, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateProtosize(data, uint64(key)) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(key)) v6 := r.Int63() if r.Intn(2) == 0 { v6 *= -1 } - data = encodeVarintPopulateProtosize(data, uint64(v6)) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(v6)) case 1: - data = encodeVarintPopulateProtosize(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateProtosize(data, uint64(key)) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateProtosize(data, uint64(ll)) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateProtosize(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateProtosize(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateProtosize(data []byte, v uint64) []byte { +func encodeVarintPopulateProtosize(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *SizeMessage) ProtoSize() (n int) { var l int @@ -352,8 +354,8 @@ func sovProtosize(x uint64) (n int) { func sozProtosize(x uint64) (n int) { return sovProtosize(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *SizeMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *SizeMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -365,7 +367,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -393,7 +395,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -413,7 +415,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -433,7 +435,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -454,7 +456,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -469,12 +471,12 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProtosize(data[iNdEx:]) + skippy, err := skipProtosize(dAtA[iNdEx:]) if err != nil { return err } @@ -484,7 +486,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -494,8 +496,8 @@ func (m *SizeMessage) Unmarshal(data []byte) error { } return nil } -func skipProtosize(data []byte) (n int, err error) { - l := len(data) +func skipProtosize(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -506,7 +508,7 @@ func skipProtosize(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -524,7 +526,7 @@ func skipProtosize(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -541,7 +543,7 @@ func skipProtosize(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -564,7 +566,7 @@ func skipProtosize(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -575,7 +577,7 @@ func skipProtosize(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProtosize(data[start:]) + next, err := skipProtosize(dAtA[start:]) if err != nil { return 0, err } @@ -599,18 +601,20 @@ var ( ErrIntOverflowProtosize = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("protosize.proto", fileDescriptorProtosize) } + var fileDescriptorProtosize = []byte{ - // 177 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f, + // 182 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x2f, 0xce, 0xac, 0x4a, 0xd5, 0x03, 0xb3, 0x84, 0x38, 0xe1, 0x02, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xa9, - 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0x3a, 0x95, 0xf2, 0xb8, 0xb8, 0x83, 0x81, - 0xda, 0x7c, 0x53, 0x8b, 0x8b, 0x13, 0xd3, 0x53, 0x85, 0x84, 0xb8, 0x58, 0x40, 0xa6, 0x48, 0x30, - 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x81, 0xd9, 0x42, 0xb2, 0x5c, 0x5c, 0x60, 0xb5, 0xf1, 0x60, 0x19, - 0x26, 0xb0, 0x0c, 0xc4, 0x42, 0x90, 0x4e, 0x21, 0x11, 0x2e, 0x56, 0xd7, 0xc2, 0xd2, 0xc4, 0x1c, - 0x09, 0x66, 0xa0, 0x0c, 0x47, 0x10, 0x6b, 0x2a, 0x88, 0x23, 0x24, 0xc6, 0xc5, 0x16, 0x5c, 0x52, - 0x94, 0x99, 0x97, 0x2e, 0xc1, 0x02, 0x14, 0xe6, 0x0c, 0x62, 0x2b, 0x06, 0xf3, 0x9c, 0x24, 0x7e, - 0x3c, 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0x71, 0x07, 0x10, 0x9f, 0x00, 0xe2, 0x0b, 0x40, 0xbc, - 0xe0, 0xb1, 0x1c, 0x23, 0x20, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x5d, 0x65, 0x12, 0xd5, 0x00, 0x00, - 0x00, + 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0x3a, 0x95, 0xf2, 0xb8, 0xb8, 0x83, 0x33, + 0xab, 0x52, 0x7d, 0x53, 0x8b, 0x8b, 0x13, 0xd3, 0x53, 0x85, 0x84, 0xb8, 0x58, 0x40, 0xa6, 0x48, + 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x81, 0xd9, 0x42, 0xb2, 0x5c, 0x5c, 0x60, 0xb5, 0xf1, 0x60, + 0x19, 0x26, 0xb0, 0x0c, 0xc4, 0x42, 0x90, 0x4e, 0x21, 0x11, 0x2e, 0x56, 0xd7, 0xc2, 0xd2, 0xc4, + 0x1c, 0x09, 0x66, 0x05, 0x46, 0x0d, 0x8e, 0x20, 0x08, 0x47, 0x48, 0x8c, 0x8b, 0x2d, 0xb8, 0xa4, + 0x28, 0x33, 0x2f, 0x5d, 0x82, 0x45, 0x81, 0x51, 0x83, 0x33, 0x08, 0xca, 0x73, 0x92, 0xf8, 0xf1, + 0x50, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x1d, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, + 0xf0, 0x48, 0x8e, 0x71, 0xc1, 0x63, 0x39, 0x46, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xf7, + 0x87, 0xb3, 0xd5, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosize.proto b/vendor/github.com/gogo/protobuf/test/protosize/protosize.proto index ad2c41d7..f2d10c1c 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosize.proto +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosize.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package protosize; diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosize_test.go b/vendor/github.com/gogo/protobuf/test/protosize/protosize_test.go index 8be32b9c..1a6d4676 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosize_test.go +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosize_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package protosize // We expect that Size field will have no suffix and ProtoSize will be present diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go b/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go index 175b8406..176f5a12 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go @@ -32,18 +32,18 @@ func TestSizeMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -64,20 +64,20 @@ func TestSizeMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) size := p.ProtoSize() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -106,9 +106,9 @@ func TestSizeMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -120,9 +120,9 @@ func TestSizeMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -135,13 +135,13 @@ func TestSizeMessageProtoSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.ProtoSize() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/registration/.gitignore b/vendor/github.com/gogo/protobuf/test/registration/.gitignore new file mode 100644 index 00000000..c6064dff --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/registration/.gitignore @@ -0,0 +1,2 @@ +*.pb.go +*_test.go diff --git a/vendor/github.com/gogo/protobuf/test/registration/Makefile b/vendor/github.com/gogo/protobuf/test/registration/Makefile new file mode 100644 index 00000000..03a096d8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/registration/Makefile @@ -0,0 +1,33 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2017, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +test: + go install github.com/gogo/protobuf/protoc-gen-gogo + (protoc --proto_path=../../../../../:../../protobuf/:. --gogo_out=. registration.proto) + cp registration_test.go.in registration_test.go + go test ./... diff --git a/vendor/github.com/gogo/protobuf/test/registration/registration.proto b/vendor/github.com/gogo/protobuf/test/registration/registration.proto new file mode 100644 index 00000000..d8543a18 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/registration/registration.proto @@ -0,0 +1,45 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package registration; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.goproto_registration) = true; + +enum AnEnum { + A_VALUE = 0; + ANOTHER_VALUE = 1; +} + +message AMessage { + string a_string = 1; + uint32 a_uint = 2; +} diff --git a/vendor/github.com/gogo/protobuf/test/registration/registration_test.go.in b/vendor/github.com/gogo/protobuf/test/registration/registration_test.go.in new file mode 100644 index 00000000..93c843c7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/registration/registration_test.go.in @@ -0,0 +1,85 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package registration + +import ( + "testing" + + gogoproto "github.com/gogo/protobuf/proto" + golangproto "github.com/golang/protobuf/proto" +) + +func TestEnumRegistered(t *testing.T) { + wantMap := map[string]int32{ + "A_VALUE": 0, + "ANOTHER_VALUE": 1, + } + gotMap := golangproto.EnumValueMap("registration.AnEnum") + for k, want := range wantMap { + got, ok := gotMap[k] + if !ok { + t.Errorf("Enum value %q was not registered with golang/protobuf", k) + } + if got != want { + t.Errorf("Enum value %q was different with golang/protobuf: want %v, got %v", k, want, got) + } + } + gotMap = gogoproto.EnumValueMap("registration.AnEnum") + for k, want := range wantMap { + got, ok := gotMap[k] + if !ok { + t.Errorf("Enum value %q was not registered with gogo/protobuf", k) + } + if got != want { + t.Errorf("Enum value %q was different with gogo/protobuf: want %v, got %v", k, want, got) + } + } +} + +func TestMessageRegistered(t *testing.T) { + got := golangproto.MessageType("registration.AMessage") + if got == nil { + t.Error(`Message "AMessage" was not registered with golang/protobuf`) + } + got = gogoproto.MessageType("registration.AMessage") + if got == nil { + t.Error(`Message "AMessage" was not registered with gogo/protobuf`) + } +} + +func TestFileRegistered(t *testing.T) { + got := golangproto.FileDescriptor("registration.proto") + if got == nil { + t.Error(`File "registration.proto" was not registered with golang/protobuf`) + } + got = gogoproto.FileDescriptor("registration.proto") + if got == nil { + t.Error(`File "registration.proto" was not registered with gogo/protobuf`) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/required/Makefile b/vendor/github.com/gogo/protobuf/test/required/Makefile index 37eaecf3..34e6f70c 100644 --- a/vendor/github.com/gogo/protobuf/test/required/Makefile +++ b/vendor/github.com/gogo/protobuf/test/required/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go index 40ac0da2..8acbc63e 100644 --- a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go +++ b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go @@ -32,7 +32,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type RequiredExample struct { TheRequiredString *string `protobuf:"bytes,1,req,name=theRequiredString" json:"theRequiredString,omitempty"` @@ -68,21 +70,21 @@ func (m *RequiredExample) GetTheRepeatedStrings() []string { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,req,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,req,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,req,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,req,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,req,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,req,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,req,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,req,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,req,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,req,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,req,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,req,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,req,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,req,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,req,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,req,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,req,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,req,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,req,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,req,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,req,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,req,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,req,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,req,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,req,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,req,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,req,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,req,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,req,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,req,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -197,21 +199,21 @@ func (m *NidOptNative) GetField15() []byte { } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,req,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,req,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,req,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,req,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,req,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,req,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,req,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,req,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,req,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,req,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,req,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,req,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,req,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,req,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,req,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,req,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,req,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,req,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,req,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,req,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,req,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,req,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,req,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,req,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,req,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,req,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,req,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,req,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,req,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,req,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -326,7 +328,7 @@ func (m *NinOptNative) GetField15() []byte { } type NestedNinOptNative struct { - NestedNinOpts []*NinOptNative `protobuf:"bytes,1,rep,name=NestedNinOpts,json=nestedNinOpts" json:"NestedNinOpts,omitempty"` + NestedNinOpts []*NinOptNative `protobuf:"bytes,1,rep,name=NestedNinOpts" json:"NestedNinOpts,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -350,17 +352,17 @@ func init() { proto.RegisterType((*NinOptNative)(nil), "required.NinOptNative") proto.RegisterType((*NestedNinOptNative)(nil), "required.NestedNinOptNative") } -func (m *RequiredExample) Marshal() (data []byte, err error) { +func (m *RequiredExample) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *RequiredExample) MarshalTo(data []byte) (int, error) { +func (m *RequiredExample) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -368,124 +370,124 @@ func (m *RequiredExample) MarshalTo(data []byte) (int, error) { if m.TheRequiredString == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("theRequiredString") } else { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintRequiredexample(data, i, uint64(len(*m.TheRequiredString))) - i += copy(data[i:], *m.TheRequiredString) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(*m.TheRequiredString))) + i += copy(dAtA[i:], *m.TheRequiredString) } if m.TheOptionalString != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintRequiredexample(data, i, uint64(len(*m.TheOptionalString))) - i += copy(data[i:], *m.TheOptionalString) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(*m.TheOptionalString))) + i += copy(dAtA[i:], *m.TheOptionalString) } if len(m.TheRepeatedStrings) > 0 { for _, s := range m.TheRepeatedStrings { - data[i] = 0x1a + dAtA[i] = 0x1a i++ l = len(s) for l >= 1<<7 { - data[i] = uint8(uint64(l)&0x7f | 0x80) + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) l >>= 7 i++ } - data[i] = uint8(l) + dAtA[i] = uint8(l) i++ - i += copy(data[i:], s) + i += copy(dAtA[i:], s) } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NidOptNative) Marshal() (data []byte, err error) { +func (m *NidOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NidOptNative) MarshalTo(data []byte) (int, error) { +func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Requiredexample(data, i, uint64(math.Float64bits(float64(m.Field1)))) - data[i] = 0x15 + i = encodeFixed64Requiredexample(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + dAtA[i] = 0x15 i++ - i = encodeFixed32Requiredexample(data, i, uint32(math.Float32bits(float32(m.Field2)))) - data[i] = 0x18 + i = encodeFixed32Requiredexample(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + dAtA[i] = 0x18 i++ - i = encodeVarintRequiredexample(data, i, uint64(m.Field3)) - data[i] = 0x20 + i = encodeVarintRequiredexample(dAtA, i, uint64(m.Field3)) + dAtA[i] = 0x20 i++ - i = encodeVarintRequiredexample(data, i, uint64(m.Field4)) - data[i] = 0x28 + i = encodeVarintRequiredexample(dAtA, i, uint64(m.Field4)) + dAtA[i] = 0x28 i++ - i = encodeVarintRequiredexample(data, i, uint64(m.Field5)) - data[i] = 0x30 + i = encodeVarintRequiredexample(dAtA, i, uint64(m.Field5)) + dAtA[i] = 0x30 i++ - i = encodeVarintRequiredexample(data, i, uint64(m.Field6)) - data[i] = 0x38 + i = encodeVarintRequiredexample(dAtA, i, uint64(m.Field6)) + dAtA[i] = 0x38 i++ - i = encodeVarintRequiredexample(data, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - data[i] = 0x40 + i = encodeVarintRequiredexample(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) + dAtA[i] = 0x40 i++ - i = encodeVarintRequiredexample(data, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - data[i] = 0x4d + i = encodeVarintRequiredexample(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) + dAtA[i] = 0x4d i++ - i = encodeFixed32Requiredexample(data, i, uint32(m.Field9)) - data[i] = 0x55 + i = encodeFixed32Requiredexample(dAtA, i, uint32(m.Field9)) + dAtA[i] = 0x55 i++ - i = encodeFixed32Requiredexample(data, i, uint32(m.Field10)) - data[i] = 0x59 + i = encodeFixed32Requiredexample(dAtA, i, uint32(m.Field10)) + dAtA[i] = 0x59 i++ - i = encodeFixed64Requiredexample(data, i, uint64(m.Field11)) - data[i] = 0x61 + i = encodeFixed64Requiredexample(dAtA, i, uint64(m.Field11)) + dAtA[i] = 0x61 i++ - i = encodeFixed64Requiredexample(data, i, uint64(m.Field12)) - data[i] = 0x68 + i = encodeFixed64Requiredexample(dAtA, i, uint64(m.Field12)) + dAtA[i] = 0x68 i++ if m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintRequiredexample(data, i, uint64(len(m.Field14))) - i += copy(data[i:], m.Field14) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(m.Field14))) + i += copy(dAtA[i:], m.Field14) if m.Field15 != nil { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintRequiredexample(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NinOptNative) Marshal() (data []byte, err error) { +func (m *NinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -493,142 +495,142 @@ func (m *NinOptNative) MarshalTo(data []byte) (int, error) { if m.Field1 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field1") } else { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Requiredexample(data, i, uint64(math.Float64bits(float64(*m.Field1)))) + i = encodeFixed64Requiredexample(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) } if m.Field2 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field2") } else { - data[i] = 0x15 + dAtA[i] = 0x15 i++ - i = encodeFixed32Requiredexample(data, i, uint32(math.Float32bits(float32(*m.Field2)))) + i = encodeFixed32Requiredexample(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) } if m.Field3 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field3") } else { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintRequiredexample(data, i, uint64(*m.Field3)) + i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field3)) } if m.Field4 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field4") } else { - data[i] = 0x20 + dAtA[i] = 0x20 i++ - i = encodeVarintRequiredexample(data, i, uint64(*m.Field4)) + i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field4)) } if m.Field5 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field5") } else { - data[i] = 0x28 + dAtA[i] = 0x28 i++ - i = encodeVarintRequiredexample(data, i, uint64(*m.Field5)) + i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field5)) } if m.Field6 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field6") } else { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintRequiredexample(data, i, uint64(*m.Field6)) + i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field6)) } if m.Field7 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field7") } else { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintRequiredexample(data, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) + i = encodeVarintRequiredexample(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field8") } else { - data[i] = 0x40 + dAtA[i] = 0x40 i++ - i = encodeVarintRequiredexample(data, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) + i = encodeVarintRequiredexample(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field9") } else { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Requiredexample(data, i, uint32(*m.Field9)) + i = encodeFixed32Requiredexample(dAtA, i, uint32(*m.Field9)) } if m.Field10 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field10") } else { - data[i] = 0x55 + dAtA[i] = 0x55 i++ - i = encodeFixed32Requiredexample(data, i, uint32(*m.Field10)) + i = encodeFixed32Requiredexample(dAtA, i, uint32(*m.Field10)) } if m.Field11 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field11") } else { - data[i] = 0x59 + dAtA[i] = 0x59 i++ - i = encodeFixed64Requiredexample(data, i, uint64(*m.Field11)) + i = encodeFixed64Requiredexample(dAtA, i, uint64(*m.Field11)) } if m.Field12 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field12") } else { - data[i] = 0x61 + dAtA[i] = 0x61 i++ - i = encodeFixed64Requiredexample(data, i, uint64(*m.Field12)) + i = encodeFixed64Requiredexample(dAtA, i, uint64(*m.Field12)) } if m.Field13 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field13") } else { - data[i] = 0x68 + dAtA[i] = 0x68 i++ if *m.Field13 { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Field14 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field14") } else { - data[i] = 0x72 + dAtA[i] = 0x72 i++ - i = encodeVarintRequiredexample(data, i, uint64(len(*m.Field14))) - i += copy(data[i:], *m.Field14) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(*m.Field14))) + i += copy(dAtA[i:], *m.Field14) } if m.Field15 == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field15") } else { - data[i] = 0x7a + dAtA[i] = 0x7a i++ - i = encodeVarintRequiredexample(data, i, uint64(len(m.Field15))) - i += copy(data[i:], m.Field15) + i = encodeVarintRequiredexample(dAtA, i, uint64(len(m.Field15))) + i += copy(dAtA[i:], m.Field15) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *NestedNinOptNative) Marshal() (data []byte, err error) { +func (m *NestedNinOptNative) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NestedNinOptNative) MarshalTo(data []byte) (int, error) { +func (m *NestedNinOptNative) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NestedNinOpts) > 0 { for _, msg := range m.NestedNinOpts { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintRequiredexample(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintRequiredexample(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -636,51 +638,51 @@ func (m *NestedNinOptNative) MarshalTo(data []byte) (int, error) { } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Requiredexample(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Requiredexample(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Requiredexample(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Requiredexample(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintRequiredexample(data []byte, offset int, v uint64) int { +func encodeVarintRequiredexample(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedRequiredExample(r randyRequiredexample, easy bool) *RequiredExample { this := &RequiredExample{} - v1 := randStringRequiredexample(r) + v1 := string(randStringRequiredexample(r)) this.TheRequiredString = &v1 if r.Intn(10) != 0 { - v2 := randStringRequiredexample(r) + v2 := string(randStringRequiredexample(r)) this.TheOptionalString = &v2 } if r.Intn(10) != 0 { v3 := r.Intn(10) this.TheRepeatedStrings = make([]string, v3) for i := 0; i < v3; i++ { - this.TheRepeatedStrings[i] = randStringRequiredexample(r) + this.TheRepeatedStrings[i] = string(randStringRequiredexample(r)) } } if !easy && r.Intn(10) != 0 { @@ -728,7 +730,7 @@ func NewPopulatedNidOptNative(r randyRequiredexample, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringRequiredexample(r) + this.Field14 = string(randStringRequiredexample(r)) v4 := r.Intn(100) this.Field15 = make([]byte, v4) for i := 0; i < v4; i++ { @@ -792,7 +794,7 @@ func NewPopulatedNinOptNative(r randyRequiredexample, easy bool) *NinOptNative { this.Field12 = &v16 v17 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v17 - v18 := randStringRequiredexample(r) + v18 := string(randStringRequiredexample(r)) this.Field14 = &v18 v19 := r.Intn(100) this.Field15 = make([]byte, v19) @@ -846,7 +848,7 @@ func randStringRequiredexample(r randyRequiredexample) string { } return string(tmps) } -func randUnrecognizedRequiredexample(r randyRequiredexample, maxFieldNumber int) (data []byte) { +func randUnrecognizedRequiredexample(r randyRequiredexample, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -854,43 +856,43 @@ func randUnrecognizedRequiredexample(r randyRequiredexample, maxFieldNumber int) wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldRequiredexample(data, r, fieldNumber, wire) + dAtA = randFieldRequiredexample(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldRequiredexample(data []byte, r randyRequiredexample, fieldNumber int, wire int) []byte { +func randFieldRequiredexample(dAtA []byte, r randyRequiredexample, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateRequiredexample(data, uint64(key)) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(key)) v22 := r.Int63() if r.Intn(2) == 0 { v22 *= -1 } - data = encodeVarintPopulateRequiredexample(data, uint64(v22)) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(v22)) case 1: - data = encodeVarintPopulateRequiredexample(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateRequiredexample(data, uint64(key)) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateRequiredexample(data, uint64(ll)) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateRequiredexample(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateRequiredexample(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateRequiredexample(data []byte, v uint64) []byte { +func encodeVarintPopulateRequiredexample(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *RequiredExample) Size() (n int) { var l int @@ -1027,9 +1029,9 @@ func sovRequiredexample(x uint64) (n int) { func sozRequiredexample(x uint64) (n int) { return sovRequiredexample(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *RequiredExample) Unmarshal(data []byte) error { +func (m *RequiredExample) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1041,7 +1043,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1069,7 +1071,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1084,7 +1086,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.TheRequiredString = &s iNdEx = postIndex hasFields[0] |= uint64(0x00000001) @@ -1100,7 +1102,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1115,7 +1117,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.TheOptionalString = &s iNdEx = postIndex case 3: @@ -1130,7 +1132,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1145,11 +1147,11 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TheRepeatedStrings = append(m.TheRepeatedStrings, string(data[iNdEx:postIndex])) + m.TheRepeatedStrings = append(m.TheRepeatedStrings, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipRequiredexample(data[iNdEx:]) + skippy, err := skipRequiredexample(dAtA[iNdEx:]) if err != nil { return err } @@ -1159,7 +1161,7 @@ func (m *RequiredExample) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1172,9 +1174,9 @@ func (m *RequiredExample) Unmarshal(data []byte) error { } return nil } -func (m *NidOptNative) Unmarshal(data []byte) error { +func (m *NidOptNative) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1186,7 +1188,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1211,14 +1213,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) hasFields[0] |= uint64(0x00000001) case 2: @@ -1230,10 +1232,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) hasFields[0] |= uint64(0x00000002) case 3: @@ -1248,7 +1250,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field3 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1268,7 +1270,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field4 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1288,7 +1290,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field5 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -1308,7 +1310,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Field6 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1328,7 +1330,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1350,7 +1352,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1369,10 +1371,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field9 = uint32(data[iNdEx-4]) - m.Field9 |= uint32(data[iNdEx-3]) << 8 - m.Field9 |= uint32(data[iNdEx-2]) << 16 - m.Field9 |= uint32(data[iNdEx-1]) << 24 + m.Field9 = uint32(dAtA[iNdEx-4]) + m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 + m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 + m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000100) case 10: if wireType != 5 { @@ -1383,10 +1385,10 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Field10 = int32(data[iNdEx-4]) - m.Field10 |= int32(data[iNdEx-3]) << 8 - m.Field10 |= int32(data[iNdEx-2]) << 16 - m.Field10 |= int32(data[iNdEx-1]) << 24 + m.Field10 = int32(dAtA[iNdEx-4]) + m.Field10 |= int32(dAtA[iNdEx-3]) << 8 + m.Field10 |= int32(dAtA[iNdEx-2]) << 16 + m.Field10 |= int32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000200) case 11: if wireType != 1 { @@ -1397,14 +1399,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field11 = uint64(data[iNdEx-8]) - m.Field11 |= uint64(data[iNdEx-7]) << 8 - m.Field11 |= uint64(data[iNdEx-6]) << 16 - m.Field11 |= uint64(data[iNdEx-5]) << 24 - m.Field11 |= uint64(data[iNdEx-4]) << 32 - m.Field11 |= uint64(data[iNdEx-3]) << 40 - m.Field11 |= uint64(data[iNdEx-2]) << 48 - m.Field11 |= uint64(data[iNdEx-1]) << 56 + m.Field11 = uint64(dAtA[iNdEx-8]) + m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 + m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 + m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 + m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 + m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 + m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 + m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 hasFields[0] |= uint64(0x00000400) case 12: if wireType != 1 { @@ -1415,14 +1417,14 @@ func (m *NidOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Field12 = int64(data[iNdEx-8]) - m.Field12 |= int64(data[iNdEx-7]) << 8 - m.Field12 |= int64(data[iNdEx-6]) << 16 - m.Field12 |= int64(data[iNdEx-5]) << 24 - m.Field12 |= int64(data[iNdEx-4]) << 32 - m.Field12 |= int64(data[iNdEx-3]) << 40 - m.Field12 |= int64(data[iNdEx-2]) << 48 - m.Field12 |= int64(data[iNdEx-1]) << 56 + m.Field12 = int64(dAtA[iNdEx-8]) + m.Field12 |= int64(dAtA[iNdEx-7]) << 8 + m.Field12 |= int64(dAtA[iNdEx-6]) << 16 + m.Field12 |= int64(dAtA[iNdEx-5]) << 24 + m.Field12 |= int64(dAtA[iNdEx-4]) << 32 + m.Field12 |= int64(dAtA[iNdEx-3]) << 40 + m.Field12 |= int64(dAtA[iNdEx-2]) << 48 + m.Field12 |= int64(dAtA[iNdEx-1]) << 56 hasFields[0] |= uint64(0x00000800) case 13: if wireType != 0 { @@ -1436,7 +1438,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1457,7 +1459,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1472,7 +1474,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field14 = string(data[iNdEx:postIndex]) + m.Field14 = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex hasFields[0] |= uint64(0x00002000) case 15: @@ -1487,7 +1489,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1501,7 +1503,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } @@ -1509,7 +1511,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00004000) default: iNdEx = preIndex - skippy, err := skipRequiredexample(data[iNdEx:]) + skippy, err := skipRequiredexample(dAtA[iNdEx:]) if err != nil { return err } @@ -1519,7 +1521,7 @@ func (m *NidOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1574,9 +1576,9 @@ func (m *NidOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NinOptNative) Unmarshal(data []byte) error { +func (m *NinOptNative) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1588,7 +1590,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1613,14 +1615,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 hasFields[0] |= uint64(0x00000001) @@ -1633,10 +1635,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 hasFields[0] |= uint64(0x00000002) @@ -1652,7 +1654,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1673,7 +1675,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1694,7 +1696,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -1715,7 +1717,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1736,7 +1738,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1758,7 +1760,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1778,10 +1780,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v hasFields[0] |= uint64(0x00000100) case 10: @@ -1793,10 +1795,10 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = int32(data[iNdEx-4]) - v |= int32(data[iNdEx-3]) << 8 - v |= int32(data[iNdEx-2]) << 16 - v |= int32(data[iNdEx-1]) << 24 + v = int32(dAtA[iNdEx-4]) + v |= int32(dAtA[iNdEx-3]) << 8 + v |= int32(dAtA[iNdEx-2]) << 16 + v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v hasFields[0] |= uint64(0x00000200) case 11: @@ -1808,14 +1810,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v hasFields[0] |= uint64(0x00000400) case 12: @@ -1827,14 +1829,14 @@ func (m *NinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = int64(data[iNdEx-8]) - v |= int64(data[iNdEx-7]) << 8 - v |= int64(data[iNdEx-6]) << 16 - v |= int64(data[iNdEx-5]) << 24 - v |= int64(data[iNdEx-4]) << 32 - v |= int64(data[iNdEx-3]) << 40 - v |= int64(data[iNdEx-2]) << 48 - v |= int64(data[iNdEx-1]) << 56 + v = int64(dAtA[iNdEx-8]) + v |= int64(dAtA[iNdEx-7]) << 8 + v |= int64(dAtA[iNdEx-6]) << 16 + v |= int64(dAtA[iNdEx-5]) << 24 + v |= int64(dAtA[iNdEx-4]) << 32 + v |= int64(dAtA[iNdEx-3]) << 40 + v |= int64(dAtA[iNdEx-2]) << 48 + v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v hasFields[0] |= uint64(0x00000800) case 13: @@ -1849,7 +1851,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1871,7 +1873,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1886,7 +1888,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field14 = &s iNdEx = postIndex hasFields[0] |= uint64(0x00002000) @@ -1902,7 +1904,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1916,7 +1918,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Field15 = append(m.Field15[:0], data[iNdEx:postIndex]...) + m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) if m.Field15 == nil { m.Field15 = []byte{} } @@ -1924,7 +1926,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00004000) default: iNdEx = preIndex - skippy, err := skipRequiredexample(data[iNdEx:]) + skippy, err := skipRequiredexample(dAtA[iNdEx:]) if err != nil { return err } @@ -1934,7 +1936,7 @@ func (m *NinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1989,8 +1991,8 @@ func (m *NinOptNative) Unmarshal(data []byte) error { } return nil } -func (m *NestedNinOptNative) Unmarshal(data []byte) error { - l := len(data) +func (m *NestedNinOptNative) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2002,7 +2004,7 @@ func (m *NestedNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2030,7 +2032,7 @@ func (m *NestedNinOptNative) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2045,13 +2047,13 @@ func (m *NestedNinOptNative) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.NestedNinOpts = append(m.NestedNinOpts, &NinOptNative{}) - if err := m.NestedNinOpts[len(m.NestedNinOpts)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.NestedNinOpts[len(m.NestedNinOpts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipRequiredexample(data[iNdEx:]) + skippy, err := skipRequiredexample(dAtA[iNdEx:]) if err != nil { return err } @@ -2061,7 +2063,7 @@ func (m *NestedNinOptNative) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -2071,8 +2073,8 @@ func (m *NestedNinOptNative) Unmarshal(data []byte) error { } return nil } -func skipRequiredexample(data []byte) (n int, err error) { - l := len(data) +func skipRequiredexample(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -2083,7 +2085,7 @@ func skipRequiredexample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2101,7 +2103,7 @@ func skipRequiredexample(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -2118,7 +2120,7 @@ func skipRequiredexample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2141,7 +2143,7 @@ func skipRequiredexample(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2152,7 +2154,7 @@ func skipRequiredexample(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipRequiredexample(data[start:]) + next, err := skipRequiredexample(dAtA[start:]) if err != nil { return 0, err } @@ -2176,36 +2178,38 @@ var ( ErrIntOverflowRequiredexample = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("requiredexample.proto", fileDescriptorRequiredexample) } + var fileDescriptorRequiredexample = []byte{ - // 467 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x6c, 0xd4, 0x4d, 0x6e, 0xd3, 0x40, - 0x14, 0xc0, 0x71, 0x6c, 0xa7, 0x49, 0x3a, 0x4d, 0x48, 0x3b, 0x12, 0xa3, 0x27, 0x84, 0x42, 0x94, - 0x55, 0x16, 0xe0, 0x36, 0x4e, 0xd2, 0x0f, 0x89, 0x55, 0x25, 0x58, 0x06, 0xc9, 0x9c, 0x20, 0x25, - 0x53, 0xd7, 0x52, 0x6a, 0x1b, 0xc7, 0x41, 0xac, 0xb9, 0x07, 0xf7, 0xe9, 0x92, 0x03, 0x20, 0x04, - 0x9c, 0x82, 0x25, 0x8f, 0xb1, 0xfd, 0x26, 0xcf, 0xb0, 0xb0, 0x14, 0xcf, 0xef, 0x79, 0x62, 0xf9, - 0x9f, 0x58, 0x3c, 0xc9, 0xf5, 0x87, 0x5d, 0x9c, 0xeb, 0xb5, 0xfe, 0xb4, 0xba, 0xcf, 0x36, 0xda, - 0xcf, 0xf2, 0xb4, 0x48, 0x65, 0xb7, 0x5e, 0x7e, 0xfa, 0x32, 0x8a, 0x8b, 0xbb, 0xdd, 0x8d, 0xff, - 0x3e, 0xbd, 0x3f, 0x8d, 0xd2, 0x28, 0x3d, 0x35, 0x03, 0x37, 0xbb, 0x5b, 0x73, 0x66, 0x4e, 0xcc, - 0xa7, 0xf2, 0xc2, 0xf1, 0x17, 0x47, 0x0c, 0xc2, 0xea, 0xda, 0xd7, 0xe5, 0x96, 0xf2, 0x85, 0x38, - 0x29, 0xee, 0x74, 0xbd, 0xfa, 0xae, 0xc8, 0xe3, 0x24, 0x02, 0x67, 0xe4, 0x4e, 0x0e, 0xc3, 0x7f, - 0xa1, 0x9a, 0x7e, 0x9b, 0x15, 0x71, 0x9a, 0xac, 0x36, 0xd5, 0xb4, 0x3b, 0x72, 0xaa, 0x69, 0x0e, - 0xd2, 0x17, 0xd2, 0x6c, 0x91, 0xe9, 0x55, 0x51, 0x6f, 0xb1, 0x05, 0x6f, 0xe4, 0xe1, 0xf8, 0x7f, - 0x64, 0xfc, 0xcd, 0x13, 0xbd, 0x65, 0xbc, 0xc6, 0x5d, 0x96, 0xab, 0x22, 0xfe, 0xa8, 0xe5, 0x33, - 0xd1, 0x7e, 0x13, 0xeb, 0xcd, 0x7a, 0x6a, 0xee, 0xc8, 0xb9, 0x6e, 0x3d, 0x7c, 0x7f, 0xfe, 0x28, - 0x6c, 0xdf, 0x9a, 0x35, 0xd2, 0x00, 0xef, 0xc0, 0x9d, 0xb8, 0x4c, 0x03, 0xd2, 0x19, 0x7e, 0xa1, - 0x3b, 0x39, 0x60, 0x3a, 0x23, 0x9d, 0x43, 0x0b, 0xd5, 0x63, 0x3a, 0x27, 0x5d, 0xc0, 0x01, 0x6a, - 0x9f, 0xe9, 0x82, 0xf4, 0x1c, 0xda, 0xa8, 0x2d, 0xa6, 0xe7, 0xa4, 0x17, 0xd0, 0x41, 0x3d, 0x61, - 0x7a, 0x41, 0x7a, 0x09, 0x5d, 0x54, 0xc9, 0xf4, 0x92, 0xf4, 0x0a, 0x0e, 0x51, 0x3b, 0x4c, 0xaf, - 0xe4, 0x50, 0x74, 0xca, 0xa7, 0x71, 0x06, 0x02, 0x79, 0x50, 0x71, 0xa7, 0x7c, 0x1c, 0x67, 0xd6, - 0xa7, 0x70, 0x84, 0xde, 0xe6, 0x3e, 0xb5, 0x1e, 0x40, 0x0f, 0xfd, 0x98, 0x7b, 0x60, 0x7d, 0x06, - 0x7d, 0xf4, 0x2e, 0xf7, 0x99, 0xf5, 0x39, 0x3c, 0xfe, 0xfb, 0x03, 0xe1, 0x3e, 0xb7, 0xbe, 0x80, - 0x01, 0x7a, 0x8f, 0xfb, 0x62, 0xfc, 0xd9, 0xe4, 0x4d, 0x6c, 0x5e, 0xc5, 0xf3, 0x52, 0x58, 0xc5, - 0xc3, 0x52, 0x52, 0xc5, 0x93, 0x52, 0x4c, 0xc5, 0x63, 0x52, 0x46, 0xc5, 0x33, 0x52, 0x40, 0xc5, - 0x03, 0x52, 0x3a, 0xc5, 0xd3, 0x51, 0x34, 0xc5, 0xa3, 0x51, 0x2e, 0xc5, 0x73, 0x51, 0x28, 0x68, - 0x84, 0xb2, 0x89, 0xa0, 0x91, 0xc8, 0xc6, 0x81, 0x46, 0x1c, 0x9b, 0x05, 0x1a, 0x59, 0x6c, 0x10, - 0x68, 0x04, 0xb1, 0x29, 0xa0, 0x91, 0xc2, 0x46, 0x08, 0x85, 0x5c, 0xea, 0x2d, 0xfe, 0xe9, 0x58, - 0x89, 0x57, 0xa2, 0xbf, 0xbf, 0xba, 0xc5, 0x20, 0xde, 0xe4, 0x28, 0x50, 0x7e, 0xfd, 0xaa, 0xf1, - 0xf7, 0xc7, 0xc3, 0x7e, 0xb2, 0x3f, 0x7c, 0x7d, 0xfc, 0xfb, 0xe7, 0xd0, 0x79, 0xf8, 0x35, 0x74, - 0xbe, 0xe2, 0xf1, 0x03, 0x8f, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, 0xd6, 0x6e, 0xf7, 0xba, - 0x04, 0x00, 0x00, + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xd4, 0xdd, 0x8e, 0xd2, 0x40, + 0x14, 0xc0, 0x71, 0x3b, 0x65, 0xf9, 0x98, 0x05, 0xd9, 0x6d, 0xe2, 0xe4, 0xc4, 0x98, 0x7a, 0xc2, + 0xd5, 0x5c, 0x68, 0x57, 0x0a, 0xec, 0x47, 0xe2, 0xd5, 0x26, 0x7a, 0xc9, 0x26, 0xf5, 0x09, 0x58, + 0x19, 0xd9, 0x26, 0x2c, 0xad, 0x30, 0x18, 0xaf, 0x7d, 0x0f, 0xdf, 0x67, 0x2f, 0x7d, 0x00, 0x63, + 0x94, 0xa7, 0xf0, 0xd2, 0x58, 0xda, 0x33, 0x9c, 0xea, 0x1d, 0x3d, 0xff, 0x33, 0x13, 0xc8, 0x8f, + 0x54, 0x3e, 0x59, 0x9b, 0x8f, 0xdb, 0x74, 0x6d, 0xe6, 0xe6, 0xf3, 0xec, 0x3e, 0x5f, 0x9a, 0x28, + 0x5f, 0x67, 0x36, 0x0b, 0xda, 0xd5, 0xf8, 0xe9, 0xcb, 0x45, 0x6a, 0xef, 0xb6, 0xb7, 0xd1, 0xfb, + 0xec, 0xfe, 0x6c, 0x91, 0x2d, 0xb2, 0xb3, 0x62, 0xe1, 0x76, 0xfb, 0xa1, 0x78, 0x2a, 0x1e, 0x8a, + 0x4f, 0xfb, 0x83, 0x83, 0xaf, 0x9e, 0xec, 0x27, 0xe5, 0xd9, 0x37, 0xfb, 0x2b, 0x83, 0x17, 0xf2, + 0xd4, 0xde, 0x99, 0x6a, 0xfa, 0xce, 0xae, 0xd3, 0xd5, 0x02, 0x3c, 0x14, 0xba, 0x93, 0xfc, 0x1b, + 0xca, 0xed, 0x9b, 0xdc, 0xa6, 0xd9, 0x6a, 0xb6, 0x2c, 0xb7, 0x05, 0x7a, 0xe5, 0x36, 0x0f, 0x41, + 0x24, 0x83, 0xe2, 0x8a, 0xdc, 0xcc, 0x6c, 0x75, 0xc5, 0x06, 0x7c, 0xf4, 0x75, 0x27, 0xf9, 0x4f, + 0x19, 0x7c, 0xf7, 0x65, 0x77, 0x9a, 0xce, 0x6f, 0x72, 0x3b, 0x9d, 0xd9, 0xf4, 0x93, 0x09, 0x9e, + 0xc9, 0xe6, 0xdb, 0xd4, 0x2c, 0xe7, 0xc3, 0xe2, 0x1b, 0x79, 0xd7, 0x8d, 0x87, 0x1f, 0xcf, 0x1f, + 0x25, 0xe5, 0x8c, 0x6a, 0x0c, 0x02, 0x85, 0x16, 0xac, 0xc6, 0x54, 0x47, 0xe0, 0xa3, 0xd0, 0x47, + 0xac, 0x8e, 0xa8, 0x8e, 0xa1, 0x81, 0x42, 0xfb, 0xac, 0x8e, 0xa9, 0x4e, 0xe0, 0x08, 0x85, 0xee, + 0xb1, 0x3a, 0xa1, 0x7a, 0x0e, 0x4d, 0x14, 0xba, 0xc1, 0xea, 0x39, 0xd5, 0x0b, 0x68, 0xa1, 0xd0, + 0xa7, 0xac, 0x5e, 0x50, 0xbd, 0x84, 0x36, 0x0a, 0x1d, 0xb0, 0x7a, 0x49, 0xf5, 0x0a, 0x3a, 0x28, + 0x74, 0x8b, 0xd5, 0xab, 0x20, 0x94, 0xad, 0xfd, 0x2f, 0x7f, 0x05, 0x12, 0x85, 0xee, 0x97, 0xb9, + 0x1a, 0xba, 0x3e, 0x84, 0x63, 0x14, 0xba, 0xc9, 0xfb, 0xd0, 0xf5, 0x18, 0xba, 0x28, 0xf4, 0x09, + 0xef, 0xb1, 0xeb, 0x23, 0xe8, 0xa1, 0xd0, 0x6d, 0xde, 0x47, 0xae, 0x8f, 0xe1, 0xf1, 0xdf, 0x3f, + 0x08, 0xef, 0x63, 0xd7, 0x27, 0xd0, 0x47, 0xa1, 0xbb, 0xbc, 0x4f, 0x06, 0x5f, 0x0a, 0xde, 0x95, + 0xe3, 0x55, 0x9c, 0x97, 0x60, 0x15, 0x87, 0x25, 0x52, 0xc5, 0x49, 0x09, 0x53, 0x71, 0x4c, 0x62, + 0x54, 0x9c, 0x91, 0x00, 0x15, 0x07, 0x24, 0x3a, 0xc5, 0xe9, 0x08, 0x4d, 0x71, 0x34, 0xe2, 0x52, + 0x9c, 0x8b, 0xa0, 0xa0, 0x06, 0xe5, 0x88, 0xa0, 0x46, 0xe4, 0x70, 0xa0, 0x86, 0xe3, 0x58, 0xa0, + 0xc6, 0xe2, 0x40, 0xa0, 0x06, 0xe2, 0x28, 0xa0, 0x46, 0xe1, 0x10, 0x12, 0x19, 0x4c, 0xcd, 0xc6, + 0x9a, 0x39, 0x93, 0x78, 0x2d, 0x7b, 0x87, 0xd3, 0x0d, 0x78, 0xe8, 0xeb, 0xe3, 0x58, 0x45, 0xd5, + 0xab, 0x26, 0x3a, 0x5c, 0x4f, 0xf8, 0xf2, 0xf5, 0xc9, 0xef, 0x5f, 0xa1, 0xf7, 0xb0, 0x0b, 0xbd, + 0x6f, 0xbb, 0xd0, 0xfb, 0xb9, 0x0b, 0xbd, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x03, 0x9e, 0xae, + 0x5f, 0xba, 0x04, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/required/requiredexample.proto b/vendor/github.com/gogo/protobuf/test/required/requiredexample.proto index a86feb41..33215936 100644 --- a/vendor/github.com/gogo/protobuf/test/required/requiredexample.proto +++ b/vendor/github.com/gogo/protobuf/test/required/requiredexample.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package required; diff --git a/vendor/github.com/gogo/protobuf/test/required/requiredexamplepb_test.go b/vendor/github.com/gogo/protobuf/test/required/requiredexamplepb_test.go index af5bd7c9..b9c26375 100644 --- a/vendor/github.com/gogo/protobuf/test/required/requiredexamplepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/required/requiredexamplepb_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package required import ( diff --git a/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto b/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto new file mode 100644 index 00000000..66345af8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict.proto @@ -0,0 +1,43 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; +package sizerconflict; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.sizer_all) = true; +option (gogoproto.protosizer_all) = true; + +message Value { + oneof type { + int64 type_one = 1; + uint64 type_two = 2; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict_test.go b/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict_test.go new file mode 100644 index 00000000..907b923f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/sizerconflict/sizerconflict_test.go @@ -0,0 +1,48 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package sizerconflict + +import ( + "os" + "os/exec" + "strings" + "testing" +) + +func TestSizerConflict(t *testing.T) { + cmd := exec.Command("protoc", "--gogo_out=.", "-I=../../../../../:../../protobuf/:./", "sizerconflict.proto") + data, err := cmd.CombinedOutput() + if err == nil && !strings.Contains(string(data), "Plugin failed with status code 1") { + t.Errorf("Expected error, got: %s", data) + if err = os.Remove("sizerconflict.pb.go"); err != nil { + t.Error(err) + } + } + t.Logf("received expected error = %v and output = %v", err, string(data)) +} diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/Makefile b/vendor/github.com/gogo/protobuf/test/sizeunderscore/Makefile index 4cc62baa..fca7b2af 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/Makefile +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go index fe3529aa..86110ab3 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go @@ -29,12 +29,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type SizeMessage struct { Size_ *int64 `protobuf:"varint,1,opt,name=size" json:"size,omitempty"` - Equal_ *bool `protobuf:"varint,2,opt,name=Equal,json=equal" json:"Equal,omitempty"` - String_ *string `protobuf:"bytes,3,opt,name=String,json=string" json:"String,omitempty"` + Equal_ *bool `protobuf:"varint,2,opt,name=Equal" json:"Equal,omitempty"` + String_ *string `protobuf:"bytes,3,opt,name=String" json:"String,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -124,73 +126,73 @@ func (this *SizeMessage) Equal(that interface{}) bool { } return true } -func (m *SizeMessage) Marshal() (data []byte, err error) { +func (m *SizeMessage) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *SizeMessage) MarshalTo(data []byte) (int, error) { +func (m *SizeMessage) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Size_ != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintSizeunderscore(data, i, uint64(*m.Size_)) + i = encodeVarintSizeunderscore(dAtA, i, uint64(*m.Size_)) } if m.Equal_ != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ if *m.Equal_ { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.String_ != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintSizeunderscore(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) + i = encodeVarintSizeunderscore(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Sizeunderscore(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Sizeunderscore(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Sizeunderscore(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Sizeunderscore(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintSizeunderscore(data []byte, offset int, v uint64) int { +func encodeVarintSizeunderscore(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedSizeMessage(r randySizeunderscore, easy bool) *SizeMessage { @@ -207,7 +209,7 @@ func NewPopulatedSizeMessage(r randySizeunderscore, easy bool) *SizeMessage { this.Equal_ = &v2 } if r.Intn(10) != 0 { - v3 := randStringSizeunderscore(r) + v3 := string(randStringSizeunderscore(r)) this.String_ = &v3 } if !easy && r.Intn(10) != 0 { @@ -242,7 +244,7 @@ func randStringSizeunderscore(r randySizeunderscore) string { } return string(tmps) } -func randUnrecognizedSizeunderscore(r randySizeunderscore, maxFieldNumber int) (data []byte) { +func randUnrecognizedSizeunderscore(r randySizeunderscore, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -250,43 +252,43 @@ func randUnrecognizedSizeunderscore(r randySizeunderscore, maxFieldNumber int) ( wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldSizeunderscore(data, r, fieldNumber, wire) + dAtA = randFieldSizeunderscore(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldSizeunderscore(data []byte, r randySizeunderscore, fieldNumber int, wire int) []byte { +func randFieldSizeunderscore(dAtA []byte, r randySizeunderscore, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateSizeunderscore(data, uint64(key)) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateSizeunderscore(data, uint64(v5)) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateSizeunderscore(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateSizeunderscore(data, uint64(key)) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateSizeunderscore(data, uint64(ll)) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateSizeunderscore(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateSizeunderscore(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateSizeunderscore(data []byte, v uint64) []byte { +func encodeVarintPopulateSizeunderscore(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *SizeMessage) Size() (n int) { var l int @@ -320,8 +322,8 @@ func sovSizeunderscore(x uint64) (n int) { func sozSizeunderscore(x uint64) (n int) { return sovSizeunderscore(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *SizeMessage) Unmarshal(data []byte) error { - l := len(data) +func (m *SizeMessage) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -333,7 +335,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -361,7 +363,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -381,7 +383,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -402,7 +404,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -417,12 +419,12 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.String_ = &s iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipSizeunderscore(data[iNdEx:]) + skippy, err := skipSizeunderscore(dAtA[iNdEx:]) if err != nil { return err } @@ -432,7 +434,7 @@ func (m *SizeMessage) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -442,8 +444,8 @@ func (m *SizeMessage) Unmarshal(data []byte) error { } return nil } -func skipSizeunderscore(data []byte) (n int, err error) { - l := len(data) +func skipSizeunderscore(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -454,7 +456,7 @@ func skipSizeunderscore(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -472,7 +474,7 @@ func skipSizeunderscore(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -489,7 +491,7 @@ func skipSizeunderscore(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -512,7 +514,7 @@ func skipSizeunderscore(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -523,7 +525,7 @@ func skipSizeunderscore(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipSizeunderscore(data[start:]) + next, err := skipSizeunderscore(dAtA[start:]) if err != nil { return 0, err } @@ -547,17 +549,19 @@ var ( ErrIntOverflowSizeunderscore = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("sizeunderscore.proto", fileDescriptorSizeunderscore) } + var fileDescriptorSizeunderscore = []byte{ - // 169 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x29, 0xce, 0xac, 0x4a, + // 174 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x29, 0xce, 0xac, 0x4a, 0x2d, 0xcd, 0x4b, 0x49, 0x2d, 0x2a, 0x4e, 0xce, 0x2f, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x43, 0x15, 0x95, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, - 0x0b, 0xa2, 0x5d, 0xc9, 0x9f, 0x8b, 0x3b, 0x18, 0x68, 0x80, 0x6f, 0x6a, 0x71, 0x71, 0x62, 0x7a, - 0xaa, 0x90, 0x10, 0x17, 0x0b, 0xc8, 0x3c, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xe6, 0x20, 0x30, 0x5b, - 0x48, 0x84, 0x8b, 0xd5, 0xb5, 0xb0, 0x34, 0x31, 0x47, 0x82, 0x09, 0x28, 0xc8, 0x11, 0xc4, 0x9a, - 0x0a, 0xe2, 0x08, 0x89, 0x71, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x03, 0x85, - 0x39, 0x83, 0xd8, 0x8a, 0xc1, 0x3c, 0x27, 0x89, 0x1f, 0x0f, 0xe5, 0x18, 0x57, 0x3c, 0x92, 0x63, - 0xdc, 0x01, 0xc4, 0x27, 0x80, 0xf8, 0x02, 0x10, 0x3f, 0x00, 0x62, 0x40, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x63, 0xb6, 0xaa, 0x05, 0xc0, 0x00, 0x00, 0x00, + 0x0b, 0xa2, 0x5d, 0xc9, 0x9f, 0x8b, 0x3b, 0x38, 0xb3, 0x2a, 0xd5, 0x37, 0xb5, 0xb8, 0x38, 0x31, + 0x3d, 0x55, 0x48, 0x88, 0x8b, 0x05, 0x64, 0x9e, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x98, + 0x2d, 0x24, 0xc2, 0xc5, 0xea, 0x5a, 0x58, 0x9a, 0x98, 0x23, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x11, + 0x04, 0xe1, 0x08, 0x89, 0x71, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2b, 0x30, + 0x6a, 0x70, 0x06, 0x41, 0x79, 0x4e, 0x12, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, 0xb8, + 0xe3, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, + 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x37, 0x1c, 0x48, 0xa4, 0xc0, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto index 75db22ff..922f5322 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.proto @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + syntax = "proto2"; package sizeunderscore; diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go index 06916fa1..22ae66fa 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go @@ -32,18 +32,18 @@ func TestSizeMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -64,20 +64,20 @@ func TestSizeMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if !p.Equal(msg) { t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) @@ -106,9 +106,9 @@ func TestSizeMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -120,9 +120,9 @@ func TestSizeMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -135,13 +135,13 @@ func TestSizeMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile b/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile new file mode 100644 index 00000000..c04ae11b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile @@ -0,0 +1,37 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-min-version + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=\ + Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types\ + :. \ + --proto_path=../../../../../:../../protobuf/:. stdtypes.proto + diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go new file mode 100644 index 00000000..90ccdb3d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go @@ -0,0 +1,1348 @@ +// Code generated by protoc-gen-gogo. +// source: stdtypes.proto +// DO NOT EDIT! + +/* +Package stdtypes is a generated protocol buffer package. + +It is generated from these files: + stdtypes.proto + +It has these top-level messages: + StdTypes + RepStdTypes + MapStdTypes + OneofStdTypes +*/ +package stdtypes + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import strings "strings" +import reflect "reflect" +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorStdtypes, []int{0} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorStdtypes, []int{1} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorStdtypes, []int{2} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorStdtypes, []int{3} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*StdTypes)(nil), "stdtypes.StdTypes") + proto.RegisterType((*RepStdTypes)(nil), "stdtypes.RepStdTypes") + proto.RegisterType((*MapStdTypes)(nil), "stdtypes.MapStdTypes") + proto.RegisterType((*OneofStdTypes)(nil), "stdtypes.OneofStdTypes") +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func (this *StdTypes) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&stdtypes.StdTypes{") + s = append(s, "NullableTimestamp: "+fmt.Sprintf("%#v", this.NullableTimestamp)+",\n") + s = append(s, "NullableDuration: "+fmt.Sprintf("%#v", this.NullableDuration)+",\n") + s = append(s, "Timestamp: "+fmt.Sprintf("%#v", this.Timestamp)+",\n") + s = append(s, "Duration: "+fmt.Sprintf("%#v", this.Duration)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *RepStdTypes) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&stdtypes.RepStdTypes{") + s = append(s, "NullableTimestamps: "+fmt.Sprintf("%#v", this.NullableTimestamps)+",\n") + s = append(s, "NullableDurations: "+fmt.Sprintf("%#v", this.NullableDurations)+",\n") + s = append(s, "Timestamps: "+fmt.Sprintf("%#v", this.Timestamps)+",\n") + s = append(s, "Durations: "+fmt.Sprintf("%#v", this.Durations)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *MapStdTypes) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 8) + s = append(s, "&stdtypes.MapStdTypes{") + keysForNullableTimestamp := make([]int32, 0, len(this.NullableTimestamp)) + for k := range this.NullableTimestamp { + keysForNullableTimestamp = append(keysForNullableTimestamp, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableTimestamp) + mapStringForNullableTimestamp := "map[int32]*time.Time{" + for _, k := range keysForNullableTimestamp { + mapStringForNullableTimestamp += fmt.Sprintf("%#v: %#v,", k, this.NullableTimestamp[k]) + } + mapStringForNullableTimestamp += "}" + if this.NullableTimestamp != nil { + s = append(s, "NullableTimestamp: "+mapStringForNullableTimestamp+",\n") + } + keysForTimestamp := make([]int32, 0, len(this.Timestamp)) + for k := range this.Timestamp { + keysForTimestamp = append(keysForTimestamp, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForTimestamp) + mapStringForTimestamp := "map[int32]time.Time{" + for _, k := range keysForTimestamp { + mapStringForTimestamp += fmt.Sprintf("%#v: %#v,", k, this.Timestamp[k]) + } + mapStringForTimestamp += "}" + if this.Timestamp != nil { + s = append(s, "Timestamp: "+mapStringForTimestamp+",\n") + } + keysForNullableDuration := make([]int32, 0, len(this.NullableDuration)) + for k := range this.NullableDuration { + keysForNullableDuration = append(keysForNullableDuration, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + mapStringForNullableDuration := "map[int32]*time.Duration{" + for _, k := range keysForNullableDuration { + mapStringForNullableDuration += fmt.Sprintf("%#v: %#v,", k, this.NullableDuration[k]) + } + mapStringForNullableDuration += "}" + if this.NullableDuration != nil { + s = append(s, "NullableDuration: "+mapStringForNullableDuration+",\n") + } + keysForDuration := make([]int32, 0, len(this.Duration)) + for k := range this.Duration { + keysForDuration = append(keysForDuration, k) + } + github_com_gogo_protobuf_sortkeys.Int32s(keysForDuration) + mapStringForDuration := "map[int32]time.Duration{" + for _, k := range keysForDuration { + mapStringForDuration += fmt.Sprintf("%#v: %#v,", k, this.Duration[k]) + } + mapStringForDuration += "}" + if this.Duration != nil { + s = append(s, "Duration: "+mapStringForDuration+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofStdTypes) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&stdtypes.OneofStdTypes{") + if this.OneOfStdTimes != nil { + s = append(s, "OneOfStdTimes: "+fmt.Sprintf("%#v", this.OneOfStdTimes)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofStdTypes_Timestamp) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&stdtypes.OneofStdTypes_Timestamp{` + + `Timestamp:` + fmt.Sprintf("%#v", this.Timestamp) + `}`}, ", ") + return s +} +func (this *OneofStdTypes_Duration) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&stdtypes.OneofStdTypes_Duration{` + + `Duration:` + fmt.Sprintf("%#v", this.Duration) + `}`}, ", ") + return s +} +func valueToGoStringStdtypes(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedStdTypes(r randyStdtypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v1 + v2 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyStdtypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v3 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v3) + for i := 0; i < v3; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v4 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v4) + for i := 0; i < v4; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.Timestamps = make([]time.Time, v5) + for i := 0; i < v5; i++ { + v6 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v6 + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Durations = make([]time.Duration, v7) + for i := 0; i < v7; i++ { + v8 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v8 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyStdtypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v9 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v9; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v10 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v10; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v11 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v11; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v12; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes(r randyStdtypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyStdtypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyStdtypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyStdtypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneStdtypes(r randyStdtypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringStdtypes(r randyStdtypes) string { + v13 := r.Intn(100) + tmps := make([]rune, v13) + for i := 0; i < v13; i++ { + tmps[i] = randUTF8RuneStdtypes(r) + } + return string(tmps) +} +func randUnrecognizedStdtypes(r randyStdtypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldStdtypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldStdtypes(dAtA []byte, r randyStdtypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(key)) + v14 := r.Int63() + if r.Intn(2) == 0 { + v14 *= -1 + } + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(v14)) + case 1: + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateStdtypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateStdtypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovStdtypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovStdtypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovStdtypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovStdtypes(uint64(l)) + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovStdtypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovStdtypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovStdtypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovStdtypes(uint64(l)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovStdtypes(uint64(l)) + } + mapEntrySize := 1 + sovStdtypes(uint64(k)) + l + n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovStdtypes(uint64(k)) + 1 + l + sovStdtypes(uint64(l)) + n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovStdtypes(uint64(l)) + } + mapEntrySize := 1 + sovStdtypes(uint64(k)) + l + n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovStdtypes(uint64(k)) + 1 + l + sovStdtypes(uint64(l)) + n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovStdtypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovStdtypes(uint64(l)) + } + return n +} + +func sovStdtypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozStdtypes(x uint64) (n int) { + return sovStdtypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +func init() { proto.RegisterFile("stdtypes.proto", fileDescriptorStdtypes) } + +var fileDescriptorStdtypes = []byte{ + // 540 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0x31, 0x6f, 0xd3, 0x40, + 0x1c, 0xc5, 0x7d, 0x4e, 0x82, 0xd2, 0x7f, 0xd4, 0x52, 0x4e, 0x02, 0x19, 0x0f, 0x97, 0x2a, 0x30, + 0x20, 0x51, 0x1c, 0x04, 0x0b, 0x42, 0x42, 0x80, 0x55, 0xa4, 0x22, 0x68, 0x8b, 0x42, 0x85, 0x58, + 0x40, 0x75, 0x88, 0x6b, 0x22, 0x9c, 0x5c, 0x14, 0x9f, 0x91, 0xb2, 0xf1, 0x11, 0x18, 0x59, 0xd9, + 0x18, 0xd8, 0x61, 0x64, 0xec, 0xc8, 0x8e, 0x04, 0x8d, 0xf9, 0x02, 0x8c, 0x1d, 0x91, 0xcf, 0x3e, + 0x9f, 0x13, 0x5f, 0xea, 0x2c, 0xdd, 0x7c, 0xf1, 0xff, 0xfd, 0xee, 0xe5, 0xf9, 0xdd, 0xc1, 0x5a, + 0xc0, 0x7a, 0x6c, 0x32, 0x72, 0x03, 0x6b, 0x34, 0xa6, 0x8c, 0xe2, 0xba, 0x58, 0x9b, 0x37, 0xbc, + 0x3e, 0x7b, 0x1b, 0x76, 0xad, 0x37, 0x74, 0xd0, 0xf6, 0xa8, 0x47, 0xdb, 0x7c, 0xa0, 0x1b, 0x1e, + 0xf2, 0x15, 0x5f, 0xf0, 0xa7, 0x44, 0x68, 0x12, 0x8f, 0x52, 0xcf, 0x77, 0xe5, 0x54, 0x2f, 0x1c, + 0x3b, 0xac, 0x4f, 0x87, 0xe9, 0xfb, 0xe6, 0xfc, 0x7b, 0xd6, 0x1f, 0xb8, 0x01, 0x73, 0x06, 0xa3, + 0x64, 0xa0, 0xf5, 0x55, 0x87, 0xfa, 0x73, 0xd6, 0xdb, 0x8f, 0x37, 0xc7, 0xbb, 0x70, 0x61, 0x18, + 0xfa, 0xbe, 0xd3, 0xf5, 0xdd, 0x7d, 0x31, 0x67, 0xa0, 0x0d, 0x74, 0xad, 0x71, 0xcb, 0xb4, 0x12, + 0x92, 0x25, 0x48, 0x56, 0x36, 0x61, 0x57, 0x3f, 0xfe, 0x69, 0xa2, 0x4e, 0x51, 0x8a, 0x9f, 0xc0, + 0xba, 0xf8, 0x71, 0x2b, 0xf5, 0x65, 0xe8, 0x1c, 0x77, 0xb9, 0x80, 0x13, 0x03, 0x76, 0xf5, 0x53, + 0x4c, 0x2b, 0x08, 0xb1, 0x0d, 0x2b, 0x99, 0x79, 0xa3, 0x52, 0x6a, 0xaa, 0x7e, 0xf4, 0xbb, 0xa9, + 0x71, 0x63, 0x52, 0x86, 0xef, 0x43, 0x5d, 0x04, 0x64, 0x54, 0xcb, 0x8c, 0x70, 0x02, 0x37, 0x93, + 0x89, 0x5a, 0xdf, 0x74, 0x68, 0x74, 0xdc, 0x51, 0x96, 0xd8, 0x33, 0xc0, 0x85, 0xbf, 0x1d, 0x18, + 0x68, 0xa3, 0xb2, 0x54, 0x64, 0x0a, 0x2d, 0xde, 0x91, 0xdf, 0x40, 0x38, 0x09, 0x0c, 0x9d, 0x03, + 0x4b, 0x43, 0x2b, 0x2a, 0xf1, 0x16, 0x00, 0x93, 0xc6, 0x2a, 0xa5, 0xc6, 0x64, 0x6c, 0x39, 0x1d, + 0x7e, 0x08, 0x2b, 0xbd, 0xcc, 0x4c, 0xb5, 0xcc, 0x8c, 0x0c, 0x4e, 0xaa, 0x5a, 0xbf, 0x6a, 0xd0, + 0xd8, 0x71, 0x64, 0x72, 0x07, 0xea, 0xae, 0xc5, 0xe8, 0x4d, 0x2b, 0x3b, 0x1e, 0x39, 0x85, 0xb5, + 0x3b, 0x3f, 0xfe, 0x68, 0xc8, 0xc6, 0x93, 0xc5, 0xed, 0x7b, 0x9a, 0x2f, 0x4c, 0x92, 0xe0, 0x55, + 0x35, 0x79, 0x8e, 0xa8, 0xac, 0xce, 0x2b, 0x45, 0x97, 0x93, 0x38, 0xaf, 0x9f, 0x6e, 0x57, 0x4c, + 0xa7, 0x6e, 0x17, 0xb4, 0xfb, 0xf1, 0x4c, 0x33, 0x63, 0xec, 0x15, 0x35, 0x76, 0x16, 0xa7, 0xe8, + 0xa8, 0x79, 0x00, 0x97, 0xd4, 0x51, 0xe1, 0x75, 0xa8, 0xbc, 0x73, 0x27, 0xfc, 0x44, 0xd7, 0x3a, + 0xf1, 0x23, 0xbe, 0x09, 0xb5, 0xf7, 0x8e, 0x1f, 0xba, 0xe9, 0xb1, 0x3c, 0xa5, 0x19, 0x9d, 0x64, + 0xf0, 0xae, 0x7e, 0x07, 0x99, 0x2f, 0x61, 0xed, 0x8c, 0xc8, 0xaf, 0xe1, 0xa2, 0x32, 0x37, 0xc5, + 0x06, 0xed, 0xd9, 0x0d, 0x16, 0xf7, 0x31, 0xcf, 0x7f, 0x01, 0xab, 0x67, 0xc1, 0x6d, 0x7d, 0x46, + 0xb0, 0xba, 0x37, 0x74, 0xe9, 0x61, 0xd6, 0xef, 0x07, 0xf9, 0xf6, 0x2d, 0x79, 0x87, 0x6e, 0x6b, + 0xf9, 0xc6, 0xdd, 0xcb, 0x55, 0x62, 0xb9, 0x5b, 0x73, 0x5b, 0x93, 0x35, 0xb0, 0xcf, 0x73, 0x47, + 0x7b, 0xdc, 0x51, 0xcc, 0xb4, 0x37, 0x8f, 0xa7, 0x04, 0xfd, 0x9b, 0x12, 0x74, 0x32, 0x25, 0xe8, + 0x4b, 0x44, 0xd0, 0xf7, 0x88, 0xa0, 0x1f, 0x11, 0x41, 0x47, 0x11, 0xd1, 0x7e, 0x46, 0x44, 0x3b, + 0x8e, 0x08, 0x3a, 0x89, 0x88, 0xf6, 0xe1, 0x2f, 0xd1, 0xba, 0xe7, 0xf8, 0x1e, 0xb7, 0xff, 0x07, + 0x00, 0x00, 0xff, 0xff, 0x00, 0x68, 0x05, 0x4b, 0xab, 0x06, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto new file mode 100644 index 00000000..fb69b732 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.proto @@ -0,0 +1,78 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package stdtypes; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.gostring_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go new file mode 100644 index 00000000..4ecfa3cb --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go @@ -0,0 +1,809 @@ +// Code generated by protoc-gen-gogo. +// source: stdtypes.proto +// DO NOT EDIT! + +/* +Package stdtypes is a generated protocol buffer package. + +It is generated from these files: + stdtypes.proto + +It has these top-level messages: + StdTypes + RepStdTypes + MapStdTypes + OneofStdTypes +*/ +package stdtypes + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import go_parser "go/parser" +import proto "github.com/gogo/protobuf/proto" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestRepStdTypesGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestMapStdTypesGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestOneofStdTypesGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/t.go b/vendor/github.com/gogo/protobuf/test/t.go new file mode 100644 index 00000000..c7c292e8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/t.go @@ -0,0 +1,73 @@ +package test + +import ( + "encoding/json" + "strings" + + "github.com/gogo/protobuf/proto" +) + +type T struct { + Data string +} + +func (gt *T) protoType() *ProtoType { + return &ProtoType{ + Field2: >.Data, + } +} + +func (gt T) Equal(other T) bool { + return gt.protoType().Equal(other.protoType()) +} + +func (gt *T) Size() int { + proto := &ProtoType{ + Field2: >.Data, + } + return proto.Size() +} + +func NewPopulatedT(r randyThetest) *T { + data := NewPopulatedProtoType(r, false).Field2 + gt := &T{} + if data != nil { + gt.Data = *data + } + return gt +} + +func (r T) Marshal() ([]byte, error) { + return proto.Marshal(r.protoType()) +} + +func (r *T) Unmarshal(data []byte) error { + pr := &ProtoType{} + err := proto.Unmarshal(data, pr) + if err != nil { + return err + } + + if pr.Field2 != nil { + r.Data = *pr.Field2 + } + return nil +} + +func (gt T) MarshalJSON() ([]byte, error) { + return json.Marshal(gt.Data) +} + +func (gt *T) UnmarshalJSON(data []byte) error { + var s string + err := json.Unmarshal(data, &s) + if err != nil { + return err + } + *gt = T{Data: s} + return nil +} + +func (gt T) Compare(other T) int { + return strings.Compare(gt.Data, other.Data) +} diff --git a/vendor/github.com/gogo/protobuf/test/tags/Makefile b/vendor/github.com/gogo/protobuf/test/tags/Makefile index ade15cea..e1105dc5 100644 --- a/vendor/github.com/gogo/protobuf/test/tags/Makefile +++ b/vendor/github.com/gogo/protobuf/test/tags/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go b/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go index f07fa5fd..c16055ec 100644 --- a/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go +++ b/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go @@ -26,11 +26,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Outside struct { - *Inside `protobuf:"bytes,1,opt,name=Inside,json=inside,embedded=Inside" json:""` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"MyField2" xml:",comment"` + *Inside `protobuf:"bytes,1,opt,name=Inside,embedded=Inside" json:""` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"MyField2" xml:",comment"` XXX_unrecognized []byte `json:"-"` } @@ -47,7 +49,7 @@ func (m *Outside) GetField2() string { } type Inside struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"MyField1" xml:",chardata"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"MyField1" xml:",chardata"` XXX_unrecognized []byte `json:"-"` } @@ -73,7 +75,7 @@ func NewPopulatedOutside(r randyTags, easy bool) *Outside { this.Inside = NewPopulatedInside(r, easy) } if r.Intn(10) != 0 { - v1 := randStringTags(r) + v1 := string(randStringTags(r)) this.Field2 = &v1 } if !easy && r.Intn(10) != 0 { @@ -85,7 +87,7 @@ func NewPopulatedOutside(r randyTags, easy bool) *Outside { func NewPopulatedInside(r randyTags, easy bool) *Inside { this := &Inside{} if r.Intn(10) != 0 { - v2 := randStringTags(r) + v2 := string(randStringTags(r)) this.Field1 = &v2 } if !easy && r.Intn(10) != 0 { @@ -120,7 +122,7 @@ func randStringTags(r randyTags) string { } return string(tmps) } -func randUnrecognizedTags(r randyTags, maxFieldNumber int) (data []byte) { +func randUnrecognizedTags(r randyTags, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -128,58 +130,60 @@ func randUnrecognizedTags(r randyTags, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTags(data, r, fieldNumber, wire) + dAtA = randFieldTags(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTags(data []byte, r randyTags, fieldNumber int, wire int) []byte { +func randFieldTags(dAtA []byte, r randyTags, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTags(data, uint64(key)) + dAtA = encodeVarintPopulateTags(dAtA, uint64(key)) v4 := r.Int63() if r.Intn(2) == 0 { v4 *= -1 } - data = encodeVarintPopulateTags(data, uint64(v4)) + dAtA = encodeVarintPopulateTags(dAtA, uint64(v4)) case 1: - data = encodeVarintPopulateTags(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTags(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTags(data, uint64(key)) + dAtA = encodeVarintPopulateTags(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTags(data, uint64(ll)) + dAtA = encodeVarintPopulateTags(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTags(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTags(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTags(data []byte, v uint64) []byte { +func encodeVarintPopulateTags(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } +func init() { proto.RegisterFile("tags.proto", fileDescriptorTags) } + var fileDescriptorTags = []byte{ - // 202 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x2a, 0x49, 0x4c, 0x2f, + // 203 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2a, 0x49, 0x4c, 0x2f, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0x15, 0x72, 0xb1, 0xfb, 0x97, 0x96, 0x14, 0x67, 0xa6, 0xa4, 0x0a, 0xe9, 0x71, 0xb1, 0x79, 0xe6, 0x81, 0x58, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc, 0x46, 0x3c, 0x7a, 0x60, 0xc3, 0x21, 0x62, 0x4e, 0x1c, 0x17, 0xee, 0xc9, 0x33, 0xbe, 0xba, - 0x27, 0xcf, 0x10, 0xc4, 0x96, 0x09, 0x16, 0x11, 0x32, 0xe3, 0x62, 0x73, 0xcb, 0x4c, 0xcd, 0x49, - 0x31, 0x92, 0x60, 0x02, 0xaa, 0xe7, 0x74, 0x92, 0x03, 0xca, 0x72, 0xf8, 0x56, 0x42, 0xc4, 0x3e, - 0xdd, 0x93, 0xe7, 0xab, 0xc8, 0xcd, 0xb1, 0x52, 0xd2, 0x01, 0x3a, 0x24, 0x37, 0x35, 0xaf, 0x44, - 0x29, 0x88, 0x2d, 0x0d, 0x2c, 0xa3, 0xe4, 0x08, 0xb3, 0x47, 0xc8, 0x1c, 0x6a, 0x82, 0x21, 0xd8, - 0x46, 0x4e, 0x27, 0x79, 0x24, 0x13, 0x0c, 0x81, 0x26, 0xf0, 0x43, 0x4d, 0xc8, 0x48, 0x2c, 0x4a, - 0x49, 0x2c, 0x49, 0x84, 0x19, 0x61, 0xe8, 0xc4, 0xf2, 0xe3, 0xa1, 0x1c, 0x23, 0x20, 0x00, 0x00, - 0xff, 0xff, 0xd1, 0x94, 0x7c, 0x45, 0xfd, 0x00, 0x00, 0x00, + 0x27, 0xcf, 0x10, 0x04, 0x55, 0x25, 0x64, 0xc6, 0xc5, 0xe6, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x24, + 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0xe9, 0x24, 0xf7, 0xea, 0x9e, 0x3c, 0x87, 0x6f, 0x25, 0x44, 0xec, + 0xd3, 0x3d, 0x79, 0xbe, 0x8a, 0xdc, 0x1c, 0x2b, 0x25, 0x9d, 0xe4, 0xfc, 0xdc, 0xdc, 0xd4, 0xbc, + 0x12, 0xa5, 0x20, 0xa8, 0x6a, 0x25, 0x47, 0x98, 0x3d, 0x42, 0xe6, 0x50, 0x13, 0x0c, 0xc1, 0x36, + 0x72, 0x3a, 0xc9, 0x23, 0x99, 0x60, 0xf8, 0xe9, 0x9e, 0x3c, 0x3f, 0xd4, 0x84, 0x8c, 0xc4, 0xa2, + 0x94, 0xc4, 0x92, 0x44, 0x98, 0x11, 0x86, 0x4e, 0x2c, 0x3f, 0x1e, 0xca, 0x31, 0x02, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x57, 0x12, 0x09, 0x10, 0xfd, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/tags/tags.proto b/vendor/github.com/gogo/protobuf/test/tags/tags.proto index e5b3a4fa..f4ef2a68 100644 --- a/vendor/github.com/gogo/protobuf/test/tags/tags.proto +++ b/vendor/github.com/gogo/protobuf/test/tags/tags.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/tags/tags_test.go b/vendor/github.com/gogo/protobuf/test/tags/tags_test.go index 0ab3ba34..460273e4 100644 --- a/vendor/github.com/gogo/protobuf/test/tags/tags_test.go +++ b/vendor/github.com/gogo/protobuf/test/tags/tags_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/Makefile b/vendor/github.com/gogo/protobuf/test/theproto3/Makefile index 943f87cd..fe1b6761 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/Makefile +++ b/vendor/github.com/gogo/protobuf/test/theproto3/Makefile @@ -1,7 +1,7 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -# http://github.com/gogo/protobuf/gogoproto +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -27,9 +27,10 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: + go install github.com/gogo/protobuf/protoc-gen-combo + go install github.com/gogo/protobuf/protoc-gen-gogo cp header.proto theproto3.proto cat maps.proto >> theproto3.proto cat footer.proto >> theproto3.proto - go install github.com/gogo/protobuf/protoc-gen-combo - protoc-gen-combo --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. theproto3.proto + protoc-gen-combo --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. theproto3.proto find combos -type d -not -name combos -exec cp proto3_test.go.in {}/proto3_test.go \; diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go index 8ee24e3d..84a32bd4 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,12 +38,9 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -52,7 +50,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -107,7 +107,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -127,23 +127,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -151,23 +151,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -209,7 +209,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -218,6 +218,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -228,6 +236,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -258,476 +267,503 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7445 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x6c, 0x63, 0xd7, - 0x79, 0xe7, 0x90, 0x97, 0x94, 0xa8, 0x8f, 0x14, 0x45, 0xdd, 0xd1, 0xc8, 0xb4, 0x3c, 0x9e, 0x07, - 0x3d, 0x1e, 0xcb, 0x8a, 0xad, 0xd1, 0x68, 0x34, 0x0f, 0xd3, 0xaf, 0x15, 0x29, 0x6a, 0xac, 0x89, - 0x5e, 0xb9, 0x92, 0xfc, 0x88, 0x17, 0x4b, 0x50, 0xe4, 0x95, 0x44, 0x9b, 0xba, 0xd4, 0xf2, 0x92, - 0xb6, 0x27, 0x7f, 0x2c, 0xb2, 0xc9, 0x6e, 0x36, 0xd9, 0xc5, 0xee, 0xb6, 0x4d, 0x8b, 0xe6, 0x1d, - 0x3b, 0x45, 0x1a, 0x27, 0x7d, 0x25, 0x69, 0x1a, 0x14, 0x41, 0xdb, 0xb8, 0x28, 0x92, 0x4e, 0xff, - 0x29, 0xdc, 0xf4, 0x9f, 0xa2, 0x28, 0x8c, 0xbc, 0x80, 0xa6, 0x6d, 0xda, 0x26, 0x80, 0x81, 0x04, - 0x48, 0xfe, 0xe8, 0x79, 0xdf, 0x73, 0x0e, 0xef, 0xe5, 0xa5, 0x66, 0xec, 0x38, 0x7f, 0xd8, 0x00, - 0x47, 0xbc, 0xe7, 0x7c, 0xbf, 0xef, 0x7c, 0xe7, 0x7b, 0x9d, 0xef, 0x9e, 0x73, 0x79, 0x0d, 0x7f, - 0x71, 0x1e, 0x4e, 0xed, 0x36, 0x9b, 0xbb, 0x0d, 0xfb, 0xdc, 0x41, 0xab, 0xd9, 0x6e, 0x6e, 0x77, - 0x76, 0xce, 0xd5, 0x6c, 0xb7, 0xda, 0xaa, 0x1f, 0xb4, 0x9b, 0xad, 0x69, 0xd2, 0x66, 0x8e, 0x50, - 0x8a, 0x69, 0x4e, 0x91, 0x5b, 0x81, 0xd1, 0xc5, 0x7a, 0xc3, 0x5e, 0x10, 0x84, 0x1b, 0x76, 0xdb, - 0xbc, 0x02, 0xb1, 0x1d, 0xd4, 0x98, 0x8d, 0x9c, 0x32, 0x26, 0x93, 0xb3, 0x67, 0xa6, 0x35, 0xd0, - 0xb4, 0x8a, 0x58, 0xc7, 0xcd, 0x16, 0x41, 0xe4, 0xbe, 0x1f, 0x83, 0xa3, 0x3e, 0xbd, 0xa6, 0x09, - 0x31, 0xa7, 0xb2, 0x8f, 0x39, 0x46, 0x26, 0x87, 0x2c, 0xf2, 0xdd, 0xcc, 0xc2, 0xe0, 0x41, 0xa5, - 0xfa, 0x6c, 0x65, 0xd7, 0xce, 0x46, 0x49, 0x33, 0xbf, 0x34, 0x4f, 0x00, 0xd4, 0xec, 0x03, 0xdb, - 0xa9, 0xd9, 0x4e, 0xf5, 0x7a, 0xd6, 0x40, 0x52, 0x0c, 0x59, 0x52, 0x8b, 0xf9, 0x0e, 0x18, 0x3d, - 0xe8, 0x6c, 0x37, 0xea, 0xd5, 0xb2, 0x44, 0x06, 0x88, 0x2c, 0x6e, 0x65, 0x68, 0xc7, 0x82, 0x47, - 0x7c, 0x0f, 0x8c, 0x3c, 0x6f, 0x57, 0x9e, 0x95, 0x49, 0x93, 0x84, 0x34, 0x8d, 0x9b, 0x25, 0xc2, - 0x22, 0xa4, 0xf6, 0x6d, 0xd7, 0x45, 0x02, 0x94, 0xdb, 0xd7, 0x0f, 0xec, 0x6c, 0x8c, 0xcc, 0xfe, - 0x54, 0xd7, 0xec, 0xf5, 0x99, 0x27, 0x19, 0x6a, 0x13, 0x81, 0xcc, 0x79, 0x18, 0xb2, 0x9d, 0xce, - 0x3e, 0xe5, 0x10, 0x0f, 0xd0, 0x5f, 0x09, 0x51, 0xe8, 0x5c, 0x12, 0x18, 0xc6, 0x58, 0x0c, 0xba, - 0x76, 0xeb, 0xb9, 0x7a, 0xd5, 0xce, 0x0e, 0x10, 0x06, 0xf7, 0x74, 0x31, 0xd8, 0xa0, 0xfd, 0x3a, - 0x0f, 0x8e, 0x43, 0x53, 0x19, 0xb2, 0x5f, 0x68, 0xdb, 0x8e, 0x5b, 0x6f, 0x3a, 0xd9, 0x41, 0xc2, - 0xe4, 0x6e, 0x1f, 0x2b, 0xda, 0x8d, 0x9a, 0xce, 0xc2, 0xc3, 0x99, 0x97, 0x60, 0xb0, 0x79, 0xd0, - 0x46, 0xdf, 0xdc, 0x6c, 0x02, 0xd9, 0x27, 0x39, 0x7b, 0xdc, 0xd7, 0x11, 0xd6, 0x28, 0x8d, 0xc5, - 0x89, 0xcd, 0x25, 0xc8, 0xb8, 0xcd, 0x4e, 0xab, 0x6a, 0x97, 0xab, 0xcd, 0x9a, 0x5d, 0xae, 0x3b, - 0x3b, 0xcd, 0xec, 0x10, 0x61, 0x70, 0xb2, 0x7b, 0x22, 0x84, 0xb0, 0x88, 0xe8, 0x96, 0x10, 0x99, - 0x95, 0x76, 0x95, 0x6b, 0x73, 0x1c, 0x06, 0xdc, 0xeb, 0x4e, 0xbb, 0xf2, 0x42, 0x36, 0x45, 0x3c, - 0x84, 0x5d, 0xe5, 0x7e, 0x12, 0x87, 0x91, 0x7e, 0x5c, 0xec, 0x41, 0x88, 0xef, 0xe0, 0x59, 0x22, - 0x07, 0x3b, 0x84, 0x0e, 0x28, 0x46, 0x55, 0xe2, 0xc0, 0x4d, 0x2a, 0x71, 0x1e, 0x92, 0x8e, 0xed, - 0xb6, 0xed, 0x1a, 0xf5, 0x08, 0xa3, 0x4f, 0x9f, 0x02, 0x0a, 0xea, 0x76, 0xa9, 0xd8, 0x4d, 0xb9, - 0xd4, 0x93, 0x30, 0x22, 0x44, 0x2a, 0xb7, 0x2a, 0xce, 0x2e, 0xf7, 0xcd, 0x73, 0x61, 0x92, 0x4c, - 0x97, 0x38, 0xce, 0xc2, 0x30, 0x2b, 0x6d, 0x2b, 0xd7, 0xe6, 0x02, 0x40, 0xd3, 0xb1, 0x9b, 0x3b, - 0x28, 0xbc, 0xaa, 0x0d, 0xe4, 0x27, 0xfe, 0x5a, 0x5a, 0xc3, 0x24, 0x5d, 0x5a, 0x6a, 0xd2, 0xd6, - 0x6a, 0xc3, 0x7c, 0xc0, 0x73, 0xb5, 0xc1, 0x00, 0x4f, 0x59, 0xa1, 0x41, 0xd6, 0xe5, 0x6d, 0x5b, - 0x90, 0x6e, 0xd9, 0xd8, 0xef, 0x91, 0x8a, 0xe9, 0xcc, 0x86, 0x88, 0x10, 0xd3, 0xa1, 0x33, 0xb3, - 0x18, 0x8c, 0x4e, 0x6c, 0xb8, 0x25, 0x5f, 0x9a, 0x77, 0x81, 0x68, 0x28, 0x13, 0xb7, 0x02, 0x92, - 0x85, 0x52, 0xbc, 0x71, 0x15, 0xb5, 0x4d, 0x5c, 0x81, 0xb4, 0xaa, 0x1e, 0x73, 0x0c, 0xe2, 0x6e, - 0xbb, 0xd2, 0x6a, 0x13, 0x2f, 0x8c, 0x5b, 0xf4, 0xc2, 0xcc, 0x80, 0x81, 0x92, 0x0c, 0xc9, 0x72, - 0x71, 0x0b, 0x7f, 0x9d, 0xb8, 0x0c, 0xc3, 0xca, 0xf0, 0xfd, 0x02, 0x73, 0x1f, 0x19, 0x80, 0x31, - 0x3f, 0x9f, 0xf3, 0x75, 0x7f, 0x14, 0x3e, 0xc8, 0x03, 0xb6, 0xed, 0x16, 0xf2, 0x3b, 0xcc, 0x81, - 0x5d, 0x21, 0x8f, 0x8a, 0x37, 0x2a, 0xdb, 0x76, 0x03, 0x79, 0x53, 0x64, 0x32, 0x3d, 0xfb, 0x8e, - 0xbe, 0xbc, 0x7a, 0x7a, 0x19, 0x43, 0x2c, 0x8a, 0x34, 0x1f, 0x81, 0x18, 0x4b, 0x71, 0x98, 0xc3, - 0x54, 0x7f, 0x1c, 0xb0, 0x2f, 0x5a, 0x04, 0x67, 0xde, 0x01, 0x43, 0xf8, 0x2f, 0xd5, 0xed, 0x00, - 0x91, 0x39, 0x81, 0x1b, 0xb0, 0x5e, 0xcd, 0x09, 0x48, 0x10, 0x37, 0xab, 0xd9, 0x7c, 0x69, 0x10, - 0xd7, 0xd8, 0x30, 0x35, 0x7b, 0xa7, 0xd2, 0x69, 0xb4, 0xcb, 0xcf, 0x55, 0x1a, 0x1d, 0x9b, 0x38, - 0x0c, 0x32, 0x0c, 0x6b, 0x7c, 0x1c, 0xb7, 0x99, 0x27, 0x21, 0x49, 0xbd, 0xb2, 0x8e, 0x30, 0x2f, - 0x90, 0xec, 0x13, 0xb7, 0xa8, 0xa3, 0x2e, 0xe1, 0x16, 0x3c, 0xfc, 0x33, 0x2e, 0x8a, 0x05, 0x66, - 0x5a, 0x32, 0x04, 0x6e, 0x20, 0xc3, 0x5f, 0xd6, 0x13, 0xdf, 0x9d, 0xfe, 0xd3, 0xd3, 0x7d, 0x31, - 0xf7, 0xd5, 0x28, 0xc4, 0x48, 0xbc, 0x8d, 0x40, 0x72, 0xf3, 0xa9, 0xf5, 0x52, 0x79, 0x61, 0x6d, - 0xab, 0xb0, 0x5c, 0xca, 0x44, 0xcc, 0x34, 0x00, 0x69, 0x58, 0x5c, 0x5e, 0x9b, 0xdf, 0xcc, 0x44, - 0xc5, 0xf5, 0xd2, 0xea, 0xe6, 0xa5, 0xb9, 0x8c, 0x21, 0x00, 0x5b, 0xb4, 0x21, 0x26, 0x13, 0x5c, - 0x98, 0xcd, 0xc4, 0x91, 0x27, 0xa4, 0x28, 0x83, 0xa5, 0x27, 0x4b, 0x0b, 0x88, 0x62, 0x40, 0x6d, - 0x41, 0x34, 0x83, 0xe6, 0x30, 0x0c, 0x91, 0x96, 0xc2, 0xda, 0xda, 0x72, 0x26, 0x21, 0x78, 0x6e, - 0x6c, 0x5a, 0x4b, 0xab, 0x57, 0x33, 0x43, 0x82, 0xe7, 0x55, 0x6b, 0x6d, 0x6b, 0x3d, 0x03, 0x82, - 0xc3, 0x4a, 0x69, 0x63, 0x63, 0xfe, 0x6a, 0x29, 0x93, 0x14, 0x14, 0x85, 0xa7, 0x36, 0x4b, 0x1b, - 0x99, 0x94, 0x22, 0x16, 0x1a, 0x62, 0x58, 0x0c, 0x51, 0x5a, 0xdd, 0x5a, 0xc9, 0xa4, 0xcd, 0x51, - 0x18, 0xa6, 0x43, 0x70, 0x21, 0x46, 0xb4, 0x26, 0x24, 0x69, 0xc6, 0x13, 0x84, 0x72, 0x19, 0x55, - 0x1a, 0x10, 0x85, 0x99, 0x2b, 0x42, 0x9c, 0x78, 0x17, 0xf2, 0xe2, 0xf4, 0xf2, 0x7c, 0xa1, 0xb4, - 0x5c, 0x5e, 0x5b, 0xdf, 0x5c, 0x5a, 0x5b, 0x9d, 0x5f, 0x46, 0xba, 0x13, 0x6d, 0x56, 0xe9, 0x5d, - 0x5b, 0x4b, 0x56, 0x69, 0x01, 0xe9, 0x4f, 0x6a, 0x5b, 0x2f, 0xcd, 0x6f, 0xa2, 0x36, 0x23, 0x37, - 0x05, 0x63, 0x7e, 0x79, 0xc6, 0x2f, 0x32, 0x72, 0x9f, 0x89, 0xc0, 0x51, 0x9f, 0x94, 0xe9, 0x1b, - 0x45, 0x8f, 0x42, 0x9c, 0x7a, 0x1a, 0x5d, 0x44, 0xee, 0xf5, 0xcd, 0xbd, 0xc4, 0xef, 0xba, 0x16, - 0x12, 0x82, 0x93, 0x17, 0x52, 0x23, 0x60, 0x21, 0xc5, 0x2c, 0xba, 0xdc, 0xe9, 0xfd, 0x11, 0xc8, - 0x06, 0xf1, 0x0e, 0x89, 0xf7, 0xa8, 0x12, 0xef, 0x0f, 0xea, 0x02, 0x9c, 0x0e, 0x9e, 0x43, 0x97, - 0x14, 0x9f, 0x8b, 0xc0, 0xb8, 0x7f, 0xbd, 0xe1, 0x2b, 0xc3, 0x23, 0x30, 0xb0, 0x6f, 0xb7, 0xf7, - 0x9a, 0x7c, 0xcd, 0x3d, 0xeb, 0x93, 0xc9, 0x71, 0xb7, 0xae, 0x2b, 0x86, 0x92, 0x97, 0x02, 0x23, - 0xa8, 0x68, 0xa0, 0xd2, 0x74, 0x49, 0xfa, 0xa1, 0x28, 0x1c, 0xf3, 0x65, 0xee, 0x2b, 0xe8, 0x9d, - 0x00, 0x75, 0xe7, 0xa0, 0xd3, 0xa6, 0xeb, 0x2a, 0x4d, 0x33, 0x43, 0xa4, 0x85, 0x84, 0x30, 0x4e, - 0x21, 0x9d, 0xb6, 0xe8, 0x37, 0x48, 0x3f, 0xd0, 0x26, 0x42, 0x70, 0xc5, 0x13, 0x34, 0x46, 0x04, - 0x3d, 0x11, 0x30, 0xd3, 0xae, 0x25, 0x6b, 0x06, 0x32, 0xd5, 0x46, 0xdd, 0x76, 0xda, 0x65, 0xb7, - 0xdd, 0xb2, 0x2b, 0xfb, 0x75, 0x67, 0x97, 0xe4, 0xd1, 0x44, 0x3e, 0xbe, 0x53, 0x69, 0xb8, 0xb6, - 0x35, 0x42, 0xbb, 0x37, 0x78, 0x2f, 0x46, 0x90, 0xc5, 0xa2, 0x25, 0x21, 0x06, 0x14, 0x04, 0xed, - 0x16, 0x88, 0xdc, 0xb7, 0x06, 0x21, 0x29, 0x55, 0x67, 0xe6, 0x69, 0x48, 0x3d, 0x53, 0x79, 0xae, - 0x52, 0xe6, 0x15, 0x37, 0xd5, 0x44, 0x12, 0xb7, 0xad, 0xb3, 0xaa, 0x7b, 0x06, 0xc6, 0x08, 0x09, - 0x9a, 0x23, 0x1a, 0xa8, 0xda, 0xa8, 0xb8, 0x2e, 0x51, 0x5a, 0x82, 0x90, 0x9a, 0xb8, 0x6f, 0x0d, - 0x77, 0x15, 0x79, 0x8f, 0x79, 0x11, 0x8e, 0x12, 0xc4, 0x3e, 0x4a, 0xbc, 0xf5, 0x83, 0x86, 0x5d, - 0xc6, 0xf7, 0x00, 0x2e, 0xc9, 0xa7, 0x42, 0xb2, 0x51, 0x4c, 0xb1, 0xc2, 0x08, 0xb0, 0x44, 0xae, - 0x79, 0x15, 0xee, 0x24, 0xb0, 0x5d, 0xdb, 0xb1, 0x5b, 0x95, 0xb6, 0x5d, 0xb6, 0xff, 0x6b, 0x07, - 0xd1, 0x96, 0x2b, 0x4e, 0xad, 0xbc, 0x57, 0x71, 0xf7, 0xb2, 0x63, 0x32, 0x83, 0xdb, 0x31, 0xed, - 0x55, 0x46, 0x5a, 0x22, 0x94, 0xf3, 0x4e, 0xed, 0x31, 0x44, 0x67, 0xe6, 0x61, 0x9c, 0x30, 0x42, - 0x4a, 0x41, 0x73, 0x2e, 0x57, 0xf7, 0xec, 0xea, 0xb3, 0xe5, 0x4e, 0x7b, 0xe7, 0x4a, 0xf6, 0x0e, - 0x99, 0x03, 0x11, 0x72, 0x83, 0xd0, 0x14, 0x31, 0xc9, 0x16, 0xa2, 0x30, 0x37, 0x20, 0x85, 0xed, - 0xb1, 0x5f, 0x7f, 0x0f, 0x12, 0xbb, 0xd9, 0x22, 0x6b, 0x44, 0xda, 0x27, 0xb8, 0x25, 0x25, 0x4e, - 0xaf, 0x31, 0xc0, 0x0a, 0xaa, 0x4f, 0xf3, 0xf1, 0x8d, 0xf5, 0x52, 0x69, 0xc1, 0x4a, 0x72, 0x2e, - 0x8b, 0xcd, 0x16, 0xf6, 0xa9, 0xdd, 0xa6, 0xd0, 0x71, 0x92, 0xfa, 0xd4, 0x6e, 0x93, 0x6b, 0x18, - 0xe9, 0xab, 0x5a, 0xa5, 0xd3, 0x46, 0xf7, 0x2e, 0xac, 0x58, 0x77, 0xb3, 0x19, 0x45, 0x5f, 0xd5, - 0xea, 0x55, 0x4a, 0xc0, 0xdc, 0xdc, 0x45, 0x21, 0x71, 0xcc, 0xd3, 0x97, 0x0c, 0x1c, 0xed, 0x9a, - 0xa5, 0x0e, 0x45, 0x23, 0x1e, 0x5c, 0xef, 0x06, 0x9a, 0xca, 0x88, 0x07, 0xd7, 0x75, 0xd8, 0xdd, - 0xe4, 0x06, 0xac, 0x65, 0x57, 0x91, 0xca, 0x6b, 0xd9, 0xdb, 0x64, 0x6a, 0xa9, 0xc3, 0x3c, 0x87, - 0x1c, 0xb9, 0x5a, 0xb6, 0x9d, 0xca, 0x36, 0xb2, 0x7d, 0xa5, 0x85, 0xbe, 0xb8, 0xd9, 0x93, 0x32, - 0x71, 0xba, 0x5a, 0x2d, 0x91, 0xde, 0x79, 0xd2, 0x69, 0x4e, 0xc1, 0x68, 0x73, 0xfb, 0x99, 0x2a, - 0x75, 0xae, 0x32, 0xe2, 0xb3, 0x53, 0x7f, 0x21, 0x7b, 0x86, 0xa8, 0x69, 0x04, 0x77, 0x10, 0xd7, - 0x5a, 0x27, 0xcd, 0xe6, 0xbd, 0x88, 0xb9, 0xbb, 0x57, 0x69, 0x1d, 0x90, 0x45, 0xda, 0x45, 0x4a, - 0xb5, 0xb3, 0x77, 0x53, 0x52, 0xda, 0xbe, 0xca, 0x9b, 0xcd, 0x12, 0x9c, 0xc4, 0x93, 0x77, 0x2a, - 0x4e, 0xb3, 0xdc, 0x71, 0xed, 0xb2, 0x27, 0xa2, 0xb0, 0xc5, 0x59, 0x2c, 0x96, 0x75, 0x9c, 0x93, - 0x6d, 0xb9, 0x28, 0x99, 0x71, 0x22, 0x6e, 0x9e, 0x27, 0x61, 0xac, 0xe3, 0xd4, 0x1d, 0xe4, 0xe2, - 0xa8, 0x07, 0x83, 0x69, 0xc0, 0x66, 0xff, 0x71, 0x30, 0xa0, 0xe8, 0xde, 0x92, 0xa9, 0xa9, 0x93, - 0x58, 0x47, 0x3b, 0xdd, 0x8d, 0xb9, 0x3c, 0xa4, 0x64, 0xdf, 0x31, 0x87, 0x80, 0x7a, 0x0f, 0x5a, - 0xdd, 0xd0, 0x8a, 0x5a, 0x5c, 0x5b, 0xc0, 0x6b, 0xe1, 0xbb, 0x4b, 0x68, 0x61, 0x43, 0x6b, 0xf2, - 0xf2, 0xd2, 0x66, 0xa9, 0x6c, 0x6d, 0xad, 0x6e, 0x2e, 0xad, 0x94, 0x32, 0xc6, 0xd4, 0x50, 0xe2, - 0x07, 0x83, 0x99, 0xf7, 0xa2, 0xff, 0xa2, 0xb9, 0x6f, 0x44, 0x21, 0xad, 0xd6, 0xc1, 0xe6, 0x43, - 0x70, 0x1b, 0xbf, 0x69, 0x75, 0xed, 0x76, 0xf9, 0xf9, 0x7a, 0x8b, 0xb8, 0xf3, 0x7e, 0x85, 0x56, - 0x92, 0xc2, 0x12, 0x63, 0x8c, 0x0a, 0xdd, 0xde, 0x3f, 0x81, 0x68, 0x16, 0x09, 0x89, 0xb9, 0x0c, - 0x27, 0x91, 0xca, 0x50, 0xad, 0xe9, 0xd4, 0x2a, 0xad, 0x5a, 0xd9, 0xdb, 0x2e, 0x28, 0x57, 0xaa, - 0xc8, 0x0f, 0xdc, 0x26, 0x5d, 0x49, 0x04, 0x97, 0xe3, 0x4e, 0x73, 0x83, 0x11, 0x7b, 0x29, 0x76, - 0x9e, 0x91, 0x6a, 0x5e, 0x63, 0x04, 0x79, 0x0d, 0xaa, 0xbd, 0xf6, 0x2b, 0x07, 0xc8, 0x6d, 0xda, - 0xad, 0xeb, 0xa4, 0x7a, 0x4b, 0x58, 0x09, 0xd4, 0x50, 0xc2, 0xd7, 0x6f, 0x9e, 0x0d, 0x64, 0x3d, - 0xfe, 0x83, 0x01, 0x29, 0xb9, 0x82, 0xc3, 0x05, 0x71, 0x95, 0xa4, 0xf9, 0x08, 0xc9, 0x02, 0x77, - 0xf5, 0xac, 0xf7, 0xa6, 0x8b, 0x38, 0xff, 0xe7, 0x07, 0x68, 0x5d, 0x65, 0x51, 0x24, 0x5e, 0x7b, - 0xb1, 0xaf, 0xd9, 0xb4, 0x5a, 0x4f, 0x58, 0xec, 0x0a, 0x25, 0xbb, 0x81, 0x67, 0x5c, 0xc2, 0x7b, - 0x80, 0xf0, 0x3e, 0xd3, 0x9b, 0xf7, 0xb5, 0x0d, 0xc2, 0x7c, 0xe8, 0xda, 0x46, 0x79, 0x75, 0xcd, - 0x5a, 0x99, 0x5f, 0xb6, 0x18, 0xdc, 0xbc, 0x1d, 0x62, 0x8d, 0xca, 0x7b, 0xae, 0xab, 0x2b, 0x05, - 0x69, 0xea, 0x57, 0xf1, 0x88, 0x03, 0xde, 0xf2, 0x50, 0xf3, 0x33, 0x69, 0x7a, 0x13, 0x5d, 0xff, - 0x1c, 0xc4, 0x89, 0xbe, 0x4c, 0x00, 0xa6, 0xb1, 0xcc, 0x11, 0x33, 0x01, 0xb1, 0xe2, 0x9a, 0x85, - 0xdd, 0x1f, 0xf9, 0x3b, 0x6d, 0x2d, 0xaf, 0x2f, 0x95, 0x8a, 0x28, 0x02, 0x72, 0x17, 0x61, 0x80, - 0x2a, 0x01, 0x87, 0x86, 0x50, 0x03, 0x02, 0xd1, 0x4b, 0xc6, 0x23, 0xc2, 0x7b, 0xb7, 0x56, 0x0a, - 0x25, 0x2b, 0x13, 0x95, 0xcd, 0xfb, 0xb5, 0x08, 0x24, 0xa5, 0x82, 0x0a, 0x2f, 0xe5, 0x95, 0x46, - 0xa3, 0xf9, 0x7c, 0xb9, 0xd2, 0xa8, 0xa3, 0x0c, 0x45, 0xed, 0x03, 0xa4, 0x69, 0x1e, 0xb7, 0xf4, - 0xab, 0xbf, 0x5f, 0x88, 0x6f, 0x7e, 0x2a, 0x02, 0x19, 0xbd, 0x18, 0xd3, 0x04, 0x8c, 0xbc, 0xa5, - 0x02, 0x7e, 0x22, 0x02, 0x69, 0xb5, 0x02, 0xd3, 0xc4, 0x3b, 0xfd, 0x96, 0x8a, 0xf7, 0xf1, 0x08, - 0x0c, 0x2b, 0x75, 0xd7, 0x2f, 0x95, 0x74, 0x1f, 0x33, 0xe0, 0xa8, 0x0f, 0x0e, 0x25, 0x20, 0x5a, - 0xa0, 0xd2, 0x9a, 0xf9, 0xfe, 0x7e, 0xc6, 0x9a, 0xc6, 0xeb, 0xdf, 0x7a, 0xa5, 0xd5, 0x66, 0xf5, - 0x2c, 0x5a, 0x2f, 0xeb, 0x35, 0x94, 0x54, 0xeb, 0x3b, 0x75, 0x54, 0xbe, 0xd1, 0x3b, 0x16, 0x5a, - 0xb5, 0x8e, 0x78, 0xed, 0xf4, 0xf6, 0xf8, 0x3e, 0x30, 0x0f, 0x9a, 0x6e, 0xbd, 0x5d, 0x7f, 0x0e, - 0x6f, 0xcf, 0xf1, 0x1b, 0x69, 0x5c, 0xc5, 0xc6, 0xac, 0x0c, 0xef, 0x59, 0x72, 0xda, 0x82, 0xda, - 0xb1, 0x77, 0x2b, 0x1a, 0x35, 0x4e, 0x43, 0x86, 0x95, 0xe1, 0x3d, 0x82, 0x1a, 0x15, 0x9a, 0xb5, - 0x66, 0x07, 0x17, 0x04, 0x94, 0x0e, 0x67, 0xbd, 0x88, 0x95, 0xa4, 0x6d, 0x82, 0x84, 0x55, 0x6c, - 0xde, 0x1d, 0x7c, 0xca, 0x4a, 0xd2, 0x36, 0x4a, 0x72, 0x0f, 0x8c, 0x54, 0x76, 0x77, 0x5b, 0x98, - 0x39, 0x67, 0x44, 0xcb, 0xd0, 0xb4, 0x68, 0x26, 0x84, 0x13, 0xd7, 0x20, 0xc1, 0xf5, 0x80, 0x17, - 0x16, 0xac, 0x09, 0xb4, 0xe6, 0x93, 0x7d, 0x94, 0x28, 0xbe, 0xa9, 0x77, 0x78, 0x27, 0x1a, 0xb4, - 0xee, 0x96, 0xbd, 0x0d, 0xbd, 0x28, 0xea, 0x4f, 0x58, 0xc9, 0xba, 0x2b, 0x76, 0x70, 0x72, 0x9f, - 0x43, 0xcb, 0xab, 0xba, 0x21, 0x69, 0x2e, 0x40, 0xa2, 0xd1, 0x44, 0xfe, 0x81, 0x11, 0x74, 0x37, - 0x7c, 0x32, 0x64, 0x0f, 0x73, 0x7a, 0x99, 0xd1, 0x5b, 0x02, 0x39, 0xf1, 0xd7, 0x11, 0x48, 0xf0, - 0x66, 0xb4, 0x50, 0xc4, 0x0e, 0x2a, 0xed, 0x3d, 0xc2, 0x2e, 0x5e, 0x88, 0x66, 0x22, 0x16, 0xb9, - 0xc6, 0xed, 0xa8, 0x9a, 0x71, 0x88, 0x0b, 0xb0, 0x76, 0x7c, 0x8d, 0xed, 0xda, 0xb0, 0x2b, 0x35, - 0x52, 0xe0, 0x36, 0xf7, 0xf7, 0x91, 0x25, 0x5d, 0x6e, 0x57, 0xd6, 0x5e, 0x64, 0xcd, 0x78, 0x5f, - 0xbc, 0xdd, 0xaa, 0xd4, 0x1b, 0x0a, 0x6d, 0x8c, 0xd0, 0x66, 0x78, 0x87, 0x20, 0xce, 0xc3, 0xed, - 0x9c, 0x6f, 0xcd, 0x6e, 0x57, 0x50, 0xf1, 0x5c, 0xf3, 0x40, 0x03, 0x64, 0xb7, 0xeb, 0x36, 0x46, - 0xb0, 0xc0, 0xfa, 0x39, 0xb6, 0xf0, 0x24, 0x2a, 0x64, 0x9b, 0xfb, 0xba, 0x26, 0x0a, 0x19, 0xed, - 0xbe, 0xcb, 0x7d, 0x2c, 0xf2, 0x6e, 0xf0, 0x8a, 0x8a, 0xcf, 0x44, 0x8d, 0xab, 0xeb, 0x85, 0x2f, - 0x44, 0x27, 0xae, 0x52, 0xdc, 0x3a, 0xd7, 0xa0, 0x65, 0xef, 0x34, 0xec, 0x2a, 0xd6, 0x0e, 0xbc, - 0x74, 0x17, 0xdc, 0xbf, 0x5b, 0x6f, 0xef, 0x75, 0xb6, 0xa7, 0xd1, 0x08, 0xe7, 0x76, 0x9b, 0xbb, - 0x4d, 0xef, 0x38, 0x03, 0x5f, 0x91, 0x0b, 0xf2, 0x8d, 0x1d, 0x69, 0x0c, 0x89, 0xd6, 0x89, 0xd0, - 0xf3, 0x8f, 0xfc, 0x2a, 0x1c, 0x65, 0xc4, 0x65, 0xb2, 0xa7, 0x4a, 0x4b, 0x50, 0xb3, 0xe7, 0x0d, - 0x79, 0xf6, 0x4b, 0xdf, 0x27, 0x4b, 0x82, 0x35, 0xca, 0xa0, 0xb8, 0x8f, 0x16, 0xa9, 0x79, 0x0b, - 0x8e, 0x29, 0xfc, 0xa8, 0x0f, 0xa3, 0x5b, 0xee, 0xde, 0x1c, 0xbf, 0xc1, 0x38, 0x1e, 0x95, 0x38, - 0x6e, 0x30, 0x68, 0xbe, 0x08, 0xc3, 0x87, 0xe1, 0xf5, 0x4d, 0xc6, 0x2b, 0x65, 0xcb, 0x4c, 0xae, - 0xc2, 0x08, 0x61, 0x52, 0xed, 0xb8, 0xed, 0xe6, 0x3e, 0x49, 0x10, 0xbd, 0xd9, 0xfc, 0xe5, 0xf7, - 0xa9, 0x53, 0xa5, 0x31, 0xac, 0x28, 0x50, 0xf9, 0xc7, 0x61, 0x0c, 0xb7, 0x90, 0x18, 0x94, 0xb9, - 0x85, 0x6f, 0x21, 0x64, 0xff, 0xe6, 0xfd, 0xd4, 0xf7, 0x8e, 0x0a, 0x06, 0x12, 0x5f, 0xc9, 0x12, - 0xbb, 0x76, 0x1b, 0xe5, 0x36, 0x74, 0xff, 0xd7, 0x68, 0x98, 0x3d, 0xcf, 0x18, 0xb2, 0x1f, 0xfd, - 0xa1, 0x6a, 0x89, 0xab, 0x14, 0x39, 0xdf, 0x68, 0xe4, 0xb7, 0xe0, 0x36, 0x1f, 0xcb, 0xf6, 0xc1, - 0xf3, 0x63, 0x8c, 0xe7, 0x58, 0x97, 0x75, 0x31, 0xdb, 0x75, 0xe0, 0xed, 0xc2, 0x1e, 0x7d, 0xf0, - 0xfc, 0x38, 0xe3, 0x69, 0x32, 0x2c, 0x37, 0x0b, 0xe6, 0x78, 0x0d, 0x46, 0xd1, 0x9d, 0xfa, 0x76, - 0xd3, 0x65, 0xf7, 0xbd, 0x7d, 0xb0, 0xfb, 0x04, 0x63, 0x37, 0xc2, 0x80, 0xe4, 0x2e, 0x18, 0xf3, - 0x7a, 0x00, 0x12, 0x3b, 0xe8, 0x06, 0xa8, 0x0f, 0x16, 0x9f, 0x64, 0x2c, 0x06, 0x31, 0x3d, 0x86, - 0xce, 0x43, 0x6a, 0xb7, 0xc9, 0xd2, 0x70, 0x38, 0xfc, 0x53, 0x0c, 0x9e, 0xe4, 0x18, 0xc6, 0xe2, - 0xa0, 0x79, 0xd0, 0x69, 0xe0, 0x1c, 0x1d, 0xce, 0xe2, 0xd3, 0x9c, 0x05, 0xc7, 0x30, 0x16, 0x87, - 0x50, 0xeb, 0x8b, 0x9c, 0x85, 0x2b, 0xe9, 0xf3, 0x51, 0xbc, 0xd7, 0xdb, 0xb8, 0xde, 0x74, 0xfa, - 0x11, 0xe2, 0x25, 0xc6, 0x01, 0x18, 0x04, 0x33, 0x78, 0x10, 0x86, 0xfa, 0x35, 0xc4, 0x67, 0x19, - 0x3c, 0x61, 0x73, 0x0b, 0xa0, 0x38, 0xe3, 0x49, 0x06, 0x9f, 0xad, 0x84, 0xb3, 0xf8, 0x6d, 0xc6, - 0x22, 0x2d, 0xc1, 0xd8, 0x34, 0xda, 0xb6, 0xdb, 0x46, 0xb7, 0xea, 0x7d, 0x30, 0xf9, 0x1c, 0x9f, - 0x06, 0x83, 0x30, 0x55, 0x6e, 0xdb, 0x4e, 0x75, 0xaf, 0x3f, 0x0e, 0x2f, 0x73, 0x55, 0x72, 0x0c, - 0x66, 0x81, 0x32, 0xcf, 0x7e, 0xa5, 0x85, 0x6e, 0xae, 0x1b, 0x7d, 0x99, 0xe3, 0xf3, 0x8c, 0x47, - 0x4a, 0x80, 0x98, 0x46, 0x3a, 0xce, 0x61, 0xd8, 0x7c, 0x81, 0x6b, 0x44, 0x82, 0xb1, 0xd0, 0x43, - 0x77, 0xa6, 0xb8, 0x92, 0x38, 0x0c, 0xb7, 0xdf, 0xe1, 0xa1, 0x47, 0xb1, 0x2b, 0x32, 0x47, 0x64, - 0x69, 0x17, 0xdd, 0x82, 0xf7, 0xc3, 0xe6, 0x77, 0xb9, 0xa5, 0x09, 0x00, 0x83, 0x9f, 0x82, 0xdb, - 0x7d, 0x53, 0x7d, 0x1f, 0xcc, 0x7e, 0x8f, 0x31, 0x1b, 0xf7, 0x49, 0xf7, 0x2c, 0x25, 0x1c, 0x96, - 0xe5, 0xef, 0xf3, 0x94, 0x60, 0x6b, 0xbc, 0xd6, 0x71, 0x19, 0xeb, 0x56, 0x76, 0x0e, 0xa7, 0xb5, - 0x3f, 0xe0, 0x5a, 0xa3, 0x58, 0x45, 0x6b, 0x9b, 0x30, 0xce, 0x38, 0x1e, 0xce, 0xae, 0x5f, 0xe4, - 0x89, 0x95, 0xa2, 0xb7, 0x54, 0xeb, 0x3e, 0x0d, 0x13, 0x42, 0x9d, 0xbc, 0x02, 0x73, 0xcb, 0x78, - 0x63, 0x20, 0x9c, 0xf3, 0x97, 0x18, 0x67, 0x9e, 0xf1, 0x45, 0x09, 0xe7, 0xae, 0x54, 0x0e, 0x30, - 0xf3, 0x27, 0x21, 0xcb, 0x99, 0x77, 0x1c, 0x54, 0xe0, 0x37, 0x77, 0x1d, 0x64, 0xc6, 0x5a, 0x1f, - 0xac, 0xbf, 0xac, 0x99, 0x6a, 0x4b, 0x82, 0x63, 0xce, 0x4b, 0x90, 0x11, 0xf5, 0x46, 0xb9, 0xbe, - 0x7f, 0xd0, 0x44, 0xa5, 0x65, 0x6f, 0x8e, 0x7f, 0xc8, 0x2d, 0x25, 0x70, 0x4b, 0x04, 0x96, 0x2f, - 0x41, 0x9a, 0x5c, 0xf6, 0xeb, 0x92, 0x5f, 0x61, 0x8c, 0x86, 0x3d, 0x14, 0x4b, 0x1c, 0xa8, 0x52, - 0x42, 0x35, 0x6f, 0x3f, 0xf9, 0xef, 0x8f, 0x78, 0xe2, 0x60, 0x10, 0xea, 0x7d, 0x23, 0xda, 0x4a, - 0x6c, 0x86, 0x1d, 0xbf, 0x66, 0xff, 0xfb, 0xeb, 0x2c, 0x66, 0xd5, 0x85, 0x38, 0xbf, 0x8c, 0xd5, - 0xa3, 0x2e, 0x97, 0xe1, 0xcc, 0xde, 0xff, 0xba, 0xd0, 0x90, 0xb2, 0x5a, 0xe6, 0x17, 0x61, 0x58, - 0x59, 0x2a, 0xc3, 0x59, 0xfd, 0x0f, 0xc6, 0x2a, 0x25, 0xaf, 0x94, 0xf9, 0x8b, 0x10, 0xc3, 0xcb, - 0x5e, 0x38, 0xfc, 0x7f, 0x32, 0x38, 0x21, 0xcf, 0x3f, 0x0c, 0x09, 0xbe, 0xdc, 0x85, 0x43, 0x3f, - 0xc0, 0xa0, 0x02, 0x82, 0xe1, 0x7c, 0xa9, 0x0b, 0x87, 0xff, 0x2f, 0x0e, 0xe7, 0x10, 0x0c, 0xef, - 0x5f, 0x85, 0xaf, 0xfc, 0x9f, 0x18, 0x4b, 0x57, 0x5c, 0x77, 0xf8, 0xcc, 0x87, 0xae, 0x71, 0xe1, - 0xe8, 0x0f, 0xb1, 0xc1, 0x39, 0x22, 0x7f, 0x19, 0xe2, 0x7d, 0x2a, 0xfc, 0xff, 0x32, 0x28, 0xa5, - 0x47, 0x2b, 0x48, 0x52, 0x5a, 0xd7, 0xc2, 0xe1, 0xff, 0x8f, 0xc1, 0x65, 0x14, 0x16, 0x9d, 0xad, - 0x6b, 0xe1, 0x0c, 0xfe, 0x3f, 0x17, 0x9d, 0x21, 0xb0, 0xda, 0xf8, 0x92, 0x16, 0x8e, 0xfe, 0x15, - 0xae, 0x75, 0x0e, 0x41, 0xd1, 0x34, 0x24, 0xd2, 0x54, 0x38, 0xfe, 0x57, 0x19, 0xde, 0xc3, 0x60, - 0x0d, 0x48, 0x69, 0x32, 0x9c, 0xc5, 0xaf, 0x71, 0x0d, 0x48, 0x28, 0x1c, 0x46, 0xfa, 0xd2, 0x17, - 0xce, 0xe9, 0xc3, 0x3c, 0x8c, 0xb4, 0x95, 0x0f, 0x5b, 0x93, 0x64, 0x8b, 0x70, 0x16, 0xbf, 0xce, - 0xad, 0x49, 0xe8, 0xb1, 0x18, 0xfa, 0x5a, 0x12, 0xce, 0xe3, 0x37, 0xb9, 0x18, 0xda, 0x52, 0x82, - 0x56, 0x26, 0xb3, 0x7b, 0x1d, 0x09, 0xe7, 0xf7, 0x11, 0xc6, 0x6f, 0xb4, 0x6b, 0x19, 0xc9, 0x3f, - 0x01, 0xe3, 0xfe, 0x6b, 0x48, 0x38, 0xd7, 0x8f, 0xbe, 0xae, 0x55, 0xfd, 0xf2, 0x12, 0x82, 0x96, - 0xbc, 0x31, 0xbf, 0xf5, 0x23, 0x9c, 0xed, 0xc7, 0x5e, 0x57, 0x6f, 0xec, 0xe4, 0xe5, 0x03, 0x55, - 0x68, 0xe0, 0xa5, 0xee, 0x70, 0x5e, 0x9f, 0x60, 0xbc, 0x24, 0x10, 0x0e, 0x0d, 0x96, 0xb9, 0xc3, - 0xf1, 0x9f, 0xe4, 0xa1, 0xc1, 0x10, 0x08, 0x9c, 0x70, 0x3a, 0x8d, 0x06, 0x76, 0x0e, 0xb3, 0xf7, - 0x23, 0x0d, 0xd9, 0x7f, 0xfa, 0x19, 0x0b, 0x0c, 0x0e, 0x40, 0x39, 0x34, 0x6e, 0xef, 0x6f, 0x23, - 0x1d, 0x84, 0x20, 0xff, 0xf9, 0x67, 0x3c, 0x21, 0x60, 0x6a, 0x14, 0x4f, 0x40, 0x6f, 0x1a, 0xc9, - 0x1e, 0x76, 0x08, 0xf6, 0x5f, 0x7e, 0xc6, 0x8e, 0x59, 0x3d, 0x88, 0xc7, 0x80, 0x1e, 0xda, 0xf6, - 0x66, 0xf0, 0x43, 0x95, 0x01, 0xb9, 0xd1, 0x7c, 0x00, 0x06, 0xf1, 0x93, 0x1d, 0xed, 0xca, 0x6e, - 0x18, 0xfa, 0x5f, 0x19, 0x9a, 0xd3, 0x63, 0x85, 0xed, 0x37, 0x5b, 0x36, 0xfa, 0xea, 0x86, 0x61, - 0xff, 0x8d, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xb7, 0xdd, 0xcf, 0xbc, 0xff, 0x9d, 0x83, 0x39, - 0x00, 0x0b, 0x8d, 0xbf, 0x3f, 0x6b, 0x5f, 0x0f, 0xc3, 0xfe, 0x88, 0x0b, 0xcd, 0xe8, 0x51, 0x02, - 0x1c, 0xc2, 0x5f, 0xe9, 0xa3, 0x07, 0x21, 0xe0, 0x1f, 0x33, 0xb0, 0x87, 0x28, 0x9c, 0xf6, 0xdf, - 0xda, 0x81, 0xab, 0xcd, 0xab, 0x4d, 0xba, 0xa9, 0x03, 0xdf, 0xac, 0xc3, 0xe5, 0xc0, 0x3d, 0x1a, - 0x9c, 0x87, 0xcf, 0xa1, 0x66, 0xb4, 0xfa, 0x9e, 0xdb, 0x6e, 0xb6, 0xf7, 0xce, 0xb5, 0xf7, 0x6c, - 0xdc, 0xc6, 0x76, 0x6b, 0x62, 0xf8, 0xfb, 0xc4, 0xe1, 0xb6, 0x78, 0xc8, 0x79, 0xcd, 0x6a, 0x1d, - 0x4b, 0xbd, 0x4a, 0x36, 0x1b, 0xcd, 0xe3, 0x30, 0x40, 0xe6, 0x71, 0x9e, 0xec, 0x85, 0x47, 0x0a, - 0xb1, 0x1b, 0xaf, 0x9d, 0x3c, 0x62, 0x0d, 0x90, 0xe7, 0xf6, 0xce, 0x8b, 0xde, 0x59, 0xb2, 0xd5, - 0x1f, 0x55, 0x7a, 0x67, 0x45, 0xef, 0x05, 0xfa, 0x50, 0x94, 0xd2, 0x7b, 0x41, 0xf4, 0xce, 0x91, - 0x7d, 0x33, 0x43, 0xe9, 0x9d, 0x13, 0xbd, 0x17, 0xc9, 0xf6, 0xe7, 0xb0, 0xd2, 0x7b, 0x51, 0xf4, - 0x5e, 0x22, 0x9b, 0x9e, 0x31, 0xa5, 0xf7, 0x92, 0xe8, 0xbd, 0x4c, 0xf6, 0x3b, 0x47, 0x95, 0xde, - 0xcb, 0xa2, 0xf7, 0x0a, 0xd9, 0xe7, 0x34, 0x95, 0xde, 0x2b, 0xa2, 0xf7, 0x01, 0x72, 0x4c, 0x3d, - 0xa8, 0xf4, 0x3e, 0x60, 0x9e, 0x80, 0x41, 0xaa, 0x8d, 0x19, 0x72, 0xb4, 0x33, 0xc2, 0xba, 0x07, - 0xa9, 0x3a, 0x66, 0xbc, 0xfe, 0xf3, 0xe4, 0x48, 0x7a, 0x40, 0xed, 0x3f, 0xef, 0xf5, 0xcf, 0x92, - 0xc7, 0x2c, 0x33, 0x6a, 0xff, 0xac, 0xd7, 0x7f, 0x21, 0x3b, 0x8c, 0x63, 0x5b, 0xed, 0xbf, 0xe0, - 0xf5, 0xcf, 0x65, 0xd3, 0xd8, 0x9d, 0xd4, 0xfe, 0x39, 0xaf, 0xff, 0x62, 0x76, 0x04, 0x6f, 0xf5, - 0xaa, 0xfd, 0x17, 0x73, 0xef, 0x23, 0xe6, 0x75, 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0x15, 0x86, 0x1d, - 0x57, 0x0d, 0x2b, 0x4c, 0x3a, 0xae, 0x9a, 0x54, 0x18, 0x73, 0x5c, 0x35, 0xa6, 0x30, 0xe3, 0xb8, - 0x6a, 0x46, 0x61, 0xc0, 0x71, 0xd5, 0x80, 0xc2, 0x74, 0xe3, 0xaa, 0xe9, 0x84, 0xd1, 0xc6, 0x55, - 0xa3, 0x09, 0x73, 0x8d, 0xab, 0xe6, 0x12, 0x86, 0xca, 0x6a, 0x86, 0xf2, 0x4c, 0x94, 0xd5, 0x4c, - 0xe4, 0x19, 0x27, 0xab, 0x19, 0xc7, 0x33, 0x4b, 0x56, 0x33, 0x8b, 0x67, 0x90, 0xac, 0x66, 0x10, - 0xcf, 0x14, 0x59, 0xcd, 0x14, 0x9e, 0x11, 0x58, 0x8c, 0x59, 0xf6, 0x81, 0x4f, 0x8c, 0x19, 0x3d, - 0x63, 0xcc, 0xe8, 0x19, 0x63, 0x46, 0xcf, 0x18, 0x33, 0x7a, 0xc6, 0x98, 0xd1, 0x33, 0xc6, 0x8c, - 0x9e, 0x31, 0x66, 0xf4, 0x8c, 0x31, 0xa3, 0x67, 0x8c, 0x19, 0xbd, 0x63, 0xcc, 0x08, 0x89, 0x31, - 0x23, 0x24, 0xc6, 0x8c, 0x90, 0x18, 0x33, 0x42, 0x62, 0xcc, 0x08, 0x89, 0x31, 0x23, 0x30, 0xc6, - 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0xf5, 0x8d, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, - 0x62, 0xcc, 0x08, 0x88, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, - 0x8a, 0x31, 0x23, 0x30, 0xc6, 0x8c, 0xc0, 0x18, 0x33, 0x02, 0x63, 0xcc, 0x08, 0x8c, 0x31, 0x23, - 0x30, 0xc6, 0x0c, 0x39, 0xc6, 0xfe, 0xc4, 0x00, 0x93, 0xc6, 0xd8, 0x3a, 0x79, 0x38, 0x80, 0x99, - 0xe2, 0x84, 0x16, 0x69, 0x03, 0xd8, 0x74, 0x19, 0xcf, 0x24, 0x27, 0xb4, 0x58, 0x53, 0xfb, 0x67, - 0x45, 0x3f, 0x8f, 0x36, 0xb5, 0xff, 0x82, 0xe8, 0xe7, 0xf1, 0xa6, 0xf6, 0xcf, 0x89, 0x7e, 0x1e, - 0x71, 0x6a, 0xff, 0x45, 0xd1, 0xcf, 0x63, 0x4e, 0xed, 0xbf, 0x24, 0xfa, 0x79, 0xd4, 0xa9, 0xfd, - 0x97, 0x45, 0x3f, 0x8f, 0x3b, 0xb5, 0xff, 0x8a, 0xe8, 0xe7, 0x91, 0xa7, 0xf6, 0x3f, 0x60, 0x9e, - 0xd2, 0x63, 0x8f, 0x13, 0x08, 0xd3, 0x9e, 0xd2, 0xa3, 0x4f, 0xa3, 0x38, 0xef, 0x51, 0xf0, 0xf8, - 0xd3, 0x28, 0x66, 0x3d, 0x0a, 0x1e, 0x81, 0x1a, 0xc5, 0x85, 0xdc, 0x07, 0x89, 0xf9, 0x1c, 0xdd, - 0x7c, 0x13, 0x9a, 0xf9, 0xa2, 0x92, 0xe9, 0x26, 0x34, 0xd3, 0x45, 0x25, 0xb3, 0x4d, 0x68, 0x66, - 0x8b, 0x4a, 0x26, 0x9b, 0xd0, 0x4c, 0x16, 0x95, 0xcc, 0x35, 0xa1, 0x99, 0x2b, 0x2a, 0x99, 0x6a, - 0x42, 0x33, 0x55, 0x54, 0x32, 0xd3, 0x84, 0x66, 0xa6, 0xa8, 0x64, 0xa2, 0x09, 0xcd, 0x44, 0x51, - 0xc9, 0x3c, 0x13, 0x9a, 0x79, 0xa2, 0x92, 0x69, 0x8e, 0xeb, 0xa6, 0x89, 0xca, 0x66, 0x39, 0xae, - 0x9b, 0x25, 0x2a, 0x9b, 0xe4, 0xb8, 0x6e, 0x92, 0xa8, 0x6c, 0x8e, 0xe3, 0xba, 0x39, 0xa2, 0xb2, - 0x29, 0x7e, 0x1e, 0xe5, 0x15, 0xe1, 0x46, 0xbb, 0xd5, 0xa9, 0xb6, 0x6f, 0xa9, 0x22, 0x9c, 0x51, - 0xca, 0x87, 0xe4, 0xac, 0x39, 0x4d, 0x0a, 0x56, 0xb9, 0xe2, 0xd4, 0x56, 0xb0, 0x19, 0xa5, 0xb0, - 0x90, 0x10, 0x8e, 0x3f, 0x62, 0xee, 0x96, 0x6a, 0xc3, 0x19, 0xa5, 0xcc, 0x08, 0x97, 0xef, 0xca, - 0x9b, 0x5e, 0xb1, 0xbd, 0x12, 0xe5, 0x15, 0x1b, 0x53, 0xff, 0x61, 0x2b, 0xb6, 0xa9, 0x70, 0x95, - 0x0b, 0x65, 0x4f, 0x85, 0x2b, 0xbb, 0x6b, 0xd5, 0xe9, 0xb7, 0x82, 0x9b, 0x0a, 0x57, 0xad, 0x50, - 0xea, 0x1b, 0x5b, 0x6f, 0x31, 0x0f, 0x46, 0xc9, 0xc4, 0xc7, 0x83, 0x0f, 0x5b, 0x6f, 0xcd, 0x28, - 0xa9, 0xe4, 0xb0, 0x1e, 0x6c, 0x1c, 0xda, 0x83, 0x0f, 0x5b, 0x79, 0xcd, 0x28, 0xe9, 0xe5, 0xd0, - 0x1e, 0xfc, 0x26, 0xd4, 0x43, 0xcc, 0x83, 0x3d, 0xf5, 0x1f, 0xb6, 0x1e, 0x9a, 0x0a, 0x57, 0xb9, - 0xaf, 0x07, 0x1b, 0x87, 0xf0, 0xe0, 0x7e, 0xea, 0xa3, 0xa9, 0x70, 0xd5, 0xfa, 0x7b, 0xf0, 0x2d, - 0x57, 0x33, 0x9f, 0x8e, 0xc0, 0x28, 0x1a, 0xa6, 0x84, 0xf7, 0x79, 0x6a, 0x76, 0x8d, 0xe9, 0x71, - 0x46, 0xc9, 0x04, 0x01, 0xa6, 0x7e, 0xf5, 0xb5, 0x93, 0x9e, 0x86, 0x2f, 0x42, 0x82, 0x6a, 0x78, - 0x66, 0x26, 0x7b, 0x23, 0x12, 0x92, 0xe1, 0x12, 0x3b, 0x8c, 0xd4, 0x3c, 0xcd, 0x61, 0x68, 0xed, - 0xf9, 0x56, 0x44, 0xca, 0x72, 0x8c, 0xe4, 0xfc, 0x4c, 0xee, 0xc3, 0x44, 0x42, 0xe7, 0x96, 0x25, - 0x3c, 0xd7, 0x97, 0x84, 0x92, 0x6c, 0x77, 0x74, 0xc9, 0x26, 0x49, 0xd5, 0x81, 0x11, 0x04, 0x5b, - 0x25, 0x3f, 0xf0, 0xeb, 0x47, 0x24, 0x4a, 0xa3, 0xe5, 0x83, 0x19, 0xc5, 0x2d, 0x65, 0x84, 0x70, - 0x69, 0x35, 0x47, 0xe4, 0xea, 0x78, 0x58, 0x47, 0x19, 0x76, 0x2a, 0x68, 0x58, 0x2f, 0xb3, 0x8b, - 0x01, 0xa7, 0x82, 0x06, 0xf4, 0x62, 0x48, 0x0c, 0xf5, 0x02, 0x5f, 0x9c, 0xe9, 0xf3, 0x1e, 0x28, - 0x39, 0x44, 0x97, 0xe8, 0x63, 0x8b, 0xa9, 0x42, 0x0a, 0x0b, 0xf5, 0xf7, 0xaf, 0x9d, 0x8c, 0x6d, - 0x75, 0x90, 0xac, 0xd1, 0x7a, 0xcd, 0xbc, 0x06, 0xf1, 0xc7, 0xd9, 0xef, 0x6b, 0x30, 0xc1, 0x1c, - 0x23, 0xb8, 0x2f, 0x64, 0x8b, 0x89, 0xb0, 0x9e, 0xde, 0xaa, 0x3b, 0xed, 0xf3, 0xb3, 0x57, 0xd8, - 0x4f, 0x6d, 0x72, 0xff, 0x19, 0x80, 0x8e, 0xb9, 0x80, 0x7f, 0x1f, 0xb0, 0xca, 0x39, 0xd3, 0xa1, - 0xaf, 0x20, 0xae, 0x73, 0xfd, 0x70, 0xbd, 0xbf, 0x86, 0xd0, 0xf7, 0xe3, 0x8d, 0xb8, 0xe9, 0xc2, - 0x75, 0xd4, 0xce, 0xb9, 0x1f, 0xf0, 0x55, 0x8f, 0xcd, 0x2b, 0x2b, 0xcd, 0x2b, 0xa1, 0xcc, 0x69, - 0x51, 0x9d, 0xd3, 0xcc, 0xcd, 0xce, 0xe7, 0x05, 0xbe, 0x48, 0x68, 0x9a, 0x34, 0xc2, 0x34, 0x69, - 0xdc, 0xaa, 0x26, 0x0f, 0x78, 0x7e, 0xd4, 0xe6, 0x6a, 0xf4, 0x9a, 0xab, 0x71, 0x2b, 0x73, 0xfd, - 0x09, 0x8d, 0x56, 0x11, 0x4f, 0x5b, 0x0e, 0x7d, 0x5c, 0xee, 0x97, 0x6b, 0x2f, 0xe8, 0x0d, 0xad, - 0x02, 0xf2, 0xb1, 0x1b, 0x2f, 0x9e, 0x8c, 0xe4, 0x3e, 0x1d, 0xe5, 0x33, 0xa7, 0x81, 0x74, 0x73, - 0x33, 0xff, 0x65, 0xa9, 0xa9, 0xde, 0x0c, 0x0d, 0x7d, 0x2a, 0x02, 0xe3, 0x5d, 0x99, 0x9c, 0xaa, - 0xe9, 0x8d, 0x4d, 0xe7, 0xce, 0x61, 0xd3, 0x39, 0x13, 0xf0, 0x2b, 0x11, 0x18, 0xd3, 0xd2, 0x2b, - 0x15, 0xef, 0x9c, 0x26, 0xde, 0x6d, 0xdd, 0x23, 0x11, 0x42, 0x49, 0x3a, 0xd9, 0xbc, 0x1a, 0x40, - 0xe2, 0x2c, 0xec, 0x3e, 0xa7, 0xd9, 0xfd, 0xb8, 0x00, 0xf8, 0xa8, 0x8b, 0x7b, 0x00, 0x13, 0xbb, - 0x09, 0xb1, 0xcd, 0x96, 0x8d, 0xb7, 0x20, 0xa2, 0x6b, 0x2d, 0x26, 0x61, 0x9a, 0xe2, 0xd7, 0x5a, - 0x85, 0x56, 0xc5, 0xa9, 0xee, 0x59, 0xd1, 0x66, 0x0b, 0x2d, 0xb6, 0xc6, 0x3c, 0xfb, 0x21, 0x72, - 0x72, 0x76, 0x84, 0x12, 0xa0, 0x06, 0x46, 0x61, 0x54, 0x9c, 0x1a, 0x62, 0x11, 0x5b, 0xb6, 0x2b, - 0x3b, 0x4c, 0x08, 0xa0, 0x34, 0xb8, 0xc5, 0x8a, 0x35, 0xd0, 0xbf, 0x6c, 0xc0, 0x27, 0x21, 0xc1, - 0x19, 0x9b, 0x67, 0x30, 0x62, 0xa7, 0xcd, 0x86, 0x65, 0x08, 0x2c, 0x0e, 0x5b, 0xb9, 0x10, 0x6e, - 0xa7, 0x6d, 0x9e, 0x85, 0xb8, 0x55, 0xdf, 0xdd, 0x6b, 0xb3, 0xc1, 0xbb, 0xc9, 0xe2, 0x2d, 0xdc, - 0x9d, 0x7b, 0x0a, 0x86, 0x84, 0x44, 0x6f, 0x30, 0xeb, 0x05, 0x3a, 0x35, 0x74, 0x27, 0x2c, 0xad, - 0x27, 0x7c, 0xdf, 0x92, 0xfd, 0xc8, 0xf3, 0x14, 0x24, 0x90, 0x9a, 0xbd, 0xa4, 0xcf, 0x2b, 0x52, - 0x7c, 0x22, 0x4f, 0x5a, 0x73, 0xef, 0x8b, 0x40, 0x62, 0xc1, 0xb6, 0x0f, 0x88, 0xc2, 0xef, 0x86, - 0xd8, 0x42, 0xf3, 0x79, 0x87, 0x09, 0x38, 0xca, 0x34, 0x8a, 0xbb, 0x99, 0x4e, 0x63, 0x35, 0xd4, - 0x8d, 0xc8, 0x24, 0xbd, 0x1f, 0x15, 0x7a, 0x97, 0xe8, 0x88, 0xee, 0x73, 0x8a, 0xee, 0x99, 0x01, - 0x31, 0x51, 0x97, 0xfe, 0x2f, 0x43, 0x52, 0x1a, 0xc5, 0x9c, 0x64, 0x62, 0x44, 0x75, 0xa0, 0xac, - 0x2b, 0x2c, 0x49, 0xce, 0x86, 0x61, 0x65, 0x60, 0x0c, 0x95, 0x54, 0x1c, 0x00, 0x25, 0x6a, 0x9e, - 0x52, 0xd5, 0xec, 0x4f, 0xca, 0x54, 0x3d, 0x43, 0x75, 0x44, 0xd4, 0x7d, 0x86, 0x3a, 0x67, 0xb0, - 0x11, 0xdb, 0xe8, 0x7b, 0x2e, 0x0e, 0xc6, 0x6a, 0xbd, 0x91, 0x7b, 0x18, 0x80, 0x86, 0x3c, 0x7e, - 0xb8, 0x4a, 0x8b, 0xba, 0x34, 0x57, 0xf0, 0xe6, 0x9e, 0xbd, 0x89, 0xfe, 0x62, 0x12, 0xb5, 0x9e, - 0xc2, 0x09, 0x06, 0x68, 0x88, 0x11, 0xfc, 0xbd, 0xa1, 0x78, 0xdf, 0x4a, 0x0c, 0x93, 0x66, 0x29, - 0xe9, 0x53, 0x76, 0x7b, 0xde, 0x69, 0xb6, 0xf7, 0xec, 0x96, 0x86, 0x98, 0x35, 0x2f, 0x28, 0x01, - 0x9b, 0x9e, 0xbd, 0x43, 0x20, 0x02, 0x41, 0x17, 0x72, 0x5f, 0x24, 0x02, 0xe2, 0x52, 0xa0, 0x6b, - 0x82, 0x46, 0x1f, 0x13, 0x34, 0x2f, 0x29, 0xf5, 0x5b, 0x0f, 0x31, 0xb5, 0x5b, 0xcb, 0x07, 0x94, - 0xfb, 0x9c, 0xde, 0xc2, 0xaa, 0xf7, 0x98, 0x5c, 0xa7, 0x5c, 0xe4, 0x7b, 0x43, 0x45, 0x0e, 0xa8, - 0x6e, 0x0f, 0xab, 0x53, 0xa3, 0x5f, 0x9d, 0x7e, 0x4d, 0x54, 0x1c, 0xf4, 0xb7, 0xe0, 0xe4, 0x0d, - 0x02, 0xe6, 0x7d, 0xa1, 0xb6, 0xcf, 0x47, 0x8a, 0x42, 0xd4, 0xb9, 0x7e, 0xcd, 0x9f, 0x8f, 0x16, - 0x0a, 0x42, 0xdc, 0xcb, 0x87, 0x70, 0x81, 0x7c, 0xb4, 0x58, 0x14, 0x69, 0x3b, 0xf1, 0x41, 0x14, - 0xc5, 0x2f, 0xbf, 0x78, 0xf2, 0x48, 0xee, 0xf3, 0x48, 0x78, 0x46, 0x29, 0x39, 0xee, 0xfd, 0x9a, - 0xf0, 0xc7, 0x78, 0xce, 0xf0, 0xd3, 0xc0, 0x2f, 0xcc, 0x79, 0xbf, 0x11, 0x81, 0x6c, 0x97, 0xac, - 0x5c, 0xdf, 0x33, 0x7d, 0x89, 0x9c, 0x8f, 0x94, 0xde, 0x7a, 0x9d, 0x3f, 0x05, 0xf1, 0xcd, 0xfa, - 0xbe, 0xdd, 0xc2, 0x2b, 0x01, 0xfe, 0x42, 0x45, 0xe6, 0x87, 0x39, 0xf1, 0x36, 0x6e, 0xe2, 0x7d, - 0x54, 0x38, 0xa5, 0x0f, 0x9f, 0x27, 0xc4, 0x16, 0x2a, 0xed, 0x0a, 0x91, 0x20, 0x25, 0xf2, 0x2b, - 0x6a, 0xc9, 0x5d, 0x80, 0xd4, 0xca, 0x75, 0xf2, 0x14, 0x4a, 0x8d, 0x3c, 0xa0, 0xa1, 0x56, 0x7f, - 0xbc, 0x5e, 0x3d, 0x3f, 0x15, 0x4f, 0xd4, 0x32, 0x37, 0x22, 0xf9, 0x18, 0x91, 0xe7, 0x39, 0x48, - 0xaf, 0x61, 0xb1, 0x09, 0x8e, 0xc0, 0x4e, 0x41, 0x64, 0x45, 0x2d, 0x84, 0x64, 0xae, 0x56, 0x64, - 0x5f, 0x2b, 0x1f, 0x0d, 0xa1, 0x1e, 0xad, 0x6c, 0x33, 0x44, 0xd9, 0x36, 0x15, 0x4b, 0xa4, 0x33, - 0xa3, 0xe8, 0x5f, 0xc8, 0x0c, 0xb3, 0x71, 0xff, 0xca, 0x80, 0x0c, 0x2d, 0x75, 0x90, 0x11, 0xeb, - 0x4e, 0xbd, 0xdd, 0x5d, 0xaf, 0x0a, 0x89, 0xcd, 0x47, 0x61, 0x08, 0xab, 0x74, 0x91, 0xbd, 0x88, - 0x07, 0xab, 0xfe, 0x34, 0x2b, 0x51, 0x34, 0x16, 0xac, 0x81, 0xb8, 0x0e, 0x79, 0xe7, 0x0d, 0xc1, - 0xa0, 0x1b, 0x0c, 0x63, 0x75, 0x75, 0x85, 0x2d, 0x6e, 0x73, 0x3d, 0xa1, 0xec, 0x11, 0x18, 0x76, - 0xc5, 0xda, 0xdc, 0x5d, 0xcb, 0x70, 0x56, 0x57, 0x90, 0xdb, 0x44, 0x11, 0x1b, 0x5a, 0xf0, 0x9e, - 0xe9, 0x87, 0x8d, 0x15, 0x75, 0x56, 0x26, 0xfe, 0x2c, 0x02, 0xc3, 0x4a, 0x2b, 0x5a, 0x6d, 0x53, - 0xb4, 0x41, 0x9a, 0xee, 0x80, 0x95, 0x72, 0xa4, 0x36, 0x2e, 0x73, 0xf4, 0x16, 0x65, 0x9e, 0x98, - 0x47, 0x77, 0xed, 0x6a, 0xbb, 0x39, 0x0d, 0xa6, 0xdc, 0xc4, 0x84, 0xa0, 0x2f, 0x31, 0x31, 0x9d, - 0xae, 0x9e, 0xdc, 0x9d, 0x28, 0x0b, 0x0b, 0xbd, 0x8a, 0x77, 0x6f, 0xac, 0x96, 0x36, 0xf0, 0x6b, - 0x33, 0x22, 0xb9, 0xaf, 0x46, 0x20, 0xc9, 0xca, 0xd6, 0x6a, 0xf3, 0xc0, 0x36, 0x0b, 0x10, 0x99, - 0x67, 0x1e, 0x74, 0x73, 0x72, 0x47, 0x2a, 0x68, 0x75, 0x8a, 0x14, 0xfa, 0x37, 0x75, 0x64, 0xdb, - 0x9c, 0x85, 0x48, 0x91, 0x19, 0xb8, 0x3f, 0xcb, 0x44, 0xaa, 0xb9, 0x1f, 0x1b, 0x70, 0x54, 0x2e, - 0xa3, 0x79, 0x3e, 0x39, 0xad, 0xde, 0x37, 0xe5, 0x87, 0xce, 0xcf, 0x5e, 0x98, 0x9b, 0xc6, 0xff, - 0x08, 0x97, 0x3c, 0xad, 0xde, 0x42, 0x75, 0x93, 0x74, 0x3d, 0x26, 0x92, 0x8f, 0x49, 0xbd, 0x5d, - 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x47, - 0x01, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xf7, 0x63, 0x22, - 0xac, 0x3b, 0xf0, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x91, 0x3c, - 0xaa, 0xcf, 0x3a, 0x76, 0xf0, 0xa1, 0x83, 0x8a, 0xef, 0x75, 0x0f, 0xe8, 0x25, 0xe0, 0x35, 0x18, - 0xa1, 0xfb, 0x11, 0x45, 0xfc, 0x84, 0x56, 0xdd, 0x41, 0xa9, 0xf8, 0x21, 0x48, 0xd1, 0x26, 0x7a, - 0x97, 0xe3, 0x77, 0x17, 0x48, 0xfb, 0x59, 0xba, 0x4d, 0x55, 0x25, 0xea, 0xdc, 0xcf, 0x63, 0x30, - 0x4e, 0xbb, 0xf1, 0xcf, 0x08, 0x95, 0x87, 0x8c, 0xce, 0x6a, 0x47, 0x4a, 0x69, 0x0c, 0xff, 0xee, - 0x6b, 0x27, 0x69, 0xeb, 0xbc, 0x70, 0xa6, 0xb3, 0xda, 0xe1, 0x92, 0x4a, 0xe7, 0xad, 0x3f, 0x67, - 0xb5, 0x07, 0x8f, 0x54, 0x3a, 0xb1, 0xdc, 0x08, 0x3a, 0xfe, 0x08, 0x92, 0x4a, 0xb7, 0x20, 0xbc, - 0xec, 0xac, 0xf6, 0x30, 0x92, 0x4a, 0x57, 0x12, 0xfe, 0x76, 0x56, 0x3b, 0x7a, 0x52, 0xe9, 0x16, - 0x85, 0xe7, 0x9d, 0xd5, 0x0e, 0xa1, 0x54, 0xba, 0xab, 0xc2, 0x07, 0xcf, 0x6a, 0x8f, 0x2a, 0xa9, - 0x74, 0x8f, 0x09, 0x6f, 0x3c, 0xab, 0x3d, 0xb4, 0xa4, 0xd2, 0x2d, 0x09, 0xbf, 0x9c, 0xd4, 0x1f, - 0x5f, 0x52, 0x09, 0xaf, 0x79, 0x1e, 0x3a, 0xa9, 0x3f, 0xc8, 0xa4, 0x52, 0xbe, 0xd3, 0xf3, 0xd5, - 0x49, 0xfd, 0x91, 0x26, 0x95, 0x72, 0xd9, 0xf3, 0xda, 0x49, 0xfd, 0xa8, 0x4c, 0xa5, 0x5c, 0xf1, - 0xfc, 0x77, 0x52, 0x3f, 0x34, 0x53, 0x29, 0x57, 0x3d, 0x4f, 0x9e, 0xd4, 0x8f, 0xcf, 0x54, 0xca, - 0x35, 0x6f, 0x0f, 0xfd, 0xeb, 0x9a, 0xfb, 0x49, 0x0f, 0x41, 0xe5, 0x34, 0xf7, 0x03, 0x1f, 0xd7, - 0xcb, 0x69, 0xae, 0x07, 0x3e, 0x6e, 0x97, 0xd3, 0xdc, 0x0e, 0x7c, 0x5c, 0x2e, 0xa7, 0xb9, 0x1c, - 0xf8, 0xb8, 0x5b, 0x4e, 0x73, 0x37, 0xf0, 0x71, 0xb5, 0x9c, 0xe6, 0x6a, 0xe0, 0xe3, 0x66, 0x39, - 0xcd, 0xcd, 0xc0, 0xc7, 0xc5, 0x72, 0x9a, 0x8b, 0x81, 0x8f, 0x7b, 0xe5, 0x34, 0xf7, 0x02, 0x1f, - 0xd7, 0x3a, 0xa3, 0xbb, 0x16, 0xf8, 0xb9, 0xd5, 0x19, 0xdd, 0xad, 0xc0, 0xcf, 0xa5, 0xee, 0xd2, - 0x5d, 0x6a, 0x08, 0x51, 0xc5, 0x71, 0x93, 0xe4, 0x4d, 0x67, 0x74, 0x6f, 0x02, 0x3f, 0x4f, 0x3a, - 0xa3, 0x7b, 0x12, 0xf8, 0x79, 0xd1, 0x19, 0xdd, 0x8b, 0xc0, 0xcf, 0x83, 0x5e, 0xd1, 0x3d, 0xc8, - 0x7b, 0xc4, 0x27, 0xa7, 0x9d, 0x28, 0x86, 0x79, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, - 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, - 0x07, 0x19, 0xfd, 0x78, 0x90, 0xd1, 0x97, 0x07, 0x19, 0x41, 0x1e, 0x74, 0x46, 0x7f, 0xe0, 0x01, - 0xfc, 0x12, 0xd2, 0x19, 0xfd, 0xe4, 0x33, 0xdc, 0x85, 0x8c, 0xbe, 0x5c, 0xc8, 0x08, 0x72, 0xa1, - 0xaf, 0xa3, 0x42, 0x4a, 0x71, 0x21, 0x76, 0x3c, 0xf4, 0x46, 0x65, 0xa0, 0x4b, 0x7d, 0x3c, 0x5f, - 0xe1, 0xe7, 0x53, 0x97, 0xfa, 0x38, 0xa3, 0xee, 0xe5, 0x67, 0xdd, 0x59, 0xa8, 0xd4, 0x47, 0x16, - 0x5a, 0x14, 0x3e, 0x74, 0xa9, 0x8f, 0xe7, 0x2e, 0xba, 0x7d, 0xef, 0x4a, 0xaf, 0x24, 0xf0, 0x58, - 0x5f, 0x49, 0x60, 0xa9, 0xaf, 0x24, 0x70, 0xcd, 0xb3, 0xe0, 0x07, 0xa2, 0x30, 0xe6, 0x59, 0x90, - 0x7e, 0x23, 0xaf, 0x50, 0xc9, 0x49, 0x27, 0x54, 0x26, 0x3f, 0xb5, 0x91, 0xcc, 0x88, 0xcf, 0x6f, - 0xd6, 0xd5, 0xb3, 0xaa, 0xfc, 0x61, 0xcf, 0x6f, 0x24, 0x8b, 0xb3, 0xbd, 0xd0, 0x33, 0x60, 0x2c, - 0xd5, 0x5c, 0x92, 0x2d, 0xfc, 0x86, 0x2d, 0x5a, 0x46, 0xbd, 0xe6, 0x9a, 0x16, 0x0c, 0x90, 0x71, - 0x5d, 0x62, 0xde, 0x5b, 0x19, 0x18, 0x99, 0x9e, 0x0c, 0xec, 0xe6, 0x5e, 0x89, 0xc0, 0x29, 0xc5, - 0x95, 0xdf, 0x98, 0x13, 0x83, 0x07, 0xfb, 0x3a, 0x31, 0x50, 0x02, 0xc4, 0x3b, 0x3d, 0xb8, 0xa7, - 0xfb, 0xa0, 0x5a, 0x8e, 0x12, 0xfd, 0x24, 0xe1, 0xbf, 0x41, 0xda, 0x9b, 0x01, 0xb9, 0x65, 0xbb, - 0x18, 0xbe, 0x99, 0xe9, 0x17, 0x9a, 0x17, 0xb5, 0x4d, 0xb4, 0x9e, 0x30, 0x11, 0xad, 0xb9, 0x3c, - 0xba, 0xe3, 0x54, 0x7f, 0x0e, 0x13, 0xb6, 0x17, 0x91, 0xc0, 0xa5, 0xf9, 0x8d, 0x97, 0x50, 0x79, - 0x7e, 0x1f, 0xa4, 0xe4, 0x5f, 0xbc, 0x68, 0xc0, 0x21, 0x0e, 0xcc, 0xc7, 0x5e, 0xc5, 0xd4, 0xbf, - 0x11, 0x81, 0x63, 0x32, 0xf9, 0x13, 0xc8, 0xf6, 0x4b, 0x0e, 0xae, 0xe9, 0x1f, 0x86, 0x84, 0xcd, - 0x0c, 0xc7, 0x5e, 0xbb, 0xc1, 0x6e, 0x23, 0x7d, 0xc9, 0xa7, 0xc9, 0xbf, 0x96, 0x80, 0x68, 0x5b, - 0x1c, 0x7c, 0xd8, 0xd9, 0x89, 0xbb, 0x21, 0x4e, 0xf9, 0xab, 0x72, 0x0d, 0x6b, 0x72, 0x7d, 0xd6, - 0x47, 0x2e, 0xe2, 0x47, 0xe6, 0x35, 0x45, 0x2e, 0xe9, 0x6e, 0xd5, 0x97, 0x7c, 0x9a, 0x3b, 0x5f, - 0x21, 0x81, 0xeb, 0x3f, 0xe2, 0x51, 0xe1, 0x42, 0x4e, 0x42, 0xa2, 0xa4, 0xd3, 0xf8, 0xcb, 0xb9, - 0x00, 0xb1, 0x55, 0xfc, 0x36, 0xb1, 0x31, 0xf6, 0xf6, 0x4c, 0xa6, 0x64, 0xf6, 0x86, 0xd6, 0xb3, - 0x90, 0x28, 0xee, 0xd5, 0x1b, 0xb5, 0x96, 0xed, 0xb0, 0x23, 0x7b, 0xb6, 0x83, 0x8e, 0x31, 0x56, - 0xa2, 0xca, 0xfa, 0xa6, 0x72, 0x90, 0x94, 0x5c, 0xc2, 0x8c, 0xa3, 0xdb, 0xff, 0xcc, 0x11, 0xfc, - 0xa7, 0x90, 0x89, 0xe0, 0x3f, 0xc5, 0x4c, 0x74, 0xea, 0x6e, 0x18, 0xd1, 0x36, 0xc8, 0x70, 0xcf, - 0x42, 0x06, 0xf0, 0x9f, 0x52, 0x26, 0x39, 0x11, 0xfb, 0xe0, 0x6f, 0x9d, 0x38, 0x32, 0xf5, 0x20, - 0x98, 0xdd, 0x5b, 0x69, 0xe6, 0x00, 0x44, 0xe7, 0x31, 0xcb, 0xdb, 0x20, 0x5a, 0x40, 0x3c, 0x27, - 0x46, 0xfe, 0xf7, 0x27, 0x4f, 0x25, 0x0b, 0xe4, 0x07, 0xa3, 0x88, 0xba, 0x50, 0x60, 0xe0, 0x47, - 0xe0, 0x98, 0xef, 0x56, 0x1c, 0xc6, 0x17, 0x8b, 0x14, 0xbf, 0xb0, 0xd0, 0x85, 0x5f, 0x58, 0x20, - 0xf8, 0x48, 0x9e, 0x1f, 0x69, 0xce, 0x9b, 0x3e, 0x1b, 0x5f, 0xd9, 0x9a, 0x74, 0x84, 0x3a, 0x9f, - 0x7f, 0x84, 0xd1, 0x16, 0x7c, 0x69, 0xed, 0x90, 0x23, 0xd1, 0x42, 0xbe, 0xc8, 0xf0, 0x45, 0x5f, - 0xfc, 0x8e, 0x76, 0x6e, 0xa7, 0xe6, 0x20, 0xc6, 0xa4, 0x28, 0x04, 0x5e, 0xf0, 0x65, 0xb2, 0x27, - 0x3d, 0x4d, 0xbd, 0x20, 0x04, 0x2e, 0xf9, 0xd2, 0xd6, 0x43, 0x9e, 0x2a, 0x2a, 0xe5, 0xcf, 0xb1, - 0x65, 0x64, 0xfe, 0xbc, 0x79, 0x8c, 0x7b, 0x81, 0x12, 0xe3, 0x4c, 0x41, 0x74, 0x45, 0x99, 0x3f, - 0x8f, 0x66, 0x48, 0x01, 0x85, 0x40, 0x40, 0xb0, 0x96, 0x28, 0x93, 0xc2, 0xf9, 0xfc, 0x63, 0x8c, - 0x49, 0x31, 0x90, 0x49, 0x88, 0xaa, 0x28, 0xa7, 0xe2, 0xf9, 0xc2, 0xe6, 0x8d, 0xef, 0x9c, 0x38, - 0xf2, 0x2a, 0xfa, 0xfc, 0x1d, 0xfa, 0x7c, 0xfb, 0x3b, 0x27, 0x22, 0x3f, 0x40, 0x9f, 0x1f, 0xa1, - 0xcf, 0x4f, 0xd1, 0xe7, 0xbd, 0xdf, 0x3d, 0x11, 0x79, 0x19, 0x7d, 0xbe, 0x88, 0x3e, 0x7f, 0x8c, - 0x3e, 0xaf, 0xa0, 0xcf, 0x0d, 0xf4, 0x79, 0x15, 0x7d, 0xbe, 0x8d, 0x3e, 0x3f, 0xf8, 0xee, 0x89, - 0x23, 0x3f, 0x42, 0x7f, 0x7f, 0x8a, 0xfe, 0xbe, 0xf7, 0x7b, 0x27, 0x8e, 0xbc, 0x88, 0x3e, 0x2f, - 0x7f, 0xef, 0x44, 0x04, 0xfe, 0x74, 0x0e, 0xee, 0xd0, 0x7e, 0xaa, 0x44, 0xd6, 0x9b, 0x0b, 0xfc, - 0xd5, 0x32, 0xa2, 0xe1, 0x90, 0xbf, 0x58, 0x9a, 0xb8, 0xd9, 0xdf, 0x47, 0xe5, 0xfe, 0x3c, 0x0e, - 0x83, 0x7c, 0x9f, 0xd1, 0xef, 0xad, 0xa5, 0x17, 0x21, 0x81, 0x02, 0xb7, 0xd2, 0xaa, 0xb7, 0xaf, - 0xb3, 0x0d, 0xb6, 0xdb, 0xa7, 0x3d, 0xb1, 0xf9, 0x96, 0xdc, 0x63, 0x9d, 0xfd, 0x66, 0x07, 0x65, - 0x44, 0x4e, 0x6a, 0x9e, 0x82, 0xd4, 0x9e, 0x8d, 0x0f, 0xd8, 0xca, 0x75, 0xa7, 0x5c, 0xdd, 0x27, - 0x85, 0xd8, 0xb0, 0x05, 0xb4, 0x6d, 0xc9, 0x29, 0xee, 0xe3, 0xc1, 0xf0, 0x3e, 0x34, 0xb9, 0x01, - 0x4c, 0xd1, 0x3d, 0x69, 0xfc, 0xce, 0xa4, 0x96, 0xed, 0xe2, 0x57, 0x2d, 0x57, 0x9b, 0x1d, 0xa7, - 0x4d, 0x4a, 0x25, 0xc3, 0x4a, 0xd2, 0xb6, 0x22, 0x6e, 0xc2, 0xaf, 0x63, 0xc6, 0xbb, 0x3c, 0x65, - 0xb7, 0xda, 0x6c, 0xbb, 0xfb, 0x15, 0x87, 0x94, 0x4a, 0x09, 0x2b, 0x85, 0x1b, 0x37, 0x58, 0x1b, - 0x79, 0xb9, 0x75, 0xb5, 0xd9, 0xb2, 0xc9, 0x9d, 0x5a, 0xd4, 0xa2, 0x17, 0xf8, 0xe5, 0xd6, 0xcf, - 0xda, 0xd7, 0xc9, 0xbd, 0x40, 0xcc, 0xc2, 0x5f, 0xf1, 0x09, 0x11, 0xdd, 0xbf, 0x24, 0x85, 0x1b, - 0x39, 0x16, 0x15, 0x53, 0xa3, 0xdb, 0x7f, 0x16, 0x23, 0xc0, 0xaf, 0x89, 0x45, 0xf1, 0xdf, 0xaa, - 0xd4, 0x1d, 0x52, 0x97, 0xe3, 0xd7, 0xc4, 0x76, 0xab, 0x61, 0x93, 0x52, 0x90, 0x37, 0x0b, 0x5a, - 0x9c, 0x1e, 0xa9, 0x30, 0x45, 0xe8, 0x66, 0xcb, 0xf4, 0xdd, 0xf0, 0xc9, 0x40, 0x47, 0x4e, 0x52, - 0x3a, 0xbe, 0x0b, 0xcd, 0x61, 0xf4, 0x7d, 0x54, 0xc3, 0x64, 0xd8, 0xbb, 0x7c, 0x86, 0x25, 0x3f, - 0x93, 0x9b, 0x25, 0xb5, 0x0d, 0x1d, 0x9a, 0xf1, 0xa1, 0x6f, 0xac, 0x5a, 0x81, 0x94, 0x2c, 0x17, - 0x57, 0x03, 0x5d, 0x59, 0x89, 0x1a, 0xee, 0xf1, 0x5e, 0x38, 0x1c, 0xa0, 0x05, 0xda, 0x9f, 0x8f, - 0x5e, 0x89, 0x4c, 0xac, 0x43, 0x46, 0x1f, 0xcf, 0x87, 0xe5, 0x59, 0x95, 0x65, 0x46, 0x9e, 0x2c, - 0xd9, 0x83, 0xf5, 0x38, 0xe6, 0x1e, 0x85, 0x01, 0xea, 0x3f, 0x66, 0x12, 0x06, 0xb7, 0x56, 0xdf, - 0xb9, 0xba, 0xf6, 0xc4, 0x2a, 0x7d, 0x67, 0xdf, 0xfa, 0xd6, 0xea, 0x06, 0x7d, 0xf3, 0xde, 0xc6, - 0xf2, 0xfc, 0xfa, 0xc6, 0xe6, 0x52, 0xf1, 0x9d, 0x99, 0x28, 0xde, 0x51, 0x2e, 0x2c, 0x2d, 0x2f, - 0x97, 0x0b, 0xf3, 0x4b, 0xcb, 0xa5, 0xa7, 0x32, 0x46, 0xee, 0x04, 0x0c, 0x50, 0x39, 0xb1, 0xe1, - 0xb7, 0x3b, 0x8e, 0x73, 0x9d, 0xaf, 0x4c, 0xe4, 0x22, 0xf7, 0x65, 0x13, 0x06, 0xe7, 0x1b, 0x0d, - 0x14, 0xff, 0xae, 0xf9, 0x04, 0x8c, 0xd2, 0x9f, 0xfb, 0x6f, 0x36, 0x17, 0xc8, 0x2b, 0xc2, 0x70, - 0x56, 0x88, 0xb0, 0x17, 0x2d, 0x7b, 0xf3, 0x66, 0xe4, 0xd3, 0x5d, 0xb4, 0x54, 0xc1, 0xa3, 0xae, - 0xde, 0x6e, 0x6e, 0x42, 0x86, 0x13, 0x2f, 0x36, 0x9a, 0x95, 0x36, 0xe6, 0x1b, 0x65, 0x6f, 0xf0, - 0x0a, 0xe6, 0xcb, 0x49, 0x29, 0xdb, 0x8c, 0xab, 0x35, 0x9b, 0x0f, 0x41, 0x62, 0xc9, 0x69, 0x5f, - 0x98, 0xc5, 0xdc, 0xf8, 0xbb, 0xfc, 0xbb, 0xb9, 0x71, 0x12, 0xca, 0x25, 0x51, 0x67, 0x97, 0x0c, - 0x7d, 0x69, 0x0e, 0xa3, 0x63, 0xbd, 0xd0, 0x84, 0xc4, 0x43, 0x93, 0x4b, 0x7c, 0x8e, 0xb2, 0xc5, - 0x59, 0xb1, 0xd7, 0xf7, 0x9f, 0xf6, 0x81, 0x0b, 0x1a, 0x8a, 0x1f, 0xea, 0x88, 0xe1, 0x19, 0x03, - 0x3a, 0xfe, 0x40, 0x4f, 0x06, 0x92, 0x00, 0x84, 0x81, 0x90, 0x60, 0x43, 0x48, 0x30, 0x18, 0xc8, - 0x60, 0x43, 0x93, 0xc0, 0x95, 0x25, 0xd8, 0x10, 0x12, 0x24, 0x7a, 0x32, 0x90, 0x25, 0x70, 0x85, - 0x04, 0x05, 0x80, 0xc5, 0xfa, 0x0b, 0x76, 0x8d, 0x8a, 0x40, 0xdf, 0xf4, 0x9f, 0xf3, 0xe1, 0xe0, - 0x11, 0x51, 0x16, 0xb0, 0x23, 0x1a, 0xcc, 0x12, 0x24, 0x37, 0xbc, 0x4b, 0x96, 0x3e, 0xee, 0xf2, - 0x13, 0x63, 0x47, 0xe3, 0x92, 0x74, 0x25, 0x36, 0x5c, 0x14, 0x3a, 0x99, 0x64, 0x6f, 0x51, 0xa4, - 0xd9, 0x50, 0x51, 0xe8, 0x74, 0x84, 0x28, 0x94, 0x49, 0x2a, 0x44, 0x14, 0x89, 0x0b, 0x13, 0x85, - 0xb2, 0x41, 0xc9, 0xb0, 0xd0, 0x6c, 0x62, 0x4a, 0x96, 0x95, 0x4e, 0xfa, 0xb0, 0x60, 0x14, 0x2c, - 0x19, 0x6e, 0xd3, 0x2b, 0x62, 0x11, 0xe2, 0xe4, 0x18, 0x9c, 0x0e, 0xb6, 0x08, 0xa7, 0xe1, 0x16, - 0xe1, 0xd7, 0x72, 0x9c, 0x91, 0x67, 0x25, 0x31, 0x9f, 0x91, 0xd0, 0x38, 0xe3, 0xa4, 0x5a, 0x9c, - 0xf1, 0x66, 0xf3, 0x5d, 0x30, 0xc2, 0x49, 0x71, 0x7a, 0xc2, 0x4c, 0x33, 0xec, 0xff, 0x85, 0x12, - 0xcc, 0x94, 0x51, 0x52, 0x9e, 0x23, 0xae, 0xda, 0x6a, 0xae, 0x42, 0x9a, 0x13, 0xae, 0xb8, 0x64, - 0xba, 0xa3, 0xec, 0x05, 0xe5, 0xc1, 0x1c, 0x29, 0x21, 0x65, 0x98, 0x76, 0x95, 0xc6, 0x89, 0x05, - 0x18, 0xf7, 0xcf, 0x46, 0x72, 0xfa, 0x1d, 0xa2, 0xe9, 0x77, 0x4c, 0x4e, 0xbf, 0x11, 0x39, 0x7d, - 0x17, 0xe1, 0x98, 0x6f, 0xee, 0x09, 0x63, 0x12, 0x95, 0x99, 0x3c, 0x08, 0xc3, 0x4a, 0xca, 0x91, - 0xc1, 0x71, 0x1f, 0x70, 0xbc, 0x1b, 0xec, 0xb9, 0x96, 0xcf, 0xea, 0xa1, 0x80, 0x0d, 0x19, 0xfc, - 0x10, 0xa4, 0xd5, 0x7c, 0x23, 0xa3, 0x87, 0x7d, 0xd0, 0xc3, 0x3e, 0x68, 0xff, 0xb1, 0x63, 0x3e, - 0xe8, 0x98, 0x86, 0xde, 0x08, 0x1c, 0x7b, 0xd4, 0x07, 0x3d, 0xea, 0x83, 0xf6, 0x1f, 0xdb, 0xf4, - 0x41, 0x9b, 0x32, 0xfa, 0x61, 0x18, 0xd1, 0x52, 0x8c, 0x0c, 0x1f, 0xf4, 0x81, 0x0f, 0xca, 0xf0, - 0x47, 0x50, 0xd0, 0xec, 0x04, 0xe3, 0x47, 0x7c, 0xf0, 0x23, 0x7e, 0xc3, 0xfb, 0x4b, 0x3f, 0xe0, - 0x03, 0x1f, 0xf0, 0x1d, 0xde, 0x1f, 0x9f, 0xf1, 0xc1, 0x67, 0x64, 0x7c, 0x1e, 0x52, 0x72, 0x36, - 0x91, 0xb1, 0x09, 0x1f, 0x6c, 0x42, 0xd7, 0xbb, 0x92, 0x4c, 0xc2, 0x3c, 0x7d, 0x28, 0x20, 0x5c, - 0x94, 0x14, 0x12, 0xc6, 0x24, 0x25, 0x33, 0x79, 0x1c, 0xc6, 0xfc, 0x52, 0x86, 0x0f, 0x8f, 0x49, - 0x99, 0x47, 0x1a, 0xd7, 0x88, 0x5e, 0xb1, 0x57, 0x39, 0xd0, 0x0a, 0xa7, 0x89, 0xa7, 0xe1, 0xa8, - 0x4f, 0xe2, 0xf0, 0x61, 0x3b, 0xad, 0x56, 0x63, 0x59, 0x89, 0x2d, 0x49, 0x02, 0x88, 0xc5, 0x7a, - 0x13, 0x39, 0xa7, 0x5c, 0x95, 0x7d, 0xf5, 0x28, 0xa4, 0x59, 0x7a, 0x5a, 0x6b, 0xd5, 0xec, 0x16, - 0xaa, 0xae, 0xfe, 0x4b, 0x70, 0xed, 0x34, 0xd3, 0x9d, 0xd4, 0x18, 0xea, 0x10, 0x25, 0xd4, 0xd3, - 0x81, 0x25, 0xd4, 0xb9, 0x70, 0xf6, 0x61, 0x95, 0x54, 0xb1, 0xab, 0x92, 0xba, 0x27, 0x98, 0x69, - 0x50, 0x41, 0x55, 0xec, 0x2a, 0xa8, 0x7a, 0x33, 0xf1, 0xad, 0xab, 0x16, 0xbb, 0xeb, 0xaa, 0xc9, - 0x60, 0x2e, 0xc1, 0xe5, 0xd5, 0x62, 0x77, 0x79, 0x15, 0xc2, 0xc7, 0xbf, 0xca, 0x5a, 0xec, 0xae, - 0xb2, 0x7a, 0xf0, 0x09, 0x2e, 0xb6, 0x16, 0xbb, 0x8b, 0xad, 0x10, 0x3e, 0xfe, 0x35, 0xd7, 0x92, - 0x4f, 0xcd, 0x75, 0x6f, 0x30, 0xa3, 0x5e, 0xa5, 0xd7, 0xb2, 0x5f, 0xe9, 0x35, 0xd5, 0x43, 0xa8, - 0x9e, 0x15, 0xd8, 0x92, 0x4f, 0x05, 0x16, 0x26, 0x58, 0x40, 0x21, 0xb6, 0xec, 0x57, 0x88, 0x85, - 0x0a, 0x16, 0x54, 0x8f, 0xfd, 0x27, 0xbd, 0x1e, 0x3b, 0x1b, 0xcc, 0xc9, 0xbf, 0x2c, 0x5b, 0xec, - 0x2e, 0xcb, 0x26, 0xc3, 0x62, 0xce, 0xaf, 0x3a, 0x7b, 0x3a, 0xb0, 0x3a, 0xeb, 0x23, 0x84, 0xc3, - 0x8a, 0xb4, 0x27, 0x83, 0x8a, 0xb4, 0xe9, 0x70, 0xde, 0xbd, 0x6b, 0xb5, 0xad, 0x80, 0x5a, 0xed, - 0xfe, 0x70, 0xc6, 0x6f, 0x97, 0x6c, 0x6f, 0x97, 0x6c, 0x6f, 0x97, 0x6c, 0x6f, 0x97, 0x6c, 0x6f, - 0x7d, 0xc9, 0x96, 0x8f, 0x7d, 0xe4, 0xa5, 0x93, 0x91, 0xdc, 0xdf, 0x1a, 0xe2, 0x7f, 0xda, 0x82, - 0x4f, 0x86, 0x70, 0x7a, 0x5b, 0x81, 0x14, 0x79, 0x51, 0xfd, 0x7e, 0xe5, 0xe0, 0x00, 0xff, 0xaf, - 0x9c, 0x22, 0x5d, 0xcb, 0x8d, 0x0a, 0x20, 0xaf, 0xfa, 0x5f, 0xa1, 0xc4, 0x6c, 0xb9, 0x71, 0xbc, - 0x16, 0xf3, 0x1a, 0x24, 0xf7, 0xdd, 0x5d, 0xc1, 0x2d, 0xda, 0xb5, 0x10, 0x6a, 0xdc, 0xe8, 0x4c, - 0x3d, 0x66, 0xb0, 0x2f, 0x1a, 0xb0, 0x68, 0xdb, 0xc8, 0x4a, 0x82, 0x99, 0x11, 0x26, 0x1a, 0xb6, - 0xa9, 0x2a, 0xda, 0xb6, 0xd7, 0x82, 0xdd, 0x56, 0x97, 0x3d, 0x2c, 0xd3, 0x29, 0xce, 0xf3, 0x04, - 0x8c, 0x68, 0xd2, 0xfa, 0xc4, 0xfc, 0x4d, 0xd8, 0x06, 0x0b, 0xa6, 0x4b, 0x1e, 0x16, 0x13, 0xb2, - 0x43, 0xe6, 0xee, 0x84, 0x61, 0x85, 0xb7, 0x99, 0x82, 0xc8, 0x0e, 0xfb, 0xa1, 0x5e, 0x64, 0x07, - 0xff, 0x36, 0x3a, 0xc9, 0x4e, 0xa9, 0xd7, 0x2b, 0xf5, 0x96, 0xf9, 0x18, 0x90, 0x9f, 0xc2, 0xb0, - 0x93, 0xf8, 0x9b, 0xfb, 0x61, 0x26, 0xfd, 0x31, 0xcd, 0x22, 0xd0, 0x5f, 0xca, 0xdc, 0xfc, 0x2f, - 0x4b, 0xe9, 0x0f, 0x6d, 0x6e, 0x44, 0x60, 0x94, 0x3d, 0x44, 0xe9, 0xb2, 0x47, 0x6b, 0xd1, 0x0a, - 0xf9, 0xe5, 0x08, 0x0c, 0x89, 0x2b, 0x73, 0x1b, 0xd2, 0xe2, 0x82, 0x3e, 0xbe, 0x4d, 0x3d, 0x35, - 0x2f, 0x69, 0xb8, 0x8b, 0xc7, 0xb4, 0xcf, 0x37, 0x7a, 0x76, 0x45, 0xd7, 0x64, 0x47, 0x69, 0x9c, - 0x98, 0x87, 0xa3, 0x3e, 0x64, 0x87, 0x59, 0x90, 0xa7, 0x4e, 0xc3, 0x20, 0x0b, 0x6d, 0x7c, 0x56, - 0xb8, 0x82, 0xcf, 0x1a, 0xf1, 0x5f, 0x7c, 0x7e, 0x89, 0xff, 0x16, 0x33, 0xd1, 0xc2, 0xf2, 0x1b, - 0x79, 0x7e, 0xb4, 0x3d, 0x40, 0xe7, 0xfe, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x20, 0xbc, 0x9d, - 0x4f, 0x73, 0x79, 0x00, 0x00, + // 7833 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, + 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, + 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, + 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, + 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x2a, 0x4e, 0xe2, + 0x24, 0xde, 0xac, 0xab, 0x76, 0xab, 0xbc, 0x0f, 0x5b, 0xe7, 0xd6, 0xdd, 0xe7, 0xa0, 0x81, 0x06, + 0x47, 0x92, 0xed, 0x07, 0xbd, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, + 0xd3, 0x0d, 0x10, 0xbe, 0xb7, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, + 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, + 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, + 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, + 0x49, 0x02, 0x2d, 0x89, 0x88, 0x5d, 0x3c, 0x6c, 0x10, 0x44, 0xee, 0xfb, 0x49, 0x98, 0x8e, 0x98, + 0xd5, 0x75, 0x48, 0xda, 0x66, 0x13, 0x33, 0x2a, 0x0b, 0x63, 0x06, 0xf9, 0xac, 0x67, 0x61, 0xb4, + 0x65, 0xd6, 0x5e, 0x35, 0x8f, 0x51, 0x36, 0x41, 0x86, 0xf9, 0xa1, 0x3e, 0x07, 0x50, 0x47, 0x2d, + 0x64, 0xd7, 0x91, 0x5d, 0x3b, 0xcd, 0xaa, 0x17, 0xd4, 0x85, 0x31, 0x23, 0x34, 0xa2, 0x7f, 0x04, + 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x86, 0xc4, 0xe0, 0x82, 0xba, 0x30, 0x6c, 0x68, 0x74, + 0x62, 0x3d, 0x10, 0x7e, 0x1a, 0x26, 0x5f, 0x47, 0xe6, 0xab, 0x61, 0xd1, 0x34, 0x11, 0x9d, 0xc0, + 0xc3, 0x21, 0xc1, 0x12, 0x64, 0x9a, 0xc8, 0x75, 0xcd, 0x63, 0x54, 0xf5, 0x4e, 0x5b, 0x28, 0x9b, + 0x24, 0x57, 0x7f, 0xa1, 0xeb, 0xea, 0xe5, 0x2b, 0x4f, 0x33, 0xd4, 0xfe, 0x69, 0x0b, 0xe9, 0x05, + 0x18, 0x43, 0x76, 0xa7, 0x49, 0x19, 0x86, 0x7b, 0xd8, 0xaf, 0x6c, 0x77, 0x9a, 0x32, 0x4b, 0x0a, + 0xc3, 0x18, 0xc5, 0xa8, 0x8b, 0xda, 0xaf, 0x59, 0x35, 0x94, 0x1d, 0x21, 0x04, 0x4f, 0x77, 0x11, + 0xec, 0xd1, 0x79, 0x99, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, + 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0xba, 0x4c, 0x11, 0xe0, 0xf4, 0xeb, 0x30, + 0xea, 0xb4, 0x3c, 0xcb, 0xb1, 0xdd, 0x6c, 0xea, 0x82, 0xb2, 0x90, 0x5e, 0x39, 0x1f, 0x19, 0x08, + 0x3b, 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x26, 0x68, 0xae, 0xd3, 0x69, 0xd7, 0x50, 0xb5, 0xe6, 0xd4, + 0x51, 0xd5, 0xb2, 0x8f, 0x9c, 0xec, 0x18, 0x21, 0x98, 0xef, 0xbe, 0x10, 0x22, 0x58, 0x72, 0xea, + 0x68, 0xd3, 0x3e, 0x72, 0x8c, 0x09, 0x57, 0x38, 0xd6, 0x67, 0x60, 0xc4, 0x3d, 0xb5, 0x3d, 0xf3, + 0x8d, 0x6c, 0x86, 0x44, 0x08, 0x3b, 0xca, 0xfd, 0xc9, 0x30, 0x4c, 0x0e, 0x12, 0x62, 0xb7, 0x61, + 0xf8, 0x08, 0x5f, 0x65, 0x36, 0x71, 0x16, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x91, 0x87, 0x34, 0x62, + 0x01, 0xd2, 0x36, 0x72, 0x3d, 0x54, 0xa7, 0x11, 0xa1, 0x0e, 0x18, 0x53, 0x40, 0x41, 0xdd, 0x21, + 0x95, 0x7c, 0xa8, 0x90, 0x7a, 0x19, 0x26, 0x7d, 0x95, 0xaa, 0x6d, 0xd3, 0x3e, 0xe6, 0xb1, 0x79, + 0x25, 0x4e, 0x93, 0xa5, 0x32, 0xc7, 0x19, 0x18, 0x66, 0x4c, 0x20, 0xe1, 0x58, 0x5f, 0x07, 0x70, + 0x6c, 0xe4, 0x1c, 0x55, 0xeb, 0xa8, 0xd6, 0xc8, 0xa6, 0x7a, 0x58, 0x69, 0x07, 0x8b, 0x74, 0x59, + 0xc9, 0xa1, 0xa3, 0xb5, 0x86, 0x7e, 0x2b, 0x08, 0xb5, 0xd1, 0x1e, 0x91, 0xb2, 0x4d, 0x93, 0xac, + 0x2b, 0xda, 0x0e, 0x60, 0xa2, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0xbb, 0xb2, 0x31, 0xa2, 0xc4, 0x52, + 0xec, 0x95, 0x19, 0x0c, 0x46, 0x2f, 0x6c, 0xbc, 0x1d, 0x3e, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, + 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x34, 0x8f, + 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, + 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe1, 0xf4, 0x83, 0x02, 0x73, + 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, + 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, + 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, + 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, + 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, + 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, + 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, + 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, + 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x21, 0x17, 0xbe, 0x27, + 0xa2, 0x2f, 0x4f, 0x8e, 0xc5, 0xdc, 0x37, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x09, 0xe9, 0xfd, 0x7b, + 0xbb, 0xe5, 0xea, 0xfa, 0xce, 0x41, 0x71, 0xab, 0xac, 0x29, 0xfa, 0x04, 0x00, 0x19, 0xd8, 0xd8, + 0xda, 0x29, 0xec, 0x6b, 0x09, 0xff, 0x78, 0xb3, 0xb2, 0x7f, 0x7d, 0x55, 0x53, 0x7d, 0xc0, 0x01, + 0x1d, 0x48, 0x86, 0x05, 0xae, 0xad, 0x68, 0xc3, 0xba, 0x06, 0x19, 0x4a, 0xb0, 0xf9, 0x72, 0x79, + 0xfd, 0xfa, 0xaa, 0x36, 0x22, 0x8e, 0x5c, 0x5b, 0xd1, 0x46, 0xf5, 0x71, 0x18, 0x23, 0x23, 0xc5, + 0x9d, 0x9d, 0x2d, 0x2d, 0xe5, 0x73, 0xee, 0xed, 0x1b, 0x9b, 0x95, 0x3b, 0xda, 0x98, 0xcf, 0x79, + 0xc7, 0xd8, 0x39, 0xd8, 0xd5, 0xc0, 0x67, 0xd8, 0x2e, 0xef, 0xed, 0x15, 0xee, 0x94, 0xb5, 0xb4, + 0x2f, 0x51, 0xbc, 0xb7, 0x5f, 0xde, 0xd3, 0x32, 0x82, 0x5a, 0xd7, 0x56, 0xb4, 0x71, 0xff, 0x14, + 0xe5, 0xca, 0xc1, 0xb6, 0x36, 0xa1, 0x4f, 0xc1, 0x38, 0x3d, 0x05, 0x57, 0x62, 0x52, 0x1a, 0xba, + 0xbe, 0xaa, 0x69, 0x81, 0x22, 0x94, 0x65, 0x4a, 0x18, 0xb8, 0xbe, 0xaa, 0xe9, 0xb9, 0x12, 0x0c, + 0x93, 0xe8, 0xd2, 0x75, 0x98, 0xd8, 0x2a, 0x14, 0xcb, 0x5b, 0xd5, 0x9d, 0xdd, 0xfd, 0xcd, 0x9d, + 0x4a, 0x61, 0x4b, 0x53, 0x82, 0x31, 0xa3, 0xfc, 0x89, 0x83, 0x4d, 0xa3, 0xbc, 0xae, 0x25, 0xc2, + 0x63, 0xbb, 0xe5, 0xc2, 0x7e, 0x79, 0x5d, 0x53, 0x73, 0x35, 0x38, 0x17, 0x55, 0x67, 0x22, 0x33, + 0x23, 0xe4, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, + 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, + 0x76, 0xad, 0x40, 0x04, 0x17, 0x5e, 0x81, 0xd5, 0x1e, 0x2b, 0x30, 0xa6, 0xe8, 0x52, 0xf2, 0x33, + 0x0a, 0x64, 0x7b, 0x71, 0xc7, 0x14, 0x8a, 0x84, 0x50, 0x28, 0x6e, 0xcb, 0x0a, 0x5c, 0xec, 0x7d, + 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, + 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x2d, 0xdb, 0x8a, 0xa1, 0xc2, 0x6b, + 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, + 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, + 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, + 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, + 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, + 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x43, 0x88, 0x11, 0x01, 0x41, + 0xa7, 0x7d, 0x44, 0xee, 0xb7, 0x47, 0x21, 0x1d, 0x6a, 0xeb, 0xf4, 0x8b, 0x90, 0x79, 0xc5, 0x7c, + 0xcd, 0xac, 0xf2, 0x56, 0x9d, 0x5a, 0x22, 0x8d, 0xc7, 0x76, 0x59, 0xbb, 0xbe, 0x0c, 0xe7, 0x88, + 0x88, 0xd3, 0xf1, 0x50, 0xbb, 0x5a, 0x6b, 0x98, 0xae, 0x4b, 0x8c, 0x96, 0x22, 0xa2, 0x3a, 0x9e, + 0xdb, 0xc1, 0x53, 0x25, 0x3e, 0xa3, 0xaf, 0xc1, 0x34, 0x41, 0x34, 0x3b, 0x0d, 0xcf, 0x6a, 0x35, + 0x50, 0x15, 0xdf, 0x3c, 0xb8, 0xa4, 0x10, 0xfb, 0x9a, 0x4d, 0x61, 0x89, 0x6d, 0x26, 0x80, 0x35, + 0x72, 0xf5, 0x75, 0x78, 0x82, 0xc0, 0x8e, 0x91, 0x8d, 0xda, 0xa6, 0x87, 0xaa, 0xe8, 0x17, 0x3b, + 0x66, 0xc3, 0xad, 0x9a, 0x76, 0xbd, 0x7a, 0x62, 0xba, 0x27, 0xd9, 0x73, 0x98, 0xa0, 0x98, 0xc8, + 0x2a, 0xc6, 0x63, 0x58, 0xf0, 0x0e, 0x93, 0x2b, 0x13, 0xb1, 0x82, 0x5d, 0x7f, 0xd1, 0x74, 0x4f, + 0xf4, 0x3c, 0xcc, 0x10, 0x16, 0xd7, 0x6b, 0x5b, 0xf6, 0x71, 0xb5, 0x76, 0x82, 0x6a, 0xaf, 0x56, + 0x3b, 0xde, 0xd1, 0xcd, 0xec, 0xe3, 0xe1, 0xf3, 0x13, 0x0d, 0xf7, 0x88, 0x4c, 0x09, 0x8b, 0x1c, + 0x78, 0x47, 0x37, 0xf5, 0x3d, 0xc8, 0x60, 0x67, 0x34, 0xad, 0x4f, 0xa3, 0xea, 0x91, 0xd3, 0x26, + 0x2b, 0xcb, 0x44, 0x44, 0x66, 0x87, 0x2c, 0xb8, 0xb4, 0xc3, 0x00, 0xdb, 0x4e, 0x1d, 0xe5, 0x87, + 0xf7, 0x76, 0xcb, 0xe5, 0x75, 0x23, 0xcd, 0x59, 0x36, 0x9c, 0x36, 0x0e, 0xa8, 0x63, 0xc7, 0x37, + 0x70, 0x9a, 0x06, 0xd4, 0xb1, 0xc3, 0xcd, 0xbb, 0x06, 0xd3, 0xb5, 0x1a, 0xbd, 0x66, 0xab, 0x56, + 0x65, 0x2d, 0xbe, 0x9b, 0xd5, 0x04, 0x63, 0xd5, 0x6a, 0x77, 0xa8, 0x00, 0x8b, 0x71, 0x57, 0xbf, + 0x05, 0x8f, 0x04, 0xc6, 0x0a, 0x03, 0xa7, 0xba, 0xae, 0x52, 0x86, 0xae, 0xc1, 0x74, 0xeb, 0xb4, + 0x1b, 0xa8, 0x0b, 0x67, 0x6c, 0x9d, 0xca, 0xb0, 0xa7, 0xc8, 0x6d, 0x5b, 0x1b, 0xd5, 0x4c, 0x0f, + 0xd5, 0xb3, 0x8f, 0x86, 0xa5, 0x43, 0x13, 0xfa, 0x15, 0xd0, 0x6a, 0xb5, 0x2a, 0xb2, 0xcd, 0xc3, + 0x06, 0xaa, 0x9a, 0x6d, 0x64, 0x9b, 0x6e, 0x76, 0x3e, 0x2c, 0x3c, 0x51, 0xab, 0x95, 0xc9, 0x6c, + 0x81, 0x4c, 0xea, 0x8b, 0x30, 0xe5, 0x1c, 0xbe, 0x52, 0xa3, 0x91, 0x55, 0x6d, 0xb5, 0xd1, 0x91, + 0xf5, 0x46, 0xf6, 0x12, 0x31, 0xd3, 0x24, 0x9e, 0x20, 0x71, 0xb5, 0x4b, 0x86, 0xf5, 0x67, 0x40, + 0xab, 0xb9, 0x27, 0x66, 0xbb, 0x45, 0x96, 0x76, 0xb7, 0x65, 0xd6, 0x50, 0xf6, 0x29, 0x2a, 0x4a, + 0xc7, 0x2b, 0x7c, 0x18, 0x47, 0xb6, 0xfb, 0xba, 0x75, 0xe4, 0x71, 0xc6, 0xa7, 0x69, 0x64, 0x93, + 0x31, 0xc6, 0xf6, 0x32, 0x9c, 0xeb, 0xd8, 0x96, 0xed, 0xa1, 0x76, 0xab, 0x8d, 0x70, 0x13, 0x4f, + 0x33, 0x31, 0xfb, 0x3f, 0x46, 0x7b, 0xb4, 0xe1, 0x07, 0x61, 0x69, 0x1a, 0x00, 0xc6, 0x74, 0xa7, + 0x7b, 0x30, 0x97, 0x87, 0x4c, 0x38, 0x2e, 0xf4, 0x31, 0xa0, 0x91, 0xa1, 0x29, 0x78, 0x8d, 0x2d, + 0xed, 0xac, 0xe3, 0xd5, 0xf1, 0x17, 0xca, 0x5a, 0x02, 0xaf, 0xd2, 0x5b, 0x9b, 0xfb, 0xe5, 0xaa, + 0x71, 0x50, 0xd9, 0xdf, 0xdc, 0x2e, 0x6b, 0xea, 0xe2, 0x58, 0xea, 0x07, 0xa3, 0xda, 0x9b, 0x6f, + 0xbe, 0xf9, 0x66, 0x22, 0xf7, 0xad, 0x04, 0x4c, 0x88, 0x9d, 0xb1, 0xfe, 0x31, 0x78, 0x94, 0xdf, + 0xc6, 0xba, 0xc8, 0xab, 0xbe, 0x6e, 0xb5, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0xfa, 0x56, 0x3e, + 0xc7, 0xa4, 0xf6, 0x90, 0xf7, 0x92, 0xd5, 0xc6, 0x81, 0xd8, 0x34, 0x3d, 0x7d, 0x0b, 0xe6, 0x6d, + 0xa7, 0xea, 0x7a, 0xa6, 0x5d, 0x37, 0xdb, 0xf5, 0x6a, 0xb0, 0x81, 0x50, 0x35, 0x6b, 0x35, 0xe4, + 0xba, 0x0e, 0x5d, 0x22, 0x7c, 0x96, 0xf3, 0xb6, 0xb3, 0xc7, 0x84, 0x83, 0xda, 0x59, 0x60, 0xa2, + 0x52, 0x44, 0xa8, 0xbd, 0x22, 0xe2, 0x71, 0x18, 0x6b, 0x9a, 0xad, 0x2a, 0xb2, 0xbd, 0xf6, 0x29, + 0xe9, 0xe7, 0x52, 0x46, 0xaa, 0x69, 0xb6, 0xca, 0xf8, 0xf8, 0x83, 0xf3, 0x41, 0xd8, 0x8e, 0xff, + 0x5d, 0x85, 0x4c, 0xb8, 0xa7, 0xc3, 0x2d, 0x72, 0x8d, 0xd4, 0x6f, 0x85, 0x64, 0xf8, 0x93, 0x7d, + 0x3b, 0xc0, 0xa5, 0x12, 0x2e, 0xec, 0xf9, 0x11, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, + 0xd3, 0x88, 0xf6, 0xef, 0x29, 0x83, 0x1d, 0xe9, 0x77, 0x60, 0xe4, 0x15, 0x97, 0x70, 0x8f, 0x10, + 0xee, 0x4b, 0xfd, 0xb9, 0xef, 0xee, 0x11, 0xf2, 0xb1, 0xbb, 0x7b, 0xd5, 0xca, 0x8e, 0xb1, 0x5d, + 0xd8, 0x32, 0x18, 0x5c, 0x7f, 0x0c, 0x92, 0x0d, 0xf3, 0xd3, 0xa7, 0xe2, 0x12, 0x40, 0x86, 0x06, + 0x35, 0xfc, 0x63, 0x90, 0x7c, 0x1d, 0x99, 0xaf, 0x8a, 0x85, 0x97, 0x0c, 0x7d, 0x80, 0xa1, 0x7f, + 0x05, 0x86, 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0x6d, 0x48, 0x4f, 0x41, 0xb2, 0xb4, 0x63, 0xe0, + 0xf0, 0xd7, 0x20, 0x43, 0x47, 0xab, 0xbb, 0x9b, 0xe5, 0x52, 0x59, 0x4b, 0xe4, 0xd6, 0x60, 0x84, + 0x1a, 0x01, 0xa7, 0x86, 0x6f, 0x06, 0x6d, 0x88, 0x1d, 0x32, 0x0e, 0x85, 0xcf, 0x1e, 0x6c, 0x17, + 0xcb, 0x86, 0x96, 0x08, 0xbb, 0xd7, 0x85, 0x4c, 0xb8, 0x9d, 0xfb, 0xe9, 0xc4, 0xd4, 0xef, 0x2b, + 0x90, 0x0e, 0xb5, 0x67, 0xb8, 0x31, 0x30, 0x1b, 0x0d, 0xe7, 0xf5, 0xaa, 0xd9, 0xb0, 0x4c, 0x97, + 0x05, 0x05, 0x90, 0xa1, 0x02, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf, 0xa4, 0x80, 0x26, + 0xb7, 0x76, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x2f, 0x28, 0x30, 0x21, 0xf6, 0x73, 0x92, 0x7a, + 0x17, 0x7f, 0xa6, 0xea, 0x7d, 0x37, 0x01, 0xe3, 0x42, 0x17, 0x37, 0xa8, 0x76, 0xbf, 0x08, 0x53, + 0x56, 0x1d, 0x35, 0x5b, 0x8e, 0x87, 0xec, 0xda, 0x69, 0xb5, 0x81, 0x5e, 0x43, 0x8d, 0x6c, 0x8e, + 0x14, 0x8a, 0x2b, 0xfd, 0xfb, 0xc4, 0xa5, 0xcd, 0x00, 0xb7, 0x85, 0x61, 0xf9, 0xe9, 0xcd, 0xf5, + 0xf2, 0xf6, 0xee, 0xce, 0x7e, 0xb9, 0x52, 0xba, 0x57, 0x3d, 0xa8, 0x7c, 0xbc, 0xb2, 0xf3, 0x52, + 0xc5, 0xd0, 0x2c, 0x49, 0xec, 0x03, 0x4c, 0xf5, 0x5d, 0xd0, 0x64, 0xa5, 0xf4, 0x47, 0x21, 0x4a, + 0x2d, 0x6d, 0x48, 0x9f, 0x86, 0xc9, 0xca, 0x4e, 0x75, 0x6f, 0x73, 0xbd, 0x5c, 0x2d, 0x6f, 0x6c, + 0x94, 0x4b, 0xfb, 0x7b, 0xf4, 0xc6, 0xd9, 0x97, 0xde, 0x17, 0x93, 0xfa, 0xf3, 0x2a, 0x4c, 0x47, + 0x68, 0xa2, 0x17, 0x58, 0xcf, 0x4e, 0x6f, 0x23, 0x9e, 0x1d, 0x44, 0xfb, 0x25, 0xdc, 0x15, 0xec, + 0x9a, 0x6d, 0x8f, 0xb5, 0xf8, 0xcf, 0x00, 0xb6, 0x92, 0xed, 0x59, 0x47, 0x16, 0x6a, 0xb3, 0x7d, + 0x06, 0xda, 0xc8, 0x4f, 0x06, 0xe3, 0x74, 0xab, 0xe1, 0xa3, 0xa0, 0xb7, 0x1c, 0xd7, 0xf2, 0xac, + 0xd7, 0x50, 0xd5, 0xb2, 0xf9, 0xa6, 0x04, 0x6e, 0xec, 0x93, 0x86, 0xc6, 0x67, 0x36, 0x6d, 0xcf, + 0x97, 0xb6, 0xd1, 0xb1, 0x29, 0x49, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0x9f, 0xf1, 0xa5, 0x2f, 0x42, + 0xa6, 0xee, 0x74, 0x70, 0x9b, 0x44, 0xe5, 0xf0, 0x7a, 0xa1, 0x18, 0x69, 0x3a, 0xe6, 0x8b, 0xb0, + 0x3e, 0x36, 0xd8, 0x0d, 0xc9, 0x18, 0x69, 0x3a, 0x46, 0x45, 0x9e, 0x86, 0x49, 0xf3, 0xf8, 0xb8, + 0x8d, 0xc9, 0x39, 0x11, 0xed, 0xcc, 0x27, 0xfc, 0x61, 0x22, 0x38, 0x7b, 0x17, 0x52, 0xdc, 0x0e, + 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb6, 0xe8, 0x9e, 0x54, 0x62, 0x61, 0xcc, 0x48, 0xd9, 0x7c, 0xf2, + 0x22, 0x64, 0x2c, 0xb7, 0x1a, 0x6c, 0x8e, 0x26, 0x2e, 0x24, 0x16, 0x52, 0x46, 0xda, 0x72, 0xfd, + 0xdd, 0xb0, 0xdc, 0x57, 0x13, 0x30, 0x21, 0x6e, 0xee, 0xea, 0xeb, 0x90, 0x6a, 0x38, 0x35, 0x93, + 0x84, 0x16, 0x7d, 0xb2, 0xb0, 0x10, 0xb3, 0x1f, 0xbc, 0xb4, 0xc5, 0xe4, 0x0d, 0x1f, 0x39, 0xfb, + 0x9f, 0x15, 0x48, 0xf1, 0x61, 0x7d, 0x06, 0x92, 0x2d, 0xd3, 0x3b, 0x21, 0x74, 0xc3, 0xc5, 0x84, + 0xa6, 0x18, 0xe4, 0x18, 0x8f, 0xbb, 0x2d, 0xd3, 0x26, 0x21, 0xc0, 0xc6, 0xf1, 0x31, 0xf6, 0x6b, + 0x03, 0x99, 0x75, 0xd2, 0xf6, 0x3b, 0xcd, 0x26, 0xb2, 0x3d, 0x97, 0xfb, 0x95, 0x8d, 0x97, 0xd8, + 0xb0, 0xfe, 0x11, 0x98, 0xf2, 0xda, 0xa6, 0xd5, 0x10, 0x64, 0x93, 0x44, 0x56, 0xe3, 0x13, 0xbe, + 0x70, 0x1e, 0x1e, 0xe3, 0xbc, 0x75, 0xe4, 0x99, 0xb5, 0x13, 0x54, 0x0f, 0x40, 0x23, 0x64, 0xe7, + 0xf0, 0x51, 0x26, 0xb0, 0xce, 0xe6, 0x39, 0x36, 0xf7, 0x87, 0x0a, 0x4c, 0xf1, 0x1b, 0x95, 0xba, + 0x6f, 0xac, 0x6d, 0x00, 0xd3, 0xb6, 0x1d, 0x2f, 0x6c, 0xae, 0xee, 0x50, 0xee, 0xc2, 0x2d, 0x15, + 0x7c, 0x90, 0x11, 0x22, 0x98, 0x6d, 0x02, 0x04, 0x33, 0x3d, 0xcd, 0x36, 0x0f, 0x69, 0xb6, 0x73, + 0x4f, 0x1e, 0xff, 0xd0, 0x5b, 0x5b, 0xa0, 0x43, 0xf8, 0x8e, 0x46, 0x3f, 0x07, 0xc3, 0x87, 0xe8, + 0xd8, 0xb2, 0xd9, 0x7e, 0x22, 0x3d, 0xe0, 0xbb, 0x94, 0x49, 0x7f, 0x97, 0xb2, 0xf8, 0x32, 0x4c, + 0xd7, 0x9c, 0xa6, 0xac, 0x6e, 0x51, 0x93, 0x6e, 0xaf, 0xdd, 0x17, 0x95, 0x5f, 0x80, 0xa0, 0xc5, + 0xfc, 0xf5, 0x84, 0x7a, 0x67, 0xb7, 0xf8, 0x5b, 0x89, 0xd9, 0x3b, 0x14, 0xb7, 0xcb, 0x2f, 0xd3, + 0x40, 0x47, 0x0d, 0x54, 0xc3, 0xaa, 0xc3, 0x1f, 0x5f, 0x86, 0x67, 0x8f, 0x2d, 0xef, 0xa4, 0x73, + 0xb8, 0x54, 0x73, 0x9a, 0x57, 0x8e, 0x9d, 0x63, 0x27, 0x78, 0xdc, 0x85, 0x8f, 0xc8, 0x01, 0xf9, + 0xc4, 0x1e, 0x79, 0x8d, 0xf9, 0xa3, 0xb3, 0xb1, 0xcf, 0xc7, 0xf2, 0x15, 0x98, 0x66, 0xc2, 0x55, + 0xb2, 0xe7, 0x4e, 0x6f, 0x0d, 0xf4, 0xbe, 0xfb, 0x2e, 0xd9, 0xdf, 0xf9, 0x3e, 0x59, 0xab, 0x8d, + 0x29, 0x06, 0xc5, 0x73, 0xf4, 0x06, 0x22, 0x6f, 0xc0, 0x23, 0x02, 0x1f, 0xcd, 0x4b, 0xd4, 0x8e, + 0x61, 0xfc, 0x16, 0x63, 0x9c, 0x0e, 0x31, 0xee, 0x31, 0x68, 0xbe, 0x04, 0xe3, 0x67, 0xe1, 0xfa, + 0x0f, 0x8c, 0x2b, 0x83, 0xc2, 0x24, 0x77, 0x60, 0x92, 0x90, 0xd4, 0x3a, 0xae, 0xe7, 0x34, 0x49, + 0xd1, 0xeb, 0x4f, 0xf3, 0x1f, 0xbf, 0x4f, 0x13, 0x65, 0x02, 0xc3, 0x4a, 0x3e, 0x2a, 0x9f, 0x07, + 0xf2, 0x98, 0xa1, 0x8e, 0x6a, 0x8d, 0x18, 0x86, 0xfb, 0x4c, 0x11, 0x5f, 0x3e, 0xff, 0x49, 0x38, + 0x87, 0x3f, 0x93, 0x9a, 0x14, 0xd6, 0x24, 0x7e, 0x97, 0x29, 0xfb, 0x87, 0x9f, 0xa1, 0xb9, 0x38, + 0xed, 0x13, 0x84, 0x74, 0x0a, 0x79, 0xf1, 0x18, 0x79, 0x1e, 0x6a, 0xbb, 0x55, 0xb3, 0x11, 0xa5, + 0x5e, 0xe8, 0x36, 0x3d, 0xfb, 0x6b, 0x3f, 0x14, 0xbd, 0x78, 0x87, 0x22, 0x0b, 0x8d, 0x46, 0xfe, + 0x00, 0x1e, 0x8d, 0x88, 0x8a, 0x01, 0x38, 0x3f, 0xcf, 0x38, 0xcf, 0x75, 0x45, 0x06, 0xa6, 0xdd, + 0x05, 0x3e, 0xee, 0xfb, 0x72, 0x00, 0xce, 0x7f, 0xcc, 0x38, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x8c, + 0x77, 0x61, 0xea, 0x35, 0xd4, 0x3e, 0x74, 0x5c, 0xb6, 0x35, 0x32, 0x00, 0xdd, 0x17, 0x18, 0xdd, + 0x24, 0x03, 0x92, 0xbd, 0x12, 0xcc, 0x75, 0x0b, 0x52, 0x47, 0x66, 0x0d, 0x0d, 0x40, 0xf1, 0x45, + 0x46, 0x31, 0x8a, 0xe5, 0x31, 0xb4, 0x00, 0x99, 0x63, 0x87, 0x2d, 0x4b, 0xf1, 0xf0, 0x2f, 0x31, + 0x78, 0x9a, 0x63, 0x18, 0x45, 0xcb, 0x69, 0x75, 0x1a, 0x78, 0xcd, 0x8a, 0xa7, 0xf8, 0x32, 0xa7, + 0xe0, 0x18, 0x46, 0x71, 0x06, 0xb3, 0xbe, 0xc5, 0x29, 0xdc, 0x90, 0x3d, 0x5f, 0x80, 0xb4, 0x63, + 0x37, 0x4e, 0x1d, 0x7b, 0x10, 0x25, 0xbe, 0xc2, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x6d, 0x18, 0x1b, + 0xd4, 0x11, 0xbf, 0xf1, 0x43, 0x9e, 0x1e, 0xdc, 0x03, 0x77, 0x60, 0x92, 0x17, 0x28, 0xcb, 0xb1, + 0x07, 0xa0, 0xf8, 0xa7, 0x8c, 0x62, 0x22, 0x04, 0x63, 0x97, 0xe1, 0x21, 0xd7, 0x3b, 0x46, 0x83, + 0x90, 0x7c, 0x95, 0x5f, 0x06, 0x83, 0x30, 0x53, 0x1e, 0x22, 0xbb, 0x76, 0x32, 0x18, 0xc3, 0xd7, + 0xb8, 0x29, 0x39, 0x06, 0x53, 0x94, 0x60, 0xbc, 0x69, 0xb6, 0xdd, 0x13, 0xb3, 0x31, 0x90, 0x3b, + 0x7e, 0x93, 0x71, 0x64, 0x7c, 0x10, 0xb3, 0x48, 0xc7, 0x3e, 0x0b, 0xcd, 0x6f, 0x71, 0x8b, 0x84, + 0x60, 0x2c, 0xf5, 0x5c, 0x8f, 0x6c, 0x40, 0x9d, 0x85, 0xed, 0xb7, 0x79, 0xea, 0x51, 0xec, 0x76, + 0x98, 0xf1, 0x36, 0x8c, 0xb9, 0xd6, 0xa7, 0x07, 0xa2, 0xf9, 0x67, 0xdc, 0xd3, 0x04, 0x80, 0xc1, + 0xf7, 0xe0, 0xb1, 0xc8, 0x65, 0x62, 0x00, 0xb2, 0x7f, 0xce, 0xc8, 0x66, 0x22, 0x96, 0x0a, 0x56, + 0x12, 0xce, 0x4a, 0xf9, 0x2f, 0x78, 0x49, 0x40, 0x12, 0xd7, 0x2e, 0xbe, 0x51, 0x70, 0xcd, 0xa3, + 0xb3, 0x59, 0xed, 0x5f, 0x72, 0xab, 0x51, 0xac, 0x60, 0xb5, 0x7d, 0x98, 0x61, 0x8c, 0x67, 0xf3, + 0xeb, 0xd7, 0x79, 0x61, 0xa5, 0xe8, 0x03, 0xd1, 0xbb, 0x9f, 0x82, 0x59, 0xdf, 0x9c, 0xbc, 0x23, + 0x75, 0xab, 0x4d, 0xb3, 0x35, 0x00, 0xf3, 0xef, 0x30, 0x66, 0x5e, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, + 0x36, 0x5b, 0x98, 0xfc, 0x65, 0xc8, 0x72, 0xf2, 0x8e, 0xdd, 0x46, 0x35, 0xe7, 0xd8, 0xb6, 0x3e, + 0x8d, 0xea, 0x03, 0x50, 0x7f, 0x43, 0x72, 0xd5, 0x41, 0x08, 0x8e, 0x99, 0x37, 0x41, 0xf3, 0x7b, + 0x95, 0xaa, 0xd5, 0x6c, 0x39, 0x6d, 0x2f, 0x86, 0xf1, 0x5f, 0x71, 0x4f, 0xf9, 0xb8, 0x4d, 0x02, + 0xcb, 0x97, 0x61, 0x82, 0x1c, 0x0e, 0x1a, 0x92, 0xbf, 0xcb, 0x88, 0xc6, 0x03, 0x14, 0x2b, 0x1c, + 0x35, 0xa7, 0xd9, 0x32, 0xdb, 0x83, 0xd4, 0xbf, 0x7f, 0xcd, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, + 0x9d, 0xb6, 0x10, 0x5e, 0xed, 0x07, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, + 0x30, 0x00, 0xc5, 0xbf, 0xe1, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x11, 0x2c, 0xb4, 0x6d, 0x74, 0x6c, + 0xb9, 0x5e, 0x9b, 0xf6, 0xc1, 0xfd, 0xa9, 0x7e, 0xef, 0x87, 0x62, 0x13, 0x66, 0x84, 0xa0, 0xf9, + 0xbb, 0x30, 0x29, 0xb5, 0x18, 0x7a, 0xdc, 0x3b, 0x0b, 0xd9, 0xbf, 0xf2, 0x63, 0x56, 0x8c, 0xc4, + 0x0e, 0x23, 0xbf, 0x85, 0xfd, 0x2e, 0xf6, 0x01, 0xf1, 0x64, 0x9f, 0xf9, 0xb1, 0xef, 0x7a, 0xa1, + 0x0d, 0xc8, 0x6f, 0xc0, 0xb8, 0xd0, 0x03, 0xc4, 0x53, 0xfd, 0x55, 0x46, 0x95, 0x09, 0xb7, 0x00, + 0xf9, 0x35, 0x48, 0xe2, 0xf5, 0x3c, 0x1e, 0xfe, 0xd7, 0x18, 0x9c, 0x88, 0xe7, 0x9f, 0x83, 0x14, + 0x5f, 0xc7, 0xe3, 0xa1, 0xbf, 0xcc, 0xa0, 0x3e, 0x04, 0xc3, 0xf9, 0x1a, 0x1e, 0x0f, 0xff, 0xeb, + 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfe, 0x9b, 0x49, 0x56, 0x87, 0xb9, 0xed, 0x6e, + 0xc3, 0x28, 0x5b, 0xbc, 0xe3, 0xd1, 0xbf, 0xc2, 0x4e, 0xce, 0x11, 0xf9, 0x1b, 0x30, 0x3c, 0xa0, + 0xc1, 0xff, 0x16, 0x83, 0x52, 0xf9, 0x7c, 0x09, 0xd2, 0xa1, 0x05, 0x3b, 0x1e, 0xfe, 0xb7, 0x19, + 0x3c, 0x8c, 0xc2, 0xaa, 0xb3, 0x05, 0x3b, 0x9e, 0xe0, 0xef, 0x70, 0xd5, 0x19, 0x02, 0x9b, 0x8d, + 0xaf, 0xd5, 0xf1, 0xe8, 0xbf, 0xcb, 0xad, 0xce, 0x21, 0xf9, 0x17, 0x60, 0xcc, 0xaf, 0xbf, 0xf1, + 0xf8, 0xbf, 0xc7, 0xf0, 0x01, 0x06, 0x5b, 0x20, 0x54, 0xff, 0xe3, 0x29, 0xfe, 0x3e, 0xb7, 0x40, + 0x08, 0x85, 0xd3, 0x48, 0x5e, 0xd3, 0xe3, 0x99, 0x7e, 0x95, 0xa7, 0x91, 0xb4, 0xa4, 0x63, 0x6f, + 0x92, 0x32, 0x18, 0x4f, 0xf1, 0x0f, 0xb8, 0x37, 0x89, 0x3c, 0x56, 0x43, 0x5e, 0x24, 0xe3, 0x39, + 0xfe, 0x11, 0x57, 0x43, 0x5a, 0x23, 0xf3, 0xbb, 0xa0, 0x77, 0x2f, 0x90, 0xf1, 0x7c, 0x9f, 0x63, + 0x7c, 0x53, 0x5d, 0xeb, 0x63, 0xfe, 0x25, 0x98, 0x89, 0x5e, 0x1c, 0xe3, 0x59, 0x7f, 0xed, 0xc7, + 0xd2, 0xed, 0x4c, 0x78, 0x6d, 0xcc, 0xef, 0x07, 0x55, 0x36, 0xbc, 0x30, 0xc6, 0xd3, 0x7e, 0xfe, + 0xc7, 0x62, 0xa1, 0x0d, 0xaf, 0x8b, 0xf9, 0x02, 0x40, 0xb0, 0x26, 0xc5, 0x73, 0x7d, 0x81, 0x71, + 0x85, 0x40, 0x38, 0x35, 0xd8, 0x92, 0x14, 0x8f, 0xff, 0x22, 0x4f, 0x0d, 0x86, 0xc0, 0xa9, 0xc1, + 0x57, 0xa3, 0x78, 0xf4, 0x97, 0x78, 0x6a, 0x70, 0x48, 0xfe, 0x36, 0xa4, 0xec, 0x4e, 0xa3, 0x81, + 0x63, 0x4b, 0xef, 0xff, 0x1a, 0x51, 0xf6, 0x7f, 0xfe, 0x84, 0x81, 0x39, 0x20, 0xbf, 0x06, 0xc3, + 0xa8, 0x79, 0x88, 0xea, 0x71, 0xc8, 0xff, 0xf5, 0x13, 0x5e, 0x4f, 0xb0, 0x74, 0xfe, 0x05, 0x00, + 0x7a, 0x33, 0x4d, 0x9e, 0x12, 0xc5, 0x60, 0xff, 0xf7, 0x4f, 0xd8, 0x1b, 0x0a, 0x01, 0x24, 0x20, + 0xa0, 0xef, 0x3b, 0xf4, 0x27, 0xf8, 0xa1, 0x48, 0x40, 0x6e, 0xc0, 0x6f, 0xc1, 0xe8, 0x2b, 0xae, + 0x63, 0x7b, 0xe6, 0x71, 0x1c, 0xfa, 0xff, 0x30, 0x34, 0x97, 0xc7, 0x06, 0x6b, 0x3a, 0x6d, 0xe4, + 0x99, 0xc7, 0x6e, 0x1c, 0xf6, 0xff, 0x32, 0xac, 0x0f, 0xc0, 0xe0, 0x9a, 0xe9, 0x7a, 0x83, 0x5c, + 0xf7, 0xff, 0xe3, 0x60, 0x0e, 0xc0, 0x4a, 0xe3, 0xcf, 0xaf, 0xa2, 0xd3, 0x38, 0xec, 0x8f, 0xb8, + 0xd2, 0x4c, 0x3e, 0xff, 0x1c, 0x8c, 0xe1, 0x8f, 0xf4, 0xad, 0x9d, 0x18, 0xf0, 0x1f, 0x31, 0x70, + 0x80, 0xc0, 0x67, 0x76, 0xbd, 0xba, 0x67, 0xc5, 0x1b, 0xfb, 0xff, 0x33, 0x4f, 0x73, 0xf9, 0x7c, + 0x01, 0xd2, 0xae, 0x57, 0xaf, 0x77, 0x58, 0x47, 0x13, 0x03, 0xff, 0xe3, 0x9f, 0xf8, 0x37, 0xb9, + 0x3e, 0xa6, 0x78, 0x31, 0x7a, 0xb3, 0x0e, 0xee, 0x38, 0x77, 0x1c, 0xba, 0x4d, 0x07, 0xdf, 0x6f, + 0xc0, 0x8d, 0x9e, 0xbb, 0x6e, 0x78, 0x11, 0xb9, 0x52, 0x73, 0x9a, 0x87, 0x8e, 0x7b, 0xe5, 0xd0, + 0xf1, 0x4e, 0xae, 0x78, 0x27, 0x08, 0x8f, 0xb1, 0xfd, 0xb7, 0x24, 0xfe, 0x3c, 0x7b, 0xb6, 0x4d, + 0x3b, 0xf2, 0x3c, 0xb6, 0x62, 0x61, 0xbd, 0x2b, 0x64, 0x4b, 0x5c, 0x3f, 0x0f, 0x23, 0xe4, 0x4a, + 0xae, 0x92, 0xc7, 0x4e, 0x4a, 0x31, 0x79, 0xff, 0x9d, 0xf9, 0x21, 0x83, 0x8d, 0xf9, 0xb3, 0x2b, + 0x64, 0xcf, 0x32, 0x21, 0xcc, 0xae, 0xf8, 0xb3, 0xd7, 0xe8, 0xb6, 0xa5, 0x30, 0x7b, 0xcd, 0x9f, + 0x5d, 0x25, 0x1b, 0x98, 0xaa, 0x30, 0xbb, 0xea, 0xcf, 0xae, 0x91, 0x4d, 0xfa, 0x71, 0x61, 0x76, + 0xcd, 0x9f, 0xbd, 0x4e, 0xb6, 0xe6, 0x93, 0xc2, 0xec, 0x75, 0x7f, 0xf6, 0x06, 0xd9, 0x95, 0x9f, + 0x12, 0x66, 0x6f, 0xf8, 0xb3, 0x37, 0xc9, 0x6e, 0xbc, 0x2e, 0xcc, 0xde, 0xf4, 0x67, 0x6f, 0x91, + 0x57, 0x4c, 0x46, 0x85, 0xd9, 0x5b, 0xfa, 0x1c, 0x8c, 0xd2, 0x2b, 0x5f, 0x26, 0x8f, 0x6e, 0x27, + 0xd9, 0x34, 0x1f, 0x0c, 0xe6, 0xaf, 0x92, 0xd7, 0x49, 0x46, 0xc4, 0xf9, 0xab, 0xc1, 0xfc, 0x0a, + 0x79, 0xb1, 0x5a, 0x13, 0xe7, 0x57, 0x82, 0xf9, 0x6b, 0xd9, 0x71, 0xf2, 0x4a, 0x8d, 0x30, 0x7f, + 0x2d, 0x98, 0x5f, 0xcd, 0x4e, 0xe0, 0x60, 0x16, 0xe7, 0x57, 0x83, 0xf9, 0xb5, 0xec, 0xe4, 0x05, + 0x65, 0x21, 0x23, 0xce, 0xaf, 0xe5, 0x7e, 0x89, 0xb8, 0xd7, 0x0e, 0xdc, 0x3b, 0x23, 0xba, 0xd7, + 0x77, 0xec, 0x8c, 0xe8, 0x58, 0xdf, 0xa5, 0x33, 0xa2, 0x4b, 0x7d, 0x67, 0xce, 0x88, 0xce, 0xf4, + 0xdd, 0x38, 0x23, 0xba, 0xd1, 0x77, 0xe0, 0x8c, 0xe8, 0x40, 0xdf, 0x75, 0x33, 0xa2, 0xeb, 0x7c, + 0xa7, 0xcd, 0x88, 0x4e, 0xf3, 0xdd, 0x35, 0x23, 0xba, 0xcb, 0x77, 0x54, 0x56, 0x72, 0x54, 0xe0, + 0xa2, 0xac, 0xe4, 0xa2, 0xc0, 0x39, 0x59, 0xc9, 0x39, 0x81, 0x5b, 0xb2, 0x92, 0x5b, 0x02, 0x87, + 0x64, 0x25, 0x87, 0x04, 0xae, 0xc8, 0x4a, 0xae, 0x08, 0x9c, 0xc0, 0x72, 0xcc, 0x40, 0xad, 0x88, + 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, + 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe7, 0x98, + 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, + 0x6a, 0xcf, 0x1c, 0x0b, 0xdc, 0x3b, 0x23, 0xba, 0x37, 0x32, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, + 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, + 0x7b, 0xe4, 0x98, 0xda, 0x2b, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, + 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0x38, 0xc7, 0xfe, 0xad, 0x0a, 0x3a, 0xcd, 0xb1, + 0x5d, 0xf2, 0xf2, 0x0f, 0x73, 0xc5, 0x9c, 0x94, 0x69, 0x23, 0xd8, 0x75, 0x5a, 0xe0, 0x92, 0x39, + 0x29, 0xd7, 0xc4, 0xf9, 0x15, 0x7f, 0x9e, 0x67, 0x9b, 0x38, 0x7f, 0xcd, 0x9f, 0xe7, 0xf9, 0x26, + 0xce, 0xaf, 0xfa, 0xf3, 0x3c, 0xe3, 0xc4, 0xf9, 0x35, 0x7f, 0x9e, 0xe7, 0x9c, 0x38, 0x7f, 0xdd, + 0x9f, 0xe7, 0x59, 0x27, 0xce, 0xdf, 0xf0, 0xe7, 0x79, 0xde, 0x89, 0xf3, 0x37, 0xfd, 0x79, 0x9e, + 0x79, 0xe2, 0xfc, 0x2d, 0xfd, 0x82, 0x9c, 0x7b, 0x5c, 0xc0, 0x77, 0xed, 0x05, 0x39, 0xfb, 0x24, + 0x89, 0xab, 0x81, 0x04, 0xcf, 0x3f, 0x49, 0x62, 0x25, 0x90, 0xe0, 0x19, 0x28, 0x49, 0x5c, 0xcb, + 0x7d, 0x96, 0xb8, 0xcf, 0x96, 0xdd, 0x37, 0x2b, 0xb9, 0x2f, 0x11, 0x72, 0xdd, 0xac, 0xe4, 0xba, + 0x44, 0xc8, 0x6d, 0xb3, 0x92, 0xdb, 0x12, 0x21, 0x97, 0xcd, 0x4a, 0x2e, 0x4b, 0x84, 0xdc, 0x35, + 0x2b, 0xb9, 0x2b, 0x11, 0x72, 0xd5, 0xac, 0xe4, 0xaa, 0x44, 0xc8, 0x4d, 0xb3, 0x92, 0x9b, 0x12, + 0x21, 0x17, 0xcd, 0x4a, 0x2e, 0x4a, 0x84, 0xdc, 0x33, 0x2b, 0xb9, 0x27, 0x11, 0x72, 0xcd, 0x79, + 0xd9, 0x35, 0x89, 0xb0, 0x5b, 0xce, 0xcb, 0x6e, 0x49, 0x84, 0x5d, 0x72, 0x5e, 0x76, 0x49, 0x22, + 0xec, 0x8e, 0xf3, 0xb2, 0x3b, 0x12, 0x61, 0x57, 0xfc, 0x59, 0x82, 0x77, 0x84, 0x7b, 0x5e, 0xbb, + 0x53, 0xf3, 0xde, 0x53, 0x47, 0xb8, 0x2c, 0xb4, 0x0f, 0xe9, 0x15, 0x7d, 0x89, 0x34, 0xac, 0xe1, + 0x8e, 0x53, 0x5a, 0xc1, 0x96, 0x85, 0xc6, 0x22, 0x84, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xa9, 0x37, + 0x5c, 0x16, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe0, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, + 0xf3, 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, + 0x83, 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xfe, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, + 0x8a, 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x42, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, + 0xb3, 0x76, 0x5e, 0xcb, 0x42, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x00, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, + 0xfc, 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, + 0x68, 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0x9e, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, + 0xe5, 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xa8, 0x04, 0x3d, 0x5c, 0xfd, 0xed, + 0x77, 0xe6, 0x03, 0x0b, 0xaf, 0x41, 0x8a, 0xda, 0x74, 0x79, 0x39, 0x7b, 0x5f, 0x89, 0xa9, 0x70, + 0xbe, 0xa8, 0x7e, 0x91, 0xc3, 0xae, 0x2e, 0x67, 0xff, 0x8b, 0x12, 0xaa, 0x72, 0xfe, 0x70, 0xee, + 0x57, 0x89, 0x86, 0xf6, 0x7b, 0xd6, 0xf0, 0xca, 0x40, 0x1a, 0x86, 0x74, 0x7b, 0xbc, 0x4b, 0xb7, + 0x90, 0x56, 0x1d, 0x98, 0xac, 0x58, 0xf5, 0x0a, 0xf9, 0x4a, 0xef, 0x20, 0x2a, 0x51, 0x19, 0xa9, + 0x1e, 0x2c, 0x0b, 0x61, 0x19, 0x46, 0xf8, 0x21, 0x2d, 0xd6, 0x88, 0x9c, 0x85, 0x4f, 0x6b, 0x0b, + 0xa7, 0x5d, 0xec, 0x75, 0xda, 0xa0, 0xb2, 0xfb, 0x27, 0x5c, 0xec, 0x75, 0xc2, 0x20, 0x87, 0xfc, + 0x53, 0xbd, 0xc1, 0x17, 0x67, 0xfa, 0x16, 0x8e, 0x7e, 0x1e, 0x12, 0x9b, 0xf4, 0x0d, 0xe1, 0x4c, + 0x31, 0x83, 0x95, 0xfa, 0xce, 0x3b, 0xf3, 0xc9, 0x83, 0x8e, 0x55, 0x37, 0x12, 0x9b, 0x75, 0xfd, + 0x2e, 0x0c, 0x7f, 0x92, 0x7d, 0x31, 0x0e, 0x0b, 0xac, 0x32, 0x81, 0x8f, 0xc6, 0x6c, 0x31, 0x11, + 0xea, 0xa5, 0x03, 0xcb, 0xf6, 0xae, 0xae, 0xdc, 0x34, 0x28, 0x45, 0xee, 0x2f, 0x02, 0xd0, 0x73, + 0xae, 0x9b, 0xee, 0x89, 0x5e, 0xe1, 0xcc, 0xf4, 0xd4, 0x37, 0xbf, 0xf3, 0xce, 0xfc, 0xea, 0x20, + 0xac, 0xcf, 0xd6, 0x4d, 0xf7, 0xe4, 0x59, 0xef, 0xb4, 0x85, 0x96, 0x8a, 0xa7, 0x1e, 0x72, 0x39, + 0x7b, 0x8b, 0xaf, 0x7a, 0xec, 0xba, 0xb2, 0xa1, 0xeb, 0x4a, 0x09, 0xd7, 0xb4, 0x21, 0x5e, 0xd3, + 0xf2, 0xc3, 0x5e, 0xcf, 0x1b, 0x7c, 0x91, 0x90, 0x2c, 0xa9, 0xc6, 0x59, 0x52, 0x7d, 0xaf, 0x96, + 0x6c, 0xf1, 0xfa, 0x28, 0x5d, 0xab, 0xda, 0xef, 0x5a, 0xd5, 0xf7, 0x72, 0xad, 0x7f, 0x42, 0xb3, + 0xd5, 0xcf, 0xa7, 0x03, 0x9b, 0xbe, 0x9d, 0xf8, 0xf3, 0xb5, 0x17, 0xf4, 0xbe, 0x76, 0x01, 0xf9, + 0xe4, 0xfd, 0xb7, 0xe6, 0x95, 0xdc, 0x97, 0x13, 0xfc, 0xca, 0x69, 0x22, 0x3d, 0xdc, 0x95, 0xff, + 0xbc, 0xf4, 0x54, 0x1f, 0x84, 0x85, 0xbe, 0xa4, 0xc0, 0x4c, 0x57, 0x25, 0xa7, 0x66, 0x7a, 0x7f, + 0xcb, 0xb9, 0x7d, 0xd6, 0x72, 0xce, 0x14, 0xfc, 0x5d, 0x05, 0xce, 0x49, 0xe5, 0x95, 0xaa, 0x77, + 0x45, 0x52, 0xef, 0xd1, 0xee, 0x33, 0x11, 0xc1, 0x90, 0x76, 0x61, 0xf7, 0x4a, 0x80, 0x10, 0xb3, + 0xef, 0xf7, 0x55, 0xc9, 0xef, 0xe7, 0x7d, 0x40, 0x84, 0xb9, 0x78, 0x04, 0x30, 0xb5, 0x1d, 0x48, + 0xee, 0xb7, 0x11, 0xd2, 0xe7, 0x20, 0xb1, 0xd3, 0x66, 0x1a, 0x4e, 0x50, 0xfc, 0x4e, 0xbb, 0xd8, + 0x36, 0xed, 0xda, 0x89, 0x91, 0xd8, 0x69, 0xeb, 0x17, 0x41, 0x2d, 0xb0, 0x9f, 0x1e, 0x48, 0xaf, + 0x4c, 0x52, 0x81, 0x82, 0x5d, 0x67, 0x12, 0x78, 0x4e, 0x9f, 0x83, 0xe4, 0x16, 0x32, 0x8f, 0x98, + 0x12, 0x40, 0x65, 0xf0, 0x88, 0x41, 0xc6, 0xd9, 0x09, 0x5f, 0x86, 0x14, 0x27, 0xd6, 0x2f, 0x61, + 0xc4, 0x91, 0xc7, 0x4e, 0xcb, 0x10, 0x58, 0x1d, 0xb6, 0x72, 0x91, 0x59, 0xfd, 0x32, 0x0c, 0x1b, + 0xd6, 0xf1, 0x89, 0xc7, 0x4e, 0xde, 0x2d, 0x46, 0xa7, 0x73, 0xf7, 0x60, 0xcc, 0xd7, 0xe8, 0x7d, + 0xa6, 0x5e, 0xa7, 0x97, 0xa6, 0xcf, 0x86, 0xd7, 0x13, 0xbe, 0x6f, 0x49, 0x87, 0xf4, 0x0b, 0x90, + 0xda, 0xf3, 0xda, 0x41, 0xd1, 0xe7, 0x1d, 0xa9, 0x3f, 0x9a, 0xfb, 0x25, 0x05, 0x52, 0xeb, 0x08, + 0xb5, 0x88, 0xc1, 0x9f, 0x82, 0xe4, 0xba, 0xf3, 0xba, 0xcd, 0x14, 0x9c, 0x62, 0x16, 0xc5, 0xd3, + 0xcc, 0xa6, 0x64, 0x5a, 0x7f, 0x2a, 0x6c, 0xf7, 0x69, 0xdf, 0xee, 0x21, 0x39, 0x62, 0xfb, 0x9c, + 0x60, 0x7b, 0xe6, 0x40, 0x2c, 0xd4, 0x65, 0xff, 0x1b, 0x90, 0x0e, 0x9d, 0x45, 0x5f, 0x60, 0x6a, + 0x24, 0x64, 0x60, 0xd8, 0x56, 0x58, 0x22, 0x87, 0x60, 0x5c, 0x38, 0x31, 0x86, 0x86, 0x4c, 0xdc, + 0x03, 0x4a, 0xcc, 0xbc, 0x28, 0x9a, 0x39, 0x5a, 0x94, 0x99, 0x7a, 0x99, 0xda, 0x88, 0x98, 0xfb, + 0x12, 0x0d, 0xce, 0xde, 0x4e, 0xc4, 0x9f, 0x73, 0xc3, 0xa0, 0x56, 0xac, 0x46, 0xee, 0x39, 0x00, + 0x9a, 0xf2, 0x65, 0xbb, 0xd3, 0x94, 0xb2, 0x6e, 0x82, 0x1b, 0x78, 0xff, 0x04, 0xed, 0x23, 0x97, + 0x88, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x9f, 0x89, 0xc5, 0x47, 0x76, 0x62, + 0x58, 0x34, 0x4b, 0x45, 0xef, 0x21, 0xaf, 0x60, 0x3b, 0xde, 0x09, 0x6a, 0x4b, 0x88, 0x15, 0xfd, + 0x9a, 0x90, 0xb0, 0x13, 0x2b, 0x8f, 0xfb, 0x88, 0x9e, 0xa0, 0x6b, 0xb9, 0xaf, 0x13, 0x05, 0x71, + 0x2b, 0xd0, 0x75, 0x81, 0xea, 0x00, 0x17, 0xa8, 0x5f, 0x17, 0xfa, 0xb7, 0x3e, 0x6a, 0x4a, 0xb7, + 0x96, 0xb7, 0x84, 0xfb, 0x9c, 0xfe, 0xca, 0x8a, 0xf7, 0x98, 0xdc, 0xa6, 0x5c, 0xe5, 0x67, 0x62, + 0x55, 0xee, 0xd1, 0xdd, 0x9e, 0xd5, 0xa6, 0xea, 0xa0, 0x36, 0xfd, 0x7d, 0xbf, 0xe3, 0xa0, 0x3f, + 0xe2, 0x40, 0x7e, 0x33, 0x44, 0xff, 0x68, 0xac, 0xef, 0xf3, 0x4a, 0xc9, 0x57, 0x75, 0x75, 0x50, + 0xf7, 0xe7, 0x13, 0xc5, 0xa2, 0xaf, 0xee, 0x8d, 0x33, 0x84, 0x40, 0x3e, 0x51, 0x2a, 0xf9, 0x65, + 0x3b, 0xf5, 0xd9, 0xb7, 0xe6, 0x95, 0xaf, 0xbd, 0x35, 0x3f, 0x94, 0xfb, 0x4d, 0x05, 0xa6, 0x98, + 0x64, 0x28, 0x70, 0x9f, 0x95, 0x94, 0x7f, 0x84, 0xd7, 0x8c, 0x28, 0x0b, 0xfc, 0xd4, 0x82, 0xf7, + 0x5b, 0x0a, 0x64, 0xbb, 0x74, 0xe5, 0xf6, 0x5e, 0x1e, 0x48, 0xe5, 0xbc, 0x52, 0xfe, 0xd9, 0xdb, + 0xfc, 0x1e, 0x0c, 0xef, 0x5b, 0x4d, 0xd4, 0xc6, 0x2b, 0x01, 0xfe, 0x40, 0x55, 0xe6, 0x0f, 0x73, + 0xe8, 0x10, 0x9f, 0xa3, 0xca, 0x09, 0x73, 0x2b, 0x7a, 0x16, 0x92, 0xeb, 0xa6, 0x67, 0x12, 0x0d, + 0x32, 0x7e, 0x7d, 0x35, 0x3d, 0x33, 0x77, 0x0d, 0x32, 0xdb, 0xa7, 0xe4, 0x15, 0x9a, 0x3a, 0x79, + 0x3d, 0x44, 0xec, 0xfe, 0x78, 0xbf, 0x7a, 0x75, 0x71, 0x38, 0x55, 0xd7, 0xee, 0x2b, 0xf9, 0x24, + 0xd1, 0xe7, 0x35, 0x98, 0xd8, 0xc1, 0x6a, 0x13, 0x1c, 0x81, 0x5d, 0x00, 0x65, 0x5b, 0x6c, 0x84, + 0xc2, 0xac, 0x86, 0xb2, 0x2d, 0xb5, 0x8f, 0xaa, 0x6f, 0x1e, 0xa9, 0x6d, 0x53, 0xfd, 0xb6, 0x6d, + 0x31, 0x99, 0x9a, 0xd0, 0xa6, 0x16, 0x93, 0x29, 0xd0, 0xc6, 0xd9, 0x79, 0xff, 0x93, 0x0a, 0x1a, + 0x6d, 0x75, 0xd6, 0xd1, 0x91, 0x65, 0x5b, 0x5e, 0x77, 0xbf, 0xea, 0x6b, 0xac, 0xbf, 0x00, 0x63, + 0xd8, 0xa4, 0x1b, 0xec, 0xa7, 0xb7, 0xb0, 0xe9, 0x2f, 0xb2, 0x16, 0x45, 0xa2, 0x60, 0x03, 0x24, + 0x74, 0x02, 0x8c, 0xbe, 0x01, 0x6a, 0xa5, 0xb2, 0xcd, 0x16, 0xb7, 0xd5, 0xbe, 0x50, 0xf6, 0x06, + 0x0e, 0x3b, 0x62, 0x63, 0xee, 0xb1, 0x81, 0x09, 0xf4, 0x55, 0x48, 0x54, 0xb6, 0x59, 0xc3, 0x7b, + 0x69, 0x10, 0x1a, 0x23, 0x51, 0xd9, 0x9e, 0xfd, 0x77, 0x0a, 0x8c, 0x0b, 0xa3, 0x7a, 0x0e, 0x32, + 0x74, 0x20, 0x74, 0xb9, 0x23, 0x86, 0x30, 0xc6, 0x75, 0x4e, 0xbc, 0x47, 0x9d, 0x67, 0x0b, 0x30, + 0x29, 0x8d, 0xeb, 0x4b, 0xa0, 0x87, 0x87, 0x98, 0x12, 0xf4, 0x67, 0x8b, 0x22, 0x66, 0x72, 0x4f, + 0x00, 0x04, 0x76, 0xf5, 0x7f, 0x6d, 0xa7, 0x52, 0xde, 0xdb, 0x2f, 0xaf, 0x6b, 0x4a, 0xee, 0x9b, + 0x0a, 0xa4, 0x59, 0xdb, 0x5a, 0x73, 0x5a, 0x48, 0x2f, 0x82, 0x52, 0x60, 0x11, 0xf4, 0x70, 0x7a, + 0x2b, 0x05, 0xfd, 0x0a, 0x28, 0xc5, 0xc1, 0x5d, 0xad, 0x14, 0xf5, 0x15, 0x50, 0x4a, 0xcc, 0xc1, + 0x83, 0x79, 0x46, 0x29, 0xe5, 0xfe, 0x48, 0x85, 0xe9, 0x70, 0x1b, 0xcd, 0xeb, 0xc9, 0x45, 0xf1, + 0xbe, 0x29, 0x3f, 0x76, 0x75, 0xe5, 0xda, 0xea, 0x12, 0xfe, 0xc7, 0x0f, 0xc9, 0x8b, 0xe2, 0x2d, + 0x54, 0xb7, 0x48, 0xd7, 0x6b, 0x22, 0xf9, 0x64, 0x68, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, + 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x51, 0x80, 0x30, 0xdb, 0xf5, 0x9a, + 0x88, 0x30, 0xdb, 0xf5, 0x9a, 0x88, 0x30, 0xdb, 0xfd, 0x9a, 0x08, 0x9b, 0xee, 0xf9, 0x9a, 0x88, + 0x38, 0xdf, 0xfd, 0x9a, 0x88, 0x38, 0xdf, 0xfd, 0x9a, 0x48, 0x3e, 0xe9, 0xb5, 0x3b, 0xa8, 0xf7, + 0x43, 0x07, 0x11, 0xdf, 0xef, 0x1e, 0x30, 0x28, 0xc0, 0x3b, 0x30, 0x49, 0xf7, 0x23, 0x4a, 0x8e, + 0xed, 0x99, 0x96, 0x8d, 0xda, 0xfa, 0xc7, 0x20, 0x43, 0x87, 0xe8, 0x5d, 0x4e, 0xd4, 0x5d, 0x20, + 0x9d, 0x67, 0xe5, 0x56, 0x90, 0xce, 0xfd, 0x59, 0x12, 0x66, 0xe8, 0x40, 0xc5, 0x6c, 0x22, 0xe1, + 0x25, 0xa3, 0xcb, 0xd2, 0x23, 0xa5, 0x09, 0x0c, 0x7f, 0xf0, 0xce, 0x3c, 0x1d, 0x2d, 0xf8, 0xc1, + 0x74, 0x59, 0x7a, 0xb8, 0x24, 0xca, 0x05, 0xeb, 0xcf, 0x65, 0xe9, 0xc5, 0x23, 0x51, 0xce, 0x5f, + 0x6e, 0x7c, 0x39, 0xfe, 0x0a, 0x92, 0x28, 0xb7, 0xee, 0x47, 0xd9, 0x65, 0xe9, 0x65, 0x24, 0x51, + 0xae, 0xec, 0xc7, 0xdb, 0x65, 0xe9, 0xd1, 0x93, 0x28, 0xb7, 0xe1, 0x47, 0xde, 0x65, 0xe9, 0x21, + 0x94, 0x28, 0x77, 0xc7, 0x8f, 0xc1, 0xcb, 0xd2, 0xab, 0x4a, 0xa2, 0xdc, 0x8b, 0x7e, 0x34, 0x5e, + 0x96, 0x5e, 0x5a, 0x12, 0xe5, 0x36, 0xfd, 0xb8, 0x5c, 0x90, 0x5f, 0x5f, 0x12, 0x05, 0xef, 0x06, + 0x11, 0xba, 0x20, 0xbf, 0xc8, 0x24, 0x4a, 0x7e, 0x3c, 0x88, 0xd5, 0x05, 0xf9, 0x95, 0x26, 0x51, + 0x72, 0x2b, 0x88, 0xda, 0x05, 0xf9, 0x51, 0x99, 0x28, 0xb9, 0x1d, 0xc4, 0xef, 0x82, 0xfc, 0xd0, + 0x4c, 0x94, 0xac, 0x04, 0x91, 0xbc, 0x20, 0x3f, 0x3e, 0x13, 0x25, 0x77, 0x82, 0x3d, 0xf4, 0x3f, + 0x90, 0xc2, 0x2f, 0xf4, 0x12, 0x54, 0x4e, 0x0a, 0x3f, 0x88, 0x08, 0xbd, 0x9c, 0x14, 0x7a, 0x10, + 0x11, 0x76, 0x39, 0x29, 0xec, 0x20, 0x22, 0xe4, 0x72, 0x52, 0xc8, 0x41, 0x44, 0xb8, 0xe5, 0xa4, + 0x70, 0x83, 0x88, 0x50, 0xcb, 0x49, 0xa1, 0x06, 0x11, 0x61, 0x96, 0x93, 0xc2, 0x0c, 0x22, 0x42, + 0x2c, 0x27, 0x85, 0x18, 0x44, 0x84, 0x57, 0x4e, 0x0a, 0x2f, 0x88, 0x08, 0xad, 0x4b, 0x72, 0x68, + 0x41, 0x54, 0x58, 0x5d, 0x92, 0xc3, 0x0a, 0xa2, 0x42, 0xea, 0x49, 0x39, 0xa4, 0xc6, 0x1e, 0xbc, + 0x33, 0x3f, 0x8c, 0x87, 0x42, 0xd1, 0x74, 0x49, 0x8e, 0x26, 0x88, 0x8a, 0xa4, 0x4b, 0x72, 0x24, + 0x41, 0x54, 0x14, 0x5d, 0x92, 0xa3, 0x08, 0xa2, 0x22, 0xe8, 0x6d, 0x39, 0x82, 0x82, 0x57, 0x7c, + 0x72, 0xd2, 0x13, 0xc5, 0xb8, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, + 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, + 0x90, 0x08, 0x52, 0x07, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x5d, 0x92, 0x5f, 0x78, 0x80, 0xa8, 0x82, + 0x74, 0x49, 0x7e, 0xf2, 0x19, 0x1f, 0x42, 0xea, 0x40, 0x21, 0xa4, 0xf6, 0x0a, 0xa1, 0x3f, 0x50, + 0x61, 0x5a, 0x08, 0x21, 0xf6, 0x78, 0xe8, 0xfd, 0xaa, 0x40, 0xd7, 0x07, 0x78, 0xbf, 0x22, 0x2a, + 0xa6, 0xae, 0x0f, 0xf0, 0x8c, 0xba, 0x5f, 0x9c, 0x75, 0x57, 0xa1, 0xf2, 0x00, 0x55, 0x68, 0xc3, + 0x8f, 0xa1, 0xeb, 0x03, 0xbc, 0x77, 0xd1, 0x1d, 0x7b, 0x37, 0xfb, 0x15, 0x81, 0x17, 0x07, 0x2a, + 0x02, 0x9b, 0x03, 0x15, 0x81, 0xbb, 0x81, 0x07, 0x7f, 0x39, 0x01, 0xe7, 0x02, 0x0f, 0xd2, 0x4f, + 0xe4, 0x27, 0x92, 0x72, 0xa1, 0x27, 0x54, 0x3a, 0x7f, 0x6a, 0x13, 0x72, 0x63, 0x62, 0xb3, 0xae, + 0xef, 0x8a, 0xcf, 0xaa, 0xf2, 0x67, 0x7d, 0x7e, 0x13, 0xf2, 0x38, 0xdb, 0x0b, 0xbd, 0x04, 0xea, + 0x66, 0xdd, 0x25, 0xd5, 0x22, 0xea, 0xb4, 0x25, 0x03, 0x4f, 0xeb, 0x06, 0x8c, 0x10, 0x71, 0x97, + 0xb8, 0xf7, 0xbd, 0x9c, 0x78, 0xdd, 0x60, 0x4c, 0xb9, 0xb7, 0x15, 0xb8, 0x20, 0x84, 0xf2, 0xfb, + 0xf3, 0xc4, 0xe0, 0xf6, 0x40, 0x4f, 0x0c, 0x84, 0x04, 0x09, 0x9e, 0x1e, 0x3c, 0xdd, 0xfd, 0xa0, + 0x3a, 0x9c, 0x25, 0xf2, 0x93, 0x84, 0xbf, 0x0c, 0x13, 0xc1, 0x15, 0x90, 0x5b, 0xb6, 0xb5, 0xf8, + 0xcd, 0xcc, 0xa8, 0xd4, 0x5c, 0x93, 0x36, 0xd1, 0xfa, 0xc2, 0xfc, 0x6c, 0xcd, 0xe5, 0x61, 0xb2, + 0x22, 0x7e, 0x97, 0x27, 0x6e, 0x2f, 0x22, 0x85, 0x5b, 0xf3, 0xfb, 0x5f, 0x99, 0x1f, 0xca, 0x7d, + 0x14, 0x32, 0xe1, 0xaf, 0xeb, 0x48, 0xc0, 0x31, 0x0e, 0xcc, 0x27, 0xbf, 0x8d, 0xa5, 0xff, 0xa1, + 0x02, 0x8f, 0x84, 0xc5, 0x5f, 0xb2, 0xbc, 0x93, 0x4d, 0x1b, 0xf7, 0xf4, 0xcf, 0x41, 0x0a, 0x31, + 0xc7, 0xb1, 0x5f, 0x3b, 0x61, 0xb7, 0x91, 0x91, 0xe2, 0x4b, 0xe4, 0x5f, 0xc3, 0x87, 0x48, 0x5b, + 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x17, 0xf5, 0x1a, 0x97, 0xf4, 0xfa, 0x8d, + 0x08, 0xbd, 0x48, 0x1c, 0xe9, 0x77, 0x05, 0xbd, 0x42, 0x77, 0xab, 0x91, 0xe2, 0x4b, 0x3c, 0xf8, + 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0x65, 0x59, 0x26, 0x5a, 0xcf, + 0x75, 0x48, 0x56, 0x9c, 0x3a, 0xf9, 0x1d, 0x16, 0xf2, 0x7b, 0xb9, 0xcc, 0xc8, 0xec, 0xc7, 0x73, + 0x2f, 0x43, 0xaa, 0x74, 0x62, 0x35, 0xea, 0x6d, 0x64, 0xb3, 0x47, 0xf6, 0x6c, 0x07, 0x1d, 0x63, + 0x0c, 0x7f, 0x2e, 0x57, 0x82, 0xa9, 0x8a, 0x63, 0x17, 0x4f, 0xbd, 0x70, 0xdd, 0x58, 0x92, 0x52, + 0x84, 0x3d, 0xf2, 0x21, 0x5f, 0x00, 0xc1, 0x02, 0xc5, 0xe1, 0xef, 0xbc, 0x33, 0xaf, 0xec, 0xfb, + 0xdb, 0xe7, 0xdb, 0xf0, 0x28, 0x4b, 0x9f, 0x2e, 0xaa, 0x95, 0x38, 0xaa, 0x31, 0xf6, 0x98, 0x3a, + 0x44, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, 0x53, 0xcf, + 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x9d, 0xa4, 0xd9, 0x93, 0x30, 0xe6, 0xcf, 0x85, 0xa2, 0x21, + 0x9c, 0x29, 0x2b, 0x8b, 0x39, 0x48, 0x87, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, 0xe1, 0xff, + 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x52, 0xda, 0xbe, 0xc4, 0x33, 0xeb, + 0x1a, 0xe0, 0xff, 0xca, 0x5a, 0x7a, 0x36, 0xf9, 0xd9, 0x7f, 0x32, 0x37, 0xb4, 0x78, 0x1b, 0xf4, + 0xee, 0x8d, 0x4e, 0x7d, 0x04, 0x12, 0x05, 0x4c, 0xf9, 0x28, 0x24, 0x8a, 0x45, 0x4d, 0x99, 0x9d, + 0xfc, 0x1b, 0x5f, 0xbc, 0x90, 0x2e, 0x92, 0xef, 0x22, 0xdf, 0x43, 0x5e, 0xb1, 0xc8, 0xc0, 0xcf, + 0xc3, 0x23, 0x91, 0x1b, 0xa5, 0x18, 0x5f, 0x2a, 0x51, 0xfc, 0xfa, 0x7a, 0x17, 0x7e, 0x7d, 0x9d, + 0xe0, 0x95, 0x3c, 0x7f, 0xe0, 0x5c, 0xd0, 0x23, 0xb6, 0x25, 0xb3, 0xf5, 0xd0, 0x03, 0xee, 0x42, + 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, 0x97, 0x22, + 0xf1, 0x47, 0xd2, 0x53, 0x55, 0x71, 0x85, 0x60, 0x24, 0x25, 0x5f, 0xe1, 0xf5, 0x48, 0x92, 0x93, + 0xd0, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, 0xfe, 0x0a, + 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x4b, 0xe5, 0x4b, + 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, 0x49, 0x62, + 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xce, 0x0d, 0x7d, 0xfb, 0xdd, 0xb9, 0xa1, 0xff, 0xf6, + 0xee, 0xdc, 0xd0, 0x77, 0xdf, 0x9d, 0x53, 0x7e, 0xf0, 0xee, 0x9c, 0xf2, 0xa3, 0x77, 0xe7, 0x94, + 0x3f, 0x7d, 0x77, 0x4e, 0x79, 0xf3, 0xc1, 0x9c, 0xf2, 0xb5, 0x07, 0x73, 0xca, 0xd7, 0x1f, 0xcc, + 0x29, 0xbf, 0xf7, 0x60, 0x4e, 0x79, 0xfb, 0xc1, 0x9c, 0x72, 0xff, 0xc1, 0x9c, 0xf2, 0xed, 0x07, + 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0x3f, 0x78, 0x30, 0x37, 0xf4, 0xa3, 0x07, 0x73, 0xca, 0x9f, + 0x3e, 0x98, 0x1b, 0x7a, 0xf3, 0x7b, 0x73, 0x43, 0x6f, 0x7d, 0x6f, 0x6e, 0xe8, 0x6b, 0xdf, 0x9b, + 0x53, 0xe0, 0xbb, 0xab, 0xf0, 0xb8, 0xf4, 0x45, 0x32, 0xd2, 0x0d, 0x5c, 0xe3, 0x3f, 0xe5, 0xe4, + 0x0f, 0x9c, 0xf1, 0xfb, 0x64, 0xb3, 0x0f, 0xfb, 0xed, 0xb5, 0xdc, 0xbf, 0x1f, 0x86, 0x51, 0xbe, + 0x0b, 0x1c, 0xf5, 0x63, 0xd0, 0x6b, 0x90, 0x3a, 0xb1, 0x1a, 0x66, 0xdb, 0xf2, 0x4e, 0xd9, 0xf6, + 0xe7, 0x63, 0x4b, 0x81, 0xda, 0x7c, 0xc3, 0xf4, 0xc5, 0x4e, 0xd3, 0xe9, 0xb4, 0x0d, 0x5f, 0x54, + 0xbf, 0x00, 0x99, 0x13, 0x64, 0x1d, 0x9f, 0x78, 0x55, 0xcb, 0xae, 0xd6, 0x9a, 0xa4, 0x4d, 0x1e, + 0x37, 0x80, 0x8e, 0x6d, 0xda, 0xa5, 0x26, 0x3e, 0x59, 0xdd, 0xf4, 0x4c, 0x72, 0x7b, 0x9e, 0x31, + 0xc8, 0x67, 0xfd, 0x22, 0x64, 0xda, 0xc8, 0xed, 0x34, 0xbc, 0x6a, 0xcd, 0xe9, 0xd8, 0x1e, 0x69, + 0x64, 0x55, 0x23, 0x4d, 0xc7, 0x4a, 0x78, 0x48, 0x7f, 0x12, 0xc6, 0xbd, 0x76, 0x07, 0x55, 0xdd, + 0x9a, 0xe3, 0xb9, 0x4d, 0xd3, 0x26, 0x8d, 0x6c, 0xca, 0xc8, 0xe0, 0xc1, 0x3d, 0x36, 0x46, 0xfe, + 0xd8, 0x40, 0xcd, 0x69, 0x23, 0x72, 0x1f, 0x9d, 0x30, 0xe8, 0x81, 0xae, 0x81, 0xfa, 0x2a, 0x3a, + 0x25, 0x77, 0x6a, 0x49, 0x03, 0x7f, 0xd4, 0x9f, 0x81, 0x11, 0xfa, 0x77, 0x28, 0x48, 0x5b, 0x4d, + 0x1e, 0x5a, 0xfb, 0x97, 0x46, 0x37, 0x67, 0x0d, 0x26, 0xa0, 0xdf, 0x82, 0x51, 0x0f, 0xb5, 0xdb, + 0xa6, 0x65, 0x93, 0xbb, 0xa6, 0xf4, 0xca, 0x7c, 0x84, 0x19, 0xf6, 0xa9, 0x04, 0xf9, 0x5d, 0x57, + 0x83, 0xcb, 0xeb, 0x6b, 0x90, 0x21, 0x72, 0x2b, 0x55, 0xfa, 0xb7, 0x3a, 0xd2, 0x3d, 0x03, 0x39, + 0x4d, 0xe5, 0xf8, 0x33, 0x02, 0x0e, 0xa3, 0xbf, 0x69, 0x37, 0x4e, 0x4e, 0xfb, 0x64, 0xc4, 0x69, + 0x49, 0xcd, 0x5d, 0x21, 0xfd, 0x22, 0x3d, 0x35, 0xe3, 0xa1, 0xbf, 0x7a, 0xb7, 0x0d, 0x99, 0xb0, + 0x5e, 0xdc, 0x0c, 0xb4, 0xef, 0x21, 0x66, 0x78, 0x3a, 0xf8, 0x1d, 0xf7, 0x1e, 0x56, 0xa0, 0xf3, + 0xf9, 0xc4, 0x4d, 0x65, 0x76, 0x17, 0x34, 0xf9, 0x7c, 0x11, 0x94, 0x97, 0x45, 0x4a, 0x2d, 0x7c, + 0xb1, 0x64, 0x87, 0x3c, 0x60, 0xcc, 0xbd, 0x00, 0x23, 0x34, 0x7e, 0xf4, 0x34, 0x8c, 0x06, 0x3f, + 0x97, 0x98, 0x82, 0xe4, 0xee, 0x41, 0x65, 0x8f, 0xfe, 0xee, 0xe9, 0xde, 0x56, 0x61, 0x77, 0x6f, + 0x7f, 0xb3, 0xf4, 0x71, 0x2d, 0xa1, 0x4f, 0x42, 0xba, 0xb8, 0xb9, 0xb5, 0x55, 0x2d, 0x16, 0x36, + 0xb7, 0xca, 0xf7, 0x34, 0x35, 0x37, 0x07, 0x23, 0x54, 0x4f, 0xf2, 0xfb, 0x6d, 0x1d, 0xdb, 0x3e, + 0xe5, 0x7d, 0x03, 0x39, 0xc8, 0x7d, 0x43, 0x87, 0xd1, 0x42, 0xa3, 0xb1, 0x6d, 0xb6, 0x5c, 0xfd, + 0x25, 0x98, 0xa2, 0xbf, 0x24, 0xb1, 0xef, 0xac, 0x93, 0x9f, 0x19, 0xc4, 0x55, 0x41, 0x61, 0xbf, + 0x5f, 0x1f, 0x5c, 0x37, 0x13, 0x5f, 0xea, 0x92, 0xa5, 0x06, 0xee, 0xe6, 0xd0, 0xf7, 0x41, 0xe3, + 0x83, 0x1b, 0x0d, 0xc7, 0xf4, 0x30, 0x6f, 0x82, 0xfd, 0x0a, 0x60, 0x6f, 0x5e, 0x2e, 0x4a, 0x69, + 0xbb, 0x18, 0xf4, 0x8f, 0x41, 0x6a, 0xd3, 0xf6, 0xae, 0xad, 0x60, 0x36, 0xfe, 0xb7, 0x55, 0xba, + 0xd9, 0xb8, 0x08, 0x65, 0xf1, 0x11, 0x0c, 0x7d, 0x7d, 0x15, 0xa3, 0x93, 0xfd, 0xd0, 0x44, 0x24, + 0x40, 0x93, 0x43, 0xfd, 0x05, 0x18, 0xc3, 0xb7, 0x25, 0xf4, 0xe4, 0xc3, 0xbc, 0x67, 0xed, 0x82, + 0xfb, 0x32, 0x14, 0x1f, 0x60, 0x38, 0x01, 0x3d, 0xff, 0x48, 0x5f, 0x82, 0x90, 0x02, 0x01, 0x06, + 0x13, 0xec, 0xf9, 0x1a, 0x8c, 0xf6, 0x24, 0xd8, 0x93, 0x34, 0xd8, 0x0b, 0x6b, 0xb0, 0xe7, 0x6b, + 0x90, 0xea, 0x4b, 0x10, 0xd6, 0xc0, 0x3f, 0xd6, 0x8b, 0x00, 0x1b, 0xd6, 0x1b, 0xa8, 0x4e, 0x55, + 0xa0, 0x7f, 0x79, 0x25, 0x17, 0xc1, 0x10, 0x08, 0x51, 0x8a, 0x10, 0x4a, 0x2f, 0x43, 0x7a, 0xef, + 0x28, 0x20, 0x81, 0xae, 0x3c, 0xf6, 0xd5, 0x38, 0x92, 0x58, 0xc2, 0x38, 0x5f, 0x15, 0x7a, 0x31, + 0xe9, 0xfe, 0xaa, 0x84, 0xae, 0x26, 0x84, 0x0a, 0x54, 0xa1, 0x24, 0x99, 0x18, 0x55, 0x42, 0x2c, + 0x61, 0x1c, 0x2e, 0x86, 0x45, 0xc7, 0xc1, 0x92, 0xac, 0x2a, 0xcd, 0x47, 0x50, 0x30, 0x09, 0x56, + 0x0c, 0xd9, 0x11, 0xf1, 0x08, 0x09, 0x72, 0x0c, 0x9e, 0xe8, 0xed, 0x11, 0x2e, 0xc3, 0x3d, 0xc2, + 0x8f, 0xc3, 0x79, 0x46, 0xde, 0x64, 0xc5, 0x3c, 0x93, 0xb1, 0x79, 0xc6, 0x45, 0xa5, 0x3c, 0xe3, + 0xc3, 0xfa, 0x27, 0x60, 0x92, 0x8f, 0xe1, 0xf2, 0x84, 0x49, 0x35, 0xf6, 0xb7, 0xa9, 0x7a, 0x93, + 0x32, 0x49, 0xca, 0x29, 0xe3, 0xf5, 0x0a, 0x4c, 0xf0, 0xa1, 0x6d, 0x97, 0x5c, 0xee, 0x14, 0xfb, + 0xbb, 0x0f, 0xbd, 0x19, 0xa9, 0x20, 0x25, 0x94, 0xd0, 0xb3, 0xeb, 0x30, 0x13, 0x5d, 0x8d, 0xc2, + 0xe5, 0x77, 0x8c, 0x96, 0xdf, 0x73, 0xe1, 0xf2, 0xab, 0x84, 0xcb, 0x77, 0x09, 0x1e, 0x89, 0xac, + 0x3d, 0x71, 0x24, 0x89, 0x30, 0xc9, 0x6d, 0x18, 0x17, 0x4a, 0x4e, 0x18, 0x3c, 0x1c, 0x01, 0x1e, + 0xee, 0x06, 0x07, 0xa1, 0x15, 0xb1, 0x7a, 0x08, 0x60, 0x35, 0x0c, 0xfe, 0x18, 0x4c, 0x88, 0xf5, + 0x26, 0x8c, 0x1e, 0x8f, 0x40, 0x8f, 0x47, 0xa0, 0xa3, 0xcf, 0x9d, 0x8c, 0x40, 0x27, 0x25, 0xf4, + 0x5e, 0xcf, 0x73, 0x4f, 0x45, 0xa0, 0xa7, 0x22, 0xd0, 0xd1, 0xe7, 0xd6, 0x23, 0xd0, 0x7a, 0x18, + 0xfd, 0x1c, 0x4c, 0x4a, 0x25, 0x26, 0x0c, 0x1f, 0x8d, 0x80, 0x8f, 0x86, 0xe1, 0xcf, 0x83, 0x26, + 0x17, 0x97, 0x30, 0x7e, 0x32, 0x02, 0x3f, 0x19, 0x75, 0xfa, 0x68, 0xed, 0x47, 0x22, 0xe0, 0x23, + 0x91, 0xa7, 0x8f, 0xc6, 0x6b, 0x11, 0x78, 0x2d, 0x8c, 0xcf, 0x43, 0x26, 0x5c, 0x4d, 0xc2, 0xd8, + 0x54, 0x04, 0x36, 0x25, 0xdb, 0x5d, 0x28, 0x26, 0x71, 0x91, 0x3e, 0xd6, 0x23, 0x5d, 0x84, 0x12, + 0x12, 0x47, 0x92, 0x09, 0x93, 0x7c, 0x12, 0xce, 0x45, 0x95, 0x8c, 0x08, 0x8e, 0x85, 0x30, 0xc7, + 0x04, 0xee, 0x11, 0x83, 0x66, 0xcf, 0x6c, 0x49, 0x8d, 0xd3, 0xec, 0xa7, 0x60, 0x3a, 0xa2, 0x70, + 0x44, 0xd0, 0x2e, 0x89, 0xdd, 0x58, 0x36, 0x44, 0x4b, 0x8a, 0x80, 0x65, 0x1f, 0xef, 0x3a, 0x96, + 0xed, 0x85, 0xbb, 0xb2, 0x6f, 0x4e, 0xc3, 0x04, 0x2b, 0x4f, 0x3b, 0xed, 0x3a, 0x6a, 0xa3, 0xba, + 0xfe, 0x97, 0x7a, 0xf7, 0x4e, 0xcb, 0xdd, 0x45, 0x8d, 0xa1, 0xce, 0xd0, 0x42, 0x7d, 0xaa, 0x67, + 0x0b, 0x75, 0x25, 0x9e, 0x3e, 0xae, 0x93, 0x2a, 0x75, 0x75, 0x52, 0x4f, 0xf7, 0x26, 0xed, 0xd5, + 0x50, 0x95, 0xba, 0x1a, 0xaa, 0xfe, 0x24, 0x91, 0x7d, 0xd5, 0x46, 0x77, 0x5f, 0xb5, 0xd0, 0x9b, + 0xa5, 0x77, 0x7b, 0xb5, 0xd1, 0xdd, 0x5e, 0xc5, 0xf0, 0x44, 0x77, 0x59, 0x1b, 0xdd, 0x5d, 0x56, + 0x1f, 0x9e, 0xde, 0xcd, 0xd6, 0x46, 0x77, 0xb3, 0x15, 0xc3, 0x13, 0xdd, 0x73, 0x6d, 0x46, 0xf4, + 0x5c, 0xcf, 0xf4, 0x26, 0xea, 0xd7, 0x7a, 0x6d, 0x45, 0xb5, 0x5e, 0x8b, 0x7d, 0x94, 0xea, 0xdb, + 0x81, 0x6d, 0x46, 0x74, 0x60, 0x71, 0x8a, 0xf5, 0x68, 0xc4, 0xb6, 0xa2, 0x1a, 0xb1, 0x58, 0xc5, + 0x7a, 0xf5, 0x63, 0x7f, 0x41, 0xee, 0xc7, 0x2e, 0xf7, 0x66, 0x8a, 0x6e, 0xcb, 0x36, 0xba, 0xdb, + 0xb2, 0x85, 0xb8, 0x9c, 0x8b, 0xea, 0xce, 0x3e, 0xd5, 0xb3, 0x3b, 0x1b, 0x20, 0x85, 0xe3, 0x9a, + 0xb4, 0x97, 0x7b, 0x35, 0x69, 0x4b, 0xf1, 0xdc, 0xfd, 0x7b, 0xb5, 0x83, 0x1e, 0xbd, 0xda, 0xb3, + 0xf1, 0xc4, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x3f, 0xfb, + 0x96, 0x2d, 0x9f, 0xfc, 0xdc, 0x57, 0xe6, 0x95, 0xdc, 0x7f, 0x55, 0xfd, 0x3f, 0x99, 0xf5, 0x92, + 0xe5, 0x9d, 0xe0, 0xf2, 0xb6, 0x0d, 0x19, 0xf2, 0xc7, 0x2e, 0x9a, 0x66, 0xab, 0x65, 0xd9, 0xc7, + 0xac, 0x67, 0x5b, 0xec, 0xde, 0x4a, 0x64, 0x00, 0xf2, 0xe7, 0x42, 0xb6, 0xa9, 0x30, 0x5b, 0x6e, + 0xec, 0x60, 0x44, 0xbf, 0x0b, 0xe9, 0xa6, 0x7b, 0xec, 0xb3, 0x25, 0xba, 0x16, 0x42, 0x89, 0x8d, + 0x5e, 0x69, 0x40, 0x06, 0x4d, 0x7f, 0x00, 0xab, 0x76, 0x78, 0xea, 0x05, 0xaa, 0xa9, 0x71, 0xaa, + 0x61, 0x9f, 0x8a, 0xaa, 0x1d, 0x06, 0x23, 0x38, 0x6c, 0x65, 0xdd, 0xe3, 0x2a, 0x9d, 0x10, 0x3c, + 0x2f, 0xc1, 0xa4, 0xa4, 0x6d, 0x44, 0xce, 0x3f, 0x84, 0x6f, 0xb0, 0x62, 0xb2, 0xe6, 0x71, 0x39, + 0x11, 0x0e, 0xc8, 0xdc, 0x13, 0x30, 0x2e, 0x70, 0xeb, 0x19, 0x50, 0x8e, 0xd8, 0xd7, 0x28, 0x95, + 0xa3, 0xdc, 0x97, 0x15, 0x48, 0xb3, 0x77, 0x08, 0x76, 0x4d, 0xab, 0xad, 0xbf, 0x08, 0xc9, 0x06, + 0xff, 0x2a, 0xd3, 0xc3, 0x7e, 0x6d, 0x96, 0x30, 0xe8, 0x1b, 0x30, 0xdc, 0xf6, 0xbf, 0xea, 0xf4, + 0x50, 0xdf, 0x85, 0x25, 0xf0, 0xdc, 0x7d, 0x05, 0xa6, 0xd8, 0x2b, 0xae, 0x2e, 0x7b, 0xf1, 0xd9, + 0x6c, 0xcd, 0x7e, 0x43, 0x81, 0x31, 0xff, 0x48, 0x3f, 0x84, 0x09, 0xff, 0x80, 0xbe, 0x5c, 0x4f, + 0x23, 0x35, 0x1f, 0xb2, 0x70, 0x17, 0xc7, 0x52, 0xc4, 0x27, 0xfa, 0x14, 0x8a, 0xae, 0xc9, 0xe2, + 0xe0, 0x6c, 0x01, 0xa6, 0x23, 0xc4, 0xce, 0xb2, 0x20, 0xe7, 0x2e, 0xc2, 0x58, 0xc5, 0xf1, 0xe8, + 0x2f, 0xe6, 0xe8, 0xe7, 0x42, 0x4f, 0x15, 0x8a, 0x09, 0x6d, 0x88, 0x80, 0x17, 0x2f, 0xc2, 0x28, + 0xcb, 0x7e, 0x7d, 0x04, 0x12, 0xdb, 0x05, 0x6d, 0x88, 0xfc, 0x5f, 0xd4, 0x14, 0xf2, 0x7f, 0x49, + 0x4b, 0x14, 0xb7, 0xde, 0xcf, 0x47, 0x4c, 0x87, 0x23, 0xd4, 0x3c, 0x7f, 0x1e, 0x00, 0x00, 0xff, + 0xff, 0x71, 0x6f, 0x41, 0x4f, 0x26, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1985,6 +2021,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2463,6 +2569,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3082,6 +3211,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3090,497 +3229,505 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Message) Marshal() (data []byte, err error) { +func (m *Message) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Message) MarshalTo(data []byte) (int, error) { +func (m *Message) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Name) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Name))) - i += copy(data[i:], m.Name) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) } if m.Hilarity != 0 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Hilarity)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) } if m.HeightInCm != 0 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintTheproto3(data, i, uint64(m.HeightInCm)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) } if len(m.Data) > 0 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if len(m.Key) > 0 { + dAtA2 := make([]byte, len(m.Key)*10) + var j1 int for _, num := range m.Key { - data[i] = 0x28 - i++ - i = encodeVarintTheproto3(data, i, uint64(num)) + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ } + dAtA[i] = 0x2a + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(j1)) + i += copy(dAtA[i:], dAtA2[:j1]) } if m.Nested != nil { - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Nested.Size())) - n1, err := m.Nested.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) + n3, err := m.Nested.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n3 } if m.ResultCount != 0 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintTheproto3(data, i, uint64(m.ResultCount)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) } if m.TrueScotsman { - data[i] = 0x40 + dAtA[i] = 0x40 i++ if m.TrueScotsman { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Score != 0 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(m.Score)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(m.Score)))) } if len(m.Terrain) > 0 { for k := range m.Terrain { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Terrain[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 } - i += n2 } } if m.Proto2Field != nil { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintTheproto3(data, i, uint64(m.Proto2Field.Size())) - n3, err := m.Proto2Field.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) + n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n5 } if len(m.Proto2Value) > 0 { for k := range m.Proto2Value { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.Proto2Value[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n4, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n4 } } return i, nil } -func (m *Nested) Marshal() (data []byte, err error) { +func (m *Nested) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nested) MarshalTo(data []byte) (int, error) { +func (m *Nested) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Bunny) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Bunny))) - i += copy(data[i:], m.Bunny) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) + i += copy(dAtA[i:], m.Bunny) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n5, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n7, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 } - i += n5 } } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -3592,18 +3739,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -3613,18 +3760,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -3634,17 +3781,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -3654,17 +3801,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -3674,17 +3821,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -3694,17 +3841,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -3714,17 +3861,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -3734,17 +3881,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -3754,17 +3901,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -3774,17 +3921,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -3794,17 +3941,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -3814,17 +3961,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -3834,25 +3981,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -3864,19 +4011,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -3886,19 +4033,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -3908,20 +4061,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -3931,183 +4084,195 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n6, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n8, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 } - i += n6 } } return i, nil } -func (m *MessageWithMap) Marshal() (data []byte, err error) { +func (m *MessageWithMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MessageWithMap) MarshalTo(data []byte) (int, error) { +func (m *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NameMapping) > 0 { for k := range m.NameMapping { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NameMapping[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.MsgMapping) > 0 { for k := range m.MsgMapping { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.MsgMapping[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x12 + mapSize := 1 + sozTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n7, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n9, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 } - i += n7 } } if len(m.ByteMapping) > 0 { for k := range m.ByteMapping { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.ByteMapping[k] - mapSize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + 1 + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != 0 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(m.F)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(m.F)))) } return i, nil } -func (m *Uint128Pair) Marshal() (data []byte, err error) { +func (m *Uint128Pair) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Uint128Pair) MarshalTo(data []byte) (int, error) { +func (m *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(m.Left.Size())) - n8, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) + n10, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n10 if m.Right != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Right.Size())) - n9, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) + n11, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n11 } return i, nil } -func (m *ContainsNestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -4115,70 +4280,95 @@ func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *ContainsNestedMap_NestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap_NestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap_NestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NestedMapField) > 0 { for k := range m.NestedMapField { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NestedMapField[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 + i++ + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + } + } + return i, nil +} + +func (m *NotPacked) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + for _, num := range m.Key { + dAtA[i] = 0x28 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeVarintTheproto3(dAtA, i, uint64(num)) } } return i, nil } -func encodeFixed64Theproto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Theproto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Theproto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Theproto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintTheproto3(data []byte, offset int, v uint64) int { +func encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -4227,7 +4417,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -4648,6 +4838,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -4667,14 +4869,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -4682,43 +4884,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -4738,9 +4940,11 @@ func (m *Message) Size() (n int) { n += 1 + l + sovTheproto3(uint64(l)) } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -4762,8 +4966,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4778,8 +4983,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4915,7 +5121,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4934,8 +5144,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5061,7 +5272,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5080,8 +5295,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5106,8 +5322,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5115,7 +5332,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5163,6 +5384,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -5711,6 +5943,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -5719,8 +5961,8 @@ func valueToStringTheproto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Message) Unmarshal(data []byte) error { - l := len(data) +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5732,7 +5974,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5760,7 +6002,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5775,7 +6017,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(data[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -5789,7 +6031,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Hilarity |= (Message_Humour(b) & 0x7F) << shift if b < 0x80 { @@ -5808,7 +6050,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.HeightInCm |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -5827,7 +6069,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5841,31 +6083,73 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.Key = append(m.Key, v) case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) @@ -5878,7 +6162,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5895,7 +6179,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Nested == nil { m.Nested = &Nested{} } - if err := m.Nested.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5911,7 +6195,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.ResultCount |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5930,7 +6214,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5947,10 +6231,10 @@ func (m *Message) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Score = float32(math.Float32frombits(v)) case 10: if wireType != 2 { @@ -5964,7 +6248,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5986,7 +6270,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6001,62 +6285,67 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Terrain == nil { + m.Terrain = make(map[int64]*Nested) } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Terrain[mapkey] = mapvalue + } else { + var mapvalue *Nested + m.Terrain[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6070,7 +6359,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6087,7 +6376,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Proto2Field == nil { m.Proto2Field = &test.NinOptNative{} } - if err := m.Proto2Field.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6103,7 +6392,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6125,7 +6414,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6140,66 +6429,71 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.Proto2Value == nil { + m.Proto2Value = make(map[int64]*test.NinOptEnum) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Proto2Value[mapkey] = mapvalue + } else { + var mapvalue *test.NinOptEnum + m.Proto2Value[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - m.Proto2Value[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -6218,8 +6512,8 @@ func (m *Message) Unmarshal(data []byte) error { } return nil } -func (m *Nested) Unmarshal(data []byte) error { - l := len(data) +func (m *Nested) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6231,7 +6525,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6259,7 +6553,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6274,11 +6568,11 @@ func (m *Nested) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bunny = string(data[iNdEx:postIndex]) + m.Bunny = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -6297,8 +6591,8 @@ func (m *Nested) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6310,7 +6604,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6338,7 +6632,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6360,7 +6654,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6375,7 +6669,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6390,41 +6684,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -6438,7 +6737,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6460,7 +6759,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6475,7 +6774,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6490,37 +6789,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -6534,7 +6838,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6556,7 +6860,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6571,47 +6875,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -6625,7 +6934,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6647,7 +6956,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6662,47 +6971,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -6716,7 +7030,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6738,7 +7052,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6753,48 +7067,53 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - m.Uint32Map[mapkey] = mapvalue - iNdEx = postIndex + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue + } + iNdEx = postIndex case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) @@ -6807,7 +7126,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6829,7 +7148,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6844,47 +7163,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6898,7 +7222,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6920,7 +7244,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6935,7 +7259,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -6944,42 +7268,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6993,7 +7322,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7015,7 +7344,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7030,7 +7359,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7039,42 +7368,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7088,7 +7422,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7110,7 +7444,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7122,38 +7456,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7167,7 +7506,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7189,7 +7528,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7201,38 +7540,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7246,7 +7590,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7268,7 +7612,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7280,46 +7624,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -7333,7 +7682,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7355,7 +7704,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7367,46 +7716,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -7420,7 +7774,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7442,7 +7796,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7457,7 +7811,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7465,41 +7819,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -7513,7 +7872,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7535,7 +7894,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7550,7 +7909,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7565,52 +7924,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -7624,7 +7988,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7646,7 +8010,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7661,7 +8025,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7672,57 +8036,62 @@ func (m *AllMaps) Unmarshal(data []byte) error { if intStringLenmapkey < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - m.StringToBytesMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue + } iNdEx = postIndex case 16: if wireType != 2 { @@ -7736,7 +8105,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7758,7 +8127,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7773,7 +8142,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7788,42 +8157,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7837,7 +8211,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7859,7 +8233,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7874,7 +8248,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7889,61 +8263,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -7962,8 +8341,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -7975,7 +8354,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8003,7 +8382,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8025,7 +8404,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8040,7 +8419,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8055,41 +8434,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -8103,7 +8487,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8125,7 +8509,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8140,7 +8524,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8155,37 +8539,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -8199,7 +8588,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8221,7 +8610,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8236,47 +8625,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -8290,7 +8684,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8312,7 +8706,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8327,47 +8721,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -8381,7 +8780,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8403,7 +8802,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8418,47 +8817,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -8472,7 +8876,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8494,7 +8898,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8509,47 +8913,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -8563,7 +8972,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8585,7 +8994,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8600,7 +9009,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -8609,42 +9018,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -8658,7 +9072,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8680,7 +9094,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8695,7 +9109,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8704,42 +9118,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -8753,7 +9172,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8775,7 +9194,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8787,38 +9206,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -8832,7 +9256,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8854,7 +9278,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8866,38 +9290,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -8911,7 +9340,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8933,7 +9362,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8945,46 +9374,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -8998,7 +9432,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9020,7 +9454,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9032,46 +9466,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -9085,7 +9524,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9107,7 +9546,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9122,7 +9561,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9130,41 +9569,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -9178,7 +9622,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9200,7 +9644,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9215,7 +9659,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9230,52 +9674,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -9289,7 +9738,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9311,7 +9760,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9326,7 +9775,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9341,53 +9790,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -9401,7 +9855,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9423,7 +9877,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9438,7 +9892,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9453,42 +9907,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -9502,7 +9961,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9524,7 +9983,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9539,7 +9998,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9554,61 +10013,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -9627,8 +10091,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func (m *MessageWithMap) Unmarshal(data []byte) error { - l := len(data) +func (m *MessageWithMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9640,7 +10104,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9668,7 +10132,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9690,7 +10154,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9705,57 +10169,62 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.NameMapping == nil { + m.NameMapping = make(map[int32]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.NameMapping[mapkey] = mapvalue + } else { + var mapvalue string + m.NameMapping[mapkey] = mapvalue } - m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -9769,7 +10238,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9791,7 +10260,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9806,7 +10275,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9815,55 +10284,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.MsgMapping == nil { + m.MsgMapping = make(map[int64]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MsgMapping[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.MsgMapping[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -9877,7 +10351,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9899,7 +10373,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9914,7 +10388,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9922,55 +10396,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.ByteMapping == nil { + m.ByteMapping = make(map[bool][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.ByteMapping[mapkey] = mapvalue + } else { + var mapvalue []byte + m.ByteMapping[mapkey] = mapvalue } - m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -9989,8 +10468,8 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } return nil } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10002,7 +10481,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10027,18 +10506,18 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.F = float64(math.Float64frombits(v)) default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -10057,8 +10536,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *Uint128Pair) Unmarshal(data []byte) error { - l := len(data) +func (m *Uint128Pair) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10070,7 +10549,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10098,7 +10577,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10112,7 +10591,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10128,7 +10607,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10144,13 +10623,13 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Right = &v - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -10169,8 +10648,8 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10182,7 +10661,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10200,7 +10679,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -10219,8 +10698,8 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10232,7 +10711,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10260,7 +10739,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10282,7 +10761,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10297,7 +10776,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10312,45 +10791,162 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if m.NestedMapField == nil { + m.NestedMapField = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.NestedMapField[mapkey] = mapvalue + } else { + var mapvalue float64 + m.NestedMapField[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotPacked) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotPacked: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 5: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.NestedMapField[mapkey] = mapvalue - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -10369,8 +10965,8 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { } return nil } -func skipTheproto3(data []byte) (n int, err error) { - l := len(data) +func skipTheproto3(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -10381,7 +10977,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10399,7 +10995,7 @@ func skipTheproto3(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -10416,7 +11012,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10439,7 +11035,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10450,7 +11046,7 @@ func skipTheproto3(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipTheproto3(data[start:]) + next, err := skipTheproto3(dAtA[start:]) if err != nil { return 0, err } @@ -10474,105 +11070,109 @@ var ( ErrIntOverflowTheproto3 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/both/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1576 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0xbd, 0x6f, 0xdb, 0xc6, - 0x1b, 0x36, 0x25, 0x59, 0x1f, 0xaf, 0xbe, 0xe8, 0x4b, 0x7e, 0x3f, 0xa8, 0x2e, 0x6a, 0x3b, 0x0a, - 0x90, 0x38, 0x41, 0x23, 0xa7, 0x4e, 0xda, 0xa6, 0x6e, 0xda, 0xd4, 0x52, 0x2c, 0xc4, 0x8d, 0xad, - 0xb8, 0x92, 0x1d, 0xb7, 0x08, 0x50, 0x81, 0xb2, 0x29, 0x89, 0xa8, 0x44, 0x1a, 0x24, 0x15, 0xd4, - 0x5b, 0xfe, 0x8c, 0x6e, 0x45, 0xb7, 0x8e, 0x45, 0x86, 0xa2, 0x63, 0xbb, 0x79, 0x0c, 0xd0, 0xa5, - 0xe8, 0x10, 0x24, 0xe9, 0x92, 0x31, 0x63, 0xc6, 0xde, 0x07, 0x49, 0x1d, 0xa9, 0xa3, 0xd8, 0x74, - 0xe9, 0xe2, 0xe1, 0x20, 0xde, 0xcb, 0xe7, 0x79, 0xee, 0xbd, 0xe3, 0xdd, 0xcb, 0x07, 0x14, 0xbc, - 0x7d, 0x60, 0x0c, 0x3b, 0x86, 0xb5, 0xd2, 0x31, 0xec, 0xfe, 0x8a, 0xdd, 0x57, 0x8f, 0x4c, 0xc3, - 0x36, 0xae, 0x55, 0xe8, 0x0f, 0xca, 0x78, 0x81, 0xf9, 0x2b, 0x3d, 0xcd, 0xee, 0x8f, 0x3a, 0x15, - 0x0c, 0x5f, 0xe9, 0x19, 0x3d, 0x63, 0x85, 0xc6, 0x3b, 0xa3, 0x2e, 0xed, 0xd1, 0x0e, 0xbd, 0x62, - 0xcc, 0xf9, 0x0f, 0x43, 0xe1, 0xb6, 0x6a, 0xd9, 0x2b, 0x81, 0x41, 0x49, 0x8c, 0x11, 0xcb, 0xbf, - 0xcd, 0x42, 0x6a, 0x5b, 0xb5, 0x2c, 0xa5, 0xa7, 0x22, 0x04, 0x09, 0x5d, 0x19, 0xaa, 0x25, 0x69, - 0x49, 0x5a, 0xce, 0x34, 0xe9, 0x35, 0x7a, 0x1f, 0xd2, 0x7d, 0x6d, 0xa0, 0x98, 0x9a, 0x7d, 0x5c, - 0x8a, 0xe1, 0x78, 0x61, 0xf5, 0xad, 0xca, 0x38, 0x6d, 0x87, 0x59, 0xb9, 0x33, 0x1a, 0x1a, 0x23, - 0xb3, 0xe9, 0x41, 0xd1, 0x12, 0xe4, 0xfa, 0xaa, 0xd6, 0xeb, 0xdb, 0x6d, 0x4d, 0x6f, 0x1f, 0x0c, - 0x4b, 0x71, 0x4c, 0xcd, 0x37, 0x81, 0xc5, 0x36, 0xf5, 0xda, 0x90, 0x0c, 0x76, 0xa8, 0xd8, 0x4a, - 0x29, 0x81, 0xef, 0xe4, 0x9a, 0xf4, 0x1a, 0xc9, 0x10, 0xff, 0x46, 0x3d, 0x2e, 0xcd, 0x2e, 0xc5, - 0x97, 0x13, 0x4d, 0x72, 0x89, 0x2e, 0x41, 0x52, 0xc7, 0xc9, 0xaa, 0x87, 0xa5, 0x24, 0xc6, 0x65, - 0x57, 0xe7, 0xb8, 0xc1, 0x1b, 0xf4, 0x46, 0xd3, 0x01, 0xa0, 0x73, 0x90, 0x33, 0x55, 0x6b, 0x34, - 0xb0, 0xdb, 0x07, 0xc6, 0x48, 0xb7, 0x4b, 0x29, 0x4c, 0x88, 0x37, 0xb3, 0x2c, 0x56, 0x23, 0x21, - 0x74, 0x1e, 0xf2, 0xb6, 0x39, 0x52, 0xdb, 0xd6, 0x81, 0x61, 0x5b, 0x43, 0x45, 0x2f, 0xa5, 0x31, - 0x26, 0xdd, 0xcc, 0x91, 0x60, 0xcb, 0x89, 0xa1, 0xb3, 0x30, 0x8b, 0xef, 0x9b, 0x6a, 0x29, 0x83, - 0x6f, 0xc6, 0x9a, 0xac, 0x83, 0x3e, 0x82, 0x94, 0xad, 0x9a, 0xa6, 0xa2, 0xe9, 0x25, 0xc0, 0xe9, - 0x65, 0x57, 0x17, 0x05, 0xcb, 0xb0, 0xcb, 0x10, 0x1b, 0xba, 0x6d, 0x1e, 0x37, 0x5d, 0x3c, 0x5e, - 0xc2, 0x1c, 0xc5, 0xad, 0xb6, 0xbb, 0x9a, 0x3a, 0x38, 0x2c, 0x65, 0xe9, 0x4c, 0x50, 0x85, 0x3e, - 0x85, 0x86, 0xa6, 0xdf, 0x3b, 0xb2, 0x1b, 0x8a, 0xad, 0x3d, 0x54, 0x9b, 0x59, 0x86, 0xab, 0x13, - 0x18, 0xaa, 0x7b, 0xb4, 0x87, 0xca, 0x60, 0xa4, 0x96, 0xf2, 0x74, 0xd8, 0xf3, 0x82, 0x61, 0x77, - 0x28, 0xec, 0x3e, 0x41, 0xb1, 0xa1, 0x1d, 0x1d, 0x1a, 0x99, 0xdf, 0x86, 0x1c, 0x9f, 0x97, 0xbb, - 0xc8, 0x12, 0x5d, 0x1e, 0xba, 0xc8, 0x17, 0x61, 0x96, 0x0d, 0x11, 0x0b, 0x5b, 0x63, 0x76, 0x7f, - 0x2d, 0x76, 0x43, 0x9a, 0xdf, 0x01, 0x39, 0x38, 0x9e, 0x40, 0xf2, 0x82, 0x5f, 0x52, 0xe6, 0x27, - 0xbb, 0xa1, 0x8f, 0x86, 0x9c, 0x62, 0xf9, 0x16, 0x24, 0xd9, 0xfe, 0x41, 0x59, 0x48, 0xed, 0x35, - 0xee, 0x36, 0xee, 0xed, 0x37, 0xe4, 0x19, 0x94, 0x86, 0xc4, 0xce, 0x5e, 0xa3, 0x25, 0x4b, 0x28, - 0x0f, 0x99, 0xd6, 0xd6, 0xfa, 0x4e, 0x6b, 0x77, 0xb3, 0x76, 0x57, 0x8e, 0xa1, 0x22, 0x64, 0xab, - 0x9b, 0x5b, 0x5b, 0xed, 0xea, 0xfa, 0xe6, 0xd6, 0xc6, 0x57, 0x72, 0xbc, 0xbc, 0x00, 0x49, 0x96, - 0x27, 0x79, 0x76, 0x9d, 0x91, 0xae, 0x1f, 0x3b, 0x5b, 0x98, 0x75, 0xca, 0x8f, 0x11, 0xa4, 0xd6, - 0x07, 0x83, 0x6d, 0xe5, 0xc8, 0x42, 0xfb, 0x30, 0xd7, 0xb2, 0x4d, 0x4d, 0xef, 0xed, 0x1a, 0xb7, - 0x8d, 0x51, 0x67, 0xa0, 0xe2, 0x28, 0x46, 0x93, 0xa5, 0xbd, 0xc4, 0xcd, 0xdb, 0x81, 0x57, 0x26, - 0xb0, 0x6c, 0x81, 0xe7, 0xac, 0x60, 0x1c, 0xed, 0x82, 0xec, 0x82, 0xeb, 0x03, 0x43, 0xb1, 0x89, - 0x6e, 0x8c, 0xea, 0x2e, 0x4f, 0xd1, 0x75, 0xa1, 0x4c, 0x56, 0xb6, 0x02, 0x61, 0x74, 0x13, 0xd2, - 0x9b, 0xba, 0x7d, 0x6d, 0x95, 0xa8, 0xc5, 0xa9, 0xda, 0x92, 0x40, 0xcd, 0x85, 0x30, 0x95, 0xb4, - 0xe6, 0x74, 0x1d, 0xf6, 0x07, 0xd7, 0x09, 0x3b, 0x31, 0x8d, 0x4d, 0x21, 0x63, 0x36, 0xed, 0xa2, - 0x5b, 0x90, 0xd9, 0x73, 0xa5, 0xe8, 0x99, 0xcc, 0xae, 0x9e, 0x13, 0xd0, 0x3d, 0x0c, 0xe3, 0x67, - 0x46, 0xde, 0xf0, 0x8e, 0x00, 0x1b, 0x3f, 0x39, 0x55, 0x80, 0x4b, 0x80, 0x0a, 0x78, 0x19, 0xb4, - 0xbc, 0x0c, 0x52, 0xa1, 0x02, 0xad, 0x40, 0x06, 0x16, 0x9f, 0x41, 0xcb, 0xcb, 0x20, 0x3d, 0x55, - 0x80, 0xcf, 0xc0, 0xf2, 0x32, 0xa8, 0x02, 0xd4, 0xb5, 0x6f, 0xd5, 0x43, 0x96, 0x42, 0x86, 0x2a, - 0x94, 0x05, 0x0a, 0x63, 0x10, 0x93, 0x80, 0xae, 0x17, 0x40, 0x1b, 0x90, 0x6d, 0x8d, 0xbb, 0x4e, - 0xf9, 0x38, 0x2f, 0x4a, 0xa3, 0x1b, 0x50, 0xc9, 0x5a, 0x9c, 0x8c, 0x9b, 0x0a, 0x9b, 0x4c, 0x76, - 0x7a, 0x2a, 0xdc, 0x6c, 0x58, 0x2a, 0x6c, 0x3a, 0x5e, 0x2a, 0x4c, 0x24, 0x17, 0x91, 0x0a, 0xa7, - 0xe2, 0xa4, 0xc2, 0x64, 0x70, 0x31, 0xac, 0x1a, 0x06, 0x41, 0x3a, 0x55, 0x69, 0x51, 0x20, 0xe1, - 0x20, 0x9c, 0x62, 0xd8, 0x61, 0x3d, 0xfa, 0x44, 0xe8, 0x26, 0x27, 0xe4, 0x42, 0xf8, 0x13, 0x71, - 0x31, 0xee, 0x13, 0x71, 0xfb, 0xfc, 0x39, 0xab, 0x1e, 0xe3, 0xaa, 0x42, 0x74, 0x8a, 0x91, 0xe7, - 0xcc, 0x85, 0x06, 0xce, 0x99, 0x1b, 0x46, 0x5f, 0x40, 0xd1, 0x85, 0x92, 0xf2, 0x44, 0x44, 0x65, - 0x2a, 0x7a, 0x71, 0x8a, 0xa8, 0x83, 0x64, 0x9a, 0x45, 0xcb, 0x1f, 0x45, 0x0d, 0x28, 0xb8, 0xc0, - 0x6d, 0x8b, 0x4e, 0x77, 0x8e, 0x2a, 0x5e, 0x98, 0xa2, 0xc8, 0x80, 0x4c, 0xb0, 0x60, 0xf9, 0x82, - 0xf3, 0xb7, 0xe1, 0xff, 0xe2, 0x6a, 0xc4, 0x97, 0xdf, 0x0c, 0x2b, 0xbf, 0x67, 0xf9, 0xf2, 0x2b, - 0xf1, 0xe5, 0xbb, 0x06, 0xff, 0x13, 0xd6, 0x9e, 0x28, 0x91, 0x18, 0x2f, 0xf2, 0x31, 0xe4, 0x7d, - 0x25, 0x87, 0x27, 0xcf, 0x0a, 0xc8, 0xb3, 0x93, 0xe4, 0xf1, 0xd6, 0x12, 0xbc, 0x3d, 0x7c, 0xe4, - 0x38, 0x4f, 0xbe, 0x09, 0x05, 0x7f, 0xbd, 0xe1, 0xd9, 0x79, 0x01, 0x3b, 0x2f, 0x60, 0x8b, 0xc7, - 0x4e, 0x08, 0xd8, 0x89, 0x00, 0xbb, 0x15, 0x3a, 0xf6, 0x9c, 0x80, 0x3d, 0x27, 0x60, 0x8b, 0xc7, - 0x46, 0x02, 0x36, 0xe2, 0xd9, 0x9f, 0x40, 0x31, 0x50, 0x62, 0x78, 0x7a, 0x4a, 0x40, 0x4f, 0xf1, - 0xf4, 0x4f, 0xf1, 0xa1, 0xe9, 0x86, 0xf3, 0x8b, 0x02, 0x7e, 0x51, 0x34, 0xbc, 0x38, 0xfb, 0xa4, - 0x80, 0x9e, 0x14, 0x0e, 0x2f, 0xe6, 0xcb, 0x02, 0xbe, 0xcc, 0xf3, 0xd7, 0x20, 0xc7, 0x57, 0x13, - 0x9e, 0x9b, 0x16, 0x70, 0xd3, 0xc1, 0x75, 0xf7, 0x15, 0x93, 0xa8, 0x9d, 0x9e, 0x09, 0x39, 0x2e, - 0xbe, 0x12, 0x12, 0x25, 0x92, 0xe3, 0x45, 0xee, 0xc3, 0x59, 0x51, 0xc9, 0x10, 0x68, 0x2c, 0xf3, - 0x1a, 0x05, 0xe2, 0x11, 0xc7, 0x66, 0x8f, 0xb0, 0x7c, 0xc6, 0x69, 0xfe, 0x01, 0x9c, 0x11, 0x14, - 0x0e, 0x81, 0x6c, 0xc5, 0xef, 0xc6, 0x4a, 0x9c, 0x2c, 0x2d, 0x02, 0x58, 0x62, 0xc7, 0xc0, 0x9b, - 0x93, 0x77, 0x65, 0x3f, 0x9f, 0x81, 0x82, 0x53, 0x9e, 0xee, 0x99, 0x87, 0xaa, 0x89, 0xdd, 0xd5, - 0xd7, 0xe1, 0xde, 0xe9, 0xea, 0x64, 0x51, 0x73, 0x58, 0x6f, 0x60, 0xa1, 0x1e, 0x84, 0x5a, 0xa8, - 0x95, 0x68, 0xf9, 0x28, 0x27, 0x55, 0x9b, 0x70, 0x52, 0x17, 0xc3, 0x45, 0xc3, 0x0c, 0x55, 0x6d, - 0xc2, 0x50, 0x4d, 0x17, 0x11, 0xfa, 0xaa, 0xfa, 0xa4, 0xaf, 0x5a, 0x0e, 0x57, 0x09, 0xb7, 0x57, - 0xf5, 0x49, 0x7b, 0x15, 0xa1, 0x23, 0x76, 0x59, 0xf5, 0x49, 0x97, 0x35, 0x45, 0x27, 0xdc, 0x6c, - 0xd5, 0x27, 0xcd, 0x56, 0x84, 0x8e, 0xd8, 0x73, 0x6d, 0x0a, 0x3c, 0xd7, 0xa5, 0x70, 0xa1, 0x69, - 0xd6, 0x6b, 0x4b, 0x64, 0xbd, 0x2e, 0x4f, 0x49, 0x6a, 0xaa, 0x03, 0xdb, 0x14, 0x38, 0xb0, 0xa8, - 0xc4, 0x42, 0x8c, 0xd8, 0x96, 0xc8, 0x88, 0x45, 0x26, 0x16, 0xe6, 0xc7, 0x3e, 0x0b, 0xfa, 0xb1, - 0x0b, 0xe1, 0x4a, 0x62, 0x5b, 0x56, 0x9f, 0xb4, 0x65, 0xcb, 0x51, 0x67, 0x4e, 0xe4, 0xce, 0x1e, - 0x84, 0xba, 0xb3, 0x7f, 0x70, 0x84, 0xa3, 0x4c, 0xda, 0x97, 0x61, 0x26, 0xad, 0x12, 0xad, 0x3d, - 0xdd, 0xab, 0xed, 0x85, 0x78, 0xb5, 0x2b, 0xd1, 0xc2, 0xa7, 0x96, 0xed, 0xd4, 0xb2, 0x9d, 0x5a, - 0xb6, 0x53, 0xcb, 0xf6, 0xdf, 0x5b, 0xb6, 0xb5, 0xc4, 0x77, 0x3f, 0x2c, 0x4a, 0xe5, 0xdf, 0xe3, - 0x50, 0x70, 0xbe, 0x0c, 0xee, 0x6b, 0x76, 0x9f, 0x94, 0xb7, 0x6d, 0xc8, 0x91, 0x8f, 0xb9, 0xed, - 0xa1, 0x72, 0x74, 0x84, 0x89, 0x8e, 0x67, 0xbb, 0x3c, 0xf9, 0x29, 0xd1, 0x21, 0x54, 0x1a, 0x18, - 0xbd, 0xcd, 0xc0, 0xce, 0xeb, 0x46, 0x1f, 0x47, 0xd0, 0xe7, 0x90, 0x1d, 0x5a, 0x3d, 0x4f, 0x2d, - 0x36, 0xf1, 0x22, 0x0c, 0xa8, 0xb1, 0x99, 0x8e, 0xc5, 0x60, 0xe8, 0x05, 0x48, 0x6a, 0x1d, 0xfc, - 0x94, 0x3c, 0xb1, 0x78, 0x54, 0x6a, 0xe4, 0x99, 0xfa, 0x53, 0xeb, 0x8c, 0x23, 0x64, 0xdb, 0x06, - 0x73, 0x8f, 0xaa, 0x74, 0xbe, 0xcd, 0xb3, 0x0f, 0xc5, 0x40, 0xb6, 0x82, 0x33, 0xff, 0x2f, 0x9e, - 0x0d, 0x49, 0x2c, 0x98, 0x79, 0xd4, 0x99, 0xe0, 0x37, 0x64, 0xf9, 0x1d, 0xc8, 0xfb, 0xb4, 0x51, - 0x0e, 0xa4, 0x2e, 0xa5, 0x4a, 0x4d, 0xa9, 0x5b, 0xfe, 0x5e, 0x82, 0x2c, 0xa9, 0x93, 0xef, 0xad, - 0xde, 0xd8, 0x51, 0x34, 0x13, 0xdd, 0x81, 0xc4, 0x40, 0xed, 0xda, 0x14, 0x90, 0xab, 0x5e, 0x3f, - 0x79, 0xba, 0x38, 0xf3, 0xe7, 0xd3, 0xc5, 0x77, 0x23, 0xfe, 0x25, 0x18, 0x59, 0xb6, 0x31, 0xac, - 0x38, 0x3a, 0x4d, 0xaa, 0x80, 0x9d, 0xc1, 0xac, 0x49, 0x3e, 0xda, 0xb3, 0x94, 0xaa, 0x57, 0xdf, - 0x58, 0x86, 0xd1, 0xcb, 0x27, 0x12, 0xcc, 0xd5, 0x0c, 0xdd, 0x56, 0x34, 0xdd, 0x62, 0x5f, 0x6b, - 0xc9, 0x1b, 0xf2, 0xb1, 0x04, 0x19, 0xaf, 0x87, 0x3a, 0x50, 0xf0, 0x3a, 0xf4, 0x23, 0xb8, 0xb3, - 0x53, 0xd7, 0xb8, 0x15, 0x9e, 0xd0, 0xa8, 0x08, 0xae, 0x28, 0xd9, 0x79, 0x27, 0xeb, 0xbe, 0xe0, - 0xfc, 0x3a, 0x9c, 0x11, 0xc0, 0xde, 0xe4, 0x85, 0x7c, 0xf9, 0x1c, 0xa4, 0x9c, 0xa3, 0x8d, 0x92, - 0x10, 0xdb, 0x5e, 0x97, 0x67, 0xe8, 0x6f, 0x55, 0x96, 0xe8, 0x6f, 0x4d, 0x8e, 0x55, 0xb7, 0x4e, - 0x9e, 0x2f, 0xcc, 0x3c, 0xc1, 0xed, 0x0f, 0xdc, 0x9e, 0x3d, 0x5f, 0x90, 0x5e, 0xe2, 0xf6, 0x0a, - 0xb7, 0xd7, 0xb8, 0x3d, 0x7a, 0xb1, 0x20, 0xfd, 0x88, 0xdb, 0x4f, 0xb8, 0xfd, 0x82, 0xdb, 0xaf, - 0xb8, 0x9d, 0xe0, 0xf6, 0x04, 0xb7, 0x67, 0xb8, 0xbd, 0x7c, 0xb1, 0x30, 0xf3, 0x0a, 0xff, 0xbe, - 0xc6, 0xbf, 0x8f, 0xfe, 0x5a, 0x98, 0xe9, 0x24, 0xd9, 0xdc, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, - 0xee, 0x91, 0x65, 0x55, 0x3d, 0x1a, 0x00, 0x00, + // 1602 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46, + 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0x8b, 0xa5, 0x65, 0x05, + 0x48, 0x94, 0x60, 0x23, 0x67, 0x9d, 0x64, 0x37, 0xeb, 0xa6, 0x4d, 0x2d, 0xc5, 0x42, 0xdc, 0xd8, + 0x8a, 0x2b, 0xd9, 0x71, 0x8b, 0x00, 0x35, 0x28, 0x9b, 0x96, 0x88, 0x48, 0xa4, 0x21, 0x8e, 0x82, + 0xfa, 0x96, 0x3f, 0xa3, 0xb7, 0xa2, 0xb7, 0x1e, 0x8b, 0x1c, 0x8a, 0x1e, 0xdb, 0x9b, 0x8f, 0x01, + 0x7a, 0x29, 0x7a, 0x08, 0x62, 0xf5, 0x92, 0x63, 0x8e, 0x39, 0x16, 0x33, 0x43, 0x49, 0x23, 0x72, + 0x28, 0x36, 0xbd, 0xf4, 0xe2, 0x93, 0x38, 0xcf, 0xef, 0xfb, 0x99, 0xc7, 0xe1, 0xcc, 0xe3, 0x17, + 0x34, 0xfc, 0xf3, 0xc0, 0xea, 0xb5, 0x2c, 0x7b, 0xb9, 0x65, 0x91, 0xce, 0x32, 0xe9, 0xe8, 0xc7, + 0x7d, 0x8b, 0x58, 0x37, 0xcb, 0xec, 0x07, 0xa7, 0xc6, 0x81, 0x85, 0xeb, 0x6d, 0x83, 0x74, 0x06, + 0xad, 0xf2, 0x81, 0xd5, 0x5b, 0x6e, 0x5b, 0x6d, 0x6b, 0x99, 0xc5, 0x5b, 0x83, 0x23, 0x36, 0x62, + 0x03, 0x76, 0xc5, 0x95, 0x0b, 0xff, 0xf3, 0x4d, 0x27, 0xba, 0x4d, 0x96, 0x5d, 0x93, 0xd2, 0x18, + 0x17, 0x16, 0x7f, 0x8a, 0x41, 0x62, 0x4b, 0xb7, 0x6d, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb, + 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d, 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xad, 0x6f, + 0x90, 0x93, 0x7c, 0xb8, 0x80, 0x4a, 0xb9, 0x95, 0x7f, 0x94, 0x27, 0x65, 0x3b, 0xca, 0xf2, 0x83, + 0x41, 0xcf, 0x1a, 0xf4, 0x1b, 0xe3, 0x54, 0x5c, 0x80, 0x4c, 0x47, 0x37, 0xda, 0x1d, 0xb2, 0x6f, + 0x98, 0xfb, 0x07, 0xbd, 0x7c, 0xa4, 0x80, 0x4a, 0xd9, 0x06, 0xf0, 0xd8, 0x86, 0x59, 0xed, 0xd1, + 0xc9, 0x0e, 0x35, 0xa2, 0xe5, 0xa3, 0x05, 0x54, 0xca, 0x34, 0xd8, 0x35, 0x56, 0x20, 0xf2, 0x54, + 0x3f, 0xc9, 0xc7, 0x0a, 0x91, 0x52, 0xb4, 0x41, 0x2f, 0xf1, 0x55, 0x88, 0x9b, 0xba, 0x4d, 0xf4, + 0xc3, 0x7c, 0xbc, 0x80, 0x4a, 0xe9, 0x95, 0x79, 0x61, 0xf2, 0x3a, 0xfb, 0x43, 0xc3, 0x49, 0xc0, + 0x4b, 0x90, 0xe9, 0xeb, 0xf6, 0xa0, 0x4b, 0xf6, 0x0f, 0xac, 0x81, 0x49, 0xf2, 0x89, 0x02, 0x2a, + 0x45, 0x1a, 0x69, 0x1e, 0xab, 0xd2, 0x10, 0xbe, 0x04, 0x59, 0xd2, 0x1f, 0xe8, 0xfb, 0xf6, 0x81, + 0x45, 0xec, 0x9e, 0x66, 0xe6, 0x93, 0x05, 0x54, 0x4a, 0x36, 0x32, 0x34, 0xd8, 0x74, 0x62, 0xf8, + 0x22, 0xc4, 0xec, 0x03, 0xab, 0xaf, 0xe7, 0x53, 0x05, 0x54, 0x0a, 0x37, 0xf8, 0x00, 0xff, 0x1f, + 0x12, 0x44, 0xef, 0xf7, 0x35, 0xc3, 0xcc, 0x43, 0x21, 0x52, 0x4a, 0xaf, 0x2c, 0x4a, 0x96, 0x61, + 0x87, 0x67, 0xac, 0x9b, 0xa4, 0x7f, 0xd2, 0x18, 0xe5, 0xe3, 0xdb, 0x90, 0x61, 0x79, 0x2b, 0xfb, + 0x47, 0x86, 0xde, 0x3d, 0xcc, 0xa7, 0xd9, 0x9d, 0xe0, 0x32, 0x7b, 0x0a, 0x75, 0xc3, 0x7c, 0x74, + 0x4c, 0xea, 0x1a, 0x31, 0x9e, 0xe9, 0x8d, 0x34, 0xcf, 0xab, 0xd1, 0x34, 0x5c, 0x1b, 0xcb, 0x9e, + 0x69, 0xdd, 0x81, 0x9e, 0xcf, 0xb2, 0x69, 0x2f, 0x49, 0xa6, 0xdd, 0x66, 0x69, 0x8f, 0x69, 0x16, + 0x9f, 0xda, 0xe1, 0xb0, 0xc8, 0xc2, 0x16, 0x64, 0xc4, 0xba, 0x46, 0x8b, 0x8c, 0xd8, 0xf2, 0xb0, + 0x45, 0xbe, 0x02, 0x31, 0x3e, 0x45, 0xd8, 0x6f, 0x8d, 0xf9, 0xdf, 0x57, 0xc3, 0x77, 0xd0, 0xc2, + 0x36, 0x28, 0xee, 0xf9, 0x24, 0xc8, 0xcb, 0xd3, 0x48, 0x45, 0xbc, 0xd9, 0x75, 0x73, 0xd0, 0x13, + 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21, 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57, + 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53, 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda, + 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39, 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b, + 0x6b, 0x1b, 0x9b, 0xeb, 0x9f, 0x2b, 0x91, 0xa2, 0x0a, 0x71, 0x5e, 0x27, 0x7d, 0x76, 0xad, 0x81, + 0x69, 0x9e, 0x38, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30, 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8, + 0xc6, 0x7b, 0x30, 0xdf, 0x24, 0x7d, 0xc3, 0x6c, 0xef, 0x58, 0xf7, 0xad, 0x41, 0xab, 0xab, 0x6f, + 0x69, 0xc7, 0x79, 0xc4, 0x96, 0xf6, 0xaa, 0x70, 0xdf, 0x4e, 0x7a, 0xd9, 0x93, 0xcb, 0x17, 0xd8, + 0xcb, 0xc0, 0x3b, 0xa0, 0x8c, 0x82, 0xb5, 0xae, 0xa5, 0x11, 0xca, 0x0d, 0x33, 0x6e, 0x69, 0x06, + 0x77, 0x94, 0xca, 0xb1, 0x1e, 0x02, 0xbe, 0x0b, 0xc9, 0x0d, 0x93, 0xdc, 0x5c, 0xa1, 0xb4, 0x08, + 0xa3, 0x15, 0x24, 0xb4, 0x51, 0x0a, 0xa7, 0x8c, 0x15, 0x8e, 0xfa, 0xbf, 0xb7, 0xa8, 0x3a, 0x3a, + 0x4b, 0xcd, 0x52, 0x26, 0x6a, 0x36, 0xc4, 0xf7, 0x20, 0xb5, 0x6b, 0x8c, 0x26, 0x8f, 0x31, 0xf9, + 0x92, 0x44, 0x3e, 0xce, 0xe1, 0xfa, 0x89, 0x66, 0x04, 0xe0, 0xf3, 0xc7, 0x67, 0x02, 0x84, 0x02, + 0x26, 0x1a, 0x0a, 0x68, 0x8e, 0x2b, 0x48, 0xf8, 0x02, 0x9a, 0xae, 0x0a, 0x9a, 0x62, 0x05, 0xcd, + 0x71, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xf1, 0x18, 0x57, 0x00, 0x6a, 0xc6, 0x97, 0xfa, 0x21, + 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x92, 0xc4, 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79, + 0x34, 0x81, 0x80, 0xe7, 0x1c, 0x8f, 0xcb, 0x38, 0x72, 0x51, 0x44, 0xdd, 0xb8, 0x14, 0x7e, 0x33, + 0xe9, 0xd9, 0xa5, 0x08, 0x77, 0x23, 0xa8, 0x26, 0xa5, 0x70, 0x48, 0x26, 0xa0, 0x14, 0x81, 0x22, + 0xea, 0x68, 0x33, 0xac, 0x58, 0x16, 0xcd, 0x74, 0xba, 0xd2, 0xa2, 0x04, 0xe1, 0x64, 0x38, 0xcd, + 0xd0, 0x19, 0xb1, 0x27, 0xc2, 0x36, 0x39, 0x15, 0xe7, 0xfc, 0x9f, 0xc8, 0x28, 0x67, 0xf4, 0x44, + 0x46, 0x63, 0xf1, 0x9c, 0x55, 0x4e, 0x88, 0x6e, 0x53, 0xce, 0x5c, 0xe0, 0x39, 0x1b, 0xa5, 0xba, + 0xce, 0xd9, 0x28, 0x8c, 0x3f, 0x85, 0xb9, 0x51, 0x8c, 0xb6, 0x27, 0x0a, 0x55, 0x18, 0xf4, 0xca, + 0x0c, 0xa8, 0x93, 0xc9, 0x99, 0x6e, 0x3d, 0xae, 0x43, 0x6e, 0x14, 0xda, 0xb2, 0xd9, 0xed, 0xce, + 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8, 0x81, 0x2e, 0xf5, 0xc2, 0x7d, 0xf8, 0xbb, 0xbc, 0x1b, + 0x89, 0xed, 0x37, 0xc5, 0xdb, 0xef, 0x45, 0xb1, 0xfd, 0x22, 0xb1, 0x7d, 0x57, 0xe1, 0x6f, 0xd2, + 0xde, 0x13, 0x04, 0x09, 0x8b, 0x90, 0x0f, 0x20, 0x3b, 0xd5, 0x72, 0x44, 0x71, 0x4c, 0x22, 0x8e, + 0x79, 0xc5, 0x93, 0xad, 0x25, 0x79, 0x7b, 0x4c, 0x89, 0x23, 0xa2, 0xf8, 0x2e, 0xe4, 0xa6, 0xfb, + 0x8d, 0xa8, 0xce, 0x4a, 0xd4, 0x59, 0x89, 0x5a, 0x3e, 0x77, 0x54, 0xa2, 0x8e, 0xba, 0xd4, 0x4d, + 0xdf, 0xb9, 0xe7, 0x25, 0xea, 0x79, 0x89, 0x5a, 0x3e, 0x37, 0x96, 0xa8, 0xb1, 0xa8, 0xfe, 0x10, + 0xe6, 0x5c, 0x2d, 0x46, 0x94, 0x27, 0x24, 0xf2, 0x84, 0x28, 0xff, 0x08, 0x14, 0x77, 0x73, 0x11, + 0xf5, 0x73, 0x12, 0xfd, 0x9c, 0x6c, 0x7a, 0x79, 0xf5, 0x71, 0x89, 0x3c, 0x2e, 0x9d, 0x5e, 0xae, + 0x57, 0x24, 0x7a, 0x45, 0xd4, 0xaf, 0x42, 0x46, 0xec, 0x26, 0xa2, 0x36, 0x29, 0xd1, 0x26, 0xdd, + 0xeb, 0x3e, 0xd5, 0x4c, 0x82, 0x76, 0x7a, 0xca, 0xe7, 0xb8, 0x4c, 0xb5, 0x90, 0x20, 0x48, 0x46, + 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61, 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0x89, 0xd9, + 0xa3, 0xaa, 0x29, 0xe3, 0xb4, 0xf0, 0x04, 0x2e, 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x76, 0x63, + 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7, 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xfe, 0x02, + 0xe4, 0x9c, 0xf6, 0xf4, 0xa8, 0x7f, 0xa8, 0xf7, 0xf5, 0x43, 0xfc, 0x85, 0xbf, 0x77, 0xba, 0xe1, + 0x6d, 0x6a, 0x8e, 0xea, 0x3d, 0x2c, 0xd4, 0x13, 0x5f, 0x0b, 0xb5, 0x1c, 0x8c, 0x0f, 0x72, 0x52, + 0x55, 0x8f, 0x93, 0xba, 0xe2, 0x0f, 0xf5, 0x33, 0x54, 0x55, 0x8f, 0xa1, 0x9a, 0x0d, 0x91, 0xfa, + 0xaa, 0x9a, 0xd7, 0x57, 0x95, 0xfc, 0x29, 0xfe, 0xf6, 0xaa, 0xe6, 0xb5, 0x57, 0x01, 0x1c, 0xb9, + 0xcb, 0xaa, 0x79, 0x5d, 0xd6, 0x0c, 0x8e, 0xbf, 0xd9, 0xaa, 0x79, 0xcd, 0x56, 0x00, 0x47, 0xee, + 0xb9, 0x36, 0x24, 0x9e, 0xeb, 0xaa, 0x3f, 0x68, 0x96, 0xf5, 0xda, 0x94, 0x59, 0xaf, 0x6b, 0x33, + 0x8a, 0x9a, 0xe9, 0xc0, 0x36, 0x24, 0x0e, 0x2c, 0xa8, 0x30, 0x1f, 0x23, 0xb6, 0x29, 0x33, 0x62, + 0x81, 0x85, 0xf9, 0xf9, 0xb1, 0x8f, 0xdd, 0x7e, 0xec, 0xb2, 0x3f, 0x49, 0x6e, 0xcb, 0x6a, 0x5e, + 0x5b, 0x56, 0x0a, 0x3a, 0x73, 0x32, 0x77, 0xf6, 0xc4, 0xd7, 0x9d, 0xfd, 0x81, 0x23, 0x1c, 0x64, + 0xd2, 0x3e, 0xf3, 0x33, 0x69, 0xe5, 0x60, 0xf6, 0x6c, 0xaf, 0xb6, 0xeb, 0xe3, 0xd5, 0xae, 0x07, + 0x83, 0xcf, 0x2d, 0xdb, 0xb9, 0x65, 0x3b, 0xb7, 0x6c, 0xe7, 0x96, 0xed, 0xaf, 0xb7, 0x6c, 0xab, + 0xd1, 0xaf, 0xbe, 0x59, 0x44, 0xc5, 0x9f, 0x23, 0x90, 0x73, 0xbe, 0x0c, 0xee, 0x19, 0xa4, 0x43, + 0xdb, 0xdb, 0x16, 0x64, 0x4c, 0xad, 0xa7, 0xef, 0xf7, 0xb4, 0xe3, 0x63, 0xc3, 0x6c, 0x3b, 0x9e, + 0xed, 0x9a, 0xf7, 0x53, 0xa2, 0x23, 0x28, 0xd7, 0xb5, 0x1e, 0xed, 0x55, 0x34, 0xd9, 0x79, 0xdd, + 0x98, 0x93, 0x08, 0xfe, 0x04, 0xd2, 0x3d, 0xbb, 0x3d, 0xa6, 0x85, 0x3d, 0x2f, 0x42, 0x17, 0x8d, + 0xdf, 0xe9, 0x04, 0x06, 0xbd, 0x71, 0x80, 0x96, 0xd6, 0x3a, 0x21, 0x93, 0xd2, 0x22, 0x41, 0xa5, + 0xd1, 0x67, 0x3a, 0x5d, 0x5a, 0x6b, 0x12, 0xa1, 0xdb, 0xd6, 0x5d, 0x7b, 0x50, 0xa7, 0x9b, 0xda, + 0x3c, 0x7b, 0x30, 0xe7, 0xaa, 0x56, 0x72, 0xe6, 0xff, 0xc4, 0xb3, 0xa1, 0x85, 0xb9, 0x2b, 0x0f, + 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe, 0x0b, 0xb2, 0x53, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8, + 0x81, 0x8e, 0x8a, 0x5f, 0x23, 0x48, 0xd3, 0x3e, 0xf9, 0x9f, 0x95, 0x3b, 0xdb, 0x9a, 0xd1, 0xc7, + 0x0f, 0x20, 0xda, 0xd5, 0x8f, 0x08, 0x4b, 0xc8, 0x54, 0x6e, 0x9d, 0xbe, 0x5a, 0x0c, 0xfd, 0xfa, + 0x6a, 0xf1, 0xdf, 0x01, 0xff, 0x25, 0x18, 0xd8, 0xc4, 0xea, 0x95, 0x1d, 0x4e, 0x83, 0x11, 0x70, + 0x0d, 0x62, 0x7d, 0xa3, 0xdd, 0x21, 0xbc, 0xa4, 0xca, 0x8d, 0xf7, 0xc6, 0x70, 0x79, 0xf1, 0x14, + 0xc1, 0x7c, 0xd5, 0x32, 0x89, 0x66, 0x98, 0x36, 0xff, 0x5a, 0x4b, 0xdf, 0x90, 0x2f, 0x10, 0xa4, + 0xc6, 0x23, 0xdc, 0x82, 0xdc, 0x78, 0xc0, 0x3e, 0x82, 0x3b, 0x3b, 0x75, 0x55, 0x58, 0x61, 0x0f, + 0xa3, 0x2c, 0xb9, 0x62, 0x62, 0xe7, 0x9d, 0x3c, 0x1d, 0x5c, 0x58, 0x83, 0x0b, 0x92, 0xb4, 0xf7, + 0x79, 0x21, 0x17, 0x97, 0x20, 0x55, 0xb7, 0xc8, 0xb6, 0x76, 0xf0, 0x94, 0x7d, 0x72, 0x9e, 0xfc, + 0xcf, 0xa2, 0x12, 0x56, 0x42, 0x4c, 0x7c, 0x6d, 0x09, 0x12, 0xce, 0xe9, 0xc7, 0x71, 0x08, 0x6f, + 0xad, 0x29, 0x21, 0xf6, 0x5b, 0x51, 0x10, 0xfb, 0xad, 0x2a, 0xe1, 0xca, 0xe6, 0xe9, 0x99, 0x1a, + 0x7a, 0x79, 0xa6, 0x86, 0x7e, 0x39, 0x53, 0x43, 0xaf, 0xcf, 0x54, 0xf4, 0xe6, 0x4c, 0x45, 0x6f, + 0xcf, 0x54, 0xf4, 0xee, 0x4c, 0x45, 0xcf, 0x87, 0x2a, 0xfa, 0x76, 0xa8, 0xa2, 0xef, 0x86, 0x2a, + 0xfa, 0x61, 0xa8, 0xa2, 0x1f, 0x87, 0x2a, 0x3a, 0x1d, 0xaa, 0xe8, 0xe5, 0x50, 0x45, 0xaf, 0x87, + 0x2a, 0x7a, 0x33, 0x54, 0x43, 0x6f, 0x87, 0x2a, 0x7a, 0x37, 0x54, 0x43, 0xcf, 0x7f, 0x53, 0x43, + 0xad, 0x38, 0x5f, 0x9e, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x77, 0x56, 0x01, 0x1d, 0x60, 0x1a, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto index b0616d6d..d1f92988 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go index 5ba344b9..f13f1d88 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go @@ -17,6 +17,7 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -41,18 +42,18 @@ func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -76,20 +77,20 @@ func TestMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -108,11 +109,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -122,11 +123,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -143,18 +144,18 @@ func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -178,20 +179,20 @@ func TestNestedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -210,11 +211,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -224,11 +225,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -245,18 +246,18 @@ func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -280,20 +281,20 @@ func TestAllMapsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -312,11 +313,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -326,11 +327,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -347,18 +348,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -382,20 +383,20 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -414,11 +415,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -428,11 +429,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -449,18 +450,18 @@ func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -484,20 +485,20 @@ func TestMessageWithMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -516,11 +517,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -530,11 +531,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -551,18 +552,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -586,20 +587,20 @@ func TestFloatingPointMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -618,11 +619,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -632,11 +633,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -653,18 +654,18 @@ func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -688,20 +689,20 @@ func TestUint128PairMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -720,11 +721,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -734,11 +735,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -755,18 +756,18 @@ func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -790,20 +791,20 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -822,11 +823,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -836,11 +837,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -857,18 +858,18 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -892,20 +893,20 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -924,11 +925,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -938,11 +939,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -955,6 +956,108 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNotPackedMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -1144,13 +1247,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,9 +1289,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,9 +1306,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,9 +1323,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,9 +1340,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,9 +1357,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,9 +1374,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,9 +1391,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,9 +1408,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,9 +1425,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,9 +1442,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,9 +1459,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,9 +1476,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,9 +1493,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,9 +1510,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,9 +1527,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,9 +1544,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,9 +1561,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1456,12 +1614,12 @@ func TestTheproto3Description(t *testing.T) { func TestMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1471,12 +1629,12 @@ func TestMessageVerboseEqual(t *testing.T) { func TestNestedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1486,12 +1644,12 @@ func TestNestedVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1501,12 +1659,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1516,12 +1674,12 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { func TestMessageWithMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1531,12 +1689,12 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1546,12 +1704,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestUint128PairVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1561,12 +1719,12 @@ func TestUint128PairVerboseEqual(t *testing.T) { func TestContainsNestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1576,12 +1734,27 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1660,6 +1833,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1777,18 +1958,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +2012,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1854,13 +2048,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1890,13 +2084,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1926,13 +2120,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1962,13 +2156,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1998,13 +2192,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2034,13 +2228,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2070,13 +2264,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2101,6 +2295,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -2182,5 +2412,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go index cf1c1443..18f9996c 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,12 +38,9 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import errors "errors" - // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -50,7 +48,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -105,7 +105,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -125,23 +125,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -149,23 +149,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -207,7 +207,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -216,6 +216,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -226,6 +234,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -256,476 +265,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7455 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x6c, 0x63, 0xd7, - 0x79, 0xe7, 0x90, 0x97, 0x94, 0xa8, 0x8f, 0x14, 0x45, 0xdd, 0xd1, 0xc8, 0xb4, 0x3c, 0x9e, 0x07, - 0x3d, 0x1e, 0xcb, 0x8a, 0xad, 0xd1, 0x68, 0x34, 0x0f, 0xd3, 0xaf, 0x15, 0x29, 0x6a, 0xac, 0x89, - 0x5e, 0xb9, 0x92, 0xfc, 0x88, 0x17, 0x4b, 0x50, 0xe4, 0x95, 0x44, 0x9b, 0xba, 0xd4, 0xf2, 0x92, - 0xb6, 0x27, 0x7f, 0x2c, 0xb2, 0xc9, 0x6e, 0x36, 0xd9, 0xc5, 0xee, 0xb6, 0x4d, 0x8b, 0xe6, 0x1d, - 0x3b, 0x45, 0x1a, 0x27, 0x7d, 0x25, 0x69, 0x1a, 0x14, 0x41, 0xd1, 0xb8, 0x2d, 0x92, 0x4e, 0xff, - 0x29, 0xdc, 0xf4, 0x9f, 0xa2, 0x28, 0x8c, 0xbc, 0x80, 0xa6, 0x6d, 0xda, 0x26, 0x80, 0x81, 0x04, - 0x48, 0xfe, 0xe8, 0x79, 0xdf, 0x73, 0x0e, 0xef, 0xe5, 0xa5, 0x66, 0xec, 0x38, 0x7f, 0xd8, 0x00, - 0x47, 0xbc, 0xe7, 0x7c, 0xbf, 0xef, 0x7c, 0xe7, 0x7b, 0x9d, 0xef, 0x9e, 0x73, 0x79, 0x0d, 0x7f, - 0x71, 0x1e, 0x4e, 0xed, 0x36, 0x9b, 0xbb, 0x0d, 0xfb, 0xdc, 0x41, 0xab, 0xd9, 0x6e, 0x6e, 0x77, - 0x76, 0xce, 0xd5, 0x6c, 0xb7, 0xda, 0xaa, 0x1f, 0xb4, 0x9b, 0xad, 0x69, 0xd2, 0x66, 0x8e, 0x50, - 0x8a, 0x69, 0x4e, 0x91, 0x5b, 0x81, 0xd1, 0xc5, 0x7a, 0xc3, 0x5e, 0x10, 0x84, 0x1b, 0x76, 0xdb, - 0xbc, 0x02, 0xb1, 0x1d, 0xd4, 0x98, 0x8d, 0x9c, 0x32, 0x26, 0x93, 0xb3, 0x67, 0xa6, 0x35, 0xd0, - 0xb4, 0x8a, 0x58, 0xc7, 0xcd, 0x16, 0x41, 0xe4, 0xbe, 0x1f, 0x83, 0xa3, 0x3e, 0xbd, 0xa6, 0x09, - 0x31, 0xa7, 0xb2, 0x8f, 0x39, 0x46, 0x26, 0x87, 0x2c, 0xf2, 0xdd, 0xcc, 0xc2, 0xe0, 0x41, 0xa5, - 0xfa, 0x6c, 0x65, 0xd7, 0xce, 0x46, 0x49, 0x33, 0xbf, 0x34, 0x4f, 0x00, 0xd4, 0xec, 0x03, 0xdb, - 0xa9, 0xd9, 0x4e, 0xf5, 0x7a, 0xd6, 0x40, 0x52, 0x0c, 0x59, 0x52, 0x8b, 0xf9, 0x0e, 0x18, 0x3d, - 0xe8, 0x6c, 0x37, 0xea, 0xd5, 0xb2, 0x44, 0x06, 0x88, 0x2c, 0x6e, 0x65, 0x68, 0xc7, 0x82, 0x47, - 0x7c, 0x0f, 0x8c, 0x3c, 0x6f, 0x57, 0x9e, 0x95, 0x49, 0x93, 0x84, 0x34, 0x8d, 0x9b, 0x25, 0xc2, - 0x22, 0xa4, 0xf6, 0x6d, 0xd7, 0x45, 0x02, 0x94, 0xdb, 0xd7, 0x0f, 0xec, 0x6c, 0x8c, 0xcc, 0xfe, - 0x54, 0xd7, 0xec, 0xf5, 0x99, 0x27, 0x19, 0x6a, 0x13, 0x81, 0xcc, 0x79, 0x18, 0xb2, 0x9d, 0xce, - 0x3e, 0xe5, 0x10, 0x0f, 0xd0, 0x5f, 0x09, 0x51, 0xe8, 0x5c, 0x12, 0x18, 0xc6, 0x58, 0x0c, 0xba, - 0x76, 0xeb, 0xb9, 0x7a, 0xd5, 0xce, 0x0e, 0x10, 0x06, 0xf7, 0x74, 0x31, 0xd8, 0xa0, 0xfd, 0x3a, - 0x0f, 0x8e, 0x43, 0x53, 0x19, 0xb2, 0x5f, 0x68, 0xdb, 0x8e, 0x5b, 0x6f, 0x3a, 0xd9, 0x41, 0xc2, - 0xe4, 0x6e, 0x1f, 0x2b, 0xda, 0x8d, 0x9a, 0xce, 0xc2, 0xc3, 0x99, 0x97, 0x60, 0xb0, 0x79, 0xd0, - 0x46, 0xdf, 0xdc, 0x6c, 0x02, 0xd9, 0x27, 0x39, 0x7b, 0xdc, 0xd7, 0x11, 0xd6, 0x28, 0x8d, 0xc5, - 0x89, 0xcd, 0x25, 0xc8, 0xb8, 0xcd, 0x4e, 0xab, 0x6a, 0x97, 0xab, 0xcd, 0x9a, 0x5d, 0xae, 0x3b, - 0x3b, 0xcd, 0xec, 0x10, 0x61, 0x70, 0xb2, 0x7b, 0x22, 0x84, 0xb0, 0x88, 0xe8, 0x96, 0x10, 0x99, - 0x95, 0x76, 0x95, 0x6b, 0x73, 0x1c, 0x06, 0xdc, 0xeb, 0x4e, 0xbb, 0xf2, 0x42, 0x36, 0x45, 0x3c, - 0x84, 0x5d, 0xe5, 0x7e, 0x12, 0x87, 0x91, 0x7e, 0x5c, 0xec, 0x41, 0x88, 0xef, 0xe0, 0x59, 0x22, - 0x07, 0x3b, 0x84, 0x0e, 0x28, 0x46, 0x55, 0xe2, 0xc0, 0x4d, 0x2a, 0x71, 0x1e, 0x92, 0x8e, 0xed, - 0xb6, 0xed, 0x1a, 0xf5, 0x08, 0xa3, 0x4f, 0x9f, 0x02, 0x0a, 0xea, 0x76, 0xa9, 0xd8, 0x4d, 0xb9, - 0xd4, 0x93, 0x30, 0x22, 0x44, 0x2a, 0xb7, 0x2a, 0xce, 0x2e, 0xf7, 0xcd, 0x73, 0x61, 0x92, 0x4c, - 0x97, 0x38, 0xce, 0xc2, 0x30, 0x2b, 0x6d, 0x2b, 0xd7, 0xe6, 0x02, 0x40, 0xd3, 0xb1, 0x9b, 0x3b, - 0x28, 0xbc, 0xaa, 0x0d, 0xe4, 0x27, 0xfe, 0x5a, 0x5a, 0xc3, 0x24, 0x5d, 0x5a, 0x6a, 0xd2, 0xd6, - 0x6a, 0xc3, 0x7c, 0xc0, 0x73, 0xb5, 0xc1, 0x00, 0x4f, 0x59, 0xa1, 0x41, 0xd6, 0xe5, 0x6d, 0x5b, - 0x90, 0x6e, 0xd9, 0xd8, 0xef, 0x91, 0x8a, 0xe9, 0xcc, 0x86, 0x88, 0x10, 0xd3, 0xa1, 0x33, 0xb3, - 0x18, 0x8c, 0x4e, 0x6c, 0xb8, 0x25, 0x5f, 0x9a, 0x77, 0x81, 0x68, 0x28, 0x13, 0xb7, 0x02, 0x92, - 0x85, 0x52, 0xbc, 0x71, 0x15, 0xb5, 0x4d, 0x5c, 0x81, 0xb4, 0xaa, 0x1e, 0x73, 0x0c, 0xe2, 0x6e, - 0xbb, 0xd2, 0x6a, 0x13, 0x2f, 0x8c, 0x5b, 0xf4, 0xc2, 0xcc, 0x80, 0x81, 0x92, 0x0c, 0xc9, 0x72, - 0x71, 0x0b, 0x7f, 0x9d, 0xb8, 0x0c, 0xc3, 0xca, 0xf0, 0xfd, 0x02, 0x73, 0x1f, 0x19, 0x80, 0x31, - 0x3f, 0x9f, 0xf3, 0x75, 0x7f, 0x14, 0x3e, 0xc8, 0x03, 0xb6, 0xed, 0x16, 0xf2, 0x3b, 0xcc, 0x81, - 0x5d, 0x21, 0x8f, 0x8a, 0x37, 0x2a, 0xdb, 0x76, 0x03, 0x79, 0x53, 0x64, 0x32, 0x3d, 0xfb, 0x8e, - 0xbe, 0xbc, 0x7a, 0x7a, 0x19, 0x43, 0x2c, 0x8a, 0x34, 0x1f, 0x81, 0x18, 0x4b, 0x71, 0x98, 0xc3, - 0x54, 0x7f, 0x1c, 0xb0, 0x2f, 0x5a, 0x04, 0x67, 0xde, 0x01, 0x43, 0xf8, 0x2f, 0xd5, 0xed, 0x00, - 0x91, 0x39, 0x81, 0x1b, 0xb0, 0x5e, 0xcd, 0x09, 0x48, 0x10, 0x37, 0xab, 0xd9, 0x7c, 0x69, 0x10, - 0xd7, 0xd8, 0x30, 0x35, 0x7b, 0xa7, 0xd2, 0x69, 0xb4, 0xcb, 0xcf, 0x55, 0x1a, 0x1d, 0x9b, 0x38, - 0x0c, 0x32, 0x0c, 0x6b, 0x7c, 0x1c, 0xb7, 0x99, 0x27, 0x21, 0x49, 0xbd, 0xb2, 0x8e, 0x30, 0x2f, - 0x90, 0xec, 0x13, 0xb7, 0xa8, 0xa3, 0x2e, 0xe1, 0x16, 0x3c, 0xfc, 0x33, 0x2e, 0x8a, 0x05, 0x66, - 0x5a, 0x32, 0x04, 0x6e, 0x20, 0xc3, 0x5f, 0xd6, 0x13, 0xdf, 0x9d, 0xfe, 0xd3, 0xd3, 0x7d, 0x31, - 0xf7, 0xd5, 0x28, 0xc4, 0x48, 0xbc, 0x8d, 0x40, 0x72, 0xf3, 0xa9, 0xf5, 0x52, 0x79, 0x61, 0x6d, - 0xab, 0xb0, 0x5c, 0xca, 0x44, 0xcc, 0x34, 0x00, 0x69, 0x58, 0x5c, 0x5e, 0x9b, 0xdf, 0xcc, 0x44, - 0xc5, 0xf5, 0xd2, 0xea, 0xe6, 0xa5, 0xb9, 0x8c, 0x21, 0x00, 0x5b, 0xb4, 0x21, 0x26, 0x13, 0x5c, - 0x98, 0xcd, 0xc4, 0x91, 0x27, 0xa4, 0x28, 0x83, 0xa5, 0x27, 0x4b, 0x0b, 0x88, 0x62, 0x40, 0x6d, - 0x41, 0x34, 0x83, 0xe6, 0x30, 0x0c, 0x91, 0x96, 0xc2, 0xda, 0xda, 0x72, 0x26, 0x21, 0x78, 0x6e, - 0x6c, 0x5a, 0x4b, 0xab, 0x57, 0x33, 0x43, 0x82, 0xe7, 0x55, 0x6b, 0x6d, 0x6b, 0x3d, 0x03, 0x82, - 0xc3, 0x4a, 0x69, 0x63, 0x63, 0xfe, 0x6a, 0x29, 0x93, 0x14, 0x14, 0x85, 0xa7, 0x36, 0x4b, 0x1b, - 0x99, 0x94, 0x22, 0x16, 0x1a, 0x62, 0x58, 0x0c, 0x51, 0x5a, 0xdd, 0x5a, 0xc9, 0xa4, 0xcd, 0x51, - 0x18, 0xa6, 0x43, 0x70, 0x21, 0x46, 0xb4, 0x26, 0x24, 0x69, 0xc6, 0x13, 0x84, 0x72, 0x19, 0x55, - 0x1a, 0x10, 0x85, 0x99, 0x2b, 0x42, 0x9c, 0x78, 0x17, 0xf2, 0xe2, 0xf4, 0xf2, 0x7c, 0xa1, 0xb4, - 0x5c, 0x5e, 0x5b, 0xdf, 0x5c, 0x5a, 0x5b, 0x9d, 0x5f, 0x46, 0xba, 0x13, 0x6d, 0x56, 0xe9, 0x5d, - 0x5b, 0x4b, 0x56, 0x69, 0x01, 0xe9, 0x4f, 0x6a, 0x5b, 0x2f, 0xcd, 0x6f, 0xa2, 0x36, 0x23, 0x37, - 0x05, 0x63, 0x7e, 0x79, 0xc6, 0x2f, 0x32, 0x72, 0x9f, 0x89, 0xc0, 0x51, 0x9f, 0x94, 0xe9, 0x1b, - 0x45, 0x8f, 0x42, 0x9c, 0x7a, 0x1a, 0x5d, 0x44, 0xee, 0xf5, 0xcd, 0xbd, 0xc4, 0xef, 0xba, 0x16, - 0x12, 0x82, 0x93, 0x17, 0x52, 0x23, 0x60, 0x21, 0xc5, 0x2c, 0xba, 0xdc, 0xe9, 0xfd, 0x11, 0xc8, - 0x06, 0xf1, 0x0e, 0x89, 0xf7, 0xa8, 0x12, 0xef, 0x0f, 0xea, 0x02, 0x9c, 0x0e, 0x9e, 0x43, 0x97, - 0x14, 0x9f, 0x8b, 0xc0, 0xb8, 0x7f, 0xbd, 0xe1, 0x2b, 0xc3, 0x23, 0x30, 0xb0, 0x6f, 0xb7, 0xf7, - 0x9a, 0x7c, 0xcd, 0x3d, 0xeb, 0x93, 0xc9, 0x71, 0xb7, 0xae, 0x2b, 0x86, 0x92, 0x97, 0x02, 0x23, - 0xa8, 0x68, 0xa0, 0xd2, 0x74, 0x49, 0xfa, 0xa1, 0x28, 0x1c, 0xf3, 0x65, 0xee, 0x2b, 0xe8, 0x9d, - 0x00, 0x75, 0xe7, 0xa0, 0xd3, 0xa6, 0xeb, 0x2a, 0x4d, 0x33, 0x43, 0xa4, 0x85, 0x84, 0x30, 0x4e, - 0x21, 0x9d, 0xb6, 0xe8, 0x37, 0x48, 0x3f, 0xd0, 0x26, 0x42, 0x70, 0xc5, 0x13, 0x34, 0x46, 0x04, - 0x3d, 0x11, 0x30, 0xd3, 0xae, 0x25, 0x6b, 0x06, 0x32, 0xd5, 0x46, 0xdd, 0x76, 0xda, 0x65, 0xb7, - 0xdd, 0xb2, 0x2b, 0xfb, 0x75, 0x67, 0x97, 0xe4, 0xd1, 0x44, 0x3e, 0xbe, 0x53, 0x69, 0xb8, 0xb6, - 0x35, 0x42, 0xbb, 0x37, 0x78, 0x2f, 0x46, 0x90, 0xc5, 0xa2, 0x25, 0x21, 0x06, 0x14, 0x04, 0xed, - 0x16, 0x88, 0xdc, 0xb7, 0x06, 0x21, 0x29, 0x55, 0x67, 0xe6, 0x69, 0x48, 0x3d, 0x53, 0x79, 0xae, - 0x52, 0xe6, 0x15, 0x37, 0xd5, 0x44, 0x12, 0xb7, 0xad, 0xb3, 0xaa, 0x7b, 0x06, 0xc6, 0x08, 0x09, - 0x9a, 0x23, 0x1a, 0xa8, 0xda, 0xa8, 0xb8, 0x2e, 0x51, 0x5a, 0x82, 0x90, 0x9a, 0xb8, 0x6f, 0x0d, - 0x77, 0x15, 0x79, 0x8f, 0x79, 0x11, 0x8e, 0x12, 0xc4, 0x3e, 0x4a, 0xbc, 0xf5, 0x83, 0x86, 0x5d, - 0xc6, 0xf7, 0x00, 0x2e, 0xc9, 0xa7, 0x42, 0xb2, 0x51, 0x4c, 0xb1, 0xc2, 0x08, 0xb0, 0x44, 0xae, - 0x79, 0x15, 0xee, 0x24, 0xb0, 0x5d, 0xdb, 0xb1, 0x5b, 0x95, 0xb6, 0x5d, 0xb6, 0xff, 0x6b, 0x07, - 0xd1, 0x96, 0x2b, 0x4e, 0xad, 0xbc, 0x57, 0x71, 0xf7, 0xb2, 0x63, 0x32, 0x83, 0xdb, 0x31, 0xed, - 0x55, 0x46, 0x5a, 0x22, 0x94, 0xf3, 0x4e, 0xed, 0x31, 0x44, 0x67, 0xe6, 0x61, 0x9c, 0x30, 0x42, - 0x4a, 0x41, 0x73, 0x2e, 0x57, 0xf7, 0xec, 0xea, 0xb3, 0xe5, 0x4e, 0x7b, 0xe7, 0x4a, 0xf6, 0x0e, - 0x99, 0x03, 0x11, 0x72, 0x83, 0xd0, 0x14, 0x31, 0xc9, 0x16, 0xa2, 0x30, 0x37, 0x20, 0x85, 0xed, - 0xb1, 0x5f, 0x7f, 0x0f, 0x12, 0xbb, 0xd9, 0x22, 0x6b, 0x44, 0xda, 0x27, 0xb8, 0x25, 0x25, 0x4e, - 0xaf, 0x31, 0xc0, 0x0a, 0xaa, 0x4f, 0xf3, 0xf1, 0x8d, 0xf5, 0x52, 0x69, 0xc1, 0x4a, 0x72, 0x2e, - 0x8b, 0xcd, 0x16, 0xf6, 0xa9, 0xdd, 0xa6, 0xd0, 0x71, 0x92, 0xfa, 0xd4, 0x6e, 0x93, 0x6b, 0x18, - 0xe9, 0xab, 0x5a, 0xa5, 0xd3, 0x46, 0xf7, 0x2e, 0xac, 0x58, 0x77, 0xb3, 0x19, 0x45, 0x5f, 0xd5, - 0xea, 0x55, 0x4a, 0xc0, 0xdc, 0xdc, 0x45, 0x21, 0x71, 0xcc, 0xd3, 0x97, 0x0c, 0x1c, 0xed, 0x9a, - 0xa5, 0x0e, 0x45, 0x23, 0x1e, 0x5c, 0xef, 0x06, 0x9a, 0xca, 0x88, 0x07, 0xd7, 0x75, 0xd8, 0xdd, - 0xe4, 0x06, 0xac, 0x65, 0x57, 0x91, 0xca, 0x6b, 0xd9, 0xdb, 0x64, 0x6a, 0xa9, 0xc3, 0x3c, 0x87, - 0x1c, 0xb9, 0x5a, 0xb6, 0x9d, 0xca, 0x36, 0xb2, 0x7d, 0xa5, 0x85, 0xbe, 0xb8, 0xd9, 0x93, 0x32, - 0x71, 0xba, 0x5a, 0x2d, 0x91, 0xde, 0x79, 0xd2, 0x69, 0x4e, 0xc1, 0x68, 0x73, 0xfb, 0x99, 0x2a, - 0x75, 0xae, 0x32, 0xe2, 0xb3, 0x53, 0x7f, 0x21, 0x7b, 0x86, 0xa8, 0x69, 0x04, 0x77, 0x10, 0xd7, - 0x5a, 0x27, 0xcd, 0xe6, 0xbd, 0x88, 0xb9, 0xbb, 0x57, 0x69, 0x1d, 0x90, 0x45, 0xda, 0x45, 0x4a, - 0xb5, 0xb3, 0x77, 0x53, 0x52, 0xda, 0xbe, 0xca, 0x9b, 0xcd, 0x12, 0x9c, 0xc4, 0x93, 0x77, 0x2a, - 0x4e, 0xb3, 0xdc, 0x71, 0xed, 0xb2, 0x27, 0xa2, 0xb0, 0xc5, 0x59, 0x2c, 0x96, 0x75, 0x9c, 0x93, - 0x6d, 0xb9, 0x28, 0x99, 0x71, 0x22, 0x6e, 0x9e, 0x27, 0x61, 0xac, 0xe3, 0xd4, 0x1d, 0xe4, 0xe2, - 0xa8, 0x07, 0x83, 0x69, 0xc0, 0x66, 0xff, 0x71, 0x30, 0xa0, 0xe8, 0xde, 0x92, 0xa9, 0xa9, 0x93, - 0x58, 0x47, 0x3b, 0xdd, 0x8d, 0xb9, 0x3c, 0xa4, 0x64, 0xdf, 0x31, 0x87, 0x80, 0x7a, 0x0f, 0x5a, - 0xdd, 0xd0, 0x8a, 0x5a, 0x5c, 0x5b, 0xc0, 0x6b, 0xe1, 0xbb, 0x4b, 0x68, 0x61, 0x43, 0x6b, 0xf2, - 0xf2, 0xd2, 0x66, 0xa9, 0x6c, 0x6d, 0xad, 0x6e, 0x2e, 0xad, 0x94, 0x32, 0xc6, 0xd4, 0x50, 0xe2, - 0x07, 0x83, 0x99, 0xf7, 0xa2, 0xff, 0xa2, 0xb9, 0x6f, 0x44, 0x21, 0xad, 0xd6, 0xc1, 0xe6, 0x43, - 0x70, 0x1b, 0xbf, 0x69, 0x75, 0xed, 0x76, 0xf9, 0xf9, 0x7a, 0x8b, 0xb8, 0xf3, 0x7e, 0x85, 0x56, - 0x92, 0xc2, 0x12, 0x63, 0x8c, 0x0a, 0xdd, 0xde, 0x3f, 0x81, 0x68, 0x16, 0x09, 0x89, 0xb9, 0x0c, - 0x27, 0x91, 0xca, 0x50, 0xad, 0xe9, 0xd4, 0x2a, 0xad, 0x5a, 0xd9, 0xdb, 0x2e, 0x28, 0x57, 0xaa, - 0xc8, 0x0f, 0xdc, 0x26, 0x5d, 0x49, 0x04, 0x97, 0xe3, 0x4e, 0x73, 0x83, 0x11, 0x7b, 0x29, 0x76, - 0x9e, 0x91, 0x6a, 0x5e, 0x63, 0x04, 0x79, 0x0d, 0xaa, 0xbd, 0xf6, 0x2b, 0x07, 0xc8, 0x6d, 0xda, - 0xad, 0xeb, 0xa4, 0x7a, 0x4b, 0x58, 0x09, 0xd4, 0x50, 0xc2, 0xd7, 0x6f, 0x9e, 0x0d, 0x64, 0x3d, - 0xfe, 0x83, 0x01, 0x29, 0xb9, 0x82, 0xc3, 0x05, 0x71, 0x95, 0xa4, 0xf9, 0x08, 0xc9, 0x02, 0x77, - 0xf5, 0xac, 0xf7, 0xa6, 0x8b, 0x38, 0xff, 0xe7, 0x07, 0x68, 0x5d, 0x65, 0x51, 0x24, 0x5e, 0x7b, - 0xb1, 0xaf, 0xd9, 0xb4, 0x5a, 0x4f, 0x58, 0xec, 0x0a, 0x25, 0xbb, 0x81, 0x67, 0x5c, 0xc2, 0x7b, - 0x80, 0xf0, 0x3e, 0xd3, 0x9b, 0xf7, 0xb5, 0x0d, 0xc2, 0x7c, 0xe8, 0xda, 0x46, 0x79, 0x75, 0xcd, - 0x5a, 0x99, 0x5f, 0xb6, 0x18, 0xdc, 0xbc, 0x1d, 0x62, 0x8d, 0xca, 0x7b, 0xae, 0xab, 0x2b, 0x05, - 0x69, 0xea, 0x57, 0xf1, 0x88, 0x03, 0xde, 0xf2, 0x50, 0xf3, 0x33, 0x69, 0x7a, 0x13, 0x5d, 0xff, - 0x1c, 0xc4, 0x89, 0xbe, 0x4c, 0x00, 0xa6, 0xb1, 0xcc, 0x11, 0x33, 0x01, 0xb1, 0xe2, 0x9a, 0x85, - 0xdd, 0x1f, 0xf9, 0x3b, 0x6d, 0x2d, 0xaf, 0x2f, 0x95, 0x8a, 0x28, 0x02, 0x72, 0x17, 0x61, 0x80, - 0x2a, 0x01, 0x87, 0x86, 0x50, 0x03, 0x02, 0xd1, 0x4b, 0xc6, 0x23, 0xc2, 0x7b, 0xb7, 0x56, 0x0a, - 0x25, 0x2b, 0x13, 0x95, 0xcd, 0xfb, 0xb5, 0x08, 0x24, 0xa5, 0x82, 0x0a, 0x2f, 0xe5, 0x95, 0x46, - 0xa3, 0xf9, 0x7c, 0xb9, 0xd2, 0xa8, 0xa3, 0x0c, 0x45, 0xed, 0x03, 0xa4, 0x69, 0x1e, 0xb7, 0xf4, - 0xab, 0xbf, 0x5f, 0x88, 0x6f, 0x7e, 0x2a, 0x02, 0x19, 0xbd, 0x18, 0xd3, 0x04, 0x8c, 0xbc, 0xa5, - 0x02, 0x7e, 0x22, 0x02, 0x69, 0xb5, 0x02, 0xd3, 0xc4, 0x3b, 0xfd, 0x96, 0x8a, 0xf7, 0xf1, 0x08, - 0x0c, 0x2b, 0x75, 0xd7, 0x2f, 0x95, 0x74, 0x1f, 0x33, 0xe0, 0xa8, 0x0f, 0x0e, 0x25, 0x20, 0x5a, - 0xa0, 0xd2, 0x9a, 0xf9, 0xfe, 0x7e, 0xc6, 0x9a, 0xc6, 0xeb, 0xdf, 0x7a, 0xa5, 0xd5, 0x66, 0xf5, - 0x2c, 0x5a, 0x2f, 0xeb, 0x35, 0x94, 0x54, 0xeb, 0x3b, 0x75, 0x54, 0xbe, 0xd1, 0x3b, 0x16, 0x5a, - 0xb5, 0x8e, 0x78, 0xed, 0xf4, 0xf6, 0xf8, 0x3e, 0x30, 0x0f, 0x9a, 0x6e, 0xbd, 0x5d, 0x7f, 0x0e, - 0x6f, 0xcf, 0xf1, 0x1b, 0x69, 0x5c, 0xc5, 0xc6, 0xac, 0x0c, 0xef, 0x59, 0x72, 0xda, 0x82, 0xda, - 0xb1, 0x77, 0x2b, 0x1a, 0x35, 0x4e, 0x43, 0x86, 0x95, 0xe1, 0x3d, 0x82, 0x1a, 0x15, 0x9a, 0xb5, - 0x66, 0x07, 0x17, 0x04, 0x94, 0x0e, 0x67, 0xbd, 0x88, 0x95, 0xa4, 0x6d, 0x82, 0x84, 0x55, 0x6c, - 0xde, 0x1d, 0x7c, 0xca, 0x4a, 0xd2, 0x36, 0x4a, 0x72, 0x0f, 0x8c, 0x54, 0x76, 0x77, 0x5b, 0x98, - 0x39, 0x67, 0x44, 0xcb, 0xd0, 0xb4, 0x68, 0x26, 0x84, 0x13, 0xd7, 0x20, 0xc1, 0xf5, 0x80, 0x17, - 0x16, 0xac, 0x09, 0xb4, 0xe6, 0x93, 0x7d, 0x94, 0x28, 0xbe, 0xa9, 0x77, 0x78, 0x27, 0x1a, 0xb4, - 0xee, 0x96, 0xbd, 0x0d, 0xbd, 0x28, 0xea, 0x4f, 0x58, 0xc9, 0xba, 0x2b, 0x76, 0x70, 0x72, 0x9f, - 0x43, 0xcb, 0xab, 0xba, 0x21, 0x69, 0x2e, 0x40, 0xa2, 0xd1, 0x44, 0xfe, 0x81, 0x11, 0x74, 0x37, - 0x7c, 0x32, 0x64, 0x0f, 0x73, 0x7a, 0x99, 0xd1, 0x5b, 0x02, 0x39, 0xf1, 0xd7, 0x11, 0x48, 0xf0, - 0x66, 0xb4, 0x50, 0xc4, 0x0e, 0x2a, 0xed, 0x3d, 0xc2, 0x2e, 0x5e, 0x88, 0x66, 0x22, 0x16, 0xb9, - 0xc6, 0xed, 0xa8, 0x9a, 0x71, 0x88, 0x0b, 0xb0, 0x76, 0x7c, 0x8d, 0xed, 0xda, 0xb0, 0x2b, 0x35, - 0x52, 0xe0, 0x36, 0xf7, 0xf7, 0x91, 0x25, 0x5d, 0x6e, 0x57, 0xd6, 0x5e, 0x64, 0xcd, 0x78, 0x5f, - 0xbc, 0xdd, 0xaa, 0xd4, 0x1b, 0x0a, 0x6d, 0x8c, 0xd0, 0x66, 0x78, 0x87, 0x20, 0xce, 0xc3, 0xed, - 0x9c, 0x6f, 0xcd, 0x6e, 0x57, 0x50, 0xf1, 0x5c, 0xf3, 0x40, 0x03, 0x64, 0xb7, 0xeb, 0x36, 0x46, - 0xb0, 0xc0, 0xfa, 0x39, 0xb6, 0xf0, 0x24, 0x2a, 0x64, 0x9b, 0xfb, 0xba, 0x26, 0x0a, 0x19, 0xed, - 0xbe, 0xcb, 0x7d, 0x2c, 0xf2, 0x6e, 0xf0, 0x8a, 0x8a, 0xcf, 0x44, 0x8d, 0xab, 0xeb, 0x85, 0x2f, - 0x44, 0x27, 0xae, 0x52, 0xdc, 0x3a, 0xd7, 0xa0, 0x65, 0xef, 0x34, 0xec, 0x2a, 0xd6, 0x0e, 0xbc, - 0x74, 0x17, 0xdc, 0xbf, 0x5b, 0x6f, 0xef, 0x75, 0xb6, 0xa7, 0xd1, 0x08, 0xe7, 0x76, 0x9b, 0xbb, - 0x4d, 0xef, 0x38, 0x03, 0x5f, 0x91, 0x0b, 0xf2, 0x8d, 0x1d, 0x69, 0x0c, 0x89, 0xd6, 0x89, 0xd0, - 0xf3, 0x8f, 0xfc, 0x2a, 0x1c, 0x65, 0xc4, 0x65, 0xb2, 0xa7, 0x4a, 0x4b, 0x50, 0xb3, 0xe7, 0x0d, - 0x79, 0xf6, 0x4b, 0xdf, 0x27, 0x4b, 0x82, 0x35, 0xca, 0xa0, 0xb8, 0x8f, 0x16, 0xa9, 0x79, 0x0b, - 0x8e, 0x29, 0xfc, 0xa8, 0x0f, 0xa3, 0x5b, 0xee, 0xde, 0x1c, 0xbf, 0xc1, 0x38, 0x1e, 0x95, 0x38, - 0x6e, 0x30, 0x68, 0xbe, 0x08, 0xc3, 0x87, 0xe1, 0xf5, 0x4d, 0xc6, 0x2b, 0x65, 0xcb, 0x4c, 0xae, - 0xc2, 0x08, 0x61, 0x52, 0xed, 0xb8, 0xed, 0xe6, 0x3e, 0x49, 0x10, 0xbd, 0xd9, 0xfc, 0xe5, 0xf7, - 0xa9, 0x53, 0xa5, 0x31, 0xac, 0x28, 0x50, 0xf9, 0xc7, 0x61, 0x0c, 0xb7, 0x90, 0x18, 0x94, 0xb9, - 0x85, 0x6f, 0x21, 0x64, 0xff, 0xe6, 0xfd, 0xd4, 0xf7, 0x8e, 0x0a, 0x06, 0x12, 0x5f, 0xc9, 0x12, - 0xbb, 0x76, 0x1b, 0xe5, 0x36, 0x74, 0xff, 0xd7, 0x68, 0x98, 0x3d, 0xcf, 0x18, 0xb2, 0x1f, 0xfd, - 0xa1, 0x6a, 0x89, 0xab, 0x14, 0x39, 0xdf, 0x68, 0xe4, 0xb7, 0xe0, 0x36, 0x1f, 0xcb, 0xf6, 0xc1, - 0xf3, 0x63, 0x8c, 0xe7, 0x58, 0x97, 0x75, 0x31, 0xdb, 0x75, 0xe0, 0xed, 0xc2, 0x1e, 0x7d, 0xf0, - 0xfc, 0x38, 0xe3, 0x69, 0x32, 0x2c, 0x37, 0x0b, 0xe6, 0x78, 0x0d, 0x46, 0xd1, 0x9d, 0xfa, 0x76, - 0xd3, 0x65, 0xf7, 0xbd, 0x7d, 0xb0, 0xfb, 0x04, 0x63, 0x37, 0xc2, 0x80, 0xe4, 0x2e, 0x18, 0xf3, - 0x7a, 0x00, 0x12, 0x3b, 0xe8, 0x06, 0xa8, 0x0f, 0x16, 0x9f, 0x64, 0x2c, 0x06, 0x31, 0x3d, 0x86, - 0xce, 0x43, 0x6a, 0xb7, 0xc9, 0xd2, 0x70, 0x38, 0xfc, 0x53, 0x0c, 0x9e, 0xe4, 0x18, 0xc6, 0xe2, - 0xa0, 0x79, 0xd0, 0x69, 0xe0, 0x1c, 0x1d, 0xce, 0xe2, 0xd3, 0x9c, 0x05, 0xc7, 0x30, 0x16, 0x87, - 0x50, 0xeb, 0x8b, 0x9c, 0x85, 0x2b, 0xe9, 0xf3, 0x51, 0xbc, 0xd7, 0xdb, 0xb8, 0xde, 0x74, 0xfa, - 0x11, 0xe2, 0x25, 0xc6, 0x01, 0x18, 0x04, 0x33, 0x78, 0x10, 0x86, 0xfa, 0x35, 0xc4, 0x67, 0x19, - 0x3c, 0x61, 0x73, 0x0b, 0xa0, 0x38, 0xe3, 0x49, 0x06, 0x9f, 0xad, 0x84, 0xb3, 0xf8, 0x6d, 0xc6, - 0x22, 0x2d, 0xc1, 0xd8, 0x34, 0xda, 0xb6, 0xdb, 0x46, 0xb7, 0xea, 0x7d, 0x30, 0xf9, 0x1c, 0x9f, - 0x06, 0x83, 0x30, 0x55, 0x6e, 0xdb, 0x4e, 0x75, 0xaf, 0x3f, 0x0e, 0x2f, 0x73, 0x55, 0x72, 0x0c, - 0x66, 0x81, 0x32, 0xcf, 0x7e, 0xa5, 0x85, 0x6e, 0xae, 0x1b, 0x7d, 0x99, 0xe3, 0xf3, 0x8c, 0x47, - 0x4a, 0x80, 0x98, 0x46, 0x3a, 0xce, 0x61, 0xd8, 0x7c, 0x81, 0x6b, 0x44, 0x82, 0xb1, 0xd0, 0x43, - 0x77, 0xa6, 0xb8, 0x92, 0x38, 0x0c, 0xb7, 0xdf, 0xe1, 0xa1, 0x47, 0xb1, 0x2b, 0x32, 0x47, 0x64, - 0x69, 0x17, 0xdd, 0x82, 0xf7, 0xc3, 0xe6, 0x77, 0xb9, 0xa5, 0x09, 0x00, 0x83, 0x9f, 0x82, 0xdb, - 0x7d, 0x53, 0x7d, 0x1f, 0xcc, 0x7e, 0x8f, 0x31, 0x1b, 0xf7, 0x49, 0xf7, 0x2c, 0x25, 0x1c, 0x96, - 0xe5, 0xef, 0xf3, 0x94, 0x60, 0x6b, 0xbc, 0xd6, 0x71, 0x19, 0xeb, 0x56, 0x76, 0x0e, 0xa7, 0xb5, - 0x3f, 0xe0, 0x5a, 0xa3, 0x58, 0x45, 0x6b, 0x9b, 0x30, 0xce, 0x38, 0x1e, 0xce, 0xae, 0x5f, 0xe4, - 0x89, 0x95, 0xa2, 0xb7, 0x54, 0xeb, 0x3e, 0x0d, 0x13, 0x42, 0x9d, 0xbc, 0x02, 0x73, 0xcb, 0x78, - 0x63, 0x20, 0x9c, 0xf3, 0x97, 0x18, 0x67, 0x9e, 0xf1, 0x45, 0x09, 0xe7, 0xae, 0x54, 0x0e, 0x30, - 0xf3, 0x27, 0x21, 0xcb, 0x99, 0x77, 0x1c, 0x54, 0xe0, 0x37, 0x77, 0x1d, 0x64, 0xc6, 0x5a, 0x1f, - 0xac, 0xbf, 0xac, 0x99, 0x6a, 0x4b, 0x82, 0x63, 0xce, 0x4b, 0x90, 0x11, 0xf5, 0x46, 0xb9, 0xbe, - 0x7f, 0xd0, 0x44, 0xa5, 0x65, 0x6f, 0x8e, 0x7f, 0xc8, 0x2d, 0x25, 0x70, 0x4b, 0x04, 0x96, 0x2f, - 0x41, 0x9a, 0x5c, 0xf6, 0xeb, 0x92, 0x5f, 0x61, 0x8c, 0x86, 0x3d, 0x14, 0x4b, 0x1c, 0xa8, 0x52, - 0x42, 0x35, 0x6f, 0x3f, 0xf9, 0xef, 0x8f, 0x78, 0xe2, 0x60, 0x10, 0xea, 0x7d, 0x23, 0xda, 0x4a, - 0x6c, 0x86, 0x1d, 0xbf, 0x66, 0xff, 0xfb, 0xeb, 0x2c, 0x66, 0xd5, 0x85, 0x38, 0xbf, 0x8c, 0xd5, - 0xa3, 0x2e, 0x97, 0xe1, 0xcc, 0xde, 0xff, 0xba, 0xd0, 0x90, 0xb2, 0x5a, 0xe6, 0x17, 0x61, 0x58, - 0x59, 0x2a, 0xc3, 0x59, 0xfd, 0x0f, 0xc6, 0x2a, 0x25, 0xaf, 0x94, 0xf9, 0x8b, 0x10, 0xc3, 0xcb, - 0x5e, 0x38, 0xfc, 0x7f, 0x32, 0x38, 0x21, 0xcf, 0x3f, 0x0c, 0x09, 0xbe, 0xdc, 0x85, 0x43, 0x3f, - 0xc0, 0xa0, 0x02, 0x82, 0xe1, 0x7c, 0xa9, 0x0b, 0x87, 0xff, 0x2f, 0x0e, 0xe7, 0x10, 0x0c, 0xef, - 0x5f, 0x85, 0xaf, 0xfc, 0x9f, 0x18, 0x4b, 0x57, 0x5c, 0x77, 0xf8, 0xcc, 0x87, 0xae, 0x71, 0xe1, - 0xe8, 0x0f, 0xb1, 0xc1, 0x39, 0x22, 0x7f, 0x19, 0xe2, 0x7d, 0x2a, 0xfc, 0xff, 0x32, 0x28, 0xa5, - 0x47, 0x2b, 0x48, 0x52, 0x5a, 0xd7, 0xc2, 0xe1, 0xff, 0x8f, 0xc1, 0x65, 0x14, 0x16, 0x9d, 0xad, - 0x6b, 0xe1, 0x0c, 0xfe, 0x3f, 0x17, 0x9d, 0x21, 0xb0, 0xda, 0xf8, 0x92, 0x16, 0x8e, 0xfe, 0x15, - 0xae, 0x75, 0x0e, 0x41, 0xd1, 0x34, 0x24, 0xd2, 0x54, 0x38, 0xfe, 0x57, 0x19, 0xde, 0xc3, 0x60, - 0x0d, 0x48, 0x69, 0x32, 0x9c, 0xc5, 0xaf, 0x71, 0x0d, 0x48, 0x28, 0x1c, 0x46, 0xfa, 0xd2, 0x17, - 0xce, 0xe9, 0xc3, 0x3c, 0x8c, 0xb4, 0x95, 0x0f, 0x5b, 0x93, 0x64, 0x8b, 0x70, 0x16, 0xbf, 0xce, - 0xad, 0x49, 0xe8, 0xb1, 0x18, 0xfa, 0x5a, 0x12, 0xce, 0xe3, 0x37, 0xb9, 0x18, 0xda, 0x52, 0x82, - 0x56, 0x26, 0xb3, 0x7b, 0x1d, 0x09, 0xe7, 0xf7, 0x11, 0xc6, 0x6f, 0xb4, 0x6b, 0x19, 0xc9, 0x3f, - 0x01, 0xe3, 0xfe, 0x6b, 0x48, 0x38, 0xd7, 0x8f, 0xbe, 0xae, 0x55, 0xfd, 0xf2, 0x12, 0x82, 0x96, - 0xbc, 0x31, 0xbf, 0xf5, 0x23, 0x9c, 0xed, 0xc7, 0x5e, 0x57, 0x6f, 0xec, 0xe4, 0xe5, 0x03, 0x55, - 0x68, 0xe0, 0xa5, 0xee, 0x70, 0x5e, 0x9f, 0x60, 0xbc, 0x24, 0x10, 0x0e, 0x0d, 0x96, 0xb9, 0xc3, - 0xf1, 0x9f, 0xe4, 0xa1, 0xc1, 0x10, 0x08, 0x9c, 0x70, 0x3a, 0x8d, 0x06, 0x76, 0x0e, 0xb3, 0xf7, - 0x23, 0x0d, 0xd9, 0x7f, 0xfa, 0x19, 0x0b, 0x0c, 0x0e, 0x40, 0x39, 0x34, 0x6e, 0xef, 0x6f, 0x23, - 0x1d, 0x84, 0x20, 0xff, 0xf9, 0x67, 0x3c, 0x21, 0x60, 0x6a, 0x14, 0x4f, 0x40, 0x6f, 0x1a, 0xc9, - 0x1e, 0x76, 0x08, 0xf6, 0x5f, 0x7e, 0xc6, 0x8e, 0x59, 0x3d, 0x88, 0xc7, 0x80, 0x1e, 0xda, 0xf6, - 0x66, 0xf0, 0x43, 0x95, 0x01, 0xb9, 0xd1, 0x7c, 0x00, 0x06, 0xf1, 0x93, 0x1d, 0xed, 0xca, 0x6e, - 0x18, 0xfa, 0x5f, 0x19, 0x9a, 0xd3, 0x63, 0x85, 0xed, 0x37, 0x5b, 0x36, 0xfa, 0xea, 0x86, 0x61, - 0xff, 0x8d, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xb7, 0xdd, 0xcf, 0xbc, 0xff, 0x9d, 0x83, 0x39, - 0x00, 0x0b, 0x8d, 0xbf, 0x3f, 0x6b, 0x5f, 0x0f, 0xc3, 0xfe, 0x88, 0x0b, 0xcd, 0xe8, 0x51, 0x02, - 0x1c, 0xc2, 0x5f, 0xe9, 0xa3, 0x07, 0x21, 0xe0, 0x1f, 0x33, 0xb0, 0x87, 0x28, 0x9c, 0xf6, 0xdf, - 0xda, 0x81, 0xab, 0xcd, 0xab, 0x4d, 0xba, 0xa9, 0x03, 0xdf, 0xac, 0xc3, 0xe5, 0xc0, 0x3d, 0x1a, - 0x9c, 0x87, 0xcf, 0xa1, 0x66, 0xb4, 0xfa, 0x9e, 0xdb, 0x6e, 0xb6, 0xf7, 0xce, 0xb5, 0xf7, 0x6c, - 0xdc, 0xc6, 0x76, 0x6b, 0x62, 0xf8, 0xfb, 0xc4, 0xe1, 0xb6, 0x78, 0xc8, 0x79, 0xcd, 0x6a, 0x1d, - 0x4b, 0xbd, 0x4a, 0x36, 0x1b, 0xcd, 0xe3, 0x30, 0x40, 0xe6, 0x71, 0x9e, 0xec, 0x85, 0x47, 0x0a, - 0xb1, 0x1b, 0xaf, 0x9d, 0x3c, 0x62, 0x0d, 0x90, 0xe7, 0xf6, 0xce, 0x8b, 0xde, 0x59, 0xb2, 0xd5, - 0x1f, 0x55, 0x7a, 0x67, 0x45, 0xef, 0x05, 0xfa, 0x50, 0x94, 0xd2, 0x7b, 0x41, 0xf4, 0xce, 0x91, - 0x7d, 0x33, 0x43, 0xe9, 0x9d, 0x13, 0xbd, 0x17, 0xc9, 0xf6, 0xe7, 0xb0, 0xd2, 0x7b, 0x51, 0xf4, - 0x5e, 0x22, 0x9b, 0x9e, 0x31, 0xa5, 0xf7, 0x92, 0xe8, 0xbd, 0x4c, 0xf6, 0x3b, 0x47, 0x95, 0xde, - 0xcb, 0xa2, 0xf7, 0x0a, 0xd9, 0xe7, 0x34, 0x95, 0xde, 0x2b, 0xa2, 0xf7, 0x01, 0x72, 0x4c, 0x3d, - 0xa8, 0xf4, 0x3e, 0x60, 0x9e, 0x80, 0x41, 0xaa, 0x8d, 0x19, 0x72, 0xb4, 0x33, 0xc2, 0xba, 0x07, - 0xa9, 0x3a, 0x66, 0xbc, 0xfe, 0xf3, 0xe4, 0x48, 0x7a, 0x40, 0xed, 0x3f, 0xef, 0xf5, 0xcf, 0x92, - 0xc7, 0x2c, 0x33, 0x6a, 0xff, 0xac, 0xd7, 0x7f, 0x21, 0x3b, 0x8c, 0x63, 0x5b, 0xed, 0xbf, 0xe0, - 0xf5, 0xcf, 0x65, 0xd3, 0xd8, 0x9d, 0xd4, 0xfe, 0x39, 0xaf, 0xff, 0x62, 0x76, 0x04, 0x6f, 0xf5, - 0xaa, 0xfd, 0x17, 0x73, 0xef, 0x23, 0xe6, 0x75, 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0x15, 0x86, 0x1d, - 0x57, 0x0d, 0x2b, 0x4c, 0x3a, 0xae, 0x9a, 0x54, 0x18, 0x73, 0x5c, 0x35, 0xa6, 0x30, 0xe3, 0xb8, - 0x6a, 0x46, 0x61, 0xc0, 0x71, 0xd5, 0x80, 0xc2, 0x74, 0xe3, 0xaa, 0xe9, 0x84, 0xd1, 0xc6, 0x55, - 0xa3, 0x09, 0x73, 0x8d, 0xab, 0xe6, 0x12, 0x86, 0xca, 0x6a, 0x86, 0xf2, 0x4c, 0x94, 0xd5, 0x4c, - 0xe4, 0x19, 0x27, 0xab, 0x19, 0xc7, 0x33, 0x4b, 0x56, 0x33, 0x8b, 0x67, 0x90, 0xac, 0x66, 0x10, - 0xcf, 0x14, 0x59, 0xcd, 0x14, 0x9e, 0x11, 0x58, 0x8c, 0x59, 0xf6, 0x81, 0x4f, 0x8c, 0x19, 0x3d, - 0x63, 0xcc, 0xe8, 0x19, 0x63, 0x46, 0xcf, 0x18, 0x33, 0x7a, 0xc6, 0x98, 0xd1, 0x33, 0xc6, 0x8c, - 0x9e, 0x31, 0x66, 0xf4, 0x8c, 0x31, 0xa3, 0x67, 0x8c, 0x19, 0xbd, 0x63, 0xcc, 0x08, 0x89, 0x31, - 0x23, 0x24, 0xc6, 0x8c, 0x90, 0x18, 0x33, 0x42, 0x62, 0xcc, 0x08, 0x89, 0x31, 0x23, 0x30, 0xc6, - 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0xf5, 0x8d, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, - 0x62, 0xcc, 0x08, 0x88, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, - 0x8a, 0x31, 0x23, 0x30, 0xc6, 0x8c, 0xc0, 0x18, 0x33, 0x02, 0x63, 0xcc, 0x08, 0x8c, 0x31, 0x23, - 0x30, 0xc6, 0x0c, 0x39, 0xc6, 0xfe, 0xc4, 0x00, 0x93, 0xc6, 0xd8, 0x3a, 0x79, 0x38, 0x80, 0x99, - 0xe2, 0x84, 0x16, 0x69, 0x03, 0xd8, 0x74, 0x19, 0xcf, 0x24, 0x27, 0xb4, 0x58, 0x53, 0xfb, 0x67, - 0x45, 0x3f, 0x8f, 0x36, 0xb5, 0xff, 0x82, 0xe8, 0xe7, 0xf1, 0xa6, 0xf6, 0xcf, 0x89, 0x7e, 0x1e, - 0x71, 0x6a, 0xff, 0x45, 0xd1, 0xcf, 0x63, 0x4e, 0xed, 0xbf, 0x24, 0xfa, 0x79, 0xd4, 0xa9, 0xfd, - 0x97, 0x45, 0x3f, 0x8f, 0x3b, 0xb5, 0xff, 0x8a, 0xe8, 0xe7, 0x91, 0xa7, 0xf6, 0x3f, 0x60, 0x9e, - 0xd2, 0x63, 0x8f, 0x13, 0x08, 0xd3, 0x9e, 0xd2, 0xa3, 0x4f, 0xa3, 0x38, 0xef, 0x51, 0xf0, 0xf8, - 0xd3, 0x28, 0x66, 0x3d, 0x0a, 0x1e, 0x81, 0x1a, 0xc5, 0x85, 0xdc, 0x07, 0x89, 0xf9, 0x1c, 0xdd, - 0x7c, 0x13, 0x9a, 0xf9, 0xa2, 0x92, 0xe9, 0x26, 0x34, 0xd3, 0x45, 0x25, 0xb3, 0x4d, 0x68, 0x66, - 0x8b, 0x4a, 0x26, 0x9b, 0xd0, 0x4c, 0x16, 0x95, 0xcc, 0x35, 0xa1, 0x99, 0x2b, 0x2a, 0x99, 0x6a, - 0x42, 0x33, 0x55, 0x54, 0x32, 0xd3, 0x84, 0x66, 0xa6, 0xa8, 0x64, 0xa2, 0x09, 0xcd, 0x44, 0x51, - 0xc9, 0x3c, 0x13, 0x9a, 0x79, 0xa2, 0x92, 0x69, 0x8e, 0xeb, 0xa6, 0x89, 0xca, 0x66, 0x39, 0xae, - 0x9b, 0x25, 0x2a, 0x9b, 0xe4, 0xb8, 0x6e, 0x92, 0xa8, 0x6c, 0x8e, 0xe3, 0xba, 0x39, 0xa2, 0xb2, - 0x29, 0x7e, 0x1e, 0xe5, 0x15, 0xe1, 0x46, 0xbb, 0xd5, 0xa9, 0xb6, 0x6f, 0xa9, 0x22, 0x9c, 0x51, - 0xca, 0x87, 0xe4, 0xac, 0x39, 0x4d, 0x0a, 0x56, 0xb9, 0xe2, 0xd4, 0x56, 0xb0, 0x19, 0xa5, 0xb0, - 0x90, 0x10, 0x8e, 0x3f, 0x62, 0xee, 0x96, 0x6a, 0xc3, 0x19, 0xa5, 0xcc, 0x08, 0x97, 0xef, 0xca, - 0x9b, 0x5e, 0xb1, 0xbd, 0x12, 0xe5, 0x15, 0x1b, 0x53, 0xff, 0x61, 0x2b, 0xb6, 0xa9, 0x70, 0x95, - 0x0b, 0x65, 0x4f, 0x85, 0x2b, 0xbb, 0x6b, 0xd5, 0xe9, 0xb7, 0x82, 0x9b, 0x0a, 0x57, 0xad, 0x50, - 0xea, 0x1b, 0x5b, 0x6f, 0x31, 0x0f, 0x46, 0xc9, 0xc4, 0xc7, 0x83, 0x0f, 0x5b, 0x6f, 0xcd, 0x28, - 0xa9, 0xe4, 0xb0, 0x1e, 0x6c, 0x1c, 0xda, 0x83, 0x0f, 0x5b, 0x79, 0xcd, 0x28, 0xe9, 0xe5, 0xd0, - 0x1e, 0xfc, 0x26, 0xd4, 0x43, 0xcc, 0x83, 0x3d, 0xf5, 0x1f, 0xb6, 0x1e, 0x9a, 0x0a, 0x57, 0xb9, - 0xaf, 0x07, 0x1b, 0x87, 0xf0, 0xe0, 0x7e, 0xea, 0xa3, 0xa9, 0x70, 0xd5, 0xfa, 0x7b, 0xf0, 0x2d, - 0x57, 0x33, 0x9f, 0x8e, 0xc0, 0x28, 0x1a, 0xa6, 0x84, 0xf7, 0x79, 0x6a, 0x76, 0x8d, 0xe9, 0x71, - 0x46, 0xc9, 0x04, 0x01, 0xa6, 0x7e, 0xf5, 0xb5, 0x93, 0x9e, 0x86, 0x2f, 0x42, 0x82, 0x6a, 0x78, - 0x66, 0x26, 0x7b, 0x23, 0x12, 0x92, 0xe1, 0x12, 0x3b, 0x8c, 0xd4, 0x3c, 0xcd, 0x61, 0x68, 0xed, - 0xf9, 0x56, 0x44, 0xca, 0x72, 0x8c, 0xe4, 0xfc, 0x4c, 0xee, 0xc3, 0x44, 0x42, 0xe7, 0x96, 0x25, - 0x3c, 0xd7, 0x97, 0x84, 0x92, 0x6c, 0x77, 0x74, 0xc9, 0x26, 0x49, 0xd5, 0x81, 0x11, 0x04, 0x5b, - 0x25, 0x3f, 0xf0, 0xeb, 0x47, 0x24, 0x4a, 0xa3, 0xe5, 0x83, 0x19, 0xc5, 0x2d, 0x65, 0x84, 0x70, - 0x69, 0x35, 0x47, 0xe4, 0xea, 0x78, 0x58, 0x47, 0x19, 0x76, 0x2a, 0x68, 0x58, 0x2f, 0xb3, 0x8b, - 0x01, 0xa7, 0x82, 0x06, 0xf4, 0x62, 0x48, 0x0c, 0xf5, 0x02, 0x5f, 0x9c, 0xe9, 0xf3, 0x1e, 0x28, - 0x39, 0x44, 0x97, 0xe8, 0x63, 0x8b, 0xa9, 0x42, 0x0a, 0x0b, 0xf5, 0xf7, 0xaf, 0x9d, 0x8c, 0x6d, - 0x75, 0x90, 0xac, 0xd1, 0x7a, 0xcd, 0xbc, 0x06, 0xf1, 0xc7, 0xd9, 0xef, 0x6b, 0x30, 0xc1, 0x1c, - 0x23, 0xb8, 0x2f, 0x64, 0x8b, 0x89, 0xb0, 0x9e, 0xde, 0xaa, 0x3b, 0xed, 0xf3, 0xb3, 0x57, 0xd8, - 0x4f, 0x6d, 0x72, 0xff, 0x19, 0x80, 0x8e, 0xb9, 0x80, 0x7f, 0x1f, 0xb0, 0xca, 0x39, 0xd3, 0xa1, - 0xaf, 0x20, 0xae, 0x73, 0xfd, 0x70, 0xbd, 0xbf, 0x86, 0xd0, 0xf7, 0xe3, 0x8d, 0xb8, 0xe9, 0xc2, - 0x75, 0xd4, 0xce, 0xb9, 0x1f, 0xf0, 0x55, 0x8f, 0xcd, 0x2b, 0x2b, 0xcd, 0x2b, 0xa1, 0xcc, 0x69, - 0x51, 0x9d, 0xd3, 0xcc, 0xcd, 0xce, 0xe7, 0x05, 0xbe, 0x48, 0x68, 0x9a, 0x34, 0xc2, 0x34, 0x69, - 0xdc, 0xaa, 0x26, 0x0f, 0x78, 0x7e, 0xd4, 0xe6, 0x6a, 0xf4, 0x9a, 0xab, 0x71, 0x2b, 0x73, 0xfd, - 0x09, 0x8d, 0x56, 0x11, 0x4f, 0x5b, 0x0e, 0x7d, 0x5c, 0xee, 0x97, 0x6b, 0x2f, 0xe8, 0x0d, 0xad, - 0x02, 0xf2, 0xb1, 0x1b, 0x2f, 0x9e, 0x8c, 0xe4, 0x3e, 0x1d, 0xe5, 0x33, 0xa7, 0x81, 0x74, 0x73, - 0x33, 0xff, 0x65, 0xa9, 0xa9, 0xde, 0x0c, 0x0d, 0x7d, 0x2a, 0x02, 0xe3, 0x5d, 0x99, 0x9c, 0xaa, - 0xe9, 0x8d, 0x4d, 0xe7, 0xce, 0x61, 0xd3, 0x39, 0x13, 0xf0, 0x2b, 0x11, 0x18, 0xd3, 0xd2, 0x2b, - 0x15, 0xef, 0x9c, 0x26, 0xde, 0x6d, 0xdd, 0x23, 0x11, 0x42, 0x49, 0x3a, 0xd9, 0xbc, 0x1a, 0x40, - 0xe2, 0x2c, 0xec, 0x3e, 0xa7, 0xd9, 0xfd, 0xb8, 0x00, 0xf8, 0xa8, 0x8b, 0x7b, 0x00, 0x13, 0xbb, - 0x09, 0xb1, 0xcd, 0x96, 0x8d, 0xb7, 0x20, 0xa2, 0x6b, 0x2d, 0x26, 0x61, 0x9a, 0xe2, 0xd7, 0x5a, - 0x85, 0x56, 0xc5, 0xa9, 0xee, 0x59, 0xd1, 0x66, 0x0b, 0x2d, 0xb6, 0xc6, 0x3c, 0xfb, 0x21, 0x72, - 0x72, 0x76, 0x84, 0x12, 0xa0, 0x06, 0x46, 0x61, 0x54, 0x9c, 0x1a, 0x62, 0x11, 0x5b, 0xb6, 0x2b, - 0x3b, 0x4c, 0x08, 0xa0, 0x34, 0xb8, 0xc5, 0x8a, 0x35, 0xd0, 0xbf, 0x6c, 0xc0, 0x27, 0x21, 0xc1, - 0x19, 0x9b, 0x67, 0x30, 0x62, 0xa7, 0xcd, 0x86, 0x65, 0x08, 0x2c, 0x0e, 0x5b, 0xb9, 0x10, 0x6e, - 0xa7, 0x6d, 0x9e, 0x85, 0xb8, 0x55, 0xdf, 0xdd, 0x6b, 0xb3, 0xc1, 0xbb, 0xc9, 0xe2, 0x2d, 0xdc, - 0x9d, 0x7b, 0x0a, 0x86, 0x84, 0x44, 0x6f, 0x30, 0xeb, 0x05, 0x3a, 0x35, 0x74, 0x27, 0x2c, 0xad, - 0x27, 0x7c, 0xdf, 0x92, 0xfd, 0xc8, 0xf3, 0x14, 0x24, 0x90, 0x9a, 0xbd, 0xa4, 0xcf, 0x2b, 0x52, - 0x7c, 0x22, 0x4f, 0x5a, 0x73, 0xef, 0x8b, 0x40, 0x62, 0xc1, 0xb6, 0x0f, 0x88, 0xc2, 0xef, 0x86, - 0xd8, 0x42, 0xf3, 0x79, 0x87, 0x09, 0x38, 0xca, 0x34, 0x8a, 0xbb, 0x99, 0x4e, 0x63, 0x35, 0xd4, - 0x8d, 0xc8, 0x24, 0xbd, 0x1f, 0x15, 0x7a, 0x97, 0xe8, 0x88, 0xee, 0x73, 0x8a, 0xee, 0x99, 0x01, - 0x31, 0x51, 0x97, 0xfe, 0x2f, 0x43, 0x52, 0x1a, 0xc5, 0x9c, 0x64, 0x62, 0x44, 0x75, 0xa0, 0xac, - 0x2b, 0x2c, 0x49, 0xce, 0x86, 0x61, 0x65, 0x60, 0x0c, 0x95, 0x54, 0x1c, 0x00, 0x25, 0x6a, 0x9e, - 0x52, 0xd5, 0xec, 0x4f, 0xca, 0x54, 0x3d, 0x43, 0x75, 0x44, 0xd4, 0x7d, 0x86, 0x3a, 0x67, 0xb0, - 0x11, 0xdb, 0xe8, 0x7b, 0x2e, 0x0e, 0xc6, 0x6a, 0xbd, 0x91, 0x7b, 0x18, 0x80, 0x86, 0x3c, 0x7e, - 0xb8, 0x4a, 0x8b, 0xba, 0x34, 0x57, 0xf0, 0xe6, 0x9e, 0xbd, 0x89, 0xfe, 0x62, 0x12, 0xb5, 0x9e, - 0xc2, 0x09, 0x06, 0x68, 0x88, 0x11, 0xfc, 0xbd, 0xa1, 0x78, 0xdf, 0x4a, 0x0c, 0x93, 0x66, 0x29, - 0xe9, 0x53, 0x76, 0x7b, 0xde, 0x69, 0xb6, 0xf7, 0xec, 0x96, 0x86, 0x98, 0x35, 0x2f, 0x28, 0x01, - 0x9b, 0x9e, 0xbd, 0x43, 0x20, 0x02, 0x41, 0x17, 0x72, 0x5f, 0x24, 0x02, 0xe2, 0x52, 0xa0, 0x6b, - 0x82, 0x46, 0x1f, 0x13, 0x34, 0x2f, 0x29, 0xf5, 0x5b, 0x0f, 0x31, 0xb5, 0x5b, 0xcb, 0x07, 0x94, - 0xfb, 0x9c, 0xde, 0xc2, 0xaa, 0xf7, 0x98, 0x5c, 0xa7, 0x5c, 0xe4, 0x7b, 0x43, 0x45, 0x0e, 0xa8, - 0x6e, 0x0f, 0xab, 0x53, 0xa3, 0x5f, 0x9d, 0x7e, 0x4d, 0x54, 0x1c, 0xf4, 0xb7, 0xe0, 0xe4, 0x0d, - 0x02, 0xe6, 0x7d, 0xa1, 0xb6, 0xcf, 0x47, 0x8a, 0x42, 0xd4, 0xb9, 0x7e, 0xcd, 0x9f, 0x8f, 0x16, - 0x0a, 0x42, 0xdc, 0xcb, 0x87, 0x70, 0x81, 0x7c, 0xb4, 0x58, 0x14, 0x69, 0x3b, 0xf1, 0x41, 0x14, - 0xc5, 0x2f, 0xbf, 0x78, 0xf2, 0x48, 0xee, 0xf3, 0x48, 0x78, 0x46, 0x29, 0x39, 0xee, 0xfd, 0x9a, - 0xf0, 0xc7, 0x78, 0xce, 0xf0, 0xd3, 0xc0, 0x2f, 0xcc, 0x79, 0xbf, 0x11, 0x81, 0x6c, 0x97, 0xac, - 0x5c, 0xdf, 0x33, 0x7d, 0x89, 0x9c, 0x8f, 0x94, 0xde, 0x7a, 0x9d, 0x3f, 0x05, 0xf1, 0xcd, 0xfa, - 0xbe, 0xdd, 0xc2, 0x2b, 0x01, 0xfe, 0x42, 0x45, 0xe6, 0x87, 0x39, 0xf1, 0x36, 0x6e, 0xe2, 0x7d, - 0x54, 0x38, 0xa5, 0x0f, 0x9f, 0x27, 0xc4, 0x16, 0x2a, 0xed, 0x0a, 0x91, 0x20, 0x25, 0xf2, 0x2b, - 0x6a, 0xc9, 0x5d, 0x80, 0xd4, 0xca, 0x75, 0xf2, 0x14, 0x4a, 0x8d, 0x3c, 0xa0, 0xa1, 0x56, 0x7f, - 0xbc, 0x5e, 0x3d, 0x3f, 0x15, 0x4f, 0xd4, 0x32, 0x37, 0x22, 0xf9, 0x18, 0x91, 0xe7, 0x39, 0x48, - 0xaf, 0x61, 0xb1, 0x09, 0x8e, 0xc0, 0x4e, 0x41, 0x64, 0x45, 0x2d, 0x84, 0x64, 0xae, 0x56, 0x64, - 0x5f, 0x2b, 0x1f, 0x0d, 0xa1, 0x1e, 0xad, 0x6c, 0x33, 0x44, 0xd9, 0x36, 0x15, 0x4b, 0xa4, 0x33, - 0xa3, 0xe8, 0x5f, 0xc8, 0x0c, 0xb3, 0x71, 0xff, 0xca, 0x80, 0x0c, 0x2d, 0x75, 0x90, 0x11, 0xeb, - 0x4e, 0xbd, 0xdd, 0x5d, 0xaf, 0x0a, 0x89, 0xcd, 0x47, 0x61, 0x08, 0xab, 0x74, 0x91, 0xbd, 0x88, - 0x07, 0xab, 0xfe, 0x34, 0x2b, 0x51, 0x34, 0x16, 0xac, 0x81, 0xb8, 0x0e, 0x79, 0xe7, 0x0d, 0xc1, - 0xa0, 0x1b, 0x0c, 0x63, 0x75, 0x75, 0x85, 0x2d, 0x6e, 0x73, 0x3d, 0xa1, 0xec, 0x11, 0x18, 0x76, - 0xc5, 0xda, 0xdc, 0x5d, 0xcb, 0x70, 0x56, 0x57, 0x90, 0xdb, 0x44, 0x11, 0x1b, 0x5a, 0xf0, 0x9e, - 0xe9, 0x87, 0x8d, 0x15, 0x75, 0x56, 0x26, 0xfe, 0x34, 0x02, 0xc3, 0x4a, 0x2b, 0x5a, 0x6d, 0x53, - 0xb4, 0x41, 0x9a, 0xee, 0x80, 0x95, 0x72, 0xa4, 0x36, 0x2e, 0x73, 0xf4, 0x16, 0x65, 0x9e, 0x98, - 0x47, 0x77, 0xed, 0x6a, 0xbb, 0x39, 0x0d, 0xa6, 0xdc, 0xc4, 0x84, 0xa0, 0x2f, 0x31, 0x31, 0x9d, - 0xae, 0x9e, 0xdc, 0x9d, 0x28, 0x0b, 0x0b, 0xbd, 0x8a, 0x77, 0x6f, 0xac, 0x96, 0x36, 0xf0, 0x6b, - 0x33, 0x22, 0xb9, 0xaf, 0x46, 0x20, 0xc9, 0xca, 0xd6, 0x6a, 0xf3, 0xc0, 0x36, 0x0b, 0x10, 0x99, - 0x67, 0x1e, 0x74, 0x73, 0x72, 0x47, 0x2a, 0x68, 0x75, 0x8a, 0x14, 0xfa, 0x37, 0x75, 0x64, 0xdb, - 0x9c, 0x85, 0x48, 0x91, 0x19, 0xb8, 0x3f, 0xcb, 0x44, 0xaa, 0xb9, 0x1f, 0x1b, 0x70, 0x54, 0x2e, - 0xa3, 0x79, 0x3e, 0x39, 0xad, 0xde, 0x37, 0xe5, 0x87, 0xce, 0xcf, 0x5e, 0x98, 0x9b, 0xc6, 0xff, - 0x08, 0x97, 0x3c, 0xad, 0xde, 0x42, 0x75, 0x93, 0x74, 0x3d, 0x26, 0x92, 0x8f, 0x49, 0xbd, 0x5d, - 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x47, - 0x01, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xf7, 0x63, 0x22, - 0xac, 0x3b, 0xf0, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x91, 0x3c, - 0xaa, 0xcf, 0x3a, 0x76, 0xf0, 0xa1, 0x83, 0x8a, 0xef, 0x75, 0x0f, 0xe8, 0x25, 0xe0, 0x35, 0x18, - 0xa1, 0xfb, 0x11, 0x45, 0xfc, 0x84, 0x56, 0xdd, 0x41, 0xa9, 0xf8, 0x21, 0x48, 0xd1, 0x26, 0x7a, - 0x97, 0xe3, 0x77, 0x17, 0x48, 0xfb, 0x59, 0xba, 0x4d, 0x55, 0x25, 0xea, 0xdc, 0xcf, 0x63, 0x30, - 0x4e, 0xbb, 0xf1, 0xcf, 0x08, 0x95, 0x87, 0x8c, 0xce, 0x6a, 0x47, 0x4a, 0x69, 0x0c, 0xff, 0xee, - 0x6b, 0x27, 0x69, 0xeb, 0xbc, 0x70, 0xa6, 0xb3, 0xda, 0xe1, 0x92, 0x4a, 0xe7, 0xad, 0x3f, 0x67, - 0xb5, 0x07, 0x8f, 0x54, 0x3a, 0xb1, 0xdc, 0x08, 0x3a, 0xfe, 0x08, 0x92, 0x4a, 0xb7, 0x20, 0xbc, - 0xec, 0xac, 0xf6, 0x30, 0x92, 0x4a, 0x57, 0x12, 0xfe, 0x76, 0x56, 0x3b, 0x7a, 0x52, 0xe9, 0x16, - 0x85, 0xe7, 0x9d, 0xd5, 0x0e, 0xa1, 0x54, 0xba, 0xab, 0xc2, 0x07, 0xcf, 0x6a, 0x8f, 0x2a, 0xa9, - 0x74, 0x8f, 0x09, 0x6f, 0x3c, 0xab, 0x3d, 0xb4, 0xa4, 0xd2, 0x2d, 0x09, 0xbf, 0x9c, 0xd4, 0x1f, - 0x5f, 0x52, 0x09, 0xaf, 0x79, 0x1e, 0x3a, 0xa9, 0x3f, 0xc8, 0xa4, 0x52, 0xbe, 0xd3, 0xf3, 0xd5, - 0x49, 0xfd, 0x91, 0x26, 0x95, 0x72, 0xd9, 0xf3, 0xda, 0x49, 0xfd, 0xa8, 0x4c, 0xa5, 0x5c, 0xf1, - 0xfc, 0x77, 0x52, 0x3f, 0x34, 0x53, 0x29, 0x57, 0x3d, 0x4f, 0x9e, 0xd4, 0x8f, 0xcf, 0x54, 0xca, - 0x35, 0x6f, 0x0f, 0xfd, 0xeb, 0x9a, 0xfb, 0x49, 0x0f, 0x41, 0xe5, 0x34, 0xf7, 0x03, 0x1f, 0xd7, - 0xcb, 0x69, 0xae, 0x07, 0x3e, 0x6e, 0x97, 0xd3, 0xdc, 0x0e, 0x7c, 0x5c, 0x2e, 0xa7, 0xb9, 0x1c, - 0xf8, 0xb8, 0x5b, 0x4e, 0x73, 0x37, 0xf0, 0x71, 0xb5, 0x9c, 0xe6, 0x6a, 0xe0, 0xe3, 0x66, 0x39, - 0xcd, 0xcd, 0xc0, 0xc7, 0xc5, 0x72, 0x9a, 0x8b, 0x81, 0x8f, 0x7b, 0xe5, 0x34, 0xf7, 0x02, 0x1f, - 0xd7, 0x3a, 0xa3, 0xbb, 0x16, 0xf8, 0xb9, 0xd5, 0x19, 0xdd, 0xad, 0xc0, 0xcf, 0xa5, 0xee, 0xd2, - 0x5d, 0x6a, 0x08, 0x51, 0xc5, 0x71, 0x93, 0xe4, 0x4d, 0x67, 0x74, 0x6f, 0x02, 0x3f, 0x4f, 0x3a, - 0xa3, 0x7b, 0x12, 0xf8, 0x79, 0xd1, 0x19, 0xdd, 0x8b, 0xc0, 0xcf, 0x83, 0x5e, 0xd1, 0x3d, 0xc8, - 0x7b, 0xc4, 0x27, 0xa7, 0x9d, 0x28, 0x86, 0x79, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, - 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, - 0x07, 0x19, 0xfd, 0x78, 0x90, 0xd1, 0x97, 0x07, 0x19, 0x41, 0x1e, 0x74, 0x46, 0x7f, 0xe0, 0x01, - 0xfc, 0x12, 0xd2, 0x19, 0xfd, 0xe4, 0x33, 0xdc, 0x85, 0x8c, 0xbe, 0x5c, 0xc8, 0x08, 0x72, 0xa1, - 0xaf, 0xa3, 0x42, 0x4a, 0x71, 0x21, 0x76, 0x3c, 0xf4, 0x46, 0x65, 0xa0, 0x4b, 0x7d, 0x3c, 0x5f, - 0xe1, 0xe7, 0x53, 0x97, 0xfa, 0x38, 0xa3, 0xee, 0xe5, 0x67, 0xdd, 0x59, 0xa8, 0xd4, 0x47, 0x16, - 0x5a, 0x14, 0x3e, 0x74, 0xa9, 0x8f, 0xe7, 0x2e, 0xba, 0x7d, 0xef, 0x4a, 0xaf, 0x24, 0xf0, 0x58, - 0x5f, 0x49, 0x60, 0xa9, 0xaf, 0x24, 0x70, 0xcd, 0xb3, 0xe0, 0x07, 0xa2, 0x30, 0xe6, 0x59, 0x90, - 0x7e, 0x23, 0xaf, 0x50, 0xc9, 0x49, 0x27, 0x54, 0x26, 0x3f, 0xb5, 0x91, 0xcc, 0x88, 0xcf, 0x6f, - 0xd6, 0xd5, 0xb3, 0xaa, 0xfc, 0x61, 0xcf, 0x6f, 0x24, 0x8b, 0xb3, 0xbd, 0xd0, 0x33, 0x60, 0x2c, - 0xd5, 0x5c, 0x92, 0x2d, 0xfc, 0x86, 0x2d, 0x5a, 0x46, 0xbd, 0xe6, 0x9a, 0x16, 0x0c, 0x90, 0x71, - 0x5d, 0x62, 0xde, 0x5b, 0x19, 0x18, 0x99, 0x9e, 0x0c, 0xec, 0xe6, 0x5e, 0x89, 0xc0, 0x29, 0xc5, - 0x95, 0xdf, 0x98, 0x13, 0x83, 0x07, 0xfb, 0x3a, 0x31, 0x50, 0x02, 0xc4, 0x3b, 0x3d, 0xb8, 0xa7, - 0xfb, 0xa0, 0x5a, 0x8e, 0x12, 0xfd, 0x24, 0xe1, 0xbf, 0x41, 0xda, 0x9b, 0x01, 0xb9, 0x65, 0xbb, - 0x18, 0xbe, 0x99, 0xe9, 0x17, 0x9a, 0x17, 0xb5, 0x4d, 0xb4, 0x9e, 0x30, 0x11, 0xad, 0xb9, 0x3c, - 0xba, 0xe3, 0x54, 0x7f, 0x0e, 0x13, 0xb6, 0x17, 0x91, 0xc0, 0xa5, 0xf9, 0x8d, 0x97, 0x50, 0x79, - 0x7e, 0x1f, 0xa4, 0xe4, 0x5f, 0xbc, 0x68, 0xc0, 0x21, 0x0e, 0xcc, 0xc7, 0x5e, 0xc5, 0xd4, 0xbf, - 0x11, 0x81, 0x63, 0x32, 0xf9, 0x13, 0xc8, 0xf6, 0x4b, 0x0e, 0xae, 0xe9, 0x1f, 0x86, 0x84, 0xcd, - 0x0c, 0xc7, 0x5e, 0xbb, 0xc1, 0x6e, 0x23, 0x7d, 0xc9, 0xa7, 0xc9, 0xbf, 0x96, 0x80, 0x68, 0x5b, - 0x1c, 0x7c, 0xd8, 0xd9, 0x89, 0xbb, 0x21, 0x4e, 0xf9, 0xab, 0x72, 0x0d, 0x6b, 0x72, 0x7d, 0xd6, - 0x47, 0x2e, 0xe2, 0x47, 0xe6, 0x35, 0x45, 0x2e, 0xe9, 0x6e, 0xd5, 0x97, 0x7c, 0x9a, 0x3b, 0x5f, - 0x21, 0x81, 0xeb, 0x3f, 0xe2, 0x51, 0xe1, 0x42, 0x4e, 0x42, 0xa2, 0xa4, 0xd3, 0xf8, 0xcb, 0xb9, - 0x00, 0xb1, 0x55, 0xfc, 0x36, 0xb1, 0x31, 0xf6, 0xf6, 0x4c, 0xa6, 0x64, 0xf6, 0x86, 0xd6, 0xb3, - 0x90, 0x28, 0xee, 0xd5, 0x1b, 0xb5, 0x96, 0xed, 0xb0, 0x23, 0x7b, 0xb6, 0x83, 0x8e, 0x31, 0x56, - 0xa2, 0xca, 0xfa, 0xa6, 0x72, 0x90, 0x94, 0x5c, 0xc2, 0x8c, 0xa3, 0xdb, 0xff, 0xcc, 0x11, 0xfc, - 0xa7, 0x90, 0x89, 0xe0, 0x3f, 0xc5, 0x4c, 0x74, 0xea, 0x6e, 0x18, 0xd1, 0x36, 0xc8, 0x70, 0xcf, - 0x42, 0x06, 0xf0, 0x9f, 0x52, 0x26, 0x39, 0x11, 0xfb, 0xe0, 0x6f, 0x9d, 0x38, 0x32, 0xf5, 0x20, - 0x98, 0xdd, 0x5b, 0x69, 0xe6, 0x00, 0x44, 0xe7, 0x31, 0xcb, 0xdb, 0x20, 0x5a, 0x40, 0x3c, 0x27, - 0x46, 0xfe, 0xf7, 0x27, 0x4f, 0x25, 0x0b, 0xe4, 0x07, 0xa3, 0x88, 0xba, 0x50, 0x60, 0xe0, 0x47, - 0xe0, 0x98, 0xef, 0x56, 0x1c, 0xc6, 0x17, 0x8b, 0x14, 0xbf, 0xb0, 0xd0, 0x85, 0x5f, 0x58, 0x20, - 0xf8, 0x48, 0x9e, 0x1f, 0x69, 0xce, 0x9b, 0x3e, 0x1b, 0x5f, 0xd9, 0x9a, 0x74, 0x84, 0x3a, 0x9f, - 0x7f, 0x84, 0xd1, 0x16, 0x7c, 0x69, 0xed, 0x90, 0x23, 0xd1, 0x42, 0xbe, 0xc8, 0xf0, 0x45, 0x5f, - 0xfc, 0x8e, 0x76, 0x6e, 0xa7, 0xe6, 0x20, 0xc6, 0xa4, 0x28, 0x04, 0x5e, 0xf0, 0x65, 0xb2, 0x27, - 0x3d, 0x4d, 0xbd, 0x20, 0x04, 0x2e, 0xf9, 0xd2, 0xd6, 0x43, 0x9e, 0x2a, 0x2a, 0xe5, 0xcf, 0xb1, - 0x65, 0x64, 0xfe, 0xbc, 0x79, 0x8c, 0x7b, 0x81, 0x12, 0xe3, 0x4c, 0x41, 0x74, 0x45, 0x99, 0x3f, - 0x8f, 0x66, 0x48, 0x01, 0x85, 0x40, 0x40, 0xb0, 0x96, 0x28, 0x93, 0xc2, 0xf9, 0xfc, 0x63, 0x8c, - 0x49, 0x31, 0x90, 0x49, 0x88, 0xaa, 0x28, 0xa7, 0xe2, 0xf9, 0xc2, 0xe6, 0x8d, 0xef, 0x9c, 0x38, - 0xf2, 0x2a, 0xfa, 0xfc, 0x1d, 0xfa, 0x7c, 0xfb, 0x3b, 0x27, 0x22, 0x3f, 0x40, 0x9f, 0x1f, 0xa1, - 0xcf, 0x4f, 0xd1, 0xe7, 0xbd, 0xdf, 0x3d, 0x11, 0x79, 0x19, 0x7d, 0xbe, 0x88, 0x3e, 0x7f, 0x8c, - 0x3e, 0xaf, 0xa0, 0xcf, 0x0d, 0xf4, 0x79, 0x15, 0x7d, 0xbe, 0x8d, 0x3e, 0x3f, 0xf8, 0xee, 0x89, - 0x23, 0x3f, 0x42, 0x7f, 0x7f, 0x8a, 0xfe, 0xbe, 0xf7, 0x7b, 0x27, 0x8e, 0xbc, 0x88, 0x3e, 0x2f, - 0x7f, 0xef, 0x44, 0x04, 0xfe, 0x7c, 0x0e, 0x4e, 0xb1, 0x9f, 0x2a, 0x89, 0x1f, 0x15, 0xe2, 0xdf, - 0x2b, 0x91, 0x45, 0xe7, 0x02, 0x7f, 0xbf, 0x8c, 0x68, 0x38, 0xe4, 0xcf, 0x96, 0x26, 0x6e, 0xf6, - 0x47, 0x52, 0xb9, 0x3f, 0x8b, 0xc3, 0x20, 0xdf, 0x6c, 0xf4, 0x7b, 0x75, 0xe9, 0x45, 0x48, 0xa0, - 0xe8, 0xad, 0xb4, 0xea, 0xed, 0xeb, 0x6c, 0x97, 0xed, 0xf6, 0x69, 0x4f, 0x6c, 0xbe, 0x2f, 0xf7, - 0x58, 0x67, 0xbf, 0xd9, 0x41, 0x69, 0x91, 0x93, 0x9a, 0xa7, 0x20, 0xb5, 0x67, 0xe3, 0x53, 0xb6, - 0x72, 0xdd, 0x29, 0x57, 0xf7, 0x49, 0x35, 0x36, 0x6c, 0x01, 0x6d, 0x5b, 0x72, 0x8a, 0xfb, 0x78, - 0x30, 0xbc, 0x19, 0x4d, 0xee, 0x02, 0x53, 0x74, 0x63, 0x1a, 0xbf, 0x38, 0xa9, 0x65, 0xbb, 0xf8, - 0x7d, 0xcb, 0xd5, 0x66, 0xc7, 0x69, 0x93, 0x7a, 0xc9, 0xb0, 0x92, 0xb4, 0xad, 0x88, 0x9b, 0xf0, - 0x3b, 0x99, 0xf1, 0x56, 0x4f, 0xd9, 0xad, 0x36, 0xdb, 0xee, 0x7e, 0xc5, 0x21, 0xf5, 0x52, 0xc2, - 0x4a, 0xe1, 0xc6, 0x0d, 0xd6, 0x46, 0xde, 0x70, 0x5d, 0x6d, 0xb6, 0x6c, 0x72, 0xbb, 0x16, 0xb5, - 0xe8, 0x05, 0x7e, 0xc3, 0xf5, 0xb3, 0xf6, 0x75, 0x72, 0x43, 0x10, 0xb3, 0xf0, 0x57, 0x7c, 0x4c, - 0x44, 0x37, 0x31, 0x49, 0xf5, 0x46, 0xce, 0x46, 0xc5, 0xd4, 0xe8, 0x1e, 0xa0, 0xc5, 0x08, 0xf0, - 0xbb, 0x62, 0x51, 0x12, 0x68, 0x55, 0xea, 0x0e, 0x29, 0xce, 0xf1, 0xbb, 0x62, 0xbb, 0xd5, 0xb0, - 0x49, 0x29, 0xc8, 0xeb, 0x05, 0x2d, 0x4e, 0x8f, 0x54, 0x98, 0x22, 0x74, 0xb3, 0x65, 0xfa, 0x82, - 0xf8, 0x64, 0xa0, 0x37, 0x27, 0x29, 0x1d, 0xdf, 0x8a, 0xe6, 0x30, 0xfa, 0x52, 0xaa, 0x61, 0x32, - 0xec, 0x5d, 0x3e, 0xc3, 0x92, 0xdf, 0xca, 0xcd, 0x92, 0x02, 0x87, 0x0e, 0xcd, 0xf8, 0xd0, 0xd7, - 0x56, 0xad, 0x40, 0x4a, 0x96, 0x8b, 0xab, 0x81, 0x2e, 0xaf, 0x44, 0x0d, 0xf7, 0x78, 0x6f, 0x1d, - 0x0e, 0xd0, 0x02, 0xed, 0xcf, 0x47, 0xaf, 0x44, 0x26, 0xd6, 0x21, 0xa3, 0x8f, 0xe7, 0xc3, 0xf2, - 0xac, 0xca, 0x32, 0x23, 0x4f, 0x96, 0x6c, 0xc4, 0x7a, 0x1c, 0x73, 0x8f, 0xc2, 0x00, 0xf5, 0x1f, - 0x33, 0x09, 0x83, 0x5b, 0xab, 0xef, 0x5c, 0x5d, 0x7b, 0x62, 0x95, 0xbe, 0xb8, 0x6f, 0x7d, 0x6b, - 0x75, 0x83, 0xbe, 0x7e, 0x6f, 0x63, 0x79, 0x7e, 0x7d, 0x63, 0x73, 0xa9, 0xf8, 0xce, 0x4c, 0x14, - 0x6f, 0x2b, 0x17, 0x96, 0x96, 0x97, 0xcb, 0x85, 0xf9, 0xa5, 0xe5, 0xd2, 0x53, 0x19, 0x23, 0x77, - 0x02, 0x06, 0xa8, 0x9c, 0xd8, 0xf0, 0xdb, 0x1d, 0xc7, 0xb9, 0xce, 0x97, 0x27, 0x72, 0x91, 0xfb, - 0xb2, 0x09, 0x83, 0xf3, 0x8d, 0x06, 0x4a, 0x02, 0xae, 0xf9, 0x04, 0x8c, 0xd2, 0xdf, 0xfc, 0x6f, - 0x36, 0x17, 0xc8, 0x7b, 0xc2, 0x70, 0x6a, 0x88, 0xb0, 0xb7, 0x2d, 0x7b, 0xf3, 0x66, 0xe4, 0xd3, - 0x5d, 0xb4, 0x54, 0xc1, 0xa3, 0xae, 0xde, 0x6e, 0x6e, 0x42, 0x86, 0x13, 0x2f, 0x36, 0x9a, 0x95, - 0x36, 0xe6, 0x1b, 0x65, 0xaf, 0xf1, 0x0a, 0xe6, 0xcb, 0x49, 0x29, 0xdb, 0x8c, 0xab, 0x35, 0x9b, - 0x0f, 0x41, 0x62, 0xc9, 0x69, 0x5f, 0x98, 0xc5, 0xdc, 0xf8, 0x0b, 0xfd, 0xbb, 0xb9, 0x71, 0x12, - 0xca, 0x25, 0x51, 0x67, 0x97, 0x0c, 0x7d, 0x69, 0x0e, 0xa3, 0x63, 0xbd, 0xd0, 0x84, 0xc4, 0x43, - 0x93, 0x4b, 0x7c, 0x98, 0xb2, 0xc5, 0x59, 0xb1, 0x77, 0xf8, 0x9f, 0xf6, 0x81, 0x0b, 0x1a, 0x8a, - 0x1f, 0xea, 0x88, 0xe1, 0x19, 0x03, 0x3a, 0xfe, 0x40, 0x4f, 0x06, 0x92, 0x00, 0x84, 0x81, 0x90, - 0x60, 0x43, 0x48, 0x30, 0x18, 0xc8, 0x60, 0x43, 0x93, 0xc0, 0x95, 0x25, 0xd8, 0x10, 0x12, 0x24, - 0x7a, 0x32, 0x90, 0x25, 0x70, 0x85, 0x04, 0x05, 0x80, 0xc5, 0xfa, 0x0b, 0x76, 0x8d, 0x8a, 0x40, - 0x5f, 0xf7, 0x9f, 0xf3, 0xe1, 0xe0, 0x11, 0x51, 0x16, 0xb0, 0x23, 0x1a, 0xcc, 0x12, 0x24, 0x37, - 0xbc, 0x4b, 0x96, 0x3e, 0xee, 0xf2, 0x13, 0x63, 0x47, 0xe3, 0x92, 0x74, 0x25, 0x36, 0x5c, 0x14, - 0x3a, 0x99, 0x64, 0x6f, 0x51, 0xa4, 0xd9, 0x50, 0x51, 0xe8, 0x74, 0x84, 0x28, 0x94, 0x49, 0x2a, - 0x44, 0x14, 0x89, 0x0b, 0x13, 0x85, 0xb2, 0x41, 0xc9, 0xb0, 0xd0, 0x6c, 0x62, 0x4a, 0x96, 0x95, - 0x4e, 0xfa, 0xb0, 0x60, 0x14, 0x2c, 0x19, 0x6e, 0xd3, 0x2b, 0x62, 0x11, 0xe2, 0xe4, 0x18, 0x9c, - 0x0e, 0xb6, 0x08, 0xa7, 0xe1, 0x16, 0xe1, 0xd7, 0x72, 0x9c, 0x91, 0x07, 0x26, 0x31, 0x9f, 0x91, - 0xd0, 0x38, 0xe3, 0xa4, 0x5a, 0x9c, 0xf1, 0x66, 0xf3, 0x5d, 0x30, 0xc2, 0x49, 0x71, 0x7a, 0xc2, - 0x4c, 0x33, 0xec, 0x7f, 0x88, 0x12, 0xcc, 0x94, 0x51, 0x52, 0x9e, 0x23, 0xae, 0xda, 0x6a, 0xae, - 0x42, 0x9a, 0x13, 0xae, 0xb8, 0x64, 0xba, 0xa3, 0xec, 0x2d, 0xe5, 0xc1, 0x1c, 0x29, 0x21, 0x65, - 0x98, 0x76, 0x95, 0xc6, 0x89, 0x05, 0x18, 0xf7, 0xcf, 0x46, 0x72, 0xfa, 0x1d, 0xa2, 0xe9, 0x77, - 0x4c, 0x4e, 0xbf, 0x11, 0x39, 0x7d, 0x17, 0xe1, 0x98, 0x6f, 0xee, 0x09, 0x63, 0x12, 0x95, 0x99, - 0x3c, 0x08, 0xc3, 0x4a, 0xca, 0x91, 0xc1, 0x71, 0x1f, 0x70, 0xbc, 0x1b, 0xec, 0xb9, 0x96, 0xcf, - 0xea, 0xa1, 0x80, 0x0d, 0x19, 0xfc, 0x10, 0xa4, 0xd5, 0x7c, 0x23, 0xa3, 0x87, 0x7d, 0xd0, 0xc3, - 0x3e, 0x68, 0xff, 0xb1, 0x63, 0x3e, 0xe8, 0x98, 0x86, 0xde, 0x08, 0x1c, 0x7b, 0xd4, 0x07, 0x3d, - 0xea, 0x83, 0xf6, 0x1f, 0xdb, 0xf4, 0x41, 0x9b, 0x32, 0xfa, 0x61, 0x18, 0xd1, 0x52, 0x8c, 0x0c, - 0x1f, 0xf4, 0x81, 0x0f, 0xca, 0xf0, 0x47, 0x50, 0xd0, 0xec, 0x04, 0xe3, 0x47, 0x7c, 0xf0, 0x23, - 0x7e, 0xc3, 0xfb, 0x4b, 0x3f, 0xe0, 0x03, 0x1f, 0xf0, 0x1d, 0xde, 0x1f, 0x9f, 0xf1, 0xc1, 0x67, - 0x64, 0x7c, 0x1e, 0x52, 0x72, 0x36, 0x91, 0xb1, 0x09, 0x1f, 0x6c, 0x42, 0xd7, 0xbb, 0x92, 0x4c, - 0xc2, 0x3c, 0x7d, 0x28, 0x20, 0x5c, 0x94, 0x14, 0x12, 0xc6, 0x24, 0x25, 0x33, 0x79, 0x1c, 0xc6, - 0xfc, 0x52, 0x86, 0x0f, 0x8f, 0x49, 0x99, 0x47, 0x1a, 0xd7, 0x88, 0x5e, 0xb1, 0x57, 0x39, 0xd0, - 0x0a, 0xa7, 0x89, 0xa7, 0xe1, 0xa8, 0x4f, 0xe2, 0xf0, 0x61, 0x3b, 0xad, 0x56, 0x63, 0x59, 0x89, - 0x2d, 0x49, 0x02, 0x88, 0xc5, 0x7a, 0x13, 0x39, 0xa7, 0x5c, 0x95, 0x7d, 0xf5, 0x28, 0xa4, 0x59, - 0x7a, 0x5a, 0x6b, 0xd5, 0xec, 0x16, 0xaa, 0xae, 0xfe, 0x4b, 0x70, 0xed, 0x34, 0xd3, 0x9d, 0xd4, - 0x18, 0xea, 0x10, 0x25, 0xd4, 0xd3, 0x81, 0x25, 0xd4, 0xb9, 0x70, 0xf6, 0x61, 0x95, 0x54, 0xb1, - 0xab, 0x92, 0xba, 0x27, 0x98, 0x69, 0x50, 0x41, 0x55, 0xec, 0x2a, 0xa8, 0x7a, 0x33, 0xf1, 0xad, - 0xab, 0x16, 0xbb, 0xeb, 0xaa, 0xc9, 0x60, 0x2e, 0xc1, 0xe5, 0xd5, 0x62, 0x77, 0x79, 0x15, 0xc2, - 0xc7, 0xbf, 0xca, 0x5a, 0xec, 0xae, 0xb2, 0x7a, 0xf0, 0x09, 0x2e, 0xb6, 0x16, 0xbb, 0x8b, 0xad, - 0x10, 0x3e, 0xfe, 0x35, 0xd7, 0x92, 0x4f, 0xcd, 0x75, 0x6f, 0x30, 0xa3, 0x5e, 0xa5, 0xd7, 0xb2, - 0x5f, 0xe9, 0x35, 0xd5, 0x43, 0xa8, 0x9e, 0x15, 0xd8, 0x92, 0x4f, 0x05, 0x16, 0x26, 0x58, 0x40, - 0x21, 0xb6, 0xec, 0x57, 0x88, 0x85, 0x0a, 0x16, 0x54, 0x8f, 0xfd, 0x27, 0xbd, 0x1e, 0x3b, 0x1b, - 0xcc, 0xc9, 0xbf, 0x2c, 0x5b, 0xec, 0x2e, 0xcb, 0x26, 0xc3, 0x62, 0xce, 0xaf, 0x3a, 0x7b, 0x3a, - 0xb0, 0x3a, 0xeb, 0x23, 0x84, 0xc3, 0x8a, 0xb4, 0x27, 0x83, 0x8a, 0xb4, 0xe9, 0x70, 0xde, 0xbd, - 0x6b, 0xb5, 0xad, 0x80, 0x5a, 0xed, 0xfe, 0x70, 0xc6, 0x6f, 0x97, 0x6c, 0x6f, 0x97, 0x6c, 0x6f, - 0x97, 0x6c, 0x6f, 0x97, 0x6c, 0x6f, 0x7d, 0xc9, 0x96, 0x8f, 0x7d, 0xe4, 0xa5, 0x93, 0x91, 0xdc, - 0xdf, 0x1a, 0xe2, 0xff, 0xdc, 0x82, 0x8f, 0x87, 0x70, 0x7a, 0x5b, 0x81, 0x14, 0x79, 0x5b, 0xfd, - 0x7e, 0xe5, 0xe0, 0x00, 0xff, 0xff, 0x9c, 0x22, 0x5d, 0xcb, 0x8d, 0x0a, 0x20, 0xef, 0xfb, 0x5f, - 0xa1, 0xc4, 0x6c, 0xb9, 0x71, 0xbc, 0x16, 0xf3, 0x1a, 0x24, 0xf7, 0xdd, 0x5d, 0xc1, 0x2d, 0xda, - 0xb5, 0x10, 0x6a, 0xdc, 0xe8, 0x4c, 0x3d, 0x66, 0xb0, 0x2f, 0x1a, 0xb0, 0x68, 0xdb, 0xc8, 0x4a, - 0x82, 0x99, 0x11, 0x26, 0x1a, 0xb6, 0xa9, 0x2a, 0xda, 0xb6, 0xd7, 0x82, 0xdd, 0x56, 0x97, 0x3d, - 0x2c, 0xd3, 0x29, 0xce, 0xf3, 0x04, 0x8c, 0x68, 0xd2, 0xfa, 0xc4, 0xfc, 0x4d, 0xd8, 0x06, 0x0b, - 0xa6, 0x4b, 0x1e, 0x16, 0x13, 0xb2, 0x43, 0xe6, 0xee, 0x84, 0x61, 0x85, 0xb7, 0x99, 0x82, 0xc8, - 0x0e, 0xfb, 0xb5, 0x5e, 0x64, 0x07, 0xff, 0x40, 0x3a, 0xc9, 0x8e, 0xaa, 0xd7, 0x2b, 0xf5, 0x96, - 0xf9, 0x18, 0x90, 0xdf, 0xc3, 0xb0, 0xe3, 0xf8, 0x9b, 0xfb, 0x75, 0x26, 0xfd, 0x45, 0xcd, 0x22, - 0xd0, 0x9f, 0xcb, 0xdc, 0xfc, 0xcf, 0x4b, 0xe9, 0xaf, 0x6d, 0x6e, 0x44, 0x60, 0x94, 0x3d, 0x49, - 0xe9, 0xb2, 0xe7, 0x6b, 0xd1, 0x0a, 0xf9, 0xe5, 0x08, 0x0c, 0x89, 0x2b, 0x73, 0x1b, 0xd2, 0xe2, - 0x82, 0x3e, 0xc3, 0x4d, 0x3d, 0x35, 0x2f, 0x69, 0xb8, 0x8b, 0xc7, 0xb4, 0xcf, 0x37, 0x7a, 0x80, - 0x45, 0xd7, 0x64, 0x47, 0x69, 0x9c, 0x98, 0x87, 0xa3, 0x3e, 0x64, 0x87, 0x59, 0x90, 0xa7, 0x4e, - 0xc3, 0x20, 0x0b, 0x6d, 0x7c, 0x60, 0xb8, 0x82, 0x0f, 0x1c, 0xf1, 0x5f, 0x7c, 0x88, 0x89, 0xff, - 0x16, 0x33, 0xd1, 0xc2, 0xf2, 0x4d, 0x1e, 0x22, 0x1d, 0xf1, 0x3b, 0x44, 0xda, 0x1e, 0xa0, 0x73, - 0xff, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0xbe, 0xa6, 0x69, 0x78, 0x79, 0x00, 0x00, + // 7844 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, + 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, + 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, + 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, + 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0x3b, 0x15, 0x27, 0x71, + 0x12, 0x6f, 0xd6, 0x55, 0xbb, 0x55, 0xde, 0x87, 0xd4, 0xb9, 0x75, 0xf7, 0x39, 0x68, 0xa0, 0xc1, + 0x91, 0x64, 0xfb, 0x41, 0x2f, 0x33, 0xe8, 0x73, 0xfe, 0xef, 0xeb, 0xbf, 0xff, 0xdb, 0xf9, 0xfb, + 0x74, 0x03, 0x84, 0xef, 0xad, 0xc1, 0x85, 0x63, 0xc7, 0x39, 0x6e, 0xa0, 0x2b, 0xad, 0xb6, 0xe3, + 0x39, 0x87, 0x9d, 0xa3, 0x2b, 0x75, 0xe4, 0xd6, 0xda, 0x56, 0xcb, 0x73, 0xda, 0x4b, 0x64, 0x4c, + 0x9f, 0xa4, 0x12, 0x4b, 0x5c, 0x22, 0xb7, 0x0d, 0x53, 0x1b, 0x56, 0x03, 0xad, 0xfb, 0x82, 0x7b, + 0xc8, 0xd3, 0x6f, 0x42, 0xf2, 0xc8, 0x6a, 0xa0, 0xac, 0x72, 0x41, 0x5d, 0x48, 0xaf, 0x5c, 0x5a, + 0x92, 0x40, 0x4b, 0x22, 0x62, 0x17, 0x0f, 0x1b, 0x04, 0x91, 0xfb, 0x7e, 0x12, 0xa6, 0x23, 0x66, + 0x75, 0x1d, 0x92, 0xb6, 0xd9, 0xc4, 0x8c, 0xca, 0xc2, 0x98, 0x41, 0x3e, 0xeb, 0x59, 0x18, 0x6d, + 0x99, 0xb5, 0x57, 0xcd, 0x63, 0x94, 0x4d, 0x90, 0x61, 0x7e, 0xa8, 0xcf, 0x01, 0xd4, 0x51, 0x0b, + 0xd9, 0x75, 0x64, 0xd7, 0x4e, 0xb3, 0xea, 0x05, 0x75, 0x61, 0xcc, 0x08, 0x8d, 0xe8, 0x1f, 0x81, + 0xa9, 0x56, 0xe7, 0xb0, 0x61, 0xd5, 0xaa, 0x21, 0x31, 0xb8, 0xa0, 0x2e, 0x0c, 0x1b, 0x1a, 0x9d, + 0x58, 0x0f, 0x84, 0x9f, 0x86, 0xc9, 0xd7, 0x91, 0xf9, 0x6a, 0x58, 0x34, 0x4d, 0x44, 0x27, 0xf0, + 0x70, 0x48, 0xb0, 0x04, 0x99, 0x26, 0x72, 0x5d, 0xf3, 0x18, 0x55, 0xbd, 0xd3, 0x16, 0xca, 0x26, + 0xc9, 0xd5, 0x5f, 0xe8, 0xba, 0x7a, 0xf9, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, + 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0xa6, 0xcc, 0x92, 0xc2, + 0x30, 0x46, 0x31, 0xea, 0xa2, 0xf6, 0x6b, 0x56, 0x0d, 0x65, 0x47, 0x08, 0xc1, 0xd3, 0x5d, 0x04, + 0x7b, 0x74, 0x5e, 0xe6, 0xe0, 0x38, 0xbd, 0x04, 0x63, 0xe8, 0x0d, 0x0f, 0xd9, 0xae, 0xe5, 0xd8, + 0xd9, 0x51, 0x42, 0xf2, 0x54, 0x84, 0x17, 0x51, 0xa3, 0x2e, 0x53, 0x04, 0x38, 0xfd, 0x3a, 0x8c, + 0x3a, 0x2d, 0xcf, 0x72, 0x6c, 0x37, 0x9b, 0xba, 0xa0, 0x2c, 0xa4, 0x57, 0xce, 0x47, 0x06, 0xc2, + 0x0e, 0x95, 0x31, 0xb8, 0xb0, 0xbe, 0x09, 0x9a, 0xeb, 0x74, 0xda, 0x35, 0x54, 0xad, 0x39, 0x75, + 0x54, 0xb5, 0xec, 0x23, 0x27, 0x3b, 0x46, 0x08, 0xe6, 0xbb, 0x2f, 0x84, 0x08, 0x96, 0x9c, 0x3a, + 0xda, 0xb4, 0x8f, 0x1c, 0x63, 0xc2, 0x15, 0x8e, 0xf5, 0x19, 0x18, 0x71, 0x4f, 0x6d, 0xcf, 0x7c, + 0x23, 0x9b, 0x21, 0x11, 0xc2, 0x8e, 0x72, 0x7f, 0x32, 0x0c, 0x93, 0x83, 0x84, 0xd8, 0x6d, 0x18, + 0x3e, 0xc2, 0x57, 0x99, 0x4d, 0x9c, 0xc5, 0x06, 0x14, 0x23, 0x1a, 0x71, 0xe4, 0x21, 0x8d, 0x58, + 0x80, 0xb4, 0x8d, 0x5c, 0x0f, 0xd5, 0x69, 0x44, 0xa8, 0x03, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, + 0x25, 0x1f, 0x2a, 0xa4, 0x5e, 0x86, 0x49, 0x5f, 0xa5, 0x6a, 0xdb, 0xb4, 0x8f, 0x79, 0x6c, 0x5e, + 0x89, 0xd3, 0x64, 0xa9, 0xcc, 0x71, 0x06, 0x86, 0x19, 0x13, 0x48, 0x38, 0xd6, 0xd7, 0x01, 0x1c, + 0x1b, 0x39, 0x47, 0xd5, 0x3a, 0xaa, 0x35, 0xb2, 0xa9, 0x1e, 0x56, 0xda, 0xc1, 0x22, 0x5d, 0x56, + 0x72, 0xe8, 0x68, 0xad, 0xa1, 0xdf, 0x0a, 0x42, 0x6d, 0xb4, 0x47, 0xa4, 0x6c, 0xd3, 0x24, 0xeb, + 0x8a, 0xb6, 0x03, 0x98, 0x68, 0x23, 0x1c, 0xf7, 0xa8, 0xce, 0xae, 0x6c, 0x8c, 0x28, 0xb1, 0x14, + 0x7b, 0x65, 0x06, 0x83, 0xd1, 0x0b, 0x1b, 0x6f, 0x87, 0x0f, 0xf5, 0x27, 0xc1, 0x1f, 0xa8, 0x92, + 0xb0, 0x02, 0x52, 0x85, 0x32, 0x7c, 0xb0, 0x62, 0x36, 0xd1, 0xec, 0x4d, 0x98, 0x10, 0xcd, 0xa3, + 0x9f, 0x83, 0x61, 0xd7, 0x33, 0xdb, 0x1e, 0x89, 0xc2, 0x61, 0x83, 0x1e, 0xe8, 0x1a, 0xa8, 0xc8, + 0xae, 0x93, 0x2a, 0x37, 0x6c, 0xe0, 0x8f, 0xb3, 0x37, 0x60, 0x5c, 0x38, 0xfd, 0xa0, 0xc0, 0xdc, + 0xe7, 0x46, 0xe0, 0x5c, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x0c, 0x8c, 0xd8, 0x9d, 0xe6, 0x21, 0x6a, + 0x67, 0x55, 0xc2, 0xc0, 0x8e, 0xf4, 0x02, 0x0c, 0x37, 0xcc, 0x43, 0xd4, 0xc8, 0x26, 0x2f, 0x28, + 0x0b, 0x13, 0x2b, 0x1f, 0x19, 0x28, 0xaa, 0x97, 0xb6, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x79, 0x48, + 0xb2, 0x12, 0x87, 0x19, 0x16, 0x07, 0x63, 0xc0, 0xb1, 0x68, 0x10, 0x9c, 0xfe, 0x38, 0x8c, 0xe1, + 0xff, 0xa9, 0x6d, 0x47, 0x88, 0xce, 0x29, 0x3c, 0x80, 0xed, 0xaa, 0xcf, 0x42, 0x8a, 0x84, 0x59, + 0x1d, 0xf1, 0xa5, 0xc1, 0x3f, 0xc6, 0x8e, 0xa9, 0xa3, 0x23, 0xb3, 0xd3, 0xf0, 0xaa, 0xaf, 0x99, + 0x8d, 0x0e, 0x22, 0x01, 0x33, 0x66, 0x64, 0xd8, 0xe0, 0x27, 0xf1, 0x98, 0x3e, 0x0f, 0x69, 0x1a, + 0x95, 0x96, 0x5d, 0x47, 0x6f, 0x90, 0xea, 0x33, 0x6c, 0xd0, 0x40, 0xdd, 0xc4, 0x23, 0xf8, 0xf4, + 0xaf, 0xb8, 0x8e, 0xcd, 0x5d, 0x4b, 0x4e, 0x81, 0x07, 0xc8, 0xe9, 0x6f, 0xc8, 0x85, 0xef, 0x89, + 0xe8, 0xcb, 0x93, 0x63, 0x31, 0xf7, 0xcd, 0x04, 0x24, 0x49, 0xbe, 0x4d, 0x42, 0x7a, 0xff, 0xde, + 0x6e, 0xb9, 0xba, 0xbe, 0x73, 0x50, 0xdc, 0x2a, 0x6b, 0x8a, 0x3e, 0x01, 0x40, 0x06, 0x36, 0xb6, + 0x76, 0x0a, 0xfb, 0x5a, 0xc2, 0x3f, 0xde, 0xac, 0xec, 0x5f, 0x5f, 0xd5, 0x54, 0x1f, 0x70, 0x40, + 0x07, 0x92, 0x61, 0x81, 0x6b, 0x2b, 0xda, 0xb0, 0xae, 0x41, 0x86, 0x12, 0x6c, 0xbe, 0x5c, 0x5e, + 0xbf, 0xbe, 0xaa, 0x8d, 0x88, 0x23, 0xd7, 0x56, 0xb4, 0x51, 0x7d, 0x1c, 0xc6, 0xc8, 0x48, 0x71, + 0x67, 0x67, 0x4b, 0x4b, 0xf9, 0x9c, 0x7b, 0xfb, 0xc6, 0x66, 0xe5, 0x8e, 0x36, 0xe6, 0x73, 0xde, + 0x31, 0x76, 0x0e, 0x76, 0x35, 0xf0, 0x19, 0xb6, 0xcb, 0x7b, 0x7b, 0x85, 0x3b, 0x65, 0x2d, 0xed, + 0x4b, 0x14, 0xef, 0xed, 0x97, 0xf7, 0xb4, 0x8c, 0xa0, 0xd6, 0xb5, 0x15, 0x6d, 0xdc, 0x3f, 0x45, + 0xb9, 0x72, 0xb0, 0xad, 0x4d, 0xe8, 0x53, 0x30, 0x4e, 0x4f, 0xc1, 0x95, 0x98, 0x94, 0x86, 0xae, + 0xaf, 0x6a, 0x5a, 0xa0, 0x08, 0x65, 0x99, 0x12, 0x06, 0xae, 0xaf, 0x6a, 0x7a, 0xae, 0x04, 0xc3, + 0x24, 0xba, 0x74, 0x1d, 0x26, 0xb6, 0x0a, 0xc5, 0xf2, 0x56, 0x75, 0x67, 0x77, 0x7f, 0x73, 0xa7, + 0x52, 0xd8, 0xd2, 0x94, 0x60, 0xcc, 0x28, 0x7f, 0xe2, 0x60, 0xd3, 0x28, 0xaf, 0x6b, 0x89, 0xf0, + 0xd8, 0x6e, 0xb9, 0xb0, 0x5f, 0x5e, 0xd7, 0xd4, 0x5c, 0x0d, 0xce, 0x45, 0xd5, 0x99, 0xc8, 0xcc, + 0x08, 0xb9, 0x38, 0xd1, 0xc3, 0xc5, 0x84, 0xab, 0xcb, 0xc5, 0xbf, 0xae, 0xc0, 0x74, 0x44, 0xad, + 0x8d, 0x3c, 0xc9, 0x0b, 0x30, 0x4c, 0x43, 0x94, 0xae, 0x3e, 0xcf, 0x44, 0x16, 0x6d, 0x12, 0xb0, + 0x5d, 0x2b, 0x10, 0xc1, 0x85, 0x57, 0x60, 0xb5, 0xc7, 0x0a, 0x8c, 0x29, 0xba, 0x94, 0xfc, 0x8c, + 0x02, 0xd9, 0x5e, 0xdc, 0x31, 0x85, 0x22, 0x21, 0x14, 0x8a, 0xdb, 0xb2, 0x02, 0x17, 0x7b, 0x5f, + 0x43, 0x97, 0x16, 0x5f, 0x55, 0x60, 0x26, 0xba, 0x51, 0x89, 0xd4, 0xe1, 0x79, 0x18, 0x69, 0x22, + 0xef, 0xc4, 0xe1, 0x8b, 0xf5, 0xe5, 0x88, 0x25, 0x00, 0x4f, 0xcb, 0xb6, 0x62, 0xa8, 0xf0, 0x1a, + 0xa2, 0xf6, 0xea, 0x36, 0xa8, 0x36, 0x5d, 0x9a, 0xfe, 0x4a, 0x02, 0x1e, 0x89, 0x24, 0x8f, 0x54, + 0xf4, 0x09, 0x00, 0xcb, 0x6e, 0x75, 0x3c, 0xba, 0x20, 0xd3, 0xfa, 0x34, 0x46, 0x46, 0x48, 0xee, + 0xe3, 0xda, 0xd3, 0xf1, 0xfc, 0x79, 0x95, 0xcc, 0x03, 0x1d, 0x22, 0x02, 0x37, 0x03, 0x45, 0x93, + 0x44, 0xd1, 0xb9, 0x1e, 0x57, 0xda, 0xb5, 0xd6, 0x2d, 0x83, 0x56, 0x6b, 0x58, 0xc8, 0xf6, 0xaa, + 0xae, 0xd7, 0x46, 0x66, 0xd3, 0xb2, 0x8f, 0x49, 0x01, 0x4e, 0xe5, 0x87, 0x8f, 0xcc, 0x86, 0x8b, + 0x8c, 0x49, 0x3a, 0xbd, 0xc7, 0x67, 0x31, 0x82, 0xac, 0x32, 0xed, 0x10, 0x62, 0x44, 0x40, 0xd0, + 0x69, 0x1f, 0x91, 0xfb, 0xed, 0x51, 0x48, 0x87, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, + 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, + 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, + 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, + 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, + 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, + 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, + 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, + 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, + 0x8e, 0x77, 0x74, 0x33, 0xfb, 0x78, 0xf8, 0xfc, 0x44, 0xc3, 0x3d, 0x22, 0x53, 0xc2, 0x22, 0x07, + 0xde, 0xd1, 0x4d, 0x7d, 0x0f, 0x32, 0xd8, 0x19, 0x4d, 0xeb, 0xd3, 0xa8, 0x7a, 0xe4, 0xb4, 0xc9, + 0xca, 0x32, 0x11, 0x91, 0xd9, 0x21, 0x0b, 0x2e, 0xed, 0x30, 0xc0, 0xb6, 0x53, 0x47, 0xf9, 0xe1, + 0xbd, 0xdd, 0x72, 0x79, 0xdd, 0x48, 0x73, 0x96, 0x0d, 0xa7, 0x8d, 0x03, 0xea, 0xd8, 0xf1, 0x0d, + 0x9c, 0xa6, 0x01, 0x75, 0xec, 0x70, 0xf3, 0xae, 0xc1, 0x74, 0xad, 0x46, 0xaf, 0xd9, 0xaa, 0x55, + 0x59, 0x8b, 0xef, 0x66, 0x35, 0xc1, 0x58, 0xb5, 0xda, 0x1d, 0x2a, 0xc0, 0x62, 0xdc, 0xd5, 0x6f, + 0xc1, 0x23, 0x81, 0xb1, 0xc2, 0xc0, 0xa9, 0xae, 0xab, 0x94, 0xa1, 0x6b, 0x30, 0xdd, 0x3a, 0xed, + 0x06, 0xea, 0xc2, 0x19, 0x5b, 0xa7, 0x32, 0xec, 0x29, 0x72, 0xdb, 0xd6, 0x46, 0x35, 0xd3, 0x43, + 0xf5, 0xec, 0xa3, 0x61, 0xe9, 0xd0, 0x84, 0x7e, 0x05, 0xb4, 0x5a, 0xad, 0x8a, 0x6c, 0xf3, 0xb0, + 0x81, 0xaa, 0x66, 0x1b, 0xd9, 0xa6, 0x9b, 0x9d, 0x0f, 0x0b, 0x4f, 0xd4, 0x6a, 0x65, 0x32, 0x5b, + 0x20, 0x93, 0xfa, 0x22, 0x4c, 0x39, 0x87, 0xaf, 0xd4, 0x68, 0x64, 0x55, 0x5b, 0x6d, 0x74, 0x64, + 0xbd, 0x91, 0xbd, 0x44, 0xcc, 0x34, 0x89, 0x27, 0x48, 0x5c, 0xed, 0x92, 0x61, 0xfd, 0x19, 0xd0, + 0x6a, 0xee, 0x89, 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x6d, 0x99, 0x35, 0x94, 0x7d, 0x8a, 0x8a, 0xd2, + 0xf1, 0x0a, 0x1f, 0xc6, 0x91, 0xed, 0xbe, 0x6e, 0x1d, 0x79, 0x9c, 0xf1, 0x69, 0x1a, 0xd9, 0x64, + 0x8c, 0xb1, 0xbd, 0x0c, 0xe7, 0x3a, 0xb6, 0x65, 0x7b, 0xa8, 0xdd, 0x6a, 0x23, 0xdc, 0xc4, 0xd3, + 0x4c, 0xcc, 0xfe, 0xf7, 0xd1, 0x1e, 0x6d, 0xf8, 0x41, 0x58, 0x9a, 0x06, 0x80, 0x31, 0xdd, 0xe9, + 0x1e, 0xcc, 0xe5, 0x21, 0x13, 0x8e, 0x0b, 0x7d, 0x0c, 0x68, 0x64, 0x68, 0x0a, 0x5e, 0x63, 0x4b, + 0x3b, 0xeb, 0x78, 0x75, 0xfc, 0x85, 0xb2, 0x96, 0xc0, 0xab, 0xf4, 0xd6, 0xe6, 0x7e, 0xb9, 0x6a, + 0x1c, 0x54, 0xf6, 0x37, 0xb7, 0xcb, 0x9a, 0xba, 0x38, 0x96, 0xfa, 0xc1, 0xa8, 0xf6, 0xe6, 0x9b, + 0x6f, 0xbe, 0x99, 0xc8, 0x7d, 0x2b, 0x01, 0x13, 0x62, 0x67, 0xac, 0x7f, 0x0c, 0x1e, 0xe5, 0xb7, + 0xb1, 0x2e, 0xf2, 0xaa, 0xaf, 0x5b, 0x6d, 0x12, 0xaa, 0x4d, 0x93, 0xf6, 0x96, 0xbe, 0x95, 0xcf, + 0x31, 0xa9, 0x3d, 0xe4, 0xbd, 0x64, 0xb5, 0x71, 0x20, 0x36, 0x4d, 0x4f, 0xdf, 0x82, 0x79, 0xdb, + 0xa9, 0xba, 0x9e, 0x69, 0xd7, 0xcd, 0x76, 0xbd, 0x1a, 0x6c, 0x20, 0x54, 0xcd, 0x5a, 0x0d, 0xb9, + 0xae, 0x43, 0x97, 0x08, 0x9f, 0xe5, 0xbc, 0xed, 0xec, 0x31, 0xe1, 0xa0, 0x76, 0x16, 0x98, 0xa8, + 0x14, 0x11, 0x6a, 0xaf, 0x88, 0x78, 0x1c, 0xc6, 0x9a, 0x66, 0xab, 0x8a, 0x6c, 0xaf, 0x7d, 0x4a, + 0xfa, 0xb9, 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x32, 0x3e, 0xfe, 0xe0, 0x7c, 0x10, 0xb6, 0xe3, 0x7f, + 0x55, 0x21, 0x13, 0xee, 0xe9, 0x70, 0x8b, 0x5c, 0x23, 0xf5, 0x5b, 0x21, 0x19, 0xfe, 0x64, 0xdf, + 0x0e, 0x70, 0xa9, 0x84, 0x0b, 0x7b, 0x7e, 0x84, 0x76, 0x5a, 0x06, 0x45, 0xe2, 0x45, 0x15, 0xe7, + 0x34, 0xa2, 0xfd, 0x7b, 0xca, 0x60, 0x47, 0xfa, 0x1d, 0x18, 0x79, 0xc5, 0x25, 0xdc, 0x23, 0x84, + 0xfb, 0x52, 0x7f, 0xee, 0xbb, 0x7b, 0x84, 0x7c, 0xec, 0xee, 0x5e, 0xb5, 0xb2, 0x63, 0x6c, 0x17, + 0xb6, 0x0c, 0x06, 0xd7, 0x1f, 0x83, 0x64, 0xc3, 0xfc, 0xf4, 0xa9, 0xb8, 0x04, 0x90, 0xa1, 0x41, + 0x0d, 0xff, 0x18, 0x24, 0x5f, 0x47, 0xe6, 0xab, 0x62, 0xe1, 0x25, 0x43, 0x1f, 0x60, 0xe8, 0x5f, + 0x81, 0x61, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0x1b, 0xd2, 0x53, 0x90, 0x2c, 0xed, 0x18, 0x38, + 0xfc, 0x35, 0xc8, 0xd0, 0xd1, 0xea, 0xee, 0x66, 0xb9, 0x54, 0xd6, 0x12, 0xb9, 0x35, 0x18, 0xa1, + 0x46, 0xc0, 0xa9, 0xe1, 0x9b, 0x41, 0x1b, 0x62, 0x87, 0x8c, 0x43, 0xe1, 0xb3, 0x07, 0xdb, 0xc5, + 0xb2, 0xa1, 0x25, 0xc2, 0xee, 0x75, 0x21, 0x13, 0x6e, 0xe7, 0x7e, 0x3a, 0x31, 0xf5, 0xfb, 0x0a, + 0xa4, 0x43, 0xed, 0x19, 0x6e, 0x0c, 0xcc, 0x46, 0xc3, 0x79, 0xbd, 0x6a, 0x36, 0x2c, 0xd3, 0x65, + 0x41, 0x01, 0x64, 0xa8, 0x80, 0x47, 0x06, 0x75, 0xda, 0x4f, 0x45, 0xf9, 0x2f, 0x29, 0xa0, 0xc9, + 0xad, 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x0b, 0x0a, 0x4c, 0x88, 0xfd, 0x9c, 0xa4, 0xde, + 0xc5, 0x9f, 0xa9, 0x7a, 0xdf, 0x4d, 0xc0, 0xb8, 0xd0, 0xc5, 0x0d, 0xaa, 0xdd, 0x2f, 0xc2, 0x94, + 0x55, 0x47, 0xcd, 0x96, 0xe3, 0x21, 0xbb, 0x76, 0x5a, 0x6d, 0xa0, 0xd7, 0x50, 0x23, 0x9b, 0x23, + 0x85, 0xe2, 0x4a, 0xff, 0x3e, 0x71, 0x69, 0x33, 0xc0, 0x6d, 0x61, 0x58, 0x7e, 0x7a, 0x73, 0xbd, + 0xbc, 0xbd, 0xbb, 0xb3, 0x5f, 0xae, 0x94, 0xee, 0x55, 0x0f, 0x2a, 0x1f, 0xaf, 0xec, 0xbc, 0x54, + 0x31, 0x34, 0x4b, 0x12, 0xfb, 0x00, 0x53, 0x7d, 0x17, 0x34, 0x59, 0x29, 0xfd, 0x51, 0x88, 0x52, + 0x4b, 0x1b, 0xd2, 0xa7, 0x61, 0xb2, 0xb2, 0x53, 0xdd, 0xdb, 0x5c, 0x2f, 0x57, 0xcb, 0x1b, 0x1b, + 0xe5, 0xd2, 0xfe, 0x1e, 0xbd, 0x71, 0xf6, 0xa5, 0xf7, 0xc5, 0xa4, 0xfe, 0xbc, 0x0a, 0xd3, 0x11, + 0x9a, 0xe8, 0x05, 0xd6, 0xb3, 0xd3, 0xdb, 0x88, 0x67, 0x07, 0xd1, 0x7e, 0x09, 0x77, 0x05, 0xbb, + 0x66, 0xdb, 0x63, 0x2d, 0xfe, 0x33, 0x80, 0xad, 0x64, 0x7b, 0xd6, 0x91, 0x85, 0xda, 0x6c, 0x9f, + 0x81, 0x36, 0xf2, 0x93, 0xc1, 0x38, 0xdd, 0x6a, 0xf8, 0x28, 0xe8, 0x2d, 0xc7, 0xb5, 0x3c, 0xeb, + 0x35, 0x54, 0xb5, 0x6c, 0xbe, 0x29, 0x81, 0x1b, 0xfb, 0xa4, 0xa1, 0xf1, 0x99, 0x4d, 0xdb, 0xf3, + 0xa5, 0x6d, 0x74, 0x6c, 0x4a, 0xd2, 0xb8, 0x80, 0xab, 0x86, 0xc6, 0x67, 0x7c, 0xe9, 0x8b, 0x90, + 0xa9, 0x3b, 0x1d, 0xdc, 0x26, 0x51, 0x39, 0xbc, 0x5e, 0x28, 0x46, 0x9a, 0x8e, 0xf9, 0x22, 0xac, + 0x8f, 0x0d, 0x76, 0x43, 0x32, 0x46, 0x9a, 0x8e, 0x51, 0x91, 0xa7, 0x61, 0xd2, 0x3c, 0x3e, 0x6e, + 0x63, 0x72, 0x4e, 0x44, 0x3b, 0xf3, 0x09, 0x7f, 0x98, 0x08, 0xce, 0xde, 0x85, 0x14, 0xb7, 0x03, + 0x5e, 0x92, 0xb1, 0x25, 0xaa, 0x2d, 0xba, 0x27, 0x95, 0x58, 0x18, 0x33, 0x52, 0x36, 0x9f, 0xbc, + 0x08, 0x19, 0xcb, 0xad, 0x06, 0x9b, 0xa3, 0x89, 0x0b, 0x89, 0x85, 0x94, 0x91, 0xb6, 0x5c, 0x7f, + 0x37, 0x2c, 0xf7, 0xd5, 0x04, 0x4c, 0x88, 0x9b, 0xbb, 0xfa, 0x3a, 0xa4, 0x1a, 0x4e, 0xcd, 0x24, + 0xa1, 0x45, 0x9f, 0x2c, 0x2c, 0xc4, 0xec, 0x07, 0x2f, 0x6d, 0x31, 0x79, 0xc3, 0x47, 0xce, 0xfe, + 0x47, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x81, 0x64, 0xcb, 0xf4, 0x4e, 0x08, 0xdd, 0x70, 0x31, 0xa1, + 0x29, 0x06, 0x39, 0xc6, 0xe3, 0x6e, 0xcb, 0xb4, 0x49, 0x08, 0xb0, 0x71, 0x7c, 0x8c, 0xfd, 0xda, + 0x40, 0x66, 0x9d, 0xb4, 0xfd, 0x4e, 0xb3, 0x89, 0x6c, 0xcf, 0xe5, 0x7e, 0x65, 0xe3, 0x25, 0x36, + 0xac, 0x7f, 0x04, 0xa6, 0xbc, 0xb6, 0x69, 0x35, 0x04, 0xd9, 0x24, 0x91, 0xd5, 0xf8, 0x84, 0x2f, + 0x9c, 0x87, 0xc7, 0x38, 0x6f, 0x1d, 0x79, 0x66, 0xed, 0x04, 0xd5, 0x03, 0xd0, 0x08, 0xd9, 0x39, + 0x7c, 0x94, 0x09, 0xac, 0xb3, 0x79, 0x8e, 0xcd, 0xfd, 0xa1, 0x02, 0x53, 0xfc, 0x46, 0xa5, 0xee, + 0x1b, 0x6b, 0x1b, 0xc0, 0xb4, 0x6d, 0xc7, 0x0b, 0x9b, 0xab, 0x3b, 0x94, 0xbb, 0x70, 0x4b, 0x05, + 0x1f, 0x64, 0x84, 0x08, 0x66, 0x9b, 0x00, 0xc1, 0x4c, 0x4f, 0xb3, 0xcd, 0x43, 0x9a, 0xed, 0xdc, + 0x93, 0xc7, 0x3f, 0xf4, 0xd6, 0x16, 0xe8, 0x10, 0xbe, 0xa3, 0xd1, 0xcf, 0xc1, 0xf0, 0x21, 0x3a, + 0xb6, 0x6c, 0xb6, 0x9f, 0x48, 0x0f, 0xf8, 0x2e, 0x65, 0xd2, 0xdf, 0xa5, 0x2c, 0xbe, 0x0c, 0xd3, + 0x35, 0xa7, 0x29, 0xab, 0x5b, 0xd4, 0xa4, 0xdb, 0x6b, 0xf7, 0x45, 0xe5, 0x17, 0x20, 0x68, 0x31, + 0x7f, 0x3d, 0xa1, 0xde, 0xd9, 0x2d, 0xfe, 0x56, 0x62, 0xf6, 0x0e, 0xc5, 0xed, 0xf2, 0xcb, 0x34, + 0xd0, 0x51, 0x03, 0xd5, 0xb0, 0xea, 0xf0, 0xc7, 0x97, 0xe1, 0xd9, 0x63, 0xcb, 0x3b, 0xe9, 0x1c, + 0x2e, 0xd5, 0x9c, 0xe6, 0x95, 0x63, 0xe7, 0xd8, 0x09, 0x1e, 0x77, 0xe1, 0x23, 0x72, 0x40, 0x3e, + 0xb1, 0x47, 0x5e, 0x63, 0xfe, 0xe8, 0x6c, 0xec, 0xf3, 0xb1, 0x7c, 0x05, 0xa6, 0x99, 0x70, 0x95, + 0xec, 0xb9, 0xd3, 0x5b, 0x03, 0xbd, 0xef, 0xbe, 0x4b, 0xf6, 0x77, 0xbe, 0x4f, 0xd6, 0x6a, 0x63, + 0x8a, 0x41, 0xf1, 0x1c, 0xbd, 0x81, 0xc8, 0x1b, 0xf0, 0x88, 0xc0, 0x47, 0xf3, 0x12, 0xb5, 0x63, + 0x18, 0xbf, 0xc5, 0x18, 0xa7, 0x43, 0x8c, 0x7b, 0x0c, 0x9a, 0x2f, 0xc1, 0xf8, 0x59, 0xb8, 0xfe, + 0x1d, 0xe3, 0xca, 0xa0, 0x30, 0xc9, 0x1d, 0x98, 0x24, 0x24, 0xb5, 0x8e, 0xeb, 0x39, 0x4d, 0x52, + 0xf4, 0xfa, 0xd3, 0xfc, 0xfb, 0xef, 0xd3, 0x44, 0x99, 0xc0, 0xb0, 0x92, 0x8f, 0xca, 0xe7, 0x81, + 0x3c, 0x66, 0xa8, 0xa3, 0x5a, 0x23, 0x86, 0xe1, 0x3e, 0x53, 0xc4, 0x97, 0xcf, 0x7f, 0x12, 0xce, + 0xe1, 0xcf, 0xa4, 0x26, 0x85, 0x35, 0x89, 0xdf, 0x65, 0xca, 0xfe, 0xe1, 0x67, 0x68, 0x2e, 0x4e, + 0xfb, 0x04, 0x21, 0x9d, 0x42, 0x5e, 0x3c, 0x46, 0x9e, 0x87, 0xda, 0x6e, 0xd5, 0x6c, 0x44, 0xa9, + 0x17, 0xba, 0x4d, 0xcf, 0xfe, 0xda, 0x0f, 0x45, 0x2f, 0xde, 0xa1, 0xc8, 0x42, 0xa3, 0x91, 0x3f, + 0x80, 0x47, 0x23, 0xa2, 0x62, 0x00, 0xce, 0xcf, 0x33, 0xce, 0x73, 0x5d, 0x91, 0x81, 0x69, 0x77, + 0x81, 0x8f, 0xfb, 0xbe, 0x1c, 0x80, 0xf3, 0x1f, 0x32, 0x4e, 0x9d, 0x61, 0xb9, 0x4b, 0x31, 0xe3, + 0x5d, 0x98, 0x7a, 0x0d, 0xb5, 0x0f, 0x1d, 0x97, 0x6d, 0x8d, 0x0c, 0x40, 0xf7, 0x05, 0x46, 0x37, + 0xc9, 0x80, 0x64, 0xaf, 0x04, 0x73, 0xdd, 0x82, 0xd4, 0x91, 0x59, 0x43, 0x03, 0x50, 0x7c, 0x91, + 0x51, 0x8c, 0x62, 0x79, 0x0c, 0x2d, 0x40, 0xe6, 0xd8, 0x61, 0xcb, 0x52, 0x3c, 0xfc, 0x4b, 0x0c, + 0x9e, 0xe6, 0x18, 0x46, 0xd1, 0x72, 0x5a, 0x9d, 0x06, 0x5e, 0xb3, 0xe2, 0x29, 0xbe, 0xcc, 0x29, + 0x38, 0x86, 0x51, 0x9c, 0xc1, 0xac, 0x6f, 0x71, 0x0a, 0x37, 0x64, 0xcf, 0x17, 0x20, 0xed, 0xd8, + 0x8d, 0x53, 0xc7, 0x1e, 0x44, 0x89, 0xaf, 0x30, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x1b, 0xc6, 0x06, + 0x75, 0xc4, 0x6f, 0xfc, 0x90, 0xa7, 0x07, 0xf7, 0xc0, 0x1d, 0x98, 0xe4, 0x05, 0xca, 0x72, 0xec, + 0x01, 0x28, 0xfe, 0x31, 0xa3, 0x98, 0x08, 0xc1, 0xd8, 0x65, 0x78, 0xc8, 0xf5, 0x8e, 0xd1, 0x20, + 0x24, 0x5f, 0xe5, 0x97, 0xc1, 0x20, 0xcc, 0x94, 0x87, 0xc8, 0xae, 0x9d, 0x0c, 0xc6, 0xf0, 0x35, + 0x6e, 0x4a, 0x8e, 0xc1, 0x14, 0x25, 0x18, 0x6f, 0x9a, 0x6d, 0xf7, 0xc4, 0x6c, 0x0c, 0xe4, 0x8e, + 0xdf, 0x64, 0x1c, 0x19, 0x1f, 0xc4, 0x2c, 0xd2, 0xb1, 0xcf, 0x42, 0xf3, 0x5b, 0xdc, 0x22, 0x21, + 0x18, 0x4b, 0x3d, 0xd7, 0x23, 0x1b, 0x50, 0x67, 0x61, 0xfb, 0x6d, 0x9e, 0x7a, 0x14, 0xbb, 0x1d, + 0x66, 0xbc, 0x0d, 0x63, 0xae, 0xf5, 0xe9, 0x81, 0x68, 0xfe, 0x09, 0xf7, 0x34, 0x01, 0x60, 0xf0, + 0x3d, 0x78, 0x2c, 0x72, 0x99, 0x18, 0x80, 0xec, 0x9f, 0x32, 0xb2, 0x99, 0x88, 0xa5, 0x82, 0x95, + 0x84, 0xb3, 0x52, 0xfe, 0x33, 0x5e, 0x12, 0x90, 0xc4, 0xb5, 0x8b, 0x6f, 0x14, 0x5c, 0xf3, 0xe8, + 0x6c, 0x56, 0xfb, 0xe7, 0xdc, 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x1f, 0x66, 0x18, 0xe3, 0xd9, 0xfc, + 0xfa, 0x75, 0x5e, 0x58, 0x29, 0xfa, 0x40, 0xf4, 0xee, 0xa7, 0x60, 0xd6, 0x37, 0x27, 0xef, 0x48, + 0xdd, 0x6a, 0xd3, 0x6c, 0x0d, 0xc0, 0xfc, 0x3b, 0x8c, 0x99, 0x57, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, + 0xcd, 0x16, 0x26, 0x7f, 0x19, 0xb2, 0x9c, 0xbc, 0x63, 0xb7, 0x51, 0xcd, 0x39, 0xb6, 0xad, 0x4f, + 0xa3, 0xfa, 0x00, 0xd4, 0xdf, 0x90, 0x5c, 0x75, 0x10, 0x82, 0x63, 0xe6, 0x4d, 0xd0, 0xfc, 0x5e, + 0xa5, 0x6a, 0x35, 0x5b, 0x4e, 0xdb, 0x8b, 0x61, 0xfc, 0x17, 0xdc, 0x53, 0x3e, 0x6e, 0x93, 0xc0, + 0xf2, 0x65, 0x98, 0x20, 0x87, 0x83, 0x86, 0xe4, 0xef, 0x32, 0xa2, 0xf1, 0x00, 0xc5, 0x0a, 0x47, + 0xcd, 0x69, 0xb6, 0xcc, 0xf6, 0x20, 0xf5, 0xef, 0x5f, 0xf2, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, + 0xa7, 0x2d, 0x84, 0x57, 0xfb, 0x01, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, + 0x0c, 0x40, 0xf1, 0xaf, 0x38, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x04, 0x0b, 0x6d, 0x1b, 0x1d, 0x5b, + 0xae, 0xd7, 0xa6, 0x7d, 0x70, 0x7f, 0xaa, 0xdf, 0xfb, 0xa1, 0xd8, 0x84, 0x19, 0x21, 0x68, 0xfe, + 0x2e, 0x4c, 0x4a, 0x2d, 0x86, 0x1e, 0xf7, 0xce, 0x42, 0xf6, 0x2f, 0xfd, 0x98, 0x15, 0x23, 0xb1, + 0xc3, 0xc8, 0x6f, 0x61, 0xbf, 0x8b, 0x7d, 0x40, 0x3c, 0xd9, 0x67, 0x7e, 0xec, 0xbb, 0x5e, 0x68, + 0x03, 0xf2, 0x1b, 0x30, 0x2e, 0xf4, 0x00, 0xf1, 0x54, 0x7f, 0x99, 0x51, 0x65, 0xc2, 0x2d, 0x40, + 0x7e, 0x0d, 0x92, 0x78, 0x3d, 0x8f, 0x87, 0xff, 0x15, 0x06, 0x27, 0xe2, 0xf9, 0xe7, 0x20, 0xc5, + 0xd7, 0xf1, 0x78, 0xe8, 0x2f, 0x33, 0xa8, 0x0f, 0xc1, 0x70, 0xbe, 0x86, 0xc7, 0xc3, 0xff, 0x2a, + 0x87, 0x73, 0x08, 0x86, 0x0f, 0x6e, 0xc2, 0xb7, 0xff, 0x7a, 0x92, 0xd5, 0x61, 0x6e, 0xbb, 0xdb, + 0x30, 0xca, 0x16, 0xef, 0x78, 0xf4, 0xaf, 0xb0, 0x93, 0x73, 0x44, 0xfe, 0x06, 0x0c, 0x0f, 0x68, + 0xf0, 0xbf, 0xc1, 0xa0, 0x54, 0x3e, 0x5f, 0x82, 0x74, 0x68, 0xc1, 0x8e, 0x87, 0xff, 0x4d, 0x06, + 0x0f, 0xa3, 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x27, 0xf8, 0x5b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, + 0x6b, 0x75, 0x3c, 0xfa, 0x6f, 0x73, 0xab, 0x73, 0x48, 0xfe, 0x05, 0x18, 0xf3, 0xeb, 0x6f, 0x3c, + 0xfe, 0xef, 0x30, 0x7c, 0x80, 0xc1, 0x16, 0x08, 0xd5, 0xff, 0x78, 0x8a, 0xbf, 0xcb, 0x2d, 0x10, + 0x42, 0xe1, 0x34, 0x92, 0xd7, 0xf4, 0x78, 0xa6, 0x5f, 0xe5, 0x69, 0x24, 0x2d, 0xe9, 0xd8, 0x9b, + 0xa4, 0x0c, 0xc6, 0x53, 0xfc, 0x3d, 0xee, 0x4d, 0x22, 0x8f, 0xd5, 0x90, 0x17, 0xc9, 0x78, 0x8e, + 0x7f, 0xc0, 0xd5, 0x90, 0xd6, 0xc8, 0xfc, 0x2e, 0xe8, 0xdd, 0x0b, 0x64, 0x3c, 0xdf, 0xe7, 0x18, + 0xdf, 0x54, 0xd7, 0xfa, 0x98, 0x7f, 0x09, 0x66, 0xa2, 0x17, 0xc7, 0x78, 0xd6, 0x5f, 0xfb, 0xb1, + 0x74, 0x3b, 0x13, 0x5e, 0x1b, 0xf3, 0xfb, 0x41, 0x95, 0x0d, 0x2f, 0x8c, 0xf1, 0xb4, 0x9f, 0xff, + 0xb1, 0x58, 0x68, 0xc3, 0xeb, 0x62, 0xbe, 0x00, 0x10, 0xac, 0x49, 0xf1, 0x5c, 0x5f, 0x60, 0x5c, + 0x21, 0x10, 0x4e, 0x0d, 0xb6, 0x24, 0xc5, 0xe3, 0xbf, 0xc8, 0x53, 0x83, 0x21, 0x70, 0x6a, 0xf0, + 0xd5, 0x28, 0x1e, 0xfd, 0x25, 0x9e, 0x1a, 0x1c, 0x92, 0xbf, 0x0d, 0x29, 0xbb, 0xd3, 0x68, 0xe0, + 0xd8, 0xd2, 0xfb, 0xbf, 0x46, 0x94, 0xfd, 0x1f, 0x3f, 0x61, 0x60, 0x0e, 0xc8, 0xaf, 0xc1, 0x30, + 0x6a, 0x1e, 0xa2, 0x7a, 0x1c, 0xf2, 0x7f, 0xfe, 0x84, 0xd7, 0x13, 0x2c, 0x9d, 0x7f, 0x01, 0x80, + 0xde, 0x4c, 0x93, 0xa7, 0x44, 0x31, 0xd8, 0xff, 0xf5, 0x13, 0xf6, 0x86, 0x42, 0x00, 0x09, 0x08, + 0xe8, 0xfb, 0x0e, 0xfd, 0x09, 0x7e, 0x28, 0x12, 0x90, 0x1b, 0xf0, 0x5b, 0x30, 0xfa, 0x8a, 0xeb, + 0xd8, 0x9e, 0x79, 0x1c, 0x87, 0xfe, 0xdf, 0x0c, 0xcd, 0xe5, 0xb1, 0xc1, 0x9a, 0x4e, 0x1b, 0x79, + 0xe6, 0xb1, 0x1b, 0x87, 0xfd, 0x3f, 0x0c, 0xeb, 0x03, 0x30, 0xb8, 0x66, 0xba, 0xde, 0x20, 0xd7, + 0xfd, 0x7f, 0x39, 0x98, 0x03, 0xb0, 0xd2, 0xf8, 0xf3, 0xab, 0xe8, 0x34, 0x0e, 0xfb, 0x23, 0xae, + 0x34, 0x93, 0xcf, 0x3f, 0x07, 0x63, 0xf8, 0x23, 0x7d, 0x6b, 0x27, 0x06, 0xfc, 0x47, 0x0c, 0x1c, + 0x20, 0xf0, 0x99, 0x5d, 0xaf, 0xee, 0x59, 0xf1, 0xc6, 0xfe, 0x7f, 0xcc, 0xd3, 0x5c, 0x3e, 0x5f, + 0x80, 0xb4, 0xeb, 0xd5, 0xeb, 0x1d, 0xd6, 0xd1, 0xc4, 0xc0, 0xff, 0xf8, 0x27, 0xfe, 0x4d, 0xae, + 0x8f, 0x29, 0x5e, 0x8c, 0xde, 0xac, 0x83, 0x3b, 0xce, 0x1d, 0x87, 0x6e, 0xd3, 0xc1, 0xf7, 0x1b, + 0x70, 0xa3, 0xe7, 0xae, 0x1b, 0x5e, 0x44, 0xae, 0xd4, 0x9c, 0xe6, 0xa1, 0xe3, 0x5e, 0x39, 0x74, + 0xbc, 0x93, 0x2b, 0xde, 0x09, 0xc2, 0x63, 0x6c, 0xff, 0x2d, 0x89, 0x3f, 0xcf, 0x9e, 0x6d, 0xd3, + 0x8e, 0x3c, 0x8f, 0xad, 0x58, 0x58, 0xef, 0x0a, 0xd9, 0x12, 0xd7, 0xcf, 0xc3, 0x08, 0xb9, 0x92, + 0xab, 0xe4, 0xb1, 0x93, 0x52, 0x4c, 0xde, 0x7f, 0x67, 0x7e, 0xc8, 0x60, 0x63, 0xfe, 0xec, 0x0a, + 0xd9, 0xb3, 0x4c, 0x08, 0xb3, 0x2b, 0xfe, 0xec, 0x35, 0xba, 0x6d, 0x29, 0xcc, 0x5e, 0xf3, 0x67, + 0x57, 0xc9, 0x06, 0xa6, 0x2a, 0xcc, 0xae, 0xfa, 0xb3, 0x6b, 0x64, 0x93, 0x7e, 0x5c, 0x98, 0x5d, + 0xf3, 0x67, 0xaf, 0x93, 0xad, 0xf9, 0xa4, 0x30, 0x7b, 0xdd, 0x9f, 0xbd, 0x41, 0x76, 0xe5, 0xa7, + 0x84, 0xd9, 0x1b, 0xfe, 0xec, 0x4d, 0xb2, 0x1b, 0xaf, 0x0b, 0xb3, 0x37, 0xfd, 0xd9, 0x5b, 0xe4, + 0x15, 0x93, 0x51, 0x61, 0xf6, 0x96, 0x3e, 0x07, 0xa3, 0xf4, 0xca, 0x97, 0xc9, 0xa3, 0xdb, 0x49, + 0x36, 0xcd, 0x07, 0x83, 0xf9, 0xab, 0xe4, 0x75, 0x92, 0x11, 0x71, 0xfe, 0x6a, 0x30, 0xbf, 0x42, + 0x5e, 0xac, 0xd6, 0xc4, 0xf9, 0x95, 0x60, 0xfe, 0x5a, 0x76, 0x9c, 0xbc, 0x52, 0x23, 0xcc, 0x5f, + 0x0b, 0xe6, 0x57, 0xb3, 0x13, 0x38, 0x98, 0xc5, 0xf9, 0xd5, 0x60, 0x7e, 0x2d, 0x3b, 0x79, 0x41, + 0x59, 0xc8, 0x88, 0xf3, 0x6b, 0xb9, 0x5f, 0x22, 0xee, 0xb5, 0x03, 0xf7, 0xce, 0x88, 0xee, 0xf5, + 0x1d, 0x3b, 0x23, 0x3a, 0xd6, 0x77, 0xe9, 0x8c, 0xe8, 0x52, 0xdf, 0x99, 0x33, 0xa2, 0x33, 0x7d, + 0x37, 0xce, 0x88, 0x6e, 0xf4, 0x1d, 0x38, 0x23, 0x3a, 0xd0, 0x77, 0xdd, 0x8c, 0xe8, 0x3a, 0xdf, + 0x69, 0x33, 0xa2, 0xd3, 0x7c, 0x77, 0xcd, 0x88, 0xee, 0xf2, 0x1d, 0x95, 0x95, 0x1c, 0x15, 0xb8, + 0x28, 0x2b, 0xb9, 0x28, 0x70, 0x4e, 0x56, 0x72, 0x4e, 0xe0, 0x96, 0xac, 0xe4, 0x96, 0xc0, 0x21, + 0x59, 0xc9, 0x21, 0x81, 0x2b, 0xb2, 0x92, 0x2b, 0x02, 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x22, + 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, + 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xfe, 0x39, 0xa6, + 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, + 0xda, 0x33, 0xc7, 0x02, 0xf7, 0xce, 0x88, 0xee, 0x8d, 0xcc, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, + 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, + 0x1e, 0x39, 0xa6, 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, + 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0x1a, 0xce, 0xb1, 0x7f, 0xad, 0x82, 0x4e, 0x73, 0x6c, + 0x97, 0xbc, 0xfc, 0xc3, 0x5c, 0x31, 0x27, 0x65, 0xda, 0x08, 0x76, 0x9d, 0x16, 0xb8, 0x64, 0x4e, + 0xca, 0x35, 0x71, 0x7e, 0xc5, 0x9f, 0xe7, 0xd9, 0x26, 0xce, 0x5f, 0xf3, 0xe7, 0x79, 0xbe, 0x89, + 0xf3, 0xab, 0xfe, 0x3c, 0xcf, 0x38, 0x71, 0x7e, 0xcd, 0x9f, 0xe7, 0x39, 0x27, 0xce, 0x5f, 0xf7, + 0xe7, 0x79, 0xd6, 0x89, 0xf3, 0x37, 0xfc, 0x79, 0x9e, 0x77, 0xe2, 0xfc, 0x4d, 0x7f, 0x9e, 0x67, + 0x9e, 0x38, 0x7f, 0x4b, 0xbf, 0x20, 0xe7, 0x1e, 0x17, 0xf0, 0x5d, 0x7b, 0x41, 0xce, 0x3e, 0x49, + 0xe2, 0x6a, 0x20, 0xc1, 0xf3, 0x4f, 0x92, 0x58, 0x09, 0x24, 0x78, 0x06, 0x4a, 0x12, 0xd7, 0x72, + 0x9f, 0x25, 0xee, 0xb3, 0x65, 0xf7, 0xcd, 0x4a, 0xee, 0x4b, 0x84, 0x5c, 0x37, 0x2b, 0xb9, 0x2e, + 0x11, 0x72, 0xdb, 0xac, 0xe4, 0xb6, 0x44, 0xc8, 0x65, 0xb3, 0x92, 0xcb, 0x12, 0x21, 0x77, 0xcd, + 0x4a, 0xee, 0x4a, 0x84, 0x5c, 0x35, 0x2b, 0xb9, 0x2a, 0x11, 0x72, 0xd3, 0xac, 0xe4, 0xa6, 0x44, + 0xc8, 0x45, 0xb3, 0x92, 0x8b, 0x12, 0x21, 0xf7, 0xcc, 0x4a, 0xee, 0x49, 0x84, 0x5c, 0x73, 0x5e, + 0x76, 0x4d, 0x22, 0xec, 0x96, 0xf3, 0xb2, 0x5b, 0x12, 0x61, 0x97, 0x9c, 0x97, 0x5d, 0x92, 0x08, + 0xbb, 0xe3, 0xbc, 0xec, 0x8e, 0x44, 0xd8, 0x15, 0x7f, 0x96, 0xe0, 0x1d, 0xe1, 0x9e, 0xd7, 0xee, + 0xd4, 0xbc, 0xf7, 0xd4, 0x11, 0x2e, 0x0b, 0xed, 0x43, 0x7a, 0x45, 0x5f, 0x22, 0x0d, 0x6b, 0xb8, + 0xe3, 0x94, 0x56, 0xb0, 0x65, 0xa1, 0xb1, 0x08, 0x21, 0xec, 0x68, 0xc4, 0xea, 0x7b, 0xea, 0x0d, + 0x97, 0x85, 0x36, 0x23, 0x5e, 0xbf, 0x9b, 0x1f, 0x78, 0xc7, 0xf6, 0x76, 0x82, 0x77, 0x6c, 0xcc, + 0xfc, 0x67, 0xed, 0xd8, 0x16, 0xe3, 0x4d, 0xee, 0x1b, 0x7b, 0x31, 0xde, 0xd8, 0x5d, 0xab, 0xce, + 0xa0, 0x1d, 0xdc, 0x62, 0xbc, 0x69, 0x7d, 0xa3, 0xbe, 0xbf, 0xfd, 0x16, 0x8b, 0x60, 0x03, 0xb5, + 0x22, 0x22, 0xf8, 0xac, 0xfd, 0xd6, 0xb2, 0x50, 0x4a, 0xce, 0x1a, 0xc1, 0xea, 0x99, 0x23, 0xf8, + 0xac, 0x9d, 0xd7, 0xb2, 0x50, 0x5e, 0xce, 0x1c, 0xc1, 0x1f, 0x40, 0x3f, 0xc4, 0x22, 0x38, 0x30, + 0xff, 0x59, 0xfb, 0xa1, 0xc5, 0x78, 0x93, 0x47, 0x46, 0xb0, 0x7a, 0x86, 0x08, 0x1e, 0xa4, 0x3f, + 0x5a, 0x8c, 0x37, 0x6d, 0x74, 0x04, 0xbf, 0xe7, 0x6e, 0xe6, 0xcb, 0x0a, 0x4c, 0x55, 0xac, 0x7a, + 0xb9, 0x79, 0x88, 0xea, 0x75, 0x54, 0x67, 0x76, 0x5c, 0x16, 0x2a, 0x41, 0x0f, 0x57, 0x7f, 0xfb, + 0x9d, 0xf9, 0xc0, 0xc2, 0x6b, 0x90, 0xa2, 0x36, 0x5d, 0x5e, 0xce, 0xde, 0x57, 0x62, 0x2a, 0x9c, + 0x2f, 0xaa, 0x5f, 0xe4, 0xb0, 0xab, 0xcb, 0xd9, 0xff, 0xa4, 0x84, 0xaa, 0x9c, 0x3f, 0x9c, 0xfb, + 0x55, 0xa2, 0xa1, 0xfd, 0x9e, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x21, 0xdd, 0x1e, 0xef, 0xd2, 0x2d, + 0xa4, 0x55, 0x07, 0x26, 0x2b, 0x56, 0xbd, 0x42, 0xbe, 0xd2, 0x3b, 0x88, 0x4a, 0x54, 0x46, 0xaa, + 0x07, 0xcb, 0x42, 0x58, 0x86, 0x11, 0x7e, 0x48, 0x8b, 0x35, 0x22, 0x67, 0xe1, 0xd3, 0xda, 0xc2, + 0x69, 0x17, 0x7b, 0x9d, 0x36, 0xa8, 0xec, 0xfe, 0x09, 0x17, 0x7b, 0x9d, 0x30, 0xc8, 0x21, 0xff, + 0x54, 0x6f, 0xf0, 0xc5, 0x99, 0xbe, 0x85, 0xa3, 0x9f, 0x87, 0xc4, 0x26, 0x7d, 0x43, 0x38, 0x53, + 0xcc, 0x60, 0xa5, 0xbe, 0xf3, 0xce, 0x7c, 0xf2, 0xa0, 0x63, 0xd5, 0x8d, 0xc4, 0x66, 0x5d, 0xbf, + 0x0b, 0xc3, 0x9f, 0x64, 0x5f, 0x8c, 0xc3, 0x02, 0xab, 0x4c, 0xe0, 0xa3, 0x31, 0x5b, 0x4c, 0x84, + 0x7a, 0xe9, 0xc0, 0xb2, 0xbd, 0xab, 0x2b, 0x37, 0x0d, 0x4a, 0x91, 0xfb, 0xf3, 0x00, 0xf4, 0x9c, + 0xeb, 0xa6, 0x7b, 0xa2, 0x57, 0x38, 0x33, 0x3d, 0xf5, 0xcd, 0xef, 0xbc, 0x33, 0xbf, 0x3a, 0x08, + 0xeb, 0xb3, 0x75, 0xd3, 0x3d, 0x79, 0xd6, 0x3b, 0x6d, 0xa1, 0xa5, 0xe2, 0xa9, 0x87, 0x5c, 0xce, + 0xde, 0xe2, 0xab, 0x1e, 0xbb, 0xae, 0x6c, 0xe8, 0xba, 0x52, 0xc2, 0x35, 0x6d, 0x88, 0xd7, 0xb4, + 0xfc, 0xb0, 0xd7, 0xf3, 0x06, 0x5f, 0x24, 0x24, 0x4b, 0xaa, 0x71, 0x96, 0x54, 0xdf, 0xab, 0x25, + 0x5b, 0xbc, 0x3e, 0x4a, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0xbd, 0x5c, 0xeb, 0x9f, 0xd0, 0x6c, + 0xf5, 0xf3, 0xe9, 0xc0, 0xa6, 0x6f, 0x27, 0xfe, 0x7c, 0xed, 0x05, 0xbd, 0xaf, 0x5d, 0x40, 0x3e, + 0x79, 0xff, 0xad, 0x79, 0x25, 0xf7, 0xe5, 0x04, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x77, 0xe5, 0x3f, + 0x2f, 0x3d, 0xd5, 0x07, 0x61, 0xa1, 0x2f, 0x29, 0x30, 0xd3, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdf, + 0x72, 0x6e, 0x9f, 0xb5, 0x9c, 0x33, 0x05, 0x7f, 0x57, 0x81, 0x73, 0x52, 0x79, 0xa5, 0xea, 0x5d, + 0x91, 0xd4, 0x7b, 0xb4, 0xfb, 0x4c, 0x44, 0x30, 0xa4, 0x5d, 0xd8, 0xbd, 0x12, 0x20, 0xc4, 0xec, + 0xfb, 0x7d, 0x55, 0xf2, 0xfb, 0x79, 0x1f, 0x10, 0x61, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x07, 0x92, + 0xfb, 0x6d, 0x84, 0xf4, 0x39, 0x48, 0xec, 0xb4, 0x99, 0x86, 0x13, 0x14, 0xbf, 0xd3, 0x2e, 0xb6, + 0x4d, 0xbb, 0x76, 0x62, 0x24, 0x76, 0xda, 0xfa, 0x45, 0x50, 0x0b, 0xec, 0xa7, 0x07, 0xd2, 0x2b, + 0x93, 0x54, 0xa0, 0x60, 0xd7, 0x99, 0x04, 0x9e, 0xd3, 0xe7, 0x20, 0xb9, 0x85, 0xcc, 0x23, 0xa6, + 0x04, 0x50, 0x19, 0x3c, 0x62, 0x90, 0x71, 0x76, 0xc2, 0x97, 0x21, 0xc5, 0x89, 0xf5, 0x4b, 0x18, + 0x71, 0xe4, 0xb1, 0xd3, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x64, 0x56, 0xbf, 0x0c, 0xc3, 0x86, + 0x75, 0x7c, 0xe2, 0xb1, 0x93, 0x77, 0x8b, 0xd1, 0xe9, 0xdc, 0x3d, 0x18, 0xf3, 0x35, 0x7a, 0x9f, + 0xa9, 0xd7, 0xe9, 0xa5, 0xe9, 0xb3, 0xe1, 0xf5, 0x84, 0xef, 0x5b, 0xd2, 0x21, 0xfd, 0x02, 0xa4, + 0xf6, 0xbc, 0x76, 0x50, 0xf4, 0x79, 0x47, 0xea, 0x8f, 0xe6, 0x7e, 0x49, 0x81, 0xd4, 0x3a, 0x42, + 0x2d, 0x62, 0xf0, 0xa7, 0x20, 0xb9, 0xee, 0xbc, 0x6e, 0x33, 0x05, 0xa7, 0x98, 0x45, 0xf1, 0x34, + 0xb3, 0x29, 0x99, 0xd6, 0x9f, 0x0a, 0xdb, 0x7d, 0xda, 0xb7, 0x7b, 0x48, 0x8e, 0xd8, 0x3e, 0x27, + 0xd8, 0x9e, 0x39, 0x10, 0x0b, 0x75, 0xd9, 0xff, 0x06, 0xa4, 0x43, 0x67, 0xd1, 0x17, 0x98, 0x1a, + 0x09, 0x19, 0x18, 0xb6, 0x15, 0x96, 0xc8, 0x21, 0x18, 0x17, 0x4e, 0x8c, 0xa1, 0x21, 0x13, 0xf7, + 0x80, 0x12, 0x33, 0x2f, 0x8a, 0x66, 0x8e, 0x16, 0x65, 0xa6, 0x5e, 0xa6, 0x36, 0x22, 0xe6, 0xbe, + 0x44, 0x83, 0xb3, 0xb7, 0x13, 0xf1, 0xe7, 0xdc, 0x30, 0xa8, 0x15, 0xab, 0x91, 0x7b, 0x0e, 0x80, + 0xa6, 0x7c, 0xd9, 0xee, 0x34, 0xa5, 0xac, 0x9b, 0xe0, 0x06, 0xde, 0x3f, 0x41, 0xfb, 0xc8, 0x25, + 0x22, 0x62, 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0x67, 0x62, 0xf1, 0x91, 0x9d, 0x18, + 0x16, 0xcd, 0x52, 0xd1, 0x7b, 0xc8, 0x2b, 0xd8, 0x8e, 0x77, 0x82, 0xda, 0x12, 0x62, 0x45, 0xbf, + 0x26, 0x24, 0xec, 0xc4, 0xca, 0xe3, 0x3e, 0xa2, 0x27, 0xe8, 0x5a, 0xee, 0xeb, 0x44, 0x41, 0xdc, + 0x0a, 0x74, 0x5d, 0xa0, 0x3a, 0xc0, 0x05, 0xea, 0xd7, 0x85, 0xfe, 0xad, 0x8f, 0x9a, 0xd2, 0xad, + 0xe5, 0x2d, 0xe1, 0x3e, 0xa7, 0xbf, 0xb2, 0xe2, 0x3d, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0x99, 0x58, + 0x95, 0x7b, 0x74, 0xb7, 0x67, 0xb5, 0xa9, 0x3a, 0xa8, 0x4d, 0x7f, 0xdf, 0xef, 0x38, 0xe8, 0x8f, + 0x38, 0x90, 0xdf, 0x0c, 0xd1, 0x3f, 0x1a, 0xeb, 0xfb, 0xbc, 0x52, 0xf2, 0x55, 0x5d, 0x1d, 0xd4, + 0xfd, 0xf9, 0x44, 0xb1, 0xe8, 0xab, 0x7b, 0xe3, 0x0c, 0x21, 0x90, 0x4f, 0x94, 0x4a, 0x7e, 0xd9, + 0x4e, 0x7d, 0xf6, 0xad, 0x79, 0xe5, 0x6b, 0x6f, 0xcd, 0x0f, 0xe5, 0x7e, 0x53, 0x81, 0x29, 0x26, + 0x19, 0x0a, 0xdc, 0x67, 0x25, 0xe5, 0x1f, 0xe1, 0x35, 0x23, 0xca, 0x02, 0x3f, 0xb5, 0xe0, 0xfd, + 0x96, 0x02, 0xd9, 0x2e, 0x5d, 0xb9, 0xbd, 0x97, 0x07, 0x52, 0x39, 0xaf, 0x94, 0x7f, 0xf6, 0x36, + 0xbf, 0x07, 0xc3, 0xfb, 0x56, 0x13, 0xb5, 0xf1, 0x4a, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0xc3, 0x1c, + 0x3a, 0xc4, 0xe7, 0xa8, 0x72, 0xc2, 0xdc, 0x8a, 0x9e, 0x85, 0xe4, 0xba, 0xe9, 0x99, 0x44, 0x83, + 0x8c, 0x5f, 0x5f, 0x4d, 0xcf, 0xcc, 0x5d, 0x83, 0xcc, 0xf6, 0x29, 0x79, 0x85, 0xa6, 0x4e, 0x5e, + 0x0f, 0x11, 0xbb, 0x3f, 0xde, 0xaf, 0x5e, 0x5d, 0x1c, 0x4e, 0xd5, 0xb5, 0xfb, 0x4a, 0x3e, 0x49, + 0xf4, 0x79, 0x0d, 0x26, 0x76, 0xb0, 0xda, 0x04, 0x47, 0x60, 0x17, 0x40, 0xd9, 0x16, 0x1b, 0xa1, + 0x30, 0xab, 0xa1, 0x6c, 0x4b, 0xed, 0xa3, 0xea, 0x9b, 0x47, 0x6a, 0xdb, 0x54, 0xbf, 0x6d, 0x5b, + 0x4c, 0xa6, 0x26, 0xb4, 0xa9, 0xc5, 0x64, 0x0a, 0xb4, 0x71, 0x76, 0xde, 0xff, 0xa0, 0x82, 0x46, + 0x5b, 0x9d, 0x75, 0x74, 0x64, 0xd9, 0x96, 0xd7, 0xdd, 0xaf, 0xfa, 0x1a, 0xeb, 0x2f, 0xc0, 0x18, + 0x36, 0xe9, 0x06, 0xfb, 0xe9, 0x2d, 0x6c, 0xfa, 0x8b, 0xac, 0x45, 0x91, 0x28, 0xd8, 0x00, 0x09, + 0x9d, 0x00, 0xa3, 0x6f, 0x80, 0x5a, 0xa9, 0x6c, 0xb3, 0xc5, 0x6d, 0xb5, 0x2f, 0x94, 0xbd, 0x81, + 0xc3, 0x8e, 0xd8, 0x98, 0x7b, 0x6c, 0x60, 0x02, 0x7d, 0x15, 0x12, 0x95, 0x6d, 0xd6, 0xf0, 0x5e, + 0x1a, 0x84, 0xc6, 0x48, 0x54, 0xb6, 0x67, 0xff, 0x8d, 0x02, 0xe3, 0xc2, 0xa8, 0x9e, 0x83, 0x0c, + 0x1d, 0x08, 0x5d, 0xee, 0x88, 0x21, 0x8c, 0x71, 0x9d, 0x13, 0xef, 0x51, 0xe7, 0xd9, 0x02, 0x4c, + 0x4a, 0xe3, 0xfa, 0x12, 0xe8, 0xe1, 0x21, 0xa6, 0x04, 0xfd, 0xd9, 0xa2, 0x88, 0x99, 0xdc, 0x13, + 0x00, 0x81, 0x5d, 0xfd, 0x5f, 0xdb, 0xa9, 0x94, 0xf7, 0xf6, 0xcb, 0xeb, 0x9a, 0x92, 0xfb, 0xa6, + 0x02, 0x69, 0xd6, 0xb6, 0xd6, 0x9c, 0x16, 0xd2, 0x8b, 0xa0, 0x14, 0x58, 0x04, 0x3d, 0x9c, 0xde, + 0x4a, 0x41, 0xbf, 0x02, 0x4a, 0x71, 0x70, 0x57, 0x2b, 0x45, 0x7d, 0x05, 0x94, 0x12, 0x73, 0xf0, + 0x60, 0x9e, 0x51, 0x4a, 0xb9, 0x3f, 0x52, 0x61, 0x3a, 0xdc, 0x46, 0xf3, 0x7a, 0x72, 0x51, 0xbc, + 0x6f, 0xca, 0x8f, 0x5d, 0x5d, 0xb9, 0xb6, 0xba, 0x84, 0xff, 0xf1, 0x43, 0xf2, 0xa2, 0x78, 0x0b, + 0xd5, 0x2d, 0xd2, 0xf5, 0x9a, 0x48, 0x3e, 0x19, 0x9a, 0xed, 0x7a, 0x4d, 0x44, 0x98, 0xed, 0x7a, + 0x4d, 0x44, 0x98, 0xed, 0x7a, 0x4d, 0x44, 0x98, 0xed, 0x7a, 0x14, 0x20, 0xcc, 0x76, 0xbd, 0x26, + 0x22, 0xcc, 0x76, 0xbd, 0x26, 0x22, 0xcc, 0x76, 0xbf, 0x26, 0xc2, 0xa6, 0x7b, 0xbe, 0x26, 0x22, + 0xce, 0x77, 0xbf, 0x26, 0x22, 0xce, 0x77, 0xbf, 0x26, 0x92, 0x4f, 0x7a, 0xed, 0x0e, 0xea, 0xfd, + 0xd0, 0x41, 0xc4, 0xf7, 0xbb, 0x07, 0x0c, 0x0a, 0xf0, 0x0e, 0x4c, 0xd2, 0xfd, 0x88, 0x92, 0x63, + 0x7b, 0xa6, 0x65, 0xa3, 0xb6, 0xfe, 0x31, 0xc8, 0xd0, 0x21, 0x7a, 0x97, 0x13, 0x75, 0x17, 0x48, + 0xe7, 0x59, 0xb9, 0x15, 0xa4, 0x73, 0x7f, 0x96, 0x84, 0x19, 0x3a, 0x50, 0x31, 0x9b, 0x48, 0x78, + 0xc9, 0xe8, 0xb2, 0xf4, 0x48, 0x69, 0x02, 0xc3, 0x1f, 0xbc, 0x33, 0x4f, 0x47, 0x0b, 0x7e, 0x30, + 0x5d, 0x96, 0x1e, 0x2e, 0x89, 0x72, 0xc1, 0xfa, 0x73, 0x59, 0x7a, 0xf1, 0x48, 0x94, 0xf3, 0x97, + 0x1b, 0x5f, 0x8e, 0xbf, 0x82, 0x24, 0xca, 0xad, 0xfb, 0x51, 0x76, 0x59, 0x7a, 0x19, 0x49, 0x94, + 0x2b, 0xfb, 0xf1, 0x76, 0x59, 0x7a, 0xf4, 0x24, 0xca, 0x6d, 0xf8, 0x91, 0x77, 0x59, 0x7a, 0x08, + 0x25, 0xca, 0xdd, 0xf1, 0x63, 0xf0, 0xb2, 0xf4, 0xaa, 0x92, 0x28, 0xf7, 0xa2, 0x1f, 0x8d, 0x97, + 0xa5, 0x97, 0x96, 0x44, 0xb9, 0x4d, 0x3f, 0x2e, 0x17, 0xe4, 0xd7, 0x97, 0x44, 0xc1, 0xbb, 0x41, + 0x84, 0x2e, 0xc8, 0x2f, 0x32, 0x89, 0x92, 0x1f, 0x0f, 0x62, 0x75, 0x41, 0x7e, 0xa5, 0x49, 0x94, + 0xdc, 0x0a, 0xa2, 0x76, 0x41, 0x7e, 0x54, 0x26, 0x4a, 0x6e, 0x07, 0xf1, 0xbb, 0x20, 0x3f, 0x34, + 0x13, 0x25, 0x2b, 0x41, 0x24, 0x2f, 0xc8, 0x8f, 0xcf, 0x44, 0xc9, 0x9d, 0x60, 0x0f, 0xfd, 0x0f, + 0xa4, 0xf0, 0x0b, 0xbd, 0x04, 0x95, 0x93, 0xc2, 0x0f, 0x22, 0x42, 0x2f, 0x27, 0x85, 0x1e, 0x44, + 0x84, 0x5d, 0x4e, 0x0a, 0x3b, 0x88, 0x08, 0xb9, 0x9c, 0x14, 0x72, 0x10, 0x11, 0x6e, 0x39, 0x29, + 0xdc, 0x20, 0x22, 0xd4, 0x72, 0x52, 0xa8, 0x41, 0x44, 0x98, 0xe5, 0xa4, 0x30, 0x83, 0x88, 0x10, + 0xcb, 0x49, 0x21, 0x06, 0x11, 0xe1, 0x95, 0x93, 0xc2, 0x0b, 0x22, 0x42, 0xeb, 0x92, 0x1c, 0x5a, + 0x10, 0x15, 0x56, 0x97, 0xe4, 0xb0, 0x82, 0xa8, 0x90, 0x7a, 0x52, 0x0e, 0xa9, 0xb1, 0x07, 0xef, + 0xcc, 0x0f, 0xe3, 0xa1, 0x50, 0x34, 0x5d, 0x92, 0xa3, 0x09, 0xa2, 0x22, 0xe9, 0x92, 0x1c, 0x49, + 0x10, 0x15, 0x45, 0x97, 0xe4, 0x28, 0x82, 0xa8, 0x08, 0x7a, 0x5b, 0x8e, 0xa0, 0xe0, 0x15, 0x9f, + 0x9c, 0xf4, 0x44, 0x31, 0x2e, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, + 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, + 0x24, 0x82, 0xd4, 0x81, 0x22, 0x48, 0xed, 0x15, 0x41, 0x97, 0xe4, 0x17, 0x1e, 0x20, 0xaa, 0x20, + 0x5d, 0x92, 0x9f, 0x7c, 0xc6, 0x87, 0x90, 0x3a, 0x50, 0x08, 0xa9, 0xbd, 0x42, 0xe8, 0x0f, 0x54, + 0x98, 0x16, 0x42, 0x88, 0x3d, 0x1e, 0x7a, 0xbf, 0x2a, 0xd0, 0xf5, 0x01, 0xde, 0xaf, 0x88, 0x8a, + 0xa9, 0xeb, 0x03, 0x3c, 0xa3, 0xee, 0x17, 0x67, 0xdd, 0x55, 0xa8, 0x3c, 0x40, 0x15, 0xda, 0xf0, + 0x63, 0xe8, 0xfa, 0x00, 0xef, 0x5d, 0x74, 0xc7, 0xde, 0xcd, 0x7e, 0x45, 0xe0, 0xc5, 0x81, 0x8a, + 0xc0, 0xe6, 0x40, 0x45, 0xe0, 0x6e, 0xe0, 0xc1, 0x5f, 0x4e, 0xc0, 0xb9, 0xc0, 0x83, 0xf4, 0x13, + 0xf9, 0x89, 0xa4, 0x5c, 0xe8, 0x09, 0x95, 0xce, 0x9f, 0xda, 0x84, 0xdc, 0x98, 0xd8, 0xac, 0xeb, + 0xbb, 0xe2, 0xb3, 0xaa, 0xfc, 0x59, 0x9f, 0xdf, 0x84, 0x3c, 0xce, 0xf6, 0x42, 0x2f, 0x81, 0xba, + 0x59, 0x77, 0x49, 0xb5, 0x88, 0x3a, 0x6d, 0xc9, 0xc0, 0xd3, 0xba, 0x01, 0x23, 0x44, 0xdc, 0x25, + 0xee, 0x7d, 0x2f, 0x27, 0x5e, 0x37, 0x18, 0x53, 0xee, 0x6d, 0x05, 0x2e, 0x08, 0xa1, 0xfc, 0xfe, + 0x3c, 0x31, 0xb8, 0x3d, 0xd0, 0x13, 0x03, 0x21, 0x41, 0x82, 0xa7, 0x07, 0x4f, 0x77, 0x3f, 0xa8, + 0x0e, 0x67, 0x89, 0xfc, 0x24, 0xe1, 0x2f, 0xc2, 0x44, 0x70, 0x05, 0xe4, 0x96, 0x6d, 0x2d, 0x7e, + 0x33, 0x33, 0x2a, 0x35, 0xd7, 0xa4, 0x4d, 0xb4, 0xbe, 0x30, 0x3f, 0x5b, 0x73, 0x79, 0x98, 0xac, + 0x88, 0xdf, 0xe5, 0x89, 0xdb, 0x8b, 0x48, 0xe1, 0xd6, 0xfc, 0xfe, 0x57, 0xe6, 0x87, 0x72, 0x1f, + 0x85, 0x4c, 0xf8, 0xeb, 0x3a, 0x12, 0x70, 0x8c, 0x03, 0xf3, 0xc9, 0x6f, 0x63, 0xe9, 0xbf, 0xaf, + 0xc0, 0x23, 0x61, 0xf1, 0x97, 0x2c, 0xef, 0x64, 0xd3, 0xc6, 0x3d, 0xfd, 0x73, 0x90, 0x42, 0xcc, + 0x71, 0xec, 0xd7, 0x4e, 0xd8, 0x6d, 0x64, 0xa4, 0xf8, 0x12, 0xf9, 0xd7, 0xf0, 0x21, 0xd2, 0x16, + 0x07, 0x3f, 0xed, 0xca, 0xec, 0x53, 0x30, 0x4c, 0xf9, 0x45, 0xbd, 0xc6, 0x25, 0xbd, 0x7e, 0x23, + 0x42, 0x2f, 0x12, 0x47, 0xfa, 0x5d, 0x41, 0xaf, 0xd0, 0xdd, 0x6a, 0xa4, 0xf8, 0x12, 0x0f, 0xbe, + 0x62, 0x0a, 0xf7, 0x7f, 0x24, 0xa2, 0xe2, 0x95, 0x5c, 0x80, 0x54, 0x59, 0x96, 0x89, 0xd6, 0x73, + 0x1d, 0x92, 0x15, 0xa7, 0x4e, 0x7e, 0x87, 0x85, 0xfc, 0x5e, 0x2e, 0x33, 0x32, 0xfb, 0xf1, 0xdc, + 0xcb, 0x90, 0x2a, 0x9d, 0x58, 0x8d, 0x7a, 0x1b, 0xd9, 0xec, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, + 0xc3, 0x9f, 0xcb, 0x95, 0x60, 0xaa, 0xe2, 0xd8, 0xc5, 0x53, 0x2f, 0x5c, 0x37, 0x96, 0xa4, 0x14, + 0x61, 0x8f, 0x7c, 0xc8, 0x17, 0x40, 0xb0, 0x40, 0x71, 0xf8, 0x3b, 0xef, 0xcc, 0x2b, 0xfb, 0xfe, + 0xf6, 0xf9, 0x36, 0x3c, 0xca, 0xd2, 0xa7, 0x8b, 0x6a, 0x25, 0x8e, 0x6a, 0x8c, 0x3d, 0xa6, 0x0e, + 0xd1, 0x6d, 0x62, 0x3a, 0x3b, 0x92, 0xee, 0xe1, 0x34, 0xc3, 0x4d, 0x51, 0x5f, 0xcd, 0xd4, 0x33, + 0x69, 0x16, 0x49, 0xb7, 0x14, 0x47, 0x27, 0x69, 0xf6, 0x24, 0x8c, 0xf9, 0x73, 0xa1, 0x68, 0x08, + 0x67, 0xca, 0xca, 0x62, 0x0e, 0xd2, 0xa1, 0x84, 0xd5, 0x87, 0x41, 0x29, 0x68, 0x43, 0xf8, 0xbf, + 0xa2, 0xa6, 0xe0, 0xff, 0x4a, 0x5a, 0x62, 0xf1, 0x29, 0x98, 0x94, 0xb6, 0x2f, 0xf1, 0xcc, 0xba, + 0x06, 0xf8, 0xbf, 0xb2, 0x96, 0x9e, 0x4d, 0x7e, 0xf6, 0x1f, 0xcd, 0x0d, 0x2d, 0xde, 0x06, 0xbd, + 0x7b, 0xa3, 0x53, 0x1f, 0x81, 0x44, 0x01, 0x53, 0x3e, 0x0a, 0x89, 0x62, 0x51, 0x53, 0x66, 0x27, + 0xff, 0xda, 0x17, 0x2f, 0xa4, 0x8b, 0xe4, 0xbb, 0xc8, 0xf7, 0x90, 0x57, 0x2c, 0x32, 0xf0, 0xf3, + 0xf0, 0x48, 0xe4, 0x46, 0x29, 0xc6, 0x97, 0x4a, 0x14, 0xbf, 0xbe, 0xde, 0x85, 0x5f, 0x5f, 0x27, + 0x78, 0x25, 0xcf, 0x1f, 0x38, 0x17, 0xf4, 0x88, 0x6d, 0xc9, 0x6c, 0x3d, 0xf4, 0x80, 0xbb, 0x90, + 0x7f, 0x9e, 0xc9, 0x16, 0x23, 0x65, 0x51, 0xcc, 0x03, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, 0xa5, 0x48, + 0xfc, 0x91, 0xf4, 0x54, 0x55, 0x5c, 0x21, 0x18, 0x49, 0xc9, 0x57, 0x78, 0x3d, 0x92, 0xe4, 0x24, + 0xf4, 0xae, 0xfb, 0xba, 0xaf, 0x70, 0x39, 0x52, 0xd6, 0x8a, 0x79, 0xe7, 0xab, 0x9c, 0xbf, 0xc2, + 0x16, 0xf9, 0xc2, 0x55, 0xfd, 0x11, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12, + 0x03, 0x14, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xf3, 0x2f, 0x32, 0x92, 0x52, 0x4f, 0x92, 0x18, + 0x53, 0x71, 0x78, 0x71, 0xff, 0xfe, 0xbb, 0x73, 0x43, 0xdf, 0x7e, 0x77, 0x6e, 0xe8, 0xbf, 0xbc, + 0x3b, 0x37, 0xf4, 0xdd, 0x77, 0xe7, 0x94, 0x1f, 0xbc, 0x3b, 0xa7, 0xfc, 0xe8, 0xdd, 0x39, 0xe5, + 0x4f, 0xdf, 0x9d, 0x53, 0xde, 0x7c, 0x30, 0xa7, 0x7c, 0xed, 0xc1, 0x9c, 0xf2, 0xf5, 0x07, 0x73, + 0xca, 0xef, 0x3d, 0x98, 0x53, 0xde, 0x7e, 0x30, 0xa7, 0xdc, 0x7f, 0x30, 0xa7, 0x7c, 0xfb, 0xc1, + 0x9c, 0xf2, 0xdd, 0x07, 0x73, 0xca, 0x0f, 0x1e, 0xcc, 0x0d, 0xfd, 0xe8, 0xc1, 0x9c, 0xf2, 0xa7, + 0x0f, 0xe6, 0x86, 0xde, 0xfc, 0xde, 0xdc, 0xd0, 0x5b, 0xdf, 0x9b, 0x1b, 0xfa, 0xda, 0xf7, 0xe6, + 0x14, 0xf8, 0x6f, 0xab, 0x70, 0x81, 0x7d, 0x91, 0xcc, 0xff, 0xbe, 0xea, 0x15, 0xef, 0x04, 0x91, + 0x96, 0xe0, 0x1a, 0xff, 0x3d, 0x27, 0x7f, 0xe0, 0x8c, 0x5f, 0x2a, 0x9b, 0x7d, 0xd8, 0xaf, 0xb0, + 0xe5, 0xfe, 0xed, 0x30, 0x8c, 0xf2, 0xad, 0xe0, 0xa8, 0x5f, 0x84, 0x5e, 0x83, 0xd4, 0x89, 0xd5, + 0x30, 0xdb, 0x96, 0x77, 0xca, 0xf6, 0x40, 0x1f, 0x5b, 0x0a, 0xd4, 0xe6, 0xbb, 0xa6, 0x2f, 0x76, + 0x9a, 0x4e, 0xa7, 0x6d, 0xf8, 0xa2, 0xfa, 0x05, 0xc8, 0x9c, 0x20, 0xeb, 0xf8, 0xc4, 0xab, 0x5a, + 0x76, 0xb5, 0xd6, 0x24, 0xbd, 0xf2, 0xb8, 0x01, 0x74, 0x6c, 0xd3, 0x2e, 0x35, 0xf1, 0xc9, 0xea, + 0xa6, 0x67, 0x92, 0x7b, 0xf4, 0x8c, 0x41, 0x3e, 0xeb, 0x17, 0x21, 0xd3, 0x46, 0x6e, 0xa7, 0xe1, + 0x55, 0x6b, 0x4e, 0xc7, 0xf6, 0x48, 0x37, 0xab, 0x1a, 0x69, 0x3a, 0x56, 0xc2, 0x43, 0xfa, 0x93, + 0x30, 0xee, 0xb5, 0x3b, 0xa8, 0xea, 0xd6, 0x1c, 0xcf, 0x6d, 0x9a, 0x36, 0xe9, 0x66, 0x53, 0x46, + 0x06, 0x0f, 0xee, 0xb1, 0x31, 0xf2, 0x17, 0x07, 0x6a, 0x4e, 0x1b, 0x91, 0x9b, 0xe9, 0x84, 0x41, + 0x0f, 0x74, 0x0d, 0xd4, 0x57, 0xd1, 0x29, 0xb9, 0x5d, 0x4b, 0x1a, 0xf8, 0xa3, 0xfe, 0x0c, 0x8c, + 0xd0, 0x3f, 0x46, 0x41, 0x7a, 0x6b, 0xf2, 0xe4, 0xda, 0xbf, 0x34, 0xba, 0x43, 0x6b, 0x30, 0x01, + 0xfd, 0x16, 0x8c, 0x7a, 0xa8, 0xdd, 0x36, 0x2d, 0x9b, 0xdc, 0x3a, 0xa5, 0x57, 0xe6, 0x23, 0xcc, + 0xb0, 0x4f, 0x25, 0xc8, 0x8f, 0xbb, 0x1a, 0x5c, 0x5e, 0x5f, 0x83, 0x0c, 0x91, 0x5b, 0xa9, 0xd2, + 0x3f, 0xd8, 0x91, 0xee, 0x19, 0xcd, 0x69, 0x2a, 0xc7, 0x1f, 0x14, 0x70, 0x18, 0xfd, 0x61, 0xbb, + 0x71, 0x72, 0xda, 0x27, 0x23, 0x4e, 0x4b, 0x0a, 0xef, 0x0a, 0x69, 0x1a, 0xe9, 0xa9, 0x19, 0x0f, + 0xfd, 0xe9, 0xbb, 0x6d, 0xc8, 0x84, 0xf5, 0xe2, 0x66, 0xa0, 0xcd, 0x0f, 0x31, 0xc3, 0xd3, 0xc1, + 0x8f, 0xb9, 0xf7, 0xb0, 0x02, 0x9d, 0xcf, 0x27, 0x6e, 0x2a, 0xb3, 0xbb, 0xa0, 0xc9, 0xe7, 0x8b, + 0xa0, 0xbc, 0x2c, 0x52, 0x6a, 0xe1, 0x8b, 0x25, 0xdb, 0xe4, 0x01, 0x63, 0xee, 0x05, 0x18, 0xa1, + 0xf1, 0xa3, 0xa7, 0x61, 0x34, 0xf8, 0xcd, 0xc4, 0x14, 0x24, 0x77, 0x0f, 0x2a, 0x7b, 0xf4, 0xc7, + 0x4f, 0xf7, 0xb6, 0x0a, 0xbb, 0x7b, 0xfb, 0x9b, 0xa5, 0x8f, 0x6b, 0x09, 0x7d, 0x12, 0xd2, 0xc5, + 0xcd, 0xad, 0xad, 0x6a, 0xb1, 0xb0, 0xb9, 0x55, 0xbe, 0xa7, 0xa9, 0xb9, 0x39, 0x18, 0xa1, 0x7a, + 0x92, 0x1f, 0x71, 0xeb, 0xd8, 0xf6, 0x29, 0x6f, 0x1e, 0xc8, 0x41, 0xee, 0x1b, 0x3a, 0x8c, 0x16, + 0x1a, 0x8d, 0x6d, 0xb3, 0xe5, 0xea, 0x2f, 0xc1, 0x14, 0xfd, 0x39, 0x89, 0x7d, 0x67, 0x9d, 0xfc, + 0xd6, 0x20, 0x2e, 0x0d, 0x0a, 0xfb, 0x11, 0xfb, 0xe0, 0xba, 0x99, 0xf8, 0x52, 0x97, 0x2c, 0x35, + 0x70, 0x37, 0x87, 0xbe, 0x0f, 0x1a, 0x1f, 0xdc, 0x68, 0x38, 0xa6, 0x87, 0x79, 0x13, 0xec, 0xa7, + 0x00, 0x7b, 0xf3, 0x72, 0x51, 0x4a, 0xdb, 0xc5, 0xa0, 0x7f, 0x0c, 0x52, 0x9b, 0xb6, 0x77, 0x6d, + 0x05, 0xb3, 0xf1, 0x3f, 0xb0, 0xd2, 0xcd, 0xc6, 0x45, 0x28, 0x8b, 0x8f, 0x60, 0xe8, 0xeb, 0xab, + 0x18, 0x9d, 0xec, 0x87, 0x26, 0x22, 0x01, 0x9a, 0x1c, 0xea, 0x2f, 0xc0, 0x18, 0xbe, 0x37, 0xa1, + 0x27, 0x1f, 0xe6, 0x8d, 0x6b, 0x17, 0xdc, 0x97, 0xa1, 0xf8, 0x00, 0xc3, 0x09, 0xe8, 0xf9, 0x47, + 0xfa, 0x12, 0x84, 0x14, 0x08, 0x30, 0x98, 0x60, 0xcf, 0xd7, 0x60, 0xb4, 0x27, 0xc1, 0x9e, 0xa4, + 0xc1, 0x5e, 0x58, 0x83, 0x3d, 0x5f, 0x83, 0x54, 0x5f, 0x82, 0xb0, 0x06, 0xfe, 0xb1, 0x5e, 0x04, + 0xd8, 0xb0, 0xde, 0x40, 0x75, 0xaa, 0x02, 0xfd, 0xf3, 0x2b, 0xb9, 0x08, 0x86, 0x40, 0x88, 0x52, + 0x84, 0x50, 0x7a, 0x19, 0xd2, 0x7b, 0x47, 0x01, 0x09, 0x74, 0xe5, 0xb1, 0xaf, 0xc6, 0x91, 0xc4, + 0x12, 0xc6, 0xf9, 0xaa, 0xd0, 0x8b, 0x49, 0xf7, 0x57, 0x25, 0x74, 0x35, 0x21, 0x54, 0xa0, 0x0a, + 0x25, 0xc9, 0xc4, 0xa8, 0x12, 0x62, 0x09, 0xe3, 0x70, 0x31, 0x2c, 0x3a, 0x0e, 0x96, 0x64, 0x55, + 0x69, 0x3e, 0x82, 0x82, 0x49, 0xb0, 0x62, 0xc8, 0x8e, 0x88, 0x47, 0x48, 0x90, 0x63, 0xf0, 0x44, + 0x6f, 0x8f, 0x70, 0x19, 0xee, 0x11, 0x7e, 0x1c, 0xce, 0x33, 0xf2, 0x3a, 0x2b, 0xe6, 0x99, 0x8c, + 0xcd, 0x33, 0x2e, 0x2a, 0xe5, 0x19, 0x1f, 0xd6, 0x3f, 0x01, 0x93, 0x7c, 0x0c, 0x97, 0x27, 0x4c, + 0xaa, 0xb1, 0x3f, 0x50, 0xd5, 0x9b, 0x94, 0x49, 0x52, 0x4e, 0x19, 0xaf, 0x57, 0x60, 0x82, 0x0f, + 0x6d, 0xbb, 0xe4, 0x72, 0xa7, 0xd8, 0x1f, 0x7f, 0xe8, 0xcd, 0x48, 0x05, 0x29, 0xa1, 0x84, 0x9e, + 0x5d, 0x87, 0x99, 0xe8, 0x6a, 0x14, 0x2e, 0xbf, 0x63, 0xb4, 0xfc, 0x9e, 0x0b, 0x97, 0x5f, 0x25, + 0x5c, 0xbe, 0x4b, 0xf0, 0x48, 0x64, 0xed, 0x89, 0x23, 0x49, 0x84, 0x49, 0x6e, 0xc3, 0xb8, 0x50, + 0x72, 0xc2, 0xe0, 0xe1, 0x08, 0xf0, 0x70, 0x37, 0x38, 0x08, 0xad, 0x88, 0xd5, 0x43, 0x00, 0xab, + 0x61, 0xf0, 0xc7, 0x60, 0x42, 0xac, 0x37, 0x61, 0xf4, 0x78, 0x04, 0x7a, 0x3c, 0x02, 0x1d, 0x7d, + 0xee, 0x64, 0x04, 0x3a, 0x29, 0xa1, 0xf7, 0x7a, 0x9e, 0x7b, 0x2a, 0x02, 0x3d, 0x15, 0x81, 0x8e, + 0x3e, 0xb7, 0x1e, 0x81, 0xd6, 0xc3, 0xe8, 0xe7, 0x60, 0x52, 0x2a, 0x31, 0x61, 0xf8, 0x68, 0x04, + 0x7c, 0x34, 0x0c, 0x7f, 0x1e, 0x34, 0xb9, 0xb8, 0x84, 0xf1, 0x93, 0x11, 0xf8, 0xc9, 0xa8, 0xd3, + 0x47, 0x6b, 0x3f, 0x12, 0x01, 0x1f, 0x89, 0x3c, 0x7d, 0x34, 0x5e, 0x8b, 0xc0, 0x6b, 0x61, 0x7c, + 0x1e, 0x32, 0xe1, 0x6a, 0x12, 0xc6, 0xa6, 0x22, 0xb0, 0x29, 0xd9, 0xee, 0x42, 0x31, 0x89, 0x8b, + 0xf4, 0xb1, 0x1e, 0xe9, 0x22, 0x94, 0x90, 0x38, 0x92, 0x4c, 0x98, 0xe4, 0x93, 0x70, 0x2e, 0xaa, + 0x64, 0x44, 0x70, 0x2c, 0x84, 0x39, 0x26, 0x70, 0x8f, 0x18, 0x34, 0x7b, 0x66, 0x4b, 0x6a, 0x9c, + 0x66, 0x3f, 0x05, 0xd3, 0x11, 0x85, 0x23, 0x82, 0x76, 0x49, 0xec, 0xc6, 0xb2, 0x21, 0x5a, 0x52, + 0x04, 0x2c, 0xfb, 0x78, 0xd7, 0xb1, 0x6c, 0x2f, 0xdc, 0x95, 0x7d, 0x73, 0x1a, 0x26, 0x58, 0x79, + 0xda, 0x69, 0xd7, 0x51, 0x1b, 0xd5, 0xf5, 0xbf, 0xd0, 0xbb, 0x77, 0x5a, 0xee, 0x2e, 0x6a, 0x0c, + 0x75, 0x86, 0x16, 0xea, 0x53, 0x3d, 0x5b, 0xa8, 0x2b, 0xf1, 0xf4, 0x71, 0x9d, 0x54, 0xa9, 0xab, + 0x93, 0x7a, 0xba, 0x37, 0x69, 0xaf, 0x86, 0xaa, 0xd4, 0xd5, 0x50, 0xf5, 0x27, 0x89, 0xec, 0xab, + 0x36, 0xba, 0xfb, 0xaa, 0x85, 0xde, 0x2c, 0xbd, 0xdb, 0xab, 0x8d, 0xee, 0xf6, 0x2a, 0x86, 0x27, + 0xba, 0xcb, 0xda, 0xe8, 0xee, 0xb2, 0xfa, 0xf0, 0xf4, 0x6e, 0xb6, 0x36, 0xba, 0x9b, 0xad, 0x18, + 0x9e, 0xe8, 0x9e, 0x6b, 0x33, 0xa2, 0xe7, 0x7a, 0xa6, 0x37, 0x51, 0xbf, 0xd6, 0x6b, 0x2b, 0xaa, + 0xf5, 0x5a, 0xec, 0xa3, 0x54, 0xdf, 0x0e, 0x6c, 0x33, 0xa2, 0x03, 0x8b, 0x53, 0xac, 0x47, 0x23, + 0xb6, 0x15, 0xd5, 0x88, 0xc5, 0x2a, 0xd6, 0xab, 0x1f, 0xfb, 0x73, 0x72, 0x3f, 0x76, 0xb9, 0x37, + 0x53, 0x74, 0x5b, 0xb6, 0xd1, 0xdd, 0x96, 0x2d, 0xc4, 0xe5, 0x5c, 0x54, 0x77, 0xf6, 0xa9, 0x9e, + 0xdd, 0xd9, 0x00, 0x29, 0x1c, 0xd7, 0xa4, 0xbd, 0xdc, 0xab, 0x49, 0x5b, 0x8a, 0xe7, 0xee, 0xdf, + 0xab, 0x1d, 0xf4, 0xe8, 0xd5, 0x9e, 0x8d, 0x27, 0xfe, 0xb0, 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xb0, + 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xd9, 0xb7, 0x6c, 0xf9, 0xe4, 0xe7, 0xbe, 0x32, 0xaf, 0xe4, 0xfe, + 0xb3, 0xea, 0xff, 0xdd, 0xac, 0x97, 0x2c, 0xef, 0x04, 0x97, 0xb7, 0x6d, 0xc8, 0x90, 0xbf, 0x78, + 0xd1, 0x34, 0x5b, 0x2d, 0xcb, 0x3e, 0x66, 0x3d, 0xdb, 0x62, 0xf7, 0x56, 0x22, 0x03, 0x90, 0xbf, + 0x19, 0xb2, 0x4d, 0x85, 0xd9, 0x72, 0x63, 0x07, 0x23, 0xfa, 0x5d, 0x48, 0x37, 0xdd, 0x63, 0x9f, + 0x2d, 0xd1, 0xb5, 0x10, 0x4a, 0x6c, 0xf4, 0x4a, 0x03, 0x32, 0x68, 0xfa, 0x03, 0x58, 0xb5, 0xc3, + 0x53, 0x2f, 0x50, 0x4d, 0x8d, 0x53, 0x0d, 0xfb, 0x54, 0x54, 0xed, 0x30, 0x18, 0xc1, 0x61, 0x2b, + 0xeb, 0x1e, 0x57, 0xe9, 0x84, 0xe0, 0x79, 0x09, 0x26, 0x25, 0x6d, 0x23, 0x72, 0xfe, 0x21, 0x7c, + 0x83, 0x15, 0x93, 0x35, 0x8f, 0xcb, 0x89, 0x70, 0x40, 0xe6, 0x9e, 0x80, 0x71, 0x81, 0x5b, 0xcf, + 0x80, 0x72, 0xc4, 0xbe, 0x4b, 0xa9, 0x1c, 0xe5, 0xbe, 0xac, 0x40, 0x9a, 0xbd, 0x48, 0xb0, 0x6b, + 0x5a, 0x6d, 0xfd, 0x45, 0x48, 0x36, 0xf8, 0xf7, 0x99, 0x1e, 0xf6, 0xbb, 0xb3, 0x84, 0x41, 0xdf, + 0x80, 0xe1, 0xb6, 0xff, 0x7d, 0xa7, 0x87, 0xfa, 0x42, 0x2c, 0x81, 0xe7, 0xee, 0x2b, 0x30, 0xc5, + 0xde, 0x73, 0x75, 0xd9, 0xdb, 0xcf, 0x66, 0x6b, 0xf6, 0x1b, 0x0a, 0x8c, 0xf9, 0x47, 0xfa, 0x21, + 0x4c, 0xf8, 0x07, 0xf4, 0x0d, 0x7b, 0x1a, 0xa9, 0xf9, 0x90, 0x85, 0xbb, 0x38, 0x96, 0x22, 0x3e, + 0xd1, 0x47, 0x51, 0x74, 0x4d, 0x16, 0x07, 0x67, 0x0b, 0x30, 0x1d, 0x21, 0x76, 0x96, 0x05, 0x39, + 0x77, 0x11, 0xc6, 0x2a, 0x8e, 0x47, 0x7f, 0x36, 0x47, 0x3f, 0x17, 0x7a, 0xaa, 0x50, 0x4c, 0x68, + 0x43, 0x04, 0xbc, 0x78, 0x11, 0x46, 0x59, 0xf6, 0xeb, 0x23, 0x90, 0xd8, 0x2e, 0x68, 0x43, 0xe4, + 0xff, 0xa2, 0xa6, 0x90, 0xff, 0x4b, 0x5a, 0xa2, 0xb8, 0xf5, 0x90, 0xcf, 0x99, 0x86, 0xa2, 0x9e, + 0x33, 0x1d, 0x8e, 0x50, 0xf3, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x52, 0xe1, 0x83, 0x22, + 0x2b, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1983,6 +2020,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2461,6 +2568,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3080,6 +3210,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3088,497 +3228,505 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Message) Marshal() (data []byte, err error) { +func (m *Message) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Message) MarshalTo(data []byte) (int, error) { +func (m *Message) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Name) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Name))) - i += copy(data[i:], m.Name) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) } if m.Hilarity != 0 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Hilarity)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) } if m.HeightInCm != 0 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintTheproto3(data, i, uint64(m.HeightInCm)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) } if len(m.Data) > 0 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if len(m.Key) > 0 { + dAtA2 := make([]byte, len(m.Key)*10) + var j1 int for _, num := range m.Key { - data[i] = 0x28 - i++ - i = encodeVarintTheproto3(data, i, uint64(num)) + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ } + dAtA[i] = 0x2a + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(j1)) + i += copy(dAtA[i:], dAtA2[:j1]) } if m.Nested != nil { - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Nested.Size())) - n1, err := m.Nested.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) + n3, err := m.Nested.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n3 } if m.ResultCount != 0 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintTheproto3(data, i, uint64(m.ResultCount)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) } if m.TrueScotsman { - data[i] = 0x40 + dAtA[i] = 0x40 i++ if m.TrueScotsman { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Score != 0 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(m.Score)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(m.Score)))) } if len(m.Terrain) > 0 { for k := range m.Terrain { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Terrain[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 } - i += n2 } } if m.Proto2Field != nil { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintTheproto3(data, i, uint64(m.Proto2Field.Size())) - n3, err := m.Proto2Field.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) + n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n5 } if len(m.Proto2Value) > 0 { for k := range m.Proto2Value { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.Proto2Value[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n4, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n4 } } return i, nil } -func (m *Nested) Marshal() (data []byte, err error) { +func (m *Nested) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nested) MarshalTo(data []byte) (int, error) { +func (m *Nested) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Bunny) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Bunny))) - i += copy(data[i:], m.Bunny) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) + i += copy(dAtA[i:], m.Bunny) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n5, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n7, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 } - i += n5 } } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -3590,18 +3738,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -3611,18 +3759,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -3632,17 +3780,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -3652,17 +3800,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -3672,17 +3820,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -3692,17 +3840,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -3712,17 +3860,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -3732,17 +3880,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -3752,17 +3900,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -3772,17 +3920,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -3792,17 +3940,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -3812,17 +3960,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -3832,25 +3980,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -3862,19 +4010,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -3884,19 +4032,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -3906,20 +4060,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -3929,183 +4083,195 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n6, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n8, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 } - i += n6 } } return i, nil } -func (m *MessageWithMap) Marshal() (data []byte, err error) { +func (m *MessageWithMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MessageWithMap) MarshalTo(data []byte) (int, error) { +func (m *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NameMapping) > 0 { for k := range m.NameMapping { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NameMapping[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.MsgMapping) > 0 { for k := range m.MsgMapping { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.MsgMapping[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sozTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n7, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n9, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 } - i += n7 } } if len(m.ByteMapping) > 0 { for k := range m.ByteMapping { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.ByteMapping[k] - mapSize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + 1 + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != 0 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(m.F)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(m.F)))) } return i, nil } -func (m *Uint128Pair) Marshal() (data []byte, err error) { +func (m *Uint128Pair) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Uint128Pair) MarshalTo(data []byte) (int, error) { +func (m *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(m.Left.Size())) - n8, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) + n10, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n10 if m.Right != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Right.Size())) - n9, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) + n11, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n11 } return i, nil } -func (m *ContainsNestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -4113,70 +4279,95 @@ func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *ContainsNestedMap_NestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap_NestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap_NestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NestedMapField) > 0 { for k := range m.NestedMapField { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NestedMapField[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + } + } + return i, nil +} + +func (m *NotPacked) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + for _, num := range m.Key { + dAtA[i] = 0x28 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeVarintTheproto3(dAtA, i, uint64(num)) } } return i, nil } -func encodeFixed64Theproto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Theproto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Theproto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Theproto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintTheproto3(data []byte, offset int, v uint64) int { +func encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -4225,7 +4416,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -4646,6 +4837,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -4665,14 +4868,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -4680,43 +4883,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -4736,9 +4939,11 @@ func (m *Message) Size() (n int) { n += 1 + l + sovTheproto3(uint64(l)) } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -4760,8 +4965,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4776,8 +4982,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4913,7 +5120,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4932,8 +5143,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5059,7 +5271,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5078,8 +5294,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5104,8 +5321,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5113,7 +5331,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -5161,6 +5383,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -5709,6 +5942,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -5718,106 +5961,109 @@ func valueToStringTheproto3(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/marshaler/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1585 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6f, 0xdb, 0xc6, - 0x16, 0x35, 0x25, 0x59, 0x1f, 0x57, 0x5f, 0xf4, 0x24, 0xef, 0x41, 0xcf, 0xc0, 0xb3, 0x1d, 0x05, - 0x48, 0x9c, 0xe0, 0x45, 0xce, 0x73, 0xd2, 0x36, 0x75, 0xd3, 0xa6, 0x96, 0x62, 0x21, 0x6e, 0x2c, - 0xc5, 0x95, 0xec, 0xb8, 0x45, 0x80, 0x0a, 0x94, 0x4d, 0x49, 0x44, 0x25, 0xd2, 0x20, 0xa9, 0xa0, - 0xde, 0xe5, 0x67, 0x74, 0x57, 0x74, 0xd7, 0x65, 0x91, 0x45, 0xd1, 0x65, 0xbb, 0xf3, 0x32, 0x40, - 0x37, 0x45, 0x17, 0x41, 0x93, 0x6e, 0xb2, 0xcc, 0x32, 0xcb, 0xce, 0x07, 0x49, 0x0d, 0xa9, 0xa1, - 0xd8, 0x74, 0xd3, 0x8d, 0x17, 0x03, 0x6a, 0x2e, 0xcf, 0x39, 0x73, 0x67, 0x38, 0x73, 0x79, 0x40, - 0xc1, 0xca, 0xa1, 0x31, 0xea, 0x1a, 0xd6, 0xda, 0x48, 0x31, 0xad, 0x81, 0x32, 0x54, 0xcd, 0x35, - 0x7b, 0xa0, 0x1e, 0x9b, 0x86, 0x6d, 0xdc, 0xa8, 0xd0, 0x0b, 0xca, 0x78, 0x81, 0xc5, 0x6b, 0x7d, - 0xcd, 0x1e, 0x8c, 0xbb, 0x15, 0xcc, 0x59, 0xeb, 0x1b, 0x7d, 0x63, 0x8d, 0xc6, 0xbb, 0xe3, 0x1e, - 0xed, 0xd1, 0x0e, 0xfd, 0xc5, 0x98, 0x8b, 0xef, 0x85, 0xc2, 0x6d, 0xd5, 0xb2, 0xd7, 0x9c, 0x91, - 0xbb, 0x86, 0x3d, 0x20, 0x83, 0x92, 0x18, 0x23, 0x96, 0x7f, 0x9e, 0x87, 0x54, 0x43, 0xb5, 0x2c, - 0xa5, 0xaf, 0x22, 0x04, 0x09, 0x5d, 0x19, 0xa9, 0x25, 0x69, 0x45, 0x5a, 0xcd, 0xb4, 0xe8, 0x6f, - 0xf4, 0x0e, 0xa4, 0x07, 0xda, 0x50, 0x31, 0x35, 0xfb, 0xa4, 0x14, 0xc3, 0xf1, 0xc2, 0xfa, 0x7f, - 0x2a, 0x93, 0xb4, 0x1d, 0x66, 0xe5, 0xde, 0x78, 0x64, 0x8c, 0xcd, 0x96, 0x07, 0x45, 0x2b, 0x90, - 0x1b, 0xa8, 0x5a, 0x7f, 0x60, 0x77, 0x34, 0xbd, 0x73, 0x38, 0x2a, 0xc5, 0x31, 0x35, 0xdf, 0x02, - 0x16, 0xdb, 0xd6, 0x6b, 0x23, 0x32, 0xd8, 0x91, 0x62, 0x2b, 0xa5, 0x04, 0xbe, 0x93, 0x6b, 0xd1, - 0xdf, 0x48, 0x86, 0xf8, 0x97, 0xea, 0x49, 0x69, 0x7e, 0x25, 0xbe, 0x9a, 0x68, 0x91, 0x9f, 0xe8, - 0x0a, 0x24, 0x75, 0x9c, 0xac, 0x7a, 0x54, 0x4a, 0x62, 0x5c, 0x76, 0x7d, 0x81, 0x1b, 0xbc, 0x49, - 0x6f, 0xb4, 0x1c, 0x00, 0xba, 0x00, 0x39, 0x53, 0xb5, 0xc6, 0x43, 0xbb, 0x73, 0x68, 0x8c, 0x75, - 0xbb, 0x94, 0xc2, 0x84, 0x78, 0x2b, 0xcb, 0x62, 0x35, 0x12, 0x42, 0x17, 0x21, 0x6f, 0x9b, 0x63, - 0xb5, 0x63, 0x1d, 0x1a, 0xb6, 0x35, 0x52, 0xf4, 0x52, 0x1a, 0x63, 0xd2, 0xad, 0x1c, 0x09, 0xb6, - 0x9d, 0x18, 0x3a, 0x0f, 0xf3, 0xf8, 0xbe, 0xa9, 0x96, 0x32, 0xf8, 0x66, 0xac, 0xc5, 0x3a, 0xe8, - 0x7d, 0x48, 0xd9, 0xaa, 0x69, 0x2a, 0x9a, 0x5e, 0x02, 0x9c, 0x5e, 0x76, 0x7d, 0x59, 0xb0, 0x0c, - 0x7b, 0x0c, 0xb1, 0xa5, 0xdb, 0xe6, 0x49, 0xcb, 0xc5, 0xe3, 0x25, 0xcc, 0x51, 0xdc, 0x7a, 0xa7, - 0xa7, 0xa9, 0xc3, 0xa3, 0x52, 0x96, 0xce, 0x04, 0x55, 0xe8, 0x53, 0x68, 0x6a, 0xfa, 0x83, 0x63, - 0xbb, 0xa9, 0xd8, 0xda, 0x63, 0xb5, 0x95, 0x65, 0xb8, 0x3a, 0x81, 0xa1, 0xba, 0x47, 0x7b, 0xac, - 0x0c, 0xc7, 0x6a, 0x29, 0x4f, 0x87, 0xbd, 0x28, 0x18, 0x76, 0x97, 0xc2, 0x1e, 0x12, 0x14, 0x1b, - 0xda, 0xd1, 0xa1, 0x91, 0xc5, 0x06, 0xe4, 0xf8, 0xbc, 0xdc, 0x45, 0x96, 0xe8, 0xf2, 0xd0, 0x45, - 0xbe, 0x0c, 0xf3, 0x6c, 0x88, 0x58, 0xd8, 0x1a, 0xb3, 0xfb, 0x1b, 0xb1, 0x5b, 0xd2, 0xe2, 0x2e, - 0xc8, 0xc1, 0xf1, 0x04, 0x92, 0x97, 0xfc, 0x92, 0x32, 0x3f, 0xd9, 0x2d, 0x7d, 0x3c, 0xe2, 0x14, - 0xcb, 0x77, 0x20, 0xc9, 0xf6, 0x0f, 0xca, 0x42, 0x6a, 0xbf, 0x79, 0xbf, 0xf9, 0xe0, 0xa0, 0x29, - 0xcf, 0xa1, 0x34, 0x24, 0x76, 0xf7, 0x9b, 0x6d, 0x59, 0x42, 0x79, 0xc8, 0xb4, 0x77, 0x36, 0x77, - 0xdb, 0x7b, 0xdb, 0xb5, 0xfb, 0x72, 0x0c, 0x15, 0x21, 0x5b, 0xdd, 0xde, 0xd9, 0xe9, 0x54, 0x37, - 0xb7, 0x77, 0xb6, 0x3e, 0x97, 0xe3, 0xe5, 0x25, 0x48, 0xb2, 0x3c, 0xc9, 0xb3, 0xeb, 0x8e, 0x75, - 0xfd, 0xc4, 0xd9, 0xc2, 0xac, 0x53, 0x7e, 0x8a, 0x20, 0xb5, 0x39, 0x1c, 0x36, 0x94, 0x63, 0x0b, - 0x1d, 0xc0, 0x42, 0xdb, 0x36, 0x35, 0xbd, 0xbf, 0x67, 0xdc, 0x35, 0xc6, 0xdd, 0xa1, 0x8a, 0xa3, - 0x18, 0x4d, 0x96, 0xf6, 0x0a, 0x37, 0x6f, 0x07, 0x5e, 0x99, 0xc2, 0xb2, 0x05, 0x5e, 0xb0, 0x82, - 0x71, 0xb4, 0x07, 0xb2, 0x0b, 0xae, 0x0f, 0x0d, 0xc5, 0x26, 0xba, 0x31, 0xaa, 0xbb, 0x3a, 0x43, - 0xd7, 0x85, 0x32, 0x59, 0xd9, 0x0a, 0x84, 0xd1, 0x6d, 0x48, 0x6f, 0xeb, 0xf6, 0x8d, 0x75, 0xa2, - 0x16, 0xa7, 0x6a, 0x2b, 0x02, 0x35, 0x17, 0xc2, 0x54, 0xd2, 0x9a, 0xd3, 0x75, 0xd8, 0xef, 0xde, - 0x24, 0xec, 0xc4, 0x2c, 0x36, 0x85, 0x4c, 0xd8, 0xb4, 0x8b, 0xee, 0x40, 0x66, 0xdf, 0x95, 0xa2, - 0x67, 0x32, 0xbb, 0x7e, 0x41, 0x40, 0xf7, 0x30, 0x8c, 0x9f, 0x19, 0x7b, 0xc3, 0x3b, 0x02, 0x6c, - 0xfc, 0xe4, 0x4c, 0x01, 0x2e, 0x01, 0x2a, 0xe0, 0x65, 0xd0, 0xf6, 0x32, 0x48, 0x85, 0x0a, 0xb4, - 0x03, 0x19, 0x58, 0x7c, 0x06, 0x6d, 0x2f, 0x83, 0xf4, 0x4c, 0x01, 0x3e, 0x03, 0xcb, 0xcb, 0xa0, - 0x0a, 0x50, 0xd7, 0xbe, 0x52, 0x8f, 0x58, 0x0a, 0x19, 0xaa, 0x50, 0x16, 0x28, 0x4c, 0x40, 0x4c, - 0x02, 0x7a, 0x5e, 0x00, 0x6d, 0x41, 0xb6, 0x3d, 0xe9, 0x3a, 0xe5, 0xe3, 0xa2, 0x28, 0x8d, 0x5e, - 0x40, 0x25, 0x6b, 0x71, 0x32, 0x6e, 0x2a, 0x6c, 0x32, 0xd9, 0xd9, 0xa9, 0x70, 0xb3, 0x61, 0xa9, - 0xb0, 0xe9, 0x78, 0xa9, 0x30, 0x91, 0x5c, 0x44, 0x2a, 0x9c, 0x8a, 0x93, 0x0a, 0x93, 0xc1, 0xc5, - 0xb0, 0x6a, 0x18, 0x04, 0xe9, 0x54, 0xa5, 0x65, 0x81, 0x84, 0x83, 0x70, 0x8a, 0x61, 0x97, 0xf5, - 0xe8, 0x13, 0xa1, 0x9b, 0x9c, 0x90, 0x0b, 0xe1, 0x4f, 0xc4, 0xc5, 0xb8, 0x4f, 0xc4, 0xed, 0xf3, - 0xe7, 0xac, 0x7a, 0x82, 0xab, 0x0a, 0xd1, 0x29, 0x46, 0x9e, 0x33, 0x17, 0x1a, 0x38, 0x67, 0x6e, - 0x18, 0x7d, 0x0a, 0x45, 0x17, 0x4a, 0xca, 0x13, 0x11, 0x95, 0xa9, 0xe8, 0xe5, 0x19, 0xa2, 0x0e, - 0x92, 0x69, 0x16, 0x2d, 0x7f, 0x14, 0x35, 0xa1, 0xe0, 0x02, 0x1b, 0x16, 0x9d, 0xee, 0x02, 0x55, - 0xbc, 0x34, 0x43, 0x91, 0x01, 0x99, 0x60, 0xc1, 0xf2, 0x05, 0x17, 0xef, 0xc2, 0xbf, 0xc5, 0xd5, - 0x88, 0x2f, 0xbf, 0x19, 0x56, 0x7e, 0xcf, 0xf3, 0xe5, 0x57, 0xe2, 0xcb, 0x77, 0x0d, 0xfe, 0x25, - 0xac, 0x3d, 0x51, 0x22, 0x31, 0x5e, 0xe4, 0x03, 0xc8, 0xfb, 0x4a, 0x0e, 0x4f, 0x9e, 0x17, 0x90, - 0xe7, 0xa7, 0xc9, 0x93, 0xad, 0x25, 0x78, 0x7b, 0xf8, 0xc8, 0x71, 0x9e, 0x7c, 0x1b, 0x0a, 0xfe, - 0x7a, 0xc3, 0xb3, 0xf3, 0x02, 0x76, 0x5e, 0xc0, 0x16, 0x8f, 0x9d, 0x10, 0xb0, 0x13, 0x01, 0x76, - 0x3b, 0x74, 0xec, 0x05, 0x01, 0x7b, 0x41, 0xc0, 0x16, 0x8f, 0x8d, 0x04, 0x6c, 0xc4, 0xb3, 0x3f, - 0x84, 0x62, 0xa0, 0xc4, 0xf0, 0xf4, 0x94, 0x80, 0x9e, 0xe2, 0xe9, 0x1f, 0xe1, 0x43, 0xd3, 0x0b, - 0xe7, 0x17, 0x05, 0xfc, 0xa2, 0x68, 0x78, 0x71, 0xf6, 0x49, 0x01, 0x3d, 0x29, 0x1c, 0x5e, 0xcc, - 0x97, 0x05, 0x7c, 0x99, 0xe7, 0x6f, 0x40, 0x8e, 0xaf, 0x26, 0x3c, 0x37, 0x2d, 0xe0, 0xa6, 0x83, - 0xeb, 0xee, 0x2b, 0x26, 0x51, 0x3b, 0x3d, 0x13, 0x72, 0x5c, 0x7c, 0x25, 0x24, 0x4a, 0x24, 0xc7, - 0x8b, 0x3c, 0x84, 0xf3, 0xa2, 0x92, 0x21, 0xd0, 0x58, 0xe5, 0x35, 0x0a, 0xc4, 0x23, 0x4e, 0xcc, - 0x1e, 0x61, 0xf9, 0x8c, 0xd3, 0xe2, 0x23, 0x38, 0x27, 0x28, 0x1c, 0x02, 0xd9, 0x8a, 0xdf, 0x8d, - 0x95, 0x38, 0x59, 0x5a, 0x04, 0xb0, 0xc4, 0xae, 0x81, 0x37, 0x27, 0xef, 0xca, 0x7e, 0x38, 0x07, - 0x05, 0xa7, 0x3c, 0x3d, 0x30, 0x8f, 0x54, 0x13, 0xbb, 0xab, 0x2f, 0xc2, 0xbd, 0xd3, 0xf5, 0xe9, - 0xa2, 0xe6, 0xb0, 0xde, 0xc2, 0x42, 0x3d, 0x0a, 0xb5, 0x50, 0x6b, 0xd1, 0xf2, 0x51, 0x4e, 0xaa, - 0x36, 0xe5, 0xa4, 0x2e, 0x87, 0x8b, 0x86, 0x19, 0xaa, 0xda, 0x94, 0xa1, 0x9a, 0x2d, 0x22, 0xf4, - 0x55, 0xf5, 0x69, 0x5f, 0xb5, 0x1a, 0xae, 0x12, 0x6e, 0xaf, 0xea, 0xd3, 0xf6, 0x2a, 0x42, 0x47, - 0xec, 0xb2, 0xea, 0xd3, 0x2e, 0x6b, 0x86, 0x4e, 0xb8, 0xd9, 0xaa, 0x4f, 0x9b, 0xad, 0x08, 0x1d, - 0xb1, 0xe7, 0xda, 0x16, 0x78, 0xae, 0x2b, 0xe1, 0x42, 0xb3, 0xac, 0xd7, 0x8e, 0xc8, 0x7a, 0x5d, - 0x9d, 0x91, 0xd4, 0x4c, 0x07, 0xb6, 0x2d, 0x70, 0x60, 0x51, 0x89, 0x85, 0x18, 0xb1, 0x1d, 0x91, - 0x11, 0x8b, 0x4c, 0x2c, 0xcc, 0x8f, 0x7d, 0x1c, 0xf4, 0x63, 0x97, 0xc2, 0x95, 0xc4, 0xb6, 0xac, - 0x3e, 0x6d, 0xcb, 0x56, 0xa3, 0xce, 0x9c, 0xc8, 0x9d, 0x3d, 0x0a, 0x75, 0x67, 0x7f, 0xe1, 0x08, - 0x47, 0x99, 0xb4, 0xcf, 0xc2, 0x4c, 0x5a, 0x25, 0x5a, 0x7b, 0xb6, 0x57, 0xdb, 0x0f, 0xf1, 0x6a, - 0xd7, 0xa2, 0x85, 0xcf, 0x2c, 0xdb, 0x99, 0x65, 0x3b, 0xb3, 0x6c, 0x67, 0x96, 0xed, 0x9f, 0xb7, - 0x6c, 0x1b, 0x89, 0xaf, 0xbf, 0x5d, 0x96, 0xca, 0xbf, 0xc4, 0xa1, 0xe0, 0x7c, 0x19, 0x3c, 0xd0, - 0xec, 0x01, 0x29, 0x6f, 0x0d, 0xc8, 0x91, 0x8f, 0xb9, 0x9d, 0x91, 0x72, 0x7c, 0x8c, 0x89, 0x8e, - 0x67, 0xbb, 0x3a, 0xfd, 0x29, 0xd1, 0x21, 0x54, 0x9a, 0x18, 0xdd, 0x60, 0x60, 0xe7, 0x75, 0xa3, - 0x4f, 0x22, 0xe8, 0x13, 0xc8, 0x8e, 0xac, 0xbe, 0xa7, 0x16, 0x9b, 0x7a, 0x11, 0x06, 0xd4, 0xd8, - 0x4c, 0x27, 0x62, 0x30, 0xf2, 0x02, 0x24, 0xb5, 0x2e, 0x7e, 0x4a, 0x9e, 0x58, 0x3c, 0x2a, 0x35, - 0xf2, 0x4c, 0xfd, 0xa9, 0x75, 0x27, 0x11, 0xb2, 0x6d, 0x83, 0xb9, 0x47, 0x55, 0x3a, 0xdf, 0xe6, - 0x39, 0x80, 0x62, 0x20, 0x5b, 0xc1, 0x99, 0xff, 0x1b, 0xcf, 0x86, 0x24, 0x16, 0xcc, 0x3c, 0xea, - 0x4c, 0xf0, 0x1b, 0xb2, 0xfc, 0x5f, 0xc8, 0xfb, 0xb4, 0x51, 0x0e, 0xa4, 0x1e, 0xa5, 0x4a, 0x2d, - 0xa9, 0x57, 0xfe, 0x46, 0x82, 0x2c, 0xa9, 0x93, 0xff, 0x5f, 0xbf, 0xb5, 0xab, 0x68, 0x26, 0xba, - 0x07, 0x89, 0xa1, 0xda, 0xb3, 0x29, 0x20, 0x57, 0xbd, 0x79, 0xfa, 0x7c, 0x79, 0xee, 0xb7, 0xe7, - 0xcb, 0xff, 0x8b, 0xf8, 0x97, 0x60, 0x6c, 0xd9, 0xc6, 0xa8, 0xe2, 0xe8, 0xb4, 0xa8, 0x02, 0x76, - 0x06, 0xf3, 0x26, 0xf9, 0x68, 0xcf, 0x52, 0xaa, 0x5e, 0x7f, 0x6b, 0x19, 0x46, 0x2f, 0x9f, 0x4a, - 0xb0, 0x50, 0x33, 0x74, 0x5b, 0xd1, 0x74, 0x8b, 0x7d, 0xad, 0x25, 0x6f, 0xc8, 0xa7, 0x12, 0x64, - 0xbc, 0x1e, 0xea, 0x42, 0xc1, 0xeb, 0xd0, 0x8f, 0xe0, 0xce, 0x4e, 0xdd, 0xe0, 0x56, 0x78, 0x4a, - 0xa3, 0x22, 0xf8, 0x45, 0xc9, 0xce, 0x3b, 0x59, 0xf7, 0x05, 0x17, 0x37, 0xe1, 0x9c, 0x00, 0xf6, - 0x36, 0x2f, 0xe4, 0xab, 0x17, 0x20, 0xe5, 0x1c, 0x6d, 0x94, 0x84, 0x58, 0x63, 0x53, 0x9e, 0xa3, - 0xd7, 0xaa, 0x2c, 0xd1, 0x6b, 0x4d, 0x8e, 0x55, 0x77, 0x4e, 0x5f, 0x2c, 0xcd, 0x3d, 0xc3, 0xed, - 0x57, 0xdc, 0x7e, 0x7f, 0xb1, 0x24, 0xbd, 0xc2, 0xed, 0x35, 0x6e, 0x6f, 0x70, 0x7b, 0xf2, 0x72, - 0x49, 0xfa, 0x0e, 0xb7, 0xef, 0x71, 0xfb, 0x11, 0xb7, 0x9f, 0x70, 0x3b, 0xc5, 0xed, 0xd9, 0x4b, - 0x8c, 0xc5, 0xd7, 0x57, 0xf8, 0xfa, 0x1a, 0x5f, 0xdf, 0xe0, 0xeb, 0x93, 0x3f, 0x96, 0xe6, 0xba, - 0x49, 0x36, 0xf7, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x68, 0xb0, 0x04, 0x42, 0x1a, 0x00, - 0x00, + // 1610 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46, + 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02, + 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, + 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0, + 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80, + 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c, + 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05, + 0x0d, 0x85, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0x9e, 0x66, 0x3b, 0x1d, 0xad, 0xab, 0xdb, 0xcb, + 0xa4, 0xa3, 0x1f, 0xdb, 0x16, 0xb1, 0x6e, 0x96, 0xd9, 0x0f, 0x4e, 0x8d, 0x02, 0x0b, 0xd7, 0xdb, + 0x06, 0xe9, 0xf4, 0x5b, 0xe5, 0x03, 0xab, 0xb7, 0xdc, 0xb6, 0xda, 0xd6, 0x32, 0x8b, 0xb7, 0xfa, + 0x47, 0x6c, 0xc4, 0x06, 0xec, 0x8a, 0x2b, 0x17, 0xfe, 0xef, 0x9b, 0x4e, 0x74, 0x87, 0x2c, 0xbb, + 0x33, 0xb7, 0x2c, 0xd2, 0xa1, 0x93, 0xd2, 0x18, 0x17, 0x16, 0x7f, 0x8e, 0x41, 0x62, 0x4b, 0x77, + 0x1c, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb, 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d, + 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xcd, 0x36, 0xc8, 0x49, 0x3e, 0x5c, 0x40, 0xa5, 0xdc, 0xca, + 0xbf, 0xca, 0xe3, 0xb2, 0x5d, 0x65, 0xf9, 0x41, 0xbf, 0x67, 0xf5, 0xed, 0xc6, 0x28, 0x15, 0x17, + 0x20, 0xd3, 0xd1, 0x8d, 0x76, 0x87, 0xec, 0x1b, 0xe6, 0xfe, 0x41, 0x2f, 0x1f, 0x29, 0xa0, 0x52, + 0xb6, 0x01, 0x3c, 0xb6, 0x61, 0x56, 0x7b, 0x74, 0xb2, 0x43, 0x8d, 0x68, 0xf9, 0x68, 0x01, 0x95, + 0x32, 0x0d, 0x76, 0x8d, 0x15, 0x88, 0x3c, 0xd5, 0x4f, 0xf2, 0xb1, 0x42, 0xa4, 0x14, 0x6d, 0xd0, + 0x4b, 0x7c, 0x15, 0xe2, 0xa6, 0xee, 0x10, 0xfd, 0x30, 0x1f, 0x2f, 0xa0, 0x52, 0x7a, 0x65, 0x5e, + 0x98, 0xbc, 0xce, 0xfe, 0xd0, 0x70, 0x13, 0xf0, 0x12, 0x64, 0x6c, 0xdd, 0xe9, 0x77, 0xc9, 0xfe, + 0x81, 0xd5, 0x37, 0x49, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, + 0x20, 0x4b, 0xec, 0xbe, 0xbe, 0xef, 0x1c, 0x58, 0xc4, 0xe9, 0x69, 0x66, 0x3e, 0x59, 0x40, 0xa5, + 0x64, 0x23, 0x43, 0x83, 0x4d, 0x37, 0x86, 0x2f, 0x42, 0xcc, 0x39, 0xb0, 0x6c, 0x3d, 0x9f, 0x2a, + 0xa0, 0x52, 0xb8, 0xc1, 0x07, 0xf8, 0x03, 0x48, 0x10, 0xdd, 0xb6, 0x35, 0xc3, 0xcc, 0x43, 0x21, + 0x52, 0x4a, 0xaf, 0x2c, 0x4a, 0x96, 0x61, 0x87, 0x67, 0xac, 0x9b, 0xc4, 0x3e, 0x69, 0x0c, 0xf3, + 0xf1, 0x6d, 0xc8, 0xb0, 0xbc, 0x95, 0xfd, 0x23, 0x43, 0xef, 0x1e, 0xe6, 0xd3, 0xec, 0x4e, 0x70, + 0x99, 0x3d, 0x85, 0xba, 0x61, 0x3e, 0x3a, 0x26, 0x75, 0x8d, 0x18, 0xcf, 0xf4, 0x46, 0x9a, 0xe7, + 0xd5, 0x68, 0x1a, 0xae, 0x8d, 0x64, 0xcf, 0xb4, 0x6e, 0x5f, 0xcf, 0x67, 0xd9, 0xb4, 0x97, 0x24, + 0xd3, 0x6e, 0xb3, 0xb4, 0xc7, 0x34, 0x8b, 0x4f, 0xed, 0x72, 0x58, 0x64, 0x61, 0x0b, 0x32, 0x62, + 0x5d, 0xc3, 0x45, 0x46, 0x6c, 0x79, 0xd8, 0x22, 0x5f, 0x81, 0x18, 0x9f, 0x22, 0xec, 0xb7, 0xc6, + 0xfc, 0xef, 0xab, 0xe1, 0x3b, 0x68, 0x61, 0x1b, 0x94, 0xe9, 0xf9, 0x24, 0xc8, 0xcb, 0x93, 0x48, + 0x45, 0xbc, 0xd9, 0x75, 0xb3, 0xdf, 0x13, 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21, + 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57, 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53, + 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda, 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39, + 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b, 0x6b, 0x1b, 0x9b, 0xeb, 0x5f, 0x28, 0x91, 0xa2, 0x0a, + 0x71, 0x5e, 0x27, 0x7d, 0x76, 0xad, 0xbe, 0x69, 0x9e, 0xb8, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30, + 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8, 0xc1, 0x7b, 0x30, 0xdf, 0x24, 0xb6, 0x61, 0xb6, 0x77, + 0xac, 0xfb, 0x56, 0xbf, 0xd5, 0xd5, 0xb7, 0xb4, 0xe3, 0x3c, 0x62, 0x4b, 0x7b, 0x55, 0xb8, 0x6f, + 0x37, 0xbd, 0xec, 0xc9, 0xe5, 0x0b, 0xec, 0x65, 0xe0, 0x1d, 0x50, 0x86, 0xc1, 0x5a, 0xd7, 0xd2, + 0x08, 0xe5, 0x86, 0x19, 0xb7, 0x34, 0x83, 0x3b, 0x4c, 0xe5, 0x58, 0x0f, 0x01, 0xdf, 0x85, 0xe4, + 0x86, 0x49, 0x6e, 0xae, 0x50, 0x5a, 0x84, 0xd1, 0x0a, 0x12, 0xda, 0x30, 0x85, 0x53, 0x46, 0x0a, + 0x57, 0xfd, 0xbf, 0x5b, 0x54, 0x1d, 0x9d, 0xa5, 0x66, 0x29, 0x63, 0x35, 0x1b, 0xe2, 0x7b, 0x90, + 0xda, 0x35, 0x86, 0x93, 0xc7, 0x98, 0x7c, 0x49, 0x22, 0x1f, 0xe5, 0x70, 0xfd, 0x58, 0x33, 0x04, + 0xf0, 0xf9, 0xe3, 0x33, 0x01, 0x42, 0x01, 0x63, 0x0d, 0x05, 0x34, 0x47, 0x15, 0x24, 0x7c, 0x01, + 0xcd, 0xa9, 0x0a, 0x9a, 0x62, 0x05, 0xcd, 0x51, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xd1, 0x18, + 0x57, 0x00, 0x6a, 0xc6, 0x57, 0xfa, 0x21, 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x9c, 0xc4, + 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79, 0x34, 0x86, 0x80, 0xe7, 0x1c, 0x8f, 0xca, 0x38, 0x9a, + 0xa2, 0x88, 0xba, 0x51, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x8d, 0x4b, + 0xe1, 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x76, + 0xa5, 0x45, 0x09, 0xc2, 0xcd, 0x70, 0x9b, 0xa1, 0x3b, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce, + 0xf9, 0x3f, 0x91, 0x61, 0xce, 0xf0, 0x89, 0x0c, 0xc7, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa1, + 0x9c, 0xb9, 0xc0, 0x73, 0x36, 0x4c, 0x9d, 0x3a, 0x67, 0xc3, 0x30, 0xfe, 0x0c, 0xe6, 0x86, 0x31, + 0xda, 0x9e, 0x28, 0x54, 0x61, 0xd0, 0x2b, 0x33, 0xa0, 0x6e, 0x26, 0x67, 0x4e, 0xeb, 0x71, 0x1d, + 0x72, 0xc3, 0xd0, 0x96, 0xc3, 0x6e, 0x77, 0x9e, 0x11, 0x2f, 0xcf, 0x20, 0xf2, 0x44, 0x0e, 0x9c, + 0x52, 0x2f, 0xdc, 0x87, 0x7f, 0xca, 0xbb, 0x91, 0xd8, 0x7e, 0x53, 0xbc, 0xfd, 0x5e, 0x14, 0xdb, + 0x2f, 0x12, 0xdb, 0x77, 0x15, 0xfe, 0x21, 0xed, 0x3d, 0x41, 0x90, 0xb0, 0x08, 0xf9, 0x10, 0xb2, + 0x13, 0x2d, 0x47, 0x14, 0xc7, 0x24, 0xe2, 0x98, 0x57, 0x3c, 0xde, 0x5a, 0x92, 0xb7, 0xc7, 0x84, + 0x38, 0x22, 0x8a, 0xef, 0x42, 0x6e, 0xb2, 0xdf, 0x88, 0xea, 0xac, 0x44, 0x9d, 0x95, 0xa8, 0xe5, + 0x73, 0x47, 0x25, 0xea, 0xe8, 0x94, 0xba, 0xe9, 0x3b, 0xf7, 0xbc, 0x44, 0x3d, 0x2f, 0x51, 0xcb, + 0xe7, 0xc6, 0x12, 0x35, 0x16, 0xd5, 0x1f, 0xc1, 0xdc, 0x54, 0x8b, 0x11, 0xe5, 0x09, 0x89, 0x3c, + 0x21, 0xca, 0x3f, 0x06, 0x65, 0xba, 0xb9, 0x88, 0xfa, 0x39, 0x89, 0x7e, 0x4e, 0x36, 0xbd, 0xbc, + 0xfa, 0xb8, 0x44, 0x1e, 0x97, 0x4e, 0x2f, 0xd7, 0x2b, 0x12, 0xbd, 0x22, 0xea, 0x57, 0x21, 0x23, + 0x76, 0x13, 0x51, 0x9b, 0x94, 0x68, 0x93, 0xd3, 0xeb, 0x3e, 0xd1, 0x4c, 0x82, 0x76, 0x7a, 0xca, + 0xe7, 0xb8, 0x4c, 0xb4, 0x90, 0x20, 0x48, 0x46, 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61, + 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0xb1, 0xd9, 0xa3, 0xaa, 0x09, 0xe3, 0xb4, 0xf0, 0x04, 0x2e, + 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x74, 0x63, 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7, + 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xe1, 0x02, 0xe4, 0xdc, 0xf6, 0xf4, 0xc8, 0x3e, 0xd4, 0x6d, + 0xfd, 0x10, 0x7f, 0xe9, 0xef, 0x9d, 0x6e, 0x78, 0x9b, 0x9a, 0xab, 0x7a, 0x0f, 0x0b, 0xf5, 0xc4, + 0xd7, 0x42, 0x2d, 0x07, 0xe3, 0x83, 0x9c, 0x54, 0xd5, 0xe3, 0xa4, 0xae, 0xf8, 0x43, 0xfd, 0x0c, + 0x55, 0xd5, 0x63, 0xa8, 0x66, 0x43, 0xa4, 0xbe, 0xaa, 0xe6, 0xf5, 0x55, 0x25, 0x7f, 0x8a, 0xbf, + 0xbd, 0xaa, 0x79, 0xed, 0x55, 0x00, 0x47, 0xee, 0xb2, 0x6a, 0x5e, 0x97, 0x35, 0x83, 0xe3, 0x6f, + 0xb6, 0x6a, 0x5e, 0xb3, 0x15, 0xc0, 0x91, 0x7b, 0xae, 0x0d, 0x89, 0xe7, 0xba, 0xea, 0x0f, 0x9a, + 0x65, 0xbd, 0x36, 0x65, 0xd6, 0xeb, 0xda, 0x8c, 0xa2, 0x66, 0x3a, 0xb0, 0x0d, 0x89, 0x03, 0x0b, + 0x2a, 0xcc, 0xc7, 0x88, 0x6d, 0xca, 0x8c, 0x58, 0x60, 0x61, 0x7e, 0x7e, 0xec, 0x93, 0x69, 0x3f, + 0x76, 0xd9, 0x9f, 0x24, 0xb7, 0x65, 0x35, 0xaf, 0x2d, 0x2b, 0x05, 0x9d, 0x39, 0x99, 0x3b, 0x7b, + 0xe2, 0xeb, 0xce, 0xfe, 0xc4, 0x11, 0x0e, 0x32, 0x69, 0x9f, 0xfb, 0x99, 0xb4, 0x72, 0x30, 0x7b, + 0xb6, 0x57, 0xdb, 0xf5, 0xf1, 0x6a, 0xd7, 0x83, 0xc1, 0xe7, 0x96, 0xed, 0xdc, 0xb2, 0x9d, 0x5b, + 0xb6, 0x73, 0xcb, 0xf6, 0xf7, 0x5b, 0xb6, 0xd5, 0xe8, 0xd7, 0xdf, 0x2e, 0xa2, 0xe2, 0x2f, 0x11, + 0xc8, 0xb9, 0x5f, 0x06, 0xf7, 0x0c, 0xd2, 0xa1, 0xed, 0x6d, 0x0b, 0x32, 0xa6, 0xd6, 0xd3, 0xf7, + 0x7b, 0xda, 0xf1, 0xb1, 0x61, 0xb6, 0x5d, 0xcf, 0x76, 0xcd, 0xfb, 0x29, 0xd1, 0x15, 0x94, 0xeb, + 0x5a, 0x8f, 0xf6, 0x2a, 0x9a, 0xec, 0xbe, 0x6e, 0xcc, 0x71, 0x04, 0x7f, 0x0a, 0xe9, 0x9e, 0xd3, + 0x1e, 0xd1, 0xc2, 0x9e, 0x17, 0xe1, 0x14, 0x8d, 0xdf, 0xe9, 0x18, 0x06, 0xbd, 0x51, 0x80, 0x96, + 0xd6, 0x3a, 0x21, 0xe3, 0xd2, 0x22, 0x41, 0xa5, 0xd1, 0x67, 0x3a, 0x59, 0x5a, 0x6b, 0x1c, 0xa1, + 0xdb, 0x76, 0xba, 0xf6, 0xa0, 0x4e, 0x37, 0xb1, 0x79, 0xf6, 0x60, 0x6e, 0xaa, 0x5a, 0xc9, 0x99, + 0xff, 0x0b, 0xcf, 0x86, 0x16, 0x36, 0x5d, 0x79, 0xd0, 0x99, 0x10, 0x37, 0x64, 0xf1, 0xdf, 0x90, + 0x9d, 0x60, 0xe3, 0x0c, 0xa0, 0x23, 0x26, 0x45, 0x0d, 0x74, 0x54, 0xfc, 0x06, 0x41, 0x9a, 0xf6, + 0xc9, 0xff, 0xae, 0xdc, 0xd9, 0xd6, 0x0c, 0x1b, 0x3f, 0x80, 0x68, 0x57, 0x3f, 0x22, 0x2c, 0x21, + 0x53, 0xb9, 0x75, 0xfa, 0x6a, 0x31, 0xf4, 0xdb, 0xab, 0xc5, 0xff, 0x04, 0xfc, 0x97, 0xa0, 0xef, + 0x10, 0xab, 0x57, 0x76, 0x39, 0x0d, 0x46, 0xc0, 0x35, 0x88, 0xd9, 0x46, 0xbb, 0x43, 0x78, 0x49, + 0x95, 0x1b, 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x1d, + 0xfe, 0xb5, 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x46, 0xb8, 0x05, 0xb9, 0xd1, 0x80, 0x7d, + 0x04, 0x77, 0x77, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xee, 0x3b, 0x79, + 0x32, 0xb8, 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91, + 0x6d, 0xed, 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xfe, 0x9f, 0x45, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda, + 0x12, 0x24, 0xdc, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6, + 0x5b, 0x55, 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86, + 0x5e, 0x9f, 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f, + 0x54, 0xf4, 0xdd, 0x40, 0x45, 0xdf, 0x0f, 0x54, 0xf4, 0xe3, 0x40, 0x45, 0x3f, 0x0d, 0x54, 0x74, + 0x3a, 0x50, 0xd1, 0xcb, 0x81, 0x1a, 0x7a, 0x3d, 0x50, 0xd1, 0x9b, 0x81, 0x1a, 0x7a, 0x3b, 0x50, + 0xd1, 0xbb, 0x81, 0x1a, 0x7a, 0xfe, 0xbb, 0x1a, 0x6a, 0xc5, 0xf9, 0xf2, 0xfc, 0x11, 0x00, 0x00, + 0xff, 0xff, 0x63, 0x09, 0xf8, 0x62, 0x65, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto index c2e23f2e..56f8584b 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go index 95b3e8f5..03ef19c0 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go @@ -17,6 +17,7 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -41,18 +42,18 @@ func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -76,20 +77,20 @@ func TestMessageMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -108,11 +109,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -122,11 +123,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -143,18 +144,18 @@ func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -178,20 +179,20 @@ func TestNestedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -210,11 +211,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -224,11 +225,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -245,18 +246,18 @@ func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -280,20 +281,20 @@ func TestAllMapsMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -312,11 +313,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -326,11 +327,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -347,18 +348,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -382,20 +383,20 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -414,11 +415,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -428,11 +429,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -449,18 +450,18 @@ func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -484,20 +485,20 @@ func TestMessageWithMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -516,11 +517,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -530,11 +531,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -551,18 +552,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -586,20 +587,20 @@ func TestFloatingPointMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -618,11 +619,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -632,11 +633,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -653,18 +654,18 @@ func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -688,20 +689,20 @@ func TestUint128PairMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -720,11 +721,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -734,11 +735,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -755,18 +756,18 @@ func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -790,20 +791,20 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -822,11 +823,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -836,11 +837,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -857,18 +858,18 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -892,20 +893,20 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -924,11 +925,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -938,11 +939,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -955,6 +956,108 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNotPackedMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -1144,13 +1247,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,9 +1289,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,9 +1306,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,9 +1323,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,9 +1340,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,9 +1357,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,9 +1374,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,9 +1391,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,9 +1408,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,9 +1425,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,9 +1442,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,9 +1459,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,9 +1476,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,9 +1493,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,9 +1510,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,9 +1527,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,9 +1544,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,9 +1561,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1456,12 +1614,12 @@ func TestTheproto3Description(t *testing.T) { func TestMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1471,12 +1629,12 @@ func TestMessageVerboseEqual(t *testing.T) { func TestNestedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1486,12 +1644,12 @@ func TestNestedVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1501,12 +1659,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1516,12 +1674,12 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { func TestMessageWithMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1531,12 +1689,12 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1546,12 +1704,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestUint128PairVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1561,12 +1719,12 @@ func TestUint128PairVerboseEqual(t *testing.T) { func TestContainsNestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1576,12 +1734,27 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1660,6 +1833,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1777,18 +1958,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +2012,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1854,13 +2048,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1890,13 +2084,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1926,13 +2120,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1962,13 +2156,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1998,13 +2192,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2034,13 +2228,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2070,13 +2264,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2101,6 +2295,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -2182,5 +2412,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go index 3a78a384..55ac30e4 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,7 +38,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -48,7 +48,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -103,7 +105,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -123,23 +125,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -147,23 +149,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -205,7 +207,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -214,6 +216,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -224,6 +234,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -254,477 +265,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7457 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x6c, 0x23, 0xd7, - 0x79, 0xef, 0x92, 0x43, 0x4a, 0xd4, 0x47, 0x8a, 0xa2, 0x66, 0xb5, 0x32, 0x2d, 0xaf, 0xf7, 0x41, - 0xaf, 0xd7, 0xb2, 0x62, 0x6b, 0xb5, 0x5a, 0xed, 0xc3, 0xf4, 0xeb, 0x8a, 0x14, 0xb5, 0xd6, 0x46, - 0xaf, 0x8c, 0x24, 0x3f, 0xe2, 0x8b, 0x4b, 0x50, 0xe4, 0x48, 0xa2, 0x4d, 0x0d, 0x75, 0x39, 0xa4, - 0xed, 0xcd, 0x1f, 0x17, 0xb9, 0xc9, 0xbd, 0xb9, 0xc9, 0xbd, 0xb8, 0x7d, 0xa5, 0x45, 0xf3, 0x8e, - 0x9d, 0x22, 0x8d, 0x93, 0xbe, 0x92, 0x34, 0x0d, 0x8a, 0xa0, 0x68, 0x5c, 0x14, 0x49, 0xb7, 0xff, - 0x14, 0x6e, 0xfa, 0x4f, 0x51, 0x14, 0x46, 0x5e, 0x40, 0xd3, 0x36, 0x6d, 0x13, 0xc0, 0x40, 0x02, - 0x24, 0x7f, 0xf4, 0xbc, 0xe7, 0x9c, 0xc3, 0x19, 0x0e, 0xb5, 0x6b, 0xc7, 0xf9, 0xc3, 0x06, 0xb8, - 0xe2, 0x9c, 0xf3, 0xfd, 0xbe, 0xf3, 0x9d, 0xef, 0x75, 0xbe, 0x39, 0x67, 0x38, 0x86, 0xbf, 0x3c, - 0x0f, 0xa7, 0x76, 0x9b, 0xcd, 0xdd, 0x86, 0x7d, 0xee, 0xa0, 0xd5, 0x6c, 0x37, 0xb7, 0x3b, 0x3b, - 0xe7, 0x6a, 0xb6, 0x5b, 0x6d, 0xd5, 0x0f, 0xda, 0xcd, 0xd6, 0x34, 0x69, 0x33, 0x47, 0x28, 0xc5, - 0x34, 0xa7, 0xc8, 0xad, 0xc0, 0xe8, 0x62, 0xbd, 0x61, 0x2f, 0x08, 0xc2, 0x0d, 0xbb, 0x6d, 0x5e, - 0x81, 0xd8, 0x0e, 0x6a, 0xcc, 0x46, 0x4e, 0x19, 0x93, 0xc9, 0xd9, 0x33, 0xd3, 0x1a, 0x68, 0x5a, - 0x45, 0xac, 0xe3, 0x66, 0x8b, 0x20, 0x72, 0xdf, 0x8f, 0xc1, 0x51, 0x9f, 0x5e, 0xd3, 0x84, 0x98, - 0x53, 0xd9, 0xc7, 0x1c, 0x23, 0x93, 0x43, 0x16, 0xf9, 0x6e, 0x66, 0x61, 0xf0, 0xa0, 0x52, 0x7d, - 0xb6, 0xb2, 0x6b, 0x67, 0xa3, 0xa4, 0x99, 0x5f, 0x9a, 0x27, 0x00, 0x6a, 0xf6, 0x81, 0xed, 0xd4, - 0x6c, 0xa7, 0x7a, 0x3d, 0x6b, 0x20, 0x29, 0x86, 0x2c, 0xa9, 0xc5, 0x7c, 0x07, 0x8c, 0x1e, 0x74, - 0xb6, 0x1b, 0xf5, 0x6a, 0x59, 0x22, 0x03, 0x44, 0x16, 0xb7, 0x32, 0xb4, 0x63, 0xc1, 0x23, 0xbe, - 0x07, 0x46, 0x9e, 0xb7, 0x2b, 0xcf, 0xca, 0xa4, 0x49, 0x42, 0x9a, 0xc6, 0xcd, 0x12, 0x61, 0x11, - 0x52, 0xfb, 0xb6, 0xeb, 0x22, 0x01, 0xca, 0xed, 0xeb, 0x07, 0x76, 0x36, 0x46, 0x66, 0x7f, 0xaa, - 0x6b, 0xf6, 0xfa, 0xcc, 0x93, 0x0c, 0xb5, 0x89, 0x40, 0xe6, 0x3c, 0x0c, 0xd9, 0x4e, 0x67, 0x9f, - 0x72, 0x88, 0x07, 0xe8, 0xaf, 0x84, 0x28, 0x74, 0x2e, 0x09, 0x0c, 0x63, 0x2c, 0x06, 0x5d, 0xbb, - 0xf5, 0x5c, 0xbd, 0x6a, 0x67, 0x07, 0x08, 0x83, 0x7b, 0xba, 0x18, 0x6c, 0xd0, 0x7e, 0x9d, 0x07, - 0xc7, 0xa1, 0xa9, 0x0c, 0xd9, 0x2f, 0xb4, 0x6d, 0xc7, 0xad, 0x37, 0x9d, 0xec, 0x20, 0x61, 0x72, - 0xb7, 0x8f, 0x15, 0xed, 0x46, 0x4d, 0x67, 0xe1, 0xe1, 0xcc, 0x4b, 0x30, 0xd8, 0x3c, 0x68, 0xa3, - 0x6f, 0x6e, 0x36, 0x81, 0xec, 0x93, 0x9c, 0x3d, 0xee, 0xeb, 0x08, 0x6b, 0x94, 0xc6, 0xe2, 0xc4, - 0xe6, 0x12, 0x64, 0xdc, 0x66, 0xa7, 0x55, 0xb5, 0xcb, 0xd5, 0x66, 0xcd, 0x2e, 0xd7, 0x9d, 0x9d, - 0x66, 0x76, 0x88, 0x30, 0x38, 0xd9, 0x3d, 0x11, 0x42, 0x58, 0x44, 0x74, 0x4b, 0x88, 0xcc, 0x4a, - 0xbb, 0xca, 0xb5, 0x39, 0x0e, 0x03, 0xee, 0x75, 0xa7, 0x5d, 0x79, 0x21, 0x9b, 0x22, 0x1e, 0xc2, - 0xae, 0x72, 0x3f, 0x89, 0xc3, 0x48, 0x3f, 0x2e, 0xf6, 0x20, 0xc4, 0x77, 0xf0, 0x2c, 0x91, 0x83, - 0x1d, 0x42, 0x07, 0x14, 0xa3, 0x2a, 0x71, 0xe0, 0x26, 0x95, 0x38, 0x0f, 0x49, 0xc7, 0x76, 0xdb, - 0x76, 0x8d, 0x7a, 0x84, 0xd1, 0xa7, 0x4f, 0x01, 0x05, 0x75, 0xbb, 0x54, 0xec, 0xa6, 0x5c, 0xea, - 0x49, 0x18, 0x11, 0x22, 0x95, 0x5b, 0x15, 0x67, 0x97, 0xfb, 0xe6, 0xb9, 0x30, 0x49, 0xa6, 0x4b, - 0x1c, 0x67, 0x61, 0x98, 0x95, 0xb6, 0x95, 0x6b, 0x73, 0x01, 0xa0, 0xe9, 0xd8, 0xcd, 0x1d, 0x14, - 0x5e, 0xd5, 0x06, 0xf2, 0x13, 0x7f, 0x2d, 0xad, 0x61, 0x92, 0x2e, 0x2d, 0x35, 0x69, 0x6b, 0xb5, - 0x61, 0x3e, 0xe0, 0xb9, 0xda, 0x60, 0x80, 0xa7, 0xac, 0xd0, 0x20, 0xeb, 0xf2, 0xb6, 0x2d, 0x48, - 0xb7, 0x6c, 0xec, 0xf7, 0x48, 0xc5, 0x74, 0x66, 0x43, 0x44, 0x88, 0xe9, 0xd0, 0x99, 0x59, 0x0c, - 0x46, 0x27, 0x36, 0xdc, 0x92, 0x2f, 0xcd, 0xbb, 0x40, 0x34, 0x94, 0x89, 0x5b, 0x01, 0xc9, 0x42, - 0x29, 0xde, 0xb8, 0x8a, 0xda, 0x26, 0xae, 0x40, 0x5a, 0x55, 0x8f, 0x39, 0x06, 0x71, 0xb7, 0x5d, - 0x69, 0xb5, 0x89, 0x17, 0xc6, 0x2d, 0x7a, 0x61, 0x66, 0xc0, 0x40, 0x49, 0x86, 0x64, 0xb9, 0xb8, - 0x85, 0xbf, 0x4e, 0x5c, 0x86, 0x61, 0x65, 0xf8, 0x7e, 0x81, 0xb9, 0x8f, 0x0c, 0xc0, 0x98, 0x9f, - 0xcf, 0xf9, 0xba, 0x3f, 0x0a, 0x1f, 0xe4, 0x01, 0xdb, 0x76, 0x0b, 0xf9, 0x1d, 0xe6, 0xc0, 0xae, - 0x90, 0x47, 0xc5, 0x1b, 0x95, 0x6d, 0xbb, 0x81, 0xbc, 0x29, 0x32, 0x99, 0x9e, 0x7d, 0x47, 0x5f, - 0x5e, 0x3d, 0xbd, 0x8c, 0x21, 0x16, 0x45, 0x9a, 0x8f, 0x40, 0x8c, 0xa5, 0x38, 0xcc, 0x61, 0xaa, - 0x3f, 0x0e, 0xd8, 0x17, 0x2d, 0x82, 0x33, 0xef, 0x80, 0x21, 0xfc, 0x97, 0xea, 0x76, 0x80, 0xc8, - 0x9c, 0xc0, 0x0d, 0x58, 0xaf, 0xe6, 0x04, 0x24, 0x88, 0x9b, 0xd5, 0x6c, 0xbe, 0x34, 0x88, 0x6b, - 0x6c, 0x98, 0x9a, 0xbd, 0x53, 0xe9, 0x34, 0xda, 0xe5, 0xe7, 0x2a, 0x8d, 0x8e, 0x4d, 0x1c, 0x06, - 0x19, 0x86, 0x35, 0x3e, 0x8e, 0xdb, 0xcc, 0x93, 0x90, 0xa4, 0x5e, 0x59, 0x47, 0x98, 0x17, 0x48, - 0xf6, 0x89, 0x5b, 0xd4, 0x51, 0x97, 0x70, 0x0b, 0x1e, 0xfe, 0x19, 0x17, 0xc5, 0x02, 0x33, 0x2d, - 0x19, 0x02, 0x37, 0x90, 0xe1, 0x2f, 0xeb, 0x89, 0xef, 0x4e, 0xff, 0xe9, 0xe9, 0xbe, 0x98, 0xfb, - 0x6a, 0x14, 0x62, 0x24, 0xde, 0x46, 0x20, 0xb9, 0xf9, 0xd4, 0x7a, 0xa9, 0xbc, 0xb0, 0xb6, 0x55, - 0x58, 0x2e, 0x65, 0x22, 0x66, 0x1a, 0x80, 0x34, 0x2c, 0x2e, 0xaf, 0xcd, 0x6f, 0x66, 0xa2, 0xe2, - 0x7a, 0x69, 0x75, 0xf3, 0xd2, 0x5c, 0xc6, 0x10, 0x80, 0x2d, 0xda, 0x10, 0x93, 0x09, 0x2e, 0xcc, - 0x66, 0xe2, 0xc8, 0x13, 0x52, 0x94, 0xc1, 0xd2, 0x93, 0xa5, 0x05, 0x44, 0x31, 0xa0, 0xb6, 0x20, - 0x9a, 0x41, 0x73, 0x18, 0x86, 0x48, 0x4b, 0x61, 0x6d, 0x6d, 0x39, 0x93, 0x10, 0x3c, 0x37, 0x36, - 0xad, 0xa5, 0xd5, 0xab, 0x99, 0x21, 0xc1, 0xf3, 0xaa, 0xb5, 0xb6, 0xb5, 0x9e, 0x01, 0xc1, 0x61, - 0xa5, 0xb4, 0xb1, 0x31, 0x7f, 0xb5, 0x94, 0x49, 0x0a, 0x8a, 0xc2, 0x53, 0x9b, 0xa5, 0x8d, 0x4c, - 0x4a, 0x11, 0x0b, 0x0d, 0x31, 0x2c, 0x86, 0x28, 0xad, 0x6e, 0xad, 0x64, 0xd2, 0xe6, 0x28, 0x0c, - 0xd3, 0x21, 0xb8, 0x10, 0x23, 0x5a, 0x13, 0x92, 0x34, 0xe3, 0x09, 0x42, 0xb9, 0x8c, 0x2a, 0x0d, - 0x88, 0xc2, 0xcc, 0x15, 0x21, 0x4e, 0xbc, 0x0b, 0x79, 0x71, 0x7a, 0x79, 0xbe, 0x50, 0x5a, 0x2e, - 0xaf, 0xad, 0x6f, 0x2e, 0xad, 0xad, 0xce, 0x2f, 0x23, 0xdd, 0x89, 0x36, 0xab, 0xf4, 0xae, 0xad, - 0x25, 0xab, 0xb4, 0x80, 0xf4, 0x27, 0xb5, 0xad, 0x97, 0xe6, 0x37, 0x51, 0x9b, 0x91, 0x9b, 0x82, - 0x31, 0xbf, 0x3c, 0xe3, 0x17, 0x19, 0xb9, 0xcf, 0x44, 0xe0, 0xa8, 0x4f, 0xca, 0xf4, 0x8d, 0xa2, - 0x47, 0x21, 0x4e, 0x3d, 0x8d, 0x2e, 0x22, 0xf7, 0xfa, 0xe6, 0x5e, 0xe2, 0x77, 0x5d, 0x0b, 0x09, - 0xc1, 0xc9, 0x0b, 0xa9, 0x11, 0xb0, 0x90, 0x62, 0x16, 0x5d, 0xee, 0xf4, 0xfe, 0x08, 0x64, 0x83, - 0x78, 0x87, 0xc4, 0x7b, 0x54, 0x89, 0xf7, 0x07, 0x75, 0x01, 0x4e, 0x07, 0xcf, 0xa1, 0x4b, 0x8a, - 0xcf, 0x45, 0x60, 0xdc, 0xbf, 0xde, 0xf0, 0x95, 0xe1, 0x11, 0x18, 0xd8, 0xb7, 0xdb, 0x7b, 0x4d, - 0xbe, 0xe6, 0x9e, 0xf5, 0xc9, 0xe4, 0xb8, 0x5b, 0xd7, 0x15, 0x43, 0xc9, 0x4b, 0x81, 0x11, 0x54, - 0x34, 0x50, 0x69, 0xba, 0x24, 0xfd, 0x50, 0x14, 0x8e, 0xf9, 0x32, 0xf7, 0x15, 0xf4, 0x4e, 0x80, - 0xba, 0x73, 0xd0, 0x69, 0xd3, 0x75, 0x95, 0xa6, 0x99, 0x21, 0xd2, 0x42, 0x42, 0x18, 0xa7, 0x90, - 0x4e, 0x5b, 0xf4, 0x1b, 0xa4, 0x1f, 0x68, 0x13, 0x21, 0xb8, 0xe2, 0x09, 0x1a, 0x23, 0x82, 0x9e, - 0x08, 0x98, 0x69, 0xd7, 0x92, 0x35, 0x03, 0x99, 0x6a, 0xa3, 0x6e, 0x3b, 0xed, 0xb2, 0xdb, 0x6e, - 0xd9, 0x95, 0xfd, 0xba, 0xb3, 0x4b, 0xf2, 0x68, 0x22, 0x1f, 0xdf, 0xa9, 0x34, 0x5c, 0xdb, 0x1a, - 0xa1, 0xdd, 0x1b, 0xbc, 0x17, 0x23, 0xc8, 0x62, 0xd1, 0x92, 0x10, 0x03, 0x0a, 0x82, 0x76, 0x0b, - 0x44, 0xee, 0x5b, 0x83, 0x90, 0x94, 0xaa, 0x33, 0xf3, 0x34, 0xa4, 0x9e, 0xa9, 0x3c, 0x57, 0x29, - 0xf3, 0x8a, 0x9b, 0x6a, 0x22, 0x89, 0xdb, 0xd6, 0x59, 0xd5, 0x3d, 0x03, 0x63, 0x84, 0x04, 0xcd, - 0x11, 0x0d, 0x54, 0x6d, 0x54, 0x5c, 0x97, 0x28, 0x2d, 0x41, 0x48, 0x4d, 0xdc, 0xb7, 0x86, 0xbb, - 0x8a, 0xbc, 0xc7, 0xbc, 0x08, 0x47, 0x09, 0x62, 0x1f, 0x25, 0xde, 0xfa, 0x41, 0xc3, 0x2e, 0xe3, - 0x7b, 0x00, 0x97, 0xe4, 0x53, 0x21, 0xd9, 0x28, 0xa6, 0x58, 0x61, 0x04, 0x58, 0x22, 0xd7, 0xbc, - 0x0a, 0x77, 0x12, 0xd8, 0xae, 0xed, 0xd8, 0xad, 0x4a, 0xdb, 0x2e, 0xdb, 0xff, 0xbd, 0x83, 0x68, - 0xcb, 0x15, 0xa7, 0x56, 0xde, 0xab, 0xb8, 0x7b, 0xd9, 0x31, 0x99, 0xc1, 0xed, 0x98, 0xf6, 0x2a, - 0x23, 0x2d, 0x11, 0xca, 0x79, 0xa7, 0xf6, 0x18, 0xa2, 0x33, 0xf3, 0x30, 0x4e, 0x18, 0x21, 0xa5, - 0xa0, 0x39, 0x97, 0xab, 0x7b, 0x76, 0xf5, 0xd9, 0x72, 0xa7, 0xbd, 0x73, 0x25, 0x7b, 0x87, 0xcc, - 0x81, 0x08, 0xb9, 0x41, 0x68, 0x8a, 0x98, 0x64, 0x0b, 0x51, 0x98, 0x1b, 0x90, 0xc2, 0xf6, 0xd8, - 0xaf, 0xbf, 0x07, 0x89, 0xdd, 0x6c, 0x91, 0x35, 0x22, 0xed, 0x13, 0xdc, 0x92, 0x12, 0xa7, 0xd7, - 0x18, 0x60, 0x05, 0xd5, 0xa7, 0xf9, 0xf8, 0xc6, 0x7a, 0xa9, 0xb4, 0x60, 0x25, 0x39, 0x97, 0xc5, - 0x66, 0x0b, 0xfb, 0xd4, 0x6e, 0x53, 0xe8, 0x38, 0x49, 0x7d, 0x6a, 0xb7, 0xc9, 0x35, 0x8c, 0xf4, - 0x55, 0xad, 0xd2, 0x69, 0xa3, 0x7b, 0x17, 0x56, 0xac, 0xbb, 0xd9, 0x8c, 0xa2, 0xaf, 0x6a, 0xf5, - 0x2a, 0x25, 0x60, 0x6e, 0xee, 0xa2, 0x90, 0x38, 0xe6, 0xe9, 0x4b, 0x06, 0x8e, 0x76, 0xcd, 0x52, - 0x87, 0xa2, 0x11, 0x0f, 0xae, 0x77, 0x03, 0x4d, 0x65, 0xc4, 0x83, 0xeb, 0x3a, 0xec, 0x6e, 0x72, - 0x03, 0xd6, 0xb2, 0xab, 0x48, 0xe5, 0xb5, 0xec, 0x6d, 0x32, 0xb5, 0xd4, 0x61, 0x9e, 0x43, 0x8e, - 0x5c, 0x2d, 0xdb, 0x4e, 0x65, 0x1b, 0xd9, 0xbe, 0xd2, 0x42, 0x5f, 0xdc, 0xec, 0x49, 0x99, 0x38, - 0x5d, 0xad, 0x96, 0x48, 0xef, 0x3c, 0xe9, 0x34, 0xa7, 0x60, 0xb4, 0xb9, 0xfd, 0x4c, 0x95, 0x3a, - 0x57, 0x19, 0xf1, 0xd9, 0xa9, 0xbf, 0x90, 0x3d, 0x43, 0xd4, 0x34, 0x82, 0x3b, 0x88, 0x6b, 0xad, - 0x93, 0x66, 0xf3, 0x5e, 0xc4, 0xdc, 0xdd, 0xab, 0xb4, 0x0e, 0xc8, 0x22, 0xed, 0x22, 0xa5, 0xda, - 0xd9, 0xbb, 0x29, 0x29, 0x6d, 0x5f, 0xe5, 0xcd, 0x66, 0x09, 0x4e, 0xe2, 0xc9, 0x3b, 0x15, 0xa7, - 0x59, 0xee, 0xb8, 0x76, 0xd9, 0x13, 0x51, 0xd8, 0xe2, 0x2c, 0x16, 0xcb, 0x3a, 0xce, 0xc9, 0xb6, - 0x5c, 0x94, 0xcc, 0x38, 0x11, 0x37, 0xcf, 0x93, 0x30, 0xd6, 0x71, 0xea, 0x0e, 0x72, 0x71, 0xd4, - 0x83, 0xc1, 0x34, 0x60, 0xb3, 0xff, 0x34, 0x18, 0x50, 0x74, 0x6f, 0xc9, 0xd4, 0xd4, 0x49, 0xac, - 0xa3, 0x9d, 0xee, 0xc6, 0x5c, 0x1e, 0x52, 0xb2, 0xef, 0x98, 0x43, 0x40, 0xbd, 0x07, 0xad, 0x6e, - 0x68, 0x45, 0x2d, 0xae, 0x2d, 0xe0, 0xb5, 0xf0, 0xdd, 0x25, 0xb4, 0xb0, 0xa1, 0x35, 0x79, 0x79, - 0x69, 0xb3, 0x54, 0xb6, 0xb6, 0x56, 0x37, 0x97, 0x56, 0x4a, 0x19, 0x63, 0x6a, 0x28, 0xf1, 0x83, - 0xc1, 0xcc, 0x7b, 0xd1, 0x7f, 0xd1, 0xdc, 0x37, 0xa2, 0x90, 0x56, 0xeb, 0x60, 0xf3, 0x21, 0xb8, - 0x8d, 0xdf, 0xb4, 0xba, 0x76, 0xbb, 0xfc, 0x7c, 0xbd, 0x45, 0xdc, 0x79, 0xbf, 0x42, 0x2b, 0x49, - 0x61, 0x89, 0x31, 0x46, 0x85, 0x6e, 0xef, 0x9f, 0x40, 0x34, 0x8b, 0x84, 0xc4, 0x5c, 0x86, 0x93, - 0x48, 0x65, 0xa8, 0xd6, 0x74, 0x6a, 0x95, 0x56, 0xad, 0xec, 0x6d, 0x17, 0x94, 0x2b, 0x55, 0xe4, - 0x07, 0x6e, 0x93, 0xae, 0x24, 0x82, 0xcb, 0x71, 0xa7, 0xb9, 0xc1, 0x88, 0xbd, 0x14, 0x3b, 0xcf, - 0x48, 0x35, 0xaf, 0x31, 0x82, 0xbc, 0x06, 0xd5, 0x5e, 0xfb, 0x95, 0x03, 0xe4, 0x36, 0xed, 0xd6, - 0x75, 0x52, 0xbd, 0x25, 0xac, 0x04, 0x6a, 0x28, 0xe1, 0xeb, 0x37, 0xcf, 0x06, 0xb2, 0x1e, 0xff, - 0xd1, 0x80, 0x94, 0x5c, 0xc1, 0xe1, 0x82, 0xb8, 0x4a, 0xd2, 0x7c, 0x84, 0x64, 0x81, 0xbb, 0x7a, - 0xd6, 0x7b, 0xd3, 0x45, 0x9c, 0xff, 0xf3, 0x03, 0xb4, 0xae, 0xb2, 0x28, 0x12, 0xaf, 0xbd, 0xd8, - 0xd7, 0x6c, 0x5a, 0xad, 0x27, 0x2c, 0x76, 0x85, 0x92, 0xdd, 0xc0, 0x33, 0x2e, 0xe1, 0x3d, 0x40, - 0x78, 0x9f, 0xe9, 0xcd, 0xfb, 0xda, 0x06, 0x61, 0x3e, 0x74, 0x6d, 0xa3, 0xbc, 0xba, 0x66, 0xad, - 0xcc, 0x2f, 0x5b, 0x0c, 0x6e, 0xde, 0x0e, 0xb1, 0x46, 0xe5, 0x3d, 0xd7, 0xd5, 0x95, 0x82, 0x34, - 0xf5, 0xab, 0x78, 0xc4, 0x01, 0x6f, 0x79, 0xa8, 0xf9, 0x99, 0x34, 0xbd, 0x89, 0xae, 0x7f, 0x0e, - 0xe2, 0x44, 0x5f, 0x26, 0x00, 0xd3, 0x58, 0xe6, 0x88, 0x99, 0x80, 0x58, 0x71, 0xcd, 0xc2, 0xee, - 0x8f, 0xfc, 0x9d, 0xb6, 0x96, 0xd7, 0x97, 0x4a, 0x45, 0x14, 0x01, 0xb9, 0x8b, 0x30, 0x40, 0x95, - 0x80, 0x43, 0x43, 0xa8, 0x01, 0x81, 0xe8, 0x25, 0xe3, 0x11, 0xe1, 0xbd, 0x5b, 0x2b, 0x85, 0x92, - 0x95, 0x89, 0xca, 0xe6, 0xfd, 0x5a, 0x04, 0x92, 0x52, 0x41, 0x85, 0x97, 0xf2, 0x4a, 0xa3, 0xd1, - 0x7c, 0xbe, 0x5c, 0x69, 0xd4, 0x51, 0x86, 0xa2, 0xf6, 0x01, 0xd2, 0x34, 0x8f, 0x5b, 0xfa, 0xd5, - 0xdf, 0x2f, 0xc4, 0x37, 0x3f, 0x15, 0x81, 0x8c, 0x5e, 0x8c, 0x69, 0x02, 0x46, 0xde, 0x52, 0x01, - 0x3f, 0x11, 0x81, 0xb4, 0x5a, 0x81, 0x69, 0xe2, 0x9d, 0x7e, 0x4b, 0xc5, 0xfb, 0x78, 0x04, 0x86, - 0x95, 0xba, 0xeb, 0x97, 0x4a, 0xba, 0x8f, 0x19, 0x70, 0xd4, 0x07, 0x87, 0x12, 0x10, 0x2d, 0x50, - 0x69, 0xcd, 0x7c, 0x7f, 0x3f, 0x63, 0x4d, 0xe3, 0xf5, 0x6f, 0xbd, 0xd2, 0x6a, 0xb3, 0x7a, 0x16, - 0xad, 0x97, 0xf5, 0x1a, 0x4a, 0xaa, 0xf5, 0x9d, 0x3a, 0x2a, 0xdf, 0xe8, 0x1d, 0x0b, 0xad, 0x5a, - 0x47, 0xbc, 0x76, 0x7a, 0x7b, 0x7c, 0x1f, 0x98, 0x07, 0x4d, 0xb7, 0xde, 0xae, 0x3f, 0x87, 0xb7, - 0xe7, 0xf8, 0x8d, 0x34, 0xae, 0x62, 0x63, 0x56, 0x86, 0xf7, 0x2c, 0x39, 0x6d, 0x41, 0xed, 0xd8, - 0xbb, 0x15, 0x8d, 0x1a, 0xa7, 0x21, 0xc3, 0xca, 0xf0, 0x1e, 0x41, 0x8d, 0x0a, 0xcd, 0x5a, 0xb3, - 0x83, 0x0b, 0x02, 0x4a, 0x87, 0xb3, 0x5e, 0xc4, 0x4a, 0xd2, 0x36, 0x41, 0xc2, 0x2a, 0x36, 0xef, - 0x0e, 0x3e, 0x65, 0x25, 0x69, 0x1b, 0x25, 0xb9, 0x07, 0x46, 0x2a, 0xbb, 0xbb, 0x2d, 0xcc, 0x9c, - 0x33, 0xa2, 0x65, 0x68, 0x5a, 0x34, 0x13, 0xc2, 0x89, 0x6b, 0x90, 0xe0, 0x7a, 0xc0, 0x0b, 0x0b, - 0xd6, 0x04, 0x5a, 0xf3, 0xc9, 0x3e, 0x4a, 0x14, 0xdf, 0xd4, 0x3b, 0xbc, 0x13, 0x0d, 0x5a, 0x77, - 0xcb, 0xde, 0x86, 0x5e, 0x14, 0xf5, 0x27, 0xac, 0x64, 0xdd, 0x15, 0x3b, 0x38, 0xb9, 0xcf, 0xa1, - 0xe5, 0x55, 0xdd, 0x90, 0x34, 0x17, 0x20, 0xd1, 0x68, 0x22, 0xff, 0xc0, 0x08, 0xba, 0x1b, 0x3e, - 0x19, 0xb2, 0x87, 0x39, 0xbd, 0xcc, 0xe8, 0x2d, 0x81, 0x9c, 0xf8, 0x9b, 0x08, 0x24, 0x78, 0x33, - 0x5a, 0x28, 0x62, 0x07, 0x95, 0xf6, 0x1e, 0x61, 0x17, 0x2f, 0x44, 0x33, 0x11, 0x8b, 0x5c, 0xe3, - 0x76, 0x54, 0xcd, 0x38, 0xc4, 0x05, 0x58, 0x3b, 0xbe, 0xc6, 0x76, 0x6d, 0xd8, 0x95, 0x1a, 0x29, - 0x70, 0x9b, 0xfb, 0xfb, 0xc8, 0x92, 0x2e, 0xb7, 0x2b, 0x6b, 0x2f, 0xb2, 0x66, 0xbc, 0x2f, 0xde, - 0x6e, 0x55, 0xea, 0x0d, 0x85, 0x36, 0x46, 0x68, 0x33, 0xbc, 0x43, 0x10, 0xe7, 0xe1, 0x76, 0xce, - 0xb7, 0x66, 0xb7, 0x2b, 0xa8, 0x78, 0xae, 0x79, 0xa0, 0x01, 0xb2, 0xdb, 0x75, 0x1b, 0x23, 0x58, - 0x60, 0xfd, 0x1c, 0x5b, 0x78, 0x12, 0x15, 0xb2, 0xcd, 0x7d, 0x5d, 0x13, 0x85, 0x8c, 0x76, 0xdf, - 0xe5, 0x3e, 0x16, 0x79, 0x37, 0x78, 0x45, 0xc5, 0x67, 0xa2, 0xc6, 0xd5, 0xf5, 0xc2, 0x17, 0xa2, - 0x13, 0x57, 0x29, 0x6e, 0x9d, 0x6b, 0xd0, 0xb2, 0x77, 0x1a, 0x76, 0x15, 0x6b, 0x07, 0x5e, 0xba, - 0x0b, 0xee, 0xdf, 0xad, 0xb7, 0xf7, 0x3a, 0xdb, 0xd3, 0x68, 0x84, 0x73, 0xbb, 0xcd, 0xdd, 0xa6, - 0x77, 0x9c, 0x81, 0xaf, 0xc8, 0x05, 0xf9, 0xc6, 0x8e, 0x34, 0x86, 0x44, 0xeb, 0x44, 0xe8, 0xf9, - 0x47, 0x7e, 0x15, 0x8e, 0x32, 0xe2, 0x32, 0xd9, 0x53, 0xa5, 0x25, 0xa8, 0xd9, 0xf3, 0x86, 0x3c, - 0xfb, 0xa5, 0xef, 0x93, 0x25, 0xc1, 0x1a, 0x65, 0x50, 0xdc, 0x47, 0x8b, 0xd4, 0xbc, 0x05, 0xc7, - 0x14, 0x7e, 0xd4, 0x87, 0xd1, 0x2d, 0x77, 0x6f, 0x8e, 0xdf, 0x60, 0x1c, 0x8f, 0x4a, 0x1c, 0x37, - 0x18, 0x34, 0x5f, 0x84, 0xe1, 0xc3, 0xf0, 0xfa, 0x26, 0xe3, 0x95, 0xb2, 0x65, 0x26, 0x57, 0x61, - 0x84, 0x30, 0xa9, 0x76, 0xdc, 0x76, 0x73, 0x9f, 0x24, 0x88, 0xde, 0x6c, 0xfe, 0xea, 0xfb, 0xd4, - 0xa9, 0xd2, 0x18, 0x56, 0x14, 0xa8, 0xfc, 0xe3, 0x30, 0x86, 0x5b, 0x48, 0x0c, 0xca, 0xdc, 0xc2, - 0xb7, 0x10, 0xb2, 0x7f, 0xfb, 0x7e, 0xea, 0x7b, 0x47, 0x05, 0x03, 0x89, 0xaf, 0x64, 0x89, 0x5d, - 0xbb, 0x8d, 0x72, 0x1b, 0xba, 0xff, 0x6b, 0x34, 0xcc, 0x9e, 0x67, 0x0c, 0xd9, 0x8f, 0xfe, 0x50, - 0xb5, 0xc4, 0x55, 0x8a, 0x9c, 0x6f, 0x34, 0xf2, 0x5b, 0x70, 0x9b, 0x8f, 0x65, 0xfb, 0xe0, 0xf9, - 0x31, 0xc6, 0x73, 0xac, 0xcb, 0xba, 0x98, 0xed, 0x3a, 0xf0, 0x76, 0x61, 0x8f, 0x3e, 0x78, 0x7e, - 0x9c, 0xf1, 0x34, 0x19, 0x96, 0x9b, 0x05, 0x73, 0xbc, 0x06, 0xa3, 0xe8, 0x4e, 0x7d, 0xbb, 0xe9, - 0xb2, 0xfb, 0xde, 0x3e, 0xd8, 0x7d, 0x82, 0xb1, 0x1b, 0x61, 0x40, 0x72, 0x17, 0x8c, 0x79, 0x3d, - 0x00, 0x89, 0x1d, 0x74, 0x03, 0xd4, 0x07, 0x8b, 0x4f, 0x32, 0x16, 0x83, 0x98, 0x1e, 0x43, 0xe7, - 0x21, 0xb5, 0xdb, 0x64, 0x69, 0x38, 0x1c, 0xfe, 0x29, 0x06, 0x4f, 0x72, 0x0c, 0x63, 0x71, 0xd0, - 0x3c, 0xe8, 0x34, 0x70, 0x8e, 0x0e, 0x67, 0xf1, 0x69, 0xce, 0x82, 0x63, 0x18, 0x8b, 0x43, 0xa8, - 0xf5, 0x45, 0xce, 0xc2, 0x95, 0xf4, 0xf9, 0x28, 0xde, 0xeb, 0x6d, 0x5c, 0x6f, 0x3a, 0xfd, 0x08, - 0xf1, 0x12, 0xe3, 0x00, 0x0c, 0x82, 0x19, 0x3c, 0x08, 0x43, 0xfd, 0x1a, 0xe2, 0xb3, 0x0c, 0x9e, - 0xb0, 0xb9, 0x05, 0x50, 0x9c, 0xf1, 0x24, 0x83, 0xcf, 0x56, 0xc2, 0x59, 0xfc, 0x2e, 0x63, 0x91, - 0x96, 0x60, 0x6c, 0x1a, 0x6d, 0xdb, 0x6d, 0xa3, 0x5b, 0xf5, 0x3e, 0x98, 0x7c, 0x8e, 0x4f, 0x83, - 0x41, 0x98, 0x2a, 0xb7, 0x6d, 0xa7, 0xba, 0xd7, 0x1f, 0x87, 0x97, 0xb9, 0x2a, 0x39, 0x06, 0xb3, - 0x40, 0x99, 0x67, 0xbf, 0xd2, 0x42, 0x37, 0xd7, 0x8d, 0xbe, 0xcc, 0xf1, 0x79, 0xc6, 0x23, 0x25, - 0x40, 0x4c, 0x23, 0x1d, 0xe7, 0x30, 0x6c, 0xbe, 0xc0, 0x35, 0x22, 0xc1, 0x58, 0xe8, 0xa1, 0x3b, - 0x53, 0x5c, 0x49, 0x1c, 0x86, 0xdb, 0xef, 0xf1, 0xd0, 0xa3, 0xd8, 0x15, 0x99, 0x23, 0xb2, 0xb4, - 0x8b, 0x6e, 0xc1, 0xfb, 0x61, 0xf3, 0xfb, 0xdc, 0xd2, 0x04, 0x80, 0xc1, 0x4f, 0xc1, 0xed, 0xbe, - 0xa9, 0xbe, 0x0f, 0x66, 0x7f, 0xc0, 0x98, 0x8d, 0xfb, 0xa4, 0x7b, 0x96, 0x12, 0x0e, 0xcb, 0xf2, - 0x0f, 0x79, 0x4a, 0xb0, 0x35, 0x5e, 0xeb, 0xb8, 0x8c, 0x75, 0x2b, 0x3b, 0x87, 0xd3, 0xda, 0x1f, - 0x71, 0xad, 0x51, 0xac, 0xa2, 0xb5, 0x4d, 0x18, 0x67, 0x1c, 0x0f, 0x67, 0xd7, 0x2f, 0xf2, 0xc4, - 0x4a, 0xd1, 0x5b, 0xaa, 0x75, 0x9f, 0x86, 0x09, 0xa1, 0x4e, 0x5e, 0x81, 0xb9, 0x65, 0xbc, 0x31, - 0x10, 0xce, 0xf9, 0x4b, 0x8c, 0x33, 0xcf, 0xf8, 0xa2, 0x84, 0x73, 0x57, 0x2a, 0x07, 0x98, 0xf9, - 0x93, 0x90, 0xe5, 0xcc, 0x3b, 0x0e, 0x2a, 0xf0, 0x9b, 0xbb, 0x0e, 0x32, 0x63, 0xad, 0x0f, 0xd6, - 0x5f, 0xd6, 0x4c, 0xb5, 0x25, 0xc1, 0x31, 0xe7, 0x25, 0xc8, 0x88, 0x7a, 0xa3, 0x5c, 0xdf, 0x3f, - 0x68, 0xa2, 0xd2, 0xb2, 0x37, 0xc7, 0x3f, 0xe6, 0x96, 0x12, 0xb8, 0x25, 0x02, 0xcb, 0x97, 0x20, - 0x4d, 0x2e, 0xfb, 0x75, 0xc9, 0xaf, 0x30, 0x46, 0xc3, 0x1e, 0x8a, 0x25, 0x0e, 0x54, 0x29, 0xa1, - 0x9a, 0xb7, 0x9f, 0xfc, 0xf7, 0x27, 0x3c, 0x71, 0x30, 0x08, 0xf5, 0xbe, 0x11, 0x6d, 0x25, 0x36, - 0xc3, 0x8e, 0x5f, 0xb3, 0xff, 0xf3, 0x75, 0x16, 0xb3, 0xea, 0x42, 0x9c, 0x5f, 0xc6, 0xea, 0x51, - 0x97, 0xcb, 0x70, 0x66, 0xef, 0x7f, 0x5d, 0x68, 0x48, 0x59, 0x2d, 0xf3, 0x8b, 0x30, 0xac, 0x2c, - 0x95, 0xe1, 0xac, 0xfe, 0x17, 0x63, 0x95, 0x92, 0x57, 0xca, 0xfc, 0x45, 0x88, 0xe1, 0x65, 0x2f, - 0x1c, 0xfe, 0xbf, 0x19, 0x9c, 0x90, 0xe7, 0x1f, 0x86, 0x04, 0x5f, 0xee, 0xc2, 0xa1, 0x1f, 0x60, - 0x50, 0x01, 0xc1, 0x70, 0xbe, 0xd4, 0x85, 0xc3, 0xff, 0x0f, 0x87, 0x73, 0x08, 0x86, 0xf7, 0xaf, - 0xc2, 0x57, 0xfe, 0x5f, 0x8c, 0xa5, 0x2b, 0xae, 0x3b, 0x7c, 0xe6, 0x43, 0xd7, 0xb8, 0x70, 0xf4, - 0x87, 0xd8, 0xe0, 0x1c, 0x91, 0xbf, 0x0c, 0xf1, 0x3e, 0x15, 0xfe, 0xff, 0x19, 0x94, 0xd2, 0xa3, - 0x15, 0x24, 0x29, 0xad, 0x6b, 0xe1, 0xf0, 0x5f, 0x61, 0x70, 0x19, 0x85, 0x45, 0x67, 0xeb, 0x5a, - 0x38, 0x83, 0x5f, 0xe5, 0xa2, 0x33, 0x04, 0x56, 0x1b, 0x5f, 0xd2, 0xc2, 0xd1, 0xbf, 0xc6, 0xb5, - 0xce, 0x21, 0x28, 0x9a, 0x86, 0x44, 0x9a, 0x0a, 0xc7, 0xff, 0x3a, 0xc3, 0x7b, 0x18, 0xac, 0x01, - 0x29, 0x4d, 0x86, 0xb3, 0xf8, 0x0d, 0xae, 0x01, 0x09, 0x85, 0xc3, 0x48, 0x5f, 0xfa, 0xc2, 0x39, - 0x7d, 0x98, 0x87, 0x91, 0xb6, 0xf2, 0x61, 0x6b, 0x92, 0x6c, 0x11, 0xce, 0xe2, 0x37, 0xb9, 0x35, - 0x09, 0x3d, 0x16, 0x43, 0x5f, 0x4b, 0xc2, 0x79, 0xfc, 0x36, 0x17, 0x43, 0x5b, 0x4a, 0xd0, 0xca, - 0x64, 0x76, 0xaf, 0x23, 0xe1, 0xfc, 0x3e, 0xc2, 0xf8, 0x8d, 0x76, 0x2d, 0x23, 0xf9, 0x27, 0x60, - 0xdc, 0x7f, 0x0d, 0x09, 0xe7, 0xfa, 0xd1, 0xd7, 0xb5, 0xaa, 0x5f, 0x5e, 0x42, 0xd0, 0x92, 0x37, - 0xe6, 0xb7, 0x7e, 0x84, 0xb3, 0xfd, 0xd8, 0xeb, 0xea, 0x8d, 0x9d, 0xbc, 0x7c, 0xa0, 0x0a, 0x0d, - 0xbc, 0xd4, 0x1d, 0xce, 0xeb, 0x13, 0x8c, 0x97, 0x04, 0xc2, 0xa1, 0xc1, 0x32, 0x77, 0x38, 0xfe, - 0x93, 0x3c, 0x34, 0x18, 0x02, 0x81, 0x13, 0x4e, 0xa7, 0xd1, 0xc0, 0xce, 0x61, 0xf6, 0x7e, 0xa4, - 0x21, 0xfb, 0xcf, 0x3f, 0x63, 0x81, 0xc1, 0x01, 0x28, 0x87, 0xc6, 0xed, 0xfd, 0x6d, 0xa4, 0x83, - 0x10, 0xe4, 0xbf, 0xfc, 0x8c, 0x27, 0x04, 0x4c, 0x8d, 0xe2, 0x09, 0xe8, 0x4d, 0x23, 0xd9, 0xc3, - 0x0e, 0xc1, 0xfe, 0xeb, 0xcf, 0xd8, 0x31, 0xab, 0x07, 0xf1, 0x18, 0xd0, 0x43, 0xdb, 0xde, 0x0c, - 0x7e, 0xa8, 0x32, 0x20, 0x37, 0x9a, 0x0f, 0xc0, 0x20, 0x7e, 0xb2, 0xa3, 0x5d, 0xd9, 0x0d, 0x43, - 0xff, 0x1b, 0x43, 0x73, 0x7a, 0xac, 0xb0, 0xfd, 0x66, 0xcb, 0x46, 0x5f, 0xdd, 0x30, 0xec, 0xbf, - 0x33, 0xac, 0x00, 0x60, 0x70, 0xb5, 0xe2, 0xb6, 0xfb, 0x99, 0xf7, 0x7f, 0x70, 0x30, 0x07, 0x60, - 0xa1, 0xf1, 0xf7, 0x67, 0xed, 0xeb, 0x61, 0xd8, 0x1f, 0x71, 0xa1, 0x19, 0x3d, 0x4a, 0x80, 0x43, - 0xf8, 0x2b, 0x7d, 0xf4, 0x20, 0x04, 0xfc, 0x63, 0x06, 0xf6, 0x10, 0x85, 0xd3, 0xfe, 0x5b, 0x3b, - 0x70, 0xb5, 0x79, 0xb5, 0x49, 0x37, 0x75, 0xe0, 0x9b, 0x75, 0xb8, 0x1c, 0xb8, 0x47, 0x83, 0xf3, - 0xf0, 0x39, 0xd4, 0x8c, 0x56, 0xdf, 0x73, 0xdb, 0xcd, 0xf6, 0xde, 0xb9, 0xf6, 0x9e, 0x8d, 0xdb, - 0xd8, 0x6e, 0x4d, 0x0c, 0x7f, 0x9f, 0x38, 0xdc, 0x16, 0x0f, 0x39, 0xaf, 0x59, 0xad, 0x63, 0xa9, - 0x57, 0xc9, 0x66, 0xa3, 0x79, 0x1c, 0x06, 0xc8, 0x3c, 0xce, 0x93, 0xbd, 0xf0, 0x48, 0x21, 0x76, - 0xe3, 0xb5, 0x93, 0x47, 0xac, 0x01, 0xf2, 0xdc, 0xde, 0x79, 0xd1, 0x3b, 0x4b, 0xb6, 0xfa, 0xa3, - 0x4a, 0xef, 0xac, 0xe8, 0xbd, 0x40, 0x1f, 0x8a, 0x52, 0x7a, 0x2f, 0x88, 0xde, 0x39, 0xb2, 0x6f, - 0x66, 0x28, 0xbd, 0x73, 0xa2, 0xf7, 0x22, 0xd9, 0xfe, 0x1c, 0x56, 0x7a, 0x2f, 0x8a, 0xde, 0x4b, - 0x64, 0xd3, 0x33, 0xa6, 0xf4, 0x5e, 0x12, 0xbd, 0x97, 0xc9, 0x7e, 0xe7, 0xa8, 0xd2, 0x7b, 0x59, - 0xf4, 0x5e, 0x21, 0xfb, 0x9c, 0xa6, 0xd2, 0x7b, 0x45, 0xf4, 0x3e, 0x40, 0x8e, 0xa9, 0x07, 0x95, - 0xde, 0x07, 0xcc, 0x13, 0x30, 0x48, 0xb5, 0x31, 0x43, 0x8e, 0x76, 0x46, 0x58, 0xf7, 0x20, 0x55, - 0xc7, 0x8c, 0xd7, 0x7f, 0x9e, 0x1c, 0x49, 0x0f, 0xa8, 0xfd, 0xe7, 0xbd, 0xfe, 0x59, 0xf2, 0x98, - 0x65, 0x46, 0xed, 0x9f, 0xf5, 0xfa, 0x2f, 0x64, 0x87, 0x71, 0x6c, 0xab, 0xfd, 0x17, 0xbc, 0xfe, - 0xb9, 0x6c, 0x1a, 0xbb, 0x93, 0xda, 0x3f, 0xe7, 0xf5, 0x5f, 0xcc, 0x8e, 0xe0, 0xad, 0x5e, 0xb5, - 0xff, 0x62, 0xee, 0x7d, 0xc4, 0xbc, 0x8e, 0x67, 0xde, 0x71, 0xd5, 0xbc, 0xc2, 0xb0, 0xe3, 0xaa, - 0x61, 0x85, 0x49, 0xc7, 0x55, 0x93, 0x0a, 0x63, 0x8e, 0xab, 0xc6, 0x14, 0x66, 0x1c, 0x57, 0xcd, - 0x28, 0x0c, 0x38, 0xae, 0x1a, 0x50, 0x98, 0x6e, 0x5c, 0x35, 0x9d, 0x30, 0xda, 0xb8, 0x6a, 0x34, - 0x61, 0xae, 0x71, 0xd5, 0x5c, 0xc2, 0x50, 0x59, 0xcd, 0x50, 0x9e, 0x89, 0xb2, 0x9a, 0x89, 0x3c, - 0xe3, 0x64, 0x35, 0xe3, 0x78, 0x66, 0xc9, 0x6a, 0x66, 0xf1, 0x0c, 0x92, 0xd5, 0x0c, 0xe2, 0x99, - 0x22, 0xab, 0x99, 0xc2, 0x33, 0x02, 0x8b, 0x31, 0xcb, 0x3e, 0xf0, 0x89, 0x31, 0xa3, 0x67, 0x8c, - 0x19, 0x3d, 0x63, 0xcc, 0xe8, 0x19, 0x63, 0x46, 0xcf, 0x18, 0x33, 0x7a, 0xc6, 0x98, 0xd1, 0x33, - 0xc6, 0x8c, 0x9e, 0x31, 0x66, 0xf4, 0x8c, 0x31, 0xa3, 0x77, 0x8c, 0x19, 0x21, 0x31, 0x66, 0x84, - 0xc4, 0x98, 0x11, 0x12, 0x63, 0x46, 0x48, 0x8c, 0x19, 0x21, 0x31, 0x66, 0x04, 0xc6, 0x98, 0x67, - 0xde, 0x71, 0xd5, 0xbc, 0xbe, 0x31, 0x66, 0x04, 0xc4, 0x98, 0x11, 0x10, 0x63, 0x46, 0x40, 0x8c, - 0x19, 0x01, 0x31, 0x66, 0x04, 0xc4, 0x98, 0x11, 0x10, 0x63, 0x46, 0x40, 0x8c, 0x19, 0x41, 0x31, - 0x66, 0x04, 0xc6, 0x98, 0x11, 0x18, 0x63, 0x46, 0x60, 0x8c, 0x19, 0x81, 0x31, 0x66, 0x04, 0xc6, - 0x98, 0x21, 0xc7, 0xd8, 0x9f, 0x19, 0x60, 0xd2, 0x18, 0x5b, 0x27, 0x0f, 0x07, 0x30, 0x53, 0x9c, - 0xd0, 0x22, 0x6d, 0x00, 0x9b, 0x2e, 0xe3, 0x99, 0xe4, 0x84, 0x16, 0x6b, 0x6a, 0xff, 0xac, 0xe8, - 0xe7, 0xd1, 0xa6, 0xf6, 0x5f, 0x10, 0xfd, 0x3c, 0xde, 0xd4, 0xfe, 0x39, 0xd1, 0xcf, 0x23, 0x4e, - 0xed, 0xbf, 0x28, 0xfa, 0x79, 0xcc, 0xa9, 0xfd, 0x97, 0x44, 0x3f, 0x8f, 0x3a, 0xb5, 0xff, 0xb2, - 0xe8, 0xe7, 0x71, 0xa7, 0xf6, 0x5f, 0x11, 0xfd, 0x3c, 0xf2, 0xd4, 0xfe, 0x07, 0xcc, 0x53, 0x7a, - 0xec, 0x71, 0x02, 0x61, 0xda, 0x53, 0x7a, 0xf4, 0x69, 0x14, 0xe7, 0x3d, 0x0a, 0x1e, 0x7f, 0x1a, - 0xc5, 0xac, 0x47, 0xc1, 0x23, 0x50, 0xa3, 0xb8, 0x90, 0xfb, 0x20, 0x31, 0x9f, 0xa3, 0x9b, 0x6f, - 0x42, 0x33, 0x5f, 0x54, 0x32, 0xdd, 0x84, 0x66, 0xba, 0xa8, 0x64, 0xb6, 0x09, 0xcd, 0x6c, 0x51, - 0xc9, 0x64, 0x13, 0x9a, 0xc9, 0xa2, 0x92, 0xb9, 0x26, 0x34, 0x73, 0x45, 0x25, 0x53, 0x4d, 0x68, - 0xa6, 0x8a, 0x4a, 0x66, 0x9a, 0xd0, 0xcc, 0x14, 0x95, 0x4c, 0x34, 0xa1, 0x99, 0x28, 0x2a, 0x99, - 0x67, 0x42, 0x33, 0x4f, 0x54, 0x32, 0xcd, 0x71, 0xdd, 0x34, 0x51, 0xd9, 0x2c, 0xc7, 0x75, 0xb3, - 0x44, 0x65, 0x93, 0x1c, 0xd7, 0x4d, 0x12, 0x95, 0xcd, 0x71, 0x5c, 0x37, 0x47, 0x54, 0x36, 0xc5, - 0xcf, 0xa3, 0xbc, 0x22, 0xdc, 0x68, 0xb7, 0x3a, 0xd5, 0xf6, 0x2d, 0x55, 0x84, 0x33, 0x4a, 0xf9, - 0x90, 0x9c, 0x35, 0xa7, 0x49, 0xc1, 0x2a, 0x57, 0x9c, 0xda, 0x0a, 0x36, 0xa3, 0x14, 0x16, 0x12, - 0xc2, 0xf1, 0x47, 0xcc, 0xdd, 0x52, 0x6d, 0x38, 0xa3, 0x94, 0x19, 0xe1, 0xf2, 0x5d, 0x79, 0xd3, - 0x2b, 0xb6, 0x57, 0xa2, 0xbc, 0x62, 0x63, 0xea, 0x3f, 0x6c, 0xc5, 0x36, 0x15, 0xae, 0x72, 0xa1, - 0xec, 0xa9, 0x70, 0x65, 0x77, 0xad, 0x3a, 0xfd, 0x56, 0x70, 0x53, 0xe1, 0xaa, 0x15, 0x4a, 0x7d, - 0x63, 0xeb, 0x2d, 0xe6, 0xc1, 0x28, 0x99, 0xf8, 0x78, 0xf0, 0x61, 0xeb, 0xad, 0x19, 0x25, 0x95, - 0x1c, 0xd6, 0x83, 0x8d, 0x43, 0x7b, 0xf0, 0x61, 0x2b, 0xaf, 0x19, 0x25, 0xbd, 0x1c, 0xda, 0x83, - 0xdf, 0x84, 0x7a, 0x88, 0x79, 0xb0, 0xa7, 0xfe, 0xc3, 0xd6, 0x43, 0x53, 0xe1, 0x2a, 0xf7, 0xf5, - 0x60, 0xe3, 0x10, 0x1e, 0xdc, 0x4f, 0x7d, 0x34, 0x15, 0xae, 0x5a, 0x7f, 0x0f, 0xbe, 0xe5, 0x6a, - 0xe6, 0xd3, 0x11, 0x18, 0x45, 0xc3, 0x94, 0xf0, 0x3e, 0x4f, 0xcd, 0xae, 0x31, 0x3d, 0xce, 0x28, - 0x99, 0x20, 0xc0, 0xd4, 0xaf, 0xbe, 0x76, 0xd2, 0xd3, 0xf0, 0x45, 0x48, 0x50, 0x0d, 0xcf, 0xcc, - 0x64, 0x6f, 0x44, 0x42, 0x32, 0x5c, 0x62, 0x87, 0x91, 0x9a, 0xa7, 0x39, 0x0c, 0xad, 0x3d, 0xdf, - 0x8a, 0x48, 0x59, 0x8e, 0x91, 0x9c, 0x9f, 0xc9, 0x7d, 0x98, 0x48, 0xe8, 0xdc, 0xb2, 0x84, 0xe7, - 0xfa, 0x92, 0x50, 0x92, 0xed, 0x8e, 0x2e, 0xd9, 0x24, 0xa9, 0x3a, 0x30, 0x82, 0x60, 0xab, 0xe4, - 0x07, 0x7e, 0xfd, 0x88, 0x44, 0x69, 0xb4, 0x7c, 0x30, 0xa3, 0xb8, 0xa5, 0x8c, 0x10, 0x2e, 0xad, - 0xe6, 0x88, 0x5c, 0x1d, 0x0f, 0xeb, 0x28, 0xc3, 0x4e, 0x05, 0x0d, 0xeb, 0x65, 0x76, 0x31, 0xe0, - 0x54, 0xd0, 0x80, 0x5e, 0x0c, 0x89, 0xa1, 0x5e, 0xe0, 0x8b, 0x33, 0x7d, 0xde, 0x03, 0x25, 0x87, - 0xe8, 0x12, 0x7d, 0x6c, 0x31, 0x55, 0x48, 0x61, 0xa1, 0xfe, 0xe1, 0xb5, 0x93, 0xb1, 0xad, 0x0e, - 0x92, 0x35, 0x5a, 0xaf, 0x99, 0xd7, 0x20, 0xfe, 0x38, 0xfb, 0x7d, 0x0d, 0x26, 0x98, 0x63, 0x04, - 0xf7, 0x85, 0x6c, 0x31, 0x11, 0xd6, 0xd3, 0x5b, 0x75, 0xa7, 0x7d, 0x7e, 0xf6, 0x0a, 0xfb, 0xa9, - 0x4d, 0xee, 0xbf, 0x02, 0xd0, 0x31, 0x17, 0xf0, 0xef, 0x03, 0x56, 0x39, 0x67, 0x3a, 0xf4, 0x15, - 0xc4, 0x75, 0xae, 0x1f, 0xae, 0xf7, 0xd7, 0x10, 0xfa, 0x7e, 0xbc, 0x11, 0x37, 0x5d, 0xb8, 0x8e, - 0xda, 0x39, 0xf7, 0x03, 0xbe, 0xea, 0xb1, 0x79, 0x65, 0xa5, 0x79, 0x25, 0x94, 0x39, 0x2d, 0xaa, - 0x73, 0x9a, 0xb9, 0xd9, 0xf9, 0xbc, 0xc0, 0x17, 0x09, 0x4d, 0x93, 0x46, 0x98, 0x26, 0x8d, 0x5b, - 0xd5, 0xe4, 0x01, 0xcf, 0x8f, 0xda, 0x5c, 0x8d, 0x5e, 0x73, 0x35, 0x6e, 0x65, 0xae, 0x3f, 0xa1, - 0xd1, 0x2a, 0xe2, 0x69, 0xcb, 0xa1, 0x8f, 0xcb, 0xfd, 0x72, 0xed, 0x05, 0xbd, 0xa1, 0x55, 0x40, - 0x3e, 0x76, 0xe3, 0xc5, 0x93, 0x91, 0xdc, 0xa7, 0xa3, 0x7c, 0xe6, 0x34, 0x90, 0x6e, 0x6e, 0xe6, - 0xbf, 0x2c, 0x35, 0xd5, 0x9b, 0xa1, 0xa1, 0x4f, 0x45, 0x60, 0xbc, 0x2b, 0x93, 0x53, 0x35, 0xbd, - 0xb1, 0xe9, 0xdc, 0x39, 0x6c, 0x3a, 0x67, 0x02, 0x7e, 0x25, 0x02, 0x63, 0x5a, 0x7a, 0xa5, 0xe2, - 0x9d, 0xd3, 0xc4, 0xbb, 0xad, 0x7b, 0x24, 0x42, 0x28, 0x49, 0x27, 0x9b, 0x57, 0x03, 0x48, 0x9c, - 0x85, 0xdd, 0xe7, 0x34, 0xbb, 0x1f, 0x17, 0x00, 0x1f, 0x75, 0x71, 0x0f, 0x60, 0x62, 0x37, 0x21, - 0xb6, 0xd9, 0xb2, 0xf1, 0x16, 0x44, 0x74, 0xad, 0xc5, 0x24, 0x4c, 0x53, 0xfc, 0x5a, 0xab, 0xd0, - 0xaa, 0x38, 0xd5, 0x3d, 0x2b, 0xda, 0x6c, 0xa1, 0xc5, 0xd6, 0x98, 0x67, 0x3f, 0x44, 0x4e, 0xce, - 0x8e, 0x50, 0x02, 0xd4, 0xc0, 0x28, 0x8c, 0x8a, 0x53, 0x43, 0x2c, 0x62, 0xcb, 0x76, 0x65, 0x87, - 0x09, 0x01, 0x94, 0x06, 0xb7, 0x58, 0xb1, 0x06, 0xfa, 0x97, 0x0d, 0xf8, 0x24, 0x24, 0x38, 0x63, - 0xf3, 0x0c, 0x46, 0xec, 0xb4, 0xd9, 0xb0, 0x0c, 0x81, 0xc5, 0x61, 0x2b, 0x17, 0xc2, 0xed, 0xb4, - 0xcd, 0xb3, 0x10, 0xb7, 0xea, 0xbb, 0x7b, 0x6d, 0x36, 0x78, 0x37, 0x59, 0xbc, 0x85, 0xbb, 0x73, - 0x4f, 0xc1, 0x90, 0x90, 0xe8, 0x0d, 0x66, 0xbd, 0x40, 0xa7, 0x86, 0xee, 0x84, 0xa5, 0xf5, 0x84, - 0xef, 0x5b, 0xb2, 0x1f, 0x79, 0x9e, 0x82, 0x04, 0x52, 0xb3, 0x97, 0xf4, 0x79, 0x45, 0x8a, 0x4f, - 0xe4, 0x49, 0x6b, 0xee, 0x7d, 0x11, 0x48, 0x2c, 0xd8, 0xf6, 0x01, 0x51, 0xf8, 0xdd, 0x10, 0x5b, - 0x68, 0x3e, 0xef, 0x30, 0x01, 0x47, 0x99, 0x46, 0x71, 0x37, 0xd3, 0x69, 0xac, 0x86, 0xba, 0x11, - 0x99, 0xa4, 0xf7, 0xa3, 0x42, 0xef, 0x12, 0x1d, 0xd1, 0x7d, 0x4e, 0xd1, 0x3d, 0x33, 0x20, 0x26, - 0xea, 0xd2, 0xff, 0x65, 0x48, 0x4a, 0xa3, 0x98, 0x93, 0x4c, 0x8c, 0xa8, 0x0e, 0x94, 0x75, 0x85, - 0x25, 0xc9, 0xd9, 0x30, 0xac, 0x0c, 0x8c, 0xa1, 0x92, 0x8a, 0x03, 0xa0, 0x44, 0xcd, 0x53, 0xaa, - 0x9a, 0xfd, 0x49, 0x99, 0xaa, 0x67, 0xa8, 0x8e, 0x88, 0xba, 0xcf, 0x50, 0xe7, 0x0c, 0x36, 0x62, - 0x1b, 0x7d, 0xcf, 0xc5, 0xc1, 0x58, 0xad, 0x37, 0x72, 0x0f, 0x03, 0xd0, 0x90, 0xc7, 0x0f, 0x57, - 0x69, 0x51, 0x97, 0xe6, 0x0a, 0xde, 0xdc, 0xb3, 0x37, 0xd1, 0x5f, 0x4c, 0xa2, 0xd6, 0x53, 0x38, - 0xc1, 0x00, 0x0d, 0x31, 0x82, 0xbf, 0x37, 0x14, 0xef, 0x5b, 0x89, 0x61, 0xd2, 0x2c, 0x25, 0x7d, - 0xca, 0x6e, 0xcf, 0x3b, 0xcd, 0xf6, 0x9e, 0xdd, 0xd2, 0x10, 0xb3, 0xe6, 0x05, 0x25, 0x60, 0xd3, - 0xb3, 0x77, 0x08, 0x44, 0x20, 0xe8, 0x42, 0xee, 0x8b, 0x44, 0x40, 0x5c, 0x0a, 0x74, 0x4d, 0xd0, - 0xe8, 0x63, 0x82, 0xe6, 0x25, 0xa5, 0x7e, 0xeb, 0x21, 0xa6, 0x76, 0x6b, 0xf9, 0x80, 0x72, 0x9f, - 0xd3, 0x5b, 0x58, 0xf5, 0x1e, 0x93, 0xeb, 0x94, 0x8b, 0x7c, 0x6f, 0xa8, 0xc8, 0x01, 0xd5, 0xed, - 0x61, 0x75, 0x6a, 0xf4, 0xab, 0xd3, 0xaf, 0x89, 0x8a, 0x83, 0xfe, 0x16, 0x9c, 0xbc, 0x41, 0xc0, - 0xbc, 0x2f, 0xd4, 0xf6, 0xf9, 0x48, 0x51, 0x88, 0x3a, 0xd7, 0xaf, 0xf9, 0xf3, 0xd1, 0x42, 0x41, - 0x88, 0x7b, 0xf9, 0x10, 0x2e, 0x90, 0x8f, 0x16, 0x8b, 0x22, 0x6d, 0x27, 0x3e, 0x88, 0xa2, 0xf8, - 0xe5, 0x17, 0x4f, 0x1e, 0xc9, 0x7d, 0x1e, 0x09, 0xcf, 0x28, 0x25, 0xc7, 0xbd, 0x5f, 0x13, 0xfe, - 0x18, 0xcf, 0x19, 0x7e, 0x1a, 0xf8, 0x85, 0x39, 0xef, 0x37, 0x22, 0x90, 0xed, 0x92, 0x95, 0xeb, - 0x7b, 0xa6, 0x2f, 0x91, 0xf3, 0x91, 0xd2, 0x5b, 0xaf, 0xf3, 0xa7, 0x20, 0xbe, 0x59, 0xdf, 0xb7, - 0x5b, 0x78, 0x25, 0xc0, 0x5f, 0xa8, 0xc8, 0xfc, 0x30, 0x27, 0xde, 0xc6, 0x4d, 0xbc, 0x8f, 0x0a, - 0xa7, 0xf4, 0xe1, 0xf3, 0x84, 0xd8, 0x42, 0xa5, 0x5d, 0x21, 0x12, 0xa4, 0x44, 0x7e, 0x45, 0x2d, - 0xb9, 0x0b, 0x90, 0x5a, 0xb9, 0x4e, 0x9e, 0x42, 0xa9, 0x91, 0x07, 0x34, 0xd4, 0xea, 0x8f, 0xd7, - 0xab, 0xe7, 0xa7, 0xe2, 0x89, 0x5a, 0xe6, 0x46, 0x24, 0x1f, 0x23, 0xf2, 0x3c, 0x07, 0xe9, 0x35, - 0x2c, 0x36, 0xc1, 0x11, 0xd8, 0x29, 0x88, 0xac, 0xa8, 0x85, 0x90, 0xcc, 0xd5, 0x8a, 0xec, 0x6b, - 0xe5, 0xa3, 0x21, 0xd4, 0xa3, 0x95, 0x6d, 0x86, 0x28, 0xdb, 0xa6, 0x62, 0x89, 0x74, 0x66, 0x14, - 0xfd, 0x0b, 0x99, 0x61, 0x36, 0xee, 0x5f, 0x1b, 0x90, 0xa1, 0xa5, 0x0e, 0x32, 0x62, 0xdd, 0xa9, - 0xb7, 0xbb, 0xeb, 0x55, 0x21, 0xb1, 0xf9, 0x28, 0x0c, 0x61, 0x95, 0x2e, 0xb2, 0x17, 0xf1, 0x60, - 0xd5, 0x9f, 0x66, 0x25, 0x8a, 0xc6, 0x82, 0x35, 0x10, 0xd7, 0x21, 0xef, 0xbc, 0x21, 0x18, 0x74, - 0x83, 0x61, 0xac, 0xae, 0xae, 0xb0, 0xc5, 0x6d, 0xae, 0x27, 0x94, 0x3d, 0x02, 0xc3, 0xae, 0x58, - 0x9b, 0xbb, 0x6b, 0x19, 0xce, 0xea, 0x0a, 0x72, 0x9b, 0x28, 0x62, 0x43, 0x0b, 0xde, 0x33, 0xfd, - 0xb0, 0xb1, 0xa2, 0xce, 0xca, 0xc4, 0x9f, 0x47, 0x60, 0x58, 0x69, 0x45, 0xab, 0x6d, 0x8a, 0x36, - 0x48, 0xd3, 0x1d, 0xb0, 0x52, 0x8e, 0xd4, 0xc6, 0x65, 0x8e, 0xde, 0xa2, 0xcc, 0x13, 0xf3, 0xe8, - 0xae, 0x5d, 0x6d, 0x37, 0xa7, 0xc1, 0x94, 0x9b, 0x98, 0x10, 0xf4, 0x25, 0x26, 0xa6, 0xd3, 0xd5, - 0x93, 0xbb, 0x13, 0x65, 0x61, 0xa1, 0x57, 0xf1, 0xee, 0x8d, 0xd5, 0xd2, 0x06, 0x7e, 0x6d, 0x46, - 0x24, 0xf7, 0xd5, 0x08, 0x24, 0x59, 0xd9, 0x5a, 0x6d, 0x1e, 0xd8, 0x66, 0x01, 0x22, 0xf3, 0xcc, - 0x83, 0x6e, 0x4e, 0xee, 0x48, 0x05, 0xad, 0x4e, 0x91, 0x42, 0xff, 0xa6, 0x8e, 0x6c, 0x9b, 0xb3, - 0x10, 0x29, 0x32, 0x03, 0xf7, 0x67, 0x99, 0x48, 0x35, 0xf7, 0x63, 0x03, 0x8e, 0xca, 0x65, 0x34, - 0xcf, 0x27, 0xa7, 0xd5, 0xfb, 0xa6, 0xfc, 0xd0, 0xf9, 0xd9, 0x0b, 0x73, 0xd3, 0xf8, 0x1f, 0xe1, - 0x92, 0xa7, 0xd5, 0x5b, 0xa8, 0x6e, 0x92, 0xae, 0xc7, 0x44, 0xf2, 0x31, 0xa9, 0xb7, 0xeb, 0x31, - 0x11, 0xa5, 0xb7, 0xeb, 0x31, 0x11, 0xa5, 0xb7, 0xeb, 0x31, 0x11, 0xa5, 0xb7, 0xeb, 0x28, 0x40, - 0xe9, 0xed, 0x7a, 0x4c, 0x44, 0xe9, 0xed, 0x7a, 0x4c, 0x44, 0xe9, 0xed, 0x7e, 0x4c, 0x84, 0x75, - 0x07, 0x3e, 0x26, 0xa2, 0xf6, 0x77, 0x3f, 0x26, 0xa2, 0xf6, 0x77, 0x3f, 0x26, 0x92, 0x47, 0xf5, - 0x59, 0xc7, 0x0e, 0x3e, 0x74, 0x50, 0xf1, 0xbd, 0xee, 0x01, 0xbd, 0x04, 0xbc, 0x06, 0x23, 0x74, - 0x3f, 0xa2, 0x88, 0x9f, 0xd0, 0xaa, 0x3b, 0x28, 0x15, 0x3f, 0x04, 0x29, 0xda, 0x44, 0xef, 0x72, - 0xfc, 0xee, 0x02, 0x69, 0x3f, 0x4b, 0xb7, 0xa9, 0xaa, 0x44, 0x9d, 0xfb, 0x79, 0x0c, 0xc6, 0x69, - 0x37, 0xfe, 0x19, 0xa1, 0xf2, 0x90, 0xd1, 0x59, 0xed, 0x48, 0x29, 0x8d, 0xe1, 0xdf, 0x7d, 0xed, - 0x24, 0x6d, 0x9d, 0x17, 0xce, 0x74, 0x56, 0x3b, 0x5c, 0x52, 0xe9, 0xbc, 0xf5, 0xe7, 0xac, 0xf6, - 0xe0, 0x91, 0x4a, 0x27, 0x96, 0x1b, 0x41, 0xc7, 0x1f, 0x41, 0x52, 0xe9, 0x16, 0x84, 0x97, 0x9d, - 0xd5, 0x1e, 0x46, 0x52, 0xe9, 0x4a, 0xc2, 0xdf, 0xce, 0x6a, 0x47, 0x4f, 0x2a, 0xdd, 0xa2, 0xf0, - 0xbc, 0xb3, 0xda, 0x21, 0x94, 0x4a, 0x77, 0x55, 0xf8, 0xe0, 0x59, 0xed, 0x51, 0x25, 0x95, 0xee, - 0x31, 0xe1, 0x8d, 0x67, 0xb5, 0x87, 0x96, 0x54, 0xba, 0x25, 0xe1, 0x97, 0x93, 0xfa, 0xe3, 0x4b, - 0x2a, 0xe1, 0x35, 0xcf, 0x43, 0x27, 0xf5, 0x07, 0x99, 0x54, 0xca, 0x77, 0x7a, 0xbe, 0x3a, 0xa9, - 0x3f, 0xd2, 0xa4, 0x52, 0x2e, 0x7b, 0x5e, 0x3b, 0xa9, 0x1f, 0x95, 0xa9, 0x94, 0x2b, 0x9e, 0xff, - 0x4e, 0xea, 0x87, 0x66, 0x2a, 0xe5, 0xaa, 0xe7, 0xc9, 0x93, 0xfa, 0xf1, 0x99, 0x4a, 0xb9, 0xe6, - 0xed, 0xa1, 0x7f, 0x5d, 0x73, 0x3f, 0xe9, 0x21, 0xa8, 0x9c, 0xe6, 0x7e, 0xe0, 0xe3, 0x7a, 0x39, - 0xcd, 0xf5, 0xc0, 0xc7, 0xed, 0x72, 0x9a, 0xdb, 0x81, 0x8f, 0xcb, 0xe5, 0x34, 0x97, 0x03, 0x1f, - 0x77, 0xcb, 0x69, 0xee, 0x06, 0x3e, 0xae, 0x96, 0xd3, 0x5c, 0x0d, 0x7c, 0xdc, 0x2c, 0xa7, 0xb9, - 0x19, 0xf8, 0xb8, 0x58, 0x4e, 0x73, 0x31, 0xf0, 0x71, 0xaf, 0x9c, 0xe6, 0x5e, 0xe0, 0xe3, 0x5a, - 0x67, 0x74, 0xd7, 0x02, 0x3f, 0xb7, 0x3a, 0xa3, 0xbb, 0x15, 0xf8, 0xb9, 0xd4, 0x5d, 0xba, 0x4b, - 0x0d, 0x21, 0xaa, 0x38, 0x6e, 0x92, 0xbc, 0xe9, 0x8c, 0xee, 0x4d, 0xe0, 0xe7, 0x49, 0x67, 0x74, - 0x4f, 0x02, 0x3f, 0x2f, 0x3a, 0xa3, 0x7b, 0x11, 0xf8, 0x79, 0xd0, 0x2b, 0xba, 0x07, 0x79, 0x8f, - 0xf8, 0xe4, 0xb4, 0x13, 0xc5, 0x30, 0x0f, 0x32, 0xfa, 0xf0, 0x20, 0xa3, 0x0f, 0x0f, 0x32, 0xfa, - 0xf0, 0x20, 0xa3, 0x0f, 0x0f, 0x32, 0xfa, 0xf0, 0x20, 0xa3, 0x0f, 0x0f, 0x32, 0xfa, 0xf0, 0x20, - 0xa3, 0x1f, 0x0f, 0x32, 0xfa, 0xf2, 0x20, 0x23, 0xc8, 0x83, 0xce, 0xe8, 0x0f, 0x3c, 0x80, 0x5f, - 0x42, 0x3a, 0xa3, 0x9f, 0x7c, 0x86, 0xbb, 0x90, 0xd1, 0x97, 0x0b, 0x19, 0x41, 0x2e, 0xf4, 0x75, - 0x54, 0x48, 0x29, 0x2e, 0xc4, 0x8e, 0x87, 0xde, 0xa8, 0x0c, 0x74, 0xa9, 0x8f, 0xe7, 0x2b, 0xfc, - 0x7c, 0xea, 0x52, 0x1f, 0x67, 0xd4, 0xbd, 0xfc, 0xac, 0x3b, 0x0b, 0x95, 0xfa, 0xc8, 0x42, 0x8b, - 0xc2, 0x87, 0x2e, 0xf5, 0xf1, 0xdc, 0x45, 0xb7, 0xef, 0x5d, 0xe9, 0x95, 0x04, 0x1e, 0xeb, 0x2b, - 0x09, 0x2c, 0xf5, 0x95, 0x04, 0xae, 0x79, 0x16, 0xfc, 0x40, 0x14, 0xc6, 0x3c, 0x0b, 0xd2, 0x6f, - 0xe4, 0x15, 0x2a, 0x39, 0xe9, 0x84, 0xca, 0xe4, 0xa7, 0x36, 0x92, 0x19, 0xf1, 0xf9, 0xcd, 0xba, - 0x7a, 0x56, 0x95, 0x3f, 0xec, 0xf9, 0x8d, 0x64, 0x71, 0xb6, 0x17, 0x7a, 0x06, 0x8c, 0xa5, 0x9a, - 0x4b, 0xb2, 0x85, 0xdf, 0xb0, 0x45, 0xcb, 0xa8, 0xd7, 0x5c, 0xd3, 0x82, 0x01, 0x32, 0xae, 0x4b, - 0xcc, 0x7b, 0x2b, 0x03, 0x23, 0xd3, 0x93, 0x81, 0xdd, 0xdc, 0x2b, 0x11, 0x38, 0xa5, 0xb8, 0xf2, - 0x1b, 0x73, 0x62, 0xf0, 0x60, 0x5f, 0x27, 0x06, 0x4a, 0x80, 0x78, 0xa7, 0x07, 0xf7, 0x74, 0x1f, - 0x54, 0xcb, 0x51, 0xa2, 0x9f, 0x24, 0xfc, 0x0f, 0x48, 0x7b, 0x33, 0x20, 0xb7, 0x6c, 0x17, 0xc3, - 0x37, 0x33, 0xfd, 0x42, 0xf3, 0xa2, 0xb6, 0x89, 0xd6, 0x13, 0x26, 0xa2, 0x35, 0x97, 0x47, 0x77, - 0x9c, 0xea, 0xcf, 0x61, 0xc2, 0xf6, 0x22, 0x12, 0xb8, 0x34, 0xbf, 0xf1, 0x12, 0x2a, 0xcf, 0xef, - 0x83, 0x94, 0xfc, 0x8b, 0x17, 0x0d, 0x38, 0xc4, 0x81, 0xf9, 0xd8, 0xab, 0x98, 0xfa, 0xb7, 0x22, - 0x70, 0x4c, 0x26, 0x7f, 0x02, 0xd9, 0x7e, 0xc9, 0xc1, 0x35, 0xfd, 0xc3, 0x90, 0xb0, 0x99, 0xe1, - 0xd8, 0x6b, 0x37, 0xd8, 0x6d, 0xa4, 0x2f, 0xf9, 0x34, 0xf9, 0xd7, 0x12, 0x10, 0x6d, 0x8b, 0x83, - 0x0f, 0x3b, 0x3b, 0x71, 0x37, 0xc4, 0x29, 0x7f, 0x55, 0xae, 0x61, 0x4d, 0xae, 0xcf, 0xfa, 0xc8, - 0x45, 0xfc, 0xc8, 0xbc, 0xa6, 0xc8, 0x25, 0xdd, 0xad, 0xfa, 0x92, 0x4f, 0x73, 0xe7, 0x2b, 0x24, - 0x70, 0xfd, 0x47, 0x3c, 0x2a, 0x5c, 0xc8, 0x49, 0x48, 0x94, 0x74, 0x1a, 0x7f, 0x39, 0x17, 0x20, - 0xb6, 0x8a, 0xdf, 0x26, 0x36, 0xc6, 0xde, 0x9e, 0xc9, 0x94, 0xcc, 0xde, 0xd0, 0x7a, 0x16, 0x12, - 0xc5, 0xbd, 0x7a, 0xa3, 0xd6, 0xb2, 0x1d, 0x76, 0x64, 0xcf, 0x76, 0xd0, 0x31, 0xc6, 0x4a, 0x54, - 0x59, 0xdf, 0x54, 0x0e, 0x92, 0x92, 0x4b, 0x98, 0x71, 0x74, 0xfb, 0x9f, 0x39, 0x82, 0xff, 0x14, - 0x32, 0x11, 0xfc, 0xa7, 0x98, 0x89, 0x4e, 0xdd, 0x0d, 0x23, 0xda, 0x06, 0x19, 0xee, 0x59, 0xc8, - 0x00, 0xfe, 0x53, 0xca, 0x24, 0x27, 0x62, 0x1f, 0xfc, 0x9d, 0x13, 0x47, 0xa6, 0x1e, 0x04, 0xb3, - 0x7b, 0x2b, 0xcd, 0x1c, 0x80, 0xe8, 0x3c, 0x66, 0x79, 0x1b, 0x44, 0x0b, 0x88, 0xe7, 0xc4, 0xc8, - 0xff, 0xfd, 0xe4, 0xa9, 0x64, 0x81, 0xfc, 0x60, 0x14, 0x51, 0x17, 0x0a, 0x0c, 0xfc, 0x08, 0x1c, - 0xf3, 0xdd, 0x8a, 0xc3, 0xf8, 0x62, 0x91, 0xe2, 0x17, 0x16, 0xba, 0xf0, 0x0b, 0x0b, 0x04, 0x1f, - 0xc9, 0xf3, 0x23, 0xcd, 0x79, 0xd3, 0x67, 0xe3, 0x2b, 0x5b, 0x93, 0x8e, 0x50, 0xe7, 0xf3, 0x8f, - 0x30, 0xda, 0x82, 0x2f, 0xad, 0x1d, 0x72, 0x24, 0x5a, 0xc8, 0x17, 0x19, 0xbe, 0xe8, 0x8b, 0xdf, - 0xd1, 0xce, 0xed, 0xd4, 0x1c, 0xc4, 0x98, 0x14, 0x85, 0xc0, 0x0b, 0xbe, 0x4c, 0xf6, 0xa4, 0xa7, - 0xa9, 0x17, 0x84, 0xc0, 0x25, 0x5f, 0xda, 0x7a, 0xc8, 0x53, 0x45, 0xa5, 0xfc, 0x39, 0xb6, 0x8c, - 0xcc, 0x9f, 0x37, 0x8f, 0x71, 0x2f, 0x50, 0x62, 0x9c, 0x29, 0x88, 0xae, 0x28, 0xf3, 0xe7, 0xd1, - 0x0c, 0x29, 0xa0, 0x10, 0x08, 0x08, 0xd6, 0x12, 0x65, 0x52, 0x38, 0x9f, 0x7f, 0x8c, 0x31, 0x29, - 0x06, 0x32, 0x09, 0x51, 0x15, 0xe5, 0x54, 0x3c, 0x5f, 0xd8, 0xbc, 0xf1, 0x9d, 0x13, 0x47, 0x5e, - 0x45, 0x9f, 0xbf, 0x47, 0x9f, 0x6f, 0x7f, 0xe7, 0x44, 0xe4, 0x07, 0xe8, 0xf3, 0x23, 0xf4, 0xf9, - 0x29, 0xfa, 0xbc, 0xf7, 0xbb, 0x27, 0x22, 0x2f, 0xa3, 0xcf, 0x17, 0xd1, 0xe7, 0x4f, 0xd1, 0xe7, - 0x15, 0xf4, 0xb9, 0x81, 0x3e, 0xaf, 0xa2, 0xcf, 0xb7, 0xd1, 0xe7, 0x07, 0xdf, 0x3d, 0x71, 0xe4, - 0x47, 0xe8, 0xef, 0x4f, 0xd1, 0xdf, 0xf7, 0x7e, 0xef, 0xc4, 0x91, 0x17, 0xd1, 0xe7, 0xe5, 0xef, - 0x9d, 0x88, 0xc0, 0x2b, 0x73, 0x70, 0x82, 0xfd, 0x54, 0xc9, 0xb1, 0xeb, 0xd8, 0xe9, 0xf0, 0xaf, - 0x95, 0xc8, 0x92, 0x73, 0x81, 0xbf, 0x5d, 0x46, 0x34, 0x1c, 0xf2, 0x47, 0x4b, 0x13, 0x37, 0xfb, - 0x13, 0xa9, 0xdc, 0x5f, 0xc4, 0x61, 0x90, 0x6f, 0x35, 0xfa, 0xbd, 0xb8, 0xf4, 0x22, 0x24, 0x50, - 0xec, 0x56, 0x5a, 0xf5, 0xf6, 0x75, 0xb6, 0xc7, 0x76, 0xfb, 0xb4, 0x27, 0x36, 0xdf, 0x95, 0x7b, - 0xac, 0xb3, 0xdf, 0xec, 0xa0, 0xa4, 0xc8, 0x49, 0xcd, 0x53, 0x90, 0xda, 0xb3, 0xf1, 0x19, 0x5b, - 0xb9, 0xee, 0x94, 0xab, 0xfb, 0xa4, 0x16, 0x1b, 0xb6, 0x80, 0xb6, 0x2d, 0x39, 0xc5, 0x7d, 0x3c, - 0x18, 0xde, 0x8a, 0x26, 0xf7, 0x80, 0x29, 0xba, 0x2d, 0x8d, 0x5f, 0x9b, 0xd4, 0xb2, 0x5d, 0xfc, - 0xb6, 0xe5, 0x6a, 0xb3, 0xe3, 0xb4, 0x49, 0xb5, 0x64, 0x58, 0x49, 0xda, 0x56, 0xc4, 0x4d, 0xf8, - 0x8d, 0xcc, 0x78, 0xa3, 0xa7, 0xec, 0x56, 0x9b, 0x6d, 0x77, 0xbf, 0xe2, 0x90, 0x6a, 0x29, 0x61, - 0xa5, 0x70, 0xe3, 0x06, 0x6b, 0x23, 0xef, 0xb7, 0xae, 0x36, 0x5b, 0x36, 0xb9, 0x59, 0x8b, 0x5a, - 0xf4, 0x02, 0xbf, 0xdf, 0xfa, 0x59, 0xfb, 0x3a, 0xb9, 0x1d, 0x88, 0x59, 0xf8, 0x2b, 0x3e, 0x24, - 0xa2, 0x5b, 0x98, 0xa4, 0x76, 0x23, 0x27, 0xa3, 0x62, 0x6a, 0x74, 0x07, 0xd0, 0x62, 0x04, 0xf8, - 0x4d, 0xb1, 0x28, 0x05, 0xb4, 0x2a, 0x75, 0x87, 0x94, 0xe6, 0xf8, 0x4d, 0xb1, 0xdd, 0x6a, 0xd8, - 0xa4, 0x14, 0xe4, 0xe5, 0x82, 0x16, 0xa7, 0x47, 0x2a, 0x4c, 0x11, 0xba, 0xd9, 0x32, 0x7d, 0x3d, - 0x7c, 0x32, 0xd0, 0x97, 0x93, 0x94, 0x8e, 0x6f, 0x44, 0x73, 0x18, 0x7d, 0x25, 0xd5, 0x30, 0x19, - 0xf6, 0x2e, 0x9f, 0x61, 0xc9, 0x2f, 0xe5, 0x66, 0x49, 0x79, 0x43, 0x87, 0x66, 0x7c, 0xe8, 0x4b, - 0xab, 0x56, 0x20, 0x25, 0xcb, 0xc5, 0xd5, 0x40, 0x17, 0x57, 0xa2, 0x86, 0x7b, 0xbc, 0x77, 0x0e, - 0x07, 0x68, 0x81, 0xf6, 0xe7, 0xa3, 0x57, 0x22, 0x13, 0xeb, 0x90, 0xd1, 0xc7, 0xf3, 0x61, 0x79, - 0x56, 0x65, 0x99, 0x91, 0x27, 0x4b, 0xb6, 0x61, 0x3d, 0x8e, 0xb9, 0x47, 0x61, 0x80, 0xfa, 0x8f, - 0x99, 0x84, 0xc1, 0xad, 0xd5, 0x77, 0xae, 0xae, 0x3d, 0xb1, 0x4a, 0x5f, 0xdb, 0xb7, 0xbe, 0xb5, - 0xba, 0x41, 0x5f, 0xbe, 0xb7, 0xb1, 0x3c, 0xbf, 0xbe, 0xb1, 0xb9, 0x54, 0x7c, 0x67, 0x26, 0x8a, - 0x37, 0x95, 0x0b, 0x4b, 0xcb, 0xcb, 0xe5, 0xc2, 0xfc, 0xd2, 0x72, 0xe9, 0xa9, 0x8c, 0x91, 0x3b, - 0x01, 0x03, 0x54, 0x4e, 0x6c, 0xf8, 0xed, 0x8e, 0xe3, 0x5c, 0xe7, 0x8b, 0x13, 0xb9, 0xc8, 0x7d, - 0xd9, 0x84, 0xc1, 0xf9, 0x46, 0x03, 0xa5, 0x00, 0xd7, 0x7c, 0x02, 0x46, 0xe9, 0x2f, 0xfe, 0x37, - 0x9b, 0x0b, 0xe4, 0x2d, 0x61, 0x38, 0x31, 0x44, 0xd8, 0xbb, 0x96, 0xbd, 0x79, 0x33, 0xf2, 0xe9, - 0x2e, 0x5a, 0xaa, 0xe0, 0x51, 0x57, 0x6f, 0x37, 0x37, 0x21, 0xc3, 0x89, 0x17, 0x1b, 0xcd, 0x4a, - 0x1b, 0xf3, 0x8d, 0xb2, 0x97, 0x78, 0x05, 0xf3, 0xe5, 0xa4, 0x94, 0x6d, 0xc6, 0xd5, 0x9a, 0xcd, - 0x87, 0x20, 0xb1, 0xe4, 0xb4, 0x2f, 0xcc, 0x62, 0x6e, 0xfc, 0x75, 0xfe, 0xdd, 0xdc, 0x38, 0x09, - 0xe5, 0x92, 0xa8, 0xb3, 0x4b, 0x86, 0xbe, 0x34, 0x87, 0xd1, 0xb1, 0x5e, 0x68, 0x42, 0xe2, 0xa1, - 0xc9, 0x25, 0x3e, 0x4a, 0xd9, 0xe2, 0xac, 0xd8, 0x1b, 0xfc, 0x4f, 0xfb, 0xc0, 0x05, 0x0d, 0xc5, - 0x0f, 0x75, 0xc4, 0xf0, 0x8c, 0x01, 0x1d, 0x7f, 0xa0, 0x27, 0x03, 0x49, 0x00, 0xc2, 0x40, 0x48, - 0xb0, 0x21, 0x24, 0x18, 0x0c, 0x64, 0xb0, 0xa1, 0x49, 0xe0, 0xca, 0x12, 0x6c, 0x08, 0x09, 0x12, - 0x3d, 0x19, 0xc8, 0x12, 0xb8, 0x42, 0x82, 0x02, 0xc0, 0x62, 0xfd, 0x05, 0xbb, 0x46, 0x45, 0xa0, - 0x2f, 0xfb, 0xcf, 0xf9, 0x70, 0xf0, 0x88, 0x28, 0x0b, 0xd8, 0x11, 0x0d, 0x66, 0x09, 0x92, 0x1b, - 0xde, 0x25, 0x4b, 0x1f, 0x77, 0xf9, 0x89, 0xb1, 0xa3, 0x71, 0x49, 0xba, 0x12, 0x1b, 0x2e, 0x0a, - 0x9d, 0x4c, 0xb2, 0xb7, 0x28, 0xd2, 0x6c, 0xa8, 0x28, 0x74, 0x3a, 0x42, 0x14, 0xca, 0x24, 0x15, - 0x22, 0x8a, 0xc4, 0x85, 0x89, 0x42, 0xd9, 0xa0, 0x64, 0x58, 0x68, 0x36, 0x31, 0x25, 0xcb, 0x4a, - 0x27, 0x7d, 0x58, 0x30, 0x0a, 0x96, 0x0c, 0xb7, 0xe9, 0x15, 0xb1, 0x08, 0x71, 0x72, 0x0c, 0x4e, - 0x07, 0x5b, 0x84, 0xd3, 0x70, 0x8b, 0xf0, 0x6b, 0x39, 0xce, 0xc8, 0xe3, 0x92, 0x98, 0xcf, 0x48, - 0x68, 0x9c, 0x71, 0x52, 0x2d, 0xce, 0x78, 0xb3, 0xf9, 0x2e, 0x18, 0xe1, 0xa4, 0x38, 0x3d, 0x61, - 0xa6, 0x19, 0xf6, 0xbf, 0x43, 0x09, 0x66, 0xca, 0x28, 0x29, 0xcf, 0x11, 0x57, 0x6d, 0x35, 0x57, - 0x21, 0xcd, 0x09, 0x57, 0x5c, 0x32, 0xdd, 0x51, 0xf6, 0x8e, 0xf2, 0x60, 0x8e, 0x94, 0x90, 0x32, - 0x4c, 0xbb, 0x4a, 0xe3, 0xc4, 0x02, 0x8c, 0xfb, 0x67, 0x23, 0x39, 0xfd, 0x0e, 0xd1, 0xf4, 0x3b, - 0x26, 0xa7, 0xdf, 0x88, 0x9c, 0xbe, 0x8b, 0x70, 0xcc, 0x37, 0xf7, 0x84, 0x31, 0x89, 0xca, 0x4c, - 0x1e, 0x84, 0x61, 0x25, 0xe5, 0xc8, 0xe0, 0xb8, 0x0f, 0x38, 0xde, 0x0d, 0xf6, 0x5c, 0xcb, 0x67, - 0xf5, 0x50, 0xc0, 0x86, 0x0c, 0x7e, 0x08, 0xd2, 0x6a, 0xbe, 0x91, 0xd1, 0xc3, 0x3e, 0xe8, 0x61, - 0x1f, 0xb4, 0xff, 0xd8, 0x31, 0x1f, 0x74, 0x4c, 0x43, 0x6f, 0x04, 0x8e, 0x3d, 0xea, 0x83, 0x1e, - 0xf5, 0x41, 0xfb, 0x8f, 0x6d, 0xfa, 0xa0, 0x4d, 0x19, 0xfd, 0x30, 0x8c, 0x68, 0x29, 0x46, 0x86, - 0x0f, 0xfa, 0xc0, 0x07, 0x65, 0xf8, 0x23, 0x28, 0x68, 0x76, 0x82, 0xf1, 0x23, 0x3e, 0xf8, 0x11, - 0xbf, 0xe1, 0xfd, 0xa5, 0x1f, 0xf0, 0x81, 0x0f, 0xf8, 0x0e, 0xef, 0x8f, 0xcf, 0xf8, 0xe0, 0x33, - 0x32, 0x3e, 0x0f, 0x29, 0x39, 0x9b, 0xc8, 0xd8, 0x84, 0x0f, 0x36, 0xa1, 0xeb, 0x5d, 0x49, 0x26, - 0x61, 0x9e, 0x3e, 0x14, 0x10, 0x2e, 0x4a, 0x0a, 0x09, 0x63, 0x92, 0x92, 0x99, 0x3c, 0x0e, 0x63, - 0x7e, 0x29, 0xc3, 0x87, 0xc7, 0xa4, 0xcc, 0x23, 0x8d, 0x6b, 0x44, 0xaf, 0xd8, 0xab, 0x1c, 0x68, - 0x85, 0xd3, 0xc4, 0xd3, 0x70, 0xd4, 0x27, 0x71, 0xf8, 0xb0, 0x9d, 0x56, 0xab, 0xb1, 0xac, 0xc4, - 0x96, 0x24, 0x01, 0xc4, 0x62, 0xbd, 0x89, 0x9c, 0x53, 0xae, 0xca, 0xbe, 0x7a, 0x14, 0xd2, 0x2c, - 0x3d, 0xad, 0xb5, 0x6a, 0x76, 0x0b, 0x55, 0x57, 0xff, 0x2d, 0xb8, 0x76, 0x9a, 0xe9, 0x4e, 0x6a, - 0x0c, 0x75, 0x88, 0x12, 0xea, 0xe9, 0xc0, 0x12, 0xea, 0x5c, 0x38, 0xfb, 0xb0, 0x4a, 0xaa, 0xd8, - 0x55, 0x49, 0xdd, 0x13, 0xcc, 0x34, 0xa8, 0xa0, 0x2a, 0x76, 0x15, 0x54, 0xbd, 0x99, 0xf8, 0xd6, - 0x55, 0x8b, 0xdd, 0x75, 0xd5, 0x64, 0x30, 0x97, 0xe0, 0xf2, 0x6a, 0xb1, 0xbb, 0xbc, 0x0a, 0xe1, - 0xe3, 0x5f, 0x65, 0x2d, 0x76, 0x57, 0x59, 0x3d, 0xf8, 0x04, 0x17, 0x5b, 0x8b, 0xdd, 0xc5, 0x56, - 0x08, 0x1f, 0xff, 0x9a, 0x6b, 0xc9, 0xa7, 0xe6, 0xba, 0x37, 0x98, 0x51, 0xaf, 0xd2, 0x6b, 0xd9, - 0xaf, 0xf4, 0x9a, 0xea, 0x21, 0x54, 0xcf, 0x0a, 0x6c, 0xc9, 0xa7, 0x02, 0x0b, 0x13, 0x2c, 0xa0, - 0x10, 0x5b, 0xf6, 0x2b, 0xc4, 0x42, 0x05, 0x0b, 0xaa, 0xc7, 0xfe, 0x8b, 0x5e, 0x8f, 0x9d, 0x0d, - 0xe6, 0xe4, 0x5f, 0x96, 0x2d, 0x76, 0x97, 0x65, 0x93, 0x61, 0x31, 0xe7, 0x57, 0x9d, 0x3d, 0x1d, - 0x58, 0x9d, 0xf5, 0x11, 0xc2, 0x61, 0x45, 0xda, 0x93, 0x41, 0x45, 0xda, 0x74, 0x38, 0xef, 0xde, - 0xb5, 0xda, 0x56, 0x40, 0xad, 0x76, 0x7f, 0x38, 0xe3, 0xb7, 0x4b, 0xb6, 0xb7, 0x4b, 0xb6, 0xb7, - 0x4b, 0xb6, 0xb7, 0x4b, 0xb6, 0xb7, 0xbe, 0x64, 0xcb, 0xc7, 0x3e, 0xf2, 0xd2, 0xc9, 0x48, 0xee, - 0xef, 0x0c, 0xf1, 0xff, 0x6d, 0xc1, 0x87, 0x43, 0x38, 0xbd, 0xad, 0x40, 0x8a, 0xbc, 0xab, 0x7e, - 0xbf, 0x72, 0x70, 0x80, 0xff, 0x6f, 0x4e, 0x91, 0xae, 0xe5, 0x46, 0x05, 0x90, 0xb7, 0xfd, 0xaf, - 0x50, 0x62, 0xb6, 0xdc, 0x38, 0x5e, 0x8b, 0x79, 0x0d, 0x92, 0xfb, 0xee, 0xae, 0xe0, 0x16, 0xed, - 0x5a, 0x08, 0x35, 0x6e, 0x74, 0xa6, 0x1e, 0x33, 0xd8, 0x17, 0x0d, 0x58, 0xb4, 0x6d, 0x64, 0x25, - 0xc1, 0xcc, 0x08, 0x13, 0x0d, 0xdb, 0x54, 0x15, 0x6d, 0xdb, 0x6b, 0xc1, 0x6e, 0xab, 0xcb, 0x1e, - 0x96, 0xe9, 0x14, 0xe7, 0x79, 0x02, 0x46, 0x34, 0x69, 0x7d, 0x62, 0xfe, 0x26, 0x6c, 0x83, 0x05, - 0xd3, 0x25, 0x0f, 0x8b, 0x09, 0xd9, 0x21, 0x73, 0x77, 0xc2, 0xb0, 0xc2, 0xdb, 0x4c, 0x41, 0x64, - 0x87, 0xfd, 0x56, 0x2f, 0xb2, 0x83, 0x7f, 0x1e, 0x9d, 0x64, 0x07, 0xd5, 0xeb, 0x95, 0x7a, 0xcb, - 0x7c, 0x0c, 0xc8, 0xaf, 0x61, 0xd8, 0x61, 0xfc, 0xcd, 0xfd, 0x36, 0x93, 0xfe, 0x9e, 0x66, 0x11, - 0xe8, 0x8f, 0x65, 0x6e, 0xfe, 0xc7, 0xa5, 0xf4, 0xb7, 0x36, 0x37, 0x22, 0x30, 0xca, 0x9e, 0xa3, - 0x74, 0xd9, 0xd3, 0xb5, 0x68, 0x85, 0xfc, 0x72, 0x04, 0x86, 0xc4, 0x95, 0xb9, 0x0d, 0x69, 0x71, - 0x41, 0x9f, 0xe0, 0xa6, 0x9e, 0x9a, 0x97, 0x34, 0xdc, 0xc5, 0x63, 0xda, 0xe7, 0x1b, 0x3d, 0xbe, - 0xa2, 0x6b, 0xb2, 0xa3, 0x34, 0x4e, 0xcc, 0xc3, 0x51, 0x1f, 0xb2, 0xc3, 0x2c, 0xc8, 0x53, 0xa7, - 0x61, 0x90, 0x85, 0x36, 0x3e, 0x2e, 0x5c, 0xc1, 0xc7, 0x8d, 0xf8, 0x2f, 0x3e, 0xc2, 0xc4, 0x7f, - 0x8b, 0x99, 0x68, 0x61, 0xf9, 0x26, 0x8e, 0x90, 0x8e, 0xbc, 0x8a, 0x3e, 0x7e, 0x47, 0x48, 0xdb, - 0x03, 0x74, 0xee, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x09, 0xf8, 0xe0, 0x19, 0x76, 0x79, 0x00, - 0x00, + // 7851 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1f, 0xce, 0x46, 0x83, 0x24, 0xf8, 0x01, 0x24, 0x9b, 0xcd, 0x11, 0x05, 0x51, 0x23, 0x72, + 0x06, 0x1a, 0x8d, 0x28, 0xda, 0xe2, 0x70, 0x38, 0xe4, 0x5c, 0x30, 0x96, 0xf4, 0x07, 0x40, 0x70, + 0xc4, 0x31, 0x09, 0xd2, 0x4d, 0xd2, 0xd2, 0xac, 0xff, 0x15, 0x54, 0x13, 0x38, 0x24, 0x5b, 0x02, + 0xba, 0xb1, 0xe8, 0x86, 0x24, 0xfa, 0x21, 0xa5, 0xac, 0x93, 0x8d, 0x37, 0xa9, 0x5c, 0x37, 0xa9, + 0x78, 0x1d, 0x5f, 0xe4, 0x4d, 0x6d, 0xec, 0xdd, 0xcd, 0xc5, 0xeb, 0x6c, 0x9c, 0xad, 0xad, 0x54, + 0x56, 0x79, 0x70, 0x32, 0x79, 0x49, 0x69, 0x93, 0x97, 0x94, 0x2b, 0xa5, 0xb2, 0x46, 0xae, 0x8a, + 0x93, 0x38, 0x89, 0x37, 0xeb, 0xaa, 0xdd, 0x2a, 0xef, 0x43, 0xea, 0xdc, 0xba, 0xfb, 0x1c, 0x34, + 0xd0, 0xe0, 0x48, 0xb2, 0xf7, 0xc1, 0x2f, 0x33, 0xe8, 0x73, 0xbe, 0xdf, 0xaf, 0xbf, 0xfe, 0x6e, + 0xe7, 0xeb, 0xd3, 0x0d, 0x10, 0xde, 0x5f, 0x83, 0x0b, 0xc7, 0x8e, 0x73, 0xdc, 0x40, 0x57, 0x5a, + 0x6d, 0xc7, 0x73, 0x0e, 0x3b, 0x47, 0x57, 0xea, 0xc8, 0xad, 0xb5, 0xad, 0x96, 0xe7, 0xb4, 0x97, + 0xc8, 0x98, 0x3e, 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x1b, 0xa6, 0x36, 0xac, 0x06, 0x5a, 0xf7, + 0x05, 0xf7, 0x90, 0xa7, 0xdf, 0x84, 0xe4, 0x91, 0xd5, 0x40, 0x59, 0xe5, 0x82, 0xba, 0x90, 0x5e, + 0xb9, 0xb4, 0x24, 0x81, 0x96, 0x44, 0xc4, 0x2e, 0x1e, 0x36, 0x08, 0x22, 0xf7, 0xfd, 0x24, 0x4c, + 0x47, 0xcc, 0xea, 0x3a, 0x24, 0x6d, 0xb3, 0x89, 0x19, 0x95, 0x85, 0x31, 0x83, 0x7c, 0xd6, 0xb3, + 0x30, 0xda, 0x32, 0x6b, 0xaf, 0x9a, 0xc7, 0x28, 0x9b, 0x20, 0xc3, 0xfc, 0x50, 0x9f, 0x03, 0xa8, + 0xa3, 0x16, 0xb2, 0xeb, 0xc8, 0xae, 0x9d, 0x66, 0xd5, 0x0b, 0xea, 0xc2, 0x98, 0x11, 0x1a, 0xd1, + 0x3f, 0x06, 0x53, 0xad, 0xce, 0x61, 0xc3, 0xaa, 0x55, 0x43, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, + 0x34, 0x3a, 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0xd5, 0xb0, 0x68, 0x9a, 0x88, + 0x4e, 0xe0, 0xe1, 0x90, 0x60, 0x09, 0x32, 0x4d, 0xe4, 0xba, 0xe6, 0x31, 0xaa, 0x7a, 0xa7, 0x2d, + 0x94, 0x4d, 0x92, 0xab, 0xbf, 0xd0, 0x75, 0xf5, 0xf2, 0x95, 0xa7, 0x19, 0x6a, 0xff, 0xb4, 0x85, + 0xf4, 0x02, 0x8c, 0x21, 0xbb, 0xd3, 0xa4, 0x0c, 0xc3, 0x3d, 0xec, 0x57, 0xb6, 0x3b, 0x4d, 0x99, + 0x25, 0x85, 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, + 0xbb, 0x08, 0xf6, 0xe8, 0xbc, 0xcc, 0xc1, 0x71, 0x7a, 0x09, 0xc6, 0xd0, 0x1b, 0x1e, 0xb2, 0x5d, + 0xcb, 0xb1, 0xb3, 0xa3, 0x84, 0xe4, 0xa9, 0x08, 0x2f, 0xa2, 0x46, 0x5d, 0xa6, 0x08, 0x70, 0xfa, + 0x75, 0x18, 0x75, 0x5a, 0x9e, 0xe5, 0xd8, 0x6e, 0x36, 0x75, 0x41, 0x59, 0x48, 0xaf, 0x9c, 0x8f, + 0x0c, 0x84, 0x1d, 0x2a, 0x63, 0x70, 0x61, 0x7d, 0x13, 0x34, 0xd7, 0xe9, 0xb4, 0x6b, 0xa8, 0x5a, + 0x73, 0xea, 0xa8, 0x6a, 0xd9, 0x47, 0x4e, 0x76, 0x8c, 0x10, 0xcc, 0x77, 0x5f, 0x08, 0x11, 0x2c, + 0x39, 0x75, 0xb4, 0x69, 0x1f, 0x39, 0xc6, 0x84, 0x2b, 0x1c, 0xeb, 0x33, 0x30, 0xe2, 0x9e, 0xda, + 0x9e, 0xf9, 0x46, 0x36, 0x43, 0x22, 0x84, 0x1d, 0xe5, 0xfe, 0x64, 0x18, 0x26, 0x07, 0x09, 0xb1, + 0xdb, 0x30, 0x7c, 0x84, 0xaf, 0x32, 0x9b, 0x38, 0x8b, 0x0d, 0x28, 0x46, 0x34, 0xe2, 0xc8, 0x43, + 0x1a, 0xb1, 0x00, 0x69, 0x1b, 0xb9, 0x1e, 0xaa, 0xd3, 0x88, 0x50, 0x07, 0x8c, 0x29, 0xa0, 0xa0, + 0xee, 0x90, 0x4a, 0x3e, 0x54, 0x48, 0xbd, 0x0c, 0x93, 0xbe, 0x4a, 0xd5, 0xb6, 0x69, 0x1f, 0xf3, + 0xd8, 0xbc, 0x12, 0xa7, 0xc9, 0x52, 0x99, 0xe3, 0x0c, 0x0c, 0x33, 0x26, 0x90, 0x70, 0xac, 0xaf, + 0x03, 0x38, 0x36, 0x72, 0x8e, 0xaa, 0x75, 0x54, 0x6b, 0x64, 0x53, 0x3d, 0xac, 0xb4, 0x83, 0x45, + 0xba, 0xac, 0xe4, 0xd0, 0xd1, 0x5a, 0x43, 0xbf, 0x15, 0x84, 0xda, 0x68, 0x8f, 0x48, 0xd9, 0xa6, + 0x49, 0xd6, 0x15, 0x6d, 0x07, 0x30, 0xd1, 0x46, 0x38, 0xee, 0x51, 0x9d, 0x5d, 0xd9, 0x18, 0x51, + 0x62, 0x29, 0xf6, 0xca, 0x0c, 0x06, 0xa3, 0x17, 0x36, 0xde, 0x0e, 0x1f, 0xea, 0x4f, 0x82, 0x3f, + 0x50, 0x25, 0x61, 0x05, 0xa4, 0x0a, 0x65, 0xf8, 0x60, 0xc5, 0x6c, 0xa2, 0xd9, 0x9b, 0x30, 0x21, + 0x9a, 0x47, 0x3f, 0x07, 0xc3, 0xae, 0x67, 0xb6, 0x3d, 0x12, 0x85, 0xc3, 0x06, 0x3d, 0xd0, 0x35, + 0x50, 0x91, 0x5d, 0x27, 0x55, 0x6e, 0xd8, 0xc0, 0x1f, 0x67, 0x6f, 0xc0, 0xb8, 0x70, 0xfa, 0x41, + 0x81, 0xb9, 0x2f, 0x8c, 0xc0, 0xb9, 0xa8, 0x98, 0x8b, 0x0c, 0xff, 0x19, 0x18, 0xb1, 0x3b, 0xcd, + 0x43, 0xd4, 0xce, 0xaa, 0x84, 0x81, 0x1d, 0xe9, 0x05, 0x18, 0x6e, 0x98, 0x87, 0xa8, 0x91, 0x4d, + 0x5e, 0x50, 0x16, 0x26, 0x56, 0x3e, 0x36, 0x50, 0x54, 0x2f, 0x6d, 0x61, 0x88, 0x41, 0x91, 0xfa, + 0xf3, 0x90, 0x64, 0x25, 0x0e, 0x33, 0x2c, 0x0e, 0xc6, 0x80, 0x63, 0xd1, 0x20, 0x38, 0xfd, 0x71, + 0x18, 0xc3, 0xff, 0x53, 0xdb, 0x8e, 0x10, 0x9d, 0x53, 0x78, 0x00, 0xdb, 0x55, 0x9f, 0x85, 0x14, + 0x09, 0xb3, 0x3a, 0xe2, 0x4b, 0x83, 0x7f, 0x8c, 0x1d, 0x53, 0x47, 0x47, 0x66, 0xa7, 0xe1, 0x55, + 0x5f, 0x33, 0x1b, 0x1d, 0x44, 0x02, 0x66, 0xcc, 0xc8, 0xb0, 0xc1, 0x4f, 0xe3, 0x31, 0x7d, 0x1e, + 0xd2, 0x34, 0x2a, 0x2d, 0xbb, 0x8e, 0xde, 0x20, 0xd5, 0x67, 0xd8, 0xa0, 0x81, 0xba, 0x89, 0x47, + 0xf0, 0xe9, 0x5f, 0x71, 0x1d, 0x9b, 0xbb, 0x96, 0x9c, 0x02, 0x0f, 0x90, 0xd3, 0xdf, 0x90, 0x0b, + 0xdf, 0x13, 0xd1, 0x97, 0x27, 0xc7, 0x62, 0xee, 0xdb, 0x09, 0x48, 0x92, 0x7c, 0x9b, 0x84, 0xf4, + 0xfe, 0xbd, 0xdd, 0x72, 0x75, 0x7d, 0xe7, 0xa0, 0xb8, 0x55, 0xd6, 0x14, 0x7d, 0x02, 0x80, 0x0c, + 0x6c, 0x6c, 0xed, 0x14, 0xf6, 0xb5, 0x84, 0x7f, 0xbc, 0x59, 0xd9, 0xbf, 0xbe, 0xaa, 0xa9, 0x3e, + 0xe0, 0x80, 0x0e, 0x24, 0xc3, 0x02, 0xd7, 0x56, 0xb4, 0x61, 0x5d, 0x83, 0x0c, 0x25, 0xd8, 0x7c, + 0xb9, 0xbc, 0x7e, 0x7d, 0x55, 0x1b, 0x11, 0x47, 0xae, 0xad, 0x68, 0xa3, 0xfa, 0x38, 0x8c, 0x91, + 0x91, 0xe2, 0xce, 0xce, 0x96, 0x96, 0xf2, 0x39, 0xf7, 0xf6, 0x8d, 0xcd, 0xca, 0x1d, 0x6d, 0xcc, + 0xe7, 0xbc, 0x63, 0xec, 0x1c, 0xec, 0x6a, 0xe0, 0x33, 0x6c, 0x97, 0xf7, 0xf6, 0x0a, 0x77, 0xca, + 0x5a, 0xda, 0x97, 0x28, 0xde, 0xdb, 0x2f, 0xef, 0x69, 0x19, 0x41, 0xad, 0x6b, 0x2b, 0xda, 0xb8, + 0x7f, 0x8a, 0x72, 0xe5, 0x60, 0x5b, 0x9b, 0xd0, 0xa7, 0x60, 0x9c, 0x9e, 0x82, 0x2b, 0x31, 0x29, + 0x0d, 0x5d, 0x5f, 0xd5, 0xb4, 0x40, 0x11, 0xca, 0x32, 0x25, 0x0c, 0x5c, 0x5f, 0xd5, 0xf4, 0x5c, + 0x09, 0x86, 0x49, 0x74, 0xe9, 0x3a, 0x4c, 0x6c, 0x15, 0x8a, 0xe5, 0xad, 0xea, 0xce, 0xee, 0xfe, + 0xe6, 0x4e, 0xa5, 0xb0, 0xa5, 0x29, 0xc1, 0x98, 0x51, 0xfe, 0xd4, 0xc1, 0xa6, 0x51, 0x5e, 0xd7, + 0x12, 0xe1, 0xb1, 0xdd, 0x72, 0x61, 0xbf, 0xbc, 0xae, 0xa9, 0xb9, 0x1a, 0x9c, 0x8b, 0xaa, 0x33, + 0x91, 0x99, 0x11, 0x72, 0x71, 0xa2, 0x87, 0x8b, 0x09, 0x57, 0x97, 0x8b, 0x7f, 0x5d, 0x81, 0xe9, + 0x88, 0x5a, 0x1b, 0x79, 0x92, 0x17, 0x60, 0x98, 0x86, 0x28, 0x5d, 0x7d, 0x9e, 0x89, 0x2c, 0xda, + 0x24, 0x60, 0xbb, 0x56, 0x20, 0x82, 0x0b, 0xaf, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, + 0xf9, 0x39, 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x28, 0x14, 0xb7, 0x65, 0x05, 0x2e, + 0xf6, 0xbe, 0x86, 0x2e, 0x2d, 0xbe, 0xae, 0xc0, 0x4c, 0x74, 0xa3, 0x12, 0xa9, 0xc3, 0xf3, 0x30, + 0xd2, 0x44, 0xde, 0x89, 0xc3, 0x17, 0xeb, 0xcb, 0x11, 0x4b, 0x00, 0x9e, 0x96, 0x6d, 0xc5, 0x50, + 0xe1, 0x35, 0x44, 0xed, 0xd5, 0x6d, 0x50, 0x6d, 0xba, 0x34, 0xfd, 0x95, 0x04, 0x3c, 0x12, 0x49, + 0x1e, 0xa9, 0xe8, 0x13, 0x00, 0x96, 0xdd, 0xea, 0x78, 0x74, 0x41, 0xa6, 0xf5, 0x69, 0x8c, 0x8c, + 0x90, 0xdc, 0xc7, 0xb5, 0xa7, 0xe3, 0xf9, 0xf3, 0x2a, 0x99, 0x07, 0x3a, 0x44, 0x04, 0x6e, 0x06, + 0x8a, 0x26, 0x89, 0xa2, 0x73, 0x3d, 0xae, 0xb4, 0x6b, 0xad, 0x5b, 0x06, 0xad, 0xd6, 0xb0, 0x90, + 0xed, 0x55, 0x5d, 0xaf, 0x8d, 0xcc, 0xa6, 0x65, 0x1f, 0x93, 0x02, 0x9c, 0xca, 0x0f, 0x1f, 0x99, + 0x0d, 0x17, 0x19, 0x93, 0x74, 0x7a, 0x8f, 0xcf, 0x62, 0x04, 0x59, 0x65, 0xda, 0x21, 0xc4, 0x88, + 0x80, 0xa0, 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x0e, 0xb5, 0x75, 0xfa, 0x45, 0xc8, 0xbc, + 0x62, 0xbe, 0x66, 0x56, 0x79, 0xab, 0x4e, 0x2d, 0x91, 0xc6, 0x63, 0xbb, 0xac, 0x5d, 0x5f, 0x86, + 0x73, 0x44, 0xc4, 0xe9, 0x78, 0xa8, 0x5d, 0xad, 0x35, 0x4c, 0xd7, 0x25, 0x46, 0x4b, 0x11, 0x51, + 0x1d, 0xcf, 0xed, 0xe0, 0xa9, 0x12, 0x9f, 0xd1, 0xd7, 0x60, 0x9a, 0x20, 0x9a, 0x9d, 0x86, 0x67, + 0xb5, 0x1a, 0xa8, 0x8a, 0x6f, 0x1e, 0x5c, 0x52, 0x88, 0x7d, 0xcd, 0xa6, 0xb0, 0xc4, 0x36, 0x13, + 0xc0, 0x1a, 0xb9, 0xfa, 0x3a, 0x3c, 0x41, 0x60, 0xc7, 0xc8, 0x46, 0x6d, 0xd3, 0x43, 0x55, 0xf4, + 0x8b, 0x1d, 0xb3, 0xe1, 0x56, 0x4d, 0xbb, 0x5e, 0x3d, 0x31, 0xdd, 0x93, 0xec, 0x39, 0x4c, 0x50, + 0x4c, 0x64, 0x15, 0xe3, 0x31, 0x2c, 0x78, 0x87, 0xc9, 0x95, 0x89, 0x58, 0xc1, 0xae, 0xbf, 0x68, + 0xba, 0x27, 0x7a, 0x1e, 0x66, 0x08, 0x8b, 0xeb, 0xb5, 0x2d, 0xfb, 0xb8, 0x5a, 0x3b, 0x41, 0xb5, + 0x57, 0xab, 0x1d, 0xef, 0xe8, 0x66, 0xf6, 0xf1, 0xf0, 0xf9, 0x89, 0x86, 0x7b, 0x44, 0xa6, 0x84, + 0x45, 0x0e, 0xbc, 0xa3, 0x9b, 0xfa, 0x1e, 0x64, 0xb0, 0x33, 0x9a, 0xd6, 0x67, 0x51, 0xf5, 0xc8, + 0x69, 0x93, 0x95, 0x65, 0x22, 0x22, 0xb3, 0x43, 0x16, 0x5c, 0xda, 0x61, 0x80, 0x6d, 0xa7, 0x8e, + 0xf2, 0xc3, 0x7b, 0xbb, 0xe5, 0xf2, 0xba, 0x91, 0xe6, 0x2c, 0x1b, 0x4e, 0x1b, 0x07, 0xd4, 0xb1, + 0xe3, 0x1b, 0x38, 0x4d, 0x03, 0xea, 0xd8, 0xe1, 0xe6, 0x5d, 0x83, 0xe9, 0x5a, 0x8d, 0x5e, 0xb3, + 0x55, 0xab, 0xb2, 0x16, 0xdf, 0xcd, 0x6a, 0x82, 0xb1, 0x6a, 0xb5, 0x3b, 0x54, 0x80, 0xc5, 0xb8, + 0xab, 0xdf, 0x82, 0x47, 0x02, 0x63, 0x85, 0x81, 0x53, 0x5d, 0x57, 0x29, 0x43, 0xd7, 0x60, 0xba, + 0x75, 0xda, 0x0d, 0xd4, 0x85, 0x33, 0xb6, 0x4e, 0x65, 0xd8, 0x53, 0xe4, 0xb6, 0xad, 0x8d, 0x6a, + 0xa6, 0x87, 0xea, 0xd9, 0x47, 0xc3, 0xd2, 0xa1, 0x09, 0xfd, 0x0a, 0x68, 0xb5, 0x5a, 0x15, 0xd9, + 0xe6, 0x61, 0x03, 0x55, 0xcd, 0x36, 0xb2, 0x4d, 0x37, 0x3b, 0x1f, 0x16, 0x9e, 0xa8, 0xd5, 0xca, + 0x64, 0xb6, 0x40, 0x26, 0xf5, 0x45, 0x98, 0x72, 0x0e, 0x5f, 0xa9, 0xd1, 0xc8, 0xaa, 0xb6, 0xda, + 0xe8, 0xc8, 0x7a, 0x23, 0x7b, 0x89, 0x98, 0x69, 0x12, 0x4f, 0x90, 0xb8, 0xda, 0x25, 0xc3, 0xfa, + 0x33, 0xa0, 0xd5, 0xdc, 0x13, 0xb3, 0xdd, 0x22, 0x4b, 0xbb, 0xdb, 0x32, 0x6b, 0x28, 0xfb, 0x14, + 0x15, 0xa5, 0xe3, 0x15, 0x3e, 0x8c, 0x23, 0xdb, 0x7d, 0xdd, 0x3a, 0xf2, 0x38, 0xe3, 0xd3, 0x34, + 0xb2, 0xc9, 0x18, 0x63, 0x7b, 0x19, 0xce, 0x75, 0x6c, 0xcb, 0xf6, 0x50, 0xbb, 0xd5, 0x46, 0xb8, + 0x89, 0xa7, 0x99, 0x98, 0xfd, 0x6f, 0xa3, 0x3d, 0xda, 0xf0, 0x83, 0xb0, 0x34, 0x0d, 0x00, 0x63, + 0xba, 0xd3, 0x3d, 0x98, 0xcb, 0x43, 0x26, 0x1c, 0x17, 0xfa, 0x18, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, + 0xc6, 0x96, 0x76, 0xd6, 0xf1, 0xea, 0xf8, 0x0b, 0x65, 0x2d, 0x81, 0x57, 0xe9, 0xad, 0xcd, 0xfd, + 0x72, 0xd5, 0x38, 0xa8, 0xec, 0x6f, 0x6e, 0x97, 0x35, 0x75, 0x71, 0x2c, 0xf5, 0x83, 0x51, 0xed, + 0xcd, 0x37, 0xdf, 0x7c, 0x33, 0x91, 0xfb, 0x4e, 0x02, 0x26, 0xc4, 0xce, 0x58, 0xff, 0x04, 0x3c, + 0xca, 0x6f, 0x63, 0x5d, 0xe4, 0x55, 0x5f, 0xb7, 0xda, 0x24, 0x54, 0x9b, 0x26, 0xed, 0x2d, 0x7d, + 0x2b, 0x9f, 0x63, 0x52, 0x7b, 0xc8, 0x7b, 0xc9, 0x6a, 0xe3, 0x40, 0x6c, 0x9a, 0x9e, 0xbe, 0x05, + 0xf3, 0xb6, 0x53, 0x75, 0x3d, 0xd3, 0xae, 0x9b, 0xed, 0x7a, 0x35, 0xd8, 0x40, 0xa8, 0x9a, 0xb5, + 0x1a, 0x72, 0x5d, 0x87, 0x2e, 0x11, 0x3e, 0xcb, 0x79, 0xdb, 0xd9, 0x63, 0xc2, 0x41, 0xed, 0x2c, + 0x30, 0x51, 0x29, 0x22, 0xd4, 0x5e, 0x11, 0xf1, 0x38, 0x8c, 0x35, 0xcd, 0x56, 0x15, 0xd9, 0x5e, + 0xfb, 0x94, 0xf4, 0x73, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x65, 0x7c, 0xfc, 0xd1, 0xf9, 0x20, 0x6c, + 0xc7, 0xff, 0xaa, 0x42, 0x26, 0xdc, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, 0xfc, + 0xc9, 0xbe, 0x1d, 0xe0, 0x52, 0x09, 0x17, 0xf6, 0xfc, 0x08, 0xed, 0xb4, 0x0c, 0x8a, 0xc4, 0x8b, + 0x2a, 0xce, 0x69, 0x44, 0xfb, 0xf7, 0x94, 0xc1, 0x8e, 0xf4, 0x3b, 0x30, 0xf2, 0x8a, 0x4b, 0xb8, + 0x47, 0x08, 0xf7, 0xa5, 0xfe, 0xdc, 0x77, 0xf7, 0x08, 0xf9, 0xd8, 0xdd, 0xbd, 0x6a, 0x65, 0xc7, + 0xd8, 0x2e, 0x6c, 0x19, 0x0c, 0xae, 0x3f, 0x06, 0xc9, 0x86, 0xf9, 0xd9, 0x53, 0x71, 0x09, 0x20, + 0x43, 0x83, 0x1a, 0xfe, 0x31, 0x48, 0xbe, 0x8e, 0xcc, 0x57, 0xc5, 0xc2, 0x4b, 0x86, 0x3e, 0xc2, + 0xd0, 0xbf, 0x02, 0xc3, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0x36, 0xa4, 0xa7, 0x20, 0x59, 0xda, + 0x31, 0x70, 0xf8, 0x6b, 0x90, 0xa1, 0xa3, 0xd5, 0xdd, 0xcd, 0x72, 0xa9, 0xac, 0x25, 0x72, 0x6b, + 0x30, 0x42, 0x8d, 0x80, 0x53, 0xc3, 0x37, 0x83, 0x36, 0xc4, 0x0e, 0x19, 0x87, 0xc2, 0x67, 0x0f, + 0xb6, 0x8b, 0x65, 0x43, 0x4b, 0x84, 0xdd, 0xeb, 0x42, 0x26, 0xdc, 0xce, 0xfd, 0x74, 0x62, 0xea, + 0xf7, 0x15, 0x48, 0x87, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xf3, 0x7a, 0xd5, 0x6c, 0x58, + 0xa6, 0xcb, 0x82, 0x02, 0xc8, 0x50, 0x01, 0x8f, 0x0c, 0xea, 0xb4, 0x9f, 0x8a, 0xf2, 0x5f, 0x51, + 0x40, 0x93, 0x5b, 0x3b, 0x49, 0x41, 0xe5, 0x67, 0xaa, 0xe0, 0x97, 0x14, 0x98, 0x10, 0xfb, 0x39, + 0x49, 0xbd, 0x8b, 0x3f, 0x53, 0xf5, 0xbe, 0x97, 0x80, 0x71, 0xa1, 0x8b, 0x1b, 0x54, 0xbb, 0x5f, + 0x84, 0x29, 0xab, 0x8e, 0x9a, 0x2d, 0xc7, 0x43, 0x76, 0xed, 0xb4, 0xda, 0x40, 0xaf, 0xa1, 0x46, + 0x36, 0x47, 0x0a, 0xc5, 0x95, 0xfe, 0x7d, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xfc, 0xf4, + 0xe6, 0x7a, 0x79, 0x7b, 0x77, 0x67, 0xbf, 0x5c, 0x29, 0xdd, 0xab, 0x1e, 0x54, 0x3e, 0x59, 0xd9, + 0x79, 0xa9, 0x62, 0x68, 0x96, 0x24, 0xf6, 0x11, 0xa6, 0xfa, 0x2e, 0x68, 0xb2, 0x52, 0xfa, 0xa3, + 0x10, 0xa5, 0x96, 0x36, 0xa4, 0x4f, 0xc3, 0x64, 0x65, 0xa7, 0xba, 0xb7, 0xb9, 0x5e, 0xae, 0x96, + 0x37, 0x36, 0xca, 0xa5, 0xfd, 0x3d, 0x7a, 0xe3, 0xec, 0x4b, 0xef, 0x8b, 0x49, 0xfd, 0x45, 0x15, + 0xa6, 0x23, 0x34, 0xd1, 0x0b, 0xac, 0x67, 0xa7, 0xb7, 0x11, 0xcf, 0x0e, 0xa2, 0xfd, 0x12, 0xee, + 0x0a, 0x76, 0xcd, 0xb6, 0xc7, 0x5a, 0xfc, 0x67, 0x00, 0x5b, 0xc9, 0xf6, 0xac, 0x23, 0x0b, 0xb5, + 0xd9, 0x3e, 0x03, 0x6d, 0xe4, 0x27, 0x83, 0x71, 0xba, 0xd5, 0xf0, 0x71, 0xd0, 0x5b, 0x8e, 0x6b, + 0x79, 0xd6, 0x6b, 0xa8, 0x6a, 0xd9, 0x7c, 0x53, 0x02, 0x37, 0xf6, 0x49, 0x43, 0xe3, 0x33, 0x9b, + 0xb6, 0xe7, 0x4b, 0xdb, 0xe8, 0xd8, 0x94, 0xa4, 0x71, 0x01, 0x57, 0x0d, 0x8d, 0xcf, 0xf8, 0xd2, + 0x17, 0x21, 0x53, 0x77, 0x3a, 0xb8, 0x4d, 0xa2, 0x72, 0x78, 0xbd, 0x50, 0x8c, 0x34, 0x1d, 0xf3, + 0x45, 0x58, 0x1f, 0x1b, 0xec, 0x86, 0x64, 0x8c, 0x34, 0x1d, 0xa3, 0x22, 0x4f, 0xc3, 0xa4, 0x79, + 0x7c, 0xdc, 0xc6, 0xe4, 0x9c, 0x88, 0x76, 0xe6, 0x13, 0xfe, 0x30, 0x11, 0x9c, 0xbd, 0x0b, 0x29, + 0x6e, 0x07, 0xbc, 0x24, 0x63, 0x4b, 0x54, 0x5b, 0x74, 0x4f, 0x2a, 0xb1, 0x30, 0x66, 0xa4, 0x6c, + 0x3e, 0x79, 0x11, 0x32, 0x96, 0x5b, 0x0d, 0x36, 0x47, 0x13, 0x17, 0x12, 0x0b, 0x29, 0x23, 0x6d, + 0xb9, 0xfe, 0x6e, 0x58, 0xee, 0xeb, 0x09, 0x98, 0x10, 0x37, 0x77, 0xf5, 0x75, 0x48, 0x35, 0x9c, + 0x9a, 0x49, 0x42, 0x8b, 0x3e, 0x59, 0x58, 0x88, 0xd9, 0x0f, 0x5e, 0xda, 0x62, 0xf2, 0x86, 0x8f, + 0x9c, 0xfd, 0x8f, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e, 0x03, 0xc9, 0x96, 0xe9, 0x9d, 0x10, 0xba, 0xe1, + 0x62, 0x42, 0x53, 0x0c, 0x72, 0x8c, 0xc7, 0xdd, 0x96, 0x69, 0x93, 0x10, 0x60, 0xe3, 0xf8, 0x18, + 0xfb, 0xb5, 0x81, 0xcc, 0x3a, 0x69, 0xfb, 0x9d, 0x66, 0x13, 0xd9, 0x9e, 0xcb, 0xfd, 0xca, 0xc6, + 0x4b, 0x6c, 0x58, 0xff, 0x18, 0x4c, 0x79, 0x6d, 0xd3, 0x6a, 0x08, 0xb2, 0x49, 0x22, 0xab, 0xf1, + 0x09, 0x5f, 0x38, 0x0f, 0x8f, 0x71, 0xde, 0x3a, 0xf2, 0xcc, 0xda, 0x09, 0xaa, 0x07, 0xa0, 0x11, + 0xb2, 0x73, 0xf8, 0x28, 0x13, 0x58, 0x67, 0xf3, 0x1c, 0x9b, 0xfb, 0x43, 0x05, 0xa6, 0xf8, 0x8d, + 0x4a, 0xdd, 0x37, 0xd6, 0x36, 0x80, 0x69, 0xdb, 0x8e, 0x17, 0x36, 0x57, 0x77, 0x28, 0x77, 0xe1, + 0x96, 0x0a, 0x3e, 0xc8, 0x08, 0x11, 0xcc, 0x36, 0x01, 0x82, 0x99, 0x9e, 0x66, 0x9b, 0x87, 0x34, + 0xdb, 0xb9, 0x27, 0x8f, 0x7f, 0xe8, 0xad, 0x2d, 0xd0, 0x21, 0x7c, 0x47, 0xa3, 0x9f, 0x83, 0xe1, + 0x43, 0x74, 0x6c, 0xd9, 0x6c, 0x3f, 0x91, 0x1e, 0xf0, 0x5d, 0xca, 0xa4, 0xbf, 0x4b, 0x59, 0x7c, + 0x19, 0xa6, 0x6b, 0x4e, 0x53, 0x56, 0xb7, 0xa8, 0x49, 0xb7, 0xd7, 0xee, 0x8b, 0xca, 0x2f, 0x40, + 0xd0, 0x62, 0xfe, 0x7a, 0x42, 0xbd, 0xb3, 0x5b, 0xfc, 0xad, 0xc4, 0xec, 0x1d, 0x8a, 0xdb, 0xe5, + 0x97, 0x69, 0xa0, 0xa3, 0x06, 0xaa, 0x61, 0xd5, 0xe1, 0x8f, 0x2f, 0xc3, 0xb3, 0xc7, 0x96, 0x77, + 0xd2, 0x39, 0x5c, 0xaa, 0x39, 0xcd, 0x2b, 0xc7, 0xce, 0xb1, 0x13, 0x3c, 0xee, 0xc2, 0x47, 0xe4, + 0x80, 0x7c, 0x62, 0x8f, 0xbc, 0xc6, 0xfc, 0xd1, 0xd9, 0xd8, 0xe7, 0x63, 0xf9, 0x0a, 0x4c, 0x33, + 0xe1, 0x2a, 0xd9, 0x73, 0xa7, 0xb7, 0x06, 0x7a, 0xdf, 0x7d, 0x97, 0xec, 0xef, 0x7c, 0x9f, 0xac, + 0xd5, 0xc6, 0x14, 0x83, 0xe2, 0x39, 0x7a, 0x03, 0x91, 0x37, 0xe0, 0x11, 0x81, 0x8f, 0xe6, 0x25, + 0x6a, 0xc7, 0x30, 0x7e, 0x87, 0x31, 0x4e, 0x87, 0x18, 0xf7, 0x18, 0x34, 0x5f, 0x82, 0xf1, 0xb3, + 0x70, 0xfd, 0x3b, 0xc6, 0x95, 0x41, 0x61, 0x92, 0x3b, 0x30, 0x49, 0x48, 0x6a, 0x1d, 0xd7, 0x73, + 0x9a, 0xa4, 0xe8, 0xf5, 0xa7, 0xf9, 0xf7, 0xdf, 0xa7, 0x89, 0x32, 0x81, 0x61, 0x25, 0x1f, 0x95, + 0xcf, 0x03, 0x79, 0xcc, 0x50, 0x47, 0xb5, 0x46, 0x0c, 0xc3, 0x7d, 0xa6, 0x88, 0x2f, 0x9f, 0xff, + 0x34, 0x9c, 0xc3, 0x9f, 0x49, 0x4d, 0x0a, 0x6b, 0x12, 0xbf, 0xcb, 0x94, 0xfd, 0xc3, 0xcf, 0xd1, + 0x5c, 0x9c, 0xf6, 0x09, 0x42, 0x3a, 0x85, 0xbc, 0x78, 0x8c, 0x3c, 0x0f, 0xb5, 0xdd, 0xaa, 0xd9, + 0x88, 0x52, 0x2f, 0x74, 0x9b, 0x9e, 0xfd, 0xb5, 0x1f, 0x8a, 0x5e, 0xbc, 0x43, 0x91, 0x85, 0x46, + 0x23, 0x7f, 0x00, 0x8f, 0x46, 0x44, 0xc5, 0x00, 0x9c, 0x5f, 0x64, 0x9c, 0xe7, 0xba, 0x22, 0x03, + 0xd3, 0xee, 0x02, 0x1f, 0xf7, 0x7d, 0x39, 0x00, 0xe7, 0x3f, 0x64, 0x9c, 0x3a, 0xc3, 0x72, 0x97, + 0x62, 0xc6, 0xbb, 0x30, 0xf5, 0x1a, 0x6a, 0x1f, 0x3a, 0x2e, 0xdb, 0x1a, 0x19, 0x80, 0xee, 0x4b, + 0x8c, 0x6e, 0x92, 0x01, 0xc9, 0x5e, 0x09, 0xe6, 0xba, 0x05, 0xa9, 0x23, 0xb3, 0x86, 0x06, 0xa0, + 0xf8, 0x32, 0xa3, 0x18, 0xc5, 0xf2, 0x18, 0x5a, 0x80, 0xcc, 0xb1, 0xc3, 0x96, 0xa5, 0x78, 0xf8, + 0x57, 0x18, 0x3c, 0xcd, 0x31, 0x8c, 0xa2, 0xe5, 0xb4, 0x3a, 0x0d, 0xbc, 0x66, 0xc5, 0x53, 0x7c, + 0x95, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x83, 0x59, 0xdf, 0xe2, 0x14, 0x6e, 0xc8, 0x9e, 0x2f, 0x40, + 0xda, 0xb1, 0x1b, 0xa7, 0x8e, 0x3d, 0x88, 0x12, 0x5f, 0x63, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x36, + 0x8c, 0x0d, 0xea, 0x88, 0xdf, 0xf8, 0x21, 0x4f, 0x0f, 0xee, 0x81, 0x3b, 0x30, 0xc9, 0x0b, 0x94, + 0xe5, 0xd8, 0x03, 0x50, 0xfc, 0x63, 0x46, 0x31, 0x11, 0x82, 0xb1, 0xcb, 0xf0, 0x90, 0xeb, 0x1d, + 0xa3, 0x41, 0x48, 0xbe, 0xce, 0x2f, 0x83, 0x41, 0x98, 0x29, 0x0f, 0x91, 0x5d, 0x3b, 0x19, 0x8c, + 0xe1, 0x1b, 0xdc, 0x94, 0x1c, 0x83, 0x29, 0x4a, 0x30, 0xde, 0x34, 0xdb, 0xee, 0x89, 0xd9, 0x18, + 0xc8, 0x1d, 0xbf, 0xc9, 0x38, 0x32, 0x3e, 0x88, 0x59, 0xa4, 0x63, 0x9f, 0x85, 0xe6, 0xb7, 0xb8, + 0x45, 0x42, 0x30, 0x96, 0x7a, 0xae, 0x47, 0x36, 0xa0, 0xce, 0xc2, 0xf6, 0xdb, 0x3c, 0xf5, 0x28, + 0x76, 0x3b, 0xcc, 0x78, 0x1b, 0xc6, 0x5c, 0xeb, 0xb3, 0x03, 0xd1, 0xfc, 0x13, 0xee, 0x69, 0x02, + 0xc0, 0xe0, 0x7b, 0xf0, 0x58, 0xe4, 0x32, 0x31, 0x00, 0xd9, 0x3f, 0x65, 0x64, 0x33, 0x11, 0x4b, + 0x05, 0x2b, 0x09, 0x67, 0xa5, 0xfc, 0x67, 0xbc, 0x24, 0x20, 0x89, 0x6b, 0x17, 0xdf, 0x28, 0xb8, + 0xe6, 0xd1, 0xd9, 0xac, 0xf6, 0xcf, 0xb9, 0xd5, 0x28, 0x56, 0xb0, 0xda, 0x3e, 0xcc, 0x30, 0xc6, + 0xb3, 0xf9, 0xf5, 0x9b, 0xbc, 0xb0, 0x52, 0xf4, 0x81, 0xe8, 0xdd, 0xcf, 0xc0, 0xac, 0x6f, 0x4e, + 0xde, 0x91, 0xba, 0xd5, 0xa6, 0xd9, 0x1a, 0x80, 0xf9, 0x77, 0x18, 0x33, 0xaf, 0xf8, 0x7e, 0x4b, + 0xeb, 0x6e, 0x9b, 0x2d, 0x4c, 0xfe, 0x32, 0x64, 0x39, 0x79, 0xc7, 0x6e, 0xa3, 0x9a, 0x73, 0x6c, + 0x5b, 0x9f, 0x45, 0xf5, 0x01, 0xa8, 0xbf, 0x25, 0xb9, 0xea, 0x20, 0x04, 0xc7, 0xcc, 0x9b, 0xa0, + 0xf9, 0xbd, 0x4a, 0xd5, 0x6a, 0xb6, 0x9c, 0xb6, 0x17, 0xc3, 0xf8, 0x2f, 0xb8, 0xa7, 0x7c, 0xdc, + 0x26, 0x81, 0xe5, 0xcb, 0x30, 0x41, 0x0e, 0x07, 0x0d, 0xc9, 0xdf, 0x65, 0x44, 0xe3, 0x01, 0x8a, + 0x15, 0x8e, 0x9a, 0xd3, 0x6c, 0x99, 0xed, 0x41, 0xea, 0xdf, 0xbf, 0xe4, 0x85, 0x83, 0x41, 0x58, + 0xe1, 0xf0, 0x4e, 0x5b, 0x08, 0xaf, 0xf6, 0x03, 0x30, 0x7c, 0x9b, 0x17, 0x0e, 0x8e, 0x61, 0x14, + 0xbc, 0x61, 0x18, 0x80, 0xe2, 0x5f, 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x0a, 0x16, 0xda, 0x36, + 0x3a, 0xb6, 0x5c, 0xaf, 0x4d, 0xfb, 0xe0, 0xfe, 0x54, 0xbf, 0xf7, 0x43, 0xb1, 0x09, 0x33, 0x42, + 0xd0, 0xfc, 0x5d, 0x98, 0x94, 0x5a, 0x0c, 0x3d, 0xee, 0x9d, 0x85, 0xec, 0x5f, 0xfa, 0x31, 0x2b, + 0x46, 0x62, 0x87, 0x91, 0xdf, 0xc2, 0x7e, 0x17, 0xfb, 0x80, 0x78, 0xb2, 0xcf, 0xfd, 0xd8, 0x77, + 0xbd, 0xd0, 0x06, 0xe4, 0x37, 0x60, 0x5c, 0xe8, 0x01, 0xe2, 0xa9, 0xfe, 0x32, 0xa3, 0xca, 0x84, + 0x5b, 0x80, 0xfc, 0x1a, 0x24, 0xf1, 0x7a, 0x1e, 0x0f, 0xff, 0x2b, 0x0c, 0x4e, 0xc4, 0xf3, 0xcf, + 0x41, 0x8a, 0xaf, 0xe3, 0xf1, 0xd0, 0x5f, 0x66, 0x50, 0x1f, 0x82, 0xe1, 0x7c, 0x0d, 0x8f, 0x87, + 0xff, 0x55, 0x0e, 0xe7, 0x10, 0x0c, 0x1f, 0xdc, 0x84, 0x6f, 0xff, 0xf5, 0x24, 0xab, 0xc3, 0xdc, + 0x76, 0xb7, 0x61, 0x94, 0x2d, 0xde, 0xf1, 0xe8, 0x5f, 0x61, 0x27, 0xe7, 0x88, 0xfc, 0x0d, 0x18, + 0x1e, 0xd0, 0xe0, 0x7f, 0x83, 0x41, 0xa9, 0x7c, 0xbe, 0x04, 0xe9, 0xd0, 0x82, 0x1d, 0x0f, 0xff, + 0x9b, 0x0c, 0x1e, 0x46, 0x61, 0xd5, 0xd9, 0x82, 0x1d, 0x4f, 0xf0, 0xb7, 0xb8, 0xea, 0x0c, 0x81, + 0xcd, 0xc6, 0xd7, 0xea, 0x78, 0xf4, 0xdf, 0xe6, 0x56, 0xe7, 0x90, 0xfc, 0x0b, 0x30, 0xe6, 0xd7, + 0xdf, 0x78, 0xfc, 0xdf, 0x61, 0xf8, 0x00, 0x83, 0x2d, 0x10, 0xaa, 0xff, 0xf1, 0x14, 0x7f, 0x97, + 0x5b, 0x20, 0x84, 0xc2, 0x69, 0x24, 0xaf, 0xe9, 0xf1, 0x4c, 0xbf, 0xca, 0xd3, 0x48, 0x5a, 0xd2, + 0xb1, 0x37, 0x49, 0x19, 0x8c, 0xa7, 0xf8, 0x7b, 0xdc, 0x9b, 0x44, 0x1e, 0xab, 0x21, 0x2f, 0x92, + 0xf1, 0x1c, 0xff, 0x80, 0xab, 0x21, 0xad, 0x91, 0xf9, 0x5d, 0xd0, 0xbb, 0x17, 0xc8, 0x78, 0xbe, + 0x2f, 0x30, 0xbe, 0xa9, 0xae, 0xf5, 0x31, 0xff, 0x12, 0xcc, 0x44, 0x2f, 0x8e, 0xf1, 0xac, 0xbf, + 0xf6, 0x63, 0xe9, 0x76, 0x26, 0xbc, 0x36, 0xe6, 0xf7, 0x83, 0x2a, 0x1b, 0x5e, 0x18, 0xe3, 0x69, + 0xbf, 0xf8, 0x63, 0xb1, 0xd0, 0x86, 0xd7, 0xc5, 0x7c, 0x01, 0x20, 0x58, 0x93, 0xe2, 0xb9, 0xbe, + 0xc4, 0xb8, 0x42, 0x20, 0x9c, 0x1a, 0x6c, 0x49, 0x8a, 0xc7, 0x7f, 0x99, 0xa7, 0x06, 0x43, 0xe0, + 0xd4, 0xe0, 0xab, 0x51, 0x3c, 0xfa, 0x2b, 0x3c, 0x35, 0x38, 0x24, 0x7f, 0x1b, 0x52, 0x76, 0xa7, + 0xd1, 0xc0, 0xb1, 0xa5, 0xf7, 0x7f, 0x8d, 0x28, 0xfb, 0xdf, 0x7f, 0xc2, 0xc0, 0x1c, 0x90, 0x5f, + 0x83, 0x61, 0xd4, 0x3c, 0x44, 0xf5, 0x38, 0xe4, 0xff, 0xf8, 0x09, 0xaf, 0x27, 0x58, 0x3a, 0xff, + 0x02, 0x00, 0xbd, 0x99, 0x26, 0x4f, 0x89, 0x62, 0xb0, 0xff, 0xf3, 0x27, 0xec, 0x0d, 0x85, 0x00, + 0x12, 0x10, 0xd0, 0xf7, 0x1d, 0xfa, 0x13, 0xfc, 0x50, 0x24, 0x20, 0x37, 0xe0, 0xb7, 0x60, 0xf4, + 0x15, 0xd7, 0xb1, 0x3d, 0xf3, 0x38, 0x0e, 0xfd, 0xbf, 0x18, 0x9a, 0xcb, 0x63, 0x83, 0x35, 0x9d, + 0x36, 0xf2, 0xcc, 0x63, 0x37, 0x0e, 0xfb, 0xbf, 0x19, 0xd6, 0x07, 0x60, 0x70, 0xcd, 0x74, 0xbd, + 0x41, 0xae, 0xfb, 0xff, 0x70, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xe7, 0x57, 0xd1, 0x69, 0x1c, 0xf6, + 0x47, 0x5c, 0x69, 0x26, 0x9f, 0x7f, 0x0e, 0xc6, 0xf0, 0x47, 0xfa, 0xd6, 0x4e, 0x0c, 0xf8, 0x8f, + 0x18, 0x38, 0x40, 0xe0, 0x33, 0xbb, 0x5e, 0xdd, 0xb3, 0xe2, 0x8d, 0xfd, 0x7f, 0x99, 0xa7, 0xb9, + 0x7c, 0xbe, 0x00, 0x69, 0xd7, 0xab, 0xd7, 0x3b, 0xac, 0xa3, 0x89, 0x81, 0xff, 0xf1, 0x4f, 0xfc, + 0x9b, 0x5c, 0x1f, 0x53, 0xbc, 0x18, 0xbd, 0x59, 0x07, 0x77, 0x9c, 0x3b, 0x0e, 0xdd, 0xa6, 0x83, + 0xef, 0x37, 0xe0, 0x46, 0xcf, 0x5d, 0x37, 0xbc, 0x88, 0x5c, 0xa9, 0x39, 0xcd, 0x43, 0xc7, 0xbd, + 0x72, 0xe8, 0x78, 0x27, 0x57, 0xbc, 0x13, 0x84, 0xc7, 0xd8, 0xfe, 0x5b, 0x12, 0x7f, 0x9e, 0x3d, + 0xdb, 0xa6, 0x1d, 0x79, 0x1e, 0x5b, 0xb1, 0xb0, 0xde, 0x15, 0xb2, 0x25, 0xae, 0x9f, 0x87, 0x11, + 0x72, 0x25, 0x57, 0xc9, 0x63, 0x27, 0xa5, 0x98, 0xbc, 0xff, 0xee, 0xfc, 0x90, 0xc1, 0xc6, 0xfc, + 0xd9, 0x15, 0xb2, 0x67, 0x99, 0x10, 0x66, 0x57, 0xfc, 0xd9, 0x6b, 0x74, 0xdb, 0x52, 0x98, 0xbd, + 0xe6, 0xcf, 0xae, 0x92, 0x0d, 0x4c, 0x55, 0x98, 0x5d, 0xf5, 0x67, 0xd7, 0xc8, 0x26, 0xfd, 0xb8, + 0x30, 0xbb, 0xe6, 0xcf, 0x5e, 0x27, 0x5b, 0xf3, 0x49, 0x61, 0xf6, 0xba, 0x3f, 0x7b, 0x83, 0xec, + 0xca, 0x4f, 0x09, 0xb3, 0x37, 0xfc, 0xd9, 0x9b, 0x64, 0x37, 0x5e, 0x17, 0x66, 0x6f, 0xfa, 0xb3, + 0xb7, 0xc8, 0x2b, 0x26, 0xa3, 0xc2, 0xec, 0x2d, 0x7d, 0x0e, 0x46, 0xe9, 0x95, 0x2f, 0x93, 0x47, + 0xb7, 0x93, 0x6c, 0x9a, 0x0f, 0x06, 0xf3, 0x57, 0xc9, 0xeb, 0x24, 0x23, 0xe2, 0xfc, 0xd5, 0x60, + 0x7e, 0x85, 0xbc, 0x58, 0xad, 0x89, 0xf3, 0x2b, 0xc1, 0xfc, 0xb5, 0xec, 0x38, 0x79, 0xa5, 0x46, + 0x98, 0xbf, 0x16, 0xcc, 0xaf, 0x66, 0x27, 0x70, 0x30, 0x8b, 0xf3, 0xab, 0xc1, 0xfc, 0x5a, 0x76, + 0xf2, 0x82, 0xb2, 0x90, 0x11, 0xe7, 0xd7, 0x72, 0xbf, 0x44, 0xdc, 0x6b, 0x07, 0xee, 0x9d, 0x11, + 0xdd, 0xeb, 0x3b, 0x76, 0x46, 0x74, 0xac, 0xef, 0xd2, 0x19, 0xd1, 0xa5, 0xbe, 0x33, 0x67, 0x44, + 0x67, 0xfa, 0x6e, 0x9c, 0x11, 0xdd, 0xe8, 0x3b, 0x70, 0x46, 0x74, 0xa0, 0xef, 0xba, 0x19, 0xd1, + 0x75, 0xbe, 0xd3, 0x66, 0x44, 0xa7, 0xf9, 0xee, 0x9a, 0x11, 0xdd, 0xe5, 0x3b, 0x2a, 0x2b, 0x39, + 0x2a, 0x70, 0x51, 0x56, 0x72, 0x51, 0xe0, 0x9c, 0xac, 0xe4, 0x9c, 0xc0, 0x2d, 0x59, 0xc9, 0x2d, + 0x81, 0x43, 0xb2, 0x92, 0x43, 0x02, 0x57, 0x64, 0x25, 0x57, 0x04, 0x4e, 0x60, 0x39, 0x66, 0xa0, + 0x56, 0x44, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, + 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0xfd, + 0x73, 0x4c, 0x8d, 0xc9, 0x31, 0x35, 0x26, 0xc7, 0xd4, 0x98, 0x1c, 0x53, 0x63, 0x72, 0x4c, 0x8d, + 0xc9, 0x31, 0xb5, 0x67, 0x8e, 0x05, 0xee, 0x9d, 0x11, 0xdd, 0x1b, 0x99, 0x63, 0x6a, 0x8f, 0x1c, + 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, + 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x95, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, + 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0x35, 0x9c, 0x63, 0xff, 0x5a, 0x05, 0x9d, + 0xe6, 0xd8, 0x2e, 0x79, 0xf9, 0x87, 0xb9, 0x62, 0x4e, 0xca, 0xb4, 0x11, 0xec, 0x3a, 0x2d, 0x70, + 0xc9, 0x9c, 0x94, 0x6b, 0xe2, 0xfc, 0x8a, 0x3f, 0xcf, 0xb3, 0x4d, 0x9c, 0xbf, 0xe6, 0xcf, 0xf3, + 0x7c, 0x13, 0xe7, 0x57, 0xfd, 0x79, 0x9e, 0x71, 0xe2, 0xfc, 0x9a, 0x3f, 0xcf, 0x73, 0x4e, 0x9c, + 0xbf, 0xee, 0xcf, 0xf3, 0xac, 0x13, 0xe7, 0x6f, 0xf8, 0xf3, 0x3c, 0xef, 0xc4, 0xf9, 0x9b, 0xfe, + 0x3c, 0xcf, 0x3c, 0x71, 0xfe, 0x96, 0x7e, 0x41, 0xce, 0x3d, 0x2e, 0xe0, 0xbb, 0xf6, 0x82, 0x9c, + 0x7d, 0x92, 0xc4, 0xd5, 0x40, 0x82, 0xe7, 0x9f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x94, 0x24, + 0xae, 0xe5, 0x3e, 0x4f, 0xdc, 0x67, 0xcb, 0xee, 0x9b, 0x95, 0xdc, 0x97, 0x08, 0xb9, 0x6e, 0x56, + 0x72, 0x5d, 0x22, 0xe4, 0xb6, 0x59, 0xc9, 0x6d, 0x89, 0x90, 0xcb, 0x66, 0x25, 0x97, 0x25, 0x42, + 0xee, 0x9a, 0x95, 0xdc, 0x95, 0x08, 0xb9, 0x6a, 0x56, 0x72, 0x55, 0x22, 0xe4, 0xa6, 0x59, 0xc9, + 0x4d, 0x89, 0x90, 0x8b, 0x66, 0x25, 0x17, 0x25, 0x42, 0xee, 0x99, 0x95, 0xdc, 0x93, 0x08, 0xb9, + 0xe6, 0xbc, 0xec, 0x9a, 0x44, 0xd8, 0x2d, 0xe7, 0x65, 0xb7, 0x24, 0xc2, 0x2e, 0x39, 0x2f, 0xbb, + 0x24, 0x11, 0x76, 0xc7, 0x79, 0xd9, 0x1d, 0x89, 0xb0, 0x2b, 0xfe, 0x2c, 0xc1, 0x3b, 0xc2, 0x3d, + 0xaf, 0xdd, 0xa9, 0x79, 0x1f, 0xa8, 0x23, 0x5c, 0x16, 0xda, 0x87, 0xf4, 0x8a, 0xbe, 0x44, 0x1a, + 0xd6, 0x70, 0xc7, 0x29, 0xad, 0x60, 0xcb, 0x42, 0x63, 0x11, 0x42, 0xd8, 0xd1, 0x88, 0xd5, 0x0f, + 0xd4, 0x1b, 0x2e, 0x0b, 0x6d, 0x46, 0xbc, 0x7e, 0x37, 0x3f, 0xf2, 0x8e, 0xed, 0xed, 0x04, 0xef, + 0xd8, 0x98, 0xf9, 0xcf, 0xda, 0xb1, 0x2d, 0xc6, 0x9b, 0xdc, 0x37, 0xf6, 0x62, 0xbc, 0xb1, 0xbb, + 0x56, 0x9d, 0x41, 0x3b, 0xb8, 0xc5, 0x78, 0xd3, 0xfa, 0x46, 0xfd, 0x70, 0xfb, 0x2d, 0x16, 0xc1, + 0x06, 0x6a, 0x45, 0x44, 0xf0, 0x59, 0xfb, 0xad, 0x65, 0xa1, 0x94, 0x9c, 0x35, 0x82, 0xd5, 0x33, + 0x47, 0xf0, 0x59, 0x3b, 0xaf, 0x65, 0xa1, 0xbc, 0x9c, 0x39, 0x82, 0x3f, 0x82, 0x7e, 0x88, 0x45, + 0x70, 0x60, 0xfe, 0xb3, 0xf6, 0x43, 0x8b, 0xf1, 0x26, 0x8f, 0x8c, 0x60, 0xf5, 0x0c, 0x11, 0x3c, + 0x48, 0x7f, 0xb4, 0x18, 0x6f, 0xda, 0xe8, 0x08, 0xfe, 0xc0, 0xdd, 0xcc, 0x57, 0x15, 0x98, 0xaa, + 0x58, 0xf5, 0x72, 0xf3, 0x10, 0xd5, 0xeb, 0xa8, 0xce, 0xec, 0xb8, 0x2c, 0x54, 0x82, 0x1e, 0xae, + 0x7e, 0xe7, 0xdd, 0xf9, 0xc0, 0xc2, 0x6b, 0x90, 0xa2, 0x36, 0x5d, 0x5e, 0xce, 0xde, 0x57, 0x62, + 0x2a, 0x9c, 0x2f, 0xaa, 0x5f, 0xe4, 0xb0, 0xab, 0xcb, 0xd9, 0xff, 0xa4, 0x84, 0xaa, 0x9c, 0x3f, + 0x9c, 0xfb, 0x55, 0xa2, 0xa1, 0xfd, 0x81, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x21, 0xdd, 0x1e, 0xef, + 0xd2, 0x2d, 0xa4, 0x55, 0x07, 0x26, 0x2b, 0x56, 0xbd, 0x42, 0xbe, 0xd2, 0x3b, 0x88, 0x4a, 0x54, + 0x46, 0xaa, 0x07, 0xcb, 0x42, 0x58, 0x86, 0x11, 0x7e, 0x48, 0x8b, 0x35, 0x22, 0x67, 0xe1, 0xd3, + 0xda, 0xc2, 0x69, 0x17, 0x7b, 0x9d, 0x36, 0xa8, 0xec, 0xfe, 0x09, 0x17, 0x7b, 0x9d, 0x30, 0xc8, + 0x21, 0xff, 0x54, 0x6f, 0xf0, 0xc5, 0x99, 0xbe, 0x85, 0xa3, 0x9f, 0x87, 0xc4, 0x26, 0x7d, 0x43, + 0x38, 0x53, 0xcc, 0x60, 0xa5, 0xbe, 0xfb, 0xee, 0x7c, 0xf2, 0xa0, 0x63, 0xd5, 0x8d, 0xc4, 0x66, + 0x5d, 0xbf, 0x0b, 0xc3, 0x9f, 0x66, 0x5f, 0x8c, 0xc3, 0x02, 0xab, 0x4c, 0xe0, 0xe3, 0x31, 0x5b, + 0x4c, 0x84, 0x7a, 0xe9, 0xc0, 0xb2, 0xbd, 0xab, 0x2b, 0x37, 0x0d, 0x4a, 0x91, 0xfb, 0xff, 0x01, + 0xe8, 0x39, 0xd7, 0x4d, 0xf7, 0x44, 0xaf, 0x70, 0x66, 0x7a, 0xea, 0x9b, 0xdf, 0x7d, 0x77, 0x7e, + 0x75, 0x10, 0xd6, 0x67, 0xeb, 0xa6, 0x7b, 0xf2, 0xac, 0x77, 0xda, 0x42, 0x4b, 0xc5, 0x53, 0x0f, + 0xb9, 0x9c, 0xbd, 0xc5, 0x57, 0x3d, 0x76, 0x5d, 0xd9, 0xd0, 0x75, 0xa5, 0x84, 0x6b, 0xda, 0x10, + 0xaf, 0x69, 0xf9, 0x61, 0xaf, 0xe7, 0x0d, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xe3, 0x2c, 0xa9, 0x7e, + 0x50, 0x4b, 0xb6, 0x78, 0x7d, 0x94, 0xae, 0x55, 0xed, 0x77, 0xad, 0xea, 0x07, 0xb9, 0xd6, 0x3f, + 0xa1, 0xd9, 0xea, 0xe7, 0xd3, 0x81, 0x4d, 0xdf, 0x4e, 0xfc, 0xf3, 0xb5, 0x17, 0xf4, 0xa1, 0x76, + 0x01, 0xf9, 0xe4, 0xfd, 0xb7, 0xe6, 0x95, 0xdc, 0x57, 0x13, 0xfc, 0xca, 0x69, 0x22, 0x3d, 0xdc, + 0x95, 0xff, 0x79, 0xe9, 0xa9, 0x3e, 0x0a, 0x0b, 0x7d, 0x45, 0x81, 0x99, 0xae, 0x4a, 0x4e, 0xcd, + 0xf4, 0xe1, 0x96, 0x73, 0xfb, 0xac, 0xe5, 0x9c, 0x29, 0xf8, 0xbb, 0x0a, 0x9c, 0x93, 0xca, 0x2b, + 0x55, 0xef, 0x8a, 0xa4, 0xde, 0xa3, 0xdd, 0x67, 0x22, 0x82, 0x21, 0xed, 0xc2, 0xee, 0x95, 0x00, + 0x21, 0x66, 0xdf, 0xef, 0xab, 0x92, 0xdf, 0xcf, 0xfb, 0x80, 0x08, 0x73, 0xf1, 0x08, 0x60, 0x6a, + 0x3b, 0x90, 0xdc, 0x6f, 0x23, 0xa4, 0xcf, 0x41, 0x62, 0xa7, 0xcd, 0x34, 0x9c, 0xa0, 0xf8, 0x9d, + 0x76, 0xb1, 0x6d, 0xda, 0xb5, 0x13, 0x23, 0xb1, 0xd3, 0xd6, 0x2f, 0x82, 0x5a, 0x60, 0x3f, 0x3d, + 0x90, 0x5e, 0x99, 0xa4, 0x02, 0x05, 0xbb, 0xce, 0x24, 0xf0, 0x9c, 0x3e, 0x07, 0xc9, 0x2d, 0x64, + 0x1e, 0x31, 0x25, 0x80, 0xca, 0xe0, 0x11, 0x83, 0x8c, 0xb3, 0x13, 0xbe, 0x0c, 0x29, 0x4e, 0xac, + 0x5f, 0xc2, 0x88, 0x23, 0x8f, 0x9d, 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0xb3, 0xfa, 0x65, + 0x18, 0x36, 0xac, 0xe3, 0x13, 0x8f, 0x9d, 0xbc, 0x5b, 0x8c, 0x4e, 0xe7, 0xee, 0xc1, 0x98, 0xaf, + 0xd1, 0x87, 0x4c, 0xbd, 0x4e, 0x2f, 0x4d, 0x9f, 0x0d, 0xaf, 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, + 0x17, 0x20, 0xb5, 0xe7, 0xb5, 0x83, 0xa2, 0xcf, 0x3b, 0x52, 0x7f, 0x34, 0xf7, 0x4b, 0x0a, 0xa4, + 0xd6, 0x11, 0x6a, 0x11, 0x83, 0x3f, 0x05, 0xc9, 0x75, 0xe7, 0x75, 0x9b, 0x29, 0x38, 0xc5, 0x2c, + 0x8a, 0xa7, 0x99, 0x4d, 0xc9, 0xb4, 0xfe, 0x54, 0xd8, 0xee, 0xd3, 0xbe, 0xdd, 0x43, 0x72, 0xc4, + 0xf6, 0x39, 0xc1, 0xf6, 0xcc, 0x81, 0x58, 0xa8, 0xcb, 0xfe, 0x37, 0x20, 0x1d, 0x3a, 0x8b, 0xbe, + 0xc0, 0xd4, 0x48, 0xc8, 0xc0, 0xb0, 0xad, 0xb0, 0x44, 0x0e, 0xc1, 0xb8, 0x70, 0x62, 0x0c, 0x0d, + 0x99, 0xb8, 0x07, 0x94, 0x98, 0x79, 0x51, 0x34, 0x73, 0xb4, 0x28, 0x33, 0xf5, 0x32, 0xb5, 0x11, + 0x31, 0xf7, 0x25, 0x1a, 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x58, 0x8d, 0xdc, + 0x73, 0x00, 0x34, 0xe5, 0xcb, 0x76, 0xa7, 0x29, 0x65, 0xdd, 0x04, 0x37, 0xf0, 0xfe, 0x09, 0xda, + 0x47, 0x2e, 0x11, 0x11, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, 0xc1, 0x3f, 0x13, 0x8b, 0x8f, + 0xec, 0xc4, 0xb0, 0x68, 0x96, 0x8a, 0xde, 0x43, 0x5e, 0xc1, 0x76, 0xbc, 0x13, 0xd4, 0x96, 0x10, + 0x2b, 0xfa, 0x35, 0x21, 0x61, 0x27, 0x56, 0x1e, 0xf7, 0x11, 0x3d, 0x41, 0xd7, 0x72, 0xdf, 0x24, + 0x0a, 0xe2, 0x56, 0xa0, 0xeb, 0x02, 0xd5, 0x01, 0x2e, 0x50, 0xbf, 0x2e, 0xf4, 0x6f, 0x7d, 0xd4, + 0x94, 0x6e, 0x2d, 0x6f, 0x09, 0xf7, 0x39, 0xfd, 0x95, 0x15, 0xef, 0x31, 0xb9, 0x4d, 0xb9, 0xca, + 0xcf, 0xc4, 0xaa, 0xdc, 0xa3, 0xbb, 0x3d, 0xab, 0x4d, 0xd5, 0x41, 0x6d, 0xfa, 0xfb, 0x7e, 0xc7, + 0x41, 0x7f, 0xc4, 0x81, 0xfc, 0x66, 0x88, 0xfe, 0xf1, 0x58, 0xdf, 0xe7, 0x95, 0x92, 0xaf, 0xea, + 0xea, 0xa0, 0xee, 0xcf, 0x27, 0x8a, 0x45, 0x5f, 0xdd, 0x1b, 0x67, 0x08, 0x81, 0x7c, 0xa2, 0x54, + 0xf2, 0xcb, 0x76, 0xea, 0xf3, 0x6f, 0xcd, 0x2b, 0xdf, 0x78, 0x6b, 0x7e, 0x28, 0xf7, 0x9b, 0x0a, + 0x4c, 0x31, 0xc9, 0x50, 0xe0, 0x3e, 0x2b, 0x29, 0xff, 0x08, 0xaf, 0x19, 0x51, 0x16, 0xf8, 0xa9, + 0x05, 0xef, 0x77, 0x14, 0xc8, 0x76, 0xe9, 0xca, 0xed, 0xbd, 0x3c, 0x90, 0xca, 0x79, 0xa5, 0xfc, + 0xb3, 0xb7, 0xf9, 0x3d, 0x18, 0xde, 0xb7, 0x9a, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, + 0x1f, 0xe6, 0xd0, 0x21, 0x3e, 0x47, 0x95, 0x13, 0xe6, 0x56, 0xf4, 0x2c, 0x24, 0xd7, 0x4d, 0xcf, + 0x24, 0x1a, 0x64, 0xfc, 0xfa, 0x6a, 0x7a, 0x66, 0xee, 0x1a, 0x64, 0xb6, 0x4f, 0xc9, 0x2b, 0x34, + 0x75, 0xf2, 0x7a, 0x88, 0xd8, 0xfd, 0xf1, 0x7e, 0xf5, 0xea, 0xe2, 0x70, 0xaa, 0xae, 0xdd, 0x57, + 0xf2, 0x49, 0xa2, 0xcf, 0x6b, 0x30, 0xb1, 0x83, 0xd5, 0x26, 0x38, 0x02, 0xbb, 0x00, 0xca, 0xb6, + 0xd8, 0x08, 0x85, 0x59, 0x0d, 0x65, 0x5b, 0x6a, 0x1f, 0x55, 0xdf, 0x3c, 0x52, 0xdb, 0xa6, 0xfa, + 0x6d, 0xdb, 0x62, 0x32, 0x35, 0xa1, 0x4d, 0x2d, 0x26, 0x53, 0xa0, 0x8d, 0xb3, 0xf3, 0xfe, 0x07, + 0x15, 0x34, 0xda, 0xea, 0xac, 0xa3, 0x23, 0xcb, 0xb6, 0xbc, 0xee, 0x7e, 0xd5, 0xd7, 0x58, 0x7f, + 0x01, 0xc6, 0xb0, 0x49, 0x37, 0xd8, 0x4f, 0x6f, 0x61, 0xd3, 0x5f, 0x64, 0x2d, 0x8a, 0x44, 0xc1, + 0x06, 0x48, 0xe8, 0x04, 0x18, 0x7d, 0x03, 0xd4, 0x4a, 0x65, 0x9b, 0x2d, 0x6e, 0xab, 0x7d, 0xa1, + 0xec, 0x0d, 0x1c, 0x76, 0xc4, 0xc6, 0xdc, 0x63, 0x03, 0x13, 0xe8, 0xab, 0x90, 0xa8, 0x6c, 0xb3, + 0x86, 0xf7, 0xd2, 0x20, 0x34, 0x46, 0xa2, 0xb2, 0x3d, 0xfb, 0x6f, 0x14, 0x18, 0x17, 0x46, 0xf5, + 0x1c, 0x64, 0xe8, 0x40, 0xe8, 0x72, 0x47, 0x0c, 0x61, 0x8c, 0xeb, 0x9c, 0xf8, 0x80, 0x3a, 0xcf, + 0x16, 0x60, 0x52, 0x1a, 0xd7, 0x97, 0x40, 0x0f, 0x0f, 0x31, 0x25, 0xe8, 0xcf, 0x16, 0x45, 0xcc, + 0xe4, 0x9e, 0x00, 0x08, 0xec, 0xea, 0xff, 0xda, 0x4e, 0xa5, 0xbc, 0xb7, 0x5f, 0x5e, 0xd7, 0x94, + 0xdc, 0xb7, 0x15, 0x48, 0xb3, 0xb6, 0xb5, 0xe6, 0xb4, 0x90, 0x5e, 0x04, 0xa5, 0xc0, 0x22, 0xe8, + 0xe1, 0xf4, 0x56, 0x0a, 0xfa, 0x15, 0x50, 0x8a, 0x83, 0xbb, 0x5a, 0x29, 0xea, 0x2b, 0xa0, 0x94, + 0x98, 0x83, 0x07, 0xf3, 0x8c, 0x52, 0xca, 0xfd, 0x91, 0x0a, 0xd3, 0xe1, 0x36, 0x9a, 0xd7, 0x93, + 0x8b, 0xe2, 0x7d, 0x53, 0x7e, 0xec, 0xea, 0xca, 0xb5, 0xd5, 0x25, 0xfc, 0x8f, 0x1f, 0x92, 0x17, + 0xc5, 0x5b, 0xa8, 0x6e, 0x91, 0xae, 0xd7, 0x44, 0xf2, 0xc9, 0xd0, 0x6c, 0xd7, 0x6b, 0x22, 0xc2, + 0x6c, 0xd7, 0x6b, 0x22, 0xc2, 0x6c, 0xd7, 0x6b, 0x22, 0xc2, 0x6c, 0xd7, 0xa3, 0x00, 0x61, 0xb6, + 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xfb, 0x35, 0x11, 0x36, 0xdd, 0xf3, + 0x35, 0x11, 0x71, 0xbe, 0xfb, 0x35, 0x11, 0x71, 0xbe, 0xfb, 0x35, 0x91, 0x7c, 0xd2, 0x6b, 0x77, + 0x50, 0xef, 0x87, 0x0e, 0x22, 0xbe, 0xdf, 0x3d, 0x60, 0x50, 0x80, 0x77, 0x60, 0x92, 0xee, 0x47, + 0x94, 0x1c, 0xdb, 0x33, 0x2d, 0x1b, 0xb5, 0xf5, 0x4f, 0x40, 0x86, 0x0e, 0xd1, 0xbb, 0x9c, 0xa8, + 0xbb, 0x40, 0x3a, 0xcf, 0xca, 0xad, 0x20, 0x9d, 0xfb, 0xb3, 0x24, 0xcc, 0xd0, 0x81, 0x8a, 0xd9, + 0x44, 0xc2, 0x4b, 0x46, 0x97, 0xa5, 0x47, 0x4a, 0x13, 0x18, 0xfe, 0xe0, 0xdd, 0x79, 0x3a, 0x5a, + 0xf0, 0x83, 0xe9, 0xb2, 0xf4, 0x70, 0x49, 0x94, 0x0b, 0xd6, 0x9f, 0xcb, 0xd2, 0x8b, 0x47, 0xa2, + 0x9c, 0xbf, 0xdc, 0xf8, 0x72, 0xfc, 0x15, 0x24, 0x51, 0x6e, 0xdd, 0x8f, 0xb2, 0xcb, 0xd2, 0xcb, + 0x48, 0xa2, 0x5c, 0xd9, 0x8f, 0xb7, 0xcb, 0xd2, 0xa3, 0x27, 0x51, 0x6e, 0xc3, 0x8f, 0xbc, 0xcb, + 0xd2, 0x43, 0x28, 0x51, 0xee, 0x8e, 0x1f, 0x83, 0x97, 0xa5, 0x57, 0x95, 0x44, 0xb9, 0x17, 0xfd, + 0x68, 0xbc, 0x2c, 0xbd, 0xb4, 0x24, 0xca, 0x6d, 0xfa, 0x71, 0xb9, 0x20, 0xbf, 0xbe, 0x24, 0x0a, + 0xde, 0x0d, 0x22, 0x74, 0x41, 0x7e, 0x91, 0x49, 0x94, 0xfc, 0x64, 0x10, 0xab, 0x0b, 0xf2, 0x2b, + 0x4d, 0xa2, 0xe4, 0x56, 0x10, 0xb5, 0x0b, 0xf2, 0xa3, 0x32, 0x51, 0x72, 0x3b, 0x88, 0xdf, 0x05, + 0xf9, 0xa1, 0x99, 0x28, 0x59, 0x09, 0x22, 0x79, 0x41, 0x7e, 0x7c, 0x26, 0x4a, 0xee, 0x04, 0x7b, + 0xe8, 0x7f, 0x20, 0x85, 0x5f, 0xe8, 0x25, 0xa8, 0x9c, 0x14, 0x7e, 0x10, 0x11, 0x7a, 0x39, 0x29, + 0xf4, 0x20, 0x22, 0xec, 0x72, 0x52, 0xd8, 0x41, 0x44, 0xc8, 0xe5, 0xa4, 0x90, 0x83, 0x88, 0x70, + 0xcb, 0x49, 0xe1, 0x06, 0x11, 0xa1, 0x96, 0x93, 0x42, 0x0d, 0x22, 0xc2, 0x2c, 0x27, 0x85, 0x19, + 0x44, 0x84, 0x58, 0x4e, 0x0a, 0x31, 0x88, 0x08, 0xaf, 0x9c, 0x14, 0x5e, 0x10, 0x11, 0x5a, 0x97, + 0xe4, 0xd0, 0x82, 0xa8, 0xb0, 0xba, 0x24, 0x87, 0x15, 0x44, 0x85, 0xd4, 0x93, 0x72, 0x48, 0x8d, + 0x3d, 0x78, 0x77, 0x7e, 0x18, 0x0f, 0x85, 0xa2, 0xe9, 0x92, 0x1c, 0x4d, 0x10, 0x15, 0x49, 0x97, + 0xe4, 0x48, 0x82, 0xa8, 0x28, 0xba, 0x24, 0x47, 0x11, 0x44, 0x45, 0xd0, 0xdb, 0x72, 0x04, 0x05, + 0xaf, 0xf8, 0xe4, 0xa4, 0x27, 0x8a, 0x71, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, + 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, + 0x41, 0xea, 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x24, 0xbf, 0xf0, 0x00, + 0x51, 0x05, 0xe9, 0x92, 0xfc, 0xe4, 0x33, 0x3e, 0x84, 0xd4, 0x81, 0x42, 0x48, 0xed, 0x15, 0x42, + 0x7f, 0xa0, 0xc2, 0xb4, 0x10, 0x42, 0xec, 0xf1, 0xd0, 0x87, 0x55, 0x81, 0xae, 0x0f, 0xf0, 0x7e, + 0x45, 0x54, 0x4c, 0x5d, 0x1f, 0xe0, 0x19, 0x75, 0xbf, 0x38, 0xeb, 0xae, 0x42, 0xe5, 0x01, 0xaa, + 0xd0, 0x86, 0x1f, 0x43, 0xd7, 0x07, 0x78, 0xef, 0xa2, 0x3b, 0xf6, 0x6e, 0xf6, 0x2b, 0x02, 0x2f, + 0x0e, 0x54, 0x04, 0x36, 0x07, 0x2a, 0x02, 0x77, 0x03, 0x0f, 0xfe, 0x72, 0x02, 0xce, 0x05, 0x1e, + 0xa4, 0x9f, 0xc8, 0x4f, 0x24, 0xe5, 0x42, 0x4f, 0xa8, 0x74, 0xfe, 0xd4, 0x26, 0xe4, 0xc6, 0xc4, + 0x66, 0x5d, 0xdf, 0x15, 0x9f, 0x55, 0xe5, 0xcf, 0xfa, 0xfc, 0x26, 0xe4, 0x71, 0xb6, 0x17, 0x7a, + 0x09, 0xd4, 0xcd, 0xba, 0x4b, 0xaa, 0x45, 0xd4, 0x69, 0x4b, 0x06, 0x9e, 0xd6, 0x0d, 0x18, 0x21, + 0xe2, 0x2e, 0x71, 0xef, 0x07, 0x39, 0xf1, 0xba, 0xc1, 0x98, 0x72, 0x6f, 0x2b, 0x70, 0x41, 0x08, + 0xe5, 0x0f, 0xe7, 0x89, 0xc1, 0xed, 0x81, 0x9e, 0x18, 0x08, 0x09, 0x12, 0x3c, 0x3d, 0x78, 0xba, + 0xfb, 0x41, 0x75, 0x38, 0x4b, 0xe4, 0x27, 0x09, 0x7f, 0x11, 0x26, 0x82, 0x2b, 0x20, 0xb7, 0x6c, + 0x6b, 0xf1, 0x9b, 0x99, 0x51, 0xa9, 0xb9, 0x26, 0x6d, 0xa2, 0xf5, 0x85, 0xf9, 0xd9, 0x9a, 0xcb, + 0xc3, 0x64, 0x45, 0xfc, 0x2e, 0x4f, 0xdc, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0xf7, 0xbf, 0x36, 0x3f, + 0x94, 0xfb, 0x38, 0x64, 0xc2, 0x5f, 0xd7, 0x91, 0x80, 0x63, 0x1c, 0x98, 0x4f, 0xbe, 0x83, 0xa5, + 0xff, 0xbe, 0x02, 0x8f, 0x84, 0xc5, 0x5f, 0xb2, 0xbc, 0x93, 0x4d, 0x1b, 0xf7, 0xf4, 0xcf, 0x41, + 0x0a, 0x31, 0xc7, 0xb1, 0x5f, 0x3b, 0x61, 0xb7, 0x91, 0x91, 0xe2, 0x4b, 0xe4, 0x5f, 0xc3, 0x87, + 0x48, 0x5b, 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x17, 0xf5, 0x1a, 0x97, 0xf4, + 0xfa, 0x8d, 0x08, 0xbd, 0x48, 0x1c, 0xe9, 0x77, 0x05, 0xbd, 0x42, 0x77, 0xab, 0x91, 0xe2, 0x4b, + 0x3c, 0xf8, 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0x65, 0x59, 0x26, + 0x5a, 0xcf, 0x75, 0x48, 0x56, 0x9c, 0x3a, 0xf9, 0x1d, 0x16, 0xf2, 0x7b, 0xb9, 0xcc, 0xc8, 0xec, + 0xc7, 0x73, 0x2f, 0x43, 0xaa, 0x74, 0x62, 0x35, 0xea, 0x6d, 0x64, 0xb3, 0x47, 0xf6, 0x6c, 0x07, + 0x1d, 0x63, 0x0c, 0x7f, 0x2e, 0x57, 0x82, 0xa9, 0x8a, 0x63, 0x17, 0x4f, 0xbd, 0x70, 0xdd, 0x58, + 0x92, 0x52, 0x84, 0x3d, 0xf2, 0x21, 0x5f, 0x00, 0xc1, 0x02, 0xc5, 0xe1, 0xef, 0xbe, 0x3b, 0xaf, + 0xec, 0xfb, 0xdb, 0xe7, 0xdb, 0xf0, 0x28, 0x4b, 0x9f, 0x2e, 0xaa, 0x95, 0x38, 0xaa, 0x31, 0xf6, + 0x98, 0x3a, 0x44, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, + 0x53, 0xcf, 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x9d, 0xa4, 0xd9, 0x93, 0x30, 0xe6, 0xcf, 0x85, + 0xa2, 0x21, 0x9c, 0x29, 0x2b, 0x8b, 0x39, 0x48, 0x87, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, + 0xe1, 0xff, 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x52, 0xda, 0xbe, 0xc4, + 0x33, 0xeb, 0x1a, 0xe0, 0xff, 0xca, 0x5a, 0x7a, 0x36, 0xf9, 0xf9, 0x7f, 0x34, 0x37, 0xb4, 0x78, + 0x1b, 0xf4, 0xee, 0x8d, 0x4e, 0x7d, 0x04, 0x12, 0x05, 0x4c, 0xf9, 0x28, 0x24, 0x8a, 0x45, 0x4d, + 0x99, 0x9d, 0xfc, 0x6b, 0x5f, 0xbe, 0x90, 0x2e, 0x92, 0xef, 0x22, 0xdf, 0x43, 0x5e, 0xb1, 0xc8, + 0xc0, 0xcf, 0xc3, 0x23, 0x91, 0x1b, 0xa5, 0x18, 0x5f, 0x2a, 0x51, 0xfc, 0xfa, 0x7a, 0x17, 0x7e, + 0x7d, 0x9d, 0xe0, 0x95, 0x3c, 0x7f, 0xe0, 0x5c, 0xd0, 0x23, 0xb6, 0x25, 0xb3, 0xf5, 0xd0, 0x03, + 0xee, 0x42, 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, + 0x97, 0x22, 0xf1, 0x47, 0xd2, 0x53, 0x55, 0x71, 0x85, 0x60, 0x24, 0x25, 0x5f, 0xe1, 0xf5, 0x48, + 0x92, 0x93, 0xd0, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, + 0xfe, 0x0a, 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x4b, + 0xe5, 0x4b, 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, + 0x49, 0x62, 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xcd, 0x0d, 0xbd, 0xf3, 0xde, 0xdc, 0xd0, + 0x7f, 0x79, 0x6f, 0x6e, 0xe8, 0x7b, 0xef, 0xcd, 0x29, 0x3f, 0x78, 0x6f, 0x4e, 0xf9, 0xd1, 0x7b, + 0x73, 0xca, 0x9f, 0xbe, 0x37, 0xa7, 0xbc, 0xf9, 0x60, 0x4e, 0xf9, 0xc6, 0x83, 0x39, 0xe5, 0x9b, + 0x0f, 0xe6, 0x94, 0xdf, 0x7b, 0x30, 0xa7, 0xbc, 0xfd, 0x60, 0x4e, 0xb9, 0xff, 0x60, 0x4e, 0x79, + 0xe7, 0xc1, 0x9c, 0xf2, 0xbd, 0x07, 0x73, 0xca, 0x0f, 0x1e, 0xcc, 0x0d, 0xfd, 0xe8, 0xc1, 0x9c, + 0xf2, 0xa7, 0x0f, 0xe6, 0x86, 0xde, 0x7c, 0x7f, 0x6e, 0xe8, 0xad, 0xf7, 0xe7, 0x86, 0xbe, 0xf1, + 0xfe, 0x9c, 0x02, 0xef, 0xaf, 0xc2, 0x1c, 0xfb, 0x22, 0x99, 0x8d, 0x2c, 0x1c, 0x74, 0x57, 0xbc, + 0x13, 0x44, 0x1a, 0x82, 0x6b, 0xfc, 0xd7, 0x9c, 0xfc, 0x81, 0x33, 0x7e, 0xa5, 0x6c, 0xf6, 0x61, + 0xbf, 0xc0, 0x96, 0xfb, 0xb7, 0xc3, 0x30, 0xca, 0x37, 0x82, 0xa3, 0x7e, 0x0f, 0x7a, 0x0d, 0x52, + 0x27, 0x56, 0xc3, 0x6c, 0x5b, 0xde, 0x29, 0xdb, 0x01, 0x7d, 0x6c, 0x29, 0x50, 0x9b, 0xef, 0x99, + 0xbe, 0xd8, 0x69, 0x3a, 0x9d, 0xb6, 0xe1, 0x8b, 0xea, 0x17, 0x20, 0x73, 0x82, 0xac, 0xe3, 0x13, + 0xaf, 0x6a, 0xd9, 0xd5, 0x5a, 0x93, 0x74, 0xca, 0xe3, 0x06, 0xd0, 0xb1, 0x4d, 0xbb, 0xd4, 0xc4, + 0x27, 0xab, 0x9b, 0x9e, 0x49, 0xee, 0xd0, 0x33, 0x06, 0xf9, 0xac, 0x5f, 0x84, 0x4c, 0x1b, 0xb9, + 0x9d, 0x86, 0x57, 0xad, 0x39, 0x1d, 0xdb, 0x23, 0xbd, 0xac, 0x6a, 0xa4, 0xe9, 0x58, 0x09, 0x0f, + 0xe9, 0x4f, 0xc2, 0xb8, 0xd7, 0xee, 0xa0, 0xaa, 0x5b, 0x73, 0x3c, 0xb7, 0x69, 0xda, 0xa4, 0x97, + 0x4d, 0x19, 0x19, 0x3c, 0xb8, 0xc7, 0xc6, 0xc8, 0xdf, 0x1b, 0xa8, 0x39, 0x6d, 0x44, 0x6e, 0xa5, + 0x13, 0x06, 0x3d, 0xd0, 0x35, 0x50, 0x5f, 0x45, 0xa7, 0xe4, 0x66, 0x2d, 0x69, 0xe0, 0x8f, 0xfa, + 0x33, 0x30, 0x42, 0xff, 0x14, 0x05, 0xe9, 0xac, 0xc9, 0x73, 0x6b, 0xff, 0xd2, 0xe8, 0xfe, 0xac, + 0xc1, 0x04, 0xf4, 0x5b, 0x30, 0xea, 0xa1, 0x76, 0xdb, 0xb4, 0x6c, 0x72, 0xe3, 0x94, 0x5e, 0x99, + 0x8f, 0x30, 0xc3, 0x3e, 0x95, 0x20, 0x3f, 0xed, 0x6a, 0x70, 0x79, 0x7d, 0x0d, 0x32, 0x44, 0x6e, + 0xa5, 0x4a, 0xff, 0x5c, 0x47, 0xba, 0x67, 0x2c, 0xa7, 0xa9, 0x1c, 0x7f, 0x4c, 0xc0, 0x61, 0xf4, + 0x67, 0xed, 0xc6, 0xc9, 0x69, 0x9f, 0x8c, 0x38, 0x2d, 0x29, 0xbb, 0x2b, 0xa4, 0x65, 0xa4, 0xa7, + 0x66, 0x3c, 0xf4, 0x87, 0xef, 0xb6, 0x21, 0x13, 0xd6, 0x8b, 0x9b, 0x81, 0xb6, 0x3e, 0xc4, 0x0c, + 0x4f, 0x07, 0x3f, 0xe5, 0xde, 0xc3, 0x0a, 0x74, 0x3e, 0x9f, 0xb8, 0xa9, 0xcc, 0xee, 0x82, 0x26, + 0x9f, 0x2f, 0x82, 0xf2, 0xb2, 0x48, 0xa9, 0x85, 0x2f, 0x96, 0x6c, 0x92, 0x07, 0x8c, 0xb9, 0x17, + 0x60, 0x84, 0xc6, 0x8f, 0x9e, 0x86, 0xd1, 0xe0, 0x17, 0x13, 0x53, 0x90, 0xdc, 0x3d, 0xa8, 0xec, + 0xd1, 0x9f, 0x3e, 0xdd, 0xdb, 0x2a, 0xec, 0xee, 0xed, 0x6f, 0x96, 0x3e, 0xa9, 0x25, 0xf4, 0x49, + 0x48, 0x17, 0x37, 0xb7, 0xb6, 0xaa, 0xc5, 0xc2, 0xe6, 0x56, 0xf9, 0x9e, 0xa6, 0xe6, 0xe6, 0x60, + 0x84, 0xea, 0x49, 0x7e, 0xc2, 0xad, 0x63, 0xdb, 0xa7, 0xbc, 0x75, 0x20, 0x07, 0xb9, 0x6f, 0xe9, + 0x30, 0x5a, 0x68, 0x34, 0xb6, 0xcd, 0x96, 0xab, 0xbf, 0x04, 0x53, 0xf4, 0xc7, 0x24, 0xf6, 0x9d, + 0x75, 0xf2, 0x4b, 0x83, 0xb8, 0x30, 0x28, 0xec, 0x27, 0xec, 0x83, 0xeb, 0x66, 0xe2, 0x4b, 0x5d, + 0xb2, 0xd4, 0xc0, 0xdd, 0x1c, 0xfa, 0x3e, 0x68, 0x7c, 0x70, 0xa3, 0xe1, 0x98, 0x1e, 0xe6, 0x4d, + 0xb0, 0x1f, 0x02, 0xec, 0xcd, 0xcb, 0x45, 0x29, 0x6d, 0x17, 0x83, 0xfe, 0x09, 0x48, 0x6d, 0xda, + 0xde, 0xb5, 0x15, 0xcc, 0xc6, 0xff, 0xbc, 0x4a, 0x37, 0x1b, 0x17, 0xa1, 0x2c, 0x3e, 0x82, 0xa1, + 0xaf, 0xaf, 0x62, 0x74, 0xb2, 0x1f, 0x9a, 0x88, 0x04, 0x68, 0x72, 0xa8, 0xbf, 0x00, 0x63, 0xf8, + 0xce, 0x84, 0x9e, 0x7c, 0x98, 0xb7, 0xad, 0x5d, 0x70, 0x5f, 0x86, 0xe2, 0x03, 0x0c, 0x27, 0xa0, + 0xe7, 0x1f, 0xe9, 0x4b, 0x10, 0x52, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, 0x9e, 0x04, + 0x7b, 0x92, 0x06, 0x7b, 0x61, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0xc2, 0x1a, 0xf8, 0xc7, + 0x7a, 0x11, 0x60, 0xc3, 0x7a, 0x03, 0xd5, 0xa9, 0x0a, 0xf4, 0x8f, 0xaf, 0xe4, 0x22, 0x18, 0x02, + 0x21, 0x4a, 0x11, 0x42, 0xe9, 0x65, 0x48, 0xef, 0x1d, 0x05, 0x24, 0xd0, 0x95, 0xc7, 0xbe, 0x1a, + 0x47, 0x12, 0x4b, 0x18, 0xe7, 0xab, 0x42, 0x2f, 0x26, 0xdd, 0x5f, 0x95, 0xd0, 0xd5, 0x84, 0x50, + 0x81, 0x2a, 0x94, 0x24, 0x13, 0xa3, 0x4a, 0x88, 0x25, 0x8c, 0xc3, 0xc5, 0xb0, 0xe8, 0x38, 0x58, + 0x92, 0x55, 0xa5, 0xf9, 0x08, 0x0a, 0x26, 0xc1, 0x8a, 0x21, 0x3b, 0x22, 0x1e, 0x21, 0x41, 0x8e, + 0xc1, 0x13, 0xbd, 0x3d, 0xc2, 0x65, 0xb8, 0x47, 0xf8, 0x71, 0x38, 0xcf, 0xc8, 0xcb, 0xac, 0x98, + 0x67, 0x32, 0x36, 0xcf, 0xb8, 0xa8, 0x94, 0x67, 0x7c, 0x58, 0xff, 0x14, 0x4c, 0xf2, 0x31, 0x5c, + 0x9e, 0x30, 0xa9, 0xc6, 0xfe, 0x3c, 0x55, 0x6f, 0x52, 0x26, 0x49, 0x39, 0x65, 0xbc, 0x5e, 0x81, + 0x09, 0x3e, 0xb4, 0xed, 0x92, 0xcb, 0x9d, 0x62, 0x7f, 0xfa, 0xa1, 0x37, 0x23, 0x15, 0xa4, 0x84, + 0x12, 0x7a, 0x76, 0x1d, 0x66, 0xa2, 0xab, 0x51, 0xb8, 0xfc, 0x8e, 0xd1, 0xf2, 0x7b, 0x2e, 0x5c, + 0x7e, 0x95, 0x70, 0xf9, 0x2e, 0xc1, 0x23, 0x91, 0xb5, 0x27, 0x8e, 0x24, 0x11, 0x26, 0xb9, 0x0d, + 0xe3, 0x42, 0xc9, 0x09, 0x83, 0x87, 0x23, 0xc0, 0xc3, 0xdd, 0xe0, 0x20, 0xb4, 0x22, 0x56, 0x0f, + 0x01, 0xac, 0x86, 0xc1, 0x9f, 0x80, 0x09, 0xb1, 0xde, 0x84, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, + 0x74, 0xf4, 0xb9, 0x93, 0x11, 0xe8, 0xa4, 0x84, 0xde, 0xeb, 0x79, 0xee, 0xa9, 0x08, 0xf4, 0x54, + 0x04, 0x3a, 0xfa, 0xdc, 0x7a, 0x04, 0x5a, 0x0f, 0xa3, 0x9f, 0x83, 0x49, 0xa9, 0xc4, 0x84, 0xe1, + 0xa3, 0x11, 0xf0, 0xd1, 0x30, 0xfc, 0x79, 0xd0, 0xe4, 0xe2, 0x12, 0xc6, 0x4f, 0x46, 0xe0, 0x27, + 0xa3, 0x4e, 0x1f, 0xad, 0xfd, 0x48, 0x04, 0x7c, 0x24, 0xf2, 0xf4, 0xd1, 0x78, 0x2d, 0x02, 0xaf, + 0x85, 0xf1, 0x79, 0xc8, 0x84, 0xab, 0x49, 0x18, 0x9b, 0x8a, 0xc0, 0xa6, 0x64, 0xbb, 0x0b, 0xc5, + 0x24, 0x2e, 0xd2, 0xc7, 0x7a, 0xa4, 0x8b, 0x50, 0x42, 0xe2, 0x48, 0x32, 0x61, 0x92, 0x4f, 0xc3, + 0xb9, 0xa8, 0x92, 0x11, 0xc1, 0xb1, 0x10, 0xe6, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0x2d, + 0xa9, 0x71, 0x9a, 0xfd, 0x0c, 0x4c, 0x47, 0x14, 0x8e, 0x08, 0xda, 0x25, 0xb1, 0x1b, 0xcb, 0x86, + 0x68, 0x49, 0x11, 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0xbd, 0x70, 0x57, 0xf6, 0xed, 0x69, 0x98, + 0x60, 0xe5, 0x69, 0xa7, 0x5d, 0x47, 0x6d, 0x54, 0xd7, 0xff, 0x42, 0xef, 0xde, 0x69, 0xb9, 0xbb, + 0xa8, 0x31, 0xd4, 0x19, 0x5a, 0xa8, 0xcf, 0xf4, 0x6c, 0xa1, 0xae, 0xc4, 0xd3, 0xc7, 0x75, 0x52, + 0xa5, 0xae, 0x4e, 0xea, 0xe9, 0xde, 0xa4, 0xbd, 0x1a, 0xaa, 0x52, 0x57, 0x43, 0xd5, 0x9f, 0x24, + 0xb2, 0xaf, 0xda, 0xe8, 0xee, 0xab, 0x16, 0x7a, 0xb3, 0xf4, 0x6e, 0xaf, 0x36, 0xba, 0xdb, 0xab, + 0x18, 0x9e, 0xe8, 0x2e, 0x6b, 0xa3, 0xbb, 0xcb, 0xea, 0xc3, 0xd3, 0xbb, 0xd9, 0xda, 0xe8, 0x6e, + 0xb6, 0x62, 0x78, 0xa2, 0x7b, 0xae, 0xcd, 0x88, 0x9e, 0xeb, 0x99, 0xde, 0x44, 0xfd, 0x5a, 0xaf, + 0xad, 0xa8, 0xd6, 0x6b, 0xb1, 0x8f, 0x52, 0x7d, 0x3b, 0xb0, 0xcd, 0x88, 0x0e, 0x2c, 0x4e, 0xb1, + 0x1e, 0x8d, 0xd8, 0x56, 0x54, 0x23, 0x16, 0xab, 0x58, 0xaf, 0x7e, 0xec, 0xff, 0x93, 0xfb, 0xb1, + 0xcb, 0xbd, 0x99, 0xa2, 0xdb, 0xb2, 0x8d, 0xee, 0xb6, 0x6c, 0x21, 0x2e, 0xe7, 0xa2, 0xba, 0xb3, + 0xcf, 0xf4, 0xec, 0xce, 0x06, 0x48, 0xe1, 0xb8, 0x26, 0xed, 0xe5, 0x5e, 0x4d, 0xda, 0x52, 0x3c, + 0x77, 0xff, 0x5e, 0xed, 0xa0, 0x47, 0xaf, 0xf6, 0x6c, 0x3c, 0xf1, 0xcf, 0x5b, 0xb6, 0x9f, 0xb7, + 0x6c, 0x3f, 0x6f, 0xd9, 0x7e, 0xde, 0xb2, 0xfd, 0xec, 0x5b, 0xb6, 0x7c, 0xf2, 0x0b, 0x5f, 0x9b, + 0x57, 0x72, 0xff, 0x59, 0xf5, 0xff, 0x6a, 0xd6, 0x4b, 0x96, 0x77, 0x82, 0xcb, 0xdb, 0x36, 0x64, + 0xc8, 0xdf, 0xbb, 0x68, 0x9a, 0xad, 0x96, 0x65, 0x1f, 0xb3, 0x9e, 0x6d, 0xb1, 0x7b, 0x2b, 0x91, + 0x01, 0xc8, 0x5f, 0x0c, 0xd9, 0xa6, 0xc2, 0x6c, 0xb9, 0xb1, 0x83, 0x11, 0xfd, 0x2e, 0xa4, 0x9b, + 0xee, 0xb1, 0xcf, 0x96, 0xe8, 0x5a, 0x08, 0x25, 0x36, 0x7a, 0xa5, 0x01, 0x19, 0x34, 0xfd, 0x01, + 0xac, 0xda, 0xe1, 0xa9, 0x17, 0xa8, 0xa6, 0xc6, 0xa9, 0x86, 0x7d, 0x2a, 0xaa, 0x76, 0x18, 0x8c, + 0xe0, 0xb0, 0x95, 0x75, 0x8f, 0xab, 0x74, 0x42, 0xf0, 0xbc, 0x04, 0x93, 0x92, 0xb6, 0x11, 0x39, + 0xff, 0x10, 0xbe, 0xc1, 0x8a, 0xc9, 0x9a, 0xc7, 0xe5, 0x44, 0x38, 0x20, 0x73, 0x4f, 0xc0, 0xb8, + 0xc0, 0xad, 0x67, 0x40, 0x39, 0x62, 0xdf, 0xa4, 0x54, 0x8e, 0x72, 0x5f, 0x55, 0x20, 0xcd, 0x5e, + 0x23, 0xd8, 0x35, 0xad, 0xb6, 0xfe, 0x22, 0x24, 0x1b, 0xfc, 0xdb, 0x4c, 0x0f, 0xfb, 0xcd, 0x59, + 0xc2, 0xa0, 0x6f, 0xc0, 0x70, 0xdb, 0xff, 0xb6, 0xd3, 0x43, 0x7d, 0x1d, 0x96, 0xc0, 0x73, 0xf7, + 0x15, 0x98, 0x62, 0x6f, 0xb9, 0xba, 0xec, 0xdd, 0x67, 0xb3, 0x35, 0xfb, 0x2d, 0x05, 0xc6, 0xfc, + 0x23, 0xfd, 0x10, 0x26, 0xfc, 0x03, 0xfa, 0x7e, 0x3d, 0x8d, 0xd4, 0x7c, 0xc8, 0xc2, 0x5d, 0x1c, + 0x4b, 0x11, 0x9f, 0xe8, 0x83, 0x28, 0xba, 0x26, 0x8b, 0x83, 0xb3, 0x05, 0x98, 0x8e, 0x10, 0x3b, + 0xcb, 0x82, 0x9c, 0xbb, 0x08, 0x63, 0x15, 0xc7, 0xa3, 0x3f, 0x9a, 0xa3, 0x9f, 0x0b, 0x3d, 0x55, + 0x28, 0x26, 0xb4, 0x21, 0x02, 0x5e, 0xbc, 0x08, 0xa3, 0x2c, 0xfb, 0xf5, 0x11, 0x48, 0x6c, 0x17, + 0xb4, 0x21, 0xf2, 0x7f, 0x51, 0x53, 0xc8, 0xff, 0x25, 0x2d, 0x51, 0xdc, 0x7a, 0x88, 0xa7, 0x4c, + 0x43, 0xef, 0x3c, 0x98, 0x1b, 0x8a, 0x7a, 0xca, 0x74, 0x38, 0x42, 0xcd, 0xf3, 0xff, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x5e, 0xb7, 0x73, 0xce, 0x29, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1982,6 +2020,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2460,6 +2568,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3079,6 +3210,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3087,26 +3228,9 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -3155,7 +3279,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -3576,6 +3700,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -3595,14 +3731,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3610,43 +3746,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -3675,9 +3811,11 @@ func (m *Message) Size() (n int) { n += 5 } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -3690,8 +3828,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3706,8 +3845,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3843,7 +3983,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3862,8 +4006,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3989,7 +4134,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4008,8 +4157,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4034,8 +4184,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4043,7 +4194,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4091,6 +4246,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -4639,6 +4805,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4648,105 +4824,109 @@ func valueToStringTheproto3(v interface{}) string { return fmt.Sprintf("*%v", pv) } +func init() { proto.RegisterFile("combos/neither/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1582 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6f, 0xdb, 0xc6, - 0x16, 0x35, 0x25, 0x59, 0x1f, 0x57, 0x5f, 0xf4, 0x24, 0xef, 0x41, 0xcf, 0xc0, 0xb3, 0x1d, 0x05, - 0x48, 0x9c, 0xe0, 0x45, 0xce, 0x73, 0xd2, 0x36, 0x75, 0xd3, 0xa6, 0x96, 0x62, 0x21, 0x6e, 0x24, - 0xc5, 0x95, 0xec, 0xb8, 0x45, 0x80, 0x0a, 0x94, 0x4d, 0xc9, 0x44, 0x25, 0xd2, 0x20, 0xa9, 0xa0, - 0xde, 0xe5, 0x67, 0x74, 0x57, 0x74, 0xd7, 0x65, 0x91, 0x45, 0xd1, 0x65, 0xbb, 0xf3, 0xb2, 0x40, - 0x37, 0x45, 0x17, 0x41, 0x92, 0x6e, 0xb2, 0xcc, 0x32, 0xcb, 0xce, 0x07, 0x49, 0x0d, 0xa9, 0xa1, - 0xd8, 0x74, 0xd3, 0x8d, 0x17, 0x63, 0x71, 0x2e, 0xcf, 0x39, 0x73, 0x67, 0x38, 0x73, 0x79, 0x40, - 0xc3, 0xd2, 0x81, 0x31, 0xea, 0x19, 0xd6, 0x9a, 0xae, 0x6a, 0xf6, 0x91, 0x6a, 0xae, 0xe1, 0x3f, - 0xc7, 0xa6, 0x61, 0x1b, 0x37, 0x2a, 0xf4, 0x07, 0x65, 0xbc, 0xc0, 0xe2, 0xb5, 0x01, 0x86, 0x8c, - 0x7b, 0x15, 0xcc, 0x58, 0x1b, 0x18, 0x03, 0x63, 0x8d, 0xc6, 0x7b, 0xe3, 0x3e, 0xed, 0xd1, 0x0e, - 0xbd, 0x62, 0xcc, 0xc5, 0xf7, 0x42, 0xe1, 0xb6, 0x6a, 0xd9, 0x6b, 0xce, 0xb8, 0x3d, 0xc3, 0x3e, - 0x22, 0x83, 0x92, 0x18, 0x23, 0x96, 0x7f, 0x9e, 0x87, 0x54, 0x53, 0xb5, 0x2c, 0x65, 0xa0, 0x22, - 0x04, 0x09, 0x5d, 0x19, 0xa9, 0x25, 0x69, 0x45, 0x5a, 0xcd, 0xb4, 0xe9, 0x35, 0x7a, 0x07, 0xd2, - 0x47, 0xda, 0x50, 0x31, 0x35, 0xfb, 0xa4, 0x14, 0xc3, 0xf1, 0xc2, 0xfa, 0x7f, 0x2a, 0x93, 0xb4, - 0x1d, 0x66, 0xe5, 0xde, 0x78, 0x64, 0x8c, 0xcd, 0xb6, 0x07, 0x45, 0x2b, 0x90, 0x3b, 0x52, 0xb5, - 0xc1, 0x91, 0xdd, 0xd5, 0xf4, 0xee, 0xc1, 0xa8, 0x14, 0xc7, 0xd4, 0x7c, 0x1b, 0x58, 0x6c, 0x5b, - 0xaf, 0x8d, 0xc8, 0x60, 0x87, 0x8a, 0xad, 0x94, 0x12, 0xf8, 0x4e, 0xae, 0x4d, 0xaf, 0xd1, 0x05, - 0xc8, 0x99, 0xaa, 0x35, 0x1e, 0xda, 0xdd, 0x03, 0x63, 0xac, 0xdb, 0xa5, 0x14, 0xbe, 0x17, 0x6f, - 0x67, 0x59, 0xac, 0x46, 0x42, 0xe8, 0x22, 0xe4, 0x6d, 0x73, 0xac, 0x76, 0xad, 0x03, 0xc3, 0xb6, - 0x46, 0x8a, 0x5e, 0x4a, 0x63, 0x4c, 0xba, 0x9d, 0x23, 0xc1, 0x8e, 0x13, 0x43, 0xe7, 0x61, 0x1e, - 0xdf, 0x37, 0xd5, 0x52, 0x06, 0xdf, 0x8c, 0xb5, 0x59, 0x07, 0xc9, 0x10, 0xff, 0x52, 0x3d, 0x29, - 0xcd, 0xaf, 0xc4, 0x57, 0x13, 0x6d, 0x72, 0x89, 0xae, 0x40, 0x52, 0xc7, 0x4b, 0xa1, 0x1e, 0x96, - 0x92, 0x18, 0x98, 0x5d, 0x5f, 0xe0, 0xa6, 0xd6, 0xa2, 0x37, 0xda, 0x0e, 0x00, 0xbd, 0x0f, 0x29, - 0x5b, 0x35, 0x4d, 0x45, 0xd3, 0x4b, 0x80, 0x05, 0xb2, 0xeb, 0xcb, 0x82, 0x65, 0xd8, 0x65, 0x88, - 0x2d, 0xdd, 0x36, 0x4f, 0xda, 0x2e, 0x1e, 0x2f, 0x61, 0x8e, 0xe2, 0xd6, 0xbb, 0x7d, 0x4d, 0x1d, - 0x1e, 0x96, 0xb2, 0x74, 0x2c, 0x54, 0xa1, 0x4f, 0xa1, 0xa5, 0xe9, 0x0f, 0x8e, 0xed, 0x96, 0x62, - 0x6b, 0x8f, 0xd5, 0x76, 0x96, 0xe1, 0xea, 0x04, 0x86, 0xea, 0x1e, 0xed, 0xb1, 0x32, 0x1c, 0xab, - 0xa5, 0x3c, 0x1d, 0xf6, 0xa2, 0x60, 0xd8, 0x1d, 0x0a, 0x7b, 0x48, 0x50, 0x6c, 0x68, 0x47, 0x87, - 0x46, 0x16, 0x9b, 0x90, 0xe3, 0xf3, 0x72, 0x97, 0x41, 0xa2, 0x6b, 0x4b, 0x97, 0xe1, 0x32, 0xcc, - 0xb3, 0x21, 0x62, 0x61, 0xab, 0xc0, 0xee, 0x6f, 0xc4, 0x6e, 0x49, 0x8b, 0x3b, 0x20, 0x07, 0xc7, - 0x13, 0x48, 0x5e, 0xf2, 0x4b, 0xca, 0xfc, 0x64, 0xb7, 0xf4, 0xf1, 0x88, 0x53, 0x2c, 0xdf, 0x81, - 0x24, 0xdb, 0x3f, 0x28, 0x0b, 0xa9, 0xbd, 0xd6, 0xfd, 0xd6, 0x83, 0xfd, 0x96, 0x3c, 0x87, 0xd2, - 0x90, 0xd8, 0xd9, 0x6b, 0x75, 0x64, 0x09, 0xe5, 0x21, 0xd3, 0x69, 0x6c, 0xee, 0x74, 0x76, 0xb7, - 0x6b, 0xf7, 0xe5, 0x18, 0x2a, 0x42, 0xb6, 0xba, 0xdd, 0x68, 0x74, 0xab, 0x9b, 0xdb, 0x8d, 0xad, - 0xcf, 0xe5, 0x78, 0x79, 0x09, 0x92, 0x2c, 0x4f, 0xf2, 0xe0, 0x7b, 0x63, 0x5d, 0x3f, 0x71, 0xb6, - 0x30, 0xeb, 0x94, 0x9f, 0x22, 0x48, 0x6d, 0x0e, 0x87, 0x4d, 0xe5, 0xd8, 0x42, 0xfb, 0xb0, 0xd0, - 0xb1, 0x4d, 0x4d, 0x1f, 0xec, 0x1a, 0x77, 0x8d, 0x71, 0x6f, 0xa8, 0xe2, 0x28, 0x46, 0x93, 0xa5, - 0xbd, 0xc2, 0xcd, 0xdb, 0x81, 0x57, 0xa6, 0xb0, 0x6c, 0x81, 0x17, 0xac, 0x60, 0x1c, 0xed, 0x82, - 0xec, 0x82, 0xeb, 0x43, 0x43, 0xb1, 0x89, 0x6e, 0x8c, 0xea, 0xae, 0xce, 0xd0, 0x75, 0xa1, 0x4c, - 0x56, 0xb6, 0x02, 0x61, 0x74, 0x1b, 0xd2, 0xdb, 0xba, 0x7d, 0x63, 0x9d, 0xa8, 0xc5, 0xa9, 0xda, - 0x8a, 0x40, 0xcd, 0x85, 0x30, 0x95, 0xb4, 0xe6, 0x74, 0x1d, 0xf6, 0xbb, 0x37, 0x09, 0x3b, 0x31, - 0x8b, 0x4d, 0x21, 0x13, 0x36, 0xed, 0xa2, 0x3b, 0x90, 0xd9, 0x73, 0xa5, 0xe8, 0xa9, 0xc9, 0xae, - 0x5f, 0x10, 0xd0, 0x3d, 0x0c, 0xe3, 0x67, 0xc6, 0xde, 0xf0, 0x8e, 0x00, 0x1b, 0x3f, 0x39, 0x53, - 0x80, 0x4b, 0x80, 0x0a, 0x78, 0x19, 0x74, 0xbc, 0x0c, 0x52, 0xa1, 0x02, 0x9d, 0x40, 0x06, 0x16, - 0x9f, 0x41, 0xc7, 0xcb, 0x20, 0x3d, 0x53, 0x80, 0xcf, 0xc0, 0xf2, 0x32, 0xa8, 0x02, 0xd4, 0xb5, - 0xaf, 0xd4, 0x43, 0x96, 0x42, 0x86, 0x2a, 0x94, 0x05, 0x0a, 0x13, 0x10, 0x93, 0x80, 0xbe, 0x17, - 0x40, 0x5b, 0x90, 0xed, 0x4c, 0xba, 0x4e, 0xf9, 0xb8, 0x28, 0x4a, 0xa3, 0x1f, 0x50, 0xc9, 0x5a, - 0x9c, 0x8c, 0x9b, 0x0a, 0x9b, 0x4c, 0x76, 0x76, 0x2a, 0xdc, 0x6c, 0x58, 0x2a, 0x6c, 0x3a, 0x5e, - 0x2a, 0x4c, 0x24, 0x17, 0x91, 0x0a, 0xa7, 0xe2, 0xa4, 0xc2, 0x64, 0x70, 0x31, 0xac, 0x1a, 0x06, - 0x41, 0x3a, 0x55, 0x69, 0x59, 0x20, 0xe1, 0x20, 0x9c, 0x62, 0xd8, 0x63, 0x3d, 0xfa, 0x44, 0xe8, - 0x26, 0x27, 0xe4, 0x42, 0xf8, 0x13, 0x71, 0x31, 0xee, 0x13, 0x71, 0xfb, 0xfc, 0x39, 0xab, 0x9e, - 0xe0, 0xaa, 0x42, 0x74, 0x8a, 0x91, 0xe7, 0xcc, 0x85, 0x06, 0xce, 0x99, 0x1b, 0x46, 0x9f, 0x42, - 0xd1, 0x85, 0x92, 0xf2, 0x44, 0x44, 0x65, 0x2a, 0x7a, 0x79, 0x86, 0xa8, 0x83, 0x64, 0x9a, 0x45, - 0xcb, 0x1f, 0x45, 0x2d, 0x28, 0xb8, 0xc0, 0xa6, 0x45, 0xa7, 0xbb, 0x40, 0x15, 0x2f, 0xcd, 0x50, - 0x64, 0x40, 0x26, 0x58, 0xb0, 0x7c, 0xc1, 0xc5, 0xbb, 0xf0, 0x6f, 0x71, 0x35, 0xe2, 0xcb, 0x6f, - 0x86, 0x95, 0xdf, 0xf3, 0x7c, 0xf9, 0x95, 0xf8, 0xf2, 0x5d, 0x83, 0x7f, 0x09, 0x6b, 0x4f, 0x94, - 0x48, 0x8c, 0x17, 0xf9, 0x00, 0xf2, 0xbe, 0x92, 0xc3, 0x93, 0xe7, 0x05, 0xe4, 0xf9, 0x69, 0xf2, - 0x64, 0x6b, 0x09, 0xde, 0x1e, 0x3e, 0x72, 0x9c, 0x27, 0xdf, 0x86, 0x82, 0xbf, 0xde, 0xf0, 0xec, - 0xbc, 0x80, 0x9d, 0x17, 0xb0, 0xc5, 0x63, 0x27, 0x04, 0xec, 0x44, 0x80, 0xdd, 0x09, 0x1d, 0x7b, - 0x41, 0xc0, 0x5e, 0x10, 0xb0, 0xc5, 0x63, 0x23, 0x01, 0x1b, 0xf1, 0xec, 0x0f, 0xa1, 0x18, 0x28, - 0x31, 0x3c, 0x3d, 0x25, 0xa0, 0xa7, 0x78, 0xfa, 0x47, 0xf8, 0xd0, 0xf4, 0xc3, 0xf9, 0x45, 0x01, - 0xbf, 0x28, 0x1a, 0x5e, 0x9c, 0x7d, 0x52, 0x40, 0x4f, 0x0a, 0x87, 0x17, 0xf3, 0x65, 0x01, 0x5f, - 0xe6, 0xf9, 0x1b, 0x90, 0xe3, 0xab, 0x09, 0xcf, 0x4d, 0x0b, 0xb8, 0xe9, 0xe0, 0xba, 0xfb, 0x8a, - 0x49, 0xd4, 0x4e, 0xcf, 0x84, 0x1c, 0x17, 0x5f, 0x09, 0x89, 0x12, 0xc9, 0xf1, 0x22, 0x0f, 0xe1, - 0xbc, 0xa8, 0x64, 0x08, 0x34, 0x56, 0x79, 0x8d, 0x02, 0xf1, 0x88, 0x13, 0xb3, 0x47, 0x58, 0x3e, - 0xe3, 0xb4, 0xf8, 0x08, 0xce, 0x09, 0x0a, 0x87, 0x40, 0xb6, 0xe2, 0x77, 0x63, 0x25, 0x4e, 0x96, - 0x16, 0x01, 0x2c, 0xb1, 0x63, 0xe0, 0xcd, 0xc9, 0xbb, 0xb2, 0x1f, 0xce, 0x41, 0xc1, 0x29, 0x4f, - 0x0f, 0xcc, 0x43, 0xd5, 0xc4, 0xee, 0xea, 0x8b, 0x70, 0xef, 0x74, 0x7d, 0xba, 0xa8, 0x39, 0xac, - 0xb7, 0xb0, 0x50, 0x8f, 0x42, 0x2d, 0xd4, 0x5a, 0xb4, 0x7c, 0x94, 0x93, 0xaa, 0x4d, 0x39, 0xa9, - 0xcb, 0xe1, 0xa2, 0x61, 0x86, 0xaa, 0x36, 0x65, 0xa8, 0x66, 0x8b, 0x08, 0x7d, 0x55, 0x7d, 0xda, - 0x57, 0xad, 0x86, 0xab, 0x84, 0xdb, 0xab, 0xfa, 0xb4, 0xbd, 0x8a, 0xd0, 0x11, 0xbb, 0xac, 0xfa, - 0xb4, 0xcb, 0x9a, 0xa1, 0x13, 0x6e, 0xb6, 0xea, 0xd3, 0x66, 0x2b, 0x42, 0x47, 0xec, 0xb9, 0xb6, - 0x05, 0x9e, 0xeb, 0x4a, 0xb8, 0xd0, 0x2c, 0xeb, 0xd5, 0x10, 0x59, 0xaf, 0xab, 0x33, 0x92, 0x9a, - 0xe9, 0xc0, 0xb6, 0x05, 0x0e, 0x2c, 0x2a, 0xb1, 0x10, 0x23, 0xd6, 0x10, 0x19, 0xb1, 0xc8, 0xc4, - 0xc2, 0xfc, 0xd8, 0xc7, 0x41, 0x3f, 0x76, 0x29, 0x5c, 0x49, 0x6c, 0xcb, 0xea, 0xd3, 0xb6, 0x6c, - 0x35, 0xea, 0xcc, 0x89, 0xdc, 0xd9, 0xa3, 0x50, 0x77, 0xf6, 0x17, 0x8e, 0x70, 0x94, 0x49, 0xfb, - 0x2c, 0xcc, 0xa4, 0x55, 0xa2, 0xb5, 0x67, 0x7b, 0xb5, 0xbd, 0x10, 0xaf, 0x76, 0x2d, 0x5a, 0xf8, - 0xcc, 0xb2, 0x9d, 0x59, 0xb6, 0x33, 0xcb, 0x76, 0x66, 0xd9, 0xfe, 0x79, 0xcb, 0xb6, 0x91, 0xf8, - 0xfa, 0xdb, 0x65, 0xa9, 0xfc, 0x6b, 0x1c, 0x0a, 0xce, 0x97, 0xc1, 0x7d, 0xcd, 0x3e, 0x22, 0xe5, - 0xad, 0x09, 0x39, 0xf2, 0x31, 0xb7, 0x3b, 0x52, 0x8e, 0x8f, 0x31, 0xd1, 0xf1, 0x6c, 0x57, 0xa7, - 0x3f, 0x25, 0x3a, 0x84, 0x4a, 0x0b, 0xa3, 0x9b, 0x0c, 0xec, 0xbc, 0x6e, 0xf4, 0x49, 0x04, 0x7d, - 0x02, 0xd9, 0x91, 0x35, 0xf0, 0xd4, 0x62, 0x53, 0x2f, 0xc2, 0x80, 0x1a, 0x9b, 0xe9, 0x44, 0x0c, - 0x46, 0x5e, 0x80, 0xa4, 0xd6, 0xc3, 0x4f, 0xc9, 0x13, 0x8b, 0x47, 0xa5, 0x46, 0x9e, 0xa9, 0x3f, - 0xb5, 0xde, 0x24, 0x42, 0xb6, 0x6d, 0x30, 0xf7, 0xa8, 0x4a, 0xe7, 0xdb, 0x3c, 0xfb, 0x50, 0x0c, - 0x64, 0x2b, 0x38, 0xf3, 0x7f, 0xe3, 0xd9, 0x90, 0xc4, 0x82, 0x99, 0x47, 0x9d, 0x09, 0x7e, 0x43, - 0x96, 0xff, 0x0b, 0x79, 0x9f, 0x36, 0xca, 0x81, 0xd4, 0xa7, 0x54, 0xa9, 0x2d, 0xf5, 0xcb, 0xdf, - 0x48, 0x90, 0x25, 0x75, 0xf2, 0xff, 0xeb, 0xb7, 0x76, 0x14, 0xcd, 0x44, 0xf7, 0x20, 0x31, 0x54, - 0xfb, 0x36, 0x05, 0xe4, 0xaa, 0x37, 0x4f, 0x9f, 0x2d, 0xcf, 0xfd, 0xfe, 0x6c, 0xf9, 0x7f, 0x11, - 0xff, 0x25, 0x18, 0x5b, 0xb6, 0x31, 0xaa, 0x38, 0x3a, 0x6d, 0xaa, 0x80, 0x9d, 0xc1, 0xbc, 0x49, - 0x3e, 0xda, 0xb3, 0x94, 0xaa, 0xd7, 0xdf, 0x5a, 0x86, 0xd1, 0xcb, 0xa7, 0x12, 0x2c, 0xd4, 0x0c, - 0xdd, 0x56, 0x34, 0xdd, 0x62, 0x5f, 0x6b, 0xc9, 0x1b, 0xf2, 0xa9, 0x04, 0x19, 0xaf, 0x87, 0x7a, - 0x50, 0xf0, 0x3a, 0xf4, 0x23, 0xb8, 0xb3, 0x53, 0x37, 0xb8, 0x15, 0x9e, 0xd2, 0xa8, 0x08, 0xae, - 0x28, 0xd9, 0x79, 0x27, 0xeb, 0xbe, 0xe0, 0xe2, 0x26, 0x9c, 0x13, 0xc0, 0xde, 0xe6, 0x85, 0x7c, - 0xf5, 0x02, 0xa4, 0x9c, 0xa3, 0x8d, 0x92, 0x10, 0x6b, 0x6e, 0xca, 0x73, 0xf4, 0xb7, 0x2a, 0x4b, - 0xf4, 0xb7, 0x26, 0xc7, 0xaa, 0x8d, 0xd3, 0x17, 0x4b, 0x73, 0xbf, 0xe0, 0xf6, 0x1b, 0x6e, 0xcf, - 0x5f, 0x2c, 0x49, 0xaf, 0x70, 0x7b, 0x8d, 0xdb, 0x1b, 0xdc, 0x9e, 0xbc, 0x5c, 0x92, 0xbe, 0xc3, - 0xed, 0x7b, 0xdc, 0x7e, 0xc4, 0xed, 0x27, 0xdc, 0x4e, 0x5f, 0x62, 0x3c, 0x6e, 0xcf, 0xf1, 0xf5, - 0x2b, 0xfc, 0xfb, 0x1a, 0xff, 0xbe, 0xc1, 0xbf, 0x4f, 0xfe, 0x58, 0x9a, 0xeb, 0x25, 0xd9, 0xdc, - 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x89, 0x7d, 0x21, 0xda, 0x40, 0x1a, 0x00, 0x00, + // 1609 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46, + 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02, + 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, + 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x88, 0xa3, 0xa0, + 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80, + 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x88, 0x1c, + 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05, + 0x0d, 0xea, 0x81, 0xd5, 0x6b, 0x59, 0xf6, 0xb2, 0xa9, 0x1b, 0xa4, 0xa3, 0xf7, 0x97, 0x49, 0x47, + 0x3f, 0xee, 0x5b, 0xc4, 0xba, 0x59, 0x66, 0x3f, 0x38, 0x35, 0x0e, 0x2c, 0x5c, 0x6f, 0x1b, 0xa4, + 0x33, 0x68, 0x95, 0x0f, 0xac, 0xde, 0x72, 0xdb, 0x6a, 0x5b, 0xcb, 0x2c, 0xde, 0x1a, 0x1c, 0xb1, + 0x11, 0x1b, 0xb0, 0x2b, 0xae, 0x5c, 0xf8, 0xbf, 0x6f, 0x3a, 0xd1, 0x6d, 0xb2, 0xec, 0xcc, 0xdb, + 0xb2, 0x48, 0x87, 0x4e, 0x4a, 0x63, 0x5c, 0x58, 0xfc, 0x39, 0x06, 0x89, 0x2d, 0xdd, 0xb6, 0xb5, + 0xb6, 0x8e, 0x31, 0x44, 0x4d, 0xad, 0xa7, 0xe7, 0x51, 0x01, 0x95, 0x52, 0x0d, 0x76, 0x8d, 0x6f, + 0x43, 0xb2, 0x63, 0x74, 0xb5, 0xbe, 0x41, 0x4e, 0xf2, 0xe1, 0x02, 0x2a, 0xe5, 0x56, 0xfe, 0x55, + 0x9e, 0x94, 0xed, 0x28, 0xcb, 0x0f, 0x06, 0x3d, 0x6b, 0xd0, 0x6f, 0x8c, 0x53, 0x71, 0x01, 0x32, + 0x1d, 0xdd, 0x68, 0x77, 0xc8, 0xbe, 0x61, 0xee, 0x1f, 0xf4, 0xf2, 0x91, 0x02, 0x2a, 0x65, 0x1b, + 0xc0, 0x63, 0x1b, 0x66, 0xb5, 0x47, 0x27, 0x3b, 0xd4, 0x88, 0x96, 0x8f, 0x16, 0x50, 0x29, 0xd3, + 0x60, 0xd7, 0x78, 0x09, 0x32, 0x7d, 0xdd, 0x1e, 0x74, 0xc9, 0xfe, 0x81, 0x35, 0x30, 0x49, 0x3e, + 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b, 0xfa, 0x03, 0x7d, + 0xdf, 0x3e, 0xb0, 0x88, 0xdd, 0xd3, 0xcc, 0x7c, 0xb2, 0x80, 0x4a, 0xc9, 0x46, 0x86, 0x06, 0x9b, + 0x4e, 0x0c, 0x5f, 0x84, 0x98, 0x7d, 0x60, 0xf5, 0xf5, 0x7c, 0xaa, 0x80, 0x4a, 0xe1, 0x06, 0x1f, + 0x60, 0x05, 0x22, 0x4f, 0xf5, 0x93, 0x7c, 0xac, 0x10, 0x29, 0x45, 0x1b, 0xf4, 0x12, 0x5f, 0x85, + 0xb8, 0xa9, 0xdb, 0x44, 0x3f, 0xcc, 0xc7, 0x0b, 0xa8, 0x94, 0x5e, 0x99, 0x17, 0x6e, 0xad, 0xce, + 0xfe, 0xd0, 0x70, 0x12, 0xf0, 0x07, 0x90, 0x20, 0x7a, 0xbf, 0xaf, 0x19, 0x66, 0x1e, 0x0a, 0x91, + 0x52, 0x7a, 0x65, 0x51, 0xb2, 0x0c, 0x3b, 0x3c, 0x63, 0xdd, 0x24, 0xfd, 0x93, 0xc6, 0x28, 0x1f, + 0xdf, 0x86, 0x0c, 0xcb, 0x5b, 0xd9, 0x3f, 0x32, 0xf4, 0xee, 0x61, 0x3e, 0xcd, 0xe6, 0xc2, 0x65, + 0xf6, 0x14, 0xea, 0x86, 0xf9, 0xe8, 0x98, 0xd4, 0x35, 0x62, 0x3c, 0xd3, 0x1b, 0x69, 0x9e, 0x57, + 0xa3, 0x69, 0xb8, 0x36, 0x96, 0x3d, 0xd3, 0xba, 0x03, 0x3d, 0x9f, 0x65, 0xd3, 0x5e, 0x92, 0x4c, + 0xbb, 0xcd, 0xd2, 0x1e, 0xd3, 0x2c, 0x3e, 0xb5, 0xc3, 0x61, 0x91, 0x85, 0x2d, 0xc8, 0x88, 0x75, + 0x8d, 0x96, 0x01, 0xb1, 0xb5, 0x65, 0xcb, 0x70, 0x05, 0x62, 0x7c, 0x8a, 0xb0, 0xdf, 0x2a, 0xf0, + 0xbf, 0xaf, 0x86, 0xef, 0xa0, 0x85, 0x6d, 0x50, 0xdc, 0xf3, 0x49, 0x90, 0x97, 0xa7, 0x91, 0x8a, + 0x78, 0xb3, 0xeb, 0xe6, 0xa0, 0x27, 0x10, 0x8b, 0xf7, 0x20, 0xce, 0xf7, 0x0f, 0x4e, 0x43, 0x62, + 0xb7, 0xfe, 0xb0, 0xfe, 0x68, 0xaf, 0xae, 0x84, 0x70, 0x12, 0xa2, 0xdb, 0xbb, 0xf5, 0xa6, 0x82, + 0x70, 0x16, 0x52, 0xcd, 0xcd, 0xb5, 0xed, 0xe6, 0xce, 0x46, 0xf5, 0xa1, 0x12, 0xc6, 0x73, 0x90, + 0xae, 0x6c, 0x6c, 0x6e, 0xee, 0x57, 0xd6, 0x36, 0x36, 0xd7, 0xbf, 0x50, 0x22, 0x45, 0x15, 0xe2, + 0xbc, 0x4e, 0xfa, 0xe0, 0x5b, 0x03, 0xd3, 0x3c, 0x71, 0xb6, 0x30, 0x1f, 0x14, 0x5f, 0x60, 0x48, + 0xac, 0x75, 0xbb, 0x5b, 0xda, 0xb1, 0x8d, 0xf7, 0x60, 0xbe, 0x49, 0xfa, 0x86, 0xd9, 0xde, 0xb1, + 0xee, 0x5b, 0x83, 0x56, 0x57, 0xdf, 0xd2, 0x8e, 0xf3, 0x88, 0x2d, 0xed, 0x55, 0xe1, 0xbe, 0x9d, + 0xf4, 0xb2, 0x27, 0x97, 0x2f, 0xb0, 0x97, 0x81, 0x77, 0x40, 0x19, 0x05, 0x6b, 0x5d, 0x4b, 0x23, + 0x94, 0x1b, 0x66, 0xdc, 0xd2, 0x0c, 0xee, 0x28, 0x95, 0x63, 0x3d, 0x04, 0x7c, 0x17, 0x92, 0x1b, + 0x26, 0xb9, 0xb9, 0x42, 0x69, 0x11, 0x46, 0x2b, 0x48, 0x68, 0xa3, 0x14, 0x4e, 0x19, 0x2b, 0x1c, + 0xf5, 0xff, 0x6e, 0x51, 0x75, 0x74, 0x96, 0x9a, 0xa5, 0x4c, 0xd4, 0x6c, 0x88, 0xef, 0x41, 0x6a, + 0xd7, 0x18, 0x4d, 0x1e, 0x63, 0xf2, 0x25, 0x89, 0x7c, 0x9c, 0xc3, 0xf5, 0x13, 0xcd, 0x08, 0xc0, + 0xe7, 0x8f, 0xcf, 0x04, 0x08, 0x05, 0x4c, 0x34, 0x14, 0xd0, 0x1c, 0x57, 0x90, 0xf0, 0x05, 0x34, + 0x5d, 0x15, 0x34, 0xc5, 0x0a, 0x9a, 0xe3, 0x0a, 0x92, 0x33, 0x01, 0x62, 0x05, 0xe3, 0x31, 0xae, + 0x00, 0xd4, 0x8c, 0xaf, 0xf4, 0x43, 0x5e, 0x42, 0x8a, 0x11, 0x8a, 0x12, 0xc2, 0x24, 0x89, 0x23, + 0x04, 0x15, 0x5e, 0x87, 0x74, 0xf3, 0x68, 0x02, 0x01, 0xcf, 0x39, 0x1e, 0x97, 0x71, 0xe4, 0xa2, + 0x88, 0xba, 0x71, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x4d, 0x4a, 0xe1, + 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x74, 0xa5, + 0x45, 0x09, 0xc2, 0xc9, 0x70, 0x9a, 0xa1, 0x33, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce, 0xf9, + 0x3f, 0x91, 0x51, 0xce, 0xe8, 0x89, 0x8c, 0xc6, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa6, 0x9c, + 0xb9, 0xc0, 0x73, 0x36, 0x4a, 0x75, 0x9d, 0xb3, 0x51, 0x18, 0x7f, 0x06, 0x73, 0xa3, 0x18, 0x6d, + 0x4f, 0x14, 0xaa, 0x30, 0xe8, 0x95, 0x19, 0x50, 0x27, 0x93, 0x33, 0xdd, 0x7a, 0x5c, 0x87, 0xdc, + 0x28, 0xb4, 0x65, 0xb3, 0xdb, 0x9d, 0x67, 0xc4, 0xcb, 0x33, 0x88, 0x3c, 0x91, 0x03, 0x5d, 0xea, + 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b, 0x62, 0xfb, 0x45, + 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f, 0x42, 0x76, 0xaa, + 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0x27, 0x5b, 0x4b, 0xf2, 0xf6, 0x98, 0x12, 0x47, + 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf7, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12, 0xb5, 0x7c, 0xee, + 0xa8, 0x44, 0x1d, 0x75, 0xa9, 0x9b, 0xbe, 0x73, 0xcf, 0x4b, 0xd4, 0xf3, 0x12, 0xb5, 0x7c, 0x6e, + 0x2c, 0x51, 0x63, 0x51, 0xfd, 0x11, 0xcc, 0xb9, 0x5a, 0x8c, 0x28, 0x4f, 0x48, 0xe4, 0x09, 0x51, + 0xfe, 0x31, 0x28, 0xee, 0xe6, 0x22, 0xea, 0xe7, 0x24, 0xfa, 0x39, 0xd9, 0xf4, 0xf2, 0xea, 0xe3, + 0x12, 0x79, 0x5c, 0x3a, 0xbd, 0x5c, 0xaf, 0x48, 0xf4, 0x8a, 0xa8, 0x5f, 0x85, 0x8c, 0xd8, 0x4d, + 0x44, 0x6d, 0x52, 0xa2, 0x4d, 0xba, 0xd7, 0x7d, 0xaa, 0x99, 0x04, 0xed, 0xf4, 0x94, 0xcf, 0x71, + 0x99, 0x6a, 0x21, 0x41, 0x90, 0x8c, 0x08, 0x79, 0x0c, 0x17, 0x65, 0x2d, 0x43, 0xc2, 0x28, 0x89, + 0x8c, 0x1c, 0xf5, 0x88, 0x13, 0xb3, 0x47, 0x55, 0x53, 0xc6, 0x69, 0xe1, 0x09, 0x5c, 0x90, 0x34, + 0x0e, 0x09, 0xb6, 0x3c, 0xed, 0xc6, 0xf2, 0x02, 0x96, 0x35, 0x01, 0xc3, 0x6c, 0x6f, 0x5b, 0x86, + 0x49, 0x44, 0x57, 0xf6, 0xc3, 0x05, 0xc8, 0x39, 0xed, 0xe9, 0x51, 0xff, 0x50, 0xef, 0xeb, 0x87, + 0xf8, 0x4b, 0x7f, 0xef, 0x74, 0xc3, 0xdb, 0xd4, 0x1c, 0xd5, 0x7b, 0x58, 0xa8, 0x27, 0xbe, 0x16, + 0x6a, 0x39, 0x18, 0x1f, 0xe4, 0xa4, 0xaa, 0x1e, 0x27, 0x75, 0xc5, 0x1f, 0xea, 0x67, 0xa8, 0xaa, + 0x1e, 0x43, 0x35, 0x1b, 0x22, 0xf5, 0x55, 0x35, 0xaf, 0xaf, 0x2a, 0xf9, 0x53, 0xfc, 0xed, 0x55, + 0xcd, 0x6b, 0xaf, 0x02, 0x38, 0x72, 0x97, 0x55, 0xf3, 0xba, 0xac, 0x19, 0x1c, 0x7f, 0xb3, 0x55, + 0xf3, 0x9a, 0xad, 0x00, 0x8e, 0xdc, 0x73, 0x6d, 0x48, 0x3c, 0xd7, 0x55, 0x7f, 0xd0, 0x2c, 0xeb, + 0xb5, 0x29, 0xb3, 0x5e, 0xd7, 0x66, 0x14, 0x35, 0xd3, 0x81, 0x6d, 0x48, 0x1c, 0x58, 0x50, 0x61, + 0x3e, 0x46, 0x6c, 0x53, 0x66, 0xc4, 0x02, 0x0b, 0xf3, 0xf3, 0x63, 0x9f, 0xb8, 0xfd, 0xd8, 0x65, + 0x7f, 0x92, 0xdc, 0x96, 0xd5, 0xbc, 0xb6, 0xac, 0x14, 0x74, 0xe6, 0x64, 0xee, 0xec, 0x89, 0xaf, + 0x3b, 0xfb, 0x13, 0x47, 0x38, 0xc8, 0xa4, 0x7d, 0xee, 0x67, 0xd2, 0xca, 0xc1, 0xec, 0xd9, 0x5e, + 0x6d, 0xd7, 0xc7, 0xab, 0x5d, 0x0f, 0x06, 0x9f, 0x5b, 0xb6, 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xce, + 0x2d, 0xdb, 0xdf, 0x6f, 0xd9, 0x56, 0xa3, 0x5f, 0x7f, 0xbb, 0x88, 0x8a, 0xbf, 0x44, 0x20, 0xe7, + 0x7c, 0x19, 0xdc, 0x33, 0x48, 0x87, 0xb6, 0xb7, 0x2d, 0xc8, 0x98, 0x5a, 0x4f, 0xdf, 0xef, 0x69, + 0xc7, 0xc7, 0x86, 0xd9, 0x76, 0x3c, 0xdb, 0x35, 0xef, 0xa7, 0x44, 0x47, 0x50, 0xae, 0x6b, 0x3d, + 0xda, 0xab, 0x68, 0xb2, 0xf3, 0xba, 0x31, 0x27, 0x11, 0xfc, 0x29, 0xa4, 0x7b, 0x76, 0x7b, 0x4c, + 0x0b, 0x7b, 0x5e, 0x84, 0x2e, 0x1a, 0xbf, 0xd3, 0x09, 0x0c, 0x7a, 0xe3, 0x00, 0x2d, 0xad, 0x75, + 0x42, 0x26, 0xa5, 0x45, 0x82, 0x4a, 0xa3, 0xcf, 0x74, 0xba, 0xb4, 0xd6, 0x24, 0x42, 0xb7, 0xad, + 0xbb, 0xf6, 0xa0, 0x4e, 0x37, 0xb5, 0x79, 0xf6, 0x60, 0xce, 0x55, 0xad, 0xe4, 0xcc, 0xff, 0x85, + 0x67, 0x43, 0x0b, 0x73, 0x57, 0x1e, 0x74, 0x26, 0xc4, 0x0d, 0x59, 0xfc, 0x37, 0x64, 0xa7, 0xd8, + 0x38, 0x03, 0xe8, 0x88, 0x49, 0x51, 0x03, 0x1d, 0x15, 0xbf, 0x41, 0x90, 0xa6, 0x7d, 0xf2, 0xbf, + 0x2b, 0x77, 0xb6, 0x35, 0xa3, 0x8f, 0x1f, 0x40, 0xb4, 0xab, 0x1f, 0x11, 0x96, 0x90, 0xa9, 0xdc, + 0x3a, 0x7d, 0xb5, 0x18, 0xfa, 0xed, 0xd5, 0xe2, 0x7f, 0x02, 0xfe, 0x4b, 0x30, 0xb0, 0x89, 0xd5, + 0x2b, 0x3b, 0x9c, 0x06, 0x23, 0xe0, 0x1a, 0xc4, 0xfa, 0x46, 0xbb, 0x43, 0x78, 0x49, 0x95, 0x1b, + 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x6d, 0xfe, 0xb5, + 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x47, 0xb8, 0x05, 0xb9, 0xf1, 0x80, 0x7d, 0x04, 0x77, + 0x76, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xce, 0x3b, 0x79, 0x3a, 0xb8, + 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91, 0x6d, 0xed, + 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xf9, 0xaf, 0x42, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda, 0x12, 0x24, + 0x9c, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6, 0x5b, 0x55, + 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86, 0x5e, 0x9f, + 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f, 0x55, 0xf4, + 0xdd, 0x50, 0x45, 0xdf, 0x0f, 0x55, 0xf4, 0xe3, 0x50, 0x45, 0x3f, 0x0d, 0x55, 0x74, 0x3a, 0x54, + 0x43, 0x2f, 0x87, 0x6a, 0xe8, 0xf5, 0x50, 0x45, 0x6f, 0x86, 0x6a, 0xe8, 0xed, 0x50, 0x45, 0xef, + 0x86, 0x6a, 0xe8, 0xf9, 0xef, 0x6a, 0xa8, 0x15, 0xe7, 0xcb, 0xf3, 0x47, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xe2, 0x1d, 0x88, 0x27, 0x63, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto index a3b3b387..0f4525cd 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go index 9112e443..49d51b0d 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go @@ -17,6 +17,7 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -41,18 +42,18 @@ func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -80,11 +81,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -94,11 +95,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -115,18 +116,18 @@ func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -154,11 +155,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -168,11 +169,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -189,18 +190,18 @@ func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -228,11 +229,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -242,11 +243,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -263,18 +264,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -302,11 +303,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -316,11 +317,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -337,18 +338,18 @@ func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -376,11 +377,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -390,11 +391,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -411,18 +412,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -450,11 +451,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -464,11 +465,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -485,18 +486,18 @@ func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -524,11 +525,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -538,11 +539,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -559,18 +560,18 @@ func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -598,11 +599,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -612,11 +613,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -633,18 +634,18 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -672,11 +673,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -686,11 +687,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -703,6 +704,80 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -892,13 +967,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -913,9 +1009,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -930,9 +1026,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -947,9 +1043,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -964,9 +1060,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -981,9 +1077,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -998,9 +1094,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1015,9 +1111,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1032,9 +1128,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1049,9 +1145,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1066,9 +1162,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1083,9 +1179,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1100,9 +1196,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1117,9 +1213,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1134,9 +1230,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1151,9 +1247,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,9 +1264,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,9 +1281,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1204,12 +1334,12 @@ func TestTheproto3Description(t *testing.T) { func TestMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1219,12 +1349,12 @@ func TestMessageVerboseEqual(t *testing.T) { func TestNestedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1234,12 +1364,12 @@ func TestNestedVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1249,12 +1379,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1264,12 +1394,12 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { func TestMessageWithMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1279,12 +1409,12 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1294,12 +1424,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestUint128PairVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1309,12 +1439,12 @@ func TestUint128PairVerboseEqual(t *testing.T) { func TestContainsNestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1324,12 +1454,27 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1408,6 +1553,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1525,18 +1678,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1566,13 +1732,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1602,13 +1768,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1638,13 +1804,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1674,13 +1840,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1710,13 +1876,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1746,13 +1912,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1782,13 +1948,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +1984,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1849,6 +2015,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1930,5 +2132,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go index fe41a33e..2735ac7b 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,7 +38,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -50,7 +50,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -105,7 +107,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -125,23 +127,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -149,23 +151,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -207,7 +209,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -216,6 +218,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -226,6 +236,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -256,476 +267,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7455 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x6c, 0x63, 0xd7, - 0x79, 0xe7, 0x90, 0x97, 0x94, 0xa8, 0x8f, 0x14, 0x45, 0xdd, 0xd1, 0xc8, 0xb4, 0x3c, 0x9e, 0x07, - 0x3d, 0x1e, 0xcb, 0x8a, 0xad, 0xd1, 0x68, 0x34, 0x0f, 0xd3, 0xaf, 0x15, 0x29, 0x6a, 0xac, 0x89, - 0x5e, 0xb9, 0x92, 0xfc, 0x88, 0x17, 0x4b, 0x50, 0xe4, 0x95, 0x44, 0x9b, 0xba, 0xd4, 0xf2, 0x92, - 0xb6, 0x27, 0x7f, 0x2c, 0xb2, 0xc9, 0x6e, 0x36, 0xd9, 0xc5, 0xee, 0xb6, 0x4d, 0x8b, 0xe6, 0x1d, - 0x3b, 0x45, 0x1a, 0x27, 0x7d, 0x25, 0x69, 0x1a, 0x14, 0x41, 0xd1, 0xb8, 0x68, 0x93, 0x4e, 0xff, - 0x29, 0xdc, 0xf4, 0x9f, 0xa2, 0x28, 0x8c, 0xbc, 0x80, 0xa6, 0x6d, 0xda, 0x26, 0x80, 0x81, 0x04, - 0x48, 0xfe, 0xe8, 0x79, 0xdf, 0x73, 0x0e, 0xef, 0xe5, 0xa5, 0x66, 0xec, 0x38, 0x7f, 0xd8, 0x00, - 0x47, 0xbc, 0xe7, 0x7c, 0xbf, 0xef, 0x7c, 0xe7, 0x7b, 0x9d, 0xef, 0x9e, 0x73, 0x79, 0x0d, 0x7f, - 0x7e, 0x1e, 0x4e, 0xed, 0x36, 0x9b, 0xbb, 0x0d, 0xfb, 0xdc, 0x41, 0xab, 0xd9, 0x6e, 0x6e, 0x77, - 0x76, 0xce, 0xd5, 0x6c, 0xb7, 0xda, 0xaa, 0x1f, 0xb4, 0x9b, 0xad, 0x69, 0xd2, 0x66, 0x8e, 0x50, - 0x8a, 0x69, 0x4e, 0x91, 0x5b, 0x81, 0xd1, 0xc5, 0x7a, 0xc3, 0x5e, 0x10, 0x84, 0x1b, 0x76, 0xdb, - 0xbc, 0x02, 0xb1, 0x1d, 0xd4, 0x98, 0x8d, 0x9c, 0x32, 0x26, 0x93, 0xb3, 0x67, 0xa6, 0x35, 0xd0, - 0xb4, 0x8a, 0x58, 0xc7, 0xcd, 0x16, 0x41, 0xe4, 0xbe, 0x1f, 0x83, 0xa3, 0x3e, 0xbd, 0xa6, 0x09, - 0x31, 0xa7, 0xb2, 0x8f, 0x39, 0x46, 0x26, 0x87, 0x2c, 0xf2, 0xdd, 0xcc, 0xc2, 0xe0, 0x41, 0xa5, - 0xfa, 0x6c, 0x65, 0xd7, 0xce, 0x46, 0x49, 0x33, 0xbf, 0x34, 0x4f, 0x00, 0xd4, 0xec, 0x03, 0xdb, - 0xa9, 0xd9, 0x4e, 0xf5, 0x7a, 0xd6, 0x40, 0x52, 0x0c, 0x59, 0x52, 0x8b, 0xf9, 0x0e, 0x18, 0x3d, - 0xe8, 0x6c, 0x37, 0xea, 0xd5, 0xb2, 0x44, 0x06, 0x88, 0x2c, 0x6e, 0x65, 0x68, 0xc7, 0x82, 0x47, - 0x7c, 0x0f, 0x8c, 0x3c, 0x6f, 0x57, 0x9e, 0x95, 0x49, 0x93, 0x84, 0x34, 0x8d, 0x9b, 0x25, 0xc2, - 0x22, 0xa4, 0xf6, 0x6d, 0xd7, 0x45, 0x02, 0x94, 0xdb, 0xd7, 0x0f, 0xec, 0x6c, 0x8c, 0xcc, 0xfe, - 0x54, 0xd7, 0xec, 0xf5, 0x99, 0x27, 0x19, 0x6a, 0x13, 0x81, 0xcc, 0x79, 0x18, 0xb2, 0x9d, 0xce, - 0x3e, 0xe5, 0x10, 0x0f, 0xd0, 0x5f, 0x09, 0x51, 0xe8, 0x5c, 0x12, 0x18, 0xc6, 0x58, 0x0c, 0xba, - 0x76, 0xeb, 0xb9, 0x7a, 0xd5, 0xce, 0x0e, 0x10, 0x06, 0xf7, 0x74, 0x31, 0xd8, 0xa0, 0xfd, 0x3a, - 0x0f, 0x8e, 0x43, 0x53, 0x19, 0xb2, 0x5f, 0x68, 0xdb, 0x8e, 0x5b, 0x6f, 0x3a, 0xd9, 0x41, 0xc2, - 0xe4, 0x6e, 0x1f, 0x2b, 0xda, 0x8d, 0x9a, 0xce, 0xc2, 0xc3, 0x99, 0x97, 0x60, 0xb0, 0x79, 0xd0, - 0x46, 0xdf, 0xdc, 0x6c, 0x02, 0xd9, 0x27, 0x39, 0x7b, 0xdc, 0xd7, 0x11, 0xd6, 0x28, 0x8d, 0xc5, - 0x89, 0xcd, 0x25, 0xc8, 0xb8, 0xcd, 0x4e, 0xab, 0x6a, 0x97, 0xab, 0xcd, 0x9a, 0x5d, 0xae, 0x3b, - 0x3b, 0xcd, 0xec, 0x10, 0x61, 0x70, 0xb2, 0x7b, 0x22, 0x84, 0xb0, 0x88, 0xe8, 0x96, 0x10, 0x99, - 0x95, 0x76, 0x95, 0x6b, 0x73, 0x1c, 0x06, 0xdc, 0xeb, 0x4e, 0xbb, 0xf2, 0x42, 0x36, 0x45, 0x3c, - 0x84, 0x5d, 0xe5, 0x7e, 0x12, 0x87, 0x91, 0x7e, 0x5c, 0xec, 0x41, 0x88, 0xef, 0xe0, 0x59, 0x22, - 0x07, 0x3b, 0x84, 0x0e, 0x28, 0x46, 0x55, 0xe2, 0xc0, 0x4d, 0x2a, 0x71, 0x1e, 0x92, 0x8e, 0xed, - 0xb6, 0xed, 0x1a, 0xf5, 0x08, 0xa3, 0x4f, 0x9f, 0x02, 0x0a, 0xea, 0x76, 0xa9, 0xd8, 0x4d, 0xb9, - 0xd4, 0x93, 0x30, 0x22, 0x44, 0x2a, 0xb7, 0x2a, 0xce, 0x2e, 0xf7, 0xcd, 0x73, 0x61, 0x92, 0x4c, - 0x97, 0x38, 0xce, 0xc2, 0x30, 0x2b, 0x6d, 0x2b, 0xd7, 0xe6, 0x02, 0x40, 0xd3, 0xb1, 0x9b, 0x3b, - 0x28, 0xbc, 0xaa, 0x0d, 0xe4, 0x27, 0xfe, 0x5a, 0x5a, 0xc3, 0x24, 0x5d, 0x5a, 0x6a, 0xd2, 0xd6, - 0x6a, 0xc3, 0x7c, 0xc0, 0x73, 0xb5, 0xc1, 0x00, 0x4f, 0x59, 0xa1, 0x41, 0xd6, 0xe5, 0x6d, 0x5b, - 0x90, 0x6e, 0xd9, 0xd8, 0xef, 0x91, 0x8a, 0xe9, 0xcc, 0x86, 0x88, 0x10, 0xd3, 0xa1, 0x33, 0xb3, - 0x18, 0x8c, 0x4e, 0x6c, 0xb8, 0x25, 0x5f, 0x9a, 0x77, 0x81, 0x68, 0x28, 0x13, 0xb7, 0x02, 0x92, - 0x85, 0x52, 0xbc, 0x71, 0x15, 0xb5, 0x4d, 0x5c, 0x81, 0xb4, 0xaa, 0x1e, 0x73, 0x0c, 0xe2, 0x6e, - 0xbb, 0xd2, 0x6a, 0x13, 0x2f, 0x8c, 0x5b, 0xf4, 0xc2, 0xcc, 0x80, 0x81, 0x92, 0x0c, 0xc9, 0x72, - 0x71, 0x0b, 0x7f, 0x9d, 0xb8, 0x0c, 0xc3, 0xca, 0xf0, 0xfd, 0x02, 0x73, 0x1f, 0x19, 0x80, 0x31, - 0x3f, 0x9f, 0xf3, 0x75, 0x7f, 0x14, 0x3e, 0xc8, 0x03, 0xb6, 0xed, 0x16, 0xf2, 0x3b, 0xcc, 0x81, - 0x5d, 0x21, 0x8f, 0x8a, 0x37, 0x2a, 0xdb, 0x76, 0x03, 0x79, 0x53, 0x64, 0x32, 0x3d, 0xfb, 0x8e, - 0xbe, 0xbc, 0x7a, 0x7a, 0x19, 0x43, 0x2c, 0x8a, 0x34, 0x1f, 0x81, 0x18, 0x4b, 0x71, 0x98, 0xc3, - 0x54, 0x7f, 0x1c, 0xb0, 0x2f, 0x5a, 0x04, 0x67, 0xde, 0x01, 0x43, 0xf8, 0x2f, 0xd5, 0xed, 0x00, - 0x91, 0x39, 0x81, 0x1b, 0xb0, 0x5e, 0xcd, 0x09, 0x48, 0x10, 0x37, 0xab, 0xd9, 0x7c, 0x69, 0x10, - 0xd7, 0xd8, 0x30, 0x35, 0x7b, 0xa7, 0xd2, 0x69, 0xb4, 0xcb, 0xcf, 0x55, 0x1a, 0x1d, 0x9b, 0x38, - 0x0c, 0x32, 0x0c, 0x6b, 0x7c, 0x1c, 0xb7, 0x99, 0x27, 0x21, 0x49, 0xbd, 0xb2, 0x8e, 0x30, 0x2f, - 0x90, 0xec, 0x13, 0xb7, 0xa8, 0xa3, 0x2e, 0xe1, 0x16, 0x3c, 0xfc, 0x33, 0x2e, 0x8a, 0x05, 0x66, - 0x5a, 0x32, 0x04, 0x6e, 0x20, 0xc3, 0x5f, 0xd6, 0x13, 0xdf, 0x9d, 0xfe, 0xd3, 0xd3, 0x7d, 0x31, - 0xf7, 0xd5, 0x28, 0xc4, 0x48, 0xbc, 0x8d, 0x40, 0x72, 0xf3, 0xa9, 0xf5, 0x52, 0x79, 0x61, 0x6d, - 0xab, 0xb0, 0x5c, 0xca, 0x44, 0xcc, 0x34, 0x00, 0x69, 0x58, 0x5c, 0x5e, 0x9b, 0xdf, 0xcc, 0x44, - 0xc5, 0xf5, 0xd2, 0xea, 0xe6, 0xa5, 0xb9, 0x8c, 0x21, 0x00, 0x5b, 0xb4, 0x21, 0x26, 0x13, 0x5c, - 0x98, 0xcd, 0xc4, 0x91, 0x27, 0xa4, 0x28, 0x83, 0xa5, 0x27, 0x4b, 0x0b, 0x88, 0x62, 0x40, 0x6d, - 0x41, 0x34, 0x83, 0xe6, 0x30, 0x0c, 0x91, 0x96, 0xc2, 0xda, 0xda, 0x72, 0x26, 0x21, 0x78, 0x6e, - 0x6c, 0x5a, 0x4b, 0xab, 0x57, 0x33, 0x43, 0x82, 0xe7, 0x55, 0x6b, 0x6d, 0x6b, 0x3d, 0x03, 0x82, - 0xc3, 0x4a, 0x69, 0x63, 0x63, 0xfe, 0x6a, 0x29, 0x93, 0x14, 0x14, 0x85, 0xa7, 0x36, 0x4b, 0x1b, - 0x99, 0x94, 0x22, 0x16, 0x1a, 0x62, 0x58, 0x0c, 0x51, 0x5a, 0xdd, 0x5a, 0xc9, 0xa4, 0xcd, 0x51, - 0x18, 0xa6, 0x43, 0x70, 0x21, 0x46, 0xb4, 0x26, 0x24, 0x69, 0xc6, 0x13, 0x84, 0x72, 0x19, 0x55, - 0x1a, 0x10, 0x85, 0x99, 0x2b, 0x42, 0x9c, 0x78, 0x17, 0xf2, 0xe2, 0xf4, 0xf2, 0x7c, 0xa1, 0xb4, - 0x5c, 0x5e, 0x5b, 0xdf, 0x5c, 0x5a, 0x5b, 0x9d, 0x5f, 0x46, 0xba, 0x13, 0x6d, 0x56, 0xe9, 0x5d, - 0x5b, 0x4b, 0x56, 0x69, 0x01, 0xe9, 0x4f, 0x6a, 0x5b, 0x2f, 0xcd, 0x6f, 0xa2, 0x36, 0x23, 0x37, - 0x05, 0x63, 0x7e, 0x79, 0xc6, 0x2f, 0x32, 0x72, 0x9f, 0x89, 0xc0, 0x51, 0x9f, 0x94, 0xe9, 0x1b, - 0x45, 0x8f, 0x42, 0x9c, 0x7a, 0x1a, 0x5d, 0x44, 0xee, 0xf5, 0xcd, 0xbd, 0xc4, 0xef, 0xba, 0x16, - 0x12, 0x82, 0x93, 0x17, 0x52, 0x23, 0x60, 0x21, 0xc5, 0x2c, 0xba, 0xdc, 0xe9, 0xfd, 0x11, 0xc8, - 0x06, 0xf1, 0x0e, 0x89, 0xf7, 0xa8, 0x12, 0xef, 0x0f, 0xea, 0x02, 0x9c, 0x0e, 0x9e, 0x43, 0x97, - 0x14, 0x9f, 0x8b, 0xc0, 0xb8, 0x7f, 0xbd, 0xe1, 0x2b, 0xc3, 0x23, 0x30, 0xb0, 0x6f, 0xb7, 0xf7, - 0x9a, 0x7c, 0xcd, 0x3d, 0xeb, 0x93, 0xc9, 0x71, 0xb7, 0xae, 0x2b, 0x86, 0x92, 0x97, 0x02, 0x23, - 0xa8, 0x68, 0xa0, 0xd2, 0x74, 0x49, 0xfa, 0xa1, 0x28, 0x1c, 0xf3, 0x65, 0xee, 0x2b, 0xe8, 0x9d, - 0x00, 0x75, 0xe7, 0xa0, 0xd3, 0xa6, 0xeb, 0x2a, 0x4d, 0x33, 0x43, 0xa4, 0x85, 0x84, 0x30, 0x4e, - 0x21, 0x9d, 0xb6, 0xe8, 0x37, 0x48, 0x3f, 0xd0, 0x26, 0x42, 0x70, 0xc5, 0x13, 0x34, 0x46, 0x04, - 0x3d, 0x11, 0x30, 0xd3, 0xae, 0x25, 0x6b, 0x06, 0x32, 0xd5, 0x46, 0xdd, 0x76, 0xda, 0x65, 0xb7, - 0xdd, 0xb2, 0x2b, 0xfb, 0x75, 0x67, 0x97, 0xe4, 0xd1, 0x44, 0x3e, 0xbe, 0x53, 0x69, 0xb8, 0xb6, - 0x35, 0x42, 0xbb, 0x37, 0x78, 0x2f, 0x46, 0x90, 0xc5, 0xa2, 0x25, 0x21, 0x06, 0x14, 0x04, 0xed, - 0x16, 0x88, 0xdc, 0xb7, 0x06, 0x21, 0x29, 0x55, 0x67, 0xe6, 0x69, 0x48, 0x3d, 0x53, 0x79, 0xae, - 0x52, 0xe6, 0x15, 0x37, 0xd5, 0x44, 0x12, 0xb7, 0xad, 0xb3, 0xaa, 0x7b, 0x06, 0xc6, 0x08, 0x09, - 0x9a, 0x23, 0x1a, 0xa8, 0xda, 0xa8, 0xb8, 0x2e, 0x51, 0x5a, 0x82, 0x90, 0x9a, 0xb8, 0x6f, 0x0d, - 0x77, 0x15, 0x79, 0x8f, 0x79, 0x11, 0x8e, 0x12, 0xc4, 0x3e, 0x4a, 0xbc, 0xf5, 0x83, 0x86, 0x5d, - 0xc6, 0xf7, 0x00, 0x2e, 0xc9, 0xa7, 0x42, 0xb2, 0x51, 0x4c, 0xb1, 0xc2, 0x08, 0xb0, 0x44, 0xae, - 0x79, 0x15, 0xee, 0x24, 0xb0, 0x5d, 0xdb, 0xb1, 0x5b, 0x95, 0xb6, 0x5d, 0xb6, 0xff, 0x6b, 0x07, - 0xd1, 0x96, 0x2b, 0x4e, 0xad, 0xbc, 0x57, 0x71, 0xf7, 0xb2, 0x63, 0x32, 0x83, 0xdb, 0x31, 0xed, - 0x55, 0x46, 0x5a, 0x22, 0x94, 0xf3, 0x4e, 0xed, 0x31, 0x44, 0x67, 0xe6, 0x61, 0x9c, 0x30, 0x42, - 0x4a, 0x41, 0x73, 0x2e, 0x57, 0xf7, 0xec, 0xea, 0xb3, 0xe5, 0x4e, 0x7b, 0xe7, 0x4a, 0xf6, 0x0e, - 0x99, 0x03, 0x11, 0x72, 0x83, 0xd0, 0x14, 0x31, 0xc9, 0x16, 0xa2, 0x30, 0x37, 0x20, 0x85, 0xed, - 0xb1, 0x5f, 0x7f, 0x0f, 0x12, 0xbb, 0xd9, 0x22, 0x6b, 0x44, 0xda, 0x27, 0xb8, 0x25, 0x25, 0x4e, - 0xaf, 0x31, 0xc0, 0x0a, 0xaa, 0x4f, 0xf3, 0xf1, 0x8d, 0xf5, 0x52, 0x69, 0xc1, 0x4a, 0x72, 0x2e, - 0x8b, 0xcd, 0x16, 0xf6, 0xa9, 0xdd, 0xa6, 0xd0, 0x71, 0x92, 0xfa, 0xd4, 0x6e, 0x93, 0x6b, 0x18, - 0xe9, 0xab, 0x5a, 0xa5, 0xd3, 0x46, 0xf7, 0x2e, 0xac, 0x58, 0x77, 0xb3, 0x19, 0x45, 0x5f, 0xd5, - 0xea, 0x55, 0x4a, 0xc0, 0xdc, 0xdc, 0x45, 0x21, 0x71, 0xcc, 0xd3, 0x97, 0x0c, 0x1c, 0xed, 0x9a, - 0xa5, 0x0e, 0x45, 0x23, 0x1e, 0x5c, 0xef, 0x06, 0x9a, 0xca, 0x88, 0x07, 0xd7, 0x75, 0xd8, 0xdd, - 0xe4, 0x06, 0xac, 0x65, 0x57, 0x91, 0xca, 0x6b, 0xd9, 0xdb, 0x64, 0x6a, 0xa9, 0xc3, 0x3c, 0x87, - 0x1c, 0xb9, 0x5a, 0xb6, 0x9d, 0xca, 0x36, 0xb2, 0x7d, 0xa5, 0x85, 0xbe, 0xb8, 0xd9, 0x93, 0x32, - 0x71, 0xba, 0x5a, 0x2d, 0x91, 0xde, 0x79, 0xd2, 0x69, 0x4e, 0xc1, 0x68, 0x73, 0xfb, 0x99, 0x2a, - 0x75, 0xae, 0x32, 0xe2, 0xb3, 0x53, 0x7f, 0x21, 0x7b, 0x86, 0xa8, 0x69, 0x04, 0x77, 0x10, 0xd7, - 0x5a, 0x27, 0xcd, 0xe6, 0xbd, 0x88, 0xb9, 0xbb, 0x57, 0x69, 0x1d, 0x90, 0x45, 0xda, 0x45, 0x4a, - 0xb5, 0xb3, 0x77, 0x53, 0x52, 0xda, 0xbe, 0xca, 0x9b, 0xcd, 0x12, 0x9c, 0xc4, 0x93, 0x77, 0x2a, - 0x4e, 0xb3, 0xdc, 0x71, 0xed, 0xb2, 0x27, 0xa2, 0xb0, 0xc5, 0x59, 0x2c, 0x96, 0x75, 0x9c, 0x93, - 0x6d, 0xb9, 0x28, 0x99, 0x71, 0x22, 0x6e, 0x9e, 0x27, 0x61, 0xac, 0xe3, 0xd4, 0x1d, 0xe4, 0xe2, - 0xa8, 0x07, 0x83, 0x69, 0xc0, 0x66, 0xff, 0x71, 0x30, 0xa0, 0xe8, 0xde, 0x92, 0xa9, 0xa9, 0x93, - 0x58, 0x47, 0x3b, 0xdd, 0x8d, 0xb9, 0x3c, 0xa4, 0x64, 0xdf, 0x31, 0x87, 0x80, 0x7a, 0x0f, 0x5a, - 0xdd, 0xd0, 0x8a, 0x5a, 0x5c, 0x5b, 0xc0, 0x6b, 0xe1, 0xbb, 0x4b, 0x68, 0x61, 0x43, 0x6b, 0xf2, - 0xf2, 0xd2, 0x66, 0xa9, 0x6c, 0x6d, 0xad, 0x6e, 0x2e, 0xad, 0x94, 0x32, 0xc6, 0xd4, 0x50, 0xe2, - 0x07, 0x83, 0x99, 0xf7, 0xa2, 0xff, 0xa2, 0xb9, 0x6f, 0x44, 0x21, 0xad, 0xd6, 0xc1, 0xe6, 0x43, - 0x70, 0x1b, 0xbf, 0x69, 0x75, 0xed, 0x76, 0xf9, 0xf9, 0x7a, 0x8b, 0xb8, 0xf3, 0x7e, 0x85, 0x56, - 0x92, 0xc2, 0x12, 0x63, 0x8c, 0x0a, 0xdd, 0xde, 0x3f, 0x81, 0x68, 0x16, 0x09, 0x89, 0xb9, 0x0c, - 0x27, 0x91, 0xca, 0x50, 0xad, 0xe9, 0xd4, 0x2a, 0xad, 0x5a, 0xd9, 0xdb, 0x2e, 0x28, 0x57, 0xaa, - 0xc8, 0x0f, 0xdc, 0x26, 0x5d, 0x49, 0x04, 0x97, 0xe3, 0x4e, 0x73, 0x83, 0x11, 0x7b, 0x29, 0x76, - 0x9e, 0x91, 0x6a, 0x5e, 0x63, 0x04, 0x79, 0x0d, 0xaa, 0xbd, 0xf6, 0x2b, 0x07, 0xc8, 0x6d, 0xda, - 0xad, 0xeb, 0xa4, 0x7a, 0x4b, 0x58, 0x09, 0xd4, 0x50, 0xc2, 0xd7, 0x6f, 0x9e, 0x0d, 0x64, 0x3d, - 0xfe, 0x83, 0x01, 0x29, 0xb9, 0x82, 0xc3, 0x05, 0x71, 0x95, 0xa4, 0xf9, 0x08, 0xc9, 0x02, 0x77, - 0xf5, 0xac, 0xf7, 0xa6, 0x8b, 0x38, 0xff, 0xe7, 0x07, 0x68, 0x5d, 0x65, 0x51, 0x24, 0x5e, 0x7b, - 0xb1, 0xaf, 0xd9, 0xb4, 0x5a, 0x4f, 0x58, 0xec, 0x0a, 0x25, 0xbb, 0x81, 0x67, 0x5c, 0xc2, 0x7b, - 0x80, 0xf0, 0x3e, 0xd3, 0x9b, 0xf7, 0xb5, 0x0d, 0xc2, 0x7c, 0xe8, 0xda, 0x46, 0x79, 0x75, 0xcd, - 0x5a, 0x99, 0x5f, 0xb6, 0x18, 0xdc, 0xbc, 0x1d, 0x62, 0x8d, 0xca, 0x7b, 0xae, 0xab, 0x2b, 0x05, - 0x69, 0xea, 0x57, 0xf1, 0x88, 0x03, 0xde, 0xf2, 0x50, 0xf3, 0x33, 0x69, 0x7a, 0x13, 0x5d, 0xff, - 0x1c, 0xc4, 0x89, 0xbe, 0x4c, 0x00, 0xa6, 0xb1, 0xcc, 0x11, 0x33, 0x01, 0xb1, 0xe2, 0x9a, 0x85, - 0xdd, 0x1f, 0xf9, 0x3b, 0x6d, 0x2d, 0xaf, 0x2f, 0x95, 0x8a, 0x28, 0x02, 0x72, 0x17, 0x61, 0x80, - 0x2a, 0x01, 0x87, 0x86, 0x50, 0x03, 0x02, 0xd1, 0x4b, 0xc6, 0x23, 0xc2, 0x7b, 0xb7, 0x56, 0x0a, - 0x25, 0x2b, 0x13, 0x95, 0xcd, 0xfb, 0xb5, 0x08, 0x24, 0xa5, 0x82, 0x0a, 0x2f, 0xe5, 0x95, 0x46, - 0xa3, 0xf9, 0x7c, 0xb9, 0xd2, 0xa8, 0xa3, 0x0c, 0x45, 0xed, 0x03, 0xa4, 0x69, 0x1e, 0xb7, 0xf4, - 0xab, 0xbf, 0x5f, 0x88, 0x6f, 0x7e, 0x2a, 0x02, 0x19, 0xbd, 0x18, 0xd3, 0x04, 0x8c, 0xbc, 0xa5, - 0x02, 0x7e, 0x22, 0x02, 0x69, 0xb5, 0x02, 0xd3, 0xc4, 0x3b, 0xfd, 0x96, 0x8a, 0xf7, 0xf1, 0x08, - 0x0c, 0x2b, 0x75, 0xd7, 0x2f, 0x95, 0x74, 0x1f, 0x33, 0xe0, 0xa8, 0x0f, 0x0e, 0x25, 0x20, 0x5a, - 0xa0, 0xd2, 0x9a, 0xf9, 0xfe, 0x7e, 0xc6, 0x9a, 0xc6, 0xeb, 0xdf, 0x7a, 0xa5, 0xd5, 0x66, 0xf5, - 0x2c, 0x5a, 0x2f, 0xeb, 0x35, 0x94, 0x54, 0xeb, 0x3b, 0x75, 0x54, 0xbe, 0xd1, 0x3b, 0x16, 0x5a, - 0xb5, 0x8e, 0x78, 0xed, 0xf4, 0xf6, 0xf8, 0x3e, 0x30, 0x0f, 0x9a, 0x6e, 0xbd, 0x5d, 0x7f, 0x0e, - 0x6f, 0xcf, 0xf1, 0x1b, 0x69, 0x5c, 0xc5, 0xc6, 0xac, 0x0c, 0xef, 0x59, 0x72, 0xda, 0x82, 0xda, - 0xb1, 0x77, 0x2b, 0x1a, 0x35, 0x4e, 0x43, 0x86, 0x95, 0xe1, 0x3d, 0x82, 0x1a, 0x15, 0x9a, 0xb5, - 0x66, 0x07, 0x17, 0x04, 0x94, 0x0e, 0x67, 0xbd, 0x88, 0x95, 0xa4, 0x6d, 0x82, 0x84, 0x55, 0x6c, - 0xde, 0x1d, 0x7c, 0xca, 0x4a, 0xd2, 0x36, 0x4a, 0x72, 0x0f, 0x8c, 0x54, 0x76, 0x77, 0x5b, 0x98, - 0x39, 0x67, 0x44, 0xcb, 0xd0, 0xb4, 0x68, 0x26, 0x84, 0x13, 0xd7, 0x20, 0xc1, 0xf5, 0x80, 0x17, - 0x16, 0xac, 0x09, 0xb4, 0xe6, 0x93, 0x7d, 0x94, 0x28, 0xbe, 0xa9, 0x77, 0x78, 0x27, 0x1a, 0xb4, - 0xee, 0x96, 0xbd, 0x0d, 0xbd, 0x28, 0xea, 0x4f, 0x58, 0xc9, 0xba, 0x2b, 0x76, 0x70, 0x72, 0x9f, - 0x43, 0xcb, 0xab, 0xba, 0x21, 0x69, 0x2e, 0x40, 0xa2, 0xd1, 0x44, 0xfe, 0x81, 0x11, 0x74, 0x37, - 0x7c, 0x32, 0x64, 0x0f, 0x73, 0x7a, 0x99, 0xd1, 0x5b, 0x02, 0x39, 0xf1, 0xd7, 0x11, 0x48, 0xf0, - 0x66, 0xb4, 0x50, 0xc4, 0x0e, 0x2a, 0xed, 0x3d, 0xc2, 0x2e, 0x5e, 0x88, 0x66, 0x22, 0x16, 0xb9, - 0xc6, 0xed, 0xa8, 0x9a, 0x71, 0x88, 0x0b, 0xb0, 0x76, 0x7c, 0x8d, 0xed, 0xda, 0xb0, 0x2b, 0x35, - 0x52, 0xe0, 0x36, 0xf7, 0xf7, 0x91, 0x25, 0x5d, 0x6e, 0x57, 0xd6, 0x5e, 0x64, 0xcd, 0x78, 0x5f, - 0xbc, 0xdd, 0xaa, 0xd4, 0x1b, 0x0a, 0x6d, 0x8c, 0xd0, 0x66, 0x78, 0x87, 0x20, 0xce, 0xc3, 0xed, - 0x9c, 0x6f, 0xcd, 0x6e, 0x57, 0x50, 0xf1, 0x5c, 0xf3, 0x40, 0x03, 0x64, 0xb7, 0xeb, 0x36, 0x46, - 0xb0, 0xc0, 0xfa, 0x39, 0xb6, 0xf0, 0x24, 0x2a, 0x64, 0x9b, 0xfb, 0xba, 0x26, 0x0a, 0x19, 0xed, - 0xbe, 0xcb, 0x7d, 0x2c, 0xf2, 0x6e, 0xf0, 0x8a, 0x8a, 0xcf, 0x44, 0x8d, 0xab, 0xeb, 0x85, 0x2f, - 0x44, 0x27, 0xae, 0x52, 0xdc, 0x3a, 0xd7, 0xa0, 0x65, 0xef, 0x34, 0xec, 0x2a, 0xd6, 0x0e, 0xbc, - 0x74, 0x17, 0xdc, 0xbf, 0x5b, 0x6f, 0xef, 0x75, 0xb6, 0xa7, 0xd1, 0x08, 0xe7, 0x76, 0x9b, 0xbb, - 0x4d, 0xef, 0x38, 0x03, 0x5f, 0x91, 0x0b, 0xf2, 0x8d, 0x1d, 0x69, 0x0c, 0x89, 0xd6, 0x89, 0xd0, - 0xf3, 0x8f, 0xfc, 0x2a, 0x1c, 0x65, 0xc4, 0x65, 0xb2, 0xa7, 0x4a, 0x4b, 0x50, 0xb3, 0xe7, 0x0d, - 0x79, 0xf6, 0x4b, 0xdf, 0x27, 0x4b, 0x82, 0x35, 0xca, 0xa0, 0xb8, 0x8f, 0x16, 0xa9, 0x79, 0x0b, - 0x8e, 0x29, 0xfc, 0xa8, 0x0f, 0xa3, 0x5b, 0xee, 0xde, 0x1c, 0xbf, 0xc1, 0x38, 0x1e, 0x95, 0x38, - 0x6e, 0x30, 0x68, 0xbe, 0x08, 0xc3, 0x87, 0xe1, 0xf5, 0x4d, 0xc6, 0x2b, 0x65, 0xcb, 0x4c, 0xae, - 0xc2, 0x08, 0x61, 0x52, 0xed, 0xb8, 0xed, 0xe6, 0x3e, 0x49, 0x10, 0xbd, 0xd9, 0xfc, 0xe5, 0xf7, - 0xa9, 0x53, 0xa5, 0x31, 0xac, 0x28, 0x50, 0xf9, 0xc7, 0x61, 0x0c, 0xb7, 0x90, 0x18, 0x94, 0xb9, - 0x85, 0x6f, 0x21, 0x64, 0xff, 0xe6, 0xfd, 0xd4, 0xf7, 0x8e, 0x0a, 0x06, 0x12, 0x5f, 0xc9, 0x12, - 0xbb, 0x76, 0x1b, 0xe5, 0x36, 0x74, 0xff, 0xd7, 0x68, 0x98, 0x3d, 0xcf, 0x18, 0xb2, 0x1f, 0xfd, - 0xa1, 0x6a, 0x89, 0xab, 0x14, 0x39, 0xdf, 0x68, 0xe4, 0xb7, 0xe0, 0x36, 0x1f, 0xcb, 0xf6, 0xc1, - 0xf3, 0x63, 0x8c, 0xe7, 0x58, 0x97, 0x75, 0x31, 0xdb, 0x75, 0xe0, 0xed, 0xc2, 0x1e, 0x7d, 0xf0, - 0xfc, 0x38, 0xe3, 0x69, 0x32, 0x2c, 0x37, 0x0b, 0xe6, 0x78, 0x0d, 0x46, 0xd1, 0x9d, 0xfa, 0x76, - 0xd3, 0x65, 0xf7, 0xbd, 0x7d, 0xb0, 0xfb, 0x04, 0x63, 0x37, 0xc2, 0x80, 0xe4, 0x2e, 0x18, 0xf3, - 0x7a, 0x00, 0x12, 0x3b, 0xe8, 0x06, 0xa8, 0x0f, 0x16, 0x9f, 0x64, 0x2c, 0x06, 0x31, 0x3d, 0x86, - 0xce, 0x43, 0x6a, 0xb7, 0xc9, 0xd2, 0x70, 0x38, 0xfc, 0x53, 0x0c, 0x9e, 0xe4, 0x18, 0xc6, 0xe2, - 0xa0, 0x79, 0xd0, 0x69, 0xe0, 0x1c, 0x1d, 0xce, 0xe2, 0xd3, 0x9c, 0x05, 0xc7, 0x30, 0x16, 0x87, - 0x50, 0xeb, 0x8b, 0x9c, 0x85, 0x2b, 0xe9, 0xf3, 0x51, 0xbc, 0xd7, 0xdb, 0xb8, 0xde, 0x74, 0xfa, - 0x11, 0xe2, 0x25, 0xc6, 0x01, 0x18, 0x04, 0x33, 0x78, 0x10, 0x86, 0xfa, 0x35, 0xc4, 0x67, 0x19, - 0x3c, 0x61, 0x73, 0x0b, 0xa0, 0x38, 0xe3, 0x49, 0x06, 0x9f, 0xad, 0x84, 0xb3, 0xf8, 0x6d, 0xc6, - 0x22, 0x2d, 0xc1, 0xd8, 0x34, 0xda, 0xb6, 0xdb, 0x46, 0xb7, 0xea, 0x7d, 0x30, 0xf9, 0x1c, 0x9f, - 0x06, 0x83, 0x30, 0x55, 0x6e, 0xdb, 0x4e, 0x75, 0xaf, 0x3f, 0x0e, 0x2f, 0x73, 0x55, 0x72, 0x0c, - 0x66, 0x81, 0x32, 0xcf, 0x7e, 0xa5, 0x85, 0x6e, 0xae, 0x1b, 0x7d, 0x99, 0xe3, 0xf3, 0x8c, 0x47, - 0x4a, 0x80, 0x98, 0x46, 0x3a, 0xce, 0x61, 0xd8, 0x7c, 0x81, 0x6b, 0x44, 0x82, 0xb1, 0xd0, 0x43, - 0x77, 0xa6, 0xb8, 0x92, 0x38, 0x0c, 0xb7, 0xdf, 0xe1, 0xa1, 0x47, 0xb1, 0x2b, 0x32, 0x47, 0x64, - 0x69, 0x17, 0xdd, 0x82, 0xf7, 0xc3, 0xe6, 0x77, 0xb9, 0xa5, 0x09, 0x00, 0x83, 0x9f, 0x82, 0xdb, - 0x7d, 0x53, 0x7d, 0x1f, 0xcc, 0x7e, 0x8f, 0x31, 0x1b, 0xf7, 0x49, 0xf7, 0x2c, 0x25, 0x1c, 0x96, - 0xe5, 0xef, 0xf3, 0x94, 0x60, 0x6b, 0xbc, 0xd6, 0x71, 0x19, 0xeb, 0x56, 0x76, 0x0e, 0xa7, 0xb5, - 0x3f, 0xe0, 0x5a, 0xa3, 0x58, 0x45, 0x6b, 0x9b, 0x30, 0xce, 0x38, 0x1e, 0xce, 0xae, 0x5f, 0xe4, - 0x89, 0x95, 0xa2, 0xb7, 0x54, 0xeb, 0x3e, 0x0d, 0x13, 0x42, 0x9d, 0xbc, 0x02, 0x73, 0xcb, 0x78, - 0x63, 0x20, 0x9c, 0xf3, 0x97, 0x18, 0x67, 0x9e, 0xf1, 0x45, 0x09, 0xe7, 0xae, 0x54, 0x0e, 0x30, - 0xf3, 0x27, 0x21, 0xcb, 0x99, 0x77, 0x1c, 0x54, 0xe0, 0x37, 0x77, 0x1d, 0x64, 0xc6, 0x5a, 0x1f, - 0xac, 0xbf, 0xac, 0x99, 0x6a, 0x4b, 0x82, 0x63, 0xce, 0x4b, 0x90, 0x11, 0xf5, 0x46, 0xb9, 0xbe, - 0x7f, 0xd0, 0x44, 0xa5, 0x65, 0x6f, 0x8e, 0x7f, 0xc8, 0x2d, 0x25, 0x70, 0x4b, 0x04, 0x96, 0x2f, - 0x41, 0x9a, 0x5c, 0xf6, 0xeb, 0x92, 0x5f, 0x61, 0x8c, 0x86, 0x3d, 0x14, 0x4b, 0x1c, 0xa8, 0x52, - 0x42, 0x35, 0x6f, 0x3f, 0xf9, 0xef, 0x8f, 0x78, 0xe2, 0x60, 0x10, 0xea, 0x7d, 0x23, 0xda, 0x4a, - 0x6c, 0x86, 0x1d, 0xbf, 0x66, 0xff, 0xfb, 0xeb, 0x2c, 0x66, 0xd5, 0x85, 0x38, 0xbf, 0x8c, 0xd5, - 0xa3, 0x2e, 0x97, 0xe1, 0xcc, 0xde, 0xff, 0xba, 0xd0, 0x90, 0xb2, 0x5a, 0xe6, 0x17, 0x61, 0x58, - 0x59, 0x2a, 0xc3, 0x59, 0xfd, 0x0f, 0xc6, 0x2a, 0x25, 0xaf, 0x94, 0xf9, 0x8b, 0x10, 0xc3, 0xcb, - 0x5e, 0x38, 0xfc, 0x7f, 0x32, 0x38, 0x21, 0xcf, 0x3f, 0x0c, 0x09, 0xbe, 0xdc, 0x85, 0x43, 0x3f, - 0xc0, 0xa0, 0x02, 0x82, 0xe1, 0x7c, 0xa9, 0x0b, 0x87, 0xff, 0x2f, 0x0e, 0xe7, 0x10, 0x0c, 0xef, - 0x5f, 0x85, 0xaf, 0xfc, 0x9f, 0x18, 0x4b, 0x57, 0x5c, 0x77, 0xf8, 0xcc, 0x87, 0xae, 0x71, 0xe1, - 0xe8, 0x0f, 0xb1, 0xc1, 0x39, 0x22, 0x7f, 0x19, 0xe2, 0x7d, 0x2a, 0xfc, 0xff, 0x32, 0x28, 0xa5, - 0x47, 0x2b, 0x48, 0x52, 0x5a, 0xd7, 0xc2, 0xe1, 0xff, 0x8f, 0xc1, 0x65, 0x14, 0x16, 0x9d, 0xad, - 0x6b, 0xe1, 0x0c, 0xfe, 0x3f, 0x17, 0x9d, 0x21, 0xb0, 0xda, 0xf8, 0x92, 0x16, 0x8e, 0xfe, 0x15, - 0xae, 0x75, 0x0e, 0x41, 0xd1, 0x34, 0x24, 0xd2, 0x54, 0x38, 0xfe, 0x57, 0x19, 0xde, 0xc3, 0x60, - 0x0d, 0x48, 0x69, 0x32, 0x9c, 0xc5, 0xaf, 0x71, 0x0d, 0x48, 0x28, 0x1c, 0x46, 0xfa, 0xd2, 0x17, - 0xce, 0xe9, 0xc3, 0x3c, 0x8c, 0xb4, 0x95, 0x0f, 0x5b, 0x93, 0x64, 0x8b, 0x70, 0x16, 0xbf, 0xce, - 0xad, 0x49, 0xe8, 0xb1, 0x18, 0xfa, 0x5a, 0x12, 0xce, 0xe3, 0x37, 0xb9, 0x18, 0xda, 0x52, 0x82, - 0x56, 0x26, 0xb3, 0x7b, 0x1d, 0x09, 0xe7, 0xf7, 0x11, 0xc6, 0x6f, 0xb4, 0x6b, 0x19, 0xc9, 0x3f, - 0x01, 0xe3, 0xfe, 0x6b, 0x48, 0x38, 0xd7, 0x8f, 0xbe, 0xae, 0x55, 0xfd, 0xf2, 0x12, 0x82, 0x96, - 0xbc, 0x31, 0xbf, 0xf5, 0x23, 0x9c, 0xed, 0xc7, 0x5e, 0x57, 0x6f, 0xec, 0xe4, 0xe5, 0x03, 0x55, - 0x68, 0xe0, 0xa5, 0xee, 0x70, 0x5e, 0x9f, 0x60, 0xbc, 0x24, 0x10, 0x0e, 0x0d, 0x96, 0xb9, 0xc3, - 0xf1, 0x9f, 0xe4, 0xa1, 0xc1, 0x10, 0x08, 0x9c, 0x70, 0x3a, 0x8d, 0x06, 0x76, 0x0e, 0xb3, 0xf7, - 0x23, 0x0d, 0xd9, 0x7f, 0xfa, 0x19, 0x0b, 0x0c, 0x0e, 0x40, 0x39, 0x34, 0x6e, 0xef, 0x6f, 0x23, - 0x1d, 0x84, 0x20, 0xff, 0xf9, 0x67, 0x3c, 0x21, 0x60, 0x6a, 0x14, 0x4f, 0x40, 0x6f, 0x1a, 0xc9, - 0x1e, 0x76, 0x08, 0xf6, 0x5f, 0x7e, 0xc6, 0x8e, 0x59, 0x3d, 0x88, 0xc7, 0x80, 0x1e, 0xda, 0xf6, - 0x66, 0xf0, 0x43, 0x95, 0x01, 0xb9, 0xd1, 0x7c, 0x00, 0x06, 0xf1, 0x93, 0x1d, 0xed, 0xca, 0x6e, - 0x18, 0xfa, 0x5f, 0x19, 0x9a, 0xd3, 0x63, 0x85, 0xed, 0x37, 0x5b, 0x36, 0xfa, 0xea, 0x86, 0x61, - 0xff, 0x8d, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xb7, 0xdd, 0xcf, 0xbc, 0xff, 0x9d, 0x83, 0x39, - 0x00, 0x0b, 0x8d, 0xbf, 0x3f, 0x6b, 0x5f, 0x0f, 0xc3, 0xfe, 0x88, 0x0b, 0xcd, 0xe8, 0x51, 0x02, - 0x1c, 0xc2, 0x5f, 0xe9, 0xa3, 0x07, 0x21, 0xe0, 0x1f, 0x33, 0xb0, 0x87, 0x28, 0x9c, 0xf6, 0xdf, - 0xda, 0x81, 0xab, 0xcd, 0xab, 0x4d, 0xba, 0xa9, 0x03, 0xdf, 0xac, 0xc3, 0xe5, 0xc0, 0x3d, 0x1a, - 0x9c, 0x87, 0xcf, 0xa1, 0x66, 0xb4, 0xfa, 0x9e, 0xdb, 0x6e, 0xb6, 0xf7, 0xce, 0xb5, 0xf7, 0x6c, - 0xdc, 0xc6, 0x76, 0x6b, 0x62, 0xf8, 0xfb, 0xc4, 0xe1, 0xb6, 0x78, 0xc8, 0x79, 0xcd, 0x6a, 0x1d, - 0x4b, 0xbd, 0x4a, 0x36, 0x1b, 0xcd, 0xe3, 0x30, 0x40, 0xe6, 0x71, 0x9e, 0xec, 0x85, 0x47, 0x0a, - 0xb1, 0x1b, 0xaf, 0x9d, 0x3c, 0x62, 0x0d, 0x90, 0xe7, 0xf6, 0xce, 0x8b, 0xde, 0x59, 0xb2, 0xd5, - 0x1f, 0x55, 0x7a, 0x67, 0x45, 0xef, 0x05, 0xfa, 0x50, 0x94, 0xd2, 0x7b, 0x41, 0xf4, 0xce, 0x91, - 0x7d, 0x33, 0x43, 0xe9, 0x9d, 0x13, 0xbd, 0x17, 0xc9, 0xf6, 0xe7, 0xb0, 0xd2, 0x7b, 0x51, 0xf4, - 0x5e, 0x22, 0x9b, 0x9e, 0x31, 0xa5, 0xf7, 0x92, 0xe8, 0xbd, 0x4c, 0xf6, 0x3b, 0x47, 0x95, 0xde, - 0xcb, 0xa2, 0xf7, 0x0a, 0xd9, 0xe7, 0x34, 0x95, 0xde, 0x2b, 0xa2, 0xf7, 0x01, 0x72, 0x4c, 0x3d, - 0xa8, 0xf4, 0x3e, 0x60, 0x9e, 0x80, 0x41, 0xaa, 0x8d, 0x19, 0x72, 0xb4, 0x33, 0xc2, 0xba, 0x07, - 0xa9, 0x3a, 0x66, 0xbc, 0xfe, 0xf3, 0xe4, 0x48, 0x7a, 0x40, 0xed, 0x3f, 0xef, 0xf5, 0xcf, 0x92, - 0xc7, 0x2c, 0x33, 0x6a, 0xff, 0xac, 0xd7, 0x7f, 0x21, 0x3b, 0x8c, 0x63, 0x5b, 0xed, 0xbf, 0xe0, - 0xf5, 0xcf, 0x65, 0xd3, 0xd8, 0x9d, 0xd4, 0xfe, 0x39, 0xaf, 0xff, 0x62, 0x76, 0x04, 0x6f, 0xf5, - 0xaa, 0xfd, 0x17, 0x73, 0xef, 0x23, 0xe6, 0x75, 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0x15, 0x86, 0x1d, - 0x57, 0x0d, 0x2b, 0x4c, 0x3a, 0xae, 0x9a, 0x54, 0x18, 0x73, 0x5c, 0x35, 0xa6, 0x30, 0xe3, 0xb8, - 0x6a, 0x46, 0x61, 0xc0, 0x71, 0xd5, 0x80, 0xc2, 0x74, 0xe3, 0xaa, 0xe9, 0x84, 0xd1, 0xc6, 0x55, - 0xa3, 0x09, 0x73, 0x8d, 0xab, 0xe6, 0x12, 0x86, 0xca, 0x6a, 0x86, 0xf2, 0x4c, 0x94, 0xd5, 0x4c, - 0xe4, 0x19, 0x27, 0xab, 0x19, 0xc7, 0x33, 0x4b, 0x56, 0x33, 0x8b, 0x67, 0x90, 0xac, 0x66, 0x10, - 0xcf, 0x14, 0x59, 0xcd, 0x14, 0x9e, 0x11, 0x58, 0x8c, 0x59, 0xf6, 0x81, 0x4f, 0x8c, 0x19, 0x3d, - 0x63, 0xcc, 0xe8, 0x19, 0x63, 0x46, 0xcf, 0x18, 0x33, 0x7a, 0xc6, 0x98, 0xd1, 0x33, 0xc6, 0x8c, - 0x9e, 0x31, 0x66, 0xf4, 0x8c, 0x31, 0xa3, 0x67, 0x8c, 0x19, 0xbd, 0x63, 0xcc, 0x08, 0x89, 0x31, - 0x23, 0x24, 0xc6, 0x8c, 0x90, 0x18, 0x33, 0x42, 0x62, 0xcc, 0x08, 0x89, 0x31, 0x23, 0x30, 0xc6, - 0x3c, 0xf3, 0x8e, 0xab, 0xe6, 0xf5, 0x8d, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, - 0x62, 0xcc, 0x08, 0x88, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, - 0x8a, 0x31, 0x23, 0x30, 0xc6, 0x8c, 0xc0, 0x18, 0x33, 0x02, 0x63, 0xcc, 0x08, 0x8c, 0x31, 0x23, - 0x30, 0xc6, 0x0c, 0x39, 0xc6, 0xfe, 0xc4, 0x00, 0x93, 0xc6, 0xd8, 0x3a, 0x79, 0x38, 0x80, 0x99, - 0xe2, 0x84, 0x16, 0x69, 0x03, 0xd8, 0x74, 0x19, 0xcf, 0x24, 0x27, 0xb4, 0x58, 0x53, 0xfb, 0x67, - 0x45, 0x3f, 0x8f, 0x36, 0xb5, 0xff, 0x82, 0xe8, 0xe7, 0xf1, 0xa6, 0xf6, 0xcf, 0x89, 0x7e, 0x1e, - 0x71, 0x6a, 0xff, 0x45, 0xd1, 0xcf, 0x63, 0x4e, 0xed, 0xbf, 0x24, 0xfa, 0x79, 0xd4, 0xa9, 0xfd, - 0x97, 0x45, 0x3f, 0x8f, 0x3b, 0xb5, 0xff, 0x8a, 0xe8, 0xe7, 0x91, 0xa7, 0xf6, 0x3f, 0x60, 0x9e, - 0xd2, 0x63, 0x8f, 0x13, 0x08, 0xd3, 0x9e, 0xd2, 0xa3, 0x4f, 0xa3, 0x38, 0xef, 0x51, 0xf0, 0xf8, - 0xd3, 0x28, 0x66, 0x3d, 0x0a, 0x1e, 0x81, 0x1a, 0xc5, 0x85, 0xdc, 0x07, 0x89, 0xf9, 0x1c, 0xdd, - 0x7c, 0x13, 0x9a, 0xf9, 0xa2, 0x92, 0xe9, 0x26, 0x34, 0xd3, 0x45, 0x25, 0xb3, 0x4d, 0x68, 0x66, - 0x8b, 0x4a, 0x26, 0x9b, 0xd0, 0x4c, 0x16, 0x95, 0xcc, 0x35, 0xa1, 0x99, 0x2b, 0x2a, 0x99, 0x6a, - 0x42, 0x33, 0x55, 0x54, 0x32, 0xd3, 0x84, 0x66, 0xa6, 0xa8, 0x64, 0xa2, 0x09, 0xcd, 0x44, 0x51, - 0xc9, 0x3c, 0x13, 0x9a, 0x79, 0xa2, 0x92, 0x69, 0x8e, 0xeb, 0xa6, 0x89, 0xca, 0x66, 0x39, 0xae, - 0x9b, 0x25, 0x2a, 0x9b, 0xe4, 0xb8, 0x6e, 0x92, 0xa8, 0x6c, 0x8e, 0xe3, 0xba, 0x39, 0xa2, 0xb2, - 0x29, 0x7e, 0x1e, 0xe5, 0x15, 0xe1, 0x46, 0xbb, 0xd5, 0xa9, 0xb6, 0x6f, 0xa9, 0x22, 0x9c, 0x51, - 0xca, 0x87, 0xe4, 0xac, 0x39, 0x4d, 0x0a, 0x56, 0xb9, 0xe2, 0xd4, 0x56, 0xb0, 0x19, 0xa5, 0xb0, - 0x90, 0x10, 0x8e, 0x3f, 0x62, 0xee, 0x96, 0x6a, 0xc3, 0x19, 0xa5, 0xcc, 0x08, 0x97, 0xef, 0xca, - 0x9b, 0x5e, 0xb1, 0xbd, 0x12, 0xe5, 0x15, 0x1b, 0x53, 0xff, 0x61, 0x2b, 0xb6, 0xa9, 0x70, 0x95, - 0x0b, 0x65, 0x4f, 0x85, 0x2b, 0xbb, 0x6b, 0xd5, 0xe9, 0xb7, 0x82, 0x9b, 0x0a, 0x57, 0xad, 0x50, - 0xea, 0x1b, 0x5b, 0x6f, 0x31, 0x0f, 0x46, 0xc9, 0xc4, 0xc7, 0x83, 0x0f, 0x5b, 0x6f, 0xcd, 0x28, - 0xa9, 0xe4, 0xb0, 0x1e, 0x6c, 0x1c, 0xda, 0x83, 0x0f, 0x5b, 0x79, 0xcd, 0x28, 0xe9, 0xe5, 0xd0, - 0x1e, 0xfc, 0x26, 0xd4, 0x43, 0xcc, 0x83, 0x3d, 0xf5, 0x1f, 0xb6, 0x1e, 0x9a, 0x0a, 0x57, 0xb9, - 0xaf, 0x07, 0x1b, 0x87, 0xf0, 0xe0, 0x7e, 0xea, 0xa3, 0xa9, 0x70, 0xd5, 0xfa, 0x7b, 0xf0, 0x2d, - 0x57, 0x33, 0x9f, 0x8e, 0xc0, 0x28, 0x1a, 0xa6, 0x84, 0xf7, 0x79, 0x6a, 0x76, 0x8d, 0xe9, 0x71, - 0x46, 0xc9, 0x04, 0x01, 0xa6, 0x7e, 0xf5, 0xb5, 0x93, 0x9e, 0x86, 0x2f, 0x42, 0x82, 0x6a, 0x78, - 0x66, 0x26, 0x7b, 0x23, 0x12, 0x92, 0xe1, 0x12, 0x3b, 0x8c, 0xd4, 0x3c, 0xcd, 0x61, 0x68, 0xed, - 0xf9, 0x56, 0x44, 0xca, 0x72, 0x8c, 0xe4, 0xfc, 0x4c, 0xee, 0xc3, 0x44, 0x42, 0xe7, 0x96, 0x25, - 0x3c, 0xd7, 0x97, 0x84, 0x92, 0x6c, 0x77, 0x74, 0xc9, 0x26, 0x49, 0xd5, 0x81, 0x11, 0x04, 0x5b, - 0x25, 0x3f, 0xf0, 0xeb, 0x47, 0x24, 0x4a, 0xa3, 0xe5, 0x83, 0x19, 0xc5, 0x2d, 0x65, 0x84, 0x70, - 0x69, 0x35, 0x47, 0xe4, 0xea, 0x78, 0x58, 0x47, 0x19, 0x76, 0x2a, 0x68, 0x58, 0x2f, 0xb3, 0x8b, - 0x01, 0xa7, 0x82, 0x06, 0xf4, 0x62, 0x48, 0x0c, 0xf5, 0x02, 0x5f, 0x9c, 0xe9, 0xf3, 0x1e, 0x28, - 0x39, 0x44, 0x97, 0xe8, 0x63, 0x8b, 0xa9, 0x42, 0x0a, 0x0b, 0xf5, 0xf7, 0xaf, 0x9d, 0x8c, 0x6d, - 0x75, 0x90, 0xac, 0xd1, 0x7a, 0xcd, 0xbc, 0x06, 0xf1, 0xc7, 0xd9, 0xef, 0x6b, 0x30, 0xc1, 0x1c, - 0x23, 0xb8, 0x2f, 0x64, 0x8b, 0x89, 0xb0, 0x9e, 0xde, 0xaa, 0x3b, 0xed, 0xf3, 0xb3, 0x57, 0xd8, - 0x4f, 0x6d, 0x72, 0xff, 0x19, 0x80, 0x8e, 0xb9, 0x80, 0x7f, 0x1f, 0xb0, 0xca, 0x39, 0xd3, 0xa1, - 0xaf, 0x20, 0xae, 0x73, 0xfd, 0x70, 0xbd, 0xbf, 0x86, 0xd0, 0xf7, 0xe3, 0x8d, 0xb8, 0xe9, 0xc2, - 0x75, 0xd4, 0xce, 0xb9, 0x1f, 0xf0, 0x55, 0x8f, 0xcd, 0x2b, 0x2b, 0xcd, 0x2b, 0xa1, 0xcc, 0x69, - 0x51, 0x9d, 0xd3, 0xcc, 0xcd, 0xce, 0xe7, 0x05, 0xbe, 0x48, 0x68, 0x9a, 0x34, 0xc2, 0x34, 0x69, - 0xdc, 0xaa, 0x26, 0x0f, 0x78, 0x7e, 0xd4, 0xe6, 0x6a, 0xf4, 0x9a, 0xab, 0x71, 0x2b, 0x73, 0xfd, - 0x09, 0x8d, 0x56, 0x11, 0x4f, 0x5b, 0x0e, 0x7d, 0x5c, 0xee, 0x97, 0x6b, 0x2f, 0xe8, 0x0d, 0xad, - 0x02, 0xf2, 0xb1, 0x1b, 0x2f, 0x9e, 0x8c, 0xe4, 0x3e, 0x1d, 0xe5, 0x33, 0xa7, 0x81, 0x74, 0x73, - 0x33, 0xff, 0x65, 0xa9, 0xa9, 0xde, 0x0c, 0x0d, 0x7d, 0x2a, 0x02, 0xe3, 0x5d, 0x99, 0x9c, 0xaa, - 0xe9, 0x8d, 0x4d, 0xe7, 0xce, 0x61, 0xd3, 0x39, 0x13, 0xf0, 0x2b, 0x11, 0x18, 0xd3, 0xd2, 0x2b, - 0x15, 0xef, 0x9c, 0x26, 0xde, 0x6d, 0xdd, 0x23, 0x11, 0x42, 0x49, 0x3a, 0xd9, 0xbc, 0x1a, 0x40, - 0xe2, 0x2c, 0xec, 0x3e, 0xa7, 0xd9, 0xfd, 0xb8, 0x00, 0xf8, 0xa8, 0x8b, 0x7b, 0x00, 0x13, 0xbb, - 0x09, 0xb1, 0xcd, 0x96, 0x8d, 0xb7, 0x20, 0xa2, 0x6b, 0x2d, 0x26, 0x61, 0x9a, 0xe2, 0xd7, 0x5a, - 0x85, 0x56, 0xc5, 0xa9, 0xee, 0x59, 0xd1, 0x66, 0x0b, 0x2d, 0xb6, 0xc6, 0x3c, 0xfb, 0x21, 0x72, - 0x72, 0x76, 0x84, 0x12, 0xa0, 0x06, 0x46, 0x61, 0x54, 0x9c, 0x1a, 0x62, 0x11, 0x5b, 0xb6, 0x2b, - 0x3b, 0x4c, 0x08, 0xa0, 0x34, 0xb8, 0xc5, 0x8a, 0x35, 0xd0, 0xbf, 0x6c, 0xc0, 0x27, 0x21, 0xc1, - 0x19, 0x9b, 0x67, 0x30, 0x62, 0xa7, 0xcd, 0x86, 0x65, 0x08, 0x2c, 0x0e, 0x5b, 0xb9, 0x10, 0x6e, - 0xa7, 0x6d, 0x9e, 0x85, 0xb8, 0x55, 0xdf, 0xdd, 0x6b, 0xb3, 0xc1, 0xbb, 0xc9, 0xe2, 0x2d, 0xdc, - 0x9d, 0x7b, 0x0a, 0x86, 0x84, 0x44, 0x6f, 0x30, 0xeb, 0x05, 0x3a, 0x35, 0x74, 0x27, 0x2c, 0xad, - 0x27, 0x7c, 0xdf, 0x92, 0xfd, 0xc8, 0xf3, 0x14, 0x24, 0x90, 0x9a, 0xbd, 0xa4, 0xcf, 0x2b, 0x52, - 0x7c, 0x22, 0x4f, 0x5a, 0x73, 0xef, 0x8b, 0x40, 0x62, 0xc1, 0xb6, 0x0f, 0x88, 0xc2, 0xef, 0x86, - 0xd8, 0x42, 0xf3, 0x79, 0x87, 0x09, 0x38, 0xca, 0x34, 0x8a, 0xbb, 0x99, 0x4e, 0x63, 0x35, 0xd4, - 0x8d, 0xc8, 0x24, 0xbd, 0x1f, 0x15, 0x7a, 0x97, 0xe8, 0x88, 0xee, 0x73, 0x8a, 0xee, 0x99, 0x01, - 0x31, 0x51, 0x97, 0xfe, 0x2f, 0x43, 0x52, 0x1a, 0xc5, 0x9c, 0x64, 0x62, 0x44, 0x75, 0xa0, 0xac, - 0x2b, 0x2c, 0x49, 0xce, 0x86, 0x61, 0x65, 0x60, 0x0c, 0x95, 0x54, 0x1c, 0x00, 0x25, 0x6a, 0x9e, - 0x52, 0xd5, 0xec, 0x4f, 0xca, 0x54, 0x3d, 0x43, 0x75, 0x44, 0xd4, 0x7d, 0x86, 0x3a, 0x67, 0xb0, - 0x11, 0xdb, 0xe8, 0x7b, 0x2e, 0x0e, 0xc6, 0x6a, 0xbd, 0x91, 0x7b, 0x18, 0x80, 0x86, 0x3c, 0x7e, - 0xb8, 0x4a, 0x8b, 0xba, 0x34, 0x57, 0xf0, 0xe6, 0x9e, 0xbd, 0x89, 0xfe, 0x62, 0x12, 0xb5, 0x9e, - 0xc2, 0x09, 0x06, 0x68, 0x88, 0x11, 0xfc, 0xbd, 0xa1, 0x78, 0xdf, 0x4a, 0x0c, 0x93, 0x66, 0x29, - 0xe9, 0x53, 0x76, 0x7b, 0xde, 0x69, 0xb6, 0xf7, 0xec, 0x96, 0x86, 0x98, 0x35, 0x2f, 0x28, 0x01, - 0x9b, 0x9e, 0xbd, 0x43, 0x20, 0x02, 0x41, 0x17, 0x72, 0x5f, 0x24, 0x02, 0xe2, 0x52, 0xa0, 0x6b, - 0x82, 0x46, 0x1f, 0x13, 0x34, 0x2f, 0x29, 0xf5, 0x5b, 0x0f, 0x31, 0xb5, 0x5b, 0xcb, 0x07, 0x94, - 0xfb, 0x9c, 0xde, 0xc2, 0xaa, 0xf7, 0x98, 0x5c, 0xa7, 0x5c, 0xe4, 0x7b, 0x43, 0x45, 0x0e, 0xa8, - 0x6e, 0x0f, 0xab, 0x53, 0xa3, 0x5f, 0x9d, 0x7e, 0x4d, 0x54, 0x1c, 0xf4, 0xb7, 0xe0, 0xe4, 0x0d, - 0x02, 0xe6, 0x7d, 0xa1, 0xb6, 0xcf, 0x47, 0x8a, 0x42, 0xd4, 0xb9, 0x7e, 0xcd, 0x9f, 0x8f, 0x16, - 0x0a, 0x42, 0xdc, 0xcb, 0x87, 0x70, 0x81, 0x7c, 0xb4, 0x58, 0x14, 0x69, 0x3b, 0xf1, 0x41, 0x14, - 0xc5, 0x2f, 0xbf, 0x78, 0xf2, 0x48, 0xee, 0xf3, 0x48, 0x78, 0x46, 0x29, 0x39, 0xee, 0xfd, 0x9a, - 0xf0, 0xc7, 0x78, 0xce, 0xf0, 0xd3, 0xc0, 0x2f, 0xcc, 0x79, 0xbf, 0x11, 0x81, 0x6c, 0x97, 0xac, - 0x5c, 0xdf, 0x33, 0x7d, 0x89, 0x9c, 0x8f, 0x94, 0xde, 0x7a, 0x9d, 0x3f, 0x05, 0xf1, 0xcd, 0xfa, - 0xbe, 0xdd, 0xc2, 0x2b, 0x01, 0xfe, 0x42, 0x45, 0xe6, 0x87, 0x39, 0xf1, 0x36, 0x6e, 0xe2, 0x7d, - 0x54, 0x38, 0xa5, 0x0f, 0x9f, 0x27, 0xc4, 0x16, 0x2a, 0xed, 0x0a, 0x91, 0x20, 0x25, 0xf2, 0x2b, - 0x6a, 0xc9, 0x5d, 0x80, 0xd4, 0xca, 0x75, 0xf2, 0x14, 0x4a, 0x8d, 0x3c, 0xa0, 0xa1, 0x56, 0x7f, - 0xbc, 0x5e, 0x3d, 0x3f, 0x15, 0x4f, 0xd4, 0x32, 0x37, 0x22, 0xf9, 0x18, 0x91, 0xe7, 0x39, 0x48, - 0xaf, 0x61, 0xb1, 0x09, 0x8e, 0xc0, 0x4e, 0x41, 0x64, 0x45, 0x2d, 0x84, 0x64, 0xae, 0x56, 0x64, - 0x5f, 0x2b, 0x1f, 0x0d, 0xa1, 0x1e, 0xad, 0x6c, 0x33, 0x44, 0xd9, 0x36, 0x15, 0x4b, 0xa4, 0x33, - 0xa3, 0xe8, 0x5f, 0xc8, 0x0c, 0xb3, 0x71, 0xff, 0xca, 0x80, 0x0c, 0x2d, 0x75, 0x90, 0x11, 0xeb, - 0x4e, 0xbd, 0xdd, 0x5d, 0xaf, 0x0a, 0x89, 0xcd, 0x47, 0x61, 0x08, 0xab, 0x74, 0x91, 0xbd, 0x88, - 0x07, 0xab, 0xfe, 0x34, 0x2b, 0x51, 0x34, 0x16, 0xac, 0x81, 0xb8, 0x0e, 0x79, 0xe7, 0x0d, 0xc1, - 0xa0, 0x1b, 0x0c, 0x63, 0x75, 0x75, 0x85, 0x2d, 0x6e, 0x73, 0x3d, 0xa1, 0xec, 0x11, 0x18, 0x76, - 0xc5, 0xda, 0xdc, 0x5d, 0xcb, 0x70, 0x56, 0x57, 0x90, 0xdb, 0x44, 0x11, 0x1b, 0x5a, 0xf0, 0x9e, - 0xe9, 0x87, 0x8d, 0x15, 0x75, 0x56, 0x26, 0xfe, 0x34, 0x02, 0xc3, 0x4a, 0x2b, 0x5a, 0x6d, 0x53, - 0xb4, 0x41, 0x9a, 0xee, 0x80, 0x95, 0x72, 0xa4, 0x36, 0x2e, 0x73, 0xf4, 0x16, 0x65, 0x9e, 0x98, - 0x47, 0x77, 0xed, 0x6a, 0xbb, 0x39, 0x0d, 0xa6, 0xdc, 0xc4, 0x84, 0xa0, 0x2f, 0x31, 0x31, 0x9d, - 0xae, 0x9e, 0xdc, 0x9d, 0x28, 0x0b, 0x0b, 0xbd, 0x8a, 0x77, 0x6f, 0xac, 0x96, 0x36, 0xf0, 0x6b, - 0x33, 0x22, 0xb9, 0xaf, 0x46, 0x20, 0xc9, 0xca, 0xd6, 0x6a, 0xf3, 0xc0, 0x36, 0x0b, 0x10, 0x99, - 0x67, 0x1e, 0x74, 0x73, 0x72, 0x47, 0x2a, 0x68, 0x75, 0x8a, 0x14, 0xfa, 0x37, 0x75, 0x64, 0xdb, - 0x9c, 0x85, 0x48, 0x91, 0x19, 0xb8, 0x3f, 0xcb, 0x44, 0xaa, 0xb9, 0x1f, 0x1b, 0x70, 0x54, 0x2e, - 0xa3, 0x79, 0x3e, 0x39, 0xad, 0xde, 0x37, 0xe5, 0x87, 0xce, 0xcf, 0x5e, 0x98, 0x9b, 0xc6, 0xff, - 0x08, 0x97, 0x3c, 0xad, 0xde, 0x42, 0x75, 0x93, 0x74, 0x3d, 0x26, 0x92, 0x8f, 0x49, 0xbd, 0x5d, - 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x8f, 0x89, 0x28, 0xbd, 0x5d, 0x47, - 0x01, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xd7, 0x63, 0x22, 0x4a, 0x6f, 0xf7, 0x63, 0x22, - 0xac, 0x3b, 0xf0, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x11, 0xb5, 0xbf, 0xfb, 0x31, 0x91, 0x3c, - 0xaa, 0xcf, 0x3a, 0x76, 0xf0, 0xa1, 0x83, 0x8a, 0xef, 0x75, 0x0f, 0xe8, 0x25, 0xe0, 0x35, 0x18, - 0xa1, 0xfb, 0x11, 0x45, 0xfc, 0x84, 0x56, 0xdd, 0x41, 0xa9, 0xf8, 0x21, 0x48, 0xd1, 0x26, 0x7a, - 0x97, 0xe3, 0x77, 0x17, 0x48, 0xfb, 0x59, 0xba, 0x4d, 0x55, 0x25, 0xea, 0xdc, 0xcf, 0x63, 0x30, - 0x4e, 0xbb, 0xf1, 0xcf, 0x08, 0x95, 0x87, 0x8c, 0xce, 0x6a, 0x47, 0x4a, 0x69, 0x0c, 0xff, 0xee, - 0x6b, 0x27, 0x69, 0xeb, 0xbc, 0x70, 0xa6, 0xb3, 0xda, 0xe1, 0x92, 0x4a, 0xe7, 0xad, 0x3f, 0x67, - 0xb5, 0x07, 0x8f, 0x54, 0x3a, 0xb1, 0xdc, 0x08, 0x3a, 0xfe, 0x08, 0x92, 0x4a, 0xb7, 0x20, 0xbc, - 0xec, 0xac, 0xf6, 0x30, 0x92, 0x4a, 0x57, 0x12, 0xfe, 0x76, 0x56, 0x3b, 0x7a, 0x52, 0xe9, 0x16, - 0x85, 0xe7, 0x9d, 0xd5, 0x0e, 0xa1, 0x54, 0xba, 0xab, 0xc2, 0x07, 0xcf, 0x6a, 0x8f, 0x2a, 0xa9, - 0x74, 0x8f, 0x09, 0x6f, 0x3c, 0xab, 0x3d, 0xb4, 0xa4, 0xd2, 0x2d, 0x09, 0xbf, 0x9c, 0xd4, 0x1f, - 0x5f, 0x52, 0x09, 0xaf, 0x79, 0x1e, 0x3a, 0xa9, 0x3f, 0xc8, 0xa4, 0x52, 0xbe, 0xd3, 0xf3, 0xd5, - 0x49, 0xfd, 0x91, 0x26, 0x95, 0x72, 0xd9, 0xf3, 0xda, 0x49, 0xfd, 0xa8, 0x4c, 0xa5, 0x5c, 0xf1, - 0xfc, 0x77, 0x52, 0x3f, 0x34, 0x53, 0x29, 0x57, 0x3d, 0x4f, 0x9e, 0xd4, 0x8f, 0xcf, 0x54, 0xca, - 0x35, 0x6f, 0x0f, 0xfd, 0xeb, 0x9a, 0xfb, 0x49, 0x0f, 0x41, 0xe5, 0x34, 0xf7, 0x03, 0x1f, 0xd7, - 0xcb, 0x69, 0xae, 0x07, 0x3e, 0x6e, 0x97, 0xd3, 0xdc, 0x0e, 0x7c, 0x5c, 0x2e, 0xa7, 0xb9, 0x1c, - 0xf8, 0xb8, 0x5b, 0x4e, 0x73, 0x37, 0xf0, 0x71, 0xb5, 0x9c, 0xe6, 0x6a, 0xe0, 0xe3, 0x66, 0x39, - 0xcd, 0xcd, 0xc0, 0xc7, 0xc5, 0x72, 0x9a, 0x8b, 0x81, 0x8f, 0x7b, 0xe5, 0x34, 0xf7, 0x02, 0x1f, - 0xd7, 0x3a, 0xa3, 0xbb, 0x16, 0xf8, 0xb9, 0xd5, 0x19, 0xdd, 0xad, 0xc0, 0xcf, 0xa5, 0xee, 0xd2, - 0x5d, 0x6a, 0x08, 0x51, 0xc5, 0x71, 0x93, 0xe4, 0x4d, 0x67, 0x74, 0x6f, 0x02, 0x3f, 0x4f, 0x3a, - 0xa3, 0x7b, 0x12, 0xf8, 0x79, 0xd1, 0x19, 0xdd, 0x8b, 0xc0, 0xcf, 0x83, 0x5e, 0xd1, 0x3d, 0xc8, - 0x7b, 0xc4, 0x27, 0xa7, 0x9d, 0x28, 0x86, 0x79, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, - 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, 0x07, 0x19, 0x7d, 0x78, 0x90, 0xd1, 0x87, - 0x07, 0x19, 0xfd, 0x78, 0x90, 0xd1, 0x97, 0x07, 0x19, 0x41, 0x1e, 0x74, 0x46, 0x7f, 0xe0, 0x01, - 0xfc, 0x12, 0xd2, 0x19, 0xfd, 0xe4, 0x33, 0xdc, 0x85, 0x8c, 0xbe, 0x5c, 0xc8, 0x08, 0x72, 0xa1, - 0xaf, 0xa3, 0x42, 0x4a, 0x71, 0x21, 0x76, 0x3c, 0xf4, 0x46, 0x65, 0xa0, 0x4b, 0x7d, 0x3c, 0x5f, - 0xe1, 0xe7, 0x53, 0x97, 0xfa, 0x38, 0xa3, 0xee, 0xe5, 0x67, 0xdd, 0x59, 0xa8, 0xd4, 0x47, 0x16, - 0x5a, 0x14, 0x3e, 0x74, 0xa9, 0x8f, 0xe7, 0x2e, 0xba, 0x7d, 0xef, 0x4a, 0xaf, 0x24, 0xf0, 0x58, - 0x5f, 0x49, 0x60, 0xa9, 0xaf, 0x24, 0x70, 0xcd, 0xb3, 0xe0, 0x07, 0xa2, 0x30, 0xe6, 0x59, 0x90, - 0x7e, 0x23, 0xaf, 0x50, 0xc9, 0x49, 0x27, 0x54, 0x26, 0x3f, 0xb5, 0x91, 0xcc, 0x88, 0xcf, 0x6f, - 0xd6, 0xd5, 0xb3, 0xaa, 0xfc, 0x61, 0xcf, 0x6f, 0x24, 0x8b, 0xb3, 0xbd, 0xd0, 0x33, 0x60, 0x2c, - 0xd5, 0x5c, 0x92, 0x2d, 0xfc, 0x86, 0x2d, 0x5a, 0x46, 0xbd, 0xe6, 0x9a, 0x16, 0x0c, 0x90, 0x71, - 0x5d, 0x62, 0xde, 0x5b, 0x19, 0x18, 0x99, 0x9e, 0x0c, 0xec, 0xe6, 0x5e, 0x89, 0xc0, 0x29, 0xc5, - 0x95, 0xdf, 0x98, 0x13, 0x83, 0x07, 0xfb, 0x3a, 0x31, 0x50, 0x02, 0xc4, 0x3b, 0x3d, 0xb8, 0xa7, - 0xfb, 0xa0, 0x5a, 0x8e, 0x12, 0xfd, 0x24, 0xe1, 0xbf, 0x41, 0xda, 0x9b, 0x01, 0xb9, 0x65, 0xbb, - 0x18, 0xbe, 0x99, 0xe9, 0x17, 0x9a, 0x17, 0xb5, 0x4d, 0xb4, 0x9e, 0x30, 0x11, 0xad, 0xb9, 0x3c, - 0xba, 0xe3, 0x54, 0x7f, 0x0e, 0x13, 0xb6, 0x17, 0x91, 0xc0, 0xa5, 0xf9, 0x8d, 0x97, 0x50, 0x79, - 0x7e, 0x1f, 0xa4, 0xe4, 0x5f, 0xbc, 0x68, 0xc0, 0x21, 0x0e, 0xcc, 0xc7, 0x5e, 0xc5, 0xd4, 0xbf, - 0x11, 0x81, 0x63, 0x32, 0xf9, 0x13, 0xc8, 0xf6, 0x4b, 0x0e, 0xae, 0xe9, 0x1f, 0x86, 0x84, 0xcd, - 0x0c, 0xc7, 0x5e, 0xbb, 0xc1, 0x6e, 0x23, 0x7d, 0xc9, 0xa7, 0xc9, 0xbf, 0x96, 0x80, 0x68, 0x5b, - 0x1c, 0x7c, 0xd8, 0xd9, 0x89, 0xbb, 0x21, 0x4e, 0xf9, 0xab, 0x72, 0x0d, 0x6b, 0x72, 0x7d, 0xd6, - 0x47, 0x2e, 0xe2, 0x47, 0xe6, 0x35, 0x45, 0x2e, 0xe9, 0x6e, 0xd5, 0x97, 0x7c, 0x9a, 0x3b, 0x5f, - 0x21, 0x81, 0xeb, 0x3f, 0xe2, 0x51, 0xe1, 0x42, 0x4e, 0x42, 0xa2, 0xa4, 0xd3, 0xf8, 0xcb, 0xb9, - 0x00, 0xb1, 0x55, 0xfc, 0x36, 0xb1, 0x31, 0xf6, 0xf6, 0x4c, 0xa6, 0x64, 0xf6, 0x86, 0xd6, 0xb3, - 0x90, 0x28, 0xee, 0xd5, 0x1b, 0xb5, 0x96, 0xed, 0xb0, 0x23, 0x7b, 0xb6, 0x83, 0x8e, 0x31, 0x56, - 0xa2, 0xca, 0xfa, 0xa6, 0x72, 0x90, 0x94, 0x5c, 0xc2, 0x8c, 0xa3, 0xdb, 0xff, 0xcc, 0x11, 0xfc, - 0xa7, 0x90, 0x89, 0xe0, 0x3f, 0xc5, 0x4c, 0x74, 0xea, 0x6e, 0x18, 0xd1, 0x36, 0xc8, 0x70, 0xcf, - 0x42, 0x06, 0xf0, 0x9f, 0x52, 0x26, 0x39, 0x11, 0xfb, 0xe0, 0x6f, 0x9d, 0x38, 0x32, 0xf5, 0x20, - 0x98, 0xdd, 0x5b, 0x69, 0xe6, 0x00, 0x44, 0xe7, 0x31, 0xcb, 0xdb, 0x20, 0x5a, 0x40, 0x3c, 0x27, - 0x46, 0xfe, 0xf7, 0x27, 0x4f, 0x25, 0x0b, 0xe4, 0x07, 0xa3, 0x88, 0xba, 0x50, 0x60, 0xe0, 0x47, - 0xe0, 0x98, 0xef, 0x56, 0x1c, 0xc6, 0x17, 0x8b, 0x14, 0xbf, 0xb0, 0xd0, 0x85, 0x5f, 0x58, 0x20, - 0xf8, 0x48, 0x9e, 0x1f, 0x69, 0xce, 0x9b, 0x3e, 0x1b, 0x5f, 0xd9, 0x9a, 0x74, 0x84, 0x3a, 0x9f, - 0x7f, 0x84, 0xd1, 0x16, 0x7c, 0x69, 0xed, 0x90, 0x23, 0xd1, 0x42, 0xbe, 0xc8, 0xf0, 0x45, 0x5f, - 0xfc, 0x8e, 0x76, 0x6e, 0xa7, 0xe6, 0x20, 0xc6, 0xa4, 0x28, 0x04, 0x5e, 0xf0, 0x65, 0xb2, 0x27, - 0x3d, 0x4d, 0xbd, 0x20, 0x04, 0x2e, 0xf9, 0xd2, 0xd6, 0x43, 0x9e, 0x2a, 0x2a, 0xe5, 0xcf, 0xb1, - 0x65, 0x64, 0xfe, 0xbc, 0x79, 0x8c, 0x7b, 0x81, 0x12, 0xe3, 0x4c, 0x41, 0x74, 0x45, 0x99, 0x3f, - 0x8f, 0x66, 0x48, 0x01, 0x85, 0x40, 0x40, 0xb0, 0x96, 0x28, 0x93, 0xc2, 0xf9, 0xfc, 0x63, 0x8c, - 0x49, 0x31, 0x90, 0x49, 0x88, 0xaa, 0x28, 0xa7, 0xe2, 0xf9, 0xc2, 0xe6, 0x8d, 0xef, 0x9c, 0x38, - 0xf2, 0x2a, 0xfa, 0xfc, 0x1d, 0xfa, 0x7c, 0xfb, 0x3b, 0x27, 0x22, 0x3f, 0x40, 0x9f, 0x1f, 0xa1, - 0xcf, 0x4f, 0xd1, 0xe7, 0xbd, 0xdf, 0x3d, 0x11, 0x79, 0x19, 0x7d, 0xbe, 0x88, 0x3e, 0x7f, 0x8c, - 0x3e, 0xaf, 0xa0, 0xcf, 0x0d, 0xf4, 0x79, 0x15, 0x7d, 0xbe, 0x8d, 0x3e, 0x3f, 0xf8, 0xee, 0x89, - 0x23, 0x3f, 0x42, 0x7f, 0x7f, 0x8a, 0xfe, 0xbe, 0xf7, 0x7b, 0x27, 0x8e, 0xbc, 0x88, 0x3e, 0x2f, - 0x7f, 0xef, 0x44, 0x04, 0xfe, 0x62, 0x0e, 0x72, 0xec, 0xa7, 0x4a, 0xd2, 0x4f, 0x12, 0xf1, 0x2f, - 0x96, 0xc8, 0xb2, 0x73, 0x81, 0xbf, 0x61, 0x46, 0x34, 0x1c, 0xf2, 0x87, 0x4b, 0x13, 0x37, 0xfb, - 0x33, 0xa9, 0xdc, 0x9f, 0xc5, 0x61, 0x90, 0x6f, 0x37, 0xfa, 0xbd, 0xbc, 0xf4, 0x22, 0x24, 0x50, - 0xfc, 0x56, 0x5a, 0xf5, 0xf6, 0x75, 0xb6, 0xcf, 0x76, 0xfb, 0xb4, 0x27, 0x36, 0xdf, 0x99, 0x7b, - 0xac, 0xb3, 0xdf, 0xec, 0xa0, 0xc4, 0xc8, 0x49, 0xcd, 0x53, 0x90, 0xda, 0xb3, 0xf1, 0x39, 0x5b, - 0xb9, 0xee, 0x94, 0xab, 0xfb, 0xa4, 0x1e, 0x1b, 0xb6, 0x80, 0xb6, 0x2d, 0x39, 0xc5, 0x7d, 0x3c, - 0x18, 0xde, 0x8e, 0x26, 0xf7, 0x81, 0x29, 0xba, 0x35, 0x8d, 0x5f, 0x9d, 0xd4, 0xb2, 0x5d, 0xfc, - 0xc6, 0xe5, 0x6a, 0xb3, 0xe3, 0xb4, 0x49, 0xc5, 0x64, 0x58, 0x49, 0xda, 0x56, 0xc4, 0x4d, 0xf8, - 0xad, 0xcc, 0x78, 0xb3, 0xa7, 0xec, 0x56, 0x9b, 0x6d, 0x77, 0xbf, 0xe2, 0x90, 0x8a, 0x29, 0x61, - 0xa5, 0x70, 0xe3, 0x06, 0x6b, 0x23, 0xef, 0xb8, 0xae, 0x36, 0x5b, 0x36, 0xb9, 0x61, 0x8b, 0x5a, - 0xf4, 0x02, 0xbf, 0xe3, 0xfa, 0x59, 0xfb, 0x3a, 0xb9, 0x25, 0x88, 0x59, 0xf8, 0x2b, 0x3e, 0x28, - 0xa2, 0xdb, 0x98, 0xa4, 0x7e, 0x23, 0xa7, 0xa3, 0x62, 0x6a, 0x74, 0x17, 0xd0, 0x62, 0x04, 0xf8, - 0x6d, 0xb1, 0x28, 0x0d, 0xb4, 0x2a, 0x75, 0x87, 0x94, 0xe7, 0xf8, 0x6d, 0xb1, 0xdd, 0x6a, 0xd8, - 0xa4, 0x14, 0xe4, 0x05, 0x83, 0x16, 0xa7, 0x47, 0x2a, 0x4c, 0x11, 0xba, 0xd9, 0x32, 0x7d, 0x45, - 0x7c, 0x32, 0xd0, 0x9f, 0x93, 0x94, 0x8e, 0x6f, 0x46, 0x73, 0x18, 0x7d, 0x2d, 0xd5, 0x30, 0x19, - 0xf6, 0x2e, 0x9f, 0x61, 0xc9, 0xaf, 0xe5, 0x66, 0x49, 0x89, 0x43, 0x87, 0x66, 0x7c, 0xe8, 0x8b, - 0xab, 0x56, 0x20, 0x25, 0xcb, 0xc5, 0xd5, 0x40, 0x17, 0x58, 0xa2, 0x86, 0x7b, 0xbc, 0xf7, 0x0e, - 0x07, 0x68, 0x81, 0xf6, 0xe7, 0xa3, 0x57, 0x22, 0x13, 0xeb, 0x90, 0xd1, 0xc7, 0xf3, 0x61, 0x79, - 0x56, 0x65, 0x99, 0x91, 0x27, 0x4b, 0xb6, 0x62, 0x3d, 0x8e, 0xb9, 0x47, 0x61, 0x80, 0xfa, 0x8f, - 0x99, 0x84, 0xc1, 0xad, 0xd5, 0x77, 0xae, 0xae, 0x3d, 0xb1, 0x4a, 0x5f, 0xdd, 0xb7, 0xbe, 0xb5, - 0xba, 0x41, 0x5f, 0xc0, 0xb7, 0xb1, 0x3c, 0xbf, 0xbe, 0xb1, 0xb9, 0x54, 0x7c, 0x67, 0x26, 0x8a, - 0x37, 0x96, 0x0b, 0x4b, 0xcb, 0xcb, 0xe5, 0xc2, 0xfc, 0xd2, 0x72, 0xe9, 0xa9, 0x8c, 0x91, 0x3b, - 0x01, 0x03, 0x54, 0x4e, 0x6c, 0xf8, 0xed, 0x8e, 0xe3, 0x5c, 0xe7, 0x0b, 0x14, 0xb9, 0xc8, 0x7d, - 0xd9, 0x84, 0xc1, 0xf9, 0x46, 0x03, 0xa5, 0x01, 0xd7, 0x7c, 0x02, 0x46, 0xe9, 0xaf, 0xfe, 0x37, - 0x9b, 0x0b, 0xe4, 0x4d, 0x61, 0x38, 0x39, 0x44, 0xd8, 0xfb, 0x96, 0xbd, 0x79, 0x33, 0xf2, 0xe9, - 0x2e, 0x5a, 0xaa, 0xe0, 0x51, 0x57, 0x6f, 0x37, 0x37, 0x21, 0xc3, 0x89, 0x17, 0x1b, 0xcd, 0x4a, - 0x1b, 0xf3, 0x8d, 0xb2, 0x17, 0x79, 0x05, 0xf3, 0xe5, 0xa4, 0x94, 0x6d, 0xc6, 0xd5, 0x9a, 0xcd, - 0x87, 0x20, 0xb1, 0xe4, 0xb4, 0x2f, 0xcc, 0x62, 0x6e, 0xfc, 0x95, 0xfe, 0xdd, 0xdc, 0x38, 0x09, - 0xe5, 0x92, 0xa8, 0xb3, 0x4b, 0x86, 0xbe, 0x34, 0x87, 0xd1, 0xb1, 0x5e, 0x68, 0x42, 0xe2, 0xa1, - 0xc9, 0x25, 0x3e, 0x4e, 0xd9, 0xe2, 0xac, 0xd8, 0x5b, 0xfc, 0x4f, 0xfb, 0xc0, 0x05, 0x0d, 0xc5, - 0x0f, 0x75, 0xc4, 0xf0, 0x8c, 0x01, 0x1d, 0x7f, 0xa0, 0x27, 0x03, 0x49, 0x00, 0xc2, 0x40, 0x48, - 0xb0, 0x21, 0x24, 0x18, 0x0c, 0x64, 0xb0, 0xa1, 0x49, 0xe0, 0xca, 0x12, 0x6c, 0x08, 0x09, 0x12, - 0x3d, 0x19, 0xc8, 0x12, 0xb8, 0x42, 0x82, 0x02, 0xc0, 0x62, 0xfd, 0x05, 0xbb, 0x46, 0x45, 0xa0, - 0x2f, 0xfc, 0xcf, 0xf9, 0x70, 0xf0, 0x88, 0x28, 0x0b, 0xd8, 0x11, 0x0d, 0x66, 0x09, 0x92, 0x1b, - 0xde, 0x25, 0x4b, 0x1f, 0x77, 0xf9, 0x89, 0xb1, 0xa3, 0x71, 0x49, 0xba, 0x12, 0x1b, 0x2e, 0x0a, - 0x9d, 0x4c, 0xb2, 0xb7, 0x28, 0xd2, 0x6c, 0xa8, 0x28, 0x74, 0x3a, 0x42, 0x14, 0xca, 0x24, 0x15, - 0x22, 0x8a, 0xc4, 0x85, 0x89, 0x42, 0xd9, 0xa0, 0x64, 0x58, 0x68, 0x36, 0x31, 0x25, 0xcb, 0x4a, - 0x27, 0x7d, 0x58, 0x30, 0x0a, 0x96, 0x0c, 0xb7, 0xe9, 0x15, 0xb1, 0x08, 0x71, 0x72, 0x0c, 0x4e, - 0x07, 0x5b, 0x84, 0xd3, 0x70, 0x8b, 0xf0, 0x6b, 0x39, 0xce, 0xc8, 0x23, 0x93, 0x98, 0xcf, 0x48, - 0x68, 0x9c, 0x71, 0x52, 0x2d, 0xce, 0x78, 0xb3, 0xf9, 0x2e, 0x18, 0xe1, 0xa4, 0x38, 0x3d, 0x61, - 0xa6, 0x19, 0xf6, 0xbf, 0x44, 0x09, 0x66, 0xca, 0x28, 0x29, 0xcf, 0x11, 0x57, 0x6d, 0x35, 0x57, - 0x21, 0xcd, 0x09, 0x57, 0x5c, 0x32, 0xdd, 0x51, 0xf6, 0x9e, 0xf2, 0x60, 0x8e, 0x94, 0x90, 0x32, - 0x4c, 0xbb, 0x4a, 0xe3, 0xc4, 0x02, 0x8c, 0xfb, 0x67, 0x23, 0x39, 0xfd, 0x0e, 0xd1, 0xf4, 0x3b, - 0x26, 0xa7, 0xdf, 0x88, 0x9c, 0xbe, 0x8b, 0x70, 0xcc, 0x37, 0xf7, 0x84, 0x31, 0x89, 0xca, 0x4c, - 0x1e, 0x84, 0x61, 0x25, 0xe5, 0xc8, 0xe0, 0xb8, 0x0f, 0x38, 0xde, 0x0d, 0xf6, 0x5c, 0xcb, 0x67, - 0xf5, 0x50, 0xc0, 0x86, 0x0c, 0x7e, 0x08, 0xd2, 0x6a, 0xbe, 0x91, 0xd1, 0xc3, 0x3e, 0xe8, 0x61, - 0x1f, 0xb4, 0xff, 0xd8, 0x31, 0x1f, 0x74, 0x4c, 0x43, 0x6f, 0x04, 0x8e, 0x3d, 0xea, 0x83, 0x1e, - 0xf5, 0x41, 0xfb, 0x8f, 0x6d, 0xfa, 0xa0, 0x4d, 0x19, 0xfd, 0x30, 0x8c, 0x68, 0x29, 0x46, 0x86, - 0x0f, 0xfa, 0xc0, 0x07, 0x65, 0xf8, 0x23, 0x28, 0x68, 0x76, 0x82, 0xf1, 0x23, 0x3e, 0xf8, 0x11, - 0xbf, 0xe1, 0xfd, 0xa5, 0x1f, 0xf0, 0x81, 0x0f, 0xf8, 0x0e, 0xef, 0x8f, 0xcf, 0xf8, 0xe0, 0x33, - 0x32, 0x3e, 0x0f, 0x29, 0x39, 0x9b, 0xc8, 0xd8, 0x84, 0x0f, 0x36, 0xa1, 0xeb, 0x5d, 0x49, 0x26, - 0x61, 0x9e, 0x3e, 0x14, 0x10, 0x2e, 0x4a, 0x0a, 0x09, 0x63, 0x92, 0x92, 0x99, 0x3c, 0x0e, 0x63, - 0x7e, 0x29, 0xc3, 0x87, 0xc7, 0xa4, 0xcc, 0x23, 0x8d, 0x6b, 0x44, 0xaf, 0xd8, 0xab, 0x1c, 0x68, - 0x85, 0xd3, 0xc4, 0xd3, 0x70, 0xd4, 0x27, 0x71, 0xf8, 0xb0, 0x9d, 0x56, 0xab, 0xb1, 0xac, 0xc4, - 0x96, 0x24, 0x01, 0xc4, 0x62, 0xbd, 0x89, 0x9c, 0x53, 0xae, 0xca, 0xbe, 0x7a, 0x14, 0xd2, 0x2c, - 0x3d, 0xad, 0xb5, 0x6a, 0x76, 0x0b, 0x55, 0x57, 0xff, 0x25, 0xb8, 0x76, 0x9a, 0xe9, 0x4e, 0x6a, - 0x0c, 0x75, 0x88, 0x12, 0xea, 0xe9, 0xc0, 0x12, 0xea, 0x5c, 0x38, 0xfb, 0xb0, 0x4a, 0xaa, 0xd8, - 0x55, 0x49, 0xdd, 0x13, 0xcc, 0x34, 0xa8, 0xa0, 0x2a, 0x76, 0x15, 0x54, 0xbd, 0x99, 0xf8, 0xd6, - 0x55, 0x8b, 0xdd, 0x75, 0xd5, 0x64, 0x30, 0x97, 0xe0, 0xf2, 0x6a, 0xb1, 0xbb, 0xbc, 0x0a, 0xe1, - 0xe3, 0x5f, 0x65, 0x2d, 0x76, 0x57, 0x59, 0x3d, 0xf8, 0x04, 0x17, 0x5b, 0x8b, 0xdd, 0xc5, 0x56, - 0x08, 0x1f, 0xff, 0x9a, 0x6b, 0xc9, 0xa7, 0xe6, 0xba, 0x37, 0x98, 0x51, 0xaf, 0xd2, 0x6b, 0xd9, - 0xaf, 0xf4, 0x9a, 0xea, 0x21, 0x54, 0xcf, 0x0a, 0x6c, 0xc9, 0xa7, 0x02, 0x0b, 0x13, 0x2c, 0xa0, - 0x10, 0x5b, 0xf6, 0x2b, 0xc4, 0x42, 0x05, 0x0b, 0xaa, 0xc7, 0xfe, 0x93, 0x5e, 0x8f, 0x9d, 0x0d, - 0xe6, 0xe4, 0x5f, 0x96, 0x2d, 0x76, 0x97, 0x65, 0x93, 0x61, 0x31, 0xe7, 0x57, 0x9d, 0x3d, 0x1d, - 0x58, 0x9d, 0xf5, 0x11, 0xc2, 0x61, 0x45, 0xda, 0x93, 0x41, 0x45, 0xda, 0x74, 0x38, 0xef, 0xde, - 0xb5, 0xda, 0x56, 0x40, 0xad, 0x76, 0x7f, 0x38, 0xe3, 0xb7, 0x4b, 0xb6, 0xb7, 0x4b, 0xb6, 0xb7, - 0x4b, 0xb6, 0xb7, 0x4b, 0xb6, 0xb7, 0xbe, 0x64, 0xcb, 0xc7, 0x3e, 0xf2, 0xd2, 0xc9, 0x48, 0xee, - 0x6f, 0x0d, 0xf1, 0xff, 0x6e, 0xc1, 0x07, 0x44, 0x38, 0xbd, 0xad, 0x40, 0x8a, 0xbc, 0xaf, 0x7e, - 0xbf, 0x72, 0x70, 0x80, 0xff, 0x8f, 0x4e, 0x91, 0xae, 0xe5, 0x46, 0x05, 0x90, 0x37, 0xfe, 0xaf, - 0x50, 0x62, 0xb6, 0xdc, 0x38, 0x5e, 0x8b, 0x79, 0x0d, 0x92, 0xfb, 0xee, 0xae, 0xe0, 0x16, 0xed, - 0x5a, 0x08, 0x35, 0x6e, 0x74, 0xa6, 0x1e, 0x33, 0xd8, 0x17, 0x0d, 0x58, 0xb4, 0x6d, 0x64, 0x25, - 0xc1, 0xcc, 0x08, 0x13, 0x0d, 0xdb, 0x54, 0x15, 0x6d, 0xdb, 0x6b, 0xc1, 0x6e, 0xab, 0xcb, 0x1e, - 0x96, 0xe9, 0x14, 0xe7, 0x79, 0x02, 0x46, 0x34, 0x69, 0x7d, 0x62, 0xfe, 0x26, 0x6c, 0x83, 0x05, - 0xd3, 0x25, 0x0f, 0x8b, 0x09, 0xd9, 0x21, 0x73, 0x77, 0xc2, 0xb0, 0xc2, 0xdb, 0x4c, 0x41, 0x64, - 0x87, 0xfd, 0x5e, 0x2f, 0xb2, 0x83, 0x7f, 0x22, 0x9d, 0x64, 0x87, 0xd5, 0xeb, 0x95, 0x7a, 0xcb, - 0x7c, 0x0c, 0xc8, 0x2f, 0x62, 0xd8, 0x81, 0xfc, 0xcd, 0xfd, 0x3e, 0x93, 0xfe, 0xa6, 0x66, 0x11, - 0xe8, 0x0f, 0x66, 0x6e, 0xfe, 0x07, 0xa6, 0xf4, 0xf7, 0x36, 0x37, 0x22, 0x30, 0xca, 0x9e, 0xa5, - 0x74, 0xd9, 0x13, 0xb6, 0x68, 0x85, 0xfc, 0x72, 0x04, 0x86, 0xc4, 0x95, 0xb9, 0x0d, 0x69, 0x71, - 0x41, 0x9f, 0xe2, 0xa6, 0x9e, 0x9a, 0x97, 0x34, 0xdc, 0xc5, 0x63, 0xda, 0xe7, 0x1b, 0x3d, 0xc2, - 0xa2, 0x6b, 0xb2, 0xa3, 0x34, 0x4e, 0xcc, 0xc3, 0x51, 0x1f, 0xb2, 0xc3, 0x2c, 0xc8, 0x53, 0xa7, - 0x61, 0x90, 0x85, 0x36, 0x3e, 0x32, 0x5c, 0xc1, 0x47, 0x8e, 0xf8, 0x2f, 0x3e, 0xc6, 0xc4, 0x7f, - 0x8b, 0x99, 0x68, 0x61, 0xf9, 0x26, 0x8e, 0x91, 0x8e, 0x04, 0x1d, 0x23, 0x6d, 0x0f, 0xd0, 0xb9, - 0xff, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0x83, 0x84, 0xab, 0x7a, 0x79, 0x00, 0x00, + // 7844 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, + 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, + 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, + 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, + 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x6a, 0x9d, 0xc4, + 0x49, 0xbc, 0x59, 0x57, 0xed, 0x56, 0x79, 0x1f, 0x52, 0xe7, 0xd6, 0x7d, 0x4e, 0xa3, 0x81, 0x06, + 0x47, 0x92, 0xed, 0x07, 0xbd, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, + 0xd3, 0x0d, 0x10, 0xbe, 0xb7, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, + 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, + 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, + 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, + 0x29, 0x04, 0x5a, 0x92, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x93, 0x30, 0x1d, 0x31, + 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, + 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, + 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x86, 0x30, 0xa2, 0x7f, 0x04, + 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x0a, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, 0x34, 0x3a, + 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0x55, 0x51, 0x34, 0x4d, 0x44, 0x27, 0xf0, + 0xb0, 0x20, 0x58, 0x82, 0x4c, 0x13, 0xb9, 0xae, 0x79, 0x8c, 0xaa, 0xde, 0x69, 0x0b, 0x65, 0x93, + 0xe4, 0xea, 0x2f, 0x74, 0x5d, 0x7d, 0xf8, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, + 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0x66, 0x98, 0x25, 0x85, + 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, 0xbb, 0x08, + 0xf6, 0xe8, 0x7c, 0x98, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, + 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0x7a, 0x98, 0x22, 0xc0, 0xe9, 0xd7, 0x61, + 0xd4, 0x69, 0x79, 0x96, 0x63, 0xbb, 0xd9, 0xd4, 0x05, 0x65, 0x21, 0xbd, 0x72, 0x3e, 0x32, 0x10, + 0x76, 0xa8, 0x8c, 0xc1, 0x85, 0xf5, 0x4d, 0xd0, 0x5c, 0xa7, 0xd3, 0xae, 0xa1, 0x6a, 0xcd, 0xa9, + 0xa3, 0xaa, 0x65, 0x1f, 0x39, 0xd9, 0x31, 0x42, 0x30, 0xdf, 0x7d, 0x21, 0x44, 0xb0, 0xe4, 0xd4, + 0xd1, 0xa6, 0x7d, 0xe4, 0x18, 0x13, 0xae, 0x74, 0xac, 0xcf, 0xc0, 0x88, 0x7b, 0x6a, 0x7b, 0xe6, + 0x1b, 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x94, 0xfb, 0xd3, 0x61, 0x98, 0x1c, 0x24, 0xc4, 0x6e, 0xc3, + 0xf0, 0x11, 0xbe, 0xca, 0x6c, 0xe2, 0x2c, 0x36, 0xa0, 0x18, 0xd9, 0x88, 0x23, 0x0f, 0x69, 0xc4, + 0x02, 0xa4, 0x6d, 0xe4, 0x7a, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43, + 0x2a, 0xf9, 0x50, 0x21, 0xf5, 0x32, 0x4c, 0xfa, 0x2a, 0x55, 0xdb, 0xa6, 0x7d, 0xcc, 0x63, 0xf3, + 0x4a, 0x9c, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0xd2, 0xb1, 0xbe, 0x0e, 0xe0, + 0xd8, 0xc8, 0x39, 0xaa, 0xd6, 0x51, 0xad, 0x91, 0x4d, 0xf5, 0xb0, 0xd2, 0x0e, 0x16, 0xe9, 0xb2, + 0x92, 0x43, 0x47, 0x6b, 0x0d, 0xfd, 0x56, 0x10, 0x6a, 0xa3, 0x3d, 0x22, 0x65, 0x9b, 0x26, 0x59, + 0x57, 0xb4, 0x1d, 0xc0, 0x44, 0x1b, 0xe1, 0xb8, 0x47, 0x75, 0x76, 0x65, 0x63, 0x44, 0x89, 0xa5, + 0xd8, 0x2b, 0x33, 0x18, 0x8c, 0x5e, 0xd8, 0x78, 0x5b, 0x3c, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, + 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x36, 0x8f, + 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, + 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe9, 0xf4, 0x83, 0x02, 0x73, + 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, + 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, + 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, + 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, + 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, + 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, + 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, + 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, + 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x11, 0x2e, 0x7c, 0x4f, + 0x44, 0x5f, 0x5e, 0x38, 0x16, 0x73, 0xdf, 0x4c, 0x40, 0x92, 0xe4, 0xdb, 0x24, 0xa4, 0xf7, 0xef, + 0xed, 0x96, 0xab, 0xeb, 0x3b, 0x07, 0xc5, 0xad, 0xb2, 0xa6, 0xe8, 0x13, 0x00, 0x64, 0x60, 0x63, + 0x6b, 0xa7, 0xb0, 0xaf, 0x25, 0xfc, 0xe3, 0xcd, 0xca, 0xfe, 0xf5, 0x55, 0x4d, 0xf5, 0x01, 0x07, + 0x74, 0x20, 0x29, 0x0a, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, + 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1e, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, + 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, + 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, + 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x24, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, + 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0x64, 0x68, 0xe8, + 0xfa, 0xaa, 0xa6, 0x05, 0x8a, 0x50, 0x96, 0x29, 0x69, 0xe0, 0xfa, 0xaa, 0xa6, 0xe7, 0x4a, 0x30, + 0x4c, 0xa2, 0x4b, 0xd7, 0x61, 0x62, 0xab, 0x50, 0x2c, 0x6f, 0x55, 0x77, 0x76, 0xf7, 0x37, 0x77, + 0x2a, 0x85, 0x2d, 0x4d, 0x09, 0xc6, 0x8c, 0xf2, 0x27, 0x0e, 0x36, 0x8d, 0xf2, 0xba, 0x96, 0x10, + 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, + 0x86, 0xe0, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, + 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, + 0x76, 0xad, 0x40, 0x04, 0x27, 0xae, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, 0xf9, 0x19, + 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x2a, 0x14, 0xb7, 0xc3, 0x0a, 0x5c, 0xec, 0x7d, + 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, + 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x1d, 0xb6, 0x15, 0x43, 0x89, 0x6b, + 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, + 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, + 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, + 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, + 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, + 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x05, 0xc4, 0x88, 0x84, 0xa0, + 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x16, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, + 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, + 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, + 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, + 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, + 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, + 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, + 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, + 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, + 0x8e, 0x77, 0x74, 0x33, 0xfb, 0xb8, 0x78, 0x7e, 0xa2, 0xe1, 0x1e, 0x91, 0x29, 0x61, 0x91, 0x03, + 0xef, 0xe8, 0xa6, 0xbe, 0x07, 0x19, 0xec, 0x8c, 0xa6, 0xf5, 0x69, 0x54, 0x3d, 0x72, 0xda, 0x64, + 0x65, 0x99, 0x88, 0xc8, 0x6c, 0xc1, 0x82, 0x4b, 0x3b, 0x0c, 0xb0, 0xed, 0xd4, 0x51, 0x7e, 0x78, + 0x6f, 0xb7, 0x5c, 0x5e, 0x37, 0xd2, 0x9c, 0x65, 0xc3, 0x69, 0xe3, 0x80, 0x3a, 0x76, 0x7c, 0x03, + 0xa7, 0x69, 0x40, 0x1d, 0x3b, 0xdc, 0xbc, 0x6b, 0x30, 0x5d, 0xab, 0xd1, 0x6b, 0xb6, 0x6a, 0x55, + 0xd6, 0xe2, 0xbb, 0x59, 0x4d, 0x32, 0x56, 0xad, 0x76, 0x87, 0x0a, 0xb0, 0x18, 0x77, 0xf5, 0x5b, + 0xf0, 0x48, 0x60, 0x2c, 0x11, 0x38, 0xd5, 0x75, 0x95, 0x61, 0xe8, 0x1a, 0x4c, 0xb7, 0x4e, 0xbb, + 0x81, 0xba, 0x74, 0xc6, 0xd6, 0x69, 0x18, 0xf6, 0x14, 0xb9, 0x6d, 0x6b, 0xa3, 0x9a, 0xe9, 0xa1, + 0x7a, 0xf6, 0x51, 0x51, 0x5a, 0x98, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, 0x36, + 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0xa2, 0xf0, 0x44, 0xad, 0x56, 0x26, 0xb3, 0x05, + 0x32, 0xa9, 0x2f, 0xc2, 0x94, 0x73, 0xf8, 0x4a, 0x8d, 0x46, 0x56, 0xb5, 0xd5, 0x46, 0x47, 0xd6, + 0x1b, 0xd9, 0x4b, 0xc4, 0x4c, 0x93, 0x78, 0x82, 0xc4, 0xd5, 0x2e, 0x19, 0xd6, 0x9f, 0x01, 0xad, + 0xe6, 0x9e, 0x98, 0xed, 0x16, 0x59, 0xda, 0xdd, 0x96, 0x59, 0x43, 0xd9, 0xa7, 0xa8, 0x28, 0x1d, + 0xaf, 0xf0, 0x61, 0x1c, 0xd9, 0xee, 0xeb, 0xd6, 0x91, 0xc7, 0x19, 0x9f, 0xa6, 0x91, 0x4d, 0xc6, + 0x18, 0xdb, 0xcb, 0x70, 0xae, 0x63, 0x5b, 0xb6, 0x87, 0xda, 0xad, 0x36, 0xc2, 0x4d, 0x3c, 0xcd, + 0xc4, 0xec, 0x1f, 0x8d, 0xf6, 0x68, 0xc3, 0x0f, 0x44, 0x69, 0x1a, 0x00, 0xc6, 0x74, 0xa7, 0x7b, + 0x30, 0x97, 0x87, 0x8c, 0x18, 0x17, 0xfa, 0x18, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, 0xc6, 0x96, 0x76, + 0xd6, 0xf1, 0xea, 0xf8, 0x0b, 0x65, 0x2d, 0x81, 0x57, 0xe9, 0xad, 0xcd, 0xfd, 0x72, 0xd5, 0x38, + 0xa8, 0xec, 0x6f, 0x6e, 0x97, 0x35, 0x75, 0x71, 0x2c, 0xf5, 0x83, 0x51, 0xed, 0xcd, 0x37, 0xdf, + 0x7c, 0x33, 0x91, 0xfb, 0x56, 0x02, 0x26, 0xe4, 0xce, 0x58, 0xff, 0x18, 0x3c, 0xca, 0x6f, 0x63, + 0x5d, 0xe4, 0x55, 0x5f, 0xb7, 0xda, 0x24, 0x54, 0x9b, 0x26, 0xed, 0x2d, 0x7d, 0x2b, 0x9f, 0x63, + 0x52, 0x7b, 0xc8, 0x7b, 0xc9, 0x6a, 0xe3, 0x40, 0x6c, 0x9a, 0x9e, 0xbe, 0x05, 0xf3, 0xb6, 0x53, + 0x75, 0x3d, 0xd3, 0xae, 0x9b, 0xed, 0x7a, 0x35, 0xd8, 0x40, 0xa8, 0x9a, 0xb5, 0x1a, 0x72, 0x5d, + 0x87, 0x2e, 0x11, 0x3e, 0xcb, 0x79, 0xdb, 0xd9, 0x63, 0xc2, 0x41, 0xed, 0x2c, 0x30, 0xd1, 0x50, + 0x44, 0xa8, 0xbd, 0x22, 0xe2, 0x71, 0x18, 0x6b, 0x9a, 0xad, 0x2a, 0xb2, 0xbd, 0xf6, 0x29, 0xe9, + 0xe7, 0x52, 0x46, 0xaa, 0x69, 0xb6, 0xca, 0xf8, 0xf8, 0x83, 0xf3, 0x81, 0x68, 0xc7, 0xff, 0xae, + 0x42, 0x46, 0xec, 0xe9, 0x70, 0x8b, 0x5c, 0x23, 0xf5, 0x5b, 0x21, 0x19, 0xfe, 0x64, 0xdf, 0x0e, + 0x70, 0xa9, 0x84, 0x0b, 0x7b, 0x7e, 0x84, 0x76, 0x5a, 0x06, 0x45, 0xe2, 0x45, 0x15, 0xe7, 0x34, + 0xa2, 0xfd, 0x7b, 0xca, 0x60, 0x47, 0xfa, 0x1d, 0x18, 0x79, 0xc5, 0x25, 0xdc, 0x23, 0x84, 0xfb, + 0x52, 0x7f, 0xee, 0xbb, 0x7b, 0x84, 0x7c, 0xec, 0xee, 0x5e, 0xb5, 0xb2, 0x63, 0x6c, 0x17, 0xb6, + 0x0c, 0x06, 0xd7, 0x1f, 0x83, 0x64, 0xc3, 0xfc, 0xf4, 0xa9, 0xbc, 0x04, 0x90, 0xa1, 0x41, 0x0d, + 0xff, 0x18, 0x24, 0x5f, 0x47, 0xe6, 0xab, 0x72, 0xe1, 0x25, 0x43, 0x1f, 0x60, 0xe8, 0x5f, 0x81, + 0x61, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0x1b, 0xd2, 0x53, 0x90, 0x2c, 0xed, 0x18, 0x38, 0xfc, + 0x35, 0xc8, 0xd0, 0xd1, 0xea, 0xee, 0x66, 0xb9, 0x54, 0xd6, 0x12, 0xb9, 0x35, 0x18, 0xa1, 0x46, + 0xc0, 0xa9, 0xe1, 0x9b, 0x41, 0x1b, 0x62, 0x87, 0x8c, 0x43, 0xe1, 0xb3, 0x07, 0xdb, 0xc5, 0xb2, + 0xa1, 0x25, 0x44, 0xf7, 0xba, 0x90, 0x11, 0xdb, 0xb9, 0x9f, 0x4e, 0x4c, 0xfd, 0xbe, 0x02, 0x69, + 0xa1, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0x38, 0xaf, 0x57, 0xcd, 0x86, 0x65, 0xba, 0x2c, 0x28, + 0x80, 0x0c, 0x15, 0xf0, 0xc8, 0xa0, 0x4e, 0xfb, 0xa9, 0x28, 0xff, 0x25, 0x05, 0xb4, 0x70, 0x6b, + 0x17, 0x52, 0x50, 0xf9, 0x99, 0x2a, 0xf8, 0x05, 0x05, 0x26, 0xe4, 0x7e, 0x2e, 0xa4, 0xde, 0xc5, + 0x9f, 0xa9, 0x7a, 0xdf, 0x4d, 0xc0, 0xb8, 0xd4, 0xc5, 0x0d, 0xaa, 0xdd, 0x2f, 0xc2, 0x94, 0x55, + 0x47, 0xcd, 0x96, 0xe3, 0x21, 0xbb, 0x76, 0x5a, 0x6d, 0xa0, 0xd7, 0x50, 0x23, 0x9b, 0x23, 0x85, + 0xe2, 0x4a, 0xff, 0x3e, 0x71, 0x69, 0x33, 0xc0, 0x6d, 0x61, 0x58, 0x7e, 0x7a, 0x73, 0xbd, 0xbc, + 0xbd, 0xbb, 0xb3, 0x5f, 0xae, 0x94, 0xee, 0x55, 0x0f, 0x2a, 0x1f, 0xaf, 0xec, 0xbc, 0x54, 0x31, + 0x34, 0x2b, 0x24, 0xf6, 0x01, 0xa6, 0xfa, 0x2e, 0x68, 0x61, 0xa5, 0xf4, 0x47, 0x21, 0x4a, 0x2d, + 0x6d, 0x48, 0x9f, 0x86, 0xc9, 0xca, 0x4e, 0x75, 0x6f, 0x73, 0xbd, 0x5c, 0x2d, 0x6f, 0x6c, 0x94, + 0x4b, 0xfb, 0x7b, 0xf4, 0xc6, 0xd9, 0x97, 0xde, 0x97, 0x93, 0xfa, 0xf3, 0x2a, 0x4c, 0x47, 0x68, + 0xa2, 0x17, 0x58, 0xcf, 0x4e, 0x6f, 0x23, 0x9e, 0x1d, 0x44, 0xfb, 0x25, 0xdc, 0x15, 0xec, 0x9a, + 0x6d, 0x8f, 0xb5, 0xf8, 0xcf, 0x00, 0xb6, 0x92, 0xed, 0x59, 0x47, 0x16, 0x6a, 0xb3, 0x7d, 0x06, + 0xda, 0xc8, 0x4f, 0x06, 0xe3, 0x74, 0xab, 0xe1, 0xa3, 0xa0, 0xb7, 0x1c, 0xd7, 0xf2, 0xac, 0xd7, + 0x50, 0xd5, 0xb2, 0xf9, 0xa6, 0x04, 0x6e, 0xec, 0x93, 0x86, 0xc6, 0x67, 0x36, 0x6d, 0xcf, 0x97, + 0xb6, 0xd1, 0xb1, 0x19, 0x92, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x3e, 0xe3, 0x4b, 0x5f, 0x84, 0x4c, + 0xdd, 0xe9, 0xe0, 0x36, 0x89, 0xca, 0xe1, 0xf5, 0x42, 0x31, 0xd2, 0x74, 0xcc, 0x17, 0x61, 0x7d, + 0x6c, 0xb0, 0x1b, 0x92, 0x31, 0xd2, 0x74, 0x8c, 0x8a, 0x3c, 0x0d, 0x93, 0xe6, 0xf1, 0x71, 0x1b, + 0x93, 0x73, 0x22, 0xda, 0x99, 0x4f, 0xf8, 0xc3, 0x44, 0x70, 0xf6, 0x2e, 0xa4, 0xb8, 0x1d, 0xf0, + 0x92, 0x8c, 0x2d, 0x51, 0x6d, 0xd1, 0x3d, 0xa9, 0xc4, 0xc2, 0x98, 0x91, 0xb2, 0xf9, 0xe4, 0x45, + 0xc8, 0x58, 0x6e, 0x35, 0xd8, 0x1c, 0x4d, 0x5c, 0x48, 0x2c, 0xa4, 0x8c, 0xb4, 0xe5, 0xfa, 0xbb, + 0x61, 0xb9, 0xaf, 0x26, 0x60, 0x42, 0xde, 0xdc, 0xd5, 0xd7, 0x21, 0xd5, 0x70, 0x6a, 0x26, 0x09, + 0x2d, 0xfa, 0x64, 0x61, 0x21, 0x66, 0x3f, 0x78, 0x69, 0x8b, 0xc9, 0x1b, 0x3e, 0x72, 0xf6, 0x3f, + 0x2b, 0x90, 0xe2, 0xc3, 0xfa, 0x0c, 0x24, 0x5b, 0xa6, 0x77, 0x42, 0xe8, 0x86, 0x8b, 0x09, 0x4d, + 0x31, 0xc8, 0x31, 0x1e, 0x77, 0x5b, 0xa6, 0x4d, 0x42, 0x80, 0x8d, 0xe3, 0x63, 0xec, 0xd7, 0x06, + 0x32, 0xeb, 0xa4, 0xed, 0x77, 0x9a, 0x4d, 0x64, 0x7b, 0x2e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb1, 0x61, + 0xfd, 0x23, 0x30, 0xe5, 0xb5, 0x4d, 0xab, 0x21, 0xc9, 0x26, 0x89, 0xac, 0xc6, 0x27, 0x7c, 0xe1, + 0x3c, 0x3c, 0xc6, 0x79, 0xeb, 0xc8, 0x33, 0x6b, 0x27, 0xa8, 0x1e, 0x80, 0x46, 0xc8, 0xce, 0xe1, + 0xa3, 0x4c, 0x60, 0x9d, 0xcd, 0x73, 0x6c, 0xee, 0x0f, 0x15, 0x98, 0xe2, 0x37, 0x2a, 0x75, 0xdf, + 0x58, 0xdb, 0x00, 0xa6, 0x6d, 0x3b, 0x9e, 0x68, 0xae, 0xee, 0x50, 0xee, 0xc2, 0x2d, 0x15, 0x7c, + 0x90, 0x21, 0x10, 0xcc, 0x36, 0x01, 0x82, 0x99, 0x9e, 0x66, 0x9b, 0x87, 0x34, 0xdb, 0xb9, 0x27, + 0x8f, 0x7f, 0xe8, 0xad, 0x2d, 0xd0, 0x21, 0x7c, 0x47, 0xa3, 0x9f, 0x83, 0xe1, 0x43, 0x74, 0x6c, + 0xd9, 0x6c, 0x3f, 0x91, 0x1e, 0xf0, 0x5d, 0xca, 0xa4, 0xbf, 0x4b, 0x59, 0x7c, 0x19, 0xa6, 0x6b, + 0x4e, 0x33, 0xac, 0x6e, 0x51, 0x0b, 0xdd, 0x5e, 0xbb, 0x2f, 0x2a, 0xbf, 0x00, 0x41, 0x8b, 0xf9, + 0xeb, 0x09, 0xf5, 0xce, 0x6e, 0xf1, 0xb7, 0x12, 0xb3, 0x77, 0x28, 0x6e, 0x97, 0x5f, 0xa6, 0x81, + 0x8e, 0x1a, 0xa8, 0x86, 0x55, 0x87, 0x3f, 0xb9, 0x0c, 0xcf, 0x1e, 0x5b, 0xde, 0x49, 0xe7, 0x70, + 0xa9, 0xe6, 0x34, 0xaf, 0x1c, 0x3b, 0xc7, 0x4e, 0xf0, 0xb8, 0x0b, 0x1f, 0x91, 0x03, 0xf2, 0x89, + 0x3d, 0xf2, 0x1a, 0xf3, 0x47, 0x67, 0x63, 0x9f, 0x8f, 0xe5, 0x2b, 0x30, 0xcd, 0x84, 0xab, 0x64, + 0xcf, 0x9d, 0xde, 0x1a, 0xe8, 0x7d, 0xf7, 0x5d, 0xb2, 0xbf, 0xf3, 0x7d, 0xb2, 0x56, 0x1b, 0x53, + 0x0c, 0x8a, 0xe7, 0xe8, 0x0d, 0x44, 0xde, 0x80, 0x47, 0x24, 0x3e, 0x9a, 0x97, 0xa8, 0x1d, 0xc3, + 0xf8, 0x2d, 0xc6, 0x38, 0x2d, 0x30, 0xee, 0x31, 0x68, 0xbe, 0x04, 0xe3, 0x67, 0xe1, 0xfa, 0x0f, + 0x8c, 0x2b, 0x83, 0x44, 0x92, 0x3b, 0x30, 0x49, 0x48, 0x6a, 0x1d, 0xd7, 0x73, 0x9a, 0xa4, 0xe8, + 0xf5, 0xa7, 0xf9, 0x8f, 0xdf, 0xa7, 0x89, 0x32, 0x81, 0x61, 0x25, 0x1f, 0x95, 0xcf, 0x03, 0x79, + 0xcc, 0x50, 0x47, 0xb5, 0x46, 0x0c, 0xc3, 0x7d, 0xa6, 0x88, 0x2f, 0x9f, 0xff, 0x24, 0x9c, 0xc3, + 0x9f, 0x49, 0x4d, 0x12, 0x35, 0x89, 0xdf, 0x65, 0xca, 0xfe, 0xe1, 0x67, 0x68, 0x2e, 0x4e, 0xfb, + 0x04, 0x82, 0x4e, 0x82, 0x17, 0x8f, 0x91, 0xe7, 0xa1, 0xb6, 0x5b, 0x35, 0x1b, 0x51, 0xea, 0x09, + 0xb7, 0xe9, 0xd9, 0x5f, 0xfb, 0xa1, 0xec, 0xc5, 0x3b, 0x14, 0x59, 0x68, 0x34, 0xf2, 0x07, 0xf0, + 0x68, 0x44, 0x54, 0x0c, 0xc0, 0xf9, 0x79, 0xc6, 0x79, 0xae, 0x2b, 0x32, 0x30, 0xed, 0x2e, 0xf0, + 0x71, 0xdf, 0x97, 0x03, 0x70, 0xfe, 0x63, 0xc6, 0xa9, 0x33, 0x2c, 0x77, 0x29, 0x66, 0xbc, 0x0b, + 0x53, 0xaf, 0xa1, 0xf6, 0xa1, 0xe3, 0xb2, 0xad, 0x91, 0x01, 0xe8, 0xbe, 0xc0, 0xe8, 0x26, 0x19, + 0x90, 0xec, 0x95, 0x60, 0xae, 0x5b, 0x90, 0x3a, 0x32, 0x6b, 0x68, 0x00, 0x8a, 0x2f, 0x32, 0x8a, + 0x51, 0x2c, 0x8f, 0xa1, 0x05, 0xc8, 0x1c, 0x3b, 0x6c, 0x59, 0x8a, 0x87, 0x7f, 0x89, 0xc1, 0xd3, + 0x1c, 0xc3, 0x28, 0x5a, 0x4e, 0xab, 0xd3, 0xc0, 0x6b, 0x56, 0x3c, 0xc5, 0x97, 0x39, 0x05, 0xc7, + 0x30, 0x8a, 0x33, 0x98, 0xf5, 0x2d, 0x4e, 0xe1, 0x0a, 0xf6, 0x7c, 0x01, 0xd2, 0x8e, 0xdd, 0x38, + 0x75, 0xec, 0x41, 0x94, 0xf8, 0x0a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xb7, 0x61, 0x6c, 0x50, 0x47, + 0xfc, 0xc6, 0x0f, 0x79, 0x7a, 0x70, 0x0f, 0xdc, 0x81, 0x49, 0x5e, 0xa0, 0x2c, 0xc7, 0x1e, 0x80, + 0xe2, 0x9f, 0x32, 0x8a, 0x09, 0x01, 0xc6, 0x2e, 0xc3, 0x43, 0xae, 0x77, 0x8c, 0x06, 0x21, 0xf9, + 0x2a, 0xbf, 0x0c, 0x06, 0x61, 0xa6, 0x3c, 0x44, 0x76, 0xed, 0x64, 0x30, 0x86, 0xaf, 0x71, 0x53, + 0x72, 0x0c, 0xa6, 0x28, 0xc1, 0x78, 0xd3, 0x6c, 0xbb, 0x27, 0x66, 0x63, 0x20, 0x77, 0xfc, 0x26, + 0xe3, 0xc8, 0xf8, 0x20, 0x66, 0x91, 0x8e, 0x7d, 0x16, 0x9a, 0xdf, 0xe2, 0x16, 0x11, 0x60, 0x2c, + 0xf5, 0x5c, 0x8f, 0x6c, 0x40, 0x9d, 0x85, 0xed, 0xb7, 0x79, 0xea, 0x51, 0xec, 0xb6, 0xc8, 0x78, + 0x1b, 0xc6, 0x5c, 0xeb, 0xd3, 0x03, 0xd1, 0xfc, 0x33, 0xee, 0x69, 0x02, 0xc0, 0xe0, 0x7b, 0xf0, + 0x58, 0xe4, 0x32, 0x31, 0x00, 0xd9, 0x3f, 0x67, 0x64, 0x33, 0x11, 0x4b, 0x05, 0x2b, 0x09, 0x67, + 0xa5, 0xfc, 0x17, 0xbc, 0x24, 0xa0, 0x10, 0xd7, 0x2e, 0xbe, 0x51, 0x70, 0xcd, 0xa3, 0xb3, 0x59, + 0xed, 0x5f, 0x72, 0xab, 0x51, 0xac, 0x64, 0xb5, 0x7d, 0x98, 0x61, 0x8c, 0x67, 0xf3, 0xeb, 0xd7, + 0x79, 0x61, 0xa5, 0xe8, 0x03, 0xd9, 0xbb, 0x9f, 0x82, 0x59, 0xdf, 0x9c, 0xbc, 0x23, 0x75, 0xab, + 0x4d, 0xb3, 0x35, 0x00, 0xf3, 0xef, 0x30, 0x66, 0x5e, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0x36, 0x5b, + 0x98, 0xfc, 0x65, 0xc8, 0x72, 0xf2, 0x8e, 0xdd, 0x46, 0x35, 0xe7, 0xd8, 0xb6, 0x3e, 0x8d, 0xea, + 0x03, 0x50, 0x7f, 0x23, 0xe4, 0xaa, 0x03, 0x01, 0x8e, 0x99, 0x37, 0x41, 0xf3, 0x7b, 0x95, 0xaa, + 0xd5, 0x6c, 0x39, 0x6d, 0x2f, 0x86, 0xf1, 0x5f, 0x71, 0x4f, 0xf9, 0xb8, 0x4d, 0x02, 0xcb, 0x97, + 0x61, 0x82, 0x1c, 0x0e, 0x1a, 0x92, 0xbf, 0xcb, 0x88, 0xc6, 0x03, 0x14, 0x2b, 0x1c, 0x35, 0xa7, + 0xd9, 0x32, 0xdb, 0x83, 0xd4, 0xbf, 0x7f, 0xcd, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, 0x9d, 0xb6, + 0x10, 0x5e, 0xed, 0x07, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x30, 0x00, + 0xc5, 0xbf, 0xe1, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x11, 0x2c, 0xb4, 0x6d, 0x74, 0x6c, 0xb9, 0x5e, + 0x9b, 0xf6, 0xc1, 0xfd, 0xa9, 0x7e, 0xef, 0x87, 0x72, 0x13, 0x66, 0x08, 0xd0, 0xfc, 0x5d, 0x98, + 0x0c, 0xb5, 0x18, 0x7a, 0xdc, 0x3b, 0x0b, 0xd9, 0xbf, 0xf2, 0x63, 0x56, 0x8c, 0xe4, 0x0e, 0x23, + 0xbf, 0x85, 0xfd, 0x2e, 0xf7, 0x01, 0xf1, 0x64, 0x9f, 0xf9, 0xb1, 0xef, 0x7a, 0xa9, 0x0d, 0xc8, + 0x6f, 0xc0, 0xb8, 0xd4, 0x03, 0xc4, 0x53, 0xfd, 0x55, 0x46, 0x95, 0x11, 0x5b, 0x80, 0xfc, 0x1a, + 0x24, 0xf1, 0x7a, 0x1e, 0x0f, 0xff, 0x6b, 0x0c, 0x4e, 0xc4, 0xf3, 0xcf, 0x41, 0x8a, 0xaf, 0xe3, + 0xf1, 0xd0, 0x5f, 0x66, 0x50, 0x1f, 0x82, 0xe1, 0x7c, 0x0d, 0x8f, 0x87, 0xff, 0x75, 0x0e, 0xe7, + 0x10, 0x0c, 0x1f, 0xdc, 0x84, 0x6f, 0xff, 0xcd, 0x24, 0xab, 0xc3, 0xdc, 0x76, 0xb7, 0x61, 0x94, + 0x2d, 0xde, 0xf1, 0xe8, 0x5f, 0x61, 0x27, 0xe7, 0x88, 0xfc, 0x0d, 0x18, 0x1e, 0xd0, 0xe0, 0x7f, + 0x8b, 0x41, 0xa9, 0x7c, 0xbe, 0x04, 0x69, 0x61, 0xc1, 0x8e, 0x87, 0xff, 0x6d, 0x06, 0x17, 0x51, + 0x58, 0x75, 0xb6, 0x60, 0xc7, 0x13, 0xfc, 0x1d, 0xae, 0x3a, 0x43, 0x60, 0xb3, 0xf1, 0xb5, 0x3a, + 0x1e, 0xfd, 0x77, 0xb9, 0xd5, 0x39, 0x24, 0xff, 0x02, 0x8c, 0xf9, 0xf5, 0x37, 0x1e, 0xff, 0xf7, + 0x18, 0x3e, 0xc0, 0x60, 0x0b, 0x08, 0xf5, 0x3f, 0x9e, 0xe2, 0xef, 0x73, 0x0b, 0x08, 0x28, 0x9c, + 0x46, 0xe1, 0x35, 0x3d, 0x9e, 0xe9, 0x57, 0x79, 0x1a, 0x85, 0x96, 0x74, 0xec, 0x4d, 0x52, 0x06, + 0xe3, 0x29, 0xfe, 0x01, 0xf7, 0x26, 0x91, 0xc7, 0x6a, 0x84, 0x17, 0xc9, 0x78, 0x8e, 0x7f, 0xc4, + 0xd5, 0x08, 0xad, 0x91, 0xf9, 0x5d, 0xd0, 0xbb, 0x17, 0xc8, 0x78, 0xbe, 0xcf, 0x31, 0xbe, 0xa9, + 0xae, 0xf5, 0x31, 0xff, 0x12, 0xcc, 0x44, 0x2f, 0x8e, 0xf1, 0xac, 0xbf, 0xf6, 0xe3, 0xd0, 0xed, + 0x8c, 0xb8, 0x36, 0xe6, 0xf7, 0x83, 0x2a, 0x2b, 0x2e, 0x8c, 0xf1, 0xb4, 0x9f, 0xff, 0xb1, 0x5c, + 0x68, 0xc5, 0x75, 0x31, 0x5f, 0x00, 0x08, 0xd6, 0xa4, 0x78, 0xae, 0x2f, 0x30, 0x2e, 0x01, 0x84, + 0x53, 0x83, 0x2d, 0x49, 0xf1, 0xf8, 0x2f, 0xf2, 0xd4, 0x60, 0x08, 0x9c, 0x1a, 0x7c, 0x35, 0x8a, + 0x47, 0x7f, 0x89, 0xa7, 0x06, 0x87, 0xe4, 0x6f, 0x43, 0xca, 0xee, 0x34, 0x1a, 0x38, 0xb6, 0xf4, + 0xfe, 0xaf, 0x11, 0x65, 0xff, 0xc7, 0x4f, 0x18, 0x98, 0x03, 0xf2, 0x6b, 0x30, 0x8c, 0x9a, 0x87, + 0xa8, 0x1e, 0x87, 0xfc, 0x9f, 0x3f, 0xe1, 0xf5, 0x04, 0x4b, 0xe7, 0x5f, 0x00, 0xa0, 0x37, 0xd3, + 0xe4, 0x29, 0x51, 0x0c, 0xf6, 0x7f, 0xfd, 0x84, 0xbd, 0xa1, 0x10, 0x40, 0x02, 0x02, 0xfa, 0xbe, + 0x43, 0x7f, 0x82, 0x1f, 0xca, 0x04, 0xe4, 0x06, 0xfc, 0x16, 0x8c, 0xbe, 0xe2, 0x3a, 0xb6, 0x67, + 0x1e, 0xc7, 0xa1, 0xff, 0x37, 0x43, 0x73, 0x79, 0x6c, 0xb0, 0xa6, 0xd3, 0x46, 0x9e, 0x79, 0xec, + 0xc6, 0x61, 0xff, 0x0f, 0xc3, 0xfa, 0x00, 0x0c, 0xae, 0x99, 0xae, 0x37, 0xc8, 0x75, 0xff, 0x5f, + 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x2a, 0x3a, 0x8d, 0xc3, 0xfe, 0x88, 0x2b, 0xcd, 0xe4, + 0xf3, 0xcf, 0xc1, 0x18, 0xfe, 0x48, 0xdf, 0xda, 0x89, 0x01, 0xff, 0x31, 0x03, 0x07, 0x08, 0x7c, + 0x66, 0xd7, 0xab, 0x7b, 0x56, 0xbc, 0xb1, 0xff, 0x1f, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, + 0x7a, 0xf5, 0x7a, 0x87, 0x75, 0x34, 0x31, 0xf0, 0x3f, 0xf9, 0x89, 0x7f, 0x93, 0xeb, 0x63, 0x8a, + 0x17, 0xa3, 0x37, 0xeb, 0xe0, 0x8e, 0x73, 0xc7, 0xa1, 0xdb, 0x74, 0xf0, 0xfd, 0x06, 0xdc, 0xe8, + 0xb9, 0xeb, 0x86, 0x17, 0x91, 0x2b, 0x35, 0xa7, 0x79, 0xe8, 0xb8, 0x57, 0x0e, 0x1d, 0xef, 0xe4, + 0x8a, 0x77, 0x82, 0xf0, 0x18, 0xdb, 0x7f, 0x4b, 0xe2, 0xcf, 0xb3, 0x67, 0xdb, 0xb4, 0x23, 0xcf, + 0x63, 0x2b, 0x16, 0xd6, 0xbb, 0x42, 0xb6, 0xc4, 0xf5, 0xf3, 0x30, 0x42, 0xae, 0xe4, 0x2a, 0x79, + 0xec, 0xa4, 0x14, 0x93, 0xf7, 0xdf, 0x99, 0x1f, 0x32, 0xd8, 0x98, 0x3f, 0xbb, 0x42, 0xf6, 0x2c, + 0x13, 0xd2, 0xec, 0x8a, 0x3f, 0x7b, 0x8d, 0x6e, 0x5b, 0x4a, 0xb3, 0xd7, 0xfc, 0xd9, 0x55, 0xb2, + 0x81, 0xa9, 0x4a, 0xb3, 0xab, 0xfe, 0xec, 0x1a, 0xd9, 0xa4, 0x1f, 0x97, 0x66, 0xd7, 0xfc, 0xd9, + 0xeb, 0x64, 0x6b, 0x3e, 0x29, 0xcd, 0x5e, 0xf7, 0x67, 0x6f, 0x90, 0x5d, 0xf9, 0x29, 0x69, 0xf6, + 0x86, 0x3f, 0x7b, 0x93, 0xec, 0xc6, 0xeb, 0xd2, 0xec, 0x4d, 0x7f, 0xf6, 0x16, 0x79, 0xc5, 0x64, + 0x54, 0x9a, 0xbd, 0xa5, 0xcf, 0xc1, 0x28, 0xbd, 0xf2, 0x65, 0xf2, 0xe8, 0x76, 0x92, 0x4d, 0xf3, + 0xc1, 0x60, 0xfe, 0x2a, 0x79, 0x9d, 0x64, 0x44, 0x9e, 0xbf, 0x1a, 0xcc, 0xaf, 0x90, 0x17, 0xab, + 0x35, 0x79, 0x7e, 0x25, 0x98, 0xbf, 0x96, 0x1d, 0x27, 0xaf, 0xd4, 0x48, 0xf3, 0xd7, 0x82, 0xf9, + 0xd5, 0xec, 0x04, 0x0e, 0x66, 0x79, 0x7e, 0x35, 0x98, 0x5f, 0xcb, 0x4e, 0x5e, 0x50, 0x16, 0x32, + 0xf2, 0xfc, 0x5a, 0xee, 0x97, 0x88, 0x7b, 0xed, 0xc0, 0xbd, 0x33, 0xb2, 0x7b, 0x7d, 0xc7, 0xce, + 0xc8, 0x8e, 0xf5, 0x5d, 0x3a, 0x23, 0xbb, 0xd4, 0x77, 0xe6, 0x8c, 0xec, 0x4c, 0xdf, 0x8d, 0x33, + 0xb2, 0x1b, 0x7d, 0x07, 0xce, 0xc8, 0x0e, 0xf4, 0x5d, 0x37, 0x23, 0xbb, 0xce, 0x77, 0xda, 0x8c, + 0xec, 0x34, 0xdf, 0x5d, 0x33, 0xb2, 0xbb, 0x7c, 0x47, 0x65, 0x43, 0x8e, 0x0a, 0x5c, 0x94, 0x0d, + 0xb9, 0x28, 0x70, 0x4e, 0x36, 0xe4, 0x9c, 0xc0, 0x2d, 0xd9, 0x90, 0x5b, 0x02, 0x87, 0x64, 0x43, + 0x0e, 0x09, 0x5c, 0x91, 0x0d, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, 0x72, 0x4c, + 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, + 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, 0x6a, 0x4c, + 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x3d, + 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xec, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, + 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, + 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, + 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x62, 0x8e, 0xfd, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xbb, 0xe4, + 0xe5, 0x1f, 0xe6, 0x8a, 0xb9, 0x50, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, 0x42, 0xb9, + 0x26, 0xcf, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xe4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, 0x79, 0x7e, + 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xcf, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xe4, 0xf9, 0xeb, 0xfe, 0x3c, + 0xcf, 0x3a, 0x79, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9e, 0xbf, 0xe9, 0xcf, 0xf3, 0xcc, 0x93, + 0xe7, 0x6f, 0xe9, 0x17, 0xc2, 0xb9, 0xc7, 0x05, 0x7c, 0xd7, 0x5e, 0x08, 0x67, 0x5f, 0x48, 0xe2, + 0x6a, 0x20, 0xc1, 0xf3, 0x2f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x0c, 0x49, 0x5c, 0xcb, 0x7d, + 0x96, 0xb8, 0xcf, 0x0e, 0xbb, 0x6f, 0x36, 0xe4, 0xbe, 0x84, 0xe0, 0xba, 0xd9, 0x90, 0xeb, 0x12, + 0x82, 0xdb, 0x66, 0x43, 0x6e, 0x4b, 0x08, 0x2e, 0x9b, 0x0d, 0xb9, 0x2c, 0x21, 0xb8, 0x6b, 0x36, + 0xe4, 0xae, 0x84, 0xe0, 0xaa, 0xd9, 0x90, 0xab, 0x12, 0x82, 0x9b, 0x66, 0x43, 0x6e, 0x4a, 0x08, + 0x2e, 0x9a, 0x0d, 0xb9, 0x28, 0x21, 0xb8, 0x67, 0x36, 0xe4, 0x9e, 0x84, 0xe0, 0x9a, 0xf3, 0x61, + 0xd7, 0x24, 0x44, 0xb7, 0x9c, 0x0f, 0xbb, 0x25, 0x21, 0xba, 0xe4, 0x7c, 0xd8, 0x25, 0x09, 0xd1, + 0x1d, 0xe7, 0xc3, 0xee, 0x48, 0x88, 0xae, 0xf8, 0xf3, 0x04, 0xef, 0x08, 0xf7, 0xbc, 0x76, 0xa7, + 0xe6, 0xbd, 0xa7, 0x8e, 0x70, 0x59, 0x6a, 0x1f, 0xd2, 0x2b, 0xfa, 0x12, 0x69, 0x58, 0xc5, 0x8e, + 0x33, 0xb4, 0x82, 0x2d, 0x4b, 0x8d, 0x85, 0x80, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xa9, 0x37, 0x5c, + 0x96, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe0, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, 0xf3, + 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, 0x83, + 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xfe, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x8a, + 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x52, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, 0xb3, + 0x76, 0x5e, 0xcb, 0x52, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x00, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, 0xfc, + 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, 0x68, + 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0x9e, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, 0xe5, + 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xaa, 0x04, 0x3d, 0x5c, 0xfd, 0xed, 0x77, + 0xe6, 0x03, 0x0b, 0xaf, 0x41, 0x8a, 0xda, 0x74, 0x79, 0x39, 0x7b, 0x5f, 0x89, 0xa9, 0x70, 0xbe, + 0xa8, 0x7e, 0x91, 0xc3, 0xae, 0x2e, 0x67, 0xff, 0x8b, 0x22, 0x54, 0x39, 0x7f, 0x38, 0xf7, 0xab, + 0x44, 0x43, 0xfb, 0x3d, 0x6b, 0x78, 0x65, 0x20, 0x0d, 0x05, 0xdd, 0x1e, 0xef, 0xd2, 0x4d, 0xd0, + 0xaa, 0x03, 0x93, 0x15, 0xab, 0x5e, 0x21, 0x5f, 0xe9, 0x1d, 0x44, 0x25, 0x2a, 0x13, 0xaa, 0x07, + 0xcb, 0x52, 0x58, 0x8a, 0x08, 0x3f, 0xa4, 0xe5, 0x1a, 0x91, 0xb3, 0xf0, 0x69, 0x6d, 0xe9, 0xb4, + 0x8b, 0xbd, 0x4e, 0x1b, 0x54, 0x76, 0xff, 0x84, 0x8b, 0xbd, 0x4e, 0x18, 0xe4, 0x90, 0x7f, 0xaa, + 0x37, 0xf8, 0xe2, 0x4c, 0xdf, 0xc2, 0xd1, 0xcf, 0x43, 0x62, 0x93, 0xbe, 0x21, 0x9c, 0x29, 0x66, + 0xb0, 0x52, 0xdf, 0x79, 0x67, 0x3e, 0x79, 0xd0, 0xb1, 0xea, 0x46, 0x62, 0xb3, 0xae, 0xdf, 0x85, + 0xe1, 0x4f, 0xb2, 0x2f, 0xc6, 0x61, 0x81, 0x55, 0x26, 0xf0, 0xd1, 0x98, 0x2d, 0x26, 0x42, 0xbd, + 0x74, 0x60, 0xd9, 0xde, 0xd5, 0x95, 0x9b, 0x06, 0xa5, 0xc8, 0xfd, 0x45, 0x00, 0x7a, 0xce, 0x75, + 0xd3, 0x3d, 0xd1, 0x2b, 0x9c, 0x99, 0x9e, 0xfa, 0xe6, 0x77, 0xde, 0x99, 0x5f, 0x1d, 0x84, 0xf5, + 0xd9, 0xba, 0xe9, 0x9e, 0x3c, 0xeb, 0x9d, 0xb6, 0xd0, 0x52, 0xf1, 0xd4, 0x43, 0x2e, 0x67, 0x6f, + 0xf1, 0x55, 0x8f, 0x5d, 0x57, 0x56, 0xb8, 0xae, 0x94, 0x74, 0x4d, 0x1b, 0xf2, 0x35, 0x2d, 0x3f, + 0xec, 0xf5, 0xbc, 0xc1, 0x17, 0x89, 0x90, 0x25, 0xd5, 0x38, 0x4b, 0xaa, 0xef, 0xd5, 0x92, 0x2d, + 0x5e, 0x1f, 0x43, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0xbd, 0x5c, 0xeb, 0x9f, 0xd2, 0x6c, 0xf5, + 0xf3, 0xe9, 0xc0, 0xa6, 0x6f, 0x27, 0xfe, 0x7c, 0xed, 0x05, 0xbd, 0xaf, 0x5d, 0x40, 0x3e, 0x79, + 0xff, 0xad, 0x79, 0x25, 0xf7, 0xe5, 0x04, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x77, 0xe5, 0x3f, 0x2f, + 0x3d, 0xd5, 0x07, 0x61, 0xa1, 0x2f, 0x29, 0x30, 0xd3, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdf, 0x72, + 0x6e, 0x9f, 0xb5, 0x9c, 0x33, 0x05, 0x7f, 0x57, 0x81, 0x73, 0xa1, 0xf2, 0x4a, 0xd5, 0xbb, 0x12, + 0x52, 0xef, 0xd1, 0xee, 0x33, 0x11, 0x41, 0x41, 0x3b, 0xd1, 0xbd, 0x21, 0x80, 0xc0, 0xec, 0xfb, + 0x7d, 0x35, 0xe4, 0xf7, 0xf3, 0x3e, 0x20, 0xc2, 0x5c, 0x3c, 0x02, 0x98, 0xda, 0x0e, 0x24, 0xf7, + 0xdb, 0x08, 0xe9, 0x73, 0x90, 0xd8, 0x69, 0x33, 0x0d, 0x27, 0x28, 0x7e, 0xa7, 0x5d, 0x6c, 0x9b, + 0x76, 0xed, 0xc4, 0x48, 0xec, 0xb4, 0xf5, 0x8b, 0xa0, 0x16, 0xd8, 0x4f, 0x0f, 0xa4, 0x57, 0x26, + 0xa9, 0x40, 0xc1, 0xae, 0x33, 0x09, 0x3c, 0xa7, 0xcf, 0x41, 0x72, 0x0b, 0x99, 0x47, 0x4c, 0x09, + 0xa0, 0x32, 0x78, 0xc4, 0x20, 0xe3, 0xec, 0x84, 0x2f, 0x43, 0x8a, 0x13, 0xeb, 0x97, 0x30, 0xe2, + 0xc8, 0x63, 0xa7, 0x65, 0x08, 0xac, 0x0e, 0x5b, 0xb9, 0xc8, 0xac, 0x7e, 0x19, 0x86, 0x0d, 0xeb, + 0xf8, 0xc4, 0x63, 0x27, 0xef, 0x16, 0xa3, 0xd3, 0xb9, 0x7b, 0x30, 0xe6, 0x6b, 0xf4, 0x3e, 0x53, + 0xaf, 0xd3, 0x4b, 0xd3, 0x67, 0xc5, 0xf5, 0x84, 0xef, 0x5b, 0xd2, 0x21, 0xfd, 0x02, 0xa4, 0xf6, + 0xbc, 0x76, 0x50, 0xf4, 0x79, 0x47, 0xea, 0x8f, 0xe6, 0x7e, 0x49, 0x81, 0xd4, 0x3a, 0x42, 0x2d, + 0x62, 0xf0, 0xa7, 0x20, 0xb9, 0xee, 0xbc, 0x6e, 0x33, 0x05, 0xa7, 0x98, 0x45, 0xf1, 0x34, 0xb3, + 0x29, 0x99, 0xd6, 0x9f, 0x12, 0xed, 0x3e, 0xed, 0xdb, 0x5d, 0x90, 0x23, 0xb6, 0xcf, 0x49, 0xb6, + 0x67, 0x0e, 0xc4, 0x42, 0x5d, 0xf6, 0xbf, 0x01, 0x69, 0xe1, 0x2c, 0xfa, 0x02, 0x53, 0x23, 0x11, + 0x06, 0x8a, 0xb6, 0xc2, 0x12, 0x39, 0x04, 0xe3, 0xd2, 0x89, 0x31, 0x54, 0x30, 0x71, 0x0f, 0x28, + 0x31, 0xf3, 0xa2, 0x6c, 0xe6, 0x68, 0x51, 0x66, 0xea, 0x65, 0x6a, 0x23, 0x62, 0xee, 0x4b, 0x34, + 0x38, 0x7b, 0x3b, 0x11, 0x7f, 0xce, 0x0d, 0x83, 0x5a, 0xb1, 0x1a, 0xb9, 0xe7, 0x00, 0x68, 0xca, + 0x97, 0xed, 0x4e, 0x33, 0x94, 0x75, 0x13, 0xdc, 0xc0, 0xfb, 0x27, 0x68, 0x1f, 0xb9, 0x44, 0x44, + 0xee, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x4c, 0x2c, 0x3e, 0xb2, 0x13, 0xc3, 0xa2, + 0x59, 0x2a, 0x7a, 0x0f, 0x79, 0x05, 0xdb, 0xf1, 0x4e, 0x50, 0x3b, 0x84, 0x58, 0xd1, 0xaf, 0x49, + 0x09, 0x3b, 0xb1, 0xf2, 0xb8, 0x8f, 0xe8, 0x09, 0xba, 0x96, 0xfb, 0x3a, 0x51, 0x10, 0xb7, 0x02, + 0x5d, 0x17, 0xa8, 0x0e, 0x70, 0x81, 0xfa, 0x75, 0xa9, 0x7f, 0xeb, 0xa3, 0x66, 0xe8, 0xd6, 0xf2, + 0x96, 0x74, 0x9f, 0xd3, 0x5f, 0x59, 0xf9, 0x1e, 0x93, 0xdb, 0x94, 0xab, 0xfc, 0x4c, 0xac, 0xca, + 0x3d, 0xba, 0xdb, 0xb3, 0xda, 0x54, 0x1d, 0xd4, 0xa6, 0xbf, 0xef, 0x77, 0x1c, 0xf4, 0x47, 0x1c, + 0xc8, 0x6f, 0x86, 0xe8, 0x1f, 0x8d, 0xf5, 0x7d, 0x5e, 0x29, 0xf9, 0xaa, 0xae, 0x0e, 0xea, 0xfe, + 0x7c, 0xa2, 0x58, 0xf4, 0xd5, 0xbd, 0x71, 0x86, 0x10, 0xc8, 0x27, 0x4a, 0x25, 0xbf, 0x6c, 0xa7, + 0x3e, 0xfb, 0xd6, 0xbc, 0xf2, 0xb5, 0xb7, 0xe6, 0x87, 0x72, 0xbf, 0xa9, 0xc0, 0x14, 0x93, 0x14, + 0x02, 0xf7, 0xd9, 0x90, 0xf2, 0x8f, 0xf0, 0x9a, 0x11, 0x65, 0x81, 0x9f, 0x5a, 0xf0, 0x7e, 0x4b, + 0x81, 0x6c, 0x97, 0xae, 0xdc, 0xde, 0xcb, 0x03, 0xa9, 0x9c, 0x57, 0xca, 0x3f, 0x7b, 0x9b, 0xdf, + 0x83, 0xe1, 0x7d, 0xab, 0x89, 0xda, 0x78, 0x25, 0xc0, 0x1f, 0xa8, 0xca, 0xfc, 0x61, 0x0e, 0x1d, + 0xe2, 0x73, 0x54, 0x39, 0x69, 0x6e, 0x45, 0xcf, 0x42, 0x72, 0xdd, 0xf4, 0x4c, 0xa2, 0x41, 0xc6, + 0xaf, 0xaf, 0xa6, 0x67, 0xe6, 0xae, 0x41, 0x66, 0xfb, 0x94, 0xbc, 0x42, 0x53, 0x27, 0xaf, 0x87, + 0xc8, 0xdd, 0x1f, 0xef, 0x57, 0xaf, 0x2e, 0x0e, 0xa7, 0xea, 0xda, 0x7d, 0x25, 0x9f, 0x24, 0xfa, + 0xbc, 0x06, 0x13, 0x3b, 0x58, 0x6d, 0x82, 0x23, 0xb0, 0x0b, 0xa0, 0x6c, 0xcb, 0x8d, 0x90, 0xc8, + 0x6a, 0x28, 0xdb, 0xa1, 0xf6, 0x51, 0xf5, 0xcd, 0x13, 0x6a, 0xdb, 0x54, 0xbf, 0x6d, 0x5b, 0x4c, + 0xa6, 0x26, 0xb4, 0xa9, 0xc5, 0x64, 0x0a, 0xb4, 0x71, 0x76, 0xde, 0xff, 0xa4, 0x82, 0x46, 0x5b, + 0x9d, 0x75, 0x74, 0x64, 0xd9, 0x96, 0xd7, 0xdd, 0xaf, 0xfa, 0x1a, 0xeb, 0x2f, 0xc0, 0x18, 0x36, + 0xe9, 0x06, 0xfb, 0xe9, 0x2d, 0x6c, 0xfa, 0x8b, 0xac, 0x45, 0x09, 0x51, 0xb0, 0x01, 0x12, 0x3a, + 0x01, 0x46, 0xdf, 0x00, 0xb5, 0x52, 0xd9, 0x66, 0x8b, 0xdb, 0x6a, 0x5f, 0x28, 0x7b, 0x03, 0x87, + 0x1d, 0xb1, 0x31, 0xf7, 0xd8, 0xc0, 0x04, 0xfa, 0x2a, 0x24, 0x2a, 0xdb, 0xac, 0xe1, 0xbd, 0x34, + 0x08, 0x8d, 0x91, 0xa8, 0x6c, 0xcf, 0xfe, 0x3b, 0x05, 0xc6, 0xa5, 0x51, 0x3d, 0x07, 0x19, 0x3a, + 0x20, 0x5c, 0xee, 0x88, 0x21, 0x8d, 0x71, 0x9d, 0x13, 0xef, 0x51, 0xe7, 0xd9, 0x02, 0x4c, 0x86, + 0xc6, 0xf5, 0x25, 0xd0, 0xc5, 0x21, 0xa6, 0x04, 0xfd, 0xd9, 0xa2, 0x88, 0x99, 0xdc, 0x13, 0x00, + 0x81, 0x5d, 0xfd, 0x5f, 0xdb, 0xa9, 0x94, 0xf7, 0xf6, 0xcb, 0xeb, 0x9a, 0x92, 0xfb, 0xa6, 0x02, + 0x69, 0xd6, 0xb6, 0xd6, 0x9c, 0x16, 0xd2, 0x8b, 0xa0, 0x14, 0x58, 0x04, 0x3d, 0x9c, 0xde, 0x4a, + 0x41, 0xbf, 0x02, 0x4a, 0x71, 0x70, 0x57, 0x2b, 0x45, 0x7d, 0x05, 0x94, 0x12, 0x73, 0xf0, 0x60, + 0x9e, 0x51, 0x4a, 0xb9, 0x3f, 0x56, 0x61, 0x5a, 0x6c, 0xa3, 0x79, 0x3d, 0xb9, 0x28, 0xdf, 0x37, + 0xe5, 0xc7, 0xae, 0xae, 0x5c, 0x5b, 0x5d, 0xc2, 0xff, 0xf8, 0x21, 0x79, 0x51, 0xbe, 0x85, 0xea, + 0x16, 0xe9, 0x7a, 0x4d, 0x24, 0x9f, 0x14, 0x66, 0xbb, 0x5e, 0x13, 0x91, 0x66, 0xbb, 0x5e, 0x13, + 0x91, 0x66, 0xbb, 0x5e, 0x13, 0x91, 0x66, 0xbb, 0x1e, 0x05, 0x48, 0xb3, 0x5d, 0xaf, 0x89, 0x48, + 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0xdd, 0xaf, 0x89, 0xb0, 0xe9, 0x9e, 0xaf, 0x89, 0xc8, 0xf3, + 0xdd, 0xaf, 0x89, 0xc8, 0xf3, 0xdd, 0xaf, 0x89, 0xe4, 0x93, 0x5e, 0xbb, 0x83, 0x7a, 0x3f, 0x74, + 0x90, 0xf1, 0xfd, 0xee, 0x01, 0x83, 0x02, 0xbc, 0x03, 0x93, 0x74, 0x3f, 0xa2, 0xe4, 0xd8, 0x9e, + 0x69, 0xd9, 0xa8, 0xad, 0x7f, 0x0c, 0x32, 0x74, 0x88, 0xde, 0xe5, 0x44, 0xdd, 0x05, 0xd2, 0x79, + 0x56, 0x6e, 0x25, 0xe9, 0xdc, 0x9f, 0x27, 0x61, 0x86, 0x0e, 0x54, 0xcc, 0x26, 0x92, 0x5e, 0x32, + 0xba, 0x1c, 0x7a, 0xa4, 0x34, 0x81, 0xe1, 0x0f, 0xde, 0x99, 0xa7, 0xa3, 0x05, 0x3f, 0x98, 0x2e, + 0x87, 0x1e, 0x2e, 0xc9, 0x72, 0xc1, 0xfa, 0x73, 0x39, 0xf4, 0xe2, 0x91, 0x2c, 0xe7, 0x2f, 0x37, + 0xbe, 0x1c, 0x7f, 0x05, 0x49, 0x96, 0x5b, 0xf7, 0xa3, 0xec, 0x72, 0xe8, 0x65, 0x24, 0x59, 0xae, + 0xec, 0xc7, 0xdb, 0xe5, 0xd0, 0xa3, 0x27, 0x59, 0x6e, 0xc3, 0x8f, 0xbc, 0xcb, 0xa1, 0x87, 0x50, + 0xb2, 0xdc, 0x1d, 0x3f, 0x06, 0x2f, 0x87, 0x5e, 0x55, 0x92, 0xe5, 0x5e, 0xf4, 0xa3, 0xf1, 0x72, + 0xe8, 0xa5, 0x25, 0x59, 0x6e, 0xd3, 0x8f, 0xcb, 0x85, 0xf0, 0xeb, 0x4b, 0xb2, 0xe0, 0xdd, 0x20, + 0x42, 0x17, 0xc2, 0x2f, 0x32, 0xc9, 0x92, 0x1f, 0x0f, 0x62, 0x75, 0x21, 0xfc, 0x4a, 0x93, 0x2c, + 0xb9, 0x15, 0x44, 0xed, 0x42, 0xf8, 0x51, 0x99, 0x2c, 0xb9, 0x1d, 0xc4, 0xef, 0x42, 0xf8, 0xa1, + 0x99, 0x2c, 0x59, 0x09, 0x22, 0x79, 0x21, 0xfc, 0xf8, 0x4c, 0x96, 0xdc, 0x09, 0xf6, 0xd0, 0xff, + 0x20, 0x14, 0x7e, 0xc2, 0x4b, 0x50, 0xb9, 0x50, 0xf8, 0x41, 0x44, 0xe8, 0xe5, 0x42, 0xa1, 0x07, + 0x11, 0x61, 0x97, 0x0b, 0x85, 0x1d, 0x44, 0x84, 0x5c, 0x2e, 0x14, 0x72, 0x10, 0x11, 0x6e, 0xb9, + 0x50, 0xb8, 0x41, 0x44, 0xa8, 0xe5, 0x42, 0xa1, 0x06, 0x11, 0x61, 0x96, 0x0b, 0x85, 0x19, 0x44, + 0x84, 0x58, 0x2e, 0x14, 0x62, 0x10, 0x11, 0x5e, 0xb9, 0x50, 0x78, 0x41, 0x44, 0x68, 0x5d, 0x0a, + 0x87, 0x16, 0x44, 0x85, 0xd5, 0xa5, 0x70, 0x58, 0x41, 0x54, 0x48, 0x3d, 0x19, 0x0e, 0xa9, 0xb1, + 0x07, 0xef, 0xcc, 0x0f, 0xe3, 0x21, 0x21, 0x9a, 0x2e, 0x85, 0xa3, 0x09, 0xa2, 0x22, 0xe9, 0x52, + 0x38, 0x92, 0x20, 0x2a, 0x8a, 0x2e, 0x85, 0xa3, 0x08, 0xa2, 0x22, 0xe8, 0xed, 0x70, 0x04, 0x05, + 0xaf, 0xf8, 0xe4, 0x42, 0x4f, 0x14, 0xe3, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, + 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, + 0x82, 0xd4, 0x41, 0x22, 0x48, 0x1d, 0x28, 0x82, 0xd4, 0x5e, 0x11, 0x74, 0x29, 0xfc, 0xc2, 0x03, + 0x44, 0x15, 0xa4, 0x4b, 0xe1, 0x27, 0x9f, 0xf1, 0x21, 0xa4, 0x0e, 0x14, 0x42, 0x6a, 0xaf, 0x10, + 0xfa, 0x03, 0x15, 0xa6, 0xa5, 0x10, 0x62, 0x8f, 0x87, 0xde, 0xaf, 0x0a, 0x74, 0x7d, 0x80, 0xf7, + 0x2b, 0xa2, 0x62, 0xea, 0xfa, 0x00, 0xcf, 0xa8, 0xfb, 0xc5, 0x59, 0x77, 0x15, 0x2a, 0x0f, 0x50, + 0x85, 0x36, 0xfc, 0x18, 0xba, 0x3e, 0xc0, 0x7b, 0x17, 0xdd, 0xb1, 0x77, 0xb3, 0x5f, 0x11, 0x78, + 0x71, 0xa0, 0x22, 0xb0, 0x39, 0x50, 0x11, 0xb8, 0x1b, 0x78, 0xf0, 0x97, 0x13, 0x70, 0x2e, 0xf0, + 0x20, 0xfd, 0x44, 0x7e, 0x22, 0x29, 0x27, 0x3c, 0xa1, 0xd2, 0xf9, 0x53, 0x1b, 0xc1, 0x8d, 0x89, + 0xcd, 0xba, 0xbe, 0x2b, 0x3f, 0xab, 0xca, 0x9f, 0xf5, 0xf9, 0x8d, 0xe0, 0x71, 0xb6, 0x17, 0x7a, + 0x09, 0xd4, 0xcd, 0xba, 0x4b, 0xaa, 0x45, 0xd4, 0x69, 0x4b, 0x06, 0x9e, 0xd6, 0x0d, 0x18, 0x21, + 0xe2, 0x2e, 0x71, 0xef, 0x7b, 0x39, 0xf1, 0xba, 0xc1, 0x98, 0x72, 0x6f, 0x2b, 0x70, 0x41, 0x0a, + 0xe5, 0xf7, 0xe7, 0x89, 0xc1, 0xed, 0x81, 0x9e, 0x18, 0x48, 0x09, 0x12, 0x3c, 0x3d, 0x78, 0xba, + 0xfb, 0x41, 0xb5, 0x98, 0x25, 0xe1, 0x27, 0x09, 0x7f, 0x19, 0x26, 0x82, 0x2b, 0x20, 0xb7, 0x6c, + 0x6b, 0xf1, 0x9b, 0x99, 0x51, 0xa9, 0xb9, 0x16, 0xda, 0x44, 0xeb, 0x0b, 0xf3, 0xb3, 0x35, 0x97, + 0x87, 0xc9, 0x8a, 0xfc, 0x5d, 0x9e, 0xb8, 0xbd, 0x88, 0x14, 0x6e, 0xcd, 0xef, 0x7f, 0x65, 0x7e, + 0x28, 0xf7, 0x51, 0xc8, 0x88, 0x5f, 0xd7, 0x09, 0x01, 0xc7, 0x38, 0x30, 0x9f, 0xfc, 0x36, 0x96, + 0xfe, 0x87, 0x0a, 0x3c, 0x22, 0x8a, 0xbf, 0x64, 0x79, 0x27, 0x9b, 0x36, 0xee, 0xe9, 0x9f, 0x83, + 0x14, 0x62, 0x8e, 0x63, 0xbf, 0x76, 0xc2, 0x6e, 0x23, 0x23, 0xc5, 0x97, 0xc8, 0xbf, 0x86, 0x0f, + 0x09, 0x6d, 0x71, 0xf0, 0xd3, 0xae, 0xcc, 0x3e, 0x05, 0xc3, 0x94, 0x5f, 0xd6, 0x6b, 0x3c, 0xa4, + 0xd7, 0x6f, 0x44, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x2b, 0xe9, 0x25, 0xdc, 0xad, 0x46, 0x8a, 0x2f, + 0xf1, 0xe0, 0x2b, 0xa6, 0x70, 0xff, 0x47, 0x22, 0x2a, 0x5e, 0xc9, 0x05, 0x48, 0x95, 0xc3, 0x32, + 0xd1, 0x7a, 0xae, 0x43, 0xb2, 0xe2, 0xd4, 0xc9, 0xef, 0xb0, 0x90, 0xdf, 0xcb, 0x65, 0x46, 0x66, + 0x3f, 0x9e, 0x7b, 0x19, 0x52, 0xa5, 0x13, 0xab, 0x51, 0x6f, 0x23, 0x9b, 0x3d, 0xb2, 0x67, 0x3b, + 0xe8, 0x18, 0x63, 0xf8, 0x73, 0xb9, 0x12, 0x4c, 0x55, 0x1c, 0xbb, 0x78, 0xea, 0x89, 0x75, 0x63, + 0x29, 0x94, 0x22, 0xec, 0x91, 0x0f, 0xf9, 0x02, 0x08, 0x16, 0x28, 0x0e, 0x7f, 0xe7, 0x9d, 0x79, + 0x65, 0xdf, 0xdf, 0x3e, 0xdf, 0x86, 0x47, 0x59, 0xfa, 0x74, 0x51, 0xad, 0xc4, 0x51, 0x8d, 0xb1, + 0xc7, 0xd4, 0x02, 0xdd, 0x26, 0xa6, 0xb3, 0x23, 0xe9, 0x1e, 0x4e, 0x33, 0xdc, 0x14, 0xf5, 0xd5, + 0x4c, 0x3d, 0x93, 0x66, 0x91, 0x74, 0x4b, 0x71, 0x74, 0x21, 0xcd, 0x9e, 0x84, 0x31, 0x7f, 0x4e, + 0x88, 0x06, 0x31, 0x53, 0x56, 0x16, 0x73, 0x90, 0x16, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, + 0xe1, 0xff, 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x32, 0xb4, 0x7d, 0x89, + 0x67, 0xd6, 0x35, 0xc0, 0xff, 0x95, 0xb5, 0xf4, 0x6c, 0xf2, 0xb3, 0xff, 0x64, 0x6e, 0x68, 0xf1, + 0x36, 0xe8, 0xdd, 0x1b, 0x9d, 0xfa, 0x08, 0x24, 0x0a, 0x98, 0xf2, 0x51, 0x48, 0x14, 0x8b, 0x9a, + 0x32, 0x3b, 0xf9, 0x37, 0xbe, 0x78, 0x21, 0x5d, 0x24, 0xdf, 0x45, 0xbe, 0x87, 0xbc, 0x62, 0x91, + 0x81, 0x9f, 0x87, 0x47, 0x22, 0x37, 0x4a, 0x31, 0xbe, 0x54, 0xa2, 0xf8, 0xf5, 0xf5, 0x2e, 0xfc, + 0xfa, 0x3a, 0xc1, 0x2b, 0x79, 0xfe, 0xc0, 0xb9, 0xa0, 0x47, 0x6c, 0x4b, 0x66, 0xeb, 0xc2, 0x03, + 0xee, 0x42, 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, + 0x97, 0x22, 0xf1, 0x47, 0xa1, 0xa7, 0xaa, 0xf2, 0x0a, 0xc1, 0x48, 0x4a, 0xbe, 0xc2, 0xeb, 0x91, + 0x24, 0x27, 0xc2, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, + 0xfe, 0x0a, 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x4a, 0x15, 0x98, 0x19, 0x88, 0x4b, + 0xe5, 0x4b, 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, + 0x49, 0x62, 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xce, 0x0d, 0x7d, 0xfb, 0xdd, 0xb9, 0xa1, + 0xff, 0xf6, 0xee, 0xdc, 0xd0, 0x77, 0xdf, 0x9d, 0x53, 0x7e, 0xf0, 0xee, 0x9c, 0xf2, 0xa3, 0x77, + 0xe7, 0x94, 0x3f, 0x7b, 0x77, 0x4e, 0x79, 0xf3, 0xc1, 0x9c, 0xf2, 0xb5, 0x07, 0x73, 0xca, 0xd7, + 0x1f, 0xcc, 0x29, 0xbf, 0xf7, 0x60, 0x4e, 0x79, 0xfb, 0xc1, 0x9c, 0x72, 0xff, 0xc1, 0x9c, 0xf2, + 0xed, 0x07, 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0x3f, 0x78, 0x30, 0x37, 0xf4, 0xa3, 0x07, 0x73, + 0xca, 0x9f, 0x3d, 0x98, 0x1b, 0x7a, 0xf3, 0x7b, 0x73, 0x43, 0x6f, 0x7d, 0x6f, 0x6e, 0xe8, 0x6b, + 0xdf, 0x9b, 0x53, 0xe0, 0x8f, 0x56, 0x21, 0xc7, 0xbe, 0x48, 0x26, 0x7c, 0xdb, 0xf5, 0x8a, 0x77, + 0x82, 0x48, 0x53, 0x70, 0x8d, 0xff, 0xa2, 0x93, 0x3f, 0x70, 0xc6, 0xaf, 0x95, 0xcd, 0x3e, 0xec, + 0x97, 0xd8, 0x72, 0xff, 0x7e, 0x18, 0x46, 0xf9, 0x66, 0x70, 0xd4, 0x6f, 0x42, 0xaf, 0x41, 0xea, + 0xc4, 0x6a, 0x98, 0x6d, 0xcb, 0x3b, 0x65, 0xbb, 0xa0, 0x8f, 0x2d, 0x05, 0x6a, 0xf3, 0x7d, 0xd3, + 0x17, 0x3b, 0x4d, 0xa7, 0xd3, 0x36, 0x7c, 0x51, 0xfd, 0x02, 0x64, 0x4e, 0x90, 0x75, 0x7c, 0xe2, + 0x55, 0x2d, 0xbb, 0x5a, 0x6b, 0x92, 0x6e, 0x79, 0xdc, 0x00, 0x3a, 0xb6, 0x69, 0x97, 0x9a, 0xf8, + 0x64, 0x75, 0xd3, 0x33, 0xc9, 0x5d, 0x7a, 0xc6, 0x20, 0x9f, 0xf5, 0x8b, 0x90, 0x69, 0x23, 0xb7, + 0xd3, 0xf0, 0xaa, 0x35, 0xa7, 0x63, 0x7b, 0xa4, 0x9f, 0x55, 0x8d, 0x34, 0x1d, 0x2b, 0xe1, 0x21, + 0xfd, 0x49, 0x18, 0xf7, 0xda, 0x1d, 0x54, 0x75, 0x6b, 0x8e, 0xe7, 0x36, 0x4d, 0x9b, 0xf4, 0xb3, + 0x29, 0x23, 0x83, 0x07, 0xf7, 0xd8, 0x18, 0xf9, 0x9b, 0x03, 0x35, 0xa7, 0x8d, 0xc8, 0xed, 0x74, + 0xc2, 0xa0, 0x07, 0xba, 0x06, 0xea, 0xab, 0xe8, 0x94, 0xdc, 0xb0, 0x25, 0x0d, 0xfc, 0x51, 0x7f, + 0x06, 0x46, 0xe8, 0x9f, 0xa3, 0x20, 0xdd, 0x35, 0x79, 0x76, 0xed, 0x5f, 0x1a, 0xdd, 0xa3, 0x35, + 0x98, 0x80, 0x7e, 0x0b, 0x46, 0x3d, 0xd4, 0x6e, 0x9b, 0x96, 0x4d, 0x6e, 0x9e, 0xd2, 0x2b, 0xf3, + 0x11, 0x66, 0xd8, 0xa7, 0x12, 0xe4, 0xe7, 0x5d, 0x0d, 0x2e, 0xaf, 0xaf, 0x41, 0x86, 0xc8, 0xad, + 0x54, 0xe9, 0x9f, 0xec, 0x48, 0xf7, 0x8c, 0xe7, 0x34, 0x95, 0xe3, 0x8f, 0x0a, 0x38, 0x8c, 0xfe, + 0xb4, 0xdd, 0x38, 0x39, 0xed, 0x93, 0x11, 0xa7, 0x25, 0xa5, 0x77, 0x85, 0xb4, 0x8d, 0xf4, 0xd4, + 0x8c, 0x87, 0xfe, 0xf8, 0xdd, 0x36, 0x64, 0x44, 0xbd, 0xb8, 0x19, 0x68, 0xfb, 0x43, 0xcc, 0xf0, + 0x74, 0xf0, 0x73, 0xee, 0x3d, 0xac, 0x40, 0xe7, 0xf3, 0x89, 0x9b, 0xca, 0xec, 0x2e, 0x68, 0xe1, + 0xf3, 0x45, 0x50, 0x5e, 0x96, 0x29, 0x35, 0xf1, 0x62, 0xc9, 0x46, 0x79, 0xc0, 0x98, 0x7b, 0x01, + 0x46, 0x68, 0xfc, 0xe8, 0x69, 0x18, 0x0d, 0x7e, 0x35, 0x31, 0x05, 0xc9, 0xdd, 0x83, 0xca, 0x1e, + 0xfd, 0xf9, 0xd3, 0xbd, 0xad, 0xc2, 0xee, 0xde, 0xfe, 0x66, 0xe9, 0xe3, 0x5a, 0x42, 0x9f, 0x84, + 0x74, 0x71, 0x73, 0x6b, 0xab, 0x5a, 0x2c, 0x6c, 0x6e, 0x95, 0xef, 0x69, 0x6a, 0x6e, 0x0e, 0x46, + 0xa8, 0x9e, 0xe4, 0x67, 0xdc, 0x3a, 0xb6, 0x7d, 0xca, 0xdb, 0x07, 0x72, 0x90, 0xfb, 0x86, 0x0e, + 0xa3, 0x85, 0x46, 0x63, 0xdb, 0x6c, 0xb9, 0xfa, 0x4b, 0x30, 0x45, 0x7f, 0x50, 0x62, 0xdf, 0x59, + 0x27, 0xbf, 0x36, 0x88, 0x8b, 0x83, 0xc2, 0x7e, 0xc6, 0x3e, 0xb8, 0x6e, 0x26, 0xbe, 0xd4, 0x25, + 0x4b, 0x0d, 0xdc, 0xcd, 0xa1, 0xef, 0x83, 0xc6, 0x07, 0x37, 0x1a, 0x8e, 0xe9, 0x61, 0xde, 0x04, + 0xfb, 0x31, 0xc0, 0xde, 0xbc, 0x5c, 0x94, 0xd2, 0x76, 0x31, 0xe8, 0x1f, 0x83, 0xd4, 0xa6, 0xed, + 0x5d, 0x5b, 0xc1, 0x6c, 0xfc, 0x4f, 0xac, 0x74, 0xb3, 0x71, 0x11, 0xca, 0xe2, 0x23, 0x18, 0xfa, + 0xfa, 0x2a, 0x46, 0x27, 0xfb, 0xa1, 0x89, 0x48, 0x80, 0x26, 0x87, 0xfa, 0x0b, 0x30, 0x86, 0xef, + 0x4e, 0xe8, 0xc9, 0x87, 0x79, 0xeb, 0xda, 0x05, 0xf7, 0x65, 0x28, 0x3e, 0xc0, 0x70, 0x02, 0x7a, + 0xfe, 0x91, 0xbe, 0x04, 0x82, 0x02, 0x01, 0x06, 0x13, 0xec, 0xf9, 0x1a, 0x8c, 0xf6, 0x24, 0xd8, + 0x0b, 0x69, 0xb0, 0x27, 0x6a, 0xb0, 0xe7, 0x6b, 0x90, 0xea, 0x4b, 0x20, 0x6a, 0xe0, 0x1f, 0xeb, + 0x45, 0x80, 0x0d, 0xeb, 0x0d, 0x54, 0xa7, 0x2a, 0xd0, 0x3f, 0xc0, 0x92, 0x8b, 0x60, 0x08, 0x84, + 0x28, 0x85, 0x80, 0xd2, 0xcb, 0x90, 0xde, 0x3b, 0x0a, 0x48, 0xa0, 0x2b, 0x8f, 0x7d, 0x35, 0x8e, + 0x42, 0x2c, 0x22, 0xce, 0x57, 0x85, 0x5e, 0x4c, 0xba, 0xbf, 0x2a, 0xc2, 0xd5, 0x08, 0xa8, 0x40, + 0x15, 0x4a, 0x92, 0x89, 0x51, 0x45, 0x60, 0x11, 0x71, 0xb8, 0x18, 0x16, 0x1d, 0x07, 0x4b, 0xb2, + 0xaa, 0x34, 0x1f, 0x41, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, 0x31, 0x78, + 0xa2, 0xb7, 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x16, 0xf3, 0x8c, 0xbc, 0xd0, 0x8a, 0x79, 0x26, + 0x63, 0xf3, 0x8c, 0x8b, 0x86, 0xf2, 0x8c, 0x0f, 0xeb, 0x9f, 0x80, 0x49, 0x3e, 0x86, 0xcb, 0x13, + 0x26, 0xd5, 0xd8, 0x9f, 0xa8, 0xea, 0x4d, 0xca, 0x24, 0x29, 0x67, 0x18, 0xaf, 0x57, 0x60, 0x82, + 0x0f, 0x6d, 0xbb, 0xe4, 0x72, 0xa7, 0xd8, 0x9f, 0x7f, 0xe8, 0xcd, 0x48, 0x05, 0x29, 0x61, 0x08, + 0x3d, 0xbb, 0x0e, 0x33, 0xd1, 0xd5, 0x48, 0x2c, 0xbf, 0x63, 0xb4, 0xfc, 0x9e, 0x13, 0xcb, 0xaf, + 0x22, 0x96, 0xef, 0x12, 0x3c, 0x12, 0x59, 0x7b, 0xe2, 0x48, 0x12, 0x22, 0xc9, 0x6d, 0x18, 0x97, + 0x4a, 0x8e, 0x08, 0x1e, 0x8e, 0x00, 0x0f, 0x77, 0x83, 0x83, 0xd0, 0x8a, 0x58, 0x3d, 0x24, 0xb0, + 0x2a, 0x82, 0x3f, 0x06, 0x13, 0x72, 0xbd, 0x11, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, + 0xb9, 0x93, 0x11, 0xe8, 0x64, 0x08, 0xbd, 0xd7, 0xf3, 0xdc, 0x53, 0x11, 0xe8, 0xa9, 0x08, 0x74, + 0xf4, 0xb9, 0xf5, 0x08, 0xb4, 0x2e, 0xa2, 0x9f, 0x83, 0xc9, 0x50, 0x89, 0x11, 0xe1, 0xa3, 0x11, + 0xf0, 0x51, 0x11, 0xfe, 0x3c, 0x68, 0xe1, 0xe2, 0x22, 0xe2, 0x27, 0x23, 0xf0, 0x93, 0x51, 0xa7, + 0x8f, 0xd6, 0x7e, 0x24, 0x02, 0x3e, 0x12, 0x79, 0xfa, 0x68, 0xbc, 0x16, 0x81, 0xd7, 0x44, 0x7c, + 0x1e, 0x32, 0x62, 0x35, 0x11, 0xb1, 0xa9, 0x08, 0x6c, 0x2a, 0x6c, 0x77, 0xa9, 0x98, 0xc4, 0x45, + 0xfa, 0x58, 0x8f, 0x74, 0x91, 0x4a, 0x48, 0x1c, 0x49, 0x46, 0x24, 0xf9, 0x24, 0x9c, 0x8b, 0x2a, + 0x19, 0x11, 0x1c, 0x0b, 0x22, 0xc7, 0x04, 0xee, 0x11, 0x83, 0x66, 0xcf, 0x6c, 0x85, 0x1a, 0xa7, + 0xd9, 0x4f, 0xc1, 0x74, 0x44, 0xe1, 0x88, 0xa0, 0x5d, 0x92, 0xbb, 0xb1, 0xac, 0x40, 0x4b, 0x8a, + 0x80, 0x65, 0x1f, 0xef, 0x3a, 0x96, 0xed, 0x89, 0x5d, 0xd9, 0x37, 0xa7, 0x61, 0x82, 0x95, 0xa7, + 0x9d, 0x76, 0x1d, 0xb5, 0x51, 0x5d, 0xff, 0x4b, 0xbd, 0x7b, 0xa7, 0xe5, 0xee, 0xa2, 0xc6, 0x50, + 0x67, 0x68, 0xa1, 0x3e, 0xd5, 0xb3, 0x85, 0xba, 0x12, 0x4f, 0x1f, 0xd7, 0x49, 0x95, 0xba, 0x3a, + 0xa9, 0xa7, 0x7b, 0x93, 0xf6, 0x6a, 0xa8, 0x4a, 0x5d, 0x0d, 0x55, 0x7f, 0x92, 0xc8, 0xbe, 0x6a, + 0xa3, 0xbb, 0xaf, 0x5a, 0xe8, 0xcd, 0xd2, 0xbb, 0xbd, 0xda, 0xe8, 0x6e, 0xaf, 0x62, 0x78, 0xa2, + 0xbb, 0xac, 0x8d, 0xee, 0x2e, 0xab, 0x0f, 0x4f, 0xef, 0x66, 0x6b, 0xa3, 0xbb, 0xd9, 0x8a, 0xe1, + 0x89, 0xee, 0xb9, 0x36, 0x23, 0x7a, 0xae, 0x67, 0x7a, 0x13, 0xf5, 0x6b, 0xbd, 0xb6, 0xa2, 0x5a, + 0xaf, 0xc5, 0x3e, 0x4a, 0xf5, 0xed, 0xc0, 0x36, 0x23, 0x3a, 0xb0, 0x38, 0xc5, 0x7a, 0x34, 0x62, + 0x5b, 0x51, 0x8d, 0x58, 0xac, 0x62, 0xbd, 0xfa, 0xb1, 0xbf, 0x10, 0xee, 0xc7, 0x2e, 0xf7, 0x66, + 0x8a, 0x6e, 0xcb, 0x36, 0xba, 0xdb, 0xb2, 0x85, 0xb8, 0x9c, 0x8b, 0xea, 0xce, 0x3e, 0xd5, 0xb3, + 0x3b, 0x1b, 0x20, 0x85, 0xe3, 0x9a, 0xb4, 0x97, 0x7b, 0x35, 0x69, 0x4b, 0xf1, 0xdc, 0xfd, 0x7b, + 0xb5, 0x83, 0x1e, 0xbd, 0xda, 0xb3, 0xf1, 0xc4, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, + 0x6c, 0x1f, 0xb6, 0x6c, 0x3f, 0xfb, 0x96, 0x2d, 0x9f, 0xfc, 0xdc, 0x57, 0xe6, 0x95, 0xdc, 0x7f, + 0x55, 0xfd, 0xbf, 0x9c, 0xf5, 0x92, 0xe5, 0x9d, 0xe0, 0xf2, 0xb6, 0x0d, 0x19, 0xf2, 0x37, 0x2f, + 0x9a, 0x66, 0xab, 0x65, 0xd9, 0xc7, 0xac, 0x67, 0x5b, 0xec, 0xde, 0x4a, 0x64, 0x00, 0xf2, 0x57, + 0x43, 0xb6, 0xa9, 0x30, 0x5b, 0x6e, 0xec, 0x60, 0x44, 0xbf, 0x0b, 0xe9, 0xa6, 0x7b, 0xec, 0xb3, + 0x25, 0xba, 0x16, 0xc2, 0x10, 0x1b, 0xbd, 0xd2, 0x80, 0x0c, 0x9a, 0xfe, 0x00, 0x56, 0xed, 0xf0, + 0xd4, 0x0b, 0x54, 0x53, 0xe3, 0x54, 0xc3, 0x3e, 0x95, 0x55, 0x3b, 0x0c, 0x46, 0x70, 0xd8, 0x86, + 0x75, 0x8f, 0xab, 0x74, 0x52, 0xf0, 0xbc, 0x04, 0x93, 0x21, 0x6d, 0x23, 0x72, 0xfe, 0x21, 0x7c, + 0x83, 0x15, 0x0b, 0x6b, 0x1e, 0x97, 0x13, 0x62, 0x40, 0xe6, 0x9e, 0x80, 0x71, 0x89, 0x5b, 0xcf, + 0x80, 0x72, 0xc4, 0xbe, 0x4d, 0xa9, 0x1c, 0xe5, 0xbe, 0xac, 0x40, 0x9a, 0xbd, 0x4a, 0xb0, 0x6b, + 0x5a, 0x6d, 0xfd, 0x45, 0x48, 0x36, 0xf8, 0x37, 0x9a, 0x1e, 0xf6, 0xdb, 0xb3, 0x84, 0x41, 0xdf, + 0x80, 0xe1, 0xb6, 0xff, 0x8d, 0xa7, 0x87, 0xfa, 0x4a, 0x2c, 0x81, 0xe7, 0xee, 0x2b, 0x30, 0xc5, + 0xde, 0x74, 0x75, 0xd9, 0xfb, 0xcf, 0x66, 0x6b, 0xf6, 0x1b, 0x0a, 0x8c, 0xf9, 0x47, 0xfa, 0x21, + 0x4c, 0xf8, 0x07, 0xf4, 0x1d, 0x7b, 0x1a, 0xa9, 0x79, 0xc1, 0xc2, 0x5d, 0x1c, 0x4b, 0x11, 0x9f, + 0xe8, 0xc3, 0x28, 0xba, 0x26, 0xcb, 0x83, 0xb3, 0x05, 0x98, 0x8e, 0x10, 0x3b, 0xcb, 0x82, 0x9c, + 0xbb, 0x08, 0x63, 0x15, 0xc7, 0xa3, 0x3f, 0x9c, 0xa3, 0x9f, 0x13, 0x9e, 0x2a, 0x14, 0x13, 0xda, + 0x10, 0x01, 0x2f, 0x5e, 0x84, 0x51, 0x96, 0xfd, 0xfa, 0x08, 0x24, 0xb6, 0x0b, 0xda, 0x10, 0xf9, + 0xbf, 0xa8, 0x29, 0xe4, 0xff, 0x92, 0x96, 0x28, 0x6e, 0x3d, 0xc4, 0x93, 0xa6, 0xa1, 0x5e, 0x4f, + 0x9a, 0x0e, 0x47, 0xa8, 0x79, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xc2, 0xb8, 0x10, + 0x2d, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1983,6 +2022,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2461,6 +2570,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3080,6 +3212,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3088,26 +3230,9 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -3156,7 +3281,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -3577,6 +3702,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -3596,14 +3733,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3611,43 +3748,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -3676,9 +3813,11 @@ func (m *Message) Size() (n int) { n += 5 } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -3691,8 +3830,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3707,8 +3847,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3844,7 +3985,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3863,8 +4008,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3990,7 +4136,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4009,8 +4159,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4035,8 +4186,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4044,7 +4196,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4092,6 +4248,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -4640,6 +4807,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4648,8 +4825,8 @@ func valueToStringTheproto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Message) Unmarshal(data []byte) error { - l := len(data) +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4661,7 +4838,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4689,7 +4866,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4704,7 +4881,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(data[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -4718,7 +4895,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Hilarity |= (Message_Humour(b) & 0x7F) << shift if b < 0x80 { @@ -4737,7 +4914,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.HeightInCm |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4756,7 +4933,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4770,7 +4947,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } @@ -4787,7 +4964,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.ResultCount |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4806,7 +4983,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4823,31 +5000,73 @@ func (m *Message) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 m.Score = float32(math.Float32frombits(v)) case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.Key = append(m.Key, v) case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) @@ -4860,7 +5079,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4877,7 +5096,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Nested == nil { m.Nested = &Nested{} } - if err := m.Nested.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4893,7 +5112,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4915,7 +5134,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4930,62 +5149,67 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.Terrain == nil { + m.Terrain = make(map[int64]*Nested) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Terrain[mapkey] = mapvalue + } else { + var mapvalue *Nested + m.Terrain[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -4999,7 +5223,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5016,7 +5240,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Proto2Field == nil { m.Proto2Field = &test.NinOptNative{} } - if err := m.Proto2Field.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5032,7 +5256,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5054,7 +5278,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5069,70 +5293,75 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.Proto2Value == nil { + m.Proto2Value = make(map[int64]*test.NinOptEnum) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Proto2Value[mapkey] = mapvalue + } else { + var mapvalue *test.NinOptEnum + m.Proto2Value[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - m.Proto2Value[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { + if skippy < 0 { return ErrInvalidLengthTheproto3 } if (iNdEx + skippy) > l { @@ -5147,8 +5376,8 @@ func (m *Message) Unmarshal(data []byte) error { } return nil } -func (m *Nested) Unmarshal(data []byte) error { - l := len(data) +func (m *Nested) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5160,7 +5389,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5188,7 +5417,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5203,11 +5432,11 @@ func (m *Nested) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bunny = string(data[iNdEx:postIndex]) + m.Bunny = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -5226,8 +5455,8 @@ func (m *Nested) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5239,7 +5468,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5267,7 +5496,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5289,7 +5518,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5304,7 +5533,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5319,41 +5548,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -5367,7 +5601,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5389,7 +5623,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5404,7 +5638,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5419,37 +5653,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5463,7 +5702,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5485,7 +5724,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5500,47 +5739,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5554,7 +5798,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5576,7 +5820,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5591,47 +5835,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5645,7 +5894,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5667,7 +5916,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5682,47 +5931,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -5736,7 +5990,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5758,7 +6012,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5773,47 +6027,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -5827,7 +6086,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5849,7 +6108,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5864,7 +6123,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5873,42 +6132,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -5922,7 +6186,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5944,7 +6208,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5959,7 +6223,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5968,42 +6232,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6017,7 +6286,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6039,7 +6308,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6051,38 +6320,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6096,7 +6370,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6118,7 +6392,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6130,38 +6404,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6175,7 +6454,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6197,7 +6476,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6209,46 +6488,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6262,7 +6546,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6284,7 +6568,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6296,46 +6580,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -6349,7 +6638,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6371,7 +6660,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6386,7 +6675,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6394,41 +6683,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6442,7 +6736,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6464,7 +6758,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6479,7 +6773,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6494,9 +6788,63 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6504,56 +6852,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - m.StringMap[mapkey] = mapvalue - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6575,7 +6874,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6590,7 +6889,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6605,53 +6904,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6665,7 +6969,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6687,7 +6991,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6702,7 +7006,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6717,42 +7021,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -6766,7 +7075,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6788,7 +7097,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6803,7 +7112,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6818,61 +7127,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -6891,8 +7205,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6904,7 +7218,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6932,7 +7246,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6954,7 +7268,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6969,7 +7283,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6984,41 +7298,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -7032,7 +7351,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7054,7 +7373,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7069,7 +7388,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7084,37 +7403,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -7128,7 +7452,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7150,7 +7474,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7165,51 +7489,56 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - m.Int32Map[mapkey] = mapvalue - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7219,7 +7548,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7241,7 +7570,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7256,47 +7585,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -7310,7 +7644,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7332,7 +7666,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7347,47 +7681,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -7401,7 +7740,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7423,7 +7762,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7438,47 +7777,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -7492,7 +7836,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7514,7 +7858,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7529,7 +7873,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -7538,42 +7882,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -7587,7 +7936,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7609,7 +7958,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7624,7 +7973,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7633,42 +7982,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7682,7 +8036,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7704,7 +8058,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7716,38 +8070,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7761,7 +8120,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7783,7 +8142,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7795,38 +8154,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7840,7 +8204,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7848,41 +8212,13 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + return ErrInvalidLengthTheproto3 } - var mapkey uint64 - if (iNdEx + 8) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7890,30 +8226,63 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 + var mapkey uint64 if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - m.Fixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 12: if wireType != 2 { @@ -7927,7 +8296,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7949,7 +8318,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7961,46 +8330,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -8014,7 +8388,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8036,7 +8410,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8051,7 +8425,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8059,41 +8433,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -8107,7 +8486,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8129,7 +8508,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8144,7 +8523,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8159,52 +8538,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -8218,7 +8602,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8240,7 +8624,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8255,7 +8639,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8270,53 +8654,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -8330,7 +8719,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8352,7 +8741,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8367,7 +8756,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8382,42 +8771,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -8431,7 +8825,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8453,7 +8847,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8468,7 +8862,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8483,61 +8877,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -8556,8 +8955,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func (m *MessageWithMap) Unmarshal(data []byte) error { - l := len(data) +func (m *MessageWithMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8569,7 +8968,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8597,7 +8996,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8619,7 +9018,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8634,57 +9033,62 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.NameMapping == nil { + m.NameMapping = make(map[int32]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.NameMapping[mapkey] = mapvalue + } else { + var mapvalue string + m.NameMapping[mapkey] = mapvalue } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) - } - m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -8698,7 +9102,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8720,7 +9124,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8735,7 +9139,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8744,55 +9148,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if m.MsgMapping == nil { + m.MsgMapping = make(map[int64]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MsgMapping[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.MsgMapping[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -8806,7 +9215,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8828,7 +9237,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8843,7 +9252,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8851,55 +9260,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.ByteMapping == nil { + m.ByteMapping = make(map[bool][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.ByteMapping[mapkey] = mapvalue + } else { + var mapvalue []byte + m.ByteMapping[mapkey] = mapvalue } - m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -8918,8 +9332,8 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } return nil } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8931,7 +9345,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8956,18 +9370,18 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 m.F = float64(math.Float64frombits(v)) default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -8986,8 +9400,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *Uint128Pair) Unmarshal(data []byte) error { - l := len(data) +func (m *Uint128Pair) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8999,7 +9413,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9027,7 +9441,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9041,7 +9455,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9057,7 +9471,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9073,13 +9487,13 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Right = &v - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -9098,8 +9512,8 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9111,7 +9525,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9129,7 +9543,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -9148,8 +9562,8 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9161,7 +9575,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9189,7 +9603,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9211,7 +9625,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9226,7 +9640,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9241,45 +9655,162 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if m.NestedMapField == nil { + m.NestedMapField = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.NestedMapField[mapkey] = mapvalue + } else { + var mapvalue float64 + m.NestedMapField[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotPacked) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotPacked: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 5: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.NestedMapField[mapkey] = mapvalue - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3(data[iNdEx:]) + skippy, err := skipTheproto3(dAtA[iNdEx:]) if err != nil { return err } @@ -9298,8 +9829,8 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { } return nil } -func skipTheproto3(data []byte) (n int, err error) { - l := len(data) +func skipTheproto3(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -9310,7 +9841,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9328,7 +9859,7 @@ func skipTheproto3(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -9345,7 +9876,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9368,7 +9899,7 @@ func skipTheproto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9379,7 +9910,7 @@ func skipTheproto3(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipTheproto3(data[start:]) + next, err := skipTheproto3(dAtA[start:]) if err != nil { return 0, err } @@ -9403,106 +9934,109 @@ var ( ErrIntOverflowTheproto3 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unmarshaler/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1587 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0x4b, 0x6f, 0xdb, 0xc6, - 0x16, 0x36, 0x25, 0x59, 0x8f, 0xa3, 0x17, 0x3d, 0xc9, 0xbd, 0xd0, 0x35, 0x70, 0x6d, 0x47, 0x01, - 0x12, 0x27, 0xb8, 0x91, 0x73, 0x9d, 0xb4, 0x4d, 0xdd, 0xb4, 0xa9, 0xa5, 0x58, 0x88, 0x1b, 0x5b, - 0x71, 0x25, 0x3b, 0x6e, 0x11, 0xa0, 0x06, 0x65, 0x53, 0x12, 0x51, 0x89, 0x34, 0xf8, 0x08, 0xea, - 0x5d, 0x7e, 0x46, 0x77, 0x45, 0x77, 0x5d, 0x16, 0x59, 0x14, 0x5d, 0xb6, 0x3b, 0x2f, 0x0b, 0x74, - 0x53, 0x74, 0x11, 0x24, 0xe9, 0x26, 0xcb, 0x2c, 0xb3, 0xec, 0x3c, 0x48, 0x6a, 0x48, 0x0d, 0xc5, - 0xa6, 0x9b, 0x6e, 0xbc, 0x18, 0x88, 0x73, 0xf8, 0x7d, 0xdf, 0x9c, 0x19, 0xce, 0x1c, 0x7e, 0xa0, - 0xa0, 0x7a, 0x68, 0x8c, 0xba, 0x86, 0xb5, 0xe2, 0xe8, 0x23, 0xc5, 0xb4, 0x06, 0xca, 0x50, 0x35, - 0x57, 0xec, 0x81, 0x7a, 0x6c, 0x1a, 0xb6, 0x71, 0xa3, 0x46, 0x7f, 0x50, 0xce, 0x0f, 0xcc, 0x5f, - 0xeb, 0x6b, 0xf6, 0xc0, 0xe9, 0xd6, 0x30, 0x6b, 0xa5, 0x6f, 0xf4, 0x8d, 0x15, 0x1a, 0xef, 0x3a, - 0x3d, 0xda, 0xa3, 0x1d, 0x7a, 0xc5, 0x98, 0xf3, 0xef, 0x45, 0xc2, 0x6d, 0xd5, 0xb2, 0x57, 0xdc, - 0xb1, 0xbb, 0x86, 0x3d, 0x20, 0x83, 0x92, 0x18, 0x23, 0x56, 0x7f, 0x9e, 0x85, 0xcc, 0xb6, 0x6a, - 0x59, 0x4a, 0x5f, 0x45, 0x08, 0x52, 0xba, 0x32, 0x52, 0x2b, 0xd2, 0x92, 0xb4, 0x9c, 0x6b, 0xd3, - 0x6b, 0xf4, 0x0e, 0x64, 0x07, 0xda, 0x50, 0x31, 0x35, 0xfb, 0xa4, 0x92, 0xc0, 0xf1, 0xd2, 0xea, - 0x7f, 0x6a, 0xe3, 0xb4, 0x5d, 0x66, 0xed, 0x9e, 0x33, 0x32, 0x1c, 0xb3, 0xed, 0x43, 0xd1, 0x12, - 0x14, 0x06, 0xaa, 0xd6, 0x1f, 0xd8, 0x07, 0x9a, 0x7e, 0x70, 0x38, 0xaa, 0x24, 0x31, 0xb5, 0xd8, - 0x06, 0x16, 0xdb, 0xd4, 0x1b, 0x23, 0x32, 0xd8, 0x91, 0x62, 0x2b, 0x95, 0x14, 0xbe, 0x53, 0x68, - 0xd3, 0x6b, 0x74, 0x01, 0x0a, 0xa6, 0x6a, 0x39, 0x43, 0xfb, 0xe0, 0xd0, 0x70, 0x74, 0xbb, 0x92, - 0xc1, 0xf7, 0x92, 0xed, 0x3c, 0x8b, 0x35, 0x48, 0x08, 0x5d, 0x84, 0xa2, 0x6d, 0x3a, 0xea, 0x81, - 0x75, 0x68, 0xd8, 0xd6, 0x48, 0xd1, 0x2b, 0x59, 0x8c, 0xc9, 0xb6, 0x0b, 0x24, 0xd8, 0x71, 0x63, - 0xe8, 0x3c, 0xcc, 0xe2, 0xfb, 0xa6, 0x5a, 0xc9, 0xe1, 0x9b, 0x89, 0x36, 0xeb, 0x20, 0x19, 0x92, - 0x5f, 0xaa, 0x27, 0x95, 0xd9, 0xa5, 0xe4, 0x72, 0xaa, 0x4d, 0x2e, 0xd1, 0x15, 0x48, 0xeb, 0x78, - 0x29, 0xd4, 0xa3, 0x4a, 0x1a, 0x03, 0xf3, 0xab, 0x73, 0xdc, 0xd4, 0x5a, 0xf4, 0x46, 0xdb, 0x05, - 0xa0, 0xf7, 0x21, 0x63, 0xab, 0xa6, 0xa9, 0x68, 0x7a, 0x05, 0xb0, 0x40, 0x7e, 0x75, 0x51, 0xb0, - 0x0c, 0xbb, 0x0c, 0xb1, 0xa1, 0xdb, 0xe6, 0x49, 0xdb, 0xc3, 0xe3, 0x25, 0x2c, 0x50, 0xdc, 0xea, - 0x41, 0x4f, 0x53, 0x87, 0x47, 0x95, 0x3c, 0x1d, 0x0b, 0xd5, 0xe8, 0x53, 0x68, 0x69, 0xfa, 0x83, - 0x63, 0xbb, 0xa5, 0xd8, 0xda, 0x63, 0xb5, 0x9d, 0x67, 0xb8, 0x26, 0x81, 0xa1, 0xa6, 0x4f, 0x7b, - 0xac, 0x0c, 0x1d, 0xb5, 0x52, 0xa4, 0xc3, 0x5e, 0x14, 0x0c, 0xbb, 0x43, 0x61, 0x0f, 0x09, 0x8a, - 0x0d, 0xed, 0xea, 0xd0, 0xc8, 0xfc, 0x36, 0x14, 0xf8, 0xbc, 0xbc, 0x65, 0x90, 0xe8, 0xda, 0xd2, - 0x65, 0xb8, 0x0c, 0xb3, 0x6c, 0x88, 0x44, 0xd4, 0x2a, 0xb0, 0xfb, 0x6b, 0x89, 0x5b, 0xd2, 0xfc, - 0x0e, 0xc8, 0xe1, 0xf1, 0x04, 0x92, 0x97, 0x82, 0x92, 0x32, 0x3f, 0xd9, 0x0d, 0xdd, 0x19, 0x71, - 0x8a, 0xd5, 0x3b, 0x90, 0x66, 0xfb, 0x07, 0xe5, 0x21, 0xb3, 0xd7, 0xba, 0xdf, 0x7a, 0xb0, 0xdf, - 0x92, 0x67, 0x50, 0x16, 0x52, 0x3b, 0x7b, 0xad, 0x8e, 0x2c, 0xa1, 0x22, 0xe4, 0x3a, 0x5b, 0xeb, - 0x3b, 0x9d, 0xdd, 0xcd, 0xc6, 0x7d, 0x39, 0x81, 0xca, 0x90, 0xaf, 0x6f, 0x6e, 0x6d, 0x1d, 0xd4, - 0xd7, 0x37, 0xb7, 0x36, 0x3e, 0x97, 0x93, 0xd5, 0x05, 0x48, 0xb3, 0x3c, 0xc9, 0x83, 0xef, 0x3a, - 0xba, 0x7e, 0xe2, 0x6e, 0x61, 0xd6, 0xa9, 0x3e, 0x45, 0x90, 0x59, 0x1f, 0x0e, 0xb7, 0x95, 0x63, - 0x0b, 0xed, 0xc3, 0x5c, 0xc7, 0x36, 0x35, 0xbd, 0xbf, 0x6b, 0xdc, 0x35, 0x9c, 0xee, 0x50, 0xc5, - 0x51, 0x8c, 0x26, 0x4b, 0x7b, 0x85, 0x9b, 0xb7, 0x0b, 0xaf, 0x4d, 0x60, 0xd9, 0x02, 0xcf, 0x59, - 0xe1, 0x38, 0xda, 0x05, 0xd9, 0x03, 0x37, 0x87, 0x86, 0x62, 0x13, 0xdd, 0x04, 0xd5, 0x5d, 0x9e, - 0xa2, 0xeb, 0x41, 0x99, 0xac, 0x6c, 0x85, 0xc2, 0xe8, 0x36, 0x64, 0x37, 0x75, 0xfb, 0xc6, 0x2a, - 0x51, 0x4b, 0x52, 0xb5, 0x25, 0x81, 0x9a, 0x07, 0x61, 0x2a, 0x59, 0xcd, 0xed, 0xba, 0xec, 0x77, - 0x6f, 0x12, 0x76, 0x6a, 0x1a, 0x9b, 0x42, 0xc6, 0x6c, 0xda, 0x45, 0x77, 0x20, 0xb7, 0xe7, 0x49, - 0xd1, 0x53, 0x93, 0x5f, 0xbd, 0x20, 0xa0, 0xfb, 0x18, 0xc6, 0xcf, 0x39, 0xfe, 0xf0, 0xae, 0x00, - 0x1b, 0x3f, 0x3d, 0x55, 0x80, 0x4b, 0x80, 0x0a, 0xf8, 0x19, 0x74, 0xfc, 0x0c, 0x32, 0x91, 0x02, - 0x9d, 0x50, 0x06, 0x16, 0x9f, 0x41, 0xc7, 0xcf, 0x20, 0x3b, 0x55, 0x80, 0xcf, 0xc0, 0xf2, 0x33, - 0xa8, 0x03, 0x34, 0xb5, 0xaf, 0xd4, 0x23, 0x96, 0x42, 0x8e, 0x2a, 0x54, 0x05, 0x0a, 0x63, 0x10, - 0x93, 0x80, 0x9e, 0x1f, 0x40, 0x1b, 0x90, 0xef, 0x8c, 0xbb, 0x6e, 0xf9, 0xb8, 0x28, 0x4a, 0xa3, - 0x17, 0x52, 0xc9, 0x5b, 0x9c, 0x8c, 0x97, 0x0a, 0x9b, 0x4c, 0x7e, 0x7a, 0x2a, 0xdc, 0x6c, 0x58, - 0x2a, 0x6c, 0x3a, 0x7e, 0x2a, 0x4c, 0xa4, 0x10, 0x93, 0x0a, 0xa7, 0xe2, 0xa6, 0xc2, 0x64, 0x70, - 0x31, 0xac, 0x1b, 0x06, 0x41, 0xba, 0x55, 0x69, 0x51, 0x20, 0xe1, 0x22, 0xdc, 0x62, 0xd8, 0x65, - 0x3d, 0xfa, 0x44, 0xe8, 0x26, 0x27, 0xe4, 0x52, 0xf4, 0x13, 0xf1, 0x30, 0xde, 0x13, 0xf1, 0xfa, - 0xfc, 0x39, 0xab, 0x9f, 0xe0, 0xaa, 0x42, 0x74, 0xca, 0xb1, 0xe7, 0xcc, 0x83, 0x86, 0xce, 0x99, - 0x17, 0x46, 0x9f, 0x42, 0xd9, 0x83, 0x92, 0xf2, 0x44, 0x44, 0x65, 0x2a, 0x7a, 0x79, 0x8a, 0xa8, - 0x8b, 0x64, 0x9a, 0x65, 0x2b, 0x18, 0x45, 0x2d, 0x28, 0x79, 0xc0, 0x6d, 0x8b, 0x4e, 0x77, 0x8e, - 0x2a, 0x5e, 0x9a, 0xa2, 0xc8, 0x80, 0x4c, 0xb0, 0x64, 0x05, 0x82, 0xf3, 0x77, 0xe1, 0xdf, 0xe2, - 0x6a, 0xc4, 0x97, 0xdf, 0x1c, 0x2b, 0xbf, 0xe7, 0xf9, 0xf2, 0x2b, 0xf1, 0xe5, 0xbb, 0x01, 0xff, - 0x12, 0xd6, 0x9e, 0x38, 0x91, 0x04, 0x2f, 0xf2, 0x01, 0x14, 0x03, 0x25, 0x87, 0x27, 0xcf, 0x0a, - 0xc8, 0xb3, 0x93, 0xe4, 0xf1, 0xd6, 0x12, 0xbc, 0x3d, 0x02, 0xe4, 0x24, 0x4f, 0xbe, 0x0d, 0xa5, - 0x60, 0xbd, 0xe1, 0xd9, 0x45, 0x01, 0xbb, 0x28, 0x60, 0x8b, 0xc7, 0x4e, 0x09, 0xd8, 0xa9, 0x10, - 0xbb, 0x13, 0x39, 0xf6, 0x9c, 0x80, 0x3d, 0x27, 0x60, 0x8b, 0xc7, 0x46, 0x02, 0x36, 0xe2, 0xd9, - 0x1f, 0x42, 0x39, 0x54, 0x62, 0x78, 0x7a, 0x46, 0x40, 0xcf, 0xf0, 0xf4, 0x8f, 0xf0, 0xa1, 0xe9, - 0x45, 0xf3, 0xcb, 0x02, 0x7e, 0x59, 0x34, 0xbc, 0x38, 0xfb, 0xb4, 0x80, 0x9e, 0x16, 0x0e, 0x2f, - 0xe6, 0xcb, 0x02, 0xbe, 0xcc, 0xf3, 0xd7, 0xa0, 0xc0, 0x57, 0x13, 0x9e, 0x9b, 0x15, 0x70, 0xb3, - 0xe1, 0x75, 0x0f, 0x14, 0x93, 0xb8, 0x9d, 0x9e, 0x8b, 0x38, 0x2e, 0x81, 0x12, 0x12, 0x27, 0x52, - 0xe0, 0x45, 0x1e, 0xc2, 0x79, 0x51, 0xc9, 0x10, 0x68, 0x2c, 0xf3, 0x1a, 0x25, 0xe2, 0x11, 0xc7, - 0x66, 0x8f, 0xb0, 0x02, 0xc6, 0x69, 0xfe, 0x11, 0x9c, 0x13, 0x14, 0x0e, 0x81, 0x6c, 0x2d, 0xe8, - 0xc6, 0x2a, 0x9c, 0x2c, 0x2d, 0x02, 0x58, 0x62, 0xc7, 0xc0, 0x9b, 0x93, 0x77, 0x65, 0x3f, 0x9c, - 0x83, 0x92, 0x5b, 0x9e, 0x1e, 0x98, 0x47, 0xaa, 0x89, 0xdd, 0xd5, 0x17, 0xd1, 0xde, 0xe9, 0xfa, - 0x64, 0x51, 0x73, 0x59, 0x6f, 0x61, 0xa1, 0x1e, 0x45, 0x5a, 0xa8, 0x95, 0x78, 0xf9, 0x38, 0x27, - 0xd5, 0x98, 0x70, 0x52, 0x97, 0xa3, 0x45, 0xa3, 0x0c, 0x55, 0x63, 0xc2, 0x50, 0x4d, 0x17, 0x11, - 0xfa, 0xaa, 0xe6, 0xa4, 0xaf, 0x5a, 0x8e, 0x56, 0x89, 0xb6, 0x57, 0xcd, 0x49, 0x7b, 0x15, 0xa3, - 0x23, 0x76, 0x59, 0xcd, 0x49, 0x97, 0x35, 0x45, 0x27, 0xda, 0x6c, 0x35, 0x27, 0xcd, 0x56, 0x8c, - 0x8e, 0xd8, 0x73, 0x6d, 0x0a, 0x3c, 0xd7, 0x95, 0x68, 0xa1, 0x69, 0xd6, 0x6b, 0x4b, 0x64, 0xbd, - 0xae, 0x4e, 0x49, 0x6a, 0xaa, 0x03, 0xdb, 0x14, 0x38, 0xb0, 0xb8, 0xc4, 0x22, 0x8c, 0xd8, 0x96, - 0xc8, 0x88, 0xc5, 0x26, 0x16, 0xe5, 0xc7, 0x3e, 0x0e, 0xfb, 0xb1, 0x4b, 0xd1, 0x4a, 0x62, 0x5b, - 0xd6, 0x9c, 0xb4, 0x65, 0xcb, 0x71, 0x67, 0x4e, 0xe4, 0xce, 0x1e, 0x45, 0xba, 0xb3, 0xbf, 0x70, - 0x84, 0xe3, 0x4c, 0xda, 0x67, 0x51, 0x26, 0xad, 0x16, 0xaf, 0x3d, 0xdd, 0xab, 0xed, 0x45, 0x78, - 0xb5, 0x6b, 0xf1, 0xc2, 0x67, 0x96, 0xed, 0xcc, 0xb2, 0x9d, 0x59, 0xb6, 0x33, 0xcb, 0xf6, 0xcf, - 0x5b, 0xb6, 0xb5, 0xd4, 0xd7, 0xdf, 0x2e, 0x4a, 0xd5, 0x5f, 0x93, 0x50, 0x72, 0xbf, 0x0c, 0xee, - 0x6b, 0xf6, 0x80, 0x94, 0xb7, 0x6d, 0x28, 0x90, 0x8f, 0xb9, 0x07, 0x23, 0xe5, 0xf8, 0x18, 0x13, - 0x5d, 0xcf, 0x76, 0x75, 0xf2, 0x53, 0xa2, 0x4b, 0xa8, 0xb5, 0x30, 0x7a, 0x9b, 0x81, 0xdd, 0xd7, - 0x8d, 0x3e, 0x8e, 0xa0, 0x4f, 0x20, 0x3f, 0xb2, 0xfa, 0xbe, 0x5a, 0x62, 0xe2, 0x45, 0x18, 0x52, - 0x63, 0x33, 0x1d, 0x8b, 0xc1, 0xc8, 0x0f, 0x90, 0xd4, 0xba, 0xf8, 0x29, 0xf9, 0x62, 0xc9, 0xb8, - 0xd4, 0xc8, 0x33, 0x0d, 0xa6, 0xd6, 0x1d, 0x47, 0xc8, 0xb6, 0x0d, 0xe7, 0x1e, 0x57, 0xe9, 0x02, - 0x9b, 0x67, 0x1f, 0xca, 0xa1, 0x6c, 0x05, 0x67, 0xfe, 0x6f, 0x3c, 0x1b, 0x92, 0x58, 0x38, 0xf3, - 0xb8, 0x33, 0xc1, 0x6f, 0xc8, 0xea, 0x7f, 0xa1, 0x18, 0xd0, 0x46, 0x05, 0x90, 0x7a, 0x94, 0x2a, - 0xb5, 0xa5, 0x5e, 0xf5, 0x1b, 0x09, 0xf2, 0xa4, 0x4e, 0xfe, 0x7f, 0xf5, 0xd6, 0x8e, 0xa2, 0x99, - 0xe8, 0x1e, 0xa4, 0x86, 0x6a, 0xcf, 0xa6, 0x80, 0x42, 0xfd, 0xe6, 0xe9, 0xb3, 0xc5, 0x99, 0xdf, - 0x9f, 0x2d, 0xfe, 0x2f, 0xe6, 0x5f, 0x02, 0xc7, 0xb2, 0x8d, 0x51, 0xcd, 0xd5, 0x69, 0x53, 0x05, - 0xec, 0x0c, 0x66, 0x4d, 0xf2, 0xd1, 0x9e, 0xa5, 0x54, 0xbf, 0xfe, 0xd6, 0x32, 0x8c, 0x5e, 0x3d, - 0x95, 0x60, 0xae, 0x61, 0xe8, 0xb6, 0xa2, 0xe9, 0x16, 0xfb, 0x5a, 0x4b, 0xde, 0x90, 0x4f, 0x25, - 0xc8, 0xf9, 0x3d, 0xd4, 0x85, 0x92, 0xdf, 0xa1, 0x1f, 0xc1, 0xdd, 0x9d, 0xba, 0xc6, 0xad, 0xf0, - 0x84, 0x46, 0x4d, 0x70, 0x45, 0xc9, 0xee, 0x3b, 0x59, 0x0f, 0x04, 0xe7, 0xd7, 0xe1, 0x9c, 0x00, - 0xf6, 0x36, 0x2f, 0xe4, 0xab, 0x17, 0x20, 0xe3, 0x1e, 0x6d, 0x94, 0x86, 0xc4, 0xf6, 0xba, 0x3c, - 0x43, 0x7f, 0xeb, 0xb2, 0x44, 0x7f, 0x1b, 0x72, 0xa2, 0xbe, 0x75, 0xfa, 0x62, 0x61, 0xe6, 0x17, - 0xdc, 0x7e, 0xc3, 0xed, 0xf9, 0x8b, 0x05, 0xe9, 0x15, 0x6e, 0xaf, 0x71, 0x7b, 0x83, 0xdb, 0x93, - 0x97, 0x0b, 0xd2, 0x77, 0xb8, 0x7d, 0x8f, 0xdb, 0x8f, 0xb8, 0xfd, 0x84, 0xdb, 0xe9, 0x4b, 0x8c, - 0xc7, 0xbf, 0xcf, 0x71, 0x7b, 0x85, 0xaf, 0x5f, 0xe3, 0xdf, 0x37, 0xf8, 0xf7, 0xc9, 0x1f, 0x0b, - 0x33, 0xdd, 0x34, 0x9b, 0xfb, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x63, 0xc3, 0x53, 0x44, - 0x1a, 0x00, 0x00, + // 1612 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46, + 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02, + 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, + 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0, + 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80, + 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c, + 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05, + 0x0d, 0xc5, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0xbe, 0xd9, 0xd3, 0x6c, 0xa7, 0xa3, 0x75, 0x75, + 0x7b, 0x99, 0x74, 0xf4, 0x63, 0xdb, 0x22, 0xd6, 0xcd, 0x32, 0xfb, 0xc1, 0xa9, 0x51, 0x60, 0xe1, + 0x7a, 0xdb, 0x20, 0x9d, 0x7e, 0xab, 0x7c, 0x60, 0xf5, 0x96, 0xdb, 0x56, 0xdb, 0x5a, 0x66, 0xf1, + 0x56, 0xff, 0x88, 0x8d, 0xd8, 0x80, 0x5d, 0x71, 0xe5, 0xc2, 0xff, 0x7d, 0xd3, 0x89, 0xee, 0x90, + 0x65, 0x77, 0xee, 0x96, 0x45, 0x3a, 0x74, 0x52, 0x1a, 0xe3, 0xc2, 0xe2, 0xcf, 0x31, 0x48, 0x6c, + 0xe9, 0x8e, 0xa3, 0xb5, 0x75, 0x8c, 0x21, 0x6a, 0x6a, 0x3d, 0x3d, 0x8f, 0x0a, 0xa8, 0x94, 0x6a, + 0xb0, 0x6b, 0x7c, 0x1b, 0x92, 0x1d, 0xa3, 0xab, 0xd9, 0x06, 0x39, 0xc9, 0x87, 0x0b, 0xa8, 0x94, + 0x5b, 0xf9, 0x57, 0x79, 0x5c, 0xb6, 0xab, 0x2c, 0x3f, 0xe8, 0xf7, 0xac, 0xbe, 0xdd, 0x18, 0xa5, + 0xe2, 0x02, 0x64, 0x3a, 0xba, 0xd1, 0xee, 0x90, 0x7d, 0xc3, 0xdc, 0x3f, 0xe8, 0xe5, 0x23, 0x05, + 0x54, 0xca, 0x36, 0x80, 0xc7, 0x36, 0xcc, 0x6a, 0x8f, 0x4e, 0x76, 0xa8, 0x11, 0x2d, 0x1f, 0x2d, + 0xa0, 0x52, 0xa6, 0xc1, 0xae, 0xf1, 0x12, 0x64, 0x6c, 0xdd, 0xe9, 0x77, 0xc9, 0xfe, 0x81, 0xd5, + 0x37, 0x49, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b, + 0xec, 0xbe, 0xbe, 0xef, 0x1c, 0x58, 0xc4, 0xe9, 0x69, 0x66, 0x3e, 0x59, 0x40, 0xa5, 0x64, 0x23, + 0x43, 0x83, 0x4d, 0x37, 0x86, 0x2f, 0x42, 0xcc, 0x39, 0xb0, 0x6c, 0x3d, 0x9f, 0x2a, 0xa0, 0x52, + 0xb8, 0xc1, 0x07, 0x58, 0x81, 0xc8, 0x53, 0xfd, 0x24, 0x1f, 0x2b, 0x44, 0x4a, 0xd1, 0x06, 0xbd, + 0xc4, 0x57, 0x21, 0x6e, 0xea, 0x0e, 0xd1, 0x0f, 0xf3, 0xf1, 0x02, 0x2a, 0xa5, 0x57, 0xe6, 0x85, + 0x5b, 0xab, 0xb3, 0x3f, 0x34, 0xdc, 0x04, 0xfc, 0x01, 0x24, 0x88, 0x6e, 0xdb, 0x9a, 0x61, 0xe6, + 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, 0x25, 0xcb, 0xb0, 0xc3, 0x33, 0xd6, 0x4d, 0x62, 0x9f, 0x34, + 0x86, 0xf9, 0xf8, 0x36, 0x64, 0x58, 0xde, 0xca, 0xfe, 0x91, 0xa1, 0x77, 0x0f, 0xf3, 0x69, 0x36, + 0x17, 0x2e, 0xb3, 0xa7, 0x50, 0x37, 0xcc, 0x47, 0xc7, 0xa4, 0xae, 0x11, 0xe3, 0x99, 0xde, 0x48, + 0xf3, 0xbc, 0x1a, 0x4d, 0xc3, 0xb5, 0x91, 0xec, 0x99, 0xd6, 0xed, 0xeb, 0xf9, 0x2c, 0x9b, 0xf6, + 0x92, 0x64, 0xda, 0x6d, 0x96, 0xf6, 0x98, 0x66, 0xf1, 0xa9, 0x5d, 0x0e, 0x8b, 0x2c, 0x6c, 0x41, + 0x46, 0xac, 0x6b, 0xb8, 0x0c, 0x88, 0xad, 0x2d, 0x5b, 0x86, 0x2b, 0x10, 0xe3, 0x53, 0x84, 0xfd, + 0x56, 0x81, 0xff, 0x7d, 0x35, 0x7c, 0x07, 0x2d, 0x6c, 0x83, 0x32, 0x3d, 0x9f, 0x04, 0x79, 0x79, + 0x12, 0xa9, 0x88, 0x37, 0xbb, 0x6e, 0xf6, 0x7b, 0x02, 0xb1, 0x78, 0x0f, 0xe2, 0x7c, 0xff, 0xe0, + 0x34, 0x24, 0x76, 0xeb, 0x0f, 0xeb, 0x8f, 0xf6, 0xea, 0x4a, 0x08, 0x27, 0x21, 0xba, 0xbd, 0x5b, + 0x6f, 0x2a, 0x08, 0x67, 0x21, 0xd5, 0xdc, 0x5c, 0xdb, 0x6e, 0xee, 0x6c, 0x54, 0x1f, 0x2a, 0x61, + 0x3c, 0x07, 0xe9, 0xca, 0xc6, 0xe6, 0xe6, 0x7e, 0x65, 0x6d, 0x63, 0x73, 0xfd, 0x0b, 0x25, 0x52, + 0x54, 0x21, 0xce, 0xeb, 0xa4, 0x0f, 0xbe, 0xd5, 0x37, 0xcd, 0x13, 0x77, 0x0b, 0xf3, 0x41, 0xf1, + 0x05, 0x86, 0xc4, 0x5a, 0xb7, 0xbb, 0xa5, 0x1d, 0x3b, 0x78, 0x0f, 0xe6, 0x9b, 0xc4, 0x36, 0xcc, + 0xf6, 0x8e, 0x75, 0xdf, 0xea, 0xb7, 0xba, 0xfa, 0x96, 0x76, 0x9c, 0x47, 0x6c, 0x69, 0xaf, 0x0a, + 0xf7, 0xed, 0xa6, 0x97, 0x3d, 0xb9, 0x7c, 0x81, 0xbd, 0x0c, 0xbc, 0x03, 0xca, 0x30, 0x58, 0xeb, + 0x5a, 0x1a, 0xa1, 0xdc, 0x30, 0xe3, 0x96, 0x66, 0x70, 0x87, 0xa9, 0x1c, 0xeb, 0x21, 0xe0, 0xbb, + 0x90, 0xdc, 0x30, 0xc9, 0xcd, 0x15, 0x4a, 0x8b, 0x30, 0x5a, 0x41, 0x42, 0x1b, 0xa6, 0x70, 0xca, + 0x48, 0xe1, 0xaa, 0xff, 0x77, 0x8b, 0xaa, 0xa3, 0xb3, 0xd4, 0x2c, 0x65, 0xac, 0x66, 0x43, 0x7c, + 0x0f, 0x52, 0xbb, 0xc6, 0x70, 0xf2, 0x18, 0x93, 0x2f, 0x49, 0xe4, 0xa3, 0x1c, 0xae, 0x1f, 0x6b, + 0x86, 0x00, 0x3e, 0x7f, 0x7c, 0x26, 0x40, 0x28, 0x60, 0xac, 0xa1, 0x80, 0xe6, 0xa8, 0x82, 0x84, + 0x2f, 0xa0, 0x39, 0x55, 0x41, 0x53, 0xac, 0xa0, 0x39, 0xaa, 0x20, 0x39, 0x13, 0x20, 0x56, 0x30, + 0x1a, 0xe3, 0x0a, 0x40, 0xcd, 0xf8, 0x4a, 0x3f, 0xe4, 0x25, 0xa4, 0x18, 0xa1, 0x28, 0x21, 0x8c, + 0x93, 0x38, 0x42, 0x50, 0xe1, 0x75, 0x48, 0x37, 0x8f, 0xc6, 0x10, 0xf0, 0x9c, 0xe3, 0x51, 0x19, + 0x47, 0x53, 0x14, 0x51, 0x37, 0x2a, 0x85, 0xdf, 0x4c, 0x7a, 0x76, 0x29, 0xc2, 0xdd, 0x08, 0xaa, + 0x71, 0x29, 0x1c, 0x92, 0x09, 0x28, 0x45, 0xa0, 0x88, 0x3a, 0xda, 0x0c, 0x2b, 0x96, 0x45, 0x33, + 0xdd, 0xae, 0xb4, 0x28, 0x41, 0xb8, 0x19, 0x6e, 0x33, 0x74, 0x47, 0xec, 0x89, 0xb0, 0x4d, 0x4e, + 0xc5, 0x39, 0xff, 0x27, 0x32, 0xcc, 0x19, 0x3e, 0x91, 0xe1, 0x58, 0x3c, 0x67, 0x95, 0x13, 0xa2, + 0x3b, 0x94, 0x33, 0x17, 0x78, 0xce, 0x86, 0xa9, 0x53, 0xe7, 0x6c, 0x18, 0xc6, 0x9f, 0xc1, 0xdc, + 0x30, 0x46, 0xdb, 0x13, 0x85, 0x2a, 0x0c, 0x7a, 0x65, 0x06, 0xd4, 0xcd, 0xe4, 0xcc, 0x69, 0x3d, + 0xae, 0x43, 0x6e, 0x18, 0xda, 0x72, 0xd8, 0xed, 0xce, 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8, + 0x81, 0x53, 0xea, 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b, + 0x62, 0xfb, 0x45, 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f, + 0x42, 0x76, 0xa2, 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0xc7, 0x5b, 0x4b, 0xf2, 0xf6, + 0x98, 0x10, 0x47, 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf6, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12, + 0xb5, 0x7c, 0xee, 0xa8, 0x44, 0x1d, 0x9d, 0x52, 0x37, 0x7d, 0xe7, 0x9e, 0x97, 0xa8, 0xe7, 0x25, + 0x6a, 0xf9, 0xdc, 0x58, 0xa2, 0xc6, 0xa2, 0xfa, 0x23, 0x98, 0x9b, 0x6a, 0x31, 0xa2, 0x3c, 0x21, + 0x91, 0x27, 0x44, 0xf9, 0xc7, 0xa0, 0x4c, 0x37, 0x17, 0x51, 0x3f, 0x27, 0xd1, 0xcf, 0xc9, 0xa6, + 0x97, 0x57, 0x1f, 0x97, 0xc8, 0xe3, 0xd2, 0xe9, 0xe5, 0x7a, 0x45, 0xa2, 0x57, 0x44, 0xfd, 0x2a, + 0x64, 0xc4, 0x6e, 0x22, 0x6a, 0x93, 0x12, 0x6d, 0x72, 0x7a, 0xdd, 0x27, 0x9a, 0x49, 0xd0, 0x4e, + 0x4f, 0xf9, 0x1c, 0x97, 0x89, 0x16, 0x12, 0x04, 0xc9, 0x88, 0x90, 0xc7, 0x70, 0x51, 0xd6, 0x32, + 0x24, 0x8c, 0x92, 0xc8, 0xc8, 0x51, 0x8f, 0x38, 0x36, 0x7b, 0x54, 0x35, 0x61, 0x9c, 0x16, 0x9e, + 0xc0, 0x05, 0x49, 0xe3, 0x90, 0x60, 0xcb, 0x93, 0x6e, 0x2c, 0x2f, 0x60, 0x59, 0x13, 0x30, 0xcc, + 0xf6, 0xb6, 0x65, 0x98, 0x44, 0x74, 0x65, 0x3f, 0x5c, 0x80, 0x9c, 0xdb, 0x9e, 0x1e, 0xd9, 0x87, + 0xba, 0xad, 0x1f, 0xe2, 0x2f, 0xfd, 0xbd, 0xd3, 0x0d, 0x6f, 0x53, 0x73, 0x55, 0xef, 0x61, 0xa1, + 0x9e, 0xf8, 0x5a, 0xa8, 0xe5, 0x60, 0x7c, 0x90, 0x93, 0xaa, 0x7a, 0x9c, 0xd4, 0x15, 0x7f, 0xa8, + 0x9f, 0xa1, 0xaa, 0x7a, 0x0c, 0xd5, 0x6c, 0x88, 0xd4, 0x57, 0xd5, 0xbc, 0xbe, 0xaa, 0xe4, 0x4f, + 0xf1, 0xb7, 0x57, 0x35, 0xaf, 0xbd, 0x0a, 0xe0, 0xc8, 0x5d, 0x56, 0xcd, 0xeb, 0xb2, 0x66, 0x70, + 0xfc, 0xcd, 0x56, 0xcd, 0x6b, 0xb6, 0x02, 0x38, 0x72, 0xcf, 0xb5, 0x21, 0xf1, 0x5c, 0x57, 0xfd, + 0x41, 0xb3, 0xac, 0xd7, 0xa6, 0xcc, 0x7a, 0x5d, 0x9b, 0x51, 0xd4, 0x4c, 0x07, 0xb6, 0x21, 0x71, + 0x60, 0x41, 0x85, 0xf9, 0x18, 0xb1, 0x4d, 0x99, 0x11, 0x0b, 0x2c, 0xcc, 0xcf, 0x8f, 0x7d, 0x32, + 0xed, 0xc7, 0x2e, 0xfb, 0x93, 0xe4, 0xb6, 0xac, 0xe6, 0xb5, 0x65, 0xa5, 0xa0, 0x33, 0x27, 0x73, + 0x67, 0x4f, 0x7c, 0xdd, 0xd9, 0x9f, 0x38, 0xc2, 0x41, 0x26, 0xed, 0x73, 0x3f, 0x93, 0x56, 0x0e, + 0x66, 0xcf, 0xf6, 0x6a, 0xbb, 0x3e, 0x5e, 0xed, 0x7a, 0x30, 0xf8, 0xdc, 0xb2, 0x9d, 0x5b, 0xb6, + 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xfe, 0x7e, 0xcb, 0xb6, 0x1a, 0xfd, 0xfa, 0xdb, 0x45, 0x54, 0xfc, + 0x25, 0x02, 0x39, 0xf7, 0xcb, 0xe0, 0x9e, 0x41, 0x3a, 0xb4, 0xbd, 0x6d, 0x41, 0xc6, 0xd4, 0x7a, + 0xfa, 0x7e, 0x4f, 0x3b, 0x3e, 0x36, 0xcc, 0xb6, 0xeb, 0xd9, 0xae, 0x79, 0x3f, 0x25, 0xba, 0x82, + 0x72, 0x5d, 0xeb, 0xd1, 0x5e, 0x45, 0x93, 0xdd, 0xd7, 0x8d, 0x39, 0x8e, 0xe0, 0x4f, 0x21, 0xdd, + 0x73, 0xda, 0x23, 0x5a, 0xd8, 0xf3, 0x22, 0x9c, 0xa2, 0xf1, 0x3b, 0x1d, 0xc3, 0xa0, 0x37, 0x0a, + 0xd0, 0xd2, 0x5a, 0x27, 0x64, 0x5c, 0x5a, 0x24, 0xa8, 0x34, 0xfa, 0x4c, 0x27, 0x4b, 0x6b, 0x8d, + 0x23, 0x74, 0xdb, 0x4e, 0xd7, 0x1e, 0xd4, 0xe9, 0x26, 0x36, 0xcf, 0x1e, 0xcc, 0x4d, 0x55, 0x2b, + 0x39, 0xf3, 0x7f, 0xe1, 0xd9, 0xd0, 0xc2, 0xa6, 0x2b, 0x0f, 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe, + 0x1b, 0xb2, 0x13, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8, 0x81, 0x8e, 0x8a, 0xdf, 0x20, 0x48, + 0xd3, 0x3e, 0xf9, 0xdf, 0x95, 0x3b, 0xdb, 0x9a, 0x61, 0xe3, 0x07, 0x10, 0xed, 0xea, 0x47, 0x84, + 0x25, 0x64, 0x2a, 0xb7, 0x4e, 0x5f, 0x2d, 0x86, 0x7e, 0x7b, 0xb5, 0xf8, 0x9f, 0x80, 0xff, 0x12, + 0xf4, 0x1d, 0x62, 0xf5, 0xca, 0x2e, 0xa7, 0xc1, 0x08, 0xb8, 0x06, 0x31, 0xdb, 0x68, 0x77, 0x08, + 0x2f, 0xa9, 0x72, 0xe3, 0xbd, 0x31, 0x5c, 0x5e, 0x3c, 0x45, 0x30, 0x5f, 0xb5, 0x4c, 0xa2, 0x19, + 0xa6, 0xc3, 0xbf, 0xd6, 0xd2, 0x37, 0xe4, 0x0b, 0x04, 0xa9, 0xd1, 0x08, 0xb7, 0x20, 0x37, 0x1a, + 0xb0, 0x8f, 0xe0, 0xee, 0x4e, 0x5d, 0x15, 0x56, 0xd8, 0xc3, 0x28, 0x4b, 0xae, 0x98, 0xd8, 0x7d, + 0x27, 0x4f, 0x06, 0x17, 0xd6, 0xe0, 0x82, 0x24, 0xed, 0x7d, 0x5e, 0xc8, 0xc5, 0x25, 0x48, 0xd5, + 0x2d, 0xb2, 0xad, 0x1d, 0x3c, 0x65, 0x9f, 0x9c, 0xc7, 0xff, 0x55, 0xa8, 0x84, 0x95, 0x10, 0x13, + 0x5f, 0x5b, 0x82, 0x84, 0x7b, 0xfa, 0x71, 0x1c, 0xc2, 0x5b, 0x6b, 0x4a, 0x88, 0xfd, 0x56, 0x14, + 0xc4, 0x7e, 0xab, 0x4a, 0xb8, 0xb2, 0x79, 0x7a, 0xa6, 0x86, 0x5e, 0x9e, 0xa9, 0xa1, 0x5f, 0xcf, + 0xd4, 0xd0, 0xeb, 0x33, 0x15, 0xbd, 0x39, 0x53, 0xd1, 0xdb, 0x33, 0x15, 0xbd, 0x3b, 0x53, 0xd1, + 0xf3, 0x81, 0x8a, 0xbe, 0x1b, 0xa8, 0xe8, 0xfb, 0x81, 0x8a, 0x7e, 0x1c, 0xa8, 0xe8, 0xa7, 0x81, + 0x8a, 0x4e, 0x07, 0x6a, 0xe8, 0xe5, 0x40, 0x45, 0xaf, 0x07, 0x2a, 0x7a, 0x33, 0x50, 0x43, 0x6f, + 0x07, 0x2a, 0x7a, 0x37, 0x50, 0x43, 0xcf, 0x7f, 0x57, 0x43, 0xad, 0x38, 0x5f, 0x9e, 0x3f, 0x02, + 0x00, 0x00, 0xff, 0xff, 0xda, 0xba, 0x48, 0xa4, 0x67, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto index ceaa2b8a..0c130b73 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go index 68a6ca71..138ee47a 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go @@ -17,6 +17,7 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -41,18 +42,18 @@ func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -80,11 +81,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -94,11 +95,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -115,18 +116,18 @@ func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -154,11 +155,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -168,11 +169,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -189,18 +190,18 @@ func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -228,11 +229,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -242,11 +243,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -263,18 +264,18 @@ func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -302,11 +303,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -316,11 +317,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -337,18 +338,18 @@ func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -376,11 +377,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -390,11 +391,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -411,18 +412,18 @@ func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -450,11 +451,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -464,11 +465,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -485,18 +486,18 @@ func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -524,11 +525,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -538,11 +539,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -559,18 +560,18 @@ func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -598,11 +599,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -612,11 +613,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -633,18 +634,18 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -672,11 +673,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -686,11 +687,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -703,6 +704,80 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -892,13 +967,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -913,9 +1009,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -930,9 +1026,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -947,9 +1043,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -964,9 +1060,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -981,9 +1077,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -998,9 +1094,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1015,9 +1111,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1032,9 +1128,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1049,9 +1145,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1066,9 +1162,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1083,9 +1179,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1100,9 +1196,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1117,9 +1213,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1134,9 +1230,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1151,9 +1247,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,9 +1264,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,9 +1281,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1204,12 +1334,12 @@ func TestTheproto3Description(t *testing.T) { func TestMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1219,12 +1349,12 @@ func TestMessageVerboseEqual(t *testing.T) { func TestNestedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1234,12 +1364,12 @@ func TestNestedVerboseEqual(t *testing.T) { func TestAllMapsVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1249,12 +1379,12 @@ func TestAllMapsVerboseEqual(t *testing.T) { func TestAllMapsOrderedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1264,12 +1394,12 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { func TestMessageWithMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1279,12 +1409,12 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { func TestFloatingPointVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1294,12 +1424,12 @@ func TestFloatingPointVerboseEqual(t *testing.T) { func TestUint128PairVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1309,12 +1439,12 @@ func TestUint128PairVerboseEqual(t *testing.T) { func TestContainsNestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1324,12 +1454,27 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1408,6 +1553,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1525,18 +1678,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1566,13 +1732,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1602,13 +1768,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1638,13 +1804,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1674,13 +1840,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1710,13 +1876,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1746,13 +1912,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1782,13 +1948,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +1984,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1849,6 +2015,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1930,5 +2132,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go index 148b8972..c1bafa25 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,12 +38,10 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" import unsafe "unsafe" -import errors "errors" import io "io" @@ -53,7 +52,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -108,7 +109,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -128,23 +129,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -152,23 +153,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -210,7 +211,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -219,6 +220,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -229,6 +238,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -259,477 +269,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7457 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xff, 0x0e, 0x87, 0x94, 0xa8, 0x43, 0x8a, 0xa2, 0x66, 0x77, 0x65, 0x5a, 0x5e, 0xef, 0x83, - 0x5e, 0xaf, 0xd7, 0x8a, 0xad, 0xd5, 0x6a, 0x9f, 0xa6, 0x5f, 0x7f, 0x91, 0xa2, 0xd6, 0xda, 0xe8, - 0x95, 0x91, 0xe4, 0x47, 0xfc, 0x47, 0x09, 0x8a, 0x1c, 0x49, 0xb4, 0xa9, 0xa1, 0xca, 0xa1, 0x6c, - 0x6f, 0x3e, 0x14, 0x6e, 0xd2, 0xa6, 0x49, 0x8b, 0x3e, 0xd3, 0xa2, 0x79, 0xc7, 0x4e, 0x91, 0xc6, - 0x49, 0x5f, 0x49, 0x9a, 0x06, 0x45, 0x50, 0x34, 0x2e, 0x82, 0xa4, 0xdb, 0x2f, 0x85, 0x9b, 0x7e, - 0x29, 0x8a, 0xc2, 0xc8, 0x0b, 0x68, 0xda, 0xa6, 0x6d, 0x02, 0x18, 0x48, 0x80, 0xe4, 0x43, 0xef, - 0x7b, 0xee, 0xbd, 0x9c, 0xe1, 0x50, 0xbb, 0x76, 0x9c, 0x0f, 0x36, 0xc0, 0x15, 0xe7, 0xde, 0xf3, - 0x3b, 0xf7, 0xdc, 0xf3, 0xba, 0x67, 0xee, 0x1d, 0x8e, 0xe1, 0xab, 0x67, 0xe1, 0xf8, 0x56, 0xab, - 0xb5, 0xd5, 0x74, 0xce, 0xec, 0xb6, 0x5b, 0x9d, 0xd6, 0xc6, 0xde, 0xe6, 0x99, 0xba, 0xe3, 0xd5, - 0xda, 0x8d, 0xdd, 0x4e, 0xab, 0x3d, 0x49, 0xda, 0xac, 0x11, 0x4a, 0x31, 0xc9, 0x29, 0xf2, 0x8b, - 0x30, 0x3a, 0xd7, 0x68, 0x3a, 0xb3, 0x82, 0x70, 0xd5, 0xe9, 0x58, 0x97, 0x21, 0xbe, 0x89, 0x1a, - 0x73, 0xc6, 0x71, 0xf3, 0x74, 0x6a, 0xfa, 0xe4, 0xa4, 0x06, 0x9a, 0x54, 0x11, 0x2b, 0xb8, 0xd9, - 0x26, 0x88, 0xfc, 0x77, 0xe3, 0x70, 0x30, 0xa0, 0xd7, 0xb2, 0x20, 0xee, 0x56, 0x77, 0x30, 0x47, - 0xe3, 0xf4, 0x90, 0x4d, 0xbe, 0x5b, 0x39, 0x18, 0xdc, 0xad, 0xd6, 0x9e, 0xae, 0x6e, 0x39, 0xb9, - 0x18, 0x69, 0xe6, 0x97, 0xd6, 0x51, 0x80, 0xba, 0xb3, 0xeb, 0xb8, 0x75, 0xc7, 0xad, 0x5d, 0xcb, - 0x99, 0x48, 0x8a, 0x21, 0x5b, 0x6a, 0xb1, 0xde, 0x06, 0xa3, 0xbb, 0x7b, 0x1b, 0xcd, 0x46, 0xad, - 0x22, 0x91, 0x01, 0x22, 0x4b, 0xd8, 0x59, 0xda, 0x31, 0xeb, 0x13, 0xdf, 0x05, 0x23, 0xcf, 0x3a, - 0xd5, 0xa7, 0x65, 0xd2, 0x14, 0x21, 0xcd, 0xe0, 0x66, 0x89, 0xb0, 0x04, 0xe9, 0x1d, 0xc7, 0xf3, - 0x90, 0x00, 0x95, 0xce, 0xb5, 0x5d, 0x27, 0x17, 0x27, 0xb3, 0x3f, 0xde, 0x35, 0x7b, 0x7d, 0xe6, - 0x29, 0x86, 0x5a, 0x43, 0x20, 0x6b, 0x06, 0x86, 0x1c, 0x77, 0x6f, 0x87, 0x72, 0x48, 0x84, 0xe8, - 0xaf, 0x8c, 0x28, 0x74, 0x2e, 0x49, 0x0c, 0x63, 0x2c, 0x06, 0x3d, 0xa7, 0xfd, 0x4c, 0xa3, 0xe6, - 0xe4, 0x06, 0x08, 0x83, 0xbb, 0xba, 0x18, 0xac, 0xd2, 0x7e, 0x9d, 0x07, 0xc7, 0xa1, 0xa9, 0x0c, - 0x39, 0xcf, 0x75, 0x1c, 0xd7, 0x6b, 0xb4, 0xdc, 0xdc, 0x20, 0x61, 0x72, 0x67, 0x80, 0x15, 0x9d, - 0x66, 0x5d, 0x67, 0xe1, 0xe3, 0xac, 0x8b, 0x30, 0xd8, 0xda, 0xed, 0xa0, 0x6f, 0x5e, 0x2e, 0x89, - 0xec, 0x93, 0x9a, 0x3e, 0x12, 0xe8, 0x08, 0xcb, 0x94, 0xc6, 0xe6, 0xc4, 0xd6, 0x3c, 0x64, 0xbd, - 0xd6, 0x5e, 0xbb, 0xe6, 0x54, 0x6a, 0xad, 0xba, 0x53, 0x69, 0xb8, 0x9b, 0xad, 0xdc, 0x10, 0x61, - 0x70, 0xac, 0x7b, 0x22, 0x84, 0xb0, 0x84, 0xe8, 0xe6, 0x11, 0x99, 0x9d, 0xf1, 0x94, 0x6b, 0x6b, - 0x0c, 0x06, 0xbc, 0x6b, 0x6e, 0xa7, 0xfa, 0x5c, 0x2e, 0x4d, 0x3c, 0x84, 0x5d, 0xe5, 0x7f, 0x94, - 0x80, 0x91, 0x7e, 0x5c, 0xec, 0x7e, 0x48, 0x6c, 0xe2, 0x59, 0x22, 0x07, 0xdb, 0x87, 0x0e, 0x28, - 0x46, 0x55, 0xe2, 0xc0, 0x0d, 0x2a, 0x71, 0x06, 0x52, 0xae, 0xe3, 0x75, 0x9c, 0x3a, 0xf5, 0x08, - 0xb3, 0x4f, 0x9f, 0x02, 0x0a, 0xea, 0x76, 0xa9, 0xf8, 0x0d, 0xb9, 0xd4, 0xe3, 0x30, 0x22, 0x44, - 0xaa, 0xb4, 0xab, 0xee, 0x16, 0xf7, 0xcd, 0x33, 0x51, 0x92, 0x4c, 0x96, 0x39, 0xce, 0xc6, 0x30, - 0x3b, 0xe3, 0x28, 0xd7, 0xd6, 0x2c, 0x40, 0xcb, 0x75, 0x5a, 0x9b, 0x28, 0xbc, 0x6a, 0x4d, 0xe4, - 0x27, 0xc1, 0x5a, 0x5a, 0xc6, 0x24, 0x5d, 0x5a, 0x6a, 0xd1, 0xd6, 0x5a, 0xd3, 0xba, 0xcf, 0x77, - 0xb5, 0xc1, 0x10, 0x4f, 0x59, 0xa4, 0x41, 0xd6, 0xe5, 0x6d, 0xeb, 0x90, 0x69, 0x3b, 0xd8, 0xef, - 0x91, 0x8a, 0xe9, 0xcc, 0x86, 0x88, 0x10, 0x93, 0x91, 0x33, 0xb3, 0x19, 0x8c, 0x4e, 0x6c, 0xb8, - 0x2d, 0x5f, 0x5a, 0x77, 0x80, 0x68, 0xa8, 0x10, 0xb7, 0x02, 0x92, 0x85, 0xd2, 0xbc, 0x71, 0x09, - 0xb5, 0x8d, 0x5f, 0x86, 0x8c, 0xaa, 0x1e, 0xeb, 0x10, 0x24, 0xbc, 0x4e, 0xb5, 0xdd, 0x21, 0x5e, - 0x98, 0xb0, 0xe9, 0x85, 0x95, 0x05, 0x13, 0x25, 0x19, 0x92, 0xe5, 0x12, 0x36, 0xfe, 0x3a, 0x7e, - 0x09, 0x86, 0x95, 0xe1, 0xfb, 0x05, 0xe6, 0x3f, 0x38, 0x00, 0x87, 0x82, 0x7c, 0x2e, 0xd0, 0xfd, - 0x51, 0xf8, 0x20, 0x0f, 0xd8, 0x70, 0xda, 0xc8, 0xef, 0x30, 0x07, 0x76, 0x85, 0x3c, 0x2a, 0xd1, - 0xac, 0x6e, 0x38, 0x4d, 0xe4, 0x4d, 0xc6, 0xe9, 0xcc, 0xf4, 0xdb, 0xfa, 0xf2, 0xea, 0xc9, 0x05, - 0x0c, 0xb1, 0x29, 0xd2, 0x7a, 0x08, 0xe2, 0x2c, 0xc5, 0x61, 0x0e, 0x13, 0xfd, 0x71, 0xc0, 0xbe, - 0x68, 0x13, 0x9c, 0x75, 0x1b, 0x0c, 0xe1, 0xbf, 0x54, 0xb7, 0x03, 0x44, 0xe6, 0x24, 0x6e, 0xc0, - 0x7a, 0xb5, 0xc6, 0x21, 0x49, 0xdc, 0xac, 0xee, 0xf0, 0xa5, 0x41, 0x5c, 0x63, 0xc3, 0xd4, 0x9d, - 0xcd, 0xea, 0x5e, 0xb3, 0x53, 0x79, 0xa6, 0xda, 0xdc, 0x73, 0x88, 0xc3, 0x20, 0xc3, 0xb0, 0xc6, - 0x47, 0x71, 0x9b, 0x75, 0x0c, 0x52, 0xd4, 0x2b, 0x1b, 0x08, 0xf3, 0x1c, 0xc9, 0x3e, 0x09, 0x9b, - 0x3a, 0xea, 0x3c, 0x6e, 0xc1, 0xc3, 0x3f, 0xe5, 0xa1, 0x58, 0x60, 0xa6, 0x25, 0x43, 0xe0, 0x06, - 0x32, 0xfc, 0x25, 0x3d, 0xf1, 0xdd, 0x1e, 0x3c, 0x3d, 0xdd, 0x17, 0xf3, 0x5f, 0x8a, 0x41, 0x9c, - 0xc4, 0xdb, 0x08, 0xa4, 0xd6, 0x9e, 0x58, 0x29, 0x57, 0x66, 0x97, 0xd7, 0x8b, 0x0b, 0xe5, 0xac, - 0x61, 0x65, 0x00, 0x48, 0xc3, 0xdc, 0xc2, 0xf2, 0xcc, 0x5a, 0x36, 0x26, 0xae, 0xe7, 0x97, 0xd6, - 0x2e, 0x9e, 0xcf, 0x9a, 0x02, 0xb0, 0x4e, 0x1b, 0xe2, 0x32, 0xc1, 0xb9, 0xe9, 0x6c, 0x02, 0x79, - 0x42, 0x9a, 0x32, 0x98, 0x7f, 0xbc, 0x3c, 0x8b, 0x28, 0x06, 0xd4, 0x16, 0x44, 0x33, 0x68, 0x0d, - 0xc3, 0x10, 0x69, 0x29, 0x2e, 0x2f, 0x2f, 0x64, 0x93, 0x82, 0xe7, 0xea, 0x9a, 0x3d, 0xbf, 0x74, - 0x25, 0x3b, 0x24, 0x78, 0x5e, 0xb1, 0x97, 0xd7, 0x57, 0xb2, 0x20, 0x38, 0x2c, 0x96, 0x57, 0x57, - 0x67, 0xae, 0x94, 0xb3, 0x29, 0x41, 0x51, 0x7c, 0x62, 0xad, 0xbc, 0x9a, 0x4d, 0x2b, 0x62, 0xa1, - 0x21, 0x86, 0xc5, 0x10, 0xe5, 0xa5, 0xf5, 0xc5, 0x6c, 0xc6, 0x1a, 0x85, 0x61, 0x3a, 0x04, 0x17, - 0x62, 0x44, 0x6b, 0x42, 0x92, 0x66, 0x7d, 0x41, 0x28, 0x97, 0x51, 0xa5, 0x01, 0x51, 0x58, 0xf9, - 0x12, 0x24, 0x88, 0x77, 0x21, 0x2f, 0xce, 0x2c, 0xcc, 0x14, 0xcb, 0x0b, 0x95, 0xe5, 0x95, 0xb5, - 0xf9, 0xe5, 0xa5, 0x99, 0x05, 0xa4, 0x3b, 0xd1, 0x66, 0x97, 0xdf, 0xb1, 0x3e, 0x6f, 0x97, 0x67, - 0x91, 0xfe, 0xa4, 0xb6, 0x95, 0xf2, 0xcc, 0x1a, 0x6a, 0x33, 0xf3, 0x13, 0x70, 0x28, 0x28, 0xcf, - 0x04, 0x45, 0x46, 0xfe, 0x93, 0x06, 0x1c, 0x0c, 0x48, 0x99, 0x81, 0x51, 0xf4, 0x30, 0x24, 0xa8, - 0xa7, 0xd1, 0x45, 0xe4, 0xee, 0xc0, 0xdc, 0x4b, 0xfc, 0xae, 0x6b, 0x21, 0x21, 0x38, 0x79, 0x21, - 0x35, 0x43, 0x16, 0x52, 0xcc, 0xa2, 0xcb, 0x9d, 0xde, 0x63, 0x40, 0x2e, 0x8c, 0x77, 0x44, 0xbc, - 0xc7, 0x94, 0x78, 0xbf, 0x5f, 0x17, 0xe0, 0x44, 0xf8, 0x1c, 0xba, 0xa4, 0xf8, 0xb4, 0x01, 0x63, - 0xc1, 0xf5, 0x46, 0xa0, 0x0c, 0x0f, 0xc1, 0xc0, 0x8e, 0xd3, 0xd9, 0x6e, 0xf1, 0x35, 0xf7, 0x54, - 0x40, 0x26, 0xc7, 0xdd, 0xba, 0xae, 0x18, 0x4a, 0x5e, 0x0a, 0xcc, 0xb0, 0xa2, 0x81, 0x4a, 0xd3, - 0x25, 0xe9, 0xfb, 0x63, 0x70, 0x38, 0x90, 0x79, 0xa0, 0xa0, 0xb7, 0x03, 0x34, 0xdc, 0xdd, 0xbd, - 0x0e, 0x5d, 0x57, 0x69, 0x9a, 0x19, 0x22, 0x2d, 0x24, 0x84, 0x71, 0x0a, 0xd9, 0xeb, 0x88, 0x7e, - 0x93, 0xf4, 0x03, 0x6d, 0x22, 0x04, 0x97, 0x7d, 0x41, 0xe3, 0x44, 0xd0, 0xa3, 0x21, 0x33, 0xed, - 0x5a, 0xb2, 0xa6, 0x20, 0x5b, 0x6b, 0x36, 0x1c, 0xb7, 0x53, 0xf1, 0x3a, 0x6d, 0xa7, 0xba, 0xd3, - 0x70, 0xb7, 0x48, 0x1e, 0x4d, 0x16, 0x12, 0x9b, 0xd5, 0xa6, 0xe7, 0xd8, 0x23, 0xb4, 0x7b, 0x95, - 0xf7, 0x62, 0x04, 0x59, 0x2c, 0xda, 0x12, 0x62, 0x40, 0x41, 0xd0, 0x6e, 0x81, 0xc8, 0x7f, 0x63, - 0x10, 0x52, 0x52, 0x75, 0x66, 0x9d, 0x80, 0xf4, 0x53, 0xd5, 0x67, 0xaa, 0x15, 0x5e, 0x71, 0x53, - 0x4d, 0xa4, 0x70, 0xdb, 0x0a, 0xab, 0xba, 0xa7, 0xe0, 0x10, 0x21, 0x41, 0x73, 0x44, 0x03, 0xd5, - 0x9a, 0x55, 0xcf, 0x23, 0x4a, 0x4b, 0x12, 0x52, 0x0b, 0xf7, 0x2d, 0xe3, 0xae, 0x12, 0xef, 0xb1, - 0x2e, 0xc0, 0x41, 0x82, 0xd8, 0x41, 0x89, 0xb7, 0xb1, 0xdb, 0x74, 0x2a, 0xf8, 0x1e, 0xc0, 0x23, - 0xf9, 0x54, 0x48, 0x36, 0x8a, 0x29, 0x16, 0x19, 0x01, 0x96, 0xc8, 0xb3, 0xae, 0xc0, 0xed, 0x04, - 0xb6, 0xe5, 0xb8, 0x4e, 0xbb, 0xda, 0x71, 0x2a, 0xce, 0x2f, 0xee, 0x21, 0xda, 0x4a, 0xd5, 0xad, - 0x57, 0xb6, 0xab, 0xde, 0x76, 0xee, 0x90, 0xcc, 0xe0, 0x56, 0x4c, 0x7b, 0x85, 0x91, 0x96, 0x09, - 0xe5, 0x8c, 0x5b, 0x7f, 0x04, 0xd1, 0x59, 0x05, 0x18, 0x23, 0x8c, 0x90, 0x52, 0xd0, 0x9c, 0x2b, - 0xb5, 0x6d, 0xa7, 0xf6, 0x74, 0x65, 0xaf, 0xb3, 0x79, 0x39, 0x77, 0x9b, 0xcc, 0x81, 0x08, 0xb9, - 0x4a, 0x68, 0x4a, 0x98, 0x64, 0x1d, 0x51, 0x58, 0xab, 0x90, 0xc6, 0xf6, 0xd8, 0x69, 0xbc, 0x0b, - 0x89, 0xdd, 0x6a, 0x93, 0x35, 0x22, 0x13, 0x10, 0xdc, 0x92, 0x12, 0x27, 0x97, 0x19, 0x60, 0x11, - 0xd5, 0xa7, 0x85, 0xc4, 0xea, 0x4a, 0xb9, 0x3c, 0x6b, 0xa7, 0x38, 0x97, 0xb9, 0x56, 0x1b, 0xfb, - 0xd4, 0x56, 0x4b, 0xe8, 0x38, 0x45, 0x7d, 0x6a, 0xab, 0xc5, 0x35, 0x8c, 0xf4, 0x55, 0xab, 0xd1, - 0x69, 0xa3, 0x7b, 0x17, 0x56, 0xac, 0x7b, 0xb9, 0xac, 0xa2, 0xaf, 0x5a, 0xed, 0x0a, 0x25, 0x60, - 0x6e, 0xee, 0xa1, 0x90, 0x38, 0xec, 0xeb, 0x4b, 0x06, 0x8e, 0x76, 0xcd, 0x52, 0x87, 0xa2, 0x11, - 0x77, 0xaf, 0x75, 0x03, 0x2d, 0x65, 0xc4, 0xdd, 0x6b, 0x3a, 0xec, 0x4e, 0x72, 0x03, 0xd6, 0x76, - 0x6a, 0x48, 0xe5, 0xf5, 0xdc, 0x2d, 0x32, 0xb5, 0xd4, 0x61, 0x9d, 0x41, 0x8e, 0x5c, 0xab, 0x38, - 0x6e, 0x75, 0x03, 0xd9, 0xbe, 0xda, 0x46, 0x5f, 0xbc, 0xdc, 0x31, 0x99, 0x38, 0x53, 0xab, 0x95, - 0x49, 0xef, 0x0c, 0xe9, 0xb4, 0x26, 0x60, 0xb4, 0xb5, 0xf1, 0x54, 0x8d, 0x3a, 0x57, 0x05, 0xf1, - 0xd9, 0x6c, 0x3c, 0x97, 0x3b, 0x49, 0xd4, 0x34, 0x82, 0x3b, 0x88, 0x6b, 0xad, 0x90, 0x66, 0xeb, - 0x6e, 0xc4, 0xdc, 0xdb, 0xae, 0xb6, 0x77, 0xc9, 0x22, 0xed, 0x21, 0xa5, 0x3a, 0xb9, 0x3b, 0x29, - 0x29, 0x6d, 0x5f, 0xe2, 0xcd, 0x56, 0x19, 0x8e, 0xe1, 0xc9, 0xbb, 0x55, 0xb7, 0x55, 0xd9, 0xf3, - 0x9c, 0x8a, 0x2f, 0xa2, 0xb0, 0xc5, 0x29, 0x2c, 0x96, 0x7d, 0x84, 0x93, 0xad, 0x7b, 0x28, 0x99, - 0x71, 0x22, 0x6e, 0x9e, 0xc7, 0xe1, 0xd0, 0x9e, 0xdb, 0x70, 0x91, 0x8b, 0xa3, 0x1e, 0x0c, 0xa6, - 0x01, 0x9b, 0xfb, 0xf7, 0xc1, 0x90, 0xa2, 0x7b, 0x5d, 0xa6, 0xa6, 0x4e, 0x62, 0x1f, 0xdc, 0xeb, - 0x6e, 0xcc, 0x17, 0x20, 0x2d, 0xfb, 0x8e, 0x35, 0x04, 0xd4, 0x7b, 0xd0, 0xea, 0x86, 0x56, 0xd4, - 0xd2, 0xf2, 0x2c, 0x5e, 0x0b, 0xdf, 0x59, 0x46, 0x0b, 0x1b, 0x5a, 0x93, 0x17, 0xe6, 0xd7, 0xca, - 0x15, 0x7b, 0x7d, 0x69, 0x6d, 0x7e, 0xb1, 0x9c, 0x35, 0x27, 0x86, 0x92, 0xdf, 0x1b, 0xcc, 0x3e, - 0x8f, 0xfe, 0x8b, 0xe5, 0xbf, 0x16, 0x83, 0x8c, 0x5a, 0x07, 0x5b, 0x0f, 0xc0, 0x2d, 0xfc, 0xa6, - 0xd5, 0x73, 0x3a, 0x95, 0x67, 0x1b, 0x6d, 0xe2, 0xce, 0x3b, 0x55, 0x5a, 0x49, 0x0a, 0x4b, 0x1c, - 0x62, 0x54, 0xe8, 0xf6, 0xfe, 0x31, 0x44, 0x33, 0x47, 0x48, 0xac, 0x05, 0x38, 0x86, 0x54, 0x86, - 0x6a, 0x4d, 0xb7, 0x5e, 0x6d, 0xd7, 0x2b, 0xfe, 0x76, 0x41, 0xa5, 0x5a, 0x43, 0x7e, 0xe0, 0xb5, - 0xe8, 0x4a, 0x22, 0xb8, 0x1c, 0x71, 0x5b, 0xab, 0x8c, 0xd8, 0x4f, 0xb1, 0x33, 0x8c, 0x54, 0xf3, - 0x1a, 0x33, 0xcc, 0x6b, 0x50, 0xed, 0xb5, 0x53, 0xdd, 0x45, 0x6e, 0xd3, 0x69, 0x5f, 0x23, 0xd5, - 0x5b, 0xd2, 0x4e, 0xa2, 0x86, 0x32, 0xbe, 0x7e, 0xe3, 0x6c, 0x20, 0xeb, 0xf1, 0xdf, 0x4c, 0x48, - 0xcb, 0x15, 0x1c, 0x2e, 0x88, 0x6b, 0x24, 0xcd, 0x1b, 0x24, 0x0b, 0xdc, 0xd1, 0xb3, 0xde, 0x9b, - 0x2c, 0xe1, 0xfc, 0x5f, 0x18, 0xa0, 0x75, 0x95, 0x4d, 0x91, 0x78, 0xed, 0xc5, 0xbe, 0xe6, 0xd0, - 0x6a, 0x3d, 0x69, 0xb3, 0x2b, 0x94, 0xec, 0x06, 0x9e, 0xf2, 0x08, 0xef, 0x01, 0xc2, 0xfb, 0x64, - 0x6f, 0xde, 0x57, 0x57, 0x09, 0xf3, 0xa1, 0xab, 0xab, 0x95, 0xa5, 0x65, 0x7b, 0x71, 0x66, 0xc1, - 0x66, 0x70, 0xeb, 0x56, 0x88, 0x37, 0xab, 0xef, 0xba, 0xa6, 0xae, 0x14, 0xa4, 0xa9, 0x5f, 0xc5, - 0x23, 0x0e, 0x78, 0xcb, 0x43, 0xcd, 0xcf, 0xa4, 0xe9, 0x0d, 0x74, 0xfd, 0x33, 0x90, 0x20, 0xfa, - 0xb2, 0x00, 0x98, 0xc6, 0xb2, 0x07, 0xac, 0x24, 0xc4, 0x4b, 0xcb, 0x36, 0x76, 0x7f, 0xe4, 0xef, - 0xb4, 0xb5, 0xb2, 0x32, 0x5f, 0x2e, 0xa1, 0x08, 0xc8, 0x5f, 0x80, 0x01, 0xaa, 0x04, 0x1c, 0x1a, - 0x42, 0x0d, 0x08, 0x44, 0x2f, 0x19, 0x0f, 0x83, 0xf7, 0xae, 0x2f, 0x16, 0xcb, 0x76, 0x36, 0x26, - 0x9b, 0xf7, 0xcb, 0x06, 0xa4, 0xa4, 0x82, 0x0a, 0x2f, 0xe5, 0xd5, 0x66, 0xb3, 0xf5, 0x6c, 0xa5, - 0xda, 0x6c, 0xa0, 0x0c, 0x45, 0xed, 0x03, 0xa4, 0x69, 0x06, 0xb7, 0xf4, 0xab, 0xbf, 0x9f, 0x89, - 0x6f, 0x7e, 0xdc, 0x80, 0xac, 0x5e, 0x8c, 0x69, 0x02, 0x1a, 0x6f, 0xaa, 0x80, 0x1f, 0x35, 0x20, - 0xa3, 0x56, 0x60, 0x9a, 0x78, 0x27, 0xde, 0x54, 0xf1, 0x3e, 0x62, 0xc0, 0xb0, 0x52, 0x77, 0xfd, - 0x5c, 0x49, 0xf7, 0x61, 0x13, 0x0e, 0x06, 0xe0, 0x50, 0x02, 0xa2, 0x05, 0x2a, 0xad, 0x99, 0xef, - 0xed, 0x67, 0xac, 0x49, 0xbc, 0xfe, 0xad, 0x54, 0xdb, 0x1d, 0x56, 0xcf, 0xa2, 0xf5, 0xb2, 0x51, - 0x47, 0x49, 0xb5, 0xb1, 0xd9, 0x40, 0xe5, 0x1b, 0xbd, 0x63, 0xa1, 0x55, 0xeb, 0x88, 0xdf, 0x4e, - 0x6f, 0x8f, 0xef, 0x01, 0x6b, 0xb7, 0xe5, 0x35, 0x3a, 0x8d, 0x67, 0xf0, 0xf6, 0x1c, 0xbf, 0x91, - 0xc6, 0x55, 0x6c, 0xdc, 0xce, 0xf2, 0x9e, 0x79, 0xb7, 0x23, 0xa8, 0x5d, 0x67, 0xab, 0xaa, 0x51, - 0xe3, 0x34, 0x64, 0xda, 0x59, 0xde, 0x23, 0xa8, 0x51, 0xa1, 0x59, 0x6f, 0xed, 0xe1, 0x82, 0x80, - 0xd2, 0xe1, 0xac, 0x67, 0xd8, 0x29, 0xda, 0x26, 0x48, 0x58, 0xc5, 0xe6, 0xdf, 0xc1, 0xa7, 0xed, - 0x14, 0x6d, 0xa3, 0x24, 0x77, 0xc1, 0x48, 0x75, 0x6b, 0xab, 0x8d, 0x99, 0x73, 0x46, 0xb4, 0x0c, - 0xcd, 0x88, 0x66, 0x42, 0x38, 0x7e, 0x15, 0x92, 0x5c, 0x0f, 0x78, 0x61, 0xc1, 0x9a, 0x40, 0x6b, - 0x3e, 0xd9, 0x47, 0x89, 0xe1, 0x9b, 0x7a, 0x97, 0x77, 0xa2, 0x41, 0x1b, 0x5e, 0xc5, 0xdf, 0xd0, - 0x8b, 0xa1, 0xfe, 0xa4, 0x9d, 0x6a, 0x78, 0x62, 0x07, 0x27, 0xff, 0x69, 0xb4, 0xbc, 0xaa, 0x1b, - 0x92, 0xd6, 0x2c, 0x24, 0x9b, 0x2d, 0xe4, 0x1f, 0x18, 0x41, 0x77, 0xc3, 0x4f, 0x47, 0xec, 0x61, - 0x4e, 0x2e, 0x30, 0x7a, 0x5b, 0x20, 0xc7, 0xff, 0xd1, 0x80, 0x24, 0x6f, 0x46, 0x0b, 0x45, 0x7c, - 0xb7, 0xda, 0xd9, 0x26, 0xec, 0x12, 0xc5, 0x58, 0xd6, 0xb0, 0xc9, 0x35, 0x6e, 0x47, 0xd5, 0x8c, - 0x4b, 0x5c, 0x80, 0xb5, 0xe3, 0x6b, 0x6c, 0xd7, 0xa6, 0x53, 0xad, 0x93, 0x02, 0xb7, 0xb5, 0xb3, - 0x83, 0x2c, 0xe9, 0x71, 0xbb, 0xb2, 0xf6, 0x12, 0x6b, 0xc6, 0xfb, 0xe2, 0x9d, 0x76, 0xb5, 0xd1, - 0x54, 0x68, 0xe3, 0x84, 0x36, 0xcb, 0x3b, 0x04, 0x71, 0x01, 0x6e, 0xe5, 0x7c, 0xeb, 0x4e, 0xa7, - 0x8a, 0x8a, 0xe7, 0xba, 0x0f, 0x1a, 0x20, 0xbb, 0x5d, 0xb7, 0x30, 0x82, 0x59, 0xd6, 0xcf, 0xb1, - 0xc5, 0xc7, 0x51, 0x21, 0xdb, 0xda, 0xd1, 0x35, 0x51, 0xcc, 0x6a, 0xf7, 0x5d, 0xde, 0x23, 0xc6, - 0x3b, 0xc1, 0x2f, 0x2a, 0x3e, 0x19, 0x33, 0xaf, 0xac, 0x14, 0x3f, 0x1b, 0x1b, 0xbf, 0x42, 0x71, - 0x2b, 0x5c, 0x83, 0xb6, 0xb3, 0xd9, 0x74, 0x6a, 0x58, 0x3b, 0xf0, 0xe2, 0x1d, 0x70, 0xef, 0x56, - 0xa3, 0xb3, 0xbd, 0xb7, 0x31, 0x89, 0x46, 0x38, 0xb3, 0xd5, 0xda, 0x6a, 0xf9, 0xc7, 0x19, 0xf8, - 0x8a, 0x5c, 0x90, 0x6f, 0xec, 0x48, 0x63, 0x48, 0xb4, 0x8e, 0x47, 0x9e, 0x7f, 0x14, 0x96, 0xe0, - 0x20, 0x23, 0xae, 0x90, 0x3d, 0x55, 0x5a, 0x82, 0x5a, 0x3d, 0x6f, 0xc8, 0x73, 0x9f, 0xff, 0x2e, - 0x59, 0x12, 0xec, 0x51, 0x06, 0xc5, 0x7d, 0xb4, 0x48, 0x2d, 0xd8, 0x70, 0x58, 0xe1, 0x47, 0x7d, - 0x18, 0xdd, 0x72, 0xf7, 0xe6, 0xf8, 0x35, 0xc6, 0xf1, 0xa0, 0xc4, 0x71, 0x95, 0x41, 0x0b, 0x25, - 0x18, 0xde, 0x0f, 0xaf, 0xaf, 0x33, 0x5e, 0x69, 0x47, 0x66, 0x72, 0x05, 0x46, 0x08, 0x93, 0xda, - 0x9e, 0xd7, 0x69, 0xed, 0x90, 0x04, 0xd1, 0x9b, 0xcd, 0xdf, 0x7f, 0x97, 0x3a, 0x55, 0x06, 0xc3, - 0x4a, 0x02, 0x55, 0x78, 0x14, 0x0e, 0xe1, 0x16, 0x12, 0x83, 0x32, 0xb7, 0xe8, 0x2d, 0x84, 0xdc, - 0x3f, 0xbd, 0x87, 0xfa, 0xde, 0x41, 0xc1, 0x40, 0xe2, 0x2b, 0x59, 0x62, 0xcb, 0xe9, 0xa0, 0xdc, - 0x86, 0xee, 0xff, 0x9a, 0x4d, 0xab, 0xe7, 0x19, 0x43, 0xee, 0x43, 0xdf, 0x57, 0x2d, 0x71, 0x85, - 0x22, 0x67, 0x9a, 0xcd, 0xc2, 0x3a, 0xdc, 0x12, 0x60, 0xd9, 0x3e, 0x78, 0x7e, 0x98, 0xf1, 0x3c, - 0xd4, 0x65, 0x5d, 0xcc, 0x76, 0x05, 0x78, 0xbb, 0xb0, 0x47, 0x1f, 0x3c, 0x3f, 0xc2, 0x78, 0x5a, - 0x0c, 0xcb, 0xcd, 0x82, 0x39, 0x5e, 0x85, 0x51, 0x74, 0xa7, 0xbe, 0xd1, 0xf2, 0xd8, 0x7d, 0x6f, - 0x1f, 0xec, 0x3e, 0xca, 0xd8, 0x8d, 0x30, 0x20, 0xb9, 0x0b, 0xc6, 0xbc, 0xee, 0x83, 0xe4, 0x26, - 0xba, 0x01, 0xea, 0x83, 0xc5, 0xc7, 0x18, 0x8b, 0x41, 0x4c, 0x8f, 0xa1, 0x33, 0x90, 0xde, 0x6a, - 0xb1, 0x34, 0x1c, 0x0d, 0xff, 0x38, 0x83, 0xa7, 0x38, 0x86, 0xb1, 0xd8, 0x6d, 0xed, 0xee, 0x35, - 0x71, 0x8e, 0x8e, 0x66, 0xf1, 0x09, 0xce, 0x82, 0x63, 0x18, 0x8b, 0x7d, 0xa8, 0xf5, 0x05, 0xce, - 0xc2, 0x93, 0xf4, 0xf9, 0x30, 0xde, 0xeb, 0x6d, 0x5e, 0x6b, 0xb9, 0xfd, 0x08, 0xf1, 0x22, 0xe3, - 0x00, 0x0c, 0x82, 0x19, 0xdc, 0x0f, 0x43, 0xfd, 0x1a, 0xe2, 0x53, 0x0c, 0x9e, 0x74, 0xb8, 0x05, - 0x50, 0x9c, 0xf1, 0x24, 0x83, 0xcf, 0x56, 0xa2, 0x59, 0xfc, 0x31, 0x63, 0x91, 0x91, 0x60, 0x6c, - 0x1a, 0x1d, 0xc7, 0xeb, 0xa0, 0x5b, 0xf5, 0x3e, 0x98, 0x7c, 0x9a, 0x4f, 0x83, 0x41, 0x98, 0x2a, - 0x37, 0x1c, 0xb7, 0xb6, 0xdd, 0x1f, 0x87, 0x97, 0xb8, 0x2a, 0x39, 0x06, 0xb3, 0x40, 0x99, 0x67, - 0xa7, 0xda, 0x46, 0x37, 0xd7, 0xcd, 0xbe, 0xcc, 0xf1, 0x19, 0xc6, 0x23, 0x2d, 0x40, 0x4c, 0x23, - 0x7b, 0xee, 0x7e, 0xd8, 0x7c, 0x96, 0x6b, 0x44, 0x82, 0xb1, 0xd0, 0x43, 0x77, 0xa6, 0xb8, 0x92, - 0xd8, 0x0f, 0xb7, 0x3f, 0xe1, 0xa1, 0x47, 0xb1, 0x8b, 0x32, 0x47, 0x64, 0x69, 0x0f, 0xdd, 0x82, - 0xf7, 0xc3, 0xe6, 0x4f, 0xb9, 0xa5, 0x09, 0x00, 0x83, 0x9f, 0x80, 0x5b, 0x03, 0x53, 0x7d, 0x1f, - 0xcc, 0xfe, 0x8c, 0x31, 0x1b, 0x0b, 0x48, 0xf7, 0x2c, 0x25, 0xec, 0x97, 0xe5, 0x9f, 0xf3, 0x94, - 0xe0, 0x68, 0xbc, 0x56, 0x70, 0x19, 0xeb, 0x55, 0x37, 0xf7, 0xa7, 0xb5, 0xbf, 0xe0, 0x5a, 0xa3, - 0x58, 0x45, 0x6b, 0x6b, 0x30, 0xc6, 0x38, 0xee, 0xcf, 0xae, 0x9f, 0xe3, 0x89, 0x95, 0xa2, 0xd7, - 0x55, 0xeb, 0x3e, 0x09, 0xe3, 0x42, 0x9d, 0xbc, 0x02, 0xf3, 0x2a, 0x78, 0x63, 0x20, 0x9a, 0xf3, - 0xe7, 0x19, 0x67, 0x9e, 0xf1, 0x45, 0x09, 0xe7, 0x2d, 0x56, 0x77, 0x31, 0xf3, 0xc7, 0x21, 0xc7, - 0x99, 0xef, 0xb9, 0xa8, 0xc0, 0x6f, 0x6d, 0xb9, 0xc8, 0x8c, 0xf5, 0x3e, 0x58, 0x7f, 0x41, 0x33, - 0xd5, 0xba, 0x04, 0xc7, 0x9c, 0xe7, 0x21, 0x2b, 0xea, 0x8d, 0x4a, 0x63, 0x67, 0xb7, 0x85, 0x4a, - 0xcb, 0xde, 0x1c, 0xff, 0x92, 0x5b, 0x4a, 0xe0, 0xe6, 0x09, 0xac, 0x50, 0x86, 0x0c, 0xb9, 0xec, - 0xd7, 0x25, 0xbf, 0xc8, 0x18, 0x0d, 0xfb, 0x28, 0x96, 0x38, 0x50, 0xa5, 0x84, 0x6a, 0xde, 0x7e, - 0xf2, 0xdf, 0x5f, 0xf1, 0xc4, 0xc1, 0x20, 0xd4, 0xfb, 0x46, 0xb4, 0x95, 0xd8, 0x8a, 0x3a, 0x7e, - 0xcd, 0xfd, 0xf2, 0x6b, 0x2c, 0x66, 0xd5, 0x85, 0xb8, 0xb0, 0x80, 0xd5, 0xa3, 0x2e, 0x97, 0xd1, - 0xcc, 0xde, 0xf3, 0x9a, 0xd0, 0x90, 0xb2, 0x5a, 0x16, 0xe6, 0x60, 0x58, 0x59, 0x2a, 0xa3, 0x59, - 0xfd, 0x0a, 0x63, 0x95, 0x96, 0x57, 0xca, 0xc2, 0x05, 0x88, 0xe3, 0x65, 0x2f, 0x1a, 0xfe, 0xab, - 0x0c, 0x4e, 0xc8, 0x0b, 0x0f, 0x42, 0x92, 0x2f, 0x77, 0xd1, 0xd0, 0xf7, 0x32, 0xa8, 0x80, 0x60, - 0x38, 0x5f, 0xea, 0xa2, 0xe1, 0xbf, 0xc6, 0xe1, 0x1c, 0x82, 0xe1, 0xfd, 0xab, 0xf0, 0xe5, 0xdf, - 0x88, 0xb3, 0x74, 0xc5, 0x75, 0x87, 0xcf, 0x7c, 0xe8, 0x1a, 0x17, 0x8d, 0x7e, 0x3f, 0x1b, 0x9c, - 0x23, 0x0a, 0x97, 0x20, 0xd1, 0xa7, 0xc2, 0x7f, 0x93, 0x41, 0x29, 0x3d, 0x5a, 0x41, 0x52, 0xd2, - 0xba, 0x16, 0x0d, 0xff, 0x2d, 0x06, 0x97, 0x51, 0x58, 0x74, 0xb6, 0xae, 0x45, 0x33, 0xf8, 0x6d, - 0x2e, 0x3a, 0x43, 0x60, 0xb5, 0xf1, 0x25, 0x2d, 0x1a, 0xfd, 0x3b, 0x5c, 0xeb, 0x1c, 0x82, 0xa2, - 0x69, 0x48, 0xa4, 0xa9, 0x68, 0xfc, 0xef, 0x32, 0xbc, 0x8f, 0xc1, 0x1a, 0x90, 0xd2, 0x64, 0x34, - 0x8b, 0xdf, 0xe3, 0x1a, 0x90, 0x50, 0x38, 0x8c, 0xf4, 0xa5, 0x2f, 0x9a, 0xd3, 0x07, 0x78, 0x18, - 0x69, 0x2b, 0x1f, 0xb6, 0x26, 0xc9, 0x16, 0xd1, 0x2c, 0x7e, 0x9f, 0x5b, 0x93, 0xd0, 0x63, 0x31, - 0xf4, 0xb5, 0x24, 0x9a, 0xc7, 0x1f, 0x72, 0x31, 0xb4, 0xa5, 0x04, 0xad, 0x4c, 0x56, 0xf7, 0x3a, - 0x12, 0xcd, 0xef, 0x83, 0x8c, 0xdf, 0x68, 0xd7, 0x32, 0x52, 0x78, 0x0c, 0xc6, 0x82, 0xd7, 0x90, - 0x68, 0xae, 0x1f, 0x7a, 0x4d, 0xab, 0xfa, 0xe5, 0x25, 0x04, 0x2d, 0x79, 0x87, 0x82, 0xd6, 0x8f, - 0x68, 0xb6, 0x1f, 0x7e, 0x4d, 0xbd, 0xb1, 0x93, 0x97, 0x0f, 0x54, 0xa1, 0x81, 0x9f, 0xba, 0xa3, - 0x79, 0x7d, 0x94, 0xf1, 0x92, 0x40, 0x38, 0x34, 0x58, 0xe6, 0x8e, 0xc6, 0x7f, 0x8c, 0x87, 0x06, - 0x43, 0x20, 0x70, 0xd2, 0xdd, 0x6b, 0x36, 0xb1, 0x73, 0x58, 0xbd, 0x1f, 0x69, 0xc8, 0xfd, 0xc7, - 0x4f, 0x58, 0x60, 0x70, 0x00, 0xca, 0xa1, 0x09, 0x67, 0x67, 0x03, 0xe9, 0x20, 0x02, 0xf9, 0x9f, - 0x3f, 0xe1, 0x09, 0x01, 0x53, 0xa3, 0x78, 0x02, 0x7a, 0xd3, 0x48, 0xf6, 0xb0, 0x23, 0xb0, 0xff, - 0xf5, 0x13, 0x76, 0xcc, 0xea, 0x43, 0x7c, 0x06, 0xf4, 0xd0, 0xb6, 0x37, 0x83, 0xef, 0xab, 0x0c, - 0xc8, 0x8d, 0xe6, 0x7d, 0x30, 0x88, 0x9f, 0xec, 0xe8, 0x54, 0xb7, 0xa2, 0xd0, 0xff, 0xcd, 0xd0, - 0x9c, 0x1e, 0x2b, 0x6c, 0xa7, 0xd5, 0x76, 0xd0, 0x57, 0x2f, 0x0a, 0xfb, 0x3f, 0x0c, 0x2b, 0x00, - 0x18, 0x5c, 0xab, 0x7a, 0x9d, 0x7e, 0xe6, 0xfd, 0xbf, 0x1c, 0xcc, 0x01, 0x58, 0x68, 0xfc, 0xfd, - 0x69, 0xe7, 0x5a, 0x14, 0xf6, 0x07, 0x5c, 0x68, 0x46, 0x8f, 0x12, 0xe0, 0x10, 0xfe, 0x4a, 0x1f, - 0x3d, 0x88, 0x00, 0xff, 0x90, 0x81, 0x7d, 0x44, 0xf1, 0x44, 0xf0, 0xd6, 0x0e, 0x5c, 0x69, 0x5d, - 0x69, 0xd1, 0x4d, 0x1d, 0xf8, 0x7a, 0x03, 0x2e, 0x85, 0xee, 0xd1, 0xe0, 0x3c, 0x7c, 0x06, 0x35, - 0xa3, 0xd5, 0xf7, 0xcc, 0x46, 0xab, 0xb3, 0x7d, 0xa6, 0xb3, 0xed, 0xe0, 0x36, 0xb6, 0x5b, 0x13, - 0xc7, 0xdf, 0xc7, 0xf7, 0xb7, 0xc5, 0x43, 0xce, 0x6b, 0x96, 0x1a, 0x58, 0xea, 0x25, 0xb2, 0xd9, - 0x68, 0x1d, 0x81, 0x01, 0x32, 0x8f, 0xb3, 0x64, 0x2f, 0xdc, 0x28, 0xc6, 0xaf, 0xbf, 0x7a, 0xec, - 0x80, 0x3d, 0x40, 0x9e, 0xdb, 0x3b, 0x2b, 0x7a, 0xa7, 0xc9, 0x56, 0x7f, 0x4c, 0xe9, 0x9d, 0x16, - 0xbd, 0xe7, 0xe8, 0x43, 0x51, 0x4a, 0xef, 0x39, 0xd1, 0x7b, 0x9e, 0xec, 0x9b, 0x99, 0x4a, 0xef, - 0x79, 0xd1, 0x7b, 0x81, 0x6c, 0x7f, 0x0e, 0x2b, 0xbd, 0x17, 0x44, 0xef, 0x45, 0xb2, 0xe9, 0x19, - 0x57, 0x7a, 0x2f, 0x8a, 0xde, 0x4b, 0x64, 0xbf, 0x73, 0x54, 0xe9, 0xbd, 0x24, 0x7a, 0x2f, 0x93, - 0x7d, 0x4e, 0x4b, 0xe9, 0xbd, 0x2c, 0x7a, 0xef, 0x23, 0xc7, 0xd4, 0x83, 0x4a, 0xef, 0x7d, 0xd6, - 0x51, 0x18, 0xa4, 0xda, 0x98, 0x22, 0x47, 0x3b, 0x23, 0xac, 0x7b, 0x90, 0xaa, 0x63, 0xca, 0xef, - 0x3f, 0x4b, 0x8e, 0xa4, 0x07, 0xd4, 0xfe, 0xb3, 0x7e, 0xff, 0x34, 0x79, 0xcc, 0x32, 0xab, 0xf6, - 0x4f, 0xfb, 0xfd, 0xe7, 0x72, 0xc3, 0x38, 0xb6, 0xd5, 0xfe, 0x73, 0x7e, 0xff, 0xf9, 0x5c, 0x06, - 0xbb, 0x93, 0xda, 0x7f, 0xde, 0xef, 0xbf, 0x90, 0x1b, 0xc1, 0x5b, 0xbd, 0x6a, 0xff, 0x85, 0xfc, - 0xbb, 0x89, 0x79, 0x5d, 0xdf, 0xbc, 0x63, 0xaa, 0x79, 0x85, 0x61, 0xc7, 0x54, 0xc3, 0x0a, 0x93, - 0x8e, 0xa9, 0x26, 0x15, 0xc6, 0x1c, 0x53, 0x8d, 0x29, 0xcc, 0x38, 0xa6, 0x9a, 0x51, 0x18, 0x70, - 0x4c, 0x35, 0xa0, 0x30, 0xdd, 0x98, 0x6a, 0x3a, 0x61, 0xb4, 0x31, 0xd5, 0x68, 0xc2, 0x5c, 0x63, - 0xaa, 0xb9, 0x84, 0xa1, 0x72, 0x9a, 0xa1, 0x7c, 0x13, 0xe5, 0x34, 0x13, 0xf9, 0xc6, 0xc9, 0x69, - 0xc6, 0xf1, 0xcd, 0x92, 0xd3, 0xcc, 0xe2, 0x1b, 0x24, 0xa7, 0x19, 0xc4, 0x37, 0x45, 0x4e, 0x33, - 0x85, 0x6f, 0x04, 0x16, 0x63, 0xb6, 0xb3, 0x1b, 0x10, 0x63, 0x66, 0xcf, 0x18, 0x33, 0x7b, 0xc6, - 0x98, 0xd9, 0x33, 0xc6, 0xcc, 0x9e, 0x31, 0x66, 0xf6, 0x8c, 0x31, 0xb3, 0x67, 0x8c, 0x99, 0x3d, - 0x63, 0xcc, 0xec, 0x19, 0x63, 0x66, 0xef, 0x18, 0x33, 0x23, 0x62, 0xcc, 0x8c, 0x88, 0x31, 0x33, - 0x22, 0xc6, 0xcc, 0x88, 0x18, 0x33, 0x23, 0x62, 0xcc, 0x0c, 0x8d, 0x31, 0xdf, 0xbc, 0x63, 0xaa, - 0x79, 0x03, 0x63, 0xcc, 0x0c, 0x89, 0x31, 0x33, 0x24, 0xc6, 0xcc, 0x90, 0x18, 0x33, 0x43, 0x62, - 0xcc, 0x0c, 0x89, 0x31, 0x33, 0x24, 0xc6, 0xcc, 0x90, 0x18, 0x33, 0xc3, 0x62, 0xcc, 0x0c, 0x8d, - 0x31, 0x33, 0x34, 0xc6, 0xcc, 0xd0, 0x18, 0x33, 0x43, 0x63, 0xcc, 0x0c, 0x8d, 0x31, 0x53, 0x8e, - 0xb1, 0xbf, 0x31, 0xc1, 0xa2, 0x31, 0xb6, 0x42, 0x1e, 0x0e, 0x60, 0xa6, 0x38, 0xaa, 0x45, 0xda, - 0x00, 0x36, 0x5d, 0xd6, 0x37, 0xc9, 0x51, 0x2d, 0xd6, 0xd4, 0xfe, 0x69, 0xd1, 0xcf, 0xa3, 0x4d, - 0xed, 0x3f, 0x27, 0xfa, 0x79, 0xbc, 0xa9, 0xfd, 0xe7, 0x45, 0x3f, 0x8f, 0x38, 0xb5, 0xff, 0x82, - 0xe8, 0xe7, 0x31, 0xa7, 0xf6, 0x5f, 0x14, 0xfd, 0x3c, 0xea, 0xd4, 0xfe, 0x4b, 0xa2, 0x9f, 0xc7, - 0x9d, 0xda, 0x7f, 0x59, 0xf4, 0xf3, 0xc8, 0x53, 0xfb, 0xef, 0xb3, 0x8e, 0xeb, 0xb1, 0xc7, 0x09, - 0x84, 0x69, 0x8f, 0xeb, 0xd1, 0xa7, 0x51, 0x9c, 0xf5, 0x29, 0x78, 0xfc, 0x69, 0x14, 0xd3, 0x3e, - 0x05, 0x8f, 0x40, 0x8d, 0xe2, 0x5c, 0xfe, 0x7d, 0xc4, 0x7c, 0xae, 0x6e, 0xbe, 0x71, 0xcd, 0x7c, - 0x31, 0xc9, 0x74, 0xe3, 0x9a, 0xe9, 0x62, 0x92, 0xd9, 0xc6, 0x35, 0xb3, 0xc5, 0x24, 0x93, 0x8d, - 0x6b, 0x26, 0x8b, 0x49, 0xe6, 0x1a, 0xd7, 0xcc, 0x15, 0x93, 0x4c, 0x35, 0xae, 0x99, 0x2a, 0x26, - 0x99, 0x69, 0x5c, 0x33, 0x53, 0x4c, 0x32, 0xd1, 0xb8, 0x66, 0xa2, 0x98, 0x64, 0x9e, 0x71, 0xcd, - 0x3c, 0x31, 0xc9, 0x34, 0x47, 0x74, 0xd3, 0xc4, 0x64, 0xb3, 0x1c, 0xd1, 0xcd, 0x12, 0x93, 0x4d, - 0x72, 0x44, 0x37, 0x49, 0x4c, 0x36, 0xc7, 0x11, 0xdd, 0x1c, 0x31, 0xd9, 0x14, 0x3f, 0x8d, 0xf1, - 0x8a, 0x70, 0xb5, 0xd3, 0xde, 0xab, 0x75, 0x6e, 0xaa, 0x22, 0x9c, 0x52, 0xca, 0x87, 0xd4, 0xb4, - 0x35, 0x49, 0x0a, 0x56, 0xb9, 0xe2, 0xd4, 0x56, 0xb0, 0x29, 0xa5, 0xb0, 0x90, 0x10, 0x6e, 0x30, - 0xe2, 0xfc, 0x4d, 0xd5, 0x86, 0x53, 0x4a, 0x99, 0x11, 0x2d, 0xdf, 0xe5, 0x37, 0xbc, 0x62, 0x7b, - 0x39, 0xc6, 0x2b, 0x36, 0xa6, 0xfe, 0xfd, 0x56, 0x6c, 0x13, 0xd1, 0x2a, 0x17, 0xca, 0x9e, 0x88, - 0x56, 0x76, 0xd7, 0xaa, 0xd3, 0x6f, 0x05, 0x37, 0x11, 0xad, 0x5a, 0xa1, 0xd4, 0xd7, 0xb7, 0xde, - 0x62, 0x1e, 0x8c, 0x92, 0x49, 0x80, 0x07, 0xef, 0xb7, 0xde, 0x9a, 0x52, 0x52, 0xc9, 0x7e, 0x3d, - 0xd8, 0xdc, 0xb7, 0x07, 0xef, 0xb7, 0xf2, 0x9a, 0x52, 0xd2, 0xcb, 0xbe, 0x3d, 0xf8, 0x0d, 0xa8, - 0x87, 0x98, 0x07, 0xfb, 0xea, 0xdf, 0x6f, 0x3d, 0x34, 0x11, 0xad, 0xf2, 0x40, 0x0f, 0x36, 0xf7, - 0xe1, 0xc1, 0xfd, 0xd4, 0x47, 0x13, 0xd1, 0xaa, 0x0d, 0xf6, 0xe0, 0x9b, 0xae, 0x66, 0x3e, 0x61, - 0xc0, 0x28, 0x1a, 0xa6, 0x8c, 0xf7, 0x79, 0xea, 0x4e, 0x9d, 0xe9, 0x71, 0x4a, 0xc9, 0x04, 0x21, - 0xa6, 0x7e, 0xe5, 0xd5, 0x63, 0xbe, 0x86, 0x2f, 0x40, 0x92, 0x6a, 0x78, 0x6a, 0x2a, 0x77, 0xdd, - 0x88, 0xc8, 0x70, 0xc9, 0x4d, 0x46, 0x6a, 0x9d, 0xe0, 0x30, 0xb4, 0xf6, 0x7c, 0xc3, 0x90, 0xb2, - 0x1c, 0x23, 0x39, 0x3b, 0x95, 0xff, 0x00, 0x91, 0xd0, 0xbd, 0x69, 0x09, 0xcf, 0xf4, 0x25, 0xa1, - 0x24, 0xdb, 0x6d, 0x5d, 0xb2, 0x49, 0x52, 0xed, 0xc1, 0x08, 0x82, 0x2d, 0x91, 0x1f, 0xf8, 0xf5, - 0x23, 0x12, 0xa5, 0xd1, 0xf2, 0xc1, 0x94, 0xe2, 0x96, 0x32, 0x42, 0xb8, 0xb4, 0x9a, 0x23, 0xf2, - 0x0d, 0x3c, 0xac, 0xab, 0x0c, 0x3b, 0x11, 0x36, 0xac, 0x9f, 0xd9, 0xc5, 0x80, 0x13, 0x61, 0x03, - 0xfa, 0x31, 0x24, 0x86, 0x7a, 0x8e, 0x2f, 0xce, 0xf4, 0x79, 0x0f, 0x94, 0x1c, 0x62, 0xf3, 0xf4, - 0xb1, 0xc5, 0x74, 0x31, 0x8d, 0x85, 0xfa, 0xd7, 0x57, 0x8f, 0xc5, 0xd7, 0xf7, 0x90, 0xac, 0xb1, - 0x46, 0xdd, 0xba, 0x0a, 0x89, 0x47, 0xd9, 0xef, 0x6b, 0x30, 0xc1, 0x79, 0x46, 0x70, 0x4f, 0xc4, - 0x16, 0x13, 0x61, 0x3d, 0xb9, 0xde, 0x70, 0x3b, 0x67, 0xa7, 0x2f, 0xb3, 0x9f, 0xda, 0xe4, 0xff, - 0x3f, 0x00, 0x1d, 0x73, 0x16, 0xff, 0x3e, 0x60, 0x89, 0x73, 0xa6, 0x43, 0x5f, 0x46, 0x5c, 0xcf, - 0xf7, 0xc3, 0xf5, 0xde, 0x3a, 0x42, 0xdf, 0x8b, 0x37, 0xe2, 0x26, 0x8b, 0xd7, 0x50, 0x3b, 0xe7, - 0xbe, 0xcb, 0x57, 0x3d, 0x36, 0xaf, 0x9c, 0x34, 0xaf, 0xa4, 0x32, 0xa7, 0x39, 0x75, 0x4e, 0x53, - 0x37, 0x3a, 0x9f, 0xe7, 0xf8, 0x22, 0xa1, 0x69, 0xd2, 0x8c, 0xd2, 0xa4, 0x79, 0xb3, 0x9a, 0xdc, - 0xe5, 0xf9, 0x51, 0x9b, 0xab, 0xd9, 0x6b, 0xae, 0xe6, 0xcd, 0xcc, 0xf5, 0x47, 0x34, 0x5a, 0x45, - 0x3c, 0xad, 0xbb, 0xf4, 0x71, 0xb9, 0x9f, 0xaf, 0xbd, 0xa0, 0xd7, 0xb5, 0x0a, 0x28, 0xc4, 0xaf, - 0xbf, 0x70, 0xcc, 0xc8, 0x7f, 0x22, 0xc6, 0x67, 0x4e, 0x03, 0xe9, 0xc6, 0x66, 0xfe, 0xf3, 0x52, - 0x53, 0xbd, 0x11, 0x1a, 0xfa, 0xb8, 0x01, 0x63, 0x5d, 0x99, 0x9c, 0xaa, 0xe9, 0xf5, 0x4d, 0xe7, - 0xee, 0x7e, 0xd3, 0x39, 0x13, 0xf0, 0x8b, 0x06, 0x1c, 0xd2, 0xd2, 0x2b, 0x15, 0xef, 0x8c, 0x26, - 0xde, 0x2d, 0xdd, 0x23, 0x11, 0x42, 0x49, 0x3a, 0xd9, 0xbc, 0x1a, 0x40, 0xe2, 0x2c, 0xec, 0x7e, - 0x5e, 0xb3, 0xfb, 0x11, 0x01, 0x08, 0x50, 0x17, 0xf7, 0x00, 0x26, 0x76, 0x0b, 0xe2, 0x6b, 0x6d, - 0x07, 0x6f, 0x41, 0xc4, 0x96, 0xdb, 0x4c, 0xc2, 0x0c, 0xc5, 0x2f, 0xb7, 0x8b, 0xed, 0xaa, 0x5b, - 0xdb, 0xb6, 0x63, 0xad, 0x36, 0x5a, 0x6c, 0xcd, 0x19, 0xf6, 0x43, 0xe4, 0xd4, 0xf4, 0x08, 0x25, - 0x40, 0x0d, 0x8c, 0xc2, 0xac, 0xba, 0x75, 0xc4, 0x22, 0xbe, 0xe0, 0x54, 0x37, 0x99, 0x10, 0x40, - 0x69, 0x70, 0x8b, 0x1d, 0x6f, 0xa2, 0x7f, 0xd9, 0x80, 0x8f, 0x43, 0x92, 0x33, 0xb6, 0x4e, 0x62, - 0xc4, 0x66, 0x87, 0x0d, 0xcb, 0x10, 0x58, 0x1c, 0xb6, 0x72, 0x21, 0xdc, 0x66, 0xc7, 0x3a, 0x05, - 0x09, 0xbb, 0xb1, 0xb5, 0xdd, 0x61, 0x83, 0x77, 0x93, 0x25, 0xda, 0xb8, 0x3b, 0xff, 0x04, 0x0c, - 0x09, 0x89, 0x5e, 0x67, 0xd6, 0xb3, 0x74, 0x6a, 0xe8, 0x4e, 0x58, 0x5a, 0x4f, 0xf8, 0xbe, 0x25, - 0xfb, 0x91, 0xe7, 0x71, 0x48, 0x22, 0x35, 0xfb, 0x49, 0x9f, 0x57, 0xa4, 0xf8, 0x44, 0x9e, 0xb4, - 0xe6, 0xdf, 0x6d, 0x40, 0x72, 0xd6, 0x71, 0x76, 0x89, 0xc2, 0xef, 0x84, 0xf8, 0x6c, 0xeb, 0x59, - 0x97, 0x09, 0x38, 0xca, 0x34, 0x8a, 0xbb, 0x99, 0x4e, 0xe3, 0x75, 0xd4, 0x8d, 0xc8, 0x24, 0xbd, - 0x1f, 0x14, 0x7a, 0x97, 0xe8, 0x88, 0xee, 0xf3, 0x8a, 0xee, 0x99, 0x01, 0x31, 0x51, 0x97, 0xfe, - 0x2f, 0x41, 0x4a, 0x1a, 0xc5, 0x3a, 0xcd, 0xc4, 0x88, 0xe9, 0x40, 0x59, 0x57, 0x58, 0x92, 0xbc, - 0x03, 0xc3, 0xca, 0xc0, 0x18, 0x2a, 0xa9, 0x38, 0x04, 0x4a, 0xd4, 0x3c, 0xa1, 0xaa, 0x39, 0x98, - 0x94, 0xa9, 0x7a, 0x8a, 0xea, 0x88, 0xa8, 0xfb, 0x24, 0x75, 0xce, 0x70, 0x23, 0x76, 0xd0, 0xf7, - 0x7c, 0x02, 0xcc, 0xa5, 0x46, 0x33, 0xff, 0x20, 0x00, 0x0d, 0x79, 0xfc, 0x70, 0x95, 0x16, 0x75, - 0x19, 0xae, 0xe0, 0xb5, 0x6d, 0x67, 0x0d, 0xfd, 0xc5, 0x24, 0x6a, 0x3d, 0x85, 0x13, 0x0c, 0xd0, - 0x10, 0x23, 0xf8, 0xbb, 0x23, 0xf1, 0x81, 0x95, 0x18, 0x26, 0xcd, 0x51, 0xd2, 0x27, 0x9c, 0xce, - 0x8c, 0xdb, 0xea, 0x6c, 0x3b, 0x6d, 0x0d, 0x31, 0x6d, 0x9d, 0x53, 0x02, 0x36, 0x33, 0x7d, 0x9b, - 0x40, 0x84, 0x82, 0xce, 0xe5, 0x3f, 0x47, 0x04, 0xc4, 0xa5, 0x40, 0xd7, 0x04, 0xcd, 0x3e, 0x26, - 0x68, 0x5d, 0x54, 0xea, 0xb7, 0x1e, 0x62, 0x6a, 0xb7, 0x96, 0xf7, 0x29, 0xf7, 0x39, 0xbd, 0x85, - 0x55, 0xef, 0x31, 0xb9, 0x4e, 0xb9, 0xc8, 0x77, 0x47, 0x8a, 0x1c, 0x52, 0xdd, 0xee, 0x57, 0xa7, - 0x66, 0xbf, 0x3a, 0xfd, 0xb2, 0xa8, 0x38, 0xe8, 0x6f, 0xc1, 0xc9, 0x1b, 0x04, 0xac, 0x7b, 0x22, - 0x6d, 0x5f, 0x30, 0x4a, 0x42, 0xd4, 0xf3, 0xfd, 0x9a, 0xbf, 0x10, 0x2b, 0x16, 0x85, 0xb8, 0x97, - 0xf6, 0xe1, 0x02, 0x85, 0x58, 0xa9, 0x24, 0xd2, 0x76, 0xf2, 0x7d, 0x28, 0x8a, 0x5f, 0x7a, 0xe1, - 0xd8, 0x81, 0xfc, 0x67, 0x90, 0xf0, 0x8c, 0x52, 0x72, 0xdc, 0x7b, 0x35, 0xe1, 0x0f, 0xf3, 0x9c, - 0x11, 0xa4, 0x81, 0x9f, 0x99, 0xf3, 0x7e, 0xcd, 0x80, 0x5c, 0x97, 0xac, 0x5c, 0xdf, 0x53, 0x7d, - 0x89, 0x5c, 0x30, 0xca, 0x6f, 0xbe, 0xce, 0x9f, 0x80, 0xc4, 0x5a, 0x63, 0xc7, 0x69, 0xe3, 0x95, - 0x00, 0x7f, 0xa1, 0x22, 0xf3, 0xc3, 0x9c, 0x44, 0x07, 0x37, 0xf1, 0x3e, 0x2a, 0x9c, 0xd2, 0x87, - 0xcf, 0x13, 0xe2, 0xb3, 0xd5, 0x4e, 0x95, 0x48, 0x90, 0x16, 0xf9, 0x15, 0xb5, 0xe4, 0xcf, 0x41, - 0x7a, 0xf1, 0x1a, 0x79, 0x0a, 0xa5, 0x4e, 0x1e, 0xd0, 0x50, 0xab, 0x3f, 0x5e, 0xaf, 0x9e, 0x9d, - 0x48, 0x24, 0xeb, 0xd9, 0xeb, 0x46, 0x21, 0x4e, 0xe4, 0x79, 0x06, 0x32, 0xcb, 0x58, 0x6c, 0x82, - 0x23, 0xb0, 0xe3, 0x60, 0x2c, 0xaa, 0x85, 0x90, 0xcc, 0xd5, 0x36, 0x76, 0xb4, 0xf2, 0xd1, 0x14, - 0xea, 0xd1, 0xca, 0x36, 0x53, 0x94, 0x6d, 0x13, 0xf1, 0x64, 0x26, 0x3b, 0x8a, 0xfe, 0x85, 0xec, - 0x30, 0x1b, 0xf7, 0x1f, 0x4c, 0xc8, 0xd2, 0x52, 0x07, 0x19, 0xb1, 0xe1, 0x36, 0x3a, 0xdd, 0xf5, - 0xaa, 0x90, 0xd8, 0x7a, 0x18, 0x86, 0xb0, 0x4a, 0xe7, 0xd8, 0x8b, 0x78, 0xb0, 0xea, 0x4f, 0xb0, - 0x12, 0x45, 0x63, 0xc1, 0x1a, 0x88, 0xeb, 0x90, 0x77, 0xde, 0x10, 0x0c, 0xba, 0xc1, 0x30, 0x97, - 0x96, 0x16, 0xd9, 0xe2, 0x76, 0xbe, 0x27, 0x94, 0x3d, 0x02, 0xc3, 0xae, 0x58, 0x9b, 0xb7, 0x65, - 0x9b, 0xee, 0xd2, 0x22, 0x72, 0x9b, 0x18, 0x62, 0x43, 0x0b, 0xde, 0x93, 0xfd, 0xb0, 0xb1, 0x63, - 0xee, 0xe2, 0xf8, 0xdf, 0x1a, 0x30, 0xac, 0xb4, 0xa2, 0xd5, 0x36, 0x4d, 0x1b, 0xa4, 0xe9, 0x0e, - 0xd8, 0x69, 0x57, 0x6a, 0xe3, 0x32, 0xc7, 0x6e, 0x52, 0xe6, 0xf1, 0x19, 0x74, 0xd7, 0xae, 0xb6, - 0x5b, 0x93, 0x60, 0xc9, 0x4d, 0x4c, 0x08, 0xfa, 0x12, 0x13, 0xcb, 0xed, 0xea, 0xc9, 0xdf, 0x8e, - 0xb2, 0xb0, 0xd0, 0xab, 0x78, 0xf7, 0xc6, 0x52, 0x79, 0x15, 0xbf, 0x36, 0xc3, 0xc8, 0x7f, 0xc9, - 0x80, 0x14, 0x2b, 0x5b, 0x6b, 0xad, 0x5d, 0xc7, 0x2a, 0x82, 0x31, 0xc3, 0x3c, 0xe8, 0xc6, 0xe4, - 0x36, 0xaa, 0x68, 0x75, 0x32, 0x8a, 0xfd, 0x9b, 0xda, 0xd8, 0xb0, 0xa6, 0xc1, 0x28, 0x31, 0x03, - 0xf7, 0x67, 0x19, 0xa3, 0x96, 0xff, 0xa1, 0x09, 0x07, 0xe5, 0x32, 0x9a, 0xe7, 0x93, 0x13, 0xea, - 0x7d, 0x53, 0x61, 0xe8, 0xec, 0xf4, 0xb9, 0xf3, 0x93, 0xf8, 0x1f, 0xe1, 0x92, 0x27, 0xd4, 0x5b, - 0xa8, 0x6e, 0x92, 0xae, 0xc7, 0x44, 0x0a, 0x71, 0xa9, 0xb7, 0xeb, 0x31, 0x11, 0xa5, 0xb7, 0xeb, - 0x31, 0x11, 0xa5, 0xb7, 0xeb, 0x31, 0x11, 0xa5, 0xb7, 0xeb, 0x28, 0x40, 0xe9, 0xed, 0x7a, 0x4c, - 0x44, 0xe9, 0xed, 0x7a, 0x4c, 0x44, 0xe9, 0xed, 0x7e, 0x4c, 0x84, 0x75, 0x87, 0x3e, 0x26, 0xa2, - 0xf6, 0x77, 0x3f, 0x26, 0xa2, 0xf6, 0x77, 0x3f, 0x26, 0x52, 0x40, 0xf5, 0xd9, 0x9e, 0x13, 0x7e, - 0xe8, 0xa0, 0xe2, 0x7b, 0xdd, 0x03, 0xfa, 0x09, 0x78, 0x19, 0x46, 0xe8, 0x7e, 0x44, 0x09, 0x3f, - 0xa1, 0xd5, 0x70, 0x51, 0x2a, 0x7e, 0x00, 0xd2, 0xb4, 0x89, 0xde, 0xe5, 0x04, 0xdd, 0x05, 0xd2, - 0x7e, 0x96, 0x6e, 0xd3, 0x35, 0x89, 0x3a, 0xff, 0xd3, 0x38, 0x8c, 0xd1, 0x6e, 0xfc, 0x33, 0x42, - 0xe5, 0x21, 0xa3, 0x53, 0xda, 0x91, 0x52, 0x06, 0xc3, 0xbf, 0xfd, 0xea, 0x31, 0xda, 0x3a, 0x23, - 0x9c, 0xe9, 0x94, 0x76, 0xb8, 0xa4, 0xd2, 0xf9, 0xeb, 0xcf, 0x29, 0xed, 0xc1, 0x23, 0x95, 0x4e, - 0x2c, 0x37, 0x82, 0x8e, 0x3f, 0x82, 0xa4, 0xd2, 0xcd, 0x0a, 0x2f, 0x3b, 0xa5, 0x3d, 0x8c, 0xa4, - 0xd2, 0x95, 0x85, 0xbf, 0x9d, 0xd2, 0x8e, 0x9e, 0x54, 0xba, 0x39, 0xe1, 0x79, 0xa7, 0xb4, 0x43, - 0x28, 0x95, 0xee, 0x8a, 0xf0, 0xc1, 0x53, 0xda, 0xa3, 0x4a, 0x2a, 0xdd, 0x23, 0xc2, 0x1b, 0x4f, - 0x69, 0x0f, 0x2d, 0xa9, 0x74, 0xf3, 0xc2, 0x2f, 0x4f, 0xeb, 0x8f, 0x2f, 0xa9, 0x84, 0x57, 0x7d, - 0x0f, 0x3d, 0xad, 0x3f, 0xc8, 0xa4, 0x52, 0xbe, 0xdd, 0xf7, 0xd5, 0xd3, 0xfa, 0x23, 0x4d, 0x2a, - 0xe5, 0x82, 0xef, 0xb5, 0xa7, 0xf5, 0xa3, 0x32, 0x95, 0x72, 0xd1, 0xf7, 0xdf, 0xd3, 0xfa, 0xa1, - 0x99, 0x4a, 0xb9, 0xe4, 0x7b, 0xf2, 0x69, 0xfd, 0xf8, 0x4c, 0xa5, 0x5c, 0xf6, 0xf7, 0xd0, 0xbf, - 0xa2, 0xb9, 0x9f, 0xf4, 0x10, 0x54, 0x5e, 0x73, 0x3f, 0x08, 0x70, 0xbd, 0xbc, 0xe6, 0x7a, 0x10, - 0xe0, 0x76, 0x79, 0xcd, 0xed, 0x20, 0xc0, 0xe5, 0xf2, 0x9a, 0xcb, 0x41, 0x80, 0xbb, 0xe5, 0x35, - 0x77, 0x83, 0x00, 0x57, 0xcb, 0x6b, 0xae, 0x06, 0x01, 0x6e, 0x96, 0xd7, 0xdc, 0x0c, 0x02, 0x5c, - 0x2c, 0xaf, 0xb9, 0x18, 0x04, 0xb8, 0x57, 0x5e, 0x73, 0x2f, 0x08, 0x70, 0xad, 0x93, 0xba, 0x6b, - 0x41, 0x90, 0x5b, 0x9d, 0xd4, 0xdd, 0x0a, 0x82, 0x5c, 0xea, 0x0e, 0xdd, 0xa5, 0x86, 0x10, 0x55, - 0x02, 0x37, 0x49, 0xde, 0x74, 0x52, 0xf7, 0x26, 0x08, 0xf2, 0xa4, 0x93, 0xba, 0x27, 0x41, 0x90, - 0x17, 0x9d, 0xd4, 0xbd, 0x08, 0x82, 0x3c, 0xe8, 0x65, 0xdd, 0x83, 0xfc, 0x47, 0x7c, 0xf2, 0xda, - 0x89, 0x62, 0x94, 0x07, 0x99, 0x7d, 0x78, 0x90, 0xd9, 0x87, 0x07, 0x99, 0x7d, 0x78, 0x90, 0xd9, - 0x87, 0x07, 0x99, 0x7d, 0x78, 0x90, 0xd9, 0x87, 0x07, 0x99, 0x7d, 0x78, 0x90, 0xd9, 0x8f, 0x07, - 0x99, 0x7d, 0x79, 0x90, 0x19, 0xe6, 0x41, 0x27, 0xf5, 0x07, 0x1e, 0x20, 0x28, 0x21, 0x9d, 0xd4, - 0x4f, 0x3e, 0xa3, 0x5d, 0xc8, 0xec, 0xcb, 0x85, 0xcc, 0x30, 0x17, 0xfa, 0x0a, 0x2a, 0xa4, 0x14, - 0x17, 0x62, 0xc7, 0x43, 0xaf, 0x57, 0x06, 0xba, 0xd8, 0xc7, 0xf3, 0x15, 0x41, 0x3e, 0x75, 0xb1, - 0x8f, 0x33, 0xea, 0x5e, 0x7e, 0xd6, 0x9d, 0x85, 0xca, 0x7d, 0x64, 0xa1, 0x39, 0xe1, 0x43, 0x17, - 0xfb, 0x78, 0xee, 0xa2, 0xdb, 0xf7, 0x2e, 0xf7, 0x4a, 0x02, 0x8f, 0xf4, 0x95, 0x04, 0xe6, 0xfb, - 0x4a, 0x02, 0x57, 0x7d, 0x0b, 0xbe, 0x37, 0x06, 0x87, 0x7c, 0x0b, 0xd2, 0x6f, 0xe4, 0x15, 0x2a, - 0x79, 0xe9, 0x84, 0xca, 0xe2, 0xa7, 0x36, 0x92, 0x19, 0xf1, 0xf9, 0xcd, 0x8a, 0x7a, 0x56, 0x55, - 0xd8, 0xef, 0xf9, 0x8d, 0x64, 0x71, 0xb6, 0x17, 0x7a, 0x12, 0xcc, 0xf9, 0xba, 0x47, 0xb2, 0x45, - 0xd0, 0xb0, 0x25, 0xdb, 0x6c, 0xd4, 0x3d, 0xcb, 0x86, 0x01, 0x32, 0xae, 0x47, 0xcc, 0x7b, 0x33, - 0x03, 0x23, 0xd3, 0x93, 0x81, 0xbd, 0xfc, 0xcb, 0x06, 0x1c, 0x57, 0x5c, 0xf9, 0xf5, 0x39, 0x31, - 0xb8, 0xbf, 0xaf, 0x13, 0x03, 0x25, 0x40, 0xfc, 0xd3, 0x83, 0xbb, 0xba, 0x0f, 0xaa, 0xe5, 0x28, - 0xd1, 0x4f, 0x12, 0x7e, 0x09, 0x32, 0xfe, 0x0c, 0xc8, 0x2d, 0xdb, 0x85, 0xe8, 0xcd, 0xcc, 0xa0, - 0xd0, 0xbc, 0xa0, 0x6d, 0xa2, 0xf5, 0x84, 0x89, 0x68, 0xcd, 0x17, 0xd0, 0x1d, 0xa7, 0xfa, 0x73, - 0x98, 0xa8, 0xbd, 0x88, 0x24, 0x2e, 0xcd, 0xaf, 0xbf, 0x88, 0xca, 0xf3, 0x7b, 0x20, 0x2d, 0xff, - 0xe2, 0x45, 0x03, 0x0e, 0x71, 0x60, 0x21, 0xfe, 0x0a, 0xa6, 0xfe, 0x03, 0x03, 0x0e, 0xcb, 0xe4, - 0x8f, 0x21, 0xdb, 0xcf, 0xbb, 0xb8, 0xa6, 0x7f, 0x10, 0x92, 0x0e, 0x33, 0x1c, 0x7b, 0xed, 0x06, - 0xbb, 0x8d, 0x0c, 0x24, 0x9f, 0x24, 0xff, 0xda, 0x02, 0xa2, 0x6d, 0x71, 0xf0, 0x61, 0xa7, 0xc7, - 0xef, 0x84, 0x04, 0xe5, 0xaf, 0xca, 0x35, 0xac, 0xc9, 0xf5, 0xa9, 0x00, 0xb9, 0x88, 0x1f, 0x59, - 0x57, 0x15, 0xb9, 0xa4, 0xbb, 0xd5, 0x40, 0xf2, 0x49, 0xee, 0x7c, 0xc5, 0x24, 0xae, 0xff, 0x88, - 0x47, 0x45, 0x0b, 0x79, 0x1a, 0x92, 0x65, 0x9d, 0x26, 0x58, 0xce, 0x59, 0x88, 0x2f, 0xe1, 0xb7, - 0x89, 0x1d, 0x62, 0x6f, 0xcf, 0x64, 0x4a, 0x66, 0x6f, 0x68, 0x3d, 0x05, 0xc9, 0xd2, 0x76, 0xa3, - 0x59, 0x6f, 0x3b, 0x2e, 0x3b, 0xb2, 0x67, 0x3b, 0xe8, 0x18, 0x63, 0x27, 0x6b, 0xac, 0x6f, 0x22, - 0x0f, 0x29, 0xc9, 0x25, 0xac, 0x04, 0xba, 0xfd, 0xcf, 0x1e, 0xc0, 0x7f, 0x8a, 0x59, 0x03, 0xff, - 0x29, 0x65, 0x63, 0x13, 0x77, 0xc2, 0x88, 0xb6, 0x41, 0x86, 0x7b, 0x66, 0xb3, 0x80, 0xff, 0x94, - 0xb3, 0xa9, 0xf1, 0xf8, 0xfb, 0xfe, 0xe8, 0xe8, 0x81, 0x89, 0xfb, 0xc1, 0xea, 0xde, 0x4a, 0xb3, - 0x06, 0x20, 0x36, 0x83, 0x59, 0xde, 0x02, 0xb1, 0x22, 0xe2, 0x39, 0x3e, 0xf2, 0xeb, 0x1f, 0x3b, - 0x9e, 0x2a, 0x92, 0x1f, 0x8c, 0x22, 0xea, 0x62, 0x91, 0x81, 0x1f, 0x82, 0xc3, 0x81, 0x5b, 0x71, - 0x18, 0x5f, 0x2a, 0x51, 0xfc, 0xec, 0x6c, 0x17, 0x7e, 0x76, 0x96, 0xe0, 0x8d, 0x02, 0x3f, 0xd2, - 0x9c, 0xb1, 0x02, 0x36, 0xbe, 0x72, 0x75, 0xe9, 0x08, 0x75, 0xa6, 0xf0, 0x10, 0xa3, 0x2d, 0x06, - 0xd2, 0x3a, 0x11, 0x47, 0xa2, 0xc5, 0x42, 0x89, 0xe1, 0x4b, 0x81, 0xf8, 0x4d, 0xed, 0xdc, 0x4e, - 0xcd, 0x41, 0x8c, 0x49, 0x49, 0x08, 0x3c, 0x1b, 0xc8, 0x64, 0x5b, 0x7a, 0x9a, 0x7a, 0x56, 0x08, - 0x5c, 0x0e, 0xa4, 0x6d, 0x44, 0x3c, 0x55, 0x54, 0x2e, 0x9c, 0x61, 0xcb, 0xc8, 0xcc, 0x59, 0xeb, - 0x30, 0xf7, 0x02, 0x25, 0xc6, 0x99, 0x82, 0xe8, 0x8a, 0x32, 0x73, 0x16, 0xcd, 0x90, 0x02, 0x8a, - 0xa1, 0x80, 0x70, 0x2d, 0x51, 0x26, 0xc5, 0xb3, 0x85, 0x47, 0x18, 0x93, 0x52, 0x28, 0x93, 0x08, - 0x55, 0x51, 0x4e, 0xa5, 0xb3, 0xc5, 0xb5, 0xeb, 0xdf, 0x3a, 0x7a, 0xe0, 0x15, 0xf4, 0xf9, 0x17, - 0xf4, 0xf9, 0xe6, 0xb7, 0x8e, 0x1a, 0xdf, 0x43, 0x9f, 0x1f, 0xa0, 0xcf, 0x8f, 0xd1, 0xe7, 0xf9, - 0x6f, 0x1f, 0x35, 0x5e, 0x42, 0x9f, 0xcf, 0xa1, 0xcf, 0x5f, 0xa3, 0xcf, 0xcb, 0xe8, 0x73, 0x1d, - 0x7d, 0x5e, 0x41, 0x9f, 0x6f, 0xa2, 0xcf, 0xf7, 0xbe, 0x7d, 0xf4, 0xc0, 0x0f, 0xd0, 0xdf, 0x1f, - 0xa3, 0xbf, 0xcf, 0x7f, 0xe7, 0xe8, 0x81, 0x17, 0xd0, 0xe7, 0xa5, 0xef, 0x1c, 0x35, 0xe0, 0xab, - 0xe7, 0xe1, 0x04, 0xfb, 0xa9, 0x12, 0xfd, 0x71, 0x21, 0xff, 0xc1, 0x12, 0x59, 0x75, 0xce, 0xf1, - 0x17, 0xcc, 0x88, 0x86, 0x7d, 0xfe, 0x6e, 0x69, 0xfc, 0x46, 0x7f, 0x25, 0x95, 0xff, 0xbb, 0x04, - 0x0c, 0xf2, 0xdd, 0xc6, 0xa0, 0x77, 0x97, 0x5e, 0x80, 0x24, 0x0a, 0xdf, 0x6a, 0xbb, 0xd1, 0xb9, - 0xc6, 0xb6, 0xd9, 0x6e, 0x9d, 0xf4, 0xc5, 0xe6, 0x1b, 0x73, 0x8f, 0xec, 0xed, 0xb4, 0xf6, 0x50, - 0x5e, 0xe4, 0xa4, 0xd6, 0x71, 0x48, 0x6f, 0x3b, 0xf8, 0x98, 0xad, 0xd2, 0x70, 0x2b, 0xb5, 0x1d, - 0x52, 0x8e, 0x0d, 0xdb, 0x40, 0xdb, 0xe6, 0xdd, 0xd2, 0x0e, 0x1e, 0x0c, 0xef, 0x46, 0x93, 0xdb, - 0xc0, 0x34, 0xdd, 0x99, 0xc6, 0x6f, 0x4e, 0x6a, 0x3b, 0x1e, 0x7e, 0xe1, 0x72, 0xad, 0xb5, 0xe7, - 0x76, 0x48, 0xc1, 0x64, 0xda, 0x29, 0xda, 0x56, 0xc2, 0x4d, 0xf8, 0xa5, 0xcc, 0x78, 0xaf, 0xa7, - 0xe2, 0xd5, 0x5a, 0x1d, 0x6f, 0xa7, 0xea, 0x92, 0x82, 0x29, 0x69, 0xa7, 0x71, 0xe3, 0x2a, 0x6b, - 0x23, 0xaf, 0xb8, 0xae, 0xb5, 0xda, 0x0e, 0xb9, 0x5f, 0x8b, 0xd9, 0xf4, 0x02, 0xbf, 0xe2, 0xfa, - 0x69, 0xe7, 0x1a, 0xb9, 0x23, 0x88, 0xdb, 0xf8, 0x2b, 0x3e, 0x27, 0xa2, 0xbb, 0x98, 0xa4, 0x7c, - 0x23, 0x87, 0xa3, 0x62, 0x6a, 0x74, 0x13, 0xd0, 0x66, 0x04, 0xf8, 0x65, 0xb1, 0x28, 0x0b, 0xb4, - 0xab, 0x0d, 0x97, 0x54, 0xe7, 0xf8, 0x65, 0xb1, 0xdd, 0x6a, 0x58, 0xa3, 0x14, 0xe4, 0xfd, 0x82, - 0x36, 0xa7, 0x47, 0x2a, 0x4c, 0x13, 0xba, 0xe9, 0x0a, 0x7d, 0x43, 0x7c, 0x2a, 0xd4, 0x9d, 0x53, - 0x94, 0x8e, 0xef, 0x45, 0x73, 0x18, 0x7d, 0x2b, 0xd5, 0x30, 0x19, 0xf6, 0x8e, 0x80, 0x61, 0xc9, - 0x8f, 0xe5, 0xa6, 0x49, 0x85, 0x43, 0x87, 0x66, 0x7c, 0xe8, 0x7b, 0xab, 0x16, 0x21, 0x2d, 0xcb, - 0xc5, 0xd5, 0x40, 0xd7, 0x57, 0xa2, 0x86, 0xbb, 0xfc, 0xd7, 0x0e, 0x87, 0x68, 0x81, 0xf6, 0x17, - 0x62, 0x97, 0x8d, 0xf1, 0x15, 0xc8, 0xea, 0xe3, 0x05, 0xb0, 0x3c, 0xa5, 0xb2, 0xcc, 0xca, 0x93, - 0x25, 0x3b, 0xb1, 0x3e, 0xc7, 0xfc, 0xc3, 0x30, 0x40, 0xfd, 0xc7, 0x4a, 0xc1, 0xe0, 0xfa, 0xd2, - 0xdb, 0x97, 0x96, 0x1f, 0x5b, 0xa2, 0x6f, 0xee, 0x5b, 0x59, 0x5f, 0x5a, 0xa5, 0xef, 0xdf, 0x5b, - 0x5d, 0x98, 0x59, 0x59, 0x5d, 0x9b, 0x2f, 0xbd, 0x3d, 0x1b, 0xc3, 0xfb, 0xca, 0xc5, 0xf9, 0x85, - 0x85, 0x4a, 0x71, 0x66, 0x7e, 0xa1, 0xfc, 0x44, 0xd6, 0xcc, 0x1f, 0x85, 0x01, 0x2a, 0x27, 0x36, - 0xfc, 0xc6, 0x9e, 0xeb, 0x5e, 0xe3, 0xeb, 0x13, 0xb9, 0xc8, 0x7f, 0xc1, 0x82, 0xc1, 0x99, 0x66, - 0x13, 0x65, 0x01, 0xcf, 0x7a, 0x0c, 0x46, 0xe9, 0x8f, 0xfe, 0xd7, 0x5a, 0xb3, 0xe4, 0x45, 0x61, - 0x38, 0x37, 0x18, 0xec, 0x75, 0xcb, 0xfe, 0xbc, 0x19, 0xf9, 0x64, 0x17, 0x2d, 0x55, 0xf0, 0xa8, - 0xa7, 0xb7, 0x5b, 0x6b, 0x90, 0xe5, 0xc4, 0x73, 0xcd, 0x56, 0xb5, 0x83, 0xf9, 0xc6, 0xd8, 0x7b, - 0xbc, 0xc2, 0xf9, 0x72, 0x52, 0xca, 0x36, 0xeb, 0x69, 0xcd, 0xd6, 0x03, 0x90, 0x9c, 0x77, 0x3b, - 0xe7, 0xa6, 0x31, 0x37, 0xfe, 0x46, 0xff, 0x6e, 0x6e, 0x9c, 0x84, 0x72, 0x49, 0x36, 0xd8, 0x25, - 0x43, 0x5f, 0x3c, 0x8f, 0xd1, 0xf1, 0x5e, 0x68, 0x42, 0xe2, 0xa3, 0xc9, 0x25, 0x3e, 0x4d, 0x59, - 0xe7, 0xac, 0xd8, 0x4b, 0xfc, 0x4f, 0x04, 0xc0, 0x05, 0x0d, 0xc5, 0x0f, 0xed, 0x89, 0xe1, 0x19, - 0x03, 0x3a, 0xfe, 0x40, 0x4f, 0x06, 0x92, 0x00, 0x84, 0x81, 0x90, 0x60, 0x55, 0x48, 0x30, 0x18, - 0xca, 0x60, 0x55, 0x93, 0xc0, 0x93, 0x25, 0x58, 0x15, 0x12, 0x24, 0x7b, 0x32, 0x90, 0x25, 0xf0, - 0x84, 0x04, 0x45, 0x80, 0xb9, 0xc6, 0x73, 0x4e, 0x9d, 0x8a, 0x40, 0xdf, 0xf7, 0x9f, 0x0f, 0xe0, - 0xe0, 0x13, 0x51, 0x16, 0xb0, 0x29, 0x1a, 0xac, 0x32, 0xa4, 0x56, 0xfd, 0x4b, 0x96, 0x3e, 0xee, - 0x08, 0x12, 0x63, 0x53, 0xe3, 0x92, 0xf2, 0x24, 0x36, 0x5c, 0x14, 0x3a, 0x99, 0x54, 0x6f, 0x51, - 0xa4, 0xd9, 0x50, 0x51, 0xe8, 0x74, 0x84, 0x28, 0x94, 0x49, 0x3a, 0x42, 0x14, 0x89, 0x0b, 0x13, - 0x85, 0xb2, 0x41, 0xc9, 0xb0, 0xd8, 0x6a, 0x61, 0x4a, 0x96, 0x95, 0x8e, 0x05, 0xb0, 0x60, 0x14, - 0x2c, 0x19, 0x6e, 0xd0, 0x2b, 0x62, 0x11, 0xe2, 0xe4, 0x18, 0x9c, 0x09, 0xb7, 0x08, 0xa7, 0xe1, - 0x16, 0xe1, 0xd7, 0x72, 0x9c, 0x91, 0x27, 0x26, 0x31, 0x9f, 0x91, 0xc8, 0x38, 0xe3, 0xa4, 0x5a, - 0x9c, 0xf1, 0x66, 0xeb, 0x1d, 0x30, 0xc2, 0x49, 0x71, 0x7a, 0xc2, 0x4c, 0xb3, 0xec, 0xff, 0x88, - 0x12, 0xce, 0x94, 0x51, 0x52, 0x9e, 0x23, 0x9e, 0xda, 0x6a, 0x2d, 0x41, 0x86, 0x13, 0x2e, 0x7a, - 0x64, 0xba, 0xa3, 0xec, 0x35, 0xe5, 0xe1, 0x1c, 0x29, 0x21, 0x65, 0x98, 0xf1, 0x94, 0xc6, 0xf1, - 0x59, 0x18, 0x0b, 0xce, 0x46, 0x72, 0xfa, 0x1d, 0xa2, 0xe9, 0xf7, 0x90, 0x9c, 0x7e, 0x0d, 0x39, - 0x7d, 0x97, 0xe0, 0x70, 0x60, 0xee, 0x89, 0x62, 0x12, 0x93, 0x99, 0xdc, 0x0f, 0xc3, 0x4a, 0xca, - 0x91, 0xc1, 0x89, 0x00, 0x70, 0xa2, 0x1b, 0xec, 0xbb, 0x56, 0xc0, 0xea, 0xa1, 0x80, 0x4d, 0x19, - 0xfc, 0x00, 0x64, 0xd4, 0x7c, 0x23, 0xa3, 0x87, 0x03, 0xd0, 0xc3, 0x01, 0xe8, 0xe0, 0xb1, 0xe3, - 0x01, 0xe8, 0xb8, 0x86, 0x5e, 0x0d, 0x1d, 0x7b, 0x34, 0x00, 0x3d, 0x1a, 0x80, 0x0e, 0x1e, 0xdb, - 0x0a, 0x40, 0x5b, 0x32, 0xfa, 0x41, 0x18, 0xd1, 0x52, 0x8c, 0x0c, 0x1f, 0x0c, 0x80, 0x0f, 0xca, - 0xf0, 0x87, 0x50, 0xd0, 0x6c, 0x86, 0xe3, 0x47, 0x02, 0xf0, 0x23, 0x41, 0xc3, 0x07, 0x4b, 0x3f, - 0x10, 0x00, 0x1f, 0x08, 0x1c, 0x3e, 0x18, 0x9f, 0x0d, 0xc0, 0x67, 0x65, 0x7c, 0x01, 0xd2, 0x72, - 0x36, 0x91, 0xb1, 0xc9, 0x00, 0x6c, 0x52, 0xd7, 0xbb, 0x92, 0x4c, 0xa2, 0x3c, 0x7d, 0x28, 0x24, - 0x5c, 0x94, 0x14, 0x12, 0xc5, 0x24, 0x2d, 0x33, 0x79, 0x14, 0x0e, 0x05, 0xa5, 0x8c, 0x00, 0x1e, - 0xa7, 0x65, 0x1e, 0x19, 0x5c, 0x23, 0xfa, 0xc5, 0x5e, 0x75, 0x57, 0x2b, 0x9c, 0xc6, 0x9f, 0x84, - 0x83, 0x01, 0x89, 0x23, 0x80, 0xed, 0xa4, 0x5a, 0x8d, 0xe5, 0x24, 0xb6, 0x24, 0x09, 0x20, 0x16, - 0x2b, 0x2d, 0xe4, 0x9c, 0x72, 0x55, 0xf6, 0xa5, 0x83, 0x90, 0x61, 0xe9, 0x69, 0xb9, 0x5d, 0x77, - 0xda, 0xa8, 0xba, 0xfa, 0x85, 0xf0, 0xda, 0x69, 0xaa, 0x3b, 0xa9, 0x31, 0xd4, 0x3e, 0x4a, 0xa8, - 0x27, 0x43, 0x4b, 0xa8, 0x33, 0xd1, 0xec, 0xa3, 0x2a, 0xa9, 0x52, 0x57, 0x25, 0x75, 0x57, 0x38, - 0xd3, 0xb0, 0x82, 0xaa, 0xd4, 0x55, 0x50, 0xf5, 0x66, 0x12, 0x58, 0x57, 0xcd, 0x75, 0xd7, 0x55, - 0xa7, 0xc3, 0xb9, 0x84, 0x97, 0x57, 0x73, 0xdd, 0xe5, 0x55, 0x04, 0x9f, 0xe0, 0x2a, 0x6b, 0xae, - 0xbb, 0xca, 0xea, 0xc1, 0x27, 0xbc, 0xd8, 0x9a, 0xeb, 0x2e, 0xb6, 0x22, 0xf8, 0x04, 0xd7, 0x5c, - 0xf3, 0x01, 0x35, 0xd7, 0xdd, 0xe1, 0x8c, 0x7a, 0x95, 0x5e, 0x0b, 0x41, 0xa5, 0xd7, 0x44, 0x0f, - 0xa1, 0x7a, 0x56, 0x60, 0xf3, 0x01, 0x15, 0x58, 0x94, 0x60, 0x21, 0x85, 0xd8, 0x42, 0x50, 0x21, - 0x16, 0x29, 0x58, 0x58, 0x3d, 0xf6, 0xff, 0xf4, 0x7a, 0xec, 0x54, 0x38, 0xa7, 0xe0, 0xb2, 0x6c, - 0xae, 0xbb, 0x2c, 0x3b, 0x1d, 0x15, 0x73, 0x41, 0xd5, 0xd9, 0x93, 0xa1, 0xd5, 0x59, 0x1f, 0x21, - 0x1c, 0x55, 0xa4, 0x3d, 0x1e, 0x56, 0xa4, 0x4d, 0x46, 0xf3, 0xee, 0x5d, 0xab, 0xad, 0x87, 0xd4, - 0x6a, 0xf7, 0x46, 0x33, 0x7e, 0xab, 0x64, 0x7b, 0xab, 0x64, 0x7b, 0xab, 0x64, 0x7b, 0xab, 0x64, - 0x7b, 0xf3, 0x4b, 0xb6, 0x42, 0xfc, 0x83, 0x2f, 0x1e, 0x33, 0xf2, 0xff, 0x6c, 0x8a, 0xff, 0x75, - 0x0b, 0x3e, 0x1f, 0xc2, 0xe9, 0x6d, 0x11, 0xd2, 0xe4, 0x75, 0xf5, 0x3b, 0xd5, 0xdd, 0x5d, 0xfc, - 0x3f, 0x74, 0x32, 0xba, 0x96, 0x1b, 0x15, 0x40, 0x5e, 0xf8, 0xbf, 0x48, 0x89, 0xd9, 0x72, 0xe3, - 0xfa, 0x2d, 0xd6, 0x55, 0x48, 0xed, 0x78, 0x5b, 0x82, 0x5b, 0xac, 0x6b, 0x21, 0xd4, 0xb8, 0xd1, - 0x99, 0xfa, 0xcc, 0x60, 0x47, 0x34, 0x60, 0xd1, 0x36, 0x90, 0x95, 0x04, 0x33, 0x33, 0x4a, 0x34, - 0x6c, 0x53, 0x55, 0xb4, 0x0d, 0xbf, 0x05, 0xbb, 0xad, 0x2e, 0x7b, 0x54, 0xa6, 0x53, 0x9c, 0xe7, - 0x31, 0x18, 0xd1, 0xa4, 0x0d, 0x88, 0xf9, 0x1b, 0xb0, 0x0d, 0x16, 0x4c, 0x97, 0x3c, 0x2a, 0x26, - 0x64, 0x87, 0xcc, 0xdf, 0x0e, 0xc3, 0x0a, 0x6f, 0x2b, 0x0d, 0xc6, 0x26, 0xfb, 0xb9, 0x9e, 0xb1, - 0x89, 0x7f, 0x21, 0x9d, 0x62, 0x67, 0xd5, 0x2b, 0xd5, 0x46, 0xdb, 0x7a, 0x04, 0xc8, 0x0f, 0x62, - 0xd8, 0x79, 0xfc, 0x8d, 0xfd, 0x3c, 0x93, 0xfe, 0xa4, 0x66, 0x0e, 0xe8, 0xef, 0x65, 0x6e, 0xfc, - 0xf7, 0xa5, 0xf4, 0xe7, 0x36, 0xd7, 0x0d, 0x18, 0x65, 0x8f, 0x52, 0x7a, 0xec, 0x01, 0x5b, 0xb4, - 0x42, 0x7e, 0xc1, 0x80, 0x21, 0x71, 0x65, 0x6d, 0x40, 0x46, 0x5c, 0xd0, 0x87, 0xb8, 0xa9, 0xa7, - 0x16, 0x24, 0x0d, 0x77, 0xf1, 0x98, 0x0c, 0xf8, 0x46, 0x4f, 0xb0, 0xe8, 0x9a, 0xec, 0x2a, 0x8d, - 0xe3, 0x33, 0x70, 0x30, 0x80, 0x6c, 0x3f, 0x0b, 0xf2, 0xc4, 0x09, 0x18, 0x64, 0xa1, 0x8d, 0x4f, - 0x0c, 0x17, 0xf1, 0x89, 0x23, 0xfe, 0x8b, 0x4f, 0x31, 0xf1, 0xdf, 0x52, 0x36, 0x56, 0x5c, 0xb8, - 0x81, 0x53, 0xa4, 0x03, 0xaf, 0xa0, 0x8f, 0x76, 0x8a, 0x64, 0x3c, 0xff, 0x9d, 0xa3, 0xc6, 0xc6, - 0x00, 0x9d, 0xfb, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x08, 0x5d, 0x44, 0x79, 0x79, 0x00, - 0x00, + // 7853 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0xb8, 0x16, 0x87, 0xc3, 0x21, 0xe7, 0x82, 0xb1, 0xa4, 0x00, 0x20, 0x38, 0xe2, + 0x98, 0x04, 0xe9, 0x26, 0x69, 0x69, 0xd6, 0xa9, 0xa0, 0x9a, 0xc0, 0x21, 0xd9, 0x12, 0xd0, 0x8d, + 0x45, 0x37, 0x24, 0xd1, 0x0f, 0x29, 0x65, 0x9d, 0x6c, 0xbc, 0x49, 0xe5, 0xba, 0x49, 0xc5, 0xeb, + 0xf8, 0x22, 0x6f, 0x6a, 0x63, 0xef, 0x6e, 0x2e, 0x5e, 0x67, 0xe3, 0x6c, 0x6d, 0xa5, 0xb2, 0xca, + 0x83, 0x93, 0xc9, 0x4b, 0x4a, 0x9b, 0xbc, 0xa4, 0x5c, 0x29, 0x95, 0x35, 0x72, 0x25, 0x4e, 0xe2, + 0x24, 0xde, 0xac, 0xab, 0x76, 0xab, 0xbc, 0x0f, 0xa9, 0x73, 0xeb, 0xee, 0x73, 0xd0, 0x40, 0x83, + 0x23, 0xc9, 0xde, 0x07, 0xbf, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, + 0xd3, 0x0d, 0x10, 0xde, 0x5f, 0x83, 0x0b, 0xc7, 0x8e, 0x73, 0xdc, 0x40, 0x57, 0x5a, 0x6d, 0xc7, + 0x73, 0x0e, 0x3b, 0x47, 0x57, 0xea, 0xc8, 0xad, 0xb5, 0xad, 0x96, 0xe7, 0xb4, 0x97, 0xc8, 0x98, + 0x3e, 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x1b, 0xa6, 0x36, 0xac, 0x06, 0x5a, 0xf7, 0x05, 0xf7, + 0x90, 0xa7, 0xdf, 0x84, 0xe4, 0x91, 0xd5, 0x40, 0x59, 0xe5, 0x82, 0xba, 0x90, 0x5e, 0xb9, 0xb4, + 0x24, 0x81, 0x96, 0x44, 0xc4, 0x2e, 0x1e, 0x36, 0x08, 0x22, 0xf7, 0xbd, 0x24, 0x4c, 0x47, 0xcc, + 0xea, 0x3a, 0x24, 0x6d, 0xb3, 0x89, 0x19, 0x95, 0x85, 0x31, 0x83, 0x7c, 0xd6, 0xb3, 0x30, 0xda, + 0x32, 0x6b, 0xaf, 0x9a, 0xc7, 0x28, 0x9b, 0x20, 0xc3, 0xfc, 0x50, 0x9f, 0x03, 0xa8, 0xa3, 0x16, + 0xb2, 0xeb, 0xc8, 0xae, 0x9d, 0x66, 0xd5, 0x0b, 0xea, 0xc2, 0x98, 0x11, 0x1a, 0xd1, 0x7f, 0x0e, + 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x86, 0xc4, 0xe0, 0x82, 0xba, 0x30, 0x6c, 0x68, 0x74, + 0x62, 0x3d, 0x10, 0x7e, 0x1a, 0x26, 0x5f, 0x47, 0xe6, 0xab, 0x61, 0xd1, 0x34, 0x11, 0x9d, 0xc0, + 0xc3, 0x21, 0xc1, 0x12, 0x64, 0x9a, 0xc8, 0x75, 0xcd, 0x63, 0x54, 0xf5, 0x4e, 0x5b, 0x28, 0x9b, + 0x24, 0x57, 0x7f, 0xa1, 0xeb, 0xea, 0xe5, 0x2b, 0x4f, 0x33, 0xd4, 0xfe, 0x69, 0x0b, 0xe9, 0x05, + 0x18, 0x43, 0x76, 0xa7, 0x49, 0x19, 0x86, 0x7b, 0xd8, 0xaf, 0x6c, 0x77, 0x9a, 0x32, 0x4b, 0x0a, + 0xc3, 0x18, 0xc5, 0xa8, 0x8b, 0xda, 0xaf, 0x59, 0x35, 0x94, 0x1d, 0x21, 0x04, 0x4f, 0x77, 0x11, + 0xec, 0xd1, 0x79, 0x99, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, + 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0xba, 0x4c, 0x11, 0xe0, 0xf4, 0xeb, 0x30, + 0xea, 0xb4, 0x3c, 0xcb, 0xb1, 0xdd, 0x6c, 0xea, 0x82, 0xb2, 0x90, 0x5e, 0x39, 0x1f, 0x19, 0x08, + 0x3b, 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x26, 0x68, 0xae, 0xd3, 0x69, 0xd7, 0x50, 0xb5, 0xe6, 0xd4, + 0x51, 0xd5, 0xb2, 0x8f, 0x9c, 0xec, 0x18, 0x21, 0x98, 0xef, 0xbe, 0x10, 0x22, 0x58, 0x72, 0xea, + 0x68, 0xd3, 0x3e, 0x72, 0x8c, 0x09, 0x57, 0x38, 0xd6, 0x67, 0x60, 0xc4, 0x3d, 0xb5, 0x3d, 0xf3, + 0x8d, 0x6c, 0x86, 0x44, 0x08, 0x3b, 0xca, 0xfd, 0xf1, 0x30, 0x4c, 0x0e, 0x12, 0x62, 0xb7, 0x61, + 0xf8, 0x08, 0x5f, 0x65, 0x36, 0x71, 0x16, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x91, 0x87, 0x34, 0x62, + 0x01, 0xd2, 0x36, 0x72, 0x3d, 0x54, 0xa7, 0x11, 0xa1, 0x0e, 0x18, 0x53, 0x40, 0x41, 0xdd, 0x21, + 0x95, 0x7c, 0xa8, 0x90, 0x7a, 0x19, 0x26, 0x7d, 0x95, 0xaa, 0x6d, 0xd3, 0x3e, 0xe6, 0xb1, 0x79, + 0x25, 0x4e, 0x93, 0xa5, 0x32, 0xc7, 0x19, 0x18, 0x66, 0x4c, 0x20, 0xe1, 0x58, 0x5f, 0x07, 0x70, + 0x6c, 0xe4, 0x1c, 0x55, 0xeb, 0xa8, 0xd6, 0xc8, 0xa6, 0x7a, 0x58, 0x69, 0x07, 0x8b, 0x74, 0x59, + 0xc9, 0xa1, 0xa3, 0xb5, 0x86, 0x7e, 0x2b, 0x08, 0xb5, 0xd1, 0x1e, 0x91, 0xb2, 0x4d, 0x93, 0xac, + 0x2b, 0xda, 0x0e, 0x60, 0xa2, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0xbb, 0xb2, 0x31, 0xa2, 0xc4, 0x52, + 0xec, 0x95, 0x19, 0x0c, 0x46, 0x2f, 0x6c, 0xbc, 0x1d, 0x3e, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, + 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x34, 0x8f, + 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, + 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe1, 0xf4, 0x83, 0x02, 0x73, + 0x9f, 0x1f, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, + 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, + 0x2c, 0x4c, 0xac, 0xfc, 0xdc, 0x40, 0x51, 0xbd, 0xb4, 0x85, 0x21, 0x06, 0x45, 0xea, 0xcf, 0x43, + 0x92, 0x95, 0x38, 0xcc, 0xb0, 0x38, 0x18, 0x03, 0x8e, 0x45, 0x83, 0xe0, 0xf4, 0xc7, 0x61, 0x0c, + 0xff, 0x4f, 0x6d, 0x3b, 0x42, 0x74, 0x4e, 0xe1, 0x01, 0x6c, 0x57, 0x7d, 0x16, 0x52, 0x24, 0xcc, + 0xea, 0x88, 0x2f, 0x0d, 0xfe, 0x31, 0x76, 0x4c, 0x1d, 0x1d, 0x99, 0x9d, 0x86, 0x57, 0x7d, 0xcd, + 0x6c, 0x74, 0x10, 0x09, 0x98, 0x31, 0x23, 0xc3, 0x06, 0x3f, 0x85, 0xc7, 0xf4, 0x79, 0x48, 0xd3, + 0xa8, 0xb4, 0xec, 0x3a, 0x7a, 0x83, 0x54, 0x9f, 0x61, 0x83, 0x06, 0xea, 0x26, 0x1e, 0xc1, 0xa7, + 0x7f, 0xc5, 0x75, 0x6c, 0xee, 0x5a, 0x72, 0x0a, 0x3c, 0x40, 0x4e, 0x7f, 0x43, 0x2e, 0x7c, 0x4f, + 0x44, 0x5f, 0x9e, 0x1c, 0x8b, 0xb9, 0x6f, 0x25, 0x20, 0x49, 0xf2, 0x6d, 0x12, 0xd2, 0xfb, 0xf7, + 0x76, 0xcb, 0xd5, 0xf5, 0x9d, 0x83, 0xe2, 0x56, 0x59, 0x53, 0xf4, 0x09, 0x00, 0x32, 0xb0, 0xb1, + 0xb5, 0x53, 0xd8, 0xd7, 0x12, 0xfe, 0xf1, 0x66, 0x65, 0xff, 0xfa, 0xaa, 0xa6, 0xfa, 0x80, 0x03, + 0x3a, 0x90, 0x0c, 0x0b, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, + 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1c, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, + 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, + 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, + 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x04, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, + 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0xa4, 0x34, 0x74, + 0x7d, 0x55, 0xd3, 0x02, 0x45, 0x28, 0xcb, 0x94, 0x30, 0x70, 0x7d, 0x55, 0xd3, 0x73, 0x25, 0x18, + 0x26, 0xd1, 0xa5, 0xeb, 0x30, 0xb1, 0x55, 0x28, 0x96, 0xb7, 0xaa, 0x3b, 0xbb, 0xfb, 0x9b, 0x3b, + 0x95, 0xc2, 0x96, 0xa6, 0x04, 0x63, 0x46, 0xf9, 0x93, 0x07, 0x9b, 0x46, 0x79, 0x5d, 0x4b, 0x84, + 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, + 0x46, 0xc8, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0x5c, 0x5d, 0x2e, 0xfe, 0x35, 0x05, 0xa6, 0x23, 0x6a, + 0x6d, 0xe4, 0x49, 0x5e, 0x80, 0x61, 0x1a, 0xa2, 0x74, 0xf5, 0x79, 0x26, 0xb2, 0x68, 0x93, 0x80, + 0xed, 0x5a, 0x81, 0x08, 0x2e, 0xbc, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x4c, 0xd1, 0xa5, 0xe4, 0x67, + 0x15, 0xc8, 0xf6, 0xe2, 0x8e, 0x29, 0x14, 0x09, 0xa1, 0x50, 0xdc, 0x96, 0x15, 0xb8, 0xd8, 0xfb, + 0x1a, 0xba, 0xb4, 0xf8, 0x9a, 0x02, 0x33, 0xd1, 0x8d, 0x4a, 0xa4, 0x0e, 0xcf, 0xc3, 0x48, 0x13, + 0x79, 0x27, 0x0e, 0x5f, 0xac, 0x2f, 0x47, 0x2c, 0x01, 0x78, 0x5a, 0xb6, 0x15, 0x43, 0x85, 0xd7, + 0x10, 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0x97, 0x13, 0xf0, 0x48, 0x24, 0x79, 0xa4, + 0xa2, 0x4f, 0x00, 0x58, 0x76, 0xab, 0xe3, 0xd1, 0x05, 0x99, 0xd6, 0xa7, 0x31, 0x32, 0x42, 0x72, + 0x1f, 0xd7, 0x9e, 0x8e, 0xe7, 0xcf, 0xab, 0x64, 0x1e, 0xe8, 0x10, 0x11, 0xb8, 0x19, 0x28, 0x9a, + 0x24, 0x8a, 0xce, 0xf5, 0xb8, 0xd2, 0xae, 0xb5, 0x6e, 0x19, 0xb4, 0x5a, 0xc3, 0x42, 0xb6, 0x57, + 0x75, 0xbd, 0x36, 0x32, 0x9b, 0x96, 0x7d, 0x4c, 0x0a, 0x70, 0x2a, 0x3f, 0x7c, 0x64, 0x36, 0x5c, + 0x64, 0x4c, 0xd2, 0xe9, 0x3d, 0x3e, 0x8b, 0x11, 0x64, 0x95, 0x69, 0x87, 0x10, 0x23, 0x02, 0x82, + 0x4e, 0xfb, 0x88, 0xdc, 0x6f, 0x8d, 0x42, 0x3a, 0xd4, 0xd6, 0xe9, 0x17, 0x21, 0xf3, 0x8a, 0xf9, + 0x9a, 0x59, 0xe5, 0xad, 0x3a, 0xb5, 0x44, 0x1a, 0x8f, 0xed, 0xb2, 0x76, 0x7d, 0x19, 0xce, 0x11, + 0x11, 0xa7, 0xe3, 0xa1, 0x76, 0xb5, 0xd6, 0x30, 0x5d, 0x97, 0x18, 0x2d, 0x45, 0x44, 0x75, 0x3c, + 0xb7, 0x83, 0xa7, 0x4a, 0x7c, 0x46, 0x5f, 0x83, 0x69, 0x82, 0x68, 0x76, 0x1a, 0x9e, 0xd5, 0x6a, + 0xa0, 0x2a, 0xbe, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x35, 0x9b, 0xc2, 0x12, 0xdb, 0x4c, 0x00, 0x6b, + 0xe4, 0xea, 0xeb, 0xf0, 0x04, 0x81, 0x1d, 0x23, 0x1b, 0xb5, 0x4d, 0x0f, 0x55, 0xd1, 0x2f, 0x74, + 0xcc, 0x86, 0x5b, 0x35, 0xed, 0x7a, 0xf5, 0xc4, 0x74, 0x4f, 0xb2, 0xe7, 0x30, 0x41, 0x31, 0x91, + 0x55, 0x8c, 0xc7, 0xb0, 0xe0, 0x1d, 0x26, 0x57, 0x26, 0x62, 0x05, 0xbb, 0xfe, 0xa2, 0xe9, 0x9e, + 0xe8, 0x79, 0x98, 0x21, 0x2c, 0xae, 0xd7, 0xb6, 0xec, 0xe3, 0x6a, 0xed, 0x04, 0xd5, 0x5e, 0xad, + 0x76, 0xbc, 0xa3, 0x9b, 0xd9, 0xc7, 0xc3, 0xe7, 0x27, 0x1a, 0xee, 0x11, 0x99, 0x12, 0x16, 0x39, + 0xf0, 0x8e, 0x6e, 0xea, 0x7b, 0x90, 0xc1, 0xce, 0x68, 0x5a, 0x9f, 0x41, 0xd5, 0x23, 0xa7, 0x4d, + 0x56, 0x96, 0x89, 0x88, 0xcc, 0x0e, 0x59, 0x70, 0x69, 0x87, 0x01, 0xb6, 0x9d, 0x3a, 0xca, 0x0f, + 0xef, 0xed, 0x96, 0xcb, 0xeb, 0x46, 0x9a, 0xb3, 0x6c, 0x38, 0x6d, 0x1c, 0x50, 0xc7, 0x8e, 0x6f, + 0xe0, 0x34, 0x0d, 0xa8, 0x63, 0x87, 0x9b, 0x77, 0x0d, 0xa6, 0x6b, 0x35, 0x7a, 0xcd, 0x56, 0xad, + 0xca, 0x5a, 0x7c, 0x37, 0xab, 0x09, 0xc6, 0xaa, 0xd5, 0xee, 0x50, 0x01, 0x16, 0xe3, 0xae, 0x7e, + 0x0b, 0x1e, 0x09, 0x8c, 0x15, 0x06, 0x4e, 0x75, 0x5d, 0xa5, 0x0c, 0x5d, 0x83, 0xe9, 0xd6, 0x69, + 0x37, 0x50, 0x17, 0xce, 0xd8, 0x3a, 0x95, 0x61, 0x4f, 0x91, 0xdb, 0xb6, 0x36, 0xaa, 0x99, 0x1e, + 0xaa, 0x67, 0x1f, 0x0d, 0x4b, 0x87, 0x26, 0xf4, 0x2b, 0xa0, 0xd5, 0x6a, 0x55, 0x64, 0x9b, 0x87, + 0x0d, 0x54, 0x35, 0xdb, 0xc8, 0x36, 0xdd, 0xec, 0x7c, 0x58, 0x78, 0xa2, 0x56, 0x2b, 0x93, 0xd9, + 0x02, 0x99, 0xd4, 0x17, 0x61, 0xca, 0x39, 0x7c, 0xa5, 0x46, 0x23, 0xab, 0xda, 0x6a, 0xa3, 0x23, + 0xeb, 0x8d, 0xec, 0x25, 0x62, 0xa6, 0x49, 0x3c, 0x41, 0xe2, 0x6a, 0x97, 0x0c, 0xeb, 0xcf, 0x80, + 0x56, 0x73, 0x4f, 0xcc, 0x76, 0x8b, 0x2c, 0xed, 0x6e, 0xcb, 0xac, 0xa1, 0xec, 0x53, 0x54, 0x94, + 0x8e, 0x57, 0xf8, 0x30, 0x8e, 0x6c, 0xf7, 0x75, 0xeb, 0xc8, 0xe3, 0x8c, 0x4f, 0xd3, 0xc8, 0x26, + 0x63, 0x8c, 0xed, 0x65, 0x38, 0xd7, 0xb1, 0x2d, 0xdb, 0x43, 0xed, 0x56, 0x1b, 0xe1, 0x26, 0x9e, + 0x66, 0x62, 0xf6, 0xbf, 0x8f, 0xf6, 0x68, 0xc3, 0x0f, 0xc2, 0xd2, 0x34, 0x00, 0x8c, 0xe9, 0x4e, + 0xf7, 0x60, 0x2e, 0x0f, 0x99, 0x70, 0x5c, 0xe8, 0x63, 0x40, 0x23, 0x43, 0x53, 0xf0, 0x1a, 0x5b, + 0xda, 0x59, 0xc7, 0xab, 0xe3, 0xcf, 0x97, 0xb5, 0x04, 0x5e, 0xa5, 0xb7, 0x36, 0xf7, 0xcb, 0x55, + 0xe3, 0xa0, 0xb2, 0xbf, 0xb9, 0x5d, 0xd6, 0xd4, 0xc5, 0xb1, 0xd4, 0xf7, 0x47, 0xb5, 0x37, 0xdf, + 0x7c, 0xf3, 0xcd, 0x44, 0xee, 0xdb, 0x09, 0x98, 0x10, 0x3b, 0x63, 0xfd, 0xe3, 0xf0, 0x28, 0xbf, + 0x8d, 0x75, 0x91, 0x57, 0x7d, 0xdd, 0x6a, 0x93, 0x50, 0x6d, 0x9a, 0xb4, 0xb7, 0xf4, 0xad, 0x7c, + 0x8e, 0x49, 0xed, 0x21, 0xef, 0x25, 0xab, 0x8d, 0x03, 0xb1, 0x69, 0x7a, 0xfa, 0x16, 0xcc, 0xdb, + 0x4e, 0xd5, 0xf5, 0x4c, 0xbb, 0x6e, 0xb6, 0xeb, 0xd5, 0x60, 0x03, 0xa1, 0x6a, 0xd6, 0x6a, 0xc8, + 0x75, 0x1d, 0xba, 0x44, 0xf8, 0x2c, 0xe7, 0x6d, 0x67, 0x8f, 0x09, 0x07, 0xb5, 0xb3, 0xc0, 0x44, + 0xa5, 0x88, 0x50, 0x7b, 0x45, 0xc4, 0xe3, 0x30, 0xd6, 0x34, 0x5b, 0x55, 0x64, 0x7b, 0xed, 0x53, + 0xd2, 0xcf, 0xa5, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf1, 0xf1, 0x47, 0xe7, 0x83, 0xb0, 0x1d, 0xff, + 0xab, 0x0a, 0x99, 0x70, 0x4f, 0x87, 0x5b, 0xe4, 0x1a, 0xa9, 0xdf, 0x0a, 0xc9, 0xf0, 0x27, 0xfb, + 0x76, 0x80, 0x4b, 0x25, 0x5c, 0xd8, 0xf3, 0x23, 0xb4, 0xd3, 0x32, 0x28, 0x12, 0x2f, 0xaa, 0x38, + 0xa7, 0x11, 0xed, 0xdf, 0x53, 0x06, 0x3b, 0xd2, 0xef, 0xc0, 0xc8, 0x2b, 0x2e, 0xe1, 0x1e, 0x21, + 0xdc, 0x97, 0xfa, 0x73, 0xdf, 0xdd, 0x23, 0xe4, 0x63, 0x77, 0xf7, 0xaa, 0x95, 0x1d, 0x63, 0xbb, + 0xb0, 0x65, 0x30, 0xb8, 0xfe, 0x18, 0x24, 0x1b, 0xe6, 0x67, 0x4e, 0xc5, 0x25, 0x80, 0x0c, 0x0d, + 0x6a, 0xf8, 0xc7, 0x20, 0xf9, 0x3a, 0x32, 0x5f, 0x15, 0x0b, 0x2f, 0x19, 0xfa, 0x08, 0x43, 0xff, + 0x0a, 0x0c, 0x13, 0x7b, 0xe9, 0x00, 0xcc, 0x62, 0xda, 0x90, 0x9e, 0x82, 0x64, 0x69, 0xc7, 0xc0, + 0xe1, 0xaf, 0x41, 0x86, 0x8e, 0x56, 0x77, 0x37, 0xcb, 0xa5, 0xb2, 0x96, 0xc8, 0xad, 0xc1, 0x08, + 0x35, 0x02, 0x4e, 0x0d, 0xdf, 0x0c, 0xda, 0x10, 0x3b, 0x64, 0x1c, 0x0a, 0x9f, 0x3d, 0xd8, 0x2e, + 0x96, 0x0d, 0x2d, 0x11, 0x76, 0xaf, 0x0b, 0x99, 0x70, 0x3b, 0xf7, 0x93, 0x89, 0xa9, 0xdf, 0x53, + 0x20, 0x1d, 0x6a, 0xcf, 0x70, 0x63, 0x60, 0x36, 0x1a, 0xce, 0xeb, 0x55, 0xb3, 0x61, 0x99, 0x2e, + 0x0b, 0x0a, 0x20, 0x43, 0x05, 0x3c, 0x32, 0xa8, 0xd3, 0x7e, 0x22, 0xca, 0x7f, 0x59, 0x01, 0x4d, + 0x6e, 0xed, 0x24, 0x05, 0x95, 0x9f, 0xaa, 0x82, 0x5f, 0x54, 0x60, 0x42, 0xec, 0xe7, 0x24, 0xf5, + 0x2e, 0xfe, 0x54, 0xd5, 0xfb, 0x6e, 0x02, 0xc6, 0x85, 0x2e, 0x6e, 0x50, 0xed, 0x7e, 0x01, 0xa6, + 0xac, 0x3a, 0x6a, 0xb6, 0x1c, 0x0f, 0xd9, 0xb5, 0xd3, 0x6a, 0x03, 0xbd, 0x86, 0x1a, 0xd9, 0x1c, + 0x29, 0x14, 0x57, 0xfa, 0xf7, 0x89, 0x4b, 0x9b, 0x01, 0x6e, 0x0b, 0xc3, 0xf2, 0xd3, 0x9b, 0xeb, + 0xe5, 0xed, 0xdd, 0x9d, 0xfd, 0x72, 0xa5, 0x74, 0xaf, 0x7a, 0x50, 0xf9, 0x44, 0x65, 0xe7, 0xa5, + 0x8a, 0xa1, 0x59, 0x92, 0xd8, 0x47, 0x98, 0xea, 0xbb, 0xa0, 0xc9, 0x4a, 0xe9, 0x8f, 0x42, 0x94, + 0x5a, 0xda, 0x90, 0x3e, 0x0d, 0x93, 0x95, 0x9d, 0xea, 0xde, 0xe6, 0x7a, 0xb9, 0x5a, 0xde, 0xd8, + 0x28, 0x97, 0xf6, 0xf7, 0xe8, 0x8d, 0xb3, 0x2f, 0xbd, 0x2f, 0x26, 0xf5, 0x17, 0x54, 0x98, 0x8e, + 0xd0, 0x44, 0x2f, 0xb0, 0x9e, 0x9d, 0xde, 0x46, 0x3c, 0x3b, 0x88, 0xf6, 0x4b, 0xb8, 0x2b, 0xd8, + 0x35, 0xdb, 0x1e, 0x6b, 0xf1, 0x9f, 0x01, 0x6c, 0x25, 0xdb, 0xb3, 0x8e, 0x2c, 0xd4, 0x66, 0xfb, + 0x0c, 0xb4, 0x91, 0x9f, 0x0c, 0xc6, 0xe9, 0x56, 0xc3, 0xc7, 0x40, 0x6f, 0x39, 0xae, 0xe5, 0x59, + 0xaf, 0xa1, 0xaa, 0x65, 0xf3, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0xcf, 0x6c, 0xda, 0x9e, + 0x2f, 0x6d, 0xa3, 0x63, 0x53, 0x92, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x3e, 0xe3, 0x4b, 0x5f, 0x84, + 0x4c, 0xdd, 0xe9, 0xe0, 0x36, 0x89, 0xca, 0xe1, 0xf5, 0x42, 0x31, 0xd2, 0x74, 0xcc, 0x17, 0x61, + 0x7d, 0x6c, 0xb0, 0x1b, 0x92, 0x31, 0xd2, 0x74, 0x8c, 0x8a, 0x3c, 0x0d, 0x93, 0xe6, 0xf1, 0x71, + 0x1b, 0x93, 0x73, 0x22, 0xda, 0x99, 0x4f, 0xf8, 0xc3, 0x44, 0x70, 0xf6, 0x2e, 0xa4, 0xb8, 0x1d, + 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x6d, 0xd1, 0x3d, 0xa9, 0xc4, 0xc2, 0x98, 0x91, 0xb2, 0xf9, 0xe4, + 0x45, 0xc8, 0x58, 0x6e, 0x35, 0xd8, 0x1c, 0x4d, 0x5c, 0x48, 0x2c, 0xa4, 0x8c, 0xb4, 0xe5, 0xfa, + 0xbb, 0x61, 0xb9, 0xaf, 0x25, 0x60, 0x42, 0xdc, 0xdc, 0xd5, 0xd7, 0x21, 0xd5, 0x70, 0x6a, 0x26, + 0x09, 0x2d, 0xfa, 0x64, 0x61, 0x21, 0x66, 0x3f, 0x78, 0x69, 0x8b, 0xc9, 0x1b, 0x3e, 0x72, 0xf6, + 0x3f, 0x2a, 0x90, 0xe2, 0xc3, 0xfa, 0x0c, 0x24, 0x5b, 0xa6, 0x77, 0x42, 0xe8, 0x86, 0x8b, 0x09, + 0x4d, 0x31, 0xc8, 0x31, 0x1e, 0x77, 0x5b, 0xa6, 0x4d, 0x42, 0x80, 0x8d, 0xe3, 0x63, 0xec, 0xd7, + 0x06, 0x32, 0xeb, 0xa4, 0xed, 0x77, 0x9a, 0x4d, 0x64, 0x7b, 0x2e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb1, + 0x61, 0xfd, 0xe7, 0x60, 0xca, 0x6b, 0x9b, 0x56, 0x43, 0x90, 0x4d, 0x12, 0x59, 0x8d, 0x4f, 0xf8, + 0xc2, 0x79, 0x78, 0x8c, 0xf3, 0xd6, 0x91, 0x67, 0xd6, 0x4e, 0x50, 0x3d, 0x00, 0x8d, 0x90, 0x9d, + 0xc3, 0x47, 0x99, 0xc0, 0x3a, 0x9b, 0xe7, 0xd8, 0xdc, 0x1f, 0x28, 0x30, 0xc5, 0x6f, 0x54, 0xea, + 0xbe, 0xb1, 0xb6, 0x01, 0x4c, 0xdb, 0x76, 0xbc, 0xb0, 0xb9, 0xba, 0x43, 0xb9, 0x0b, 0xb7, 0x54, + 0xf0, 0x41, 0x46, 0x88, 0x60, 0xb6, 0x09, 0x10, 0xcc, 0xf4, 0x34, 0xdb, 0x3c, 0xa4, 0xd9, 0xce, + 0x3d, 0x79, 0xfc, 0x43, 0x6f, 0x6d, 0x81, 0x0e, 0xe1, 0x3b, 0x1a, 0xfd, 0x1c, 0x0c, 0x1f, 0xa2, + 0x63, 0xcb, 0x66, 0xfb, 0x89, 0xf4, 0x80, 0xef, 0x52, 0x26, 0xfd, 0x5d, 0xca, 0xe2, 0xcb, 0x30, + 0x5d, 0x73, 0x9a, 0xb2, 0xba, 0x45, 0x4d, 0xba, 0xbd, 0x76, 0x5f, 0x54, 0x7e, 0x1e, 0x82, 0x16, + 0xf3, 0xd7, 0x12, 0xea, 0x9d, 0xdd, 0xe2, 0x6f, 0x26, 0x66, 0xef, 0x50, 0xdc, 0x2e, 0xbf, 0x4c, + 0x03, 0x1d, 0x35, 0x50, 0x0d, 0xab, 0x0e, 0x7f, 0x74, 0x19, 0x9e, 0x3d, 0xb6, 0xbc, 0x93, 0xce, + 0xe1, 0x52, 0xcd, 0x69, 0x5e, 0x39, 0x76, 0x8e, 0x9d, 0xe0, 0x71, 0x17, 0x3e, 0x22, 0x07, 0xe4, + 0x13, 0x7b, 0xe4, 0x35, 0xe6, 0x8f, 0xce, 0xc6, 0x3e, 0x1f, 0xcb, 0x57, 0x60, 0x9a, 0x09, 0x57, + 0xc9, 0x9e, 0x3b, 0xbd, 0x35, 0xd0, 0xfb, 0xee, 0xbb, 0x64, 0x7f, 0xfb, 0x7b, 0x64, 0xad, 0x36, + 0xa6, 0x18, 0x14, 0xcf, 0xd1, 0x1b, 0x88, 0xbc, 0x01, 0x8f, 0x08, 0x7c, 0x34, 0x2f, 0x51, 0x3b, + 0x86, 0xf1, 0xdb, 0x8c, 0x71, 0x3a, 0xc4, 0xb8, 0xc7, 0xa0, 0xf9, 0x12, 0x8c, 0x9f, 0x85, 0xeb, + 0xdf, 0x31, 0xae, 0x0c, 0x0a, 0x93, 0xdc, 0x81, 0x49, 0x42, 0x52, 0xeb, 0xb8, 0x9e, 0xd3, 0x24, + 0x45, 0xaf, 0x3f, 0xcd, 0xbf, 0xff, 0x1e, 0x4d, 0x94, 0x09, 0x0c, 0x2b, 0xf9, 0xa8, 0x7c, 0x1e, + 0xc8, 0x63, 0x86, 0x3a, 0xaa, 0x35, 0x62, 0x18, 0xee, 0x33, 0x45, 0x7c, 0xf9, 0xfc, 0xa7, 0xe0, + 0x1c, 0xfe, 0x4c, 0x6a, 0x52, 0x58, 0x93, 0xf8, 0x5d, 0xa6, 0xec, 0x1f, 0x7c, 0x96, 0xe6, 0xe2, + 0xb4, 0x4f, 0x10, 0xd2, 0x29, 0xe4, 0xc5, 0x63, 0xe4, 0x79, 0xa8, 0xed, 0x56, 0xcd, 0x46, 0x94, + 0x7a, 0xa1, 0xdb, 0xf4, 0xec, 0xaf, 0xfe, 0x40, 0xf4, 0xe2, 0x1d, 0x8a, 0x2c, 0x34, 0x1a, 0xf9, + 0x03, 0x78, 0x34, 0x22, 0x2a, 0x06, 0xe0, 0xfc, 0x02, 0xe3, 0x3c, 0xd7, 0x15, 0x19, 0x98, 0x76, + 0x17, 0xf8, 0xb8, 0xef, 0xcb, 0x01, 0x38, 0xff, 0x21, 0xe3, 0xd4, 0x19, 0x96, 0xbb, 0x14, 0x33, + 0xde, 0x85, 0xa9, 0xd7, 0x50, 0xfb, 0xd0, 0x71, 0xd9, 0xd6, 0xc8, 0x00, 0x74, 0x5f, 0x64, 0x74, + 0x93, 0x0c, 0x48, 0xf6, 0x4a, 0x30, 0xd7, 0x2d, 0x48, 0x1d, 0x99, 0x35, 0x34, 0x00, 0xc5, 0x97, + 0x18, 0xc5, 0x28, 0x96, 0xc7, 0xd0, 0x02, 0x64, 0x8e, 0x1d, 0xb6, 0x2c, 0xc5, 0xc3, 0xbf, 0xcc, + 0xe0, 0x69, 0x8e, 0x61, 0x14, 0x2d, 0xa7, 0xd5, 0x69, 0xe0, 0x35, 0x2b, 0x9e, 0xe2, 0x2b, 0x9c, + 0x82, 0x63, 0x18, 0xc5, 0x19, 0xcc, 0xfa, 0x16, 0xa7, 0x70, 0x43, 0xf6, 0x7c, 0x01, 0xd2, 0x8e, + 0xdd, 0x38, 0x75, 0xec, 0x41, 0x94, 0xf8, 0x2a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xb7, 0x61, 0x6c, + 0x50, 0x47, 0xfc, 0xfa, 0x0f, 0x78, 0x7a, 0x70, 0x0f, 0xdc, 0x81, 0x49, 0x5e, 0xa0, 0x2c, 0xc7, + 0x1e, 0x80, 0xe2, 0x1f, 0x33, 0x8a, 0x89, 0x10, 0x8c, 0x5d, 0x86, 0x87, 0x5c, 0xef, 0x18, 0x0d, + 0x42, 0xf2, 0x35, 0x7e, 0x19, 0x0c, 0xc2, 0x4c, 0x79, 0x88, 0xec, 0xda, 0xc9, 0x60, 0x0c, 0x5f, + 0xe7, 0xa6, 0xe4, 0x18, 0x4c, 0x51, 0x82, 0xf1, 0xa6, 0xd9, 0x76, 0x4f, 0xcc, 0xc6, 0x40, 0xee, + 0xf8, 0x0d, 0xc6, 0x91, 0xf1, 0x41, 0xcc, 0x22, 0x1d, 0xfb, 0x2c, 0x34, 0xbf, 0xc9, 0x2d, 0x12, + 0x82, 0xb1, 0xd4, 0x73, 0x3d, 0xb2, 0x01, 0x75, 0x16, 0xb6, 0xdf, 0xe2, 0xa9, 0x47, 0xb1, 0xdb, + 0x61, 0xc6, 0xdb, 0x30, 0xe6, 0x5a, 0x9f, 0x19, 0x88, 0xe6, 0x9f, 0x70, 0x4f, 0x13, 0x00, 0x06, + 0xdf, 0x83, 0xc7, 0x22, 0x97, 0x89, 0x01, 0xc8, 0xfe, 0x29, 0x23, 0x9b, 0x89, 0x58, 0x2a, 0x58, + 0x49, 0x38, 0x2b, 0xe5, 0x3f, 0xe3, 0x25, 0x01, 0x49, 0x5c, 0xbb, 0xf8, 0x46, 0xc1, 0x35, 0x8f, + 0xce, 0x66, 0xb5, 0x7f, 0xce, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0xf6, 0x61, 0x86, 0x31, 0x9e, 0xcd, + 0xaf, 0xdf, 0xe0, 0x85, 0x95, 0xa2, 0x0f, 0x44, 0xef, 0x7e, 0x1a, 0x66, 0x7d, 0x73, 0xf2, 0x8e, + 0xd4, 0xad, 0x36, 0xcd, 0xd6, 0x00, 0xcc, 0xbf, 0xcd, 0x98, 0x79, 0xc5, 0xf7, 0x5b, 0x5a, 0x77, + 0xdb, 0x6c, 0x61, 0xf2, 0x97, 0x21, 0xcb, 0xc9, 0x3b, 0x76, 0x1b, 0xd5, 0x9c, 0x63, 0xdb, 0xfa, + 0x0c, 0xaa, 0x0f, 0x40, 0xfd, 0x4d, 0xc9, 0x55, 0x07, 0x21, 0x38, 0x66, 0xde, 0x04, 0xcd, 0xef, + 0x55, 0xaa, 0x56, 0xb3, 0xe5, 0xb4, 0xbd, 0x18, 0xc6, 0x7f, 0xc1, 0x3d, 0xe5, 0xe3, 0x36, 0x09, + 0x2c, 0x5f, 0x86, 0x09, 0x72, 0x38, 0x68, 0x48, 0xfe, 0x0e, 0x23, 0x1a, 0x0f, 0x50, 0xac, 0x70, + 0xd4, 0x9c, 0x66, 0xcb, 0x6c, 0x0f, 0x52, 0xff, 0xfe, 0x25, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, + 0x77, 0xda, 0x42, 0x78, 0xb5, 0x1f, 0x80, 0xe1, 0x5b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, + 0xc3, 0x00, 0x14, 0xff, 0x8a, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x64, 0xb0, 0xd0, 0xb6, 0xd1, 0xb1, + 0xe5, 0x7a, 0x6d, 0xda, 0x07, 0xf7, 0xa7, 0xfa, 0xdd, 0x1f, 0x88, 0x4d, 0x98, 0x11, 0x82, 0xe6, + 0xef, 0xc2, 0xa4, 0xd4, 0x62, 0xe8, 0x71, 0xef, 0x2c, 0x64, 0xff, 0xd2, 0x8f, 0x58, 0x31, 0x12, + 0x3b, 0x8c, 0xfc, 0x16, 0xf6, 0xbb, 0xd8, 0x07, 0xc4, 0x93, 0x7d, 0xf6, 0x47, 0xbe, 0xeb, 0x85, + 0x36, 0x20, 0xbf, 0x01, 0xe3, 0x42, 0x0f, 0x10, 0x4f, 0xf5, 0x97, 0x19, 0x55, 0x26, 0xdc, 0x02, + 0xe4, 0xd7, 0x20, 0x89, 0xd7, 0xf3, 0x78, 0xf8, 0x5f, 0x61, 0x70, 0x22, 0x9e, 0x7f, 0x0e, 0x52, + 0x7c, 0x1d, 0x8f, 0x87, 0xfe, 0x12, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x6b, 0x78, 0x3c, 0xfc, 0xaf, + 0x72, 0x38, 0x87, 0x60, 0xf8, 0xe0, 0x26, 0x7c, 0xfb, 0xaf, 0x27, 0x59, 0x1d, 0xe6, 0xb6, 0xbb, + 0x0d, 0xa3, 0x6c, 0xf1, 0x8e, 0x47, 0xff, 0x32, 0x3b, 0x39, 0x47, 0xe4, 0x6f, 0xc0, 0xf0, 0x80, + 0x06, 0xff, 0x1b, 0x0c, 0x4a, 0xe5, 0xf3, 0x25, 0x48, 0x87, 0x16, 0xec, 0x78, 0xf8, 0xdf, 0x64, + 0xf0, 0x30, 0x0a, 0xab, 0xce, 0x16, 0xec, 0x78, 0x82, 0xbf, 0xc5, 0x55, 0x67, 0x08, 0x6c, 0x36, + 0xbe, 0x56, 0xc7, 0xa3, 0xff, 0x36, 0xb7, 0x3a, 0x87, 0xe4, 0x5f, 0x80, 0x31, 0xbf, 0xfe, 0xc6, + 0xe3, 0xff, 0x0e, 0xc3, 0x07, 0x18, 0x6c, 0x81, 0x50, 0xfd, 0x8f, 0xa7, 0xf8, 0xbb, 0xdc, 0x02, + 0x21, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x67, 0xfa, 0x15, 0x9e, 0x46, 0xd2, 0x92, 0x8e, 0xbd, + 0x49, 0xca, 0x60, 0x3c, 0xc5, 0xdf, 0xe3, 0xde, 0x24, 0xf2, 0x58, 0x0d, 0x79, 0x91, 0x8c, 0xe7, + 0xf8, 0x07, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xef, 0x82, 0xde, 0xbd, 0x40, 0xc6, 0xf3, 0x7d, 0x9e, + 0xf1, 0x4d, 0x75, 0xad, 0x8f, 0xf9, 0x97, 0x60, 0x26, 0x7a, 0x71, 0x8c, 0x67, 0xfd, 0xd5, 0x1f, + 0x49, 0xb7, 0x33, 0xe1, 0xb5, 0x31, 0xbf, 0x1f, 0x54, 0xd9, 0xf0, 0xc2, 0x18, 0x4f, 0xfb, 0x85, + 0x1f, 0x89, 0x85, 0x36, 0xbc, 0x2e, 0xe6, 0x0b, 0x00, 0xc1, 0x9a, 0x14, 0xcf, 0xf5, 0x45, 0xc6, + 0x15, 0x02, 0xe1, 0xd4, 0x60, 0x4b, 0x52, 0x3c, 0xfe, 0x4b, 0x3c, 0x35, 0x18, 0x02, 0xa7, 0x06, + 0x5f, 0x8d, 0xe2, 0xd1, 0x5f, 0xe6, 0xa9, 0xc1, 0x21, 0xf9, 0xdb, 0x90, 0xb2, 0x3b, 0x8d, 0x06, + 0x8e, 0x2d, 0xbd, 0xff, 0x6b, 0x44, 0xd9, 0xff, 0xf1, 0x63, 0x06, 0xe6, 0x80, 0xfc, 0x1a, 0x0c, + 0xa3, 0xe6, 0x21, 0xaa, 0xc7, 0x21, 0xff, 0xe7, 0x8f, 0x79, 0x3d, 0xc1, 0xd2, 0xf9, 0x17, 0x00, + 0xe8, 0xcd, 0x34, 0x79, 0x4a, 0x14, 0x83, 0xfd, 0x5f, 0x3f, 0x66, 0x6f, 0x28, 0x04, 0x90, 0x80, + 0x80, 0xbe, 0xef, 0xd0, 0x9f, 0xe0, 0x07, 0x22, 0x01, 0xb9, 0x01, 0xbf, 0x05, 0xa3, 0xaf, 0xb8, + 0x8e, 0xed, 0x99, 0xc7, 0x71, 0xe8, 0xff, 0xcd, 0xd0, 0x5c, 0x1e, 0x1b, 0xac, 0xe9, 0xb4, 0x91, + 0x67, 0x1e, 0xbb, 0x71, 0xd8, 0xff, 0xc3, 0xb0, 0x3e, 0x00, 0x83, 0x6b, 0xa6, 0xeb, 0x0d, 0x72, + 0xdd, 0xff, 0x97, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0x3f, 0xbf, 0x8a, 0x4e, 0xe3, 0xb0, 0x3f, 0xe4, + 0x4a, 0x33, 0xf9, 0xfc, 0x73, 0x30, 0x86, 0x3f, 0xd2, 0xb7, 0x76, 0x62, 0xc0, 0x7f, 0xc8, 0xc0, + 0x01, 0x02, 0x9f, 0xd9, 0xf5, 0xea, 0x9e, 0x15, 0x6f, 0xec, 0xff, 0xc7, 0x3c, 0xcd, 0xe5, 0xf3, + 0x05, 0x48, 0xbb, 0x5e, 0xbd, 0xde, 0x61, 0x1d, 0x4d, 0x0c, 0xfc, 0x8f, 0x7e, 0xec, 0xdf, 0xe4, + 0xfa, 0x98, 0xe2, 0xc5, 0xe8, 0xcd, 0x3a, 0xb8, 0xe3, 0xdc, 0x71, 0xe8, 0x36, 0x1d, 0x7c, 0xaf, + 0x01, 0x37, 0x7a, 0xee, 0xba, 0xe1, 0x45, 0xe4, 0x4a, 0xcd, 0x69, 0x1e, 0x3a, 0xee, 0x95, 0x43, + 0xc7, 0x3b, 0xb9, 0xe2, 0x9d, 0x20, 0x3c, 0xc6, 0xf6, 0xdf, 0x92, 0xf8, 0xf3, 0xec, 0xd9, 0x36, + 0xed, 0xc8, 0xf3, 0xd8, 0x8a, 0x85, 0xf5, 0xae, 0x90, 0x2d, 0x71, 0xfd, 0x3c, 0x8c, 0x90, 0x2b, + 0xb9, 0x4a, 0x1e, 0x3b, 0x29, 0xc5, 0xe4, 0xfd, 0x77, 0xe7, 0x87, 0x0c, 0x36, 0xe6, 0xcf, 0xae, + 0x90, 0x3d, 0xcb, 0x84, 0x30, 0xbb, 0xe2, 0xcf, 0x5e, 0xa3, 0xdb, 0x96, 0xc2, 0xec, 0x35, 0x7f, + 0x76, 0x95, 0x6c, 0x60, 0xaa, 0xc2, 0xec, 0xaa, 0x3f, 0xbb, 0x46, 0x36, 0xe9, 0xc7, 0x85, 0xd9, + 0x35, 0x7f, 0xf6, 0x3a, 0xd9, 0x9a, 0x4f, 0x0a, 0xb3, 0xd7, 0xfd, 0xd9, 0x1b, 0x64, 0x57, 0x7e, + 0x4a, 0x98, 0xbd, 0xe1, 0xcf, 0xde, 0x24, 0xbb, 0xf1, 0xba, 0x30, 0x7b, 0xd3, 0x9f, 0xbd, 0x45, + 0x5e, 0x31, 0x19, 0x15, 0x66, 0x6f, 0xe9, 0x73, 0x30, 0x4a, 0xaf, 0x7c, 0x99, 0x3c, 0xba, 0x9d, + 0x64, 0xd3, 0x7c, 0x30, 0x98, 0xbf, 0x4a, 0x5e, 0x27, 0x19, 0x11, 0xe7, 0xaf, 0x06, 0xf3, 0x2b, + 0xe4, 0xc5, 0x6a, 0x4d, 0x9c, 0x5f, 0x09, 0xe6, 0xaf, 0x65, 0xc7, 0xc9, 0x2b, 0x35, 0xc2, 0xfc, + 0xb5, 0x60, 0x7e, 0x35, 0x3b, 0x81, 0x83, 0x59, 0x9c, 0x5f, 0x0d, 0xe6, 0xd7, 0xb2, 0x93, 0x17, + 0x94, 0x85, 0x8c, 0x38, 0xbf, 0x96, 0xfb, 0x45, 0xe2, 0x5e, 0x3b, 0x70, 0xef, 0x8c, 0xe8, 0x5e, + 0xdf, 0xb1, 0x33, 0xa2, 0x63, 0x7d, 0x97, 0xce, 0x88, 0x2e, 0xf5, 0x9d, 0x39, 0x23, 0x3a, 0xd3, + 0x77, 0xe3, 0x8c, 0xe8, 0x46, 0xdf, 0x81, 0x33, 0xa2, 0x03, 0x7d, 0xd7, 0xcd, 0x88, 0xae, 0xf3, + 0x9d, 0x36, 0x23, 0x3a, 0xcd, 0x77, 0xd7, 0x8c, 0xe8, 0x2e, 0xdf, 0x51, 0x59, 0xc9, 0x51, 0x81, + 0x8b, 0xb2, 0x92, 0x8b, 0x02, 0xe7, 0x64, 0x25, 0xe7, 0x04, 0x6e, 0xc9, 0x4a, 0x6e, 0x09, 0x1c, + 0x92, 0x95, 0x1c, 0x12, 0xb8, 0x22, 0x2b, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, + 0x72, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, + 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, + 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, + 0xa9, 0x3d, 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xe8, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, + 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, + 0xed, 0x91, 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, + 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0xe1, 0x1c, 0xfb, 0xd7, 0x2a, 0xe8, 0x34, 0xc7, + 0x76, 0xc9, 0xcb, 0x3f, 0xcc, 0x15, 0x73, 0x52, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, + 0xa4, 0x5c, 0x13, 0xe7, 0x57, 0xfc, 0x79, 0x9e, 0x6d, 0xe2, 0xfc, 0x35, 0x7f, 0x9e, 0xe7, 0x9b, + 0x38, 0xbf, 0xea, 0xcf, 0xf3, 0x8c, 0x13, 0xe7, 0xd7, 0xfc, 0x79, 0x9e, 0x73, 0xe2, 0xfc, 0x75, + 0x7f, 0x9e, 0x67, 0x9d, 0x38, 0x7f, 0xc3, 0x9f, 0xe7, 0x79, 0x27, 0xce, 0xdf, 0xf4, 0xe7, 0x79, + 0xe6, 0x89, 0xf3, 0xb7, 0xf4, 0x0b, 0x72, 0xee, 0x71, 0x01, 0xdf, 0xb5, 0x17, 0xe4, 0xec, 0x93, + 0x24, 0xae, 0x06, 0x12, 0x3c, 0xff, 0x24, 0x89, 0x95, 0x40, 0x82, 0x67, 0xa0, 0x24, 0x71, 0x2d, + 0xf7, 0x39, 0xe2, 0x3e, 0x5b, 0x76, 0xdf, 0xac, 0xe4, 0xbe, 0x44, 0xc8, 0x75, 0xb3, 0x92, 0xeb, + 0x12, 0x21, 0xb7, 0xcd, 0x4a, 0x6e, 0x4b, 0x84, 0x5c, 0x36, 0x2b, 0xb9, 0x2c, 0x11, 0x72, 0xd7, + 0xac, 0xe4, 0xae, 0x44, 0xc8, 0x55, 0xb3, 0x92, 0xab, 0x12, 0x21, 0x37, 0xcd, 0x4a, 0x6e, 0x4a, + 0x84, 0x5c, 0x34, 0x2b, 0xb9, 0x28, 0x11, 0x72, 0xcf, 0xac, 0xe4, 0x9e, 0x44, 0xc8, 0x35, 0xe7, + 0x65, 0xd7, 0x24, 0xc2, 0x6e, 0x39, 0x2f, 0xbb, 0x25, 0x11, 0x76, 0xc9, 0x79, 0xd9, 0x25, 0x89, + 0xb0, 0x3b, 0xce, 0xcb, 0xee, 0x48, 0x84, 0x5d, 0xf1, 0xa7, 0x09, 0xde, 0x11, 0xee, 0x79, 0xed, + 0x4e, 0xcd, 0xfb, 0x40, 0x1d, 0xe1, 0xb2, 0xd0, 0x3e, 0xa4, 0x57, 0xf4, 0x25, 0xd2, 0xb0, 0x86, + 0x3b, 0x4e, 0x69, 0x05, 0x5b, 0x16, 0x1a, 0x8b, 0x10, 0xc2, 0x8e, 0x46, 0xac, 0x7e, 0xa0, 0xde, + 0x70, 0x59, 0x68, 0x33, 0xe2, 0xf5, 0xbb, 0xf9, 0x91, 0x77, 0x6c, 0x6f, 0x27, 0x78, 0xc7, 0xc6, + 0xcc, 0x7f, 0xd6, 0x8e, 0x6d, 0x31, 0xde, 0xe4, 0xbe, 0xb1, 0x17, 0xe3, 0x8d, 0xdd, 0xb5, 0xea, + 0x0c, 0xda, 0xc1, 0x2d, 0xc6, 0x9b, 0xd6, 0x37, 0xea, 0x87, 0xdb, 0x6f, 0xb1, 0x08, 0x36, 0x50, + 0x2b, 0x22, 0x82, 0xcf, 0xda, 0x6f, 0x2d, 0x0b, 0xa5, 0xe4, 0xac, 0x11, 0xac, 0x9e, 0x39, 0x82, + 0xcf, 0xda, 0x79, 0x2d, 0x0b, 0xe5, 0xe5, 0xcc, 0x11, 0xfc, 0x11, 0xf4, 0x43, 0x2c, 0x82, 0x03, + 0xf3, 0x9f, 0xb5, 0x1f, 0x5a, 0x8c, 0x37, 0x79, 0x64, 0x04, 0xab, 0x67, 0x88, 0xe0, 0x41, 0xfa, + 0xa3, 0xc5, 0x78, 0xd3, 0x46, 0x47, 0xf0, 0x07, 0xee, 0x66, 0xbe, 0xa2, 0xc0, 0x54, 0xc5, 0xaa, + 0x97, 0x9b, 0x87, 0xa8, 0x5e, 0x47, 0x75, 0x66, 0xc7, 0x65, 0xa1, 0x12, 0xf4, 0x70, 0xf5, 0x3b, + 0xef, 0xce, 0x07, 0x16, 0x5e, 0x83, 0x14, 0xb5, 0xe9, 0xf2, 0x72, 0xf6, 0xbe, 0x12, 0x53, 0xe1, + 0x7c, 0x51, 0xfd, 0x22, 0x87, 0x5d, 0x5d, 0xce, 0xfe, 0x27, 0x25, 0x54, 0xe5, 0xfc, 0xe1, 0xdc, + 0xaf, 0x10, 0x0d, 0xed, 0x0f, 0xac, 0xe1, 0x95, 0x81, 0x34, 0x0c, 0xe9, 0xf6, 0x78, 0x97, 0x6e, + 0x21, 0xad, 0x3a, 0x30, 0x59, 0xb1, 0xea, 0x15, 0xf2, 0x95, 0xde, 0x41, 0x54, 0xa2, 0x32, 0x52, + 0x3d, 0x58, 0x16, 0xc2, 0x32, 0x8c, 0xf0, 0x43, 0x5a, 0xac, 0x11, 0x39, 0x0b, 0x9f, 0xd6, 0x16, + 0x4e, 0xbb, 0xd8, 0xeb, 0xb4, 0x41, 0x65, 0xf7, 0x4f, 0xb8, 0xd8, 0xeb, 0x84, 0x41, 0x0e, 0xf9, + 0xa7, 0x7a, 0x83, 0x2f, 0xce, 0xf4, 0x2d, 0x1c, 0xfd, 0x3c, 0x24, 0x36, 0xe9, 0x1b, 0xc2, 0x99, + 0x62, 0x06, 0x2b, 0xf5, 0x9d, 0x77, 0xe7, 0x93, 0x07, 0x1d, 0xab, 0x6e, 0x24, 0x36, 0xeb, 0xfa, + 0x5d, 0x18, 0xfe, 0x14, 0xfb, 0x62, 0x1c, 0x16, 0x58, 0x65, 0x02, 0x1f, 0x8b, 0xd9, 0x62, 0x22, + 0xd4, 0x4b, 0x07, 0x96, 0xed, 0x5d, 0x5d, 0xb9, 0x69, 0x50, 0x8a, 0xdc, 0x9f, 0x07, 0xa0, 0xe7, + 0x5c, 0x37, 0xdd, 0x13, 0xbd, 0xc2, 0x99, 0xe9, 0xa9, 0x6f, 0x7e, 0xe7, 0xdd, 0xf9, 0xd5, 0x41, + 0x58, 0x9f, 0xad, 0x9b, 0xee, 0xc9, 0xb3, 0xde, 0x69, 0x0b, 0x2d, 0x15, 0x4f, 0x3d, 0xe4, 0x72, + 0xf6, 0x16, 0x5f, 0xf5, 0xd8, 0x75, 0x65, 0x43, 0xd7, 0x95, 0x12, 0xae, 0x69, 0x43, 0xbc, 0xa6, + 0xe5, 0x87, 0xbd, 0x9e, 0x37, 0xf8, 0x22, 0x21, 0x59, 0x52, 0x8d, 0xb3, 0xa4, 0xfa, 0x41, 0x2d, + 0xd9, 0xe2, 0xf5, 0x51, 0xba, 0x56, 0xb5, 0xdf, 0xb5, 0xaa, 0x1f, 0xe4, 0x5a, 0xff, 0x98, 0x66, + 0xab, 0x9f, 0x4f, 0x07, 0x36, 0x7d, 0x3b, 0xf1, 0xcf, 0xd6, 0x5e, 0xd0, 0x87, 0xda, 0x05, 0xe4, + 0x93, 0xf7, 0xdf, 0x9a, 0x57, 0x72, 0x5f, 0x49, 0xf0, 0x2b, 0xa7, 0x89, 0xf4, 0x70, 0x57, 0xfe, + 0x67, 0xa5, 0xa7, 0xfa, 0x28, 0x2c, 0xf4, 0x65, 0x05, 0x66, 0xba, 0x2a, 0x39, 0x35, 0xd3, 0x87, + 0x5b, 0xce, 0xed, 0xb3, 0x96, 0x73, 0xa6, 0xe0, 0xef, 0x28, 0x70, 0x4e, 0x2a, 0xaf, 0x54, 0xbd, + 0x2b, 0x92, 0x7a, 0x8f, 0x76, 0x9f, 0x89, 0x08, 0x86, 0xb4, 0x0b, 0xbb, 0x57, 0x02, 0x84, 0x98, + 0x7d, 0xbf, 0xaf, 0x4a, 0x7e, 0x3f, 0xef, 0x03, 0x22, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0xed, 0x40, + 0x72, 0xbf, 0x8d, 0x90, 0x3e, 0x07, 0x89, 0x9d, 0x36, 0xd3, 0x70, 0x82, 0xe2, 0x77, 0xda, 0xc5, + 0xb6, 0x69, 0xd7, 0x4e, 0x8c, 0xc4, 0x4e, 0x5b, 0xbf, 0x08, 0x6a, 0x81, 0xfd, 0xf4, 0x40, 0x7a, + 0x65, 0x92, 0x0a, 0x14, 0xec, 0x3a, 0x93, 0xc0, 0x73, 0xfa, 0x1c, 0x24, 0xb7, 0x90, 0x79, 0xc4, + 0x94, 0x00, 0x2a, 0x83, 0x47, 0x0c, 0x32, 0xce, 0x4e, 0xf8, 0x32, 0xa4, 0x38, 0xb1, 0x7e, 0x09, + 0x23, 0x8e, 0x3c, 0x76, 0x5a, 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0xcc, 0xea, 0x97, 0x61, 0xd8, + 0xb0, 0x8e, 0x4f, 0x3c, 0x76, 0xf2, 0x6e, 0x31, 0x3a, 0x9d, 0xbb, 0x07, 0x63, 0xbe, 0x46, 0x1f, + 0x32, 0xf5, 0x3a, 0xbd, 0x34, 0x7d, 0x36, 0xbc, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x5f, 0x80, + 0xd4, 0x9e, 0xd7, 0x0e, 0x8a, 0x3e, 0xef, 0x48, 0xfd, 0xd1, 0xdc, 0x2f, 0x2a, 0x90, 0x5a, 0x47, + 0xa8, 0x45, 0x0c, 0xfe, 0x14, 0x24, 0xd7, 0x9d, 0xd7, 0x6d, 0xa6, 0xe0, 0x14, 0xb3, 0x28, 0x9e, + 0x66, 0x36, 0x25, 0xd3, 0xfa, 0x53, 0x61, 0xbb, 0x4f, 0xfb, 0x76, 0x0f, 0xc9, 0x11, 0xdb, 0xe7, + 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa1, 0x2e, 0xfb, 0xdf, 0x80, 0x74, 0xe8, 0x2c, 0xfa, 0x02, 0x53, + 0x23, 0x21, 0x03, 0xc3, 0xb6, 0xc2, 0x12, 0x39, 0x04, 0xe3, 0xc2, 0x89, 0x31, 0x34, 0x64, 0xe2, + 0x1e, 0x50, 0x62, 0xe6, 0x45, 0xd1, 0xcc, 0xd1, 0xa2, 0xcc, 0xd4, 0xcb, 0xd4, 0x46, 0xc4, 0xdc, + 0x97, 0x68, 0x70, 0xf6, 0x76, 0x22, 0xfe, 0x9c, 0x1b, 0x06, 0xb5, 0x62, 0x35, 0x72, 0xcf, 0x01, + 0xd0, 0x94, 0x2f, 0xdb, 0x9d, 0xa6, 0x94, 0x75, 0x13, 0xdc, 0xc0, 0xfb, 0x27, 0x68, 0x1f, 0xb9, + 0x44, 0x44, 0xec, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x4c, 0x2c, 0x3e, 0xb2, 0x13, + 0xc3, 0xa2, 0x59, 0x2a, 0x7a, 0x0f, 0x79, 0x05, 0xdb, 0xf1, 0x4e, 0x50, 0x5b, 0x42, 0xac, 0xe8, + 0xd7, 0x84, 0x84, 0x9d, 0x58, 0x79, 0xdc, 0x47, 0xf4, 0x04, 0x5d, 0xcb, 0x7d, 0x83, 0x28, 0x88, + 0x5b, 0x81, 0xae, 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0xba, 0xd0, 0xbf, 0xf5, 0x51, 0x53, 0xba, + 0xb5, 0xbc, 0x25, 0xdc, 0xe7, 0xf4, 0x57, 0x56, 0xbc, 0xc7, 0xe4, 0x36, 0xe5, 0x2a, 0x3f, 0x13, + 0xab, 0x72, 0x8f, 0xee, 0xf6, 0xac, 0x36, 0x55, 0x07, 0xb5, 0xe9, 0xef, 0xf9, 0x1d, 0x07, 0xfd, + 0x11, 0x07, 0xf2, 0x9b, 0x21, 0xfa, 0xc7, 0x62, 0x7d, 0x9f, 0x57, 0x4a, 0xbe, 0xaa, 0xab, 0x83, + 0xba, 0x3f, 0x9f, 0x28, 0x16, 0x7d, 0x75, 0x6f, 0x9c, 0x21, 0x04, 0xf2, 0x89, 0x52, 0xc9, 0x2f, + 0xdb, 0xa9, 0xcf, 0xbd, 0x35, 0xaf, 0x7c, 0xfd, 0xad, 0xf9, 0xa1, 0xdc, 0x6f, 0x28, 0x30, 0xc5, + 0x24, 0x43, 0x81, 0xfb, 0xac, 0xa4, 0xfc, 0x23, 0xbc, 0x66, 0x44, 0x59, 0xe0, 0x27, 0x16, 0xbc, + 0xdf, 0x56, 0x20, 0xdb, 0xa5, 0x2b, 0xb7, 0xf7, 0xf2, 0x40, 0x2a, 0xe7, 0x95, 0xf2, 0x4f, 0xdf, + 0xe6, 0xf7, 0x60, 0x78, 0xdf, 0x6a, 0xa2, 0x36, 0x5e, 0x09, 0xf0, 0x07, 0xaa, 0x32, 0x7f, 0x98, + 0x43, 0x87, 0xf8, 0x1c, 0x55, 0x4e, 0x98, 0x5b, 0xd1, 0xb3, 0x90, 0x5c, 0x37, 0x3d, 0x93, 0x68, + 0x90, 0xf1, 0xeb, 0xab, 0xe9, 0x99, 0xb9, 0x6b, 0x90, 0xd9, 0x3e, 0x25, 0xaf, 0xd0, 0xd4, 0xc9, + 0xeb, 0x21, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0xab, 0x8b, 0xc3, 0xa9, 0xba, 0x76, 0x5f, 0xc9, 0x27, + 0x89, 0x3e, 0xaf, 0xc1, 0xc4, 0x0e, 0x56, 0x9b, 0xe0, 0x08, 0xec, 0x02, 0x28, 0xdb, 0x62, 0x23, + 0x14, 0x66, 0x35, 0x94, 0x6d, 0xa9, 0x7d, 0x54, 0x7d, 0xf3, 0x48, 0x6d, 0x9b, 0xea, 0xb7, 0x6d, + 0x8b, 0xc9, 0xd4, 0x84, 0x36, 0xb5, 0x98, 0x4c, 0x81, 0x36, 0xce, 0xce, 0xfb, 0x1f, 0x54, 0xd0, + 0x68, 0xab, 0xb3, 0x8e, 0x8e, 0x2c, 0xdb, 0xf2, 0xba, 0xfb, 0x55, 0x5f, 0x63, 0xfd, 0x05, 0x18, + 0xc3, 0x26, 0xdd, 0x60, 0x3f, 0xbd, 0x85, 0x4d, 0x7f, 0x91, 0xb5, 0x28, 0x12, 0x05, 0x1b, 0x20, + 0xa1, 0x13, 0x60, 0xf4, 0x0d, 0x50, 0x2b, 0x95, 0x6d, 0xb6, 0xb8, 0xad, 0xf6, 0x85, 0xb2, 0x37, + 0x70, 0xd8, 0x11, 0x1b, 0x73, 0x8f, 0x0d, 0x4c, 0xa0, 0xaf, 0x42, 0xa2, 0xb2, 0xcd, 0x1a, 0xde, + 0x4b, 0x83, 0xd0, 0x18, 0x89, 0xca, 0xf6, 0xec, 0xbf, 0x51, 0x60, 0x5c, 0x18, 0xd5, 0x73, 0x90, + 0xa1, 0x03, 0xa1, 0xcb, 0x1d, 0x31, 0x84, 0x31, 0xae, 0x73, 0xe2, 0x03, 0xea, 0x3c, 0x5b, 0x80, + 0x49, 0x69, 0x5c, 0x5f, 0x02, 0x3d, 0x3c, 0xc4, 0x94, 0xa0, 0x3f, 0x5b, 0x14, 0x31, 0x93, 0x7b, + 0x02, 0x20, 0xb0, 0xab, 0xff, 0x6b, 0x3b, 0x95, 0xf2, 0xde, 0x7e, 0x79, 0x5d, 0x53, 0x72, 0xdf, + 0x52, 0x20, 0xcd, 0xda, 0xd6, 0x9a, 0xd3, 0x42, 0x7a, 0x11, 0x94, 0x02, 0x8b, 0xa0, 0x87, 0xd3, + 0x5b, 0x29, 0xe8, 0x57, 0x40, 0x29, 0x0e, 0xee, 0x6a, 0xa5, 0xa8, 0xaf, 0x80, 0x52, 0x62, 0x0e, + 0x1e, 0xcc, 0x33, 0x4a, 0x29, 0xf7, 0x87, 0x2a, 0x4c, 0x87, 0xdb, 0x68, 0x5e, 0x4f, 0x2e, 0x8a, + 0xf7, 0x4d, 0xf9, 0xb1, 0xab, 0x2b, 0xd7, 0x56, 0x97, 0xf0, 0x3f, 0x7e, 0x48, 0x5e, 0x14, 0x6f, + 0xa1, 0xba, 0x45, 0xba, 0x5e, 0x13, 0xc9, 0x27, 0x43, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0x5d, + 0xaf, 0x89, 0x08, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0x5d, 0x8f, 0x02, 0x84, 0xd9, 0xae, 0xd7, + 0x44, 0x84, 0xd9, 0xae, 0xd7, 0x44, 0x84, 0xd9, 0xee, 0xd7, 0x44, 0xd8, 0x74, 0xcf, 0xd7, 0x44, + 0xc4, 0xf9, 0xee, 0xd7, 0x44, 0xc4, 0xf9, 0xee, 0xd7, 0x44, 0xf2, 0x49, 0xaf, 0xdd, 0x41, 0xbd, + 0x1f, 0x3a, 0x88, 0xf8, 0x7e, 0xf7, 0x80, 0x41, 0x01, 0xde, 0x81, 0x49, 0xba, 0x1f, 0x51, 0x72, + 0x6c, 0xcf, 0xb4, 0x6c, 0xd4, 0xd6, 0x3f, 0x0e, 0x19, 0x3a, 0x44, 0xef, 0x72, 0xa2, 0xee, 0x02, + 0xe9, 0x3c, 0x2b, 0xb7, 0x82, 0x74, 0xee, 0x4f, 0x93, 0x30, 0x43, 0x07, 0x2a, 0x66, 0x13, 0x09, + 0x2f, 0x19, 0x5d, 0x96, 0x1e, 0x29, 0x4d, 0x60, 0xf8, 0x83, 0x77, 0xe7, 0xe9, 0x68, 0xc1, 0x0f, + 0xa6, 0xcb, 0xd2, 0xc3, 0x25, 0x51, 0x2e, 0x58, 0x7f, 0x2e, 0x4b, 0x2f, 0x1e, 0x89, 0x72, 0xfe, + 0x72, 0xe3, 0xcb, 0xf1, 0x57, 0x90, 0x44, 0xb9, 0x75, 0x3f, 0xca, 0x2e, 0x4b, 0x2f, 0x23, 0x89, + 0x72, 0x65, 0x3f, 0xde, 0x2e, 0x4b, 0x8f, 0x9e, 0x44, 0xb9, 0x0d, 0x3f, 0xf2, 0x2e, 0x4b, 0x0f, + 0xa1, 0x44, 0xb9, 0x3b, 0x7e, 0x0c, 0x5e, 0x96, 0x5e, 0x55, 0x12, 0xe5, 0x5e, 0xf4, 0xa3, 0xf1, + 0xb2, 0xf4, 0xd2, 0x92, 0x28, 0xb7, 0xe9, 0xc7, 0xe5, 0x82, 0xfc, 0xfa, 0x92, 0x28, 0x78, 0x37, + 0x88, 0xd0, 0x05, 0xf9, 0x45, 0x26, 0x51, 0xf2, 0x13, 0x41, 0xac, 0x2e, 0xc8, 0xaf, 0x34, 0x89, + 0x92, 0x5b, 0x41, 0xd4, 0x2e, 0xc8, 0x8f, 0xca, 0x44, 0xc9, 0xed, 0x20, 0x7e, 0x17, 0xe4, 0x87, + 0x66, 0xa2, 0x64, 0x25, 0x88, 0xe4, 0x05, 0xf9, 0xf1, 0x99, 0x28, 0xb9, 0x13, 0xec, 0xa1, 0xff, + 0xbe, 0x14, 0x7e, 0xa1, 0x97, 0xa0, 0x72, 0x52, 0xf8, 0x41, 0x44, 0xe8, 0xe5, 0xa4, 0xd0, 0x83, + 0x88, 0xb0, 0xcb, 0x49, 0x61, 0x07, 0x11, 0x21, 0x97, 0x93, 0x42, 0x0e, 0x22, 0xc2, 0x2d, 0x27, + 0x85, 0x1b, 0x44, 0x84, 0x5a, 0x4e, 0x0a, 0x35, 0x88, 0x08, 0xb3, 0x9c, 0x14, 0x66, 0x10, 0x11, + 0x62, 0x39, 0x29, 0xc4, 0x20, 0x22, 0xbc, 0x72, 0x52, 0x78, 0x41, 0x44, 0x68, 0x5d, 0x92, 0x43, + 0x0b, 0xa2, 0xc2, 0xea, 0x92, 0x1c, 0x56, 0x10, 0x15, 0x52, 0x4f, 0xca, 0x21, 0x35, 0xf6, 0xe0, + 0xdd, 0xf9, 0x61, 0x3c, 0x14, 0x8a, 0xa6, 0x4b, 0x72, 0x34, 0x41, 0x54, 0x24, 0x5d, 0x92, 0x23, + 0x09, 0xa2, 0xa2, 0xe8, 0x92, 0x1c, 0x45, 0x10, 0x15, 0x41, 0x6f, 0xcb, 0x11, 0x14, 0xbc, 0xe2, + 0x93, 0x93, 0x9e, 0x28, 0xc6, 0x45, 0x90, 0x3a, 0x40, 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, + 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, 0x04, 0xa9, + 0x83, 0x44, 0x90, 0x3a, 0x50, 0x04, 0xa9, 0xbd, 0x22, 0xe8, 0x92, 0xfc, 0xc2, 0x03, 0x44, 0x15, + 0xa4, 0x4b, 0xf2, 0x93, 0xcf, 0xf8, 0x10, 0x52, 0x07, 0x0a, 0x21, 0xb5, 0x57, 0x08, 0xfd, 0xbe, + 0x0a, 0xd3, 0x42, 0x08, 0xb1, 0xc7, 0x43, 0x1f, 0x56, 0x05, 0xba, 0x3e, 0xc0, 0xfb, 0x15, 0x51, + 0x31, 0x75, 0x7d, 0x80, 0x67, 0xd4, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x07, 0xa8, 0x42, 0x1b, + 0x7e, 0x0c, 0x5d, 0x1f, 0xe0, 0xbd, 0x8b, 0xee, 0xd8, 0xbb, 0xd9, 0xaf, 0x08, 0xbc, 0x38, 0x50, + 0x11, 0xd8, 0x1c, 0xa8, 0x08, 0xdc, 0x0d, 0x3c, 0xf8, 0x4b, 0x09, 0x38, 0x17, 0x78, 0x90, 0x7e, + 0x22, 0x3f, 0x91, 0x94, 0x0b, 0x3d, 0xa1, 0xd2, 0xf9, 0x53, 0x9b, 0x90, 0x1b, 0x13, 0x9b, 0x75, + 0x7d, 0x57, 0x7c, 0x56, 0x95, 0x3f, 0xeb, 0xf3, 0x9b, 0x90, 0xc7, 0xd9, 0x5e, 0xe8, 0x25, 0x50, + 0x37, 0xeb, 0x2e, 0xa9, 0x16, 0x51, 0xa7, 0x2d, 0x19, 0x78, 0x5a, 0x37, 0x60, 0x84, 0x88, 0xbb, + 0xc4, 0xbd, 0x1f, 0xe4, 0xc4, 0xeb, 0x06, 0x63, 0xca, 0xbd, 0xad, 0xc0, 0x05, 0x21, 0x94, 0x3f, + 0x9c, 0x27, 0x06, 0xb7, 0x07, 0x7a, 0x62, 0x20, 0x24, 0x48, 0xf0, 0xf4, 0xe0, 0xe9, 0xee, 0x07, + 0xd5, 0xe1, 0x2c, 0x91, 0x9f, 0x24, 0xfc, 0x45, 0x98, 0x08, 0xae, 0x80, 0xdc, 0xb2, 0xad, 0xc5, + 0x6f, 0x66, 0x46, 0xa5, 0xe6, 0x9a, 0xb4, 0x89, 0xd6, 0x17, 0xe6, 0x67, 0x6b, 0x2e, 0x0f, 0x93, + 0x15, 0xf1, 0xbb, 0x3c, 0x71, 0x7b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xff, 0xea, 0xfc, 0x50, 0xee, + 0x63, 0x90, 0x09, 0x7f, 0x5d, 0x47, 0x02, 0x8e, 0x71, 0x60, 0x3e, 0xf9, 0x0e, 0x96, 0xfe, 0xfb, + 0x0a, 0x3c, 0x12, 0x16, 0x7f, 0xc9, 0xf2, 0x4e, 0x36, 0x6d, 0xdc, 0xd3, 0x3f, 0x07, 0x29, 0xc4, + 0x1c, 0xc7, 0x7e, 0xed, 0x84, 0xdd, 0x46, 0x46, 0x8a, 0x2f, 0x91, 0x7f, 0x0d, 0x1f, 0x22, 0x6d, + 0x71, 0xf0, 0xd3, 0xae, 0xcc, 0x3e, 0x05, 0xc3, 0x94, 0x5f, 0xd4, 0x6b, 0x5c, 0xd2, 0xeb, 0xd7, + 0x23, 0xf4, 0x22, 0x71, 0xa4, 0xdf, 0x15, 0xf4, 0x0a, 0xdd, 0xad, 0x46, 0x8a, 0x2f, 0xf1, 0xe0, + 0x2b, 0xa6, 0x70, 0xff, 0x47, 0x22, 0x2a, 0x5e, 0xc9, 0x05, 0x48, 0x95, 0x65, 0x99, 0x68, 0x3d, + 0xd7, 0x21, 0x59, 0x71, 0xea, 0xe4, 0x77, 0x58, 0xc8, 0xef, 0xe5, 0x32, 0x23, 0xb3, 0x1f, 0xcf, + 0xbd, 0x0c, 0xa9, 0xd2, 0x89, 0xd5, 0xa8, 0xb7, 0x91, 0xcd, 0x1e, 0xd9, 0xb3, 0x1d, 0x74, 0x8c, + 0x31, 0xfc, 0xb9, 0x5c, 0x09, 0xa6, 0x2a, 0x8e, 0x5d, 0x3c, 0xf5, 0xc2, 0x75, 0x63, 0x49, 0x4a, + 0x11, 0xf6, 0xc8, 0x87, 0x7c, 0x01, 0x04, 0x0b, 0x14, 0x87, 0xbf, 0xf3, 0xee, 0xbc, 0xb2, 0xef, + 0x6f, 0x9f, 0x6f, 0xc3, 0xa3, 0x2c, 0x7d, 0xba, 0xa8, 0x56, 0xe2, 0xa8, 0xc6, 0xd8, 0x63, 0xea, + 0x10, 0xdd, 0x26, 0xa6, 0xb3, 0x23, 0xe9, 0x1e, 0x4e, 0x33, 0xdc, 0x14, 0xf5, 0xd5, 0x4c, 0x3d, + 0x93, 0x66, 0x91, 0x74, 0x4b, 0x71, 0x74, 0x92, 0x66, 0x4f, 0xc2, 0x98, 0x3f, 0x17, 0x8a, 0x86, + 0x70, 0xa6, 0xac, 0x2c, 0xe6, 0x20, 0x1d, 0x4a, 0x58, 0x7d, 0x18, 0x94, 0x82, 0x36, 0x84, 0xff, + 0x2b, 0x6a, 0x0a, 0xfe, 0xaf, 0xa4, 0x25, 0x16, 0x9f, 0x82, 0x49, 0x69, 0xfb, 0x12, 0xcf, 0xac, + 0x6b, 0x80, 0xff, 0x2b, 0x6b, 0xe9, 0xd9, 0xe4, 0xe7, 0xfe, 0xd1, 0xdc, 0xd0, 0xe2, 0x6d, 0xd0, + 0xbb, 0x37, 0x3a, 0xf5, 0x11, 0x48, 0x14, 0x30, 0xe5, 0xa3, 0x90, 0x28, 0x16, 0x35, 0x65, 0x76, + 0xf2, 0xaf, 0x7d, 0xe9, 0x42, 0xba, 0x48, 0xbe, 0x8b, 0x7c, 0x0f, 0x79, 0xc5, 0x22, 0x03, 0x3f, + 0x0f, 0x8f, 0x44, 0x6e, 0x94, 0x62, 0x7c, 0xa9, 0x44, 0xf1, 0xeb, 0xeb, 0x5d, 0xf8, 0xf5, 0x75, + 0x82, 0x57, 0xf2, 0xfc, 0x81, 0x73, 0x41, 0x8f, 0xd8, 0x96, 0xcc, 0xd6, 0x43, 0x0f, 0xb8, 0x0b, + 0xf9, 0xe7, 0x99, 0x6c, 0x31, 0x52, 0x16, 0xc5, 0x3c, 0xb0, 0x2e, 0xe6, 0x4b, 0x0c, 0x5f, 0x8a, + 0xc4, 0x1f, 0x49, 0x4f, 0x55, 0xc5, 0x15, 0x82, 0x91, 0x94, 0x7c, 0x85, 0xd7, 0x23, 0x49, 0x4e, + 0x42, 0xef, 0xba, 0xaf, 0xfb, 0x0a, 0x97, 0x23, 0x65, 0xad, 0x98, 0x77, 0xbe, 0xca, 0xf9, 0x2b, + 0x6c, 0x91, 0x2f, 0x5c, 0xd5, 0x1f, 0xe1, 0x39, 0x2a, 0x54, 0x60, 0x66, 0x20, 0x2e, 0x95, 0x2f, + 0x31, 0x40, 0xb1, 0x27, 0xa0, 0xb7, 0x95, 0x38, 0x32, 0xff, 0x22, 0x23, 0x29, 0xf5, 0x24, 0x89, + 0x31, 0x15, 0x87, 0x17, 0xf7, 0xef, 0xbf, 0x37, 0x37, 0xf4, 0xce, 0x7b, 0x73, 0x43, 0xff, 0xe5, + 0xbd, 0xb9, 0xa1, 0xef, 0xbe, 0x37, 0xa7, 0x7c, 0xff, 0xbd, 0x39, 0xe5, 0x87, 0xef, 0xcd, 0x29, + 0x7f, 0xf2, 0xde, 0x9c, 0xf2, 0xe6, 0x83, 0x39, 0xe5, 0xeb, 0x0f, 0xe6, 0x94, 0x6f, 0x3c, 0x98, + 0x53, 0x7e, 0xf7, 0xc1, 0x9c, 0xf2, 0xf6, 0x83, 0x39, 0xe5, 0xfe, 0x83, 0x39, 0xe5, 0x9d, 0x07, + 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0xdf, 0x7f, 0x30, 0x37, 0xf4, 0xc3, 0x07, 0x73, 0xca, 0x9f, + 0x3c, 0x98, 0x1b, 0x7a, 0xf3, 0xfd, 0xb9, 0xa1, 0xb7, 0xde, 0x9f, 0x1b, 0xfa, 0xfa, 0xfb, 0x73, + 0x0a, 0xfc, 0xb7, 0x55, 0xb8, 0xc8, 0xbe, 0x48, 0x46, 0xbf, 0xb7, 0xca, 0xbf, 0x4e, 0x46, 0x7a, + 0x82, 0x6b, 0xfc, 0x07, 0x9d, 0xfc, 0x81, 0x33, 0x7e, 0xab, 0x6c, 0xf6, 0x61, 0xbf, 0xc3, 0x96, + 0xfb, 0xb7, 0xc3, 0x30, 0xca, 0xf7, 0x82, 0xa3, 0x7e, 0x12, 0x7a, 0x0d, 0x52, 0x27, 0x56, 0xc3, + 0x6c, 0x5b, 0xde, 0x29, 0xdb, 0x04, 0x7d, 0x6c, 0x29, 0x50, 0x9b, 0x6f, 0x9b, 0xbe, 0xd8, 0x69, + 0x3a, 0x9d, 0xb6, 0xe1, 0x8b, 0xea, 0x17, 0x20, 0x73, 0x82, 0xac, 0xe3, 0x13, 0xaf, 0x6a, 0xd9, + 0xd5, 0x5a, 0x93, 0x34, 0xcb, 0xe3, 0x06, 0xd0, 0xb1, 0x4d, 0xbb, 0xd4, 0xc4, 0x27, 0xab, 0x9b, + 0x9e, 0x49, 0x6e, 0xd2, 0x33, 0x06, 0xf9, 0xac, 0x5f, 0x84, 0x4c, 0x1b, 0xb9, 0x9d, 0x86, 0x57, + 0xad, 0x39, 0x1d, 0xdb, 0x23, 0xed, 0xac, 0x6a, 0xa4, 0xe9, 0x58, 0x09, 0x0f, 0xe9, 0x4f, 0xc2, + 0xb8, 0xd7, 0xee, 0xa0, 0xaa, 0x5b, 0x73, 0x3c, 0xb7, 0x69, 0xda, 0xa4, 0x9d, 0x4d, 0x19, 0x19, + 0x3c, 0xb8, 0xc7, 0xc6, 0xc8, 0x9f, 0x1c, 0xa8, 0x39, 0x6d, 0x44, 0xee, 0xa6, 0x13, 0x06, 0x3d, + 0xd0, 0x35, 0x50, 0x5f, 0x45, 0xa7, 0xe4, 0x7e, 0x2d, 0x69, 0xe0, 0x8f, 0xfa, 0x33, 0x30, 0x42, + 0xff, 0x1a, 0x05, 0x69, 0xae, 0xc9, 0xa3, 0x6b, 0xff, 0xd2, 0xe8, 0x16, 0xad, 0xc1, 0x04, 0xf4, + 0x5b, 0x30, 0xea, 0xa1, 0x76, 0xdb, 0xb4, 0x6c, 0x72, 0xef, 0x94, 0x5e, 0x99, 0x8f, 0x30, 0xc3, + 0x3e, 0x95, 0x20, 0xbf, 0xee, 0x6a, 0x70, 0x79, 0x7d, 0x0d, 0x32, 0x44, 0x6e, 0xa5, 0x4a, 0xff, + 0x62, 0x47, 0xba, 0x67, 0x38, 0xa7, 0xa9, 0x1c, 0x7f, 0x52, 0xc0, 0x61, 0xf4, 0x97, 0xed, 0xc6, + 0xc9, 0x69, 0x9f, 0x8c, 0x38, 0x2d, 0xa9, 0xbc, 0x2b, 0xa4, 0x6b, 0xa4, 0xa7, 0x66, 0x3c, 0xf4, + 0xb7, 0xef, 0xb6, 0x21, 0x13, 0xd6, 0x8b, 0x9b, 0x81, 0x76, 0x3f, 0xc4, 0x0c, 0x4f, 0x07, 0xbf, + 0xe6, 0xde, 0xc3, 0x0a, 0x74, 0x3e, 0x9f, 0xb8, 0xa9, 0xcc, 0xee, 0x82, 0x26, 0x9f, 0x2f, 0x82, + 0xf2, 0xb2, 0x48, 0xa9, 0x85, 0x2f, 0x96, 0xec, 0x93, 0x07, 0x8c, 0xb9, 0x17, 0x60, 0x84, 0xc6, + 0x8f, 0x9e, 0x86, 0xd1, 0xe0, 0x47, 0x13, 0x53, 0x90, 0xdc, 0x3d, 0xa8, 0xec, 0xd1, 0x5f, 0x3f, + 0xdd, 0xdb, 0x2a, 0xec, 0xee, 0xed, 0x6f, 0x96, 0x3e, 0xa1, 0x25, 0xf4, 0x49, 0x48, 0x17, 0x37, + 0xb7, 0xb6, 0xaa, 0xc5, 0xc2, 0xe6, 0x56, 0xf9, 0x9e, 0xa6, 0xe6, 0xe6, 0x60, 0x84, 0xea, 0x49, + 0x7e, 0xc5, 0xad, 0x63, 0xdb, 0xa7, 0xbc, 0x7b, 0x20, 0x07, 0xb9, 0x6f, 0xea, 0x30, 0x5a, 0x68, + 0x34, 0xb6, 0xcd, 0x96, 0xab, 0xbf, 0x04, 0x53, 0xf4, 0xf7, 0x24, 0xf6, 0x9d, 0x75, 0xf2, 0x63, + 0x83, 0xb8, 0x36, 0x28, 0xec, 0x57, 0xec, 0x83, 0xeb, 0x66, 0xe2, 0x4b, 0x5d, 0xb2, 0xd4, 0xc0, + 0xdd, 0x1c, 0xfa, 0x3e, 0x68, 0x7c, 0x70, 0xa3, 0xe1, 0x98, 0x1e, 0xe6, 0x4d, 0xb0, 0xdf, 0x02, + 0xec, 0xcd, 0xcb, 0x45, 0x29, 0x6d, 0x17, 0x83, 0xfe, 0x71, 0x48, 0x6d, 0xda, 0xde, 0xb5, 0x15, + 0xcc, 0xc6, 0xff, 0xc2, 0x4a, 0x37, 0x1b, 0x17, 0xa1, 0x2c, 0x3e, 0x82, 0xa1, 0xaf, 0xaf, 0x62, + 0x74, 0xb2, 0x1f, 0x9a, 0x88, 0x04, 0x68, 0x72, 0xa8, 0xbf, 0x00, 0x63, 0xf8, 0xe6, 0x84, 0x9e, + 0x7c, 0x98, 0x77, 0xae, 0x5d, 0x70, 0x5f, 0x86, 0xe2, 0x03, 0x0c, 0x27, 0xa0, 0xe7, 0x1f, 0xe9, + 0x4b, 0x10, 0x52, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, 0x9e, 0x04, 0x7b, 0x92, 0x06, + 0x7b, 0x61, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0xc2, 0x1a, 0xf8, 0xc7, 0x7a, 0x11, 0x60, + 0xc3, 0x7a, 0x03, 0xd5, 0xa9, 0x0a, 0xf4, 0xef, 0xaf, 0xe4, 0x22, 0x18, 0x02, 0x21, 0x4a, 0x11, + 0x42, 0xe9, 0x65, 0x48, 0xef, 0x1d, 0x05, 0x24, 0xd0, 0x95, 0xc7, 0xbe, 0x1a, 0x47, 0x12, 0x4b, + 0x18, 0xe7, 0xab, 0x42, 0x2f, 0x26, 0xdd, 0x5f, 0x95, 0xd0, 0xd5, 0x84, 0x50, 0x81, 0x2a, 0x94, + 0x24, 0x13, 0xa3, 0x4a, 0x88, 0x25, 0x8c, 0xc3, 0xc5, 0xb0, 0xe8, 0x38, 0x58, 0x92, 0x55, 0xa5, + 0xf9, 0x08, 0x0a, 0x26, 0xc1, 0x8a, 0x21, 0x3b, 0x22, 0x1e, 0x21, 0x41, 0x8e, 0xc1, 0x13, 0xbd, + 0x3d, 0xc2, 0x65, 0xb8, 0x47, 0xf8, 0x71, 0x38, 0xcf, 0xc8, 0xfb, 0xac, 0x98, 0x67, 0x32, 0x36, + 0xcf, 0xb8, 0xa8, 0x94, 0x67, 0x7c, 0x58, 0xff, 0x24, 0x4c, 0xf2, 0x31, 0x5c, 0x9e, 0x30, 0xa9, + 0xc6, 0xfe, 0x42, 0x55, 0x6f, 0x52, 0x26, 0x49, 0x39, 0x65, 0xbc, 0x5e, 0x81, 0x09, 0x3e, 0xb4, + 0xed, 0x92, 0xcb, 0x9d, 0x62, 0x7f, 0xfd, 0xa1, 0x37, 0x23, 0x15, 0xa4, 0x84, 0x12, 0x7a, 0x76, + 0x1d, 0x66, 0xa2, 0xab, 0x51, 0xb8, 0xfc, 0x8e, 0xd1, 0xf2, 0x7b, 0x2e, 0x5c, 0x7e, 0x95, 0x70, + 0xf9, 0x2e, 0xc1, 0x23, 0x91, 0xb5, 0x27, 0x8e, 0x24, 0x11, 0x26, 0xb9, 0x0d, 0xe3, 0x42, 0xc9, + 0x09, 0x83, 0x87, 0x23, 0xc0, 0xc3, 0xdd, 0xe0, 0x20, 0xb4, 0x22, 0x56, 0x0f, 0x01, 0xac, 0x86, + 0xc1, 0x1f, 0x87, 0x09, 0xb1, 0xde, 0x84, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xb9, + 0x93, 0x11, 0xe8, 0xa4, 0x84, 0xde, 0xeb, 0x79, 0xee, 0xa9, 0x08, 0xf4, 0x54, 0x04, 0x3a, 0xfa, + 0xdc, 0x7a, 0x04, 0x5a, 0x0f, 0xa3, 0x9f, 0x83, 0x49, 0xa9, 0xc4, 0x84, 0xe1, 0xa3, 0x11, 0xf0, + 0xd1, 0x30, 0xfc, 0x79, 0xd0, 0xe4, 0xe2, 0x12, 0xc6, 0x4f, 0x46, 0xe0, 0x27, 0xa3, 0x4e, 0x1f, + 0xad, 0xfd, 0x48, 0x04, 0x7c, 0x24, 0xf2, 0xf4, 0xd1, 0x78, 0x2d, 0x02, 0xaf, 0x85, 0xf1, 0x79, + 0xc8, 0x84, 0xab, 0x49, 0x18, 0x9b, 0x8a, 0xc0, 0xa6, 0x64, 0xbb, 0x0b, 0xc5, 0x24, 0x2e, 0xd2, + 0xc7, 0x7a, 0xa4, 0x8b, 0x50, 0x42, 0xe2, 0x48, 0x32, 0x61, 0x92, 0x4f, 0xc1, 0xb9, 0xa8, 0x92, + 0x11, 0xc1, 0xb1, 0x10, 0xe6, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0x2d, 0xa9, 0x71, 0x9a, + 0xfd, 0x34, 0x4c, 0x47, 0x14, 0x8e, 0x08, 0xda, 0x25, 0xb1, 0x1b, 0xcb, 0x86, 0x68, 0x49, 0x11, + 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0xbd, 0x70, 0x57, 0xf6, 0xad, 0x69, 0x98, 0x60, 0xe5, 0x69, + 0xa7, 0x5d, 0x47, 0x6d, 0x54, 0xd7, 0xff, 0x42, 0xef, 0xde, 0x69, 0xb9, 0xbb, 0xa8, 0x31, 0xd4, + 0x19, 0x5a, 0xa8, 0x4f, 0xf7, 0x6c, 0xa1, 0xae, 0xc4, 0xd3, 0xc7, 0x75, 0x52, 0xa5, 0xae, 0x4e, + 0xea, 0xe9, 0xde, 0xa4, 0xbd, 0x1a, 0xaa, 0x52, 0x57, 0x43, 0xd5, 0x9f, 0x24, 0xb2, 0xaf, 0xda, + 0xe8, 0xee, 0xab, 0x16, 0x7a, 0xb3, 0xf4, 0x6e, 0xaf, 0x36, 0xba, 0xdb, 0xab, 0x18, 0x9e, 0xe8, + 0x2e, 0x6b, 0xa3, 0xbb, 0xcb, 0xea, 0xc3, 0xd3, 0xbb, 0xd9, 0xda, 0xe8, 0x6e, 0xb6, 0x62, 0x78, + 0xa2, 0x7b, 0xae, 0xcd, 0x88, 0x9e, 0xeb, 0x99, 0xde, 0x44, 0xfd, 0x5a, 0xaf, 0xad, 0xa8, 0xd6, + 0x6b, 0xb1, 0x8f, 0x52, 0x7d, 0x3b, 0xb0, 0xcd, 0x88, 0x0e, 0x2c, 0x4e, 0xb1, 0x1e, 0x8d, 0xd8, + 0x56, 0x54, 0x23, 0x16, 0xab, 0x58, 0xaf, 0x7e, 0xec, 0xcf, 0xc9, 0xfd, 0xd8, 0xe5, 0xde, 0x4c, + 0xd1, 0x6d, 0xd9, 0x46, 0x77, 0x5b, 0xb6, 0x10, 0x97, 0x73, 0x51, 0xdd, 0xd9, 0xa7, 0x7b, 0x76, + 0x67, 0x03, 0xa4, 0x70, 0x5c, 0x93, 0xf6, 0x72, 0xaf, 0x26, 0x6d, 0x29, 0x9e, 0xbb, 0x7f, 0xaf, + 0x76, 0xd0, 0xa3, 0x57, 0x7b, 0x36, 0x9e, 0xf8, 0x67, 0x2d, 0xdb, 0xcf, 0x5a, 0xb6, 0x9f, 0xb5, + 0x6c, 0x3f, 0x6b, 0xd9, 0x7e, 0xfa, 0x2d, 0x5b, 0x3e, 0xf9, 0xf9, 0xaf, 0xce, 0x2b, 0xb9, 0xff, + 0xac, 0xfa, 0x7f, 0x38, 0xeb, 0x25, 0xcb, 0x3b, 0xc1, 0xe5, 0x6d, 0x1b, 0x32, 0xe4, 0x4f, 0x5e, + 0x34, 0xcd, 0x56, 0xcb, 0xb2, 0x8f, 0x59, 0xcf, 0xb6, 0xd8, 0xbd, 0x95, 0xc8, 0x00, 0xe4, 0x8f, + 0x86, 0x6c, 0x53, 0x61, 0xb6, 0xdc, 0xd8, 0xc1, 0x88, 0x7e, 0x17, 0xd2, 0x4d, 0xf7, 0xd8, 0x67, + 0x4b, 0x74, 0x2d, 0x84, 0x12, 0x1b, 0xbd, 0xd2, 0x80, 0x0c, 0x9a, 0xfe, 0x00, 0x56, 0xed, 0xf0, + 0xd4, 0x0b, 0x54, 0x53, 0xe3, 0x54, 0xc3, 0x3e, 0x15, 0x55, 0x3b, 0x0c, 0x46, 0x70, 0xd8, 0xca, + 0xba, 0xc7, 0x55, 0x3a, 0x21, 0x78, 0x5e, 0x82, 0x49, 0x49, 0xdb, 0x88, 0x9c, 0x7f, 0x08, 0xdf, + 0x60, 0xc5, 0x64, 0xcd, 0xe3, 0x72, 0x22, 0x1c, 0x90, 0xb9, 0x27, 0x60, 0x5c, 0xe0, 0xd6, 0x33, + 0xa0, 0x1c, 0xb1, 0x2f, 0x53, 0x2a, 0x47, 0xb9, 0xaf, 0x28, 0x90, 0x66, 0x6f, 0x12, 0xec, 0x9a, + 0x56, 0x5b, 0x7f, 0x11, 0x92, 0x0d, 0xfe, 0x85, 0xa6, 0x87, 0xfd, 0xf2, 0x2c, 0x61, 0xd0, 0x37, + 0x60, 0xb8, 0xed, 0x7f, 0xe1, 0xe9, 0xa1, 0xbe, 0x11, 0x4b, 0xe0, 0xb9, 0xfb, 0x0a, 0x4c, 0xb1, + 0x17, 0x5d, 0x5d, 0xf6, 0xfa, 0xb3, 0xd9, 0x9a, 0xfd, 0xa6, 0x02, 0x63, 0xfe, 0x91, 0x7e, 0x08, + 0x13, 0xfe, 0x01, 0x7d, 0xc5, 0x9e, 0x46, 0x6a, 0x3e, 0x64, 0xe1, 0x2e, 0x8e, 0xa5, 0x88, 0x4f, + 0xf4, 0x59, 0x14, 0x5d, 0x93, 0xc5, 0xc1, 0xd9, 0x02, 0x4c, 0x47, 0x88, 0x9d, 0x65, 0x41, 0xce, + 0x5d, 0x84, 0xb1, 0x8a, 0xe3, 0xd1, 0xdf, 0xcd, 0xd1, 0xcf, 0x85, 0x9e, 0x2a, 0x14, 0x13, 0xda, + 0x10, 0x01, 0x2f, 0x5e, 0x84, 0x51, 0x96, 0xfd, 0xfa, 0x08, 0x24, 0xb6, 0x0b, 0xda, 0x10, 0xf9, + 0xbf, 0xa8, 0x29, 0xe4, 0xff, 0x92, 0x96, 0x28, 0x6e, 0x3d, 0xc4, 0x83, 0xa6, 0xa1, 0x77, 0x1e, + 0xcc, 0x0d, 0x49, 0x0f, 0x9a, 0x94, 0x37, 0xdf, 0x9f, 0x53, 0x0e, 0x47, 0xa8, 0x79, 0xfe, 0x7f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x0e, 0x08, 0xef, 0x2c, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1987,6 +2024,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2465,6 +2572,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3084,6 +3214,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3092,26 +3232,9 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -3160,7 +3283,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -3581,6 +3704,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -3600,14 +3735,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3615,43 +3750,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -3680,9 +3815,11 @@ func (m *Message) Size() (n int) { n += 5 } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -3695,8 +3832,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3711,8 +3849,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3848,7 +3987,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3867,8 +4010,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3994,7 +4138,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4013,8 +4161,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4039,8 +4188,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4048,7 +4198,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4096,6 +4250,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -4644,6 +4809,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4652,481 +4827,506 @@ func valueToStringTheproto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Message) Marshal() (data []byte, err error) { +func (m *Message) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Message) MarshalTo(data []byte) (int, error) { +func (m *Message) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Name) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Name))) - i += copy(data[i:], m.Name) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) } if m.Hilarity != 0 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Hilarity)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) } if m.HeightInCm != 0 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintTheproto3(data, i, uint64(m.HeightInCm)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) } if len(m.Data) > 0 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if len(m.Key) > 0 { + dAtA2 := make([]byte, len(m.Key)*10) + var j1 int for _, num := range m.Key { - data[i] = 0x28 - i++ - i = encodeVarintTheproto3(data, i, uint64(num)) + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ } + dAtA[i] = 0x2a + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(j1)) + i += copy(dAtA[i:], dAtA2[:j1]) } if m.Nested != nil { - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Nested.Size())) - n1, err := m.Nested.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) + n3, err := m.Nested.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n3 } if m.ResultCount != 0 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintTheproto3(data, i, uint64(m.ResultCount)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) } if m.TrueScotsman { - data[i] = 0x40 + dAtA[i] = 0x40 i++ if m.TrueScotsman { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Score != 0 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Score + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Score i += 4 } if len(m.Terrain) > 0 { for k := range m.Terrain { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Terrain[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 } - i += n2 } } if m.Proto2Field != nil { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintTheproto3(data, i, uint64(m.Proto2Field.Size())) - n3, err := m.Proto2Field.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) + n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n5 } if len(m.Proto2Value) > 0 { for k := range m.Proto2Value { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.Proto2Value[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n4, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n4 } } return i, nil } -func (m *Nested) Marshal() (data []byte, err error) { +func (m *Nested) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nested) MarshalTo(data []byte) (int, error) { +func (m *Nested) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Bunny) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Bunny))) - i += copy(data[i:], m.Bunny) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) + i += copy(dAtA[i:], m.Bunny) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n5, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n7, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 } - i += n5 } } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -5138,18 +5338,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -5159,18 +5359,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -5180,17 +5380,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -5200,17 +5400,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -5220,17 +5420,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -5240,17 +5440,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -5260,17 +5460,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -5280,17 +5480,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -5300,17 +5500,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -5320,17 +5520,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -5340,17 +5540,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -5360,17 +5560,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -5380,25 +5580,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -5410,19 +5610,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -5432,19 +5632,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -5454,20 +5660,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -5477,184 +5683,196 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n6, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n8, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 } - i += n6 } } return i, nil } -func (m *MessageWithMap) Marshal() (data []byte, err error) { +func (m *MessageWithMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MessageWithMap) MarshalTo(data []byte) (int, error) { +func (m *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NameMapping) > 0 { for k := range m.NameMapping { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NameMapping[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.MsgMapping) > 0 { for k := range m.MsgMapping { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.MsgMapping[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sozTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n7, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n9, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 } - i += n7 } } if len(m.ByteMapping) > 0 { for k := range m.ByteMapping { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.ByteMapping[k] - mapSize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + 1 + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != 0 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.F + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.F i += 8 } return i, nil } -func (m *Uint128Pair) Marshal() (data []byte, err error) { +func (m *Uint128Pair) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Uint128Pair) MarshalTo(data []byte) (int, error) { +func (m *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(m.Left.Size())) - n8, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) + n10, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n10 if m.Right != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Right.Size())) - n9, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) + n11, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n11 } return i, nil } -func (m *ContainsNestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -5662,69 +5880,94 @@ func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *ContainsNestedMap_NestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap_NestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap_NestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NestedMapField) > 0 { for k := range m.NestedMapField { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NestedMapField[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + } + } + return i, nil +} + +func (m *NotPacked) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + for _, num := range m.Key { + dAtA[i] = 0x28 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeVarintTheproto3(dAtA, i, uint64(num)) } } return i, nil } -func encodeFixed64Theproto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Theproto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Theproto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Theproto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintTheproto3(data []byte, offset int, v uint64) int { +func encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } -func (m *Message) Unmarshal(data []byte) error { - l := len(data) +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5736,7 +5979,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5764,7 +6007,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5779,7 +6022,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(data[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -5793,7 +6036,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Hilarity |= (Message_Humour(b) & 0x7F) << shift if b < 0x80 { @@ -5812,7 +6055,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.HeightInCm |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -5831,7 +6074,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5845,31 +6088,73 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.Key = append(m.Key, v) case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) @@ -5882,7 +6167,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5899,7 +6184,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Nested == nil { m.Nested = &Nested{} } - if err := m.Nested.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5915,7 +6200,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.ResultCount |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -5934,7 +6219,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5949,7 +6234,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Score = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.Score = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 10: if wireType != 2 { @@ -5963,7 +6248,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5985,7 +6270,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6000,62 +6285,67 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Terrain == nil { + m.Terrain = make(map[int64]*Nested) } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Terrain[mapkey] = mapvalue + } else { + var mapvalue *Nested + m.Terrain[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6069,7 +6359,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6086,7 +6376,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Proto2Field == nil { m.Proto2Field = &test.NinOptNative{} } - if err := m.Proto2Field.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6102,7 +6392,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6124,7 +6414,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6139,66 +6429,71 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.Proto2Value == nil { + m.Proto2Value = make(map[int64]*test.NinOptEnum) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Proto2Value[mapkey] = mapvalue + } else { + var mapvalue *test.NinOptEnum + m.Proto2Value[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - m.Proto2Value[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -6217,8 +6512,8 @@ func (m *Message) Unmarshal(data []byte) error { } return nil } -func (m *Nested) Unmarshal(data []byte) error { - l := len(data) +func (m *Nested) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6230,7 +6525,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6258,7 +6553,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6273,11 +6568,11 @@ func (m *Nested) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bunny = string(data[iNdEx:postIndex]) + m.Bunny = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -6296,8 +6591,8 @@ func (m *Nested) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6309,7 +6604,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6337,7 +6632,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6359,7 +6654,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6374,7 +6669,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6389,41 +6684,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -6437,7 +6737,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6459,7 +6759,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6474,7 +6774,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6489,37 +6789,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -6533,7 +6838,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6555,7 +6860,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6570,47 +6875,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -6624,7 +6934,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6646,7 +6956,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6661,47 +6971,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -6715,7 +7030,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6737,7 +7052,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6752,50 +7067,55 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - m.Uint32Map[mapkey] = mapvalue - iNdEx = postIndex - case 6: - if wireType != 2 { + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue + } + iNdEx = postIndex + case 6: + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) } var msglen int @@ -6806,7 +7126,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6828,7 +7148,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6843,47 +7163,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6897,7 +7222,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6919,7 +7244,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6934,7 +7259,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -6943,42 +7268,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6992,7 +7322,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7014,7 +7344,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7029,7 +7359,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7038,42 +7368,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7087,7 +7422,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7109,7 +7444,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7121,38 +7456,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7166,7 +7506,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7188,7 +7528,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7200,38 +7540,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7245,7 +7590,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7267,7 +7612,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7279,46 +7624,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -7332,7 +7682,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7354,7 +7704,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7366,46 +7716,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -7419,7 +7774,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7441,7 +7796,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7456,7 +7811,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7464,41 +7819,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -7512,7 +7872,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7534,7 +7894,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7549,7 +7909,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7564,52 +7924,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -7623,7 +7988,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7645,7 +8010,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7660,7 +8025,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7671,57 +8036,62 @@ func (m *AllMaps) Unmarshal(data []byte) error { if intStringLenmapkey < 0 { return ErrInvalidLengthTheproto3Unsafe } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(data[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - m.StringToBytesMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue + } iNdEx = postIndex case 16: if wireType != 2 { @@ -7735,7 +8105,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7757,7 +8127,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7772,7 +8142,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7787,42 +8157,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7836,7 +8211,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7858,7 +8233,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7873,7 +8248,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7888,61 +8263,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -7961,8 +8341,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -7974,7 +8354,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8002,7 +8382,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8024,7 +8404,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8039,7 +8419,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8054,41 +8434,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -8102,7 +8487,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8124,7 +8509,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8139,7 +8524,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8154,37 +8539,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -8198,7 +8588,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8220,7 +8610,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8235,47 +8625,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -8289,7 +8684,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8311,7 +8706,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8326,47 +8721,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -8380,7 +8780,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8402,7 +8802,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8417,47 +8817,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -8471,7 +8876,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8493,7 +8898,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8508,47 +8913,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -8562,7 +8972,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8584,7 +8994,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8599,7 +9009,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -8608,42 +9018,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -8657,7 +9072,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8679,7 +9094,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8694,7 +9109,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8703,42 +9118,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -8752,7 +9172,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8774,7 +9194,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8786,38 +9206,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -8831,7 +9256,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8853,7 +9278,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8865,38 +9290,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -8910,7 +9340,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8932,7 +9362,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8944,46 +9374,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -8997,7 +9432,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9019,7 +9454,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9031,46 +9466,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -9084,7 +9524,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9106,7 +9546,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9121,7 +9561,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9129,41 +9569,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -9177,7 +9622,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9199,7 +9644,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9214,7 +9659,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9229,52 +9674,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -9288,7 +9738,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9310,7 +9760,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9325,7 +9775,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9340,53 +9790,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -9400,7 +9855,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9422,7 +9877,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9437,7 +9892,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9452,42 +9907,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -9501,7 +9961,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9523,7 +9983,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9538,7 +9998,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9553,61 +10013,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -9626,8 +10091,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func (m *MessageWithMap) Unmarshal(data []byte) error { - l := len(data) +func (m *MessageWithMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9639,7 +10104,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9667,7 +10132,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9689,7 +10154,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9704,57 +10169,62 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.NameMapping == nil { + m.NameMapping = make(map[int32]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.NameMapping[mapkey] = mapvalue + } else { + var mapvalue string + m.NameMapping[mapkey] = mapvalue } - m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -9768,7 +10238,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9790,7 +10260,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9805,7 +10275,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9814,55 +10284,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.MsgMapping == nil { + m.MsgMapping = make(map[int64]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MsgMapping[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.MsgMapping[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -9876,7 +10351,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9898,7 +10373,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9913,7 +10388,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9921,55 +10396,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.ByteMapping == nil { + m.ByteMapping = make(map[bool][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.ByteMapping[mapkey] = mapvalue + } else { + var mapvalue []byte + m.ByteMapping[mapkey] = mapvalue } - m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -9988,8 +10468,8 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } return nil } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10001,7 +10481,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10024,11 +10504,11 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.F = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.F = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -10047,8 +10527,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *Uint128Pair) Unmarshal(data []byte) error { - l := len(data) +func (m *Uint128Pair) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10060,7 +10540,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10088,7 +10568,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10102,7 +10582,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10118,7 +10598,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10134,13 +10614,13 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Right = &v - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -10159,8 +10639,8 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10172,7 +10652,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10190,7 +10670,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -10209,8 +10689,8 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10222,7 +10702,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10250,7 +10730,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10272,7 +10752,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10287,7 +10767,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10302,45 +10782,162 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if m.NestedMapField == nil { + m.NestedMapField = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.NestedMapField[mapkey] = mapvalue + } else { + var mapvalue float64 + m.NestedMapField[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotPacked) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotPacked: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 5: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.NestedMapField[mapkey] = mapvalue - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -10359,8 +10956,8 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { } return nil } -func skipTheproto3Unsafe(data []byte) (n int, err error) { - l := len(data) +func skipTheproto3Unsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -10371,7 +10968,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10389,7 +10986,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -10406,7 +11003,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -10429,7 +11026,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -10440,7 +11037,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipTheproto3Unsafe(data[start:]) + next, err := skipTheproto3Unsafe(dAtA[start:]) if err != nil { return 0, err } @@ -10464,105 +11061,109 @@ var ( ErrIntOverflowTheproto3Unsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeboth/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1581 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x1b, 0xc5, - 0x1b, 0xce, 0xda, 0x8e, 0x3f, 0x5e, 0x7f, 0x6d, 0xa6, 0xfd, 0xfd, 0x64, 0x22, 0x91, 0x0f, 0x57, - 0x6a, 0xd3, 0x8a, 0x3a, 0x25, 0x2d, 0x50, 0x42, 0xa1, 0xc4, 0x6e, 0xac, 0x86, 0x26, 0x6e, 0xb0, - 0x93, 0x06, 0x54, 0x89, 0x68, 0x9d, 0xac, 0xe3, 0x15, 0xf6, 0x6e, 0xb4, 0x1f, 0x15, 0xb9, 0xf5, - 0xcf, 0xe0, 0x86, 0xb8, 0x71, 0x44, 0x3d, 0x20, 0x8e, 0x70, 0xcb, 0x11, 0x89, 0x0b, 0xe2, 0x50, - 0xb5, 0xe5, 0xd2, 0x63, 0x8f, 0x3d, 0x32, 0x1f, 0xbb, 0xeb, 0xd9, 0xf5, 0xac, 0x97, 0x72, 0xe1, - 0x92, 0xc3, 0xc8, 0x3b, 0xef, 0x3e, 0xcf, 0x33, 0xef, 0xcc, 0xce, 0xbc, 0xfb, 0x68, 0x0d, 0x8b, - 0x07, 0xc6, 0xb0, 0x6b, 0x58, 0xcb, 0x8e, 0x6e, 0x29, 0x3d, 0xb5, 0x6b, 0xd8, 0xfd, 0x65, 0xbb, - 0xaf, 0x1e, 0x9b, 0x86, 0x6d, 0x5c, 0xaf, 0xd1, 0x1f, 0x94, 0xf3, 0x03, 0xb3, 0x57, 0x8f, 0x34, - 0xbb, 0xef, 0x74, 0x6b, 0x98, 0xb4, 0x7c, 0x64, 0x1c, 0x19, 0xcb, 0x34, 0xde, 0x75, 0x7a, 0xb4, - 0x47, 0x3b, 0xf4, 0x8a, 0x31, 0x67, 0x3f, 0x88, 0x84, 0xdb, 0xaa, 0x65, 0x2f, 0xbb, 0x43, 0x7b, - 0x83, 0x92, 0x18, 0x23, 0x56, 0x7f, 0x9d, 0x86, 0xcc, 0x96, 0x6a, 0x59, 0xca, 0x91, 0x8a, 0x10, - 0xa4, 0x74, 0x65, 0xa8, 0x56, 0xa4, 0x05, 0x69, 0x29, 0xd7, 0xa6, 0xd7, 0xe8, 0x3d, 0xc8, 0xf6, - 0xb5, 0x81, 0x62, 0x6a, 0xf6, 0x49, 0x25, 0x81, 0xe3, 0xa5, 0x95, 0xb7, 0x6a, 0xa3, 0xb4, 0x5d, - 0x66, 0xed, 0xae, 0x33, 0x34, 0x1c, 0xb3, 0xed, 0x43, 0xd1, 0x02, 0x14, 0xfa, 0xaa, 0x76, 0xd4, - 0xb7, 0xf7, 0x35, 0x7d, 0xff, 0x60, 0x58, 0x49, 0x62, 0x6a, 0xb1, 0x0d, 0x2c, 0xb6, 0xa1, 0x37, - 0x86, 0x64, 0xb0, 0x43, 0xc5, 0x56, 0x2a, 0x29, 0x7c, 0xa7, 0xd0, 0xa6, 0xd7, 0x48, 0x86, 0xe4, - 0xd7, 0xea, 0x49, 0x65, 0x7a, 0x21, 0xb9, 0x94, 0x6a, 0x93, 0x4b, 0x74, 0x19, 0xd2, 0x3a, 0x4e, - 0x56, 0x3d, 0xac, 0xa4, 0x31, 0x2e, 0xbf, 0x32, 0xc3, 0x0d, 0xde, 0xa2, 0x37, 0xda, 0x2e, 0x00, - 0x2d, 0x42, 0xc1, 0x54, 0x2d, 0x67, 0x60, 0xef, 0x1f, 0x18, 0x8e, 0x6e, 0x57, 0x32, 0x98, 0x90, - 0x6c, 0xe7, 0x59, 0xac, 0x41, 0x42, 0xe8, 0x02, 0x14, 0x6d, 0xd3, 0x51, 0xf7, 0xad, 0x03, 0xc3, - 0xb6, 0x86, 0x8a, 0x5e, 0xc9, 0x62, 0x4c, 0xb6, 0x5d, 0x20, 0xc1, 0x8e, 0x1b, 0x43, 0xe7, 0x61, - 0x1a, 0xdf, 0x37, 0xd5, 0x4a, 0x0e, 0xdf, 0x4c, 0xb4, 0x59, 0x07, 0x7d, 0x08, 0x19, 0x5b, 0x35, - 0x4d, 0x45, 0xd3, 0x2b, 0x80, 0xd3, 0xcb, 0xaf, 0xcc, 0x0b, 0x96, 0x61, 0x87, 0x21, 0xd6, 0x75, - 0xdb, 0x3c, 0x69, 0x7b, 0x78, 0xbc, 0x84, 0x05, 0x8a, 0x5b, 0xd9, 0xef, 0x69, 0xea, 0xe0, 0xb0, - 0x92, 0xa7, 0x33, 0x41, 0x35, 0xfa, 0x14, 0x5a, 0x9a, 0x7e, 0xff, 0xd8, 0x6e, 0x29, 0xb6, 0xf6, - 0x48, 0x6d, 0xe7, 0x19, 0xae, 0x49, 0x60, 0xa8, 0xe9, 0xd3, 0x1e, 0x29, 0x03, 0x47, 0xad, 0x14, - 0xe9, 0xb0, 0x17, 0x04, 0xc3, 0x6e, 0x53, 0xd8, 0x03, 0x82, 0x62, 0x43, 0xbb, 0x3a, 0x34, 0x32, - 0xbb, 0x05, 0x05, 0x3e, 0x2f, 0x6f, 0x91, 0x25, 0xba, 0x3c, 0x74, 0x91, 0x2f, 0xc1, 0x34, 0x1b, - 0x22, 0x11, 0xb5, 0xc6, 0xec, 0xfe, 0x6a, 0xe2, 0xa6, 0x34, 0xbb, 0x0d, 0x72, 0x78, 0x3c, 0x81, - 0xe4, 0xc5, 0xa0, 0xa4, 0xcc, 0x4f, 0x76, 0x5d, 0x77, 0x86, 0x9c, 0x62, 0xf5, 0x36, 0xa4, 0xd9, - 0xfe, 0x41, 0x79, 0xc8, 0xec, 0xb6, 0xee, 0xb5, 0xee, 0xef, 0xb5, 0xe4, 0x29, 0x94, 0x85, 0xd4, - 0xf6, 0x6e, 0xab, 0x23, 0x4b, 0xa8, 0x08, 0xb9, 0xce, 0xe6, 0xda, 0x76, 0x67, 0x67, 0xa3, 0x71, - 0x4f, 0x4e, 0xa0, 0x32, 0xe4, 0xeb, 0x1b, 0x9b, 0x9b, 0xfb, 0xf5, 0xb5, 0x8d, 0xcd, 0xf5, 0x2f, - 0xe5, 0x64, 0x75, 0x0e, 0xd2, 0x2c, 0x4f, 0xf2, 0xec, 0xba, 0x8e, 0xae, 0x9f, 0xb8, 0x5b, 0x98, - 0x75, 0xaa, 0x4f, 0x10, 0x64, 0xd6, 0x06, 0x83, 0x2d, 0xe5, 0xd8, 0x42, 0x7b, 0x30, 0xd3, 0xb1, - 0x4d, 0x4d, 0x3f, 0xda, 0x31, 0xee, 0x18, 0x4e, 0x77, 0xa0, 0xe2, 0x28, 0x46, 0x93, 0xa5, 0xbd, - 0xcc, 0xcd, 0xdb, 0x85, 0xd7, 0xc6, 0xb0, 0x6c, 0x81, 0x67, 0xac, 0x70, 0x1c, 0xed, 0x80, 0xec, - 0x81, 0x9b, 0x03, 0x43, 0xb1, 0x89, 0x6e, 0x82, 0xea, 0x2e, 0x4d, 0xd0, 0xf5, 0xa0, 0x4c, 0x56, - 0xb6, 0x42, 0x61, 0x74, 0x0b, 0xb2, 0x1b, 0xba, 0x7d, 0x7d, 0x85, 0xa8, 0x25, 0xa9, 0xda, 0x82, - 0x40, 0xcd, 0x83, 0x30, 0x95, 0xac, 0xe6, 0x76, 0x5d, 0xf6, 0xfb, 0x37, 0x08, 0x3b, 0x35, 0x89, - 0x4d, 0x21, 0x23, 0x36, 0xed, 0xa2, 0xdb, 0x90, 0xdb, 0xf5, 0xa4, 0xe8, 0x99, 0xcc, 0xaf, 0x2c, - 0x0a, 0xe8, 0x3e, 0x86, 0xf1, 0x73, 0x8e, 0x3f, 0xbc, 0x2b, 0xc0, 0xc6, 0x4f, 0x4f, 0x14, 0xe0, - 0x12, 0xa0, 0x02, 0x7e, 0x06, 0x1d, 0x3f, 0x83, 0x4c, 0xa4, 0x40, 0x27, 0x94, 0x81, 0xc5, 0x67, - 0xd0, 0xf1, 0x33, 0xc8, 0x4e, 0x14, 0xe0, 0x33, 0xb0, 0xfc, 0x0c, 0xea, 0x00, 0x4d, 0xed, 0x1b, - 0xf5, 0x90, 0xa5, 0x90, 0xa3, 0x0a, 0x55, 0x81, 0xc2, 0x08, 0xc4, 0x24, 0xa0, 0xe7, 0x07, 0xd0, - 0x3a, 0xe4, 0x3b, 0xa3, 0xae, 0x5b, 0x3e, 0x2e, 0x88, 0xd2, 0xe8, 0x85, 0x54, 0xf2, 0x16, 0x27, - 0xe3, 0xa5, 0xc2, 0x26, 0x93, 0x9f, 0x9c, 0x0a, 0x37, 0x1b, 0x96, 0x0a, 0x9b, 0x8e, 0x9f, 0x0a, - 0x13, 0x29, 0xc4, 0xa4, 0xc2, 0xa9, 0xb8, 0xa9, 0x30, 0x19, 0x5c, 0x0c, 0xeb, 0x86, 0x41, 0x90, - 0x6e, 0x55, 0x9a, 0x17, 0x48, 0xb8, 0x08, 0xb7, 0x18, 0x76, 0x59, 0x8f, 0x3e, 0x11, 0xba, 0xc9, - 0x09, 0xb9, 0x14, 0xfd, 0x44, 0x3c, 0x8c, 0xf7, 0x44, 0xbc, 0x3e, 0x7f, 0xce, 0xea, 0x27, 0xb8, - 0xaa, 0x10, 0x9d, 0x72, 0xec, 0x39, 0xf3, 0xa0, 0xa1, 0x73, 0xe6, 0x85, 0xd1, 0xe7, 0x50, 0xf6, - 0xa0, 0xa4, 0x3c, 0x11, 0x51, 0x99, 0x8a, 0x5e, 0x9a, 0x20, 0xea, 0x22, 0x99, 0x66, 0xd9, 0x0a, - 0x46, 0x51, 0x0b, 0x4a, 0x1e, 0x70, 0xcb, 0xa2, 0xd3, 0x9d, 0xa1, 0x8a, 0x17, 0x27, 0x28, 0x32, - 0x20, 0x13, 0x2c, 0x59, 0x81, 0xe0, 0xec, 0x1d, 0xf8, 0xbf, 0xb8, 0x1a, 0xf1, 0xe5, 0x37, 0xc7, - 0xca, 0xef, 0x79, 0xbe, 0xfc, 0x4a, 0x7c, 0xf9, 0x6e, 0xc0, 0xff, 0x84, 0xb5, 0x27, 0x4e, 0x24, - 0xc1, 0x8b, 0x7c, 0x04, 0xc5, 0x40, 0xc9, 0xe1, 0xc9, 0xd3, 0x02, 0xf2, 0xf4, 0x38, 0x79, 0xb4, - 0xb5, 0x04, 0x6f, 0x8f, 0x00, 0x39, 0xc9, 0x93, 0x6f, 0x41, 0x29, 0x58, 0x6f, 0x78, 0x76, 0x51, - 0xc0, 0x2e, 0x0a, 0xd8, 0xe2, 0xb1, 0x53, 0x02, 0x76, 0x2a, 0xc4, 0xee, 0x44, 0x8e, 0x3d, 0x23, - 0x60, 0xcf, 0x08, 0xd8, 0xe2, 0xb1, 0x91, 0x80, 0x8d, 0x78, 0xf6, 0xc7, 0x50, 0x0e, 0x95, 0x18, - 0x9e, 0x9e, 0x11, 0xd0, 0x33, 0x3c, 0xfd, 0x13, 0x7c, 0x68, 0x7a, 0xd1, 0xfc, 0xb2, 0x80, 0x5f, - 0x16, 0x0d, 0x2f, 0xce, 0x3e, 0x2d, 0xa0, 0xa7, 0x85, 0xc3, 0x8b, 0xf9, 0xb2, 0x80, 0x2f, 0xf3, - 0xfc, 0x55, 0x28, 0xf0, 0xd5, 0x84, 0xe7, 0x66, 0x05, 0xdc, 0x6c, 0x78, 0xdd, 0x03, 0xc5, 0x24, - 0x6e, 0xa7, 0xe7, 0x22, 0x8e, 0x4b, 0xa0, 0x84, 0xc4, 0x89, 0x14, 0x78, 0x91, 0x07, 0x70, 0x5e, - 0x54, 0x32, 0x04, 0x1a, 0x4b, 0xbc, 0x46, 0x89, 0x78, 0xc4, 0x91, 0xd9, 0x23, 0xac, 0x80, 0x71, - 0x9a, 0x7d, 0x08, 0xe7, 0x04, 0x85, 0x43, 0x20, 0x5b, 0x0b, 0xba, 0xb1, 0x0a, 0x27, 0x4b, 0x8b, - 0x00, 0x96, 0xd8, 0x36, 0xf0, 0xe6, 0xe4, 0x5d, 0xd9, 0x4f, 0xe7, 0xa0, 0xe4, 0x96, 0xa7, 0xfb, - 0xe6, 0xa1, 0x6a, 0x62, 0x77, 0xf5, 0x55, 0xb4, 0x77, 0xba, 0x36, 0x5e, 0xd4, 0x5c, 0xd6, 0x1b, - 0x58, 0xa8, 0x87, 0x91, 0x16, 0x6a, 0x39, 0x5e, 0x3e, 0xce, 0x49, 0x35, 0xc6, 0x9c, 0xd4, 0xa5, - 0x68, 0xd1, 0x28, 0x43, 0xd5, 0x18, 0x33, 0x54, 0x93, 0x45, 0x84, 0xbe, 0xaa, 0x39, 0xee, 0xab, - 0x96, 0xa2, 0x55, 0xa2, 0xed, 0x55, 0x73, 0xdc, 0x5e, 0xc5, 0xe8, 0x88, 0x5d, 0x56, 0x73, 0xdc, - 0x65, 0x4d, 0xd0, 0x89, 0x36, 0x5b, 0xcd, 0x71, 0xb3, 0x15, 0xa3, 0x23, 0xf6, 0x5c, 0x1b, 0x02, - 0xcf, 0x75, 0x39, 0x5a, 0x68, 0x92, 0xf5, 0xda, 0x14, 0x59, 0xaf, 0x2b, 0x13, 0x92, 0x9a, 0xe8, - 0xc0, 0x36, 0x04, 0x0e, 0x2c, 0x2e, 0xb1, 0x08, 0x23, 0xb6, 0x29, 0x32, 0x62, 0xb1, 0x89, 0x45, - 0xf9, 0xb1, 0x4f, 0xc3, 0x7e, 0xec, 0x62, 0xb4, 0x92, 0xd8, 0x96, 0x35, 0xc7, 0x6d, 0xd9, 0x52, - 0xdc, 0x99, 0x13, 0xb9, 0xb3, 0x87, 0x91, 0xee, 0xec, 0x1f, 0x1c, 0xe1, 0x38, 0x93, 0xf6, 0x45, - 0x94, 0x49, 0xab, 0xc5, 0x6b, 0x4f, 0xf6, 0x6a, 0xbb, 0x11, 0x5e, 0xed, 0x6a, 0xbc, 0xf0, 0x99, - 0x65, 0x3b, 0xb3, 0x6c, 0x67, 0x96, 0xed, 0xcc, 0xb2, 0xfd, 0xf7, 0x96, 0x6d, 0x35, 0xf5, 0xed, - 0xf7, 0xf3, 0x52, 0xf5, 0xf7, 0x24, 0x94, 0xdc, 0x2f, 0x83, 0x7b, 0x9a, 0xdd, 0x27, 0xe5, 0x6d, - 0x0b, 0x0a, 0xe4, 0x63, 0xee, 0xfe, 0x50, 0x39, 0x3e, 0xc6, 0x44, 0xd7, 0xb3, 0x5d, 0x19, 0xff, - 0x94, 0xe8, 0x12, 0x6a, 0x2d, 0x8c, 0xde, 0x62, 0x60, 0xf7, 0x75, 0xa3, 0x8f, 0x22, 0xe8, 0x33, - 0xc8, 0x0f, 0xad, 0x23, 0x5f, 0x2d, 0x31, 0xf6, 0x22, 0x0c, 0xa9, 0xb1, 0x99, 0x8e, 0xc4, 0x60, - 0xe8, 0x07, 0x48, 0x6a, 0x5d, 0xfc, 0x94, 0x7c, 0xb1, 0x64, 0x5c, 0x6a, 0xe4, 0x99, 0x06, 0x53, - 0xeb, 0x8e, 0x22, 0x64, 0xdb, 0x86, 0x73, 0x8f, 0xab, 0x74, 0x81, 0xcd, 0xb3, 0x07, 0xe5, 0x50, - 0xb6, 0x82, 0x33, 0xff, 0x2f, 0x9e, 0x0d, 0x49, 0x2c, 0x9c, 0x79, 0xdc, 0x99, 0xe0, 0x37, 0x64, - 0xf5, 0x6d, 0x28, 0x06, 0xb4, 0x51, 0x01, 0xa4, 0x1e, 0xa5, 0x4a, 0x6d, 0xa9, 0x57, 0xfd, 0x4e, - 0x82, 0x3c, 0xa9, 0x93, 0xef, 0xae, 0xdc, 0xdc, 0x56, 0x34, 0x13, 0xdd, 0x85, 0xd4, 0x40, 0xed, - 0xd9, 0x14, 0x50, 0xa8, 0xdf, 0x38, 0x7d, 0x3a, 0x3f, 0xf5, 0xe7, 0xd3, 0xf9, 0x77, 0x62, 0xfe, - 0x25, 0x70, 0x2c, 0xdb, 0x18, 0xd6, 0x5c, 0x9d, 0x36, 0x55, 0xc0, 0xce, 0x60, 0xda, 0x24, 0x1f, - 0xed, 0x59, 0x4a, 0xf5, 0x6b, 0x6f, 0x2c, 0xc3, 0xe8, 0xd5, 0x53, 0x09, 0x66, 0x1a, 0x86, 0x6e, - 0x2b, 0x9a, 0x6e, 0xb1, 0xaf, 0xb5, 0xe4, 0x0d, 0xf9, 0x44, 0x82, 0x9c, 0xdf, 0x43, 0x5d, 0x28, - 0xf9, 0x1d, 0xfa, 0x11, 0xdc, 0xdd, 0xa9, 0xab, 0xdc, 0x0a, 0x8f, 0x69, 0xd4, 0x04, 0x57, 0x94, - 0xec, 0xbe, 0x93, 0xf5, 0x40, 0x70, 0x76, 0x0d, 0xce, 0x09, 0x60, 0x6f, 0xf2, 0x42, 0xbe, 0xb2, - 0x08, 0x19, 0xf7, 0x68, 0xa3, 0x34, 0x24, 0xb6, 0xd6, 0xe4, 0x29, 0xfa, 0x5b, 0x97, 0x25, 0xfa, - 0xdb, 0x90, 0x13, 0xf5, 0xcd, 0xd3, 0xe7, 0x73, 0x53, 0xbf, 0xe1, 0xf6, 0x07, 0x6e, 0xcf, 0x9e, - 0xcf, 0x49, 0x2f, 0x71, 0x7b, 0x85, 0xdb, 0x6b, 0xdc, 0x1e, 0xbf, 0x98, 0x93, 0x7e, 0xc0, 0xed, - 0x47, 0xdc, 0x7e, 0xc6, 0xed, 0x17, 0xdc, 0x4e, 0x5f, 0x60, 0x3c, 0x6e, 0xcf, 0xf0, 0xf5, 0x4b, - 0xfc, 0xfb, 0x0a, 0xff, 0xbe, 0xc6, 0xed, 0xf1, 0x5f, 0x73, 0x52, 0x37, 0xcd, 0xe6, 0xfe, 0x77, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x86, 0x95, 0x85, 0xab, 0x43, 0x1a, 0x00, 0x00, + // 1605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, + 0x14, 0xc7, 0x75, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x2f, 0x69, 0xa1, 0x1a, 0x28, 0x2d, 0x2b, 0x40, + 0xa2, 0x04, 0x8d, 0x9c, 0x3a, 0x49, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, 0xe2, + 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x24, 0x22, 0x12, 0x69, 0x88, 0xa7, 0xa0, 0xde, + 0xf2, 0x67, 0x74, 0x2b, 0xba, 0x75, 0x2c, 0x32, 0x14, 0x1d, 0xdb, 0xcd, 0x63, 0x80, 0x2e, 0x45, + 0x87, 0x20, 0x56, 0x97, 0x8c, 0x19, 0x33, 0x16, 0xbc, 0x23, 0xa5, 0x13, 0x79, 0x14, 0x9b, 0x2e, + 0x5d, 0x3c, 0x89, 0xf7, 0xfc, 0xbe, 0x9f, 0x7b, 0x3c, 0xde, 0x3d, 0x7e, 0x41, 0xc3, 0xd2, 0x81, + 0xd1, 0x6f, 0x19, 0xe6, 0xf2, 0x50, 0x37, 0x95, 0xb6, 0xda, 0x32, 0x48, 0x77, 0x99, 0x74, 0xd5, + 0xa3, 0x81, 0x41, 0x8c, 0xeb, 0x65, 0xfa, 0x83, 0x53, 0xe3, 0xc0, 0xc2, 0xd5, 0x8e, 0x46, 0xba, + 0xc3, 0x56, 0xf9, 0xc0, 0xe8, 0x2f, 0x77, 0x8c, 0x8e, 0xb1, 0x4c, 0xe3, 0xad, 0x61, 0x9b, 0x8e, + 0xe8, 0x80, 0x5e, 0x31, 0xe5, 0xc2, 0xc7, 0xbe, 0xe9, 0x44, 0x35, 0xc9, 0xb2, 0x3d, 0xb5, 0x33, + 0xa9, 0x15, 0x63, 0xc2, 0xe2, 0xef, 0x31, 0x48, 0x6c, 0xa9, 0xa6, 0xa9, 0x74, 0x54, 0x8c, 0x21, + 0xaa, 0x2b, 0x7d, 0x35, 0x8f, 0x0a, 0xa8, 0x94, 0x6a, 0xd0, 0x6b, 0x7c, 0x13, 0x92, 0x5d, 0xad, + 0xa7, 0x0c, 0x34, 0x72, 0x9c, 0x0f, 0x17, 0x50, 0x29, 0xb7, 0xf2, 0x5e, 0x79, 0x52, 0xb6, 0xad, + 0x2c, 0xdf, 0x1b, 0xf6, 0x8d, 0xe1, 0xa0, 0x31, 0x4e, 0xc5, 0x05, 0xc8, 0x74, 0x55, 0xad, 0xd3, + 0x25, 0xfb, 0x9a, 0xbe, 0x7f, 0xd0, 0xcf, 0x47, 0x0a, 0xa8, 0x94, 0x6d, 0x00, 0x8b, 0x6d, 0xe8, + 0xd5, 0xbe, 0x35, 0xd9, 0xa1, 0x42, 0x94, 0x7c, 0xb4, 0x80, 0x4a, 0x99, 0x06, 0xbd, 0xc6, 0x12, + 0x44, 0x1e, 0xab, 0xc7, 0xf9, 0x58, 0x21, 0x52, 0x8a, 0x36, 0xac, 0x4b, 0x7c, 0x19, 0xe2, 0xba, + 0x6a, 0x12, 0xf5, 0x30, 0x1f, 0x2f, 0xa0, 0x52, 0x7a, 0x65, 0x9e, 0x9b, 0xbc, 0x4e, 0xff, 0xd0, + 0xb0, 0x13, 0xf0, 0x12, 0x64, 0x06, 0xaa, 0x39, 0xec, 0x91, 0xfd, 0x03, 0x63, 0xa8, 0x93, 0x7c, + 0xa2, 0x80, 0x4a, 0x91, 0x46, 0x9a, 0xc5, 0xaa, 0x56, 0x08, 0x5f, 0x80, 0x2c, 0x19, 0x0c, 0xd5, + 0x7d, 0xf3, 0xc0, 0x20, 0x66, 0x5f, 0xd1, 0xf3, 0xc9, 0x02, 0x2a, 0x25, 0x1b, 0x19, 0x2b, 0xd8, + 0xb4, 0x63, 0xf8, 0x3c, 0xc4, 0xcc, 0x03, 0x63, 0xa0, 0xe6, 0x53, 0x05, 0x54, 0x0a, 0x37, 0xd8, + 0x00, 0x7f, 0x02, 0x09, 0xa2, 0x0e, 0x06, 0x8a, 0xa6, 0xe7, 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, + 0x05, 0xcb, 0xb0, 0xc3, 0x32, 0xd6, 0x75, 0x32, 0x38, 0x6e, 0x38, 0xf9, 0xf8, 0x26, 0x64, 0x68, + 0xde, 0xca, 0x7e, 0x5b, 0x53, 0x7b, 0x87, 0xf9, 0x34, 0xbd, 0x13, 0x5c, 0xa6, 0x4f, 0xa1, 0xae, + 0xe9, 0x0f, 0x8e, 0x48, 0x5d, 0x21, 0xda, 0x13, 0xb5, 0x91, 0x66, 0x79, 0x35, 0x2b, 0x0d, 0xd7, + 0xc6, 0xb2, 0x27, 0x4a, 0x6f, 0xa8, 0xe6, 0xb3, 0x74, 0xda, 0x0b, 0x82, 0x69, 0xb7, 0x69, 0xda, + 0x43, 0x2b, 0x8b, 0x4d, 0x6d, 0x73, 0x68, 0x64, 0x61, 0x0b, 0x32, 0x7c, 0x5d, 0xce, 0x22, 0x23, + 0xba, 0x3c, 0x74, 0x91, 0x2f, 0x41, 0x8c, 0x4d, 0x11, 0xf6, 0x5b, 0x63, 0xf6, 0xf7, 0xd5, 0xf0, + 0x2d, 0xb4, 0xb0, 0x0d, 0x92, 0x7b, 0x3e, 0x01, 0xf2, 0xe2, 0x34, 0x52, 0xe2, 0x6f, 0x76, 0x5d, + 0x1f, 0xf6, 0x39, 0x62, 0xf1, 0x0e, 0xc4, 0xd9, 0xfe, 0xc1, 0x69, 0x48, 0xec, 0xd6, 0xef, 0xd7, + 0x1f, 0xec, 0xd5, 0xa5, 0x10, 0x4e, 0x42, 0x74, 0x7b, 0xb7, 0xde, 0x94, 0x10, 0xce, 0x42, 0xaa, + 0xb9, 0xb9, 0xb6, 0xdd, 0xdc, 0xd9, 0xa8, 0xde, 0x97, 0xc2, 0x78, 0x0e, 0xd2, 0x95, 0x8d, 0xcd, + 0xcd, 0xfd, 0xca, 0xda, 0xc6, 0xe6, 0xfa, 0x37, 0x52, 0xa4, 0x28, 0x43, 0x9c, 0xd5, 0x69, 0x3d, + 0xbb, 0xd6, 0x50, 0xd7, 0x8f, 0xed, 0x2d, 0xcc, 0x06, 0xc5, 0x67, 0x18, 0x12, 0x6b, 0xbd, 0xde, + 0x96, 0x72, 0x64, 0xe2, 0x3d, 0x98, 0x6f, 0x92, 0x81, 0xa6, 0x77, 0x76, 0x8c, 0xbb, 0xc6, 0xb0, + 0xd5, 0x53, 0xb7, 0x94, 0xa3, 0x3c, 0xa2, 0x4b, 0x7b, 0x99, 0xbb, 0x6f, 0x3b, 0xbd, 0xec, 0xc9, + 0x65, 0x0b, 0xec, 0x65, 0xe0, 0x1d, 0x90, 0x9c, 0x60, 0xad, 0x67, 0x28, 0xc4, 0xe2, 0x86, 0x29, + 0xb7, 0x34, 0x83, 0xeb, 0xa4, 0x32, 0xac, 0x87, 0x80, 0x6f, 0x43, 0x72, 0x43, 0x27, 0xd7, 0x57, + 0x2c, 0x5a, 0x84, 0xd2, 0x0a, 0x02, 0x9a, 0x93, 0xc2, 0x28, 0x63, 0x85, 0xad, 0xfe, 0xe8, 0x86, + 0xa5, 0x8e, 0xce, 0x52, 0xd3, 0x94, 0x89, 0x9a, 0x0e, 0xf1, 0x1d, 0x48, 0xed, 0x6a, 0xce, 0xe4, + 0x31, 0x2a, 0x5f, 0x12, 0xc8, 0xc7, 0x39, 0x4c, 0x3f, 0xd1, 0x38, 0x00, 0x36, 0x7f, 0x7c, 0x26, + 0x80, 0x2b, 0x60, 0xa2, 0xb1, 0x00, 0xcd, 0x71, 0x05, 0x09, 0x5f, 0x40, 0xd3, 0x55, 0x41, 0x93, + 0xaf, 0xa0, 0x39, 0xae, 0x20, 0x39, 0x13, 0xc0, 0x57, 0x30, 0x1e, 0xe3, 0x0a, 0x40, 0x4d, 0xfb, + 0x4e, 0x3d, 0x64, 0x25, 0xa4, 0x28, 0xa1, 0x28, 0x20, 0x4c, 0x92, 0x18, 0x82, 0x53, 0xe1, 0x75, + 0x48, 0x37, 0xdb, 0x13, 0x08, 0x78, 0xce, 0xf1, 0xb8, 0x8c, 0xb6, 0x8b, 0xc2, 0xeb, 0xc6, 0xa5, + 0xb0, 0x9b, 0x49, 0xcf, 0x2e, 0x85, 0xbb, 0x1b, 0x4e, 0x35, 0x29, 0x85, 0x41, 0x32, 0x01, 0xa5, + 0x70, 0x14, 0x5e, 0x67, 0x35, 0xc3, 0x8a, 0x61, 0x58, 0x99, 0x76, 0x57, 0x5a, 0x14, 0x20, 0xec, + 0x0c, 0xbb, 0x19, 0xda, 0x23, 0xfa, 0x44, 0xe8, 0x26, 0xb7, 0xc4, 0x39, 0xff, 0x27, 0xe2, 0xe4, + 0x38, 0x4f, 0xc4, 0x19, 0xf3, 0xe7, 0xac, 0x72, 0x4c, 0x54, 0xd3, 0xe2, 0xcc, 0x05, 0x9e, 0x33, + 0x27, 0xd5, 0x75, 0xce, 0x9c, 0x30, 0xfe, 0x0a, 0xe6, 0x9c, 0x98, 0xd5, 0x9e, 0x2c, 0xa8, 0x44, + 0xa1, 0x97, 0x66, 0x40, 0xed, 0x4c, 0xc6, 0x74, 0xeb, 0x71, 0x1d, 0x72, 0x4e, 0x68, 0xcb, 0xa4, + 0xb7, 0x3b, 0x4f, 0x89, 0x17, 0x67, 0x10, 0x59, 0x22, 0x03, 0xba, 0xd4, 0x0b, 0x77, 0xe1, 0x5d, + 0x71, 0x37, 0xe2, 0xdb, 0x6f, 0x8a, 0xb5, 0xdf, 0xf3, 0x7c, 0xfb, 0x45, 0x7c, 0xfb, 0xae, 0xc2, + 0x3b, 0xc2, 0xde, 0x13, 0x04, 0x09, 0xf3, 0x90, 0x4f, 0x21, 0x3b, 0xd5, 0x72, 0x78, 0x71, 0x4c, + 0x20, 0x8e, 0x79, 0xc5, 0x93, 0xad, 0x25, 0x78, 0x7b, 0x4c, 0x89, 0x23, 0xbc, 0xf8, 0x36, 0xe4, + 0xa6, 0xfb, 0x0d, 0xaf, 0xce, 0x0a, 0xd4, 0x59, 0x81, 0x5a, 0x3c, 0x77, 0x54, 0xa0, 0x8e, 0xba, + 0xd4, 0x4d, 0xdf, 0xb9, 0xe7, 0x05, 0xea, 0x79, 0x81, 0x5a, 0x3c, 0x37, 0x16, 0xa8, 0x31, 0xaf, + 0xfe, 0x0c, 0xe6, 0x5c, 0x2d, 0x86, 0x97, 0x27, 0x04, 0xf2, 0x04, 0x2f, 0xff, 0x1c, 0x24, 0x77, + 0x73, 0xe1, 0xf5, 0x73, 0x02, 0xfd, 0x9c, 0x68, 0x7a, 0x71, 0xf5, 0x71, 0x81, 0x3c, 0x2e, 0x9c, + 0x5e, 0xac, 0x97, 0x04, 0x7a, 0x89, 0xd7, 0xaf, 0x42, 0x86, 0xef, 0x26, 0xbc, 0x36, 0x29, 0xd0, + 0x26, 0xdd, 0xeb, 0x3e, 0xd5, 0x4c, 0x82, 0x76, 0x7a, 0xca, 0xe7, 0xb8, 0x4c, 0xb5, 0x90, 0x20, + 0x48, 0x86, 0x87, 0x3c, 0x84, 0xf3, 0xa2, 0x96, 0x21, 0x60, 0x94, 0x78, 0x46, 0xce, 0xf2, 0x88, + 0x13, 0xb3, 0x67, 0xa9, 0xa6, 0x8c, 0xd3, 0xc2, 0x23, 0x38, 0x27, 0x68, 0x1c, 0x02, 0x6c, 0x79, + 0xda, 0x8d, 0xe5, 0x39, 0x2c, 0x6d, 0x02, 0x9a, 0xde, 0xd9, 0x36, 0x34, 0x9d, 0xf0, 0xae, 0xec, + 0x97, 0x73, 0x90, 0xb3, 0xdb, 0xd3, 0x83, 0xc1, 0xa1, 0x3a, 0x50, 0x0f, 0xf1, 0xb7, 0xfe, 0xde, + 0xe9, 0x9a, 0xb7, 0xa9, 0xd9, 0xaa, 0xb7, 0xb0, 0x50, 0x8f, 0x7c, 0x2d, 0xd4, 0x72, 0x30, 0x3e, + 0xc8, 0x49, 0x55, 0x3d, 0x4e, 0xea, 0x92, 0x3f, 0xd4, 0xcf, 0x50, 0x55, 0x3d, 0x86, 0x6a, 0x36, + 0x44, 0xe8, 0xab, 0x6a, 0x5e, 0x5f, 0x55, 0xf2, 0xa7, 0xf8, 0xdb, 0xab, 0x9a, 0xd7, 0x5e, 0x05, + 0x70, 0xc4, 0x2e, 0xab, 0xe6, 0x75, 0x59, 0x33, 0x38, 0xfe, 0x66, 0xab, 0xe6, 0x35, 0x5b, 0x01, + 0x1c, 0xb1, 0xe7, 0xda, 0x10, 0x78, 0xae, 0xcb, 0xfe, 0xa0, 0x59, 0xd6, 0x6b, 0x53, 0x64, 0xbd, + 0xae, 0xcc, 0x28, 0x6a, 0xa6, 0x03, 0xdb, 0x10, 0x38, 0xb0, 0xa0, 0xc2, 0x7c, 0x8c, 0xd8, 0xa6, + 0xc8, 0x88, 0x05, 0x16, 0xe6, 0xe7, 0xc7, 0xbe, 0x70, 0xfb, 0xb1, 0x8b, 0xfe, 0x24, 0xb1, 0x2d, + 0xab, 0x79, 0x6d, 0x59, 0x29, 0xe8, 0xcc, 0x89, 0xdc, 0xd9, 0x23, 0x5f, 0x77, 0xf6, 0x2f, 0x8e, + 0x70, 0x90, 0x49, 0xfb, 0xda, 0xcf, 0xa4, 0x95, 0x83, 0xd9, 0xb3, 0xbd, 0xda, 0xae, 0x8f, 0x57, + 0xbb, 0x1a, 0x0c, 0x3e, 0xb3, 0x6c, 0x67, 0x96, 0xed, 0xcc, 0xb2, 0x9d, 0x59, 0xb6, 0xff, 0xdf, + 0xb2, 0xad, 0x46, 0xbf, 0xff, 0x71, 0x11, 0x15, 0xff, 0x88, 0x40, 0xce, 0xfe, 0x32, 0xb8, 0xa7, + 0x91, 0xae, 0xd5, 0xde, 0xb6, 0x20, 0xa3, 0x2b, 0x7d, 0x75, 0xbf, 0xaf, 0x1c, 0x1d, 0x69, 0x7a, + 0xc7, 0xf6, 0x6c, 0x57, 0xbc, 0x9f, 0x12, 0x6d, 0x41, 0xb9, 0xae, 0xf4, 0xad, 0x5e, 0x65, 0x25, + 0xdb, 0xaf, 0x1b, 0x7d, 0x12, 0xc1, 0x5f, 0x42, 0xba, 0x6f, 0x76, 0xc6, 0xb4, 0xb0, 0xe7, 0x45, + 0xe8, 0xa2, 0xb1, 0x3b, 0x9d, 0xc0, 0xa0, 0x3f, 0x0e, 0x58, 0xa5, 0xb5, 0x8e, 0xc9, 0xa4, 0xb4, + 0x48, 0x50, 0x69, 0xd6, 0x33, 0x9d, 0x2e, 0xad, 0x35, 0x89, 0x58, 0xdb, 0xd6, 0x5d, 0x7b, 0x50, + 0xa7, 0x9b, 0xda, 0x3c, 0x7b, 0x30, 0xe7, 0xaa, 0x56, 0x70, 0xe6, 0xff, 0xc3, 0xb3, 0xb1, 0x0a, + 0x73, 0x57, 0x1e, 0x74, 0x26, 0xf8, 0x0d, 0x59, 0x7c, 0x1f, 0xb2, 0x53, 0x6c, 0x9c, 0x01, 0xd4, + 0xa6, 0x52, 0xd4, 0x40, 0xed, 0xe2, 0x0f, 0x08, 0xd2, 0x56, 0x9f, 0xfc, 0x70, 0xe5, 0xd6, 0xb6, + 0xa2, 0x0d, 0xf0, 0x3d, 0x88, 0xf6, 0xd4, 0x36, 0xa1, 0x09, 0x99, 0xca, 0x8d, 0x93, 0x17, 0x8b, + 0xa1, 0xbf, 0x5e, 0x2c, 0x7e, 0x10, 0xf0, 0x5f, 0x82, 0xa1, 0x49, 0x8c, 0x7e, 0xd9, 0xe6, 0x34, + 0x28, 0x01, 0xd7, 0x20, 0x36, 0xd0, 0x3a, 0x5d, 0xc2, 0x4a, 0xaa, 0x5c, 0x7b, 0x6b, 0x0c, 0x93, + 0x17, 0x4f, 0x10, 0xcc, 0x57, 0x0d, 0x9d, 0x28, 0x9a, 0x6e, 0xb2, 0xaf, 0xb5, 0xd6, 0x1b, 0xf2, + 0x19, 0x82, 0xd4, 0x78, 0x84, 0x5b, 0x90, 0x1b, 0x0f, 0xe8, 0x47, 0x70, 0x7b, 0xa7, 0xae, 0x72, + 0x2b, 0xec, 0x61, 0x94, 0x05, 0x57, 0x54, 0x6c, 0xbf, 0x93, 0xa7, 0x83, 0x0b, 0x6b, 0x70, 0x4e, + 0x90, 0xf6, 0x36, 0x2f, 0xe4, 0xe2, 0x12, 0xa4, 0xea, 0x06, 0xd9, 0x56, 0x0e, 0x1e, 0xd3, 0x4f, + 0xce, 0x93, 0xff, 0x59, 0x54, 0xc2, 0x52, 0x88, 0x8a, 0xaf, 0x2c, 0x41, 0xc2, 0x3e, 0xfd, 0x38, + 0x0e, 0xe1, 0xad, 0x35, 0x29, 0x44, 0x7f, 0x2b, 0x12, 0xa2, 0xbf, 0x55, 0x29, 0x5c, 0xd9, 0x3c, + 0x39, 0x95, 0x43, 0xcf, 0x4f, 0xe5, 0xd0, 0x9f, 0xa7, 0x72, 0xe8, 0xe5, 0xa9, 0x8c, 0x5e, 0x9d, + 0xca, 0xe8, 0xf5, 0xa9, 0x8c, 0xde, 0x9c, 0xca, 0xe8, 0xe9, 0x48, 0x46, 0x3f, 0x8d, 0x64, 0xf4, + 0xf3, 0x48, 0x46, 0xbf, 0x8e, 0x64, 0xf4, 0xdb, 0x48, 0x46, 0x27, 0x23, 0x39, 0xf4, 0x7c, 0x24, + 0x87, 0x5e, 0x8e, 0x64, 0xf4, 0x6a, 0x24, 0x87, 0x5e, 0x8f, 0x64, 0xf4, 0x66, 0x24, 0xa3, 0xa7, + 0x7f, 0xcb, 0xa8, 0x15, 0x67, 0xcb, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x94, 0x72, + 0x8f, 0x66, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto index 3cba7ef6..37e33d0e 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go index fc658ce3..9d00bb39 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go @@ -17,12 +17,14 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -38,21 +40,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -72,24 +78,28 @@ func TestMessageProto(t *testing.T) { } func TestMessageMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -108,11 +118,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -122,11 +132,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -140,21 +150,25 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { } func TestNestedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -174,24 +188,28 @@ func TestNestedProto(t *testing.T) { } func TestNestedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -210,11 +228,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -224,11 +242,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -242,21 +260,25 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { } func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -276,24 +298,28 @@ func TestAllMapsProto(t *testing.T) { } func TestAllMapsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -312,11 +338,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -326,11 +352,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -344,21 +370,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -378,24 +408,28 @@ func TestAllMapsOrderedProto(t *testing.T) { } func TestAllMapsOrderedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -414,11 +448,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -428,11 +462,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -446,21 +480,25 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { } func TestMessageWithMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -480,24 +518,28 @@ func TestMessageWithMapProto(t *testing.T) { } func TestMessageWithMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -516,11 +558,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -530,11 +572,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -548,21 +590,25 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { } func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -582,24 +628,28 @@ func TestFloatingPointProto(t *testing.T) { } func TestFloatingPointMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -618,11 +668,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -632,11 +682,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -650,21 +700,25 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { } func TestUint128PairProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -684,24 +738,28 @@ func TestUint128PairProto(t *testing.T) { } func TestUint128PairMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -720,11 +778,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -734,11 +792,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -752,21 +810,25 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { } func TestContainsNestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -786,24 +848,28 @@ func TestContainsNestedMapProto(t *testing.T) { } func TestContainsNestedMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -822,11 +888,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -836,11 +902,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -854,21 +920,25 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { } func TestContainsNestedMap_NestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -888,24 +958,28 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { } func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -924,11 +998,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -938,11 +1012,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -955,6 +1029,116 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNotPackedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -1144,13 +1328,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,9 +1370,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,9 +1387,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,9 +1404,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,9 +1421,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,9 +1438,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,9 +1455,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,9 +1472,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,9 +1489,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,9 +1506,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,9 +1523,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,9 +1540,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,9 +1557,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,9 +1574,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,9 +1591,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,9 +1608,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,9 +1625,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,9 +1642,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1454,14 +1693,18 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1469,14 +1712,18 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1484,14 +1731,18 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1499,14 +1750,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1514,14 +1769,18 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1529,14 +1788,18 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1544,14 +1807,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1559,14 +1826,18 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1574,14 +1845,37 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1660,6 +1954,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1777,18 +2079,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +2133,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1854,13 +2169,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1890,13 +2205,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1926,13 +2241,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1962,13 +2277,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1998,13 +2313,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2034,13 +2349,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2070,13 +2385,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2101,6 +2416,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -2182,5 +2533,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go index da6806c4..d1e7c4c4 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,12 +38,10 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" import unsafe "unsafe" -import errors "errors" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -51,7 +50,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -106,7 +107,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -126,23 +127,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -150,23 +151,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -208,7 +209,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -217,6 +218,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -227,6 +236,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -257,477 +267,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7459 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xff, 0x92, 0x43, 0x4a, 0xd4, 0x21, 0x45, 0x51, 0xb3, 0x5a, 0x99, 0x96, 0xd7, 0xfb, 0xa0, - 0xd7, 0xb2, 0xac, 0xd8, 0x5a, 0xad, 0x56, 0xfb, 0x30, 0xfd, 0xfa, 0x8b, 0x14, 0xb5, 0xd6, 0x46, - 0xaf, 0x8c, 0x24, 0x3f, 0xe2, 0x3f, 0xfe, 0x04, 0x45, 0x8e, 0x24, 0xda, 0xd4, 0x50, 0x7f, 0x0e, - 0x65, 0xef, 0xe6, 0x43, 0x91, 0x26, 0x6d, 0x9a, 0xb4, 0xe8, 0x33, 0x2d, 0x9a, 0x77, 0xec, 0x14, - 0x69, 0x9c, 0xf4, 0x95, 0xa4, 0x69, 0x50, 0x04, 0x45, 0xe3, 0xa2, 0x48, 0xba, 0xfd, 0x52, 0xb8, - 0xe9, 0x97, 0xa2, 0x28, 0x8c, 0xbc, 0x80, 0xa6, 0x6d, 0xda, 0x26, 0x80, 0x81, 0x04, 0x48, 0x3e, - 0xf4, 0xbe, 0xe7, 0xde, 0xcb, 0x19, 0x0e, 0xb5, 0x6b, 0xc7, 0xf9, 0x60, 0x03, 0x5c, 0x91, 0xf7, - 0x9e, 0xdf, 0xb9, 0xe7, 0x9e, 0xd7, 0x3d, 0x73, 0xef, 0xcc, 0x18, 0xfe, 0xf6, 0x1c, 0x9c, 0xda, - 0x69, 0x36, 0x77, 0x1a, 0xf6, 0xd9, 0xfd, 0x56, 0xb3, 0xdd, 0xdc, 0x3a, 0xd8, 0x3e, 0x5b, 0xb3, - 0xdd, 0x6a, 0xab, 0xbe, 0xdf, 0x6e, 0xb6, 0xa6, 0x48, 0x9b, 0x39, 0x44, 0x29, 0xa6, 0x38, 0x45, - 0x6e, 0x19, 0x86, 0x17, 0xea, 0x0d, 0x7b, 0x5e, 0x10, 0xae, 0xdb, 0x6d, 0xf3, 0x32, 0xc4, 0xb6, - 0x51, 0x63, 0x36, 0x72, 0xca, 0x98, 0x48, 0xce, 0x9c, 0x99, 0xd2, 0x40, 0x53, 0x2a, 0x62, 0x0d, - 0x37, 0x5b, 0x04, 0x91, 0xfb, 0x6e, 0x0c, 0x8e, 0xfa, 0xf4, 0x9a, 0x26, 0xc4, 0x9c, 0xca, 0x1e, - 0xe6, 0x18, 0x99, 0x18, 0xb0, 0xc8, 0x77, 0x33, 0x0b, 0xfd, 0xfb, 0x95, 0xea, 0xb3, 0x95, 0x1d, - 0x3b, 0x1b, 0x25, 0xcd, 0xfc, 0xa7, 0x79, 0x02, 0xa0, 0x66, 0xef, 0xdb, 0x4e, 0xcd, 0x76, 0xaa, - 0xd7, 0xb3, 0x06, 0x92, 0x62, 0xc0, 0x92, 0x5a, 0xcc, 0xb7, 0xc1, 0xf0, 0xfe, 0xc1, 0x56, 0xa3, - 0x5e, 0x2d, 0x4b, 0x64, 0x80, 0xc8, 0xe2, 0x56, 0x86, 0x76, 0xcc, 0x7b, 0xc4, 0xf7, 0xc0, 0xd0, - 0xf3, 0x76, 0xe5, 0x59, 0x99, 0x34, 0x49, 0x48, 0xd3, 0xb8, 0x59, 0x22, 0x2c, 0x42, 0x6a, 0xcf, - 0x76, 0x5d, 0x24, 0x40, 0xb9, 0x7d, 0x7d, 0xdf, 0xce, 0xc6, 0xc8, 0xec, 0x4f, 0x75, 0xcc, 0x5e, - 0x9f, 0x79, 0x92, 0xa1, 0x36, 0x10, 0xc8, 0x9c, 0x83, 0x01, 0xdb, 0x39, 0xd8, 0xa3, 0x1c, 0xe2, - 0x01, 0xfa, 0x2b, 0x21, 0x0a, 0x9d, 0x4b, 0x02, 0xc3, 0x18, 0x8b, 0x7e, 0xd7, 0x6e, 0x3d, 0x57, - 0xaf, 0xda, 0xd9, 0x3e, 0xc2, 0xe0, 0x9e, 0x0e, 0x06, 0xeb, 0xb4, 0x5f, 0xe7, 0xc1, 0x71, 0x68, - 0x2a, 0x03, 0xf6, 0xb5, 0xb6, 0xed, 0xb8, 0xf5, 0xa6, 0x93, 0xed, 0x27, 0x4c, 0xee, 0xf6, 0xb1, - 0xa2, 0xdd, 0xa8, 0xe9, 0x2c, 0x3c, 0x9c, 0x79, 0x11, 0xfa, 0x9b, 0xfb, 0x6d, 0xf4, 0xcd, 0xcd, - 0x26, 0x90, 0x7d, 0x92, 0x33, 0xc7, 0x7d, 0x1d, 0x61, 0x95, 0xd2, 0x58, 0x9c, 0xd8, 0x5c, 0x84, - 0x8c, 0xdb, 0x3c, 0x68, 0x55, 0xed, 0x72, 0xb5, 0x59, 0xb3, 0xcb, 0x75, 0x67, 0xbb, 0x99, 0x1d, - 0x20, 0x0c, 0x4e, 0x76, 0x4e, 0x84, 0x10, 0x16, 0x11, 0xdd, 0x22, 0x22, 0xb3, 0xd2, 0xae, 0xf2, - 0xdb, 0x1c, 0x85, 0x3e, 0xf7, 0xba, 0xd3, 0xae, 0x5c, 0xcb, 0xa6, 0x88, 0x87, 0xb0, 0x5f, 0xb9, - 0x1f, 0xc5, 0x61, 0xa8, 0x17, 0x17, 0x7b, 0x10, 0xe2, 0xdb, 0x78, 0x96, 0xc8, 0xc1, 0x0e, 0xa1, - 0x03, 0x8a, 0x51, 0x95, 0xd8, 0x77, 0x93, 0x4a, 0x9c, 0x83, 0xa4, 0x63, 0xbb, 0x6d, 0xbb, 0x46, - 0x3d, 0xc2, 0xe8, 0xd1, 0xa7, 0x80, 0x82, 0x3a, 0x5d, 0x2a, 0x76, 0x53, 0x2e, 0xf5, 0x24, 0x0c, - 0x09, 0x91, 0xca, 0xad, 0x8a, 0xb3, 0xc3, 0x7d, 0xf3, 0x6c, 0x98, 0x24, 0x53, 0x25, 0x8e, 0xb3, - 0x30, 0xcc, 0x4a, 0xdb, 0xca, 0x6f, 0x73, 0x1e, 0xa0, 0xe9, 0xd8, 0xcd, 0x6d, 0x14, 0x5e, 0xd5, - 0x06, 0xf2, 0x13, 0x7f, 0x2d, 0xad, 0x62, 0x92, 0x0e, 0x2d, 0x35, 0x69, 0x6b, 0xb5, 0x61, 0x3e, - 0xe0, 0xb9, 0x5a, 0x7f, 0x80, 0xa7, 0x2c, 0xd3, 0x20, 0xeb, 0xf0, 0xb6, 0x4d, 0x48, 0xb7, 0x6c, - 0xec, 0xf7, 0x48, 0xc5, 0x74, 0x66, 0x03, 0x44, 0x88, 0xa9, 0xd0, 0x99, 0x59, 0x0c, 0x46, 0x27, - 0x36, 0xd8, 0x92, 0x7f, 0x9a, 0x77, 0x81, 0x68, 0x28, 0x13, 0xb7, 0x02, 0x92, 0x85, 0x52, 0xbc, - 0x71, 0x05, 0xb5, 0x8d, 0x5d, 0x86, 0xb4, 0xaa, 0x1e, 0x73, 0x04, 0xe2, 0x6e, 0xbb, 0xd2, 0x6a, - 0x13, 0x2f, 0x8c, 0x5b, 0xf4, 0x87, 0x99, 0x01, 0x03, 0x25, 0x19, 0x92, 0xe5, 0xe2, 0x16, 0xfe, - 0x3a, 0x76, 0x09, 0x06, 0x95, 0xe1, 0x7b, 0x05, 0xe6, 0x3e, 0xd4, 0x07, 0x23, 0x7e, 0x3e, 0xe7, - 0xeb, 0xfe, 0x28, 0x7c, 0x90, 0x07, 0x6c, 0xd9, 0x2d, 0xe4, 0x77, 0x98, 0x03, 0xfb, 0x85, 0x3c, - 0x2a, 0xde, 0xa8, 0x6c, 0xd9, 0x0d, 0xe4, 0x4d, 0x91, 0x89, 0xf4, 0xcc, 0xdb, 0x7a, 0xf2, 0xea, - 0xa9, 0x25, 0x0c, 0xb1, 0x28, 0xd2, 0x7c, 0x04, 0x62, 0x2c, 0xc5, 0x61, 0x0e, 0x93, 0xbd, 0x71, - 0xc0, 0xbe, 0x68, 0x11, 0x9c, 0x79, 0x07, 0x0c, 0xe0, 0xbf, 0x54, 0xb7, 0x7d, 0x44, 0xe6, 0x04, - 0x6e, 0xc0, 0x7a, 0x35, 0xc7, 0x20, 0x41, 0xdc, 0xac, 0x66, 0xf3, 0xa5, 0x41, 0xfc, 0xc6, 0x86, - 0xa9, 0xd9, 0xdb, 0x95, 0x83, 0x46, 0xbb, 0xfc, 0x5c, 0xa5, 0x71, 0x60, 0x13, 0x87, 0x41, 0x86, - 0x61, 0x8d, 0x8f, 0xe3, 0x36, 0xf3, 0x24, 0x24, 0xa9, 0x57, 0xd6, 0x11, 0xe6, 0x1a, 0xc9, 0x3e, - 0x71, 0x8b, 0x3a, 0xea, 0x22, 0x6e, 0xc1, 0xc3, 0x3f, 0xe3, 0xa2, 0x58, 0x60, 0xa6, 0x25, 0x43, - 0xe0, 0x06, 0x32, 0xfc, 0x25, 0x3d, 0xf1, 0xdd, 0xe9, 0x3f, 0x3d, 0xdd, 0x17, 0x73, 0x5f, 0x8e, - 0x42, 0x8c, 0xc4, 0xdb, 0x10, 0x24, 0x37, 0x9e, 0x5a, 0x2b, 0x95, 0xe7, 0x57, 0x37, 0x0b, 0x4b, - 0xa5, 0x4c, 0xc4, 0x4c, 0x03, 0x90, 0x86, 0x85, 0xa5, 0xd5, 0xb9, 0x8d, 0x4c, 0x54, 0xfc, 0x5e, - 0x5c, 0xd9, 0xb8, 0x38, 0x9b, 0x31, 0x04, 0x60, 0x93, 0x36, 0xc4, 0x64, 0x82, 0xf3, 0x33, 0x99, - 0x38, 0xf2, 0x84, 0x14, 0x65, 0xb0, 0xf8, 0x64, 0x69, 0x1e, 0x51, 0xf4, 0xa9, 0x2d, 0x88, 0xa6, - 0xdf, 0x1c, 0x84, 0x01, 0xd2, 0x52, 0x58, 0x5d, 0x5d, 0xca, 0x24, 0x04, 0xcf, 0xf5, 0x0d, 0x6b, - 0x71, 0xe5, 0x4a, 0x66, 0x40, 0xf0, 0xbc, 0x62, 0xad, 0x6e, 0xae, 0x65, 0x40, 0x70, 0x58, 0x2e, - 0xad, 0xaf, 0xcf, 0x5d, 0x29, 0x65, 0x92, 0x82, 0xa2, 0xf0, 0xd4, 0x46, 0x69, 0x3d, 0x93, 0x52, - 0xc4, 0x42, 0x43, 0x0c, 0x8a, 0x21, 0x4a, 0x2b, 0x9b, 0xcb, 0x99, 0xb4, 0x39, 0x0c, 0x83, 0x74, - 0x08, 0x2e, 0xc4, 0x90, 0xd6, 0x84, 0x24, 0xcd, 0x78, 0x82, 0x50, 0x2e, 0xc3, 0x4a, 0x03, 0xa2, - 0x30, 0x73, 0x45, 0x88, 0x13, 0xef, 0x42, 0x5e, 0x9c, 0x5e, 0x9a, 0x2b, 0x94, 0x96, 0xca, 0xab, - 0x6b, 0x1b, 0x8b, 0xab, 0x2b, 0x73, 0x4b, 0x48, 0x77, 0xa2, 0xcd, 0x2a, 0xbd, 0x63, 0x73, 0xd1, - 0x2a, 0xcd, 0x23, 0xfd, 0x49, 0x6d, 0x6b, 0xa5, 0xb9, 0x0d, 0xd4, 0x66, 0xe4, 0x26, 0x61, 0xc4, - 0x2f, 0xcf, 0xf8, 0x45, 0x46, 0xee, 0x53, 0x11, 0x38, 0xea, 0x93, 0x32, 0x7d, 0xa3, 0xe8, 0x51, - 0x88, 0x53, 0x4f, 0xa3, 0x8b, 0xc8, 0xbd, 0xbe, 0xb9, 0x97, 0xf8, 0x5d, 0xc7, 0x42, 0x42, 0x70, - 0xf2, 0x42, 0x6a, 0x04, 0x2c, 0xa4, 0x98, 0x45, 0x87, 0x3b, 0xbd, 0x37, 0x02, 0xd9, 0x20, 0xde, - 0x21, 0xf1, 0x1e, 0x55, 0xe2, 0xfd, 0x41, 0x5d, 0x80, 0xd3, 0xc1, 0x73, 0xe8, 0x90, 0xe2, 0x33, - 0x11, 0x18, 0xf5, 0xaf, 0x37, 0x7c, 0x65, 0x78, 0x04, 0xfa, 0xf6, 0xec, 0xf6, 0x6e, 0x93, 0xaf, - 0xb9, 0xe3, 0x3e, 0x99, 0x1c, 0x77, 0xeb, 0xba, 0x62, 0x28, 0x79, 0x29, 0x30, 0x82, 0x8a, 0x06, - 0x2a, 0x4d, 0x87, 0xa4, 0x1f, 0x88, 0xc2, 0x31, 0x5f, 0xe6, 0xbe, 0x82, 0xde, 0x09, 0x50, 0x77, - 0xf6, 0x0f, 0xda, 0x74, 0x5d, 0xa5, 0x69, 0x66, 0x80, 0xb4, 0x90, 0x10, 0xc6, 0x29, 0xe4, 0xa0, - 0x2d, 0xfa, 0x0d, 0xd2, 0x0f, 0xb4, 0x89, 0x10, 0x5c, 0xf6, 0x04, 0x8d, 0x11, 0x41, 0x4f, 0x04, - 0xcc, 0xb4, 0x63, 0xc9, 0x9a, 0x86, 0x4c, 0xb5, 0x51, 0xb7, 0x9d, 0x76, 0xd9, 0x6d, 0xb7, 0xec, - 0xca, 0x5e, 0xdd, 0xd9, 0x21, 0x79, 0x34, 0x91, 0x8f, 0x6f, 0x57, 0x1a, 0xae, 0x6d, 0x0d, 0xd1, - 0xee, 0x75, 0xde, 0x8b, 0x11, 0x64, 0xb1, 0x68, 0x49, 0x88, 0x3e, 0x05, 0x41, 0xbb, 0x05, 0x22, - 0xf7, 0x8d, 0x7e, 0x48, 0x4a, 0xd5, 0x99, 0x79, 0x1a, 0x52, 0xcf, 0x54, 0x9e, 0xab, 0x94, 0x79, - 0xc5, 0x4d, 0x35, 0x91, 0xc4, 0x6d, 0x6b, 0xac, 0xea, 0x9e, 0x86, 0x11, 0x42, 0x82, 0xe6, 0x88, - 0x06, 0xaa, 0x36, 0x2a, 0xae, 0x4b, 0x94, 0x96, 0x20, 0xa4, 0x26, 0xee, 0x5b, 0xc5, 0x5d, 0x45, - 0xde, 0x63, 0x5e, 0x80, 0xa3, 0x04, 0xb1, 0x87, 0x12, 0x6f, 0x7d, 0xbf, 0x61, 0x97, 0xf1, 0x35, - 0x80, 0x4b, 0xf2, 0xa9, 0x90, 0x6c, 0x18, 0x53, 0x2c, 0x33, 0x02, 0x2c, 0x91, 0x6b, 0x5e, 0x81, - 0x3b, 0x09, 0x6c, 0xc7, 0x76, 0xec, 0x56, 0xa5, 0x6d, 0x97, 0xed, 0xff, 0x7f, 0x80, 0x68, 0xcb, - 0x15, 0xa7, 0x56, 0xde, 0xad, 0xb8, 0xbb, 0xd9, 0x11, 0x99, 0xc1, 0xed, 0x98, 0xf6, 0x0a, 0x23, - 0x2d, 0x11, 0xca, 0x39, 0xa7, 0xf6, 0x18, 0xa2, 0x33, 0xf3, 0x30, 0x4a, 0x18, 0x21, 0xa5, 0xa0, - 0x39, 0x97, 0xab, 0xbb, 0x76, 0xf5, 0xd9, 0xf2, 0x41, 0x7b, 0xfb, 0x72, 0xf6, 0x0e, 0x99, 0x03, - 0x11, 0x72, 0x9d, 0xd0, 0x14, 0x31, 0xc9, 0x26, 0xa2, 0x30, 0xd7, 0x21, 0x85, 0xed, 0xb1, 0x57, - 0x7f, 0x17, 0x12, 0xbb, 0xd9, 0x22, 0x6b, 0x44, 0xda, 0x27, 0xb8, 0x25, 0x25, 0x4e, 0xad, 0x32, - 0xc0, 0x32, 0xaa, 0x4f, 0xf3, 0xf1, 0xf5, 0xb5, 0x52, 0x69, 0xde, 0x4a, 0x72, 0x2e, 0x0b, 0xcd, - 0x16, 0xf6, 0xa9, 0x9d, 0xa6, 0xd0, 0x71, 0x92, 0xfa, 0xd4, 0x4e, 0x93, 0x6b, 0x18, 0xe9, 0xab, - 0x5a, 0xa5, 0xd3, 0x46, 0xd7, 0x2e, 0xac, 0x58, 0x77, 0xb3, 0x19, 0x45, 0x5f, 0xd5, 0xea, 0x15, - 0x4a, 0xc0, 0xdc, 0xdc, 0x45, 0x21, 0x71, 0xcc, 0xd3, 0x97, 0x0c, 0x1c, 0xee, 0x98, 0xa5, 0x0e, - 0x45, 0x23, 0xee, 0x5f, 0xef, 0x04, 0x9a, 0xca, 0x88, 0xfb, 0xd7, 0x75, 0xd8, 0xdd, 0xe4, 0x02, - 0xac, 0x65, 0x57, 0x91, 0xca, 0x6b, 0xd9, 0xdb, 0x64, 0x6a, 0xa9, 0xc3, 0x3c, 0x8b, 0x1c, 0xb9, - 0x5a, 0xb6, 0x9d, 0xca, 0x16, 0xb2, 0x7d, 0xa5, 0x85, 0xbe, 0xb8, 0xd9, 0x93, 0x32, 0x71, 0xba, - 0x5a, 0x2d, 0x91, 0xde, 0x39, 0xd2, 0x69, 0x4e, 0xc2, 0x70, 0x73, 0xeb, 0x99, 0x2a, 0x75, 0xae, - 0x32, 0xe2, 0xb3, 0x5d, 0xbf, 0x96, 0x3d, 0x43, 0xd4, 0x34, 0x84, 0x3b, 0x88, 0x6b, 0xad, 0x91, - 0x66, 0xf3, 0x5e, 0xc4, 0xdc, 0xdd, 0xad, 0xb4, 0xf6, 0xc9, 0x22, 0xed, 0x22, 0xa5, 0xda, 0xd9, - 0xbb, 0x29, 0x29, 0x6d, 0x5f, 0xe1, 0xcd, 0x66, 0x09, 0x4e, 0xe2, 0xc9, 0x3b, 0x15, 0xa7, 0x59, - 0x3e, 0x70, 0xed, 0xb2, 0x27, 0xa2, 0xb0, 0xc5, 0x38, 0x16, 0xcb, 0x3a, 0xce, 0xc9, 0x36, 0x5d, - 0x94, 0xcc, 0x38, 0x11, 0x37, 0xcf, 0x93, 0x30, 0x72, 0xe0, 0xd4, 0x1d, 0xe4, 0xe2, 0xa8, 0x07, - 0x83, 0x69, 0xc0, 0x66, 0xff, 0xad, 0x3f, 0xa0, 0xe8, 0xde, 0x94, 0xa9, 0xa9, 0x93, 0x58, 0x47, - 0x0f, 0x3a, 0x1b, 0x73, 0x79, 0x48, 0xc9, 0xbe, 0x63, 0x0e, 0x00, 0xf5, 0x1e, 0xb4, 0xba, 0xa1, - 0x15, 0xb5, 0xb8, 0x3a, 0x8f, 0xd7, 0xc2, 0x77, 0x96, 0xd0, 0xc2, 0x86, 0xd6, 0xe4, 0xa5, 0xc5, - 0x8d, 0x52, 0xd9, 0xda, 0x5c, 0xd9, 0x58, 0x5c, 0x2e, 0x65, 0x8c, 0xc9, 0x81, 0xc4, 0xf7, 0xfa, - 0x33, 0xef, 0x46, 0xff, 0x45, 0x73, 0x5f, 0x8b, 0x42, 0x5a, 0xad, 0x83, 0xcd, 0x87, 0xe0, 0x36, - 0x7e, 0xd1, 0xea, 0xda, 0xed, 0xf2, 0xf3, 0xf5, 0x16, 0x71, 0xe7, 0xbd, 0x0a, 0xad, 0x24, 0x85, - 0x25, 0x46, 0x18, 0x15, 0xba, 0xbc, 0x7f, 0x02, 0xd1, 0x2c, 0x10, 0x12, 0x73, 0x09, 0x4e, 0x22, - 0x95, 0xa1, 0x5a, 0xd3, 0xa9, 0x55, 0x5a, 0xb5, 0xb2, 0xb7, 0x5d, 0x50, 0xae, 0x54, 0x91, 0x1f, - 0xb8, 0x4d, 0xba, 0x92, 0x08, 0x2e, 0xc7, 0x9d, 0xe6, 0x3a, 0x23, 0xf6, 0x52, 0xec, 0x1c, 0x23, - 0xd5, 0xbc, 0xc6, 0x08, 0xf2, 0x1a, 0x54, 0x7b, 0xed, 0x55, 0xf6, 0x91, 0xdb, 0xb4, 0x5b, 0xd7, - 0x49, 0xf5, 0x96, 0xb0, 0x12, 0xa8, 0xa1, 0x84, 0x7f, 0xbf, 0x71, 0x36, 0x90, 0xf5, 0xf8, 0xaf, - 0x06, 0xa4, 0xe4, 0x0a, 0x0e, 0x17, 0xc4, 0x55, 0x92, 0xe6, 0x23, 0x24, 0x0b, 0xdc, 0xd5, 0xb5, - 0xde, 0x9b, 0x2a, 0xe2, 0xfc, 0x9f, 0xef, 0xa3, 0x75, 0x95, 0x45, 0x91, 0x78, 0xed, 0xc5, 0xbe, - 0x66, 0xd3, 0x6a, 0x3d, 0x61, 0xb1, 0x5f, 0x28, 0xd9, 0xf5, 0x3d, 0xe3, 0x12, 0xde, 0x7d, 0x84, - 0xf7, 0x99, 0xee, 0xbc, 0xaf, 0xae, 0x13, 0xe6, 0x03, 0x57, 0xd7, 0xcb, 0x2b, 0xab, 0xd6, 0xf2, - 0xdc, 0x92, 0xc5, 0xe0, 0xe6, 0xed, 0x10, 0x6b, 0x54, 0xde, 0x75, 0x5d, 0x5d, 0x29, 0x48, 0x53, - 0xaf, 0x8a, 0x47, 0x1c, 0xf0, 0x96, 0x87, 0x9a, 0x9f, 0x49, 0xd3, 0x1b, 0xe8, 0xfa, 0x67, 0x21, - 0x4e, 0xf4, 0x65, 0x02, 0x30, 0x8d, 0x65, 0x8e, 0x98, 0x09, 0x88, 0x15, 0x57, 0x2d, 0xec, 0xfe, - 0xc8, 0xdf, 0x69, 0x6b, 0x79, 0x6d, 0xb1, 0x54, 0x44, 0x11, 0x90, 0xbb, 0x00, 0x7d, 0x54, 0x09, - 0x38, 0x34, 0x84, 0x1a, 0x10, 0x88, 0xfe, 0x64, 0x3c, 0x22, 0xbc, 0x77, 0x73, 0xb9, 0x50, 0xb2, - 0x32, 0x51, 0xd9, 0xbc, 0x5f, 0x89, 0x40, 0x52, 0x2a, 0xa8, 0xf0, 0x52, 0x5e, 0x69, 0x34, 0x9a, - 0xcf, 0x97, 0x2b, 0x8d, 0x3a, 0xca, 0x50, 0xd4, 0x3e, 0x40, 0x9a, 0xe6, 0x70, 0x4b, 0xaf, 0xfa, - 0xfb, 0x99, 0xf8, 0xe6, 0x27, 0x22, 0x90, 0xd1, 0x8b, 0x31, 0x4d, 0xc0, 0xc8, 0x9b, 0x2a, 0xe0, - 0xc7, 0x22, 0x90, 0x56, 0x2b, 0x30, 0x4d, 0xbc, 0xd3, 0x6f, 0xaa, 0x78, 0x1f, 0x8d, 0xc0, 0xa0, - 0x52, 0x77, 0xfd, 0x5c, 0x49, 0xf7, 0x11, 0x03, 0x8e, 0xfa, 0xe0, 0x50, 0x02, 0xa2, 0x05, 0x2a, - 0xad, 0x99, 0xef, 0xef, 0x65, 0xac, 0x29, 0xbc, 0xfe, 0xad, 0x55, 0x5a, 0x6d, 0x56, 0xcf, 0xa2, - 0xf5, 0xb2, 0x5e, 0x43, 0x49, 0xb5, 0xbe, 0x5d, 0x47, 0xe5, 0x1b, 0xbd, 0x62, 0xa1, 0x55, 0xeb, - 0x90, 0xd7, 0x4e, 0x2f, 0x8f, 0xef, 0x03, 0x73, 0xbf, 0xe9, 0xd6, 0xdb, 0xf5, 0xe7, 0xf0, 0xf6, - 0x1c, 0xbf, 0x90, 0xc6, 0x55, 0x6c, 0xcc, 0xca, 0xf0, 0x9e, 0x45, 0xa7, 0x2d, 0xa8, 0x1d, 0x7b, - 0xa7, 0xa2, 0x51, 0xe3, 0x34, 0x64, 0x58, 0x19, 0xde, 0x23, 0xa8, 0x51, 0xa1, 0x59, 0x6b, 0x1e, - 0xe0, 0x82, 0x80, 0xd2, 0xe1, 0xac, 0x17, 0xb1, 0x92, 0xb4, 0x4d, 0x90, 0xb0, 0x8a, 0xcd, 0xbb, - 0x82, 0x4f, 0x59, 0x49, 0xda, 0x46, 0x49, 0xee, 0x81, 0xa1, 0xca, 0xce, 0x4e, 0x0b, 0x33, 0xe7, - 0x8c, 0x68, 0x19, 0x9a, 0x16, 0xcd, 0x84, 0x70, 0xec, 0x2a, 0x24, 0xb8, 0x1e, 0xf0, 0xc2, 0x82, - 0x35, 0x81, 0xd6, 0x7c, 0xb2, 0x8f, 0x12, 0xc5, 0x17, 0xf5, 0x0e, 0xef, 0x44, 0x83, 0xd6, 0xdd, - 0xb2, 0xb7, 0xa1, 0x17, 0x45, 0xfd, 0x09, 0x2b, 0x59, 0x77, 0xc5, 0x0e, 0x4e, 0xee, 0x33, 0x68, - 0x79, 0x55, 0x37, 0x24, 0xcd, 0x79, 0x48, 0x34, 0x9a, 0xc8, 0x3f, 0x30, 0x82, 0xee, 0x86, 0x4f, - 0x84, 0xec, 0x61, 0x4e, 0x2d, 0x31, 0x7a, 0x4b, 0x20, 0xc7, 0xfe, 0x21, 0x02, 0x09, 0xde, 0x8c, - 0x16, 0x8a, 0xd8, 0x7e, 0xa5, 0xbd, 0x4b, 0xd8, 0xc5, 0x0b, 0xd1, 0x4c, 0xc4, 0x22, 0xbf, 0x71, - 0x3b, 0xaa, 0x66, 0x1c, 0xe2, 0x02, 0xac, 0x1d, 0xff, 0xc6, 0x76, 0x6d, 0xd8, 0x95, 0x1a, 0x29, - 0x70, 0x9b, 0x7b, 0x7b, 0xc8, 0x92, 0x2e, 0xb7, 0x2b, 0x6b, 0x2f, 0xb2, 0x66, 0xbc, 0x2f, 0xde, - 0x6e, 0x55, 0xea, 0x0d, 0x85, 0x36, 0x46, 0x68, 0x33, 0xbc, 0x43, 0x10, 0xe7, 0xe1, 0x76, 0xce, - 0xb7, 0x66, 0xb7, 0x2b, 0xa8, 0x78, 0xae, 0x79, 0xa0, 0x3e, 0xb2, 0xdb, 0x75, 0x1b, 0x23, 0x98, - 0x67, 0xfd, 0x1c, 0x5b, 0x78, 0x12, 0x15, 0xb2, 0xcd, 0x3d, 0x5d, 0x13, 0x85, 0x8c, 0x76, 0xdd, - 0xe5, 0x3e, 0x16, 0x79, 0x27, 0x78, 0x45, 0xc5, 0xa7, 0xa2, 0xc6, 0x95, 0xb5, 0xc2, 0xe7, 0xa2, - 0x63, 0x57, 0x28, 0x6e, 0x8d, 0x6b, 0xd0, 0xb2, 0xb7, 0x1b, 0x76, 0x15, 0x6b, 0x07, 0x5e, 0xbc, - 0x0b, 0xee, 0xdf, 0xa9, 0xb7, 0x77, 0x0f, 0xb6, 0xa6, 0xd0, 0x08, 0x67, 0x77, 0x9a, 0x3b, 0x4d, - 0xef, 0x38, 0x03, 0xff, 0x22, 0x3f, 0xc8, 0x37, 0x76, 0xa4, 0x31, 0x20, 0x5a, 0xc7, 0x42, 0xcf, - 0x3f, 0xf2, 0x2b, 0x70, 0x94, 0x11, 0x97, 0xc9, 0x9e, 0x2a, 0x2d, 0x41, 0xcd, 0xae, 0x17, 0xe4, - 0xd9, 0x2f, 0x7c, 0x97, 0x2c, 0x09, 0xd6, 0x30, 0x83, 0xe2, 0x3e, 0x5a, 0xa4, 0xe6, 0x2d, 0x38, - 0xa6, 0xf0, 0xa3, 0x3e, 0x8c, 0x2e, 0xb9, 0xbb, 0x73, 0xfc, 0x1a, 0xe3, 0x78, 0x54, 0xe2, 0xb8, - 0xce, 0xa0, 0xf9, 0x22, 0x0c, 0x1e, 0x86, 0xd7, 0xd7, 0x19, 0xaf, 0x94, 0x2d, 0x33, 0xb9, 0x02, - 0x43, 0x84, 0x49, 0xf5, 0xc0, 0x6d, 0x37, 0xf7, 0x48, 0x82, 0xe8, 0xce, 0xe6, 0xef, 0xbe, 0x4b, - 0x9d, 0x2a, 0x8d, 0x61, 0x45, 0x81, 0xca, 0x3f, 0x0e, 0x23, 0xb8, 0x85, 0xc4, 0xa0, 0xcc, 0x2d, - 0x7c, 0x0b, 0x21, 0xfb, 0x8f, 0xef, 0xa5, 0xbe, 0x77, 0x54, 0x30, 0x90, 0xf8, 0x4a, 0x96, 0xd8, - 0xb1, 0xdb, 0x28, 0xb7, 0xa1, 0xeb, 0xbf, 0x46, 0xc3, 0xec, 0x7a, 0xc6, 0x90, 0xfd, 0xf0, 0xf7, - 0x55, 0x4b, 0x5c, 0xa1, 0xc8, 0xb9, 0x46, 0x23, 0xbf, 0x09, 0xb7, 0xf9, 0x58, 0xb6, 0x07, 0x9e, - 0x1f, 0x61, 0x3c, 0x47, 0x3a, 0xac, 0x8b, 0xd9, 0xae, 0x01, 0x6f, 0x17, 0xf6, 0xe8, 0x81, 0xe7, - 0x47, 0x19, 0x4f, 0x93, 0x61, 0xb9, 0x59, 0x30, 0xc7, 0xab, 0x30, 0x8c, 0xae, 0xd4, 0xb7, 0x9a, - 0x2e, 0xbb, 0xee, 0xed, 0x81, 0xdd, 0xc7, 0x18, 0xbb, 0x21, 0x06, 0x24, 0x57, 0xc1, 0x98, 0xd7, - 0x03, 0x90, 0xd8, 0x46, 0x17, 0x40, 0x3d, 0xb0, 0xf8, 0x38, 0x63, 0xd1, 0x8f, 0xe9, 0x31, 0x74, - 0x0e, 0x52, 0x3b, 0x4d, 0x96, 0x86, 0xc3, 0xe1, 0x9f, 0x60, 0xf0, 0x24, 0xc7, 0x30, 0x16, 0xfb, - 0xcd, 0xfd, 0x83, 0x06, 0xce, 0xd1, 0xe1, 0x2c, 0x3e, 0xc9, 0x59, 0x70, 0x0c, 0x63, 0x71, 0x08, - 0xb5, 0xbe, 0xc0, 0x59, 0xb8, 0x92, 0x3e, 0x1f, 0xc5, 0x7b, 0xbd, 0x8d, 0xeb, 0x4d, 0xa7, 0x17, - 0x21, 0x5e, 0x64, 0x1c, 0x80, 0x41, 0x30, 0x83, 0x07, 0x61, 0xa0, 0x57, 0x43, 0x7c, 0x9a, 0xc1, - 0x13, 0x36, 0xb7, 0x00, 0x8a, 0x33, 0x9e, 0x64, 0xf0, 0xd9, 0x4a, 0x38, 0x8b, 0x3f, 0x64, 0x2c, - 0xd2, 0x12, 0x8c, 0x4d, 0xa3, 0x6d, 0xbb, 0x6d, 0x74, 0xa9, 0xde, 0x03, 0x93, 0xcf, 0xf0, 0x69, - 0x30, 0x08, 0x53, 0xe5, 0x96, 0xed, 0x54, 0x77, 0x7b, 0xe3, 0xf0, 0x12, 0x57, 0x25, 0xc7, 0x60, - 0x16, 0x28, 0xf3, 0xec, 0x55, 0x5a, 0xe8, 0xe2, 0xba, 0xd1, 0x93, 0x39, 0x3e, 0xcb, 0x78, 0xa4, - 0x04, 0x88, 0x69, 0xe4, 0xc0, 0x39, 0x0c, 0x9b, 0xcf, 0x71, 0x8d, 0x48, 0x30, 0x16, 0x7a, 0xe8, - 0xca, 0x14, 0x57, 0x12, 0x87, 0xe1, 0xf6, 0x47, 0x3c, 0xf4, 0x28, 0x76, 0x59, 0xe6, 0x88, 0x2c, - 0xed, 0xa2, 0x4b, 0xf0, 0x5e, 0xd8, 0xfc, 0x31, 0xb7, 0x34, 0x01, 0x60, 0xf0, 0x53, 0x70, 0xbb, - 0x6f, 0xaa, 0xef, 0x81, 0xd9, 0x9f, 0x30, 0x66, 0xa3, 0x3e, 0xe9, 0x9e, 0xa5, 0x84, 0xc3, 0xb2, - 0xfc, 0x53, 0x9e, 0x12, 0x6c, 0x8d, 0xd7, 0x1a, 0x2e, 0x63, 0xdd, 0xca, 0xf6, 0xe1, 0xb4, 0xf6, - 0x67, 0x5c, 0x6b, 0x14, 0xab, 0x68, 0x6d, 0x03, 0x46, 0x19, 0xc7, 0xc3, 0xd9, 0xf5, 0xf3, 0x3c, - 0xb1, 0x52, 0xf4, 0xa6, 0x6a, 0xdd, 0xa7, 0x61, 0x4c, 0xa8, 0x93, 0x57, 0x60, 0x6e, 0x19, 0x6f, - 0x0c, 0x84, 0x73, 0xfe, 0x02, 0xe3, 0xcc, 0x33, 0xbe, 0x28, 0xe1, 0xdc, 0xe5, 0xca, 0x3e, 0x66, - 0xfe, 0x24, 0x64, 0x39, 0xf3, 0x03, 0x07, 0x15, 0xf8, 0xcd, 0x1d, 0x07, 0x99, 0xb1, 0xd6, 0x03, - 0xeb, 0x2f, 0x6a, 0xa6, 0xda, 0x94, 0xe0, 0x98, 0xf3, 0x22, 0x64, 0x44, 0xbd, 0x51, 0xae, 0xef, - 0xed, 0x37, 0x51, 0x69, 0xd9, 0x9d, 0xe3, 0x9f, 0x73, 0x4b, 0x09, 0xdc, 0x22, 0x81, 0xe5, 0x4b, - 0x90, 0x26, 0x3f, 0x7b, 0x75, 0xc9, 0x2f, 0x31, 0x46, 0x83, 0x1e, 0x8a, 0x25, 0x0e, 0x54, 0x29, - 0xa1, 0x9a, 0xb7, 0x97, 0xfc, 0xf7, 0x17, 0x3c, 0x71, 0x30, 0x08, 0xf5, 0xbe, 0x21, 0x6d, 0x25, - 0x36, 0xc3, 0x8e, 0x5f, 0xb3, 0xbf, 0xf8, 0x1a, 0x8b, 0x59, 0x75, 0x21, 0xce, 0x2f, 0x61, 0xf5, - 0xa8, 0xcb, 0x65, 0x38, 0xb3, 0xf7, 0xbe, 0x26, 0x34, 0xa4, 0xac, 0x96, 0xf9, 0x05, 0x18, 0x54, - 0x96, 0xca, 0x70, 0x56, 0xbf, 0xc4, 0x58, 0xa5, 0xe4, 0x95, 0x32, 0x7f, 0x01, 0x62, 0x78, 0xd9, - 0x0b, 0x87, 0xff, 0x32, 0x83, 0x13, 0xf2, 0xfc, 0xc3, 0x90, 0xe0, 0xcb, 0x5d, 0x38, 0xf4, 0x7d, - 0x0c, 0x2a, 0x20, 0x18, 0xce, 0x97, 0xba, 0x70, 0xf8, 0xaf, 0x70, 0x38, 0x87, 0x60, 0x78, 0xef, - 0x2a, 0x7c, 0xf9, 0xd7, 0x62, 0x2c, 0x5d, 0x71, 0xdd, 0xe1, 0x33, 0x1f, 0xba, 0xc6, 0x85, 0xa3, - 0x3f, 0xc0, 0x06, 0xe7, 0x88, 0xfc, 0x25, 0x88, 0xf7, 0xa8, 0xf0, 0x5f, 0x67, 0x50, 0x4a, 0x8f, - 0x56, 0x90, 0xa4, 0xb4, 0xae, 0x85, 0xc3, 0x7f, 0x83, 0xc1, 0x65, 0x14, 0x16, 0x9d, 0xad, 0x6b, - 0xe1, 0x0c, 0x7e, 0x93, 0x8b, 0xce, 0x10, 0x58, 0x6d, 0x7c, 0x49, 0x0b, 0x47, 0xff, 0x16, 0xd7, - 0x3a, 0x87, 0xa0, 0x68, 0x1a, 0x10, 0x69, 0x2a, 0x1c, 0xff, 0xdb, 0x0c, 0xef, 0x61, 0xb0, 0x06, - 0xa4, 0x34, 0x19, 0xce, 0xe2, 0x77, 0xb8, 0x06, 0x24, 0x14, 0x0e, 0x23, 0x7d, 0xe9, 0x0b, 0xe7, - 0xf4, 0x41, 0x1e, 0x46, 0xda, 0xca, 0x87, 0xad, 0x49, 0xb2, 0x45, 0x38, 0x8b, 0xdf, 0xe5, 0xd6, - 0x24, 0xf4, 0x58, 0x0c, 0x7d, 0x2d, 0x09, 0xe7, 0xf1, 0xfb, 0x5c, 0x0c, 0x6d, 0x29, 0x41, 0x2b, - 0x93, 0xd9, 0xb9, 0x8e, 0x84, 0xf3, 0xfb, 0x10, 0xe3, 0x37, 0xdc, 0xb1, 0x8c, 0xe4, 0x9f, 0x80, - 0x51, 0xff, 0x35, 0x24, 0x9c, 0xeb, 0x87, 0x5f, 0xd3, 0xaa, 0x7e, 0x79, 0x09, 0x41, 0x4b, 0xde, - 0x88, 0xdf, 0xfa, 0x11, 0xce, 0xf6, 0x23, 0xaf, 0xa9, 0x17, 0x76, 0xf2, 0xf2, 0x81, 0x2a, 0x34, - 0xf0, 0x52, 0x77, 0x38, 0xaf, 0x8f, 0x31, 0x5e, 0x12, 0x08, 0x87, 0x06, 0xcb, 0xdc, 0xe1, 0xf8, - 0x8f, 0xf3, 0xd0, 0x60, 0x08, 0x04, 0x4e, 0x38, 0x07, 0x8d, 0x06, 0x76, 0x0e, 0xb3, 0xfb, 0x2d, - 0x0d, 0xd9, 0x7f, 0xff, 0x09, 0x0b, 0x0c, 0x0e, 0x40, 0x39, 0x34, 0x6e, 0xef, 0x6d, 0x21, 0x1d, - 0x84, 0x20, 0xff, 0xe3, 0x27, 0x3c, 0x21, 0x60, 0x6a, 0x14, 0x4f, 0x40, 0x2f, 0x1a, 0xc9, 0x1e, - 0x76, 0x08, 0xf6, 0x3f, 0x7f, 0xc2, 0x8e, 0x59, 0x3d, 0x88, 0xc7, 0x80, 0x1e, 0xda, 0x76, 0x67, - 0xf0, 0x7d, 0x95, 0x01, 0xb9, 0xd0, 0x7c, 0x00, 0xfa, 0xf1, 0x9d, 0x1d, 0xed, 0xca, 0x4e, 0x18, - 0xfa, 0xbf, 0x18, 0x9a, 0xd3, 0x63, 0x85, 0xed, 0x35, 0x5b, 0x36, 0xfa, 0xea, 0x86, 0x61, 0xff, - 0x9b, 0x61, 0x05, 0x00, 0x83, 0xab, 0x15, 0xb7, 0xdd, 0xcb, 0xbc, 0xff, 0x87, 0x83, 0x39, 0x00, - 0x0b, 0x8d, 0xbf, 0x3f, 0x6b, 0x5f, 0x0f, 0xc3, 0xfe, 0x80, 0x0b, 0xcd, 0xe8, 0x51, 0x02, 0x1c, - 0xc0, 0x5f, 0xe9, 0xad, 0x07, 0x21, 0xe0, 0x1f, 0x32, 0xb0, 0x87, 0x28, 0x9c, 0xf6, 0xdf, 0xda, - 0x81, 0x2b, 0xcd, 0x2b, 0x4d, 0xba, 0xa9, 0x03, 0x5f, 0xaf, 0xc3, 0xa5, 0xc0, 0x3d, 0x1a, 0x9c, - 0x87, 0xcf, 0xa2, 0x66, 0xb4, 0xfa, 0x9e, 0xdd, 0x6a, 0xb6, 0x77, 0xcf, 0xb6, 0x77, 0x6d, 0xdc, - 0xc6, 0x76, 0x6b, 0x62, 0xf8, 0xfb, 0xd8, 0xe1, 0xb6, 0x78, 0xc8, 0x79, 0xcd, 0x4a, 0x1d, 0x4b, - 0xbd, 0x42, 0x36, 0x1b, 0xcd, 0xe3, 0xd0, 0x47, 0xe6, 0x71, 0x8e, 0xec, 0x85, 0x47, 0x0a, 0xb1, - 0x1b, 0xaf, 0x9e, 0x3c, 0x62, 0xf5, 0x91, 0xfb, 0xf6, 0xce, 0x89, 0xde, 0x19, 0xb2, 0xd5, 0x1f, - 0x55, 0x7a, 0x67, 0x44, 0xef, 0x79, 0x7a, 0x53, 0x94, 0xd2, 0x7b, 0x5e, 0xf4, 0xce, 0x92, 0x7d, - 0x33, 0x43, 0xe9, 0x9d, 0x15, 0xbd, 0x17, 0xc8, 0xf6, 0xe7, 0xa0, 0xd2, 0x7b, 0x41, 0xf4, 0x5e, - 0x24, 0x9b, 0x9e, 0x31, 0xa5, 0xf7, 0xa2, 0xe8, 0xbd, 0x44, 0xf6, 0x3b, 0x87, 0x95, 0xde, 0x4b, - 0xa2, 0xf7, 0x32, 0xd9, 0xe7, 0x34, 0x95, 0xde, 0xcb, 0xa2, 0xf7, 0x01, 0x72, 0x4c, 0xdd, 0xaf, - 0xf4, 0x3e, 0x60, 0x9e, 0x80, 0x7e, 0xaa, 0x8d, 0x69, 0x72, 0xb4, 0x33, 0xc4, 0xba, 0xfb, 0xa9, - 0x3a, 0xa6, 0xbd, 0xfe, 0x73, 0xe4, 0x48, 0xba, 0x4f, 0xed, 0x3f, 0xe7, 0xf5, 0xcf, 0x90, 0xdb, - 0x2c, 0x33, 0x6a, 0xff, 0x8c, 0xd7, 0x7f, 0x3e, 0x3b, 0x88, 0x63, 0x5b, 0xed, 0x3f, 0xef, 0xf5, - 0xcf, 0x66, 0xd3, 0xd8, 0x9d, 0xd4, 0xfe, 0x59, 0xaf, 0xff, 0x42, 0x76, 0x08, 0x6f, 0xf5, 0xaa, - 0xfd, 0x17, 0x72, 0xef, 0x21, 0xe6, 0x75, 0x3c, 0xf3, 0x8e, 0xaa, 0xe6, 0x15, 0x86, 0x1d, 0x55, - 0x0d, 0x2b, 0x4c, 0x3a, 0xaa, 0x9a, 0x54, 0x18, 0x73, 0x54, 0x35, 0xa6, 0x30, 0xe3, 0xa8, 0x6a, - 0x46, 0x61, 0xc0, 0x51, 0xd5, 0x80, 0xc2, 0x74, 0xa3, 0xaa, 0xe9, 0x84, 0xd1, 0x46, 0x55, 0xa3, - 0x09, 0x73, 0x8d, 0xaa, 0xe6, 0x12, 0x86, 0xca, 0x6a, 0x86, 0xf2, 0x4c, 0x94, 0xd5, 0x4c, 0xe4, - 0x19, 0x27, 0xab, 0x19, 0xc7, 0x33, 0x4b, 0x56, 0x33, 0x8b, 0x67, 0x90, 0xac, 0x66, 0x10, 0xcf, - 0x14, 0x59, 0xcd, 0x14, 0x9e, 0x11, 0x58, 0x8c, 0x59, 0xf6, 0xbe, 0x4f, 0x8c, 0x19, 0x5d, 0x63, - 0xcc, 0xe8, 0x1a, 0x63, 0x46, 0xd7, 0x18, 0x33, 0xba, 0xc6, 0x98, 0xd1, 0x35, 0xc6, 0x8c, 0xae, - 0x31, 0x66, 0x74, 0x8d, 0x31, 0xa3, 0x6b, 0x8c, 0x19, 0xdd, 0x63, 0xcc, 0x08, 0x89, 0x31, 0x23, - 0x24, 0xc6, 0x8c, 0x90, 0x18, 0x33, 0x42, 0x62, 0xcc, 0x08, 0x89, 0x31, 0x23, 0x30, 0xc6, 0x3c, - 0xf3, 0x8e, 0xaa, 0xe6, 0xf5, 0x8d, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, - 0xcc, 0x08, 0x88, 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, 0x8a, - 0x31, 0x23, 0x30, 0xc6, 0x8c, 0xc0, 0x18, 0x33, 0x02, 0x63, 0xcc, 0x08, 0x8c, 0x31, 0x23, 0x30, - 0xc6, 0x0c, 0x39, 0xc6, 0xfe, 0xca, 0x00, 0x93, 0xc6, 0xd8, 0x1a, 0xb9, 0x39, 0x80, 0x99, 0xe2, - 0x84, 0x16, 0x69, 0x7d, 0xd8, 0x74, 0x19, 0xcf, 0x24, 0x27, 0xb4, 0x58, 0x53, 0xfb, 0x67, 0x44, - 0x3f, 0x8f, 0x36, 0xb5, 0xff, 0xbc, 0xe8, 0xe7, 0xf1, 0xa6, 0xf6, 0xcf, 0x8a, 0x7e, 0x1e, 0x71, - 0x6a, 0xff, 0x05, 0xd1, 0xcf, 0x63, 0x4e, 0xed, 0xbf, 0x28, 0xfa, 0x79, 0xd4, 0xa9, 0xfd, 0x97, - 0x44, 0x3f, 0x8f, 0x3b, 0xb5, 0xff, 0xb2, 0xe8, 0xe7, 0x91, 0xa7, 0xf6, 0x3f, 0x60, 0x9e, 0xd2, - 0x63, 0x8f, 0x13, 0x08, 0xd3, 0x9e, 0xd2, 0xa3, 0x4f, 0xa3, 0x38, 0xe7, 0x51, 0xf0, 0xf8, 0xd3, - 0x28, 0x66, 0x3c, 0x0a, 0x1e, 0x81, 0x1a, 0xc5, 0xf9, 0xdc, 0xfb, 0x89, 0xf9, 0x1c, 0xdd, 0x7c, - 0x63, 0x9a, 0xf9, 0xa2, 0x92, 0xe9, 0xc6, 0x34, 0xd3, 0x45, 0x25, 0xb3, 0x8d, 0x69, 0x66, 0x8b, - 0x4a, 0x26, 0x1b, 0xd3, 0x4c, 0x16, 0x95, 0xcc, 0x35, 0xa6, 0x99, 0x2b, 0x2a, 0x99, 0x6a, 0x4c, - 0x33, 0x55, 0x54, 0x32, 0xd3, 0x98, 0x66, 0xa6, 0xa8, 0x64, 0xa2, 0x31, 0xcd, 0x44, 0x51, 0xc9, - 0x3c, 0x63, 0x9a, 0x79, 0xa2, 0x92, 0x69, 0x8e, 0xeb, 0xa6, 0x89, 0xca, 0x66, 0x39, 0xae, 0x9b, - 0x25, 0x2a, 0x9b, 0xe4, 0xb8, 0x6e, 0x92, 0xa8, 0x6c, 0x8e, 0xe3, 0xba, 0x39, 0xa2, 0xb2, 0x29, - 0x7e, 0x1a, 0xe5, 0x15, 0xe1, 0x7a, 0xbb, 0x75, 0x50, 0x6d, 0xdf, 0x52, 0x45, 0x38, 0xad, 0x94, - 0x0f, 0xc9, 0x19, 0x73, 0x8a, 0x14, 0xac, 0x72, 0xc5, 0xa9, 0xad, 0x60, 0xd3, 0x4a, 0x61, 0x21, - 0x21, 0x1c, 0x7f, 0xc4, 0xec, 0x2d, 0xd5, 0x86, 0xd3, 0x4a, 0x99, 0x11, 0x2e, 0xdf, 0xe5, 0x37, - 0xbc, 0x62, 0x7b, 0x39, 0xca, 0x2b, 0x36, 0xa6, 0xfe, 0xc3, 0x56, 0x6c, 0x93, 0xe1, 0x2a, 0x17, - 0xca, 0x9e, 0x0c, 0x57, 0x76, 0xc7, 0xaa, 0xd3, 0x6b, 0x05, 0x37, 0x19, 0xae, 0x5a, 0xa1, 0xd4, - 0xd7, 0xb7, 0xde, 0x62, 0x1e, 0x8c, 0x92, 0x89, 0x8f, 0x07, 0x1f, 0xb6, 0xde, 0x9a, 0x56, 0x52, - 0xc9, 0x61, 0x3d, 0xd8, 0x38, 0xb4, 0x07, 0x1f, 0xb6, 0xf2, 0x9a, 0x56, 0xd2, 0xcb, 0xa1, 0x3d, - 0xf8, 0x0d, 0xa8, 0x87, 0x98, 0x07, 0x7b, 0xea, 0x3f, 0x6c, 0x3d, 0x34, 0x19, 0xae, 0x72, 0x5f, - 0x0f, 0x36, 0x0e, 0xe1, 0xc1, 0xbd, 0xd4, 0x47, 0x93, 0xe1, 0xaa, 0xf5, 0xf7, 0xe0, 0x5b, 0xae, - 0x66, 0x3e, 0x19, 0x81, 0x61, 0x34, 0x4c, 0x09, 0xef, 0xf3, 0xd4, 0xec, 0x1a, 0xd3, 0xe3, 0xb4, - 0x92, 0x09, 0x02, 0x4c, 0xfd, 0xca, 0xab, 0x27, 0x3d, 0x0d, 0x5f, 0x80, 0x04, 0xd5, 0xf0, 0xf4, - 0x74, 0xf6, 0x46, 0x24, 0x24, 0xc3, 0x25, 0xb6, 0x19, 0xa9, 0x79, 0x9a, 0xc3, 0xd0, 0xda, 0xf3, - 0x8d, 0x88, 0x94, 0xe5, 0x18, 0xc9, 0xb9, 0xe9, 0xdc, 0x07, 0x89, 0x84, 0xce, 0x2d, 0x4b, 0x78, - 0xb6, 0x27, 0x09, 0x25, 0xd9, 0xee, 0xe8, 0x90, 0x4d, 0x92, 0xea, 0x00, 0x86, 0x10, 0x6c, 0x85, - 0x3c, 0xe0, 0xd7, 0x8b, 0x48, 0x94, 0x46, 0xcb, 0x07, 0xd3, 0x8a, 0x5b, 0xca, 0x08, 0xe1, 0xd2, - 0x6a, 0x8e, 0xc8, 0xd5, 0xf1, 0xb0, 0x8e, 0x32, 0xec, 0x64, 0xd0, 0xb0, 0x5e, 0x66, 0x17, 0x03, - 0x4e, 0x06, 0x0d, 0xe8, 0xc5, 0x90, 0x18, 0xea, 0x1a, 0x5f, 0x9c, 0xe9, 0xfd, 0x1e, 0x28, 0x39, - 0x44, 0x17, 0xe9, 0x6d, 0x8b, 0xa9, 0x42, 0x0a, 0x0b, 0xf5, 0x2f, 0xaf, 0x9e, 0x8c, 0x6d, 0x1e, - 0x20, 0x59, 0xa3, 0xf5, 0x9a, 0x79, 0x15, 0xe2, 0x8f, 0xb3, 0xe7, 0x6b, 0x30, 0xc1, 0x2c, 0x23, - 0xb8, 0x2f, 0x64, 0x8b, 0x89, 0xb0, 0x9e, 0xda, 0xac, 0x3b, 0xed, 0x73, 0x33, 0x97, 0xd9, 0xa3, - 0x36, 0xb9, 0xff, 0x0b, 0x40, 0xc7, 0x9c, 0xc7, 0xcf, 0x07, 0xac, 0x70, 0xce, 0x74, 0xe8, 0xcb, - 0x88, 0xeb, 0x6c, 0x2f, 0x5c, 0xef, 0xaf, 0x21, 0xf4, 0xfd, 0x78, 0x23, 0x6e, 0xaa, 0x70, 0x1d, - 0xb5, 0x73, 0xee, 0xfb, 0x7c, 0xd5, 0x63, 0xf3, 0xca, 0x4a, 0xf3, 0x4a, 0x28, 0x73, 0x5a, 0x50, - 0xe7, 0x34, 0x7d, 0xb3, 0xf3, 0xb9, 0xc6, 0x17, 0x09, 0x4d, 0x93, 0x46, 0x98, 0x26, 0x8d, 0x5b, - 0xd5, 0xe4, 0x3e, 0xcf, 0x8f, 0xda, 0x5c, 0x8d, 0x6e, 0x73, 0x35, 0x6e, 0x65, 0xae, 0x3f, 0xa2, - 0xd1, 0x2a, 0xe2, 0x69, 0xd3, 0xa1, 0xb7, 0xcb, 0xfd, 0x7c, 0xed, 0x05, 0xbd, 0xae, 0x55, 0x40, - 0x3e, 0x76, 0xe3, 0x85, 0x93, 0x91, 0xdc, 0x27, 0xa3, 0x7c, 0xe6, 0x34, 0x90, 0x6e, 0x6e, 0xe6, - 0x3f, 0x2f, 0x35, 0xd5, 0x1b, 0xa1, 0xa1, 0x4f, 0x44, 0x60, 0xb4, 0x23, 0x93, 0x53, 0x35, 0xbd, - 0xbe, 0xe9, 0xdc, 0x39, 0x6c, 0x3a, 0x67, 0x02, 0x7e, 0x29, 0x02, 0x23, 0x5a, 0x7a, 0xa5, 0xe2, - 0x9d, 0xd5, 0xc4, 0xbb, 0xad, 0x73, 0x24, 0x42, 0x28, 0x49, 0x27, 0x9b, 0x57, 0x03, 0x48, 0x9c, - 0x85, 0xdd, 0x67, 0x35, 0xbb, 0x1f, 0x17, 0x00, 0x1f, 0x75, 0x71, 0x0f, 0x60, 0x62, 0x37, 0x21, - 0xb6, 0xd1, 0xb2, 0xf1, 0x16, 0x44, 0x74, 0xb5, 0xc5, 0x24, 0x4c, 0x53, 0xfc, 0x6a, 0xab, 0xd0, - 0xaa, 0x38, 0xd5, 0x5d, 0x2b, 0xda, 0x6c, 0xa1, 0xc5, 0xd6, 0x98, 0x63, 0x0f, 0x22, 0x27, 0x67, - 0x86, 0x28, 0x01, 0x6a, 0x60, 0x14, 0x46, 0xc5, 0xa9, 0x21, 0x16, 0xb1, 0x25, 0xbb, 0xb2, 0xcd, - 0x84, 0x00, 0x4a, 0x83, 0x5b, 0xac, 0x58, 0x03, 0xfd, 0xcb, 0x06, 0x7c, 0x12, 0x12, 0x9c, 0xb1, - 0x79, 0x06, 0x23, 0xb6, 0xdb, 0x6c, 0x58, 0x86, 0xc0, 0xe2, 0xb0, 0x95, 0x0b, 0xe1, 0xb6, 0xdb, - 0xe6, 0x38, 0xc4, 0xad, 0xfa, 0xce, 0x6e, 0x9b, 0x0d, 0xde, 0x49, 0x16, 0x6f, 0xe1, 0xee, 0xdc, - 0x53, 0x30, 0x20, 0x24, 0x7a, 0x9d, 0x59, 0xcf, 0xd3, 0xa9, 0xa1, 0x2b, 0x61, 0x69, 0x3d, 0xe1, - 0xfb, 0x96, 0xec, 0x21, 0xcf, 0x53, 0x90, 0x40, 0x6a, 0xf6, 0x92, 0x3e, 0xaf, 0x48, 0xf1, 0x89, - 0x3c, 0x69, 0xcd, 0xbd, 0x27, 0x02, 0x89, 0x79, 0xdb, 0xde, 0x27, 0x0a, 0xbf, 0x1b, 0x62, 0xf3, - 0xcd, 0xe7, 0x1d, 0x26, 0xe0, 0x30, 0xd3, 0x28, 0xee, 0x66, 0x3a, 0x8d, 0xd5, 0x50, 0x37, 0x22, - 0x93, 0xf4, 0x7e, 0x54, 0xe8, 0x5d, 0xa2, 0x23, 0xba, 0xcf, 0x29, 0xba, 0x67, 0x06, 0xc4, 0x44, - 0x1d, 0xfa, 0xbf, 0x04, 0x49, 0x69, 0x14, 0x73, 0x82, 0x89, 0x11, 0xd5, 0x81, 0xb2, 0xae, 0xb0, - 0x24, 0x39, 0x1b, 0x06, 0x95, 0x81, 0x31, 0x54, 0x52, 0x71, 0x00, 0x94, 0xa8, 0x79, 0x52, 0x55, - 0xb3, 0x3f, 0x29, 0x53, 0xf5, 0x34, 0xd5, 0x11, 0x51, 0xf7, 0x19, 0xea, 0x9c, 0xc1, 0x46, 0x6c, - 0xa3, 0xef, 0xb9, 0x38, 0x18, 0x2b, 0xf5, 0x46, 0xee, 0x61, 0x00, 0x1a, 0xf2, 0xf8, 0xe6, 0x2a, - 0x2d, 0xea, 0xd2, 0x5c, 0xc1, 0x1b, 0xbb, 0xf6, 0x06, 0xfa, 0x8b, 0x49, 0xd4, 0x7a, 0x0a, 0x27, - 0x18, 0xa0, 0x21, 0x46, 0xf0, 0xf7, 0x86, 0xe2, 0x7d, 0x2b, 0x31, 0x4c, 0x9a, 0xa5, 0xa4, 0x4f, - 0xd9, 0xed, 0x39, 0xa7, 0xd9, 0xde, 0xb5, 0x5b, 0x1a, 0x62, 0xc6, 0x3c, 0xaf, 0x04, 0x6c, 0x7a, - 0xe6, 0x0e, 0x81, 0x08, 0x04, 0x9d, 0xcf, 0x7d, 0x9e, 0x08, 0x88, 0x4b, 0x81, 0x8e, 0x09, 0x1a, - 0x3d, 0x4c, 0xd0, 0xbc, 0xa8, 0xd4, 0x6f, 0x5d, 0xc4, 0xd4, 0x2e, 0x2d, 0x1f, 0x50, 0xae, 0x73, - 0xba, 0x0b, 0xab, 0x5e, 0x63, 0x72, 0x9d, 0x72, 0x91, 0xef, 0x0d, 0x15, 0x39, 0xa0, 0xba, 0x3d, - 0xac, 0x4e, 0x8d, 0x5e, 0x75, 0xfa, 0x15, 0x51, 0x71, 0xd0, 0x67, 0xc1, 0xc9, 0x1b, 0x04, 0xcc, - 0xfb, 0x42, 0x6d, 0x9f, 0x8f, 0x14, 0x85, 0xa8, 0xb3, 0xbd, 0x9a, 0x3f, 0x1f, 0x2d, 0x14, 0x84, - 0xb8, 0x97, 0x0e, 0xe1, 0x02, 0xf9, 0x68, 0xb1, 0x28, 0xd2, 0x76, 0xe2, 0xfd, 0x28, 0x8a, 0x5f, - 0x7a, 0xe1, 0xe4, 0x91, 0xdc, 0x67, 0x91, 0xf0, 0x8c, 0x52, 0x72, 0xdc, 0xfb, 0x35, 0xe1, 0x8f, - 0xf1, 0x9c, 0xe1, 0xa7, 0x81, 0x9f, 0x99, 0xf3, 0x7e, 0x2d, 0x02, 0xd9, 0x0e, 0x59, 0xb9, 0xbe, - 0xa7, 0x7b, 0x12, 0x39, 0x1f, 0x29, 0xbd, 0xf9, 0x3a, 0x7f, 0x0a, 0xe2, 0x1b, 0xf5, 0x3d, 0xbb, - 0x85, 0x57, 0x02, 0xfc, 0x85, 0x8a, 0xcc, 0x0f, 0x73, 0xe2, 0x6d, 0xdc, 0xc4, 0xfb, 0xa8, 0x70, - 0x4a, 0x1f, 0x3e, 0x4f, 0x88, 0xcd, 0x57, 0xda, 0x15, 0x22, 0x41, 0x4a, 0xe4, 0x57, 0xd4, 0x92, - 0x3b, 0x0f, 0xa9, 0xe5, 0xeb, 0xe4, 0x2e, 0x94, 0x1a, 0xb9, 0x41, 0x43, 0xad, 0xfe, 0x78, 0xbd, - 0x7a, 0x6e, 0x32, 0x9e, 0xa8, 0x65, 0x6e, 0x44, 0xf2, 0x31, 0x22, 0xcf, 0x73, 0x90, 0x5e, 0xc5, - 0x62, 0x13, 0x1c, 0x81, 0x9d, 0x82, 0xc8, 0xb2, 0x5a, 0x08, 0xc9, 0x5c, 0xad, 0xc8, 0x9e, 0x56, - 0x3e, 0x1a, 0x42, 0x3d, 0x5a, 0xd9, 0x66, 0x88, 0xb2, 0x6d, 0x32, 0x96, 0x48, 0x67, 0x86, 0xd1, - 0xbf, 0x90, 0x19, 0x64, 0xe3, 0xfe, 0xbd, 0x01, 0x19, 0x5a, 0xea, 0x20, 0x23, 0xd6, 0x9d, 0x7a, - 0xbb, 0xb3, 0x5e, 0x15, 0x12, 0x9b, 0x8f, 0xc2, 0x00, 0x56, 0xe9, 0x02, 0x7b, 0x11, 0x0f, 0x56, - 0xfd, 0x69, 0x56, 0xa2, 0x68, 0x2c, 0x58, 0x03, 0x71, 0x1d, 0xf2, 0xce, 0x1b, 0x82, 0x41, 0x17, - 0x18, 0xc6, 0xca, 0xca, 0x32, 0x5b, 0xdc, 0x66, 0xbb, 0x42, 0xd9, 0x2d, 0x30, 0xec, 0x17, 0x6b, - 0x73, 0x77, 0x2c, 0xc3, 0x59, 0x59, 0x46, 0x6e, 0x13, 0x45, 0x6c, 0x68, 0xc1, 0x7b, 0xa6, 0x17, - 0x36, 0x56, 0xd4, 0x59, 0x1e, 0xfb, 0xeb, 0x08, 0x0c, 0x2a, 0xad, 0x68, 0xb5, 0x4d, 0xd1, 0x06, - 0x69, 0xba, 0x7d, 0x56, 0xca, 0x91, 0xda, 0xb8, 0xcc, 0xd1, 0x5b, 0x94, 0x79, 0x6c, 0x0e, 0x5d, - 0xb5, 0xab, 0xed, 0xe6, 0x14, 0x98, 0x72, 0x13, 0x13, 0x82, 0xbe, 0xc4, 0xc4, 0x74, 0x3a, 0x7a, - 0x72, 0x77, 0xa2, 0x2c, 0x2c, 0xf4, 0x2a, 0xde, 0xbd, 0xb1, 0x52, 0x5a, 0xc7, 0xaf, 0xcd, 0x88, - 0xe4, 0xbe, 0x1c, 0x81, 0x24, 0x2b, 0x5b, 0xab, 0xcd, 0x7d, 0xdb, 0x2c, 0x40, 0x64, 0x8e, 0x79, - 0xd0, 0xcd, 0xc9, 0x1d, 0xa9, 0xa0, 0xd5, 0x29, 0x52, 0xe8, 0xdd, 0xd4, 0x91, 0x2d, 0x73, 0x06, - 0x22, 0x45, 0x66, 0xe0, 0xde, 0x2c, 0x13, 0xa9, 0xe6, 0x7e, 0x68, 0xc0, 0x51, 0xb9, 0x8c, 0xe6, - 0xf9, 0xe4, 0xb4, 0x7a, 0xdd, 0x94, 0x1f, 0x38, 0x37, 0x73, 0x7e, 0x76, 0x0a, 0xff, 0x23, 0x5c, - 0xf2, 0xb4, 0x7a, 0x09, 0xd5, 0x49, 0xd2, 0x71, 0x9b, 0x48, 0x3e, 0x26, 0xf5, 0x76, 0xdc, 0x26, - 0xa2, 0xf4, 0x76, 0xdc, 0x26, 0xa2, 0xf4, 0x76, 0xdc, 0x26, 0xa2, 0xf4, 0x76, 0x1c, 0x05, 0x28, - 0xbd, 0x1d, 0xb7, 0x89, 0x28, 0xbd, 0x1d, 0xb7, 0x89, 0x28, 0xbd, 0x9d, 0xb7, 0x89, 0xb0, 0xee, - 0xc0, 0xdb, 0x44, 0xd4, 0xfe, 0xce, 0xdb, 0x44, 0xd4, 0xfe, 0xce, 0xdb, 0x44, 0xf2, 0xa8, 0x3e, - 0x3b, 0xb0, 0x83, 0x0f, 0x1d, 0x54, 0x7c, 0xb7, 0x6b, 0x40, 0x2f, 0x01, 0xaf, 0xc2, 0x10, 0xdd, - 0x8f, 0x28, 0xe2, 0x3b, 0xb4, 0xea, 0x0e, 0x4a, 0xc5, 0x0f, 0x41, 0x8a, 0x36, 0xd1, 0xab, 0x1c, - 0xbf, 0xab, 0x40, 0xda, 0xcf, 0xd2, 0x6d, 0xaa, 0x2a, 0x51, 0xe7, 0x7e, 0x1a, 0x83, 0x51, 0xda, - 0x8d, 0x1f, 0x23, 0x54, 0x6e, 0x32, 0x1a, 0xd7, 0x8e, 0x94, 0xd2, 0x18, 0xfe, 0xed, 0x57, 0x4f, - 0xd2, 0xd6, 0x39, 0xe1, 0x4c, 0xe3, 0xda, 0xe1, 0x92, 0x4a, 0xe7, 0xad, 0x3f, 0xe3, 0xda, 0x8d, - 0x47, 0x2a, 0x9d, 0x58, 0x6e, 0x04, 0x1d, 0xbf, 0x05, 0x49, 0xa5, 0x9b, 0x17, 0x5e, 0x36, 0xae, - 0xdd, 0x8c, 0xa4, 0xd2, 0x95, 0x84, 0xbf, 0x8d, 0x6b, 0x47, 0x4f, 0x2a, 0xdd, 0x82, 0xf0, 0xbc, - 0x71, 0xed, 0x10, 0x4a, 0xa5, 0xbb, 0x22, 0x7c, 0x70, 0x5c, 0xbb, 0x55, 0x49, 0xa5, 0x7b, 0x4c, - 0x78, 0xe3, 0xb8, 0x76, 0xd3, 0x92, 0x4a, 0xb7, 0x28, 0xfc, 0x72, 0x42, 0xbf, 0x7d, 0x49, 0x25, - 0xbc, 0xea, 0x79, 0xe8, 0x84, 0x7e, 0x23, 0x93, 0x4a, 0xf9, 0x76, 0xcf, 0x57, 0x27, 0xf4, 0x5b, - 0x9a, 0x54, 0xca, 0x25, 0xcf, 0x6b, 0x27, 0xf4, 0xa3, 0x32, 0x95, 0x72, 0xd9, 0xf3, 0xdf, 0x09, - 0xfd, 0xd0, 0x4c, 0xa5, 0x5c, 0xf1, 0x3c, 0x79, 0x42, 0x3f, 0x3e, 0x53, 0x29, 0x57, 0xbd, 0x3d, - 0xf4, 0xaf, 0x6a, 0xee, 0x27, 0xdd, 0x04, 0x95, 0xd3, 0xdc, 0x0f, 0x7c, 0x5c, 0x2f, 0xa7, 0xb9, - 0x1e, 0xf8, 0xb8, 0x5d, 0x4e, 0x73, 0x3b, 0xf0, 0x71, 0xb9, 0x9c, 0xe6, 0x72, 0xe0, 0xe3, 0x6e, - 0x39, 0xcd, 0xdd, 0xc0, 0xc7, 0xd5, 0x72, 0x9a, 0xab, 0x81, 0x8f, 0x9b, 0xe5, 0x34, 0x37, 0x03, - 0x1f, 0x17, 0xcb, 0x69, 0x2e, 0x06, 0x3e, 0xee, 0x95, 0xd3, 0xdc, 0x0b, 0x7c, 0x5c, 0xeb, 0x8c, - 0xee, 0x5a, 0xe0, 0xe7, 0x56, 0x67, 0x74, 0xb7, 0x02, 0x3f, 0x97, 0xba, 0x4b, 0x77, 0xa9, 0x01, - 0x44, 0x15, 0xc7, 0x4d, 0x92, 0x37, 0x9d, 0xd1, 0xbd, 0x09, 0xfc, 0x3c, 0xe9, 0x8c, 0xee, 0x49, - 0xe0, 0xe7, 0x45, 0x67, 0x74, 0x2f, 0x02, 0x3f, 0x0f, 0x7a, 0x59, 0xf7, 0x20, 0xef, 0x16, 0x9f, - 0x9c, 0x76, 0xa2, 0x18, 0xe6, 0x41, 0x46, 0x0f, 0x1e, 0x64, 0xf4, 0xe0, 0x41, 0x46, 0x0f, 0x1e, - 0x64, 0xf4, 0xe0, 0x41, 0x46, 0x0f, 0x1e, 0x64, 0xf4, 0xe0, 0x41, 0x46, 0x0f, 0x1e, 0x64, 0xf4, - 0xe2, 0x41, 0x46, 0x4f, 0x1e, 0x64, 0x04, 0x79, 0xd0, 0x19, 0xfd, 0x86, 0x07, 0xf0, 0x4b, 0x48, - 0x67, 0xf4, 0x93, 0xcf, 0x70, 0x17, 0x32, 0x7a, 0x72, 0x21, 0x23, 0xc8, 0x85, 0xbe, 0x8a, 0x0a, - 0x29, 0xc5, 0x85, 0xd8, 0xf1, 0xd0, 0xeb, 0x95, 0x81, 0x2e, 0xf6, 0x70, 0x7f, 0x85, 0x9f, 0x4f, - 0x5d, 0xec, 0xe1, 0x8c, 0xba, 0x9b, 0x9f, 0x75, 0x66, 0xa1, 0x52, 0x0f, 0x59, 0x68, 0x41, 0xf8, - 0xd0, 0xc5, 0x1e, 0xee, 0xbb, 0xe8, 0xf4, 0xbd, 0xcb, 0xdd, 0x92, 0xc0, 0x63, 0x3d, 0x25, 0x81, - 0xc5, 0x9e, 0x92, 0xc0, 0x55, 0xcf, 0x82, 0xef, 0x8b, 0xc2, 0x88, 0x67, 0x41, 0xfa, 0x8d, 0xbc, - 0x42, 0x25, 0x27, 0x9d, 0x50, 0x99, 0xfc, 0xd4, 0x46, 0x32, 0x23, 0x3e, 0xbf, 0x59, 0x53, 0xcf, - 0xaa, 0xf2, 0x87, 0x3d, 0xbf, 0x91, 0x2c, 0xce, 0xf6, 0x42, 0xcf, 0x80, 0xb1, 0x58, 0x73, 0x49, - 0xb6, 0xf0, 0x1b, 0xb6, 0x68, 0x19, 0xf5, 0x9a, 0x6b, 0x5a, 0xd0, 0x47, 0xc6, 0x75, 0x89, 0x79, - 0x6f, 0x65, 0x60, 0x64, 0x7a, 0x32, 0xb0, 0x9b, 0x7b, 0x39, 0x02, 0xa7, 0x14, 0x57, 0x7e, 0x7d, - 0x4e, 0x0c, 0x1e, 0xec, 0xe9, 0xc4, 0x40, 0x09, 0x10, 0xef, 0xf4, 0xe0, 0x9e, 0xce, 0x83, 0x6a, - 0x39, 0x4a, 0xf4, 0x93, 0x84, 0x5f, 0x80, 0xb4, 0x37, 0x03, 0x72, 0xc9, 0x76, 0x21, 0x7c, 0x33, - 0xd3, 0x2f, 0x34, 0x2f, 0x68, 0x9b, 0x68, 0x5d, 0x61, 0x22, 0x5a, 0x73, 0x79, 0x74, 0xc5, 0xa9, - 0x3e, 0x0e, 0x13, 0xb6, 0x17, 0x91, 0xc0, 0xa5, 0xf9, 0x8d, 0x17, 0x51, 0x79, 0x7e, 0x1f, 0xa4, - 0xe4, 0x27, 0x5e, 0x34, 0xe0, 0x00, 0x07, 0xe6, 0x63, 0xaf, 0x60, 0xea, 0xdf, 0x8b, 0xc0, 0x31, - 0x99, 0xfc, 0x09, 0x64, 0xfb, 0x45, 0x07, 0xd7, 0xf4, 0x0f, 0x43, 0xc2, 0x66, 0x86, 0x63, 0xaf, - 0xdd, 0x60, 0x97, 0x91, 0xbe, 0xe4, 0x53, 0xe4, 0x5f, 0x4b, 0x40, 0xb4, 0x2d, 0x0e, 0x3e, 0xec, - 0xcc, 0xd8, 0xdd, 0x10, 0xa7, 0xfc, 0x55, 0xb9, 0x06, 0x35, 0xb9, 0x3e, 0xed, 0x23, 0x17, 0xf1, - 0x23, 0xf3, 0xaa, 0x22, 0x97, 0x74, 0xb5, 0xea, 0x4b, 0x3e, 0xc5, 0x9d, 0xaf, 0x90, 0xc0, 0xf5, - 0x1f, 0xf1, 0xa8, 0x70, 0x21, 0x27, 0x20, 0x51, 0xd2, 0x69, 0xfc, 0xe5, 0x9c, 0x87, 0xd8, 0x0a, - 0x7e, 0x9b, 0xd8, 0x08, 0x7b, 0x7b, 0x26, 0x53, 0x32, 0x7b, 0x43, 0xeb, 0x38, 0x24, 0x8a, 0xbb, - 0xf5, 0x46, 0xad, 0x65, 0x3b, 0xec, 0xc8, 0x9e, 0xed, 0xa0, 0x63, 0x8c, 0x95, 0xa8, 0xb2, 0xbe, - 0xc9, 0x1c, 0x24, 0x25, 0x97, 0x30, 0xe3, 0xe8, 0xf2, 0x3f, 0x73, 0x04, 0xff, 0x29, 0x64, 0x22, - 0xf8, 0x4f, 0x31, 0x13, 0x9d, 0xbc, 0x1b, 0x86, 0xb4, 0x0d, 0x32, 0xdc, 0x33, 0x9f, 0x01, 0xfc, - 0xa7, 0x94, 0x49, 0x8e, 0xc5, 0xde, 0xff, 0x07, 0x27, 0x8e, 0x4c, 0x3e, 0x08, 0x66, 0xe7, 0x56, - 0x9a, 0xd9, 0x07, 0xd1, 0x39, 0xcc, 0xf2, 0x36, 0x88, 0x16, 0x10, 0xcf, 0xb1, 0xa1, 0x5f, 0xfd, - 0xf8, 0xa9, 0x64, 0x81, 0x3c, 0x30, 0x8a, 0xa8, 0x0b, 0x05, 0x06, 0x7e, 0x04, 0x8e, 0xf9, 0x6e, - 0xc5, 0x61, 0x7c, 0xb1, 0x48, 0xf1, 0xf3, 0xf3, 0x1d, 0xf8, 0xf9, 0x79, 0x82, 0x8f, 0xe4, 0xf9, - 0x91, 0xe6, 0x9c, 0xe9, 0xb3, 0xf1, 0x95, 0xad, 0x49, 0x47, 0xa8, 0x73, 0xf9, 0x47, 0x18, 0x6d, - 0xc1, 0x97, 0xd6, 0x0e, 0x39, 0x12, 0x2d, 0xe4, 0x8b, 0x0c, 0x5f, 0xf4, 0xc5, 0x6f, 0x6b, 0xe7, - 0x76, 0x6a, 0x0e, 0x62, 0x4c, 0x8a, 0x42, 0xe0, 0x79, 0x5f, 0x26, 0xbb, 0xd2, 0xdd, 0xd4, 0xf3, - 0x42, 0xe0, 0x92, 0x2f, 0x6d, 0x3d, 0xe4, 0xae, 0xa2, 0x52, 0xfe, 0x2c, 0x5b, 0x46, 0xe6, 0xce, - 0x99, 0xc7, 0xb8, 0x17, 0x28, 0x31, 0xce, 0x14, 0x44, 0x57, 0x94, 0xb9, 0x73, 0x68, 0x86, 0x14, - 0x50, 0x08, 0x04, 0x04, 0x6b, 0x89, 0x32, 0x29, 0x9c, 0xcb, 0x3f, 0xc6, 0x98, 0x14, 0x03, 0x99, - 0x84, 0xa8, 0x8a, 0x72, 0x2a, 0x9e, 0x2b, 0x6c, 0xdc, 0xf8, 0xd6, 0x89, 0x23, 0xaf, 0xa0, 0xcf, - 0x3f, 0xa3, 0xcf, 0x37, 0xbf, 0x75, 0x22, 0xf2, 0x3d, 0xf4, 0xf9, 0x01, 0xfa, 0xfc, 0x18, 0x7d, - 0xde, 0xfd, 0xed, 0x13, 0x91, 0x97, 0xd0, 0xe7, 0xf3, 0xe8, 0xf3, 0x97, 0xe8, 0xf3, 0x32, 0xfa, - 0xdc, 0x40, 0x9f, 0x57, 0xd0, 0xe7, 0x9b, 0xe8, 0xf3, 0xbd, 0x6f, 0x9f, 0x38, 0xf2, 0x03, 0xf4, - 0xf7, 0xc7, 0xe8, 0xef, 0xbb, 0xbf, 0x73, 0xe2, 0xc8, 0x0b, 0xe8, 0xf3, 0xd2, 0x77, 0x4e, 0x44, - 0xe0, 0xc6, 0x2c, 0x8c, 0xb3, 0x47, 0x95, 0xe8, 0xc3, 0x85, 0xe2, 0xd1, 0x42, 0xfc, 0xd4, 0x12, - 0x59, 0x7a, 0xce, 0xf3, 0xb7, 0xcc, 0x88, 0x86, 0x43, 0x3e, 0xbc, 0x34, 0x76, 0xb3, 0x8f, 0x4a, - 0xe5, 0xfe, 0x26, 0x0e, 0xfd, 0x7c, 0xcb, 0xd1, 0xef, 0x05, 0xa6, 0x17, 0x20, 0x81, 0x62, 0xb8, - 0xd2, 0xaa, 0xb7, 0xaf, 0xb3, 0xbd, 0xb6, 0xdb, 0xa7, 0x3c, 0xb1, 0xf9, 0xee, 0xdc, 0x63, 0x07, - 0x7b, 0xcd, 0x03, 0x94, 0x1c, 0x39, 0xa9, 0x79, 0x0a, 0x52, 0xbb, 0x36, 0x3e, 0x6b, 0x2b, 0xd7, - 0x9d, 0x72, 0x75, 0x8f, 0xd4, 0x64, 0x83, 0x16, 0xd0, 0xb6, 0x45, 0xa7, 0xb8, 0x87, 0x07, 0xc3, - 0x5b, 0xd2, 0xe4, 0x5a, 0x30, 0x45, 0xb7, 0xa7, 0xf1, 0xeb, 0x93, 0x5a, 0xb6, 0x8b, 0xdf, 0xba, - 0x5c, 0x6d, 0x1e, 0x38, 0x6d, 0x52, 0x35, 0x19, 0x56, 0x92, 0xb6, 0x15, 0x71, 0x13, 0x7e, 0x33, - 0x33, 0xde, 0xf0, 0x29, 0xbb, 0xd5, 0x66, 0xdb, 0xdd, 0xab, 0x38, 0xa4, 0x6a, 0x4a, 0x58, 0x29, - 0xdc, 0xb8, 0xce, 0xda, 0xc8, 0x7b, 0xae, 0xab, 0xcd, 0x96, 0x4d, 0x2e, 0xda, 0xa2, 0x16, 0xfd, - 0x81, 0xdf, 0x73, 0xfd, 0xac, 0x7d, 0x9d, 0x5c, 0x16, 0xc4, 0x2c, 0xfc, 0x15, 0x1f, 0x16, 0xd1, - 0xad, 0x4c, 0x52, 0xc3, 0x91, 0x13, 0x52, 0x31, 0x35, 0xba, 0x13, 0x68, 0x31, 0x02, 0xfc, 0xc6, - 0x58, 0x94, 0x0a, 0x5a, 0x95, 0xba, 0x43, 0x4a, 0x74, 0xfc, 0xc6, 0xd8, 0x4e, 0x35, 0x6c, 0x50, - 0x0a, 0xf2, 0x92, 0x41, 0x8b, 0xd3, 0x23, 0x15, 0xa6, 0x08, 0xdd, 0x4c, 0x99, 0xbe, 0x26, 0x3e, - 0x19, 0xe8, 0xd3, 0x49, 0x4a, 0xc7, 0x37, 0xa4, 0x39, 0x8c, 0xbe, 0x9a, 0x6a, 0x90, 0x0c, 0x7b, - 0x97, 0xcf, 0xb0, 0xe4, 0x89, 0xb9, 0x19, 0x52, 0xe6, 0xd0, 0xa1, 0x19, 0x1f, 0xfa, 0xf2, 0xaa, - 0x65, 0x48, 0xc9, 0x72, 0x71, 0x35, 0xd0, 0x45, 0x96, 0xa8, 0xe1, 0x1e, 0xef, 0xdd, 0xc3, 0x01, - 0x5a, 0xa0, 0xfd, 0xf9, 0xe8, 0xe5, 0xc8, 0xd8, 0x1a, 0x64, 0xf4, 0xf1, 0x7c, 0x58, 0x8e, 0xab, - 0x2c, 0x33, 0xf2, 0x64, 0xc9, 0x76, 0xac, 0xc7, 0x31, 0xf7, 0x28, 0xf4, 0x51, 0xff, 0x31, 0x93, - 0xd0, 0xbf, 0xb9, 0xf2, 0xf6, 0x95, 0xd5, 0x27, 0x56, 0xe8, 0xeb, 0xfb, 0xd6, 0x36, 0x57, 0xd6, - 0xe9, 0x4b, 0xf8, 0xd6, 0x97, 0xe6, 0xd6, 0xd6, 0x37, 0x16, 0x8b, 0x6f, 0xcf, 0x44, 0xf1, 0xe6, - 0x72, 0x61, 0x71, 0x69, 0xa9, 0x5c, 0x98, 0x5b, 0x5c, 0x2a, 0x3d, 0x95, 0x31, 0x72, 0x27, 0xa0, - 0x8f, 0xca, 0x89, 0x0d, 0xbf, 0x75, 0xe0, 0x38, 0xd7, 0xf9, 0x22, 0x45, 0x7e, 0xe4, 0xbe, 0x68, - 0x42, 0xff, 0x5c, 0xa3, 0x81, 0x52, 0x81, 0x6b, 0x3e, 0x01, 0xc3, 0xf4, 0xc9, 0xff, 0x8d, 0xe6, - 0x3c, 0x79, 0x5b, 0x18, 0x4e, 0x10, 0x11, 0xf6, 0xce, 0x65, 0x6f, 0xde, 0x8c, 0x7c, 0xaa, 0x83, - 0x96, 0x2a, 0x78, 0xd8, 0xd5, 0xdb, 0xcd, 0x0d, 0xc8, 0x70, 0xe2, 0x85, 0x46, 0xb3, 0xd2, 0xc6, - 0x7c, 0xa3, 0xec, 0x65, 0x5e, 0xc1, 0x7c, 0x39, 0x29, 0x65, 0x9b, 0x71, 0xb5, 0x66, 0xf3, 0x21, - 0x48, 0x2c, 0x3a, 0xed, 0xf3, 0x33, 0x98, 0x1b, 0x7f, 0xad, 0x7f, 0x27, 0x37, 0x4e, 0x42, 0xb9, - 0x24, 0xea, 0xec, 0x27, 0x43, 0x5f, 0x9c, 0xc5, 0xe8, 0x58, 0x37, 0x34, 0x21, 0xf1, 0xd0, 0xe4, - 0x27, 0x3e, 0x52, 0xd9, 0xe4, 0xac, 0xd8, 0x9b, 0xfc, 0x4f, 0xfb, 0xc0, 0x05, 0x0d, 0xc5, 0x0f, - 0x1c, 0x88, 0xe1, 0x19, 0x03, 0x3a, 0x7e, 0x5f, 0x57, 0x06, 0x92, 0x00, 0x84, 0x81, 0x90, 0x60, - 0x5d, 0x48, 0xd0, 0x1f, 0xc8, 0x60, 0x5d, 0x93, 0xc0, 0x95, 0x25, 0x58, 0x17, 0x12, 0x24, 0xba, - 0x32, 0x90, 0x25, 0x70, 0x85, 0x04, 0x05, 0x80, 0x85, 0xfa, 0x35, 0xbb, 0x46, 0x45, 0xa0, 0x2f, - 0xfd, 0xcf, 0xf9, 0x70, 0xf0, 0x88, 0x28, 0x0b, 0xd8, 0x16, 0x0d, 0x66, 0x09, 0x92, 0xeb, 0xde, - 0x4f, 0x96, 0x3e, 0xee, 0xf2, 0x13, 0x63, 0x5b, 0xe3, 0x92, 0x74, 0x25, 0x36, 0x5c, 0x14, 0x3a, - 0x99, 0x64, 0x77, 0x51, 0xa4, 0xd9, 0x50, 0x51, 0xe8, 0x74, 0x84, 0x28, 0x94, 0x49, 0x2a, 0x44, - 0x14, 0x89, 0x0b, 0x13, 0x85, 0xb2, 0x41, 0xc9, 0xb0, 0xd0, 0x6c, 0x62, 0x4a, 0x96, 0x95, 0x4e, - 0xfa, 0xb0, 0x60, 0x14, 0x2c, 0x19, 0x6e, 0xd1, 0x5f, 0xc4, 0x22, 0xc4, 0xc9, 0x31, 0x38, 0x1d, - 0x6c, 0x11, 0x4e, 0xc3, 0x2d, 0xc2, 0x7f, 0xcb, 0x71, 0x46, 0x6e, 0x9b, 0xc4, 0x7c, 0x86, 0x42, - 0xe3, 0x8c, 0x93, 0x6a, 0x71, 0xc6, 0x9b, 0xcd, 0x77, 0xc0, 0x10, 0x27, 0xc5, 0xe9, 0x09, 0x33, - 0xcd, 0xb0, 0xff, 0x2d, 0x4a, 0x30, 0x53, 0x46, 0x49, 0x79, 0x0e, 0xb9, 0x6a, 0xab, 0xb9, 0x02, - 0x69, 0x4e, 0xb8, 0xec, 0x92, 0xe9, 0x0e, 0xb3, 0x77, 0x95, 0x07, 0x73, 0xa4, 0x84, 0x94, 0x61, - 0xda, 0x55, 0x1a, 0xc7, 0xe6, 0x61, 0xd4, 0x3f, 0x1b, 0xc9, 0xe9, 0x77, 0x80, 0xa6, 0xdf, 0x11, - 0x39, 0xfd, 0x46, 0xe4, 0xf4, 0x5d, 0x84, 0x63, 0xbe, 0xb9, 0x27, 0x8c, 0x49, 0x54, 0x66, 0xf2, - 0x20, 0x0c, 0x2a, 0x29, 0x47, 0x06, 0xc7, 0x7d, 0xc0, 0xf1, 0x4e, 0xb0, 0xe7, 0x5a, 0x3e, 0xab, - 0x87, 0x02, 0x36, 0x64, 0xf0, 0x43, 0x90, 0x56, 0xf3, 0x8d, 0x8c, 0x1e, 0xf4, 0x41, 0x0f, 0xfa, - 0xa0, 0xfd, 0xc7, 0x8e, 0xf9, 0xa0, 0x63, 0x1a, 0x7a, 0x3d, 0x70, 0xec, 0x61, 0x1f, 0xf4, 0xb0, - 0x0f, 0xda, 0x7f, 0x6c, 0xd3, 0x07, 0x6d, 0xca, 0xe8, 0x87, 0x61, 0x48, 0x4b, 0x31, 0x32, 0xbc, - 0xdf, 0x07, 0xde, 0x2f, 0xc3, 0x1f, 0x41, 0x41, 0xb3, 0x1d, 0x8c, 0x1f, 0xf2, 0xc1, 0x0f, 0xf9, - 0x0d, 0xef, 0x2f, 0x7d, 0x9f, 0x0f, 0xbc, 0xcf, 0x77, 0x78, 0x7f, 0x7c, 0xc6, 0x07, 0x9f, 0x91, - 0xf1, 0x79, 0x48, 0xc9, 0xd9, 0x44, 0xc6, 0x26, 0x7c, 0xb0, 0x09, 0x5d, 0xef, 0x4a, 0x32, 0x09, - 0xf3, 0xf4, 0x81, 0x80, 0x70, 0x51, 0x52, 0x48, 0x18, 0x93, 0x94, 0xcc, 0xe4, 0x71, 0x18, 0xf1, - 0x4b, 0x19, 0x3e, 0x3c, 0x26, 0x64, 0x1e, 0x69, 0x5c, 0x23, 0x7a, 0xc5, 0x5e, 0x65, 0x5f, 0x2b, - 0x9c, 0xc6, 0x9e, 0x86, 0xa3, 0x3e, 0x89, 0xc3, 0x87, 0xed, 0x94, 0x5a, 0x8d, 0x65, 0x25, 0xb6, - 0x24, 0x09, 0x20, 0x16, 0x6b, 0x4d, 0xe4, 0x9c, 0x72, 0x55, 0xf6, 0xe5, 0xa3, 0x90, 0x66, 0xe9, - 0x69, 0xb5, 0x55, 0xb3, 0x5b, 0xa8, 0xba, 0xfa, 0x7f, 0xc1, 0xb5, 0xd3, 0x74, 0x67, 0x52, 0x63, - 0xa8, 0x43, 0x94, 0x50, 0x4f, 0x07, 0x96, 0x50, 0x67, 0xc3, 0xd9, 0x87, 0x55, 0x52, 0xc5, 0x8e, - 0x4a, 0xea, 0x9e, 0x60, 0xa6, 0x41, 0x05, 0x55, 0xb1, 0xa3, 0xa0, 0xea, 0xce, 0xc4, 0xb7, 0xae, - 0x5a, 0xe8, 0xac, 0xab, 0x26, 0x82, 0xb9, 0x04, 0x97, 0x57, 0x0b, 0x9d, 0xe5, 0x55, 0x08, 0x1f, - 0xff, 0x2a, 0x6b, 0xa1, 0xb3, 0xca, 0xea, 0xc2, 0x27, 0xb8, 0xd8, 0x5a, 0xe8, 0x2c, 0xb6, 0x42, - 0xf8, 0xf8, 0xd7, 0x5c, 0x8b, 0x3e, 0x35, 0xd7, 0xbd, 0xc1, 0x8c, 0xba, 0x95, 0x5e, 0x4b, 0x7e, - 0xa5, 0xd7, 0x64, 0x17, 0xa1, 0xba, 0x56, 0x60, 0x8b, 0x3e, 0x15, 0x58, 0x98, 0x60, 0x01, 0x85, - 0xd8, 0x92, 0x5f, 0x21, 0x16, 0x2a, 0x58, 0x50, 0x3d, 0xf6, 0x7f, 0xf4, 0x7a, 0x6c, 0x3c, 0x98, - 0x93, 0x7f, 0x59, 0xb6, 0xd0, 0x59, 0x96, 0x4d, 0x84, 0xc5, 0x9c, 0x5f, 0x75, 0xf6, 0x74, 0x60, - 0x75, 0xd6, 0x43, 0x08, 0x87, 0x15, 0x69, 0x4f, 0x06, 0x15, 0x69, 0x53, 0xe1, 0xbc, 0xbb, 0xd7, - 0x6a, 0x9b, 0x01, 0xb5, 0xda, 0xfd, 0xe1, 0x8c, 0xdf, 0x2a, 0xd9, 0xde, 0x2a, 0xd9, 0xde, 0x2a, - 0xd9, 0xde, 0x2a, 0xd9, 0xde, 0xfc, 0x92, 0x2d, 0x1f, 0xfb, 0xd0, 0x8b, 0x27, 0x23, 0xb9, 0x7f, - 0x32, 0xc4, 0xff, 0xbf, 0x05, 0x1f, 0x12, 0xe1, 0xf4, 0xb6, 0x0c, 0x29, 0xf2, 0xce, 0xfa, 0xbd, - 0xca, 0xfe, 0x3e, 0xfe, 0xbf, 0x3a, 0x45, 0x3a, 0x96, 0x1b, 0x15, 0x40, 0xde, 0xfa, 0xbf, 0x4c, - 0x89, 0xd9, 0x72, 0xe3, 0x78, 0x2d, 0xe6, 0x55, 0x48, 0xee, 0xb9, 0x3b, 0x82, 0x5b, 0xb4, 0x63, - 0x21, 0xd4, 0xb8, 0xd1, 0x99, 0x7a, 0xcc, 0x60, 0x4f, 0x34, 0x60, 0xd1, 0xb6, 0x90, 0x95, 0x04, - 0x33, 0x23, 0x4c, 0x34, 0x6c, 0x53, 0x55, 0xb4, 0x2d, 0xaf, 0x05, 0xbb, 0xad, 0x2e, 0x7b, 0x58, - 0xa6, 0x53, 0x9c, 0xe7, 0x09, 0x18, 0xd2, 0xa4, 0xf5, 0x89, 0xf9, 0x9b, 0xb0, 0x0d, 0x16, 0x4c, - 0x97, 0x3c, 0x2c, 0x26, 0x64, 0x87, 0xcc, 0xdd, 0x09, 0x83, 0x0a, 0x6f, 0x33, 0x05, 0x91, 0x6d, - 0xf6, 0xcc, 0x5e, 0x64, 0x1b, 0x3f, 0x26, 0x9d, 0x64, 0x07, 0xd6, 0x6b, 0x95, 0x7a, 0xcb, 0x7c, - 0x0c, 0xc8, 0x53, 0x31, 0xec, 0x50, 0xfe, 0xe6, 0x9e, 0xd1, 0xa4, 0xcf, 0xd5, 0x2c, 0x00, 0x7d, - 0x68, 0xe6, 0xe6, 0x1f, 0x32, 0xa5, 0xcf, 0xdc, 0xdc, 0x88, 0xc0, 0x30, 0xbb, 0x9f, 0xd2, 0x65, - 0x77, 0xd9, 0xa2, 0x15, 0xf2, 0x8b, 0x11, 0x18, 0x10, 0xbf, 0xcc, 0x2d, 0x48, 0x8b, 0x1f, 0xf4, - 0x4e, 0x6e, 0xea, 0xa9, 0x79, 0x49, 0xc3, 0x1d, 0x3c, 0xa6, 0x7c, 0xbe, 0xd1, 0x63, 0x2c, 0xba, - 0x26, 0x3b, 0x4a, 0xe3, 0xd8, 0x1c, 0x1c, 0xf5, 0x21, 0x3b, 0xcc, 0x82, 0x3c, 0x79, 0x1a, 0xfa, - 0x59, 0x68, 0xe3, 0x63, 0xc3, 0x65, 0x7c, 0xec, 0x88, 0xff, 0xe2, 0xa3, 0x4c, 0xfc, 0xb7, 0x98, - 0x89, 0x16, 0x96, 0x6e, 0xe2, 0x28, 0xe9, 0xc8, 0x2b, 0xe8, 0xa3, 0x1d, 0x25, 0x45, 0xf0, 0x51, - 0xd2, 0x56, 0x1f, 0x9d, 0xfb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x77, 0x4b, 0xc0, 0x7e, - 0x79, 0x00, 0x00, + // 7856 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0xb8, 0x16, 0x87, 0xc3, 0x21, 0xe7, 0x82, 0xb1, 0xa4, 0x00, 0x20, 0x38, 0xe2, + 0x98, 0x04, 0xe9, 0x26, 0x69, 0x69, 0xd6, 0xa9, 0xa0, 0x9a, 0xc0, 0x21, 0xd9, 0x12, 0xd0, 0x8d, + 0x45, 0x37, 0x24, 0xd1, 0x0f, 0x29, 0x65, 0x9d, 0x6c, 0xbc, 0x49, 0xe5, 0xba, 0x49, 0xc5, 0xeb, + 0xf8, 0x22, 0x6f, 0x6a, 0x63, 0xef, 0x6e, 0x2e, 0x5e, 0x67, 0xe3, 0x6c, 0x6d, 0xa5, 0xb2, 0xca, + 0x83, 0x93, 0xc9, 0x4b, 0x4a, 0x9b, 0xbc, 0xa4, 0x5c, 0x29, 0x95, 0x35, 0x72, 0x55, 0x9c, 0xac, + 0x93, 0x78, 0xb3, 0xae, 0xda, 0xad, 0xf2, 0x3e, 0xa4, 0xce, 0xad, 0xbb, 0xcf, 0x41, 0x03, 0x0d, + 0x8e, 0x24, 0x7b, 0x1f, 0xfc, 0x32, 0x83, 0x3e, 0xe7, 0xff, 0xbe, 0xfe, 0xfb, 0xbf, 0x9d, 0xbf, + 0x4f, 0x37, 0x40, 0x78, 0x7f, 0x0d, 0x2e, 0x1c, 0x3b, 0xce, 0x71, 0x03, 0x5d, 0x69, 0xb5, 0x1d, + 0xcf, 0x39, 0xec, 0x1c, 0x5d, 0xa9, 0x23, 0xb7, 0xd6, 0xb6, 0x5a, 0x9e, 0xd3, 0x5e, 0x22, 0x63, + 0xfa, 0x24, 0x95, 0x58, 0xe2, 0x12, 0xb9, 0x6d, 0x98, 0xda, 0xb0, 0x1a, 0x68, 0xdd, 0x17, 0xdc, + 0x43, 0x9e, 0x7e, 0x13, 0x92, 0x47, 0x56, 0x03, 0x65, 0x95, 0x0b, 0xea, 0x42, 0x7a, 0xe5, 0xd2, + 0x92, 0x04, 0x5a, 0x12, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x92, 0x30, 0x1d, 0x31, + 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, + 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, + 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x46, 0x68, 0x44, 0xff, 0x39, + 0x98, 0x6a, 0x75, 0x0e, 0x1b, 0x56, 0xad, 0x1a, 0x12, 0x83, 0x0b, 0xea, 0xc2, 0xb0, 0xa1, 0xd1, + 0x89, 0xf5, 0x40, 0xf8, 0x69, 0x98, 0x7c, 0x1d, 0x99, 0xaf, 0x86, 0x45, 0xd3, 0x44, 0x74, 0x02, + 0x0f, 0x87, 0x04, 0x4b, 0x90, 0x69, 0x22, 0xd7, 0x35, 0x8f, 0x51, 0xd5, 0x3b, 0x6d, 0xa1, 0x6c, + 0x92, 0x5c, 0xfd, 0x85, 0xae, 0xab, 0x97, 0xaf, 0x3c, 0xcd, 0x50, 0xfb, 0xa7, 0x2d, 0xa4, 0x17, + 0x60, 0x0c, 0xd9, 0x9d, 0x26, 0x65, 0x18, 0xee, 0x61, 0xbf, 0xb2, 0xdd, 0x69, 0xca, 0x2c, 0x29, + 0x0c, 0x63, 0x14, 0xa3, 0x2e, 0x6a, 0xbf, 0x66, 0xd5, 0x50, 0x76, 0x84, 0x10, 0x3c, 0xdd, 0x45, + 0xb0, 0x47, 0xe7, 0x65, 0x0e, 0x8e, 0xd3, 0x4b, 0x30, 0x86, 0xde, 0xf0, 0x90, 0xed, 0x5a, 0x8e, + 0x9d, 0x1d, 0x25, 0x24, 0x4f, 0x45, 0x78, 0x11, 0x35, 0xea, 0x32, 0x45, 0x80, 0xd3, 0xaf, 0xc3, + 0xa8, 0xd3, 0xf2, 0x2c, 0xc7, 0x76, 0xb3, 0xa9, 0x0b, 0xca, 0x42, 0x7a, 0xe5, 0x7c, 0x64, 0x20, + 0xec, 0x50, 0x19, 0x83, 0x0b, 0xeb, 0x9b, 0xa0, 0xb9, 0x4e, 0xa7, 0x5d, 0x43, 0xd5, 0x9a, 0x53, + 0x47, 0x55, 0xcb, 0x3e, 0x72, 0xb2, 0x63, 0x84, 0x60, 0xbe, 0xfb, 0x42, 0x88, 0x60, 0xc9, 0xa9, + 0xa3, 0x4d, 0xfb, 0xc8, 0x31, 0x26, 0x5c, 0xe1, 0x58, 0x9f, 0x81, 0x11, 0xf7, 0xd4, 0xf6, 0xcc, + 0x37, 0xb2, 0x19, 0x12, 0x21, 0xec, 0x28, 0xf7, 0x27, 0xc3, 0x30, 0x39, 0x48, 0x88, 0xdd, 0x86, + 0xe1, 0x23, 0x7c, 0x95, 0xd9, 0xc4, 0x59, 0x6c, 0x40, 0x31, 0xa2, 0x11, 0x47, 0x1e, 0xd2, 0x88, + 0x05, 0x48, 0xdb, 0xc8, 0xf5, 0x50, 0x9d, 0x46, 0x84, 0x3a, 0x60, 0x4c, 0x01, 0x05, 0x75, 0x87, + 0x54, 0xf2, 0xa1, 0x42, 0xea, 0x65, 0x98, 0xf4, 0x55, 0xaa, 0xb6, 0x4d, 0xfb, 0x98, 0xc7, 0xe6, + 0x95, 0x38, 0x4d, 0x96, 0xca, 0x1c, 0x67, 0x60, 0x98, 0x31, 0x81, 0x84, 0x63, 0x7d, 0x1d, 0xc0, + 0xb1, 0x91, 0x73, 0x54, 0xad, 0xa3, 0x5a, 0x23, 0x9b, 0xea, 0x61, 0xa5, 0x1d, 0x2c, 0xd2, 0x65, + 0x25, 0x87, 0x8e, 0xd6, 0x1a, 0xfa, 0xad, 0x20, 0xd4, 0x46, 0x7b, 0x44, 0xca, 0x36, 0x4d, 0xb2, + 0xae, 0x68, 0x3b, 0x80, 0x89, 0x36, 0xc2, 0x71, 0x8f, 0xea, 0xec, 0xca, 0xc6, 0x88, 0x12, 0x4b, + 0xb1, 0x57, 0x66, 0x30, 0x18, 0xbd, 0xb0, 0xf1, 0x76, 0xf8, 0x50, 0x7f, 0x12, 0xfc, 0x81, 0x2a, + 0x09, 0x2b, 0x20, 0x55, 0x28, 0xc3, 0x07, 0x2b, 0x66, 0x13, 0xcd, 0xde, 0x84, 0x09, 0xd1, 0x3c, + 0xfa, 0x39, 0x18, 0x76, 0x3d, 0xb3, 0xed, 0x91, 0x28, 0x1c, 0x36, 0xe8, 0x81, 0xae, 0x81, 0x8a, + 0xec, 0x3a, 0xa9, 0x72, 0xc3, 0x06, 0xfe, 0x38, 0x7b, 0x03, 0xc6, 0x85, 0xd3, 0x0f, 0x0a, 0xcc, + 0x7d, 0x7e, 0x04, 0xce, 0x45, 0xc5, 0x5c, 0x64, 0xf8, 0xcf, 0xc0, 0x88, 0xdd, 0x69, 0x1e, 0xa2, + 0x76, 0x56, 0x25, 0x0c, 0xec, 0x48, 0x2f, 0xc0, 0x70, 0xc3, 0x3c, 0x44, 0x8d, 0x6c, 0xf2, 0x82, + 0xb2, 0x30, 0xb1, 0xf2, 0x73, 0x03, 0x45, 0xf5, 0xd2, 0x16, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x0f, + 0x49, 0x56, 0xe2, 0x30, 0xc3, 0xe2, 0x60, 0x0c, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0x1f, 0x87, 0x31, + 0xfc, 0x3f, 0xb5, 0xed, 0x08, 0xd1, 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x59, 0x48, 0x91, 0x30, + 0xab, 0x23, 0xbe, 0x34, 0xf8, 0xc7, 0xd8, 0x31, 0x75, 0x74, 0x64, 0x76, 0x1a, 0x5e, 0xf5, 0x35, + 0xb3, 0xd1, 0x41, 0x24, 0x60, 0xc6, 0x8c, 0x0c, 0x1b, 0xfc, 0x14, 0x1e, 0xd3, 0xe7, 0x21, 0x4d, + 0xa3, 0xd2, 0xb2, 0xeb, 0xe8, 0x0d, 0x52, 0x7d, 0x86, 0x0d, 0x1a, 0xa8, 0x9b, 0x78, 0x04, 0x9f, + 0xfe, 0x15, 0xd7, 0xb1, 0xb9, 0x6b, 0xc9, 0x29, 0xf0, 0x00, 0x39, 0xfd, 0x0d, 0xb9, 0xf0, 0x3d, + 0x11, 0x7d, 0x79, 0x72, 0x2c, 0xe6, 0xbe, 0x95, 0x80, 0x24, 0xc9, 0xb7, 0x49, 0x48, 0xef, 0xdf, + 0xdb, 0x2d, 0x57, 0xd7, 0x77, 0x0e, 0x8a, 0x5b, 0x65, 0x4d, 0xd1, 0x27, 0x00, 0xc8, 0xc0, 0xc6, + 0xd6, 0x4e, 0x61, 0x5f, 0x4b, 0xf8, 0xc7, 0x9b, 0x95, 0xfd, 0xeb, 0xab, 0x9a, 0xea, 0x03, 0x0e, + 0xe8, 0x40, 0x32, 0x2c, 0x70, 0x6d, 0x45, 0x1b, 0xd6, 0x35, 0xc8, 0x50, 0x82, 0xcd, 0x97, 0xcb, + 0xeb, 0xd7, 0x57, 0xb5, 0x11, 0x71, 0xe4, 0xda, 0x8a, 0x36, 0xaa, 0x8f, 0xc3, 0x18, 0x19, 0x29, + 0xee, 0xec, 0x6c, 0x69, 0x29, 0x9f, 0x73, 0x6f, 0xdf, 0xd8, 0xac, 0xdc, 0xd1, 0xc6, 0x7c, 0xce, + 0x3b, 0xc6, 0xce, 0xc1, 0xae, 0x06, 0x3e, 0xc3, 0x76, 0x79, 0x6f, 0xaf, 0x70, 0xa7, 0xac, 0xa5, + 0x7d, 0x89, 0xe2, 0xbd, 0xfd, 0xf2, 0x9e, 0x96, 0x11, 0xd4, 0xba, 0xb6, 0xa2, 0x8d, 0xfb, 0xa7, + 0x28, 0x57, 0x0e, 0xb6, 0xb5, 0x09, 0x7d, 0x0a, 0xc6, 0xe9, 0x29, 0xb8, 0x12, 0x93, 0xd2, 0xd0, + 0xf5, 0x55, 0x4d, 0x0b, 0x14, 0xa1, 0x2c, 0x53, 0xc2, 0xc0, 0xf5, 0x55, 0x4d, 0xcf, 0x95, 0x60, + 0x98, 0x44, 0x97, 0xae, 0xc3, 0xc4, 0x56, 0xa1, 0x58, 0xde, 0xaa, 0xee, 0xec, 0xee, 0x6f, 0xee, + 0x54, 0x0a, 0x5b, 0x9a, 0x12, 0x8c, 0x19, 0xe5, 0x4f, 0x1e, 0x6c, 0x1a, 0xe5, 0x75, 0x2d, 0x11, + 0x1e, 0xdb, 0x2d, 0x17, 0xf6, 0xcb, 0xeb, 0x9a, 0x9a, 0xab, 0xc1, 0xb9, 0xa8, 0x3a, 0x13, 0x99, + 0x19, 0x21, 0x17, 0x27, 0x7a, 0xb8, 0x98, 0x70, 0x75, 0xb9, 0xf8, 0xd7, 0x14, 0x98, 0x8e, 0xa8, + 0xb5, 0x91, 0x27, 0x79, 0x01, 0x86, 0x69, 0x88, 0xd2, 0xd5, 0xe7, 0x99, 0xc8, 0xa2, 0x4d, 0x02, + 0xb6, 0x6b, 0x05, 0x22, 0xb8, 0xf0, 0x0a, 0xac, 0xf6, 0x58, 0x81, 0x31, 0x45, 0x97, 0x92, 0x9f, + 0x55, 0x20, 0xdb, 0x8b, 0x3b, 0xa6, 0x50, 0x24, 0x84, 0x42, 0x71, 0x5b, 0x56, 0xe0, 0x62, 0xef, + 0x6b, 0xe8, 0xd2, 0xe2, 0x6b, 0x0a, 0xcc, 0x44, 0x37, 0x2a, 0x91, 0x3a, 0x3c, 0x0f, 0x23, 0x4d, + 0xe4, 0x9d, 0x38, 0x7c, 0xb1, 0xbe, 0x1c, 0xb1, 0x04, 0xe0, 0x69, 0xd9, 0x56, 0x0c, 0x15, 0x5e, + 0x43, 0xd4, 0x5e, 0xdd, 0x06, 0xd5, 0xa6, 0x4b, 0xd3, 0x5f, 0x4e, 0xc0, 0x23, 0x91, 0xe4, 0x91, + 0x8a, 0x3e, 0x01, 0x60, 0xd9, 0xad, 0x8e, 0x47, 0x17, 0x64, 0x5a, 0x9f, 0xc6, 0xc8, 0x08, 0xc9, + 0x7d, 0x5c, 0x7b, 0x3a, 0x9e, 0x3f, 0xaf, 0x92, 0x79, 0xa0, 0x43, 0x44, 0xe0, 0x66, 0xa0, 0x68, + 0x92, 0x28, 0x3a, 0xd7, 0xe3, 0x4a, 0xbb, 0xd6, 0xba, 0x65, 0xd0, 0x6a, 0x0d, 0x0b, 0xd9, 0x5e, + 0xd5, 0xf5, 0xda, 0xc8, 0x6c, 0x5a, 0xf6, 0x31, 0x29, 0xc0, 0xa9, 0xfc, 0xf0, 0x91, 0xd9, 0x70, + 0x91, 0x31, 0x49, 0xa7, 0xf7, 0xf8, 0x2c, 0x46, 0x90, 0x55, 0xa6, 0x1d, 0x42, 0x8c, 0x08, 0x08, + 0x3a, 0xed, 0x23, 0x72, 0xbf, 0x35, 0x0a, 0xe9, 0x50, 0x5b, 0xa7, 0x5f, 0x84, 0xcc, 0x2b, 0xe6, + 0x6b, 0x66, 0x95, 0xb7, 0xea, 0xd4, 0x12, 0x69, 0x3c, 0xb6, 0xcb, 0xda, 0xf5, 0x65, 0x38, 0x47, + 0x44, 0x9c, 0x8e, 0x87, 0xda, 0xd5, 0x5a, 0xc3, 0x74, 0x5d, 0x62, 0xb4, 0x14, 0x11, 0xd5, 0xf1, + 0xdc, 0x0e, 0x9e, 0x2a, 0xf1, 0x19, 0x7d, 0x0d, 0xa6, 0x09, 0xa2, 0xd9, 0x69, 0x78, 0x56, 0xab, + 0x81, 0xaa, 0xf8, 0xe6, 0xc1, 0x25, 0x85, 0xd8, 0xd7, 0x6c, 0x0a, 0x4b, 0x6c, 0x33, 0x01, 0xac, + 0x91, 0xab, 0xaf, 0xc3, 0x13, 0x04, 0x76, 0x8c, 0x6c, 0xd4, 0x36, 0x3d, 0x54, 0x45, 0xbf, 0xd0, + 0x31, 0x1b, 0x6e, 0xd5, 0xb4, 0xeb, 0xd5, 0x13, 0xd3, 0x3d, 0xc9, 0x9e, 0xc3, 0x04, 0xc5, 0x44, + 0x56, 0x31, 0x1e, 0xc3, 0x82, 0x77, 0x98, 0x5c, 0x99, 0x88, 0x15, 0xec, 0xfa, 0x8b, 0xa6, 0x7b, + 0xa2, 0xe7, 0x61, 0x86, 0xb0, 0xb8, 0x5e, 0xdb, 0xb2, 0x8f, 0xab, 0xb5, 0x13, 0x54, 0x7b, 0xb5, + 0xda, 0xf1, 0x8e, 0x6e, 0x66, 0x1f, 0x0f, 0x9f, 0x9f, 0x68, 0xb8, 0x47, 0x64, 0x4a, 0x58, 0xe4, + 0xc0, 0x3b, 0xba, 0xa9, 0xef, 0x41, 0x06, 0x3b, 0xa3, 0x69, 0x7d, 0x06, 0x55, 0x8f, 0x9c, 0x36, + 0x59, 0x59, 0x26, 0x22, 0x32, 0x3b, 0x64, 0xc1, 0xa5, 0x1d, 0x06, 0xd8, 0x76, 0xea, 0x28, 0x3f, + 0xbc, 0xb7, 0x5b, 0x2e, 0xaf, 0x1b, 0x69, 0xce, 0xb2, 0xe1, 0xb4, 0x71, 0x40, 0x1d, 0x3b, 0xbe, + 0x81, 0xd3, 0x34, 0xa0, 0x8e, 0x1d, 0x6e, 0xde, 0x35, 0x98, 0xae, 0xd5, 0xe8, 0x35, 0x5b, 0xb5, + 0x2a, 0x6b, 0xf1, 0xdd, 0xac, 0x26, 0x18, 0xab, 0x56, 0xbb, 0x43, 0x05, 0x58, 0x8c, 0xbb, 0xfa, + 0x2d, 0x78, 0x24, 0x30, 0x56, 0x18, 0x38, 0xd5, 0x75, 0x95, 0x32, 0x74, 0x0d, 0xa6, 0x5b, 0xa7, + 0xdd, 0x40, 0x5d, 0x38, 0x63, 0xeb, 0x54, 0x86, 0x3d, 0x45, 0x6e, 0xdb, 0xda, 0xa8, 0x66, 0x7a, + 0xa8, 0x9e, 0x7d, 0x34, 0x2c, 0x1d, 0x9a, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, + 0x36, 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0x61, 0xe1, 0x89, 0x5a, 0xad, 0x4c, 0x66, + 0x0b, 0x64, 0x52, 0x5f, 0x84, 0x29, 0xe7, 0xf0, 0x95, 0x1a, 0x8d, 0xac, 0x6a, 0xab, 0x8d, 0x8e, + 0xac, 0x37, 0xb2, 0x97, 0x88, 0x99, 0x26, 0xf1, 0x04, 0x89, 0xab, 0x5d, 0x32, 0xac, 0x3f, 0x03, + 0x5a, 0xcd, 0x3d, 0x31, 0xdb, 0x2d, 0xb2, 0xb4, 0xbb, 0x2d, 0xb3, 0x86, 0xb2, 0x4f, 0x51, 0x51, + 0x3a, 0x5e, 0xe1, 0xc3, 0x38, 0xb2, 0xdd, 0xd7, 0xad, 0x23, 0x8f, 0x33, 0x3e, 0x4d, 0x23, 0x9b, + 0x8c, 0x31, 0xb6, 0x97, 0xe1, 0x5c, 0xc7, 0xb6, 0x6c, 0x0f, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, + 0x9a, 0x89, 0xd9, 0xff, 0x31, 0xda, 0xa3, 0x0d, 0x3f, 0x08, 0x4b, 0xd3, 0x00, 0x30, 0xa6, 0x3b, + 0xdd, 0x83, 0xb9, 0x3c, 0x64, 0xc2, 0x71, 0xa1, 0x8f, 0x01, 0x8d, 0x0c, 0x4d, 0xc1, 0x6b, 0x6c, + 0x69, 0x67, 0x1d, 0xaf, 0x8e, 0x3f, 0x5f, 0xd6, 0x12, 0x78, 0x95, 0xde, 0xda, 0xdc, 0x2f, 0x57, + 0x8d, 0x83, 0xca, 0xfe, 0xe6, 0x76, 0x59, 0x53, 0x17, 0xc7, 0x52, 0xdf, 0x1f, 0xd5, 0xde, 0x7c, + 0xf3, 0xcd, 0x37, 0x13, 0xb9, 0x6f, 0x27, 0x60, 0x42, 0xec, 0x8c, 0xf5, 0x8f, 0xc3, 0xa3, 0xfc, + 0x36, 0xd6, 0x45, 0x5e, 0xf5, 0x75, 0xab, 0x4d, 0x42, 0xb5, 0x69, 0xd2, 0xde, 0xd2, 0xb7, 0xf2, + 0x39, 0x26, 0xb5, 0x87, 0xbc, 0x97, 0xac, 0x36, 0x0e, 0xc4, 0xa6, 0xe9, 0xe9, 0x5b, 0x30, 0x6f, + 0x3b, 0x55, 0xd7, 0x33, 0xed, 0xba, 0xd9, 0xae, 0x57, 0x83, 0x0d, 0x84, 0xaa, 0x59, 0xab, 0x21, + 0xd7, 0x75, 0xe8, 0x12, 0xe1, 0xb3, 0x9c, 0xb7, 0x9d, 0x3d, 0x26, 0x1c, 0xd4, 0xce, 0x02, 0x13, + 0x95, 0x22, 0x42, 0xed, 0x15, 0x11, 0x8f, 0xc3, 0x58, 0xd3, 0x6c, 0x55, 0x91, 0xed, 0xb5, 0x4f, + 0x49, 0x3f, 0x97, 0x32, 0x52, 0x4d, 0xb3, 0x55, 0xc6, 0xc7, 0x1f, 0x9d, 0x0f, 0xc2, 0x76, 0xfc, + 0xef, 0x2a, 0x64, 0xc2, 0x3d, 0x1d, 0x6e, 0x91, 0x6b, 0xa4, 0x7e, 0x2b, 0x24, 0xc3, 0x9f, 0xec, + 0xdb, 0x01, 0x2e, 0x95, 0x70, 0x61, 0xcf, 0x8f, 0xd0, 0x4e, 0xcb, 0xa0, 0x48, 0xbc, 0xa8, 0xe2, + 0x9c, 0x46, 0xb4, 0x7f, 0x4f, 0x19, 0xec, 0x48, 0xbf, 0x03, 0x23, 0xaf, 0xb8, 0x84, 0x7b, 0x84, + 0x70, 0x5f, 0xea, 0xcf, 0x7d, 0x77, 0x8f, 0x90, 0x8f, 0xdd, 0xdd, 0xab, 0x56, 0x76, 0x8c, 0xed, + 0xc2, 0x96, 0xc1, 0xe0, 0xfa, 0x63, 0x90, 0x6c, 0x98, 0x9f, 0x39, 0x15, 0x97, 0x00, 0x32, 0x34, + 0xa8, 0xe1, 0x1f, 0x83, 0xe4, 0xeb, 0xc8, 0x7c, 0x55, 0x2c, 0xbc, 0x64, 0xe8, 0x23, 0x0c, 0xfd, + 0x2b, 0x30, 0x4c, 0xec, 0xa5, 0x03, 0x30, 0x8b, 0x69, 0x43, 0x7a, 0x0a, 0x92, 0xa5, 0x1d, 0x03, + 0x87, 0xbf, 0x06, 0x19, 0x3a, 0x5a, 0xdd, 0xdd, 0x2c, 0x97, 0xca, 0x5a, 0x22, 0xb7, 0x06, 0x23, + 0xd4, 0x08, 0x38, 0x35, 0x7c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c, 0xf6, 0x60, 0xbb, + 0x58, 0x36, 0xb4, 0x44, 0xd8, 0xbd, 0x2e, 0x64, 0xc2, 0xed, 0xdc, 0x4f, 0x26, 0xa6, 0x7e, 0x4f, + 0x81, 0x74, 0xa8, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0x38, 0xaf, 0x57, 0xcd, 0x86, 0x65, 0xba, + 0x2c, 0x28, 0x80, 0x0c, 0x15, 0xf0, 0xc8, 0xa0, 0x4e, 0xfb, 0x89, 0x28, 0xff, 0x65, 0x05, 0x34, + 0xb9, 0xb5, 0x93, 0x14, 0x54, 0x7e, 0xaa, 0x0a, 0x7e, 0x51, 0x81, 0x09, 0xb1, 0x9f, 0x93, 0xd4, + 0xbb, 0xf8, 0x53, 0x55, 0xef, 0xbb, 0x09, 0x18, 0x17, 0xba, 0xb8, 0x41, 0xb5, 0xfb, 0x05, 0x98, + 0xb2, 0xea, 0xa8, 0xd9, 0x72, 0x3c, 0x64, 0xd7, 0x4e, 0xab, 0x0d, 0xf4, 0x1a, 0x6a, 0x64, 0x73, + 0xa4, 0x50, 0x5c, 0xe9, 0xdf, 0x27, 0x2e, 0x6d, 0x06, 0xb8, 0x2d, 0x0c, 0xcb, 0x4f, 0x6f, 0xae, + 0x97, 0xb7, 0x77, 0x77, 0xf6, 0xcb, 0x95, 0xd2, 0xbd, 0xea, 0x41, 0xe5, 0x13, 0x95, 0x9d, 0x97, + 0x2a, 0x86, 0x66, 0x49, 0x62, 0x1f, 0x61, 0xaa, 0xef, 0x82, 0x26, 0x2b, 0xa5, 0x3f, 0x0a, 0x51, + 0x6a, 0x69, 0x43, 0xfa, 0x34, 0x4c, 0x56, 0x76, 0xaa, 0x7b, 0x9b, 0xeb, 0xe5, 0x6a, 0x79, 0x63, + 0xa3, 0x5c, 0xda, 0xdf, 0xa3, 0x37, 0xce, 0xbe, 0xf4, 0xbe, 0x98, 0xd4, 0x5f, 0x50, 0x61, 0x3a, + 0x42, 0x13, 0xbd, 0xc0, 0x7a, 0x76, 0x7a, 0x1b, 0xf1, 0xec, 0x20, 0xda, 0x2f, 0xe1, 0xae, 0x60, + 0xd7, 0x6c, 0x7b, 0xac, 0xc5, 0x7f, 0x06, 0xb0, 0x95, 0x6c, 0xcf, 0x3a, 0xb2, 0x50, 0x9b, 0xed, + 0x33, 0xd0, 0x46, 0x7e, 0x32, 0x18, 0xa7, 0x5b, 0x0d, 0x1f, 0x03, 0xbd, 0xe5, 0xb8, 0x96, 0x67, + 0xbd, 0x86, 0xaa, 0x96, 0xcd, 0x37, 0x25, 0x70, 0x63, 0x9f, 0x34, 0x34, 0x3e, 0xb3, 0x69, 0x7b, + 0xbe, 0xb4, 0x8d, 0x8e, 0x4d, 0x49, 0x1a, 0x17, 0x70, 0xd5, 0xd0, 0xf8, 0x8c, 0x2f, 0x7d, 0x11, + 0x32, 0x75, 0xa7, 0x83, 0xdb, 0x24, 0x2a, 0x87, 0xd7, 0x0b, 0xc5, 0x48, 0xd3, 0x31, 0x5f, 0x84, + 0xf5, 0xb1, 0xc1, 0x6e, 0x48, 0xc6, 0x48, 0xd3, 0x31, 0x2a, 0xf2, 0x34, 0x4c, 0x9a, 0xc7, 0xc7, + 0x6d, 0x4c, 0xce, 0x89, 0x68, 0x67, 0x3e, 0xe1, 0x0f, 0x13, 0xc1, 0xd9, 0xbb, 0x90, 0xe2, 0x76, + 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xb5, 0x45, 0xf7, 0xa4, 0x12, 0x0b, 0x63, 0x46, 0xca, 0xe6, 0x93, + 0x17, 0x21, 0x63, 0xb9, 0xd5, 0x60, 0x73, 0x34, 0x71, 0x21, 0xb1, 0x90, 0x32, 0xd2, 0x96, 0xeb, + 0xef, 0x86, 0xe5, 0xbe, 0x96, 0x80, 0x09, 0x71, 0x73, 0x57, 0x5f, 0x87, 0x54, 0xc3, 0xa9, 0x99, + 0x24, 0xb4, 0xe8, 0x93, 0x85, 0x85, 0x98, 0xfd, 0xe0, 0xa5, 0x2d, 0x26, 0x6f, 0xf8, 0xc8, 0xd9, + 0xff, 0xac, 0x40, 0x8a, 0x0f, 0xeb, 0x33, 0x90, 0x6c, 0x99, 0xde, 0x09, 0xa1, 0x1b, 0x2e, 0x26, + 0x34, 0xc5, 0x20, 0xc7, 0x78, 0xdc, 0x6d, 0x99, 0x36, 0x09, 0x01, 0x36, 0x8e, 0x8f, 0xb1, 0x5f, + 0x1b, 0xc8, 0xac, 0x93, 0xb6, 0xdf, 0x69, 0x36, 0x91, 0xed, 0xb9, 0xdc, 0xaf, 0x6c, 0xbc, 0xc4, + 0x86, 0xf5, 0x9f, 0x83, 0x29, 0xaf, 0x6d, 0x5a, 0x0d, 0x41, 0x36, 0x49, 0x64, 0x35, 0x3e, 0xe1, + 0x0b, 0xe7, 0xe1, 0x31, 0xce, 0x5b, 0x47, 0x9e, 0x59, 0x3b, 0x41, 0xf5, 0x00, 0x34, 0x42, 0x76, + 0x0e, 0x1f, 0x65, 0x02, 0xeb, 0x6c, 0x9e, 0x63, 0x73, 0x7f, 0xa0, 0xc0, 0x14, 0xbf, 0x51, 0xa9, + 0xfb, 0xc6, 0xda, 0x06, 0x30, 0x6d, 0xdb, 0xf1, 0xc2, 0xe6, 0xea, 0x0e, 0xe5, 0x2e, 0xdc, 0x52, + 0xc1, 0x07, 0x19, 0x21, 0x82, 0xd9, 0x26, 0x40, 0x30, 0xd3, 0xd3, 0x6c, 0xf3, 0x90, 0x66, 0x3b, + 0xf7, 0xe4, 0xf1, 0x0f, 0xbd, 0xb5, 0x05, 0x3a, 0x84, 0xef, 0x68, 0xf4, 0x73, 0x30, 0x7c, 0x88, + 0x8e, 0x2d, 0x9b, 0xed, 0x27, 0xd2, 0x03, 0xbe, 0x4b, 0x99, 0xf4, 0x77, 0x29, 0x8b, 0x2f, 0xc3, + 0x74, 0xcd, 0x69, 0xca, 0xea, 0x16, 0x35, 0xe9, 0xf6, 0xda, 0x7d, 0x51, 0xf9, 0x79, 0x08, 0x5a, + 0xcc, 0x5f, 0x4b, 0xa8, 0x77, 0x76, 0x8b, 0xbf, 0x99, 0x98, 0xbd, 0x43, 0x71, 0xbb, 0xfc, 0x32, + 0x0d, 0x74, 0xd4, 0x40, 0x35, 0xac, 0x3a, 0xfc, 0xf1, 0x65, 0x78, 0xf6, 0xd8, 0xf2, 0x4e, 0x3a, + 0x87, 0x4b, 0x35, 0xa7, 0x79, 0xe5, 0xd8, 0x39, 0x76, 0x82, 0xc7, 0x5d, 0xf8, 0x88, 0x1c, 0x90, + 0x4f, 0xec, 0x91, 0xd7, 0x98, 0x3f, 0x3a, 0x1b, 0xfb, 0x7c, 0x2c, 0x5f, 0x81, 0x69, 0x26, 0x5c, + 0x25, 0x7b, 0xee, 0xf4, 0xd6, 0x40, 0xef, 0xbb, 0xef, 0x92, 0xfd, 0xed, 0xef, 0x91, 0xb5, 0xda, + 0x98, 0x62, 0x50, 0x3c, 0x47, 0x6f, 0x20, 0xf2, 0x06, 0x3c, 0x22, 0xf0, 0xd1, 0xbc, 0x44, 0xed, + 0x18, 0xc6, 0x6f, 0x33, 0xc6, 0xe9, 0x10, 0xe3, 0x1e, 0x83, 0xe6, 0x4b, 0x30, 0x7e, 0x16, 0xae, + 0xff, 0xc0, 0xb8, 0x32, 0x28, 0x4c, 0x72, 0x07, 0x26, 0x09, 0x49, 0xad, 0xe3, 0x7a, 0x4e, 0x93, + 0x14, 0xbd, 0xfe, 0x34, 0xff, 0xf1, 0x7b, 0x34, 0x51, 0x26, 0x30, 0xac, 0xe4, 0xa3, 0xf2, 0x79, + 0x20, 0x8f, 0x19, 0xea, 0xa8, 0xd6, 0x88, 0x61, 0xb8, 0xcf, 0x14, 0xf1, 0xe5, 0xf3, 0x9f, 0x82, + 0x73, 0xf8, 0x33, 0xa9, 0x49, 0x61, 0x4d, 0xe2, 0x77, 0x99, 0xb2, 0x7f, 0xf0, 0x59, 0x9a, 0x8b, + 0xd3, 0x3e, 0x41, 0x48, 0xa7, 0x90, 0x17, 0x8f, 0x91, 0xe7, 0xa1, 0xb6, 0x5b, 0x35, 0x1b, 0x51, + 0xea, 0x85, 0x6e, 0xd3, 0xb3, 0xbf, 0xfa, 0x03, 0xd1, 0x8b, 0x77, 0x28, 0xb2, 0xd0, 0x68, 0xe4, + 0x0f, 0xe0, 0xd1, 0x88, 0xa8, 0x18, 0x80, 0xf3, 0x0b, 0x8c, 0xf3, 0x5c, 0x57, 0x64, 0x60, 0xda, + 0x5d, 0xe0, 0xe3, 0xbe, 0x2f, 0x07, 0xe0, 0xfc, 0xc7, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, + 0x78, 0x17, 0xa6, 0x5e, 0x43, 0xed, 0x43, 0xc7, 0x65, 0x5b, 0x23, 0x03, 0xd0, 0x7d, 0x91, 0xd1, + 0x4d, 0x32, 0x20, 0xd9, 0x2b, 0xc1, 0x5c, 0xb7, 0x20, 0x75, 0x64, 0xd6, 0xd0, 0x00, 0x14, 0x5f, + 0x62, 0x14, 0xa3, 0x58, 0x1e, 0x43, 0x0b, 0x90, 0x39, 0x76, 0xd8, 0xb2, 0x14, 0x0f, 0xff, 0x32, + 0x83, 0xa7, 0x39, 0x86, 0x51, 0xb4, 0x9c, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x78, 0x8a, 0xaf, 0x70, + 0x0a, 0x8e, 0x61, 0x14, 0x67, 0x30, 0xeb, 0x5b, 0x9c, 0xc2, 0x0d, 0xd9, 0xf3, 0x05, 0x48, 0x3b, + 0x76, 0xe3, 0xd4, 0xb1, 0x07, 0x51, 0xe2, 0xab, 0x8c, 0x01, 0x18, 0x04, 0x13, 0xdc, 0x86, 0xb1, + 0x41, 0x1d, 0xf1, 0xeb, 0x3f, 0xe0, 0xe9, 0xc1, 0x3d, 0x70, 0x07, 0x26, 0x79, 0x81, 0xb2, 0x1c, + 0x7b, 0x00, 0x8a, 0x7f, 0xca, 0x28, 0x26, 0x42, 0x30, 0x76, 0x19, 0x1e, 0x72, 0xbd, 0x63, 0x34, + 0x08, 0xc9, 0xd7, 0xf8, 0x65, 0x30, 0x08, 0x33, 0xe5, 0x21, 0xb2, 0x6b, 0x27, 0x83, 0x31, 0x7c, + 0x9d, 0x9b, 0x92, 0x63, 0x30, 0x45, 0x09, 0xc6, 0x9b, 0x66, 0xdb, 0x3d, 0x31, 0x1b, 0x03, 0xb9, + 0xe3, 0x37, 0x18, 0x47, 0xc6, 0x07, 0x31, 0x8b, 0x74, 0xec, 0xb3, 0xd0, 0xfc, 0x26, 0xb7, 0x48, + 0x08, 0xc6, 0x52, 0xcf, 0xf5, 0xc8, 0x06, 0xd4, 0x59, 0xd8, 0x7e, 0x8b, 0xa7, 0x1e, 0xc5, 0x6e, + 0x87, 0x19, 0x6f, 0xc3, 0x98, 0x6b, 0x7d, 0x66, 0x20, 0x9a, 0x7f, 0xc6, 0x3d, 0x4d, 0x00, 0x18, + 0x7c, 0x0f, 0x1e, 0x8b, 0x5c, 0x26, 0x06, 0x20, 0xfb, 0xe7, 0x8c, 0x6c, 0x26, 0x62, 0xa9, 0x60, + 0x25, 0xe1, 0xac, 0x94, 0xff, 0x82, 0x97, 0x04, 0x24, 0x71, 0xed, 0xe2, 0x1b, 0x05, 0xd7, 0x3c, + 0x3a, 0x9b, 0xd5, 0xfe, 0x25, 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x87, 0x19, 0xc6, 0x78, 0x36, + 0xbf, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0x3e, 0x10, 0xbd, 0xfb, 0x69, 0x98, 0xf5, 0xcd, 0xc9, 0x3b, + 0x52, 0xb7, 0xda, 0x34, 0x5b, 0x03, 0x30, 0xff, 0x36, 0x63, 0xe6, 0x15, 0xdf, 0x6f, 0x69, 0xdd, + 0x6d, 0xb3, 0x85, 0xc9, 0x5f, 0x86, 0x2c, 0x27, 0xef, 0xd8, 0x6d, 0x54, 0x73, 0x8e, 0x6d, 0xeb, + 0x33, 0xa8, 0x3e, 0x00, 0xf5, 0x37, 0x25, 0x57, 0x1d, 0x84, 0xe0, 0x98, 0x79, 0x13, 0x34, 0xbf, + 0x57, 0xa9, 0x5a, 0xcd, 0x96, 0xd3, 0xf6, 0x62, 0x18, 0xff, 0x15, 0xf7, 0x94, 0x8f, 0xdb, 0x24, + 0xb0, 0x7c, 0x19, 0x26, 0xc8, 0xe1, 0xa0, 0x21, 0xf9, 0x3b, 0x8c, 0x68, 0x3c, 0x40, 0xb1, 0xc2, + 0x51, 0x73, 0x9a, 0x2d, 0xb3, 0x3d, 0x48, 0xfd, 0xfb, 0xd7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, + 0xde, 0x69, 0x0b, 0xe1, 0xd5, 0x7e, 0x00, 0x86, 0x6f, 0xf1, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, + 0x0c, 0x03, 0x50, 0xfc, 0x1b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0x93, 0xc1, 0x42, 0xdb, 0x46, 0xc7, + 0x96, 0xeb, 0xb5, 0x69, 0x1f, 0xdc, 0x9f, 0xea, 0x77, 0x7f, 0x20, 0x36, 0x61, 0x46, 0x08, 0x9a, + 0xbf, 0x0b, 0x93, 0x52, 0x8b, 0xa1, 0xc7, 0xbd, 0xb3, 0x90, 0xfd, 0x2b, 0x3f, 0x62, 0xc5, 0x48, + 0xec, 0x30, 0xf2, 0x5b, 0xd8, 0xef, 0x62, 0x1f, 0x10, 0x4f, 0xf6, 0xd9, 0x1f, 0xf9, 0xae, 0x17, + 0xda, 0x80, 0xfc, 0x06, 0x8c, 0x0b, 0x3d, 0x40, 0x3c, 0xd5, 0x5f, 0x65, 0x54, 0x99, 0x70, 0x0b, + 0x90, 0x5f, 0x83, 0x24, 0x5e, 0xcf, 0xe3, 0xe1, 0x7f, 0x8d, 0xc1, 0x89, 0x78, 0xfe, 0x39, 0x48, + 0xf1, 0x75, 0x3c, 0x1e, 0xfa, 0x4b, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xaf, 0xe1, 0xf1, 0xf0, 0xbf, + 0xce, 0xe1, 0x1c, 0x82, 0xe1, 0x83, 0x9b, 0xf0, 0xed, 0xbf, 0x99, 0x64, 0x75, 0x98, 0xdb, 0xee, + 0x36, 0x8c, 0xb2, 0xc5, 0x3b, 0x1e, 0xfd, 0xcb, 0xec, 0xe4, 0x1c, 0x91, 0xbf, 0x01, 0xc3, 0x03, + 0x1a, 0xfc, 0x6f, 0x31, 0x28, 0x95, 0xcf, 0x97, 0x20, 0x1d, 0x5a, 0xb0, 0xe3, 0xe1, 0x7f, 0x9b, + 0xc1, 0xc3, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xe3, 0x09, 0xfe, 0x0e, 0x57, 0x9d, 0x21, 0xb0, 0xd9, + 0xf8, 0x5a, 0x1d, 0x8f, 0xfe, 0xbb, 0xdc, 0xea, 0x1c, 0x92, 0x7f, 0x01, 0xc6, 0xfc, 0xfa, 0x1b, + 0x8f, 0xff, 0x7b, 0x0c, 0x1f, 0x60, 0xb0, 0x05, 0x42, 0xf5, 0x3f, 0x9e, 0xe2, 0xef, 0x73, 0x0b, + 0x84, 0x50, 0x38, 0x8d, 0xe4, 0x35, 0x3d, 0x9e, 0xe9, 0x57, 0x78, 0x1a, 0x49, 0x4b, 0x3a, 0xf6, + 0x26, 0x29, 0x83, 0xf1, 0x14, 0xff, 0x80, 0x7b, 0x93, 0xc8, 0x63, 0x35, 0xe4, 0x45, 0x32, 0x9e, + 0xe3, 0x1f, 0x71, 0x35, 0xa4, 0x35, 0x32, 0xbf, 0x0b, 0x7a, 0xf7, 0x02, 0x19, 0xcf, 0xf7, 0x79, + 0xc6, 0x37, 0xd5, 0xb5, 0x3e, 0xe6, 0x5f, 0x82, 0x99, 0xe8, 0xc5, 0x31, 0x9e, 0xf5, 0x57, 0x7f, + 0x24, 0xdd, 0xce, 0x84, 0xd7, 0xc6, 0xfc, 0x7e, 0x50, 0x65, 0xc3, 0x0b, 0x63, 0x3c, 0xed, 0x17, + 0x7e, 0x24, 0x16, 0xda, 0xf0, 0xba, 0x98, 0x2f, 0x00, 0x04, 0x6b, 0x52, 0x3c, 0xd7, 0x17, 0x19, + 0x57, 0x08, 0x84, 0x53, 0x83, 0x2d, 0x49, 0xf1, 0xf8, 0x2f, 0xf1, 0xd4, 0x60, 0x08, 0x9c, 0x1a, + 0x7c, 0x35, 0x8a, 0x47, 0x7f, 0x99, 0xa7, 0x06, 0x87, 0xe4, 0x6f, 0x43, 0xca, 0xee, 0x34, 0x1a, + 0x38, 0xb6, 0xf4, 0xfe, 0xaf, 0x11, 0x65, 0xff, 0xe7, 0x8f, 0x19, 0x98, 0x03, 0xf2, 0x6b, 0x30, + 0x8c, 0x9a, 0x87, 0xa8, 0x1e, 0x87, 0xfc, 0x5f, 0x3f, 0xe6, 0xf5, 0x04, 0x4b, 0xe7, 0x5f, 0x00, + 0xa0, 0x37, 0xd3, 0xe4, 0x29, 0x51, 0x0c, 0xf6, 0x0f, 0x7f, 0xcc, 0xde, 0x50, 0x08, 0x20, 0x01, + 0x01, 0x7d, 0xdf, 0xa1, 0x3f, 0xc1, 0x0f, 0x44, 0x02, 0x72, 0x03, 0x7e, 0x0b, 0x46, 0x5f, 0x71, + 0x1d, 0xdb, 0x33, 0x8f, 0xe3, 0xd0, 0xff, 0x9b, 0xa1, 0xb9, 0x3c, 0x36, 0x58, 0xd3, 0x69, 0x23, + 0xcf, 0x3c, 0x76, 0xe3, 0xb0, 0xff, 0x87, 0x61, 0x7d, 0x00, 0x06, 0xd7, 0x4c, 0xd7, 0x1b, 0xe4, + 0xba, 0xff, 0x2f, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f, 0x7e, 0x15, 0x9d, 0xc6, 0x61, 0x7f, 0xc8, + 0x95, 0x66, 0xf2, 0xf9, 0xe7, 0x60, 0x0c, 0x7f, 0xa4, 0x6f, 0xed, 0xc4, 0x80, 0xff, 0x88, 0x81, + 0x03, 0x04, 0x3e, 0xb3, 0xeb, 0xd5, 0x3d, 0x2b, 0xde, 0xd8, 0xff, 0x8f, 0x79, 0x9a, 0xcb, 0xe7, + 0x0b, 0x90, 0x76, 0xbd, 0x7a, 0xbd, 0xc3, 0x3a, 0x9a, 0x18, 0xf8, 0x1f, 0xff, 0xd8, 0xbf, 0xc9, + 0xf5, 0x31, 0xc5, 0x8b, 0xd1, 0x9b, 0x75, 0x70, 0xc7, 0xb9, 0xe3, 0xd0, 0x6d, 0x3a, 0xf8, 0x5e, + 0x03, 0x6e, 0xf4, 0xdc, 0x75, 0xc3, 0x8b, 0xc8, 0x95, 0x9a, 0xd3, 0x3c, 0x74, 0xdc, 0x2b, 0x87, + 0x8e, 0x77, 0x72, 0xc5, 0x3b, 0x41, 0x78, 0x8c, 0xed, 0xbf, 0x25, 0xf1, 0xe7, 0xd9, 0xb3, 0x6d, + 0xda, 0x91, 0xe7, 0xb1, 0x15, 0x0b, 0xeb, 0x5d, 0x21, 0x5b, 0xe2, 0xfa, 0x79, 0x18, 0x21, 0x57, + 0x72, 0x95, 0x3c, 0x76, 0x52, 0x8a, 0xc9, 0xfb, 0xef, 0xce, 0x0f, 0x19, 0x6c, 0xcc, 0x9f, 0x5d, + 0x21, 0x7b, 0x96, 0x09, 0x61, 0x76, 0xc5, 0x9f, 0xbd, 0x46, 0xb7, 0x2d, 0x85, 0xd9, 0x6b, 0xfe, + 0xec, 0x2a, 0xd9, 0xc0, 0x54, 0x85, 0xd9, 0x55, 0x7f, 0x76, 0x8d, 0x6c, 0xd2, 0x8f, 0x0b, 0xb3, + 0x6b, 0xfe, 0xec, 0x75, 0xb2, 0x35, 0x9f, 0x14, 0x66, 0xaf, 0xfb, 0xb3, 0x37, 0xc8, 0xae, 0xfc, + 0x94, 0x30, 0x7b, 0xc3, 0x9f, 0xbd, 0x49, 0x76, 0xe3, 0x75, 0x61, 0xf6, 0xa6, 0x3f, 0x7b, 0x8b, + 0xbc, 0x62, 0x32, 0x2a, 0xcc, 0xde, 0xd2, 0xe7, 0x60, 0x94, 0x5e, 0xf9, 0x32, 0x79, 0x74, 0x3b, + 0xc9, 0xa6, 0xf9, 0x60, 0x30, 0x7f, 0x95, 0xbc, 0x4e, 0x32, 0x22, 0xce, 0x5f, 0x0d, 0xe6, 0x57, + 0xc8, 0x8b, 0xd5, 0x9a, 0x38, 0xbf, 0x12, 0xcc, 0x5f, 0xcb, 0x8e, 0x93, 0x57, 0x6a, 0x84, 0xf9, + 0x6b, 0xc1, 0xfc, 0x6a, 0x76, 0x02, 0x07, 0xb3, 0x38, 0xbf, 0x1a, 0xcc, 0xaf, 0x65, 0x27, 0x2f, + 0x28, 0x0b, 0x19, 0x71, 0x7e, 0x2d, 0xf7, 0x8b, 0xc4, 0xbd, 0x76, 0xe0, 0xde, 0x19, 0xd1, 0xbd, + 0xbe, 0x63, 0x67, 0x44, 0xc7, 0xfa, 0x2e, 0x9d, 0x11, 0x5d, 0xea, 0x3b, 0x73, 0x46, 0x74, 0xa6, + 0xef, 0xc6, 0x19, 0xd1, 0x8d, 0xbe, 0x03, 0x67, 0x44, 0x07, 0xfa, 0xae, 0x9b, 0x11, 0x5d, 0xe7, + 0x3b, 0x6d, 0x46, 0x74, 0x9a, 0xef, 0xae, 0x19, 0xd1, 0x5d, 0xbe, 0xa3, 0xb2, 0x92, 0xa3, 0x02, + 0x17, 0x65, 0x25, 0x17, 0x05, 0xce, 0xc9, 0x4a, 0xce, 0x09, 0xdc, 0x92, 0x95, 0xdc, 0x12, 0x38, + 0x24, 0x2b, 0x39, 0x24, 0x70, 0x45, 0x56, 0x72, 0x45, 0xe0, 0x04, 0x96, 0x63, 0x06, 0x6a, 0x45, + 0xe4, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, + 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x3f, 0xc7, + 0xd4, 0x98, 0x1c, 0x53, 0x63, 0x72, 0x4c, 0x8d, 0xc9, 0x31, 0x35, 0x26, 0xc7, 0xd4, 0x98, 0x1c, + 0x53, 0x7b, 0xe6, 0x58, 0xe0, 0xde, 0x19, 0xd1, 0xbd, 0x91, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, + 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, + 0xda, 0x23, 0xc7, 0xd4, 0x5e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, + 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0xc3, 0x39, 0xf6, 0x6f, 0x55, 0xd0, 0x69, 0x8e, + 0xed, 0x92, 0x97, 0x7f, 0x98, 0x2b, 0xe6, 0xa4, 0x4c, 0x1b, 0xc1, 0xae, 0xd3, 0x02, 0x97, 0xcc, + 0x49, 0xb9, 0x26, 0xce, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xc4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, + 0x71, 0x7e, 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xce, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xc4, 0xf9, 0xeb, + 0xfe, 0x3c, 0xcf, 0x3a, 0x71, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9c, 0xbf, 0xe9, 0xcf, 0xf3, + 0xcc, 0x13, 0xe7, 0x6f, 0xe9, 0x17, 0xe4, 0xdc, 0xe3, 0x02, 0xbe, 0x6b, 0x2f, 0xc8, 0xd9, 0x27, + 0x49, 0x5c, 0x0d, 0x24, 0x78, 0xfe, 0x49, 0x12, 0x2b, 0x81, 0x04, 0xcf, 0x40, 0x49, 0xe2, 0x5a, + 0xee, 0x73, 0xc4, 0x7d, 0xb6, 0xec, 0xbe, 0x59, 0xc9, 0x7d, 0x89, 0x90, 0xeb, 0x66, 0x25, 0xd7, + 0x25, 0x42, 0x6e, 0x9b, 0x95, 0xdc, 0x96, 0x08, 0xb9, 0x6c, 0x56, 0x72, 0x59, 0x22, 0xe4, 0xae, + 0x59, 0xc9, 0x5d, 0x89, 0x90, 0xab, 0x66, 0x25, 0x57, 0x25, 0x42, 0x6e, 0x9a, 0x95, 0xdc, 0x94, + 0x08, 0xb9, 0x68, 0x56, 0x72, 0x51, 0x22, 0xe4, 0x9e, 0x59, 0xc9, 0x3d, 0x89, 0x90, 0x6b, 0xce, + 0xcb, 0xae, 0x49, 0x84, 0xdd, 0x72, 0x5e, 0x76, 0x4b, 0x22, 0xec, 0x92, 0xf3, 0xb2, 0x4b, 0x12, + 0x61, 0x77, 0x9c, 0x97, 0xdd, 0x91, 0x08, 0xbb, 0xe2, 0xcf, 0x12, 0xbc, 0x23, 0xdc, 0xf3, 0xda, + 0x9d, 0x9a, 0xf7, 0x81, 0x3a, 0xc2, 0x65, 0xa1, 0x7d, 0x48, 0xaf, 0xe8, 0x4b, 0xa4, 0x61, 0x0d, + 0x77, 0x9c, 0xd2, 0x0a, 0xb6, 0x2c, 0x34, 0x16, 0x21, 0x84, 0x1d, 0x8d, 0x58, 0xfd, 0x40, 0xbd, + 0xe1, 0xb2, 0xd0, 0x66, 0xc4, 0xeb, 0x77, 0xf3, 0x23, 0xef, 0xd8, 0xde, 0x4e, 0xf0, 0x8e, 0x8d, + 0x99, 0xff, 0xac, 0x1d, 0xdb, 0x62, 0xbc, 0xc9, 0x7d, 0x63, 0x2f, 0xc6, 0x1b, 0xbb, 0x6b, 0xd5, + 0x19, 0xb4, 0x83, 0x5b, 0x8c, 0x37, 0xad, 0x6f, 0xd4, 0x0f, 0xb7, 0xdf, 0x62, 0x11, 0x6c, 0xa0, + 0x56, 0x44, 0x04, 0x9f, 0xb5, 0xdf, 0x5a, 0x16, 0x4a, 0xc9, 0x59, 0x23, 0x58, 0x3d, 0x73, 0x04, + 0x9f, 0xb5, 0xf3, 0x5a, 0x16, 0xca, 0xcb, 0x99, 0x23, 0xf8, 0x23, 0xe8, 0x87, 0x58, 0x04, 0x07, + 0xe6, 0x3f, 0x6b, 0x3f, 0xb4, 0x18, 0x6f, 0xf2, 0xc8, 0x08, 0x56, 0xcf, 0x10, 0xc1, 0x83, 0xf4, + 0x47, 0x8b, 0xf1, 0xa6, 0x8d, 0x8e, 0xe0, 0x0f, 0xdc, 0xcd, 0x7c, 0x45, 0x81, 0xa9, 0x8a, 0x55, + 0x2f, 0x37, 0x0f, 0x51, 0xbd, 0x8e, 0xea, 0xcc, 0x8e, 0xcb, 0x42, 0x25, 0xe8, 0xe1, 0xea, 0x77, + 0xde, 0x9d, 0x0f, 0x2c, 0xbc, 0x06, 0x29, 0x6a, 0xd3, 0xe5, 0xe5, 0xec, 0x7d, 0x25, 0xa6, 0xc2, + 0xf9, 0xa2, 0xfa, 0x45, 0x0e, 0xbb, 0xba, 0x9c, 0xfd, 0x2f, 0x4a, 0xa8, 0xca, 0xf9, 0xc3, 0xb9, + 0x5f, 0x21, 0x1a, 0xda, 0x1f, 0x58, 0xc3, 0x2b, 0x03, 0x69, 0x18, 0xd2, 0xed, 0xf1, 0x2e, 0xdd, + 0x42, 0x5a, 0x75, 0x60, 0xb2, 0x62, 0xd5, 0x2b, 0xe4, 0x2b, 0xbd, 0x83, 0xa8, 0x44, 0x65, 0xa4, + 0x7a, 0xb0, 0x2c, 0x84, 0x65, 0x18, 0xe1, 0x87, 0xb4, 0x58, 0x23, 0x72, 0x16, 0x3e, 0xad, 0x2d, + 0x9c, 0x76, 0xb1, 0xd7, 0x69, 0x83, 0xca, 0xee, 0x9f, 0x70, 0xb1, 0xd7, 0x09, 0x83, 0x1c, 0xf2, + 0x4f, 0xf5, 0x06, 0x5f, 0x9c, 0xe9, 0x5b, 0x38, 0xfa, 0x79, 0x48, 0x6c, 0xd2, 0x37, 0x84, 0x33, + 0xc5, 0x0c, 0x56, 0xea, 0x3b, 0xef, 0xce, 0x27, 0x0f, 0x3a, 0x56, 0xdd, 0x48, 0x6c, 0xd6, 0xf5, + 0xbb, 0x30, 0xfc, 0x29, 0xf6, 0xc5, 0x38, 0x2c, 0xb0, 0xca, 0x04, 0x3e, 0x16, 0xb3, 0xc5, 0x44, + 0xa8, 0x97, 0x0e, 0x2c, 0xdb, 0xbb, 0xba, 0x72, 0xd3, 0xa0, 0x14, 0xb9, 0xbf, 0x08, 0x40, 0xcf, + 0xb9, 0x6e, 0xba, 0x27, 0x7a, 0x85, 0x33, 0xd3, 0x53, 0xdf, 0xfc, 0xce, 0xbb, 0xf3, 0xab, 0x83, + 0xb0, 0x3e, 0x5b, 0x37, 0xdd, 0x93, 0x67, 0xbd, 0xd3, 0x16, 0x5a, 0x2a, 0x9e, 0x7a, 0xc8, 0xe5, + 0xec, 0x2d, 0xbe, 0xea, 0xb1, 0xeb, 0xca, 0x86, 0xae, 0x2b, 0x25, 0x5c, 0xd3, 0x86, 0x78, 0x4d, + 0xcb, 0x0f, 0x7b, 0x3d, 0x6f, 0xf0, 0x45, 0x42, 0xb2, 0xa4, 0x1a, 0x67, 0x49, 0xf5, 0x83, 0x5a, + 0xb2, 0xc5, 0xeb, 0xa3, 0x74, 0xad, 0x6a, 0xbf, 0x6b, 0x55, 0x3f, 0xc8, 0xb5, 0xfe, 0x09, 0xcd, + 0x56, 0x3f, 0x9f, 0x0e, 0x6c, 0xfa, 0x76, 0xe2, 0x9f, 0xaf, 0xbd, 0xa0, 0x0f, 0xb5, 0x0b, 0xc8, + 0x27, 0xef, 0xbf, 0x35, 0xaf, 0xe4, 0xbe, 0x92, 0xe0, 0x57, 0x4e, 0x13, 0xe9, 0xe1, 0xae, 0xfc, + 0xcf, 0x4b, 0x4f, 0xf5, 0x51, 0x58, 0xe8, 0xcb, 0x0a, 0xcc, 0x74, 0x55, 0x72, 0x6a, 0xa6, 0x0f, + 0xb7, 0x9c, 0xdb, 0x67, 0x2d, 0xe7, 0x4c, 0xc1, 0xdf, 0x51, 0xe0, 0x9c, 0x54, 0x5e, 0xa9, 0x7a, + 0x57, 0x24, 0xf5, 0x1e, 0xed, 0x3e, 0x13, 0x11, 0x0c, 0x69, 0x17, 0x76, 0xaf, 0x04, 0x08, 0x31, + 0xfb, 0x7e, 0x5f, 0x95, 0xfc, 0x7e, 0xde, 0x07, 0x44, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x81, + 0xe4, 0x7e, 0x1b, 0x21, 0x7d, 0x0e, 0x12, 0x3b, 0x6d, 0xa6, 0xe1, 0x04, 0xc5, 0xef, 0xb4, 0x8b, + 0x6d, 0xd3, 0xae, 0x9d, 0x18, 0x89, 0x9d, 0xb6, 0x7e, 0x11, 0xd4, 0x02, 0xfb, 0xe9, 0x81, 0xf4, + 0xca, 0x24, 0x15, 0x28, 0xd8, 0x75, 0x26, 0x81, 0xe7, 0xf4, 0x39, 0x48, 0x6e, 0x21, 0xf3, 0x88, + 0x29, 0x01, 0x54, 0x06, 0x8f, 0x18, 0x64, 0x9c, 0x9d, 0xf0, 0x65, 0x48, 0x71, 0x62, 0xfd, 0x12, + 0x46, 0x1c, 0x79, 0xec, 0xb4, 0x0c, 0x81, 0xd5, 0x61, 0x2b, 0x17, 0x99, 0xd5, 0x2f, 0xc3, 0xb0, + 0x61, 0x1d, 0x9f, 0x78, 0xec, 0xe4, 0xdd, 0x62, 0x74, 0x3a, 0x77, 0x0f, 0xc6, 0x7c, 0x8d, 0x3e, + 0x64, 0xea, 0x75, 0x7a, 0x69, 0xfa, 0x6c, 0x78, 0x3d, 0xe1, 0xfb, 0x96, 0x74, 0x48, 0xbf, 0x00, + 0xa9, 0x3d, 0xaf, 0x1d, 0x14, 0x7d, 0xde, 0x91, 0xfa, 0xa3, 0xb9, 0x5f, 0x54, 0x20, 0xb5, 0x8e, + 0x50, 0x8b, 0x18, 0xfc, 0x29, 0x48, 0xae, 0x3b, 0xaf, 0xdb, 0x4c, 0xc1, 0x29, 0x66, 0x51, 0x3c, + 0xcd, 0x6c, 0x4a, 0xa6, 0xf5, 0xa7, 0xc2, 0x76, 0x9f, 0xf6, 0xed, 0x1e, 0x92, 0x23, 0xb6, 0xcf, + 0x09, 0xb6, 0x67, 0x0e, 0xc4, 0x42, 0x5d, 0xf6, 0xbf, 0x01, 0xe9, 0xd0, 0x59, 0xf4, 0x05, 0xa6, + 0x46, 0x42, 0x06, 0x86, 0x6d, 0x85, 0x25, 0x72, 0x08, 0xc6, 0x85, 0x13, 0x63, 0x68, 0xc8, 0xc4, + 0x3d, 0xa0, 0xc4, 0xcc, 0x8b, 0xa2, 0x99, 0xa3, 0x45, 0x99, 0xa9, 0x97, 0xa9, 0x8d, 0x88, 0xb9, + 0x2f, 0xd1, 0xe0, 0xec, 0xed, 0x44, 0xfc, 0x39, 0x37, 0x0c, 0x6a, 0xc5, 0x6a, 0xe4, 0x9e, 0x03, + 0xa0, 0x29, 0x5f, 0xb6, 0x3b, 0x4d, 0x29, 0xeb, 0x26, 0xb8, 0x81, 0xf7, 0x4f, 0xd0, 0x3e, 0x72, + 0x89, 0x88, 0xd8, 0x4f, 0xe1, 0x02, 0x03, 0x34, 0xc5, 0x08, 0xfe, 0x99, 0x58, 0x7c, 0x64, 0x27, + 0x86, 0x45, 0xb3, 0x54, 0xf4, 0x1e, 0xf2, 0x0a, 0xb6, 0xe3, 0x9d, 0xa0, 0xb6, 0x84, 0x58, 0xd1, + 0xaf, 0x09, 0x09, 0x3b, 0xb1, 0xf2, 0xb8, 0x8f, 0xe8, 0x09, 0xba, 0x96, 0xfb, 0x06, 0x51, 0x10, + 0xb7, 0x02, 0x5d, 0x17, 0xa8, 0x0e, 0x70, 0x81, 0xfa, 0x75, 0xa1, 0x7f, 0xeb, 0xa3, 0xa6, 0x74, + 0x6b, 0x79, 0x4b, 0xb8, 0xcf, 0xe9, 0xaf, 0xac, 0x78, 0x8f, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x26, + 0x56, 0xe5, 0x1e, 0xdd, 0xed, 0x59, 0x6d, 0xaa, 0x0e, 0x6a, 0xd3, 0xdf, 0xf3, 0x3b, 0x0e, 0xfa, + 0x23, 0x0e, 0xe4, 0x37, 0x43, 0xf4, 0x8f, 0xc5, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57, 0x07, + 0x75, 0x7f, 0x3e, 0x51, 0x2c, 0xfa, 0xea, 0xde, 0x38, 0x43, 0x08, 0xe4, 0x13, 0xa5, 0x92, 0x5f, + 0xb6, 0x53, 0x9f, 0x7b, 0x6b, 0x5e, 0xf9, 0xfa, 0x5b, 0xf3, 0x43, 0xb9, 0xdf, 0x50, 0x60, 0x8a, + 0x49, 0x86, 0x02, 0xf7, 0x59, 0x49, 0xf9, 0x47, 0x78, 0xcd, 0x88, 0xb2, 0xc0, 0x4f, 0x2c, 0x78, + 0xbf, 0xad, 0x40, 0xb6, 0x4b, 0x57, 0x6e, 0xef, 0xe5, 0x81, 0x54, 0xce, 0x2b, 0xe5, 0x9f, 0xbe, + 0xcd, 0xef, 0xc1, 0xf0, 0xbe, 0xd5, 0x44, 0x6d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, + 0x87, 0x0e, 0xf1, 0x39, 0xaa, 0x9c, 0x30, 0xb7, 0xa2, 0x67, 0x21, 0xb9, 0x6e, 0x7a, 0x26, 0xd1, + 0x20, 0xe3, 0xd7, 0x57, 0xd3, 0x33, 0x73, 0xd7, 0x20, 0xb3, 0x7d, 0x4a, 0x5e, 0xa1, 0xa9, 0x93, + 0xd7, 0x43, 0xc4, 0xee, 0x8f, 0xf7, 0xab, 0x57, 0x17, 0x87, 0x53, 0x75, 0xed, 0xbe, 0x92, 0x4f, + 0x12, 0x7d, 0x5e, 0x83, 0x89, 0x1d, 0xac, 0x36, 0xc1, 0x11, 0xd8, 0x05, 0x50, 0xb6, 0xc5, 0x46, + 0x28, 0xcc, 0x6a, 0x28, 0xdb, 0x52, 0xfb, 0xa8, 0xfa, 0xe6, 0x91, 0xda, 0x36, 0xd5, 0x6f, 0xdb, + 0x16, 0x93, 0xa9, 0x09, 0x6d, 0x6a, 0x31, 0x99, 0x02, 0x6d, 0x9c, 0x9d, 0xf7, 0x3f, 0xa9, 0xa0, + 0xd1, 0x56, 0x67, 0x1d, 0x1d, 0x59, 0xb6, 0xe5, 0x75, 0xf7, 0xab, 0xbe, 0xc6, 0xfa, 0x0b, 0x30, + 0x86, 0x4d, 0xba, 0xc1, 0x7e, 0x7a, 0x0b, 0x9b, 0xfe, 0x22, 0x6b, 0x51, 0x24, 0x0a, 0x36, 0x40, + 0x42, 0x27, 0xc0, 0xe8, 0x1b, 0xa0, 0x56, 0x2a, 0xdb, 0x6c, 0x71, 0x5b, 0xed, 0x0b, 0x65, 0x6f, + 0xe0, 0xb0, 0x23, 0x36, 0xe6, 0x1e, 0x1b, 0x98, 0x40, 0x5f, 0x85, 0x44, 0x65, 0x9b, 0x35, 0xbc, + 0x97, 0x06, 0xa1, 0x31, 0x12, 0x95, 0xed, 0xd9, 0x7f, 0xa7, 0xc0, 0xb8, 0x30, 0xaa, 0xe7, 0x20, + 0x43, 0x07, 0x42, 0x97, 0x3b, 0x62, 0x08, 0x63, 0x5c, 0xe7, 0xc4, 0x07, 0xd4, 0x79, 0xb6, 0x00, + 0x93, 0xd2, 0xb8, 0xbe, 0x04, 0x7a, 0x78, 0x88, 0x29, 0x41, 0x7f, 0xb6, 0x28, 0x62, 0x26, 0xf7, + 0x04, 0x40, 0x60, 0x57, 0xff, 0xd7, 0x76, 0x2a, 0xe5, 0xbd, 0xfd, 0xf2, 0xba, 0xa6, 0xe4, 0xbe, + 0xa5, 0x40, 0x9a, 0xb5, 0xad, 0x35, 0xa7, 0x85, 0xf4, 0x22, 0x28, 0x05, 0x16, 0x41, 0x0f, 0xa7, + 0xb7, 0x52, 0xd0, 0xaf, 0x80, 0x52, 0x1c, 0xdc, 0xd5, 0x4a, 0x51, 0x5f, 0x01, 0xa5, 0xc4, 0x1c, + 0x3c, 0x98, 0x67, 0x94, 0x52, 0xee, 0x8f, 0x54, 0x98, 0x0e, 0xb7, 0xd1, 0xbc, 0x9e, 0x5c, 0x14, + 0xef, 0x9b, 0xf2, 0x63, 0x57, 0x57, 0xae, 0xad, 0x2e, 0xe1, 0x7f, 0xfc, 0x90, 0xbc, 0x28, 0xde, + 0x42, 0x75, 0x8b, 0x74, 0xbd, 0x26, 0x92, 0x4f, 0x86, 0x66, 0xbb, 0x5e, 0x13, 0x11, 0x66, 0xbb, + 0x5e, 0x13, 0x11, 0x66, 0xbb, 0x5e, 0x13, 0x11, 0x66, 0xbb, 0x1e, 0x05, 0x08, 0xb3, 0x5d, 0xaf, + 0x89, 0x08, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0xdd, 0xaf, 0x89, 0xb0, 0xe9, 0x9e, 0xaf, 0x89, + 0x88, 0xf3, 0xdd, 0xaf, 0x89, 0x88, 0xf3, 0xdd, 0xaf, 0x89, 0xe4, 0x93, 0x5e, 0xbb, 0x83, 0x7a, + 0x3f, 0x74, 0x10, 0xf1, 0xfd, 0xee, 0x01, 0x83, 0x02, 0xbc, 0x03, 0x93, 0x74, 0x3f, 0xa2, 0xe4, + 0xd8, 0x9e, 0x69, 0xd9, 0xa8, 0xad, 0x7f, 0x1c, 0x32, 0x74, 0x88, 0xde, 0xe5, 0x44, 0xdd, 0x05, + 0xd2, 0x79, 0x56, 0x6e, 0x05, 0xe9, 0xdc, 0x9f, 0x25, 0x61, 0x86, 0x0e, 0x54, 0xcc, 0x26, 0x12, + 0x5e, 0x32, 0xba, 0x2c, 0x3d, 0x52, 0x9a, 0xc0, 0xf0, 0x07, 0xef, 0xce, 0xd3, 0xd1, 0x82, 0x1f, + 0x4c, 0x97, 0xa5, 0x87, 0x4b, 0xa2, 0x5c, 0xb0, 0xfe, 0x5c, 0x96, 0x5e, 0x3c, 0x12, 0xe5, 0xfc, + 0xe5, 0xc6, 0x97, 0xe3, 0xaf, 0x20, 0x89, 0x72, 0xeb, 0x7e, 0x94, 0x5d, 0x96, 0x5e, 0x46, 0x12, + 0xe5, 0xca, 0x7e, 0xbc, 0x5d, 0x96, 0x1e, 0x3d, 0x89, 0x72, 0x1b, 0x7e, 0xe4, 0x5d, 0x96, 0x1e, + 0x42, 0x89, 0x72, 0x77, 0xfc, 0x18, 0xbc, 0x2c, 0xbd, 0xaa, 0x24, 0xca, 0xbd, 0xe8, 0x47, 0xe3, + 0x65, 0xe9, 0xa5, 0x25, 0x51, 0x6e, 0xd3, 0x8f, 0xcb, 0x05, 0xf9, 0xf5, 0x25, 0x51, 0xf0, 0x6e, + 0x10, 0xa1, 0x0b, 0xf2, 0x8b, 0x4c, 0xa2, 0xe4, 0x27, 0x82, 0x58, 0x5d, 0x90, 0x5f, 0x69, 0x12, + 0x25, 0xb7, 0x82, 0xa8, 0x5d, 0x90, 0x1f, 0x95, 0x89, 0x92, 0xdb, 0x41, 0xfc, 0x2e, 0xc8, 0x0f, + 0xcd, 0x44, 0xc9, 0x4a, 0x10, 0xc9, 0x0b, 0xf2, 0xe3, 0x33, 0x51, 0x72, 0x27, 0xd8, 0x43, 0xff, + 0x7d, 0x29, 0xfc, 0x42, 0x2f, 0x41, 0xe5, 0xa4, 0xf0, 0x83, 0x88, 0xd0, 0xcb, 0x49, 0xa1, 0x07, + 0x11, 0x61, 0x97, 0x93, 0xc2, 0x0e, 0x22, 0x42, 0x2e, 0x27, 0x85, 0x1c, 0x44, 0x84, 0x5b, 0x4e, + 0x0a, 0x37, 0x88, 0x08, 0xb5, 0x9c, 0x14, 0x6a, 0x10, 0x11, 0x66, 0x39, 0x29, 0xcc, 0x20, 0x22, + 0xc4, 0x72, 0x52, 0x88, 0x41, 0x44, 0x78, 0xe5, 0xa4, 0xf0, 0x82, 0x88, 0xd0, 0xba, 0x24, 0x87, + 0x16, 0x44, 0x85, 0xd5, 0x25, 0x39, 0xac, 0x20, 0x2a, 0xa4, 0x9e, 0x94, 0x43, 0x6a, 0xec, 0xc1, + 0xbb, 0xf3, 0xc3, 0x78, 0x28, 0x14, 0x4d, 0x97, 0xe4, 0x68, 0x82, 0xa8, 0x48, 0xba, 0x24, 0x47, + 0x12, 0x44, 0x45, 0xd1, 0x25, 0x39, 0x8a, 0x20, 0x2a, 0x82, 0xde, 0x96, 0x23, 0x28, 0x78, 0xc5, + 0x27, 0x27, 0x3d, 0x51, 0x8c, 0x8b, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, + 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, + 0x07, 0x89, 0x20, 0x75, 0xa0, 0x08, 0x52, 0x7b, 0x45, 0xd0, 0x25, 0xf9, 0x85, 0x07, 0x88, 0x2a, + 0x48, 0x97, 0xe4, 0x27, 0x9f, 0xf1, 0x21, 0xa4, 0x0e, 0x14, 0x42, 0x6a, 0xaf, 0x10, 0xfa, 0x7d, + 0x15, 0xa6, 0x85, 0x10, 0x62, 0x8f, 0x87, 0x3e, 0xac, 0x0a, 0x74, 0x7d, 0x80, 0xf7, 0x2b, 0xa2, + 0x62, 0xea, 0xfa, 0x00, 0xcf, 0xa8, 0xfb, 0xc5, 0x59, 0x77, 0x15, 0x2a, 0x0f, 0x50, 0x85, 0x36, + 0xfc, 0x18, 0xba, 0x3e, 0xc0, 0x7b, 0x17, 0xdd, 0xb1, 0x77, 0xb3, 0x5f, 0x11, 0x78, 0x71, 0xa0, + 0x22, 0xb0, 0x39, 0x50, 0x11, 0xb8, 0x1b, 0x78, 0xf0, 0x97, 0x12, 0x70, 0x2e, 0xf0, 0x20, 0xfd, + 0x44, 0x7e, 0x22, 0x29, 0x17, 0x7a, 0x42, 0xa5, 0xf3, 0xa7, 0x36, 0x21, 0x37, 0x26, 0x36, 0xeb, + 0xfa, 0xae, 0xf8, 0xac, 0x2a, 0x7f, 0xd6, 0xe7, 0x37, 0x21, 0x8f, 0xb3, 0xbd, 0xd0, 0x4b, 0xa0, + 0x6e, 0xd6, 0x5d, 0x52, 0x2d, 0xa2, 0x4e, 0x5b, 0x32, 0xf0, 0xb4, 0x6e, 0xc0, 0x08, 0x11, 0x77, + 0x89, 0x7b, 0x3f, 0xc8, 0x89, 0xd7, 0x0d, 0xc6, 0x94, 0x7b, 0x5b, 0x81, 0x0b, 0x42, 0x28, 0x7f, + 0x38, 0x4f, 0x0c, 0x6e, 0x0f, 0xf4, 0xc4, 0x40, 0x48, 0x90, 0xe0, 0xe9, 0xc1, 0xd3, 0xdd, 0x0f, + 0xaa, 0xc3, 0x59, 0x22, 0x3f, 0x49, 0xf8, 0xcb, 0x30, 0x11, 0x5c, 0x01, 0xb9, 0x65, 0x5b, 0x8b, + 0xdf, 0xcc, 0x8c, 0x4a, 0xcd, 0x35, 0x69, 0x13, 0xad, 0x2f, 0xcc, 0xcf, 0xd6, 0x5c, 0x1e, 0x26, + 0x2b, 0xe2, 0x77, 0x79, 0xe2, 0xf6, 0x22, 0x52, 0xb8, 0x35, 0xbf, 0xff, 0xd5, 0xf9, 0xa1, 0xdc, + 0xc7, 0x20, 0x13, 0xfe, 0xba, 0x8e, 0x04, 0x1c, 0xe3, 0xc0, 0x7c, 0xf2, 0x1d, 0x2c, 0xfd, 0x0f, + 0x15, 0x78, 0x24, 0x2c, 0xfe, 0x92, 0xe5, 0x9d, 0x6c, 0xda, 0xb8, 0xa7, 0x7f, 0x0e, 0x52, 0x88, + 0x39, 0x8e, 0xfd, 0xda, 0x09, 0xbb, 0x8d, 0x8c, 0x14, 0x5f, 0x22, 0xff, 0x1a, 0x3e, 0x44, 0xda, + 0xe2, 0xe0, 0xa7, 0x5d, 0x99, 0x7d, 0x0a, 0x86, 0x29, 0xbf, 0xa8, 0xd7, 0xb8, 0xa4, 0xd7, 0xaf, + 0x47, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x2b, 0xe8, 0x15, 0xba, 0x5b, 0x8d, 0x14, 0x5f, 0xe2, 0xc1, + 0x57, 0x4c, 0xe1, 0xfe, 0x8f, 0x44, 0x54, 0xbc, 0x92, 0x0b, 0x90, 0x2a, 0xcb, 0x32, 0xd1, 0x7a, + 0xae, 0x43, 0xb2, 0xe2, 0xd4, 0xc9, 0xef, 0xb0, 0x90, 0xdf, 0xcb, 0x65, 0x46, 0x66, 0x3f, 0x9e, + 0x7b, 0x19, 0x52, 0xa5, 0x13, 0xab, 0x51, 0x6f, 0x23, 0x9b, 0x3d, 0xb2, 0x67, 0x3b, 0xe8, 0x18, + 0x63, 0xf8, 0x73, 0xb9, 0x12, 0x4c, 0x55, 0x1c, 0xbb, 0x78, 0xea, 0x85, 0xeb, 0xc6, 0x92, 0x94, + 0x22, 0xec, 0x91, 0x0f, 0xf9, 0x02, 0x08, 0x16, 0x28, 0x0e, 0x7f, 0xe7, 0xdd, 0x79, 0x65, 0xdf, + 0xdf, 0x3e, 0xdf, 0x86, 0x47, 0x59, 0xfa, 0x74, 0x51, 0xad, 0xc4, 0x51, 0x8d, 0xb1, 0xc7, 0xd4, + 0x21, 0xba, 0x4d, 0x4c, 0x67, 0x47, 0xd2, 0x3d, 0x9c, 0x66, 0xb8, 0x29, 0xea, 0xab, 0x99, 0x7a, + 0x26, 0xcd, 0x22, 0xe9, 0x96, 0xe2, 0xe8, 0x24, 0xcd, 0x9e, 0x84, 0x31, 0x7f, 0x2e, 0x14, 0x0d, + 0xe1, 0x4c, 0x59, 0x59, 0xcc, 0x41, 0x3a, 0x94, 0xb0, 0xfa, 0x30, 0x28, 0x05, 0x6d, 0x08, 0xff, + 0x57, 0xd4, 0x14, 0xfc, 0x5f, 0x49, 0x4b, 0x2c, 0x3e, 0x05, 0x93, 0xd2, 0xf6, 0x25, 0x9e, 0x59, + 0xd7, 0x00, 0xff, 0x57, 0xd6, 0xd2, 0xb3, 0xc9, 0xcf, 0xfd, 0x93, 0xb9, 0xa1, 0xc5, 0xdb, 0xa0, + 0x77, 0x6f, 0x74, 0xea, 0x23, 0x90, 0x28, 0x60, 0xca, 0x47, 0x21, 0x51, 0x2c, 0x6a, 0xca, 0xec, + 0xe4, 0xdf, 0xf8, 0xd2, 0x85, 0x74, 0x91, 0x7c, 0x17, 0xf9, 0x1e, 0xf2, 0x8a, 0x45, 0x06, 0x7e, + 0x1e, 0x1e, 0x89, 0xdc, 0x28, 0xc5, 0xf8, 0x52, 0x89, 0xe2, 0xd7, 0xd7, 0xbb, 0xf0, 0xeb, 0xeb, + 0x04, 0xaf, 0xe4, 0xf9, 0x03, 0xe7, 0x82, 0x1e, 0xb1, 0x2d, 0x99, 0xad, 0x87, 0x1e, 0x70, 0x17, + 0xf2, 0xcf, 0x33, 0xd9, 0x62, 0xa4, 0x2c, 0x8a, 0x79, 0x60, 0x5d, 0xcc, 0x97, 0x18, 0xbe, 0x14, + 0x89, 0x3f, 0x92, 0x9e, 0xaa, 0x8a, 0x2b, 0x04, 0x23, 0x29, 0xf9, 0x0a, 0xaf, 0x47, 0x92, 0x9c, + 0x84, 0xde, 0x75, 0x5f, 0xf7, 0x15, 0x2e, 0x47, 0xca, 0x5a, 0x31, 0xef, 0x7c, 0x95, 0xf3, 0x57, + 0xd8, 0x22, 0x5f, 0xb8, 0xaa, 0x3f, 0xc2, 0x73, 0x54, 0xa8, 0xc0, 0xcc, 0x40, 0x5c, 0x2a, 0x5f, + 0x62, 0x80, 0x62, 0x4f, 0x40, 0x6f, 0x2b, 0x71, 0x64, 0xfe, 0x45, 0x46, 0x52, 0xea, 0x49, 0x12, + 0x63, 0x2a, 0x0e, 0x2f, 0xee, 0xdf, 0x7f, 0x6f, 0x6e, 0xe8, 0x9d, 0xf7, 0xe6, 0x86, 0xfe, 0xdb, + 0x7b, 0x73, 0x43, 0xdf, 0x7d, 0x6f, 0x4e, 0xf9, 0xfe, 0x7b, 0x73, 0xca, 0x0f, 0xdf, 0x9b, 0x53, + 0xfe, 0xf4, 0xbd, 0x39, 0xe5, 0xcd, 0x07, 0x73, 0xca, 0xd7, 0x1f, 0xcc, 0x29, 0xdf, 0x78, 0x30, + 0xa7, 0xfc, 0xee, 0x83, 0x39, 0xe5, 0xed, 0x07, 0x73, 0xca, 0xfd, 0x07, 0x73, 0xca, 0x3b, 0x0f, + 0xe6, 0x94, 0xef, 0x3e, 0x98, 0x53, 0xbe, 0xff, 0x60, 0x6e, 0xe8, 0x87, 0x0f, 0xe6, 0x94, 0x3f, + 0x7d, 0x30, 0x37, 0xf4, 0xe6, 0xfb, 0x73, 0x43, 0x6f, 0xbd, 0x3f, 0x37, 0xf4, 0xf5, 0xf7, 0xe7, + 0x14, 0xf8, 0xc3, 0x55, 0xb8, 0xcc, 0xbe, 0x48, 0x46, 0xbf, 0xb7, 0xea, 0x7f, 0x6b, 0xf5, 0x8a, + 0x77, 0x82, 0x48, 0x63, 0x70, 0x8d, 0xff, 0xaa, 0x93, 0x3f, 0x70, 0xc6, 0xaf, 0x96, 0xcd, 0x3e, + 0xec, 0x17, 0xd9, 0x72, 0xff, 0x7e, 0x18, 0x46, 0xf9, 0x86, 0x70, 0xd4, 0xef, 0x42, 0xaf, 0x41, + 0xea, 0xc4, 0x6a, 0x98, 0x6d, 0xcb, 0x3b, 0x65, 0x3b, 0xa1, 0x8f, 0x2d, 0x05, 0x6a, 0xf3, 0xbd, + 0xd3, 0x17, 0x3b, 0x4d, 0xa7, 0xd3, 0x36, 0x7c, 0x51, 0xfd, 0x02, 0x64, 0x4e, 0x90, 0x75, 0x7c, + 0xe2, 0x55, 0x2d, 0xbb, 0x5a, 0x6b, 0x92, 0x8e, 0x79, 0xdc, 0x00, 0x3a, 0xb6, 0x69, 0x97, 0x9a, + 0xf8, 0x64, 0x75, 0xd3, 0x33, 0xc9, 0x9d, 0x7a, 0xc6, 0x20, 0x9f, 0xf5, 0x8b, 0x90, 0x69, 0x23, + 0xb7, 0xd3, 0xf0, 0xaa, 0x35, 0xa7, 0x63, 0x7b, 0xa4, 0xa7, 0x55, 0x8d, 0x34, 0x1d, 0x2b, 0xe1, + 0x21, 0xfd, 0x49, 0x18, 0xf7, 0xda, 0x1d, 0x54, 0x75, 0x6b, 0x8e, 0xe7, 0x36, 0x4d, 0x9b, 0xf4, + 0xb4, 0x29, 0x23, 0x83, 0x07, 0xf7, 0xd8, 0x18, 0xf9, 0xbb, 0x03, 0x35, 0xa7, 0x8d, 0xc8, 0x2d, + 0x75, 0xc2, 0xa0, 0x07, 0xba, 0x06, 0xea, 0xab, 0xe8, 0x94, 0xdc, 0xb4, 0x25, 0x0d, 0xfc, 0x51, + 0x7f, 0x06, 0x46, 0xe8, 0x9f, 0xa4, 0x20, 0x1d, 0x36, 0x79, 0x7e, 0xed, 0x5f, 0x1a, 0xdd, 0xa7, + 0x35, 0x98, 0x80, 0x7e, 0x0b, 0x46, 0x3d, 0xd4, 0x6e, 0x9b, 0x96, 0x4d, 0x6e, 0xa0, 0xd2, 0x2b, + 0xf3, 0x11, 0x66, 0xd8, 0xa7, 0x12, 0xe4, 0x27, 0x5e, 0x0d, 0x2e, 0xaf, 0xaf, 0x41, 0x86, 0xc8, + 0xad, 0x54, 0xe9, 0x9f, 0xed, 0x48, 0xf7, 0x8c, 0xe9, 0x34, 0x95, 0xe3, 0x8f, 0x0b, 0x38, 0x8c, + 0xfe, 0xbc, 0xdd, 0x38, 0x39, 0xed, 0x93, 0x11, 0xa7, 0x25, 0xe5, 0x77, 0x85, 0xb4, 0x8e, 0xf4, + 0xd4, 0x8c, 0x87, 0xfe, 0x00, 0xde, 0x36, 0x64, 0xc2, 0x7a, 0x71, 0x33, 0xd0, 0x16, 0x88, 0x98, + 0xe1, 0xe9, 0xe0, 0x27, 0xdd, 0x7b, 0x58, 0x81, 0xce, 0xe7, 0x13, 0x37, 0x95, 0xd9, 0x5d, 0xd0, + 0xe4, 0xf3, 0x45, 0x50, 0x5e, 0x16, 0x29, 0xb5, 0xf0, 0xc5, 0x92, 0xcd, 0xf2, 0x80, 0x31, 0xf7, + 0x02, 0x8c, 0xd0, 0xf8, 0xd1, 0xd3, 0x30, 0x1a, 0xfc, 0x72, 0x62, 0x0a, 0x92, 0xbb, 0x07, 0x95, + 0x3d, 0xfa, 0x13, 0xa8, 0x7b, 0x5b, 0x85, 0xdd, 0xbd, 0xfd, 0xcd, 0xd2, 0x27, 0xb4, 0x84, 0x3e, + 0x09, 0xe9, 0xe2, 0xe6, 0xd6, 0x56, 0xb5, 0x58, 0xd8, 0xdc, 0x2a, 0xdf, 0xd3, 0xd4, 0xdc, 0x1c, + 0x8c, 0x50, 0x3d, 0xc9, 0x4f, 0xb9, 0x75, 0x6c, 0xfb, 0x94, 0xb7, 0x10, 0xe4, 0x20, 0xf7, 0x4d, + 0x1d, 0x46, 0x0b, 0x8d, 0xc6, 0xb6, 0xd9, 0x72, 0xf5, 0x97, 0x60, 0x8a, 0xfe, 0xa8, 0xc4, 0xbe, + 0xb3, 0x4e, 0x7e, 0x71, 0x10, 0x17, 0x08, 0x85, 0xfd, 0x94, 0x7d, 0x70, 0xdd, 0x4c, 0x7c, 0xa9, + 0x4b, 0x96, 0x1a, 0xb8, 0x9b, 0x43, 0xdf, 0x07, 0x8d, 0x0f, 0x6e, 0x34, 0x1c, 0xd3, 0xc3, 0xbc, + 0x09, 0xf6, 0x83, 0x80, 0xbd, 0x79, 0xb9, 0x28, 0xa5, 0xed, 0x62, 0xd0, 0x3f, 0x0e, 0xa9, 0x4d, + 0xdb, 0xbb, 0xb6, 0x82, 0xd9, 0xf8, 0x9f, 0x59, 0xe9, 0x66, 0xe3, 0x22, 0x94, 0xc5, 0x47, 0x30, + 0xf4, 0xf5, 0x55, 0x8c, 0x4e, 0xf6, 0x43, 0x13, 0x91, 0x00, 0x4d, 0x0e, 0xf5, 0x17, 0x60, 0x0c, + 0xdf, 0xa1, 0xd0, 0x93, 0x0f, 0xf3, 0xf6, 0xb5, 0x0b, 0xee, 0xcb, 0x50, 0x7c, 0x80, 0xe1, 0x04, + 0xf4, 0xfc, 0x23, 0x7d, 0x09, 0x42, 0x0a, 0x04, 0x18, 0x4c, 0xb0, 0xe7, 0x6b, 0x30, 0xda, 0x93, + 0x60, 0x4f, 0xd2, 0x60, 0x2f, 0xac, 0xc1, 0x9e, 0xaf, 0x41, 0xaa, 0x2f, 0x41, 0x58, 0x03, 0xff, + 0x58, 0x2f, 0x02, 0x6c, 0x58, 0x6f, 0xa0, 0x3a, 0x55, 0x81, 0xfe, 0x11, 0x96, 0x5c, 0x04, 0x43, + 0x20, 0x44, 0x29, 0x42, 0x28, 0xbd, 0x0c, 0xe9, 0xbd, 0xa3, 0x80, 0x04, 0xba, 0xf2, 0xd8, 0x57, + 0xe3, 0x48, 0x62, 0x09, 0xe3, 0x7c, 0x55, 0xe8, 0xc5, 0xa4, 0xfb, 0xab, 0x12, 0xba, 0x9a, 0x10, + 0x2a, 0x50, 0x85, 0x92, 0x64, 0x62, 0x54, 0x09, 0xb1, 0x84, 0x71, 0xb8, 0x18, 0x16, 0x1d, 0x07, + 0x4b, 0xb2, 0xaa, 0x34, 0x1f, 0x41, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, + 0x31, 0x78, 0xa2, 0xb7, 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x0e, 0xe7, 0x19, 0x79, 0xa9, 0x15, + 0xf3, 0x4c, 0xc6, 0xe6, 0x19, 0x17, 0x95, 0xf2, 0x8c, 0x0f, 0xeb, 0x9f, 0x84, 0x49, 0x3e, 0x86, + 0xcb, 0x13, 0x26, 0xd5, 0xd8, 0x9f, 0xa9, 0xea, 0x4d, 0xca, 0x24, 0x29, 0xa7, 0x8c, 0xd7, 0x2b, + 0x30, 0xc1, 0x87, 0xb6, 0x5d, 0x72, 0xb9, 0x53, 0xec, 0x4f, 0x40, 0xf4, 0x66, 0xa4, 0x82, 0x94, + 0x50, 0x42, 0xcf, 0xae, 0xc3, 0x4c, 0x74, 0x35, 0x0a, 0x97, 0xdf, 0x31, 0x5a, 0x7e, 0xcf, 0x85, + 0xcb, 0xaf, 0x12, 0x2e, 0xdf, 0x25, 0x78, 0x24, 0xb2, 0xf6, 0xc4, 0x91, 0x24, 0xc2, 0x24, 0xb7, + 0x61, 0x5c, 0x28, 0x39, 0x61, 0xf0, 0x70, 0x04, 0x78, 0xb8, 0x1b, 0x1c, 0x84, 0x56, 0xc4, 0xea, + 0x21, 0x80, 0xd5, 0x30, 0xf8, 0xe3, 0x30, 0x21, 0xd6, 0x9b, 0x30, 0x7a, 0x3c, 0x02, 0x3d, 0x1e, + 0x81, 0x8e, 0x3e, 0x77, 0x32, 0x02, 0x9d, 0x94, 0xd0, 0x7b, 0x3d, 0xcf, 0x3d, 0x15, 0x81, 0x9e, + 0x8a, 0x40, 0x47, 0x9f, 0x5b, 0x8f, 0x40, 0xeb, 0x61, 0xf4, 0x73, 0x30, 0x29, 0x95, 0x98, 0x30, + 0x7c, 0x34, 0x02, 0x3e, 0x1a, 0x86, 0x3f, 0x0f, 0x9a, 0x5c, 0x5c, 0xc2, 0xf8, 0xc9, 0x08, 0xfc, + 0x64, 0xd4, 0xe9, 0xa3, 0xb5, 0x1f, 0x89, 0x80, 0x8f, 0x44, 0x9e, 0x3e, 0x1a, 0xaf, 0x45, 0xe0, + 0xb5, 0x30, 0x3e, 0x0f, 0x99, 0x70, 0x35, 0x09, 0x63, 0x53, 0x11, 0xd8, 0x94, 0x6c, 0x77, 0xa1, + 0x98, 0xc4, 0x45, 0xfa, 0x58, 0x8f, 0x74, 0x11, 0x4a, 0x48, 0x1c, 0x49, 0x26, 0x4c, 0xf2, 0x29, + 0x38, 0x17, 0x55, 0x32, 0x22, 0x38, 0x16, 0xc2, 0x1c, 0x13, 0xb8, 0x47, 0x0c, 0x9a, 0x3d, 0xb3, + 0x25, 0x35, 0x4e, 0xb3, 0x9f, 0x86, 0xe9, 0x88, 0xc2, 0x11, 0x41, 0xbb, 0x24, 0x76, 0x63, 0xd9, + 0x10, 0x2d, 0x29, 0x02, 0x96, 0x7d, 0xbc, 0xeb, 0x58, 0xb6, 0x17, 0xee, 0xca, 0xbe, 0x35, 0x0d, + 0x13, 0xac, 0x3c, 0xed, 0xb4, 0xeb, 0xa8, 0x8d, 0xea, 0xfa, 0x5f, 0xea, 0xdd, 0x3b, 0x2d, 0x77, + 0x17, 0x35, 0x86, 0x3a, 0x43, 0x0b, 0xf5, 0xe9, 0x9e, 0x2d, 0xd4, 0x95, 0x78, 0xfa, 0xb8, 0x4e, + 0xaa, 0xd4, 0xd5, 0x49, 0x3d, 0xdd, 0x9b, 0xb4, 0x57, 0x43, 0x55, 0xea, 0x6a, 0xa8, 0xfa, 0x93, + 0x44, 0xf6, 0x55, 0x1b, 0xdd, 0x7d, 0xd5, 0x42, 0x6f, 0x96, 0xde, 0xed, 0xd5, 0x46, 0x77, 0x7b, + 0x15, 0xc3, 0x13, 0xdd, 0x65, 0x6d, 0x74, 0x77, 0x59, 0x7d, 0x78, 0x7a, 0x37, 0x5b, 0x1b, 0xdd, + 0xcd, 0x56, 0x0c, 0x4f, 0x74, 0xcf, 0xb5, 0x19, 0xd1, 0x73, 0x3d, 0xd3, 0x9b, 0xa8, 0x5f, 0xeb, + 0xb5, 0x15, 0xd5, 0x7a, 0x2d, 0xf6, 0x51, 0xaa, 0x6f, 0x07, 0xb6, 0x19, 0xd1, 0x81, 0xc5, 0x29, + 0xd6, 0xa3, 0x11, 0xdb, 0x8a, 0x6a, 0xc4, 0x62, 0x15, 0xeb, 0xd5, 0x8f, 0xfd, 0x05, 0xb9, 0x1f, + 0xbb, 0xdc, 0x9b, 0x29, 0xba, 0x2d, 0xdb, 0xe8, 0x6e, 0xcb, 0x16, 0xe2, 0x72, 0x2e, 0xaa, 0x3b, + 0xfb, 0x74, 0xcf, 0xee, 0x6c, 0x80, 0x14, 0x8e, 0x6b, 0xd2, 0x5e, 0xee, 0xd5, 0xa4, 0x2d, 0xc5, + 0x73, 0xf7, 0xef, 0xd5, 0x0e, 0x7a, 0xf4, 0x6a, 0xcf, 0xc6, 0x13, 0xff, 0xac, 0x65, 0xfb, 0x59, + 0xcb, 0xf6, 0xb3, 0x96, 0xed, 0x67, 0x2d, 0xdb, 0x4f, 0xbf, 0x65, 0xcb, 0x27, 0x3f, 0xff, 0xd5, + 0x79, 0x25, 0xf7, 0x5f, 0x55, 0xff, 0xaf, 0x67, 0xbd, 0x64, 0x79, 0x27, 0xb8, 0xbc, 0x6d, 0x43, + 0x86, 0xfc, 0xdd, 0x8b, 0xa6, 0xd9, 0x6a, 0x59, 0xf6, 0x31, 0xeb, 0xd9, 0x16, 0xbb, 0xb7, 0x12, + 0x19, 0x80, 0xfc, 0xe5, 0x90, 0x6d, 0x2a, 0xcc, 0x96, 0x1b, 0x3b, 0x18, 0xd1, 0xef, 0x42, 0xba, + 0xe9, 0x1e, 0xfb, 0x6c, 0x89, 0xae, 0x85, 0x50, 0x62, 0xa3, 0x57, 0x1a, 0x90, 0x41, 0xd3, 0x1f, + 0xc0, 0xaa, 0x1d, 0x9e, 0x7a, 0x81, 0x6a, 0x6a, 0x9c, 0x6a, 0xd8, 0xa7, 0xa2, 0x6a, 0x87, 0xc1, + 0x08, 0x0e, 0x5b, 0x59, 0xf7, 0xb8, 0x4a, 0x27, 0x04, 0xcf, 0x4b, 0x30, 0x29, 0x69, 0x1b, 0x91, + 0xf3, 0x0f, 0xe1, 0x1b, 0xac, 0x98, 0xac, 0x79, 0x5c, 0x4e, 0x84, 0x03, 0x32, 0xf7, 0x04, 0x8c, + 0x0b, 0xdc, 0x7a, 0x06, 0x94, 0x23, 0xf6, 0x8d, 0x4a, 0xe5, 0x28, 0xf7, 0x15, 0x05, 0xd2, 0xec, + 0x75, 0x82, 0x5d, 0xd3, 0x6a, 0xeb, 0x2f, 0x42, 0xb2, 0xc1, 0xbf, 0xd5, 0xf4, 0xb0, 0xdf, 0xa0, + 0x25, 0x0c, 0xfa, 0x06, 0x0c, 0xb7, 0xfd, 0x6f, 0x3d, 0x3d, 0xd4, 0xd7, 0x62, 0x09, 0x3c, 0x77, + 0x5f, 0x81, 0x29, 0xf6, 0xb6, 0xab, 0xcb, 0xde, 0x81, 0x36, 0x5b, 0xb3, 0xdf, 0x54, 0x60, 0xcc, + 0x3f, 0xd2, 0x0f, 0x61, 0xc2, 0x3f, 0xa0, 0xef, 0xd9, 0xd3, 0x48, 0xcd, 0x87, 0x2c, 0xdc, 0xc5, + 0xb1, 0x14, 0xf1, 0x89, 0x3e, 0x90, 0xa2, 0x6b, 0xb2, 0x38, 0x38, 0x5b, 0x80, 0xe9, 0x08, 0xb1, + 0xb3, 0x2c, 0xc8, 0xb9, 0x8b, 0x30, 0x56, 0x71, 0x3c, 0xfa, 0xe3, 0x39, 0xfa, 0xb9, 0xd0, 0x53, + 0x85, 0x62, 0x42, 0x1b, 0x22, 0xe0, 0xc5, 0x8b, 0x30, 0xca, 0xb2, 0x5f, 0x1f, 0x81, 0xc4, 0x76, + 0x41, 0x1b, 0x22, 0xff, 0x17, 0x35, 0x85, 0xfc, 0x5f, 0xd2, 0x12, 0xc5, 0xad, 0x87, 0x78, 0xda, + 0x34, 0xf4, 0xce, 0x83, 0xb9, 0x21, 0xe9, 0x69, 0x93, 0xf2, 0xe6, 0xfb, 0x73, 0x43, 0x87, 0x23, + 0xd4, 0x3c, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x65, 0x95, 0x4a, 0x04, 0x31, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1985,6 +2022,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2463,6 +2570,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3082,6 +3212,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3090,26 +3230,9 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -3158,7 +3281,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -3579,6 +3702,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -3598,14 +3733,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3613,43 +3748,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -3678,9 +3813,11 @@ func (m *Message) Size() (n int) { n += 5 } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -3693,8 +3830,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3709,8 +3847,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3846,7 +3985,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3865,8 +4008,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3992,7 +4136,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4011,8 +4159,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4037,8 +4186,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4046,7 +4196,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4094,6 +4248,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -4642,6 +4807,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4650,481 +4825,506 @@ func valueToStringTheproto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Message) Marshal() (data []byte, err error) { +func (m *Message) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Message) MarshalTo(data []byte) (int, error) { +func (m *Message) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Name) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Name))) - i += copy(data[i:], m.Name) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) } if m.Hilarity != 0 { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Hilarity)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) } if m.HeightInCm != 0 { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintTheproto3(data, i, uint64(m.HeightInCm)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) } if len(m.Data) > 0 { - data[i] = 0x22 + dAtA[i] = 0x22 i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Data))) - i += copy(data[i:], m.Data) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) + i += copy(dAtA[i:], m.Data) } if len(m.Key) > 0 { + dAtA2 := make([]byte, len(m.Key)*10) + var j1 int for _, num := range m.Key { - data[i] = 0x28 - i++ - i = encodeVarintTheproto3(data, i, uint64(num)) + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ } + dAtA[i] = 0x2a + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(j1)) + i += copy(dAtA[i:], dAtA2[:j1]) } if m.Nested != nil { - data[i] = 0x32 + dAtA[i] = 0x32 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Nested.Size())) - n1, err := m.Nested.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) + n3, err := m.Nested.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n1 + i += n3 } if m.ResultCount != 0 { - data[i] = 0x38 + dAtA[i] = 0x38 i++ - i = encodeVarintTheproto3(data, i, uint64(m.ResultCount)) + i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) } if m.TrueScotsman { - data[i] = 0x40 + dAtA[i] = 0x40 i++ if m.TrueScotsman { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } if m.Score != 0 { - data[i] = 0x4d + dAtA[i] = 0x4d i++ - *(*float32)(unsafe.Pointer(&data[i])) = m.Score + *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Score i += 4 } if len(m.Terrain) > 0 { for k := range m.Terrain { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Terrain[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n2, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n4, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 } - i += n2 } } if m.Proto2Field != nil { - data[i] = 0x5a + dAtA[i] = 0x5a i++ - i = encodeVarintTheproto3(data, i, uint64(m.Proto2Field.Size())) - n3, err := m.Proto2Field.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) + n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n5 } if len(m.Proto2Value) > 0 { for k := range m.Proto2Value { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.Proto2Value[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + mapSize := 1 + sovTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n4, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n6, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 } - i += n4 } } return i, nil } -func (m *Nested) Marshal() (data []byte, err error) { +func (m *Nested) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Nested) MarshalTo(data []byte) (int, error) { +func (m *Nested) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Bunny) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(m.Bunny))) - i += copy(data[i:], m.Bunny) + i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) + i += copy(dAtA[i:], m.Bunny) } return i, nil } -func (m *AllMaps) Marshal() (data []byte, err error) { +func (m *AllMaps) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMaps) MarshalTo(data []byte) (int, error) { +func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.StringToDoubleMap) > 0 { for k := range m.StringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { for k := range m.StringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { for k := range m.Int32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { for k := range m.Int64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { for k := range m.Uint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { for k := range m.Uint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { for k := range m.Sint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { for k := range m.Sint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[k] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { for k := range m.Fixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { for k := range m.Sfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[k] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { for k := range m.Fixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { for k := range m.Sfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[k] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { for k := range m.BoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[k] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } } if len(m.StringMap) > 0 { for k := range m.StringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { for k := range m.StringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { for k := range m.StringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { for k := range m.StringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n5, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n7, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 } - i += n5 } } return i, nil } -func (m *AllMapsOrdered) Marshal() (data []byte, err error) { +func (m *AllMapsOrdered) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { +func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -5136,18 +5336,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.StringToDoubleMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } if len(m.StringToFloatMap) > 0 { @@ -5157,18 +5357,18 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.StringToFloatMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x15 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(math.Float32bits(float32(v)))) + i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) } } if len(m.Int32Map) > 0 { @@ -5178,17 +5378,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.Int32Map[int32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Int64Map) > 0 { @@ -5198,17 +5398,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { - data[i] = 0x22 + dAtA[i] = 0x22 i++ v := m.Int64Map[int64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint32Map) > 0 { @@ -5218,17 +5418,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { - data[i] = 0x2a + dAtA[i] = 0x2a i++ v := m.Uint32Map[uint32(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Uint64Map) > 0 { @@ -5238,17 +5438,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { - data[i] = 0x32 + dAtA[i] = 0x32 i++ v := m.Uint64Map[uint64(k)] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.Sint32Map) > 0 { @@ -5258,17 +5458,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { - data[i] = 0x3a + dAtA[i] = 0x3a i++ v := m.Sint32Map[int32(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint32(v)<<1)^uint32((v>>31)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) } } if len(m.Sint64Map) > 0 { @@ -5278,17 +5478,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { - data[i] = 0x42 + dAtA[i] = 0x42 i++ v := m.Sint64Map[int64(k)] mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(v)<<1)^uint64((v>>63)))) + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) } } if len(m.Fixed32Map) > 0 { @@ -5298,17 +5498,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { - data[i] = 0x4a + dAtA[i] = 0x4a i++ v := m.Fixed32Map[uint32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Sfixed32Map) > 0 { @@ -5318,17 +5518,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { - data[i] = 0x52 + dAtA[i] = 0x52 i++ v := m.Sfixed32Map[int32(k)] mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xd + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(data, i, uint32(k)) - data[i] = 0x15 + i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(data, i, uint32(v)) + i = encodeFixed32Theproto3(dAtA, i, uint32(v)) } } if len(m.Fixed64Map) > 0 { @@ -5338,17 +5538,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { - data[i] = 0x5a + dAtA[i] = 0x5a i++ v := m.Fixed64Map[uint64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.Sfixed64Map) > 0 { @@ -5358,17 +5558,17 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { - data[i] = 0x62 + dAtA[i] = 0x62 i++ v := m.Sfixed64Map[int64(k)] mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x9 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(data, i, uint64(k)) - data[i] = 0x11 + i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(v)) + i = encodeFixed64Theproto3(dAtA, i, uint64(v)) } } if len(m.BoolMap) > 0 { @@ -5378,25 +5578,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { - data[i] = 0x6a + dAtA[i] = 0x6a i++ v := m.BoolMap[bool(k)] mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x10 + dAtA[i] = 0x10 i++ if v { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ } @@ -5408,19 +5608,19 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { - data[i] = 0x72 + dAtA[i] = 0x72 i++ v := m.StringMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.StringToBytesMap) > 0 { @@ -5430,19 +5630,25 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { - data[i] = 0x7a + dAtA[i] = 0x7a i++ v := m.StringToBytesMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } if len(m.StringToEnumMap) > 0 { @@ -5452,20 +5658,20 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { - data[i] = 0x82 + dAtA[i] = 0x82 i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToEnumMap[string(k)] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x10 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x10 i++ - i = encodeVarintTheproto3(data, i, uint64(v)) + i = encodeVarintTheproto3(dAtA, i, uint64(v)) } } if len(m.StringToMsgMap) > 0 { @@ -5475,184 +5681,196 @@ func (m *AllMapsOrdered) MarshalTo(data []byte) (int, error) { } github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { - data[i] = 0x8a + dAtA[i] = 0x8a i++ - data[i] = 0x1 + dAtA[i] = 0x1 i++ v := m.StringToMsgMap[string(k)] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa - i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x12 + mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n6, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n8, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 } - i += n6 } } return i, nil } -func (m *MessageWithMap) Marshal() (data []byte, err error) { +func (m *MessageWithMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *MessageWithMap) MarshalTo(data []byte) (int, error) { +func (m *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NameMapping) > 0 { for k := range m.NameMapping { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NameMapping[k] mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(k)) - data[i] = 0x12 + i = encodeVarintTheproto3(dAtA, i, uint64(k)) + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } if len(m.MsgMapping) > 0 { for k := range m.MsgMapping { - data[i] = 0x12 + dAtA[i] = 0x12 i++ v := m.MsgMapping[k] - if v == nil { - return 0, errors.New("proto: map has nil element") + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTheproto3(uint64(msgSize)) } - msgSize := v.Size() - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + msgSize + sovTheproto3(uint64(msgSize)) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 - i++ - i = encodeVarintTheproto3(data, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - data[i] = 0x12 + mapSize := 1 + sozTheproto3(uint64(k)) + msgSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ - i = encodeVarintTheproto3(data, i, uint64(v.Size())) - n7, err := v.MarshalTo(data[i:]) - if err != nil { - return 0, err + i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) + n9, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 } - i += n7 } } if len(m.ByteMapping) > 0 { for k := range m.ByteMapping { - data[i] = 0x1a + dAtA[i] = 0x1a i++ v := m.ByteMapping[k] - mapSize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0x8 + byteSize := 0 + if len(v) > 0 { + byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapSize := 1 + 1 + byteSize + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 i++ if k { - data[i] = 1 + dAtA[i] = 1 } else { - data[i] = 0 + dAtA[i] = 0 } i++ - data[i] = 0x12 - i++ - i = encodeVarintTheproto3(data, i, uint64(len(v))) - i += copy(data[i:], v) + if len(v) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } } } return i, nil } -func (m *FloatingPoint) Marshal() (data []byte, err error) { +func (m *FloatingPoint) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *FloatingPoint) MarshalTo(data []byte) (int, error) { +func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.F != 0 { - data[i] = 0x9 + dAtA[i] = 0x9 i++ - *(*float64)(unsafe.Pointer(&data[i])) = m.F + *(*float64)(unsafe.Pointer(&dAtA[i])) = m.F i += 8 } return i, nil } -func (m *Uint128Pair) Marshal() (data []byte, err error) { +func (m *Uint128Pair) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Uint128Pair) MarshalTo(data []byte) (int, error) { +func (m *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(m.Left.Size())) - n8, err := m.Left.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) + n10, err := m.Left.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n10 if m.Right != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintTheproto3(data, i, uint64(m.Right.Size())) - n9, err := m.Right.MarshalTo(data[i:]) + i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) + n11, err := m.Right.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n11 } return i, nil } -func (m *ContainsNestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -5660,168 +5878,196 @@ func (m *ContainsNestedMap) MarshalTo(data []byte) (int, error) { return i, nil } -func (m *ContainsNestedMap_NestedMap) Marshal() (data []byte, err error) { +func (m *ContainsNestedMap_NestedMap) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *ContainsNestedMap_NestedMap) MarshalTo(data []byte) (int, error) { +func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.NestedMapField) > 0 { for k := range m.NestedMapField { - data[i] = 0xa + dAtA[i] = 0xa i++ v := m.NestedMapField[k] mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(data, i, uint64(mapSize)) - data[i] = 0xa + i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa i++ - i = encodeVarintTheproto3(data, i, uint64(len(k))) - i += copy(data[i:], k) - data[i] = 0x11 + i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(data, i, uint64(math.Float64bits(float64(v)))) + i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) } } return i, nil } -func encodeFixed64Theproto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func (m *NotPacked) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + for _, num := range m.Key { + dAtA[i] = 0x28 + i++ + i = encodeVarintTheproto3(dAtA, i, uint64(num)) + } + } + return i, nil +} + +func encodeFixed64Theproto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Theproto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Theproto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintTheproto3(data []byte, offset int, v uint64) int { +func encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } +func init() { proto.RegisterFile("combos/unsafemarshaler/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1588 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x1b, 0xc5, - 0x1b, 0xce, 0xda, 0x8e, 0x3f, 0x5e, 0x7f, 0x6d, 0xa6, 0xfd, 0xfd, 0x64, 0x22, 0x91, 0xa4, 0xae, - 0x94, 0xa6, 0x15, 0x75, 0x4a, 0x5a, 0xa0, 0x84, 0x42, 0x89, 0xdd, 0x58, 0x0d, 0x4d, 0xdc, 0x60, - 0x27, 0x0d, 0xa8, 0x12, 0xd1, 0x3a, 0x59, 0xc7, 0x2b, 0xec, 0xdd, 0x68, 0x3f, 0x2a, 0x72, 0xeb, - 0x9f, 0xc1, 0x0d, 0x71, 0xe3, 0x88, 0x7a, 0x40, 0x1c, 0xe1, 0x96, 0x23, 0x12, 0x17, 0xc4, 0xa1, - 0x6a, 0xcb, 0xa5, 0xc7, 0x1e, 0x7b, 0x64, 0x3e, 0x76, 0xd7, 0xb3, 0xeb, 0x59, 0x2f, 0xe5, 0xc2, - 0x25, 0x87, 0x91, 0x77, 0xde, 0x7d, 0x9e, 0x67, 0xde, 0x99, 0x9d, 0x79, 0xf7, 0xd1, 0x1a, 0x16, - 0x0f, 0x8c, 0x61, 0xd7, 0xb0, 0x96, 0x1d, 0xdd, 0x52, 0x7a, 0xea, 0x50, 0x31, 0xad, 0xbe, 0x32, - 0x50, 0xcd, 0x65, 0xbb, 0xaf, 0x1e, 0x9b, 0x86, 0x6d, 0x5c, 0xaf, 0xd1, 0x1f, 0x94, 0xf3, 0x03, - 0xb3, 0x57, 0x8f, 0x34, 0xbb, 0xef, 0x74, 0x6b, 0x98, 0xb9, 0x7c, 0x64, 0x1c, 0x19, 0xcb, 0x34, - 0xde, 0x75, 0x7a, 0xb4, 0x47, 0x3b, 0xf4, 0x8a, 0x31, 0x67, 0x3f, 0x88, 0x84, 0xdb, 0xaa, 0x65, - 0x2f, 0xbb, 0xe3, 0x77, 0x0d, 0xbb, 0x4f, 0x06, 0x25, 0x31, 0x46, 0xac, 0xfe, 0x3a, 0x0d, 0x99, - 0x2d, 0xd5, 0xb2, 0x94, 0x23, 0x15, 0x21, 0x48, 0xe9, 0xca, 0x50, 0xad, 0x48, 0x0b, 0xd2, 0x52, - 0xae, 0x4d, 0xaf, 0xd1, 0x7b, 0x90, 0xed, 0x6b, 0x03, 0xc5, 0xd4, 0xec, 0x93, 0x4a, 0x02, 0xc7, - 0x4b, 0x2b, 0x6f, 0xd5, 0x46, 0x69, 0xbb, 0xcc, 0xda, 0x5d, 0x67, 0x68, 0x38, 0x66, 0xdb, 0x87, - 0xa2, 0x05, 0x28, 0xf4, 0x55, 0xed, 0xa8, 0x6f, 0xef, 0x6b, 0xfa, 0xfe, 0xc1, 0xb0, 0x92, 0xc4, - 0xd4, 0x62, 0x1b, 0x58, 0x6c, 0x43, 0x6f, 0x0c, 0xc9, 0x60, 0x87, 0x8a, 0xad, 0x54, 0x52, 0xf8, - 0x4e, 0xa1, 0x4d, 0xaf, 0x91, 0x0c, 0xc9, 0xaf, 0xd5, 0x93, 0xca, 0xf4, 0x42, 0x72, 0x29, 0xd5, - 0x26, 0x97, 0xe8, 0x32, 0xa4, 0x75, 0x9c, 0xac, 0x7a, 0x58, 0x49, 0x63, 0x5c, 0x7e, 0x65, 0x86, - 0x1b, 0xbc, 0x45, 0x6f, 0xb4, 0x5d, 0x00, 0xba, 0x00, 0x05, 0x53, 0xb5, 0x9c, 0x81, 0xbd, 0x7f, - 0x60, 0x38, 0xba, 0x5d, 0xc9, 0x60, 0x42, 0xb2, 0x9d, 0x67, 0xb1, 0x06, 0x09, 0xa1, 0x8b, 0x50, - 0xb4, 0x4d, 0x47, 0xdd, 0xb7, 0x0e, 0x0c, 0xdb, 0x1a, 0x2a, 0x7a, 0x25, 0x8b, 0x31, 0xd9, 0x76, - 0x81, 0x04, 0x3b, 0x6e, 0x0c, 0x9d, 0x87, 0x69, 0x7c, 0xdf, 0x54, 0x2b, 0x39, 0x7c, 0x33, 0xd1, - 0x66, 0x1d, 0xf4, 0x21, 0x64, 0x6c, 0xd5, 0x34, 0x15, 0x4d, 0xaf, 0x00, 0x4e, 0x2f, 0xbf, 0x32, - 0x2f, 0x58, 0x86, 0x1d, 0x86, 0x58, 0xd7, 0x6d, 0xf3, 0xa4, 0xed, 0xe1, 0xf1, 0x12, 0x16, 0x28, - 0x6e, 0x65, 0xbf, 0xa7, 0xa9, 0x83, 0xc3, 0x4a, 0x9e, 0xce, 0x04, 0xd5, 0xe8, 0x53, 0x68, 0x69, - 0xfa, 0xfd, 0x63, 0xbb, 0xa5, 0xd8, 0xda, 0x23, 0xb5, 0x9d, 0x67, 0xb8, 0x26, 0x81, 0xa1, 0xa6, - 0x4f, 0x7b, 0xa4, 0x0c, 0x1c, 0xb5, 0x52, 0xa4, 0xc3, 0x5e, 0x14, 0x0c, 0xbb, 0x4d, 0x61, 0x0f, - 0x08, 0x8a, 0x0d, 0xed, 0xea, 0xd0, 0xc8, 0xec, 0x16, 0x14, 0xf8, 0xbc, 0xbc, 0x45, 0x96, 0xe8, - 0xf2, 0xd0, 0x45, 0xbe, 0x04, 0xd3, 0x6c, 0x88, 0x44, 0xd4, 0x1a, 0xb3, 0xfb, 0xab, 0x89, 0x9b, - 0xd2, 0xec, 0x36, 0xc8, 0xe1, 0xf1, 0x04, 0x92, 0x8b, 0x41, 0x49, 0x99, 0x9f, 0xec, 0xba, 0xee, - 0x0c, 0x39, 0xc5, 0xea, 0x6d, 0x48, 0xb3, 0xfd, 0x83, 0xf2, 0x90, 0xd9, 0x6d, 0xdd, 0x6b, 0xdd, - 0xdf, 0x6b, 0xc9, 0x53, 0x28, 0x0b, 0xa9, 0xed, 0xdd, 0x56, 0x47, 0x96, 0x50, 0x11, 0x72, 0x9d, - 0xcd, 0xb5, 0xed, 0xce, 0xce, 0x46, 0xe3, 0x9e, 0x9c, 0x40, 0x65, 0xc8, 0xd7, 0x37, 0x36, 0x37, - 0xf7, 0xeb, 0x6b, 0x1b, 0x9b, 0xeb, 0x5f, 0xca, 0xc9, 0xea, 0x1c, 0xa4, 0x59, 0x9e, 0xe4, 0xd9, - 0x75, 0x1d, 0x5d, 0x3f, 0x71, 0xb7, 0x30, 0xeb, 0x54, 0x9f, 0x20, 0xc8, 0xac, 0x0d, 0x06, 0x5b, - 0xca, 0xb1, 0x85, 0xf6, 0x60, 0xa6, 0x63, 0x9b, 0x9a, 0x7e, 0xb4, 0x63, 0xdc, 0x31, 0x9c, 0xee, - 0x40, 0xc5, 0x51, 0x8c, 0x26, 0x4b, 0x7b, 0x99, 0x9b, 0xb7, 0x0b, 0xaf, 0x8d, 0x61, 0xd9, 0x02, - 0xcf, 0x58, 0xe1, 0x38, 0xda, 0x01, 0xd9, 0x03, 0x37, 0x07, 0x86, 0x62, 0x13, 0xdd, 0x04, 0xd5, - 0x5d, 0x9a, 0xa0, 0xeb, 0x41, 0x99, 0xac, 0x6c, 0x85, 0xc2, 0xe8, 0x16, 0x64, 0x37, 0x74, 0xfb, - 0xfa, 0x0a, 0x51, 0x4b, 0x52, 0xb5, 0x05, 0x81, 0x9a, 0x07, 0x61, 0x2a, 0x59, 0xcd, 0xed, 0xba, - 0xec, 0xf7, 0x6f, 0x10, 0x76, 0x6a, 0x12, 0x9b, 0x42, 0x46, 0x6c, 0xda, 0x45, 0xb7, 0x21, 0xb7, - 0xeb, 0x49, 0xd1, 0x33, 0x99, 0x5f, 0xb9, 0x20, 0xa0, 0xfb, 0x18, 0xc6, 0xcf, 0x39, 0xfe, 0xf0, - 0xae, 0x00, 0x1b, 0x3f, 0x3d, 0x51, 0x80, 0x4b, 0x80, 0x0a, 0xf8, 0x19, 0x74, 0xfc, 0x0c, 0x32, - 0x91, 0x02, 0x9d, 0x50, 0x06, 0x16, 0x9f, 0x41, 0xc7, 0xcf, 0x20, 0x3b, 0x51, 0x80, 0xcf, 0xc0, - 0xf2, 0x33, 0xa8, 0x03, 0x34, 0xb5, 0x6f, 0xd4, 0x43, 0x96, 0x42, 0x8e, 0x2a, 0x54, 0x05, 0x0a, - 0x23, 0x10, 0x93, 0x80, 0x9e, 0x1f, 0x40, 0xeb, 0x90, 0xef, 0x8c, 0xba, 0x6e, 0xf9, 0xb8, 0x28, - 0x4a, 0xa3, 0x17, 0x52, 0xc9, 0x5b, 0x9c, 0x8c, 0x97, 0x0a, 0x9b, 0x4c, 0x7e, 0x72, 0x2a, 0xdc, - 0x6c, 0x58, 0x2a, 0x6c, 0x3a, 0x7e, 0x2a, 0x4c, 0xa4, 0x10, 0x93, 0x0a, 0xa7, 0xe2, 0xa6, 0xc2, - 0x64, 0x70, 0x31, 0xac, 0x1b, 0x06, 0x41, 0xba, 0x55, 0x69, 0x5e, 0x20, 0xe1, 0x22, 0xdc, 0x62, - 0xd8, 0x65, 0x3d, 0xfa, 0x44, 0xe8, 0x26, 0x27, 0xe4, 0x52, 0xf4, 0x13, 0xf1, 0x30, 0xde, 0x13, - 0xf1, 0xfa, 0xfc, 0x39, 0xab, 0x9f, 0xe0, 0xaa, 0x42, 0x74, 0xca, 0xb1, 0xe7, 0xcc, 0x83, 0x86, - 0xce, 0x99, 0x17, 0x46, 0x9f, 0x43, 0xd9, 0x83, 0x92, 0xf2, 0x44, 0x44, 0x65, 0x2a, 0x7a, 0x69, - 0x82, 0xa8, 0x8b, 0x64, 0x9a, 0x65, 0x2b, 0x18, 0x45, 0x2d, 0x28, 0x79, 0xc0, 0x2d, 0x8b, 0x4e, - 0x77, 0x86, 0x2a, 0x2e, 0x4e, 0x50, 0x64, 0x40, 0x26, 0x58, 0xb2, 0x02, 0xc1, 0xd9, 0x3b, 0xf0, - 0x7f, 0x71, 0x35, 0xe2, 0xcb, 0x6f, 0x8e, 0x95, 0xdf, 0xf3, 0x7c, 0xf9, 0x95, 0xf8, 0xf2, 0xdd, - 0x80, 0xff, 0x09, 0x6b, 0x4f, 0x9c, 0x48, 0x82, 0x17, 0xf9, 0x08, 0x8a, 0x81, 0x92, 0xc3, 0x93, - 0xa7, 0x05, 0xe4, 0xe9, 0x71, 0xf2, 0x68, 0x6b, 0x09, 0xde, 0x1e, 0x01, 0x72, 0x92, 0x27, 0xdf, - 0x82, 0x52, 0xb0, 0xde, 0xf0, 0xec, 0xa2, 0x80, 0x5d, 0x14, 0xb0, 0xc5, 0x63, 0xa7, 0x04, 0xec, - 0x54, 0x88, 0xdd, 0x89, 0x1c, 0x7b, 0x46, 0xc0, 0x9e, 0x11, 0xb0, 0xc5, 0x63, 0x23, 0x01, 0x1b, - 0xf1, 0xec, 0x8f, 0xa1, 0x1c, 0x2a, 0x31, 0x3c, 0x3d, 0x23, 0xa0, 0x67, 0x78, 0xfa, 0x27, 0xf8, - 0xd0, 0xf4, 0xa2, 0xf9, 0x65, 0x01, 0xbf, 0x2c, 0x1a, 0x5e, 0x9c, 0x7d, 0x5a, 0x40, 0x4f, 0x0b, - 0x87, 0x17, 0xf3, 0x65, 0x01, 0x5f, 0xe6, 0xf9, 0xab, 0x50, 0xe0, 0xab, 0x09, 0xcf, 0xcd, 0x0a, - 0xb8, 0xd9, 0xf0, 0xba, 0x07, 0x8a, 0x49, 0xdc, 0x4e, 0xcf, 0x45, 0x1c, 0x97, 0x40, 0x09, 0x89, - 0x13, 0x29, 0xf0, 0x22, 0x0f, 0xe0, 0xbc, 0xa8, 0x64, 0x08, 0x34, 0x96, 0x78, 0x8d, 0x12, 0xf1, - 0x88, 0x23, 0xb3, 0x47, 0x58, 0x01, 0xe3, 0x34, 0xfb, 0x10, 0xce, 0x09, 0x0a, 0x87, 0x40, 0xb6, - 0x16, 0x74, 0x63, 0x15, 0x4e, 0x96, 0x16, 0x01, 0x2c, 0xb1, 0x6d, 0xe0, 0xcd, 0xc9, 0xbb, 0xb2, - 0x9f, 0xce, 0x41, 0xc9, 0x2d, 0x4f, 0xf7, 0xcd, 0x43, 0xd5, 0xc4, 0xee, 0xea, 0xab, 0x68, 0xef, - 0x74, 0x6d, 0xbc, 0xa8, 0xb9, 0xac, 0x37, 0xb0, 0x50, 0x0f, 0x23, 0x2d, 0xd4, 0x72, 0xbc, 0x7c, - 0x9c, 0x93, 0x6a, 0x8c, 0x39, 0xa9, 0x4b, 0xd1, 0xa2, 0x51, 0x86, 0xaa, 0x31, 0x66, 0xa8, 0x26, - 0x8b, 0x08, 0x7d, 0x55, 0x73, 0xdc, 0x57, 0x2d, 0x45, 0xab, 0x44, 0xdb, 0xab, 0xe6, 0xb8, 0xbd, - 0x8a, 0xd1, 0x11, 0xbb, 0xac, 0xe6, 0xb8, 0xcb, 0x9a, 0xa0, 0x13, 0x6d, 0xb6, 0x9a, 0xe3, 0x66, - 0x2b, 0x46, 0x47, 0xec, 0xb9, 0x36, 0x04, 0x9e, 0xeb, 0x72, 0xb4, 0xd0, 0x24, 0xeb, 0xb5, 0x29, - 0xb2, 0x5e, 0x57, 0x26, 0x24, 0x35, 0xd1, 0x81, 0x6d, 0x08, 0x1c, 0x58, 0x5c, 0x62, 0x11, 0x46, - 0x6c, 0x53, 0x64, 0xc4, 0x62, 0x13, 0x8b, 0xf2, 0x63, 0x9f, 0x86, 0xfd, 0xd8, 0x62, 0xb4, 0x92, - 0xd8, 0x96, 0x35, 0xc7, 0x6d, 0xd9, 0x52, 0xdc, 0x99, 0x13, 0xb9, 0xb3, 0x87, 0x91, 0xee, 0xec, - 0x1f, 0x1c, 0xe1, 0x38, 0x93, 0xf6, 0x45, 0x94, 0x49, 0xab, 0xc5, 0x6b, 0x4f, 0xf6, 0x6a, 0xbb, - 0x11, 0x5e, 0xed, 0x6a, 0xbc, 0xf0, 0x99, 0x65, 0x3b, 0xb3, 0x6c, 0x67, 0x96, 0xed, 0xcc, 0xb2, - 0xfd, 0xf7, 0x96, 0x6d, 0x35, 0xf5, 0xed, 0xf7, 0xf3, 0x52, 0xf5, 0xf7, 0x24, 0x94, 0xdc, 0x2f, - 0x83, 0x7b, 0x9a, 0xdd, 0x27, 0xe5, 0x6d, 0x0b, 0x0a, 0xe4, 0x63, 0xee, 0xfe, 0x50, 0x39, 0x3e, - 0xc6, 0x44, 0xd7, 0xb3, 0x5d, 0x19, 0xff, 0x94, 0xe8, 0x12, 0x6a, 0x2d, 0x8c, 0xde, 0x62, 0x60, - 0xf7, 0x75, 0xa3, 0x8f, 0x22, 0xe8, 0x33, 0xc8, 0x0f, 0xad, 0x23, 0x5f, 0x2d, 0x31, 0xf6, 0x22, - 0x0c, 0xa9, 0xb1, 0x99, 0x8e, 0xc4, 0x60, 0xe8, 0x07, 0x48, 0x6a, 0x5d, 0xfc, 0x94, 0x7c, 0xb1, - 0x64, 0x5c, 0x6a, 0xe4, 0x99, 0x06, 0x53, 0xeb, 0x8e, 0x22, 0x64, 0xdb, 0x86, 0x73, 0x8f, 0xab, - 0x74, 0x81, 0xcd, 0xb3, 0x07, 0xe5, 0x50, 0xb6, 0x82, 0x33, 0xff, 0x2f, 0x9e, 0x0d, 0x49, 0x2c, - 0x9c, 0x79, 0xdc, 0x99, 0xe0, 0x37, 0x64, 0xf5, 0x6d, 0x28, 0x06, 0xb4, 0x51, 0x01, 0xa4, 0x1e, - 0xa5, 0x4a, 0x6d, 0xa9, 0x57, 0xfd, 0x4e, 0x82, 0x3c, 0xa9, 0x93, 0xef, 0xae, 0xdc, 0xdc, 0x56, - 0x34, 0x13, 0xdd, 0x85, 0xd4, 0x40, 0xed, 0xd9, 0x14, 0x50, 0xa8, 0xdf, 0x38, 0x7d, 0x3a, 0x3f, - 0xf5, 0xe7, 0xd3, 0xf9, 0x77, 0x62, 0xfe, 0x25, 0x70, 0x2c, 0xdb, 0x18, 0xd6, 0x5c, 0x9d, 0x36, - 0x55, 0xc0, 0xce, 0x60, 0xda, 0x24, 0x1f, 0xed, 0x59, 0x4a, 0xf5, 0x6b, 0x6f, 0x2c, 0xc3, 0xe8, - 0xd5, 0x53, 0x09, 0x66, 0x1a, 0x86, 0x6e, 0x2b, 0x9a, 0x6e, 0xb1, 0xaf, 0xb5, 0xe4, 0x0d, 0xf9, - 0x44, 0x82, 0x9c, 0xdf, 0x43, 0x5d, 0x28, 0xf9, 0x1d, 0xfa, 0x11, 0xdc, 0xdd, 0xa9, 0xab, 0xdc, - 0x0a, 0x8f, 0x69, 0xd4, 0x04, 0x57, 0x94, 0xec, 0xbe, 0x93, 0xf5, 0x40, 0x70, 0x76, 0x0d, 0xce, - 0x09, 0x60, 0x6f, 0xf2, 0x42, 0xbe, 0x72, 0x01, 0x32, 0xee, 0xd1, 0x46, 0x69, 0x48, 0x6c, 0xad, - 0xc9, 0x53, 0xf4, 0xb7, 0x2e, 0x4b, 0xf4, 0xb7, 0x21, 0x27, 0xea, 0x9b, 0xa7, 0xcf, 0xe7, 0xa6, - 0x7e, 0xc3, 0xed, 0x0f, 0xdc, 0x9e, 0x3d, 0x9f, 0x93, 0x5e, 0xe2, 0xf6, 0x0a, 0xb7, 0xd7, 0xb8, - 0x3d, 0x7e, 0x31, 0x27, 0xfd, 0x80, 0xdb, 0x8f, 0xb8, 0xfd, 0x8c, 0xdb, 0x2f, 0xb8, 0x9d, 0xbe, - 0xc0, 0x78, 0xdc, 0x9e, 0xe1, 0xeb, 0x97, 0xf8, 0xf7, 0x15, 0xfe, 0x7d, 0x8d, 0xdb, 0xe3, 0xbf, - 0xe6, 0xa6, 0xba, 0x69, 0x36, 0xf7, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x24, 0x68, 0x72, 0x9c, - 0x48, 0x1a, 0x00, 0x00, + // 1614 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, + 0x1b, 0xc7, 0x75, 0xfa, 0xad, 0x47, 0x3f, 0x4c, 0x5f, 0xf2, 0xbe, 0xd0, 0x6b, 0xe0, 0xa5, 0x65, + 0x05, 0x70, 0x94, 0xa0, 0x91, 0x53, 0x27, 0x69, 0x53, 0x37, 0x6d, 0x6a, 0x29, 0x16, 0xe2, 0xc6, + 0x56, 0x5c, 0xc9, 0x8e, 0x5b, 0x04, 0xa8, 0x41, 0xd9, 0x94, 0x44, 0x44, 0x22, 0x0d, 0x92, 0x0a, + 0xea, 0x2d, 0x7f, 0x46, 0xb7, 0xa2, 0x5b, 0xc7, 0x22, 0x43, 0xd1, 0xb1, 0xdd, 0x3c, 0x06, 0xe8, + 0x52, 0x74, 0x08, 0x62, 0x75, 0xc9, 0x98, 0x31, 0x63, 0x71, 0x77, 0x94, 0x74, 0x22, 0x8f, 0x62, + 0xd3, 0xa5, 0x8b, 0x27, 0xf1, 0x1e, 0x3f, 0xdf, 0xcf, 0x3d, 0x3c, 0xde, 0x3d, 0xfc, 0x82, 0x86, + 0xe5, 0x43, 0xa3, 0xdf, 0x32, 0xac, 0x95, 0x81, 0x6e, 0x29, 0x6d, 0xb5, 0xaf, 0x98, 0x56, 0x57, + 0xe9, 0xa9, 0xe6, 0x8a, 0xdd, 0x55, 0x8f, 0x4d, 0xc3, 0x36, 0x6e, 0x94, 0xe9, 0x0f, 0x4e, 0x8d, + 0x03, 0x0b, 0xd7, 0x3a, 0x9a, 0xdd, 0x1d, 0xb4, 0xca, 0x87, 0x46, 0x7f, 0xa5, 0x63, 0x74, 0x8c, + 0x15, 0x1a, 0x6f, 0x0d, 0xda, 0x74, 0x44, 0x07, 0xf4, 0x8a, 0x29, 0x17, 0x3e, 0xf4, 0x4d, 0xb7, + 0x55, 0xcb, 0x5e, 0x71, 0xe6, 0x6f, 0x19, 0x76, 0x97, 0x4c, 0x4a, 0x62, 0x4c, 0x58, 0xfc, 0x35, + 0x06, 0x89, 0x6d, 0xd5, 0xb2, 0x94, 0x8e, 0x8a, 0x31, 0x44, 0x75, 0xa5, 0xaf, 0xe6, 0x51, 0x01, + 0x95, 0x52, 0x0d, 0x7a, 0x8d, 0x6f, 0x41, 0xb2, 0xab, 0xf5, 0x14, 0x53, 0xb3, 0x4f, 0xf2, 0xe1, + 0x02, 0x2a, 0xe5, 0x56, 0xff, 0x57, 0x9e, 0x94, 0xed, 0x28, 0xcb, 0xf7, 0x07, 0x7d, 0x63, 0x60, + 0x36, 0xc6, 0xa9, 0xb8, 0x00, 0x99, 0xae, 0xaa, 0x75, 0xba, 0xf6, 0x81, 0xa6, 0x1f, 0x1c, 0xf6, + 0xf3, 0x91, 0x02, 0x2a, 0x65, 0x1b, 0xc0, 0x62, 0x9b, 0x7a, 0xb5, 0x4f, 0x26, 0x3b, 0x52, 0x6c, + 0x25, 0x1f, 0x2d, 0xa0, 0x52, 0xa6, 0x41, 0xaf, 0xb1, 0x04, 0x91, 0x27, 0xea, 0x49, 0x3e, 0x56, + 0x88, 0x94, 0xa2, 0x0d, 0x72, 0x89, 0xaf, 0x40, 0x5c, 0x57, 0x2d, 0x5b, 0x3d, 0xca, 0xc7, 0x0b, + 0xa8, 0x94, 0x5e, 0x9d, 0xe7, 0x26, 0xaf, 0xd3, 0x3f, 0x34, 0x9c, 0x04, 0xbc, 0x04, 0x19, 0x53, + 0xb5, 0x06, 0x3d, 0xfb, 0xe0, 0xd0, 0x18, 0xe8, 0x76, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, + 0x62, 0x55, 0x12, 0xc2, 0x97, 0x20, 0x6b, 0x9b, 0x03, 0xf5, 0xc0, 0x3a, 0x34, 0x6c, 0xab, 0xaf, + 0xe8, 0xf9, 0x64, 0x01, 0x95, 0x92, 0x8d, 0x0c, 0x09, 0x36, 0x9d, 0x18, 0xbe, 0x08, 0x31, 0xeb, + 0xd0, 0x30, 0xd5, 0x7c, 0xaa, 0x80, 0x4a, 0xe1, 0x06, 0x1b, 0xe0, 0x8f, 0x20, 0x61, 0xab, 0xa6, + 0xa9, 0x68, 0x7a, 0x1e, 0x0a, 0x91, 0x52, 0x7a, 0x75, 0x51, 0xb0, 0x0c, 0xbb, 0x2c, 0x63, 0x43, + 0xb7, 0xcd, 0x93, 0xc6, 0x28, 0x1f, 0xdf, 0x82, 0x0c, 0xcd, 0x5b, 0x3d, 0x68, 0x6b, 0x6a, 0xef, + 0x28, 0x9f, 0xa6, 0x77, 0x82, 0xcb, 0xf4, 0x29, 0xd4, 0x35, 0xfd, 0xe1, 0xb1, 0x5d, 0x57, 0x6c, + 0xed, 0xa9, 0xda, 0x48, 0xb3, 0xbc, 0x1a, 0x49, 0xc3, 0xb5, 0xb1, 0xec, 0xa9, 0xd2, 0x1b, 0xa8, + 0xf9, 0x2c, 0x9d, 0xf6, 0x92, 0x60, 0xda, 0x1d, 0x9a, 0xf6, 0x88, 0x64, 0xb1, 0xa9, 0x1d, 0x0e, + 0x8d, 0x2c, 0x6c, 0x43, 0x86, 0xaf, 0x6b, 0xb4, 0xc8, 0x88, 0x2e, 0x0f, 0x5d, 0xe4, 0xcb, 0x10, + 0x63, 0x53, 0x84, 0xfd, 0xd6, 0x98, 0xfd, 0x7d, 0x2d, 0x7c, 0x1b, 0x2d, 0xec, 0x80, 0xe4, 0x9e, + 0x4f, 0x80, 0x5c, 0x9e, 0x46, 0x4a, 0xfc, 0xcd, 0x6e, 0xe8, 0x83, 0x3e, 0x47, 0x2c, 0xde, 0x85, + 0x38, 0xdb, 0x3f, 0x38, 0x0d, 0x89, 0xbd, 0xfa, 0x83, 0xfa, 0xc3, 0xfd, 0xba, 0x14, 0xc2, 0x49, + 0x88, 0xee, 0xec, 0xd5, 0x9b, 0x12, 0xc2, 0x59, 0x48, 0x35, 0xb7, 0xd6, 0x77, 0x9a, 0xbb, 0x9b, + 0xd5, 0x07, 0x52, 0x18, 0xcf, 0x41, 0xba, 0xb2, 0xb9, 0xb5, 0x75, 0x50, 0x59, 0xdf, 0xdc, 0xda, + 0xf8, 0x4a, 0x8a, 0x14, 0x65, 0x88, 0xb3, 0x3a, 0xc9, 0xb3, 0x6b, 0x0d, 0x74, 0xfd, 0xc4, 0xd9, + 0xc2, 0x6c, 0x50, 0x7c, 0x8e, 0x21, 0xb1, 0xde, 0xeb, 0x6d, 0x2b, 0xc7, 0x16, 0xde, 0x87, 0xf9, + 0xa6, 0x6d, 0x6a, 0x7a, 0x67, 0xd7, 0xb8, 0x67, 0x0c, 0x5a, 0x3d, 0x75, 0x5b, 0x39, 0xce, 0x23, + 0xba, 0xb4, 0x57, 0xb8, 0xfb, 0x76, 0xd2, 0xcb, 0x9e, 0x5c, 0xb6, 0xc0, 0x5e, 0x06, 0xde, 0x05, + 0x69, 0x14, 0xac, 0xf5, 0x0c, 0xc5, 0x26, 0xdc, 0x30, 0xe5, 0x96, 0x66, 0x70, 0x47, 0xa9, 0x0c, + 0xeb, 0x21, 0xe0, 0x3b, 0x90, 0xdc, 0xd4, 0xed, 0x1b, 0xab, 0x84, 0x16, 0xa1, 0xb4, 0x82, 0x80, + 0x36, 0x4a, 0x61, 0x94, 0xb1, 0xc2, 0x51, 0x7f, 0x70, 0x93, 0xa8, 0xa3, 0xb3, 0xd4, 0x34, 0x65, + 0xa2, 0xa6, 0x43, 0x7c, 0x17, 0x52, 0x7b, 0xda, 0x68, 0xf2, 0x18, 0x95, 0x2f, 0x09, 0xe4, 0xe3, + 0x1c, 0xa6, 0x9f, 0x68, 0x46, 0x00, 0x36, 0x7f, 0x7c, 0x26, 0x80, 0x2b, 0x60, 0xa2, 0x21, 0x80, + 0xe6, 0xb8, 0x82, 0x84, 0x2f, 0xa0, 0xe9, 0xaa, 0xa0, 0xc9, 0x57, 0xd0, 0x1c, 0x57, 0x90, 0x9c, + 0x09, 0xe0, 0x2b, 0x18, 0x8f, 0x71, 0x05, 0xa0, 0xa6, 0x7d, 0xa3, 0x1e, 0xb1, 0x12, 0x52, 0x94, + 0x50, 0x14, 0x10, 0x26, 0x49, 0x0c, 0xc1, 0xa9, 0xf0, 0x06, 0xa4, 0x9b, 0xed, 0x09, 0x04, 0x3c, + 0xe7, 0x78, 0x5c, 0x46, 0xdb, 0x45, 0xe1, 0x75, 0xe3, 0x52, 0xd8, 0xcd, 0xa4, 0x67, 0x97, 0xc2, + 0xdd, 0x0d, 0xa7, 0x9a, 0x94, 0xc2, 0x20, 0x99, 0x80, 0x52, 0x38, 0x0a, 0xaf, 0x23, 0xcd, 0xb0, + 0x62, 0x18, 0x24, 0xd3, 0xe9, 0x4a, 0x8b, 0x02, 0x84, 0x93, 0xe1, 0x34, 0x43, 0x67, 0x44, 0x9f, + 0x08, 0xdd, 0xe4, 0x44, 0x9c, 0xf3, 0x7f, 0x22, 0xa3, 0x9c, 0xd1, 0x13, 0x19, 0x8d, 0xf9, 0x73, + 0x56, 0x39, 0xb1, 0x55, 0x8b, 0x70, 0xe6, 0x02, 0xcf, 0xd9, 0x28, 0xd5, 0x75, 0xce, 0x46, 0x61, + 0xfc, 0x05, 0xcc, 0x8d, 0x62, 0xa4, 0x3d, 0x11, 0xa8, 0x44, 0xa1, 0x97, 0x67, 0x40, 0x9d, 0x4c, + 0xc6, 0x74, 0xeb, 0x71, 0x1d, 0x72, 0xa3, 0xd0, 0xb6, 0x45, 0x6f, 0x77, 0x9e, 0x12, 0x97, 0x67, + 0x10, 0x59, 0x22, 0x03, 0xba, 0xd4, 0x0b, 0xf7, 0xe0, 0xbf, 0xe2, 0x6e, 0xc4, 0xb7, 0xdf, 0x14, + 0x6b, 0xbf, 0x17, 0xf9, 0xf6, 0x8b, 0xf8, 0xf6, 0x5d, 0x85, 0xff, 0x08, 0x7b, 0x4f, 0x10, 0x24, + 0xcc, 0x43, 0x3e, 0x86, 0xec, 0x54, 0xcb, 0xe1, 0xc5, 0x31, 0x81, 0x38, 0xe6, 0x15, 0x4f, 0xb6, + 0x96, 0xe0, 0xed, 0x31, 0x25, 0x8e, 0xf0, 0xe2, 0x3b, 0x90, 0x9b, 0xee, 0x37, 0xbc, 0x3a, 0x2b, + 0x50, 0x67, 0x05, 0x6a, 0xf1, 0xdc, 0x51, 0x81, 0x3a, 0xea, 0x52, 0x37, 0x7d, 0xe7, 0x9e, 0x17, + 0xa8, 0xe7, 0x05, 0x6a, 0xf1, 0xdc, 0x58, 0xa0, 0xc6, 0xbc, 0xfa, 0x13, 0x98, 0x73, 0xb5, 0x18, + 0x5e, 0x9e, 0x10, 0xc8, 0x13, 0xbc, 0xfc, 0x53, 0x90, 0xdc, 0xcd, 0x85, 0xd7, 0xcf, 0x09, 0xf4, + 0x73, 0xa2, 0xe9, 0xc5, 0xd5, 0xc7, 0x05, 0xf2, 0xb8, 0x70, 0x7a, 0xb1, 0x5e, 0x12, 0xe8, 0x25, + 0x5e, 0xbf, 0x06, 0x19, 0xbe, 0x9b, 0xf0, 0xda, 0xa4, 0x40, 0x9b, 0x74, 0xaf, 0xfb, 0x54, 0x33, + 0x09, 0xda, 0xe9, 0x29, 0x9f, 0xe3, 0x32, 0xd5, 0x42, 0x82, 0x20, 0x19, 0x1e, 0xf2, 0x08, 0x2e, + 0x8a, 0x5a, 0x86, 0x80, 0x51, 0xe2, 0x19, 0x39, 0xe2, 0x11, 0x27, 0x66, 0x8f, 0xa8, 0xa6, 0x8c, + 0xd3, 0xc2, 0x63, 0xb8, 0x20, 0x68, 0x1c, 0x02, 0x6c, 0x79, 0xda, 0x8d, 0xe5, 0x39, 0x2c, 0x6d, + 0x02, 0x9a, 0xde, 0xd9, 0x31, 0x34, 0xdd, 0xe6, 0x5d, 0xd9, 0x4f, 0x17, 0x20, 0xe7, 0xb4, 0xa7, + 0x87, 0xe6, 0x91, 0x6a, 0xaa, 0x47, 0xf8, 0x6b, 0x7f, 0xef, 0x74, 0xdd, 0xdb, 0xd4, 0x1c, 0xd5, + 0x3b, 0x58, 0xa8, 0xc7, 0xbe, 0x16, 0x6a, 0x25, 0x18, 0x1f, 0xe4, 0xa4, 0xaa, 0x1e, 0x27, 0x75, + 0xd9, 0x1f, 0xea, 0x67, 0xa8, 0xaa, 0x1e, 0x43, 0x35, 0x1b, 0x22, 0xf4, 0x55, 0x35, 0xaf, 0xaf, + 0x2a, 0xf9, 0x53, 0xfc, 0xed, 0x55, 0xcd, 0x6b, 0xaf, 0x02, 0x38, 0x62, 0x97, 0x55, 0xf3, 0xba, + 0xac, 0x19, 0x1c, 0x7f, 0xb3, 0x55, 0xf3, 0x9a, 0xad, 0x00, 0x8e, 0xd8, 0x73, 0x6d, 0x0a, 0x3c, + 0xd7, 0x15, 0x7f, 0xd0, 0x2c, 0xeb, 0xb5, 0x25, 0xb2, 0x5e, 0x57, 0x67, 0x14, 0x35, 0xd3, 0x81, + 0x6d, 0x0a, 0x1c, 0x58, 0x50, 0x61, 0x3e, 0x46, 0x6c, 0x4b, 0x64, 0xc4, 0x02, 0x0b, 0xf3, 0xf3, + 0x63, 0x9f, 0xb9, 0xfd, 0xd8, 0xb2, 0x3f, 0x49, 0x6c, 0xcb, 0x6a, 0x5e, 0x5b, 0x56, 0x0a, 0x3a, + 0x73, 0x22, 0x77, 0xf6, 0xd8, 0xd7, 0x9d, 0xfd, 0x8d, 0x23, 0x1c, 0x64, 0xd2, 0xbe, 0xf4, 0x33, + 0x69, 0xe5, 0x60, 0xf6, 0x6c, 0xaf, 0xb6, 0xe7, 0xe3, 0xd5, 0xae, 0x05, 0x83, 0xcf, 0x2d, 0xdb, + 0xb9, 0x65, 0x3b, 0xb7, 0x6c, 0xe7, 0x96, 0xed, 0xdf, 0xb7, 0x6c, 0x6b, 0xd1, 0x6f, 0xbf, 0x5f, + 0x44, 0xc5, 0xdf, 0x22, 0x90, 0x73, 0xbe, 0x0c, 0xee, 0x6b, 0x76, 0x97, 0xb4, 0xb7, 0x6d, 0xc8, + 0xe8, 0x4a, 0x5f, 0x3d, 0xe8, 0x2b, 0xc7, 0xc7, 0x9a, 0xde, 0x71, 0x3c, 0xdb, 0x55, 0xef, 0xa7, + 0x44, 0x47, 0x50, 0xae, 0x2b, 0x7d, 0xd2, 0xab, 0x48, 0xb2, 0xf3, 0xba, 0xd1, 0x27, 0x11, 0xfc, + 0x39, 0xa4, 0xfb, 0x56, 0x67, 0x4c, 0x0b, 0x7b, 0x5e, 0x84, 0x2e, 0x1a, 0xbb, 0xd3, 0x09, 0x0c, + 0xfa, 0xe3, 0x00, 0x29, 0xad, 0x75, 0x62, 0x4f, 0x4a, 0x8b, 0x04, 0x95, 0x46, 0x9e, 0xe9, 0x74, + 0x69, 0xad, 0x49, 0x84, 0x6c, 0x5b, 0x77, 0xed, 0x41, 0x9d, 0x6e, 0x6a, 0xf3, 0xec, 0xc3, 0x9c, + 0xab, 0x5a, 0xc1, 0x99, 0xff, 0x07, 0xcf, 0x86, 0x14, 0xe6, 0xae, 0x3c, 0xe8, 0x4c, 0xf0, 0x1b, + 0xb2, 0xf8, 0x7f, 0xc8, 0x4e, 0xb1, 0x71, 0x06, 0x50, 0x9b, 0x4a, 0x51, 0x03, 0xb5, 0x8b, 0xdf, + 0x21, 0x48, 0x93, 0x3e, 0xf9, 0xfe, 0xea, 0xed, 0x1d, 0x45, 0x33, 0xf1, 0x7d, 0x88, 0xf6, 0xd4, + 0xb6, 0x4d, 0x13, 0x32, 0x95, 0x9b, 0xa7, 0x2f, 0x17, 0x43, 0x7f, 0xbc, 0x5c, 0x7c, 0x2f, 0xe0, + 0xbf, 0x04, 0x03, 0xcb, 0x36, 0xfa, 0x65, 0x87, 0xd3, 0xa0, 0x04, 0x5c, 0x83, 0x98, 0xa9, 0x75, + 0xba, 0x36, 0x2b, 0xa9, 0x72, 0xfd, 0x9d, 0x31, 0x4c, 0x5e, 0x3c, 0x45, 0x30, 0x5f, 0x35, 0x74, + 0x5b, 0xd1, 0x74, 0x8b, 0x7d, 0xad, 0x25, 0x6f, 0xc8, 0xe7, 0x08, 0x52, 0xe3, 0x11, 0x6e, 0x41, + 0x6e, 0x3c, 0xa0, 0x1f, 0xc1, 0x9d, 0x9d, 0xba, 0xc6, 0xad, 0xb0, 0x87, 0x51, 0x16, 0x5c, 0x51, + 0xb1, 0xf3, 0x4e, 0x9e, 0x0e, 0x2e, 0xac, 0xc3, 0x05, 0x41, 0xda, 0xbb, 0xbc, 0x90, 0x8b, 0x4b, + 0x90, 0xaa, 0x1b, 0xf6, 0x8e, 0x72, 0xf8, 0x84, 0x7e, 0x72, 0x9e, 0xfc, 0xcf, 0xa2, 0x12, 0x96, + 0x42, 0x54, 0x7c, 0x75, 0x09, 0x12, 0xce, 0xe9, 0xc7, 0x71, 0x08, 0x6f, 0xaf, 0x4b, 0x21, 0xfa, + 0x5b, 0x91, 0x10, 0xfd, 0xad, 0x4a, 0xe1, 0xca, 0xd6, 0xe9, 0x99, 0x1c, 0x7a, 0x71, 0x26, 0x87, + 0x7e, 0x3f, 0x93, 0x43, 0xaf, 0xce, 0x64, 0xf4, 0xfa, 0x4c, 0x46, 0x6f, 0xce, 0x64, 0xf4, 0xf6, + 0x4c, 0x46, 0xcf, 0x86, 0x32, 0xfa, 0x61, 0x28, 0xa3, 0x1f, 0x87, 0x32, 0xfa, 0x79, 0x28, 0xa3, + 0x5f, 0x86, 0x32, 0x3a, 0x1d, 0xca, 0xa1, 0x17, 0x43, 0x39, 0xf4, 0x6a, 0x28, 0xa3, 0xd7, 0x43, + 0x39, 0xf4, 0x66, 0x28, 0xa3, 0xb7, 0x43, 0x19, 0x3d, 0xfb, 0x53, 0x0e, 0xb5, 0xe2, 0x6c, 0x79, + 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x7d, 0x5e, 0x3b, 0x6b, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto index 891bc46d..60aaa849 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go index a23306c0..cfed2753 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go @@ -17,12 +17,14 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -38,21 +40,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -72,24 +78,28 @@ func TestMessageProto(t *testing.T) { } func TestMessageMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -108,11 +118,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -122,11 +132,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -140,21 +150,25 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { } func TestNestedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -174,24 +188,28 @@ func TestNestedProto(t *testing.T) { } func TestNestedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -210,11 +228,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -224,11 +242,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -242,21 +260,25 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { } func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -276,24 +298,28 @@ func TestAllMapsProto(t *testing.T) { } func TestAllMapsMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -312,11 +338,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -326,11 +352,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -344,21 +370,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -378,24 +408,28 @@ func TestAllMapsOrderedProto(t *testing.T) { } func TestAllMapsOrderedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -414,11 +448,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -428,11 +462,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -446,21 +480,25 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { } func TestMessageWithMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -480,24 +518,28 @@ func TestMessageWithMapProto(t *testing.T) { } func TestMessageWithMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -516,11 +558,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -530,11 +572,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -548,21 +590,25 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { } func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -582,24 +628,28 @@ func TestFloatingPointProto(t *testing.T) { } func TestFloatingPointMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -618,11 +668,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -632,11 +682,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -650,21 +700,25 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { } func TestUint128PairProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -684,24 +738,28 @@ func TestUint128PairProto(t *testing.T) { } func TestUint128PairMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -720,11 +778,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -734,11 +792,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -752,21 +810,25 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { } func TestContainsNestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -786,24 +848,28 @@ func TestContainsNestedMapProto(t *testing.T) { } func TestContainsNestedMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -822,11 +888,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -836,11 +902,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -854,21 +920,25 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { } func TestContainsNestedMap_NestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -888,24 +958,28 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { } func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -924,11 +998,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -938,11 +1012,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -955,6 +1029,116 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestNotPackedMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -1144,13 +1328,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,9 +1370,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,9 +1387,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,9 +1404,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,9 +1421,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,9 +1438,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,9 +1455,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,9 +1472,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,9 +1489,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,9 +1506,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,9 +1523,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,9 +1540,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,9 +1557,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,9 +1574,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,9 +1591,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,9 +1608,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,9 +1625,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,9 +1642,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1454,14 +1693,18 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1469,14 +1712,18 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1484,14 +1731,18 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1499,14 +1750,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1514,14 +1769,18 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1529,14 +1788,18 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1544,14 +1807,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1559,14 +1826,18 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1574,14 +1845,37 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1660,6 +1954,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1777,18 +2079,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +2133,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1854,13 +2169,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1890,13 +2205,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1926,13 +2241,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1962,13 +2277,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1998,13 +2313,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2034,13 +2349,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2070,13 +2385,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -2101,6 +2416,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -2182,5 +2533,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go index 8fa9e0fd..50f19ca9 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go @@ -17,6 +17,7 @@ FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 @@ -37,7 +38,6 @@ import io_ioutil "io/ioutil" import strconv "strconv" import strings "strings" -import sort "sort" import reflect "reflect" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" @@ -51,7 +51,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type MapEnum int32 @@ -106,7 +108,7 @@ type Message struct { ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` @@ -126,23 +128,23 @@ func (*Nested) ProtoMessage() {} func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMaps) Reset() { *m = AllMaps{} } @@ -150,23 +152,23 @@ func (*AllMaps) ProtoMessage() {} func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap,json=stringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap,json=stringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map,json=int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map,json=int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map,json=uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map,json=uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map,json=sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map,json=sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map,json=fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map,json=sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map,json=fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map,json=sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap,json=boolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap,json=stringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap,json=stringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap,json=stringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap,json=stringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` + Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` + Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` + StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } @@ -208,7 +210,7 @@ func (*ContainsNestedMap) ProtoMessage() {} func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField,json=nestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } @@ -217,6 +219,14 @@ func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7, 0} } +type NotPacked struct { + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` +} + +func (m *NotPacked) Reset() { *m = NotPacked{} } +func (*NotPacked) ProtoMessage() {} +func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } + func init() { proto.RegisterType((*Message)(nil), "theproto3.Message") proto.RegisterType((*Nested)(nil), "theproto3.Nested") @@ -227,6 +237,7 @@ func init() { proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") + proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } @@ -257,477 +268,504 @@ func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_pro func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return Theproto3Description() } +func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return Theproto3Description() +} func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7462 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x6c, 0x63, 0xd7, - 0x79, 0xe7, 0x90, 0x97, 0x94, 0xa8, 0x8f, 0x14, 0x45, 0xdd, 0xd1, 0xc8, 0xb4, 0x3c, 0x9e, 0x07, - 0x3d, 0x1e, 0xcb, 0x8a, 0xad, 0xd1, 0x68, 0x34, 0x0f, 0xd3, 0xaf, 0x15, 0x29, 0x6a, 0xac, 0x89, - 0x5e, 0xb9, 0x92, 0xfc, 0x88, 0x17, 0x4b, 0x50, 0xe4, 0x95, 0x44, 0x9b, 0xba, 0xd4, 0xf2, 0x92, - 0xb6, 0x27, 0x7f, 0x2c, 0xb2, 0xc9, 0x6e, 0x36, 0xd9, 0xc5, 0xee, 0xb6, 0x4d, 0x8b, 0xe6, 0x1d, - 0x3b, 0x45, 0x1a, 0x27, 0x7d, 0x25, 0x69, 0x1a, 0x14, 0x41, 0xd1, 0xb8, 0x28, 0x92, 0x4e, 0xfb, - 0x47, 0xe1, 0xa6, 0xff, 0x14, 0x45, 0x61, 0xe4, 0x05, 0x34, 0x6d, 0xd3, 0x36, 0x01, 0x0c, 0x24, - 0x40, 0xf2, 0x47, 0xcf, 0xfb, 0x9e, 0x73, 0x78, 0x2f, 0x2f, 0x35, 0x63, 0xc7, 0xf9, 0xc3, 0x06, - 0x38, 0x22, 0xcf, 0xf9, 0x7e, 0xdf, 0xf9, 0xce, 0xf7, 0x3a, 0xdf, 0x3d, 0xe7, 0xde, 0x6b, 0xf8, - 0xf3, 0xf3, 0x70, 0x6a, 0xb7, 0xd9, 0xdc, 0x6d, 0xd8, 0xe7, 0x0e, 0x5a, 0xcd, 0x76, 0x73, 0xbb, - 0xb3, 0x73, 0xae, 0x66, 0xbb, 0xd5, 0x56, 0xfd, 0xa0, 0xdd, 0x6c, 0x4d, 0x93, 0x36, 0x73, 0x84, - 0x52, 0x4c, 0x73, 0x8a, 0xdc, 0x0a, 0x8c, 0x2e, 0xd6, 0x1b, 0xf6, 0x82, 0x20, 0xdc, 0xb0, 0xdb, - 0xe6, 0x15, 0x88, 0xed, 0xa0, 0xc6, 0x6c, 0xe4, 0x94, 0x31, 0x99, 0x9c, 0x3d, 0x33, 0xad, 0x81, - 0xa6, 0x55, 0xc4, 0x3a, 0x6e, 0xb6, 0x08, 0x22, 0xf7, 0xfd, 0x18, 0x1c, 0xf5, 0xe9, 0x35, 0x4d, - 0x88, 0x39, 0x95, 0x7d, 0xcc, 0x31, 0x32, 0x39, 0x64, 0x91, 0xef, 0x66, 0x16, 0x06, 0x0f, 0x2a, - 0xd5, 0x67, 0x2b, 0xbb, 0x76, 0x36, 0x4a, 0x9a, 0xf9, 0x4f, 0xf3, 0x04, 0x40, 0xcd, 0x3e, 0xb0, - 0x9d, 0x9a, 0xed, 0x54, 0xaf, 0x67, 0x0d, 0x24, 0xc5, 0x90, 0x25, 0xb5, 0x98, 0xef, 0x80, 0xd1, - 0x83, 0xce, 0x76, 0xa3, 0x5e, 0x2d, 0x4b, 0x64, 0x80, 0xc8, 0xe2, 0x56, 0x86, 0x76, 0x2c, 0x78, - 0xc4, 0xf7, 0xc0, 0xc8, 0xf3, 0x76, 0xe5, 0x59, 0x99, 0x34, 0x49, 0x48, 0xd3, 0xb8, 0x59, 0x22, - 0x2c, 0x42, 0x6a, 0xdf, 0x76, 0x5d, 0x24, 0x40, 0xb9, 0x7d, 0xfd, 0xc0, 0xce, 0xc6, 0xc8, 0xec, - 0x4f, 0x75, 0xcd, 0x5e, 0x9f, 0x79, 0x92, 0xa1, 0x36, 0x11, 0xc8, 0x9c, 0x87, 0x21, 0xdb, 0xe9, - 0xec, 0x53, 0x0e, 0xf1, 0x00, 0xfd, 0x95, 0x10, 0x85, 0xce, 0x25, 0x81, 0x61, 0x8c, 0xc5, 0xa0, - 0x6b, 0xb7, 0x9e, 0xab, 0x57, 0xed, 0xec, 0x00, 0x61, 0x70, 0x4f, 0x17, 0x83, 0x0d, 0xda, 0xaf, - 0xf3, 0xe0, 0x38, 0x34, 0x95, 0x21, 0xfb, 0x85, 0xb6, 0xed, 0xb8, 0xf5, 0xa6, 0x93, 0x1d, 0x24, - 0x4c, 0xee, 0xf6, 0xb1, 0xa2, 0xdd, 0xa8, 0xe9, 0x2c, 0x3c, 0x9c, 0x79, 0x09, 0x06, 0x9b, 0x07, - 0x6d, 0xf4, 0xcd, 0xcd, 0x26, 0x90, 0x7d, 0x92, 0xb3, 0xc7, 0x7d, 0x1d, 0x61, 0x8d, 0xd2, 0x58, - 0x9c, 0xd8, 0x5c, 0x82, 0x8c, 0xdb, 0xec, 0xb4, 0xaa, 0x76, 0xb9, 0xda, 0xac, 0xd9, 0xe5, 0xba, - 0xb3, 0xd3, 0xcc, 0x0e, 0x11, 0x06, 0x27, 0xbb, 0x27, 0x42, 0x08, 0x8b, 0x88, 0x6e, 0x09, 0x91, - 0x59, 0x69, 0x57, 0xf9, 0x6d, 0x8e, 0xc3, 0x80, 0x7b, 0xdd, 0x69, 0x57, 0x5e, 0xc8, 0xa6, 0x88, - 0x87, 0xb0, 0x5f, 0xb9, 0x9f, 0xc4, 0x61, 0xa4, 0x1f, 0x17, 0x7b, 0x10, 0xe2, 0x3b, 0x78, 0x96, - 0xc8, 0xc1, 0x0e, 0xa1, 0x03, 0x8a, 0x51, 0x95, 0x38, 0x70, 0x93, 0x4a, 0x9c, 0x87, 0xa4, 0x63, - 0xbb, 0x6d, 0xbb, 0x46, 0x3d, 0xc2, 0xe8, 0xd3, 0xa7, 0x80, 0x82, 0xba, 0x5d, 0x2a, 0x76, 0x53, - 0x2e, 0xf5, 0x24, 0x8c, 0x08, 0x91, 0xca, 0xad, 0x8a, 0xb3, 0xcb, 0x7d, 0xf3, 0x5c, 0x98, 0x24, - 0xd3, 0x25, 0x8e, 0xb3, 0x30, 0xcc, 0x4a, 0xdb, 0xca, 0x6f, 0x73, 0x01, 0xa0, 0xe9, 0xd8, 0xcd, - 0x1d, 0x14, 0x5e, 0xd5, 0x06, 0xf2, 0x13, 0x7f, 0x2d, 0xad, 0x61, 0x92, 0x2e, 0x2d, 0x35, 0x69, - 0x6b, 0xb5, 0x61, 0x3e, 0xe0, 0xb9, 0xda, 0x60, 0x80, 0xa7, 0xac, 0xd0, 0x20, 0xeb, 0xf2, 0xb6, - 0x2d, 0x48, 0xb7, 0x6c, 0xec, 0xf7, 0x48, 0xc5, 0x74, 0x66, 0x43, 0x44, 0x88, 0xe9, 0xd0, 0x99, - 0x59, 0x0c, 0x46, 0x27, 0x36, 0xdc, 0x92, 0x7f, 0x9a, 0x77, 0x81, 0x68, 0x28, 0x13, 0xb7, 0x02, - 0x92, 0x85, 0x52, 0xbc, 0x71, 0x15, 0xb5, 0x4d, 0x5c, 0x81, 0xb4, 0xaa, 0x1e, 0x73, 0x0c, 0xe2, - 0x6e, 0xbb, 0xd2, 0x6a, 0x13, 0x2f, 0x8c, 0x5b, 0xf4, 0x87, 0x99, 0x01, 0x03, 0x25, 0x19, 0x92, - 0xe5, 0xe2, 0x16, 0xfe, 0x3a, 0x71, 0x19, 0x86, 0x95, 0xe1, 0xfb, 0x05, 0xe6, 0x3e, 0x32, 0x00, - 0x63, 0x7e, 0x3e, 0xe7, 0xeb, 0xfe, 0x28, 0x7c, 0x90, 0x07, 0x6c, 0xdb, 0x2d, 0xe4, 0x77, 0x98, - 0x03, 0xfb, 0x85, 0x3c, 0x2a, 0xde, 0xa8, 0x6c, 0xdb, 0x0d, 0xe4, 0x4d, 0x91, 0xc9, 0xf4, 0xec, - 0x3b, 0xfa, 0xf2, 0xea, 0xe9, 0x65, 0x0c, 0xb1, 0x28, 0xd2, 0x7c, 0x04, 0x62, 0x2c, 0xc5, 0x61, - 0x0e, 0x53, 0xfd, 0x71, 0xc0, 0xbe, 0x68, 0x11, 0x9c, 0x79, 0x07, 0x0c, 0xe1, 0xbf, 0x54, 0xb7, - 0x03, 0x44, 0xe6, 0x04, 0x6e, 0xc0, 0x7a, 0x35, 0x27, 0x20, 0x41, 0xdc, 0xac, 0x66, 0xf3, 0xa5, - 0x41, 0xfc, 0xc6, 0x86, 0xa9, 0xd9, 0x3b, 0x95, 0x4e, 0xa3, 0x5d, 0x7e, 0xae, 0xd2, 0xe8, 0xd8, - 0xc4, 0x61, 0x90, 0x61, 0x58, 0xe3, 0xe3, 0xb8, 0xcd, 0x3c, 0x09, 0x49, 0xea, 0x95, 0x75, 0x84, - 0x79, 0x81, 0x64, 0x9f, 0xb8, 0x45, 0x1d, 0x75, 0x09, 0xb7, 0xe0, 0xe1, 0x9f, 0x71, 0x51, 0x2c, - 0x30, 0xd3, 0x92, 0x21, 0x70, 0x03, 0x19, 0xfe, 0xb2, 0x9e, 0xf8, 0xee, 0xf4, 0x9f, 0x9e, 0xee, - 0x8b, 0xb9, 0xaf, 0x46, 0x21, 0x46, 0xe2, 0x6d, 0x04, 0x92, 0x9b, 0x4f, 0xad, 0x97, 0xca, 0x0b, - 0x6b, 0x5b, 0x85, 0xe5, 0x52, 0x26, 0x62, 0xa6, 0x01, 0x48, 0xc3, 0xe2, 0xf2, 0xda, 0xfc, 0x66, - 0x26, 0x2a, 0x7e, 0x2f, 0xad, 0x6e, 0x5e, 0x9a, 0xcb, 0x18, 0x02, 0xb0, 0x45, 0x1b, 0x62, 0x32, - 0xc1, 0x85, 0xd9, 0x4c, 0x1c, 0x79, 0x42, 0x8a, 0x32, 0x58, 0x7a, 0xb2, 0xb4, 0x80, 0x28, 0x06, - 0xd4, 0x16, 0x44, 0x33, 0x68, 0x0e, 0xc3, 0x10, 0x69, 0x29, 0xac, 0xad, 0x2d, 0x67, 0x12, 0x82, - 0xe7, 0xc6, 0xa6, 0xb5, 0xb4, 0x7a, 0x35, 0x33, 0x24, 0x78, 0x5e, 0xb5, 0xd6, 0xb6, 0xd6, 0x33, - 0x20, 0x38, 0xac, 0x94, 0x36, 0x36, 0xe6, 0xaf, 0x96, 0x32, 0x49, 0x41, 0x51, 0x78, 0x6a, 0xb3, - 0xb4, 0x91, 0x49, 0x29, 0x62, 0xa1, 0x21, 0x86, 0xc5, 0x10, 0xa5, 0xd5, 0xad, 0x95, 0x4c, 0xda, - 0x1c, 0x85, 0x61, 0x3a, 0x04, 0x17, 0x62, 0x44, 0x6b, 0x42, 0x92, 0x66, 0x3c, 0x41, 0x28, 0x97, - 0x51, 0xa5, 0x01, 0x51, 0x98, 0xb9, 0x22, 0xc4, 0x89, 0x77, 0x21, 0x2f, 0x4e, 0x2f, 0xcf, 0x17, - 0x4a, 0xcb, 0xe5, 0xb5, 0xf5, 0xcd, 0xa5, 0xb5, 0xd5, 0xf9, 0x65, 0xa4, 0x3b, 0xd1, 0x66, 0x95, - 0xde, 0xb5, 0xb5, 0x64, 0x95, 0x16, 0x90, 0xfe, 0xa4, 0xb6, 0xf5, 0xd2, 0xfc, 0x26, 0x6a, 0x33, - 0x72, 0x53, 0x30, 0xe6, 0x97, 0x67, 0xfc, 0x22, 0x23, 0xf7, 0x99, 0x08, 0x1c, 0xf5, 0x49, 0x99, - 0xbe, 0x51, 0xf4, 0x28, 0xc4, 0xa9, 0xa7, 0xd1, 0x45, 0xe4, 0x5e, 0xdf, 0xdc, 0x4b, 0xfc, 0xae, - 0x6b, 0x21, 0x21, 0x38, 0x79, 0x21, 0x35, 0x02, 0x16, 0x52, 0xcc, 0xa2, 0xcb, 0x9d, 0xde, 0x1f, - 0x81, 0x6c, 0x10, 0xef, 0x90, 0x78, 0x8f, 0x2a, 0xf1, 0xfe, 0xa0, 0x2e, 0xc0, 0xe9, 0xe0, 0x39, - 0x74, 0x49, 0xf1, 0xb9, 0x08, 0x8c, 0xfb, 0xd7, 0x1b, 0xbe, 0x32, 0x3c, 0x02, 0x03, 0xfb, 0x76, - 0x7b, 0xaf, 0xc9, 0xd7, 0xdc, 0xb3, 0x3e, 0x99, 0x1c, 0x77, 0xeb, 0xba, 0x62, 0x28, 0x79, 0x29, - 0x30, 0x82, 0x8a, 0x06, 0x2a, 0x4d, 0x97, 0xa4, 0x1f, 0x8a, 0xc2, 0x31, 0x5f, 0xe6, 0xbe, 0x82, - 0xde, 0x09, 0x50, 0x77, 0x0e, 0x3a, 0x6d, 0xba, 0xae, 0xd2, 0x34, 0x33, 0x44, 0x5a, 0x48, 0x08, - 0xe3, 0x14, 0xd2, 0x69, 0x8b, 0x7e, 0x83, 0xf4, 0x03, 0x6d, 0x22, 0x04, 0x57, 0x3c, 0x41, 0x63, - 0x44, 0xd0, 0x13, 0x01, 0x33, 0xed, 0x5a, 0xb2, 0x66, 0x20, 0x53, 0x6d, 0xd4, 0x6d, 0xa7, 0x5d, - 0x76, 0xdb, 0x2d, 0xbb, 0xb2, 0x5f, 0x77, 0x76, 0x49, 0x1e, 0x4d, 0xe4, 0xe3, 0x3b, 0x95, 0x86, - 0x6b, 0x5b, 0x23, 0xb4, 0x7b, 0x83, 0xf7, 0x62, 0x04, 0x59, 0x2c, 0x5a, 0x12, 0x62, 0x40, 0x41, - 0xd0, 0x6e, 0x81, 0xc8, 0x7d, 0x6b, 0x10, 0x92, 0x52, 0x75, 0x66, 0x9e, 0x86, 0xd4, 0x33, 0x95, - 0xe7, 0x2a, 0x65, 0x5e, 0x71, 0x53, 0x4d, 0x24, 0x71, 0xdb, 0x3a, 0xab, 0xba, 0x67, 0x60, 0x8c, - 0x90, 0xa0, 0x39, 0xa2, 0x81, 0xaa, 0x8d, 0x8a, 0xeb, 0x12, 0xa5, 0x25, 0x08, 0xa9, 0x89, 0xfb, - 0xd6, 0x70, 0x57, 0x91, 0xf7, 0x98, 0x17, 0xe1, 0x28, 0x41, 0xec, 0xa3, 0xc4, 0x5b, 0x3f, 0x68, - 0xd8, 0x65, 0x7c, 0x0d, 0xe0, 0x92, 0x7c, 0x2a, 0x24, 0x1b, 0xc5, 0x14, 0x2b, 0x8c, 0x00, 0x4b, - 0xe4, 0x9a, 0x57, 0xe1, 0x4e, 0x02, 0xdb, 0xb5, 0x1d, 0xbb, 0x55, 0x69, 0xdb, 0x65, 0xfb, 0xbf, - 0x76, 0x10, 0x6d, 0xb9, 0xe2, 0xd4, 0xca, 0x7b, 0x15, 0x77, 0x2f, 0x3b, 0x26, 0x33, 0xb8, 0x1d, - 0xd3, 0x5e, 0x65, 0xa4, 0x25, 0x42, 0x39, 0xef, 0xd4, 0x1e, 0x43, 0x74, 0x66, 0x1e, 0xc6, 0x09, - 0x23, 0xa4, 0x14, 0x34, 0xe7, 0x72, 0x75, 0xcf, 0xae, 0x3e, 0x5b, 0xee, 0xb4, 0x77, 0xae, 0x64, - 0xef, 0x90, 0x39, 0x10, 0x21, 0x37, 0x08, 0x4d, 0x11, 0x93, 0x6c, 0x21, 0x0a, 0x73, 0x03, 0x52, - 0xd8, 0x1e, 0xfb, 0xf5, 0xf7, 0x20, 0xb1, 0x9b, 0x2d, 0xb2, 0x46, 0xa4, 0x7d, 0x82, 0x5b, 0x52, - 0xe2, 0xf4, 0x1a, 0x03, 0xac, 0xa0, 0xfa, 0x34, 0x1f, 0xdf, 0x58, 0x2f, 0x95, 0x16, 0xac, 0x24, - 0xe7, 0xb2, 0xd8, 0x6c, 0x61, 0x9f, 0xda, 0x6d, 0x0a, 0x1d, 0x27, 0xa9, 0x4f, 0xed, 0x36, 0xb9, - 0x86, 0x91, 0xbe, 0xaa, 0x55, 0x3a, 0x6d, 0x74, 0xed, 0xc2, 0x8a, 0x75, 0x37, 0x9b, 0x51, 0xf4, - 0x55, 0xad, 0x5e, 0xa5, 0x04, 0xcc, 0xcd, 0x5d, 0x14, 0x12, 0xc7, 0x3c, 0x7d, 0xc9, 0xc0, 0xd1, - 0xae, 0x59, 0xea, 0x50, 0x34, 0xe2, 0xc1, 0xf5, 0x6e, 0xa0, 0xa9, 0x8c, 0x78, 0x70, 0x5d, 0x87, - 0xdd, 0x4d, 0x2e, 0xc0, 0x5a, 0x76, 0x15, 0xa9, 0xbc, 0x96, 0xbd, 0x4d, 0xa6, 0x96, 0x3a, 0xcc, - 0x73, 0xc8, 0x91, 0xab, 0x65, 0xdb, 0xa9, 0x6c, 0x23, 0xdb, 0x57, 0x5a, 0xe8, 0x8b, 0x9b, 0x3d, - 0x29, 0x13, 0xa7, 0xab, 0xd5, 0x12, 0xe9, 0x9d, 0x27, 0x9d, 0xe6, 0x14, 0x8c, 0x36, 0xb7, 0x9f, - 0xa9, 0x52, 0xe7, 0x2a, 0x23, 0x3e, 0x3b, 0xf5, 0x17, 0xb2, 0x67, 0x88, 0x9a, 0x46, 0x70, 0x07, - 0x71, 0xad, 0x75, 0xd2, 0x6c, 0xde, 0x8b, 0x98, 0xbb, 0x7b, 0x95, 0xd6, 0x01, 0x59, 0xa4, 0x5d, - 0xa4, 0x54, 0x3b, 0x7b, 0x37, 0x25, 0xa5, 0xed, 0xab, 0xbc, 0xd9, 0x2c, 0xc1, 0x49, 0x3c, 0x79, - 0xa7, 0xe2, 0x34, 0xcb, 0x1d, 0xd7, 0x2e, 0x7b, 0x22, 0x0a, 0x5b, 0x9c, 0xc5, 0x62, 0x59, 0xc7, - 0x39, 0xd9, 0x96, 0x8b, 0x92, 0x19, 0x27, 0xe2, 0xe6, 0x79, 0x12, 0xc6, 0x3a, 0x4e, 0xdd, 0x41, - 0x2e, 0x8e, 0x7a, 0x30, 0x98, 0x06, 0x6c, 0xf6, 0x1f, 0x07, 0x03, 0x8a, 0xee, 0x2d, 0x99, 0x9a, - 0x3a, 0x89, 0x75, 0xb4, 0xd3, 0xdd, 0x98, 0xcb, 0x43, 0x4a, 0xf6, 0x1d, 0x73, 0x08, 0xa8, 0xf7, - 0xa0, 0xd5, 0x0d, 0xad, 0xa8, 0xc5, 0xb5, 0x05, 0xbc, 0x16, 0xbe, 0xbb, 0x84, 0x16, 0x36, 0xb4, - 0x26, 0x2f, 0x2f, 0x6d, 0x96, 0xca, 0xd6, 0xd6, 0xea, 0xe6, 0xd2, 0x4a, 0x29, 0x63, 0x4c, 0x0d, - 0x25, 0x7e, 0x30, 0x98, 0x79, 0x2f, 0xfa, 0x2f, 0x9a, 0xfb, 0x46, 0x14, 0xd2, 0x6a, 0x1d, 0x6c, - 0x3e, 0x04, 0xb7, 0xf1, 0x8b, 0x56, 0xd7, 0x6e, 0x97, 0x9f, 0xaf, 0xb7, 0x88, 0x3b, 0xef, 0x57, - 0x68, 0x25, 0x29, 0x2c, 0x31, 0xc6, 0xa8, 0xd0, 0xe5, 0xfd, 0x13, 0x88, 0x66, 0x91, 0x90, 0x98, - 0xcb, 0x70, 0x12, 0xa9, 0x0c, 0xd5, 0x9a, 0x4e, 0xad, 0xd2, 0xaa, 0x95, 0xbd, 0xed, 0x82, 0x72, - 0xa5, 0x8a, 0xfc, 0xc0, 0x6d, 0xd2, 0x95, 0x44, 0x70, 0x39, 0xee, 0x34, 0x37, 0x18, 0xb1, 0x97, - 0x62, 0xe7, 0x19, 0xa9, 0xe6, 0x35, 0x46, 0x90, 0xd7, 0xa0, 0xda, 0x6b, 0xbf, 0x72, 0x80, 0xdc, - 0xa6, 0xdd, 0xba, 0x4e, 0xaa, 0xb7, 0x84, 0x95, 0x40, 0x0d, 0x25, 0xfc, 0xfb, 0xcd, 0xb3, 0x81, - 0xac, 0xc7, 0x7f, 0x30, 0x20, 0x25, 0x57, 0x70, 0xb8, 0x20, 0xae, 0x92, 0x34, 0x1f, 0x21, 0x59, - 0xe0, 0xae, 0x9e, 0xf5, 0xde, 0x74, 0x11, 0xe7, 0xff, 0xfc, 0x00, 0xad, 0xab, 0x2c, 0x8a, 0xc4, - 0x6b, 0x2f, 0xf6, 0x35, 0x9b, 0x56, 0xeb, 0x09, 0x8b, 0xfd, 0x42, 0xc9, 0x6e, 0xe0, 0x19, 0x97, - 0xf0, 0x1e, 0x20, 0xbc, 0xcf, 0xf4, 0xe6, 0x7d, 0x6d, 0x83, 0x30, 0x1f, 0xba, 0xb6, 0x51, 0x5e, - 0x5d, 0xb3, 0x56, 0xe6, 0x97, 0x2d, 0x06, 0x37, 0x6f, 0x87, 0x58, 0xa3, 0xf2, 0x9e, 0xeb, 0xea, - 0x4a, 0x41, 0x9a, 0xfa, 0x55, 0x3c, 0xe2, 0x80, 0xb7, 0x3c, 0xd4, 0xfc, 0x4c, 0x9a, 0xde, 0x44, - 0xd7, 0x3f, 0x07, 0x71, 0xa2, 0x2f, 0x13, 0x80, 0x69, 0x2c, 0x73, 0xc4, 0x4c, 0x40, 0xac, 0xb8, - 0x66, 0x61, 0xf7, 0x47, 0xfe, 0x4e, 0x5b, 0xcb, 0xeb, 0x4b, 0xa5, 0x22, 0x8a, 0x80, 0xdc, 0x45, - 0x18, 0xa0, 0x4a, 0xc0, 0xa1, 0x21, 0xd4, 0x80, 0x40, 0xf4, 0x27, 0xe3, 0x11, 0xe1, 0xbd, 0x5b, - 0x2b, 0x85, 0x92, 0x95, 0x89, 0xca, 0xe6, 0xfd, 0x5a, 0x04, 0x92, 0x52, 0x41, 0x85, 0x97, 0xf2, - 0x4a, 0xa3, 0xd1, 0x7c, 0xbe, 0x5c, 0x69, 0xd4, 0x51, 0x86, 0xa2, 0xf6, 0x01, 0xd2, 0x34, 0x8f, - 0x5b, 0xfa, 0xd5, 0xdf, 0x2f, 0xc4, 0x37, 0x3f, 0x15, 0x81, 0x8c, 0x5e, 0x8c, 0x69, 0x02, 0x46, - 0xde, 0x52, 0x01, 0x3f, 0x11, 0x81, 0xb4, 0x5a, 0x81, 0x69, 0xe2, 0x9d, 0x7e, 0x4b, 0xc5, 0xfb, - 0x78, 0x04, 0x86, 0x95, 0xba, 0xeb, 0x97, 0x4a, 0xba, 0x8f, 0x19, 0x70, 0xd4, 0x07, 0x87, 0x12, - 0x10, 0x2d, 0x50, 0x69, 0xcd, 0x7c, 0x7f, 0x3f, 0x63, 0x4d, 0xe3, 0xf5, 0x6f, 0xbd, 0xd2, 0x6a, - 0xb3, 0x7a, 0x16, 0xad, 0x97, 0xf5, 0x1a, 0x4a, 0xaa, 0xf5, 0x9d, 0x3a, 0x2a, 0xdf, 0xe8, 0x15, - 0x0b, 0xad, 0x5a, 0x47, 0xbc, 0x76, 0x7a, 0x79, 0x7c, 0x1f, 0x98, 0x07, 0x4d, 0xb7, 0xde, 0xae, - 0x3f, 0x87, 0xb7, 0xe7, 0xf8, 0x85, 0x34, 0xae, 0x62, 0x63, 0x56, 0x86, 0xf7, 0x2c, 0x39, 0x6d, - 0x41, 0xed, 0xd8, 0xbb, 0x15, 0x8d, 0x1a, 0xa7, 0x21, 0xc3, 0xca, 0xf0, 0x1e, 0x41, 0x8d, 0x0a, - 0xcd, 0x5a, 0xb3, 0x83, 0x0b, 0x02, 0x4a, 0x87, 0xb3, 0x5e, 0xc4, 0x4a, 0xd2, 0x36, 0x41, 0xc2, - 0x2a, 0x36, 0xef, 0x0a, 0x3e, 0x65, 0x25, 0x69, 0x1b, 0x25, 0xb9, 0x07, 0x46, 0x2a, 0xbb, 0xbb, - 0x2d, 0xcc, 0x9c, 0x33, 0xa2, 0x65, 0x68, 0x5a, 0x34, 0x13, 0xc2, 0x89, 0x6b, 0x90, 0xe0, 0x7a, - 0xc0, 0x0b, 0x0b, 0xd6, 0x04, 0x5a, 0xf3, 0xc9, 0x3e, 0x4a, 0x14, 0x5f, 0xd4, 0x3b, 0xbc, 0x13, - 0x0d, 0x5a, 0x77, 0xcb, 0xde, 0x86, 0x5e, 0x14, 0xf5, 0x27, 0xac, 0x64, 0xdd, 0x15, 0x3b, 0x38, - 0xb9, 0xcf, 0xa1, 0xe5, 0x55, 0xdd, 0x90, 0x34, 0x17, 0x20, 0xd1, 0x68, 0x22, 0xff, 0xc0, 0x08, - 0xba, 0x1b, 0x3e, 0x19, 0xb2, 0x87, 0x39, 0xbd, 0xcc, 0xe8, 0x2d, 0x81, 0x9c, 0xf8, 0xeb, 0x08, - 0x24, 0x78, 0x33, 0x5a, 0x28, 0x62, 0x07, 0x95, 0xf6, 0x1e, 0x61, 0x17, 0x2f, 0x44, 0x33, 0x11, - 0x8b, 0xfc, 0xc6, 0xed, 0xa8, 0x9a, 0x71, 0x88, 0x0b, 0xb0, 0x76, 0xfc, 0x1b, 0xdb, 0xb5, 0x61, - 0x57, 0x6a, 0xa4, 0xc0, 0x6d, 0xee, 0xef, 0x23, 0x4b, 0xba, 0xdc, 0xae, 0xac, 0xbd, 0xc8, 0x9a, - 0xf1, 0xbe, 0x78, 0xbb, 0x55, 0xa9, 0x37, 0x14, 0xda, 0x18, 0xa1, 0xcd, 0xf0, 0x0e, 0x41, 0x9c, - 0x87, 0xdb, 0x39, 0xdf, 0x9a, 0xdd, 0xae, 0xa0, 0xe2, 0xb9, 0xe6, 0x81, 0x06, 0xc8, 0x6e, 0xd7, - 0x6d, 0x8c, 0x60, 0x81, 0xf5, 0x73, 0x6c, 0xe1, 0x49, 0x54, 0xc8, 0x36, 0xf7, 0x75, 0x4d, 0x14, - 0x32, 0xda, 0x75, 0x97, 0xfb, 0x58, 0xe4, 0xdd, 0xe0, 0x15, 0x15, 0x9f, 0x89, 0x1a, 0x57, 0xd7, - 0x0b, 0x5f, 0x88, 0x4e, 0x5c, 0xa5, 0xb8, 0x75, 0xae, 0x41, 0xcb, 0xde, 0x69, 0xd8, 0x55, 0xac, - 0x1d, 0x78, 0xe9, 0x2e, 0xb8, 0x7f, 0xb7, 0xde, 0xde, 0xeb, 0x6c, 0x4f, 0xa3, 0x11, 0xce, 0xed, - 0x36, 0x77, 0x9b, 0xde, 0x71, 0x06, 0xfe, 0x45, 0x7e, 0x90, 0x6f, 0xec, 0x48, 0x63, 0x48, 0xb4, - 0x4e, 0x84, 0x9e, 0x7f, 0xe4, 0x57, 0xe1, 0x28, 0x23, 0x2e, 0x93, 0x3d, 0x55, 0x5a, 0x82, 0x9a, - 0x3d, 0x2f, 0xc8, 0xb3, 0x5f, 0xfa, 0x3e, 0x59, 0x12, 0xac, 0x51, 0x06, 0xc5, 0x7d, 0xb4, 0x48, - 0xcd, 0x5b, 0x70, 0x4c, 0xe1, 0x47, 0x7d, 0x18, 0x5d, 0x72, 0xf7, 0xe6, 0xf8, 0x0d, 0xc6, 0xf1, - 0xa8, 0xc4, 0x71, 0x83, 0x41, 0xf3, 0x45, 0x18, 0x3e, 0x0c, 0xaf, 0x6f, 0x32, 0x5e, 0x29, 0x5b, - 0x66, 0x72, 0x15, 0x46, 0x08, 0x93, 0x6a, 0xc7, 0x6d, 0x37, 0xf7, 0x49, 0x82, 0xe8, 0xcd, 0xe6, - 0x2f, 0xbe, 0x4f, 0x9d, 0x2a, 0x8d, 0x61, 0x45, 0x81, 0xca, 0x3f, 0x0e, 0x63, 0xb8, 0x85, 0xc4, - 0xa0, 0xcc, 0x2d, 0x7c, 0x0b, 0x21, 0xfb, 0x37, 0xef, 0xa7, 0xbe, 0x77, 0x54, 0x30, 0x90, 0xf8, - 0x4a, 0x96, 0xd8, 0xb5, 0xdb, 0x28, 0xb7, 0xa1, 0xeb, 0xbf, 0x46, 0xc3, 0xec, 0x79, 0xc6, 0x90, - 0xfd, 0xe8, 0x0f, 0x55, 0x4b, 0x5c, 0xa5, 0xc8, 0xf9, 0x46, 0x23, 0xbf, 0x05, 0xb7, 0xf9, 0x58, - 0xb6, 0x0f, 0x9e, 0x1f, 0x63, 0x3c, 0xc7, 0xba, 0xac, 0x8b, 0xd9, 0xae, 0x03, 0x6f, 0x17, 0xf6, - 0xe8, 0x83, 0xe7, 0xc7, 0x19, 0x4f, 0x93, 0x61, 0xb9, 0x59, 0x30, 0xc7, 0x6b, 0x30, 0x8a, 0xae, - 0xd4, 0xb7, 0x9b, 0x2e, 0xbb, 0xee, 0xed, 0x83, 0xdd, 0x27, 0x18, 0xbb, 0x11, 0x06, 0x24, 0x57, - 0xc1, 0x98, 0xd7, 0x03, 0x90, 0xd8, 0x41, 0x17, 0x40, 0x7d, 0xb0, 0xf8, 0x24, 0x63, 0x31, 0x88, - 0xe9, 0x31, 0x74, 0x1e, 0x52, 0xbb, 0x4d, 0x96, 0x86, 0xc3, 0xe1, 0x9f, 0x62, 0xf0, 0x24, 0xc7, - 0x30, 0x16, 0x07, 0xcd, 0x83, 0x4e, 0x03, 0xe7, 0xe8, 0x70, 0x16, 0x9f, 0xe6, 0x2c, 0x38, 0x86, - 0xb1, 0x38, 0x84, 0x5a, 0x5f, 0xe4, 0x2c, 0x5c, 0x49, 0x9f, 0x8f, 0xe2, 0xbd, 0xde, 0xc6, 0xf5, - 0xa6, 0xd3, 0x8f, 0x10, 0x2f, 0x31, 0x0e, 0xc0, 0x20, 0x98, 0xc1, 0x83, 0x30, 0xd4, 0xaf, 0x21, - 0x3e, 0xcb, 0xe0, 0x09, 0x9b, 0x5b, 0x00, 0xc5, 0x19, 0x4f, 0x32, 0xf8, 0x6c, 0x25, 0x9c, 0xc5, - 0x6f, 0x33, 0x16, 0x69, 0x09, 0xc6, 0xa6, 0xd1, 0xb6, 0xdd, 0x36, 0xba, 0x54, 0xef, 0x83, 0xc9, - 0xe7, 0xf8, 0x34, 0x18, 0x84, 0xa9, 0x72, 0xdb, 0x76, 0xaa, 0x7b, 0xfd, 0x71, 0x78, 0x99, 0xab, - 0x92, 0x63, 0x30, 0x0b, 0x94, 0x79, 0xf6, 0x2b, 0x2d, 0x74, 0x71, 0xdd, 0xe8, 0xcb, 0x1c, 0x9f, - 0x67, 0x3c, 0x52, 0x02, 0xc4, 0x34, 0xd2, 0x71, 0x0e, 0xc3, 0xe6, 0x0b, 0x5c, 0x23, 0x12, 0x8c, - 0x85, 0x1e, 0xba, 0x32, 0xc5, 0x95, 0xc4, 0x61, 0xb8, 0xfd, 0x0e, 0x0f, 0x3d, 0x8a, 0x5d, 0x91, - 0x39, 0x22, 0x4b, 0xbb, 0xe8, 0x12, 0xbc, 0x1f, 0x36, 0xbf, 0xcb, 0x2d, 0x4d, 0x00, 0x18, 0xfc, - 0x14, 0xdc, 0xee, 0x9b, 0xea, 0xfb, 0x60, 0xf6, 0x7b, 0x8c, 0xd9, 0xb8, 0x4f, 0xba, 0x67, 0x29, - 0xe1, 0xb0, 0x2c, 0x7f, 0x9f, 0xa7, 0x04, 0x5b, 0xe3, 0xb5, 0x8e, 0xcb, 0x58, 0xb7, 0xb2, 0x73, - 0x38, 0xad, 0xfd, 0x01, 0xd7, 0x1a, 0xc5, 0x2a, 0x5a, 0xdb, 0x84, 0x71, 0xc6, 0xf1, 0x70, 0x76, - 0xfd, 0x22, 0x4f, 0xac, 0x14, 0xbd, 0xa5, 0x5a, 0xf7, 0x69, 0x98, 0x10, 0xea, 0xe4, 0x15, 0x98, - 0x5b, 0xc6, 0x1b, 0x03, 0xe1, 0x9c, 0xbf, 0xc4, 0x38, 0xf3, 0x8c, 0x2f, 0x4a, 0x38, 0x77, 0xa5, - 0x72, 0x80, 0x99, 0x3f, 0x09, 0x59, 0xce, 0xbc, 0xe3, 0xa0, 0x02, 0xbf, 0xb9, 0xeb, 0x20, 0x33, - 0xd6, 0xfa, 0x60, 0xfd, 0x65, 0xcd, 0x54, 0x5b, 0x12, 0x1c, 0x73, 0x5e, 0x82, 0x8c, 0xa8, 0x37, - 0xca, 0xf5, 0xfd, 0x83, 0x26, 0x2a, 0x2d, 0x7b, 0x73, 0xfc, 0x43, 0x6e, 0x29, 0x81, 0x5b, 0x22, - 0xb0, 0x7c, 0x09, 0xd2, 0xe4, 0x67, 0xbf, 0x2e, 0xf9, 0x15, 0xc6, 0x68, 0xd8, 0x43, 0xb1, 0xc4, - 0x81, 0x2a, 0x25, 0x54, 0xf3, 0xf6, 0x93, 0xff, 0xfe, 0x88, 0x27, 0x0e, 0x06, 0xa1, 0xde, 0x37, - 0xa2, 0xad, 0xc4, 0x66, 0xd8, 0xf1, 0x6b, 0xf6, 0xbf, 0xbf, 0xce, 0x62, 0x56, 0x5d, 0x88, 0xf3, - 0xcb, 0x58, 0x3d, 0xea, 0x72, 0x19, 0xce, 0xec, 0xfd, 0xaf, 0x0b, 0x0d, 0x29, 0xab, 0x65, 0x7e, - 0x11, 0x86, 0x95, 0xa5, 0x32, 0x9c, 0xd5, 0xff, 0x60, 0xac, 0x52, 0xf2, 0x4a, 0x99, 0xbf, 0x08, - 0x31, 0xbc, 0xec, 0x85, 0xc3, 0xff, 0x27, 0x83, 0x13, 0xf2, 0xfc, 0xc3, 0x90, 0xe0, 0xcb, 0x5d, - 0x38, 0xf4, 0x03, 0x0c, 0x2a, 0x20, 0x18, 0xce, 0x97, 0xba, 0x70, 0xf8, 0xff, 0xe2, 0x70, 0x0e, - 0xc1, 0xf0, 0xfe, 0x55, 0xf8, 0xca, 0xff, 0x89, 0xb1, 0x74, 0xc5, 0x75, 0x87, 0xcf, 0x7c, 0xe8, - 0x1a, 0x17, 0x8e, 0xfe, 0x10, 0x1b, 0x9c, 0x23, 0xf2, 0x97, 0x21, 0xde, 0xa7, 0xc2, 0xff, 0x2f, - 0x83, 0x52, 0x7a, 0xb4, 0x82, 0x24, 0xa5, 0x75, 0x2d, 0x1c, 0xfe, 0xff, 0x18, 0x5c, 0x46, 0x61, - 0xd1, 0xd9, 0xba, 0x16, 0xce, 0xe0, 0xff, 0x73, 0xd1, 0x19, 0x02, 0xab, 0x8d, 0x2f, 0x69, 0xe1, - 0xe8, 0x5f, 0xe1, 0x5a, 0xe7, 0x10, 0x14, 0x4d, 0x43, 0x22, 0x4d, 0x85, 0xe3, 0x7f, 0x95, 0xe1, - 0x3d, 0x0c, 0xd6, 0x80, 0x94, 0x26, 0xc3, 0x59, 0xfc, 0x1a, 0xd7, 0x80, 0x84, 0xc2, 0x61, 0xa4, - 0x2f, 0x7d, 0xe1, 0x9c, 0x3e, 0xcc, 0xc3, 0x48, 0x5b, 0xf9, 0xb0, 0x35, 0x49, 0xb6, 0x08, 0x67, - 0xf1, 0xeb, 0xdc, 0x9a, 0x84, 0x1e, 0x8b, 0xa1, 0xaf, 0x25, 0xe1, 0x3c, 0x7e, 0x93, 0x8b, 0xa1, - 0x2d, 0x25, 0x68, 0x65, 0x32, 0xbb, 0xd7, 0x91, 0x70, 0x7e, 0x1f, 0x61, 0xfc, 0x46, 0xbb, 0x96, - 0x91, 0xfc, 0x13, 0x30, 0xee, 0xbf, 0x86, 0x84, 0x73, 0xfd, 0xe8, 0xeb, 0x5a, 0xd5, 0x2f, 0x2f, - 0x21, 0x68, 0xc9, 0x1b, 0xf3, 0x5b, 0x3f, 0xc2, 0xd9, 0x7e, 0xec, 0x75, 0xf5, 0xc2, 0x4e, 0x5e, - 0x3e, 0x50, 0x85, 0x06, 0x5e, 0xea, 0x0e, 0xe7, 0xf5, 0x09, 0xc6, 0x4b, 0x02, 0xe1, 0xd0, 0x60, - 0x99, 0x3b, 0x1c, 0xff, 0x49, 0x1e, 0x1a, 0x0c, 0x81, 0xc0, 0x09, 0xa7, 0xd3, 0x68, 0x60, 0xe7, - 0x30, 0x7b, 0xdf, 0xd2, 0x90, 0xfd, 0xa7, 0x9f, 0xb1, 0xc0, 0xe0, 0x00, 0x94, 0x43, 0xe3, 0xf6, - 0xfe, 0x36, 0xd2, 0x41, 0x08, 0xf2, 0x9f, 0x7f, 0xc6, 0x13, 0x02, 0xa6, 0x46, 0xf1, 0x04, 0xf4, - 0xa2, 0x91, 0xec, 0x61, 0x87, 0x60, 0xff, 0xe5, 0x67, 0xec, 0x98, 0xd5, 0x83, 0x78, 0x0c, 0xe8, - 0xa1, 0x6d, 0x6f, 0x06, 0x3f, 0x54, 0x19, 0x90, 0x0b, 0xcd, 0x07, 0x60, 0x10, 0xdf, 0xd9, 0xd1, - 0xae, 0xec, 0x86, 0xa1, 0xff, 0x95, 0xa1, 0x39, 0x3d, 0x56, 0xd8, 0x7e, 0xb3, 0x65, 0xa3, 0xaf, - 0x6e, 0x18, 0xf6, 0xdf, 0x18, 0x56, 0x00, 0x30, 0xb8, 0x5a, 0x71, 0xdb, 0xfd, 0xcc, 0xfb, 0xdf, - 0x39, 0x98, 0x03, 0xb0, 0xd0, 0xf8, 0xfb, 0xb3, 0xf6, 0xf5, 0x30, 0xec, 0x8f, 0xb8, 0xd0, 0x8c, - 0x1e, 0x25, 0xc0, 0x21, 0xfc, 0x95, 0xde, 0x7a, 0x10, 0x02, 0xfe, 0x31, 0x03, 0x7b, 0x88, 0xc2, - 0x69, 0xff, 0xad, 0x1d, 0xb8, 0xda, 0xbc, 0xda, 0xa4, 0x9b, 0x3a, 0xf0, 0xcd, 0x3a, 0x5c, 0x0e, - 0xdc, 0xa3, 0xc1, 0x79, 0xf8, 0x1c, 0x6a, 0x46, 0xab, 0xef, 0xb9, 0xed, 0x66, 0x7b, 0xef, 0x5c, - 0x7b, 0xcf, 0xc6, 0x6d, 0x6c, 0xb7, 0x26, 0x86, 0xbf, 0x4f, 0x1c, 0x6e, 0x8b, 0x87, 0x9c, 0xd7, - 0xac, 0xd6, 0xb1, 0xd4, 0xab, 0x64, 0xb3, 0xd1, 0x3c, 0x0e, 0x03, 0x64, 0x1e, 0xe7, 0xc9, 0x5e, - 0x78, 0xa4, 0x10, 0xbb, 0xf1, 0xda, 0xc9, 0x23, 0xd6, 0x00, 0xb9, 0x6f, 0xef, 0xbc, 0xe8, 0x9d, - 0x25, 0x5b, 0xfd, 0x51, 0xa5, 0x77, 0x56, 0xf4, 0x5e, 0xa0, 0x37, 0x45, 0x29, 0xbd, 0x17, 0x44, - 0xef, 0x1c, 0xd9, 0x37, 0x33, 0x94, 0xde, 0x39, 0xd1, 0x7b, 0x91, 0x6c, 0x7f, 0x0e, 0x2b, 0xbd, - 0x17, 0x45, 0xef, 0x25, 0xb2, 0xe9, 0x19, 0x53, 0x7a, 0x2f, 0x89, 0xde, 0xcb, 0x64, 0xbf, 0x73, - 0x54, 0xe9, 0xbd, 0x2c, 0x7a, 0xaf, 0x90, 0x7d, 0x4e, 0x53, 0xe9, 0xbd, 0x22, 0x7a, 0x1f, 0x20, - 0xc7, 0xd4, 0x83, 0x4a, 0xef, 0x03, 0xe6, 0x09, 0x18, 0xa4, 0xda, 0x98, 0x21, 0x47, 0x3b, 0x23, - 0xac, 0x7b, 0x90, 0xaa, 0x63, 0xc6, 0xeb, 0x3f, 0x4f, 0x8e, 0xa4, 0x07, 0xd4, 0xfe, 0xf3, 0x5e, - 0xff, 0x2c, 0xb9, 0xcd, 0x32, 0xa3, 0xf6, 0xcf, 0x7a, 0xfd, 0x17, 0xb2, 0xc3, 0x38, 0xb6, 0xd5, - 0xfe, 0x0b, 0x5e, 0xff, 0x5c, 0x36, 0x8d, 0xdd, 0x49, 0xed, 0x9f, 0xf3, 0xfa, 0x2f, 0x66, 0x47, - 0xf0, 0x56, 0xaf, 0xda, 0x7f, 0x31, 0xf7, 0x3e, 0x62, 0x5e, 0xc7, 0x33, 0xef, 0xb8, 0x6a, 0x5e, - 0x61, 0xd8, 0x71, 0xd5, 0xb0, 0xc2, 0xa4, 0xe3, 0xaa, 0x49, 0x85, 0x31, 0xc7, 0x55, 0x63, 0x0a, - 0x33, 0x8e, 0xab, 0x66, 0x14, 0x06, 0x1c, 0x57, 0x0d, 0x28, 0x4c, 0x37, 0xae, 0x9a, 0x4e, 0x18, - 0x6d, 0x5c, 0x35, 0x9a, 0x30, 0xd7, 0xb8, 0x6a, 0x2e, 0x61, 0xa8, 0xac, 0x66, 0x28, 0xcf, 0x44, - 0x59, 0xcd, 0x44, 0x9e, 0x71, 0xb2, 0x9a, 0x71, 0x3c, 0xb3, 0x64, 0x35, 0xb3, 0x78, 0x06, 0xc9, - 0x6a, 0x06, 0xf1, 0x4c, 0x91, 0xd5, 0x4c, 0xe1, 0x19, 0x81, 0xc5, 0x98, 0x65, 0x1f, 0xf8, 0xc4, - 0x98, 0xd1, 0x33, 0xc6, 0x8c, 0x9e, 0x31, 0x66, 0xf4, 0x8c, 0x31, 0xa3, 0x67, 0x8c, 0x19, 0x3d, - 0x63, 0xcc, 0xe8, 0x19, 0x63, 0x46, 0xcf, 0x18, 0x33, 0x7a, 0xc6, 0x98, 0xd1, 0x3b, 0xc6, 0x8c, - 0x90, 0x18, 0x33, 0x42, 0x62, 0xcc, 0x08, 0x89, 0x31, 0x23, 0x24, 0xc6, 0x8c, 0x90, 0x18, 0x33, - 0x02, 0x63, 0xcc, 0x33, 0xef, 0xb8, 0x6a, 0x5e, 0xdf, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, 0x88, - 0x31, 0x23, 0x20, 0xc6, 0x8c, 0x80, 0x18, 0x33, 0x02, 0x62, 0xcc, 0x08, 0x88, 0x31, 0x23, 0x20, - 0xc6, 0x8c, 0xa0, 0x18, 0x33, 0x02, 0x63, 0xcc, 0x08, 0x8c, 0x31, 0x23, 0x30, 0xc6, 0x8c, 0xc0, - 0x18, 0x33, 0x02, 0x63, 0xcc, 0x90, 0x63, 0xec, 0x4f, 0x0c, 0x30, 0x69, 0x8c, 0xad, 0x93, 0x9b, - 0x03, 0x98, 0x29, 0x4e, 0x68, 0x91, 0x36, 0x80, 0x4d, 0x97, 0xf1, 0x4c, 0x72, 0x42, 0x8b, 0x35, - 0xb5, 0x7f, 0x56, 0xf4, 0xf3, 0x68, 0x53, 0xfb, 0x2f, 0x88, 0x7e, 0x1e, 0x6f, 0x6a, 0xff, 0x9c, - 0xe8, 0xe7, 0x11, 0xa7, 0xf6, 0x5f, 0x14, 0xfd, 0x3c, 0xe6, 0xd4, 0xfe, 0x4b, 0xa2, 0x9f, 0x47, - 0x9d, 0xda, 0x7f, 0x59, 0xf4, 0xf3, 0xb8, 0x53, 0xfb, 0xaf, 0x88, 0x7e, 0x1e, 0x79, 0x6a, 0xff, - 0x03, 0xe6, 0x29, 0x3d, 0xf6, 0x38, 0x81, 0x30, 0xed, 0x29, 0x3d, 0xfa, 0x34, 0x8a, 0xf3, 0x1e, - 0x05, 0x8f, 0x3f, 0x8d, 0x62, 0xd6, 0xa3, 0xe0, 0x11, 0xa8, 0x51, 0x5c, 0xc8, 0x7d, 0x90, 0x98, - 0xcf, 0xd1, 0xcd, 0x37, 0xa1, 0x99, 0x2f, 0x2a, 0x99, 0x6e, 0x42, 0x33, 0x5d, 0x54, 0x32, 0xdb, - 0x84, 0x66, 0xb6, 0xa8, 0x64, 0xb2, 0x09, 0xcd, 0x64, 0x51, 0xc9, 0x5c, 0x13, 0x9a, 0xb9, 0xa2, - 0x92, 0xa9, 0x26, 0x34, 0x53, 0x45, 0x25, 0x33, 0x4d, 0x68, 0x66, 0x8a, 0x4a, 0x26, 0x9a, 0xd0, - 0x4c, 0x14, 0x95, 0xcc, 0x33, 0xa1, 0x99, 0x27, 0x2a, 0x99, 0xe6, 0xb8, 0x6e, 0x9a, 0xa8, 0x6c, - 0x96, 0xe3, 0xba, 0x59, 0xa2, 0xb2, 0x49, 0x8e, 0xeb, 0x26, 0x89, 0xca, 0xe6, 0x38, 0xae, 0x9b, - 0x23, 0x2a, 0x9b, 0xe2, 0xe7, 0x51, 0x5e, 0x11, 0x6e, 0xb4, 0x5b, 0x9d, 0x6a, 0xfb, 0x96, 0x2a, - 0xc2, 0x19, 0xa5, 0x7c, 0x48, 0xce, 0x9a, 0xd3, 0xa4, 0x60, 0x95, 0x2b, 0x4e, 0x6d, 0x05, 0x9b, - 0x51, 0x0a, 0x0b, 0x09, 0xe1, 0xf8, 0x23, 0xe6, 0x6e, 0xa9, 0x36, 0x9c, 0x51, 0xca, 0x8c, 0x70, - 0xf9, 0xae, 0xbc, 0xe9, 0x15, 0xdb, 0x2b, 0x51, 0x5e, 0xb1, 0x31, 0xf5, 0x1f, 0xb6, 0x62, 0x9b, - 0x0a, 0x57, 0xb9, 0x50, 0xf6, 0x54, 0xb8, 0xb2, 0xbb, 0x56, 0x9d, 0x7e, 0x2b, 0xb8, 0xa9, 0x70, - 0xd5, 0x0a, 0xa5, 0xbe, 0xb1, 0xf5, 0x16, 0xf3, 0x60, 0x94, 0x4c, 0x7c, 0x3c, 0xf8, 0xb0, 0xf5, - 0xd6, 0x8c, 0x92, 0x4a, 0x0e, 0xeb, 0xc1, 0xc6, 0xa1, 0x3d, 0xf8, 0xb0, 0x95, 0xd7, 0x8c, 0x92, - 0x5e, 0x0e, 0xed, 0xc1, 0x6f, 0x42, 0x3d, 0xc4, 0x3c, 0xd8, 0x53, 0xff, 0x61, 0xeb, 0xa1, 0xa9, - 0x70, 0x95, 0xfb, 0x7a, 0xb0, 0x71, 0x08, 0x0f, 0xee, 0xa7, 0x3e, 0x9a, 0x0a, 0x57, 0xad, 0xbf, - 0x07, 0xdf, 0x72, 0x35, 0xf3, 0xe9, 0x08, 0x8c, 0xa2, 0x61, 0x4a, 0x78, 0x9f, 0xa7, 0x66, 0xd7, - 0x98, 0x1e, 0x67, 0x94, 0x4c, 0x10, 0x60, 0xea, 0x57, 0x5f, 0x3b, 0xe9, 0x69, 0xf8, 0x22, 0x24, - 0xa8, 0x86, 0x67, 0x66, 0xb2, 0x37, 0x22, 0x21, 0x19, 0x2e, 0xb1, 0xc3, 0x48, 0xcd, 0xd3, 0x1c, - 0x86, 0xd6, 0x9e, 0x6f, 0x45, 0xa4, 0x2c, 0xc7, 0x48, 0xce, 0xcf, 0xe4, 0x3e, 0x4c, 0x24, 0x74, - 0x6e, 0x59, 0xc2, 0x73, 0x7d, 0x49, 0x28, 0xc9, 0x76, 0x47, 0x97, 0x6c, 0x92, 0x54, 0x1d, 0x18, - 0x41, 0xb0, 0x55, 0xf2, 0x80, 0x5f, 0x3f, 0x22, 0x51, 0x1a, 0x2d, 0x1f, 0xcc, 0x28, 0x6e, 0x29, - 0x23, 0x84, 0x4b, 0xab, 0x39, 0x22, 0x57, 0xc7, 0xc3, 0x3a, 0xca, 0xb0, 0x53, 0x41, 0xc3, 0x7a, - 0x99, 0x5d, 0x0c, 0x38, 0x15, 0x34, 0xa0, 0x17, 0x43, 0x62, 0xa8, 0x17, 0xf8, 0xe2, 0x4c, 0xef, - 0xf7, 0x40, 0xc9, 0x21, 0xba, 0x44, 0x6f, 0x5b, 0x4c, 0x15, 0x52, 0x58, 0xa8, 0xbf, 0x7f, 0xed, - 0x64, 0x6c, 0xab, 0x83, 0x64, 0x8d, 0xd6, 0x6b, 0xe6, 0x35, 0x88, 0x3f, 0xce, 0x9e, 0xaf, 0xc1, - 0x04, 0x73, 0x8c, 0xe0, 0xbe, 0x90, 0x2d, 0x26, 0xc2, 0x7a, 0x7a, 0xab, 0xee, 0xb4, 0xcf, 0xcf, - 0x5e, 0x61, 0x8f, 0xda, 0xe4, 0xfe, 0x33, 0x00, 0x1d, 0x73, 0x01, 0x3f, 0x1f, 0xb0, 0xca, 0x39, - 0xd3, 0xa1, 0xaf, 0x20, 0xae, 0x73, 0xfd, 0x70, 0xbd, 0xbf, 0x86, 0xd0, 0xf7, 0xe3, 0x8d, 0xb8, - 0xe9, 0xc2, 0x75, 0xd4, 0xce, 0xb9, 0x1f, 0xf0, 0x55, 0x8f, 0xcd, 0x2b, 0x2b, 0xcd, 0x2b, 0xa1, - 0xcc, 0x69, 0x51, 0x9d, 0xd3, 0xcc, 0xcd, 0xce, 0xe7, 0x05, 0xbe, 0x48, 0x68, 0x9a, 0x34, 0xc2, - 0x34, 0x69, 0xdc, 0xaa, 0x26, 0x0f, 0x78, 0x7e, 0xd4, 0xe6, 0x6a, 0xf4, 0x9a, 0xab, 0x71, 0x2b, - 0x73, 0xfd, 0x09, 0x8d, 0x56, 0x11, 0x4f, 0x5b, 0x0e, 0xbd, 0x5d, 0xee, 0x97, 0x6b, 0x2f, 0xe8, - 0x0d, 0xad, 0x02, 0xf2, 0xb1, 0x1b, 0x2f, 0x9e, 0x8c, 0xe4, 0x3e, 0x1d, 0xe5, 0x33, 0xa7, 0x81, - 0x74, 0x73, 0x33, 0xff, 0x65, 0xa9, 0xa9, 0xde, 0x0c, 0x0d, 0x7d, 0x2a, 0x02, 0xe3, 0x5d, 0x99, - 0x9c, 0xaa, 0xe9, 0x8d, 0x4d, 0xe7, 0xce, 0x61, 0xd3, 0x39, 0x13, 0xf0, 0x2b, 0x11, 0x18, 0xd3, - 0xd2, 0x2b, 0x15, 0xef, 0x9c, 0x26, 0xde, 0x6d, 0xdd, 0x23, 0x11, 0x42, 0x49, 0x3a, 0xd9, 0xbc, - 0x1a, 0x40, 0xe2, 0x2c, 0xec, 0x3e, 0xa7, 0xd9, 0xfd, 0xb8, 0x00, 0xf8, 0xa8, 0x8b, 0x7b, 0x00, - 0x13, 0xbb, 0x09, 0xb1, 0xcd, 0x96, 0x8d, 0xb7, 0x20, 0xa2, 0x6b, 0x2d, 0x26, 0x61, 0x9a, 0xe2, - 0xd7, 0x5a, 0x85, 0x56, 0xc5, 0xa9, 0xee, 0x59, 0xd1, 0x66, 0x0b, 0x2d, 0xb6, 0xc6, 0x3c, 0x7b, - 0x10, 0x39, 0x39, 0x3b, 0x42, 0x09, 0x50, 0x03, 0xa3, 0x30, 0x2a, 0x4e, 0x0d, 0xb1, 0x88, 0x2d, - 0xdb, 0x95, 0x1d, 0x26, 0x04, 0x50, 0x1a, 0xdc, 0x62, 0xc5, 0x1a, 0xe8, 0x5f, 0x36, 0xe0, 0x93, - 0x90, 0xe0, 0x8c, 0xcd, 0x33, 0x18, 0xb1, 0xd3, 0x66, 0xc3, 0x32, 0x04, 0x16, 0x87, 0xad, 0x5c, - 0x08, 0xb7, 0xd3, 0x36, 0xcf, 0x42, 0xdc, 0xaa, 0xef, 0xee, 0xb5, 0xd9, 0xe0, 0xdd, 0x64, 0xf1, - 0x16, 0xee, 0xce, 0x3d, 0x05, 0x43, 0x42, 0xa2, 0x37, 0x98, 0xf5, 0x02, 0x9d, 0x1a, 0xba, 0x12, - 0x96, 0xd6, 0x13, 0xbe, 0x6f, 0xc9, 0x1e, 0xf2, 0x3c, 0x05, 0x09, 0xa4, 0x66, 0x2f, 0xe9, 0xf3, - 0x8a, 0x14, 0x9f, 0xc8, 0x93, 0xd6, 0xdc, 0xfb, 0x22, 0x90, 0x58, 0xb0, 0xed, 0x03, 0xa2, 0xf0, - 0xbb, 0x21, 0xb6, 0xd0, 0x7c, 0xde, 0x61, 0x02, 0x8e, 0x32, 0x8d, 0xe2, 0x6e, 0xa6, 0xd3, 0x58, - 0x0d, 0x75, 0x23, 0x32, 0x49, 0xef, 0x47, 0x85, 0xde, 0x25, 0x3a, 0xa2, 0xfb, 0x9c, 0xa2, 0x7b, - 0x66, 0x40, 0x4c, 0xd4, 0xa5, 0xff, 0xcb, 0x90, 0x94, 0x46, 0x31, 0x27, 0x99, 0x18, 0x51, 0x1d, - 0x28, 0xeb, 0x0a, 0x4b, 0x92, 0xb3, 0x61, 0x58, 0x19, 0x18, 0x43, 0x25, 0x15, 0x07, 0x40, 0x89, - 0x9a, 0xa7, 0x54, 0x35, 0xfb, 0x93, 0x32, 0x55, 0xcf, 0x50, 0x1d, 0x11, 0x75, 0x9f, 0xa1, 0xce, - 0x19, 0x6c, 0xc4, 0x36, 0xfa, 0x9e, 0x8b, 0x83, 0xb1, 0x5a, 0x6f, 0xe4, 0x1e, 0x06, 0xa0, 0x21, - 0x8f, 0x6f, 0xae, 0xd2, 0xa2, 0x2e, 0xcd, 0x15, 0xbc, 0xb9, 0x67, 0x6f, 0xa2, 0xbf, 0x98, 0x44, - 0xad, 0xa7, 0x70, 0x82, 0x01, 0x1a, 0x62, 0x04, 0x7f, 0x6f, 0x28, 0xde, 0xb7, 0x12, 0xc3, 0xa4, - 0x59, 0x4a, 0xfa, 0x94, 0xdd, 0x9e, 0x77, 0x9a, 0xed, 0x3d, 0xbb, 0xa5, 0x21, 0x66, 0xcd, 0x0b, - 0x4a, 0xc0, 0xa6, 0x67, 0xef, 0x10, 0x88, 0x40, 0xd0, 0x85, 0xdc, 0x17, 0x89, 0x80, 0xb8, 0x14, - 0xe8, 0x9a, 0xa0, 0xd1, 0xc7, 0x04, 0xcd, 0x4b, 0x4a, 0xfd, 0xd6, 0x43, 0x4c, 0xed, 0xd2, 0xf2, - 0x01, 0xe5, 0x3a, 0xa7, 0xb7, 0xb0, 0xea, 0x35, 0x26, 0xd7, 0x29, 0x17, 0xf9, 0xde, 0x50, 0x91, - 0x03, 0xaa, 0xdb, 0xc3, 0xea, 0xd4, 0xe8, 0x57, 0xa7, 0x5f, 0x13, 0x15, 0x07, 0x7d, 0x16, 0x9c, - 0xbc, 0x41, 0xc0, 0xbc, 0x2f, 0xd4, 0xf6, 0xf9, 0x48, 0x51, 0x88, 0x3a, 0xd7, 0xaf, 0xf9, 0xf3, - 0xd1, 0x42, 0x41, 0x88, 0x7b, 0xf9, 0x10, 0x2e, 0x90, 0x8f, 0x16, 0x8b, 0x22, 0x6d, 0x27, 0x3e, - 0x88, 0xa2, 0xf8, 0xe5, 0x17, 0x4f, 0x1e, 0xc9, 0x7d, 0x1e, 0x09, 0xcf, 0x28, 0x25, 0xc7, 0xbd, - 0x5f, 0x13, 0xfe, 0x18, 0xcf, 0x19, 0x7e, 0x1a, 0xf8, 0x85, 0x39, 0xef, 0x37, 0x22, 0x90, 0xed, - 0x92, 0x95, 0xeb, 0x7b, 0xa6, 0x2f, 0x91, 0xf3, 0x91, 0xd2, 0x5b, 0xaf, 0xf3, 0xa7, 0x20, 0xbe, - 0x59, 0xdf, 0xb7, 0x5b, 0x78, 0x25, 0xc0, 0x5f, 0xa8, 0xc8, 0xfc, 0x30, 0x27, 0xde, 0xc6, 0x4d, - 0xbc, 0x8f, 0x0a, 0xa7, 0xf4, 0xe1, 0xf3, 0x84, 0xd8, 0x42, 0xa5, 0x5d, 0x21, 0x12, 0xa4, 0x44, - 0x7e, 0x45, 0x2d, 0xb9, 0x0b, 0x90, 0x5a, 0xb9, 0x4e, 0xee, 0x42, 0xa9, 0x91, 0x1b, 0x34, 0xd4, - 0xea, 0x8f, 0xd7, 0xab, 0xe7, 0xa7, 0xe2, 0x89, 0x5a, 0xe6, 0x46, 0x24, 0x1f, 0x23, 0xf2, 0x3c, - 0x07, 0xe9, 0x35, 0x2c, 0x36, 0xc1, 0x11, 0xd8, 0x29, 0x88, 0xac, 0xa8, 0x85, 0x90, 0xcc, 0xd5, - 0x8a, 0xec, 0x6b, 0xe5, 0xa3, 0x21, 0xd4, 0xa3, 0x95, 0x6d, 0x86, 0x28, 0xdb, 0xa6, 0x62, 0x89, - 0x74, 0x66, 0x14, 0xfd, 0x0b, 0x99, 0x61, 0x36, 0xee, 0x5f, 0x1a, 0x90, 0xa1, 0xa5, 0x0e, 0x32, - 0x62, 0xdd, 0xa9, 0xb7, 0xbb, 0xeb, 0x55, 0x21, 0xb1, 0xf9, 0x28, 0x0c, 0x61, 0x95, 0x2e, 0xb2, - 0x17, 0xf1, 0x60, 0xd5, 0x9f, 0x66, 0x25, 0x8a, 0xc6, 0x82, 0x35, 0x10, 0xd7, 0x21, 0xef, 0xbc, - 0x21, 0x18, 0x74, 0x81, 0x61, 0xac, 0xae, 0xae, 0xb0, 0xc5, 0x6d, 0xae, 0x27, 0x94, 0xdd, 0x02, - 0xc3, 0x7e, 0xb1, 0x36, 0x77, 0xd7, 0x32, 0x9c, 0xd5, 0x15, 0xe4, 0x36, 0x51, 0xc4, 0x86, 0x16, - 0xbc, 0x67, 0xfa, 0x61, 0x63, 0x45, 0x9d, 0x95, 0x89, 0x3f, 0x8d, 0xc0, 0xb0, 0xd2, 0x8a, 0x56, - 0xdb, 0x14, 0x6d, 0x90, 0xa6, 0x3b, 0x60, 0xa5, 0x1c, 0xa9, 0x8d, 0xcb, 0x1c, 0xbd, 0x45, 0x99, - 0x27, 0xe6, 0xd1, 0x55, 0xbb, 0xda, 0x6e, 0x4e, 0x83, 0x29, 0x37, 0x31, 0x21, 0xe8, 0x4b, 0x4c, - 0x4c, 0xa7, 0xab, 0x27, 0x77, 0x27, 0xca, 0xc2, 0x42, 0xaf, 0xe2, 0xdd, 0x1b, 0xab, 0xa5, 0x0d, - 0xfc, 0xda, 0x8c, 0x48, 0xee, 0xab, 0x11, 0x48, 0xb2, 0xb2, 0xb5, 0xda, 0x3c, 0xb0, 0xcd, 0x02, - 0x44, 0xe6, 0x99, 0x07, 0xdd, 0x9c, 0xdc, 0x91, 0x0a, 0x5a, 0x9d, 0x22, 0x85, 0xfe, 0x4d, 0x1d, - 0xd9, 0x36, 0x67, 0x21, 0x52, 0x64, 0x06, 0xee, 0xcf, 0x32, 0x91, 0x6a, 0xee, 0xc7, 0x06, 0x1c, - 0x95, 0xcb, 0x68, 0x9e, 0x4f, 0x4e, 0xab, 0xd7, 0x4d, 0xf9, 0xa1, 0xf3, 0xb3, 0x17, 0xe6, 0xa6, - 0xf1, 0x3f, 0xc2, 0x25, 0x4f, 0xab, 0x97, 0x50, 0xdd, 0x24, 0x5d, 0xb7, 0x89, 0xe4, 0x63, 0x52, - 0x6f, 0xd7, 0x6d, 0x22, 0x4a, 0x6f, 0xd7, 0x6d, 0x22, 0x4a, 0x6f, 0xd7, 0x6d, 0x22, 0x4a, 0x6f, - 0xd7, 0x51, 0x80, 0xd2, 0xdb, 0x75, 0x9b, 0x88, 0xd2, 0xdb, 0x75, 0x9b, 0x88, 0xd2, 0xdb, 0x7d, - 0x9b, 0x08, 0xeb, 0x0e, 0xbc, 0x4d, 0x44, 0xed, 0xef, 0xbe, 0x4d, 0x44, 0xed, 0xef, 0xbe, 0x4d, - 0x24, 0x8f, 0xea, 0xb3, 0x8e, 0x1d, 0x7c, 0xe8, 0xa0, 0xe2, 0x7b, 0x5d, 0x03, 0x7a, 0x09, 0x78, - 0x0d, 0x46, 0xe8, 0x7e, 0x44, 0x11, 0xdf, 0xa1, 0x55, 0x77, 0x50, 0x2a, 0x7e, 0x08, 0x52, 0xb4, - 0x89, 0x5e, 0xe5, 0xf8, 0x5d, 0x05, 0xd2, 0x7e, 0x96, 0x6e, 0x53, 0x55, 0x89, 0x3a, 0xf7, 0xf3, - 0x18, 0x8c, 0xd3, 0x6e, 0xfc, 0x18, 0xa1, 0x72, 0x93, 0xd1, 0x59, 0xed, 0x48, 0x29, 0x8d, 0xe1, - 0xdf, 0x7d, 0xed, 0x24, 0x6d, 0x9d, 0x17, 0xce, 0x74, 0x56, 0x3b, 0x5c, 0x52, 0xe9, 0xbc, 0xf5, - 0xe7, 0xac, 0x76, 0xe3, 0x91, 0x4a, 0x27, 0x96, 0x1b, 0x41, 0xc7, 0x6f, 0x41, 0x52, 0xe9, 0x16, - 0x84, 0x97, 0x9d, 0xd5, 0x6e, 0x46, 0x52, 0xe9, 0x4a, 0xc2, 0xdf, 0xce, 0x6a, 0x47, 0x4f, 0x2a, - 0xdd, 0xa2, 0xf0, 0xbc, 0xb3, 0xda, 0x21, 0x94, 0x4a, 0x77, 0x55, 0xf8, 0xe0, 0x59, 0xed, 0x56, - 0x25, 0x95, 0xee, 0x31, 0xe1, 0x8d, 0x67, 0xb5, 0x9b, 0x96, 0x54, 0xba, 0x25, 0xe1, 0x97, 0x93, - 0xfa, 0xed, 0x4b, 0x2a, 0xe1, 0x35, 0xcf, 0x43, 0x27, 0xf5, 0x1b, 0x99, 0x54, 0xca, 0x77, 0x7a, - 0xbe, 0x3a, 0xa9, 0xdf, 0xd2, 0xa4, 0x52, 0x2e, 0x7b, 0x5e, 0x3b, 0xa9, 0x1f, 0x95, 0xa9, 0x94, - 0x2b, 0x9e, 0xff, 0x4e, 0xea, 0x87, 0x66, 0x2a, 0xe5, 0xaa, 0xe7, 0xc9, 0x93, 0xfa, 0xf1, 0x99, - 0x4a, 0xb9, 0xe6, 0xed, 0xa1, 0x7f, 0x5d, 0x73, 0x3f, 0xe9, 0x26, 0xa8, 0x9c, 0xe6, 0x7e, 0xe0, - 0xe3, 0x7a, 0x39, 0xcd, 0xf5, 0xc0, 0xc7, 0xed, 0x72, 0x9a, 0xdb, 0x81, 0x8f, 0xcb, 0xe5, 0x34, - 0x97, 0x03, 0x1f, 0x77, 0xcb, 0x69, 0xee, 0x06, 0x3e, 0xae, 0x96, 0xd3, 0x5c, 0x0d, 0x7c, 0xdc, - 0x2c, 0xa7, 0xb9, 0x19, 0xf8, 0xb8, 0x58, 0x4e, 0x73, 0x31, 0xf0, 0x71, 0xaf, 0x9c, 0xe6, 0x5e, - 0xe0, 0xe3, 0x5a, 0x67, 0x74, 0xd7, 0x02, 0x3f, 0xb7, 0x3a, 0xa3, 0xbb, 0x15, 0xf8, 0xb9, 0xd4, - 0x5d, 0xba, 0x4b, 0x0d, 0x21, 0xaa, 0x38, 0x6e, 0x92, 0xbc, 0xe9, 0x8c, 0xee, 0x4d, 0xe0, 0xe7, - 0x49, 0x67, 0x74, 0x4f, 0x02, 0x3f, 0x2f, 0x3a, 0xa3, 0x7b, 0x11, 0xf8, 0x79, 0xd0, 0x2b, 0xba, - 0x07, 0x79, 0xb7, 0xf8, 0xe4, 0xb4, 0x13, 0xc5, 0x30, 0x0f, 0x32, 0xfa, 0xf0, 0x20, 0xa3, 0x0f, - 0x0f, 0x32, 0xfa, 0xf0, 0x20, 0xa3, 0x0f, 0x0f, 0x32, 0xfa, 0xf0, 0x20, 0xa3, 0x0f, 0x0f, 0x32, - 0xfa, 0xf0, 0x20, 0xa3, 0x1f, 0x0f, 0x32, 0xfa, 0xf2, 0x20, 0x23, 0xc8, 0x83, 0xce, 0xe8, 0x37, - 0x3c, 0x80, 0x5f, 0x42, 0x3a, 0xa3, 0x9f, 0x7c, 0x86, 0xbb, 0x90, 0xd1, 0x97, 0x0b, 0x19, 0x41, - 0x2e, 0xf4, 0x75, 0x54, 0x48, 0x29, 0x2e, 0xc4, 0x8e, 0x87, 0xde, 0xa8, 0x0c, 0x74, 0xa9, 0x8f, - 0xfb, 0x2b, 0xfc, 0x7c, 0xea, 0x52, 0x1f, 0x67, 0xd4, 0xbd, 0xfc, 0xac, 0x3b, 0x0b, 0x95, 0xfa, - 0xc8, 0x42, 0x8b, 0xc2, 0x87, 0x2e, 0xf5, 0x71, 0xdf, 0x45, 0xb7, 0xef, 0x5d, 0xe9, 0x95, 0x04, - 0x1e, 0xeb, 0x2b, 0x09, 0x2c, 0xf5, 0x95, 0x04, 0xae, 0x79, 0x16, 0xfc, 0x40, 0x14, 0xc6, 0x3c, - 0x0b, 0xd2, 0x6f, 0xe4, 0x15, 0x2a, 0x39, 0xe9, 0x84, 0xca, 0xe4, 0xa7, 0x36, 0x92, 0x19, 0xf1, - 0xf9, 0xcd, 0xba, 0x7a, 0x56, 0x95, 0x3f, 0xec, 0xf9, 0x8d, 0x64, 0x71, 0xb6, 0x17, 0x7a, 0x06, - 0x8c, 0xa5, 0x9a, 0x4b, 0xb2, 0x85, 0xdf, 0xb0, 0x45, 0xcb, 0xa8, 0xd7, 0x5c, 0xd3, 0x82, 0x01, - 0x32, 0xae, 0x4b, 0xcc, 0x7b, 0x2b, 0x03, 0x23, 0xd3, 0x93, 0x81, 0xdd, 0xdc, 0x2b, 0x11, 0x38, - 0xa5, 0xb8, 0xf2, 0x1b, 0x73, 0x62, 0xf0, 0x60, 0x5f, 0x27, 0x06, 0x4a, 0x80, 0x78, 0xa7, 0x07, - 0xf7, 0x74, 0x1f, 0x54, 0xcb, 0x51, 0xa2, 0x9f, 0x24, 0xfc, 0x37, 0x48, 0x7b, 0x33, 0x20, 0x97, - 0x6c, 0x17, 0xc3, 0x37, 0x33, 0xfd, 0x42, 0xf3, 0xa2, 0xb6, 0x89, 0xd6, 0x13, 0x26, 0xa2, 0x35, - 0x97, 0x47, 0x57, 0x9c, 0xea, 0xe3, 0x30, 0x61, 0x7b, 0x11, 0x09, 0x5c, 0x9a, 0xdf, 0x78, 0x09, - 0x95, 0xe7, 0xf7, 0x41, 0x4a, 0x7e, 0xe2, 0x45, 0x03, 0x0e, 0x71, 0x60, 0x3e, 0xf6, 0x2a, 0xa6, - 0xfe, 0x8d, 0x08, 0x1c, 0x93, 0xc9, 0x9f, 0x40, 0xb6, 0x5f, 0x72, 0x70, 0x4d, 0xff, 0x30, 0x24, - 0x6c, 0x66, 0x38, 0xf6, 0xda, 0x0d, 0x76, 0x19, 0xe9, 0x4b, 0x3e, 0x4d, 0xfe, 0xb5, 0x04, 0x44, - 0xdb, 0xe2, 0xe0, 0xc3, 0xce, 0x4e, 0xdc, 0x0d, 0x71, 0xca, 0x5f, 0x95, 0x6b, 0x58, 0x93, 0xeb, - 0xb3, 0x3e, 0x72, 0x11, 0x3f, 0x32, 0xaf, 0x29, 0x72, 0x49, 0x57, 0xab, 0xbe, 0xe4, 0xd3, 0xdc, - 0xf9, 0x0a, 0x09, 0x5c, 0xff, 0x11, 0x8f, 0x0a, 0x17, 0x72, 0x12, 0x12, 0x25, 0x9d, 0xc6, 0x5f, - 0xce, 0x05, 0x88, 0xad, 0xe2, 0xb7, 0x89, 0x8d, 0xb1, 0xb7, 0x67, 0x32, 0x25, 0xb3, 0x37, 0xb4, - 0x9e, 0x85, 0x44, 0x71, 0xaf, 0xde, 0xa8, 0xb5, 0x6c, 0x87, 0x1d, 0xd9, 0xb3, 0x1d, 0x74, 0x8c, - 0xb1, 0x12, 0x55, 0xd6, 0x37, 0x95, 0x83, 0xa4, 0xe4, 0x12, 0x66, 0x1c, 0x5d, 0xfe, 0x67, 0x8e, - 0xe0, 0x3f, 0x85, 0x4c, 0x04, 0xff, 0x29, 0x66, 0xa2, 0x53, 0x77, 0xc3, 0x88, 0xb6, 0x41, 0x86, - 0x7b, 0x16, 0x32, 0x80, 0xff, 0x94, 0x32, 0xc9, 0x89, 0xd8, 0x07, 0x7f, 0xeb, 0xc4, 0x91, 0xa9, - 0x07, 0xc1, 0xec, 0xde, 0x4a, 0x33, 0x07, 0x20, 0x3a, 0x8f, 0x59, 0xde, 0x06, 0xd1, 0x02, 0xe2, - 0x39, 0x31, 0xf2, 0xbf, 0x3f, 0x79, 0x2a, 0x59, 0x20, 0x0f, 0x8c, 0x22, 0xea, 0x42, 0x81, 0x81, - 0x1f, 0x81, 0x63, 0xbe, 0x5b, 0x71, 0x18, 0x5f, 0x2c, 0x52, 0xfc, 0xc2, 0x42, 0x17, 0x7e, 0x61, - 0x81, 0xe0, 0x23, 0x79, 0x7e, 0xa4, 0x39, 0x6f, 0xfa, 0x6c, 0x7c, 0x65, 0x6b, 0xd2, 0x11, 0xea, - 0x7c, 0xfe, 0x11, 0x46, 0x5b, 0xf0, 0xa5, 0xb5, 0x43, 0x8e, 0x44, 0x0b, 0xf9, 0x22, 0xc3, 0x17, - 0x7d, 0xf1, 0x3b, 0xda, 0xb9, 0x9d, 0x9a, 0x83, 0x18, 0x93, 0xa2, 0x10, 0x78, 0xc1, 0x97, 0xc9, - 0x9e, 0x74, 0x37, 0xf5, 0x82, 0x10, 0xb8, 0xe4, 0x4b, 0x5b, 0x0f, 0xb9, 0xab, 0xa8, 0x94, 0x3f, - 0xc7, 0x96, 0x91, 0xf9, 0xf3, 0xe6, 0x31, 0xee, 0x05, 0x4a, 0x8c, 0x33, 0x05, 0xd1, 0x15, 0x65, - 0xfe, 0x3c, 0x9a, 0x21, 0x05, 0x14, 0x02, 0x01, 0xc1, 0x5a, 0xa2, 0x4c, 0x0a, 0xe7, 0xf3, 0x8f, - 0x31, 0x26, 0xc5, 0x40, 0x26, 0x21, 0xaa, 0xa2, 0x9c, 0x8a, 0xe7, 0x0b, 0x9b, 0x37, 0xbe, 0x73, - 0xe2, 0xc8, 0xab, 0xe8, 0xf3, 0x77, 0xe8, 0xf3, 0xed, 0xef, 0x9c, 0x88, 0xfc, 0x00, 0x7d, 0x7e, - 0x84, 0x3e, 0x3f, 0x45, 0x9f, 0xf7, 0x7e, 0xf7, 0x44, 0xe4, 0x65, 0xf4, 0xf9, 0x22, 0xfa, 0xfc, - 0x31, 0xfa, 0xbc, 0x82, 0x3e, 0x37, 0xd0, 0xe7, 0x55, 0xf4, 0xf9, 0x36, 0xfa, 0xfc, 0xe0, 0xbb, - 0x27, 0x8e, 0xfc, 0x08, 0xfd, 0xfd, 0x29, 0xfa, 0xfb, 0xde, 0xef, 0x9d, 0x38, 0xf2, 0x22, 0xfa, - 0xbc, 0xfc, 0xbd, 0x13, 0x11, 0xf8, 0xab, 0x39, 0x98, 0x64, 0x8f, 0x2a, 0xd1, 0x87, 0x0b, 0xa5, - 0x07, 0x13, 0xf1, 0x73, 0x4b, 0x64, 0xf1, 0xb9, 0xc0, 0xdf, 0x33, 0x23, 0x1a, 0x0e, 0xf9, 0xf8, - 0xd2, 0xc4, 0xcd, 0x3e, 0x2c, 0x95, 0xfb, 0xb3, 0x38, 0x0c, 0xf2, 0x4d, 0x47, 0xbf, 0x57, 0x98, - 0x5e, 0x84, 0x04, 0x8a, 0xe2, 0x4a, 0xab, 0xde, 0xbe, 0xce, 0x76, 0xdb, 0x6e, 0x9f, 0xf6, 0xc4, - 0xe6, 0xfb, 0x73, 0x8f, 0x75, 0xf6, 0x9b, 0x1d, 0x94, 0x1e, 0x39, 0xa9, 0x79, 0x0a, 0x52, 0x7b, - 0x36, 0x3e, 0x6d, 0x2b, 0xd7, 0x9d, 0x72, 0x75, 0x9f, 0x54, 0x65, 0xc3, 0x16, 0xd0, 0xb6, 0x25, - 0xa7, 0xb8, 0x8f, 0x07, 0xc3, 0x9b, 0xd2, 0xe4, 0x6a, 0x30, 0x45, 0x37, 0xa8, 0xf1, 0x0b, 0x94, - 0x5a, 0xb6, 0x8b, 0xdf, 0xbb, 0x5c, 0x6d, 0x76, 0x9c, 0x36, 0xa9, 0x9b, 0x0c, 0x2b, 0x49, 0xdb, - 0x8a, 0xb8, 0x09, 0xbf, 0x9b, 0x19, 0x6f, 0xf9, 0x94, 0xdd, 0x6a, 0xb3, 0xed, 0xee, 0x57, 0x1c, - 0x52, 0x37, 0x25, 0xac, 0x14, 0x6e, 0xdc, 0x60, 0x6d, 0xe4, 0x4d, 0xd7, 0xd5, 0x66, 0xcb, 0x26, - 0x97, 0x6d, 0x51, 0x8b, 0xfe, 0xc0, 0x6f, 0xba, 0x7e, 0xd6, 0xbe, 0x4e, 0x2e, 0x0c, 0x62, 0x16, - 0xfe, 0x8a, 0x8f, 0x8b, 0xe8, 0x66, 0x26, 0xa9, 0xe2, 0xc8, 0x19, 0xa9, 0x98, 0x1a, 0xdd, 0x0b, - 0xb4, 0x18, 0x01, 0x7e, 0x67, 0x2c, 0x4a, 0x06, 0xad, 0x4a, 0xdd, 0x21, 0x45, 0x3a, 0x7e, 0x67, - 0x6c, 0xb7, 0x1a, 0x36, 0x29, 0x05, 0x79, 0xcd, 0xa0, 0xc5, 0xe9, 0x91, 0x0a, 0x53, 0x84, 0x6e, - 0xb6, 0x4c, 0x5f, 0x14, 0x9f, 0x0c, 0xf4, 0xea, 0x24, 0xa5, 0xe3, 0x5b, 0xd2, 0x1c, 0x46, 0x5f, - 0x4e, 0x35, 0x4c, 0x86, 0xbd, 0xcb, 0x67, 0x58, 0xf2, 0xcc, 0xdc, 0x2c, 0x29, 0x74, 0xe8, 0xd0, - 0x8c, 0x0f, 0x7d, 0x7d, 0xd5, 0x0a, 0xa4, 0x64, 0xb9, 0xb8, 0x1a, 0xe8, 0x32, 0x4b, 0xd4, 0x70, - 0x8f, 0xf7, 0xf6, 0xe1, 0x00, 0x2d, 0xd0, 0xfe, 0x7c, 0xf4, 0x4a, 0x64, 0x62, 0x1d, 0x32, 0xfa, - 0x78, 0x3e, 0x2c, 0xcf, 0xaa, 0x2c, 0x33, 0xf2, 0x64, 0xc9, 0x86, 0xac, 0xc7, 0x31, 0xf7, 0x28, - 0x0c, 0x50, 0xff, 0x31, 0x93, 0x30, 0xb8, 0xb5, 0xfa, 0xce, 0xd5, 0xb5, 0x27, 0x56, 0xe9, 0x0b, - 0xfc, 0xd6, 0xb7, 0x56, 0x37, 0xe8, 0x6b, 0xf8, 0x36, 0x96, 0xe7, 0xd7, 0x37, 0x36, 0x97, 0x8a, - 0xef, 0xcc, 0x44, 0xf1, 0xf6, 0x72, 0x61, 0x69, 0x79, 0xb9, 0x5c, 0x98, 0x5f, 0x5a, 0x2e, 0x3d, - 0x95, 0x31, 0x72, 0x27, 0x60, 0x80, 0xca, 0x89, 0x0d, 0xbf, 0xdd, 0x71, 0x9c, 0xeb, 0x7c, 0x99, - 0x22, 0x3f, 0x72, 0x5f, 0x36, 0x61, 0x70, 0xbe, 0xd1, 0x40, 0xc9, 0xc0, 0x35, 0x9f, 0x80, 0x51, - 0xfa, 0xec, 0xff, 0x66, 0x73, 0x81, 0xbc, 0x2f, 0x0c, 0xa7, 0x88, 0x08, 0x7b, 0xeb, 0xb2, 0x37, - 0x6f, 0x46, 0x3e, 0xdd, 0x45, 0x4b, 0x15, 0x3c, 0xea, 0xea, 0xed, 0xe6, 0x26, 0x64, 0x38, 0xf1, - 0x62, 0xa3, 0x59, 0x69, 0x63, 0xbe, 0x51, 0xf6, 0x3a, 0xaf, 0x60, 0xbe, 0x9c, 0x94, 0xb2, 0xcd, - 0xb8, 0x5a, 0xb3, 0xf9, 0x10, 0x24, 0x96, 0x9c, 0xf6, 0x85, 0x59, 0xcc, 0x8d, 0xbf, 0xd8, 0xbf, - 0x9b, 0x1b, 0x27, 0xa1, 0x5c, 0x12, 0x75, 0xf6, 0x93, 0xa1, 0x2f, 0xcd, 0x61, 0x74, 0xac, 0x17, - 0x9a, 0x90, 0x78, 0x68, 0xf2, 0x13, 0x1f, 0xaa, 0x6c, 0x71, 0x56, 0xec, 0x5d, 0xfe, 0xa7, 0x7d, - 0xe0, 0x82, 0x86, 0xe2, 0x87, 0x3a, 0x62, 0x78, 0xc6, 0x80, 0x8e, 0x3f, 0xd0, 0x93, 0x81, 0x24, - 0x00, 0x61, 0x20, 0x24, 0xd8, 0x10, 0x12, 0x0c, 0x06, 0x32, 0xd8, 0xd0, 0x24, 0x70, 0x65, 0x09, - 0x36, 0x84, 0x04, 0x89, 0x9e, 0x0c, 0x64, 0x09, 0x5c, 0x21, 0x41, 0x01, 0x60, 0xb1, 0xfe, 0x82, - 0x5d, 0xa3, 0x22, 0xd0, 0xd7, 0xfe, 0xe7, 0x7c, 0x38, 0x78, 0x44, 0x94, 0x05, 0xec, 0x88, 0x06, - 0xb3, 0x04, 0xc9, 0x0d, 0xef, 0x27, 0x4b, 0x1f, 0x77, 0xf9, 0x89, 0xb1, 0xa3, 0x71, 0x49, 0xba, - 0x12, 0x1b, 0x2e, 0x0a, 0x9d, 0x4c, 0xb2, 0xb7, 0x28, 0xd2, 0x6c, 0xa8, 0x28, 0x74, 0x3a, 0x42, - 0x14, 0xca, 0x24, 0x15, 0x22, 0x8a, 0xc4, 0x85, 0x89, 0x42, 0xd9, 0xa0, 0x64, 0x58, 0x68, 0x36, - 0x31, 0x25, 0xcb, 0x4a, 0x27, 0x7d, 0x58, 0x30, 0x0a, 0x96, 0x0c, 0xb7, 0xe9, 0x2f, 0x62, 0x11, - 0xe2, 0xe4, 0x18, 0x9c, 0x0e, 0xb6, 0x08, 0xa7, 0xe1, 0x16, 0xe1, 0xbf, 0xe5, 0x38, 0x23, 0x37, - 0x4e, 0x62, 0x3e, 0x23, 0xa1, 0x71, 0xc6, 0x49, 0xb5, 0x38, 0xe3, 0xcd, 0xe6, 0xbb, 0x60, 0x84, - 0x93, 0xe2, 0xf4, 0x84, 0x99, 0x66, 0xd8, 0xff, 0x18, 0x25, 0x98, 0x29, 0xa3, 0xa4, 0x3c, 0x47, - 0x5c, 0xb5, 0xd5, 0x5c, 0x85, 0x34, 0x27, 0x5c, 0x71, 0xc9, 0x74, 0x47, 0xd9, 0xdb, 0xca, 0x83, - 0x39, 0x52, 0x42, 0xca, 0x30, 0xed, 0x2a, 0x8d, 0x13, 0x0b, 0x30, 0xee, 0x9f, 0x8d, 0xe4, 0xf4, - 0x3b, 0x44, 0xd3, 0xef, 0x98, 0x9c, 0x7e, 0x23, 0x72, 0xfa, 0x2e, 0xc2, 0x31, 0xdf, 0xdc, 0x13, - 0xc6, 0x24, 0x2a, 0x33, 0x79, 0x10, 0x86, 0x95, 0x94, 0x23, 0x83, 0xe3, 0x3e, 0xe0, 0x78, 0x37, - 0xd8, 0x73, 0x2d, 0x9f, 0xd5, 0x43, 0x01, 0x1b, 0x32, 0xf8, 0x21, 0x48, 0xab, 0xf9, 0x46, 0x46, - 0x0f, 0xfb, 0xa0, 0x87, 0x7d, 0xd0, 0xfe, 0x63, 0xc7, 0x7c, 0xd0, 0x31, 0x0d, 0xbd, 0x11, 0x38, - 0xf6, 0xa8, 0x0f, 0x7a, 0xd4, 0x07, 0xed, 0x3f, 0xb6, 0xe9, 0x83, 0x36, 0x65, 0xf4, 0xc3, 0x30, - 0xa2, 0xa5, 0x18, 0x19, 0x3e, 0xe8, 0x03, 0x1f, 0x94, 0xe1, 0x8f, 0xa0, 0xa0, 0xd9, 0x09, 0xc6, - 0x8f, 0xf8, 0xe0, 0x47, 0xfc, 0x86, 0xf7, 0x97, 0x7e, 0xc0, 0x07, 0x3e, 0xe0, 0x3b, 0xbc, 0x3f, - 0x3e, 0xe3, 0x83, 0xcf, 0xc8, 0xf8, 0x3c, 0xa4, 0xe4, 0x6c, 0x22, 0x63, 0x13, 0x3e, 0xd8, 0x84, - 0xae, 0x77, 0x25, 0x99, 0x84, 0x79, 0xfa, 0x50, 0x40, 0xb8, 0x28, 0x29, 0x24, 0x8c, 0x49, 0x4a, - 0x66, 0xf2, 0x38, 0x8c, 0xf9, 0xa5, 0x0c, 0x1f, 0x1e, 0x93, 0x32, 0x8f, 0x34, 0xae, 0x11, 0xbd, - 0x62, 0xaf, 0x72, 0xa0, 0x15, 0x4e, 0x13, 0x4f, 0xc3, 0x51, 0x9f, 0xc4, 0xe1, 0xc3, 0x76, 0x5a, - 0xad, 0xc6, 0xb2, 0x12, 0x5b, 0x92, 0x04, 0x10, 0x8b, 0xf5, 0x26, 0x72, 0x4e, 0xb9, 0x2a, 0xfb, - 0xea, 0x51, 0x48, 0xb3, 0xf4, 0xb4, 0xd6, 0xaa, 0xd9, 0x2d, 0x54, 0x5d, 0xfd, 0x97, 0xe0, 0xda, - 0x69, 0xa6, 0x3b, 0xa9, 0x31, 0xd4, 0x21, 0x4a, 0xa8, 0xa7, 0x03, 0x4b, 0xa8, 0x73, 0xe1, 0xec, - 0xc3, 0x2a, 0xa9, 0x62, 0x57, 0x25, 0x75, 0x4f, 0x30, 0xd3, 0xa0, 0x82, 0xaa, 0xd8, 0x55, 0x50, - 0xf5, 0x66, 0xe2, 0x5b, 0x57, 0x2d, 0x76, 0xd7, 0x55, 0x93, 0xc1, 0x5c, 0x82, 0xcb, 0xab, 0xc5, - 0xee, 0xf2, 0x2a, 0x84, 0x8f, 0x7f, 0x95, 0xb5, 0xd8, 0x5d, 0x65, 0xf5, 0xe0, 0x13, 0x5c, 0x6c, - 0x2d, 0x76, 0x17, 0x5b, 0x21, 0x7c, 0xfc, 0x6b, 0xae, 0x25, 0x9f, 0x9a, 0xeb, 0xde, 0x60, 0x46, - 0xbd, 0x4a, 0xaf, 0x65, 0xbf, 0xd2, 0x6b, 0xaa, 0x87, 0x50, 0x3d, 0x2b, 0xb0, 0x25, 0x9f, 0x0a, - 0x2c, 0x4c, 0xb0, 0x80, 0x42, 0x6c, 0xd9, 0xaf, 0x10, 0x0b, 0x15, 0x2c, 0xa8, 0x1e, 0xfb, 0x4f, - 0x7a, 0x3d, 0x76, 0x36, 0x98, 0x93, 0x7f, 0x59, 0xb6, 0xd8, 0x5d, 0x96, 0x4d, 0x86, 0xc5, 0x9c, - 0x5f, 0x75, 0xf6, 0x74, 0x60, 0x75, 0xd6, 0x47, 0x08, 0x87, 0x15, 0x69, 0x4f, 0x06, 0x15, 0x69, - 0xd3, 0xe1, 0xbc, 0x7b, 0xd7, 0x6a, 0x5b, 0x01, 0xb5, 0xda, 0xfd, 0xe1, 0x8c, 0xdf, 0x2e, 0xd9, - 0xde, 0x2e, 0xd9, 0xde, 0x2e, 0xd9, 0xde, 0x2e, 0xd9, 0xde, 0xfa, 0x92, 0x2d, 0x1f, 0xfb, 0xc8, - 0x4b, 0x27, 0x23, 0xb9, 0xbf, 0x35, 0xc4, 0xff, 0xc1, 0x05, 0x1f, 0x13, 0xe1, 0xf4, 0xb6, 0x02, - 0x29, 0xf2, 0xd6, 0xfa, 0xfd, 0xca, 0xc1, 0x01, 0xfe, 0xff, 0x3a, 0x45, 0xba, 0x96, 0x1b, 0x15, - 0x40, 0xde, 0xfb, 0xbf, 0x42, 0x89, 0xd9, 0x72, 0xe3, 0x78, 0x2d, 0xe6, 0x35, 0x48, 0xee, 0xbb, - 0xbb, 0x82, 0x5b, 0xb4, 0x6b, 0x21, 0xd4, 0xb8, 0xd1, 0x99, 0x7a, 0xcc, 0x60, 0x5f, 0x34, 0x60, - 0xd1, 0xb6, 0x91, 0x95, 0x04, 0x33, 0x23, 0x4c, 0x34, 0x6c, 0x53, 0x55, 0xb4, 0x6d, 0xaf, 0x05, - 0xbb, 0xad, 0x2e, 0x7b, 0x58, 0xa6, 0x53, 0x9c, 0xe7, 0x09, 0x18, 0xd1, 0xa4, 0xf5, 0x89, 0xf9, - 0x9b, 0xb0, 0x0d, 0x16, 0x4c, 0x97, 0x3c, 0x2c, 0x26, 0x64, 0x87, 0xcc, 0xdd, 0x09, 0xc3, 0x0a, - 0x6f, 0x33, 0x05, 0x91, 0x1d, 0xf6, 0xd4, 0x5e, 0x64, 0x07, 0x3f, 0x28, 0x9d, 0x64, 0x47, 0xd6, - 0xeb, 0x95, 0x7a, 0xcb, 0x7c, 0x0c, 0xc8, 0x73, 0x31, 0xec, 0x58, 0xfe, 0xe6, 0x9e, 0xd2, 0xa4, - 0x4f, 0xd6, 0x2c, 0x02, 0x7d, 0x6c, 0xe6, 0xe6, 0x1f, 0x33, 0xa5, 0x4f, 0xdd, 0xdc, 0x88, 0xc0, - 0x28, 0xbb, 0xa3, 0xd2, 0x65, 0xf7, 0xd9, 0xa2, 0x15, 0xf2, 0xcb, 0x11, 0x18, 0x12, 0xbf, 0xcc, - 0x6d, 0x48, 0x8b, 0x1f, 0xf4, 0x5e, 0x6e, 0xea, 0xa9, 0x79, 0x49, 0xc3, 0x5d, 0x3c, 0xa6, 0x7d, - 0xbe, 0xd1, 0x83, 0x2c, 0xba, 0x26, 0x3b, 0x4a, 0xe3, 0xc4, 0x3c, 0x1c, 0xf5, 0x21, 0x3b, 0xcc, - 0x82, 0x3c, 0x75, 0x1a, 0x06, 0x59, 0x68, 0xe3, 0x83, 0xc3, 0x15, 0x7c, 0xf0, 0x88, 0xff, 0xe2, - 0xc3, 0x4c, 0xfc, 0xb7, 0x98, 0x89, 0x16, 0x96, 0x6f, 0xe2, 0x30, 0xe9, 0xc8, 0xab, 0xe8, 0xe3, - 0x73, 0x98, 0x14, 0xd9, 0x1e, 0xa0, 0x73, 0xff, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x53, - 0xbe, 0xfe, 0x80, 0x79, 0x00, 0x00, + // 7852 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, + 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, + 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, + 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, + 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, + 0xc1, 0xc9, 0xe4, 0x25, 0xa5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x2a, 0x4e, 0xe2, + 0x4d, 0xbc, 0x59, 0x57, 0xed, 0x56, 0x79, 0x1f, 0x52, 0xe7, 0xd6, 0x7d, 0x4e, 0xa3, 0x81, 0x06, + 0x47, 0x92, 0xed, 0x07, 0xbf, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, + 0xd3, 0x0d, 0x10, 0xbe, 0xbb, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, + 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, + 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, + 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, + 0x29, 0x04, 0x5a, 0x92, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x92, 0x30, 0x1d, 0x31, + 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, + 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, + 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x86, 0x30, 0xa2, 0x7f, 0x04, + 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x0a, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, 0x34, 0x3a, + 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0x55, 0x51, 0x34, 0x4d, 0x44, 0x27, 0xf0, + 0xb0, 0x20, 0x58, 0x82, 0x4c, 0x13, 0xb9, 0xae, 0x79, 0x8c, 0xaa, 0xde, 0x69, 0x0b, 0x65, 0x93, + 0xe4, 0xea, 0x2f, 0x74, 0x5d, 0x7d, 0xf8, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, + 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0x66, 0x98, 0x25, 0x85, + 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, 0xbb, 0x08, + 0xf6, 0xe8, 0x7c, 0x98, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, + 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0x7a, 0x98, 0x22, 0xc0, 0xe9, 0xd7, 0x61, + 0xd4, 0x69, 0x79, 0x96, 0x63, 0xbb, 0xd9, 0xd4, 0x05, 0x65, 0x21, 0xbd, 0x72, 0x3e, 0x32, 0x10, + 0x76, 0xa8, 0x8c, 0xc1, 0x85, 0xf5, 0x4d, 0xd0, 0x5c, 0xa7, 0xd3, 0xae, 0xa1, 0x6a, 0xcd, 0xa9, + 0xa3, 0xaa, 0x65, 0x1f, 0x39, 0xd9, 0x31, 0x42, 0x30, 0xdf, 0x7d, 0x21, 0x44, 0xb0, 0xe4, 0xd4, + 0xd1, 0xa6, 0x7d, 0xe4, 0x18, 0x13, 0xae, 0x74, 0xac, 0xcf, 0xc0, 0x88, 0x7b, 0x6a, 0x7b, 0xe6, + 0x1b, 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x94, 0xfb, 0xd3, 0x61, 0x98, 0x1c, 0x24, 0xc4, 0x6e, 0xc3, + 0xf0, 0x11, 0xbe, 0xca, 0x6c, 0xe2, 0x2c, 0x36, 0xa0, 0x18, 0xd9, 0x88, 0x23, 0x0f, 0x69, 0xc4, + 0x02, 0xa4, 0x6d, 0xe4, 0x7a, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43, + 0x2a, 0xf9, 0x50, 0x21, 0xf5, 0x32, 0x4c, 0xfa, 0x2a, 0x55, 0xdb, 0xa6, 0x7d, 0xcc, 0x63, 0xf3, + 0x4a, 0x9c, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0xd2, 0xb1, 0xbe, 0x0e, 0xe0, + 0xd8, 0xc8, 0x39, 0xaa, 0xd6, 0x51, 0xad, 0x91, 0x4d, 0xf5, 0xb0, 0xd2, 0x0e, 0x16, 0xe9, 0xb2, + 0x92, 0x43, 0x47, 0x6b, 0x0d, 0xfd, 0x56, 0x10, 0x6a, 0xa3, 0x3d, 0x22, 0x65, 0x9b, 0x26, 0x59, + 0x57, 0xb4, 0x1d, 0xc0, 0x44, 0x1b, 0xe1, 0xb8, 0x47, 0x75, 0x76, 0x65, 0x63, 0x44, 0x89, 0xa5, + 0xd8, 0x2b, 0x33, 0x18, 0x8c, 0x5e, 0xd8, 0x78, 0x5b, 0x3c, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, + 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x36, 0x8f, + 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, + 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe9, 0xf4, 0x83, 0x02, 0x73, + 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, + 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, + 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, + 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, + 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, + 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, + 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, + 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, + 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x11, 0x2e, 0x7c, 0x4f, + 0x44, 0x5f, 0x5e, 0x38, 0x16, 0x73, 0xdf, 0x4c, 0x40, 0x92, 0xe4, 0xdb, 0x24, 0xa4, 0xf7, 0xef, + 0xed, 0x96, 0xab, 0xeb, 0x3b, 0x07, 0xc5, 0xad, 0xb2, 0xa6, 0xe8, 0x13, 0x00, 0x64, 0x60, 0x63, + 0x6b, 0xa7, 0xb0, 0xaf, 0x25, 0xfc, 0xe3, 0xcd, 0xca, 0xfe, 0xf5, 0x55, 0x4d, 0xf5, 0x01, 0x07, + 0x74, 0x20, 0x29, 0x0a, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, + 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1e, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, + 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, + 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, + 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x24, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, + 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0x64, 0x68, 0xe8, + 0xfa, 0xaa, 0xa6, 0x05, 0x8a, 0x50, 0x96, 0x29, 0x69, 0xe0, 0xfa, 0xaa, 0xa6, 0xe7, 0x4a, 0x30, + 0x4c, 0xa2, 0x4b, 0xd7, 0x61, 0x62, 0xab, 0x50, 0x2c, 0x6f, 0x55, 0x77, 0x76, 0xf7, 0x37, 0x77, + 0x2a, 0x85, 0x2d, 0x4d, 0x09, 0xc6, 0x8c, 0xf2, 0x27, 0x0e, 0x36, 0x8d, 0xf2, 0xba, 0x96, 0x10, + 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, + 0x86, 0xe0, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, + 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, + 0x76, 0xad, 0x40, 0x04, 0x27, 0xae, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, 0xf9, 0x19, + 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x2a, 0x14, 0xb7, 0xc3, 0x0a, 0x5c, 0xec, 0x7d, + 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, + 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x1d, 0xb6, 0x15, 0x43, 0x89, 0x6b, + 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, + 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, + 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, + 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, + 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, + 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x05, 0xc4, 0x88, 0x84, 0xa0, + 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x16, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, + 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, + 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, + 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, + 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, + 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, + 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, + 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, + 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, + 0x8e, 0x77, 0x74, 0x33, 0xfb, 0xb8, 0x78, 0x7e, 0xa2, 0xe1, 0x1e, 0x91, 0x29, 0x61, 0x91, 0x03, + 0xef, 0xe8, 0xa6, 0xbe, 0x07, 0x19, 0xec, 0x8c, 0xa6, 0xf5, 0x69, 0x54, 0x3d, 0x72, 0xda, 0x64, + 0x65, 0x99, 0x88, 0xc8, 0x6c, 0xc1, 0x82, 0x4b, 0x3b, 0x0c, 0xb0, 0xed, 0xd4, 0x51, 0x7e, 0x78, + 0x6f, 0xb7, 0x5c, 0x5e, 0x37, 0xd2, 0x9c, 0x65, 0xc3, 0x69, 0xe3, 0x80, 0x3a, 0x76, 0x7c, 0x03, + 0xa7, 0x69, 0x40, 0x1d, 0x3b, 0xdc, 0xbc, 0x6b, 0x30, 0x5d, 0xab, 0xd1, 0x6b, 0xb6, 0x6a, 0x55, + 0xd6, 0xe2, 0xbb, 0x59, 0x4d, 0x32, 0x56, 0xad, 0x76, 0x87, 0x0a, 0xb0, 0x18, 0x77, 0xf5, 0x5b, + 0xf0, 0x48, 0x60, 0x2c, 0x11, 0x38, 0xd5, 0x75, 0x95, 0x61, 0xe8, 0x1a, 0x4c, 0xb7, 0x4e, 0xbb, + 0x81, 0xba, 0x74, 0xc6, 0xd6, 0x69, 0x18, 0xf6, 0x14, 0xb9, 0x6d, 0x6b, 0xa3, 0x9a, 0xe9, 0xa1, + 0x7a, 0xf6, 0x51, 0x51, 0x5a, 0x98, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, 0x36, + 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0xa2, 0xf0, 0x44, 0xad, 0x56, 0x26, 0xb3, 0x05, + 0x32, 0xa9, 0x2f, 0xc2, 0x94, 0x73, 0xf8, 0x4a, 0x8d, 0x46, 0x56, 0xb5, 0xd5, 0x46, 0x47, 0xd6, + 0x1b, 0xd9, 0x4b, 0xc4, 0x4c, 0x93, 0x78, 0x82, 0xc4, 0xd5, 0x2e, 0x19, 0xd6, 0x9f, 0x01, 0xad, + 0xe6, 0x9e, 0x98, 0xed, 0x16, 0x59, 0xda, 0xdd, 0x96, 0x59, 0x43, 0xd9, 0xa7, 0xa8, 0x28, 0x1d, + 0xaf, 0xf0, 0x61, 0x1c, 0xd9, 0xee, 0xeb, 0xd6, 0x91, 0xc7, 0x19, 0x9f, 0xa6, 0x91, 0x4d, 0xc6, + 0x18, 0xdb, 0xcb, 0x70, 0xae, 0x63, 0x5b, 0xb6, 0x87, 0xda, 0xad, 0x36, 0xc2, 0x4d, 0x3c, 0xcd, + 0xc4, 0xec, 0xff, 0x18, 0xed, 0xd1, 0x86, 0x1f, 0x88, 0xd2, 0x34, 0x00, 0x8c, 0xe9, 0x4e, 0xf7, + 0x60, 0x2e, 0x0f, 0x19, 0x31, 0x2e, 0xf4, 0x31, 0xa0, 0x91, 0xa1, 0x29, 0x78, 0x8d, 0x2d, 0xed, + 0xac, 0xe3, 0xd5, 0xf1, 0x17, 0xca, 0x5a, 0x02, 0xaf, 0xd2, 0x5b, 0x9b, 0xfb, 0xe5, 0xaa, 0x71, + 0x50, 0xd9, 0xdf, 0xdc, 0x2e, 0x6b, 0xea, 0xe2, 0x58, 0xea, 0xfb, 0xa3, 0xda, 0x9b, 0x6f, 0xbe, + 0xf9, 0x66, 0x22, 0xf7, 0xad, 0x04, 0x4c, 0xc8, 0x9d, 0xb1, 0xfe, 0x31, 0x78, 0x94, 0xdf, 0xc6, + 0xba, 0xc8, 0xab, 0xbe, 0x6e, 0xb5, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0xfa, 0x56, 0x3e, 0xc7, + 0xa4, 0xf6, 0x90, 0xf7, 0x92, 0xd5, 0xc6, 0x81, 0xd8, 0x34, 0x3d, 0x7d, 0x0b, 0xe6, 0x6d, 0xa7, + 0xea, 0x7a, 0xa6, 0x5d, 0x37, 0xdb, 0xf5, 0x6a, 0xb0, 0x81, 0x50, 0x35, 0x6b, 0x35, 0xe4, 0xba, + 0x0e, 0x5d, 0x22, 0x7c, 0x96, 0xf3, 0xb6, 0xb3, 0xc7, 0x84, 0x83, 0xda, 0x59, 0x60, 0xa2, 0xa1, + 0x88, 0x50, 0x7b, 0x45, 0xc4, 0xe3, 0x30, 0xd6, 0x34, 0x5b, 0x55, 0x64, 0x7b, 0xed, 0x53, 0xd2, + 0xcf, 0xa5, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf1, 0xf1, 0x87, 0xe7, 0x03, 0xd1, 0x8e, 0xff, 0x5d, + 0x85, 0x8c, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0xc9, 0xbe, 0x1d, + 0xe0, 0x52, 0x09, 0x17, 0xf6, 0xfc, 0x08, 0xed, 0xb4, 0x0c, 0x8a, 0xc4, 0x8b, 0x2a, 0xce, 0x69, + 0x44, 0xfb, 0xf7, 0x94, 0xc1, 0x8e, 0xf4, 0x3b, 0x30, 0xf2, 0x8a, 0x4b, 0xb8, 0x47, 0x08, 0xf7, + 0xa5, 0xfe, 0xdc, 0x77, 0xf7, 0x08, 0xf9, 0xd8, 0xdd, 0xbd, 0x6a, 0x65, 0xc7, 0xd8, 0x2e, 0x6c, + 0x19, 0x0c, 0xae, 0x3f, 0x06, 0xc9, 0x86, 0xf9, 0xe9, 0x53, 0x79, 0x09, 0x20, 0x43, 0x83, 0x1a, + 0xfe, 0x31, 0x48, 0xbe, 0x8e, 0xcc, 0x57, 0xe5, 0xc2, 0x4b, 0x86, 0x3e, 0xc4, 0xd0, 0xbf, 0x02, + 0xc3, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0x36, 0xa4, 0xa7, 0x20, 0x59, 0xda, 0x31, 0x70, 0xf8, + 0x6b, 0x90, 0xa1, 0xa3, 0xd5, 0xdd, 0xcd, 0x72, 0xa9, 0xac, 0x25, 0x72, 0x6b, 0x30, 0x42, 0x8d, + 0x80, 0x53, 0xc3, 0x37, 0x83, 0x36, 0xc4, 0x0e, 0x19, 0x87, 0xc2, 0x67, 0x0f, 0xb6, 0x8b, 0x65, + 0x43, 0x4b, 0x88, 0xee, 0x75, 0x21, 0x23, 0xb6, 0x73, 0x3f, 0x99, 0x98, 0xfa, 0x7d, 0x05, 0xd2, + 0x42, 0x7b, 0x86, 0x1b, 0x03, 0xb3, 0xd1, 0x70, 0x5e, 0xaf, 0x9a, 0x0d, 0xcb, 0x74, 0x59, 0x50, + 0x00, 0x19, 0x2a, 0xe0, 0x91, 0x41, 0x9d, 0xf6, 0x13, 0x51, 0xfe, 0x4b, 0x0a, 0x68, 0xe1, 0xd6, + 0x2e, 0xa4, 0xa0, 0xf2, 0x53, 0x55, 0xf0, 0x0b, 0x0a, 0x4c, 0xc8, 0xfd, 0x5c, 0x48, 0xbd, 0x8b, + 0x3f, 0x55, 0xf5, 0xbe, 0x93, 0x80, 0x71, 0xa9, 0x8b, 0x1b, 0x54, 0xbb, 0x5f, 0x84, 0x29, 0xab, + 0x8e, 0x9a, 0x2d, 0xc7, 0x43, 0x76, 0xed, 0xb4, 0xda, 0x40, 0xaf, 0xa1, 0x46, 0x36, 0x47, 0x0a, + 0xc5, 0x95, 0xfe, 0x7d, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xfc, 0xf4, 0xe6, 0x7a, 0x79, + 0x7b, 0x77, 0x67, 0xbf, 0x5c, 0x29, 0xdd, 0xab, 0x1e, 0x54, 0x3e, 0x5e, 0xd9, 0x79, 0xa9, 0x62, + 0x68, 0x56, 0x48, 0xec, 0x43, 0x4c, 0xf5, 0x5d, 0xd0, 0xc2, 0x4a, 0xe9, 0x8f, 0x42, 0x94, 0x5a, + 0xda, 0x90, 0x3e, 0x0d, 0x93, 0x95, 0x9d, 0xea, 0xde, 0xe6, 0x7a, 0xb9, 0x5a, 0xde, 0xd8, 0x28, + 0x97, 0xf6, 0xf7, 0xe8, 0x8d, 0xb3, 0x2f, 0xbd, 0x2f, 0x27, 0xf5, 0xe7, 0x55, 0x98, 0x8e, 0xd0, + 0x44, 0x2f, 0xb0, 0x9e, 0x9d, 0xde, 0x46, 0x3c, 0x3b, 0x88, 0xf6, 0x4b, 0xb8, 0x2b, 0xd8, 0x35, + 0xdb, 0x1e, 0x6b, 0xf1, 0x9f, 0x01, 0x6c, 0x25, 0xdb, 0xb3, 0x8e, 0x2c, 0xd4, 0x66, 0xfb, 0x0c, + 0xb4, 0x91, 0x9f, 0x0c, 0xc6, 0xe9, 0x56, 0xc3, 0x47, 0x41, 0x6f, 0x39, 0xae, 0xe5, 0x59, 0xaf, + 0xa1, 0xaa, 0x65, 0xf3, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0xcf, 0x6c, 0xda, 0x9e, 0x2f, + 0x6d, 0xa3, 0x63, 0x33, 0x24, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, 0x7c, 0xc6, 0x97, 0xbe, 0x08, 0x99, + 0xba, 0xd3, 0xc1, 0x6d, 0x12, 0x95, 0xc3, 0xeb, 0x85, 0x62, 0xa4, 0xe9, 0x98, 0x2f, 0xc2, 0xfa, + 0xd8, 0x60, 0x37, 0x24, 0x63, 0xa4, 0xe9, 0x18, 0x15, 0x79, 0x1a, 0x26, 0xcd, 0xe3, 0xe3, 0x36, + 0x26, 0xe7, 0x44, 0xb4, 0x33, 0x9f, 0xf0, 0x87, 0x89, 0xe0, 0xec, 0x5d, 0x48, 0x71, 0x3b, 0xe0, + 0x25, 0x19, 0x5b, 0xa2, 0xda, 0xa2, 0x7b, 0x52, 0x89, 0x85, 0x31, 0x23, 0x65, 0xf3, 0xc9, 0x8b, + 0x90, 0xb1, 0xdc, 0x6a, 0xb0, 0x39, 0x9a, 0xb8, 0x90, 0x58, 0x48, 0x19, 0x69, 0xcb, 0xf5, 0x77, + 0xc3, 0x72, 0x5f, 0x4d, 0xc0, 0x84, 0xbc, 0xb9, 0xab, 0xaf, 0x43, 0xaa, 0xe1, 0xd4, 0x4c, 0x12, + 0x5a, 0xf4, 0xc9, 0xc2, 0x42, 0xcc, 0x7e, 0xf0, 0xd2, 0x16, 0x93, 0x37, 0x7c, 0xe4, 0xec, 0x7f, + 0x56, 0x20, 0xc5, 0x87, 0xf5, 0x19, 0x48, 0xb6, 0x4c, 0xef, 0x84, 0xd0, 0x0d, 0x17, 0x13, 0x9a, + 0x62, 0x90, 0x63, 0x3c, 0xee, 0xb6, 0x4c, 0x9b, 0x84, 0x00, 0x1b, 0xc7, 0xc7, 0xd8, 0xaf, 0x0d, + 0x64, 0xd6, 0x49, 0xdb, 0xef, 0x34, 0x9b, 0xc8, 0xf6, 0x5c, 0xee, 0x57, 0x36, 0x5e, 0x62, 0xc3, + 0xfa, 0x47, 0x60, 0xca, 0x6b, 0x9b, 0x56, 0x43, 0x92, 0x4d, 0x12, 0x59, 0x8d, 0x4f, 0xf8, 0xc2, + 0x79, 0x78, 0x8c, 0xf3, 0xd6, 0x91, 0x67, 0xd6, 0x4e, 0x50, 0x3d, 0x00, 0x8d, 0x90, 0x9d, 0xc3, + 0x47, 0x99, 0xc0, 0x3a, 0x9b, 0xe7, 0xd8, 0xdc, 0x1f, 0x2a, 0x30, 0xc5, 0x6f, 0x54, 0xea, 0xbe, + 0xb1, 0xb6, 0x01, 0x4c, 0xdb, 0x76, 0x3c, 0xd1, 0x5c, 0xdd, 0xa1, 0xdc, 0x85, 0x5b, 0x2a, 0xf8, + 0x20, 0x43, 0x20, 0x98, 0x6d, 0x02, 0x04, 0x33, 0x3d, 0xcd, 0x36, 0x0f, 0x69, 0xb6, 0x73, 0x4f, + 0x1e, 0xff, 0xd0, 0x5b, 0x5b, 0xa0, 0x43, 0xf8, 0x8e, 0x46, 0x3f, 0x07, 0xc3, 0x87, 0xe8, 0xd8, + 0xb2, 0xd9, 0x7e, 0x22, 0x3d, 0xe0, 0xbb, 0x94, 0x49, 0x7f, 0x97, 0xb2, 0xf8, 0x32, 0x4c, 0xd7, + 0x9c, 0x66, 0x58, 0xdd, 0xa2, 0x16, 0xba, 0xbd, 0x76, 0x5f, 0x54, 0x7e, 0x01, 0x82, 0x16, 0xf3, + 0xd7, 0x13, 0xea, 0x9d, 0xdd, 0xe2, 0x6f, 0x25, 0x66, 0xef, 0x50, 0xdc, 0x2e, 0xbf, 0x4c, 0x03, + 0x1d, 0x35, 0x50, 0x0d, 0xab, 0x0e, 0x7f, 0x72, 0x19, 0x9e, 0x3d, 0xb6, 0xbc, 0x93, 0xce, 0xe1, + 0x52, 0xcd, 0x69, 0x5e, 0x39, 0x76, 0x8e, 0x9d, 0xe0, 0x71, 0x17, 0x3e, 0x22, 0x07, 0xe4, 0x13, + 0x7b, 0xe4, 0x35, 0xe6, 0x8f, 0xce, 0xc6, 0x3e, 0x1f, 0xcb, 0x57, 0x60, 0x9a, 0x09, 0x57, 0xc9, + 0x9e, 0x3b, 0xbd, 0x35, 0xd0, 0xfb, 0xee, 0xbb, 0x64, 0x7f, 0xe7, 0x7b, 0x64, 0xad, 0x36, 0xa6, + 0x18, 0x14, 0xcf, 0xd1, 0x1b, 0x88, 0xbc, 0x01, 0x8f, 0x48, 0x7c, 0x34, 0x2f, 0x51, 0x3b, 0x86, + 0xf1, 0x5b, 0x8c, 0x71, 0x5a, 0x60, 0xdc, 0x63, 0xd0, 0x7c, 0x09, 0xc6, 0xcf, 0xc2, 0xf5, 0x1f, + 0x18, 0x57, 0x06, 0x89, 0x24, 0x77, 0x60, 0x92, 0x90, 0xd4, 0x3a, 0xae, 0xe7, 0x34, 0x49, 0xd1, + 0xeb, 0x4f, 0xf3, 0x1f, 0xbf, 0x47, 0x13, 0x65, 0x02, 0xc3, 0x4a, 0x3e, 0x2a, 0x9f, 0x07, 0xf2, + 0x98, 0xa1, 0x8e, 0x6a, 0x8d, 0x18, 0x86, 0xfb, 0x4c, 0x11, 0x5f, 0x3e, 0xff, 0x49, 0x38, 0x87, + 0x3f, 0x93, 0x9a, 0x24, 0x6a, 0x12, 0xbf, 0xcb, 0x94, 0xfd, 0xc3, 0xcf, 0xd0, 0x5c, 0x9c, 0xf6, + 0x09, 0x04, 0x9d, 0x04, 0x2f, 0x1e, 0x23, 0xcf, 0x43, 0x6d, 0xb7, 0x6a, 0x36, 0xa2, 0xd4, 0x13, + 0x6e, 0xd3, 0xb3, 0xbf, 0xf6, 0x03, 0xd9, 0x8b, 0x77, 0x28, 0xb2, 0xd0, 0x68, 0xe4, 0x0f, 0xe0, + 0xd1, 0x88, 0xa8, 0x18, 0x80, 0xf3, 0xf3, 0x8c, 0xf3, 0x5c, 0x57, 0x64, 0x60, 0xda, 0x5d, 0xe0, + 0xe3, 0xbe, 0x2f, 0x07, 0xe0, 0xfc, 0xc7, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, 0x78, 0x17, + 0xa6, 0x5e, 0x43, 0xed, 0x43, 0xc7, 0x65, 0x5b, 0x23, 0x03, 0xd0, 0x7d, 0x81, 0xd1, 0x4d, 0x32, + 0x20, 0xd9, 0x2b, 0xc1, 0x5c, 0xb7, 0x20, 0x75, 0x64, 0xd6, 0xd0, 0x00, 0x14, 0x5f, 0x64, 0x14, + 0xa3, 0x58, 0x1e, 0x43, 0x0b, 0x90, 0x39, 0x76, 0xd8, 0xb2, 0x14, 0x0f, 0xff, 0x12, 0x83, 0xa7, + 0x39, 0x86, 0x51, 0xb4, 0x9c, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x78, 0x8a, 0x2f, 0x73, 0x0a, 0x8e, + 0x61, 0x14, 0x67, 0x30, 0xeb, 0x5b, 0x9c, 0xc2, 0x15, 0xec, 0xf9, 0x02, 0xa4, 0x1d, 0xbb, 0x71, + 0xea, 0xd8, 0x83, 0x28, 0xf1, 0x15, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x6e, 0xc3, 0xd8, 0xa0, 0x8e, + 0xf8, 0x8d, 0x1f, 0xf0, 0xf4, 0xe0, 0x1e, 0xb8, 0x03, 0x93, 0xbc, 0x40, 0x59, 0x8e, 0x3d, 0x00, + 0xc5, 0x3f, 0x65, 0x14, 0x13, 0x02, 0x8c, 0x5d, 0x86, 0x87, 0x5c, 0xef, 0x18, 0x0d, 0x42, 0xf2, + 0x55, 0x7e, 0x19, 0x0c, 0xc2, 0x4c, 0x79, 0x88, 0xec, 0xda, 0xc9, 0x60, 0x0c, 0x5f, 0xe3, 0xa6, + 0xe4, 0x18, 0x4c, 0x51, 0x82, 0xf1, 0xa6, 0xd9, 0x76, 0x4f, 0xcc, 0xc6, 0x40, 0xee, 0xf8, 0x4d, + 0xc6, 0x91, 0xf1, 0x41, 0xcc, 0x22, 0x1d, 0xfb, 0x2c, 0x34, 0xbf, 0xc5, 0x2d, 0x22, 0xc0, 0x58, + 0xea, 0xb9, 0x1e, 0xd9, 0x80, 0x3a, 0x0b, 0xdb, 0x6f, 0xf3, 0xd4, 0xa3, 0xd8, 0x6d, 0x91, 0xf1, + 0x36, 0x8c, 0xb9, 0xd6, 0xa7, 0x07, 0xa2, 0xf9, 0x67, 0xdc, 0xd3, 0x04, 0x80, 0xc1, 0xf7, 0xe0, + 0xb1, 0xc8, 0x65, 0x62, 0x00, 0xb2, 0x7f, 0xce, 0xc8, 0x66, 0x22, 0x96, 0x0a, 0x56, 0x12, 0xce, + 0x4a, 0xf9, 0x2f, 0x78, 0x49, 0x40, 0x21, 0xae, 0x5d, 0x7c, 0xa3, 0xe0, 0x9a, 0x47, 0x67, 0xb3, + 0xda, 0xbf, 0xe4, 0x56, 0xa3, 0x58, 0xc9, 0x6a, 0xfb, 0x30, 0xc3, 0x18, 0xcf, 0xe6, 0xd7, 0xaf, + 0xf3, 0xc2, 0x4a, 0xd1, 0x07, 0xb2, 0x77, 0x3f, 0x05, 0xb3, 0xbe, 0x39, 0x79, 0x47, 0xea, 0x56, + 0x9b, 0x66, 0x6b, 0x00, 0xe6, 0xdf, 0x61, 0xcc, 0xbc, 0xe2, 0xfb, 0x2d, 0xad, 0xbb, 0x6d, 0xb6, + 0x30, 0xf9, 0xcb, 0x90, 0xe5, 0xe4, 0x1d, 0xbb, 0x8d, 0x6a, 0xce, 0xb1, 0x6d, 0x7d, 0x1a, 0xd5, + 0x07, 0xa0, 0xfe, 0x46, 0xc8, 0x55, 0x07, 0x02, 0x1c, 0x33, 0x6f, 0x82, 0xe6, 0xf7, 0x2a, 0x55, + 0xab, 0xd9, 0x72, 0xda, 0x5e, 0x0c, 0xe3, 0xbf, 0xe2, 0x9e, 0xf2, 0x71, 0x9b, 0x04, 0x96, 0x2f, + 0xc3, 0x04, 0x39, 0x1c, 0x34, 0x24, 0x7f, 0x97, 0x11, 0x8d, 0x07, 0x28, 0x56, 0x38, 0x6a, 0x4e, + 0xb3, 0x65, 0xb6, 0x07, 0xa9, 0x7f, 0xff, 0x9a, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0x3b, 0x6d, + 0x21, 0xbc, 0xda, 0x0f, 0xc0, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x00, + 0x8a, 0x7f, 0xc3, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x22, 0x58, 0x68, 0xdb, 0xe8, 0xd8, 0x72, 0xbd, + 0x36, 0xed, 0x83, 0xfb, 0x53, 0xfd, 0xde, 0x0f, 0xe4, 0x26, 0xcc, 0x10, 0xa0, 0xf9, 0xbb, 0x30, + 0x19, 0x6a, 0x31, 0xf4, 0xb8, 0x77, 0x16, 0xb2, 0x7f, 0xe5, 0x47, 0xac, 0x18, 0xc9, 0x1d, 0x46, + 0x7e, 0x0b, 0xfb, 0x5d, 0xee, 0x03, 0xe2, 0xc9, 0x3e, 0xf3, 0x23, 0xdf, 0xf5, 0x52, 0x1b, 0x90, + 0xdf, 0x80, 0x71, 0xa9, 0x07, 0x88, 0xa7, 0xfa, 0xab, 0x8c, 0x2a, 0x23, 0xb6, 0x00, 0xf9, 0x35, + 0x48, 0xe2, 0xf5, 0x3c, 0x1e, 0xfe, 0xd7, 0x18, 0x9c, 0x88, 0xe7, 0x9f, 0x83, 0x14, 0x5f, 0xc7, + 0xe3, 0xa1, 0xbf, 0xcc, 0xa0, 0x3e, 0x04, 0xc3, 0xf9, 0x1a, 0x1e, 0x0f, 0xff, 0xeb, 0x1c, 0xce, + 0x21, 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfe, 0x9b, 0x49, 0x56, 0x87, 0xb9, 0xed, 0x6e, 0xc3, 0x28, + 0x5b, 0xbc, 0xe3, 0xd1, 0xbf, 0xc2, 0x4e, 0xce, 0x11, 0xf9, 0x1b, 0x30, 0x3c, 0xa0, 0xc1, 0xff, + 0x16, 0x83, 0x52, 0xf9, 0x7c, 0x09, 0xd2, 0xc2, 0x82, 0x1d, 0x0f, 0xff, 0xdb, 0x0c, 0x2e, 0xa2, + 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x27, 0xf8, 0x3b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, 0x6b, 0x75, + 0x3c, 0xfa, 0xef, 0x72, 0xab, 0x73, 0x48, 0xfe, 0x05, 0x18, 0xf3, 0xeb, 0x6f, 0x3c, 0xfe, 0xef, + 0x31, 0x7c, 0x80, 0xc1, 0x16, 0x10, 0xea, 0x7f, 0x3c, 0xc5, 0xdf, 0xe7, 0x16, 0x10, 0x50, 0x38, + 0x8d, 0xc2, 0x6b, 0x7a, 0x3c, 0xd3, 0xaf, 0xf2, 0x34, 0x0a, 0x2d, 0xe9, 0xd8, 0x9b, 0xa4, 0x0c, + 0xc6, 0x53, 0xfc, 0x03, 0xee, 0x4d, 0x22, 0x8f, 0xd5, 0x08, 0x2f, 0x92, 0xf1, 0x1c, 0xff, 0x88, + 0xab, 0x11, 0x5a, 0x23, 0xf3, 0xbb, 0xa0, 0x77, 0x2f, 0x90, 0xf1, 0x7c, 0x9f, 0x63, 0x7c, 0x53, + 0x5d, 0xeb, 0x63, 0xfe, 0x25, 0x98, 0x89, 0x5e, 0x1c, 0xe3, 0x59, 0x7f, 0xed, 0x47, 0xa1, 0xdb, + 0x19, 0x71, 0x6d, 0xcc, 0xef, 0x07, 0x55, 0x56, 0x5c, 0x18, 0xe3, 0x69, 0x3f, 0xff, 0x23, 0xb9, + 0xd0, 0x8a, 0xeb, 0x62, 0xbe, 0x00, 0x10, 0xac, 0x49, 0xf1, 0x5c, 0x5f, 0x60, 0x5c, 0x02, 0x08, + 0xa7, 0x06, 0x5b, 0x92, 0xe2, 0xf1, 0x5f, 0xe4, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, + 0x8f, 0xfe, 0x12, 0x4f, 0x0d, 0x0e, 0xc9, 0xdf, 0x86, 0x94, 0xdd, 0x69, 0x34, 0x70, 0x6c, 0xe9, + 0xfd, 0x5f, 0x23, 0xca, 0xfe, 0xcf, 0x1f, 0x33, 0x30, 0x07, 0xe4, 0xd7, 0x60, 0x18, 0x35, 0x0f, + 0x51, 0x3d, 0x0e, 0xf9, 0xbf, 0x7e, 0xcc, 0xeb, 0x09, 0x96, 0xce, 0xbf, 0x00, 0x40, 0x6f, 0xa6, + 0xc9, 0x53, 0xa2, 0x18, 0xec, 0xff, 0xfe, 0x31, 0x7b, 0x43, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7d, + 0x87, 0xfe, 0x04, 0x3f, 0x90, 0x09, 0xc8, 0x0d, 0xf8, 0x2d, 0x18, 0x7d, 0xc5, 0x75, 0x6c, 0xcf, + 0x3c, 0x8e, 0x43, 0xff, 0x11, 0x43, 0x73, 0x79, 0x6c, 0xb0, 0xa6, 0xd3, 0x46, 0x9e, 0x79, 0xec, + 0xc6, 0x61, 0xff, 0x0f, 0xc3, 0xfa, 0x00, 0x0c, 0xae, 0x99, 0xae, 0x37, 0xc8, 0x75, 0xff, 0x5f, + 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x2a, 0x3a, 0x8d, 0xc3, 0xfe, 0x90, 0x2b, 0xcd, 0xe4, + 0xf3, 0xcf, 0xc1, 0x18, 0xfe, 0x48, 0xdf, 0xda, 0x89, 0x01, 0xff, 0x31, 0x03, 0x07, 0x08, 0x7c, + 0x66, 0xd7, 0xab, 0x7b, 0x56, 0xbc, 0xb1, 0xff, 0x1f, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, + 0x7a, 0xf5, 0x7a, 0x87, 0x75, 0x34, 0x31, 0xf0, 0x3f, 0xf9, 0xb1, 0x7f, 0x93, 0xeb, 0x63, 0x8a, + 0x17, 0xa3, 0x37, 0xeb, 0xe0, 0x8e, 0x73, 0xc7, 0xa1, 0xdb, 0x74, 0xf0, 0xbd, 0x06, 0xdc, 0xe8, + 0xb9, 0xeb, 0x86, 0x17, 0x91, 0x2b, 0x35, 0xa7, 0x79, 0xe8, 0xb8, 0x57, 0x0e, 0x1d, 0xef, 0xe4, + 0x8a, 0x77, 0x82, 0xf0, 0x18, 0xdb, 0x7f, 0x4b, 0xe2, 0xcf, 0xb3, 0x67, 0xdb, 0xb4, 0x23, 0xcf, + 0x63, 0x2b, 0x16, 0xd6, 0xbb, 0x42, 0xb6, 0xc4, 0xf5, 0xf3, 0x30, 0x42, 0xae, 0xe4, 0x2a, 0x79, + 0xec, 0xa4, 0x14, 0x93, 0xf7, 0xdf, 0x9d, 0x1f, 0x32, 0xd8, 0x98, 0x3f, 0xbb, 0x42, 0xf6, 0x2c, + 0x13, 0xd2, 0xec, 0x8a, 0x3f, 0x7b, 0x8d, 0x6e, 0x5b, 0x4a, 0xb3, 0xd7, 0xfc, 0xd9, 0x55, 0xb2, + 0x81, 0xa9, 0x4a, 0xb3, 0xab, 0xfe, 0xec, 0x1a, 0xd9, 0xa4, 0x1f, 0x97, 0x66, 0xd7, 0xfc, 0xd9, + 0xeb, 0x64, 0x6b, 0x3e, 0x29, 0xcd, 0x5e, 0xf7, 0x67, 0x6f, 0x90, 0x5d, 0xf9, 0x29, 0x69, 0xf6, + 0x86, 0x3f, 0x7b, 0x93, 0xec, 0xc6, 0xeb, 0xd2, 0xec, 0x4d, 0x7f, 0xf6, 0x16, 0x79, 0xc5, 0x64, + 0x54, 0x9a, 0xbd, 0xa5, 0xcf, 0xc1, 0x28, 0xbd, 0xf2, 0x65, 0xf2, 0xe8, 0x76, 0x92, 0x4d, 0xf3, + 0xc1, 0x60, 0xfe, 0x2a, 0x79, 0x9d, 0x64, 0x44, 0x9e, 0xbf, 0x1a, 0xcc, 0xaf, 0x90, 0x17, 0xab, + 0x35, 0x79, 0x7e, 0x25, 0x98, 0xbf, 0x96, 0x1d, 0x27, 0xaf, 0xd4, 0x48, 0xf3, 0xd7, 0x82, 0xf9, + 0xd5, 0xec, 0x04, 0x0e, 0x66, 0x79, 0x7e, 0x35, 0x98, 0x5f, 0xcb, 0x4e, 0x5e, 0x50, 0x16, 0x32, + 0xf2, 0xfc, 0x5a, 0xee, 0x97, 0x88, 0x7b, 0xed, 0xc0, 0xbd, 0x33, 0xb2, 0x7b, 0x7d, 0xc7, 0xce, + 0xc8, 0x8e, 0xf5, 0x5d, 0x3a, 0x23, 0xbb, 0xd4, 0x77, 0xe6, 0x8c, 0xec, 0x4c, 0xdf, 0x8d, 0x33, + 0xb2, 0x1b, 0x7d, 0x07, 0xce, 0xc8, 0x0e, 0xf4, 0x5d, 0x37, 0x23, 0xbb, 0xce, 0x77, 0xda, 0x8c, + 0xec, 0x34, 0xdf, 0x5d, 0x33, 0xb2, 0xbb, 0x7c, 0x47, 0x65, 0x43, 0x8e, 0x0a, 0x5c, 0x94, 0x0d, + 0xb9, 0x28, 0x70, 0x4e, 0x36, 0xe4, 0x9c, 0xc0, 0x2d, 0xd9, 0x90, 0x5b, 0x02, 0x87, 0x64, 0x43, + 0x0e, 0x09, 0x5c, 0x91, 0x0d, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, 0x72, 0x4c, + 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, + 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, 0x6a, 0x4c, + 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x3d, + 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xec, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, + 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, + 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, + 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x62, 0x8e, 0xfd, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xbb, 0xe4, + 0xe5, 0x1f, 0xe6, 0x8a, 0xb9, 0x50, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, 0x42, 0xb9, + 0x26, 0xcf, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xe4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, 0x79, 0x7e, + 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xcf, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xe4, 0xf9, 0xeb, 0xfe, 0x3c, + 0xcf, 0x3a, 0x79, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9e, 0xbf, 0xe9, 0xcf, 0xf3, 0xcc, 0x93, + 0xe7, 0x6f, 0xe9, 0x17, 0xc2, 0xb9, 0xc7, 0x05, 0x7c, 0xd7, 0x5e, 0x08, 0x67, 0x5f, 0x48, 0xe2, + 0x6a, 0x20, 0xc1, 0xf3, 0x2f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x0c, 0x49, 0x5c, 0xcb, 0x7d, + 0x96, 0xb8, 0xcf, 0x0e, 0xbb, 0x6f, 0x36, 0xe4, 0xbe, 0x84, 0xe0, 0xba, 0xd9, 0x90, 0xeb, 0x12, + 0x82, 0xdb, 0x66, 0x43, 0x6e, 0x4b, 0x08, 0x2e, 0x9b, 0x0d, 0xb9, 0x2c, 0x21, 0xb8, 0x6b, 0x36, + 0xe4, 0xae, 0x84, 0xe0, 0xaa, 0xd9, 0x90, 0xab, 0x12, 0x82, 0x9b, 0x66, 0x43, 0x6e, 0x4a, 0x08, + 0x2e, 0x9a, 0x0d, 0xb9, 0x28, 0x21, 0xb8, 0x67, 0x36, 0xe4, 0x9e, 0x84, 0xe0, 0x9a, 0xf3, 0x61, + 0xd7, 0x24, 0x44, 0xb7, 0x9c, 0x0f, 0xbb, 0x25, 0x21, 0xba, 0xe4, 0x7c, 0xd8, 0x25, 0x09, 0xd1, + 0x1d, 0xe7, 0xc3, 0xee, 0x48, 0x88, 0xae, 0xf8, 0xf3, 0x04, 0xef, 0x08, 0xf7, 0xbc, 0x76, 0xa7, + 0xe6, 0xbd, 0xaf, 0x8e, 0x70, 0x59, 0x6a, 0x1f, 0xd2, 0x2b, 0xfa, 0x12, 0x69, 0x58, 0xc5, 0x8e, + 0x33, 0xb4, 0x82, 0x2d, 0x4b, 0x8d, 0x85, 0x80, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xab, 0x37, 0x5c, + 0x96, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe8, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, 0xf3, + 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, 0x83, + 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xc1, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x8a, + 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x52, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, 0xb3, + 0x76, 0x5e, 0xcb, 0x52, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x08, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, 0xfc, + 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, 0x68, + 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0xbe, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, 0xe5, + 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xaa, 0x04, 0x3d, 0x5c, 0xfd, 0xce, 0xbb, + 0xf3, 0x81, 0x85, 0xd7, 0x20, 0x45, 0x6d, 0xba, 0xbc, 0x9c, 0xbd, 0xaf, 0xc4, 0x54, 0x38, 0x5f, + 0x54, 0xbf, 0xc8, 0x61, 0x57, 0x97, 0xb3, 0xff, 0x45, 0x11, 0xaa, 0x9c, 0x3f, 0x9c, 0xfb, 0x55, + 0xa2, 0xa1, 0xfd, 0xbe, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x82, 0x6e, 0x8f, 0x77, 0xe9, 0x26, 0x68, + 0xd5, 0x81, 0xc9, 0x8a, 0x55, 0xaf, 0x90, 0xaf, 0xf4, 0x0e, 0xa2, 0x12, 0x95, 0x09, 0xd5, 0x83, + 0x65, 0x29, 0x2c, 0x45, 0x84, 0x1f, 0xd2, 0x72, 0x8d, 0xc8, 0x59, 0xf8, 0xb4, 0xb6, 0x74, 0xda, + 0xc5, 0x5e, 0xa7, 0x0d, 0x2a, 0xbb, 0x7f, 0xc2, 0xc5, 0x5e, 0x27, 0x0c, 0x72, 0xc8, 0x3f, 0xd5, + 0x1b, 0x7c, 0x71, 0xa6, 0x6f, 0xe1, 0xe8, 0xe7, 0x21, 0xb1, 0x49, 0xdf, 0x10, 0xce, 0x14, 0x33, + 0x58, 0xa9, 0x6f, 0xbf, 0x3b, 0x9f, 0x3c, 0xe8, 0x58, 0x75, 0x23, 0xb1, 0x59, 0xd7, 0xef, 0xc2, + 0xf0, 0x27, 0xd9, 0x17, 0xe3, 0xb0, 0xc0, 0x2a, 0x13, 0xf8, 0x68, 0xcc, 0x16, 0x13, 0xa1, 0x5e, + 0x3a, 0xb0, 0x6c, 0xef, 0xea, 0xca, 0x4d, 0x83, 0x52, 0xe4, 0xfe, 0x22, 0x00, 0x3d, 0xe7, 0xba, + 0xe9, 0x9e, 0xe8, 0x15, 0xce, 0x4c, 0x4f, 0x7d, 0xf3, 0xdb, 0xef, 0xce, 0xaf, 0x0e, 0xc2, 0xfa, + 0x6c, 0xdd, 0x74, 0x4f, 0x9e, 0xf5, 0x4e, 0x5b, 0x68, 0xa9, 0x78, 0xea, 0x21, 0x97, 0xb3, 0xb7, + 0xf8, 0xaa, 0xc7, 0xae, 0x2b, 0x2b, 0x5c, 0x57, 0x4a, 0xba, 0xa6, 0x0d, 0xf9, 0x9a, 0x96, 0x1f, + 0xf6, 0x7a, 0xde, 0xe0, 0x8b, 0x44, 0xc8, 0x92, 0x6a, 0x9c, 0x25, 0xd5, 0xf7, 0x6b, 0xc9, 0x16, + 0xaf, 0x8f, 0xa1, 0x6b, 0x55, 0xfb, 0x5d, 0xab, 0xfa, 0x7e, 0xae, 0xf5, 0x4f, 0x69, 0xb6, 0xfa, + 0xf9, 0x74, 0x60, 0xd3, 0xb7, 0x13, 0x7f, 0xb6, 0xf6, 0x82, 0x3e, 0xd0, 0x2e, 0x20, 0x9f, 0xbc, + 0xff, 0xd6, 0xbc, 0x92, 0xfb, 0x72, 0x82, 0x5f, 0x39, 0x4d, 0xa4, 0x87, 0xbb, 0xf2, 0x9f, 0x95, + 0x9e, 0xea, 0xc3, 0xb0, 0xd0, 0x97, 0x14, 0x98, 0xe9, 0xaa, 0xe4, 0xd4, 0x4c, 0x1f, 0x6c, 0x39, + 0xb7, 0xcf, 0x5a, 0xce, 0x99, 0x82, 0xbf, 0xab, 0xc0, 0xb9, 0x50, 0x79, 0xa5, 0xea, 0x5d, 0x09, + 0xa9, 0xf7, 0x68, 0xf7, 0x99, 0x88, 0xa0, 0xa0, 0x9d, 0xe8, 0xde, 0x10, 0x40, 0x60, 0xf6, 0xfd, + 0xbe, 0x1a, 0xf2, 0xfb, 0x79, 0x1f, 0x10, 0x61, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x07, 0x92, 0xfb, + 0x6d, 0x84, 0xf4, 0x39, 0x48, 0xec, 0xb4, 0x99, 0x86, 0x13, 0x14, 0xbf, 0xd3, 0x2e, 0xb6, 0x4d, + 0xbb, 0x76, 0x62, 0x24, 0x76, 0xda, 0xfa, 0x45, 0x50, 0x0b, 0xec, 0xa7, 0x07, 0xd2, 0x2b, 0x93, + 0x54, 0xa0, 0x60, 0xd7, 0x99, 0x04, 0x9e, 0xd3, 0xe7, 0x20, 0xb9, 0x85, 0xcc, 0x23, 0xa6, 0x04, + 0x50, 0x19, 0x3c, 0x62, 0x90, 0x71, 0x76, 0xc2, 0x97, 0x21, 0xc5, 0x89, 0xf5, 0x4b, 0x18, 0x71, + 0xe4, 0xb1, 0xd3, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x64, 0x56, 0xbf, 0x0c, 0xc3, 0x86, 0x75, + 0x7c, 0xe2, 0xb1, 0x93, 0x77, 0x8b, 0xd1, 0xe9, 0xdc, 0x3d, 0x18, 0xf3, 0x35, 0xfa, 0x80, 0xa9, + 0xd7, 0xe9, 0xa5, 0xe9, 0xb3, 0xe2, 0x7a, 0xc2, 0xf7, 0x2d, 0xe9, 0x90, 0x7e, 0x01, 0x52, 0x7b, + 0x5e, 0x3b, 0x28, 0xfa, 0xbc, 0x23, 0xf5, 0x47, 0x73, 0xbf, 0xa4, 0x40, 0x6a, 0x1d, 0xa1, 0x16, + 0x31, 0xf8, 0x53, 0x90, 0x5c, 0x77, 0x5e, 0xb7, 0x99, 0x82, 0x53, 0xcc, 0xa2, 0x78, 0x9a, 0xd9, + 0x94, 0x4c, 0xeb, 0x4f, 0x89, 0x76, 0x9f, 0xf6, 0xed, 0x2e, 0xc8, 0x11, 0xdb, 0xe7, 0x24, 0xdb, + 0x33, 0x07, 0x62, 0xa1, 0x2e, 0xfb, 0xdf, 0x80, 0xb4, 0x70, 0x16, 0x7d, 0x81, 0xa9, 0x91, 0x08, + 0x03, 0x45, 0x5b, 0x61, 0x89, 0x1c, 0x82, 0x71, 0xe9, 0xc4, 0x18, 0x2a, 0x98, 0xb8, 0x07, 0x94, + 0x98, 0x79, 0x51, 0x36, 0x73, 0xb4, 0x28, 0x33, 0xf5, 0x32, 0xb5, 0x11, 0x31, 0xf7, 0x25, 0x1a, + 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x58, 0x8d, 0xdc, 0x73, 0x00, 0x34, 0xe5, + 0xcb, 0x76, 0xa7, 0x19, 0xca, 0xba, 0x09, 0x6e, 0xe0, 0xfd, 0x13, 0xb4, 0x8f, 0x5c, 0x22, 0x22, + 0xf7, 0x53, 0xb8, 0xc0, 0x00, 0x4d, 0x31, 0x82, 0x7f, 0x26, 0x16, 0x1f, 0xd9, 0x89, 0x61, 0xd1, + 0x2c, 0x15, 0xbd, 0x87, 0xbc, 0x82, 0xed, 0x78, 0x27, 0xa8, 0x1d, 0x42, 0xac, 0xe8, 0xd7, 0xa4, + 0x84, 0x9d, 0x58, 0x79, 0xdc, 0x47, 0xf4, 0x04, 0x5d, 0xcb, 0x7d, 0x9d, 0x28, 0x88, 0x5b, 0x81, + 0xae, 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0xba, 0xd4, 0xbf, 0xf5, 0x51, 0x33, 0x74, 0x6b, 0x79, + 0x4b, 0xba, 0xcf, 0xe9, 0xaf, 0xac, 0x7c, 0x8f, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x26, 0x56, 0xe5, + 0x1e, 0xdd, 0xed, 0x59, 0x6d, 0xaa, 0x0e, 0x6a, 0xd3, 0xdf, 0xf7, 0x3b, 0x0e, 0xfa, 0x23, 0x0e, + 0xe4, 0x37, 0x43, 0xf4, 0x8f, 0xc6, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57, 0x07, 0x75, 0x7f, + 0x3e, 0x51, 0x2c, 0xfa, 0xea, 0xde, 0x38, 0x43, 0x08, 0xe4, 0x13, 0xa5, 0x92, 0x5f, 0xb6, 0x53, + 0x9f, 0x7d, 0x6b, 0x5e, 0xf9, 0xda, 0x5b, 0xf3, 0x43, 0xb9, 0xdf, 0x54, 0x60, 0x8a, 0x49, 0x0a, + 0x81, 0xfb, 0x6c, 0x48, 0xf9, 0x47, 0x78, 0xcd, 0x88, 0xb2, 0xc0, 0x4f, 0x2c, 0x78, 0xbf, 0xa5, + 0x40, 0xb6, 0x4b, 0x57, 0x6e, 0xef, 0xe5, 0x81, 0x54, 0xce, 0x2b, 0xe5, 0x9f, 0xbe, 0xcd, 0xef, + 0xc1, 0xf0, 0xbe, 0xd5, 0x44, 0x6d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, 0x87, 0x0e, + 0xf1, 0x39, 0xaa, 0x9c, 0x34, 0xb7, 0xa2, 0x67, 0x21, 0xb9, 0x6e, 0x7a, 0x26, 0xd1, 0x20, 0xe3, + 0xd7, 0x57, 0xd3, 0x33, 0x73, 0xd7, 0x20, 0xb3, 0x7d, 0x4a, 0x5e, 0xa1, 0xa9, 0x93, 0xd7, 0x43, + 0xe4, 0xee, 0x8f, 0xf7, 0xab, 0x57, 0x17, 0x87, 0x53, 0x75, 0xed, 0xbe, 0x92, 0x4f, 0x12, 0x7d, + 0x5e, 0x83, 0x89, 0x1d, 0xac, 0x36, 0xc1, 0x11, 0xd8, 0x05, 0x50, 0xb6, 0xe5, 0x46, 0x48, 0x64, + 0x35, 0x94, 0xed, 0x50, 0xfb, 0xa8, 0xfa, 0xe6, 0x09, 0xb5, 0x6d, 0xaa, 0xdf, 0xb6, 0x2d, 0x26, + 0x53, 0x13, 0xda, 0xd4, 0x62, 0x32, 0x05, 0xda, 0x38, 0x3b, 0xef, 0x7f, 0x52, 0x41, 0xa3, 0xad, + 0xce, 0x3a, 0x3a, 0xb2, 0x6c, 0xcb, 0xeb, 0xee, 0x57, 0x7d, 0x8d, 0xf5, 0x17, 0x60, 0x0c, 0x9b, + 0x74, 0x83, 0xfd, 0xf4, 0x16, 0x36, 0xfd, 0x45, 0xd6, 0xa2, 0x84, 0x28, 0xd8, 0x00, 0x09, 0x9d, + 0x00, 0xa3, 0x6f, 0x80, 0x5a, 0xa9, 0x6c, 0xb3, 0xc5, 0x6d, 0xb5, 0x2f, 0x94, 0xbd, 0x81, 0xc3, + 0x8e, 0xd8, 0x98, 0x7b, 0x6c, 0x60, 0x02, 0x7d, 0x15, 0x12, 0x95, 0x6d, 0xd6, 0xf0, 0x5e, 0x1a, + 0x84, 0xc6, 0x48, 0x54, 0xb6, 0x67, 0xff, 0x9d, 0x02, 0xe3, 0xd2, 0xa8, 0x9e, 0x83, 0x0c, 0x1d, + 0x10, 0x2e, 0x77, 0xc4, 0x90, 0xc6, 0xb8, 0xce, 0x89, 0xf7, 0xa9, 0xf3, 0x6c, 0x01, 0x26, 0x43, + 0xe3, 0xfa, 0x12, 0xe8, 0xe2, 0x10, 0x53, 0x82, 0xfe, 0x6c, 0x51, 0xc4, 0x4c, 0xee, 0x09, 0x80, + 0xc0, 0xae, 0xfe, 0xaf, 0xed, 0x54, 0xca, 0x7b, 0xfb, 0xe5, 0x75, 0x4d, 0xc9, 0x7d, 0x53, 0x81, + 0x34, 0x6b, 0x5b, 0x6b, 0x4e, 0x0b, 0xe9, 0x45, 0x50, 0x0a, 0x2c, 0x82, 0x1e, 0x4e, 0x6f, 0xa5, + 0xa0, 0x5f, 0x01, 0xa5, 0x38, 0xb8, 0xab, 0x95, 0xa2, 0xbe, 0x02, 0x4a, 0x89, 0x39, 0x78, 0x30, + 0xcf, 0x28, 0xa5, 0xdc, 0x1f, 0xab, 0x30, 0x2d, 0xb6, 0xd1, 0xbc, 0x9e, 0x5c, 0x94, 0xef, 0x9b, + 0xf2, 0x63, 0x57, 0x57, 0xae, 0xad, 0x2e, 0xe1, 0x7f, 0xfc, 0x90, 0xbc, 0x28, 0xdf, 0x42, 0x75, + 0x8b, 0x74, 0xbd, 0x26, 0x92, 0x4f, 0x0a, 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0x5d, 0xaf, 0x89, + 0x48, 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0x5d, 0x8f, 0x02, 0xa4, 0xd9, 0xae, 0xd7, 0x44, 0xa4, + 0xd9, 0xae, 0xd7, 0x44, 0xa4, 0xd9, 0xee, 0xd7, 0x44, 0xd8, 0x74, 0xcf, 0xd7, 0x44, 0xe4, 0xf9, + 0xee, 0xd7, 0x44, 0xe4, 0xf9, 0xee, 0xd7, 0x44, 0xf2, 0x49, 0xaf, 0xdd, 0x41, 0xbd, 0x1f, 0x3a, + 0xc8, 0xf8, 0x7e, 0xf7, 0x80, 0x41, 0x01, 0xde, 0x81, 0x49, 0xba, 0x1f, 0x51, 0x72, 0x6c, 0xcf, + 0xb4, 0x6c, 0xd4, 0xd6, 0x3f, 0x06, 0x19, 0x3a, 0x44, 0xef, 0x72, 0xa2, 0xee, 0x02, 0xe9, 0x3c, + 0x2b, 0xb7, 0x92, 0x74, 0xee, 0xcf, 0x93, 0x30, 0x43, 0x07, 0x2a, 0x66, 0x13, 0x49, 0x2f, 0x19, + 0x5d, 0x0e, 0x3d, 0x52, 0x9a, 0xc0, 0xf0, 0x07, 0xef, 0xce, 0xd3, 0xd1, 0x82, 0x1f, 0x4c, 0x97, + 0x43, 0x0f, 0x97, 0x64, 0xb9, 0x60, 0xfd, 0xb9, 0x1c, 0x7a, 0xf1, 0x48, 0x96, 0xf3, 0x97, 0x1b, + 0x5f, 0x8e, 0xbf, 0x82, 0x24, 0xcb, 0xad, 0xfb, 0x51, 0x76, 0x39, 0xf4, 0x32, 0x92, 0x2c, 0x57, + 0xf6, 0xe3, 0xed, 0x72, 0xe8, 0xd1, 0x93, 0x2c, 0xb7, 0xe1, 0x47, 0xde, 0xe5, 0xd0, 0x43, 0x28, + 0x59, 0xee, 0x8e, 0x1f, 0x83, 0x97, 0x43, 0xaf, 0x2a, 0xc9, 0x72, 0x2f, 0xfa, 0xd1, 0x78, 0x39, + 0xf4, 0xd2, 0x92, 0x2c, 0xb7, 0xe9, 0xc7, 0xe5, 0x42, 0xf8, 0xf5, 0x25, 0x59, 0xf0, 0x6e, 0x10, + 0xa1, 0x0b, 0xe1, 0x17, 0x99, 0x64, 0xc9, 0x8f, 0x07, 0xb1, 0xba, 0x10, 0x7e, 0xa5, 0x49, 0x96, + 0xdc, 0x0a, 0xa2, 0x76, 0x21, 0xfc, 0xa8, 0x4c, 0x96, 0xdc, 0x0e, 0xe2, 0x77, 0x21, 0xfc, 0xd0, + 0x4c, 0x96, 0xac, 0x04, 0x91, 0xbc, 0x10, 0x7e, 0x7c, 0x26, 0x4b, 0xee, 0x04, 0x7b, 0xe8, 0x7f, + 0x10, 0x0a, 0x3f, 0xe1, 0x25, 0xa8, 0x5c, 0x28, 0xfc, 0x20, 0x22, 0xf4, 0x72, 0xa1, 0xd0, 0x83, + 0x88, 0xb0, 0xcb, 0x85, 0xc2, 0x0e, 0x22, 0x42, 0x2e, 0x17, 0x0a, 0x39, 0x88, 0x08, 0xb7, 0x5c, + 0x28, 0xdc, 0x20, 0x22, 0xd4, 0x72, 0xa1, 0x50, 0x83, 0x88, 0x30, 0xcb, 0x85, 0xc2, 0x0c, 0x22, + 0x42, 0x2c, 0x17, 0x0a, 0x31, 0x88, 0x08, 0xaf, 0x5c, 0x28, 0xbc, 0x20, 0x22, 0xb4, 0x2e, 0x85, + 0x43, 0x0b, 0xa2, 0xc2, 0xea, 0x52, 0x38, 0xac, 0x20, 0x2a, 0xa4, 0x9e, 0x0c, 0x87, 0xd4, 0xd8, + 0x83, 0x77, 0xe7, 0x87, 0xf1, 0x90, 0x10, 0x4d, 0x97, 0xc2, 0xd1, 0x04, 0x51, 0x91, 0x74, 0x29, + 0x1c, 0x49, 0x10, 0x15, 0x45, 0x97, 0xc2, 0x51, 0x04, 0x51, 0x11, 0xf4, 0x76, 0x38, 0x82, 0x82, + 0x57, 0x7c, 0x72, 0xa1, 0x27, 0x8a, 0x71, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, + 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, + 0x41, 0xea, 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x14, 0x7e, 0xe1, 0x01, + 0xa2, 0x0a, 0xd2, 0xa5, 0xf0, 0x93, 0xcf, 0xf8, 0x10, 0x52, 0x07, 0x0a, 0x21, 0xb5, 0x57, 0x08, + 0xfd, 0x81, 0x0a, 0xd3, 0x52, 0x08, 0xb1, 0xc7, 0x43, 0x1f, 0x54, 0x05, 0xba, 0x3e, 0xc0, 0xfb, + 0x15, 0x51, 0x31, 0x75, 0x7d, 0x80, 0x67, 0xd4, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x07, 0xa8, + 0x42, 0x1b, 0x7e, 0x0c, 0x5d, 0x1f, 0xe0, 0xbd, 0x8b, 0xee, 0xd8, 0xbb, 0xd9, 0xaf, 0x08, 0xbc, + 0x38, 0x50, 0x11, 0xd8, 0x1c, 0xa8, 0x08, 0xdc, 0x0d, 0x3c, 0xf8, 0xcb, 0x09, 0x38, 0x17, 0x78, + 0x90, 0x7e, 0x22, 0x3f, 0x91, 0x94, 0x13, 0x9e, 0x50, 0xe9, 0xfc, 0xa9, 0x8d, 0xe0, 0xc6, 0xc4, + 0x66, 0x5d, 0xdf, 0x95, 0x9f, 0x55, 0xe5, 0xcf, 0xfa, 0xfc, 0x46, 0xf0, 0x38, 0xdb, 0x0b, 0xbd, + 0x04, 0xea, 0x66, 0xdd, 0x25, 0xd5, 0x22, 0xea, 0xb4, 0x25, 0x03, 0x4f, 0xeb, 0x06, 0x8c, 0x10, + 0x71, 0x97, 0xb8, 0xf7, 0xfd, 0x9c, 0x78, 0xdd, 0x60, 0x4c, 0xb9, 0xb7, 0x15, 0xb8, 0x20, 0x85, + 0xf2, 0x07, 0xf3, 0xc4, 0xe0, 0xf6, 0x40, 0x4f, 0x0c, 0xa4, 0x04, 0x09, 0x9e, 0x1e, 0x3c, 0xdd, + 0xfd, 0xa0, 0x5a, 0xcc, 0x92, 0xf0, 0x93, 0x84, 0xbf, 0x0c, 0x13, 0xc1, 0x15, 0x90, 0x5b, 0xb6, + 0xb5, 0xf8, 0xcd, 0xcc, 0xa8, 0xd4, 0x5c, 0x0b, 0x6d, 0xa2, 0xf5, 0x85, 0xf9, 0xd9, 0x9a, 0xcb, + 0xc3, 0x64, 0x45, 0xfe, 0x2e, 0x4f, 0xdc, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0xf7, 0xbf, 0x32, 0x3f, + 0x94, 0xfb, 0x28, 0x64, 0xc4, 0xaf, 0xeb, 0x84, 0x80, 0x63, 0x1c, 0x98, 0x4f, 0xbe, 0x83, 0xa5, + 0xff, 0xa1, 0x02, 0x8f, 0x88, 0xe2, 0x2f, 0x59, 0xde, 0xc9, 0xa6, 0x8d, 0x7b, 0xfa, 0xe7, 0x20, + 0x85, 0x98, 0xe3, 0xd8, 0xaf, 0x9d, 0xb0, 0xdb, 0xc8, 0x48, 0xf1, 0x25, 0xf2, 0xaf, 0xe1, 0x43, + 0x42, 0x5b, 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x97, 0xf5, 0x1a, 0x0f, 0xe9, + 0xf5, 0x1b, 0x11, 0x7a, 0x91, 0x38, 0xd2, 0xef, 0x4a, 0x7a, 0x09, 0x77, 0xab, 0x91, 0xe2, 0x4b, + 0x3c, 0xf8, 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0xe5, 0xb0, 0x4c, + 0xb4, 0x9e, 0xeb, 0x90, 0xac, 0x38, 0x75, 0xf2, 0x3b, 0x2c, 0xe4, 0xf7, 0x72, 0x99, 0x91, 0xd9, + 0x8f, 0xe7, 0x5e, 0x86, 0x54, 0xe9, 0xc4, 0x6a, 0xd4, 0xdb, 0xc8, 0x66, 0x8f, 0xec, 0xd9, 0x0e, + 0x3a, 0xc6, 0x18, 0xfe, 0x5c, 0xae, 0x04, 0x53, 0x15, 0xc7, 0x2e, 0x9e, 0x7a, 0x62, 0xdd, 0x58, + 0x0a, 0xa5, 0x08, 0x7b, 0xe4, 0x43, 0xbe, 0x00, 0x82, 0x05, 0x8a, 0xc3, 0xdf, 0x7e, 0x77, 0x5e, + 0xd9, 0xf7, 0xb7, 0xcf, 0xb7, 0xe1, 0x51, 0x96, 0x3e, 0x5d, 0x54, 0x2b, 0x71, 0x54, 0x63, 0xec, + 0x31, 0xb5, 0x40, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, + 0x53, 0xcf, 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x5d, 0x48, 0xb3, 0x27, 0x61, 0xcc, 0x9f, 0x13, + 0xa2, 0x41, 0xcc, 0x94, 0x95, 0xc5, 0x1c, 0xa4, 0x85, 0x84, 0xd5, 0x87, 0x41, 0x29, 0x68, 0x43, + 0xf8, 0xbf, 0xa2, 0xa6, 0xe0, 0xff, 0x4a, 0x5a, 0x62, 0xf1, 0x29, 0x98, 0x0c, 0x6d, 0x5f, 0xe2, + 0x99, 0x75, 0x0d, 0xf0, 0x7f, 0x65, 0x2d, 0x3d, 0x9b, 0xfc, 0xec, 0x3f, 0x99, 0x1b, 0x5a, 0xbc, + 0x0d, 0x7a, 0xf7, 0x46, 0xa7, 0x3e, 0x02, 0x89, 0x02, 0xa6, 0x7c, 0x14, 0x12, 0xc5, 0xa2, 0xa6, + 0xcc, 0x4e, 0xfe, 0x8d, 0x2f, 0x5e, 0x48, 0x17, 0xc9, 0x77, 0x91, 0xef, 0x21, 0xaf, 0x58, 0x64, + 0xe0, 0xe7, 0xe1, 0x91, 0xc8, 0x8d, 0x52, 0x8c, 0x2f, 0x95, 0x28, 0x7e, 0x7d, 0xbd, 0x0b, 0xbf, + 0xbe, 0x4e, 0xf0, 0x4a, 0x9e, 0x3f, 0x70, 0x2e, 0xe8, 0x11, 0xdb, 0x92, 0xd9, 0xba, 0xf0, 0x80, + 0xbb, 0x90, 0x7f, 0x9e, 0xc9, 0x16, 0x23, 0x65, 0x51, 0xcc, 0x03, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, + 0xa5, 0x48, 0xfc, 0x51, 0xe8, 0xa9, 0xaa, 0xbc, 0x42, 0x30, 0x92, 0x92, 0xaf, 0xf0, 0x7a, 0x24, + 0xc9, 0x89, 0xf0, 0xae, 0xfb, 0xba, 0xaf, 0x70, 0x39, 0x52, 0xd6, 0x8a, 0x79, 0xe7, 0xab, 0x9c, + 0xbf, 0xc2, 0x16, 0xf9, 0xc2, 0x55, 0xfd, 0x11, 0x9e, 0xa3, 0x52, 0x05, 0x66, 0x06, 0xe2, 0x52, + 0xf9, 0x12, 0x03, 0x14, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xf3, 0x2f, 0x32, 0x92, 0x52, 0x4f, + 0x92, 0x18, 0x53, 0x71, 0x78, 0x71, 0xff, 0xfe, 0x7b, 0x73, 0x43, 0xef, 0xbc, 0x37, 0x37, 0xf4, + 0xdf, 0xde, 0x9b, 0x1b, 0xfa, 0xce, 0x7b, 0x73, 0xca, 0xf7, 0xdf, 0x9b, 0x53, 0x7e, 0xf8, 0xde, + 0x9c, 0xf2, 0x67, 0xef, 0xcd, 0x29, 0x6f, 0x3e, 0x98, 0x53, 0xbe, 0xf6, 0x60, 0x4e, 0xf9, 0xfa, + 0x83, 0x39, 0xe5, 0xf7, 0x1e, 0xcc, 0x29, 0x6f, 0x3f, 0x98, 0x53, 0xee, 0x3f, 0x98, 0x53, 0xde, + 0x79, 0x30, 0xa7, 0x7c, 0xe7, 0xc1, 0x9c, 0xf2, 0xfd, 0x07, 0x73, 0x43, 0x3f, 0x7c, 0x30, 0xa7, + 0xfc, 0xd9, 0x83, 0xb9, 0xa1, 0x37, 0xbf, 0x3b, 0x37, 0xf4, 0xd6, 0x77, 0xe7, 0x86, 0xbe, 0xf6, + 0xdd, 0x39, 0x05, 0xfe, 0x68, 0x15, 0x16, 0xd8, 0x17, 0xc9, 0xe8, 0xf7, 0x56, 0x85, 0xef, 0xbc, + 0x5e, 0xf1, 0x4e, 0x10, 0x69, 0x0d, 0xae, 0xf1, 0xdf, 0x75, 0xf2, 0x07, 0xce, 0xf8, 0xe5, 0xb2, + 0xd9, 0x87, 0xfd, 0x2a, 0x5b, 0xee, 0xdf, 0x0f, 0xc3, 0x28, 0xdf, 0x12, 0x8e, 0xfa, 0x65, 0xe8, + 0x35, 0x48, 0x9d, 0x58, 0x0d, 0xb3, 0x6d, 0x79, 0xa7, 0x6c, 0x2f, 0xf4, 0xb1, 0xa5, 0x40, 0x6d, + 0xbe, 0x7b, 0xfa, 0x62, 0xa7, 0xe9, 0x74, 0xda, 0x86, 0x2f, 0xaa, 0x5f, 0x80, 0xcc, 0x09, 0xb2, + 0x8e, 0x4f, 0xbc, 0xaa, 0x65, 0x57, 0x6b, 0x4d, 0xd2, 0x33, 0x8f, 0x1b, 0x40, 0xc7, 0x36, 0xed, + 0x52, 0x13, 0x9f, 0xac, 0x6e, 0x7a, 0x26, 0xb9, 0x57, 0xcf, 0x18, 0xe4, 0xb3, 0x7e, 0x11, 0x32, + 0x6d, 0xe4, 0x76, 0x1a, 0x5e, 0xb5, 0xe6, 0x74, 0x6c, 0x8f, 0x74, 0xb5, 0xaa, 0x91, 0xa6, 0x63, + 0x25, 0x3c, 0xa4, 0x3f, 0x09, 0xe3, 0x5e, 0xbb, 0x83, 0xaa, 0x6e, 0xcd, 0xf1, 0xdc, 0xa6, 0x69, + 0x93, 0xae, 0x36, 0x65, 0x64, 0xf0, 0xe0, 0x1e, 0x1b, 0x23, 0x7f, 0x79, 0xa0, 0xe6, 0xb4, 0x11, + 0xb9, 0xa9, 0x4e, 0x18, 0xf4, 0x40, 0xd7, 0x40, 0x7d, 0x15, 0x9d, 0x92, 0xdb, 0xb6, 0xa4, 0x81, + 0x3f, 0xea, 0xcf, 0xc0, 0x08, 0xfd, 0xa3, 0x14, 0xa4, 0xc7, 0x26, 0x4f, 0xb0, 0xfd, 0x4b, 0xa3, + 0x3b, 0xb5, 0x06, 0x13, 0xd0, 0x6f, 0xc1, 0xa8, 0x87, 0xda, 0x6d, 0xd3, 0xb2, 0xc9, 0x2d, 0x54, + 0x7a, 0x65, 0x3e, 0xc2, 0x0c, 0xfb, 0x54, 0x82, 0xfc, 0xc8, 0xab, 0xc1, 0xe5, 0xf5, 0x35, 0xc8, + 0x10, 0xb9, 0x95, 0x2a, 0xfd, 0xc3, 0x1d, 0xe9, 0x9e, 0x51, 0x9d, 0xa6, 0x72, 0xfc, 0x81, 0x01, + 0x87, 0xd1, 0x1f, 0xb8, 0x1b, 0x27, 0xa7, 0x7d, 0x32, 0xe2, 0xb4, 0xa4, 0x00, 0xaf, 0x90, 0xe6, + 0x91, 0x9e, 0x9a, 0xf1, 0xd0, 0x9f, 0xc0, 0xdb, 0x86, 0x8c, 0xa8, 0x17, 0x37, 0x03, 0x6d, 0x82, + 0x88, 0x19, 0x9e, 0x0e, 0x7e, 0xd4, 0xbd, 0x87, 0x15, 0xe8, 0x7c, 0x3e, 0x71, 0x53, 0x99, 0xdd, + 0x05, 0x2d, 0x7c, 0xbe, 0x08, 0xca, 0xcb, 0x32, 0xa5, 0x26, 0x5e, 0x2c, 0xd9, 0x2e, 0x0f, 0x18, + 0x73, 0x2f, 0xc0, 0x08, 0x8d, 0x1f, 0x3d, 0x0d, 0xa3, 0xc1, 0x6f, 0x27, 0xa6, 0x20, 0xb9, 0x7b, + 0x50, 0xd9, 0xa3, 0x3f, 0x82, 0xba, 0xb7, 0x55, 0xd8, 0xdd, 0xdb, 0xdf, 0x2c, 0x7d, 0x5c, 0x4b, + 0xe8, 0x93, 0x90, 0x2e, 0x6e, 0x6e, 0x6d, 0x55, 0x8b, 0x85, 0xcd, 0xad, 0xf2, 0x3d, 0x4d, 0xcd, + 0xcd, 0xc1, 0x08, 0xd5, 0x93, 0xfc, 0x98, 0x5b, 0xc7, 0xb6, 0x4f, 0x79, 0x13, 0x41, 0x0e, 0x72, + 0xdf, 0xd0, 0x61, 0xb4, 0xd0, 0x68, 0x6c, 0x9b, 0x2d, 0x57, 0x7f, 0x09, 0xa6, 0xe8, 0xcf, 0x4a, + 0xec, 0x3b, 0xeb, 0xe4, 0x37, 0x07, 0x71, 0x89, 0x50, 0xd8, 0x8f, 0xd9, 0x07, 0xd7, 0xcd, 0xc4, + 0x97, 0xba, 0x64, 0xa9, 0x81, 0xbb, 0x39, 0xf4, 0x7d, 0xd0, 0xf8, 0xe0, 0x46, 0xc3, 0x31, 0x3d, + 0xcc, 0x9b, 0x60, 0x3f, 0x09, 0xd8, 0x9b, 0x97, 0x8b, 0x52, 0xda, 0x2e, 0x06, 0xfd, 0x63, 0x90, + 0xda, 0xb4, 0xbd, 0x6b, 0x2b, 0x98, 0x8d, 0xff, 0xa1, 0x95, 0x6e, 0x36, 0x2e, 0x42, 0x59, 0x7c, + 0x04, 0x43, 0x5f, 0x5f, 0xc5, 0xe8, 0x64, 0x3f, 0x34, 0x11, 0x09, 0xd0, 0xe4, 0x50, 0x7f, 0x01, + 0xc6, 0xf0, 0x3d, 0x0a, 0x3d, 0xf9, 0x30, 0x6f, 0x60, 0xbb, 0xe0, 0xbe, 0x0c, 0xc5, 0x07, 0x18, + 0x4e, 0x40, 0xcf, 0x3f, 0xd2, 0x97, 0x40, 0x50, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, + 0x9e, 0x04, 0x7b, 0x21, 0x0d, 0xf6, 0x44, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0x44, 0x0d, + 0xfc, 0x63, 0xbd, 0x08, 0xb0, 0x61, 0xbd, 0x81, 0xea, 0x54, 0x05, 0xfa, 0x67, 0x58, 0x72, 0x11, + 0x0c, 0x81, 0x10, 0xa5, 0x10, 0x50, 0x7a, 0x19, 0xd2, 0x7b, 0x47, 0x01, 0x09, 0x74, 0xe5, 0xb1, + 0xaf, 0xc6, 0x51, 0x88, 0x45, 0xc4, 0xf9, 0xaa, 0xd0, 0x8b, 0x49, 0xf7, 0x57, 0x45, 0xb8, 0x1a, + 0x01, 0x15, 0xa8, 0x42, 0x49, 0x32, 0x31, 0xaa, 0x08, 0x2c, 0x22, 0x0e, 0x17, 0xc3, 0xa2, 0xe3, + 0x60, 0x49, 0x56, 0x95, 0xe6, 0x23, 0x28, 0x98, 0x04, 0x2b, 0x86, 0xec, 0x88, 0x78, 0x84, 0x04, + 0x39, 0x06, 0x4f, 0xf4, 0xf6, 0x08, 0x97, 0xe1, 0x1e, 0xe1, 0xc7, 0x62, 0x9e, 0x91, 0xd7, 0x5a, + 0x31, 0xcf, 0x64, 0x6c, 0x9e, 0x71, 0xd1, 0x50, 0x9e, 0xf1, 0x61, 0xfd, 0x13, 0x30, 0xc9, 0xc7, + 0x70, 0x79, 0xc2, 0xa4, 0x1a, 0xfb, 0x43, 0x55, 0xbd, 0x49, 0x99, 0x24, 0xe5, 0x0c, 0xe3, 0xf5, + 0x0a, 0x4c, 0xf0, 0xa1, 0x6d, 0x97, 0x5c, 0xee, 0x14, 0xfb, 0x23, 0x10, 0xbd, 0x19, 0xa9, 0x20, + 0x25, 0x0c, 0xa1, 0x67, 0xd7, 0x61, 0x26, 0xba, 0x1a, 0x89, 0xe5, 0x77, 0x8c, 0x96, 0xdf, 0x73, + 0x62, 0xf9, 0x55, 0xc4, 0xf2, 0x5d, 0x82, 0x47, 0x22, 0x6b, 0x4f, 0x1c, 0x49, 0x42, 0x24, 0xb9, + 0x0d, 0xe3, 0x52, 0xc9, 0x11, 0xc1, 0xc3, 0x11, 0xe0, 0xe1, 0x6e, 0x70, 0x10, 0x5a, 0x11, 0xab, + 0x87, 0x04, 0x56, 0x45, 0xf0, 0xc7, 0x60, 0x42, 0xae, 0x37, 0x22, 0x7a, 0x3c, 0x02, 0x3d, 0x1e, + 0x81, 0x8e, 0x3e, 0x77, 0x32, 0x02, 0x9d, 0x0c, 0xa1, 0xf7, 0x7a, 0x9e, 0x7b, 0x2a, 0x02, 0x3d, + 0x15, 0x81, 0x8e, 0x3e, 0xb7, 0x1e, 0x81, 0xd6, 0x45, 0xf4, 0x73, 0x30, 0x19, 0x2a, 0x31, 0x22, + 0x7c, 0x34, 0x02, 0x3e, 0x2a, 0xc2, 0x9f, 0x07, 0x2d, 0x5c, 0x5c, 0x44, 0xfc, 0x64, 0x04, 0x7e, + 0x32, 0xea, 0xf4, 0xd1, 0xda, 0x8f, 0x44, 0xc0, 0x47, 0x22, 0x4f, 0x1f, 0x8d, 0xd7, 0x22, 0xf0, + 0x9a, 0x88, 0xcf, 0x43, 0x46, 0xac, 0x26, 0x22, 0x36, 0x15, 0x81, 0x4d, 0x85, 0xed, 0x2e, 0x15, + 0x93, 0xb8, 0x48, 0x1f, 0xeb, 0x91, 0x2e, 0x52, 0x09, 0x89, 0x23, 0xc9, 0x88, 0x24, 0x9f, 0x84, + 0x73, 0x51, 0x25, 0x23, 0x82, 0x63, 0x41, 0xe4, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0xad, + 0x50, 0xe3, 0x34, 0xfb, 0x29, 0x98, 0x8e, 0x28, 0x1c, 0x11, 0xb4, 0x4b, 0x72, 0x37, 0x96, 0x15, + 0x68, 0x49, 0x11, 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0x3d, 0xb1, 0x2b, 0xfb, 0xe6, 0x34, 0x4c, + 0xb0, 0xf2, 0xb4, 0xd3, 0xae, 0xa3, 0x36, 0xaa, 0xeb, 0x7f, 0xa9, 0x77, 0xef, 0xb4, 0xdc, 0x5d, + 0xd4, 0x18, 0xea, 0x0c, 0x2d, 0xd4, 0xa7, 0x7a, 0xb6, 0x50, 0x57, 0xe2, 0xe9, 0xe3, 0x3a, 0xa9, + 0x52, 0x57, 0x27, 0xf5, 0x74, 0x6f, 0xd2, 0x5e, 0x0d, 0x55, 0xa9, 0xab, 0xa1, 0xea, 0x4f, 0x12, + 0xd9, 0x57, 0x6d, 0x74, 0xf7, 0x55, 0x0b, 0xbd, 0x59, 0x7a, 0xb7, 0x57, 0x1b, 0xdd, 0xed, 0x55, + 0x0c, 0x4f, 0x74, 0x97, 0xb5, 0xd1, 0xdd, 0x65, 0xf5, 0xe1, 0xe9, 0xdd, 0x6c, 0x6d, 0x74, 0x37, + 0x5b, 0x31, 0x3c, 0xd1, 0x3d, 0xd7, 0x66, 0x44, 0xcf, 0xf5, 0x4c, 0x6f, 0xa2, 0x7e, 0xad, 0xd7, + 0x56, 0x54, 0xeb, 0xb5, 0xd8, 0x47, 0xa9, 0xbe, 0x1d, 0xd8, 0x66, 0x44, 0x07, 0x16, 0xa7, 0x58, + 0x8f, 0x46, 0x6c, 0x2b, 0xaa, 0x11, 0x8b, 0x55, 0xac, 0x57, 0x3f, 0xf6, 0x17, 0xc2, 0xfd, 0xd8, + 0xe5, 0xde, 0x4c, 0xd1, 0x6d, 0xd9, 0x46, 0x77, 0x5b, 0xb6, 0x10, 0x97, 0x73, 0x51, 0xdd, 0xd9, + 0xa7, 0x7a, 0x76, 0x67, 0x03, 0xa4, 0x70, 0x5c, 0x93, 0xf6, 0x72, 0xaf, 0x26, 0x6d, 0x29, 0x9e, + 0xbb, 0x7f, 0xaf, 0x76, 0xd0, 0xa3, 0x57, 0x7b, 0x36, 0x9e, 0xf8, 0xe7, 0x2d, 0xdb, 0xcf, 0x5b, + 0xb6, 0x9f, 0xb7, 0x6c, 0x3f, 0x6f, 0xd9, 0x7e, 0xfa, 0x2d, 0x5b, 0x3e, 0xf9, 0xb9, 0xaf, 0xcc, + 0x2b, 0xb9, 0xff, 0xaa, 0xfa, 0x7f, 0x3f, 0xeb, 0x25, 0xcb, 0x3b, 0xc1, 0xe5, 0x6d, 0x1b, 0x32, + 0xe4, 0x2f, 0x5f, 0x34, 0xcd, 0x56, 0xcb, 0xb2, 0x8f, 0x59, 0xcf, 0xb6, 0xd8, 0xbd, 0x95, 0xc8, + 0x00, 0xe4, 0x6f, 0x87, 0x6c, 0x53, 0x61, 0xb6, 0xdc, 0xd8, 0xc1, 0x88, 0x7e, 0x17, 0xd2, 0x4d, + 0xf7, 0xd8, 0x67, 0x4b, 0x74, 0x2d, 0x84, 0x21, 0x36, 0x7a, 0xa5, 0x01, 0x19, 0x34, 0xfd, 0x01, + 0xac, 0xda, 0xe1, 0xa9, 0x17, 0xa8, 0xa6, 0xc6, 0xa9, 0x86, 0x7d, 0x2a, 0xab, 0x76, 0x18, 0x8c, + 0xe0, 0xb0, 0x0d, 0xeb, 0x1e, 0x57, 0xe9, 0xa4, 0xe0, 0x79, 0x09, 0x26, 0x43, 0xda, 0x46, 0xe4, + 0xfc, 0x43, 0xf8, 0x06, 0x2b, 0x16, 0xd6, 0x3c, 0x2e, 0x27, 0xc4, 0x80, 0xcc, 0x3d, 0x01, 0xe3, + 0x12, 0xb7, 0x9e, 0x01, 0xe5, 0x88, 0x7d, 0xa7, 0x52, 0x39, 0xca, 0x7d, 0x59, 0x81, 0x34, 0x7b, + 0xa1, 0x60, 0xd7, 0xb4, 0xda, 0xfa, 0x8b, 0x90, 0x6c, 0xf0, 0xef, 0x35, 0x3d, 0xec, 0x77, 0x68, + 0x09, 0x83, 0xbe, 0x01, 0xc3, 0x6d, 0xff, 0x7b, 0x4f, 0x0f, 0xf5, 0xc5, 0x58, 0x02, 0xcf, 0xdd, + 0x57, 0x60, 0x8a, 0xbd, 0xef, 0xea, 0xb2, 0xb7, 0xa0, 0xcd, 0xd6, 0xec, 0x37, 0x14, 0x18, 0xf3, + 0x8f, 0xf4, 0x43, 0x98, 0xf0, 0x0f, 0xe8, 0x9b, 0xf6, 0x34, 0x52, 0xf3, 0x82, 0x85, 0xbb, 0x38, + 0x96, 0x22, 0x3e, 0xd1, 0x47, 0x52, 0x74, 0x4d, 0x96, 0x07, 0x67, 0x0b, 0x30, 0x1d, 0x21, 0x76, + 0x96, 0x05, 0x39, 0x77, 0x11, 0xc6, 0x2a, 0x8e, 0x47, 0x7f, 0x3e, 0x47, 0x3f, 0x27, 0x3c, 0x55, + 0x28, 0x26, 0xb4, 0x21, 0x02, 0x5e, 0xbc, 0x08, 0xa3, 0x2c, 0xfb, 0xf5, 0x11, 0x48, 0x6c, 0x17, + 0xb4, 0x21, 0xf2, 0x7f, 0x51, 0x53, 0xc8, 0xff, 0x25, 0x2d, 0x51, 0xdc, 0x7a, 0x88, 0xe7, 0x4d, + 0x43, 0xef, 0x3c, 0x98, 0x1b, 0x8a, 0x78, 0xde, 0xa4, 0x1c, 0x8e, 0x50, 0xf3, 0xfc, 0xff, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xd8, 0x3a, 0x74, 0xbb, 0x33, 0x7f, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1985,6 +2023,76 @@ func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { } return true } +func (this *NotPacked) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NotPacked") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NotPacked but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") + } + if len(this.Key) != len(that1.Key) { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) + } + } + return nil +} +func (this *NotPacked) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NotPacked) + if !ok { + that2, ok := that.(NotPacked) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Key) != len(that1.Key) { + return false + } + for i := range this.Key { + if this.Key[i] != that1.Key[i] { + return false + } + } + return true +} type MessageFace interface { Proto() github_com_gogo_protobuf_proto.Message @@ -2463,6 +2571,29 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace return this } +type NotPackedFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetKey() []uint64 +} + +func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNotPackedFromFace(this) +} + +func (this *NotPacked) GetKey() []uint64 { + return this.Key +} + +func NewNotPackedFromFace(that NotPackedFace) *NotPacked { + this := &NotPacked{} + this.Key = that.GetKey() + return this +} + func (this *Message) GoString() string { if this == nil { return "nil" @@ -3082,6 +3213,16 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NotPacked) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&theproto3.NotPacked{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringTheproto3(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -3090,26 +3231,9 @@ func valueToGoStringTheproto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringTheproto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { this := &Message{} - this.Name = randStringTheproto3(r) + this.Name = string(randStringTheproto3(r)) this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) this.HeightInCm = uint32(r.Uint32()) v1 := r.Intn(100) @@ -3158,7 +3282,7 @@ func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { this := &Nested{} - this.Bunny = randStringTheproto3(r) + this.Bunny = string(randStringTheproto3(r)) if !easy && r.Intn(10) != 0 { } return this @@ -3579,6 +3703,18 @@ func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *Conta return this } +func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { + this := &NotPacked{} + v77 := r.Intn(10) + this.Key = make([]uint64, v77) + for i := 0; i < v77; i++ { + this.Key[i] = uint64(uint64(r.Uint32())) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + type randyTheproto3 interface { Float32() float32 Float64() float64 @@ -3598,14 +3734,14 @@ func randUTF8RuneTheproto3(r randyTheproto3) rune { return rune(ru + 61) } func randStringTheproto3(r randyTheproto3) string { - v77 := r.Intn(100) - tmps := make([]rune, v77) - for i := 0; i < v77; i++ { + v78 := r.Intn(100) + tmps := make([]rune, v78) + for i := 0; i < v78; i++ { tmps[i] = randUTF8RuneTheproto3(r) } return string(tmps) } -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byte) { +func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -3613,43 +3749,43 @@ func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (data []byt wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldTheproto3(data, r, fieldNumber, wire) + dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldTheproto3(data []byte, r randyTheproto3, fieldNumber int, wire int) []byte { +func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - v78 := r.Int63() + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + v79 := r.Int63() if r.Intn(2) == 0 { - v78 *= -1 + v79 *= -1 } - data = encodeVarintPopulateTheproto3(data, uint64(v78)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) case 1: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateTheproto3(data, uint64(key)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateTheproto3(data, uint64(ll)) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateTheproto3(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateTheproto3(data []byte, v uint64) []byte { +func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *Message) Size() (n int) { var l int @@ -3678,9 +3814,11 @@ func (m *Message) Size() (n int) { n += 5 } if len(m.Key) > 0 { + l = 0 for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) + l += sovTheproto3(uint64(e)) } + n += 1 + sovTheproto3(uint64(l)) + l } if m.Nested != nil { l = m.Nested.Size() @@ -3693,8 +3831,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3709,8 +3848,9 @@ func (m *Message) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sovTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3846,7 +3986,11 @@ func (m *AllMaps) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3865,8 +4009,9 @@ func (m *AllMaps) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -3992,7 +4137,11 @@ func (m *AllMapsOrdered) Size() (n int) { for k, v := range m.StringToBytesMap { _ = k _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4011,8 +4160,9 @@ func (m *AllMapsOrdered) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4037,8 +4187,9 @@ func (m *MessageWithMap) Size() (n int) { l = 0 if v != nil { l = v.Size() + l += 1 + sovTheproto3(uint64(l)) } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + l + sovTheproto3(uint64(l)) + mapEntrySize := 1 + sozTheproto3(uint64(k)) + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4046,7 +4197,11 @@ func (m *MessageWithMap) Size() (n int) { for k, v := range m.ByteMapping { _ = k _ = v - mapEntrySize := 1 + 1 + 1 + len(v) + sovTheproto3(uint64(len(v))) + l = 0 + if len(v) > 0 { + l = 1 + len(v) + sovTheproto3(uint64(len(v))) + } + mapEntrySize := 1 + 1 + l n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) } } @@ -4094,6 +4249,17 @@ func (m *ContainsNestedMap_NestedMap) Size() (n int) { return n } +func (m *NotPacked) Size() (n int) { + var l int + _ = l + if len(m.Key) > 0 { + for _, e := range m.Key { + n += 1 + sovTheproto3(uint64(e)) + } + } + return n +} + func sovTheproto3(x uint64) (n int) { for { n++ @@ -4642,6 +4808,16 @@ func (this *ContainsNestedMap_NestedMap) String() string { }, "") return s } +func (this *NotPacked) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NotPacked{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} func valueToStringTheproto3(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4650,8 +4826,8 @@ func valueToStringTheproto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Message) Unmarshal(data []byte) error { - l := len(data) +func (m *Message) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -4663,7 +4839,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4691,7 +4867,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4706,7 +4882,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(data[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -4720,7 +4896,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Hilarity |= (Message_Humour(b) & 0x7F) << shift if b < 0x80 { @@ -4739,7 +4915,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.HeightInCm |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -4758,7 +4934,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4772,7 +4948,7 @@ func (m *Message) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], data[iNdEx:postIndex]...) + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) if m.Data == nil { m.Data = []byte{} } @@ -4789,7 +4965,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.ResultCount |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -4808,7 +4984,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4823,28 +4999,70 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx+4 > l { return io.ErrUnexpectedEOF } - m.Score = *(*float32)(unsafe.Pointer(&data[iNdEx])) + m.Score = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 4 case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if packedLen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.Key = append(m.Key, v) case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) @@ -4857,7 +5075,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4874,7 +5092,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Nested == nil { m.Nested = &Nested{} } - if err := m.Nested.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4890,7 +5108,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -4912,7 +5130,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4927,62 +5145,67 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.Terrain == nil { + m.Terrain = make(map[int64]*Nested) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Terrain[mapkey] = mapvalue + } else { + var mapvalue *Nested + m.Terrain[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -4996,7 +5219,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5013,7 +5236,7 @@ func (m *Message) Unmarshal(data []byte) error { if m.Proto2Field == nil { m.Proto2Field = &test.NinOptNative{} } - if err := m.Proto2Field.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5029,7 +5252,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5051,7 +5274,7 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5066,73 +5289,78 @@ func (m *Message) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.Proto2Value == nil { + m.Proto2Value = make(map[int64]*test.NinOptEnum) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.Proto2Value[mapkey] = mapvalue + } else { + var mapvalue *test.NinOptEnum + m.Proto2Value[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) + if err != nil { + return err } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + if skippy < 0 { return ErrInvalidLengthTheproto3Unsafe } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - m.Proto2Value[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } iNdEx += skippy @@ -5144,8 +5372,8 @@ func (m *Message) Unmarshal(data []byte) error { } return nil } -func (m *Nested) Unmarshal(data []byte) error { - l := len(data) +func (m *Nested) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5157,7 +5385,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5185,7 +5413,7 @@ func (m *Nested) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5200,11 +5428,11 @@ func (m *Nested) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bunny = string(data[iNdEx:postIndex]) + m.Bunny = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -5223,8 +5451,8 @@ func (m *Nested) Unmarshal(data []byte) error { } return nil } -func (m *AllMaps) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMaps) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -5236,7 +5464,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5264,7 +5492,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5286,7 +5514,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5301,7 +5529,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5316,41 +5544,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -5364,7 +5597,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5386,7 +5619,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5401,7 +5634,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5416,37 +5649,42 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5460,7 +5698,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5482,7 +5720,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5497,47 +5735,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5551,7 +5794,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5573,7 +5816,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5588,47 +5831,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5642,7 +5890,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5664,7 +5912,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5679,47 +5927,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -5733,7 +5986,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5755,7 +6008,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5770,47 +6023,52 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -5824,7 +6082,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5846,7 +6104,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5861,7 +6119,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -5870,42 +6128,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -5919,7 +6182,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -5941,7 +6204,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5956,7 +6219,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -5965,42 +6228,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6014,7 +6282,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6036,7 +6304,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6048,38 +6316,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6093,7 +6366,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6115,7 +6388,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6127,38 +6400,43 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6172,7 +6450,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6194,7 +6472,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6206,46 +6484,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue } - m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6259,7 +6542,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6281,7 +6564,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6293,46 +6576,51 @@ func (m *AllMaps) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -6346,7 +6634,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6368,7 +6656,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6383,7 +6671,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6391,41 +6679,46 @@ func (m *AllMaps) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6439,7 +6732,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6461,7 +6754,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6476,7 +6769,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6491,52 +6784,57 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6550,7 +6848,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6572,7 +6870,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6587,7 +6885,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6602,53 +6900,58 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6662,7 +6965,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6684,7 +6987,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6699,7 +7002,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6714,42 +7017,47 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -6763,7 +7071,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6785,7 +7093,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6800,7 +7108,7 @@ func (m *AllMaps) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6815,61 +7123,66 @@ func (m *AllMaps) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -6888,8 +7201,8 @@ func (m *AllMaps) Unmarshal(data []byte) error { } return nil } -func (m *AllMapsOrdered) Unmarshal(data []byte) error { - l := len(data) +func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -6901,7 +7214,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6929,7 +7242,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -6951,7 +7264,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6966,7 +7279,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -6981,41 +7294,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - m.StringToDoubleMap[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.StringToDoubleMap[mapkey] = mapvalue + } else { + var mapvalue float64 + m.StringToDoubleMap[mapkey] = mapvalue + } iNdEx = postIndex case 2: if wireType != 2 { @@ -7029,7 +7347,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7051,7 +7369,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7066,7 +7384,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7081,37 +7399,42 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(data[iNdEx-4]) - mapvaluetemp |= uint32(data[iNdEx-3]) << 8 - mapvaluetemp |= uint32(data[iNdEx-2]) << 16 - mapvaluetemp |= uint32(data[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) + iNdEx += 4 + mapvaluetemp = uint32(dAtA[iNdEx-4]) + mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 + mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 + mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 + mapvalue := math.Float32frombits(mapvaluetemp) + m.StringToFloatMap[mapkey] = mapvalue + } else { + var mapvalue float32 + m.StringToFloatMap[mapkey] = mapvalue } - m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -7125,7 +7448,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7147,7 +7470,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7162,47 +7485,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Int32Map[mapkey] = mapvalue } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -7216,7 +7544,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7238,7 +7566,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7253,47 +7581,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int64Map == nil { + m.Int64Map = make(map[int64]int64) } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Int64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Int64Map[mapkey] = mapvalue } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -7307,7 +7640,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7329,7 +7662,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7344,47 +7677,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Uint32Map[mapkey] = mapvalue } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -7398,7 +7736,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7420,7 +7758,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7435,47 +7773,52 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint64Map == nil { + m.Uint64Map = make(map[uint64]uint64) } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.Uint64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Uint64Map[mapkey] = mapvalue } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -7489,7 +7832,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7511,7 +7854,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7526,7 +7869,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -7535,42 +7878,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) mapkey := int32(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue := int32(mapvaluetemp) + m.Sint32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sint32Map[mapkey] = mapvalue } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -7584,7 +7932,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7606,7 +7954,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7621,7 +7969,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7630,42 +7978,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue := int64(mapvaluetemp) + m.Sint64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sint64Map[mapkey] = mapvalue } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7679,7 +8032,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7701,7 +8054,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7713,38 +8066,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = uint32(data[iNdEx-4]) - mapkey |= uint32(data[iNdEx-3]) << 8 - mapkey |= uint32(data[iNdEx-2]) << 16 - mapkey |= uint32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = uint32(dAtA[iNdEx-4]) + mapkey |= uint32(dAtA[iNdEx-3]) << 8 + mapkey |= uint32(dAtA[iNdEx-2]) << 16 + mapkey |= uint32(dAtA[iNdEx-1]) << 24 + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 4 + mapvalue = uint32(dAtA[iNdEx-4]) + mapvalue |= uint32(dAtA[iNdEx-3]) << 8 + mapvalue |= uint32(dAtA[iNdEx-2]) << 16 + mapvalue |= uint32(dAtA[iNdEx-1]) << 24 + m.Fixed32Map[mapkey] = mapvalue + } else { + var mapvalue uint32 + m.Fixed32Map[mapkey] = mapvalue } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(data[iNdEx-4]) - mapvalue |= uint32(data[iNdEx-3]) << 8 - mapvalue |= uint32(data[iNdEx-2]) << 16 - mapvalue |= uint32(data[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7758,7 +8116,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7780,7 +8138,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7792,38 +8150,43 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - mapkey = int32(data[iNdEx-4]) - mapkey |= int32(data[iNdEx-3]) << 8 - mapkey |= int32(data[iNdEx-2]) << 16 - mapkey |= int32(data[iNdEx-1]) << 24 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int32(dAtA[iNdEx-4]) + mapkey |= int32(dAtA[iNdEx-3]) << 8 + mapkey |= int32(dAtA[iNdEx-2]) << 16 + mapkey |= int32(dAtA[iNdEx-1]) << 24 + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += 4 + mapvalue = int32(dAtA[iNdEx-4]) + mapvalue |= int32(dAtA[iNdEx-3]) << 8 + mapvalue |= int32(dAtA[iNdEx-2]) << 16 + mapvalue |= int32(dAtA[iNdEx-1]) << 24 + m.Sfixed32Map[mapkey] = mapvalue + } else { + var mapvalue int32 + m.Sfixed32Map[mapkey] = mapvalue } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(data[iNdEx-4]) - mapvalue |= int32(data[iNdEx-3]) << 8 - mapvalue |= int32(data[iNdEx-2]) << 16 - mapvalue |= int32(data[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7837,7 +8200,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7845,41 +8208,13 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + return ErrInvalidLengthTheproto3Unsafe } - var mapkey uint64 - if (iNdEx + 8) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapkey = uint64(data[iNdEx-8]) - mapkey |= uint64(data[iNdEx-7]) << 8 - mapkey |= uint64(data[iNdEx-6]) << 16 - mapkey |= uint64(data[iNdEx-5]) << 24 - mapkey |= uint64(data[iNdEx-4]) << 32 - mapkey |= uint64(data[iNdEx-3]) << 40 - mapkey |= uint64(data[iNdEx-2]) << 48 - mapkey |= uint64(data[iNdEx-1]) << 56 - var valuekey uint64 + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3Unsafe @@ -7887,30 +8222,63 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 + var mapkey uint64 if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } iNdEx += 8 - mapvalue = uint64(data[iNdEx-8]) - mapvalue |= uint64(data[iNdEx-7]) << 8 - mapvalue |= uint64(data[iNdEx-6]) << 16 - mapvalue |= uint64(data[iNdEx-5]) << 24 - mapvalue |= uint64(data[iNdEx-4]) << 32 - mapvalue |= uint64(data[iNdEx-3]) << 40 - mapvalue |= uint64(data[iNdEx-2]) << 48 - mapvalue |= uint64(data[iNdEx-1]) << 56 + mapkey = uint64(dAtA[iNdEx-8]) + mapkey |= uint64(dAtA[iNdEx-7]) << 8 + mapkey |= uint64(dAtA[iNdEx-6]) << 16 + mapkey |= uint64(dAtA[iNdEx-5]) << 24 + mapkey |= uint64(dAtA[iNdEx-4]) << 32 + mapkey |= uint64(dAtA[iNdEx-3]) << 40 + mapkey |= uint64(dAtA[iNdEx-2]) << 48 + mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - m.Fixed64Map[mapkey] = mapvalue + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapvalue uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvalue = uint64(dAtA[iNdEx-8]) + mapvalue |= uint64(dAtA[iNdEx-7]) << 8 + mapvalue |= uint64(dAtA[iNdEx-6]) << 16 + mapvalue |= uint64(dAtA[iNdEx-5]) << 24 + mapvalue |= uint64(dAtA[iNdEx-4]) << 32 + mapvalue |= uint64(dAtA[iNdEx-3]) << 40 + mapvalue |= uint64(dAtA[iNdEx-2]) << 48 + mapvalue |= uint64(dAtA[iNdEx-1]) << 56 + m.Fixed64Map[mapkey] = mapvalue + } else { + var mapvalue uint64 + m.Fixed64Map[mapkey] = mapvalue + } iNdEx = postIndex case 12: if wireType != 2 { @@ -7924,7 +8292,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -7946,7 +8314,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -7958,46 +8326,51 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - mapkey = int64(data[iNdEx-8]) - mapkey |= int64(data[iNdEx-7]) << 8 - mapkey |= int64(data[iNdEx-6]) << 16 - mapkey |= int64(data[iNdEx-5]) << 24 - mapkey |= int64(data[iNdEx-4]) << 32 - mapkey |= int64(data[iNdEx-3]) << 40 - mapkey |= int64(data[iNdEx-2]) << 48 - mapkey |= int64(data[iNdEx-1]) << 56 - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + mapkey = int64(dAtA[iNdEx-8]) + mapkey |= int64(dAtA[iNdEx-7]) << 8 + mapkey |= int64(dAtA[iNdEx-6]) << 16 + mapkey |= int64(dAtA[iNdEx-5]) << 24 + mapkey |= int64(dAtA[iNdEx-4]) << 32 + mapkey |= int64(dAtA[iNdEx-3]) << 40 + mapkey |= int64(dAtA[iNdEx-2]) << 48 + mapkey |= int64(dAtA[iNdEx-1]) << 56 + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + var mapvalue int64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(data[iNdEx-8]) - mapvalue |= int64(data[iNdEx-7]) << 8 - mapvalue |= int64(data[iNdEx-6]) << 16 - mapvalue |= int64(data[iNdEx-5]) << 24 - mapvalue |= int64(data[iNdEx-4]) << 32 - mapvalue |= int64(data[iNdEx-3]) << 40 - mapvalue |= int64(data[iNdEx-2]) << 48 - mapvalue |= int64(data[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + iNdEx += 8 + mapvalue = int64(dAtA[iNdEx-8]) + mapvalue |= int64(dAtA[iNdEx-7]) << 8 + mapvalue |= int64(dAtA[iNdEx-6]) << 16 + mapvalue |= int64(dAtA[iNdEx-5]) << 24 + mapvalue |= int64(dAtA[iNdEx-4]) << 32 + mapvalue |= int64(dAtA[iNdEx-3]) << 40 + mapvalue |= int64(dAtA[iNdEx-2]) << 48 + mapvalue |= int64(dAtA[iNdEx-1]) << 56 + m.Sfixed64Map[mapkey] = mapvalue + } else { + var mapvalue int64 + m.Sfixed64Map[mapkey] = mapvalue } - m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -8011,7 +8384,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8033,7 +8406,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8048,7 +8421,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8056,41 +8429,46 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + mapvalue := bool(mapvaluetemp != 0) + m.BoolMap[mapkey] = mapvalue + } else { + var mapvalue bool + m.BoolMap[mapkey] = mapvalue } - mapvalue := bool(mapvaluetemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -8104,7 +8482,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8126,7 +8504,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8141,7 +8519,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8156,52 +8534,57 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringMap == nil { + m.StringMap = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.StringMap == nil { - m.StringMap = make(map[string]string) + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.StringMap[mapkey] = mapvalue + } else { + var mapvalue string + m.StringMap[mapkey] = mapvalue } - m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -8215,7 +8598,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8237,7 +8620,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8252,7 +8635,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8267,53 +8650,58 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.StringToBytesMap[mapkey] = mapvalue + } else { + var mapvalue []byte + m.StringToBytesMap[mapkey] = mapvalue } - m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -8327,7 +8715,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8349,7 +8737,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8364,7 +8752,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8379,42 +8767,47 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToEnumMap == nil { + m.StringToEnumMap = make(map[string]MapEnum) } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + var mapvalue MapEnum + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } } + m.StringToEnumMap[mapkey] = mapvalue + } else { + var mapvalue MapEnum + m.StringToEnumMap[mapkey] = mapvalue } - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -8428,7 +8821,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8450,7 +8843,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8465,7 +8858,7 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8480,61 +8873,66 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToMsgMap == nil { + m.StringToMsgMap = make(map[string]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.StringToMsgMap[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.StringToMsgMap[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -8553,8 +8951,8 @@ func (m *AllMapsOrdered) Unmarshal(data []byte) error { } return nil } -func (m *MessageWithMap) Unmarshal(data []byte) error { - l := len(data) +func (m *MessageWithMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8566,7 +8964,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8594,7 +8992,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8616,7 +9014,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8631,57 +9029,62 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkey |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.NameMapping == nil { + m.NameMapping = make(map[int32]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.NameMapping[mapkey] = mapvalue + } else { + var mapvalue string + m.NameMapping[mapkey] = mapvalue } - mapvalue := string(data[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) - } - m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -8695,7 +9098,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8717,7 +9120,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8732,7 +9135,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8741,55 +9144,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) mapkey := int64(mapkeytemp) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + if m.MsgMapping == nil { + m.MsgMapping = make(map[int64]*FloatingPoint) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue := &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + m.MsgMapping[mapkey] = mapvalue + } else { + var mapvalue *FloatingPoint + m.MsgMapping[mapkey] = mapvalue } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(data[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -8803,7 +9211,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8825,7 +9233,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8840,7 +9248,7 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ mapkeytemp |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -8848,55 +9256,60 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } } mapkey := bool(mapkeytemp != 0) - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.ByteMapping == nil { + m.ByteMapping = make(map[bool][]byte) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3Unsafe } - if iNdEx >= l { + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := data[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, data[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) + mapvalue := make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + m.ByteMapping[mapkey] = mapvalue + } else { + var mapvalue []byte + m.ByteMapping[mapkey] = mapvalue } - m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -8915,8 +9328,8 @@ func (m *MessageWithMap) Unmarshal(data []byte) error { } return nil } -func (m *FloatingPoint) Unmarshal(data []byte) error { - l := len(data) +func (m *FloatingPoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8928,7 +9341,7 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -8951,11 +9364,11 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { if iNdEx+8 > l { return io.ErrUnexpectedEOF } - m.F = *(*float64)(unsafe.Pointer(&data[iNdEx])) + m.F = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) iNdEx += 8 default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -8974,8 +9387,8 @@ func (m *FloatingPoint) Unmarshal(data []byte) error { } return nil } -func (m *Uint128Pair) Unmarshal(data []byte) error { - l := len(data) +func (m *Uint128Pair) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -8987,7 +9400,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9015,7 +9428,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9029,7 +9442,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9045,7 +9458,7 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9061,13 +9474,13 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } var v github_com_gogo_protobuf_test_custom.Uint128 m.Right = &v - if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -9086,8 +9499,8 @@ func (m *Uint128Pair) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9099,7 +9512,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9117,7 +9530,7 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { switch fieldNum { default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -9136,8 +9549,8 @@ func (m *ContainsNestedMap) Unmarshal(data []byte) error { } return nil } -func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { - l := len(data) +func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -9149,7 +9562,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9177,7 +9590,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9199,7 +9612,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ keykey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9214,7 +9627,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9229,45 +9642,162 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - mapkey := string(data[iNdEx:postStringIndexmapkey]) + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := data[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if m.NestedMapField == nil { + m.NestedMapField = make(map[string]float64) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + mapvaluetemp = uint64(dAtA[iNdEx-8]) + mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 + mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 + mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 + mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 + mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 + mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 + mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 + mapvalue := math.Float64frombits(mapvaluetemp) + m.NestedMapField[mapkey] = mapvalue + } else { + var mapvalue float64 + m.NestedMapField[mapkey] = mapvalue } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapvaluetemp = uint64(data[iNdEx-8]) - mapvaluetemp |= uint64(data[iNdEx-7]) << 8 - mapvaluetemp |= uint64(data[iNdEx-6]) << 16 - mapvaluetemp |= uint64(data[iNdEx-5]) << 24 - mapvaluetemp |= uint64(data[iNdEx-4]) << 32 - mapvaluetemp |= uint64(data[iNdEx-3]) << 40 - mapvaluetemp |= uint64(data[iNdEx-2]) << 48 - mapvaluetemp |= uint64(data[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NotPacked) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NotPacked: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 5: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTheproto3Unsafe + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3Unsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Key = append(m.Key, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } - m.NestedMapField[mapkey] = mapvalue - iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(data[iNdEx:]) + skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -9286,8 +9816,8 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(data []byte) error { } return nil } -func skipTheproto3Unsafe(data []byte) (n int, err error) { - l := len(data) +func skipTheproto3Unsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -9298,7 +9828,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9316,7 +9846,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -9333,7 +9863,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -9356,7 +9886,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -9367,7 +9897,7 @@ func skipTheproto3Unsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipTheproto3Unsafe(data[start:]) + next, err := skipTheproto3Unsafe(dAtA[start:]) if err != nil { return 0, err } @@ -9391,106 +9921,109 @@ var ( ErrIntOverflowTheproto3Unsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("combos/unsafeunmarshaler/theproto3.proto", fileDescriptorTheproto3) } + var fileDescriptorTheproto3 = []byte{ - // 1591 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0x4b, 0x6f, 0xdb, 0xc6, - 0x16, 0x36, 0x25, 0x59, 0x8f, 0xa3, 0x17, 0x3d, 0xc9, 0xbd, 0xd0, 0x35, 0x70, 0x6d, 0x47, 0x01, - 0x12, 0x27, 0xb8, 0x91, 0x73, 0x9d, 0xb4, 0x4d, 0xdd, 0xb4, 0xa9, 0xa5, 0x58, 0x88, 0x1b, 0x5b, - 0x71, 0x25, 0x3b, 0x6e, 0x11, 0xa0, 0x06, 0x65, 0x53, 0x12, 0x51, 0x89, 0x34, 0xf8, 0x08, 0xea, - 0x5d, 0x7e, 0x46, 0x77, 0x45, 0x77, 0x5d, 0x16, 0x59, 0x14, 0x5d, 0xb6, 0x3b, 0x2f, 0x0b, 0x74, - 0x53, 0x74, 0x11, 0x24, 0xe9, 0x26, 0xcb, 0x2c, 0xb3, 0xec, 0x3c, 0x48, 0x6a, 0x48, 0x0d, 0xc5, - 0xa6, 0x9b, 0x6e, 0xbc, 0x18, 0x88, 0x73, 0xf8, 0x7d, 0xdf, 0x9c, 0x19, 0xce, 0x1c, 0x7e, 0xa0, - 0x60, 0xf9, 0xd0, 0x18, 0x75, 0x0d, 0x6b, 0xc5, 0xd1, 0x2d, 0xa5, 0xa7, 0x3a, 0xfa, 0x48, 0x31, - 0xad, 0x81, 0x32, 0x54, 0xcd, 0x15, 0x7b, 0xa0, 0x1e, 0x9b, 0x86, 0x6d, 0xdc, 0xa8, 0xd1, 0x1f, - 0x94, 0xf3, 0x03, 0xf3, 0xd7, 0xfa, 0x9a, 0x3d, 0x70, 0xba, 0x35, 0xcc, 0x5d, 0xe9, 0x1b, 0x7d, - 0x63, 0x85, 0xc6, 0xbb, 0x4e, 0x8f, 0xf6, 0x68, 0x87, 0x5e, 0x31, 0xe6, 0xfc, 0x7b, 0x91, 0x70, - 0x5b, 0xb5, 0xec, 0x15, 0x37, 0x83, 0xae, 0x61, 0x0f, 0xc8, 0xa0, 0x24, 0xc6, 0x88, 0xd5, 0x9f, - 0x67, 0x21, 0xb3, 0xad, 0x5a, 0x96, 0xd2, 0x57, 0x11, 0x82, 0x94, 0xae, 0x8c, 0xd4, 0x8a, 0xb4, - 0x24, 0x2d, 0xe7, 0xda, 0xf4, 0x1a, 0xbd, 0x03, 0xd9, 0x81, 0x36, 0x54, 0x4c, 0xcd, 0x3e, 0xa9, - 0x24, 0x70, 0xbc, 0xb4, 0xfa, 0x9f, 0xda, 0x38, 0x6d, 0x97, 0x59, 0xbb, 0xe7, 0x8c, 0x0c, 0xc7, - 0x6c, 0xfb, 0x50, 0xb4, 0x04, 0x85, 0x81, 0xaa, 0xf5, 0x07, 0xf6, 0x81, 0xa6, 0x1f, 0x1c, 0x8e, - 0x2a, 0x49, 0x4c, 0x2d, 0xb6, 0x81, 0xc5, 0x36, 0xf5, 0xc6, 0x88, 0x0c, 0x76, 0xa4, 0xd8, 0x4a, - 0x25, 0x85, 0xef, 0x14, 0xda, 0xf4, 0x1a, 0x5d, 0x80, 0x82, 0xa9, 0x5a, 0xce, 0xd0, 0x3e, 0x38, - 0x34, 0x1c, 0xdd, 0xae, 0x64, 0xf0, 0xbd, 0x64, 0x3b, 0xcf, 0x62, 0x0d, 0x12, 0x42, 0x17, 0xa1, - 0x68, 0x9b, 0x8e, 0x7a, 0x60, 0x1d, 0x1a, 0xb6, 0x35, 0x52, 0xf4, 0x4a, 0x16, 0x63, 0xb2, 0xed, - 0x02, 0x09, 0x76, 0xdc, 0x18, 0x3a, 0x0f, 0xb3, 0xf8, 0xbe, 0xa9, 0x56, 0x72, 0xf8, 0x66, 0xa2, - 0xcd, 0x3a, 0x48, 0x86, 0xe4, 0x97, 0xea, 0x49, 0x65, 0x76, 0x29, 0xb9, 0x9c, 0x6a, 0x93, 0x4b, - 0x74, 0x05, 0xd2, 0x3a, 0x5e, 0x0a, 0xf5, 0xa8, 0x92, 0xc6, 0xc0, 0xfc, 0xea, 0x1c, 0x37, 0xb5, - 0x16, 0xbd, 0xd1, 0x76, 0x01, 0xe8, 0x7d, 0xc8, 0xd8, 0xaa, 0x69, 0x2a, 0x9a, 0x5e, 0x01, 0x2c, - 0x90, 0x5f, 0x5d, 0x14, 0x2c, 0xc3, 0x2e, 0x43, 0x6c, 0xe8, 0xb6, 0x79, 0xd2, 0xf6, 0xf0, 0x78, - 0x09, 0x0b, 0x14, 0xb7, 0x7a, 0xd0, 0xd3, 0xd4, 0xe1, 0x51, 0x25, 0x4f, 0xc7, 0x42, 0x35, 0xfa, - 0x14, 0x5a, 0x9a, 0xfe, 0xe0, 0xd8, 0x6e, 0x29, 0xb6, 0xf6, 0x58, 0x6d, 0xe7, 0x19, 0xae, 0x49, - 0x60, 0xa8, 0xe9, 0xd3, 0x1e, 0x2b, 0x43, 0x47, 0xad, 0x14, 0xe9, 0xb0, 0x17, 0x05, 0xc3, 0xee, - 0x50, 0xd8, 0x43, 0x82, 0x62, 0x43, 0xbb, 0x3a, 0x34, 0x32, 0xbf, 0x0d, 0x05, 0x3e, 0x2f, 0x6f, - 0x19, 0x24, 0xba, 0xb6, 0x74, 0x19, 0x2e, 0xc3, 0x2c, 0x1b, 0x22, 0x11, 0xb5, 0x0a, 0xec, 0xfe, - 0x5a, 0xe2, 0x96, 0x34, 0xbf, 0x03, 0x72, 0x78, 0x3c, 0x81, 0xe4, 0xa5, 0xa0, 0xa4, 0xcc, 0x4f, - 0x76, 0x43, 0x77, 0x46, 0x9c, 0x62, 0xf5, 0x0e, 0xa4, 0xd9, 0xfe, 0x41, 0x79, 0xc8, 0xec, 0xb5, - 0xee, 0xb7, 0x1e, 0xec, 0xb7, 0xe4, 0x19, 0x94, 0x85, 0xd4, 0xce, 0x5e, 0xab, 0x23, 0x4b, 0xa8, - 0x08, 0xb9, 0xce, 0xd6, 0xfa, 0x4e, 0x67, 0x77, 0xb3, 0x71, 0x5f, 0x4e, 0xa0, 0x32, 0xe4, 0xeb, - 0x9b, 0x5b, 0x5b, 0x07, 0xf5, 0xf5, 0xcd, 0xad, 0x8d, 0xcf, 0xe5, 0x64, 0x75, 0x01, 0xd2, 0x2c, - 0x4f, 0xf2, 0xe0, 0xbb, 0x8e, 0xae, 0x9f, 0xb8, 0x5b, 0x98, 0x75, 0xaa, 0x4f, 0x11, 0x64, 0xd6, - 0x87, 0xc3, 0x6d, 0xe5, 0xd8, 0x42, 0xfb, 0x30, 0xd7, 0xb1, 0x4d, 0x4d, 0xef, 0xef, 0x1a, 0x77, - 0x0d, 0xa7, 0x3b, 0x54, 0x71, 0x14, 0xa3, 0xc9, 0xd2, 0x5e, 0xe1, 0xe6, 0xed, 0xc2, 0x6b, 0x13, - 0x58, 0xb6, 0xc0, 0x73, 0x56, 0x38, 0x8e, 0x76, 0x41, 0xf6, 0xc0, 0xcd, 0xa1, 0xa1, 0xd8, 0x44, - 0x37, 0x41, 0x75, 0x97, 0xa7, 0xe8, 0x7a, 0x50, 0x26, 0x2b, 0x5b, 0xa1, 0x30, 0xba, 0x0d, 0xd9, - 0x4d, 0xdd, 0xbe, 0xb1, 0x4a, 0xd4, 0x92, 0x54, 0x6d, 0x49, 0xa0, 0xe6, 0x41, 0x98, 0x4a, 0x56, - 0x73, 0xbb, 0x2e, 0xfb, 0xdd, 0x9b, 0x84, 0x9d, 0x9a, 0xc6, 0xa6, 0x90, 0x31, 0x9b, 0x76, 0xd1, - 0x1d, 0xc8, 0xed, 0x79, 0x52, 0xf4, 0xd4, 0xe4, 0x57, 0x2f, 0x08, 0xe8, 0x3e, 0x86, 0xf1, 0x73, - 0x8e, 0x3f, 0xbc, 0x2b, 0xc0, 0xc6, 0x4f, 0x4f, 0x15, 0xe0, 0x12, 0xa0, 0x02, 0x7e, 0x06, 0x1d, - 0x3f, 0x83, 0x4c, 0xa4, 0x40, 0x27, 0x94, 0x81, 0xc5, 0x67, 0xd0, 0xf1, 0x33, 0xc8, 0x4e, 0x15, - 0xe0, 0x33, 0xb0, 0xfc, 0x0c, 0xea, 0x00, 0x4d, 0xed, 0x2b, 0xf5, 0x88, 0xa5, 0x90, 0xa3, 0x0a, - 0x55, 0x81, 0xc2, 0x18, 0xc4, 0x24, 0xa0, 0xe7, 0x07, 0xd0, 0x06, 0xe4, 0x3b, 0xe3, 0xae, 0x5b, - 0x3e, 0x2e, 0x8a, 0xd2, 0xe8, 0x85, 0x54, 0xf2, 0x16, 0x27, 0xe3, 0xa5, 0xc2, 0x26, 0x93, 0x9f, - 0x9e, 0x0a, 0x37, 0x1b, 0x96, 0x0a, 0x9b, 0x8e, 0x9f, 0x0a, 0x13, 0x29, 0xc4, 0xa4, 0xc2, 0xa9, - 0xb8, 0xa9, 0x30, 0x19, 0x5c, 0x0c, 0xeb, 0x86, 0x41, 0x90, 0x6e, 0x55, 0x5a, 0x14, 0x48, 0xb8, - 0x08, 0xb7, 0x18, 0x76, 0x59, 0x8f, 0x3e, 0x11, 0xba, 0xc9, 0x09, 0xb9, 0x14, 0xfd, 0x44, 0x3c, - 0x8c, 0xf7, 0x44, 0xbc, 0x3e, 0x7f, 0xce, 0xea, 0x27, 0xb8, 0xaa, 0x10, 0x9d, 0x72, 0xec, 0x39, - 0xf3, 0xa0, 0xa1, 0x73, 0xe6, 0x85, 0xd1, 0xa7, 0x50, 0xf6, 0xa0, 0xa4, 0x3c, 0x11, 0x51, 0x99, - 0x8a, 0x5e, 0x9e, 0x22, 0xea, 0x22, 0x99, 0x66, 0xd9, 0x0a, 0x46, 0x51, 0x0b, 0x4a, 0x1e, 0x70, - 0xdb, 0xa2, 0xd3, 0x9d, 0xa3, 0x8a, 0x97, 0xa6, 0x28, 0x32, 0x20, 0x13, 0x2c, 0x59, 0x81, 0xe0, - 0xfc, 0x5d, 0xf8, 0xb7, 0xb8, 0x1a, 0xf1, 0xe5, 0x37, 0xc7, 0xca, 0xef, 0x79, 0xbe, 0xfc, 0x4a, - 0x7c, 0xf9, 0x6e, 0xc0, 0xbf, 0x84, 0xb5, 0x27, 0x4e, 0x24, 0xc1, 0x8b, 0x7c, 0x00, 0xc5, 0x40, - 0xc9, 0xe1, 0xc9, 0xb3, 0x02, 0xf2, 0xec, 0x24, 0x79, 0xbc, 0xb5, 0x04, 0x6f, 0x8f, 0x00, 0x39, - 0xc9, 0x93, 0x6f, 0x43, 0x29, 0x58, 0x6f, 0x78, 0x76, 0x51, 0xc0, 0x2e, 0x0a, 0xd8, 0xe2, 0xb1, - 0x53, 0x02, 0x76, 0x2a, 0xc4, 0xee, 0x44, 0x8e, 0x3d, 0x27, 0x60, 0xcf, 0x09, 0xd8, 0xe2, 0xb1, - 0x91, 0x80, 0x8d, 0x78, 0xf6, 0x87, 0x50, 0x0e, 0x95, 0x18, 0x9e, 0x9e, 0x11, 0xd0, 0x33, 0x3c, - 0xfd, 0x23, 0x7c, 0x68, 0x7a, 0xd1, 0xfc, 0xb2, 0x80, 0x5f, 0x16, 0x0d, 0x2f, 0xce, 0x3e, 0x2d, - 0xa0, 0xa7, 0x85, 0xc3, 0x8b, 0xf9, 0xb2, 0x80, 0x2f, 0xf3, 0xfc, 0x35, 0x28, 0xf0, 0xd5, 0x84, - 0xe7, 0x66, 0x05, 0xdc, 0x6c, 0x78, 0xdd, 0x03, 0xc5, 0x24, 0x6e, 0xa7, 0xe7, 0x22, 0x8e, 0x4b, - 0xa0, 0x84, 0xc4, 0x89, 0x14, 0x78, 0x91, 0x87, 0x70, 0x5e, 0x54, 0x32, 0x04, 0x1a, 0xcb, 0xbc, - 0x46, 0x89, 0x78, 0xc4, 0xb1, 0xd9, 0x23, 0xac, 0x80, 0x71, 0x9a, 0x7f, 0x04, 0xe7, 0x04, 0x85, - 0x43, 0x20, 0x5b, 0x0b, 0xba, 0xb1, 0x0a, 0x27, 0x4b, 0x8b, 0x00, 0x96, 0xd8, 0x31, 0xf0, 0xe6, - 0xe4, 0x5d, 0xd9, 0x0f, 0xe7, 0xa0, 0xe4, 0x96, 0xa7, 0x07, 0xe6, 0x91, 0x6a, 0x62, 0x77, 0xf5, - 0x45, 0xb4, 0x77, 0xba, 0x3e, 0x59, 0xd4, 0x5c, 0xd6, 0x5b, 0x58, 0xa8, 0x47, 0x91, 0x16, 0x6a, - 0x25, 0x5e, 0x3e, 0xce, 0x49, 0x35, 0x26, 0x9c, 0xd4, 0xe5, 0x68, 0xd1, 0x28, 0x43, 0xd5, 0x98, - 0x30, 0x54, 0xd3, 0x45, 0x84, 0xbe, 0xaa, 0x39, 0xe9, 0xab, 0x96, 0xa3, 0x55, 0xa2, 0xed, 0x55, - 0x73, 0xd2, 0x5e, 0xc5, 0xe8, 0x88, 0x5d, 0x56, 0x73, 0xd2, 0x65, 0x4d, 0xd1, 0x89, 0x36, 0x5b, - 0xcd, 0x49, 0xb3, 0x15, 0xa3, 0x23, 0xf6, 0x5c, 0x9b, 0x02, 0xcf, 0x75, 0x25, 0x5a, 0x68, 0x9a, - 0xf5, 0xda, 0x12, 0x59, 0xaf, 0xab, 0x53, 0x92, 0x9a, 0xea, 0xc0, 0x36, 0x05, 0x0e, 0x2c, 0x2e, - 0xb1, 0x08, 0x23, 0xb6, 0x25, 0x32, 0x62, 0xb1, 0x89, 0x45, 0xf9, 0xb1, 0x8f, 0xc3, 0x7e, 0xec, - 0x52, 0xb4, 0x92, 0xd8, 0x96, 0x35, 0x27, 0x6d, 0xd9, 0x72, 0xdc, 0x99, 0x13, 0xb9, 0xb3, 0x47, - 0x91, 0xee, 0xec, 0x2f, 0x1c, 0xe1, 0x38, 0x93, 0xf6, 0x59, 0x94, 0x49, 0xab, 0xc5, 0x6b, 0x4f, - 0xf7, 0x6a, 0x7b, 0x11, 0x5e, 0xed, 0x5a, 0xbc, 0xf0, 0x99, 0x65, 0x3b, 0xb3, 0x6c, 0x67, 0x96, - 0xed, 0xcc, 0xb2, 0xfd, 0xf3, 0x96, 0x6d, 0x2d, 0xf5, 0xf5, 0xb7, 0x8b, 0x52, 0xf5, 0xd7, 0x24, - 0x94, 0xdc, 0x2f, 0x83, 0xfb, 0x9a, 0x3d, 0x20, 0xe5, 0x6d, 0x1b, 0x0a, 0xe4, 0x63, 0xee, 0xc1, - 0x48, 0x39, 0x3e, 0xc6, 0x44, 0xd7, 0xb3, 0x5d, 0x9d, 0xfc, 0x94, 0xe8, 0x12, 0x6a, 0x2d, 0x8c, - 0xde, 0x66, 0x60, 0xf7, 0x75, 0xa3, 0x8f, 0x23, 0xe8, 0x13, 0xc8, 0x8f, 0xac, 0xbe, 0xaf, 0x96, - 0x98, 0x78, 0x11, 0x86, 0xd4, 0xd8, 0x4c, 0xc7, 0x62, 0x30, 0xf2, 0x03, 0x24, 0xb5, 0x2e, 0x7e, - 0x4a, 0xbe, 0x58, 0x32, 0x2e, 0x35, 0xf2, 0x4c, 0x83, 0xa9, 0x75, 0xc7, 0x11, 0xb2, 0x6d, 0xc3, - 0xb9, 0xc7, 0x55, 0xba, 0xc0, 0xe6, 0xd9, 0x87, 0x72, 0x28, 0x5b, 0xc1, 0x99, 0xff, 0x1b, 0xcf, - 0x86, 0x24, 0x16, 0xce, 0x3c, 0xee, 0x4c, 0xf0, 0x1b, 0xb2, 0xfa, 0x5f, 0x28, 0x06, 0xb4, 0x51, - 0x01, 0xa4, 0x1e, 0xa5, 0x4a, 0x6d, 0xa9, 0x57, 0xfd, 0x46, 0x82, 0x3c, 0xa9, 0x93, 0xff, 0x5f, - 0xbd, 0xb5, 0xa3, 0x68, 0x26, 0xba, 0x07, 0xa9, 0xa1, 0xda, 0xb3, 0x29, 0xa0, 0x50, 0xbf, 0x79, - 0xfa, 0x6c, 0x71, 0xe6, 0xf7, 0x67, 0x8b, 0xff, 0x8b, 0xf9, 0x97, 0xc0, 0xb1, 0x6c, 0x63, 0x54, - 0x73, 0x75, 0xda, 0x54, 0x01, 0x3b, 0x83, 0x59, 0x93, 0x7c, 0xb4, 0x67, 0x29, 0xd5, 0xaf, 0xbf, - 0xb5, 0x0c, 0xa3, 0x57, 0x4f, 0x25, 0x98, 0x6b, 0x18, 0xba, 0xad, 0x68, 0xba, 0xc5, 0xbe, 0xd6, - 0x92, 0x37, 0xe4, 0x53, 0x09, 0x72, 0x7e, 0x0f, 0x75, 0xa1, 0xe4, 0x77, 0xe8, 0x47, 0x70, 0x77, - 0xa7, 0xae, 0x71, 0x2b, 0x3c, 0xa1, 0x51, 0x13, 0x5c, 0x51, 0xb2, 0xfb, 0x4e, 0xd6, 0x03, 0xc1, - 0xf9, 0x75, 0x38, 0x27, 0x80, 0xbd, 0xcd, 0x0b, 0xf9, 0xea, 0x05, 0xc8, 0xb8, 0x47, 0x1b, 0xa5, - 0x21, 0xb1, 0xbd, 0x2e, 0xcf, 0xd0, 0xdf, 0xba, 0x2c, 0xd1, 0xdf, 0x86, 0x9c, 0xa8, 0x6f, 0x9d, - 0xbe, 0x58, 0x98, 0xf9, 0x05, 0xb7, 0xdf, 0x70, 0x7b, 0xfe, 0x62, 0x41, 0x7a, 0x85, 0xdb, 0x6b, - 0xdc, 0xde, 0xe0, 0xf6, 0xe4, 0xe5, 0x82, 0xf4, 0x1d, 0x6e, 0xdf, 0xe3, 0xf6, 0x23, 0x6e, 0x3f, - 0xe1, 0x76, 0xfa, 0x12, 0xe3, 0x71, 0x7b, 0x8e, 0xaf, 0x5f, 0xe1, 0xdf, 0xd7, 0xf8, 0xf7, 0x0d, - 0xfe, 0x7d, 0xf2, 0xc7, 0x82, 0xd4, 0x4d, 0xb3, 0xb9, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x21, - 0xd6, 0xef, 0xbc, 0x4a, 0x1a, 0x00, 0x00, + // 1613 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, + 0x14, 0xc7, 0x75, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x2f, 0x69, 0xa1, 0x1a, 0x28, 0x2d, 0x2b, 0x40, + 0xa2, 0x04, 0x8d, 0x9c, 0x3a, 0x49, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, 0xe2, + 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x24, 0x22, 0x12, 0x69, 0x90, 0x54, 0x50, 0x6f, + 0xf9, 0x33, 0xba, 0x15, 0xdd, 0x3a, 0x16, 0x19, 0x8a, 0x8e, 0xed, 0xe6, 0x31, 0x40, 0x97, 0xa2, + 0x43, 0x10, 0xab, 0x4b, 0xc6, 0x8c, 0x19, 0x8b, 0xbb, 0xa3, 0xa4, 0x13, 0x79, 0x14, 0x9b, 0x2e, + 0x5d, 0x3c, 0x89, 0xf7, 0xfc, 0xbe, 0x9f, 0x7b, 0x3c, 0xde, 0x3d, 0x7e, 0x41, 0x43, 0xe9, 0xc0, + 0xe8, 0xb7, 0x0c, 0x6b, 0x79, 0xa0, 0x5b, 0x4a, 0x5b, 0x1d, 0xe8, 0x7d, 0xc5, 0xb4, 0xba, 0x4a, + 0x4f, 0x35, 0x97, 0xed, 0xae, 0x7a, 0x64, 0x1a, 0xb6, 0x71, 0xbd, 0x4c, 0x7f, 0x70, 0x6a, 0x1c, + 0x58, 0xb8, 0xda, 0xd1, 0xec, 0xee, 0xa0, 0x55, 0x3e, 0x30, 0xfa, 0xcb, 0x1d, 0xa3, 0x63, 0x2c, + 0xd3, 0x78, 0x6b, 0xd0, 0xa6, 0x23, 0x3a, 0xa0, 0x57, 0x4c, 0xb9, 0xf0, 0xb1, 0x6f, 0xba, 0xad, + 0x5a, 0xf6, 0xb2, 0x53, 0x41, 0xcb, 0xb0, 0xbb, 0x64, 0x52, 0x12, 0x63, 0xc2, 0xe2, 0xef, 0x31, + 0x48, 0x6c, 0xa9, 0x96, 0xa5, 0x74, 0x54, 0x8c, 0x21, 0xaa, 0x2b, 0x7d, 0x35, 0x8f, 0x0a, 0xa8, + 0x94, 0x6a, 0xd0, 0x6b, 0x7c, 0x13, 0x92, 0x5d, 0xad, 0xa7, 0x98, 0x9a, 0x7d, 0x9c, 0x0f, 0x17, + 0x50, 0x29, 0xb7, 0xf2, 0x5e, 0x79, 0x52, 0xb6, 0xa3, 0x2c, 0xdf, 0x1b, 0xf4, 0x8d, 0x81, 0xd9, + 0x18, 0xa7, 0xe2, 0x02, 0x64, 0xba, 0xaa, 0xd6, 0xe9, 0xda, 0xfb, 0x9a, 0xbe, 0x7f, 0xd0, 0xcf, + 0x47, 0x0a, 0xa8, 0x94, 0x6d, 0x00, 0x8b, 0x6d, 0xe8, 0xd5, 0x3e, 0x99, 0xec, 0x50, 0xb1, 0x95, + 0x7c, 0xb4, 0x80, 0x4a, 0x99, 0x06, 0xbd, 0xc6, 0x4b, 0x90, 0x31, 0x55, 0x6b, 0xd0, 0xb3, 0xf7, + 0x0f, 0x8c, 0x81, 0x6e, 0xe7, 0x13, 0x05, 0x54, 0x8a, 0x34, 0xd2, 0x2c, 0x56, 0x25, 0x21, 0x7c, + 0x01, 0xb2, 0xb6, 0x39, 0x50, 0xf7, 0xad, 0x03, 0xc3, 0xb6, 0xfa, 0x8a, 0x9e, 0x4f, 0x16, 0x50, + 0x29, 0xd9, 0xc8, 0x90, 0x60, 0xd3, 0x89, 0xe1, 0xf3, 0x10, 0xb3, 0x0e, 0x0c, 0x53, 0xcd, 0xa7, + 0x0a, 0xa8, 0x14, 0x6e, 0xb0, 0x01, 0x96, 0x20, 0xf2, 0x58, 0x3d, 0xce, 0xc7, 0x0a, 0x91, 0x52, + 0xb4, 0x41, 0x2e, 0xf1, 0x65, 0x88, 0xeb, 0xaa, 0x65, 0xab, 0x87, 0xf9, 0x78, 0x01, 0x95, 0xd2, + 0x2b, 0xf3, 0xdc, 0xad, 0xd5, 0xe9, 0x1f, 0x1a, 0x4e, 0x02, 0xfe, 0x04, 0x12, 0xb6, 0x6a, 0x9a, + 0x8a, 0xa6, 0xe7, 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, 0x05, 0xcb, 0xb0, 0xc3, 0x32, 0xd6, 0x75, + 0xdb, 0x3c, 0x6e, 0x8c, 0xf2, 0xf1, 0x4d, 0xc8, 0xd0, 0xbc, 0x95, 0xfd, 0xb6, 0xa6, 0xf6, 0x0e, + 0xf3, 0x69, 0x3a, 0x17, 0x2e, 0xd3, 0xa7, 0x50, 0xd7, 0xf4, 0x07, 0x47, 0x76, 0x5d, 0xb1, 0xb5, + 0x27, 0x6a, 0x23, 0xcd, 0xf2, 0x6a, 0x24, 0x0d, 0xd7, 0xc6, 0xb2, 0x27, 0x4a, 0x6f, 0xa0, 0xe6, + 0xb3, 0x74, 0xda, 0x0b, 0x82, 0x69, 0xb7, 0x69, 0xda, 0x43, 0x92, 0xc5, 0xa6, 0x76, 0x38, 0x34, + 0xb2, 0xb0, 0x05, 0x19, 0xbe, 0xae, 0xd1, 0x32, 0x20, 0xba, 0xb6, 0x74, 0x19, 0x2e, 0x41, 0x8c, + 0x4d, 0x11, 0xf6, 0x5b, 0x05, 0xf6, 0xf7, 0xd5, 0xf0, 0x2d, 0xb4, 0xb0, 0x0d, 0x92, 0x7b, 0x3e, + 0x01, 0xf2, 0xe2, 0x34, 0x52, 0xe2, 0x6f, 0x76, 0x5d, 0x1f, 0xf4, 0x39, 0x62, 0xf1, 0x0e, 0xc4, + 0xd9, 0xfe, 0xc1, 0x69, 0x48, 0xec, 0xd6, 0xef, 0xd7, 0x1f, 0xec, 0xd5, 0xa5, 0x10, 0x4e, 0x42, + 0x74, 0x7b, 0xb7, 0xde, 0x94, 0x10, 0xce, 0x42, 0xaa, 0xb9, 0xb9, 0xb6, 0xdd, 0xdc, 0xd9, 0xa8, + 0xde, 0x97, 0xc2, 0x78, 0x0e, 0xd2, 0x95, 0x8d, 0xcd, 0xcd, 0xfd, 0xca, 0xda, 0xc6, 0xe6, 0xfa, + 0x37, 0x52, 0xa4, 0x28, 0x43, 0x9c, 0xd5, 0x49, 0x1e, 0x7c, 0x6b, 0xa0, 0xeb, 0xc7, 0xce, 0x16, + 0x66, 0x83, 0xe2, 0x33, 0x0c, 0x89, 0xb5, 0x5e, 0x6f, 0x4b, 0x39, 0xb2, 0xf0, 0x1e, 0xcc, 0x37, + 0x6d, 0x53, 0xd3, 0x3b, 0x3b, 0xc6, 0x5d, 0x63, 0xd0, 0xea, 0xa9, 0x5b, 0xca, 0x51, 0x1e, 0xd1, + 0xa5, 0xbd, 0xcc, 0xdd, 0xb7, 0x93, 0x5e, 0xf6, 0xe4, 0xb2, 0x05, 0xf6, 0x32, 0xf0, 0x0e, 0x48, + 0xa3, 0x60, 0xad, 0x67, 0x28, 0x36, 0xe1, 0x86, 0x29, 0xb7, 0x34, 0x83, 0x3b, 0x4a, 0x65, 0x58, + 0x0f, 0x01, 0xdf, 0x86, 0xe4, 0x86, 0x6e, 0x5f, 0x5f, 0x21, 0xb4, 0x08, 0xa5, 0x15, 0x04, 0xb4, + 0x51, 0x0a, 0xa3, 0x8c, 0x15, 0x8e, 0xfa, 0xa3, 0x1b, 0x44, 0x1d, 0x9d, 0xa5, 0xa6, 0x29, 0x13, + 0x35, 0x1d, 0xe2, 0x3b, 0x90, 0xda, 0xd5, 0x46, 0x93, 0xc7, 0xa8, 0x7c, 0x49, 0x20, 0x1f, 0xe7, + 0x30, 0xfd, 0x44, 0x33, 0x02, 0xb0, 0xf9, 0xe3, 0x33, 0x01, 0x5c, 0x01, 0x13, 0x0d, 0x01, 0x34, + 0xc7, 0x15, 0x24, 0x7c, 0x01, 0x4d, 0x57, 0x05, 0x4d, 0xbe, 0x82, 0xe6, 0xb8, 0x82, 0xe4, 0x4c, + 0x00, 0x5f, 0xc1, 0x78, 0x8c, 0x2b, 0x00, 0x35, 0xed, 0x3b, 0xf5, 0x90, 0x95, 0x90, 0xa2, 0x84, + 0xa2, 0x80, 0x30, 0x49, 0x62, 0x08, 0x4e, 0x85, 0xd7, 0x21, 0xdd, 0x6c, 0x4f, 0x20, 0xe0, 0x39, + 0xc7, 0xe3, 0x32, 0xda, 0x2e, 0x0a, 0xaf, 0x1b, 0x97, 0xc2, 0x6e, 0x26, 0x3d, 0xbb, 0x14, 0xee, + 0x6e, 0x38, 0xd5, 0xa4, 0x14, 0x06, 0xc9, 0x04, 0x94, 0xc2, 0x51, 0x78, 0x1d, 0x69, 0x86, 0x15, + 0xc3, 0x20, 0x99, 0x4e, 0x57, 0x5a, 0x14, 0x20, 0x9c, 0x0c, 0xa7, 0x19, 0x3a, 0x23, 0xfa, 0x44, + 0xe8, 0x26, 0x27, 0xe2, 0x9c, 0xff, 0x13, 0x19, 0xe5, 0x8c, 0x9e, 0xc8, 0x68, 0xcc, 0x9f, 0xb3, + 0xca, 0xb1, 0xad, 0x5a, 0x84, 0x33, 0x17, 0x78, 0xce, 0x46, 0xa9, 0xae, 0x73, 0x36, 0x0a, 0xe3, + 0xaf, 0x60, 0x6e, 0x14, 0x23, 0xed, 0x89, 0x40, 0x25, 0x0a, 0xbd, 0x34, 0x03, 0xea, 0x64, 0x32, + 0xa6, 0x5b, 0x8f, 0xeb, 0x90, 0x1b, 0x85, 0xb6, 0x2c, 0x7a, 0xbb, 0xf3, 0x94, 0x78, 0x71, 0x06, + 0x91, 0x25, 0x32, 0xa0, 0x4b, 0xbd, 0x70, 0x17, 0xde, 0x15, 0x77, 0x23, 0xbe, 0xfd, 0xa6, 0x58, + 0xfb, 0x3d, 0xcf, 0xb7, 0x5f, 0xc4, 0xb7, 0xef, 0x2a, 0xbc, 0x23, 0xec, 0x3d, 0x41, 0x90, 0x30, + 0x0f, 0xf9, 0x14, 0xb2, 0x53, 0x2d, 0x87, 0x17, 0xc7, 0x04, 0xe2, 0x98, 0x57, 0x3c, 0xd9, 0x5a, + 0x82, 0xb7, 0xc7, 0x94, 0x38, 0xc2, 0x8b, 0x6f, 0x43, 0x6e, 0xba, 0xdf, 0xf0, 0xea, 0xac, 0x40, + 0x9d, 0x15, 0xa8, 0xc5, 0x73, 0x47, 0x05, 0xea, 0xa8, 0x4b, 0xdd, 0xf4, 0x9d, 0x7b, 0x5e, 0xa0, + 0x9e, 0x17, 0xa8, 0xc5, 0x73, 0x63, 0x81, 0x1a, 0xf3, 0xea, 0xcf, 0x60, 0xce, 0xd5, 0x62, 0x78, + 0x79, 0x42, 0x20, 0x4f, 0xf0, 0xf2, 0xcf, 0x41, 0x72, 0x37, 0x17, 0x5e, 0x3f, 0x27, 0xd0, 0xcf, + 0x89, 0xa6, 0x17, 0x57, 0x1f, 0x17, 0xc8, 0xe3, 0xc2, 0xe9, 0xc5, 0x7a, 0x49, 0xa0, 0x97, 0x78, + 0xfd, 0x2a, 0x64, 0xf8, 0x6e, 0xc2, 0x6b, 0x93, 0x02, 0x6d, 0xd2, 0xbd, 0xee, 0x53, 0xcd, 0x24, + 0x68, 0xa7, 0xa7, 0x7c, 0x8e, 0xcb, 0x54, 0x0b, 0x09, 0x82, 0x64, 0x78, 0xc8, 0x43, 0x38, 0x2f, + 0x6a, 0x19, 0x02, 0x46, 0x89, 0x67, 0xe4, 0x88, 0x47, 0x9c, 0x98, 0x3d, 0xa2, 0x9a, 0x32, 0x4e, + 0x0b, 0x8f, 0xe0, 0x9c, 0xa0, 0x71, 0x08, 0xb0, 0xe5, 0x69, 0x37, 0x96, 0xe7, 0xb0, 0xb4, 0x09, + 0x68, 0x7a, 0x67, 0xdb, 0xd0, 0x74, 0x9b, 0x77, 0x65, 0xbf, 0x9c, 0x83, 0x9c, 0xd3, 0x9e, 0x1e, + 0x98, 0x87, 0xaa, 0xa9, 0x1e, 0xe2, 0x6f, 0xfd, 0xbd, 0xd3, 0x35, 0x6f, 0x53, 0x73, 0x54, 0x6f, + 0x61, 0xa1, 0x1e, 0xf9, 0x5a, 0xa8, 0xe5, 0x60, 0x7c, 0x90, 0x93, 0xaa, 0x7a, 0x9c, 0xd4, 0x25, + 0x7f, 0xa8, 0x9f, 0xa1, 0xaa, 0x7a, 0x0c, 0xd5, 0x6c, 0x88, 0xd0, 0x57, 0xd5, 0xbc, 0xbe, 0xaa, + 0xe4, 0x4f, 0xf1, 0xb7, 0x57, 0x35, 0xaf, 0xbd, 0x0a, 0xe0, 0x88, 0x5d, 0x56, 0xcd, 0xeb, 0xb2, + 0x66, 0x70, 0xfc, 0xcd, 0x56, 0xcd, 0x6b, 0xb6, 0x02, 0x38, 0x62, 0xcf, 0xb5, 0x21, 0xf0, 0x5c, + 0x97, 0xfd, 0x41, 0xb3, 0xac, 0xd7, 0xa6, 0xc8, 0x7a, 0x5d, 0x99, 0x51, 0xd4, 0x4c, 0x07, 0xb6, + 0x21, 0x70, 0x60, 0x41, 0x85, 0xf9, 0x18, 0xb1, 0x4d, 0x91, 0x11, 0x0b, 0x2c, 0xcc, 0xcf, 0x8f, + 0x7d, 0xe1, 0xf6, 0x63, 0x17, 0xfd, 0x49, 0x62, 0x5b, 0x56, 0xf3, 0xda, 0xb2, 0x52, 0xd0, 0x99, + 0x13, 0xb9, 0xb3, 0x47, 0xbe, 0xee, 0xec, 0x5f, 0x1c, 0xe1, 0x20, 0x93, 0xf6, 0xb5, 0x9f, 0x49, + 0x2b, 0x07, 0xb3, 0x67, 0x7b, 0xb5, 0x5d, 0x1f, 0xaf, 0x76, 0x35, 0x18, 0x7c, 0x66, 0xd9, 0xce, + 0x2c, 0xdb, 0x99, 0x65, 0x3b, 0xb3, 0x6c, 0xff, 0xbf, 0x65, 0x5b, 0x8d, 0x7e, 0xff, 0xe3, 0x22, + 0x2a, 0xfe, 0x11, 0x81, 0x9c, 0xf3, 0x65, 0x70, 0x4f, 0xb3, 0xbb, 0xa4, 0xbd, 0x6d, 0x41, 0x46, + 0x57, 0xfa, 0xea, 0x7e, 0x5f, 0x39, 0x3a, 0xd2, 0xf4, 0x8e, 0xe3, 0xd9, 0xae, 0x78, 0x3f, 0x25, + 0x3a, 0x82, 0x72, 0x5d, 0xe9, 0x93, 0x5e, 0x45, 0x92, 0x9d, 0xd7, 0x8d, 0x3e, 0x89, 0xe0, 0x2f, + 0x21, 0xdd, 0xb7, 0x3a, 0x63, 0x5a, 0xd8, 0xf3, 0x22, 0x74, 0xd1, 0xd8, 0x9d, 0x4e, 0x60, 0xd0, + 0x1f, 0x07, 0x48, 0x69, 0xad, 0x63, 0x7b, 0x52, 0x5a, 0x24, 0xa8, 0x34, 0xf2, 0x4c, 0xa7, 0x4b, + 0x6b, 0x4d, 0x22, 0x64, 0xdb, 0xba, 0x6b, 0x0f, 0xea, 0x74, 0x53, 0x9b, 0x67, 0x0f, 0xe6, 0x5c, + 0xd5, 0x0a, 0xce, 0xfc, 0x7f, 0x78, 0x36, 0xa4, 0x30, 0x77, 0xe5, 0x41, 0x67, 0x82, 0xdf, 0x90, + 0xc5, 0xf7, 0x21, 0x3b, 0xc5, 0xc6, 0x19, 0x40, 0x6d, 0x2a, 0x45, 0x0d, 0xd4, 0x2e, 0xfe, 0x80, + 0x20, 0x4d, 0xfa, 0xe4, 0x87, 0x2b, 0xb7, 0xb6, 0x15, 0xcd, 0xc4, 0xf7, 0x20, 0xda, 0x53, 0xdb, + 0x36, 0x4d, 0xc8, 0x54, 0x6e, 0x9c, 0xbc, 0x58, 0x0c, 0xfd, 0xf5, 0x62, 0xf1, 0x83, 0x80, 0xff, + 0x12, 0x0c, 0x2c, 0xdb, 0xe8, 0x97, 0x1d, 0x4e, 0x83, 0x12, 0x70, 0x0d, 0x62, 0xa6, 0xd6, 0xe9, + 0xda, 0xac, 0xa4, 0xca, 0xb5, 0xb7, 0xc6, 0x30, 0x79, 0xf1, 0x04, 0xc1, 0x7c, 0xd5, 0xd0, 0x6d, + 0x45, 0xd3, 0x2d, 0xf6, 0xb5, 0x96, 0xbc, 0x21, 0x9f, 0x21, 0x48, 0x8d, 0x47, 0xb8, 0x05, 0xb9, + 0xf1, 0x80, 0x7e, 0x04, 0x77, 0x76, 0xea, 0x2a, 0xb7, 0xc2, 0x1e, 0x46, 0x59, 0x70, 0x45, 0xc5, + 0xce, 0x3b, 0x79, 0x3a, 0xb8, 0xb0, 0x06, 0xe7, 0x04, 0x69, 0x6f, 0xf3, 0x42, 0x2e, 0x2e, 0x41, + 0xaa, 0x6e, 0xd8, 0xdb, 0xca, 0xc1, 0x63, 0xfa, 0xc9, 0x79, 0xf2, 0x5f, 0x85, 0x4a, 0x58, 0x0a, + 0x51, 0xf1, 0x95, 0x25, 0x48, 0x38, 0xa7, 0x1f, 0xc7, 0x21, 0xbc, 0xb5, 0x26, 0x85, 0xe8, 0x6f, + 0x45, 0x42, 0xf4, 0xb7, 0x2a, 0x85, 0x2b, 0x9b, 0x27, 0xa7, 0x72, 0xe8, 0xf9, 0xa9, 0x1c, 0xfa, + 0xf3, 0x54, 0x0e, 0xbd, 0x3c, 0x95, 0xd1, 0xab, 0x53, 0x19, 0xbd, 0x3e, 0x95, 0xd1, 0x9b, 0x53, + 0x19, 0x3d, 0x1d, 0xca, 0xe8, 0xa7, 0xa1, 0x8c, 0x7e, 0x1e, 0xca, 0xe8, 0xd7, 0xa1, 0x8c, 0x7e, + 0x1b, 0xca, 0xe8, 0x64, 0x28, 0x87, 0x9e, 0x0f, 0xe5, 0xd0, 0xcb, 0xa1, 0x8c, 0x5e, 0x0d, 0xe5, + 0xd0, 0xeb, 0xa1, 0x8c, 0xde, 0x0c, 0xe5, 0xd0, 0xd3, 0xbf, 0x65, 0xd4, 0x8a, 0xb3, 0xe5, 0xf9, + 0x27, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x26, 0x12, 0x07, 0x6d, 0x1a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto index 07df87ba..1f6e6b0c 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go index c17ea875..ff954ac5 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go @@ -17,12 +17,14 @@ It has these top-level messages: FloatingPoint Uint128Pair ContainsNestedMap + NotPacked */ package theproto3 import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -38,21 +40,25 @@ var _ = fmt.Errorf var _ = math.Inf func TestMessageProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -80,11 +86,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -94,11 +100,11 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Message{} b.ResetTimer() @@ -112,21 +118,25 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { } func TestNestedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -154,11 +164,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -168,11 +178,11 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nested{} b.ResetTimer() @@ -186,21 +196,25 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { } func TestAllMapsProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -228,11 +242,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -242,11 +256,11 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMaps{} b.ResetTimer() @@ -260,21 +274,25 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { } func TestAllMapsOrderedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -302,11 +320,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -316,11 +334,11 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AllMapsOrdered{} b.ResetTimer() @@ -334,21 +352,25 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { } func TestMessageWithMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -376,11 +398,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -390,11 +412,11 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MessageWithMap{} b.ResetTimer() @@ -408,21 +430,25 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { } func TestFloatingPointProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -450,11 +476,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -464,11 +490,11 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &FloatingPoint{} b.ResetTimer() @@ -482,21 +508,25 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { } func TestUint128PairProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -524,11 +554,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -538,11 +568,11 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Uint128Pair{} b.ResetTimer() @@ -556,21 +586,25 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { } func TestContainsNestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -598,11 +632,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -612,11 +646,11 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap{} b.ResetTimer() @@ -630,21 +664,25 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { } func TestContainsNestedMap_NestedMapProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -672,11 +710,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -686,11 +724,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ContainsNestedMap_NestedMap{} b.ResetTimer() @@ -703,6 +741,84 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNotPackedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NotPacked{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -892,13 +1008,34 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } +func TestNotPackedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NotPacked{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -913,9 +1050,9 @@ func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -930,9 +1067,9 @@ func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -947,9 +1084,9 @@ func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -964,9 +1101,9 @@ func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -981,9 +1118,9 @@ func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -998,9 +1135,9 @@ func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1015,9 +1152,9 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1032,9 +1169,9 @@ func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1049,9 +1186,9 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1066,9 +1203,9 @@ func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1083,9 +1220,9 @@ func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1100,9 +1237,9 @@ func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1117,9 +1254,9 @@ func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1134,9 +1271,9 @@ func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1151,9 +1288,9 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,9 +1305,9 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,9 +1322,43 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestNotPackedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1202,14 +1373,18 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1217,14 +1392,18 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1232,14 +1411,18 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1247,14 +1430,18 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1262,14 +1449,18 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1277,14 +1468,18 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1292,14 +1487,18 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1307,14 +1506,18 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1322,14 +1525,37 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNotPackedVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NotPacked{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1408,6 +1634,14 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNotPackedFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestMessageGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1525,18 +1759,31 @@ func TestContainsNestedMap_NestedMapGoString(t *testing.T) { panic(err) } } +func TestNotPackedGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1566,13 +1813,13 @@ func TestNestedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNested(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1602,13 +1849,13 @@ func TestAllMapsSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1638,13 +1885,13 @@ func TestAllMapsOrderedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1674,13 +1921,13 @@ func TestMessageWithMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1710,13 +1957,13 @@ func TestFloatingPointSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1746,13 +1993,13 @@ func TestUint128PairSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1782,13 +2029,13 @@ func TestContainsNestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1818,13 +2065,13 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1849,6 +2096,42 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNotPackedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNotPacked(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNotPackedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NotPacked, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNotPacked(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestMessageStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) @@ -1930,5 +2213,14 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNotPackedStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNotPacked(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} //These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/footer.proto b/vendor/github.com/gogo/protobuf/test/theproto3/footer.proto index 04ea4186..abf45e72 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/footer.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/footer.proto @@ -18,4 +18,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/header.proto b/vendor/github.com/gogo/protobuf/test/theproto3/header.proto index b5435da1..314e48f2 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/header.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/header.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/proto3_test.go.in b/vendor/github.com/gogo/protobuf/test/theproto3/proto3_test.go.in index b41f1785..bb7eb6bb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/proto3_test.go.in +++ b/vendor/github.com/gogo/protobuf/test/theproto3/proto3_test.go.in @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -35,8 +37,70 @@ import ( func TestNilMaps(t *testing.T) { m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - if _, err := proto.Marshal(m); err == nil { - t.Fatalf("expected error") + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToMsgMap["a"]; !ok { + t.Error("element not in map") + } else if v != nil { + t.Errorf("element should be nil, but its %v", v) + } +} + +func TestNilMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["a"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) + } +} + +func TestEmptyMapsBytes(t *testing.T) { + m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} + data, err := proto.Marshal(m) + if err != nil { + t.Fatal(err) + } + size := m.Size() + protoSize := proto.Size(m) + marshaledSize := len(data) + if size != protoSize || marshaledSize != protoSize { + t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) + } + m2 := &AllMaps{} + if err := proto.Unmarshal(data, m2); err != nil { + t.Fatal(err) + } + if v, ok := m2.StringToBytesMap["b"]; !ok { + t.Error("element not in map") + } else if len(v) != 0 { + t.Errorf("element should be empty, but its %v", v) } } @@ -59,3 +123,37 @@ func TestCustomTypeMarshalUnmarshal(t *testing.T) { } } } + +func TestNotPackedToPacked(t *testing.T) { + input := []uint64{1, 10e9} + notpacked := &NotPacked{Key: input} + if data, err := proto.Marshal(notpacked); err != nil { + t.Fatal(err) + } else { + packed := &Message{} + if err := proto.Unmarshal(data, packed); err != nil { + t.Fatal(err) + } + output := packed.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} + +func TestPackedToNotPacked(t *testing.T) { + input := []uint64{1, 10e9} + packed := &Message{Key: input} + if data, err := proto.Marshal(packed); err != nil { + t.Fatal(err) + } else { + notpacked := &NotPacked{} + if err := proto.Unmarshal(data, notpacked); err != nil { + t.Fatal(err) + } + output := notpacked.Key + if !reflect.DeepEqual(input, output) { + t.Fatalf("expected %#v, got %#v", input, output) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/theproto3.proto index a3b3b387..0f4525cd 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/theproto3.proto +++ b/vendor/github.com/gogo/protobuf/test/theproto3/theproto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Go support for Protocol Buffers - Google's data interchange format // @@ -159,4 +161,8 @@ message ContainsNestedMap { message NestedMap { map NestedMapField = 1; } +} + +message NotPacked { + repeated uint64 key = 5 [packed=false]; } \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/thetest.pb.go index e651cce3..ebc55861 100644 --- a/vendor/github.com/gogo/protobuf/test/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/thetest.pb.go @@ -67,6 +67,12 @@ UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -80,9 +86,9 @@ import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/ import bytes "bytes" import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import compress_gzip "compress/gzip" import io_ioutil "io/ioutil" @@ -99,7 +105,9 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type TheTestEnum int32 @@ -278,21 +286,21 @@ func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { } type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -301,21 +309,21 @@ func (*NidOptNative) ProtoMessage() {} func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -324,21 +332,21 @@ func (*NinOptNative) ProtoMessage() {} func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -347,21 +355,21 @@ func (*NidRepNative) ProtoMessage() {} func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -370,19 +378,19 @@ func (*NinRepNative) ProtoMessage() {} func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -391,19 +399,19 @@ func (*NidRepPackedNative) ProtoMessage() {} func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8,json=field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9,json=field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10,json=field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11,json=field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12,json=field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13,json=field13" json:"Field13,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` + Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` + Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` + Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` + Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` + Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` + Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` + Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` + Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -412,16 +420,16 @@ func (*NinRepPackedNative) ProtoMessage() {} func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` + Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` + Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` + Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -430,16 +438,16 @@ func (*NidOptStruct) ProtoMessage() {} func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -448,16 +456,16 @@ func (*NinOptStruct) ProtoMessage() {} func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` + Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -466,16 +474,16 @@ func (*NidRepStruct) ProtoMessage() {} func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` + Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` + Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -484,9 +492,9 @@ func (*NinRepStruct) ProtoMessage() {} func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` + Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` XXX_unrecognized []byte `json:"-"` } @@ -495,9 +503,9 @@ func (*NidEmbeddedStruct) ProtoMessage() {} func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -506,8 +514,8 @@ func (*NinEmbeddedStruct) ProtoMessage() {} func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2"` + Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` + Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` XXX_unrecognized []byte `json:"-"` } @@ -516,8 +524,8 @@ func (*NidNestedStruct) ProtoMessage() {} func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -526,8 +534,8 @@ func (*NinNestedStruct) ProtoMessage() {} func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` + Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -536,7 +544,7 @@ func (*NidOptCustom) ProtoMessage() {} func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` + Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -545,8 +553,8 @@ func (*CustomDash) ProtoMessage() {} func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -555,8 +563,8 @@ func (*NinOptCustom) ProtoMessage() {} func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` XXX_unrecognized []byte `json:"-"` } @@ -565,8 +573,8 @@ func (*NidRepCustom) ProtoMessage() {} func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` + Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -575,15 +583,15 @@ func (*NinRepCustom) ProtoMessage() {} func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -592,15 +600,15 @@ func (*NinOptNativeUnion) ProtoMessage() {} func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -609,9 +617,9 @@ func (*NinOptStructUnion) ProtoMessage() {} func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -620,9 +628,9 @@ func (*NinEmbeddedStructUnion) ProtoMessage() {} func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -631,9 +639,9 @@ func (*NinNestedStructUnion) ProtoMessage() {} func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or,json=or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` + And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -642,8 +650,8 @@ func (*Tree) ProtoMessage() {} func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -652,8 +660,8 @@ func (*OrBranch) ProtoMessage() {} func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -662,8 +670,8 @@ func (*AndBranch) ProtoMessage() {} func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value,json=value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue,json=strValue" json:"StrValue"` + Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` + StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` XXX_unrecognized []byte `json:"-"` } @@ -672,9 +680,9 @@ func (*Leaf) ProtoMessage() {} func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down,json=down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And,json=and" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf,json=leaf" json:"Leaf,omitempty"` + Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` + And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` + Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -683,7 +691,7 @@ func (*DeepTree) ProtoMessage() {} func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down,json=down" json:"Down"` + Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` XXX_unrecognized []byte `json:"-"` } @@ -692,8 +700,8 @@ func (*ADeepBranch) ProtoMessage() {} func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left,json=left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right,json=right" json:"Right"` + Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` + Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` XXX_unrecognized []byte `json:"-"` } @@ -702,7 +710,7 @@ func (*AndDeepBranch) ProtoMessage() {} func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree,json=tree" json:"Tree"` + Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` XXX_unrecognized []byte `json:"-"` } @@ -719,7 +727,7 @@ func (*Nil) ProtoMessage() {} func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1"` + Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` XXX_unrecognized []byte `json:"-"` } @@ -728,9 +736,9 @@ func (*NidOptEnum) ProtoMessage() {} func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -739,9 +747,9 @@ func (*NinOptEnum) ProtoMessage() {} func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -750,9 +758,9 @@ func (*NidRepEnum) ProtoMessage() {} func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -761,9 +769,9 @@ func (*NinRepEnum) ProtoMessage() {} func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -797,9 +805,9 @@ func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -808,9 +816,9 @@ func (*AnotherNinOptEnum) ProtoMessage() {} func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,json=field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,json=field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` + Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` + Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` + Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -844,9 +852,9 @@ func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { } type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1,json=time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2,json=time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data,json=data" json:"Data"` + Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` + Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` + Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` XXX_unrecognized []byte `json:"-"` } @@ -855,9 +863,9 @@ func (*Timer) ProtoMessage() {} func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyExtendable) Reset() { *m = MyExtendable{} } @@ -865,25 +873,19 @@ func (*MyExtendable) ProtoMessage() {} func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } var extRange_MyExtendable = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyExtendable } -func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M,json=m" json:"M,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } @@ -891,25 +893,19 @@ func (*OtherExtenable) ProtoMessage() {} func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } var extRange_OtherExtenable = []proto.ExtensionRange{ - {14, 16}, - {10, 12}, + {Start: 14, End: 16}, + {Start: 10, End: 12}, } func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherExtenable } -func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,json=enumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM,json=nNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM,json=nM" json:"NM,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` + NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -918,8 +914,8 @@ func (*NestedDefinition) ProtoMessage() {} func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1,json=nestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM,json=nNM" json:"NNM,omitempty"` + NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` + NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -930,7 +926,7 @@ func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { } type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1,json=nestedNestedField1" json:"NestedNestedField1,omitempty"` + NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -943,9 +939,9 @@ func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []i } type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A,json=a" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,json=b,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C,json=c" json:"C,omitempty"` + A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` + B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` + C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -954,21 +950,21 @@ func (*NestedScope) ProtoMessage() {} func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,json=field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,json=field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,json=field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,json=field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` + Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` + Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` + Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` + Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` + Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` + Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` + Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` + Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` + Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` + Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` + Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` + Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1097,7 +1093,7 @@ func (m *NinOptNativeDefault) GetField15() []byte { } type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct,json=customStruct" json:"CustomStruct"` + CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` XXX_unrecognized []byte `json:"-"` } @@ -1106,21 +1102,21 @@ func (*CustomContainer) ProtoMessage() {} func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15"` + FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` + FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` + FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` + FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` + FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` + FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` + FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` + FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` + FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` + FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` + FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` + FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` + FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` + FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` XXX_unrecognized []byte `json:"-"` } @@ -1129,21 +1125,21 @@ func (*CustomNameNidOptNative) ProtoMessage() {} func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` + FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` + FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` + FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` + FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` + FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` + FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` + FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1152,21 +1148,21 @@ func (*CustomNameNinOptNative) ProtoMessage() {} func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6,json=field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8,json=field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9,json=field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10,json=field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11,json=field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12,json=field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13,json=field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14,json=field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` + FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` + FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` + FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` + FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` + FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` + FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` + FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` + FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` + FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` + FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` + FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` + FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` + FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1175,16 +1171,16 @@ func (*CustomNameNinRepNative) ProtoMessage() {} func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4,json=field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8,json=field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13,json=field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14,json=field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15,json=field15" json:"Field15,omitempty"` + FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` + FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` + FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` + FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` + FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` + FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` + FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` + FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1193,10 +1189,10 @@ func (*CustomNameNinStruct) ProtoMessage() {} func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,json=id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,json=value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,json=ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,json=values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` + FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` + FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` + FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` + FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1205,9 +1201,9 @@ func (*CustomNameCustomType) ProtoMessage() {} func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,json=field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200,json=field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210,json=field210" json:"Field210,omitempty"` + *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` + FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` + FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1218,8 +1214,8 @@ func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { } type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,json=field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,json=field2,enum=test.TheTestEnum" json:"Field2,omitempty"` + FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` + FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1228,7 +1224,7 @@ func (*CustomNameEnum) ProtoMessage() {} func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` XXX_unrecognized []byte `json:"-"` } @@ -1238,7 +1234,7 @@ func (*NoExtensionsMap) ProtoMessage() {} func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {100, 199}, + {Start: 100, End: 199}, } func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { @@ -1252,7 +1248,7 @@ func (m *NoExtensionsMap) GetExtensions() *[]byte { } type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *Unrecognized) Reset() { *m = Unrecognized{} } @@ -1261,7 +1257,7 @@ func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest type UnrecognizedWithInner struct { Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1270,7 +1266,7 @@ func (*UnrecognizedWithInner) ProtoMessage() {} func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } @@ -1281,7 +1277,7 @@ func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { type UnrecognizedWithEmbed struct { UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` + Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1290,7 +1286,7 @@ func (*UnrecognizedWithEmbed) ProtoMessage() {} func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` } func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } @@ -1300,8 +1296,8 @@ func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { } type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label,json=label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children,json=children" json:"Children,omitempty"` + Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` + Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -1309,12 +1305,67 @@ func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } +type NonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } +func (*NonByteCustomType) ProtoMessage() {} +func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } + +type NidOptNonByteCustomType struct { + Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } +func (*NidOptNonByteCustomType) ProtoMessage() {} +func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } + +type NinOptNonByteCustomType struct { + Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } +func (*NinOptNonByteCustomType) ProtoMessage() {} +func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } + +type NidRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } +func (*NidRepNonByteCustomType) ProtoMessage() {} +func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } + +type NinRepNonByteCustomType struct { + Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } +func (*NinRepNonByteCustomType) ProtoMessage() {} +func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } + +type ProtoType struct { + Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ProtoType) Reset() { *m = ProtoType{} } +func (*ProtoType) ProtoMessage() {} +func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } + var E_FieldA = &proto.ExtensionDesc{ ExtendedType: (*MyExtendable)(nil), ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA,json=fieldA", + Tag: "fixed64,100,opt,name=FieldA", + Filename: "thetest.proto", } var E_FieldB = &proto.ExtensionDesc{ @@ -1322,7 +1373,8 @@ var E_FieldB = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB,json=fieldB", + Tag: "bytes,101,opt,name=FieldB", + Filename: "thetest.proto", } var E_FieldC = &proto.ExtensionDesc{ @@ -1330,7 +1382,8 @@ var E_FieldC = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC,json=fieldC", + Tag: "bytes,102,opt,name=FieldC", + Filename: "thetest.proto", } var E_FieldD = &proto.ExtensionDesc{ @@ -1338,7 +1391,8 @@ var E_FieldD = &proto.ExtensionDesc{ ExtensionType: ([]int64)(nil), Field: 104, Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD,json=fieldD", + Tag: "varint,104,rep,name=FieldD", + Filename: "thetest.proto", } var E_FieldE = &proto.ExtensionDesc{ @@ -1346,7 +1400,8 @@ var E_FieldE = &proto.ExtensionDesc{ ExtensionType: ([]*NinOptNative)(nil), Field: 105, Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE,json=fieldE", + Tag: "bytes,105,rep,name=FieldE", + Filename: "thetest.proto", } var E_FieldA1 = &proto.ExtensionDesc{ @@ -1354,7 +1409,8 @@ var E_FieldA1 = &proto.ExtensionDesc{ ExtensionType: (*float64)(nil), Field: 100, Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1,json=fieldA1", + Tag: "fixed64,100,opt,name=FieldA1", + Filename: "thetest.proto", } var E_FieldB1 = &proto.ExtensionDesc{ @@ -1362,7 +1418,8 @@ var E_FieldB1 = &proto.ExtensionDesc{ ExtensionType: (*NinOptNative)(nil), Field: 101, Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1,json=fieldB1", + Tag: "bytes,101,opt,name=FieldB1", + Filename: "thetest.proto", } var E_FieldC1 = &proto.ExtensionDesc{ @@ -1370,7 +1427,8 @@ var E_FieldC1 = &proto.ExtensionDesc{ ExtensionType: (*NinEmbeddedStruct)(nil), Field: 102, Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1,json=fieldC1", + Tag: "bytes,102,opt,name=FieldC1", + Filename: "thetest.proto", } func init() { @@ -1436,6 +1494,12 @@ func init() { proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") proto.RegisterType((*Node)(nil), "test.Node") + proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") + proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") + proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") + proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") + proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") + proto.RegisterType((*ProtoType)(nil), "test.ProtoType") proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) @@ -4756,19 +4820,21 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -4836,19 +4902,21 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - extkeys := make([]int32, 0, len(this.XXX_extensions)+len(that1.XXX_extensions)) - for k := range this.XXX_extensions { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + extkeys := make([]int32, 0, len(thismap)+len(thatmap)) + for k := range thismap { extkeys = append(extkeys, k) } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { extkeys = append(extkeys, k) } } github_com_gogo_protobuf_sortkeys.Int32s(extkeys) for _, k := range extkeys { - if v, ok := this.XXX_extensions[k]; ok { - if v2, ok := that1.XXX_extensions[k]; ok { + if v, ok := thismap[k]; ok { + if v2, ok := thatmap[k]; ok { if c := v.Compare(&v2); c != 0 { return c } @@ -6457,6 +6525,241 @@ func (this *Node) Compare(that interface{}) int { } return 0 } +func (this *NonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Field1.Compare(that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinOptNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if that1.Field1 == nil { + if this.Field1 != nil { + return 1 + } + } else if this.Field1 == nil { + return -1 + } else if c := this.Field1.Compare(*that1.Field1); c != 0 { + return c + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NidRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *NinRepNonByteCustomType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Field1) != len(that1.Field1) { + if len(this.Field1) < len(that1.Field1) { + return -1 + } + return 1 + } + for i := range this.Field1 { + if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { + return c + } + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} +func (this *ProtoType) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + if *this.Field2 < *that1.Field2 { + return -1 + } + return 1 + } + } else if this.Field2 != nil { + return 1 + } else if that1.Field2 != nil { + return -1 + } + if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { + return c + } + return 0 +} func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } @@ -6643,393 +6946,435 @@ func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { return ThetestDescription() } +func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} +func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { + return ThetestDescription() +} func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6115 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xff, 0x0e, 0x87, 0x94, 0xa8, 0x43, 0x89, 0xa2, 0x66, 0xb5, 0x32, 0x2d, 0xaf, 0xf7, 0x41, - 0xcb, 0xb2, 0xac, 0xd8, 0x5a, 0x49, 0xab, 0x7d, 0xd1, 0x89, 0x03, 0xbe, 0x56, 0xd6, 0xfe, 0xf5, - 0xfa, 0x8f, 0xa4, 0xc4, 0x4e, 0x0b, 0x10, 0x5c, 0x72, 0x24, 0xd1, 0xa6, 0x86, 0x2c, 0x87, 0xb4, - 0x77, 0xf3, 0xa1, 0x48, 0x93, 0x36, 0x4d, 0x5a, 0xf4, 0x99, 0x16, 0xcd, 0xc3, 0x49, 0x9c, 0x14, - 0x69, 0x9c, 0xf4, 0x95, 0xb4, 0x69, 0x50, 0x04, 0x45, 0x63, 0xa0, 0x48, 0xbb, 0xfd, 0x52, 0xa4, - 0xf9, 0x54, 0x14, 0x85, 0x91, 0x17, 0xd0, 0xb4, 0x4d, 0xdb, 0x04, 0x30, 0x90, 0x00, 0xc9, 0x87, - 0xde, 0xf7, 0xcc, 0xbd, 0x1c, 0x72, 0x46, 0xde, 0x75, 0x92, 0x05, 0xb8, 0x22, 0xef, 0x39, 0xbf, - 0x33, 0x67, 0xce, 0xeb, 0x9e, 0xb9, 0xf7, 0x92, 0xf0, 0x77, 0x4b, 0x70, 0xee, 0xa0, 0xd9, 0x3c, - 0x68, 0x58, 0x17, 0x5a, 0xed, 0x66, 0xa7, 0x79, 0xb3, 0xbb, 0x7f, 0xa1, 0x66, 0x39, 0xd5, 0x76, - 0xbd, 0xd5, 0x69, 0xb6, 0x17, 0xc8, 0x98, 0x31, 0x4e, 0x39, 0x16, 0x38, 0x47, 0x66, 0x03, 0x26, - 0xae, 0xd7, 0x1b, 0x56, 0x51, 0x30, 0xee, 0x58, 0x1d, 0xe3, 0x2a, 0x44, 0xf7, 0xd1, 0x60, 0x5a, - 0x3b, 0xa7, 0xcf, 0x25, 0x96, 0x67, 0x16, 0x14, 0xd0, 0x82, 0x8c, 0xd8, 0xc6, 0xc3, 0x26, 0x41, - 0x64, 0xbe, 0x1d, 0x85, 0x93, 0x3e, 0x54, 0xc3, 0x80, 0xa8, 0x5d, 0x39, 0xc2, 0x12, 0xb5, 0xb9, - 0x11, 0x93, 0xbc, 0x37, 0xd2, 0x30, 0xdc, 0xaa, 0x54, 0x9f, 0xab, 0x1c, 0x58, 0xe9, 0x08, 0x19, - 0xe6, 0x1f, 0x8d, 0x33, 0x00, 0x35, 0xab, 0x65, 0xd9, 0x35, 0xcb, 0xae, 0xde, 0x4e, 0xeb, 0x48, - 0x8b, 0x11, 0xd3, 0x33, 0x62, 0xbc, 0x09, 0x26, 0x5a, 0xdd, 0x9b, 0x8d, 0x7a, 0xb5, 0xec, 0x61, - 0x03, 0xc4, 0x16, 0x33, 0x53, 0x94, 0x50, 0x74, 0x99, 0x1f, 0x81, 0xf1, 0x17, 0xac, 0xca, 0x73, - 0x5e, 0xd6, 0x04, 0x61, 0x4d, 0xe2, 0x61, 0x0f, 0x63, 0x01, 0x46, 0x8f, 0x2c, 0xc7, 0x41, 0x0a, - 0x94, 0x3b, 0xb7, 0x5b, 0x56, 0x3a, 0x4a, 0xee, 0xfe, 0x5c, 0xcf, 0xdd, 0xab, 0x77, 0x9e, 0x60, - 0xa8, 0x5d, 0x04, 0x32, 0x72, 0x30, 0x62, 0xd9, 0xdd, 0x23, 0x2a, 0x21, 0xd6, 0xc7, 0x7e, 0x25, - 0xc4, 0xa1, 0x4a, 0x89, 0x63, 0x18, 0x13, 0x31, 0xec, 0x58, 0xed, 0xe7, 0xeb, 0x55, 0x2b, 0x3d, - 0x44, 0x04, 0x3c, 0xd2, 0x23, 0x60, 0x87, 0xd2, 0x55, 0x19, 0x1c, 0x87, 0x6e, 0x65, 0xc4, 0xba, - 0xd5, 0xb1, 0x6c, 0xa7, 0xde, 0xb4, 0xd3, 0xc3, 0x44, 0xc8, 0xc3, 0x3e, 0x5e, 0xb4, 0x1a, 0x35, - 0x55, 0x84, 0x8b, 0x33, 0x2e, 0xc3, 0x70, 0xb3, 0xd5, 0x41, 0xef, 0x9c, 0x74, 0x1c, 0xf9, 0x27, - 0xb1, 0x7c, 0xda, 0x37, 0x10, 0xb6, 0x28, 0x8f, 0xc9, 0x99, 0x8d, 0x35, 0x48, 0x39, 0xcd, 0x6e, - 0xbb, 0x6a, 0x95, 0xab, 0xcd, 0x9a, 0x55, 0xae, 0xdb, 0xfb, 0xcd, 0xf4, 0x08, 0x11, 0x70, 0xb6, - 0xf7, 0x46, 0x08, 0x63, 0x01, 0xf1, 0xad, 0x21, 0x36, 0x33, 0xe9, 0x48, 0x9f, 0x8d, 0x29, 0x18, - 0x72, 0x6e, 0xdb, 0x9d, 0xca, 0xad, 0xf4, 0x28, 0x89, 0x10, 0xf6, 0x29, 0xf3, 0x83, 0x18, 0x8c, - 0x87, 0x09, 0xb1, 0x27, 0x20, 0xb6, 0x8f, 0xef, 0x12, 0x05, 0xd8, 0x31, 0x6c, 0x40, 0x31, 0xb2, - 0x11, 0x87, 0x5e, 0xa7, 0x11, 0x73, 0x90, 0xb0, 0x2d, 0xa7, 0x63, 0xd5, 0x68, 0x44, 0xe8, 0x21, - 0x63, 0x0a, 0x28, 0xa8, 0x37, 0xa4, 0xa2, 0xaf, 0x2b, 0xa4, 0x9e, 0x86, 0x71, 0xa1, 0x52, 0xb9, - 0x5d, 0xb1, 0x0f, 0x78, 0x6c, 0x5e, 0x08, 0xd2, 0x64, 0xa1, 0xc4, 0x71, 0x26, 0x86, 0x99, 0x49, - 0x4b, 0xfa, 0x6c, 0x14, 0x01, 0x9a, 0xb6, 0xd5, 0xdc, 0x47, 0xe9, 0x55, 0x6d, 0xa0, 0x38, 0xf1, - 0xb7, 0xd2, 0x16, 0x66, 0xe9, 0xb1, 0x52, 0x93, 0x8e, 0x56, 0x1b, 0xc6, 0x35, 0x37, 0xd4, 0x86, - 0xfb, 0x44, 0xca, 0x06, 0x4d, 0xb2, 0x9e, 0x68, 0xdb, 0x83, 0x64, 0xdb, 0xc2, 0x71, 0x8f, 0x4c, - 0x4c, 0xef, 0x6c, 0x84, 0x28, 0xb1, 0x10, 0x78, 0x67, 0x26, 0x83, 0xd1, 0x1b, 0x1b, 0x6b, 0x7b, - 0x3f, 0x1a, 0x0f, 0x81, 0x18, 0x28, 0x93, 0xb0, 0x02, 0x52, 0x85, 0x46, 0xf9, 0xe0, 0x26, 0x1a, - 0x9b, 0xbe, 0x0a, 0x49, 0xd9, 0x3c, 0xc6, 0x24, 0xc4, 0x9c, 0x4e, 0xa5, 0xdd, 0x21, 0x51, 0x18, - 0x33, 0xe9, 0x07, 0x23, 0x05, 0x3a, 0x2a, 0x32, 0xa4, 0xca, 0xc5, 0x4c, 0xfc, 0x76, 0xfa, 0x0a, - 0x8c, 0x49, 0x97, 0x0f, 0x0b, 0xcc, 0x7c, 0x70, 0x08, 0x26, 0xfd, 0x62, 0xce, 0x37, 0xfc, 0x51, - 0xfa, 0xa0, 0x08, 0xb8, 0x69, 0xb5, 0x51, 0xdc, 0x61, 0x09, 0xec, 0x13, 0x8a, 0xa8, 0x58, 0xa3, - 0x72, 0xd3, 0x6a, 0xa0, 0x68, 0xd2, 0xe6, 0x92, 0xcb, 0x6f, 0x0a, 0x15, 0xd5, 0x0b, 0xeb, 0x18, - 0x62, 0x52, 0xa4, 0xf1, 0x24, 0x44, 0x59, 0x89, 0xc3, 0x12, 0xe6, 0xc3, 0x49, 0xc0, 0xb1, 0x68, - 0x12, 0x9c, 0xf1, 0x00, 0x8c, 0xe0, 0xbf, 0xd4, 0xb6, 0x43, 0x44, 0xe7, 0x38, 0x1e, 0xc0, 0x76, - 0x35, 0xa6, 0x21, 0x4e, 0xc2, 0xac, 0x66, 0xf1, 0xa9, 0x41, 0x7c, 0xc6, 0x8e, 0xa9, 0x59, 0xfb, - 0x95, 0x6e, 0xa3, 0x53, 0x7e, 0xbe, 0xd2, 0xe8, 0x5a, 0x24, 0x60, 0x90, 0x63, 0xd8, 0xe0, 0xdb, - 0xf0, 0x98, 0x71, 0x16, 0x12, 0x34, 0x2a, 0xeb, 0x08, 0x73, 0x8b, 0x54, 0x9f, 0x98, 0x49, 0x03, - 0x75, 0x0d, 0x8f, 0xe0, 0xcb, 0x3f, 0xeb, 0xa0, 0x5c, 0x60, 0xae, 0x25, 0x97, 0xc0, 0x03, 0xe4, - 0xf2, 0x57, 0xd4, 0xc2, 0xf7, 0xa0, 0xff, 0xed, 0xa9, 0xb1, 0x98, 0xf9, 0x62, 0x04, 0xa2, 0x24, - 0xdf, 0xc6, 0x21, 0xb1, 0xfb, 0xcc, 0x76, 0xa9, 0x5c, 0xdc, 0xda, 0xcb, 0xaf, 0x97, 0x52, 0x9a, - 0x91, 0x04, 0x20, 0x03, 0xd7, 0xd7, 0xb7, 0x72, 0xbb, 0xa9, 0x88, 0xf8, 0xbc, 0xb6, 0xb9, 0x7b, - 0x79, 0x25, 0xa5, 0x0b, 0xc0, 0x1e, 0x1d, 0x88, 0x7a, 0x19, 0x2e, 0x2e, 0xa7, 0x62, 0x28, 0x12, - 0x46, 0xa9, 0x80, 0xb5, 0xa7, 0x4b, 0x45, 0xc4, 0x31, 0x24, 0x8f, 0x20, 0x9e, 0x61, 0x63, 0x0c, - 0x46, 0xc8, 0x48, 0x7e, 0x6b, 0x6b, 0x3d, 0x15, 0x17, 0x32, 0x77, 0x76, 0xcd, 0xb5, 0xcd, 0xd5, - 0xd4, 0x88, 0x90, 0xb9, 0x6a, 0x6e, 0xed, 0x6d, 0xa7, 0x40, 0x48, 0xd8, 0x28, 0xed, 0xec, 0xe4, - 0x56, 0x4b, 0xa9, 0x84, 0xe0, 0xc8, 0x3f, 0xb3, 0x5b, 0xda, 0x49, 0x8d, 0x4a, 0x6a, 0xa1, 0x4b, - 0x8c, 0x89, 0x4b, 0x94, 0x36, 0xf7, 0x36, 0x52, 0x49, 0x63, 0x02, 0xc6, 0xe8, 0x25, 0xb8, 0x12, - 0xe3, 0xca, 0x10, 0xd2, 0x34, 0xe5, 0x2a, 0x42, 0xa5, 0x4c, 0x48, 0x03, 0x88, 0xc3, 0xc8, 0x14, - 0x20, 0x46, 0xa2, 0x0b, 0x45, 0x71, 0x72, 0x3d, 0x97, 0x2f, 0xad, 0x97, 0xb7, 0xb6, 0x77, 0xd7, - 0xb6, 0x36, 0x73, 0xeb, 0xc8, 0x76, 0x62, 0xcc, 0x2c, 0xfd, 0xff, 0xbd, 0x35, 0xb3, 0x54, 0x44, - 0xf6, 0xf3, 0x8c, 0x6d, 0x97, 0x72, 0xbb, 0x68, 0x4c, 0xcf, 0xcc, 0xc3, 0xa4, 0x5f, 0x9d, 0xf1, - 0xcb, 0x8c, 0xcc, 0x27, 0x35, 0x38, 0xe9, 0x53, 0x32, 0x7d, 0xb3, 0xe8, 0xad, 0x10, 0xa3, 0x91, - 0x46, 0x27, 0x91, 0x47, 0x7d, 0x6b, 0x2f, 0x89, 0xbb, 0x9e, 0x89, 0x84, 0xe0, 0xbc, 0x13, 0xa9, - 0xde, 0x67, 0x22, 0xc5, 0x22, 0x7a, 0xc2, 0xe9, 0x3d, 0x1a, 0xa4, 0xfb, 0xc9, 0x0e, 0xc8, 0xf7, - 0x88, 0x94, 0xef, 0x4f, 0xa8, 0x0a, 0x9c, 0xef, 0x7f, 0x0f, 0x3d, 0x5a, 0x7c, 0x5a, 0x83, 0x29, - 0xff, 0x7e, 0xc3, 0x57, 0x87, 0x27, 0x61, 0xe8, 0xc8, 0xea, 0x1c, 0x36, 0xf9, 0x9c, 0x3b, 0xeb, - 0x53, 0xc9, 0x31, 0x59, 0xb5, 0x15, 0x43, 0x79, 0xa7, 0x02, 0xbd, 0x5f, 0xd3, 0x40, 0xb5, 0xe9, - 0xd1, 0xf4, 0xfd, 0x11, 0x38, 0xe5, 0x2b, 0xdc, 0x57, 0xd1, 0x07, 0x01, 0xea, 0x76, 0xab, 0xdb, - 0xa1, 0xf3, 0x2a, 0x2d, 0x33, 0x23, 0x64, 0x84, 0xa4, 0x30, 0x2e, 0x21, 0xdd, 0x8e, 0xa0, 0xeb, - 0x84, 0x0e, 0x74, 0x88, 0x30, 0x5c, 0x75, 0x15, 0x8d, 0x12, 0x45, 0xcf, 0xf4, 0xb9, 0xd3, 0x9e, - 0x29, 0x6b, 0x11, 0x52, 0xd5, 0x46, 0xdd, 0xb2, 0x3b, 0x65, 0xa7, 0xd3, 0xb6, 0x2a, 0x47, 0x75, - 0xfb, 0x80, 0xd4, 0xd1, 0x78, 0x36, 0xb6, 0x5f, 0x69, 0x38, 0x96, 0x39, 0x4e, 0xc9, 0x3b, 0x9c, - 0x8a, 0x11, 0x64, 0xb2, 0x68, 0x7b, 0x10, 0x43, 0x12, 0x82, 0x92, 0x05, 0x22, 0xf3, 0xb5, 0x61, - 0x48, 0x78, 0xba, 0x33, 0xe3, 0x3c, 0x8c, 0x3e, 0x5b, 0x79, 0xbe, 0x52, 0xe6, 0x1d, 0x37, 0xb5, - 0x44, 0x02, 0x8f, 0x6d, 0xb3, 0xae, 0x7b, 0x11, 0x26, 0x09, 0x0b, 0xba, 0x47, 0x74, 0xa1, 0x6a, - 0xa3, 0xe2, 0x38, 0xc4, 0x68, 0x71, 0xc2, 0x6a, 0x60, 0xda, 0x16, 0x26, 0x15, 0x38, 0xc5, 0xb8, - 0x04, 0x27, 0x09, 0xe2, 0x08, 0x15, 0xde, 0x7a, 0xab, 0x61, 0x95, 0xf1, 0x33, 0x80, 0x43, 0xea, - 0xa9, 0xd0, 0x6c, 0x02, 0x73, 0x6c, 0x30, 0x06, 0xac, 0x91, 0x63, 0xac, 0xc2, 0x83, 0x04, 0x76, - 0x60, 0xd9, 0x56, 0xbb, 0xd2, 0xb1, 0xca, 0xd6, 0x2f, 0x74, 0x11, 0x6f, 0xb9, 0x62, 0xd7, 0xca, - 0x87, 0x15, 0xe7, 0x30, 0x3d, 0xe9, 0x15, 0x70, 0x3f, 0xe6, 0x5d, 0x65, 0xac, 0x25, 0xc2, 0x99, - 0xb3, 0x6b, 0x4f, 0x21, 0x3e, 0x23, 0x0b, 0x53, 0x44, 0x10, 0x32, 0x0a, 0xba, 0xe7, 0x72, 0xf5, - 0xd0, 0xaa, 0x3e, 0x57, 0xee, 0x76, 0xf6, 0xaf, 0xa6, 0x1f, 0xf0, 0x4a, 0x20, 0x4a, 0xee, 0x10, - 0x9e, 0x02, 0x66, 0xd9, 0x43, 0x1c, 0xc6, 0x0e, 0x8c, 0x62, 0x7f, 0x1c, 0xd5, 0xdf, 0x89, 0xd4, - 0x6e, 0xb6, 0xc9, 0x1c, 0x91, 0xf4, 0x49, 0x6e, 0x8f, 0x11, 0x17, 0xb6, 0x18, 0x60, 0x03, 0xf5, - 0xa7, 0xd9, 0xd8, 0xce, 0x76, 0xa9, 0x54, 0x34, 0x13, 0x5c, 0xca, 0xf5, 0x66, 0x1b, 0xc7, 0xd4, - 0x41, 0x53, 0xd8, 0x38, 0x41, 0x63, 0xea, 0xa0, 0xc9, 0x2d, 0x8c, 0xec, 0x55, 0xad, 0xd2, 0xdb, - 0x46, 0xcf, 0x2e, 0xac, 0x59, 0x77, 0xd2, 0x29, 0xc9, 0x5e, 0xd5, 0xea, 0x2a, 0x65, 0x60, 0x61, - 0xee, 0xa0, 0x94, 0x38, 0xe5, 0xda, 0xcb, 0x0b, 0x9c, 0xe8, 0xb9, 0x4b, 0x15, 0x8a, 0xae, 0xd8, - 0xba, 0xdd, 0x0b, 0x34, 0xa4, 0x2b, 0xb6, 0x6e, 0xab, 0xb0, 0x87, 0xc9, 0x03, 0x58, 0xdb, 0xaa, - 0x22, 0x93, 0xd7, 0xd2, 0xf7, 0x79, 0xb9, 0x3d, 0x04, 0xe3, 0x02, 0x0a, 0xe4, 0x6a, 0xd9, 0xb2, - 0x2b, 0x37, 0x91, 0xef, 0x2b, 0x6d, 0xf4, 0xc6, 0x49, 0x9f, 0xf5, 0x32, 0x27, 0xab, 0xd5, 0x12, - 0xa1, 0xe6, 0x08, 0xd1, 0x98, 0x87, 0x89, 0xe6, 0xcd, 0x67, 0xab, 0x34, 0xb8, 0xca, 0x48, 0xce, - 0x7e, 0xfd, 0x56, 0x7a, 0x86, 0x98, 0x69, 0x1c, 0x13, 0x48, 0x68, 0x6d, 0x93, 0x61, 0xe3, 0x51, - 0x24, 0xdc, 0x39, 0xac, 0xb4, 0x5b, 0x64, 0x92, 0x76, 0x90, 0x51, 0xad, 0xf4, 0xc3, 0x94, 0x95, - 0x8e, 0x6f, 0xf2, 0x61, 0xa3, 0x04, 0x67, 0xf1, 0xcd, 0xdb, 0x15, 0xbb, 0x59, 0xee, 0x3a, 0x56, - 0xd9, 0x55, 0x51, 0xf8, 0x62, 0x16, 0xab, 0x65, 0x9e, 0xe6, 0x6c, 0x7b, 0x0e, 0x2a, 0x66, 0x9c, - 0x89, 0xbb, 0xe7, 0x69, 0x98, 0xec, 0xda, 0x75, 0x1b, 0x85, 0x38, 0xa2, 0x60, 0x30, 0x4d, 0xd8, - 0xf4, 0xbf, 0x0f, 0xf7, 0x69, 0xba, 0xf7, 0xbc, 0xdc, 0x34, 0x48, 0xcc, 0x93, 0xdd, 0xde, 0xc1, - 0x4c, 0x16, 0x46, 0xbd, 0xb1, 0x63, 0x8c, 0x00, 0x8d, 0x1e, 0x34, 0xbb, 0xa1, 0x19, 0xb5, 0xb0, - 0x55, 0xc4, 0x73, 0xe1, 0x3b, 0x4a, 0x68, 0x62, 0x43, 0x73, 0xf2, 0xfa, 0xda, 0x6e, 0xa9, 0x6c, - 0xee, 0x6d, 0xee, 0xae, 0x6d, 0x94, 0x52, 0xfa, 0xfc, 0x48, 0xfc, 0x3b, 0xc3, 0xa9, 0x77, 0xa1, - 0x7f, 0x91, 0xcc, 0x57, 0x22, 0x90, 0x94, 0xfb, 0x60, 0xe3, 0xcd, 0x70, 0x1f, 0x7f, 0x68, 0x75, - 0xac, 0x4e, 0xf9, 0x85, 0x7a, 0x9b, 0x84, 0xf3, 0x51, 0x85, 0x76, 0x92, 0xc2, 0x13, 0x93, 0x8c, - 0x0b, 0x3d, 0xde, 0xbf, 0x1d, 0xf1, 0x5c, 0x27, 0x2c, 0xc6, 0x3a, 0x9c, 0x45, 0x26, 0x43, 0xbd, - 0xa6, 0x5d, 0xab, 0xb4, 0x6b, 0x65, 0x77, 0xb9, 0xa0, 0x5c, 0xa9, 0xa2, 0x38, 0x70, 0x9a, 0x74, - 0x26, 0x11, 0x52, 0x4e, 0xdb, 0xcd, 0x1d, 0xc6, 0xec, 0x96, 0xd8, 0x1c, 0x63, 0x55, 0xa2, 0x46, - 0xef, 0x17, 0x35, 0xa8, 0xf7, 0x3a, 0xaa, 0xb4, 0x50, 0xd8, 0x74, 0xda, 0xb7, 0x49, 0xf7, 0x16, - 0x37, 0xe3, 0x68, 0xa0, 0x84, 0x3f, 0xbf, 0x71, 0x3e, 0xf0, 0xda, 0xf1, 0xdf, 0x74, 0x18, 0xf5, - 0x76, 0x70, 0xb8, 0x21, 0xae, 0x92, 0x32, 0xaf, 0x91, 0x2a, 0xf0, 0xd0, 0xc0, 0x7e, 0x6f, 0xa1, - 0x80, 0xeb, 0x7f, 0x76, 0x88, 0xf6, 0x55, 0x26, 0x45, 0xe2, 0xb9, 0x17, 0xc7, 0x9a, 0x45, 0xbb, - 0xf5, 0xb8, 0xc9, 0x3e, 0xa1, 0x62, 0x37, 0xf4, 0xac, 0x43, 0x64, 0x0f, 0x11, 0xd9, 0x33, 0x83, - 0x65, 0xdf, 0xd8, 0x21, 0xc2, 0x47, 0x6e, 0xec, 0x94, 0x37, 0xb7, 0xcc, 0x8d, 0xdc, 0xba, 0xc9, - 0xe0, 0xc6, 0xfd, 0x10, 0x6d, 0x54, 0xde, 0x79, 0x5b, 0x9e, 0x29, 0xc8, 0x50, 0x58, 0xc3, 0x23, - 0x09, 0x78, 0xc9, 0x43, 0xae, 0xcf, 0x64, 0xe8, 0x0d, 0x0c, 0xfd, 0x0b, 0x10, 0x23, 0xf6, 0x32, - 0x00, 0x98, 0xc5, 0x52, 0x27, 0x8c, 0x38, 0x44, 0x0b, 0x5b, 0x26, 0x0e, 0x7f, 0x14, 0xef, 0x74, - 0xb4, 0xbc, 0xbd, 0x56, 0x2a, 0xa0, 0x0c, 0xc8, 0x5c, 0x82, 0x21, 0x6a, 0x04, 0x9c, 0x1a, 0xc2, - 0x0c, 0x08, 0x44, 0x3f, 0x32, 0x19, 0x1a, 0xa7, 0xee, 0x6d, 0xe4, 0x4b, 0x66, 0x2a, 0xe2, 0x75, - 0xef, 0x97, 0x34, 0x48, 0x78, 0x1a, 0x2a, 0x3c, 0x95, 0x57, 0x1a, 0x8d, 0xe6, 0x0b, 0xe5, 0x4a, - 0xa3, 0x8e, 0x2a, 0x14, 0xf5, 0x0f, 0x90, 0xa1, 0x1c, 0x1e, 0x09, 0x6b, 0xbf, 0x9f, 0x48, 0x6c, - 0x7e, 0x4c, 0x83, 0x94, 0xda, 0x8c, 0x29, 0x0a, 0x6a, 0x3f, 0x55, 0x05, 0x5f, 0xd4, 0x20, 0x29, - 0x77, 0x60, 0x8a, 0x7a, 0xe7, 0x7f, 0xaa, 0xea, 0x7d, 0x44, 0x83, 0x31, 0xa9, 0xef, 0xfa, 0x99, - 0xd2, 0xee, 0xc3, 0x3a, 0x9c, 0xf4, 0xc1, 0xa1, 0x02, 0x44, 0x1b, 0x54, 0xda, 0x33, 0x3f, 0x1e, - 0xe6, 0x5a, 0x0b, 0x78, 0xfe, 0xdb, 0xae, 0xb4, 0x3b, 0xac, 0x9f, 0x45, 0xf3, 0x65, 0xbd, 0x86, - 0x8a, 0x6a, 0x7d, 0xbf, 0x8e, 0xda, 0x37, 0xfa, 0xc4, 0x42, 0xbb, 0xd6, 0x71, 0x77, 0x9c, 0x3e, - 0x1e, 0x3f, 0x06, 0x46, 0xab, 0xe9, 0xd4, 0x3b, 0xf5, 0xe7, 0xf1, 0xf2, 0x1c, 0x7f, 0x90, 0xc6, - 0x5d, 0x6c, 0xd4, 0x4c, 0x71, 0xca, 0x9a, 0xdd, 0x11, 0xdc, 0xb6, 0x75, 0x50, 0x51, 0xb8, 0x71, - 0x19, 0xd2, 0xcd, 0x14, 0xa7, 0x08, 0x6e, 0xd4, 0x68, 0xd6, 0x9a, 0x5d, 0xdc, 0x10, 0x50, 0x3e, - 0x5c, 0xf5, 0x34, 0x33, 0x41, 0xc7, 0x04, 0x0b, 0xeb, 0xd8, 0xdc, 0x27, 0xf8, 0x51, 0x33, 0x41, - 0xc7, 0x28, 0xcb, 0x23, 0x30, 0x5e, 0x39, 0x38, 0x68, 0x63, 0xe1, 0x5c, 0x10, 0x6d, 0x43, 0x93, - 0x62, 0x98, 0x30, 0x4e, 0xdf, 0x80, 0x38, 0xb7, 0x03, 0x9e, 0x58, 0xb0, 0x25, 0xd0, 0x9c, 0x4f, - 0xd6, 0x51, 0x22, 0xf8, 0xa1, 0xde, 0xe6, 0x44, 0x74, 0xd1, 0xba, 0x53, 0x76, 0x17, 0xf4, 0x22, - 0x88, 0x1e, 0x37, 0x13, 0x75, 0x47, 0xac, 0xe0, 0x64, 0x3e, 0x8d, 0xa6, 0x57, 0x79, 0x41, 0xd2, - 0x28, 0x42, 0xbc, 0xd1, 0x44, 0xf1, 0x81, 0x11, 0x74, 0x35, 0x7c, 0x2e, 0x60, 0x0d, 0x73, 0x61, - 0x9d, 0xf1, 0x9b, 0x02, 0x39, 0xfd, 0x4f, 0x1a, 0xc4, 0xf9, 0x30, 0x9a, 0x28, 0xa2, 0xad, 0x4a, - 0xe7, 0x90, 0x88, 0x8b, 0xe5, 0x23, 0x29, 0xcd, 0x24, 0x9f, 0xf1, 0x38, 0xea, 0x66, 0x6c, 0x12, - 0x02, 0x6c, 0x1c, 0x7f, 0xc6, 0x7e, 0x6d, 0x58, 0x95, 0x1a, 0x69, 0x70, 0x9b, 0x47, 0x47, 0xc8, - 0x93, 0x0e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb0, 0x61, 0xbc, 0x2e, 0xde, 0x69, 0x57, 0xea, 0x0d, 0x89, - 0x37, 0x4a, 0x78, 0x53, 0x9c, 0x20, 0x98, 0xb3, 0x70, 0x3f, 0x97, 0x5b, 0xb3, 0x3a, 0x15, 0xd4, - 0x3c, 0xd7, 0x5c, 0xd0, 0x10, 0x59, 0xed, 0xba, 0x8f, 0x31, 0x14, 0x19, 0x9d, 0x63, 0xf3, 0x4f, - 0xa3, 0x46, 0xb6, 0x79, 0xa4, 0x5a, 0x22, 0x9f, 0x52, 0x9e, 0xbb, 0x9c, 0xa7, 0xb4, 0x77, 0x80, - 0xdb, 0x54, 0x7c, 0x32, 0xa2, 0xaf, 0x6e, 0xe7, 0x3f, 0x1b, 0x99, 0x5e, 0xa5, 0xb8, 0x6d, 0x6e, - 0x41, 0xd3, 0xda, 0x6f, 0x58, 0x55, 0x6c, 0x1d, 0xf8, 0xc4, 0x43, 0xf0, 0xf8, 0x41, 0xbd, 0x73, - 0xd8, 0xbd, 0xb9, 0x80, 0xae, 0x70, 0xe1, 0xa0, 0x79, 0xd0, 0x74, 0xb7, 0x33, 0xf0, 0x27, 0xf2, - 0x81, 0xbc, 0x63, 0x5b, 0x1a, 0x23, 0x62, 0x74, 0x3a, 0x70, 0xff, 0x23, 0xbb, 0x09, 0x27, 0x19, - 0x73, 0x99, 0xac, 0xa9, 0xd2, 0x16, 0xd4, 0x18, 0xf8, 0x40, 0x9e, 0xfe, 0xfc, 0xb7, 0xc9, 0x94, - 0x60, 0x4e, 0x30, 0x28, 0xa6, 0xd1, 0x26, 0x35, 0x6b, 0xc2, 0x29, 0x49, 0x1e, 0x8d, 0x61, 0xf4, - 0xc8, 0x3d, 0x58, 0xe2, 0x57, 0x98, 0xc4, 0x93, 0x1e, 0x89, 0x3b, 0x0c, 0x9a, 0x2d, 0xc0, 0xd8, - 0x71, 0x64, 0xfd, 0x3d, 0x93, 0x35, 0x6a, 0x79, 0x85, 0xac, 0xc2, 0x38, 0x11, 0x52, 0xed, 0x3a, - 0x9d, 0xe6, 0x11, 0x29, 0x10, 0x83, 0xc5, 0xfc, 0xc3, 0xb7, 0x69, 0x50, 0x25, 0x31, 0xac, 0x20, - 0x50, 0xd9, 0xb7, 0xc1, 0x24, 0x1e, 0x21, 0x39, 0xe8, 0x95, 0x16, 0xbc, 0x84, 0x90, 0xfe, 0xe7, - 0xf7, 0xd0, 0xd8, 0x3b, 0x29, 0x04, 0x78, 0xe4, 0x7a, 0x3c, 0x71, 0x60, 0x75, 0x50, 0x6d, 0x43, - 0xcf, 0x7f, 0x8d, 0x86, 0x31, 0x70, 0x8f, 0x21, 0xfd, 0xa1, 0xef, 0xca, 0x9e, 0x58, 0xa5, 0xc8, - 0x5c, 0xa3, 0x91, 0xdd, 0x83, 0xfb, 0x7c, 0x3c, 0x1b, 0x42, 0xe6, 0x87, 0x99, 0xcc, 0xc9, 0x1e, - 0xef, 0x62, 0xb1, 0xdb, 0xc0, 0xc7, 0x85, 0x3f, 0x42, 0xc8, 0xfc, 0x08, 0x93, 0x69, 0x30, 0x2c, - 0x77, 0x0b, 0x96, 0x78, 0x03, 0x26, 0xd0, 0x93, 0xfa, 0xcd, 0xa6, 0xc3, 0x9e, 0x7b, 0x43, 0x88, - 0x7b, 0x91, 0x89, 0x1b, 0x67, 0x40, 0xf2, 0x14, 0x8c, 0x65, 0x5d, 0x83, 0xf8, 0x3e, 0x7a, 0x00, - 0x0a, 0x21, 0xe2, 0xa3, 0x4c, 0xc4, 0x30, 0xe6, 0xc7, 0xd0, 0x1c, 0x8c, 0x1e, 0x34, 0x59, 0x19, - 0x0e, 0x86, 0x7f, 0x8c, 0xc1, 0x13, 0x1c, 0xc3, 0x44, 0xb4, 0x9a, 0xad, 0x6e, 0x03, 0xd7, 0xe8, - 0x60, 0x11, 0x1f, 0xe7, 0x22, 0x38, 0x86, 0x89, 0x38, 0x86, 0x59, 0x5f, 0xe2, 0x22, 0x1c, 0x8f, - 0x3d, 0xdf, 0x8a, 0xd7, 0x7a, 0x1b, 0xb7, 0x9b, 0x76, 0x18, 0x25, 0x3e, 0xc1, 0x24, 0x00, 0x83, - 0x60, 0x01, 0x4f, 0xc0, 0x48, 0x58, 0x47, 0x7c, 0x8a, 0xc1, 0xe3, 0x16, 0xf7, 0x00, 0xca, 0x33, - 0x5e, 0x64, 0xf0, 0xde, 0x4a, 0xb0, 0x88, 0x3f, 0x62, 0x22, 0x92, 0x1e, 0x18, 0xbb, 0x8d, 0x8e, - 0xe5, 0x74, 0xd0, 0xa3, 0x7a, 0x08, 0x21, 0x9f, 0xe6, 0xb7, 0xc1, 0x20, 0xcc, 0x94, 0x37, 0x2d, - 0xbb, 0x7a, 0x18, 0x4e, 0xc2, 0xcb, 0xdc, 0x94, 0x1c, 0x83, 0x45, 0xa0, 0xca, 0x73, 0x54, 0x69, - 0xa3, 0x87, 0xeb, 0x46, 0x28, 0x77, 0x7c, 0x86, 0xc9, 0x18, 0x15, 0x20, 0x66, 0x91, 0xae, 0x7d, - 0x1c, 0x31, 0x9f, 0xe5, 0x16, 0xf1, 0xc0, 0x58, 0xea, 0xa1, 0x27, 0x53, 0xdc, 0x49, 0x1c, 0x47, - 0xda, 0x1f, 0xf3, 0xd4, 0xa3, 0xd8, 0x0d, 0xaf, 0x44, 0xe4, 0x69, 0x07, 0x3d, 0x82, 0x87, 0x11, - 0xf3, 0x27, 0xdc, 0xd3, 0x04, 0x80, 0xc1, 0xcf, 0xc0, 0xfd, 0xbe, 0xa5, 0x3e, 0x84, 0xb0, 0x3f, - 0x65, 0xc2, 0xa6, 0x7c, 0xca, 0x3d, 0x2b, 0x09, 0xc7, 0x15, 0xf9, 0x67, 0xbc, 0x24, 0x58, 0x8a, - 0xac, 0x6d, 0xdc, 0xc6, 0x3a, 0x95, 0xfd, 0xe3, 0x59, 0xed, 0xcf, 0xb9, 0xd5, 0x28, 0x56, 0xb2, - 0xda, 0x2e, 0x4c, 0x31, 0x89, 0xc7, 0xf3, 0xeb, 0xe7, 0x78, 0x61, 0xa5, 0xe8, 0x3d, 0xd9, 0xbb, - 0x3f, 0x07, 0xd3, 0xc2, 0x9c, 0xbc, 0x03, 0x73, 0xca, 0x78, 0x61, 0x20, 0x58, 0xf2, 0xe7, 0x99, - 0x64, 0x5e, 0xf1, 0x45, 0x0b, 0xe7, 0x6c, 0x54, 0x5a, 0x58, 0xf8, 0xd3, 0x90, 0xe6, 0xc2, 0xbb, - 0x36, 0x6a, 0xf0, 0x9b, 0x07, 0x36, 0x72, 0x63, 0x2d, 0x84, 0xe8, 0xbf, 0x50, 0x5c, 0xb5, 0xe7, - 0x81, 0x63, 0xc9, 0x6b, 0x90, 0x12, 0xfd, 0x46, 0xb9, 0x7e, 0xd4, 0x6a, 0xa2, 0xd6, 0x72, 0xb0, - 0xc4, 0xbf, 0xe4, 0x9e, 0x12, 0xb8, 0x35, 0x02, 0xcb, 0x96, 0x20, 0x49, 0x3e, 0x86, 0x0d, 0xc9, - 0x2f, 0x30, 0x41, 0x63, 0x2e, 0x8a, 0x15, 0x0e, 0xd4, 0x29, 0xa1, 0x9e, 0x37, 0x4c, 0xfd, 0xfb, - 0x2b, 0x5e, 0x38, 0x18, 0x84, 0x46, 0xdf, 0xb8, 0x32, 0x13, 0x1b, 0x41, 0xdb, 0xaf, 0xe9, 0x5f, - 0x7a, 0x8d, 0xe5, 0xac, 0x3c, 0x11, 0x67, 0xd7, 0xb1, 0x79, 0xe4, 0xe9, 0x32, 0x58, 0xd8, 0x7b, - 0x5e, 0x13, 0x16, 0x92, 0x66, 0xcb, 0xec, 0x75, 0x18, 0x93, 0xa6, 0xca, 0x60, 0x51, 0xbf, 0xcc, - 0x44, 0x8d, 0x7a, 0x67, 0xca, 0xec, 0x25, 0x88, 0xe2, 0x69, 0x2f, 0x18, 0xfe, 0x2b, 0x0c, 0x4e, - 0xd8, 0xb3, 0x6f, 0x81, 0x38, 0x9f, 0xee, 0x82, 0xa1, 0xef, 0x65, 0x50, 0x01, 0xc1, 0x70, 0x3e, - 0xd5, 0x05, 0xc3, 0x7f, 0x95, 0xc3, 0x39, 0x04, 0xc3, 0xc3, 0x9b, 0xf0, 0x95, 0x5f, 0x8f, 0xb2, - 0x72, 0xc5, 0x6d, 0x87, 0xf7, 0x7c, 0xe8, 0x1c, 0x17, 0x8c, 0x7e, 0x3f, 0xbb, 0x38, 0x47, 0x64, - 0xaf, 0x40, 0x2c, 0xa4, 0xc1, 0x7f, 0x83, 0x41, 0x29, 0x3f, 0x9a, 0x41, 0x12, 0x9e, 0x79, 0x2d, - 0x18, 0xfe, 0x9b, 0x0c, 0xee, 0x45, 0x61, 0xd5, 0xd9, 0xbc, 0x16, 0x2c, 0xe0, 0xb7, 0xb8, 0xea, - 0x0c, 0x81, 0xcd, 0xc6, 0xa7, 0xb4, 0x60, 0xf4, 0x6f, 0x73, 0xab, 0x73, 0x08, 0xca, 0xa6, 0x11, - 0x51, 0xa6, 0x82, 0xf1, 0xbf, 0xc3, 0xf0, 0x2e, 0x06, 0x5b, 0xc0, 0x53, 0x26, 0x83, 0x45, 0xfc, - 0x2e, 0xb7, 0x80, 0x07, 0x85, 0xd3, 0x48, 0x9d, 0xfa, 0x82, 0x25, 0x7d, 0x80, 0xa7, 0x91, 0x32, - 0xf3, 0x61, 0x6f, 0x92, 0x6a, 0x11, 0x2c, 0xe2, 0xf7, 0xb8, 0x37, 0x09, 0x3f, 0x56, 0x43, 0x9d, - 0x4b, 0x82, 0x65, 0xfc, 0x01, 0x57, 0x43, 0x99, 0x4a, 0xd0, 0xcc, 0x64, 0xf4, 0xce, 0x23, 0xc1, - 0xf2, 0x3e, 0xc8, 0xe4, 0x4d, 0xf4, 0x4c, 0x23, 0xd9, 0xb7, 0xc3, 0x94, 0xff, 0x1c, 0x12, 0x2c, - 0xf5, 0x43, 0xaf, 0x29, 0x5d, 0xbf, 0x77, 0x0a, 0x41, 0x53, 0xde, 0xa4, 0xdf, 0xfc, 0x11, 0x2c, - 0xf6, 0xc3, 0xaf, 0xc9, 0x0f, 0x76, 0xde, 0xe9, 0x03, 0x75, 0x68, 0xe0, 0x96, 0xee, 0x60, 0x59, - 0x2f, 0x32, 0x59, 0x1e, 0x10, 0x4e, 0x0d, 0x56, 0xb9, 0x83, 0xf1, 0x1f, 0xe5, 0xa9, 0xc1, 0x10, - 0x08, 0x1c, 0xb7, 0xbb, 0x8d, 0x06, 0x0e, 0x0e, 0x63, 0xf0, 0x91, 0x86, 0xf4, 0x7f, 0xfc, 0x88, - 0x25, 0x06, 0x07, 0xa0, 0x1a, 0x1a, 0xb3, 0x8e, 0x6e, 0x22, 0x1b, 0x04, 0x20, 0xff, 0xf3, 0x47, - 0xbc, 0x20, 0x60, 0x6e, 0x94, 0x4f, 0x40, 0x1f, 0x1a, 0xc9, 0x1a, 0x76, 0x00, 0xf6, 0xbf, 0x7e, - 0xc4, 0xb6, 0x59, 0x5d, 0x88, 0x2b, 0x80, 0x6e, 0xda, 0x0e, 0x16, 0xf0, 0x5d, 0x59, 0x00, 0x79, - 0xd0, 0xbc, 0x06, 0xc3, 0xf8, 0x64, 0x47, 0xa7, 0x72, 0x10, 0x84, 0xfe, 0x6f, 0x86, 0xe6, 0xfc, - 0xd8, 0x60, 0x47, 0xcd, 0xb6, 0x85, 0xde, 0x3a, 0x41, 0xd8, 0xff, 0x61, 0x58, 0x01, 0xc0, 0xe0, - 0x6a, 0xc5, 0xe9, 0x84, 0xb9, 0xef, 0xff, 0xe5, 0x60, 0x0e, 0xc0, 0x4a, 0xe3, 0xf7, 0xcf, 0x59, - 0xb7, 0x83, 0xb0, 0xdf, 0xe3, 0x4a, 0x33, 0x7e, 0x54, 0x00, 0x47, 0xf0, 0x5b, 0x7a, 0xf4, 0x20, - 0x00, 0xfc, 0x7d, 0x06, 0x76, 0x11, 0xf9, 0xf3, 0xfe, 0x4b, 0x3b, 0xb0, 0xda, 0x5c, 0x6d, 0xd2, - 0x45, 0x1d, 0x78, 0xb1, 0x0e, 0x63, 0x9d, 0x43, 0x0b, 0x57, 0x5c, 0xb6, 0x06, 0x13, 0xc5, 0xef, - 0xa7, 0x8f, 0xb7, 0x70, 0x43, 0x76, 0x61, 0x36, 0xeb, 0x58, 0x97, 0x4d, 0xb2, 0x84, 0x68, 0x9c, - 0x86, 0x21, 0xa2, 0xdd, 0x12, 0x59, 0xe1, 0xd6, 0xf2, 0xd1, 0x3b, 0xaf, 0x9e, 0x3d, 0x61, 0x0e, - 0x91, 0xd3, 0x78, 0x4b, 0x82, 0xba, 0x4c, 0x16, 0xf0, 0x23, 0x12, 0x75, 0x59, 0x50, 0x2f, 0xd2, - 0xa3, 0x4e, 0x12, 0xf5, 0xa2, 0xa0, 0xae, 0x90, 0xd5, 0x30, 0x5d, 0xa2, 0xae, 0x08, 0xea, 0x25, - 0xb2, 0xa8, 0x39, 0x26, 0x51, 0x2f, 0x09, 0xea, 0x65, 0xb2, 0x94, 0x19, 0x95, 0xa8, 0x97, 0x05, - 0xf5, 0x0a, 0x59, 0xc5, 0x9c, 0x90, 0xa8, 0x57, 0x04, 0xf5, 0x2a, 0x59, 0xbd, 0x34, 0x24, 0xea, - 0x55, 0x41, 0xbd, 0x46, 0x36, 0x9f, 0x87, 0x25, 0xea, 0x35, 0xe3, 0x0c, 0x0c, 0x53, 0x6b, 0x2c, - 0x92, 0x0d, 0x9b, 0x71, 0x46, 0x1e, 0xa6, 0xe6, 0x58, 0x74, 0xe9, 0x4b, 0x64, 0xa3, 0x79, 0x48, - 0xa6, 0x2f, 0xb9, 0xf4, 0x65, 0x72, 0x78, 0x32, 0x25, 0xd3, 0x97, 0x5d, 0xfa, 0xc5, 0xf4, 0x18, - 0xce, 0x58, 0x99, 0x7e, 0xd1, 0xa5, 0xaf, 0xa4, 0x93, 0x38, 0x48, 0x64, 0xfa, 0x8a, 0x4b, 0xbf, - 0x94, 0x1e, 0xc7, 0x0b, 0xb8, 0x32, 0xfd, 0x52, 0xe6, 0xdd, 0xc4, 0xbd, 0xb6, 0xeb, 0xde, 0x29, - 0xd9, 0xbd, 0xc2, 0xb1, 0x53, 0xb2, 0x63, 0x85, 0x4b, 0xa7, 0x64, 0x97, 0x0a, 0x67, 0x4e, 0xc9, - 0xce, 0x14, 0x6e, 0x9c, 0x92, 0xdd, 0x28, 0x1c, 0x38, 0x25, 0x3b, 0x50, 0xb8, 0x6e, 0x4a, 0x76, - 0x9d, 0x70, 0xda, 0x94, 0xec, 0x34, 0xe1, 0xae, 0x29, 0xd9, 0x5d, 0xc2, 0x51, 0x69, 0xc5, 0x51, - 0xae, 0x8b, 0xd2, 0x8a, 0x8b, 0x5c, 0xe7, 0xa4, 0x15, 0xe7, 0xb8, 0x6e, 0x49, 0x2b, 0x6e, 0x71, - 0x1d, 0x92, 0x56, 0x1c, 0xe2, 0xba, 0x22, 0xad, 0xb8, 0xc2, 0x75, 0x02, 0xcb, 0x31, 0xd3, 0x6a, - 0xf9, 0xe4, 0x98, 0x3e, 0x30, 0xc7, 0xf4, 0x81, 0x39, 0xa6, 0x0f, 0xcc, 0x31, 0x7d, 0x60, 0x8e, - 0xe9, 0x03, 0x73, 0x4c, 0x1f, 0x98, 0x63, 0xfa, 0xc0, 0x1c, 0xd3, 0x07, 0xe6, 0x98, 0x3e, 0x38, - 0xc7, 0xf4, 0x80, 0x1c, 0xd3, 0x03, 0x72, 0x4c, 0x0f, 0xc8, 0x31, 0x3d, 0x20, 0xc7, 0xf4, 0x80, - 0x1c, 0xd3, 0xfb, 0xe6, 0x98, 0xeb, 0xde, 0x29, 0xd9, 0xbd, 0xbe, 0x39, 0xa6, 0xf7, 0xc9, 0x31, - 0xbd, 0x4f, 0x8e, 0xe9, 0x7d, 0x72, 0x4c, 0xef, 0x93, 0x63, 0x7a, 0x9f, 0x1c, 0xd3, 0xfb, 0xe4, - 0x98, 0xde, 0x27, 0xc7, 0xf4, 0x7e, 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, - 0x73, 0x4c, 0xef, 0x9b, 0x63, 0x7a, 0xdf, 0x1c, 0xd3, 0xbd, 0x39, 0xf6, 0x37, 0x3a, 0x18, 0x34, - 0xc7, 0xb6, 0xc9, 0x96, 0x3f, 0x73, 0xc5, 0x19, 0x25, 0xd3, 0x86, 0xb0, 0xeb, 0x52, 0xae, 0x4b, - 0xce, 0x28, 0xb9, 0x26, 0xd3, 0x97, 0x05, 0x9d, 0x67, 0x9b, 0x4c, 0xbf, 0x28, 0xe8, 0x3c, 0xdf, - 0x64, 0xfa, 0x8a, 0xa0, 0xf3, 0x8c, 0x93, 0xe9, 0x97, 0x04, 0x9d, 0xe7, 0x9c, 0x4c, 0xbf, 0x2c, - 0xe8, 0x3c, 0xeb, 0x64, 0xfa, 0x15, 0x41, 0xe7, 0x79, 0x27, 0xd3, 0xaf, 0x0a, 0x3a, 0xcf, 0x3c, - 0x99, 0x7e, 0xcd, 0x38, 0xa7, 0xe6, 0x1e, 0x67, 0x10, 0xae, 0x3d, 0xa7, 0x66, 0x9f, 0xc2, 0xb1, - 0xe4, 0x72, 0xf0, 0xfc, 0x53, 0x38, 0x96, 0x5d, 0x0e, 0x9e, 0x81, 0x0a, 0xc7, 0xc5, 0xcc, 0xfb, - 0x88, 0xfb, 0x6c, 0xd5, 0x7d, 0xd3, 0x8a, 0xfb, 0x22, 0x1e, 0xd7, 0x4d, 0x2b, 0xae, 0x8b, 0x78, - 0xdc, 0x36, 0xad, 0xb8, 0x2d, 0xe2, 0x71, 0xd9, 0xb4, 0xe2, 0xb2, 0x88, 0xc7, 0x5d, 0xd3, 0x8a, - 0xbb, 0x22, 0x1e, 0x57, 0x4d, 0x2b, 0xae, 0x8a, 0x78, 0xdc, 0x34, 0xad, 0xb8, 0x29, 0xe2, 0x71, - 0xd1, 0xb4, 0xe2, 0xa2, 0x88, 0xc7, 0x3d, 0xd3, 0x8a, 0x7b, 0x22, 0x1e, 0xd7, 0x9c, 0x56, 0x5d, - 0x13, 0xf1, 0xba, 0xe5, 0xb4, 0xea, 0x96, 0x88, 0xd7, 0x25, 0xa7, 0x55, 0x97, 0x44, 0xbc, 0xee, - 0x38, 0xad, 0xba, 0x23, 0xe2, 0x75, 0xc5, 0x8f, 0x23, 0xbc, 0x23, 0xdc, 0xe9, 0xb4, 0xbb, 0xd5, - 0xce, 0x5d, 0x75, 0x84, 0x8b, 0x52, 0xfb, 0x90, 0x58, 0x36, 0x16, 0x48, 0xc3, 0xea, 0xed, 0x38, - 0x95, 0x19, 0x6c, 0x51, 0x6a, 0x2c, 0x3c, 0x08, 0xdb, 0x1f, 0xb1, 0x72, 0x57, 0xbd, 0xe1, 0xa2, - 0xd4, 0x66, 0x04, 0xeb, 0x77, 0xf5, 0x0d, 0xef, 0xd8, 0x5e, 0x89, 0xf0, 0x8e, 0x8d, 0x99, 0xff, - 0xb8, 0x1d, 0xdb, 0x7c, 0xb0, 0xc9, 0x85, 0xb1, 0xe7, 0x83, 0x8d, 0xdd, 0x33, 0xeb, 0x84, 0xed, - 0xe0, 0xe6, 0x83, 0x4d, 0x2b, 0x8c, 0x7a, 0x6f, 0xfb, 0x2d, 0x16, 0xc1, 0xa8, 0x98, 0xf8, 0x44, - 0xf0, 0x71, 0xfb, 0xad, 0x45, 0xa9, 0x94, 0x1c, 0x37, 0x82, 0xf5, 0x63, 0x47, 0xf0, 0x71, 0x3b, - 0xaf, 0x45, 0xa9, 0xbc, 0x1c, 0x3b, 0x82, 0xdf, 0x80, 0x7e, 0x88, 0x45, 0xb0, 0x6b, 0xfe, 0xe3, - 0xf6, 0x43, 0xf3, 0xc1, 0x26, 0xf7, 0x8d, 0x60, 0xfd, 0x18, 0x11, 0x1c, 0xa6, 0x3f, 0x9a, 0x0f, - 0x36, 0xad, 0x7f, 0x04, 0xdf, 0x75, 0x37, 0xf3, 0x71, 0x0d, 0x26, 0xd0, 0x65, 0x4a, 0x78, 0xf5, - 0xa6, 0x66, 0xd5, 0x98, 0x1d, 0x17, 0xa5, 0x4a, 0xd0, 0xc7, 0xd5, 0x5f, 0x7d, 0xf5, 0xac, 0x6b, - 0xe1, 0x4b, 0x10, 0xa7, 0x16, 0x5e, 0x5c, 0x4c, 0xdf, 0xd1, 0x02, 0x2a, 0x5c, 0x7c, 0x9f, 0xb1, - 0x1a, 0xe7, 0x39, 0x0c, 0xcd, 0x3d, 0x5f, 0xd3, 0x3c, 0x55, 0x8e, 0xb1, 0x2c, 0x2d, 0x66, 0x3e, - 0x40, 0x34, 0xb4, 0xef, 0x5a, 0xc3, 0x0b, 0xa1, 0x34, 0xf4, 0xe8, 0xf6, 0x40, 0x8f, 0x6e, 0x1e, - 0xad, 0xba, 0x30, 0x8e, 0x60, 0x9b, 0xe4, 0x6b, 0x7b, 0x61, 0x54, 0xa2, 0x3c, 0x4a, 0x3d, 0x58, - 0x94, 0xc2, 0xd2, 0x8b, 0x10, 0x21, 0x2d, 0xd7, 0x88, 0x4c, 0x1d, 0x5f, 0xd6, 0x96, 0x2e, 0x3b, - 0xdf, 0xef, 0xb2, 0x6e, 0x65, 0x17, 0x17, 0x9c, 0xef, 0x77, 0x41, 0x37, 0x87, 0xc4, 0xa5, 0x6e, - 0xf1, 0xc9, 0x99, 0x9e, 0xe2, 0x40, 0xc5, 0x21, 0xb2, 0x46, 0x0f, 0x23, 0x8e, 0xe6, 0x47, 0xb1, - 0x52, 0xff, 0xfa, 0xea, 0xd9, 0xe8, 0x5e, 0x17, 0xe9, 0x1a, 0xa9, 0xd7, 0x8c, 0x1b, 0x10, 0x7b, - 0x1b, 0xfb, 0xd6, 0x0c, 0x66, 0x58, 0x61, 0x0c, 0x8f, 0xf5, 0x5d, 0x23, 0xc2, 0x17, 0xbe, 0x40, - 0xd7, 0xed, 0x16, 0xf6, 0xea, 0x76, 0x67, 0x69, 0xf9, 0x2a, 0xfb, 0x02, 0x4d, 0xe6, 0xe7, 0x01, - 0xe8, 0x35, 0x8b, 0xf8, 0xd4, 0xff, 0x26, 0x97, 0x4c, 0x2f, 0x7d, 0x15, 0x49, 0x5d, 0x09, 0x23, - 0xf5, 0xf1, 0x1a, 0x42, 0x3f, 0x8e, 0x97, 0xd7, 0x16, 0xf2, 0xb7, 0xd1, 0x38, 0x97, 0xde, 0xe2, - 0xb3, 0x1e, 0xbb, 0xaf, 0xb4, 0xe7, 0xbe, 0xe2, 0xd2, 0x3d, 0x5d, 0x97, 0xef, 0x69, 0xf1, 0xf5, - 0xde, 0xcf, 0x2d, 0x3e, 0x49, 0x28, 0x96, 0xd4, 0x83, 0x2c, 0xa9, 0xdf, 0xad, 0x25, 0x5b, 0xbc, - 0x3e, 0x2a, 0xf7, 0xaa, 0x0f, 0xba, 0x57, 0xfd, 0x6e, 0xee, 0xf5, 0x07, 0x34, 0x5b, 0x45, 0x3e, - 0xed, 0xd9, 0xf4, 0x10, 0xdc, 0xcf, 0xd6, 0x5a, 0xd0, 0x3d, 0xed, 0x02, 0xb2, 0xd1, 0x3b, 0x2f, - 0x9d, 0xd5, 0x32, 0x1f, 0x8f, 0xf0, 0x3b, 0xa7, 0x89, 0xf4, 0xfa, 0xee, 0xfc, 0x67, 0xa5, 0xa7, - 0x7a, 0x23, 0x2c, 0xf4, 0x31, 0x0d, 0xa6, 0x7a, 0x2a, 0x39, 0x35, 0xd3, 0xbd, 0x2d, 0xe7, 0xf6, - 0x71, 0xcb, 0x39, 0x53, 0xf0, 0x0b, 0x1a, 0x4c, 0x2a, 0xe5, 0x95, 0xaa, 0x77, 0x41, 0x51, 0xef, - 0xbe, 0xde, 0x2b, 0x11, 0x46, 0x8f, 0x76, 0x5e, 0xf7, 0x2a, 0x00, 0x8f, 0x64, 0xe1, 0xf7, 0x15, - 0xc5, 0xef, 0xa7, 0x05, 0xc0, 0xc7, 0x5c, 0x3c, 0x02, 0x98, 0xda, 0x4d, 0x88, 0xee, 0xb6, 0x2d, - 0xbc, 0x04, 0x11, 0xd9, 0x6a, 0x33, 0x0d, 0x93, 0x14, 0xbf, 0xd5, 0xce, 0xb7, 0x2b, 0x76, 0xf5, - 0xd0, 0x8c, 0x34, 0xdb, 0x68, 0xb2, 0xd5, 0x73, 0xec, 0xeb, 0xc5, 0x89, 0xe5, 0x71, 0xca, 0x80, - 0x06, 0x18, 0x87, 0x5e, 0xb1, 0x6b, 0x48, 0x44, 0x74, 0xdd, 0xaa, 0xec, 0x33, 0x25, 0x80, 0xf2, - 0xe0, 0x11, 0x33, 0xda, 0x40, 0xff, 0xb3, 0x0b, 0x3e, 0x0d, 0x71, 0x2e, 0xd8, 0x98, 0xc1, 0x88, - 0xfd, 0x0e, 0xbb, 0x2c, 0x43, 0x60, 0x75, 0xd8, 0xcc, 0x85, 0x70, 0xfb, 0x1d, 0x63, 0x16, 0x62, - 0x66, 0xfd, 0xe0, 0xb0, 0xc3, 0x2e, 0xde, 0xcb, 0x16, 0x6b, 0x63, 0x72, 0xe6, 0x19, 0x18, 0x11, - 0x1a, 0xdd, 0x63, 0xd1, 0x45, 0x7a, 0x6b, 0xe8, 0x49, 0xd8, 0x33, 0x9f, 0xf0, 0x75, 0x4b, 0xf6, - 0xd5, 0xcd, 0x73, 0x10, 0x47, 0x66, 0x76, 0x8b, 0x3e, 0xef, 0x48, 0xf1, 0x3e, 0x3b, 0x19, 0xcd, - 0xbc, 0x5b, 0x83, 0x78, 0xd1, 0xb2, 0x5a, 0xc4, 0xe0, 0x0f, 0x43, 0xb4, 0xd8, 0x7c, 0xc1, 0x66, - 0x0a, 0x4e, 0x30, 0x8b, 0x62, 0x32, 0xb3, 0x69, 0xb4, 0x86, 0xc8, 0x88, 0xcd, 0x63, 0xf7, 0x93, - 0xc2, 0xee, 0x1e, 0x3e, 0x62, 0xfb, 0x8c, 0x64, 0x7b, 0xe6, 0x40, 0xcc, 0xd4, 0x63, 0xff, 0x2b, - 0x90, 0xf0, 0x5c, 0xc5, 0x98, 0x63, 0x6a, 0x44, 0x54, 0xa0, 0xd7, 0x56, 0x58, 0x93, 0x8c, 0x05, - 0x63, 0xd2, 0x85, 0x31, 0xd4, 0x63, 0xe2, 0x3e, 0x50, 0x62, 0xe6, 0x79, 0xd9, 0xcc, 0xfe, 0xac, - 0xcc, 0xd4, 0x8b, 0xd4, 0x46, 0xc4, 0xdc, 0x33, 0x34, 0x38, 0xfb, 0x3b, 0xb1, 0x83, 0xde, 0x67, - 0x62, 0xa0, 0x6f, 0xd6, 0x1b, 0x99, 0xb7, 0x00, 0xd0, 0x94, 0xc7, 0x47, 0xa6, 0x94, 0xac, 0x4b, - 0x72, 0x03, 0xef, 0x1e, 0x5a, 0xbb, 0xe8, 0x2f, 0x66, 0x91, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, - 0x18, 0xc1, 0x3f, 0x1a, 0x88, 0xf7, 0xed, 0xc4, 0x30, 0x6b, 0x9a, 0xb2, 0x3e, 0x63, 0x75, 0x72, - 0x76, 0xb3, 0x73, 0x68, 0xb5, 0x15, 0xc4, 0xb2, 0x71, 0x51, 0x4a, 0xd8, 0xe4, 0xf2, 0x03, 0x02, - 0xd1, 0x17, 0x74, 0x31, 0xf3, 0x39, 0xa2, 0x20, 0x6e, 0x05, 0x7a, 0x6e, 0x50, 0x0f, 0x71, 0x83, - 0xc6, 0x65, 0xa9, 0x7f, 0x1b, 0xa0, 0xa6, 0xf2, 0x68, 0x79, 0x4d, 0x7a, 0xce, 0x19, 0xac, 0xac, - 0xfc, 0x8c, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x34, 0x50, 0xe5, 0x3e, 0xdd, 0xed, 0x71, 0x6d, 0xaa, - 0x87, 0xb5, 0xe9, 0x97, 0x44, 0xc7, 0x41, 0xbf, 0xe1, 0x4d, 0x7e, 0x17, 0xc0, 0x78, 0x2c, 0xd0, - 0xf7, 0x59, 0xad, 0x20, 0x54, 0x5d, 0x09, 0xeb, 0xfe, 0x6c, 0x24, 0x9f, 0x17, 0xea, 0x5e, 0x39, - 0x46, 0x08, 0x64, 0x23, 0x85, 0x82, 0x28, 0xdb, 0xf1, 0xf7, 0xa1, 0x2c, 0x7e, 0xf9, 0xa5, 0xb3, - 0x27, 0x32, 0x9f, 0x41, 0xca, 0x33, 0x4e, 0x4f, 0xe0, 0x3e, 0xae, 0x28, 0x7f, 0x8a, 0xd7, 0x0c, - 0x3f, 0x0b, 0xfc, 0xc4, 0x82, 0xf7, 0x2b, 0x1a, 0xa4, 0x7b, 0x74, 0xe5, 0xf6, 0x5e, 0x0c, 0xa5, - 0x72, 0x56, 0x2b, 0xfd, 0xf4, 0x6d, 0xfe, 0x0c, 0xc4, 0x76, 0xeb, 0x47, 0x56, 0x1b, 0xcf, 0x04, - 0xf8, 0x0d, 0x55, 0x99, 0x6f, 0xe6, 0xc4, 0x3a, 0x78, 0x88, 0xd3, 0xa8, 0x72, 0x12, 0x0d, 0xef, - 0x27, 0x44, 0x8b, 0x95, 0x4e, 0x85, 0x68, 0x30, 0x2a, 0xea, 0x2b, 0x1a, 0xc9, 0x5c, 0x84, 0xd1, - 0x8d, 0xdb, 0xe4, 0x6c, 0x49, 0x8d, 0x1c, 0xbb, 0x90, 0xbb, 0x3f, 0xde, 0xaf, 0x2e, 0xcd, 0xc7, - 0xe2, 0xb5, 0xd4, 0x1d, 0x2d, 0x1b, 0x25, 0xfa, 0x3c, 0x0f, 0xc9, 0x2d, 0xac, 0x36, 0xc1, 0x49, - 0x30, 0x7a, 0x75, 0x5d, 0xdc, 0xbc, 0xd2, 0x94, 0xe9, 0x6e, 0x53, 0x76, 0x0e, 0xb4, 0x0d, 0xb9, - 0x75, 0xf2, 0xea, 0x61, 0x6a, 0x47, 0xf3, 0xd1, 0x78, 0x32, 0x35, 0x81, 0xfe, 0x87, 0xd4, 0x18, - 0xbb, 0xee, 0x3f, 0xea, 0x90, 0xa2, 0xad, 0x0e, 0x72, 0x62, 0xdd, 0xae, 0x77, 0x7a, 0xfb, 0x55, - 0xa1, 0xb1, 0xf1, 0x56, 0x18, 0xc1, 0x26, 0xbd, 0xce, 0x7e, 0x5e, 0x07, 0x9b, 0xfe, 0x3c, 0x6b, - 0x51, 0x14, 0x11, 0x6c, 0x80, 0x84, 0x0e, 0xf9, 0x25, 0x1b, 0x82, 0x41, 0x0f, 0x18, 0xfa, 0xe6, - 0xe6, 0x06, 0x9b, 0xdc, 0x56, 0x06, 0x42, 0xd9, 0xc1, 0x16, 0xf6, 0x89, 0x8d, 0x39, 0x07, 0xa6, - 0x6e, 0x6f, 0x6e, 0xa0, 0xb0, 0x89, 0x20, 0x31, 0xb4, 0xe1, 0x9d, 0x09, 0x23, 0xc6, 0x8c, 0xd8, - 0x1b, 0xd3, 0x7f, 0xab, 0xc1, 0x98, 0x34, 0x8a, 0x66, 0xdb, 0x51, 0x3a, 0xe0, 0xb9, 0xdd, 0x21, - 0x73, 0xd4, 0xf6, 0x8c, 0x71, 0x9d, 0x23, 0x77, 0xa9, 0xf3, 0x74, 0x0e, 0x3d, 0xb5, 0xcb, 0xe3, - 0xc6, 0x02, 0x18, 0xde, 0x21, 0xa6, 0x04, 0xfd, 0x69, 0x12, 0xc3, 0xee, 0xa1, 0x64, 0x1e, 0x44, - 0x55, 0x58, 0xd8, 0x55, 0xfc, 0xa2, 0xc6, 0x66, 0x69, 0x07, 0xff, 0x18, 0x86, 0x96, 0xf9, 0xa2, - 0x06, 0x09, 0xd6, 0xb6, 0x56, 0x9b, 0x2d, 0xcb, 0xc8, 0x83, 0x96, 0x63, 0xf1, 0xf0, 0xfa, 0xf4, - 0xd6, 0x2a, 0x68, 0x76, 0xd2, 0xf2, 0xe1, 0x5d, 0xad, 0xdd, 0x34, 0x96, 0x41, 0x2b, 0x30, 0x07, - 0x87, 0xf3, 0x8c, 0x56, 0xcd, 0x7c, 0x5f, 0x87, 0x93, 0xde, 0x36, 0x9a, 0xd7, 0x93, 0xf3, 0xf2, - 0x73, 0x53, 0x76, 0x64, 0x69, 0xf9, 0xe2, 0xca, 0x02, 0xfe, 0x4f, 0x84, 0xe4, 0x79, 0xf9, 0x11, - 0xaa, 0x97, 0xa5, 0xe7, 0x98, 0x48, 0x36, 0xea, 0xa1, 0xf6, 0x1c, 0x13, 0x91, 0xa8, 0x3d, 0xc7, - 0x44, 0x24, 0x6a, 0xcf, 0x31, 0x11, 0x89, 0xda, 0xb3, 0x15, 0x20, 0x51, 0x7b, 0x8e, 0x89, 0x48, - 0xd4, 0x9e, 0x63, 0x22, 0x12, 0xb5, 0xf7, 0x98, 0x08, 0x23, 0xf7, 0x3d, 0x26, 0x22, 0xd3, 0x7b, - 0x8f, 0x89, 0xc8, 0xf4, 0xde, 0x63, 0x22, 0x59, 0xd4, 0x9f, 0x75, 0xad, 0xfe, 0x9b, 0x0e, 0x32, - 0x7e, 0xd0, 0x33, 0xa0, 0x5b, 0x80, 0xb7, 0x60, 0x9c, 0xae, 0x47, 0x14, 0xf0, 0xb9, 0xab, 0xba, - 0x8d, 0x4a, 0xf1, 0x9b, 0x61, 0x94, 0x0e, 0xd1, 0xa7, 0x1c, 0xbf, 0xa7, 0x40, 0x4a, 0x67, 0xe5, - 0x76, 0xb4, 0xea, 0xe1, 0xce, 0xfc, 0x38, 0x0a, 0x53, 0x94, 0x8c, 0xbf, 0x1c, 0x28, 0x1d, 0x32, - 0x9a, 0x55, 0xb6, 0x94, 0x92, 0x18, 0xfe, 0xcd, 0x57, 0xcf, 0xd2, 0xd1, 0x9c, 0x08, 0xa6, 0x59, - 0x65, 0x73, 0x49, 0xe6, 0x73, 0xe7, 0x9f, 0x59, 0xe5, 0xe0, 0x91, 0xcc, 0x27, 0xa6, 0x1b, 0xc1, - 0xc7, 0x8f, 0x20, 0xc9, 0x7c, 0x45, 0x11, 0x65, 0xb3, 0xca, 0x61, 0x24, 0x99, 0xaf, 0x24, 0xe2, - 0x6d, 0x56, 0xd9, 0x7a, 0x92, 0xf9, 0xae, 0x8b, 0xc8, 0x9b, 0x55, 0x36, 0xa1, 0x64, 0xbe, 0x55, - 0x11, 0x83, 0xb3, 0xca, 0x51, 0x25, 0x99, 0xef, 0x29, 0x11, 0x8d, 0xb3, 0xca, 0xa1, 0x25, 0x99, - 0x6f, 0x4d, 0xc4, 0xe5, 0x9c, 0x7a, 0x7c, 0x49, 0x66, 0xbc, 0xe1, 0x46, 0xe8, 0x9c, 0x7a, 0x90, - 0x49, 0xe6, 0xfc, 0x7f, 0x6e, 0xac, 0xce, 0xa9, 0x47, 0x9a, 0x64, 0xce, 0x75, 0x37, 0x6a, 0xe7, - 0xd4, 0xad, 0x32, 0x99, 0x73, 0xc3, 0x8d, 0xdf, 0x39, 0x75, 0xd3, 0x4c, 0xe6, 0xdc, 0x74, 0x23, - 0x79, 0x4e, 0xdd, 0x3e, 0x93, 0x39, 0xb7, 0xdc, 0x35, 0xf4, 0x2f, 0x2b, 0xe1, 0xe7, 0x39, 0x04, - 0x95, 0x51, 0xc2, 0x0f, 0x7c, 0x42, 0x2f, 0xa3, 0x84, 0x1e, 0xf8, 0x84, 0x5d, 0x46, 0x09, 0x3b, - 0xf0, 0x09, 0xb9, 0x8c, 0x12, 0x72, 0xe0, 0x13, 0x6e, 0x19, 0x25, 0xdc, 0xc0, 0x27, 0xd4, 0x32, - 0x4a, 0xa8, 0x81, 0x4f, 0x98, 0x65, 0x94, 0x30, 0x03, 0x9f, 0x10, 0xcb, 0x28, 0x21, 0x06, 0x3e, - 0xe1, 0x95, 0x51, 0xc2, 0x0b, 0x7c, 0x42, 0x6b, 0x46, 0x0d, 0x2d, 0xf0, 0x0b, 0xab, 0x19, 0x35, - 0xac, 0xc0, 0x2f, 0xa4, 0x1e, 0x52, 0x43, 0x6a, 0x04, 0x71, 0xc5, 0xf0, 0x90, 0x27, 0x9a, 0x66, - 0xd4, 0x68, 0x02, 0xbf, 0x48, 0x9a, 0x51, 0x23, 0x09, 0xfc, 0xa2, 0x68, 0x46, 0x8d, 0x22, 0xf0, - 0x8b, 0xa0, 0x57, 0xd4, 0x08, 0x72, 0x8f, 0xf8, 0x64, 0x94, 0x1d, 0xc5, 0xa0, 0x08, 0xd2, 0x43, - 0x44, 0x90, 0x1e, 0x22, 0x82, 0xf4, 0x10, 0x11, 0xa4, 0x87, 0x88, 0x20, 0x3d, 0x44, 0x04, 0xe9, - 0x21, 0x22, 0x48, 0x0f, 0x11, 0x41, 0x7a, 0x98, 0x08, 0xd2, 0x43, 0x45, 0x90, 0xde, 0x2f, 0x82, - 0x66, 0xd4, 0x03, 0x0f, 0xe0, 0x57, 0x90, 0x66, 0xd4, 0x9d, 0xcf, 0xe0, 0x10, 0xd2, 0x43, 0x85, - 0x90, 0xde, 0x2f, 0x84, 0xbe, 0x8c, 0x1a, 0x29, 0x29, 0x84, 0xd8, 0xf6, 0xd0, 0xbd, 0xaa, 0x40, - 0x97, 0x43, 0x9c, 0xaf, 0xf0, 0x8b, 0xa9, 0xcb, 0x21, 0xf6, 0xa8, 0x07, 0xc5, 0x59, 0x6f, 0x15, - 0x2a, 0x85, 0xa8, 0x42, 0xd7, 0x45, 0x0c, 0x5d, 0x0e, 0x71, 0xee, 0xa2, 0x37, 0xf6, 0xae, 0x0e, - 0x2a, 0x02, 0x4f, 0x85, 0x2a, 0x02, 0x6b, 0xa1, 0x8a, 0xc0, 0x0d, 0xd7, 0x83, 0xef, 0x8d, 0xc0, - 0xa4, 0xeb, 0x41, 0xfa, 0x8e, 0xfc, 0x30, 0x4a, 0xc6, 0xb3, 0x43, 0x65, 0xf0, 0x5d, 0x1b, 0x8f, - 0x1b, 0xf1, 0xfe, 0xcd, 0xb6, 0xbc, 0x57, 0x95, 0x3d, 0xee, 0xfe, 0x8d, 0xc7, 0xe3, 0x6c, 0x2d, - 0x74, 0x06, 0xf4, 0xb5, 0x9a, 0x43, 0xaa, 0x85, 0xdf, 0x65, 0x0b, 0xa6, 0x5e, 0xaf, 0x39, 0x86, - 0x09, 0x43, 0xe4, 0xba, 0x0e, 0x71, 0xef, 0xdd, 0x5c, 0x18, 0xb9, 0x9e, 0x5c, 0xd8, 0xc9, 0xbc, - 0xa2, 0xc1, 0x39, 0x29, 0x94, 0xef, 0xcd, 0x8e, 0xc1, 0x13, 0xa1, 0x76, 0x0c, 0xa4, 0x04, 0x71, - 0x77, 0x0f, 0x1e, 0xe9, 0xdd, 0xa8, 0xf6, 0x66, 0x89, 0xba, 0x93, 0xf0, 0x8b, 0x90, 0x74, 0xef, - 0x80, 0x3c, 0xb2, 0x5d, 0x0a, 0x5e, 0xcc, 0xf4, 0x4b, 0xcd, 0x4b, 0xca, 0x22, 0xda, 0x40, 0x98, - 0xc8, 0xd6, 0x4c, 0x16, 0x3d, 0x71, 0xca, 0x5f, 0x72, 0x09, 0x5a, 0x8b, 0x88, 0xe3, 0xd6, 0xfc, - 0xce, 0x27, 0x50, 0x7b, 0xfe, 0x18, 0x8c, 0x7a, 0xbf, 0xc7, 0xa2, 0x00, 0x47, 0x38, 0x30, 0x1b, - 0xfd, 0x2a, 0xe6, 0xfe, 0x7d, 0x0d, 0x4e, 0x79, 0xd9, 0xdf, 0x8e, 0x7c, 0xbf, 0x66, 0xe3, 0x9e, - 0xfe, 0x2d, 0x10, 0xb7, 0x98, 0xe3, 0xd8, 0x8f, 0x69, 0xb0, 0xc7, 0x48, 0x5f, 0xf6, 0x05, 0xf2, - 0xbf, 0x29, 0x20, 0xca, 0x22, 0x08, 0xbf, 0xec, 0xf2, 0xf4, 0xc3, 0x10, 0xa3, 0xf2, 0x65, 0xbd, - 0xc6, 0x14, 0xbd, 0x3e, 0xe5, 0xa3, 0x17, 0x89, 0x23, 0xe3, 0x86, 0xa4, 0x97, 0xe7, 0x69, 0xd5, - 0x97, 0x7d, 0x81, 0x07, 0x5f, 0x3e, 0x8e, 0xfb, 0x3f, 0x12, 0x51, 0xc1, 0x4a, 0xce, 0x41, 0xbc, - 0xa4, 0xf2, 0xf8, 0xeb, 0x59, 0x84, 0xe8, 0x26, 0xfe, 0x8d, 0xb0, 0x49, 0xf6, 0x9b, 0x98, 0xcc, - 0xc8, 0xec, 0x77, 0x57, 0x67, 0x21, 0x5e, 0x38, 0xac, 0x37, 0x6a, 0x6d, 0xcb, 0x66, 0x5b, 0xf6, - 0x6c, 0x05, 0x1d, 0x63, 0xcc, 0x78, 0x95, 0xd1, 0xe6, 0x33, 0x90, 0xf0, 0x84, 0x84, 0x11, 0x43, - 0x8f, 0xff, 0xa9, 0x13, 0xf8, 0x4f, 0x3e, 0xa5, 0xe1, 0x3f, 0x85, 0x54, 0x64, 0xfe, 0x61, 0x18, - 0x57, 0x16, 0xc8, 0x30, 0xa5, 0x98, 0x02, 0xfc, 0xa7, 0x94, 0x4a, 0x4c, 0x47, 0xdf, 0xf7, 0x87, - 0x67, 0x4e, 0xcc, 0x3f, 0x01, 0x46, 0xef, 0x52, 0x9a, 0x31, 0x04, 0x91, 0x1c, 0x16, 0x79, 0x1f, - 0x44, 0xf2, 0x48, 0xe6, 0xf4, 0xf8, 0xaf, 0x7d, 0xf4, 0x5c, 0x22, 0x4f, 0xbe, 0x06, 0x8a, 0xb8, - 0xf3, 0x79, 0x06, 0x7e, 0x12, 0x4e, 0xf9, 0x2e, 0xc5, 0x61, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, - 0x0f, 0xbe, 0x58, 0x24, 0x78, 0x2d, 0xcb, 0xb7, 0x34, 0x73, 0x86, 0xcf, 0x32, 0x56, 0xba, 0xe6, - 0xd9, 0x42, 0xcd, 0x65, 0x9f, 0x64, 0xbc, 0x79, 0x5f, 0x5e, 0x2b, 0x60, 0x4b, 0x34, 0x9f, 0x2d, - 0x30, 0x7c, 0xc1, 0x17, 0xbf, 0xaf, 0xec, 0xdb, 0xc9, 0x35, 0x88, 0x09, 0x29, 0x08, 0x85, 0x8b, - 0xbe, 0x42, 0x0e, 0x3d, 0xa7, 0xa9, 0x8b, 0x42, 0xe1, 0x92, 0x2f, 0x6f, 0x3d, 0xe0, 0x54, 0x51, - 0x29, 0x7b, 0x81, 0x4d, 0x23, 0xb9, 0x25, 0xe3, 0x14, 0x8f, 0x02, 0x29, 0xc7, 0x99, 0x81, 0xe8, - 0x8c, 0x92, 0x5b, 0x42, 0x77, 0x48, 0x01, 0xf9, 0xbe, 0x80, 0xfe, 0x56, 0xa2, 0x42, 0xf2, 0x4b, - 0xd9, 0xa7, 0x98, 0x90, 0x42, 0x5f, 0x21, 0x01, 0xa6, 0xa2, 0x92, 0x0a, 0x4b, 0xf9, 0xdd, 0x3b, - 0xdf, 0x38, 0x73, 0xe2, 0xab, 0xe8, 0xf5, 0x2f, 0xe8, 0xf5, 0xf5, 0x6f, 0x9c, 0xd1, 0xbe, 0x83, - 0x5e, 0xdf, 0x43, 0xaf, 0x1f, 0xa2, 0xd7, 0xbb, 0xbe, 0x79, 0x46, 0x7b, 0x19, 0xbd, 0x3e, 0x87, - 0x5e, 0x7f, 0x8d, 0x5e, 0xaf, 0xa0, 0xd7, 0x9d, 0x6f, 0x22, 0x7e, 0xf4, 0xfa, 0x3a, 0x7a, 0xff, - 0x1d, 0xf4, 0xf7, 0x7b, 0xe8, 0xef, 0x0f, 0xd1, 0xdf, 0x77, 0x7d, 0xeb, 0xcc, 0x89, 0x97, 0xd0, - 0xeb, 0xe5, 0x6f, 0x9d, 0xd1, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x71, 0x02, 0xea, 0x96, 0x09, - 0x5f, 0x00, 0x00, + // 6499 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x24, 0x57, + 0x75, 0xbf, 0x7a, 0x7a, 0xa4, 0x1d, 0x1d, 0xbd, 0x5a, 0xad, 0xb5, 0x76, 0x2c, 0xaf, 0xa5, 0xdd, + 0xf1, 0x7a, 0x2d, 0x0b, 0x5b, 0xab, 0xd5, 0x4a, 0xfb, 0x98, 0xc5, 0x76, 0xcd, 0x6b, 0xd7, 0x5a, + 0xa4, 0x91, 0x68, 0x49, 0xd8, 0xcb, 0xff, 0x5f, 0x35, 0xd5, 0x3b, 0x73, 0x25, 0x8d, 0x3d, 0xd3, + 0x3d, 0x4c, 0xf7, 0xd8, 0x96, 0x3f, 0xfc, 0xcb, 0x7f, 0xf8, 0xff, 0x09, 0x24, 0x95, 0x27, 0x49, + 0x05, 0x08, 0x18, 0x43, 0x8a, 0x60, 0x20, 0x0f, 0x48, 0x08, 0xa1, 0xa8, 0x54, 0xf0, 0x17, 0x92, + 0xcd, 0x97, 0x94, 0xc9, 0xa7, 0x14, 0x95, 0x72, 0xe1, 0x35, 0x55, 0x21, 0x89, 0x93, 0x40, 0x70, + 0x15, 0x54, 0x99, 0x0f, 0xa9, 0xfb, 0xea, 0xee, 0x7b, 0xa7, 0x47, 0xdd, 0xf2, 0xda, 0xc0, 0x97, + 0xdd, 0x99, 0x7b, 0xce, 0xef, 0xf4, 0xb9, 0xe7, 0x75, 0x4f, 0xdf, 0x7b, 0x35, 0xf0, 0xda, 0x32, + 0x9c, 0xd8, 0xb5, 0xed, 0xdd, 0x06, 0x3a, 0xd3, 0x6a, 0xdb, 0xae, 0x7d, 0xa3, 0xb3, 0x73, 0xa6, + 0x86, 0x9c, 0x6a, 0xbb, 0xde, 0x72, 0xed, 0xf6, 0x3c, 0x19, 0xd3, 0xc7, 0x28, 0xc7, 0x3c, 0xe7, + 0xc8, 0xac, 0xc1, 0xf8, 0x95, 0x7a, 0x03, 0x15, 0x3d, 0xc6, 0x4d, 0xe4, 0xea, 0x17, 0x21, 0xb9, + 0x53, 0x6f, 0xa0, 0xb4, 0x72, 0x42, 0x9d, 0x1d, 0x5a, 0x3c, 0x35, 0x2f, 0x81, 0xe6, 0x45, 0xc4, + 0x06, 0x1e, 0x36, 0x08, 0x22, 0xf3, 0xfd, 0x24, 0x4c, 0x84, 0x50, 0x75, 0x1d, 0x92, 0x96, 0xd9, + 0xc4, 0x12, 0x95, 0xd9, 0x41, 0x83, 0x7c, 0xd6, 0xd3, 0x70, 0xa4, 0x65, 0x56, 0x9f, 0x34, 0x77, + 0x51, 0x3a, 0x41, 0x86, 0xf9, 0x57, 0x7d, 0x1a, 0xa0, 0x86, 0x5a, 0xc8, 0xaa, 0x21, 0xab, 0xba, + 0x9f, 0x56, 0x4f, 0xa8, 0xb3, 0x83, 0x46, 0x60, 0x44, 0x7f, 0x17, 0x8c, 0xb7, 0x3a, 0x37, 0x1a, + 0xf5, 0x6a, 0x25, 0xc0, 0x06, 0x27, 0xd4, 0xd9, 0x7e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x1f, + 0x8c, 0x3d, 0x8d, 0xcc, 0x27, 0x83, 0xac, 0x43, 0x84, 0x75, 0x14, 0x0f, 0x07, 0x18, 0x0b, 0x30, + 0xdc, 0x44, 0x8e, 0x63, 0xee, 0xa2, 0x8a, 0xbb, 0xdf, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0x89, 0xae, + 0xd9, 0xcb, 0x33, 0x1f, 0x62, 0xa8, 0xad, 0xfd, 0x16, 0xd2, 0x73, 0x30, 0x88, 0xac, 0x4e, 0x93, + 0x4a, 0xe8, 0xef, 0x61, 0xbf, 0x92, 0xd5, 0x69, 0xca, 0x52, 0x52, 0x18, 0xc6, 0x44, 0x1c, 0x71, + 0x50, 0xfb, 0xa9, 0x7a, 0x15, 0xa5, 0x07, 0x88, 0x80, 0xfb, 0xba, 0x04, 0x6c, 0x52, 0xba, 0x2c, + 0x83, 0xe3, 0xf4, 0x02, 0x0c, 0xa2, 0x67, 0x5c, 0x64, 0x39, 0x75, 0xdb, 0x4a, 0x1f, 0x21, 0x42, + 0xee, 0x0d, 0xf1, 0x22, 0x6a, 0xd4, 0x64, 0x11, 0x3e, 0x4e, 0x3f, 0x0f, 0x47, 0xec, 0x96, 0x5b, + 0xb7, 0x2d, 0x27, 0x9d, 0x3a, 0xa1, 0xcc, 0x0e, 0x2d, 0x1e, 0x0f, 0x0d, 0x84, 0x75, 0xca, 0x63, + 0x70, 0x66, 0x7d, 0x05, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b, 0xa8, 0x52, 0xb7, + 0x76, 0xec, 0xf4, 0x20, 0x11, 0x30, 0xd3, 0x3d, 0x11, 0xc2, 0x58, 0xb0, 0x6b, 0x68, 0xc5, 0xda, + 0xb1, 0x8d, 0x51, 0x47, 0xf8, 0xae, 0x4f, 0xc2, 0x80, 0xb3, 0x6f, 0xb9, 0xe6, 0x33, 0xe9, 0x61, + 0x12, 0x21, 0xec, 0x5b, 0xe6, 0x27, 0xfd, 0x30, 0x16, 0x27, 0xc4, 0x2e, 0x43, 0xff, 0x0e, 0x9e, + 0x65, 0x3a, 0x71, 0x18, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x81, 0xb7, 0x68, 0xc4, 0x1c, 0x0c, 0x59, + 0xc8, 0x71, 0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0xba, 0x43, 0x2a, 0xf9, 0x96, + 0x42, 0xea, 0x71, 0x18, 0xf3, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x97, 0xc7, 0xe6, 0x99, 0x28, 0x4d, + 0xe6, 0x4b, 0x1c, 0x67, 0x60, 0x98, 0x31, 0x8a, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, + 0x53, 0xa9, 0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x61, 0xa5, 0x75, 0xcc, 0xd2, 0x65, 0x25, 0x9b, 0x8e, + 0x56, 0x1b, 0xfa, 0x25, 0x3f, 0xd4, 0x8e, 0xf4, 0x88, 0x94, 0x35, 0x9a, 0x64, 0x5d, 0xd1, 0xb6, + 0x0d, 0xa3, 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0xcc, 0x06, 0x89, 0x12, 0xf3, 0x91, 0x33, 0x33, + 0x18, 0x8c, 0x4e, 0x6c, 0xa4, 0x1d, 0xfc, 0xaa, 0xdf, 0x03, 0xde, 0x40, 0x85, 0x84, 0x15, 0x90, + 0x2a, 0x34, 0xcc, 0x07, 0xcb, 0x66, 0x13, 0x4d, 0x5d, 0x84, 0x51, 0xd1, 0x3c, 0xfa, 0x51, 0xe8, + 0x77, 0x5c, 0xb3, 0xed, 0x92, 0x28, 0xec, 0x37, 0xe8, 0x17, 0x5d, 0x03, 0x15, 0x59, 0x35, 0x52, + 0xe5, 0xfa, 0x0d, 0xfc, 0x71, 0xea, 0x02, 0x8c, 0x08, 0x8f, 0x8f, 0x0b, 0xcc, 0x7c, 0x7c, 0x00, + 0x8e, 0x86, 0xc5, 0x5c, 0x68, 0xf8, 0x4f, 0xc2, 0x80, 0xd5, 0x69, 0xde, 0x40, 0xed, 0xb4, 0x4a, + 0x24, 0xb0, 0x6f, 0x7a, 0x0e, 0xfa, 0x1b, 0xe6, 0x0d, 0xd4, 0x48, 0x27, 0x4f, 0x28, 0xb3, 0xa3, + 0x8b, 0xef, 0x8a, 0x15, 0xd5, 0xf3, 0xab, 0x18, 0x62, 0x50, 0xa4, 0xfe, 0x30, 0x24, 0x59, 0x89, + 0xc3, 0x12, 0xe6, 0xe2, 0x49, 0xc0, 0xb1, 0x68, 0x10, 0x9c, 0x7e, 0x17, 0x0c, 0xe2, 0xff, 0xa9, + 0x6d, 0x07, 0x88, 0xce, 0x29, 0x3c, 0x80, 0xed, 0xaa, 0x4f, 0x41, 0x8a, 0x84, 0x59, 0x0d, 0xf1, + 0xa5, 0xc1, 0xfb, 0x8e, 0x1d, 0x53, 0x43, 0x3b, 0x66, 0xa7, 0xe1, 0x56, 0x9e, 0x32, 0x1b, 0x1d, + 0x44, 0x02, 0x66, 0xd0, 0x18, 0x66, 0x83, 0xef, 0xc3, 0x63, 0xfa, 0x0c, 0x0c, 0xd1, 0xa8, 0xac, + 0x5b, 0x35, 0xf4, 0x0c, 0xa9, 0x3e, 0xfd, 0x06, 0x0d, 0xd4, 0x15, 0x3c, 0x82, 0x1f, 0xff, 0x84, + 0x63, 0x5b, 0xdc, 0xb5, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0x82, 0x5c, 0xf8, 0xee, 0x0e, 0x9f, + 0x9e, 0x1c, 0x8b, 0x99, 0xaf, 0x27, 0x20, 0x49, 0xf2, 0x6d, 0x0c, 0x86, 0xb6, 0xae, 0x6f, 0x94, + 0x2a, 0xc5, 0xf5, 0xed, 0xfc, 0x6a, 0x49, 0x53, 0xf4, 0x51, 0x00, 0x32, 0x70, 0x65, 0x75, 0x3d, + 0xb7, 0xa5, 0x25, 0xbc, 0xef, 0x2b, 0xe5, 0xad, 0xf3, 0x4b, 0x9a, 0xea, 0x01, 0xb6, 0xe9, 0x40, + 0x32, 0xc8, 0x70, 0x6e, 0x51, 0xeb, 0xd7, 0x35, 0x18, 0xa6, 0x02, 0x56, 0x1e, 0x2f, 0x15, 0xcf, + 0x2f, 0x69, 0x03, 0xe2, 0xc8, 0xb9, 0x45, 0xed, 0x88, 0x3e, 0x02, 0x83, 0x64, 0x24, 0xbf, 0xbe, + 0xbe, 0xaa, 0xa5, 0x3c, 0x99, 0x9b, 0x5b, 0xc6, 0x4a, 0xf9, 0xaa, 0x36, 0xe8, 0xc9, 0xbc, 0x6a, + 0xac, 0x6f, 0x6f, 0x68, 0xe0, 0x49, 0x58, 0x2b, 0x6d, 0x6e, 0xe6, 0xae, 0x96, 0xb4, 0x21, 0x8f, + 0x23, 0x7f, 0x7d, 0xab, 0xb4, 0xa9, 0x0d, 0x0b, 0x6a, 0x9d, 0x5b, 0xd4, 0x46, 0xbc, 0x47, 0x94, + 0xca, 0xdb, 0x6b, 0xda, 0xa8, 0x3e, 0x0e, 0x23, 0xf4, 0x11, 0x5c, 0x89, 0x31, 0x69, 0xe8, 0xfc, + 0x92, 0xa6, 0xf9, 0x8a, 0x50, 0x29, 0xe3, 0xc2, 0xc0, 0xf9, 0x25, 0x4d, 0xcf, 0x14, 0xa0, 0x9f, + 0x44, 0x97, 0xae, 0xc3, 0xe8, 0x6a, 0x2e, 0x5f, 0x5a, 0xad, 0xac, 0x6f, 0x6c, 0xad, 0xac, 0x97, + 0x73, 0xab, 0x9a, 0xe2, 0x8f, 0x19, 0xa5, 0xf7, 0x6e, 0xaf, 0x18, 0xa5, 0xa2, 0x96, 0x08, 0x8e, + 0x6d, 0x94, 0x72, 0x5b, 0xa5, 0xa2, 0xa6, 0x66, 0xaa, 0x70, 0x34, 0xac, 0xce, 0x84, 0x66, 0x46, + 0xc0, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0xb2, 0xba, 0x5c, 0xfc, 0x39, 0x05, 0x26, 0x42, 0x6a, 0x6d, + 0xe8, 0x43, 0x1e, 0x81, 0x7e, 0x1a, 0xa2, 0x74, 0xf5, 0xb9, 0x3f, 0xb4, 0x68, 0x93, 0x80, 0xed, + 0x5a, 0x81, 0x08, 0x2e, 0xb8, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x2c, 0xa2, 0x4b, 0xc9, 0x0f, 0x29, + 0x90, 0xee, 0x25, 0x3b, 0xa2, 0x50, 0x24, 0x84, 0x42, 0x71, 0x59, 0x56, 0xe0, 0x64, 0xef, 0x39, + 0x74, 0x69, 0xf1, 0x05, 0x05, 0x26, 0xc3, 0x1b, 0x95, 0x50, 0x1d, 0x1e, 0x86, 0x81, 0x26, 0x72, + 0xf7, 0x6c, 0xbe, 0x58, 0x9f, 0x0e, 0x59, 0x02, 0x30, 0x59, 0xb6, 0x15, 0x43, 0x05, 0xd7, 0x10, + 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0xa3, 0x09, 0xb8, 0x23, 0x54, 0x78, 0xa8, 0xa2, + 0x77, 0x03, 0xd4, 0xad, 0x56, 0xc7, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0x83, 0x64, 0x84, 0xe4, 0x3e, + 0xae, 0x3d, 0x1d, 0xd7, 0xa3, 0xab, 0x84, 0x0e, 0x74, 0x88, 0x30, 0x5c, 0xf4, 0x15, 0x4d, 0x12, + 0x45, 0xa7, 0x7b, 0xcc, 0xb4, 0x6b, 0xad, 0x5b, 0x00, 0xad, 0xda, 0xa8, 0x23, 0xcb, 0xad, 0x38, + 0x6e, 0x1b, 0x99, 0xcd, 0xba, 0xb5, 0x4b, 0x0a, 0x70, 0x2a, 0xdb, 0xbf, 0x63, 0x36, 0x1c, 0x64, + 0x8c, 0x51, 0xf2, 0x26, 0xa7, 0x62, 0x04, 0x59, 0x65, 0xda, 0x01, 0xc4, 0x80, 0x80, 0xa0, 0x64, + 0x0f, 0x91, 0xf9, 0xf2, 0x11, 0x18, 0x0a, 0xb4, 0x75, 0xfa, 0x49, 0x18, 0x7e, 0xc2, 0x7c, 0xca, + 0xac, 0xf0, 0x56, 0x9d, 0x5a, 0x62, 0x08, 0x8f, 0x6d, 0xb0, 0x76, 0x7d, 0x01, 0x8e, 0x12, 0x16, + 0xbb, 0xe3, 0xa2, 0x76, 0xa5, 0xda, 0x30, 0x1d, 0x87, 0x18, 0x2d, 0x45, 0x58, 0x75, 0x4c, 0x5b, + 0xc7, 0xa4, 0x02, 0xa7, 0xe8, 0xcb, 0x30, 0x41, 0x10, 0xcd, 0x4e, 0xc3, 0xad, 0xb7, 0x1a, 0xa8, + 0x82, 0x5f, 0x1e, 0x1c, 0x52, 0x88, 0x3d, 0xcd, 0xc6, 0x31, 0xc7, 0x1a, 0x63, 0xc0, 0x1a, 0x39, + 0x7a, 0x11, 0xee, 0x26, 0xb0, 0x5d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0xfa, 0x40, 0xc7, 0x6c, + 0x38, 0x15, 0xd3, 0xaa, 0x55, 0xf6, 0x4c, 0x67, 0x2f, 0x7d, 0x14, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, + 0x71, 0x27, 0x66, 0xbc, 0xca, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x35, 0x9d, 0x3d, 0x3d, + 0x0b, 0x93, 0x44, 0x8a, 0xe3, 0xb6, 0xeb, 0xd6, 0x6e, 0xa5, 0xba, 0x87, 0xaa, 0x4f, 0x56, 0x3a, + 0xee, 0xce, 0xc5, 0xf4, 0x5d, 0xc1, 0xe7, 0x13, 0x0d, 0x37, 0x09, 0x4f, 0x01, 0xb3, 0x6c, 0xbb, + 0x3b, 0x17, 0xf5, 0x4d, 0x18, 0xc6, 0xce, 0x68, 0xd6, 0x9f, 0x45, 0x95, 0x1d, 0xbb, 0x4d, 0x56, + 0x96, 0xd1, 0x90, 0xcc, 0x0e, 0x58, 0x70, 0x7e, 0x9d, 0x01, 0xd6, 0xec, 0x1a, 0xca, 0xf6, 0x6f, + 0x6e, 0x94, 0x4a, 0x45, 0x63, 0x88, 0x4b, 0xb9, 0x62, 0xb7, 0x71, 0x40, 0xed, 0xda, 0x9e, 0x81, + 0x87, 0x68, 0x40, 0xed, 0xda, 0xdc, 0xbc, 0xcb, 0x30, 0x51, 0xad, 0xd2, 0x39, 0xd7, 0xab, 0x15, + 0xd6, 0xe2, 0x3b, 0x69, 0x4d, 0x30, 0x56, 0xb5, 0x7a, 0x95, 0x32, 0xb0, 0x18, 0x77, 0xf4, 0x4b, + 0x70, 0x87, 0x6f, 0xac, 0x20, 0x70, 0xbc, 0x6b, 0x96, 0x32, 0x74, 0x19, 0x26, 0x5a, 0xfb, 0xdd, + 0x40, 0x5d, 0x78, 0x62, 0x6b, 0x5f, 0x86, 0xdd, 0x4b, 0x5e, 0xdb, 0xda, 0xa8, 0x6a, 0xba, 0xa8, + 0x96, 0x3e, 0x16, 0xe4, 0x0e, 0x10, 0xf4, 0x33, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0x37, 0x1a, + 0xa8, 0x62, 0xb6, 0x91, 0x65, 0x3a, 0xe9, 0x99, 0x20, 0xf3, 0x68, 0xb5, 0x5a, 0x22, 0xd4, 0x1c, + 0x21, 0xea, 0x73, 0x30, 0x6e, 0xdf, 0x78, 0xa2, 0x4a, 0x23, 0xab, 0xd2, 0x6a, 0xa3, 0x9d, 0xfa, + 0x33, 0xe9, 0x53, 0xc4, 0x4c, 0x63, 0x98, 0x40, 0xe2, 0x6a, 0x83, 0x0c, 0xeb, 0xf7, 0x83, 0x56, + 0x75, 0xf6, 0xcc, 0x76, 0x8b, 0x2c, 0xed, 0x4e, 0xcb, 0xac, 0xa2, 0xf4, 0xbd, 0x94, 0x95, 0x8e, + 0x97, 0xf9, 0x30, 0x8e, 0x6c, 0xe7, 0xe9, 0xfa, 0x8e, 0xcb, 0x25, 0xde, 0x47, 0x23, 0x9b, 0x8c, + 0x31, 0x69, 0x8f, 0xc3, 0xd1, 0x8e, 0x55, 0xb7, 0x5c, 0xd4, 0x6e, 0xb5, 0x11, 0x6e, 0xe2, 0x69, + 0x26, 0xa6, 0xff, 0xe5, 0x48, 0x8f, 0x36, 0x7c, 0x3b, 0xc8, 0x4d, 0x03, 0xc0, 0x98, 0xe8, 0x74, + 0x0f, 0x66, 0xb2, 0x30, 0x1c, 0x8c, 0x0b, 0x7d, 0x10, 0x68, 0x64, 0x68, 0x0a, 0x5e, 0x63, 0x0b, + 0xeb, 0x45, 0xbc, 0x3a, 0xbe, 0xbf, 0xa4, 0x25, 0xf0, 0x2a, 0xbd, 0xba, 0xb2, 0x55, 0xaa, 0x18, + 0xdb, 0xe5, 0xad, 0x95, 0xb5, 0x92, 0xa6, 0xce, 0x0d, 0xa6, 0x7e, 0x70, 0x44, 0x7b, 0xee, 0xb9, + 0xe7, 0x9e, 0x4b, 0x64, 0xbe, 0x9d, 0x80, 0x51, 0xb1, 0x33, 0xd6, 0xdf, 0x0d, 0xc7, 0xf8, 0x6b, + 0xac, 0x83, 0xdc, 0xca, 0xd3, 0xf5, 0x36, 0x09, 0xd5, 0xa6, 0x49, 0x7b, 0x4b, 0xcf, 0xca, 0x47, + 0x19, 0xd7, 0x26, 0x72, 0x1f, 0xab, 0xb7, 0x71, 0x20, 0x36, 0x4d, 0x57, 0x5f, 0x85, 0x19, 0xcb, + 0xae, 0x38, 0xae, 0x69, 0xd5, 0xcc, 0x76, 0xad, 0xe2, 0x6f, 0x20, 0x54, 0xcc, 0x6a, 0x15, 0x39, + 0x8e, 0x4d, 0x97, 0x08, 0x4f, 0xca, 0x71, 0xcb, 0xde, 0x64, 0xcc, 0x7e, 0xed, 0xcc, 0x31, 0x56, + 0x29, 0x22, 0xd4, 0x5e, 0x11, 0x71, 0x17, 0x0c, 0x36, 0xcd, 0x56, 0x05, 0x59, 0x6e, 0x7b, 0x9f, + 0xf4, 0x73, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x25, 0xfc, 0xfd, 0x9d, 0xf3, 0x41, 0xd0, 0x8e, 0xff, + 0xac, 0xc2, 0x70, 0xb0, 0xa7, 0xc3, 0x2d, 0x72, 0x95, 0xd4, 0x6f, 0x85, 0x64, 0xf8, 0x3d, 0x07, + 0x76, 0x80, 0xf3, 0x05, 0x5c, 0xd8, 0xb3, 0x03, 0xb4, 0xd3, 0x32, 0x28, 0x12, 0x2f, 0xaa, 0x38, + 0xa7, 0x11, 0xed, 0xdf, 0x53, 0x06, 0xfb, 0xa6, 0x5f, 0x85, 0x81, 0x27, 0x1c, 0x22, 0x7b, 0x80, + 0xc8, 0x3e, 0x75, 0xb0, 0xec, 0x6b, 0x9b, 0x44, 0xf8, 0xe0, 0xb5, 0xcd, 0x4a, 0x79, 0xdd, 0x58, + 0xcb, 0xad, 0x1a, 0x0c, 0xae, 0xdf, 0x09, 0xc9, 0x86, 0xf9, 0xec, 0xbe, 0xb8, 0x04, 0x90, 0xa1, + 0xb8, 0x86, 0xbf, 0x13, 0x92, 0x4f, 0x23, 0xf3, 0x49, 0xb1, 0xf0, 0x92, 0xa1, 0x77, 0x30, 0xf4, + 0xcf, 0x40, 0x3f, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6, 0xf5, 0xe9, 0x29, 0x48, 0x16, 0xd6, 0x0d, + 0x1c, 0xfe, 0x1a, 0x0c, 0xd3, 0xd1, 0xca, 0xc6, 0x4a, 0xa9, 0x50, 0xd2, 0x12, 0x99, 0x65, 0x18, + 0xa0, 0x46, 0xc0, 0xa9, 0xe1, 0x99, 0x41, 0xeb, 0x63, 0x5f, 0x99, 0x0c, 0x85, 0x53, 0xb7, 0xd7, + 0xf2, 0x25, 0x43, 0x4b, 0x04, 0xdd, 0xeb, 0xc0, 0x70, 0xb0, 0x9d, 0xfb, 0xf9, 0xc4, 0xd4, 0x37, + 0x15, 0x18, 0x0a, 0xb4, 0x67, 0xb8, 0x31, 0x30, 0x1b, 0x0d, 0xfb, 0xe9, 0x8a, 0xd9, 0xa8, 0x9b, + 0x0e, 0x0b, 0x0a, 0x20, 0x43, 0x39, 0x3c, 0x12, 0xd7, 0x69, 0x3f, 0x17, 0xe5, 0x9f, 0x57, 0x40, + 0x93, 0x5b, 0x3b, 0x49, 0x41, 0xe5, 0x17, 0xaa, 0xe0, 0xa7, 0x14, 0x18, 0x15, 0xfb, 0x39, 0x49, + 0xbd, 0x93, 0xbf, 0x50, 0xf5, 0xbe, 0x97, 0x80, 0x11, 0xa1, 0x8b, 0x8b, 0xab, 0xdd, 0x07, 0x60, + 0xbc, 0x5e, 0x43, 0xcd, 0x96, 0xed, 0x22, 0xab, 0xba, 0x5f, 0x69, 0xa0, 0xa7, 0x50, 0x23, 0x9d, + 0x21, 0x85, 0xe2, 0xcc, 0xc1, 0x7d, 0xe2, 0xfc, 0x8a, 0x8f, 0x5b, 0xc5, 0xb0, 0xec, 0xc4, 0x4a, + 0xb1, 0xb4, 0xb6, 0xb1, 0xbe, 0x55, 0x2a, 0x17, 0xae, 0x57, 0xb6, 0xcb, 0xef, 0x29, 0xaf, 0x3f, + 0x56, 0x36, 0xb4, 0xba, 0xc4, 0xf6, 0x0e, 0xa6, 0xfa, 0x06, 0x68, 0xb2, 0x52, 0xfa, 0x31, 0x08, + 0x53, 0x4b, 0xeb, 0xd3, 0x27, 0x60, 0xac, 0xbc, 0x5e, 0xd9, 0x5c, 0x29, 0x96, 0x2a, 0xa5, 0x2b, + 0x57, 0x4a, 0x85, 0xad, 0x4d, 0xfa, 0xe2, 0xec, 0x71, 0x6f, 0x89, 0x49, 0xfd, 0x49, 0x15, 0x26, + 0x42, 0x34, 0xd1, 0x73, 0xac, 0x67, 0xa7, 0xaf, 0x11, 0x0f, 0xc6, 0xd1, 0x7e, 0x1e, 0x77, 0x05, + 0x1b, 0x66, 0xdb, 0x65, 0x2d, 0xfe, 0xfd, 0x80, 0xad, 0x64, 0xb9, 0xf5, 0x9d, 0x3a, 0x6a, 0xb3, + 0x7d, 0x06, 0xda, 0xc8, 0x8f, 0xf9, 0xe3, 0x74, 0xab, 0xe1, 0x01, 0xd0, 0x5b, 0xb6, 0x53, 0x77, + 0xeb, 0x4f, 0xa1, 0x4a, 0xdd, 0xe2, 0x9b, 0x12, 0xb8, 0xb1, 0x4f, 0x1a, 0x1a, 0xa7, 0xac, 0x58, + 0xae, 0xc7, 0x6d, 0xa1, 0x5d, 0x53, 0xe2, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x4e, 0xf1, 0xb8, 0x4f, + 0xc2, 0x70, 0xcd, 0xee, 0xe0, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x86, 0xe8, 0x98, 0xc7, + 0xc2, 0xfa, 0x58, 0x7f, 0x37, 0x64, 0xd8, 0x18, 0xa2, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x33, 0x77, + 0x77, 0xdb, 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x51, 0x6f, 0x98, 0x30, 0x4e, 0x5d, 0x83, 0x14, + 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0x1d, 0x34, 0x52, 0x16, + 0x27, 0x9e, 0x84, 0xe1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0x27, 0x12, 0xb3, 0x29, 0x63, 0xa8, + 0xee, 0x78, 0xbb, 0x61, 0x99, 0x2f, 0x24, 0x60, 0x54, 0xdc, 0xdc, 0xd5, 0x8b, 0x90, 0x6a, 0xd8, + 0x55, 0x93, 0x84, 0x16, 0x3d, 0x59, 0x98, 0x8d, 0xd8, 0x0f, 0x9e, 0x5f, 0x65, 0xfc, 0x86, 0x87, + 0x9c, 0xfa, 0x07, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x84, 0x64, 0xcb, 0x74, 0xf7, 0x88, 0xb8, 0xfe, + 0x7c, 0x42, 0x53, 0x0c, 0xf2, 0x1d, 0x8f, 0x3b, 0x2d, 0xd3, 0x22, 0x21, 0xc0, 0xc6, 0xf1, 0x77, + 0xec, 0xd7, 0x06, 0x32, 0x6b, 0xa4, 0xed, 0xb7, 0x9b, 0x4d, 0x64, 0xb9, 0x0e, 0xf7, 0x2b, 0x1b, + 0x2f, 0xb0, 0x61, 0xfd, 0x5d, 0x30, 0xee, 0xb6, 0xcd, 0x7a, 0x43, 0xe0, 0x4d, 0x12, 0x5e, 0x8d, + 0x13, 0x3c, 0xe6, 0x2c, 0xdc, 0xc9, 0xe5, 0xd6, 0x90, 0x6b, 0x56, 0xf7, 0x50, 0xcd, 0x07, 0x0d, + 0x90, 0x9d, 0xc3, 0x63, 0x8c, 0xa1, 0xc8, 0xe8, 0x1c, 0x9b, 0xf9, 0x8e, 0x02, 0xe3, 0xfc, 0x45, + 0xa5, 0xe6, 0x19, 0x6b, 0x0d, 0xc0, 0xb4, 0x2c, 0xdb, 0x0d, 0x9a, 0xab, 0x3b, 0x94, 0xbb, 0x70, + 0xf3, 0x39, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0x35, 0x01, 0x7c, 0x4a, 0x4f, 0xb3, 0xcd, 0xc0, 0x10, + 0xdb, 0xb9, 0x27, 0xc7, 0x3f, 0xf4, 0xd5, 0x16, 0xe8, 0x10, 0x7e, 0xa3, 0xd1, 0x8f, 0x42, 0xff, + 0x0d, 0xb4, 0x5b, 0xb7, 0xd8, 0x7e, 0x22, 0xfd, 0xc2, 0x77, 0x29, 0x93, 0xde, 0x2e, 0x65, 0xfe, + 0x71, 0x98, 0xa8, 0xda, 0x4d, 0x59, 0xdd, 0xbc, 0x26, 0xbd, 0x5e, 0x3b, 0x8f, 0x2a, 0xef, 0x07, + 0xbf, 0xc5, 0xfc, 0x5c, 0x42, 0xbd, 0xba, 0x91, 0xff, 0x52, 0x62, 0xea, 0x2a, 0xc5, 0x6d, 0xf0, + 0x69, 0x1a, 0x68, 0xa7, 0x81, 0xaa, 0x58, 0x75, 0xf8, 0xf1, 0x69, 0x78, 0x70, 0xb7, 0xee, 0xee, + 0x75, 0x6e, 0xcc, 0x57, 0xed, 0xe6, 0x99, 0x5d, 0x7b, 0xd7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, + 0x85, 0x7c, 0x62, 0x47, 0x5e, 0x83, 0xde, 0xe8, 0x54, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x13, 0x8c, + 0xb9, 0x42, 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xab, 0xdf, 0x27, 0x6b, + 0xb5, 0x31, 0xce, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, + 0xda, 0x11, 0x12, 0xbf, 0xcd, 0x24, 0x4e, 0x04, 0x24, 0x6e, 0x32, 0x68, 0xb6, 0x00, 0x23, 0x87, + 0x91, 0xf5, 0xb7, 0x4c, 0xd6, 0x30, 0x0a, 0x0a, 0xb9, 0x0a, 0x63, 0x44, 0x48, 0xb5, 0xe3, 0xb8, + 0x76, 0x93, 0x14, 0xbd, 0x83, 0xc5, 0xfc, 0xdd, 0xf7, 0x69, 0xa2, 0x8c, 0x62, 0x58, 0xc1, 0x43, + 0x65, 0xb3, 0x40, 0x8e, 0x19, 0x6a, 0xa8, 0xda, 0x88, 0x90, 0x70, 0x93, 0x29, 0xe2, 0xf1, 0x67, + 0xdf, 0x07, 0x47, 0xf1, 0x67, 0x52, 0x93, 0x82, 0x9a, 0x44, 0xef, 0x32, 0xa5, 0xbf, 0xf3, 0x21, + 0x9a, 0x8b, 0x13, 0x9e, 0x80, 0x80, 0x4e, 0x01, 0x2f, 0xee, 0x22, 0xd7, 0x45, 0x6d, 0xa7, 0x62, + 0x36, 0xc2, 0xd4, 0x0b, 0xbc, 0xa6, 0xa7, 0x3f, 0xf1, 0xba, 0xe8, 0xc5, 0xab, 0x14, 0x99, 0x6b, + 0x34, 0xb2, 0xdb, 0x70, 0x2c, 0x24, 0x2a, 0x62, 0xc8, 0xfc, 0x24, 0x93, 0x79, 0xb4, 0x2b, 0x32, + 0xb0, 0xd8, 0x0d, 0xe0, 0xe3, 0x9e, 0x2f, 0x63, 0xc8, 0xfc, 0x03, 0x26, 0x53, 0x67, 0x58, 0xee, + 0x52, 0x2c, 0xf1, 0x1a, 0x8c, 0x3f, 0x85, 0xda, 0x37, 0x6c, 0x87, 0x6d, 0x8d, 0xc4, 0x10, 0xf7, + 0x29, 0x26, 0x6e, 0x8c, 0x01, 0xc9, 0x5e, 0x09, 0x96, 0x75, 0x09, 0x52, 0x3b, 0x66, 0x15, 0xc5, + 0x10, 0xf1, 0x69, 0x26, 0xe2, 0x08, 0xe6, 0xc7, 0xd0, 0x1c, 0x0c, 0xef, 0xda, 0x6c, 0x59, 0x8a, + 0x86, 0x3f, 0xcf, 0xe0, 0x43, 0x1c, 0xc3, 0x44, 0xb4, 0xec, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x68, + 0x11, 0x9f, 0xe1, 0x22, 0x38, 0x86, 0x89, 0x38, 0x84, 0x59, 0x5f, 0xe0, 0x22, 0x9c, 0x80, 0x3d, + 0x1f, 0x81, 0x21, 0xdb, 0x6a, 0xec, 0xdb, 0x56, 0x1c, 0x25, 0x3e, 0xcb, 0x24, 0x00, 0x83, 0x60, + 0x01, 0x97, 0x61, 0x30, 0xae, 0x23, 0x3e, 0xff, 0x3a, 0x4f, 0x0f, 0xee, 0x81, 0xab, 0x30, 0xc6, + 0x0b, 0x54, 0xdd, 0xb6, 0x62, 0x88, 0xf8, 0x23, 0x26, 0x62, 0x34, 0x00, 0x63, 0xd3, 0x70, 0x91, + 0xe3, 0xee, 0xa2, 0x38, 0x42, 0xbe, 0xc0, 0xa7, 0xc1, 0x20, 0xcc, 0x94, 0x37, 0x90, 0x55, 0xdd, + 0x8b, 0x27, 0xe1, 0x45, 0x6e, 0x4a, 0x8e, 0xc1, 0x22, 0x0a, 0x30, 0xd2, 0x34, 0xdb, 0xce, 0x9e, + 0xd9, 0x88, 0xe5, 0x8e, 0x2f, 0x32, 0x19, 0xc3, 0x1e, 0x88, 0x59, 0xa4, 0x63, 0x1d, 0x46, 0xcc, + 0x97, 0xb8, 0x45, 0x02, 0x30, 0x96, 0x7a, 0x8e, 0x4b, 0x36, 0xa0, 0x0e, 0x23, 0xed, 0xcb, 0x3c, + 0xf5, 0x28, 0x76, 0x2d, 0x28, 0xf1, 0x32, 0x0c, 0x3a, 0xf5, 0x67, 0x63, 0x89, 0xf9, 0x63, 0xee, + 0x69, 0x02, 0xc0, 0xe0, 0xeb, 0x70, 0x67, 0xe8, 0x32, 0x11, 0x43, 0xd8, 0x9f, 0x30, 0x61, 0x93, + 0x21, 0x4b, 0x05, 0x2b, 0x09, 0x87, 0x15, 0xf9, 0xa7, 0xbc, 0x24, 0x20, 0x49, 0xd6, 0x06, 0x7e, + 0x51, 0x70, 0xcc, 0x9d, 0xc3, 0x59, 0xed, 0xcf, 0xb8, 0xd5, 0x28, 0x56, 0xb0, 0xda, 0x16, 0x4c, + 0x32, 0x89, 0x87, 0xf3, 0xeb, 0x57, 0x78, 0x61, 0xa5, 0xe8, 0x6d, 0xd1, 0xbb, 0xff, 0x0b, 0xa6, + 0x3c, 0x73, 0xf2, 0x8e, 0xd4, 0xa9, 0x34, 0xcd, 0x56, 0x0c, 0xc9, 0x5f, 0x65, 0x92, 0x79, 0xc5, + 0xf7, 0x5a, 0x5a, 0x67, 0xcd, 0x6c, 0x61, 0xe1, 0x8f, 0x43, 0x9a, 0x0b, 0xef, 0x58, 0x6d, 0x54, + 0xb5, 0x77, 0xad, 0xfa, 0xb3, 0xa8, 0x16, 0x43, 0xf4, 0x9f, 0x4b, 0xae, 0xda, 0x0e, 0xc0, 0xb1, + 0xe4, 0x15, 0xd0, 0xbc, 0x5e, 0xa5, 0x52, 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0x2f, 0xb8, + 0xa7, 0x3c, 0xdc, 0x0a, 0x81, 0x65, 0x4b, 0x30, 0x4a, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x31, 0x41, + 0x23, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd, 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0x2f, 0x79, 0xe1, + 0x60, 0x10, 0x56, 0x38, 0xdc, 0xfd, 0x16, 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe7, 0x85, 0x83, + 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10, 0xf1, 0x57, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf5, + 0x17, 0xda, 0x36, 0xda, 0xad, 0x3b, 0x6e, 0x9b, 0xf6, 0xc1, 0x07, 0x8b, 0xfa, 0xc6, 0xeb, 0x62, + 0x13, 0x66, 0x04, 0xa0, 0xd9, 0x6b, 0x30, 0x26, 0xb5, 0x18, 0x7a, 0xd4, 0x9d, 0x85, 0xf4, 0xff, + 0x7d, 0x83, 0x15, 0x23, 0xb1, 0xc3, 0xc8, 0xae, 0x62, 0xbf, 0x8b, 0x7d, 0x40, 0xb4, 0xb0, 0x0f, + 0xbd, 0xe1, 0xb9, 0x5e, 0x68, 0x03, 0xb2, 0x57, 0x60, 0x44, 0xe8, 0x01, 0xa2, 0x45, 0xfd, 0x3f, + 0x26, 0x6a, 0x38, 0xd8, 0x02, 0x64, 0x97, 0x21, 0x89, 0xd7, 0xf3, 0x68, 0xf8, 0xff, 0x67, 0x70, + 0xc2, 0x9e, 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x98, 0x41, 0x3d, 0x08, 0x86, 0xf3, + 0x35, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x5a, 0x92, + 0xd5, 0x61, 0x6e, 0xbb, 0xcb, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x8f, 0xb2, 0x87, 0x73, 0x44, + 0xf6, 0x02, 0xf4, 0xc7, 0x34, 0xf8, 0xaf, 0x33, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x28, 0xb0, 0x60, + 0x47, 0xc3, 0x7f, 0x83, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x26, 0x57, + 0x9d, 0x21, 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x2d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, + 0x83, 0x5e, 0xfd, 0x8d, 0xc6, 0xff, 0x36, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, + 0xf1, 0x3b, 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x31, 0x9e, 0x46, + 0xd2, 0x92, 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe5, 0xde, 0x24, 0xfc, 0x58, 0x0d, + 0x79, 0x91, 0x8c, 0x96, 0xf1, 0xfb, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0x6e, 0x80, 0xde, 0xbd, 0x40, + 0x46, 0xcb, 0xfb, 0x38, 0x93, 0x37, 0xde, 0xb5, 0x3e, 0x66, 0x1f, 0x83, 0xc9, 0xf0, 0xc5, 0x31, + 0x5a, 0xea, 0x27, 0xde, 0x90, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xcb, 0xaf, 0xb2, 0xc1, 0x85, + 0x31, 0x5a, 0xec, 0x27, 0xdf, 0x10, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, + 0x5a, 0xd6, 0xa7, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe6, 0xa9, + 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x43, + 0xca, 0xea, 0x34, 0x1a, 0x38, 0xb6, 0xf4, 0x83, 0xaf, 0x11, 0xa5, 0xff, 0xf5, 0x4d, 0x06, 0xe6, + 0x80, 0xec, 0x32, 0xf4, 0xa3, 0xe6, 0x0d, 0x54, 0x8b, 0x42, 0xfe, 0xdb, 0x9b, 0xbc, 0x9e, 0x60, + 0xee, 0xec, 0x23, 0x00, 0xf4, 0x65, 0x9a, 0x9c, 0x12, 0x45, 0x60, 0xff, 0xfd, 0x4d, 0x76, 0x43, + 0xc1, 0x87, 0xf8, 0x02, 0xe8, 0x7d, 0x87, 0x83, 0x05, 0xbc, 0x2e, 0x0a, 0x20, 0x2f, 0xe0, 0x97, + 0xe0, 0xc8, 0x13, 0x8e, 0x6d, 0xb9, 0xe6, 0x6e, 0x14, 0xfa, 0x3f, 0x18, 0x9a, 0xf3, 0x63, 0x83, + 0x35, 0xed, 0x36, 0x72, 0xcd, 0x5d, 0x27, 0x0a, 0xfb, 0x9f, 0x0c, 0xeb, 0x01, 0x30, 0xb8, 0x6a, + 0x3a, 0x6e, 0x9c, 0x79, 0xff, 0x17, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f, 0x7e, 0x12, 0xed, 0x47, + 0x61, 0x7f, 0xc8, 0x95, 0x66, 0xfc, 0xd9, 0x87, 0x60, 0x10, 0x7f, 0xa4, 0xb7, 0x76, 0x22, 0xc0, + 0x3f, 0x62, 0x60, 0x1f, 0x81, 0x9f, 0xec, 0xb8, 0x35, 0xb7, 0x1e, 0x6d, 0xec, 0xff, 0x66, 0x9e, + 0xe6, 0xfc, 0xd9, 0x1c, 0x0c, 0x39, 0x6e, 0xad, 0xd6, 0x61, 0x1d, 0x4d, 0x04, 0xfc, 0xc7, 0x6f, + 0x7a, 0x2f, 0xb9, 0x1e, 0x26, 0x7f, 0x32, 0x7c, 0xb3, 0x0e, 0xae, 0xda, 0x57, 0x6d, 0xba, 0x4d, + 0x07, 0xdf, 0x6c, 0xc0, 0x88, 0xbb, 0x87, 0xf0, 0x72, 0xc1, 0x76, 0xd5, 0x92, 0xf8, 0xf3, 0xd4, + 0xe1, 0xb6, 0xe2, 0xc8, 0x29, 0x6b, 0xb9, 0x8e, 0xb5, 0x29, 0x93, 0x8d, 0x6e, 0xfd, 0x38, 0x0c, + 0x10, 0xfd, 0xce, 0x92, 0xc3, 0x24, 0x25, 0x9f, 0xbc, 0xf9, 0xca, 0x4c, 0x9f, 0xc1, 0xc6, 0x3c, + 0xea, 0x22, 0xd9, 0x89, 0x4c, 0x08, 0xd4, 0x45, 0x8f, 0x7a, 0x8e, 0x6e, 0x46, 0x0a, 0xd4, 0x73, + 0x1e, 0x75, 0x89, 0x6c, 0x4b, 0xaa, 0x02, 0x75, 0xc9, 0xa3, 0x2e, 0x93, 0xad, 0xf7, 0x11, 0x81, + 0xba, 0xec, 0x51, 0xcf, 0x93, 0x0d, 0xf7, 0xa4, 0x40, 0x3d, 0xef, 0x51, 0x2f, 0x90, 0xbd, 0xf6, + 0x71, 0x81, 0x7a, 0xc1, 0xa3, 0x5e, 0x24, 0x7b, 0xec, 0xba, 0x40, 0xbd, 0xe8, 0x51, 0x2f, 0x91, + 0x8b, 0x23, 0x47, 0x04, 0xea, 0x25, 0x7d, 0x1a, 0x8e, 0xd0, 0x99, 0x2f, 0x90, 0x03, 0xd9, 0x31, + 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x2c, 0xb9, 0x24, 0x32, 0x20, 0xd2, 0xcf, 0xfa, 0xf4, 0x45, 0x72, + 0x5d, 0x5a, 0x13, 0xe9, 0x8b, 0x3e, 0xfd, 0x5c, 0x7a, 0x84, 0x5c, 0x94, 0x11, 0xe8, 0xe7, 0x7c, + 0xfa, 0x52, 0x7a, 0x14, 0x87, 0xa8, 0x48, 0x5f, 0xf2, 0xe9, 0xcb, 0xe9, 0xb1, 0x13, 0xca, 0xec, + 0xb0, 0x48, 0x5f, 0xce, 0x7c, 0x90, 0xb8, 0xd7, 0xf2, 0xdd, 0x3b, 0x29, 0xba, 0xd7, 0x73, 0xec, + 0xa4, 0xe8, 0x58, 0xcf, 0xa5, 0x93, 0xa2, 0x4b, 0x3d, 0x67, 0x4e, 0x8a, 0xce, 0xf4, 0xdc, 0x38, + 0x29, 0xba, 0xd1, 0x73, 0xe0, 0xa4, 0xe8, 0x40, 0xcf, 0x75, 0x93, 0xa2, 0xeb, 0x3c, 0xa7, 0x4d, + 0x8a, 0x4e, 0xf3, 0xdc, 0x35, 0x29, 0xba, 0xcb, 0x73, 0x54, 0x5a, 0x72, 0x94, 0xef, 0xa2, 0xb4, + 0xe4, 0x22, 0xdf, 0x39, 0x69, 0xc9, 0x39, 0xbe, 0x5b, 0xd2, 0x92, 0x5b, 0x7c, 0x87, 0xa4, 0x25, + 0x87, 0xf8, 0xae, 0x48, 0x4b, 0xae, 0xf0, 0x9d, 0xc0, 0x72, 0xcc, 0x40, 0xad, 0x90, 0x1c, 0x53, + 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, + 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xce, 0x31, 0x35, + 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, + 0x9e, 0x39, 0xe6, 0xbb, 0x77, 0x52, 0x74, 0x6f, 0x68, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, + 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, + 0xc8, 0x31, 0xb5, 0x57, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, + 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x60, 0x8e, 0xfd, 0xb5, 0x0a, 0x3a, 0xcd, 0xb1, 0x0d, + 0x72, 0xa5, 0x87, 0xb9, 0x62, 0x5a, 0xca, 0xb4, 0x01, 0xec, 0x3a, 0xcd, 0x77, 0xc9, 0xb4, 0x94, + 0x6b, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x6c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x37, 0x91, 0xbe, + 0xe4, 0xd1, 0x79, 0xc6, 0x89, 0xf4, 0x65, 0x8f, 0xce, 0x73, 0x4e, 0xa4, 0x9f, 0xf7, 0xe8, 0x3c, + 0xeb, 0x44, 0xfa, 0x05, 0x8f, 0xce, 0xf3, 0x4e, 0xa4, 0x5f, 0xf4, 0xe8, 0x3c, 0xf3, 0x44, 0xfa, + 0x25, 0xfd, 0x84, 0x9c, 0x7b, 0x9c, 0xc1, 0x73, 0xed, 0x09, 0x39, 0xfb, 0x24, 0x8e, 0xb3, 0x3e, + 0x07, 0xcf, 0x3f, 0x89, 0x63, 0xd1, 0xe7, 0xe0, 0x19, 0x28, 0x71, 0x9c, 0xcb, 0x7c, 0x84, 0xb8, + 0xcf, 0x92, 0xdd, 0x37, 0x25, 0xb9, 0x2f, 0x11, 0x70, 0xdd, 0x94, 0xe4, 0xba, 0x44, 0xc0, 0x6d, + 0x53, 0x92, 0xdb, 0x12, 0x01, 0x97, 0x4d, 0x49, 0x2e, 0x4b, 0x04, 0xdc, 0x35, 0x25, 0xb9, 0x2b, + 0x11, 0x70, 0xd5, 0x94, 0xe4, 0xaa, 0x44, 0xc0, 0x4d, 0x53, 0x92, 0x9b, 0x12, 0x01, 0x17, 0x4d, + 0x49, 0x2e, 0x4a, 0x04, 0xdc, 0x33, 0x25, 0xb9, 0x27, 0x11, 0x70, 0xcd, 0x71, 0xd9, 0x35, 0x89, + 0xa0, 0x5b, 0x8e, 0xcb, 0x6e, 0x49, 0x04, 0x5d, 0x72, 0x5c, 0x76, 0x49, 0x22, 0xe8, 0x8e, 0xe3, + 0xb2, 0x3b, 0x12, 0x41, 0x57, 0xfc, 0x2c, 0xc1, 0x3b, 0xc2, 0x4d, 0xb7, 0xdd, 0xa9, 0xba, 0xb7, + 0xd5, 0x11, 0x2e, 0x08, 0xed, 0xc3, 0xd0, 0xa2, 0x3e, 0x4f, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, + 0x60, 0x0b, 0x42, 0x63, 0x11, 0x40, 0x58, 0xe1, 0x88, 0xa5, 0xdb, 0xea, 0x0d, 0x17, 0x84, 0x36, + 0x23, 0x5a, 0xbf, 0x8b, 0xef, 0x78, 0xc7, 0xf6, 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x87, 0xed, + 0xd8, 0xe6, 0xa2, 0x4d, 0xee, 0x19, 0x7b, 0x2e, 0xda, 0xd8, 0x5d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, + 0x2e, 0xda, 0xb4, 0x9e, 0x51, 0xdf, 0xde, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, + 0xd8, 0x7e, 0x6b, 0x41, 0x28, 0x25, 0x87, 0x8d, 0x60, 0xf5, 0xd0, 0x11, 0x7c, 0xd8, 0xce, 0x6b, + 0x41, 0x28, 0x2f, 0x87, 0x8e, 0xe0, 0x77, 0xa0, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xb0, 0xfd, + 0xd0, 0x5c, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x44, 0x04, 0xc7, 0xe9, 0x8f, 0xe6, 0xa2, 0x4d, + 0x1b, 0x1e, 0xc1, 0xb7, 0xdd, 0xcd, 0x7c, 0x46, 0x81, 0xf1, 0x72, 0xbd, 0x56, 0x6a, 0xde, 0x40, + 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0x2e, 0x08, 0x95, 0xa0, 0x87, 0xab, 0x5f, 0x7e, 0x65, 0xc6, 0xb7, + 0xf0, 0x32, 0xa4, 0xa8, 0x4d, 0x17, 0x16, 0xd2, 0x37, 0x95, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0x27, + 0x39, 0xec, 0xec, 0x42, 0xfa, 0x1f, 0x95, 0x40, 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x23, 0x1a, 0x5a, + 0xb7, 0xad, 0xe1, 0x99, 0x58, 0x1a, 0x06, 0x74, 0xbb, 0xab, 0x4b, 0xb7, 0x80, 0x56, 0x1d, 0x18, + 0x2b, 0xd7, 0x6b, 0x65, 0xf2, 0x87, 0xba, 0x71, 0x54, 0xa2, 0x3c, 0x52, 0x3d, 0x58, 0x10, 0xc2, + 0x32, 0x88, 0xf0, 0x42, 0x5a, 0xac, 0x11, 0x99, 0x3a, 0x7e, 0xac, 0x25, 0x3c, 0x76, 0xae, 0xd7, + 0x63, 0xfd, 0xca, 0xee, 0x3d, 0x70, 0xae, 0xd7, 0x03, 0xfd, 0x1c, 0xf2, 0x1e, 0xf5, 0x0c, 0x5f, + 0x9c, 0xe9, 0xdd, 0x1a, 0xfd, 0x38, 0x24, 0x56, 0xe8, 0xbd, 0xdf, 0xe1, 0xfc, 0x30, 0x56, 0xea, + 0xbb, 0xaf, 0xcc, 0x24, 0xb7, 0x3b, 0xf5, 0x9a, 0x91, 0x58, 0xa9, 0xe9, 0xd7, 0xa0, 0xff, 0x7d, + 0xec, 0xcf, 0xdd, 0x30, 0xc3, 0x12, 0x63, 0x78, 0xa0, 0xe7, 0x1e, 0x11, 0x7e, 0xf0, 0x19, 0xba, + 0x6b, 0x38, 0xbf, 0x5d, 0xb7, 0xdc, 0xb3, 0x8b, 0x17, 0x0d, 0x2a, 0x22, 0xf3, 0xbf, 0x01, 0xe8, + 0x33, 0x8b, 0xa6, 0xb3, 0xa7, 0x97, 0xb9, 0x64, 0xfa, 0xe8, 0x8b, 0xdf, 0x7d, 0x65, 0x66, 0x29, + 0x8e, 0xd4, 0x07, 0x6b, 0xa6, 0xb3, 0xf7, 0xa0, 0xbb, 0xdf, 0x42, 0xf3, 0xf9, 0x7d, 0x17, 0x39, + 0x5c, 0x7a, 0x8b, 0xaf, 0x7a, 0x6c, 0x5e, 0xe9, 0xc0, 0xbc, 0x52, 0xc2, 0x9c, 0xae, 0x88, 0x73, + 0x5a, 0x78, 0xab, 0xf3, 0x79, 0x86, 0x2f, 0x12, 0x92, 0x25, 0xd5, 0x28, 0x4b, 0xaa, 0xb7, 0x6b, + 0xc9, 0x16, 0xaf, 0x8f, 0xd2, 0x5c, 0xd5, 0x83, 0xe6, 0xaa, 0xde, 0xce, 0x5c, 0x7f, 0x42, 0xb3, + 0xd5, 0xcb, 0xa7, 0x6d, 0x8b, 0xde, 0x39, 0xfc, 0xe5, 0xda, 0x0b, 0x7a, 0x5b, 0xbb, 0x80, 0x6c, + 0xf2, 0xe6, 0x0b, 0x33, 0x4a, 0xe6, 0x33, 0x09, 0x3e, 0x73, 0x9a, 0x48, 0x6f, 0x6d, 0xe6, 0xbf, + 0x2c, 0x3d, 0xd5, 0x3b, 0x61, 0xa1, 0xe7, 0x15, 0x98, 0xec, 0xaa, 0xe4, 0xd4, 0x4c, 0x6f, 0x6f, + 0x39, 0xb7, 0x0e, 0x5b, 0xce, 0x99, 0x82, 0x5f, 0x53, 0xe0, 0xa8, 0x54, 0x5e, 0xa9, 0x7a, 0x67, + 0x24, 0xf5, 0x8e, 0x75, 0x3f, 0x89, 0x30, 0x06, 0xb4, 0x0b, 0xba, 0x57, 0x02, 0x04, 0x24, 0x7b, + 0x7e, 0x5f, 0x92, 0xfc, 0x7e, 0xdc, 0x03, 0x84, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x86, 0xe4, + 0x56, 0x1b, 0x21, 0x7d, 0x1a, 0x12, 0xeb, 0x6d, 0xa6, 0xe1, 0x28, 0xc5, 0xaf, 0xb7, 0xf3, 0x6d, + 0xd3, 0xaa, 0xee, 0x19, 0x89, 0xf5, 0xb6, 0x7e, 0x12, 0xd4, 0x1c, 0xfb, 0x41, 0x81, 0xa1, 0xc5, + 0x31, 0xca, 0x90, 0xb3, 0x6a, 0x8c, 0x03, 0xd3, 0xf4, 0x69, 0x48, 0xae, 0x22, 0x73, 0x87, 0x29, + 0x01, 0x94, 0x07, 0x8f, 0x18, 0x64, 0x9c, 0x3d, 0xf0, 0x71, 0x48, 0x71, 0xc1, 0xfa, 0x29, 0x8c, + 0xd8, 0x71, 0xd9, 0x63, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x42, 0xd5, 0x4f, 0x43, 0xbf, 0x51, + 0xdf, 0xdd, 0x73, 0xd9, 0xc3, 0xbb, 0xd9, 0x28, 0x39, 0x73, 0x1d, 0x06, 0x3d, 0x8d, 0xde, 0x66, + 0xd1, 0x45, 0x3a, 0x35, 0x7d, 0x2a, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x9f, 0x80, 0xd4, + 0xa6, 0xdb, 0xf6, 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0x07, 0x15, 0x48, 0x15, 0x11, 0x6a, + 0x11, 0x83, 0xdf, 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, 0xc5, 0x14, 0x1c, 0x67, 0x16, 0xc5, 0x64, 0x66, + 0x53, 0x42, 0xd6, 0xef, 0x0d, 0xda, 0x7d, 0xc2, 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, + 0x9e, 0x39, 0x10, 0x33, 0x75, 0xd9, 0xff, 0x02, 0x0c, 0x05, 0x9e, 0xa2, 0xcf, 0x32, 0x35, 0x12, + 0x32, 0x30, 0x68, 0x2b, 0xcc, 0x91, 0x41, 0x30, 0x22, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x01, + 0x25, 0x66, 0x9e, 0x13, 0xcd, 0x1c, 0xce, 0xca, 0x4c, 0xbd, 0x40, 0x6d, 0x44, 0xcc, 0x7d, 0x8a, + 0x06, 0x67, 0x6f, 0x27, 0xe2, 0xcf, 0x99, 0x7e, 0x50, 0xcb, 0xf5, 0x46, 0xe6, 0x21, 0x00, 0x9a, + 0xf2, 0x25, 0xab, 0xd3, 0x94, 0xb2, 0x6e, 0x94, 0x1b, 0x78, 0x6b, 0x0f, 0x6d, 0x21, 0x87, 0xb0, + 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x8f, 0xc4, 0x87, 0x76, 0x62, 0x98, + 0x35, 0x4d, 0x59, 0xaf, 0x23, 0x37, 0x67, 0xd9, 0xee, 0x1e, 0x6a, 0x4b, 0x88, 0x45, 0xfd, 0x9c, + 0x90, 0xb0, 0xa3, 0x8b, 0x77, 0x79, 0x88, 0x9e, 0xa0, 0x73, 0x99, 0xaf, 0x10, 0x05, 0x71, 0x2b, + 0xd0, 0x35, 0x41, 0x35, 0xc6, 0x04, 0xf5, 0xf3, 0x42, 0xff, 0x76, 0x80, 0x9a, 0xd2, 0xab, 0xe5, + 0x25, 0xe1, 0x3d, 0xe7, 0x60, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0xfd, 0x91, 0x2a, + 0xf7, 0xe8, 0x6e, 0x0f, 0x6b, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe9, 0x75, 0x1c, 0xf4, 0xa7, 0x19, + 0xc8, 0x2f, 0x81, 0xe8, 0x0f, 0x44, 0xfa, 0x3e, 0xab, 0x14, 0x3c, 0x55, 0x97, 0xe2, 0xba, 0x3f, + 0x9b, 0xc8, 0xe7, 0x3d, 0x75, 0x2f, 0x1c, 0x22, 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, + 0x8f, 0xbc, 0x30, 0xa3, 0xbc, 0xf8, 0xc2, 0x4c, 0x5f, 0xe6, 0x8b, 0x0a, 0x8c, 0x33, 0xce, 0x40, + 0xe0, 0x3e, 0x28, 0x29, 0x7f, 0x07, 0xaf, 0x19, 0x61, 0x16, 0xf8, 0xb9, 0x05, 0xef, 0xb7, 0x15, + 0x48, 0x77, 0xe9, 0xca, 0xed, 0xbd, 0x10, 0x4b, 0xe5, 0xac, 0x52, 0xfa, 0xc5, 0xdb, 0xfc, 0x3a, + 0xf4, 0x6f, 0xd5, 0x9b, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, 0x0f, 0x73, 0xe8, 0x10, + 0xa7, 0x51, 0xe5, 0x04, 0xda, 0xa2, 0x9e, 0x86, 0x64, 0xd1, 0x74, 0x4d, 0xa2, 0xc1, 0xb0, 0x57, + 0x5f, 0x4d, 0xd7, 0xcc, 0x9c, 0x83, 0xe1, 0xb5, 0x7d, 0x72, 0x31, 0xa6, 0x46, 0x2e, 0x7d, 0x88, + 0xdd, 0x1f, 0xef, 0x57, 0xcf, 0xce, 0xf5, 0xa7, 0x6a, 0xda, 0x4d, 0x25, 0x9b, 0x24, 0xfa, 0x3c, + 0x05, 0xa3, 0xeb, 0x58, 0x6d, 0x82, 0x13, 0x60, 0xf4, 0xe9, 0xaa, 0x37, 0x79, 0xa9, 0x29, 0x53, + 0xfd, 0xa6, 0xec, 0x04, 0x28, 0x6b, 0x62, 0xeb, 0x14, 0xd4, 0xc3, 0x50, 0xd6, 0xe6, 0x92, 0xa9, + 0x51, 0x6d, 0x7c, 0x2e, 0x99, 0x02, 0x6d, 0x84, 0x3d, 0xf7, 0xef, 0x55, 0xd0, 0x68, 0xab, 0x53, + 0x44, 0x3b, 0x75, 0xab, 0xee, 0x76, 0xf7, 0xab, 0x9e, 0xc6, 0xfa, 0x23, 0x30, 0x88, 0x4d, 0x7a, + 0x85, 0xfd, 0xa0, 0x16, 0x36, 0xfd, 0x49, 0xd6, 0xa2, 0x48, 0x22, 0xd8, 0x00, 0x09, 0x1d, 0x1f, + 0xa3, 0x5f, 0x01, 0xb5, 0x5c, 0x5e, 0x63, 0x8b, 0xdb, 0xd2, 0x81, 0x50, 0x76, 0xaf, 0x86, 0x7d, + 0x63, 0x63, 0xce, 0xae, 0x81, 0x05, 0xe8, 0x4b, 0x90, 0x28, 0xaf, 0xb1, 0x86, 0xf7, 0x54, 0x1c, + 0x31, 0x46, 0xa2, 0xbc, 0x36, 0xf5, 0x37, 0x0a, 0x8c, 0x08, 0xa3, 0x7a, 0x06, 0x86, 0xe9, 0x40, + 0x60, 0xba, 0x03, 0x86, 0x30, 0xc6, 0x75, 0x4e, 0xdc, 0xa6, 0xce, 0x53, 0x39, 0x18, 0x93, 0xc6, + 0xf5, 0x79, 0xd0, 0x83, 0x43, 0x4c, 0x09, 0xfa, 0x63, 0x44, 0x21, 0x94, 0xcc, 0xdd, 0x00, 0xbe, + 0x5d, 0xbd, 0xdf, 0xd0, 0x29, 0x97, 0x36, 0xb7, 0x4a, 0x45, 0x4d, 0xc9, 0x7c, 0x5d, 0x81, 0x21, + 0xd6, 0xb6, 0x56, 0xed, 0x16, 0xd2, 0xf3, 0xa0, 0xe4, 0x58, 0x3c, 0xbc, 0x35, 0xbd, 0x95, 0x9c, + 0x7e, 0x06, 0x94, 0x7c, 0x7c, 0x57, 0x2b, 0x79, 0x7d, 0x11, 0x94, 0x02, 0x73, 0x70, 0x3c, 0xcf, + 0x28, 0x85, 0xcc, 0x8f, 0x54, 0x98, 0x08, 0xb6, 0xd1, 0xbc, 0x9e, 0x9c, 0x14, 0xdf, 0x9b, 0xb2, + 0x83, 0x67, 0x17, 0xcf, 0x2d, 0xcd, 0xe3, 0x7f, 0xbc, 0x90, 0x3c, 0x29, 0xbe, 0x42, 0x75, 0xb3, + 0x74, 0x5d, 0x13, 0xc9, 0x26, 0x03, 0xd4, 0xae, 0x6b, 0x22, 0x02, 0xb5, 0xeb, 0x9a, 0x88, 0x40, + 0xed, 0xba, 0x26, 0x22, 0x50, 0xbb, 0x8e, 0x02, 0x04, 0x6a, 0xd7, 0x35, 0x11, 0x81, 0xda, 0x75, + 0x4d, 0x44, 0xa0, 0x76, 0x5f, 0x13, 0x61, 0xe4, 0x9e, 0xd7, 0x44, 0x44, 0x7a, 0xf7, 0x35, 0x11, + 0x91, 0xde, 0x7d, 0x4d, 0x24, 0x9b, 0x74, 0xdb, 0x1d, 0xd4, 0xfb, 0xd0, 0x41, 0xc4, 0x1f, 0xf4, + 0x0e, 0xe8, 0x17, 0xe0, 0x75, 0x18, 0xa3, 0xfb, 0x11, 0x05, 0xdb, 0x72, 0xcd, 0xba, 0x85, 0xda, + 0xfa, 0xbb, 0x61, 0x98, 0x0e, 0xd1, 0xb7, 0x9c, 0xb0, 0xb7, 0x40, 0x4a, 0x67, 0xe5, 0x56, 0xe0, + 0xce, 0xfc, 0x2c, 0x09, 0x93, 0x74, 0xa0, 0x6c, 0x36, 0x91, 0x70, 0xc9, 0xe8, 0xb4, 0x74, 0xa4, + 0x34, 0x8a, 0xe1, 0xb7, 0x5e, 0x99, 0xa1, 0xa3, 0x39, 0x2f, 0x98, 0x4e, 0x4b, 0x87, 0x4b, 0x22, + 0x9f, 0xbf, 0xfe, 0x9c, 0x96, 0x2e, 0x1e, 0x89, 0x7c, 0xde, 0x72, 0xe3, 0xf1, 0xf1, 0x2b, 0x48, + 0x22, 0x5f, 0xd1, 0x8b, 0xb2, 0xd3, 0xd2, 0x65, 0x24, 0x91, 0xaf, 0xe4, 0xc5, 0xdb, 0x69, 0xe9, + 0xe8, 0x49, 0xe4, 0xbb, 0xe2, 0x45, 0xde, 0x69, 0xe9, 0x10, 0x4a, 0xe4, 0xbb, 0xea, 0xc5, 0xe0, + 0x69, 0xe9, 0xaa, 0x92, 0xc8, 0xf7, 0xa8, 0x17, 0x8d, 0xa7, 0xa5, 0x4b, 0x4b, 0x22, 0xdf, 0x8a, + 0x17, 0x97, 0xb3, 0xf2, 0xf5, 0x25, 0x91, 0xf1, 0x9a, 0x1f, 0xa1, 0xb3, 0xf2, 0x45, 0x26, 0x91, + 0xf3, 0x3d, 0x7e, 0xac, 0xce, 0xca, 0x57, 0x9a, 0x44, 0xce, 0x55, 0x3f, 0x6a, 0x67, 0xe5, 0xa3, + 0x32, 0x91, 0x73, 0xcd, 0x8f, 0xdf, 0x59, 0xf9, 0xd0, 0x4c, 0xe4, 0x2c, 0xfb, 0x91, 0x3c, 0x2b, + 0x1f, 0x9f, 0x89, 0x9c, 0xeb, 0xfe, 0x1e, 0xfa, 0xb7, 0xa4, 0xf0, 0x0b, 0x5c, 0x82, 0xca, 0x48, + 0xe1, 0x07, 0x21, 0xa1, 0x97, 0x91, 0x42, 0x0f, 0x42, 0xc2, 0x2e, 0x23, 0x85, 0x1d, 0x84, 0x84, + 0x5c, 0x46, 0x0a, 0x39, 0x08, 0x09, 0xb7, 0x8c, 0x14, 0x6e, 0x10, 0x12, 0x6a, 0x19, 0x29, 0xd4, + 0x20, 0x24, 0xcc, 0x32, 0x52, 0x98, 0x41, 0x48, 0x88, 0x65, 0xa4, 0x10, 0x83, 0x90, 0xf0, 0xca, + 0x48, 0xe1, 0x05, 0x21, 0xa1, 0x75, 0x4a, 0x0e, 0x2d, 0x08, 0x0b, 0xab, 0x53, 0x72, 0x58, 0x41, + 0x58, 0x48, 0xdd, 0x23, 0x87, 0xd4, 0xe0, 0xad, 0x57, 0x66, 0xfa, 0xf1, 0x50, 0x20, 0x9a, 0x4e, + 0xc9, 0xd1, 0x04, 0x61, 0x91, 0x74, 0x4a, 0x8e, 0x24, 0x08, 0x8b, 0xa2, 0x53, 0x72, 0x14, 0x41, + 0x58, 0x04, 0xbd, 0x24, 0x47, 0x90, 0x7f, 0xc5, 0x27, 0x23, 0x9d, 0x28, 0x46, 0x45, 0x90, 0x1a, + 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, + 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0xe3, 0x44, 0x90, 0x1a, 0x2b, 0x82, 0xd4, 0x5e, 0x11, + 0x74, 0x4a, 0xbe, 0xf0, 0x00, 0x61, 0x05, 0xe9, 0x94, 0x7c, 0xf2, 0x19, 0x1d, 0x42, 0x6a, 0xac, + 0x10, 0x52, 0x7b, 0x85, 0xd0, 0xb7, 0x54, 0x98, 0x10, 0x42, 0x88, 0x1d, 0x0f, 0xbd, 0x5d, 0x15, + 0xe8, 0x7c, 0x8c, 0xfb, 0x15, 0x61, 0x31, 0x75, 0x3e, 0xc6, 0x19, 0xf5, 0x41, 0x71, 0xd6, 0x5d, + 0x85, 0x4a, 0x31, 0xaa, 0xd0, 0x15, 0x2f, 0x86, 0xce, 0xc7, 0xb8, 0x77, 0xd1, 0x1d, 0x7b, 0x17, + 0x0f, 0x2a, 0x02, 0x8f, 0xc6, 0x2a, 0x02, 0x2b, 0xb1, 0x8a, 0xc0, 0x35, 0xdf, 0x83, 0x1f, 0x4e, + 0xc0, 0x51, 0xdf, 0x83, 0xf4, 0x13, 0xf9, 0xe1, 0xa3, 0x4c, 0xe0, 0x84, 0x4a, 0xe7, 0xa7, 0x36, + 0x01, 0x37, 0x26, 0x56, 0x6a, 0xfa, 0x86, 0x78, 0x56, 0x95, 0x3d, 0xec, 0xf9, 0x4d, 0xc0, 0xe3, + 0x6c, 0x2f, 0xf4, 0x14, 0xa8, 0x2b, 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xc7, 0x16, 0x0c, 0x4c, 0xd6, + 0x0d, 0x18, 0x20, 0xec, 0x0e, 0x71, 0xef, 0xed, 0x3c, 0xb8, 0x68, 0x30, 0x49, 0x99, 0x97, 0x14, + 0x38, 0x21, 0x84, 0xf2, 0xdb, 0x73, 0x62, 0x70, 0x39, 0xd6, 0x89, 0x81, 0x90, 0x20, 0xfe, 0xe9, + 0xc1, 0x7d, 0xdd, 0x07, 0xd5, 0xc1, 0x2c, 0x91, 0x4f, 0x12, 0xfe, 0x0f, 0x8c, 0xfa, 0x33, 0x20, + 0xaf, 0x6c, 0xcb, 0xd1, 0x9b, 0x99, 0x61, 0xa9, 0xb9, 0x2c, 0x6d, 0xa2, 0x1d, 0x08, 0xf3, 0xb2, + 0x35, 0x93, 0x85, 0xb1, 0xb2, 0xf8, 0x17, 0x3a, 0x51, 0x7b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xfc, + 0xec, 0x4c, 0x5f, 0xe6, 0x01, 0x18, 0x0e, 0xfe, 0x11, 0x8e, 0x04, 0x1c, 0xe4, 0xc0, 0x6c, 0xf2, + 0x65, 0xcc, 0xfd, 0x7b, 0x0a, 0xdc, 0x11, 0x64, 0x7f, 0xac, 0xee, 0xee, 0xad, 0x58, 0xb8, 0xa7, + 0x7f, 0x08, 0x52, 0x88, 0x39, 0x8e, 0xfd, 0x86, 0x09, 0x7b, 0x8d, 0x0c, 0x65, 0x9f, 0x27, 0xff, + 0x1a, 0x1e, 0x44, 0xda, 0x04, 0xe1, 0x8f, 0x5d, 0x9c, 0xba, 0x17, 0xfa, 0xa9, 0x7c, 0x51, 0xaf, + 0x11, 0x49, 0xaf, 0xcf, 0x87, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x26, 0xe8, 0x15, 0x78, 0x5b, 0x0d, + 0x65, 0x9f, 0xe7, 0xc1, 0x97, 0x4f, 0xe1, 0xfe, 0x8f, 0x44, 0x54, 0xb4, 0x92, 0xb3, 0x90, 0x2a, + 0xc9, 0x3c, 0xe1, 0x7a, 0x16, 0x21, 0x59, 0xb6, 0x6b, 0xe4, 0xd7, 0x55, 0xc8, 0xaf, 0xe0, 0x32, + 0x23, 0xb3, 0x9f, 0xc4, 0x3d, 0x0d, 0xa9, 0xc2, 0x5e, 0xbd, 0x51, 0x6b, 0x23, 0x8b, 0x1d, 0xd9, + 0xb3, 0x1d, 0x74, 0x8c, 0x31, 0x3c, 0x5a, 0xa6, 0x00, 0xe3, 0x65, 0xdb, 0xca, 0xef, 0xbb, 0xc1, + 0xba, 0x31, 0x2f, 0xa5, 0x08, 0x3b, 0xf2, 0x21, 0x7f, 0xd6, 0x81, 0x19, 0xf2, 0xfd, 0xdf, 0x7d, + 0x65, 0x46, 0xd9, 0xf2, 0xb6, 0xcf, 0xd7, 0xe0, 0x18, 0x4b, 0x9f, 0x2e, 0x51, 0x8b, 0x51, 0xa2, + 0x06, 0xd9, 0x31, 0x75, 0x40, 0xdc, 0x0a, 0x16, 0x67, 0x85, 0x8a, 0x7b, 0x6b, 0x9a, 0xe1, 0xa6, + 0xe8, 0x40, 0xcd, 0xd4, 0x43, 0x69, 0x16, 0x2a, 0x6e, 0x3e, 0x4a, 0x9c, 0xa4, 0xd9, 0x3d, 0x30, + 0xe8, 0xd1, 0x02, 0xd1, 0x10, 0xcc, 0x94, 0xc5, 0xb9, 0x0c, 0x0c, 0x05, 0x12, 0x56, 0xef, 0x07, + 0x25, 0xa7, 0xf5, 0xe1, 0xff, 0xf2, 0x9a, 0x82, 0xff, 0x2b, 0x68, 0x89, 0xb9, 0x7b, 0x61, 0x4c, + 0xda, 0xbe, 0xc4, 0x94, 0xa2, 0x06, 0xf8, 0xbf, 0x92, 0x36, 0x34, 0x95, 0xfc, 0xc8, 0x1f, 0x4e, + 0xf7, 0xcd, 0x5d, 0x06, 0xbd, 0x7b, 0xa3, 0x53, 0x1f, 0x80, 0x44, 0x0e, 0x8b, 0x3c, 0x06, 0x89, + 0x7c, 0x5e, 0x53, 0xa6, 0xc6, 0x7e, 0xf5, 0xd3, 0x27, 0x86, 0xf2, 0xe4, 0x2f, 0x8c, 0xaf, 0x23, + 0x37, 0x9f, 0x67, 0xe0, 0x87, 0xe1, 0x8e, 0xd0, 0x8d, 0x52, 0x8c, 0x2f, 0x14, 0x28, 0xbe, 0x58, + 0xec, 0xc2, 0x17, 0x8b, 0x04, 0xaf, 0x64, 0xf9, 0x81, 0x73, 0x4e, 0x0f, 0xd9, 0x64, 0x4c, 0xd7, + 0x02, 0x07, 0xdc, 0xb9, 0xec, 0xc3, 0x8c, 0x37, 0x1f, 0xca, 0x8b, 0x22, 0x0e, 0xac, 0xf3, 0xd9, + 0x02, 0xc3, 0x17, 0x42, 0xf1, 0x3b, 0xd2, 0xa9, 0xaa, 0xb8, 0x42, 0x30, 0x21, 0x05, 0x4f, 0xe1, + 0x62, 0xa8, 0x90, 0xbd, 0xc0, 0x5d, 0xf7, 0xa2, 0xa7, 0x70, 0x29, 0x94, 0xb7, 0x1e, 0x71, 0xe7, + 0xab, 0x94, 0x3d, 0xc3, 0x16, 0xf9, 0xdc, 0x59, 0xfd, 0x0e, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, + 0xe2, 0x5c, 0xd9, 0x02, 0x03, 0xe4, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xb3, 0x8f, 0x32, 0x21, + 0x85, 0x9e, 0x42, 0x22, 0x4c, 0xc5, 0xe1, 0xf9, 0xad, 0x9b, 0xaf, 0x4e, 0xf7, 0xbd, 0xfc, 0xea, + 0x74, 0xdf, 0x3f, 0xbd, 0x3a, 0xdd, 0xf7, 0xbd, 0x57, 0xa7, 0x95, 0x1f, 0xbc, 0x3a, 0xad, 0xfc, + 0xf0, 0xd5, 0x69, 0xe5, 0xa7, 0xaf, 0x4e, 0x2b, 0xcf, 0xdd, 0x9a, 0x56, 0x5e, 0xbc, 0x35, 0xad, + 0x7c, 0xe5, 0xd6, 0xb4, 0xf2, 0x8d, 0x5b, 0xd3, 0xca, 0x4b, 0xb7, 0xa6, 0x95, 0x9b, 0xb7, 0xa6, + 0xfb, 0x5e, 0xbe, 0x35, 0xdd, 0xf7, 0xbd, 0x5b, 0xd3, 0xca, 0x0f, 0x6e, 0x4d, 0xf7, 0xfd, 0xf0, + 0xd6, 0xb4, 0xf2, 0xd3, 0x5b, 0xd3, 0x7d, 0xcf, 0xbd, 0x36, 0xdd, 0xf7, 0xc2, 0x6b, 0xd3, 0x7d, + 0x2f, 0xbe, 0x36, 0xad, 0xfc, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0xc5, 0xea, 0x72, 0x99, + 0x64, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -12236,18 +12581,20 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12289,8 +12636,10 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12298,8 +12647,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -12354,18 +12703,20 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { - return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k]) + return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) } } else { - return fmt.Errorf("XXX_extensions[%v] Not In that", k) + return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { - return fmt.Errorf("XXX_extensions[%v] Not In this", k) + for k := range thatmap { + if _, ok := thismap[k]; !ok { + return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) } } if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { @@ -12419,8 +12770,10 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - for k, v := range this.XXX_extensions { - if v2, ok := that1.XXX_extensions[k]; ok { + thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) + thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + for k, v := range thismap { + if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { return false } @@ -12428,8 +12781,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { return false } } - for k := range that1.XXX_extensions { - if _, ok := this.XXX_extensions[k]; !ok { + for k := range thatmap { + if _, ok := thismap[k]; !ok { return false } } @@ -15028,11 +15381,455 @@ func (this *Node) Equal(that interface{}) bool { } return true } - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 +func (this *NonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NonByteCustomType) + if !ok { + that2, ok := that.(NonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") + } + if !this.Field1.Equal(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidOptNonByteCustomType) + if !ok { + that2, ok := that.(NidOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Field1.Equal(that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinOptNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") + } + if that1.Field1 == nil { + if this.Field1 != nil { + return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") + } + } else if !this.Field1.Equal(*that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinOptNonByteCustomType) + if !ok { + that2, ok := that.(NinOptNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Field1 == nil { + if this.Field1 != nil { + return false + } + } else if !this.Field1.Equal(*that1.Field1) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NidRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NidRepNonByteCustomType) + if !ok { + that2, ok := that.(NidRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *NinRepNonByteCustomType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") + } + if len(this.Field1) != len(that1.Field1) { + return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*NinRepNonByteCustomType) + if !ok { + that2, ok := that.(NinRepNonByteCustomType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Field1) != len(that1.Field1) { + return false + } + for i := range this.Field1 { + if !this.Field1[i].Equal(that1.Field1[i]) { + return false + } + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *ProtoType) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoType") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoType but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) + } + } else if this.Field2 != nil { + return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") + } else if that1.Field2 != nil { + return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) + } + return nil +} +func (this *ProtoType) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoType) + if !ok { + that2, ok := that.(ProtoType) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Field2 != nil && that1.Field2 != nil { + if *this.Field2 != *that1.Field2 { + return false + } + } else if this.Field2 != nil { + return false + } else if that1.Field2 != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} + +type NidOptNativeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() float64 + GetField2() float32 GetField3() int32 GetField4() int64 GetField5() uint32 @@ -17691,6 +18488,144 @@ func NewNodeFromFace(that NodeFace) *Node { return this } +type NonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNonByteCustomTypeFromFace(this) +} + +func (this *NonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { + this := &NonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() T +} + +func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidOptNonByteCustomTypeFromFace(this) +} + +func (this *NidOptNonByteCustomType) GetField1() T { + return this.Field1 +} + +func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinOptNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() *T +} + +func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinOptNonByteCustomTypeFromFace(this) +} + +func (this *NinOptNonByteCustomType) GetField1() *T { + return this.Field1 +} + +func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NidRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNidRepNonByteCustomTypeFromFace(this) +} + +func (this *NidRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type NinRepNonByteCustomTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField1() []T +} + +func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewNinRepNonByteCustomTypeFromFace(this) +} + +func (this *NinRepNonByteCustomType) GetField1() []T { + return this.Field1 +} + +func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + this.Field1 = that.GetField1() + return this +} + +type ProtoTypeFace interface { + Proto() github_com_gogo_protobuf_proto.Message + GetField2() *string +} + +func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { + return this +} + +func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { + return NewProtoTypeFromFace(this) +} + +func (this *ProtoType) GetField2() *string { + return this.Field2 +} + +func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { + this := &ProtoType{} + this.Field2 = that.GetField2() + return this +} + func (this *NidOptNative) GoString() string { if this == nil { return "nil" @@ -18713,9 +19648,7 @@ func (this *MyExtendable) GoString() string { if this.Field1 != nil { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") - } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -18735,11 +19668,9 @@ func (this *OtherExtenable) GoString() string { s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "int64")+",\n") } if this.M != nil { - s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+extensionToGoStringThetest(this.XXX_extensions)+",\n") + s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -19246,6 +20177,94 @@ func (this *Node) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *NonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidOptNonByteCustomType{") + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinOptNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinOptNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NidRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NidRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *NinRepNonByteCustomType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.NinRepNonByteCustomType{") + if this.Field1 != nil { + s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *ProtoType) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.ProtoType{") + if this.Field2 != nil { + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func valueToGoStringThetest(v interface{}, typ string) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -19254,11 +20273,12 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Extension) string { +func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { + e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } - s := "map[int32]proto.Extension{" + s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" keys := make([]int, 0, len(e)) for k := range e { keys = append(keys, int(k)) @@ -19268,7 +20288,7 @@ func extensionToGoStringThetest(e map[int32]github_com_gogo_protobuf_proto.Exten for _, k := range keys { ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) } - s += strings.Join(ss, ",") + "}" + s += strings.Join(ss, ",") + "})" return s } func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { @@ -19310,7 +20330,7 @@ func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { this.Field12 *= -1 } this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v1 := r.Intn(100) this.Field15 = make([]byte, v1) for i := 0; i < v1; i++ { @@ -19401,7 +20421,7 @@ func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { this.Field13 = &v14 } if r.Intn(10) != 0 { - v15 := randStringThetest(r) + v15 := string(randStringThetest(r)) this.Field14 = &v15 } if r.Intn(10) != 0 { @@ -19538,7 +20558,7 @@ func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { v30 := r.Intn(10) this.Field14 = make([]string, v30) for i := 0; i < v30; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19679,7 +20699,7 @@ func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { v46 := r.Intn(10) this.Field14 = make([]string, v46) for i := 0; i < v46; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -19967,7 +20987,7 @@ func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { v77 := NewPopulatedNidOptNative(r, easy) this.Field8 = *v77 this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = randStringThetest(r) + this.Field14 = string(randStringThetest(r)) v78 := r.Intn(100) this.Field15 = make([]byte, v78) for i := 0; i < v78; i++ { @@ -20020,7 +21040,7 @@ func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { this.Field13 = &v83 } if r.Intn(10) != 0 { - v84 := randStringThetest(r) + v84 := string(randStringThetest(r)) this.Field14 = &v84 } if r.Intn(10) != 0 { @@ -20110,7 +21130,7 @@ func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { v97 := r.Intn(10) this.Field14 = make([]string, v97) for i := 0; i < v97; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20201,7 +21221,7 @@ func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { v108 := r.Intn(10) this.Field14 = make([]string, v108) for i := 0; i < v108; i++ { - this.Field14[i] = randStringThetest(r) + this.Field14[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -20412,7 +21432,7 @@ func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion v133 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v133 case 7: - v134 := randStringThetest(r) + v134 := string(randStringThetest(r)) this.Field14 = &v134 case 8: v135 := r.Intn(100) @@ -20457,7 +21477,7 @@ func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion v140 := bool(bool(r.Intn(2) == 0)) this.Field13 = &v140 case 7: - v141 := randStringThetest(r) + v141 := string(randStringThetest(r)) this.Field14 = &v141 case 8: v142 := r.Intn(100) @@ -20542,7 +21562,7 @@ func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { if r.Intn(2) == 0 { this.Value *= -1 } - this.StrValue = randStringThetest(r) + this.StrValue = string(randStringThetest(r)) if !easy && r.Intn(10) != 0 { this.XXX_unrecognized = randUnrecognizedThetest(r, 3) } @@ -20788,8 +21808,8 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20832,8 +21852,8 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -20885,7 +21905,7 @@ func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *Nest func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { this := &NestedDefinition_NestedMessage_NestedNestedMsg{} if r.Intn(10) != 0 { - v177 := randStringThetest(r) + v177 := string(randStringThetest(r)) this.NestedNestedField1 = &v177 } if !easy && r.Intn(10) != 0 { @@ -20991,7 +22011,7 @@ func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDef this.Field13 = &v191 } if r.Intn(10) != 0 { - v192 := randStringThetest(r) + v192 := string(randStringThetest(r)) this.Field14 = &v192 } if r.Intn(10) != 0 { @@ -21056,7 +22076,7 @@ func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldL *= -1 } this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = randStringThetest(r) + this.FieldN = string(randStringThetest(r)) v195 := r.Intn(100) this.FieldO = make([]byte, v195) for i := 0; i < v195; i++ { @@ -21147,7 +22167,7 @@ func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNi this.FieldM = &v208 } if r.Intn(10) != 0 { - v209 := randStringThetest(r) + v209 := string(randStringThetest(r)) this.FieldN = &v209 } if r.Intn(10) != 0 { @@ -21284,7 +22304,7 @@ func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNi v224 := r.Intn(10) this.FieldN = make([]string, v224) for i := 0; i < v224; i++ { - this.FieldN[i] = randStringThetest(r) + this.FieldN[i] = string(randStringThetest(r)) } } if r.Intn(10) != 0 { @@ -21349,7 +22369,7 @@ func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinSt this.FieldH = &v232 } if r.Intn(10) != 0 { - v233 := randStringThetest(r) + v233 := string(randStringThetest(r)) this.FieldI = &v233 } if r.Intn(10) != 0 { @@ -21446,8 +22466,8 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { if wire == 3 { wire = 5 } - data := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), data) + dAtA := randFieldThetest(nil, r, fieldNumber, wire) + github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21459,7 +22479,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { this := &Unrecognized{} if r.Intn(10) != 0 { - v243 := randStringThetest(r) + v243 := string(randStringThetest(r)) this.Field1 = &v243 } if !easy && r.Intn(10) != 0 { @@ -21477,7 +22497,7 @@ func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedW } } if r.Intn(10) != 0 { - v245 := randStringThetest(r) + v245 := string(randStringThetest(r)) this.Field2 = &v245 } if !easy && r.Intn(10) != 0 { @@ -21502,7 +22522,7 @@ func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedW v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) this.UnrecognizedWithEmbed_Embedded = *v247 if r.Intn(10) != 0 { - v248 := randStringThetest(r) + v248 := string(randStringThetest(r)) this.Field2 = &v248 } if !easy && r.Intn(10) != 0 { @@ -21525,7 +22545,7 @@ func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *Unre func NewPopulatedNode(r randyThetest, easy bool) *Node { this := &Node{} if r.Intn(10) != 0 { - v250 := randStringThetest(r) + v250 := string(randStringThetest(r)) this.Label = &v250 } if r.Intn(10) == 0 { @@ -21541,6 +22561,82 @@ func NewPopulatedNode(r randyThetest, easy bool) *Node { return this } +func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { + this := &NonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { + this := &NidOptNonByteCustomType{} + v252 := NewPopulatedT(r) + this.Field1 = *v252 + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { + this := &NinOptNonByteCustomType{} + if r.Intn(10) != 0 { + this.Field1 = NewPopulatedT(r) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { + this := &NidRepNonByteCustomType{} + if r.Intn(10) != 0 { + v253 := r.Intn(10) + this.Field1 = make([]T, v253) + for i := 0; i < v253; i++ { + v254 := NewPopulatedT(r) + this.Field1[i] = *v254 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { + this := &NinRepNonByteCustomType{} + if r.Intn(10) != 0 { + v255 := r.Intn(10) + this.Field1 = make([]T, v255) + for i := 0; i < v255; i++ { + v256 := NewPopulatedT(r) + this.Field1[i] = *v256 + } + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + +func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { + this := &ProtoType{} + if r.Intn(10) != 0 { + v257 := string(randStringThetest(r)) + this.Field2 = &v257 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedThetest(r, 2) + } + return this +} + type randyThetest interface { Float32() float32 Float64() float64 @@ -21560,14 +22656,14 @@ func randUTF8RuneThetest(r randyThetest) rune { return rune(ru + 61) } func randStringThetest(r randyThetest) string { - v252 := r.Intn(100) - tmps := make([]rune, v252) - for i := 0; i < v252; i++ { + v258 := r.Intn(100) + tmps := make([]rune, v258) + for i := 0; i < v258; i++ { tmps[i] = randUTF8RuneThetest(r) } return string(tmps) } -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { +func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -21575,43 +22671,43 @@ func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (data []byte) { wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldThetest(data, r, fieldNumber, wire) + dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldThetest(data []byte, r randyThetest, fieldNumber int, wire int) []byte { +func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateThetest(data, uint64(key)) - v253 := r.Int63() + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + v259 := r.Int63() if r.Intn(2) == 0 { - v253 *= -1 + v259 *= -1 } - data = encodeVarintPopulateThetest(data, uint64(v253)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) case 1: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateThetest(data, uint64(key)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateThetest(data, uint64(ll)) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateThetest(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateThetest(data []byte, v uint64) []byte { +func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NidOptNative) Size() (n int) { var l int @@ -22722,9 +23818,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22744,9 +23838,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - if m.XXX_extensions != nil { - n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions) - } + n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23256,6 +24348,86 @@ func (m *Node) Size() (n int) { return n } +func (m *NonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidOptNonByteCustomType) Size() (n int) { + var l int + _ = l + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinOptNonByteCustomType) Size() (n int) { + var l int + _ = l + if m.Field1 != nil { + l = m.Field1.Size() + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NidRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NinRepNonByteCustomType) Size() (n int) { + var l int + _ = l + if len(m.Field1) > 0 { + for _, e := range m.Field1 { + l = e.Size() + n += 1 + l + sovThetest(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProtoType) Size() (n int) { + var l int + _ = l + if m.Field2 != nil { + l = len(*m.Field2) + n += 1 + l + sovThetest(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovThetest(x uint64) (n int) { for { n++ @@ -23882,7 +25054,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -23896,7 +25068,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`, + `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24128,7 +25300,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -24200,6 +25372,72 @@ func (this *Node) String() string { }, "") return s } +func (this *NonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidOptNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinOptNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinOptNonByteCustomType{`, + `Field1:` + valueToStringThetest(this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NidRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NidRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *NinRepNonByteCustomType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NinRepNonByteCustomType{`, + `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} +func (this *ProtoType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProtoType{`, + `Field2:` + valueToStringThetest(this.Field2) + `,`, + `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, + `}`, + }, "") + return s +} func valueToStringThetest(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -24466,194 +25704,200 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { return true } +func init() { proto.RegisterFile("thetest.proto", fileDescriptorThetest) } + var fileDescriptorThetest = []byte{ - // 2996 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xf5, 0xd6, 0xee, 0x90, 0x32, 0x35, 0xa2, 0x24, 0x7a, 0x13, 0x33, 0x0b, 0x46, 0x3f, 0x49, 0xde, - 0x1f, 0xa3, 0x2a, 0x84, 0x2d, 0x91, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0xda, 0xae, - 0x45, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x12, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0x2b, - 0xd7, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x8c, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xb8, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x28, 0x0a, 0x23, 0x71, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0x67, 0x77, 0x67, 0x66, 0x67, 0x66, 0x77, 0xb9, 0x4b, - 0x4b, 0x6e, 0x73, 0xa0, 0x48, 0xed, 0xf7, 0xde, 0xce, 0xdb, 0xf7, 0x7d, 0x6f, 0xf6, 0xed, 0xce, - 0xc0, 0x09, 0x73, 0x5f, 0x37, 0xf5, 0xbe, 0xb9, 0x78, 0xd4, 0xeb, 0x9a, 0x5d, 0x25, 0x66, 0xfd, - 0xce, 0x5c, 0xde, 0xeb, 0x98, 0xfb, 0xc7, 0xdb, 0x8b, 0x3b, 0xdd, 0xc3, 0xa5, 0xbd, 0xee, 0x5e, - 0x77, 0xc9, 0x06, 0xb7, 0x8f, 0x77, 0xed, 0xff, 0xec, 0x7f, 0xec, 0x5f, 0x8e, 0x93, 0xf6, 0x4f, - 0x00, 0x93, 0x8d, 0x4e, 0x7b, 0xf3, 0xc8, 0x6c, 0xb4, 0xcc, 0xce, 0x3d, 0x5d, 0x99, 0x86, 0xa3, - 0xd7, 0x3a, 0xfa, 0x41, 0xbb, 0xa0, 0x4a, 0x73, 0xd2, 0x82, 0x54, 0x89, 0x9d, 0x3c, 0x9b, 0x1d, - 0x69, 0x8e, 0xee, 0xda, 0xc7, 0x28, 0x5a, 0x54, 0x65, 0x84, 0xca, 0x1c, 0x5a, 0xa4, 0xe8, 0xb2, - 0x0a, 0x10, 0x1a, 0xe7, 0xd0, 0x65, 0x8a, 0x96, 0xd4, 0x18, 0x42, 0x01, 0x87, 0x96, 0x28, 0xba, - 0xa2, 0xc6, 0x11, 0x3a, 0xc1, 0xa1, 0x2b, 0x14, 0x5d, 0x55, 0x47, 0x11, 0x1a, 0xe3, 0xd0, 0x55, - 0x8a, 0x5e, 0x51, 0xcf, 0x21, 0xf4, 0x3c, 0x87, 0x5e, 0xa1, 0xe8, 0x9a, 0x9a, 0x40, 0xa8, 0xc2, - 0xa1, 0x6b, 0x14, 0xbd, 0xaa, 0x8e, 0x21, 0xf4, 0x1c, 0x87, 0x5e, 0x55, 0x66, 0xe0, 0x39, 0x27, - 0x1b, 0x79, 0x15, 0x22, 0x78, 0x0a, 0xc3, 0xe7, 0x9c, 0x74, 0xe4, 0x5d, 0xbc, 0xa0, 0x8e, 0x23, - 0x7c, 0x94, 0xc7, 0x0b, 0x2e, 0x5e, 0x54, 0x93, 0x08, 0x4f, 0xf1, 0x78, 0xd1, 0xc5, 0x97, 0xd5, - 0x09, 0x84, 0x27, 0x78, 0x7c, 0xd9, 0xc5, 0x4b, 0xea, 0x24, 0xc2, 0xc7, 0x78, 0xbc, 0xe4, 0xe2, - 0x2b, 0xea, 0x14, 0xc2, 0x93, 0x3c, 0xbe, 0xa2, 0xbd, 0x6f, 0xd3, 0x6b, 0xb8, 0xf4, 0xa6, 0x79, - 0x7a, 0x29, 0xb1, 0x69, 0x9e, 0x58, 0x4a, 0x69, 0x9a, 0xa7, 0x94, 0x92, 0x99, 0xe6, 0xc9, 0xa4, - 0x34, 0xa6, 0x79, 0x1a, 0x29, 0x81, 0x69, 0x9e, 0x40, 0x4a, 0x5d, 0x9a, 0xa7, 0x8e, 0x92, 0x96, - 0xe6, 0x49, 0xa3, 0x74, 0xa5, 0x79, 0xba, 0x28, 0x51, 0xaa, 0x40, 0x94, 0x4b, 0x91, 0x2a, 0x50, - 0xe4, 0x92, 0xa3, 0x0a, 0xe4, 0xb8, 0xb4, 0xa8, 0x02, 0x2d, 0x2e, 0x21, 0xaa, 0x40, 0x88, 0x4b, - 0x85, 0x2a, 0x50, 0xe1, 0x92, 0x80, 0x6b, 0xac, 0xa9, 0x1f, 0xf9, 0xd4, 0x18, 0x18, 0x58, 0x63, - 0x60, 0x60, 0x8d, 0x81, 0x81, 0x35, 0x06, 0x06, 0xd6, 0x18, 0x18, 0x58, 0x63, 0x60, 0x60, 0x8d, - 0x81, 0x81, 0x35, 0x06, 0x06, 0xd6, 0x18, 0x18, 0x5c, 0x63, 0x20, 0xa4, 0xc6, 0x40, 0x48, 0x8d, - 0x81, 0x90, 0x1a, 0x03, 0x21, 0x35, 0x06, 0x42, 0x6a, 0x0c, 0x04, 0xd6, 0x98, 0x4b, 0x6f, 0x9a, - 0xa7, 0xd7, 0xb7, 0xc6, 0x40, 0x40, 0x8d, 0x81, 0x80, 0x1a, 0x03, 0x01, 0x35, 0x06, 0x02, 0x6a, - 0x0c, 0x04, 0xd4, 0x18, 0x08, 0xa8, 0x31, 0x10, 0x50, 0x63, 0x20, 0xa8, 0xc6, 0x40, 0x60, 0x8d, - 0x81, 0xc0, 0x1a, 0x03, 0x81, 0x35, 0x06, 0x02, 0x6b, 0x0c, 0x04, 0xd6, 0x18, 0x60, 0x6b, 0xec, - 0x4f, 0x00, 0x2a, 0x4e, 0x8d, 0xdd, 0x6e, 0xed, 0xfc, 0x40, 0x6f, 0x63, 0x2a, 0x66, 0x84, 0x4a, - 0x1b, 0xb5, 0xa8, 0x4b, 0xb9, 0x94, 0xcc, 0x08, 0xb5, 0xc6, 0xe3, 0x45, 0x8a, 0x93, 0x6a, 0xe3, - 0xf1, 0x65, 0x8a, 0x93, 0x7a, 0xe3, 0xf1, 0x12, 0xc5, 0x49, 0xc5, 0xf1, 0xf8, 0x0a, 0xc5, 0x49, - 0xcd, 0xf1, 0xf8, 0x2a, 0xc5, 0x49, 0xd5, 0xf1, 0xf8, 0x15, 0x8a, 0x93, 0xba, 0xe3, 0xf1, 0x35, - 0x8a, 0x93, 0xca, 0xe3, 0xf1, 0xab, 0xca, 0x9c, 0x58, 0x7b, 0xc4, 0x80, 0x52, 0x3b, 0x27, 0x56, - 0x9f, 0x60, 0x51, 0x70, 0x2d, 0x48, 0xfd, 0x09, 0x16, 0x45, 0xd7, 0x82, 0x54, 0xa0, 0x60, 0xb1, - 0xac, 0x3d, 0xb4, 0xe9, 0x33, 0x44, 0xfa, 0x32, 0x02, 0x7d, 0x32, 0x43, 0x5d, 0x46, 0xa0, 0x4e, - 0x66, 0x68, 0xcb, 0x08, 0xb4, 0xc9, 0x0c, 0x65, 0x19, 0x81, 0x32, 0x99, 0xa1, 0x2b, 0x23, 0xd0, - 0x25, 0x33, 0x54, 0x65, 0x04, 0xaa, 0x64, 0x86, 0xa6, 0x8c, 0x40, 0x93, 0xcc, 0x50, 0x94, 0x11, - 0x28, 0x92, 0x19, 0x7a, 0x32, 0x02, 0x3d, 0x32, 0x43, 0xcd, 0xb4, 0x48, 0x8d, 0xcc, 0xd2, 0x32, - 0x2d, 0xd2, 0x22, 0xb3, 0x94, 0x4c, 0x8b, 0x94, 0xc8, 0x2c, 0x1d, 0xd3, 0x22, 0x1d, 0x32, 0x4b, - 0xc5, 0x97, 0x32, 0xe9, 0x08, 0xdf, 0x35, 0x7b, 0xc7, 0x3b, 0xe6, 0xa9, 0x3a, 0xc2, 0x3c, 0xd7, - 0x3e, 0x8c, 0x17, 0x95, 0x45, 0xbb, 0x61, 0x65, 0x3b, 0x4e, 0xe1, 0x0e, 0x96, 0xe7, 0x1a, 0x0b, - 0xc6, 0xc3, 0xf0, 0xf7, 0x28, 0x9d, 0xaa, 0x37, 0xcc, 0x73, 0x6d, 0x46, 0x78, 0x7c, 0x6b, 0x2f, - 0xbd, 0x63, 0x7b, 0x22, 0x93, 0x8e, 0x0d, 0xa7, 0x7f, 0xd8, 0x8e, 0x2d, 0x17, 0x9e, 0x72, 0x9a, - 0xec, 0x5c, 0x78, 0xb2, 0x3d, 0x77, 0x9d, 0xa8, 0x1d, 0x5c, 0x2e, 0x3c, 0xb5, 0x34, 0xa9, 0x67, - 0xdb, 0x6f, 0x61, 0x05, 0xa3, 0xc9, 0xc4, 0x47, 0xc1, 0xc3, 0xf6, 0x5b, 0x79, 0x6e, 0x2a, 0x19, - 0x56, 0xc1, 0x60, 0x68, 0x05, 0x0f, 0xdb, 0x79, 0xe5, 0xb9, 0xe9, 0x65, 0x68, 0x05, 0xbf, 0x84, - 0x7e, 0x08, 0x2b, 0xd8, 0x4d, 0xff, 0xb0, 0xfd, 0x50, 0x2e, 0x3c, 0xe5, 0xbe, 0x0a, 0x06, 0x43, - 0x28, 0x38, 0x4a, 0x7f, 0x94, 0x0b, 0x4f, 0xad, 0xbf, 0x82, 0x4f, 0xdd, 0xcd, 0x7c, 0x20, 0xc1, - 0xf3, 0x68, 0x98, 0xfa, 0xe1, 0xb6, 0xde, 0x6e, 0xeb, 0x6d, 0x9c, 0xc7, 0x3c, 0x37, 0x13, 0x04, - 0x50, 0xfd, 0xf4, 0xd9, 0xac, 0x9b, 0xe1, 0x15, 0x98, 0x70, 0x32, 0x9c, 0xcf, 0xab, 0x27, 0x52, - 0xc8, 0x0c, 0x97, 0xd8, 0xc5, 0xa6, 0xca, 0x45, 0xe2, 0x86, 0xee, 0x3d, 0x7f, 0x93, 0x98, 0x59, - 0x0e, 0x9b, 0x14, 0xf2, 0xda, 0xcf, 0xec, 0x08, 0x8d, 0x53, 0x47, 0xb8, 0x14, 0x29, 0x42, 0x26, - 0xb6, 0xd7, 0x3d, 0xb1, 0x31, 0x51, 0x1d, 0xc3, 0x29, 0xe4, 0xd6, 0x40, 0xee, 0xd1, 0x42, 0x72, - 0x6c, 0x84, 0xf9, 0x20, 0xcf, 0xc9, 0x92, 0xf5, 0xa0, 0x92, 0xe6, 0xe7, 0x08, 0xad, 0x63, 0x0d, - 0x6b, 0x70, 0xc3, 0xe6, 0x82, 0x86, 0x75, 0x67, 0x76, 0x3a, 0x60, 0x2e, 0x68, 0x40, 0xb7, 0x86, - 0xe8, 0x50, 0xf7, 0xc9, 0xcd, 0xb9, 0x7a, 0xdc, 0x37, 0xbb, 0x87, 0x68, 0x72, 0x90, 0x6f, 0xb4, - 0xed, 0x31, 0x92, 0x95, 0xa4, 0x15, 0xd4, 0x3f, 0x9e, 0xcd, 0xc6, 0xee, 0x1c, 0xa3, 0x58, 0xe5, - 0x4e, 0x5b, 0xb9, 0x09, 0xe3, 0xdf, 0x6e, 0x1d, 0x1c, 0xeb, 0xf6, 0x2d, 0x22, 0x59, 0x29, 0x61, - 0x83, 0x4b, 0x81, 0xef, 0x88, 0xac, 0x81, 0x97, 0x76, 0xec, 0x53, 0x2f, 0xde, 0xe9, 0x18, 0x66, - 0xa1, 0xb8, 0xd6, 0x8c, 0xdf, 0xb3, 0x4e, 0xa1, 0x7d, 0x0f, 0x42, 0x67, 0xcc, 0x5a, 0xab, 0xbf, - 0xaf, 0x34, 0xc8, 0x99, 0x9d, 0xa1, 0xd7, 0xd0, 0x59, 0x4b, 0x51, 0xce, 0x7a, 0xb9, 0x8d, 0xbc, - 0x2f, 0x9b, 0x0f, 0x8e, 0xf4, 0xc5, 0xca, 0x03, 0x74, 0x9c, 0x9c, 0xfd, 0x88, 0xdc, 0xf5, 0xf0, - 0x75, 0xa9, 0xcc, 0x75, 0x25, 0xb8, 0x6b, 0xba, 0xc6, 0x5f, 0x53, 0xfe, 0x45, 0xaf, 0xe7, 0x3e, - 0xb9, 0x49, 0x08, 0x99, 0x04, 0x61, 0x99, 0x04, 0xa7, 0xcd, 0xe4, 0x11, 0x99, 0x1f, 0x85, 0x6b, - 0x05, 0x83, 0xae, 0x15, 0x9c, 0xe6, 0x5a, 0xff, 0xed, 0x54, 0x2b, 0xad, 0xa7, 0x3b, 0x46, 0xa7, - 0x6b, 0x7c, 0xe5, 0xde, 0x05, 0x9d, 0x69, 0x17, 0x50, 0x8e, 0x9d, 0x3c, 0x9a, 0x95, 0xb4, 0x0f, - 0x64, 0x72, 0xe5, 0x4e, 0x21, 0xbd, 0xd8, 0x95, 0x7f, 0x55, 0x7a, 0xaa, 0x97, 0x91, 0xa1, 0x5f, - 0x4a, 0x30, 0xed, 0x99, 0xc9, 0x9d, 0x34, 0x9d, 0xed, 0x74, 0x6e, 0x0c, 0x3b, 0x9d, 0xe3, 0x00, - 0x7f, 0x27, 0xc1, 0x57, 0x85, 0xe9, 0xd5, 0x09, 0x6f, 0x49, 0x08, 0xef, 0x35, 0xef, 0x48, 0xb6, - 0x21, 0x13, 0x1d, 0x4b, 0xaf, 0xe0, 0xc0, 0x9c, 0x99, 0xf2, 0x5e, 0x12, 0x78, 0x9f, 0xa6, 0x0e, - 0x3e, 0xe9, 0x22, 0x0a, 0xc0, 0x61, 0x77, 0x61, 0x6c, 0xab, 0xa7, 0x5b, 0xaf, 0x20, 0xe4, 0xcd, - 0x1e, 0x8e, 0x70, 0xd2, 0xf1, 0xdf, 0xec, 0x55, 0x7a, 0x2d, 0x63, 0x67, 0xbf, 0x29, 0x77, 0x7b, - 0xe8, 0x66, 0x0b, 0xd6, 0x8d, 0x36, 0x8e, 0x68, 0xca, 0x31, 0x40, 0x07, 0xb0, 0x05, 0x68, 0x19, - 0x6d, 0x74, 0x8a, 0xd8, 0x2d, 0xbd, 0xb5, 0x8b, 0x83, 0x80, 0x8e, 0x8d, 0x75, 0xa4, 0x19, 0x3b, - 0x40, 0x7f, 0xf1, 0x80, 0xdf, 0x85, 0x09, 0x72, 0x62, 0x25, 0x6b, 0x79, 0xec, 0x9a, 0x78, 0x58, - 0xec, 0x61, 0x85, 0x83, 0xef, 0x5c, 0xc8, 0x6f, 0xd7, 0x54, 0xe6, 0x61, 0xbc, 0xd9, 0xd9, 0xdb, - 0x37, 0xf1, 0xe0, 0x5e, 0xb3, 0x78, 0xcf, 0x82, 0xb5, 0xbb, 0x70, 0x8c, 0x46, 0x74, 0xc6, 0xa7, - 0xae, 0x39, 0x97, 0x86, 0x9e, 0x84, 0x99, 0xfb, 0x09, 0x79, 0x6f, 0xe9, 0xcc, 0x5e, 0xca, 0x1c, - 0x4c, 0xa0, 0x34, 0xbb, 0x93, 0x3e, 0xe9, 0x48, 0x13, 0x7d, 0x7c, 0x54, 0x7b, 0x5f, 0x82, 0x89, - 0x9a, 0xae, 0x1f, 0xd9, 0x09, 0x7f, 0x03, 0xc6, 0x6a, 0xdd, 0x1f, 0x1a, 0x38, 0xc0, 0xf3, 0x38, - 0xa3, 0x16, 0x8c, 0x73, 0x1a, 0x6b, 0x23, 0x18, 0x99, 0x31, 0x79, 0x7f, 0x85, 0xe6, 0x9d, 0xb1, - 0xb3, 0x73, 0xaf, 0x71, 0xb9, 0xc7, 0x04, 0x5a, 0x46, 0x9e, 0xfc, 0x5f, 0x81, 0xe3, 0xcc, 0x28, - 0xca, 0x02, 0x0e, 0x43, 0x16, 0x1d, 0xd9, 0x5c, 0x59, 0x91, 0x68, 0x3a, 0x9c, 0xe0, 0x06, 0xb6, - 0x5c, 0x99, 0x14, 0x07, 0xb8, 0xda, 0x69, 0xce, 0xf1, 0x69, 0xf6, 0x37, 0xc5, 0xa9, 0xce, 0x3b, - 0x39, 0xb2, 0xd3, 0x9d, 0x75, 0xc4, 0x19, 0x4c, 0xa2, 0x89, 0x7e, 0x6b, 0x71, 0x08, 0x1a, 0x9d, - 0x03, 0xed, 0x6d, 0x08, 0x9d, 0x92, 0xaf, 0x1b, 0xc7, 0x87, 0x42, 0xd5, 0x4d, 0x92, 0x04, 0x6f, - 0xed, 0xeb, 0x5b, 0xe8, 0xdb, 0x32, 0xe1, 0xfb, 0x29, 0x6b, 0x82, 0x81, 0x4e, 0x89, 0xd9, 0xfe, - 0x6f, 0x86, 0xfa, 0xfb, 0x76, 0x62, 0x96, 0xa9, 0xea, 0x98, 0xde, 0xd5, 0xcd, 0x75, 0xa3, 0x6b, - 0xee, 0xeb, 0x3d, 0xc1, 0xa3, 0xa8, 0x2c, 0x73, 0x05, 0x3b, 0x59, 0x7c, 0x9d, 0x7a, 0x04, 0x3a, - 0x2d, 0x6b, 0x1f, 0xda, 0x01, 0x5a, 0xad, 0x80, 0xe7, 0x02, 0x41, 0x84, 0x0b, 0x54, 0x56, 0xb9, - 0xfe, 0x6d, 0x40, 0x98, 0xc2, 0xa3, 0xe5, 0x55, 0xee, 0x39, 0x67, 0x70, 0xb0, 0xfc, 0x33, 0x26, - 0xc9, 0x29, 0x09, 0xf9, 0xcd, 0xd0, 0x90, 0x03, 0xba, 0xdb, 0x61, 0x73, 0x0a, 0xa2, 0xe6, 0xf4, - 0x8f, 0xb4, 0xe3, 0xb0, 0x0e, 0xd7, 0xf4, 0xdd, 0xd6, 0xf1, 0x81, 0xa9, 0x5c, 0x0a, 0xe5, 0xbe, - 0x2c, 0x55, 0x69, 0xa8, 0xa5, 0xa8, 0xf4, 0x97, 0xe5, 0x4a, 0x85, 0x86, 0x7b, 0x65, 0x08, 0x09, - 0x94, 0xe5, 0x6a, 0x95, 0x4e, 0xdb, 0x89, 0x87, 0xa8, 0x8a, 0x1f, 0x3f, 0x9a, 0x1d, 0xd1, 0x7e, - 0x8b, 0x82, 0xc7, 0x96, 0x8c, 0x70, 0x2f, 0x0b, 0xc1, 0x5f, 0x20, 0x73, 0x86, 0x5f, 0x06, 0xfe, - 0x6b, 0xe2, 0xfd, 0x8b, 0x04, 0x55, 0x4f, 0xac, 0x24, 0xdf, 0xf9, 0x48, 0x21, 0x97, 0xa5, 0xfa, - 0xff, 0x3e, 0xe7, 0x77, 0x61, 0x7c, 0xab, 0x73, 0xa8, 0xf7, 0xac, 0x3b, 0x81, 0xf5, 0xc3, 0x09, - 0x99, 0x2c, 0xe6, 0xc4, 0x4d, 0xeb, 0x10, 0xc1, 0x9c, 0xe0, 0x38, 0xcc, 0x5a, 0x4f, 0x88, 0xd5, - 0x5a, 0x66, 0xcb, 0x8e, 0x20, 0x49, 0xe7, 0x57, 0x74, 0x44, 0x5b, 0x86, 0xc9, 0x8d, 0x07, 0xf5, - 0xfb, 0xa6, 0x6e, 0xb4, 0x5b, 0xdb, 0x07, 0xe2, 0x1a, 0x28, 0xe9, 0x57, 0x0b, 0xb9, 0x78, 0xa2, - 0x9d, 0x3a, 0x91, 0xca, 0x31, 0x3b, 0x9e, 0x7b, 0x70, 0x72, 0xd3, 0x0a, 0xdb, 0xf6, 0xe3, 0xdc, - 0x9c, 0xd1, 0x01, 0xbd, 0x78, 0xa1, 0x29, 0x03, 0x6e, 0x53, 0x36, 0x07, 0xa5, 0x0d, 0xbe, 0x75, - 0x62, 0xe3, 0x68, 0x4a, 0x87, 0xb9, 0x58, 0x62, 0x32, 0x75, 0x1e, 0xfd, 0x85, 0xa9, 0x09, 0x3c, - 0xee, 0x5f, 0x01, 0x4c, 0x39, 0xad, 0x0e, 0x22, 0xb1, 0x63, 0x74, 0x4c, 0x6f, 0xbf, 0x4a, 0x23, - 0x56, 0xbe, 0x01, 0xc7, 0xac, 0x94, 0xda, 0x18, 0x26, 0xec, 0x22, 0x6e, 0x51, 0x84, 0x53, 0xe0, - 0x03, 0xb6, 0x74, 0xc6, 0x74, 0xe2, 0x83, 0x1e, 0x30, 0x40, 0xa3, 0xb1, 0x81, 0x6f, 0x6e, 0xa5, - 0x81, 0xae, 0x1b, 0x7a, 0xbf, 0xdf, 0xda, 0xd3, 0xf1, 0x7f, 0xf8, 0x58, 0x7f, 0xaf, 0x09, 0x8c, - 0xc6, 0x06, 0x92, 0x8d, 0x8c, 0x4e, 0xe3, 0x34, 0xbc, 0xd9, 0x28, 0xa7, 0x69, 0xca, 0xc6, 0x46, - 0xe6, 0xcf, 0x12, 0x9c, 0xe0, 0x8e, 0xa2, 0xbb, 0x6d, 0xd2, 0x39, 0xc0, 0x5c, 0xee, 0x68, 0x33, - 0x69, 0x30, 0xc7, 0x48, 0xcc, 0xf2, 0x29, 0x63, 0xce, 0xac, 0xa3, 0xa7, 0x76, 0xfe, 0xb8, 0xb2, - 0x08, 0x15, 0xf6, 0x10, 0x0e, 0x02, 0xda, 0x0d, 0xb5, 0x62, 0x78, 0x10, 0xed, 0xff, 0xd0, 0x2c, - 0x4c, 0xf3, 0xaa, 0x4c, 0xc1, 0xf1, 0xad, 0xbb, 0xb7, 0xeb, 0xdf, 0x6f, 0xd4, 0xdf, 0xdd, 0xaa, - 0xd7, 0x52, 0x92, 0xf6, 0x7b, 0x09, 0x8e, 0xe3, 0xb6, 0x75, 0xa7, 0x7b, 0xa4, 0x2b, 0x15, 0x28, - 0xad, 0x63, 0x3d, 0xbc, 0x58, 0xdc, 0x52, 0x0b, 0xdd, 0x9d, 0xa4, 0x4a, 0x74, 0xaa, 0xa5, 0x6d, - 0xa5, 0x08, 0xa5, 0x2a, 0x26, 0x38, 0x1a, 0x33, 0xd2, 0x8e, 0xf6, 0x2f, 0x00, 0x5f, 0x61, 0xdb, - 0x68, 0x32, 0x9f, 0x5c, 0xe4, 0x9f, 0x9b, 0xca, 0x63, 0x85, 0xe2, 0x72, 0x69, 0xd1, 0xfa, 0x43, - 0x25, 0x79, 0x91, 0x7f, 0x84, 0xf2, 0x9a, 0x78, 0xb6, 0x89, 0x94, 0x63, 0x0c, 0xea, 0xd9, 0x26, - 0xc2, 0xa1, 0x9e, 0x6d, 0x22, 0x1c, 0xea, 0xd9, 0x26, 0xc2, 0xa1, 0x9e, 0xa5, 0x00, 0x0e, 0xf5, - 0x6c, 0x13, 0xe1, 0x50, 0xcf, 0x36, 0x11, 0x0e, 0xf5, 0x6e, 0x13, 0xc1, 0x70, 0xe0, 0x36, 0x11, - 0x1e, 0xf7, 0x6e, 0x13, 0xe1, 0x71, 0xef, 0x36, 0x91, 0x32, 0xea, 0xcf, 0x8e, 0xf5, 0xe0, 0x45, - 0x07, 0xde, 0x7f, 0xd0, 0x33, 0xa0, 0x3b, 0x01, 0x6f, 0xc2, 0x29, 0xe7, 0x7d, 0x44, 0xb5, 0x6b, - 0x98, 0xad, 0x8e, 0x81, 0xa6, 0xe2, 0xaf, 0xc3, 0xa4, 0x73, 0xc8, 0x79, 0xca, 0xf1, 0x7b, 0x0a, - 0x74, 0x70, 0x3c, 0xdd, 0x26, 0x77, 0x18, 0x6b, 0xed, 0xcb, 0x18, 0x4c, 0x3b, 0x70, 0xa3, 0x75, - 0xa8, 0x73, 0x9b, 0x8c, 0xe6, 0x85, 0x25, 0xa5, 0x49, 0xcb, 0xfd, 0xf9, 0xb3, 0x59, 0xe7, 0xe8, - 0x3a, 0x15, 0xd3, 0xbc, 0xb0, 0xb8, 0xc4, 0xdb, 0xb9, 0xf7, 0x9f, 0x79, 0x61, 0xe3, 0x11, 0x6f, - 0x47, 0x6f, 0x37, 0xd4, 0x8e, 0x6c, 0x41, 0xe2, 0xed, 0x6a, 0x54, 0x65, 0xf3, 0xc2, 0x66, 0x24, - 0xde, 0xae, 0x4e, 0xf5, 0x36, 0x2f, 0x2c, 0x3d, 0xf1, 0x76, 0xd7, 0xa8, 0xf2, 0xe6, 0x85, 0x45, - 0x28, 0xde, 0xee, 0x9b, 0x54, 0x83, 0xf3, 0xc2, 0x56, 0x25, 0xde, 0xee, 0x3a, 0x55, 0xe3, 0xbc, - 0xb0, 0x69, 0x89, 0xb7, 0xbb, 0x41, 0x75, 0xb9, 0x20, 0x6e, 0x5f, 0xe2, 0x0d, 0x6f, 0xba, 0x0a, - 0x5d, 0x10, 0x37, 0x32, 0xf1, 0x96, 0xdf, 0x72, 0xb5, 0xba, 0x20, 0x6e, 0x69, 0xe2, 0x2d, 0x6f, - 0xb9, 0xaa, 0x5d, 0x10, 0x97, 0xca, 0x78, 0xcb, 0x0d, 0x57, 0xbf, 0x0b, 0xe2, 0xa2, 0x19, 0x6f, - 0xd9, 0x70, 0x95, 0xbc, 0x20, 0x2e, 0x9f, 0xf1, 0x96, 0x9b, 0xee, 0x3b, 0xf4, 0x8f, 0x04, 0xf9, - 0x31, 0x9b, 0xa0, 0x34, 0x41, 0x7e, 0xd0, 0x47, 0x7a, 0x9a, 0x20, 0x3d, 0xe8, 0x23, 0x3b, 0x4d, - 0x90, 0x1d, 0xf4, 0x91, 0x9c, 0x26, 0x48, 0x0e, 0xfa, 0xc8, 0x4d, 0x13, 0xe4, 0x06, 0x7d, 0xa4, - 0xa6, 0x09, 0x52, 0x83, 0x3e, 0x32, 0xd3, 0x04, 0x99, 0x41, 0x1f, 0x89, 0x69, 0x82, 0xc4, 0xa0, - 0x8f, 0xbc, 0x34, 0x41, 0x5e, 0xd0, 0x47, 0x5a, 0x59, 0x51, 0x5a, 0xd0, 0x4f, 0x56, 0x59, 0x51, - 0x56, 0xd0, 0x4f, 0x52, 0xff, 0x2f, 0x4a, 0x6a, 0x0c, 0x59, 0xc5, 0xad, 0x43, 0x8c, 0x9a, 0xb2, - 0xa2, 0x9a, 0xa0, 0x9f, 0x92, 0xb2, 0xa2, 0x92, 0xa0, 0x9f, 0x8a, 0xb2, 0xa2, 0x8a, 0xa0, 0x9f, - 0x82, 0x9e, 0x88, 0x0a, 0x72, 0xb7, 0xf8, 0x68, 0xc2, 0x8a, 0x62, 0x98, 0x82, 0x40, 0x04, 0x05, - 0x81, 0x08, 0x0a, 0x02, 0x11, 0x14, 0x04, 0x22, 0x28, 0x08, 0x44, 0x50, 0x10, 0x88, 0xa0, 0x20, - 0x10, 0x41, 0x41, 0x20, 0x8a, 0x82, 0x40, 0x24, 0x05, 0x81, 0x20, 0x05, 0x65, 0xc5, 0x0d, 0x0f, - 0xd0, 0x6f, 0x42, 0xca, 0x8a, 0x2b, 0x9f, 0xe1, 0x12, 0x02, 0x91, 0x24, 0x04, 0x82, 0x24, 0xf4, - 0x11, 0x6a, 0xa4, 0x38, 0x09, 0xe1, 0xe5, 0xa1, 0xb3, 0x9a, 0x81, 0x56, 0x23, 0xec, 0xaf, 0xf0, - 0xd3, 0xd4, 0x6a, 0x84, 0x35, 0xea, 0x41, 0x3a, 0xf3, 0xce, 0x42, 0xf5, 0x08, 0xb3, 0xd0, 0x35, - 0xaa, 0xa1, 0xd5, 0x08, 0xfb, 0x2e, 0xbc, 0xda, 0x5b, 0x1b, 0x34, 0x09, 0x5c, 0x8f, 0x34, 0x09, - 0xdc, 0x88, 0x34, 0x09, 0xdc, 0x74, 0x19, 0xfc, 0x89, 0x0c, 0x5f, 0x75, 0x19, 0x74, 0x7e, 0x6d, - 0x3d, 0x38, 0xb2, 0xa6, 0x00, 0x77, 0x85, 0x4a, 0x21, 0xab, 0x36, 0x0c, 0x8d, 0xd6, 0xfa, 0xcd, - 0x6d, 0x7e, 0xad, 0xaa, 0x3c, 0xec, 0xfa, 0x0d, 0xc3, 0x38, 0x7e, 0x17, 0x9a, 0x85, 0xe0, 0x46, - 0xbb, 0x6f, 0xcf, 0x16, 0x7e, 0xc3, 0x56, 0x9b, 0xa0, 0xd3, 0xee, 0x2b, 0x4d, 0x38, 0x6a, 0x8f, - 0xdb, 0xb7, 0xe9, 0x3d, 0xcd, 0xc0, 0x88, 0x7a, 0x7b, 0xe0, 0xbe, 0xf6, 0x44, 0x82, 0x73, 0x9c, - 0x94, 0xcf, 0x66, 0xc5, 0xe0, 0xad, 0x48, 0x2b, 0x06, 0x5c, 0x81, 0xb8, 0xab, 0x07, 0x5f, 0xf3, - 0x2e, 0x54, 0xb3, 0x55, 0x22, 0xae, 0x24, 0xfc, 0x18, 0x4e, 0xba, 0x57, 0x60, 0x3f, 0xb2, 0xad, - 0x84, 0xbf, 0xcc, 0xf4, 0x2b, 0xcd, 0x15, 0xe1, 0x25, 0xda, 0x40, 0x37, 0x5a, 0xad, 0x5a, 0x19, - 0x3d, 0x71, 0x76, 0xed, 0x17, 0x00, 0x7d, 0x94, 0xac, 0xfe, 0x46, 0xeb, 0x28, 0xec, 0x5d, 0x44, - 0xc2, 0x6a, 0xcd, 0x4f, 0x7e, 0x85, 0xda, 0xf3, 0x4b, 0x30, 0x79, 0xc7, 0xe8, 0xe9, 0x3b, 0xdd, - 0x3d, 0xa3, 0xf3, 0x23, 0xbd, 0x2d, 0x38, 0x8e, 0x11, 0xc7, 0x72, 0xec, 0xa9, 0x65, 0xfd, 0x73, - 0x09, 0x5e, 0x60, 0xcd, 0xbf, 0x83, 0xb8, 0xbf, 0x61, 0x58, 0x3d, 0xfd, 0xdb, 0x30, 0xa1, 0x63, - 0xe2, 0xec, 0x7b, 0xd7, 0x38, 0x79, 0x8c, 0xf4, 0x35, 0x5f, 0xb4, 0xff, 0x36, 0xa9, 0x8b, 0xf0, - 0x12, 0x84, 0x0c, 0x5b, 0xcc, 0xbc, 0x01, 0xe3, 0xce, 0xf9, 0xf9, 0xb8, 0x26, 0x84, 0xb8, 0x7e, - 0xe3, 0x13, 0x97, 0xad, 0x23, 0xe5, 0x26, 0x17, 0x17, 0xf3, 0xb4, 0xea, 0x6b, 0xbe, 0x48, 0xc4, - 0x57, 0x49, 0x58, 0xfd, 0x9f, 0xad, 0xa8, 0xf0, 0x20, 0x17, 0x60, 0xa2, 0x2e, 0xda, 0xf8, 0xc7, - 0x59, 0x83, 0xb1, 0x46, 0xb7, 0xad, 0x2b, 0xaf, 0xc2, 0xf8, 0xad, 0xd6, 0xb6, 0x7e, 0x80, 0x93, - 0x1c, 0x3f, 0xb0, 0xfe, 0x41, 0xed, 0x77, 0xa2, 0xba, 0xdf, 0x39, 0x68, 0xf7, 0x74, 0x03, 0x2f, - 0xd9, 0xe3, 0x37, 0xe8, 0x96, 0x4f, 0x33, 0xb1, 0x83, 0xb1, 0x9c, 0x06, 0xc7, 0x19, 0x49, 0x28, - 0x71, 0xf4, 0xf8, 0x9f, 0x1a, 0xb1, 0xbe, 0x2a, 0x29, 0xc9, 0xfa, 0xaa, 0xa6, 0xe4, 0xdc, 0x1b, - 0x70, 0x4a, 0x78, 0x41, 0x66, 0x21, 0xb5, 0x14, 0xb4, 0xbe, 0xea, 0xa9, 0xf1, 0x4c, 0xec, 0xe1, - 0xaf, 0x67, 0x46, 0x72, 0x6f, 0x41, 0xc5, 0xfb, 0x2a, 0x4d, 0x19, 0x85, 0xf2, 0xba, 0x75, 0xca, - 0xd7, 0xa0, 0x5c, 0x41, 0xe7, 0xcc, 0x4c, 0xfd, 0xf4, 0x17, 0x73, 0xe3, 0x15, 0xdd, 0x34, 0xf5, - 0x1e, 0xb2, 0xae, 0x54, 0xb0, 0xf3, 0x3b, 0xf0, 0x82, 0xef, 0xab, 0x38, 0xcb, 0xbf, 0x5a, 0x75, - 0xfc, 0x6b, 0x35, 0x8f, 0x7f, 0xad, 0x66, 0xfb, 0x4b, 0x65, 0xb2, 0xa4, 0xb9, 0xae, 0xf8, 0xbc, - 0xc6, 0x52, 0xdb, 0xcc, 0x12, 0xea, 0x7a, 0xf9, 0x1d, 0x6c, 0x5b, 0xf1, 0xb5, 0xd5, 0x43, 0x96, - 0x44, 0x2b, 0xe5, 0x2a, 0xf6, 0xaf, 0xfa, 0xfa, 0xef, 0x0a, 0xeb, 0x76, 0xfc, 0x1c, 0x84, 0x4f, - 0x52, 0xa5, 0x01, 0xd7, 0x7c, 0x4f, 0xb2, 0xcf, 0xec, 0xa6, 0xae, 0xd1, 0x80, 0xeb, 0xbe, 0xb6, - 0x9d, 0x90, 0x5d, 0x45, 0xf5, 0xf2, 0x12, 0xbe, 0x8d, 0xac, 0x17, 0x94, 0x0b, 0x44, 0x05, 0x5c, - 0x8d, 0xe3, 0x04, 0x39, 0x77, 0x94, 0xf5, 0x02, 0xba, 0x42, 0xc7, 0xa1, 0x12, 0xe8, 0x10, 0x9c, - 0x25, 0xe7, 0x24, 0x95, 0x42, 0xf9, 0x3a, 0x3e, 0x49, 0x35, 0xf0, 0x24, 0x21, 0xa9, 0x72, 0xce, - 0x54, 0x2d, 0x54, 0xb6, 0x4e, 0x3e, 0x99, 0x19, 0x79, 0x8a, 0x3e, 0x7f, 0x47, 0x9f, 0x8f, 0x3f, - 0x99, 0x91, 0x3e, 0x43, 0x9f, 0xcf, 0xd1, 0xe7, 0x0b, 0xf4, 0x79, 0xef, 0xf9, 0x8c, 0xf4, 0x18, - 0x7d, 0x3e, 0x44, 0x9f, 0x3f, 0xa0, 0xcf, 0x13, 0xf4, 0x39, 0x79, 0x8e, 0xec, 0xd1, 0xe7, 0x63, - 0xf4, 0xfb, 0x33, 0xf4, 0xfd, 0x39, 0xfa, 0xfe, 0x02, 0x7d, 0xbf, 0xf7, 0xe9, 0xcc, 0xc8, 0x23, - 0xf4, 0x79, 0xfc, 0xe9, 0x8c, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0x4f, 0xfa, 0x9f, - 0x9c, 0x34, 0x00, 0x00, + // 3067 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, + 0xf5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0xf4, 0x45, 0x6f, 0x62, 0x65, 0xc1, 0xe8, 0xbf, 0xa2, 0x37, + 0xb2, 0xfe, 0x0c, 0x11, 0x4b, 0x14, 0x45, 0xc9, 0x32, 0xd3, 0xa4, 0x10, 0x3f, 0xdc, 0xc8, 0x8d, + 0x28, 0x83, 0x91, 0xdb, 0x1a, 0x28, 0x50, 0xd0, 0xe2, 0x5a, 0x22, 0x2a, 0x2f, 0x05, 0x72, 0x95, + 0xc6, 0x3d, 0x14, 0x41, 0x0e, 0x45, 0xd0, 0x6b, 0xd1, 0x63, 0x1b, 0x17, 0x45, 0x81, 0xf4, 0x96, + 0x43, 0x51, 0x14, 0x45, 0xd1, 0xf8, 0x52, 0x40, 0xbd, 0x19, 0x3d, 0x15, 0x41, 0x21, 0x44, 0xcc, + 0x25, 0xc7, 0xf4, 0xd4, 0x1c, 0x72, 0x28, 0x76, 0x77, 0x76, 0x76, 0x66, 0x76, 0x97, 0xbb, 0xb4, + 0x9c, 0x36, 0x17, 0x5b, 0x9c, 0xf7, 0xde, 0xcc, 0xdb, 0xf7, 0xfb, 0xbd, 0xb7, 0x6f, 0x67, 0x06, + 0xa6, 0xcc, 0x03, 0xdd, 0xd4, 0xfb, 0xe6, 0xd2, 0x51, 0xaf, 0x6b, 0x76, 0xe5, 0xa4, 0xf5, 0x77, + 0xe6, 0xea, 0x7e, 0xc7, 0x3c, 0x38, 0xbe, 0xbb, 0xb4, 0xd7, 0xbd, 0xbf, 0xbc, 0xdf, 0xdd, 0xef, + 0x2e, 0xdb, 0xc2, 0xbb, 0xc7, 0xf7, 0xec, 0x5f, 0xf6, 0x0f, 0xfb, 0x2f, 0xc7, 0x48, 0xfb, 0x27, + 0x86, 0xc9, 0x46, 0xa7, 0xbd, 0x73, 0x64, 0x36, 0x5a, 0x66, 0xe7, 0x2d, 0x5d, 0x9e, 0x83, 0x0b, + 0x37, 0x3a, 0xfa, 0x61, 0x7b, 0x45, 0x41, 0x59, 0x94, 0x43, 0x95, 0xe4, 0xc9, 0xe9, 0x7c, 0xa2, + 0x49, 0xc6, 0xa8, 0xb4, 0xa8, 0x48, 0x59, 0x94, 0x93, 0x38, 0x69, 0x91, 0x4a, 0x57, 0x15, 0x9c, + 0x45, 0xb9, 0x31, 0x4e, 0xba, 0x4a, 0xa5, 0x25, 0x25, 0x99, 0x45, 0x39, 0xcc, 0x49, 0x4b, 0x54, + 0xba, 0xa6, 0x8c, 0x65, 0x51, 0x6e, 0x8a, 0x93, 0xae, 0x51, 0xe9, 0xba, 0x72, 0x21, 0x8b, 0x72, + 0x49, 0x4e, 0xba, 0x4e, 0xa5, 0xd7, 0x94, 0x67, 0xb2, 0x28, 0x77, 0x91, 0x93, 0x5e, 0xa3, 0xd2, + 0x0d, 0x25, 0x95, 0x45, 0x39, 0x99, 0x93, 0x6e, 0x50, 0xe9, 0x75, 0x65, 0x3c, 0x8b, 0x72, 0xcf, + 0x70, 0xd2, 0xeb, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x5e, 0x50, 0x20, 0x8b, 0x72, 0x33, 0x44, 0xec, + 0x0e, 0x7a, 0xf2, 0x15, 0x65, 0x22, 0x8b, 0x72, 0x17, 0x78, 0xf9, 0x8a, 0x27, 0x2f, 0x2a, 0x93, + 0x59, 0x94, 0x4b, 0xf3, 0xf2, 0xa2, 0x27, 0x5f, 0x55, 0xa6, 0xb2, 0x28, 0x97, 0xe2, 0xe5, 0xab, + 0x9e, 0xbc, 0xa4, 0x4c, 0x67, 0x51, 0x6e, 0x9c, 0x97, 0x97, 0x3c, 0xf9, 0x9a, 0x32, 0x93, 0x45, + 0xb9, 0x49, 0x5e, 0xbe, 0xa6, 0xbd, 0x6b, 0xc3, 0x6b, 0x78, 0xf0, 0xce, 0xf2, 0xf0, 0x52, 0x60, + 0x67, 0x79, 0x60, 0x29, 0xa4, 0xb3, 0x3c, 0xa4, 0x14, 0xcc, 0x59, 0x1e, 0x4c, 0x0a, 0xe3, 0x2c, + 0x0f, 0x23, 0x05, 0x70, 0x96, 0x07, 0x90, 0x42, 0x37, 0xcb, 0x43, 0x47, 0x41, 0x9b, 0xe5, 0x41, + 0xa3, 0x70, 0xcd, 0xf2, 0x70, 0x51, 0xa0, 0x14, 0x01, 0x28, 0x0f, 0x22, 0x45, 0x80, 0xc8, 0x03, + 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, 0x40, 0x14, 0x01, 0x10, 0x0f, 0x0a, 0x45, + 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x53, 0x3f, 0x0a, 0xc8, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, + 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, + 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x3c, 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, + 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, 0xcd, 0x31, 0x0f, 0xde, 0x59, 0x1e, 0xde, + 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, + 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xb0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, + 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x98, 0xcd, 0xb1, 0x3f, 0x63, + 0x90, 0x9d, 0x1c, 0xbb, 0xd5, 0xda, 0xfb, 0xa1, 0xde, 0x26, 0x50, 0xa8, 0x42, 0xa6, 0x5d, 0xb0, + 0xa0, 0x4b, 0x7b, 0x90, 0xa8, 0x42, 0xae, 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0xd9, 0xc6, 0xcb, 0x57, + 0xa9, 0xdc, 0xcd, 0x37, 0x5e, 0x5e, 0xa2, 0x72, 0x37, 0xe3, 0x78, 0xf9, 0x1a, 0x95, 0xbb, 0x39, + 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x3a, 0x5e, 0x7e, 0x8d, 0xca, 0xdd, 0xbc, 0xe3, 0xe5, 0x1b, + 0x54, 0xee, 0x66, 0x1e, 0x2f, 0xbf, 0x2e, 0x67, 0xc5, 0xdc, 0x73, 0x15, 0x28, 0xb4, 0x59, 0x31, + 0xfb, 0x04, 0x8d, 0x15, 0x4f, 0xc3, 0xcd, 0x3f, 0x41, 0xa3, 0xe8, 0x69, 0xb8, 0x19, 0x28, 0x68, + 0xac, 0x6a, 0xef, 0xd9, 0xf0, 0x19, 0x22, 0x7c, 0x19, 0x01, 0x3e, 0x89, 0x81, 0x2e, 0x23, 0x40, + 0x27, 0x31, 0xb0, 0x65, 0x04, 0xd8, 0x24, 0x06, 0xb2, 0x8c, 0x00, 0x99, 0xc4, 0xc0, 0x95, 0x11, + 0xe0, 0x92, 0x18, 0xa8, 0x32, 0x02, 0x54, 0x12, 0x03, 0x53, 0x46, 0x80, 0x49, 0x62, 0x20, 0xca, + 0x08, 0x10, 0x49, 0x0c, 0x3c, 0x19, 0x01, 0x1e, 0x89, 0x81, 0x66, 0x4e, 0x84, 0x46, 0x62, 0x61, + 0x99, 0x13, 0x61, 0x91, 0x58, 0x48, 0xe6, 0x44, 0x48, 0x24, 0x16, 0x8e, 0x39, 0x11, 0x0e, 0x89, + 0x85, 0xe2, 0x4b, 0xc9, 0xed, 0x08, 0xdf, 0x34, 0x7b, 0xc7, 0x7b, 0xe6, 0xb9, 0x3a, 0xc2, 0x02, + 0xd7, 0x3e, 0x4c, 0x14, 0xe5, 0x25, 0xbb, 0x61, 0x65, 0x3b, 0x4e, 0xe1, 0x0d, 0x56, 0xe0, 0x1a, + 0x0b, 0xc6, 0xc2, 0x08, 0xb6, 0x28, 0x9d, 0xab, 0x37, 0x2c, 0x70, 0x6d, 0x46, 0xb4, 0x7f, 0x1b, + 0x5f, 0x79, 0xc7, 0xf6, 0x48, 0x72, 0x3b, 0x36, 0x12, 0xfe, 0x51, 0x3b, 0xb6, 0x7c, 0x74, 0xc8, + 0x69, 0xb0, 0xf3, 0xd1, 0xc1, 0xf6, 0xbd, 0x75, 0xe2, 0x76, 0x70, 0xf9, 0xe8, 0xd0, 0xd2, 0xa0, + 0x3e, 0xdd, 0x7e, 0x8b, 0x30, 0xb8, 0xa9, 0x1f, 0x05, 0x30, 0x78, 0xd4, 0x7e, 0xab, 0xc0, 0x95, + 0x92, 0x51, 0x19, 0x8c, 0x47, 0x66, 0xf0, 0xa8, 0x9d, 0x57, 0x81, 0x2b, 0x2f, 0x23, 0x33, 0xf8, + 0x2b, 0xe8, 0x87, 0x08, 0x83, 0xbd, 0xf0, 0x8f, 0xda, 0x0f, 0xe5, 0xa3, 0x43, 0x1e, 0xc8, 0x60, + 0x3c, 0x02, 0x83, 0xe3, 0xf4, 0x47, 0xf9, 0xe8, 0xd0, 0x06, 0x33, 0xf8, 0xdc, 0xdd, 0xcc, 0xfb, + 0x08, 0x2e, 0x36, 0x3a, 0xed, 0xfa, 0xfd, 0xbb, 0x7a, 0xbb, 0xad, 0xb7, 0x49, 0x1c, 0x0b, 0x5c, + 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xe9, 0xbc, 0x17, 0xe1, 0x35, 0x48, 0x39, 0x31, 0x2d, 0x14, 0x94, + 0x13, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xd9, 0x35, 0x5b, 0x29, 0x28, 0x7f, 0x47, 0x4c, 0x95, + 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x73, 0x7b, 0xb8, 0x1c, 0xcb, 0x43, 0xc6, 0xb7, 0x17, + 0x7c, 0xbe, 0x31, 0x5e, 0x1d, 0xc3, 0x4c, 0xa3, 0xd3, 0x6e, 0xe8, 0x7d, 0x33, 0x9e, 0x4b, 0x8e, + 0x8e, 0x50, 0x0f, 0x0a, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, 0x46, 0x68, 0x1d, 0x6b, 0x59, + 0x83, 0x5b, 0x36, 0x1f, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xf9, 0xb0, 0x05, 0xbd, 0x1c, 0xa2, + 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0xab, 0xc7, 0x7d, 0xb3, 0x7b, 0x5f, 0x9e, 0x03, 0x69, 0xab, 0x6d, + 0xaf, 0x31, 0x59, 0x99, 0xb4, 0x9c, 0xfa, 0xf8, 0x74, 0x3e, 0x79, 0xfb, 0xb8, 0xd3, 0x6e, 0x4a, + 0x5b, 0x6d, 0xf9, 0x26, 0x8c, 0x7d, 0xa7, 0x75, 0x78, 0xac, 0xdb, 0xaf, 0x88, 0xc9, 0x4a, 0x89, + 0x28, 0xbc, 0x1c, 0xba, 0x47, 0x64, 0x2d, 0xbc, 0xbc, 0x67, 0x4f, 0xbd, 0x74, 0xbb, 0x63, 0x98, + 0x2b, 0xc5, 0x8d, 0xa6, 0x33, 0x85, 0xf6, 0x7d, 0x00, 0x67, 0xcd, 0x5a, 0xab, 0x7f, 0x20, 0x37, + 0xdc, 0x99, 0x9d, 0xa5, 0x37, 0x3e, 0x3e, 0x9d, 0x2f, 0xc5, 0x99, 0xf5, 0x6a, 0xbb, 0xd5, 0x3f, + 0xb8, 0x6a, 0x3e, 0x38, 0xd2, 0x97, 0x2a, 0x0f, 0x4c, 0xbd, 0xef, 0xce, 0x7e, 0xe4, 0xbe, 0xf5, + 0xc8, 0x73, 0x29, 0xcc, 0x73, 0xa5, 0xb8, 0x67, 0xba, 0xc1, 0x3f, 0x53, 0xe1, 0x49, 0x9f, 0xe7, + 0x6d, 0xf7, 0x25, 0x21, 0x44, 0x12, 0x47, 0x45, 0x12, 0x9f, 0x37, 0x92, 0x47, 0x6e, 0x7d, 0x14, + 0x9e, 0x15, 0x0f, 0x7b, 0x56, 0x7c, 0x9e, 0x67, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, 0x6e, 0x1b, + 0x9d, 0xae, 0xf1, 0xb5, 0xdb, 0x0b, 0x7a, 0xaa, 0x5d, 0x40, 0x39, 0x79, 0xf2, 0x70, 0x1e, 0x69, + 0xef, 0x4b, 0xee, 0x93, 0x3b, 0x89, 0xf4, 0x64, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, + 0xfd, 0x0a, 0xc1, 0xac, 0xaf, 0x92, 0x3b, 0x61, 0x7a, 0xba, 0xe5, 0xdc, 0x18, 0xb5, 0x9c, 0x13, + 0x07, 0x7f, 0x8f, 0xe0, 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x0b, 0xee, 0x3d, 0xef, 0x5f, 0xc9, + 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x25, 0x01, 0xf7, 0x39, 0x6a, + 0x10, 0x10, 0x2e, 0x97, 0x01, 0xc4, 0xed, 0x2e, 0x24, 0x77, 0x7b, 0xba, 0x2e, 0xab, 0x20, 0xed, + 0xf4, 0x88, 0x87, 0xd3, 0x8e, 0xfd, 0x4e, 0xaf, 0xd2, 0x6b, 0x19, 0x7b, 0x07, 0x4d, 0x69, 0xa7, + 0x27, 0x5f, 0x06, 0xbc, 0x69, 0xb4, 0x89, 0x47, 0x33, 0x8e, 0xc2, 0xa6, 0xd1, 0x26, 0x1a, 0x96, + 0x4c, 0x56, 0x21, 0xf9, 0x86, 0xde, 0xba, 0x47, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0x69, 0xda, 0xe3, + 0x64, 0xc1, 0xef, 0x41, 0xca, 0x9d, 0x58, 0x5e, 0xb0, 0x2c, 0xee, 0x99, 0x64, 0x59, 0x62, 0x61, + 0xb9, 0x43, 0xde, 0x5c, 0xb6, 0x54, 0x5e, 0x84, 0xb1, 0x66, 0x67, 0xff, 0xc0, 0x24, 0x8b, 0xfb, + 0xd5, 0x1c, 0xb1, 0x76, 0x07, 0xc6, 0xa9, 0x47, 0x4f, 0x79, 0xea, 0x9a, 0xf3, 0x68, 0x72, 0x86, + 0x7d, 0x9f, 0xb8, 0xfb, 0x96, 0xce, 0x90, 0x9c, 0x85, 0xd4, 0x9b, 0x66, 0xcf, 0x2b, 0xfa, 0x6e, + 0x47, 0x4a, 0x47, 0xb5, 0x77, 0x11, 0xa4, 0x6a, 0xba, 0x7e, 0x64, 0x07, 0xfc, 0x0a, 0x24, 0x6b, + 0xdd, 0x1f, 0x19, 0xc4, 0xc1, 0x8b, 0x24, 0xa2, 0x96, 0x98, 0xc4, 0xd4, 0x16, 0xcb, 0x57, 0xd8, + 0xb8, 0x3f, 0x4b, 0xe3, 0xce, 0xe8, 0xd9, 0xb1, 0xd7, 0xb8, 0xd8, 0x13, 0x00, 0x2d, 0x25, 0x5f, + 0xfc, 0xaf, 0xc1, 0x04, 0xb3, 0x8a, 0x9c, 0x23, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, + 0xd3, 0x61, 0x8a, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x62, 0x6a, 0x87, 0x39, 0xcf, 0x87, 0x39, + 0x58, 0x95, 0x84, 0xba, 0xe0, 0xc4, 0xc8, 0x0e, 0xf7, 0x82, 0x43, 0xce, 0x70, 0x10, 0xad, 0xbf, + 0xb5, 0x31, 0xc0, 0x8d, 0xce, 0xa1, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x75, 0xe3, 0xf8, 0xbe, 0x90, + 0x75, 0xd3, 0x6e, 0x80, 0x77, 0x0f, 0xf4, 0x5d, 0xbd, 0x6f, 0xab, 0xf0, 0xfd, 0x94, 0x55, 0x60, + 0xc0, 0x49, 0x31, 0xdb, 0xfe, 0xa5, 0x48, 0xfb, 0xc0, 0x4e, 0xcc, 0x52, 0x55, 0x1c, 0xd5, 0x3b, + 0xba, 0xb9, 0x69, 0x74, 0xcd, 0x03, 0xbd, 0x27, 0x58, 0x14, 0xe5, 0x55, 0x2e, 0x61, 0xa7, 0x8b, + 0x2f, 0x50, 0x8b, 0x50, 0xa3, 0x55, 0xed, 0x43, 0xdb, 0x41, 0xab, 0x15, 0xf0, 0x3d, 0x20, 0x8e, + 0xf1, 0x80, 0xf2, 0x3a, 0xd7, 0xbf, 0x0d, 0x71, 0x53, 0xf8, 0xb4, 0xbc, 0xce, 0x7d, 0xe7, 0x0c, + 0x77, 0x96, 0xff, 0xc6, 0x74, 0x63, 0xea, 0xba, 0xfc, 0x52, 0xa4, 0xcb, 0x21, 0xdd, 0xed, 0xa8, + 0x31, 0xc5, 0x71, 0x63, 0xfa, 0x27, 0xda, 0x71, 0x58, 0xc3, 0x35, 0xfd, 0x5e, 0xeb, 0xf8, 0xd0, + 0x94, 0x5f, 0x8e, 0xc4, 0xbe, 0x8c, 0xaa, 0xd4, 0xd5, 0x52, 0x5c, 0xf8, 0xcb, 0x52, 0xa5, 0x42, + 0xdd, 0xbd, 0x36, 0x02, 0x05, 0xca, 0x52, 0xb5, 0x4a, 0xcb, 0x76, 0xea, 0xbd, 0x87, 0xf3, 0xe8, + 0x83, 0x87, 0xf3, 0x09, 0xed, 0x77, 0x08, 0x2e, 0x12, 0x4d, 0x86, 0xb8, 0x57, 0x05, 0xe7, 0x2f, + 0xb9, 0x35, 0x23, 0x28, 0x02, 0xff, 0x35, 0xf2, 0xfe, 0x15, 0x81, 0xe2, 0xf3, 0xd5, 0x8d, 0x77, + 0x21, 0x96, 0xcb, 0x65, 0x54, 0xff, 0xdf, 0xc7, 0xfc, 0x0e, 0x8c, 0xed, 0x76, 0xee, 0xeb, 0x3d, + 0xeb, 0x4d, 0x60, 0xfd, 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, + 0x15, 0x65, 0x05, 0x92, 0xb5, 0x96, 0xd9, 0xb2, 0x3d, 0x98, 0xa4, 0xf5, 0xb5, 0x65, 0xb6, 0xb4, + 0x55, 0x98, 0xdc, 0x7e, 0x50, 0x7f, 0xdb, 0xd4, 0x8d, 0x76, 0xeb, 0xee, 0xa1, 0x78, 0x06, 0xea, + 0xf6, 0xab, 0x2b, 0xf9, 0xb1, 0x54, 0x3b, 0x7d, 0x82, 0xca, 0x49, 0xdb, 0x9f, 0xb7, 0x60, 0x7a, + 0xc7, 0x72, 0xdb, 0xb6, 0xe3, 0xcc, 0x9c, 0xd5, 0x31, 0x7d, 0x78, 0xa1, 0x29, 0xc3, 0x5e, 0x53, + 0x96, 0x05, 0xb4, 0xcd, 0xb7, 0x4e, 0xac, 0x1f, 0x4d, 0xb4, 0x9d, 0x4f, 0xa6, 0xa6, 0xd3, 0x17, + 0xf3, 0xc9, 0x14, 0xa4, 0xa7, 0xc8, 0xba, 0x7f, 0xc3, 0x90, 0x76, 0x5a, 0x9d, 0x9a, 0x7e, 0xaf, + 0x63, 0x74, 0x4c, 0x7f, 0xbf, 0x4a, 0x3d, 0x96, 0xbf, 0x09, 0xe3, 0x56, 0x48, 0xed, 0x5f, 0x04, + 0xb0, 0xcb, 0xa4, 0x45, 0x11, 0xa6, 0x20, 0x03, 0x36, 0x75, 0x3c, 0x1b, 0xf9, 0x06, 0xe0, 0x46, + 0x63, 0x9b, 0xbc, 0xdc, 0x4a, 0x43, 0x4d, 0xb7, 0xf5, 0x7e, 0xbf, 0xb5, 0xaf, 0x93, 0x5f, 0x64, + 0xac, 0xbf, 0xdf, 0xb4, 0x26, 0x90, 0x4b, 0x20, 0x35, 0xb6, 0x49, 0xc3, 0xbb, 0x10, 0x67, 0x9a, + 0xa6, 0xd4, 0xd8, 0xce, 0xfc, 0x05, 0xc1, 0x14, 0x37, 0x2a, 0x6b, 0x30, 0xe9, 0x0c, 0x30, 0x8f, + 0x7b, 0xa1, 0xc9, 0x8d, 0xb9, 0x3e, 0x4b, 0xe7, 0xf4, 0x39, 0xb3, 0x09, 0x33, 0xc2, 0xb8, 0xbc, + 0x04, 0x32, 0x3b, 0x44, 0x9c, 0x00, 0xbb, 0xa1, 0x0e, 0x90, 0x68, 0xff, 0x07, 0xe0, 0xc5, 0x55, + 0x9e, 0x81, 0x89, 0xdd, 0x3b, 0xb7, 0xea, 0x3f, 0x68, 0xd4, 0xdf, 0xdc, 0xad, 0xd7, 0xd2, 0x48, + 0xfb, 0x03, 0x82, 0x09, 0xd2, 0xb6, 0xee, 0x75, 0x8f, 0x74, 0xb9, 0x02, 0x68, 0x93, 0xf0, 0xe1, + 0xc9, 0xfc, 0x46, 0x9b, 0xf2, 0x32, 0xa0, 0x4a, 0x7c, 0xa8, 0x51, 0x45, 0x2e, 0x02, 0xaa, 0x12, + 0x80, 0xe3, 0x21, 0x83, 0xaa, 0xda, 0xbf, 0x30, 0x3c, 0xcb, 0xb6, 0xd1, 0x6e, 0x3d, 0xb9, 0xcc, + 0x7f, 0x37, 0x95, 0xc7, 0x57, 0x8a, 0xab, 0xa5, 0x25, 0xeb, 0x1f, 0x4a, 0xc9, 0xcb, 0xfc, 0x27, + 0x94, 0x5f, 0xc5, 0x77, 0x4d, 0xa4, 0x9c, 0x64, 0xa4, 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x77, 0x4d, + 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x51, 0x00, 0x27, 0xf5, 0x5d, 0x13, 0xe1, 0xa4, + 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x7f, 0x4d, 0x84, 0x88, 0x43, 0xaf, 0x89, 0xf0, 0x72, 0xff, 0x35, + 0x11, 0x5e, 0xee, 0xbf, 0x26, 0x52, 0x4e, 0x9a, 0xbd, 0x63, 0x3d, 0xfc, 0xd0, 0x81, 0xb7, 0x1f, + 0xf6, 0x0d, 0xe8, 0x15, 0xe0, 0x1d, 0x98, 0x71, 0xf6, 0x23, 0xaa, 0x5d, 0xc3, 0x6c, 0x75, 0x0c, + 0xbd, 0x27, 0x7f, 0x03, 0x26, 0x9d, 0x21, 0xe7, 0x2b, 0x27, 0xe8, 0x2b, 0xd0, 0x91, 0x93, 0x72, + 0xcb, 0x69, 0x6b, 0x5f, 0x26, 0x61, 0xd6, 0x19, 0x68, 0xb4, 0xee, 0xeb, 0xdc, 0x25, 0xa3, 0x45, + 0xe1, 0x48, 0x69, 0xda, 0x32, 0x1f, 0x9c, 0xce, 0x3b, 0xa3, 0x9b, 0x94, 0x4c, 0x8b, 0xc2, 0xe1, + 0x12, 0xaf, 0xe7, 0xbd, 0x7f, 0x16, 0x85, 0x8b, 0x47, 0xbc, 0x1e, 0x7d, 0xdd, 0x50, 0x3d, 0xf7, + 0x0a, 0x12, 0xaf, 0x57, 0xa3, 0x2c, 0x5b, 0x14, 0x2e, 0x23, 0xf1, 0x7a, 0x75, 0xca, 0xb7, 0x45, + 0xe1, 0xe8, 0x89, 0xd7, 0xbb, 0x41, 0x99, 0xb7, 0x28, 0x1c, 0x42, 0xf1, 0x7a, 0xdf, 0xa2, 0x1c, + 0x5c, 0x14, 0xae, 0x2a, 0xf1, 0x7a, 0xaf, 0x53, 0x36, 0x2e, 0x0a, 0x97, 0x96, 0x78, 0xbd, 0x2d, + 0xca, 0xcb, 0x9c, 0x78, 0x7d, 0x89, 0x57, 0xbc, 0xe9, 0x31, 0x34, 0x27, 0x5e, 0x64, 0xe2, 0x35, + 0xbf, 0xed, 0x71, 0x35, 0x27, 0x5e, 0x69, 0xe2, 0x35, 0xdf, 0xf0, 0x58, 0x9b, 0x13, 0x8f, 0xca, + 0x78, 0xcd, 0x6d, 0x8f, 0xbf, 0x39, 0xf1, 0xd0, 0x8c, 0xd7, 0x6c, 0x78, 0x4c, 0xce, 0x89, 0xc7, + 0x67, 0xbc, 0xe6, 0x8e, 0xb7, 0x87, 0xfe, 0x91, 0x40, 0x3f, 0xe6, 0x12, 0x94, 0x26, 0xd0, 0x0f, + 0x02, 0xa8, 0xa7, 0x09, 0xd4, 0x83, 0x00, 0xda, 0x69, 0x02, 0xed, 0x20, 0x80, 0x72, 0x9a, 0x40, + 0x39, 0x08, 0xa0, 0x9b, 0x26, 0xd0, 0x0d, 0x02, 0xa8, 0xa6, 0x09, 0x54, 0x83, 0x00, 0x9a, 0x69, + 0x02, 0xcd, 0x20, 0x80, 0x62, 0x9a, 0x40, 0x31, 0x08, 0xa0, 0x97, 0x26, 0xd0, 0x0b, 0x02, 0xa8, + 0xb5, 0x20, 0x52, 0x0b, 0x82, 0x68, 0xb5, 0x20, 0xd2, 0x0a, 0x82, 0x28, 0xf5, 0xa2, 0x48, 0xa9, + 0xf1, 0xc1, 0xe9, 0xfc, 0x98, 0x35, 0xc4, 0xb0, 0x69, 0x41, 0x64, 0x13, 0x04, 0x31, 0x69, 0x41, + 0x64, 0x12, 0x04, 0xb1, 0x68, 0x41, 0x64, 0x11, 0x04, 0x31, 0xe8, 0x91, 0xc8, 0x20, 0xef, 0x8a, + 0x8f, 0x26, 0x9c, 0x28, 0x46, 0x31, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, + 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0xe3, 0x30, 0x08, + 0xc7, 0x62, 0x10, 0x0e, 0x63, 0xd0, 0x82, 0x78, 0xe1, 0x01, 0x82, 0x0a, 0xd2, 0x82, 0x78, 0xf2, + 0x19, 0x4d, 0x21, 0x1c, 0x8b, 0x42, 0x38, 0x8c, 0x42, 0x1f, 0x61, 0x78, 0x96, 0xa3, 0x10, 0x39, + 0x1e, 0x7a, 0x5a, 0x15, 0x68, 0x3d, 0xc6, 0xfd, 0x8a, 0x20, 0x4e, 0xad, 0xc7, 0x38, 0xa3, 0x1e, + 0xc6, 0x33, 0x7f, 0x15, 0xaa, 0xc7, 0xa8, 0x42, 0x37, 0x28, 0x87, 0xd6, 0x63, 0xdc, 0xbb, 0xf0, + 0x73, 0x6f, 0x63, 0x58, 0x11, 0x78, 0x3d, 0x56, 0x11, 0xd8, 0x8a, 0x55, 0x04, 0x6e, 0x7a, 0x08, + 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1c, 0x59, 0x25, 0xc0, 0x3b, 0xa1, + 0x92, 0xdd, 0x53, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x2d, 0xdf, 0xe2, 0xcf, 0xaa, 0xca, 0xa3, 0x9e, + 0xdf, 0x30, 0x88, 0x93, 0xbd, 0xd0, 0x05, 0xc0, 0x5b, 0xed, 0xbe, 0x5d, 0x2d, 0x82, 0x96, 0xad, + 0x36, 0x2d, 0xb1, 0xdc, 0x84, 0x0b, 0xb6, 0x7a, 0xdf, 0x86, 0xf7, 0x3c, 0x0b, 0xd7, 0x9a, 0x64, + 0x26, 0xed, 0x11, 0x82, 0x2c, 0x47, 0xe5, 0xa7, 0x73, 0x62, 0xf0, 0x4a, 0xac, 0x13, 0x03, 0x2e, + 0x41, 0xbc, 0xd3, 0x83, 0xff, 0xf7, 0x1f, 0x54, 0xb3, 0x59, 0x22, 0x9e, 0x24, 0xfc, 0x04, 0xa6, + 0xbd, 0x27, 0xb0, 0x3f, 0xd9, 0xd6, 0xa2, 0x37, 0x33, 0x83, 0x52, 0x73, 0x4d, 0xd8, 0x44, 0x1b, + 0x6a, 0x46, 0xb3, 0x55, 0x2b, 0xc3, 0x4c, 0xa3, 0x6b, 0x6f, 0x00, 0xf4, 0x3b, 0x5d, 0xa3, 0xbf, + 0xdd, 0x3a, 0x8a, 0xda, 0x8b, 0x48, 0x59, 0xad, 0xf9, 0xc9, 0xaf, 0xe7, 0x13, 0xda, 0xcb, 0x30, + 0x79, 0xdb, 0xe8, 0xe9, 0x7b, 0xdd, 0x7d, 0xa3, 0xf3, 0x63, 0xbd, 0x2d, 0x18, 0x8e, 0xbb, 0x86, + 0xe5, 0xe4, 0x63, 0x4b, 0xfb, 0x17, 0x08, 0x2e, 0xb1, 0xea, 0xdf, 0xed, 0x98, 0x07, 0x5b, 0x86, + 0xd5, 0xd3, 0xbf, 0x0a, 0x29, 0x9d, 0x00, 0x67, 0xbf, 0xbb, 0x26, 0xdc, 0xcf, 0xc8, 0x40, 0xf5, + 0x25, 0xfb, 0xdf, 0x26, 0x35, 0x11, 0x36, 0x41, 0xdc, 0x65, 0x8b, 0x99, 0x2b, 0x30, 0xe6, 0xcc, + 0xcf, 0xfb, 0x35, 0x25, 0xf8, 0xf5, 0xdb, 0x00, 0xbf, 0x6c, 0x1e, 0xc9, 0x37, 0x39, 0xbf, 0x98, + 0xaf, 0xd5, 0x40, 0xf5, 0x25, 0x97, 0x7c, 0x95, 0x94, 0xd5, 0xff, 0xd9, 0x8c, 0x8a, 0x76, 0x32, + 0x07, 0xa9, 0xba, 0xa8, 0x13, 0xec, 0x67, 0x0d, 0x92, 0x8d, 0x6e, 0x5b, 0x97, 0x9f, 0x83, 0xb1, + 0x37, 0x5a, 0x77, 0xf5, 0x43, 0x12, 0x64, 0xe7, 0x87, 0xbc, 0x08, 0xa9, 0xea, 0x41, 0xe7, 0xb0, + 0xdd, 0xd3, 0x0d, 0x72, 0x64, 0x4f, 0x76, 0xd0, 0x2d, 0x9b, 0x26, 0x95, 0x69, 0x55, 0xb8, 0xd8, + 0xe8, 0x1a, 0x95, 0x07, 0x26, 0x5b, 0x37, 0x96, 0x84, 0x14, 0x21, 0x47, 0x3e, 0xb7, 0xac, 0x6c, + 0xb4, 0x14, 0x2a, 0x63, 0x1f, 0x9f, 0xce, 0xa3, 0x5d, 0xba, 0x7d, 0xbe, 0x0d, 0xcf, 0x93, 0xf4, + 0xf1, 0x4d, 0x55, 0x8c, 0x9a, 0x6a, 0x9c, 0x1c, 0x53, 0x33, 0xd3, 0x6d, 0x59, 0xd3, 0x19, 0x81, + 0xd3, 0x3d, 0x99, 0x67, 0x56, 0x53, 0x34, 0xd4, 0x33, 0x3c, 0x92, 0x67, 0x81, 0xd3, 0x2d, 0x45, + 0x4d, 0x27, 0x78, 0xf6, 0x22, 0x8c, 0x53, 0x19, 0xc3, 0x06, 0x36, 0x53, 0x8a, 0x79, 0x0d, 0x26, + 0x98, 0x84, 0x95, 0xc7, 0x00, 0x6d, 0xa6, 0x13, 0xd6, 0x7f, 0x95, 0x34, 0xb2, 0xfe, 0xab, 0xa6, + 0xa5, 0xfc, 0x15, 0x98, 0x11, 0xb6, 0x2f, 0x2d, 0x49, 0x2d, 0x0d, 0xd6, 0x7f, 0xf5, 0xf4, 0x44, + 0x26, 0xf9, 0xde, 0x6f, 0xd4, 0x44, 0xfe, 0x15, 0x90, 0xfd, 0x1b, 0x9d, 0xf2, 0x05, 0x90, 0x36, + 0xad, 0x29, 0x9f, 0x07, 0xa9, 0x52, 0x49, 0xa3, 0xcc, 0xcc, 0xcf, 0x7e, 0x99, 0x9d, 0xa8, 0xe8, + 0xa6, 0xa9, 0xf7, 0xee, 0xe8, 0x66, 0xa5, 0x42, 0x8c, 0x5f, 0x83, 0x4b, 0x81, 0x1b, 0xa5, 0x96, + 0x7d, 0xb5, 0xea, 0xd8, 0xd7, 0x6a, 0x3e, 0xfb, 0x5a, 0xcd, 0xb6, 0x47, 0x65, 0xf7, 0xc0, 0x79, + 0x53, 0x0e, 0xd8, 0x64, 0x54, 0xda, 0xcc, 0x01, 0xf7, 0x66, 0xf9, 0x35, 0xa2, 0x5b, 0x09, 0xd4, + 0xd5, 0x23, 0x0e, 0xac, 0x2b, 0xe5, 0x2a, 0xb1, 0xaf, 0x06, 0xda, 0xdf, 0x13, 0x4e, 0x55, 0xf9, + 0x37, 0x04, 0x99, 0xa4, 0x4a, 0x1d, 0xae, 0x05, 0x4e, 0x72, 0xc0, 0xdc, 0x75, 0xaf, 0x51, 0x87, + 0xeb, 0x81, 0xba, 0x9d, 0x88, 0x3b, 0x5f, 0xf5, 0xf2, 0x32, 0x79, 0xc9, 0x6f, 0xae, 0xc8, 0x97, + 0xdc, 0x1c, 0xe5, 0x2a, 0x30, 0x09, 0x90, 0xab, 0x55, 0xae, 0x12, 0x83, 0x4a, 0xa8, 0x41, 0x78, + 0x94, 0x5c, 0xcb, 0xf2, 0xeb, 0x64, 0x92, 0x6a, 0xe8, 0x24, 0x11, 0xa1, 0x72, 0xcd, 0x2b, 0xbb, + 0x27, 0x67, 0x6a, 0xe2, 0xf1, 0x99, 0x9a, 0xf8, 0xc7, 0x99, 0x9a, 0xf8, 0xe4, 0x4c, 0x45, 0x9f, + 0x9d, 0xa9, 0xe8, 0xf3, 0x33, 0x15, 0x7d, 0x71, 0xa6, 0xa2, 0x77, 0x06, 0x2a, 0xfa, 0x60, 0xa0, + 0xa2, 0x0f, 0x07, 0x2a, 0xfa, 0xe3, 0x40, 0x45, 0x8f, 0x06, 0x2a, 0x3a, 0x19, 0xa8, 0x89, 0xc7, + 0x03, 0x35, 0xf1, 0xc9, 0x40, 0x45, 0x9f, 0x0d, 0xd4, 0xc4, 0xe7, 0x03, 0x15, 0x7d, 0x31, 0x50, + 0x13, 0xef, 0x7c, 0xaa, 0x26, 0x1e, 0x7e, 0xaa, 0x26, 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, + 0x00, 0xff, 0xff, 0x93, 0x3a, 0x1b, 0x5f, 0x3a, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/thetest.proto b/vendor/github.com/gogo/protobuf/test/thetest.proto index cced8ccc..4d25c0b4 100644 --- a/vendor/github.com/gogo/protobuf/test/thetest.proto +++ b/vendor/github.com/gogo/protobuf/test/thetest.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -622,3 +624,26 @@ message Node { repeated Node Children = 2; } +message NonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinOptNonByteCustomType { + optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message NidRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; +} + +message NinRepNonByteCustomType { + repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; +} + +message ProtoType { + optional string Field2 = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/thetestpb_test.go index 27011c6b..a0c97acf 100644 --- a/vendor/github.com/gogo/protobuf/test/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/thetestpb_test.go @@ -67,6 +67,12 @@ It has these top-level messages: UnrecognizedWithInner UnrecognizedWithEmbed Node + NonByteCustomType + NidOptNonByteCustomType + NinOptNonByteCustomType + NidRepNonByteCustomType + NinRepNonByteCustomType + ProtoType */ package test @@ -90,18 +96,18 @@ func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -129,11 +135,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -143,11 +149,11 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptNative{} b.ResetTimer() @@ -164,18 +170,18 @@ func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -203,11 +209,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -217,11 +223,11 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNative{} b.ResetTimer() @@ -238,18 +244,18 @@ func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -277,11 +283,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -291,11 +297,11 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepNative{} b.ResetTimer() @@ -312,18 +318,18 @@ func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -351,11 +357,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -365,11 +371,11 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepNative{} b.ResetTimer() @@ -386,18 +392,18 @@ func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -425,11 +431,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -439,11 +445,11 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepPackedNative{} b.ResetTimer() @@ -460,18 +466,18 @@ func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -499,11 +505,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -513,11 +519,11 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepPackedNative{} b.ResetTimer() @@ -534,18 +540,18 @@ func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -573,11 +579,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -587,11 +593,11 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptStruct{} b.ResetTimer() @@ -608,18 +614,18 @@ func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -647,11 +653,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -661,11 +667,11 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStruct{} b.ResetTimer() @@ -682,18 +688,18 @@ func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -721,11 +727,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -735,11 +741,11 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepStruct{} b.ResetTimer() @@ -756,18 +762,18 @@ func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -795,11 +801,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -809,11 +815,11 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepStruct{} b.ResetTimer() @@ -830,18 +836,18 @@ func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -869,11 +875,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -883,11 +889,11 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidEmbeddedStruct{} b.ResetTimer() @@ -904,18 +910,18 @@ func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -943,11 +949,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -957,11 +963,11 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStruct{} b.ResetTimer() @@ -978,18 +984,18 @@ func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1017,11 +1023,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1031,11 +1037,11 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidNestedStruct{} b.ResetTimer() @@ -1052,18 +1058,18 @@ func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1091,11 +1097,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1105,11 +1111,11 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStruct{} b.ResetTimer() @@ -1126,18 +1132,18 @@ func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1165,11 +1171,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1179,11 +1185,11 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptCustom{} b.ResetTimer() @@ -1200,18 +1206,18 @@ func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1239,11 +1245,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1253,11 +1259,11 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomDash{} b.ResetTimer() @@ -1274,18 +1280,18 @@ func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1313,11 +1319,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1327,11 +1333,11 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptCustom{} b.ResetTimer() @@ -1348,18 +1354,18 @@ func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1387,11 +1393,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1401,11 +1407,11 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepCustom{} b.ResetTimer() @@ -1422,18 +1428,18 @@ func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1461,11 +1467,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1475,11 +1481,11 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepCustom{} b.ResetTimer() @@ -1496,18 +1502,18 @@ func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1535,11 +1541,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1549,11 +1555,11 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeUnion{} b.ResetTimer() @@ -1570,18 +1576,18 @@ func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1609,11 +1615,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1623,11 +1629,11 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptStructUnion{} b.ResetTimer() @@ -1644,18 +1650,18 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1683,11 +1689,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1697,11 +1703,11 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinEmbeddedStructUnion{} b.ResetTimer() @@ -1718,18 +1724,18 @@ func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1757,11 +1763,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1771,11 +1777,11 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinNestedStructUnion{} b.ResetTimer() @@ -1792,18 +1798,18 @@ func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1831,11 +1837,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1845,11 +1851,11 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Tree{} b.ResetTimer() @@ -1866,18 +1872,18 @@ func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1905,11 +1911,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1919,11 +1925,11 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OrBranch{} b.ResetTimer() @@ -1940,18 +1946,18 @@ func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -1979,11 +1985,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -1993,11 +1999,11 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndBranch{} b.ResetTimer() @@ -2014,18 +2020,18 @@ func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2053,11 +2059,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2067,11 +2073,11 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Leaf{} b.ResetTimer() @@ -2088,18 +2094,18 @@ func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2127,11 +2133,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2141,11 +2147,11 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepTree{} b.ResetTimer() @@ -2162,18 +2168,18 @@ func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2201,11 +2207,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2215,11 +2221,11 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &ADeepBranch{} b.ResetTimer() @@ -2236,18 +2242,18 @@ func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2275,11 +2281,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2289,11 +2295,11 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AndDeepBranch{} b.ResetTimer() @@ -2310,18 +2316,18 @@ func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2349,11 +2355,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2363,11 +2369,11 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &DeepLeaf{} b.ResetTimer() @@ -2384,18 +2390,18 @@ func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2423,11 +2429,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2437,11 +2443,11 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Nil{} b.ResetTimer() @@ -2458,18 +2464,18 @@ func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2497,11 +2503,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2511,11 +2517,11 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidOptEnum{} b.ResetTimer() @@ -2532,18 +2538,18 @@ func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2571,11 +2577,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2585,11 +2591,11 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnum{} b.ResetTimer() @@ -2606,18 +2612,18 @@ func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2645,11 +2651,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2659,11 +2665,11 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NidRepEnum{} b.ResetTimer() @@ -2680,18 +2686,18 @@ func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2719,11 +2725,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2733,11 +2739,11 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinRepEnum{} b.ResetTimer() @@ -2754,18 +2760,18 @@ func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2793,11 +2799,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2807,11 +2813,11 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptEnumDefault{} b.ResetTimer() @@ -2828,18 +2834,18 @@ func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2867,11 +2873,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2881,11 +2887,11 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnum{} b.ResetTimer() @@ -2902,18 +2908,18 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -2941,11 +2947,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -2955,11 +2961,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &AnotherNinOptEnumDefault{} b.ResetTimer() @@ -2976,18 +2982,18 @@ func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3015,11 +3021,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3029,11 +3035,11 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Timer{} b.ResetTimer() @@ -3050,18 +3056,18 @@ func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3089,11 +3095,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3103,11 +3109,11 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &MyExtendable{} b.ResetTimer() @@ -3124,18 +3130,18 @@ func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3163,11 +3169,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3177,11 +3183,11 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &OtherExtenable{} b.ResetTimer() @@ -3198,18 +3204,18 @@ func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3237,11 +3243,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3251,11 +3257,11 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition{} b.ResetTimer() @@ -3272,18 +3278,18 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3311,11 +3317,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3325,11 +3331,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage{} b.ResetTimer() @@ -3346,18 +3352,18 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3385,11 +3391,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3399,11 +3405,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} b.ResetTimer() @@ -3420,18 +3426,18 @@ func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3459,11 +3465,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3473,11 +3479,11 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NestedScope{} b.ResetTimer() @@ -3494,18 +3500,18 @@ func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3533,11 +3539,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3547,11 +3553,11 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NinOptNativeDefault{} b.ResetTimer() @@ -3568,18 +3574,18 @@ func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3607,11 +3613,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3621,11 +3627,11 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomContainer{} b.ResetTimer() @@ -3642,18 +3648,18 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3681,11 +3687,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3695,11 +3701,11 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNidOptNative{} b.ResetTimer() @@ -3716,18 +3722,18 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3755,11 +3761,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3769,11 +3775,11 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinOptNative{} b.ResetTimer() @@ -3790,18 +3796,18 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3829,11 +3835,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3843,11 +3849,11 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinRepNative{} b.ResetTimer() @@ -3864,18 +3870,18 @@ func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3903,11 +3909,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3917,11 +3923,11 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinStruct{} b.ResetTimer() @@ -3938,18 +3944,18 @@ func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -3977,11 +3983,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -3991,11 +3997,11 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameCustomType{} b.ResetTimer() @@ -4012,18 +4018,18 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4051,11 +4057,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4065,11 +4071,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameNinEmbeddedStructUnion{} b.ResetTimer() @@ -4086,18 +4092,18 @@ func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4125,11 +4131,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4139,11 +4145,11 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &CustomNameEnum{} b.ResetTimer() @@ -4160,18 +4166,18 @@ func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4199,11 +4205,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4213,11 +4219,11 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &NoExtensionsMap{} b.ResetTimer() @@ -4234,18 +4240,18 @@ func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4273,11 +4279,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4287,11 +4293,11 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Unrecognized{} b.ResetTimer() @@ -4308,18 +4314,18 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4347,11 +4353,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4361,11 +4367,11 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner{} b.ResetTimer() @@ -4382,18 +4388,18 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4421,11 +4427,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4435,11 +4441,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithInner_Inner{} b.ResetTimer() @@ -4456,18 +4462,18 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4495,11 +4501,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4509,11 +4515,11 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed{} b.ResetTimer() @@ -4530,18 +4536,18 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4569,11 +4575,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4583,11 +4589,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &UnrecognizedWithEmbed_Embedded{} b.ResetTimer() @@ -4604,18 +4610,18 @@ func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -4643,11 +4649,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -4657,11 +4663,11 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Node{} b.ResetTimer() @@ -4674,6 +4680,450 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinOptNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NidRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &NinRepNonByteCustomType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypeProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoType{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) @@ -5643,13 +6093,139 @@ func TestNestedScopeJSON(t *testing.T) { func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) + p := NewPopulatedNinOptNativeDefault(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &NinOptNativeDefault{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomContainerJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomContainer(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomContainer{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNidOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNidOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNidOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinOptNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinOptNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinRepNativeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinRepNative{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameNinStructJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &CustomNameNinStruct{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestCustomNameCustomTypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NinOptNativeDefault{} + msg := &CustomNameCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5661,16 +6237,16 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomContainerJSON(t *testing.T) { +func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomContainer{} + msg := &CustomNameNinEmbeddedStructUnion{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5682,16 +6258,16 @@ func TestCustomContainerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNidOptNativeJSON(t *testing.T) { +func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) + p := NewPopulatedCustomNameEnum(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNidOptNative{} + msg := &CustomNameEnum{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5703,16 +6279,16 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinOptNativeJSON(t *testing.T) { +func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) + p := NewPopulatedNoExtensionsMap(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinOptNative{} + msg := &NoExtensionsMap{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5724,16 +6300,16 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinRepNativeJSON(t *testing.T) { +func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) + p := NewPopulatedUnrecognized(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinRepNative{} + msg := &Unrecognized{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5745,16 +6321,16 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinStructJSON(t *testing.T) { +func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) + p := NewPopulatedUnrecognizedWithInner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinStruct{} + msg := &UnrecognizedWithInner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5766,16 +6342,16 @@ func TestCustomNameNinStructJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameCustomTypeJSON(t *testing.T) { +func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameCustomType{} + msg := &UnrecognizedWithInner_Inner{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5787,16 +6363,16 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { +func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + p := NewPopulatedUnrecognizedWithEmbed(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameNinEmbeddedStructUnion{} + msg := &UnrecognizedWithEmbed{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5808,16 +6384,16 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestCustomNameEnumJSON(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &CustomNameEnum{} + msg := &UnrecognizedWithEmbed_Embedded{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5829,16 +6405,16 @@ func TestCustomNameEnumJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNoExtensionsMapJSON(t *testing.T) { +func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) + p := NewPopulatedNode(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &NoExtensionsMap{} + msg := &Node{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5850,16 +6426,16 @@ func TestNoExtensionsMapJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedJSON(t *testing.T) { +func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) + p := NewPopulatedNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Unrecognized{} + msg := &NonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5871,16 +6447,16 @@ func TestUnrecognizedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInnerJSON(t *testing.T) { +func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) + p := NewPopulatedNidOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner{} + msg := &NidOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5892,16 +6468,16 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { +func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + p := NewPopulatedNinOptNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithInner_Inner{} + msg := &NinOptNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5913,16 +6489,16 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbedJSON(t *testing.T) { +func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) + p := NewPopulatedNidRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed{} + msg := &NidRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5934,16 +6510,16 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { +func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + p := NewPopulatedNinRepNonByteCustomType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &UnrecognizedWithEmbed_Embedded{} + msg := &NinRepNonByteCustomType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5955,16 +6531,16 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) } } -func TestNodeJSON(t *testing.T) { +func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) + p := NewPopulatedProtoType(popr, true) marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - msg := &Node{} + msg := &ProtoType{} err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) @@ -5980,9 +6556,9 @@ func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -5997,9 +6573,9 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6014,9 +6590,9 @@ func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6031,9 +6607,9 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6048,9 +6624,9 @@ func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6065,9 +6641,9 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6082,9 +6658,9 @@ func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6099,9 +6675,9 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6116,9 +6692,9 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6133,9 +6709,9 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6150,9 +6726,9 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6167,9 +6743,9 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6184,9 +6760,9 @@ func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6201,9 +6777,9 @@ func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6218,9 +6794,9 @@ func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6235,9 +6811,9 @@ func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6252,9 +6828,9 @@ func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6269,9 +6845,9 @@ func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6286,9 +6862,9 @@ func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6303,9 +6879,9 @@ func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6320,9 +6896,9 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6337,9 +6913,9 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6354,9 +6930,9 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6371,9 +6947,9 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6388,9 +6964,9 @@ func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6405,9 +6981,9 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6422,9 +6998,9 @@ func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6439,9 +7015,9 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6456,9 +7032,9 @@ func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6473,9 +7049,9 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6490,9 +7066,9 @@ func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6507,9 +7083,9 @@ func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6524,9 +7100,9 @@ func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6541,9 +7117,9 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6558,9 +7134,9 @@ func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6575,9 +7151,9 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6592,9 +7168,9 @@ func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6609,9 +7185,9 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6626,9 +7202,9 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6643,9 +7219,9 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6660,9 +7236,9 @@ func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6677,9 +7253,9 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6694,9 +7270,9 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6711,9 +7287,9 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6728,9 +7304,9 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6745,9 +7321,9 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6762,9 +7338,9 @@ func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6779,9 +7355,9 @@ func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6796,9 +7372,9 @@ func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6813,9 +7389,9 @@ func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6830,9 +7406,9 @@ func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6847,9 +7423,9 @@ func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6864,9 +7440,9 @@ func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6881,9 +7457,9 @@ func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6898,9 +7474,9 @@ func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6915,9 +7491,9 @@ func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6932,9 +7508,9 @@ func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6949,9 +7525,9 @@ func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6966,9 +7542,9 @@ func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6983,9 +7559,9 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7000,9 +7576,9 @@ func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7017,9 +7593,9 @@ func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7034,9 +7610,9 @@ func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7051,9 +7627,9 @@ func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7068,9 +7644,9 @@ func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7085,9 +7661,9 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7102,9 +7678,9 @@ func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7119,9 +7695,9 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7136,9 +7712,9 @@ func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7153,9 +7729,9 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7170,9 +7746,9 @@ func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7187,9 +7763,9 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7204,9 +7780,9 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7221,9 +7797,9 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7238,9 +7814,9 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7255,9 +7831,9 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7272,9 +7848,9 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7289,9 +7865,9 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7306,9 +7882,9 @@ func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7323,9 +7899,9 @@ func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7340,9 +7916,9 @@ func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7357,9 +7933,9 @@ func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7374,9 +7950,9 @@ func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7391,9 +7967,9 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7408,9 +7984,9 @@ func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7425,9 +8001,9 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7442,9 +8018,9 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7459,9 +8035,9 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7476,9 +8052,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7493,9 +8069,9 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7510,9 +8086,9 @@ func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7527,9 +8103,9 @@ func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7544,9 +8120,9 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7561,9 +8137,9 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7578,9 +8154,9 @@ func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7595,9 +8171,9 @@ func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7612,9 +8188,9 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7628,10 +8204,214 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedCustomNameNidOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNidOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinOptNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinRepNative(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinStructProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinStruct(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestCustomNameEnumProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedCustomNameEnum(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7642,13 +8422,13 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoText(t *testing.T) { +func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7659,13 +8439,13 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { } } -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { +func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNoExtensionsMap(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7676,13 +8456,13 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoText(t *testing.T) { +func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7693,13 +8473,13 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { } } -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { +func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognized(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7710,13 +8490,13 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinStructProtoText(t *testing.T) { +func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7727,13 +8507,13 @@ func TestCustomNameNinStructProtoText(t *testing.T) { } } -func TestCustomNameNinStructProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7744,13 +8524,13 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7761,13 +8541,13 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { } } -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { +func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7778,13 +8558,13 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7795,13 +8575,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { } } -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7812,13 +8592,13 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { } } -func TestCustomNameEnumProtoText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7829,13 +8609,13 @@ func TestCustomNameEnumProtoText(t *testing.T) { } } -func TestCustomNameEnumProtoCompactText(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7846,13 +8626,13 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { } } -func TestNoExtensionsMapProtoText(t *testing.T) { +func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7863,13 +8643,13 @@ func TestNoExtensionsMapProtoText(t *testing.T) { } } -func TestNoExtensionsMapProtoCompactText(t *testing.T) { +func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNode(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Node{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7880,13 +8660,13 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { } } -func TestUnrecognizedProtoText(t *testing.T) { +func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7897,13 +8677,13 @@ func TestUnrecognizedProtoText(t *testing.T) { } } -func TestUnrecognizedProtoCompactText(t *testing.T) { +func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7914,13 +8694,13 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7931,13 +8711,13 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { +func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7948,13 +8728,13 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7965,13 +8745,13 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { } } -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { +func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinOptNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7982,13 +8762,13 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7999,13 +8779,13 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { +func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNidRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8016,13 +8796,13 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8033,13 +8813,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { } } -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { +func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedNinRepNonByteCustomType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8050,13 +8830,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { } } -func TestNodeProtoText(t *testing.T) { +func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8067,13 +8847,13 @@ func TestNodeProtoText(t *testing.T) { } } -func TestNodeProtoCompactText(t *testing.T) { +func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + p := NewPopulatedProtoType(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8087,12 +8867,12 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8111,12 +8891,12 @@ func TestNidOptNativeCompare(t *testing.T) { func TestNinOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8135,12 +8915,12 @@ func TestNinOptNativeCompare(t *testing.T) { func TestNidRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8159,12 +8939,12 @@ func TestNidRepNativeCompare(t *testing.T) { func TestNinRepNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8183,12 +8963,12 @@ func TestNinRepNativeCompare(t *testing.T) { func TestNidRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8207,12 +8987,12 @@ func TestNidRepPackedNativeCompare(t *testing.T) { func TestNinRepPackedNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8231,12 +9011,12 @@ func TestNinRepPackedNativeCompare(t *testing.T) { func TestNidOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8255,12 +9035,12 @@ func TestNidOptStructCompare(t *testing.T) { func TestNinOptStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8279,12 +9059,12 @@ func TestNinOptStructCompare(t *testing.T) { func TestNidRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8303,12 +9083,12 @@ func TestNidRepStructCompare(t *testing.T) { func TestNinRepStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8327,12 +9107,12 @@ func TestNinRepStructCompare(t *testing.T) { func TestNidEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8351,12 +9131,12 @@ func TestNidEmbeddedStructCompare(t *testing.T) { func TestNinEmbeddedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8375,12 +9155,12 @@ func TestNinEmbeddedStructCompare(t *testing.T) { func TestNidNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8399,12 +9179,12 @@ func TestNidNestedStructCompare(t *testing.T) { func TestNinNestedStructCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8423,12 +9203,12 @@ func TestNinNestedStructCompare(t *testing.T) { func TestNidOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8447,12 +9227,12 @@ func TestNidOptCustomCompare(t *testing.T) { func TestCustomDashCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8471,12 +9251,12 @@ func TestCustomDashCompare(t *testing.T) { func TestNinOptCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8495,12 +9275,12 @@ func TestNinOptCustomCompare(t *testing.T) { func TestNidRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8519,12 +9299,12 @@ func TestNidRepCustomCompare(t *testing.T) { func TestNinRepCustomCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8543,12 +9323,12 @@ func TestNinRepCustomCompare(t *testing.T) { func TestNinOptNativeUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8567,12 +9347,12 @@ func TestNinOptNativeUnionCompare(t *testing.T) { func TestNinOptStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8591,12 +9371,12 @@ func TestNinOptStructUnionCompare(t *testing.T) { func TestNinEmbeddedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8615,12 +9395,12 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { func TestNinNestedStructUnionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8639,12 +9419,12 @@ func TestNinNestedStructUnionCompare(t *testing.T) { func TestTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8663,12 +9443,12 @@ func TestTreeCompare(t *testing.T) { func TestOrBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8687,12 +9467,12 @@ func TestOrBranchCompare(t *testing.T) { func TestAndBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8711,12 +9491,12 @@ func TestAndBranchCompare(t *testing.T) { func TestLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8735,12 +9515,12 @@ func TestLeafCompare(t *testing.T) { func TestDeepTreeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8759,12 +9539,12 @@ func TestDeepTreeCompare(t *testing.T) { func TestADeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8783,12 +9563,12 @@ func TestADeepBranchCompare(t *testing.T) { func TestAndDeepBranchCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8807,12 +9587,12 @@ func TestAndDeepBranchCompare(t *testing.T) { func TestDeepLeafCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8831,12 +9611,12 @@ func TestDeepLeafCompare(t *testing.T) { func TestNilCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8855,12 +9635,12 @@ func TestNilCompare(t *testing.T) { func TestNidOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8879,12 +9659,12 @@ func TestNidOptEnumCompare(t *testing.T) { func TestNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8903,12 +9683,12 @@ func TestNinOptEnumCompare(t *testing.T) { func TestNidRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8927,12 +9707,12 @@ func TestNidRepEnumCompare(t *testing.T) { func TestNinRepEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8951,12 +9731,12 @@ func TestNinRepEnumCompare(t *testing.T) { func TestNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8975,12 +9755,12 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { func TestAnotherNinOptEnumCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8999,12 +9779,12 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9023,12 +9803,12 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { func TestTimerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9047,12 +9827,12 @@ func TestTimerCompare(t *testing.T) { func TestMyExtendableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9071,12 +9851,12 @@ func TestMyExtendableCompare(t *testing.T) { func TestOtherExtenableCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9095,12 +9875,12 @@ func TestOtherExtenableCompare(t *testing.T) { func TestNestedDefinitionCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9119,12 +9899,12 @@ func TestNestedDefinitionCompare(t *testing.T) { func TestNestedDefinition_NestedMessageCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9143,12 +9923,12 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9167,12 +9947,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { func TestNestedScopeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9191,12 +9971,12 @@ func TestNestedScopeCompare(t *testing.T) { func TestNinOptNativeDefaultCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9215,12 +9995,12 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { func TestCustomContainerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9239,18 +10019,162 @@ func TestCustomContainerCompare(t *testing.T) { func TestCustomNameNidOptNativeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNidOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinOptNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinOptNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinOptNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinRepNativeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinRepNative{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinRepNative(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinStructCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinStruct{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinStruct(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameCustomTypeCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameCustomType(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameNinEmbeddedStructUnion{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestCustomNameEnumCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameEnum(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &CustomNameEnum{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) + p2 := NewPopulatedCustomNameEnum(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9260,21 +10184,21 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinOptNativeCompare(t *testing.T) { +func TestNoExtensionsMapCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNoExtensionsMap(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NoExtensionsMap{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) + p2 := NewPopulatedNoExtensionsMap(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9284,21 +10208,21 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinRepNativeCompare(t *testing.T) { +func TestUnrecognizedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognized(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Unrecognized{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) + p2 := NewPopulatedUnrecognized(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9308,21 +10232,21 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinStructCompare(t *testing.T) { +func TestUnrecognizedWithInnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinStruct(popr, false) + p2 := NewPopulatedUnrecognizedWithInner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9332,21 +10256,21 @@ func TestCustomNameNinStructCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameCustomTypeCompare(t *testing.T) { +func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithInner_Inner{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameCustomType(popr, false) + p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9356,21 +10280,21 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { +func TestUnrecognizedWithEmbedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9380,21 +10304,21 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestCustomNameEnumCompare(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &UnrecognizedWithEmbed_Embedded{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedCustomNameEnum(popr, false) + p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9404,21 +10328,21 @@ func TestCustomNameEnumCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNoExtensionsMapCompare(t *testing.T) { +func TestNodeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNode(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &Node{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNoExtensionsMap(popr, false) + p2 := NewPopulatedNode(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9428,21 +10352,21 @@ func TestNoExtensionsMapCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedCompare(t *testing.T) { +func TestNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognized(popr, false) + p2 := NewPopulatedNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9452,21 +10376,21 @@ func TestUnrecognizedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInnerCompare(t *testing.T) { +func TestNidOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) + p2 := NewPopulatedNidOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9476,21 +10400,21 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { +func TestNinOptNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p2 := NewPopulatedNinOptNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9500,21 +10424,21 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbedCompare(t *testing.T) { +func TestNidRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) + p2 := NewPopulatedNidRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9524,21 +10448,21 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { +func TestNinRepNonByteCustomTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p2 := NewPopulatedNinRepNonByteCustomType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9548,21 +10472,21 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { t.Errorf("p2 = %#v", p2) } } -func TestNodeCompare(t *testing.T) { +func TestProtoTypeCompare(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) } - p2 := NewPopulatedNode(popr, false) + p2 := NewPopulatedProtoType(popr, false) c := p.Compare(p2) c2 := p2.Compare(p) if c != (-1 * c2) { @@ -9578,12 +10502,12 @@ func TestThetestDescription(t *testing.T) { func TestNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9593,12 +10517,12 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { func TestNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9608,12 +10532,12 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { func TestNidRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9623,12 +10547,12 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { func TestNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9638,12 +10562,12 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { func TestNidRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9653,12 +10577,12 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { func TestNinRepPackedNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9668,12 +10592,12 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { func TestNidOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9683,12 +10607,12 @@ func TestNidOptStructVerboseEqual(t *testing.T) { func TestNinOptStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9698,12 +10622,12 @@ func TestNinOptStructVerboseEqual(t *testing.T) { func TestNidRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9713,12 +10637,12 @@ func TestNidRepStructVerboseEqual(t *testing.T) { func TestNinRepStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9728,12 +10652,12 @@ func TestNinRepStructVerboseEqual(t *testing.T) { func TestNidEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9743,12 +10667,12 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { func TestNinEmbeddedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9758,12 +10682,12 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { func TestNidNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9773,12 +10697,12 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { func TestNinNestedStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9788,12 +10712,12 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { func TestNidOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9803,12 +10727,12 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { func TestCustomDashVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9818,12 +10742,12 @@ func TestCustomDashVerboseEqual(t *testing.T) { func TestNinOptCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9833,12 +10757,12 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { func TestNidRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9848,12 +10772,12 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { func TestNinRepCustomVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9863,12 +10787,12 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { func TestNinOptNativeUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9878,12 +10802,12 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { func TestNinOptStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9893,12 +10817,12 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9908,12 +10832,12 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestNinNestedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9923,12 +10847,12 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { func TestTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9938,12 +10862,12 @@ func TestTreeVerboseEqual(t *testing.T) { func TestOrBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9953,12 +10877,12 @@ func TestOrBranchVerboseEqual(t *testing.T) { func TestAndBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9968,12 +10892,12 @@ func TestAndBranchVerboseEqual(t *testing.T) { func TestLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9983,12 +10907,12 @@ func TestLeafVerboseEqual(t *testing.T) { func TestDeepTreeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -9998,12 +10922,12 @@ func TestDeepTreeVerboseEqual(t *testing.T) { func TestADeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10013,12 +10937,12 @@ func TestADeepBranchVerboseEqual(t *testing.T) { func TestAndDeepBranchVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10028,12 +10952,12 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { func TestDeepLeafVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10043,12 +10967,12 @@ func TestDeepLeafVerboseEqual(t *testing.T) { func TestNilVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10058,12 +10982,12 @@ func TestNilVerboseEqual(t *testing.T) { func TestNidOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10073,12 +10997,12 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { func TestNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10088,12 +11012,12 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { func TestNidRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10103,12 +11027,12 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { func TestNinRepEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10118,12 +11042,12 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10133,12 +11057,12 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10148,12 +11072,12 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10163,12 +11087,12 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { func TestTimerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10178,12 +11102,12 @@ func TestTimerVerboseEqual(t *testing.T) { func TestMyExtendableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10193,12 +11117,12 @@ func TestMyExtendableVerboseEqual(t *testing.T) { func TestOtherExtenableVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10208,12 +11132,12 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { func TestNestedDefinitionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10223,12 +11147,12 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10238,12 +11162,12 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10253,12 +11177,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T func TestNestedScopeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10268,12 +11192,12 @@ func TestNestedScopeVerboseEqual(t *testing.T) { func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10283,12 +11207,12 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { func TestCustomContainerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10298,12 +11222,12 @@ func TestCustomContainerVerboseEqual(t *testing.T) { func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10313,12 +11237,12 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10328,12 +11252,12 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10343,12 +11267,12 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { func TestCustomNameNinStructVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10358,12 +11282,12 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10373,12 +11297,12 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10388,12 +11312,12 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { func TestCustomNameEnumVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10403,12 +11327,12 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { func TestNoExtensionsMapVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10418,12 +11342,12 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { func TestUnrecognizedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10433,12 +11357,12 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10448,12 +11372,12 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10463,12 +11387,12 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10478,12 +11402,12 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10493,12 +11417,102 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { func TestNodeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinOptNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NidRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &NinRepNonByteCustomType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypeVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoType{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10953,6 +11967,54 @@ func TestNodeFace(t *testing.T) { t.Fatalf("%#v !Face Equal %#v", msg, p) } } +func TestNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinOptNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNidRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestNinRepNonByteCustomTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} +func TestProtoTypeFace(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, true) + msg := p.TestProto() + if !p.Equal(msg) { + t.Fatalf("%#v !Face Equal %#v", msg, p) + } +} func TestNidOptNativeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -11566,7 +12628,85 @@ func TestNinOptNativeDefaultGoString(t *testing.T) { } func TestCustomContainerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) + p := NewPopulatedCustomContainer(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNidOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNidOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinOptNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinOptNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinRepNativeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinRepNative(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinStructGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinStruct(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameCustomTypeGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameCustomType(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := go_parser.ParseExpr(s1) + if err != nil { + panic(err) + } +} +func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11577,9 +12717,9 @@ func TestCustomContainerGoString(t *testing.T) { panic(err) } } -func TestCustomNameNidOptNativeGoString(t *testing.T) { +func TestCustomNameEnumGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) + p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11590,9 +12730,9 @@ func TestCustomNameNidOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinOptNativeGoString(t *testing.T) { +func TestNoExtensionsMapGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) + p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11603,9 +12743,9 @@ func TestCustomNameNinOptNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinRepNativeGoString(t *testing.T) { +func TestUnrecognizedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) + p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11616,9 +12756,9 @@ func TestCustomNameNinRepNativeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinStructGoString(t *testing.T) { +func TestUnrecognizedWithInnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) + p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11629,9 +12769,9 @@ func TestCustomNameNinStructGoString(t *testing.T) { panic(err) } } -func TestCustomNameCustomTypeGoString(t *testing.T) { +func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) + p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11642,9 +12782,9 @@ func TestCustomNameCustomTypeGoString(t *testing.T) { panic(err) } } -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { +func TestUnrecognizedWithEmbedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) + p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11655,9 +12795,9 @@ func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { panic(err) } } -func TestCustomNameEnumGoString(t *testing.T) { +func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) + p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11668,9 +12808,9 @@ func TestCustomNameEnumGoString(t *testing.T) { panic(err) } } -func TestNoExtensionsMapGoString(t *testing.T) { +func TestNodeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) + p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11681,9 +12821,9 @@ func TestNoExtensionsMapGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedGoString(t *testing.T) { +func TestNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) + p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11694,9 +12834,9 @@ func TestUnrecognizedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInnerGoString(t *testing.T) { +func TestNidOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) + p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11707,9 +12847,9 @@ func TestUnrecognizedWithInnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { +func TestNinOptNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) + p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11720,9 +12860,9 @@ func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbedGoString(t *testing.T) { +func TestNidRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) + p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11733,9 +12873,9 @@ func TestUnrecognizedWithEmbedGoString(t *testing.T) { panic(err) } } -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { +func TestNinRepNonByteCustomTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) + p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11746,9 +12886,9 @@ func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { panic(err) } } -func TestNodeGoString(t *testing.T) { +func TestProtoTypeGoString(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) + p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { @@ -11764,13 +12904,13 @@ func TestNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11800,13 +12940,13 @@ func TestNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11836,13 +12976,13 @@ func TestNidRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11872,13 +13012,13 @@ func TestNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11908,13 +13048,13 @@ func TestNidRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11944,13 +13084,13 @@ func TestNinRepPackedNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -11980,13 +13120,13 @@ func TestNidOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12016,13 +13156,13 @@ func TestNinOptStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12052,13 +13192,13 @@ func TestNidRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12088,13 +13228,13 @@ func TestNinRepStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12124,13 +13264,13 @@ func TestNidEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12160,13 +13300,13 @@ func TestNinEmbeddedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12196,13 +13336,13 @@ func TestNidNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12232,13 +13372,13 @@ func TestNinNestedStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12268,13 +13408,13 @@ func TestNidOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12304,13 +13444,13 @@ func TestCustomDashSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12340,13 +13480,13 @@ func TestNinOptCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12376,13 +13516,13 @@ func TestNidRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12412,13 +13552,13 @@ func TestNinRepCustomSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12448,13 +13588,13 @@ func TestNinOptNativeUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12484,13 +13624,13 @@ func TestNinOptStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12520,13 +13660,13 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12556,13 +13696,13 @@ func TestNinNestedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12592,13 +13732,13 @@ func TestTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12628,13 +13768,13 @@ func TestOrBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12664,13 +13804,13 @@ func TestAndBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12700,13 +13840,13 @@ func TestLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12736,13 +13876,13 @@ func TestDeepTreeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12772,13 +13912,13 @@ func TestADeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12808,13 +13948,13 @@ func TestAndDeepBranchSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12844,13 +13984,13 @@ func TestDeepLeafSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12880,13 +14020,13 @@ func TestNilSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNil(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12916,13 +14056,13 @@ func TestNidOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12952,13 +14092,13 @@ func TestNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -12988,13 +14128,13 @@ func TestNidRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13024,13 +14164,13 @@ func TestNinRepEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13060,13 +14200,13 @@ func TestNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13096,13 +14236,13 @@ func TestAnotherNinOptEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13132,13 +14272,13 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13168,13 +14308,13 @@ func TestTimerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13204,13 +14344,13 @@ func TestMyExtendableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13240,13 +14380,13 @@ func TestOtherExtenableSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13276,13 +14416,13 @@ func TestNestedDefinitionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13312,13 +14452,13 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13348,13 +14488,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13384,13 +14524,13 @@ func TestNestedScopeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13420,13 +14560,13 @@ func TestNinOptNativeDefaultSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13456,13 +14596,13 @@ func TestCustomContainerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13492,13 +14632,13 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13528,13 +14668,13 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13564,13 +14704,13 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13600,13 +14740,13 @@ func TestCustomNameNinStructSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13636,13 +14776,13 @@ func TestCustomNameCustomTypeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13672,13 +14812,13 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13708,13 +14848,13 @@ func TestCustomNameEnumSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13744,13 +14884,13 @@ func TestNoExtensionsMapSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13780,13 +14920,13 @@ func TestUnrecognizedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13816,13 +14956,13 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13852,13 +14992,13 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13888,13 +15028,13 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13924,13 +15064,13 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13960,13 +15100,13 @@ func TestNodeSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNode(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -13991,6 +15131,222 @@ func BenchmarkNodeSize(b *testing.B) { b.SetBytes(int64(total / b.N)) } +func TestNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinOptNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinOptNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinOptNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNidRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNidRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NidRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestNinRepNonByteCustomTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedNinRepNonByteCustomType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*NinRepNonByteCustomType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypeSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoType(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypeSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoType, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoType(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + func TestNidOptNativeStringer(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) @@ -14549,6 +15905,60 @@ func TestNodeStringer(t *testing.T) { t.Fatalf("String want %v got %v", s1, s2) } } +func TestNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinOptNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinOptNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNidRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNidRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestNinRepNonByteCustomTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedNinRepNonByteCustomType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestProtoTypeStringer(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoType(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} func TestNinOptNativeUnionOnlyOne(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/Makefile b/vendor/github.com/gogo/protobuf/test/typedecl/Makefile new file mode 100644 index 00000000..5b924dfe --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. typedecl.proto diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/models.go b/vendor/github.com/gogo/protobuf/test/typedecl/models.go new file mode 100644 index 00000000..c0b2180f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl/models.go @@ -0,0 +1,19 @@ +package typedecl + +type Dropped struct { + Name string + Age int32 +} + +func (d *Dropped) Drop() bool { + return true +} + +type DroppedWithoutGetters struct { + Width int64 + Height int64 +} + +func (d *DroppedWithoutGetters) GetHeight() int64 { + return d.Height +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go new file mode 100644 index 00000000..496cc0f6 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go @@ -0,0 +1,971 @@ +// Code generated by protoc-gen-gogo. +// source: typedecl.proto +// DO NOT EDIT! + +/* + Package typedecl is a generated protocol buffer package. + + It is generated from these files: + typedecl.proto + + It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package typedecl + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Dropped) Reset() { *m = Dropped{} } +func (m *Dropped) String() string { return proto.CompactTextString(m) } +func (*Dropped) ProtoMessage() {} +func (*Dropped) Descriptor() ([]byte, []int) { return fileDescriptorTypedecl, []int{0} } + +func (m *Dropped) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Dropped) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} } +func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) } +func (*DroppedWithoutGetters) ProtoMessage() {} +func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) { return fileDescriptorTypedecl, []int{1} } + +type Kept struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Age int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"` +} + +func (m *Kept) Reset() { *m = Kept{} } +func (m *Kept) String() string { return proto.CompactTextString(m) } +func (*Kept) ProtoMessage() {} +func (*Kept) Descriptor() ([]byte, []int) { return fileDescriptorTypedecl, []int{2} } + +func (m *Kept) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Kept) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func init() { + proto.RegisterType((*Dropped)(nil), "typedecl.Dropped") + proto.RegisterType((*DroppedWithoutGetters)(nil), "typedecl.DroppedWithoutGetters") + proto.RegisterType((*Kept)(nil), "typedecl.Kept") +} +func (this *Dropped) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Dropped") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Dropped but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Dropped but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Dropped) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (this *DroppedWithoutGetters) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *DroppedWithoutGetters") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *DroppedWithoutGetters but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *DroppedWithoutGetters but is not nil && this == nil") + } + if this.Height != that1.Height { + return fmt.Errorf("Height this(%v) Not Equal that(%v)", this.Height, that1.Height) + } + if this.Width != that1.Width { + return fmt.Errorf("Width this(%v) Not Equal that(%v)", this.Width, that1.Width) + } + return nil +} +func (this *DroppedWithoutGetters) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Height != that1.Height { + return false + } + if this.Width != that1.Width { + return false + } + return true +} +func (this *Kept) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Kept") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Kept but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Kept but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Kept) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (m *Dropped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Dropped) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func (m *DroppedWithoutGetters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DroppedWithoutGetters) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Height != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(m.Height)) + } + if m.Width != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(m.Width)) + } + return i, nil +} + +func (m *Kept) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Kept) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedecl(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func encodeFixed64Typedecl(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Typedecl(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypedecl(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedDropped(r randyTypedecl, easy bool) *Dropped { + this := &Dropped{} + this.Name = string(randStringTypedecl(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedDroppedWithoutGetters(r randyTypedecl, easy bool) *DroppedWithoutGetters { + this := &DroppedWithoutGetters{} + this.Height = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Height *= -1 + } + this.Width = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Width *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedKept(r randyTypedecl, easy bool) *Kept { + this := &Kept{} + this.Name = string(randStringTypedecl(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyTypedecl interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypedecl(r randyTypedecl) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypedecl(r randyTypedecl) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneTypedecl(r) + } + return string(tmps) +} +func randUnrecognizedTypedecl(r randyTypedecl, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypedecl(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypedecl(dAtA []byte, r randyTypedecl, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypedecl(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypedecl(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Dropped) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTypedecl(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovTypedecl(uint64(m.Age)) + } + return n +} + +func (m *DroppedWithoutGetters) Size() (n int) { + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypedecl(uint64(m.Height)) + } + if m.Width != 0 { + n += 1 + sovTypedecl(uint64(m.Width)) + } + return n +} + +func (m *Kept) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTypedecl(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovTypedecl(uint64(m.Age)) + } + return n +} + +func sovTypedecl(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypedecl(x uint64) (n int) { + return sovTypedecl(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Dropped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Dropped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Dropped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypedecl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedecl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedecl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DroppedWithoutGetters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DroppedWithoutGetters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Width", wireType) + } + m.Width = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Width |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedecl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedecl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Kept) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Kept: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Kept: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypedecl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedecl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedecl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedecl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypedecl(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypedecl + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedecl + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypedecl(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypedecl = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypedecl = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("typedecl.proto", fileDescriptorTypedecl) } + +var fileDescriptorTypedecl = []byte{ + // 242 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xa9, 0x2c, 0x48, + 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe5, 0x62, + 0x77, 0x29, 0xca, 0x2f, 0x28, 0x48, 0x4d, 0x11, 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95, + 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x04, 0xb8, 0x98, 0x13, 0xd3, 0x53, 0x25, + 0x98, 0x14, 0x18, 0x35, 0x58, 0x83, 0x40, 0x4c, 0x2b, 0x96, 0x0f, 0x0b, 0xe5, 0x19, 0x94, 0xfc, + 0xb9, 0x44, 0xa1, 0xda, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52, + 0x8b, 0x8a, 0x85, 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0xc6, 0x30, 0x07, + 0x41, 0x79, 0x42, 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0xa3, 0x98, 0x83, 0x20, + 0x1c, 0x2b, 0x8e, 0x8e, 0x05, 0xf2, 0x0c, 0x60, 0x03, 0x75, 0xb8, 0x58, 0xbc, 0x53, 0x0b, 0x4a, + 0x88, 0x73, 0x84, 0x93, 0xc6, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, + 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, + 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5, 0x18, 0x92, + 0xd8, 0xc0, 0xde, 0x34, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xbe, 0xf8, 0x44, 0x8b, 0x31, 0x01, + 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.proto b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.proto new file mode 100644 index 00000000..73f9178e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +package typedecl; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message Dropped { + option (gogoproto.typedecl) = false; + string name = 1; + int32 age = 2; +} + +message DroppedWithoutGetters { + option (gogoproto.typedecl) = false; + option (gogoproto.goproto_getters) = false; + int64 height = 1; + int64 width = 2; +} + +message Kept { + string name = 1; + int32 age = 2; +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go b/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go new file mode 100644 index 00000000..179499e0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go @@ -0,0 +1,657 @@ +// Code generated by protoc-gen-gogo. +// source: typedecl.proto +// DO NOT EDIT! + +/* +Package typedecl is a generated protocol buffer package. + +It is generated from these files: + typedecl.proto + +It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package typedecl + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestDroppedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Dropped{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedWithoutGettersMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &DroppedWithoutGetters{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKeptMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKeptProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKeptProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Kept{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedWithoutGettersJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKeptJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKeptVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedWithoutGettersSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKeptSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/Makefile b/vendor/github.com/gogo/protobuf/test/typedecl_all/Makefile new file mode 100644 index 00000000..99441746 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. typedeclall.proto diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go new file mode 100644 index 00000000..4186ad76 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go @@ -0,0 +1,19 @@ +package typedeclall + +type Dropped struct { + Name string + Age int32 +} + +func (d *Dropped) Drop() bool { + return true +} + +type DroppedWithoutGetters struct { + Width int64 + Height int64 +} + +func (d *DroppedWithoutGetters) GetHeight() int64 { + return d.Height +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go new file mode 100644 index 00000000..0e34dc2e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go @@ -0,0 +1,971 @@ +// Code generated by protoc-gen-gogo. +// source: typedeclall.proto +// DO NOT EDIT! + +/* + Package typedeclall is a generated protocol buffer package. + + It is generated from these files: + typedeclall.proto + + It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package typedeclall + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Dropped) Reset() { *m = Dropped{} } +func (m *Dropped) String() string { return proto.CompactTextString(m) } +func (*Dropped) ProtoMessage() {} +func (*Dropped) Descriptor() ([]byte, []int) { return fileDescriptorTypedeclall, []int{0} } + +func (m *Dropped) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Dropped) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} } +func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) } +func (*DroppedWithoutGetters) ProtoMessage() {} +func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) { return fileDescriptorTypedeclall, []int{1} } + +type Kept struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Age int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"` +} + +func (m *Kept) Reset() { *m = Kept{} } +func (m *Kept) String() string { return proto.CompactTextString(m) } +func (*Kept) ProtoMessage() {} +func (*Kept) Descriptor() ([]byte, []int) { return fileDescriptorTypedeclall, []int{2} } + +func (m *Kept) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Kept) GetAge() int32 { + if m != nil { + return m.Age + } + return 0 +} + +func init() { + proto.RegisterType((*Dropped)(nil), "typedeclall.Dropped") + proto.RegisterType((*DroppedWithoutGetters)(nil), "typedeclall.DroppedWithoutGetters") + proto.RegisterType((*Kept)(nil), "typedeclall.Kept") +} +func (this *Dropped) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Dropped") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Dropped but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Dropped but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Dropped) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Dropped) + if !ok { + that2, ok := that.(Dropped) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (this *DroppedWithoutGetters) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *DroppedWithoutGetters") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *DroppedWithoutGetters but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *DroppedWithoutGetters but is not nil && this == nil") + } + if this.Height != that1.Height { + return fmt.Errorf("Height this(%v) Not Equal that(%v)", this.Height, that1.Height) + } + if this.Width != that1.Width { + return fmt.Errorf("Width this(%v) Not Equal that(%v)", this.Width, that1.Width) + } + return nil +} +func (this *DroppedWithoutGetters) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*DroppedWithoutGetters) + if !ok { + that2, ok := that.(DroppedWithoutGetters) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Height != that1.Height { + return false + } + if this.Width != that1.Width { + return false + } + return true +} +func (this *Kept) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Kept") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Kept but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Kept but is not nil && this == nil") + } + if this.Name != that1.Name { + return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) + } + if this.Age != that1.Age { + return fmt.Errorf("Age this(%v) Not Equal that(%v)", this.Age, that1.Age) + } + return nil +} +func (this *Kept) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Kept) + if !ok { + that2, ok := that.(Kept) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Name != that1.Name { + return false + } + if this.Age != that1.Age { + return false + } + return true +} +func (m *Dropped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Dropped) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func (m *DroppedWithoutGetters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DroppedWithoutGetters) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Height != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(m.Height)) + } + if m.Width != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(m.Width)) + } + return i, nil +} + +func (m *Kept) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Kept) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Name) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + } + if m.Age != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTypedeclall(dAtA, i, uint64(m.Age)) + } + return i, nil +} + +func encodeFixed64Typedeclall(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Typedeclall(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypedeclall(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedDropped(r randyTypedeclall, easy bool) *Dropped { + this := &Dropped{} + this.Name = string(randStringTypedeclall(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedDroppedWithoutGetters(r randyTypedeclall, easy bool) *DroppedWithoutGetters { + this := &DroppedWithoutGetters{} + this.Height = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Height *= -1 + } + this.Width = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Width *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedKept(r randyTypedeclall, easy bool) *Kept { + this := &Kept{} + this.Name = string(randStringTypedeclall(r)) + this.Age = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Age *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyTypedeclall interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypedeclall(r randyTypedeclall) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypedeclall(r randyTypedeclall) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneTypedeclall(r) + } + return string(tmps) +} +func randUnrecognizedTypedeclall(r randyTypedeclall, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypedeclall(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypedeclall(dAtA []byte, r randyTypedeclall, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypedeclall(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypedeclall(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Dropped) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTypedeclall(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovTypedeclall(uint64(m.Age)) + } + return n +} + +func (m *DroppedWithoutGetters) Size() (n int) { + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypedeclall(uint64(m.Height)) + } + if m.Width != 0 { + n += 1 + sovTypedeclall(uint64(m.Width)) + } + return n +} + +func (m *Kept) Size() (n int) { + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTypedeclall(uint64(l)) + } + if m.Age != 0 { + n += 1 + sovTypedeclall(uint64(m.Age)) + } + return n +} + +func sovTypedeclall(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypedeclall(x uint64) (n int) { + return sovTypedeclall(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Dropped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Dropped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Dropped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypedeclall + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedeclall(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedeclall + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DroppedWithoutGetters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DroppedWithoutGetters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Width", wireType) + } + m.Width = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Width |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedeclall(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedeclall + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Kept) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Kept: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Kept: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypedeclall + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType) + } + m.Age = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Age |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypedeclall(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedeclall + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypedeclall(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypedeclall + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedeclall + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypedeclall(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypedeclall = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypedeclall = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("typedeclall.proto", fileDescriptorTypedeclall) } + +var fileDescriptorTypedeclall = []byte{ + // 248 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0xa9, 0x2c, 0x48, + 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46, + 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, + 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57, + 0x49, 0x9f, 0x8b, 0xdd, 0xa5, 0x28, 0xbf, 0xa0, 0x20, 0x35, 0x45, 0x48, 0x88, 0x8b, 0x25, 0x2f, + 0x31, 0x37, 0x55, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x16, 0x12, 0xe0, 0x62, 0x4e, + 0x4c, 0x4f, 0x95, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0d, 0x02, 0x31, 0x95, 0xbc, 0xb9, 0x44, 0xa1, + 0x1a, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52, 0x8b, 0x8a, 0x85, + 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0x06, 0x30, 0x07, 0x41, 0x79, 0x42, + 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0x43, 0x98, 0x83, 0x20, 0x1c, 0x2b, 0x96, + 0x8e, 0x05, 0xf2, 0x0c, 0x4a, 0x46, 0x5c, 0x2c, 0xde, 0xa9, 0x05, 0x25, 0xc4, 0x59, 0x6d, 0xc5, + 0xf2, 0x61, 0xa1, 0x3c, 0xa3, 0x93, 0xce, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, + 0x78, 0x24, 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, + 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5, + 0x18, 0x36, 0x3c, 0x96, 0x63, 0x48, 0x62, 0x03, 0x7b, 0xd3, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, + 0xc0, 0xcd, 0x29, 0x18, 0x37, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto new file mode 100644 index 00000000..76636e47 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +package typedeclall; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; +option (gogoproto.typedecl_all) = false; + +message Dropped { + string name = 1; + int32 age = 2; +} + +message DroppedWithoutGetters { + option (gogoproto.goproto_getters) = false; + int64 height = 1; + int64 width = 2; +} + +message Kept { + option (gogoproto.typedecl) = true; + string name = 1; + int32 age = 2; +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go new file mode 100644 index 00000000..eae6219d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go @@ -0,0 +1,657 @@ +// Code generated by protoc-gen-gogo. +// source: typedeclall.proto +// DO NOT EDIT! + +/* +Package typedeclall is a generated protocol buffer package. + +It is generated from these files: + typedeclall.proto + +It has these top-level messages: + Dropped + DroppedWithoutGetters + Kept +*/ +package typedeclall + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestDroppedProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Dropped{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestDroppedWithoutGettersMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &DroppedWithoutGetters{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKeptMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKeptProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKeptProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Kept{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Dropped{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedWithoutGettersJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &DroppedWithoutGetters{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKeptJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Kept{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestDroppedProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKeptProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestDroppedVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDropped(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Dropped{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedDroppedWithoutGetters(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &DroppedWithoutGetters{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKeptVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKept(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Kept{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestDroppedSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDropped(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Dropped, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDropped(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestDroppedWithoutGettersSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedDroppedWithoutGetters(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkDroppedWithoutGettersSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*DroppedWithoutGetters, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedDroppedWithoutGetters(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestKeptSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKept(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKeptSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*Kept, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKept(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/Makefile b/vendor/github.com/gogo/protobuf/test/types/Makefile new file mode 100644 index 00000000..7f489b36 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/Makefile @@ -0,0 +1,39 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-combo + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-gen-combo --version="3.0.0" --gogo_out=\ + Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ + Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \ + --proto_path=../../../../../:../../protobuf/:. types.proto + find combos -type d -not -name combos -exec cp types_test.go.in {}/types_test.go \; diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go new file mode 100644 index 00000000..8cd75e4d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go @@ -0,0 +1,5910 @@ +// Code generated by protoc-gen-gogo. +// source: combos/both/types.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + combos/both/types.proto + + It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func (m *KnownTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KnownTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Dur != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) + n1, err := m.Dur.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.Ts != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) + n2, err := m.Ts.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Dbl != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) + n3, err := m.Dbl.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.Flt != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) + n4, err := m.Flt.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.I64 != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) + n5, err := m.I64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.U64 != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) + n6, err := m.U64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.I32 != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) + n7, err := m.I32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } + if m.U32 != nil { + dAtA[i] = 0x42 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) + n8, err := m.U32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.Bool != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) + n9, err := m.Bool.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + if m.Str != nil { + dAtA[i] = 0x52 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) + n10, err := m.Str.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.Bytes != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) + n11, err := m.Bytes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + +func (m *ProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) + n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) + n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n14, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n15, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + return i, nil +} + +func (m *StdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) + n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) + n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + return i, nil +} + +func (m *RepProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RepStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *MapProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n20, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n21, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n22, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n23, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + } + return i, nil +} + +func (m *MapStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) + n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) + n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) + n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) + n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + } + return i, nil +} + +func (m *OneofProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfProtoTimes != nil { + nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn28 + } + return i, nil +} + +func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n29, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } + return i, nil +} +func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n30, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + } + return i, nil +} +func (m *OneofStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfStdTimes != nil { + nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn31 + } + return i, nil +} + +func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) + n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + } + return i, nil +} +func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) + n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } + return i, nil +} +func encodeFixed64Types(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Types(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *KnownTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KnownTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dur == nil { + m.Dur = &google_protobuf1.Duration{} + } + if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ts == nil { + m.Ts = &google_protobuf2.Timestamp{} + } + if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dbl == nil { + m.Dbl = &google_protobuf3.DoubleValue{} + } + if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Flt == nil { + m.Flt = &google_protobuf3.FloatValue{} + } + if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I64 == nil { + m.I64 = &google_protobuf3.Int64Value{} + } + if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U64 == nil { + m.U64 = &google_protobuf3.UInt64Value{} + } + if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I32 == nil { + m.I32 = &google_protobuf3.Int32Value{} + } + if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U32 == nil { + m.U32 = &google_protobuf3.UInt32Value{} + } + if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bool == nil { + m.Bool = &google_protobuf3.BoolValue{} + } + if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Str == nil { + m.Str = &google_protobuf3.StringValue{} + } + if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bytes == nil { + m.Bytes = &google_protobuf3.BytesValue{} + } + if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = &google_protobuf2.Timestamp{} + } + if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = &google_protobuf1.Duration{} + } + if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = new(time.Duration) + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) + if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) + if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) + if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, google_protobuf1.Duration{}) + if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, new(time.Duration)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, time.Time{}) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, time.Duration(0)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf2.Timestamp + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf2.Timestamp + m.Timestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf1.Duration + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf1.Duration + m.Duration[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue = new(time.Time) + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Time) + m.Timestamp[mapkey] = *mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue = new(time.Duration) + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Duration) + m.Duration[mapkey] = *mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf2.Timestamp{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf1.Duration{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypes(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypes + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypes(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/both/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 923 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x8f, 0xdb, 0x44, + 0x1c, 0xdd, 0xb1, 0x9d, 0xb2, 0xfb, 0x5b, 0x2d, 0x6d, 0x2d, 0x01, 0x26, 0x20, 0x67, 0x09, 0x97, + 0xa5, 0x55, 0x1d, 0x48, 0xa2, 0x80, 0x16, 0x15, 0x8a, 0xb5, 0x6d, 0xb7, 0x54, 0xdb, 0xad, 0xd2, + 0xb2, 0x02, 0x24, 0x10, 0x76, 0xe3, 0xa4, 0x11, 0x8e, 0x27, 0xb2, 0xc7, 0x54, 0xb9, 0xf1, 0x11, + 0x38, 0x82, 0xb8, 0xd0, 0x1b, 0x12, 0xdc, 0xe1, 0xc8, 0x05, 0xa9, 0x37, 0xf8, 0x04, 0xd0, 0x86, + 0x0b, 0x1f, 0xa1, 0x47, 0x34, 0xe3, 0xf1, 0xbf, 0x78, 0xec, 0x90, 0x48, 0x2b, 0x2e, 0xdc, 0xd6, + 0xeb, 0xf7, 0x9e, 0x9f, 0x9f, 0xdf, 0xef, 0x37, 0x81, 0x17, 0xee, 0xe1, 0x89, 0x8d, 0x83, 0x96, + 0x8d, 0xc9, 0xfd, 0x16, 0x99, 0x4d, 0x9d, 0xc0, 0x98, 0xfa, 0x98, 0x60, 0xb5, 0xc6, 0x2e, 0xea, + 0x97, 0x46, 0x63, 0x72, 0x3f, 0xb4, 0x8d, 0x7b, 0x78, 0xd2, 0x1a, 0xe1, 0x11, 0x6e, 0xb1, 0xbb, + 0x76, 0x38, 0x64, 0x57, 0xec, 0x82, 0xfd, 0x15, 0xb1, 0xea, 0xfa, 0x08, 0xe3, 0x91, 0xeb, 0xa4, + 0xa8, 0x41, 0xe8, 0x5b, 0x64, 0x8c, 0x3d, 0x7e, 0xbf, 0xb1, 0x78, 0x9f, 0x8c, 0x27, 0x4e, 0x40, + 0xac, 0xc9, 0xb4, 0x4c, 0xe0, 0x81, 0x6f, 0x4d, 0xa7, 0x8e, 0xcf, 0x6d, 0x35, 0xbf, 0x55, 0x00, + 0x6e, 0x7a, 0xf8, 0x81, 0x77, 0x97, 0xda, 0x53, 0x2f, 0x82, 0x3c, 0x08, 0x7d, 0x0d, 0xed, 0xa2, + 0xbd, 0xed, 0xf6, 0x8b, 0x46, 0x44, 0x36, 0x62, 0xb2, 0x71, 0xc0, 0x9f, 0xde, 0xa7, 0x28, 0xf5, + 0x02, 0x48, 0x24, 0xd0, 0x24, 0x86, 0xad, 0x17, 0xb0, 0x77, 0x63, 0x27, 0x7d, 0x89, 0x04, 0xaa, + 0x01, 0xf2, 0xc0, 0x76, 0x35, 0x99, 0x81, 0x5f, 0x2e, 0x0a, 0xe3, 0xd0, 0x76, 0x9d, 0x13, 0xcb, + 0x0d, 0x9d, 0x3e, 0x05, 0xaa, 0x97, 0x40, 0x1e, 0xba, 0x44, 0x53, 0x18, 0xfe, 0xa5, 0x02, 0xfe, + 0x9a, 0x8b, 0x2d, 0xc2, 0xe1, 0x43, 0x97, 0x50, 0xf8, 0xb8, 0xd7, 0xd5, 0x6a, 0x25, 0xf0, 0x1b, + 0x1e, 0xe9, 0x75, 0x39, 0x7c, 0xdc, 0xeb, 0x52, 0x37, 0x61, 0xaf, 0xab, 0x9d, 0x29, 0x71, 0xf3, + 0x41, 0x16, 0x1f, 0xf6, 0xba, 0x4c, 0xbe, 0xd3, 0xd6, 0x9e, 0x29, 0x97, 0xef, 0xb4, 0x63, 0xf9, + 0x4e, 0x9b, 0xc9, 0x77, 0xda, 0xda, 0x66, 0x85, 0x7c, 0x82, 0x0f, 0x19, 0x5e, 0xb1, 0x31, 0x76, + 0xb5, 0xad, 0x92, 0x28, 0x4d, 0x8c, 0xdd, 0x08, 0xce, 0x70, 0x54, 0x3f, 0x20, 0xbe, 0x06, 0x25, + 0xfa, 0x77, 0x88, 0x3f, 0xf6, 0x46, 0x5c, 0x3f, 0x20, 0xbe, 0xfa, 0x06, 0xd4, 0xec, 0x19, 0x71, + 0x02, 0x6d, 0xbb, 0xe4, 0x05, 0x4c, 0x7a, 0x37, 0x22, 0x44, 0xc8, 0x7d, 0xe5, 0xef, 0x87, 0x0d, + 0xd4, 0xfc, 0x4e, 0x02, 0xb8, 0x4d, 0x41, 0x51, 0x3b, 0x0e, 0xe1, 0xbc, 0x17, 0xba, 0xae, 0x65, + 0xbb, 0x4e, 0xf2, 0x75, 0x79, 0x57, 0xaa, 0xbe, 0x7f, 0x91, 0xa4, 0x5e, 0x85, 0x73, 0xf1, 0x3f, + 0xe3, 0x4e, 0xf1, 0x22, 0x55, 0x94, 0xae, 0x40, 0x51, 0xdf, 0x81, 0xad, 0xa4, 0xf0, 0xbc, 0x5b, + 0x15, 0x46, 0x4c, 0xe5, 0xd1, 0x1f, 0x8d, 0x8d, 0x7e, 0x4a, 0x51, 0xdf, 0x86, 0xcd, 0x78, 0xa0, + 0x78, 0xd5, 0xca, 0x1f, 0xcf, 0xd9, 0x09, 0x81, 0x47, 0xf4, 0xa3, 0x04, 0x9b, 0x77, 0xc8, 0x20, + 0x0a, 0xe8, 0xd6, 0x5a, 0x01, 0x99, 0xca, 0x57, 0x7f, 0x36, 0x90, 0x28, 0xa6, 0x9b, 0x6b, 0xc4, + 0x64, 0x2a, 0x5f, 0x53, 0xb5, 0x62, 0x58, 0xe6, 0x6a, 0x61, 0x6d, 0xd2, 0xd7, 0x65, 0xc6, 0x32, + 0x81, 0xbd, 0xbb, 0x4a, 0x60, 0x4c, 0x81, 0x99, 0x49, 0x48, 0xcd, 0x1f, 0x24, 0xd8, 0xe9, 0x3b, + 0xd3, 0x4c, 0xa9, 0xde, 0x07, 0xb5, 0xf0, 0xe2, 0x81, 0x86, 0x76, 0xe5, 0x25, 0xad, 0x12, 0xb0, + 0xd4, 0xeb, 0x69, 0xfe, 0xb1, 0x0b, 0xba, 0xa0, 0xe4, 0xea, 0x5e, 0x15, 0x39, 0xea, 0x15, 0x00, + 0x92, 0x9a, 0x91, 0x97, 0x99, 0xe1, 0xdd, 0xc8, 0x70, 0xd4, 0xcb, 0xb0, 0x35, 0x48, 0x2c, 0x28, + 0x4b, 0x2c, 0xc4, 0xcd, 0x4c, 0x18, 0xbc, 0x5c, 0x3f, 0x49, 0xb0, 0xdd, 0x77, 0xa6, 0x49, 0xbf, + 0x6e, 0xaf, 0x97, 0x15, 0x2f, 0x98, 0x28, 0xb1, 0xa3, 0x75, 0x12, 0xe3, 0x15, 0x13, 0xe4, 0x76, + 0xb0, 0x62, 0x6e, 0x69, 0xc9, 0xb2, 0xd9, 0xbd, 0xb7, 0x52, 0x76, 0x69, 0xcd, 0x52, 0x56, 0xf3, + 0xd7, 0x1a, 0xec, 0x1c, 0x59, 0xd9, 0x9e, 0x7d, 0x24, 0x9e, 0x4d, 0x2a, 0x7e, 0xd1, 0x88, 0x4e, + 0xea, 0x1c, 0xc1, 0xb8, 0xb5, 0x88, 0xbe, 0xea, 0x11, 0x7f, 0x26, 0x1a, 0xd3, 0xeb, 0xd9, 0xc9, + 0x8a, 0xc2, 0x7b, 0x55, 0x28, 0x99, 0x97, 0x2a, 0xee, 0xa3, 0x13, 0xc1, 0xbc, 0x47, 0x21, 0x5e, + 0xa8, 0xb4, 0x18, 0x83, 0x23, 0x87, 0xc5, 0xd1, 0x3f, 0xc8, 0x8d, 0x2d, 0xd5, 0x6b, 0x0a, 0xf5, + 0x72, 0x3a, 0x8b, 0x0b, 0xaf, 0xfe, 0x19, 0x3c, 0x2f, 0xce, 0x44, 0x3d, 0x07, 0xf2, 0xe7, 0xce, + 0x8c, 0x6d, 0xba, 0x5a, 0x9f, 0xfe, 0xa9, 0xbe, 0x0e, 0xb5, 0x2f, 0xe8, 0x79, 0xf2, 0x2f, 0x7e, + 0x1e, 0x44, 0xc0, 0x7d, 0xe9, 0x2d, 0x54, 0xff, 0x10, 0x9e, 0x3d, 0x25, 0xe5, 0x4f, 0xe1, 0x39, + 0x61, 0x58, 0x82, 0x07, 0xb4, 0xf2, 0x0f, 0xa8, 0x58, 0x1c, 0x19, 0xfd, 0x13, 0xd8, 0x39, 0x0d, + 0xdd, 0xe6, 0x6f, 0x35, 0xd8, 0x3e, 0xb2, 0xd2, 0x0d, 0xf0, 0x49, 0x79, 0x8b, 0x5f, 0x4b, 0x3f, + 0x69, 0x0c, 0x2f, 0xe9, 0x70, 0xf9, 0x81, 0x73, 0xa3, 0xd8, 0xe4, 0x57, 0x04, 0xb2, 0x0b, 0x72, + 0xc2, 0xa3, 0xe2, 0xe3, 0xd2, 0x2e, 0xef, 0x55, 0x18, 0x5d, 0x68, 0x60, 0xc9, 0x51, 0x76, 0xad, + 0xd0, 0xe7, 0x5d, 0x81, 0x66, 0x5e, 0x4b, 0x70, 0x1a, 0xfd, 0xdf, 0xe8, 0xff, 0xa0, 0xd1, 0xdf, + 0x20, 0x38, 0x7b, 0xec, 0x39, 0x78, 0x98, 0xd9, 0xcd, 0xfb, 0xd9, 0xda, 0x2d, 0xfd, 0xbd, 0x74, + 0x98, 0xdb, 0x99, 0x6f, 0x66, 0xba, 0xb0, 0xcc, 0xc7, 0x61, 0x66, 0x9d, 0x99, 0xe7, 0x99, 0x8f, + 0x63, 0xee, 0x83, 0xea, 0x35, 0x1f, 0x22, 0xd8, 0x61, 0xde, 0x92, 0x79, 0xbb, 0xb2, 0x92, 0xb3, + 0x68, 0xb0, 0xf2, 0xfe, 0x2e, 0xaf, 0xe0, 0x2f, 0x2a, 0x7c, 0xce, 0xe5, 0x59, 0xe6, 0xe8, 0x98, + 0x39, 0xa2, 0x9a, 0xe6, 0xde, 0xe3, 0x27, 0x3a, 0x7a, 0xfa, 0x44, 0x47, 0xdf, 0xcf, 0x75, 0xf4, + 0xf3, 0x5c, 0x47, 0xbf, 0xcc, 0x75, 0xf4, 0x68, 0xae, 0xa3, 0xdf, 0xe7, 0x3a, 0x7a, 0x3c, 0xd7, + 0xd1, 0xd3, 0xb9, 0xbe, 0xf1, 0xe5, 0x5f, 0xfa, 0x86, 0x7d, 0x86, 0xe9, 0x77, 0xfe, 0x09, 0x00, + 0x00, 0xff, 0xff, 0x48, 0x89, 0xae, 0xdb, 0x94, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.proto new file mode 100644 index 00000000..6c037776 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go new file mode 100644 index 00000000..e5b8ff46 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go @@ -0,0 +1,1986 @@ +// Code generated by protoc-gen-gogo. +// source: combos/both/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/both/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKnownTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go new file mode 100644 index 00000000..a0d43d35 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go @@ -0,0 +1,3475 @@ +// Code generated by protoc-gen-gogo. +// source: combos/marshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/marshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func (m *KnownTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KnownTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Dur != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) + n1, err := m.Dur.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.Ts != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) + n2, err := m.Ts.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Dbl != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) + n3, err := m.Dbl.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.Flt != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) + n4, err := m.Flt.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.I64 != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) + n5, err := m.I64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.U64 != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) + n6, err := m.U64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.I32 != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) + n7, err := m.I32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } + if m.U32 != nil { + dAtA[i] = 0x42 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) + n8, err := m.U32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.Bool != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) + n9, err := m.Bool.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + if m.Str != nil { + dAtA[i] = 0x52 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) + n10, err := m.Str.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.Bytes != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) + n11, err := m.Bytes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + +func (m *ProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) + n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) + n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n14, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n15, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + return i, nil +} + +func (m *StdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) + n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) + n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + return i, nil +} + +func (m *RepProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RepStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *MapProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n20, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n21, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n22, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n23, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + } + return i, nil +} + +func (m *MapStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) + n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) + n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) + n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) + n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + } + return i, nil +} + +func (m *OneofProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfProtoTimes != nil { + nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn28 + } + return i, nil +} + +func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n29, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } + return i, nil +} +func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n30, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + } + return i, nil +} +func (m *OneofStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfStdTimes != nil { + nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn31 + } + return i, nil +} + +func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) + n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + } + return i, nil +} +func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) + n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } + return i, nil +} +func encodeFixed64Types(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Types(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +func init() { proto.RegisterFile("combos/marshaler/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 927 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, + 0x18, 0x8d, 0x7f, 0x52, 0x32, 0x5f, 0x14, 0xda, 0x5a, 0x02, 0x99, 0x50, 0x39, 0x43, 0xd8, 0x0c, + 0xad, 0xea, 0x40, 0x12, 0x05, 0x34, 0xa8, 0x50, 0xac, 0x69, 0x3b, 0xa5, 0x9a, 0x4e, 0x95, 0x96, + 0x11, 0x20, 0x81, 0xb0, 0x1b, 0x27, 0x8d, 0x70, 0x7c, 0x23, 0xfb, 0x9a, 0x2a, 0x3b, 0x1e, 0x81, + 0x25, 0x88, 0x0d, 0xdd, 0x21, 0xc1, 0x1e, 0x96, 0x6c, 0x90, 0xba, 0x83, 0x27, 0x80, 0x36, 0x6c, + 0x78, 0x84, 0x2e, 0xd1, 0xbd, 0xbe, 0xfe, 0x8b, 0xaf, 0x1d, 0x12, 0x69, 0xc4, 0x86, 0xdd, 0x78, + 0x7c, 0xce, 0xf1, 0xf1, 0xf1, 0xf9, 0xbe, 0x1b, 0xb8, 0x70, 0x1f, 0xcd, 0x2c, 0xe4, 0x77, 0x66, + 0xa6, 0xe7, 0x3f, 0x30, 0x1d, 0xdb, 0xeb, 0xe0, 0xc5, 0xdc, 0xf6, 0xf5, 0xb9, 0x87, 0x30, 0x52, + 0xaa, 0xf4, 0xa2, 0x79, 0x79, 0x32, 0xc5, 0x0f, 0x02, 0x4b, 0xbf, 0x8f, 0x66, 0x9d, 0x09, 0x9a, + 0xa0, 0x0e, 0xbd, 0x6b, 0x05, 0x63, 0x7a, 0x45, 0x2f, 0xe8, 0x5f, 0x21, 0xab, 0xa9, 0x4d, 0x10, + 0x9a, 0x38, 0x76, 0x82, 0x1a, 0x05, 0x9e, 0x89, 0xa7, 0xc8, 0x65, 0xf7, 0x5b, 0xab, 0xf7, 0xf1, + 0x74, 0x66, 0xfb, 0xd8, 0x9c, 0xcd, 0x8b, 0x04, 0x1e, 0x7a, 0xe6, 0x7c, 0x6e, 0x7b, 0xcc, 0x56, + 0xfb, 0x5b, 0x19, 0xe0, 0x96, 0x8b, 0x1e, 0xba, 0xf7, 0x88, 0x3d, 0xe5, 0x12, 0x48, 0xa3, 0xc0, + 0x53, 0x85, 0x5d, 0x61, 0xaf, 0xde, 0x7d, 0x49, 0x0f, 0xc9, 0x7a, 0x44, 0xd6, 0x0f, 0xd8, 0xd3, + 0x87, 0x04, 0xa5, 0x5c, 0x04, 0x11, 0xfb, 0xaa, 0x48, 0xb1, 0xcd, 0x1c, 0xf6, 0x5e, 0xe4, 0x64, + 0x28, 0x62, 0x5f, 0xd1, 0x41, 0x1a, 0x59, 0x8e, 0x2a, 0x51, 0xf0, 0x85, 0xbc, 0x30, 0x0a, 0x2c, + 0xc7, 0x3e, 0x31, 0x9d, 0xc0, 0x1e, 0x12, 0xa0, 0x72, 0x19, 0xa4, 0xb1, 0x83, 0x55, 0x99, 0xe2, + 0x5f, 0xce, 0xe1, 0xaf, 0x3b, 0xc8, 0xc4, 0x0c, 0x3e, 0x76, 0x30, 0x81, 0x4f, 0x07, 0x7d, 0xb5, + 0x5a, 0x00, 0xbf, 0xe9, 0xe2, 0x41, 0x9f, 0xc1, 0xa7, 0x83, 0x3e, 0x71, 0x13, 0x0c, 0xfa, 0xea, + 0x99, 0x02, 0x37, 0x1f, 0xa4, 0xf1, 0xc1, 0xa0, 0x4f, 0xe5, 0x7b, 0x5d, 0xf5, 0xb9, 0x62, 0xf9, + 0x5e, 0x37, 0x92, 0xef, 0x75, 0xa9, 0x7c, 0xaf, 0xab, 0xd6, 0x4a, 0xe4, 0x63, 0x7c, 0x40, 0xf1, + 0xb2, 0x85, 0x90, 0xa3, 0xee, 0x14, 0x44, 0x69, 0x20, 0xe4, 0x84, 0x70, 0x8a, 0x23, 0xfa, 0x3e, + 0xf6, 0x54, 0x28, 0xd0, 0xbf, 0x8b, 0xbd, 0xa9, 0x3b, 0x61, 0xfa, 0x3e, 0xf6, 0x94, 0x37, 0xa0, + 0x6a, 0x2d, 0xb0, 0xed, 0xab, 0xf5, 0x82, 0x17, 0x30, 0xc8, 0xdd, 0x90, 0x10, 0x22, 0xf7, 0xe5, + 0xbf, 0x1f, 0xb5, 0x84, 0xf6, 0x77, 0x22, 0xc0, 0x1d, 0x02, 0x0a, 0xdb, 0x71, 0x08, 0xe7, 0xdd, + 0xc0, 0x71, 0x4c, 0xcb, 0xb1, 0xe3, 0xaf, 0xcb, 0xba, 0x52, 0xf6, 0xfd, 0xf3, 0x24, 0xe5, 0x1a, + 0x9c, 0x8b, 0xfe, 0x19, 0x75, 0x8a, 0x15, 0xa9, 0xa4, 0x74, 0x39, 0x8a, 0xf2, 0x0e, 0xec, 0xc4, + 0x85, 0x67, 0xdd, 0x2a, 0x31, 0x62, 0xc8, 0x8f, 0xff, 0x68, 0x55, 0x86, 0x09, 0x45, 0x79, 0x1b, + 0x6a, 0xd1, 0x40, 0xb1, 0xaa, 0x15, 0x3f, 0x9e, 0xb1, 0x63, 0x02, 0x8b, 0xe8, 0x47, 0x11, 0x6a, + 0x77, 0xf1, 0x28, 0x0c, 0xe8, 0xf6, 0x56, 0x01, 0x19, 0xf2, 0x57, 0x7f, 0xb6, 0x04, 0x5e, 0x4c, + 0xb7, 0xb6, 0x88, 0xc9, 0x90, 0xbf, 0x26, 0x6a, 0xf9, 0xb0, 0x8c, 0xcd, 0xc2, 0xaa, 0x91, 0xd7, + 0xa5, 0xc6, 0x52, 0x81, 0xbd, 0xbb, 0x49, 0x60, 0x54, 0x81, 0x9a, 0x89, 0x49, 0xed, 0x1f, 0x44, + 0x68, 0x0c, 0xed, 0x79, 0xaa, 0x54, 0xef, 0x83, 0x92, 0x7b, 0x71, 0x5f, 0x15, 0x76, 0xa5, 0x35, + 0xad, 0xe2, 0xb0, 0x94, 0x1b, 0x49, 0xfe, 0x91, 0x0b, 0xb2, 0xa0, 0xa4, 0xf2, 0x5e, 0xe5, 0x39, + 0xca, 0x55, 0x00, 0x9c, 0x98, 0x91, 0xd6, 0x99, 0x61, 0xdd, 0x48, 0x71, 0x94, 0x2b, 0xb0, 0x33, + 0x8a, 0x2d, 0xc8, 0x6b, 0x2c, 0x44, 0xcd, 0x8c, 0x19, 0xac, 0x5c, 0x3f, 0x89, 0x50, 0x1f, 0xda, + 0xf3, 0xb8, 0x5f, 0x77, 0xb6, 0xcb, 0x8a, 0x15, 0x8c, 0x97, 0xd8, 0xd1, 0x36, 0x89, 0xb1, 0x8a, + 0x71, 0x72, 0x3b, 0xd8, 0x30, 0xb7, 0xa4, 0x64, 0xe9, 0xec, 0xde, 0xdb, 0x28, 0xbb, 0xa4, 0x66, + 0x09, 0xab, 0xfd, 0x6b, 0x15, 0x1a, 0x47, 0x66, 0xba, 0x67, 0x1f, 0xf1, 0x67, 0x93, 0x88, 0x5f, + 0xd2, 0xc3, 0x93, 0x3a, 0x43, 0xd0, 0x6f, 0xaf, 0xa2, 0xaf, 0xb9, 0xd8, 0x5b, 0xf0, 0xc6, 0xf4, + 0x46, 0x7a, 0xb2, 0xc2, 0xf0, 0x5e, 0xe5, 0x4a, 0x66, 0xa5, 0xf2, 0xfb, 0xe8, 0x84, 0x33, 0xef, + 0x61, 0x88, 0x17, 0x4b, 0x2d, 0x46, 0xe0, 0xd0, 0x61, 0x7e, 0xf4, 0x0f, 0x32, 0x63, 0x4b, 0xf4, + 0xda, 0x5c, 0xbd, 0x8c, 0xce, 0xea, 0xc2, 0x6b, 0x7e, 0x06, 0x2f, 0xf2, 0x33, 0x51, 0xce, 0x81, + 0xf4, 0xb9, 0xbd, 0xa0, 0x9b, 0xae, 0x3a, 0x24, 0x7f, 0x2a, 0xaf, 0x43, 0xf5, 0x0b, 0x72, 0x9e, + 0xfc, 0x8b, 0x9f, 0x07, 0x21, 0x70, 0x5f, 0x7c, 0x4b, 0x68, 0x7e, 0x08, 0xcf, 0x9f, 0x92, 0xf2, + 0xa7, 0xf0, 0x02, 0x37, 0x2c, 0xce, 0x03, 0x3a, 0xd9, 0x07, 0x94, 0x2c, 0x8e, 0x94, 0xfe, 0x09, + 0x34, 0x4e, 0x43, 0xb7, 0xfd, 0x5b, 0x15, 0xea, 0x47, 0x66, 0xb2, 0x01, 0x3e, 0x29, 0x6e, 0xf1, + 0x6b, 0xc9, 0x27, 0x8d, 0xe0, 0x05, 0x1d, 0x2e, 0x3e, 0x70, 0x6e, 0xe6, 0x9b, 0xfc, 0x0a, 0x47, + 0x76, 0x45, 0x8e, 0x7b, 0x54, 0x7c, 0x5c, 0xd8, 0xe5, 0xbd, 0x12, 0xa3, 0x2b, 0x0d, 0x2c, 0x38, + 0xca, 0xae, 0xe7, 0xfa, 0xbc, 0xcb, 0xd1, 0xcc, 0x6a, 0x71, 0x4e, 0xa3, 0xff, 0x1b, 0xfd, 0x1f, + 0x34, 0xfa, 0x1b, 0x01, 0xce, 0x1e, 0xbb, 0x36, 0x1a, 0xa7, 0x76, 0xf3, 0x7e, 0xba, 0x76, 0x6b, + 0x7f, 0x2f, 0x1d, 0x66, 0x76, 0xe6, 0x9b, 0xa9, 0x2e, 0xac, 0xf3, 0x71, 0x98, 0x5a, 0x67, 0xc6, + 0x79, 0xea, 0xe3, 0x98, 0xf9, 0x20, 0x7a, 0xed, 0x47, 0x02, 0x34, 0xa8, 0xb7, 0x78, 0xde, 0xae, + 0x6e, 0xe4, 0x2c, 0x1c, 0xac, 0xac, 0xbf, 0x2b, 0x1b, 0xf8, 0x0b, 0x0b, 0x9f, 0x71, 0x79, 0x96, + 0x3a, 0x3a, 0xa6, 0x8e, 0x88, 0xa6, 0xb1, 0xf7, 0xe4, 0xa9, 0x26, 0x3c, 0x7b, 0xaa, 0x09, 0xdf, + 0x2f, 0x35, 0xe1, 0xe7, 0xa5, 0x26, 0xfc, 0xb2, 0xd4, 0x84, 0xc7, 0x4b, 0x4d, 0xf8, 0x7d, 0xa9, + 0x55, 0x9e, 0x2c, 0x35, 0xe1, 0xd9, 0x52, 0xab, 0x7c, 0xf9, 0x97, 0x56, 0xb1, 0xce, 0x50, 0xfd, + 0xde, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x8a, 0x72, 0x25, 0x99, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto new file mode 100644 index 00000000..05cb9556 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go new file mode 100644 index 00000000..eb61a676 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go @@ -0,0 +1,1986 @@ +// Code generated by protoc-gen-gogo. +// source: combos/marshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/marshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKnownTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofProtoTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofStdTypesMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go new file mode 100644 index 00000000..d1f17df2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go @@ -0,0 +1,2728 @@ +// Code generated by protoc-gen-gogo. +// source: combos/neither/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/neither/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +func init() { proto.RegisterFile("combos/neither/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 925 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, + 0x18, 0x8d, 0x7f, 0x52, 0x32, 0x5f, 0x14, 0xda, 0x5a, 0x02, 0x99, 0x80, 0x9c, 0x21, 0x6c, 0x86, + 0x56, 0x75, 0x20, 0x89, 0x02, 0x1a, 0x54, 0x28, 0xd6, 0xb4, 0x9d, 0x52, 0x4d, 0xa7, 0x4a, 0xcb, + 0x08, 0x90, 0x40, 0xd8, 0x8d, 0x93, 0x46, 0x38, 0xbe, 0x91, 0x7d, 0x4d, 0x95, 0x1d, 0x8f, 0xc0, + 0x12, 0xc4, 0x86, 0xee, 0x90, 0x60, 0x0f, 0x4b, 0x36, 0x48, 0xdd, 0xc1, 0x13, 0x40, 0x1b, 0x36, + 0x3c, 0x42, 0x97, 0xe8, 0x5e, 0x5f, 0xff, 0xc5, 0xd7, 0x0e, 0x89, 0x34, 0x62, 0xd3, 0xdd, 0x78, + 0x7c, 0xce, 0xf1, 0xf1, 0xf1, 0xf9, 0xbe, 0x1b, 0x68, 0xde, 0x43, 0x33, 0x0b, 0xf9, 0x1d, 0xd7, + 0x9e, 0xe2, 0xfb, 0xb6, 0xd7, 0xc1, 0x8b, 0xb9, 0xed, 0xeb, 0x73, 0x0f, 0x61, 0xa4, 0x54, 0xe9, + 0x45, 0xf3, 0xd2, 0x64, 0x8a, 0xef, 0x07, 0x96, 0x7e, 0x0f, 0xcd, 0x3a, 0x13, 0x34, 0x41, 0x1d, + 0x7a, 0xd7, 0x0a, 0xc6, 0xf4, 0x8a, 0x5e, 0xd0, 0xbf, 0x42, 0x56, 0x53, 0x9b, 0x20, 0x34, 0x71, + 0xec, 0x04, 0x35, 0x0a, 0x3c, 0x13, 0x4f, 0x91, 0xcb, 0xee, 0xb7, 0x56, 0xef, 0xe3, 0xe9, 0xcc, + 0xf6, 0xb1, 0x39, 0x9b, 0x17, 0x09, 0x3c, 0xf0, 0xcc, 0xf9, 0xdc, 0xf6, 0x98, 0xad, 0xf6, 0x77, + 0x32, 0xc0, 0x4d, 0x17, 0x3d, 0x70, 0xef, 0x12, 0x7b, 0xca, 0x45, 0x90, 0x46, 0x81, 0xa7, 0x0a, + 0xbb, 0xc2, 0x5e, 0xbd, 0xfb, 0x92, 0x1e, 0x92, 0xf5, 0x88, 0xac, 0x1f, 0xb0, 0xa7, 0x0f, 0x09, + 0x4a, 0xb9, 0x00, 0x22, 0xf6, 0x55, 0x91, 0x62, 0x9b, 0x39, 0xec, 0xdd, 0xc8, 0xc9, 0x50, 0xc4, + 0xbe, 0xa2, 0x83, 0x34, 0xb2, 0x1c, 0x55, 0xa2, 0xe0, 0x57, 0xf2, 0xc2, 0x28, 0xb0, 0x1c, 0xfb, + 0xc4, 0x74, 0x02, 0x7b, 0x48, 0x80, 0xca, 0x25, 0x90, 0xc6, 0x0e, 0x56, 0x65, 0x8a, 0x7f, 0x39, + 0x87, 0xbf, 0xe6, 0x20, 0x13, 0x33, 0xf8, 0xd8, 0xc1, 0x04, 0x3e, 0x1d, 0xf4, 0xd5, 0x6a, 0x01, + 0xfc, 0x86, 0x8b, 0x07, 0x7d, 0x06, 0x9f, 0x0e, 0xfa, 0xc4, 0x4d, 0x30, 0xe8, 0xab, 0x67, 0x0a, + 0xdc, 0x7c, 0x98, 0xc6, 0x07, 0x83, 0x3e, 0x95, 0xef, 0x75, 0xd5, 0xe7, 0x8a, 0xe5, 0x7b, 0xdd, + 0x48, 0xbe, 0xd7, 0xa5, 0xf2, 0xbd, 0xae, 0x5a, 0x2b, 0x91, 0x8f, 0xf1, 0x01, 0xc5, 0xcb, 0x16, + 0x42, 0x8e, 0xba, 0x53, 0x10, 0xa5, 0x81, 0x90, 0x13, 0xc2, 0x29, 0x8e, 0xe8, 0xfb, 0xd8, 0x53, + 0xa1, 0x40, 0xff, 0x0e, 0xf6, 0xa6, 0xee, 0x84, 0xe9, 0xfb, 0xd8, 0x53, 0xde, 0x84, 0xaa, 0xb5, + 0xc0, 0xb6, 0xaf, 0xd6, 0x0b, 0x5e, 0xc0, 0x20, 0x77, 0x43, 0x42, 0x88, 0xdc, 0x97, 0xff, 0x79, + 0xd8, 0x12, 0xda, 0xdf, 0x8b, 0x00, 0xb7, 0x09, 0x28, 0x6c, 0xc7, 0x21, 0x9c, 0x77, 0x03, 0xc7, + 0x31, 0x2d, 0xc7, 0x8e, 0xbf, 0x2e, 0xeb, 0x4a, 0xd9, 0xf7, 0xcf, 0x93, 0x94, 0xab, 0x70, 0x2e, + 0xfa, 0x67, 0xd4, 0x29, 0x56, 0xa4, 0x92, 0xd2, 0xe5, 0x28, 0xca, 0xbb, 0xb0, 0x13, 0x17, 0x9e, + 0x75, 0xab, 0xc4, 0x88, 0x21, 0x3f, 0xfa, 0xb3, 0x55, 0x19, 0x26, 0x14, 0xe5, 0x1d, 0xa8, 0x45, + 0x03, 0xc5, 0xaa, 0x56, 0xfc, 0x78, 0xc6, 0x8e, 0x09, 0x2c, 0xa2, 0x9f, 0x44, 0xa8, 0xdd, 0xc1, + 0xa3, 0x30, 0xa0, 0x5b, 0x5b, 0x05, 0x64, 0xc8, 0x5f, 0xff, 0xd5, 0x12, 0x78, 0x31, 0xdd, 0xdc, + 0x22, 0x26, 0x43, 0xfe, 0x86, 0xa8, 0xe5, 0xc3, 0x32, 0x36, 0x0b, 0xab, 0x46, 0x5e, 0x97, 0x1a, + 0x4b, 0x05, 0xf6, 0xde, 0x26, 0x81, 0x51, 0x05, 0x6a, 0x26, 0x26, 0xb5, 0x7f, 0x14, 0xa1, 0x31, + 0xb4, 0xe7, 0xa9, 0x52, 0x7d, 0x00, 0x4a, 0xee, 0xc5, 0x7d, 0x55, 0xd8, 0x95, 0xd6, 0xb4, 0x8a, + 0xc3, 0x52, 0xae, 0x27, 0xf9, 0x47, 0x2e, 0xc8, 0x82, 0x92, 0xca, 0x7b, 0x95, 0xe7, 0x28, 0x57, + 0x00, 0x70, 0x62, 0x46, 0x5a, 0x67, 0x86, 0x75, 0x23, 0xc5, 0x51, 0x2e, 0xc3, 0xce, 0x28, 0xb6, + 0x20, 0xaf, 0xb1, 0x10, 0x35, 0x33, 0x66, 0xb0, 0x72, 0xfd, 0x2c, 0x42, 0x7d, 0x68, 0xcf, 0xe3, + 0x7e, 0xdd, 0xde, 0x2e, 0x2b, 0x56, 0x30, 0x5e, 0x62, 0x47, 0xdb, 0x24, 0xc6, 0x2a, 0xc6, 0xc9, + 0xed, 0x60, 0xc3, 0xdc, 0x92, 0x92, 0xa5, 0xb3, 0x7b, 0x7f, 0xa3, 0xec, 0x92, 0x9a, 0x25, 0xac, + 0xf6, 0x6f, 0x55, 0x68, 0x1c, 0x99, 0xe9, 0x9e, 0x7d, 0xcc, 0x9f, 0x4d, 0x22, 0x7e, 0x51, 0x0f, + 0x4f, 0xea, 0x0c, 0x41, 0xbf, 0xb5, 0x8a, 0xbe, 0xea, 0x62, 0x6f, 0xc1, 0x1b, 0xd3, 0xeb, 0xe9, + 0xc9, 0x0a, 0xc3, 0x7b, 0x8d, 0x2b, 0x99, 0x95, 0xca, 0xef, 0xa3, 0x13, 0xce, 0xbc, 0x87, 0x21, + 0x5e, 0x28, 0xb5, 0x18, 0x81, 0x43, 0x87, 0xf9, 0xd1, 0x3f, 0xc8, 0x8c, 0x2d, 0xd1, 0x6b, 0x73, + 0xf5, 0x32, 0x3a, 0xab, 0x0b, 0xaf, 0xf9, 0x39, 0xbc, 0xc8, 0xcf, 0x44, 0x39, 0x07, 0xd2, 0x17, + 0xf6, 0x82, 0x6e, 0xba, 0xea, 0x90, 0xfc, 0xa9, 0xbc, 0x01, 0xd5, 0x2f, 0xc9, 0x79, 0xf2, 0x1f, + 0x7e, 0x1e, 0x84, 0xc0, 0x7d, 0xf1, 0x6d, 0xa1, 0xf9, 0x11, 0x3c, 0x7f, 0x4a, 0xca, 0x9f, 0xc1, + 0x0b, 0xdc, 0xb0, 0x38, 0x0f, 0xe8, 0x64, 0x1f, 0x50, 0xb2, 0x38, 0x52, 0xfa, 0x27, 0xd0, 0x38, + 0x0d, 0xdd, 0xf6, 0xef, 0x55, 0xa8, 0x1f, 0x99, 0xc9, 0x06, 0xf8, 0xb4, 0xb8, 0xc5, 0xaf, 0x27, + 0x9f, 0x34, 0x82, 0x17, 0x74, 0xb8, 0xf8, 0xc0, 0xb9, 0x91, 0x6f, 0xf2, 0xab, 0x1c, 0xd9, 0x15, + 0x39, 0xee, 0x51, 0xf1, 0x49, 0x61, 0x97, 0xf7, 0x4a, 0x8c, 0xae, 0x34, 0xb0, 0xe0, 0x28, 0xbb, + 0x96, 0xeb, 0xf3, 0x2e, 0x47, 0x33, 0xab, 0xc5, 0x39, 0x8d, 0x9e, 0x35, 0xfa, 0x7f, 0x68, 0xf4, + 0xb7, 0x02, 0x9c, 0x3d, 0x76, 0x6d, 0x34, 0x4e, 0xed, 0xe6, 0xfd, 0x74, 0xed, 0xd6, 0xfe, 0x5e, + 0x3a, 0xcc, 0xec, 0xcc, 0xb7, 0x52, 0x5d, 0x58, 0xe7, 0xe3, 0x30, 0xb5, 0xce, 0x8c, 0xf3, 0xd4, + 0xc7, 0x31, 0xf3, 0x41, 0xf4, 0xda, 0x0f, 0x05, 0x68, 0x50, 0x6f, 0xf1, 0xbc, 0x5d, 0xd9, 0xc8, + 0x59, 0x38, 0x58, 0x59, 0x7f, 0x97, 0x37, 0xf0, 0x17, 0x16, 0x3e, 0xe3, 0xf2, 0x2c, 0x75, 0x74, + 0x4c, 0x1d, 0x11, 0x4d, 0x63, 0xef, 0xf1, 0x13, 0x4d, 0x78, 0xfa, 0x44, 0x13, 0x7e, 0x58, 0x6a, + 0xc2, 0x2f, 0x4b, 0x4d, 0xf8, 0x75, 0xa9, 0x09, 0x8f, 0x96, 0x5a, 0xe5, 0x8f, 0xa5, 0x56, 0x79, + 0xbc, 0xd4, 0x84, 0xa7, 0x4b, 0xad, 0xf2, 0xd5, 0xdf, 0x5a, 0xc5, 0x3a, 0x43, 0xf5, 0x7b, 0xff, + 0x06, 0x00, 0x00, 0xff, 0xff, 0x72, 0x11, 0x02, 0x8e, 0x97, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.proto new file mode 100644 index 00000000..3c26fae2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go new file mode 100644 index 00000000..d4ad3bf3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go @@ -0,0 +1,1734 @@ +// Code generated by protoc-gen-gogo. +// source: combos/neither/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/neither/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go new file mode 100644 index 00000000..b8babe30 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go @@ -0,0 +1,5163 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unmarshaler/types.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + combos/unmarshaler/types.proto + + It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *KnownTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KnownTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dur == nil { + m.Dur = &google_protobuf1.Duration{} + } + if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ts == nil { + m.Ts = &google_protobuf2.Timestamp{} + } + if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dbl == nil { + m.Dbl = &google_protobuf3.DoubleValue{} + } + if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Flt == nil { + m.Flt = &google_protobuf3.FloatValue{} + } + if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I64 == nil { + m.I64 = &google_protobuf3.Int64Value{} + } + if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U64 == nil { + m.U64 = &google_protobuf3.UInt64Value{} + } + if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I32 == nil { + m.I32 = &google_protobuf3.Int32Value{} + } + if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U32 == nil { + m.U32 = &google_protobuf3.UInt32Value{} + } + if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bool == nil { + m.Bool = &google_protobuf3.BoolValue{} + } + if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Str == nil { + m.Str = &google_protobuf3.StringValue{} + } + if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bytes == nil { + m.Bytes = &google_protobuf3.BytesValue{} + } + if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = &google_protobuf2.Timestamp{} + } + if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = &google_protobuf1.Duration{} + } + if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = new(time.Duration) + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) + if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) + if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) + if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, google_protobuf1.Duration{}) + if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, new(time.Duration)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, time.Time{}) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, time.Duration(0)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf2.Timestamp + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf2.Timestamp + m.Timestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf1.Duration + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf1.Duration + m.Duration[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue = new(time.Time) + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Time) + m.Timestamp[mapkey] = *mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue = new(time.Duration) + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Duration) + m.Duration[mapkey] = *mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf2.Timestamp{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf1.Duration{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypes(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypes + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypes(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/unmarshaler/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 928 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, + 0x18, 0x8d, 0x7f, 0x52, 0x32, 0x5f, 0x14, 0xda, 0x5a, 0x02, 0x99, 0x80, 0x9c, 0x21, 0x6c, 0x86, + 0x56, 0x75, 0x20, 0x89, 0x02, 0x1a, 0x54, 0x28, 0xd6, 0xb4, 0x9d, 0x52, 0x4d, 0xa7, 0x4a, 0xcb, + 0x08, 0x90, 0x40, 0xd8, 0x8d, 0x93, 0x46, 0x38, 0xbe, 0x91, 0x7d, 0x4d, 0x95, 0x1d, 0x8f, 0xc0, + 0x12, 0xc4, 0x86, 0xee, 0x90, 0x60, 0x0f, 0x4b, 0x36, 0x48, 0xdd, 0xc1, 0x13, 0x40, 0x1b, 0x36, + 0x3c, 0x42, 0x97, 0xe8, 0x5e, 0x5f, 0xff, 0xc5, 0xd7, 0x0e, 0x89, 0x34, 0x62, 0xd3, 0xdd, 0x78, + 0x7c, 0xce, 0xf1, 0xf1, 0xf1, 0xf9, 0xbe, 0x1b, 0xd0, 0xee, 0xa1, 0x99, 0x85, 0xfc, 0x4e, 0xe0, + 0xce, 0x4c, 0xcf, 0xbf, 0x6f, 0x3a, 0xb6, 0xd7, 0xc1, 0x8b, 0xb9, 0xed, 0xeb, 0x73, 0x0f, 0x61, + 0xa4, 0x54, 0xe9, 0x45, 0xf3, 0xd2, 0x64, 0x8a, 0xef, 0x07, 0x96, 0x7e, 0x0f, 0xcd, 0x3a, 0x13, + 0x34, 0x41, 0x1d, 0x7a, 0xd7, 0x0a, 0xc6, 0xf4, 0x8a, 0x5e, 0xd0, 0xbf, 0x42, 0x56, 0x53, 0x9b, + 0x20, 0x34, 0x71, 0xec, 0x04, 0x35, 0x0a, 0x3c, 0x13, 0x4f, 0x91, 0xcb, 0xee, 0xb7, 0x56, 0xef, + 0xe3, 0xe9, 0xcc, 0xf6, 0xb1, 0x39, 0x9b, 0x17, 0x09, 0x3c, 0xf0, 0xcc, 0xf9, 0xdc, 0xf6, 0x98, + 0xad, 0xf6, 0x77, 0x32, 0xc0, 0x4d, 0x17, 0x3d, 0x70, 0xef, 0x12, 0x7b, 0xca, 0x45, 0x90, 0x46, + 0x81, 0xa7, 0x0a, 0xbb, 0xc2, 0x5e, 0xbd, 0xfb, 0x92, 0x1e, 0x92, 0xf5, 0x88, 0xac, 0x1f, 0xb0, + 0xa7, 0x0f, 0x09, 0x4a, 0xb9, 0x00, 0x22, 0xf6, 0x55, 0x91, 0x62, 0x9b, 0x39, 0xec, 0xdd, 0xc8, + 0xc9, 0x50, 0xc4, 0xbe, 0xa2, 0x83, 0x34, 0xb2, 0x1c, 0x55, 0xa2, 0xe0, 0x57, 0xf2, 0xc2, 0x28, + 0xb0, 0x1c, 0xfb, 0xc4, 0x74, 0x02, 0x7b, 0x48, 0x80, 0xca, 0x25, 0x90, 0xc6, 0x0e, 0x56, 0x65, + 0x8a, 0x7f, 0x39, 0x87, 0xbf, 0xe6, 0x20, 0x13, 0x33, 0xf8, 0xd8, 0xc1, 0x04, 0x3e, 0x1d, 0xf4, + 0xd5, 0x6a, 0x01, 0xfc, 0x86, 0x8b, 0x07, 0x7d, 0x06, 0x9f, 0x0e, 0xfa, 0xc4, 0x4d, 0x30, 0xe8, + 0xab, 0x67, 0x0a, 0xdc, 0x7c, 0x98, 0xc6, 0x07, 0x83, 0x3e, 0x95, 0xef, 0x75, 0xd5, 0xe7, 0x8a, + 0xe5, 0x7b, 0xdd, 0x48, 0xbe, 0xd7, 0xa5, 0xf2, 0xbd, 0xae, 0x5a, 0x2b, 0x91, 0x8f, 0xf1, 0x01, + 0xc5, 0xcb, 0x16, 0x42, 0x8e, 0xba, 0x53, 0x10, 0xa5, 0x81, 0x90, 0x13, 0xc2, 0x29, 0x8e, 0xe8, + 0xfb, 0xd8, 0x53, 0xa1, 0x40, 0xff, 0x0e, 0xf6, 0xa6, 0xee, 0x84, 0xe9, 0xfb, 0xd8, 0x53, 0xde, + 0x84, 0xaa, 0xb5, 0xc0, 0xb6, 0xaf, 0xd6, 0x0b, 0x5e, 0xc0, 0x20, 0x77, 0x43, 0x42, 0x88, 0xdc, + 0x97, 0xff, 0x79, 0xd8, 0x12, 0xda, 0xdf, 0x8b, 0x00, 0xb7, 0x09, 0x28, 0x6c, 0xc7, 0x21, 0x9c, + 0x77, 0x03, 0xc7, 0x31, 0x2d, 0xc7, 0x8e, 0xbf, 0x2e, 0xeb, 0x4a, 0xd9, 0xf7, 0xcf, 0x93, 0x94, + 0xab, 0x70, 0x2e, 0xfa, 0x67, 0xd4, 0x29, 0x56, 0xa4, 0x92, 0xd2, 0xe5, 0x28, 0xca, 0xbb, 0xb0, + 0x13, 0x17, 0x9e, 0x75, 0xab, 0xc4, 0x88, 0x21, 0x3f, 0xfa, 0xb3, 0x55, 0x19, 0x26, 0x14, 0xe5, + 0x1d, 0xa8, 0x45, 0x03, 0xc5, 0xaa, 0x56, 0xfc, 0x78, 0xc6, 0x8e, 0x09, 0x2c, 0xa2, 0x9f, 0x44, + 0xa8, 0xdd, 0xc1, 0xa3, 0x30, 0xa0, 0x5b, 0x5b, 0x05, 0x64, 0xc8, 0x5f, 0xff, 0xd5, 0x12, 0x78, + 0x31, 0xdd, 0xdc, 0x22, 0x26, 0x43, 0xfe, 0x86, 0xa8, 0xe5, 0xc3, 0x32, 0x36, 0x0b, 0xab, 0x46, + 0x5e, 0x97, 0x1a, 0x4b, 0x05, 0xf6, 0xde, 0x26, 0x81, 0x51, 0x05, 0x6a, 0x26, 0x26, 0xb5, 0x7f, + 0x14, 0xa1, 0x31, 0xb4, 0xe7, 0xa9, 0x52, 0x7d, 0x00, 0x4a, 0xee, 0xc5, 0x7d, 0x55, 0xd8, 0x95, + 0xd6, 0xb4, 0x8a, 0xc3, 0x52, 0xae, 0x27, 0xf9, 0x47, 0x2e, 0xc8, 0x82, 0x92, 0xca, 0x7b, 0x95, + 0xe7, 0x28, 0x57, 0x00, 0x70, 0x62, 0x46, 0x5a, 0x67, 0x86, 0x75, 0x23, 0xc5, 0x51, 0x2e, 0xc3, + 0xce, 0x28, 0xb6, 0x20, 0xaf, 0xb1, 0x10, 0x35, 0x33, 0x66, 0xb0, 0x72, 0xfd, 0x2c, 0x42, 0x7d, + 0x68, 0xcf, 0xe3, 0x7e, 0xdd, 0xde, 0x2e, 0x2b, 0x56, 0x30, 0x5e, 0x62, 0x47, 0xdb, 0x24, 0xc6, + 0x2a, 0xc6, 0xc9, 0xed, 0x60, 0xc3, 0xdc, 0x92, 0x92, 0xa5, 0xb3, 0x7b, 0x7f, 0xa3, 0xec, 0x92, + 0x9a, 0x25, 0xac, 0xf6, 0x6f, 0x55, 0x68, 0x1c, 0x99, 0xe9, 0x9e, 0x7d, 0xcc, 0x9f, 0x4d, 0x22, + 0x7e, 0x51, 0x0f, 0x4f, 0xea, 0x0c, 0x41, 0xbf, 0xb5, 0x8a, 0xbe, 0xea, 0x62, 0x6f, 0xc1, 0x1b, + 0xd3, 0xeb, 0xe9, 0xc9, 0x0a, 0xc3, 0x7b, 0x8d, 0x2b, 0x99, 0x95, 0xca, 0xef, 0xa3, 0x13, 0xce, + 0xbc, 0x87, 0x21, 0x5e, 0x28, 0xb5, 0x18, 0x81, 0x43, 0x87, 0xf9, 0xd1, 0x3f, 0xc8, 0x8c, 0x2d, + 0xd1, 0x6b, 0x73, 0xf5, 0x32, 0x3a, 0xab, 0x0b, 0xaf, 0xf9, 0x39, 0xbc, 0xc8, 0xcf, 0x44, 0x39, + 0x07, 0xd2, 0x17, 0xf6, 0x82, 0x6e, 0xba, 0xea, 0x90, 0xfc, 0xa9, 0xbc, 0x01, 0xd5, 0x2f, 0xc9, + 0x79, 0xf2, 0x1f, 0x7e, 0x1e, 0x84, 0xc0, 0x7d, 0xf1, 0x6d, 0xa1, 0xf9, 0x11, 0x3c, 0x7f, 0x4a, + 0xca, 0x9f, 0xc1, 0x0b, 0xdc, 0xb0, 0x38, 0x0f, 0xe8, 0x64, 0x1f, 0x50, 0xb2, 0x38, 0x52, 0xfa, + 0x27, 0xd0, 0x38, 0x0d, 0xdd, 0xf6, 0xef, 0x55, 0xa8, 0x1f, 0x99, 0xc9, 0x06, 0xf8, 0xb4, 0xb8, + 0xc5, 0xaf, 0x27, 0x9f, 0x34, 0x82, 0x17, 0x74, 0xb8, 0xf8, 0xc0, 0xb9, 0x91, 0x6f, 0xf2, 0xab, + 0x1c, 0xd9, 0x15, 0x39, 0xee, 0x51, 0xf1, 0x49, 0x61, 0x97, 0xf7, 0x4a, 0x8c, 0xae, 0x34, 0xb0, + 0xe0, 0x28, 0xbb, 0x96, 0xeb, 0xf3, 0x2e, 0x47, 0x33, 0xab, 0xc5, 0x39, 0x8d, 0x9e, 0x35, 0xfa, + 0x7f, 0x68, 0xf4, 0xb7, 0x02, 0x9c, 0x3d, 0x76, 0x6d, 0x34, 0x4e, 0xed, 0xe6, 0xfd, 0x74, 0xed, + 0xd6, 0xfe, 0x5e, 0x3a, 0xcc, 0xec, 0xcc, 0xb7, 0x52, 0x5d, 0x58, 0xe7, 0xe3, 0x30, 0xb5, 0xce, + 0x8c, 0xf3, 0xd4, 0xc7, 0x31, 0xf3, 0x41, 0xf4, 0xda, 0x0f, 0x05, 0x68, 0x50, 0x6f, 0xf1, 0xbc, + 0x5d, 0xd9, 0xc8, 0x59, 0x38, 0x58, 0x59, 0x7f, 0x97, 0x37, 0xf0, 0x17, 0x16, 0x3e, 0xe3, 0xf2, + 0x2c, 0x75, 0x74, 0x4c, 0x1d, 0x11, 0x4d, 0x63, 0xef, 0xf1, 0x13, 0x4d, 0x78, 0xfa, 0x44, 0x13, + 0x7e, 0x58, 0x6a, 0xc2, 0x2f, 0x4b, 0x4d, 0xf8, 0x75, 0xa9, 0x09, 0x8f, 0x96, 0x5a, 0xe5, 0x8f, + 0xa5, 0x26, 0x3c, 0x5e, 0x6a, 0xc2, 0xd3, 0xa5, 0x56, 0xf9, 0xea, 0x6f, 0xad, 0x62, 0x9d, 0xa1, + 0xfa, 0xbd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd2, 0xea, 0x00, 0x6a, 0x9b, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto new file mode 100644 index 00000000..0fd0bb6a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go new file mode 100644 index 00000000..dd2e6e5c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go @@ -0,0 +1,1734 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unmarshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/unmarshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go new file mode 100644 index 00000000..f1867b2f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go @@ -0,0 +1,5910 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafeboth/types.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + combos/unsafeboth/types.proto + + It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *KnownTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KnownTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Dur != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) + n1, err := m.Dur.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.Ts != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) + n2, err := m.Ts.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Dbl != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) + n3, err := m.Dbl.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.Flt != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) + n4, err := m.Flt.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.I64 != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) + n5, err := m.I64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.U64 != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) + n6, err := m.U64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.I32 != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) + n7, err := m.I32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } + if m.U32 != nil { + dAtA[i] = 0x42 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) + n8, err := m.U32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.Bool != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) + n9, err := m.Bool.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + if m.Str != nil { + dAtA[i] = 0x52 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) + n10, err := m.Str.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.Bytes != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) + n11, err := m.Bytes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + +func (m *ProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) + n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) + n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n14, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n15, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + return i, nil +} + +func (m *StdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) + n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) + n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + return i, nil +} + +func (m *RepProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RepStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *MapProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n20, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n21, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n22, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n23, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + } + return i, nil +} + +func (m *MapStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) + n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) + n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) + n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) + n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + } + return i, nil +} + +func (m *OneofProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfProtoTimes != nil { + nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn28 + } + return i, nil +} + +func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n29, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } + return i, nil +} +func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n30, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + } + return i, nil +} +func (m *OneofStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfStdTimes != nil { + nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn31 + } + return i, nil +} + +func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) + n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + } + return i, nil +} +func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) + n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } + return i, nil +} +func encodeFixed64Types(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Types(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *KnownTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KnownTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dur == nil { + m.Dur = &google_protobuf1.Duration{} + } + if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ts == nil { + m.Ts = &google_protobuf2.Timestamp{} + } + if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dbl == nil { + m.Dbl = &google_protobuf3.DoubleValue{} + } + if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Flt == nil { + m.Flt = &google_protobuf3.FloatValue{} + } + if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I64 == nil { + m.I64 = &google_protobuf3.Int64Value{} + } + if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U64 == nil { + m.U64 = &google_protobuf3.UInt64Value{} + } + if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I32 == nil { + m.I32 = &google_protobuf3.Int32Value{} + } + if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U32 == nil { + m.U32 = &google_protobuf3.UInt32Value{} + } + if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bool == nil { + m.Bool = &google_protobuf3.BoolValue{} + } + if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Str == nil { + m.Str = &google_protobuf3.StringValue{} + } + if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bytes == nil { + m.Bytes = &google_protobuf3.BytesValue{} + } + if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = &google_protobuf2.Timestamp{} + } + if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = &google_protobuf1.Duration{} + } + if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = new(time.Duration) + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) + if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) + if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) + if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, google_protobuf1.Duration{}) + if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, new(time.Duration)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, time.Time{}) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, time.Duration(0)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf2.Timestamp + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf2.Timestamp + m.Timestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf1.Duration + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf1.Duration + m.Duration[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue = new(time.Time) + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Time) + m.Timestamp[mapkey] = *mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue = new(time.Duration) + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Duration) + m.Duration[mapkey] = *mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf2.Timestamp{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf1.Duration{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypesUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypesUnsafe + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypesUnsafe(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypesUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypesUnsafe = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/unsafeboth/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 928 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x8f, 0xdb, 0x44, + 0x1c, 0xdd, 0xb1, 0x9d, 0xb2, 0xfb, 0x5b, 0x2d, 0x6d, 0x2d, 0x81, 0x4c, 0x00, 0x67, 0x09, 0x97, + 0xa5, 0x55, 0x1d, 0x48, 0xa2, 0x80, 0x16, 0x15, 0x8a, 0xb5, 0x6d, 0xb7, 0x54, 0xdb, 0xad, 0xd2, + 0xb2, 0x02, 0x24, 0x10, 0x76, 0xe3, 0xa4, 0x11, 0x8e, 0x27, 0xb2, 0xc7, 0x54, 0xb9, 0xf1, 0x11, + 0x38, 0x82, 0xb8, 0xd0, 0x1b, 0x12, 0xdc, 0xe1, 0xc8, 0x05, 0xa9, 0x37, 0xf8, 0x04, 0xd0, 0x86, + 0x0b, 0x1f, 0xa1, 0x47, 0x34, 0xe3, 0xf1, 0xbf, 0x78, 0xec, 0x90, 0x48, 0x2b, 0x2e, 0xdc, 0xd6, + 0xeb, 0xf7, 0x9e, 0x9f, 0x9f, 0xdf, 0xef, 0x37, 0x81, 0x97, 0xef, 0xe1, 0x89, 0x8d, 0x83, 0x56, + 0xe8, 0x05, 0xd6, 0xd0, 0xb1, 0x31, 0xb9, 0xdf, 0x22, 0xb3, 0xa9, 0x13, 0x18, 0x53, 0x1f, 0x13, + 0xac, 0xd6, 0xd8, 0x45, 0xfd, 0xd2, 0x68, 0x4c, 0xee, 0x87, 0xb6, 0x71, 0x0f, 0x4f, 0x5a, 0x23, + 0x3c, 0xc2, 0x2d, 0x76, 0xd7, 0x0e, 0x87, 0xec, 0x8a, 0x5d, 0xb0, 0xbf, 0x22, 0x56, 0x5d, 0x1f, + 0x61, 0x3c, 0x72, 0x9d, 0x14, 0x35, 0x08, 0x7d, 0x8b, 0x8c, 0xb1, 0xc7, 0xef, 0x37, 0x16, 0xef, + 0x93, 0xf1, 0xc4, 0x09, 0x88, 0x35, 0x99, 0x96, 0x09, 0x3c, 0xf0, 0xad, 0xe9, 0xd4, 0xf1, 0xb9, + 0xad, 0xe6, 0xb7, 0x0a, 0xc0, 0x4d, 0x0f, 0x3f, 0xf0, 0xee, 0x52, 0x7b, 0xea, 0x45, 0x90, 0x07, + 0xa1, 0xaf, 0xa1, 0x5d, 0xb4, 0xb7, 0xdd, 0x7e, 0xc1, 0x88, 0xc8, 0x46, 0x4c, 0x36, 0x0e, 0xf8, + 0xd3, 0xfb, 0x14, 0xa5, 0x5e, 0x00, 0x89, 0x04, 0x9a, 0xc4, 0xb0, 0xf5, 0x02, 0xf6, 0x6e, 0xec, + 0xa4, 0x2f, 0x91, 0x40, 0x35, 0x40, 0x1e, 0xd8, 0xae, 0x26, 0x33, 0xf0, 0x4b, 0x45, 0x61, 0x1c, + 0xda, 0xae, 0x73, 0x62, 0xb9, 0xa1, 0xd3, 0xa7, 0x40, 0xf5, 0x12, 0xc8, 0x43, 0x97, 0x68, 0x0a, + 0xc3, 0xbf, 0x58, 0xc0, 0x5f, 0x73, 0xb1, 0x45, 0x38, 0x7c, 0xe8, 0x12, 0x0a, 0x1f, 0xf7, 0xba, + 0x5a, 0xad, 0x04, 0x7e, 0xc3, 0x23, 0xbd, 0x2e, 0x87, 0x8f, 0x7b, 0x5d, 0xea, 0x26, 0xec, 0x75, + 0xb5, 0x33, 0x25, 0x6e, 0x3e, 0xc8, 0xe2, 0xc3, 0x5e, 0x97, 0xc9, 0x77, 0xda, 0xda, 0x33, 0xe5, + 0xf2, 0x9d, 0x76, 0x2c, 0xdf, 0x69, 0x33, 0xf9, 0x4e, 0x5b, 0xdb, 0xac, 0x90, 0x4f, 0xf0, 0x21, + 0xc3, 0x2b, 0x36, 0xc6, 0xae, 0xb6, 0x55, 0x12, 0xa5, 0x89, 0xb1, 0x1b, 0xc1, 0x19, 0x8e, 0xea, + 0x07, 0xc4, 0xd7, 0xa0, 0x44, 0xff, 0x0e, 0xf1, 0xc7, 0xde, 0x88, 0xeb, 0x07, 0xc4, 0x57, 0xdf, + 0x80, 0x9a, 0x3d, 0x23, 0x4e, 0xa0, 0x6d, 0x97, 0xbc, 0x80, 0x49, 0xef, 0x46, 0x84, 0x08, 0xb9, + 0xaf, 0xfc, 0xfd, 0xb0, 0x81, 0x9a, 0xdf, 0x49, 0x00, 0xb7, 0x29, 0x28, 0x6a, 0xc7, 0x21, 0x9c, + 0xf7, 0x42, 0xd7, 0xb5, 0x6c, 0xd7, 0x49, 0xbe, 0x2e, 0xef, 0x4a, 0xd5, 0xf7, 0x2f, 0x92, 0xd4, + 0xab, 0x70, 0x2e, 0xfe, 0x67, 0xdc, 0x29, 0x5e, 0xa4, 0x8a, 0xd2, 0x15, 0x28, 0xea, 0x3b, 0xb0, + 0x95, 0x14, 0x9e, 0x77, 0xab, 0xc2, 0x88, 0xa9, 0x3c, 0xfa, 0xa3, 0xb1, 0xd1, 0x4f, 0x29, 0xea, + 0xdb, 0xb0, 0x19, 0x0f, 0x14, 0xaf, 0x5a, 0xf9, 0xe3, 0x39, 0x3b, 0x21, 0xf0, 0x88, 0x7e, 0x94, + 0x60, 0xf3, 0x0e, 0x19, 0x44, 0x01, 0xdd, 0x5a, 0x2b, 0x20, 0x53, 0xf9, 0xea, 0xcf, 0x06, 0x12, + 0xc5, 0x74, 0x73, 0x8d, 0x98, 0x4c, 0xe5, 0x6b, 0xaa, 0x56, 0x0c, 0xcb, 0x5c, 0x2d, 0xac, 0x4d, + 0xfa, 0xba, 0xcc, 0x58, 0x26, 0xb0, 0x77, 0x57, 0x09, 0x8c, 0x29, 0x30, 0x33, 0x09, 0xa9, 0xf9, + 0x83, 0x04, 0x3b, 0x7d, 0x67, 0x9a, 0x29, 0xd5, 0xfb, 0xa0, 0x16, 0x5e, 0x3c, 0xd0, 0xd0, 0xae, + 0xbc, 0xa4, 0x55, 0x02, 0x96, 0x7a, 0x3d, 0xcd, 0x3f, 0x76, 0x41, 0x17, 0x94, 0x5c, 0xdd, 0xab, + 0x22, 0x47, 0xbd, 0x02, 0x40, 0x52, 0x33, 0xf2, 0x32, 0x33, 0xbc, 0x1b, 0x19, 0x8e, 0x7a, 0x19, + 0xb6, 0x06, 0x89, 0x05, 0x65, 0x89, 0x85, 0xb8, 0x99, 0x09, 0x83, 0x97, 0xeb, 0x27, 0x09, 0xb6, + 0xfb, 0xce, 0x34, 0xe9, 0xd7, 0xed, 0xf5, 0xb2, 0xe2, 0x05, 0x13, 0x25, 0x76, 0xb4, 0x4e, 0x62, + 0xbc, 0x62, 0x82, 0xdc, 0x0e, 0x56, 0xcc, 0x2d, 0x2d, 0x59, 0x36, 0xbb, 0xf7, 0x56, 0xca, 0x2e, + 0xad, 0x59, 0xca, 0x6a, 0xfe, 0x5a, 0x83, 0x9d, 0x23, 0x2b, 0xdb, 0xb3, 0x8f, 0xc4, 0xb3, 0x49, + 0xc5, 0x2f, 0x1a, 0xd1, 0x49, 0x9d, 0x23, 0x18, 0xb7, 0x16, 0xd1, 0x57, 0x3d, 0xe2, 0xcf, 0x44, + 0x63, 0x7a, 0x3d, 0x3b, 0x59, 0x51, 0x78, 0xaf, 0x0a, 0x25, 0xf3, 0x52, 0xc5, 0x7d, 0x74, 0x22, + 0x98, 0xf7, 0x28, 0xc4, 0x0b, 0x95, 0x16, 0x63, 0x70, 0xe4, 0xb0, 0x38, 0xfa, 0x07, 0xb9, 0xb1, + 0xa5, 0x7a, 0x4d, 0xa1, 0x5e, 0x4e, 0x67, 0x71, 0xe1, 0xd5, 0x3f, 0x83, 0xe7, 0xc5, 0x99, 0xa8, + 0xe7, 0x40, 0xfe, 0xdc, 0x99, 0xb1, 0x4d, 0x57, 0xeb, 0xd3, 0x3f, 0xd5, 0xd7, 0xa1, 0xf6, 0x05, + 0x3d, 0x4f, 0xfe, 0xc5, 0xcf, 0x83, 0x08, 0xb8, 0x2f, 0xbd, 0x85, 0xea, 0x1f, 0xc2, 0xb3, 0xa7, + 0xa4, 0xfc, 0x29, 0x3c, 0x27, 0x0c, 0x4b, 0xf0, 0x80, 0x56, 0xfe, 0x01, 0x15, 0x8b, 0x23, 0xa3, + 0x7f, 0x02, 0x3b, 0xa7, 0xa1, 0xdb, 0xfc, 0xad, 0x06, 0xdb, 0x47, 0x56, 0xba, 0x01, 0x3e, 0x29, + 0x6f, 0xf1, 0x6b, 0xe9, 0x27, 0x8d, 0xe1, 0x25, 0x1d, 0x2e, 0x3f, 0x70, 0x6e, 0x14, 0x9b, 0xfc, + 0x8a, 0x40, 0x76, 0x41, 0x4e, 0x78, 0x54, 0x7c, 0x5c, 0xda, 0xe5, 0xbd, 0x0a, 0xa3, 0x0b, 0x0d, + 0x2c, 0x39, 0xca, 0xae, 0x15, 0xfa, 0xbc, 0x2b, 0xd0, 0xcc, 0x6b, 0x09, 0x4e, 0xa3, 0xff, 0x1b, + 0xfd, 0x1f, 0x34, 0xfa, 0x1b, 0x04, 0x67, 0x8f, 0x3d, 0x07, 0x0f, 0x33, 0xbb, 0x79, 0x3f, 0x5b, + 0xbb, 0xa5, 0xbf, 0x97, 0x0e, 0x73, 0x3b, 0xf3, 0xcd, 0x4c, 0x17, 0x96, 0xf9, 0x38, 0xcc, 0xac, + 0x33, 0xf3, 0x3c, 0xf3, 0x71, 0xcc, 0x7d, 0x50, 0xbd, 0xe6, 0x43, 0x04, 0x3b, 0xcc, 0x5b, 0x32, + 0x6f, 0x57, 0x56, 0x72, 0x16, 0x0d, 0x56, 0xde, 0xdf, 0xe5, 0x15, 0xfc, 0x45, 0x85, 0xcf, 0xb9, + 0x3c, 0xcb, 0x1c, 0x1d, 0x33, 0x47, 0x54, 0xd3, 0xdc, 0x7b, 0xfc, 0x44, 0x47, 0x4f, 0x9f, 0xe8, + 0xe8, 0xfb, 0xb9, 0x8e, 0x7e, 0x9e, 0xeb, 0xe8, 0x97, 0xb9, 0x8e, 0x1e, 0xcd, 0xf5, 0x8d, 0xdf, + 0xe7, 0xfa, 0xc6, 0xe3, 0xb9, 0x8e, 0x9e, 0xce, 0x75, 0xf4, 0xe5, 0x5f, 0x3a, 0xb2, 0xcf, 0x30, + 0xfd, 0xce, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, 0x8b, 0x21, 0xfb, 0x9a, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto new file mode 100644 index 00000000..475345b5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = true; +option (gogoproto.unsafe_unmarshaler_all) = true; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go new file mode 100644 index 00000000..26c3faa8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go @@ -0,0 +1,2107 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafeboth/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/unsafeboth/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import unsafe "unsafe" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKnownTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go new file mode 100644 index 00000000..7f3c4dae --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go @@ -0,0 +1,3476 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafemarshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/unsafemarshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *KnownTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KnownTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Dur != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) + n1, err := m.Dur.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + if m.Ts != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) + n2, err := m.Ts.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } + if m.Dbl != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) + n3, err := m.Dbl.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + if m.Flt != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) + n4, err := m.Flt.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.I64 != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) + n5, err := m.I64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.U64 != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) + n6, err := m.U64.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.I32 != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) + n7, err := m.I32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } + if m.U32 != nil { + dAtA[i] = 0x42 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) + n8, err := m.U32.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.Bool != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) + n9, err := m.Bool.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + if m.Str != nil { + dAtA[i] = 0x52 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) + n10, err := m.Str.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.Bytes != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) + n11, err := m.Bytes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + +func (m *ProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) + n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) + n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n14, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n15, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + return i, nil +} + +func (m *StdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.NullableTimestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + } + if m.NullableDuration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) + n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) + n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) + n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + return i, nil +} + +func (m *RepProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RepStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, msg := range m.NullableTimestamps { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.NullableDurations) > 0 { + for _, msg := range m.NullableDurations { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Timestamps) > 0 { + for _, msg := range m.Timestamps { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) + n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Durations) > 0 { + for _, msg := range m.Durations { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) + n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *MapProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n20, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n21, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(v.Size())) + n22, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = (&v).Size() + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) + n23, err := (&v).MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + } + return i, nil +} + +func (m *MapStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k := range m.NullableTimestamp { + dAtA[i] = 0xa + i++ + v := m.NullableTimestamp[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) + n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + } + } + if len(m.Timestamp) > 0 { + for k := range m.Timestamp { + dAtA[i] = 0x12 + i++ + v := m.Timestamp[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) + n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } + } + if len(m.NullableDuration) > 0 { + for k := range m.NullableDuration { + dAtA[i] = 0x1a + i++ + v := m.NullableDuration[k] + msgSize := 0 + if v != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) + n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + } + } + if len(m.Duration) > 0 { + for k := range m.Duration { + dAtA[i] = 0x22 + i++ + v := m.Duration[k] + msgSize := 0 + if (&v) != nil { + msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize += 1 + sovTypes(uint64(msgSize)) + } + mapSize := 1 + sovTypes(uint64(k)) + msgSize + i = encodeVarintTypes(dAtA, i, uint64(mapSize)) + dAtA[i] = 0x8 + i++ + i = encodeVarintTypes(dAtA, i, uint64(k)) + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) + n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + } + return i, nil +} + +func (m *OneofProtoTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfProtoTimes != nil { + nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn28 + } + return i, nil +} + +func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) + n29, err := m.Timestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } + return i, nil +} +func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) + n30, err := m.Duration.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + } + return i, nil +} +func (m *OneofStdTypes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OneOfStdTimes != nil { + nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn31 + } + return i, nil +} + +func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Timestamp != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) + n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + } + return i, nil +} +func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.Duration != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) + n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } + return i, nil +} +func encodeFixed64Types(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Types(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} + +func init() { proto.RegisterFile("combos/unsafemarshaler/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 931 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, + 0x18, 0x1d, 0xff, 0xa4, 0xcc, 0x7c, 0x51, 0x68, 0x6b, 0x09, 0x64, 0x02, 0x72, 0x06, 0xb3, 0x19, + 0x5a, 0xd5, 0x81, 0x24, 0x0a, 0x68, 0x50, 0xa1, 0x58, 0xd3, 0x76, 0x4a, 0x35, 0x9d, 0x2a, 0x2d, + 0x23, 0x40, 0x02, 0x61, 0x37, 0x4e, 0x1a, 0xe1, 0xf8, 0x46, 0xf6, 0x35, 0x55, 0x76, 0x3c, 0x02, + 0x4b, 0x10, 0x1b, 0xba, 0x43, 0x82, 0x3d, 0x2c, 0xd9, 0x20, 0x75, 0x07, 0x4f, 0x00, 0x6d, 0xd8, + 0xf0, 0x08, 0x5d, 0xa2, 0x7b, 0x7d, 0xfd, 0x17, 0x5f, 0x3b, 0x24, 0xd2, 0x88, 0x4d, 0x77, 0xe3, + 0xf1, 0x39, 0xc7, 0xc7, 0xc7, 0xe7, 0xfb, 0x6e, 0x40, 0xbf, 0x87, 0xa6, 0x36, 0x0a, 0xda, 0xa1, + 0x17, 0x58, 0x23, 0x67, 0x6a, 0xf9, 0xc1, 0x7d, 0xcb, 0x75, 0xfc, 0x36, 0x9e, 0xcf, 0x9c, 0xc0, + 0x98, 0xf9, 0x08, 0x23, 0xa5, 0x46, 0x2f, 0x9a, 0x97, 0xc6, 0x13, 0x7c, 0x3f, 0xb4, 0x8d, 0x7b, + 0x68, 0xda, 0x1e, 0xa3, 0x31, 0x6a, 0xd3, 0xbb, 0x76, 0x38, 0xa2, 0x57, 0xf4, 0x82, 0xfe, 0x15, + 0xb1, 0x9a, 0xda, 0x18, 0xa1, 0xb1, 0xeb, 0xa4, 0xa8, 0x61, 0xe8, 0x5b, 0x78, 0x82, 0x3c, 0x76, + 0xbf, 0xb5, 0x7c, 0x1f, 0x4f, 0xa6, 0x4e, 0x80, 0xad, 0xe9, 0xac, 0x4c, 0xe0, 0x81, 0x6f, 0xcd, + 0x66, 0x8e, 0xcf, 0x6c, 0xe9, 0xdf, 0xc9, 0x00, 0x37, 0x3d, 0xf4, 0xc0, 0xbb, 0x4b, 0xec, 0x29, + 0x17, 0x41, 0x1a, 0x86, 0xbe, 0x2a, 0xec, 0x0a, 0x7b, 0xf5, 0xce, 0x4b, 0x46, 0x44, 0x36, 0x62, + 0xb2, 0x71, 0xc0, 0x9e, 0x3e, 0x20, 0x28, 0xe5, 0x02, 0x88, 0x38, 0x50, 0x45, 0x8a, 0x6d, 0x16, + 0xb0, 0x77, 0x63, 0x27, 0x03, 0x11, 0x07, 0x8a, 0x01, 0xd2, 0xd0, 0x76, 0x55, 0x89, 0x82, 0x5f, + 0x29, 0x0a, 0xa3, 0xd0, 0x76, 0x9d, 0x13, 0xcb, 0x0d, 0x9d, 0x01, 0x01, 0x2a, 0x97, 0x40, 0x1a, + 0xb9, 0x58, 0x95, 0x29, 0xfe, 0xe5, 0x02, 0xfe, 0x9a, 0x8b, 0x2c, 0xcc, 0xe0, 0x23, 0x17, 0x13, + 0xf8, 0xa4, 0xdf, 0x53, 0x6b, 0x25, 0xf0, 0x1b, 0x1e, 0xee, 0xf7, 0x18, 0x7c, 0xd2, 0xef, 0x11, + 0x37, 0x61, 0xbf, 0xa7, 0x9e, 0x29, 0x71, 0xf3, 0x61, 0x16, 0x1f, 0xf6, 0x7b, 0x54, 0xbe, 0xdb, + 0x51, 0x9f, 0x2b, 0x97, 0xef, 0x76, 0x62, 0xf9, 0x6e, 0x87, 0xca, 0x77, 0x3b, 0xea, 0x76, 0x85, + 0x7c, 0x82, 0x0f, 0x29, 0x5e, 0xb6, 0x11, 0x72, 0xd5, 0x9d, 0x92, 0x28, 0x4d, 0x84, 0xdc, 0x08, + 0x4e, 0x71, 0x44, 0x3f, 0xc0, 0xbe, 0x0a, 0x25, 0xfa, 0x77, 0xb0, 0x3f, 0xf1, 0xc6, 0x4c, 0x3f, + 0xc0, 0xbe, 0xf2, 0x26, 0xd4, 0xec, 0x39, 0x76, 0x02, 0xb5, 0x5e, 0xf2, 0x02, 0x26, 0xb9, 0x1b, + 0x11, 0x22, 0xe4, 0xbe, 0xfc, 0xcf, 0xc3, 0x96, 0xa0, 0x7f, 0x2f, 0x02, 0xdc, 0x26, 0xa0, 0xa8, + 0x1d, 0x87, 0x70, 0xde, 0x0b, 0x5d, 0xd7, 0xb2, 0x5d, 0x27, 0xf9, 0xba, 0xac, 0x2b, 0x55, 0xdf, + 0xbf, 0x48, 0x52, 0xae, 0xc2, 0xb9, 0xf8, 0x9f, 0x71, 0xa7, 0x58, 0x91, 0x2a, 0x4a, 0x57, 0xa0, + 0x28, 0xef, 0xc2, 0x4e, 0x52, 0x78, 0xd6, 0xad, 0x0a, 0x23, 0xa6, 0xfc, 0xe8, 0xcf, 0xd6, 0xd6, + 0x20, 0xa5, 0x28, 0xef, 0xc0, 0x76, 0x3c, 0x50, 0xac, 0x6a, 0xe5, 0x8f, 0x67, 0xec, 0x84, 0xc0, + 0x22, 0xfa, 0x49, 0x84, 0xed, 0x3b, 0x78, 0x18, 0x05, 0x74, 0x6b, 0xa3, 0x80, 0x4c, 0xf9, 0xeb, + 0xbf, 0x5a, 0x02, 0x2f, 0xa6, 0x9b, 0x1b, 0xc4, 0x64, 0xca, 0xdf, 0x10, 0xb5, 0x62, 0x58, 0xe6, + 0x7a, 0x61, 0x6d, 0x93, 0xd7, 0xa5, 0xc6, 0x32, 0x81, 0xbd, 0xb7, 0x4e, 0x60, 0x54, 0x81, 0x9a, + 0x49, 0x48, 0xfa, 0x8f, 0x22, 0x34, 0x06, 0xce, 0x2c, 0x53, 0xaa, 0x0f, 0x40, 0x29, 0xbc, 0x78, + 0xa0, 0x0a, 0xbb, 0xd2, 0x8a, 0x56, 0x71, 0x58, 0xca, 0xf5, 0x34, 0xff, 0xd8, 0x05, 0x59, 0x50, + 0x52, 0x75, 0xaf, 0x8a, 0x1c, 0xe5, 0x0a, 0x00, 0x4e, 0xcd, 0x48, 0xab, 0xcc, 0xb0, 0x6e, 0x64, + 0x38, 0xca, 0x65, 0xd8, 0x19, 0x26, 0x16, 0xe4, 0x15, 0x16, 0xe2, 0x66, 0x26, 0x0c, 0x56, 0xae, + 0x9f, 0x45, 0xa8, 0x0f, 0x9c, 0x59, 0xd2, 0xaf, 0xdb, 0x9b, 0x65, 0xc5, 0x0a, 0xc6, 0x4b, 0xec, + 0x68, 0x93, 0xc4, 0x58, 0xc5, 0x38, 0xb9, 0x1d, 0xac, 0x99, 0x5b, 0x5a, 0xb2, 0x6c, 0x76, 0xef, + 0xaf, 0x95, 0x5d, 0x5a, 0xb3, 0x94, 0xa5, 0xff, 0x56, 0x83, 0xc6, 0x91, 0x95, 0xed, 0xd9, 0xc7, + 0xfc, 0xd9, 0x24, 0xe2, 0x17, 0x8d, 0xe8, 0xa4, 0xce, 0x11, 0x8c, 0x5b, 0xcb, 0xe8, 0xab, 0x1e, + 0xf6, 0xe7, 0xbc, 0x31, 0xbd, 0x9e, 0x9d, 0xac, 0x28, 0xbc, 0xd7, 0xb8, 0x92, 0x79, 0xa9, 0xe2, + 0x3e, 0x3a, 0xe1, 0xcc, 0x7b, 0x14, 0xe2, 0x85, 0x4a, 0x8b, 0x31, 0x38, 0x72, 0x58, 0x1c, 0xfd, + 0x83, 0xdc, 0xd8, 0x12, 0x3d, 0x9d, 0xab, 0x97, 0xd3, 0x59, 0x5e, 0x78, 0xcd, 0xcf, 0xe1, 0x45, + 0x7e, 0x26, 0xca, 0x39, 0x90, 0xbe, 0x70, 0xe6, 0x74, 0xd3, 0xd5, 0x06, 0xe4, 0x4f, 0xe5, 0x0d, + 0xa8, 0x7d, 0x49, 0xce, 0x93, 0xff, 0xf0, 0xf3, 0x20, 0x02, 0xee, 0x8b, 0x6f, 0x0b, 0xcd, 0x8f, + 0xe0, 0xf9, 0x53, 0x52, 0xfe, 0x0c, 0x5e, 0xe0, 0x86, 0xc5, 0x79, 0x40, 0x3b, 0xff, 0x80, 0x8a, + 0xc5, 0x91, 0xd1, 0x3f, 0x81, 0xc6, 0x69, 0xe8, 0xea, 0xbf, 0xd7, 0xa0, 0x7e, 0x64, 0xa5, 0x1b, + 0xe0, 0xd3, 0xf2, 0x16, 0xbf, 0x9e, 0x7e, 0xd2, 0x18, 0x5e, 0xd2, 0xe1, 0xf2, 0x03, 0xe7, 0x46, + 0xb1, 0xc9, 0xaf, 0x72, 0x64, 0x97, 0xe4, 0xb8, 0x47, 0xc5, 0x27, 0xa5, 0x5d, 0xde, 0xab, 0x30, + 0xba, 0xd4, 0xc0, 0x92, 0xa3, 0xec, 0x5a, 0xa1, 0xcf, 0xbb, 0x1c, 0xcd, 0xbc, 0x16, 0xe7, 0x34, + 0x7a, 0xd6, 0xe8, 0xff, 0xa1, 0xd1, 0xdf, 0x0a, 0x70, 0xf6, 0xd8, 0x73, 0xd0, 0x28, 0xb3, 0x9b, + 0xf7, 0xb3, 0xb5, 0x5b, 0xf9, 0x7b, 0xe9, 0x30, 0xb7, 0x33, 0xdf, 0xca, 0x74, 0x61, 0x95, 0x8f, + 0xc3, 0xcc, 0x3a, 0x33, 0xcf, 0x53, 0x1f, 0xc7, 0xcc, 0x07, 0xd1, 0xd3, 0x1f, 0x0a, 0xd0, 0xa0, + 0xde, 0x92, 0x79, 0xbb, 0xb2, 0x96, 0xb3, 0x68, 0xb0, 0xf2, 0xfe, 0x2e, 0xaf, 0xe1, 0x2f, 0x2a, + 0x7c, 0xce, 0xe5, 0x59, 0xea, 0xe8, 0x98, 0x3a, 0x22, 0x9a, 0xe6, 0xde, 0xe3, 0x27, 0x9a, 0xf0, + 0xf4, 0x89, 0x26, 0xfc, 0xb0, 0xd0, 0x84, 0x5f, 0x16, 0x9a, 0xf0, 0xeb, 0x42, 0x13, 0x1e, 0x2d, + 0xb4, 0xad, 0x3f, 0x16, 0xda, 0xd6, 0xe3, 0x85, 0x26, 0x3c, 0x5d, 0x68, 0xc2, 0x57, 0x7f, 0x6b, + 0x5b, 0xf6, 0x19, 0xaa, 0xdf, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0x21, 0xfd, 0x82, 0xd3, 0x9f, + 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto new file mode 100644 index 00000000..a15da973 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = true; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go new file mode 100644 index 00000000..00858d00 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go @@ -0,0 +1,2107 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafemarshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/unsafemarshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import unsafe "unsafe" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestKnownTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestRepStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofProtoTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofStdTypesMarshalTo(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go new file mode 100644 index 00000000..76a359e9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go @@ -0,0 +1,5164 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafeunmarshaler/types.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + combos/unsafeunmarshaler/types.proto + + It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" +import google_protobuf3 "github.com/gogo/protobuf/types" + +import time "time" +import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type KnownTypes struct { + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +type ProtoTypes struct { + NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` + NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` + Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` + Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` +} + +func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } +func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } +func (*ProtoTypes) ProtoMessage() {} +func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } + +func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return google_protobuf2.Timestamp{} +} + +func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return google_protobuf1.Duration{} +} + +type StdTypes struct { + NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` + NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` + Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` + Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` +} + +func (m *StdTypes) Reset() { *m = StdTypes{} } +func (m *StdTypes) String() string { return proto.CompactTextString(m) } +func (*StdTypes) ProtoMessage() {} +func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } + +func (m *StdTypes) GetNullableTimestamp() *time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *StdTypes) GetNullableDuration() *time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *StdTypes) GetTimestamp() time.Time { + if m != nil { + return m.Timestamp + } + return time.Time{} +} + +func (m *StdTypes) GetDuration() time.Duration { + if m != nil { + return m.Duration + } + return 0 +} + +type RepProtoTypes struct { + NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` + NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` + Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` + Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` +} + +func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } +func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } +func (*RepProtoTypes) ProtoMessage() {} +func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } + +func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type RepStdTypes struct { + NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` + NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` + Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` + Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` +} + +func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } +func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } +func (*RepStdTypes) ProtoMessage() {} +func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } + +func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { + if m != nil { + return m.NullableTimestamps + } + return nil +} + +func (m *RepStdTypes) GetNullableDurations() []*time.Duration { + if m != nil { + return m.NullableDurations + } + return nil +} + +func (m *RepStdTypes) GetTimestamps() []time.Time { + if m != nil { + return m.Timestamps + } + return nil +} + +func (m *RepStdTypes) GetDurations() []time.Duration { + if m != nil { + return m.Durations + } + return nil +} + +type MapProtoTypes struct { + NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } +func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } +func (*MapProtoTypes) ProtoMessage() {} +func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } + +func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type MapStdTypes struct { + NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` + Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } +func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } +func (*MapStdTypes) ProtoMessage() {} +func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } + +func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { + if m != nil { + return m.NullableTimestamp + } + return nil +} + +func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { + if m != nil { + return m.Timestamp + } + return nil +} + +func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { + if m != nil { + return m.NullableDuration + } + return nil +} + +func (m *MapStdTypes) GetDuration() map[int32]time.Duration { + if m != nil { + return m.Duration + } + return nil +} + +type OneofProtoTypes struct { + // Types that are valid to be assigned to OneOfProtoTimes: + // *OneofProtoTypes_Timestamp + // *OneofProtoTypes_Duration + OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` +} + +func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } +func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } +func (*OneofProtoTypes) ProtoMessage() {} +func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } + +type isOneofProtoTypes_OneOfProtoTimes interface { + isOneofProtoTypes_OneOfProtoTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofProtoTypes_Timestamp struct { + Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` +} +type OneofProtoTypes_Duration struct { + Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` +} + +func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} +func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} + +func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { + if m != nil { + return m.OneOfProtoTimes + } + return nil +} + +func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { + if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ + (*OneofProtoTypes_Timestamp)(nil), + (*OneofProtoTypes_Duration)(nil), + } +} + +func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Timestamp); err != nil { + return err + } + case *OneofProtoTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Duration); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) + } + return nil +} + +func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofProtoTypes) + switch tag { + case 1: // OneOfProtoTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf2.Timestamp) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} + return true, err + case 2: // OneOfProtoTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(google_protobuf1.Duration) + err := b.DecodeMessage(msg) + m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} + return true, err + default: + return false, nil + } +} + +func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofProtoTypes) + // OneOfProtoTimes + switch x := m.OneOfProtoTimes.(type) { + case *OneofProtoTypes_Timestamp: + s := proto.Size(x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofProtoTypes_Duration: + s := proto.Size(x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type OneofStdTypes struct { + // Types that are valid to be assigned to OneOfStdTimes: + // *OneofStdTypes_Timestamp + // *OneofStdTypes_Duration + OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` +} + +func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } +func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } +func (*OneofStdTypes) ProtoMessage() {} +func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } + +type isOneofStdTypes_OneOfStdTimes interface { + isOneofStdTypes_OneOfStdTimes() + Equal(interface{}) bool + VerboseEqual(interface{}) error + Size() int +} + +type OneofStdTypes_Timestamp struct { + Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` +} +type OneofStdTypes_Duration struct { + Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` +} + +func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} +func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} + +func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { + if m != nil { + return m.OneOfStdTimes + } + return nil +} + +func (m *OneofStdTypes) GetTimestamp() *time.Time { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { + return x.Timestamp + } + return nil +} + +func (m *OneofStdTypes) GetDuration() *time.Duration { + if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { + return x.Duration + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ + (*OneofStdTypes_Timestamp)(nil), + (*OneofStdTypes_Duration)(nil), + } +} + +func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + _ = b.EncodeVarint(1<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case *OneofStdTypes_Duration: + _ = b.EncodeVarint(2<<3 | proto.WireBytes) + dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) + if err != nil { + return err + } + if err := b.EncodeRawBytes(dAtA); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) + } + return nil +} + +func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofStdTypes) + switch tag { + case 1: // OneOfStdTimes.timestamp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Time) + if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} + return true, err + case 2: // OneOfStdTimes.duration + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + if err != nil { + return true, err + } + c := new(time.Duration) + if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { + return true, err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{c} + return true, err + default: + return false, nil + } +} + +func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofStdTypes) + // OneOfStdTimes + switch x := m.OneOfStdTimes.(type) { + case *OneofStdTypes_Timestamp: + s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *OneofStdTypes_Duration: + s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) + n += proto.SizeVarint(2<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") + proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") + proto.RegisterType((*StdTypes)(nil), "types.StdTypes") + proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") + proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") + proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") + proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") + proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") + proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") +} +func (this *KnownTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.Dur.Compare(that1.Dur); c != 0 { + return c + } + if c := this.Ts.Compare(that1.Ts); c != 0 { + return c + } + if c := this.Dbl.Compare(that1.Dbl); c != 0 { + return c + } + if c := this.Flt.Compare(that1.Flt); c != 0 { + return c + } + if c := this.I64.Compare(that1.I64); c != 0 { + return c + } + if c := this.U64.Compare(that1.U64); c != 0 { + return c + } + if c := this.I32.Compare(that1.I32); c != 0 { + return c + } + if c := this.U32.Compare(that1.U32); c != 0 { + return c + } + if c := this.Bool.Compare(that1.Bool); c != 0 { + return c + } + if c := this.Str.Compare(that1.Str); c != 0 { + return c + } + if c := this.Bytes.Compare(that1.Bytes); c != 0 { + return c + } + return 0 +} +func (this *ProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { + return c + } + if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { + return c + } + if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { + return c + } + if c := this.Duration.Compare(&that1.Duration); c != 0 { + return c + } + return 0 +} +func (this *RepProtoTypes) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { + return -1 + } + return 1 + } + for i := range this.NullableTimestamps { + if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { + return c + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + if len(this.NullableDurations) < len(that1.NullableDurations) { + return -1 + } + return 1 + } + for i := range this.NullableDurations { + if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { + return c + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + if len(this.Timestamps) < len(that1.Timestamps) { + return -1 + } + return 1 + } + for i := range this.Timestamps { + if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { + return c + } + } + if len(this.Durations) != len(that1.Durations) { + if len(this.Durations) < len(that1.Durations) { + return -1 + } + return 1 + } + for i := range this.Durations { + if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { + return c + } + } + return 0 +} +func (this *KnownTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *KnownTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") + } + if !this.Dur.Equal(that1.Dur) { + return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) + } + if !this.Ts.Equal(that1.Ts) { + return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) + } + if !this.Dbl.Equal(that1.Dbl) { + return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) + } + if !this.Flt.Equal(that1.Flt) { + return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) + } + if !this.I64.Equal(that1.I64) { + return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) + } + if !this.U64.Equal(that1.U64) { + return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) + } + if !this.I32.Equal(that1.I32) { + return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) + } + if !this.U32.Equal(that1.U32) { + return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) + } + if !this.Bool.Equal(that1.Bool) { + return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) + } + if !this.Str.Equal(that1.Str) { + return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) + } + if !this.Bytes.Equal(that1.Bytes) { + return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) + } + return nil +} +func (this *KnownTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*KnownTypes) + if !ok { + that2, ok := that.(KnownTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Dur.Equal(that1.Dur) { + return false + } + if !this.Ts.Equal(that1.Ts) { + return false + } + if !this.Dbl.Equal(that1.Dbl) { + return false + } + if !this.Flt.Equal(that1.Flt) { + return false + } + if !this.I64.Equal(that1.I64) { + return false + } + if !this.U64.Equal(that1.U64) { + return false + } + if !this.I32.Equal(that1.I32) { + return false + } + if !this.U32.Equal(that1.U32) { + return false + } + if !this.Bool.Equal(that1.Bool) { + return false + } + if !this.Str.Equal(that1.Str) { + return false + } + if !this.Bytes.Equal(that1.Bytes) { + return false + } + return true +} +func (this *ProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *ProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if !this.Duration.Equal(&that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *ProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ProtoTypes) + if !ok { + that2, ok := that.(ProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { + return false + } + if !this.NullableDuration.Equal(that1.NullableDuration) { + return false + } + if !this.Timestamp.Equal(&that1.Timestamp) { + return false + } + if !this.Duration.Equal(&that1.Duration) { + return false + } + return true +} +func (this *StdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *StdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *StdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) + } + } else if this.NullableDuration != nil { + return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") + } else if that1.NullableDuration != nil { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + if this.Duration != that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *StdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StdTypes) + if !ok { + that2, ok := that.(StdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.NullableTimestamp == nil { + if this.NullableTimestamp != nil { + return false + } + } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { + return false + } + if this.NullableDuration != nil && that1.NullableDuration != nil { + if *this.NullableDuration != *that1.NullableDuration { + return false + } + } else if this.NullableDuration != nil { + return false + } else if that1.NullableDuration != nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + if this.Duration != that1.Duration { + return false + } + return true +} +func (this *RepProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepProtoTypes) + if !ok { + that2, ok := that.(RepProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if !this.Durations[i].Equal(&that1.Durations[i]) { + return false + } + } + return true +} +func (this *RepStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *RepStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) + } + } + if len(this.Durations) != len(that1.Durations) { + return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) + } + } + return nil +} +func (this *RepStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*RepStdTypes) + if !ok { + that2, ok := that.(RepStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { + return false + } + for i := range this.NullableTimestamps { + if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { + return false + } + } + if len(this.NullableDurations) != len(that1.NullableDurations) { + return false + } + for i := range this.NullableDurations { + if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Timestamps) != len(that1.Timestamps) { + return false + } + for i := range this.Timestamps { + if !this.Timestamps[i].Equal(that1.Timestamps[i]) { + return false + } + } + if len(this.Durations) != len(that1.Durations) { + return false + } + for i := range this.Durations { + if this.Durations[i] != that1.Durations[i] { + return false + } + } + return true +} +func (this *MapProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapProtoTypes) + if !ok { + that2, ok := that.(MapProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + a := this.Timestamp[i] + b := that1.Timestamp[i] + if !(&a).Equal(&b) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + a := this.Duration[i] + b := that1.Duration[i] + if !(&a).Equal(&b) { + return false + } + } + return true +} +func (this *MapStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) + } + } + if len(this.Duration) != len(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) + } + } + return nil +} +func (this *MapStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapStdTypes) + if !ok { + that2, ok := that.(MapStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { + return false + } + for i := range this.NullableTimestamp { + if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { + return false + } + } + if len(this.Timestamp) != len(that1.Timestamp) { + return false + } + for i := range this.Timestamp { + if !this.Timestamp[i].Equal(that1.Timestamp[i]) { + return false + } + } + if len(this.NullableDuration) != len(that1.NullableDuration) { + return false + } + for i := range this.NullableDuration { + if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { + return false + } + } + if len(this.Duration) != len(that1.Duration) { + return false + } + for i := range this.Duration { + if this.Duration[i] != that1.Duration[i] { + return false + } + } + return true +} +func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") + } + } else if this.OneOfProtoTimes == nil { + return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") + } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { + return err + } + return nil +} +func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") + } + if !this.Timestamp.Equal(that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") + } + if !this.Duration.Equal(that1.Duration) { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofProtoTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes) + if !ok { + that2, ok := that.(OneofProtoTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfProtoTimes == nil { + if this.OneOfProtoTimes != nil { + return false + } + } else if this.OneOfProtoTimes == nil { + return false + } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { + return false + } + return true +} +func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Timestamp) + if !ok { + that2, ok := that.(OneofProtoTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Timestamp.Equal(that1.Timestamp) { + return false + } + return true +} +func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofProtoTypes_Duration) + if !ok { + that2, ok := that.(OneofProtoTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Duration.Equal(that1.Duration) { + return false + } + return true +} +func (this *OneofStdTypes) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") + } + } else if this.OneOfStdTimes == nil { + return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") + } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { + return err + } + return nil +} +func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) + } + return nil +} +func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *OneofStdTypes_Duration") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) + } + } else if this.Duration != nil { + return fmt.Errorf("this.Duration == nil && that.Duration != nil") + } else if that1.Duration != nil { + return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) + } + return nil +} +func (this *OneofStdTypes) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes) + if !ok { + that2, ok := that.(OneofStdTypes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.OneOfStdTimes == nil { + if this.OneOfStdTimes != nil { + return false + } + } else if this.OneOfStdTimes == nil { + return false + } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { + return false + } + return true +} +func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Timestamp) + if !ok { + that2, ok := that.(OneofStdTypes_Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Timestamp == nil { + if this.Timestamp != nil { + return false + } + } else if !this.Timestamp.Equal(*that1.Timestamp) { + return false + } + return true +} +func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofStdTypes_Duration) + if !ok { + that2, ok := that.(OneofStdTypes_Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Duration != nil && that1.Duration != nil { + if *this.Duration != *that1.Duration { + return false + } + } else if this.Duration != nil { + return false + } else if that1.Duration != nil { + return false + } + return true +} +func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { + this := &KnownTypes{} + if r.Intn(10) != 0 { + this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) + } + if r.Intn(10) != 0 { + this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) + } + if r.Intn(10) != 0 { + this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) + } + if r.Intn(10) != 0 { + this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) + } + if r.Intn(10) != 0 { + this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) + } + if r.Intn(10) != 0 { + this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) + } + if r.Intn(10) != 0 { + this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) + } + if r.Intn(10) != 0 { + this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { + this := &ProtoTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) + } + v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamp = *v1 + v2 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Duration = *v2 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { + this := &StdTypes{} + if r.Intn(10) != 0 { + this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + if r.Intn(10) != 0 { + this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = *v3 + v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = *v4 + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { + this := &RepProtoTypes{} + if r.Intn(10) != 0 { + v5 := r.Intn(5) + this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) + for i := 0; i < v5; i++ { + this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v6 := r.Intn(5) + this.NullableDurations = make([]*google_protobuf1.Duration, v6) + for i := 0; i < v6; i++ { + this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v7 := r.Intn(5) + this.Timestamps = make([]google_protobuf2.Timestamp, v7) + for i := 0; i < v7; i++ { + v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) + this.Timestamps[i] = *v8 + } + } + if r.Intn(10) != 0 { + v9 := r.Intn(5) + this.Durations = make([]google_protobuf1.Duration, v9) + for i := 0; i < v9; i++ { + v10 := google_protobuf1.NewPopulatedDuration(r, easy) + this.Durations[i] = *v10 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { + this := &RepStdTypes{} + if r.Intn(10) != 0 { + v11 := r.Intn(5) + this.NullableTimestamps = make([]*time.Time, v11) + for i := 0; i < v11; i++ { + this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v12 := r.Intn(5) + this.NullableDurations = make([]*time.Duration, v12) + for i := 0; i < v12; i++ { + this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v13 := r.Intn(5) + this.Timestamps = make([]time.Time, v13) + for i := 0; i < v13; i++ { + v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamps[i] = *v14 + } + } + if r.Intn(10) != 0 { + v15 := r.Intn(5) + this.Durations = make([]time.Duration, v15) + for i := 0; i < v15; i++ { + v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Durations[i] = *v16 + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { + this := &MapProtoTypes{} + if r.Intn(10) != 0 { + v17 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + for i := 0; i < v17; i++ { + this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v18 := r.Intn(10) + this.Timestamp = make(map[int32]google_protobuf2.Timestamp) + for i := 0; i < v18; i++ { + this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) + } + } + if r.Intn(10) != 0 { + v19 := r.Intn(10) + this.NullableDuration = make(map[int32]*google_protobuf1.Duration) + for i := 0; i < v19; i++ { + this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v20 := r.Intn(10) + this.Duration = make(map[int32]google_protobuf1.Duration) + for i := 0; i < v20; i++ { + this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { + this := &MapStdTypes{} + if r.Intn(10) != 0 { + v21 := r.Intn(10) + this.NullableTimestamp = make(map[int32]*time.Time) + for i := 0; i < v21; i++ { + this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v22 := r.Intn(10) + this.Timestamp = make(map[int32]time.Time) + for i := 0; i < v22; i++ { + this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + } + } + if r.Intn(10) != 0 { + v23 := r.Intn(10) + this.NullableDuration = make(map[int32]*time.Duration) + for i := 0; i < v23; i++ { + this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if r.Intn(10) != 0 { + v24 := r.Intn(10) + this.Duration = make(map[int32]time.Duration) + for i := 0; i < v24; i++ { + this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { + this := &OneofProtoTypes{} + oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfProtoTimes { + case 1: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) + case 2: + this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { + this := &OneofProtoTypes_Timestamp{} + this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) + return this +} +func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { + this := &OneofProtoTypes_Duration{} + this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) + return this +} +func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { + this := &OneofStdTypes{} + oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] + switch oneofNumber_OneOfStdTimes { + case 1: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) + case 2: + this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { + this := &OneofStdTypes_Timestamp{} + this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + return this +} +func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { + this := &OneofStdTypes_Duration{} + this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + return this +} + +type randyTypes interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneTypes(r randyTypes) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringTypes(r randyTypes) string { + v25 := r.Intn(100) + tmps := make([]rune, v25) + for i := 0; i < v25; i++ { + tmps[i] = randUTF8RuneTypes(r) + } + return string(tmps) +} +func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + v26 := r.Int63() + if r.Intn(2) == 0 { + v26 *= -1 + } + dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) + case 1: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *KnownTypes) Size() (n int) { + var l int + _ = l + if m.Dur != nil { + l = m.Dur.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Ts != nil { + l = m.Ts.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Dbl != nil { + l = m.Dbl.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Flt != nil { + l = m.Flt.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I64 != nil { + l = m.I64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U64 != nil { + l = m.U64.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.I32 != nil { + l = m.I32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.U32 != nil { + l = m.U32.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bool != nil { + l = m.Bool.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Str != nil { + l = m.Str.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Bytes != nil { + l = m.Bytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ProtoTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = m.NullableTimestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = m.NullableDuration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *StdTypes) Size() (n int) { + var l int + _ = l + if m.NullableTimestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + n += 1 + l + sovTypes(uint64(l)) + } + if m.NullableDuration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + n += 1 + l + sovTypes(uint64(l)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *RepProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RepStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamps) > 0 { + for _, e := range m.NullableTimestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.NullableDurations) > 0 { + for _, e := range m.NullableDurations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Timestamps) > 0 { + for _, e := range m.Timestamps { + l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.Durations) > 0 { + for _, e := range m.Durations { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *MapProtoTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *MapStdTypes) Size() (n int) { + var l int + _ = l + if len(m.NullableTimestamp) > 0 { + for k, v := range m.NullableTimestamp { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Timestamp) > 0 { + for k, v := range m.Timestamp { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.NullableDuration) > 0 { + for k, v := range m.NullableDuration { + _ = k + _ = v + l = 0 + if v != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l += 1 + sovTypes(uint64(l)) + } + mapEntrySize := 1 + sovTypes(uint64(k)) + l + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + if len(m.Duration) > 0 { + for k, v := range m.Duration { + _ = k + _ = v + l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) + n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) + } + } + return n +} + +func (m *OneofProtoTypes) Size() (n int) { + var l int + _ = l + if m.OneOfProtoTimes != nil { + n += m.OneOfProtoTimes.Size() + } + return n +} + +func (m *OneofProtoTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = m.Timestamp.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofProtoTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes) Size() (n int) { + var l int + _ = l + if m.OneOfStdTimes != nil { + n += m.OneOfStdTimes.Size() + } + return n +} + +func (m *OneofStdTypes_Timestamp) Size() (n int) { + var l int + _ = l + if m.Timestamp != nil { + l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *OneofStdTypes_Duration) Size() (n int) { + var l int + _ = l + if m.Duration != nil { + l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *KnownTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KnownTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dur == nil { + m.Dur = &google_protobuf1.Duration{} + } + if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ts == nil { + m.Ts = &google_protobuf2.Timestamp{} + } + if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Dbl == nil { + m.Dbl = &google_protobuf3.DoubleValue{} + } + if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Flt == nil { + m.Flt = &google_protobuf3.FloatValue{} + } + if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I64 == nil { + m.I64 = &google_protobuf3.Int64Value{} + } + if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U64 == nil { + m.U64 = &google_protobuf3.UInt64Value{} + } + if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.I32 == nil { + m.I32 = &google_protobuf3.Int32Value{} + } + if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.U32 == nil { + m.U32 = &google_protobuf3.UInt32Value{} + } + if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bool == nil { + m.Bool = &google_protobuf3.BoolValue{} + } + if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Str == nil { + m.Str = &google_protobuf3.StringValue{} + } + if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Bytes == nil { + m.Bytes = &google_protobuf3.BytesValue{} + } + if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = &google_protobuf2.Timestamp{} + } + if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = &google_protobuf1.Duration{} + } + if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = new(time.Time) + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDuration == nil { + m.NullableDuration = new(time.Duration) + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) + if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) + if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) + if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, google_protobuf1.Duration{}) + if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RepStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RepStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDurations = append(m.NullableDurations, new(time.Duration)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Timestamps = append(m.Timestamps, time.Time{}) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Durations = append(m.Durations, time.Duration(0)) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf2.Timestamp + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]google_protobuf2.Timestamp) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf2.Timestamp + m.Timestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue *google_protobuf1.Duration + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]google_protobuf1.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue google_protobuf1.Duration + m.Duration[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MapStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MapStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableTimestamp == nil { + m.NullableTimestamp = make(map[int32]*time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableTimestamp[mapkey] = mapvalue + } else { + var mapvalue = new(time.Time) + m.NullableTimestamp[mapkey] = mapvalue + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Timestamp == nil { + m.Timestamp = make(map[int32]time.Time) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Timestamp[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Time) + m.Timestamp[mapkey] = *mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.NullableDuration == nil { + m.NullableDuration = make(map[int32]*time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.NullableDuration[mapkey] = mapvalue + } else { + var mapvalue = new(time.Duration) + m.NullableDuration[mapkey] = mapvalue + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapkey int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if m.Duration == nil { + m.Duration = make(map[int32]time.Duration) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Duration[mapkey] = *mapvalue + } else { + var mapvalue = new(time.Duration) + m.Duration[mapkey] = *mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofProtoTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf2.Timestamp{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &google_protobuf1.Duration{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OneofStdTypes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Time) + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypesUnsafe + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := new(time.Duration) + if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OneOfStdTimes = &OneofStdTypes_Duration{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypesUnsafe + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypesUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTypesUnsafe + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypesUnsafe + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTypesUnsafe(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTypesUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypesUnsafe = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/unsafeunmarshaler/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 933 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, + 0x18, 0x8d, 0x7f, 0x52, 0x32, 0x5f, 0x14, 0xda, 0x5a, 0x02, 0x99, 0x80, 0x9c, 0x21, 0xb0, 0x18, + 0x5a, 0xd5, 0x81, 0x24, 0x0a, 0x68, 0x50, 0xa1, 0x58, 0xd3, 0x76, 0x4a, 0x35, 0x9d, 0x2a, 0x2d, + 0x23, 0x40, 0x02, 0x61, 0x37, 0x4e, 0x1a, 0xe1, 0xf8, 0x46, 0xf6, 0x35, 0x55, 0x76, 0x3c, 0x02, + 0x4b, 0x10, 0x1b, 0xba, 0x43, 0x82, 0x3d, 0x2c, 0xd9, 0x20, 0x75, 0x07, 0x4f, 0x00, 0x6d, 0xd8, + 0xf0, 0x08, 0x5d, 0xa2, 0x7b, 0x7d, 0xfd, 0x17, 0x5f, 0x3b, 0x24, 0xd2, 0x88, 0x0d, 0xbb, 0xf1, + 0xf8, 0x9c, 0xe3, 0xe3, 0xe3, 0xf3, 0x7d, 0x37, 0xf0, 0xea, 0x3d, 0x34, 0xb3, 0x90, 0xdf, 0x09, + 0x5c, 0xdf, 0x1c, 0xdb, 0x81, 0x3b, 0x33, 0x3d, 0xff, 0xbe, 0xe9, 0xd8, 0x5e, 0x07, 0x2f, 0xe6, + 0xb6, 0xaf, 0xcf, 0x3d, 0x84, 0x91, 0x52, 0xa5, 0x17, 0xcd, 0x4b, 0x93, 0x29, 0xbe, 0x1f, 0x58, + 0xfa, 0x3d, 0x34, 0xeb, 0x4c, 0xd0, 0x04, 0x75, 0xe8, 0x5d, 0x2b, 0x18, 0xd3, 0x2b, 0x7a, 0x41, + 0xff, 0x0a, 0x59, 0x4d, 0x6d, 0x82, 0xd0, 0xc4, 0xb1, 0x13, 0xd4, 0x28, 0xf0, 0x4c, 0x3c, 0x45, + 0x2e, 0xbb, 0xdf, 0x5a, 0xbd, 0x8f, 0xa7, 0x33, 0xdb, 0xc7, 0xe6, 0x6c, 0x5e, 0x24, 0xf0, 0xc0, + 0x33, 0xe7, 0x73, 0xdb, 0x63, 0xb6, 0xda, 0xdf, 0xca, 0x00, 0x37, 0x5d, 0xf4, 0xc0, 0xbd, 0x4b, + 0xec, 0x29, 0x17, 0x41, 0x1a, 0x05, 0x9e, 0x2a, 0xec, 0x0a, 0x7b, 0xf5, 0xee, 0x0b, 0x7a, 0x48, + 0xd6, 0x23, 0xb2, 0x7e, 0xc0, 0x9e, 0x3e, 0x24, 0x28, 0xe5, 0x02, 0x88, 0xd8, 0x57, 0x45, 0x8a, + 0x6d, 0xe6, 0xb0, 0x77, 0x23, 0x27, 0x43, 0x11, 0xfb, 0x8a, 0x0e, 0xd2, 0xc8, 0x72, 0x54, 0x89, + 0x82, 0x5f, 0xca, 0x0b, 0xa3, 0xc0, 0x72, 0xec, 0x13, 0xd3, 0x09, 0xec, 0x21, 0x01, 0x2a, 0x97, + 0x40, 0x1a, 0x3b, 0x58, 0x95, 0x29, 0xfe, 0xc5, 0x1c, 0xfe, 0x9a, 0x83, 0x4c, 0xcc, 0xe0, 0x63, + 0x07, 0x13, 0xf8, 0x74, 0xd0, 0x57, 0xab, 0x05, 0xf0, 0x1b, 0x2e, 0x1e, 0xf4, 0x19, 0x7c, 0x3a, + 0xe8, 0x13, 0x37, 0xc1, 0xa0, 0xaf, 0x9e, 0x29, 0x70, 0xf3, 0x41, 0x1a, 0x1f, 0x0c, 0xfa, 0x54, + 0xbe, 0xd7, 0x55, 0x9f, 0x29, 0x96, 0xef, 0x75, 0x23, 0xf9, 0x5e, 0x97, 0xca, 0xf7, 0xba, 0x6a, + 0xad, 0x44, 0x3e, 0xc6, 0x07, 0x14, 0x2f, 0x5b, 0x08, 0x39, 0xea, 0x4e, 0x41, 0x94, 0x06, 0x42, + 0x4e, 0x08, 0xa7, 0x38, 0xa2, 0xef, 0x63, 0x4f, 0x85, 0x02, 0xfd, 0x3b, 0xd8, 0x9b, 0xba, 0x13, + 0xa6, 0xef, 0x63, 0x4f, 0x79, 0x03, 0xaa, 0xd6, 0x02, 0xdb, 0xbe, 0x5a, 0x2f, 0x78, 0x01, 0x83, + 0xdc, 0x0d, 0x09, 0x21, 0x72, 0x5f, 0xfe, 0xfb, 0x61, 0x4b, 0x68, 0x7f, 0x27, 0x02, 0xdc, 0x26, + 0xa0, 0xb0, 0x1d, 0x87, 0x70, 0xde, 0x0d, 0x1c, 0xc7, 0xb4, 0x1c, 0x3b, 0xfe, 0xba, 0xac, 0x2b, + 0x65, 0xdf, 0x3f, 0x4f, 0x52, 0xae, 0xc2, 0xb9, 0xe8, 0x9f, 0x51, 0xa7, 0x58, 0x91, 0x4a, 0x4a, + 0x97, 0xa3, 0x28, 0xef, 0xc0, 0x4e, 0x5c, 0x78, 0xd6, 0xad, 0x12, 0x23, 0x86, 0xfc, 0xe8, 0x8f, + 0x56, 0x65, 0x98, 0x50, 0x94, 0xb7, 0xa1, 0x16, 0x0d, 0x14, 0xab, 0x5a, 0xf1, 0xe3, 0x19, 0x3b, + 0x26, 0xb0, 0x88, 0x7e, 0x14, 0xa1, 0x76, 0x07, 0x8f, 0xc2, 0x80, 0x6e, 0x6d, 0x15, 0x90, 0x21, + 0x7f, 0xf5, 0x67, 0x4b, 0xe0, 0xc5, 0x74, 0x73, 0x8b, 0x98, 0x0c, 0xf9, 0x6b, 0xa2, 0x96, 0x0f, + 0xcb, 0xd8, 0x2c, 0xac, 0x1a, 0x79, 0x5d, 0x6a, 0x2c, 0x15, 0xd8, 0xbb, 0x9b, 0x04, 0x46, 0x15, + 0xa8, 0x99, 0x98, 0xd4, 0xfe, 0x41, 0x84, 0xc6, 0xd0, 0x9e, 0xa7, 0x4a, 0xf5, 0x3e, 0x28, 0xb9, + 0x17, 0xf7, 0x55, 0x61, 0x57, 0x5a, 0xd3, 0x2a, 0x0e, 0x4b, 0xb9, 0x9e, 0xe4, 0x1f, 0xb9, 0x20, + 0x0b, 0x4a, 0x2a, 0xef, 0x55, 0x9e, 0xa3, 0x5c, 0x01, 0xc0, 0x89, 0x19, 0x69, 0x9d, 0x19, 0xd6, + 0x8d, 0x14, 0x47, 0xb9, 0x0c, 0x3b, 0xa3, 0xd8, 0x82, 0xbc, 0xc6, 0x42, 0xd4, 0xcc, 0x98, 0xc1, + 0xca, 0xf5, 0x93, 0x08, 0xf5, 0xa1, 0x3d, 0x8f, 0xfb, 0x75, 0x7b, 0xbb, 0xac, 0x58, 0xc1, 0x78, + 0x89, 0x1d, 0x6d, 0x93, 0x18, 0xab, 0x18, 0x27, 0xb7, 0x83, 0x0d, 0x73, 0x4b, 0x4a, 0x96, 0xce, + 0xee, 0xbd, 0x8d, 0xb2, 0x4b, 0x6a, 0x96, 0xb0, 0xda, 0xbf, 0x56, 0xa1, 0x71, 0x64, 0xa6, 0x7b, + 0xf6, 0x11, 0x7f, 0x36, 0x89, 0xf8, 0x45, 0x3d, 0x3c, 0xa9, 0x33, 0x04, 0xfd, 0xd6, 0x2a, 0xfa, + 0xaa, 0x8b, 0xbd, 0x05, 0x6f, 0x4c, 0xaf, 0xa7, 0x27, 0x2b, 0x0c, 0xef, 0x15, 0xae, 0x64, 0x56, + 0x2a, 0xbf, 0x8f, 0x4e, 0x38, 0xf3, 0x1e, 0x86, 0x78, 0xa1, 0xd4, 0x62, 0x04, 0x0e, 0x1d, 0xe6, + 0x47, 0xff, 0x20, 0x33, 0xb6, 0x44, 0xaf, 0xcd, 0xd5, 0xcb, 0xe8, 0xac, 0x2e, 0xbc, 0xe6, 0x67, + 0xf0, 0x3c, 0x3f, 0x13, 0xe5, 0x1c, 0x48, 0x9f, 0xdb, 0x0b, 0xba, 0xe9, 0xaa, 0x43, 0xf2, 0xa7, + 0xf2, 0x3a, 0x54, 0xbf, 0x20, 0xe7, 0xc9, 0xbf, 0xf8, 0x79, 0x10, 0x02, 0xf7, 0xc5, 0xb7, 0x84, + 0xe6, 0x87, 0xf0, 0xec, 0x29, 0x29, 0x7f, 0x0a, 0xcf, 0x71, 0xc3, 0xe2, 0x3c, 0xa0, 0x93, 0x7d, + 0x40, 0xc9, 0xe2, 0x48, 0xe9, 0x9f, 0x40, 0xe3, 0x34, 0x74, 0xdb, 0xbf, 0x55, 0xa1, 0x7e, 0x64, + 0x26, 0x1b, 0xe0, 0x93, 0xe2, 0x16, 0xbf, 0x96, 0x7c, 0xd2, 0x08, 0x5e, 0xd0, 0xe1, 0xe2, 0x03, + 0xe7, 0x46, 0xbe, 0xc9, 0x2f, 0x73, 0x64, 0x57, 0xe4, 0xb8, 0x47, 0xc5, 0xc7, 0x85, 0x5d, 0xde, + 0x2b, 0x31, 0xba, 0xd2, 0xc0, 0x82, 0xa3, 0xec, 0x5a, 0xae, 0xcf, 0xbb, 0x1c, 0xcd, 0xac, 0x16, + 0xe7, 0x34, 0xfa, 0xbf, 0xd1, 0xff, 0x41, 0xa3, 0xbf, 0x11, 0xe0, 0xec, 0xb1, 0x6b, 0xa3, 0x71, + 0x6a, 0x37, 0xef, 0xa7, 0x6b, 0xb7, 0xf6, 0xf7, 0xd2, 0x61, 0x66, 0x67, 0xbe, 0x99, 0xea, 0xc2, + 0x3a, 0x1f, 0x87, 0xa9, 0x75, 0x66, 0x9c, 0xa7, 0x3e, 0x8e, 0x99, 0x0f, 0xa2, 0xd7, 0x7e, 0x28, + 0x40, 0x83, 0x7a, 0x8b, 0xe7, 0xed, 0xca, 0x46, 0xce, 0xc2, 0xc1, 0xca, 0xfa, 0xbb, 0xbc, 0x81, + 0xbf, 0xb0, 0xf0, 0x19, 0x97, 0x67, 0xa9, 0xa3, 0x63, 0xea, 0x88, 0x68, 0x1a, 0x7b, 0x8f, 0x9f, + 0x68, 0xc2, 0xd3, 0x27, 0x9a, 0xf0, 0xfd, 0x52, 0x13, 0x7e, 0x5e, 0x6a, 0xc2, 0x2f, 0x4b, 0x4d, + 0x78, 0xb4, 0xd4, 0x2a, 0xbf, 0x2f, 0xb5, 0xca, 0xe3, 0xa5, 0x26, 0x3c, 0x5d, 0x6a, 0x95, 0x2f, + 0xff, 0xd2, 0x04, 0xeb, 0x0c, 0xd5, 0xef, 0xfd, 0x13, 0x00, 0x00, 0xff, 0xff, 0xe7, 0xf2, 0x97, + 0x13, 0xa1, 0x0e, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto new file mode 100644 index 00000000..67624ca5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = true; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go new file mode 100644 index 00000000..7d24f58e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go @@ -0,0 +1,242 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + math_rand "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/jsonpb" + "github.com/gogo/protobuf/proto" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go new file mode 100644 index 00000000..8da815c7 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go @@ -0,0 +1,1819 @@ +// Code generated by protoc-gen-gogo. +// source: combos/unsafeunmarshaler/types.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + combos/unsafeunmarshaler/types.proto + +It has these top-level messages: + KnownTypes + ProtoTypes + StdTypes + RepProtoTypes + RepStdTypes + MapProtoTypes + MapStdTypes + OneofProtoTypes + OneofStdTypes +*/ +package types + +import testing "testing" +import math_rand "math/rand" +import time "time" +import unsafe "unsafe" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" +import _ "github.com/gogo/protobuf/types" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestKnownTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkKnownTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &KnownTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &ProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &StdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &RepStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &MapStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofProtoTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + } +} + +func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &OneofStdTypes{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestKnownTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &KnownTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &ProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &StdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestRepStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &RepStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofProtoTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofProtoTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofStdTypesJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofStdTypes{} + err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestKnownTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestRepStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofProtoTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofStdTypesProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestKnownTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedKnownTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestRepProtoTypesCompare(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if c := p.Compare(msg); c != 0 { + t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) + } + p2 := NewPopulatedRepProtoTypes(popr, false) + c := p.Compare(p2) + c2 := p2.Compare(p) + if c != (-1 * c2) { + t.Errorf("p.Compare(p2) = %d", c) + t.Errorf("p2.Compare(p) = %d", c2) + t.Errorf("p = %#v", p) + t.Errorf("p2 = %#v", p2) + } +} +func TestKnownTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedKnownTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &KnownTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &ProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &StdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestRepStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedRepStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &RepStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofProtoTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofProtoTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofProtoTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestOneofStdTypesVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } + popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofStdTypes(popr, false) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &OneofStdTypes{} + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestKnownTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedKnownTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkKnownTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*KnownTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedKnownTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*ProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*StdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestRepStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedRepStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkRepStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*RepStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedRepStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestMapStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedMapStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkMapStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*MapStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedMapStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofProtoTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofProtoTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofProtoTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofProtoTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofProtoTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestOneofStdTypesSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + p := NewPopulatedOneofStdTypes(popr, true) + size2 := github_com_gogo_protobuf_proto.Size(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := github_com_gogo_protobuf_proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkOneofStdTypesSize(b *testing.B) { + popr := math_rand.New(math_rand.NewSource(616)) + total := 0 + pops := make([]*OneofStdTypes, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedOneofStdTypes(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/types.proto b/vendor/github.com/gogo/protobuf/test/types/types.proto new file mode 100644 index 00000000..3c26fae2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/types.proto @@ -0,0 +1,131 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package types; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +//import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +//import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.benchgen_all) = true; +option (gogoproto.unmarshaler_all) = false; +option (gogoproto.marshaler_all) = false; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + +message KnownTypes { + option (gogoproto.compare) = true; + google.protobuf.Duration dur = 1; + google.protobuf.Timestamp ts = 2; + google.protobuf.DoubleValue dbl = 3; + google.protobuf.FloatValue flt = 4; + google.protobuf.Int64Value i64 = 5; + google.protobuf.UInt64Value u64 = 6; + google.protobuf.Int32Value i32 = 7; + google.protobuf.UInt32Value u32 = 8; + google.protobuf.BoolValue bool = 9; + google.protobuf.StringValue str = 10; + google.protobuf.BytesValue bytes = 11; + + // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed + // google.protobuf.Struct st = 12; + // google.protobuf.Any an = 14; +} + +message ProtoTypes { + // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare + option (gogoproto.compare) = true; + google.protobuf.Timestamp nullableTimestamp = 1; + google.protobuf.Duration nullableDuration = 2; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; +} + +message StdTypes { + google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message RepProtoTypes { + option (gogoproto.compare) = true; + repeated google.protobuf.Timestamp nullableTimestamps = 1; + repeated google.protobuf.Duration nullableDurations = 2; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; +} + +message RepStdTypes { + repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; + repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; + repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message MapProtoTypes { + map nullableTimestamp = 1; + map timestamp = 2 [(gogoproto.nullable) = false]; + + map nullableDuration = 3; + map duration = 4 [(gogoproto.nullable) = false]; +} + +message MapStdTypes { + map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; + map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + map nullableDuration = 3 [(gogoproto.stdduration) = true]; + map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; +} + +message OneofProtoTypes { + oneof OneOfProtoTimes { + google.protobuf.Timestamp timestamp = 1; + google.protobuf.Duration duration = 2; + } +} + +message OneofStdTypes { + oneof OneOfStdTimes { + google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; + google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; + } +} + diff --git a/vendor/github.com/gogo/protobuf/test/types/types_test.go.in b/vendor/github.com/gogo/protobuf/test/types/types_test.go.in new file mode 100644 index 00000000..fcb0974e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/types/types_test.go.in @@ -0,0 +1,243 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "testing" + "time" + math_rand "math/rand" + + "github.com/gogo/protobuf/proto" + "github.com/gogo/protobuf/jsonpb" +) + +func TestFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &StdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &ProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleRepProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedRepProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &RepStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &RepProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + + +func TestFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleMapProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedMapProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &MapStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &MapProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + protoData, err := proto.Marshal(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := proto.Marshal(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} + +func TestJsonFullCircleOneofProtoToStd(t *testing.T) { + seed := time.Now().UnixNano() + popr := math_rand.New(math_rand.NewSource(seed)) + protoMsg := NewPopulatedOneofProtoTypes(popr, true) + j := &jsonpb.Marshaler{} + protoData, err := j.MarshalToString(protoMsg) + if err != nil { + t.Fatal(err) + } + stdMsg := &OneofStdTypes{} + if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { + t.Fatal(err) + } + stdData, err := j.MarshalToString(stdMsg) + if err != nil { + t.Fatal(err) + } + protoMsgOut := &OneofProtoTypes{} + if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { + t.Fatal(err) + } + if !protoMsg.Equal(protoMsgOut) { + t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/Makefile b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/Makefile index 66ea13ef..e9fa8934 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/Makefile +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go index 07fe444b..5115e7bf 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go @@ -24,12 +24,10 @@ import _ "github.com/gogo/protobuf/gogoproto" import bytes "bytes" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -38,11 +36,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Big struct { - Sub *Sub `protobuf:"bytes,1,opt,name=Sub,json=sub" json:"Sub,omitempty"` - Number *int64 `protobuf:"varint,2,opt,name=Number,json=number" json:"Number,omitempty"` + Sub *Sub `protobuf:"bytes,1,opt,name=Sub" json:"Sub,omitempty"` + Number *int64 `protobuf:"varint,2,opt,name=Number" json:"Number,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -65,8 +65,8 @@ func (m *Big) GetNumber() int64 { } type BigUnsafe struct { - Sub *Sub `protobuf:"bytes,1,opt,name=Sub,json=sub" json:"Sub,omitempty"` - Number *int64 `protobuf:"varint,2,opt,name=Number,json=number" json:"Number,omitempty"` + Sub *Sub `protobuf:"bytes,1,opt,name=Sub" json:"Sub,omitempty"` + Number *int64 `protobuf:"varint,2,opt,name=Number" json:"Number,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -89,7 +89,7 @@ func (m *BigUnsafe) GetNumber() int64 { } type Sub struct { - SubNumber *int64 `protobuf:"varint,1,opt,name=SubNumber,json=subNumber" json:"SubNumber,omitempty"` + SubNumber *int64 `protobuf:"varint,1,opt,name=SubNumber" json:"SubNumber,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -105,17 +105,17 @@ func (m *Sub) GetSubNumber() int64 { } type IntMerge struct { - Int64 int64 `protobuf:"varint,1,req,name=Int64,json=int64" json:"Int64"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,json=int32" json:"Int32"` - Sint32 int32 `protobuf:"zigzag32,3,req,name=Sint32,json=sint32" json:"Sint32"` - Sint64 int64 `protobuf:"zigzag64,4,opt,name=Sint64,json=sint64" json:"Sint64"` - Uint64 uint64 `protobuf:"varint,5,opt,name=Uint64,json=uint64" json:"Uint64"` - Uint32 uint32 `protobuf:"varint,6,req,name=Uint32,json=uint32" json:"Uint32"` - Fixed64 uint64 `protobuf:"fixed64,7,opt,name=Fixed64,json=fixed64" json:"Fixed64"` - Fixed32 uint32 `protobuf:"fixed32,8,opt,name=Fixed32,json=fixed32" json:"Fixed32"` - Sfixed32 int32 `protobuf:"fixed32,9,req,name=Sfixed32,json=sfixed32" json:"Sfixed32"` - Sfixed64 int64 `protobuf:"fixed64,10,opt,name=Sfixed64,json=sfixed64" json:"Sfixed64"` - Bool bool `protobuf:"varint,11,opt,name=Bool,json=bool" json:"Bool"` + Int64 int64 `protobuf:"varint,1,req,name=Int64" json:"Int64"` + Int32 int32 `protobuf:"varint,2,opt,name=Int32" json:"Int32"` + Sint32 int32 `protobuf:"zigzag32,3,req,name=Sint32" json:"Sint32"` + Sint64 int64 `protobuf:"zigzag64,4,opt,name=Sint64" json:"Sint64"` + Uint64 uint64 `protobuf:"varint,5,opt,name=Uint64" json:"Uint64"` + Uint32 uint32 `protobuf:"varint,6,req,name=Uint32" json:"Uint32"` + Fixed64 uint64 `protobuf:"fixed64,7,opt,name=Fixed64" json:"Fixed64"` + Fixed32 uint32 `protobuf:"fixed32,8,opt,name=Fixed32" json:"Fixed32"` + Sfixed32 int32 `protobuf:"fixed32,9,req,name=Sfixed32" json:"Sfixed32"` + Sfixed64 int64 `protobuf:"fixed64,10,opt,name=Sfixed64" json:"Sfixed64"` + Bool bool `protobuf:"varint,11,opt,name=Bool" json:"Bool"` XXX_unrecognized []byte `json:"-"` } @@ -660,23 +660,6 @@ func valueToGoStringUnmarshalmerge(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringUnmarshalmerge(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} func NewPopulatedBig(r randyUnmarshalmerge, easy bool) *Big { this := &Big{} if r.Intn(10) != 0 { @@ -791,7 +774,7 @@ func randStringUnmarshalmerge(r randyUnmarshalmerge) string { } return string(tmps) } -func randUnrecognizedUnmarshalmerge(r randyUnmarshalmerge, maxFieldNumber int) (data []byte) { +func randUnrecognizedUnmarshalmerge(r randyUnmarshalmerge, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -799,43 +782,43 @@ func randUnrecognizedUnmarshalmerge(r randyUnmarshalmerge, maxFieldNumber int) ( wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldUnmarshalmerge(data, r, fieldNumber, wire) + dAtA = randFieldUnmarshalmerge(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldUnmarshalmerge(data []byte, r randyUnmarshalmerge, fieldNumber int, wire int) []byte { +func randFieldUnmarshalmerge(dAtA []byte, r randyUnmarshalmerge, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateUnmarshalmerge(data, uint64(key)) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(key)) v5 := r.Int63() if r.Intn(2) == 0 { v5 *= -1 } - data = encodeVarintPopulateUnmarshalmerge(data, uint64(v5)) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(v5)) case 1: - data = encodeVarintPopulateUnmarshalmerge(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateUnmarshalmerge(data, uint64(key)) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateUnmarshalmerge(data, uint64(ll)) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateUnmarshalmerge(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnmarshalmerge(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateUnmarshalmerge(data []byte, v uint64) []byte { +func encodeVarintPopulateUnmarshalmerge(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (this *Big) String() string { if this == nil { @@ -901,8 +884,8 @@ func valueToStringUnmarshalmerge(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Big) Unmarshal(data []byte) error { - l := len(data) +func (m *Big) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -914,7 +897,7 @@ func (m *Big) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -942,7 +925,7 @@ func (m *Big) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -959,7 +942,7 @@ func (m *Big) Unmarshal(data []byte) error { if m.Sub == nil { m.Sub = &Sub{} } - if err := m.Sub.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Sub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -975,7 +958,7 @@ func (m *Big) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -985,7 +968,7 @@ func (m *Big) Unmarshal(data []byte) error { m.Number = &v default: iNdEx = preIndex - skippy, err := skipUnmarshalmerge(data[iNdEx:]) + skippy, err := skipUnmarshalmerge(dAtA[iNdEx:]) if err != nil { return err } @@ -995,7 +978,7 @@ func (m *Big) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1005,8 +988,8 @@ func (m *Big) Unmarshal(data []byte) error { } return nil } -func (m *Sub) Unmarshal(data []byte) error { - l := len(data) +func (m *Sub) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1018,7 +1001,7 @@ func (m *Sub) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1046,7 +1029,7 @@ func (m *Sub) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1056,7 +1039,7 @@ func (m *Sub) Unmarshal(data []byte) error { m.SubNumber = &v default: iNdEx = preIndex - skippy, err := skipUnmarshalmerge(data[iNdEx:]) + skippy, err := skipUnmarshalmerge(dAtA[iNdEx:]) if err != nil { return err } @@ -1066,7 +1049,7 @@ func (m *Sub) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1076,9 +1059,9 @@ func (m *Sub) Unmarshal(data []byte) error { } return nil } -func (m *IntMerge) Unmarshal(data []byte) error { +func (m *IntMerge) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1090,7 +1073,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1118,7 +1101,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int64 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1138,7 +1121,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int32 |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1157,7 +1140,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -1179,7 +1162,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1200,7 +1183,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Uint64 |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1219,7 +1202,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Uint32 |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -1236,14 +1219,14 @@ func (m *IntMerge) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Fixed64 = uint64(data[iNdEx-8]) - m.Fixed64 |= uint64(data[iNdEx-7]) << 8 - m.Fixed64 |= uint64(data[iNdEx-6]) << 16 - m.Fixed64 |= uint64(data[iNdEx-5]) << 24 - m.Fixed64 |= uint64(data[iNdEx-4]) << 32 - m.Fixed64 |= uint64(data[iNdEx-3]) << 40 - m.Fixed64 |= uint64(data[iNdEx-2]) << 48 - m.Fixed64 |= uint64(data[iNdEx-1]) << 56 + m.Fixed64 = uint64(dAtA[iNdEx-8]) + m.Fixed64 |= uint64(dAtA[iNdEx-7]) << 8 + m.Fixed64 |= uint64(dAtA[iNdEx-6]) << 16 + m.Fixed64 |= uint64(dAtA[iNdEx-5]) << 24 + m.Fixed64 |= uint64(dAtA[iNdEx-4]) << 32 + m.Fixed64 |= uint64(dAtA[iNdEx-3]) << 40 + m.Fixed64 |= uint64(dAtA[iNdEx-2]) << 48 + m.Fixed64 |= uint64(dAtA[iNdEx-1]) << 56 case 8: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Fixed32", wireType) @@ -1253,10 +1236,10 @@ func (m *IntMerge) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Fixed32 = uint32(data[iNdEx-4]) - m.Fixed32 |= uint32(data[iNdEx-3]) << 8 - m.Fixed32 |= uint32(data[iNdEx-2]) << 16 - m.Fixed32 |= uint32(data[iNdEx-1]) << 24 + m.Fixed32 = uint32(dAtA[iNdEx-4]) + m.Fixed32 |= uint32(dAtA[iNdEx-3]) << 8 + m.Fixed32 |= uint32(dAtA[iNdEx-2]) << 16 + m.Fixed32 |= uint32(dAtA[iNdEx-1]) << 24 case 9: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32", wireType) @@ -1266,10 +1249,10 @@ func (m *IntMerge) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 4 - m.Sfixed32 = int32(data[iNdEx-4]) - m.Sfixed32 |= int32(data[iNdEx-3]) << 8 - m.Sfixed32 |= int32(data[iNdEx-2]) << 16 - m.Sfixed32 |= int32(data[iNdEx-1]) << 24 + m.Sfixed32 = int32(dAtA[iNdEx-4]) + m.Sfixed32 |= int32(dAtA[iNdEx-3]) << 8 + m.Sfixed32 |= int32(dAtA[iNdEx-2]) << 16 + m.Sfixed32 |= int32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000008) case 10: if wireType != 1 { @@ -1280,14 +1263,14 @@ func (m *IntMerge) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - m.Sfixed64 = int64(data[iNdEx-8]) - m.Sfixed64 |= int64(data[iNdEx-7]) << 8 - m.Sfixed64 |= int64(data[iNdEx-6]) << 16 - m.Sfixed64 |= int64(data[iNdEx-5]) << 24 - m.Sfixed64 |= int64(data[iNdEx-4]) << 32 - m.Sfixed64 |= int64(data[iNdEx-3]) << 40 - m.Sfixed64 |= int64(data[iNdEx-2]) << 48 - m.Sfixed64 |= int64(data[iNdEx-1]) << 56 + m.Sfixed64 = int64(dAtA[iNdEx-8]) + m.Sfixed64 |= int64(dAtA[iNdEx-7]) << 8 + m.Sfixed64 |= int64(dAtA[iNdEx-6]) << 16 + m.Sfixed64 |= int64(dAtA[iNdEx-5]) << 24 + m.Sfixed64 |= int64(dAtA[iNdEx-4]) << 32 + m.Sfixed64 |= int64(dAtA[iNdEx-3]) << 40 + m.Sfixed64 |= int64(dAtA[iNdEx-2]) << 48 + m.Sfixed64 |= int64(dAtA[iNdEx-1]) << 56 case 11: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) @@ -1300,7 +1283,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1310,7 +1293,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { m.Bool = bool(v != 0) default: iNdEx = preIndex - skippy, err := skipUnmarshalmerge(data[iNdEx:]) + skippy, err := skipUnmarshalmerge(dAtA[iNdEx:]) if err != nil { return err } @@ -1320,7 +1303,7 @@ func (m *IntMerge) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1342,8 +1325,8 @@ func (m *IntMerge) Unmarshal(data []byte) error { } return nil } -func skipUnmarshalmerge(data []byte) (n int, err error) { - l := len(data) +func skipUnmarshalmerge(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1354,7 +1337,7 @@ func skipUnmarshalmerge(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1372,7 +1355,7 @@ func skipUnmarshalmerge(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1389,7 +1372,7 @@ func skipUnmarshalmerge(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1412,7 +1395,7 @@ func skipUnmarshalmerge(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1423,7 +1406,7 @@ func skipUnmarshalmerge(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipUnmarshalmerge(data[start:]) + next, err := skipUnmarshalmerge(dAtA[start:]) if err != nil { return 0, err } @@ -1447,8 +1430,8 @@ var ( ErrIntOverflowUnmarshalmerge = fmt.Errorf("proto: integer overflow") ) -func (m *BigUnsafe) Unmarshal(data []byte) error { - l := len(data) +func (m *BigUnsafe) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1460,7 +1443,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1488,7 +1471,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1505,7 +1488,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { if m.Sub == nil { m.Sub = &Sub{} } - if err := m.Sub.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.Sub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1521,7 +1504,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1531,7 +1514,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { m.Number = &v default: iNdEx = preIndex - skippy, err := skipUnmarshalmergeUnsafe(data[iNdEx:]) + skippy, err := skipUnmarshalmergeUnsafe(dAtA[iNdEx:]) if err != nil { return err } @@ -1541,7 +1524,7 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1551,8 +1534,8 @@ func (m *BigUnsafe) Unmarshal(data []byte) error { } return nil } -func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { - l := len(data) +func skipUnmarshalmergeUnsafe(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1563,7 +1546,7 @@ func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1581,7 +1564,7 @@ func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1598,7 +1581,7 @@ func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1621,7 +1604,7 @@ func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1632,7 +1615,7 @@ func skipUnmarshalmergeUnsafe(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipUnmarshalmergeUnsafe(data[start:]) + next, err := skipUnmarshalmergeUnsafe(dAtA[start:]) if err != nil { return 0, err } @@ -1656,30 +1639,33 @@ var ( ErrIntOverflowUnmarshalmergeUnsafe = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("unmarshalmerge.proto", fileDescriptorUnmarshalmerge) } + var fileDescriptorUnmarshalmerge = []byte{ - // 371 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x90, 0xbd, 0x4a, 0xf3, 0x50, - 0x18, 0xc7, 0x9b, 0xe6, 0xfb, 0x94, 0xf7, 0x55, 0xa3, 0x48, 0x28, 0x92, 0x96, 0x82, 0x50, 0x07, - 0x5b, 0x68, 0xc5, 0xc1, 0x31, 0x83, 0xa0, 0xa0, 0x48, 0x4b, 0x2f, 0xa0, 0xd1, 0x34, 0x0d, 0x34, - 0x39, 0x92, 0xd3, 0x03, 0x8e, 0x5e, 0x82, 0xb7, 0xe0, 0xe6, 0x25, 0x38, 0x76, 0xf4, 0x12, 0x9c, - 0x8a, 0xf5, 0x0a, 0x1c, 0x1d, 0xfd, 0xf7, 0xe4, 0x54, 0x1a, 0x1d, 0x1d, 0x1e, 0xf2, 0x9c, 0xe7, - 0xf7, 0xff, 0x80, 0x90, 0x1d, 0x9e, 0x26, 0xc3, 0x8c, 0x8d, 0x87, 0x93, 0x24, 0xcc, 0xa2, 0xb0, - 0x75, 0x9b, 0xd1, 0x29, 0x75, 0xfe, 0x17, 0xaf, 0xd5, 0xc3, 0x28, 0x9e, 0x8e, 0x79, 0xd0, 0xba, - 0xa6, 0x49, 0x3b, 0xa2, 0x11, 0x6d, 0x0b, 0x59, 0xc0, 0x47, 0xe2, 0x25, 0x1e, 0x62, 0xcb, 0xed, - 0x8d, 0x73, 0xa2, 0xfa, 0x71, 0xe4, 0xec, 0x13, 0xb5, 0xcf, 0x03, 0x57, 0xa9, 0x2b, 0xcd, 0x4a, - 0x67, 0xbb, 0xf5, 0xa3, 0x09, 0xa8, 0xa7, 0x32, 0x1e, 0x38, 0xbb, 0xc4, 0xb8, 0xe4, 0x49, 0x10, - 0x66, 0x6e, 0x19, 0x4a, 0xb5, 0x67, 0xa4, 0xe2, 0x75, 0xa2, 0x3d, 0x3c, 0xd6, 0x94, 0xc6, 0x15, - 0xb1, 0x91, 0x35, 0x48, 0xd9, 0x70, 0x14, 0xfe, 0x39, 0x71, 0xb6, 0x4c, 0x3c, 0x10, 0x21, 0xce, - 0x1e, 0xb1, 0xf1, 0x91, 0x3a, 0x45, 0xe8, 0x6c, 0xb6, 0x3a, 0xc8, 0xf2, 0x79, 0x99, 0x58, 0x67, - 0xe9, 0xf4, 0x62, 0x19, 0xef, 0x54, 0x89, 0x8e, 0xfd, 0xf8, 0x08, 0xe2, 0x72, 0x53, 0xf5, 0xb5, - 0x97, 0x79, 0xad, 0xd4, 0xd3, 0xe3, 0xe5, 0x49, 0xb2, 0x6e, 0x47, 0x14, 0xea, 0x6b, 0xac, 0xdb, - 0x41, 0x91, 0xd1, 0x17, 0x9b, 0xab, 0xc2, 0xb8, 0x25, 0xa1, 0xc1, 0x0a, 0x14, 0xb1, 0x1a, 0xac, - 0xce, 0x3a, 0x45, 0x2e, 0xe8, 0x20, 0xa7, 0x3a, 0xa8, 0xb6, 0xa2, 0xbc, 0x40, 0x91, 0x6c, 0x20, - 0xf9, 0xdf, 0x3a, 0x45, 0xb2, 0x47, 0xcc, 0xd3, 0xf8, 0x2e, 0xbc, 0x81, 0xd9, 0x84, 0xd9, 0x90, - 0xd8, 0x1c, 0xe5, 0xc7, 0x6f, 0x0e, 0xbb, 0x05, 0x6e, 0x16, 0x38, 0xfc, 0x75, 0x62, 0xf5, 0xe5, - 0xee, 0xda, 0xc8, 0xdf, 0x90, 0x02, 0x8b, 0xfd, 0x52, 0xa0, 0x82, 0x20, 0x62, 0xb3, 0xa8, 0x40, - 0x87, 0x4b, 0x34, 0x9f, 0xd2, 0x89, 0x5b, 0x01, 0xb5, 0x24, 0xd5, 0x02, 0x5c, 0xf2, 0x1f, 0xec, - 0xd7, 0x5f, 0x17, 0x5e, 0xe9, 0x6d, 0xe1, 0x29, 0x1f, 0x98, 0x4f, 0xcc, 0xfd, 0xbb, 0xa7, 0x3c, - 0x61, 0x9e, 0x31, 0x33, 0xcc, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xac, 0xe4, 0xac, 0xa7, 0xa1, - 0x02, 0x00, 0x00, + // 386 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0xd0, 0xcd, 0x8a, 0x9b, 0x50, + 0x14, 0x07, 0xf0, 0x1c, 0x35, 0xc6, 0xdc, 0xd0, 0xaf, 0xdb, 0x52, 0x2e, 0x21, 0xdc, 0x5c, 0x02, + 0x85, 0xdb, 0x45, 0x13, 0x50, 0x71, 0xd1, 0xa5, 0x8b, 0x42, 0x0a, 0x2d, 0x25, 0x92, 0x07, 0x88, + 0xad, 0x31, 0x42, 0xd4, 0x62, 0x14, 0xba, 0xec, 0x23, 0xf4, 0x15, 0xba, 0x9b, 0x47, 0x98, 0x65, + 0x96, 0xf3, 0x08, 0xb3, 0x0a, 0xa3, 0x4f, 0x30, 0xcb, 0x59, 0x0e, 0x5e, 0x6f, 0x3e, 0x9c, 0xed, + 0xec, 0x3c, 0xff, 0xdf, 0xdf, 0x73, 0xe0, 0xa2, 0x77, 0x45, 0x12, 0xaf, 0xb2, 0xdd, 0x66, 0xb5, + 0x8d, 0x83, 0x2c, 0x0c, 0xa6, 0xbf, 0xb3, 0x34, 0x4f, 0xf1, 0xcb, 0x76, 0x3a, 0xfc, 0x14, 0x46, + 0xf9, 0xa6, 0xf0, 0xa7, 0x3f, 0xd3, 0x78, 0x16, 0xa6, 0x61, 0x3a, 0x13, 0x35, 0xbf, 0x58, 0x8b, + 0x49, 0x0c, 0xe2, 0xab, 0xf9, 0x7d, 0xf2, 0x15, 0xa9, 0x6e, 0x14, 0xe2, 0x0f, 0x48, 0xf5, 0x0a, + 0x9f, 0x00, 0x03, 0x3e, 0x30, 0xdf, 0x4e, 0x9f, 0x5c, 0xf2, 0x0a, 0x7f, 0x51, 0x3b, 0x7e, 0x8f, + 0xf4, 0xef, 0x45, 0xec, 0x07, 0x19, 0x51, 0x18, 0x70, 0x75, 0x21, 0xa7, 0xcf, 0xda, 0xbf, 0xff, + 0x63, 0x98, 0xfc, 0x40, 0x7d, 0x37, 0x0a, 0x97, 0xc9, 0x6e, 0xb5, 0x0e, 0x9e, 0xbd, 0x71, 0x5f, + 0x6f, 0xfc, 0x28, 0x96, 0xe0, 0x11, 0xea, 0x7b, 0x85, 0x2f, 0x7b, 0x20, 0x7a, 0xe7, 0x40, 0x1e, + 0x3f, 0x28, 0xc8, 0x98, 0x27, 0xf9, 0xb7, 0x7a, 0x3d, 0x1e, 0xa2, 0xee, 0x3c, 0xc9, 0x1d, 0x9b, + 0x00, 0x53, 0xb8, 0xea, 0x6a, 0x37, 0x87, 0x71, 0x67, 0xd1, 0x44, 0xd2, 0x2c, 0x53, 0x1c, 0xec, + 0x5e, 0x98, 0x65, 0xe2, 0x11, 0xd2, 0xbd, 0x48, 0xa0, 0xca, 0x14, 0xfe, 0x46, 0xa2, 0xcc, 0x8e, + 0xea, 0xd8, 0x44, 0x63, 0xc0, 0xf1, 0xa5, 0x3a, 0x76, 0xad, 0xcb, 0x46, 0xbb, 0x0c, 0xb8, 0x76, + 0xd4, 0x65, 0x4b, 0x2d, 0x93, 0xe8, 0x4c, 0xe1, 0x2f, 0x2e, 0xd5, 0x32, 0x31, 0x45, 0xbd, 0x2f, + 0xd1, 0x9f, 0xe0, 0x97, 0x63, 0x93, 0x1e, 0x03, 0xae, 0x4b, 0x3e, 0x86, 0x27, 0xb7, 0x4c, 0x62, + 0x30, 0xe0, 0xbd, 0x96, 0x5b, 0x26, 0x66, 0xc8, 0xf0, 0xd6, 0xb2, 0xd0, 0x67, 0x0a, 0x7f, 0x25, + 0x0b, 0xa7, 0xf4, 0xdc, 0x70, 0x6c, 0x82, 0x18, 0xf0, 0xd7, 0xed, 0x86, 0x63, 0x63, 0x82, 0x34, + 0x37, 0x4d, 0xb7, 0x64, 0xc0, 0x80, 0x1b, 0x52, 0x45, 0xd2, 0x3c, 0xb0, 0xcb, 0x6e, 0x4b, 0xda, + 0xb9, 0x2b, 0x29, 0xdc, 0x97, 0x14, 0x1e, 0x4a, 0x0a, 0x7f, 0x2b, 0x0a, 0x57, 0x15, 0x85, 0xeb, + 0x8a, 0xc2, 0xbe, 0xa2, 0xf0, 0x18, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x4e, 0xc7, 0x4e, 0xa1, 0x02, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto index b2ca42c1..1fdbceaf 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge_test.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge_test.go index 58505b7b..b842ef9b 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge_test.go +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package unmarshalmerge import ( diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go index 1f353a97..9d5ee29c 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go @@ -19,6 +19,7 @@ package unmarshalmerge import testing "testing" import math_rand "math/rand" import time "time" +import unsafe "unsafe" import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" @@ -36,18 +37,18 @@ func TestBigProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBig(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Big{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -75,11 +76,11 @@ func BenchmarkBigProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -89,11 +90,11 @@ func BenchmarkBigProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBig(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBig(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Big{} b.ResetTimer() @@ -107,21 +108,25 @@ func BenchmarkBigProtoUnmarshal(b *testing.B) { } func TestBigUnsafeProto(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -149,11 +154,11 @@ func BenchmarkBigUnsafeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -163,11 +168,11 @@ func BenchmarkBigUnsafeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBigUnsafe(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBigUnsafe(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &BigUnsafe{} b.ResetTimer() @@ -184,18 +189,18 @@ func TestSubProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSub(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Sub{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -223,11 +228,11 @@ func BenchmarkSubProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -237,11 +242,11 @@ func BenchmarkSubProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedSub(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedSub(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &Sub{} b.ResetTimer() @@ -258,18 +263,18 @@ func TestIntMergeProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -297,11 +302,11 @@ func BenchmarkIntMergeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) if err != nil { panic(err) } - total += len(data) + total += len(dAtA) } b.SetBytes(int64(total / b.N)) } @@ -311,11 +316,11 @@ func BenchmarkIntMergeProtoUnmarshal(b *testing.B) { total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - data, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedIntMerge(popr, false)) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedIntMerge(popr, false)) if err != nil { panic(err) } - datas[i] = data + datas[i] = dAtA } msg := &IntMerge{} b.ResetTimer() @@ -416,9 +421,9 @@ func TestBigProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBig(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Big{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -433,9 +438,9 @@ func TestBigProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBig(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Big{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -450,9 +455,9 @@ func TestBigUnsafeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -467,9 +472,9 @@ func TestBigUnsafeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -484,9 +489,9 @@ func TestSubProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSub(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &Sub{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -501,9 +506,9 @@ func TestSubProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedSub(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &Sub{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -518,9 +523,9 @@ func TestIntMergeProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -535,9 +540,9 @@ func TestIntMergeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -551,12 +556,12 @@ func TestIntMergeProtoCompactText(t *testing.T) { func TestBigVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBig(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Big{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -564,14 +569,18 @@ func TestBigVerboseEqual(t *testing.T) { } } func TestBigUnsafeVerboseEqual(t *testing.T) { + var bigendian uint32 = 0x01020304 + if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { + t.Skip("unsafe does not work on big endian architectures") + } popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBigUnsafe(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -581,12 +590,12 @@ func TestBigUnsafeVerboseEqual(t *testing.T) { func TestSubVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSub(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &Sub{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -596,12 +605,12 @@ func TestSubVerboseEqual(t *testing.T) { func TestIntMergeVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedIntMerge(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/Makefile b/vendor/github.com/gogo/protobuf/test/unrecognized/Makefile index bb731f09..f09551ae 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/Makefile +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/oldnew_test.go b/vendor/github.com/gogo/protobuf/test/unrecognized/oldnew_test.go index 005e37dc..16751014 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/oldnew_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/oldnew_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go index 1d537578..0b7e9df6 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go @@ -35,8 +35,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -48,11 +46,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type A struct { - Field1 *int64 `protobuf:"varint,2,opt,name=Field1,json=field1" json:"Field1,omitempty"` - B []*B `protobuf:"bytes,1,rep,name=B,json=b" json:"B,omitempty"` + Field1 *int64 `protobuf:"varint,2,opt,name=Field1" json:"Field1,omitempty"` + B []*B `protobuf:"bytes,1,rep,name=B" json:"B,omitempty"` } func (m *A) Reset() { *m = A{} } @@ -60,9 +60,9 @@ func (*A) ProtoMessage() {} func (*A) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{0} } type B struct { - C *C `protobuf:"bytes,1,opt,name=C,json=c" json:"C,omitempty"` - D *D `protobuf:"bytes,2,opt,name=D,json=d" json:"D,omitempty"` - F *OldC `protobuf:"bytes,5,opt,name=F,json=f" json:"F,omitempty"` + C *C `protobuf:"bytes,1,opt,name=C" json:"C,omitempty"` + D *D `protobuf:"bytes,2,opt,name=D" json:"D,omitempty"` + F *OldC `protobuf:"bytes,5,opt,name=F" json:"F,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -71,7 +71,7 @@ func (*B) ProtoMessage() {} func (*B) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{1} } type D struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -80,12 +80,12 @@ func (*D) ProtoMessage() {} func (*D) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{2} } type C struct { - Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *string `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field4 *float64 `protobuf:"fixed64,4,opt,name=Field4,json=field4" json:"Field4,omitempty"` - Field5 [][]byte `protobuf:"bytes,5,rep,name=Field5,json=field5" json:"Field5,omitempty"` - Field6 *int64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []float32 `protobuf:"fixed32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` + Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *string `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field4 *float64 `protobuf:"fixed64,4,opt,name=Field4" json:"Field4,omitempty"` + Field5 [][]byte `protobuf:"bytes,5,rep,name=Field5" json:"Field5,omitempty"` + Field6 *int64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 []float32 `protobuf:"fixed32,7,rep,name=Field7" json:"Field7,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -94,8 +94,8 @@ func (*C) ProtoMessage() {} func (*C) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{3} } type U struct { - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *uint32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 *uint32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` } func (m *U) Reset() { *m = U{} } @@ -103,8 +103,8 @@ func (*U) ProtoMessage() {} func (*U) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{4} } type UnoM struct { - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *uint32 `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` + Field3 *uint32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` } func (m *UnoM) Reset() { *m = UnoM{} } @@ -112,8 +112,8 @@ func (*UnoM) ProtoMessage() {} func (*UnoM) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{5} } type OldA struct { - Field1 *int64 `protobuf:"varint,2,opt,name=Field1,json=field1" json:"Field1,omitempty"` - B []*OldB `protobuf:"bytes,1,rep,name=B,json=b" json:"B,omitempty"` + Field1 *int64 `protobuf:"varint,2,opt,name=Field1" json:"Field1,omitempty"` + B []*OldB `protobuf:"bytes,1,rep,name=B" json:"B,omitempty"` } func (m *OldA) Reset() { *m = OldA{} } @@ -121,8 +121,8 @@ func (*OldA) ProtoMessage() {} func (*OldA) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{6} } type OldB struct { - C *OldC `protobuf:"bytes,1,opt,name=C,json=c" json:"C,omitempty"` - F *OldC `protobuf:"bytes,5,opt,name=F,json=f" json:"F,omitempty"` + C *OldC `protobuf:"bytes,1,opt,name=C" json:"C,omitempty"` + F *OldC `protobuf:"bytes,5,opt,name=F" json:"F,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -131,11 +131,11 @@ func (*OldB) ProtoMessage() {} func (*OldB) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{7} } type OldC struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 *string `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"` - Field6 *int64 `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"` - Field7 []float32 `protobuf:"fixed32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *float64 `protobuf:"fixed64,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 *string `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` + Field6 *int64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` + Field7 []float32 `protobuf:"fixed32,7,rep,name=Field7" json:"Field7,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -144,8 +144,8 @@ func (*OldC) ProtoMessage() {} func (*OldC) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{8} } type OldU struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -154,8 +154,8 @@ func (*OldU) ProtoMessage() {} func (*OldU) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognized, []int{9} } type OldUnoM struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -212,229 +212,249 @@ func (this *OldUnoM) Description() (desc *github_com_gogo_protobuf_protoc_gen_go func UnrecognizedDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3542 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x6c, 0x23, 0xe5, - 0xf5, 0x67, 0x62, 0x3b, 0xb1, 0x8f, 0x1d, 0xc7, 0x99, 0x84, 0x5d, 0x6f, 0x60, 0x6f, 0xe6, 0xb6, - 0x2c, 0x7f, 0xb2, 0xb0, 0xec, 0xd5, 0xfc, 0xff, 0xf0, 0x77, 0x1c, 0x6f, 0xc8, 0x2a, 0x89, 0xd3, - 0x49, 0x0c, 0x0b, 0x7d, 0x18, 0x4d, 0xc6, 0x13, 0xc7, 0xbb, 0xe3, 0x19, 0xd7, 0x33, 0x5e, 0x36, - 0x3c, 0x54, 0x54, 0xf4, 0x86, 0xaa, 0xb6, 0xb4, 0x54, 0x2a, 0xf7, 0x02, 0x52, 0x0b, 0xa5, 0x37, - 0xe8, 0x4d, 0x55, 0x9f, 0x2a, 0x55, 0xb4, 0x3c, 0x55, 0xb4, 0x4f, 0x7d, 0xe8, 0x03, 0x54, 0x48, - 0xbd, 0xd1, 0x96, 0x4a, 0x2b, 0xb5, 0xd2, 0xbe, 0xf4, 0x7c, 0xb7, 0xf1, 0x8c, 0xed, 0x64, 0x1c, - 0x24, 0x4a, 0x57, 0x1a, 0xad, 0xe7, 0x7c, 0xe7, 0xf7, 0x9b, 0x6f, 0xce, 0x39, 0xdf, 0x39, 0xe7, - 0xfb, 0x26, 0xf0, 0xf3, 0xdb, 0xe1, 0x40, 0xcd, 0xb6, 0x6b, 0xa6, 0x71, 0xa4, 0xd9, 0xb2, 0x5d, - 0x7b, 0xad, 0xbd, 0x7e, 0xa4, 0x6a, 0x38, 0x7a, 0xab, 0xde, 0x74, 0xed, 0xd6, 0x34, 0x95, 0xc9, - 0x63, 0x4c, 0x63, 0x5a, 0x68, 0xe4, 0x16, 0x61, 0xfc, 0x4c, 0xdd, 0x34, 0x66, 0x3d, 0xc5, 0x15, - 0xc3, 0x95, 0x4f, 0x41, 0x74, 0x1d, 0x85, 0x59, 0xe9, 0x40, 0xe4, 0x50, 0xf2, 0xe8, 0xf5, 0xd3, - 0x5d, 0xa0, 0xe9, 0x20, 0x62, 0x99, 0x88, 0x15, 0x8a, 0xc8, 0xbd, 0x13, 0x85, 0x89, 0x3e, 0xa3, - 0xb2, 0x0c, 0x51, 0x4b, 0x6b, 0x10, 0x46, 0xe9, 0x50, 0x42, 0xa1, 0xbf, 0xe5, 0x2c, 0x8c, 0x34, - 0x35, 0xfd, 0x82, 0x56, 0x33, 0xb2, 0x43, 0x54, 0x2c, 0x6e, 0xe5, 0x7d, 0x00, 0x55, 0xa3, 0x69, - 0x58, 0x55, 0xc3, 0xd2, 0x37, 0xb3, 0x11, 0x9c, 0x45, 0x42, 0xf1, 0x49, 0xe4, 0x5b, 0x60, 0xbc, - 0xd9, 0x5e, 0x33, 0xeb, 0xba, 0xea, 0x53, 0x03, 0x54, 0x8b, 0x29, 0x19, 0x36, 0x30, 0xdb, 0x51, - 0xbe, 0x09, 0xc6, 0x1e, 0x34, 0xb4, 0x0b, 0x7e, 0xd5, 0x24, 0x55, 0x4d, 0x13, 0xb1, 0x4f, 0xb1, - 0x08, 0xa9, 0x86, 0xe1, 0x38, 0x38, 0x01, 0xd5, 0xdd, 0x6c, 0x1a, 0xd9, 0x28, 0x7d, 0xfb, 0x03, - 0x3d, 0x6f, 0xdf, 0xfd, 0xe6, 0x49, 0x8e, 0x5a, 0x45, 0x90, 0x5c, 0x80, 0x84, 0x61, 0xb5, 0x1b, - 0x8c, 0x21, 0xb6, 0x85, 0xfd, 0x4a, 0xa8, 0xd1, 0xcd, 0x12, 0x27, 0x30, 0x4e, 0x31, 0xe2, 0x18, - 0xad, 0x8b, 0x75, 0xdd, 0xc8, 0x0e, 0x53, 0x82, 0x9b, 0x7a, 0x08, 0x56, 0xd8, 0x78, 0x37, 0x87, - 0xc0, 0xe1, 0xab, 0x24, 0x8c, 0x4b, 0xae, 0x61, 0x39, 0x75, 0xdb, 0xca, 0x8e, 0x50, 0x92, 0x1b, - 0xfa, 0x78, 0xd1, 0x30, 0xab, 0xdd, 0x14, 0x1d, 0x9c, 0x7c, 0x02, 0x46, 0xec, 0xa6, 0x8b, 0xbf, - 0x9c, 0x6c, 0x1c, 0xfd, 0x93, 0x3c, 0x7a, 0x6d, 0xdf, 0x40, 0x28, 0x33, 0x1d, 0x45, 0x28, 0xcb, - 0xf3, 0x90, 0x71, 0xec, 0x76, 0x4b, 0x37, 0x54, 0xdd, 0xae, 0x1a, 0x6a, 0xdd, 0x5a, 0xb7, 0xb3, - 0x09, 0x4a, 0xb0, 0xbf, 0xf7, 0x45, 0xa8, 0x62, 0x11, 0xf5, 0xe6, 0x51, 0x4d, 0x49, 0x3b, 0x81, - 0x7b, 0x79, 0x17, 0x0c, 0x3b, 0x9b, 0x96, 0xab, 0x5d, 0xca, 0xa6, 0x68, 0x84, 0xf0, 0xbb, 0xdc, - 0x3f, 0x63, 0x30, 0x36, 0x48, 0x88, 0xdd, 0x09, 0xb1, 0x75, 0xf2, 0x96, 0x18, 0x60, 0x3b, 0xb0, - 0x01, 0xc3, 0x04, 0x8d, 0x38, 0xfc, 0x3e, 0x8d, 0x58, 0x80, 0xa4, 0x65, 0x38, 0xae, 0x51, 0x65, - 0x11, 0x11, 0x19, 0x30, 0xa6, 0x80, 0x81, 0x7a, 0x43, 0x2a, 0xfa, 0xbe, 0x42, 0xea, 0x1c, 0x8c, - 0x79, 0x53, 0x52, 0x5b, 0x9a, 0x55, 0x13, 0xb1, 0x79, 0x24, 0x6c, 0x26, 0xd3, 0x25, 0x81, 0x53, - 0x08, 0x4c, 0x49, 0x1b, 0x81, 0x7b, 0x79, 0x16, 0xc0, 0xb6, 0x0c, 0x7b, 0x1d, 0x97, 0x97, 0x6e, - 0x62, 0x9c, 0xf4, 0xb7, 0x52, 0x99, 0xa8, 0xf4, 0x58, 0xc9, 0x66, 0x52, 0xdd, 0x94, 0x4f, 0x77, - 0x42, 0x6d, 0x64, 0x8b, 0x48, 0x59, 0x64, 0x8b, 0xac, 0x27, 0xda, 0x2a, 0x90, 0x6e, 0x19, 0x24, - 0xee, 0xd1, 0xc4, 0xec, 0xcd, 0x12, 0x74, 0x12, 0xd3, 0xa1, 0x6f, 0xa6, 0x70, 0x18, 0x7b, 0xb1, - 0xd1, 0x96, 0xff, 0x56, 0xbe, 0x0e, 0x3c, 0x81, 0x4a, 0xc3, 0x0a, 0x68, 0x16, 0x4a, 0x09, 0xe1, - 0x12, 0xca, 0xa6, 0x4e, 0x41, 0x3a, 0x68, 0x1e, 0x79, 0x12, 0x62, 0x8e, 0xab, 0xb5, 0x5c, 0x1a, - 0x85, 0x31, 0x85, 0xdd, 0xc8, 0x19, 0x88, 0x60, 0x92, 0xa1, 0x59, 0x2e, 0xa6, 0x90, 0x9f, 0x53, - 0x27, 0x61, 0x34, 0xf0, 0xf8, 0x41, 0x81, 0xb9, 0x27, 0x86, 0x61, 0xb2, 0x5f, 0xcc, 0xf5, 0x0d, - 0x7f, 0x5c, 0x3e, 0x18, 0x01, 0x6b, 0x46, 0x0b, 0xe3, 0x8e, 0x30, 0xf0, 0x3b, 0x8c, 0xa8, 0x98, - 0xa9, 0xad, 0x19, 0x26, 0x46, 0x93, 0x74, 0x28, 0x7d, 0xf4, 0x96, 0x81, 0xa2, 0x7a, 0x7a, 0x81, - 0x40, 0x14, 0x86, 0x94, 0xef, 0x82, 0x28, 0x4f, 0x71, 0x84, 0xe1, 0xf0, 0x60, 0x0c, 0x24, 0x16, - 0x15, 0x8a, 0x93, 0xaf, 0x81, 0x04, 0xf9, 0x9f, 0xd9, 0x76, 0x98, 0xce, 0x39, 0x4e, 0x04, 0xc4, - 0xae, 0xf2, 0x14, 0xc4, 0x69, 0x98, 0x55, 0x0d, 0x51, 0x1a, 0xbc, 0x7b, 0xe2, 0x98, 0xaa, 0xb1, - 0xae, 0xb5, 0x4d, 0x57, 0xbd, 0xa8, 0x99, 0x6d, 0x83, 0x06, 0x0c, 0x3a, 0x86, 0x0b, 0xef, 0x25, - 0x32, 0x79, 0x3f, 0x24, 0x59, 0x54, 0xd6, 0x11, 0x73, 0x89, 0x66, 0x9f, 0x98, 0xc2, 0x02, 0x75, - 0x9e, 0x48, 0xc8, 0xe3, 0xcf, 0x3b, 0xb8, 0x16, 0xb8, 0x6b, 0xe9, 0x23, 0x88, 0x80, 0x3e, 0xfe, - 0x64, 0x77, 0xe2, 0xdb, 0xdb, 0xff, 0xf5, 0xba, 0x63, 0x31, 0xf7, 0xe3, 0x21, 0x88, 0xd2, 0xf5, - 0x36, 0x06, 0xc9, 0xd5, 0xfb, 0x97, 0x4b, 0xea, 0x6c, 0xb9, 0x32, 0xb3, 0x50, 0xca, 0x48, 0x72, - 0x1a, 0x80, 0x0a, 0xce, 0x2c, 0x94, 0x0b, 0xab, 0x99, 0x21, 0xef, 0x7e, 0x7e, 0x69, 0xf5, 0xc4, - 0xb1, 0x4c, 0xc4, 0x03, 0x54, 0x98, 0x20, 0xea, 0x57, 0xb8, 0xe3, 0x68, 0x26, 0x86, 0x91, 0x90, - 0x62, 0x04, 0xf3, 0xe7, 0x4a, 0xb3, 0xa8, 0x31, 0x1c, 0x94, 0xa0, 0xce, 0x88, 0x3c, 0x0a, 0x09, - 0x2a, 0x99, 0x29, 0x97, 0x17, 0x32, 0x71, 0x8f, 0x73, 0x65, 0x55, 0x99, 0x5f, 0x9a, 0xcb, 0x24, - 0x3c, 0xce, 0x39, 0xa5, 0x5c, 0x59, 0xce, 0x80, 0xc7, 0xb0, 0x58, 0x5a, 0x59, 0x29, 0xcc, 0x95, - 0x32, 0x49, 0x4f, 0x63, 0xe6, 0xfe, 0xd5, 0xd2, 0x4a, 0x26, 0x15, 0x98, 0x16, 0x3e, 0x62, 0xd4, - 0x7b, 0x44, 0x69, 0xa9, 0xb2, 0x98, 0x49, 0xcb, 0xe3, 0x30, 0xca, 0x1e, 0x21, 0x26, 0x31, 0xd6, - 0x25, 0xc2, 0x99, 0x66, 0x3a, 0x13, 0x61, 0x2c, 0xe3, 0x01, 0x01, 0x6a, 0xc8, 0xb9, 0x22, 0xc4, - 0x68, 0x74, 0x61, 0x14, 0xa7, 0x17, 0x0a, 0x33, 0xa5, 0x05, 0xb5, 0xbc, 0xbc, 0x3a, 0x5f, 0x5e, - 0x2a, 0x2c, 0xa0, 0xed, 0x3c, 0x99, 0x52, 0xfa, 0x48, 0x65, 0x5e, 0x29, 0xcd, 0xa2, 0xfd, 0x7c, - 0xb2, 0xe5, 0x52, 0x61, 0x15, 0x65, 0x91, 0xdc, 0x61, 0x98, 0xec, 0x97, 0x67, 0xfa, 0xad, 0x8c, - 0xdc, 0x8b, 0x12, 0x4c, 0xf4, 0x49, 0x99, 0x7d, 0x57, 0xd1, 0xdd, 0x10, 0x63, 0x91, 0xc6, 0x8a, - 0xc8, 0xcd, 0x7d, 0x73, 0x2f, 0x8d, 0xbb, 0x9e, 0x42, 0x42, 0x71, 0xfe, 0x42, 0x1a, 0xd9, 0xa2, - 0x90, 0x12, 0x8a, 0x9e, 0x70, 0x7a, 0x44, 0x82, 0xec, 0x56, 0xdc, 0x21, 0xeb, 0x7d, 0x28, 0xb0, - 0xde, 0xef, 0xec, 0x9e, 0xc0, 0xc1, 0xad, 0xdf, 0xa1, 0x67, 0x16, 0x2f, 0x49, 0xb0, 0xab, 0x7f, - 0xbf, 0xd1, 0x77, 0x0e, 0x77, 0xc1, 0x70, 0xc3, 0x70, 0x37, 0x6c, 0x51, 0x73, 0x6f, 0xec, 0x93, - 0xc9, 0xc9, 0x70, 0xb7, 0xad, 0x38, 0xca, 0x5f, 0x0a, 0x22, 0x5b, 0x35, 0x0d, 0x6c, 0x36, 0x3d, - 0x33, 0x7d, 0x74, 0x08, 0xae, 0xee, 0x4b, 0xde, 0x77, 0xa2, 0x7b, 0x01, 0xea, 0x56, 0xb3, 0xed, - 0xb2, 0xba, 0xca, 0xd2, 0x4c, 0x82, 0x4a, 0xe8, 0x12, 0x26, 0x29, 0xa4, 0xed, 0x7a, 0xe3, 0x11, - 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0x4e, 0x75, 0x26, 0x1a, 0xa5, 0x13, 0xdd, 0xb7, 0xc5, 0x9b, 0xf6, - 0x94, 0xac, 0xdb, 0x20, 0xa3, 0x9b, 0x75, 0xc3, 0x72, 0x55, 0xc7, 0x6d, 0x19, 0x5a, 0xa3, 0x6e, - 0xd5, 0x68, 0x1e, 0x8d, 0xe7, 0x63, 0xeb, 0x9a, 0xe9, 0x18, 0xca, 0x18, 0x1b, 0x5e, 0x11, 0xa3, - 0x04, 0x41, 0x8b, 0x45, 0xcb, 0x87, 0x18, 0x0e, 0x20, 0xd8, 0xb0, 0x87, 0xc8, 0xfd, 0x66, 0x04, - 0x92, 0xbe, 0xee, 0x4c, 0x3e, 0x08, 0xa9, 0xf3, 0xda, 0x45, 0x4d, 0x15, 0x1d, 0x37, 0xb3, 0x44, - 0x92, 0xc8, 0x96, 0x79, 0xd7, 0x7d, 0x1b, 0x4c, 0x52, 0x15, 0x7c, 0x47, 0x7c, 0x90, 0x6e, 0x6a, - 0x8e, 0x43, 0x8d, 0x16, 0xa7, 0xaa, 0x32, 0x19, 0x2b, 0x93, 0xa1, 0xa2, 0x18, 0x91, 0x8f, 0xc3, - 0x04, 0x45, 0x34, 0x30, 0xf1, 0xd6, 0x9b, 0xa6, 0xa1, 0x92, 0x3d, 0x80, 0x43, 0xf3, 0xa9, 0x37, - 0xb3, 0x71, 0xa2, 0xb1, 0xc8, 0x15, 0xc8, 0x8c, 0x1c, 0x79, 0x0e, 0xf6, 0x52, 0x58, 0xcd, 0xb0, - 0x8c, 0x96, 0xe6, 0x1a, 0xaa, 0xf1, 0xb1, 0x36, 0xea, 0xaa, 0x9a, 0x55, 0x55, 0x37, 0x34, 0x67, - 0x23, 0x3b, 0xe9, 0x27, 0xd8, 0x43, 0x74, 0xe7, 0xb8, 0x6a, 0x89, 0x6a, 0x16, 0xac, 0xea, 0x3d, - 0xa8, 0x27, 0xe7, 0x61, 0x17, 0x25, 0x42, 0xa3, 0xe0, 0x3b, 0xab, 0xfa, 0x86, 0xa1, 0x5f, 0x50, - 0xdb, 0xee, 0xfa, 0xa9, 0xec, 0x35, 0x7e, 0x06, 0x3a, 0xc9, 0x15, 0xaa, 0x53, 0x24, 0x2a, 0x15, - 0xd4, 0x90, 0x57, 0x20, 0x45, 0xfc, 0xd1, 0xa8, 0x3f, 0x84, 0xd3, 0xb6, 0x5b, 0xb4, 0x46, 0xa4, - 0xfb, 0x2c, 0x6e, 0x9f, 0x11, 0xa7, 0xcb, 0x1c, 0xb0, 0x88, 0xfd, 0x69, 0x3e, 0xb6, 0xb2, 0x5c, - 0x2a, 0xcd, 0x2a, 0x49, 0xc1, 0x72, 0xc6, 0x6e, 0x91, 0x98, 0xaa, 0xd9, 0x9e, 0x8d, 0x93, 0x2c, - 0xa6, 0x6a, 0xb6, 0xb0, 0x30, 0xda, 0x4b, 0xd7, 0xd9, 0x6b, 0xe3, 0xde, 0x85, 0x37, 0xeb, 0x4e, - 0x36, 0x13, 0xb0, 0x97, 0xae, 0xcf, 0x31, 0x05, 0x1e, 0xe6, 0x0e, 0x2e, 0x89, 0xab, 0x3b, 0xf6, - 0xf2, 0x03, 0xc7, 0x7b, 0xde, 0xb2, 0x1b, 0x8a, 0x4f, 0x6c, 0x6e, 0xf6, 0x02, 0xe5, 0xc0, 0x13, - 0x9b, 0x9b, 0xdd, 0xb0, 0x1b, 0xe8, 0x06, 0xac, 0x65, 0xe8, 0x68, 0xf2, 0x6a, 0x76, 0xb7, 0x5f, - 0xdb, 0x37, 0x20, 0x1f, 0xc1, 0x40, 0xd6, 0x55, 0xc3, 0xd2, 0xd6, 0xd0, 0xf7, 0x5a, 0x0b, 0x7f, - 0x38, 0xd9, 0xfd, 0x7e, 0xe5, 0xb4, 0xae, 0x97, 0xe8, 0x68, 0x81, 0x0e, 0xca, 0x87, 0x61, 0xdc, - 0x5e, 0x3b, 0xaf, 0xb3, 0xe0, 0x52, 0x91, 0x67, 0xbd, 0x7e, 0x29, 0x7b, 0x3d, 0x35, 0xd3, 0x18, - 0x19, 0xa0, 0xa1, 0xb5, 0x4c, 0xc5, 0xf2, 0xcd, 0x48, 0xee, 0x6c, 0x68, 0xad, 0x26, 0x2d, 0xd2, - 0x0e, 0x1a, 0xd5, 0xc8, 0xde, 0xc0, 0x54, 0x99, 0x7c, 0x49, 0x88, 0xe5, 0x12, 0xec, 0x27, 0x2f, - 0x6f, 0x69, 0x96, 0xad, 0xb6, 0x1d, 0x43, 0xed, 0x4c, 0xd1, 0xf3, 0xc5, 0x8d, 0x64, 0x5a, 0xca, - 0xb5, 0x42, 0xad, 0xe2, 0x60, 0x32, 0x13, 0x4a, 0xc2, 0x3d, 0xe7, 0x60, 0xb2, 0x6d, 0xd5, 0x2d, - 0x0c, 0x71, 0x1c, 0x21, 0x60, 0xb6, 0x60, 0xb3, 0x7f, 0x18, 0xd9, 0xa2, 0xe9, 0xae, 0xf8, 0xb5, - 0x59, 0x90, 0x28, 0x13, 0xed, 0x5e, 0x61, 0x2e, 0x0f, 0x29, 0x7f, 0xec, 0xc8, 0x09, 0x60, 0xd1, - 0x83, 0xd5, 0x0d, 0x2b, 0x6a, 0xb1, 0x3c, 0x4b, 0x6a, 0xe1, 0x03, 0x25, 0x2c, 0x6c, 0x58, 0x93, - 0x17, 0xe6, 0x57, 0x4b, 0xaa, 0x52, 0x59, 0x5a, 0x9d, 0x5f, 0x2c, 0x65, 0x22, 0x87, 0x13, 0xf1, - 0x3f, 0x8e, 0x64, 0x1e, 0xc6, 0x7f, 0x43, 0xb9, 0xd7, 0x87, 0x20, 0x1d, 0xec, 0x83, 0xe5, 0xff, - 0x85, 0xdd, 0x62, 0xd3, 0xea, 0x18, 0xae, 0xfa, 0x60, 0xbd, 0x45, 0xc3, 0xb9, 0xa1, 0xb1, 0x4e, - 0xd2, 0xf3, 0xc4, 0x24, 0xd7, 0xc2, 0xed, 0xfd, 0x7d, 0xa8, 0x73, 0x86, 0xaa, 0xc8, 0x0b, 0xb0, - 0x1f, 0x4d, 0x86, 0xbd, 0xa6, 0x55, 0xd5, 0x5a, 0x55, 0xb5, 0x73, 0x5c, 0xa0, 0x6a, 0x3a, 0xc6, - 0x81, 0x63, 0xb3, 0x4a, 0xe2, 0xb1, 0x5c, 0x6b, 0xd9, 0x2b, 0x5c, 0xb9, 0x93, 0x62, 0x0b, 0x5c, - 0xb5, 0x2b, 0x6a, 0x22, 0x5b, 0x45, 0x0d, 0xf6, 0x5e, 0x0d, 0xad, 0x89, 0x61, 0xe3, 0xb6, 0x36, - 0x69, 0xf7, 0x16, 0x57, 0xe2, 0x28, 0x28, 0x91, 0xfb, 0x0f, 0xce, 0x07, 0x7e, 0x3b, 0xfe, 0x2e, - 0x02, 0x29, 0x7f, 0x07, 0x47, 0x1a, 0x62, 0x9d, 0xa6, 0x79, 0x89, 0x66, 0x81, 0xeb, 0xb6, 0xed, - 0xf7, 0xa6, 0x8b, 0x24, 0xff, 0xe7, 0x87, 0x59, 0x5f, 0xa5, 0x30, 0x24, 0xa9, 0xbd, 0x24, 0xd6, - 0x0c, 0xd6, 0xad, 0xc7, 0x15, 0x7e, 0x87, 0xc9, 0x6e, 0xf8, 0xbc, 0x43, 0xb9, 0x87, 0x29, 0xf7, - 0xf5, 0xdb, 0x73, 0x9f, 0x5d, 0xa1, 0xe4, 0x89, 0xb3, 0x2b, 0xea, 0x52, 0x59, 0x59, 0x2c, 0x2c, - 0x28, 0x1c, 0x2e, 0xef, 0x81, 0xa8, 0xa9, 0x3d, 0xb4, 0x19, 0xac, 0x14, 0x54, 0x34, 0xa8, 0xe1, - 0x91, 0x81, 0x1c, 0x79, 0x04, 0xf3, 0x33, 0x15, 0x7d, 0x80, 0xa1, 0x7f, 0x04, 0x62, 0xd4, 0x5e, - 0x32, 0x00, 0xb7, 0x58, 0xe6, 0x2a, 0x39, 0x0e, 0xd1, 0x62, 0x59, 0x21, 0xe1, 0x8f, 0xf1, 0xce, - 0xa4, 0xea, 0xf2, 0x7c, 0xa9, 0x88, 0x2b, 0x20, 0x77, 0x1c, 0x86, 0x99, 0x11, 0xc8, 0xd2, 0xf0, - 0xcc, 0x80, 0x20, 0x76, 0xcb, 0x39, 0x24, 0x31, 0x5a, 0x59, 0x9c, 0x29, 0x29, 0x99, 0x21, 0xbf, - 0x7b, 0x7f, 0x2a, 0x41, 0xd2, 0xd7, 0x50, 0x91, 0x52, 0xae, 0x99, 0xa6, 0xfd, 0xa0, 0xaa, 0x99, - 0x75, 0xcc, 0x50, 0xcc, 0x3f, 0x40, 0x45, 0x05, 0x22, 0x19, 0xd4, 0x7e, 0xff, 0x91, 0xd8, 0x7c, - 0x4e, 0x82, 0x4c, 0x77, 0x33, 0xd6, 0x35, 0x41, 0xe9, 0x43, 0x9d, 0xe0, 0x33, 0x12, 0xa4, 0x83, - 0x1d, 0x58, 0xd7, 0xf4, 0x0e, 0x7e, 0xa8, 0xd3, 0x7b, 0x5a, 0x82, 0xd1, 0x40, 0xdf, 0xf5, 0x5f, - 0x35, 0xbb, 0xa7, 0x22, 0x30, 0xd1, 0x07, 0x87, 0x09, 0x88, 0x35, 0xa8, 0xac, 0x67, 0xbe, 0x75, - 0x90, 0x67, 0x4d, 0x93, 0xfa, 0xb7, 0xac, 0xb5, 0x5c, 0xde, 0xcf, 0x62, 0xbd, 0xac, 0x57, 0x31, - 0xa9, 0xd6, 0xd7, 0xeb, 0xd8, 0xbe, 0xb1, 0x1d, 0x0b, 0xeb, 0x5a, 0xc7, 0x3a, 0x72, 0xb6, 0x3d, - 0xfe, 0x1f, 0x90, 0x9b, 0xb6, 0x53, 0x77, 0xeb, 0x17, 0xc9, 0xf1, 0x9c, 0xd8, 0x48, 0x93, 0x2e, - 0x36, 0xaa, 0x64, 0xc4, 0xc8, 0xbc, 0xe5, 0x7a, 0xda, 0x96, 0x51, 0xd3, 0xba, 0xb4, 0x49, 0x1a, - 0x8a, 0x28, 0x19, 0x31, 0xe2, 0x69, 0x63, 0xa3, 0x59, 0xb5, 0xdb, 0xa4, 0x21, 0x60, 0x7a, 0x24, - 0xeb, 0x49, 0x4a, 0x92, 0xc9, 0x3c, 0x15, 0xde, 0xb1, 0x75, 0x76, 0xf0, 0x29, 0x25, 0xc9, 0x64, - 0x4c, 0xe5, 0x26, 0x18, 0xd3, 0x6a, 0xb5, 0x16, 0x21, 0x17, 0x44, 0xac, 0x0d, 0x4d, 0x7b, 0x62, - 0xaa, 0x38, 0x75, 0x16, 0xe2, 0xc2, 0x0e, 0xa4, 0xb0, 0x10, 0x4b, 0x60, 0xcd, 0xa7, 0xe7, 0x28, - 0x43, 0x64, 0x53, 0x6f, 0x89, 0x41, 0x7c, 0x68, 0xdd, 0x51, 0x3b, 0x07, 0x7a, 0x43, 0x38, 0x1e, - 0x57, 0x92, 0x75, 0xc7, 0x3b, 0xc1, 0xc9, 0xbd, 0x84, 0xe5, 0x35, 0x78, 0x20, 0x29, 0xcf, 0x42, - 0xdc, 0xb4, 0x31, 0x3e, 0x08, 0x82, 0x9d, 0x86, 0x1f, 0x0a, 0x39, 0xc3, 0x9c, 0x5e, 0xe0, 0xfa, - 0x8a, 0x87, 0x9c, 0xfa, 0x95, 0x04, 0x71, 0x21, 0xc6, 0x42, 0x11, 0x6d, 0x6a, 0xee, 0x06, 0xa5, - 0x8b, 0xcd, 0x0c, 0x65, 0x24, 0x85, 0xde, 0x13, 0x39, 0x76, 0x33, 0x16, 0x0d, 0x01, 0x2e, 0x27, - 0xf7, 0xc4, 0xaf, 0xa6, 0xa1, 0x55, 0x69, 0x83, 0x6b, 0x37, 0x1a, 0xe8, 0x49, 0x47, 0xf8, 0x95, - 0xcb, 0x8b, 0x5c, 0x4c, 0xce, 0xc5, 0xdd, 0x96, 0x56, 0x37, 0x03, 0xba, 0x51, 0xaa, 0x9b, 0x11, - 0x03, 0x9e, 0x72, 0x1e, 0xf6, 0x08, 0xde, 0xaa, 0xe1, 0x6a, 0xd8, 0x3c, 0x57, 0x3b, 0xa0, 0x61, - 0x7a, 0xda, 0xb5, 0x9b, 0x2b, 0xcc, 0xf2, 0x71, 0x81, 0x9d, 0x39, 0x87, 0x8d, 0xac, 0xdd, 0xe8, - 0xb6, 0xc4, 0x4c, 0xa6, 0x6b, 0xdf, 0xe5, 0xdc, 0x23, 0x3d, 0x00, 0x9d, 0xa6, 0xe2, 0xc5, 0xa1, - 0xc8, 0xdc, 0xf2, 0xcc, 0x2b, 0x43, 0x53, 0x73, 0x0c, 0xb7, 0x2c, 0x2c, 0xa8, 0x18, 0xeb, 0xa6, - 0xa1, 0x13, 0xeb, 0xc0, 0x0b, 0xd7, 0xc1, 0xad, 0xb5, 0xba, 0xbb, 0xd1, 0x5e, 0x9b, 0xc6, 0x27, - 0x1c, 0xa9, 0xd9, 0x35, 0xbb, 0xf3, 0x39, 0x83, 0xdc, 0xd1, 0x1b, 0xfa, 0x8b, 0x7f, 0xd2, 0x48, - 0x78, 0xd2, 0xa9, 0xd0, 0xef, 0x1f, 0xf9, 0x25, 0x98, 0xe0, 0xca, 0x2a, 0x3d, 0x53, 0x65, 0x2d, - 0xa8, 0xbc, 0xed, 0x86, 0x3c, 0xfb, 0xda, 0x3b, 0xb4, 0x24, 0x28, 0xe3, 0x1c, 0x4a, 0xc6, 0x58, - 0x93, 0x9a, 0x57, 0xe0, 0xea, 0x00, 0x1f, 0x8b, 0x61, 0xdc, 0x72, 0x6f, 0xcf, 0xf8, 0x3a, 0x67, - 0x9c, 0xf0, 0x31, 0xae, 0x70, 0x68, 0xbe, 0x08, 0xa3, 0x3b, 0xe1, 0xfa, 0x05, 0xe7, 0x4a, 0x19, - 0x7e, 0x92, 0x39, 0x18, 0xa3, 0x24, 0x7a, 0xdb, 0x71, 0xed, 0x06, 0x4d, 0x10, 0xdb, 0xd3, 0xfc, - 0xf2, 0x1d, 0x16, 0x54, 0x69, 0x02, 0x2b, 0x7a, 0xa8, 0xfc, 0xbd, 0x30, 0x49, 0x24, 0x74, 0x0d, - 0xfa, 0xd9, 0xc2, 0x8f, 0x10, 0xb2, 0xbf, 0x7e, 0x84, 0xc5, 0xde, 0x84, 0x47, 0xe0, 0xe3, 0xf5, - 0x79, 0xa2, 0x66, 0xb8, 0x98, 0xdb, 0x70, 0xff, 0x67, 0x9a, 0xf2, 0xb6, 0xdf, 0x18, 0xb2, 0x4f, - 0xbe, 0x1b, 0xf4, 0xc4, 0x1c, 0x43, 0x16, 0x4c, 0x33, 0x5f, 0x81, 0xdd, 0x7d, 0x3c, 0x3b, 0x00, - 0xe7, 0x53, 0x9c, 0x73, 0xb2, 0xc7, 0xbb, 0x84, 0x76, 0x19, 0x84, 0xdc, 0xf3, 0xc7, 0x00, 0x9c, - 0x4f, 0x73, 0x4e, 0x99, 0x63, 0x85, 0x5b, 0x08, 0xe3, 0x59, 0x18, 0xc7, 0x9d, 0xfa, 0x9a, 0xed, - 0xf0, 0x7d, 0xef, 0x00, 0x74, 0xcf, 0x70, 0xba, 0x31, 0x0e, 0xa4, 0xbb, 0x60, 0xc2, 0x75, 0x1a, - 0xe2, 0xeb, 0xb8, 0x01, 0x1a, 0x80, 0xe2, 0x59, 0x4e, 0x31, 0x42, 0xf4, 0x09, 0xb4, 0x00, 0xa9, - 0x9a, 0xcd, 0xd3, 0x70, 0x38, 0xfc, 0x39, 0x0e, 0x4f, 0x0a, 0x0c, 0xa7, 0x68, 0xda, 0xcd, 0xb6, - 0x49, 0x72, 0x74, 0x38, 0xc5, 0xd7, 0x04, 0x85, 0xc0, 0x70, 0x8a, 0x1d, 0x98, 0xf5, 0x79, 0x41, - 0xe1, 0xf8, 0xec, 0x79, 0x37, 0x39, 0xeb, 0x35, 0x37, 0x6d, 0x6b, 0x90, 0x49, 0xbc, 0xc0, 0x19, - 0x80, 0x43, 0x08, 0xc1, 0x9d, 0x90, 0x18, 0xd4, 0x11, 0x5f, 0xe7, 0xf0, 0xb8, 0x21, 0x3c, 0x80, - 0xeb, 0x4c, 0x24, 0x19, 0xf2, 0x6d, 0x25, 0x9c, 0xe2, 0x1b, 0x9c, 0x22, 0xed, 0x83, 0xf1, 0xd7, - 0x70, 0x0d, 0xc7, 0xc5, 0xad, 0xfa, 0x00, 0x24, 0x2f, 0x89, 0xd7, 0xe0, 0x10, 0x6e, 0xca, 0x35, - 0xc3, 0xd2, 0x37, 0x06, 0x63, 0x78, 0x59, 0x98, 0x52, 0x60, 0x08, 0x05, 0x66, 0x9e, 0x86, 0xd6, - 0xc2, 0xcd, 0xb5, 0x39, 0x90, 0x3b, 0xbe, 0xc9, 0x39, 0x52, 0x1e, 0x88, 0x5b, 0xa4, 0x6d, 0xed, - 0x84, 0xe6, 0x15, 0x61, 0x11, 0x1f, 0x8c, 0x2f, 0x3d, 0xdc, 0x99, 0x92, 0x4e, 0x62, 0x27, 0x6c, - 0xdf, 0x12, 0x4b, 0x8f, 0x61, 0x17, 0xfd, 0x8c, 0xe8, 0x69, 0x07, 0xb7, 0xe0, 0x83, 0xd0, 0x7c, - 0x5b, 0x78, 0x9a, 0x02, 0x08, 0xf8, 0x7e, 0xd8, 0xd3, 0x37, 0xd5, 0x0f, 0x40, 0xf6, 0x1d, 0x4e, - 0xb6, 0xab, 0x4f, 0xba, 0xe7, 0x29, 0x61, 0xa7, 0x94, 0xdf, 0x15, 0x29, 0xc1, 0xe8, 0xe2, 0x5a, - 0x26, 0x6d, 0xac, 0xa3, 0xad, 0xef, 0xcc, 0x6a, 0xdf, 0x13, 0x56, 0x63, 0xd8, 0x80, 0xd5, 0x56, - 0x61, 0x17, 0x67, 0xdc, 0x99, 0x5f, 0x5f, 0x15, 0x89, 0x95, 0xa1, 0x2b, 0x41, 0xef, 0x7e, 0x14, - 0xa6, 0x3c, 0x73, 0x8a, 0x0e, 0xcc, 0x51, 0xc9, 0xc1, 0x40, 0x38, 0xf3, 0x6b, 0x9c, 0x59, 0x64, - 0x7c, 0xaf, 0x85, 0x73, 0x16, 0xb5, 0x26, 0x21, 0x3f, 0x07, 0x59, 0x41, 0xde, 0xb6, 0xb0, 0xc1, - 0xb7, 0x6b, 0x16, 0xba, 0xb1, 0x3a, 0x00, 0xf5, 0xf7, 0xbb, 0x5c, 0x55, 0xf1, 0xc1, 0x09, 0xf3, - 0x3c, 0x64, 0xbc, 0x7e, 0x43, 0xad, 0x37, 0x9a, 0x36, 0xb6, 0x96, 0xdb, 0x33, 0xfe, 0x40, 0x78, - 0xca, 0xc3, 0xcd, 0x53, 0x58, 0xbe, 0x04, 0x69, 0x7a, 0x3b, 0x68, 0x48, 0xfe, 0x90, 0x13, 0x8d, - 0x76, 0x50, 0x3c, 0x71, 0x60, 0xa7, 0x84, 0x3d, 0xef, 0x20, 0xf9, 0xef, 0x47, 0x22, 0x71, 0x70, - 0x08, 0x8b, 0xbe, 0xb1, 0xae, 0x4a, 0x2c, 0x87, 0x7d, 0x7e, 0xcd, 0x7e, 0xe2, 0x32, 0x5f, 0xb3, - 0xc1, 0x42, 0x9c, 0x5f, 0x20, 0xe6, 0x09, 0x96, 0xcb, 0x70, 0xb2, 0x47, 0x2e, 0x7b, 0x16, 0x0a, - 0x54, 0xcb, 0xfc, 0x19, 0x18, 0x0d, 0x94, 0xca, 0x70, 0xaa, 0x4f, 0x72, 0xaa, 0x94, 0xbf, 0x52, - 0xe6, 0x8f, 0x43, 0x94, 0x94, 0xbd, 0x70, 0xf8, 0xa7, 0x38, 0x9c, 0xaa, 0xe7, 0xff, 0x0f, 0xe2, - 0xa2, 0xdc, 0x85, 0x43, 0x3f, 0xcd, 0xa1, 0x1e, 0x84, 0xc0, 0x45, 0xa9, 0x0b, 0x87, 0x7f, 0x46, - 0xc0, 0x05, 0x84, 0xc0, 0x07, 0x37, 0xe1, 0xcf, 0x3e, 0x17, 0xe5, 0xe9, 0x4a, 0xd8, 0x8e, 0x7c, - 0xf3, 0x61, 0x35, 0x2e, 0x1c, 0xfd, 0x28, 0x7f, 0xb8, 0x40, 0xe4, 0x4f, 0x42, 0x6c, 0x40, 0x83, - 0x7f, 0x9e, 0x43, 0x99, 0x3e, 0x56, 0x90, 0xa4, 0xaf, 0xae, 0x85, 0xc3, 0xbf, 0xc0, 0xe1, 0x7e, - 0x14, 0x99, 0x3a, 0xaf, 0x6b, 0xe1, 0x04, 0x5f, 0x14, 0x53, 0xe7, 0x08, 0x62, 0x36, 0x51, 0xd2, - 0xc2, 0xd1, 0x8f, 0x09, 0xab, 0x0b, 0x08, 0xae, 0xa6, 0x84, 0x97, 0xa6, 0xc2, 0xf1, 0x5f, 0xe2, - 0xf8, 0x0e, 0x86, 0x58, 0xc0, 0x97, 0x26, 0xc3, 0x29, 0xbe, 0x2c, 0x2c, 0xe0, 0x43, 0x91, 0x65, - 0xd4, 0x5d, 0xfa, 0xc2, 0x99, 0x1e, 0x17, 0xcb, 0xa8, 0xab, 0xf2, 0x11, 0x6f, 0xd2, 0x6c, 0x11, - 0x4e, 0xf1, 0x15, 0xe1, 0x4d, 0xaa, 0x4f, 0xa6, 0xd1, 0x5d, 0x4b, 0xc2, 0x39, 0xbe, 0x2a, 0xa6, - 0xd1, 0x55, 0x4a, 0xb0, 0x32, 0xc9, 0xbd, 0x75, 0x24, 0x9c, 0xef, 0x09, 0xce, 0x37, 0xde, 0x53, - 0x46, 0xf2, 0xf7, 0xc1, 0xae, 0xfe, 0x35, 0x24, 0x9c, 0xf5, 0xc9, 0xcb, 0x5d, 0x5d, 0xbf, 0xbf, - 0x84, 0x60, 0xc9, 0x9b, 0xec, 0x57, 0x3f, 0xc2, 0x69, 0x9f, 0xba, 0x1c, 0xdc, 0xd8, 0xf9, 0xcb, - 0x07, 0x76, 0x68, 0xd0, 0x49, 0xdd, 0xe1, 0x5c, 0xcf, 0x70, 0x2e, 0x1f, 0x88, 0x2c, 0x0d, 0x9e, - 0xb9, 0xc3, 0xf1, 0xcf, 0x8a, 0xa5, 0xc1, 0x11, 0x08, 0x8e, 0x5b, 0x6d, 0xd3, 0x24, 0xc1, 0x21, - 0x6f, 0xff, 0x27, 0x0d, 0xd9, 0x3f, 0x5d, 0xe1, 0x0b, 0x43, 0x00, 0x30, 0x87, 0xc6, 0x8c, 0xc6, - 0x1a, 0xda, 0x20, 0x04, 0xf9, 0xe7, 0x2b, 0x22, 0x21, 0x10, 0x6d, 0x5c, 0x4f, 0xc0, 0x36, 0x8d, - 0xf4, 0x0c, 0x3b, 0x04, 0xfb, 0x97, 0x2b, 0xfc, 0x33, 0x6b, 0x07, 0xd2, 0x21, 0x60, 0x1f, 0x6d, - 0xb7, 0x27, 0x78, 0x37, 0x48, 0x40, 0x37, 0x9a, 0xa7, 0x61, 0x84, 0xfc, 0x65, 0x87, 0xab, 0xd5, - 0xc2, 0xd0, 0x7f, 0xe5, 0x68, 0xa1, 0x4f, 0x0c, 0xd6, 0xb0, 0x5b, 0x06, 0xfe, 0x74, 0xc2, 0xb0, - 0x7f, 0xe3, 0x58, 0x0f, 0x40, 0xc0, 0xba, 0xe6, 0xb8, 0x83, 0xbc, 0xf7, 0xdf, 0x05, 0x58, 0x00, - 0xc8, 0xa4, 0xc9, 0xef, 0x0b, 0xc6, 0x66, 0x18, 0xf6, 0x3d, 0x31, 0x69, 0xae, 0x8f, 0x09, 0x30, - 0x41, 0x7e, 0xb2, 0x3f, 0x3d, 0x08, 0x01, 0xff, 0x83, 0x83, 0x3b, 0x88, 0x99, 0x83, 0xfd, 0x8f, - 0x76, 0x60, 0xce, 0x9e, 0xb3, 0xd9, 0xa1, 0x0e, 0x5c, 0x19, 0x21, 0x2b, 0xb9, 0x13, 0xd8, 0xfc, - 0x20, 0x26, 0xe5, 0x97, 0x4d, 0xed, 0xec, 0x14, 0x27, 0xf7, 0xff, 0x20, 0x15, 0xc8, 0x37, 0x14, - 0x3a, 0xbd, 0xdb, 0xe9, 0x19, 0x7d, 0x44, 0x19, 0xa6, 0x7f, 0x88, 0x77, 0xbb, 0xbc, 0x17, 0xa4, - 0x19, 0x7e, 0xfc, 0x36, 0x36, 0x1d, 0x78, 0xf2, 0x8c, 0x22, 0xad, 0xe5, 0xa3, 0x6f, 0xbe, 0xb0, - 0xff, 0xaa, 0x9c, 0x8e, 0x4a, 0x44, 0xb3, 0x48, 0xcf, 0xc7, 0x7b, 0x34, 0x8b, 0x8a, 0xa4, 0x93, - 0xe1, 0x59, 0xca, 0xdd, 0x33, 0x3c, 0xab, 0x48, 0x55, 0xf9, 0x00, 0x48, 0x67, 0xe8, 0xc1, 0x66, - 0xf2, 0xa8, 0x1c, 0x1c, 0x2e, 0x9b, 0x55, 0x24, 0x58, 0xcf, 0x5d, 0x83, 0x04, 0xbe, 0x69, 0x4a, - 0xfe, 0x69, 0xe6, 0x1e, 0x97, 0xf0, 0xe9, 0xde, 0xe8, 0x51, 0xfa, 0x20, 0x89, 0x8f, 0x1e, 0xf5, - 0xe4, 0x77, 0xf0, 0xd3, 0x3b, 0x26, 0xbf, 0xc3, 0x93, 0x1f, 0xa3, 0x27, 0x75, 0x42, 0xff, 0x98, - 0x27, 0x3f, 0x4e, 0xff, 0x54, 0x2f, 0xc5, 0xe5, 0xc7, 0x3d, 0xf9, 0x09, 0x7a, 0xb4, 0x2a, 0x9e, - 0x7e, 0xc2, 0x93, 0x9f, 0xa4, 0x7f, 0xf0, 0x39, 0xc4, 0xe5, 0x27, 0x73, 0xa7, 0x41, 0xaa, 0x04, - 0x26, 0x15, 0xd9, 0x72, 0x52, 0xa3, 0x62, 0x52, 0xdc, 0xa4, 0xf7, 0x40, 0xb4, 0x62, 0xd9, 0x8b, - 0x3b, 0x46, 0x67, 0x3e, 0x8b, 0xe8, 0xc7, 0xf0, 0x7a, 0x1e, 0x2f, 0xca, 0x74, 0x06, 0xa2, 0x68, - 0xc2, 0xad, 0x3d, 0x7c, 0xa0, 0xe3, 0xe1, 0x5e, 0xcb, 0xfb, 0x9c, 0x7c, 0x96, 0xf2, 0xcc, 0x10, - 0x7d, 0xe1, 0xe7, 0xbe, 0x9e, 0xd2, 0x07, 0xf0, 0xe5, 0xc7, 0x29, 0x57, 0x71, 0x2b, 0x77, 0xbe, - 0x6f, 0x47, 0x0e, 0xea, 0x98, 0x13, 0xf4, 0xf9, 0x95, 0xae, 0xe7, 0x27, 0xfa, 0x3e, 0xdf, 0x67, - 0xf5, 0xdc, 0x1c, 0x8c, 0x10, 0x9c, 0xdf, 0x31, 0x03, 0x42, 0xf3, 0x29, 0xbf, 0x63, 0x66, 0x8e, - 0xbd, 0xf1, 0xf6, 0xbe, 0xab, 0xde, 0xc4, 0xeb, 0xb7, 0x78, 0xbd, 0xf5, 0xf6, 0x3e, 0xe9, 0x3d, - 0xbc, 0xfe, 0x85, 0xd7, 0xc3, 0xbf, 0xdf, 0x27, 0xbd, 0x8c, 0xd7, 0xab, 0x78, 0xfd, 0x04, 0xaf, - 0x37, 0xf0, 0x7a, 0x13, 0xaf, 0xb7, 0xf0, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x4d, - 0xea, 0x3b, 0x68, 0x2e, 0x00, 0x00, + // 3864 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, + 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x59, 0xcb, 0x95, 0x63, 0x49, 0xcb, 0xd8, + 0xb1, 0x6c, 0x37, 0xda, 0x54, 0x5e, 0xed, 0x05, 0xdb, 0xc4, 0xa5, 0x48, 0x4a, 0xd6, 0x56, 0x12, + 0x19, 0x50, 0x8c, 0xd7, 0xe9, 0x03, 0x06, 0x02, 0x7f, 0x52, 0xd8, 0x05, 0x01, 0x06, 0x00, 0x77, + 0x2d, 0x3f, 0x74, 0xb6, 0xe3, 0xde, 0x32, 0x9d, 0xb6, 0x69, 0xd3, 0x99, 0x26, 0xae, 0xe3, 0x66, + 0x33, 0xd3, 0x3a, 0x4d, 0x7a, 0x49, 0x7a, 0x49, 0x33, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x9c, + 0xb7, 0x3e, 0xf4, 0xc1, 0xbb, 0xf5, 0x4c, 0x6f, 0x6e, 0x9b, 0x36, 0x3b, 0xd3, 0xce, 0xec, 0x4b, + 0xe7, 0xbf, 0x81, 0x00, 0x49, 0x2d, 0x28, 0xcf, 0x38, 0x79, 0x92, 0x70, 0xfe, 0xf3, 0x7d, 0x38, + 0x38, 0xe7, 0xfc, 0xe7, 0x1c, 0xfc, 0x20, 0xfc, 0xd3, 0x06, 0xac, 0xb4, 0x6d, 0xbb, 0x6d, 0xa2, + 0xf3, 0x5d, 0xc7, 0xf6, 0xec, 0xc3, 0x5e, 0xeb, 0x7c, 0x13, 0xb9, 0xba, 0x63, 0x74, 0x3d, 0xdb, + 0x59, 0x23, 0x32, 0x69, 0x86, 0x6a, 0xac, 0x71, 0x8d, 0xc2, 0x1e, 0xcc, 0x6e, 0x19, 0x26, 0x2a, + 0xfb, 0x8a, 0x75, 0xe4, 0x49, 0x97, 0x21, 0xd1, 0x32, 0x4c, 0x94, 0x17, 0x56, 0xe2, 0xab, 0x99, + 0xf5, 0x27, 0xd7, 0x06, 0x40, 0x6b, 0x61, 0x44, 0x0d, 0x8b, 0x15, 0x82, 0x28, 0xbc, 0x97, 0x80, + 0xb9, 0x11, 0xab, 0x92, 0x04, 0x09, 0x4b, 0xeb, 0x60, 0x46, 0x61, 0x35, 0xad, 0x90, 0xff, 0xa5, + 0x3c, 0x4c, 0x75, 0x35, 0xfd, 0xa6, 0xd6, 0x46, 0xf9, 0x18, 0x11, 0xf3, 0x4b, 0x69, 0x09, 0xa0, + 0x89, 0xba, 0xc8, 0x6a, 0x22, 0x4b, 0x3f, 0xce, 0xc7, 0x57, 0xe2, 0xab, 0x69, 0x25, 0x20, 0x91, + 0x9e, 0x83, 0xd9, 0x6e, 0xef, 0xd0, 0x34, 0x74, 0x35, 0xa0, 0x06, 0x2b, 0xf1, 0xd5, 0xa4, 0x22, + 0xd2, 0x85, 0x72, 0x5f, 0xf9, 0x69, 0x98, 0xb9, 0x8d, 0xb4, 0x9b, 0x41, 0xd5, 0x0c, 0x51, 0xcd, + 0x61, 0x71, 0x40, 0xb1, 0x04, 0xd9, 0x0e, 0x72, 0x5d, 0xad, 0x8d, 0x54, 0xef, 0xb8, 0x8b, 0xf2, + 0x09, 0xf2, 0xf4, 0x2b, 0x43, 0x4f, 0x3f, 0xf8, 0xe4, 0x19, 0x86, 0x3a, 0x38, 0xee, 0x22, 0xa9, + 0x08, 0x69, 0x64, 0xf5, 0x3a, 0x94, 0x21, 0x79, 0x82, 0xff, 0x2a, 0x56, 0xaf, 0x33, 0xc8, 0x92, + 0xc2, 0x30, 0x46, 0x31, 0xe5, 0x22, 0xe7, 0x96, 0xa1, 0xa3, 0xfc, 0x24, 0x21, 0x78, 0x7a, 0x88, + 0xa0, 0x4e, 0xd7, 0x07, 0x39, 0x38, 0x4e, 0x2a, 0x41, 0x1a, 0xbd, 0xe2, 0x21, 0xcb, 0x35, 0x6c, + 0x2b, 0x3f, 0x45, 0x48, 0x9e, 0x1a, 0x11, 0x45, 0x64, 0x36, 0x07, 0x29, 0xfa, 0x38, 0xe9, 0x22, + 0x4c, 0xd9, 0x5d, 0xcf, 0xb0, 0x2d, 0x37, 0x9f, 0x5a, 0x11, 0x56, 0x33, 0xeb, 0x1f, 0x19, 0x99, + 0x08, 0x55, 0xaa, 0xa3, 0x70, 0x65, 0x69, 0x07, 0x44, 0xd7, 0xee, 0x39, 0x3a, 0x52, 0x75, 0xbb, + 0x89, 0x54, 0xc3, 0x6a, 0xd9, 0xf9, 0x34, 0x21, 0x58, 0x1e, 0x7e, 0x10, 0xa2, 0x58, 0xb2, 0x9b, + 0x68, 0xc7, 0x6a, 0xd9, 0x4a, 0xce, 0x0d, 0x5d, 0x4b, 0x0b, 0x30, 0xe9, 0x1e, 0x5b, 0x9e, 0xf6, + 0x4a, 0x3e, 0x4b, 0x32, 0x84, 0x5d, 0x15, 0xfe, 0x37, 0x09, 0x33, 0xe3, 0xa4, 0xd8, 0x55, 0x48, + 0xb6, 0xf0, 0x53, 0xe6, 0x63, 0xa7, 0xf1, 0x01, 0xc5, 0x84, 0x9d, 0x38, 0xf9, 0x01, 0x9d, 0x58, + 0x84, 0x8c, 0x85, 0x5c, 0x0f, 0x35, 0x69, 0x46, 0xc4, 0xc7, 0xcc, 0x29, 0xa0, 0xa0, 0xe1, 0x94, + 0x4a, 0x7c, 0xa0, 0x94, 0xba, 0x0e, 0x33, 0xbe, 0x49, 0xaa, 0xa3, 0x59, 0x6d, 0x9e, 0x9b, 0xe7, + 0xa3, 0x2c, 0x59, 0xab, 0x70, 0x9c, 0x82, 0x61, 0x4a, 0x0e, 0x85, 0xae, 0xa5, 0x32, 0x80, 0x6d, + 0x21, 0xbb, 0xa5, 0x36, 0x91, 0x6e, 0xe6, 0x53, 0x27, 0x78, 0xa9, 0x8a, 0x55, 0x86, 0xbc, 0x64, + 0x53, 0xa9, 0x6e, 0x4a, 0x57, 0xfa, 0xa9, 0x36, 0x75, 0x42, 0xa6, 0xec, 0xd1, 0x4d, 0x36, 0x94, + 0x6d, 0x0d, 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb2, 0x27, 0x4b, 0x13, 0x23, 0xd6, 0x22, 0x9f, + 0x4c, 0x61, 0x30, 0xfa, 0x60, 0xd3, 0x4e, 0xf0, 0x52, 0xfa, 0x28, 0xf8, 0x02, 0x95, 0xa4, 0x15, + 0x90, 0x2a, 0x94, 0xe5, 0xc2, 0x7d, 0xad, 0x83, 0x16, 0x2f, 0x43, 0x2e, 0xec, 0x1e, 0x69, 0x1e, + 0x92, 0xae, 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x92, + 0x2a, 0x97, 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x60, 0x3a, 0x74, 0xfb, 0x71, 0x81, 0x85, 0x2f, 0x4d, + 0xc2, 0xfc, 0xa8, 0x9c, 0x1b, 0x99, 0xfe, 0x0b, 0x30, 0x69, 0xf5, 0x3a, 0x87, 0xc8, 0xc9, 0xc7, + 0x09, 0x03, 0xbb, 0x92, 0x8a, 0x90, 0x34, 0xb5, 0x43, 0x64, 0xe6, 0x13, 0x2b, 0xc2, 0x6a, 0x6e, + 0xfd, 0xb9, 0xb1, 0xb2, 0x7a, 0x6d, 0x17, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, + 0x30, 0xc3, 0xb3, 0xe3, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x1c, 0xd2, 0xf8, 0x2f, 0xf5, + 0xed, 0x24, 0xb1, 0x39, 0x85, 0x05, 0xd8, 0xaf, 0xd2, 0x22, 0xa4, 0x48, 0x9a, 0x35, 0x11, 0x6f, + 0x0d, 0xfe, 0x35, 0x0e, 0x4c, 0x13, 0xb5, 0xb4, 0x9e, 0xe9, 0xa9, 0xb7, 0x34, 0xb3, 0x87, 0x48, + 0xc2, 0xa4, 0x95, 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x65, 0xc8, 0xd0, 0xac, 0x34, 0xac, 0x26, + 0x7a, 0x85, 0x54, 0x9f, 0xa4, 0x42, 0x13, 0x75, 0x07, 0x4b, 0xf0, 0xed, 0x6f, 0xb8, 0xb6, 0xc5, + 0x43, 0x4b, 0x6e, 0x81, 0x05, 0xe4, 0xf6, 0x97, 0x06, 0x0b, 0xdf, 0x13, 0xa3, 0x1f, 0x6f, 0x30, + 0x17, 0x0b, 0xdf, 0x89, 0x41, 0x82, 0xec, 0xb7, 0x19, 0xc8, 0x1c, 0xbc, 0x5c, 0xab, 0xa8, 0xe5, + 0x6a, 0x63, 0x73, 0xb7, 0x22, 0x0a, 0x52, 0x0e, 0x80, 0x08, 0xb6, 0x76, 0xab, 0xc5, 0x03, 0x31, + 0xe6, 0x5f, 0xef, 0xec, 0x1f, 0x5c, 0xbc, 0x20, 0xc6, 0x7d, 0x40, 0x83, 0x0a, 0x12, 0x41, 0x85, + 0xe7, 0xd7, 0xc5, 0xa4, 0x24, 0x42, 0x96, 0x12, 0xec, 0x5c, 0xaf, 0x94, 0x2f, 0x5e, 0x10, 0x27, + 0xc3, 0x92, 0xe7, 0xd7, 0xc5, 0x29, 0x69, 0x1a, 0xd2, 0x44, 0xb2, 0x59, 0xad, 0xee, 0x8a, 0x29, + 0x9f, 0xb3, 0x7e, 0xa0, 0xec, 0xec, 0x6f, 0x8b, 0x69, 0x9f, 0x73, 0x5b, 0xa9, 0x36, 0x6a, 0x22, + 0xf8, 0x0c, 0x7b, 0x95, 0x7a, 0xbd, 0xb8, 0x5d, 0x11, 0x33, 0xbe, 0xc6, 0xe6, 0xcb, 0x07, 0x95, + 0xba, 0x98, 0x0d, 0x99, 0xf5, 0xfc, 0xba, 0x38, 0xed, 0xdf, 0xa2, 0xb2, 0xdf, 0xd8, 0x13, 0x73, + 0xd2, 0x2c, 0x4c, 0xd3, 0x5b, 0x70, 0x23, 0x66, 0x06, 0x44, 0x17, 0x2f, 0x88, 0x62, 0xdf, 0x10, + 0xca, 0x32, 0x1b, 0x12, 0x5c, 0xbc, 0x20, 0x4a, 0x85, 0x12, 0x24, 0x49, 0x76, 0x49, 0x12, 0xe4, + 0x76, 0x8b, 0x9b, 0x95, 0x5d, 0xb5, 0x5a, 0x3b, 0xd8, 0xa9, 0xee, 0x17, 0x77, 0x45, 0xa1, 0x2f, + 0x53, 0x2a, 0x9f, 0x6e, 0xec, 0x28, 0x95, 0xb2, 0x18, 0x0b, 0xca, 0x6a, 0x95, 0xe2, 0x41, 0xa5, + 0x2c, 0xc6, 0x0b, 0x3a, 0xcc, 0x8f, 0xaa, 0x33, 0x23, 0x77, 0x46, 0x20, 0xc4, 0xb1, 0x13, 0x42, + 0x4c, 0xb8, 0x86, 0x42, 0xfc, 0x35, 0x01, 0xe6, 0x46, 0xd4, 0xda, 0x91, 0x37, 0x79, 0x01, 0x92, + 0x34, 0x45, 0x69, 0xf7, 0x79, 0x66, 0x64, 0xd1, 0x26, 0x09, 0x3b, 0xd4, 0x81, 0x08, 0x2e, 0xd8, + 0x81, 0xe3, 0x27, 0x74, 0x60, 0x4c, 0x31, 0x64, 0xe4, 0x6b, 0x02, 0xe4, 0x4f, 0xe2, 0x8e, 0x28, + 0x14, 0xb1, 0x50, 0xa1, 0xb8, 0x3a, 0x68, 0xc0, 0xb9, 0x93, 0x9f, 0x61, 0xc8, 0x8a, 0xb7, 0x04, + 0x58, 0x18, 0x3d, 0xa8, 0x8c, 0xb4, 0xe1, 0x53, 0x30, 0xd9, 0x41, 0xde, 0x91, 0xcd, 0x9b, 0xf5, + 0xc7, 0x46, 0xb4, 0x00, 0xbc, 0x3c, 0xe8, 0x2b, 0x86, 0x0a, 0xf6, 0x90, 0xf8, 0x49, 0xd3, 0x06, + 0xb5, 0x66, 0xc8, 0xd2, 0xcf, 0xc7, 0xe0, 0xb1, 0x91, 0xe4, 0x23, 0x0d, 0x7d, 0x02, 0xc0, 0xb0, + 0xba, 0x3d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x3d, 0xcf, + 0x5f, 0x8f, 0x93, 0x75, 0xa0, 0x22, 0xa2, 0x70, 0xb9, 0x6f, 0x68, 0x82, 0x18, 0xba, 0x74, 0xc2, + 0x93, 0x0e, 0xf5, 0xba, 0x4f, 0x80, 0xa8, 0x9b, 0x06, 0xb2, 0x3c, 0xd5, 0xf5, 0x1c, 0xa4, 0x75, + 0x0c, 0xab, 0x4d, 0x0a, 0x70, 0x4a, 0x4e, 0xb6, 0x34, 0xd3, 0x45, 0xca, 0x0c, 0x5d, 0xae, 0xf3, + 0x55, 0x8c, 0x20, 0x5d, 0xc6, 0x09, 0x20, 0x26, 0x43, 0x08, 0xba, 0xec, 0x23, 0x0a, 0xdf, 0x9c, + 0x82, 0x4c, 0x60, 0xac, 0x93, 0xce, 0x41, 0xf6, 0x86, 0x76, 0x4b, 0x53, 0xf9, 0xa8, 0x4e, 0x3d, + 0x91, 0xc1, 0xb2, 0x1a, 0x1b, 0xd7, 0x3f, 0x01, 0xf3, 0x44, 0xc5, 0xee, 0x79, 0xc8, 0x51, 0x75, + 0x53, 0x73, 0x5d, 0xe2, 0xb4, 0x14, 0x51, 0x95, 0xf0, 0x5a, 0x15, 0x2f, 0x95, 0xf8, 0x8a, 0xb4, + 0x01, 0x73, 0x04, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0x91, 0x8a, 0x5f, 0x1e, 0x5c, 0x52, 0x88, + 0x7d, 0xcb, 0x66, 0xb1, 0xc6, 0x1e, 0x53, 0xc0, 0x16, 0xb9, 0x52, 0x19, 0x9e, 0x20, 0xb0, 0x36, + 0xb2, 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0xeb, 0x69, 0xa6, 0xab, 0x6a, 0x56, 0x53, 0x3d, 0xd2, + 0xdc, 0xa3, 0xfc, 0x3c, 0x26, 0xd8, 0x8c, 0xe5, 0x05, 0xe5, 0x2c, 0x56, 0xdc, 0x66, 0x7a, 0x15, + 0xa2, 0x56, 0xb4, 0x9a, 0x2f, 0x6a, 0xee, 0x91, 0x24, 0xc3, 0x02, 0x61, 0x71, 0x3d, 0xc7, 0xb0, + 0xda, 0xaa, 0x7e, 0x84, 0xf4, 0x9b, 0x6a, 0xcf, 0x6b, 0x5d, 0xce, 0x3f, 0x1e, 0xbc, 0x3f, 0xb1, + 0xb0, 0x4e, 0x74, 0x4a, 0x58, 0xa5, 0xe1, 0xb5, 0x2e, 0x4b, 0x75, 0xc8, 0xe2, 0x60, 0x74, 0x8c, + 0x57, 0x91, 0xda, 0xb2, 0x1d, 0xd2, 0x59, 0x72, 0x23, 0x76, 0x76, 0xc0, 0x83, 0x6b, 0x55, 0x06, + 0xd8, 0xb3, 0x9b, 0x48, 0x4e, 0xd6, 0x6b, 0x95, 0x4a, 0x59, 0xc9, 0x70, 0x96, 0x2d, 0xdb, 0xc1, + 0x09, 0xd5, 0xb6, 0x7d, 0x07, 0x67, 0x68, 0x42, 0xb5, 0x6d, 0xee, 0xde, 0x0d, 0x98, 0xd3, 0x75, + 0xfa, 0xcc, 0x86, 0xae, 0xb2, 0x11, 0xdf, 0xcd, 0x8b, 0x21, 0x67, 0xe9, 0xfa, 0x36, 0x55, 0x60, + 0x39, 0xee, 0x4a, 0x57, 0xe0, 0xb1, 0xbe, 0xb3, 0x82, 0xc0, 0xd9, 0xa1, 0xa7, 0x1c, 0x84, 0x6e, + 0xc0, 0x5c, 0xf7, 0x78, 0x18, 0x28, 0x85, 0xee, 0xd8, 0x3d, 0x1e, 0x84, 0x3d, 0x45, 0x5e, 0xdb, + 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xe6, 0xcf, 0x04, 0xb5, 0x03, 0x0b, 0xd2, 0x79, 0x10, 0x75, 0x5d, + 0x45, 0x96, 0x76, 0x68, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf9, 0xe5, 0xa0, 0x72, 0x4e, 0xd7, + 0x2b, 0x64, 0xb5, 0x48, 0x16, 0xa5, 0x67, 0x61, 0xd6, 0x3e, 0xbc, 0xa1, 0xd3, 0xcc, 0x52, 0xbb, + 0x0e, 0x6a, 0x19, 0xaf, 0xe4, 0x9f, 0x24, 0x6e, 0x9a, 0xc1, 0x0b, 0x24, 0xaf, 0x6a, 0x44, 0x2c, + 0x3d, 0x03, 0xa2, 0xee, 0x1e, 0x69, 0x4e, 0x97, 0xb4, 0x76, 0xb7, 0xab, 0xe9, 0x28, 0xff, 0x14, + 0x55, 0xa5, 0xf2, 0x7d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x36, 0x5a, 0x1e, 0x67, 0x7c, 0x9a, 0x66, + 0x36, 0x91, 0x31, 0xb6, 0xeb, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0x43, 0x4e, 0xd7, 0x41, 0x78, 0x88, + 0xa7, 0x3b, 0x31, 0xff, 0xcf, 0x53, 0x27, 0x8c, 0xe1, 0x8d, 0xa0, 0x36, 0x4d, 0x00, 0x65, 0xae, + 0x37, 0x2c, 0x2c, 0xc8, 0x90, 0x0d, 0xe6, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x7b, 0x6c, + 0xa9, 0x5a, 0xc6, 0xdd, 0xf1, 0xb3, 0x15, 0x31, 0x86, 0xbb, 0xf4, 0xee, 0xce, 0x41, 0x45, 0x55, + 0x1a, 0xfb, 0x07, 0x3b, 0x7b, 0x15, 0x31, 0xfe, 0x6c, 0x3a, 0xf5, 0x2f, 0x53, 0xe2, 0x9d, 0x3b, + 0x77, 0xee, 0xc4, 0x0a, 0xdf, 0x8b, 0x41, 0x2e, 0x3c, 0x19, 0x4b, 0x3f, 0x05, 0x67, 0xf8, 0x6b, + 0xac, 0x8b, 0x3c, 0xf5, 0xb6, 0xe1, 0x90, 0x54, 0xed, 0x68, 0x74, 0xb6, 0xf4, 0xbd, 0x3c, 0xcf, + 0xb4, 0xea, 0xc8, 0x7b, 0xc9, 0x70, 0x70, 0x22, 0x76, 0x34, 0x4f, 0xda, 0x85, 0x65, 0xcb, 0x56, + 0x5d, 0x4f, 0xb3, 0x9a, 0x9a, 0xd3, 0x54, 0xfb, 0x07, 0x08, 0xaa, 0xa6, 0xeb, 0xc8, 0x75, 0x6d, + 0xda, 0x22, 0x7c, 0x96, 0x8f, 0x58, 0x76, 0x9d, 0x29, 0xf7, 0x6b, 0x67, 0x91, 0xa9, 0x0e, 0x64, + 0x44, 0xfc, 0xa4, 0x8c, 0x78, 0x1c, 0xd2, 0x1d, 0xad, 0xab, 0x22, 0xcb, 0x73, 0x8e, 0xc9, 0x3c, + 0x97, 0x52, 0x52, 0x1d, 0xad, 0x5b, 0xc1, 0xd7, 0x1f, 0x5e, 0x0c, 0x82, 0x7e, 0xfc, 0xc7, 0x38, + 0x64, 0x83, 0x33, 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xfa, 0xc8, 0x09, + 0x70, 0xad, 0x84, 0x0b, 0xbb, 0x3c, 0x49, 0x27, 0x2d, 0x85, 0x22, 0x71, 0x53, 0xc5, 0x7b, 0x1a, + 0xd1, 0xf9, 0x3d, 0xa5, 0xb0, 0x2b, 0x69, 0x1b, 0x26, 0x6f, 0xb8, 0x84, 0x7b, 0x92, 0x70, 0x3f, + 0xf9, 0x68, 0xee, 0x6b, 0x75, 0x42, 0x9e, 0xbe, 0x56, 0x57, 0xf7, 0xab, 0xca, 0x5e, 0x71, 0x57, + 0x61, 0x70, 0xe9, 0x2c, 0x24, 0x4c, 0xed, 0xd5, 0xe3, 0x70, 0x0b, 0x20, 0xa2, 0x71, 0x1d, 0x7f, + 0x16, 0x12, 0xb7, 0x91, 0x76, 0x33, 0x5c, 0x78, 0x89, 0xe8, 0x43, 0x4c, 0xfd, 0xf3, 0x90, 0x24, + 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x09, 0x29, 0x05, 0x89, 0x52, 0x55, 0xc1, 0xe9, 0x2f, 0x42, + 0x96, 0x4a, 0xd5, 0xda, 0x4e, 0xa5, 0x54, 0x11, 0x63, 0x85, 0x0d, 0x98, 0xa4, 0x4e, 0xc0, 0x5b, + 0xc3, 0x77, 0x83, 0x38, 0xc1, 0x2e, 0x19, 0x87, 0xc0, 0x57, 0x1b, 0x7b, 0x9b, 0x15, 0x45, 0x8c, + 0x05, 0xc3, 0xeb, 0x42, 0x36, 0x38, 0xce, 0xfd, 0x68, 0x72, 0xea, 0xaf, 0x05, 0xc8, 0x04, 0xc6, + 0x33, 0x3c, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x56, 0x35, 0xd3, 0xd0, 0x5c, 0x96, 0x14, 0x40, 0x44, + 0x45, 0x2c, 0x19, 0x37, 0x68, 0x3f, 0x12, 0xe3, 0xdf, 0x14, 0x40, 0x1c, 0x1c, 0xed, 0x06, 0x0c, + 0x14, 0x7e, 0xac, 0x06, 0xbe, 0x21, 0x40, 0x2e, 0x3c, 0xcf, 0x0d, 0x98, 0x77, 0xee, 0xc7, 0x6a, + 0xde, 0xbb, 0x31, 0x98, 0x0e, 0x4d, 0x71, 0xe3, 0x5a, 0xf7, 0x39, 0x98, 0x35, 0x9a, 0xa8, 0xd3, + 0xb5, 0x3d, 0x64, 0xe9, 0xc7, 0xaa, 0x89, 0x6e, 0x21, 0x33, 0x5f, 0x20, 0x85, 0xe2, 0xfc, 0xa3, + 0xe7, 0xc4, 0xb5, 0x9d, 0x3e, 0x6e, 0x17, 0xc3, 0xe4, 0xb9, 0x9d, 0x72, 0x65, 0xaf, 0x56, 0x3d, + 0xa8, 0xec, 0x97, 0x5e, 0x56, 0x1b, 0xfb, 0x3f, 0xb3, 0x5f, 0x7d, 0x69, 0x5f, 0x11, 0x8d, 0x01, + 0xb5, 0x0f, 0x71, 0xab, 0xd7, 0x40, 0x1c, 0x34, 0x4a, 0x3a, 0x03, 0xa3, 0xcc, 0x12, 0x27, 0xa4, + 0x39, 0x98, 0xd9, 0xaf, 0xaa, 0xf5, 0x9d, 0x72, 0x45, 0xad, 0x6c, 0x6d, 0x55, 0x4a, 0x07, 0x75, + 0xfa, 0xe2, 0xec, 0x6b, 0x1f, 0x84, 0x37, 0xf5, 0xeb, 0x71, 0x98, 0x1b, 0x61, 0x89, 0x54, 0x64, + 0x33, 0x3b, 0x7d, 0x8d, 0xf8, 0xf8, 0x38, 0xd6, 0xaf, 0xe1, 0xa9, 0xa0, 0xa6, 0x39, 0x1e, 0x1b, + 0xf1, 0x9f, 0x01, 0xec, 0x25, 0xcb, 0x33, 0x5a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, 0x67, + 0xfa, 0x72, 0x7a, 0xd4, 0xf0, 0x13, 0x20, 0x75, 0x6d, 0xd7, 0xf0, 0x8c, 0x5b, 0x48, 0x35, 0x2c, + 0x7e, 0x28, 0x81, 0x07, 0xfb, 0x84, 0x22, 0xf2, 0x95, 0x1d, 0xcb, 0xf3, 0xb5, 0x2d, 0xd4, 0xd6, + 0x06, 0xb4, 0x71, 0x01, 0x8f, 0x2b, 0x22, 0x5f, 0xf1, 0xb5, 0xcf, 0x41, 0xb6, 0x69, 0xf7, 0xf0, + 0x98, 0x44, 0xf5, 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x2a, 0x6c, 0x8e, 0xed, 0x9f, 0x86, + 0x64, 0x95, 0x0c, 0x95, 0x51, 0x95, 0xa7, 0x61, 0x46, 0x6b, 0xb7, 0x1d, 0x4c, 0xce, 0x89, 0xe8, + 0x64, 0x9e, 0xf3, 0xc5, 0x44, 0x71, 0xf1, 0x1a, 0xa4, 0xb8, 0x1f, 0x70, 0x4b, 0xc6, 0x9e, 0x50, + 0xbb, 0xf4, 0x4c, 0x2a, 0xb6, 0x9a, 0x56, 0x52, 0x16, 0x5f, 0x3c, 0x07, 0x59, 0xc3, 0x55, 0xfb, + 0x87, 0xa3, 0xb1, 0x95, 0xd8, 0x6a, 0x4a, 0xc9, 0x18, 0xae, 0x7f, 0x1a, 0x56, 0x78, 0x2b, 0x06, + 0xb9, 0xf0, 0xe1, 0xae, 0x54, 0x86, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0x65, 0x61, 0x35, + 0xe2, 0x3c, 0x78, 0x6d, 0x97, 0xe9, 0x2b, 0x3e, 0x72, 0xf1, 0xef, 0x05, 0x48, 0x71, 0xb1, 0xb4, + 0x00, 0x89, 0xae, 0xe6, 0x1d, 0x11, 0xba, 0xe4, 0x66, 0x4c, 0x14, 0x14, 0x72, 0x8d, 0xe5, 0x6e, + 0x57, 0xb3, 0x48, 0x0a, 0x30, 0x39, 0xbe, 0xc6, 0x71, 0x35, 0x91, 0xd6, 0x24, 0x63, 0xbf, 0xdd, + 0xe9, 0x20, 0xcb, 0x73, 0x79, 0x5c, 0x99, 0xbc, 0xc4, 0xc4, 0xd2, 0x73, 0x30, 0xeb, 0x39, 0x9a, + 0x61, 0x86, 0x74, 0x13, 0x44, 0x57, 0xe4, 0x0b, 0xbe, 0xb2, 0x0c, 0x67, 0x39, 0x6f, 0x13, 0x79, + 0x9a, 0x7e, 0x84, 0x9a, 0x7d, 0xd0, 0x24, 0x39, 0x39, 0x3c, 0xc3, 0x14, 0xca, 0x6c, 0x9d, 0x63, + 0x0b, 0xdf, 0x17, 0x60, 0x96, 0xbf, 0xa8, 0x34, 0x7d, 0x67, 0xed, 0x01, 0x68, 0x96, 0x65, 0x7b, + 0x41, 0x77, 0x0d, 0xa7, 0xf2, 0x10, 0x6e, 0xad, 0xe8, 0x83, 0x94, 0x00, 0xc1, 0x62, 0x07, 0xa0, + 0xbf, 0x72, 0xa2, 0xdb, 0x96, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xe7, 0x1f, 0xfa, 0x6a, 0x0b, 0x54, + 0x84, 0xdf, 0x68, 0xa4, 0x79, 0x48, 0x1e, 0xa2, 0xb6, 0x61, 0xb1, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, + 0x29, 0x13, 0xfe, 0x29, 0xe5, 0xe6, 0x75, 0x98, 0xd3, 0xed, 0xce, 0xa0, 0xb9, 0x9b, 0xe2, 0xc0, + 0xeb, 0xb5, 0xfb, 0xa2, 0xf0, 0x59, 0xe8, 0x8f, 0x98, 0x5f, 0x8b, 0xc5, 0xb7, 0x6b, 0x9b, 0xdf, + 0x88, 0x2d, 0x6e, 0x53, 0x5c, 0x8d, 0x3f, 0xa6, 0x82, 0x5a, 0x26, 0xd2, 0xb1, 0xe9, 0xf0, 0xc3, + 0x8f, 0xc1, 0xc7, 0xdb, 0x86, 0x77, 0xd4, 0x3b, 0x5c, 0xd3, 0xed, 0xce, 0xf9, 0xb6, 0xdd, 0xb6, + 0xfb, 0x9f, 0xbb, 0xf0, 0x15, 0xb9, 0x20, 0xff, 0xb1, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x18, 0xf9, + 0x7d, 0x4c, 0xde, 0x87, 0x39, 0xa6, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf2, 0xdc, + 0x25, 0xff, 0xed, 0xf7, 0x48, 0xaf, 0x56, 0x66, 0x19, 0x14, 0xaf, 0xd1, 0x17, 0x08, 0x59, 0x81, + 0xc7, 0x42, 0x7c, 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x7b, 0x8c, 0x71, 0x2e, 0xc0, 0x58, 0x67, + 0x50, 0xb9, 0x04, 0xd3, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x95, 0x45, 0x41, 0x92, 0x6d, 0x98, 0x21, + 0x24, 0x7a, 0xcf, 0xf5, 0xec, 0x0e, 0x29, 0x7a, 0x8f, 0xa6, 0xf9, 0xbb, 0xf7, 0xe8, 0x46, 0xc9, + 0x61, 0x58, 0xc9, 0x47, 0xc9, 0x32, 0x90, 0xcf, 0x0c, 0x4d, 0xa4, 0x9b, 0x11, 0x0c, 0x6f, 0x33, + 0x43, 0x7c, 0x7d, 0xf9, 0x33, 0x30, 0x8f, 0xff, 0x27, 0x35, 0x29, 0x68, 0x49, 0xf4, 0x29, 0x53, + 0xfe, 0xfb, 0xaf, 0xd1, 0xbd, 0x38, 0xe7, 0x13, 0x04, 0x6c, 0x0a, 0x44, 0xb1, 0x8d, 0x3c, 0x0f, + 0x39, 0xae, 0xaa, 0x99, 0xa3, 0xcc, 0x0b, 0xbc, 0xa6, 0xe7, 0xbf, 0xfc, 0x7e, 0x38, 0x8a, 0xdb, + 0x14, 0x59, 0x34, 0x4d, 0xb9, 0x01, 0x67, 0x46, 0x64, 0xc5, 0x18, 0x9c, 0xaf, 0x33, 0xce, 0xf9, + 0xa1, 0xcc, 0xc0, 0xb4, 0x35, 0xe0, 0x72, 0x3f, 0x96, 0x63, 0x70, 0xfe, 0x2e, 0xe3, 0x94, 0x18, + 0x96, 0x87, 0x14, 0x33, 0x5e, 0x83, 0xd9, 0x5b, 0xc8, 0x39, 0xb4, 0x5d, 0x76, 0x34, 0x32, 0x06, + 0xdd, 0x1b, 0x8c, 0x6e, 0x86, 0x01, 0xc9, 0x59, 0x09, 0xe6, 0xba, 0x02, 0xa9, 0x96, 0xa6, 0xa3, + 0x31, 0x28, 0xbe, 0xc2, 0x28, 0xa6, 0xb0, 0x3e, 0x86, 0x16, 0x21, 0xdb, 0xb6, 0x59, 0x5b, 0x8a, + 0x86, 0xbf, 0xc9, 0xe0, 0x19, 0x8e, 0x61, 0x14, 0x5d, 0xbb, 0xdb, 0x33, 0x71, 0xcf, 0x8a, 0xa6, + 0xf8, 0x3d, 0x4e, 0xc1, 0x31, 0x8c, 0xe2, 0x14, 0x6e, 0xfd, 0x2a, 0xa7, 0x70, 0x03, 0xfe, 0x7c, + 0x01, 0x32, 0xb6, 0x65, 0x1e, 0xdb, 0xd6, 0x38, 0x46, 0xdc, 0x65, 0x0c, 0xc0, 0x20, 0x98, 0xe0, + 0x2a, 0xa4, 0xc7, 0x0d, 0xc4, 0xef, 0xbf, 0xcf, 0xb7, 0x07, 0x8f, 0xc0, 0x36, 0xcc, 0xf0, 0x02, + 0x65, 0xd8, 0xd6, 0x18, 0x14, 0x7f, 0xc0, 0x28, 0x72, 0x01, 0x18, 0x7b, 0x0c, 0x0f, 0xb9, 0x5e, + 0x1b, 0x8d, 0x43, 0xf2, 0x16, 0x7f, 0x0c, 0x06, 0x61, 0xae, 0x3c, 0x44, 0x96, 0x7e, 0x34, 0x1e, + 0xc3, 0xd7, 0xb9, 0x2b, 0x39, 0x06, 0x53, 0x94, 0x60, 0xba, 0xa3, 0x39, 0xee, 0x91, 0x66, 0x8e, + 0x15, 0x8e, 0x3f, 0x64, 0x1c, 0x59, 0x1f, 0xc4, 0x3c, 0xd2, 0xb3, 0x4e, 0x43, 0xf3, 0x0d, 0xee, + 0x91, 0x00, 0x8c, 0x6d, 0x3d, 0xd7, 0x23, 0x07, 0x50, 0xa7, 0x61, 0xfb, 0x26, 0xdf, 0x7a, 0x14, + 0xbb, 0x17, 0x64, 0xbc, 0x0a, 0x69, 0xd7, 0x78, 0x75, 0x2c, 0x9a, 0x3f, 0xe2, 0x91, 0x26, 0x00, + 0x0c, 0x7e, 0x19, 0xce, 0x8e, 0x6c, 0x13, 0x63, 0x90, 0xfd, 0x31, 0x23, 0x5b, 0x18, 0xd1, 0x2a, + 0x58, 0x49, 0x38, 0x2d, 0xe5, 0x9f, 0xf0, 0x92, 0x80, 0x06, 0xb8, 0x6a, 0xf8, 0x45, 0xc1, 0xd5, + 0x5a, 0xa7, 0xf3, 0xda, 0x9f, 0x72, 0xaf, 0x51, 0x6c, 0xc8, 0x6b, 0x07, 0xb0, 0xc0, 0x18, 0x4f, + 0x17, 0xd7, 0x6f, 0xf1, 0xc2, 0x4a, 0xd1, 0x8d, 0x70, 0x74, 0x7f, 0x16, 0x16, 0x7d, 0x77, 0xf2, + 0x89, 0xd4, 0x55, 0x3b, 0x5a, 0x77, 0x0c, 0xe6, 0x6f, 0x33, 0x66, 0x5e, 0xf1, 0xfd, 0x91, 0xd6, + 0xdd, 0xd3, 0xba, 0x98, 0xfc, 0x3a, 0xe4, 0x39, 0x79, 0xcf, 0x72, 0x90, 0x6e, 0xb7, 0x2d, 0xe3, + 0x55, 0xd4, 0x1c, 0x83, 0xfa, 0xcf, 0x06, 0x42, 0xd5, 0x08, 0xc0, 0x31, 0xf3, 0x0e, 0x88, 0xfe, + 0xac, 0xa2, 0x1a, 0x9d, 0xae, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0xce, 0x23, 0xe5, 0xe3, 0x76, 0x08, + 0x4c, 0xae, 0x40, 0x8e, 0x5c, 0x8e, 0x9b, 0x92, 0x7f, 0xc1, 0x88, 0xa6, 0xfb, 0x28, 0x56, 0x38, + 0x74, 0xbb, 0xd3, 0xd5, 0x9c, 0x71, 0xea, 0xdf, 0x5f, 0xf2, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, + 0xc7, 0x5d, 0x84, 0xbb, 0xfd, 0x18, 0x0c, 0xdf, 0xe1, 0x85, 0x83, 0x63, 0x18, 0x05, 0x1f, 0x18, + 0xc6, 0xa0, 0xf8, 0x2b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0xd3, 0xfd, 0x46, 0xeb, 0xa0, 0xb6, 0xe1, + 0x7a, 0x0e, 0x9d, 0x83, 0x1f, 0x4d, 0xf5, 0xdd, 0xf7, 0xc3, 0x43, 0x98, 0x12, 0x80, 0xca, 0xd7, + 0x60, 0x66, 0x60, 0xc4, 0x90, 0xa2, 0x7e, 0xb3, 0x90, 0xff, 0xf9, 0x07, 0xac, 0x18, 0x85, 0x27, + 0x0c, 0x79, 0x17, 0xc7, 0x3d, 0x3c, 0x07, 0x44, 0x93, 0xbd, 0xf6, 0xc0, 0x0f, 0x7d, 0x68, 0x0c, + 0x90, 0xb7, 0x60, 0x3a, 0x34, 0x03, 0x44, 0x53, 0xfd, 0x02, 0xa3, 0xca, 0x06, 0x47, 0x00, 0x79, + 0x03, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x91, 0xc1, 0x89, 0xba, 0xfc, 0x49, 0x48, 0xf1, 0x3e, + 0x1e, 0x0d, 0xfd, 0x25, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, 0x78, 0x34, 0xfc, 0x97, 0x39, 0x9c, + 0x43, 0x30, 0x7c, 0x7c, 0x17, 0xfe, 0xcd, 0xaf, 0x26, 0x58, 0x1d, 0xe6, 0xbe, 0xbb, 0x0a, 0x53, + 0xac, 0x79, 0x47, 0xa3, 0x3f, 0xcf, 0x6e, 0xce, 0x11, 0xf2, 0x25, 0x48, 0x8e, 0xe9, 0xf0, 0x5f, + 0x63, 0x50, 0xaa, 0x2f, 0x97, 0x20, 0x13, 0x68, 0xd8, 0xd1, 0xf0, 0x5f, 0x67, 0xf0, 0x20, 0x0a, + 0x9b, 0xce, 0x1a, 0x76, 0x34, 0xc1, 0x6f, 0x70, 0xd3, 0x19, 0x02, 0xbb, 0x8d, 0xf7, 0xea, 0x68, + 0xf4, 0x17, 0xb8, 0xd7, 0x39, 0x44, 0x7e, 0x01, 0xd2, 0x7e, 0xfd, 0x8d, 0xc6, 0xff, 0x26, 0xc3, + 0xf7, 0x31, 0xd8, 0x03, 0x81, 0xfa, 0x1f, 0x4d, 0xf1, 0x5b, 0xdc, 0x03, 0x01, 0x14, 0xde, 0x46, + 0x83, 0x3d, 0x3d, 0x9a, 0xe9, 0x8b, 0x7c, 0x1b, 0x0d, 0xb4, 0x74, 0x1c, 0x4d, 0x52, 0x06, 0xa3, + 0x29, 0x7e, 0x9b, 0x47, 0x93, 0xe8, 0x63, 0x33, 0x06, 0x9b, 0x64, 0x34, 0xc7, 0xef, 0x70, 0x33, + 0x06, 0x7a, 0xa4, 0x5c, 0x03, 0x69, 0xb8, 0x41, 0x46, 0xf3, 0x7d, 0x89, 0xf1, 0xcd, 0x0e, 0xf5, + 0x47, 0xf9, 0x25, 0x58, 0x18, 0xdd, 0x1c, 0xa3, 0x59, 0xbf, 0xfc, 0x60, 0xe0, 0x75, 0x26, 0xd8, + 0x1b, 0xe5, 0x83, 0x7e, 0x95, 0x0d, 0x36, 0xc6, 0x68, 0xda, 0xd7, 0x1f, 0x84, 0x0b, 0x6d, 0xb0, + 0x2f, 0xca, 0x45, 0x80, 0x7e, 0x4f, 0x8a, 0xe6, 0x7a, 0x83, 0x71, 0x05, 0x40, 0x78, 0x6b, 0xb0, + 0x96, 0x14, 0x8d, 0xff, 0x0a, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xef, 0x46, 0xd1, 0xe8, 0x37, + 0xf9, 0xd6, 0xe0, 0x10, 0xf9, 0x2a, 0xa4, 0xac, 0x9e, 0x69, 0xe2, 0xdc, 0x92, 0x1e, 0xfd, 0x33, + 0xa2, 0xfc, 0xbf, 0x3e, 0x64, 0x60, 0x0e, 0x90, 0x37, 0x20, 0x89, 0x3a, 0x87, 0xa8, 0x19, 0x85, + 0xfc, 0xb7, 0x87, 0xbc, 0x9e, 0x60, 0x6d, 0xf9, 0x05, 0x00, 0xfa, 0x32, 0x4d, 0xbe, 0x12, 0x45, + 0x60, 0xff, 0xfd, 0x21, 0xfb, 0x85, 0x42, 0x1f, 0xd2, 0x27, 0xa0, 0xbf, 0x77, 0x78, 0x34, 0xc1, + 0xfb, 0x61, 0x02, 0xf2, 0x02, 0x7e, 0x05, 0xa6, 0x6e, 0xb8, 0xb6, 0xe5, 0x69, 0xed, 0x28, 0xf4, + 0x7f, 0x30, 0x34, 0xd7, 0xc7, 0x0e, 0xeb, 0xd8, 0x0e, 0xf2, 0xb4, 0xb6, 0x1b, 0x85, 0xfd, 0x4f, + 0x86, 0xf5, 0x01, 0x18, 0xac, 0x6b, 0xae, 0x37, 0xce, 0x73, 0xff, 0x17, 0x07, 0x73, 0x00, 0x36, + 0x1a, 0xff, 0x7f, 0x13, 0x1d, 0x47, 0x61, 0x7f, 0xc0, 0x8d, 0x66, 0xfa, 0xf2, 0x27, 0x21, 0x8d, + 0xff, 0xa5, 0xbf, 0xda, 0x89, 0x00, 0xff, 0x37, 0x03, 0xf7, 0x11, 0xf8, 0xce, 0xae, 0xd7, 0xf4, + 0x8c, 0x68, 0x67, 0xff, 0x0f, 0x8b, 0x34, 0xd7, 0x97, 0x8b, 0x90, 0x71, 0xbd, 0x66, 0xb3, 0xc7, + 0x26, 0x9a, 0x08, 0xf8, 0x0f, 0x1f, 0xfa, 0x2f, 0xb9, 0x3e, 0x66, 0xf3, 0xdc, 0xe8, 0xc3, 0x3a, + 0xd8, 0xb6, 0xb7, 0x6d, 0x7a, 0x4c, 0x07, 0x0f, 0xa7, 0x70, 0x19, 0xea, 0xef, 0x4a, 0x76, 0xb4, + 0x96, 0x0d, 0xca, 0x16, 0x4f, 0x77, 0x2e, 0x57, 0xf8, 0x69, 0x10, 0x8a, 0xd2, 0x02, 0x4c, 0x12, + 0x03, 0x7f, 0x92, 0x1c, 0x36, 0xc6, 0x15, 0x76, 0x25, 0x3d, 0x01, 0xc2, 0x26, 0x3b, 0xf5, 0x9c, + 0x59, 0x0b, 0xdd, 0x79, 0x53, 0x11, 0x36, 0xe5, 0xc4, 0x3b, 0x77, 0x97, 0x27, 0x0a, 0x3a, 0x08, + 0x9b, 0x58, 0xb3, 0x44, 0x3e, 0x45, 0x0d, 0x69, 0x96, 0x14, 0xa1, 0x84, 0x97, 0xcb, 0xec, 0x27, + 0x5e, 0x03, 0xcb, 0x65, 0x45, 0x28, 0x4b, 0x2b, 0x20, 0x6c, 0x91, 0xe3, 0xf7, 0xcc, 0xba, 0x14, + 0x5e, 0xae, 0x9a, 0xcd, 0x92, 0x22, 0x6c, 0x15, 0x1e, 0x07, 0xa1, 0x1c, 0x30, 0x53, 0x08, 0x9a, + 0x59, 0xf8, 0xa2, 0x00, 0x42, 0xc9, 0x5f, 0x5d, 0x27, 0x37, 0x12, 0xd8, 0xea, 0xba, 0x2f, 0x7f, + 0x9e, 0x9d, 0x31, 0xb3, 0x2b, 0x5f, 0x7e, 0x81, 0x1c, 0x99, 0x72, 0xfd, 0x0b, 0xbe, 0x7c, 0x83, + 0xfc, 0x38, 0x37, 0xcb, 0xe4, 0x1b, 0xbe, 0xfc, 0x22, 0xf9, 0x00, 0xc0, 0xef, 0x7e, 0xd1, 0x97, + 0x5f, 0x22, 0x3f, 0xf1, 0x8e, 0x31, 0xf9, 0xa5, 0xc2, 0x15, 0x10, 0x1a, 0x21, 0xa3, 0xe2, 0x27, + 0x1a, 0x35, 0xcd, 0x8d, 0x62, 0x2e, 0x7d, 0x11, 0x12, 0x0d, 0xcb, 0xde, 0x3b, 0x35, 0x5a, 0xfc, + 0x95, 0xbb, 0xcb, 0x13, 0x5f, 0xb8, 0xbb, 0x3c, 0xf1, 0xd5, 0xbb, 0xcb, 0x13, 0x84, 0x69, 0x0b, + 0x12, 0x55, 0xb3, 0x79, 0x72, 0x84, 0x57, 0xfa, 0x11, 0x1e, 0xf6, 0x7c, 0x20, 0xc8, 0xd7, 0x08, + 0xcf, 0x26, 0xd6, 0xe7, 0x71, 0x1e, 0x19, 0xa9, 0xd2, 0x18, 0xb1, 0xfc, 0x39, 0xc2, 0x55, 0x3a, + 0x29, 0x9c, 0x1f, 0x38, 0x90, 0xe3, 0x06, 0xe6, 0x22, 0xb9, 0x7f, 0x63, 0xe0, 0xfe, 0xe9, 0x91, + 0xf7, 0x0f, 0x78, 0xbd, 0xb0, 0x0d, 0x53, 0x18, 0x17, 0x0c, 0xcc, 0x98, 0x50, 0x39, 0x1b, 0x0c, + 0xcc, 0xe6, 0x85, 0xb7, 0xef, 0x2d, 0x4d, 0xbc, 0x73, 0x6f, 0x69, 0xe2, 0x1f, 0xee, 0x2d, 0x4d, + 0xbc, 0x7b, 0x6f, 0x49, 0xf8, 0xc1, 0xbd, 0x25, 0xe1, 0xff, 0xee, 0x2d, 0x09, 0x77, 0xee, 0x2f, + 0x09, 0x5f, 0xbf, 0xbf, 0x24, 0x7c, 0xeb, 0xfe, 0x92, 0xf0, 0xdd, 0xfb, 0x4b, 0xc2, 0xdb, 0xf7, + 0x97, 0x84, 0x77, 0xee, 0x2f, 0x09, 0xef, 0xde, 0x5f, 0x12, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, + 0x11, 0xdc, 0xfd, 0x4d, 0x5a, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -1745,44 +1765,27 @@ func valueToGoStringUnrecognized(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringUnrecognized(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.B) > 0 { for _, msg := range m.B { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintUnrecognized(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -1790,222 +1793,222 @@ func (m *A) MarshalTo(data []byte) (int, error) { } } if m.Field1 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field1)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *B) Marshal() (data []byte, err error) { +func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *B) MarshalTo(data []byte) (int, error) { +func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.C != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintUnrecognized(data, i, uint64(m.C.Size())) - n1, err := m.C.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(m.C.Size())) + n1, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n1 } if m.D != nil { - data[i] = 0x12 + dAtA[i] = 0x12 i++ - i = encodeVarintUnrecognized(data, i, uint64(m.D.Size())) - n2, err := m.D.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(m.D.Size())) + n2, err := m.D.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } if m.F != nil { - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintUnrecognized(data, i, uint64(m.F.Size())) - n3, err := m.F.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(m.F.Size())) + n3, err := m.F.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n3 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *D) Marshal() (data []byte, err error) { +func (m *D) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *D) MarshalTo(data []byte) (int, error) { +func (m *D) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field1)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field1)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *C) Marshal() (data []byte, err error) { +func (m *C) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *C) MarshalTo(data []byte) (int, error) { +func (m *C) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field2 != nil { - data[i] = 0x11 + dAtA[i] = 0x11 i++ - i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field2)))) + i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field3))) - i += copy(data[i:], *m.Field3) + i = encodeVarintUnrecognized(dAtA, i, uint64(len(*m.Field3))) + i += copy(dAtA[i:], *m.Field3) } if m.Field4 != nil { - data[i] = 0x21 + dAtA[i] = 0x21 i++ - i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field4)))) + i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field4)))) } if len(m.Field5) > 0 { for _, b := range m.Field5 { - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintUnrecognized(data, i, uint64(len(b))) - i += copy(data[i:], b) + i = encodeVarintUnrecognized(dAtA, i, uint64(len(b))) + i += copy(dAtA[i:], b) } } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field6)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field6)) } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x3d + dAtA[i] = 0x3d i++ f4 := math.Float32bits(float32(num)) - data[i] = uint8(f4) + dAtA[i] = uint8(f4) i++ - data[i] = uint8(f4 >> 8) + dAtA[i] = uint8(f4 >> 8) i++ - data[i] = uint8(f4 >> 16) + dAtA[i] = uint8(f4 >> 16) i++ - data[i] = uint8(f4 >> 24) + dAtA[i] = uint8(f4 >> 24) i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *U) Marshal() (data []byte, err error) { +func (m *U) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *U) MarshalTo(data []byte) (int, error) { +func (m *U) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x11 + dAtA[i] = 0x11 i++ f5 := math.Float64bits(float64(num)) - data[i] = uint8(f5) + dAtA[i] = uint8(f5) i++ - data[i] = uint8(f5 >> 8) + dAtA[i] = uint8(f5 >> 8) i++ - data[i] = uint8(f5 >> 16) + dAtA[i] = uint8(f5 >> 16) i++ - data[i] = uint8(f5 >> 24) + dAtA[i] = uint8(f5 >> 24) i++ - data[i] = uint8(f5 >> 32) + dAtA[i] = uint8(f5 >> 32) i++ - data[i] = uint8(f5 >> 40) + dAtA[i] = uint8(f5 >> 40) i++ - data[i] = uint8(f5 >> 48) + dAtA[i] = uint8(f5 >> 48) i++ - data[i] = uint8(f5 >> 56) + dAtA[i] = uint8(f5 >> 56) i++ } } if m.Field3 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field3)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field3)) } return i, nil } -func (m *OldA) Marshal() (data []byte, err error) { +func (m *OldA) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OldA) MarshalTo(data []byte) (int, error) { +func (m *OldA) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.B) > 0 { for _, msg := range m.B { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintUnrecognized(data, i, uint64(msg.Size())) - n, err := msg.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -2013,186 +2016,186 @@ func (m *OldA) MarshalTo(data []byte) (int, error) { } } if m.Field1 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field1)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field1)) } return i, nil } -func (m *OldB) Marshal() (data []byte, err error) { +func (m *OldB) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OldB) MarshalTo(data []byte) (int, error) { +func (m *OldB) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.C != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintUnrecognized(data, i, uint64(m.C.Size())) - n6, err := m.C.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(m.C.Size())) + n6, err := m.C.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n6 } if m.F != nil { - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintUnrecognized(data, i, uint64(m.F.Size())) - n7, err := m.F.MarshalTo(data[i:]) + i = encodeVarintUnrecognized(dAtA, i, uint64(m.F.Size())) + n7, err := m.F.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n7 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OldC) Marshal() (data []byte, err error) { +func (m *OldC) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OldC) MarshalTo(data []byte) (int, error) { +func (m *OldC) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field1)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field1)) } if m.Field2 != nil { - data[i] = 0x11 + dAtA[i] = 0x11 i++ - i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field2)))) + i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field2)))) } if m.Field3 != nil { - data[i] = 0x1a + dAtA[i] = 0x1a i++ - i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field3))) - i += copy(data[i:], *m.Field3) + i = encodeVarintUnrecognized(dAtA, i, uint64(len(*m.Field3))) + i += copy(dAtA[i:], *m.Field3) } if m.Field6 != nil { - data[i] = 0x30 + dAtA[i] = 0x30 i++ - i = encodeVarintUnrecognized(data, i, uint64(*m.Field6)) + i = encodeVarintUnrecognized(dAtA, i, uint64(*m.Field6)) } if len(m.Field7) > 0 { for _, num := range m.Field7 { - data[i] = 0x3d + dAtA[i] = 0x3d i++ f8 := math.Float32bits(float32(num)) - data[i] = uint8(f8) + dAtA[i] = uint8(f8) i++ - data[i] = uint8(f8 >> 8) + dAtA[i] = uint8(f8 >> 8) i++ - data[i] = uint8(f8 >> 16) + dAtA[i] = uint8(f8 >> 16) i++ - data[i] = uint8(f8 >> 24) + dAtA[i] = uint8(f8 >> 24) i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *OldU) Marshal() (data []byte, err error) { +func (m *OldU) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *OldU) MarshalTo(data []byte) (int, error) { +func (m *OldU) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field1))) - i += copy(data[i:], *m.Field1) + i = encodeVarintUnrecognized(dAtA, i, uint64(len(*m.Field1))) + i += copy(dAtA[i:], *m.Field1) } if len(m.Field2) > 0 { for _, num := range m.Field2 { - data[i] = 0x11 + dAtA[i] = 0x11 i++ f9 := math.Float64bits(float64(num)) - data[i] = uint8(f9) + dAtA[i] = uint8(f9) i++ - data[i] = uint8(f9 >> 8) + dAtA[i] = uint8(f9 >> 8) i++ - data[i] = uint8(f9 >> 16) + dAtA[i] = uint8(f9 >> 16) i++ - data[i] = uint8(f9 >> 24) + dAtA[i] = uint8(f9 >> 24) i++ - data[i] = uint8(f9 >> 32) + dAtA[i] = uint8(f9 >> 32) i++ - data[i] = uint8(f9 >> 40) + dAtA[i] = uint8(f9 >> 40) i++ - data[i] = uint8(f9 >> 48) + dAtA[i] = uint8(f9 >> 48) i++ - data[i] = uint8(f9 >> 56) + dAtA[i] = uint8(f9 >> 56) i++ } } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Unrecognized(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Unrecognized(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Unrecognized(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Unrecognized(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintUnrecognized(data []byte, offset int, v uint64) int { +func encodeVarintUnrecognized(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedA(r randyUnrecognized, easy bool) *A { @@ -2258,7 +2261,7 @@ func NewPopulatedC(r randyUnrecognized, easy bool) *C { this.Field2 = &v4 } if r.Intn(10) != 0 { - v5 := randStringUnrecognized(r) + v5 := string(randStringUnrecognized(r)) this.Field3 = &v5 } if r.Intn(10) != 0 { @@ -2396,7 +2399,7 @@ func NewPopulatedOldC(r randyUnrecognized, easy bool) *OldC { this.Field2 = &v18 } if r.Intn(10) != 0 { - v19 := randStringUnrecognized(r) + v19 := string(randStringUnrecognized(r)) this.Field3 = &v19 } if r.Intn(10) != 0 { @@ -2425,7 +2428,7 @@ func NewPopulatedOldC(r randyUnrecognized, easy bool) *OldC { func NewPopulatedOldU(r randyUnrecognized, easy bool) *OldU { this := &OldU{} if r.Intn(10) != 0 { - v22 := randStringUnrecognized(r) + v22 := string(randStringUnrecognized(r)) this.Field1 = &v22 } if r.Intn(10) != 0 { @@ -2447,7 +2450,7 @@ func NewPopulatedOldU(r randyUnrecognized, easy bool) *OldU { func NewPopulatedOldUnoM(r randyUnrecognized, easy bool) *OldUnoM { this := &OldUnoM{} if r.Intn(10) != 0 { - v24 := randStringUnrecognized(r) + v24 := string(randStringUnrecognized(r)) this.Field1 = &v24 } if r.Intn(10) != 0 { @@ -2492,7 +2495,7 @@ func randStringUnrecognized(r randyUnrecognized) string { } return string(tmps) } -func randUnrecognizedUnrecognized(r randyUnrecognized, maxFieldNumber int) (data []byte) { +func randUnrecognizedUnrecognized(r randyUnrecognized, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -2500,43 +2503,43 @@ func randUnrecognizedUnrecognized(r randyUnrecognized, maxFieldNumber int) (data wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldUnrecognized(data, r, fieldNumber, wire) + dAtA = randFieldUnrecognized(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldUnrecognized(data []byte, r randyUnrecognized, fieldNumber int, wire int) []byte { +func randFieldUnrecognized(dAtA []byte, r randyUnrecognized, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateUnrecognized(data, uint64(key)) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(key)) v27 := r.Int63() if r.Intn(2) == 0 { v27 *= -1 } - data = encodeVarintPopulateUnrecognized(data, uint64(v27)) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(v27)) case 1: - data = encodeVarintPopulateUnrecognized(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateUnrecognized(data, uint64(key)) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateUnrecognized(data, uint64(ll)) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateUnrecognized(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnrecognized(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateUnrecognized(data []byte, v uint64) []byte { +func encodeVarintPopulateUnrecognized(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *A) Size() (n int) { var l int @@ -2858,8 +2861,8 @@ func valueToStringUnrecognized(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *A) Unmarshal(data []byte) error { - l := len(data) +func (m *A) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2871,7 +2874,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -2899,7 +2902,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -2914,7 +2917,7 @@ func (m *A) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.B = append(m.B, &B{}) - if err := m.B[len(m.B)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.B[len(m.B)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2930,7 +2933,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -2940,7 +2943,7 @@ func (m *A) Unmarshal(data []byte) error { m.Field1 = &v default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -2959,8 +2962,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func (m *B) Unmarshal(data []byte) error { - l := len(data) +func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -2972,7 +2975,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3000,7 +3003,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3017,7 +3020,7 @@ func (m *B) Unmarshal(data []byte) error { if m.C == nil { m.C = &C{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3033,7 +3036,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3050,7 +3053,7 @@ func (m *B) Unmarshal(data []byte) error { if m.D == nil { m.D = &D{} } - if err := m.D.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.D.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3066,7 +3069,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3083,13 +3086,13 @@ func (m *B) Unmarshal(data []byte) error { if m.F == nil { m.F = &OldC{} } - if err := m.F.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.F.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3099,7 +3102,7 @@ func (m *B) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3109,8 +3112,8 @@ func (m *B) Unmarshal(data []byte) error { } return nil } -func (m *D) Unmarshal(data []byte) error { - l := len(data) +func (m *D) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3122,7 +3125,7 @@ func (m *D) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3150,7 +3153,7 @@ func (m *D) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3160,7 +3163,7 @@ func (m *D) Unmarshal(data []byte) error { m.Field1 = &v default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3170,7 +3173,7 @@ func (m *D) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3180,8 +3183,8 @@ func (m *D) Unmarshal(data []byte) error { } return nil } -func (m *C) Unmarshal(data []byte) error { - l := len(data) +func (m *C) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3193,7 +3196,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3218,14 +3221,14 @@ func (m *C) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = &v2 case 3: @@ -3240,7 +3243,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3255,7 +3258,7 @@ func (m *C) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field3 = &s iNdEx = postIndex case 4: @@ -3267,14 +3270,14 @@ func (m *C) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field4 = &v2 case 5: @@ -3289,7 +3292,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ byteLen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3304,7 +3307,7 @@ func (m *C) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.Field5 = append(m.Field5, make([]byte, postIndex-iNdEx)) - copy(m.Field5[len(m.Field5)-1], data[iNdEx:postIndex]) + copy(m.Field5[len(m.Field5)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 0 { @@ -3318,7 +3321,7 @@ func (m *C) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3327,23 +3330,60 @@ func (m *C) Unmarshal(data []byte) error { } m.Field6 = &v case 7: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field7 = append(m.Field7, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnrecognized + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUnrecognized + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field7 = append(m.Field7, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field7 = append(m.Field7, v2) default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3353,7 +3393,7 @@ func (m *C) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3363,8 +3403,8 @@ func (m *C) Unmarshal(data []byte) error { } return nil } -func (m *U) Unmarshal(data []byte) error { - l := len(data) +func (m *U) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3376,7 +3416,7 @@ func (m *U) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3393,24 +3433,65 @@ func (m *U) Unmarshal(data []byte) error { } switch fieldNum { case 2: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnrecognized + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUnrecognized + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field2 = append(m.Field2, v2) case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) @@ -3423,7 +3504,7 @@ func (m *U) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (uint32(b) & 0x7F) << shift if b < 0x80 { @@ -3433,7 +3514,7 @@ func (m *U) Unmarshal(data []byte) error { m.Field3 = &v default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3452,8 +3533,8 @@ func (m *U) Unmarshal(data []byte) error { } return nil } -func (m *OldA) Unmarshal(data []byte) error { - l := len(data) +func (m *OldA) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3465,7 +3546,7 @@ func (m *OldA) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3493,7 +3574,7 @@ func (m *OldA) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3508,7 +3589,7 @@ func (m *OldA) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } m.B = append(m.B, &OldB{}) - if err := m.B[len(m.B)-1].Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.B[len(m.B)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3524,7 +3605,7 @@ func (m *OldA) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3534,7 +3615,7 @@ func (m *OldA) Unmarshal(data []byte) error { m.Field1 = &v default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3553,8 +3634,8 @@ func (m *OldA) Unmarshal(data []byte) error { } return nil } -func (m *OldB) Unmarshal(data []byte) error { - l := len(data) +func (m *OldB) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3566,7 +3647,7 @@ func (m *OldB) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3594,7 +3675,7 @@ func (m *OldB) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3611,7 +3692,7 @@ func (m *OldB) Unmarshal(data []byte) error { if m.C == nil { m.C = &OldC{} } - if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3627,7 +3708,7 @@ func (m *OldB) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3644,13 +3725,13 @@ func (m *OldB) Unmarshal(data []byte) error { if m.F == nil { m.F = &OldC{} } - if err := m.F.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.F.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3660,7 +3741,7 @@ func (m *OldB) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3670,8 +3751,8 @@ func (m *OldB) Unmarshal(data []byte) error { } return nil } -func (m *OldC) Unmarshal(data []byte) error { - l := len(data) +func (m *OldC) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3683,7 +3764,7 @@ func (m *OldC) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3711,7 +3792,7 @@ func (m *OldC) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3728,14 +3809,14 @@ func (m *OldC) Unmarshal(data []byte) error { return io.ErrUnexpectedEOF } iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = &v2 case 3: @@ -3750,7 +3831,7 @@ func (m *OldC) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3765,7 +3846,7 @@ func (m *OldC) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field3 = &s iNdEx = postIndex case 6: @@ -3780,7 +3861,7 @@ func (m *OldC) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -3789,23 +3870,60 @@ func (m *OldC) Unmarshal(data []byte) error { } m.Field6 = &v case 7: - if wireType != 5 { + if wireType == 5 { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field7 = append(m.Field7, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnrecognized + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUnrecognized + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + v2 := float32(math.Float32frombits(v)) + m.Field7 = append(m.Field7, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(data[iNdEx-4]) - v |= uint32(data[iNdEx-3]) << 8 - v |= uint32(data[iNdEx-2]) << 16 - v |= uint32(data[iNdEx-1]) << 24 - v2 := float32(math.Float32frombits(v)) - m.Field7 = append(m.Field7, v2) default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3815,7 +3933,7 @@ func (m *OldC) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3825,8 +3943,8 @@ func (m *OldC) Unmarshal(data []byte) error { } return nil } -func (m *OldU) Unmarshal(data []byte) error { - l := len(data) +func (m *OldU) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -3838,7 +3956,7 @@ func (m *OldU) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3866,7 +3984,7 @@ func (m *OldU) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3881,31 +3999,72 @@ func (m *OldU) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Field1 = &s iNdEx = postIndex case 2: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field2 = append(m.Field2, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnrecognized + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUnrecognized + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field2 = append(m.Field2, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field2 = append(m.Field2, v2) default: iNdEx = preIndex - skippy, err := skipUnrecognized(data[iNdEx:]) + skippy, err := skipUnrecognized(dAtA[iNdEx:]) if err != nil { return err } @@ -3915,7 +4074,7 @@ func (m *OldU) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -3925,8 +4084,8 @@ func (m *OldU) Unmarshal(data []byte) error { } return nil } -func skipUnrecognized(data []byte) (n int, err error) { - l := len(data) +func skipUnrecognized(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -3937,7 +4096,7 @@ func skipUnrecognized(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -3955,7 +4114,7 @@ func skipUnrecognized(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -3972,7 +4131,7 @@ func skipUnrecognized(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -3995,7 +4154,7 @@ func skipUnrecognized(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -4006,7 +4165,7 @@ func skipUnrecognized(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipUnrecognized(data[start:]) + next, err := skipUnrecognized(dAtA[start:]) if err != nil { return 0, err } @@ -4030,31 +4189,34 @@ var ( ErrIntOverflowUnrecognized = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("unrecognized.proto", fileDescriptorUnrecognized) } + var fileDescriptorUnrecognized = []byte{ - // 398 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0xcd, 0x2b, 0x4a, - 0x4d, 0xce, 0x4f, 0xcf, 0xcb, 0xac, 0x4a, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, - 0x41, 0x16, 0x93, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, - 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, - 0x59, 0xc9, 0x81, 0x8b, 0xd1, 0x51, 0x48, 0x96, 0x8b, 0xd1, 0x49, 0x82, 0x51, 0x81, 0x59, 0x83, - 0xdb, 0x88, 0x5f, 0x0f, 0xc5, 0x06, 0xa7, 0x20, 0xc6, 0x24, 0x21, 0x31, 0x2e, 0x36, 0xb7, 0xcc, - 0xd4, 0x9c, 0x14, 0x43, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xe6, 0x20, 0xb6, 0x34, 0x30, 0xcf, 0x8a, - 0xe5, 0xc2, 0x42, 0x79, 0x06, 0xa5, 0x64, 0xa0, 0x66, 0x90, 0x09, 0xce, 0x40, 0x13, 0x18, 0x31, - 0x4d, 0x70, 0x0e, 0x62, 0x4c, 0x06, 0x49, 0xbb, 0x80, 0x35, 0x63, 0x48, 0xbb, 0x04, 0x31, 0xa6, - 0x08, 0x29, 0x70, 0x31, 0xba, 0x49, 0xb0, 0x82, 0xa5, 0x85, 0x50, 0xa5, 0xfd, 0x73, 0x52, 0x80, - 0x06, 0xa4, 0x29, 0x49, 0x03, 0x0d, 0x40, 0x72, 0x07, 0x23, 0xb2, 0x3b, 0x94, 0x26, 0x33, 0x02, - 0x6d, 0x87, 0xcb, 0x1a, 0x81, 0x2d, 0x62, 0x84, 0xca, 0x1a, 0xc1, 0xc5, 0x8d, 0x25, 0x98, 0x81, - 0xe2, 0x9c, 0x50, 0x71, 0x63, 0xb8, 0xb8, 0x89, 0x04, 0x0b, 0x92, 0x7a, 0x13, 0xb8, 0xb8, 0x29, - 0xd0, 0x45, 0xcc, 0x1a, 0x3c, 0x50, 0x71, 0x53, 0xb8, 0xb8, 0x99, 0x04, 0x1b, 0x92, 0xed, 0x66, - 0x70, 0x71, 0x73, 0x09, 0x76, 0xa0, 0x7a, 0x26, 0xa8, 0xb8, 0xb9, 0x92, 0x25, 0x17, 0x63, 0x28, - 0x8a, 0xa3, 0x98, 0x71, 0x3a, 0x8a, 0x17, 0xe6, 0x28, 0x68, 0x90, 0x7a, 0x70, 0xb1, 0x84, 0xe6, - 0xe5, 0xfb, 0x92, 0xac, 0x5b, 0xa0, 0x03, 0xa8, 0x7b, 0x02, 0x10, 0x2f, 0x00, 0x62, 0xb0, 0x49, - 0x6e, 0x5c, 0x2c, 0xc0, 0x20, 0x74, 0x04, 0x85, 0x30, 0x2c, 0x86, 0x31, 0x43, 0x98, 0x88, 0x48, - 0xf6, 0x02, 0x9b, 0xe3, 0x04, 0x32, 0x07, 0x16, 0xcf, 0x58, 0x63, 0x2a, 0x99, 0x88, 0xb8, 0xac, - 0x03, 0x9b, 0xe5, 0x8c, 0x2b, 0x3a, 0xc9, 0x8e, 0x48, 0x62, 0x23, 0xc6, 0x0c, 0x6c, 0x7f, 0x28, - 0x9a, 0xfd, 0x9c, 0x58, 0xed, 0x47, 0x0a, 0x75, 0x25, 0x77, 0x2e, 0x76, 0x90, 0x3e, 0xe4, 0x88, - 0x21, 0x52, 0xab, 0x15, 0x0f, 0x72, 0xc4, 0x38, 0x99, 0x9c, 0x78, 0x28, 0xc7, 0x70, 0x01, 0x88, - 0x6f, 0x00, 0xf1, 0x83, 0x87, 0x72, 0x8c, 0x1f, 0x80, 0xf8, 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63, - 0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x9f, 0x00, 0xe2, 0x0b, 0x40, 0xfc, 0x00, 0x88, - 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xea, 0xec, 0xd3, 0x83, 0xfb, 0x03, 0x00, 0x00, + // 414 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0xbd, 0x4e, 0xc2, 0x50, + 0x18, 0xed, 0x47, 0x0b, 0x84, 0x2b, 0x46, 0xd3, 0xc1, 0xdc, 0x68, 0xbc, 0x6d, 0x3a, 0x75, 0x11, + 0x22, 0xbf, 0x91, 0x49, 0xda, 0xa6, 0x1a, 0x13, 0x43, 0xd2, 0x84, 0x17, 0x80, 0x62, 0x25, 0x41, + 0x6a, 0x08, 0x2c, 0x0e, 0xc6, 0xd1, 0xd1, 0xc4, 0x17, 0xb0, 0x9b, 0xa3, 0xa3, 0x8f, 0xc0, 0xc8, + 0xe8, 0x48, 0xfb, 0x04, 0x8e, 0x8e, 0xa6, 0xd7, 0xd2, 0x5c, 0x04, 0x92, 0xea, 0x76, 0xbf, 0x73, + 0xee, 0x77, 0xce, 0xc9, 0x77, 0x90, 0x38, 0x19, 0x8e, 0x7a, 0x5d, 0xd7, 0x19, 0xf6, 0xef, 0x7a, + 0x76, 0xe1, 0x76, 0xe4, 0x8e, 0x5d, 0x31, 0xcf, 0x62, 0xfb, 0x47, 0x4e, 0x7f, 0x7c, 0x3d, 0xe9, + 0x14, 0xba, 0xee, 0x4d, 0xd1, 0x71, 0x1d, 0xb7, 0x48, 0x3f, 0x75, 0x26, 0x57, 0x74, 0xa2, 0x03, + 0x7d, 0xfd, 0x2c, 0x2b, 0xa7, 0x08, 0x9a, 0xe2, 0x21, 0x02, 0x0d, 0x83, 0xcc, 0xab, 0x5b, 0xa5, + 0x9d, 0xc2, 0x92, 0x83, 0x66, 0x81, 0x26, 0xee, 0xa1, 0x8c, 0xd9, 0xef, 0x0d, 0xec, 0x63, 0x9c, + 0x92, 0x41, 0xe5, 0xad, 0x68, 0x6a, 0x08, 0x33, 0x4f, 0xe2, 0x94, 0x2e, 0x02, 0x2d, 0x54, 0xd0, + 0x31, 0xc8, 0xb0, 0xaa, 0xa0, 0x5b, 0xa0, 0x87, 0xb4, 0x41, 0x97, 0x57, 0x68, 0xc3, 0x02, 0x43, + 0x94, 0x11, 0x98, 0x38, 0x4d, 0x69, 0x71, 0x99, 0x6e, 0x0d, 0x6c, 0xdd, 0x02, 0x53, 0x39, 0x40, + 0x60, 0x30, 0x39, 0x80, 0xcd, 0xa1, 0x3c, 0x03, 0x02, 0x3d, 0x66, 0x4b, 0xd4, 0x08, 0x22, 0xb6, + 0x14, 0xe3, 0x65, 0xcc, 0xcb, 0xa0, 0xe6, 0x22, 0xbc, 0x1c, 0xe3, 0x15, 0x2c, 0x30, 0xff, 0x2b, + 0x31, 0x5e, 0xc5, 0x69, 0x99, 0x57, 0xf3, 0x11, 0x5e, 0x8d, 0xf1, 0x1a, 0xce, 0x30, 0xee, 0xb5, + 0x18, 0xaf, 0xe3, 0xac, 0xcc, 0xab, 0xa9, 0x08, 0xaf, 0x2b, 0x27, 0x08, 0xda, 0x4b, 0xa1, 0xf8, + 0x8d, 0xa1, 0xb6, 0x17, 0xa1, 0xa2, 0x93, 0x9e, 0x23, 0xa1, 0x3d, 0x74, 0x2f, 0xff, 0xbc, 0xbd, + 0xfb, 0xe8, 0x49, 0xdc, 0x93, 0x27, 0x71, 0x2f, 0x9e, 0xc4, 0x51, 0x25, 0x13, 0x09, 0xad, 0x81, + 0xdd, 0x0c, 0x2f, 0xbc, 0x68, 0x78, 0xf5, 0xc2, 0x09, 0x4a, 0xbe, 0xa0, 0x3a, 0x5a, 0xa8, 0xb3, + 0xe8, 0x79, 0x6d, 0x53, 0x7a, 0x82, 0x2e, 0xef, 0xa9, 0x96, 0xbe, 0xa9, 0xce, 0x7f, 0x17, 0x99, + 0xb4, 0x98, 0x1a, 0xf5, 0x6f, 0xff, 0xf2, 0xcf, 0xad, 0xf5, 0x67, 0xae, 0xae, 0x9c, 0xa1, 0x6c, + 0xb8, 0xc7, 0x16, 0x93, 0x70, 0xb5, 0x91, 0x67, 0x8b, 0xd1, 0x2a, 0x53, 0x9f, 0x70, 0x33, 0x9f, + 0x70, 0x1f, 0x3e, 0xe1, 0xe6, 0x3e, 0x81, 0x4f, 0x9f, 0xc0, 0x97, 0x4f, 0xe0, 0x21, 0x20, 0xf0, + 0x1a, 0x10, 0x78, 0x0b, 0x08, 0xbc, 0x07, 0x04, 0xa6, 0x01, 0x81, 0x59, 0x40, 0x60, 0x1e, 0x10, + 0xf8, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x75, 0x16, 0xec, 0x6e, 0xfb, 0x03, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto index 626ac84a..483227a3 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go index 1a4f253a..5b8b3bbb 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go @@ -43,18 +43,18 @@ func TestAProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -78,20 +78,20 @@ func TestAMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -105,18 +105,18 @@ func TestBProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -140,20 +140,20 @@ func TestBMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -167,18 +167,18 @@ func TestDProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedD(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -202,20 +202,20 @@ func TestDMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedD(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -229,18 +229,18 @@ func TestCProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -264,20 +264,20 @@ func TestCMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -291,18 +291,18 @@ func TestUProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -326,20 +326,20 @@ func TestUMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -353,18 +353,18 @@ func TestUnoMProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnoM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -387,18 +387,18 @@ func TestOldAProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -422,20 +422,20 @@ func TestOldAMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldA(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -449,18 +449,18 @@ func TestOldBProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -484,20 +484,20 @@ func TestOldBMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldB(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -511,18 +511,18 @@ func TestOldCProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -546,20 +546,20 @@ func TestOldCMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldC(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -573,18 +573,18 @@ func TestOldUProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -608,20 +608,20 @@ func TestOldUMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldU(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -635,18 +635,18 @@ func TestOldUnoMProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -900,9 +900,9 @@ func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -917,9 +917,9 @@ func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -934,9 +934,9 @@ func TestBProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -951,9 +951,9 @@ func TestBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -968,9 +968,9 @@ func TestDProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedD(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &D{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -985,9 +985,9 @@ func TestDProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedD(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &D{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1002,9 +1002,9 @@ func TestCProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1019,9 +1019,9 @@ func TestCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1036,9 +1036,9 @@ func TestUProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1053,9 +1053,9 @@ func TestUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1070,9 +1070,9 @@ func TestUnoMProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnoM(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1087,9 +1087,9 @@ func TestUnoMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedUnoM(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1104,9 +1104,9 @@ func TestOldAProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1121,9 +1121,9 @@ func TestOldAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1138,9 +1138,9 @@ func TestOldBProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1155,9 +1155,9 @@ func TestOldBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1172,9 +1172,9 @@ func TestOldCProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldC{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1189,9 +1189,9 @@ func TestOldCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldC{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1206,9 +1206,9 @@ func TestOldUProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldU{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1223,9 +1223,9 @@ func TestOldUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldU{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1240,9 +1240,9 @@ func TestOldUnoMProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1257,9 +1257,9 @@ func TestOldUnoMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1276,12 +1276,12 @@ func TestUnrecognizedDescription(t *testing.T) { func TestAVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1291,12 +1291,12 @@ func TestAVerboseEqual(t *testing.T) { func TestBVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1306,12 +1306,12 @@ func TestBVerboseEqual(t *testing.T) { func TestDVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedD(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1321,12 +1321,12 @@ func TestDVerboseEqual(t *testing.T) { func TestCVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1336,12 +1336,12 @@ func TestCVerboseEqual(t *testing.T) { func TestUVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1351,12 +1351,12 @@ func TestUVerboseEqual(t *testing.T) { func TestUnoMVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnoM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1366,12 +1366,12 @@ func TestUnoMVerboseEqual(t *testing.T) { func TestOldAVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1381,12 +1381,12 @@ func TestOldAVerboseEqual(t *testing.T) { func TestOldBVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldB(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1396,12 +1396,12 @@ func TestOldBVerboseEqual(t *testing.T) { func TestOldCVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldC(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1411,12 +1411,12 @@ func TestOldCVerboseEqual(t *testing.T) { func TestOldUVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldU(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1426,12 +1426,12 @@ func TestOldUVerboseEqual(t *testing.T) { func TestOldUnoMVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldUnoM(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1586,13 +1586,13 @@ func TestASize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1608,13 +1608,13 @@ func TestBSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedB(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1630,13 +1630,13 @@ func TestDSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedD(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1652,13 +1652,13 @@ func TestCSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedC(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1674,13 +1674,13 @@ func TestUSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedU(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1696,13 +1696,13 @@ func TestOldASize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1718,13 +1718,13 @@ func TestOldBSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1740,13 +1740,13 @@ func TestOldCSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -1762,13 +1762,13 @@ func TestOldUSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile index 71dee0d8..5ea242c4 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/Makefile @@ -1,6 +1,6 @@ -# Extensions for Protocol Buffers to create more go like structures. +# Protocol Buffers for Go with Gadgets # -# Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. +# Copyright (c) 2013, The GoGo Authors. All rights reserved. # http://github.com/gogo/protobuf # # Redistribution and use in source and binary forms, with or without diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/oldnew_test.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/oldnew_test.go index 04728cf8..893cb5de 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/oldnew_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/oldnew_test.go @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go index 867cf041..5932399f 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go @@ -27,8 +27,6 @@ import bytes "bytes" import io_ioutil "io/ioutil" import strings "strings" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -40,12 +38,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type NewNoGroup struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` - A *A `protobuf:"bytes,5,opt,name=A,json=a" json:"A,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3" json:"Field3,omitempty"` + A *A `protobuf:"bytes,5,opt,name=A" json:"A,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -54,7 +54,7 @@ func (*NewNoGroup) ProtoMessage() {} func (*NewNoGroup) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognizedgroup, []int{0} } type A struct { - AField *int64 `protobuf:"varint,1,opt,name=AField,json=aField" json:"AField,omitempty"` + AField *int64 `protobuf:"varint,1,opt,name=AField" json:"AField,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -63,9 +63,9 @@ func (*A) ProtoMessage() {} func (*A) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognizedgroup, []int{1} } type OldWithGroup struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` Group1 *OldWithGroup_Group1 `protobuf:"group,2,opt,name=Group1,json=group1" json:"group1,omitempty"` - Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` + Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3" json:"Field3,omitempty"` Group2 *OldWithGroup_Group2 `protobuf:"group,4,opt,name=Group2,json=group2" json:"group2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -75,9 +75,9 @@ func (*OldWithGroup) ProtoMessage() {} func (*OldWithGroup) Descriptor() ([]byte, []int) { return fileDescriptorUnrecognizedgroup, []int{2} } type OldWithGroup_Group1 struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 *int32 `protobuf:"varint,2,opt,name=Field2,json=field2" json:"Field2,omitempty"` - Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3,json=field3" json:"Field3,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 *int32 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` + Field3 []float64 `protobuf:"fixed64,3,rep,name=Field3" json:"Field3,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -88,8 +88,8 @@ func (*OldWithGroup_Group1) Descriptor() ([]byte, []int) { } type OldWithGroup_Group2 struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"` - Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"` + Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` + Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2" json:"Field2,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -124,223 +124,242 @@ func (this *OldWithGroup_Group2) Description() (desc *github_com_gogo_protobuf_p func UnrecognizedgroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3445 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x6d, 0x6c, 0x23, 0xe5, - 0xb5, 0xc6, 0xf1, 0x47, 0xec, 0x63, 0xc7, 0x71, 0x26, 0x61, 0xd7, 0x1b, 0x60, 0x97, 0x35, 0x5f, - 0xcb, 0x72, 0xc9, 0xb2, 0xe1, 0x02, 0x8b, 0xb9, 0x17, 0xe4, 0x24, 0xde, 0x90, 0x55, 0x12, 0xfb, - 0x4e, 0x12, 0x58, 0xb8, 0x3f, 0x46, 0x13, 0xfb, 0x8d, 0xe3, 0xdd, 0xf1, 0x8c, 0xaf, 0x67, 0xbc, - 0xbb, 0xe1, 0x17, 0x57, 0xdc, 0xdb, 0x16, 0x55, 0x6d, 0xe9, 0x87, 0x54, 0xbe, 0x0b, 0x48, 0x2d, - 0x94, 0x7e, 0x41, 0xbf, 0x54, 0xf5, 0x57, 0xa5, 0x8a, 0xb6, 0xea, 0x8f, 0xaa, 0xed, 0xaf, 0xfe, - 0xe8, 0x8f, 0x52, 0x21, 0xf5, 0x0b, 0x5a, 0x2a, 0xad, 0xd4, 0x4a, 0xfc, 0xe9, 0x79, 0xbf, 0xc6, - 0x33, 0x63, 0x27, 0xe3, 0x20, 0x51, 0x8a, 0x64, 0xd6, 0x73, 0xde, 0xf3, 0x3c, 0x73, 0xde, 0xf3, - 0x9e, 0xf7, 0x9c, 0xf3, 0xbe, 0x0e, 0xfc, 0xf0, 0x24, 0x5c, 0xdb, 0xb0, 0xac, 0x86, 0x41, 0x4e, - 0xb4, 0x3b, 0x96, 0x63, 0x6d, 0x76, 0xb7, 0x4e, 0xd4, 0x89, 0x5d, 0xeb, 0x34, 0xdb, 0x8e, 0xd5, - 0x99, 0x61, 0x32, 0x65, 0x9c, 0x6b, 0xcc, 0x48, 0x8d, 0xc2, 0x0a, 0x4c, 0x9c, 0x6e, 0x1a, 0x64, - 0xc1, 0x55, 0x5c, 0x23, 0x8e, 0x72, 0x0a, 0x62, 0x5b, 0x28, 0xcc, 0x47, 0xae, 0x8d, 0x1e, 0x4b, - 0xcf, 0x5e, 0x3f, 0x13, 0x00, 0xcd, 0xf8, 0x11, 0x55, 0x2a, 0x56, 0x19, 0xa2, 0xf0, 0x56, 0x0c, - 0x26, 0x07, 0x8c, 0x2a, 0x0a, 0xc4, 0x4c, 0xbd, 0x45, 0x19, 0x23, 0xc7, 0x52, 0x2a, 0xfb, 0xae, - 0xe4, 0x61, 0xb4, 0xad, 0xd7, 0xce, 0xeb, 0x0d, 0x92, 0x1f, 0x61, 0x62, 0xf9, 0xa8, 0x1c, 0x06, - 0xa8, 0x93, 0x36, 0x31, 0xeb, 0xc4, 0xac, 0xed, 0xe4, 0xa3, 0x68, 0x45, 0x4a, 0xf5, 0x48, 0x94, - 0x5b, 0x60, 0xa2, 0xdd, 0xdd, 0x34, 0x9a, 0x35, 0xcd, 0xa3, 0x06, 0xa8, 0x16, 0x57, 0x73, 0x7c, - 0x60, 0xa1, 0xa7, 0x7c, 0x13, 0x8c, 0x5f, 0x24, 0xfa, 0x79, 0xaf, 0x6a, 0x9a, 0xa9, 0x66, 0xa9, - 0xd8, 0xa3, 0x38, 0x0f, 0x99, 0x16, 0xb1, 0x6d, 0x34, 0x40, 0x73, 0x76, 0xda, 0x24, 0x1f, 0x63, - 0xb3, 0xbf, 0xb6, 0x6f, 0xf6, 0xc1, 0x99, 0xa7, 0x05, 0x6a, 0x1d, 0x41, 0x4a, 0x09, 0x52, 0xc4, - 0xec, 0xb6, 0x38, 0x43, 0x7c, 0x17, 0xff, 0x95, 0x51, 0x23, 0xc8, 0x92, 0xa4, 0x30, 0x41, 0x31, - 0x6a, 0x93, 0xce, 0x85, 0x66, 0x8d, 0xe4, 0x13, 0x8c, 0xe0, 0xa6, 0x3e, 0x82, 0x35, 0x3e, 0x1e, - 0xe4, 0x90, 0x38, 0x9c, 0x4a, 0x8a, 0x5c, 0x72, 0x88, 0x69, 0x37, 0x2d, 0x33, 0x3f, 0xca, 0x48, - 0x6e, 0x18, 0xb0, 0x8a, 0xc4, 0xa8, 0x07, 0x29, 0x7a, 0x38, 0xe5, 0x4e, 0x18, 0xb5, 0xda, 0x0e, - 0x7e, 0xb3, 0xf3, 0x49, 0x5c, 0x9f, 0xf4, 0xec, 0xd5, 0x03, 0x03, 0xa1, 0xc2, 0x75, 0x54, 0xa9, - 0xac, 0x2c, 0x41, 0xce, 0xb6, 0xba, 0x9d, 0x1a, 0xd1, 0x6a, 0x56, 0x9d, 0x68, 0x4d, 0x73, 0xcb, - 0xca, 0xa7, 0x18, 0xc1, 0x91, 0xfe, 0x89, 0x30, 0xc5, 0x79, 0xd4, 0x5b, 0x42, 0x35, 0x35, 0x6b, - 0xfb, 0x9e, 0x95, 0x03, 0x90, 0xb0, 0x77, 0x4c, 0x47, 0xbf, 0x94, 0xcf, 0xb0, 0x08, 0x11, 0x4f, - 0x85, 0xbf, 0xc5, 0x61, 0x7c, 0x98, 0x10, 0xbb, 0x07, 0xe2, 0x5b, 0x74, 0x96, 0x18, 0x60, 0xfb, - 0xf0, 0x01, 0xc7, 0xf8, 0x9d, 0x98, 0x78, 0x9f, 0x4e, 0x2c, 0x41, 0xda, 0x24, 0xb6, 0x43, 0xea, - 0x3c, 0x22, 0xa2, 0x43, 0xc6, 0x14, 0x70, 0x50, 0x7f, 0x48, 0xc5, 0xde, 0x57, 0x48, 0x9d, 0x85, - 0x71, 0xd7, 0x24, 0xad, 0xa3, 0x9b, 0x0d, 0x19, 0x9b, 0x27, 0xc2, 0x2c, 0x99, 0x29, 0x4b, 0x9c, - 0x4a, 0x61, 0x6a, 0x96, 0xf8, 0x9e, 0x95, 0x05, 0x00, 0xcb, 0x24, 0xd6, 0x16, 0x6e, 0xaf, 0x9a, - 0x81, 0x71, 0x32, 0xd8, 0x4b, 0x15, 0xaa, 0xd2, 0xe7, 0x25, 0x8b, 0x4b, 0x6b, 0x86, 0x72, 0x77, - 0x2f, 0xd4, 0x46, 0x77, 0x89, 0x94, 0x15, 0xbe, 0xc9, 0xfa, 0xa2, 0x6d, 0x03, 0xb2, 0x1d, 0x42, - 0xe3, 0x1e, 0x5d, 0xcc, 0x67, 0x96, 0x62, 0x46, 0xcc, 0x84, 0xce, 0x4c, 0x15, 0x30, 0x3e, 0xb1, - 0xb1, 0x8e, 0xf7, 0x51, 0xb9, 0x0e, 0x5c, 0x81, 0xc6, 0xc2, 0x0a, 0x58, 0x16, 0xca, 0x48, 0xe1, - 0x2a, 0xca, 0xa6, 0x4f, 0x41, 0xd6, 0xef, 0x1e, 0x65, 0x0a, 0xe2, 0xb6, 0xa3, 0x77, 0x1c, 0x16, - 0x85, 0x71, 0x95, 0x3f, 0x28, 0x39, 0x88, 0x62, 0x92, 0x61, 0x59, 0x2e, 0xae, 0xd2, 0xaf, 0xd3, - 0x77, 0xc1, 0x98, 0xef, 0xf5, 0xc3, 0x02, 0x0b, 0x4f, 0x26, 0x60, 0x6a, 0x50, 0xcc, 0x0d, 0x0c, - 0x7f, 0xdc, 0x3e, 0x18, 0x01, 0x9b, 0xa4, 0x83, 0x71, 0x47, 0x19, 0xc4, 0x13, 0x46, 0x54, 0xdc, - 0xd0, 0x37, 0x89, 0x81, 0xd1, 0x14, 0x39, 0x96, 0x9d, 0xbd, 0x65, 0xa8, 0xa8, 0x9e, 0x59, 0xa6, - 0x10, 0x95, 0x23, 0x95, 0x7b, 0x21, 0x26, 0x52, 0x1c, 0x65, 0x38, 0x3e, 0x1c, 0x03, 0x8d, 0x45, - 0x95, 0xe1, 0x94, 0xab, 0x20, 0x45, 0xff, 0xe5, 0xbe, 0x4d, 0x30, 0x9b, 0x93, 0x54, 0x40, 0xfd, - 0xaa, 0x4c, 0x43, 0x92, 0x85, 0x59, 0x9d, 0xc8, 0xd2, 0xe0, 0x3e, 0xd3, 0x85, 0xa9, 0x93, 0x2d, - 0xbd, 0x6b, 0x38, 0xda, 0x05, 0xdd, 0xe8, 0x12, 0x16, 0x30, 0xb8, 0x30, 0x42, 0xf8, 0x00, 0x95, - 0x29, 0x47, 0x20, 0xcd, 0xa3, 0xb2, 0x89, 0x98, 0x4b, 0x2c, 0xfb, 0xc4, 0x55, 0x1e, 0xa8, 0x4b, - 0x54, 0x42, 0x5f, 0x7f, 0xce, 0xc6, 0xbd, 0x20, 0x96, 0x96, 0xbd, 0x82, 0x0a, 0xd8, 0xeb, 0xef, - 0x0a, 0x26, 0xbe, 0x6b, 0x06, 0x4f, 0x2f, 0x18, 0x8b, 0x85, 0xef, 0x8e, 0x40, 0x8c, 0xed, 0xb7, - 0x71, 0x48, 0xaf, 0x3f, 0x54, 0x2d, 0x6b, 0x0b, 0x95, 0x8d, 0xb9, 0xe5, 0x72, 0x2e, 0xa2, 0x64, - 0x01, 0x98, 0xe0, 0xf4, 0x72, 0xa5, 0xb4, 0x9e, 0x1b, 0x71, 0x9f, 0x97, 0x56, 0xd7, 0xef, 0xfc, - 0xf7, 0x5c, 0xd4, 0x05, 0x6c, 0x70, 0x41, 0xcc, 0xab, 0x70, 0xfb, 0x6c, 0x2e, 0x8e, 0x91, 0x90, - 0xe1, 0x04, 0x4b, 0x67, 0xcb, 0x0b, 0xa8, 0x91, 0xf0, 0x4b, 0x50, 0x67, 0x54, 0x19, 0x83, 0x14, - 0x93, 0xcc, 0x55, 0x2a, 0xcb, 0xb9, 0xa4, 0xcb, 0xb9, 0xb6, 0xae, 0x2e, 0xad, 0x2e, 0xe6, 0x52, - 0x2e, 0xe7, 0xa2, 0x5a, 0xd9, 0xa8, 0xe6, 0xc0, 0x65, 0x58, 0x29, 0xaf, 0xad, 0x95, 0x16, 0xcb, - 0xb9, 0xb4, 0xab, 0x31, 0xf7, 0xd0, 0x7a, 0x79, 0x2d, 0x97, 0xf1, 0x99, 0x85, 0xaf, 0x18, 0x73, - 0x5f, 0x51, 0x5e, 0xdd, 0x58, 0xc9, 0x65, 0x95, 0x09, 0x18, 0xe3, 0xaf, 0x90, 0x46, 0x8c, 0x07, - 0x44, 0x68, 0x69, 0xae, 0x67, 0x08, 0x67, 0x99, 0xf0, 0x09, 0x50, 0x43, 0x29, 0xcc, 0x43, 0x9c, - 0x45, 0x17, 0x46, 0x71, 0x76, 0xb9, 0x34, 0x57, 0x5e, 0xd6, 0x2a, 0xd5, 0xf5, 0xa5, 0xca, 0x6a, - 0x69, 0x19, 0x7d, 0xe7, 0xca, 0xd4, 0xf2, 0x7f, 0x6d, 0x2c, 0xa9, 0xe5, 0x05, 0xf4, 0x9f, 0x47, - 0x56, 0x2d, 0x97, 0xd6, 0x51, 0x16, 0x2d, 0x1c, 0x87, 0xa9, 0x41, 0x79, 0x66, 0xd0, 0xce, 0x28, - 0xbc, 0x14, 0x81, 0xc9, 0x01, 0x29, 0x73, 0xe0, 0x2e, 0xba, 0x0f, 0xe2, 0x3c, 0xd2, 0x78, 0x11, - 0xb9, 0x79, 0x60, 0xee, 0x65, 0x71, 0xd7, 0x57, 0x48, 0x18, 0xce, 0x5b, 0x48, 0xa3, 0xbb, 0x14, - 0x52, 0x4a, 0xd1, 0x17, 0x4e, 0x8f, 0x45, 0x20, 0xbf, 0x1b, 0x77, 0xc8, 0x7e, 0x1f, 0xf1, 0xed, - 0xf7, 0x7b, 0x82, 0x06, 0x1c, 0xdd, 0x7d, 0x0e, 0x7d, 0x56, 0xbc, 0x1c, 0x81, 0x03, 0x83, 0xfb, - 0x8d, 0x81, 0x36, 0xdc, 0x0b, 0x89, 0x16, 0x71, 0xb6, 0x2d, 0x59, 0x73, 0x6f, 0x1c, 0x90, 0xc9, - 0xe9, 0x70, 0xd0, 0x57, 0x02, 0xe5, 0x2d, 0x05, 0xd1, 0xdd, 0x9a, 0x06, 0x6e, 0x4d, 0x9f, 0xa5, - 0x8f, 0x8f, 0xc0, 0x95, 0x03, 0xc9, 0x07, 0x1a, 0x7a, 0x0d, 0x40, 0xd3, 0x6c, 0x77, 0x1d, 0x5e, - 0x57, 0x79, 0x9a, 0x49, 0x31, 0x09, 0xdb, 0xc2, 0x34, 0x85, 0x74, 0x1d, 0x77, 0x3c, 0xca, 0xc6, - 0x81, 0x8b, 0x98, 0xc2, 0xa9, 0x9e, 0xa1, 0x31, 0x66, 0xe8, 0xe1, 0x5d, 0x66, 0xda, 0x57, 0xb2, - 0x6e, 0x83, 0x5c, 0xcd, 0x68, 0x12, 0xd3, 0xd1, 0x6c, 0xa7, 0x43, 0xf4, 0x56, 0xd3, 0x6c, 0xb0, - 0x3c, 0x9a, 0x2c, 0xc6, 0xb7, 0x74, 0xc3, 0x26, 0xea, 0x38, 0x1f, 0x5e, 0x93, 0xa3, 0x14, 0xc1, - 0x8a, 0x45, 0xc7, 0x83, 0x48, 0xf8, 0x10, 0x7c, 0xd8, 0x45, 0x14, 0x7e, 0x39, 0x0a, 0x69, 0x4f, - 0x77, 0xa6, 0x1c, 0x85, 0xcc, 0x39, 0xfd, 0x82, 0xae, 0xc9, 0x8e, 0x9b, 0x7b, 0x22, 0x4d, 0x65, - 0x55, 0xd1, 0x75, 0xdf, 0x06, 0x53, 0x4c, 0x05, 0xe7, 0x88, 0x2f, 0xaa, 0x19, 0xba, 0x6d, 0x33, - 0xa7, 0x25, 0x99, 0xaa, 0x42, 0xc7, 0x2a, 0x74, 0x68, 0x5e, 0x8e, 0x28, 0x77, 0xc0, 0x24, 0x43, - 0xb4, 0x30, 0xf1, 0x36, 0xdb, 0x06, 0xd1, 0xe8, 0x19, 0xc0, 0x66, 0xf9, 0xd4, 0xb5, 0x6c, 0x82, - 0x6a, 0xac, 0x08, 0x05, 0x6a, 0x91, 0xad, 0x2c, 0xc2, 0x35, 0x0c, 0xd6, 0x20, 0x26, 0xe9, 0xe8, - 0x0e, 0xd1, 0xc8, 0xff, 0x74, 0x51, 0x57, 0xd3, 0xcd, 0xba, 0xb6, 0xad, 0xdb, 0xdb, 0xf9, 0x29, - 0x2f, 0xc1, 0x21, 0xaa, 0xbb, 0x28, 0x54, 0xcb, 0x4c, 0xb3, 0x64, 0xd6, 0xef, 0x47, 0x3d, 0xa5, - 0x08, 0x07, 0x18, 0x11, 0x3a, 0x05, 0xe7, 0xac, 0xd5, 0xb6, 0x49, 0xed, 0xbc, 0xd6, 0x75, 0xb6, - 0x4e, 0xe5, 0xaf, 0xf2, 0x32, 0x30, 0x23, 0xd7, 0x98, 0xce, 0x3c, 0x55, 0xd9, 0x40, 0x0d, 0x65, - 0x0d, 0x32, 0x74, 0x3d, 0x5a, 0xcd, 0x47, 0xd0, 0x6c, 0xab, 0xc3, 0x6a, 0x44, 0x76, 0xc0, 0xe6, - 0xf6, 0x38, 0x71, 0xa6, 0x22, 0x00, 0x2b, 0xd8, 0x9f, 0x16, 0xe3, 0x6b, 0xd5, 0x72, 0x79, 0x41, - 0x4d, 0x4b, 0x96, 0xd3, 0x56, 0x87, 0xc6, 0x54, 0xc3, 0x72, 0x7d, 0x9c, 0xe6, 0x31, 0xd5, 0xb0, - 0xa4, 0x87, 0xd1, 0x5f, 0xb5, 0x1a, 0x9f, 0x36, 0x9e, 0x5d, 0x44, 0xb3, 0x6e, 0xe7, 0x73, 0x3e, - 0x7f, 0xd5, 0x6a, 0x8b, 0x5c, 0x41, 0x84, 0xb9, 0x8d, 0x5b, 0xe2, 0xca, 0x9e, 0xbf, 0xbc, 0xc0, - 0x89, 0xbe, 0x59, 0x06, 0xa1, 0xf8, 0xc6, 0xf6, 0x4e, 0x3f, 0x50, 0xf1, 0xbd, 0xb1, 0xbd, 0x13, - 0x84, 0xdd, 0xc0, 0x0e, 0x60, 0x1d, 0x52, 0x43, 0x97, 0xd7, 0xf3, 0x07, 0xbd, 0xda, 0x9e, 0x01, - 0xe5, 0x04, 0x06, 0x72, 0x4d, 0x23, 0xa6, 0xbe, 0x89, 0x6b, 0xaf, 0x77, 0xf0, 0x8b, 0x9d, 0x3f, - 0xe2, 0x55, 0xce, 0xd6, 0x6a, 0x65, 0x36, 0x5a, 0x62, 0x83, 0xca, 0x71, 0x98, 0xb0, 0x36, 0xcf, - 0xd5, 0x78, 0x70, 0x69, 0xc8, 0xb3, 0xd5, 0xbc, 0x94, 0xbf, 0x9e, 0xb9, 0x69, 0x9c, 0x0e, 0xb0, - 0xd0, 0xaa, 0x32, 0xb1, 0x72, 0x33, 0x92, 0xdb, 0xdb, 0x7a, 0xa7, 0xcd, 0x8a, 0xb4, 0x8d, 0x4e, - 0x25, 0xf9, 0x1b, 0xb8, 0x2a, 0x97, 0xaf, 0x4a, 0xb1, 0x52, 0x86, 0x23, 0x74, 0xf2, 0xa6, 0x6e, - 0x5a, 0x5a, 0xd7, 0x26, 0x5a, 0xcf, 0x44, 0x77, 0x2d, 0x6e, 0xa4, 0x66, 0xa9, 0x57, 0x4b, 0xb5, - 0x0d, 0x1b, 0x93, 0x99, 0x54, 0x92, 0xcb, 0x73, 0x16, 0xa6, 0xba, 0x66, 0xd3, 0xc4, 0x10, 0xc7, - 0x11, 0x0a, 0xe6, 0x1b, 0x36, 0xff, 0xbb, 0xd1, 0x5d, 0x9a, 0xee, 0x0d, 0xaf, 0x36, 0x0f, 0x12, - 0x75, 0xb2, 0xdb, 0x2f, 0x2c, 0x14, 0x21, 0xe3, 0x8d, 0x1d, 0x25, 0x05, 0x3c, 0x7a, 0xb0, 0xba, - 0x61, 0x45, 0x9d, 0xaf, 0x2c, 0xd0, 0x5a, 0xf8, 0x70, 0x19, 0x0b, 0x1b, 0xd6, 0xe4, 0xe5, 0xa5, - 0xf5, 0xb2, 0xa6, 0x6e, 0xac, 0xae, 0x2f, 0xad, 0x94, 0x73, 0xd1, 0xe3, 0xa9, 0xe4, 0xef, 0x47, - 0x73, 0x8f, 0xe2, 0x7f, 0x23, 0x85, 0x37, 0x46, 0x20, 0xeb, 0xef, 0x83, 0x95, 0xff, 0x80, 0x83, - 0xf2, 0xd0, 0x6a, 0x13, 0x47, 0xbb, 0xd8, 0xec, 0xb0, 0x70, 0x6e, 0xe9, 0xbc, 0x93, 0x74, 0x57, - 0x62, 0x4a, 0x68, 0xe1, 0xf1, 0xfe, 0x41, 0xd4, 0x39, 0xcd, 0x54, 0x94, 0x65, 0x38, 0x82, 0x2e, - 0xc3, 0x5e, 0xd3, 0xac, 0xeb, 0x9d, 0xba, 0xd6, 0xbb, 0x2e, 0xd0, 0xf4, 0x1a, 0xc6, 0x81, 0x6d, - 0xf1, 0x4a, 0xe2, 0xb2, 0x5c, 0x6d, 0x5a, 0x6b, 0x42, 0xb9, 0x97, 0x62, 0x4b, 0x42, 0x35, 0x10, - 0x35, 0xd1, 0xdd, 0xa2, 0x06, 0x7b, 0xaf, 0x96, 0xde, 0xc6, 0xb0, 0x71, 0x3a, 0x3b, 0xac, 0x7b, - 0x4b, 0xaa, 0x49, 0x14, 0x94, 0xe9, 0xf3, 0x07, 0xb7, 0x06, 0x5e, 0x3f, 0xfe, 0x3a, 0x0a, 0x19, - 0x6f, 0x07, 0x47, 0x1b, 0xe2, 0x1a, 0x4b, 0xf3, 0x11, 0x96, 0x05, 0xae, 0xdb, 0xb3, 0xdf, 0x9b, - 0x99, 0xa7, 0xf9, 0xbf, 0x98, 0xe0, 0x7d, 0x95, 0xca, 0x91, 0xb4, 0xf6, 0xd2, 0x58, 0x23, 0xbc, - 0x5b, 0x4f, 0xaa, 0xe2, 0x09, 0x93, 0x5d, 0xe2, 0x9c, 0xcd, 0xb8, 0x13, 0x8c, 0xfb, 0xfa, 0xbd, - 0xb9, 0xcf, 0xac, 0x31, 0xf2, 0xd4, 0x99, 0x35, 0x6d, 0xb5, 0xa2, 0xae, 0x94, 0x96, 0x55, 0x01, - 0x57, 0x0e, 0x41, 0xcc, 0xd0, 0x1f, 0xd9, 0xf1, 0x57, 0x0a, 0x26, 0x1a, 0xd6, 0xf1, 0xc8, 0x40, - 0xaf, 0x3c, 0xfc, 0xf9, 0x99, 0x89, 0x3e, 0xc0, 0xd0, 0x3f, 0x01, 0x71, 0xe6, 0x2f, 0x05, 0x40, - 0x78, 0x2c, 0x77, 0x85, 0x92, 0x84, 0xd8, 0x7c, 0x45, 0xa5, 0xe1, 0x8f, 0xf1, 0xce, 0xa5, 0x5a, - 0x75, 0xa9, 0x3c, 0x8f, 0x3b, 0xa0, 0x70, 0x07, 0x24, 0xb8, 0x13, 0xe8, 0xd6, 0x70, 0xdd, 0x80, - 0x20, 0xfe, 0x28, 0x38, 0x22, 0x72, 0x74, 0x63, 0x65, 0xae, 0xac, 0xe6, 0x46, 0xbc, 0xcb, 0xfb, - 0xfd, 0x08, 0xa4, 0x3d, 0x0d, 0x15, 0x2d, 0xe5, 0xba, 0x61, 0x58, 0x17, 0x35, 0xdd, 0x68, 0x62, - 0x86, 0xe2, 0xeb, 0x03, 0x4c, 0x54, 0xa2, 0x92, 0x61, 0xfd, 0xf7, 0x4f, 0x89, 0xcd, 0xe7, 0x23, - 0x90, 0x0b, 0x36, 0x63, 0x01, 0x03, 0x23, 0x1f, 0xaa, 0x81, 0xcf, 0x46, 0x20, 0xeb, 0xef, 0xc0, - 0x02, 0xe6, 0x1d, 0xfd, 0x50, 0xcd, 0x7b, 0x26, 0x02, 0x63, 0xbe, 0xbe, 0xeb, 0x5f, 0xca, 0xba, - 0xa7, 0xa3, 0x30, 0x39, 0x00, 0x87, 0x09, 0x88, 0x37, 0xa8, 0xbc, 0x67, 0xbe, 0x75, 0x98, 0x77, - 0xcd, 0xd0, 0xfa, 0x57, 0xd5, 0x3b, 0x8e, 0xe8, 0x67, 0xb1, 0x5e, 0x36, 0xeb, 0x98, 0x54, 0x9b, - 0x5b, 0x4d, 0x6c, 0xdf, 0xf8, 0x89, 0x85, 0x77, 0xad, 0xe3, 0x3d, 0x39, 0x3f, 0x1e, 0xff, 0x1b, - 0x28, 0x6d, 0xcb, 0x6e, 0x3a, 0xcd, 0x0b, 0xf4, 0x7a, 0x4e, 0x1e, 0xa4, 0x69, 0x17, 0x1b, 0x53, - 0x73, 0x72, 0x64, 0xc9, 0x74, 0x5c, 0x6d, 0x93, 0x34, 0xf4, 0x80, 0x36, 0x4d, 0x43, 0x51, 0x35, - 0x27, 0x47, 0x5c, 0x6d, 0x6c, 0x34, 0xeb, 0x56, 0x97, 0x36, 0x04, 0x5c, 0x8f, 0x66, 0xbd, 0x88, - 0x9a, 0xe6, 0x32, 0x57, 0x45, 0x74, 0x6c, 0xbd, 0x13, 0x7c, 0x46, 0x4d, 0x73, 0x19, 0x57, 0xb9, - 0x09, 0xc6, 0xf5, 0x46, 0xa3, 0x43, 0xc9, 0x25, 0x11, 0x6f, 0x43, 0xb3, 0xae, 0x98, 0x29, 0x4e, - 0x9f, 0x81, 0xa4, 0xf4, 0x03, 0x2d, 0x2c, 0xd4, 0x13, 0x58, 0xf3, 0xd9, 0x3d, 0xca, 0x08, 0x3d, - 0xd4, 0x9b, 0x72, 0x10, 0x5f, 0xda, 0xb4, 0xb5, 0xde, 0x85, 0xde, 0x08, 0x8e, 0x27, 0xd5, 0x74, - 0xd3, 0x76, 0x6f, 0x70, 0x0a, 0x2f, 0x63, 0x79, 0xf5, 0x5f, 0x48, 0x2a, 0x0b, 0x90, 0x34, 0x2c, - 0x8c, 0x0f, 0x8a, 0xe0, 0xb7, 0xe1, 0xc7, 0x42, 0xee, 0x30, 0x67, 0x96, 0x85, 0xbe, 0xea, 0x22, - 0xa7, 0x7f, 0x16, 0x81, 0xa4, 0x14, 0x63, 0xa1, 0x88, 0xb5, 0x75, 0x67, 0x9b, 0xd1, 0xc5, 0xe7, - 0x46, 0x72, 0x11, 0x95, 0x3d, 0x53, 0x39, 0x76, 0x33, 0x26, 0x0b, 0x01, 0x21, 0xa7, 0xcf, 0x74, - 0x5d, 0x0d, 0xa2, 0xd7, 0x59, 0x83, 0x6b, 0xb5, 0x5a, 0xb8, 0x92, 0xb6, 0x5c, 0x57, 0x21, 0x9f, - 0x17, 0x62, 0x7a, 0x2f, 0xee, 0x74, 0xf4, 0xa6, 0xe1, 0xd3, 0x8d, 0x31, 0xdd, 0x9c, 0x1c, 0x70, - 0x95, 0x8b, 0x70, 0x48, 0xf2, 0xd6, 0x89, 0xa3, 0x63, 0xf3, 0x5c, 0xef, 0x81, 0x12, 0xec, 0xb6, - 0xeb, 0xa0, 0x50, 0x58, 0x10, 0xe3, 0x12, 0x3b, 0x77, 0x16, 0x1b, 0x59, 0xab, 0x15, 0xf4, 0xc4, - 0x5c, 0x2e, 0x70, 0xee, 0xb2, 0xef, 0x8f, 0x3c, 0x0c, 0xbd, 0xa6, 0xe2, 0xa5, 0x91, 0xe8, 0x62, - 0x75, 0xee, 0xd5, 0x91, 0xe9, 0x45, 0x8e, 0xab, 0x4a, 0x0f, 0xaa, 0x64, 0xcb, 0x20, 0x35, 0xea, - 0x1d, 0x78, 0xf1, 0x3a, 0xb8, 0xb5, 0xd1, 0x74, 0xb6, 0xbb, 0x9b, 0x33, 0xf8, 0x86, 0x13, 0x0d, - 0xab, 0x61, 0xf5, 0x7e, 0xce, 0xa0, 0x4f, 0xec, 0x81, 0x7d, 0x13, 0x3f, 0x69, 0xa4, 0x5c, 0xe9, - 0x74, 0xe8, 0xef, 0x1f, 0xc5, 0x55, 0x98, 0x14, 0xca, 0x1a, 0xbb, 0x53, 0xe5, 0x2d, 0xa8, 0xb2, - 0xe7, 0x81, 0x3c, 0xff, 0xfa, 0x5b, 0xac, 0x24, 0xa8, 0x13, 0x02, 0x4a, 0xc7, 0x78, 0x93, 0x5a, - 0x54, 0xe1, 0x4a, 0x1f, 0x1f, 0x8f, 0x61, 0x3c, 0x72, 0xef, 0xcd, 0xf8, 0x86, 0x60, 0x9c, 0xf4, - 0x30, 0xae, 0x09, 0x68, 0x71, 0x1e, 0xc6, 0xf6, 0xc3, 0xf5, 0x23, 0xc1, 0x95, 0x21, 0x5e, 0x92, - 0x45, 0x18, 0x67, 0x24, 0xb5, 0xae, 0xed, 0x58, 0x2d, 0x96, 0x20, 0xf6, 0xa6, 0xf9, 0xf1, 0x5b, - 0x3c, 0xa8, 0xb2, 0x14, 0x36, 0xef, 0xa2, 0x8a, 0x0f, 0xc0, 0x14, 0x95, 0xb0, 0x3d, 0xe8, 0x65, - 0x0b, 0xbf, 0x42, 0xc8, 0xff, 0xe2, 0x31, 0x1e, 0x7b, 0x93, 0x2e, 0x81, 0x87, 0xd7, 0xb3, 0x12, - 0x0d, 0xe2, 0x60, 0x6e, 0xc3, 0xf3, 0x9f, 0x61, 0x28, 0x7b, 0xfe, 0xc6, 0x90, 0x7f, 0xea, 0x6d, - 0xff, 0x4a, 0x2c, 0x72, 0x64, 0xc9, 0x30, 0x8a, 0x1b, 0x70, 0x70, 0xc0, 0xca, 0x0e, 0xc1, 0xf9, - 0xb4, 0xe0, 0x9c, 0xea, 0x5b, 0x5d, 0x4a, 0x5b, 0x05, 0x29, 0x77, 0xd7, 0x63, 0x08, 0xce, 0x67, - 0x04, 0xa7, 0x22, 0xb0, 0x72, 0x59, 0x28, 0xe3, 0x19, 0x98, 0xc0, 0x93, 0xfa, 0xa6, 0x65, 0x8b, - 0x73, 0xef, 0x10, 0x74, 0xcf, 0x0a, 0xba, 0x71, 0x01, 0x64, 0xa7, 0x60, 0xca, 0x75, 0x37, 0x24, - 0xb7, 0xf0, 0x00, 0x34, 0x04, 0xc5, 0x73, 0x82, 0x62, 0x94, 0xea, 0x53, 0x68, 0x09, 0x32, 0x0d, - 0x4b, 0xa4, 0xe1, 0x70, 0xf8, 0xf3, 0x02, 0x9e, 0x96, 0x18, 0x41, 0xd1, 0xb6, 0xda, 0x5d, 0x83, - 0xe6, 0xe8, 0x70, 0x8a, 0x2f, 0x48, 0x0a, 0x89, 0x11, 0x14, 0xfb, 0x70, 0xeb, 0x0b, 0x92, 0xc2, - 0xf6, 0xf8, 0xf3, 0x3e, 0x7a, 0xd7, 0x6b, 0xec, 0x58, 0xe6, 0x30, 0x46, 0xbc, 0x28, 0x18, 0x40, - 0x40, 0x28, 0xc1, 0x3d, 0x90, 0x1a, 0x76, 0x21, 0xbe, 0x28, 0xe0, 0x49, 0x22, 0x57, 0x00, 0xf7, - 0x99, 0x4c, 0x32, 0xf4, 0xb7, 0x95, 0x70, 0x8a, 0x2f, 0x09, 0x8a, 0xac, 0x07, 0x26, 0xa6, 0xe1, - 0x10, 0xdb, 0xc1, 0xa3, 0xfa, 0x10, 0x24, 0x2f, 0xcb, 0x69, 0x08, 0x88, 0x70, 0xe5, 0x26, 0x31, - 0x6b, 0xdb, 0xc3, 0x31, 0xbc, 0x22, 0x5d, 0x29, 0x31, 0x94, 0x02, 0x33, 0x4f, 0x4b, 0xef, 0xe0, - 0xe1, 0xda, 0x18, 0x6a, 0x39, 0xbe, 0x2c, 0x38, 0x32, 0x2e, 0x48, 0x78, 0xa4, 0x6b, 0xee, 0x87, - 0xe6, 0x55, 0xe9, 0x11, 0x0f, 0x4c, 0x6c, 0x3d, 0x3c, 0x99, 0xd2, 0x4e, 0x62, 0x3f, 0x6c, 0x5f, - 0x91, 0x5b, 0x8f, 0x63, 0x57, 0xbc, 0x8c, 0xb8, 0xd2, 0x36, 0x1e, 0xc1, 0x87, 0xa1, 0xf9, 0xaa, - 0x5c, 0x69, 0x06, 0xa0, 0xe0, 0x87, 0xe0, 0xd0, 0xc0, 0x54, 0x3f, 0x04, 0xd9, 0xd7, 0x04, 0xd9, - 0x81, 0x01, 0xe9, 0x5e, 0xa4, 0x84, 0xfd, 0x52, 0x7e, 0x5d, 0xa6, 0x04, 0x12, 0xe0, 0xaa, 0xd2, - 0x36, 0xd6, 0xd6, 0xb7, 0xf6, 0xe7, 0xb5, 0x6f, 0x48, 0xaf, 0x71, 0xac, 0xcf, 0x6b, 0xeb, 0x70, - 0x40, 0x30, 0xee, 0x6f, 0x5d, 0x5f, 0x93, 0x89, 0x95, 0xa3, 0x37, 0xfc, 0xab, 0xfb, 0xdf, 0x30, - 0xed, 0xba, 0x53, 0x76, 0x60, 0xb6, 0x46, 0x2f, 0x06, 0xc2, 0x99, 0x5f, 0x17, 0xcc, 0x32, 0xe3, - 0xbb, 0x2d, 0x9c, 0xbd, 0xa2, 0xb7, 0x29, 0xf9, 0x59, 0xc8, 0x4b, 0xf2, 0xae, 0x89, 0x0d, 0xbe, - 0xd5, 0x30, 0x71, 0x19, 0xeb, 0x43, 0x50, 0x7f, 0x33, 0xb0, 0x54, 0x1b, 0x1e, 0x38, 0x65, 0x5e, - 0x82, 0x9c, 0xdb, 0x6f, 0x68, 0xcd, 0x56, 0xdb, 0xc2, 0xd6, 0x72, 0x6f, 0xc6, 0x6f, 0xc9, 0x95, - 0x72, 0x71, 0x4b, 0x0c, 0x56, 0x2c, 0x43, 0x96, 0x3d, 0x0e, 0x1b, 0x92, 0xdf, 0x16, 0x44, 0x63, - 0x3d, 0x94, 0x48, 0x1c, 0xd8, 0x29, 0x61, 0xcf, 0x3b, 0x4c, 0xfe, 0xfb, 0x8e, 0x4c, 0x1c, 0x02, - 0xc2, 0xa3, 0x6f, 0x3c, 0x50, 0x89, 0x95, 0xb0, 0x9f, 0x5f, 0xf3, 0xff, 0x7b, 0x59, 0xec, 0x59, - 0x7f, 0x21, 0x2e, 0x2e, 0x53, 0xf7, 0xf8, 0xcb, 0x65, 0x38, 0xd9, 0x63, 0x97, 0x5d, 0x0f, 0xf9, - 0xaa, 0x65, 0xf1, 0x34, 0x8c, 0xf9, 0x4a, 0x65, 0x38, 0xd5, 0xff, 0x09, 0xaa, 0x8c, 0xb7, 0x52, - 0x16, 0xef, 0x80, 0x18, 0x2d, 0x7b, 0xe1, 0xf0, 0xff, 0x17, 0x70, 0xa6, 0x5e, 0xfc, 0x4f, 0x48, - 0xca, 0x72, 0x17, 0x0e, 0xfd, 0x88, 0x80, 0xba, 0x10, 0x0a, 0x97, 0xa5, 0x2e, 0x1c, 0xfe, 0x51, - 0x09, 0x97, 0x10, 0x0a, 0x1f, 0xde, 0x85, 0x3f, 0xf8, 0x78, 0x4c, 0xa4, 0x2b, 0xe9, 0x3b, 0xfa, - 0x9b, 0x0f, 0xaf, 0x71, 0xe1, 0xe8, 0xc7, 0xc5, 0xcb, 0x25, 0xa2, 0x78, 0x17, 0xc4, 0x87, 0x74, - 0xf8, 0x27, 0x04, 0x94, 0xeb, 0x63, 0x05, 0x49, 0x7b, 0xea, 0x5a, 0x38, 0xfc, 0x93, 0x02, 0xee, - 0x45, 0x51, 0xd3, 0x45, 0x5d, 0x0b, 0x27, 0xf8, 0x94, 0x34, 0x5d, 0x20, 0xa8, 0xdb, 0x64, 0x49, - 0x0b, 0x47, 0x3f, 0x21, 0xbd, 0x2e, 0x21, 0xb8, 0x9b, 0x52, 0x6e, 0x9a, 0x0a, 0xc7, 0x7f, 0x5a, - 0xe0, 0x7b, 0x18, 0xea, 0x01, 0x4f, 0x9a, 0x0c, 0xa7, 0xf8, 0x8c, 0xf4, 0x80, 0x07, 0x45, 0xb7, - 0x51, 0xb0, 0xf4, 0x85, 0x33, 0x7d, 0x56, 0x6e, 0xa3, 0x40, 0xe5, 0xa3, 0xab, 0xc9, 0xb2, 0x45, - 0x38, 0xc5, 0xe7, 0xe4, 0x6a, 0x32, 0x7d, 0x6a, 0x46, 0xb0, 0x96, 0x84, 0x73, 0x7c, 0x5e, 0x9a, - 0x11, 0x28, 0x25, 0x58, 0x99, 0x94, 0xfe, 0x3a, 0x12, 0xce, 0xf7, 0xa4, 0xe0, 0x9b, 0xe8, 0x2b, - 0x23, 0xc5, 0x07, 0xe1, 0xc0, 0xe0, 0x1a, 0x12, 0xce, 0xfa, 0xd4, 0xe5, 0x40, 0xd7, 0xef, 0x2d, - 0x21, 0x58, 0xf2, 0xa6, 0x06, 0xd5, 0x8f, 0x70, 0xda, 0xa7, 0x2f, 0xfb, 0x0f, 0x76, 0xde, 0xf2, - 0x81, 0x1d, 0x1a, 0xf4, 0x52, 0x77, 0x38, 0xd7, 0xb3, 0x82, 0xcb, 0x03, 0xa2, 0x5b, 0x43, 0x64, - 0xee, 0x70, 0xfc, 0x73, 0x72, 0x6b, 0x08, 0x04, 0x82, 0x93, 0x66, 0xd7, 0x30, 0x68, 0x70, 0x28, - 0x7b, 0xff, 0x49, 0x43, 0xfe, 0x0f, 0xef, 0x89, 0x8d, 0x21, 0x01, 0x98, 0x43, 0xe3, 0xa4, 0xb5, - 0x89, 0x3e, 0x08, 0x41, 0xfe, 0xf1, 0x3d, 0x99, 0x10, 0xa8, 0x36, 0xee, 0x27, 0xe0, 0x87, 0x46, - 0x76, 0x87, 0x1d, 0x82, 0xfd, 0xd3, 0x7b, 0xe2, 0x67, 0xd6, 0x1e, 0xa4, 0x47, 0xc0, 0x7f, 0xb4, - 0xdd, 0x9b, 0xe0, 0x6d, 0x3f, 0x01, 0x3b, 0x68, 0xde, 0x0d, 0xa3, 0xf4, 0x2f, 0x3b, 0x1c, 0xbd, - 0x11, 0x86, 0x7e, 0x47, 0xa0, 0xa5, 0x3e, 0x75, 0x58, 0xcb, 0xea, 0x10, 0xfc, 0x6a, 0x87, 0x61, - 0xff, 0x2c, 0xb0, 0x2e, 0x80, 0x82, 0x6b, 0xba, 0xed, 0x0c, 0x33, 0xef, 0xbf, 0x48, 0xb0, 0x04, - 0x50, 0xa3, 0xe9, 0xf7, 0xf3, 0x64, 0x27, 0x0c, 0xfb, 0xae, 0x34, 0x5a, 0xe8, 0x63, 0x02, 0x4c, - 0xd1, 0xaf, 0xfc, 0x4f, 0x0f, 0x42, 0xc0, 0x7f, 0x15, 0xe0, 0x1e, 0x62, 0xee, 0xe8, 0xe0, 0xab, - 0x1d, 0x58, 0xb4, 0x16, 0x2d, 0x7e, 0xa9, 0x03, 0xef, 0xc4, 0xe0, 0xa0, 0x77, 0x5b, 0x34, 0x3a, - 0x56, 0xb7, 0x2d, 0x6e, 0x63, 0x26, 0xfa, 0x06, 0xa6, 0xf7, 0x77, 0x9f, 0x53, 0x30, 0x01, 0x56, - 0xc9, 0xc5, 0x55, 0x6b, 0x91, 0x82, 0xe9, 0xcf, 0x2a, 0xcc, 0xe2, 0x93, 0xec, 0xd6, 0x3b, 0xaa, - 0x26, 0xd8, 0xdf, 0xe6, 0x9d, 0x74, 0xe5, 0xb7, 0xb3, 0x3f, 0xa9, 0x8b, 0x08, 0xf9, 0xed, 0x4a, - 0x01, 0x22, 0x25, 0x76, 0x37, 0x99, 0x9e, 0x9d, 0x9a, 0xe9, 0x37, 0xb2, 0xa4, 0x46, 0xf4, 0x62, - 0xe6, 0x63, 0x2f, 0x1e, 0x89, 0x3c, 0x81, 0x9f, 0x17, 0xf0, 0x53, 0xb8, 0x19, 0x11, 0x94, 0xae, - 0xc4, 0xf8, 0xe4, 0x6b, 0x74, 0xf6, 0x14, 0x50, 0xfd, 0xe9, 0x08, 0x64, 0x2a, 0x46, 0xfd, 0x41, - 0x9c, 0xcf, 0xde, 0xd6, 0xdd, 0x0b, 0x09, 0xf6, 0xbe, 0x93, 0xec, 0xc7, 0x06, 0x98, 0xbd, 0x71, - 0x80, 0x29, 0x5e, 0xa2, 0x19, 0xf6, 0xff, 0x93, 0xaa, 0x40, 0xed, 0x3a, 0x3b, 0xc9, 0x3b, 0xcb, - 0x6e, 0xf5, 0x86, 0xe5, 0x9d, 0x15, 0xbc, 0xb3, 0xd3, 0x55, 0x48, 0x2c, 0xfa, 0xdf, 0xb0, 0x9b, - 0x5f, 0x67, 0xe5, 0x9f, 0x90, 0x30, 0xf9, 0xec, 0x6e, 0x16, 0x4d, 0x9f, 0x12, 0x8c, 0xb3, 0x43, - 0x31, 0xf6, 0x90, 0xb3, 0x73, 0xc7, 0x7e, 0xf2, 0xe6, 0xe1, 0x2b, 0x7e, 0x8e, 0x9f, 0x5f, 0xe1, - 0xe7, 0x37, 0x6f, 0x1e, 0x8e, 0xbc, 0x8b, 0x9f, 0xbf, 0xe3, 0xe7, 0xd1, 0xdf, 0x1e, 0x8e, 0xbc, - 0x82, 0x9f, 0xd7, 0xf0, 0xf3, 0x3d, 0xfc, 0xfc, 0x23, 0x00, 0x00, 0xff, 0xff, 0x15, 0x3b, 0x3f, - 0xed, 0xda, 0x2c, 0x00, 0x00, + // 3756 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xe7, + 0x75, 0xd6, 0xe2, 0x46, 0xe0, 0x00, 0x04, 0x97, 0x4b, 0x9a, 0x82, 0xe8, 0x98, 0xa2, 0x10, 0x5f, + 0x68, 0xbb, 0xa1, 0x62, 0xca, 0x92, 0xe5, 0x55, 0x63, 0x0f, 0x08, 0x42, 0x0c, 0x54, 0x12, 0x40, + 0x16, 0x64, 0x2c, 0xa7, 0x0f, 0x3b, 0xcb, 0xc5, 0x0f, 0x70, 0xa5, 0xc5, 0x2e, 0xb2, 0xbb, 0x90, + 0x4c, 0x3f, 0xa9, 0xe3, 0xde, 0x32, 0x9d, 0xb6, 0xe9, 0x65, 0xa6, 0x89, 0xeb, 0xb8, 0x71, 0x66, + 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xa6, 0x4f, 0x7d, 0x49, 0x9b, 0xe9, 0x43, 0xa7, 0x79, + 0xeb, 0x43, 0x1f, 0x22, 0xd7, 0x33, 0xbd, 0x39, 0x6d, 0xda, 0x78, 0xa6, 0x9d, 0xd1, 0x4b, 0xe6, + 0xbf, 0x2d, 0x76, 0x01, 0x90, 0xbb, 0xcc, 0x8c, 0x93, 0x17, 0x89, 0xff, 0xf9, 0xcf, 0xf7, 0xed, + 0xf9, 0xcf, 0x7f, 0xfe, 0x73, 0xce, 0xfe, 0x0b, 0xf8, 0x97, 0xcb, 0xb0, 0xda, 0xb3, 0xed, 0x9e, + 0x89, 0x2e, 0x0e, 0x1c, 0xdb, 0xb3, 0x0f, 0x86, 0xdd, 0x8b, 0x1d, 0xe4, 0xea, 0x8e, 0x31, 0xf0, + 0x6c, 0x67, 0x9d, 0xc8, 0xa4, 0x39, 0xaa, 0xb1, 0xce, 0x35, 0xca, 0xbb, 0x30, 0x7f, 0xdd, 0x30, + 0xd1, 0x96, 0xaf, 0xd8, 0x46, 0x9e, 0x74, 0x15, 0x52, 0x5d, 0xc3, 0x44, 0x25, 0x61, 0x35, 0xb9, + 0x96, 0xdf, 0x78, 0x74, 0x7d, 0x0c, 0xb4, 0x1e, 0x46, 0xb4, 0xb0, 0x58, 0x21, 0x88, 0xf2, 0xbb, + 0x29, 0x58, 0x98, 0x32, 0x2b, 0x49, 0x90, 0xb2, 0xb4, 0x3e, 0x66, 0x14, 0xd6, 0x72, 0x0a, 0xf9, + 0x5b, 0x2a, 0xc1, 0xcc, 0x40, 0xd3, 0x6f, 0x6b, 0x3d, 0x54, 0x4a, 0x10, 0x31, 0x1f, 0x4a, 0x2b, + 0x00, 0x1d, 0x34, 0x40, 0x56, 0x07, 0x59, 0xfa, 0x51, 0x29, 0xb9, 0x9a, 0x5c, 0xcb, 0x29, 0x01, + 0x89, 0xf4, 0x34, 0xcc, 0x0f, 0x86, 0x07, 0xa6, 0xa1, 0xab, 0x01, 0x35, 0x58, 0x4d, 0xae, 0xa5, + 0x15, 0x91, 0x4e, 0x6c, 0x8d, 0x94, 0x9f, 0x80, 0xb9, 0xbb, 0x48, 0xbb, 0x1d, 0x54, 0xcd, 0x13, + 0xd5, 0x22, 0x16, 0x07, 0x14, 0xab, 0x50, 0xe8, 0x23, 0xd7, 0xd5, 0x7a, 0x48, 0xf5, 0x8e, 0x06, + 0xa8, 0x94, 0x22, 0xab, 0x5f, 0x9d, 0x58, 0xfd, 0xf8, 0xca, 0xf3, 0x0c, 0xb5, 0x77, 0x34, 0x40, + 0x52, 0x05, 0x72, 0xc8, 0x1a, 0xf6, 0x29, 0x43, 0xfa, 0x18, 0xff, 0xd5, 0xac, 0x61, 0x7f, 0x9c, + 0x25, 0x8b, 0x61, 0x8c, 0x62, 0xc6, 0x45, 0xce, 0x1d, 0x43, 0x47, 0xa5, 0x0c, 0x21, 0x78, 0x62, + 0x82, 0xa0, 0x4d, 0xe7, 0xc7, 0x39, 0x38, 0x4e, 0xaa, 0x42, 0x0e, 0xbd, 0xe2, 0x21, 0xcb, 0x35, + 0x6c, 0xab, 0x34, 0x43, 0x48, 0x1e, 0x9b, 0xb2, 0x8b, 0xc8, 0xec, 0x8c, 0x53, 0x8c, 0x70, 0xd2, + 0x15, 0x98, 0xb1, 0x07, 0x9e, 0x61, 0x5b, 0x6e, 0x29, 0xbb, 0x2a, 0xac, 0xe5, 0x37, 0x3e, 0x34, + 0x35, 0x10, 0x9a, 0x54, 0x47, 0xe1, 0xca, 0x52, 0x1d, 0x44, 0xd7, 0x1e, 0x3a, 0x3a, 0x52, 0x75, + 0xbb, 0x83, 0x54, 0xc3, 0xea, 0xda, 0xa5, 0x1c, 0x21, 0x38, 0x3f, 0xb9, 0x10, 0xa2, 0x58, 0xb5, + 0x3b, 0xa8, 0x6e, 0x75, 0x6d, 0xa5, 0xe8, 0x86, 0xc6, 0xd2, 0x12, 0x64, 0xdc, 0x23, 0xcb, 0xd3, + 0x5e, 0x29, 0x15, 0x48, 0x84, 0xb0, 0x51, 0xf9, 0xff, 0xd2, 0x30, 0x17, 0x27, 0xc4, 0xae, 0x41, + 0xba, 0x8b, 0x57, 0x59, 0x4a, 0x9c, 0xc6, 0x07, 0x14, 0x13, 0x76, 0x62, 0xe6, 0x47, 0x74, 0x62, + 0x05, 0xf2, 0x16, 0x72, 0x3d, 0xd4, 0xa1, 0x11, 0x91, 0x8c, 0x19, 0x53, 0x40, 0x41, 0x93, 0x21, + 0x95, 0xfa, 0x91, 0x42, 0xea, 0x26, 0xcc, 0xf9, 0x26, 0xa9, 0x8e, 0x66, 0xf5, 0x78, 0x6c, 0x5e, + 0x8c, 0xb2, 0x64, 0xbd, 0xc6, 0x71, 0x0a, 0x86, 0x29, 0x45, 0x14, 0x1a, 0x4b, 0x5b, 0x00, 0xb6, + 0x85, 0xec, 0xae, 0xda, 0x41, 0xba, 0x59, 0xca, 0x1e, 0xe3, 0xa5, 0x26, 0x56, 0x99, 0xf0, 0x92, + 0x4d, 0xa5, 0xba, 0x29, 0x3d, 0x3f, 0x0a, 0xb5, 0x99, 0x63, 0x22, 0x65, 0x97, 0x1e, 0xb2, 0x89, + 0x68, 0xdb, 0x87, 0xa2, 0x83, 0x70, 0xdc, 0xa3, 0x0e, 0x5b, 0x59, 0x8e, 0x18, 0xb1, 0x1e, 0xb9, + 0x32, 0x85, 0xc1, 0xe8, 0xc2, 0x66, 0x9d, 0xe0, 0x50, 0xfa, 0x30, 0xf8, 0x02, 0x95, 0x84, 0x15, + 0x90, 0x2c, 0x54, 0xe0, 0xc2, 0x86, 0xd6, 0x47, 0xcb, 0x57, 0xa1, 0x18, 0x76, 0x8f, 0xb4, 0x08, + 0x69, 0xd7, 0xd3, 0x1c, 0x8f, 0x44, 0x61, 0x5a, 0xa1, 0x03, 0x49, 0x84, 0x24, 0xb2, 0x3a, 0x24, + 0xcb, 0xa5, 0x15, 0xfc, 0xe7, 0xf2, 0x73, 0x30, 0x1b, 0x7a, 0x7c, 0x5c, 0x60, 0xf9, 0x73, 0x19, + 0x58, 0x9c, 0x16, 0x73, 0x53, 0xc3, 0x7f, 0x09, 0x32, 0xd6, 0xb0, 0x7f, 0x80, 0x9c, 0x52, 0x92, + 0x30, 0xb0, 0x91, 0x54, 0x81, 0xb4, 0xa9, 0x1d, 0x20, 0xb3, 0x94, 0x5a, 0x15, 0xd6, 0x8a, 0x1b, + 0x4f, 0xc7, 0x8a, 0xea, 0xf5, 0x1d, 0x0c, 0x51, 0x28, 0x52, 0x7a, 0x01, 0x52, 0x2c, 0xc5, 0x61, + 0x86, 0xa7, 0xe2, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x18, 0x72, 0xf8, 0x7f, 0xea, 0xdb, + 0x0c, 0xb1, 0x39, 0x8b, 0x05, 0xd8, 0xaf, 0xd2, 0x32, 0x64, 0x49, 0x98, 0x75, 0x10, 0x2f, 0x0d, + 0xfe, 0x18, 0x6f, 0x4c, 0x07, 0x75, 0xb5, 0xa1, 0xe9, 0xa9, 0x77, 0x34, 0x73, 0x88, 0x48, 0xc0, + 0xe4, 0x94, 0x02, 0x13, 0x7e, 0x12, 0xcb, 0xa4, 0xf3, 0x90, 0xa7, 0x51, 0x69, 0x58, 0x1d, 0xf4, + 0x0a, 0xc9, 0x3e, 0x69, 0x85, 0x06, 0x6a, 0x1d, 0x4b, 0xf0, 0xe3, 0x6f, 0xb9, 0xb6, 0xc5, 0xb7, + 0x96, 0x3c, 0x02, 0x0b, 0xc8, 0xe3, 0x9f, 0x1b, 0x4f, 0x7c, 0x8f, 0x4c, 0x5f, 0xde, 0x78, 0x2c, + 0x96, 0xbf, 0x91, 0x80, 0x14, 0x39, 0x6f, 0x73, 0x90, 0xdf, 0x7b, 0xb9, 0x55, 0x53, 0xb7, 0x9a, + 0xfb, 0x9b, 0x3b, 0x35, 0x51, 0x90, 0x8a, 0x00, 0x44, 0x70, 0x7d, 0xa7, 0x59, 0xd9, 0x13, 0x13, + 0xfe, 0xb8, 0xde, 0xd8, 0xbb, 0xf2, 0xac, 0x98, 0xf4, 0x01, 0xfb, 0x54, 0x90, 0x0a, 0x2a, 0x5c, + 0xda, 0x10, 0xd3, 0x92, 0x08, 0x05, 0x4a, 0x50, 0xbf, 0x59, 0xdb, 0xba, 0xf2, 0xac, 0x98, 0x09, + 0x4b, 0x2e, 0x6d, 0x88, 0x33, 0xd2, 0x2c, 0xe4, 0x88, 0x64, 0xb3, 0xd9, 0xdc, 0x11, 0xb3, 0x3e, + 0x67, 0x7b, 0x4f, 0xa9, 0x37, 0xb6, 0xc5, 0x9c, 0xcf, 0xb9, 0xad, 0x34, 0xf7, 0x5b, 0x22, 0xf8, + 0x0c, 0xbb, 0xb5, 0x76, 0xbb, 0xb2, 0x5d, 0x13, 0xf3, 0xbe, 0xc6, 0xe6, 0xcb, 0x7b, 0xb5, 0xb6, + 0x58, 0x08, 0x99, 0x75, 0x69, 0x43, 0x9c, 0xf5, 0x1f, 0x51, 0x6b, 0xec, 0xef, 0x8a, 0x45, 0x69, + 0x1e, 0x66, 0xe9, 0x23, 0xb8, 0x11, 0x73, 0x63, 0xa2, 0x2b, 0xcf, 0x8a, 0xe2, 0xc8, 0x10, 0xca, + 0x32, 0x1f, 0x12, 0x5c, 0x79, 0x56, 0x94, 0xca, 0x55, 0x48, 0x93, 0xe8, 0x92, 0x24, 0x28, 0xee, + 0x54, 0x36, 0x6b, 0x3b, 0x6a, 0xb3, 0xb5, 0x57, 0x6f, 0x36, 0x2a, 0x3b, 0xa2, 0x30, 0x92, 0x29, + 0xb5, 0x4f, 0xec, 0xd7, 0x95, 0xda, 0x96, 0x98, 0x08, 0xca, 0x5a, 0xb5, 0xca, 0x5e, 0x6d, 0x4b, + 0x4c, 0x96, 0x75, 0x58, 0x9c, 0x96, 0x67, 0xa6, 0x9e, 0x8c, 0xc0, 0x16, 0x27, 0x8e, 0xd9, 0x62, + 0xc2, 0x35, 0xb1, 0xc5, 0x5f, 0x12, 0x60, 0x61, 0x4a, 0xae, 0x9d, 0xfa, 0x90, 0x17, 0x21, 0x4d, + 0x43, 0x94, 0x56, 0x9f, 0x27, 0xa7, 0x26, 0x6d, 0x12, 0xb0, 0x13, 0x15, 0x88, 0xe0, 0x82, 0x15, + 0x38, 0x79, 0x4c, 0x05, 0xc6, 0x14, 0x13, 0x46, 0xbe, 0x26, 0x40, 0xe9, 0x38, 0xee, 0x88, 0x44, + 0x91, 0x08, 0x25, 0x8a, 0x6b, 0xe3, 0x06, 0x5c, 0x38, 0x7e, 0x0d, 0x13, 0x56, 0xbc, 0x2d, 0xc0, + 0xd2, 0xf4, 0x46, 0x65, 0xaa, 0x0d, 0x2f, 0x40, 0xa6, 0x8f, 0xbc, 0x43, 0x9b, 0x17, 0xeb, 0xc7, + 0xa7, 0x94, 0x00, 0x3c, 0x3d, 0xee, 0x2b, 0x86, 0x0a, 0xd6, 0x90, 0xe4, 0x71, 0xdd, 0x06, 0xb5, + 0x66, 0xc2, 0xd2, 0xcf, 0x24, 0xe0, 0xa1, 0xa9, 0xe4, 0x53, 0x0d, 0x7d, 0x04, 0xc0, 0xb0, 0x06, + 0x43, 0x8f, 0x16, 0x64, 0x9a, 0x9f, 0x72, 0x44, 0x42, 0xce, 0x3e, 0xce, 0x3d, 0x43, 0xcf, 0x9f, + 0x4f, 0x92, 0x79, 0xa0, 0x22, 0xa2, 0x70, 0x75, 0x64, 0x68, 0x8a, 0x18, 0xba, 0x72, 0xcc, 0x4a, + 0x27, 0x6a, 0xdd, 0x47, 0x41, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xfa, 0x86, + 0xd5, 0x23, 0x09, 0x38, 0x2b, 0xa7, 0xbb, 0x9a, 0xe9, 0x22, 0x65, 0x8e, 0x4e, 0xb7, 0xf9, 0x2c, + 0x46, 0x90, 0x2a, 0xe3, 0x04, 0x10, 0x99, 0x10, 0x82, 0x4e, 0xfb, 0x88, 0xf2, 0x57, 0x67, 0x20, + 0x1f, 0x68, 0xeb, 0xa4, 0x0b, 0x50, 0xb8, 0xa5, 0xdd, 0xd1, 0x54, 0xde, 0xaa, 0x53, 0x4f, 0xe4, + 0xb1, 0xac, 0xc5, 0xda, 0xf5, 0x8f, 0xc2, 0x22, 0x51, 0xb1, 0x87, 0x1e, 0x72, 0x54, 0xdd, 0xd4, + 0x5c, 0x97, 0x38, 0x2d, 0x4b, 0x54, 0x25, 0x3c, 0xd7, 0xc4, 0x53, 0x55, 0x3e, 0x23, 0x5d, 0x86, + 0x05, 0x82, 0xe8, 0x0f, 0x4d, 0xcf, 0x18, 0x98, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x49, 0xc4, 0xbe, + 0x65, 0xf3, 0x58, 0x63, 0x97, 0x29, 0x60, 0x8b, 0x5c, 0x69, 0x0b, 0x1e, 0x21, 0xb0, 0x1e, 0xb2, + 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0x1e, 0x6a, 0xa6, 0xab, 0x6a, 0x56, 0x47, 0x3d, 0xd4, 0xdc, + 0xc3, 0xd2, 0x22, 0x26, 0xd8, 0x4c, 0x94, 0x04, 0xe5, 0x1c, 0x56, 0xdc, 0x66, 0x7a, 0x35, 0xa2, + 0x56, 0xb1, 0x3a, 0x1f, 0xd7, 0xdc, 0x43, 0x49, 0x86, 0x25, 0xc2, 0xe2, 0x7a, 0x8e, 0x61, 0xf5, + 0x54, 0xfd, 0x10, 0xe9, 0xb7, 0xd5, 0xa1, 0xd7, 0xbd, 0x5a, 0x7a, 0x38, 0xf8, 0x7c, 0x62, 0x61, + 0x9b, 0xe8, 0x54, 0xb1, 0xca, 0xbe, 0xd7, 0xbd, 0x2a, 0xb5, 0xa1, 0x80, 0x37, 0xa3, 0x6f, 0xbc, + 0x8a, 0xd4, 0xae, 0xed, 0x90, 0xca, 0x52, 0x9c, 0x72, 0xb2, 0x03, 0x1e, 0x5c, 0x6f, 0x32, 0xc0, + 0xae, 0xdd, 0x41, 0x72, 0xba, 0xdd, 0xaa, 0xd5, 0xb6, 0x94, 0x3c, 0x67, 0xb9, 0x6e, 0x3b, 0x38, + 0xa0, 0x7a, 0xb6, 0xef, 0xe0, 0x3c, 0x0d, 0xa8, 0x9e, 0xcd, 0xdd, 0x7b, 0x19, 0x16, 0x74, 0x9d, + 0xae, 0xd9, 0xd0, 0x55, 0xd6, 0xe2, 0xbb, 0x25, 0x31, 0xe4, 0x2c, 0x5d, 0xdf, 0xa6, 0x0a, 0x2c, + 0xc6, 0x5d, 0xe9, 0x79, 0x78, 0x68, 0xe4, 0xac, 0x20, 0x70, 0x7e, 0x62, 0x95, 0xe3, 0xd0, 0xcb, + 0xb0, 0x30, 0x38, 0x9a, 0x04, 0x4a, 0xa1, 0x27, 0x0e, 0x8e, 0xc6, 0x61, 0x8f, 0x91, 0xd7, 0x36, + 0x07, 0xe9, 0x9a, 0x87, 0x3a, 0xa5, 0xb3, 0x41, 0xed, 0xc0, 0x84, 0x74, 0x11, 0x44, 0x5d, 0x57, + 0x91, 0xa5, 0x1d, 0x98, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0x6e, 0xe9, 0x7c, 0x50, 0xb9, 0xa8, 0xeb, + 0x35, 0x32, 0x5b, 0x21, 0x93, 0xd2, 0x53, 0x30, 0x6f, 0x1f, 0xdc, 0xd2, 0x69, 0x64, 0xa9, 0x03, + 0x07, 0x75, 0x8d, 0x57, 0x4a, 0x8f, 0x12, 0x37, 0xcd, 0xe1, 0x09, 0x12, 0x57, 0x2d, 0x22, 0x96, + 0x9e, 0x04, 0x51, 0x77, 0x0f, 0x35, 0x67, 0x40, 0x4a, 0xbb, 0x3b, 0xd0, 0x74, 0x54, 0x7a, 0x8c, + 0xaa, 0x52, 0x79, 0x83, 0x8b, 0x71, 0x64, 0xbb, 0x77, 0x8d, 0xae, 0xc7, 0x19, 0x9f, 0xa0, 0x91, + 0x4d, 0x64, 0x8c, 0xed, 0x26, 0x2c, 0x0e, 0x2d, 0xc3, 0xf2, 0x90, 0x33, 0x70, 0x10, 0x6e, 0xe2, + 0xe9, 0x49, 0x2c, 0xfd, 0xeb, 0xcc, 0x31, 0x6d, 0xf8, 0x7e, 0x50, 0x9b, 0x06, 0x80, 0xb2, 0x30, + 0x9c, 0x14, 0x96, 0x65, 0x28, 0x04, 0xe3, 0x42, 0xca, 0x01, 0x8d, 0x0c, 0x51, 0xc0, 0x35, 0xb6, + 0xda, 0xdc, 0xc2, 0xd5, 0xf1, 0x53, 0x35, 0x31, 0x81, 0xab, 0xf4, 0x4e, 0x7d, 0xaf, 0xa6, 0x2a, + 0xfb, 0x8d, 0xbd, 0xfa, 0x6e, 0x4d, 0x4c, 0x3e, 0x95, 0xcb, 0xfe, 0xdb, 0x8c, 0x78, 0xef, 0xde, + 0xbd, 0x7b, 0x89, 0xf2, 0xb7, 0x12, 0x50, 0x0c, 0x77, 0xc6, 0xd2, 0x4f, 0xc3, 0x59, 0xfe, 0x1a, + 0xeb, 0x22, 0x4f, 0xbd, 0x6b, 0x38, 0x24, 0x54, 0xfb, 0x1a, 0xed, 0x2d, 0x7d, 0x2f, 0x2f, 0x32, + 0xad, 0x36, 0xf2, 0x5e, 0x32, 0x1c, 0x1c, 0x88, 0x7d, 0xcd, 0x93, 0x76, 0xe0, 0xbc, 0x65, 0xab, + 0xae, 0xa7, 0x59, 0x1d, 0xcd, 0xe9, 0xa8, 0xa3, 0x0b, 0x04, 0x55, 0xd3, 0x75, 0xe4, 0xba, 0x36, + 0x2d, 0x11, 0x3e, 0xcb, 0x87, 0x2c, 0xbb, 0xcd, 0x94, 0x47, 0xb9, 0xb3, 0xc2, 0x54, 0xc7, 0x22, + 0x22, 0x79, 0x5c, 0x44, 0x3c, 0x0c, 0xb9, 0xbe, 0x36, 0x50, 0x91, 0xe5, 0x39, 0x47, 0xa4, 0x9f, + 0xcb, 0x2a, 0xd9, 0xbe, 0x36, 0xa8, 0xe1, 0xf1, 0x07, 0xb7, 0x07, 0x41, 0x3f, 0xfe, 0x73, 0x12, + 0x0a, 0xc1, 0x9e, 0x0e, 0xb7, 0xc8, 0x3a, 0xc9, 0xdf, 0x02, 0x39, 0xe1, 0x1f, 0x3e, 0xb1, 0x03, + 0x5c, 0xaf, 0xe2, 0xc4, 0x2e, 0x67, 0x68, 0xa7, 0xa5, 0x50, 0x24, 0x2e, 0xaa, 0xf8, 0x4c, 0x23, + 0xda, 0xbf, 0x67, 0x15, 0x36, 0x92, 0xb6, 0x21, 0x73, 0xcb, 0x25, 0xdc, 0x19, 0xc2, 0xfd, 0xe8, + 0xc9, 0xdc, 0x37, 0xda, 0x84, 0x3c, 0x77, 0xa3, 0xad, 0x36, 0x9a, 0xca, 0x6e, 0x65, 0x47, 0x61, + 0x70, 0xe9, 0x1c, 0xa4, 0x4c, 0xed, 0xd5, 0xa3, 0x70, 0x09, 0x20, 0xa2, 0xb8, 0x8e, 0x3f, 0x07, + 0xa9, 0xbb, 0x48, 0xbb, 0x1d, 0x4e, 0xbc, 0x44, 0xf4, 0x01, 0x86, 0xfe, 0x45, 0x48, 0x13, 0x7f, + 0x49, 0x00, 0xcc, 0x63, 0xe2, 0x19, 0x29, 0x0b, 0xa9, 0x6a, 0x53, 0xc1, 0xe1, 0x2f, 0x42, 0x81, + 0x4a, 0xd5, 0x56, 0xbd, 0x56, 0xad, 0x89, 0x89, 0xf2, 0x65, 0xc8, 0x50, 0x27, 0xe0, 0xa3, 0xe1, + 0xbb, 0x41, 0x3c, 0xc3, 0x86, 0x8c, 0x43, 0xe0, 0xb3, 0xfb, 0xbb, 0x9b, 0x35, 0x45, 0x4c, 0x04, + 0xb7, 0xd7, 0x85, 0x42, 0xb0, 0x9d, 0xfb, 0xf1, 0xc4, 0xd4, 0x5f, 0x0b, 0x90, 0x0f, 0xb4, 0x67, + 0xb8, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x28, 0x80, 0x88, 0x2a, + 0x58, 0x12, 0x77, 0xd3, 0x7e, 0x2c, 0xc6, 0xbf, 0x29, 0x80, 0x38, 0xde, 0xda, 0x8d, 0x19, 0x28, + 0xfc, 0x44, 0x0d, 0x7c, 0x43, 0x80, 0x62, 0xb8, 0x9f, 0x1b, 0x33, 0xef, 0xc2, 0x4f, 0xd4, 0xbc, + 0xef, 0x26, 0x60, 0x36, 0xd4, 0xc5, 0xc5, 0xb5, 0xee, 0xd3, 0x30, 0x6f, 0x74, 0x50, 0x7f, 0x60, + 0x7b, 0xc8, 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x41, 0x66, 0xa9, 0x4c, 0x12, 0xc5, 0xc5, 0x93, 0xfb, + 0xc4, 0xf5, 0xfa, 0x08, 0xb7, 0x83, 0x61, 0xf2, 0x42, 0x7d, 0xab, 0xb6, 0xdb, 0x6a, 0xee, 0xd5, + 0x1a, 0xd5, 0x97, 0xd5, 0xfd, 0xc6, 0xcf, 0x34, 0x9a, 0x2f, 0x35, 0x14, 0xd1, 0x18, 0x53, 0xfb, + 0x00, 0x8f, 0x7a, 0x0b, 0xc4, 0x71, 0xa3, 0xa4, 0xb3, 0x30, 0xcd, 0x2c, 0xf1, 0x8c, 0xb4, 0x00, + 0x73, 0x8d, 0xa6, 0xda, 0xae, 0x6f, 0xd5, 0xd4, 0xda, 0xf5, 0xeb, 0xb5, 0xea, 0x5e, 0x9b, 0xbe, + 0x38, 0xfb, 0xda, 0x7b, 0xe1, 0x43, 0xfd, 0x7a, 0x12, 0x16, 0xa6, 0x58, 0x22, 0x55, 0x58, 0xcf, + 0x4e, 0x5f, 0x23, 0x3e, 0x12, 0xc7, 0xfa, 0x75, 0xdc, 0x15, 0xb4, 0x34, 0xc7, 0x63, 0x2d, 0xfe, + 0x93, 0x80, 0xbd, 0x64, 0x79, 0x46, 0xd7, 0x40, 0x0e, 0xbb, 0x67, 0xa0, 0x8d, 0xfc, 0xdc, 0x48, + 0x4e, 0xaf, 0x1a, 0x7e, 0x0a, 0xa4, 0x81, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, 0x2f, + 0x25, 0x70, 0x63, 0x9f, 0x52, 0x44, 0x3e, 0x53, 0xb7, 0x3c, 0x5f, 0xdb, 0x42, 0x3d, 0x6d, 0x4c, + 0x1b, 0x27, 0xf0, 0xa4, 0x22, 0xf2, 0x19, 0x5f, 0xfb, 0x02, 0x14, 0x3a, 0xf6, 0x10, 0xb7, 0x49, + 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xc9, 0x53, 0x99, 0xaf, 0xc2, 0xfa, 0xd8, 0xd1, 0x6d, 0x48, 0x41, + 0xc9, 0x53, 0x19, 0x55, 0x79, 0x02, 0xe6, 0xb4, 0x5e, 0xcf, 0xc1, 0xe4, 0x9c, 0x88, 0x76, 0xe6, + 0x45, 0x5f, 0x4c, 0x14, 0x97, 0x6f, 0x40, 0x96, 0xfb, 0x01, 0x97, 0x64, 0xec, 0x09, 0x75, 0x40, + 0xef, 0xa4, 0x12, 0x6b, 0x39, 0x25, 0x6b, 0xf1, 0xc9, 0x0b, 0x50, 0x30, 0x5c, 0x75, 0x74, 0x39, + 0x9a, 0x58, 0x4d, 0xac, 0x65, 0x95, 0xbc, 0xe1, 0xfa, 0xb7, 0x61, 0xe5, 0xb7, 0x13, 0x50, 0x0c, + 0x5f, 0xee, 0x4a, 0x5b, 0x90, 0x35, 0x6d, 0x5d, 0x23, 0xa1, 0x45, 0xbf, 0x2c, 0xac, 0x45, 0xdc, + 0x07, 0xaf, 0xef, 0x30, 0x7d, 0xc5, 0x47, 0x2e, 0xff, 0x83, 0x00, 0x59, 0x2e, 0x96, 0x96, 0x20, + 0x35, 0xd0, 0xbc, 0x43, 0x42, 0x97, 0xde, 0x4c, 0x88, 0x82, 0x42, 0xc6, 0x58, 0xee, 0x0e, 0x34, + 0x8b, 0x84, 0x00, 0x93, 0xe3, 0x31, 0xde, 0x57, 0x13, 0x69, 0x1d, 0xd2, 0xf6, 0xdb, 0xfd, 0x3e, + 0xb2, 0x3c, 0x97, 0xef, 0x2b, 0x93, 0x57, 0x99, 0x58, 0x7a, 0x1a, 0xe6, 0x3d, 0x47, 0x33, 0xcc, + 0x90, 0x6e, 0x8a, 0xe8, 0x8a, 0x7c, 0xc2, 0x57, 0x96, 0xe1, 0x1c, 0xe7, 0xed, 0x20, 0x4f, 0xd3, + 0x0f, 0x51, 0x67, 0x04, 0xca, 0x90, 0x9b, 0xc3, 0xb3, 0x4c, 0x61, 0x8b, 0xcd, 0x73, 0x6c, 0xf9, + 0x3b, 0x02, 0xcc, 0xf3, 0x17, 0x95, 0x8e, 0xef, 0xac, 0x5d, 0x00, 0xcd, 0xb2, 0x6c, 0x2f, 0xe8, + 0xae, 0xc9, 0x50, 0x9e, 0xc0, 0xad, 0x57, 0x7c, 0x90, 0x12, 0x20, 0x58, 0xee, 0x03, 0x8c, 0x66, + 0x8e, 0x75, 0xdb, 0x79, 0xc8, 0xb3, 0x9b, 0x7b, 0xf2, 0xf9, 0x87, 0xbe, 0xda, 0x02, 0x15, 0xe1, + 0x37, 0x1a, 0x69, 0x11, 0xd2, 0x07, 0xa8, 0x67, 0x58, 0xec, 0x3e, 0x91, 0x0e, 0xf8, 0x2d, 0x65, + 0xca, 0xbf, 0xa5, 0xdc, 0xbc, 0x09, 0x0b, 0xba, 0xdd, 0x1f, 0x37, 0x77, 0x53, 0x1c, 0x7b, 0xbd, + 0x76, 0x3f, 0x2e, 0x7c, 0x0a, 0x46, 0x2d, 0xe6, 0x97, 0x12, 0xc9, 0xed, 0xd6, 0xe6, 0x57, 0x12, + 0xcb, 0xdb, 0x14, 0xd7, 0xe2, 0xcb, 0x54, 0x50, 0xd7, 0x44, 0x3a, 0x36, 0x1d, 0x7e, 0xf0, 0x38, + 0x7c, 0xa4, 0x67, 0x78, 0x87, 0xc3, 0x83, 0x75, 0xdd, 0xee, 0x5f, 0xec, 0xd9, 0x3d, 0x7b, 0xf4, + 0xb9, 0x0b, 0x8f, 0xc8, 0x80, 0xfc, 0xc5, 0x3e, 0x79, 0xe5, 0x7c, 0xe9, 0x72, 0xe4, 0xf7, 0x31, + 0xb9, 0x01, 0x0b, 0x4c, 0x59, 0x25, 0x77, 0xee, 0xf4, 0xd5, 0x40, 0x3a, 0xf1, 0xde, 0xa5, 0xf4, + 0xf5, 0x77, 0x49, 0xad, 0x56, 0xe6, 0x19, 0x14, 0xcf, 0xd1, 0x17, 0x08, 0x59, 0x81, 0x87, 0x42, + 0x7c, 0xf4, 0x5c, 0x22, 0x27, 0x82, 0xf1, 0x5b, 0x8c, 0x71, 0x21, 0xc0, 0xd8, 0x66, 0x50, 0xb9, + 0x0a, 0xb3, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x55, 0x40, 0x41, 0x92, 0x6d, 0x98, 0x23, 0x24, 0xfa, + 0xd0, 0xf5, 0xec, 0x3e, 0x49, 0x7a, 0x27, 0xd3, 0xfc, 0xdd, 0xbb, 0xf4, 0xa0, 0x14, 0x31, 0xac, + 0xea, 0xa3, 0x64, 0x19, 0xc8, 0x67, 0x86, 0x0e, 0xd2, 0xcd, 0x08, 0x86, 0x6f, 0x33, 0x43, 0x7c, + 0x7d, 0xf9, 0x93, 0xb0, 0x88, 0xff, 0x26, 0x39, 0x29, 0x68, 0x49, 0xf4, 0x2d, 0x53, 0xe9, 0x3b, + 0xaf, 0xd1, 0xb3, 0xb8, 0xe0, 0x13, 0x04, 0x6c, 0x0a, 0xec, 0x62, 0x0f, 0x79, 0x1e, 0x72, 0x5c, + 0x55, 0x33, 0xa7, 0x99, 0x17, 0x78, 0x4d, 0x2f, 0x7d, 0xfe, 0xbd, 0xf0, 0x2e, 0x6e, 0x53, 0x64, + 0xc5, 0x34, 0xe5, 0x7d, 0x38, 0x3b, 0x25, 0x2a, 0x62, 0x70, 0xbe, 0xce, 0x38, 0x17, 0x27, 0x22, + 0x03, 0xd3, 0xb6, 0x80, 0xcb, 0xfd, 0xbd, 0x8c, 0xc1, 0xf9, 0xbb, 0x8c, 0x53, 0x62, 0x58, 0xbe, + 0xa5, 0x98, 0xf1, 0x06, 0xcc, 0xdf, 0x41, 0xce, 0x81, 0xed, 0xb2, 0xab, 0x91, 0x18, 0x74, 0x6f, + 0x30, 0xba, 0x39, 0x06, 0x24, 0x77, 0x25, 0x98, 0xeb, 0x79, 0xc8, 0x76, 0x35, 0x1d, 0xc5, 0xa0, + 0xf8, 0x02, 0xa3, 0x98, 0xc1, 0xfa, 0x18, 0x5a, 0x81, 0x42, 0xcf, 0x66, 0x65, 0x29, 0x1a, 0xfe, + 0x26, 0x83, 0xe7, 0x39, 0x86, 0x51, 0x0c, 0xec, 0xc1, 0xd0, 0xc4, 0x35, 0x2b, 0x9a, 0xe2, 0xf7, + 0x38, 0x05, 0xc7, 0x30, 0x8a, 0x53, 0xb8, 0xf5, 0x8b, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x45, 0xc8, + 0xdb, 0x96, 0x79, 0x64, 0x5b, 0x71, 0x8c, 0x78, 0x8b, 0x31, 0x00, 0x83, 0x60, 0x82, 0x6b, 0x90, + 0x8b, 0xbb, 0x11, 0xbf, 0xff, 0x1e, 0x3f, 0x1e, 0x7c, 0x07, 0xb6, 0x61, 0x8e, 0x27, 0x28, 0xc3, + 0xb6, 0x62, 0x50, 0xfc, 0x01, 0xa3, 0x28, 0x06, 0x60, 0x6c, 0x19, 0x1e, 0x72, 0xbd, 0x1e, 0x8a, + 0x43, 0xf2, 0x36, 0x5f, 0x06, 0x83, 0x30, 0x57, 0x1e, 0x20, 0x4b, 0x3f, 0x8c, 0xc7, 0xf0, 0x65, + 0xee, 0x4a, 0x8e, 0xc1, 0x14, 0x55, 0x98, 0xed, 0x6b, 0x8e, 0x7b, 0xa8, 0x99, 0xb1, 0xb6, 0xe3, + 0x0f, 0x19, 0x47, 0xc1, 0x07, 0x31, 0x8f, 0x0c, 0xad, 0xd3, 0xd0, 0x7c, 0x85, 0x7b, 0x24, 0x00, + 0x63, 0x47, 0xcf, 0xf5, 0xc8, 0x05, 0xd4, 0x69, 0xd8, 0xbe, 0xca, 0x8f, 0x1e, 0xc5, 0xee, 0x06, + 0x19, 0xaf, 0x41, 0xce, 0x35, 0x5e, 0x8d, 0x45, 0xf3, 0x47, 0x7c, 0xa7, 0x09, 0x00, 0x83, 0x5f, + 0x86, 0x73, 0x53, 0xcb, 0x44, 0x0c, 0xb2, 0x3f, 0x66, 0x64, 0x4b, 0x53, 0x4a, 0x05, 0x4b, 0x09, + 0xa7, 0xa5, 0xfc, 0x13, 0x9e, 0x12, 0xd0, 0x18, 0x57, 0x0b, 0xbf, 0x28, 0xb8, 0x5a, 0xf7, 0x74, + 0x5e, 0xfb, 0x53, 0xee, 0x35, 0x8a, 0x0d, 0x79, 0x6d, 0x0f, 0x96, 0x18, 0xe3, 0xe9, 0xf6, 0xf5, + 0x6b, 0x3c, 0xb1, 0x52, 0xf4, 0x7e, 0x78, 0x77, 0x7f, 0x16, 0x96, 0x7d, 0x77, 0xf2, 0x8e, 0xd4, + 0x55, 0xfb, 0xda, 0x20, 0x06, 0xf3, 0xd7, 0x19, 0x33, 0xcf, 0xf8, 0x7e, 0x4b, 0xeb, 0xee, 0x6a, + 0x03, 0x4c, 0x7e, 0x13, 0x4a, 0x9c, 0x7c, 0x68, 0x39, 0x48, 0xb7, 0x7b, 0x96, 0xf1, 0x2a, 0xea, + 0xc4, 0xa0, 0xfe, 0xb3, 0xb1, 0xad, 0xda, 0x0f, 0xc0, 0x31, 0x73, 0x1d, 0x44, 0xbf, 0x57, 0x51, + 0x8d, 0xfe, 0xc0, 0x76, 0xbc, 0x08, 0xc6, 0x3f, 0xe7, 0x3b, 0xe5, 0xe3, 0xea, 0x04, 0x26, 0xd7, + 0xa0, 0x48, 0x86, 0x71, 0x43, 0xf2, 0x2f, 0x18, 0xd1, 0xec, 0x08, 0xc5, 0x12, 0x87, 0x6e, 0xf7, + 0x07, 0x9a, 0x13, 0x27, 0xff, 0xfd, 0x25, 0x4f, 0x1c, 0x0c, 0xc2, 0x12, 0x87, 0x77, 0x34, 0x40, + 0xb8, 0xda, 0xc7, 0x60, 0xf8, 0x06, 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x10, 0x83, 0xe2, + 0xaf, 0x38, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x8c, 0x0a, 0xad, 0x83, 0x7a, 0x86, 0xeb, 0x39, 0xb4, + 0x0f, 0x3e, 0x99, 0xea, 0x9b, 0xef, 0x85, 0x9b, 0x30, 0x25, 0x00, 0x95, 0x6f, 0xc0, 0xdc, 0x58, + 0x8b, 0x21, 0x45, 0xfd, 0x66, 0xa1, 0xf4, 0x73, 0xef, 0xb3, 0x64, 0x14, 0xee, 0x30, 0xe4, 0x1d, + 0xbc, 0xef, 0xe1, 0x3e, 0x20, 0x9a, 0xec, 0xb5, 0xf7, 0xfd, 0xad, 0x0f, 0xb5, 0x01, 0xf2, 0x75, + 0x98, 0x0d, 0xf5, 0x00, 0xd1, 0x54, 0x3f, 0xcf, 0xa8, 0x0a, 0xc1, 0x16, 0x40, 0xbe, 0x0c, 0x29, + 0x5c, 0xcf, 0xa3, 0xe1, 0xbf, 0xc0, 0xe0, 0x44, 0x5d, 0xfe, 0x18, 0x64, 0x79, 0x1d, 0x8f, 0x86, + 0xfe, 0x22, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x35, 0x3c, 0x1a, 0xfe, 0x4b, 0x1c, 0xce, 0x21, 0x18, + 0x1e, 0xdf, 0x85, 0x7f, 0xf3, 0x2b, 0x29, 0x96, 0x87, 0xb9, 0xef, 0xae, 0xc1, 0x0c, 0x2b, 0xde, + 0xd1, 0xe8, 0xcf, 0xb0, 0x87, 0x73, 0x84, 0xfc, 0x1c, 0xa4, 0x63, 0x3a, 0xfc, 0x57, 0x19, 0x94, + 0xea, 0xcb, 0x55, 0xc8, 0x07, 0x0a, 0x76, 0x34, 0xfc, 0xd7, 0x18, 0x3c, 0x88, 0xc2, 0xa6, 0xb3, + 0x82, 0x1d, 0x4d, 0xf0, 0xeb, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0xb5, 0x3a, 0x1a, 0xfd, 0x59, + 0xee, 0x75, 0x0e, 0x91, 0x5f, 0x84, 0x9c, 0x9f, 0x7f, 0xa3, 0xf1, 0xbf, 0xc1, 0xf0, 0x23, 0x0c, + 0xf6, 0x40, 0x20, 0xff, 0x47, 0x53, 0xfc, 0x26, 0xf7, 0x40, 0x00, 0x85, 0x8f, 0xd1, 0x78, 0x4d, + 0x8f, 0x66, 0xfa, 0x2d, 0x7e, 0x8c, 0xc6, 0x4a, 0x3a, 0xde, 0x4d, 0x92, 0x06, 0xa3, 0x29, 0x7e, + 0x9b, 0xef, 0x26, 0xd1, 0xc7, 0x66, 0x8c, 0x17, 0xc9, 0x68, 0x8e, 0xdf, 0xe1, 0x66, 0x8c, 0xd5, + 0x48, 0xb9, 0x05, 0xd2, 0x64, 0x81, 0x8c, 0xe6, 0xfb, 0x1c, 0xe3, 0x9b, 0x9f, 0xa8, 0x8f, 0xf2, + 0x4b, 0xb0, 0x34, 0xbd, 0x38, 0x46, 0xb3, 0x7e, 0xfe, 0xfd, 0xb1, 0xd7, 0x99, 0x60, 0x6d, 0x94, + 0xf7, 0x46, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x7f, 0x3f, 0x9c, 0x68, 0x83, 0x75, 0x51, + 0xae, 0x00, 0x8c, 0x6a, 0x52, 0x34, 0xd7, 0x1b, 0x8c, 0x2b, 0x00, 0xc2, 0x47, 0x83, 0x95, 0xa4, + 0x68, 0xfc, 0x17, 0xf8, 0xd1, 0x60, 0x08, 0x7c, 0x34, 0x78, 0x35, 0x8a, 0x46, 0xbf, 0xc9, 0x8f, + 0x06, 0x87, 0xc8, 0xd7, 0x20, 0x6b, 0x0d, 0x4d, 0x13, 0xc7, 0x96, 0x74, 0xf2, 0xcf, 0x88, 0x4a, + 0xff, 0xfe, 0x80, 0x81, 0x39, 0x40, 0xbe, 0x0c, 0x69, 0xd4, 0x3f, 0x40, 0x9d, 0x28, 0xe4, 0x7f, + 0x3c, 0xe0, 0xf9, 0x04, 0x6b, 0xcb, 0x2f, 0x02, 0xd0, 0x97, 0x69, 0xf2, 0x95, 0x28, 0x02, 0xfb, + 0x9f, 0x0f, 0xd8, 0x2f, 0x14, 0x46, 0x90, 0x11, 0x01, 0xfd, 0xbd, 0xc3, 0xc9, 0x04, 0xef, 0x85, + 0x09, 0xc8, 0x0b, 0xf8, 0xf3, 0x30, 0x73, 0xcb, 0xb5, 0x2d, 0x4f, 0xeb, 0x45, 0xa1, 0xbf, 0xc7, + 0xd0, 0x5c, 0x1f, 0x3b, 0xac, 0x6f, 0x3b, 0xc8, 0xd3, 0x7a, 0x6e, 0x14, 0xf6, 0xbf, 0x18, 0xd6, + 0x07, 0x60, 0xb0, 0xae, 0xb9, 0x5e, 0x9c, 0x75, 0xff, 0x37, 0x07, 0x73, 0x00, 0x36, 0x1a, 0xff, + 0x7d, 0x1b, 0x1d, 0x45, 0x61, 0xbf, 0xcf, 0x8d, 0x66, 0xfa, 0xf2, 0xc7, 0x20, 0x87, 0xff, 0xa4, + 0xbf, 0xda, 0x89, 0x00, 0xff, 0x0f, 0x03, 0x8f, 0x10, 0xf8, 0xc9, 0xae, 0xd7, 0xf1, 0x8c, 0x68, + 0x67, 0xff, 0x2f, 0xdb, 0x69, 0xae, 0x2f, 0x57, 0x20, 0xef, 0x7a, 0x9d, 0xce, 0x90, 0x75, 0x34, + 0x11, 0xf0, 0x1f, 0x3c, 0xf0, 0x5f, 0x72, 0x7d, 0xcc, 0xe6, 0x85, 0xe9, 0x97, 0x75, 0xb0, 0x6d, + 0x6f, 0xdb, 0xf4, 0x9a, 0x0e, 0xbe, 0x97, 0x82, 0xb3, 0xc1, 0x33, 0xdd, 0x73, 0xec, 0xe1, 0x80, + 0xdd, 0xaf, 0xcd, 0x4f, 0x4c, 0x2c, 0x9f, 0xee, 0x86, 0xae, 0x6c, 0x01, 0x34, 0xd0, 0xdd, 0x86, + 0xbd, 0x8d, 0xc1, 0xd2, 0x12, 0x64, 0x88, 0xcd, 0xcf, 0x90, 0x0f, 0x4c, 0x49, 0x85, 0x8d, 0x7c, + 0xf9, 0x25, 0xf2, 0x23, 0x5a, 0x81, 0xc9, 0x2f, 0x49, 0x65, 0x10, 0x2a, 0xe4, 0x06, 0x3d, 0xbf, + 0xb1, 0xb8, 0x3e, 0x69, 0x64, 0x45, 0x11, 0x2a, 0x72, 0xe1, 0x97, 0xdf, 0x3a, 0x2f, 0x7c, 0xf6, + 0xad, 0xf3, 0xc2, 0x17, 0xdf, 0x3a, 0x2f, 0x94, 0x9f, 0x04, 0xa1, 0x82, 0xe9, 0x2a, 0x84, 0x81, + 0x3f, 0x86, 0x8e, 0xc6, 0x54, 0xff, 0x3e, 0x01, 0x85, 0xa6, 0xd9, 0x79, 0xc9, 0xf0, 0x0e, 0x4f, + 0xb6, 0xee, 0x05, 0xc8, 0x90, 0xe7, 0x3d, 0x43, 0x6e, 0x4d, 0x61, 0xe3, 0xf1, 0x29, 0xa6, 0x04, + 0x89, 0xd6, 0xc9, 0xbf, 0xcf, 0x28, 0x0c, 0x75, 0xec, 0xea, 0x38, 0xef, 0x06, 0xb9, 0x5e, 0x8d, + 0xcb, 0xbb, 0xc1, 0x78, 0x37, 0x96, 0x5b, 0x90, 0xd9, 0x0e, 0x3f, 0xe1, 0x38, 0xbf, 0x6e, 0xf0, + 0xdf, 0x7e, 0xd1, 0xd1, 0x71, 0x16, 0x2d, 0x5f, 0x65, 0x8c, 0x1b, 0xb1, 0x18, 0x47, 0xc8, 0x8d, + 0xcd, 0xb5, 0x6f, 0xdf, 0x5f, 0x39, 0xf3, 0x8f, 0xf7, 0x57, 0xce, 0xfc, 0xd3, 0xfd, 0x95, 0x33, + 0xdf, 0xbd, 0xbf, 0x22, 0x7c, 0xff, 0xfe, 0x8a, 0xf0, 0xff, 0xf7, 0x57, 0x84, 0x7b, 0xef, 0xac, + 0x08, 0x5f, 0x7e, 0x67, 0x45, 0xf8, 0xda, 0x3b, 0x2b, 0xc2, 0x37, 0xdf, 0x59, 0x11, 0x7e, 0x18, + 0x00, 0x00, 0xff, 0xff, 0xee, 0x64, 0xaf, 0x17, 0xcc, 0x30, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -953,133 +972,116 @@ func valueToGoStringUnrecognizedgroup(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringUnrecognizedgroup(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *NewNoGroup) Marshal() (data []byte, err error) { +func (m *NewNoGroup) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *NewNoGroup) MarshalTo(data []byte) (int, error) { +func (m *NewNoGroup) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Field1 != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintUnrecognizedgroup(data, i, uint64(*m.Field1)) + i = encodeVarintUnrecognizedgroup(dAtA, i, uint64(*m.Field1)) } if len(m.Field3) > 0 { for _, num := range m.Field3 { - data[i] = 0x19 + dAtA[i] = 0x19 i++ f1 := math.Float64bits(float64(num)) - data[i] = uint8(f1) + dAtA[i] = uint8(f1) i++ - data[i] = uint8(f1 >> 8) + dAtA[i] = uint8(f1 >> 8) i++ - data[i] = uint8(f1 >> 16) + dAtA[i] = uint8(f1 >> 16) i++ - data[i] = uint8(f1 >> 24) + dAtA[i] = uint8(f1 >> 24) i++ - data[i] = uint8(f1 >> 32) + dAtA[i] = uint8(f1 >> 32) i++ - data[i] = uint8(f1 >> 40) + dAtA[i] = uint8(f1 >> 40) i++ - data[i] = uint8(f1 >> 48) + dAtA[i] = uint8(f1 >> 48) i++ - data[i] = uint8(f1 >> 56) + dAtA[i] = uint8(f1 >> 56) i++ } } if m.A != nil { - data[i] = 0x2a + dAtA[i] = 0x2a i++ - i = encodeVarintUnrecognizedgroup(data, i, uint64(m.A.Size())) - n2, err := m.A.MarshalTo(data[i:]) + i = encodeVarintUnrecognizedgroup(dAtA, i, uint64(m.A.Size())) + n2, err := m.A.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.AField != nil { - data[i] = 0x8 + dAtA[i] = 0x8 i++ - i = encodeVarintUnrecognizedgroup(data, i, uint64(*m.AField)) + i = encodeVarintUnrecognizedgroup(dAtA, i, uint64(*m.AField)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Unrecognizedgroup(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Unrecognizedgroup(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Unrecognizedgroup(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Unrecognizedgroup(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintUnrecognizedgroup(data []byte, offset int, v uint64) int { +func encodeVarintUnrecognizedgroup(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func NewPopulatedNewNoGroup(r randyUnrecognizedgroup, easy bool) *NewNoGroup { @@ -1239,7 +1241,7 @@ func randStringUnrecognizedgroup(r randyUnrecognizedgroup) string { } return string(tmps) } -func randUnrecognizedUnrecognizedgroup(r randyUnrecognizedgroup, maxFieldNumber int) (data []byte) { +func randUnrecognizedUnrecognizedgroup(r randyUnrecognizedgroup, maxFieldNumber int) (dAtA []byte) { l := r.Intn(5) for i := 0; i < l; i++ { wire := r.Intn(4) @@ -1247,43 +1249,43 @@ func randUnrecognizedUnrecognizedgroup(r randyUnrecognizedgroup, maxFieldNumber wire = 5 } fieldNumber := maxFieldNumber + r.Intn(100) - data = randFieldUnrecognizedgroup(data, r, fieldNumber, wire) + dAtA = randFieldUnrecognizedgroup(dAtA, r, fieldNumber, wire) } - return data + return dAtA } -func randFieldUnrecognizedgroup(data []byte, r randyUnrecognizedgroup, fieldNumber int, wire int) []byte { +func randFieldUnrecognizedgroup(dAtA []byte, r randyUnrecognizedgroup, fieldNumber int, wire int) []byte { key := uint32(fieldNumber)<<3 | uint32(wire) switch wire { case 0: - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(key)) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(key)) v12 := r.Int63() if r.Intn(2) == 0 { v12 *= -1 } - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(v12)) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(v12)) case 1: - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) case 2: - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(key)) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(key)) ll := r.Intn(100) - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(ll)) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(ll)) for j := 0; j < ll; j++ { - data = append(data, byte(r.Intn(256))) + dAtA = append(dAtA, byte(r.Intn(256))) } default: - data = encodeVarintPopulateUnrecognizedgroup(data, uint64(key)) - data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + dAtA = encodeVarintPopulateUnrecognizedgroup(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) } - return data + return dAtA } -func encodeVarintPopulateUnrecognizedgroup(data []byte, v uint64) []byte { +func encodeVarintPopulateUnrecognizedgroup(dAtA []byte, v uint64) []byte { for v >= 1<<7 { - data = append(data, uint8(uint64(v)&0x7f|0x80)) + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) v >>= 7 } - data = append(data, uint8(v)) - return data + dAtA = append(dAtA, uint8(v)) + return dAtA } func (m *NewNoGroup) Size() (n int) { var l int @@ -1400,8 +1402,8 @@ func valueToStringUnrecognizedgroup(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *NewNoGroup) Unmarshal(data []byte) error { - l := len(data) +func (m *NewNoGroup) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1413,7 +1415,7 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1441,7 +1443,7 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1450,24 +1452,65 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { } m.Field1 = &v case 3: - if wireType != 1 { + if wireType == 1 { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field3 = append(m.Field3, v2) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnrecognizedgroup + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthUnrecognizedgroup + } + postIndex := iNdEx + packedLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + for iNdEx < postIndex { + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + v2 := float64(math.Float64frombits(v)) + m.Field3 = append(m.Field3, v2) + } + } else { return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(data[iNdEx-8]) - v |= uint64(data[iNdEx-7]) << 8 - v |= uint64(data[iNdEx-6]) << 16 - v |= uint64(data[iNdEx-5]) << 24 - v |= uint64(data[iNdEx-4]) << 32 - v |= uint64(data[iNdEx-3]) << 40 - v |= uint64(data[iNdEx-2]) << 48 - v |= uint64(data[iNdEx-1]) << 56 - v2 := float64(math.Float64frombits(v)) - m.Field3 = append(m.Field3, v2) case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field A", wireType) @@ -1480,7 +1523,7 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ msglen |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1497,13 +1540,13 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { if m.A == nil { m.A = &A{} } - if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil { + if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipUnrecognizedgroup(data[iNdEx:]) + skippy, err := skipUnrecognizedgroup(dAtA[iNdEx:]) if err != nil { return err } @@ -1513,7 +1556,7 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1523,8 +1566,8 @@ func (m *NewNoGroup) Unmarshal(data []byte) error { } return nil } -func (m *A) Unmarshal(data []byte) error { - l := len(data) +func (m *A) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -1536,7 +1579,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1564,7 +1607,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -1574,7 +1617,7 @@ func (m *A) Unmarshal(data []byte) error { m.AField = &v default: iNdEx = preIndex - skippy, err := skipUnrecognizedgroup(data[iNdEx:]) + skippy, err := skipUnrecognizedgroup(dAtA[iNdEx:]) if err != nil { return err } @@ -1584,7 +1627,7 @@ func (m *A) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -1594,8 +1637,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func skipUnrecognizedgroup(data []byte) (n int, err error) { - l := len(data) +func skipUnrecognizedgroup(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -1606,7 +1649,7 @@ func skipUnrecognizedgroup(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1624,7 +1667,7 @@ func skipUnrecognizedgroup(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -1641,7 +1684,7 @@ func skipUnrecognizedgroup(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -1664,7 +1707,7 @@ func skipUnrecognizedgroup(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -1675,7 +1718,7 @@ func skipUnrecognizedgroup(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipUnrecognizedgroup(data[start:]) + next, err := skipUnrecognizedgroup(dAtA[start:]) if err != nil { return 0, err } @@ -1699,25 +1742,28 @@ var ( ErrIntOverflowUnrecognizedgroup = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("unrecognizedgroup.proto", fileDescriptorUnrecognizedgroup) } + var fileDescriptorUnrecognizedgroup = []byte{ - // 290 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xcd, 0x2b, 0x4a, + // 305 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xcd, 0x2b, 0x4a, 0x4d, 0xce, 0x4f, 0xcf, 0xcb, 0xac, 0x4a, 0x4d, 0x49, 0x2f, 0xca, 0x2f, 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0xc4, 0x90, 0x90, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4c, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x82, 0x52, 0x1e, 0x17, 0x97, 0x5f, 0x6a, 0xb9, 0x5f, 0xbe, 0x3b, 0x48, 0xb3, 0x90, 0x18, 0x17, 0x9b, 0x5b, 0x66, 0x6a, 0x4e, 0x8a, 0xa1, 0x04, 0xa3, 0x02, 0xa3, - 0x06, 0x73, 0x10, 0x5b, 0x1a, 0x98, 0x07, 0x17, 0x37, 0x96, 0x60, 0x56, 0x60, 0xd6, 0x60, 0x84, - 0x8a, 0x1b, 0x0b, 0x29, 0x71, 0x31, 0x3a, 0x4a, 0xb0, 0x02, 0x95, 0x72, 0x1b, 0x89, 0xe8, 0x61, - 0x3a, 0xd2, 0x31, 0x88, 0x31, 0xd1, 0x8a, 0xa7, 0x63, 0xa1, 0x3c, 0xe3, 0x04, 0x20, 0x5e, 0x00, - 0xc4, 0x4a, 0x9a, 0x40, 0x1d, 0x20, 0xe3, 0x1c, 0xc1, 0xe6, 0xc1, 0xac, 0x49, 0x04, 0xf3, 0xd0, - 0x94, 0x9e, 0x62, 0xe2, 0xe2, 0xf1, 0xcf, 0x49, 0x09, 0x07, 0xfa, 0x07, 0xbf, 0xeb, 0xec, 0xb8, - 0xd8, 0xc0, 0xf6, 0x19, 0x4a, 0x30, 0x01, 0xc5, 0xb9, 0x8c, 0xd4, 0xb0, 0x38, 0x05, 0xd9, 0x20, - 0x3d, 0x30, 0x69, 0x18, 0x04, 0xd5, 0x85, 0xd3, 0x77, 0x30, 0x73, 0x8d, 0x24, 0x58, 0x48, 0x30, - 0xd7, 0x08, 0x6a, 0xae, 0x91, 0x54, 0x00, 0x17, 0x9b, 0x3b, 0xaa, 0x0d, 0xb8, 0xc2, 0xd5, 0x08, - 0xec, 0x72, 0x56, 0xa8, 0xb8, 0x11, 0x2e, 0x17, 0x49, 0x59, 0x40, 0x4d, 0x34, 0x22, 0xca, 0x44, - 0x84, 0x4e, 0x23, 0x27, 0x8d, 0x13, 0x0f, 0xe5, 0x18, 0x2e, 0x00, 0xf1, 0x0d, 0x20, 0x7e, 0xf0, - 0x50, 0x8e, 0xf1, 0x03, 0x10, 0xff, 0x00, 0xe2, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x80, 0x78, 0x03, - 0x10, 0xef, 0x00, 0x62, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xda, 0x14, 0xdb, 0x7e, 0x6d, 0x02, - 0x00, 0x00, + 0x06, 0x73, 0x10, 0x94, 0x07, 0x17, 0x37, 0x96, 0x60, 0x56, 0x60, 0xd6, 0x60, 0x84, 0x8a, 0x1b, + 0x0b, 0x29, 0x71, 0x31, 0x3a, 0x4a, 0xb0, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x89, 0xe8, 0x61, 0x3a, + 0xd2, 0x31, 0x88, 0xd1, 0xd1, 0x8a, 0xa7, 0x63, 0xa1, 0x3c, 0xe3, 0x84, 0x85, 0xf2, 0x8c, 0x0b, + 0x16, 0xca, 0x33, 0x2a, 0x69, 0x72, 0x31, 0x3a, 0x82, 0x8c, 0x73, 0x04, 0x9b, 0x00, 0xb3, 0x06, + 0xc2, 0x43, 0x53, 0x7a, 0x8a, 0x89, 0x8b, 0xc7, 0x3f, 0x27, 0x25, 0x3c, 0xb3, 0x24, 0x03, 0xbf, + 0xeb, 0xec, 0xb8, 0xd8, 0xc0, 0xf6, 0x19, 0x4a, 0x30, 0x29, 0x30, 0x6a, 0x70, 0x19, 0xa9, 0x61, + 0x71, 0x0a, 0xb2, 0x41, 0x7a, 0x60, 0xd2, 0x30, 0x08, 0xaa, 0x0b, 0xa7, 0xef, 0x60, 0xe6, 0x1a, + 0x49, 0xb0, 0x90, 0x60, 0xae, 0x11, 0xd4, 0x5c, 0x23, 0xa9, 0x00, 0x2e, 0x36, 0x77, 0x54, 0x1b, + 0x70, 0x85, 0xab, 0x11, 0xd8, 0xe5, 0xac, 0x50, 0x71, 0x23, 0x5c, 0x2e, 0x92, 0xb2, 0x80, 0x9a, + 0x68, 0x44, 0x94, 0x89, 0x08, 0x9d, 0x46, 0x4e, 0x1a, 0x27, 0x1e, 0xca, 0x31, 0x5c, 0x78, 0x28, + 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0xc3, 0x83, 0x87, 0x72, 0x8c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, + 0x28, 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x0d, 0x8f, 0xe4, 0x18, 0x77, + 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xef, 0x1c, 0xa5, 0xe4, 0x6d, 0x02, 0x00, + 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto index 0a33cbc9..2e581365 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go index 6e341553..302889e9 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go @@ -35,18 +35,18 @@ func TestNewNoGroupProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -70,20 +70,20 @@ func TestNewNoGroupMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -97,18 +97,18 @@ func TestAProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -132,20 +132,20 @@ func TestAMarshalTo(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() - data := make([]byte, size) - for i := range data { - data[i] = byte(popr.Intn(256)) + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } - _, err := p.MarshalTo(data) + _, err := p.MarshalTo(dAtA) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - for i := range data { - data[i] = byte(popr.Intn(256)) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -159,18 +159,18 @@ func TestOldWithGroupProto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -193,18 +193,18 @@ func TestOldWithGroup_Group1Proto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -227,18 +227,18 @@ func TestOldWithGroup_Group2Proto(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } - littlefuzz := make([]byte, len(data)) - copy(littlefuzz, data) - for i := range data { - data[i] = byte(popr.Intn(256)) + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) } if err := p.VerboseEqual(msg); err != nil { t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) @@ -366,9 +366,9 @@ func TestNewNoGroupProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -383,9 +383,9 @@ func TestNewNoGroupProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -400,9 +400,9 @@ func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -417,9 +417,9 @@ func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -434,9 +434,9 @@ func TestOldWithGroupProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -451,9 +451,9 @@ func TestOldWithGroupProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -468,9 +468,9 @@ func TestOldWithGroup_Group1ProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -485,9 +485,9 @@ func TestOldWithGroup_Group1ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -502,9 +502,9 @@ func TestOldWithGroup_Group2ProtoText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, true) - data := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -519,9 +519,9 @@ func TestOldWithGroup_Group2ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, true) - data := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -538,12 +538,12 @@ func TestUnrecognizedgroupDescription(t *testing.T) { func TestNewNoGroupVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNewNoGroup(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -553,12 +553,12 @@ func TestNewNoGroupVerboseEqual(t *testing.T) { func TestAVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -568,12 +568,12 @@ func TestAVerboseEqual(t *testing.T) { func TestOldWithGroupVerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -583,12 +583,12 @@ func TestOldWithGroupVerboseEqual(t *testing.T) { func TestOldWithGroup_Group1VerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group1(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -598,12 +598,12 @@ func TestOldWithGroup_Group1VerboseEqual(t *testing.T) { func TestOldWithGroup_Group2VerboseEqual(t *testing.T) { popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group2(popr, false) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(data, msg); err != nil { + if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -680,13 +680,13 @@ func TestNewNoGroupSize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) @@ -702,13 +702,13 @@ func TestASize(t *testing.T) { popr := math_rand.New(math_rand.NewSource(seed)) p := NewPopulatedA(popr, true) size2 := github_com_gogo_protobuf_proto.Size(p) - data, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } size := p.Size() - if len(data) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(data)) + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) } if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) diff --git a/vendor/github.com/gogo/protobuf/test/uuid.go b/vendor/github.com/gogo/protobuf/test/uuid.go index 76011119..ae349da4 100644 --- a/vendor/github.com/gogo/protobuf/test/uuid.go +++ b/vendor/github.com/gogo/protobuf/test/uuid.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,6 +30,7 @@ package test import ( "bytes" + "encoding/hex" "encoding/json" ) @@ -83,16 +84,22 @@ func (uuid *Uuid) Size() int { } func (uuid Uuid) MarshalJSON() ([]byte, error) { - return json.Marshal([]byte(uuid)) + s := hex.EncodeToString([]byte(uuid)) + return json.Marshal(s) } func (uuid *Uuid) UnmarshalJSON(data []byte) error { - v := new([]byte) - err := json.Unmarshal(data, v) + var s string + err := json.Unmarshal(data, &s) if err != nil { return err } - return uuid.Unmarshal(*v) + d, err := hex.DecodeString(s) + if err != nil { + return err + } + *uuid = Uuid(d) + return nil } func (uuid Uuid) Equal(other Uuid) bool { diff --git a/vendor/github.com/gogo/protobuf/test/uuid_test.go b/vendor/github.com/gogo/protobuf/test/uuid_test.go index 93927452..5f3b7280 100644 --- a/vendor/github.com/gogo/protobuf/test/uuid_test.go +++ b/vendor/github.com/gogo/protobuf/test/uuid_test.go @@ -1,3 +1,31 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + package test import ( diff --git a/vendor/github.com/gogo/protobuf/types/Makefile b/vendor/github.com/gogo/protobuf/types/Makefile new file mode 100644 index 00000000..c326d257 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/Makefile @@ -0,0 +1,39 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2016, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogotypes + go install github.com/gogo/protobuf/protoc-min-version + + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/any.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/empty.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/timestamp.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/duration.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/struct.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/wrappers.proto + protoc-min-version --version="3.0.0" --gogotypes_out=. -I=../protobuf/google/protobuf ../protobuf/google/protobuf/field_mask.proto diff --git a/vendor/github.com/gogo/protobuf/types/any.go b/vendor/github.com/gogo/protobuf/types/any.go new file mode 100644 index 00000000..c10caf40 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/any.go @@ -0,0 +1,135 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +// This file implements functions to marshal proto.Message to/from +// google.protobuf.Any message. + +import ( + "fmt" + "reflect" + "strings" + + "github.com/gogo/protobuf/proto" +) + +const googleApis = "type.googleapis.com/" + +// AnyMessageName returns the name of the message contained in a google.protobuf.Any message. +// +// Note that regular type assertions should be done using the Is +// function. AnyMessageName is provided for less common use cases like filtering a +// sequence of Any messages based on a set of allowed message type names. +func AnyMessageName(any *Any) (string, error) { + slash := strings.LastIndex(any.TypeUrl, "/") + if slash < 0 { + return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) + } + return any.TypeUrl[slash+1:], nil +} + +// MarshalAny takes the protocol buffer and encodes it into google.protobuf.Any. +func MarshalAny(pb proto.Message) (*Any, error) { + value, err := proto.Marshal(pb) + if err != nil { + return nil, err + } + return &Any{TypeUrl: googleApis + proto.MessageName(pb), Value: value}, nil +} + +// DynamicAny is a value that can be passed to UnmarshalAny to automatically +// allocate a proto.Message for the type specified in a google.protobuf.Any +// message. The allocated message is stored in the embedded proto.Message. +// +// Example: +// +// var x ptypes.DynamicAny +// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... } +// fmt.Printf("unmarshaled message: %v", x.Message) +type DynamicAny struct { + proto.Message +} + +// Empty returns a new proto.Message of the type specified in a +// google.protobuf.Any message. It returns an error if corresponding message +// type isn't linked in. +func EmptyAny(any *Any) (proto.Message, error) { + aname, err := AnyMessageName(any) + if err != nil { + return nil, err + } + + t := proto.MessageType(aname) + if t == nil { + return nil, fmt.Errorf("any: message type %q isn't linked in", aname) + } + return reflect.New(t.Elem()).Interface().(proto.Message), nil +} + +// UnmarshalAny parses the protocol buffer representation in a google.protobuf.Any +// message and places the decoded result in pb. It returns an error if type of +// contents of Any message does not match type of pb message. +// +// pb can be a proto.Message, or a *DynamicAny. +func UnmarshalAny(any *Any, pb proto.Message) error { + if d, ok := pb.(*DynamicAny); ok { + if d.Message == nil { + var err error + d.Message, err = EmptyAny(any) + if err != nil { + return err + } + } + return UnmarshalAny(any, d.Message) + } + + aname, err := AnyMessageName(any) + if err != nil { + return err + } + + mname := proto.MessageName(pb) + if aname != mname { + return fmt.Errorf("mismatched message type: got %q want %q", aname, mname) + } + return proto.Unmarshal(any.Value, pb) +} + +// Is returns true if any value contains a given message type. +func Is(any *Any, pb proto.Message) bool { + aname, err := AnyMessageName(any) + if err != nil { + return false + } + + return aname == proto.MessageName(pb) +} diff --git a/vendor/github.com/gogo/protobuf/types/any.pb.go b/vendor/github.com/gogo/protobuf/types/any.pb.go new file mode 100644 index 00000000..902d6d62 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/any.pb.go @@ -0,0 +1,666 @@ +// Code generated by protoc-gen-gogo. +// source: any.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + any.proto + + It has these top-level messages: + Any +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import bytes "bytes" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +type Any struct { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the scheme `http`, `https`, or no scheme, the + // following restrictions and interpretations apply: + // + // * If no scheme is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + // Must be a valid serialized protocol buffer of the above specified type. + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Any) Reset() { *m = Any{} } +func (*Any) ProtoMessage() {} +func (*Any) Descriptor() ([]byte, []int) { return fileDescriptorAny, []int{0} } +func (*Any) XXX_WellKnownType() string { return "Any" } + +func (m *Any) GetTypeUrl() string { + if m != nil { + return m.TypeUrl + } + return "" +} + +func (m *Any) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*Any)(nil), "google.protobuf.Any") +} +func (this *Any) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Any) + if !ok { + that2, ok := that.(Any) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.TypeUrl != that1.TypeUrl { + if this.TypeUrl < that1.TypeUrl { + return -1 + } + return 1 + } + if c := bytes.Compare(this.Value, that1.Value); c != 0 { + return c + } + return 0 +} +func (this *Any) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Any) + if !ok { + that2, ok := that.(Any) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.TypeUrl != that1.TypeUrl { + return false + } + if !bytes.Equal(this.Value, that1.Value) { + return false + } + return true +} +func (this *Any) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.Any{") + s = append(s, "TypeUrl: "+fmt.Sprintf("%#v", this.TypeUrl)+",\n") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringAny(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Any) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Any) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.TypeUrl) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintAny(dAtA, i, uint64(len(m.TypeUrl))) + i += copy(dAtA[i:], m.TypeUrl) + } + if len(m.Value) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintAny(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + return i, nil +} + +func encodeFixed64Any(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Any(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintAny(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedAny(r randyAny, easy bool) *Any { + this := &Any{} + this.TypeUrl = string(randStringAny(r)) + v1 := r.Intn(100) + this.Value = make([]byte, v1) + for i := 0; i < v1; i++ { + this.Value[i] = byte(r.Intn(256)) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyAny interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneAny(r randyAny) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringAny(r randyAny) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneAny(r) + } + return string(tmps) +} +func randUnrecognizedAny(r randyAny, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldAny(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldAny(dAtA []byte, r randyAny, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateAny(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateAny(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateAny(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateAny(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateAny(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateAny(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateAny(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Any) Size() (n int) { + var l int + _ = l + l = len(m.TypeUrl) + if l > 0 { + n += 1 + l + sovAny(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovAny(uint64(l)) + } + return n +} + +func sovAny(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozAny(x uint64) (n int) { + return sovAny(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Any) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Any{`, + `TypeUrl:` + fmt.Sprintf("%v", this.TypeUrl) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func valueToStringAny(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Any) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAny + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Any: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Any: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TypeUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAny + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAny + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TypeUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAny + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthAny + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAny(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAny + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipAny(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAny + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAny + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAny + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthAny + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAny + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipAny(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthAny = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowAny = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("any.proto", fileDescriptorAny) } + +var fileDescriptorAny = []byte{ + // 204 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4c, 0xcc, 0xab, 0xd4, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, 0xcf, 0x4f, 0xcf, 0x49, 0x85, 0xf0, 0x92, + 0x4a, 0xd3, 0x94, 0xcc, 0xb8, 0x98, 0x1d, 0xf3, 0x2a, 0x85, 0x24, 0xb9, 0x38, 0x4a, 0x2a, 0x0b, + 0x52, 0xe3, 0x4b, 0x8b, 0x72, 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0xd8, 0x41, 0xfc, 0xd0, + 0xa2, 0x1c, 0x21, 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x26, 0x05, 0x46, 0x0d, + 0x9e, 0x20, 0x08, 0xc7, 0xa9, 0xfe, 0xc2, 0x43, 0x39, 0x86, 0x1b, 0x0f, 0xe5, 0x18, 0x3e, 0x3c, + 0x94, 0x63, 0xfc, 0xf1, 0x50, 0x8e, 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, + 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, + 0x1f, 0x40, 0xe2, 0x8f, 0xe5, 0x18, 0xb9, 0x84, 0x93, 0xf3, 0x73, 0xf5, 0xd0, 0xac, 0x77, 0xe2, + 0x70, 0xcc, 0xab, 0x0c, 0x00, 0x71, 0x02, 0x18, 0xa3, 0x58, 0x41, 0x36, 0x16, 0x2f, 0x62, 0x62, + 0x76, 0x0f, 0x70, 0x5a, 0xc5, 0x24, 0xe7, 0x0e, 0x51, 0x1a, 0x00, 0x55, 0xaa, 0x17, 0x9e, 0x9a, + 0x93, 0xe3, 0x9d, 0x97, 0x5f, 0x9e, 0x17, 0x02, 0x52, 0x96, 0xc4, 0x06, 0x36, 0xc3, 0x18, 0x10, + 0x00, 0x00, 0xff, 0xff, 0xb7, 0x39, 0x2f, 0x89, 0xdd, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/any_test.go b/vendor/github.com/gogo/protobuf/types/any_test.go new file mode 100644 index 00000000..14679a24 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/any_test.go @@ -0,0 +1,112 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "testing" + + "github.com/gogo/protobuf/proto" + pb "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +) + +func TestMarshalUnmarshal(t *testing.T) { + orig := &Any{Value: []byte("test")} + + packed, err := MarshalAny(orig) + if err != nil { + t.Errorf("MarshalAny(%+v): got: _, %v exp: _, nil", orig, err) + } + + unpacked := &Any{} + err = UnmarshalAny(packed, unpacked) + if err != nil || !proto.Equal(unpacked, orig) { + t.Errorf("got: %v, %+v; want nil, %+v", err, unpacked, orig) + } +} + +func TestIs(t *testing.T) { + a, err := MarshalAny(&pb.FileDescriptorProto{}) + if err != nil { + t.Fatal(err) + } + if Is(a, &pb.DescriptorProto{}) { + t.Error("FileDescriptorProto is not a DescriptorProto, but Is says it is") + } + if !Is(a, &pb.FileDescriptorProto{}) { + t.Error("FileDescriptorProto is indeed a FileDescriptorProto, but Is says it is not") + } +} + +func TestIsDifferentUrlPrefixes(t *testing.T) { + m := &pb.FileDescriptorProto{} + a := &Any{TypeUrl: "foo/bar/" + proto.MessageName(m)} + if !Is(a, m) { + t.Errorf("message with type url %q didn't satisfy Is for type %q", a.TypeUrl, proto.MessageName(m)) + } +} + +func TestUnmarshalDynamic(t *testing.T) { + want := &pb.FileDescriptorProto{Name: proto.String("foo")} + a, err := MarshalAny(want) + if err != nil { + t.Fatal(err) + } + var got DynamicAny + if err := UnmarshalAny(a, &got); err != nil { + t.Fatal(err) + } + if !proto.Equal(got.Message, want) { + t.Errorf("invalid result from UnmarshalAny, got %q want %q", got.Message, want) + } +} + +func TestEmpty(t *testing.T) { + want := &pb.FileDescriptorProto{} + a, err := MarshalAny(want) + if err != nil { + t.Fatal(err) + } + got, err := EmptyAny(a) + if err != nil { + t.Fatal(err) + } + if !proto.Equal(got, want) { + t.Errorf("unequal empty message, got %q, want %q", got, want) + } + + // that's a valid type_url for a message which shouldn't be linked into this + // test binary. We want an error. + a.TypeUrl = "type.googleapis.com/google.protobuf.TestAny" + if _, err := EmptyAny(a); err == nil { + t.Errorf("got no error for an attempt to create a message of type %q, which shouldn't be linked in", a.TypeUrl) + } +} diff --git a/vendor/github.com/gogo/protobuf/types/doc.go b/vendor/github.com/gogo/protobuf/types/doc.go new file mode 100644 index 00000000..ff2810af --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/doc.go @@ -0,0 +1,35 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package types contains code for interacting with well-known types. +*/ +package types diff --git a/vendor/github.com/gogo/protobuf/types/duration.go b/vendor/github.com/gogo/protobuf/types/duration.go new file mode 100644 index 00000000..475d61f1 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/duration.go @@ -0,0 +1,100 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +// This file implements conversions between google.protobuf.Duration +// and time.Duration. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Range of a Duration in seconds, as specified in + // google/protobuf/duration.proto. This is about 10,000 years in seconds. + maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) + minSeconds = -maxSeconds +) + +// validateDuration determines whether the Duration is valid according to the +// definition in google/protobuf/duration.proto. A valid Duration +// may still be too large to fit into a time.Duration (the range of Duration +// is about 10,000 years, and the range of time.Duration is about 290). +func validateDuration(d *Duration) error { + if d == nil { + return errors.New("duration: nil Duration") + } + if d.Seconds < minSeconds || d.Seconds > maxSeconds { + return fmt.Errorf("duration: %#v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %#v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %#v: seconds and nanos have different signs", d) + } + return nil +} + +// DurationFromProto converts a Duration to a time.Duration. DurationFromProto +// returns an error if the Duration is invalid or is too large to be +// represented in a time.Duration. +func DurationFromProto(p *Duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a Duration. +func DurationProto(d time.Duration) *Duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &Duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/vendor/github.com/gogo/protobuf/types/duration.pb.go b/vendor/github.com/gogo/protobuf/types/duration.pb.go new file mode 100644 index 00000000..9d7fa8f3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/duration.pb.go @@ -0,0 +1,500 @@ +// Code generated by protoc-gen-gogo. +// source: duration.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + duration.proto + + It has these top-level messages: + Duration +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// +type Duration struct { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *Duration) Reset() { *m = Duration{} } +func (*Duration) ProtoMessage() {} +func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptorDuration, []int{0} } +func (*Duration) XXX_WellKnownType() string { return "Duration" } + +func (m *Duration) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Duration) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +func init() { + proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") +} +func (this *Duration) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Duration) + if !ok { + that2, ok := that.(Duration) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Seconds != that1.Seconds { + if this.Seconds < that1.Seconds { + return -1 + } + return 1 + } + if this.Nanos != that1.Nanos { + if this.Nanos < that1.Nanos { + return -1 + } + return 1 + } + return 0 +} +func (this *Duration) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Duration) + if !ok { + that2, ok := that.(Duration) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Seconds != that1.Seconds { + return false + } + if this.Nanos != that1.Nanos { + return false + } + return true +} +func (this *Duration) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.Duration{") + s = append(s, "Seconds: "+fmt.Sprintf("%#v", this.Seconds)+",\n") + s = append(s, "Nanos: "+fmt.Sprintf("%#v", this.Nanos)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringDuration(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Duration) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Duration) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Seconds != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintDuration(dAtA, i, uint64(m.Seconds)) + } + if m.Nanos != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintDuration(dAtA, i, uint64(m.Nanos)) + } + return i, nil +} + +func encodeFixed64Duration(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Duration(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintDuration(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Duration) Size() (n int) { + var l int + _ = l + if m.Seconds != 0 { + n += 1 + sovDuration(uint64(m.Seconds)) + } + if m.Nanos != 0 { + n += 1 + sovDuration(uint64(m.Nanos)) + } + return n +} + +func sovDuration(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozDuration(x uint64) (n int) { + return sovDuration(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Duration) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDuration + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Duration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Duration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seconds", wireType) + } + m.Seconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDuration + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seconds |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nanos", wireType) + } + m.Nanos = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDuration + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Nanos |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipDuration(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthDuration + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipDuration(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDuration + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDuration + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDuration + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthDuration + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowDuration + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipDuration(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthDuration = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowDuration = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("duration.proto", fileDescriptorDuration) } + +var fileDescriptorDuration = []byte{ + // 203 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0x29, 0x2d, 0x4a, + 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0x85, 0xf0, 0x92, 0x4a, 0xd3, 0x94, 0xac, 0xb8, 0x38, 0x5c, 0xa0, 0x4a, 0x84, 0x24, + 0xb8, 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, + 0x60, 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0x05, 0x46, 0x0d, + 0xd6, 0x20, 0x08, 0xc7, 0xa9, 0xfe, 0xc2, 0x43, 0x39, 0x86, 0x1b, 0x0f, 0xe5, 0x18, 0x3e, 0x3c, + 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, + 0x3c, 0x92, 0x63, 0x7c, 0xf1, 0x48, 0x8e, 0xe1, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe5, 0x18, + 0xb9, 0x84, 0x93, 0xf3, 0x73, 0xf5, 0xd0, 0xac, 0x76, 0xe2, 0x85, 0x59, 0x1c, 0x00, 0x12, 0x09, + 0x60, 0x8c, 0x62, 0x2d, 0xa9, 0x2c, 0x48, 0x2d, 0xfe, 0xc1, 0xc8, 0xb8, 0x88, 0x89, 0xd9, 0x3d, + 0xc0, 0x69, 0x15, 0x93, 0x9c, 0x3b, 0x44, 0x4b, 0x00, 0x54, 0x8b, 0x5e, 0x78, 0x6a, 0x4e, 0x8e, + 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x65, 0x12, 0x1b, 0xd8, 0x2c, 0x63, 0x40, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x9d, 0x5a, 0x25, 0xa5, 0xe6, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/duration_gogo.go b/vendor/github.com/gogo/protobuf/types/duration_gogo.go new file mode 100644 index 00000000..90e7670e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/duration_gogo.go @@ -0,0 +1,100 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "fmt" + "time" +) + +func NewPopulatedDuration(r interface { + Int63() int64 +}, easy bool) *Duration { + this := &Duration{} + maxSecs := time.Hour.Nanoseconds() / 1e9 + max := 2 * maxSecs + s := int64(r.Int63()) % max + s -= maxSecs + neg := int64(1) + if s < 0 { + neg = -1 + } + this.Seconds = s + this.Nanos = int32(neg * (r.Int63() % 1e9)) + return this +} + +func (d *Duration) String() string { + td, err := DurationFromProto(d) + if err != nil { + return fmt.Sprintf("(%v)", err) + } + return td.String() +} + +func NewPopulatedStdDuration(r interface { + Int63() int64 +}, easy bool) *time.Duration { + dur := NewPopulatedDuration(r, easy) + d, err := DurationFromProto(dur) + if err != nil { + return nil + } + return &d +} + +func SizeOfStdDuration(d time.Duration) int { + dur := DurationProto(d) + return dur.Size() +} + +func StdDurationMarshal(d time.Duration) ([]byte, error) { + size := SizeOfStdDuration(d) + buf := make([]byte, size) + _, err := StdDurationMarshalTo(d, buf) + return buf, err +} + +func StdDurationMarshalTo(d time.Duration, data []byte) (int, error) { + dur := DurationProto(d) + return dur.MarshalTo(data) +} + +func StdDurationUnmarshal(d *time.Duration, data []byte) error { + dur := &Duration{} + if err := dur.Unmarshal(data); err != nil { + return err + } + dd, err := DurationFromProto(dur) + if err != nil { + return err + } + *d = dd + return nil +} diff --git a/vendor/github.com/gogo/protobuf/types/duration_test.go b/vendor/github.com/gogo/protobuf/types/duration_test.go new file mode 100644 index 00000000..ce998dee --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/duration_test.go @@ -0,0 +1,120 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "math" + "testing" + "time" + + "github.com/gogo/protobuf/proto" +) + +const ( + minGoSeconds = math.MinInt64 / int64(1e9) + maxGoSeconds = math.MaxInt64 / int64(1e9) +) + +var durationTests = []struct { + proto *Duration + isValid bool + inRange bool + dur time.Duration +}{ + // The zero duration. + {&Duration{0, 0}, true, true, 0}, + // Some ordinary non-zero durations. + {&Duration{100, 0}, true, true, 100 * time.Second}, + {&Duration{-100, 0}, true, true, -100 * time.Second}, + {&Duration{100, 987}, true, true, 100*time.Second + 987}, + {&Duration{-100, -987}, true, true, -(100*time.Second + 987)}, + // The largest duration representable in Go. + {&Duration{maxGoSeconds, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, + // The smallest duration representable in Go. + {&Duration{minGoSeconds, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, + {nil, false, false, 0}, + {&Duration{-100, 987}, false, false, 0}, + {&Duration{100, -987}, false, false, 0}, + {&Duration{math.MinInt64, 0}, false, false, 0}, + {&Duration{math.MaxInt64, 0}, false, false, 0}, + // The largest valid duration. + {&Duration{maxSeconds, 1e9 - 1}, true, false, 0}, + // The smallest valid duration. + {&Duration{minSeconds, -(1e9 - 1)}, true, false, 0}, + // The smallest invalid duration above the valid range. + {&Duration{maxSeconds + 1, 0}, false, false, 0}, + // The largest invalid duration below the valid range. + {&Duration{minSeconds - 1, -(1e9 - 1)}, false, false, 0}, + // One nanosecond past the largest duration representable in Go. + {&Duration{maxGoSeconds, int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, + // One nanosecond past the smallest duration representable in Go. + {&Duration{minGoSeconds, int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, + // One second past the largest duration representable in Go. + {&Duration{maxGoSeconds + 1, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, + // One second past the smallest duration representable in Go. + {&Duration{minGoSeconds - 1, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, +} + +func TestValidateDuration(t *testing.T) { + for _, test := range durationTests { + err := validateDuration(test.proto) + gotValid := (err == nil) + if gotValid != test.isValid { + t.Errorf("validateDuration(%v) = %t, want %t", test.proto, gotValid, test.isValid) + } + } +} + +func TestDurationFromProto(t *testing.T) { + for _, test := range durationTests { + got, err := DurationFromProto(test.proto) + gotOK := (err == nil) + wantOK := test.isValid && test.inRange + if gotOK != wantOK { + t.Errorf("DurationFromProto(%v) ok = %t, want %t", test.proto, gotOK, wantOK) + } + if err == nil && got != test.dur { + t.Errorf("DurationFromProto(%v) = %v, want %v", test.proto, got, test.dur) + } + } +} + +func TestDurationProto(t *testing.T) { + for _, test := range durationTests { + if test.isValid && test.inRange { + got := DurationProto(test.dur) + if !proto.Equal(got, test.proto) { + t.Errorf("DurationProto(%v) = %v, want %v", test.dur, got, test.proto) + } + } + } +} diff --git a/vendor/github.com/gogo/protobuf/types/empty.pb.go b/vendor/github.com/gogo/protobuf/types/empty.pb.go new file mode 100644 index 00000000..4cfac132 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/empty.pb.go @@ -0,0 +1,457 @@ +// Code generated by protoc-gen-gogo. +// source: empty.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + empty.proto + +It has these top-level messages: + Empty +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +type Empty struct { +} + +func (m *Empty) Reset() { *m = Empty{} } +func (*Empty) ProtoMessage() {} +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptorEmpty, []int{0} } +func (*Empty) XXX_WellKnownType() string { return "Empty" } + +func init() { + proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") +} +func (this *Empty) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Empty) + if !ok { + that2, ok := that.(Empty) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + return 0 +} +func (this *Empty) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Empty) + if !ok { + that2, ok := that.(Empty) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + return true +} +func (this *Empty) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 4) + s = append(s, "&types.Empty{") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringEmpty(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Empty) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Empty) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + +func encodeFixed64Empty(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Empty(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintEmpty(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedEmpty(r randyEmpty, easy bool) *Empty { + this := &Empty{} + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyEmpty interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneEmpty(r randyEmpty) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringEmpty(r randyEmpty) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneEmpty(r) + } + return string(tmps) +} +func randUnrecognizedEmpty(r randyEmpty, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldEmpty(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldEmpty(dAtA []byte, r randyEmpty, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateEmpty(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateEmpty(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Empty) Size() (n int) { + var l int + _ = l + return n +} + +func sovEmpty(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozEmpty(x uint64) (n int) { + return sovEmpty(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Empty) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Empty{`, + `}`, + }, "") + return s +} +func valueToStringEmpty(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Empty) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEmpty + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Empty: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Empty: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipEmpty(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEmpty + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEmpty(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEmpty + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEmpty + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEmpty + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthEmpty + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEmpty + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipEmpty(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthEmpty = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEmpty = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("empty.proto", fileDescriptorEmpty) } + +var fileDescriptorEmpty = []byte{ + // 169 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0xcd, 0x2d, 0x28, + 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, 0xcf, 0x4f, 0xcf, 0x49, 0x85, + 0xf0, 0x92, 0x4a, 0xd3, 0x94, 0xd8, 0xb9, 0x58, 0x5d, 0x41, 0xf2, 0x4e, 0x2d, 0x8c, 0x17, 0x1e, + 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0xe3, 0x8f, 0x87, 0x72, 0x8c, 0x0d, + 0x8f, 0xe4, 0x18, 0x57, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, + 0x07, 0x8f, 0xe4, 0x18, 0x5f, 0x3c, 0x92, 0x63, 0xf8, 0x00, 0x12, 0x7f, 0x2c, 0xc7, 0xc8, 0x25, + 0x9c, 0x9c, 0x9f, 0xab, 0x87, 0x66, 0xa0, 0x13, 0x17, 0xd8, 0xb8, 0x00, 0x10, 0x37, 0x80, 0x31, + 0x8a, 0xb5, 0xa4, 0xb2, 0x20, 0xb5, 0xf8, 0x07, 0x23, 0xe3, 0x22, 0x26, 0x66, 0xf7, 0x00, 0xa7, + 0x55, 0x4c, 0x72, 0xee, 0x10, 0xf5, 0x01, 0x50, 0xf5, 0x7a, 0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, + 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x95, 0x49, 0x6c, 0x60, 0x83, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x7c, 0xa8, 0xf0, 0xc4, 0xb6, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go new file mode 100644 index 00000000..3bf0ff36 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go @@ -0,0 +1,738 @@ +// Code generated by protoc-gen-gogo. +// source: field_mask.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + field_mask.proto + +It has these top-level messages: + FieldMask +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// `FieldMask` represents a set of symbolic field paths, for example: +// +// paths: "f.a" +// paths: "f.b.d" +// +// Here `f` represents a field in some root message, `a` and `b` +// fields in the message found in `f`, and `d` a field found in the +// message in `f.b`. +// +// Field masks are used to specify a subset of fields that should be +// returned by a get operation or modified by an update operation. +// Field masks also have a custom JSON encoding (see below). +// +// # Field Masks in Projections +// +// When used in the context of a projection, a response message or +// sub-message is filtered by the API to only contain those fields as +// specified in the mask. For example, if the mask in the previous +// example is applied to a response message as follows: +// +// f { +// a : 22 +// b { +// d : 1 +// x : 2 +// } +// y : 13 +// } +// z: 8 +// +// The result will not contain specific values for fields x,y and z +// (their value will be set to the default, and omitted in proto text +// output): +// +// +// f { +// a : 22 +// b { +// d : 1 +// } +// } +// +// A repeated field is not allowed except at the last position of a +// paths string. +// +// If a FieldMask object is not present in a get operation, the +// operation applies to all fields (as if a FieldMask of all fields +// had been specified). +// +// Note that a field mask does not necessarily apply to the +// top-level response message. In case of a REST get operation, the +// field mask applies directly to the response, but in case of a REST +// list operation, the mask instead applies to each individual message +// in the returned resource list. In case of a REST custom method, +// other definitions may be used. Where the mask applies will be +// clearly documented together with its declaration in the API. In +// any case, the effect on the returned resource/resources is required +// behavior for APIs. +// +// # Field Masks in Update Operations +// +// A field mask in update operations specifies which fields of the +// targeted resource are going to be updated. The API is required +// to only change the values of the fields as specified in the mask +// and leave the others untouched. If a resource is passed in to +// describe the updated values, the API ignores the values of all +// fields not covered by the mask. +// +// If a repeated field is specified for an update operation, the existing +// repeated values in the target resource will be overwritten by the new values. +// Note that a repeated field is only allowed in the last position of a `paths` +// string. +// +// If a sub-message is specified in the last position of the field mask for an +// update operation, then the existing sub-message in the target resource is +// overwritten. Given the target message: +// +// f { +// b { +// d : 1 +// x : 2 +// } +// c : 1 +// } +// +// And an update message: +// +// f { +// b { +// d : 10 +// } +// } +// +// then if the field mask is: +// +// paths: "f.b" +// +// then the result will be: +// +// f { +// b { +// d : 10 +// } +// c : 1 +// } +// +// However, if the update mask was: +// +// paths: "f.b.d" +// +// then the result would be: +// +// f { +// b { +// d : 10 +// x : 2 +// } +// c : 1 +// } +// +// In order to reset a field's value to the default, the field must +// be in the mask and set to the default value in the provided resource. +// Hence, in order to reset all fields of a resource, provide a default +// instance of the resource and set all fields in the mask, or do +// not provide a mask as described below. +// +// If a field mask is not present on update, the operation applies to +// all fields (as if a field mask of all fields has been specified). +// Note that in the presence of schema evolution, this may mean that +// fields the client does not know and has therefore not filled into +// the request will be reset to their default. If this is unwanted +// behavior, a specific service may require a client to always specify +// a field mask, producing an error if not. +// +// As with get operations, the location of the resource which +// describes the updated values in the request message depends on the +// operation kind. In any case, the effect of the field mask is +// required to be honored by the API. +// +// ## Considerations for HTTP REST +// +// The HTTP kind of an update operation which uses a field mask must +// be set to PATCH instead of PUT in order to satisfy HTTP semantics +// (PUT must only be used for full updates). +// +// # JSON Encoding of Field Masks +// +// In JSON, a field mask is encoded as a single string where paths are +// separated by a comma. Fields name in each path are converted +// to/from lower-camel naming conventions. +// +// As an example, consider the following message declarations: +// +// message Profile { +// User user = 1; +// Photo photo = 2; +// } +// message User { +// string display_name = 1; +// string address = 2; +// } +// +// In proto a field mask for `Profile` may look as such: +// +// mask { +// paths: "user.display_name" +// paths: "photo" +// } +// +// In JSON, the same mask is represented as below: +// +// { +// mask: "user.displayName,photo" +// } +// +// # Field Masks and Oneof Fields +// +// Field masks treat fields in oneofs just as regular fields. Consider the +// following message: +// +// message SampleMessage { +// oneof test_oneof { +// string name = 4; +// SubMessage sub_message = 9; +// } +// } +// +// The field mask can be: +// +// mask { +// paths: "name" +// } +// +// Or: +// +// mask { +// paths: "sub_message" +// } +// +// Note that oneof type names ("test_oneof" in this case) cannot be used in +// paths. +type FieldMask struct { + // The set of field mask paths. + Paths []string `protobuf:"bytes,1,rep,name=paths" json:"paths,omitempty"` +} + +func (m *FieldMask) Reset() { *m = FieldMask{} } +func (*FieldMask) ProtoMessage() {} +func (*FieldMask) Descriptor() ([]byte, []int) { return fileDescriptorFieldMask, []int{0} } + +func (m *FieldMask) GetPaths() []string { + if m != nil { + return m.Paths + } + return nil +} + +func init() { + proto.RegisterType((*FieldMask)(nil), "google.protobuf.FieldMask") +} +func (this *FieldMask) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*FieldMask) + if !ok { + that2, ok := that.(FieldMask) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if len(this.Paths) != len(that1.Paths) { + if len(this.Paths) < len(that1.Paths) { + return -1 + } + return 1 + } + for i := range this.Paths { + if this.Paths[i] != that1.Paths[i] { + if this.Paths[i] < that1.Paths[i] { + return -1 + } + return 1 + } + } + return 0 +} +func (this *FieldMask) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FieldMask) + if !ok { + that2, ok := that.(FieldMask) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Paths) != len(that1.Paths) { + return false + } + for i := range this.Paths { + if this.Paths[i] != that1.Paths[i] { + return false + } + } + return true +} +func (this *FieldMask) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.FieldMask{") + s = append(s, "Paths: "+fmt.Sprintf("%#v", this.Paths)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringFieldMask(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *FieldMask) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldMask) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Paths) > 0 { + for _, s := range m.Paths { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func encodeFixed64FieldMask(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32FieldMask(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintFieldMask(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedFieldMask(r randyFieldMask, easy bool) *FieldMask { + this := &FieldMask{} + v1 := r.Intn(10) + this.Paths = make([]string, v1) + for i := 0; i < v1; i++ { + this.Paths[i] = string(randStringFieldMask(r)) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyFieldMask interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneFieldMask(r randyFieldMask) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringFieldMask(r randyFieldMask) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneFieldMask(r) + } + return string(tmps) +} +func randUnrecognizedFieldMask(r randyFieldMask, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldFieldMask(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldFieldMask(dAtA []byte, r randyFieldMask, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateFieldMask(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateFieldMask(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *FieldMask) Size() (n int) { + var l int + _ = l + if len(m.Paths) > 0 { + for _, s := range m.Paths { + l = len(s) + n += 1 + l + sovFieldMask(uint64(l)) + } + } + return n +} + +func sovFieldMask(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozFieldMask(x uint64) (n int) { + return sovFieldMask(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *FieldMask) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FieldMask{`, + `Paths:` + fmt.Sprintf("%v", this.Paths) + `,`, + `}`, + }, "") + return s +} +func valueToStringFieldMask(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *FieldMask) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFieldMask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldMask: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldMask: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Paths", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFieldMask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthFieldMask + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Paths = append(m.Paths, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipFieldMask(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthFieldMask + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipFieldMask(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowFieldMask + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowFieldMask + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowFieldMask + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthFieldMask + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowFieldMask + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipFieldMask(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthFieldMask = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowFieldMask = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("field_mask.proto", fileDescriptorFieldMask) } + +var fileDescriptorFieldMask = []byte{ + // 193 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcb, 0x4c, 0xcd, + 0x49, 0x89, 0xcf, 0x4d, 0x2c, 0xce, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, + 0xcf, 0x4f, 0xcf, 0x49, 0x85, 0xf0, 0x92, 0x4a, 0xd3, 0x94, 0x14, 0xb9, 0x38, 0xdd, 0x40, 0x8a, + 0x7c, 0x13, 0x8b, 0xb3, 0x85, 0x44, 0xb8, 0x58, 0x0b, 0x12, 0x4b, 0x32, 0x8a, 0x25, 0x18, 0x15, + 0x98, 0x35, 0x38, 0x83, 0x20, 0x1c, 0xa7, 0x56, 0xc6, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, + 0x63, 0xf8, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x1e, + 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, + 0x1e, 0xc9, 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0xe4, 0x12, 0x4e, 0xce, 0xcf, 0xd5, 0x43, + 0xb3, 0xca, 0x89, 0x0f, 0x6e, 0x51, 0x00, 0x48, 0x28, 0x80, 0x31, 0x8a, 0xb5, 0xa4, 0xb2, 0x20, + 0xb5, 0x78, 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x86, 0x00, 0xa8, + 0x06, 0xbd, 0xf0, 0xd4, 0x9c, 0x1c, 0xef, 0xbc, 0xfc, 0xf2, 0xbc, 0x10, 0x90, 0xb2, 0x24, 0x36, + 0xb0, 0x49, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x51, 0x31, 0x89, 0xb5, 0xd6, 0x00, 0x00, + 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/struct.pb.go b/vendor/github.com/gogo/protobuf/types/struct.pb.go new file mode 100644 index 00000000..366ea48e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/struct.pb.go @@ -0,0 +1,1888 @@ +// Code generated by protoc-gen-gogo. +// source: struct.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + struct.proto + + It has these top-level messages: + Struct + Value + ListValue +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strconv "strconv" + +import strings "strings" +import reflect "reflect" +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +type NullValue int32 + +const ( + // Null value. + NULL_VALUE NullValue = 0 +) + +var NullValue_name = map[int32]string{ + 0: "NULL_VALUE", +} +var NullValue_value = map[string]int32{ + "NULL_VALUE": 0, +} + +func (NullValue) EnumDescriptor() ([]byte, []int) { return fileDescriptorStruct, []int{0} } +func (NullValue) XXX_WellKnownType() string { return "NullValue" } + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +type Struct struct { + // Unordered map of dynamically typed values. + Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *Struct) Reset() { *m = Struct{} } +func (*Struct) ProtoMessage() {} +func (*Struct) Descriptor() ([]byte, []int) { return fileDescriptorStruct, []int{0} } +func (*Struct) XXX_WellKnownType() string { return "Struct" } + +func (m *Struct) GetFields() map[string]*Value { + if m != nil { + return m.Fields + } + return nil +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +type Value struct { + // The kind of value. + // + // Types that are valid to be assigned to Kind: + // *Value_NullValue + // *Value_NumberValue + // *Value_StringValue + // *Value_BoolValue + // *Value_StructValue + // *Value_ListValue + Kind isValue_Kind `protobuf_oneof:"kind"` +} + +func (m *Value) Reset() { *m = Value{} } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { return fileDescriptorStruct, []int{1} } +func (*Value) XXX_WellKnownType() string { return "Value" } + +type isValue_Kind interface { + isValue_Kind() + Equal(interface{}) bool + MarshalTo([]byte) (int, error) + Size() int +} + +type Value_NullValue struct { + NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` +} +type Value_NumberValue struct { + NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"` +} +type Value_StringValue struct { + StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` +} +type Value_BoolValue struct { + BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"` +} +type Value_StructValue struct { + StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,oneof"` +} +type Value_ListValue struct { + ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,oneof"` +} + +func (*Value_NullValue) isValue_Kind() {} +func (*Value_NumberValue) isValue_Kind() {} +func (*Value_StringValue) isValue_Kind() {} +func (*Value_BoolValue) isValue_Kind() {} +func (*Value_StructValue) isValue_Kind() {} +func (*Value_ListValue) isValue_Kind() {} + +func (m *Value) GetKind() isValue_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (m *Value) GetNullValue() NullValue { + if x, ok := m.GetKind().(*Value_NullValue); ok { + return x.NullValue + } + return NULL_VALUE +} + +func (m *Value) GetNumberValue() float64 { + if x, ok := m.GetKind().(*Value_NumberValue); ok { + return x.NumberValue + } + return 0 +} + +func (m *Value) GetStringValue() string { + if x, ok := m.GetKind().(*Value_StringValue); ok { + return x.StringValue + } + return "" +} + +func (m *Value) GetBoolValue() bool { + if x, ok := m.GetKind().(*Value_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (m *Value) GetStructValue() *Struct { + if x, ok := m.GetKind().(*Value_StructValue); ok { + return x.StructValue + } + return nil +} + +func (m *Value) GetListValue() *ListValue { + if x, ok := m.GetKind().(*Value_ListValue); ok { + return x.ListValue + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Value) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Value_OneofMarshaler, _Value_OneofUnmarshaler, _Value_OneofSizer, []interface{}{ + (*Value_NullValue)(nil), + (*Value_NumberValue)(nil), + (*Value_StringValue)(nil), + (*Value_BoolValue)(nil), + (*Value_StructValue)(nil), + (*Value_ListValue)(nil), + } +} + +func _Value_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Value) + // kind + switch x := m.Kind.(type) { + case *Value_NullValue: + _ = b.EncodeVarint(1<<3 | proto.WireVarint) + _ = b.EncodeVarint(uint64(x.NullValue)) + case *Value_NumberValue: + _ = b.EncodeVarint(2<<3 | proto.WireFixed64) + _ = b.EncodeFixed64(math.Float64bits(x.NumberValue)) + case *Value_StringValue: + _ = b.EncodeVarint(3<<3 | proto.WireBytes) + _ = b.EncodeStringBytes(x.StringValue) + case *Value_BoolValue: + t := uint64(0) + if x.BoolValue { + t = 1 + } + _ = b.EncodeVarint(4<<3 | proto.WireVarint) + _ = b.EncodeVarint(t) + case *Value_StructValue: + _ = b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.StructValue); err != nil { + return err + } + case *Value_ListValue: + _ = b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListValue); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Value.Kind has unexpected type %T", x) + } + return nil +} + +func _Value_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Value) + switch tag { + case 1: // kind.null_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Kind = &Value_NullValue{NullValue(x)} + return true, err + case 2: // kind.number_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Kind = &Value_NumberValue{math.Float64frombits(x)} + return true, err + case 3: // kind.string_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Kind = &Value_StringValue{x} + return true, err + case 4: // kind.bool_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Kind = &Value_BoolValue{x != 0} + return true, err + case 5: // kind.struct_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Struct) + err := b.DecodeMessage(msg) + m.Kind = &Value_StructValue{msg} + return true, err + case 6: // kind.list_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ListValue) + err := b.DecodeMessage(msg) + m.Kind = &Value_ListValue{msg} + return true, err + default: + return false, nil + } +} + +func _Value_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Value) + // kind + switch x := m.Kind.(type) { + case *Value_NullValue: + n += proto.SizeVarint(1<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.NullValue)) + case *Value_NumberValue: + n += proto.SizeVarint(2<<3 | proto.WireFixed64) + n += 8 + case *Value_StringValue: + n += proto.SizeVarint(3<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.StringValue))) + n += len(x.StringValue) + case *Value_BoolValue: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += 1 + case *Value_StructValue: + s := proto.Size(x.StructValue) + n += proto.SizeVarint(5<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Value_ListValue: + s := proto.Size(x.ListValue) + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +type ListValue struct { + // Repeated field of dynamically typed values. + Values []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"` +} + +func (m *ListValue) Reset() { *m = ListValue{} } +func (*ListValue) ProtoMessage() {} +func (*ListValue) Descriptor() ([]byte, []int) { return fileDescriptorStruct, []int{2} } +func (*ListValue) XXX_WellKnownType() string { return "ListValue" } + +func (m *ListValue) GetValues() []*Value { + if m != nil { + return m.Values + } + return nil +} + +func init() { + proto.RegisterType((*Struct)(nil), "google.protobuf.Struct") + proto.RegisterType((*Value)(nil), "google.protobuf.Value") + proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue") + proto.RegisterEnum("google.protobuf.NullValue", NullValue_name, NullValue_value) +} +func (x NullValue) String() string { + s, ok := NullValue_name[int32(x)] + if ok { + return s + } + return strconv.Itoa(int(x)) +} +func (this *Struct) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Struct) + if !ok { + that2, ok := that.(Struct) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Fields) != len(that1.Fields) { + return false + } + for i := range this.Fields { + if !this.Fields[i].Equal(that1.Fields[i]) { + return false + } + } + return true +} +func (this *Value) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value) + if !ok { + that2, ok := that.(Value) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Kind == nil { + if this.Kind != nil { + return false + } + } else if this.Kind == nil { + return false + } else if !this.Kind.Equal(that1.Kind) { + return false + } + return true +} +func (this *Value_NullValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_NullValue) + if !ok { + that2, ok := that.(Value_NullValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.NullValue != that1.NullValue { + return false + } + return true +} +func (this *Value_NumberValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_NumberValue) + if !ok { + that2, ok := that.(Value_NumberValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.NumberValue != that1.NumberValue { + return false + } + return true +} +func (this *Value_StringValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_StringValue) + if !ok { + that2, ok := that.(Value_StringValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.StringValue != that1.StringValue { + return false + } + return true +} +func (this *Value_BoolValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_BoolValue) + if !ok { + that2, ok := that.(Value_BoolValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.BoolValue != that1.BoolValue { + return false + } + return true +} +func (this *Value_StructValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_StructValue) + if !ok { + that2, ok := that.(Value_StructValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.StructValue.Equal(that1.StructValue) { + return false + } + return true +} +func (this *Value_ListValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Value_ListValue) + if !ok { + that2, ok := that.(Value_ListValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.ListValue.Equal(that1.ListValue) { + return false + } + return true +} +func (this *ListValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*ListValue) + if !ok { + that2, ok := that.(ListValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Values) != len(that1.Values) { + return false + } + for i := range this.Values { + if !this.Values[i].Equal(that1.Values[i]) { + return false + } + } + return true +} +func (this *Struct) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.Struct{") + keysForFields := make([]string, 0, len(this.Fields)) + for k := range this.Fields { + keysForFields = append(keysForFields, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFields) + mapStringForFields := "map[string]*Value{" + for _, k := range keysForFields { + mapStringForFields += fmt.Sprintf("%#v: %#v,", k, this.Fields[k]) + } + mapStringForFields += "}" + if this.Fields != nil { + s = append(s, "Fields: "+mapStringForFields+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Value) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 10) + s = append(s, "&types.Value{") + if this.Kind != nil { + s = append(s, "Kind: "+fmt.Sprintf("%#v", this.Kind)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Value_NullValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_NullValue{` + + `NullValue:` + fmt.Sprintf("%#v", this.NullValue) + `}`}, ", ") + return s +} +func (this *Value_NumberValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_NumberValue{` + + `NumberValue:` + fmt.Sprintf("%#v", this.NumberValue) + `}`}, ", ") + return s +} +func (this *Value_StringValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_StringValue{` + + `StringValue:` + fmt.Sprintf("%#v", this.StringValue) + `}`}, ", ") + return s +} +func (this *Value_BoolValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_BoolValue{` + + `BoolValue:` + fmt.Sprintf("%#v", this.BoolValue) + `}`}, ", ") + return s +} +func (this *Value_StructValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_StructValue{` + + `StructValue:` + fmt.Sprintf("%#v", this.StructValue) + `}`}, ", ") + return s +} +func (this *Value_ListValue) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&types.Value_ListValue{` + + `ListValue:` + fmt.Sprintf("%#v", this.ListValue) + `}`}, ", ") + return s +} +func (this *ListValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.ListValue{") + if this.Values != nil { + s = append(s, "Values: "+fmt.Sprintf("%#v", this.Values)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringStruct(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Struct) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Struct) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Fields) > 0 { + for k := range m.Fields { + dAtA[i] = 0xa + i++ + v := m.Fields[k] + msgSize := 0 + if v != nil { + msgSize = v.Size() + msgSize += 1 + sovStruct(uint64(msgSize)) + } + mapSize := 1 + len(k) + sovStruct(uint64(len(k))) + msgSize + i = encodeVarintStruct(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintStruct(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + if v != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintStruct(dAtA, i, uint64(v.Size())) + n1, err := v.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + } + } + } + return i, nil +} + +func (m *Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Value) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Kind != nil { + nn2, err := m.Kind.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn2 + } + return i, nil +} + +func (m *Value_NullValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x8 + i++ + i = encodeVarintStruct(dAtA, i, uint64(m.NullValue)) + return i, nil +} +func (m *Value_NumberValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x11 + i++ + i = encodeFixed64Struct(dAtA, i, uint64(math.Float64bits(float64(m.NumberValue)))) + return i, nil +} +func (m *Value_StringValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x1a + i++ + i = encodeVarintStruct(dAtA, i, uint64(len(m.StringValue))) + i += copy(dAtA[i:], m.StringValue) + return i, nil +} +func (m *Value_BoolValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x20 + i++ + if m.BoolValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} +func (m *Value_StructValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.StructValue != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintStruct(dAtA, i, uint64(m.StructValue.Size())) + n3, err := m.StructValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + } + return i, nil +} +func (m *Value_ListValue) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.ListValue != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintStruct(dAtA, i, uint64(m.ListValue.Size())) + n4, err := m.ListValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + return i, nil +} +func (m *ListValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Values) > 0 { + for _, msg := range m.Values { + dAtA[i] = 0xa + i++ + i = encodeVarintStruct(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func encodeFixed64Struct(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Struct(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintStruct(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedStruct(r randyStruct, easy bool) *Struct { + this := &Struct{} + if r.Intn(10) == 0 { + v1 := r.Intn(10) + this.Fields = make(map[string]*Value) + for i := 0; i < v1; i++ { + this.Fields[randStringStruct(r)] = NewPopulatedValue(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedValue(r randyStruct, easy bool) *Value { + this := &Value{} + oneofNumber_Kind := []int32{1, 2, 3, 4, 5, 6}[r.Intn(6)] + switch oneofNumber_Kind { + case 1: + this.Kind = NewPopulatedValue_NullValue(r, easy) + case 2: + this.Kind = NewPopulatedValue_NumberValue(r, easy) + case 3: + this.Kind = NewPopulatedValue_StringValue(r, easy) + case 4: + this.Kind = NewPopulatedValue_BoolValue(r, easy) + case 5: + this.Kind = NewPopulatedValue_StructValue(r, easy) + case 6: + this.Kind = NewPopulatedValue_ListValue(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedValue_NullValue(r randyStruct, easy bool) *Value_NullValue { + this := &Value_NullValue{} + this.NullValue = NullValue([]int32{0}[r.Intn(1)]) + return this +} +func NewPopulatedValue_NumberValue(r randyStruct, easy bool) *Value_NumberValue { + this := &Value_NumberValue{} + this.NumberValue = float64(r.Float64()) + if r.Intn(2) == 0 { + this.NumberValue *= -1 + } + return this +} +func NewPopulatedValue_StringValue(r randyStruct, easy bool) *Value_StringValue { + this := &Value_StringValue{} + this.StringValue = string(randStringStruct(r)) + return this +} +func NewPopulatedValue_BoolValue(r randyStruct, easy bool) *Value_BoolValue { + this := &Value_BoolValue{} + this.BoolValue = bool(bool(r.Intn(2) == 0)) + return this +} +func NewPopulatedValue_StructValue(r randyStruct, easy bool) *Value_StructValue { + this := &Value_StructValue{} + this.StructValue = NewPopulatedStruct(r, easy) + return this +} +func NewPopulatedValue_ListValue(r randyStruct, easy bool) *Value_ListValue { + this := &Value_ListValue{} + this.ListValue = NewPopulatedListValue(r, easy) + return this +} +func NewPopulatedListValue(r randyStruct, easy bool) *ListValue { + this := &ListValue{} + if r.Intn(10) == 0 { + v2 := r.Intn(5) + this.Values = make([]*Value, v2) + for i := 0; i < v2; i++ { + this.Values[i] = NewPopulatedValue(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyStruct interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneStruct(r randyStruct) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringStruct(r randyStruct) string { + v3 := r.Intn(100) + tmps := make([]rune, v3) + for i := 0; i < v3; i++ { + tmps[i] = randUTF8RuneStruct(r) + } + return string(tmps) +} +func randUnrecognizedStruct(r randyStruct, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldStruct(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldStruct(dAtA []byte, r randyStruct, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateStruct(dAtA, uint64(key)) + v4 := r.Int63() + if r.Intn(2) == 0 { + v4 *= -1 + } + dAtA = encodeVarintPopulateStruct(dAtA, uint64(v4)) + case 1: + dAtA = encodeVarintPopulateStruct(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateStruct(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateStruct(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateStruct(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateStruct(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Struct) Size() (n int) { + var l int + _ = l + if len(m.Fields) > 0 { + for k, v := range m.Fields { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovStruct(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovStruct(uint64(len(k))) + l + n += mapEntrySize + 1 + sovStruct(uint64(mapEntrySize)) + } + } + return n +} + +func (m *Value) Size() (n int) { + var l int + _ = l + if m.Kind != nil { + n += m.Kind.Size() + } + return n +} + +func (m *Value_NullValue) Size() (n int) { + var l int + _ = l + n += 1 + sovStruct(uint64(m.NullValue)) + return n +} +func (m *Value_NumberValue) Size() (n int) { + var l int + _ = l + n += 9 + return n +} +func (m *Value_StringValue) Size() (n int) { + var l int + _ = l + l = len(m.StringValue) + n += 1 + l + sovStruct(uint64(l)) + return n +} +func (m *Value_BoolValue) Size() (n int) { + var l int + _ = l + n += 2 + return n +} +func (m *Value_StructValue) Size() (n int) { + var l int + _ = l + if m.StructValue != nil { + l = m.StructValue.Size() + n += 1 + l + sovStruct(uint64(l)) + } + return n +} +func (m *Value_ListValue) Size() (n int) { + var l int + _ = l + if m.ListValue != nil { + l = m.ListValue.Size() + n += 1 + l + sovStruct(uint64(l)) + } + return n +} +func (m *ListValue) Size() (n int) { + var l int + _ = l + if len(m.Values) > 0 { + for _, e := range m.Values { + l = e.Size() + n += 1 + l + sovStruct(uint64(l)) + } + } + return n +} + +func sovStruct(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozStruct(x uint64) (n int) { + return sovStruct(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Struct) String() string { + if this == nil { + return "nil" + } + keysForFields := make([]string, 0, len(this.Fields)) + for k := range this.Fields { + keysForFields = append(keysForFields, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFields) + mapStringForFields := "map[string]*Value{" + for _, k := range keysForFields { + mapStringForFields += fmt.Sprintf("%v: %v,", k, this.Fields[k]) + } + mapStringForFields += "}" + s := strings.Join([]string{`&Struct{`, + `Fields:` + mapStringForFields + `,`, + `}`, + }, "") + return s +} +func (this *Value) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `}`, + }, "") + return s +} +func (this *Value_NullValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_NullValue{`, + `NullValue:` + fmt.Sprintf("%v", this.NullValue) + `,`, + `}`, + }, "") + return s +} +func (this *Value_NumberValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_NumberValue{`, + `NumberValue:` + fmt.Sprintf("%v", this.NumberValue) + `,`, + `}`, + }, "") + return s +} +func (this *Value_StringValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_StringValue{`, + `StringValue:` + fmt.Sprintf("%v", this.StringValue) + `,`, + `}`, + }, "") + return s +} +func (this *Value_BoolValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_BoolValue{`, + `BoolValue:` + fmt.Sprintf("%v", this.BoolValue) + `,`, + `}`, + }, "") + return s +} +func (this *Value_StructValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_StructValue{`, + `StructValue:` + strings.Replace(fmt.Sprintf("%v", this.StructValue), "Struct", "Struct", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Value_ListValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Value_ListValue{`, + `ListValue:` + strings.Replace(fmt.Sprintf("%v", this.ListValue), "ListValue", "ListValue", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ListValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ListValue{`, + `Values:` + strings.Replace(fmt.Sprintf("%v", this.Values), "Value", "Value", 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringStruct(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Struct) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Struct: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Struct: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStruct + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthStruct + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Fields == nil { + m.Fields = make(map[string]*Value) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthStruct + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthStruct + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue := &Value{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + m.Fields[mapkey] = mapvalue + } else { + var mapvalue *Value + m.Fields[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStruct(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthStruct + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NullValue", wireType) + } + var v NullValue + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (NullValue(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Kind = &Value_NullValue{v} + case 2: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberValue", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Kind = &Value_NumberValue{float64(math.Float64frombits(v))} + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthStruct + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = &Value_StringValue{string(dAtA[iNdEx:postIndex])} + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BoolValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Kind = &Value_BoolValue{b} + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StructValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStruct + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &Struct{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Kind = &Value_StructValue{v} + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStruct + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ListValue{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Kind = &Value_ListValue{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStruct(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthStruct + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStruct + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Values = append(m.Values, &Value{}) + if err := m.Values[len(m.Values)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStruct(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthStruct + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipStruct(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStruct + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStruct + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStruct + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthStruct + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowStruct + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipStruct(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthStruct = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowStruct = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("struct.proto", fileDescriptorStruct) } + +var fileDescriptorStruct = []byte{ + // 432 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xb1, 0x6f, 0xd3, 0x40, + 0x14, 0xc6, 0xfd, 0x9c, 0xc6, 0x22, 0xcf, 0x55, 0xa9, 0x0e, 0x09, 0xa2, 0x22, 0x1d, 0x51, 0xba, + 0x58, 0x08, 0x79, 0x08, 0x0b, 0x22, 0x2c, 0x58, 0x2a, 0xad, 0x84, 0x55, 0x19, 0x43, 0x8b, 0xc4, + 0x12, 0xe1, 0xd4, 0x8d, 0xac, 0x5e, 0xef, 0x2a, 0xfb, 0x0c, 0xca, 0x06, 0xff, 0x05, 0x33, 0x13, + 0x62, 0xe4, 0xaf, 0x60, 0xec, 0xc8, 0x88, 0x3d, 0x31, 0x76, 0xec, 0x88, 0xee, 0xce, 0x36, 0xa8, + 0x51, 0x36, 0xbf, 0xcf, 0xbf, 0xf7, 0xbd, 0xf7, 0xbd, 0xc3, 0xcd, 0x42, 0xe6, 0xe5, 0x5c, 0xfa, + 0x17, 0xb9, 0x90, 0x82, 0xdc, 0x5e, 0x08, 0xb1, 0x60, 0xa9, 0xa9, 0x92, 0xf2, 0x74, 0xfc, 0x05, + 0xd0, 0x79, 0xad, 0x09, 0x32, 0x45, 0xe7, 0x34, 0x4b, 0xd9, 0x49, 0x31, 0x84, 0x51, 0xcf, 0x73, + 0x27, 0xbb, 0xfe, 0x0d, 0xd8, 0x37, 0xa0, 0xff, 0x42, 0x53, 0x7b, 0x5c, 0xe6, 0xcb, 0xb8, 0x69, + 0xd9, 0x79, 0x85, 0xee, 0x7f, 0x32, 0xd9, 0xc6, 0xde, 0x59, 0xba, 0x1c, 0xc2, 0x08, 0xbc, 0x41, + 0xac, 0x3e, 0xc9, 0x23, 0xec, 0x7f, 0x78, 0xcf, 0xca, 0x74, 0x68, 0x8f, 0xc0, 0x73, 0x27, 0x77, + 0x57, 0xcc, 0x8f, 0xd5, 0xdf, 0xd8, 0x40, 0x4f, 0xed, 0x27, 0x30, 0xfe, 0x61, 0x63, 0x5f, 0x8b, + 0x64, 0x8a, 0xc8, 0x4b, 0xc6, 0x66, 0xc6, 0x40, 0x99, 0x6e, 0x4d, 0x76, 0x56, 0x0c, 0x0e, 0x4b, + 0xc6, 0x34, 0x7f, 0x60, 0xc5, 0x03, 0xde, 0x16, 0x64, 0x17, 0x37, 0x79, 0x79, 0x9e, 0xa4, 0xf9, + 0xec, 0xdf, 0x7c, 0x38, 0xb0, 0x62, 0xd7, 0xa8, 0x1d, 0x54, 0xc8, 0x3c, 0xe3, 0x8b, 0x06, 0xea, + 0xa9, 0xc5, 0x15, 0x64, 0x54, 0x03, 0x3d, 0x40, 0x4c, 0x84, 0x68, 0xd7, 0xd8, 0x18, 0x81, 0x77, + 0x4b, 0x8d, 0x52, 0x9a, 0x01, 0x9e, 0xb5, 0xd7, 0x6e, 0x90, 0xbe, 0x8e, 0x7a, 0x6f, 0xcd, 0x1d, + 0x1b, 0xfb, 0x72, 0x2e, 0xbb, 0x94, 0x2c, 0x2b, 0xda, 0x5e, 0x47, 0xf7, 0xae, 0xa6, 0x0c, 0xb3, + 0x42, 0x76, 0x29, 0x59, 0x5b, 0x04, 0x0e, 0x6e, 0x9c, 0x65, 0xfc, 0x64, 0x3c, 0xc5, 0x41, 0x47, + 0x10, 0x1f, 0x1d, 0x6d, 0xd6, 0xbe, 0xe8, 0xba, 0xa3, 0x37, 0xd4, 0xc3, 0xfb, 0x38, 0xe8, 0x8e, + 0x48, 0xb6, 0x10, 0x0f, 0x8f, 0xc2, 0x70, 0x76, 0xfc, 0x3c, 0x3c, 0xda, 0xdb, 0xb6, 0x82, 0xcf, + 0x70, 0x59, 0x51, 0xeb, 0x57, 0x45, 0xad, 0xab, 0x8a, 0xc2, 0x75, 0x45, 0xe1, 0x53, 0x4d, 0xe1, + 0x5b, 0x4d, 0xe1, 0x67, 0x4d, 0xe1, 0xb2, 0xa6, 0xf0, 0xbb, 0xa6, 0xf0, 0xa7, 0xa6, 0xd6, 0x55, + 0x4d, 0x01, 0xef, 0xcc, 0xc5, 0xf9, 0xcd, 0x71, 0x81, 0x6b, 0x92, 0x47, 0xaa, 0x8e, 0xe0, 0x5d, + 0x5f, 0x2e, 0x2f, 0xd2, 0xe2, 0x1a, 0xe0, 0xab, 0xdd, 0xdb, 0x8f, 0x82, 0xef, 0x36, 0xdd, 0x37, + 0x0d, 0x51, 0xbb, 0xdf, 0xdb, 0x94, 0xb1, 0x97, 0x5c, 0x7c, 0xe4, 0x6f, 0x14, 0x99, 0x38, 0xda, + 0xe9, 0xf1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x75, 0xc5, 0x1c, 0x3b, 0xd5, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.go b/vendor/github.com/gogo/protobuf/types/timestamp.go new file mode 100644 index 00000000..521b62d9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/timestamp.go @@ -0,0 +1,123 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *Timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %#v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %#v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %#v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func TimestampFromProto(ts *Timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func TimestampProto(t time.Time) (*Timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := &Timestamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} + +// TimestampString returns the RFC 3339 string for valid Timestamps. For invalid +// Timestamps, it returns an error message in parentheses. +func TimestampString(ts *Timestamp) string { + t, err := TimestampFromProto(ts) + if err != nil { + return fmt.Sprintf("(%v)", err) + } + return t.Format(time.RFC3339Nano) +} diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go new file mode 100644 index 00000000..8c705a3a --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go @@ -0,0 +1,504 @@ +// Code generated by protoc-gen-gogo. +// source: timestamp.proto +// DO NOT EDIT! + +/* + Package types is a generated protocol buffer package. + + It is generated from these files: + timestamp.proto + + It has these top-level messages: + Timestamp +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// +type Timestamp struct { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *Timestamp) Reset() { *m = Timestamp{} } +func (*Timestamp) ProtoMessage() {} +func (*Timestamp) Descriptor() ([]byte, []int) { return fileDescriptorTimestamp, []int{0} } +func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" } + +func (m *Timestamp) GetSeconds() int64 { + if m != nil { + return m.Seconds + } + return 0 +} + +func (m *Timestamp) GetNanos() int32 { + if m != nil { + return m.Nanos + } + return 0 +} + +func init() { + proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") +} +func (this *Timestamp) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Timestamp) + if !ok { + that2, ok := that.(Timestamp) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Seconds != that1.Seconds { + if this.Seconds < that1.Seconds { + return -1 + } + return 1 + } + if this.Nanos != that1.Nanos { + if this.Nanos < that1.Nanos { + return -1 + } + return 1 + } + return 0 +} +func (this *Timestamp) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Timestamp) + if !ok { + that2, ok := that.(Timestamp) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Seconds != that1.Seconds { + return false + } + if this.Nanos != that1.Nanos { + return false + } + return true +} +func (this *Timestamp) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&types.Timestamp{") + s = append(s, "Seconds: "+fmt.Sprintf("%#v", this.Seconds)+",\n") + s = append(s, "Nanos: "+fmt.Sprintf("%#v", this.Nanos)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringTimestamp(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Timestamp) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Timestamp) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Seconds != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintTimestamp(dAtA, i, uint64(m.Seconds)) + } + if m.Nanos != 0 { + dAtA[i] = 0x10 + i++ + i = encodeVarintTimestamp(dAtA, i, uint64(m.Nanos)) + } + return i, nil +} + +func encodeFixed64Timestamp(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Timestamp(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintTimestamp(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Timestamp) Size() (n int) { + var l int + _ = l + if m.Seconds != 0 { + n += 1 + sovTimestamp(uint64(m.Seconds)) + } + if m.Nanos != 0 { + n += 1 + sovTimestamp(uint64(m.Nanos)) + } + return n +} + +func sovTimestamp(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTimestamp(x uint64) (n int) { + return sovTimestamp(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Timestamp) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTimestamp + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Timestamp: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Timestamp: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seconds", wireType) + } + m.Seconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTimestamp + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seconds |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nanos", wireType) + } + m.Nanos = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTimestamp + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Nanos |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTimestamp(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTimestamp + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTimestamp(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimestamp + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimestamp + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimestamp + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthTimestamp + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTimestamp + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipTimestamp(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthTimestamp = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTimestamp = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("timestamp.proto", fileDescriptorTimestamp) } + +var fileDescriptorTimestamp = []byte{ + // 205 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0xc9, 0xcc, 0x4d, + 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, 0xcf, + 0x4f, 0xcf, 0x49, 0x85, 0xf0, 0x92, 0x4a, 0xd3, 0x94, 0xac, 0xb9, 0x38, 0x43, 0x60, 0x6a, 0x84, + 0x24, 0xb8, 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, + 0x83, 0x60, 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0x05, 0x46, + 0x0d, 0xd6, 0x20, 0x08, 0xc7, 0xa9, 0x81, 0xf1, 0xc2, 0x43, 0x39, 0x86, 0x1b, 0x0f, 0xe5, 0x18, + 0x3e, 0x3c, 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, + 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x7c, 0xf1, 0x48, 0x8e, 0xe1, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, + 0xe5, 0x18, 0xb9, 0x84, 0x93, 0xf3, 0x73, 0xf5, 0xd0, 0x2c, 0x77, 0xe2, 0x83, 0x5b, 0x1d, 0x00, + 0x12, 0x0a, 0x60, 0x8c, 0x62, 0x2d, 0xa9, 0x2c, 0x48, 0x2d, 0xfe, 0xc1, 0xc8, 0xb8, 0x88, 0x89, + 0xd9, 0x3d, 0xc0, 0x69, 0x15, 0x93, 0x9c, 0x3b, 0x44, 0x4f, 0x00, 0x54, 0x8f, 0x5e, 0x78, 0x6a, + 0x4e, 0x8e, 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x65, 0x12, 0x1b, 0xd8, 0x30, 0x63, 0x40, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xa2, 0x42, 0xda, 0xea, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/types/timestamp_gogo.go b/vendor/github.com/gogo/protobuf/types/timestamp_gogo.go new file mode 100644 index 00000000..e03fa131 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/timestamp_gogo.go @@ -0,0 +1,94 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "time" +) + +func NewPopulatedTimestamp(r interface { + Int63() int64 +}, easy bool) *Timestamp { + this := &Timestamp{} + ns := int64(r.Int63()) + this.Seconds = ns / 1e9 + this.Nanos = int32(ns % 1e9) + return this +} + +func (ts *Timestamp) String() string { + return TimestampString(ts) +} + +func NewPopulatedStdTime(r interface { + Int63() int64 +}, easy bool) *time.Time { + timestamp := NewPopulatedTimestamp(r, easy) + t, err := TimestampFromProto(timestamp) + if err != nil { + return nil + } + return &t +} + +func SizeOfStdTime(t time.Time) int { + ts, err := TimestampProto(t) + if err != nil { + return 0 + } + return ts.Size() +} + +func StdTimeMarshal(t time.Time) ([]byte, error) { + size := SizeOfStdTime(t) + buf := make([]byte, size) + _, err := StdTimeMarshalTo(t, buf) + return buf, err +} + +func StdTimeMarshalTo(t time.Time, data []byte) (int, error) { + ts, err := TimestampProto(t) + if err != nil { + return 0, err + } + return ts.MarshalTo(data) +} + +func StdTimeUnmarshal(t *time.Time, data []byte) error { + ts := &Timestamp{} + if err := ts.Unmarshal(data); err != nil { + return err + } + tt, err := TimestampFromProto(ts) + if err != nil { + return err + } + *t = tt + return nil +} diff --git a/vendor/github.com/gogo/protobuf/types/timestamp_test.go b/vendor/github.com/gogo/protobuf/types/timestamp_test.go new file mode 100644 index 00000000..782de92f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/timestamp_test.go @@ -0,0 +1,137 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package types + +import ( + "math" + "testing" + "time" + + "github.com/gogo/protobuf/proto" +) + +var tests = []struct { + ts *Timestamp + valid bool + t time.Time +}{ + // The timestamp representing the Unix epoch date. + {&Timestamp{0, 0}, true, utcDate(1970, 1, 1)}, + // The smallest representable timestamp. + {&Timestamp{math.MinInt64, math.MinInt32}, false, + time.Unix(math.MinInt64, math.MinInt32).UTC()}, + // The smallest representable timestamp with non-negative nanos. + {&Timestamp{math.MinInt64, 0}, false, time.Unix(math.MinInt64, 0).UTC()}, + // The earliest valid timestamp. + {&Timestamp{minValidSeconds, 0}, true, utcDate(1, 1, 1)}, + //"0001-01-01T00:00:00Z"}, + // The largest representable timestamp. + {&Timestamp{math.MaxInt64, math.MaxInt32}, false, + time.Unix(math.MaxInt64, math.MaxInt32).UTC()}, + // The largest representable timestamp with nanos in range. + {&Timestamp{math.MaxInt64, 1e9 - 1}, false, + time.Unix(math.MaxInt64, 1e9-1).UTC()}, + // The largest valid timestamp. + {&Timestamp{maxValidSeconds - 1, 1e9 - 1}, true, + time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC)}, + // The smallest invalid timestamp that is larger than the valid range. + {&Timestamp{maxValidSeconds, 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, + // A date before the epoch. + {&Timestamp{-281836800, 0}, true, utcDate(1961, 1, 26)}, + // A date after the epoch. + {&Timestamp{1296000000, 0}, true, utcDate(2011, 1, 26)}, + // A date after the epoch, in the middle of the day. + {&Timestamp{1296012345, 940483}, true, + time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC)}, +} + +func TestValidateTimestamp(t *testing.T) { + for _, s := range tests { + got := validateTimestamp(s.ts) + if (got == nil) != s.valid { + t.Errorf("validateTimestamp(%v) = %v, want %v", s.ts, got, s.valid) + } + } +} + +func TestTimestampFromProto(t *testing.T) { + for _, s := range tests { + got, err := TimestampFromProto(s.ts) + if (err == nil) != s.valid { + t.Errorf("TimestampFromProto(%v) error = %v, but valid = %t", s.ts, err, s.valid) + } else if s.valid && got != s.t { + t.Errorf("TimestampFromProto(%v) = %v, want %v", s.ts, got, s.t) + } + } + // Special case: a nil TimestampFromProto is an error, but returns the 0 Unix time. + got, err := TimestampFromProto(nil) + want := time.Unix(0, 0).UTC() + if got != want { + t.Errorf("TimestampFromProto(nil) = %v, want %v", got, want) + } + if err == nil { + t.Errorf("TimestampFromProto(nil) error = nil, expected error") + } +} + +func TestTimestampProto(t *testing.T) { + for _, s := range tests { + got, err := TimestampProto(s.t) + if (err == nil) != s.valid { + t.Errorf("TimestampProto(%v) error = %v, but valid = %t", s.t, err, s.valid) + } else if s.valid && !proto.Equal(got, s.ts) { + t.Errorf("TimestampProto(%v) = %v, want %v", s.t, got, s.ts) + } + } + // No corresponding special case here: no time.Time results in a nil Timestamp. +} + +func TestTimestampString(t *testing.T) { + for _, test := range []struct { + ts *Timestamp + want string + }{ + // Not much testing needed because presumably time.Format is + // well-tested. + {&Timestamp{0, 0}, "1970-01-01T00:00:00Z"}, + {&Timestamp{minValidSeconds - 1, 0}, "(timestamp: &types.Timestamp{Seconds: -62135596801,\nNanos: 0,\n} before 0001-01-01)"}, + } { + got := TimestampString(test.ts) + if got != test.want { + t.Errorf("TimestampString(%v) = %q, want %q", test.ts, got, test.want) + } + } +} + +func utcDate(year, month, day int) time.Time { + return time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) +} diff --git a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go new file mode 100644 index 00000000..125e35c8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go @@ -0,0 +1,2259 @@ +// Code generated by protoc-gen-gogo. +// source: wrappers.proto +// DO NOT EDIT! + +/* +Package types is a generated protocol buffer package. + +It is generated from these files: + wrappers.proto + +It has these top-level messages: + DoubleValue + FloatValue + Int64Value + UInt64Value + Int32Value + UInt32Value + BoolValue + StringValue + BytesValue +*/ +package types + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import bytes "bytes" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +type DoubleValue struct { + // The double value. + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *DoubleValue) Reset() { *m = DoubleValue{} } +func (*DoubleValue) ProtoMessage() {} +func (*DoubleValue) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{0} } +func (*DoubleValue) XXX_WellKnownType() string { return "DoubleValue" } + +func (m *DoubleValue) GetValue() float64 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +type FloatValue struct { + // The float value. + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *FloatValue) Reset() { *m = FloatValue{} } +func (*FloatValue) ProtoMessage() {} +func (*FloatValue) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{1} } +func (*FloatValue) XXX_WellKnownType() string { return "FloatValue" } + +func (m *FloatValue) GetValue() float32 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +type Int64Value struct { + // The int64 value. + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Int64Value) Reset() { *m = Int64Value{} } +func (*Int64Value) ProtoMessage() {} +func (*Int64Value) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{2} } +func (*Int64Value) XXX_WellKnownType() string { return "Int64Value" } + +func (m *Int64Value) GetValue() int64 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +type UInt64Value struct { + // The uint64 value. + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *UInt64Value) Reset() { *m = UInt64Value{} } +func (*UInt64Value) ProtoMessage() {} +func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{3} } +func (*UInt64Value) XXX_WellKnownType() string { return "UInt64Value" } + +func (m *UInt64Value) GetValue() uint64 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +type Int32Value struct { + // The int32 value. + Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Int32Value) Reset() { *m = Int32Value{} } +func (*Int32Value) ProtoMessage() {} +func (*Int32Value) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{4} } +func (*Int32Value) XXX_WellKnownType() string { return "Int32Value" } + +func (m *Int32Value) GetValue() int32 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +type UInt32Value struct { + // The uint32 value. + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *UInt32Value) Reset() { *m = UInt32Value{} } +func (*UInt32Value) ProtoMessage() {} +func (*UInt32Value) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{5} } +func (*UInt32Value) XXX_WellKnownType() string { return "UInt32Value" } + +func (m *UInt32Value) GetValue() uint32 { + if m != nil { + return m.Value + } + return 0 +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +type BoolValue struct { + // The bool value. + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *BoolValue) Reset() { *m = BoolValue{} } +func (*BoolValue) ProtoMessage() {} +func (*BoolValue) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{6} } +func (*BoolValue) XXX_WellKnownType() string { return "BoolValue" } + +func (m *BoolValue) GetValue() bool { + if m != nil { + return m.Value + } + return false +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +type StringValue struct { + // The string value. + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *StringValue) Reset() { *m = StringValue{} } +func (*StringValue) ProtoMessage() {} +func (*StringValue) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{7} } +func (*StringValue) XXX_WellKnownType() string { return "StringValue" } + +func (m *StringValue) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +type BytesValue struct { + // The bytes value. + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *BytesValue) Reset() { *m = BytesValue{} } +func (*BytesValue) ProtoMessage() {} +func (*BytesValue) Descriptor() ([]byte, []int) { return fileDescriptorWrappers, []int{8} } +func (*BytesValue) XXX_WellKnownType() string { return "BytesValue" } + +func (m *BytesValue) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*DoubleValue)(nil), "google.protobuf.DoubleValue") + proto.RegisterType((*FloatValue)(nil), "google.protobuf.FloatValue") + proto.RegisterType((*Int64Value)(nil), "google.protobuf.Int64Value") + proto.RegisterType((*UInt64Value)(nil), "google.protobuf.UInt64Value") + proto.RegisterType((*Int32Value)(nil), "google.protobuf.Int32Value") + proto.RegisterType((*UInt32Value)(nil), "google.protobuf.UInt32Value") + proto.RegisterType((*BoolValue)(nil), "google.protobuf.BoolValue") + proto.RegisterType((*StringValue)(nil), "google.protobuf.StringValue") + proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue") +} +func (this *DoubleValue) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*DoubleValue) + if !ok { + that2, ok := that.(DoubleValue) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *FloatValue) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*FloatValue) + if !ok { + that2, ok := that.(FloatValue) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *Int64Value) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Int64Value) + if !ok { + that2, ok := that.(Int64Value) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *UInt64Value) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*UInt64Value) + if !ok { + that2, ok := that.(UInt64Value) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *Int32Value) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*Int32Value) + if !ok { + that2, ok := that.(Int32Value) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *UInt32Value) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*UInt32Value) + if !ok { + that2, ok := that.(UInt32Value) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *BoolValue) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*BoolValue) + if !ok { + that2, ok := that.(BoolValue) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if !this.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *StringValue) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*StringValue) + if !ok { + that2, ok := that.(StringValue) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if this.Value != that1.Value { + if this.Value < that1.Value { + return -1 + } + return 1 + } + return 0 +} +func (this *BytesValue) Compare(that interface{}) int { + if that == nil { + if this == nil { + return 0 + } + return 1 + } + + that1, ok := that.(*BytesValue) + if !ok { + that2, ok := that.(BytesValue) + if ok { + that1 = &that2 + } else { + return 1 + } + } + if that1 == nil { + if this == nil { + return 0 + } + return 1 + } else if this == nil { + return -1 + } + if c := bytes.Compare(this.Value, that1.Value); c != 0 { + return c + } + return 0 +} +func (this *DoubleValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*DoubleValue) + if !ok { + that2, ok := that.(DoubleValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *FloatValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FloatValue) + if !ok { + that2, ok := that.(FloatValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *Int64Value) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Int64Value) + if !ok { + that2, ok := that.(Int64Value) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *UInt64Value) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*UInt64Value) + if !ok { + that2, ok := that.(UInt64Value) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *Int32Value) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Int32Value) + if !ok { + that2, ok := that.(Int32Value) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *UInt32Value) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*UInt32Value) + if !ok { + that2, ok := that.(UInt32Value) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *BoolValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*BoolValue) + if !ok { + that2, ok := that.(BoolValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *StringValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*StringValue) + if !ok { + that2, ok := that.(StringValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *BytesValue) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*BytesValue) + if !ok { + that2, ok := that.(BytesValue) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !bytes.Equal(this.Value, that1.Value) { + return false + } + return true +} +func (this *DoubleValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.DoubleValue{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FloatValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.FloatValue{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Int64Value) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.Int64Value{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *UInt64Value) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.UInt64Value{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *Int32Value) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.Int32Value{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *UInt32Value) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.UInt32Value{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *BoolValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.BoolValue{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *StringValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.StringValue{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func (this *BytesValue) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&types.BytesValue{") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringWrappers(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *DoubleValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DoubleValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0x9 + i++ + i = encodeFixed64Wrappers(dAtA, i, uint64(math.Float64bits(float64(m.Value)))) + } + return i, nil +} + +func (m *FloatValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FloatValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0xd + i++ + i = encodeFixed32Wrappers(dAtA, i, uint32(math.Float32bits(float32(m.Value)))) + } + return i, nil +} + +func (m *Int64Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int64Value) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintWrappers(dAtA, i, uint64(m.Value)) + } + return i, nil +} + +func (m *UInt64Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt64Value) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintWrappers(dAtA, i, uint64(m.Value)) + } + return i, nil +} + +func (m *Int32Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Int32Value) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintWrappers(dAtA, i, uint64(m.Value)) + } + return i, nil +} + +func (m *UInt32Value) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UInt32Value) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintWrappers(dAtA, i, uint64(m.Value)) + } + return i, nil +} + +func (m *BoolValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BoolValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value { + dAtA[i] = 0x8 + i++ + if m.Value { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + return i, nil +} + +func (m *StringValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StringValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Value) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintWrappers(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + return i, nil +} + +func (m *BytesValue) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BytesValue) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Value) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintWrappers(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + return i, nil +} + +func encodeFixed64Wrappers(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Wrappers(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintWrappers(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func NewPopulatedDoubleValue(r randyWrappers, easy bool) *DoubleValue { + this := &DoubleValue{} + this.Value = float64(r.Float64()) + if r.Intn(2) == 0 { + this.Value *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFloatValue(r randyWrappers, easy bool) *FloatValue { + this := &FloatValue{} + this.Value = float32(r.Float32()) + if r.Intn(2) == 0 { + this.Value *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedInt64Value(r randyWrappers, easy bool) *Int64Value { + this := &Int64Value{} + this.Value = int64(r.Int63()) + if r.Intn(2) == 0 { + this.Value *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedUInt64Value(r randyWrappers, easy bool) *UInt64Value { + this := &UInt64Value{} + this.Value = uint64(uint64(r.Uint32())) + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedInt32Value(r randyWrappers, easy bool) *Int32Value { + this := &Int32Value{} + this.Value = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Value *= -1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedUInt32Value(r randyWrappers, easy bool) *UInt32Value { + this := &UInt32Value{} + this.Value = uint32(r.Uint32()) + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedBoolValue(r randyWrappers, easy bool) *BoolValue { + this := &BoolValue{} + this.Value = bool(bool(r.Intn(2) == 0)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedStringValue(r randyWrappers, easy bool) *StringValue { + this := &StringValue{} + this.Value = string(randStringWrappers(r)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedBytesValue(r randyWrappers, easy bool) *BytesValue { + this := &BytesValue{} + v1 := r.Intn(100) + this.Value = make([]byte, v1) + for i := 0; i < v1; i++ { + this.Value[i] = byte(r.Intn(256)) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyWrappers interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneWrappers(r randyWrappers) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringWrappers(r randyWrappers) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneWrappers(r) + } + return string(tmps) +} +func randUnrecognizedWrappers(r randyWrappers, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldWrappers(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldWrappers(dAtA []byte, r randyWrappers, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateWrappers(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateWrappers(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *DoubleValue) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 9 + } + return n +} + +func (m *FloatValue) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 5 + } + return n +} + +func (m *Int64Value) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 1 + sovWrappers(uint64(m.Value)) + } + return n +} + +func (m *UInt64Value) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 1 + sovWrappers(uint64(m.Value)) + } + return n +} + +func (m *Int32Value) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 1 + sovWrappers(uint64(m.Value)) + } + return n +} + +func (m *UInt32Value) Size() (n int) { + var l int + _ = l + if m.Value != 0 { + n += 1 + sovWrappers(uint64(m.Value)) + } + return n +} + +func (m *BoolValue) Size() (n int) { + var l int + _ = l + if m.Value { + n += 2 + } + return n +} + +func (m *StringValue) Size() (n int) { + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovWrappers(uint64(l)) + } + return n +} + +func (m *BytesValue) Size() (n int) { + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovWrappers(uint64(l)) + } + return n +} + +func sovWrappers(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozWrappers(x uint64) (n int) { + return sovWrappers(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *DoubleValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DoubleValue{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *FloatValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FloatValue{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *Int64Value) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Int64Value{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *UInt64Value) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UInt64Value{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *Int32Value) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Int32Value{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *UInt32Value) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UInt32Value{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *BoolValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BoolValue{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *StringValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StringValue{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *BytesValue) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BytesValue{`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func valueToStringWrappers(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *DoubleValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DoubleValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DoubleValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 8 + v = uint64(dAtA[iNdEx-8]) + v |= uint64(dAtA[iNdEx-7]) << 8 + v |= uint64(dAtA[iNdEx-6]) << 16 + v |= uint64(dAtA[iNdEx-5]) << 24 + v |= uint64(dAtA[iNdEx-4]) << 32 + v |= uint64(dAtA[iNdEx-3]) << 40 + v |= uint64(dAtA[iNdEx-2]) << 48 + v |= uint64(dAtA[iNdEx-1]) << 56 + m.Value = float64(math.Float64frombits(v)) + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FloatValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FloatValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FloatValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 5 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var v uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + iNdEx += 4 + v = uint32(dAtA[iNdEx-4]) + v |= uint32(dAtA[iNdEx-3]) << 8 + v |= uint32(dAtA[iNdEx-2]) << 16 + v |= uint32(dAtA[iNdEx-1]) << 24 + m.Value = float32(math.Float32frombits(v)) + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int64Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int64Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int64Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt64Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt64Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt64Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Int32Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Int32Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Int32Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UInt32Value) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UInt32Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UInt32Value: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BoolValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BoolValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BoolValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Value = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StringValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StringValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StringValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthWrappers + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BytesValue) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BytesValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BytesValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWrappers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthWrappers + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipWrappers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthWrappers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipWrappers(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWrappers + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWrappers + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWrappers + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthWrappers + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowWrappers + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipWrappers(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthWrappers = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowWrappers = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("wrappers.proto", fileDescriptorWrappers) } + +var fileDescriptorWrappers = []byte{ + // 278 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0x2f, 0x4a, 0x2c, + 0x28, 0x48, 0x2d, 0x2a, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0x85, 0xf0, 0x92, 0x4a, 0xd3, 0x94, 0x94, 0xb9, 0xb8, 0x5d, 0xf2, 0x4b, 0x93, 0x72, + 0x52, 0xc3, 0x12, 0x73, 0x4a, 0x53, 0x85, 0x44, 0xb8, 0x58, 0xcb, 0x40, 0x0c, 0x09, 0x46, 0x05, + 0x46, 0x0d, 0xc6, 0x20, 0x08, 0x47, 0x49, 0x89, 0x8b, 0xcb, 0x2d, 0x27, 0x3f, 0xb1, 0x04, 0x8b, + 0x1a, 0x26, 0x24, 0x35, 0x9e, 0x79, 0x25, 0x66, 0x26, 0x58, 0xd4, 0x30, 0xc3, 0xd4, 0x28, 0x73, + 0x71, 0x87, 0xe2, 0x52, 0xc4, 0x82, 0x6a, 0x90, 0xb1, 0x11, 0x16, 0x35, 0xac, 0x68, 0x06, 0x61, + 0x55, 0xc4, 0x0b, 0x53, 0xa4, 0xc8, 0xc5, 0xe9, 0x94, 0x9f, 0x9f, 0x83, 0x45, 0x09, 0x07, 0x92, + 0x39, 0xc1, 0x25, 0x45, 0x99, 0x79, 0xe9, 0x58, 0x14, 0x71, 0x22, 0x39, 0xc8, 0xa9, 0xb2, 0x24, + 0xb5, 0x18, 0x8b, 0x1a, 0x1e, 0xa8, 0x1a, 0xa7, 0x76, 0xc6, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, + 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, + 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, + 0x2f, 0x1e, 0xc9, 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0xe4, 0x12, 0x4e, 0xce, 0xcf, 0xd5, + 0x43, 0x8b, 0x0e, 0x27, 0xde, 0x70, 0x68, 0x7c, 0x05, 0x80, 0x44, 0x02, 0x18, 0xa3, 0x58, 0x4b, + 0x2a, 0x0b, 0x52, 0x8b, 0x7f, 0x30, 0x32, 0x2e, 0x62, 0x62, 0x76, 0x0f, 0x70, 0x5a, 0xc5, 0x24, + 0xe7, 0x0e, 0xd1, 0x12, 0x00, 0xd5, 0xa2, 0x17, 0x9e, 0x9a, 0x93, 0xe3, 0x9d, 0x97, 0x5f, 0x9e, + 0x17, 0x02, 0x52, 0x99, 0xc4, 0x06, 0x36, 0xcb, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x23, 0x27, + 0x6c, 0x5f, 0xfa, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/vanity/command/command.go b/vendor/github.com/gogo/protobuf/vanity/command/command.go index 7e8368aa..eeca42ba 100644 --- a/vendor/github.com/gogo/protobuf/vanity/command/command.go +++ b/vendor/github.com/gogo/protobuf/vanity/command/command.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -29,14 +29,11 @@ package command import ( + "fmt" + "go/format" "io/ioutil" "os" - - "github.com/gogo/protobuf/proto" - "github.com/gogo/protobuf/protoc-gen-gogo/generator" - plugin "github.com/gogo/protobuf/protoc-gen-gogo/plugin" - - _ "github.com/gogo/protobuf/protoc-gen-gogo/grpc" + "strings" _ "github.com/gogo/protobuf/plugin/compare" _ "github.com/gogo/protobuf/plugin/defaultcheck" @@ -51,13 +48,13 @@ import ( _ "github.com/gogo/protobuf/plugin/populate" _ "github.com/gogo/protobuf/plugin/size" _ "github.com/gogo/protobuf/plugin/stringer" + "github.com/gogo/protobuf/plugin/testgen" _ "github.com/gogo/protobuf/plugin/union" _ "github.com/gogo/protobuf/plugin/unmarshal" - - "github.com/gogo/protobuf/plugin/testgen" - - "go/format" - "strings" + "github.com/gogo/protobuf/proto" + "github.com/gogo/protobuf/protoc-gen-gogo/generator" + _ "github.com/gogo/protobuf/protoc-gen-gogo/grpc" + plugin "github.com/gogo/protobuf/protoc-gen-gogo/plugin" ) func Read() *plugin.CodeGeneratorRequest { @@ -77,6 +74,44 @@ func Read() *plugin.CodeGeneratorRequest { return g.Request } +// filenameSuffix replaces the .pb.go at the end of each filename. +func GeneratePlugin(req *plugin.CodeGeneratorRequest, p generator.Plugin, filenameSuffix string) *plugin.CodeGeneratorResponse { + g := generator.New() + g.Request = req + if len(g.Request.FileToGenerate) == 0 { + g.Fail("no files to generate") + } + + g.CommandLineParameters(g.Request.GetParameter()) + + g.WrapTypes() + g.SetPackageNames() + g.BuildTypeNameMap() + g.GeneratePlugin(p) + + for i := 0; i < len(g.Response.File); i++ { + g.Response.File[i].Name = proto.String( + strings.Replace(*g.Response.File[i].Name, ".pb.go", filenameSuffix, -1), + ) + } + if err := goformat(g.Response); err != nil { + g.Error(err) + } + return g.Response +} + +func goformat(resp *plugin.CodeGeneratorResponse) error { + for i := 0; i < len(resp.File); i++ { + formatted, err := format.Source([]byte(resp.File[i].GetContent())) + if err != nil { + return fmt.Errorf("go format error: %v", err) + } + fmts := string(formatted) + resp.File[i].Content = &fmts + } + return nil +} + func Generate(req *plugin.CodeGeneratorRequest) *plugin.CodeGeneratorResponse { // Begin by allocating a generator. The request and response structures are stored there // so we can do error handling easily - the response structure contains the field to @@ -95,46 +130,20 @@ func Generate(req *plugin.CodeGeneratorRequest) *plugin.CodeGeneratorResponse { g.GenerateAllFiles() - gtest := generator.New() - - data, err := proto.Marshal(req) - if err != nil { - g.Error(err, "failed to marshal modified proto") + if err := goformat(g.Response); err != nil { + g.Error(err) } - if err := proto.Unmarshal(data, gtest.Request); err != nil { - g.Error(err, "parsing modified proto") - } - - if len(gtest.Request.FileToGenerate) == 0 { - gtest.Fail("no files to generate") - } - - gtest.CommandLineParameters(gtest.Request.GetParameter()) - - // Create a wrapped version of the Descriptors and EnumDescriptors that - // point to the file that defines them. - gtest.WrapTypes() - gtest.SetPackageNames() - gtest.BuildTypeNameMap() + testReq := proto.Clone(req).(*plugin.CodeGeneratorRequest) - gtest.GeneratePlugin(testgen.NewPlugin()) + testResp := GeneratePlugin(testReq, testgen.NewPlugin(), "pb_test.go") - for i := 0; i < len(gtest.Response.File); i++ { - if strings.Contains(*gtest.Response.File[i].Content, `//These tests are generated by github.com/gogo/protobuf/plugin/testgen`) { - gtest.Response.File[i].Name = proto.String(strings.Replace(*gtest.Response.File[i].Name, ".pb.go", "pb_test.go", -1)) - g.Response.File = append(g.Response.File, gtest.Response.File[i]) + for i := 0; i < len(testResp.File); i++ { + if strings.Contains(*testResp.File[i].Content, `//These tests are generated by github.com/gogo/protobuf/plugin/testgen`) { + g.Response.File = append(g.Response.File, testResp.File[i]) } } - for i := 0; i < len(g.Response.File); i++ { - formatted, err := format.Source([]byte(g.Response.File[i].GetContent())) - if err != nil { - g.Error(err, "go format error") - } - fmts := string(formatted) - g.Response.File[i].Content = &fmts - } return g.Response } diff --git a/vendor/github.com/gogo/protobuf/vanity/enum.go b/vendor/github.com/gogo/protobuf/vanity/enum.go index 13d08974..466d07b5 100644 --- a/vendor/github.com/gogo/protobuf/vanity/enum.go +++ b/vendor/github.com/gogo/protobuf/vanity/enum.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/vanity/field.go b/vendor/github.com/gogo/protobuf/vanity/field.go index a484d1e1..9c5e2263 100644 --- a/vendor/github.com/gogo/protobuf/vanity/field.go +++ b/vendor/github.com/gogo/protobuf/vanity/field.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/vanity/file.go b/vendor/github.com/gogo/protobuf/vanity/file.go index d82fcdab..e7b56de1 100644 --- a/vendor/github.com/gogo/protobuf/vanity/file.go +++ b/vendor/github.com/gogo/protobuf/vanity/file.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -29,15 +29,17 @@ package vanity import ( - "strings" + "path/filepath" "github.com/gogo/protobuf/gogoproto" "github.com/gogo/protobuf/proto" descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" ) -func NotInPackageGoogleProtobuf(file *descriptor.FileDescriptorProto) bool { - return !strings.HasPrefix(file.GetPackage(), "google.protobuf") +func NotGoogleProtobufDescriptorProto(file *descriptor.FileDescriptorProto) bool { + // can not just check if file.GetName() == "google/protobuf/descriptor.proto" because we do not want to assume compile path + _, fileName := filepath.Split(file.GetName()) + return !(file.GetPackage() == "google.protobuf" && fileName == "descriptor.proto") } func FilterFiles(files []*descriptor.FileDescriptorProto, f func(file *descriptor.FileDescriptorProto) bool) []*descriptor.FileDescriptorProto { @@ -173,3 +175,7 @@ func TurnOffGoUnrecognizedAll(file *descriptor.FileDescriptorProto) { func TurnOffGogoImport(file *descriptor.FileDescriptorProto) { SetBoolFileOption(gogoproto.E_GogoprotoImport, false)(file) } + +func TurnOnCompareAll(file *descriptor.FileDescriptorProto) { + SetBoolFileOption(gogoproto.E_CompareAll, true)(file) +} diff --git a/vendor/github.com/gogo/protobuf/vanity/foreach.go b/vendor/github.com/gogo/protobuf/vanity/foreach.go index 0133c9d2..888b6d04 100644 --- a/vendor/github.com/gogo/protobuf/vanity/foreach.go +++ b/vendor/github.com/gogo/protobuf/vanity/foreach.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/vanity/msg.go b/vendor/github.com/gogo/protobuf/vanity/msg.go index 3954a186..7ff2b987 100644 --- a/vendor/github.com/gogo/protobuf/vanity/msg.go +++ b/vendor/github.com/gogo/protobuf/vanity/msg.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -136,3 +136,7 @@ func TurnOffGoExtensionsMap(msg *descriptor.DescriptorProto) { func TurnOffGoUnrecognized(msg *descriptor.DescriptorProto) { SetBoolMessageOption(gogoproto.E_GoprotoUnrecognized, false)(msg) } + +func TurnOnCompare(msg *descriptor.DescriptorProto) { + SetBoolMessageOption(gogoproto.E_Compare, true)(msg) +} diff --git a/vendor/github.com/gogo/protobuf/vanity/test/Makefile b/vendor/github.com/gogo/protobuf/vanity/test/Makefile index 846b74fd..0958c4a9 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/Makefile +++ b/vendor/github.com/gogo/protobuf/vanity/test/Makefile @@ -1,3 +1,31 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + regenerate: go install github.com/gogo/protobuf/protoc-gen-gogofast protoc --gogofast_out=./fast/ vanity.proto diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go index c68ef812..d0ac8a07 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go @@ -27,12 +27,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String,json=string" json:"String,omitempty"` - Int64 *int64 `protobuf:"varint,2,opt,name=Int64,json=int64" json:"Int64,omitempty"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,json=int32,def=1234" json:"Int32,omitempty"` + String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` + Int64 *int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64,omitempty"` + Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -67,68 +69,68 @@ func (m *B) GetInt32() int32 { func init() { proto.RegisterType((*B)(nil), "vanity.B") } -func (m *B) Marshal() (data []byte, err error) { +func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *B) MarshalTo(data []byte) (int, error) { +func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.String_ != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) + i = encodeVarintGogovanity(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) } if m.Int64 != nil { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int64)) + i = encodeVarintGogovanity(dAtA, i, uint64(*m.Int64)) } if m.Int32 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) + i = encodeVarintGogovanity(dAtA, i, uint64(*m.Int32)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Gogovanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Gogovanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { +func encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *B) Size() (n int) { @@ -163,8 +165,8 @@ func sovGogovanity(x uint64) (n int) { func sozGogovanity(x uint64) (n int) { return sovGogovanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *B) Unmarshal(data []byte) error { - l := len(data) +func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -176,7 +178,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -204,7 +206,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -219,7 +221,7 @@ func (m *B) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.String_ = &s iNdEx = postIndex case 2: @@ -234,7 +236,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -254,7 +256,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -264,7 +266,7 @@ func (m *B) Unmarshal(data []byte) error { m.Int32 = &v default: iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) + skippy, err := skipGogovanity(dAtA[iNdEx:]) if err != nil { return err } @@ -274,7 +276,7 @@ func (m *B) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -284,8 +286,8 @@ func (m *B) Unmarshal(data []byte) error { } return nil } -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) +func skipGogovanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -296,7 +298,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -314,7 +316,7 @@ func skipGogovanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -331,7 +333,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -354,7 +356,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -365,7 +367,7 @@ func skipGogovanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipGogovanity(data[start:]) + next, err := skipGogovanity(dAtA[start:]) if err != nil { return 0, err } @@ -389,16 +391,18 @@ var ( ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("gogovanity.proto", fileDescriptorGogovanity) } + var fileDescriptorGogovanity = []byte{ // 157 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4, 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x05, 0x73, 0x31, 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a, - 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0xc4, 0x56, 0x0c, 0x16, 0x13, 0x12, 0xe1, 0x62, - 0xf5, 0xcc, 0x2b, 0x31, 0x33, 0x91, 0x60, 0x02, 0x4a, 0x32, 0x07, 0xb1, 0x66, 0x82, 0x38, 0x42, - 0x52, 0x60, 0x51, 0x63, 0x23, 0x09, 0x66, 0xa0, 0x28, 0xab, 0x15, 0x8b, 0xa1, 0x91, 0xb1, 0x09, - 0x58, 0xce, 0xd8, 0xc8, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x40, 0xfc, 0x00, 0x88, 0x01, - 0x01, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x7b, 0xe6, 0xd9, 0xac, 0x00, 0x00, 0x00, + 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x12, 0xe1, 0x62, 0xf5, 0xcc, + 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0e, 0x82, 0x70, 0x84, 0xa4, 0xc0, 0xa2, + 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41, 0x10, + 0x21, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x11, + 0x10, 0x00, 0x00, 0xff, 0xff, 0x35, 0x73, 0x31, 0x4a, 0xac, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go index 5419f2cc..1cfd1305 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go @@ -26,10 +26,12 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,json=b,proto3" json:"B,omitempty"` + B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` } func (m *Aproto3) Reset() { *m = Aproto3{} } @@ -37,58 +39,65 @@ func (m *Aproto3) String() string { return proto.CompactTextString(m) func (*Aproto3) ProtoMessage() {} func (*Aproto3) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{0} } +func (m *Aproto3) GetB() string { + if m != nil { + return m.B + } + return "" +} + func init() { proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") } -func (m *Aproto3) Marshal() (data []byte, err error) { +func (m *Aproto3) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Aproto3) MarshalTo(data []byte) (int, error) { +func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.B) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) + i = encodeVarintProto3(dAtA, i, uint64(len(m.B))) + i += copy(dAtA[i:], m.B) } return i, nil } -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Proto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Proto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintProto3(data []byte, offset int, v uint64) int { +func encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *Aproto3) Size() (n int) { @@ -114,8 +123,8 @@ func sovProto3(x uint64) (n int) { func sozProto3(x uint64) (n int) { return sovProto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) +func (m *Aproto3) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -127,7 +136,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -155,7 +164,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -170,11 +179,11 @@ func (m *Aproto3) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.B = string(data[iNdEx:postIndex]) + m.B = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) + skippy, err := skipProto3(dAtA[iNdEx:]) if err != nil { return err } @@ -193,8 +202,8 @@ func (m *Aproto3) Unmarshal(data []byte) error { } return nil } -func skipProto3(data []byte) (n int, err error) { - l := len(data) +func skipProto3(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -205,7 +214,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -223,7 +232,7 @@ func skipProto3(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -240,7 +249,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -263,7 +272,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -274,7 +283,7 @@ func skipProto3(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto3(data[start:]) + next, err := skipProto3(dAtA[start:]) if err != nil { return 0, err } @@ -298,11 +307,14 @@ var ( ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("proto3.proto", fileDescriptorProto3) } + var fileDescriptorProto3 = []byte{ - // 79 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, + // 82 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c, 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, - 0xc6, 0x24, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x00, 0xf1, 0x03, 0x20, 0x4e, 0x62, 0x83, - 0xa8, 0x01, 0x04, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x14, 0x77, 0x86, 0x45, 0x00, 0x00, 0x00, + 0x46, 0x27, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, + 0x31, 0x89, 0x0d, 0xa2, 0x06, 0x10, 0x00, 0x00, 0xff, 0xff, 0x97, 0x18, 0x92, 0x84, 0x45, 0x00, + 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go index 8ca617fe..7f2d06b2 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go @@ -28,11 +28,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type A struct { - Strings *string `protobuf:"bytes,1,opt,name=Strings,json=strings" json:"Strings,omitempty"` - Int *int64 `protobuf:"varint,2,req,name=Int,json=int" json:"Int,omitempty"` + Strings *string `protobuf:"bytes,1,opt,name=Strings" json:"Strings,omitempty"` + Int *int64 `protobuf:"varint,2,req,name=Int" json:"Int,omitempty"` XXX_unrecognized []byte `json:"-"` } @@ -58,65 +60,65 @@ func (m *A) GetInt() int64 { func init() { proto.RegisterType((*A)(nil), "vanity.A") } -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Strings != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintVanity(data, i, uint64(len(*m.Strings))) - i += copy(data[i:], *m.Strings) + i = encodeVarintVanity(dAtA, i, uint64(len(*m.Strings))) + i += copy(dAtA[i:], *m.Strings) } if m.Int == nil { return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") } else { - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintVanity(data, i, uint64(*m.Int)) + i = encodeVarintVanity(dAtA, i, uint64(*m.Int)) } if m.XXX_unrecognized != nil { - i += copy(data[i:], m.XXX_unrecognized) + i += copy(dAtA[i:], m.XXX_unrecognized) } return i, nil } -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Vanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Vanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintVanity(data []byte, offset int, v uint64) int { +func encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *A) Size() (n int) { @@ -148,9 +150,9 @@ func sovVanity(x uint64) (n int) { func sozVanity(x uint64) (n int) { return sovVanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *A) Unmarshal(data []byte) error { +func (m *A) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -162,7 +164,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -190,7 +192,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -205,7 +207,7 @@ func (m *A) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.Strings = &s iNdEx = postIndex case 2: @@ -220,7 +222,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -231,7 +233,7 @@ func (m *A) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00000001) default: iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) + skippy, err := skipVanity(dAtA[iNdEx:]) if err != nil { return err } @@ -241,7 +243,7 @@ func (m *A) Unmarshal(data []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) iNdEx += skippy } } @@ -254,8 +256,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func skipVanity(data []byte) (n int, err error) { - l := len(data) +func skipVanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -266,7 +268,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -284,7 +286,7 @@ func skipVanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -301,7 +303,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -324,7 +326,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -335,7 +337,7 @@ func skipVanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipVanity(data[start:]) + next, err := skipVanity(dAtA[start:]) if err != nil { return 0, err } @@ -359,13 +361,15 @@ var ( ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("vanity.proto", fileDescriptorVanity) } + var fileDescriptorVanity = []byte{ - // 98 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, + // 97 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xf4, 0xb9, 0x18, 0x1d, 0x85, 0x24, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18, - 0x35, 0x38, 0x83, 0xd8, 0x8b, 0x21, 0x5c, 0x21, 0x01, 0x2e, 0x66, 0xcf, 0xbc, 0x12, 0x09, 0x26, - 0x05, 0x26, 0x0d, 0xe6, 0x20, 0xe6, 0xcc, 0xbc, 0x12, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, - 0x00, 0xf1, 0x03, 0x20, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf9, 0x16, 0x19, 0x2a, 0x55, 0x00, - 0x00, 0x00, + 0x35, 0x38, 0x83, 0x60, 0x5c, 0x21, 0x01, 0x2e, 0x66, 0xcf, 0xbc, 0x12, 0x09, 0x26, 0x05, 0x26, + 0x0d, 0xe6, 0x20, 0x10, 0xd3, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, + 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x7a, 0xd7, 0x63, 0x55, 0x00, 0x00, + 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go index 665045d1..53006996 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go @@ -27,12 +27,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String,json=string" json:"String,omitempty"` - Int64 int64 `protobuf:"varint,2,opt,name=Int64,json=int64" json:"Int64"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,json=int32,def=1234" json:"Int32,omitempty"` + String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` + Int64 int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64"` + Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` } func (m *B) Reset() { *m = B{} } @@ -66,63 +68,63 @@ func (m *B) GetInt32() int32 { func init() { proto.RegisterType((*B)(nil), "vanity.B") } -func (m *B) Marshal() (data []byte, err error) { +func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *B) MarshalTo(data []byte) (int, error) { +func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.String_ != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) + i = encodeVarintGogovanity(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintGogovanity(data, i, uint64(m.Int64)) + i = encodeVarintGogovanity(dAtA, i, uint64(m.Int64)) if m.Int32 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) + i = encodeVarintGogovanity(dAtA, i, uint64(*m.Int32)) } return i, nil } -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Gogovanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Gogovanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { +func encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *B) Size() (n int) { @@ -152,8 +154,8 @@ func sovGogovanity(x uint64) (n int) { func sozGogovanity(x uint64) (n int) { return sovGogovanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *B) Unmarshal(data []byte) error { - l := len(data) +func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -165,7 +167,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -193,7 +195,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -208,7 +210,7 @@ func (m *B) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.String_ = &s iNdEx = postIndex case 2: @@ -223,7 +225,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int64 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -242,7 +244,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -252,7 +254,7 @@ func (m *B) Unmarshal(data []byte) error { m.Int32 = &v default: iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) + skippy, err := skipGogovanity(dAtA[iNdEx:]) if err != nil { return err } @@ -271,8 +273,8 @@ func (m *B) Unmarshal(data []byte) error { } return nil } -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) +func skipGogovanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -283,7 +285,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -301,7 +303,7 @@ func skipGogovanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -318,7 +320,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -341,7 +343,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -352,7 +354,7 @@ func skipGogovanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipGogovanity(data[start:]) + next, err := skipGogovanity(dAtA[start:]) if err != nil { return 0, err } @@ -376,17 +378,19 @@ var ( ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("gogovanity.proto", fileDescriptorGogovanity) } + var fileDescriptorGogovanity = []byte{ - // 162 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, + // 163 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4, 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31, 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a, - 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0xc4, 0x56, 0x0c, 0x16, 0x13, 0x92, 0xe2, 0x62, - 0xf5, 0xcc, 0x2b, 0x31, 0x33, 0x91, 0x60, 0x02, 0x4a, 0x32, 0x83, 0x25, 0x19, 0x82, 0x58, 0x33, - 0x41, 0x42, 0x50, 0x39, 0x63, 0x23, 0x09, 0x66, 0xa0, 0x1c, 0xab, 0x15, 0x8b, 0xa1, 0x91, 0xb1, - 0x09, 0x58, 0xce, 0xd8, 0xc8, 0x49, 0xe0, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x40, 0xfc, 0x00, 0x88, - 0x27, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb0, 0xdf, 0x35, 0x69, 0xb6, 0x00, - 0x00, 0x00, + 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc, + 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0, + 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41, + 0x10, 0x21, 0x27, 0x81, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, + 0x71, 0xc2, 0x63, 0x39, 0x06, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xde, 0x29, 0x72, 0xb6, + 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go index 8e8ce118..1c0388f3 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go @@ -26,10 +26,12 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,json=b,proto3" json:"B,omitempty"` + B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` } func (m *Aproto3) Reset() { *m = Aproto3{} } @@ -37,58 +39,65 @@ func (m *Aproto3) String() string { return proto.CompactTextString(m) func (*Aproto3) ProtoMessage() {} func (*Aproto3) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{0} } +func (m *Aproto3) GetB() string { + if m != nil { + return m.B + } + return "" +} + func init() { proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") } -func (m *Aproto3) Marshal() (data []byte, err error) { +func (m *Aproto3) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Aproto3) MarshalTo(data []byte) (int, error) { +func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.B) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) + i = encodeVarintProto3(dAtA, i, uint64(len(m.B))) + i += copy(dAtA[i:], m.B) } return i, nil } -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Proto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Proto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintProto3(data []byte, offset int, v uint64) int { +func encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *Aproto3) Size() (n int) { @@ -114,8 +123,8 @@ func sovProto3(x uint64) (n int) { func sozProto3(x uint64) (n int) { return sovProto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) +func (m *Aproto3) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -127,7 +136,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -155,7 +164,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -170,11 +179,11 @@ func (m *Aproto3) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.B = string(data[iNdEx:postIndex]) + m.B = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) + skippy, err := skipProto3(dAtA[iNdEx:]) if err != nil { return err } @@ -193,8 +202,8 @@ func (m *Aproto3) Unmarshal(data []byte) error { } return nil } -func skipProto3(data []byte) (n int, err error) { - l := len(data) +func skipProto3(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -205,7 +214,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -223,7 +232,7 @@ func skipProto3(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -240,7 +249,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -263,7 +272,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -274,7 +283,7 @@ func skipProto3(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto3(data[start:]) + next, err := skipProto3(dAtA[start:]) if err != nil { return 0, err } @@ -298,12 +307,14 @@ var ( ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("proto3.proto", fileDescriptorProto3) } + var fileDescriptorProto3 = []byte{ - // 83 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, + // 87 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c, 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, - 0xc6, 0x24, 0x27, 0x81, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x00, 0xf1, 0x03, 0x20, 0x9e, 0xf0, 0x58, - 0x8e, 0x21, 0x89, 0x0d, 0xa2, 0x0e, 0x10, 0x00, 0x00, 0xff, 0xff, 0xdd, 0x77, 0x4a, 0x7c, 0x49, - 0x00, 0x00, 0x00, + 0x46, 0x27, 0x27, 0x81, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, + 0x71, 0xc2, 0x63, 0x39, 0x86, 0x24, 0x36, 0x88, 0x3a, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, + 0x21, 0xa3, 0xc0, 0x49, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go index ec74cc98..ed1c4ef8 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go @@ -27,11 +27,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type A struct { - Strings string `protobuf:"bytes,1,opt,name=Strings,json=strings" json:"Strings"` - Int int64 `protobuf:"varint,2,req,name=Int,json=int" json:"Int"` + Strings string `protobuf:"bytes,1,opt,name=Strings" json:"Strings"` + Int int64 `protobuf:"varint,2,req,name=Int" json:"Int"` } func (m *A) Reset() { *m = A{} } @@ -56,56 +58,56 @@ func (m *A) GetInt() int64 { func init() { proto.RegisterType((*A)(nil), "vanity.A") } -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintVanity(data, i, uint64(len(m.Strings))) - i += copy(data[i:], m.Strings) - data[i] = 0x10 + i = encodeVarintVanity(dAtA, i, uint64(len(m.Strings))) + i += copy(dAtA[i:], m.Strings) + dAtA[i] = 0x10 i++ - i = encodeVarintVanity(data, i, uint64(m.Int)) + i = encodeVarintVanity(dAtA, i, uint64(m.Int)) return i, nil } -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Vanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Vanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintVanity(data []byte, offset int, v uint64) int { +func encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *A) Size() (n int) { @@ -130,9 +132,9 @@ func sovVanity(x uint64) (n int) { func sozVanity(x uint64) (n int) { return sovVanity(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *A) Unmarshal(data []byte) error { +func (m *A) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -144,7 +146,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -172,7 +174,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -187,7 +189,7 @@ func (m *A) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Strings = string(data[iNdEx:postIndex]) + m.Strings = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -201,7 +203,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -211,7 +213,7 @@ func (m *A) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00000001) default: iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) + skippy, err := skipVanity(dAtA[iNdEx:]) if err != nil { return err } @@ -233,8 +235,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func skipVanity(data []byte) (n int, err error) { - l := len(data) +func skipVanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -245,7 +247,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -263,7 +265,7 @@ func skipVanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -280,7 +282,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -303,7 +305,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -314,7 +316,7 @@ func skipVanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipVanity(data[start:]) + next, err := skipVanity(dAtA[start:]) if err != nil { return 0, err } @@ -338,13 +340,15 @@ var ( ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("vanity.proto", fileDescriptorVanity) } + var fileDescriptorVanity = []byte{ - // 110 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, + // 109 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18, 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18, - 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x62, 0x2f, 0x86, 0x08, 0x0a, 0x89, 0x71, - 0x31, 0x7b, 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x98, 0x33, 0xf3, 0x4a, - 0x9c, 0x04, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0x00, 0xc4, 0x0f, 0x80, 0x78, 0xc2, 0x63, 0x39, 0x06, - 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x35, 0x96, 0x94, 0xc6, 0x65, 0x00, 0x00, 0x00, + 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b, + 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x02, 0x27, 0x1e, + 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x80, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x56, 0x0d, 0x52, 0xbb, 0x65, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/gogovanity.proto b/vendor/github.com/gogo/protobuf/vanity/test/gogovanity.proto index 5d75ec6b..b0f9279a 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/gogovanity.proto +++ b/vendor/github.com/gogo/protobuf/vanity/test/gogovanity.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/vanity/test/proto3.proto b/vendor/github.com/gogo/protobuf/vanity/test/proto3.proto index 429b6fda..aa2f4ac5 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/proto3.proto +++ b/vendor/github.com/gogo/protobuf/vanity/test/proto3.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -30,4 +32,4 @@ package vanity; message Aproto3 { string B = 1; -} \ No newline at end of file +} diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go index a5310ef1..7ae6de15 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go @@ -19,9 +19,6 @@ import math "math" import _ "github.com/gogo/protobuf/gogoproto" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -33,12 +30,14 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type B struct { - String_ *string `protobuf:"bytes,1,opt,name=String,json=string" json:"String,omitempty"` - Int64 int64 `protobuf:"varint,2,opt,name=Int64,json=int64" json:"Int64"` - Int32 *int32 `protobuf:"varint,3,opt,name=Int32,json=int32,def=1234" json:"Int32,omitempty"` + String_ *string `protobuf:"bytes,1,opt,name=String" json:"String,omitempty"` + Int64 int64 `protobuf:"varint,2,opt,name=Int64" json:"Int64"` + Int32 *int32 `protobuf:"varint,3,opt,name=Int32,def=1234" json:"Int32,omitempty"` } func (m *B) Reset() { *m = B{} } @@ -143,80 +142,63 @@ func valueToGoStringGogovanity(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringGogovanity(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *B) Marshal() (data []byte, err error) { +func (m *B) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *B) MarshalTo(data []byte) (int, error) { +func (m *B) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.String_ != nil { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintGogovanity(data, i, uint64(len(*m.String_))) - i += copy(data[i:], *m.String_) + i = encodeVarintGogovanity(dAtA, i, uint64(len(*m.String_))) + i += copy(dAtA[i:], *m.String_) } - data[i] = 0x10 + dAtA[i] = 0x10 i++ - i = encodeVarintGogovanity(data, i, uint64(m.Int64)) + i = encodeVarintGogovanity(dAtA, i, uint64(m.Int64)) if m.Int32 != nil { - data[i] = 0x18 + dAtA[i] = 0x18 i++ - i = encodeVarintGogovanity(data, i, uint64(*m.Int32)) + i = encodeVarintGogovanity(dAtA, i, uint64(*m.Int32)) } return i, nil } -func encodeFixed64Gogovanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Gogovanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Gogovanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Gogovanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintGogovanity(data []byte, offset int, v uint64) int { +func encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *B) Size() (n int) { @@ -266,8 +248,8 @@ func valueToStringGogovanity(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *B) Unmarshal(data []byte) error { - l := len(data) +func (m *B) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -279,7 +261,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -307,7 +289,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -322,7 +304,7 @@ func (m *B) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(data[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) m.String_ = &s iNdEx = postIndex case 2: @@ -337,7 +319,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int64 |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -356,7 +338,7 @@ func (m *B) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ v |= (int32(b) & 0x7F) << shift if b < 0x80 { @@ -366,7 +348,7 @@ func (m *B) Unmarshal(data []byte) error { m.Int32 = &v default: iNdEx = preIndex - skippy, err := skipGogovanity(data[iNdEx:]) + skippy, err := skipGogovanity(dAtA[iNdEx:]) if err != nil { return err } @@ -385,8 +367,8 @@ func (m *B) Unmarshal(data []byte) error { } return nil } -func skipGogovanity(data []byte) (n int, err error) { - l := len(data) +func skipGogovanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -397,7 +379,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -415,7 +397,7 @@ func skipGogovanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -432,7 +414,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -455,7 +437,7 @@ func skipGogovanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -466,7 +448,7 @@ func skipGogovanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipGogovanity(data[start:]) + next, err := skipGogovanity(dAtA[start:]) if err != nil { return 0, err } @@ -490,18 +472,20 @@ var ( ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("gogovanity.proto", fileDescriptorGogovanity) } + var fileDescriptorGogovanity = []byte{ - // 184 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, + // 192 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf, 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4, 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31, 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a, - 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0xc4, 0x56, 0x0c, 0x16, 0x13, 0x92, 0xe2, 0x62, - 0xf5, 0xcc, 0x2b, 0x31, 0x33, 0x91, 0x60, 0x02, 0x4a, 0x32, 0x83, 0x25, 0x19, 0x82, 0x58, 0x33, - 0x41, 0x42, 0x50, 0x39, 0x63, 0x23, 0x09, 0x66, 0xa0, 0x1c, 0xab, 0x15, 0x8b, 0xa1, 0x91, 0xb1, - 0x09, 0x58, 0xce, 0xd8, 0xc8, 0x49, 0xe7, 0xc2, 0x43, 0x39, 0x86, 0x1b, 0x40, 0xfc, 0xe1, 0xa1, - 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x40, 0x7c, 0x02, 0x88, 0x2f, 0x00, 0xf1, 0x03, 0x20, - 0x7e, 0xf1, 0x08, 0x28, 0x07, 0xa4, 0x27, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x07, 0xdc, 0x7b, 0x6e, 0xd2, 0x00, 0x00, 0x00, + 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc, + 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0, + 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41, + 0x10, 0x21, 0x27, 0x9d, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e, + 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, + 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, + 0x2c, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x7e, 0xee, 0xf2, 0xd2, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go index 3bba9254..9c9c694e 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go @@ -18,9 +18,6 @@ import fmt "fmt" import math "math" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" @@ -32,16 +29,25 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Aproto3 struct { - B string `protobuf:"bytes,1,opt,name=B,json=b,proto3" json:"B,omitempty"` + B string `protobuf:"bytes,1,opt,name=B,proto3" json:"B,omitempty"` } func (m *Aproto3) Reset() { *m = Aproto3{} } func (*Aproto3) ProtoMessage() {} func (*Aproto3) Descriptor() ([]byte, []int) { return fileDescriptorProto3, []int{0} } +func (m *Aproto3) GetB() string { + if m != nil { + return m.B + } + return "" +} + func init() { proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3") } @@ -93,72 +99,55 @@ func valueToGoStringProto3(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringProto3(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *Aproto3) Marshal() (data []byte, err error) { +func (m *Aproto3) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *Aproto3) MarshalTo(data []byte) (int, error) { +func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if len(m.B) > 0 { - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintProto3(data, i, uint64(len(m.B))) - i += copy(data[i:], m.B) + i = encodeVarintProto3(dAtA, i, uint64(len(m.B))) + i += copy(dAtA[i:], m.B) } return i, nil } -func encodeFixed64Proto3(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Proto3(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Proto3(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Proto3(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintProto3(data []byte, offset int, v uint64) int { +func encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *Aproto3) Size() (n int) { @@ -202,8 +191,8 @@ func valueToStringProto3(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Aproto3) Unmarshal(data []byte) error { - l := len(data) +func (m *Aproto3) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -215,7 +204,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -243,7 +232,7 @@ func (m *Aproto3) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -258,11 +247,11 @@ func (m *Aproto3) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.B = string(data[iNdEx:postIndex]) + m.B = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex - skippy, err := skipProto3(data[iNdEx:]) + skippy, err := skipProto3(dAtA[iNdEx:]) if err != nil { return err } @@ -281,8 +270,8 @@ func (m *Aproto3) Unmarshal(data []byte) error { } return nil } -func skipProto3(data []byte) (n int, err error) { - l := len(data) +func skipProto3(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -293,7 +282,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -311,7 +300,7 @@ func skipProto3(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -328,7 +317,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -351,7 +340,7 @@ func skipProto3(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -362,7 +351,7 @@ func skipProto3(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipProto3(data[start:]) + next, err := skipProto3(dAtA[start:]) if err != nil { return 0, err } @@ -386,13 +375,16 @@ var ( ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("proto3.proto", fileDescriptorProto3) } + var fileDescriptorProto3 = []byte{ - // 105 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, + // 116 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f, 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c, 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, - 0xc6, 0x24, 0x27, 0x9d, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x00, 0xf1, 0x87, 0x87, 0x72, 0x8c, 0x0d, - 0x8f, 0xe4, 0x18, 0x57, 0x00, 0xf1, 0x09, 0x20, 0xbe, 0x00, 0xc4, 0x0f, 0x80, 0xf8, 0xc5, 0x23, - 0xa0, 0x1c, 0x90, 0x9e, 0xf0, 0x58, 0x8e, 0x21, 0x89, 0x0d, 0x62, 0x06, 0x20, 0x00, 0x00, 0xff, - 0xff, 0x37, 0xd7, 0x45, 0xf0, 0x65, 0x00, 0x00, 0x00, + 0x46, 0x27, 0x27, 0x9d, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e, + 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, + 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, + 0x2c, 0xc7, 0x90, 0xc4, 0x06, 0x31, 0x03, 0x10, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xa0, 0x15, 0x6b, + 0x65, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go index 448be468..46a46770 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go @@ -18,12 +18,10 @@ import fmt "fmt" import math "math" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import sort "sort" -import strconv "strconv" import reflect "reflect" import io "io" +import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -32,11 +30,13 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.GoGoProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type A struct { - Strings string `protobuf:"bytes,1,opt,name=Strings,json=strings" json:"Strings"` - Int int64 `protobuf:"varint,2,req,name=Int,json=int" json:"Int"` + Strings string `protobuf:"bytes,1,opt,name=Strings" json:"Strings"` + Int int64 `protobuf:"varint,2,req,name=Int" json:"Int"` } func (m *A) Reset() { *m = A{} } @@ -112,73 +112,56 @@ func valueToGoStringVanity(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringVanity(e map[int32]github_com_gogo_protobuf_proto.Extension) string { - if e == nil { - return "nil" - } - s := "map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "}" - return s -} -func (m *A) Marshal() (data []byte, err error) { +func (m *A) Marshal() (dAtA []byte, err error) { size := m.Size() - data = make([]byte, size) - n, err := m.MarshalTo(data) + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } - return data[:n], nil + return dAtA[:n], nil } -func (m *A) MarshalTo(data []byte) (int, error) { +func (m *A) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - data[i] = 0xa + dAtA[i] = 0xa i++ - i = encodeVarintVanity(data, i, uint64(len(m.Strings))) - i += copy(data[i:], m.Strings) - data[i] = 0x10 + i = encodeVarintVanity(dAtA, i, uint64(len(m.Strings))) + i += copy(dAtA[i:], m.Strings) + dAtA[i] = 0x10 i++ - i = encodeVarintVanity(data, i, uint64(m.Int)) + i = encodeVarintVanity(dAtA, i, uint64(m.Int)) return i, nil } -func encodeFixed64Vanity(data []byte, offset int, v uint64) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) - data[offset+4] = uint8(v >> 32) - data[offset+5] = uint8(v >> 40) - data[offset+6] = uint8(v >> 48) - data[offset+7] = uint8(v >> 56) +func encodeFixed64Vanity(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) return offset + 8 } -func encodeFixed32Vanity(data []byte, offset int, v uint32) int { - data[offset] = uint8(v) - data[offset+1] = uint8(v >> 8) - data[offset+2] = uint8(v >> 16) - data[offset+3] = uint8(v >> 24) +func encodeFixed32Vanity(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) return offset + 4 } -func encodeVarintVanity(data []byte, offset int, v uint64) int { +func encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { - data[offset] = uint8(v&0x7f | 0x80) + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } - data[offset] = uint8(v) + dAtA[offset] = uint8(v) return offset + 1 } func (m *A) Size() (n int) { @@ -222,9 +205,9 @@ func valueToStringVanity(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *A) Unmarshal(data []byte) error { +func (m *A) Unmarshal(dAtA []byte) error { var hasFields [1]uint64 - l := len(data) + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -236,7 +219,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -264,7 +247,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -279,7 +262,7 @@ func (m *A) Unmarshal(data []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Strings = string(data[iNdEx:postIndex]) + m.Strings = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { @@ -293,7 +276,7 @@ func (m *A) Unmarshal(data []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ m.Int |= (int64(b) & 0x7F) << shift if b < 0x80 { @@ -303,7 +286,7 @@ func (m *A) Unmarshal(data []byte) error { hasFields[0] |= uint64(0x00000001) default: iNdEx = preIndex - skippy, err := skipVanity(data[iNdEx:]) + skippy, err := skipVanity(dAtA[iNdEx:]) if err != nil { return err } @@ -325,8 +308,8 @@ func (m *A) Unmarshal(data []byte) error { } return nil } -func skipVanity(data []byte) (n int, err error) { - l := len(data) +func skipVanity(dAtA []byte) (n int, err error) { + l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 @@ -337,7 +320,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -355,7 +338,7 @@ func skipVanity(data []byte) (n int, err error) { return 0, io.ErrUnexpectedEOF } iNdEx++ - if data[iNdEx-1] < 0x80 { + if dAtA[iNdEx-1] < 0x80 { break } } @@ -372,7 +355,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { @@ -395,7 +378,7 @@ func skipVanity(data []byte) (n int, err error) { if iNdEx >= l { return 0, io.ErrUnexpectedEOF } - b := data[iNdEx] + b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { @@ -406,7 +389,7 @@ func skipVanity(data []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipVanity(data[start:]) + next, err := skipVanity(dAtA[start:]) if err != nil { return 0, err } @@ -430,15 +413,17 @@ var ( ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow") ) +func init() { proto.RegisterFile("vanity.proto", fileDescriptorVanity) } + var fileDescriptorVanity = []byte{ - // 132 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, + // 138 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18, 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18, - 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x62, 0x2f, 0x86, 0x08, 0x0a, 0x89, 0x71, - 0x31, 0x7b, 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x98, 0x33, 0xf3, 0x4a, - 0x9c, 0x74, 0x2e, 0x3c, 0x94, 0x63, 0xb8, 0x01, 0xc4, 0x1f, 0x1e, 0xca, 0x31, 0x36, 0x3c, 0x92, - 0x63, 0x5c, 0x01, 0xc4, 0x27, 0x80, 0xf8, 0x02, 0x10, 0x3f, 0x00, 0xe2, 0x17, 0x8f, 0x80, 0x72, - 0x40, 0x7a, 0xc2, 0x63, 0x39, 0x06, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x61, 0xf3, 0x18, 0x78, - 0x81, 0x00, 0x00, 0x00, + 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b, + 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x3a, 0x17, 0x1e, + 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, + 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, + 0x17, 0x8f, 0xe4, 0x18, 0x3e, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0x01, 0x10, 0x00, 0x00, + 0xff, 0xff, 0x4d, 0xd9, 0xba, 0x18, 0x81, 0x00, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/vanity/test/vanity.proto b/vendor/github.com/gogo/protobuf/vanity/test/vanity.proto index 08115380..c21750bc 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/vanity.proto +++ b/vendor/github.com/gogo/protobuf/vanity/test/vanity.proto @@ -1,5 +1,7 @@ -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/vanity/test/vanity_test.go b/vendor/github.com/gogo/protobuf/vanity/test/vanity_test.go index 688fdc32..a0e5b824 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/vanity_test.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/vanity_test.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/gogo/protobuf/version/version.go b/vendor/github.com/gogo/protobuf/version/version.go index 05c49b40..461e9903 100644 --- a/vendor/github.com/gogo/protobuf/version/version.go +++ b/vendor/github.com/gogo/protobuf/version/version.go @@ -1,7 +1,7 @@ -// Extensions for Protocol Buffers to create more go like structures. +// Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved. -// http://github.com/gogo/protobuf/gogoproto +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/golang/protobuf/.gitignore b/vendor/github.com/golang/protobuf/.gitignore new file mode 100644 index 00000000..2f337392 --- /dev/null +++ b/vendor/github.com/golang/protobuf/.gitignore @@ -0,0 +1,15 @@ +.DS_Store +*.[568ao] +*.ao +*.so +*.pyc +._* +.nfs.* +[568a].out +*~ +*.orig +core +_obj +_test +_testmain.go +protoc-gen-go/testdata/multi/*.pb.go diff --git a/vendor/github.com/golang/protobuf/AUTHORS b/vendor/github.com/golang/protobuf/AUTHORS new file mode 100644 index 00000000..15167cd7 --- /dev/null +++ b/vendor/github.com/golang/protobuf/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/golang/protobuf/CONTRIBUTORS b/vendor/github.com/golang/protobuf/CONTRIBUTORS new file mode 100644 index 00000000..1c4577e9 --- /dev/null +++ b/vendor/github.com/golang/protobuf/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE new file mode 100644 index 00000000..1b1b1921 --- /dev/null +++ b/vendor/github.com/golang/protobuf/LICENSE @@ -0,0 +1,31 @@ +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/github.com/golang/protobuf/Make.protobuf b/vendor/github.com/golang/protobuf/Make.protobuf new file mode 100644 index 00000000..15071de1 --- /dev/null +++ b/vendor/github.com/golang/protobuf/Make.protobuf @@ -0,0 +1,40 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +# Includable Makefile to add a rule for generating .pb.go files from .proto files +# (Google protocol buffer descriptions). +# Typical use if myproto.proto is a file in package mypackage in this directory: +# +# include $(GOROOT)/src/pkg/github.com/golang/protobuf/Make.protobuf + +%.pb.go: %.proto + protoc --go_out=. $< + diff --git a/vendor/github.com/golang/protobuf/Makefile b/vendor/github.com/golang/protobuf/Makefile new file mode 100644 index 00000000..80b6a17d --- /dev/null +++ b/vendor/github.com/golang/protobuf/Makefile @@ -0,0 +1,54 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + + +all: install + +install: + go install ./proto ./jsonpb ./ptypes + go install ./protoc-gen-go + +test: + go test ./proto ./jsonpb ./ptypes + make -C protoc-gen-go/testdata test + +clean: + go clean ./... + +nuke: + go clean -i ./... + +regenerate: + make -C protoc-gen-go/descriptor regenerate + make -C protoc-gen-go/plugin regenerate + make -C protoc-gen-go/testdata regenerate + make -C proto/testdata regenerate + make -C jsonpb/jsonpb_test_proto regenerate diff --git a/vendor/github.com/golang/protobuf/README.md b/vendor/github.com/golang/protobuf/README.md new file mode 100644 index 00000000..8fdc89b4 --- /dev/null +++ b/vendor/github.com/golang/protobuf/README.md @@ -0,0 +1,199 @@ +# Go support for Protocol Buffers + +Google's data interchange format. +Copyright 2010 The Go Authors. +https://github.com/golang/protobuf + +This package and the code it generates requires at least Go 1.4. + +This software implements Go bindings for protocol buffers. For +information about protocol buffers themselves, see + https://developers.google.com/protocol-buffers/ + +## Installation ## + +To use this software, you must: +- Install the standard C++ implementation of protocol buffers from + https://developers.google.com/protocol-buffers/ +- Of course, install the Go compiler and tools from + https://golang.org/ + See + https://golang.org/doc/install + for details or, if you are using gccgo, follow the instructions at + https://golang.org/doc/install/gccgo +- Grab the code from the repository and install the proto package. + The simplest way is to run `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}`. + The compiler plugin, protoc-gen-go, will be installed in $GOBIN, + defaulting to $GOPATH/bin. It must be in your $PATH for the protocol + compiler, protoc, to find it. + +This software has two parts: a 'protocol compiler plugin' that +generates Go source files that, once compiled, can access and manage +protocol buffers; and a library that implements run-time support for +encoding (marshaling), decoding (unmarshaling), and accessing protocol +buffers. + +There is support for gRPC in Go using protocol buffers. +See the note at the bottom of this file for details. + +There are no insertion points in the plugin. + + +## Using protocol buffers with Go ## + +Once the software is installed, there are two steps to using it. +First you must compile the protocol buffer definitions and then import +them, with the support library, into your program. + +To compile the protocol buffer definition, run protoc with the --go_out +parameter set to the directory you want to output the Go code to. + + protoc --go_out=. *.proto + +The generated files will be suffixed .pb.go. See the Test code below +for an example using such a file. + + +The package comment for the proto library contains text describing +the interface provided in Go for protocol buffers. Here is an edited +version. + +========== + +The proto package converts data structures to and from the +wire format of protocol buffers. It works in concert with the +Go source code generated for .proto files by the protocol compiler. + +A summary of the properties of the protocol buffer interface +for a protocol buffer variable v: + + - Names are turned from camel_case to CamelCase for export. + - There are no methods on v to set fields; just treat + them as structure fields. + - There are getters that return a field's value if set, + and return the field's default value if unset. + The getters work even if the receiver is a nil message. + - The zero value for a struct is its correct initialization state. + All desired fields must be set before marshaling. + - A Reset() method will restore a protobuf struct to its zero state. + - Non-repeated fields are pointers to the values; nil means unset. + That is, optional or required field int32 f becomes F *int32. + - Repeated fields are slices. + - Helper functions are available to aid the setting of fields. + Helpers for getting values are superseded by the + GetFoo methods and their use is deprecated. + msg.Foo = proto.String("hello") // set field + - Constants are defined to hold the default values of all fields that + have them. They have the form Default_StructName_FieldName. + Because the getter methods handle defaulted values, + direct use of these constants should be rare. + - Enums are given type names and maps from names to values. + Enum values are prefixed with the enum's type name. Enum types have + a String method, and a Enum method to assist in message construction. + - Nested groups and enums have type names prefixed with the name of + the surrounding message type. + - Extensions are given descriptor names that start with E_, + followed by an underscore-delimited list of the nested messages + that contain it (if any) followed by the CamelCased name of the + extension field itself. HasExtension, ClearExtension, GetExtension + and SetExtension are functions for manipulating extensions. + - Oneof field sets are given a single field in their message, + with distinguished wrapper types for each possible field value. + - Marshal and Unmarshal are functions to encode and decode the wire format. + +When the .proto file specifies `syntax="proto3"`, there are some differences: + + - Non-repeated fields of non-message type are values instead of pointers. + - Getters are only generated for message and oneof fields. + - Enum types do not get an Enum method. + +Consider file test.proto, containing + +```proto + package example; + + enum FOO { X = 17; }; + + message Test { + required string label = 1; + optional int32 type = 2 [default=77]; + repeated int64 reps = 3; + optional group OptionalGroup = 4 { + required string RequiredField = 5; + } + } +``` + +To create and play with a Test object from the example package, + +```go + package main + + import ( + "log" + + "github.com/golang/protobuf/proto" + "path/to/example" + ) + + func main() { + test := &example.Test { + Label: proto.String("hello"), + Type: proto.Int32(17), + Reps: []int64{1, 2, 3}, + Optionalgroup: &example.Test_OptionalGroup { + RequiredField: proto.String("good bye"), + }, + } + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + newTest := &example.Test{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } + // Now test and newTest contain the same data. + if test.GetLabel() != newTest.GetLabel() { + log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) + } + // etc. + } +``` + +## Parameters ## + +To pass extra parameters to the plugin, use a comma-separated +parameter list separated from the output directory by a colon: + + + protoc --go_out=plugins=grpc,import_path=mypackage:. *.proto + + +- `import_prefix=xxx` - a prefix that is added onto the beginning of + all imports. Useful for things like generating protos in a + subdirectory, or regenerating vendored protobufs in-place. +- `import_path=foo/bar` - used as the package if no input files + declare `go_package`. If it contains slashes, everything up to the + rightmost slash is ignored. +- `plugins=plugin1+plugin2` - specifies the list of sub-plugins to + load. The only plugin in this repo is `grpc`. +- `Mfoo/bar.proto=quux/shme` - declares that foo/bar.proto is + associated with Go package quux/shme. This is subject to the + import_prefix parameter. + +## gRPC Support ## + +If a proto file specifies RPC services, protoc-gen-go can be instructed to +generate code compatible with gRPC (http://www.grpc.io/). To do this, pass +the `plugins` parameter to protoc-gen-go; the usual way is to insert it into +the --go_out argument to protoc: + + protoc --go_out=plugins=grpc:. *.proto + +## Plugins ## + +The `protoc-gen-go/generator` package exposes a plugin interface, +which is used by the gRPC code generation. This interface is not +supported and is subject to incompatible changes without notice. diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb.go b/vendor/github.com/golang/protobuf/jsonpb/jsonpb.go new file mode 100644 index 00000000..6308548c --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb.go @@ -0,0 +1,799 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package jsonpb provides marshaling and unmarshaling between protocol buffers and JSON. +It follows the specification at https://developers.google.com/protocol-buffers/docs/proto3#json. + +This package produces a different output than the standard "encoding/json" package, +which does not operate correctly on protocol buffers. +*/ +package jsonpb + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "reflect" + "sort" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" +) + +// Marshaler is a configurable object for converting between +// protocol buffer objects and a JSON representation for them. +type Marshaler struct { + // Whether to render enum values as integers, as opposed to string values. + EnumsAsInts bool + + // Whether to render fields with zero values. + EmitDefaults bool + + // A string to indent each level by. The presence of this field will + // also cause a space to appear between the field separator and + // value, and for newlines to be appear between fields and array + // elements. + Indent string + + // Whether to use the original (.proto) name for fields. + OrigName bool +} + +// Marshal marshals a protocol buffer into JSON. +func (m *Marshaler) Marshal(out io.Writer, pb proto.Message) error { + writer := &errWriter{writer: out} + return m.marshalObject(writer, pb, "", "") +} + +// MarshalToString converts a protocol buffer object to JSON string. +func (m *Marshaler) MarshalToString(pb proto.Message) (string, error) { + var buf bytes.Buffer + if err := m.Marshal(&buf, pb); err != nil { + return "", err + } + return buf.String(), nil +} + +type int32Slice []int32 + +// For sorting extensions ids to ensure stable output. +func (s int32Slice) Len() int { return len(s) } +func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } +func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +type wkt interface { + XXX_WellKnownType() string +} + +// marshalObject writes a struct to the Writer. +func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeURL string) error { + s := reflect.ValueOf(v).Elem() + + // Handle well-known types. + if wkt, ok := v.(wkt); ok { + switch wkt.XXX_WellKnownType() { + case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", + "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": + // "Wrappers use the same representation in JSON + // as the wrapped primitive type, ..." + sprop := proto.GetProperties(s.Type()) + return m.marshalValue(out, sprop.Prop[0], s.Field(0), indent) + case "Any": + // Any is a bit more involved. + return m.marshalAny(out, v, indent) + case "Duration": + // "Generated output always contains 3, 6, or 9 fractional digits, + // depending on required precision." + s, ns := s.Field(0).Int(), s.Field(1).Int() + d := time.Duration(s)*time.Second + time.Duration(ns)*time.Nanosecond + x := fmt.Sprintf("%.9f", d.Seconds()) + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + out.write(`"`) + out.write(x) + out.write(`s"`) + return out.err + case "Struct": + // Let marshalValue handle the `fields` map. + // TODO: pass the correct Properties if needed. + return m.marshalValue(out, &proto.Properties{}, s.Field(0), indent) + case "Timestamp": + // "RFC 3339, where generated output will always be Z-normalized + // and uses 3, 6 or 9 fractional digits." + s, ns := s.Field(0).Int(), s.Field(1).Int() + t := time.Unix(s, ns).UTC() + // time.RFC3339Nano isn't exactly right (we need to get 3/6/9 fractional digits). + x := t.Format("2006-01-02T15:04:05.000000000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + out.write(`"`) + out.write(x) + out.write(`Z"`) + return out.err + case "Value": + // Value has a single oneof. + kind := s.Field(0) + if kind.IsNil() { + // "absence of any variant indicates an error" + return errors.New("nil Value") + } + // oneof -> *T -> T -> T.F + x := kind.Elem().Elem().Field(0) + // TODO: pass the correct Properties if needed. + return m.marshalValue(out, &proto.Properties{}, x, indent) + } + } + + out.write("{") + if m.Indent != "" { + out.write("\n") + } + + firstField := true + + if typeURL != "" { + if err := m.marshalTypeURL(out, indent, typeURL); err != nil { + return err + } + firstField = false + } + + for i := 0; i < s.NumField(); i++ { + value := s.Field(i) + valueField := s.Type().Field(i) + if strings.HasPrefix(valueField.Name, "XXX_") { + continue + } + + // IsNil will panic on most value kinds. + switch value.Kind() { + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + if value.IsNil() { + continue + } + } + + if !m.EmitDefaults { + switch value.Kind() { + case reflect.Bool: + if !value.Bool() { + continue + } + case reflect.Int32, reflect.Int64: + if value.Int() == 0 { + continue + } + case reflect.Uint32, reflect.Uint64: + if value.Uint() == 0 { + continue + } + case reflect.Float32, reflect.Float64: + if value.Float() == 0 { + continue + } + case reflect.String: + if value.Len() == 0 { + continue + } + } + } + + // Oneof fields need special handling. + if valueField.Tag.Get("protobuf_oneof") != "" { + // value is an interface containing &T{real_value}. + sv := value.Elem().Elem() // interface -> *T -> T + value = sv.Field(0) + valueField = sv.Type().Field(0) + } + prop := jsonProperties(valueField, m.OrigName) + if !firstField { + m.writeSep(out) + } + if err := m.marshalField(out, prop, value, indent); err != nil { + return err + } + firstField = false + } + + // Handle proto2 extensions. + if ep, ok := v.(proto.Message); ok { + extensions := proto.RegisteredExtensions(v) + // Sort extensions for stable output. + ids := make([]int32, 0, len(extensions)) + for id, desc := range extensions { + if !proto.HasExtension(ep, desc) { + continue + } + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) + for _, id := range ids { + desc := extensions[id] + if desc == nil { + // unknown extension + continue + } + ext, extErr := proto.GetExtension(ep, desc) + if extErr != nil { + return extErr + } + value := reflect.ValueOf(ext) + var prop proto.Properties + prop.Parse(desc.Tag) + prop.JSONName = fmt.Sprintf("[%s]", desc.Name) + if !firstField { + m.writeSep(out) + } + if err := m.marshalField(out, &prop, value, indent); err != nil { + return err + } + firstField = false + } + + } + + if m.Indent != "" { + out.write("\n") + out.write(indent) + } + out.write("}") + return out.err +} + +func (m *Marshaler) writeSep(out *errWriter) { + if m.Indent != "" { + out.write(",\n") + } else { + out.write(",") + } +} + +func (m *Marshaler) marshalAny(out *errWriter, any proto.Message, indent string) error { + // "If the Any contains a value that has a special JSON mapping, + // it will be converted as follows: {"@type": xxx, "value": yyy}. + // Otherwise, the value will be converted into a JSON object, + // and the "@type" field will be inserted to indicate the actual data type." + v := reflect.ValueOf(any).Elem() + turl := v.Field(0).String() + val := v.Field(1).Bytes() + + // Only the part of type_url after the last slash is relevant. + mname := turl + if slash := strings.LastIndex(mname, "/"); slash >= 0 { + mname = mname[slash+1:] + } + mt := proto.MessageType(mname) + if mt == nil { + return fmt.Errorf("unknown message type %q", mname) + } + msg := reflect.New(mt.Elem()).Interface().(proto.Message) + if err := proto.Unmarshal(val, msg); err != nil { + return err + } + + if _, ok := msg.(wkt); ok { + out.write("{") + if m.Indent != "" { + out.write("\n") + } + if err := m.marshalTypeURL(out, indent, turl); err != nil { + return err + } + m.writeSep(out) + if m.Indent != "" { + out.write(indent) + out.write(m.Indent) + out.write(`"value": `) + } else { + out.write(`"value":`) + } + if err := m.marshalObject(out, msg, indent+m.Indent, ""); err != nil { + return err + } + if m.Indent != "" { + out.write("\n") + out.write(indent) + } + out.write("}") + return out.err + } + + return m.marshalObject(out, msg, indent, turl) +} + +func (m *Marshaler) marshalTypeURL(out *errWriter, indent, typeURL string) error { + if m.Indent != "" { + out.write(indent) + out.write(m.Indent) + } + out.write(`"@type":`) + if m.Indent != "" { + out.write(" ") + } + b, err := json.Marshal(typeURL) + if err != nil { + return err + } + out.write(string(b)) + return out.err +} + +// marshalField writes field description and value to the Writer. +func (m *Marshaler) marshalField(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { + if m.Indent != "" { + out.write(indent) + out.write(m.Indent) + } + out.write(`"`) + out.write(prop.JSONName) + out.write(`":`) + if m.Indent != "" { + out.write(" ") + } + if err := m.marshalValue(out, prop, v, indent); err != nil { + return err + } + return nil +} + +// marshalValue writes the value to the Writer. +func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { + + var err error + v = reflect.Indirect(v) + + // Handle repeated elements. + if v.Kind() == reflect.Slice && v.Type().Elem().Kind() != reflect.Uint8 { + out.write("[") + comma := "" + for i := 0; i < v.Len(); i++ { + sliceVal := v.Index(i) + out.write(comma) + if m.Indent != "" { + out.write("\n") + out.write(indent) + out.write(m.Indent) + out.write(m.Indent) + } + if err := m.marshalValue(out, prop, sliceVal, indent+m.Indent); err != nil { + return err + } + comma = "," + } + if m.Indent != "" { + out.write("\n") + out.write(indent) + out.write(m.Indent) + } + out.write("]") + return out.err + } + + // Handle well-known types. + // Most are handled up in marshalObject (because 99% are messages). + type wkt interface { + XXX_WellKnownType() string + } + if wkt, ok := v.Interface().(wkt); ok { + switch wkt.XXX_WellKnownType() { + case "NullValue": + out.write("null") + return out.err + } + } + + // Handle enumerations. + if !m.EnumsAsInts && prop.Enum != "" { + // Unknown enum values will are stringified by the proto library as their + // value. Such values should _not_ be quoted or they will be interpreted + // as an enum string instead of their value. + enumStr := v.Interface().(fmt.Stringer).String() + var valStr string + if v.Kind() == reflect.Ptr { + valStr = strconv.Itoa(int(v.Elem().Int())) + } else { + valStr = strconv.Itoa(int(v.Int())) + } + isKnownEnum := enumStr != valStr + if isKnownEnum { + out.write(`"`) + } + out.write(enumStr) + if isKnownEnum { + out.write(`"`) + } + return out.err + } + + // Handle nested messages. + if v.Kind() == reflect.Struct { + return m.marshalObject(out, v.Addr().Interface().(proto.Message), indent+m.Indent, "") + } + + // Handle maps. + // Since Go randomizes map iteration, we sort keys for stable output. + if v.Kind() == reflect.Map { + out.write(`{`) + keys := v.MapKeys() + sort.Sort(mapKeys(keys)) + for i, k := range keys { + if i > 0 { + out.write(`,`) + } + if m.Indent != "" { + out.write("\n") + out.write(indent) + out.write(m.Indent) + out.write(m.Indent) + } + + b, err := json.Marshal(k.Interface()) + if err != nil { + return err + } + s := string(b) + + // If the JSON is not a string value, encode it again to make it one. + if !strings.HasPrefix(s, `"`) { + b, err := json.Marshal(s) + if err != nil { + return err + } + s = string(b) + } + + out.write(s) + out.write(`:`) + if m.Indent != "" { + out.write(` `) + } + + if err := m.marshalValue(out, prop, v.MapIndex(k), indent+m.Indent); err != nil { + return err + } + } + if m.Indent != "" { + out.write("\n") + out.write(indent) + out.write(m.Indent) + } + out.write(`}`) + return out.err + } + + // Default handling defers to the encoding/json library. + b, err := json.Marshal(v.Interface()) + if err != nil { + return err + } + needToQuote := string(b[0]) != `"` && (v.Kind() == reflect.Int64 || v.Kind() == reflect.Uint64) + if needToQuote { + out.write(`"`) + } + out.write(string(b)) + if needToQuote { + out.write(`"`) + } + return out.err +} + +// UnmarshalNext unmarshals the next protocol buffer from a JSON object stream. +// This function is lenient and will decode any options permutations of the +// related Marshaler. +func UnmarshalNext(dec *json.Decoder, pb proto.Message) error { + inputValue := json.RawMessage{} + if err := dec.Decode(&inputValue); err != nil { + return err + } + return unmarshalValue(reflect.ValueOf(pb).Elem(), inputValue, nil) +} + +// Unmarshal unmarshals a JSON object stream into a protocol +// buffer. This function is lenient and will decode any options +// permutations of the related Marshaler. +func Unmarshal(r io.Reader, pb proto.Message) error { + dec := json.NewDecoder(r) + return UnmarshalNext(dec, pb) +} + +// UnmarshalString will populate the fields of a protocol buffer based +// on a JSON string. This function is lenient and will decode any options +// permutations of the related Marshaler. +func UnmarshalString(str string, pb proto.Message) error { + return Unmarshal(strings.NewReader(str), pb) +} + +// unmarshalValue converts/copies a value into the target. +// prop may be nil. +func unmarshalValue(target reflect.Value, inputValue json.RawMessage, prop *proto.Properties) error { + targetType := target.Type() + + // Allocate memory for pointer fields. + if targetType.Kind() == reflect.Ptr { + target.Set(reflect.New(targetType.Elem())) + return unmarshalValue(target.Elem(), inputValue, prop) + } + + // Handle well-known types. + type wkt interface { + XXX_WellKnownType() string + } + if wkt, ok := target.Addr().Interface().(wkt); ok { + switch wkt.XXX_WellKnownType() { + case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", + "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": + // "Wrappers use the same representation in JSON + // as the wrapped primitive type, except that null is allowed." + // encoding/json will turn JSON `null` into Go `nil`, + // so we don't have to do any extra work. + return unmarshalValue(target.Field(0), inputValue, prop) + case "Any": + return fmt.Errorf("unmarshaling Any not supported yet") + case "Duration": + unq, err := strconv.Unquote(string(inputValue)) + if err != nil { + return err + } + d, err := time.ParseDuration(unq) + if err != nil { + return fmt.Errorf("bad Duration: %v", err) + } + ns := d.Nanoseconds() + s := ns / 1e9 + ns %= 1e9 + target.Field(0).SetInt(s) + target.Field(1).SetInt(ns) + return nil + case "Timestamp": + unq, err := strconv.Unquote(string(inputValue)) + if err != nil { + return err + } + t, err := time.Parse(time.RFC3339Nano, unq) + if err != nil { + return fmt.Errorf("bad Timestamp: %v", err) + } + ns := t.UnixNano() + s := ns / 1e9 + ns %= 1e9 + target.Field(0).SetInt(s) + target.Field(1).SetInt(ns) + return nil + } + } + + // Handle enums, which have an underlying type of int32, + // and may appear as strings. + // The case of an enum appearing as a number is handled + // at the bottom of this function. + if inputValue[0] == '"' && prop != nil && prop.Enum != "" { + vmap := proto.EnumValueMap(prop.Enum) + // Don't need to do unquoting; valid enum names + // are from a limited character set. + s := inputValue[1 : len(inputValue)-1] + n, ok := vmap[string(s)] + if !ok { + return fmt.Errorf("unknown value %q for enum %s", s, prop.Enum) + } + if target.Kind() == reflect.Ptr { // proto2 + target.Set(reflect.New(targetType.Elem())) + target = target.Elem() + } + target.SetInt(int64(n)) + return nil + } + + // Handle nested messages. + if targetType.Kind() == reflect.Struct { + var jsonFields map[string]json.RawMessage + if err := json.Unmarshal(inputValue, &jsonFields); err != nil { + return err + } + + consumeField := func(prop *proto.Properties) (json.RawMessage, bool) { + // Be liberal in what names we accept; both orig_name and camelName are okay. + fieldNames := acceptedJSONFieldNames(prop) + + vOrig, okOrig := jsonFields[fieldNames.orig] + vCamel, okCamel := jsonFields[fieldNames.camel] + if !okOrig && !okCamel { + return nil, false + } + // If, for some reason, both are present in the data, favour the camelName. + var raw json.RawMessage + if okOrig { + raw = vOrig + delete(jsonFields, fieldNames.orig) + } + if okCamel { + raw = vCamel + delete(jsonFields, fieldNames.camel) + } + return raw, true + } + + sprops := proto.GetProperties(targetType) + for i := 0; i < target.NumField(); i++ { + ft := target.Type().Field(i) + if strings.HasPrefix(ft.Name, "XXX_") { + continue + } + + valueForField, ok := consumeField(sprops.Prop[i]) + if !ok { + continue + } + + if err := unmarshalValue(target.Field(i), valueForField, sprops.Prop[i]); err != nil { + return err + } + } + // Check for any oneof fields. + if len(jsonFields) > 0 { + for _, oop := range sprops.OneofTypes { + raw, ok := consumeField(oop.Prop) + if !ok { + continue + } + nv := reflect.New(oop.Type.Elem()) + target.Field(oop.Field).Set(nv) + if err := unmarshalValue(nv.Elem().Field(0), raw, oop.Prop); err != nil { + return err + } + } + } + if len(jsonFields) > 0 { + // Pick any field to be the scapegoat. + var f string + for fname := range jsonFields { + f = fname + break + } + return fmt.Errorf("unknown field %q in %v", f, targetType) + } + return nil + } + + // Handle arrays (which aren't encoded bytes) + if targetType.Kind() == reflect.Slice && targetType.Elem().Kind() != reflect.Uint8 { + var slc []json.RawMessage + if err := json.Unmarshal(inputValue, &slc); err != nil { + return err + } + len := len(slc) + target.Set(reflect.MakeSlice(targetType, len, len)) + for i := 0; i < len; i++ { + if err := unmarshalValue(target.Index(i), slc[i], prop); err != nil { + return err + } + } + return nil + } + + // Handle maps (whose keys are always strings) + if targetType.Kind() == reflect.Map { + var mp map[string]json.RawMessage + if err := json.Unmarshal(inputValue, &mp); err != nil { + return err + } + target.Set(reflect.MakeMap(targetType)) + var keyprop, valprop *proto.Properties + if prop != nil { + // These could still be nil if the protobuf metadata is broken somehow. + // TODO: This won't work because the fields are unexported. + // We should probably just reparse them. + //keyprop, valprop = prop.mkeyprop, prop.mvalprop + } + for ks, raw := range mp { + // Unmarshal map key. The core json library already decoded the key into a + // string, so we handle that specially. Other types were quoted post-serialization. + var k reflect.Value + if targetType.Key().Kind() == reflect.String { + k = reflect.ValueOf(ks) + } else { + k = reflect.New(targetType.Key()).Elem() + if err := unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { + return err + } + } + + // Unmarshal map value. + v := reflect.New(targetType.Elem()).Elem() + if err := unmarshalValue(v, raw, valprop); err != nil { + return err + } + target.SetMapIndex(k, v) + } + return nil + } + + // 64-bit integers can be encoded as strings. In this case we drop + // the quotes and proceed as normal. + isNum := targetType.Kind() == reflect.Int64 || targetType.Kind() == reflect.Uint64 + if isNum && strings.HasPrefix(string(inputValue), `"`) { + inputValue = inputValue[1 : len(inputValue)-1] + } + + // Use the encoding/json for parsing other value types. + return json.Unmarshal(inputValue, target.Addr().Interface()) +} + +// jsonProperties returns parsed proto.Properties for the field and corrects JSONName attribute. +func jsonProperties(f reflect.StructField, origName bool) *proto.Properties { + var prop proto.Properties + prop.Init(f.Type, f.Name, f.Tag.Get("protobuf"), &f) + if origName || prop.JSONName == "" { + prop.JSONName = prop.OrigName + } + return &prop +} + +type fieldNames struct { + orig, camel string +} + +func acceptedJSONFieldNames(prop *proto.Properties) fieldNames { + opts := fieldNames{orig: prop.OrigName, camel: prop.OrigName} + if prop.JSONName != "" { + opts.camel = prop.JSONName + } + return opts +} + +// Writer wrapper inspired by https://blog.golang.org/errors-are-values +type errWriter struct { + writer io.Writer + err error +} + +func (w *errWriter) write(str string) { + if w.err != nil { + return + } + _, w.err = w.writer.Write([]byte(str)) +} + +// Map fields may have key types of non-float scalars, strings and enums. +// The easiest way to sort them in some deterministic order is to use fmt. +// If this turns out to be inefficient we can always consider other options, +// such as doing a Schwartzian transform. +type mapKeys []reflect.Value + +func (s mapKeys) Len() int { return len(s) } +func (s mapKeys) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s mapKeys) Less(i, j int) bool { + return fmt.Sprint(s[i].Interface()) < fmt.Sprint(s[j].Interface()) +} diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test.go b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test.go new file mode 100644 index 00000000..659dbede --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test.go @@ -0,0 +1,548 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package jsonpb + +import ( + "bytes" + "encoding/json" + "io" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + + pb "github.com/golang/protobuf/jsonpb/jsonpb_test_proto" + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + anypb "github.com/golang/protobuf/ptypes/any" + durpb "github.com/golang/protobuf/ptypes/duration" + stpb "github.com/golang/protobuf/ptypes/struct" + tspb "github.com/golang/protobuf/ptypes/timestamp" + wpb "github.com/golang/protobuf/ptypes/wrappers" +) + +var ( + marshaler = Marshaler{} + + marshalerAllOptions = Marshaler{ + Indent: " ", + } + + simpleObject = &pb.Simple{ + OInt32: proto.Int32(-32), + OInt64: proto.Int64(-6400000000), + OUint32: proto.Uint32(32), + OUint64: proto.Uint64(6400000000), + OSint32: proto.Int32(-13), + OSint64: proto.Int64(-2600000000), + OFloat: proto.Float32(3.14), + ODouble: proto.Float64(6.02214179e23), + OBool: proto.Bool(true), + OString: proto.String("hello \"there\""), + OBytes: []byte("beep boop"), + } + + simpleObjectJSON = `{` + + `"oBool":true,` + + `"oInt32":-32,` + + `"oInt64":"-6400000000",` + + `"oUint32":32,` + + `"oUint64":"6400000000",` + + `"oSint32":-13,` + + `"oSint64":"-2600000000",` + + `"oFloat":3.14,` + + `"oDouble":6.02214179e+23,` + + `"oString":"hello \"there\"",` + + `"oBytes":"YmVlcCBib29w"` + + `}` + + simpleObjectPrettyJSON = `{ + "oBool": true, + "oInt32": -32, + "oInt64": "-6400000000", + "oUint32": 32, + "oUint64": "6400000000", + "oSint32": -13, + "oSint64": "-2600000000", + "oFloat": 3.14, + "oDouble": 6.02214179e+23, + "oString": "hello \"there\"", + "oBytes": "YmVlcCBib29w" +}` + + repeatsObject = &pb.Repeats{ + RBool: []bool{true, false, true}, + RInt32: []int32{-3, -4, -5}, + RInt64: []int64{-123456789, -987654321}, + RUint32: []uint32{1, 2, 3}, + RUint64: []uint64{6789012345, 3456789012}, + RSint32: []int32{-1, -2, -3}, + RSint64: []int64{-6789012345, -3456789012}, + RFloat: []float32{3.14, 6.28}, + RDouble: []float64{299792458, 6.62606957e-34}, + RString: []string{"happy", "days"}, + RBytes: [][]byte{[]byte("skittles"), []byte("m&m's")}, + } + + repeatsObjectJSON = `{` + + `"rBool":[true,false,true],` + + `"rInt32":[-3,-4,-5],` + + `"rInt64":["-123456789","-987654321"],` + + `"rUint32":[1,2,3],` + + `"rUint64":["6789012345","3456789012"],` + + `"rSint32":[-1,-2,-3],` + + `"rSint64":["-6789012345","-3456789012"],` + + `"rFloat":[3.14,6.28],` + + `"rDouble":[2.99792458e+08,6.62606957e-34],` + + `"rString":["happy","days"],` + + `"rBytes":["c2tpdHRsZXM=","bSZtJ3M="]` + + `}` + + repeatsObjectPrettyJSON = `{ + "rBool": [ + true, + false, + true + ], + "rInt32": [ + -3, + -4, + -5 + ], + "rInt64": [ + "-123456789", + "-987654321" + ], + "rUint32": [ + 1, + 2, + 3 + ], + "rUint64": [ + "6789012345", + "3456789012" + ], + "rSint32": [ + -1, + -2, + -3 + ], + "rSint64": [ + "-6789012345", + "-3456789012" + ], + "rFloat": [ + 3.14, + 6.28 + ], + "rDouble": [ + 2.99792458e+08, + 6.62606957e-34 + ], + "rString": [ + "happy", + "days" + ], + "rBytes": [ + "c2tpdHRsZXM=", + "bSZtJ3M=" + ] +}` + + innerSimple = &pb.Simple{OInt32: proto.Int32(-32)} + innerSimple2 = &pb.Simple{OInt64: proto.Int64(25)} + innerRepeats = &pb.Repeats{RString: []string{"roses", "red"}} + innerRepeats2 = &pb.Repeats{RString: []string{"violets", "blue"}} + complexObject = &pb.Widget{ + Color: pb.Widget_GREEN.Enum(), + RColor: []pb.Widget_Color{pb.Widget_RED, pb.Widget_GREEN, pb.Widget_BLUE}, + Simple: innerSimple, + RSimple: []*pb.Simple{innerSimple, innerSimple2}, + Repeats: innerRepeats, + RRepeats: []*pb.Repeats{innerRepeats, innerRepeats2}, + } + + complexObjectJSON = `{"color":"GREEN",` + + `"rColor":["RED","GREEN","BLUE"],` + + `"simple":{"oInt32":-32},` + + `"rSimple":[{"oInt32":-32},{"oInt64":"25"}],` + + `"repeats":{"rString":["roses","red"]},` + + `"rRepeats":[{"rString":["roses","red"]},{"rString":["violets","blue"]}]` + + `}` + + complexObjectPrettyJSON = `{ + "color": "GREEN", + "rColor": [ + "RED", + "GREEN", + "BLUE" + ], + "simple": { + "oInt32": -32 + }, + "rSimple": [ + { + "oInt32": -32 + }, + { + "oInt64": "25" + } + ], + "repeats": { + "rString": [ + "roses", + "red" + ] + }, + "rRepeats": [ + { + "rString": [ + "roses", + "red" + ] + }, + { + "rString": [ + "violets", + "blue" + ] + } + ] +}` + + colorPrettyJSON = `{ + "color": 2 +}` + + colorListPrettyJSON = `{ + "color": 1000, + "rColor": [ + "RED" + ] +}` + + nummyPrettyJSON = `{ + "nummy": { + "1": 2, + "3": 4 + } +}` + + objjyPrettyJSON = `{ + "objjy": { + "1": { + "dub": 1 + } + } +}` + realNumber = &pb.Real{Value: proto.Float64(3.14159265359)} + realNumberName = "Pi" + complexNumber = &pb.Complex{Imaginary: proto.Float64(0.5772156649)} + realNumberJSON = `{` + + `"value":3.14159265359,` + + `"[jsonpb.Complex.real_extension]":{"imaginary":0.5772156649},` + + `"[jsonpb.name]":"Pi"` + + `}` + + anySimple = &pb.KnownTypes{ + An: &anypb.Any{ + TypeUrl: "something.example.com/jsonpb.Simple", + Value: []byte{ + // &pb.Simple{OBool:true} + 1 << 3, 1, + }, + }, + } + anySimpleJSON = `{"an":{"@type":"something.example.com/jsonpb.Simple","oBool":true}}` + anySimplePrettyJSON = `{ + "an": { + "@type": "something.example.com/jsonpb.Simple", + "oBool": true + } +}` + + anyWellKnown = &pb.KnownTypes{ + An: &anypb.Any{ + TypeUrl: "type.googleapis.com/google.protobuf.Duration", + Value: []byte{ + // &durpb.Duration{Seconds: 1, Nanos: 212000000 } + 1 << 3, 1, // seconds + 2 << 3, 0x80, 0xba, 0x8b, 0x65, // nanos + }, + }, + } + anyWellKnownJSON = `{"an":{"@type":"type.googleapis.com/google.protobuf.Duration","value":"1.212s"}}` + anyWellKnownPrettyJSON = `{ + "an": { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } +}` +) + +func init() { + if err := proto.SetExtension(realNumber, pb.E_Name, &realNumberName); err != nil { + panic(err) + } + if err := proto.SetExtension(realNumber, pb.E_Complex_RealExtension, complexNumber); err != nil { + panic(err) + } +} + +var marshalingTests = []struct { + desc string + marshaler Marshaler + pb proto.Message + json string +}{ + {"simple flat object", marshaler, simpleObject, simpleObjectJSON}, + {"simple pretty object", marshalerAllOptions, simpleObject, simpleObjectPrettyJSON}, + {"repeated fields flat object", marshaler, repeatsObject, repeatsObjectJSON}, + {"repeated fields pretty object", marshalerAllOptions, repeatsObject, repeatsObjectPrettyJSON}, + {"nested message/enum flat object", marshaler, complexObject, complexObjectJSON}, + {"nested message/enum pretty object", marshalerAllOptions, complexObject, complexObjectPrettyJSON}, + {"enum-string flat object", Marshaler{}, + &pb.Widget{Color: pb.Widget_BLUE.Enum()}, `{"color":"BLUE"}`}, + {"enum-value pretty object", Marshaler{EnumsAsInts: true, Indent: " "}, + &pb.Widget{Color: pb.Widget_BLUE.Enum()}, colorPrettyJSON}, + {"unknown enum value object", marshalerAllOptions, + &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}, colorListPrettyJSON}, + {"repeated proto3 enum", Marshaler{}, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}, + `{"rFunny":["PUNS","SLAPSTICK"]}`}, + {"repeated proto3 enum as int", Marshaler{EnumsAsInts: true}, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}, + `{"rFunny":[1,2]}`}, + {"empty value", marshaler, &pb.Simple3{}, `{}`}, + {"empty value emitted", Marshaler{EmitDefaults: true}, &pb.Simple3{}, `{"dub":0}`}, + {"map", marshaler, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, `{"nummy":{"1":2,"3":4}}`}, + {"map", marshalerAllOptions, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, nummyPrettyJSON}, + {"map", marshaler, + &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}, + `{"strry":{"\"one\"":"two","three":"four"}}`}, + {"map", marshaler, + &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}, `{"objjy":{"1":{"dub":1}}}`}, + {"map", marshalerAllOptions, + &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}, objjyPrettyJSON}, + {"map", marshaler, &pb.Mappy{Buggy: map[int64]string{1234: "yup"}}, + `{"buggy":{"1234":"yup"}}`}, + {"map", marshaler, &pb.Mappy{Booly: map[bool]bool{false: true}}, `{"booly":{"false":true}}`}, + // TODO: This is broken. + //{"map", marshaler, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}, `{"enumy":{"XIV":"ROMAN"}`}, + {"map", Marshaler{EnumsAsInts: true}, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}, `{"enumy":{"XIV":2}}`}, + {"proto2 map", marshaler, &pb.Maps{MInt64Str: map[int64]string{213: "cat"}}, + `{"mInt64Str":{"213":"cat"}}`}, + {"proto2 map", marshaler, + &pb.Maps{MBoolSimple: map[bool]*pb.Simple{true: &pb.Simple{OInt32: proto.Int32(1)}}}, + `{"mBoolSimple":{"true":{"oInt32":1}}}`}, + {"oneof, not set", marshaler, &pb.MsgWithOneof{}, `{}`}, + {"oneof, set", marshaler, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Title{"Grand Poobah"}}, `{"title":"Grand Poobah"}`}, + {"force orig_name", Marshaler{OrigName: true}, &pb.Simple{OInt32: proto.Int32(4)}, + `{"o_int32":4}`}, + {"proto2 extension", marshaler, realNumber, realNumberJSON}, + {"Any with message", marshaler, anySimple, anySimpleJSON}, + {"Any with message and indent", marshalerAllOptions, anySimple, anySimplePrettyJSON}, + {"Any with WKT", marshaler, anyWellKnown, anyWellKnownJSON}, + {"Any with WKT and indent", marshalerAllOptions, anyWellKnown, anyWellKnownPrettyJSON}, + {"Duration", marshaler, &pb.KnownTypes{Dur: &durpb.Duration{Seconds: 3}}, `{"dur":"3.000s"}`}, + {"Struct", marshaler, &pb.KnownTypes{St: &stpb.Struct{ + Fields: map[string]*stpb.Value{ + "one": &stpb.Value{Kind: &stpb.Value_StringValue{"loneliest number"}}, + "two": &stpb.Value{Kind: &stpb.Value_NullValue{stpb.NullValue_NULL_VALUE}}, + }, + }}, `{"st":{"one":"loneliest number","two":null}}`}, + {"Timestamp", marshaler, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: 14e8, Nanos: 21e6}}, `{"ts":"2014-05-13T16:53:20.021Z"}`}, + + {"DoubleValue", marshaler, &pb.KnownTypes{Dbl: &wpb.DoubleValue{Value: 1.2}}, `{"dbl":1.2}`}, + {"FloatValue", marshaler, &pb.KnownTypes{Flt: &wpb.FloatValue{Value: 1.2}}, `{"flt":1.2}`}, + {"Int64Value", marshaler, &pb.KnownTypes{I64: &wpb.Int64Value{Value: -3}}, `{"i64":"-3"}`}, + {"UInt64Value", marshaler, &pb.KnownTypes{U64: &wpb.UInt64Value{Value: 3}}, `{"u64":"3"}`}, + {"Int32Value", marshaler, &pb.KnownTypes{I32: &wpb.Int32Value{Value: -4}}, `{"i32":-4}`}, + {"UInt32Value", marshaler, &pb.KnownTypes{U32: &wpb.UInt32Value{Value: 4}}, `{"u32":4}`}, + {"BoolValue", marshaler, &pb.KnownTypes{Bool: &wpb.BoolValue{Value: true}}, `{"bool":true}`}, + {"StringValue", marshaler, &pb.KnownTypes{Str: &wpb.StringValue{Value: "plush"}}, `{"str":"plush"}`}, + {"BytesValue", marshaler, &pb.KnownTypes{Bytes: &wpb.BytesValue{Value: []byte("wow")}}, `{"bytes":"d293"}`}, +} + +func TestMarshaling(t *testing.T) { + for _, tt := range marshalingTests { + json, err := tt.marshaler.MarshalToString(tt.pb) + if err != nil { + t.Errorf("%s: marshaling error: %v", tt.desc, err) + } else if tt.json != json { + t.Errorf("%s: got [%v] want [%v]", tt.desc, json, tt.json) + } + } +} + +var unmarshalingTests = []struct { + desc string + json string + pb proto.Message +}{ + {"simple flat object", simpleObjectJSON, simpleObject}, + {"simple pretty object", simpleObjectPrettyJSON, simpleObject}, + {"repeated fields flat object", repeatsObjectJSON, repeatsObject}, + {"repeated fields pretty object", repeatsObjectPrettyJSON, repeatsObject}, + {"nested message/enum flat object", complexObjectJSON, complexObject}, + {"nested message/enum pretty object", complexObjectPrettyJSON, complexObject}, + {"enum-string object", `{"color":"BLUE"}`, &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, + {"enum-value object", "{\n \"color\": 2\n}", &pb.Widget{Color: pb.Widget_BLUE.Enum()}}, + {"proto3 enum string", `{"hilarity":"PUNS"}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, + {"proto3 enum value", `{"hilarity":1}`, &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, + {"unknown enum value object", + "{\n \"color\": 1000,\n \"r_color\": [\n \"RED\"\n ]\n}", + &pb.Widget{Color: pb.Widget_Color(1000).Enum(), RColor: []pb.Widget_Color{pb.Widget_RED}}}, + {"repeated proto3 enum", `{"rFunny":["PUNS","SLAPSTICK"]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"repeated proto3 enum as int", `{"rFunny":[1,2]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"repeated proto3 enum as mix of strings and ints", `{"rFunny":["PUNS",2]}`, + &proto3pb.Message{RFunny: []proto3pb.Message_Humour{ + proto3pb.Message_PUNS, + proto3pb.Message_SLAPSTICK, + }}}, + {"unquoted int64 object", `{"oInt64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, + {"unquoted uint64 object", `{"oUint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, + {"map", `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, + {"map", `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, + {"map", `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}}, + // TODO: This is broken. + //{"map", `{"enumy":{"XIV":"ROMAN"}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, + {"map", `{"enumy":{"XIV":2}}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, + {"oneof", `{"salary":31000}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Salary{31000}}}, + {"oneof spec name", `{"country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{"Australia"}}}, + {"oneof orig_name", `{"Country":"Australia"}`, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Country{"Australia"}}}, + {"orig_name input", `{"o_bool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, + {"camelName input", `{"oBool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, + + {"Duration", `{"dur":"3.000s"}`, &pb.KnownTypes{Dur: &durpb.Duration{Seconds: 3}}}, + {"Timestamp", `{"ts":"2014-05-13T16:53:20.021Z"}`, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: 14e8, Nanos: 21e6}}}, + + {"DoubleValue", `{"dbl":1.2}`, &pb.KnownTypes{Dbl: &wpb.DoubleValue{Value: 1.2}}}, + {"FloatValue", `{"flt":1.2}`, &pb.KnownTypes{Flt: &wpb.FloatValue{Value: 1.2}}}, + {"Int64Value", `{"i64":"-3"}`, &pb.KnownTypes{I64: &wpb.Int64Value{Value: -3}}}, + {"UInt64Value", `{"u64":"3"}`, &pb.KnownTypes{U64: &wpb.UInt64Value{Value: 3}}}, + {"Int32Value", `{"i32":-4}`, &pb.KnownTypes{I32: &wpb.Int32Value{Value: -4}}}, + {"UInt32Value", `{"u32":4}`, &pb.KnownTypes{U32: &wpb.UInt32Value{Value: 4}}}, + {"BoolValue", `{"bool":true}`, &pb.KnownTypes{Bool: &wpb.BoolValue{Value: true}}}, + {"StringValue", `{"str":"plush"}`, &pb.KnownTypes{Str: &wpb.StringValue{Value: "plush"}}}, + {"BytesValue", `{"bytes":"d293"}`, &pb.KnownTypes{Bytes: &wpb.BytesValue{Value: []byte("wow")}}}, + // `null` is also a permissible value. Let's just test one. + {"null DoubleValue", `{"dbl":null}`, &pb.KnownTypes{Dbl: &wpb.DoubleValue{}}}, +} + +func TestUnmarshaling(t *testing.T) { + for _, tt := range unmarshalingTests { + // Make a new instance of the type of our expected object. + p := reflect.New(reflect.TypeOf(tt.pb).Elem()).Interface().(proto.Message) + + err := UnmarshalString(tt.json, p) + if err != nil { + t.Errorf("%s: %v", tt.desc, err) + continue + } + + // For easier diffs, compare text strings of the protos. + exp := proto.MarshalTextString(tt.pb) + act := proto.MarshalTextString(p) + if string(exp) != string(act) { + t.Errorf("%s: got [%s] want [%s]", tt.desc, act, exp) + } + } +} + +func TestUnmarshalNext(t *testing.T) { + // We only need to check against a few, not all of them. + tests := unmarshalingTests[:5] + + // Create a buffer with many concatenated JSON objects. + var b bytes.Buffer + for _, tt := range tests { + b.WriteString(tt.json) + } + + dec := json.NewDecoder(&b) + for _, tt := range tests { + // Make a new instance of the type of our expected object. + p := reflect.New(reflect.TypeOf(tt.pb).Elem()).Interface().(proto.Message) + + err := UnmarshalNext(dec, p) + if err != nil { + t.Errorf("%s: %v", tt.desc, err) + continue + } + + // For easier diffs, compare text strings of the protos. + exp := proto.MarshalTextString(tt.pb) + act := proto.MarshalTextString(p) + if string(exp) != string(act) { + t.Errorf("%s: got [%s] want [%s]", tt.desc, act, exp) + } + } + + p := &pb.Simple{} + err := UnmarshalNext(dec, p) + if err != io.EOF { + t.Errorf("eof: got %v, expected io.EOF", err) + } +} + +var unmarshalingShouldError = []struct { + desc string + in string + pb proto.Message +}{ + {"a value", "666", new(pb.Simple)}, + {"gibberish", "{adskja123;l23=-=", new(pb.Simple)}, + {"unknown enum name", `{"hilarity":"DAVE"}`, new(proto3pb.Message)}, +} + +func TestUnmarshalingBadInput(t *testing.T) { + for _, tt := range unmarshalingShouldError { + err := UnmarshalString(tt.in, tt.pb) + if err == nil { + t.Errorf("an error was expected when parsing %q instead of an object", tt.desc) + } + } +} diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/Makefile b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/Makefile new file mode 100644 index 00000000..eeda8ae5 --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/Makefile @@ -0,0 +1,33 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2015 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +regenerate: + protoc --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers:. *.proto diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go new file mode 100644 index 00000000..a5444a2d --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go @@ -0,0 +1,163 @@ +// Code generated by protoc-gen-go. +// source: more_test_objects.proto +// DO NOT EDIT! + +/* +Package jsonpb is a generated protocol buffer package. + +It is generated from these files: + more_test_objects.proto + test_objects.proto + +It has these top-level messages: + Simple3 + Mappy + Simple + Repeats + Widget + Maps + MsgWithOneof + Real + Complex + KnownTypes +*/ +package jsonpb + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type Numeral int32 + +const ( + Numeral_UNKNOWN Numeral = 0 + Numeral_ARABIC Numeral = 1 + Numeral_ROMAN Numeral = 2 +) + +var Numeral_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ARABIC", + 2: "ROMAN", +} +var Numeral_value = map[string]int32{ + "UNKNOWN": 0, + "ARABIC": 1, + "ROMAN": 2, +} + +func (x Numeral) String() string { + return proto.EnumName(Numeral_name, int32(x)) +} +func (Numeral) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +type Simple3 struct { + Dub float64 `protobuf:"fixed64,1,opt,name=dub" json:"dub,omitempty"` +} + +func (m *Simple3) Reset() { *m = Simple3{} } +func (m *Simple3) String() string { return proto.CompactTextString(m) } +func (*Simple3) ProtoMessage() {} +func (*Simple3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +type Mappy struct { + Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Strry map[string]string `protobuf:"bytes,2,rep,name=strry" json:"strry,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Objjy map[int32]*Simple3 `protobuf:"bytes,3,rep,name=objjy" json:"objjy,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Buggy map[int64]string `protobuf:"bytes,4,rep,name=buggy" json:"buggy,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Booly map[bool]bool `protobuf:"bytes,5,rep,name=booly" json:"booly,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Enumy map[string]Numeral `protobuf:"bytes,6,rep,name=enumy" json:"enumy,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=jsonpb.Numeral"` +} + +func (m *Mappy) Reset() { *m = Mappy{} } +func (m *Mappy) String() string { return proto.CompactTextString(m) } +func (*Mappy) ProtoMessage() {} +func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *Mappy) GetNummy() map[int64]int32 { + if m != nil { + return m.Nummy + } + return nil +} + +func (m *Mappy) GetStrry() map[string]string { + if m != nil { + return m.Strry + } + return nil +} + +func (m *Mappy) GetObjjy() map[int32]*Simple3 { + if m != nil { + return m.Objjy + } + return nil +} + +func (m *Mappy) GetBuggy() map[int64]string { + if m != nil { + return m.Buggy + } + return nil +} + +func (m *Mappy) GetBooly() map[bool]bool { + if m != nil { + return m.Booly + } + return nil +} + +func (m *Mappy) GetEnumy() map[string]Numeral { + if m != nil { + return m.Enumy + } + return nil +} + +func init() { + proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3") + proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy") + proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value) +} + +func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 357 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x93, 0xcd, 0x4a, 0xf3, 0x40, + 0x18, 0x85, 0xbf, 0x34, 0xdf, 0xa4, 0xcd, 0x5b, 0xd0, 0x30, 0x08, 0x0e, 0xba, 0x91, 0x82, 0x50, + 0x04, 0xb3, 0x68, 0x37, 0xc5, 0x5d, 0x2b, 0x5d, 0x14, 0x69, 0x0a, 0x29, 0xe2, 0xb2, 0x34, 0x3a, + 0x14, 0x6b, 0xd2, 0x09, 0xf9, 0x11, 0xe6, 0x82, 0xbc, 0x4f, 0xf3, 0x4e, 0x52, 0x33, 0x96, 0x01, + 0x77, 0xd3, 0x9e, 0xe7, 0x09, 0x67, 0x4e, 0x08, 0x5c, 0x26, 0x22, 0xe3, 0x9b, 0x82, 0xe7, 0xc5, + 0x46, 0x44, 0x7b, 0xfe, 0x5a, 0xe4, 0x7e, 0x9a, 0x89, 0x42, 0x50, 0x67, 0x9f, 0x8b, 0x43, 0x1a, + 0x0d, 0xae, 0xa1, 0xbb, 0x7e, 0x4f, 0xd2, 0x98, 0x8f, 0xa9, 0x07, 0xf6, 0x5b, 0x19, 0x31, 0xeb, + 0xc6, 0x1a, 0x5a, 0x21, 0x1e, 0x07, 0x5f, 0x04, 0xc8, 0x72, 0x9b, 0xa6, 0x92, 0xfa, 0x40, 0x0e, + 0x65, 0x92, 0xc8, 0x2a, 0xb5, 0x87, 0xfd, 0x11, 0xf3, 0x6b, 0xdd, 0x57, 0xa9, 0x1f, 0x60, 0x34, + 0x3f, 0x14, 0x99, 0x0c, 0x6b, 0x0c, 0xf9, 0xbc, 0xc8, 0x32, 0xc9, 0x3a, 0x26, 0x7e, 0x8d, 0x51, + 0xc3, 0x2b, 0x0c, 0xf9, 0xaa, 0xdf, 0x5e, 0x32, 0xdb, 0xc4, 0xaf, 0x30, 0x6a, 0x78, 0x85, 0x21, + 0x1f, 0x95, 0xbb, 0x9d, 0x64, 0xff, 0x4d, 0xfc, 0x0c, 0xa3, 0x86, 0x57, 0x98, 0xe2, 0x85, 0x88, + 0x25, 0x23, 0x46, 0x1e, 0xa3, 0x23, 0x8f, 0x67, 0xe4, 0x79, 0x75, 0x13, 0xc9, 0x1c, 0x13, 0x3f, + 0xc7, 0xa8, 0xe1, 0x15, 0x76, 0x35, 0x01, 0x68, 0x47, 0xc0, 0x25, 0x3f, 0xb8, 0x54, 0x4b, 0xda, + 0x21, 0x1e, 0xe9, 0x05, 0x90, 0xcf, 0x6d, 0x5c, 0xf2, 0x6a, 0x0f, 0x6b, 0x48, 0xc2, 0xfa, 0xc7, + 0x43, 0x67, 0x62, 0xa1, 0xd9, 0xce, 0xa1, 0x9b, 0xae, 0xc1, 0x74, 0x75, 0x73, 0x01, 0xd0, 0x0e, + 0xa3, 0x9b, 0xa4, 0x36, 0x6f, 0x75, 0xb3, 0x3f, 0x3a, 0x3f, 0xde, 0xa1, 0x79, 0xdf, 0x27, 0x25, + 0xda, 0xcd, 0xfe, 0xaa, 0xef, 0x9e, 0x9a, 0x3f, 0xeb, 0xe9, 0x66, 0xcf, 0x60, 0xf6, 0x4e, 0xea, + 0xb7, 0x3b, 0x1a, 0x2e, 0xfe, 0xab, 0xfe, 0x59, 0x5b, 0xbf, 0xda, 0x99, 0x67, 0xdb, 0x58, 0x7b, + 0xd4, 0xdd, 0x3d, 0x74, 0x9b, 0x7f, 0x69, 0x1f, 0xba, 0xcf, 0xc1, 0x53, 0xb0, 0x7a, 0x09, 0xbc, + 0x7f, 0x14, 0xc0, 0x99, 0x86, 0xd3, 0xd9, 0xe2, 0xd1, 0xb3, 0xa8, 0x0b, 0x24, 0x5c, 0x2d, 0xa7, + 0x81, 0xd7, 0x89, 0x1c, 0xf5, 0x09, 0x8c, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x04, 0xff, + 0x62, 0x1d, 0x03, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto new file mode 100644 index 00000000..511f021f --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto @@ -0,0 +1,53 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto3"; + +package jsonpb; + +message Simple3 { + double dub = 1; +} + +enum Numeral { + UNKNOWN = 0; + ARABIC = 1; + ROMAN = 2; +} + +message Mappy { + map nummy = 1; + map strry = 2; + map objjy = 3; + map buggy = 4; + map booly = 5; + map enumy = 6; +} diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go new file mode 100644 index 00000000..284f7a87 --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go @@ -0,0 +1,739 @@ +// Code generated by protoc-gen-go. +// source: test_objects.proto +// DO NOT EDIT! + +package jsonpb + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/golang/protobuf/ptypes/any" +import google_protobuf1 "github.com/golang/protobuf/ptypes/duration" +import google_protobuf2 "github.com/golang/protobuf/ptypes/struct" +import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp" +import google_protobuf4 "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +type Widget_Color int32 + +const ( + Widget_RED Widget_Color = 0 + Widget_GREEN Widget_Color = 1 + Widget_BLUE Widget_Color = 2 +) + +var Widget_Color_name = map[int32]string{ + 0: "RED", + 1: "GREEN", + 2: "BLUE", +} +var Widget_Color_value = map[string]int32{ + "RED": 0, + "GREEN": 1, + "BLUE": 2, +} + +func (x Widget_Color) Enum() *Widget_Color { + p := new(Widget_Color) + *p = x + return p +} +func (x Widget_Color) String() string { + return proto.EnumName(Widget_Color_name, int32(x)) +} +func (x *Widget_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Widget_Color_value, data, "Widget_Color") + if err != nil { + return err + } + *x = Widget_Color(value) + return nil +} +func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} } + +// Test message for holding primitive types. +type Simple struct { + OBool *bool `protobuf:"varint,1,opt,name=o_bool,json=oBool" json:"o_bool,omitempty"` + OInt32 *int32 `protobuf:"varint,2,opt,name=o_int32,json=oInt32" json:"o_int32,omitempty"` + OInt64 *int64 `protobuf:"varint,3,opt,name=o_int64,json=oInt64" json:"o_int64,omitempty"` + OUint32 *uint32 `protobuf:"varint,4,opt,name=o_uint32,json=oUint32" json:"o_uint32,omitempty"` + OUint64 *uint64 `protobuf:"varint,5,opt,name=o_uint64,json=oUint64" json:"o_uint64,omitempty"` + OSint32 *int32 `protobuf:"zigzag32,6,opt,name=o_sint32,json=oSint32" json:"o_sint32,omitempty"` + OSint64 *int64 `protobuf:"zigzag64,7,opt,name=o_sint64,json=oSint64" json:"o_sint64,omitempty"` + OFloat *float32 `protobuf:"fixed32,8,opt,name=o_float,json=oFloat" json:"o_float,omitempty"` + ODouble *float64 `protobuf:"fixed64,9,opt,name=o_double,json=oDouble" json:"o_double,omitempty"` + OString *string `protobuf:"bytes,10,opt,name=o_string,json=oString" json:"o_string,omitempty"` + OBytes []byte `protobuf:"bytes,11,opt,name=o_bytes,json=oBytes" json:"o_bytes,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Simple) Reset() { *m = Simple{} } +func (m *Simple) String() string { return proto.CompactTextString(m) } +func (*Simple) ProtoMessage() {} +func (*Simple) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } + +func (m *Simple) GetOBool() bool { + if m != nil && m.OBool != nil { + return *m.OBool + } + return false +} + +func (m *Simple) GetOInt32() int32 { + if m != nil && m.OInt32 != nil { + return *m.OInt32 + } + return 0 +} + +func (m *Simple) GetOInt64() int64 { + if m != nil && m.OInt64 != nil { + return *m.OInt64 + } + return 0 +} + +func (m *Simple) GetOUint32() uint32 { + if m != nil && m.OUint32 != nil { + return *m.OUint32 + } + return 0 +} + +func (m *Simple) GetOUint64() uint64 { + if m != nil && m.OUint64 != nil { + return *m.OUint64 + } + return 0 +} + +func (m *Simple) GetOSint32() int32 { + if m != nil && m.OSint32 != nil { + return *m.OSint32 + } + return 0 +} + +func (m *Simple) GetOSint64() int64 { + if m != nil && m.OSint64 != nil { + return *m.OSint64 + } + return 0 +} + +func (m *Simple) GetOFloat() float32 { + if m != nil && m.OFloat != nil { + return *m.OFloat + } + return 0 +} + +func (m *Simple) GetODouble() float64 { + if m != nil && m.ODouble != nil { + return *m.ODouble + } + return 0 +} + +func (m *Simple) GetOString() string { + if m != nil && m.OString != nil { + return *m.OString + } + return "" +} + +func (m *Simple) GetOBytes() []byte { + if m != nil { + return m.OBytes + } + return nil +} + +// Test message for holding repeated primitives. +type Repeats struct { + RBool []bool `protobuf:"varint,1,rep,name=r_bool,json=rBool" json:"r_bool,omitempty"` + RInt32 []int32 `protobuf:"varint,2,rep,name=r_int32,json=rInt32" json:"r_int32,omitempty"` + RInt64 []int64 `protobuf:"varint,3,rep,name=r_int64,json=rInt64" json:"r_int64,omitempty"` + RUint32 []uint32 `protobuf:"varint,4,rep,name=r_uint32,json=rUint32" json:"r_uint32,omitempty"` + RUint64 []uint64 `protobuf:"varint,5,rep,name=r_uint64,json=rUint64" json:"r_uint64,omitempty"` + RSint32 []int32 `protobuf:"zigzag32,6,rep,name=r_sint32,json=rSint32" json:"r_sint32,omitempty"` + RSint64 []int64 `protobuf:"zigzag64,7,rep,name=r_sint64,json=rSint64" json:"r_sint64,omitempty"` + RFloat []float32 `protobuf:"fixed32,8,rep,name=r_float,json=rFloat" json:"r_float,omitempty"` + RDouble []float64 `protobuf:"fixed64,9,rep,name=r_double,json=rDouble" json:"r_double,omitempty"` + RString []string `protobuf:"bytes,10,rep,name=r_string,json=rString" json:"r_string,omitempty"` + RBytes [][]byte `protobuf:"bytes,11,rep,name=r_bytes,json=rBytes" json:"r_bytes,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Repeats) Reset() { *m = Repeats{} } +func (m *Repeats) String() string { return proto.CompactTextString(m) } +func (*Repeats) ProtoMessage() {} +func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } + +func (m *Repeats) GetRBool() []bool { + if m != nil { + return m.RBool + } + return nil +} + +func (m *Repeats) GetRInt32() []int32 { + if m != nil { + return m.RInt32 + } + return nil +} + +func (m *Repeats) GetRInt64() []int64 { + if m != nil { + return m.RInt64 + } + return nil +} + +func (m *Repeats) GetRUint32() []uint32 { + if m != nil { + return m.RUint32 + } + return nil +} + +func (m *Repeats) GetRUint64() []uint64 { + if m != nil { + return m.RUint64 + } + return nil +} + +func (m *Repeats) GetRSint32() []int32 { + if m != nil { + return m.RSint32 + } + return nil +} + +func (m *Repeats) GetRSint64() []int64 { + if m != nil { + return m.RSint64 + } + return nil +} + +func (m *Repeats) GetRFloat() []float32 { + if m != nil { + return m.RFloat + } + return nil +} + +func (m *Repeats) GetRDouble() []float64 { + if m != nil { + return m.RDouble + } + return nil +} + +func (m *Repeats) GetRString() []string { + if m != nil { + return m.RString + } + return nil +} + +func (m *Repeats) GetRBytes() [][]byte { + if m != nil { + return m.RBytes + } + return nil +} + +// Test message for holding enums and nested messages. +type Widget struct { + Color *Widget_Color `protobuf:"varint,1,opt,name=color,enum=jsonpb.Widget_Color" json:"color,omitempty"` + RColor []Widget_Color `protobuf:"varint,2,rep,name=r_color,json=rColor,enum=jsonpb.Widget_Color" json:"r_color,omitempty"` + Simple *Simple `protobuf:"bytes,10,opt,name=simple" json:"simple,omitempty"` + RSimple []*Simple `protobuf:"bytes,11,rep,name=r_simple,json=rSimple" json:"r_simple,omitempty"` + Repeats *Repeats `protobuf:"bytes,20,opt,name=repeats" json:"repeats,omitempty"` + RRepeats []*Repeats `protobuf:"bytes,21,rep,name=r_repeats,json=rRepeats" json:"r_repeats,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Widget) Reset() { *m = Widget{} } +func (m *Widget) String() string { return proto.CompactTextString(m) } +func (*Widget) ProtoMessage() {} +func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } + +func (m *Widget) GetColor() Widget_Color { + if m != nil && m.Color != nil { + return *m.Color + } + return Widget_RED +} + +func (m *Widget) GetRColor() []Widget_Color { + if m != nil { + return m.RColor + } + return nil +} + +func (m *Widget) GetSimple() *Simple { + if m != nil { + return m.Simple + } + return nil +} + +func (m *Widget) GetRSimple() []*Simple { + if m != nil { + return m.RSimple + } + return nil +} + +func (m *Widget) GetRepeats() *Repeats { + if m != nil { + return m.Repeats + } + return nil +} + +func (m *Widget) GetRRepeats() []*Repeats { + if m != nil { + return m.RRepeats + } + return nil +} + +type Maps struct { + MInt64Str map[int64]string `protobuf:"bytes,1,rep,name=m_int64_str,json=mInt64Str" json:"m_int64_str,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MBoolSimple map[bool]*Simple `protobuf:"bytes,2,rep,name=m_bool_simple,json=mBoolSimple" json:"m_bool_simple,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Maps) Reset() { *m = Maps{} } +func (m *Maps) String() string { return proto.CompactTextString(m) } +func (*Maps) ProtoMessage() {} +func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } + +func (m *Maps) GetMInt64Str() map[int64]string { + if m != nil { + return m.MInt64Str + } + return nil +} + +func (m *Maps) GetMBoolSimple() map[bool]*Simple { + if m != nil { + return m.MBoolSimple + } + return nil +} + +type MsgWithOneof struct { + // Types that are valid to be assigned to Union: + // *MsgWithOneof_Title + // *MsgWithOneof_Salary + // *MsgWithOneof_Country + Union isMsgWithOneof_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MsgWithOneof) Reset() { *m = MsgWithOneof{} } +func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) } +func (*MsgWithOneof) ProtoMessage() {} +func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } + +type isMsgWithOneof_Union interface { + isMsgWithOneof_Union() +} + +type MsgWithOneof_Title struct { + Title string `protobuf:"bytes,1,opt,name=title,oneof"` +} +type MsgWithOneof_Salary struct { + Salary int64 `protobuf:"varint,2,opt,name=salary,oneof"` +} +type MsgWithOneof_Country struct { + Country string `protobuf:"bytes,3,opt,name=Country,json=country,oneof"` +} + +func (*MsgWithOneof_Title) isMsgWithOneof_Union() {} +func (*MsgWithOneof_Salary) isMsgWithOneof_Union() {} +func (*MsgWithOneof_Country) isMsgWithOneof_Union() {} + +func (m *MsgWithOneof) GetUnion() isMsgWithOneof_Union { + if m != nil { + return m.Union + } + return nil +} + +func (m *MsgWithOneof) GetTitle() string { + if x, ok := m.GetUnion().(*MsgWithOneof_Title); ok { + return x.Title + } + return "" +} + +func (m *MsgWithOneof) GetSalary() int64 { + if x, ok := m.GetUnion().(*MsgWithOneof_Salary); ok { + return x.Salary + } + return 0 +} + +func (m *MsgWithOneof) GetCountry() string { + if x, ok := m.GetUnion().(*MsgWithOneof_Country); ok { + return x.Country + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*MsgWithOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _MsgWithOneof_OneofMarshaler, _MsgWithOneof_OneofUnmarshaler, _MsgWithOneof_OneofSizer, []interface{}{ + (*MsgWithOneof_Title)(nil), + (*MsgWithOneof_Salary)(nil), + (*MsgWithOneof_Country)(nil), + } +} + +func _MsgWithOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*MsgWithOneof) + // union + switch x := m.Union.(type) { + case *MsgWithOneof_Title: + b.EncodeVarint(1<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Title) + case *MsgWithOneof_Salary: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Salary)) + case *MsgWithOneof_Country: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Country) + case nil: + default: + return fmt.Errorf("MsgWithOneof.Union has unexpected type %T", x) + } + return nil +} + +func _MsgWithOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*MsgWithOneof) + switch tag { + case 1: // union.title + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &MsgWithOneof_Title{x} + return true, err + case 2: // union.salary + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &MsgWithOneof_Salary{int64(x)} + return true, err + case 3: // union.Country + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &MsgWithOneof_Country{x} + return true, err + default: + return false, nil + } +} + +func _MsgWithOneof_OneofSizer(msg proto.Message) (n int) { + m := msg.(*MsgWithOneof) + // union + switch x := m.Union.(type) { + case *MsgWithOneof_Title: + n += proto.SizeVarint(1<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Title))) + n += len(x.Title) + case *MsgWithOneof_Salary: + n += proto.SizeVarint(2<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Salary)) + case *MsgWithOneof_Country: + n += proto.SizeVarint(3<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Country))) + n += len(x.Country) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type Real struct { + Value *float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Real) Reset() { *m = Real{} } +func (m *Real) String() string { return proto.CompactTextString(m) } +func (*Real) ProtoMessage() {} +func (*Real) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } + +var extRange_Real = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*Real) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_Real +} + +func (m *Real) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Complex struct { + Imaginary *float64 `protobuf:"fixed64,1,opt,name=imaginary" json:"imaginary,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Complex) Reset() { *m = Complex{} } +func (m *Complex) String() string { return proto.CompactTextString(m) } +func (*Complex) ProtoMessage() {} +func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } + +var extRange_Complex = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*Complex) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_Complex +} + +func (m *Complex) GetImaginary() float64 { + if m != nil && m.Imaginary != nil { + return *m.Imaginary + } + return 0 +} + +var E_Complex_RealExtension = &proto.ExtensionDesc{ + ExtendedType: (*Real)(nil), + ExtensionType: (*Complex)(nil), + Field: 123, + Name: "jsonpb.Complex.real_extension", + Tag: "bytes,123,opt,name=real_extension,json=realExtension", +} + +type KnownTypes struct { + An *google_protobuf.Any `protobuf:"bytes,14,opt,name=an" json:"an,omitempty"` + Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` + St *google_protobuf2.Struct `protobuf:"bytes,12,opt,name=st" json:"st,omitempty"` + Ts *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Dbl *google_protobuf4.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` + Flt *google_protobuf4.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` + I64 *google_protobuf4.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` + U64 *google_protobuf4.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` + I32 *google_protobuf4.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` + U32 *google_protobuf4.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` + Bool *google_protobuf4.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` + Str *google_protobuf4.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` + Bytes *google_protobuf4.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *KnownTypes) Reset() { *m = KnownTypes{} } +func (m *KnownTypes) String() string { return proto.CompactTextString(m) } +func (*KnownTypes) ProtoMessage() {} +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } + +func (m *KnownTypes) GetAn() *google_protobuf.Any { + if m != nil { + return m.An + } + return nil +} + +func (m *KnownTypes) GetDur() *google_protobuf1.Duration { + if m != nil { + return m.Dur + } + return nil +} + +func (m *KnownTypes) GetSt() *google_protobuf2.Struct { + if m != nil { + return m.St + } + return nil +} + +func (m *KnownTypes) GetTs() *google_protobuf3.Timestamp { + if m != nil { + return m.Ts + } + return nil +} + +func (m *KnownTypes) GetDbl() *google_protobuf4.DoubleValue { + if m != nil { + return m.Dbl + } + return nil +} + +func (m *KnownTypes) GetFlt() *google_protobuf4.FloatValue { + if m != nil { + return m.Flt + } + return nil +} + +func (m *KnownTypes) GetI64() *google_protobuf4.Int64Value { + if m != nil { + return m.I64 + } + return nil +} + +func (m *KnownTypes) GetU64() *google_protobuf4.UInt64Value { + if m != nil { + return m.U64 + } + return nil +} + +func (m *KnownTypes) GetI32() *google_protobuf4.Int32Value { + if m != nil { + return m.I32 + } + return nil +} + +func (m *KnownTypes) GetU32() *google_protobuf4.UInt32Value { + if m != nil { + return m.U32 + } + return nil +} + +func (m *KnownTypes) GetBool() *google_protobuf4.BoolValue { + if m != nil { + return m.Bool + } + return nil +} + +func (m *KnownTypes) GetStr() *google_protobuf4.StringValue { + if m != nil { + return m.Str + } + return nil +} + +func (m *KnownTypes) GetBytes() *google_protobuf4.BytesValue { + if m != nil { + return m.Bytes + } + return nil +} + +var E_Name = &proto.ExtensionDesc{ + ExtendedType: (*Real)(nil), + ExtensionType: (*string)(nil), + Field: 124, + Name: "jsonpb.name", + Tag: "bytes,124,opt,name=name", +} + +func init() { + proto.RegisterType((*Simple)(nil), "jsonpb.Simple") + proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats") + proto.RegisterType((*Widget)(nil), "jsonpb.Widget") + proto.RegisterType((*Maps)(nil), "jsonpb.Maps") + proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof") + proto.RegisterType((*Real)(nil), "jsonpb.Real") + proto.RegisterType((*Complex)(nil), "jsonpb.Complex") + proto.RegisterType((*KnownTypes)(nil), "jsonpb.KnownTypes") + proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value) + proto.RegisterExtension(E_Complex_RealExtension) + proto.RegisterExtension(E_Name) +} + +func init() { proto.RegisterFile("test_objects.proto", fileDescriptor1) } + +var fileDescriptor1 = []byte{ + // 1006 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x55, 0xdd, 0x72, 0xdb, 0x44, + 0x14, 0xae, 0xb5, 0x96, 0x65, 0xaf, 0x53, 0x63, 0x76, 0x52, 0xaa, 0x98, 0x00, 0x1d, 0x0f, 0x14, + 0x28, 0xe0, 0x0e, 0x6e, 0xa7, 0xc3, 0x14, 0x6e, 0x9a, 0xc6, 0xfc, 0x0c, 0xa4, 0xcc, 0x6c, 0x1a, + 0x7a, 0xe9, 0x91, 0x13, 0xc5, 0xa8, 0xc8, 0x5a, 0xcf, 0x6a, 0x45, 0xea, 0x81, 0x0b, 0x1e, 0x82, + 0x57, 0x80, 0x47, 0xe0, 0x89, 0x78, 0x10, 0xce, 0x39, 0x2b, 0x69, 0x1d, 0xbb, 0xa6, 0x37, 0xcd, + 0xd1, 0xf7, 0xe3, 0xa3, 0x6f, 0x8f, 0xce, 0x72, 0x61, 0xe2, 0xdc, 0x4c, 0xd5, 0xec, 0x65, 0x7c, + 0x6e, 0xf2, 0xd1, 0x52, 0x2b, 0xa3, 0x44, 0xeb, 0x65, 0xae, 0xb2, 0xe5, 0x6c, 0x70, 0x30, 0x57, + 0x6a, 0x9e, 0xc6, 0xf7, 0xe9, 0xe9, 0xac, 0xb8, 0xbc, 0x1f, 0x65, 0x2b, 0x4b, 0x19, 0xbc, 0xbb, + 0x09, 0x5d, 0x14, 0x3a, 0x32, 0x89, 0xca, 0x4a, 0xfc, 0x70, 0x13, 0xcf, 0x8d, 0x2e, 0xce, 0x4d, + 0x89, 0xbe, 0xb7, 0x89, 0x9a, 0x64, 0x01, 0x6d, 0x44, 0x8b, 0xe5, 0x2e, 0xfb, 0x2b, 0x1d, 0x2d, + 0x97, 0xb1, 0x2e, 0x3b, 0x1c, 0xfe, 0xe5, 0xf1, 0xd6, 0x69, 0xb2, 0x58, 0xa6, 0xb1, 0xb8, 0xc5, + 0x5b, 0x6a, 0x3a, 0x53, 0x2a, 0x0d, 0x1b, 0x77, 0x1a, 0x1f, 0xb5, 0xa5, 0xaf, 0x8e, 0xa0, 0x10, + 0xb7, 0x79, 0xa0, 0xa6, 0x49, 0x66, 0x1e, 0x8c, 0x43, 0x0f, 0x9e, 0xfb, 0xb2, 0xa5, 0xbe, 0xc3, + 0xaa, 0x06, 0x1e, 0x3d, 0x0c, 0x19, 0x00, 0xcc, 0x02, 0x8f, 0x1e, 0x8a, 0x03, 0xde, 0x56, 0xd3, + 0xc2, 0x4a, 0x9a, 0x80, 0xdc, 0x94, 0x81, 0x3a, 0xa3, 0xd2, 0x41, 0x20, 0xf2, 0x01, 0x6a, 0x96, + 0x50, 0xa5, 0xca, 0xad, 0xaa, 0x05, 0xd0, 0x9b, 0x00, 0x9d, 0xae, 0xa9, 0x72, 0xab, 0x0a, 0x00, + 0x12, 0x25, 0x04, 0x2a, 0x6a, 0xe2, 0x32, 0x55, 0x91, 0x09, 0xdb, 0x80, 0x78, 0xd0, 0xc4, 0xd7, + 0x58, 0x59, 0xcd, 0x85, 0x2a, 0x66, 0x69, 0x1c, 0x76, 0x00, 0x69, 0x80, 0xe6, 0x98, 0xca, 0xd2, + 0xce, 0xe8, 0x24, 0x9b, 0x87, 0x1c, 0xa0, 0x0e, 0xda, 0x51, 0x69, 0xed, 0x66, 0x2b, 0x38, 0xca, + 0xb0, 0x0b, 0xc8, 0x1e, 0xd8, 0x1d, 0x61, 0x35, 0xfc, 0xdb, 0xe3, 0x81, 0x8c, 0x97, 0x71, 0x64, + 0x72, 0x0c, 0x4a, 0x57, 0x41, 0x31, 0x0c, 0x4a, 0x57, 0x41, 0xe9, 0x3a, 0x28, 0x86, 0x41, 0xe9, + 0x3a, 0x28, 0x5d, 0x07, 0xc5, 0x30, 0x28, 0x5d, 0x07, 0xa5, 0x5d, 0x50, 0x0c, 0x83, 0xd2, 0x2e, + 0x28, 0xed, 0x82, 0x62, 0x18, 0x94, 0x76, 0x41, 0x69, 0x17, 0x14, 0xc3, 0xa0, 0xf4, 0xe9, 0x9a, + 0xaa, 0x0e, 0x8a, 0x61, 0x50, 0xda, 0x05, 0xa5, 0xeb, 0xa0, 0x18, 0x06, 0xa5, 0xeb, 0xa0, 0xb4, + 0x0b, 0x8a, 0x61, 0x50, 0xda, 0x05, 0xa5, 0x5d, 0x50, 0x0c, 0x83, 0xd2, 0x2e, 0x28, 0x5d, 0x07, + 0xc5, 0x30, 0x28, 0x6d, 0x83, 0xfa, 0x07, 0x06, 0xea, 0x45, 0x72, 0x31, 0x8f, 0x8d, 0xb8, 0xc7, + 0xfd, 0x73, 0x95, 0x2a, 0x4d, 0xf3, 0xd4, 0x1b, 0xef, 0x8f, 0xec, 0xd7, 0x30, 0xb2, 0xf0, 0xe8, + 0x29, 0x62, 0xd2, 0x52, 0xc4, 0x67, 0xe8, 0x67, 0xd9, 0x18, 0xde, 0x2e, 0x76, 0x4b, 0xd3, 0xff, + 0xe2, 0x2e, 0x6f, 0xe5, 0x34, 0xb5, 0x74, 0x80, 0xdd, 0x71, 0xaf, 0x62, 0xdb, 0x59, 0x96, 0x25, + 0x2a, 0x3e, 0xb6, 0x81, 0x10, 0x13, 0xfb, 0xdc, 0x66, 0x62, 0x40, 0x25, 0x35, 0xd0, 0xf6, 0x80, + 0xc3, 0x7d, 0xf2, 0x7c, 0xa3, 0x62, 0x96, 0xe7, 0x2e, 0x2b, 0x5c, 0x7c, 0xca, 0x3b, 0x7a, 0x5a, + 0x91, 0x6f, 0x91, 0xed, 0x16, 0xb9, 0xad, 0xcb, 0xbf, 0x86, 0x1f, 0x70, 0xdf, 0x36, 0x1d, 0x70, + 0x26, 0x27, 0xc7, 0xfd, 0x1b, 0xa2, 0xc3, 0xfd, 0x6f, 0xe4, 0x64, 0xf2, 0xac, 0xdf, 0x10, 0x6d, + 0xde, 0x3c, 0xfa, 0xe1, 0x6c, 0xd2, 0xf7, 0x86, 0x7f, 0x7a, 0xbc, 0x79, 0x12, 0x2d, 0x73, 0xf1, + 0x25, 0xef, 0x2e, 0xec, 0xb8, 0x60, 0xf6, 0x34, 0x63, 0xdd, 0xf1, 0xdb, 0x95, 0x3f, 0x52, 0x46, + 0x27, 0x34, 0x3f, 0x70, 0x14, 0x93, 0xcc, 0xe8, 0x95, 0xec, 0x2c, 0xaa, 0x5a, 0x3c, 0xe1, 0x37, + 0x17, 0x34, 0x9b, 0xd5, 0x5b, 0x7b, 0x24, 0x7f, 0xe7, 0xba, 0x1c, 0xe7, 0xd5, 0xbe, 0xb6, 0x35, + 0xe8, 0x2e, 0xdc, 0x93, 0xc1, 0x57, 0xbc, 0x77, 0xdd, 0x5f, 0xf4, 0x39, 0xfb, 0x25, 0x5e, 0xd1, + 0x31, 0x32, 0x89, 0x7f, 0x8a, 0x7d, 0xee, 0xff, 0x1a, 0xa5, 0x45, 0x4c, 0x2b, 0xa1, 0x23, 0x6d, + 0xf1, 0xd8, 0xfb, 0xa2, 0x31, 0x78, 0xc6, 0xfb, 0x9b, 0xf6, 0xeb, 0xfa, 0xb6, 0xd5, 0xbf, 0xbf, + 0xae, 0xdf, 0x3e, 0x14, 0xe7, 0x37, 0x8c, 0xf9, 0xde, 0x49, 0x3e, 0x7f, 0x91, 0x98, 0x9f, 0x7f, + 0xcc, 0x62, 0x75, 0x29, 0xde, 0xe2, 0xbe, 0x49, 0x0c, 0xbc, 0x18, 0xba, 0x75, 0xbe, 0xbd, 0x21, + 0x6d, 0x29, 0x42, 0x98, 0x88, 0x28, 0x8d, 0xf4, 0x8a, 0x2c, 0x19, 0x00, 0x65, 0x2d, 0x06, 0x3c, + 0x78, 0xaa, 0x0a, 0x6c, 0x84, 0xf6, 0x14, 0x6a, 0x82, 0x73, 0xfb, 0xe0, 0x28, 0xe0, 0x7e, 0x91, + 0xc1, 0xb2, 0x1d, 0xde, 0xe5, 0x4d, 0x19, 0x47, 0xa9, 0x7b, 0xb1, 0x06, 0xed, 0x0c, 0x5b, 0xdc, + 0x6b, 0xb7, 0x2f, 0xfa, 0x7f, 0xc0, 0x3f, 0x6f, 0x78, 0x85, 0x66, 0xd8, 0xe3, 0x2b, 0x71, 0xc8, + 0x3b, 0xc9, 0x22, 0x9a, 0x27, 0x19, 0xfe, 0xa8, 0xa5, 0xbb, 0x07, 0x4e, 0x32, 0x3e, 0xe6, 0x3d, + 0x0d, 0xd6, 0xd3, 0xf8, 0x95, 0x89, 0xb3, 0x1c, 0x7e, 0x4c, 0xec, 0xb9, 0x61, 0x89, 0xd2, 0xf0, + 0xb7, 0xeb, 0xd3, 0x56, 0xda, 0xcb, 0x9b, 0x28, 0x9a, 0x54, 0x9a, 0xe1, 0xbf, 0x4d, 0xce, 0xbf, + 0xcf, 0xd4, 0x55, 0xf6, 0x7c, 0xb5, 0x8c, 0x73, 0x08, 0xd0, 0x8b, 0xb2, 0xb0, 0x47, 0xd2, 0xfd, + 0x91, 0x5d, 0xf2, 0xa3, 0x6a, 0xc9, 0x8f, 0x9e, 0x64, 0x2b, 0x09, 0xb8, 0xf8, 0x84, 0x33, 0xb8, + 0x4e, 0xa8, 0xb9, 0xee, 0xf8, 0x60, 0x8b, 0x76, 0x5c, 0x5e, 0x35, 0x12, 0x59, 0xe2, 0x43, 0xee, + 0xe5, 0x26, 0xdc, 0x23, 0xee, 0xed, 0x2d, 0xee, 0x29, 0x5d, 0x3b, 0x12, 0x28, 0xf0, 0x5d, 0x7b, + 0x30, 0xf7, 0xf6, 0xe4, 0x06, 0x5b, 0xc4, 0xe7, 0xd5, 0x0d, 0x24, 0x81, 0x25, 0x46, 0xd0, 0xc1, + 0x2c, 0xa5, 0xe0, 0xbb, 0xe3, 0xc3, 0xed, 0x0e, 0x68, 0xd1, 0xfc, 0x84, 0x21, 0x4b, 0x24, 0xc2, + 0x1e, 0x60, 0x97, 0xa9, 0xa1, 0x6b, 0x03, 0x87, 0x7e, 0x93, 0x4f, 0x2b, 0xab, 0xa4, 0x03, 0x0f, + 0xe9, 0x49, 0x79, 0x95, 0xbc, 0x8e, 0x4e, 0x63, 0x5c, 0xd2, 0x81, 0x87, 0xdd, 0x14, 0x40, 0x6f, + 0xed, 0xe8, 0xe6, 0x6c, 0x9d, 0x0f, 0x44, 0xb2, 0x87, 0x2d, 0x1b, 0xec, 0xb6, 0x7f, 0x30, 0xae, + 0xec, 0x61, 0xfd, 0xa2, 0x3d, 0xd0, 0xdb, 0xff, 0x63, 0x5f, 0xf3, 0x0b, 0xe2, 0x37, 0xe9, 0x1a, + 0xe9, 0xec, 0x88, 0x12, 0xbf, 0x23, 0x4b, 0x27, 0x1e, 0xfa, 0xe3, 0x46, 0xe0, 0x3b, 0xfc, 0xed, + 0x6a, 0x2e, 0xfd, 0x81, 0x28, 0x3e, 0xe7, 0xbe, 0xbb, 0xcb, 0x5e, 0xf7, 0x02, 0xb4, 0xb2, 0xad, + 0xc0, 0x32, 0x1f, 0xdf, 0xe1, 0xcd, 0x2c, 0x5a, 0xc4, 0x1b, 0x23, 0xfa, 0x3b, 0x7d, 0xe5, 0x84, + 0xfc, 0x17, 0x00, 0x00, 0xff, 0xff, 0xca, 0xa2, 0x76, 0x34, 0xe8, 0x08, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto new file mode 100644 index 00000000..911a9d53 --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto @@ -0,0 +1,134 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +package jsonpb; + +// Test message for holding primitive types. +message Simple { + optional bool o_bool = 1; + optional int32 o_int32 = 2; + optional int64 o_int64 = 3; + optional uint32 o_uint32 = 4; + optional uint64 o_uint64 = 5; + optional sint32 o_sint32 = 6; + optional sint64 o_sint64 = 7; + optional float o_float = 8; + optional double o_double = 9; + optional string o_string = 10; + optional bytes o_bytes = 11; +} + +// Test message for holding repeated primitives. +message Repeats { + repeated bool r_bool = 1; + repeated int32 r_int32 = 2; + repeated int64 r_int64 = 3; + repeated uint32 r_uint32 = 4; + repeated uint64 r_uint64 = 5; + repeated sint32 r_sint32 = 6; + repeated sint64 r_sint64 = 7; + repeated float r_float = 8; + repeated double r_double = 9; + repeated string r_string = 10; + repeated bytes r_bytes = 11; +} + +// Test message for holding enums and nested messages. +message Widget { + enum Color { + RED = 0; + GREEN = 1; + BLUE = 2; + }; + optional Color color = 1; + repeated Color r_color = 2; + + optional Simple simple = 10; + repeated Simple r_simple = 11; + + optional Repeats repeats = 20; + repeated Repeats r_repeats = 21; +} + +message Maps { + map m_int64_str = 1; + map m_bool_simple = 2; +} + +message MsgWithOneof { + oneof union { + string title = 1; + int64 salary = 2; + string Country = 3; + } +} + +message Real { + optional double value = 1; + extensions 100 to max; +} + +extend Real { + optional string name = 124; +} + +message Complex { + extend Real { + optional Complex real_extension = 123; + } + optional double imaginary = 1; + extensions 100 to max; +} + +message KnownTypes { + optional google.protobuf.Any an = 14; + optional google.protobuf.Duration dur = 1; + optional google.protobuf.Struct st = 12; + optional google.protobuf.Timestamp ts = 2; + + optional google.protobuf.DoubleValue dbl = 3; + optional google.protobuf.FloatValue flt = 4; + optional google.protobuf.Int64Value i64 = 5; + optional google.protobuf.UInt64Value u64 = 6; + optional google.protobuf.Int32Value i32 = 7; + optional google.protobuf.UInt32Value u32 = 8; + optional google.protobuf.BoolValue bool = 9; + optional google.protobuf.StringValue str = 10; + optional google.protobuf.BytesValue bytes = 11; +} diff --git a/vendor/github.com/golang/protobuf/proto/Makefile b/vendor/github.com/golang/protobuf/proto/Makefile new file mode 100644 index 00000000..e2e0651a --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/Makefile @@ -0,0 +1,43 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +install: + go install + +test: install generate-test-pbs + go test + + +generate-test-pbs: + make install + make -C testdata + protoc --go_out=Mtestdata/test.proto=github.com/golang/protobuf/proto/testdata,Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any:. proto3_proto/proto3.proto + make diff --git a/vendor/github.com/golang/protobuf/proto/all_test.go b/vendor/github.com/golang/protobuf/proto/all_test.go new file mode 100644 index 00000000..fd4a94ea --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/all_test.go @@ -0,0 +1,2252 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "math" + "math/rand" + "reflect" + "runtime/debug" + "strings" + "testing" + "time" + + . "github.com/golang/protobuf/proto" + . "github.com/golang/protobuf/proto/testdata" +) + +var globalO *Buffer + +func old() *Buffer { + if globalO == nil { + globalO = NewBuffer(nil) + } + globalO.Reset() + return globalO +} + +func equalbytes(b1, b2 []byte, t *testing.T) { + if len(b1) != len(b2) { + t.Errorf("wrong lengths: 2*%d != %d", len(b1), len(b2)) + return + } + for i := 0; i < len(b1); i++ { + if b1[i] != b2[i] { + t.Errorf("bad byte[%d]:%x %x: %s %s", i, b1[i], b2[i], b1, b2) + } + } +} + +func initGoTestField() *GoTestField { + f := new(GoTestField) + f.Label = String("label") + f.Type = String("type") + return f +} + +// These are all structurally equivalent but the tag numbers differ. +// (It's remarkable that required, optional, and repeated all have +// 8 letters.) +func initGoTest_RequiredGroup() *GoTest_RequiredGroup { + return &GoTest_RequiredGroup{ + RequiredField: String("required"), + } +} + +func initGoTest_OptionalGroup() *GoTest_OptionalGroup { + return &GoTest_OptionalGroup{ + RequiredField: String("optional"), + } +} + +func initGoTest_RepeatedGroup() *GoTest_RepeatedGroup { + return &GoTest_RepeatedGroup{ + RequiredField: String("repeated"), + } +} + +func initGoTest(setdefaults bool) *GoTest { + pb := new(GoTest) + if setdefaults { + pb.F_BoolDefaulted = Bool(Default_GoTest_F_BoolDefaulted) + pb.F_Int32Defaulted = Int32(Default_GoTest_F_Int32Defaulted) + pb.F_Int64Defaulted = Int64(Default_GoTest_F_Int64Defaulted) + pb.F_Fixed32Defaulted = Uint32(Default_GoTest_F_Fixed32Defaulted) + pb.F_Fixed64Defaulted = Uint64(Default_GoTest_F_Fixed64Defaulted) + pb.F_Uint32Defaulted = Uint32(Default_GoTest_F_Uint32Defaulted) + pb.F_Uint64Defaulted = Uint64(Default_GoTest_F_Uint64Defaulted) + pb.F_FloatDefaulted = Float32(Default_GoTest_F_FloatDefaulted) + pb.F_DoubleDefaulted = Float64(Default_GoTest_F_DoubleDefaulted) + pb.F_StringDefaulted = String(Default_GoTest_F_StringDefaulted) + pb.F_BytesDefaulted = Default_GoTest_F_BytesDefaulted + pb.F_Sint32Defaulted = Int32(Default_GoTest_F_Sint32Defaulted) + pb.F_Sint64Defaulted = Int64(Default_GoTest_F_Sint64Defaulted) + } + + pb.Kind = GoTest_TIME.Enum() + pb.RequiredField = initGoTestField() + pb.F_BoolRequired = Bool(true) + pb.F_Int32Required = Int32(3) + pb.F_Int64Required = Int64(6) + pb.F_Fixed32Required = Uint32(32) + pb.F_Fixed64Required = Uint64(64) + pb.F_Uint32Required = Uint32(3232) + pb.F_Uint64Required = Uint64(6464) + pb.F_FloatRequired = Float32(3232) + pb.F_DoubleRequired = Float64(6464) + pb.F_StringRequired = String("string") + pb.F_BytesRequired = []byte("bytes") + pb.F_Sint32Required = Int32(-32) + pb.F_Sint64Required = Int64(-64) + pb.Requiredgroup = initGoTest_RequiredGroup() + + return pb +} + +func fail(msg string, b *bytes.Buffer, s string, t *testing.T) { + data := b.Bytes() + ld := len(data) + ls := len(s) / 2 + + fmt.Printf("fail %s ld=%d ls=%d\n", msg, ld, ls) + + // find the interesting spot - n + n := ls + if ld < ls { + n = ld + } + j := 0 + for i := 0; i < n; i++ { + bs := hex(s[j])*16 + hex(s[j+1]) + j += 2 + if data[i] == bs { + continue + } + n = i + break + } + l := n - 10 + if l < 0 { + l = 0 + } + h := n + 10 + + // find the interesting spot - n + fmt.Printf("is[%d]:", l) + for i := l; i < h; i++ { + if i >= ld { + fmt.Printf(" --") + continue + } + fmt.Printf(" %.2x", data[i]) + } + fmt.Printf("\n") + + fmt.Printf("sb[%d]:", l) + for i := l; i < h; i++ { + if i >= ls { + fmt.Printf(" --") + continue + } + bs := hex(s[j])*16 + hex(s[j+1]) + j += 2 + fmt.Printf(" %.2x", bs) + } + fmt.Printf("\n") + + t.Fail() + + // t.Errorf("%s: \ngood: %s\nbad: %x", msg, s, b.Bytes()) + // Print the output in a partially-decoded format; can + // be helpful when updating the test. It produces the output + // that is pasted, with minor edits, into the argument to verify(). + // data := b.Bytes() + // nesting := 0 + // for b.Len() > 0 { + // start := len(data) - b.Len() + // var u uint64 + // u, err := DecodeVarint(b) + // if err != nil { + // fmt.Printf("decode error on varint:", err) + // return + // } + // wire := u & 0x7 + // tag := u >> 3 + // switch wire { + // case WireVarint: + // v, err := DecodeVarint(b) + // if err != nil { + // fmt.Printf("decode error on varint:", err) + // return + // } + // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", + // data[start:len(data)-b.Len()], tag, wire, v) + // case WireFixed32: + // v, err := DecodeFixed32(b) + // if err != nil { + // fmt.Printf("decode error on fixed32:", err) + // return + // } + // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", + // data[start:len(data)-b.Len()], tag, wire, v) + // case WireFixed64: + // v, err := DecodeFixed64(b) + // if err != nil { + // fmt.Printf("decode error on fixed64:", err) + // return + // } + // fmt.Printf("\t\t\"%x\" // field %d, encoding %d, value %d\n", + // data[start:len(data)-b.Len()], tag, wire, v) + // case WireBytes: + // nb, err := DecodeVarint(b) + // if err != nil { + // fmt.Printf("decode error on bytes:", err) + // return + // } + // after_tag := len(data) - b.Len() + // str := make([]byte, nb) + // _, err = b.Read(str) + // if err != nil { + // fmt.Printf("decode error on bytes:", err) + // return + // } + // fmt.Printf("\t\t\"%x\" \"%x\" // field %d, encoding %d (FIELD)\n", + // data[start:after_tag], str, tag, wire) + // case WireStartGroup: + // nesting++ + // fmt.Printf("\t\t\"%x\"\t\t// start group field %d level %d\n", + // data[start:len(data)-b.Len()], tag, nesting) + // case WireEndGroup: + // fmt.Printf("\t\t\"%x\"\t\t// end group field %d level %d\n", + // data[start:len(data)-b.Len()], tag, nesting) + // nesting-- + // default: + // fmt.Printf("unrecognized wire type %d\n", wire) + // return + // } + // } +} + +func hex(c uint8) uint8 { + if '0' <= c && c <= '9' { + return c - '0' + } + if 'a' <= c && c <= 'f' { + return 10 + c - 'a' + } + if 'A' <= c && c <= 'F' { + return 10 + c - 'A' + } + return 0 +} + +func equal(b []byte, s string, t *testing.T) bool { + if 2*len(b) != len(s) { + // fail(fmt.Sprintf("wrong lengths: 2*%d != %d", len(b), len(s)), b, s, t) + fmt.Printf("wrong lengths: 2*%d != %d\n", len(b), len(s)) + return false + } + for i, j := 0, 0; i < len(b); i, j = i+1, j+2 { + x := hex(s[j])*16 + hex(s[j+1]) + if b[i] != x { + // fail(fmt.Sprintf("bad byte[%d]:%x %x", i, b[i], x), b, s, t) + fmt.Printf("bad byte[%d]:%x %x", i, b[i], x) + return false + } + } + return true +} + +func overify(t *testing.T, pb *GoTest, expected string) { + o := old() + err := o.Marshal(pb) + if err != nil { + fmt.Printf("overify marshal-1 err = %v", err) + o.DebugPrint("", o.Bytes()) + t.Fatalf("expected = %s", expected) + } + if !equal(o.Bytes(), expected, t) { + o.DebugPrint("overify neq 1", o.Bytes()) + t.Fatalf("expected = %s", expected) + } + + // Now test Unmarshal by recreating the original buffer. + pbd := new(GoTest) + err = o.Unmarshal(pbd) + if err != nil { + t.Fatalf("overify unmarshal err = %v", err) + o.DebugPrint("", o.Bytes()) + t.Fatalf("string = %s", expected) + } + o.Reset() + err = o.Marshal(pbd) + if err != nil { + t.Errorf("overify marshal-2 err = %v", err) + o.DebugPrint("", o.Bytes()) + t.Fatalf("string = %s", expected) + } + if !equal(o.Bytes(), expected, t) { + o.DebugPrint("overify neq 2", o.Bytes()) + t.Fatalf("string = %s", expected) + } +} + +// Simple tests for numeric encode/decode primitives (varint, etc.) +func TestNumericPrimitives(t *testing.T) { + for i := uint64(0); i < 1e6; i += 111 { + o := old() + if o.EncodeVarint(i) != nil { + t.Error("EncodeVarint") + break + } + x, e := o.DecodeVarint() + if e != nil { + t.Fatal("DecodeVarint") + } + if x != i { + t.Fatal("varint decode fail:", i, x) + } + + o = old() + if o.EncodeFixed32(i) != nil { + t.Fatal("encFixed32") + } + x, e = o.DecodeFixed32() + if e != nil { + t.Fatal("decFixed32") + } + if x != i { + t.Fatal("fixed32 decode fail:", i, x) + } + + o = old() + if o.EncodeFixed64(i*1234567) != nil { + t.Error("encFixed64") + break + } + x, e = o.DecodeFixed64() + if e != nil { + t.Error("decFixed64") + break + } + if x != i*1234567 { + t.Error("fixed64 decode fail:", i*1234567, x) + break + } + + o = old() + i32 := int32(i - 12345) + if o.EncodeZigzag32(uint64(i32)) != nil { + t.Fatal("EncodeZigzag32") + } + x, e = o.DecodeZigzag32() + if e != nil { + t.Fatal("DecodeZigzag32") + } + if x != uint64(uint32(i32)) { + t.Fatal("zigzag32 decode fail:", i32, x) + } + + o = old() + i64 := int64(i - 12345) + if o.EncodeZigzag64(uint64(i64)) != nil { + t.Fatal("EncodeZigzag64") + } + x, e = o.DecodeZigzag64() + if e != nil { + t.Fatal("DecodeZigzag64") + } + if x != uint64(i64) { + t.Fatal("zigzag64 decode fail:", i64, x) + } + } +} + +// fakeMarshaler is a simple struct implementing Marshaler and Message interfaces. +type fakeMarshaler struct { + b []byte + err error +} + +func (f *fakeMarshaler) Marshal() ([]byte, error) { return f.b, f.err } +func (f *fakeMarshaler) String() string { return fmt.Sprintf("Bytes: %v Error: %v", f.b, f.err) } +func (f *fakeMarshaler) ProtoMessage() {} +func (f *fakeMarshaler) Reset() {} + +type msgWithFakeMarshaler struct { + M *fakeMarshaler `protobuf:"bytes,1,opt,name=fake"` +} + +func (m *msgWithFakeMarshaler) String() string { return CompactTextString(m) } +func (m *msgWithFakeMarshaler) ProtoMessage() {} +func (m *msgWithFakeMarshaler) Reset() {} + +// Simple tests for proto messages that implement the Marshaler interface. +func TestMarshalerEncoding(t *testing.T) { + tests := []struct { + name string + m Message + want []byte + wantErr error + }{ + { + name: "Marshaler that fails", + m: &fakeMarshaler{ + err: errors.New("some marshal err"), + b: []byte{5, 6, 7}, + }, + // Since there's an error, nothing should be written to buffer. + want: nil, + wantErr: errors.New("some marshal err"), + }, + { + name: "Marshaler that fails with RequiredNotSetError", + m: &msgWithFakeMarshaler{ + M: &fakeMarshaler{ + err: &RequiredNotSetError{}, + b: []byte{5, 6, 7}, + }, + }, + // Since there's an error that can be continued after, + // the buffer should be written. + want: []byte{ + 10, 3, // for &msgWithFakeMarshaler + 5, 6, 7, // for &fakeMarshaler + }, + wantErr: &RequiredNotSetError{}, + }, + { + name: "Marshaler that succeeds", + m: &fakeMarshaler{ + b: []byte{0, 1, 2, 3, 4, 127, 255}, + }, + want: []byte{0, 1, 2, 3, 4, 127, 255}, + wantErr: nil, + }, + } + for _, test := range tests { + b := NewBuffer(nil) + err := b.Marshal(test.m) + if _, ok := err.(*RequiredNotSetError); ok { + // We're not in package proto, so we can only assert the type in this case. + err = &RequiredNotSetError{} + } + if !reflect.DeepEqual(test.wantErr, err) { + t.Errorf("%s: got err %v wanted %v", test.name, err, test.wantErr) + } + if !reflect.DeepEqual(test.want, b.Bytes()) { + t.Errorf("%s: got bytes %v wanted %v", test.name, b.Bytes(), test.want) + } + } +} + +// Simple tests for bytes +func TestBytesPrimitives(t *testing.T) { + o := old() + bytes := []byte{'n', 'o', 'w', ' ', 'i', 's', ' ', 't', 'h', 'e', ' ', 't', 'i', 'm', 'e'} + if o.EncodeRawBytes(bytes) != nil { + t.Error("EncodeRawBytes") + } + decb, e := o.DecodeRawBytes(false) + if e != nil { + t.Error("DecodeRawBytes") + } + equalbytes(bytes, decb, t) +} + +// Simple tests for strings +func TestStringPrimitives(t *testing.T) { + o := old() + s := "now is the time" + if o.EncodeStringBytes(s) != nil { + t.Error("enc_string") + } + decs, e := o.DecodeStringBytes() + if e != nil { + t.Error("dec_string") + } + if s != decs { + t.Error("string encode/decode fail:", s, decs) + } +} + +// Do we catch the "required bit not set" case? +func TestRequiredBit(t *testing.T) { + o := old() + pb := new(GoTest) + err := o.Marshal(pb) + if err == nil { + t.Error("did not catch missing required fields") + } else if strings.Index(err.Error(), "Kind") < 0 { + t.Error("wrong error type:", err) + } +} + +// Check that all fields are nil. +// Clearly silly, and a residue from a more interesting test with an earlier, +// different initialization property, but it once caught a compiler bug so +// it lives. +func checkInitialized(pb *GoTest, t *testing.T) { + if pb.F_BoolDefaulted != nil { + t.Error("New or Reset did not set boolean:", *pb.F_BoolDefaulted) + } + if pb.F_Int32Defaulted != nil { + t.Error("New or Reset did not set int32:", *pb.F_Int32Defaulted) + } + if pb.F_Int64Defaulted != nil { + t.Error("New or Reset did not set int64:", *pb.F_Int64Defaulted) + } + if pb.F_Fixed32Defaulted != nil { + t.Error("New or Reset did not set fixed32:", *pb.F_Fixed32Defaulted) + } + if pb.F_Fixed64Defaulted != nil { + t.Error("New or Reset did not set fixed64:", *pb.F_Fixed64Defaulted) + } + if pb.F_Uint32Defaulted != nil { + t.Error("New or Reset did not set uint32:", *pb.F_Uint32Defaulted) + } + if pb.F_Uint64Defaulted != nil { + t.Error("New or Reset did not set uint64:", *pb.F_Uint64Defaulted) + } + if pb.F_FloatDefaulted != nil { + t.Error("New or Reset did not set float:", *pb.F_FloatDefaulted) + } + if pb.F_DoubleDefaulted != nil { + t.Error("New or Reset did not set double:", *pb.F_DoubleDefaulted) + } + if pb.F_StringDefaulted != nil { + t.Error("New or Reset did not set string:", *pb.F_StringDefaulted) + } + if pb.F_BytesDefaulted != nil { + t.Error("New or Reset did not set bytes:", string(pb.F_BytesDefaulted)) + } + if pb.F_Sint32Defaulted != nil { + t.Error("New or Reset did not set int32:", *pb.F_Sint32Defaulted) + } + if pb.F_Sint64Defaulted != nil { + t.Error("New or Reset did not set int64:", *pb.F_Sint64Defaulted) + } +} + +// Does Reset() reset? +func TestReset(t *testing.T) { + pb := initGoTest(true) + // muck with some values + pb.F_BoolDefaulted = Bool(false) + pb.F_Int32Defaulted = Int32(237) + pb.F_Int64Defaulted = Int64(12346) + pb.F_Fixed32Defaulted = Uint32(32000) + pb.F_Fixed64Defaulted = Uint64(666) + pb.F_Uint32Defaulted = Uint32(323232) + pb.F_Uint64Defaulted = nil + pb.F_FloatDefaulted = nil + pb.F_DoubleDefaulted = Float64(0) + pb.F_StringDefaulted = String("gotcha") + pb.F_BytesDefaulted = []byte("asdfasdf") + pb.F_Sint32Defaulted = Int32(123) + pb.F_Sint64Defaulted = Int64(789) + pb.Reset() + checkInitialized(pb, t) +} + +// All required fields set, no defaults provided. +func TestEncodeDecode1(t *testing.T) { + pb := initGoTest(false) + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 0x20 + "714000000000000000"+ // field 14, encoding 1, value 0x40 + "78a019"+ // field 15, encoding 0, value 0xca0 = 3232 + "8001c032"+ // field 16, encoding 0, value 0x1940 = 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2, string "string" + "b304"+ // field 70, encoding 3, start group + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // field 70, encoding 4, end group + "aa0605"+"6279746573"+ // field 101, encoding 2, string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f") // field 103, encoding 0, 0x7f zigzag64 +} + +// All required fields set, defaults provided. +func TestEncodeDecode2(t *testing.T) { + pb := initGoTest(true) + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 32 + "714000000000000000"+ // field 14, encoding 1, value 64 + "78a019"+ // field 15, encoding 0, value 3232 + "8001c032"+ // field 16, encoding 0, value 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" + "c00201"+ // field 40, encoding 0, value 1 + "c80220"+ // field 41, encoding 0, value 32 + "d00240"+ // field 42, encoding 0, value 64 + "dd0240010000"+ // field 43, encoding 5, value 320 + "e1028002000000000000"+ // field 44, encoding 1, value 640 + "e8028019"+ // field 45, encoding 0, value 3200 + "f0028032"+ // field 46, encoding 0, value 6400 + "fd02e0659948"+ // field 47, encoding 5, value 314159.0 + "81030000000050971041"+ // field 48, encoding 1, value 271828.0 + "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" + "b304"+ // start group field 70 level 1 + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // end group field 70 level 1 + "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 + "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" + "90193f"+ // field 402, encoding 0, value 63 + "98197f") // field 403, encoding 0, value 127 + +} + +// All default fields set to their default value by hand +func TestEncodeDecode3(t *testing.T) { + pb := initGoTest(false) + pb.F_BoolDefaulted = Bool(true) + pb.F_Int32Defaulted = Int32(32) + pb.F_Int64Defaulted = Int64(64) + pb.F_Fixed32Defaulted = Uint32(320) + pb.F_Fixed64Defaulted = Uint64(640) + pb.F_Uint32Defaulted = Uint32(3200) + pb.F_Uint64Defaulted = Uint64(6400) + pb.F_FloatDefaulted = Float32(314159) + pb.F_DoubleDefaulted = Float64(271828) + pb.F_StringDefaulted = String("hello, \"world!\"\n") + pb.F_BytesDefaulted = []byte("Bignose") + pb.F_Sint32Defaulted = Int32(-32) + pb.F_Sint64Defaulted = Int64(-64) + + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 32 + "714000000000000000"+ // field 14, encoding 1, value 64 + "78a019"+ // field 15, encoding 0, value 3232 + "8001c032"+ // field 16, encoding 0, value 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" + "c00201"+ // field 40, encoding 0, value 1 + "c80220"+ // field 41, encoding 0, value 32 + "d00240"+ // field 42, encoding 0, value 64 + "dd0240010000"+ // field 43, encoding 5, value 320 + "e1028002000000000000"+ // field 44, encoding 1, value 640 + "e8028019"+ // field 45, encoding 0, value 3200 + "f0028032"+ // field 46, encoding 0, value 6400 + "fd02e0659948"+ // field 47, encoding 5, value 314159.0 + "81030000000050971041"+ // field 48, encoding 1, value 271828.0 + "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" + "b304"+ // start group field 70 level 1 + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // end group field 70 level 1 + "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 + "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" + "90193f"+ // field 402, encoding 0, value 63 + "98197f") // field 403, encoding 0, value 127 + +} + +// All required fields set, defaults provided, all non-defaulted optional fields have values. +func TestEncodeDecode4(t *testing.T) { + pb := initGoTest(true) + pb.Table = String("hello") + pb.Param = Int32(7) + pb.OptionalField = initGoTestField() + pb.F_BoolOptional = Bool(true) + pb.F_Int32Optional = Int32(32) + pb.F_Int64Optional = Int64(64) + pb.F_Fixed32Optional = Uint32(3232) + pb.F_Fixed64Optional = Uint64(6464) + pb.F_Uint32Optional = Uint32(323232) + pb.F_Uint64Optional = Uint64(646464) + pb.F_FloatOptional = Float32(32.) + pb.F_DoubleOptional = Float64(64.) + pb.F_StringOptional = String("hello") + pb.F_BytesOptional = []byte("Bignose") + pb.F_Sint32Optional = Int32(-32) + pb.F_Sint64Optional = Int64(-64) + pb.Optionalgroup = initGoTest_OptionalGroup() + + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "1205"+"68656c6c6f"+ // field 2, encoding 2, string "hello" + "1807"+ // field 3, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "320d"+"0a056c6162656c120474797065"+ // field 6, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 32 + "714000000000000000"+ // field 14, encoding 1, value 64 + "78a019"+ // field 15, encoding 0, value 3232 + "8001c032"+ // field 16, encoding 0, value 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" + "f00101"+ // field 30, encoding 0, value 1 + "f80120"+ // field 31, encoding 0, value 32 + "800240"+ // field 32, encoding 0, value 64 + "8d02a00c0000"+ // field 33, encoding 5, value 3232 + "91024019000000000000"+ // field 34, encoding 1, value 6464 + "9802a0dd13"+ // field 35, encoding 0, value 323232 + "a002c0ba27"+ // field 36, encoding 0, value 646464 + "ad0200000042"+ // field 37, encoding 5, value 32.0 + "b1020000000000005040"+ // field 38, encoding 1, value 64.0 + "ba0205"+"68656c6c6f"+ // field 39, encoding 2, string "hello" + "c00201"+ // field 40, encoding 0, value 1 + "c80220"+ // field 41, encoding 0, value 32 + "d00240"+ // field 42, encoding 0, value 64 + "dd0240010000"+ // field 43, encoding 5, value 320 + "e1028002000000000000"+ // field 44, encoding 1, value 640 + "e8028019"+ // field 45, encoding 0, value 3200 + "f0028032"+ // field 46, encoding 0, value 6400 + "fd02e0659948"+ // field 47, encoding 5, value 314159.0 + "81030000000050971041"+ // field 48, encoding 1, value 271828.0 + "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" + "b304"+ // start group field 70 level 1 + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // end group field 70 level 1 + "d305"+ // start group field 90 level 1 + "da0508"+"6f7074696f6e616c"+ // field 91, encoding 2, string "optional" + "d405"+ // end group field 90 level 1 + "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 + "ea1207"+"4269676e6f7365"+ // field 301, encoding 2, string "Bignose" + "f0123f"+ // field 302, encoding 0, value 63 + "f8127f"+ // field 303, encoding 0, value 127 + "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" + "90193f"+ // field 402, encoding 0, value 63 + "98197f") // field 403, encoding 0, value 127 + +} + +// All required fields set, defaults provided, all repeated fields given two values. +func TestEncodeDecode5(t *testing.T) { + pb := initGoTest(true) + pb.RepeatedField = []*GoTestField{initGoTestField(), initGoTestField()} + pb.F_BoolRepeated = []bool{false, true} + pb.F_Int32Repeated = []int32{32, 33} + pb.F_Int64Repeated = []int64{64, 65} + pb.F_Fixed32Repeated = []uint32{3232, 3333} + pb.F_Fixed64Repeated = []uint64{6464, 6565} + pb.F_Uint32Repeated = []uint32{323232, 333333} + pb.F_Uint64Repeated = []uint64{646464, 656565} + pb.F_FloatRepeated = []float32{32., 33.} + pb.F_DoubleRepeated = []float64{64., 65.} + pb.F_StringRepeated = []string{"hello", "sailor"} + pb.F_BytesRepeated = [][]byte{[]byte("big"), []byte("nose")} + pb.F_Sint32Repeated = []int32{32, -32} + pb.F_Sint64Repeated = []int64{64, -64} + pb.Repeatedgroup = []*GoTest_RepeatedGroup{initGoTest_RepeatedGroup(), initGoTest_RepeatedGroup()} + + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "2a0d"+"0a056c6162656c120474797065"+ // field 5, encoding 2 (GoTestField) + "2a0d"+"0a056c6162656c120474797065"+ // field 5, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 32 + "714000000000000000"+ // field 14, encoding 1, value 64 + "78a019"+ // field 15, encoding 0, value 3232 + "8001c032"+ // field 16, encoding 0, value 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" + "a00100"+ // field 20, encoding 0, value 0 + "a00101"+ // field 20, encoding 0, value 1 + "a80120"+ // field 21, encoding 0, value 32 + "a80121"+ // field 21, encoding 0, value 33 + "b00140"+ // field 22, encoding 0, value 64 + "b00141"+ // field 22, encoding 0, value 65 + "bd01a00c0000"+ // field 23, encoding 5, value 3232 + "bd01050d0000"+ // field 23, encoding 5, value 3333 + "c1014019000000000000"+ // field 24, encoding 1, value 6464 + "c101a519000000000000"+ // field 24, encoding 1, value 6565 + "c801a0dd13"+ // field 25, encoding 0, value 323232 + "c80195ac14"+ // field 25, encoding 0, value 333333 + "d001c0ba27"+ // field 26, encoding 0, value 646464 + "d001b58928"+ // field 26, encoding 0, value 656565 + "dd0100000042"+ // field 27, encoding 5, value 32.0 + "dd0100000442"+ // field 27, encoding 5, value 33.0 + "e1010000000000005040"+ // field 28, encoding 1, value 64.0 + "e1010000000000405040"+ // field 28, encoding 1, value 65.0 + "ea0105"+"68656c6c6f"+ // field 29, encoding 2, string "hello" + "ea0106"+"7361696c6f72"+ // field 29, encoding 2, string "sailor" + "c00201"+ // field 40, encoding 0, value 1 + "c80220"+ // field 41, encoding 0, value 32 + "d00240"+ // field 42, encoding 0, value 64 + "dd0240010000"+ // field 43, encoding 5, value 320 + "e1028002000000000000"+ // field 44, encoding 1, value 640 + "e8028019"+ // field 45, encoding 0, value 3200 + "f0028032"+ // field 46, encoding 0, value 6400 + "fd02e0659948"+ // field 47, encoding 5, value 314159.0 + "81030000000050971041"+ // field 48, encoding 1, value 271828.0 + "8a0310"+"68656c6c6f2c2022776f726c6421220a"+ // field 49, encoding 2 string "hello, \"world!\"\n" + "b304"+ // start group field 70 level 1 + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // end group field 70 level 1 + "8305"+ // start group field 80 level 1 + "8a0508"+"7265706561746564"+ // field 81, encoding 2, string "repeated" + "8405"+ // end group field 80 level 1 + "8305"+ // start group field 80 level 1 + "8a0508"+"7265706561746564"+ // field 81, encoding 2, string "repeated" + "8405"+ // end group field 80 level 1 + "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 + "ca0c03"+"626967"+ // field 201, encoding 2, string "big" + "ca0c04"+"6e6f7365"+ // field 201, encoding 2, string "nose" + "d00c40"+ // field 202, encoding 0, value 32 + "d00c3f"+ // field 202, encoding 0, value -32 + "d80c8001"+ // field 203, encoding 0, value 64 + "d80c7f"+ // field 203, encoding 0, value -64 + "8a1907"+"4269676e6f7365"+ // field 401, encoding 2, string "Bignose" + "90193f"+ // field 402, encoding 0, value 63 + "98197f") // field 403, encoding 0, value 127 + +} + +// All required fields set, all packed repeated fields given two values. +func TestEncodeDecode6(t *testing.T) { + pb := initGoTest(false) + pb.F_BoolRepeatedPacked = []bool{false, true} + pb.F_Int32RepeatedPacked = []int32{32, 33} + pb.F_Int64RepeatedPacked = []int64{64, 65} + pb.F_Fixed32RepeatedPacked = []uint32{3232, 3333} + pb.F_Fixed64RepeatedPacked = []uint64{6464, 6565} + pb.F_Uint32RepeatedPacked = []uint32{323232, 333333} + pb.F_Uint64RepeatedPacked = []uint64{646464, 656565} + pb.F_FloatRepeatedPacked = []float32{32., 33.} + pb.F_DoubleRepeatedPacked = []float64{64., 65.} + pb.F_Sint32RepeatedPacked = []int32{32, -32} + pb.F_Sint64RepeatedPacked = []int64{64, -64} + + overify(t, pb, + "0807"+ // field 1, encoding 0, value 7 + "220d"+"0a056c6162656c120474797065"+ // field 4, encoding 2 (GoTestField) + "5001"+ // field 10, encoding 0, value 1 + "5803"+ // field 11, encoding 0, value 3 + "6006"+ // field 12, encoding 0, value 6 + "6d20000000"+ // field 13, encoding 5, value 32 + "714000000000000000"+ // field 14, encoding 1, value 64 + "78a019"+ // field 15, encoding 0, value 3232 + "8001c032"+ // field 16, encoding 0, value 6464 + "8d0100004a45"+ // field 17, encoding 5, value 3232.0 + "9101000000000040b940"+ // field 18, encoding 1, value 6464.0 + "9a0106"+"737472696e67"+ // field 19, encoding 2 string "string" + "9203020001"+ // field 50, encoding 2, 2 bytes, value 0, value 1 + "9a03022021"+ // field 51, encoding 2, 2 bytes, value 32, value 33 + "a203024041"+ // field 52, encoding 2, 2 bytes, value 64, value 65 + "aa0308"+ // field 53, encoding 2, 8 bytes + "a00c0000050d0000"+ // value 3232, value 3333 + "b20310"+ // field 54, encoding 2, 16 bytes + "4019000000000000a519000000000000"+ // value 6464, value 6565 + "ba0306"+ // field 55, encoding 2, 6 bytes + "a0dd1395ac14"+ // value 323232, value 333333 + "c20306"+ // field 56, encoding 2, 6 bytes + "c0ba27b58928"+ // value 646464, value 656565 + "ca0308"+ // field 57, encoding 2, 8 bytes + "0000004200000442"+ // value 32.0, value 33.0 + "d20310"+ // field 58, encoding 2, 16 bytes + "00000000000050400000000000405040"+ // value 64.0, value 65.0 + "b304"+ // start group field 70 level 1 + "ba0408"+"7265717569726564"+ // field 71, encoding 2, string "required" + "b404"+ // end group field 70 level 1 + "aa0605"+"6279746573"+ // field 101, encoding 2 string "bytes" + "b0063f"+ // field 102, encoding 0, 0x3f zigzag32 + "b8067f"+ // field 103, encoding 0, 0x7f zigzag64 + "b21f02"+ // field 502, encoding 2, 2 bytes + "403f"+ // value 32, value -32 + "ba1f03"+ // field 503, encoding 2, 3 bytes + "80017f") // value 64, value -64 +} + +// Test that we can encode empty bytes fields. +func TestEncodeDecodeBytes1(t *testing.T) { + pb := initGoTest(false) + + // Create our bytes + pb.F_BytesRequired = []byte{} + pb.F_BytesRepeated = [][]byte{{}} + pb.F_BytesOptional = []byte{} + + d, err := Marshal(pb) + if err != nil { + t.Error(err) + } + + pbd := new(GoTest) + if err := Unmarshal(d, pbd); err != nil { + t.Error(err) + } + + if pbd.F_BytesRequired == nil || len(pbd.F_BytesRequired) != 0 { + t.Error("required empty bytes field is incorrect") + } + if pbd.F_BytesRepeated == nil || len(pbd.F_BytesRepeated) == 1 && pbd.F_BytesRepeated[0] == nil { + t.Error("repeated empty bytes field is incorrect") + } + if pbd.F_BytesOptional == nil || len(pbd.F_BytesOptional) != 0 { + t.Error("optional empty bytes field is incorrect") + } +} + +// Test that we encode nil-valued fields of a repeated bytes field correctly. +// Since entries in a repeated field cannot be nil, nil must mean empty value. +func TestEncodeDecodeBytes2(t *testing.T) { + pb := initGoTest(false) + + // Create our bytes + pb.F_BytesRepeated = [][]byte{nil} + + d, err := Marshal(pb) + if err != nil { + t.Error(err) + } + + pbd := new(GoTest) + if err := Unmarshal(d, pbd); err != nil { + t.Error(err) + } + + if len(pbd.F_BytesRepeated) != 1 || pbd.F_BytesRepeated[0] == nil { + t.Error("Unexpected value for repeated bytes field") + } +} + +// All required fields set, defaults provided, all repeated fields given two values. +func TestSkippingUnrecognizedFields(t *testing.T) { + o := old() + pb := initGoTestField() + + // Marshal it normally. + o.Marshal(pb) + + // Now new a GoSkipTest record. + skip := &GoSkipTest{ + SkipInt32: Int32(32), + SkipFixed32: Uint32(3232), + SkipFixed64: Uint64(6464), + SkipString: String("skipper"), + Skipgroup: &GoSkipTest_SkipGroup{ + GroupInt32: Int32(75), + GroupString: String("wxyz"), + }, + } + + // Marshal it into same buffer. + o.Marshal(skip) + + pbd := new(GoTestField) + o.Unmarshal(pbd) + + // The __unrecognized field should be a marshaling of GoSkipTest + skipd := new(GoSkipTest) + + o.SetBuf(pbd.XXX_unrecognized) + o.Unmarshal(skipd) + + if *skipd.SkipInt32 != *skip.SkipInt32 { + t.Error("skip int32", skipd.SkipInt32) + } + if *skipd.SkipFixed32 != *skip.SkipFixed32 { + t.Error("skip fixed32", skipd.SkipFixed32) + } + if *skipd.SkipFixed64 != *skip.SkipFixed64 { + t.Error("skip fixed64", skipd.SkipFixed64) + } + if *skipd.SkipString != *skip.SkipString { + t.Error("skip string", *skipd.SkipString) + } + if *skipd.Skipgroup.GroupInt32 != *skip.Skipgroup.GroupInt32 { + t.Error("skip group int32", skipd.Skipgroup.GroupInt32) + } + if *skipd.Skipgroup.GroupString != *skip.Skipgroup.GroupString { + t.Error("skip group string", *skipd.Skipgroup.GroupString) + } +} + +// Check that unrecognized fields of a submessage are preserved. +func TestSubmessageUnrecognizedFields(t *testing.T) { + nm := &NewMessage{ + Nested: &NewMessage_Nested{ + Name: String("Nigel"), + FoodGroup: String("carbs"), + }, + } + b, err := Marshal(nm) + if err != nil { + t.Fatalf("Marshal of NewMessage: %v", err) + } + + // Unmarshal into an OldMessage. + om := new(OldMessage) + if err := Unmarshal(b, om); err != nil { + t.Fatalf("Unmarshal to OldMessage: %v", err) + } + exp := &OldMessage{ + Nested: &OldMessage_Nested{ + Name: String("Nigel"), + // normal protocol buffer users should not do this + XXX_unrecognized: []byte("\x12\x05carbs"), + }, + } + if !Equal(om, exp) { + t.Errorf("om = %v, want %v", om, exp) + } + + // Clone the OldMessage. + om = Clone(om).(*OldMessage) + if !Equal(om, exp) { + t.Errorf("Clone(om) = %v, want %v", om, exp) + } + + // Marshal the OldMessage, then unmarshal it into an empty NewMessage. + if b, err = Marshal(om); err != nil { + t.Fatalf("Marshal of OldMessage: %v", err) + } + t.Logf("Marshal(%v) -> %q", om, b) + nm2 := new(NewMessage) + if err := Unmarshal(b, nm2); err != nil { + t.Fatalf("Unmarshal to NewMessage: %v", err) + } + if !Equal(nm, nm2) { + t.Errorf("NewMessage round-trip: %v => %v", nm, nm2) + } +} + +// Check that an int32 field can be upgraded to an int64 field. +func TestNegativeInt32(t *testing.T) { + om := &OldMessage{ + Num: Int32(-1), + } + b, err := Marshal(om) + if err != nil { + t.Fatalf("Marshal of OldMessage: %v", err) + } + + // Check the size. It should be 11 bytes; + // 1 for the field/wire type, and 10 for the negative number. + if len(b) != 11 { + t.Errorf("%v marshaled as %q, wanted 11 bytes", om, b) + } + + // Unmarshal into a NewMessage. + nm := new(NewMessage) + if err := Unmarshal(b, nm); err != nil { + t.Fatalf("Unmarshal to NewMessage: %v", err) + } + want := &NewMessage{ + Num: Int64(-1), + } + if !Equal(nm, want) { + t.Errorf("nm = %v, want %v", nm, want) + } +} + +// Check that we can grow an array (repeated field) to have many elements. +// This test doesn't depend only on our encoding; for variety, it makes sure +// we create, encode, and decode the correct contents explicitly. It's therefore +// a bit messier. +// This test also uses (and hence tests) the Marshal/Unmarshal functions +// instead of the methods. +func TestBigRepeated(t *testing.T) { + pb := initGoTest(true) + + // Create the arrays + const N = 50 // Internally the library starts much smaller. + pb.Repeatedgroup = make([]*GoTest_RepeatedGroup, N) + pb.F_Sint64Repeated = make([]int64, N) + pb.F_Sint32Repeated = make([]int32, N) + pb.F_BytesRepeated = make([][]byte, N) + pb.F_StringRepeated = make([]string, N) + pb.F_DoubleRepeated = make([]float64, N) + pb.F_FloatRepeated = make([]float32, N) + pb.F_Uint64Repeated = make([]uint64, N) + pb.F_Uint32Repeated = make([]uint32, N) + pb.F_Fixed64Repeated = make([]uint64, N) + pb.F_Fixed32Repeated = make([]uint32, N) + pb.F_Int64Repeated = make([]int64, N) + pb.F_Int32Repeated = make([]int32, N) + pb.F_BoolRepeated = make([]bool, N) + pb.RepeatedField = make([]*GoTestField, N) + + // Fill in the arrays with checkable values. + igtf := initGoTestField() + igtrg := initGoTest_RepeatedGroup() + for i := 0; i < N; i++ { + pb.Repeatedgroup[i] = igtrg + pb.F_Sint64Repeated[i] = int64(i) + pb.F_Sint32Repeated[i] = int32(i) + s := fmt.Sprint(i) + pb.F_BytesRepeated[i] = []byte(s) + pb.F_StringRepeated[i] = s + pb.F_DoubleRepeated[i] = float64(i) + pb.F_FloatRepeated[i] = float32(i) + pb.F_Uint64Repeated[i] = uint64(i) + pb.F_Uint32Repeated[i] = uint32(i) + pb.F_Fixed64Repeated[i] = uint64(i) + pb.F_Fixed32Repeated[i] = uint32(i) + pb.F_Int64Repeated[i] = int64(i) + pb.F_Int32Repeated[i] = int32(i) + pb.F_BoolRepeated[i] = i%2 == 0 + pb.RepeatedField[i] = igtf + } + + // Marshal. + buf, _ := Marshal(pb) + + // Now test Unmarshal by recreating the original buffer. + pbd := new(GoTest) + Unmarshal(buf, pbd) + + // Check the checkable values + for i := uint64(0); i < N; i++ { + if pbd.Repeatedgroup[i] == nil { // TODO: more checking? + t.Error("pbd.Repeatedgroup bad") + } + var x uint64 + x = uint64(pbd.F_Sint64Repeated[i]) + if x != i { + t.Error("pbd.F_Sint64Repeated bad", x, i) + } + x = uint64(pbd.F_Sint32Repeated[i]) + if x != i { + t.Error("pbd.F_Sint32Repeated bad", x, i) + } + s := fmt.Sprint(i) + equalbytes(pbd.F_BytesRepeated[i], []byte(s), t) + if pbd.F_StringRepeated[i] != s { + t.Error("pbd.F_Sint32Repeated bad", pbd.F_StringRepeated[i], i) + } + x = uint64(pbd.F_DoubleRepeated[i]) + if x != i { + t.Error("pbd.F_DoubleRepeated bad", x, i) + } + x = uint64(pbd.F_FloatRepeated[i]) + if x != i { + t.Error("pbd.F_FloatRepeated bad", x, i) + } + x = pbd.F_Uint64Repeated[i] + if x != i { + t.Error("pbd.F_Uint64Repeated bad", x, i) + } + x = uint64(pbd.F_Uint32Repeated[i]) + if x != i { + t.Error("pbd.F_Uint32Repeated bad", x, i) + } + x = pbd.F_Fixed64Repeated[i] + if x != i { + t.Error("pbd.F_Fixed64Repeated bad", x, i) + } + x = uint64(pbd.F_Fixed32Repeated[i]) + if x != i { + t.Error("pbd.F_Fixed32Repeated bad", x, i) + } + x = uint64(pbd.F_Int64Repeated[i]) + if x != i { + t.Error("pbd.F_Int64Repeated bad", x, i) + } + x = uint64(pbd.F_Int32Repeated[i]) + if x != i { + t.Error("pbd.F_Int32Repeated bad", x, i) + } + if pbd.F_BoolRepeated[i] != (i%2 == 0) { + t.Error("pbd.F_BoolRepeated bad", x, i) + } + if pbd.RepeatedField[i] == nil { // TODO: more checking? + t.Error("pbd.RepeatedField bad") + } + } +} + +// Verify we give a useful message when decoding to the wrong structure type. +func TestTypeMismatch(t *testing.T) { + pb1 := initGoTest(true) + + // Marshal + o := old() + o.Marshal(pb1) + + // Now Unmarshal it to the wrong type. + pb2 := initGoTestField() + err := o.Unmarshal(pb2) + if err == nil { + t.Error("expected error, got no error") + } else if !strings.Contains(err.Error(), "bad wiretype") { + t.Error("expected bad wiretype error, got", err) + } +} + +func encodeDecode(t *testing.T, in, out Message, msg string) { + buf, err := Marshal(in) + if err != nil { + t.Fatalf("failed marshaling %v: %v", msg, err) + } + if err := Unmarshal(buf, out); err != nil { + t.Fatalf("failed unmarshaling %v: %v", msg, err) + } +} + +func TestPackedNonPackedDecoderSwitching(t *testing.T) { + np, p := new(NonPackedTest), new(PackedTest) + + // non-packed -> packed + np.A = []int32{0, 1, 1, 2, 3, 5} + encodeDecode(t, np, p, "non-packed -> packed") + if !reflect.DeepEqual(np.A, p.B) { + t.Errorf("failed non-packed -> packed; np.A=%+v, p.B=%+v", np.A, p.B) + } + + // packed -> non-packed + np.Reset() + p.B = []int32{3, 1, 4, 1, 5, 9} + encodeDecode(t, p, np, "packed -> non-packed") + if !reflect.DeepEqual(p.B, np.A) { + t.Errorf("failed packed -> non-packed; p.B=%+v, np.A=%+v", p.B, np.A) + } +} + +func TestProto1RepeatedGroup(t *testing.T) { + pb := &MessageList{ + Message: []*MessageList_Message{ + { + Name: String("blah"), + Count: Int32(7), + }, + // NOTE: pb.Message[1] is a nil + nil, + }, + } + + o := old() + err := o.Marshal(pb) + if err == nil || !strings.Contains(err.Error(), "repeated field Message has nil") { + t.Fatalf("unexpected or no error when marshaling: %v", err) + } +} + +// Test that enums work. Checks for a bug introduced by making enums +// named types instead of int32: newInt32FromUint64 would crash with +// a type mismatch in reflect.PointTo. +func TestEnum(t *testing.T) { + pb := new(GoEnum) + pb.Foo = FOO_FOO1.Enum() + o := old() + if err := o.Marshal(pb); err != nil { + t.Fatal("error encoding enum:", err) + } + pb1 := new(GoEnum) + if err := o.Unmarshal(pb1); err != nil { + t.Fatal("error decoding enum:", err) + } + if *pb1.Foo != FOO_FOO1 { + t.Error("expected 7 but got ", *pb1.Foo) + } +} + +// Enum types have String methods. Check that enum fields can be printed. +// We don't care what the value actually is, just as long as it doesn't crash. +func TestPrintingNilEnumFields(t *testing.T) { + pb := new(GoEnum) + fmt.Sprintf("%+v", pb) +} + +// Verify that absent required fields cause Marshal/Unmarshal to return errors. +func TestRequiredFieldEnforcement(t *testing.T) { + pb := new(GoTestField) + _, err := Marshal(pb) + if err == nil { + t.Error("marshal: expected error, got nil") + } else if strings.Index(err.Error(), "Label") < 0 { + t.Errorf("marshal: bad error type: %v", err) + } + + // A slightly sneaky, yet valid, proto. It encodes the same required field twice, + // so simply counting the required fields is insufficient. + // field 1, encoding 2, value "hi" + buf := []byte("\x0A\x02hi\x0A\x02hi") + err = Unmarshal(buf, pb) + if err == nil { + t.Error("unmarshal: expected error, got nil") + } else if strings.Index(err.Error(), "{Unknown}") < 0 { + t.Errorf("unmarshal: bad error type: %v", err) + } +} + +func TestTypedNilMarshal(t *testing.T) { + // A typed nil should return ErrNil and not crash. + { + var m *GoEnum + if _, err := Marshal(m); err != ErrNil { + t.Errorf("Marshal(%#v): got %v, want ErrNil", m, err) + } + } + + { + m := &Communique{Union: &Communique_Msg{nil}} + if _, err := Marshal(m); err == nil || err == ErrNil { + t.Errorf("Marshal(%#v): got %v, want errOneofHasNil", m, err) + } + } +} + +// A type that implements the Marshaler interface, but is not nillable. +type nonNillableInt uint64 + +func (nni nonNillableInt) Marshal() ([]byte, error) { + return EncodeVarint(uint64(nni)), nil +} + +type NNIMessage struct { + nni nonNillableInt +} + +func (*NNIMessage) Reset() {} +func (*NNIMessage) String() string { return "" } +func (*NNIMessage) ProtoMessage() {} + +// A type that implements the Marshaler interface and is nillable. +type nillableMessage struct { + x uint64 +} + +func (nm *nillableMessage) Marshal() ([]byte, error) { + return EncodeVarint(nm.x), nil +} + +type NMMessage struct { + nm *nillableMessage +} + +func (*NMMessage) Reset() {} +func (*NMMessage) String() string { return "" } +func (*NMMessage) ProtoMessage() {} + +// Verify a type that uses the Marshaler interface, but has a nil pointer. +func TestNilMarshaler(t *testing.T) { + // Try a struct with a Marshaler field that is nil. + // It should be directly marshable. + nmm := new(NMMessage) + if _, err := Marshal(nmm); err != nil { + t.Error("unexpected error marshaling nmm: ", err) + } + + // Try a struct with a Marshaler field that is not nillable. + nnim := new(NNIMessage) + nnim.nni = 7 + var _ Marshaler = nnim.nni // verify it is truly a Marshaler + if _, err := Marshal(nnim); err != nil { + t.Error("unexpected error marshaling nnim: ", err) + } +} + +func TestAllSetDefaults(t *testing.T) { + // Exercise SetDefaults with all scalar field types. + m := &Defaults{ + // NaN != NaN, so override that here. + F_Nan: Float32(1.7), + } + expected := &Defaults{ + F_Bool: Bool(true), + F_Int32: Int32(32), + F_Int64: Int64(64), + F_Fixed32: Uint32(320), + F_Fixed64: Uint64(640), + F_Uint32: Uint32(3200), + F_Uint64: Uint64(6400), + F_Float: Float32(314159), + F_Double: Float64(271828), + F_String: String(`hello, "world!"` + "\n"), + F_Bytes: []byte("Bignose"), + F_Sint32: Int32(-32), + F_Sint64: Int64(-64), + F_Enum: Defaults_GREEN.Enum(), + F_Pinf: Float32(float32(math.Inf(1))), + F_Ninf: Float32(float32(math.Inf(-1))), + F_Nan: Float32(1.7), + StrZero: String(""), + } + SetDefaults(m) + if !Equal(m, expected) { + t.Errorf("SetDefaults failed\n got %v\nwant %v", m, expected) + } +} + +func TestSetDefaultsWithSetField(t *testing.T) { + // Check that a set value is not overridden. + m := &Defaults{ + F_Int32: Int32(12), + } + SetDefaults(m) + if v := m.GetF_Int32(); v != 12 { + t.Errorf("m.FInt32 = %v, want 12", v) + } +} + +func TestSetDefaultsWithSubMessage(t *testing.T) { + m := &OtherMessage{ + Key: Int64(123), + Inner: &InnerMessage{ + Host: String("gopher"), + }, + } + expected := &OtherMessage{ + Key: Int64(123), + Inner: &InnerMessage{ + Host: String("gopher"), + Port: Int32(4000), + }, + } + SetDefaults(m) + if !Equal(m, expected) { + t.Errorf("\n got %v\nwant %v", m, expected) + } +} + +func TestSetDefaultsWithRepeatedSubMessage(t *testing.T) { + m := &MyMessage{ + RepInner: []*InnerMessage{{}}, + } + expected := &MyMessage{ + RepInner: []*InnerMessage{{ + Port: Int32(4000), + }}, + } + SetDefaults(m) + if !Equal(m, expected) { + t.Errorf("\n got %v\nwant %v", m, expected) + } +} + +func TestSetDefaultWithRepeatedNonMessage(t *testing.T) { + m := &MyMessage{ + Pet: []string{"turtle", "wombat"}, + } + expected := Clone(m) + SetDefaults(m) + if !Equal(m, expected) { + t.Errorf("\n got %v\nwant %v", m, expected) + } +} + +func TestMaximumTagNumber(t *testing.T) { + m := &MaxTag{ + LastField: String("natural goat essence"), + } + buf, err := Marshal(m) + if err != nil { + t.Fatalf("proto.Marshal failed: %v", err) + } + m2 := new(MaxTag) + if err := Unmarshal(buf, m2); err != nil { + t.Fatalf("proto.Unmarshal failed: %v", err) + } + if got, want := m2.GetLastField(), *m.LastField; got != want { + t.Errorf("got %q, want %q", got, want) + } +} + +func TestJSON(t *testing.T) { + m := &MyMessage{ + Count: Int32(4), + Pet: []string{"bunny", "kitty"}, + Inner: &InnerMessage{ + Host: String("cauchy"), + }, + Bikeshed: MyMessage_GREEN.Enum(), + } + const expected = `{"count":4,"pet":["bunny","kitty"],"inner":{"host":"cauchy"},"bikeshed":1}` + + b, err := json.Marshal(m) + if err != nil { + t.Fatalf("json.Marshal failed: %v", err) + } + s := string(b) + if s != expected { + t.Errorf("got %s\nwant %s", s, expected) + } + + received := new(MyMessage) + if err := json.Unmarshal(b, received); err != nil { + t.Fatalf("json.Unmarshal failed: %v", err) + } + if !Equal(received, m) { + t.Fatalf("got %s, want %s", received, m) + } + + // Test unmarshalling of JSON with symbolic enum name. + const old = `{"count":4,"pet":["bunny","kitty"],"inner":{"host":"cauchy"},"bikeshed":"GREEN"}` + received.Reset() + if err := json.Unmarshal([]byte(old), received); err != nil { + t.Fatalf("json.Unmarshal failed: %v", err) + } + if !Equal(received, m) { + t.Fatalf("got %s, want %s", received, m) + } +} + +func TestBadWireType(t *testing.T) { + b := []byte{7<<3 | 6} // field 7, wire type 6 + pb := new(OtherMessage) + if err := Unmarshal(b, pb); err == nil { + t.Errorf("Unmarshal did not fail") + } else if !strings.Contains(err.Error(), "unknown wire type") { + t.Errorf("wrong error: %v", err) + } +} + +func TestBytesWithInvalidLength(t *testing.T) { + // If a byte sequence has an invalid (negative) length, Unmarshal should not panic. + b := []byte{2<<3 | WireBytes, 0xff, 0xff, 0xff, 0xff, 0xff, 0} + Unmarshal(b, new(MyMessage)) +} + +func TestLengthOverflow(t *testing.T) { + // Overflowing a length should not panic. + b := []byte{2<<3 | WireBytes, 1, 1, 3<<3 | WireBytes, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01} + Unmarshal(b, new(MyMessage)) +} + +func TestVarintOverflow(t *testing.T) { + // Overflowing a 64-bit length should not be allowed. + b := []byte{1<<3 | WireVarint, 0x01, 3<<3 | WireBytes, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01} + if err := Unmarshal(b, new(MyMessage)); err == nil { + t.Fatalf("Overflowed uint64 length without error") + } +} + +func TestUnmarshalFuzz(t *testing.T) { + const N = 1000 + seed := time.Now().UnixNano() + t.Logf("RNG seed is %d", seed) + rng := rand.New(rand.NewSource(seed)) + buf := make([]byte, 20) + for i := 0; i < N; i++ { + for j := range buf { + buf[j] = byte(rng.Intn(256)) + } + fuzzUnmarshal(t, buf) + } +} + +func TestMergeMessages(t *testing.T) { + pb := &MessageList{Message: []*MessageList_Message{{Name: String("x"), Count: Int32(1)}}} + data, err := Marshal(pb) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + + pb1 := new(MessageList) + if err := Unmarshal(data, pb1); err != nil { + t.Fatalf("first Unmarshal: %v", err) + } + if err := Unmarshal(data, pb1); err != nil { + t.Fatalf("second Unmarshal: %v", err) + } + if len(pb1.Message) != 1 { + t.Errorf("two Unmarshals produced %d Messages, want 1", len(pb1.Message)) + } + + pb2 := new(MessageList) + if err := UnmarshalMerge(data, pb2); err != nil { + t.Fatalf("first UnmarshalMerge: %v", err) + } + if err := UnmarshalMerge(data, pb2); err != nil { + t.Fatalf("second UnmarshalMerge: %v", err) + } + if len(pb2.Message) != 2 { + t.Errorf("two UnmarshalMerges produced %d Messages, want 2", len(pb2.Message)) + } +} + +func TestExtensionMarshalOrder(t *testing.T) { + m := &MyMessage{Count: Int(123)} + if err := SetExtension(m, E_Ext_More, &Ext{Data: String("alpha")}); err != nil { + t.Fatalf("SetExtension: %v", err) + } + if err := SetExtension(m, E_Ext_Text, String("aleph")); err != nil { + t.Fatalf("SetExtension: %v", err) + } + if err := SetExtension(m, E_Ext_Number, Int32(1)); err != nil { + t.Fatalf("SetExtension: %v", err) + } + + // Serialize m several times, and check we get the same bytes each time. + var orig []byte + for i := 0; i < 100; i++ { + b, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + if i == 0 { + orig = b + continue + } + if !bytes.Equal(b, orig) { + t.Errorf("Bytes differ on attempt #%d", i) + } + } +} + +// Many extensions, because small maps might not iterate differently on each iteration. +var exts = []*ExtensionDesc{ + E_X201, + E_X202, + E_X203, + E_X204, + E_X205, + E_X206, + E_X207, + E_X208, + E_X209, + E_X210, + E_X211, + E_X212, + E_X213, + E_X214, + E_X215, + E_X216, + E_X217, + E_X218, + E_X219, + E_X220, + E_X221, + E_X222, + E_X223, + E_X224, + E_X225, + E_X226, + E_X227, + E_X228, + E_X229, + E_X230, + E_X231, + E_X232, + E_X233, + E_X234, + E_X235, + E_X236, + E_X237, + E_X238, + E_X239, + E_X240, + E_X241, + E_X242, + E_X243, + E_X244, + E_X245, + E_X246, + E_X247, + E_X248, + E_X249, + E_X250, +} + +func TestMessageSetMarshalOrder(t *testing.T) { + m := &MyMessageSet{} + for _, x := range exts { + if err := SetExtension(m, x, &Empty{}); err != nil { + t.Fatalf("SetExtension: %v", err) + } + } + + buf, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + + // Serialize m several times, and check we get the same bytes each time. + for i := 0; i < 10; i++ { + b1, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + if !bytes.Equal(b1, buf) { + t.Errorf("Bytes differ on re-Marshal #%d", i) + } + + m2 := &MyMessageSet{} + if err := Unmarshal(buf, m2); err != nil { + t.Errorf("Unmarshal: %v", err) + } + b2, err := Marshal(m2) + if err != nil { + t.Errorf("re-Marshal: %v", err) + } + if !bytes.Equal(b2, buf) { + t.Errorf("Bytes differ on round-trip #%d", i) + } + } +} + +func TestUnmarshalMergesMessages(t *testing.T) { + // If a nested message occurs twice in the input, + // the fields should be merged when decoding. + a := &OtherMessage{ + Key: Int64(123), + Inner: &InnerMessage{ + Host: String("polhode"), + Port: Int32(1234), + }, + } + aData, err := Marshal(a) + if err != nil { + t.Fatalf("Marshal(a): %v", err) + } + b := &OtherMessage{ + Weight: Float32(1.2), + Inner: &InnerMessage{ + Host: String("herpolhode"), + Connected: Bool(true), + }, + } + bData, err := Marshal(b) + if err != nil { + t.Fatalf("Marshal(b): %v", err) + } + want := &OtherMessage{ + Key: Int64(123), + Weight: Float32(1.2), + Inner: &InnerMessage{ + Host: String("herpolhode"), + Port: Int32(1234), + Connected: Bool(true), + }, + } + got := new(OtherMessage) + if err := Unmarshal(append(aData, bData...), got); err != nil { + t.Fatalf("Unmarshal: %v", err) + } + if !Equal(got, want) { + t.Errorf("\n got %v\nwant %v", got, want) + } +} + +func TestEncodingSizes(t *testing.T) { + tests := []struct { + m Message + n int + }{ + {&Defaults{F_Int32: Int32(math.MaxInt32)}, 6}, + {&Defaults{F_Int32: Int32(math.MinInt32)}, 11}, + {&Defaults{F_Uint32: Uint32(uint32(math.MaxInt32) + 1)}, 6}, + {&Defaults{F_Uint32: Uint32(math.MaxUint32)}, 6}, + } + for _, test := range tests { + b, err := Marshal(test.m) + if err != nil { + t.Errorf("Marshal(%v): %v", test.m, err) + continue + } + if len(b) != test.n { + t.Errorf("Marshal(%v) yielded %d bytes, want %d bytes", test.m, len(b), test.n) + } + } +} + +func TestRequiredNotSetError(t *testing.T) { + pb := initGoTest(false) + pb.RequiredField.Label = nil + pb.F_Int32Required = nil + pb.F_Int64Required = nil + + expected := "0807" + // field 1, encoding 0, value 7 + "2206" + "120474797065" + // field 4, encoding 2 (GoTestField) + "5001" + // field 10, encoding 0, value 1 + "6d20000000" + // field 13, encoding 5, value 0x20 + "714000000000000000" + // field 14, encoding 1, value 0x40 + "78a019" + // field 15, encoding 0, value 0xca0 = 3232 + "8001c032" + // field 16, encoding 0, value 0x1940 = 6464 + "8d0100004a45" + // field 17, encoding 5, value 3232.0 + "9101000000000040b940" + // field 18, encoding 1, value 6464.0 + "9a0106" + "737472696e67" + // field 19, encoding 2, string "string" + "b304" + // field 70, encoding 3, start group + "ba0408" + "7265717569726564" + // field 71, encoding 2, string "required" + "b404" + // field 70, encoding 4, end group + "aa0605" + "6279746573" + // field 101, encoding 2, string "bytes" + "b0063f" + // field 102, encoding 0, 0x3f zigzag32 + "b8067f" // field 103, encoding 0, 0x7f zigzag64 + + o := old() + bytes, err := Marshal(pb) + if _, ok := err.(*RequiredNotSetError); !ok { + fmt.Printf("marshal-1 err = %v, want *RequiredNotSetError", err) + o.DebugPrint("", bytes) + t.Fatalf("expected = %s", expected) + } + if strings.Index(err.Error(), "RequiredField.Label") < 0 { + t.Errorf("marshal-1 wrong err msg: %v", err) + } + if !equal(bytes, expected, t) { + o.DebugPrint("neq 1", bytes) + t.Fatalf("expected = %s", expected) + } + + // Now test Unmarshal by recreating the original buffer. + pbd := new(GoTest) + err = Unmarshal(bytes, pbd) + if _, ok := err.(*RequiredNotSetError); !ok { + t.Fatalf("unmarshal err = %v, want *RequiredNotSetError", err) + o.DebugPrint("", bytes) + t.Fatalf("string = %s", expected) + } + if strings.Index(err.Error(), "RequiredField.{Unknown}") < 0 { + t.Errorf("unmarshal wrong err msg: %v", err) + } + bytes, err = Marshal(pbd) + if _, ok := err.(*RequiredNotSetError); !ok { + t.Errorf("marshal-2 err = %v, want *RequiredNotSetError", err) + o.DebugPrint("", bytes) + t.Fatalf("string = %s", expected) + } + if strings.Index(err.Error(), "RequiredField.Label") < 0 { + t.Errorf("marshal-2 wrong err msg: %v", err) + } + if !equal(bytes, expected, t) { + o.DebugPrint("neq 2", bytes) + t.Fatalf("string = %s", expected) + } +} + +func fuzzUnmarshal(t *testing.T, data []byte) { + defer func() { + if e := recover(); e != nil { + t.Errorf("These bytes caused a panic: %+v", data) + t.Logf("Stack:\n%s", debug.Stack()) + t.FailNow() + } + }() + + pb := new(MyMessage) + Unmarshal(data, pb) +} + +func TestMapFieldMarshal(t *testing.T) { + m := &MessageWithMap{ + NameMapping: map[int32]string{ + 1: "Rob", + 4: "Ian", + 8: "Dave", + }, + } + b, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + + // b should be the concatenation of these three byte sequences in some order. + parts := []string{ + "\n\a\b\x01\x12\x03Rob", + "\n\a\b\x04\x12\x03Ian", + "\n\b\b\x08\x12\x04Dave", + } + ok := false + for i := range parts { + for j := range parts { + if j == i { + continue + } + for k := range parts { + if k == i || k == j { + continue + } + try := parts[i] + parts[j] + parts[k] + if bytes.Equal(b, []byte(try)) { + ok = true + break + } + } + } + } + if !ok { + t.Fatalf("Incorrect Marshal output.\n got %q\nwant %q (or a permutation of that)", b, parts[0]+parts[1]+parts[2]) + } + t.Logf("FYI b: %q", b) + + (new(Buffer)).DebugPrint("Dump of b", b) +} + +func TestMapFieldRoundTrips(t *testing.T) { + m := &MessageWithMap{ + NameMapping: map[int32]string{ + 1: "Rob", + 4: "Ian", + 8: "Dave", + }, + MsgMapping: map[int64]*FloatingPoint{ + 0x7001: &FloatingPoint{F: Float64(2.0)}, + }, + ByteMapping: map[bool][]byte{ + false: []byte("that's not right!"), + true: []byte("aye, 'tis true!"), + }, + } + b, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + t.Logf("FYI b: %q", b) + m2 := new(MessageWithMap) + if err := Unmarshal(b, m2); err != nil { + t.Fatalf("Unmarshal: %v", err) + } + for _, pair := range [][2]interface{}{ + {m.NameMapping, m2.NameMapping}, + {m.MsgMapping, m2.MsgMapping}, + {m.ByteMapping, m2.ByteMapping}, + } { + if !reflect.DeepEqual(pair[0], pair[1]) { + t.Errorf("Map did not survive a round trip.\ninitial: %v\n final: %v", pair[0], pair[1]) + } + } +} + +func TestMapFieldWithNil(t *testing.T) { + m1 := &MessageWithMap{ + MsgMapping: map[int64]*FloatingPoint{ + 1: nil, + }, + } + b, err := Marshal(m1) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + m2 := new(MessageWithMap) + if err := Unmarshal(b, m2); err != nil { + t.Fatalf("Unmarshal: %v, got these bytes: %v", err, b) + } + if v, ok := m2.MsgMapping[1]; !ok { + t.Error("msg_mapping[1] not present") + } else if v != nil { + t.Errorf("msg_mapping[1] not nil: %v", v) + } +} + +func TestMapFieldWithNilBytes(t *testing.T) { + m1 := &MessageWithMap{ + ByteMapping: map[bool][]byte{ + false: []byte{}, + true: nil, + }, + } + n := Size(m1) + b, err := Marshal(m1) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + if n != len(b) { + t.Errorf("Size(m1) = %d; want len(Marshal(m1)) = %d", n, len(b)) + } + m2 := new(MessageWithMap) + if err := Unmarshal(b, m2); err != nil { + t.Fatalf("Unmarshal: %v, got these bytes: %v", err, b) + } + if v, ok := m2.ByteMapping[false]; !ok { + t.Error("byte_mapping[false] not present") + } else if len(v) != 0 { + t.Errorf("byte_mapping[false] not empty: %#v", v) + } + if v, ok := m2.ByteMapping[true]; !ok { + t.Error("byte_mapping[true] not present") + } else if len(v) != 0 { + t.Errorf("byte_mapping[true] not empty: %#v", v) + } +} + +func TestDecodeMapFieldMissingKey(t *testing.T) { + b := []byte{ + 0x0A, 0x03, // message, tag 1 (name_mapping), of length 3 bytes + // no key + 0x12, 0x01, 0x6D, // string value of length 1 byte, value "m" + } + got := &MessageWithMap{} + err := Unmarshal(b, got) + if err != nil { + t.Fatalf("failed to marshal map with missing key: %v", err) + } + want := &MessageWithMap{NameMapping: map[int32]string{0: "m"}} + if !Equal(got, want) { + t.Errorf("Unmarshaled map with no key was not as expected. got: %v, want %v", got, want) + } +} + +func TestDecodeMapFieldMissingValue(t *testing.T) { + b := []byte{ + 0x0A, 0x02, // message, tag 1 (name_mapping), of length 2 bytes + 0x08, 0x01, // varint key, value 1 + // no value + } + got := &MessageWithMap{} + err := Unmarshal(b, got) + if err != nil { + t.Fatalf("failed to marshal map with missing value: %v", err) + } + want := &MessageWithMap{NameMapping: map[int32]string{1: ""}} + if !Equal(got, want) { + t.Errorf("Unmarshaled map with no value was not as expected. got: %v, want %v", got, want) + } +} + +func TestOneof(t *testing.T) { + m := &Communique{} + b, err := Marshal(m) + if err != nil { + t.Fatalf("Marshal of empty message with oneof: %v", err) + } + if len(b) != 0 { + t.Errorf("Marshal of empty message yielded too many bytes: %v", b) + } + + m = &Communique{ + Union: &Communique_Name{"Barry"}, + } + + // Round-trip. + b, err = Marshal(m) + if err != nil { + t.Fatalf("Marshal of message with oneof: %v", err) + } + if len(b) != 7 { // name tag/wire (1) + name len (1) + name (5) + t.Errorf("Incorrect marshal of message with oneof: %v", b) + } + m.Reset() + if err := Unmarshal(b, m); err != nil { + t.Fatalf("Unmarshal of message with oneof: %v", err) + } + if x, ok := m.Union.(*Communique_Name); !ok || x.Name != "Barry" { + t.Errorf("After round trip, Union = %+v", m.Union) + } + if name := m.GetName(); name != "Barry" { + t.Errorf("After round trip, GetName = %q, want %q", name, "Barry") + } + + // Let's try with a message in the oneof. + m.Union = &Communique_Msg{&Strings{StringField: String("deep deep string")}} + b, err = Marshal(m) + if err != nil { + t.Fatalf("Marshal of message with oneof set to message: %v", err) + } + if len(b) != 20 { // msg tag/wire (1) + msg len (1) + msg (1 + 1 + 16) + t.Errorf("Incorrect marshal of message with oneof set to message: %v", b) + } + m.Reset() + if err := Unmarshal(b, m); err != nil { + t.Fatalf("Unmarshal of message with oneof set to message: %v", err) + } + ss, ok := m.Union.(*Communique_Msg) + if !ok || ss.Msg.GetStringField() != "deep deep string" { + t.Errorf("After round trip with oneof set to message, Union = %+v", m.Union) + } +} + +func TestInefficientPackedBool(t *testing.T) { + // https://github.com/golang/protobuf/issues/76 + inp := []byte{ + 0x12, 0x02, // 0x12 = 2<<3|2; 2 bytes + // Usually a bool should take a single byte, + // but it is permitted to be any varint. + 0xb9, 0x30, + } + if err := Unmarshal(inp, new(MoreRepeated)); err != nil { + t.Error(err) + } +} + +// Benchmarks + +func testMsg() *GoTest { + pb := initGoTest(true) + const N = 1000 // Internally the library starts much smaller. + pb.F_Int32Repeated = make([]int32, N) + pb.F_DoubleRepeated = make([]float64, N) + for i := 0; i < N; i++ { + pb.F_Int32Repeated[i] = int32(i) + pb.F_DoubleRepeated[i] = float64(i) + } + return pb +} + +func bytesMsg() *GoTest { + pb := initGoTest(true) + buf := make([]byte, 4000) + for i := range buf { + buf[i] = byte(i) + } + pb.F_BytesDefaulted = buf + return pb +} + +func benchmarkMarshal(b *testing.B, pb Message, marshal func(Message) ([]byte, error)) { + d, _ := marshal(pb) + b.SetBytes(int64(len(d))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + marshal(pb) + } +} + +func benchmarkBufferMarshal(b *testing.B, pb Message) { + p := NewBuffer(nil) + benchmarkMarshal(b, pb, func(pb0 Message) ([]byte, error) { + p.Reset() + err := p.Marshal(pb0) + return p.Bytes(), err + }) +} + +func benchmarkSize(b *testing.B, pb Message) { + benchmarkMarshal(b, pb, func(pb0 Message) ([]byte, error) { + Size(pb) + return nil, nil + }) +} + +func newOf(pb Message) Message { + in := reflect.ValueOf(pb) + if in.IsNil() { + return pb + } + return reflect.New(in.Type().Elem()).Interface().(Message) +} + +func benchmarkUnmarshal(b *testing.B, pb Message, unmarshal func([]byte, Message) error) { + d, _ := Marshal(pb) + b.SetBytes(int64(len(d))) + pbd := newOf(pb) + + b.ResetTimer() + for i := 0; i < b.N; i++ { + unmarshal(d, pbd) + } +} + +func benchmarkBufferUnmarshal(b *testing.B, pb Message) { + p := NewBuffer(nil) + benchmarkUnmarshal(b, pb, func(d []byte, pb0 Message) error { + p.SetBuf(d) + return p.Unmarshal(pb0) + }) +} + +// Benchmark{Marshal,BufferMarshal,Size,Unmarshal,BufferUnmarshal}{,Bytes} + +func BenchmarkMarshal(b *testing.B) { + benchmarkMarshal(b, testMsg(), Marshal) +} + +func BenchmarkBufferMarshal(b *testing.B) { + benchmarkBufferMarshal(b, testMsg()) +} + +func BenchmarkSize(b *testing.B) { + benchmarkSize(b, testMsg()) +} + +func BenchmarkUnmarshal(b *testing.B) { + benchmarkUnmarshal(b, testMsg(), Unmarshal) +} + +func BenchmarkBufferUnmarshal(b *testing.B) { + benchmarkBufferUnmarshal(b, testMsg()) +} + +func BenchmarkMarshalBytes(b *testing.B) { + benchmarkMarshal(b, bytesMsg(), Marshal) +} + +func BenchmarkBufferMarshalBytes(b *testing.B) { + benchmarkBufferMarshal(b, bytesMsg()) +} + +func BenchmarkSizeBytes(b *testing.B) { + benchmarkSize(b, bytesMsg()) +} + +func BenchmarkUnmarshalBytes(b *testing.B) { + benchmarkUnmarshal(b, bytesMsg(), Unmarshal) +} + +func BenchmarkBufferUnmarshalBytes(b *testing.B) { + benchmarkBufferUnmarshal(b, bytesMsg()) +} + +func BenchmarkUnmarshalUnrecognizedFields(b *testing.B) { + b.StopTimer() + pb := initGoTestField() + skip := &GoSkipTest{ + SkipInt32: Int32(32), + SkipFixed32: Uint32(3232), + SkipFixed64: Uint64(6464), + SkipString: String("skipper"), + Skipgroup: &GoSkipTest_SkipGroup{ + GroupInt32: Int32(75), + GroupString: String("wxyz"), + }, + } + + pbd := new(GoTestField) + p := NewBuffer(nil) + p.Marshal(pb) + p.Marshal(skip) + p2 := NewBuffer(nil) + + b.StartTimer() + for i := 0; i < b.N; i++ { + p2.SetBuf(p.Bytes()) + p2.Unmarshal(pbd) + } +} diff --git a/vendor/github.com/golang/protobuf/proto/any_test.go b/vendor/github.com/golang/protobuf/proto/any_test.go new file mode 100644 index 00000000..83492c56 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/any_test.go @@ -0,0 +1,272 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "strings" + "testing" + + "github.com/golang/protobuf/proto" + + pb "github.com/golang/protobuf/proto/proto3_proto" + testpb "github.com/golang/protobuf/proto/testdata" + anypb "github.com/golang/protobuf/ptypes/any" +) + +var ( + expandedMarshaler = proto.TextMarshaler{ExpandAny: true} + expandedCompactMarshaler = proto.TextMarshaler{Compact: true, ExpandAny: true} +) + +// anyEqual reports whether two messages which may be google.protobuf.Any or may +// contain google.protobuf.Any fields are equal. We can't use proto.Equal for +// comparison, because semantically equivalent messages may be marshaled to +// binary in different tag order. Instead, trust that TextMarshaler with +// ExpandAny option works and compare the text marshaling results. +func anyEqual(got, want proto.Message) bool { + // if messages are proto.Equal, no need to marshal. + if proto.Equal(got, want) { + return true + } + g := expandedMarshaler.Text(got) + w := expandedMarshaler.Text(want) + return g == w +} + +type golden struct { + m proto.Message + t, c string +} + +var goldenMessages = makeGolden() + +func makeGolden() []golden { + nested := &pb.Nested{Bunny: "Monty"} + nb, err := proto.Marshal(nested) + if err != nil { + panic(err) + } + m1 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &anypb.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(nested), Value: nb}, + } + m2 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &anypb.Any{TypeUrl: "http://[::1]/type.googleapis.com/" + proto.MessageName(nested), Value: nb}, + } + m3 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &anypb.Any{TypeUrl: `type.googleapis.com/"/` + proto.MessageName(nested), Value: nb}, + } + m4 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &anypb.Any{TypeUrl: "type.googleapis.com/a/path/" + proto.MessageName(nested), Value: nb}, + } + m5 := &anypb.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(nested), Value: nb} + + any1 := &testpb.MyMessage{Count: proto.Int32(47), Name: proto.String("David")} + proto.SetExtension(any1, testpb.E_Ext_More, &testpb.Ext{Data: proto.String("foo")}) + proto.SetExtension(any1, testpb.E_Ext_Text, proto.String("bar")) + any1b, err := proto.Marshal(any1) + if err != nil { + panic(err) + } + any2 := &testpb.MyMessage{Count: proto.Int32(42), Bikeshed: testpb.MyMessage_GREEN.Enum(), RepBytes: [][]byte{[]byte("roboto")}} + proto.SetExtension(any2, testpb.E_Ext_More, &testpb.Ext{Data: proto.String("baz")}) + any2b, err := proto.Marshal(any2) + if err != nil { + panic(err) + } + m6 := &pb.Message{ + Name: "David", + ResultCount: 47, + Anything: &anypb.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(any1), Value: any1b}, + ManyThings: []*anypb.Any{ + &anypb.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(any2), Value: any2b}, + &anypb.Any{TypeUrl: "type.googleapis.com/" + proto.MessageName(any1), Value: any1b}, + }, + } + + const ( + m1Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/proto3_proto.Nested]: < + bunny: "Monty" + > +> +` + m2Golden = ` +name: "David" +result_count: 47 +anything: < + ["http://[::1]/type.googleapis.com/proto3_proto.Nested"]: < + bunny: "Monty" + > +> +` + m3Golden = ` +name: "David" +result_count: 47 +anything: < + ["type.googleapis.com/\"/proto3_proto.Nested"]: < + bunny: "Monty" + > +> +` + m4Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/a/path/proto3_proto.Nested]: < + bunny: "Monty" + > +> +` + m5Golden = ` +[type.googleapis.com/proto3_proto.Nested]: < + bunny: "Monty" +> +` + m6Golden = ` +name: "David" +result_count: 47 +anything: < + [type.googleapis.com/testdata.MyMessage]: < + count: 47 + name: "David" + [testdata.Ext.more]: < + data: "foo" + > + [testdata.Ext.text]: "bar" + > +> +many_things: < + [type.googleapis.com/testdata.MyMessage]: < + count: 42 + bikeshed: GREEN + rep_bytes: "roboto" + [testdata.Ext.more]: < + data: "baz" + > + > +> +many_things: < + [type.googleapis.com/testdata.MyMessage]: < + count: 47 + name: "David" + [testdata.Ext.more]: < + data: "foo" + > + [testdata.Ext.text]: "bar" + > +> +` + ) + return []golden{ + {m1, strings.TrimSpace(m1Golden) + "\n", strings.TrimSpace(compact(m1Golden)) + " "}, + {m2, strings.TrimSpace(m2Golden) + "\n", strings.TrimSpace(compact(m2Golden)) + " "}, + {m3, strings.TrimSpace(m3Golden) + "\n", strings.TrimSpace(compact(m3Golden)) + " "}, + {m4, strings.TrimSpace(m4Golden) + "\n", strings.TrimSpace(compact(m4Golden)) + " "}, + {m5, strings.TrimSpace(m5Golden) + "\n", strings.TrimSpace(compact(m5Golden)) + " "}, + {m6, strings.TrimSpace(m6Golden) + "\n", strings.TrimSpace(compact(m6Golden)) + " "}, + } +} + +func TestMarshalGolden(t *testing.T) { + for _, tt := range goldenMessages { + if got, want := expandedMarshaler.Text(tt.m), tt.t; got != want { + t.Errorf("message %v: got:\n%s\nwant:\n%s", tt.m, got, want) + } + if got, want := expandedCompactMarshaler.Text(tt.m), tt.c; got != want { + t.Errorf("message %v: got:\n`%s`\nwant:\n`%s`", tt.m, got, want) + } + } +} + +func TestUnmarshalGolden(t *testing.T) { + for _, tt := range goldenMessages { + want := tt.m + got := proto.Clone(tt.m) + got.Reset() + if err := proto.UnmarshalText(tt.t, got); err != nil { + t.Errorf("failed to unmarshal\n%s\nerror: %v", tt.t, err) + } + if !anyEqual(got, want) { + t.Errorf("message:\n%s\ngot:\n%s\nwant:\n%s", tt.t, got, want) + } + got.Reset() + if err := proto.UnmarshalText(tt.c, got); err != nil { + t.Errorf("failed to unmarshal\n%s\nerror: %v", tt.c, err) + } + if !anyEqual(got, want) { + t.Errorf("message:\n%s\ngot:\n%s\nwant:\n%s", tt.c, got, want) + } + } +} + +func TestMarsahlUnknownAny(t *testing.T) { + m := &pb.Message{ + Anything: &anypb.Any{ + TypeUrl: "foo", + Value: []byte("bar"), + }, + } + want := `anything: < + type_url: "foo" + value: "bar" +> +` + got := expandedMarshaler.Text(m) + if got != want { + t.Errorf("got\n`%s`\nwant\n`%s`", got, want) + } +} + +func TestAmbiguousAny(t *testing.T) { + pb := &anypb.Any{} + err := proto.UnmarshalText(` + [type.googleapis.com/proto3_proto.Nested]: < + bunny: "Monty" + > + type_url: "ttt/proto3_proto.Nested" + `, pb) + t.Logf("result: %v (error: %v)", expandedMarshaler.Text(pb), err) + if err != nil { + t.Errorf("failed to parse ambiguous Any message: %v", err) + } +} diff --git a/vendor/github.com/golang/protobuf/proto/clone.go b/vendor/github.com/golang/protobuf/proto/clone.go new file mode 100644 index 00000000..e392575b --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/clone.go @@ -0,0 +1,229 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Protocol buffer deep copy and merge. +// TODO: RawMessage. + +package proto + +import ( + "log" + "reflect" + "strings" +) + +// Clone returns a deep copy of a protocol buffer. +func Clone(pb Message) Message { + in := reflect.ValueOf(pb) + if in.IsNil() { + return pb + } + + out := reflect.New(in.Type().Elem()) + // out is empty so a merge is a deep copy. + mergeStruct(out.Elem(), in.Elem()) + return out.Interface().(Message) +} + +// Merge merges src into dst. +// Required and optional fields that are set in src will be set to that value in dst. +// Elements of repeated fields will be appended. +// Merge panics if src and dst are not the same type, or if dst is nil. +func Merge(dst, src Message) { + in := reflect.ValueOf(src) + out := reflect.ValueOf(dst) + if out.IsNil() { + panic("proto: nil destination") + } + if in.Type() != out.Type() { + // Explicit test prior to mergeStruct so that mistyped nils will fail + panic("proto: type mismatch") + } + if in.IsNil() { + // Merging nil into non-nil is a quiet no-op + return + } + mergeStruct(out.Elem(), in.Elem()) +} + +func mergeStruct(out, in reflect.Value) { + sprop := GetProperties(in.Type()) + for i := 0; i < in.NumField(); i++ { + f := in.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) + } + + if emIn, ok := extendable(in.Addr().Interface()); ok { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + uf := in.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return + } + uin := uf.Bytes() + if len(uin) > 0 { + out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...)) + } +} + +// mergeAny performs a merge between two values of the same type. +// viaPtr indicates whether the values were indirected through a pointer (implying proto2). +// prop is set if this is a struct field (it may be nil). +func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) { + if in.Type() == protoMessageType { + if !in.IsNil() { + if out.IsNil() { + out.Set(reflect.ValueOf(Clone(in.Interface().(Message)))) + } else { + Merge(out.Interface().(Message), in.Interface().(Message)) + } + } + return + } + switch in.Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + if !viaPtr && isProto3Zero(in) { + return + } + out.Set(in) + case reflect.Interface: + // Probably a oneof field; copy non-nil values. + if in.IsNil() { + return + } + // Allocate destination if it is not set, or set to a different type. + // Otherwise we will merge as normal. + if out.IsNil() || out.Elem().Type() != in.Elem().Type() { + out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T) + } + mergeAny(out.Elem(), in.Elem(), false, nil) + case reflect.Map: + if in.Len() == 0 { + return + } + if out.IsNil() { + out.Set(reflect.MakeMap(in.Type())) + } + // For maps with value types of *T or []byte we need to deep copy each value. + elemKind := in.Type().Elem().Kind() + for _, key := range in.MapKeys() { + var val reflect.Value + switch elemKind { + case reflect.Ptr: + val = reflect.New(in.Type().Elem().Elem()) + mergeAny(val, in.MapIndex(key), false, nil) + case reflect.Slice: + val = in.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + default: + val = in.MapIndex(key) + } + out.SetMapIndex(key, val) + } + case reflect.Ptr: + if in.IsNil() { + return + } + if out.IsNil() { + out.Set(reflect.New(in.Elem().Type())) + } + mergeAny(out.Elem(), in.Elem(), true, nil) + case reflect.Slice: + if in.IsNil() { + return + } + if in.Type().Elem().Kind() == reflect.Uint8 { + // []byte is a scalar bytes field, not a repeated field. + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value, and should not + // be merged. + if prop != nil && prop.proto3 && in.Len() == 0 { + return + } + + // Make a deep copy. + // Append to []byte{} instead of []byte(nil) so that we never end up + // with a nil result. + out.SetBytes(append([]byte{}, in.Bytes()...)) + return + } + n := in.Len() + if out.IsNil() { + out.Set(reflect.MakeSlice(in.Type(), 0, n)) + } + switch in.Type().Elem().Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + out.Set(reflect.AppendSlice(out, in)) + default: + for i := 0; i < n; i++ { + x := reflect.Indirect(reflect.New(in.Type().Elem())) + mergeAny(x, in.Index(i), false, nil) + out.Set(reflect.Append(out, x)) + } + } + case reflect.Struct: + mergeStruct(out, in) + default: + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to copy %v", in) + } +} + +func mergeExtension(out, in map[int32]Extension) { + for extNum, eIn := range in { + eOut := Extension{desc: eIn.desc} + if eIn.value != nil { + v := reflect.New(reflect.TypeOf(eIn.value)).Elem() + mergeAny(v, reflect.ValueOf(eIn.value), false, nil) + eOut.value = v.Interface() + } + if eIn.enc != nil { + eOut.enc = make([]byte, len(eIn.enc)) + copy(eOut.enc, eIn.enc) + } + + out[extNum] = eOut + } +} diff --git a/vendor/github.com/golang/protobuf/proto/clone_test.go b/vendor/github.com/golang/protobuf/proto/clone_test.go new file mode 100644 index 00000000..76720f18 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/clone_test.go @@ -0,0 +1,267 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "testing" + + "github.com/golang/protobuf/proto" + + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + pb "github.com/golang/protobuf/proto/testdata" +) + +var cloneTestMessage = &pb.MyMessage{ + Count: proto.Int32(42), + Name: proto.String("Dave"), + Pet: []string{"bunny", "kitty", "horsey"}, + Inner: &pb.InnerMessage{ + Host: proto.String("niles"), + Port: proto.Int32(9099), + Connected: proto.Bool(true), + }, + Others: []*pb.OtherMessage{ + { + Value: []byte("some bytes"), + }, + }, + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: proto.Int32(6), + }, + RepBytes: [][]byte{[]byte("sham"), []byte("wow")}, +} + +func init() { + ext := &pb.Ext{ + Data: proto.String("extension"), + } + if err := proto.SetExtension(cloneTestMessage, pb.E_Ext_More, ext); err != nil { + panic("SetExtension: " + err.Error()) + } +} + +func TestClone(t *testing.T) { + m := proto.Clone(cloneTestMessage).(*pb.MyMessage) + if !proto.Equal(m, cloneTestMessage) { + t.Errorf("Clone(%v) = %v", cloneTestMessage, m) + } + + // Verify it was a deep copy. + *m.Inner.Port++ + if proto.Equal(m, cloneTestMessage) { + t.Error("Mutating clone changed the original") + } + // Byte fields and repeated fields should be copied. + if &m.Pet[0] == &cloneTestMessage.Pet[0] { + t.Error("Pet: repeated field not copied") + } + if &m.Others[0] == &cloneTestMessage.Others[0] { + t.Error("Others: repeated field not copied") + } + if &m.Others[0].Value[0] == &cloneTestMessage.Others[0].Value[0] { + t.Error("Others[0].Value: bytes field not copied") + } + if &m.RepBytes[0] == &cloneTestMessage.RepBytes[0] { + t.Error("RepBytes: repeated field not copied") + } + if &m.RepBytes[0][0] == &cloneTestMessage.RepBytes[0][0] { + t.Error("RepBytes[0]: bytes field not copied") + } +} + +func TestCloneNil(t *testing.T) { + var m *pb.MyMessage + if c := proto.Clone(m); !proto.Equal(m, c) { + t.Errorf("Clone(%v) = %v", m, c) + } +} + +var mergeTests = []struct { + src, dst, want proto.Message +}{ + { + src: &pb.MyMessage{ + Count: proto.Int32(42), + }, + dst: &pb.MyMessage{ + Name: proto.String("Dave"), + }, + want: &pb.MyMessage{ + Count: proto.Int32(42), + Name: proto.String("Dave"), + }, + }, + { + src: &pb.MyMessage{ + Inner: &pb.InnerMessage{ + Host: proto.String("hey"), + Connected: proto.Bool(true), + }, + Pet: []string{"horsey"}, + Others: []*pb.OtherMessage{ + { + Value: []byte("some bytes"), + }, + }, + }, + dst: &pb.MyMessage{ + Inner: &pb.InnerMessage{ + Host: proto.String("niles"), + Port: proto.Int32(9099), + }, + Pet: []string{"bunny", "kitty"}, + Others: []*pb.OtherMessage{ + { + Key: proto.Int64(31415926535), + }, + { + // Explicitly test a src=nil field + Inner: nil, + }, + }, + }, + want: &pb.MyMessage{ + Inner: &pb.InnerMessage{ + Host: proto.String("hey"), + Connected: proto.Bool(true), + Port: proto.Int32(9099), + }, + Pet: []string{"bunny", "kitty", "horsey"}, + Others: []*pb.OtherMessage{ + { + Key: proto.Int64(31415926535), + }, + {}, + { + Value: []byte("some bytes"), + }, + }, + }, + }, + { + src: &pb.MyMessage{ + RepBytes: [][]byte{[]byte("wow")}, + }, + dst: &pb.MyMessage{ + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: proto.Int32(6), + }, + RepBytes: [][]byte{[]byte("sham")}, + }, + want: &pb.MyMessage{ + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: proto.Int32(6), + }, + RepBytes: [][]byte{[]byte("sham"), []byte("wow")}, + }, + }, + // Check that a scalar bytes field replaces rather than appends. + { + src: &pb.OtherMessage{Value: []byte("foo")}, + dst: &pb.OtherMessage{Value: []byte("bar")}, + want: &pb.OtherMessage{Value: []byte("foo")}, + }, + { + src: &pb.MessageWithMap{ + NameMapping: map[int32]string{6: "Nigel"}, + MsgMapping: map[int64]*pb.FloatingPoint{ + 0x4001: &pb.FloatingPoint{F: proto.Float64(2.0)}, + }, + ByteMapping: map[bool][]byte{true: []byte("wowsa")}, + }, + dst: &pb.MessageWithMap{ + NameMapping: map[int32]string{ + 6: "Bruce", // should be overwritten + 7: "Andrew", + }, + }, + want: &pb.MessageWithMap{ + NameMapping: map[int32]string{ + 6: "Nigel", + 7: "Andrew", + }, + MsgMapping: map[int64]*pb.FloatingPoint{ + 0x4001: &pb.FloatingPoint{F: proto.Float64(2.0)}, + }, + ByteMapping: map[bool][]byte{true: []byte("wowsa")}, + }, + }, + // proto3 shouldn't merge zero values, + // in the same way that proto2 shouldn't merge nils. + { + src: &proto3pb.Message{ + Name: "Aaron", + Data: []byte(""), // zero value, but not nil + }, + dst: &proto3pb.Message{ + HeightInCm: 176, + Data: []byte("texas!"), + }, + want: &proto3pb.Message{ + Name: "Aaron", + HeightInCm: 176, + Data: []byte("texas!"), + }, + }, + // Oneof fields should merge by assignment. + { + src: &pb.Communique{ + Union: &pb.Communique_Number{41}, + }, + dst: &pb.Communique{ + Union: &pb.Communique_Name{"Bobby Tables"}, + }, + want: &pb.Communique{ + Union: &pb.Communique_Number{41}, + }, + }, + // Oneof nil is the same as not set. + { + src: &pb.Communique{}, + dst: &pb.Communique{ + Union: &pb.Communique_Name{"Bobby Tables"}, + }, + want: &pb.Communique{ + Union: &pb.Communique_Name{"Bobby Tables"}, + }, + }, +} + +func TestMerge(t *testing.T) { + for _, m := range mergeTests { + got := proto.Clone(m.dst) + proto.Merge(got, m.src) + if !proto.Equal(got, m.want) { + t.Errorf("Merge(%v, %v)\n got %v\nwant %v\n", m.dst, m.src, got, m.want) + } + } +} diff --git a/vendor/github.com/golang/protobuf/proto/decode.go b/vendor/github.com/golang/protobuf/proto/decode.go new file mode 100644 index 00000000..07288a25 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/decode.go @@ -0,0 +1,869 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for decoding protocol buffer data to construct in-memory representations. + */ + +import ( + "errors" + "fmt" + "io" + "os" + "reflect" +) + +// errOverflow is returned when an integer is too large to be represented. +var errOverflow = errors.New("proto: integer overflow") + +// ErrInternalBadWireType is returned by generated code when an incorrect +// wire type is encountered. It does not get returned to user code. +var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") + +// The fundamental decoders that interpret bytes on the wire. +// Those that take integer types all return uint64 and are +// therefore of type valueDecoder. + +// DecodeVarint reads a varint-encoded integer from the slice. +// It returns the integer and the number of bytes consumed, or +// zero if there is not enough. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func DecodeVarint(buf []byte) (x uint64, n int) { + // x, n already 0 + for shift := uint(0); shift < 64; shift += 7 { + if n >= len(buf) { + return 0, 0 + } + b := uint64(buf[n]) + n++ + x |= (b & 0x7F) << shift + if (b & 0x80) == 0 { + return x, n + } + } + + // The number is too large to represent in a 64-bit value. + return 0, 0 +} + +// DecodeVarint reads a varint-encoded integer from the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) DecodeVarint() (x uint64, err error) { + // x, err already 0 + + i := p.index + l := len(p.buf) + + for shift := uint(0); shift < 64; shift += 7 { + if i >= l { + err = io.ErrUnexpectedEOF + return + } + b := p.buf[i] + i++ + x |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + p.index = i + return + } + } + + // The number is too large to represent in a 64-bit value. + err = errOverflow + return +} + +// DecodeFixed64 reads a 64-bit integer from the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) DecodeFixed64() (x uint64, err error) { + // x, err already 0 + i := p.index + 8 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-8]) + x |= uint64(p.buf[i-7]) << 8 + x |= uint64(p.buf[i-6]) << 16 + x |= uint64(p.buf[i-5]) << 24 + x |= uint64(p.buf[i-4]) << 32 + x |= uint64(p.buf[i-3]) << 40 + x |= uint64(p.buf[i-2]) << 48 + x |= uint64(p.buf[i-1]) << 56 + return +} + +// DecodeFixed32 reads a 32-bit integer from the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) DecodeFixed32() (x uint64, err error) { + // x, err already 0 + i := p.index + 4 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-4]) + x |= uint64(p.buf[i-3]) << 8 + x |= uint64(p.buf[i-2]) << 16 + x |= uint64(p.buf[i-1]) << 24 + return +} + +// DecodeZigzag64 reads a zigzag-encoded 64-bit integer +// from the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) DecodeZigzag64() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63) + return +} + +// DecodeZigzag32 reads a zigzag-encoded 32-bit integer +// from the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) DecodeZigzag32() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31)) + return +} + +// These are not ValueDecoders: they produce an array of bytes or a string. +// bytes, embedded messages + +// DecodeRawBytes reads a count-delimited byte buffer from the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) { + n, err := p.DecodeVarint() + if err != nil { + return nil, err + } + + nb := int(n) + if nb < 0 { + return nil, fmt.Errorf("proto: bad byte length %d", nb) + } + end := p.index + nb + if end < p.index || end > len(p.buf) { + return nil, io.ErrUnexpectedEOF + } + + if !alloc { + // todo: check if can get more uses of alloc=false + buf = p.buf[p.index:end] + p.index += nb + return + } + + buf = make([]byte, nb) + copy(buf, p.buf[p.index:]) + p.index += nb + return +} + +// DecodeStringBytes reads an encoded string from the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) DecodeStringBytes() (s string, err error) { + buf, err := p.DecodeRawBytes(false) + if err != nil { + return + } + return string(buf), nil +} + +// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. +// If the protocol buffer has extensions, and the field matches, add it as an extension. +// Otherwise, if the XXX_unrecognized field exists, append the skipped data there. +func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base structPointer, unrecField field) error { + oi := o.index + + err := o.skip(t, tag, wire) + if err != nil { + return err + } + + if !unrecField.IsValid() { + return nil + } + + ptr := structPointer_Bytes(base, unrecField) + + // Add the skipped field to struct field + obuf := o.buf + + o.buf = *ptr + o.EncodeVarint(uint64(tag<<3 | wire)) + *ptr = append(o.buf, obuf[oi:o.index]...) + + o.buf = obuf + + return nil +} + +// Skip the next item in the buffer. Its wire type is decoded and presented as an argument. +func (o *Buffer) skip(t reflect.Type, tag, wire int) error { + + var u uint64 + var err error + + switch wire { + case WireVarint: + _, err = o.DecodeVarint() + case WireFixed64: + _, err = o.DecodeFixed64() + case WireBytes: + _, err = o.DecodeRawBytes(false) + case WireFixed32: + _, err = o.DecodeFixed32() + case WireStartGroup: + for { + u, err = o.DecodeVarint() + if err != nil { + break + } + fwire := int(u & 0x7) + if fwire == WireEndGroup { + break + } + ftag := int(u >> 3) + err = o.skip(t, ftag, fwire) + if err != nil { + break + } + } + default: + err = fmt.Errorf("proto: can't skip unknown wire type %d for %s", wire, t) + } + return err +} + +// Unmarshaler is the interface representing objects that can +// unmarshal themselves. The method should reset the receiver before +// decoding starts. The argument points to data that may be +// overwritten, so implementations should not keep references to the +// buffer. +type Unmarshaler interface { + Unmarshal([]byte) error +} + +// Unmarshal parses the protocol buffer representation in buf and places the +// decoded result in pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// Unmarshal resets pb before starting to unmarshal, so any +// existing data in pb is always removed. Use UnmarshalMerge +// to preserve and append to existing data. +func Unmarshal(buf []byte, pb Message) error { + pb.Reset() + return UnmarshalMerge(buf, pb) +} + +// UnmarshalMerge parses the protocol buffer representation in buf and +// writes the decoded result to pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// UnmarshalMerge merges into existing data in pb. +// Most code should use Unmarshal instead. +func UnmarshalMerge(buf []byte, pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(Unmarshaler); ok { + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// DecodeMessage reads a count-delimited message from the Buffer. +func (p *Buffer) DecodeMessage(pb Message) error { + enc, err := p.DecodeRawBytes(false) + if err != nil { + return err + } + return NewBuffer(enc).Unmarshal(pb) +} + +// DecodeGroup reads a tag-delimited group from the Buffer. +func (p *Buffer) DecodeGroup(pb Message) error { + typ, base, err := getbase(pb) + if err != nil { + return err + } + return p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), true, base) +} + +// Unmarshal parses the protocol buffer representation in the +// Buffer and places the decoded result in pb. If the struct +// underlying pb does not match the data in the buffer, the results can be +// unpredictable. +func (p *Buffer) Unmarshal(pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(Unmarshaler); ok { + err := u.Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + + typ, base, err := getbase(pb) + if err != nil { + return err + } + + err = p.unmarshalType(typ.Elem(), GetProperties(typ.Elem()), false, base) + + if collectStats { + stats.Decode++ + } + + return err +} + +// unmarshalType does the work of unmarshaling a structure. +func (o *Buffer) unmarshalType(st reflect.Type, prop *StructProperties, is_group bool, base structPointer) error { + var state errorState + required, reqFields := prop.reqCount, uint64(0) + + var err error + for err == nil && o.index < len(o.buf) { + oi := o.index + var u uint64 + u, err = o.DecodeVarint() + if err != nil { + break + } + wire := int(u & 0x7) + if wire == WireEndGroup { + if is_group { + return nil // input is satisfied + } + return fmt.Errorf("proto: %s: wiretype end group for non-group", st) + } + tag := int(u >> 3) + if tag <= 0 { + return fmt.Errorf("proto: %s: illegal tag %d (wire type %d)", st, tag, wire) + } + fieldnum, ok := prop.decoderTags.get(tag) + if !ok { + // Maybe it's an extension? + if prop.extendable { + if e, _ := extendable(structPointer_Interface(base, st)); isExtensionField(e, int32(tag)) { + if err = o.skip(st, tag, wire); err == nil { + extmap := e.extensionsWrite() + ext := extmap[int32(tag)] // may be missing + ext.enc = append(ext.enc, o.buf[oi:o.index]...) + extmap[int32(tag)] = ext + } + continue + } + } + // Maybe it's a oneof? + if prop.oneofUnmarshaler != nil { + m := structPointer_Interface(base, st).(Message) + // First return value indicates whether tag is a oneof field. + ok, err = prop.oneofUnmarshaler(m, tag, wire, o) + if err == ErrInternalBadWireType { + // Map the error to something more descriptive. + // Do the formatting here to save generated code space. + err = fmt.Errorf("bad wiretype for oneof field in %T", m) + } + if ok { + continue + } + } + err = o.skipAndSave(st, tag, wire, base, prop.unrecField) + continue + } + p := prop.Prop[fieldnum] + + if p.dec == nil { + fmt.Fprintf(os.Stderr, "proto: no protobuf decoder for %s.%s\n", st, st.Field(fieldnum).Name) + continue + } + dec := p.dec + if wire != WireStartGroup && wire != p.WireType { + if wire == WireBytes && p.packedDec != nil { + // a packable field + dec = p.packedDec + } else { + err = fmt.Errorf("proto: bad wiretype for field %s.%s: got wiretype %d, want %d", st, st.Field(fieldnum).Name, wire, p.WireType) + continue + } + } + decErr := dec(o, p, base) + if decErr != nil && !state.shouldContinue(decErr, p) { + err = decErr + } + if err == nil && p.Required { + // Successfully decoded a required field. + if tag <= 64 { + // use bitmap for fields 1-64 to catch field reuse. + var mask uint64 = 1 << uint64(tag-1) + if reqFields&mask == 0 { + // new required field + reqFields |= mask + required-- + } + } else { + // This is imprecise. It can be fooled by a required field + // with a tag > 64 that is encoded twice; that's very rare. + // A fully correct implementation would require allocating + // a data structure, which we would like to avoid. + required-- + } + } + } + if err == nil { + if is_group { + return io.ErrUnexpectedEOF + } + if state.err != nil { + return state.err + } + if required > 0 { + // Not enough information to determine the exact field. If we use extra + // CPU, we could determine the field only if the missing required field + // has a tag <= 64 and we check reqFields. + return &RequiredNotSetError{"{Unknown}"} + } + } + return err +} + +// Individual type decoders +// For each, +// u is the decoded value, +// v is a pointer to the field (pointer) in the struct + +// Sizes of the pools to allocate inside the Buffer. +// The goal is modest amortization and allocation +// on at least 16-byte boundaries. +const ( + boolPoolSize = 16 + uint32PoolSize = 8 + uint64PoolSize = 4 +) + +// Decode a bool. +func (o *Buffer) dec_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + if len(o.bools) == 0 { + o.bools = make([]bool, boolPoolSize) + } + o.bools[0] = u != 0 + *structPointer_Bool(base, p.field) = &o.bools[0] + o.bools = o.bools[1:] + return nil +} + +func (o *Buffer) dec_proto3_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + *structPointer_BoolVal(base, p.field) = u != 0 + return nil +} + +// Decode an int32. +func (o *Buffer) dec_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word32_Set(structPointer_Word32(base, p.field), o, uint32(u)) + return nil +} + +func (o *Buffer) dec_proto3_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word32Val_Set(structPointer_Word32Val(base, p.field), uint32(u)) + return nil +} + +// Decode an int64. +func (o *Buffer) dec_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word64_Set(structPointer_Word64(base, p.field), o, u) + return nil +} + +func (o *Buffer) dec_proto3_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + word64Val_Set(structPointer_Word64Val(base, p.field), o, u) + return nil +} + +// Decode a string. +func (o *Buffer) dec_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + *structPointer_String(base, p.field) = &s + return nil +} + +func (o *Buffer) dec_proto3_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + *structPointer_StringVal(base, p.field) = s + return nil +} + +// Decode a slice of bytes ([]byte). +func (o *Buffer) dec_slice_byte(p *Properties, base structPointer) error { + b, err := o.DecodeRawBytes(true) + if err != nil { + return err + } + *structPointer_Bytes(base, p.field) = b + return nil +} + +// Decode a slice of bools ([]bool). +func (o *Buffer) dec_slice_bool(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + v := structPointer_BoolSlice(base, p.field) + *v = append(*v, u != 0) + return nil +} + +// Decode a slice of bools ([]bool) in packed format. +func (o *Buffer) dec_slice_packed_bool(p *Properties, base structPointer) error { + v := structPointer_BoolSlice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded bools + fin := o.index + nb + if fin < o.index { + return errOverflow + } + + y := *v + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + y = append(y, u != 0) + } + + *v = y + return nil +} + +// Decode a slice of int32s ([]int32). +func (o *Buffer) dec_slice_int32(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + structPointer_Word32Slice(base, p.field).Append(uint32(u)) + return nil +} + +// Decode a slice of int32s ([]int32) in packed format. +func (o *Buffer) dec_slice_packed_int32(p *Properties, base structPointer) error { + v := structPointer_Word32Slice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded int32s + + fin := o.index + nb + if fin < o.index { + return errOverflow + } + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + v.Append(uint32(u)) + } + return nil +} + +// Decode a slice of int64s ([]int64). +func (o *Buffer) dec_slice_int64(p *Properties, base structPointer) error { + u, err := p.valDec(o) + if err != nil { + return err + } + + structPointer_Word64Slice(base, p.field).Append(u) + return nil +} + +// Decode a slice of int64s ([]int64) in packed format. +func (o *Buffer) dec_slice_packed_int64(p *Properties, base structPointer) error { + v := structPointer_Word64Slice(base, p.field) + + nn, err := o.DecodeVarint() + if err != nil { + return err + } + nb := int(nn) // number of bytes of encoded int64s + + fin := o.index + nb + if fin < o.index { + return errOverflow + } + for o.index < fin { + u, err := p.valDec(o) + if err != nil { + return err + } + v.Append(u) + } + return nil +} + +// Decode a slice of strings ([]string). +func (o *Buffer) dec_slice_string(p *Properties, base structPointer) error { + s, err := o.DecodeStringBytes() + if err != nil { + return err + } + v := structPointer_StringSlice(base, p.field) + *v = append(*v, s) + return nil +} + +// Decode a slice of slice of bytes ([][]byte). +func (o *Buffer) dec_slice_slice_byte(p *Properties, base structPointer) error { + b, err := o.DecodeRawBytes(true) + if err != nil { + return err + } + v := structPointer_BytesSlice(base, p.field) + *v = append(*v, b) + return nil +} + +// Decode a map field. +func (o *Buffer) dec_new_map(p *Properties, base structPointer) error { + raw, err := o.DecodeRawBytes(false) + if err != nil { + return err + } + oi := o.index // index at the end of this map entry + o.index -= len(raw) // move buffer back to start of map entry + + mptr := structPointer_NewAt(base, p.field, p.mtype) // *map[K]V + if mptr.Elem().IsNil() { + mptr.Elem().Set(reflect.MakeMap(mptr.Type().Elem())) + } + v := mptr.Elem() // map[K]V + + // Prepare addressable doubly-indirect placeholders for the key and value types. + // See enc_new_map for why. + keyptr := reflect.New(reflect.PtrTo(p.mtype.Key())).Elem() // addressable *K + keybase := toStructPointer(keyptr.Addr()) // **K + + var valbase structPointer + var valptr reflect.Value + switch p.mtype.Elem().Kind() { + case reflect.Slice: + // []byte + var dummy []byte + valptr = reflect.ValueOf(&dummy) // *[]byte + valbase = toStructPointer(valptr) // *[]byte + case reflect.Ptr: + // message; valptr is **Msg; need to allocate the intermediate pointer + valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V + valptr.Set(reflect.New(valptr.Type().Elem())) + valbase = toStructPointer(valptr) + default: + // everything else + valptr = reflect.New(reflect.PtrTo(p.mtype.Elem())).Elem() // addressable *V + valbase = toStructPointer(valptr.Addr()) // **V + } + + // Decode. + // This parses a restricted wire format, namely the encoding of a message + // with two fields. See enc_new_map for the format. + for o.index < oi { + // tagcode for key and value properties are always a single byte + // because they have tags 1 and 2. + tagcode := o.buf[o.index] + o.index++ + switch tagcode { + case p.mkeyprop.tagcode[0]: + if err := p.mkeyprop.dec(o, p.mkeyprop, keybase); err != nil { + return err + } + case p.mvalprop.tagcode[0]: + if err := p.mvalprop.dec(o, p.mvalprop, valbase); err != nil { + return err + } + default: + // TODO: Should we silently skip this instead? + return fmt.Errorf("proto: bad map data tag %d", raw[0]) + } + } + keyelem, valelem := keyptr.Elem(), valptr.Elem() + if !keyelem.IsValid() { + keyelem = reflect.Zero(p.mtype.Key()) + } + if !valelem.IsValid() { + valelem = reflect.Zero(p.mtype.Elem()) + } + + v.SetMapIndex(keyelem, valelem) + return nil +} + +// Decode a group. +func (o *Buffer) dec_struct_group(p *Properties, base structPointer) error { + bas := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(bas) { + // allocate new nested message + bas = toStructPointer(reflect.New(p.stype)) + structPointer_SetStructPointer(base, p.field, bas) + } + return o.unmarshalType(p.stype, p.sprop, true, bas) +} + +// Decode an embedded message. +func (o *Buffer) dec_struct_message(p *Properties, base structPointer) (err error) { + raw, e := o.DecodeRawBytes(false) + if e != nil { + return e + } + + bas := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(bas) { + // allocate new nested message + bas = toStructPointer(reflect.New(p.stype)) + structPointer_SetStructPointer(base, p.field, bas) + } + + // If the object can unmarshal itself, let it. + if p.isUnmarshaler { + iv := structPointer_Interface(bas, p.stype) + return iv.(Unmarshaler).Unmarshal(raw) + } + + obuf := o.buf + oi := o.index + o.buf = raw + o.index = 0 + + err = o.unmarshalType(p.stype, p.sprop, false, bas) + o.buf = obuf + o.index = oi + + return err +} + +// Decode a slice of embedded messages. +func (o *Buffer) dec_slice_struct_message(p *Properties, base structPointer) error { + return o.dec_slice_struct(p, false, base) +} + +// Decode a slice of embedded groups. +func (o *Buffer) dec_slice_struct_group(p *Properties, base structPointer) error { + return o.dec_slice_struct(p, true, base) +} + +// Decode a slice of structs ([]*struct). +func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base structPointer) error { + v := reflect.New(p.stype) + bas := toStructPointer(v) + structPointer_StructPointerSlice(base, p.field).Append(bas) + + if is_group { + err := o.unmarshalType(p.stype, p.sprop, is_group, bas) + return err + } + + raw, err := o.DecodeRawBytes(false) + if err != nil { + return err + } + + // If the object can unmarshal itself, let it. + if p.isUnmarshaler { + iv := v.Interface() + return iv.(Unmarshaler).Unmarshal(raw) + } + + obuf := o.buf + oi := o.index + o.buf = raw + o.index = 0 + + err = o.unmarshalType(p.stype, p.sprop, is_group, bas) + + o.buf = obuf + o.index = oi + + return err +} diff --git a/vendor/github.com/golang/protobuf/proto/encode.go b/vendor/github.com/golang/protobuf/proto/encode.go new file mode 100644 index 00000000..8c1b8fd1 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/encode.go @@ -0,0 +1,1363 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "errors" + "fmt" + "reflect" + "sort" +) + +// RequiredNotSetError is the error returned if Marshal is called with +// a protocol buffer struct whose required fields have not +// all been initialized. It is also the error returned if Unmarshal is +// called with an encoded protocol buffer that does not include all the +// required fields. +// +// When printed, RequiredNotSetError reports the first unset required field in a +// message. If the field cannot be precisely determined, it is reported as +// "{Unknown}". +type RequiredNotSetError struct { + field string +} + +func (e *RequiredNotSetError) Error() string { + return fmt.Sprintf("proto: required field %q not set", e.field) +} + +var ( + // errRepeatedHasNil is the error returned if Marshal is called with + // a struct with a repeated field containing a nil element. + errRepeatedHasNil = errors.New("proto: repeated field has nil element") + + // errOneofHasNil is the error returned if Marshal is called with + // a struct with a oneof field containing a nil element. + errOneofHasNil = errors.New("proto: oneof field has nil value") + + // ErrNil is the error returned if Marshal is called with nil. + ErrNil = errors.New("proto: Marshal called with nil") + + // ErrTooLarge is the error returned if Marshal is called with a + // message that encodes to >2GB. + ErrTooLarge = errors.New("proto: message encodes to over 2 GB") +) + +// The fundamental encoders that put bytes on the wire. +// Those that take integer types all accept uint64 and are +// therefore of type valueEncoder. + +const maxVarintBytes = 10 // maximum length of a varint + +// maxMarshalSize is the largest allowed size of an encoded protobuf, +// since C++ and Java use signed int32s for the size. +const maxMarshalSize = 1<<31 - 1 + +// EncodeVarint returns the varint encoding of x. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +// Not used by the package itself, but helpful to clients +// wishing to use the same encoding. +func EncodeVarint(x uint64) []byte { + var buf [maxVarintBytes]byte + var n int + for n = 0; x > 127; n++ { + buf[n] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + buf[n] = uint8(x) + n++ + return buf[0:n] +} + +// EncodeVarint writes a varint-encoded integer to the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) EncodeVarint(x uint64) error { + for x >= 1<<7 { + p.buf = append(p.buf, uint8(x&0x7f|0x80)) + x >>= 7 + } + p.buf = append(p.buf, uint8(x)) + return nil +} + +// SizeVarint returns the varint encoding size of an integer. +func SizeVarint(x uint64) int { + return sizeVarint(x) +} + +func sizeVarint(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} + +// EncodeFixed64 writes a 64-bit integer to the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) EncodeFixed64(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24), + uint8(x>>32), + uint8(x>>40), + uint8(x>>48), + uint8(x>>56)) + return nil +} + +func sizeFixed64(x uint64) int { + return 8 +} + +// EncodeFixed32 writes a 32-bit integer to the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) EncodeFixed32(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24)) + return nil +} + +func sizeFixed32(x uint64) int { + return 4 +} + +// EncodeZigzag64 writes a zigzag-encoded 64-bit integer +// to the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) EncodeZigzag64(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +func sizeZigzag64(x uint64) int { + return sizeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +// EncodeZigzag32 writes a zigzag-encoded 32-bit integer +// to the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) EncodeZigzag32(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +func sizeZigzag32(x uint64) int { + return sizeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +// EncodeRawBytes writes a count-delimited byte buffer to the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) EncodeRawBytes(b []byte) error { + p.EncodeVarint(uint64(len(b))) + p.buf = append(p.buf, b...) + return nil +} + +func sizeRawBytes(b []byte) int { + return sizeVarint(uint64(len(b))) + + len(b) +} + +// EncodeStringBytes writes an encoded string to the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) EncodeStringBytes(s string) error { + p.EncodeVarint(uint64(len(s))) + p.buf = append(p.buf, s...) + return nil +} + +func sizeStringBytes(s string) int { + return sizeVarint(uint64(len(s))) + + len(s) +} + +// Marshaler is the interface representing objects that can marshal themselves. +type Marshaler interface { + Marshal() ([]byte, error) +} + +// Marshal takes the protocol buffer +// and encodes it into the wire format, returning the data. +func Marshal(pb Message) ([]byte, error) { + // Can the object marshal itself? + if m, ok := pb.(Marshaler); ok { + return m.Marshal() + } + p := NewBuffer(nil) + err := p.Marshal(pb) + var state errorState + if err != nil && !state.shouldContinue(err, nil) { + return nil, err + } + if p.buf == nil && err == nil { + // Return a non-nil slice on success. + return []byte{}, nil + } + return p.buf, err +} + +// EncodeMessage writes the protocol buffer to the Buffer, +// prefixed by a varint-encoded length. +func (p *Buffer) EncodeMessage(pb Message) error { + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return ErrNil + } + if err == nil { + var state errorState + err = p.enc_len_struct(GetProperties(t.Elem()), base, &state) + } + return err +} + +// Marshal takes the protocol buffer +// and encodes it into the wire format, writing the result to the +// Buffer. +func (p *Buffer) Marshal(pb Message) error { + // Can the object marshal itself? + if m, ok := pb.(Marshaler); ok { + data, err := m.Marshal() + if err != nil { + return err + } + p.buf = append(p.buf, data...) + return nil + } + + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return ErrNil + } + if err == nil { + err = p.enc_struct(GetProperties(t.Elem()), base) + } + + if collectStats { + stats.Encode++ + } + + if len(p.buf) > maxMarshalSize { + return ErrTooLarge + } + return err +} + +// Size returns the encoded size of a protocol buffer. +func Size(pb Message) (n int) { + // Can the object marshal itself? If so, Size is slow. + // TODO: add Size to Marshaler, or add a Sizer interface. + if m, ok := pb.(Marshaler); ok { + b, _ := m.Marshal() + return len(b) + } + + t, base, err := getbase(pb) + if structPointer_IsNil(base) { + return 0 + } + if err == nil { + n = size_struct(GetProperties(t.Elem()), base) + } + + if collectStats { + stats.Size++ + } + + return +} + +// Individual type encoders. + +// Encode a bool. +func (o *Buffer) enc_bool(p *Properties, base structPointer) error { + v := *structPointer_Bool(base, p.field) + if v == nil { + return ErrNil + } + x := 0 + if *v { + x = 1 + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_bool(p *Properties, base structPointer) error { + v := *structPointer_BoolVal(base, p.field) + if !v { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, 1) + return nil +} + +func size_bool(p *Properties, base structPointer) int { + v := *structPointer_Bool(base, p.field) + if v == nil { + return 0 + } + return len(p.tagcode) + 1 // each bool takes exactly one byte +} + +func size_proto3_bool(p *Properties, base structPointer) int { + v := *structPointer_BoolVal(base, p.field) + if !v && !p.oneof { + return 0 + } + return len(p.tagcode) + 1 // each bool takes exactly one byte +} + +// Encode an int32. +func (o *Buffer) enc_int32(p *Properties, base structPointer) error { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return ErrNil + } + x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_int32(p *Properties, base structPointer) error { + v := structPointer_Word32Val(base, p.field) + x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func size_int32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return 0 + } + x := int32(word32_Get(v)) // permit sign extension to use full 64-bit range + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +func size_proto3_int32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32Val(base, p.field) + x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +// Encode a uint32. +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_uint32(p *Properties, base structPointer) error { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return ErrNil + } + x := word32_Get(v) + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func (o *Buffer) enc_proto3_uint32(p *Properties, base structPointer) error { + v := structPointer_Word32Val(base, p.field) + x := word32Val_Get(v) + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, uint64(x)) + return nil +} + +func size_uint32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32(base, p.field) + if word32_IsNil(v) { + return 0 + } + x := word32_Get(v) + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +func size_proto3_uint32(p *Properties, base structPointer) (n int) { + v := structPointer_Word32Val(base, p.field) + x := word32Val_Get(v) + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(uint64(x)) + return +} + +// Encode an int64. +func (o *Buffer) enc_int64(p *Properties, base structPointer) error { + v := structPointer_Word64(base, p.field) + if word64_IsNil(v) { + return ErrNil + } + x := word64_Get(v) + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, x) + return nil +} + +func (o *Buffer) enc_proto3_int64(p *Properties, base structPointer) error { + v := structPointer_Word64Val(base, p.field) + x := word64Val_Get(v) + if x == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, x) + return nil +} + +func size_int64(p *Properties, base structPointer) (n int) { + v := structPointer_Word64(base, p.field) + if word64_IsNil(v) { + return 0 + } + x := word64_Get(v) + n += len(p.tagcode) + n += p.valSize(x) + return +} + +func size_proto3_int64(p *Properties, base structPointer) (n int) { + v := structPointer_Word64Val(base, p.field) + x := word64Val_Get(v) + if x == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += p.valSize(x) + return +} + +// Encode a string. +func (o *Buffer) enc_string(p *Properties, base structPointer) error { + v := *structPointer_String(base, p.field) + if v == nil { + return ErrNil + } + x := *v + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(x) + return nil +} + +func (o *Buffer) enc_proto3_string(p *Properties, base structPointer) error { + v := *structPointer_StringVal(base, p.field) + if v == "" { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(v) + return nil +} + +func size_string(p *Properties, base structPointer) (n int) { + v := *structPointer_String(base, p.field) + if v == nil { + return 0 + } + x := *v + n += len(p.tagcode) + n += sizeStringBytes(x) + return +} + +func size_proto3_string(p *Properties, base structPointer) (n int) { + v := *structPointer_StringVal(base, p.field) + if v == "" && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeStringBytes(v) + return +} + +// All protocol buffer fields are nillable, but be careful. +func isNil(v reflect.Value) bool { + switch v.Kind() { + case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + return v.IsNil() + } + return false +} + +// Encode a message struct. +func (o *Buffer) enc_struct_message(p *Properties, base structPointer) error { + var state errorState + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return ErrNil + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, err := m.Marshal() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + return state.err + } + + o.buf = append(o.buf, p.tagcode...) + return o.enc_len_struct(p.sprop, structp, &state) +} + +func size_struct_message(p *Properties, base structPointer) int { + structp := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(structp) { + return 0 + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, _ := m.Marshal() + n0 := len(p.tagcode) + n1 := sizeRawBytes(data) + return n0 + n1 + } + + n0 := len(p.tagcode) + n1 := size_struct(p.sprop, structp) + n2 := sizeVarint(uint64(n1)) // size of encoded length + return n0 + n1 + n2 +} + +// Encode a group struct. +func (o *Buffer) enc_struct_group(p *Properties, base structPointer) error { + var state errorState + b := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(b) { + return ErrNil + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) + err := o.enc_struct(p.sprop, b) + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) + return state.err +} + +func size_struct_group(p *Properties, base structPointer) (n int) { + b := structPointer_GetStructPointer(base, p.field) + if structPointer_IsNil(b) { + return 0 + } + + n += sizeVarint(uint64((p.Tag << 3) | WireStartGroup)) + n += size_struct(p.sprop, b) + n += sizeVarint(uint64((p.Tag << 3) | WireEndGroup)) + return +} + +// Encode a slice of bools ([]bool). +func (o *Buffer) enc_slice_bool(p *Properties, base structPointer) error { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return ErrNil + } + for _, x := range s { + o.buf = append(o.buf, p.tagcode...) + v := uint64(0) + if x { + v = 1 + } + p.valEnc(o, v) + } + return nil +} + +func size_slice_bool(p *Properties, base structPointer) int { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return 0 + } + return l * (len(p.tagcode) + 1) // each bool takes exactly one byte +} + +// Encode a slice of bools ([]bool) in packed format. +func (o *Buffer) enc_slice_packed_bool(p *Properties, base structPointer) error { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(l)) // each bool takes exactly one byte + for _, x := range s { + v := uint64(0) + if x { + v = 1 + } + p.valEnc(o, v) + } + return nil +} + +func size_slice_packed_bool(p *Properties, base structPointer) (n int) { + s := *structPointer_BoolSlice(base, p.field) + l := len(s) + if l == 0 { + return 0 + } + n += len(p.tagcode) + n += sizeVarint(uint64(l)) + n += l // each bool takes exactly one byte + return +} + +// Encode a slice of bytes ([]byte). +func (o *Buffer) enc_slice_byte(p *Properties, base structPointer) error { + s := *structPointer_Bytes(base, p.field) + if s == nil { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(s) + return nil +} + +func (o *Buffer) enc_proto3_slice_byte(p *Properties, base structPointer) error { + s := *structPointer_Bytes(base, p.field) + if len(s) == 0 { + return ErrNil + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(s) + return nil +} + +func size_slice_byte(p *Properties, base structPointer) (n int) { + s := *structPointer_Bytes(base, p.field) + if s == nil && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeRawBytes(s) + return +} + +func size_proto3_slice_byte(p *Properties, base structPointer) (n int) { + s := *structPointer_Bytes(base, p.field) + if len(s) == 0 && !p.oneof { + return 0 + } + n += len(p.tagcode) + n += sizeRawBytes(s) + return +} + +// Encode a slice of int32s ([]int32). +func (o *Buffer) enc_slice_int32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + p.valEnc(o, uint64(x)) + } + return nil +} + +func size_slice_int32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + n += p.valSize(uint64(x)) + } + return +} + +// Encode a slice of int32s ([]int32) in packed format. +func (o *Buffer) enc_slice_packed_int32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + p.valEnc(buf, uint64(x)) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_int32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + x := int32(s.Index(i)) // permit sign extension to use full 64-bit range + bufSize += p.valSize(uint64(x)) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of uint32s ([]uint32). +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_slice_uint32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + x := s.Index(i) + p.valEnc(o, uint64(x)) + } + return nil +} + +func size_slice_uint32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + x := s.Index(i) + n += p.valSize(uint64(x)) + } + return +} + +// Encode a slice of uint32s ([]uint32) in packed format. +// Exactly the same as int32, except for no sign extension. +func (o *Buffer) enc_slice_packed_uint32(p *Properties, base structPointer) error { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + p.valEnc(buf, uint64(s.Index(i))) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_uint32(p *Properties, base structPointer) (n int) { + s := structPointer_Word32Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + bufSize += p.valSize(uint64(s.Index(i))) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of int64s ([]int64). +func (o *Buffer) enc_slice_int64(p *Properties, base structPointer) error { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + p.valEnc(o, s.Index(i)) + } + return nil +} + +func size_slice_int64(p *Properties, base structPointer) (n int) { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + for i := 0; i < l; i++ { + n += len(p.tagcode) + n += p.valSize(s.Index(i)) + } + return +} + +// Encode a slice of int64s ([]int64) in packed format. +func (o *Buffer) enc_slice_packed_int64(p *Properties, base structPointer) error { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return ErrNil + } + // TODO: Reuse a Buffer. + buf := NewBuffer(nil) + for i := 0; i < l; i++ { + p.valEnc(buf, s.Index(i)) + } + + o.buf = append(o.buf, p.tagcode...) + o.EncodeVarint(uint64(len(buf.buf))) + o.buf = append(o.buf, buf.buf...) + return nil +} + +func size_slice_packed_int64(p *Properties, base structPointer) (n int) { + s := structPointer_Word64Slice(base, p.field) + l := s.Len() + if l == 0 { + return 0 + } + var bufSize int + for i := 0; i < l; i++ { + bufSize += p.valSize(s.Index(i)) + } + + n += len(p.tagcode) + n += sizeVarint(uint64(bufSize)) + n += bufSize + return +} + +// Encode a slice of slice of bytes ([][]byte). +func (o *Buffer) enc_slice_slice_byte(p *Properties, base structPointer) error { + ss := *structPointer_BytesSlice(base, p.field) + l := len(ss) + if l == 0 { + return ErrNil + } + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(ss[i]) + } + return nil +} + +func size_slice_slice_byte(p *Properties, base structPointer) (n int) { + ss := *structPointer_BytesSlice(base, p.field) + l := len(ss) + if l == 0 { + return 0 + } + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + n += sizeRawBytes(ss[i]) + } + return +} + +// Encode a slice of strings ([]string). +func (o *Buffer) enc_slice_string(p *Properties, base structPointer) error { + ss := *structPointer_StringSlice(base, p.field) + l := len(ss) + for i := 0; i < l; i++ { + o.buf = append(o.buf, p.tagcode...) + o.EncodeStringBytes(ss[i]) + } + return nil +} + +func size_slice_string(p *Properties, base structPointer) (n int) { + ss := *structPointer_StringSlice(base, p.field) + l := len(ss) + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + n += sizeStringBytes(ss[i]) + } + return +} + +// Encode a slice of message structs ([]*struct). +func (o *Buffer) enc_slice_struct_message(p *Properties, base structPointer) error { + var state errorState + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + for i := 0; i < l; i++ { + structp := s.Index(i) + if structPointer_IsNil(structp) { + return errRepeatedHasNil + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, err := m.Marshal() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + o.buf = append(o.buf, p.tagcode...) + o.EncodeRawBytes(data) + continue + } + + o.buf = append(o.buf, p.tagcode...) + err := o.enc_len_struct(p.sprop, structp, &state) + if err != nil && !state.shouldContinue(err, nil) { + if err == ErrNil { + return errRepeatedHasNil + } + return err + } + } + return state.err +} + +func size_slice_struct_message(p *Properties, base structPointer) (n int) { + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + n += l * len(p.tagcode) + for i := 0; i < l; i++ { + structp := s.Index(i) + if structPointer_IsNil(structp) { + return // return the size up to this point + } + + // Can the object marshal itself? + if p.isMarshaler { + m := structPointer_Interface(structp, p.stype).(Marshaler) + data, _ := m.Marshal() + n += len(p.tagcode) + n += sizeRawBytes(data) + continue + } + + n0 := size_struct(p.sprop, structp) + n1 := sizeVarint(uint64(n0)) // size of encoded length + n += n0 + n1 + } + return +} + +// Encode a slice of group structs ([]*struct). +func (o *Buffer) enc_slice_struct_group(p *Properties, base structPointer) error { + var state errorState + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + for i := 0; i < l; i++ { + b := s.Index(i) + if structPointer_IsNil(b) { + return errRepeatedHasNil + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireStartGroup)) + + err := o.enc_struct(p.sprop, b) + + if err != nil && !state.shouldContinue(err, nil) { + if err == ErrNil { + return errRepeatedHasNil + } + return err + } + + o.EncodeVarint(uint64((p.Tag << 3) | WireEndGroup)) + } + return state.err +} + +func size_slice_struct_group(p *Properties, base structPointer) (n int) { + s := structPointer_StructPointerSlice(base, p.field) + l := s.Len() + + n += l * sizeVarint(uint64((p.Tag<<3)|WireStartGroup)) + n += l * sizeVarint(uint64((p.Tag<<3)|WireEndGroup)) + for i := 0; i < l; i++ { + b := s.Index(i) + if structPointer_IsNil(b) { + return // return size up to this point + } + + n += size_struct(p.sprop, b) + } + return +} + +// Encode an extension map. +func (o *Buffer) enc_map(p *Properties, base structPointer) error { + exts := structPointer_ExtMap(base, p.field) + if err := encodeExtensionsMap(*exts); err != nil { + return err + } + + return o.enc_map_body(*exts) +} + +func (o *Buffer) enc_exts(p *Properties, base structPointer) error { + exts := structPointer_Extensions(base, p.field) + if err := encodeExtensions(exts); err != nil { + return err + } + v, _ := exts.extensionsRead() + + return o.enc_map_body(v) +} + +func (o *Buffer) enc_map_body(v map[int32]Extension) error { + // Fast-path for common cases: zero or one extensions. + if len(v) <= 1 { + for _, e := range v { + o.buf = append(o.buf, e.enc...) + } + return nil + } + + // Sort keys to provide a deterministic encoding. + keys := make([]int, 0, len(v)) + for k := range v { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, k := range keys { + o.buf = append(o.buf, v[int32(k)].enc...) + } + return nil +} + +func size_map(p *Properties, base structPointer) int { + v := structPointer_ExtMap(base, p.field) + return extensionsMapSize(*v) +} + +func size_exts(p *Properties, base structPointer) int { + v := structPointer_Extensions(base, p.field) + return extensionsSize(v) +} + +// Encode a map field. +func (o *Buffer) enc_new_map(p *Properties, base structPointer) error { + var state errorState // XXX: or do we need to plumb this through? + + /* + A map defined as + map map_field = N; + is encoded in the same way as + message MapFieldEntry { + key_type key = 1; + value_type value = 2; + } + repeated MapFieldEntry map_field = N; + */ + + v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V + if v.Len() == 0 { + return nil + } + + keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) + + enc := func() error { + if err := p.mkeyprop.enc(o, p.mkeyprop, keybase); err != nil { + return err + } + if err := p.mvalprop.enc(o, p.mvalprop, valbase); err != nil && err != ErrNil { + return err + } + return nil + } + + // Don't sort map keys. It is not required by the spec, and C++ doesn't do it. + for _, key := range v.MapKeys() { + val := v.MapIndex(key) + + keycopy.Set(key) + valcopy.Set(val) + + o.buf = append(o.buf, p.tagcode...) + if err := o.enc_len_thing(enc, &state); err != nil { + return err + } + } + return nil +} + +func size_new_map(p *Properties, base structPointer) int { + v := structPointer_NewAt(base, p.field, p.mtype).Elem() // map[K]V + + keycopy, valcopy, keybase, valbase := mapEncodeScratch(p.mtype) + + n := 0 + for _, key := range v.MapKeys() { + val := v.MapIndex(key) + keycopy.Set(key) + valcopy.Set(val) + + // Tag codes for key and val are the responsibility of the sub-sizer. + keysize := p.mkeyprop.size(p.mkeyprop, keybase) + valsize := p.mvalprop.size(p.mvalprop, valbase) + entry := keysize + valsize + // Add on tag code and length of map entry itself. + n += len(p.tagcode) + sizeVarint(uint64(entry)) + entry + } + return n +} + +// mapEncodeScratch returns a new reflect.Value matching the map's value type, +// and a structPointer suitable for passing to an encoder or sizer. +func mapEncodeScratch(mapType reflect.Type) (keycopy, valcopy reflect.Value, keybase, valbase structPointer) { + // Prepare addressable doubly-indirect placeholders for the key and value types. + // This is needed because the element-type encoders expect **T, but the map iteration produces T. + + keycopy = reflect.New(mapType.Key()).Elem() // addressable K + keyptr := reflect.New(reflect.PtrTo(keycopy.Type())).Elem() // addressable *K + keyptr.Set(keycopy.Addr()) // + keybase = toStructPointer(keyptr.Addr()) // **K + + // Value types are more varied and require special handling. + switch mapType.Elem().Kind() { + case reflect.Slice: + // []byte + var dummy []byte + valcopy = reflect.ValueOf(&dummy).Elem() // addressable []byte + valbase = toStructPointer(valcopy.Addr()) + case reflect.Ptr: + // message; the generated field type is map[K]*Msg (so V is *Msg), + // so we only need one level of indirection. + valcopy = reflect.New(mapType.Elem()).Elem() // addressable V + valbase = toStructPointer(valcopy.Addr()) + default: + // everything else + valcopy = reflect.New(mapType.Elem()).Elem() // addressable V + valptr := reflect.New(reflect.PtrTo(valcopy.Type())).Elem() // addressable *V + valptr.Set(valcopy.Addr()) // + valbase = toStructPointer(valptr.Addr()) // **V + } + return +} + +// Encode a struct. +func (o *Buffer) enc_struct(prop *StructProperties, base structPointer) error { + var state errorState + // Encode fields in tag order so that decoders may use optimizations + // that depend on the ordering. + // https://developers.google.com/protocol-buffers/docs/encoding#order + for _, i := range prop.order { + p := prop.Prop[i] + if p.enc != nil { + err := p.enc(o, p, base) + if err != nil { + if err == ErrNil { + if p.Required && state.err == nil { + state.err = &RequiredNotSetError{p.Name} + } + } else if err == errRepeatedHasNil { + // Give more context to nil values in repeated fields. + return errors.New("repeated field " + p.OrigName + " has nil element") + } else if !state.shouldContinue(err, p) { + return err + } + } + if len(o.buf) > maxMarshalSize { + return ErrTooLarge + } + } + } + + // Do oneof fields. + if prop.oneofMarshaler != nil { + m := structPointer_Interface(base, prop.stype).(Message) + if err := prop.oneofMarshaler(m, o); err == ErrNil { + return errOneofHasNil + } else if err != nil { + return err + } + } + + // Add unrecognized fields at the end. + if prop.unrecField.IsValid() { + v := *structPointer_Bytes(base, prop.unrecField) + if len(o.buf)+len(v) > maxMarshalSize { + return ErrTooLarge + } + if len(v) > 0 { + o.buf = append(o.buf, v...) + } + } + + return state.err +} + +func size_struct(prop *StructProperties, base structPointer) (n int) { + for _, i := range prop.order { + p := prop.Prop[i] + if p.size != nil { + n += p.size(p, base) + } + } + + // Add unrecognized fields at the end. + if prop.unrecField.IsValid() { + v := *structPointer_Bytes(base, prop.unrecField) + n += len(v) + } + + // Factor in any oneof fields. + if prop.oneofSizer != nil { + m := structPointer_Interface(base, prop.stype).(Message) + n += prop.oneofSizer(m) + } + + return +} + +var zeroes [20]byte // longer than any conceivable sizeVarint + +// Encode a struct, preceded by its encoded length (as a varint). +func (o *Buffer) enc_len_struct(prop *StructProperties, base structPointer, state *errorState) error { + return o.enc_len_thing(func() error { return o.enc_struct(prop, base) }, state) +} + +// Encode something, preceded by its encoded length (as a varint). +func (o *Buffer) enc_len_thing(enc func() error, state *errorState) error { + iLen := len(o.buf) + o.buf = append(o.buf, 0, 0, 0, 0) // reserve four bytes for length + iMsg := len(o.buf) + err := enc() + if err != nil && !state.shouldContinue(err, nil) { + return err + } + lMsg := len(o.buf) - iMsg + lLen := sizeVarint(uint64(lMsg)) + switch x := lLen - (iMsg - iLen); { + case x > 0: // actual length is x bytes larger than the space we reserved + // Move msg x bytes right. + o.buf = append(o.buf, zeroes[:x]...) + copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) + case x < 0: // actual length is x bytes smaller than the space we reserved + // Move msg x bytes left. + copy(o.buf[iMsg+x:], o.buf[iMsg:iMsg+lMsg]) + o.buf = o.buf[:len(o.buf)+x] // x is negative + } + // Encode the length in the reserved space. + o.buf = o.buf[:iLen] + o.EncodeVarint(uint64(lMsg)) + o.buf = o.buf[:len(o.buf)+lMsg] + return state.err +} + +// errorState maintains the first error that occurs and updates that error +// with additional context. +type errorState struct { + err error +} + +// shouldContinue reports whether encoding should continue upon encountering the +// given error. If the error is RequiredNotSetError, shouldContinue returns true +// and, if this is the first appearance of that error, remembers it for future +// reporting. +// +// If prop is not nil, it may update any error with additional context about the +// field with the error. +func (s *errorState) shouldContinue(err error, prop *Properties) bool { + // Ignore unset required fields. + reqNotSet, ok := err.(*RequiredNotSetError) + if !ok { + return false + } + if s.err == nil { + if prop != nil { + err = &RequiredNotSetError{prop.Name + "." + reqNotSet.field} + } + s.err = err + } + return true +} diff --git a/vendor/github.com/golang/protobuf/proto/equal.go b/vendor/github.com/golang/protobuf/proto/equal.go new file mode 100644 index 00000000..8b16f951 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/equal.go @@ -0,0 +1,296 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Protocol buffer comparison. + +package proto + +import ( + "bytes" + "log" + "reflect" + "strings" +) + +/* +Equal returns true iff protocol buffers a and b are equal. +The arguments must both be pointers to protocol buffer structs. + +Equality is defined in this way: + - Two messages are equal iff they are the same type, + corresponding fields are equal, unknown field sets + are equal, and extensions sets are equal. + - Two set scalar fields are equal iff their values are equal. + If the fields are of a floating-point type, remember that + NaN != x for all x, including NaN. If the message is defined + in a proto3 .proto file, fields are not "set"; specifically, + zero length proto3 "bytes" fields are equal (nil == {}). + - Two repeated fields are equal iff their lengths are the same, + and their corresponding elements are equal (a "bytes" field, + although represented by []byte, is not a repeated field) + - Two unset fields are equal. + - Two unknown field sets are equal if their current + encoded state is equal. + - Two extension sets are equal iff they have corresponding + elements that are pairwise equal. + - Every other combination of things are not equal. + +The return value is undefined if a and b are not protocol buffers. +*/ +func Equal(a, b Message) bool { + if a == nil || b == nil { + return a == b + } + v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b) + if v1.Type() != v2.Type() { + return false + } + if v1.Kind() == reflect.Ptr { + if v1.IsNil() { + return v2.IsNil() + } + if v2.IsNil() { + return false + } + v1, v2 = v1.Elem(), v2.Elem() + } + if v1.Kind() != reflect.Struct { + return false + } + return equalStruct(v1, v2) +} + +// v1 and v2 are known to have the same type. +func equalStruct(v1, v2 reflect.Value) bool { + sprop := GetProperties(v1.Type()) + for i := 0; i < v1.NumField(); i++ { + f := v1.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + f1, f2 := v1.Field(i), v2.Field(i) + if f.Type.Kind() == reflect.Ptr { + if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 { + // both unset + continue + } else if n1 != n2 { + // set/unset mismatch + return false + } + b1, ok := f1.Interface().(raw) + if ok { + b2 := f2.Interface().(raw) + // RawMessage + if !bytes.Equal(b1.Bytes(), b2.Bytes()) { + return false + } + continue + } + f1, f2 = f1.Elem(), f2.Elem() + } + if !equalAny(f1, f2, sprop.Prop[i]) { + return false + } + } + + if em1 := v1.FieldByName("XXX_InternalExtensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_InternalExtensions") + if !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) { + return false + } + } + + if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_extensions") + if !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) { + return false + } + } + + uf := v1.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return true + } + + u1 := uf.Bytes() + u2 := v2.FieldByName("XXX_unrecognized").Bytes() + if !bytes.Equal(u1, u2) { + return false + } + + return true +} + +// v1 and v2 are known to have the same type. +// prop may be nil. +func equalAny(v1, v2 reflect.Value, prop *Properties) bool { + if v1.Type() == protoMessageType { + m1, _ := v1.Interface().(Message) + m2, _ := v2.Interface().(Message) + return Equal(m1, m2) + } + switch v1.Kind() { + case reflect.Bool: + return v1.Bool() == v2.Bool() + case reflect.Float32, reflect.Float64: + return v1.Float() == v2.Float() + case reflect.Int32, reflect.Int64: + return v1.Int() == v2.Int() + case reflect.Interface: + // Probably a oneof field; compare the inner values. + n1, n2 := v1.IsNil(), v2.IsNil() + if n1 || n2 { + return n1 == n2 + } + e1, e2 := v1.Elem(), v2.Elem() + if e1.Type() != e2.Type() { + return false + } + return equalAny(e1, e2, nil) + case reflect.Map: + if v1.Len() != v2.Len() { + return false + } + for _, key := range v1.MapKeys() { + val2 := v2.MapIndex(key) + if !val2.IsValid() { + // This key was not found in the second map. + return false + } + if !equalAny(v1.MapIndex(key), val2, nil) { + return false + } + } + return true + case reflect.Ptr: + // Maps may have nil values in them, so check for nil. + if v1.IsNil() && v2.IsNil() { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return equalAny(v1.Elem(), v2.Elem(), prop) + case reflect.Slice: + if v1.Type().Elem().Kind() == reflect.Uint8 { + // short circuit: []byte + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value. + if prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte)) + } + + if v1.Len() != v2.Len() { + return false + } + for i := 0; i < v1.Len(); i++ { + if !equalAny(v1.Index(i), v2.Index(i), prop) { + return false + } + } + return true + case reflect.String: + return v1.Interface().(string) == v2.Interface().(string) + case reflect.Struct: + return equalStruct(v1, v2) + case reflect.Uint32, reflect.Uint64: + return v1.Uint() == v2.Uint() + } + + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to compare %v", v1) + return false +} + +// base is the struct type that the extensions are based on. +// x1 and x2 are InternalExtensions. +func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool { + em1, _ := x1.extensionsRead() + em2, _ := x2.extensionsRead() + return equalExtMap(base, em1, em2) +} + +func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool { + if len(em1) != len(em2) { + return false + } + + for extNum, e1 := range em1 { + e2, ok := em2[extNum] + if !ok { + return false + } + + m1, m2 := e1.value, e2.value + + if m1 != nil && m2 != nil { + // Both are unencoded. + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + continue + } + + // At least one is encoded. To do a semantically correct comparison + // we need to unmarshal them first. + var desc *ExtensionDesc + if m := extensionMaps[base]; m != nil { + desc = m[extNum] + } + if desc == nil { + log.Printf("proto: don't know how to compare extension %d of %v", extNum, base) + continue + } + var err error + if m1 == nil { + m1, err = decodeExtension(e1.enc, desc) + } + if m2 == nil && err == nil { + m2, err = decodeExtension(e2.enc, desc) + } + if err != nil { + // The encoded form is invalid. + log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err) + return false + } + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + } + + return true +} diff --git a/vendor/github.com/golang/protobuf/proto/equal_test.go b/vendor/github.com/golang/protobuf/proto/equal_test.go new file mode 100644 index 00000000..7b45eaa6 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/equal_test.go @@ -0,0 +1,212 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "testing" + + . "github.com/golang/protobuf/proto" + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + pb "github.com/golang/protobuf/proto/testdata" +) + +// Four identical base messages. +// The init function adds extensions to some of them. +var messageWithoutExtension = &pb.MyMessage{Count: Int32(7)} +var messageWithExtension1a = &pb.MyMessage{Count: Int32(7)} +var messageWithExtension1b = &pb.MyMessage{Count: Int32(7)} +var messageWithExtension2 = &pb.MyMessage{Count: Int32(7)} + +// Two messages with non-message extensions. +var messageWithInt32Extension1 = &pb.MyMessage{Count: Int32(8)} +var messageWithInt32Extension2 = &pb.MyMessage{Count: Int32(8)} + +func init() { + ext1 := &pb.Ext{Data: String("Kirk")} + ext2 := &pb.Ext{Data: String("Picard")} + + // messageWithExtension1a has ext1, but never marshals it. + if err := SetExtension(messageWithExtension1a, pb.E_Ext_More, ext1); err != nil { + panic("SetExtension on 1a failed: " + err.Error()) + } + + // messageWithExtension1b is the unmarshaled form of messageWithExtension1a. + if err := SetExtension(messageWithExtension1b, pb.E_Ext_More, ext1); err != nil { + panic("SetExtension on 1b failed: " + err.Error()) + } + buf, err := Marshal(messageWithExtension1b) + if err != nil { + panic("Marshal of 1b failed: " + err.Error()) + } + messageWithExtension1b.Reset() + if err := Unmarshal(buf, messageWithExtension1b); err != nil { + panic("Unmarshal of 1b failed: " + err.Error()) + } + + // messageWithExtension2 has ext2. + if err := SetExtension(messageWithExtension2, pb.E_Ext_More, ext2); err != nil { + panic("SetExtension on 2 failed: " + err.Error()) + } + + if err := SetExtension(messageWithInt32Extension1, pb.E_Ext_Number, Int32(23)); err != nil { + panic("SetExtension on Int32-1 failed: " + err.Error()) + } + if err := SetExtension(messageWithInt32Extension1, pb.E_Ext_Number, Int32(24)); err != nil { + panic("SetExtension on Int32-2 failed: " + err.Error()) + } +} + +var EqualTests = []struct { + desc string + a, b Message + exp bool +}{ + {"different types", &pb.GoEnum{}, &pb.GoTestField{}, false}, + {"equal empty", &pb.GoEnum{}, &pb.GoEnum{}, true}, + {"nil vs nil", nil, nil, true}, + {"typed nil vs typed nil", (*pb.GoEnum)(nil), (*pb.GoEnum)(nil), true}, + {"typed nil vs empty", (*pb.GoEnum)(nil), &pb.GoEnum{}, false}, + {"different typed nil", (*pb.GoEnum)(nil), (*pb.GoTestField)(nil), false}, + + {"one set field, one unset field", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{}, false}, + {"one set field zero, one unset field", &pb.GoTest{Param: Int32(0)}, &pb.GoTest{}, false}, + {"different set fields", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{Label: String("bar")}, false}, + {"equal set", &pb.GoTestField{Label: String("foo")}, &pb.GoTestField{Label: String("foo")}, true}, + + {"repeated, one set", &pb.GoTest{F_Int32Repeated: []int32{2, 3}}, &pb.GoTest{}, false}, + {"repeated, different length", &pb.GoTest{F_Int32Repeated: []int32{2, 3}}, &pb.GoTest{F_Int32Repeated: []int32{2}}, false}, + {"repeated, different value", &pb.GoTest{F_Int32Repeated: []int32{2}}, &pb.GoTest{F_Int32Repeated: []int32{3}}, false}, + {"repeated, equal", &pb.GoTest{F_Int32Repeated: []int32{2, 4}}, &pb.GoTest{F_Int32Repeated: []int32{2, 4}}, true}, + {"repeated, nil equal nil", &pb.GoTest{F_Int32Repeated: nil}, &pb.GoTest{F_Int32Repeated: nil}, true}, + {"repeated, nil equal empty", &pb.GoTest{F_Int32Repeated: nil}, &pb.GoTest{F_Int32Repeated: []int32{}}, true}, + {"repeated, empty equal nil", &pb.GoTest{F_Int32Repeated: []int32{}}, &pb.GoTest{F_Int32Repeated: nil}, true}, + + { + "nested, different", + &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("foo")}}, + &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("bar")}}, + false, + }, + { + "nested, equal", + &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("wow")}}, + &pb.GoTest{RequiredField: &pb.GoTestField{Label: String("wow")}}, + true, + }, + + {"bytes", &pb.OtherMessage{Value: []byte("foo")}, &pb.OtherMessage{Value: []byte("foo")}, true}, + {"bytes, empty", &pb.OtherMessage{Value: []byte{}}, &pb.OtherMessage{Value: []byte{}}, true}, + {"bytes, empty vs nil", &pb.OtherMessage{Value: []byte{}}, &pb.OtherMessage{Value: nil}, false}, + { + "repeated bytes", + &pb.MyMessage{RepBytes: [][]byte{[]byte("sham"), []byte("wow")}}, + &pb.MyMessage{RepBytes: [][]byte{[]byte("sham"), []byte("wow")}}, + true, + }, + // In proto3, []byte{} and []byte(nil) are equal. + {"proto3 bytes, empty vs nil", &proto3pb.Message{Data: []byte{}}, &proto3pb.Message{Data: nil}, true}, + + {"extension vs. no extension", messageWithoutExtension, messageWithExtension1a, false}, + {"extension vs. same extension", messageWithExtension1a, messageWithExtension1b, true}, + {"extension vs. different extension", messageWithExtension1a, messageWithExtension2, false}, + + {"int32 extension vs. itself", messageWithInt32Extension1, messageWithInt32Extension1, true}, + {"int32 extension vs. a different int32", messageWithInt32Extension1, messageWithInt32Extension2, false}, + + { + "message with group", + &pb.MyMessage{ + Count: Int32(1), + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: Int32(5), + }, + }, + &pb.MyMessage{ + Count: Int32(1), + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: Int32(5), + }, + }, + true, + }, + + { + "map same", + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, + true, + }, + { + "map different entry", + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, + &pb.MessageWithMap{NameMapping: map[int32]string{2: "Rob"}}, + false, + }, + { + "map different key only", + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, + &pb.MessageWithMap{NameMapping: map[int32]string{2: "Ken"}}, + false, + }, + { + "map different value only", + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken"}}, + &pb.MessageWithMap{NameMapping: map[int32]string{1: "Rob"}}, + false, + }, + { + "oneof same", + &pb.Communique{Union: &pb.Communique_Number{41}}, + &pb.Communique{Union: &pb.Communique_Number{41}}, + true, + }, + { + "oneof one nil", + &pb.Communique{Union: &pb.Communique_Number{41}}, + &pb.Communique{}, + false, + }, + { + "oneof different", + &pb.Communique{Union: &pb.Communique_Number{41}}, + &pb.Communique{Union: &pb.Communique_Name{"Bobby Tables"}}, + false, + }, +} + +func TestEqual(t *testing.T) { + for _, tc := range EqualTests { + if res := Equal(tc.a, tc.b); res != tc.exp { + t.Errorf("%v: Equal(%v, %v) = %v, want %v", tc.desc, tc.a, tc.b, res, tc.exp) + } + } +} diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go new file mode 100644 index 00000000..9f484f53 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/extensions.go @@ -0,0 +1,555 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Types and routines for supporting protocol buffer extensions. + */ + +import ( + "errors" + "fmt" + "reflect" + "strconv" + "sync" +) + +// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message. +var ErrMissingExtension = errors.New("proto: missing extension") + +// ExtensionRange represents a range of message extensions for a protocol buffer. +// Used in code generated by the protocol compiler. +type ExtensionRange struct { + Start, End int32 // both inclusive +} + +// extendableProto is an interface implemented by any protocol buffer generated by the current +// proto compiler that may be extended. +type extendableProto interface { + Message + ExtensionRangeArray() []ExtensionRange + extensionsWrite() map[int32]Extension + extensionsRead() (map[int32]Extension, sync.Locker) +} + +// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous +// version of the proto compiler that may be extended. +type extendableProtoV1 interface { + Message + ExtensionRangeArray() []ExtensionRange + ExtensionMap() map[int32]Extension +} + +// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto. +type extensionAdapter struct { + extendableProtoV1 +} + +func (e extensionAdapter) extensionsWrite() map[int32]Extension { + return e.ExtensionMap() +} + +func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + return e.ExtensionMap(), notLocker{} +} + +// notLocker is a sync.Locker whose Lock and Unlock methods are nops. +type notLocker struct{} + +func (n notLocker) Lock() {} +func (n notLocker) Unlock() {} + +// extendable returns the extendableProto interface for the given generated proto message. +// If the proto message has the old extension format, it returns a wrapper that implements +// the extendableProto interface. +func extendable(p interface{}) (extendableProto, bool) { + if ep, ok := p.(extendableProto); ok { + return ep, ok + } + if ep, ok := p.(extendableProtoV1); ok { + return extensionAdapter{ep}, ok + } + return nil, false +} + +// XXX_InternalExtensions is an internal representation of proto extensions. +// +// Each generated message struct type embeds an anonymous XXX_InternalExtensions field, +// thus gaining the unexported 'extensions' method, which can be called only from the proto package. +// +// The methods of XXX_InternalExtensions are not concurrency safe in general, +// but calls to logically read-only methods such as has and get may be executed concurrently. +type XXX_InternalExtensions struct { + // The struct must be indirect so that if a user inadvertently copies a + // generated message and its embedded XXX_InternalExtensions, they + // avoid the mayhem of a copied mutex. + // + // The mutex serializes all logically read-only operations to p.extensionMap. + // It is up to the client to ensure that write operations to p.extensionMap are + // mutually exclusive with other accesses. + p *struct { + mu sync.Mutex + extensionMap map[int32]Extension + } +} + +// extensionsWrite returns the extension map, creating it on first use. +func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension { + if e.p == nil { + e.p = new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }) + e.p.extensionMap = make(map[int32]Extension) + } + return e.p.extensionMap +} + +// extensionsRead returns the extensions map for read-only use. It may be nil. +// The caller must hold the returned mutex's lock when accessing Elements within the map. +func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) { + if e.p == nil { + return nil, nil + } + return e.p.extensionMap, &e.p.mu +} + +var extendableProtoType = reflect.TypeOf((*extendableProto)(nil)).Elem() +var extendableProtoV1Type = reflect.TypeOf((*extendableProtoV1)(nil)).Elem() + +// ExtensionDesc represents an extension specification. +// Used in generated code from the protocol compiler. +type ExtensionDesc struct { + ExtendedType Message // nil pointer to the type that is being extended + ExtensionType interface{} // nil pointer to the extension type + Field int32 // field number + Name string // fully-qualified name of extension, for text formatting + Tag string // protobuf tag style +} + +func (ed *ExtensionDesc) repeated() bool { + t := reflect.TypeOf(ed.ExtensionType) + return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 +} + +// Extension represents an extension in a message. +type Extension struct { + // When an extension is stored in a message using SetExtension + // only desc and value are set. When the message is marshaled + // enc will be set to the encoded form of the message. + // + // When a message is unmarshaled and contains extensions, each + // extension will have only enc set. When such an extension is + // accessed using GetExtension (or GetExtensions) desc and value + // will be set. + desc *ExtensionDesc + value interface{} + enc []byte +} + +// SetRawExtension is for testing only. +func SetRawExtension(base Message, id int32, b []byte) { + epb, ok := extendable(base) + if !ok { + return + } + extmap := epb.extensionsWrite() + extmap[id] = Extension{enc: b} +} + +// isExtensionField returns true iff the given field number is in an extension range. +func isExtensionField(pb extendableProto, field int32) bool { + for _, er := range pb.ExtensionRangeArray() { + if er.Start <= field && field <= er.End { + return true + } + } + return false +} + +// checkExtensionTypes checks that the given extension is valid for pb. +func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error { + var pbi interface{} = pb + // Check the extended type. + if ea, ok := pbi.(extensionAdapter); ok { + pbi = ea.extendableProtoV1 + } + if a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b { + return errors.New("proto: bad extended type; " + b.String() + " does not extend " + a.String()) + } + // Check the range. + if !isExtensionField(pb, extension.Field) { + return errors.New("proto: bad extension number; not in declared ranges") + } + return nil +} + +// extPropKey is sufficient to uniquely identify an extension. +type extPropKey struct { + base reflect.Type + field int32 +} + +var extProp = struct { + sync.RWMutex + m map[extPropKey]*Properties +}{ + m: make(map[extPropKey]*Properties), +} + +func extensionProperties(ed *ExtensionDesc) *Properties { + key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field} + + extProp.RLock() + if prop, ok := extProp.m[key]; ok { + extProp.RUnlock() + return prop + } + extProp.RUnlock() + + extProp.Lock() + defer extProp.Unlock() + // Check again. + if prop, ok := extProp.m[key]; ok { + return prop + } + + prop := new(Properties) + prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil) + extProp.m[key] = prop + return prop +} + +// encode encodes any unmarshaled (unencoded) extensions in e. +func encodeExtensions(e *XXX_InternalExtensions) error { + m, mu := e.extensionsRead() + if m == nil { + return nil // fast path + } + mu.Lock() + defer mu.Unlock() + return encodeExtensionsMap(m) +} + +// encode encodes any unmarshaled (unencoded) extensions in e. +func encodeExtensionsMap(m map[int32]Extension) error { + for k, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + et := reflect.TypeOf(e.desc.ExtensionType) + props := extensionProperties(e.desc) + + p := NewBuffer(nil) + // If e.value has type T, the encoder expects a *struct{ X T }. + // Pass a *T with a zero field and hope it all works out. + x := reflect.New(et) + x.Elem().Set(reflect.ValueOf(e.value)) + if err := props.enc(p, props, toStructPointer(x)); err != nil { + return err + } + e.enc = p.buf + m[k] = e + } + return nil +} + +func extensionsSize(e *XXX_InternalExtensions) (n int) { + m, mu := e.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + defer mu.Unlock() + return extensionsMapSize(m) +} + +func extensionsMapSize(m map[int32]Extension) (n int) { + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + et := reflect.TypeOf(e.desc.ExtensionType) + props := extensionProperties(e.desc) + + // If e.value has type T, the encoder expects a *struct{ X T }. + // Pass a *T with a zero field and hope it all works out. + x := reflect.New(et) + x.Elem().Set(reflect.ValueOf(e.value)) + n += props.size(props, toStructPointer(x)) + } + return +} + +// HasExtension returns whether the given extension is present in pb. +func HasExtension(pb Message, extension *ExtensionDesc) bool { + // TODO: Check types, field numbers, etc.? + epb, ok := extendable(pb) + if !ok { + return false + } + extmap, mu := epb.extensionsRead() + if extmap == nil { + return false + } + mu.Lock() + _, ok = extmap[extension.Field] + mu.Unlock() + return ok +} + +// ClearExtension removes the given extension from pb. +func ClearExtension(pb Message, extension *ExtensionDesc) { + epb, ok := extendable(pb) + if !ok { + return + } + // TODO: Check types, field numbers, etc.? + extmap := epb.extensionsWrite() + delete(extmap, extension.Field) +} + +// GetExtension parses and returns the given extension of pb. +// If the extension is not present and has no default value it returns ErrMissingExtension. +func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) { + epb, ok := extendable(pb) + if !ok { + return nil, errors.New("proto: not an extendable proto") + } + + if err := checkExtensionTypes(epb, extension); err != nil { + return nil, err + } + + emap, mu := epb.extensionsRead() + if emap == nil { + return defaultExtensionValue(extension) + } + mu.Lock() + defer mu.Unlock() + e, ok := emap[extension.Field] + if !ok { + // defaultExtensionValue returns the default value or + // ErrMissingExtension if there is no default. + return defaultExtensionValue(extension) + } + + if e.value != nil { + // Already decoded. Check the descriptor, though. + if e.desc != extension { + // This shouldn't happen. If it does, it means that + // GetExtension was called twice with two different + // descriptors with the same field number. + return nil, errors.New("proto: descriptor conflict") + } + return e.value, nil + } + + v, err := decodeExtension(e.enc, extension) + if err != nil { + return nil, err + } + + // Remember the decoded version and drop the encoded version. + // That way it is safe to mutate what we return. + e.value = v + e.desc = extension + e.enc = nil + emap[extension.Field] = e + return e.value, nil +} + +// defaultExtensionValue returns the default value for extension. +// If no default for an extension is defined ErrMissingExtension is returned. +func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) { + t := reflect.TypeOf(extension.ExtensionType) + props := extensionProperties(extension) + + sf, _, err := fieldDefault(t, props) + if err != nil { + return nil, err + } + + if sf == nil || sf.value == nil { + // There is no default value. + return nil, ErrMissingExtension + } + + if t.Kind() != reflect.Ptr { + // We do not need to return a Ptr, we can directly return sf.value. + return sf.value, nil + } + + // We need to return an interface{} that is a pointer to sf.value. + value := reflect.New(t).Elem() + value.Set(reflect.New(value.Type().Elem())) + if sf.kind == reflect.Int32 { + // We may have an int32 or an enum, but the underlying data is int32. + // Since we can't set an int32 into a non int32 reflect.value directly + // set it as a int32. + value.Elem().SetInt(int64(sf.value.(int32))) + } else { + value.Elem().Set(reflect.ValueOf(sf.value)) + } + return value.Interface(), nil +} + +// decodeExtension decodes an extension encoded in b. +func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) { + o := NewBuffer(b) + + t := reflect.TypeOf(extension.ExtensionType) + + props := extensionProperties(extension) + + // t is a pointer to a struct, pointer to basic type or a slice. + // Allocate a "field" to store the pointer/slice itself; the + // pointer/slice will be stored here. We pass + // the address of this field to props.dec. + // This passes a zero field and a *t and lets props.dec + // interpret it as a *struct{ x t }. + value := reflect.New(t).Elem() + + for { + // Discard wire type and field number varint. It isn't needed. + if _, err := o.DecodeVarint(); err != nil { + return nil, err + } + + if err := props.dec(o, props, toStructPointer(value.Addr())); err != nil { + return nil, err + } + + if o.index >= len(o.buf) { + break + } + } + return value.Interface(), nil +} + +// GetExtensions returns a slice of the extensions present in pb that are also listed in es. +// The returned slice has the same length as es; missing extensions will appear as nil elements. +func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) { + epb, ok := extendable(pb) + if !ok { + return nil, errors.New("proto: not an extendable proto") + } + extensions = make([]interface{}, len(es)) + for i, e := range es { + extensions[i], err = GetExtension(epb, e) + if err == ErrMissingExtension { + err = nil + } + if err != nil { + return + } + } + return +} + +// SetExtension sets the specified extension of pb to the specified value. +func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error { + epb, ok := extendable(pb) + if !ok { + return errors.New("proto: not an extendable proto") + } + if err := checkExtensionTypes(epb, extension); err != nil { + return err + } + typ := reflect.TypeOf(extension.ExtensionType) + if typ != reflect.TypeOf(value) { + return errors.New("proto: bad extension value type") + } + // nil extension values need to be caught early, because the + // encoder can't distinguish an ErrNil due to a nil extension + // from an ErrNil due to a missing field. Extensions are + // always optional, so the encoder would just swallow the error + // and drop all the extensions from the encoded message. + if reflect.ValueOf(value).IsNil() { + return fmt.Errorf("proto: SetExtension called with nil value of type %T", value) + } + + extmap := epb.extensionsWrite() + extmap[extension.Field] = Extension{desc: extension, value: value} + return nil +} + +// ClearAllExtensions clears all extensions from pb. +func ClearAllExtensions(pb Message) { + epb, ok := extendable(pb) + if !ok { + return + } + m := epb.extensionsWrite() + for k := range m { + delete(m, k) + } +} + +// A global registry of extensions. +// The generated code will register the generated descriptors by calling RegisterExtension. + +var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc) + +// RegisterExtension is called from the generated code. +func RegisterExtension(desc *ExtensionDesc) { + st := reflect.TypeOf(desc.ExtendedType).Elem() + m := extensionMaps[st] + if m == nil { + m = make(map[int32]*ExtensionDesc) + extensionMaps[st] = m + } + if _, ok := m[desc.Field]; ok { + panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field))) + } + m[desc.Field] = desc +} + +// RegisteredExtensions returns a map of the registered extensions of a +// protocol buffer struct, indexed by the extension number. +// The argument pb should be a nil pointer to the struct type. +func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc { + return extensionMaps[reflect.TypeOf(pb).Elem()] +} diff --git a/vendor/github.com/golang/protobuf/proto/extensions_test.go b/vendor/github.com/golang/protobuf/proto/extensions_test.go new file mode 100644 index 00000000..ed6a27d7 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/extensions_test.go @@ -0,0 +1,455 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2014 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "bytes" + "fmt" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + pb "github.com/golang/protobuf/proto/testdata" +) + +func TestGetExtensionsWithMissingExtensions(t *testing.T) { + msg := &pb.MyMessage{} + ext1 := &pb.Ext{} + if err := proto.SetExtension(msg, pb.E_Ext_More, ext1); err != nil { + t.Fatalf("Could not set ext1: %s", ext1) + } + exts, err := proto.GetExtensions(msg, []*proto.ExtensionDesc{ + pb.E_Ext_More, + pb.E_Ext_Text, + }) + if err != nil { + t.Fatalf("GetExtensions() failed: %s", err) + } + if exts[0] != ext1 { + t.Errorf("ext1 not in returned extensions: %T %v", exts[0], exts[0]) + } + if exts[1] != nil { + t.Errorf("ext2 in returned extensions: %T %v", exts[1], exts[1]) + } +} + +func TestGetExtensionStability(t *testing.T) { + check := func(m *pb.MyMessage) bool { + ext1, err := proto.GetExtension(m, pb.E_Ext_More) + if err != nil { + t.Fatalf("GetExtension() failed: %s", err) + } + ext2, err := proto.GetExtension(m, pb.E_Ext_More) + if err != nil { + t.Fatalf("GetExtension() failed: %s", err) + } + return ext1 == ext2 + } + msg := &pb.MyMessage{Count: proto.Int32(4)} + ext0 := &pb.Ext{} + if err := proto.SetExtension(msg, pb.E_Ext_More, ext0); err != nil { + t.Fatalf("Could not set ext1: %s", ext0) + } + if !check(msg) { + t.Errorf("GetExtension() not stable before marshaling") + } + bb, err := proto.Marshal(msg) + if err != nil { + t.Fatalf("Marshal() failed: %s", err) + } + msg1 := &pb.MyMessage{} + err = proto.Unmarshal(bb, msg1) + if err != nil { + t.Fatalf("Unmarshal() failed: %s", err) + } + if !check(msg1) { + t.Errorf("GetExtension() not stable after unmarshaling") + } +} + +func TestGetExtensionDefaults(t *testing.T) { + var setFloat64 float64 = 1 + var setFloat32 float32 = 2 + var setInt32 int32 = 3 + var setInt64 int64 = 4 + var setUint32 uint32 = 5 + var setUint64 uint64 = 6 + var setBool = true + var setBool2 = false + var setString = "Goodnight string" + var setBytes = []byte("Goodnight bytes") + var setEnum = pb.DefaultsMessage_TWO + + type testcase struct { + ext *proto.ExtensionDesc // Extension we are testing. + want interface{} // Expected value of extension, or nil (meaning that GetExtension will fail). + def interface{} // Expected value of extension after ClearExtension(). + } + tests := []testcase{ + {pb.E_NoDefaultDouble, setFloat64, nil}, + {pb.E_NoDefaultFloat, setFloat32, nil}, + {pb.E_NoDefaultInt32, setInt32, nil}, + {pb.E_NoDefaultInt64, setInt64, nil}, + {pb.E_NoDefaultUint32, setUint32, nil}, + {pb.E_NoDefaultUint64, setUint64, nil}, + {pb.E_NoDefaultSint32, setInt32, nil}, + {pb.E_NoDefaultSint64, setInt64, nil}, + {pb.E_NoDefaultFixed32, setUint32, nil}, + {pb.E_NoDefaultFixed64, setUint64, nil}, + {pb.E_NoDefaultSfixed32, setInt32, nil}, + {pb.E_NoDefaultSfixed64, setInt64, nil}, + {pb.E_NoDefaultBool, setBool, nil}, + {pb.E_NoDefaultBool, setBool2, nil}, + {pb.E_NoDefaultString, setString, nil}, + {pb.E_NoDefaultBytes, setBytes, nil}, + {pb.E_NoDefaultEnum, setEnum, nil}, + {pb.E_DefaultDouble, setFloat64, float64(3.1415)}, + {pb.E_DefaultFloat, setFloat32, float32(3.14)}, + {pb.E_DefaultInt32, setInt32, int32(42)}, + {pb.E_DefaultInt64, setInt64, int64(43)}, + {pb.E_DefaultUint32, setUint32, uint32(44)}, + {pb.E_DefaultUint64, setUint64, uint64(45)}, + {pb.E_DefaultSint32, setInt32, int32(46)}, + {pb.E_DefaultSint64, setInt64, int64(47)}, + {pb.E_DefaultFixed32, setUint32, uint32(48)}, + {pb.E_DefaultFixed64, setUint64, uint64(49)}, + {pb.E_DefaultSfixed32, setInt32, int32(50)}, + {pb.E_DefaultSfixed64, setInt64, int64(51)}, + {pb.E_DefaultBool, setBool, true}, + {pb.E_DefaultBool, setBool2, true}, + {pb.E_DefaultString, setString, "Hello, string"}, + {pb.E_DefaultBytes, setBytes, []byte("Hello, bytes")}, + {pb.E_DefaultEnum, setEnum, pb.DefaultsMessage_ONE}, + } + + checkVal := func(test testcase, msg *pb.DefaultsMessage, valWant interface{}) error { + val, err := proto.GetExtension(msg, test.ext) + if err != nil { + if valWant != nil { + return fmt.Errorf("GetExtension(): %s", err) + } + if want := proto.ErrMissingExtension; err != want { + return fmt.Errorf("Unexpected error: got %v, want %v", err, want) + } + return nil + } + + // All proto2 extension values are either a pointer to a value or a slice of values. + ty := reflect.TypeOf(val) + tyWant := reflect.TypeOf(test.ext.ExtensionType) + if got, want := ty, tyWant; got != want { + return fmt.Errorf("unexpected reflect.TypeOf(): got %v want %v", got, want) + } + tye := ty.Elem() + tyeWant := tyWant.Elem() + if got, want := tye, tyeWant; got != want { + return fmt.Errorf("unexpected reflect.TypeOf().Elem(): got %v want %v", got, want) + } + + // Check the name of the type of the value. + // If it is an enum it will be type int32 with the name of the enum. + if got, want := tye.Name(), tye.Name(); got != want { + return fmt.Errorf("unexpected reflect.TypeOf().Elem().Name(): got %v want %v", got, want) + } + + // Check that value is what we expect. + // If we have a pointer in val, get the value it points to. + valExp := val + if ty.Kind() == reflect.Ptr { + valExp = reflect.ValueOf(val).Elem().Interface() + } + if got, want := valExp, valWant; !reflect.DeepEqual(got, want) { + return fmt.Errorf("unexpected reflect.DeepEqual(): got %v want %v", got, want) + } + + return nil + } + + setTo := func(test testcase) interface{} { + setTo := reflect.ValueOf(test.want) + if typ := reflect.TypeOf(test.ext.ExtensionType); typ.Kind() == reflect.Ptr { + setTo = reflect.New(typ).Elem() + setTo.Set(reflect.New(setTo.Type().Elem())) + setTo.Elem().Set(reflect.ValueOf(test.want)) + } + return setTo.Interface() + } + + for _, test := range tests { + msg := &pb.DefaultsMessage{} + name := test.ext.Name + + // Check the initial value. + if err := checkVal(test, msg, test.def); err != nil { + t.Errorf("%s: %v", name, err) + } + + // Set the per-type value and check value. + name = fmt.Sprintf("%s (set to %T %v)", name, test.want, test.want) + if err := proto.SetExtension(msg, test.ext, setTo(test)); err != nil { + t.Errorf("%s: SetExtension(): %v", name, err) + continue + } + if err := checkVal(test, msg, test.want); err != nil { + t.Errorf("%s: %v", name, err) + continue + } + + // Set and check the value. + name += " (cleared)" + proto.ClearExtension(msg, test.ext) + if err := checkVal(test, msg, test.def); err != nil { + t.Errorf("%s: %v", name, err) + } + } +} + +func TestExtensionsRoundTrip(t *testing.T) { + msg := &pb.MyMessage{} + ext1 := &pb.Ext{ + Data: proto.String("hi"), + } + ext2 := &pb.Ext{ + Data: proto.String("there"), + } + exists := proto.HasExtension(msg, pb.E_Ext_More) + if exists { + t.Error("Extension More present unexpectedly") + } + if err := proto.SetExtension(msg, pb.E_Ext_More, ext1); err != nil { + t.Error(err) + } + if err := proto.SetExtension(msg, pb.E_Ext_More, ext2); err != nil { + t.Error(err) + } + e, err := proto.GetExtension(msg, pb.E_Ext_More) + if err != nil { + t.Error(err) + } + x, ok := e.(*pb.Ext) + if !ok { + t.Errorf("e has type %T, expected testdata.Ext", e) + } else if *x.Data != "there" { + t.Errorf("SetExtension failed to overwrite, got %+v, not 'there'", x) + } + proto.ClearExtension(msg, pb.E_Ext_More) + if _, err = proto.GetExtension(msg, pb.E_Ext_More); err != proto.ErrMissingExtension { + t.Errorf("got %v, expected ErrMissingExtension", e) + } + if _, err := proto.GetExtension(msg, pb.E_X215); err == nil { + t.Error("expected bad extension error, got nil") + } + if err := proto.SetExtension(msg, pb.E_X215, 12); err == nil { + t.Error("expected extension err") + } + if err := proto.SetExtension(msg, pb.E_Ext_More, 12); err == nil { + t.Error("expected some sort of type mismatch error, got nil") + } +} + +func TestNilExtension(t *testing.T) { + msg := &pb.MyMessage{ + Count: proto.Int32(1), + } + if err := proto.SetExtension(msg, pb.E_Ext_Text, proto.String("hello")); err != nil { + t.Fatal(err) + } + if err := proto.SetExtension(msg, pb.E_Ext_More, (*pb.Ext)(nil)); err == nil { + t.Error("expected SetExtension to fail due to a nil extension") + } else if want := "proto: SetExtension called with nil value of type *testdata.Ext"; err.Error() != want { + t.Errorf("expected error %v, got %v", want, err) + } + // Note: if the behavior of Marshal is ever changed to ignore nil extensions, update + // this test to verify that E_Ext_Text is properly propagated through marshal->unmarshal. +} + +func TestMarshalUnmarshalRepeatedExtension(t *testing.T) { + // Add a repeated extension to the result. + tests := []struct { + name string + ext []*pb.ComplexExtension + }{ + { + "two fields", + []*pb.ComplexExtension{ + {First: proto.Int32(7)}, + {Second: proto.Int32(11)}, + }, + }, + { + "repeated field", + []*pb.ComplexExtension{ + {Third: []int32{1000}}, + {Third: []int32{2000}}, + }, + }, + { + "two fields and repeated field", + []*pb.ComplexExtension{ + {Third: []int32{1000}}, + {First: proto.Int32(9)}, + {Second: proto.Int32(21)}, + {Third: []int32{2000}}, + }, + }, + } + for _, test := range tests { + // Marshal message with a repeated extension. + msg1 := new(pb.OtherMessage) + err := proto.SetExtension(msg1, pb.E_RComplex, test.ext) + if err != nil { + t.Fatalf("[%s] Error setting extension: %v", test.name, err) + } + b, err := proto.Marshal(msg1) + if err != nil { + t.Fatalf("[%s] Error marshaling message: %v", test.name, err) + } + + // Unmarshal and read the merged proto. + msg2 := new(pb.OtherMessage) + err = proto.Unmarshal(b, msg2) + if err != nil { + t.Fatalf("[%s] Error unmarshaling message: %v", test.name, err) + } + e, err := proto.GetExtension(msg2, pb.E_RComplex) + if err != nil { + t.Fatalf("[%s] Error getting extension: %v", test.name, err) + } + ext := e.([]*pb.ComplexExtension) + if ext == nil { + t.Fatalf("[%s] Invalid extension", test.name) + } + if !reflect.DeepEqual(ext, test.ext) { + t.Errorf("[%s] Wrong value for ComplexExtension: got: %v want: %v\n", test.name, ext, test.ext) + } + } +} + +func TestUnmarshalRepeatingNonRepeatedExtension(t *testing.T) { + // We may see multiple instances of the same extension in the wire + // format. For example, the proto compiler may encode custom options in + // this way. Here, we verify that we merge the extensions together. + tests := []struct { + name string + ext []*pb.ComplexExtension + }{ + { + "two fields", + []*pb.ComplexExtension{ + {First: proto.Int32(7)}, + {Second: proto.Int32(11)}, + }, + }, + { + "repeated field", + []*pb.ComplexExtension{ + {Third: []int32{1000}}, + {Third: []int32{2000}}, + }, + }, + { + "two fields and repeated field", + []*pb.ComplexExtension{ + {Third: []int32{1000}}, + {First: proto.Int32(9)}, + {Second: proto.Int32(21)}, + {Third: []int32{2000}}, + }, + }, + } + for _, test := range tests { + var buf bytes.Buffer + var want pb.ComplexExtension + + // Generate a serialized representation of a repeated extension + // by catenating bytes together. + for i, e := range test.ext { + // Merge to create the wanted proto. + proto.Merge(&want, e) + + // serialize the message + msg := new(pb.OtherMessage) + err := proto.SetExtension(msg, pb.E_Complex, e) + if err != nil { + t.Fatalf("[%s] Error setting extension %d: %v", test.name, i, err) + } + b, err := proto.Marshal(msg) + if err != nil { + t.Fatalf("[%s] Error marshaling message %d: %v", test.name, i, err) + } + buf.Write(b) + } + + // Unmarshal and read the merged proto. + msg2 := new(pb.OtherMessage) + err := proto.Unmarshal(buf.Bytes(), msg2) + if err != nil { + t.Fatalf("[%s] Error unmarshaling message: %v", test.name, err) + } + e, err := proto.GetExtension(msg2, pb.E_Complex) + if err != nil { + t.Fatalf("[%s] Error getting extension: %v", test.name, err) + } + ext := e.(*pb.ComplexExtension) + if ext == nil { + t.Fatalf("[%s] Invalid extension", test.name) + } + if !reflect.DeepEqual(*ext, want) { + t.Errorf("[%s] Wrong value for ComplexExtension: got: %s want: %s\n", test.name, ext, want) + } + } +} + +func TestClearAllExtensions(t *testing.T) { + // unregistered extension + desc := &proto.ExtensionDesc{ + ExtendedType: (*pb.MyMessage)(nil), + ExtensionType: (*bool)(nil), + Field: 101010100, + Name: "emptyextension", + Tag: "varint,0,opt", + } + m := &pb.MyMessage{} + if proto.HasExtension(m, desc) { + t.Errorf("proto.HasExtension(%s): got true, want false", proto.MarshalTextString(m)) + } + if err := proto.SetExtension(m, desc, proto.Bool(true)); err != nil { + t.Errorf("proto.SetExtension(m, desc, true): got error %q, want nil", err) + } + if !proto.HasExtension(m, desc) { + t.Errorf("proto.HasExtension(%s): got false, want true", proto.MarshalTextString(m)) + } + proto.ClearAllExtensions(m) + if proto.HasExtension(m, desc) { + t.Errorf("proto.HasExtension(%s): got true, want false", proto.MarshalTextString(m)) + } +} diff --git a/vendor/github.com/golang/protobuf/proto/lib.go b/vendor/github.com/golang/protobuf/proto/lib.go new file mode 100644 index 00000000..170b8e87 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/lib.go @@ -0,0 +1,898 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package proto converts data structures to and from the wire format of +protocol buffers. It works in concert with the Go source code generated +for .proto files by the protocol compiler. + +A summary of the properties of the protocol buffer interface +for a protocol buffer variable v: + + - Names are turned from camel_case to CamelCase for export. + - There are no methods on v to set fields; just treat + them as structure fields. + - There are getters that return a field's value if set, + and return the field's default value if unset. + The getters work even if the receiver is a nil message. + - The zero value for a struct is its correct initialization state. + All desired fields must be set before marshaling. + - A Reset() method will restore a protobuf struct to its zero state. + - Non-repeated fields are pointers to the values; nil means unset. + That is, optional or required field int32 f becomes F *int32. + - Repeated fields are slices. + - Helper functions are available to aid the setting of fields. + msg.Foo = proto.String("hello") // set field + - Constants are defined to hold the default values of all fields that + have them. They have the form Default_StructName_FieldName. + Because the getter methods handle defaulted values, + direct use of these constants should be rare. + - Enums are given type names and maps from names to values. + Enum values are prefixed by the enclosing message's name, or by the + enum's type name if it is a top-level enum. Enum types have a String + method, and a Enum method to assist in message construction. + - Nested messages, groups and enums have type names prefixed with the name of + the surrounding message type. + - Extensions are given descriptor names that start with E_, + followed by an underscore-delimited list of the nested messages + that contain it (if any) followed by the CamelCased name of the + extension field itself. HasExtension, ClearExtension, GetExtension + and SetExtension are functions for manipulating extensions. + - Oneof field sets are given a single field in their message, + with distinguished wrapper types for each possible field value. + - Marshal and Unmarshal are functions to encode and decode the wire format. + +When the .proto file specifies `syntax="proto3"`, there are some differences: + + - Non-repeated fields of non-message type are values instead of pointers. + - Getters are only generated for message and oneof fields. + - Enum types do not get an Enum method. + +The simplest way to describe this is to see an example. +Given file test.proto, containing + + package example; + + enum FOO { X = 17; } + + message Test { + required string label = 1; + optional int32 type = 2 [default=77]; + repeated int64 reps = 3; + optional group OptionalGroup = 4 { + required string RequiredField = 5; + } + oneof union { + int32 number = 6; + string name = 7; + } + } + +The resulting file, test.pb.go, is: + + package example + + import proto "github.com/golang/protobuf/proto" + import math "math" + + type FOO int32 + const ( + FOO_X FOO = 17 + ) + var FOO_name = map[int32]string{ + 17: "X", + } + var FOO_value = map[string]int32{ + "X": 17, + } + + func (x FOO) Enum() *FOO { + p := new(FOO) + *p = x + return p + } + func (x FOO) String() string { + return proto.EnumName(FOO_name, int32(x)) + } + func (x *FOO) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FOO_value, data) + if err != nil { + return err + } + *x = FOO(value) + return nil + } + + type Test struct { + Label *string `protobuf:"bytes,1,req,name=label" json:"label,omitempty"` + Type *int32 `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"` + Reps []int64 `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"` + Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` + // Types that are valid to be assigned to Union: + // *Test_Number + // *Test_Name + Union isTest_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` + } + func (m *Test) Reset() { *m = Test{} } + func (m *Test) String() string { return proto.CompactTextString(m) } + func (*Test) ProtoMessage() {} + + type isTest_Union interface { + isTest_Union() + } + + type Test_Number struct { + Number int32 `protobuf:"varint,6,opt,name=number"` + } + type Test_Name struct { + Name string `protobuf:"bytes,7,opt,name=name"` + } + + func (*Test_Number) isTest_Union() {} + func (*Test_Name) isTest_Union() {} + + func (m *Test) GetUnion() isTest_Union { + if m != nil { + return m.Union + } + return nil + } + const Default_Test_Type int32 = 77 + + func (m *Test) GetLabel() string { + if m != nil && m.Label != nil { + return *m.Label + } + return "" + } + + func (m *Test) GetType() int32 { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_Test_Type + } + + func (m *Test) GetOptionalgroup() *Test_OptionalGroup { + if m != nil { + return m.Optionalgroup + } + return nil + } + + type Test_OptionalGroup struct { + RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"` + } + func (m *Test_OptionalGroup) Reset() { *m = Test_OptionalGroup{} } + func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) } + + func (m *Test_OptionalGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" + } + + func (m *Test) GetNumber() int32 { + if x, ok := m.GetUnion().(*Test_Number); ok { + return x.Number + } + return 0 + } + + func (m *Test) GetName() string { + if x, ok := m.GetUnion().(*Test_Name); ok { + return x.Name + } + return "" + } + + func init() { + proto.RegisterEnum("example.FOO", FOO_name, FOO_value) + } + +To create and play with a Test object: + + package main + + import ( + "log" + + "github.com/golang/protobuf/proto" + pb "./example.pb" + ) + + func main() { + test := &pb.Test{ + Label: proto.String("hello"), + Type: proto.Int32(17), + Reps: []int64{1, 2, 3}, + Optionalgroup: &pb.Test_OptionalGroup{ + RequiredField: proto.String("good bye"), + }, + Union: &pb.Test_Name{"fred"}, + } + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + newTest := &pb.Test{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } + // Now test and newTest contain the same data. + if test.GetLabel() != newTest.GetLabel() { + log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) + } + // Use a type switch to determine which oneof was set. + switch u := test.Union.(type) { + case *pb.Test_Number: // u.Number contains the number. + case *pb.Test_Name: // u.Name contains the string. + } + // etc. + } +*/ +package proto + +import ( + "encoding/json" + "fmt" + "log" + "reflect" + "sort" + "strconv" + "sync" +) + +// Message is implemented by generated protocol buffer messages. +type Message interface { + Reset() + String() string + ProtoMessage() +} + +// Stats records allocation details about the protocol buffer encoders +// and decoders. Useful for tuning the library itself. +type Stats struct { + Emalloc uint64 // mallocs in encode + Dmalloc uint64 // mallocs in decode + Encode uint64 // number of encodes + Decode uint64 // number of decodes + Chit uint64 // number of cache hits + Cmiss uint64 // number of cache misses + Size uint64 // number of sizes +} + +// Set to true to enable stats collection. +const collectStats = false + +var stats Stats + +// GetStats returns a copy of the global Stats structure. +func GetStats() Stats { return stats } + +// A Buffer is a buffer manager for marshaling and unmarshaling +// protocol buffers. It may be reused between invocations to +// reduce memory usage. It is not necessary to use a Buffer; +// the global functions Marshal and Unmarshal create a +// temporary Buffer and are fine for most applications. +type Buffer struct { + buf []byte // encode/decode byte stream + index int // write point + + // pools of basic types to amortize allocation. + bools []bool + uint32s []uint32 + uint64s []uint64 + + // extra pools, only used with pointer_reflect.go + int32s []int32 + int64s []int64 + float32s []float32 + float64s []float64 +} + +// NewBuffer allocates a new Buffer and initializes its internal data to +// the contents of the argument slice. +func NewBuffer(e []byte) *Buffer { + return &Buffer{buf: e} +} + +// Reset resets the Buffer, ready for marshaling a new protocol buffer. +func (p *Buffer) Reset() { + p.buf = p.buf[0:0] // for reading/writing + p.index = 0 // for reading +} + +// SetBuf replaces the internal buffer with the slice, +// ready for unmarshaling the contents of the slice. +func (p *Buffer) SetBuf(s []byte) { + p.buf = s + p.index = 0 +} + +// Bytes returns the contents of the Buffer. +func (p *Buffer) Bytes() []byte { return p.buf } + +/* + * Helper routines for simplifying the creation of optional fields of basic type. + */ + +// Bool is a helper routine that allocates a new bool value +// to store v and returns a pointer to it. +func Bool(v bool) *bool { + return &v +} + +// Int32 is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it. +func Int32(v int32) *int32 { + return &v +} + +// Int is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it, but unlike Int32 +// its argument value is an int. +func Int(v int) *int32 { + p := new(int32) + *p = int32(v) + return p +} + +// Int64 is a helper routine that allocates a new int64 value +// to store v and returns a pointer to it. +func Int64(v int64) *int64 { + return &v +} + +// Float32 is a helper routine that allocates a new float32 value +// to store v and returns a pointer to it. +func Float32(v float32) *float32 { + return &v +} + +// Float64 is a helper routine that allocates a new float64 value +// to store v and returns a pointer to it. +func Float64(v float64) *float64 { + return &v +} + +// Uint32 is a helper routine that allocates a new uint32 value +// to store v and returns a pointer to it. +func Uint32(v uint32) *uint32 { + return &v +} + +// Uint64 is a helper routine that allocates a new uint64 value +// to store v and returns a pointer to it. +func Uint64(v uint64) *uint64 { + return &v +} + +// String is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func String(v string) *string { + return &v +} + +// EnumName is a helper function to simplify printing protocol buffer enums +// by name. Given an enum map and a value, it returns a useful string. +func EnumName(m map[int32]string, v int32) string { + s, ok := m[v] + if ok { + return s + } + return strconv.Itoa(int(v)) +} + +// UnmarshalJSONEnum is a helper function to simplify recovering enum int values +// from their JSON-encoded representation. Given a map from the enum's symbolic +// names to its int values, and a byte buffer containing the JSON-encoded +// value, it returns an int32 that can be cast to the enum type by the caller. +// +// The function can deal with both JSON representations, numeric and symbolic. +func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { + if data[0] == '"' { + // New style: enums are strings. + var repr string + if err := json.Unmarshal(data, &repr); err != nil { + return -1, err + } + val, ok := m[repr] + if !ok { + return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) + } + return val, nil + } + // Old style: enums are ints. + var val int32 + if err := json.Unmarshal(data, &val); err != nil { + return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) + } + return val, nil +} + +// DebugPrint dumps the encoded data in b in a debugging format with a header +// including the string s. Used in testing but made available for general debugging. +func (p *Buffer) DebugPrint(s string, b []byte) { + var u uint64 + + obuf := p.buf + index := p.index + p.buf = b + p.index = 0 + depth := 0 + + fmt.Printf("\n--- %s ---\n", s) + +out: + for { + for i := 0; i < depth; i++ { + fmt.Print(" ") + } + + index := p.index + if index == len(p.buf) { + break + } + + op, err := p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: fetching op err %v\n", index, err) + break out + } + tag := op >> 3 + wire := op & 7 + + switch wire { + default: + fmt.Printf("%3d: t=%3d unknown wire=%d\n", + index, tag, wire) + break out + + case WireBytes: + var r []byte + + r, err = p.DecodeRawBytes(false) + if err != nil { + break out + } + fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r)) + if len(r) <= 6 { + for i := 0; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } else { + for i := 0; i < 3; i++ { + fmt.Printf(" %.2x", r[i]) + } + fmt.Printf(" ..") + for i := len(r) - 3; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } + fmt.Printf("\n") + + case WireFixed32: + u, err = p.DecodeFixed32() + if err != nil { + fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u) + + case WireFixed64: + u, err = p.DecodeFixed64() + if err != nil { + fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u) + + case WireVarint: + u, err = p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u) + + case WireStartGroup: + fmt.Printf("%3d: t=%3d start\n", index, tag) + depth++ + + case WireEndGroup: + depth-- + fmt.Printf("%3d: t=%3d end\n", index, tag) + } + } + + if depth != 0 { + fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth) + } + fmt.Printf("\n") + + p.buf = obuf + p.index = index +} + +// SetDefaults sets unset protocol buffer fields to their default values. +// It only modifies fields that are both unset and have defined defaults. +// It recursively sets default values in any non-nil sub-messages. +func SetDefaults(pb Message) { + setDefaults(reflect.ValueOf(pb), true, false) +} + +// v is a pointer to a struct. +func setDefaults(v reflect.Value, recur, zeros bool) { + v = v.Elem() + + defaultMu.RLock() + dm, ok := defaults[v.Type()] + defaultMu.RUnlock() + if !ok { + dm = buildDefaultMessage(v.Type()) + defaultMu.Lock() + defaults[v.Type()] = dm + defaultMu.Unlock() + } + + for _, sf := range dm.scalars { + f := v.Field(sf.index) + if !f.IsNil() { + // field already set + continue + } + dv := sf.value + if dv == nil && !zeros { + // no explicit default, and don't want to set zeros + continue + } + fptr := f.Addr().Interface() // **T + // TODO: Consider batching the allocations we do here. + switch sf.kind { + case reflect.Bool: + b := new(bool) + if dv != nil { + *b = dv.(bool) + } + *(fptr.(**bool)) = b + case reflect.Float32: + f := new(float32) + if dv != nil { + *f = dv.(float32) + } + *(fptr.(**float32)) = f + case reflect.Float64: + f := new(float64) + if dv != nil { + *f = dv.(float64) + } + *(fptr.(**float64)) = f + case reflect.Int32: + // might be an enum + if ft := f.Type(); ft != int32PtrType { + // enum + f.Set(reflect.New(ft.Elem())) + if dv != nil { + f.Elem().SetInt(int64(dv.(int32))) + } + } else { + // int32 field + i := new(int32) + if dv != nil { + *i = dv.(int32) + } + *(fptr.(**int32)) = i + } + case reflect.Int64: + i := new(int64) + if dv != nil { + *i = dv.(int64) + } + *(fptr.(**int64)) = i + case reflect.String: + s := new(string) + if dv != nil { + *s = dv.(string) + } + *(fptr.(**string)) = s + case reflect.Uint8: + // exceptional case: []byte + var b []byte + if dv != nil { + db := dv.([]byte) + b = make([]byte, len(db)) + copy(b, db) + } else { + b = []byte{} + } + *(fptr.(*[]byte)) = b + case reflect.Uint32: + u := new(uint32) + if dv != nil { + *u = dv.(uint32) + } + *(fptr.(**uint32)) = u + case reflect.Uint64: + u := new(uint64) + if dv != nil { + *u = dv.(uint64) + } + *(fptr.(**uint64)) = u + default: + log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind) + } + } + + for _, ni := range dm.nested { + f := v.Field(ni) + // f is *T or []*T or map[T]*T + switch f.Kind() { + case reflect.Ptr: + if f.IsNil() { + continue + } + setDefaults(f, recur, zeros) + + case reflect.Slice: + for i := 0; i < f.Len(); i++ { + e := f.Index(i) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + + case reflect.Map: + for _, k := range f.MapKeys() { + e := f.MapIndex(k) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + } + } +} + +var ( + // defaults maps a protocol buffer struct type to a slice of the fields, + // with its scalar fields set to their proto-declared non-zero default values. + defaultMu sync.RWMutex + defaults = make(map[reflect.Type]defaultMessage) + + int32PtrType = reflect.TypeOf((*int32)(nil)) +) + +// defaultMessage represents information about the default values of a message. +type defaultMessage struct { + scalars []scalarField + nested []int // struct field index of nested messages +} + +type scalarField struct { + index int // struct field index + kind reflect.Kind // element type (the T in *T or []T) + value interface{} // the proto-declared default value, or nil +} + +// t is a struct type. +func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { + sprop := GetProperties(t) + for _, prop := range sprop.Prop { + fi, ok := sprop.decoderTags.get(prop.Tag) + if !ok { + // XXX_unrecognized + continue + } + ft := t.Field(fi).Type + + sf, nested, err := fieldDefault(ft, prop) + switch { + case err != nil: + log.Print(err) + case nested: + dm.nested = append(dm.nested, fi) + case sf != nil: + sf.index = fi + dm.scalars = append(dm.scalars, *sf) + } + } + + return dm +} + +// fieldDefault returns the scalarField for field type ft. +// sf will be nil if the field can not have a default. +// nestedMessage will be true if this is a nested message. +// Note that sf.index is not set on return. +func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { + var canHaveDefault bool + switch ft.Kind() { + case reflect.Ptr: + if ft.Elem().Kind() == reflect.Struct { + nestedMessage = true + } else { + canHaveDefault = true // proto2 scalar field + } + + case reflect.Slice: + switch ft.Elem().Kind() { + case reflect.Ptr: + nestedMessage = true // repeated message + case reflect.Uint8: + canHaveDefault = true // bytes field + } + + case reflect.Map: + if ft.Elem().Kind() == reflect.Ptr { + nestedMessage = true // map with message values + } + } + + if !canHaveDefault { + if nestedMessage { + return nil, true, nil + } + return nil, false, nil + } + + // We now know that ft is a pointer or slice. + sf = &scalarField{kind: ft.Elem().Kind()} + + // scalar fields without defaults + if !prop.HasDefault { + return sf, false, nil + } + + // a scalar field: either *T or []byte + switch ft.Elem().Kind() { + case reflect.Bool: + x, err := strconv.ParseBool(prop.Default) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Float32: + x, err := strconv.ParseFloat(prop.Default, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err) + } + sf.value = float32(x) + case reflect.Float64: + x, err := strconv.ParseFloat(prop.Default, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Int32: + x, err := strconv.ParseInt(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err) + } + sf.value = int32(x) + case reflect.Int64: + x, err := strconv.ParseInt(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.String: + sf.value = prop.Default + case reflect.Uint8: + // []byte (not *uint8) + sf.value = []byte(prop.Default) + case reflect.Uint32: + x, err := strconv.ParseUint(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err) + } + sf.value = uint32(x) + case reflect.Uint64: + x, err := strconv.ParseUint(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err) + } + sf.value = x + default: + return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind()) + } + + return sf, false, nil +} + +// Map fields may have key types of non-float scalars, strings and enums. +// The easiest way to sort them in some deterministic order is to use fmt. +// If this turns out to be inefficient we can always consider other options, +// such as doing a Schwartzian transform. + +func mapKeys(vs []reflect.Value) sort.Interface { + s := mapKeySorter{ + vs: vs, + // default Less function: textual comparison + less: func(a, b reflect.Value) bool { + return fmt.Sprint(a.Interface()) < fmt.Sprint(b.Interface()) + }, + } + + // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps; + // numeric keys are sorted numerically. + if len(vs) == 0 { + return s + } + switch vs[0].Kind() { + case reflect.Int32, reflect.Int64: + s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() } + case reflect.Uint32, reflect.Uint64: + s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() } + } + + return s +} + +type mapKeySorter struct { + vs []reflect.Value + less func(a, b reflect.Value) bool +} + +func (s mapKeySorter) Len() int { return len(s.vs) } +func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] } +func (s mapKeySorter) Less(i, j int) bool { + return s.less(s.vs[i], s.vs[j]) +} + +// isProto3Zero reports whether v is a zero proto3 value. +func isProto3Zero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return !v.Bool() + case reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint32, reflect.Uint64: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.String: + return v.String() == "" + } + return false +} + +// ProtoPackageIsVersion2 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const ProtoPackageIsVersion2 = true + +// ProtoPackageIsVersion1 is referenced from generated protocol buffer files +// to assert that that code is compatible with this version of the proto package. +const ProtoPackageIsVersion1 = true diff --git a/vendor/github.com/golang/protobuf/proto/message_set.go b/vendor/github.com/golang/protobuf/proto/message_set.go new file mode 100644 index 00000000..fd982dec --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/message_set.go @@ -0,0 +1,311 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Support for message sets. + */ + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "reflect" + "sort" +) + +// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID. +// A message type ID is required for storing a protocol buffer in a message set. +var errNoMessageTypeID = errors.New("proto does not have a message type ID") + +// The first two types (_MessageSet_Item and messageSet) +// model what the protocol compiler produces for the following protocol message: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } +// That is the MessageSet wire format. We can't use a proto to generate these +// because that would introduce a circular dependency between it and this package. + +type _MessageSet_Item struct { + TypeId *int32 `protobuf:"varint,2,req,name=type_id"` + Message []byte `protobuf:"bytes,3,req,name=message"` +} + +type messageSet struct { + Item []*_MessageSet_Item `protobuf:"group,1,rep"` + XXX_unrecognized []byte + // TODO: caching? +} + +// Make sure messageSet is a Message. +var _ Message = (*messageSet)(nil) + +// messageTypeIder is an interface satisfied by a protocol buffer type +// that may be stored in a MessageSet. +type messageTypeIder interface { + MessageTypeId() int32 +} + +func (ms *messageSet) find(pb Message) *_MessageSet_Item { + mti, ok := pb.(messageTypeIder) + if !ok { + return nil + } + id := mti.MessageTypeId() + for _, item := range ms.Item { + if *item.TypeId == id { + return item + } + } + return nil +} + +func (ms *messageSet) Has(pb Message) bool { + if ms.find(pb) != nil { + return true + } + return false +} + +func (ms *messageSet) Unmarshal(pb Message) error { + if item := ms.find(pb); item != nil { + return Unmarshal(item.Message, pb) + } + if _, ok := pb.(messageTypeIder); !ok { + return errNoMessageTypeID + } + return nil // TODO: return error instead? +} + +func (ms *messageSet) Marshal(pb Message) error { + msg, err := Marshal(pb) + if err != nil { + return err + } + if item := ms.find(pb); item != nil { + // reuse existing item + item.Message = msg + return nil + } + + mti, ok := pb.(messageTypeIder) + if !ok { + return errNoMessageTypeID + } + + mtid := mti.MessageTypeId() + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: &mtid, + Message: msg, + }) + return nil +} + +func (ms *messageSet) Reset() { *ms = messageSet{} } +func (ms *messageSet) String() string { return CompactTextString(ms) } +func (*messageSet) ProtoMessage() {} + +// Support for the message_set_wire_format message option. + +func skipVarint(buf []byte) []byte { + i := 0 + for ; buf[i]&0x80 != 0; i++ { + } + return buf[i+1:] +} + +// MarshalMessageSet encodes the extension map represented by m in the message set wire format. +// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option. +func MarshalMessageSet(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + if err := encodeExtensions(exts); err != nil { + return nil, err + } + m, _ = exts.extensionsRead() + case map[int32]Extension: + if err := encodeExtensionsMap(exts); err != nil { + return nil, err + } + m = exts + default: + return nil, errors.New("proto: not an extension map") + } + + // Sort extension IDs to provide a deterministic encoding. + // See also enc_map in encode.go. + ids := make([]int, 0, len(m)) + for id := range m { + ids = append(ids, int(id)) + } + sort.Ints(ids) + + ms := &messageSet{Item: make([]*_MessageSet_Item, 0, len(m))} + for _, id := range ids { + e := m[int32(id)] + // Remove the wire type and field number varint, as well as the length varint. + msg := skipVarint(skipVarint(e.enc)) + + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: Int32(int32(id)), + Message: msg, + }) + } + return Marshal(ms) +} + +// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. +// It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option. +func UnmarshalMessageSet(buf []byte, exts interface{}) error { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m = exts.extensionsWrite() + case map[int32]Extension: + m = exts + default: + return errors.New("proto: not an extension map") + } + + ms := new(messageSet) + if err := Unmarshal(buf, ms); err != nil { + return err + } + for _, item := range ms.Item { + id := *item.TypeId + msg := item.Message + + // Restore wire type and field number varint, plus length varint. + // Be careful to preserve duplicate items. + b := EncodeVarint(uint64(id)<<3 | WireBytes) + if ext, ok := m[id]; ok { + // Existing data; rip off the tag and length varint + // so we join the new data correctly. + // We can assume that ext.enc is set because we are unmarshaling. + o := ext.enc[len(b):] // skip wire type and field number + _, n := DecodeVarint(o) // calculate length of length varint + o = o[n:] // skip length varint + msg = append(o, msg...) // join old data and new data + } + b = append(b, EncodeVarint(uint64(len(msg)))...) + b = append(b, msg...) + + m[id] = Extension{enc: b} + } + return nil +} + +// MarshalMessageSetJSON encodes the extension map represented by m in JSON format. +// It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option. +func MarshalMessageSetJSON(exts interface{}) ([]byte, error) { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m, _ = exts.extensionsRead() + case map[int32]Extension: + m = exts + default: + return nil, errors.New("proto: not an extension map") + } + var b bytes.Buffer + b.WriteByte('{') + + // Process the map in key order for deterministic output. + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) // int32Slice defined in text.go + + for i, id := range ids { + ext := m[id] + if i > 0 { + b.WriteByte(',') + } + + msd, ok := messageSetMap[id] + if !ok { + // Unknown type; we can't render it, so skip it. + continue + } + fmt.Fprintf(&b, `"[%s]":`, msd.name) + + x := ext.value + if x == nil { + x = reflect.New(msd.t.Elem()).Interface() + if err := Unmarshal(ext.enc, x.(Message)); err != nil { + return nil, err + } + } + d, err := json.Marshal(x) + if err != nil { + return nil, err + } + b.Write(d) + } + b.WriteByte('}') + return b.Bytes(), nil +} + +// UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format. +// It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option. +func UnmarshalMessageSetJSON(buf []byte, exts interface{}) error { + // Common-case fast path. + if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) { + return nil + } + + // This is fairly tricky, and it's not clear that it is needed. + return errors.New("TODO: UnmarshalMessageSetJSON not yet implemented") +} + +// A global registry of types that can be used in a MessageSet. + +var messageSetMap = make(map[int32]messageSetDesc) + +type messageSetDesc struct { + t reflect.Type // pointer to struct + name string +} + +// RegisterMessageSetType is called from the generated code. +func RegisterMessageSetType(m Message, fieldNum int32, name string) { + messageSetMap[fieldNum] = messageSetDesc{ + t: reflect.TypeOf(m), + name: name, + } +} diff --git a/vendor/github.com/golang/protobuf/proto/message_set_test.go b/vendor/github.com/golang/protobuf/proto/message_set_test.go new file mode 100644 index 00000000..353a3ea7 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/message_set_test.go @@ -0,0 +1,66 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2014 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "bytes" + "testing" +) + +func TestUnmarshalMessageSetWithDuplicate(t *testing.T) { + // Check that a repeated message set entry will be concatenated. + in := &messageSet{ + Item: []*_MessageSet_Item{ + {TypeId: Int32(12345), Message: []byte("hoo")}, + {TypeId: Int32(12345), Message: []byte("hah")}, + }, + } + b, err := Marshal(in) + if err != nil { + t.Fatalf("Marshal: %v", err) + } + t.Logf("Marshaled bytes: %q", b) + + var extensions XXX_InternalExtensions + if err := UnmarshalMessageSet(b, &extensions); err != nil { + t.Fatalf("UnmarshalMessageSet: %v", err) + } + ext, ok := extensions.p.extensionMap[12345] + if !ok { + t.Fatalf("Didn't retrieve extension 12345; map is %v", extensions.p.extensionMap) + } + // Skip wire type/field number and length varints. + got := skipVarint(skipVarint(ext.enc)) + if want := []byte("hoohah"); !bytes.Equal(got, want) { + t.Errorf("Combined extension is %q, want %q", got, want) + } +} diff --git a/vendor/github.com/golang/protobuf/proto/pointer_reflect.go b/vendor/github.com/golang/protobuf/proto/pointer_reflect.go new file mode 100644 index 00000000..fb512e2e --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/pointer_reflect.go @@ -0,0 +1,484 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// +build appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "math" + "reflect" +) + +// A structPointer is a pointer to a struct. +type structPointer struct { + v reflect.Value +} + +// toStructPointer returns a structPointer equivalent to the given reflect value. +// The reflect value must itself be a pointer to a struct. +func toStructPointer(v reflect.Value) structPointer { + return structPointer{v} +} + +// IsNil reports whether p is nil. +func structPointer_IsNil(p structPointer) bool { + return p.v.IsNil() +} + +// Interface returns the struct pointer as an interface value. +func structPointer_Interface(p structPointer, _ reflect.Type) interface{} { + return p.v.Interface() +} + +// A field identifies a field in a struct, accessible from a structPointer. +// In this implementation, a field is identified by the sequence of field indices +// passed to reflect's FieldByIndex. +type field []int + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return f.Index +} + +// invalidField is an invalid field identifier. +var invalidField = field(nil) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { return f != nil } + +// field returns the given field in the struct as a reflect value. +func structPointer_field(p structPointer, f field) reflect.Value { + // Special case: an extension map entry with a value of type T + // passes a *T to the struct-handling code with a zero field, + // expecting that it will be treated as equivalent to *struct{ X T }, + // which has the same memory layout. We have to handle that case + // specially, because reflect will panic if we call FieldByIndex on a + // non-struct. + if f == nil { + return p.v.Elem() + } + + return p.v.Elem().FieldByIndex(f) +} + +// ifield returns the given field in the struct as an interface value. +func structPointer_ifield(p structPointer, f field) interface{} { + return structPointer_field(p, f).Addr().Interface() +} + +// Bytes returns the address of a []byte field in the struct. +func structPointer_Bytes(p structPointer, f field) *[]byte { + return structPointer_ifield(p, f).(*[]byte) +} + +// BytesSlice returns the address of a [][]byte field in the struct. +func structPointer_BytesSlice(p structPointer, f field) *[][]byte { + return structPointer_ifield(p, f).(*[][]byte) +} + +// Bool returns the address of a *bool field in the struct. +func structPointer_Bool(p structPointer, f field) **bool { + return structPointer_ifield(p, f).(**bool) +} + +// BoolVal returns the address of a bool field in the struct. +func structPointer_BoolVal(p structPointer, f field) *bool { + return structPointer_ifield(p, f).(*bool) +} + +// BoolSlice returns the address of a []bool field in the struct. +func structPointer_BoolSlice(p structPointer, f field) *[]bool { + return structPointer_ifield(p, f).(*[]bool) +} + +// String returns the address of a *string field in the struct. +func structPointer_String(p structPointer, f field) **string { + return structPointer_ifield(p, f).(**string) +} + +// StringVal returns the address of a string field in the struct. +func structPointer_StringVal(p structPointer, f field) *string { + return structPointer_ifield(p, f).(*string) +} + +// StringSlice returns the address of a []string field in the struct. +func structPointer_StringSlice(p structPointer, f field) *[]string { + return structPointer_ifield(p, f).(*[]string) +} + +// Extensions returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return structPointer_ifield(p, f).(*XXX_InternalExtensions) +} + +// ExtMap returns the address of an extension map field in the struct. +func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { + return structPointer_ifield(p, f).(*map[int32]Extension) +} + +// NewAt returns the reflect.Value for a pointer to a field in the struct. +func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { + return structPointer_field(p, f).Addr() +} + +// SetStructPointer writes a *struct field in the struct. +func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { + structPointer_field(p, f).Set(q.v) +} + +// GetStructPointer reads a *struct field in the struct. +func structPointer_GetStructPointer(p structPointer, f field) structPointer { + return structPointer{structPointer_field(p, f)} +} + +// StructPointerSlice the address of a []*struct field in the struct. +func structPointer_StructPointerSlice(p structPointer, f field) structPointerSlice { + return structPointerSlice{structPointer_field(p, f)} +} + +// A structPointerSlice represents the address of a slice of pointers to structs +// (themselves messages or groups). That is, v.Type() is *[]*struct{...}. +type structPointerSlice struct { + v reflect.Value +} + +func (p structPointerSlice) Len() int { return p.v.Len() } +func (p structPointerSlice) Index(i int) structPointer { return structPointer{p.v.Index(i)} } +func (p structPointerSlice) Append(q structPointer) { + p.v.Set(reflect.Append(p.v, q.v)) +} + +var ( + int32Type = reflect.TypeOf(int32(0)) + uint32Type = reflect.TypeOf(uint32(0)) + float32Type = reflect.TypeOf(float32(0)) + int64Type = reflect.TypeOf(int64(0)) + uint64Type = reflect.TypeOf(uint64(0)) + float64Type = reflect.TypeOf(float64(0)) +) + +// A word32 represents a field of type *int32, *uint32, *float32, or *enum. +// That is, v.Type() is *int32, *uint32, *float32, or *enum and v is assignable. +type word32 struct { + v reflect.Value +} + +// IsNil reports whether p is nil. +func word32_IsNil(p word32) bool { + return p.v.IsNil() +} + +// Set sets p to point at a newly allocated word with bits set to x. +func word32_Set(p word32, o *Buffer, x uint32) { + t := p.v.Type().Elem() + switch t { + case int32Type: + if len(o.int32s) == 0 { + o.int32s = make([]int32, uint32PoolSize) + } + o.int32s[0] = int32(x) + p.v.Set(reflect.ValueOf(&o.int32s[0])) + o.int32s = o.int32s[1:] + return + case uint32Type: + if len(o.uint32s) == 0 { + o.uint32s = make([]uint32, uint32PoolSize) + } + o.uint32s[0] = x + p.v.Set(reflect.ValueOf(&o.uint32s[0])) + o.uint32s = o.uint32s[1:] + return + case float32Type: + if len(o.float32s) == 0 { + o.float32s = make([]float32, uint32PoolSize) + } + o.float32s[0] = math.Float32frombits(x) + p.v.Set(reflect.ValueOf(&o.float32s[0])) + o.float32s = o.float32s[1:] + return + } + + // must be enum + p.v.Set(reflect.New(t)) + p.v.Elem().SetInt(int64(int32(x))) +} + +// Get gets the bits pointed at by p, as a uint32. +func word32_Get(p word32) uint32 { + elem := p.v.Elem() + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32 returns a reference to a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32(p structPointer, f field) word32 { + return word32{structPointer_field(p, f)} +} + +// A word32Val represents a field of type int32, uint32, float32, or enum. +// That is, v.Type() is int32, uint32, float32, or enum and v is assignable. +type word32Val struct { + v reflect.Value +} + +// Set sets *p to x. +func word32Val_Set(p word32Val, x uint32) { + switch p.v.Type() { + case int32Type: + p.v.SetInt(int64(x)) + return + case uint32Type: + p.v.SetUint(uint64(x)) + return + case float32Type: + p.v.SetFloat(float64(math.Float32frombits(x))) + return + } + + // must be enum + p.v.SetInt(int64(int32(x))) +} + +// Get gets the bits pointed at by p, as a uint32. +func word32Val_Get(p word32Val) uint32 { + elem := p.v + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32Val returns a reference to a int32, uint32, float32, or enum field in the struct. +func structPointer_Word32Val(p structPointer, f field) word32Val { + return word32Val{structPointer_field(p, f)} +} + +// A word32Slice is a slice of 32-bit values. +// That is, v.Type() is []int32, []uint32, []float32, or []enum. +type word32Slice struct { + v reflect.Value +} + +func (p word32Slice) Append(x uint32) { + n, m := p.v.Len(), p.v.Cap() + if n < m { + p.v.SetLen(n + 1) + } else { + t := p.v.Type().Elem() + p.v.Set(reflect.Append(p.v, reflect.Zero(t))) + } + elem := p.v.Index(n) + switch elem.Kind() { + case reflect.Int32: + elem.SetInt(int64(int32(x))) + case reflect.Uint32: + elem.SetUint(uint64(x)) + case reflect.Float32: + elem.SetFloat(float64(math.Float32frombits(x))) + } +} + +func (p word32Slice) Len() int { + return p.v.Len() +} + +func (p word32Slice) Index(i int) uint32 { + elem := p.v.Index(i) + switch elem.Kind() { + case reflect.Int32: + return uint32(elem.Int()) + case reflect.Uint32: + return uint32(elem.Uint()) + case reflect.Float32: + return math.Float32bits(float32(elem.Float())) + } + panic("unreachable") +} + +// Word32Slice returns a reference to a []int32, []uint32, []float32, or []enum field in the struct. +func structPointer_Word32Slice(p structPointer, f field) word32Slice { + return word32Slice{structPointer_field(p, f)} +} + +// word64 is like word32 but for 64-bit values. +type word64 struct { + v reflect.Value +} + +func word64_Set(p word64, o *Buffer, x uint64) { + t := p.v.Type().Elem() + switch t { + case int64Type: + if len(o.int64s) == 0 { + o.int64s = make([]int64, uint64PoolSize) + } + o.int64s[0] = int64(x) + p.v.Set(reflect.ValueOf(&o.int64s[0])) + o.int64s = o.int64s[1:] + return + case uint64Type: + if len(o.uint64s) == 0 { + o.uint64s = make([]uint64, uint64PoolSize) + } + o.uint64s[0] = x + p.v.Set(reflect.ValueOf(&o.uint64s[0])) + o.uint64s = o.uint64s[1:] + return + case float64Type: + if len(o.float64s) == 0 { + o.float64s = make([]float64, uint64PoolSize) + } + o.float64s[0] = math.Float64frombits(x) + p.v.Set(reflect.ValueOf(&o.float64s[0])) + o.float64s = o.float64s[1:] + return + } + panic("unreachable") +} + +func word64_IsNil(p word64) bool { + return p.v.IsNil() +} + +func word64_Get(p word64) uint64 { + elem := p.v.Elem() + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return elem.Uint() + case reflect.Float64: + return math.Float64bits(elem.Float()) + } + panic("unreachable") +} + +func structPointer_Word64(p structPointer, f field) word64 { + return word64{structPointer_field(p, f)} +} + +// word64Val is like word32Val but for 64-bit values. +type word64Val struct { + v reflect.Value +} + +func word64Val_Set(p word64Val, o *Buffer, x uint64) { + switch p.v.Type() { + case int64Type: + p.v.SetInt(int64(x)) + return + case uint64Type: + p.v.SetUint(x) + return + case float64Type: + p.v.SetFloat(math.Float64frombits(x)) + return + } + panic("unreachable") +} + +func word64Val_Get(p word64Val) uint64 { + elem := p.v + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return elem.Uint() + case reflect.Float64: + return math.Float64bits(elem.Float()) + } + panic("unreachable") +} + +func structPointer_Word64Val(p structPointer, f field) word64Val { + return word64Val{structPointer_field(p, f)} +} + +type word64Slice struct { + v reflect.Value +} + +func (p word64Slice) Append(x uint64) { + n, m := p.v.Len(), p.v.Cap() + if n < m { + p.v.SetLen(n + 1) + } else { + t := p.v.Type().Elem() + p.v.Set(reflect.Append(p.v, reflect.Zero(t))) + } + elem := p.v.Index(n) + switch elem.Kind() { + case reflect.Int64: + elem.SetInt(int64(int64(x))) + case reflect.Uint64: + elem.SetUint(uint64(x)) + case reflect.Float64: + elem.SetFloat(float64(math.Float64frombits(x))) + } +} + +func (p word64Slice) Len() int { + return p.v.Len() +} + +func (p word64Slice) Index(i int) uint64 { + elem := p.v.Index(i) + switch elem.Kind() { + case reflect.Int64: + return uint64(elem.Int()) + case reflect.Uint64: + return uint64(elem.Uint()) + case reflect.Float64: + return math.Float64bits(float64(elem.Float())) + } + panic("unreachable") +} + +func structPointer_Word64Slice(p structPointer, f field) word64Slice { + return word64Slice{structPointer_field(p, f)} +} diff --git a/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go b/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go new file mode 100644 index 00000000..6b5567d4 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/pointer_unsafe.go @@ -0,0 +1,270 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// +build !appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "unsafe" +) + +// NOTE: These type_Foo functions would more idiomatically be methods, +// but Go does not allow methods on pointer types, and we must preserve +// some pointer type for the garbage collector. We use these +// funcs with clunky names as our poor approximation to methods. +// +// An alternative would be +// type structPointer struct { p unsafe.Pointer } +// but that does not registerize as well. + +// A structPointer is a pointer to a struct. +type structPointer unsafe.Pointer + +// toStructPointer returns a structPointer equivalent to the given reflect value. +func toStructPointer(v reflect.Value) structPointer { + return structPointer(unsafe.Pointer(v.Pointer())) +} + +// IsNil reports whether p is nil. +func structPointer_IsNil(p structPointer) bool { + return p == nil +} + +// Interface returns the struct pointer, assumed to have element type t, +// as an interface value. +func structPointer_Interface(p structPointer, t reflect.Type) interface{} { + return reflect.NewAt(t, unsafe.Pointer(p)).Interface() +} + +// A field identifies a field in a struct, accessible from a structPointer. +// In this implementation, a field is identified by its byte offset from the start of the struct. +type field uintptr + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return field(f.Offset) +} + +// invalidField is an invalid field identifier. +const invalidField = ^field(0) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { + return f != ^field(0) +} + +// Bytes returns the address of a []byte field in the struct. +func structPointer_Bytes(p structPointer, f field) *[]byte { + return (*[]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BytesSlice returns the address of a [][]byte field in the struct. +func structPointer_BytesSlice(p structPointer, f field) *[][]byte { + return (*[][]byte)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// Bool returns the address of a *bool field in the struct. +func structPointer_Bool(p structPointer, f field) **bool { + return (**bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BoolVal returns the address of a bool field in the struct. +func structPointer_BoolVal(p structPointer, f field) *bool { + return (*bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// BoolSlice returns the address of a []bool field in the struct. +func structPointer_BoolSlice(p structPointer, f field) *[]bool { + return (*[]bool)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// String returns the address of a *string field in the struct. +func structPointer_String(p structPointer, f field) **string { + return (**string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StringVal returns the address of a string field in the struct. +func structPointer_StringVal(p structPointer, f field) *string { + return (*string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StringSlice returns the address of a []string field in the struct. +func structPointer_StringSlice(p structPointer, f field) *[]string { + return (*[]string)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// ExtMap returns the address of an extension map field in the struct. +func structPointer_Extensions(p structPointer, f field) *XXX_InternalExtensions { + return (*XXX_InternalExtensions)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +func structPointer_ExtMap(p structPointer, f field) *map[int32]Extension { + return (*map[int32]Extension)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// NewAt returns the reflect.Value for a pointer to a field in the struct. +func structPointer_NewAt(p structPointer, f field, typ reflect.Type) reflect.Value { + return reflect.NewAt(typ, unsafe.Pointer(uintptr(p)+uintptr(f))) +} + +// SetStructPointer writes a *struct field in the struct. +func structPointer_SetStructPointer(p structPointer, f field, q structPointer) { + *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) = q +} + +// GetStructPointer reads a *struct field in the struct. +func structPointer_GetStructPointer(p structPointer, f field) structPointer { + return *(*structPointer)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// StructPointerSlice the address of a []*struct field in the struct. +func structPointer_StructPointerSlice(p structPointer, f field) *structPointerSlice { + return (*structPointerSlice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// A structPointerSlice represents a slice of pointers to structs (themselves submessages or groups). +type structPointerSlice []structPointer + +func (v *structPointerSlice) Len() int { return len(*v) } +func (v *structPointerSlice) Index(i int) structPointer { return (*v)[i] } +func (v *structPointerSlice) Append(p structPointer) { *v = append(*v, p) } + +// A word32 is the address of a "pointer to 32-bit value" field. +type word32 **uint32 + +// IsNil reports whether *v is nil. +func word32_IsNil(p word32) bool { + return *p == nil +} + +// Set sets *v to point at a newly allocated word set to x. +func word32_Set(p word32, o *Buffer, x uint32) { + if len(o.uint32s) == 0 { + o.uint32s = make([]uint32, uint32PoolSize) + } + o.uint32s[0] = x + *p = &o.uint32s[0] + o.uint32s = o.uint32s[1:] +} + +// Get gets the value pointed at by *v. +func word32_Get(p word32) uint32 { + return **p +} + +// Word32 returns the address of a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32(p structPointer, f field) word32 { + return word32((**uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// A word32Val is the address of a 32-bit value field. +type word32Val *uint32 + +// Set sets *p to x. +func word32Val_Set(p word32Val, x uint32) { + *p = x +} + +// Get gets the value pointed at by p. +func word32Val_Get(p word32Val) uint32 { + return *p +} + +// Word32Val returns the address of a *int32, *uint32, *float32, or *enum field in the struct. +func structPointer_Word32Val(p structPointer, f field) word32Val { + return word32Val((*uint32)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// A word32Slice is a slice of 32-bit values. +type word32Slice []uint32 + +func (v *word32Slice) Append(x uint32) { *v = append(*v, x) } +func (v *word32Slice) Len() int { return len(*v) } +func (v *word32Slice) Index(i int) uint32 { return (*v)[i] } + +// Word32Slice returns the address of a []int32, []uint32, []float32, or []enum field in the struct. +func structPointer_Word32Slice(p structPointer, f field) *word32Slice { + return (*word32Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} + +// word64 is like word32 but for 64-bit values. +type word64 **uint64 + +func word64_Set(p word64, o *Buffer, x uint64) { + if len(o.uint64s) == 0 { + o.uint64s = make([]uint64, uint64PoolSize) + } + o.uint64s[0] = x + *p = &o.uint64s[0] + o.uint64s = o.uint64s[1:] +} + +func word64_IsNil(p word64) bool { + return *p == nil +} + +func word64_Get(p word64) uint64 { + return **p +} + +func structPointer_Word64(p structPointer, f field) word64 { + return word64((**uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// word64Val is like word32Val but for 64-bit values. +type word64Val *uint64 + +func word64Val_Set(p word64Val, o *Buffer, x uint64) { + *p = x +} + +func word64Val_Get(p word64Val) uint64 { + return *p +} + +func structPointer_Word64Val(p structPointer, f field) word64Val { + return word64Val((*uint64)(unsafe.Pointer(uintptr(p) + uintptr(f)))) +} + +// word64Slice is like word32Slice but for 64-bit values. +type word64Slice []uint64 + +func (v *word64Slice) Append(x uint64) { *v = append(*v, x) } +func (v *word64Slice) Len() int { return len(*v) } +func (v *word64Slice) Index(i int) uint64 { return (*v)[i] } + +func structPointer_Word64Slice(p structPointer, f field) *word64Slice { + return (*word64Slice)(unsafe.Pointer(uintptr(p) + uintptr(f))) +} diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go new file mode 100644 index 00000000..69ddda8d --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/properties.go @@ -0,0 +1,864 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "fmt" + "log" + "os" + "reflect" + "sort" + "strconv" + "strings" + "sync" +) + +const debug bool = false + +// Constants that identify the encoding of a value on the wire. +const ( + WireVarint = 0 + WireFixed64 = 1 + WireBytes = 2 + WireStartGroup = 3 + WireEndGroup = 4 + WireFixed32 = 5 +) + +const startSize = 10 // initial slice/string sizes + +// Encoders are defined in encode.go +// An encoder outputs the full representation of a field, including its +// tag and encoder type. +type encoder func(p *Buffer, prop *Properties, base structPointer) error + +// A valueEncoder encodes a single integer in a particular encoding. +type valueEncoder func(o *Buffer, x uint64) error + +// Sizers are defined in encode.go +// A sizer returns the encoded size of a field, including its tag and encoder +// type. +type sizer func(prop *Properties, base structPointer) int + +// A valueSizer returns the encoded size of a single integer in a particular +// encoding. +type valueSizer func(x uint64) int + +// Decoders are defined in decode.go +// A decoder creates a value from its wire representation. +// Unrecognized subelements are saved in unrec. +type decoder func(p *Buffer, prop *Properties, base structPointer) error + +// A valueDecoder decodes a single integer in a particular encoding. +type valueDecoder func(o *Buffer) (x uint64, err error) + +// A oneofMarshaler does the marshaling for all oneof fields in a message. +type oneofMarshaler func(Message, *Buffer) error + +// A oneofUnmarshaler does the unmarshaling for a oneof field in a message. +type oneofUnmarshaler func(Message, int, int, *Buffer) (bool, error) + +// A oneofSizer does the sizing for all oneof fields in a message. +type oneofSizer func(Message) int + +// tagMap is an optimization over map[int]int for typical protocol buffer +// use-cases. Encoded protocol buffers are often in tag order with small tag +// numbers. +type tagMap struct { + fastTags []int + slowTags map[int]int +} + +// tagMapFastLimit is the upper bound on the tag number that will be stored in +// the tagMap slice rather than its map. +const tagMapFastLimit = 1024 + +func (p *tagMap) get(t int) (int, bool) { + if t > 0 && t < tagMapFastLimit { + if t >= len(p.fastTags) { + return 0, false + } + fi := p.fastTags[t] + return fi, fi >= 0 + } + fi, ok := p.slowTags[t] + return fi, ok +} + +func (p *tagMap) put(t int, fi int) { + if t > 0 && t < tagMapFastLimit { + for len(p.fastTags) < t+1 { + p.fastTags = append(p.fastTags, -1) + } + p.fastTags[t] = fi + return + } + if p.slowTags == nil { + p.slowTags = make(map[int]int) + } + p.slowTags[t] = fi +} + +// StructProperties represents properties for all the fields of a struct. +// decoderTags and decoderOrigNames should only be used by the decoder. +type StructProperties struct { + Prop []*Properties // properties for each field + reqCount int // required count + decoderTags tagMap // map from proto tag to struct field number + decoderOrigNames map[string]int // map from original name to struct field number + order []int // list of struct field numbers in tag order + unrecField field // field id of the XXX_unrecognized []byte field + extendable bool // is this an extendable proto + + oneofMarshaler oneofMarshaler + oneofUnmarshaler oneofUnmarshaler + oneofSizer oneofSizer + stype reflect.Type + + // OneofTypes contains information about the oneof fields in this message. + // It is keyed by the original name of a field. + OneofTypes map[string]*OneofProperties +} + +// OneofProperties represents information about a specific field in a oneof. +type OneofProperties struct { + Type reflect.Type // pointer to generated struct type for this oneof field + Field int // struct field number of the containing oneof in the message + Prop *Properties +} + +// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec. +// See encode.go, (*Buffer).enc_struct. + +func (sp *StructProperties) Len() int { return len(sp.order) } +func (sp *StructProperties) Less(i, j int) bool { + return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag +} +func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] } + +// Properties represents the protocol-specific behavior of a single struct field. +type Properties struct { + Name string // name of the field, for error messages + OrigName string // original name before protocol compiler (always set) + JSONName string // name to use for JSON; determined by protoc + Wire string + WireType int + Tag int + Required bool + Optional bool + Repeated bool + Packed bool // relevant for repeated primitives only + Enum string // set for enum types only + proto3 bool // whether this is known to be a proto3 field; set for []byte only + oneof bool // whether this is a oneof field + + Default string // default value + HasDefault bool // whether an explicit default was provided + def_uint64 uint64 + + enc encoder + valEnc valueEncoder // set for bool and numeric types only + field field + tagcode []byte // encoding of EncodeVarint((Tag<<3)|WireType) + tagbuf [8]byte + stype reflect.Type // set for struct types only + sprop *StructProperties // set for struct types only + isMarshaler bool + isUnmarshaler bool + + mtype reflect.Type // set for map types only + mkeyprop *Properties // set for map types only + mvalprop *Properties // set for map types only + + size sizer + valSize valueSizer // set for bool and numeric types only + + dec decoder + valDec valueDecoder // set for bool and numeric types only + + // If this is a packable field, this will be the decoder for the packed version of the field. + packedDec decoder +} + +// String formats the properties in the protobuf struct field tag style. +func (p *Properties) String() string { + s := p.Wire + s = "," + s += strconv.Itoa(p.Tag) + if p.Required { + s += ",req" + } + if p.Optional { + s += ",opt" + } + if p.Repeated { + s += ",rep" + } + if p.Packed { + s += ",packed" + } + s += ",name=" + p.OrigName + if p.JSONName != p.OrigName { + s += ",json=" + p.JSONName + } + if p.proto3 { + s += ",proto3" + } + if p.oneof { + s += ",oneof" + } + if len(p.Enum) > 0 { + s += ",enum=" + p.Enum + } + if p.HasDefault { + s += ",def=" + p.Default + } + return s +} + +// Parse populates p by parsing a string in the protobuf struct field tag style. +func (p *Properties) Parse(s string) { + // "bytes,49,opt,name=foo,def=hello!" + fields := strings.Split(s, ",") // breaks def=, but handled below. + if len(fields) < 2 { + fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s) + return + } + + p.Wire = fields[0] + switch p.Wire { + case "varint": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeVarint + p.valDec = (*Buffer).DecodeVarint + p.valSize = sizeVarint + case "fixed32": + p.WireType = WireFixed32 + p.valEnc = (*Buffer).EncodeFixed32 + p.valDec = (*Buffer).DecodeFixed32 + p.valSize = sizeFixed32 + case "fixed64": + p.WireType = WireFixed64 + p.valEnc = (*Buffer).EncodeFixed64 + p.valDec = (*Buffer).DecodeFixed64 + p.valSize = sizeFixed64 + case "zigzag32": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeZigzag32 + p.valDec = (*Buffer).DecodeZigzag32 + p.valSize = sizeZigzag32 + case "zigzag64": + p.WireType = WireVarint + p.valEnc = (*Buffer).EncodeZigzag64 + p.valDec = (*Buffer).DecodeZigzag64 + p.valSize = sizeZigzag64 + case "bytes", "group": + p.WireType = WireBytes + // no numeric converter for non-numeric types + default: + fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s) + return + } + + var err error + p.Tag, err = strconv.Atoi(fields[1]) + if err != nil { + return + } + + for i := 2; i < len(fields); i++ { + f := fields[i] + switch { + case f == "req": + p.Required = true + case f == "opt": + p.Optional = true + case f == "rep": + p.Repeated = true + case f == "packed": + p.Packed = true + case strings.HasPrefix(f, "name="): + p.OrigName = f[5:] + case strings.HasPrefix(f, "json="): + p.JSONName = f[5:] + case strings.HasPrefix(f, "enum="): + p.Enum = f[5:] + case f == "proto3": + p.proto3 = true + case f == "oneof": + p.oneof = true + case strings.HasPrefix(f, "def="): + p.HasDefault = true + p.Default = f[4:] // rest of string + if i+1 < len(fields) { + // Commas aren't escaped, and def is always last. + p.Default += "," + strings.Join(fields[i+1:], ",") + break + } + } + } +} + +func logNoSliceEnc(t1, t2 reflect.Type) { + fmt.Fprintf(os.Stderr, "proto: no slice oenc for %T = []%T\n", t1, t2) +} + +var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem() + +// Initialize the fields for encoding and decoding. +func (p *Properties) setEncAndDec(typ reflect.Type, f *reflect.StructField, lockGetProp bool) { + p.enc = nil + p.dec = nil + p.size = nil + + switch t1 := typ; t1.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no coders for %v\n", t1) + + // proto3 scalar types + + case reflect.Bool: + p.enc = (*Buffer).enc_proto3_bool + p.dec = (*Buffer).dec_proto3_bool + p.size = size_proto3_bool + case reflect.Int32: + p.enc = (*Buffer).enc_proto3_int32 + p.dec = (*Buffer).dec_proto3_int32 + p.size = size_proto3_int32 + case reflect.Uint32: + p.enc = (*Buffer).enc_proto3_uint32 + p.dec = (*Buffer).dec_proto3_int32 // can reuse + p.size = size_proto3_uint32 + case reflect.Int64, reflect.Uint64: + p.enc = (*Buffer).enc_proto3_int64 + p.dec = (*Buffer).dec_proto3_int64 + p.size = size_proto3_int64 + case reflect.Float32: + p.enc = (*Buffer).enc_proto3_uint32 // can just treat them as bits + p.dec = (*Buffer).dec_proto3_int32 + p.size = size_proto3_uint32 + case reflect.Float64: + p.enc = (*Buffer).enc_proto3_int64 // can just treat them as bits + p.dec = (*Buffer).dec_proto3_int64 + p.size = size_proto3_int64 + case reflect.String: + p.enc = (*Buffer).enc_proto3_string + p.dec = (*Buffer).dec_proto3_string + p.size = size_proto3_string + + case reflect.Ptr: + switch t2 := t1.Elem(); t2.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no encoder function for %v -> %v\n", t1, t2) + break + case reflect.Bool: + p.enc = (*Buffer).enc_bool + p.dec = (*Buffer).dec_bool + p.size = size_bool + case reflect.Int32: + p.enc = (*Buffer).enc_int32 + p.dec = (*Buffer).dec_int32 + p.size = size_int32 + case reflect.Uint32: + p.enc = (*Buffer).enc_uint32 + p.dec = (*Buffer).dec_int32 // can reuse + p.size = size_uint32 + case reflect.Int64, reflect.Uint64: + p.enc = (*Buffer).enc_int64 + p.dec = (*Buffer).dec_int64 + p.size = size_int64 + case reflect.Float32: + p.enc = (*Buffer).enc_uint32 // can just treat them as bits + p.dec = (*Buffer).dec_int32 + p.size = size_uint32 + case reflect.Float64: + p.enc = (*Buffer).enc_int64 // can just treat them as bits + p.dec = (*Buffer).dec_int64 + p.size = size_int64 + case reflect.String: + p.enc = (*Buffer).enc_string + p.dec = (*Buffer).dec_string + p.size = size_string + case reflect.Struct: + p.stype = t1.Elem() + p.isMarshaler = isMarshaler(t1) + p.isUnmarshaler = isUnmarshaler(t1) + if p.Wire == "bytes" { + p.enc = (*Buffer).enc_struct_message + p.dec = (*Buffer).dec_struct_message + p.size = size_struct_message + } else { + p.enc = (*Buffer).enc_struct_group + p.dec = (*Buffer).dec_struct_group + p.size = size_struct_group + } + } + + case reflect.Slice: + switch t2 := t1.Elem(); t2.Kind() { + default: + logNoSliceEnc(t1, t2) + break + case reflect.Bool: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_bool + p.size = size_slice_packed_bool + } else { + p.enc = (*Buffer).enc_slice_bool + p.size = size_slice_bool + } + p.dec = (*Buffer).dec_slice_bool + p.packedDec = (*Buffer).dec_slice_packed_bool + case reflect.Int32: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int32 + p.size = size_slice_packed_int32 + } else { + p.enc = (*Buffer).enc_slice_int32 + p.size = size_slice_int32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case reflect.Uint32: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_uint32 + p.size = size_slice_packed_uint32 + } else { + p.enc = (*Buffer).enc_slice_uint32 + p.size = size_slice_uint32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case reflect.Int64, reflect.Uint64: + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int64 + p.size = size_slice_packed_int64 + } else { + p.enc = (*Buffer).enc_slice_int64 + p.size = size_slice_int64 + } + p.dec = (*Buffer).dec_slice_int64 + p.packedDec = (*Buffer).dec_slice_packed_int64 + case reflect.Uint8: + p.dec = (*Buffer).dec_slice_byte + if p.proto3 { + p.enc = (*Buffer).enc_proto3_slice_byte + p.size = size_proto3_slice_byte + } else { + p.enc = (*Buffer).enc_slice_byte + p.size = size_slice_byte + } + case reflect.Float32, reflect.Float64: + switch t2.Bits() { + case 32: + // can just treat them as bits + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_uint32 + p.size = size_slice_packed_uint32 + } else { + p.enc = (*Buffer).enc_slice_uint32 + p.size = size_slice_uint32 + } + p.dec = (*Buffer).dec_slice_int32 + p.packedDec = (*Buffer).dec_slice_packed_int32 + case 64: + // can just treat them as bits + if p.Packed { + p.enc = (*Buffer).enc_slice_packed_int64 + p.size = size_slice_packed_int64 + } else { + p.enc = (*Buffer).enc_slice_int64 + p.size = size_slice_int64 + } + p.dec = (*Buffer).dec_slice_int64 + p.packedDec = (*Buffer).dec_slice_packed_int64 + default: + logNoSliceEnc(t1, t2) + break + } + case reflect.String: + p.enc = (*Buffer).enc_slice_string + p.dec = (*Buffer).dec_slice_string + p.size = size_slice_string + case reflect.Ptr: + switch t3 := t2.Elem(); t3.Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no ptr oenc for %T -> %T -> %T\n", t1, t2, t3) + break + case reflect.Struct: + p.stype = t2.Elem() + p.isMarshaler = isMarshaler(t2) + p.isUnmarshaler = isUnmarshaler(t2) + if p.Wire == "bytes" { + p.enc = (*Buffer).enc_slice_struct_message + p.dec = (*Buffer).dec_slice_struct_message + p.size = size_slice_struct_message + } else { + p.enc = (*Buffer).enc_slice_struct_group + p.dec = (*Buffer).dec_slice_struct_group + p.size = size_slice_struct_group + } + } + case reflect.Slice: + switch t2.Elem().Kind() { + default: + fmt.Fprintf(os.Stderr, "proto: no slice elem oenc for %T -> %T -> %T\n", t1, t2, t2.Elem()) + break + case reflect.Uint8: + p.enc = (*Buffer).enc_slice_slice_byte + p.dec = (*Buffer).dec_slice_slice_byte + p.size = size_slice_slice_byte + } + } + + case reflect.Map: + p.enc = (*Buffer).enc_new_map + p.dec = (*Buffer).dec_new_map + p.size = size_new_map + + p.mtype = t1 + p.mkeyprop = &Properties{} + p.mkeyprop.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) + p.mvalprop = &Properties{} + vtype := p.mtype.Elem() + if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { + // The value type is not a message (*T) or bytes ([]byte), + // so we need encoders for the pointer to this type. + vtype = reflect.PtrTo(vtype) + } + p.mvalprop.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) + } + + // precalculate tag code + wire := p.WireType + if p.Packed { + wire = WireBytes + } + x := uint32(p.Tag)<<3 | uint32(wire) + i := 0 + for i = 0; x > 127; i++ { + p.tagbuf[i] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + p.tagbuf[i] = uint8(x) + p.tagcode = p.tagbuf[0 : i+1] + + if p.stype != nil { + if lockGetProp { + p.sprop = GetProperties(p.stype) + } else { + p.sprop = getPropertiesLocked(p.stype) + } + } +} + +var ( + marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() + unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() +) + +// isMarshaler reports whether type t implements Marshaler. +func isMarshaler(t reflect.Type) bool { + // We're checking for (likely) pointer-receiver methods + // so if t is not a pointer, something is very wrong. + // The calls above only invoke isMarshaler on pointer types. + if t.Kind() != reflect.Ptr { + panic("proto: misuse of isMarshaler") + } + return t.Implements(marshalerType) +} + +// isUnmarshaler reports whether type t implements Unmarshaler. +func isUnmarshaler(t reflect.Type) bool { + // We're checking for (likely) pointer-receiver methods + // so if t is not a pointer, something is very wrong. + // The calls above only invoke isUnmarshaler on pointer types. + if t.Kind() != reflect.Ptr { + panic("proto: misuse of isUnmarshaler") + } + return t.Implements(unmarshalerType) +} + +// Init populates the properties from a protocol buffer struct tag. +func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { + p.init(typ, name, tag, f, true) +} + +func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) { + // "bytes,49,opt,def=hello!" + p.Name = name + p.OrigName = name + if f != nil { + p.field = toField(f) + } + if tag == "" { + return + } + p.Parse(tag) + p.setEncAndDec(typ, f, lockGetProp) +} + +var ( + propertiesMu sync.RWMutex + propertiesMap = make(map[reflect.Type]*StructProperties) +) + +// GetProperties returns the list of properties for the type represented by t. +// t must represent a generated struct type of a protocol message. +func GetProperties(t reflect.Type) *StructProperties { + if t.Kind() != reflect.Struct { + panic("proto: type must have kind struct") + } + + // Most calls to GetProperties in a long-running program will be + // retrieving details for types we have seen before. + propertiesMu.RLock() + sprop, ok := propertiesMap[t] + propertiesMu.RUnlock() + if ok { + if collectStats { + stats.Chit++ + } + return sprop + } + + propertiesMu.Lock() + sprop = getPropertiesLocked(t) + propertiesMu.Unlock() + return sprop +} + +// getPropertiesLocked requires that propertiesMu is held. +func getPropertiesLocked(t reflect.Type) *StructProperties { + if prop, ok := propertiesMap[t]; ok { + if collectStats { + stats.Chit++ + } + return prop + } + if collectStats { + stats.Cmiss++ + } + + prop := new(StructProperties) + // in case of recursive protos, fill this in now. + propertiesMap[t] = prop + + // build properties + prop.extendable = reflect.PtrTo(t).Implements(extendableProtoType) || + reflect.PtrTo(t).Implements(extendableProtoV1Type) + prop.unrecField = invalidField + prop.Prop = make([]*Properties, t.NumField()) + prop.order = make([]int, t.NumField()) + + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + p := new(Properties) + name := f.Name + p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) + + if f.Name == "XXX_InternalExtensions" { // special case + p.enc = (*Buffer).enc_exts + p.dec = nil // not needed + p.size = size_exts + } else if f.Name == "XXX_extensions" { // special case + p.enc = (*Buffer).enc_map + p.dec = nil // not needed + p.size = size_map + } else if f.Name == "XXX_unrecognized" { // special case + prop.unrecField = toField(&f) + } + oneof := f.Tag.Get("protobuf_oneof") // special case + if oneof != "" { + // Oneof fields don't use the traditional protobuf tag. + p.OrigName = oneof + } + prop.Prop[i] = p + prop.order[i] = i + if debug { + print(i, " ", f.Name, " ", t.String(), " ") + if p.Tag > 0 { + print(p.String()) + } + print("\n") + } + if p.enc == nil && !strings.HasPrefix(f.Name, "XXX_") && oneof == "" { + fmt.Fprintln(os.Stderr, "proto: no encoder for", f.Name, f.Type.String(), "[GetProperties]") + } + } + + // Re-order prop.order. + sort.Sort(prop) + + type oneofMessage interface { + XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{}) + } + if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok { + var oots []interface{} + prop.oneofMarshaler, prop.oneofUnmarshaler, prop.oneofSizer, oots = om.XXX_OneofFuncs() + prop.stype = t + + // Interpret oneof metadata. + prop.OneofTypes = make(map[string]*OneofProperties) + for _, oot := range oots { + oop := &OneofProperties{ + Type: reflect.ValueOf(oot).Type(), // *T + Prop: new(Properties), + } + sft := oop.Type.Elem().Field(0) + oop.Prop.Name = sft.Name + oop.Prop.Parse(sft.Tag.Get("protobuf")) + // There will be exactly one interface field that + // this new value is assignable to. + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Type.Kind() != reflect.Interface { + continue + } + if !oop.Type.AssignableTo(f.Type) { + continue + } + oop.Field = i + break + } + prop.OneofTypes[oop.Prop.OrigName] = oop + } + } + + // build required counts + // build tags + reqCount := 0 + prop.decoderOrigNames = make(map[string]int) + for i, p := range prop.Prop { + if strings.HasPrefix(p.Name, "XXX_") { + // Internal fields should not appear in tags/origNames maps. + // They are handled specially when encoding and decoding. + continue + } + if p.Required { + reqCount++ + } + prop.decoderTags.put(p.Tag, i) + prop.decoderOrigNames[p.OrigName] = i + } + prop.reqCount = reqCount + + return prop +} + +// Return the Properties object for the x[0]'th field of the structure. +func propByIndex(t reflect.Type, x []int) *Properties { + if len(x) != 1 { + fmt.Fprintf(os.Stderr, "proto: field index dimension %d (not 1) for type %s\n", len(x), t) + return nil + } + prop := GetProperties(t) + return prop.Prop[x[0]] +} + +// Get the address and type of a pointer to a struct from an interface. +func getbase(pb Message) (t reflect.Type, b structPointer, err error) { + if pb == nil { + err = ErrNil + return + } + // get the reflect type of the pointer to the struct. + t = reflect.TypeOf(pb) + // get the address of the struct. + value := reflect.ValueOf(pb) + b = toStructPointer(value) + return +} + +// A global registry of enum types. +// The generated code will register the generated maps by calling RegisterEnum. + +var enumValueMaps = make(map[string]map[string]int32) + +// RegisterEnum is called from the generated code to install the enum descriptor +// maps into the global table to aid parsing text format protocol buffers. +func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) { + if _, ok := enumValueMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumValueMaps[typeName] = valueMap +} + +// EnumValueMap returns the mapping from names to integers of the +// enum type enumType, or a nil if not found. +func EnumValueMap(enumType string) map[string]int32 { + return enumValueMaps[enumType] +} + +// A registry of all linked message types. +// The string is a fully-qualified proto name ("pkg.Message"). +var ( + protoTypes = make(map[string]reflect.Type) + revProtoTypes = make(map[reflect.Type]string) +) + +// RegisterType is called from generated code and maps from the fully qualified +// proto name to the type (pointer to struct) of the protocol buffer. +func RegisterType(x Message, name string) { + if _, ok := protoTypes[name]; ok { + // TODO: Some day, make this a panic. + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + protoTypes[name] = t + revProtoTypes[t] = name +} + +// MessageName returns the fully-qualified proto name for the given message type. +func MessageName(x Message) string { return revProtoTypes[reflect.TypeOf(x)] } + +// MessageType returns the message type (pointer to struct) for a named message. +func MessageType(name string) reflect.Type { return protoTypes[name] } + +// A registry of all linked proto files. +var ( + protoFiles = make(map[string][]byte) // file name => fileDescriptor +) + +// RegisterFile is called from generated code and maps from the +// full file name of a .proto file to its compressed FileDescriptorProto. +func RegisterFile(filename string, fileDescriptor []byte) { + protoFiles[filename] = fileDescriptor +} + +// FileDescriptor returns the compressed FileDescriptorProto for a .proto file. +func FileDescriptor(filename string) []byte { return protoFiles[filename] } diff --git a/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.pb.go b/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.pb.go new file mode 100644 index 00000000..411f17f5 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.pb.go @@ -0,0 +1,198 @@ +// Code generated by protoc-gen-go. +// source: proto3_proto/proto3.proto +// DO NOT EDIT! + +/* +Package proto3_proto is a generated protocol buffer package. + +It is generated from these files: + proto3_proto/proto3.proto + +It has these top-level messages: + Message + Nested + MessageWithMap +*/ +package proto3_proto + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/golang/protobuf/ptypes/any" +import testdata "github.com/golang/protobuf/proto/testdata" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +type Message_Humour int32 + +const ( + Message_UNKNOWN Message_Humour = 0 + Message_PUNS Message_Humour = 1 + Message_SLAPSTICK Message_Humour = 2 + Message_BILL_BAILEY Message_Humour = 3 +) + +var Message_Humour_name = map[int32]string{ + 0: "UNKNOWN", + 1: "PUNS", + 2: "SLAPSTICK", + 3: "BILL_BAILEY", +} +var Message_Humour_value = map[string]int32{ + "UNKNOWN": 0, + "PUNS": 1, + "SLAPSTICK": 2, + "BILL_BAILEY": 3, +} + +func (x Message_Humour) String() string { + return proto.EnumName(Message_Humour_name, int32(x)) +} +func (Message_Humour) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} } + +type Message struct { + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Hilarity Message_Humour `protobuf:"varint,2,opt,name=hilarity,enum=proto3_proto.Message_Humour" json:"hilarity,omitempty"` + HeightInCm uint32 `protobuf:"varint,3,opt,name=height_in_cm,json=heightInCm" json:"height_in_cm,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` + ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount" json:"result_count,omitempty"` + TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman" json:"true_scotsman,omitempty"` + Score float32 `protobuf:"fixed32,9,opt,name=score" json:"score,omitempty"` + Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` + Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` + RFunny []Message_Humour `protobuf:"varint,16,rep,name=r_funny,json=rFunny,enum=proto3_proto.Message_Humour" json:"r_funny,omitempty"` + Terrain map[string]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Proto2Field *testdata.SubDefaults `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` + Proto2Value map[string]*testdata.SubDefaults `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Anything *google_protobuf.Any `protobuf:"bytes,14,opt,name=anything" json:"anything,omitempty"` + ManyThings []*google_protobuf.Any `protobuf:"bytes,15,rep,name=many_things,json=manyThings" json:"many_things,omitempty"` +} + +func (m *Message) Reset() { *m = Message{} } +func (m *Message) String() string { return proto.CompactTextString(m) } +func (*Message) ProtoMessage() {} +func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Message) GetNested() *Nested { + if m != nil { + return m.Nested + } + return nil +} + +func (m *Message) GetTerrain() map[string]*Nested { + if m != nil { + return m.Terrain + } + return nil +} + +func (m *Message) GetProto2Field() *testdata.SubDefaults { + if m != nil { + return m.Proto2Field + } + return nil +} + +func (m *Message) GetProto2Value() map[string]*testdata.SubDefaults { + if m != nil { + return m.Proto2Value + } + return nil +} + +func (m *Message) GetAnything() *google_protobuf.Any { + if m != nil { + return m.Anything + } + return nil +} + +func (m *Message) GetManyThings() []*google_protobuf.Any { + if m != nil { + return m.ManyThings + } + return nil +} + +type Nested struct { + Bunny string `protobuf:"bytes,1,opt,name=bunny" json:"bunny,omitempty"` +} + +func (m *Nested) Reset() { *m = Nested{} } +func (m *Nested) String() string { return proto.CompactTextString(m) } +func (*Nested) ProtoMessage() {} +func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +type MessageWithMap struct { + ByteMapping map[bool][]byte `protobuf:"bytes,1,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } +func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } +func (*MessageWithMap) ProtoMessage() {} +func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *MessageWithMap) GetByteMapping() map[bool][]byte { + if m != nil { + return m.ByteMapping + } + return nil +} + +func init() { + proto.RegisterType((*Message)(nil), "proto3_proto.Message") + proto.RegisterType((*Nested)(nil), "proto3_proto.Nested") + proto.RegisterType((*MessageWithMap)(nil), "proto3_proto.MessageWithMap") + proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value) +} + +var fileDescriptor0 = []byte{ + // 617 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x92, 0x5d, 0x6b, 0xdb, 0x3c, + 0x14, 0xc7, 0x1f, 0xc5, 0xa9, 0x93, 0x1e, 0x3b, 0xad, 0xd1, 0xd3, 0x81, 0x1a, 0xc6, 0xf0, 0x32, + 0x18, 0x66, 0x2f, 0xee, 0xc8, 0x28, 0x94, 0x31, 0x36, 0xda, 0xae, 0x65, 0xa1, 0x69, 0x16, 0x9c, + 0x76, 0x65, 0x57, 0x46, 0x49, 0x95, 0xc4, 0x2c, 0x96, 0x83, 0x2d, 0x0f, 0xfc, 0x75, 0xf6, 0x29, + 0x77, 0x39, 0x24, 0x39, 0xa9, 0x5b, 0xb2, 0xed, 0xca, 0xd2, 0xf1, 0xef, 0xbc, 0xe8, 0xff, 0x3f, + 0xb0, 0xbf, 0x4c, 0x13, 0x91, 0xbc, 0x0d, 0xd5, 0xe7, 0x40, 0x5f, 0x7c, 0xf5, 0xc1, 0x76, 0xf5, + 0x57, 0x7b, 0x7f, 0x96, 0x24, 0xb3, 0x05, 0xd3, 0xc8, 0x38, 0x9f, 0x1e, 0x50, 0x5e, 0x68, 0xb0, + 0xfd, 0xbf, 0x60, 0x99, 0xb8, 0xa5, 0x82, 0x1e, 0xc8, 0x83, 0x0e, 0x76, 0x7e, 0x99, 0xd0, 0xb8, + 0x64, 0x59, 0x46, 0x67, 0x0c, 0x63, 0xa8, 0x73, 0x1a, 0x33, 0x82, 0x5c, 0xe4, 0x6d, 0x07, 0xea, + 0x8c, 0x8f, 0xa0, 0x39, 0x8f, 0x16, 0x34, 0x8d, 0x44, 0x41, 0x6a, 0x2e, 0xf2, 0x76, 0xba, 0x8f, + 0xfd, 0x6a, 0x43, 0xbf, 0x4c, 0xf6, 0x3f, 0xe7, 0x71, 0x92, 0xa7, 0xc1, 0x9a, 0xc6, 0x2e, 0xd8, + 0x73, 0x16, 0xcd, 0xe6, 0x22, 0x8c, 0x78, 0x38, 0x89, 0x89, 0xe1, 0x22, 0xaf, 0x15, 0x80, 0x8e, + 0xf5, 0xf8, 0x69, 0x2c, 0xfb, 0xc9, 0x71, 0x48, 0xdd, 0x45, 0x9e, 0x1d, 0xa8, 0x33, 0x7e, 0x0a, + 0x76, 0xca, 0xb2, 0x7c, 0x21, 0xc2, 0x49, 0x92, 0x73, 0x41, 0x1a, 0x2e, 0xf2, 0x8c, 0xc0, 0xd2, + 0xb1, 0x53, 0x19, 0xc2, 0xcf, 0xa0, 0x25, 0xd2, 0x9c, 0x85, 0xd9, 0x24, 0x11, 0x59, 0x4c, 0x39, + 0x69, 0xba, 0xc8, 0x6b, 0x06, 0xb6, 0x0c, 0x8e, 0xca, 0x18, 0xde, 0x83, 0xad, 0x6c, 0x92, 0xa4, + 0x8c, 0x6c, 0xbb, 0xc8, 0xab, 0x05, 0xfa, 0x82, 0x1d, 0x30, 0xbe, 0xb3, 0x82, 0x6c, 0xb9, 0x86, + 0x57, 0x0f, 0xe4, 0x11, 0xbf, 0x02, 0x93, 0xb3, 0x4c, 0xb0, 0x5b, 0x62, 0xba, 0xc8, 0xb3, 0xba, + 0x7b, 0xf7, 0x5f, 0x37, 0x50, 0xff, 0x82, 0x92, 0xc1, 0x87, 0xd0, 0x48, 0xc3, 0x69, 0xce, 0x79, + 0x41, 0x1c, 0xd7, 0xf8, 0xa7, 0x18, 0x66, 0x7a, 0x2e, 0x59, 0xfc, 0x1e, 0x1a, 0x82, 0xa5, 0x29, + 0x8d, 0x38, 0x01, 0xd7, 0xf0, 0xac, 0x6e, 0x67, 0x73, 0xda, 0x95, 0x86, 0xce, 0xb8, 0x48, 0x8b, + 0x60, 0x95, 0x82, 0x8f, 0x40, 0x5b, 0xdc, 0x0d, 0xa7, 0x11, 0x5b, 0xdc, 0x12, 0x4b, 0x0d, 0xfa, + 0xc8, 0x5f, 0xd9, 0xe9, 0x8f, 0xf2, 0xf1, 0x27, 0x36, 0xa5, 0xf9, 0x42, 0x64, 0x81, 0xa5, 0xd1, + 0x73, 0x49, 0xe2, 0xde, 0x3a, 0xf3, 0x07, 0x5d, 0xe4, 0x8c, 0xb4, 0x54, 0xf3, 0xe7, 0x9b, 0x9b, + 0x0f, 0x15, 0xf9, 0x55, 0x82, 0x7a, 0x80, 0xb2, 0x94, 0x8a, 0xe0, 0x37, 0xd0, 0xa4, 0xbc, 0x10, + 0xf3, 0x88, 0xcf, 0xc8, 0x4e, 0xa9, 0x94, 0x5e, 0x35, 0x7f, 0xb5, 0x6a, 0xfe, 0x31, 0x2f, 0x82, + 0x35, 0x85, 0x0f, 0xc1, 0x8a, 0x29, 0x2f, 0x42, 0x75, 0xcb, 0xc8, 0xae, 0xea, 0xbd, 0x39, 0x09, + 0x24, 0x78, 0xa5, 0xb8, 0xf6, 0x10, 0xec, 0xaa, 0x0c, 0x2b, 0xcb, 0xf4, 0x4e, 0x2a, 0xcb, 0x5e, + 0xc0, 0x96, 0x7e, 0x4e, 0xed, 0x2f, 0x8e, 0x69, 0xe4, 0x5d, 0xed, 0x08, 0xb5, 0xaf, 0xc1, 0x79, + 0xf8, 0xb6, 0x0d, 0x55, 0x5f, 0xde, 0xaf, 0xfa, 0x07, 0x79, 0xef, 0xca, 0x76, 0x3e, 0x82, 0xa9, + 0x6d, 0xc6, 0x16, 0x34, 0xae, 0x07, 0x17, 0x83, 0x2f, 0x37, 0x03, 0xe7, 0x3f, 0xdc, 0x84, 0xfa, + 0xf0, 0x7a, 0x30, 0x72, 0x10, 0x6e, 0xc1, 0xf6, 0xa8, 0x7f, 0x3c, 0x1c, 0x5d, 0xf5, 0x4e, 0x2f, + 0x9c, 0x1a, 0xde, 0x05, 0xeb, 0xa4, 0xd7, 0xef, 0x87, 0x27, 0xc7, 0xbd, 0xfe, 0xd9, 0x37, 0xc7, + 0xe8, 0x3c, 0x01, 0x53, 0x0f, 0x2b, 0x97, 0x75, 0xac, 0x96, 0x4a, 0xcf, 0xa3, 0x2f, 0x9d, 0x9f, + 0x08, 0x76, 0x4a, 0x73, 0x6e, 0x22, 0x31, 0xbf, 0xa4, 0x4b, 0x3c, 0x04, 0x7b, 0x5c, 0x08, 0x16, + 0xc6, 0x74, 0xb9, 0x94, 0x4e, 0x20, 0x25, 0xea, 0xeb, 0x8d, 0x86, 0x96, 0x39, 0xfe, 0x49, 0x21, + 0xd8, 0xa5, 0xe6, 0x4b, 0x5f, 0xc7, 0x77, 0x91, 0xf6, 0x07, 0x70, 0x1e, 0x02, 0x55, 0x71, 0x9a, + 0x5a, 0x9c, 0xbd, 0xaa, 0x38, 0x76, 0x45, 0x85, 0xb1, 0xa9, 0x5b, 0xff, 0x0e, 0x00, 0x00, 0xff, + 0xff, 0x54, 0x4a, 0xfa, 0x41, 0xa1, 0x04, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.proto b/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.proto new file mode 100644 index 00000000..31509e48 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/proto3_proto/proto3.proto @@ -0,0 +1,73 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2014 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto3"; + +import "google/protobuf/any.proto"; +import "testdata/test.proto"; + +package proto3_proto; + +message Message { + enum Humour { + UNKNOWN = 0; + PUNS = 1; + SLAPSTICK = 2; + BILL_BAILEY = 3; + } + + string name = 1; + Humour hilarity = 2; + uint32 height_in_cm = 3; + bytes data = 4; + int64 result_count = 7; + bool true_scotsman = 8; + float score = 9; + + repeated uint64 key = 5; + Nested nested = 6; + repeated Humour r_funny = 16; + + map terrain = 10; + testdata.SubDefaults proto2_field = 11; + map proto2_value = 13; + + google.protobuf.Any anything = 14; + repeated google.protobuf.Any many_things = 15; +} + +message Nested { + string bunny = 1; +} + +message MessageWithMap { + map byte_mapping = 1; +} diff --git a/vendor/github.com/golang/protobuf/proto/proto3_test.go b/vendor/github.com/golang/protobuf/proto/proto3_test.go new file mode 100644 index 00000000..462f8055 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/proto3_test.go @@ -0,0 +1,125 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2014 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "testing" + + "github.com/golang/protobuf/proto" + pb "github.com/golang/protobuf/proto/proto3_proto" + tpb "github.com/golang/protobuf/proto/testdata" +) + +func TestProto3ZeroValues(t *testing.T) { + tests := []struct { + desc string + m proto.Message + }{ + {"zero message", &pb.Message{}}, + {"empty bytes field", &pb.Message{Data: []byte{}}}, + } + for _, test := range tests { + b, err := proto.Marshal(test.m) + if err != nil { + t.Errorf("%s: proto.Marshal: %v", test.desc, err) + continue + } + if len(b) > 0 { + t.Errorf("%s: Encoding is non-empty: %q", test.desc, b) + } + } +} + +func TestRoundTripProto3(t *testing.T) { + m := &pb.Message{ + Name: "David", // (2 | 1<<3): 0x0a 0x05 "David" + Hilarity: pb.Message_PUNS, // (0 | 2<<3): 0x10 0x01 + HeightInCm: 178, // (0 | 3<<3): 0x18 0xb2 0x01 + Data: []byte("roboto"), // (2 | 4<<3): 0x20 0x06 "roboto" + ResultCount: 47, // (0 | 7<<3): 0x38 0x2f + TrueScotsman: true, // (0 | 8<<3): 0x40 0x01 + Score: 8.1, // (5 | 9<<3): 0x4d <8.1> + + Key: []uint64{1, 0xdeadbeef}, + Nested: &pb.Nested{ + Bunny: "Monty", + }, + } + t.Logf(" m: %v", m) + + b, err := proto.Marshal(m) + if err != nil { + t.Fatalf("proto.Marshal: %v", err) + } + t.Logf(" b: %q", b) + + m2 := new(pb.Message) + if err := proto.Unmarshal(b, m2); err != nil { + t.Fatalf("proto.Unmarshal: %v", err) + } + t.Logf("m2: %v", m2) + + if !proto.Equal(m, m2) { + t.Errorf("proto.Equal returned false:\n m: %v\nm2: %v", m, m2) + } +} + +func TestProto3SetDefaults(t *testing.T) { + in := &pb.Message{ + Terrain: map[string]*pb.Nested{ + "meadow": new(pb.Nested), + }, + Proto2Field: new(tpb.SubDefaults), + Proto2Value: map[string]*tpb.SubDefaults{ + "badlands": new(tpb.SubDefaults), + }, + } + + got := proto.Clone(in).(*pb.Message) + proto.SetDefaults(got) + + // There are no defaults in proto3. Everything should be the zero value, but + // we need to remember to set defaults for nested proto2 messages. + want := &pb.Message{ + Terrain: map[string]*pb.Nested{ + "meadow": new(pb.Nested), + }, + Proto2Field: &tpb.SubDefaults{N: proto.Int64(7)}, + Proto2Value: map[string]*tpb.SubDefaults{ + "badlands": &tpb.SubDefaults{N: proto.Int64(7)}, + }, + } + + if !proto.Equal(got, want) { + t.Errorf("with in = %v\nproto.SetDefaults(in) =>\ngot %v\nwant %v", in, got, want) + } +} diff --git a/vendor/github.com/golang/protobuf/proto/size2_test.go b/vendor/github.com/golang/protobuf/proto/size2_test.go new file mode 100644 index 00000000..a2729c39 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/size2_test.go @@ -0,0 +1,63 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +import ( + "testing" +) + +// This is a separate file and package from size_test.go because that one uses +// generated messages and thus may not be in package proto without having a circular +// dependency, whereas this file tests unexported details of size.go. + +func TestVarintSize(t *testing.T) { + // Check the edge cases carefully. + testCases := []struct { + n uint64 + size int + }{ + {0, 1}, + {1, 1}, + {127, 1}, + {128, 2}, + {16383, 2}, + {16384, 3}, + {1<<63 - 1, 9}, + {1 << 63, 10}, + } + for _, tc := range testCases { + size := sizeVarint(tc.n) + if size != tc.size { + t.Errorf("sizeVarint(%d) = %d, want %d", tc.n, size, tc.size) + } + } +} diff --git a/vendor/github.com/golang/protobuf/proto/size_test.go b/vendor/github.com/golang/protobuf/proto/size_test.go new file mode 100644 index 00000000..af1034dc --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/size_test.go @@ -0,0 +1,164 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "log" + "strings" + "testing" + + . "github.com/golang/protobuf/proto" + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + pb "github.com/golang/protobuf/proto/testdata" +) + +var messageWithExtension1 = &pb.MyMessage{Count: Int32(7)} + +// messageWithExtension2 is in equal_test.go. +var messageWithExtension3 = &pb.MyMessage{Count: Int32(8)} + +func init() { + if err := SetExtension(messageWithExtension1, pb.E_Ext_More, &pb.Ext{Data: String("Abbott")}); err != nil { + log.Panicf("SetExtension: %v", err) + } + if err := SetExtension(messageWithExtension3, pb.E_Ext_More, &pb.Ext{Data: String("Costello")}); err != nil { + log.Panicf("SetExtension: %v", err) + } + + // Force messageWithExtension3 to have the extension encoded. + Marshal(messageWithExtension3) + +} + +var SizeTests = []struct { + desc string + pb Message +}{ + {"empty", &pb.OtherMessage{}}, + // Basic types. + {"bool", &pb.Defaults{F_Bool: Bool(true)}}, + {"int32", &pb.Defaults{F_Int32: Int32(12)}}, + {"negative int32", &pb.Defaults{F_Int32: Int32(-1)}}, + {"small int64", &pb.Defaults{F_Int64: Int64(1)}}, + {"big int64", &pb.Defaults{F_Int64: Int64(1 << 20)}}, + {"negative int64", &pb.Defaults{F_Int64: Int64(-1)}}, + {"fixed32", &pb.Defaults{F_Fixed32: Uint32(71)}}, + {"fixed64", &pb.Defaults{F_Fixed64: Uint64(72)}}, + {"uint32", &pb.Defaults{F_Uint32: Uint32(123)}}, + {"uint64", &pb.Defaults{F_Uint64: Uint64(124)}}, + {"float", &pb.Defaults{F_Float: Float32(12.6)}}, + {"double", &pb.Defaults{F_Double: Float64(13.9)}}, + {"string", &pb.Defaults{F_String: String("niles")}}, + {"bytes", &pb.Defaults{F_Bytes: []byte("wowsa")}}, + {"bytes, empty", &pb.Defaults{F_Bytes: []byte{}}}, + {"sint32", &pb.Defaults{F_Sint32: Int32(65)}}, + {"sint64", &pb.Defaults{F_Sint64: Int64(67)}}, + {"enum", &pb.Defaults{F_Enum: pb.Defaults_BLUE.Enum()}}, + // Repeated. + {"empty repeated bool", &pb.MoreRepeated{Bools: []bool{}}}, + {"repeated bool", &pb.MoreRepeated{Bools: []bool{false, true, true, false}}}, + {"packed repeated bool", &pb.MoreRepeated{BoolsPacked: []bool{false, true, true, false, true, true, true}}}, + {"repeated int32", &pb.MoreRepeated{Ints: []int32{1, 12203, 1729, -1}}}, + {"repeated int32 packed", &pb.MoreRepeated{IntsPacked: []int32{1, 12203, 1729}}}, + {"repeated int64 packed", &pb.MoreRepeated{Int64SPacked: []int64{ + // Need enough large numbers to verify that the header is counting the number of bytes + // for the field, not the number of elements. + 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, + 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, 1 << 62, + }}}, + {"repeated string", &pb.MoreRepeated{Strings: []string{"r", "ken", "gri"}}}, + {"repeated fixed", &pb.MoreRepeated{Fixeds: []uint32{1, 2, 3, 4}}}, + // Nested. + {"nested", &pb.OldMessage{Nested: &pb.OldMessage_Nested{Name: String("whatever")}}}, + {"group", &pb.GroupOld{G: &pb.GroupOld_G{X: Int32(12345)}}}, + // Other things. + {"unrecognized", &pb.MoreRepeated{XXX_unrecognized: []byte{13<<3 | 0, 4}}}, + {"extension (unencoded)", messageWithExtension1}, + {"extension (encoded)", messageWithExtension3}, + // proto3 message + {"proto3 empty", &proto3pb.Message{}}, + {"proto3 bool", &proto3pb.Message{TrueScotsman: true}}, + {"proto3 int64", &proto3pb.Message{ResultCount: 1}}, + {"proto3 uint32", &proto3pb.Message{HeightInCm: 123}}, + {"proto3 float", &proto3pb.Message{Score: 12.6}}, + {"proto3 string", &proto3pb.Message{Name: "Snezana"}}, + {"proto3 bytes", &proto3pb.Message{Data: []byte("wowsa")}}, + {"proto3 bytes, empty", &proto3pb.Message{Data: []byte{}}}, + {"proto3 enum", &proto3pb.Message{Hilarity: proto3pb.Message_PUNS}}, + {"proto3 map field with empty bytes", &proto3pb.MessageWithMap{ByteMapping: map[bool][]byte{false: []byte{}}}}, + + {"map field", &pb.MessageWithMap{NameMapping: map[int32]string{1: "Rob", 7: "Andrew"}}}, + {"map field with message", &pb.MessageWithMap{MsgMapping: map[int64]*pb.FloatingPoint{0x7001: &pb.FloatingPoint{F: Float64(2.0)}}}}, + {"map field with bytes", &pb.MessageWithMap{ByteMapping: map[bool][]byte{true: []byte("this time for sure")}}}, + {"map field with empty bytes", &pb.MessageWithMap{ByteMapping: map[bool][]byte{true: []byte{}}}}, + + {"map field with big entry", &pb.MessageWithMap{NameMapping: map[int32]string{8: strings.Repeat("x", 125)}}}, + {"map field with big key and val", &pb.MessageWithMap{StrToStr: map[string]string{strings.Repeat("x", 70): strings.Repeat("y", 70)}}}, + {"map field with big numeric key", &pb.MessageWithMap{NameMapping: map[int32]string{0xf00d: "om nom nom"}}}, + + {"oneof not set", &pb.Oneof{}}, + {"oneof bool", &pb.Oneof{Union: &pb.Oneof_F_Bool{true}}}, + {"oneof zero int32", &pb.Oneof{Union: &pb.Oneof_F_Int32{0}}}, + {"oneof big int32", &pb.Oneof{Union: &pb.Oneof_F_Int32{1 << 20}}}, + {"oneof int64", &pb.Oneof{Union: &pb.Oneof_F_Int64{42}}}, + {"oneof fixed32", &pb.Oneof{Union: &pb.Oneof_F_Fixed32{43}}}, + {"oneof fixed64", &pb.Oneof{Union: &pb.Oneof_F_Fixed64{44}}}, + {"oneof uint32", &pb.Oneof{Union: &pb.Oneof_F_Uint32{45}}}, + {"oneof uint64", &pb.Oneof{Union: &pb.Oneof_F_Uint64{46}}}, + {"oneof float", &pb.Oneof{Union: &pb.Oneof_F_Float{47.1}}}, + {"oneof double", &pb.Oneof{Union: &pb.Oneof_F_Double{48.9}}}, + {"oneof string", &pb.Oneof{Union: &pb.Oneof_F_String{"Rhythmic Fman"}}}, + {"oneof bytes", &pb.Oneof{Union: &pb.Oneof_F_Bytes{[]byte("let go")}}}, + {"oneof sint32", &pb.Oneof{Union: &pb.Oneof_F_Sint32{50}}}, + {"oneof sint64", &pb.Oneof{Union: &pb.Oneof_F_Sint64{51}}}, + {"oneof enum", &pb.Oneof{Union: &pb.Oneof_F_Enum{pb.MyMessage_BLUE}}}, + {"message for oneof", &pb.GoTestField{Label: String("k"), Type: String("v")}}, + {"oneof message", &pb.Oneof{Union: &pb.Oneof_F_Message{&pb.GoTestField{Label: String("k"), Type: String("v")}}}}, + {"oneof group", &pb.Oneof{Union: &pb.Oneof_FGroup{&pb.Oneof_F_Group{X: Int32(52)}}}}, + {"oneof largest tag", &pb.Oneof{Union: &pb.Oneof_F_Largest_Tag{1}}}, + {"multiple oneofs", &pb.Oneof{Union: &pb.Oneof_F_Int32{1}, Tormato: &pb.Oneof_Value{2}}}, +} + +func TestSize(t *testing.T) { + for _, tc := range SizeTests { + size := Size(tc.pb) + b, err := Marshal(tc.pb) + if err != nil { + t.Errorf("%v: Marshal failed: %v", tc.desc, err) + continue + } + if size != len(b) { + t.Errorf("%v: Size(%v) = %d, want %d", tc.desc, tc.pb, size, len(b)) + t.Logf("%v: bytes: %#v", tc.desc, b) + } + } +} diff --git a/vendor/github.com/golang/protobuf/proto/testdata/Makefile b/vendor/github.com/golang/protobuf/proto/testdata/Makefile new file mode 100644 index 00000000..fc288628 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/testdata/Makefile @@ -0,0 +1,50 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + + +include ../../Make.protobuf + +all: regenerate + +regenerate: + rm -f test.pb.go + make test.pb.go + +# The following rules are just aids to development. Not needed for typical testing. + +diff: regenerate + git diff test.pb.go + +restore: + cp test.pb.go.golden test.pb.go + +preserve: + cp test.pb.go test.pb.go.golden diff --git a/vendor/github.com/golang/protobuf/proto/testdata/golden_test.go b/vendor/github.com/golang/protobuf/proto/testdata/golden_test.go new file mode 100644 index 00000000..7172d0e9 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/testdata/golden_test.go @@ -0,0 +1,86 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Verify that the compiler output for test.proto is unchanged. + +package testdata + +import ( + "crypto/sha1" + "fmt" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "testing" +) + +// sum returns in string form (for easy comparison) the SHA-1 hash of the named file. +func sum(t *testing.T, name string) string { + data, err := ioutil.ReadFile(name) + if err != nil { + t.Fatal(err) + } + t.Logf("sum(%q): length is %d", name, len(data)) + hash := sha1.New() + _, err = hash.Write(data) + if err != nil { + t.Fatal(err) + } + return fmt.Sprintf("% x", hash.Sum(nil)) +} + +func run(t *testing.T, name string, args ...string) { + cmd := exec.Command(name, args...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + t.Fatal(err) + } +} + +func TestGolden(t *testing.T) { + // Compute the original checksum. + goldenSum := sum(t, "test.pb.go") + // Run the proto compiler. + run(t, "protoc", "--go_out="+os.TempDir(), "test.proto") + newFile := filepath.Join(os.TempDir(), "test.pb.go") + defer os.Remove(newFile) + // Compute the new checksum. + newSum := sum(t, newFile) + // Verify + if newSum != goldenSum { + run(t, "diff", "-u", "test.pb.go", newFile) + t.Fatal("Code generated by protoc-gen-go has changed; update test.pb.go") + } +} diff --git a/vendor/github.com/golang/protobuf/proto/testdata/test.pb.go b/vendor/github.com/golang/protobuf/proto/testdata/test.pb.go new file mode 100644 index 00000000..c734a50c --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/testdata/test.pb.go @@ -0,0 +1,4004 @@ +// Code generated by protoc-gen-go. +// source: test.proto +// DO NOT EDIT! + +/* +Package testdata is a generated protocol buffer package. + +It is generated from these files: + test.proto + +It has these top-level messages: + GoEnum + GoTestField + GoTest + GoSkipTest + NonPackedTest + PackedTest + MaxTag + OldMessage + NewMessage + InnerMessage + OtherMessage + RequiredInnerMessage + MyMessage + Ext + ComplexExtension + DefaultsMessage + MyMessageSet + Empty + MessageList + Strings + Defaults + SubDefaults + RepeatedEnum + MoreRepeated + GroupOld + GroupNew + FloatingPoint + MessageWithMap + Oneof + Communique +*/ +package testdata + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type FOO int32 + +const ( + FOO_FOO1 FOO = 1 +) + +var FOO_name = map[int32]string{ + 1: "FOO1", +} +var FOO_value = map[string]int32{ + "FOO1": 1, +} + +func (x FOO) Enum() *FOO { + p := new(FOO) + *p = x + return p +} +func (x FOO) String() string { + return proto.EnumName(FOO_name, int32(x)) +} +func (x *FOO) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FOO_value, data, "FOO") + if err != nil { + return err + } + *x = FOO(value) + return nil +} +func (FOO) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +// An enum, for completeness. +type GoTest_KIND int32 + +const ( + GoTest_VOID GoTest_KIND = 0 + // Basic types + GoTest_BOOL GoTest_KIND = 1 + GoTest_BYTES GoTest_KIND = 2 + GoTest_FINGERPRINT GoTest_KIND = 3 + GoTest_FLOAT GoTest_KIND = 4 + GoTest_INT GoTest_KIND = 5 + GoTest_STRING GoTest_KIND = 6 + GoTest_TIME GoTest_KIND = 7 + // Groupings + GoTest_TUPLE GoTest_KIND = 8 + GoTest_ARRAY GoTest_KIND = 9 + GoTest_MAP GoTest_KIND = 10 + // Table types + GoTest_TABLE GoTest_KIND = 11 + // Functions + GoTest_FUNCTION GoTest_KIND = 12 +) + +var GoTest_KIND_name = map[int32]string{ + 0: "VOID", + 1: "BOOL", + 2: "BYTES", + 3: "FINGERPRINT", + 4: "FLOAT", + 5: "INT", + 6: "STRING", + 7: "TIME", + 8: "TUPLE", + 9: "ARRAY", + 10: "MAP", + 11: "TABLE", + 12: "FUNCTION", +} +var GoTest_KIND_value = map[string]int32{ + "VOID": 0, + "BOOL": 1, + "BYTES": 2, + "FINGERPRINT": 3, + "FLOAT": 4, + "INT": 5, + "STRING": 6, + "TIME": 7, + "TUPLE": 8, + "ARRAY": 9, + "MAP": 10, + "TABLE": 11, + "FUNCTION": 12, +} + +func (x GoTest_KIND) Enum() *GoTest_KIND { + p := new(GoTest_KIND) + *p = x + return p +} +func (x GoTest_KIND) String() string { + return proto.EnumName(GoTest_KIND_name, int32(x)) +} +func (x *GoTest_KIND) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(GoTest_KIND_value, data, "GoTest_KIND") + if err != nil { + return err + } + *x = GoTest_KIND(value) + return nil +} +func (GoTest_KIND) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } + +type MyMessage_Color int32 + +const ( + MyMessage_RED MyMessage_Color = 0 + MyMessage_GREEN MyMessage_Color = 1 + MyMessage_BLUE MyMessage_Color = 2 +) + +var MyMessage_Color_name = map[int32]string{ + 0: "RED", + 1: "GREEN", + 2: "BLUE", +} +var MyMessage_Color_value = map[string]int32{ + "RED": 0, + "GREEN": 1, + "BLUE": 2, +} + +func (x MyMessage_Color) Enum() *MyMessage_Color { + p := new(MyMessage_Color) + *p = x + return p +} +func (x MyMessage_Color) String() string { + return proto.EnumName(MyMessage_Color_name, int32(x)) +} +func (x *MyMessage_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MyMessage_Color_value, data, "MyMessage_Color") + if err != nil { + return err + } + *x = MyMessage_Color(value) + return nil +} +func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } + +type DefaultsMessage_DefaultsEnum int32 + +const ( + DefaultsMessage_ZERO DefaultsMessage_DefaultsEnum = 0 + DefaultsMessage_ONE DefaultsMessage_DefaultsEnum = 1 + DefaultsMessage_TWO DefaultsMessage_DefaultsEnum = 2 +) + +var DefaultsMessage_DefaultsEnum_name = map[int32]string{ + 0: "ZERO", + 1: "ONE", + 2: "TWO", +} +var DefaultsMessage_DefaultsEnum_value = map[string]int32{ + "ZERO": 0, + "ONE": 1, + "TWO": 2, +} + +func (x DefaultsMessage_DefaultsEnum) Enum() *DefaultsMessage_DefaultsEnum { + p := new(DefaultsMessage_DefaultsEnum) + *p = x + return p +} +func (x DefaultsMessage_DefaultsEnum) String() string { + return proto.EnumName(DefaultsMessage_DefaultsEnum_name, int32(x)) +} +func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(DefaultsMessage_DefaultsEnum_value, data, "DefaultsMessage_DefaultsEnum") + if err != nil { + return err + } + *x = DefaultsMessage_DefaultsEnum(value) + return nil +} +func (DefaultsMessage_DefaultsEnum) EnumDescriptor() ([]byte, []int) { + return fileDescriptor0, []int{15, 0} +} + +type Defaults_Color int32 + +const ( + Defaults_RED Defaults_Color = 0 + Defaults_GREEN Defaults_Color = 1 + Defaults_BLUE Defaults_Color = 2 +) + +var Defaults_Color_name = map[int32]string{ + 0: "RED", + 1: "GREEN", + 2: "BLUE", +} +var Defaults_Color_value = map[string]int32{ + "RED": 0, + "GREEN": 1, + "BLUE": 2, +} + +func (x Defaults_Color) Enum() *Defaults_Color { + p := new(Defaults_Color) + *p = x + return p +} +func (x Defaults_Color) String() string { + return proto.EnumName(Defaults_Color_name, int32(x)) +} +func (x *Defaults_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Defaults_Color_value, data, "Defaults_Color") + if err != nil { + return err + } + *x = Defaults_Color(value) + return nil +} +func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0} } + +type RepeatedEnum_Color int32 + +const ( + RepeatedEnum_RED RepeatedEnum_Color = 1 +) + +var RepeatedEnum_Color_name = map[int32]string{ + 1: "RED", +} +var RepeatedEnum_Color_value = map[string]int32{ + "RED": 1, +} + +func (x RepeatedEnum_Color) Enum() *RepeatedEnum_Color { + p := new(RepeatedEnum_Color) + *p = x + return p +} +func (x RepeatedEnum_Color) String() string { + return proto.EnumName(RepeatedEnum_Color_name, int32(x)) +} +func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(RepeatedEnum_Color_value, data, "RepeatedEnum_Color") + if err != nil { + return err + } + *x = RepeatedEnum_Color(value) + return nil +} +func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} } + +type GoEnum struct { + Foo *FOO `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoEnum) Reset() { *m = GoEnum{} } +func (m *GoEnum) String() string { return proto.CompactTextString(m) } +func (*GoEnum) ProtoMessage() {} +func (*GoEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *GoEnum) GetFoo() FOO { + if m != nil && m.Foo != nil { + return *m.Foo + } + return FOO_FOO1 +} + +type GoTestField struct { + Label *string `protobuf:"bytes,1,req,name=Label,json=label" json:"Label,omitempty"` + Type *string `protobuf:"bytes,2,req,name=Type,json=type" json:"Type,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTestField) Reset() { *m = GoTestField{} } +func (m *GoTestField) String() string { return proto.CompactTextString(m) } +func (*GoTestField) ProtoMessage() {} +func (*GoTestField) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *GoTestField) GetLabel() string { + if m != nil && m.Label != nil { + return *m.Label + } + return "" +} + +func (m *GoTestField) GetType() string { + if m != nil && m.Type != nil { + return *m.Type + } + return "" +} + +type GoTest struct { + // Some typical parameters + Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,json=kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` + Table *string `protobuf:"bytes,2,opt,name=Table,json=table" json:"Table,omitempty"` + Param *int32 `protobuf:"varint,3,opt,name=Param,json=param" json:"Param,omitempty"` + // Required, repeated and optional foreign fields. + RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField,json=repeatedField" json:"RepeatedField,omitempty"` + OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField,json=optionalField" json:"OptionalField,omitempty"` + // Required fields of all basic types + F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required,json=fBoolRequired" json:"F_Bool_required,omitempty"` + F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required,json=fInt32Required" json:"F_Int32_required,omitempty"` + F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required,json=fInt64Required" json:"F_Int64_required,omitempty"` + F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=fFixed32Required" json:"F_Fixed32_required,omitempty"` + F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=fFixed64Required" json:"F_Fixed64_required,omitempty"` + F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required,json=fUint32Required" json:"F_Uint32_required,omitempty"` + F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required,json=fUint64Required" json:"F_Uint64_required,omitempty"` + F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=fFloatRequired" json:"F_Float_required,omitempty"` + F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=fDoubleRequired" json:"F_Double_required,omitempty"` + F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required,json=fStringRequired" json:"F_String_required,omitempty"` + F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required,json=fBytesRequired" json:"F_Bytes_required,omitempty"` + F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=fSint32Required" json:"F_Sint32_required,omitempty"` + F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=fSint64Required" json:"F_Sint64_required,omitempty"` + // Repeated fields of all basic types + F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated,json=fBoolRepeated" json:"F_Bool_repeated,omitempty"` + F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated,json=fInt32Repeated" json:"F_Int32_repeated,omitempty"` + F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated,json=fInt64Repeated" json:"F_Int64_repeated,omitempty"` + F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=fFixed32Repeated" json:"F_Fixed32_repeated,omitempty"` + F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=fFixed64Repeated" json:"F_Fixed64_repeated,omitempty"` + F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=fUint32Repeated" json:"F_Uint32_repeated,omitempty"` + F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=fUint64Repeated" json:"F_Uint64_repeated,omitempty"` + F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=fFloatRepeated" json:"F_Float_repeated,omitempty"` + F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=fDoubleRepeated" json:"F_Double_repeated,omitempty"` + F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated,json=fStringRepeated" json:"F_String_repeated,omitempty"` + F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=fBytesRepeated" json:"F_Bytes_repeated,omitempty"` + F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=fSint32Repeated" json:"F_Sint32_repeated,omitempty"` + F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=fSint64Repeated" json:"F_Sint64_repeated,omitempty"` + // Optional fields of all basic types + F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional,json=fBoolOptional" json:"F_Bool_optional,omitempty"` + F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional,json=fInt32Optional" json:"F_Int32_optional,omitempty"` + F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional,json=fInt64Optional" json:"F_Int64_optional,omitempty"` + F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=fFixed32Optional" json:"F_Fixed32_optional,omitempty"` + F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=fFixed64Optional" json:"F_Fixed64_optional,omitempty"` + F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional,json=fUint32Optional" json:"F_Uint32_optional,omitempty"` + F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional,json=fUint64Optional" json:"F_Uint64_optional,omitempty"` + F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=fFloatOptional" json:"F_Float_optional,omitempty"` + F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=fDoubleOptional" json:"F_Double_optional,omitempty"` + F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional,json=fStringOptional" json:"F_String_optional,omitempty"` + F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=fBytesOptional" json:"F_Bytes_optional,omitempty"` + F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=fSint32Optional" json:"F_Sint32_optional,omitempty"` + F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=fSint64Optional" json:"F_Sint64_optional,omitempty"` + // Default-valued fields of all basic types + F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=fBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"` + F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=fInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"` + F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=fInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"` + F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=fFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` + F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=fFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` + F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=fUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` + F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=fUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` + F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=fFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"` + F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=fDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"` + F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,json=fStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` + F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=fBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` + F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=fSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` + F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=fSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` + // Packed repeated fields (no string or bytes). + F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=fBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"` + F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=fInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"` + F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=fInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"` + F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=fFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"` + F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=fFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"` + F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=fUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"` + F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=fUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"` + F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=fFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"` + F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=fDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"` + F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=fSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"` + F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=fSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"` + Requiredgroup *GoTest_RequiredGroup `protobuf:"group,70,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` + Repeatedgroup []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` + Optionalgroup *GoTest_OptionalGroup `protobuf:"group,90,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTest) Reset() { *m = GoTest{} } +func (m *GoTest) String() string { return proto.CompactTextString(m) } +func (*GoTest) ProtoMessage() {} +func (*GoTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +const Default_GoTest_F_BoolDefaulted bool = true +const Default_GoTest_F_Int32Defaulted int32 = 32 +const Default_GoTest_F_Int64Defaulted int64 = 64 +const Default_GoTest_F_Fixed32Defaulted uint32 = 320 +const Default_GoTest_F_Fixed64Defaulted uint64 = 640 +const Default_GoTest_F_Uint32Defaulted uint32 = 3200 +const Default_GoTest_F_Uint64Defaulted uint64 = 6400 +const Default_GoTest_F_FloatDefaulted float32 = 314159 +const Default_GoTest_F_DoubleDefaulted float64 = 271828 +const Default_GoTest_F_StringDefaulted string = "hello, \"world!\"\n" + +var Default_GoTest_F_BytesDefaulted []byte = []byte("Bignose") + +const Default_GoTest_F_Sint32Defaulted int32 = -32 +const Default_GoTest_F_Sint64Defaulted int64 = -64 + +func (m *GoTest) GetKind() GoTest_KIND { + if m != nil && m.Kind != nil { + return *m.Kind + } + return GoTest_VOID +} + +func (m *GoTest) GetTable() string { + if m != nil && m.Table != nil { + return *m.Table + } + return "" +} + +func (m *GoTest) GetParam() int32 { + if m != nil && m.Param != nil { + return *m.Param + } + return 0 +} + +func (m *GoTest) GetRequiredField() *GoTestField { + if m != nil { + return m.RequiredField + } + return nil +} + +func (m *GoTest) GetRepeatedField() []*GoTestField { + if m != nil { + return m.RepeatedField + } + return nil +} + +func (m *GoTest) GetOptionalField() *GoTestField { + if m != nil { + return m.OptionalField + } + return nil +} + +func (m *GoTest) GetF_BoolRequired() bool { + if m != nil && m.F_BoolRequired != nil { + return *m.F_BoolRequired + } + return false +} + +func (m *GoTest) GetF_Int32Required() int32 { + if m != nil && m.F_Int32Required != nil { + return *m.F_Int32Required + } + return 0 +} + +func (m *GoTest) GetF_Int64Required() int64 { + if m != nil && m.F_Int64Required != nil { + return *m.F_Int64Required + } + return 0 +} + +func (m *GoTest) GetF_Fixed32Required() uint32 { + if m != nil && m.F_Fixed32Required != nil { + return *m.F_Fixed32Required + } + return 0 +} + +func (m *GoTest) GetF_Fixed64Required() uint64 { + if m != nil && m.F_Fixed64Required != nil { + return *m.F_Fixed64Required + } + return 0 +} + +func (m *GoTest) GetF_Uint32Required() uint32 { + if m != nil && m.F_Uint32Required != nil { + return *m.F_Uint32Required + } + return 0 +} + +func (m *GoTest) GetF_Uint64Required() uint64 { + if m != nil && m.F_Uint64Required != nil { + return *m.F_Uint64Required + } + return 0 +} + +func (m *GoTest) GetF_FloatRequired() float32 { + if m != nil && m.F_FloatRequired != nil { + return *m.F_FloatRequired + } + return 0 +} + +func (m *GoTest) GetF_DoubleRequired() float64 { + if m != nil && m.F_DoubleRequired != nil { + return *m.F_DoubleRequired + } + return 0 +} + +func (m *GoTest) GetF_StringRequired() string { + if m != nil && m.F_StringRequired != nil { + return *m.F_StringRequired + } + return "" +} + +func (m *GoTest) GetF_BytesRequired() []byte { + if m != nil { + return m.F_BytesRequired + } + return nil +} + +func (m *GoTest) GetF_Sint32Required() int32 { + if m != nil && m.F_Sint32Required != nil { + return *m.F_Sint32Required + } + return 0 +} + +func (m *GoTest) GetF_Sint64Required() int64 { + if m != nil && m.F_Sint64Required != nil { + return *m.F_Sint64Required + } + return 0 +} + +func (m *GoTest) GetF_BoolRepeated() []bool { + if m != nil { + return m.F_BoolRepeated + } + return nil +} + +func (m *GoTest) GetF_Int32Repeated() []int32 { + if m != nil { + return m.F_Int32Repeated + } + return nil +} + +func (m *GoTest) GetF_Int64Repeated() []int64 { + if m != nil { + return m.F_Int64Repeated + } + return nil +} + +func (m *GoTest) GetF_Fixed32Repeated() []uint32 { + if m != nil { + return m.F_Fixed32Repeated + } + return nil +} + +func (m *GoTest) GetF_Fixed64Repeated() []uint64 { + if m != nil { + return m.F_Fixed64Repeated + } + return nil +} + +func (m *GoTest) GetF_Uint32Repeated() []uint32 { + if m != nil { + return m.F_Uint32Repeated + } + return nil +} + +func (m *GoTest) GetF_Uint64Repeated() []uint64 { + if m != nil { + return m.F_Uint64Repeated + } + return nil +} + +func (m *GoTest) GetF_FloatRepeated() []float32 { + if m != nil { + return m.F_FloatRepeated + } + return nil +} + +func (m *GoTest) GetF_DoubleRepeated() []float64 { + if m != nil { + return m.F_DoubleRepeated + } + return nil +} + +func (m *GoTest) GetF_StringRepeated() []string { + if m != nil { + return m.F_StringRepeated + } + return nil +} + +func (m *GoTest) GetF_BytesRepeated() [][]byte { + if m != nil { + return m.F_BytesRepeated + } + return nil +} + +func (m *GoTest) GetF_Sint32Repeated() []int32 { + if m != nil { + return m.F_Sint32Repeated + } + return nil +} + +func (m *GoTest) GetF_Sint64Repeated() []int64 { + if m != nil { + return m.F_Sint64Repeated + } + return nil +} + +func (m *GoTest) GetF_BoolOptional() bool { + if m != nil && m.F_BoolOptional != nil { + return *m.F_BoolOptional + } + return false +} + +func (m *GoTest) GetF_Int32Optional() int32 { + if m != nil && m.F_Int32Optional != nil { + return *m.F_Int32Optional + } + return 0 +} + +func (m *GoTest) GetF_Int64Optional() int64 { + if m != nil && m.F_Int64Optional != nil { + return *m.F_Int64Optional + } + return 0 +} + +func (m *GoTest) GetF_Fixed32Optional() uint32 { + if m != nil && m.F_Fixed32Optional != nil { + return *m.F_Fixed32Optional + } + return 0 +} + +func (m *GoTest) GetF_Fixed64Optional() uint64 { + if m != nil && m.F_Fixed64Optional != nil { + return *m.F_Fixed64Optional + } + return 0 +} + +func (m *GoTest) GetF_Uint32Optional() uint32 { + if m != nil && m.F_Uint32Optional != nil { + return *m.F_Uint32Optional + } + return 0 +} + +func (m *GoTest) GetF_Uint64Optional() uint64 { + if m != nil && m.F_Uint64Optional != nil { + return *m.F_Uint64Optional + } + return 0 +} + +func (m *GoTest) GetF_FloatOptional() float32 { + if m != nil && m.F_FloatOptional != nil { + return *m.F_FloatOptional + } + return 0 +} + +func (m *GoTest) GetF_DoubleOptional() float64 { + if m != nil && m.F_DoubleOptional != nil { + return *m.F_DoubleOptional + } + return 0 +} + +func (m *GoTest) GetF_StringOptional() string { + if m != nil && m.F_StringOptional != nil { + return *m.F_StringOptional + } + return "" +} + +func (m *GoTest) GetF_BytesOptional() []byte { + if m != nil { + return m.F_BytesOptional + } + return nil +} + +func (m *GoTest) GetF_Sint32Optional() int32 { + if m != nil && m.F_Sint32Optional != nil { + return *m.F_Sint32Optional + } + return 0 +} + +func (m *GoTest) GetF_Sint64Optional() int64 { + if m != nil && m.F_Sint64Optional != nil { + return *m.F_Sint64Optional + } + return 0 +} + +func (m *GoTest) GetF_BoolDefaulted() bool { + if m != nil && m.F_BoolDefaulted != nil { + return *m.F_BoolDefaulted + } + return Default_GoTest_F_BoolDefaulted +} + +func (m *GoTest) GetF_Int32Defaulted() int32 { + if m != nil && m.F_Int32Defaulted != nil { + return *m.F_Int32Defaulted + } + return Default_GoTest_F_Int32Defaulted +} + +func (m *GoTest) GetF_Int64Defaulted() int64 { + if m != nil && m.F_Int64Defaulted != nil { + return *m.F_Int64Defaulted + } + return Default_GoTest_F_Int64Defaulted +} + +func (m *GoTest) GetF_Fixed32Defaulted() uint32 { + if m != nil && m.F_Fixed32Defaulted != nil { + return *m.F_Fixed32Defaulted + } + return Default_GoTest_F_Fixed32Defaulted +} + +func (m *GoTest) GetF_Fixed64Defaulted() uint64 { + if m != nil && m.F_Fixed64Defaulted != nil { + return *m.F_Fixed64Defaulted + } + return Default_GoTest_F_Fixed64Defaulted +} + +func (m *GoTest) GetF_Uint32Defaulted() uint32 { + if m != nil && m.F_Uint32Defaulted != nil { + return *m.F_Uint32Defaulted + } + return Default_GoTest_F_Uint32Defaulted +} + +func (m *GoTest) GetF_Uint64Defaulted() uint64 { + if m != nil && m.F_Uint64Defaulted != nil { + return *m.F_Uint64Defaulted + } + return Default_GoTest_F_Uint64Defaulted +} + +func (m *GoTest) GetF_FloatDefaulted() float32 { + if m != nil && m.F_FloatDefaulted != nil { + return *m.F_FloatDefaulted + } + return Default_GoTest_F_FloatDefaulted +} + +func (m *GoTest) GetF_DoubleDefaulted() float64 { + if m != nil && m.F_DoubleDefaulted != nil { + return *m.F_DoubleDefaulted + } + return Default_GoTest_F_DoubleDefaulted +} + +func (m *GoTest) GetF_StringDefaulted() string { + if m != nil && m.F_StringDefaulted != nil { + return *m.F_StringDefaulted + } + return Default_GoTest_F_StringDefaulted +} + +func (m *GoTest) GetF_BytesDefaulted() []byte { + if m != nil && m.F_BytesDefaulted != nil { + return m.F_BytesDefaulted + } + return append([]byte(nil), Default_GoTest_F_BytesDefaulted...) +} + +func (m *GoTest) GetF_Sint32Defaulted() int32 { + if m != nil && m.F_Sint32Defaulted != nil { + return *m.F_Sint32Defaulted + } + return Default_GoTest_F_Sint32Defaulted +} + +func (m *GoTest) GetF_Sint64Defaulted() int64 { + if m != nil && m.F_Sint64Defaulted != nil { + return *m.F_Sint64Defaulted + } + return Default_GoTest_F_Sint64Defaulted +} + +func (m *GoTest) GetF_BoolRepeatedPacked() []bool { + if m != nil { + return m.F_BoolRepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Int32RepeatedPacked() []int32 { + if m != nil { + return m.F_Int32RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Int64RepeatedPacked() []int64 { + if m != nil { + return m.F_Int64RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Fixed32RepeatedPacked() []uint32 { + if m != nil { + return m.F_Fixed32RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Fixed64RepeatedPacked() []uint64 { + if m != nil { + return m.F_Fixed64RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Uint32RepeatedPacked() []uint32 { + if m != nil { + return m.F_Uint32RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Uint64RepeatedPacked() []uint64 { + if m != nil { + return m.F_Uint64RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_FloatRepeatedPacked() []float32 { + if m != nil { + return m.F_FloatRepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_DoubleRepeatedPacked() []float64 { + if m != nil { + return m.F_DoubleRepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Sint32RepeatedPacked() []int32 { + if m != nil { + return m.F_Sint32RepeatedPacked + } + return nil +} + +func (m *GoTest) GetF_Sint64RepeatedPacked() []int64 { + if m != nil { + return m.F_Sint64RepeatedPacked + } + return nil +} + +func (m *GoTest) GetRequiredgroup() *GoTest_RequiredGroup { + if m != nil { + return m.Requiredgroup + } + return nil +} + +func (m *GoTest) GetRepeatedgroup() []*GoTest_RepeatedGroup { + if m != nil { + return m.Repeatedgroup + } + return nil +} + +func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup { + if m != nil { + return m.Optionalgroup + } + return nil +} + +// Required, repeated, and optional groups. +type GoTest_RequiredGroup struct { + RequiredField *string `protobuf:"bytes,71,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTest_RequiredGroup) Reset() { *m = GoTest_RequiredGroup{} } +func (m *GoTest_RequiredGroup) String() string { return proto.CompactTextString(m) } +func (*GoTest_RequiredGroup) ProtoMessage() {} +func (*GoTest_RequiredGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } + +func (m *GoTest_RequiredGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" +} + +type GoTest_RepeatedGroup struct { + RequiredField *string `protobuf:"bytes,81,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTest_RepeatedGroup) Reset() { *m = GoTest_RepeatedGroup{} } +func (m *GoTest_RepeatedGroup) String() string { return proto.CompactTextString(m) } +func (*GoTest_RepeatedGroup) ProtoMessage() {} +func (*GoTest_RepeatedGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 1} } + +func (m *GoTest_RepeatedGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" +} + +type GoTest_OptionalGroup struct { + RequiredField *string `protobuf:"bytes,91,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTest_OptionalGroup) Reset() { *m = GoTest_OptionalGroup{} } +func (m *GoTest_OptionalGroup) String() string { return proto.CompactTextString(m) } +func (*GoTest_OptionalGroup) ProtoMessage() {} +func (*GoTest_OptionalGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 2} } + +func (m *GoTest_OptionalGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" +} + +// For testing skipping of unrecognized fields. +// Numbers are all big, larger than tag numbers in GoTestField, +// the message used in the corresponding test. +type GoSkipTest struct { + SkipInt32 *int32 `protobuf:"varint,11,req,name=skip_int32,json=skipInt32" json:"skip_int32,omitempty"` + SkipFixed32 *uint32 `protobuf:"fixed32,12,req,name=skip_fixed32,json=skipFixed32" json:"skip_fixed32,omitempty"` + SkipFixed64 *uint64 `protobuf:"fixed64,13,req,name=skip_fixed64,json=skipFixed64" json:"skip_fixed64,omitempty"` + SkipString *string `protobuf:"bytes,14,req,name=skip_string,json=skipString" json:"skip_string,omitempty"` + Skipgroup *GoSkipTest_SkipGroup `protobuf:"group,15,req,name=SkipGroup,json=skipgroup" json:"skipgroup,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoSkipTest) Reset() { *m = GoSkipTest{} } +func (m *GoSkipTest) String() string { return proto.CompactTextString(m) } +func (*GoSkipTest) ProtoMessage() {} +func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *GoSkipTest) GetSkipInt32() int32 { + if m != nil && m.SkipInt32 != nil { + return *m.SkipInt32 + } + return 0 +} + +func (m *GoSkipTest) GetSkipFixed32() uint32 { + if m != nil && m.SkipFixed32 != nil { + return *m.SkipFixed32 + } + return 0 +} + +func (m *GoSkipTest) GetSkipFixed64() uint64 { + if m != nil && m.SkipFixed64 != nil { + return *m.SkipFixed64 + } + return 0 +} + +func (m *GoSkipTest) GetSkipString() string { + if m != nil && m.SkipString != nil { + return *m.SkipString + } + return "" +} + +func (m *GoSkipTest) GetSkipgroup() *GoSkipTest_SkipGroup { + if m != nil { + return m.Skipgroup + } + return nil +} + +type GoSkipTest_SkipGroup struct { + GroupInt32 *int32 `protobuf:"varint,16,req,name=group_int32,json=groupInt32" json:"group_int32,omitempty"` + GroupString *string `protobuf:"bytes,17,req,name=group_string,json=groupString" json:"group_string,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} } +func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) } +func (*GoSkipTest_SkipGroup) ProtoMessage() {} +func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} } + +func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 { + if m != nil && m.GroupInt32 != nil { + return *m.GroupInt32 + } + return 0 +} + +func (m *GoSkipTest_SkipGroup) GetGroupString() string { + if m != nil && m.GroupString != nil { + return *m.GroupString + } + return "" +} + +// For testing packed/non-packed decoder switching. +// A serialized instance of one should be deserializable as the other. +type NonPackedTest struct { + A []int32 `protobuf:"varint,1,rep,name=a" json:"a,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonPackedTest) Reset() { *m = NonPackedTest{} } +func (m *NonPackedTest) String() string { return proto.CompactTextString(m) } +func (*NonPackedTest) ProtoMessage() {} +func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *NonPackedTest) GetA() []int32 { + if m != nil { + return m.A + } + return nil +} + +type PackedTest struct { + B []int32 `protobuf:"varint,1,rep,packed,name=b" json:"b,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *PackedTest) Reset() { *m = PackedTest{} } +func (m *PackedTest) String() string { return proto.CompactTextString(m) } +func (*PackedTest) ProtoMessage() {} +func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *PackedTest) GetB() []int32 { + if m != nil { + return m.B + } + return nil +} + +type MaxTag struct { + // Maximum possible tag number. + LastField *string `protobuf:"bytes,536870911,opt,name=last_field,json=lastField" json:"last_field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MaxTag) Reset() { *m = MaxTag{} } +func (m *MaxTag) String() string { return proto.CompactTextString(m) } +func (*MaxTag) ProtoMessage() {} +func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *MaxTag) GetLastField() string { + if m != nil && m.LastField != nil { + return *m.LastField + } + return "" +} + +type OldMessage struct { + Nested *OldMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` + Num *int32 `protobuf:"varint,2,opt,name=num" json:"num,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OldMessage) Reset() { *m = OldMessage{} } +func (m *OldMessage) String() string { return proto.CompactTextString(m) } +func (*OldMessage) ProtoMessage() {} +func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *OldMessage) GetNested() *OldMessage_Nested { + if m != nil { + return m.Nested + } + return nil +} + +func (m *OldMessage) GetNum() int32 { + if m != nil && m.Num != nil { + return *m.Num + } + return 0 +} + +type OldMessage_Nested struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} } +func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) } +func (*OldMessage_Nested) ProtoMessage() {} +func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} } + +func (m *OldMessage_Nested) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +// NewMessage is wire compatible with OldMessage; +// imagine it as a future version. +type NewMessage struct { + Nested *NewMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"` + // This is an int32 in OldMessage. + Num *int64 `protobuf:"varint,2,opt,name=num" json:"num,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NewMessage) Reset() { *m = NewMessage{} } +func (m *NewMessage) String() string { return proto.CompactTextString(m) } +func (*NewMessage) ProtoMessage() {} +func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +func (m *NewMessage) GetNested() *NewMessage_Nested { + if m != nil { + return m.Nested + } + return nil +} + +func (m *NewMessage) GetNum() int64 { + if m != nil && m.Num != nil { + return *m.Num + } + return 0 +} + +type NewMessage_Nested struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + FoodGroup *string `protobuf:"bytes,2,opt,name=food_group,json=foodGroup" json:"food_group,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} } +func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) } +func (*NewMessage_Nested) ProtoMessage() {} +func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} } + +func (m *NewMessage_Nested) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *NewMessage_Nested) GetFoodGroup() string { + if m != nil && m.FoodGroup != nil { + return *m.FoodGroup + } + return "" +} + +type InnerMessage struct { + Host *string `protobuf:"bytes,1,req,name=host" json:"host,omitempty"` + Port *int32 `protobuf:"varint,2,opt,name=port,def=4000" json:"port,omitempty"` + Connected *bool `protobuf:"varint,3,opt,name=connected" json:"connected,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *InnerMessage) Reset() { *m = InnerMessage{} } +func (m *InnerMessage) String() string { return proto.CompactTextString(m) } +func (*InnerMessage) ProtoMessage() {} +func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +const Default_InnerMessage_Port int32 = 4000 + +func (m *InnerMessage) GetHost() string { + if m != nil && m.Host != nil { + return *m.Host + } + return "" +} + +func (m *InnerMessage) GetPort() int32 { + if m != nil && m.Port != nil { + return *m.Port + } + return Default_InnerMessage_Port +} + +func (m *InnerMessage) GetConnected() bool { + if m != nil && m.Connected != nil { + return *m.Connected + } + return false +} + +type OtherMessage struct { + Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` + Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OtherMessage) Reset() { *m = OtherMessage{} } +func (m *OtherMessage) String() string { return proto.CompactTextString(m) } +func (*OtherMessage) ProtoMessage() {} +func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +var extRange_OtherMessage = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*OtherMessage) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OtherMessage +} + +func (m *OtherMessage) GetKey() int64 { + if m != nil && m.Key != nil { + return *m.Key + } + return 0 +} + +func (m *OtherMessage) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *OtherMessage) GetWeight() float32 { + if m != nil && m.Weight != nil { + return *m.Weight + } + return 0 +} + +func (m *OtherMessage) GetInner() *InnerMessage { + if m != nil { + return m.Inner + } + return nil +} + +type RequiredInnerMessage struct { + LeoFinallyWonAnOscar *InnerMessage `protobuf:"bytes,1,req,name=leo_finally_won_an_oscar,json=leoFinallyWonAnOscar" json:"leo_finally_won_an_oscar,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RequiredInnerMessage) Reset() { *m = RequiredInnerMessage{} } +func (m *RequiredInnerMessage) String() string { return proto.CompactTextString(m) } +func (*RequiredInnerMessage) ProtoMessage() {} +func (*RequiredInnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } + +func (m *RequiredInnerMessage) GetLeoFinallyWonAnOscar() *InnerMessage { + if m != nil { + return m.LeoFinallyWonAnOscar + } + return nil +} + +type MyMessage struct { + Count *int32 `protobuf:"varint,1,req,name=count" json:"count,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Quote *string `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"` + Pet []string `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"` + Inner *InnerMessage `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"` + Others []*OtherMessage `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"` + WeMustGoDeeper *RequiredInnerMessage `protobuf:"bytes,13,opt,name=we_must_go_deeper,json=weMustGoDeeper" json:"we_must_go_deeper,omitempty"` + RepInner []*InnerMessage `protobuf:"bytes,12,rep,name=rep_inner,json=repInner" json:"rep_inner,omitempty"` + Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` + Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` + // This field becomes [][]byte in the generated code. + RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes,json=repBytes" json:"rep_bytes,omitempty"` + Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MyMessage) Reset() { *m = MyMessage{} } +func (m *MyMessage) String() string { return proto.CompactTextString(m) } +func (*MyMessage) ProtoMessage() {} +func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } + +var extRange_MyMessage = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MyMessage +} + +func (m *MyMessage) GetCount() int32 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *MyMessage) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MyMessage) GetQuote() string { + if m != nil && m.Quote != nil { + return *m.Quote + } + return "" +} + +func (m *MyMessage) GetPet() []string { + if m != nil { + return m.Pet + } + return nil +} + +func (m *MyMessage) GetInner() *InnerMessage { + if m != nil { + return m.Inner + } + return nil +} + +func (m *MyMessage) GetOthers() []*OtherMessage { + if m != nil { + return m.Others + } + return nil +} + +func (m *MyMessage) GetWeMustGoDeeper() *RequiredInnerMessage { + if m != nil { + return m.WeMustGoDeeper + } + return nil +} + +func (m *MyMessage) GetRepInner() []*InnerMessage { + if m != nil { + return m.RepInner + } + return nil +} + +func (m *MyMessage) GetBikeshed() MyMessage_Color { + if m != nil && m.Bikeshed != nil { + return *m.Bikeshed + } + return MyMessage_RED +} + +func (m *MyMessage) GetSomegroup() *MyMessage_SomeGroup { + if m != nil { + return m.Somegroup + } + return nil +} + +func (m *MyMessage) GetRepBytes() [][]byte { + if m != nil { + return m.RepBytes + } + return nil +} + +func (m *MyMessage) GetBigfloat() float64 { + if m != nil && m.Bigfloat != nil { + return *m.Bigfloat + } + return 0 +} + +type MyMessage_SomeGroup struct { + GroupField *int32 `protobuf:"varint,9,opt,name=group_field,json=groupField" json:"group_field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} } +func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) } +func (*MyMessage_SomeGroup) ProtoMessage() {} +func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } + +func (m *MyMessage_SomeGroup) GetGroupField() int32 { + if m != nil && m.GroupField != nil { + return *m.GroupField + } + return 0 +} + +type Ext struct { + Data *string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Ext) Reset() { *m = Ext{} } +func (m *Ext) String() string { return proto.CompactTextString(m) } +func (*Ext) ProtoMessage() {} +func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } + +func (m *Ext) GetData() string { + if m != nil && m.Data != nil { + return *m.Data + } + return "" +} + +var E_Ext_More = &proto.ExtensionDesc{ + ExtendedType: (*MyMessage)(nil), + ExtensionType: (*Ext)(nil), + Field: 103, + Name: "testdata.Ext.more", + Tag: "bytes,103,opt,name=more", +} + +var E_Ext_Text = &proto.ExtensionDesc{ + ExtendedType: (*MyMessage)(nil), + ExtensionType: (*string)(nil), + Field: 104, + Name: "testdata.Ext.text", + Tag: "bytes,104,opt,name=text", +} + +var E_Ext_Number = &proto.ExtensionDesc{ + ExtendedType: (*MyMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 105, + Name: "testdata.Ext.number", + Tag: "varint,105,opt,name=number", +} + +type ComplexExtension struct { + First *int32 `protobuf:"varint,1,opt,name=first" json:"first,omitempty"` + Second *int32 `protobuf:"varint,2,opt,name=second" json:"second,omitempty"` + Third []int32 `protobuf:"varint,3,rep,name=third" json:"third,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ComplexExtension) Reset() { *m = ComplexExtension{} } +func (m *ComplexExtension) String() string { return proto.CompactTextString(m) } +func (*ComplexExtension) ProtoMessage() {} +func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + +func (m *ComplexExtension) GetFirst() int32 { + if m != nil && m.First != nil { + return *m.First + } + return 0 +} + +func (m *ComplexExtension) GetSecond() int32 { + if m != nil && m.Second != nil { + return *m.Second + } + return 0 +} + +func (m *ComplexExtension) GetThird() []int32 { + if m != nil { + return m.Third + } + return nil +} + +type DefaultsMessage struct { + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DefaultsMessage) Reset() { *m = DefaultsMessage{} } +func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) } +func (*DefaultsMessage) ProtoMessage() {} +func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } + +var extRange_DefaultsMessage = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*DefaultsMessage) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_DefaultsMessage +} + +type MyMessageSet struct { + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MyMessageSet) Reset() { *m = MyMessageSet{} } +func (m *MyMessageSet) String() string { return proto.CompactTextString(m) } +func (*MyMessageSet) ProtoMessage() {} +func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } + +func (m *MyMessageSet) Marshal() ([]byte, error) { + return proto.MarshalMessageSet(&m.XXX_InternalExtensions) +} +func (m *MyMessageSet) Unmarshal(buf []byte) error { + return proto.UnmarshalMessageSet(buf, &m.XXX_InternalExtensions) +} +func (m *MyMessageSet) MarshalJSON() ([]byte, error) { + return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions) +} +func (m *MyMessageSet) UnmarshalJSON(buf []byte) error { + return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions) +} + +// ensure MyMessageSet satisfies proto.Marshaler and proto.Unmarshaler +var _ proto.Marshaler = (*MyMessageSet)(nil) +var _ proto.Unmarshaler = (*MyMessageSet)(nil) + +var extRange_MyMessageSet = []proto.ExtensionRange{ + {100, 2147483646}, +} + +func (*MyMessageSet) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MyMessageSet +} + +type Empty struct { + XXX_unrecognized []byte `json:"-"` +} + +func (m *Empty) Reset() { *m = Empty{} } +func (m *Empty) String() string { return proto.CompactTextString(m) } +func (*Empty) ProtoMessage() {} +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } + +type MessageList struct { + Message []*MessageList_Message `protobuf:"group,1,rep,name=Message,json=message" json:"message,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MessageList) Reset() { *m = MessageList{} } +func (m *MessageList) String() string { return proto.CompactTextString(m) } +func (*MessageList) ProtoMessage() {} +func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + +func (m *MessageList) GetMessage() []*MessageList_Message { + if m != nil { + return m.Message + } + return nil +} + +type MessageList_Message struct { + Name *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"` + Count *int32 `protobuf:"varint,3,req,name=count" json:"count,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MessageList_Message) Reset() { *m = MessageList_Message{} } +func (m *MessageList_Message) String() string { return proto.CompactTextString(m) } +func (*MessageList_Message) ProtoMessage() {} +func (*MessageList_Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} } + +func (m *MessageList_Message) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MessageList_Message) GetCount() int32 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +type Strings struct { + StringField *string `protobuf:"bytes,1,opt,name=string_field,json=stringField" json:"string_field,omitempty"` + BytesField []byte `protobuf:"bytes,2,opt,name=bytes_field,json=bytesField" json:"bytes_field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Strings) Reset() { *m = Strings{} } +func (m *Strings) String() string { return proto.CompactTextString(m) } +func (*Strings) ProtoMessage() {} +func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } + +func (m *Strings) GetStringField() string { + if m != nil && m.StringField != nil { + return *m.StringField + } + return "" +} + +func (m *Strings) GetBytesField() []byte { + if m != nil { + return m.BytesField + } + return nil +} + +type Defaults struct { + // Default-valued fields of all basic types. + // Same as GoTest, but copied here to make testing easier. + F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,def=1" json:"F_Bool,omitempty"` + F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,def=32" json:"F_Int32,omitempty"` + F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,def=64" json:"F_Int64,omitempty"` + F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,def=320" json:"F_Fixed32,omitempty"` + F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,def=640" json:"F_Fixed64,omitempty"` + F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,def=3200" json:"F_Uint32,omitempty"` + F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,def=6400" json:"F_Uint64,omitempty"` + F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,def=314159" json:"F_Float,omitempty"` + F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,def=271828" json:"F_Double,omitempty"` + F_String *string `protobuf:"bytes,10,opt,name=F_String,json=fString,def=hello, \"world!\"\n" json:"F_String,omitempty"` + F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,def=Bignose" json:"F_Bytes,omitempty"` + F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,def=-32" json:"F_Sint32,omitempty"` + F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,def=-64" json:"F_Sint64,omitempty"` + F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` + // More fields with crazy defaults. + F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=fPinf,def=inf" json:"F_Pinf,omitempty"` + F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=fNinf,def=-inf" json:"F_Ninf,omitempty"` + F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=fNan,def=nan" json:"F_Nan,omitempty"` + // Sub-message. + Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"` + // Redundant but explicit defaults. + StrZero *string `protobuf:"bytes,19,opt,name=str_zero,json=strZero,def=" json:"str_zero,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Defaults) Reset() { *m = Defaults{} } +func (m *Defaults) String() string { return proto.CompactTextString(m) } +func (*Defaults) ProtoMessage() {} +func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } + +const Default_Defaults_F_Bool bool = true +const Default_Defaults_F_Int32 int32 = 32 +const Default_Defaults_F_Int64 int64 = 64 +const Default_Defaults_F_Fixed32 uint32 = 320 +const Default_Defaults_F_Fixed64 uint64 = 640 +const Default_Defaults_F_Uint32 uint32 = 3200 +const Default_Defaults_F_Uint64 uint64 = 6400 +const Default_Defaults_F_Float float32 = 314159 +const Default_Defaults_F_Double float64 = 271828 +const Default_Defaults_F_String string = "hello, \"world!\"\n" + +var Default_Defaults_F_Bytes []byte = []byte("Bignose") + +const Default_Defaults_F_Sint32 int32 = -32 +const Default_Defaults_F_Sint64 int64 = -64 +const Default_Defaults_F_Enum Defaults_Color = Defaults_GREEN + +var Default_Defaults_F_Pinf float32 = float32(math.Inf(1)) +var Default_Defaults_F_Ninf float32 = float32(math.Inf(-1)) +var Default_Defaults_F_Nan float32 = float32(math.NaN()) + +func (m *Defaults) GetF_Bool() bool { + if m != nil && m.F_Bool != nil { + return *m.F_Bool + } + return Default_Defaults_F_Bool +} + +func (m *Defaults) GetF_Int32() int32 { + if m != nil && m.F_Int32 != nil { + return *m.F_Int32 + } + return Default_Defaults_F_Int32 +} + +func (m *Defaults) GetF_Int64() int64 { + if m != nil && m.F_Int64 != nil { + return *m.F_Int64 + } + return Default_Defaults_F_Int64 +} + +func (m *Defaults) GetF_Fixed32() uint32 { + if m != nil && m.F_Fixed32 != nil { + return *m.F_Fixed32 + } + return Default_Defaults_F_Fixed32 +} + +func (m *Defaults) GetF_Fixed64() uint64 { + if m != nil && m.F_Fixed64 != nil { + return *m.F_Fixed64 + } + return Default_Defaults_F_Fixed64 +} + +func (m *Defaults) GetF_Uint32() uint32 { + if m != nil && m.F_Uint32 != nil { + return *m.F_Uint32 + } + return Default_Defaults_F_Uint32 +} + +func (m *Defaults) GetF_Uint64() uint64 { + if m != nil && m.F_Uint64 != nil { + return *m.F_Uint64 + } + return Default_Defaults_F_Uint64 +} + +func (m *Defaults) GetF_Float() float32 { + if m != nil && m.F_Float != nil { + return *m.F_Float + } + return Default_Defaults_F_Float +} + +func (m *Defaults) GetF_Double() float64 { + if m != nil && m.F_Double != nil { + return *m.F_Double + } + return Default_Defaults_F_Double +} + +func (m *Defaults) GetF_String() string { + if m != nil && m.F_String != nil { + return *m.F_String + } + return Default_Defaults_F_String +} + +func (m *Defaults) GetF_Bytes() []byte { + if m != nil && m.F_Bytes != nil { + return m.F_Bytes + } + return append([]byte(nil), Default_Defaults_F_Bytes...) +} + +func (m *Defaults) GetF_Sint32() int32 { + if m != nil && m.F_Sint32 != nil { + return *m.F_Sint32 + } + return Default_Defaults_F_Sint32 +} + +func (m *Defaults) GetF_Sint64() int64 { + if m != nil && m.F_Sint64 != nil { + return *m.F_Sint64 + } + return Default_Defaults_F_Sint64 +} + +func (m *Defaults) GetF_Enum() Defaults_Color { + if m != nil && m.F_Enum != nil { + return *m.F_Enum + } + return Default_Defaults_F_Enum +} + +func (m *Defaults) GetF_Pinf() float32 { + if m != nil && m.F_Pinf != nil { + return *m.F_Pinf + } + return Default_Defaults_F_Pinf +} + +func (m *Defaults) GetF_Ninf() float32 { + if m != nil && m.F_Ninf != nil { + return *m.F_Ninf + } + return Default_Defaults_F_Ninf +} + +func (m *Defaults) GetF_Nan() float32 { + if m != nil && m.F_Nan != nil { + return *m.F_Nan + } + return Default_Defaults_F_Nan +} + +func (m *Defaults) GetSub() *SubDefaults { + if m != nil { + return m.Sub + } + return nil +} + +func (m *Defaults) GetStrZero() string { + if m != nil && m.StrZero != nil { + return *m.StrZero + } + return "" +} + +type SubDefaults struct { + N *int64 `protobuf:"varint,1,opt,name=n,def=7" json:"n,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *SubDefaults) Reset() { *m = SubDefaults{} } +func (m *SubDefaults) String() string { return proto.CompactTextString(m) } +func (*SubDefaults) ProtoMessage() {} +func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } + +const Default_SubDefaults_N int64 = 7 + +func (m *SubDefaults) GetN() int64 { + if m != nil && m.N != nil { + return *m.N + } + return Default_SubDefaults_N +} + +type RepeatedEnum struct { + Color []RepeatedEnum_Color `protobuf:"varint,1,rep,name=color,enum=testdata.RepeatedEnum_Color" json:"color,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} } +func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) } +func (*RepeatedEnum) ProtoMessage() {} +func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } + +func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color { + if m != nil { + return m.Color + } + return nil +} + +type MoreRepeated struct { + Bools []bool `protobuf:"varint,1,rep,name=bools" json:"bools,omitempty"` + BoolsPacked []bool `protobuf:"varint,2,rep,packed,name=bools_packed,json=boolsPacked" json:"bools_packed,omitempty"` + Ints []int32 `protobuf:"varint,3,rep,name=ints" json:"ints,omitempty"` + IntsPacked []int32 `protobuf:"varint,4,rep,packed,name=ints_packed,json=intsPacked" json:"ints_packed,omitempty"` + Int64SPacked []int64 `protobuf:"varint,7,rep,packed,name=int64s_packed,json=int64sPacked" json:"int64s_packed,omitempty"` + Strings []string `protobuf:"bytes,5,rep,name=strings" json:"strings,omitempty"` + Fixeds []uint32 `protobuf:"fixed32,6,rep,name=fixeds" json:"fixeds,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MoreRepeated) Reset() { *m = MoreRepeated{} } +func (m *MoreRepeated) String() string { return proto.CompactTextString(m) } +func (*MoreRepeated) ProtoMessage() {} +func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } + +func (m *MoreRepeated) GetBools() []bool { + if m != nil { + return m.Bools + } + return nil +} + +func (m *MoreRepeated) GetBoolsPacked() []bool { + if m != nil { + return m.BoolsPacked + } + return nil +} + +func (m *MoreRepeated) GetInts() []int32 { + if m != nil { + return m.Ints + } + return nil +} + +func (m *MoreRepeated) GetIntsPacked() []int32 { + if m != nil { + return m.IntsPacked + } + return nil +} + +func (m *MoreRepeated) GetInt64SPacked() []int64 { + if m != nil { + return m.Int64SPacked + } + return nil +} + +func (m *MoreRepeated) GetStrings() []string { + if m != nil { + return m.Strings + } + return nil +} + +func (m *MoreRepeated) GetFixeds() []uint32 { + if m != nil { + return m.Fixeds + } + return nil +} + +type GroupOld struct { + G *GroupOld_G `protobuf:"group,101,opt,name=G,json=g" json:"g,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GroupOld) Reset() { *m = GroupOld{} } +func (m *GroupOld) String() string { return proto.CompactTextString(m) } +func (*GroupOld) ProtoMessage() {} +func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } + +func (m *GroupOld) GetG() *GroupOld_G { + if m != nil { + return m.G + } + return nil +} + +type GroupOld_G struct { + X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GroupOld_G) Reset() { *m = GroupOld_G{} } +func (m *GroupOld_G) String() string { return proto.CompactTextString(m) } +func (*GroupOld_G) ProtoMessage() {} +func (*GroupOld_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24, 0} } + +func (m *GroupOld_G) GetX() int32 { + if m != nil && m.X != nil { + return *m.X + } + return 0 +} + +type GroupNew struct { + G *GroupNew_G `protobuf:"group,101,opt,name=G,json=g" json:"g,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GroupNew) Reset() { *m = GroupNew{} } +func (m *GroupNew) String() string { return proto.CompactTextString(m) } +func (*GroupNew) ProtoMessage() {} +func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } + +func (m *GroupNew) GetG() *GroupNew_G { + if m != nil { + return m.G + } + return nil +} + +type GroupNew_G struct { + X *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"` + Y *int32 `protobuf:"varint,3,opt,name=y" json:"y,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GroupNew_G) Reset() { *m = GroupNew_G{} } +func (m *GroupNew_G) String() string { return proto.CompactTextString(m) } +func (*GroupNew_G) ProtoMessage() {} +func (*GroupNew_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25, 0} } + +func (m *GroupNew_G) GetX() int32 { + if m != nil && m.X != nil { + return *m.X + } + return 0 +} + +func (m *GroupNew_G) GetY() int32 { + if m != nil && m.Y != nil { + return *m.Y + } + return 0 +} + +type FloatingPoint struct { + F *float64 `protobuf:"fixed64,1,req,name=f" json:"f,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } +func (m *FloatingPoint) String() string { return proto.CompactTextString(m) } +func (*FloatingPoint) ProtoMessage() {} +func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } + +func (m *FloatingPoint) GetF() float64 { + if m != nil && m.F != nil { + return *m.F + } + return 0 +} + +type MessageWithMap struct { + NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ByteMapping map[bool][]byte `protobuf:"bytes,3,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + StrToStr map[string]string `protobuf:"bytes,4,rep,name=str_to_str,json=strToStr" json:"str_to_str,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } +func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } +func (*MessageWithMap) ProtoMessage() {} +func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } + +func (m *MessageWithMap) GetNameMapping() map[int32]string { + if m != nil { + return m.NameMapping + } + return nil +} + +func (m *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint { + if m != nil { + return m.MsgMapping + } + return nil +} + +func (m *MessageWithMap) GetByteMapping() map[bool][]byte { + if m != nil { + return m.ByteMapping + } + return nil +} + +func (m *MessageWithMap) GetStrToStr() map[string]string { + if m != nil { + return m.StrToStr + } + return nil +} + +type Oneof struct { + // Types that are valid to be assigned to Union: + // *Oneof_F_Bool + // *Oneof_F_Int32 + // *Oneof_F_Int64 + // *Oneof_F_Fixed32 + // *Oneof_F_Fixed64 + // *Oneof_F_Uint32 + // *Oneof_F_Uint64 + // *Oneof_F_Float + // *Oneof_F_Double + // *Oneof_F_String + // *Oneof_F_Bytes + // *Oneof_F_Sint32 + // *Oneof_F_Sint64 + // *Oneof_F_Enum + // *Oneof_F_Message + // *Oneof_FGroup + // *Oneof_F_Largest_Tag + Union isOneof_Union `protobuf_oneof:"union"` + // Types that are valid to be assigned to Tormato: + // *Oneof_Value + Tormato isOneof_Tormato `protobuf_oneof:"tormato"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Oneof) Reset() { *m = Oneof{} } +func (m *Oneof) String() string { return proto.CompactTextString(m) } +func (*Oneof) ProtoMessage() {} +func (*Oneof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } + +type isOneof_Union interface { + isOneof_Union() +} +type isOneof_Tormato interface { + isOneof_Tormato() +} + +type Oneof_F_Bool struct { + F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,oneof"` +} +type Oneof_F_Int32 struct { + F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,oneof"` +} +type Oneof_F_Int64 struct { + F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,oneof"` +} +type Oneof_F_Fixed32 struct { + F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,oneof"` +} +type Oneof_F_Fixed64 struct { + F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,oneof"` +} +type Oneof_F_Uint32 struct { + F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,oneof"` +} +type Oneof_F_Uint64 struct { + F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,oneof"` +} +type Oneof_F_Float struct { + F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,oneof"` +} +type Oneof_F_Double struct { + F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,oneof"` +} +type Oneof_F_String struct { + F_String string `protobuf:"bytes,10,opt,name=F_String,json=fString,oneof"` +} +type Oneof_F_Bytes struct { + F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,oneof"` +} +type Oneof_F_Sint32 struct { + F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,oneof"` +} +type Oneof_F_Sint64 struct { + F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,oneof"` +} +type Oneof_F_Enum struct { + F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.MyMessage_Color,oneof"` +} +type Oneof_F_Message struct { + F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=fMessage,oneof"` +} +type Oneof_FGroup struct { + FGroup *Oneof_F_Group `protobuf:"group,16,opt,name=F_Group,json=fGroup,oneof"` +} +type Oneof_F_Largest_Tag struct { + F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=fLargestTag,oneof"` +} +type Oneof_Value struct { + Value int32 `protobuf:"varint,100,opt,name=value,oneof"` +} + +func (*Oneof_F_Bool) isOneof_Union() {} +func (*Oneof_F_Int32) isOneof_Union() {} +func (*Oneof_F_Int64) isOneof_Union() {} +func (*Oneof_F_Fixed32) isOneof_Union() {} +func (*Oneof_F_Fixed64) isOneof_Union() {} +func (*Oneof_F_Uint32) isOneof_Union() {} +func (*Oneof_F_Uint64) isOneof_Union() {} +func (*Oneof_F_Float) isOneof_Union() {} +func (*Oneof_F_Double) isOneof_Union() {} +func (*Oneof_F_String) isOneof_Union() {} +func (*Oneof_F_Bytes) isOneof_Union() {} +func (*Oneof_F_Sint32) isOneof_Union() {} +func (*Oneof_F_Sint64) isOneof_Union() {} +func (*Oneof_F_Enum) isOneof_Union() {} +func (*Oneof_F_Message) isOneof_Union() {} +func (*Oneof_FGroup) isOneof_Union() {} +func (*Oneof_F_Largest_Tag) isOneof_Union() {} +func (*Oneof_Value) isOneof_Tormato() {} + +func (m *Oneof) GetUnion() isOneof_Union { + if m != nil { + return m.Union + } + return nil +} +func (m *Oneof) GetTormato() isOneof_Tormato { + if m != nil { + return m.Tormato + } + return nil +} + +func (m *Oneof) GetF_Bool() bool { + if x, ok := m.GetUnion().(*Oneof_F_Bool); ok { + return x.F_Bool + } + return false +} + +func (m *Oneof) GetF_Int32() int32 { + if x, ok := m.GetUnion().(*Oneof_F_Int32); ok { + return x.F_Int32 + } + return 0 +} + +func (m *Oneof) GetF_Int64() int64 { + if x, ok := m.GetUnion().(*Oneof_F_Int64); ok { + return x.F_Int64 + } + return 0 +} + +func (m *Oneof) GetF_Fixed32() uint32 { + if x, ok := m.GetUnion().(*Oneof_F_Fixed32); ok { + return x.F_Fixed32 + } + return 0 +} + +func (m *Oneof) GetF_Fixed64() uint64 { + if x, ok := m.GetUnion().(*Oneof_F_Fixed64); ok { + return x.F_Fixed64 + } + return 0 +} + +func (m *Oneof) GetF_Uint32() uint32 { + if x, ok := m.GetUnion().(*Oneof_F_Uint32); ok { + return x.F_Uint32 + } + return 0 +} + +func (m *Oneof) GetF_Uint64() uint64 { + if x, ok := m.GetUnion().(*Oneof_F_Uint64); ok { + return x.F_Uint64 + } + return 0 +} + +func (m *Oneof) GetF_Float() float32 { + if x, ok := m.GetUnion().(*Oneof_F_Float); ok { + return x.F_Float + } + return 0 +} + +func (m *Oneof) GetF_Double() float64 { + if x, ok := m.GetUnion().(*Oneof_F_Double); ok { + return x.F_Double + } + return 0 +} + +func (m *Oneof) GetF_String() string { + if x, ok := m.GetUnion().(*Oneof_F_String); ok { + return x.F_String + } + return "" +} + +func (m *Oneof) GetF_Bytes() []byte { + if x, ok := m.GetUnion().(*Oneof_F_Bytes); ok { + return x.F_Bytes + } + return nil +} + +func (m *Oneof) GetF_Sint32() int32 { + if x, ok := m.GetUnion().(*Oneof_F_Sint32); ok { + return x.F_Sint32 + } + return 0 +} + +func (m *Oneof) GetF_Sint64() int64 { + if x, ok := m.GetUnion().(*Oneof_F_Sint64); ok { + return x.F_Sint64 + } + return 0 +} + +func (m *Oneof) GetF_Enum() MyMessage_Color { + if x, ok := m.GetUnion().(*Oneof_F_Enum); ok { + return x.F_Enum + } + return MyMessage_RED +} + +func (m *Oneof) GetF_Message() *GoTestField { + if x, ok := m.GetUnion().(*Oneof_F_Message); ok { + return x.F_Message + } + return nil +} + +func (m *Oneof) GetFGroup() *Oneof_F_Group { + if x, ok := m.GetUnion().(*Oneof_FGroup); ok { + return x.FGroup + } + return nil +} + +func (m *Oneof) GetF_Largest_Tag() int32 { + if x, ok := m.GetUnion().(*Oneof_F_Largest_Tag); ok { + return x.F_Largest_Tag + } + return 0 +} + +func (m *Oneof) GetValue() int32 { + if x, ok := m.GetTormato().(*Oneof_Value); ok { + return x.Value + } + return 0 +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Oneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Oneof_OneofMarshaler, _Oneof_OneofUnmarshaler, _Oneof_OneofSizer, []interface{}{ + (*Oneof_F_Bool)(nil), + (*Oneof_F_Int32)(nil), + (*Oneof_F_Int64)(nil), + (*Oneof_F_Fixed32)(nil), + (*Oneof_F_Fixed64)(nil), + (*Oneof_F_Uint32)(nil), + (*Oneof_F_Uint64)(nil), + (*Oneof_F_Float)(nil), + (*Oneof_F_Double)(nil), + (*Oneof_F_String)(nil), + (*Oneof_F_Bytes)(nil), + (*Oneof_F_Sint32)(nil), + (*Oneof_F_Sint64)(nil), + (*Oneof_F_Enum)(nil), + (*Oneof_F_Message)(nil), + (*Oneof_FGroup)(nil), + (*Oneof_F_Largest_Tag)(nil), + (*Oneof_Value)(nil), + } +} + +func _Oneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Oneof) + // union + switch x := m.Union.(type) { + case *Oneof_F_Bool: + t := uint64(0) + if x.F_Bool { + t = 1 + } + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Oneof_F_Int32: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Int32)) + case *Oneof_F_Int64: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Int64)) + case *Oneof_F_Fixed32: + b.EncodeVarint(4<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(x.F_Fixed32)) + case *Oneof_F_Fixed64: + b.EncodeVarint(5<<3 | proto.WireFixed64) + b.EncodeFixed64(uint64(x.F_Fixed64)) + case *Oneof_F_Uint32: + b.EncodeVarint(6<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Uint32)) + case *Oneof_F_Uint64: + b.EncodeVarint(7<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Uint64)) + case *Oneof_F_Float: + b.EncodeVarint(8<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.F_Float))) + case *Oneof_F_Double: + b.EncodeVarint(9<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.F_Double)) + case *Oneof_F_String: + b.EncodeVarint(10<<3 | proto.WireBytes) + b.EncodeStringBytes(x.F_String) + case *Oneof_F_Bytes: + b.EncodeVarint(11<<3 | proto.WireBytes) + b.EncodeRawBytes(x.F_Bytes) + case *Oneof_F_Sint32: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeZigzag32(uint64(x.F_Sint32)) + case *Oneof_F_Sint64: + b.EncodeVarint(13<<3 | proto.WireVarint) + b.EncodeZigzag64(uint64(x.F_Sint64)) + case *Oneof_F_Enum: + b.EncodeVarint(14<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Enum)) + case *Oneof_F_Message: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.F_Message); err != nil { + return err + } + case *Oneof_FGroup: + b.EncodeVarint(16<<3 | proto.WireStartGroup) + if err := b.Marshal(x.FGroup); err != nil { + return err + } + b.EncodeVarint(16<<3 | proto.WireEndGroup) + case *Oneof_F_Largest_Tag: + b.EncodeVarint(536870911<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.F_Largest_Tag)) + case nil: + default: + return fmt.Errorf("Oneof.Union has unexpected type %T", x) + } + // tormato + switch x := m.Tormato.(type) { + case *Oneof_Value: + b.EncodeVarint(100<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Value)) + case nil: + default: + return fmt.Errorf("Oneof.Tormato has unexpected type %T", x) + } + return nil +} + +func _Oneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Oneof) + switch tag { + case 1: // union.F_Bool + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Bool{x != 0} + return true, err + case 2: // union.F_Int32 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Int32{int32(x)} + return true, err + case 3: // union.F_Int64 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Int64{int64(x)} + return true, err + case 4: // union.F_Fixed32 + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Union = &Oneof_F_Fixed32{uint32(x)} + return true, err + case 5: // union.F_Fixed64 + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Union = &Oneof_F_Fixed64{x} + return true, err + case 6: // union.F_Uint32 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Uint32{uint32(x)} + return true, err + case 7: // union.F_Uint64 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Uint64{x} + return true, err + case 8: // union.F_Float + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Union = &Oneof_F_Float{math.Float32frombits(uint32(x))} + return true, err + case 9: // union.F_Double + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Union = &Oneof_F_Double{math.Float64frombits(x)} + return true, err + case 10: // union.F_String + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &Oneof_F_String{x} + return true, err + case 11: // union.F_Bytes + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Union = &Oneof_F_Bytes{x} + return true, err + case 12: // union.F_Sint32 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag32() + m.Union = &Oneof_F_Sint32{int32(x)} + return true, err + case 13: // union.F_Sint64 + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag64() + m.Union = &Oneof_F_Sint64{int64(x)} + return true, err + case 14: // union.F_Enum + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Enum{MyMessage_Color(x)} + return true, err + case 15: // union.F_Message + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(GoTestField) + err := b.DecodeMessage(msg) + m.Union = &Oneof_F_Message{msg} + return true, err + case 16: // union.f_group + if wire != proto.WireStartGroup { + return true, proto.ErrInternalBadWireType + } + msg := new(Oneof_F_Group) + err := b.DecodeGroup(msg) + m.Union = &Oneof_FGroup{msg} + return true, err + case 536870911: // union.F_Largest_Tag + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Oneof_F_Largest_Tag{int32(x)} + return true, err + case 100: // tormato.value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Tormato = &Oneof_Value{int32(x)} + return true, err + default: + return false, nil + } +} + +func _Oneof_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Oneof) + // union + switch x := m.Union.(type) { + case *Oneof_F_Bool: + n += proto.SizeVarint(1<<3 | proto.WireVarint) + n += 1 + case *Oneof_F_Int32: + n += proto.SizeVarint(2<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Int32)) + case *Oneof_F_Int64: + n += proto.SizeVarint(3<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Int64)) + case *Oneof_F_Fixed32: + n += proto.SizeVarint(4<<3 | proto.WireFixed32) + n += 4 + case *Oneof_F_Fixed64: + n += proto.SizeVarint(5<<3 | proto.WireFixed64) + n += 8 + case *Oneof_F_Uint32: + n += proto.SizeVarint(6<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Uint32)) + case *Oneof_F_Uint64: + n += proto.SizeVarint(7<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Uint64)) + case *Oneof_F_Float: + n += proto.SizeVarint(8<<3 | proto.WireFixed32) + n += 4 + case *Oneof_F_Double: + n += proto.SizeVarint(9<<3 | proto.WireFixed64) + n += 8 + case *Oneof_F_String: + n += proto.SizeVarint(10<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.F_String))) + n += len(x.F_String) + case *Oneof_F_Bytes: + n += proto.SizeVarint(11<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.F_Bytes))) + n += len(x.F_Bytes) + case *Oneof_F_Sint32: + n += proto.SizeVarint(12<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64((uint32(x.F_Sint32) << 1) ^ uint32((int32(x.F_Sint32) >> 31)))) + case *Oneof_F_Sint64: + n += proto.SizeVarint(13<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(uint64(x.F_Sint64<<1) ^ uint64((int64(x.F_Sint64) >> 63)))) + case *Oneof_F_Enum: + n += proto.SizeVarint(14<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Enum)) + case *Oneof_F_Message: + s := proto.Size(x.F_Message) + n += proto.SizeVarint(15<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Oneof_FGroup: + n += proto.SizeVarint(16<<3 | proto.WireStartGroup) + n += proto.Size(x.FGroup) + n += proto.SizeVarint(16<<3 | proto.WireEndGroup) + case *Oneof_F_Largest_Tag: + n += proto.SizeVarint(536870911<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.F_Largest_Tag)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // tormato + switch x := m.Tormato.(type) { + case *Oneof_Value: + n += proto.SizeVarint(100<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Value)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type Oneof_F_Group struct { + X *int32 `protobuf:"varint,17,opt,name=x" json:"x,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Oneof_F_Group) Reset() { *m = Oneof_F_Group{} } +func (m *Oneof_F_Group) String() string { return proto.CompactTextString(m) } +func (*Oneof_F_Group) ProtoMessage() {} +func (*Oneof_F_Group) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28, 0} } + +func (m *Oneof_F_Group) GetX() int32 { + if m != nil && m.X != nil { + return *m.X + } + return 0 +} + +type Communique struct { + MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry,json=makeMeCry" json:"make_me_cry,omitempty"` + // This is a oneof, called "union". + // + // Types that are valid to be assigned to Union: + // *Communique_Number + // *Communique_Name + // *Communique_Data + // *Communique_TempC + // *Communique_Col + // *Communique_Msg + Union isCommunique_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique) Reset() { *m = Communique{} } +func (m *Communique) String() string { return proto.CompactTextString(m) } +func (*Communique) ProtoMessage() {} +func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } + +type isCommunique_Union interface { + isCommunique_Union() +} + +type Communique_Number struct { + Number int32 `protobuf:"varint,5,opt,name=number,oneof"` +} +type Communique_Name struct { + Name string `protobuf:"bytes,6,opt,name=name,oneof"` +} +type Communique_Data struct { + Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` +} +type Communique_TempC struct { + TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,json=tempC,oneof"` +} +type Communique_Col struct { + Col MyMessage_Color `protobuf:"varint,9,opt,name=col,enum=testdata.MyMessage_Color,oneof"` +} +type Communique_Msg struct { + Msg *Strings `protobuf:"bytes,10,opt,name=msg,oneof"` +} + +func (*Communique_Number) isCommunique_Union() {} +func (*Communique_Name) isCommunique_Union() {} +func (*Communique_Data) isCommunique_Union() {} +func (*Communique_TempC) isCommunique_Union() {} +func (*Communique_Col) isCommunique_Union() {} +func (*Communique_Msg) isCommunique_Union() {} + +func (m *Communique) GetUnion() isCommunique_Union { + if m != nil { + return m.Union + } + return nil +} + +func (m *Communique) GetMakeMeCry() bool { + if m != nil && m.MakeMeCry != nil { + return *m.MakeMeCry + } + return false +} + +func (m *Communique) GetNumber() int32 { + if x, ok := m.GetUnion().(*Communique_Number); ok { + return x.Number + } + return 0 +} + +func (m *Communique) GetName() string { + if x, ok := m.GetUnion().(*Communique_Name); ok { + return x.Name + } + return "" +} + +func (m *Communique) GetData() []byte { + if x, ok := m.GetUnion().(*Communique_Data); ok { + return x.Data + } + return nil +} + +func (m *Communique) GetTempC() float64 { + if x, ok := m.GetUnion().(*Communique_TempC); ok { + return x.TempC + } + return 0 +} + +func (m *Communique) GetCol() MyMessage_Color { + if x, ok := m.GetUnion().(*Communique_Col); ok { + return x.Col + } + return MyMessage_RED +} + +func (m *Communique) GetMsg() *Strings { + if x, ok := m.GetUnion().(*Communique_Msg); ok { + return x.Msg + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, _Communique_OneofSizer, []interface{}{ + (*Communique_Number)(nil), + (*Communique_Name)(nil), + (*Communique_Data)(nil), + (*Communique_TempC)(nil), + (*Communique_Col)(nil), + (*Communique_Msg)(nil), + } +} + +func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Number)) + case *Communique_Name: + b.EncodeVarint(6<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Name) + case *Communique_Data: + b.EncodeVarint(7<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Data) + case *Communique_TempC: + b.EncodeVarint(8<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.TempC)) + case *Communique_Col: + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Col)) + case *Communique_Msg: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Msg); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Communique.Union has unexpected type %T", x) + } + return nil +} + +func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Communique) + switch tag { + case 5: // union.number + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Number{int32(x)} + return true, err + case 6: // union.name + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &Communique_Name{x} + return true, err + case 7: // union.data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Union = &Communique_Data{x} + return true, err + case 8: // union.temp_c + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Union = &Communique_TempC{math.Float64frombits(x)} + return true, err + case 9: // union.col + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Col{MyMessage_Color(x)} + return true, err + case 10: // union.msg + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Strings) + err := b.DecodeMessage(msg) + m.Union = &Communique_Msg{msg} + return true, err + default: + return false, nil + } +} + +func _Communique_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + n += proto.SizeVarint(5<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Number)) + case *Communique_Name: + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Name))) + n += len(x.Name) + case *Communique_Data: + n += proto.SizeVarint(7<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Data))) + n += len(x.Data) + case *Communique_TempC: + n += proto.SizeVarint(8<<3 | proto.WireFixed64) + n += 8 + case *Communique_Col: + n += proto.SizeVarint(9<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Col)) + case *Communique_Msg: + s := proto.Size(x.Msg) + n += proto.SizeVarint(10<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +var E_Greeting = &proto.ExtensionDesc{ + ExtendedType: (*MyMessage)(nil), + ExtensionType: ([]string)(nil), + Field: 106, + Name: "testdata.greeting", + Tag: "bytes,106,rep,name=greeting", +} + +var E_Complex = &proto.ExtensionDesc{ + ExtendedType: (*OtherMessage)(nil), + ExtensionType: (*ComplexExtension)(nil), + Field: 200, + Name: "testdata.complex", + Tag: "bytes,200,opt,name=complex", +} + +var E_RComplex = &proto.ExtensionDesc{ + ExtendedType: (*OtherMessage)(nil), + ExtensionType: ([]*ComplexExtension)(nil), + Field: 201, + Name: "testdata.r_complex", + Tag: "bytes,201,rep,name=r_complex,json=rComplex", +} + +var E_NoDefaultDouble = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*float64)(nil), + Field: 101, + Name: "testdata.no_default_double", + Tag: "fixed64,101,opt,name=no_default_double,json=noDefaultDouble", +} + +var E_NoDefaultFloat = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*float32)(nil), + Field: 102, + Name: "testdata.no_default_float", + Tag: "fixed32,102,opt,name=no_default_float,json=noDefaultFloat", +} + +var E_NoDefaultInt32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 103, + Name: "testdata.no_default_int32", + Tag: "varint,103,opt,name=no_default_int32,json=noDefaultInt32", +} + +var E_NoDefaultInt64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 104, + Name: "testdata.no_default_int64", + Tag: "varint,104,opt,name=no_default_int64,json=noDefaultInt64", +} + +var E_NoDefaultUint32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint32)(nil), + Field: 105, + Name: "testdata.no_default_uint32", + Tag: "varint,105,opt,name=no_default_uint32,json=noDefaultUint32", +} + +var E_NoDefaultUint64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint64)(nil), + Field: 106, + Name: "testdata.no_default_uint64", + Tag: "varint,106,opt,name=no_default_uint64,json=noDefaultUint64", +} + +var E_NoDefaultSint32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 107, + Name: "testdata.no_default_sint32", + Tag: "zigzag32,107,opt,name=no_default_sint32,json=noDefaultSint32", +} + +var E_NoDefaultSint64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 108, + Name: "testdata.no_default_sint64", + Tag: "zigzag64,108,opt,name=no_default_sint64,json=noDefaultSint64", +} + +var E_NoDefaultFixed32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint32)(nil), + Field: 109, + Name: "testdata.no_default_fixed32", + Tag: "fixed32,109,opt,name=no_default_fixed32,json=noDefaultFixed32", +} + +var E_NoDefaultFixed64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint64)(nil), + Field: 110, + Name: "testdata.no_default_fixed64", + Tag: "fixed64,110,opt,name=no_default_fixed64,json=noDefaultFixed64", +} + +var E_NoDefaultSfixed32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 111, + Name: "testdata.no_default_sfixed32", + Tag: "fixed32,111,opt,name=no_default_sfixed32,json=noDefaultSfixed32", +} + +var E_NoDefaultSfixed64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 112, + Name: "testdata.no_default_sfixed64", + Tag: "fixed64,112,opt,name=no_default_sfixed64,json=noDefaultSfixed64", +} + +var E_NoDefaultBool = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*bool)(nil), + Field: 113, + Name: "testdata.no_default_bool", + Tag: "varint,113,opt,name=no_default_bool,json=noDefaultBool", +} + +var E_NoDefaultString = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*string)(nil), + Field: 114, + Name: "testdata.no_default_string", + Tag: "bytes,114,opt,name=no_default_string,json=noDefaultString", +} + +var E_NoDefaultBytes = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: ([]byte)(nil), + Field: 115, + Name: "testdata.no_default_bytes", + Tag: "bytes,115,opt,name=no_default_bytes,json=noDefaultBytes", +} + +var E_NoDefaultEnum = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil), + Field: 116, + Name: "testdata.no_default_enum", + Tag: "varint,116,opt,name=no_default_enum,json=noDefaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum", +} + +var E_DefaultDouble = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*float64)(nil), + Field: 201, + Name: "testdata.default_double", + Tag: "fixed64,201,opt,name=default_double,json=defaultDouble,def=3.1415", +} + +var E_DefaultFloat = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*float32)(nil), + Field: 202, + Name: "testdata.default_float", + Tag: "fixed32,202,opt,name=default_float,json=defaultFloat,def=3.14", +} + +var E_DefaultInt32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 203, + Name: "testdata.default_int32", + Tag: "varint,203,opt,name=default_int32,json=defaultInt32,def=42", +} + +var E_DefaultInt64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 204, + Name: "testdata.default_int64", + Tag: "varint,204,opt,name=default_int64,json=defaultInt64,def=43", +} + +var E_DefaultUint32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint32)(nil), + Field: 205, + Name: "testdata.default_uint32", + Tag: "varint,205,opt,name=default_uint32,json=defaultUint32,def=44", +} + +var E_DefaultUint64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint64)(nil), + Field: 206, + Name: "testdata.default_uint64", + Tag: "varint,206,opt,name=default_uint64,json=defaultUint64,def=45", +} + +var E_DefaultSint32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 207, + Name: "testdata.default_sint32", + Tag: "zigzag32,207,opt,name=default_sint32,json=defaultSint32,def=46", +} + +var E_DefaultSint64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 208, + Name: "testdata.default_sint64", + Tag: "zigzag64,208,opt,name=default_sint64,json=defaultSint64,def=47", +} + +var E_DefaultFixed32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint32)(nil), + Field: 209, + Name: "testdata.default_fixed32", + Tag: "fixed32,209,opt,name=default_fixed32,json=defaultFixed32,def=48", +} + +var E_DefaultFixed64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*uint64)(nil), + Field: 210, + Name: "testdata.default_fixed64", + Tag: "fixed64,210,opt,name=default_fixed64,json=defaultFixed64,def=49", +} + +var E_DefaultSfixed32 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int32)(nil), + Field: 211, + Name: "testdata.default_sfixed32", + Tag: "fixed32,211,opt,name=default_sfixed32,json=defaultSfixed32,def=50", +} + +var E_DefaultSfixed64 = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*int64)(nil), + Field: 212, + Name: "testdata.default_sfixed64", + Tag: "fixed64,212,opt,name=default_sfixed64,json=defaultSfixed64,def=51", +} + +var E_DefaultBool = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*bool)(nil), + Field: 213, + Name: "testdata.default_bool", + Tag: "varint,213,opt,name=default_bool,json=defaultBool,def=1", +} + +var E_DefaultString = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*string)(nil), + Field: 214, + Name: "testdata.default_string", + Tag: "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string", +} + +var E_DefaultBytes = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: ([]byte)(nil), + Field: 215, + Name: "testdata.default_bytes", + Tag: "bytes,215,opt,name=default_bytes,json=defaultBytes,def=Hello, bytes", +} + +var E_DefaultEnum = &proto.ExtensionDesc{ + ExtendedType: (*DefaultsMessage)(nil), + ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil), + Field: 216, + Name: "testdata.default_enum", + Tag: "varint,216,opt,name=default_enum,json=defaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum,def=1", +} + +var E_X201 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 201, + Name: "testdata.x201", + Tag: "bytes,201,opt,name=x201", +} + +var E_X202 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 202, + Name: "testdata.x202", + Tag: "bytes,202,opt,name=x202", +} + +var E_X203 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 203, + Name: "testdata.x203", + Tag: "bytes,203,opt,name=x203", +} + +var E_X204 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 204, + Name: "testdata.x204", + Tag: "bytes,204,opt,name=x204", +} + +var E_X205 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 205, + Name: "testdata.x205", + Tag: "bytes,205,opt,name=x205", +} + +var E_X206 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 206, + Name: "testdata.x206", + Tag: "bytes,206,opt,name=x206", +} + +var E_X207 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 207, + Name: "testdata.x207", + Tag: "bytes,207,opt,name=x207", +} + +var E_X208 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 208, + Name: "testdata.x208", + Tag: "bytes,208,opt,name=x208", +} + +var E_X209 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 209, + Name: "testdata.x209", + Tag: "bytes,209,opt,name=x209", +} + +var E_X210 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 210, + Name: "testdata.x210", + Tag: "bytes,210,opt,name=x210", +} + +var E_X211 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 211, + Name: "testdata.x211", + Tag: "bytes,211,opt,name=x211", +} + +var E_X212 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 212, + Name: "testdata.x212", + Tag: "bytes,212,opt,name=x212", +} + +var E_X213 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 213, + Name: "testdata.x213", + Tag: "bytes,213,opt,name=x213", +} + +var E_X214 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 214, + Name: "testdata.x214", + Tag: "bytes,214,opt,name=x214", +} + +var E_X215 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 215, + Name: "testdata.x215", + Tag: "bytes,215,opt,name=x215", +} + +var E_X216 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 216, + Name: "testdata.x216", + Tag: "bytes,216,opt,name=x216", +} + +var E_X217 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 217, + Name: "testdata.x217", + Tag: "bytes,217,opt,name=x217", +} + +var E_X218 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 218, + Name: "testdata.x218", + Tag: "bytes,218,opt,name=x218", +} + +var E_X219 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 219, + Name: "testdata.x219", + Tag: "bytes,219,opt,name=x219", +} + +var E_X220 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 220, + Name: "testdata.x220", + Tag: "bytes,220,opt,name=x220", +} + +var E_X221 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 221, + Name: "testdata.x221", + Tag: "bytes,221,opt,name=x221", +} + +var E_X222 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 222, + Name: "testdata.x222", + Tag: "bytes,222,opt,name=x222", +} + +var E_X223 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 223, + Name: "testdata.x223", + Tag: "bytes,223,opt,name=x223", +} + +var E_X224 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 224, + Name: "testdata.x224", + Tag: "bytes,224,opt,name=x224", +} + +var E_X225 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 225, + Name: "testdata.x225", + Tag: "bytes,225,opt,name=x225", +} + +var E_X226 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 226, + Name: "testdata.x226", + Tag: "bytes,226,opt,name=x226", +} + +var E_X227 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 227, + Name: "testdata.x227", + Tag: "bytes,227,opt,name=x227", +} + +var E_X228 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 228, + Name: "testdata.x228", + Tag: "bytes,228,opt,name=x228", +} + +var E_X229 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 229, + Name: "testdata.x229", + Tag: "bytes,229,opt,name=x229", +} + +var E_X230 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 230, + Name: "testdata.x230", + Tag: "bytes,230,opt,name=x230", +} + +var E_X231 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 231, + Name: "testdata.x231", + Tag: "bytes,231,opt,name=x231", +} + +var E_X232 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 232, + Name: "testdata.x232", + Tag: "bytes,232,opt,name=x232", +} + +var E_X233 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 233, + Name: "testdata.x233", + Tag: "bytes,233,opt,name=x233", +} + +var E_X234 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 234, + Name: "testdata.x234", + Tag: "bytes,234,opt,name=x234", +} + +var E_X235 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 235, + Name: "testdata.x235", + Tag: "bytes,235,opt,name=x235", +} + +var E_X236 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 236, + Name: "testdata.x236", + Tag: "bytes,236,opt,name=x236", +} + +var E_X237 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 237, + Name: "testdata.x237", + Tag: "bytes,237,opt,name=x237", +} + +var E_X238 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 238, + Name: "testdata.x238", + Tag: "bytes,238,opt,name=x238", +} + +var E_X239 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 239, + Name: "testdata.x239", + Tag: "bytes,239,opt,name=x239", +} + +var E_X240 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 240, + Name: "testdata.x240", + Tag: "bytes,240,opt,name=x240", +} + +var E_X241 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 241, + Name: "testdata.x241", + Tag: "bytes,241,opt,name=x241", +} + +var E_X242 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 242, + Name: "testdata.x242", + Tag: "bytes,242,opt,name=x242", +} + +var E_X243 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 243, + Name: "testdata.x243", + Tag: "bytes,243,opt,name=x243", +} + +var E_X244 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 244, + Name: "testdata.x244", + Tag: "bytes,244,opt,name=x244", +} + +var E_X245 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 245, + Name: "testdata.x245", + Tag: "bytes,245,opt,name=x245", +} + +var E_X246 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 246, + Name: "testdata.x246", + Tag: "bytes,246,opt,name=x246", +} + +var E_X247 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 247, + Name: "testdata.x247", + Tag: "bytes,247,opt,name=x247", +} + +var E_X248 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 248, + Name: "testdata.x248", + Tag: "bytes,248,opt,name=x248", +} + +var E_X249 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 249, + Name: "testdata.x249", + Tag: "bytes,249,opt,name=x249", +} + +var E_X250 = &proto.ExtensionDesc{ + ExtendedType: (*MyMessageSet)(nil), + ExtensionType: (*Empty)(nil), + Field: 250, + Name: "testdata.x250", + Tag: "bytes,250,opt,name=x250", +} + +func init() { + proto.RegisterType((*GoEnum)(nil), "testdata.GoEnum") + proto.RegisterType((*GoTestField)(nil), "testdata.GoTestField") + proto.RegisterType((*GoTest)(nil), "testdata.GoTest") + proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup") + proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup") + proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup") + proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest") + proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup") + proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest") + proto.RegisterType((*PackedTest)(nil), "testdata.PackedTest") + proto.RegisterType((*MaxTag)(nil), "testdata.MaxTag") + proto.RegisterType((*OldMessage)(nil), "testdata.OldMessage") + proto.RegisterType((*OldMessage_Nested)(nil), "testdata.OldMessage.Nested") + proto.RegisterType((*NewMessage)(nil), "testdata.NewMessage") + proto.RegisterType((*NewMessage_Nested)(nil), "testdata.NewMessage.Nested") + proto.RegisterType((*InnerMessage)(nil), "testdata.InnerMessage") + proto.RegisterType((*OtherMessage)(nil), "testdata.OtherMessage") + proto.RegisterType((*RequiredInnerMessage)(nil), "testdata.RequiredInnerMessage") + proto.RegisterType((*MyMessage)(nil), "testdata.MyMessage") + proto.RegisterType((*MyMessage_SomeGroup)(nil), "testdata.MyMessage.SomeGroup") + proto.RegisterType((*Ext)(nil), "testdata.Ext") + proto.RegisterType((*ComplexExtension)(nil), "testdata.ComplexExtension") + proto.RegisterType((*DefaultsMessage)(nil), "testdata.DefaultsMessage") + proto.RegisterType((*MyMessageSet)(nil), "testdata.MyMessageSet") + proto.RegisterType((*Empty)(nil), "testdata.Empty") + proto.RegisterType((*MessageList)(nil), "testdata.MessageList") + proto.RegisterType((*MessageList_Message)(nil), "testdata.MessageList.Message") + proto.RegisterType((*Strings)(nil), "testdata.Strings") + proto.RegisterType((*Defaults)(nil), "testdata.Defaults") + proto.RegisterType((*SubDefaults)(nil), "testdata.SubDefaults") + proto.RegisterType((*RepeatedEnum)(nil), "testdata.RepeatedEnum") + proto.RegisterType((*MoreRepeated)(nil), "testdata.MoreRepeated") + proto.RegisterType((*GroupOld)(nil), "testdata.GroupOld") + proto.RegisterType((*GroupOld_G)(nil), "testdata.GroupOld.G") + proto.RegisterType((*GroupNew)(nil), "testdata.GroupNew") + proto.RegisterType((*GroupNew_G)(nil), "testdata.GroupNew.G") + proto.RegisterType((*FloatingPoint)(nil), "testdata.FloatingPoint") + proto.RegisterType((*MessageWithMap)(nil), "testdata.MessageWithMap") + proto.RegisterType((*Oneof)(nil), "testdata.Oneof") + proto.RegisterType((*Oneof_F_Group)(nil), "testdata.Oneof.F_Group") + proto.RegisterType((*Communique)(nil), "testdata.Communique") + proto.RegisterEnum("testdata.FOO", FOO_name, FOO_value) + proto.RegisterEnum("testdata.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value) + proto.RegisterEnum("testdata.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value) + proto.RegisterEnum("testdata.DefaultsMessage_DefaultsEnum", DefaultsMessage_DefaultsEnum_name, DefaultsMessage_DefaultsEnum_value) + proto.RegisterEnum("testdata.Defaults_Color", Defaults_Color_name, Defaults_Color_value) + proto.RegisterEnum("testdata.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value) + proto.RegisterExtension(E_Ext_More) + proto.RegisterExtension(E_Ext_Text) + proto.RegisterExtension(E_Ext_Number) + proto.RegisterExtension(E_Greeting) + proto.RegisterExtension(E_Complex) + proto.RegisterExtension(E_RComplex) + proto.RegisterExtension(E_NoDefaultDouble) + proto.RegisterExtension(E_NoDefaultFloat) + proto.RegisterExtension(E_NoDefaultInt32) + proto.RegisterExtension(E_NoDefaultInt64) + proto.RegisterExtension(E_NoDefaultUint32) + proto.RegisterExtension(E_NoDefaultUint64) + proto.RegisterExtension(E_NoDefaultSint32) + proto.RegisterExtension(E_NoDefaultSint64) + proto.RegisterExtension(E_NoDefaultFixed32) + proto.RegisterExtension(E_NoDefaultFixed64) + proto.RegisterExtension(E_NoDefaultSfixed32) + proto.RegisterExtension(E_NoDefaultSfixed64) + proto.RegisterExtension(E_NoDefaultBool) + proto.RegisterExtension(E_NoDefaultString) + proto.RegisterExtension(E_NoDefaultBytes) + proto.RegisterExtension(E_NoDefaultEnum) + proto.RegisterExtension(E_DefaultDouble) + proto.RegisterExtension(E_DefaultFloat) + proto.RegisterExtension(E_DefaultInt32) + proto.RegisterExtension(E_DefaultInt64) + proto.RegisterExtension(E_DefaultUint32) + proto.RegisterExtension(E_DefaultUint64) + proto.RegisterExtension(E_DefaultSint32) + proto.RegisterExtension(E_DefaultSint64) + proto.RegisterExtension(E_DefaultFixed32) + proto.RegisterExtension(E_DefaultFixed64) + proto.RegisterExtension(E_DefaultSfixed32) + proto.RegisterExtension(E_DefaultSfixed64) + proto.RegisterExtension(E_DefaultBool) + proto.RegisterExtension(E_DefaultString) + proto.RegisterExtension(E_DefaultBytes) + proto.RegisterExtension(E_DefaultEnum) + proto.RegisterExtension(E_X201) + proto.RegisterExtension(E_X202) + proto.RegisterExtension(E_X203) + proto.RegisterExtension(E_X204) + proto.RegisterExtension(E_X205) + proto.RegisterExtension(E_X206) + proto.RegisterExtension(E_X207) + proto.RegisterExtension(E_X208) + proto.RegisterExtension(E_X209) + proto.RegisterExtension(E_X210) + proto.RegisterExtension(E_X211) + proto.RegisterExtension(E_X212) + proto.RegisterExtension(E_X213) + proto.RegisterExtension(E_X214) + proto.RegisterExtension(E_X215) + proto.RegisterExtension(E_X216) + proto.RegisterExtension(E_X217) + proto.RegisterExtension(E_X218) + proto.RegisterExtension(E_X219) + proto.RegisterExtension(E_X220) + proto.RegisterExtension(E_X221) + proto.RegisterExtension(E_X222) + proto.RegisterExtension(E_X223) + proto.RegisterExtension(E_X224) + proto.RegisterExtension(E_X225) + proto.RegisterExtension(E_X226) + proto.RegisterExtension(E_X227) + proto.RegisterExtension(E_X228) + proto.RegisterExtension(E_X229) + proto.RegisterExtension(E_X230) + proto.RegisterExtension(E_X231) + proto.RegisterExtension(E_X232) + proto.RegisterExtension(E_X233) + proto.RegisterExtension(E_X234) + proto.RegisterExtension(E_X235) + proto.RegisterExtension(E_X236) + proto.RegisterExtension(E_X237) + proto.RegisterExtension(E_X238) + proto.RegisterExtension(E_X239) + proto.RegisterExtension(E_X240) + proto.RegisterExtension(E_X241) + proto.RegisterExtension(E_X242) + proto.RegisterExtension(E_X243) + proto.RegisterExtension(E_X244) + proto.RegisterExtension(E_X245) + proto.RegisterExtension(E_X246) + proto.RegisterExtension(E_X247) + proto.RegisterExtension(E_X248) + proto.RegisterExtension(E_X249) + proto.RegisterExtension(E_X250) +} + +func init() { proto.RegisterFile("test.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 4335 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x5a, 0x4b, 0x77, 0x1b, 0x47, + 0x76, 0x76, 0xe3, 0x8d, 0x02, 0x48, 0x80, 0x2d, 0x59, 0x82, 0xa8, 0x87, 0x65, 0xcc, 0xd8, 0x96, + 0x64, 0x9b, 0x43, 0x34, 0x40, 0x52, 0x82, 0x27, 0x73, 0x8e, 0x28, 0x91, 0x1c, 0x9e, 0x11, 0x09, + 0xa6, 0x49, 0xdb, 0x67, 0x9c, 0x05, 0x0e, 0x28, 0x36, 0x40, 0x58, 0x00, 0x1a, 0x02, 0xc0, 0x48, + 0x4c, 0x36, 0xd9, 0x24, 0xdb, 0xbc, 0x36, 0xd9, 0x66, 0x95, 0x55, 0x92, 0x73, 0xf2, 0x27, 0x12, + 0xdb, 0xf3, 0xf4, 0x3c, 0xf3, 0x9c, 0xbc, 0x1f, 0x93, 0xf7, 0x6b, 0x26, 0xc9, 0x26, 0x73, 0xef, + 0xad, 0xdb, 0xdd, 0xd5, 0x0d, 0x74, 0x93, 0xd2, 0xc2, 0x44, 0x57, 0x7d, 0xdf, 0xad, 0x5b, 0xd5, + 0x5f, 0xdd, 0x5b, 0xb7, 0xda, 0x42, 0x4c, 0xac, 0xf1, 0x64, 0x69, 0x38, 0xb2, 0x27, 0xb6, 0x9e, + 0xc1, 0xdf, 0x47, 0xad, 0x49, 0xab, 0x7c, 0x5b, 0xa4, 0xb6, 0xec, 0x8d, 0xc1, 0x49, 0x5f, 0x7f, + 0x45, 0xc4, 0xdb, 0xb6, 0x5d, 0xd2, 0x6e, 0xc6, 0x6e, 0xcd, 0x1b, 0x73, 0x4b, 0x0e, 0x62, 0x69, + 0xb3, 0xd1, 0x30, 0xb1, 0xa7, 0xbc, 0x26, 0x72, 0x5b, 0xf6, 0x01, 0x34, 0x6f, 0x76, 0xad, 0xde, + 0x91, 0x7e, 0x51, 0x24, 0x1f, 0xb5, 0x0e, 0xad, 0x1e, 0x31, 0xb2, 0x66, 0xb2, 0x87, 0x0f, 0xba, + 0x2e, 0x12, 0x07, 0xa7, 0x43, 0xab, 0x14, 0xa3, 0xc6, 0xc4, 0x04, 0x7e, 0x97, 0x7f, 0xf9, 0x06, + 0x0e, 0x82, 0x4c, 0xfd, 0xb6, 0x48, 0x7c, 0xa9, 0x3b, 0x38, 0xe2, 0x51, 0x5e, 0xf6, 0x46, 0x91, + 0xfd, 0x4b, 0x5f, 0xda, 0xde, 0x7d, 0x68, 0x26, 0x9e, 0x00, 0x04, 0xed, 0x1f, 0xb4, 0x0e, 0x7b, + 0x68, 0x4a, 0x43, 0xfb, 0x13, 0x7c, 0xc0, 0xd6, 0xbd, 0xd6, 0xa8, 0xd5, 0x2f, 0xc5, 0xa1, 0x35, + 0x69, 0x26, 0x87, 0xf8, 0xa0, 0xbf, 0x23, 0xe6, 0x4c, 0xeb, 0xe9, 0x49, 0x77, 0x64, 0x1d, 0x91, + 0x73, 0xa5, 0x04, 0xd8, 0xcf, 0x4d, 0xdb, 0xa7, 0x4e, 0x73, 0x6e, 0xa4, 0x62, 0x25, 0x79, 0x68, + 0xb5, 0x26, 0x0e, 0x39, 0x79, 0x33, 0x1e, 0x49, 0x56, 0xb0, 0x48, 0x6e, 0x0c, 0x27, 0x5d, 0x7b, + 0xd0, 0xea, 0x49, 0x72, 0x0a, 0xfc, 0x0a, 0x27, 0xdb, 0x2a, 0x56, 0x7f, 0x5d, 0x14, 0x36, 0x9b, + 0xeb, 0xb6, 0xdd, 0x6b, 0x3a, 0x1e, 0x95, 0x04, 0x38, 0x9e, 0x31, 0xe7, 0xda, 0xd8, 0xea, 0x4c, + 0x49, 0xbf, 0x25, 0x8a, 0x9b, 0xcd, 0xed, 0xc1, 0xa4, 0x6a, 0x78, 0xc0, 0x1c, 0x00, 0x93, 0xe6, + 0x7c, 0x9b, 0x9a, 0xa7, 0x90, 0xab, 0x35, 0x0f, 0x99, 0x07, 0x64, 0x5c, 0x22, 0x57, 0x6b, 0x2e, + 0xf2, 0x2d, 0xa1, 0x6f, 0x36, 0x37, 0xbb, 0xcf, 0xad, 0x23, 0xd5, 0xea, 0x1c, 0x60, 0xd3, 0x66, + 0xb1, 0xcd, 0x1d, 0x33, 0xd0, 0xaa, 0xe5, 0x79, 0x40, 0xa7, 0x1c, 0xb4, 0x62, 0xfb, 0x8e, 0x58, + 0xd8, 0x6c, 0xbe, 0xdb, 0xf5, 0x3b, 0x5c, 0x00, 0xf0, 0x9c, 0x59, 0x68, 0xcb, 0xf6, 0x69, 0xac, + 0x6a, 0xb8, 0x08, 0xd8, 0x04, 0x63, 0x15, 0xbb, 0x34, 0xbb, 0xcd, 0x9e, 0xdd, 0x9a, 0x78, 0xd0, + 0x05, 0x80, 0xc6, 0x60, 0x76, 0xd4, 0xec, 0xb7, 0xfa, 0xd0, 0x3e, 0x01, 0xc9, 0x78, 0x50, 0x1d, + 0xa0, 0x1a, 0x58, 0x95, 0xed, 0x7e, 0xec, 0xfe, 0x64, 0xd4, 0x1d, 0x74, 0x3c, 0xec, 0x05, 0xd2, + 0x6f, 0xa1, 0x2d, 0xdb, 0xfd, 0x1e, 0xac, 0x9f, 0xc2, 0xcb, 0xf5, 0xa0, 0x16, 0x40, 0xf3, 0xe0, + 0x01, 0x35, 0x07, 0xac, 0x06, 0xd6, 0xa0, 0x0d, 0xd0, 0x05, 0xb4, 0x3a, 0x63, 0x0d, 0xf6, 0x03, + 0x6b, 0xd0, 0x01, 0xac, 0xce, 0x58, 0x65, 0x0d, 0x54, 0xcd, 0x48, 0x21, 0x96, 0x2e, 0x82, 0x5e, + 0x3d, 0xcd, 0xc8, 0x46, 0xbf, 0x66, 0x18, 0xf8, 0x32, 0x00, 0x15, 0xcd, 0x04, 0x90, 0x34, 0x38, + 0x23, 0x2f, 0x01, 0x52, 0xd1, 0x0c, 0x23, 0x03, 0x9a, 0x61, 0xec, 0x65, 0xc0, 0xfa, 0x34, 0x33, + 0x85, 0x56, 0x2d, 0x97, 0x00, 0xed, 0xd3, 0x0c, 0xa3, 0xfd, 0x9a, 0x61, 0xf0, 0x15, 0x00, 0xab, + 0x9a, 0x09, 0x62, 0x55, 0xc3, 0x8b, 0x80, 0x55, 0x35, 0xa3, 0xce, 0xce, 0xd1, 0x0c, 0x43, 0xaf, + 0x02, 0x54, 0xd1, 0x8c, 0x6a, 0xd5, 0xd5, 0x0c, 0x43, 0xaf, 0x01, 0x54, 0xd5, 0x8c, 0x8a, 0x75, + 0x35, 0xc3, 0xd8, 0xeb, 0x80, 0x55, 0x35, 0xc3, 0xd8, 0xdb, 0xaa, 0x66, 0x18, 0xfa, 0x91, 0x06, + 0x58, 0x45, 0x34, 0x0c, 0x7d, 0xd3, 0x27, 0x1a, 0xc6, 0x7e, 0x8c, 0x58, 0x55, 0x35, 0x41, 0xb0, + 0xba, 0x0a, 0x9f, 0x20, 0x58, 0x95, 0x0d, 0x83, 0x3d, 0xd9, 0x38, 0x21, 0xa8, 0x74, 0x03, 0x22, + 0x95, 0x23, 0x1b, 0x27, 0x86, 0xa9, 0xb2, 0x71, 0x81, 0xaf, 0x50, 0xa8, 0x65, 0xd9, 0x4c, 0x21, + 0x61, 0x74, 0x17, 0x79, 0x13, 0x90, 0xae, 0x6c, 0x5c, 0xa4, 0x4f, 0x36, 0x2e, 0xf6, 0x55, 0xc0, + 0x2a, 0xb2, 0x99, 0x81, 0x56, 0x2d, 0x97, 0x01, 0xad, 0xc8, 0xc6, 0x45, 0xab, 0xb2, 0x71, 0xc1, + 0x9f, 0x01, 0xb0, 0x27, 0x9b, 0x69, 0xac, 0x6a, 0xf8, 0xb3, 0x80, 0xf5, 0x64, 0xe3, 0x9f, 0x9d, + 0x94, 0x8d, 0x0b, 0x7d, 0x0d, 0xa0, 0xae, 0x6c, 0xfc, 0x56, 0x59, 0x36, 0x2e, 0xf4, 0x75, 0x80, + 0x7a, 0xb2, 0xf1, 0x63, 0x59, 0x36, 0x2e, 0xf6, 0x0d, 0xca, 0x6f, 0x8e, 0x6c, 0x5c, 0xac, 0x22, + 0x1b, 0x17, 0xfa, 0xdb, 0x98, 0x0b, 0x5d, 0xd9, 0xb8, 0x50, 0x55, 0x36, 0x2e, 0xf6, 0x77, 0x10, + 0xeb, 0xc9, 0x66, 0x1a, 0xac, 0xae, 0xc2, 0xef, 0x22, 0xd8, 0x93, 0x8d, 0x0b, 0x5e, 0x22, 0x27, + 0x50, 0x36, 0x47, 0x56, 0xbb, 0x75, 0xd2, 0x43, 0x89, 0xdd, 0x42, 0xdd, 0xd4, 0x13, 0x93, 0xd1, + 0x89, 0x85, 0x9e, 0x40, 0xe7, 0x43, 0xa7, 0x0f, 0xf0, 0x0b, 0x8e, 0x7c, 0x3c, 0xc2, 0x6d, 0xd4, + 0x4f, 0x3d, 0x06, 0xd2, 0x2d, 0x48, 0x0d, 0x4d, 0xe3, 0xc1, 0x17, 0x0f, 0x7f, 0x07, 0x55, 0x54, + 0x8f, 0x81, 0x7a, 0x0b, 0x52, 0x49, 0x1e, 0xbe, 0x2a, 0x2e, 0x78, 0x52, 0xf2, 0x18, 0x6f, 0xa2, + 0x96, 0xea, 0xf1, 0xaa, 0xb1, 0x6c, 0x2e, 0x38, 0x82, 0x9a, 0x45, 0xf2, 0x0d, 0xf3, 0x16, 0x4a, + 0xaa, 0x1e, 0x5f, 0xad, 0xb9, 0x24, 0x75, 0x24, 0x03, 0x65, 0xc8, 0xc2, 0xf2, 0x38, 0x6f, 0xa3, + 0xb2, 0xea, 0x09, 0x18, 0x68, 0x19, 0xc4, 0x28, 0xbb, 0x67, 0x70, 0x7c, 0xe3, 0x2c, 0xa1, 0xc2, + 0xea, 0x09, 0x18, 0xc7, 0xe1, 0xf8, 0xc7, 0x59, 0x70, 0x84, 0xe6, 0x51, 0x3e, 0x87, 0x4a, 0xab, + 0xa7, 0xaa, 0x95, 0x5a, 0x65, 0xe5, 0x1e, 0xac, 0x02, 0xf5, 0x7b, 0x9c, 0x1a, 0x8e, 0xc3, 0x92, + 0xf3, 0x48, 0xcb, 0xa8, 0xb9, 0x7a, 0xca, 0x58, 0xab, 0xdc, 0x35, 0xee, 0xc2, 0x48, 0x12, 0xe0, + 0xb1, 0xbe, 0x80, 0x2c, 0x16, 0x9f, 0xc7, 0xaa, 0xa0, 0xfa, 0xea, 0xc5, 0x63, 0xab, 0xd7, 0xb3, + 0xdf, 0xba, 0x59, 0x7e, 0x66, 0x8f, 0x7a, 0x47, 0xaf, 0x96, 0x05, 0xf0, 0x25, 0x54, 0x1d, 0x75, + 0xc1, 0x11, 0xa4, 0x47, 0xff, 0x55, 0x3c, 0x87, 0xe5, 0xeb, 0xe9, 0xf5, 0x6e, 0x67, 0x60, 0x8f, + 0x2d, 0xf0, 0x95, 0x10, 0x81, 0x35, 0xd9, 0x0f, 0xae, 0xe3, 0xaf, 0x21, 0x6d, 0xa1, 0x1e, 0x7f, + 0x1b, 0x44, 0x51, 0x64, 0x85, 0xce, 0xe0, 0xf8, 0xd6, 0xf1, 0xd7, 0x91, 0xa3, 0x03, 0x07, 0x84, + 0x51, 0x64, 0xa1, 0x7a, 0x9c, 0x35, 0x71, 0x29, 0x90, 0x17, 0x9b, 0xc3, 0xd6, 0xe3, 0x27, 0xc0, + 0x33, 0x30, 0x3d, 0xae, 0xc7, 0x8a, 0x9a, 0x79, 0xc1, 0x97, 0x22, 0xf7, 0xa8, 0x5b, 0xbf, 0x27, + 0x2e, 0x07, 0x13, 0xa5, 0xc3, 0xac, 0x62, 0xbe, 0x24, 0xe6, 0x45, 0x7f, 0xce, 0x0c, 0x50, 0x95, + 0x00, 0xec, 0x50, 0x6b, 0x98, 0x40, 0x3d, 0xaa, 0x17, 0x89, 0x99, 0xfa, 0x53, 0xe2, 0xca, 0x74, + 0x2a, 0x75, 0xc8, 0x2b, 0x98, 0x51, 0x89, 0x7c, 0x29, 0x98, 0x55, 0xa7, 0xe8, 0x33, 0xc6, 0x5e, + 0xc5, 0x14, 0xab, 0xd2, 0xa7, 0x46, 0x7f, 0x47, 0x94, 0xa6, 0x92, 0xad, 0xc3, 0x5e, 0xc3, 0x9c, + 0x4b, 0xec, 0x97, 0x03, 0x79, 0x37, 0x48, 0x9e, 0x31, 0xf4, 0x5d, 0x4c, 0xc2, 0x0a, 0x79, 0x6a, + 0x64, 0x5a, 0x32, 0x7f, 0x3a, 0x76, 0xb8, 0xf7, 0x30, 0x2b, 0xf3, 0x92, 0xf9, 0x32, 0xb3, 0x3a, + 0x6e, 0x20, 0x3f, 0x3b, 0xdc, 0x3a, 0xa6, 0x69, 0x1e, 0xd7, 0x9f, 0xaa, 0x99, 0xfc, 0x79, 0x24, + 0xef, 0xcf, 0x9e, 0xf1, 0x8f, 0xe2, 0x98, 0x60, 0x99, 0xbd, 0x3f, 0x6b, 0xca, 0x2e, 0x7b, 0xc6, + 0x94, 0x7f, 0x8c, 0x6c, 0x5d, 0x61, 0x4f, 0xcd, 0xf9, 0xa1, 0x70, 0x2b, 0x8e, 0xce, 0xc8, 0x3e, + 0x19, 0x96, 0x36, 0xe1, 0x68, 0x27, 0x8c, 0x1b, 0x53, 0xd5, 0x8f, 0x73, 0xc8, 0xdb, 0x42, 0x94, + 0xe9, 0x27, 0x49, 0x2b, 0xd2, 0xae, 0xb4, 0xb2, 0x07, 0xe3, 0xce, 0xb6, 0x22, 0x51, 0xae, 0x15, + 0x85, 0x84, 0x56, 0x9c, 0xa0, 0x2f, 0xad, 0x7c, 0x00, 0x9b, 0x6a, 0x96, 0x15, 0x27, 0x05, 0xb0, + 0x15, 0x1f, 0x69, 0x71, 0xc5, 0xab, 0xb7, 0xa8, 0x5f, 0xff, 0x6c, 0xb0, 0x00, 0xdb, 0xa2, 0xf3, + 0xb3, 0xbf, 0xd2, 0x92, 0x34, 0xc5, 0xb9, 0x69, 0xda, 0x4f, 0x87, 0xd0, 0x7c, 0xde, 0x4c, 0xd3, + 0x7e, 0x66, 0x06, 0xad, 0xfc, 0x1b, 0x1a, 0x14, 0x9b, 0x50, 0x4f, 0xea, 0x19, 0x91, 0x78, 0xaf, + 0xb1, 0xfd, 0xb0, 0xf8, 0x12, 0xfe, 0x5a, 0x6f, 0x34, 0x1e, 0x15, 0x35, 0x3d, 0x2b, 0x92, 0xeb, + 0x5f, 0x3e, 0xd8, 0xd8, 0x2f, 0xc6, 0xf4, 0x82, 0xc8, 0x6d, 0x6e, 0xef, 0x6e, 0x6d, 0x98, 0x7b, + 0xe6, 0xf6, 0xee, 0x41, 0x31, 0x8e, 0x7d, 0x9b, 0x8f, 0x1a, 0xf7, 0x0f, 0x8a, 0x09, 0x3d, 0x2d, + 0xe2, 0xd8, 0x96, 0xd4, 0x85, 0x48, 0xed, 0x1f, 0x40, 0xff, 0x56, 0x31, 0x85, 0x56, 0x0e, 0xb6, + 0x77, 0x36, 0x8a, 0x69, 0x44, 0x1e, 0xbc, 0xbb, 0xf7, 0x68, 0xa3, 0x98, 0xc1, 0x9f, 0xf7, 0x4d, + 0xf3, 0xfe, 0x97, 0x8b, 0x59, 0x24, 0xed, 0xdc, 0xdf, 0x2b, 0x0a, 0xea, 0xbe, 0xbf, 0x0e, 0xdd, + 0x39, 0x3d, 0x2f, 0x32, 0x9b, 0xef, 0xee, 0x3e, 0x38, 0xd8, 0x6e, 0xec, 0x16, 0xf3, 0xe5, 0xdf, + 0x8c, 0x09, 0xb1, 0x65, 0xef, 0x3f, 0xe9, 0x0e, 0xa9, 0x2a, 0xbe, 0x2e, 0xc4, 0x18, 0x7e, 0x37, + 0x49, 0x7a, 0x5c, 0xd9, 0x65, 0xb1, 0x85, 0x82, 0x8e, 0xfe, 0xaa, 0xc8, 0x53, 0x77, 0x5b, 0x86, + 0x02, 0x2a, 0xe8, 0xd2, 0x66, 0x0e, 0xdb, 0x38, 0x3a, 0xf8, 0x21, 0xab, 0x35, 0xaa, 0xe3, 0x52, + 0x0a, 0x64, 0xb5, 0x06, 0xf5, 0x3d, 0x3d, 0x36, 0xc7, 0x14, 0xd6, 0xa9, 0x76, 0xcb, 0x9a, 0x34, + 0xae, 0x0c, 0xf4, 0x20, 0x72, 0x1a, 0x53, 0xca, 0xa2, 0x30, 0x2d, 0x51, 0xc7, 0xdd, 0x25, 0xfc, + 0x21, 0x65, 0xe1, 0x11, 0x16, 0x1b, 0x22, 0xeb, 0xb6, 0xe3, 0x58, 0xd4, 0xca, 0x33, 0x2a, 0xd2, + 0x8c, 0x04, 0x35, 0xb9, 0x53, 0x92, 0x00, 0xf6, 0x66, 0x81, 0xbc, 0x91, 0x24, 0xe9, 0x4e, 0xf9, + 0xba, 0x98, 0xdb, 0xb5, 0x07, 0x72, 0x0b, 0xd1, 0x2a, 0xe5, 0x85, 0xd6, 0x2a, 0x69, 0x54, 0xc2, + 0x68, 0xad, 0xf2, 0x0d, 0x21, 0x94, 0xbe, 0xa2, 0xd0, 0x0e, 0x65, 0x1f, 0x6d, 0x44, 0xed, 0xb0, + 0xfc, 0xa6, 0x48, 0xed, 0xb4, 0x9e, 0x1f, 0xb4, 0x3a, 0x30, 0x96, 0xe8, 0xb5, 0xc6, 0x13, 0x58, + 0x1b, 0x94, 0xca, 0xff, 0xc3, 0x3f, 0x8d, 0x4e, 0x5c, 0x59, 0x6c, 0x95, 0x52, 0x79, 0x2a, 0x44, + 0xa3, 0x77, 0xb4, 0x63, 0x8d, 0xc7, 0xad, 0x8e, 0x05, 0xe7, 0x85, 0xd4, 0x00, 0x8c, 0x5a, 0x78, + 0x4d, 0x81, 0xc5, 0xfc, 0x55, 0x6f, 0x15, 0x3c, 0xd4, 0xd2, 0x2e, 0x41, 0x4c, 0x86, 0x82, 0x07, + 0xf1, 0xc1, 0x49, 0x9f, 0x2e, 0x2b, 0x92, 0x26, 0xfe, 0x5c, 0xbc, 0x26, 0x52, 0x12, 0x83, 0x97, + 0x22, 0x83, 0x56, 0xdf, 0x2a, 0xc9, 0x71, 0xe9, 0x77, 0xf9, 0x57, 0x34, 0x21, 0x76, 0xad, 0x67, + 0xe7, 0x18, 0xd3, 0x43, 0x45, 0x8c, 0x19, 0x97, 0x63, 0xbe, 0x13, 0x35, 0x26, 0xea, 0xac, 0x6d, + 0xdb, 0x47, 0x4d, 0xf9, 0x8a, 0xe5, 0xbd, 0x4a, 0x16, 0x5b, 0xe8, 0xad, 0x95, 0x3f, 0x10, 0xf9, + 0xed, 0xc1, 0xc0, 0x1a, 0x39, 0x3e, 0x81, 0x89, 0x63, 0x7b, 0x3c, 0xe1, 0x0b, 0x1e, 0xfa, 0xad, + 0x97, 0x44, 0x62, 0x68, 0x8f, 0x26, 0x72, 0x9e, 0xf5, 0x04, 0x9c, 0x69, 0x96, 0x4d, 0x6a, 0xd1, + 0xaf, 0x89, 0xec, 0x63, 0x1b, 0xe8, 0x8f, 0x71, 0x12, 0x71, 0xaa, 0x2d, 0xbc, 0x86, 0xf2, 0x2f, + 0x69, 0x22, 0xdf, 0x98, 0x1c, 0x7b, 0xc6, 0xc1, 0xf7, 0x27, 0xd6, 0x29, 0xb9, 0x07, 0xbe, 0xc3, + 0x4f, 0xbc, 0xda, 0xf9, 0xd9, 0x56, 0xef, 0x44, 0x5e, 0xf8, 0xe4, 0x4d, 0xf9, 0xa0, 0x5f, 0x12, + 0xa9, 0x67, 0x56, 0xb7, 0x73, 0x3c, 0x21, 0x9b, 0x31, 0x93, 0x9f, 0xa0, 0x4c, 0x48, 0x76, 0xd1, + 0xd9, 0x52, 0x82, 0xd6, 0xeb, 0x92, 0xb7, 0x5e, 0xea, 0x1c, 0x4c, 0x09, 0xba, 0x93, 0xc9, 0x1c, + 0x15, 0x7f, 0x01, 0xfe, 0xc5, 0xca, 0x6d, 0x71, 0xd1, 0x89, 0x1d, 0xbe, 0xc9, 0xee, 0x8a, 0x52, + 0xcf, 0xb2, 0x41, 0x24, 0x10, 0x65, 0x7a, 0xa7, 0xcd, 0x67, 0xf6, 0xa0, 0xd9, 0x1a, 0x34, 0xed, + 0xf1, 0xe3, 0xd6, 0x88, 0x16, 0x20, 0x7c, 0x88, 0x8b, 0xc0, 0xdb, 0x94, 0xb4, 0xf7, 0xed, 0xc1, + 0xfd, 0x41, 0x03, 0x39, 0xe5, 0xdf, 0x4f, 0x88, 0xec, 0xce, 0xa9, 0x63, 0x1d, 0xe6, 0xf6, 0xd8, + 0x3e, 0x19, 0xc8, 0xb5, 0x4c, 0x9a, 0xf2, 0xc1, 0x7d, 0x47, 0x31, 0xe5, 0x1d, 0x01, 0xf2, 0xe9, + 0x89, 0x3d, 0xb1, 0x68, 0xba, 0x59, 0x53, 0x3e, 0xe0, 0x6a, 0x0d, 0xad, 0x09, 0xcc, 0x15, 0x2b, + 0x4c, 0xfc, 0xe9, 0xcd, 0x3f, 0x79, 0x8e, 0xf9, 0xc3, 0x39, 0x3b, 0x65, 0xe3, 0xea, 0x8f, 0x4b, + 0x29, 0xba, 0xdc, 0x52, 0xe0, 0xea, 0x5b, 0x31, 0x19, 0xa5, 0x6f, 0x8b, 0x85, 0x67, 0x56, 0xb3, + 0x7f, 0x02, 0xdb, 0xa6, 0x63, 0xc3, 0x19, 0x0c, 0xa2, 0xf6, 0x08, 0x82, 0x0a, 0x8e, 0xa4, 0xc4, + 0x84, 0x59, 0x0b, 0x69, 0xce, 0x3f, 0xb3, 0x76, 0x80, 0xb7, 0x65, 0x3f, 0x24, 0x16, 0x28, 0x3b, + 0x0b, 0x29, 0xa8, 0x29, 0x9d, 0xcd, 0x07, 0x47, 0xf7, 0x51, 0x33, 0x00, 0xa4, 0x06, 0x7d, 0x45, + 0x64, 0x0e, 0xbb, 0x4f, 0xac, 0xf1, 0x31, 0x68, 0x29, 0x0d, 0xc3, 0xce, 0x1b, 0x57, 0x3c, 0x8e, + 0xbb, 0xac, 0x4b, 0x0f, 0xec, 0x9e, 0x3d, 0x32, 0x5d, 0x28, 0x1c, 0x11, 0xb2, 0x63, 0xbb, 0x6f, + 0x49, 0x7d, 0x67, 0x28, 0xb3, 0x5d, 0x9f, 0xc5, 0xdb, 0x07, 0x90, 0x13, 0xc1, 0x1c, 0xbc, 0x7e, + 0x55, 0x3a, 0x7a, 0x88, 0xe7, 0xd7, 0x92, 0xa0, 0xfa, 0x1c, 0x1d, 0xa2, 0xf3, 0xac, 0xbe, 0x88, + 0x0e, 0x75, 0xda, 0x78, 0x2c, 0x81, 0x00, 0x8d, 0xc5, 0x9d, 0xfb, 0xbc, 0xf8, 0x16, 0x84, 0x3e, + 0xc7, 0xa0, 0x17, 0xfa, 0x64, 0xb8, 0xc9, 0x52, 0x3c, 0x90, 0xa1, 0x4f, 0xc6, 0x9a, 0xd7, 0x44, + 0x92, 0xdc, 0xc6, 0x34, 0x61, 0x6e, 0x60, 0x56, 0x82, 0x34, 0xb1, 0x65, 0x6e, 0x6c, 0xec, 0x42, + 0x5a, 0xc2, 0x04, 0xf5, 0xe8, 0xdd, 0x8d, 0x62, 0x4c, 0x51, 0xec, 0x6f, 0x69, 0x22, 0xbe, 0xf1, + 0x9c, 0xd4, 0x82, 0xd3, 0x70, 0x76, 0x34, 0xfe, 0x36, 0x56, 0x45, 0xa2, 0x6f, 0x8f, 0x2c, 0xfd, + 0xc2, 0x8c, 0x59, 0x96, 0x3a, 0xf4, 0xbe, 0x94, 0xab, 0x5c, 0xb0, 0x62, 0x12, 0xde, 0x78, 0x43, + 0x24, 0x26, 0x16, 0xd8, 0x9c, 0xc9, 0x3b, 0x96, 0x03, 0x20, 0xc0, 0x80, 0x30, 0x0a, 0x71, 0xe5, + 0x10, 0x5e, 0xc9, 0x4c, 0x68, 0x97, 0xa6, 0xc7, 0x90, 0xf2, 0x7b, 0xa2, 0xf8, 0xc0, 0xee, 0x0f, + 0x7b, 0xd6, 0x73, 0x18, 0xc9, 0x1a, 0x8c, 0x21, 0x65, 0xa3, 0x9e, 0xdb, 0xdd, 0x11, 0x45, 0x11, + 0xba, 0xb0, 0xa5, 0x07, 0xdc, 0xd5, 0x63, 0x0b, 0xa2, 0xc3, 0x11, 0x07, 0x4c, 0x7e, 0x42, 0xf4, + 0xe4, 0xb8, 0x3b, 0xc2, 0x00, 0x82, 0x71, 0x5e, 0x3e, 0x94, 0xb7, 0x44, 0x81, 0x0f, 0xfa, 0x63, + 0x1e, 0xb8, 0x7c, 0x47, 0xe4, 0x9d, 0x26, 0xba, 0xbd, 0x86, 0x85, 0xfb, 0x60, 0xc3, 0x6c, 0xc0, + 0x6a, 0xc2, 0xb2, 0x36, 0x76, 0x37, 0x60, 0x2d, 0xe1, 0xc7, 0xc1, 0xfb, 0x0d, 0xdf, 0x52, 0x5e, + 0x13, 0x79, 0xd7, 0xf7, 0x7d, 0x6b, 0x42, 0x3d, 0x98, 0x10, 0xd2, 0xf5, 0x58, 0x46, 0x2b, 0xa7, + 0x45, 0x72, 0xa3, 0x3f, 0x9c, 0x9c, 0x96, 0x7f, 0x5e, 0xe4, 0x18, 0xf4, 0xa8, 0x0b, 0xce, 0xae, + 0x89, 0x74, 0x9f, 0xe7, 0xab, 0xd1, 0x99, 0x4b, 0xd5, 0x94, 0x87, 0x73, 0x7e, 0x9b, 0x0e, 0x7a, + 0xb1, 0x2a, 0xd2, 0x4a, 0x2c, 0xe5, 0xad, 0x1e, 0x53, 0xb7, 0xba, 0x0c, 0x0a, 0x71, 0x25, 0x28, + 0x94, 0x77, 0x44, 0x5a, 0x66, 0xc0, 0x31, 0x65, 0x75, 0x59, 0xaf, 0x49, 0x31, 0xc9, 0x37, 0x9f, + 0x93, 0x6d, 0xf2, 0x0a, 0x19, 0xe4, 0x46, 0x82, 0x65, 0x84, 0x0c, 0x9d, 0x82, 0x9a, 0xa4, 0xdc, + 0x7e, 0x2f, 0x29, 0x32, 0xce, 0x4a, 0x81, 0xc4, 0x53, 0xb2, 0x48, 0x22, 0x53, 0x4e, 0x11, 0x9f, + 0xa4, 0xb2, 0x08, 0x3a, 0xd3, 0x5c, 0x08, 0x71, 0x74, 0xc7, 0x8a, 0x3d, 0x25, 0x0b, 0x1f, 0xb7, + 0x13, 0xce, 0x16, 0x71, 0xb7, 0x3c, 0x4f, 0xc9, 0xd2, 0x46, 0xbf, 0x29, 0xb2, 0x6e, 0x31, 0x43, + 0xf1, 0x98, 0x6b, 0xf1, 0x8c, 0x53, 0xbd, 0x28, 0x08, 0x30, 0x90, 0xf4, 0x0a, 0xef, 0x4c, 0xdb, + 0x3b, 0x9e, 0x64, 0x9c, 0x92, 0x84, 0xee, 0xd0, 0x9d, 0x2a, 0x3b, 0xcd, 0x45, 0x88, 0x07, 0x00, + 0x0b, 0x69, 0xa5, 0xa4, 0x4e, 0x73, 0xa1, 0x01, 0x80, 0x34, 0x97, 0x16, 0xb4, 0xf5, 0xbd, 0xfa, + 0x39, 0x25, 0xcb, 0x09, 0x58, 0xce, 0x8c, 0x53, 0x40, 0xd0, 0xbe, 0xf4, 0x8a, 0xe5, 0x34, 0x17, + 0x0d, 0xfa, 0x9b, 0x08, 0x91, 0xcb, 0x0f, 0x21, 0x60, 0x76, 0x65, 0x9c, 0xe6, 0xca, 0x18, 0x26, + 0x95, 0xe6, 0x82, 0x98, 0x42, 0x82, 0x52, 0x05, 0xa7, 0x64, 0x15, 0xac, 0xdf, 0x20, 0x73, 0x72, + 0x52, 0x79, 0xaf, 0xe2, 0x4d, 0x73, 0x95, 0xe1, 0xf5, 0xd3, 0x91, 0xcd, 0xad, 0x6e, 0xd3, 0x5c, + 0x47, 0xe8, 0xab, 0xf8, 0xbe, 0x50, 0xdf, 0x70, 0x5c, 0xc3, 0x20, 0x58, 0xf2, 0x84, 0xe7, 0xbc, + 0x53, 0x19, 0x03, 0xeb, 0x32, 0x82, 0xc0, 0xab, 0xa4, 0xdd, 0xb0, 0x88, 0xbc, 0xbd, 0xee, 0xa0, + 0x0d, 0xe7, 0x38, 0x5c, 0x89, 0x38, 0xfc, 0x84, 0x3e, 0x6c, 0x91, 0x1a, 0xd8, 0xc5, 0xbe, 0x22, + 0xf5, 0x25, 0xde, 0x96, 0x9d, 0xd8, 0x04, 0xe9, 0x3d, 0x09, 0x9d, 0xad, 0x01, 0x1c, 0xc8, 0x88, + 0x37, 0x68, 0x0d, 0xcc, 0x44, 0x1b, 0x1a, 0xf4, 0x37, 0x44, 0x7c, 0x7c, 0x72, 0x58, 0xd2, 0x83, + 0x9f, 0x37, 0xf6, 0x4f, 0x0e, 0x1d, 0x57, 0x4c, 0x44, 0x80, 0xfd, 0x0c, 0x08, 0xb4, 0xf9, 0x73, + 0xd6, 0xc8, 0x2e, 0x5d, 0xa0, 0x25, 0x7c, 0xc9, 0x4c, 0x43, 0xcb, 0x07, 0xd0, 0x70, 0xce, 0xe0, + 0x07, 0x87, 0xbb, 0x9c, 0x62, 0x17, 0x4e, 0xe8, 0xda, 0x40, 0x9e, 0x14, 0xea, 0xda, 0x9a, 0xa9, + 0x0d, 0xca, 0x07, 0x22, 0xef, 0x14, 0x12, 0x34, 0x5f, 0x03, 0x77, 0x12, 0x98, 0xa5, 0xfd, 0x39, + 0x6f, 0x5c, 0x53, 0x53, 0x94, 0x07, 0xe3, 0x74, 0x21, 0xa1, 0xe5, 0x62, 0xc0, 0x15, 0xad, 0xfc, + 0x03, 0x38, 0xa3, 0xec, 0x40, 0x74, 0x74, 0x2f, 0x4d, 0x61, 0x83, 0x1e, 0xc2, 0xce, 0x18, 0x93, + 0xd9, 0x8c, 0x29, 0x1f, 0xf4, 0xd7, 0x44, 0x9e, 0x7e, 0x38, 0x05, 0x60, 0xcc, 0xbd, 0x5f, 0xc8, + 0x51, 0x3b, 0x57, 0x7d, 0xb0, 0xe3, 0xe1, 0x25, 0x8e, 0x39, 0x92, 0xd1, 0x6f, 0xfd, 0x33, 0x22, + 0x87, 0x7f, 0x1d, 0x66, 0xc2, 0x3d, 0xb0, 0x0a, 0x6c, 0x66, 0xe2, 0x1b, 0x62, 0x8e, 0xde, 0xbe, + 0x0b, 0x4b, 0xbb, 0x77, 0x09, 0x79, 0xd9, 0xc1, 0xc0, 0x92, 0x48, 0xcb, 0x50, 0x30, 0xa6, 0x4f, + 0x56, 0x59, 0xd3, 0x79, 0xc4, 0xf0, 0x4a, 0x95, 0x80, 0x4c, 0xf7, 0x69, 0x93, 0x9f, 0xca, 0xf7, + 0x45, 0x86, 0xb2, 0x14, 0x1c, 0x63, 0xf5, 0xb2, 0xd0, 0x3a, 0x25, 0x8b, 0x72, 0xe4, 0x45, 0xe5, + 0x98, 0xcf, 0xdd, 0x4b, 0x5b, 0xa6, 0xd6, 0x59, 0x5c, 0x10, 0xda, 0x16, 0x9e, 0xbb, 0x9f, 0x73, + 0x98, 0xd6, 0x9e, 0x97, 0x1b, 0x6c, 0x02, 0x4e, 0xa5, 0x51, 0x26, 0xa0, 0x5b, 0x9a, 0x78, 0x65, + 0xca, 0x04, 0x3e, 0x9d, 0xf2, 0xf7, 0x3b, 0xed, 0x14, 0xcf, 0xf9, 0xb4, 0x3d, 0xc1, 0xf1, 0x3d, + 0x1b, 0xe6, 0x87, 0xdd, 0x6d, 0x3a, 0x27, 0xc1, 0x39, 0xbe, 0x5d, 0xfe, 0x34, 0x21, 0xe6, 0x39, + 0x88, 0xbe, 0xdf, 0x9d, 0x1c, 0xef, 0xb4, 0x86, 0xfa, 0x23, 0x91, 0xc7, 0xf8, 0xd9, 0xec, 0xb7, + 0x86, 0x43, 0xdc, 0xa8, 0x1a, 0x1d, 0x2a, 0x6e, 0x4f, 0x05, 0x65, 0xc6, 0x2f, 0xed, 0x02, 0x78, + 0x47, 0x62, 0x37, 0x06, 0x93, 0xd1, 0xa9, 0x99, 0x1b, 0x78, 0x2d, 0x70, 0xd4, 0xc9, 0xf5, 0xc7, + 0x1d, 0xd7, 0x58, 0x8c, 0x8c, 0xdd, 0x0a, 0x35, 0xb6, 0x33, 0xee, 0xf8, 0x6c, 0x89, 0xbe, 0xdb, + 0x80, 0x8e, 0x61, 0xe4, 0x75, 0x6d, 0xc5, 0xcf, 0x70, 0x0c, 0x83, 0x84, 0xdf, 0xb1, 0x43, 0xaf, + 0x05, 0x4a, 0x75, 0x81, 0x1b, 0x69, 0x62, 0x63, 0x91, 0x44, 0x5a, 0xc9, 0x19, 0xaf, 0x87, 0xda, + 0x82, 0x98, 0x74, 0x60, 0xc3, 0x7f, 0xa4, 0x21, 0xdc, 0x82, 0xf4, 0xb8, 0xf8, 0x05, 0x51, 0x0c, + 0xce, 0x5f, 0x3d, 0x7b, 0x27, 0x67, 0x9c, 0xbd, 0xb3, 0x7c, 0xf6, 0xae, 0xc7, 0xee, 0x6a, 0x8b, + 0xef, 0x89, 0x42, 0x60, 0xca, 0x2a, 0x5d, 0x97, 0xf4, 0xb7, 0x55, 0x7a, 0xce, 0xb8, 0xac, 0x7c, + 0x3d, 0x56, 0x5f, 0xad, 0x6a, 0x17, 0xfc, 0x0a, 0x4e, 0x5f, 0x35, 0x9c, 0x89, 0xa8, 0x09, 0x88, + 0xff, 0x8e, 0x98, 0xf3, 0x4d, 0x59, 0x25, 0x67, 0xcf, 0x98, 0x54, 0xf9, 0x17, 0x93, 0x22, 0xd9, + 0x18, 0x58, 0x76, 0x5b, 0xbf, 0xec, 0xcf, 0x88, 0x5f, 0x7c, 0xc9, 0xc9, 0x86, 0x57, 0x02, 0xd9, + 0x10, 0x7a, 0x9c, 0x5c, 0x78, 0x25, 0x90, 0x0b, 0x9d, 0x2e, 0x08, 0xd8, 0xd7, 0xa7, 0x32, 0x21, + 0x74, 0x7a, 0x69, 0xf0, 0xfa, 0x54, 0x1a, 0xf4, 0xba, 0x81, 0x7d, 0x35, 0x98, 0x03, 0xa1, 0xd7, + 0xcd, 0x7f, 0x57, 0x83, 0xf9, 0xcf, 0xed, 0x04, 0xe6, 0x95, 0x40, 0xee, 0x23, 0x97, 0x64, 0xd6, + 0xbb, 0x1a, 0xcc, 0x7a, 0xc4, 0xe3, 0x7c, 0x77, 0x35, 0x98, 0xef, 0xa8, 0x93, 0xf3, 0xdb, 0x95, + 0x40, 0x7e, 0x23, 0xa3, 0x32, 0xb1, 0x5d, 0x0d, 0x26, 0x36, 0xc9, 0x53, 0x3c, 0x55, 0xb3, 0x9a, + 0xdb, 0x09, 0x9e, 0x1a, 0x81, 0x94, 0x16, 0x7e, 0xae, 0xa7, 0x77, 0x41, 0xe1, 0xbd, 0x86, 0xcb, + 0xe6, 0x1c, 0x39, 0x0b, 0x11, 0x1f, 0xd8, 0x69, 0x35, 0x9d, 0x23, 0x97, 0x21, 0xd2, 0x6d, 0x2e, + 0x75, 0x8b, 0x14, 0xa3, 0x14, 0x59, 0xd2, 0xcb, 0x5f, 0xda, 0x6c, 0x52, 0xac, 0xa2, 0x79, 0xc9, + 0xd3, 0xfb, 0x2d, 0x08, 0x46, 0xcd, 0x47, 0xad, 0x51, 0x07, 0x80, 0xcd, 0x83, 0x56, 0xc7, 0xbd, + 0x2e, 0xc0, 0xf7, 0x9f, 0x6b, 0x73, 0x0f, 0xde, 0x2a, 0x5c, 0x72, 0xc4, 0x75, 0x44, 0xbd, 0x1a, + 0xcb, 0x6b, 0xf1, 0x32, 0x2e, 0x9a, 0x34, 0x46, 0x51, 0x6f, 0x81, 0xa3, 0xde, 0x3a, 0x9c, 0x2e, + 0x4f, 0x06, 0x70, 0x22, 0x5e, 0xcf, 0x8a, 0xf4, 0xc4, 0x1e, 0xf5, 0x5b, 0x13, 0xbb, 0xfc, 0x43, + 0x4d, 0x08, 0x38, 0x31, 0xf7, 0xa1, 0xe3, 0x29, 0xd4, 0xba, 0x90, 0xf6, 0xfa, 0xad, 0x27, 0x10, + 0x3f, 0xac, 0xe6, 0xe3, 0x91, 0xb3, 0x0f, 0xb2, 0xd8, 0xb4, 0x63, 0x3d, 0x00, 0x89, 0x97, 0x9c, + 0xc3, 0x38, 0x69, 0x87, 0x24, 0xc9, 0x87, 0xf3, 0x8b, 0x7c, 0xbc, 0x4c, 0xf1, 0x3b, 0x74, 0x0e, + 0x98, 0xb2, 0x62, 0x48, 0xf3, 0xdb, 0xa3, 0x27, 0x94, 0xfc, 0xc4, 0xea, 0x0f, 0x9b, 0x8f, 0x49, + 0x2a, 0x28, 0x87, 0x24, 0x3e, 0x3f, 0x80, 0x5d, 0x1c, 0x87, 0xd4, 0x48, 0x22, 0x39, 0xe3, 0xbd, + 0x20, 0x0e, 0xf2, 0x60, 0x1c, 0x62, 0x1f, 0xc9, 0x26, 0x67, 0x2c, 0x28, 0x27, 0x02, 0x99, 0x84, + 0x10, 0x06, 0xfd, 0xee, 0xbc, 0xef, 0x14, 0x44, 0x7c, 0xb3, 0xd1, 0xc0, 0x2c, 0x0f, 0x7f, 0x2a, + 0x45, 0xad, 0xfe, 0x39, 0x91, 0xe9, 0x8c, 0x2c, 0x0b, 0xc3, 0xc3, 0xec, 0xea, 0xe2, 0x43, 0xca, + 0x6a, 0x2e, 0xa8, 0x0e, 0x47, 0xe3, 0xc7, 0xb2, 0xbe, 0xd0, 0x43, 0x0a, 0xd8, 0xd2, 0x1f, 0xc8, + 0xeb, 0x93, 0x45, 0xaf, 0x3b, 0x58, 0x91, 0x98, 0x8e, 0x8d, 0xfa, 0x1e, 0x14, 0x7c, 0xcd, 0xb3, + 0x0c, 0x7e, 0x24, 0xb3, 0x4b, 0x94, 0xc1, 0xcc, 0x88, 0x9b, 0xea, 0x1b, 0x62, 0x61, 0x60, 0x3b, + 0x9f, 0x2c, 0x9a, 0x47, 0x72, 0x8f, 0x5d, 0x99, 0x3e, 0xb4, 0x39, 0xc6, 0x2d, 0xf9, 0x99, 0x70, + 0x60, 0x73, 0x87, 0xdc, 0x95, 0xf5, 0x07, 0xa2, 0xa8, 0x98, 0xa1, 0x22, 0x33, 0xca, 0x4a, 0x5b, + 0x7e, 0x97, 0x74, 0xad, 0xd0, 0xbe, 0x0f, 0x18, 0x91, 0x3b, 0x33, 0xc2, 0x48, 0x47, 0x7e, 0xe4, + 0x75, 0x8d, 0x50, 0xa8, 0x9b, 0x36, 0x82, 0xb1, 0x26, 0xdc, 0xc8, 0xb1, 0xfc, 0xfe, 0xab, 0x1a, + 0x59, 0xad, 0x05, 0x56, 0xe5, 0xe4, 0x4c, 0x57, 0xba, 0xf2, 0xf3, 0xad, 0x6b, 0x45, 0x06, 0xc0, + 0x19, 0x66, 0xa2, 0x9d, 0xf9, 0x50, 0x7e, 0xd9, 0xf5, 0x99, 0x99, 0xf2, 0x66, 0x7c, 0xa6, 0x37, + 0x4f, 0xe4, 0x67, 0x54, 0xd7, 0xcc, 0xfe, 0x2c, 0x6f, 0xc6, 0x67, 0x7a, 0xd3, 0x93, 0x1f, 0x58, + 0x7d, 0x66, 0xc0, 0x9b, 0x2d, 0xa1, 0xab, 0xaf, 0x9a, 0xf3, 0x44, 0x84, 0x9d, 0xbe, 0xfc, 0x6c, + 0xee, 0xbd, 0x6c, 0x49, 0x99, 0x65, 0x28, 0xda, 0xa1, 0x81, 0xfc, 0xa2, 0xee, 0x37, 0x04, 0x1e, + 0x6d, 0x8b, 0x0b, 0xea, 0xc4, 0xce, 0xe1, 0x92, 0x0d, 0x96, 0x0a, 0xe6, 0x82, 0x37, 0x35, 0xe6, + 0xcc, 0x34, 0x15, 0xed, 0xd4, 0x10, 0x4c, 0x15, 0xa7, 0x4c, 0x81, 0x57, 0xf7, 0x45, 0x41, 0x31, + 0x75, 0x48, 0x19, 0x3a, 0xdc, 0xcc, 0x53, 0xf9, 0xbf, 0x36, 0xb8, 0x66, 0x30, 0xa3, 0x07, 0xdf, + 0x18, 0xe7, 0xb8, 0x70, 0x23, 0x23, 0xf9, 0x5d, 0xde, 0xf3, 0x85, 0x18, 0x81, 0x2d, 0x41, 0x95, + 0x76, 0x94, 0x95, 0xb1, 0xfc, 0x62, 0xef, 0xb9, 0x82, 0x84, 0x7a, 0xd7, 0x37, 0x1d, 0x0b, 0x93, + 0x5c, 0x84, 0x8d, 0x09, 0x45, 0xe4, 0xd7, 0x43, 0x01, 0x4b, 0xea, 0x55, 0x88, 0x32, 0x6d, 0x7c, + 0x84, 0x97, 0x30, 0x7f, 0xfe, 0x80, 0xf4, 0x91, 0x26, 0xeb, 0xe2, 0xea, 0x12, 0x96, 0xce, 0xe6, + 0xdc, 0x91, 0x2f, 0x2e, 0x6d, 0x88, 0xb9, 0x73, 0x07, 0xa5, 0x8f, 0x35, 0x59, 0x5d, 0xa2, 0x25, + 0x33, 0x7f, 0xe4, 0x8f, 0x4c, 0x73, 0xe7, 0x0e, 0x4b, 0x9f, 0x68, 0xf2, 0x2a, 0xa2, 0x66, 0xb8, + 0x46, 0x9c, 0xc8, 0x34, 0x77, 0xee, 0xb0, 0xf4, 0x15, 0x59, 0x3b, 0xc6, 0x6a, 0x55, 0xd5, 0x08, + 0xc5, 0x82, 0xf9, 0xf3, 0x87, 0xa5, 0xaf, 0x6a, 0x74, 0x2d, 0x11, 0xab, 0xd5, 0xdc, 0x75, 0x71, + 0x23, 0xd3, 0xfc, 0xf9, 0xc3, 0xd2, 0xd7, 0x34, 0xba, 0xbc, 0x88, 0xd5, 0x56, 0x7c, 0x66, 0xfc, + 0xde, 0x9c, 0x1d, 0x96, 0xbe, 0xae, 0xd1, 0x7d, 0x42, 0xac, 0xb6, 0xea, 0x9a, 0xd9, 0x9f, 0xf2, + 0xe6, 0xec, 0xb0, 0xf4, 0x0d, 0x3a, 0xc5, 0x83, 0x99, 0x35, 0x9f, 0x19, 0x8a, 0x4c, 0x85, 0x17, + 0x08, 0x4b, 0xdf, 0xd4, 0xe8, 0xda, 0x27, 0x56, 0xbb, 0x6b, 0x3a, 0xa3, 0x7b, 0x91, 0xa9, 0xf0, + 0x02, 0x61, 0xe9, 0x53, 0x8d, 0x6e, 0x87, 0x62, 0xb5, 0x7b, 0x7e, 0x43, 0x14, 0x99, 0x8a, 0x2f, + 0x12, 0x96, 0xbe, 0x85, 0x96, 0x0a, 0xf5, 0xd8, 0xca, 0xb2, 0xe9, 0x38, 0xa0, 0x44, 0xa6, 0xe2, + 0x8b, 0x84, 0xa5, 0x6f, 0xa3, 0xa9, 0x22, 0x98, 0xaa, 0x04, 0x4c, 0x81, 0x57, 0x0f, 0x44, 0xfe, + 0xbc, 0x61, 0xe9, 0x3b, 0xea, 0xad, 0x5b, 0xee, 0x48, 0x89, 0x4d, 0x7b, 0xca, 0x3b, 0x3b, 0x33, + 0x30, 0x7d, 0x97, 0x6a, 0x9c, 0xfa, 0xdc, 0x17, 0xe5, 0xcd, 0x94, 0x24, 0x78, 0xaf, 0x4f, 0x86, + 0xa9, 0x1d, 0x6f, 0x7f, 0x9c, 0x19, 0xa3, 0xbe, 0xa7, 0xd1, 0xf5, 0x55, 0x9e, 0x0d, 0x12, 0xde, + 0xdd, 0x29, 0x32, 0x60, 0x7d, 0xe8, 0xcd, 0xf2, 0xac, 0x68, 0xf5, 0x7d, 0xed, 0x45, 0xc2, 0x55, + 0x1d, 0x6f, 0x6b, 0xdd, 0xc5, 0xa0, 0x96, 0xcf, 0x8b, 0xc4, 0x73, 0x63, 0xb9, 0xa2, 0x1e, 0xc9, + 0xd4, 0x5b, 0x5b, 0x19, 0xa4, 0x72, 0x46, 0x41, 0xb9, 0xd8, 0xc6, 0x6b, 0x5b, 0x93, 0x58, 0xcc, + 0x36, 0x42, 0xd9, 0x1f, 0x47, 0xb0, 0x0d, 0x66, 0x57, 0x43, 0xd9, 0x9f, 0x44, 0xb0, 0xab, 0xcc, + 0xae, 0x85, 0xb2, 0xbf, 0x12, 0xc1, 0xae, 0x31, 0x7b, 0x25, 0x94, 0xfd, 0xd5, 0x08, 0xf6, 0x0a, + 0xb3, 0x57, 0x43, 0xd9, 0x5f, 0x8b, 0x60, 0xaf, 0x32, 0x7b, 0x2d, 0x94, 0xfd, 0xf5, 0x08, 0xf6, + 0x1a, 0xb3, 0xef, 0x86, 0xb2, 0xbf, 0x11, 0xc1, 0xbe, 0xcb, 0xec, 0x7b, 0xa1, 0xec, 0x6f, 0x46, + 0xb0, 0xef, 0x49, 0x76, 0x65, 0x39, 0x94, 0xfd, 0x69, 0x38, 0xbb, 0xb2, 0xcc, 0xec, 0x70, 0xad, + 0x7d, 0x2b, 0x82, 0xcd, 0x5a, 0xab, 0x84, 0x6b, 0xed, 0xdb, 0x11, 0x6c, 0xd6, 0x5a, 0x25, 0x5c, + 0x6b, 0xdf, 0x89, 0x60, 0xb3, 0xd6, 0x2a, 0xe1, 0x5a, 0xfb, 0x6e, 0x04, 0x9b, 0xb5, 0x56, 0x09, + 0xd7, 0xda, 0xf7, 0x22, 0xd8, 0xac, 0xb5, 0x4a, 0xb8, 0xd6, 0xbe, 0x1f, 0xc1, 0x66, 0xad, 0x55, + 0xc2, 0xb5, 0xf6, 0x87, 0x11, 0x6c, 0xd6, 0x5a, 0x25, 0x5c, 0x6b, 0x7f, 0x14, 0xc1, 0x66, 0xad, + 0x55, 0xc2, 0xb5, 0xf6, 0xc7, 0x11, 0x6c, 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0x3f, 0x09, 0x67, 0x1b, + 0xac, 0x35, 0x23, 0x5c, 0x6b, 0x7f, 0x1a, 0xc1, 0x66, 0xad, 0x19, 0xe1, 0x5a, 0xfb, 0xb3, 0x08, + 0x36, 0x6b, 0xcd, 0x08, 0xd7, 0xda, 0x0f, 0x22, 0xd8, 0xac, 0x35, 0x23, 0x5c, 0x6b, 0x7f, 0x1e, + 0xc1, 0x66, 0xad, 0x19, 0xe1, 0x5a, 0xfb, 0x8b, 0x08, 0x36, 0x6b, 0xcd, 0x08, 0xd7, 0xda, 0x5f, + 0x46, 0xb0, 0x59, 0x6b, 0x46, 0xb8, 0xd6, 0xfe, 0x2a, 0x82, 0xcd, 0x5a, 0x33, 0xc2, 0xb5, 0xf6, + 0xd7, 0x11, 0x6c, 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0xbf, 0x89, 0x60, 0xb3, 0xd6, 0xaa, 0xe1, 0x5a, + 0xfb, 0xdb, 0x70, 0x76, 0x95, 0xb5, 0x56, 0x0d, 0xd7, 0xda, 0xdf, 0x45, 0xb0, 0x59, 0x6b, 0xd5, + 0x70, 0xad, 0xfd, 0x7d, 0x04, 0x9b, 0xb5, 0x56, 0x0d, 0xd7, 0xda, 0x3f, 0x44, 0xb0, 0x59, 0x6b, + 0xd5, 0x70, 0xad, 0xfd, 0x30, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x1f, 0x23, 0xd8, 0xac, + 0xb5, 0x6a, 0xb8, 0xd6, 0xfe, 0x29, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x9f, 0x23, 0xd8, + 0xac, 0xb5, 0x6a, 0xb8, 0xd6, 0xfe, 0x25, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x5f, 0x23, + 0xd8, 0xac, 0xb5, 0x5a, 0xb8, 0xd6, 0xfe, 0x2d, 0x9c, 0x5d, 0x63, 0xad, 0xd5, 0xc2, 0xb5, 0xf6, + 0xef, 0x11, 0x6c, 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0xff, 0x11, 0xc1, 0x66, 0xad, 0xd5, 0xc2, 0xb5, + 0xf6, 0x9f, 0x11, 0x6c, 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0xff, 0x15, 0xc1, 0x66, 0xad, 0xd5, 0xc2, + 0xb5, 0xf6, 0xdf, 0x11, 0x6c, 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0x3f, 0x8a, 0x60, 0xb3, 0xd6, 0x6a, + 0xe1, 0x5a, 0xfb, 0x71, 0x04, 0x9b, 0xb5, 0x56, 0x0b, 0xd7, 0xda, 0xff, 0x44, 0xb0, 0x59, 0x6b, + 0xb5, 0x70, 0xad, 0xfd, 0x6f, 0x04, 0x9b, 0xb5, 0xb6, 0x12, 0xae, 0xb5, 0xff, 0x0b, 0x67, 0xaf, + 0x2c, 0xff, 0x24, 0x00, 0x00, 0xff, 0xff, 0x81, 0x23, 0xc6, 0xe6, 0xc6, 0x38, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/proto/testdata/test.proto b/vendor/github.com/golang/protobuf/proto/testdata/test.proto new file mode 100644 index 00000000..f6071136 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/testdata/test.proto @@ -0,0 +1,540 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// A feature-rich test file for the protocol compiler and libraries. + +syntax = "proto2"; + +package testdata; + +enum FOO { FOO1 = 1; }; + +message GoEnum { + required FOO foo = 1; +} + +message GoTestField { + required string Label = 1; + required string Type = 2; +} + +message GoTest { + // An enum, for completeness. + enum KIND { + VOID = 0; + + // Basic types + BOOL = 1; + BYTES = 2; + FINGERPRINT = 3; + FLOAT = 4; + INT = 5; + STRING = 6; + TIME = 7; + + // Groupings + TUPLE = 8; + ARRAY = 9; + MAP = 10; + + // Table types + TABLE = 11; + + // Functions + FUNCTION = 12; // last tag + }; + + // Some typical parameters + required KIND Kind = 1; + optional string Table = 2; + optional int32 Param = 3; + + // Required, repeated and optional foreign fields. + required GoTestField RequiredField = 4; + repeated GoTestField RepeatedField = 5; + optional GoTestField OptionalField = 6; + + // Required fields of all basic types + required bool F_Bool_required = 10; + required int32 F_Int32_required = 11; + required int64 F_Int64_required = 12; + required fixed32 F_Fixed32_required = 13; + required fixed64 F_Fixed64_required = 14; + required uint32 F_Uint32_required = 15; + required uint64 F_Uint64_required = 16; + required float F_Float_required = 17; + required double F_Double_required = 18; + required string F_String_required = 19; + required bytes F_Bytes_required = 101; + required sint32 F_Sint32_required = 102; + required sint64 F_Sint64_required = 103; + + // Repeated fields of all basic types + repeated bool F_Bool_repeated = 20; + repeated int32 F_Int32_repeated = 21; + repeated int64 F_Int64_repeated = 22; + repeated fixed32 F_Fixed32_repeated = 23; + repeated fixed64 F_Fixed64_repeated = 24; + repeated uint32 F_Uint32_repeated = 25; + repeated uint64 F_Uint64_repeated = 26; + repeated float F_Float_repeated = 27; + repeated double F_Double_repeated = 28; + repeated string F_String_repeated = 29; + repeated bytes F_Bytes_repeated = 201; + repeated sint32 F_Sint32_repeated = 202; + repeated sint64 F_Sint64_repeated = 203; + + // Optional fields of all basic types + optional bool F_Bool_optional = 30; + optional int32 F_Int32_optional = 31; + optional int64 F_Int64_optional = 32; + optional fixed32 F_Fixed32_optional = 33; + optional fixed64 F_Fixed64_optional = 34; + optional uint32 F_Uint32_optional = 35; + optional uint64 F_Uint64_optional = 36; + optional float F_Float_optional = 37; + optional double F_Double_optional = 38; + optional string F_String_optional = 39; + optional bytes F_Bytes_optional = 301; + optional sint32 F_Sint32_optional = 302; + optional sint64 F_Sint64_optional = 303; + + // Default-valued fields of all basic types + optional bool F_Bool_defaulted = 40 [default=true]; + optional int32 F_Int32_defaulted = 41 [default=32]; + optional int64 F_Int64_defaulted = 42 [default=64]; + optional fixed32 F_Fixed32_defaulted = 43 [default=320]; + optional fixed64 F_Fixed64_defaulted = 44 [default=640]; + optional uint32 F_Uint32_defaulted = 45 [default=3200]; + optional uint64 F_Uint64_defaulted = 46 [default=6400]; + optional float F_Float_defaulted = 47 [default=314159.]; + optional double F_Double_defaulted = 48 [default=271828.]; + optional string F_String_defaulted = 49 [default="hello, \"world!\"\n"]; + optional bytes F_Bytes_defaulted = 401 [default="Bignose"]; + optional sint32 F_Sint32_defaulted = 402 [default = -32]; + optional sint64 F_Sint64_defaulted = 403 [default = -64]; + + // Packed repeated fields (no string or bytes). + repeated bool F_Bool_repeated_packed = 50 [packed=true]; + repeated int32 F_Int32_repeated_packed = 51 [packed=true]; + repeated int64 F_Int64_repeated_packed = 52 [packed=true]; + repeated fixed32 F_Fixed32_repeated_packed = 53 [packed=true]; + repeated fixed64 F_Fixed64_repeated_packed = 54 [packed=true]; + repeated uint32 F_Uint32_repeated_packed = 55 [packed=true]; + repeated uint64 F_Uint64_repeated_packed = 56 [packed=true]; + repeated float F_Float_repeated_packed = 57 [packed=true]; + repeated double F_Double_repeated_packed = 58 [packed=true]; + repeated sint32 F_Sint32_repeated_packed = 502 [packed=true]; + repeated sint64 F_Sint64_repeated_packed = 503 [packed=true]; + + // Required, repeated, and optional groups. + required group RequiredGroup = 70 { + required string RequiredField = 71; + }; + + repeated group RepeatedGroup = 80 { + required string RequiredField = 81; + }; + + optional group OptionalGroup = 90 { + required string RequiredField = 91; + }; +} + +// For testing skipping of unrecognized fields. +// Numbers are all big, larger than tag numbers in GoTestField, +// the message used in the corresponding test. +message GoSkipTest { + required int32 skip_int32 = 11; + required fixed32 skip_fixed32 = 12; + required fixed64 skip_fixed64 = 13; + required string skip_string = 14; + required group SkipGroup = 15 { + required int32 group_int32 = 16; + required string group_string = 17; + } +} + +// For testing packed/non-packed decoder switching. +// A serialized instance of one should be deserializable as the other. +message NonPackedTest { + repeated int32 a = 1; +} + +message PackedTest { + repeated int32 b = 1 [packed=true]; +} + +message MaxTag { + // Maximum possible tag number. + optional string last_field = 536870911; +} + +message OldMessage { + message Nested { + optional string name = 1; + } + optional Nested nested = 1; + + optional int32 num = 2; +} + +// NewMessage is wire compatible with OldMessage; +// imagine it as a future version. +message NewMessage { + message Nested { + optional string name = 1; + optional string food_group = 2; + } + optional Nested nested = 1; + + // This is an int32 in OldMessage. + optional int64 num = 2; +} + +// Smaller tests for ASCII formatting. + +message InnerMessage { + required string host = 1; + optional int32 port = 2 [default=4000]; + optional bool connected = 3; +} + +message OtherMessage { + optional int64 key = 1; + optional bytes value = 2; + optional float weight = 3; + optional InnerMessage inner = 4; + + extensions 100 to max; +} + +message RequiredInnerMessage { + required InnerMessage leo_finally_won_an_oscar = 1; +} + +message MyMessage { + required int32 count = 1; + optional string name = 2; + optional string quote = 3; + repeated string pet = 4; + optional InnerMessage inner = 5; + repeated OtherMessage others = 6; + optional RequiredInnerMessage we_must_go_deeper = 13; + repeated InnerMessage rep_inner = 12; + + enum Color { + RED = 0; + GREEN = 1; + BLUE = 2; + }; + optional Color bikeshed = 7; + + optional group SomeGroup = 8 { + optional int32 group_field = 9; + } + + // This field becomes [][]byte in the generated code. + repeated bytes rep_bytes = 10; + + optional double bigfloat = 11; + + extensions 100 to max; +} + +message Ext { + extend MyMessage { + optional Ext more = 103; + optional string text = 104; + optional int32 number = 105; + } + + optional string data = 1; +} + +extend MyMessage { + repeated string greeting = 106; +} + +message ComplexExtension { + optional int32 first = 1; + optional int32 second = 2; + repeated int32 third = 3; +} + +extend OtherMessage { + optional ComplexExtension complex = 200; + repeated ComplexExtension r_complex = 201; +} + +message DefaultsMessage { + enum DefaultsEnum { + ZERO = 0; + ONE = 1; + TWO = 2; + }; + extensions 100 to max; +} + +extend DefaultsMessage { + optional double no_default_double = 101; + optional float no_default_float = 102; + optional int32 no_default_int32 = 103; + optional int64 no_default_int64 = 104; + optional uint32 no_default_uint32 = 105; + optional uint64 no_default_uint64 = 106; + optional sint32 no_default_sint32 = 107; + optional sint64 no_default_sint64 = 108; + optional fixed32 no_default_fixed32 = 109; + optional fixed64 no_default_fixed64 = 110; + optional sfixed32 no_default_sfixed32 = 111; + optional sfixed64 no_default_sfixed64 = 112; + optional bool no_default_bool = 113; + optional string no_default_string = 114; + optional bytes no_default_bytes = 115; + optional DefaultsMessage.DefaultsEnum no_default_enum = 116; + + optional double default_double = 201 [default = 3.1415]; + optional float default_float = 202 [default = 3.14]; + optional int32 default_int32 = 203 [default = 42]; + optional int64 default_int64 = 204 [default = 43]; + optional uint32 default_uint32 = 205 [default = 44]; + optional uint64 default_uint64 = 206 [default = 45]; + optional sint32 default_sint32 = 207 [default = 46]; + optional sint64 default_sint64 = 208 [default = 47]; + optional fixed32 default_fixed32 = 209 [default = 48]; + optional fixed64 default_fixed64 = 210 [default = 49]; + optional sfixed32 default_sfixed32 = 211 [default = 50]; + optional sfixed64 default_sfixed64 = 212 [default = 51]; + optional bool default_bool = 213 [default = true]; + optional string default_string = 214 [default = "Hello, string"]; + optional bytes default_bytes = 215 [default = "Hello, bytes"]; + optional DefaultsMessage.DefaultsEnum default_enum = 216 [default = ONE]; +} + +message MyMessageSet { + option message_set_wire_format = true; + extensions 100 to max; +} + +message Empty { +} + +extend MyMessageSet { + optional Empty x201 = 201; + optional Empty x202 = 202; + optional Empty x203 = 203; + optional Empty x204 = 204; + optional Empty x205 = 205; + optional Empty x206 = 206; + optional Empty x207 = 207; + optional Empty x208 = 208; + optional Empty x209 = 209; + optional Empty x210 = 210; + optional Empty x211 = 211; + optional Empty x212 = 212; + optional Empty x213 = 213; + optional Empty x214 = 214; + optional Empty x215 = 215; + optional Empty x216 = 216; + optional Empty x217 = 217; + optional Empty x218 = 218; + optional Empty x219 = 219; + optional Empty x220 = 220; + optional Empty x221 = 221; + optional Empty x222 = 222; + optional Empty x223 = 223; + optional Empty x224 = 224; + optional Empty x225 = 225; + optional Empty x226 = 226; + optional Empty x227 = 227; + optional Empty x228 = 228; + optional Empty x229 = 229; + optional Empty x230 = 230; + optional Empty x231 = 231; + optional Empty x232 = 232; + optional Empty x233 = 233; + optional Empty x234 = 234; + optional Empty x235 = 235; + optional Empty x236 = 236; + optional Empty x237 = 237; + optional Empty x238 = 238; + optional Empty x239 = 239; + optional Empty x240 = 240; + optional Empty x241 = 241; + optional Empty x242 = 242; + optional Empty x243 = 243; + optional Empty x244 = 244; + optional Empty x245 = 245; + optional Empty x246 = 246; + optional Empty x247 = 247; + optional Empty x248 = 248; + optional Empty x249 = 249; + optional Empty x250 = 250; +} + +message MessageList { + repeated group Message = 1 { + required string name = 2; + required int32 count = 3; + } +} + +message Strings { + optional string string_field = 1; + optional bytes bytes_field = 2; +} + +message Defaults { + enum Color { + RED = 0; + GREEN = 1; + BLUE = 2; + } + + // Default-valued fields of all basic types. + // Same as GoTest, but copied here to make testing easier. + optional bool F_Bool = 1 [default=true]; + optional int32 F_Int32 = 2 [default=32]; + optional int64 F_Int64 = 3 [default=64]; + optional fixed32 F_Fixed32 = 4 [default=320]; + optional fixed64 F_Fixed64 = 5 [default=640]; + optional uint32 F_Uint32 = 6 [default=3200]; + optional uint64 F_Uint64 = 7 [default=6400]; + optional float F_Float = 8 [default=314159.]; + optional double F_Double = 9 [default=271828.]; + optional string F_String = 10 [default="hello, \"world!\"\n"]; + optional bytes F_Bytes = 11 [default="Bignose"]; + optional sint32 F_Sint32 = 12 [default=-32]; + optional sint64 F_Sint64 = 13 [default=-64]; + optional Color F_Enum = 14 [default=GREEN]; + + // More fields with crazy defaults. + optional float F_Pinf = 15 [default=inf]; + optional float F_Ninf = 16 [default=-inf]; + optional float F_Nan = 17 [default=nan]; + + // Sub-message. + optional SubDefaults sub = 18; + + // Redundant but explicit defaults. + optional string str_zero = 19 [default=""]; +} + +message SubDefaults { + optional int64 n = 1 [default=7]; +} + +message RepeatedEnum { + enum Color { + RED = 1; + } + repeated Color color = 1; +} + +message MoreRepeated { + repeated bool bools = 1; + repeated bool bools_packed = 2 [packed=true]; + repeated int32 ints = 3; + repeated int32 ints_packed = 4 [packed=true]; + repeated int64 int64s_packed = 7 [packed=true]; + repeated string strings = 5; + repeated fixed32 fixeds = 6; +} + +// GroupOld and GroupNew have the same wire format. +// GroupNew has a new field inside a group. + +message GroupOld { + optional group G = 101 { + optional int32 x = 2; + } +} + +message GroupNew { + optional group G = 101 { + optional int32 x = 2; + optional int32 y = 3; + } +} + +message FloatingPoint { + required double f = 1; +} + +message MessageWithMap { + map name_mapping = 1; + map msg_mapping = 2; + map byte_mapping = 3; + map str_to_str = 4; +} + +message Oneof { + oneof union { + bool F_Bool = 1; + int32 F_Int32 = 2; + int64 F_Int64 = 3; + fixed32 F_Fixed32 = 4; + fixed64 F_Fixed64 = 5; + uint32 F_Uint32 = 6; + uint64 F_Uint64 = 7; + float F_Float = 8; + double F_Double = 9; + string F_String = 10; + bytes F_Bytes = 11; + sint32 F_Sint32 = 12; + sint64 F_Sint64 = 13; + MyMessage.Color F_Enum = 14; + GoTestField F_Message = 15; + group F_Group = 16 { + optional int32 x = 17; + } + int32 F_Largest_Tag = 536870911; + } + + oneof tormato { + int32 value = 100; + } +} + +message Communique { + optional bool make_me_cry = 1; + + // This is a oneof, called "union". + oneof union { + int32 number = 5; + string name = 6; + bytes data = 7; + double temp_c = 8; + MyMessage.Color col = 9; + Strings msg = 10; + } +} diff --git a/vendor/github.com/golang/protobuf/proto/text.go b/vendor/github.com/golang/protobuf/proto/text.go new file mode 100644 index 00000000..8214ce32 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text.go @@ -0,0 +1,854 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for writing the text protocol buffer format. + +import ( + "bufio" + "bytes" + "encoding" + "errors" + "fmt" + "io" + "log" + "math" + "reflect" + "sort" + "strings" +) + +var ( + newline = []byte("\n") + spaces = []byte(" ") + gtNewline = []byte(">\n") + endBraceNewline = []byte("}\n") + backslashN = []byte{'\\', 'n'} + backslashR = []byte{'\\', 'r'} + backslashT = []byte{'\\', 't'} + backslashDQ = []byte{'\\', '"'} + backslashBS = []byte{'\\', '\\'} + posInf = []byte("inf") + negInf = []byte("-inf") + nan = []byte("nan") +) + +type writer interface { + io.Writer + WriteByte(byte) error +} + +// textWriter is an io.Writer that tracks its indentation level. +type textWriter struct { + ind int + complete bool // if the current position is a complete line + compact bool // whether to write out as a one-liner + w writer +} + +func (w *textWriter) WriteString(s string) (n int, err error) { + if !strings.Contains(s, "\n") { + if !w.compact && w.complete { + w.writeIndent() + } + w.complete = false + return io.WriteString(w.w, s) + } + // WriteString is typically called without newlines, so this + // codepath and its copy are rare. We copy to avoid + // duplicating all of Write's logic here. + return w.Write([]byte(s)) +} + +func (w *textWriter) Write(p []byte) (n int, err error) { + newlines := bytes.Count(p, newline) + if newlines == 0 { + if !w.compact && w.complete { + w.writeIndent() + } + n, err = w.w.Write(p) + w.complete = false + return n, err + } + + frags := bytes.SplitN(p, newline, newlines+1) + if w.compact { + for i, frag := range frags { + if i > 0 { + if err := w.w.WriteByte(' '); err != nil { + return n, err + } + n++ + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + } + return n, nil + } + + for i, frag := range frags { + if w.complete { + w.writeIndent() + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + if i+1 < len(frags) { + if err := w.w.WriteByte('\n'); err != nil { + return n, err + } + n++ + } + } + w.complete = len(frags[len(frags)-1]) == 0 + return n, nil +} + +func (w *textWriter) WriteByte(c byte) error { + if w.compact && c == '\n' { + c = ' ' + } + if !w.compact && w.complete { + w.writeIndent() + } + err := w.w.WriteByte(c) + w.complete = c == '\n' + return err +} + +func (w *textWriter) indent() { w.ind++ } + +func (w *textWriter) unindent() { + if w.ind == 0 { + log.Printf("proto: textWriter unindented too far") + return + } + w.ind-- +} + +func writeName(w *textWriter, props *Properties) error { + if _, err := w.WriteString(props.OrigName); err != nil { + return err + } + if props.Wire != "group" { + return w.WriteByte(':') + } + return nil +} + +// raw is the interface satisfied by RawMessage. +type raw interface { + Bytes() []byte +} + +func requiresQuotes(u string) bool { + // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. + for _, ch := range u { + switch { + case ch == '.' || ch == '/' || ch == '_': + continue + case '0' <= ch && ch <= '9': + continue + case 'A' <= ch && ch <= 'Z': + continue + case 'a' <= ch && ch <= 'z': + continue + default: + return true + } + } + return false +} + +// isAny reports whether sv is a google.protobuf.Any message +func isAny(sv reflect.Value) bool { + type wkt interface { + XXX_WellKnownType() string + } + t, ok := sv.Addr().Interface().(wkt) + return ok && t.XXX_WellKnownType() == "Any" +} + +// writeProto3Any writes an expanded google.protobuf.Any message. +// +// It returns (false, nil) if sv value can't be unmarshaled (e.g. because +// required messages are not linked in). +// +// It returns (true, error) when sv was written in expanded format or an error +// was encountered. +func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) { + turl := sv.FieldByName("TypeUrl") + val := sv.FieldByName("Value") + if !turl.IsValid() || !val.IsValid() { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + b, ok := val.Interface().([]byte) + if !ok { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + parts := strings.Split(turl.String(), "/") + mt := MessageType(parts[len(parts)-1]) + if mt == nil { + return false, nil + } + m := reflect.New(mt.Elem()) + if err := Unmarshal(b, m.Interface().(Message)); err != nil { + return false, nil + } + w.Write([]byte("[")) + u := turl.String() + if requiresQuotes(u) { + writeString(w, u) + } else { + w.Write([]byte(u)) + } + if w.compact { + w.Write([]byte("]:<")) + } else { + w.Write([]byte("]: <\n")) + w.ind++ + } + if err := tm.writeStruct(w, m.Elem()); err != nil { + return true, err + } + if w.compact { + w.Write([]byte("> ")) + } else { + w.ind-- + w.Write([]byte(">\n")) + } + return true, nil +} + +func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { + if tm.ExpandAny && isAny(sv) { + if canExpand, err := tm.writeProto3Any(w, sv); canExpand { + return err + } + } + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < sv.NumField(); i++ { + fv := sv.Field(i) + props := sprops.Prop[i] + name := st.Field(i).Name + + if strings.HasPrefix(name, "XXX_") { + // There are two XXX_ fields: + // XXX_unrecognized []byte + // XXX_extensions map[int32]proto.Extension + // The first is handled here; + // the second is handled at the bottom of this function. + if name == "XXX_unrecognized" && !fv.IsNil() { + if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Field not filled in. This could be an optional field or + // a required field that wasn't filled in. Either way, there + // isn't anything we can show for it. + continue + } + if fv.Kind() == reflect.Slice && fv.IsNil() { + // Repeated field that is empty, or a bytes field that is unused. + continue + } + + if props.Repeated && fv.Kind() == reflect.Slice { + // Repeated field. + for j := 0; j < fv.Len(); j++ { + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + v := fv.Index(j) + if v.Kind() == reflect.Ptr && v.IsNil() { + // A nil message in a repeated field is not valid, + // but we can handle that more gracefully than panicking. + if _, err := w.Write([]byte("\n")); err != nil { + return err + } + continue + } + if err := tm.writeAny(w, v, props); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Map { + // Map fields are rendered as a repeated struct with key/value fields. + keys := fv.MapKeys() + sort.Sort(mapKeys(keys)) + for _, key := range keys { + val := fv.MapIndex(key) + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + // open struct + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + // key + if _, err := w.WriteString("key:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, key, props.mkeyprop); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + // nil values aren't legal, but we can avoid panicking because of them. + if val.Kind() != reflect.Ptr || !val.IsNil() { + // value + if _, err := w.WriteString("value:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, val, props.mvalprop); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + // close struct + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 { + // empty bytes field + continue + } + if fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice { + // proto3 non-repeated scalar field; skip if zero value + if isProto3Zero(fv) { + continue + } + } + + if fv.Kind() == reflect.Interface { + // Check if it is a oneof. + if st.Field(i).Tag.Get("protobuf_oneof") != "" { + // fv is nil, or holds a pointer to generated struct. + // That generated struct has exactly one field, + // which has a protobuf struct tag. + if fv.IsNil() { + continue + } + inner := fv.Elem().Elem() // interface -> *T -> T + tag := inner.Type().Field(0).Tag.Get("protobuf") + props = new(Properties) // Overwrite the outer props var, but not its pointee. + props.Parse(tag) + // Write the value in the oneof, not the oneof itself. + fv = inner.Field(0) + + // Special case to cope with malformed messages gracefully: + // If the value in the oneof is a nil pointer, don't panic + // in writeAny. + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Use errors.New so writeAny won't render quotes. + msg := errors.New("/* nil */") + fv = reflect.ValueOf(&msg).Elem() + } + } + } + + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if b, ok := fv.Interface().(raw); ok { + if err := writeRaw(w, b.Bytes()); err != nil { + return err + } + continue + } + + // Enums have a String method, so writeAny will work fine. + if err := tm.writeAny(w, fv, props); err != nil { + return err + } + + if err := w.WriteByte('\n'); err != nil { + return err + } + } + + // Extensions (the XXX_extensions field). + pv := sv.Addr() + if _, ok := extendable(pv.Interface()); ok { + if err := tm.writeExtensions(w, pv); err != nil { + return err + } + } + + return nil +} + +// writeRaw writes an uninterpreted raw message. +func writeRaw(w *textWriter, b []byte) error { + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if err := writeUnknownStruct(w, b); err != nil { + return err + } + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + return nil +} + +// writeAny writes an arbitrary field. +func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { + v = reflect.Indirect(v) + + // Floats have special cases. + if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { + x := v.Float() + var b []byte + switch { + case math.IsInf(x, 1): + b = posInf + case math.IsInf(x, -1): + b = negInf + case math.IsNaN(x): + b = nan + } + if b != nil { + _, err := w.Write(b) + return err + } + // Other values are handled below. + } + + // We don't attempt to serialise every possible value type; only those + // that can occur in protocol buffers. + switch v.Kind() { + case reflect.Slice: + // Should only be a []byte; repeated fields are handled in writeStruct. + if err := writeString(w, string(v.Bytes())); err != nil { + return err + } + case reflect.String: + if err := writeString(w, v.String()); err != nil { + return err + } + case reflect.Struct: + // Required/optional group/message. + var bra, ket byte = '<', '>' + if props != nil && props.Wire == "group" { + bra, ket = '{', '}' + } + if err := w.WriteByte(bra); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if etm, ok := v.Interface().(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = w.Write(text); err != nil { + return err + } + } else if err := tm.writeStruct(w, v); err != nil { + return err + } + w.unindent() + if err := w.WriteByte(ket); err != nil { + return err + } + default: + _, err := fmt.Fprint(w, v.Interface()) + return err + } + return nil +} + +// equivalent to C's isprint. +func isprint(c byte) bool { + return c >= 0x20 && c < 0x7f +} + +// writeString writes a string in the protocol buffer text format. +// It is similar to strconv.Quote except we don't use Go escape sequences, +// we treat the string as a byte sequence, and we use octal escapes. +// These differences are to maintain interoperability with the other +// languages' implementations of the text format. +func writeString(w *textWriter, s string) error { + // use WriteByte here to get any needed indent + if err := w.WriteByte('"'); err != nil { + return err + } + // Loop over the bytes, not the runes. + for i := 0; i < len(s); i++ { + var err error + // Divergence from C++: we don't escape apostrophes. + // There's no need to escape them, and the C++ parser + // copes with a naked apostrophe. + switch c := s[i]; c { + case '\n': + _, err = w.w.Write(backslashN) + case '\r': + _, err = w.w.Write(backslashR) + case '\t': + _, err = w.w.Write(backslashT) + case '"': + _, err = w.w.Write(backslashDQ) + case '\\': + _, err = w.w.Write(backslashBS) + default: + if isprint(c) { + err = w.w.WriteByte(c) + } else { + _, err = fmt.Fprintf(w.w, "\\%03o", c) + } + } + if err != nil { + return err + } + } + return w.WriteByte('"') +} + +func writeUnknownStruct(w *textWriter, data []byte) (err error) { + if !w.compact { + if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil { + return err + } + } + b := NewBuffer(data) + for b.index < len(b.buf) { + x, err := b.DecodeVarint() + if err != nil { + _, err := fmt.Fprintf(w, "/* %v */\n", err) + return err + } + wire, tag := x&7, x>>3 + if wire == WireEndGroup { + w.unindent() + if _, err := w.Write(endBraceNewline); err != nil { + return err + } + continue + } + if _, err := fmt.Fprint(w, tag); err != nil { + return err + } + if wire != WireStartGroup { + if err := w.WriteByte(':'); err != nil { + return err + } + } + if !w.compact || wire == WireStartGroup { + if err := w.WriteByte(' '); err != nil { + return err + } + } + switch wire { + case WireBytes: + buf, e := b.DecodeRawBytes(false) + if e == nil { + _, err = fmt.Fprintf(w, "%q", buf) + } else { + _, err = fmt.Fprintf(w, "/* %v */", e) + } + case WireFixed32: + x, err = b.DecodeFixed32() + err = writeUnknownInt(w, x, err) + case WireFixed64: + x, err = b.DecodeFixed64() + err = writeUnknownInt(w, x, err) + case WireStartGroup: + err = w.WriteByte('{') + w.indent() + case WireVarint: + x, err = b.DecodeVarint() + err = writeUnknownInt(w, x, err) + default: + _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire) + } + if err != nil { + return err + } + if err = w.WriteByte('\n'); err != nil { + return err + } + } + return nil +} + +func writeUnknownInt(w *textWriter, x uint64, err error) error { + if err == nil { + _, err = fmt.Fprint(w, x) + } else { + _, err = fmt.Fprintf(w, "/* %v */", err) + } + return err +} + +type int32Slice []int32 + +func (s int32Slice) Len() int { return len(s) } +func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } +func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +// writeExtensions writes all the extensions in pv. +// pv is assumed to be a pointer to a protocol message struct that is extendable. +func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error { + emap := extensionMaps[pv.Type().Elem()] + ep, _ := extendable(pv.Interface()) + + // Order the extensions by ID. + // This isn't strictly necessary, but it will give us + // canonical output, which will also make testing easier. + m, mu := ep.extensionsRead() + if m == nil { + return nil + } + mu.Lock() + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) + mu.Unlock() + + for _, extNum := range ids { + ext := m[extNum] + var desc *ExtensionDesc + if emap != nil { + desc = emap[extNum] + } + if desc == nil { + // Unknown extension. + if err := writeUnknownStruct(w, ext.enc); err != nil { + return err + } + continue + } + + pb, err := GetExtension(ep, desc) + if err != nil { + return fmt.Errorf("failed getting extension: %v", err) + } + + // Repeated extensions will appear as a slice. + if !desc.repeated() { + if err := tm.writeExtension(w, desc.Name, pb); err != nil { + return err + } + } else { + v := reflect.ValueOf(pb) + for i := 0; i < v.Len(); i++ { + if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { + return err + } + } + } + } + return nil +} + +func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error { + if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + return nil +} + +func (w *textWriter) writeIndent() { + if !w.complete { + return + } + remain := w.ind * 2 + for remain > 0 { + n := remain + if n > len(spaces) { + n = len(spaces) + } + w.w.Write(spaces[:n]) + remain -= n + } + w.complete = false +} + +// TextMarshaler is a configurable text format marshaler. +type TextMarshaler struct { + Compact bool // use compact text format (one line). + ExpandAny bool // expand google.protobuf.Any messages of known types +} + +// Marshal writes a given protocol buffer in text format. +// The only errors returned are from w. +func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error { + val := reflect.ValueOf(pb) + if pb == nil || val.IsNil() { + w.Write([]byte("")) + return nil + } + var bw *bufio.Writer + ww, ok := w.(writer) + if !ok { + bw = bufio.NewWriter(w) + ww = bw + } + aw := &textWriter{ + w: ww, + complete: true, + compact: tm.Compact, + } + + if etm, ok := pb.(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = aw.Write(text); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil + } + // Dereference the received pointer so we don't have outer < and >. + v := reflect.Indirect(val) + if err := tm.writeStruct(aw, v); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil +} + +// Text is the same as Marshal, but returns the string directly. +func (tm *TextMarshaler) Text(pb Message) string { + var buf bytes.Buffer + tm.Marshal(&buf, pb) + return buf.String() +} + +var ( + defaultTextMarshaler = TextMarshaler{} + compactTextMarshaler = TextMarshaler{Compact: true} +) + +// TODO: consider removing some of the Marshal functions below. + +// MarshalText writes a given protocol buffer in text format. +// The only errors returned are from w. +func MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) } + +// MarshalTextString is the same as MarshalText, but returns the string directly. +func MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) } + +// CompactText writes a given protocol buffer in compact text format (one line). +func CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) } + +// CompactTextString is the same as CompactText, but returns the string directly. +func CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) } diff --git a/vendor/github.com/golang/protobuf/proto/text_parser.go b/vendor/github.com/golang/protobuf/proto/text_parser.go new file mode 100644 index 00000000..0b8c59f7 --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text_parser.go @@ -0,0 +1,880 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto + +// Functions for parsing the Text protocol buffer format. +// TODO: message sets. + +import ( + "encoding" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "unicode/utf8" +) + +type ParseError struct { + Message string + Line int // 1-based line number + Offset int // 0-based byte offset from start of input +} + +func (p *ParseError) Error() string { + if p.Line == 1 { + // show offset only for first line + return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message) + } + return fmt.Sprintf("line %d: %v", p.Line, p.Message) +} + +type token struct { + value string + err *ParseError + line int // line number + offset int // byte number from start of input, not start of line + unquoted string // the unquoted version of value, if it was a quoted string +} + +func (t *token) String() string { + if t.err == nil { + return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset) + } + return fmt.Sprintf("parse error: %v", t.err) +} + +type textParser struct { + s string // remaining input + done bool // whether the parsing is finished (success or error) + backed bool // whether back() was called + offset, line int + cur token +} + +func newTextParser(s string) *textParser { + p := new(textParser) + p.s = s + p.line = 1 + p.cur.line = 1 + return p +} + +func (p *textParser) errorf(format string, a ...interface{}) *ParseError { + pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} + p.cur.err = pe + p.done = true + return pe +} + +// Numbers and identifiers are matched by [-+._A-Za-z0-9] +func isIdentOrNumberChar(c byte) bool { + switch { + case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': + return true + case '0' <= c && c <= '9': + return true + } + switch c { + case '-', '+', '.', '_': + return true + } + return false +} + +func isWhitespace(c byte) bool { + switch c { + case ' ', '\t', '\n', '\r': + return true + } + return false +} + +func isQuote(c byte) bool { + switch c { + case '"', '\'': + return true + } + return false +} + +func (p *textParser) skipWhitespace() { + i := 0 + for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { + if p.s[i] == '#' { + // comment; skip to end of line or input + for i < len(p.s) && p.s[i] != '\n' { + i++ + } + if i == len(p.s) { + break + } + } + if p.s[i] == '\n' { + p.line++ + } + i++ + } + p.offset += i + p.s = p.s[i:len(p.s)] + if len(p.s) == 0 { + p.done = true + } +} + +func (p *textParser) advance() { + // Skip whitespace + p.skipWhitespace() + if p.done { + return + } + + // Start of non-whitespace + p.cur.err = nil + p.cur.offset, p.cur.line = p.offset, p.line + p.cur.unquoted = "" + switch p.s[0] { + case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': + // Single symbol + p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] + case '"', '\'': + // Quoted string + i := 1 + for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { + if p.s[i] == '\\' && i+1 < len(p.s) { + // skip escaped char + i++ + } + i++ + } + if i >= len(p.s) || p.s[i] != p.s[0] { + p.errorf("unmatched quote") + return + } + unq, err := unquoteC(p.s[1:i], rune(p.s[0])) + if err != nil { + p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) + return + } + p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] + p.cur.unquoted = unq + default: + i := 0 + for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { + i++ + } + if i == 0 { + p.errorf("unexpected byte %#x", p.s[0]) + return + } + p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] + } + p.offset += len(p.cur.value) +} + +var ( + errBadUTF8 = errors.New("proto: bad UTF-8") + errBadHex = errors.New("proto: bad hexadecimal") +) + +func unquoteC(s string, quote rune) (string, error) { + // This is based on C++'s tokenizer.cc. + // Despite its name, this is *not* parsing C syntax. + // For instance, "\0" is an invalid quoted string. + + // Avoid allocation in trivial cases. + simple := true + for _, r := range s { + if r == '\\' || r == quote { + simple = false + break + } + } + if simple { + return s, nil + } + + buf := make([]byte, 0, 3*len(s)/2) + for len(s) > 0 { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", errBadUTF8 + } + s = s[n:] + if r != '\\' { + if r < utf8.RuneSelf { + buf = append(buf, byte(r)) + } else { + buf = append(buf, string(r)...) + } + continue + } + + ch, tail, err := unescape(s) + if err != nil { + return "", err + } + buf = append(buf, ch...) + s = tail + } + return string(buf), nil +} + +func unescape(s string) (ch string, tail string, err error) { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", "", errBadUTF8 + } + s = s[n:] + switch r { + case 'a': + return "\a", s, nil + case 'b': + return "\b", s, nil + case 'f': + return "\f", s, nil + case 'n': + return "\n", s, nil + case 'r': + return "\r", s, nil + case 't': + return "\t", s, nil + case 'v': + return "\v", s, nil + case '?': + return "?", s, nil // trigraph workaround + case '\'', '"', '\\': + return string(r), s, nil + case '0', '1', '2', '3', '4', '5', '6', '7', 'x', 'X': + if len(s) < 2 { + return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) + } + base := 8 + ss := s[:2] + s = s[2:] + if r == 'x' || r == 'X' { + base = 16 + } else { + ss = string(r) + ss + } + i, err := strconv.ParseUint(ss, base, 8) + if err != nil { + return "", "", err + } + return string([]byte{byte(i)}), s, nil + case 'u', 'U': + n := 4 + if r == 'U' { + n = 8 + } + if len(s) < n { + return "", "", fmt.Errorf(`\%c requires %d digits`, r, n) + } + + bs := make([]byte, n/2) + for i := 0; i < n; i += 2 { + a, ok1 := unhex(s[i]) + b, ok2 := unhex(s[i+1]) + if !ok1 || !ok2 { + return "", "", errBadHex + } + bs[i/2] = a<<4 | b + } + s = s[n:] + return string(bs), s, nil + } + return "", "", fmt.Errorf(`unknown escape \%c`, r) +} + +// Adapted from src/pkg/strconv/quote.go. +func unhex(b byte) (v byte, ok bool) { + switch { + case '0' <= b && b <= '9': + return b - '0', true + case 'a' <= b && b <= 'f': + return b - 'a' + 10, true + case 'A' <= b && b <= 'F': + return b - 'A' + 10, true + } + return 0, false +} + +// Back off the parser by one token. Can only be done between calls to next(). +// It makes the next advance() a no-op. +func (p *textParser) back() { p.backed = true } + +// Advances the parser and returns the new current token. +func (p *textParser) next() *token { + if p.backed || p.done { + p.backed = false + return &p.cur + } + p.advance() + if p.done { + p.cur.value = "" + } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { + // Look for multiple quoted strings separated by whitespace, + // and concatenate them. + cat := p.cur + for { + p.skipWhitespace() + if p.done || !isQuote(p.s[0]) { + break + } + p.advance() + if p.cur.err != nil { + return &p.cur + } + cat.value += " " + p.cur.value + cat.unquoted += p.cur.unquoted + } + p.done = false // parser may have seen EOF, but we want to return cat + p.cur = cat + } + return &p.cur +} + +func (p *textParser) consumeToken(s string) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != s { + p.back() + return p.errorf("expected %q, found %q", s, tok.value) + } + return nil +} + +// Return a RequiredNotSetError indicating which required field was not set. +func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError { + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < st.NumField(); i++ { + if !isNil(sv.Field(i)) { + continue + } + + props := sprops.Prop[i] + if props.Required { + return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)} + } + } + return &RequiredNotSetError{fmt.Sprintf("%v.", st)} // should not happen +} + +// Returns the index in the struct for the named field, as well as the parsed tag properties. +func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) { + i, ok := sprops.decoderOrigNames[name] + if ok { + return i, sprops.Prop[i], true + } + return -1, nil, false +} + +// Consume a ':' from the input stream (if the next token is a colon), +// returning an error if a colon is needed but not present. +func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ":" { + // Colon is optional when the field is a group or message. + needColon := true + switch props.Wire { + case "group": + needColon = false + case "bytes": + // A "bytes" field is either a message, a string, or a repeated field; + // those three become *T, *string and []T respectively, so we can check for + // this field being a pointer to a non-string. + if typ.Kind() == reflect.Ptr { + // *T or *string + if typ.Elem().Kind() == reflect.String { + break + } + } else if typ.Kind() == reflect.Slice { + // []T or []*T + if typ.Elem().Kind() != reflect.Ptr { + break + } + } else if typ.Kind() == reflect.String { + // The proto3 exception is for a string field, + // which requires a colon. + break + } + needColon = false + } + if needColon { + return p.errorf("expected ':', found %q", tok.value) + } + p.back() + } + return nil +} + +func (p *textParser) readStruct(sv reflect.Value, terminator string) error { + st := sv.Type() + sprops := GetProperties(st) + reqCount := sprops.reqCount + var reqFieldErr error + fieldSet := make(map[string]bool) + // A struct is a sequence of "name: value", terminated by one of + // '>' or '}', or the end of the input. A name may also be + // "[extension]" or "[type/url]". + // + // The whole struct can also be an expanded Any message, like: + // [type/url] < ... struct contents ... > + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + if tok.value == "[" { + // Looks like an extension or an Any. + // + // TODO: Check whether we need to handle + // namespace rooted names (e.g. ".something.Foo"). + extName, err := p.consumeExtName() + if err != nil { + return err + } + + if s := strings.LastIndex(extName, "/"); s >= 0 { + // If it contains a slash, it's an Any type URL. + messageName := extName[s+1:] + mt := MessageType(messageName) + if mt == nil { + return p.errorf("unrecognized message %q in google.protobuf.Any", messageName) + } + tok = p.next() + if tok.err != nil { + return tok.err + } + // consume an optional colon + if tok.value == ":" { + tok = p.next() + if tok.err != nil { + return tok.err + } + } + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + v := reflect.New(mt.Elem()) + if pe := p.readStruct(v.Elem(), terminator); pe != nil { + return pe + } + b, err := Marshal(v.Interface().(Message)) + if err != nil { + return p.errorf("failed to marshal message of type %q: %v", messageName, err) + } + sv.FieldByName("TypeUrl").SetString(extName) + sv.FieldByName("Value").SetBytes(b) + continue + } + + var desc *ExtensionDesc + // This could be faster, but it's functional. + // TODO: Do something smarter than a linear scan. + for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { + if d.Name == extName { + desc = d + break + } + } + if desc == nil { + return p.errorf("unrecognized extension %q", extName) + } + + props := &Properties{} + props.Parse(desc.Tag) + + typ := reflect.TypeOf(desc.ExtensionType) + if err := p.checkForColon(props, typ); err != nil { + return err + } + + rep := desc.repeated() + + // Read the extension structure, and set it in + // the value we're constructing. + var ext reflect.Value + if !rep { + ext = reflect.New(typ).Elem() + } else { + ext = reflect.New(typ.Elem()).Elem() + } + if err := p.readAny(ext, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + ep := sv.Addr().Interface().(Message) + if !rep { + SetExtension(ep, desc, ext.Interface()) + } else { + old, err := GetExtension(ep, desc) + var sl reflect.Value + if err == nil { + sl = reflect.ValueOf(old) // existing slice + } else { + sl = reflect.MakeSlice(typ, 0, 1) + } + sl = reflect.Append(sl, ext) + SetExtension(ep, desc, sl.Interface()) + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + continue + } + + // This is a normal, non-extension field. + name := tok.value + var dst reflect.Value + fi, props, ok := structFieldByName(sprops, name) + if ok { + dst = sv.Field(fi) + } else if oop, ok := sprops.OneofTypes[name]; ok { + // It is a oneof. + props = oop.Prop + nv := reflect.New(oop.Type.Elem()) + dst = nv.Elem().Field(0) + sv.Field(oop.Field).Set(nv) + } + if !dst.IsValid() { + return p.errorf("unknown field name %q in %v", name, st) + } + + if dst.Kind() == reflect.Map { + // Consume any colon. + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Construct the map if it doesn't already exist. + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + key := reflect.New(dst.Type().Key()).Elem() + val := reflect.New(dst.Type().Elem()).Elem() + + // The map entry should be this sequence of tokens: + // < key : KEY value : VALUE > + // However, implementations may omit key or value, and technically + // we should support them in any order. See b/28924776 for a time + // this went wrong. + + tok := p.next() + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + switch tok.value { + case "key": + if err := p.consumeToken(":"); err != nil { + return err + } + if err := p.readAny(key, props.mkeyprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + case "value": + if err := p.checkForColon(props.mvalprop, dst.Type().Elem()); err != nil { + return err + } + if err := p.readAny(val, props.mvalprop); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + default: + p.back() + return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) + } + } + + dst.SetMapIndex(key, val) + continue + } + + // Check that it's not already set if it's not a repeated field. + if !props.Repeated && fieldSet[name] { + return p.errorf("non-repeated field %q was repeated", name) + } + + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Parse into the field. + fieldSet[name] = true + if err := p.readAny(dst, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + if props.Required { + reqCount-- + } + + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + + } + + if reqCount > 0 { + return p.missingRequiredFieldError(sv) + } + return reqFieldErr +} + +// consumeExtName consumes extension name or expanded Any type URL and the +// following ']'. It returns the name or URL consumed. +func (p *textParser) consumeExtName() (string, error) { + tok := p.next() + if tok.err != nil { + return "", tok.err + } + + // If extension name or type url is quoted, it's a single token. + if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { + name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) + if err != nil { + return "", err + } + return name, p.consumeToken("]") + } + + // Consume everything up to "]" + var parts []string + for tok.value != "]" { + parts = append(parts, tok.value) + tok = p.next() + if tok.err != nil { + return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) + } + } + return strings.Join(parts, ""), nil +} + +// consumeOptionalSeparator consumes an optional semicolon or comma. +// It is used in readStruct to provide backward compatibility. +func (p *textParser) consumeOptionalSeparator() error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ";" && tok.value != "," { + p.back() + } + return nil +} + +func (p *textParser) readAny(v reflect.Value, props *Properties) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "" { + return p.errorf("unexpected EOF") + } + + switch fv := v; fv.Kind() { + case reflect.Slice: + at := v.Type() + if at.Elem().Kind() == reflect.Uint8 { + // Special case for []byte + if tok.value[0] != '"' && tok.value[0] != '\'' { + // Deliberately written out here, as the error after + // this switch statement would write "invalid []byte: ...", + // which is not as user-friendly. + return p.errorf("invalid string: %v", tok.value) + } + bytes := []byte(tok.unquoted) + fv.Set(reflect.ValueOf(bytes)) + return nil + } + // Repeated field. + if tok.value == "[" { + // Repeated field with list notation, like [1,2,3]. + for { + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + err := p.readAny(fv.Index(fv.Len()-1), props) + if err != nil { + return err + } + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "]" { + break + } + if tok.value != "," { + return p.errorf("Expected ']' or ',' found %q", tok.value) + } + } + return nil + } + // One value of the repeated field. + p.back() + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + return p.readAny(fv.Index(fv.Len()-1), props) + case reflect.Bool: + // Either "true", "false", 1 or 0. + switch tok.value { + case "true", "1": + fv.SetBool(true) + return nil + case "false", "0": + fv.SetBool(false) + return nil + } + case reflect.Float32, reflect.Float64: + v := tok.value + // Ignore 'f' for compatibility with output generated by C++, but don't + // remove 'f' when the value is "-inf" or "inf". + if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" { + v = v[:len(v)-1] + } + if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil { + fv.SetFloat(f) + return nil + } + case reflect.Int32: + if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { + fv.SetInt(x) + return nil + } + + if len(props.Enum) == 0 { + break + } + m, ok := enumValueMaps[props.Enum] + if !ok { + break + } + x, ok := m[tok.value] + if !ok { + break + } + fv.SetInt(int64(x)) + return nil + case reflect.Int64: + if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { + fv.SetInt(x) + return nil + } + + case reflect.Ptr: + // A basic field (indirected through pointer), or a repeated message/group + p.back() + fv.Set(reflect.New(fv.Type().Elem())) + return p.readAny(fv.Elem(), props) + case reflect.String: + if tok.value[0] == '"' || tok.value[0] == '\'' { + fv.SetString(tok.unquoted) + return nil + } + case reflect.Struct: + var terminator string + switch tok.value { + case "{": + terminator = "}" + case "<": + terminator = ">" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + // TODO: Handle nested messages which implement encoding.TextUnmarshaler. + return p.readStruct(fv, terminator) + case reflect.Uint32: + if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { + fv.SetUint(uint64(x)) + return nil + } + case reflect.Uint64: + if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { + fv.SetUint(x) + return nil + } + } + return p.errorf("invalid %v: %v", v.Type(), tok.value) +} + +// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb +// before starting to unmarshal, so any existing data in pb is always removed. +// If a required field is not set and no other error occurs, +// UnmarshalText returns *RequiredNotSetError. +func UnmarshalText(s string, pb Message) error { + if um, ok := pb.(encoding.TextUnmarshaler); ok { + err := um.UnmarshalText([]byte(s)) + return err + } + pb.Reset() + v := reflect.ValueOf(pb) + if pe := newTextParser(s).readStruct(v.Elem(), ""); pe != nil { + return pe + } + return nil +} diff --git a/vendor/github.com/golang/protobuf/proto/text_parser_test.go b/vendor/github.com/golang/protobuf/proto/text_parser_test.go new file mode 100644 index 00000000..f25d5b0b --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text_parser_test.go @@ -0,0 +1,573 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "math" + "reflect" + "testing" + + . "github.com/golang/protobuf/proto" + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + . "github.com/golang/protobuf/proto/testdata" +) + +type UnmarshalTextTest struct { + in string + err string // if "", no error expected + out *MyMessage +} + +func buildExtStructTest(text string) UnmarshalTextTest { + msg := &MyMessage{ + Count: Int32(42), + } + SetExtension(msg, E_Ext_More, &Ext{ + Data: String("Hello, world!"), + }) + return UnmarshalTextTest{in: text, out: msg} +} + +func buildExtDataTest(text string) UnmarshalTextTest { + msg := &MyMessage{ + Count: Int32(42), + } + SetExtension(msg, E_Ext_Text, String("Hello, world!")) + SetExtension(msg, E_Ext_Number, Int32(1729)) + return UnmarshalTextTest{in: text, out: msg} +} + +func buildExtRepStringTest(text string) UnmarshalTextTest { + msg := &MyMessage{ + Count: Int32(42), + } + if err := SetExtension(msg, E_Greeting, []string{"bula", "hola"}); err != nil { + panic(err) + } + return UnmarshalTextTest{in: text, out: msg} +} + +var unMarshalTextTests = []UnmarshalTextTest{ + // Basic + { + in: " count:42\n name:\"Dave\" ", + out: &MyMessage{ + Count: Int32(42), + Name: String("Dave"), + }, + }, + + // Empty quoted string + { + in: `count:42 name:""`, + out: &MyMessage{ + Count: Int32(42), + Name: String(""), + }, + }, + + // Quoted string concatenation with double quotes + { + in: `count:42 name: "My name is "` + "\n" + `"elsewhere"`, + out: &MyMessage{ + Count: Int32(42), + Name: String("My name is elsewhere"), + }, + }, + + // Quoted string concatenation with single quotes + { + in: "count:42 name: 'My name is '\n'elsewhere'", + out: &MyMessage{ + Count: Int32(42), + Name: String("My name is elsewhere"), + }, + }, + + // Quoted string concatenations with mixed quotes + { + in: "count:42 name: 'My name is '\n\"elsewhere\"", + out: &MyMessage{ + Count: Int32(42), + Name: String("My name is elsewhere"), + }, + }, + { + in: "count:42 name: \"My name is \"\n'elsewhere'", + out: &MyMessage{ + Count: Int32(42), + Name: String("My name is elsewhere"), + }, + }, + + // Quoted string with escaped apostrophe + { + in: `count:42 name: "HOLIDAY - New Year\'s Day"`, + out: &MyMessage{ + Count: Int32(42), + Name: String("HOLIDAY - New Year's Day"), + }, + }, + + // Quoted string with single quote + { + in: `count:42 name: 'Roger "The Ramster" Ramjet'`, + out: &MyMessage{ + Count: Int32(42), + Name: String(`Roger "The Ramster" Ramjet`), + }, + }, + + // Quoted string with all the accepted special characters from the C++ test + { + in: `count:42 name: ` + "\"\\\"A string with \\' characters \\n and \\r newlines and \\t tabs and \\001 slashes \\\\ and multiple spaces\"", + out: &MyMessage{ + Count: Int32(42), + Name: String("\"A string with ' characters \n and \r newlines and \t tabs and \001 slashes \\ and multiple spaces"), + }, + }, + + // Quoted string with quoted backslash + { + in: `count:42 name: "\\'xyz"`, + out: &MyMessage{ + Count: Int32(42), + Name: String(`\'xyz`), + }, + }, + + // Quoted string with UTF-8 bytes. + { + in: "count:42 name: '\303\277\302\201\xAB'", + out: &MyMessage{ + Count: Int32(42), + Name: String("\303\277\302\201\xAB"), + }, + }, + + // Bad quoted string + { + in: `inner: < host: "\0" >` + "\n", + err: `line 1.15: invalid quoted string "\0": \0 requires 2 following digits`, + }, + + // Number too large for int64 + { + in: "count: 1 others { key: 123456789012345678901 }", + err: "line 1.23: invalid int64: 123456789012345678901", + }, + + // Number too large for int32 + { + in: "count: 1234567890123", + err: "line 1.7: invalid int32: 1234567890123", + }, + + // Number in hexadecimal + { + in: "count: 0x2beef", + out: &MyMessage{ + Count: Int32(0x2beef), + }, + }, + + // Number in octal + { + in: "count: 024601", + out: &MyMessage{ + Count: Int32(024601), + }, + }, + + // Floating point number with "f" suffix + { + in: "count: 4 others:< weight: 17.0f >", + out: &MyMessage{ + Count: Int32(4), + Others: []*OtherMessage{ + { + Weight: Float32(17), + }, + }, + }, + }, + + // Floating point positive infinity + { + in: "count: 4 bigfloat: inf", + out: &MyMessage{ + Count: Int32(4), + Bigfloat: Float64(math.Inf(1)), + }, + }, + + // Floating point negative infinity + { + in: "count: 4 bigfloat: -inf", + out: &MyMessage{ + Count: Int32(4), + Bigfloat: Float64(math.Inf(-1)), + }, + }, + + // Number too large for float32 + { + in: "others:< weight: 12345678901234567890123456789012345678901234567890 >", + err: "line 1.17: invalid float32: 12345678901234567890123456789012345678901234567890", + }, + + // Number posing as a quoted string + { + in: `inner: < host: 12 >` + "\n", + err: `line 1.15: invalid string: 12`, + }, + + // Quoted string posing as int32 + { + in: `count: "12"`, + err: `line 1.7: invalid int32: "12"`, + }, + + // Quoted string posing a float32 + { + in: `others:< weight: "17.4" >`, + err: `line 1.17: invalid float32: "17.4"`, + }, + + // Enum + { + in: `count:42 bikeshed: BLUE`, + out: &MyMessage{ + Count: Int32(42), + Bikeshed: MyMessage_BLUE.Enum(), + }, + }, + + // Repeated field + { + in: `count:42 pet: "horsey" pet:"bunny"`, + out: &MyMessage{ + Count: Int32(42), + Pet: []string{"horsey", "bunny"}, + }, + }, + + // Repeated field with list notation + { + in: `count:42 pet: ["horsey", "bunny"]`, + out: &MyMessage{ + Count: Int32(42), + Pet: []string{"horsey", "bunny"}, + }, + }, + + // Repeated message with/without colon and <>/{} + { + in: `count:42 others:{} others{} others:<> others:{}`, + out: &MyMessage{ + Count: Int32(42), + Others: []*OtherMessage{ + {}, + {}, + {}, + {}, + }, + }, + }, + + // Missing colon for inner message + { + in: `count:42 inner < host: "cauchy.syd" >`, + out: &MyMessage{ + Count: Int32(42), + Inner: &InnerMessage{ + Host: String("cauchy.syd"), + }, + }, + }, + + // Missing colon for string field + { + in: `name "Dave"`, + err: `line 1.5: expected ':', found "\"Dave\""`, + }, + + // Missing colon for int32 field + { + in: `count 42`, + err: `line 1.6: expected ':', found "42"`, + }, + + // Missing required field + { + in: `name: "Pawel"`, + err: `proto: required field "testdata.MyMessage.count" not set`, + out: &MyMessage{ + Name: String("Pawel"), + }, + }, + + // Missing required field in a required submessage + { + in: `count: 42 we_must_go_deeper < leo_finally_won_an_oscar <> >`, + err: `proto: required field "testdata.InnerMessage.host" not set`, + out: &MyMessage{ + Count: Int32(42), + WeMustGoDeeper: &RequiredInnerMessage{LeoFinallyWonAnOscar: &InnerMessage{}}, + }, + }, + + // Repeated non-repeated field + { + in: `name: "Rob" name: "Russ"`, + err: `line 1.12: non-repeated field "name" was repeated`, + }, + + // Group + { + in: `count: 17 SomeGroup { group_field: 12 }`, + out: &MyMessage{ + Count: Int32(17), + Somegroup: &MyMessage_SomeGroup{ + GroupField: Int32(12), + }, + }, + }, + + // Semicolon between fields + { + in: `count:3;name:"Calvin"`, + out: &MyMessage{ + Count: Int32(3), + Name: String("Calvin"), + }, + }, + // Comma between fields + { + in: `count:4,name:"Ezekiel"`, + out: &MyMessage{ + Count: Int32(4), + Name: String("Ezekiel"), + }, + }, + + // Extension + buildExtStructTest(`count: 42 [testdata.Ext.more]:`), + buildExtStructTest(`count: 42 [testdata.Ext.more] {data:"Hello, world!"}`), + buildExtDataTest(`count: 42 [testdata.Ext.text]:"Hello, world!" [testdata.Ext.number]:1729`), + buildExtRepStringTest(`count: 42 [testdata.greeting]:"bula" [testdata.greeting]:"hola"`), + + // Big all-in-one + { + in: "count:42 # Meaning\n" + + `name:"Dave" ` + + `quote:"\"I didn't want to go.\"" ` + + `pet:"bunny" ` + + `pet:"kitty" ` + + `pet:"horsey" ` + + `inner:<` + + ` host:"footrest.syd" ` + + ` port:7001 ` + + ` connected:true ` + + `> ` + + `others:<` + + ` key:3735928559 ` + + ` value:"\x01A\a\f" ` + + `> ` + + `others:<` + + " weight:58.9 # Atomic weight of Co\n" + + ` inner:<` + + ` host:"lesha.mtv" ` + + ` port:8002 ` + + ` >` + + `>`, + out: &MyMessage{ + Count: Int32(42), + Name: String("Dave"), + Quote: String(`"I didn't want to go."`), + Pet: []string{"bunny", "kitty", "horsey"}, + Inner: &InnerMessage{ + Host: String("footrest.syd"), + Port: Int32(7001), + Connected: Bool(true), + }, + Others: []*OtherMessage{ + { + Key: Int64(3735928559), + Value: []byte{0x1, 'A', '\a', '\f'}, + }, + { + Weight: Float32(58.9), + Inner: &InnerMessage{ + Host: String("lesha.mtv"), + Port: Int32(8002), + }, + }, + }, + }, + }, +} + +func TestUnmarshalText(t *testing.T) { + for i, test := range unMarshalTextTests { + pb := new(MyMessage) + err := UnmarshalText(test.in, pb) + if test.err == "" { + // We don't expect failure. + if err != nil { + t.Errorf("Test %d: Unexpected error: %v", i, err) + } else if !reflect.DeepEqual(pb, test.out) { + t.Errorf("Test %d: Incorrect populated \nHave: %v\nWant: %v", + i, pb, test.out) + } + } else { + // We do expect failure. + if err == nil { + t.Errorf("Test %d: Didn't get expected error: %v", i, test.err) + } else if err.Error() != test.err { + t.Errorf("Test %d: Incorrect error.\nHave: %v\nWant: %v", + i, err.Error(), test.err) + } else if _, ok := err.(*RequiredNotSetError); ok && test.out != nil && !reflect.DeepEqual(pb, test.out) { + t.Errorf("Test %d: Incorrect populated \nHave: %v\nWant: %v", + i, pb, test.out) + } + } + } +} + +func TestUnmarshalTextCustomMessage(t *testing.T) { + msg := &textMessage{} + if err := UnmarshalText("custom", msg); err != nil { + t.Errorf("Unexpected error from custom unmarshal: %v", err) + } + if UnmarshalText("not custom", msg) == nil { + t.Errorf("Didn't get expected error from custom unmarshal") + } +} + +// Regression test; this caused a panic. +func TestRepeatedEnum(t *testing.T) { + pb := new(RepeatedEnum) + if err := UnmarshalText("color: RED", pb); err != nil { + t.Fatal(err) + } + exp := &RepeatedEnum{ + Color: []RepeatedEnum_Color{RepeatedEnum_RED}, + } + if !Equal(pb, exp) { + t.Errorf("Incorrect populated \nHave: %v\nWant: %v", pb, exp) + } +} + +func TestProto3TextParsing(t *testing.T) { + m := new(proto3pb.Message) + const in = `name: "Wallace" true_scotsman: true` + want := &proto3pb.Message{ + Name: "Wallace", + TrueScotsman: true, + } + if err := UnmarshalText(in, m); err != nil { + t.Fatal(err) + } + if !Equal(m, want) { + t.Errorf("\n got %v\nwant %v", m, want) + } +} + +func TestMapParsing(t *testing.T) { + m := new(MessageWithMap) + const in = `name_mapping: name_mapping:` + + `msg_mapping:,>` + // separating commas are okay + `msg_mapping>` + // no colon after "value" + `msg_mapping:>` + // omitted key + `msg_mapping:` + // omitted value + `byte_mapping:` + + `byte_mapping:<>` // omitted key and value + want := &MessageWithMap{ + NameMapping: map[int32]string{ + 1: "Beatles", + 1234: "Feist", + }, + MsgMapping: map[int64]*FloatingPoint{ + -4: {F: Float64(2.0)}, + -2: {F: Float64(4.0)}, + 0: {F: Float64(5.0)}, + 1: nil, + }, + ByteMapping: map[bool][]byte{ + false: nil, + true: []byte("so be it"), + }, + } + if err := UnmarshalText(in, m); err != nil { + t.Fatal(err) + } + if !Equal(m, want) { + t.Errorf("\n got %v\nwant %v", m, want) + } +} + +func TestOneofParsing(t *testing.T) { + const in = `name:"Shrek"` + m := new(Communique) + want := &Communique{Union: &Communique_Name{"Shrek"}} + if err := UnmarshalText(in, m); err != nil { + t.Fatal(err) + } + if !Equal(m, want) { + t.Errorf("\n got %v\nwant %v", m, want) + } +} + +var benchInput string + +func init() { + benchInput = "count: 4\n" + for i := 0; i < 1000; i++ { + benchInput += "pet: \"fido\"\n" + } + + // Check it is valid input. + pb := new(MyMessage) + err := UnmarshalText(benchInput, pb) + if err != nil { + panic("Bad benchmark input: " + err.Error()) + } +} + +func BenchmarkUnmarshalText(b *testing.B) { + pb := new(MyMessage) + for i := 0; i < b.N; i++ { + UnmarshalText(benchInput, pb) + } + b.SetBytes(int64(len(benchInput))) +} diff --git a/vendor/github.com/golang/protobuf/proto/text_test.go b/vendor/github.com/golang/protobuf/proto/text_test.go new file mode 100644 index 00000000..3eabacac --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/text_test.go @@ -0,0 +1,474 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package proto_test + +import ( + "bytes" + "errors" + "io/ioutil" + "math" + "strings" + "testing" + + "github.com/golang/protobuf/proto" + + proto3pb "github.com/golang/protobuf/proto/proto3_proto" + pb "github.com/golang/protobuf/proto/testdata" +) + +// textMessage implements the methods that allow it to marshal and unmarshal +// itself as text. +type textMessage struct { +} + +func (*textMessage) MarshalText() ([]byte, error) { + return []byte("custom"), nil +} + +func (*textMessage) UnmarshalText(bytes []byte) error { + if string(bytes) != "custom" { + return errors.New("expected 'custom'") + } + return nil +} + +func (*textMessage) Reset() {} +func (*textMessage) String() string { return "" } +func (*textMessage) ProtoMessage() {} + +func newTestMessage() *pb.MyMessage { + msg := &pb.MyMessage{ + Count: proto.Int32(42), + Name: proto.String("Dave"), + Quote: proto.String(`"I didn't want to go."`), + Pet: []string{"bunny", "kitty", "horsey"}, + Inner: &pb.InnerMessage{ + Host: proto.String("footrest.syd"), + Port: proto.Int32(7001), + Connected: proto.Bool(true), + }, + Others: []*pb.OtherMessage{ + { + Key: proto.Int64(0xdeadbeef), + Value: []byte{1, 65, 7, 12}, + }, + { + Weight: proto.Float32(6.022), + Inner: &pb.InnerMessage{ + Host: proto.String("lesha.mtv"), + Port: proto.Int32(8002), + }, + }, + }, + Bikeshed: pb.MyMessage_BLUE.Enum(), + Somegroup: &pb.MyMessage_SomeGroup{ + GroupField: proto.Int32(8), + }, + // One normally wouldn't do this. + // This is an undeclared tag 13, as a varint (wire type 0) with value 4. + XXX_unrecognized: []byte{13<<3 | 0, 4}, + } + ext := &pb.Ext{ + Data: proto.String("Big gobs for big rats"), + } + if err := proto.SetExtension(msg, pb.E_Ext_More, ext); err != nil { + panic(err) + } + greetings := []string{"adg", "easy", "cow"} + if err := proto.SetExtension(msg, pb.E_Greeting, greetings); err != nil { + panic(err) + } + + // Add an unknown extension. We marshal a pb.Ext, and fake the ID. + b, err := proto.Marshal(&pb.Ext{Data: proto.String("3G skiing")}) + if err != nil { + panic(err) + } + b = append(proto.EncodeVarint(201<<3|proto.WireBytes), b...) + proto.SetRawExtension(msg, 201, b) + + // Extensions can be plain fields, too, so let's test that. + b = append(proto.EncodeVarint(202<<3|proto.WireVarint), 19) + proto.SetRawExtension(msg, 202, b) + + return msg +} + +const text = `count: 42 +name: "Dave" +quote: "\"I didn't want to go.\"" +pet: "bunny" +pet: "kitty" +pet: "horsey" +inner: < + host: "footrest.syd" + port: 7001 + connected: true +> +others: < + key: 3735928559 + value: "\001A\007\014" +> +others: < + weight: 6.022 + inner: < + host: "lesha.mtv" + port: 8002 + > +> +bikeshed: BLUE +SomeGroup { + group_field: 8 +} +/* 2 unknown bytes */ +13: 4 +[testdata.Ext.more]: < + data: "Big gobs for big rats" +> +[testdata.greeting]: "adg" +[testdata.greeting]: "easy" +[testdata.greeting]: "cow" +/* 13 unknown bytes */ +201: "\t3G skiing" +/* 3 unknown bytes */ +202: 19 +` + +func TestMarshalText(t *testing.T) { + buf := new(bytes.Buffer) + if err := proto.MarshalText(buf, newTestMessage()); err != nil { + t.Fatalf("proto.MarshalText: %v", err) + } + s := buf.String() + if s != text { + t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", s, text) + } +} + +func TestMarshalTextCustomMessage(t *testing.T) { + buf := new(bytes.Buffer) + if err := proto.MarshalText(buf, &textMessage{}); err != nil { + t.Fatalf("proto.MarshalText: %v", err) + } + s := buf.String() + if s != "custom" { + t.Errorf("Got %q, expected %q", s, "custom") + } +} +func TestMarshalTextNil(t *testing.T) { + want := "" + tests := []proto.Message{nil, (*pb.MyMessage)(nil)} + for i, test := range tests { + buf := new(bytes.Buffer) + if err := proto.MarshalText(buf, test); err != nil { + t.Fatal(err) + } + if got := buf.String(); got != want { + t.Errorf("%d: got %q want %q", i, got, want) + } + } +} + +func TestMarshalTextUnknownEnum(t *testing.T) { + // The Color enum only specifies values 0-2. + m := &pb.MyMessage{Bikeshed: pb.MyMessage_Color(3).Enum()} + got := m.String() + const want = `bikeshed:3 ` + if got != want { + t.Errorf("\n got %q\nwant %q", got, want) + } +} + +func TestTextOneof(t *testing.T) { + tests := []struct { + m proto.Message + want string + }{ + // zero message + {&pb.Communique{}, ``}, + // scalar field + {&pb.Communique{Union: &pb.Communique_Number{4}}, `number:4`}, + // message field + {&pb.Communique{Union: &pb.Communique_Msg{ + &pb.Strings{StringField: proto.String("why hello!")}, + }}, `msg:`}, + // bad oneof (should not panic) + {&pb.Communique{Union: &pb.Communique_Msg{nil}}, `msg:/* nil */`}, + } + for _, test := range tests { + got := strings.TrimSpace(test.m.String()) + if got != test.want { + t.Errorf("\n got %s\nwant %s", got, test.want) + } + } +} + +func BenchmarkMarshalTextBuffered(b *testing.B) { + buf := new(bytes.Buffer) + m := newTestMessage() + for i := 0; i < b.N; i++ { + buf.Reset() + proto.MarshalText(buf, m) + } +} + +func BenchmarkMarshalTextUnbuffered(b *testing.B) { + w := ioutil.Discard + m := newTestMessage() + for i := 0; i < b.N; i++ { + proto.MarshalText(w, m) + } +} + +func compact(src string) string { + // s/[ \n]+/ /g; s/ $//; + dst := make([]byte, len(src)) + space, comment := false, false + j := 0 + for i := 0; i < len(src); i++ { + if strings.HasPrefix(src[i:], "/*") { + comment = true + i++ + continue + } + if comment && strings.HasPrefix(src[i:], "*/") { + comment = false + i++ + continue + } + if comment { + continue + } + c := src[i] + if c == ' ' || c == '\n' { + space = true + continue + } + if j > 0 && (dst[j-1] == ':' || dst[j-1] == '<' || dst[j-1] == '{') { + space = false + } + if c == '{' { + space = false + } + if space { + dst[j] = ' ' + j++ + space = false + } + dst[j] = c + j++ + } + if space { + dst[j] = ' ' + j++ + } + return string(dst[0:j]) +} + +var compactText = compact(text) + +func TestCompactText(t *testing.T) { + s := proto.CompactTextString(newTestMessage()) + if s != compactText { + t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v\n===\n", s, compactText) + } +} + +func TestStringEscaping(t *testing.T) { + testCases := []struct { + in *pb.Strings + out string + }{ + { + // Test data from C++ test (TextFormatTest.StringEscape). + // Single divergence: we don't escape apostrophes. + &pb.Strings{StringField: proto.String("\"A string with ' characters \n and \r newlines and \t tabs and \001 slashes \\ and multiple spaces")}, + "string_field: \"\\\"A string with ' characters \\n and \\r newlines and \\t tabs and \\001 slashes \\\\ and multiple spaces\"\n", + }, + { + // Test data from the same C++ test. + &pb.Strings{StringField: proto.String("\350\260\267\346\255\214")}, + "string_field: \"\\350\\260\\267\\346\\255\\214\"\n", + }, + { + // Some UTF-8. + &pb.Strings{StringField: proto.String("\x00\x01\xff\x81")}, + `string_field: "\000\001\377\201"` + "\n", + }, + } + + for i, tc := range testCases { + var buf bytes.Buffer + if err := proto.MarshalText(&buf, tc.in); err != nil { + t.Errorf("proto.MarsalText: %v", err) + continue + } + s := buf.String() + if s != tc.out { + t.Errorf("#%d: Got:\n%s\nExpected:\n%s\n", i, s, tc.out) + continue + } + + // Check round-trip. + pb := new(pb.Strings) + if err := proto.UnmarshalText(s, pb); err != nil { + t.Errorf("#%d: UnmarshalText: %v", i, err) + continue + } + if !proto.Equal(pb, tc.in) { + t.Errorf("#%d: Round-trip failed:\nstart: %v\n end: %v", i, tc.in, pb) + } + } +} + +// A limitedWriter accepts some output before it fails. +// This is a proxy for something like a nearly-full or imminently-failing disk, +// or a network connection that is about to die. +type limitedWriter struct { + b bytes.Buffer + limit int +} + +var outOfSpace = errors.New("proto: insufficient space") + +func (w *limitedWriter) Write(p []byte) (n int, err error) { + var avail = w.limit - w.b.Len() + if avail <= 0 { + return 0, outOfSpace + } + if len(p) <= avail { + return w.b.Write(p) + } + n, _ = w.b.Write(p[:avail]) + return n, outOfSpace +} + +func TestMarshalTextFailing(t *testing.T) { + // Try lots of different sizes to exercise more error code-paths. + for lim := 0; lim < len(text); lim++ { + buf := new(limitedWriter) + buf.limit = lim + err := proto.MarshalText(buf, newTestMessage()) + // We expect a certain error, but also some partial results in the buffer. + if err != outOfSpace { + t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", err, outOfSpace) + } + s := buf.b.String() + x := text[:buf.limit] + if s != x { + t.Errorf("Got:\n===\n%v===\nExpected:\n===\n%v===\n", s, x) + } + } +} + +func TestFloats(t *testing.T) { + tests := []struct { + f float64 + want string + }{ + {0, "0"}, + {4.7, "4.7"}, + {math.Inf(1), "inf"}, + {math.Inf(-1), "-inf"}, + {math.NaN(), "nan"}, + } + for _, test := range tests { + msg := &pb.FloatingPoint{F: &test.f} + got := strings.TrimSpace(msg.String()) + want := `f:` + test.want + if got != want { + t.Errorf("f=%f: got %q, want %q", test.f, got, want) + } + } +} + +func TestRepeatedNilText(t *testing.T) { + m := &pb.MessageList{ + Message: []*pb.MessageList_Message{ + nil, + &pb.MessageList_Message{ + Name: proto.String("Horse"), + }, + nil, + }, + } + want := `Message +Message { + name: "Horse" +} +Message +` + if s := proto.MarshalTextString(m); s != want { + t.Errorf(" got: %s\nwant: %s", s, want) + } +} + +func TestProto3Text(t *testing.T) { + tests := []struct { + m proto.Message + want string + }{ + // zero message + {&proto3pb.Message{}, ``}, + // zero message except for an empty byte slice + {&proto3pb.Message{Data: []byte{}}, ``}, + // trivial case + {&proto3pb.Message{Name: "Rob", HeightInCm: 175}, `name:"Rob" height_in_cm:175`}, + // empty map + {&pb.MessageWithMap{}, ``}, + // non-empty map; map format is the same as a repeated struct, + // and they are sorted by key (numerically for numeric keys). + { + &pb.MessageWithMap{NameMapping: map[int32]string{ + -1: "Negatory", + 7: "Lucky", + 1234: "Feist", + 6345789: "Otis", + }}, + `name_mapping: ` + + `name_mapping: ` + + `name_mapping: ` + + `name_mapping:`, + }, + // map with nil value; not well-defined, but we shouldn't crash + { + &pb.MessageWithMap{MsgMapping: map[int64]*pb.FloatingPoint{7: nil}}, + `msg_mapping:`, + }, + } + for _, test := range tests { + got := strings.TrimSpace(test.m.String()) + if got != test.want { + t.Errorf("\n got %s\nwant %s", got, test.want) + } + } +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/Makefile new file mode 100644 index 00000000..a42cc371 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/Makefile @@ -0,0 +1,33 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +test: + cd testdata && make test diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile new file mode 100644 index 00000000..4942418e --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/Makefile @@ -0,0 +1,39 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +# Not stored here, but descriptor.proto is in https://github.com/google/protobuf/ +# at src/google/protobuf/descriptor.proto +regenerate: + echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION + protoc --go_out=. -I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/descriptor.proto && \ + sed 's,^package google_protobuf,package descriptor,' google/protobuf/descriptor.pb.go > \ + $(GOPATH)/src/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go && \ + rm -f google/protobuf/descriptor.pb.go diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go new file mode 100644 index 00000000..9690d1dc --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go @@ -0,0 +1,2037 @@ +// Code generated by protoc-gen-go. +// source: google/protobuf/descriptor.proto +// DO NOT EDIT! + +/* +Package descriptor is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/descriptor.proto + +It has these top-level messages: + FileDescriptorSet + FileDescriptorProto + DescriptorProto + FieldDescriptorProto + OneofDescriptorProto + EnumDescriptorProto + EnumValueDescriptorProto + ServiceDescriptorProto + MethodDescriptorProto + FileOptions + MessageOptions + FieldOptions + EnumOptions + EnumValueOptions + ServiceOptions + MethodOptions + UninterpretedOption + SourceCodeInfo + GeneratedCodeInfo +*/ +package descriptor + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type FieldDescriptorProto_Type int32 + +const ( + // 0 is reserved for errors. + // Order is weird for historical reasons. + FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 + FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 + FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 + FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 + FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 + FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 + FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 + FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 + FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 + // New in version 2. + FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 + FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 + FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 + FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 + FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 + FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 + FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 +) + +var FieldDescriptorProto_Type_name = map[int32]string{ + 1: "TYPE_DOUBLE", + 2: "TYPE_FLOAT", + 3: "TYPE_INT64", + 4: "TYPE_UINT64", + 5: "TYPE_INT32", + 6: "TYPE_FIXED64", + 7: "TYPE_FIXED32", + 8: "TYPE_BOOL", + 9: "TYPE_STRING", + 10: "TYPE_GROUP", + 11: "TYPE_MESSAGE", + 12: "TYPE_BYTES", + 13: "TYPE_UINT32", + 14: "TYPE_ENUM", + 15: "TYPE_SFIXED32", + 16: "TYPE_SFIXED64", + 17: "TYPE_SINT32", + 18: "TYPE_SINT64", +} +var FieldDescriptorProto_Type_value = map[string]int32{ + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18, +} + +func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { + p := new(FieldDescriptorProto_Type) + *p = x + return p +} +func (x FieldDescriptorProto_Type) String() string { + return proto.EnumName(FieldDescriptorProto_Type_name, int32(x)) +} +func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type") + if err != nil { + return err + } + *x = FieldDescriptorProto_Type(value) + return nil +} +func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} } + +type FieldDescriptorProto_Label int32 + +const ( + // 0 is reserved for errors + FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 + FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 + FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 +) + +var FieldDescriptorProto_Label_name = map[int32]string{ + 1: "LABEL_OPTIONAL", + 2: "LABEL_REQUIRED", + 3: "LABEL_REPEATED", +} +var FieldDescriptorProto_Label_value = map[string]int32{ + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3, +} + +func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { + p := new(FieldDescriptorProto_Label) + *p = x + return p +} +func (x FieldDescriptorProto_Label) String() string { + return proto.EnumName(FieldDescriptorProto_Label_name, int32(x)) +} +func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label") + if err != nil { + return err + } + *x = FieldDescriptorProto_Label(value) + return nil +} +func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { + return fileDescriptor0, []int{3, 1} +} + +// Generated classes can be optimized for speed or code size. +type FileOptions_OptimizeMode int32 + +const ( + FileOptions_SPEED FileOptions_OptimizeMode = 1 + // etc. + FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 + FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 +) + +var FileOptions_OptimizeMode_name = map[int32]string{ + 1: "SPEED", + 2: "CODE_SIZE", + 3: "LITE_RUNTIME", +} +var FileOptions_OptimizeMode_value = map[string]int32{ + "SPEED": 1, + "CODE_SIZE": 2, + "LITE_RUNTIME": 3, +} + +func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { + p := new(FileOptions_OptimizeMode) + *p = x + return p +} +func (x FileOptions_OptimizeMode) String() string { + return proto.EnumName(FileOptions_OptimizeMode_name, int32(x)) +} +func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode") + if err != nil { + return err + } + *x = FileOptions_OptimizeMode(value) + return nil +} +func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 0} } + +type FieldOptions_CType int32 + +const ( + // Default mode. + FieldOptions_STRING FieldOptions_CType = 0 + FieldOptions_CORD FieldOptions_CType = 1 + FieldOptions_STRING_PIECE FieldOptions_CType = 2 +) + +var FieldOptions_CType_name = map[int32]string{ + 0: "STRING", + 1: "CORD", + 2: "STRING_PIECE", +} +var FieldOptions_CType_value = map[string]int32{ + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2, +} + +func (x FieldOptions_CType) Enum() *FieldOptions_CType { + p := new(FieldOptions_CType) + *p = x + return p +} +func (x FieldOptions_CType) String() string { + return proto.EnumName(FieldOptions_CType_name, int32(x)) +} +func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType") + if err != nil { + return err + } + *x = FieldOptions_CType(value) + return nil +} +func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 0} } + +type FieldOptions_JSType int32 + +const ( + // Use the default type. + FieldOptions_JS_NORMAL FieldOptions_JSType = 0 + // Use JavaScript strings. + FieldOptions_JS_STRING FieldOptions_JSType = 1 + // Use JavaScript numbers. + FieldOptions_JS_NUMBER FieldOptions_JSType = 2 +) + +var FieldOptions_JSType_name = map[int32]string{ + 0: "JS_NORMAL", + 1: "JS_STRING", + 2: "JS_NUMBER", +} +var FieldOptions_JSType_value = map[string]int32{ + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2, +} + +func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { + p := new(FieldOptions_JSType) + *p = x + return p +} +func (x FieldOptions_JSType) String() string { + return proto.EnumName(FieldOptions_JSType_name, int32(x)) +} +func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType") + if err != nil { + return err + } + *x = FieldOptions_JSType(value) + return nil +} +func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 1} } + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +type FileDescriptorSet struct { + File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} } +func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorSet) ProtoMessage() {} +func (*FileDescriptorSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *FileDescriptorSet) GetFile() []*FileDescriptorProto { + if m != nil { + return m.File + } + return nil +} + +// Describes a complete .proto file. +type FileDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` + // Names of files imported by this file. + Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` + // Indexes of the public imported files in the dependency list above. + PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` + // All top-level definitions in this file. + MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` + Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} } +func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FileDescriptorProto) ProtoMessage() {} +func (*FileDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *FileDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FileDescriptorProto) GetPackage() string { + if m != nil && m.Package != nil { + return *m.Package + } + return "" +} + +func (m *FileDescriptorProto) GetDependency() []string { + if m != nil { + return m.Dependency + } + return nil +} + +func (m *FileDescriptorProto) GetPublicDependency() []int32 { + if m != nil { + return m.PublicDependency + } + return nil +} + +func (m *FileDescriptorProto) GetWeakDependency() []int32 { + if m != nil { + return m.WeakDependency + } + return nil +} + +func (m *FileDescriptorProto) GetMessageType() []*DescriptorProto { + if m != nil { + return m.MessageType + } + return nil +} + +func (m *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *FileDescriptorProto) GetService() []*ServiceDescriptorProto { + if m != nil { + return m.Service + } + return nil +} + +func (m *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *FileDescriptorProto) GetOptions() *FileOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { + if m != nil { + return m.SourceCodeInfo + } + return nil +} + +func (m *FileDescriptorProto) GetSyntax() string { + if m != nil && m.Syntax != nil { + return *m.Syntax + } + return "" +} + +// Describes a message type. +type DescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` + NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` + OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` + Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` + ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto) Reset() { *m = DescriptorProto{} } +func (m *DescriptorProto) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto) ProtoMessage() {} +func (*DescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } + +func (m *DescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *DescriptorProto) GetField() []*FieldDescriptorProto { + if m != nil { + return m.Field + } + return nil +} + +func (m *DescriptorProto) GetExtension() []*FieldDescriptorProto { + if m != nil { + return m.Extension + } + return nil +} + +func (m *DescriptorProto) GetNestedType() []*DescriptorProto { + if m != nil { + return m.NestedType + } + return nil +} + +func (m *DescriptorProto) GetEnumType() []*EnumDescriptorProto { + if m != nil { + return m.EnumType + } + return nil +} + +func (m *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { + if m != nil { + return m.ExtensionRange + } + return nil +} + +func (m *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { + if m != nil { + return m.OneofDecl + } + return nil +} + +func (m *DescriptorProto) GetOptions() *MessageOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { + if m != nil { + return m.ReservedRange + } + return nil +} + +func (m *DescriptorProto) GetReservedName() []string { + if m != nil { + return m.ReservedName + } + return nil +} + +type DescriptorProto_ExtensionRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } +func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ExtensionRange) ProtoMessage() {} +func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{2, 0} +} + +func (m *DescriptorProto_ExtensionRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +// Range of reserved tag numbers. Reserved tag numbers may not be used by +// fields or extension ranges in the same message. Reserved ranges may +// not overlap. +type DescriptorProto_ReservedRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_ReservedRange{} } +func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) } +func (*DescriptorProto_ReservedRange) ProtoMessage() {} +func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{2, 1} +} + +func (m *DescriptorProto_ReservedRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *DescriptorProto_ReservedRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +// Describes a field within a message. +type FieldDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` + Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` + Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } +func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*FieldDescriptorProto) ProtoMessage() {} +func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *FieldDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FieldDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { + if m != nil && m.Label != nil { + return *m.Label + } + return FieldDescriptorProto_LABEL_OPTIONAL +} + +func (m *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { + if m != nil && m.Type != nil { + return *m.Type + } + return FieldDescriptorProto_TYPE_DOUBLE +} + +func (m *FieldDescriptorProto) GetTypeName() string { + if m != nil && m.TypeName != nil { + return *m.TypeName + } + return "" +} + +func (m *FieldDescriptorProto) GetExtendee() string { + if m != nil && m.Extendee != nil { + return *m.Extendee + } + return "" +} + +func (m *FieldDescriptorProto) GetDefaultValue() string { + if m != nil && m.DefaultValue != nil { + return *m.DefaultValue + } + return "" +} + +func (m *FieldDescriptorProto) GetOneofIndex() int32 { + if m != nil && m.OneofIndex != nil { + return *m.OneofIndex + } + return 0 +} + +func (m *FieldDescriptorProto) GetJsonName() string { + if m != nil && m.JsonName != nil { + return *m.JsonName + } + return "" +} + +func (m *FieldDescriptorProto) GetOptions() *FieldOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a oneof. +type OneofDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } +func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*OneofDescriptorProto) ProtoMessage() {} +func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } + +func (m *OneofDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +// Describes an enum type. +type EnumDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } +func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumDescriptorProto) ProtoMessage() {} +func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } + +func (m *EnumDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { + if m != nil { + return m.Value + } + return nil +} + +func (m *EnumDescriptorProto) GetOptions() *EnumOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a value within an enum. +type EnumValueDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` + Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorProto{} } +func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*EnumValueDescriptorProto) ProtoMessage() {} +func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } + +func (m *EnumValueDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *EnumValueDescriptorProto) GetNumber() int32 { + if m != nil && m.Number != nil { + return *m.Number + } + return 0 +} + +func (m *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a service. +type ServiceDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` + Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } +func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*ServiceDescriptorProto) ProtoMessage() {} +func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } + +func (m *ServiceDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { + if m != nil { + return m.Method + } + return nil +} + +func (m *ServiceDescriptorProto) GetOptions() *ServiceOptions { + if m != nil { + return m.Options + } + return nil +} + +// Describes a method of a service. +type MethodDescriptorProto struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` + OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` + Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` + // Identifies if client streams multiple client messages + ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` + // Identifies if server streams multiple server messages + ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } +func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } +func (*MethodDescriptorProto) ProtoMessage() {} +func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } + +const Default_MethodDescriptorProto_ClientStreaming bool = false +const Default_MethodDescriptorProto_ServerStreaming bool = false + +func (m *MethodDescriptorProto) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MethodDescriptorProto) GetInputType() string { + if m != nil && m.InputType != nil { + return *m.InputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOutputType() string { + if m != nil && m.OutputType != nil { + return *m.OutputType + } + return "" +} + +func (m *MethodDescriptorProto) GetOptions() *MethodOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *MethodDescriptorProto) GetClientStreaming() bool { + if m != nil && m.ClientStreaming != nil { + return *m.ClientStreaming + } + return Default_MethodDescriptorProto_ClientStreaming +} + +func (m *MethodDescriptorProto) GetServerStreaming() bool { + if m != nil && m.ServerStreaming != nil { + return *m.ServerStreaming + } + return Default_MethodDescriptorProto_ServerStreaming +} + +type FileOptions struct { + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` + // If set true, then the Java code generator will generate equals() and + // hashCode() methods for all messages defined in the .proto file. + // This increases generated code size, potentially substantially for large + // protos, which may harm a memory-constrained application. + // - In the full runtime this is a speed optimization, as the + // AbstractMessage base class includes reflection-based implementations of + // these methods. + // - In the lite runtime, setting this option changes the semantics of + // equals() and hashCode() to more closely match those of the full runtime; + // the generated methods compute their results based on field values rather + // than object identity. (Implementations should not assume that hashcodes + // will be consistent across runtimes or versions of the protocol compiler.) + JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash,def=0" json:"java_generate_equals_and_hash,omitempty"` + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` + OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` + JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` + PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=0" json:"cc_enable_arenas,omitempty"` + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` + // Namespace for generated classes; defaults to the package. + CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FileOptions) Reset() { *m = FileOptions{} } +func (m *FileOptions) String() string { return proto.CompactTextString(m) } +func (*FileOptions) ProtoMessage() {} +func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } + +var extRange_FileOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FileOptions +} + +const Default_FileOptions_JavaMultipleFiles bool = false +const Default_FileOptions_JavaGenerateEqualsAndHash bool = false +const Default_FileOptions_JavaStringCheckUtf8 bool = false +const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED +const Default_FileOptions_CcGenericServices bool = false +const Default_FileOptions_JavaGenericServices bool = false +const Default_FileOptions_PyGenericServices bool = false +const Default_FileOptions_Deprecated bool = false +const Default_FileOptions_CcEnableArenas bool = false + +func (m *FileOptions) GetJavaPackage() string { + if m != nil && m.JavaPackage != nil { + return *m.JavaPackage + } + return "" +} + +func (m *FileOptions) GetJavaOuterClassname() string { + if m != nil && m.JavaOuterClassname != nil { + return *m.JavaOuterClassname + } + return "" +} + +func (m *FileOptions) GetJavaMultipleFiles() bool { + if m != nil && m.JavaMultipleFiles != nil { + return *m.JavaMultipleFiles + } + return Default_FileOptions_JavaMultipleFiles +} + +func (m *FileOptions) GetJavaGenerateEqualsAndHash() bool { + if m != nil && m.JavaGenerateEqualsAndHash != nil { + return *m.JavaGenerateEqualsAndHash + } + return Default_FileOptions_JavaGenerateEqualsAndHash +} + +func (m *FileOptions) GetJavaStringCheckUtf8() bool { + if m != nil && m.JavaStringCheckUtf8 != nil { + return *m.JavaStringCheckUtf8 + } + return Default_FileOptions_JavaStringCheckUtf8 +} + +func (m *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { + if m != nil && m.OptimizeFor != nil { + return *m.OptimizeFor + } + return Default_FileOptions_OptimizeFor +} + +func (m *FileOptions) GetGoPackage() string { + if m != nil && m.GoPackage != nil { + return *m.GoPackage + } + return "" +} + +func (m *FileOptions) GetCcGenericServices() bool { + if m != nil && m.CcGenericServices != nil { + return *m.CcGenericServices + } + return Default_FileOptions_CcGenericServices +} + +func (m *FileOptions) GetJavaGenericServices() bool { + if m != nil && m.JavaGenericServices != nil { + return *m.JavaGenericServices + } + return Default_FileOptions_JavaGenericServices +} + +func (m *FileOptions) GetPyGenericServices() bool { + if m != nil && m.PyGenericServices != nil { + return *m.PyGenericServices + } + return Default_FileOptions_PyGenericServices +} + +func (m *FileOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FileOptions_Deprecated +} + +func (m *FileOptions) GetCcEnableArenas() bool { + if m != nil && m.CcEnableArenas != nil { + return *m.CcEnableArenas + } + return Default_FileOptions_CcEnableArenas +} + +func (m *FileOptions) GetObjcClassPrefix() string { + if m != nil && m.ObjcClassPrefix != nil { + return *m.ObjcClassPrefix + } + return "" +} + +func (m *FileOptions) GetCsharpNamespace() string { + if m != nil && m.CsharpNamespace != nil { + return *m.CsharpNamespace + } + return "" +} + +func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MessageOptions struct { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementions still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MessageOptions) Reset() { *m = MessageOptions{} } +func (m *MessageOptions) String() string { return proto.CompactTextString(m) } +func (*MessageOptions) ProtoMessage() {} +func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } + +var extRange_MessageOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MessageOptions +} + +const Default_MessageOptions_MessageSetWireFormat bool = false +const Default_MessageOptions_NoStandardDescriptorAccessor bool = false +const Default_MessageOptions_Deprecated bool = false + +func (m *MessageOptions) GetMessageSetWireFormat() bool { + if m != nil && m.MessageSetWireFormat != nil { + return *m.MessageSetWireFormat + } + return Default_MessageOptions_MessageSetWireFormat +} + +func (m *MessageOptions) GetNoStandardDescriptorAccessor() bool { + if m != nil && m.NoStandardDescriptorAccessor != nil { + return *m.NoStandardDescriptorAccessor + } + return Default_MessageOptions_NoStandardDescriptorAccessor +} + +func (m *MessageOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MessageOptions_Deprecated +} + +func (m *MessageOptions) GetMapEntry() bool { + if m != nil && m.MapEntry != nil { + return *m.MapEntry + } + return false +} + +func (m *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type FieldOptions struct { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). By default these types are + // represented as JavaScript strings. This avoids loss of precision that can + // happen when a large value is converted to a floating point JavaScript + // numbers. Specifying JS_NUMBER for the jstype causes the generated + // JavaScript code to use the JavaScript "number" type instead of strings. + // This option is an enum to permit additional types to be added, + // e.g. goog.math.Integer. + Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outher message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // For Google-internal migration only. Do not use. + Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *FieldOptions) Reset() { *m = FieldOptions{} } +func (m *FieldOptions) String() string { return proto.CompactTextString(m) } +func (*FieldOptions) ProtoMessage() {} +func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } + +var extRange_FieldOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_FieldOptions +} + +const Default_FieldOptions_Ctype FieldOptions_CType = FieldOptions_STRING +const Default_FieldOptions_Jstype FieldOptions_JSType = FieldOptions_JS_NORMAL +const Default_FieldOptions_Lazy bool = false +const Default_FieldOptions_Deprecated bool = false +const Default_FieldOptions_Weak bool = false + +func (m *FieldOptions) GetCtype() FieldOptions_CType { + if m != nil && m.Ctype != nil { + return *m.Ctype + } + return Default_FieldOptions_Ctype +} + +func (m *FieldOptions) GetPacked() bool { + if m != nil && m.Packed != nil { + return *m.Packed + } + return false +} + +func (m *FieldOptions) GetJstype() FieldOptions_JSType { + if m != nil && m.Jstype != nil { + return *m.Jstype + } + return Default_FieldOptions_Jstype +} + +func (m *FieldOptions) GetLazy() bool { + if m != nil && m.Lazy != nil { + return *m.Lazy + } + return Default_FieldOptions_Lazy +} + +func (m *FieldOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_FieldOptions_Deprecated +} + +func (m *FieldOptions) GetWeak() bool { + if m != nil && m.Weak != nil { + return *m.Weak + } + return Default_FieldOptions_Weak +} + +func (m *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumOptions struct { + // Set this option to true to allow mapping different tag names to the same + // value. + AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumOptions) Reset() { *m = EnumOptions{} } +func (m *EnumOptions) String() string { return proto.CompactTextString(m) } +func (*EnumOptions) ProtoMessage() {} +func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } + +var extRange_EnumOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumOptions +} + +const Default_EnumOptions_Deprecated bool = false + +func (m *EnumOptions) GetAllowAlias() bool { + if m != nil && m.AllowAlias != nil { + return *m.AllowAlias + } + return false +} + +func (m *EnumOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumOptions_Deprecated +} + +func (m *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type EnumValueOptions struct { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } +func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } +func (*EnumValueOptions) ProtoMessage() {} +func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } + +var extRange_EnumValueOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_EnumValueOptions +} + +const Default_EnumValueOptions_Deprecated bool = false + +func (m *EnumValueOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_EnumValueOptions_Deprecated +} + +func (m *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type ServiceOptions struct { + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } +func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } +func (*ServiceOptions) ProtoMessage() {} +func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } + +var extRange_ServiceOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ServiceOptions +} + +const Default_ServiceOptions_Deprecated bool = false + +func (m *ServiceOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_ServiceOptions_Deprecated +} + +func (m *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +type MethodOptions struct { + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *MethodOptions) Reset() { *m = MethodOptions{} } +func (m *MethodOptions) String() string { return proto.CompactTextString(m) } +func (*MethodOptions) ProtoMessage() {} +func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } + +var extRange_MethodOptions = []proto.ExtensionRange{ + {1000, 536870911}, +} + +func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_MethodOptions +} + +const Default_MethodOptions_Deprecated bool = false + +func (m *MethodOptions) GetDeprecated() bool { + if m != nil && m.Deprecated != nil { + return *m.Deprecated + } + return Default_MethodOptions_Deprecated +} + +func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +type UninterpretedOption struct { + Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` + PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` + NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` + DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` + StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } +func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption) ProtoMessage() {} +func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } + +func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { + if m != nil { + return m.Name + } + return nil +} + +func (m *UninterpretedOption) GetIdentifierValue() string { + if m != nil && m.IdentifierValue != nil { + return *m.IdentifierValue + } + return "" +} + +func (m *UninterpretedOption) GetPositiveIntValue() uint64 { + if m != nil && m.PositiveIntValue != nil { + return *m.PositiveIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetNegativeIntValue() int64 { + if m != nil && m.NegativeIntValue != nil { + return *m.NegativeIntValue + } + return 0 +} + +func (m *UninterpretedOption) GetDoubleValue() float64 { + if m != nil && m.DoubleValue != nil { + return *m.DoubleValue + } + return 0 +} + +func (m *UninterpretedOption) GetStringValue() []byte { + if m != nil { + return m.StringValue + } + return nil +} + +func (m *UninterpretedOption) GetAggregateValue() string { + if m != nil && m.AggregateValue != nil { + return *m.AggregateValue + } + return "" +} + +// The name of the uninterpreted option. Each string represents a segment in +// a dot-separated name. is_extension is true iff a segment represents an +// extension (denoted with parentheses in options specs in .proto files). +// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents +// "foo.(bar.baz).qux". +type UninterpretedOption_NamePart struct { + NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` + IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOption_NamePart{} } +func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } +func (*UninterpretedOption_NamePart) ProtoMessage() {} +func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{16, 0} +} + +func (m *UninterpretedOption_NamePart) GetNamePart() string { + if m != nil && m.NamePart != nil { + return *m.NamePart + } + return "" +} + +func (m *UninterpretedOption_NamePart) GetIsExtension() bool { + if m != nil && m.IsExtension != nil { + return *m.IsExtension + } + return false +} + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +type SourceCodeInfo struct { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendent. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } +func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo) ProtoMessage() {} +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } + +func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { + if m != nil { + return m.Location + } + return nil +} + +type SourceCodeInfo_Location struct { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` + TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` + LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location{} } +func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } +func (*SourceCodeInfo_Location) ProtoMessage() {} +func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17, 0} } + +func (m *SourceCodeInfo_Location) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *SourceCodeInfo_Location) GetSpan() []int32 { + if m != nil { + return m.Span + } + return nil +} + +func (m *SourceCodeInfo_Location) GetLeadingComments() string { + if m != nil && m.LeadingComments != nil { + return *m.LeadingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetTrailingComments() string { + if m != nil && m.TrailingComments != nil { + return *m.TrailingComments + } + return "" +} + +func (m *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { + if m != nil { + return m.LeadingDetachedComments + } + return nil +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +type GeneratedCodeInfo struct { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } +func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo) ProtoMessage() {} +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } + +func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { + if m != nil { + return m.Annotation + } + return nil +} + +type GeneratedCodeInfo_Annotation struct { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Identifies the filesystem path to the original source .proto. + SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_Annotation{} } +func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } +func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} +func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{18, 0} +} + +func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { + if m != nil { + return m.Path + } + return nil +} + +func (m *GeneratedCodeInfo_Annotation) GetSourceFile() string { + if m != nil && m.SourceFile != nil { + return *m.SourceFile + } + return "" +} + +func (m *GeneratedCodeInfo_Annotation) GetBegin() int32 { + if m != nil && m.Begin != nil { + return *m.Begin + } + return 0 +} + +func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func init() { + proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet") + proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto") + proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") + proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") + proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") + proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") + proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") + proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") + proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") + proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") + proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") + proto.RegisterType((*FileOptions)(nil), "google.protobuf.FileOptions") + proto.RegisterType((*MessageOptions)(nil), "google.protobuf.MessageOptions") + proto.RegisterType((*FieldOptions)(nil), "google.protobuf.FieldOptions") + proto.RegisterType((*EnumOptions)(nil), "google.protobuf.EnumOptions") + proto.RegisterType((*EnumValueOptions)(nil), "google.protobuf.EnumValueOptions") + proto.RegisterType((*ServiceOptions)(nil), "google.protobuf.ServiceOptions") + proto.RegisterType((*MethodOptions)(nil), "google.protobuf.MethodOptions") + proto.RegisterType((*UninterpretedOption)(nil), "google.protobuf.UninterpretedOption") + proto.RegisterType((*UninterpretedOption_NamePart)(nil), "google.protobuf.UninterpretedOption.NamePart") + proto.RegisterType((*SourceCodeInfo)(nil), "google.protobuf.SourceCodeInfo") + proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location") + proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo") + proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value) + proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value) + proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) + proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) + proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) +} + +func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 2247 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x8f, 0xdb, 0xc6, + 0x15, 0xaf, 0xfe, 0xae, 0xf4, 0xa4, 0x95, 0xb8, 0xe3, 0x8d, 0x2d, 0x6f, 0xe2, 0xd8, 0x56, 0xec, + 0xd8, 0x71, 0x5a, 0x39, 0x70, 0x9b, 0xc4, 0xdd, 0x14, 0x29, 0xb4, 0x12, 0xbd, 0x91, 0x21, 0xad, + 0x54, 0x4a, 0x6a, 0x9d, 0x5c, 0x08, 0x2e, 0x35, 0xd2, 0xd2, 0xa6, 0x48, 0x95, 0xa4, 0x6c, 0x6f, + 0x4e, 0x05, 0x7a, 0xea, 0xb1, 0xb7, 0xa2, 0x2d, 0x7a, 0xc8, 0x25, 0x40, 0x3f, 0x40, 0x0f, 0xbd, + 0xf7, 0x5a, 0xa0, 0xf7, 0x1e, 0x0b, 0xb4, 0xdf, 0xa0, 0xd7, 0xbe, 0x99, 0x21, 0x29, 0x52, 0xa2, + 0xe2, 0x6d, 0x80, 0x34, 0xf5, 0xc5, 0x9a, 0x37, 0xbf, 0xf7, 0xf8, 0xe6, 0xcd, 0x6f, 0xde, 0x7b, + 0x33, 0x0b, 0x37, 0x66, 0xb6, 0x3d, 0x33, 0xe9, 0xfd, 0x85, 0x63, 0x7b, 0xf6, 0xe9, 0x72, 0x7a, + 0x7f, 0x42, 0x5d, 0xdd, 0x31, 0x16, 0x9e, 0xed, 0x34, 0xb8, 0x8c, 0x54, 0x05, 0xa2, 0x11, 0x20, + 0xea, 0x3d, 0xd8, 0x7b, 0x64, 0x98, 0xb4, 0x1d, 0x02, 0x87, 0xd4, 0x23, 0x0f, 0x21, 0x3b, 0x45, + 0x61, 0x2d, 0x75, 0x23, 0x73, 0xb7, 0xf4, 0xe0, 0x56, 0x63, 0x4d, 0xa9, 0x11, 0xd7, 0x18, 0x30, + 0xb1, 0xc2, 0x35, 0xea, 0xff, 0xc8, 0xc2, 0xa5, 0x84, 0x59, 0x42, 0x20, 0x6b, 0x69, 0x73, 0x66, + 0x31, 0x75, 0xb7, 0xa8, 0xf0, 0xdf, 0xa4, 0x06, 0x3b, 0x0b, 0x4d, 0x7f, 0xa6, 0xcd, 0x68, 0x2d, + 0xcd, 0xc5, 0xc1, 0x90, 0xbc, 0x09, 0x30, 0xa1, 0x0b, 0x6a, 0x4d, 0xa8, 0xa5, 0x9f, 0xd7, 0x32, + 0xe8, 0x45, 0x51, 0x89, 0x48, 0xc8, 0xbb, 0xb0, 0xb7, 0x58, 0x9e, 0x9a, 0x86, 0xae, 0x46, 0x60, + 0x80, 0xb0, 0x9c, 0x22, 0x89, 0x89, 0xf6, 0x0a, 0x7c, 0x07, 0xaa, 0x2f, 0xa8, 0xf6, 0x2c, 0x0a, + 0x2d, 0x71, 0x68, 0x85, 0x89, 0x23, 0xc0, 0x16, 0x94, 0xe7, 0xd4, 0x75, 0xd1, 0x01, 0xd5, 0x3b, + 0x5f, 0xd0, 0x5a, 0x96, 0xaf, 0xfe, 0xc6, 0xc6, 0xea, 0xd7, 0x57, 0x5e, 0xf2, 0xb5, 0x46, 0xa8, + 0x44, 0x9a, 0x50, 0xa4, 0xd6, 0x72, 0x2e, 0x2c, 0xe4, 0xb6, 0xc4, 0x4f, 0x46, 0xc4, 0xba, 0x95, + 0x02, 0x53, 0xf3, 0x4d, 0xec, 0xb8, 0xd4, 0x79, 0x6e, 0xe8, 0xb4, 0x96, 0xe7, 0x06, 0xee, 0x6c, + 0x18, 0x18, 0x8a, 0xf9, 0x75, 0x1b, 0x81, 0x1e, 0x2e, 0xa5, 0x48, 0x5f, 0x7a, 0xd4, 0x72, 0x0d, + 0xdb, 0xaa, 0xed, 0x70, 0x23, 0xb7, 0x13, 0x76, 0x91, 0x9a, 0x93, 0x75, 0x13, 0x2b, 0x3d, 0xf2, + 0x01, 0xec, 0xd8, 0x0b, 0x0f, 0x7f, 0xb9, 0xb5, 0x02, 0xee, 0x4f, 0xe9, 0xc1, 0x1b, 0x89, 0x44, + 0xe8, 0x0b, 0x8c, 0x12, 0x80, 0x49, 0x07, 0x24, 0xd7, 0x5e, 0x3a, 0x3a, 0x55, 0x75, 0x7b, 0x42, + 0x55, 0xc3, 0x9a, 0xda, 0xb5, 0x22, 0x37, 0x70, 0x7d, 0x73, 0x21, 0x1c, 0xd8, 0x42, 0x5c, 0x07, + 0x61, 0x4a, 0xc5, 0x8d, 0x8d, 0xc9, 0x65, 0xc8, 0xbb, 0xe7, 0x96, 0xa7, 0xbd, 0xac, 0x95, 0x39, + 0x43, 0xfc, 0x51, 0xfd, 0xdf, 0x39, 0xa8, 0x5e, 0x84, 0x62, 0x1f, 0x41, 0x6e, 0xca, 0x56, 0x89, + 0x04, 0xfb, 0x2f, 0x62, 0x20, 0x74, 0xe2, 0x41, 0xcc, 0x7f, 0xcd, 0x20, 0x36, 0xa1, 0x64, 0x51, + 0xd7, 0xa3, 0x13, 0xc1, 0x88, 0xcc, 0x05, 0x39, 0x05, 0x42, 0x69, 0x93, 0x52, 0xd9, 0xaf, 0x45, + 0xa9, 0x27, 0x50, 0x0d, 0x5d, 0x52, 0x1d, 0xcd, 0x9a, 0x05, 0xdc, 0xbc, 0xff, 0x2a, 0x4f, 0x1a, + 0x72, 0xa0, 0xa7, 0x30, 0x35, 0xa5, 0x42, 0x63, 0x63, 0xd2, 0x06, 0xb0, 0x2d, 0x6a, 0x4f, 0xf1, + 0x78, 0xe9, 0x26, 0xf2, 0x24, 0x39, 0x4a, 0x7d, 0x06, 0xd9, 0x88, 0x92, 0x2d, 0xa4, 0xba, 0x49, + 0x7e, 0xb8, 0xa2, 0xda, 0xce, 0x16, 0xa6, 0xf4, 0xc4, 0x21, 0xdb, 0x60, 0xdb, 0x18, 0x2a, 0x0e, + 0x65, 0xbc, 0xc7, 0x10, 0x8b, 0x95, 0x15, 0xb9, 0x13, 0x8d, 0x57, 0xae, 0x4c, 0xf1, 0xd5, 0xc4, + 0xc2, 0x76, 0x9d, 0xe8, 0x90, 0xbc, 0x05, 0xa1, 0x40, 0xe5, 0xb4, 0x02, 0x9e, 0x85, 0xca, 0x81, + 0xf0, 0x04, 0x65, 0x07, 0x0f, 0xa1, 0x12, 0x0f, 0x0f, 0xd9, 0x87, 0x9c, 0xeb, 0x69, 0x8e, 0xc7, + 0x59, 0x98, 0x53, 0xc4, 0x80, 0x48, 0x90, 0xc1, 0x24, 0xc3, 0xb3, 0x5c, 0x4e, 0x61, 0x3f, 0x0f, + 0x3e, 0x84, 0xdd, 0xd8, 0xe7, 0x2f, 0xaa, 0x58, 0xff, 0x4d, 0x1e, 0xf6, 0x93, 0x38, 0x97, 0x48, + 0x7f, 0x3c, 0x3e, 0xc8, 0x80, 0x53, 0xea, 0x20, 0xef, 0x98, 0x05, 0x7f, 0x84, 0x8c, 0xca, 0x99, + 0xda, 0x29, 0x35, 0x91, 0x4d, 0xa9, 0xbb, 0x95, 0x07, 0xef, 0x5e, 0x88, 0xd5, 0x8d, 0x2e, 0x53, + 0x51, 0x84, 0x26, 0xf9, 0x18, 0xb2, 0x7e, 0x8a, 0x63, 0x16, 0xee, 0x5d, 0xcc, 0x02, 0xe3, 0xa2, + 0xc2, 0xf5, 0xc8, 0xeb, 0x50, 0x64, 0xff, 0x8b, 0xd8, 0xe6, 0xb9, 0xcf, 0x05, 0x26, 0x60, 0x71, + 0x25, 0x07, 0x50, 0xe0, 0x34, 0x9b, 0xd0, 0xa0, 0x34, 0x84, 0x63, 0xb6, 0x31, 0x13, 0x3a, 0xd5, + 0x96, 0xa6, 0xa7, 0x3e, 0xd7, 0xcc, 0x25, 0xe5, 0x84, 0xc1, 0x8d, 0xf1, 0x85, 0x3f, 0x65, 0x32, + 0x72, 0x1d, 0x4a, 0x82, 0x95, 0x06, 0xea, 0xbc, 0xe4, 0xd9, 0x27, 0xa7, 0x08, 0xa2, 0x76, 0x98, + 0x84, 0x7d, 0xfe, 0xa9, 0x8b, 0x67, 0xc1, 0xdf, 0x5a, 0xfe, 0x09, 0x26, 0xe0, 0x9f, 0xff, 0x70, + 0x3d, 0xf1, 0x5d, 0x4b, 0x5e, 0xde, 0x3a, 0x17, 0xeb, 0x7f, 0x4a, 0x43, 0x96, 0x9f, 0xb7, 0x2a, + 0x94, 0x46, 0x9f, 0x0e, 0x64, 0xb5, 0xdd, 0x1f, 0x1f, 0x75, 0x65, 0x29, 0x45, 0x2a, 0x00, 0x5c, + 0xf0, 0xa8, 0xdb, 0x6f, 0x8e, 0xa4, 0x74, 0x38, 0xee, 0x9c, 0x8c, 0x3e, 0xf8, 0x81, 0x94, 0x09, + 0x15, 0xc6, 0x42, 0x90, 0x8d, 0x02, 0xbe, 0xff, 0x40, 0xca, 0x21, 0x13, 0xca, 0xc2, 0x40, 0xe7, + 0x89, 0xdc, 0x46, 0x44, 0x3e, 0x2e, 0x41, 0xcc, 0x0e, 0xd9, 0x85, 0x22, 0x97, 0x1c, 0xf5, 0xfb, + 0x5d, 0xa9, 0x10, 0xda, 0x1c, 0x8e, 0x94, 0xce, 0xc9, 0xb1, 0x54, 0x0c, 0x6d, 0x1e, 0x2b, 0xfd, + 0xf1, 0x40, 0x82, 0xd0, 0x42, 0x4f, 0x1e, 0x0e, 0x9b, 0xc7, 0xb2, 0x54, 0x0a, 0x11, 0x47, 0x9f, + 0x8e, 0xe4, 0xa1, 0x54, 0x8e, 0xb9, 0x85, 0x9f, 0xd8, 0x0d, 0x3f, 0x21, 0x9f, 0x8c, 0x7b, 0x52, + 0x85, 0xec, 0xc1, 0xae, 0xf8, 0x44, 0xe0, 0x44, 0x75, 0x4d, 0x84, 0x9e, 0x4a, 0x2b, 0x47, 0x84, + 0x95, 0xbd, 0x98, 0x00, 0x11, 0xa4, 0xde, 0x82, 0x1c, 0x67, 0x17, 0xb2, 0xb8, 0xd2, 0x6d, 0x1e, + 0xc9, 0x5d, 0xb5, 0x3f, 0x18, 0x75, 0xfa, 0x27, 0xcd, 0x2e, 0xc6, 0x2e, 0x94, 0x29, 0xf2, 0x4f, + 0xc6, 0x1d, 0x45, 0x6e, 0x63, 0xfc, 0x22, 0xb2, 0x81, 0xdc, 0x1c, 0xa1, 0x2c, 0x53, 0xbf, 0x07, + 0xfb, 0x49, 0x79, 0x26, 0xe9, 0x64, 0xd4, 0xbf, 0x48, 0xc1, 0xa5, 0x84, 0x94, 0x99, 0x78, 0x8a, + 0x7e, 0x0c, 0x39, 0xc1, 0x34, 0x51, 0x44, 0xde, 0x49, 0xcc, 0xbd, 0x9c, 0x77, 0x1b, 0x85, 0x84, + 0xeb, 0x45, 0x0b, 0x69, 0x66, 0x4b, 0x21, 0x65, 0x26, 0x36, 0xe8, 0xf4, 0xcb, 0x14, 0xd4, 0xb6, + 0xd9, 0x7e, 0xc5, 0x79, 0x4f, 0xc7, 0xce, 0xfb, 0x47, 0xeb, 0x0e, 0xdc, 0xdc, 0xbe, 0x86, 0x0d, + 0x2f, 0xbe, 0x4c, 0xc1, 0xe5, 0xe4, 0x7e, 0x23, 0xd1, 0x87, 0x8f, 0x21, 0x3f, 0xa7, 0xde, 0x99, + 0x1d, 0xd4, 0xdc, 0xb7, 0x13, 0x32, 0x39, 0x9b, 0x5e, 0x8f, 0x95, 0xaf, 0x15, 0x2d, 0x05, 0x99, + 0x6d, 0x4d, 0x83, 0xf0, 0x66, 0xc3, 0xd3, 0x5f, 0xa5, 0xe1, 0xb5, 0x44, 0xe3, 0x89, 0x8e, 0x5e, + 0x03, 0x30, 0xac, 0xc5, 0xd2, 0x13, 0x75, 0x55, 0xa4, 0x99, 0x22, 0x97, 0xf0, 0x23, 0xcc, 0x52, + 0xc8, 0xd2, 0x0b, 0xe7, 0x33, 0x7c, 0x1e, 0x84, 0x88, 0x03, 0x1e, 0xae, 0x1c, 0xcd, 0x72, 0x47, + 0xdf, 0xdc, 0xb2, 0xd2, 0x8d, 0x92, 0xf5, 0x1e, 0x48, 0xba, 0x69, 0x50, 0xcb, 0x53, 0x5d, 0xcf, + 0xa1, 0xda, 0xdc, 0xb0, 0x66, 0x3c, 0x8f, 0x16, 0x0e, 0x73, 0x53, 0xcd, 0x74, 0xa9, 0x52, 0x15, + 0xd3, 0xc3, 0x60, 0x96, 0x69, 0xf0, 0x62, 0xe1, 0x44, 0x34, 0xf2, 0x31, 0x0d, 0x31, 0x1d, 0x6a, + 0xd4, 0x7f, 0xbd, 0x03, 0xa5, 0x48, 0x77, 0x46, 0x6e, 0x42, 0xf9, 0xa9, 0xf6, 0x5c, 0x53, 0x83, + 0x8e, 0x5b, 0x44, 0xa2, 0xc4, 0x64, 0x03, 0xbf, 0xeb, 0x7e, 0x0f, 0xf6, 0x39, 0x04, 0xd7, 0x88, + 0x1f, 0xd2, 0x4d, 0xcd, 0x75, 0x79, 0xd0, 0x0a, 0x1c, 0x4a, 0xd8, 0x5c, 0x9f, 0x4d, 0xb5, 0x82, + 0x19, 0xf2, 0x3e, 0x5c, 0xe2, 0x1a, 0x73, 0x4c, 0xbc, 0xc6, 0xc2, 0xa4, 0x2a, 0xbb, 0x03, 0xb8, + 0x3c, 0x9f, 0x86, 0x9e, 0xed, 0x31, 0x44, 0xcf, 0x07, 0x30, 0x8f, 0x5c, 0x72, 0x0c, 0xd7, 0xb8, + 0xda, 0x8c, 0x5a, 0xd4, 0xd1, 0x3c, 0xaa, 0xd2, 0x9f, 0x2f, 0x11, 0xab, 0x6a, 0xd6, 0x44, 0x3d, + 0xd3, 0xdc, 0xb3, 0xda, 0x7e, 0xd4, 0xc0, 0x55, 0x86, 0x3d, 0xf6, 0xa1, 0x32, 0x47, 0x36, 0xad, + 0xc9, 0x27, 0x88, 0x23, 0x87, 0x70, 0x99, 0x1b, 0xc2, 0xa0, 0xe0, 0x9a, 0x55, 0xfd, 0x8c, 0xea, + 0xcf, 0xd4, 0xa5, 0x37, 0x7d, 0x58, 0x7b, 0x3d, 0x6a, 0x81, 0x3b, 0x39, 0xe4, 0x98, 0x16, 0x83, + 0x8c, 0x11, 0x41, 0x86, 0x50, 0x66, 0xfb, 0x31, 0x37, 0x3e, 0x47, 0xb7, 0x6d, 0x87, 0xd7, 0x88, + 0x4a, 0xc2, 0xe1, 0x8e, 0x04, 0xb1, 0xd1, 0xf7, 0x15, 0x7a, 0xd8, 0x9f, 0x1e, 0xe6, 0x86, 0x03, + 0x59, 0x6e, 0x2b, 0xa5, 0xc0, 0xca, 0x23, 0xdb, 0x61, 0x9c, 0x9a, 0xd9, 0x61, 0x8c, 0x4b, 0x82, + 0x53, 0x33, 0x3b, 0x88, 0x30, 0xc6, 0x4b, 0xd7, 0xc5, 0xb2, 0xf1, 0xee, 0xe2, 0x37, 0xeb, 0x6e, + 0x4d, 0x8a, 0xc5, 0x4b, 0xd7, 0x8f, 0x05, 0xc0, 0xa7, 0xb9, 0x8b, 0x47, 0xe2, 0xb5, 0x55, 0xbc, + 0xa2, 0x8a, 0x7b, 0x1b, 0xab, 0x5c, 0x57, 0xc5, 0x2f, 0x2e, 0xce, 0x37, 0x15, 0x49, 0xec, 0x8b, + 0x8b, 0xf3, 0x75, 0xb5, 0xdb, 0xfc, 0x02, 0xe6, 0x50, 0x1d, 0x43, 0x3e, 0xa9, 0x5d, 0x89, 0xa2, + 0x23, 0x13, 0xe4, 0x3e, 0x12, 0x59, 0x57, 0xa9, 0xa5, 0x9d, 0xe2, 0xde, 0x6b, 0x0e, 0xfe, 0x70, + 0x6b, 0xd7, 0xa3, 0xe0, 0x8a, 0xae, 0xcb, 0x7c, 0xb6, 0xc9, 0x27, 0xc9, 0x3d, 0xd8, 0xb3, 0x4f, + 0x9f, 0xea, 0x82, 0x5c, 0x2a, 0xda, 0x99, 0x1a, 0x2f, 0x6b, 0xb7, 0x78, 0x98, 0xaa, 0x6c, 0x82, + 0x53, 0x6b, 0xc0, 0xc5, 0xe4, 0x1d, 0x34, 0xee, 0x9e, 0x69, 0xce, 0x82, 0x17, 0x69, 0x17, 0x83, + 0x4a, 0x6b, 0xb7, 0x05, 0x54, 0xc8, 0x4f, 0x02, 0x31, 0xb6, 0xb7, 0xfb, 0x4b, 0xcb, 0xb0, 0x90, + 0x9b, 0x68, 0x92, 0xf5, 0xda, 0xe2, 0xa4, 0xd5, 0xfe, 0xb9, 0xb3, 0xa5, 0x5b, 0x1e, 0x47, 0xd1, + 0x62, 0x77, 0x95, 0x4b, 0xcb, 0x4d, 0x61, 0xfd, 0x10, 0xca, 0xd1, 0x4d, 0x27, 0x45, 0x10, 0xdb, + 0x8e, 0x65, 0x09, 0x4b, 0x61, 0xab, 0xdf, 0x66, 0x45, 0xec, 0x33, 0x19, 0x2b, 0x12, 0x16, 0xd3, + 0x6e, 0x67, 0x24, 0xab, 0xca, 0xf8, 0x64, 0xd4, 0xe9, 0xc9, 0x52, 0xe6, 0x5e, 0xb1, 0xf0, 0xaf, + 0x1d, 0xe9, 0x17, 0xf8, 0x2f, 0xfd, 0x38, 0x5b, 0x78, 0x5b, 0xba, 0x53, 0xff, 0x4b, 0x1a, 0x2a, + 0xf1, 0x36, 0x96, 0xfc, 0x08, 0xae, 0x04, 0x77, 0x4e, 0x97, 0x7a, 0xea, 0x0b, 0xc3, 0xe1, 0x6c, + 0x9c, 0x6b, 0xa2, 0x11, 0x0c, 0x03, 0xb9, 0xef, 0xa3, 0xf0, 0x76, 0xfe, 0x33, 0xc4, 0x3c, 0xe2, + 0x10, 0xd2, 0x85, 0xeb, 0x96, 0x8d, 0xec, 0xc7, 0x83, 0xa3, 0x39, 0x13, 0x75, 0x75, 0xdb, 0x57, + 0x35, 0x1d, 0xb7, 0xd1, 0xb5, 0x45, 0x21, 0x08, 0xad, 0xbc, 0x61, 0xd9, 0x43, 0x1f, 0xbc, 0xca, + 0x90, 0x4d, 0x1f, 0xba, 0xb6, 0xe9, 0x99, 0x6d, 0x9b, 0x8e, 0xad, 0xd3, 0x5c, 0x5b, 0xe0, 0xae, + 0x7b, 0xce, 0x39, 0x6f, 0xbe, 0x0a, 0x4a, 0x01, 0x05, 0x32, 0x1b, 0x7f, 0x73, 0x3b, 0x11, 0x89, + 0x66, 0xfd, 0xef, 0x19, 0x28, 0x47, 0x1b, 0x30, 0xd6, 0xcf, 0xea, 0x3c, 0x4b, 0xa7, 0xf8, 0x21, + 0x7e, 0xeb, 0x2b, 0xdb, 0xb5, 0x46, 0x8b, 0xa5, 0xef, 0xc3, 0xbc, 0x68, 0x8b, 0x14, 0xa1, 0xc9, + 0x4a, 0x27, 0x3b, 0xb6, 0x54, 0x34, 0xdb, 0x05, 0xc5, 0x1f, 0x61, 0xae, 0xca, 0x3f, 0x75, 0xb9, + 0xed, 0x3c, 0xb7, 0x7d, 0xeb, 0xab, 0x6d, 0x3f, 0x1e, 0x72, 0xe3, 0xc5, 0xc7, 0x43, 0xf5, 0xa4, + 0xaf, 0xf4, 0x9a, 0x5d, 0xc5, 0x57, 0x27, 0x57, 0x21, 0x6b, 0x6a, 0x9f, 0x9f, 0xc7, 0x13, 0x3d, + 0x17, 0x5d, 0x34, 0xf0, 0x68, 0x81, 0xbd, 0x58, 0xc4, 0xd3, 0x2b, 0x17, 0x7d, 0x83, 0x07, 0xe0, + 0x3e, 0xe4, 0x78, 0xbc, 0x08, 0x80, 0x1f, 0x31, 0xe9, 0x3b, 0xa4, 0x00, 0xd9, 0x56, 0x5f, 0x61, + 0x87, 0x00, 0x59, 0x2f, 0xa4, 0xea, 0xa0, 0x23, 0xb7, 0xf0, 0x1c, 0xd4, 0xdf, 0x87, 0xbc, 0x08, + 0x02, 0x3b, 0x20, 0x61, 0x18, 0x50, 0x49, 0x0c, 0x7d, 0x1b, 0xa9, 0x60, 0x76, 0xdc, 0x3b, 0x92, + 0x15, 0x29, 0x1d, 0xdd, 0xde, 0x3f, 0xa7, 0xa0, 0x14, 0xe9, 0x87, 0x58, 0x25, 0xd6, 0x4c, 0xd3, + 0x7e, 0xa1, 0x6a, 0xa6, 0x81, 0x09, 0x46, 0xec, 0x0f, 0x70, 0x51, 0x93, 0x49, 0x2e, 0x1a, 0xbf, + 0xff, 0x09, 0x37, 0xff, 0x90, 0x02, 0x69, 0xbd, 0x97, 0x5a, 0x73, 0x30, 0xf5, 0xad, 0x3a, 0xf8, + 0xfb, 0x14, 0x54, 0xe2, 0x0d, 0xd4, 0x9a, 0x7b, 0x37, 0xbf, 0x55, 0xf7, 0x7e, 0x97, 0x82, 0xdd, + 0x58, 0xdb, 0xf4, 0x7f, 0xe5, 0xdd, 0x6f, 0x33, 0x70, 0x29, 0x41, 0x0f, 0x13, 0x90, 0xe8, 0x2f, + 0x45, 0xcb, 0xfb, 0xbd, 0x8b, 0x7c, 0xab, 0xc1, 0xca, 0xd7, 0x00, 0x2f, 0xf9, 0x7e, 0x3b, 0x8a, + 0xe5, 0xce, 0x98, 0x60, 0x52, 0x35, 0xa6, 0x06, 0x76, 0x5f, 0xe2, 0xc2, 0x21, 0x9a, 0xce, 0xea, + 0x4a, 0x2e, 0x6e, 0xb7, 0xdf, 0x05, 0xb2, 0xb0, 0x5d, 0xc3, 0x33, 0x9e, 0xb3, 0xd7, 0xb5, 0xe0, + 0x1e, 0xcc, 0x9a, 0xd0, 0xac, 0x22, 0x05, 0x33, 0x1d, 0xcb, 0x0b, 0xd1, 0x16, 0x9d, 0x69, 0x6b, + 0x68, 0x96, 0x86, 0x32, 0x8a, 0x14, 0xcc, 0x84, 0x68, 0xec, 0x13, 0x27, 0xf6, 0x92, 0xd5, 0x73, + 0x81, 0x63, 0x59, 0x2f, 0xa5, 0x94, 0x84, 0x2c, 0x84, 0xf8, 0x0d, 0xd7, 0xea, 0x02, 0x5e, 0x56, + 0x4a, 0x42, 0x26, 0x20, 0x77, 0xa0, 0xaa, 0xcd, 0x66, 0x0e, 0x33, 0x1e, 0x18, 0x12, 0x5d, 0x64, + 0x25, 0x14, 0x73, 0xe0, 0xc1, 0x63, 0x28, 0x04, 0x71, 0x60, 0x85, 0x85, 0x45, 0x02, 0xdb, 0x27, + 0xfe, 0x0c, 0x92, 0x66, 0x77, 0x72, 0x2b, 0x98, 0xc4, 0x8f, 0x1a, 0xae, 0xba, 0x7a, 0x8f, 0x4b, + 0xe3, 0x7c, 0x41, 0x29, 0x19, 0x6e, 0xf8, 0x00, 0x53, 0xff, 0x12, 0xcb, 0x6b, 0xfc, 0x3d, 0x91, + 0xb4, 0xa1, 0x60, 0xda, 0xc8, 0x0f, 0xa6, 0x21, 0x1e, 0xb3, 0xef, 0xbe, 0xe2, 0x09, 0xb2, 0xd1, + 0xf5, 0xf1, 0x4a, 0xa8, 0x79, 0xf0, 0xd7, 0x14, 0x14, 0x02, 0x31, 0x16, 0x8a, 0xec, 0x42, 0xf3, + 0xce, 0xb8, 0xb9, 0xdc, 0x51, 0x5a, 0x4a, 0x29, 0x7c, 0xcc, 0xe4, 0xd8, 0x8c, 0x58, 0x9c, 0x02, + 0xbe, 0x9c, 0x8d, 0xd9, 0xbe, 0x9a, 0x54, 0x9b, 0xf0, 0xfe, 0xd4, 0x9e, 0xcf, 0x71, 0x27, 0xdd, + 0x60, 0x5f, 0x7d, 0x79, 0xcb, 0x17, 0xb3, 0x67, 0x6d, 0xcf, 0xd1, 0x0c, 0x33, 0x86, 0xcd, 0x72, + 0xac, 0x14, 0x4c, 0x84, 0xe0, 0x43, 0xb8, 0x1a, 0xd8, 0x9d, 0x50, 0x4f, 0xc3, 0xde, 0x77, 0xb2, + 0x52, 0xca, 0xf3, 0xc7, 0xaa, 0x2b, 0x3e, 0xa0, 0xed, 0xcf, 0x07, 0xba, 0xf5, 0xbf, 0xa5, 0x60, + 0x2f, 0xe8, 0xa8, 0x27, 0x61, 0xb0, 0x7a, 0x00, 0x9a, 0x65, 0xd9, 0x5e, 0x34, 0x5c, 0x9b, 0x54, + 0xde, 0xd0, 0x6b, 0x34, 0x43, 0x25, 0x25, 0x62, 0xe0, 0x60, 0x0e, 0xb0, 0x9a, 0xd9, 0x1a, 0x36, + 0x4c, 0xee, 0xfe, 0x63, 0x31, 0xff, 0x8b, 0x83, 0xb8, 0x86, 0x81, 0x10, 0xb1, 0xd6, 0x9b, 0x3d, + 0x8c, 0x9d, 0xd2, 0x99, 0x61, 0xf9, 0x4f, 0x58, 0x62, 0x10, 0x3c, 0x8c, 0x65, 0xc3, 0x87, 0xb1, + 0xa3, 0x27, 0xd8, 0x5b, 0xdb, 0xf3, 0x75, 0x77, 0x8f, 0xa4, 0xb5, 0xab, 0xa0, 0xfb, 0x49, 0xea, + 0x33, 0x58, 0x35, 0x4a, 0x5f, 0xa4, 0x33, 0xc7, 0x83, 0xa3, 0x3f, 0xa6, 0x0f, 0x8e, 0x85, 0xde, + 0x20, 0x58, 0xa6, 0x42, 0xa7, 0x26, 0xd5, 0x99, 0xeb, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x51, + 0xab, 0xa7, 0x9f, 0x56, 0x19, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/doc.go b/vendor/github.com/golang/protobuf/protoc-gen-go/doc.go new file mode 100644 index 00000000..0d6055d6 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/doc.go @@ -0,0 +1,51 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +/* + A plugin for the Google protocol buffer compiler to generate Go code. + Run it by building this program and putting it in your path with the name + protoc-gen-go + That word 'go' at the end becomes part of the option string set for the + protocol compiler, so once the protocol compiler (protoc) is installed + you can run + protoc --go_out=output_directory input_directory/file.proto + to generate Go bindings for the protocol defined by file.proto. + With that input, the output will be written to + output_directory/file.pb.go + + The generated code is documented in the package comment for + the library. + + See the README and documentation for protocol buffers to learn more: + https://developers.google.com/protocol-buffers/ + +*/ +package documentation diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/generator/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/Makefile new file mode 100644 index 00000000..b5715c35 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/Makefile @@ -0,0 +1,40 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +include $(GOROOT)/src/Make.inc + +TARG=github.com/golang/protobuf/compiler/generator +GOFILES=\ + generator.go\ + +DEPS=../descriptor ../plugin ../../proto + +include $(GOROOT)/src/Make.pkg diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/generator/generator.go b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/generator.go new file mode 100644 index 00000000..095891c0 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/generator.go @@ -0,0 +1,2778 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +/* + The code generator for the plugin for the Google protocol buffer compiler. + It generates Go code from the protocol buffer description files read by the + main routine. +*/ +package generator + +import ( + "bufio" + "bytes" + "compress/gzip" + "fmt" + "go/parser" + "go/printer" + "go/token" + "log" + "os" + "path" + "strconv" + "strings" + "unicode" + "unicode/utf8" + + "github.com/golang/protobuf/proto" + + "github.com/golang/protobuf/protoc-gen-go/descriptor" + plugin "github.com/golang/protobuf/protoc-gen-go/plugin" +) + +// generatedCodeVersion indicates a version of the generated code. +// It is incremented whenever an incompatibility between the generated code and +// proto package is introduced; the generated code references +// a constant, proto.ProtoPackageIsVersionN (where N is generatedCodeVersion). +const generatedCodeVersion = 2 + +// A Plugin provides functionality to add to the output during Go code generation, +// such as to produce RPC stubs. +type Plugin interface { + // Name identifies the plugin. + Name() string + // Init is called once after data structures are built but before + // code generation begins. + Init(g *Generator) + // Generate produces the code generated by the plugin for this file, + // except for the imports, by calling the generator's methods P, In, and Out. + Generate(file *FileDescriptor) + // GenerateImports produces the import declarations for this file. + // It is called after Generate. + GenerateImports(file *FileDescriptor) +} + +var plugins []Plugin + +// RegisterPlugin installs a (second-order) plugin to be run when the Go output is generated. +// It is typically called during initialization. +func RegisterPlugin(p Plugin) { + plugins = append(plugins, p) +} + +// Each type we import as a protocol buffer (other than FileDescriptorProto) needs +// a pointer to the FileDescriptorProto that represents it. These types achieve that +// wrapping by placing each Proto inside a struct with the pointer to its File. The +// structs have the same names as their contents, with "Proto" removed. +// FileDescriptor is used to store the things that it points to. + +// The file and package name method are common to messages and enums. +type common struct { + file *descriptor.FileDescriptorProto // File this object comes from. +} + +// PackageName is name in the package clause in the generated file. +func (c *common) PackageName() string { return uniquePackageOf(c.file) } + +func (c *common) File() *descriptor.FileDescriptorProto { return c.file } + +func fileIsProto3(file *descriptor.FileDescriptorProto) bool { + return file.GetSyntax() == "proto3" +} + +func (c *common) proto3() bool { return fileIsProto3(c.file) } + +// Descriptor represents a protocol buffer message. +type Descriptor struct { + common + *descriptor.DescriptorProto + parent *Descriptor // The containing message, if any. + nested []*Descriptor // Inner messages, if any. + enums []*EnumDescriptor // Inner enums, if any. + ext []*ExtensionDescriptor // Extensions, if any. + typename []string // Cached typename vector. + index int // The index into the container, whether the file or another message. + path string // The SourceCodeInfo path as comma-separated integers. + group bool +} + +// TypeName returns the elements of the dotted type name. +// The package name is not part of this name. +func (d *Descriptor) TypeName() []string { + if d.typename != nil { + return d.typename + } + n := 0 + for parent := d; parent != nil; parent = parent.parent { + n++ + } + s := make([]string, n, n) + for parent := d; parent != nil; parent = parent.parent { + n-- + s[n] = parent.GetName() + } + d.typename = s + return s +} + +// EnumDescriptor describes an enum. If it's at top level, its parent will be nil. +// Otherwise it will be the descriptor of the message in which it is defined. +type EnumDescriptor struct { + common + *descriptor.EnumDescriptorProto + parent *Descriptor // The containing message, if any. + typename []string // Cached typename vector. + index int // The index into the container, whether the file or a message. + path string // The SourceCodeInfo path as comma-separated integers. +} + +// TypeName returns the elements of the dotted type name. +// The package name is not part of this name. +func (e *EnumDescriptor) TypeName() (s []string) { + if e.typename != nil { + return e.typename + } + name := e.GetName() + if e.parent == nil { + s = make([]string, 1) + } else { + pname := e.parent.TypeName() + s = make([]string, len(pname)+1) + copy(s, pname) + } + s[len(s)-1] = name + e.typename = s + return s +} + +// Everything but the last element of the full type name, CamelCased. +// The values of type Foo.Bar are call Foo_value1... not Foo_Bar_value1... . +func (e *EnumDescriptor) prefix() string { + if e.parent == nil { + // If the enum is not part of a message, the prefix is just the type name. + return CamelCase(*e.Name) + "_" + } + typeName := e.TypeName() + return CamelCaseSlice(typeName[0:len(typeName)-1]) + "_" +} + +// The integer value of the named constant in this enumerated type. +func (e *EnumDescriptor) integerValueAsString(name string) string { + for _, c := range e.Value { + if c.GetName() == name { + return fmt.Sprint(c.GetNumber()) + } + } + log.Fatal("cannot find value for enum constant") + return "" +} + +// ExtensionDescriptor describes an extension. If it's at top level, its parent will be nil. +// Otherwise it will be the descriptor of the message in which it is defined. +type ExtensionDescriptor struct { + common + *descriptor.FieldDescriptorProto + parent *Descriptor // The containing message, if any. +} + +// TypeName returns the elements of the dotted type name. +// The package name is not part of this name. +func (e *ExtensionDescriptor) TypeName() (s []string) { + name := e.GetName() + if e.parent == nil { + // top-level extension + s = make([]string, 1) + } else { + pname := e.parent.TypeName() + s = make([]string, len(pname)+1) + copy(s, pname) + } + s[len(s)-1] = name + return s +} + +// DescName returns the variable name used for the generated descriptor. +func (e *ExtensionDescriptor) DescName() string { + // The full type name. + typeName := e.TypeName() + // Each scope of the extension is individually CamelCased, and all are joined with "_" with an "E_" prefix. + for i, s := range typeName { + typeName[i] = CamelCase(s) + } + return "E_" + strings.Join(typeName, "_") +} + +// ImportedDescriptor describes a type that has been publicly imported from another file. +type ImportedDescriptor struct { + common + o Object +} + +func (id *ImportedDescriptor) TypeName() []string { return id.o.TypeName() } + +// FileDescriptor describes an protocol buffer descriptor file (.proto). +// It includes slices of all the messages and enums defined within it. +// Those slices are constructed by WrapTypes. +type FileDescriptor struct { + *descriptor.FileDescriptorProto + desc []*Descriptor // All the messages defined in this file. + enum []*EnumDescriptor // All the enums defined in this file. + ext []*ExtensionDescriptor // All the top-level extensions defined in this file. + imp []*ImportedDescriptor // All types defined in files publicly imported by this file. + + // Comments, stored as a map of path (comma-separated integers) to the comment. + comments map[string]*descriptor.SourceCodeInfo_Location + + // The full list of symbols that are exported, + // as a map from the exported object to its symbols. + // This is used for supporting public imports. + exported map[Object][]symbol + + index int // The index of this file in the list of files to generate code for + + proto3 bool // whether to generate proto3 code for this file +} + +// PackageName is the package name we'll use in the generated code to refer to this file. +func (d *FileDescriptor) PackageName() string { return uniquePackageOf(d.FileDescriptorProto) } + +// VarName is the variable name we'll use in the generated code to refer +// to the compressed bytes of this descriptor. It is not exported, so +// it is only valid inside the generated package. +func (d *FileDescriptor) VarName() string { return fmt.Sprintf("fileDescriptor%d", d.index) } + +// goPackageOption interprets the file's go_package option. +// If there is no go_package, it returns ("", "", false). +// If there's a simple name, it returns ("", pkg, true). +// If the option implies an import path, it returns (impPath, pkg, true). +func (d *FileDescriptor) goPackageOption() (impPath, pkg string, ok bool) { + pkg = d.GetOptions().GetGoPackage() + if pkg == "" { + return + } + ok = true + // The presence of a slash implies there's an import path. + slash := strings.LastIndex(pkg, "/") + if slash < 0 { + return + } + impPath, pkg = pkg, pkg[slash+1:] + // A semicolon-delimited suffix overrides the package name. + sc := strings.IndexByte(impPath, ';') + if sc < 0 { + return + } + impPath, pkg = impPath[:sc], impPath[sc+1:] + return +} + +// goPackageName returns the Go package name to use in the +// generated Go file. The result explicit reports whether the name +// came from an option go_package statement. If explicit is false, +// the name was derived from the protocol buffer's package statement +// or the input file name. +func (d *FileDescriptor) goPackageName() (name string, explicit bool) { + // Does the file have a "go_package" option? + if _, pkg, ok := d.goPackageOption(); ok { + return pkg, true + } + + // Does the file have a package clause? + if pkg := d.GetPackage(); pkg != "" { + return pkg, false + } + // Use the file base name. + return baseName(d.GetName()), false +} + +// goFileName returns the output name for the generated Go file. +func (d *FileDescriptor) goFileName() string { + name := *d.Name + if ext := path.Ext(name); ext == ".proto" || ext == ".protodevel" { + name = name[:len(name)-len(ext)] + } + name += ".pb.go" + + // Does the file have a "go_package" option? + // If it does, it may override the filename. + if impPath, _, ok := d.goPackageOption(); ok && impPath != "" { + // Replace the existing dirname with the declared import path. + _, name = path.Split(name) + name = path.Join(impPath, name) + return name + } + + return name +} + +func (d *FileDescriptor) addExport(obj Object, sym symbol) { + d.exported[obj] = append(d.exported[obj], sym) +} + +// symbol is an interface representing an exported Go symbol. +type symbol interface { + // GenerateAlias should generate an appropriate alias + // for the symbol from the named package. + GenerateAlias(g *Generator, pkg string) +} + +type messageSymbol struct { + sym string + hasExtensions, isMessageSet bool + hasOneof bool + getters []getterSymbol +} + +type getterSymbol struct { + name string + typ string + typeName string // canonical name in proto world; empty for proto.Message and similar + genType bool // whether typ contains a generated type (message/group/enum) +} + +func (ms *messageSymbol) GenerateAlias(g *Generator, pkg string) { + remoteSym := pkg + "." + ms.sym + + g.P("type ", ms.sym, " ", remoteSym) + g.P("func (m *", ms.sym, ") Reset() { (*", remoteSym, ")(m).Reset() }") + g.P("func (m *", ms.sym, ") String() string { return (*", remoteSym, ")(m).String() }") + g.P("func (*", ms.sym, ") ProtoMessage() {}") + if ms.hasExtensions { + g.P("func (*", ms.sym, ") ExtensionRangeArray() []", g.Pkg["proto"], ".ExtensionRange ", + "{ return (*", remoteSym, ")(nil).ExtensionRangeArray() }") + if ms.isMessageSet { + g.P("func (m *", ms.sym, ") Marshal() ([]byte, error) ", + "{ return (*", remoteSym, ")(m).Marshal() }") + g.P("func (m *", ms.sym, ") Unmarshal(buf []byte) error ", + "{ return (*", remoteSym, ")(m).Unmarshal(buf) }") + } + } + if ms.hasOneof { + // Oneofs and public imports do not mix well. + // We can make them work okay for the binary format, + // but they're going to break weirdly for text/JSON. + enc := "_" + ms.sym + "_OneofMarshaler" + dec := "_" + ms.sym + "_OneofUnmarshaler" + size := "_" + ms.sym + "_OneofSizer" + encSig := "(msg " + g.Pkg["proto"] + ".Message, b *" + g.Pkg["proto"] + ".Buffer) error" + decSig := "(msg " + g.Pkg["proto"] + ".Message, tag, wire int, b *" + g.Pkg["proto"] + ".Buffer) (bool, error)" + sizeSig := "(msg " + g.Pkg["proto"] + ".Message) int" + g.P("func (m *", ms.sym, ") XXX_OneofFuncs() (func", encSig, ", func", decSig, ", func", sizeSig, ", []interface{}) {") + g.P("return ", enc, ", ", dec, ", ", size, ", nil") + g.P("}") + + g.P("func ", enc, encSig, " {") + g.P("m := msg.(*", ms.sym, ")") + g.P("m0 := (*", remoteSym, ")(m)") + g.P("enc, _, _, _ := m0.XXX_OneofFuncs()") + g.P("return enc(m0, b)") + g.P("}") + + g.P("func ", dec, decSig, " {") + g.P("m := msg.(*", ms.sym, ")") + g.P("m0 := (*", remoteSym, ")(m)") + g.P("_, dec, _, _ := m0.XXX_OneofFuncs()") + g.P("return dec(m0, tag, wire, b)") + g.P("}") + + g.P("func ", size, sizeSig, " {") + g.P("m := msg.(*", ms.sym, ")") + g.P("m0 := (*", remoteSym, ")(m)") + g.P("_, _, size, _ := m0.XXX_OneofFuncs()") + g.P("return size(m0)") + g.P("}") + } + for _, get := range ms.getters { + + if get.typeName != "" { + g.RecordTypeUse(get.typeName) + } + typ := get.typ + val := "(*" + remoteSym + ")(m)." + get.name + "()" + if get.genType { + // typ will be "*pkg.T" (message/group) or "pkg.T" (enum) + // or "map[t]*pkg.T" (map to message/enum). + // The first two of those might have a "[]" prefix if it is repeated. + // Drop any package qualifier since we have hoisted the type into this package. + rep := strings.HasPrefix(typ, "[]") + if rep { + typ = typ[2:] + } + isMap := strings.HasPrefix(typ, "map[") + star := typ[0] == '*' + if !isMap { // map types handled lower down + typ = typ[strings.Index(typ, ".")+1:] + } + if star { + typ = "*" + typ + } + if rep { + // Go does not permit conversion between slice types where both + // element types are named. That means we need to generate a bit + // of code in this situation. + // typ is the element type. + // val is the expression to get the slice from the imported type. + + ctyp := typ // conversion type expression; "Foo" or "(*Foo)" + if star { + ctyp = "(" + typ + ")" + } + + g.P("func (m *", ms.sym, ") ", get.name, "() []", typ, " {") + g.In() + g.P("o := ", val) + g.P("if o == nil {") + g.In() + g.P("return nil") + g.Out() + g.P("}") + g.P("s := make([]", typ, ", len(o))") + g.P("for i, x := range o {") + g.In() + g.P("s[i] = ", ctyp, "(x)") + g.Out() + g.P("}") + g.P("return s") + g.Out() + g.P("}") + continue + } + if isMap { + // Split map[keyTyp]valTyp. + bra, ket := strings.Index(typ, "["), strings.Index(typ, "]") + keyTyp, valTyp := typ[bra+1:ket], typ[ket+1:] + // Drop any package qualifier. + // Only the value type may be foreign. + star := valTyp[0] == '*' + valTyp = valTyp[strings.Index(valTyp, ".")+1:] + if star { + valTyp = "*" + valTyp + } + + typ := "map[" + keyTyp + "]" + valTyp + g.P("func (m *", ms.sym, ") ", get.name, "() ", typ, " {") + g.P("o := ", val) + g.P("if o == nil { return nil }") + g.P("s := make(", typ, ", len(o))") + g.P("for k, v := range o {") + g.P("s[k] = (", valTyp, ")(v)") + g.P("}") + g.P("return s") + g.P("}") + continue + } + // Convert imported type into the forwarding type. + val = "(" + typ + ")(" + val + ")" + } + + g.P("func (m *", ms.sym, ") ", get.name, "() ", typ, " { return ", val, " }") + } + +} + +type enumSymbol struct { + name string + proto3 bool // Whether this came from a proto3 file. +} + +func (es enumSymbol) GenerateAlias(g *Generator, pkg string) { + s := es.name + g.P("type ", s, " ", pkg, ".", s) + g.P("var ", s, "_name = ", pkg, ".", s, "_name") + g.P("var ", s, "_value = ", pkg, ".", s, "_value") + g.P("func (x ", s, ") String() string { return (", pkg, ".", s, ")(x).String() }") + if !es.proto3 { + g.P("func (x ", s, ") Enum() *", s, "{ return (*", s, ")((", pkg, ".", s, ")(x).Enum()) }") + g.P("func (x *", s, ") UnmarshalJSON(data []byte) error { return (*", pkg, ".", s, ")(x).UnmarshalJSON(data) }") + } +} + +type constOrVarSymbol struct { + sym string + typ string // either "const" or "var" + cast string // if non-empty, a type cast is required (used for enums) +} + +func (cs constOrVarSymbol) GenerateAlias(g *Generator, pkg string) { + v := pkg + "." + cs.sym + if cs.cast != "" { + v = cs.cast + "(" + v + ")" + } + g.P(cs.typ, " ", cs.sym, " = ", v) +} + +// Object is an interface abstracting the abilities shared by enums, messages, extensions and imported objects. +type Object interface { + PackageName() string // The name we use in our output (a_b_c), possibly renamed for uniqueness. + TypeName() []string + File() *descriptor.FileDescriptorProto +} + +// Each package name we generate must be unique. The package we're generating +// gets its own name but every other package must have a unique name that does +// not conflict in the code we generate. These names are chosen globally (although +// they don't have to be, it simplifies things to do them globally). +func uniquePackageOf(fd *descriptor.FileDescriptorProto) string { + s, ok := uniquePackageName[fd] + if !ok { + log.Fatal("internal error: no package name defined for " + fd.GetName()) + } + return s +} + +// Generator is the type whose methods generate the output, stored in the associated response structure. +type Generator struct { + *bytes.Buffer + + Request *plugin.CodeGeneratorRequest // The input. + Response *plugin.CodeGeneratorResponse // The output. + + Param map[string]string // Command-line parameters. + PackageImportPath string // Go import path of the package we're generating code for + ImportPrefix string // String to prefix to imported package file names. + ImportMap map[string]string // Mapping from .proto file name to import path + + Pkg map[string]string // The names under which we import support packages + + packageName string // What we're calling ourselves. + allFiles []*FileDescriptor // All files in the tree + allFilesByName map[string]*FileDescriptor // All files by filename. + genFiles []*FileDescriptor // Those files we will generate output for. + file *FileDescriptor // The file we are compiling now. + usedPackages map[string]bool // Names of packages used in current file. + typeNameToObject map[string]Object // Key is a fully-qualified name in input syntax. + init []string // Lines to emit in the init function. + indent string + writeOutput bool +} + +// New creates a new generator and allocates the request and response protobufs. +func New() *Generator { + g := new(Generator) + g.Buffer = new(bytes.Buffer) + g.Request = new(plugin.CodeGeneratorRequest) + g.Response = new(plugin.CodeGeneratorResponse) + return g +} + +// Error reports a problem, including an error, and exits the program. +func (g *Generator) Error(err error, msgs ...string) { + s := strings.Join(msgs, " ") + ":" + err.Error() + log.Print("protoc-gen-go: error:", s) + os.Exit(1) +} + +// Fail reports a problem and exits the program. +func (g *Generator) Fail(msgs ...string) { + s := strings.Join(msgs, " ") + log.Print("protoc-gen-go: error:", s) + os.Exit(1) +} + +// CommandLineParameters breaks the comma-separated list of key=value pairs +// in the parameter (a member of the request protobuf) into a key/value map. +// It then sets file name mappings defined by those entries. +func (g *Generator) CommandLineParameters(parameter string) { + g.Param = make(map[string]string) + for _, p := range strings.Split(parameter, ",") { + if i := strings.Index(p, "="); i < 0 { + g.Param[p] = "" + } else { + g.Param[p[0:i]] = p[i+1:] + } + } + + g.ImportMap = make(map[string]string) + pluginList := "none" // Default list of plugin names to enable (empty means all). + for k, v := range g.Param { + switch k { + case "import_prefix": + g.ImportPrefix = v + case "import_path": + g.PackageImportPath = v + case "plugins": + pluginList = v + default: + if len(k) > 0 && k[0] == 'M' { + g.ImportMap[k[1:]] = v + } + } + } + + if pluginList != "" { + // Amend the set of plugins. + enabled := make(map[string]bool) + for _, name := range strings.Split(pluginList, "+") { + enabled[name] = true + } + var nplugins []Plugin + for _, p := range plugins { + if enabled[p.Name()] { + nplugins = append(nplugins, p) + } + } + plugins = nplugins + } +} + +// DefaultPackageName returns the package name printed for the object. +// If its file is in a different package, it returns the package name we're using for this file, plus ".". +// Otherwise it returns the empty string. +func (g *Generator) DefaultPackageName(obj Object) string { + pkg := obj.PackageName() + if pkg == g.packageName { + return "" + } + return pkg + "." +} + +// For each input file, the unique package name to use, underscored. +var uniquePackageName = make(map[*descriptor.FileDescriptorProto]string) + +// Package names already registered. Key is the name from the .proto file; +// value is the name that appears in the generated code. +var pkgNamesInUse = make(map[string]bool) + +// Create and remember a guaranteed unique package name for this file descriptor. +// Pkg is the candidate name. If f is nil, it's a builtin package like "proto" and +// has no file descriptor. +func RegisterUniquePackageName(pkg string, f *FileDescriptor) string { + // Convert dots to underscores before finding a unique alias. + pkg = strings.Map(badToUnderscore, pkg) + + for i, orig := 1, pkg; pkgNamesInUse[pkg]; i++ { + // It's a duplicate; must rename. + pkg = orig + strconv.Itoa(i) + } + // Install it. + pkgNamesInUse[pkg] = true + if f != nil { + uniquePackageName[f.FileDescriptorProto] = pkg + } + return pkg +} + +var isGoKeyword = map[string]bool{ + "break": true, + "case": true, + "chan": true, + "const": true, + "continue": true, + "default": true, + "else": true, + "defer": true, + "fallthrough": true, + "for": true, + "func": true, + "go": true, + "goto": true, + "if": true, + "import": true, + "interface": true, + "map": true, + "package": true, + "range": true, + "return": true, + "select": true, + "struct": true, + "switch": true, + "type": true, + "var": true, +} + +// defaultGoPackage returns the package name to use, +// derived from the import path of the package we're building code for. +func (g *Generator) defaultGoPackage() string { + p := g.PackageImportPath + if i := strings.LastIndex(p, "/"); i >= 0 { + p = p[i+1:] + } + if p == "" { + return "" + } + + p = strings.Map(badToUnderscore, p) + // Identifier must not be keyword: insert _. + if isGoKeyword[p] { + p = "_" + p + } + // Identifier must not begin with digit: insert _. + if r, _ := utf8.DecodeRuneInString(p); unicode.IsDigit(r) { + p = "_" + p + } + return p +} + +// SetPackageNames sets the package name for this run. +// The package name must agree across all files being generated. +// It also defines unique package names for all imported files. +func (g *Generator) SetPackageNames() { + // Register the name for this package. It will be the first name + // registered so is guaranteed to be unmodified. + pkg, explicit := g.genFiles[0].goPackageName() + + // Check all files for an explicit go_package option. + for _, f := range g.genFiles { + thisPkg, thisExplicit := f.goPackageName() + if thisExplicit { + if !explicit { + // Let this file's go_package option serve for all input files. + pkg, explicit = thisPkg, true + } else if thisPkg != pkg { + g.Fail("inconsistent package names:", thisPkg, pkg) + } + } + } + + // If we don't have an explicit go_package option but we have an + // import path, use that. + if !explicit { + p := g.defaultGoPackage() + if p != "" { + pkg, explicit = p, true + } + } + + // If there was no go_package and no import path to use, + // double-check that all the inputs have the same implicit + // Go package name. + if !explicit { + for _, f := range g.genFiles { + thisPkg, _ := f.goPackageName() + if thisPkg != pkg { + g.Fail("inconsistent package names:", thisPkg, pkg) + } + } + } + + g.packageName = RegisterUniquePackageName(pkg, g.genFiles[0]) + + // Register the support package names. They might collide with the + // name of a package we import. + g.Pkg = map[string]string{ + "fmt": RegisterUniquePackageName("fmt", nil), + "math": RegisterUniquePackageName("math", nil), + "proto": RegisterUniquePackageName("proto", nil), + } + +AllFiles: + for _, f := range g.allFiles { + for _, genf := range g.genFiles { + if f == genf { + // In this package already. + uniquePackageName[f.FileDescriptorProto] = g.packageName + continue AllFiles + } + } + // The file is a dependency, so we want to ignore its go_package option + // because that is only relevant for its specific generated output. + pkg := f.GetPackage() + if pkg == "" { + pkg = baseName(*f.Name) + } + RegisterUniquePackageName(pkg, f) + } +} + +// WrapTypes walks the incoming data, wrapping DescriptorProtos, EnumDescriptorProtos +// and FileDescriptorProtos into file-referenced objects within the Generator. +// It also creates the list of files to generate and so should be called before GenerateAllFiles. +func (g *Generator) WrapTypes() { + g.allFiles = make([]*FileDescriptor, 0, len(g.Request.ProtoFile)) + g.allFilesByName = make(map[string]*FileDescriptor, len(g.allFiles)) + for _, f := range g.Request.ProtoFile { + // We must wrap the descriptors before we wrap the enums + descs := wrapDescriptors(f) + g.buildNestedDescriptors(descs) + enums := wrapEnumDescriptors(f, descs) + g.buildNestedEnums(descs, enums) + exts := wrapExtensions(f) + fd := &FileDescriptor{ + FileDescriptorProto: f, + desc: descs, + enum: enums, + ext: exts, + exported: make(map[Object][]symbol), + proto3: fileIsProto3(f), + } + extractComments(fd) + g.allFiles = append(g.allFiles, fd) + g.allFilesByName[f.GetName()] = fd + } + for _, fd := range g.allFiles { + fd.imp = wrapImported(fd.FileDescriptorProto, g) + } + + g.genFiles = make([]*FileDescriptor, 0, len(g.Request.FileToGenerate)) + for _, fileName := range g.Request.FileToGenerate { + fd := g.allFilesByName[fileName] + if fd == nil { + g.Fail("could not find file named", fileName) + } + fd.index = len(g.genFiles) + g.genFiles = append(g.genFiles, fd) + } +} + +// Scan the descriptors in this file. For each one, build the slice of nested descriptors +func (g *Generator) buildNestedDescriptors(descs []*Descriptor) { + for _, desc := range descs { + if len(desc.NestedType) != 0 { + for _, nest := range descs { + if nest.parent == desc { + desc.nested = append(desc.nested, nest) + } + } + if len(desc.nested) != len(desc.NestedType) { + g.Fail("internal error: nesting failure for", desc.GetName()) + } + } + } +} + +func (g *Generator) buildNestedEnums(descs []*Descriptor, enums []*EnumDescriptor) { + for _, desc := range descs { + if len(desc.EnumType) != 0 { + for _, enum := range enums { + if enum.parent == desc { + desc.enums = append(desc.enums, enum) + } + } + if len(desc.enums) != len(desc.EnumType) { + g.Fail("internal error: enum nesting failure for", desc.GetName()) + } + } + } +} + +// Construct the Descriptor +func newDescriptor(desc *descriptor.DescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) *Descriptor { + d := &Descriptor{ + common: common{file}, + DescriptorProto: desc, + parent: parent, + index: index, + } + if parent == nil { + d.path = fmt.Sprintf("%d,%d", messagePath, index) + } else { + d.path = fmt.Sprintf("%s,%d,%d", parent.path, messageMessagePath, index) + } + + // The only way to distinguish a group from a message is whether + // the containing message has a TYPE_GROUP field that matches. + if parent != nil { + parts := d.TypeName() + if file.Package != nil { + parts = append([]string{*file.Package}, parts...) + } + exp := "." + strings.Join(parts, ".") + for _, field := range parent.Field { + if field.GetType() == descriptor.FieldDescriptorProto_TYPE_GROUP && field.GetTypeName() == exp { + d.group = true + break + } + } + } + + for _, field := range desc.Extension { + d.ext = append(d.ext, &ExtensionDescriptor{common{file}, field, d}) + } + + return d +} + +// Return a slice of all the Descriptors defined within this file +func wrapDescriptors(file *descriptor.FileDescriptorProto) []*Descriptor { + sl := make([]*Descriptor, 0, len(file.MessageType)+10) + for i, desc := range file.MessageType { + sl = wrapThisDescriptor(sl, desc, nil, file, i) + } + return sl +} + +// Wrap this Descriptor, recursively +func wrapThisDescriptor(sl []*Descriptor, desc *descriptor.DescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) []*Descriptor { + sl = append(sl, newDescriptor(desc, parent, file, index)) + me := sl[len(sl)-1] + for i, nested := range desc.NestedType { + sl = wrapThisDescriptor(sl, nested, me, file, i) + } + return sl +} + +// Construct the EnumDescriptor +func newEnumDescriptor(desc *descriptor.EnumDescriptorProto, parent *Descriptor, file *descriptor.FileDescriptorProto, index int) *EnumDescriptor { + ed := &EnumDescriptor{ + common: common{file}, + EnumDescriptorProto: desc, + parent: parent, + index: index, + } + if parent == nil { + ed.path = fmt.Sprintf("%d,%d", enumPath, index) + } else { + ed.path = fmt.Sprintf("%s,%d,%d", parent.path, messageEnumPath, index) + } + return ed +} + +// Return a slice of all the EnumDescriptors defined within this file +func wrapEnumDescriptors(file *descriptor.FileDescriptorProto, descs []*Descriptor) []*EnumDescriptor { + sl := make([]*EnumDescriptor, 0, len(file.EnumType)+10) + // Top-level enums. + for i, enum := range file.EnumType { + sl = append(sl, newEnumDescriptor(enum, nil, file, i)) + } + // Enums within messages. Enums within embedded messages appear in the outer-most message. + for _, nested := range descs { + for i, enum := range nested.EnumType { + sl = append(sl, newEnumDescriptor(enum, nested, file, i)) + } + } + return sl +} + +// Return a slice of all the top-level ExtensionDescriptors defined within this file. +func wrapExtensions(file *descriptor.FileDescriptorProto) []*ExtensionDescriptor { + var sl []*ExtensionDescriptor + for _, field := range file.Extension { + sl = append(sl, &ExtensionDescriptor{common{file}, field, nil}) + } + return sl +} + +// Return a slice of all the types that are publicly imported into this file. +func wrapImported(file *descriptor.FileDescriptorProto, g *Generator) (sl []*ImportedDescriptor) { + for _, index := range file.PublicDependency { + df := g.fileByName(file.Dependency[index]) + for _, d := range df.desc { + if d.GetOptions().GetMapEntry() { + continue + } + sl = append(sl, &ImportedDescriptor{common{file}, d}) + } + for _, e := range df.enum { + sl = append(sl, &ImportedDescriptor{common{file}, e}) + } + for _, ext := range df.ext { + sl = append(sl, &ImportedDescriptor{common{file}, ext}) + } + } + return +} + +func extractComments(file *FileDescriptor) { + file.comments = make(map[string]*descriptor.SourceCodeInfo_Location) + for _, loc := range file.GetSourceCodeInfo().GetLocation() { + if loc.LeadingComments == nil { + continue + } + var p []string + for _, n := range loc.Path { + p = append(p, strconv.Itoa(int(n))) + } + file.comments[strings.Join(p, ",")] = loc + } +} + +// BuildTypeNameMap builds the map from fully qualified type names to objects. +// The key names for the map come from the input data, which puts a period at the beginning. +// It should be called after SetPackageNames and before GenerateAllFiles. +func (g *Generator) BuildTypeNameMap() { + g.typeNameToObject = make(map[string]Object) + for _, f := range g.allFiles { + // The names in this loop are defined by the proto world, not us, so the + // package name may be empty. If so, the dotted package name of X will + // be ".X"; otherwise it will be ".pkg.X". + dottedPkg := "." + f.GetPackage() + if dottedPkg != "." { + dottedPkg += "." + } + for _, enum := range f.enum { + name := dottedPkg + dottedSlice(enum.TypeName()) + g.typeNameToObject[name] = enum + } + for _, desc := range f.desc { + name := dottedPkg + dottedSlice(desc.TypeName()) + g.typeNameToObject[name] = desc + } + } +} + +// ObjectNamed, given a fully-qualified input type name as it appears in the input data, +// returns the descriptor for the message or enum with that name. +func (g *Generator) ObjectNamed(typeName string) Object { + o, ok := g.typeNameToObject[typeName] + if !ok { + g.Fail("can't find object with type", typeName) + } + + // If the file of this object isn't a direct dependency of the current file, + // or in the current file, then this object has been publicly imported into + // a dependency of the current file. + // We should return the ImportedDescriptor object for it instead. + direct := *o.File().Name == *g.file.Name + if !direct { + for _, dep := range g.file.Dependency { + if *g.fileByName(dep).Name == *o.File().Name { + direct = true + break + } + } + } + if !direct { + found := false + Loop: + for _, dep := range g.file.Dependency { + df := g.fileByName(*g.fileByName(dep).Name) + for _, td := range df.imp { + if td.o == o { + // Found it! + o = td + found = true + break Loop + } + } + } + if !found { + log.Printf("protoc-gen-go: WARNING: failed finding publicly imported dependency for %v, used in %v", typeName, *g.file.Name) + } + } + + return o +} + +// P prints the arguments to the generated output. It handles strings and int32s, plus +// handling indirections because they may be *string, etc. +func (g *Generator) P(str ...interface{}) { + if !g.writeOutput { + return + } + g.WriteString(g.indent) + for _, v := range str { + switch s := v.(type) { + case string: + g.WriteString(s) + case *string: + g.WriteString(*s) + case bool: + fmt.Fprintf(g, "%t", s) + case *bool: + fmt.Fprintf(g, "%t", *s) + case int: + fmt.Fprintf(g, "%d", s) + case *int32: + fmt.Fprintf(g, "%d", *s) + case *int64: + fmt.Fprintf(g, "%d", *s) + case float64: + fmt.Fprintf(g, "%g", s) + case *float64: + fmt.Fprintf(g, "%g", *s) + default: + g.Fail(fmt.Sprintf("unknown type in printer: %T", v)) + } + } + g.WriteByte('\n') +} + +// addInitf stores the given statement to be printed inside the file's init function. +// The statement is given as a format specifier and arguments. +func (g *Generator) addInitf(stmt string, a ...interface{}) { + g.init = append(g.init, fmt.Sprintf(stmt, a...)) +} + +// In Indents the output one tab stop. +func (g *Generator) In() { g.indent += "\t" } + +// Out unindents the output one tab stop. +func (g *Generator) Out() { + if len(g.indent) > 0 { + g.indent = g.indent[1:] + } +} + +// GenerateAllFiles generates the output for all the files we're outputting. +func (g *Generator) GenerateAllFiles() { + // Initialize the plugins + for _, p := range plugins { + p.Init(g) + } + // Generate the output. The generator runs for every file, even the files + // that we don't generate output for, so that we can collate the full list + // of exported symbols to support public imports. + genFileMap := make(map[*FileDescriptor]bool, len(g.genFiles)) + for _, file := range g.genFiles { + genFileMap[file] = true + } + for _, file := range g.allFiles { + g.Reset() + g.writeOutput = genFileMap[file] + g.generate(file) + if !g.writeOutput { + continue + } + g.Response.File = append(g.Response.File, &plugin.CodeGeneratorResponse_File{ + Name: proto.String(file.goFileName()), + Content: proto.String(g.String()), + }) + } +} + +// Run all the plugins associated with the file. +func (g *Generator) runPlugins(file *FileDescriptor) { + for _, p := range plugins { + p.Generate(file) + } +} + +// FileOf return the FileDescriptor for this FileDescriptorProto. +func (g *Generator) FileOf(fd *descriptor.FileDescriptorProto) *FileDescriptor { + for _, file := range g.allFiles { + if file.FileDescriptorProto == fd { + return file + } + } + g.Fail("could not find file in table:", fd.GetName()) + return nil +} + +// Fill the response protocol buffer with the generated output for all the files we're +// supposed to generate. +func (g *Generator) generate(file *FileDescriptor) { + g.file = g.FileOf(file.FileDescriptorProto) + g.usedPackages = make(map[string]bool) + + if g.file.index == 0 { + // For one file in the package, assert version compatibility. + g.P("// This is a compile-time assertion to ensure that this generated file") + g.P("// is compatible with the proto package it is being compiled against.") + g.P("// A compilation error at this line likely means your copy of the") + g.P("// proto package needs to be updated.") + g.P("const _ = ", g.Pkg["proto"], ".ProtoPackageIsVersion", generatedCodeVersion, " // please upgrade the proto package") + g.P() + } + + for _, td := range g.file.imp { + g.generateImported(td) + } + for _, enum := range g.file.enum { + g.generateEnum(enum) + } + for _, desc := range g.file.desc { + // Don't generate virtual messages for maps. + if desc.GetOptions().GetMapEntry() { + continue + } + g.generateMessage(desc) + } + for _, ext := range g.file.ext { + g.generateExtension(ext) + } + g.generateInitFunction() + + // Run the plugins before the imports so we know which imports are necessary. + g.runPlugins(file) + + g.generateFileDescriptor(file) + + // Generate header and imports last, though they appear first in the output. + rem := g.Buffer + g.Buffer = new(bytes.Buffer) + g.generateHeader() + g.generateImports() + if !g.writeOutput { + return + } + g.Write(rem.Bytes()) + + // Reformat generated code. + fset := token.NewFileSet() + raw := g.Bytes() + ast, err := parser.ParseFile(fset, "", g, parser.ParseComments) + if err != nil { + // Print out the bad code with line numbers. + // This should never happen in practice, but it can while changing generated code, + // so consider this a debugging aid. + var src bytes.Buffer + s := bufio.NewScanner(bytes.NewReader(raw)) + for line := 1; s.Scan(); line++ { + fmt.Fprintf(&src, "%5d\t%s\n", line, s.Bytes()) + } + g.Fail("bad Go source code was generated:", err.Error(), "\n"+src.String()) + } + g.Reset() + err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(g, fset, ast) + if err != nil { + g.Fail("generated Go source code could not be reformatted:", err.Error()) + } +} + +// Generate the header, including package definition +func (g *Generator) generateHeader() { + g.P("// Code generated by protoc-gen-go.") + g.P("// source: ", g.file.Name) + g.P("// DO NOT EDIT!") + g.P() + + name := g.file.PackageName() + + if g.file.index == 0 { + // Generate package docs for the first file in the package. + g.P("/*") + g.P("Package ", name, " is a generated protocol buffer package.") + g.P() + if loc, ok := g.file.comments[strconv.Itoa(packagePath)]; ok { + // not using g.PrintComments because this is a /* */ comment block. + text := strings.TrimSuffix(loc.GetLeadingComments(), "\n") + for _, line := range strings.Split(text, "\n") { + line = strings.TrimPrefix(line, " ") + // ensure we don't escape from the block comment + line = strings.Replace(line, "*/", "* /", -1) + g.P(line) + } + g.P() + } + var topMsgs []string + g.P("It is generated from these files:") + for _, f := range g.genFiles { + g.P("\t", f.Name) + for _, msg := range f.desc { + if msg.parent != nil { + continue + } + topMsgs = append(topMsgs, CamelCaseSlice(msg.TypeName())) + } + } + g.P() + g.P("It has these top-level messages:") + for _, msg := range topMsgs { + g.P("\t", msg) + } + g.P("*/") + } + + g.P("package ", name) + g.P() +} + +// PrintComments prints any comments from the source .proto file. +// The path is a comma-separated list of integers. +// It returns an indication of whether any comments were printed. +// See descriptor.proto for its format. +func (g *Generator) PrintComments(path string) bool { + if !g.writeOutput { + return false + } + if loc, ok := g.file.comments[path]; ok { + text := strings.TrimSuffix(loc.GetLeadingComments(), "\n") + for _, line := range strings.Split(text, "\n") { + g.P("// ", strings.TrimPrefix(line, " ")) + } + return true + } + return false +} + +func (g *Generator) fileByName(filename string) *FileDescriptor { + return g.allFilesByName[filename] +} + +// weak returns whether the ith import of the current file is a weak import. +func (g *Generator) weak(i int32) bool { + for _, j := range g.file.WeakDependency { + if j == i { + return true + } + } + return false +} + +// Generate the imports +func (g *Generator) generateImports() { + // We almost always need a proto import. Rather than computing when we + // do, which is tricky when there's a plugin, just import it and + // reference it later. The same argument applies to the fmt and math packages. + g.P("import " + g.Pkg["proto"] + " " + strconv.Quote(g.ImportPrefix+"github.com/golang/protobuf/proto")) + g.P("import " + g.Pkg["fmt"] + ` "fmt"`) + g.P("import " + g.Pkg["math"] + ` "math"`) + for i, s := range g.file.Dependency { + fd := g.fileByName(s) + // Do not import our own package. + if fd.PackageName() == g.packageName { + continue + } + filename := fd.goFileName() + // By default, import path is the dirname of the Go filename. + importPath := path.Dir(filename) + if substitution, ok := g.ImportMap[s]; ok { + importPath = substitution + } + importPath = g.ImportPrefix + importPath + // Skip weak imports. + if g.weak(int32(i)) { + g.P("// skipping weak import ", fd.PackageName(), " ", strconv.Quote(importPath)) + continue + } + // We need to import all the dependencies, even if we don't reference them, + // because other code and tools depend on having the full transitive closure + // of protocol buffer types in the binary. + pname := fd.PackageName() + if _, ok := g.usedPackages[pname]; !ok { + pname = "_" + } + g.P("import ", pname, " ", strconv.Quote(importPath)) + } + g.P() + // TODO: may need to worry about uniqueness across plugins + for _, p := range plugins { + p.GenerateImports(g.file) + g.P() + } + g.P("// Reference imports to suppress errors if they are not otherwise used.") + g.P("var _ = ", g.Pkg["proto"], ".Marshal") + g.P("var _ = ", g.Pkg["fmt"], ".Errorf") + g.P("var _ = ", g.Pkg["math"], ".Inf") + g.P() +} + +func (g *Generator) generateImported(id *ImportedDescriptor) { + // Don't generate public import symbols for files that we are generating + // code for, since those symbols will already be in this package. + // We can't simply avoid creating the ImportedDescriptor objects, + // because g.genFiles isn't populated at that stage. + tn := id.TypeName() + sn := tn[len(tn)-1] + df := g.FileOf(id.o.File()) + filename := *df.Name + for _, fd := range g.genFiles { + if *fd.Name == filename { + g.P("// Ignoring public import of ", sn, " from ", filename) + g.P() + return + } + } + g.P("// ", sn, " from public import ", filename) + g.usedPackages[df.PackageName()] = true + + for _, sym := range df.exported[id.o] { + sym.GenerateAlias(g, df.PackageName()) + } + + g.P() +} + +// Generate the enum definitions for this EnumDescriptor. +func (g *Generator) generateEnum(enum *EnumDescriptor) { + // The full type name + typeName := enum.TypeName() + // The full type name, CamelCased. + ccTypeName := CamelCaseSlice(typeName) + ccPrefix := enum.prefix() + + g.PrintComments(enum.path) + g.P("type ", ccTypeName, " int32") + g.file.addExport(enum, enumSymbol{ccTypeName, enum.proto3()}) + g.P("const (") + g.In() + for i, e := range enum.Value { + g.PrintComments(fmt.Sprintf("%s,%d,%d", enum.path, enumValuePath, i)) + + name := ccPrefix + *e.Name + g.P(name, " ", ccTypeName, " = ", e.Number) + g.file.addExport(enum, constOrVarSymbol{name, "const", ccTypeName}) + } + g.Out() + g.P(")") + g.P("var ", ccTypeName, "_name = map[int32]string{") + g.In() + generated := make(map[int32]bool) // avoid duplicate values + for _, e := range enum.Value { + duplicate := "" + if _, present := generated[*e.Number]; present { + duplicate = "// Duplicate value: " + } + g.P(duplicate, e.Number, ": ", strconv.Quote(*e.Name), ",") + generated[*e.Number] = true + } + g.Out() + g.P("}") + g.P("var ", ccTypeName, "_value = map[string]int32{") + g.In() + for _, e := range enum.Value { + g.P(strconv.Quote(*e.Name), ": ", e.Number, ",") + } + g.Out() + g.P("}") + + if !enum.proto3() { + g.P("func (x ", ccTypeName, ") Enum() *", ccTypeName, " {") + g.In() + g.P("p := new(", ccTypeName, ")") + g.P("*p = x") + g.P("return p") + g.Out() + g.P("}") + } + + g.P("func (x ", ccTypeName, ") String() string {") + g.In() + g.P("return ", g.Pkg["proto"], ".EnumName(", ccTypeName, "_name, int32(x))") + g.Out() + g.P("}") + + if !enum.proto3() { + g.P("func (x *", ccTypeName, ") UnmarshalJSON(data []byte) error {") + g.In() + g.P("value, err := ", g.Pkg["proto"], ".UnmarshalJSONEnum(", ccTypeName, `_value, data, "`, ccTypeName, `")`) + g.P("if err != nil {") + g.In() + g.P("return err") + g.Out() + g.P("}") + g.P("*x = ", ccTypeName, "(value)") + g.P("return nil") + g.Out() + g.P("}") + } + + var indexes []string + for m := enum.parent; m != nil; m = m.parent { + // XXX: skip groups? + indexes = append([]string{strconv.Itoa(m.index)}, indexes...) + } + indexes = append(indexes, strconv.Itoa(enum.index)) + g.P("func (", ccTypeName, ") EnumDescriptor() ([]byte, []int) { return ", g.file.VarName(), ", []int{", strings.Join(indexes, ", "), "} }") + if enum.file.GetPackage() == "google.protobuf" && enum.GetName() == "NullValue" { + g.P("func (", ccTypeName, `) XXX_WellKnownType() string { return "`, enum.GetName(), `" }`) + } + + g.P() +} + +// The tag is a string like "varint,2,opt,name=fieldname,def=7" that +// identifies details of the field for the protocol buffer marshaling and unmarshaling +// code. The fields are: +// wire encoding +// protocol tag number +// opt,req,rep for optional, required, or repeated +// packed whether the encoding is "packed" (optional; repeated primitives only) +// name= the original declared name +// enum= the name of the enum type if it is an enum-typed field. +// proto3 if this field is in a proto3 message +// def= string representation of the default value, if any. +// The default value must be in a representation that can be used at run-time +// to generate the default value. Thus bools become 0 and 1, for instance. +func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptorProto, wiretype string) string { + optrepreq := "" + switch { + case isOptional(field): + optrepreq = "opt" + case isRequired(field): + optrepreq = "req" + case isRepeated(field): + optrepreq = "rep" + } + var defaultValue string + if dv := field.DefaultValue; dv != nil { // set means an explicit default + defaultValue = *dv + // Some types need tweaking. + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_BOOL: + if defaultValue == "true" { + defaultValue = "1" + } else { + defaultValue = "0" + } + case descriptor.FieldDescriptorProto_TYPE_STRING, + descriptor.FieldDescriptorProto_TYPE_BYTES: + // Nothing to do. Quoting is done for the whole tag. + case descriptor.FieldDescriptorProto_TYPE_ENUM: + // For enums we need to provide the integer constant. + obj := g.ObjectNamed(field.GetTypeName()) + if id, ok := obj.(*ImportedDescriptor); ok { + // It is an enum that was publicly imported. + // We need the underlying type. + obj = id.o + } + enum, ok := obj.(*EnumDescriptor) + if !ok { + log.Printf("obj is a %T", obj) + if id, ok := obj.(*ImportedDescriptor); ok { + log.Printf("id.o is a %T", id.o) + } + g.Fail("unknown enum type", CamelCaseSlice(obj.TypeName())) + } + defaultValue = enum.integerValueAsString(defaultValue) + } + defaultValue = ",def=" + defaultValue + } + enum := "" + if *field.Type == descriptor.FieldDescriptorProto_TYPE_ENUM { + // We avoid using obj.PackageName(), because we want to use the + // original (proto-world) package name. + obj := g.ObjectNamed(field.GetTypeName()) + if id, ok := obj.(*ImportedDescriptor); ok { + obj = id.o + } + enum = ",enum=" + if pkg := obj.File().GetPackage(); pkg != "" { + enum += pkg + "." + } + enum += CamelCaseSlice(obj.TypeName()) + } + packed := "" + if field.Options != nil && field.Options.GetPacked() { + packed = ",packed" + } + fieldName := field.GetName() + name := fieldName + if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP { + // We must use the type name for groups instead of + // the field name to preserve capitalization. + // type_name in FieldDescriptorProto is fully-qualified, + // but we only want the local part. + name = *field.TypeName + if i := strings.LastIndex(name, "."); i >= 0 { + name = name[i+1:] + } + } + if json := field.GetJsonName(); json != "" && json != name { + // TODO: escaping might be needed, in which case + // perhaps this should be in its own "json" tag. + name += ",json=" + json + } + name = ",name=" + name + if message.proto3() { + // We only need the extra tag for []byte fields; + // no need to add noise for the others. + if *field.Type == descriptor.FieldDescriptorProto_TYPE_BYTES { + name += ",proto3" + } + + } + oneof := "" + if field.OneofIndex != nil { + oneof = ",oneof" + } + return strconv.Quote(fmt.Sprintf("%s,%d,%s%s%s%s%s%s", + wiretype, + field.GetNumber(), + optrepreq, + packed, + name, + enum, + oneof, + defaultValue)) +} + +func needsStar(typ descriptor.FieldDescriptorProto_Type) bool { + switch typ { + case descriptor.FieldDescriptorProto_TYPE_GROUP: + return false + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + return false + case descriptor.FieldDescriptorProto_TYPE_BYTES: + return false + } + return true +} + +// TypeName is the printed name appropriate for an item. If the object is in the current file, +// TypeName drops the package name and underscores the rest. +// Otherwise the object is from another package; and the result is the underscored +// package name followed by the item name. +// The result always has an initial capital. +func (g *Generator) TypeName(obj Object) string { + return g.DefaultPackageName(obj) + CamelCaseSlice(obj.TypeName()) +} + +// TypeNameWithPackage is like TypeName, but always includes the package +// name even if the object is in our own package. +func (g *Generator) TypeNameWithPackage(obj Object) string { + return obj.PackageName() + CamelCaseSlice(obj.TypeName()) +} + +// GoType returns a string representing the type name, and the wire type +func (g *Generator) GoType(message *Descriptor, field *descriptor.FieldDescriptorProto) (typ string, wire string) { + // TODO: Options. + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE: + typ, wire = "float64", "fixed64" + case descriptor.FieldDescriptorProto_TYPE_FLOAT: + typ, wire = "float32", "fixed32" + case descriptor.FieldDescriptorProto_TYPE_INT64: + typ, wire = "int64", "varint" + case descriptor.FieldDescriptorProto_TYPE_UINT64: + typ, wire = "uint64", "varint" + case descriptor.FieldDescriptorProto_TYPE_INT32: + typ, wire = "int32", "varint" + case descriptor.FieldDescriptorProto_TYPE_UINT32: + typ, wire = "uint32", "varint" + case descriptor.FieldDescriptorProto_TYPE_FIXED64: + typ, wire = "uint64", "fixed64" + case descriptor.FieldDescriptorProto_TYPE_FIXED32: + typ, wire = "uint32", "fixed32" + case descriptor.FieldDescriptorProto_TYPE_BOOL: + typ, wire = "bool", "varint" + case descriptor.FieldDescriptorProto_TYPE_STRING: + typ, wire = "string", "bytes" + case descriptor.FieldDescriptorProto_TYPE_GROUP: + desc := g.ObjectNamed(field.GetTypeName()) + typ, wire = "*"+g.TypeName(desc), "group" + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + desc := g.ObjectNamed(field.GetTypeName()) + typ, wire = "*"+g.TypeName(desc), "bytes" + case descriptor.FieldDescriptorProto_TYPE_BYTES: + typ, wire = "[]byte", "bytes" + case descriptor.FieldDescriptorProto_TYPE_ENUM: + desc := g.ObjectNamed(field.GetTypeName()) + typ, wire = g.TypeName(desc), "varint" + case descriptor.FieldDescriptorProto_TYPE_SFIXED32: + typ, wire = "int32", "fixed32" + case descriptor.FieldDescriptorProto_TYPE_SFIXED64: + typ, wire = "int64", "fixed64" + case descriptor.FieldDescriptorProto_TYPE_SINT32: + typ, wire = "int32", "zigzag32" + case descriptor.FieldDescriptorProto_TYPE_SINT64: + typ, wire = "int64", "zigzag64" + default: + g.Fail("unknown type for", field.GetName()) + } + if isRepeated(field) { + typ = "[]" + typ + } else if message != nil && message.proto3() { + return + } else if field.OneofIndex != nil && message != nil { + return + } else if needsStar(*field.Type) { + typ = "*" + typ + } + return +} + +func (g *Generator) RecordTypeUse(t string) { + if obj, ok := g.typeNameToObject[t]; ok { + // Call ObjectNamed to get the true object to record the use. + obj = g.ObjectNamed(t) + g.usedPackages[obj.PackageName()] = true + } +} + +// Method names that may be generated. Fields with these names get an +// underscore appended. Any change to this set is a potential incompatible +// API change because it changes generated field names. +var methodNames = [...]string{ + "Reset", + "String", + "ProtoMessage", + "Marshal", + "Unmarshal", + "ExtensionRangeArray", + "ExtensionMap", + "Descriptor", +} + +// Names of messages in the `google.protobuf` package for which +// we will generate XXX_WellKnownType methods. +var wellKnownTypes = map[string]bool{ + "Any": true, + "Duration": true, + "Empty": true, + "Struct": true, + "Timestamp": true, + + "Value": true, + "ListValue": true, + "DoubleValue": true, + "FloatValue": true, + "Int64Value": true, + "UInt64Value": true, + "Int32Value": true, + "UInt32Value": true, + "BoolValue": true, + "StringValue": true, + "BytesValue": true, +} + +// Generate the type and default constant definitions for this Descriptor. +func (g *Generator) generateMessage(message *Descriptor) { + // The full type name + typeName := message.TypeName() + // The full type name, CamelCased. + ccTypeName := CamelCaseSlice(typeName) + + usedNames := make(map[string]bool) + for _, n := range methodNames { + usedNames[n] = true + } + fieldNames := make(map[*descriptor.FieldDescriptorProto]string) + fieldGetterNames := make(map[*descriptor.FieldDescriptorProto]string) + fieldTypes := make(map[*descriptor.FieldDescriptorProto]string) + mapFieldTypes := make(map[*descriptor.FieldDescriptorProto]string) + + oneofFieldName := make(map[int32]string) // indexed by oneof_index field of FieldDescriptorProto + oneofDisc := make(map[int32]string) // name of discriminator method + oneofTypeName := make(map[*descriptor.FieldDescriptorProto]string) // without star + oneofInsertPoints := make(map[int32]int) // oneof_index => offset of g.Buffer + + g.PrintComments(message.path) + g.P("type ", ccTypeName, " struct {") + g.In() + + // allocNames finds a conflict-free variation of the given strings, + // consistently mutating their suffixes. + // It returns the same number of strings. + allocNames := func(ns ...string) []string { + Loop: + for { + for _, n := range ns { + if usedNames[n] { + for i := range ns { + ns[i] += "_" + } + continue Loop + } + } + for _, n := range ns { + usedNames[n] = true + } + return ns + } + } + + for i, field := range message.Field { + // Allocate the getter and the field at the same time so name + // collisions create field/method consistent names. + // TODO: This allocation occurs based on the order of the fields + // in the proto file, meaning that a change in the field + // ordering can change generated Method/Field names. + base := CamelCase(*field.Name) + ns := allocNames(base, "Get"+base) + fieldName, fieldGetterName := ns[0], ns[1] + typename, wiretype := g.GoType(message, field) + jsonName := *field.Name + tag := fmt.Sprintf("protobuf:%s json:%q", g.goTag(message, field, wiretype), jsonName+",omitempty") + + fieldNames[field] = fieldName + fieldGetterNames[field] = fieldGetterName + + oneof := field.OneofIndex != nil + if oneof && oneofFieldName[*field.OneofIndex] == "" { + odp := message.OneofDecl[int(*field.OneofIndex)] + fname := allocNames(CamelCase(odp.GetName()))[0] + + // This is the first field of a oneof we haven't seen before. + // Generate the union field. + com := g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageOneofPath, *field.OneofIndex)) + if com { + g.P("//") + } + g.P("// Types that are valid to be assigned to ", fname, ":") + // Generate the rest of this comment later, + // when we've computed any disambiguation. + oneofInsertPoints[*field.OneofIndex] = g.Buffer.Len() + + dname := "is" + ccTypeName + "_" + fname + oneofFieldName[*field.OneofIndex] = fname + oneofDisc[*field.OneofIndex] = dname + tag := `protobuf_oneof:"` + odp.GetName() + `"` + g.P(fname, " ", dname, " `", tag, "`") + } + + if *field.Type == descriptor.FieldDescriptorProto_TYPE_MESSAGE { + desc := g.ObjectNamed(field.GetTypeName()) + if d, ok := desc.(*Descriptor); ok && d.GetOptions().GetMapEntry() { + // Figure out the Go types and tags for the key and value types. + keyField, valField := d.Field[0], d.Field[1] + keyType, keyWire := g.GoType(d, keyField) + valType, valWire := g.GoType(d, valField) + keyTag, valTag := g.goTag(d, keyField, keyWire), g.goTag(d, valField, valWire) + + // We don't use stars, except for message-typed values. + // Message and enum types are the only two possibly foreign types used in maps, + // so record their use. They are not permitted as map keys. + keyType = strings.TrimPrefix(keyType, "*") + switch *valField.Type { + case descriptor.FieldDescriptorProto_TYPE_ENUM: + valType = strings.TrimPrefix(valType, "*") + g.RecordTypeUse(valField.GetTypeName()) + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + g.RecordTypeUse(valField.GetTypeName()) + default: + valType = strings.TrimPrefix(valType, "*") + } + + typename = fmt.Sprintf("map[%s]%s", keyType, valType) + mapFieldTypes[field] = typename // record for the getter generation + + tag += fmt.Sprintf(" protobuf_key:%s protobuf_val:%s", keyTag, valTag) + } + } + + fieldTypes[field] = typename + + if oneof { + tname := ccTypeName + "_" + fieldName + // It is possible for this to collide with a message or enum + // nested in this message. Check for collisions. + for { + ok := true + for _, desc := range message.nested { + if CamelCaseSlice(desc.TypeName()) == tname { + ok = false + break + } + } + for _, enum := range message.enums { + if CamelCaseSlice(enum.TypeName()) == tname { + ok = false + break + } + } + if !ok { + tname += "_" + continue + } + break + } + + oneofTypeName[field] = tname + continue + } + + g.PrintComments(fmt.Sprintf("%s,%d,%d", message.path, messageFieldPath, i)) + g.P(fieldName, "\t", typename, "\t`", tag, "`") + g.RecordTypeUse(field.GetTypeName()) + } + if len(message.ExtensionRange) > 0 { + g.P(g.Pkg["proto"], ".XXX_InternalExtensions `json:\"-\"`") + } + if !message.proto3() { + g.P("XXX_unrecognized\t[]byte `json:\"-\"`") + } + g.Out() + g.P("}") + + // Update g.Buffer to list valid oneof types. + // We do this down here, after we've disambiguated the oneof type names. + // We go in reverse order of insertion point to avoid invalidating offsets. + for oi := int32(len(message.OneofDecl)); oi >= 0; oi-- { + ip := oneofInsertPoints[oi] + all := g.Buffer.Bytes() + rem := all[ip:] + g.Buffer = bytes.NewBuffer(all[:ip:ip]) // set cap so we don't scribble on rem + for _, field := range message.Field { + if field.OneofIndex == nil || *field.OneofIndex != oi { + continue + } + g.P("//\t*", oneofTypeName[field]) + } + g.Buffer.Write(rem) + } + + // Reset, String and ProtoMessage methods. + g.P("func (m *", ccTypeName, ") Reset() { *m = ", ccTypeName, "{} }") + g.P("func (m *", ccTypeName, ") String() string { return ", g.Pkg["proto"], ".CompactTextString(m) }") + g.P("func (*", ccTypeName, ") ProtoMessage() {}") + var indexes []string + for m := message; m != nil; m = m.parent { + indexes = append([]string{strconv.Itoa(m.index)}, indexes...) + } + g.P("func (*", ccTypeName, ") Descriptor() ([]byte, []int) { return ", g.file.VarName(), ", []int{", strings.Join(indexes, ", "), "} }") + // TODO: Revisit the decision to use a XXX_WellKnownType method + // if we change proto.MessageName to work with multiple equivalents. + if message.file.GetPackage() == "google.protobuf" && wellKnownTypes[message.GetName()] { + g.P("func (*", ccTypeName, `) XXX_WellKnownType() string { return "`, message.GetName(), `" }`) + } + + // Extension support methods + var hasExtensions, isMessageSet bool + if len(message.ExtensionRange) > 0 { + hasExtensions = true + // message_set_wire_format only makes sense when extensions are defined. + if opts := message.Options; opts != nil && opts.GetMessageSetWireFormat() { + isMessageSet = true + g.P() + g.P("func (m *", ccTypeName, ") Marshal() ([]byte, error) {") + g.In() + g.P("return ", g.Pkg["proto"], ".MarshalMessageSet(&m.XXX_InternalExtensions)") + g.Out() + g.P("}") + g.P("func (m *", ccTypeName, ") Unmarshal(buf []byte) error {") + g.In() + g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSet(buf, &m.XXX_InternalExtensions)") + g.Out() + g.P("}") + g.P("func (m *", ccTypeName, ") MarshalJSON() ([]byte, error) {") + g.In() + g.P("return ", g.Pkg["proto"], ".MarshalMessageSetJSON(&m.XXX_InternalExtensions)") + g.Out() + g.P("}") + g.P("func (m *", ccTypeName, ") UnmarshalJSON(buf []byte) error {") + g.In() + g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)") + g.Out() + g.P("}") + g.P("// ensure ", ccTypeName, " satisfies proto.Marshaler and proto.Unmarshaler") + g.P("var _ ", g.Pkg["proto"], ".Marshaler = (*", ccTypeName, ")(nil)") + g.P("var _ ", g.Pkg["proto"], ".Unmarshaler = (*", ccTypeName, ")(nil)") + } + + g.P() + g.P("var extRange_", ccTypeName, " = []", g.Pkg["proto"], ".ExtensionRange{") + g.In() + for _, r := range message.ExtensionRange { + end := fmt.Sprint(*r.End - 1) // make range inclusive on both ends + g.P("{", r.Start, ", ", end, "},") + } + g.Out() + g.P("}") + g.P("func (*", ccTypeName, ") ExtensionRangeArray() []", g.Pkg["proto"], ".ExtensionRange {") + g.In() + g.P("return extRange_", ccTypeName) + g.Out() + g.P("}") + } + + // Default constants + defNames := make(map[*descriptor.FieldDescriptorProto]string) + for _, field := range message.Field { + def := field.GetDefaultValue() + if def == "" { + continue + } + fieldname := "Default_" + ccTypeName + "_" + CamelCase(*field.Name) + defNames[field] = fieldname + typename, _ := g.GoType(message, field) + if typename[0] == '*' { + typename = typename[1:] + } + kind := "const " + switch { + case typename == "bool": + case typename == "string": + def = strconv.Quote(def) + case typename == "[]byte": + def = "[]byte(" + strconv.Quote(def) + ")" + kind = "var " + case def == "inf", def == "-inf", def == "nan": + // These names are known to, and defined by, the protocol language. + switch def { + case "inf": + def = "math.Inf(1)" + case "-inf": + def = "math.Inf(-1)" + case "nan": + def = "math.NaN()" + } + if *field.Type == descriptor.FieldDescriptorProto_TYPE_FLOAT { + def = "float32(" + def + ")" + } + kind = "var " + case *field.Type == descriptor.FieldDescriptorProto_TYPE_ENUM: + // Must be an enum. Need to construct the prefixed name. + obj := g.ObjectNamed(field.GetTypeName()) + var enum *EnumDescriptor + if id, ok := obj.(*ImportedDescriptor); ok { + // The enum type has been publicly imported. + enum, _ = id.o.(*EnumDescriptor) + } else { + enum, _ = obj.(*EnumDescriptor) + } + if enum == nil { + log.Printf("don't know how to generate constant for %s", fieldname) + continue + } + def = g.DefaultPackageName(obj) + enum.prefix() + def + } + g.P(kind, fieldname, " ", typename, " = ", def) + g.file.addExport(message, constOrVarSymbol{fieldname, kind, ""}) + } + g.P() + + // Oneof per-field types, discriminants and getters. + // + // Generate unexported named types for the discriminant interfaces. + // We shouldn't have to do this, but there was (~19 Aug 2015) a compiler/linker bug + // that was triggered by using anonymous interfaces here. + // TODO: Revisit this and consider reverting back to anonymous interfaces. + for oi := range message.OneofDecl { + dname := oneofDisc[int32(oi)] + g.P("type ", dname, " interface { ", dname, "() }") + } + g.P() + for _, field := range message.Field { + if field.OneofIndex == nil { + continue + } + _, wiretype := g.GoType(message, field) + tag := "protobuf:" + g.goTag(message, field, wiretype) + g.P("type ", oneofTypeName[field], " struct{ ", fieldNames[field], " ", fieldTypes[field], " `", tag, "` }") + g.RecordTypeUse(field.GetTypeName()) + } + g.P() + for _, field := range message.Field { + if field.OneofIndex == nil { + continue + } + g.P("func (*", oneofTypeName[field], ") ", oneofDisc[*field.OneofIndex], "() {}") + } + g.P() + for oi := range message.OneofDecl { + fname := oneofFieldName[int32(oi)] + g.P("func (m *", ccTypeName, ") Get", fname, "() ", oneofDisc[int32(oi)], " {") + g.P("if m != nil { return m.", fname, " }") + g.P("return nil") + g.P("}") + } + g.P() + + // Field getters + var getters []getterSymbol + for _, field := range message.Field { + oneof := field.OneofIndex != nil + + fname := fieldNames[field] + typename, _ := g.GoType(message, field) + if t, ok := mapFieldTypes[field]; ok { + typename = t + } + mname := fieldGetterNames[field] + star := "" + if needsStar(*field.Type) && typename[0] == '*' { + typename = typename[1:] + star = "*" + } + + // In proto3, only generate getters for message fields and oneof fields. + if message.proto3() && *field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE && !oneof { + continue + } + + // Only export getter symbols for basic types, + // and for messages and enums in the same package. + // Groups are not exported. + // Foreign types can't be hoisted through a public import because + // the importer may not already be importing the defining .proto. + // As an example, imagine we have an import tree like this: + // A.proto -> B.proto -> C.proto + // If A publicly imports B, we need to generate the getters from B in A's output, + // but if one such getter returns something from C then we cannot do that + // because A is not importing C already. + var getter, genType bool + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_GROUP: + getter = false + case descriptor.FieldDescriptorProto_TYPE_MESSAGE, descriptor.FieldDescriptorProto_TYPE_ENUM: + // Only export getter if its return type is in this package. + getter = g.ObjectNamed(field.GetTypeName()).PackageName() == message.PackageName() + genType = true + default: + getter = true + } + if getter { + getters = append(getters, getterSymbol{ + name: mname, + typ: typename, + typeName: field.GetTypeName(), + genType: genType, + }) + } + + g.P("func (m *", ccTypeName, ") "+mname+"() "+typename+" {") + g.In() + def, hasDef := defNames[field] + typeDefaultIsNil := false // whether this field type's default value is a literal nil unless specified + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_BYTES: + typeDefaultIsNil = !hasDef + case descriptor.FieldDescriptorProto_TYPE_GROUP, descriptor.FieldDescriptorProto_TYPE_MESSAGE: + typeDefaultIsNil = true + } + if isRepeated(field) { + typeDefaultIsNil = true + } + if typeDefaultIsNil && !oneof { + // A bytes field with no explicit default needs less generated code, + // as does a message or group field, or a repeated field. + g.P("if m != nil {") + g.In() + g.P("return m." + fname) + g.Out() + g.P("}") + g.P("return nil") + g.Out() + g.P("}") + g.P() + continue + } + if !oneof { + g.P("if m != nil && m." + fname + " != nil {") + g.In() + g.P("return " + star + "m." + fname) + g.Out() + g.P("}") + } else { + uname := oneofFieldName[*field.OneofIndex] + tname := oneofTypeName[field] + g.P("if x, ok := m.Get", uname, "().(*", tname, "); ok {") + g.P("return x.", fname) + g.P("}") + } + if hasDef { + if *field.Type != descriptor.FieldDescriptorProto_TYPE_BYTES { + g.P("return " + def) + } else { + // The default is a []byte var. + // Make a copy when returning it to be safe. + g.P("return append([]byte(nil), ", def, "...)") + } + } else { + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_BOOL: + g.P("return false") + case descriptor.FieldDescriptorProto_TYPE_STRING: + g.P(`return ""`) + case descriptor.FieldDescriptorProto_TYPE_GROUP, + descriptor.FieldDescriptorProto_TYPE_MESSAGE, + descriptor.FieldDescriptorProto_TYPE_BYTES: + // This is only possible for oneof fields. + g.P("return nil") + case descriptor.FieldDescriptorProto_TYPE_ENUM: + // The default default for an enum is the first value in the enum, + // not zero. + obj := g.ObjectNamed(field.GetTypeName()) + var enum *EnumDescriptor + if id, ok := obj.(*ImportedDescriptor); ok { + // The enum type has been publicly imported. + enum, _ = id.o.(*EnumDescriptor) + } else { + enum, _ = obj.(*EnumDescriptor) + } + if enum == nil { + log.Printf("don't know how to generate getter for %s", field.GetName()) + continue + } + if len(enum.Value) == 0 { + g.P("return 0 // empty enum") + } else { + first := enum.Value[0].GetName() + g.P("return ", g.DefaultPackageName(obj)+enum.prefix()+first) + } + default: + g.P("return 0") + } + } + g.Out() + g.P("}") + g.P() + } + + if !message.group { + ms := &messageSymbol{ + sym: ccTypeName, + hasExtensions: hasExtensions, + isMessageSet: isMessageSet, + hasOneof: len(message.OneofDecl) > 0, + getters: getters, + } + g.file.addExport(message, ms) + } + + // Oneof functions + if len(message.OneofDecl) > 0 { + fieldWire := make(map[*descriptor.FieldDescriptorProto]string) + + // method + enc := "_" + ccTypeName + "_OneofMarshaler" + dec := "_" + ccTypeName + "_OneofUnmarshaler" + size := "_" + ccTypeName + "_OneofSizer" + encSig := "(msg " + g.Pkg["proto"] + ".Message, b *" + g.Pkg["proto"] + ".Buffer) error" + decSig := "(msg " + g.Pkg["proto"] + ".Message, tag, wire int, b *" + g.Pkg["proto"] + ".Buffer) (bool, error)" + sizeSig := "(msg " + g.Pkg["proto"] + ".Message) (n int)" + + g.P("// XXX_OneofFuncs is for the internal use of the proto package.") + g.P("func (*", ccTypeName, ") XXX_OneofFuncs() (func", encSig, ", func", decSig, ", func", sizeSig, ", []interface{}) {") + g.P("return ", enc, ", ", dec, ", ", size, ", []interface{}{") + for _, field := range message.Field { + if field.OneofIndex == nil { + continue + } + g.P("(*", oneofTypeName[field], ")(nil),") + } + g.P("}") + g.P("}") + g.P() + + // marshaler + g.P("func ", enc, encSig, " {") + g.P("m := msg.(*", ccTypeName, ")") + for oi, odp := range message.OneofDecl { + g.P("// ", odp.GetName()) + fname := oneofFieldName[int32(oi)] + g.P("switch x := m.", fname, ".(type) {") + for _, field := range message.Field { + if field.OneofIndex == nil || int(*field.OneofIndex) != oi { + continue + } + g.P("case *", oneofTypeName[field], ":") + var wire, pre, post string + val := "x." + fieldNames[field] // overridden for TYPE_BOOL + canFail := false // only TYPE_MESSAGE and TYPE_GROUP can fail + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE: + wire = "WireFixed64" + pre = "b.EncodeFixed64(" + g.Pkg["math"] + ".Float64bits(" + post = "))" + case descriptor.FieldDescriptorProto_TYPE_FLOAT: + wire = "WireFixed32" + pre = "b.EncodeFixed32(uint64(" + g.Pkg["math"] + ".Float32bits(" + post = ")))" + case descriptor.FieldDescriptorProto_TYPE_INT64, + descriptor.FieldDescriptorProto_TYPE_UINT64: + wire = "WireVarint" + pre, post = "b.EncodeVarint(uint64(", "))" + case descriptor.FieldDescriptorProto_TYPE_INT32, + descriptor.FieldDescriptorProto_TYPE_UINT32, + descriptor.FieldDescriptorProto_TYPE_ENUM: + wire = "WireVarint" + pre, post = "b.EncodeVarint(uint64(", "))" + case descriptor.FieldDescriptorProto_TYPE_FIXED64, + descriptor.FieldDescriptorProto_TYPE_SFIXED64: + wire = "WireFixed64" + pre, post = "b.EncodeFixed64(uint64(", "))" + case descriptor.FieldDescriptorProto_TYPE_FIXED32, + descriptor.FieldDescriptorProto_TYPE_SFIXED32: + wire = "WireFixed32" + pre, post = "b.EncodeFixed32(uint64(", "))" + case descriptor.FieldDescriptorProto_TYPE_BOOL: + // bool needs special handling. + g.P("t := uint64(0)") + g.P("if ", val, " { t = 1 }") + val = "t" + wire = "WireVarint" + pre, post = "b.EncodeVarint(", ")" + case descriptor.FieldDescriptorProto_TYPE_STRING: + wire = "WireBytes" + pre, post = "b.EncodeStringBytes(", ")" + case descriptor.FieldDescriptorProto_TYPE_GROUP: + wire = "WireStartGroup" + pre, post = "b.Marshal(", ")" + canFail = true + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + wire = "WireBytes" + pre, post = "b.EncodeMessage(", ")" + canFail = true + case descriptor.FieldDescriptorProto_TYPE_BYTES: + wire = "WireBytes" + pre, post = "b.EncodeRawBytes(", ")" + case descriptor.FieldDescriptorProto_TYPE_SINT32: + wire = "WireVarint" + pre, post = "b.EncodeZigzag32(uint64(", "))" + case descriptor.FieldDescriptorProto_TYPE_SINT64: + wire = "WireVarint" + pre, post = "b.EncodeZigzag64(uint64(", "))" + default: + g.Fail("unhandled oneof field type ", field.Type.String()) + } + fieldWire[field] = wire + g.P("b.EncodeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".", wire, ")") + if !canFail { + g.P(pre, val, post) + } else { + g.P("if err := ", pre, val, post, "; err != nil {") + g.P("return err") + g.P("}") + } + if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP { + g.P("b.EncodeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".WireEndGroup)") + } + } + g.P("case nil:") + g.P("default: return ", g.Pkg["fmt"], `.Errorf("`, ccTypeName, ".", fname, ` has unexpected type %T", x)`) + g.P("}") + } + g.P("return nil") + g.P("}") + g.P() + + // unmarshaler + g.P("func ", dec, decSig, " {") + g.P("m := msg.(*", ccTypeName, ")") + g.P("switch tag {") + for _, field := range message.Field { + if field.OneofIndex == nil { + continue + } + odp := message.OneofDecl[int(*field.OneofIndex)] + g.P("case ", field.Number, ": // ", odp.GetName(), ".", *field.Name) + g.P("if wire != ", g.Pkg["proto"], ".", fieldWire[field], " {") + g.P("return true, ", g.Pkg["proto"], ".ErrInternalBadWireType") + g.P("}") + lhs := "x, err" // overridden for TYPE_MESSAGE and TYPE_GROUP + var dec, cast, cast2 string + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE: + dec, cast = "b.DecodeFixed64()", g.Pkg["math"]+".Float64frombits" + case descriptor.FieldDescriptorProto_TYPE_FLOAT: + dec, cast, cast2 = "b.DecodeFixed32()", "uint32", g.Pkg["math"]+".Float32frombits" + case descriptor.FieldDescriptorProto_TYPE_INT64: + dec, cast = "b.DecodeVarint()", "int64" + case descriptor.FieldDescriptorProto_TYPE_UINT64: + dec = "b.DecodeVarint()" + case descriptor.FieldDescriptorProto_TYPE_INT32: + dec, cast = "b.DecodeVarint()", "int32" + case descriptor.FieldDescriptorProto_TYPE_FIXED64: + dec = "b.DecodeFixed64()" + case descriptor.FieldDescriptorProto_TYPE_FIXED32: + dec, cast = "b.DecodeFixed32()", "uint32" + case descriptor.FieldDescriptorProto_TYPE_BOOL: + dec = "b.DecodeVarint()" + // handled specially below + case descriptor.FieldDescriptorProto_TYPE_STRING: + dec = "b.DecodeStringBytes()" + case descriptor.FieldDescriptorProto_TYPE_GROUP: + g.P("msg := new(", fieldTypes[field][1:], ")") // drop star + lhs = "err" + dec = "b.DecodeGroup(msg)" + // handled specially below + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + g.P("msg := new(", fieldTypes[field][1:], ")") // drop star + lhs = "err" + dec = "b.DecodeMessage(msg)" + // handled specially below + case descriptor.FieldDescriptorProto_TYPE_BYTES: + dec = "b.DecodeRawBytes(true)" + case descriptor.FieldDescriptorProto_TYPE_UINT32: + dec, cast = "b.DecodeVarint()", "uint32" + case descriptor.FieldDescriptorProto_TYPE_ENUM: + dec, cast = "b.DecodeVarint()", fieldTypes[field] + case descriptor.FieldDescriptorProto_TYPE_SFIXED32: + dec, cast = "b.DecodeFixed32()", "int32" + case descriptor.FieldDescriptorProto_TYPE_SFIXED64: + dec, cast = "b.DecodeFixed64()", "int64" + case descriptor.FieldDescriptorProto_TYPE_SINT32: + dec, cast = "b.DecodeZigzag32()", "int32" + case descriptor.FieldDescriptorProto_TYPE_SINT64: + dec, cast = "b.DecodeZigzag64()", "int64" + default: + g.Fail("unhandled oneof field type ", field.Type.String()) + } + g.P(lhs, " := ", dec) + val := "x" + if cast != "" { + val = cast + "(" + val + ")" + } + if cast2 != "" { + val = cast2 + "(" + val + ")" + } + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_BOOL: + val += " != 0" + case descriptor.FieldDescriptorProto_TYPE_GROUP, + descriptor.FieldDescriptorProto_TYPE_MESSAGE: + val = "msg" + } + g.P("m.", oneofFieldName[*field.OneofIndex], " = &", oneofTypeName[field], "{", val, "}") + g.P("return true, err") + } + g.P("default: return false, nil") + g.P("}") + g.P("}") + g.P() + + // sizer + g.P("func ", size, sizeSig, " {") + g.P("m := msg.(*", ccTypeName, ")") + for oi, odp := range message.OneofDecl { + g.P("// ", odp.GetName()) + fname := oneofFieldName[int32(oi)] + g.P("switch x := m.", fname, ".(type) {") + for _, field := range message.Field { + if field.OneofIndex == nil || int(*field.OneofIndex) != oi { + continue + } + g.P("case *", oneofTypeName[field], ":") + val := "x." + fieldNames[field] + var wire, varint, fixed string + switch *field.Type { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE: + wire = "WireFixed64" + fixed = "8" + case descriptor.FieldDescriptorProto_TYPE_FLOAT: + wire = "WireFixed32" + fixed = "4" + case descriptor.FieldDescriptorProto_TYPE_INT64, + descriptor.FieldDescriptorProto_TYPE_UINT64, + descriptor.FieldDescriptorProto_TYPE_INT32, + descriptor.FieldDescriptorProto_TYPE_UINT32, + descriptor.FieldDescriptorProto_TYPE_ENUM: + wire = "WireVarint" + varint = val + case descriptor.FieldDescriptorProto_TYPE_FIXED64, + descriptor.FieldDescriptorProto_TYPE_SFIXED64: + wire = "WireFixed64" + fixed = "8" + case descriptor.FieldDescriptorProto_TYPE_FIXED32, + descriptor.FieldDescriptorProto_TYPE_SFIXED32: + wire = "WireFixed32" + fixed = "4" + case descriptor.FieldDescriptorProto_TYPE_BOOL: + wire = "WireVarint" + fixed = "1" + case descriptor.FieldDescriptorProto_TYPE_STRING: + wire = "WireBytes" + fixed = "len(" + val + ")" + varint = fixed + case descriptor.FieldDescriptorProto_TYPE_GROUP: + wire = "WireStartGroup" + fixed = g.Pkg["proto"] + ".Size(" + val + ")" + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + wire = "WireBytes" + g.P("s := ", g.Pkg["proto"], ".Size(", val, ")") + fixed = "s" + varint = fixed + case descriptor.FieldDescriptorProto_TYPE_BYTES: + wire = "WireBytes" + fixed = "len(" + val + ")" + varint = fixed + case descriptor.FieldDescriptorProto_TYPE_SINT32: + wire = "WireVarint" + varint = "(uint32(" + val + ") << 1) ^ uint32((int32(" + val + ") >> 31))" + case descriptor.FieldDescriptorProto_TYPE_SINT64: + wire = "WireVarint" + varint = "uint64(" + val + " << 1) ^ uint64((int64(" + val + ") >> 63))" + default: + g.Fail("unhandled oneof field type ", field.Type.String()) + } + g.P("n += ", g.Pkg["proto"], ".SizeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".", wire, ")") + if varint != "" { + g.P("n += ", g.Pkg["proto"], ".SizeVarint(uint64(", varint, "))") + } + if fixed != "" { + g.P("n += ", fixed) + } + if *field.Type == descriptor.FieldDescriptorProto_TYPE_GROUP { + g.P("n += ", g.Pkg["proto"], ".SizeVarint(", field.Number, "<<3|", g.Pkg["proto"], ".WireEndGroup)") + } + } + g.P("case nil:") + g.P("default:") + g.P("panic(", g.Pkg["fmt"], ".Sprintf(\"proto: unexpected type %T in oneof\", x))") + g.P("}") + } + g.P("return n") + g.P("}") + g.P() + } + + for _, ext := range message.ext { + g.generateExtension(ext) + } + + fullName := strings.Join(message.TypeName(), ".") + if g.file.Package != nil { + fullName = *g.file.Package + "." + fullName + } + + g.addInitf("%s.RegisterType((*%s)(nil), %q)", g.Pkg["proto"], ccTypeName, fullName) +} + +func (g *Generator) generateExtension(ext *ExtensionDescriptor) { + ccTypeName := ext.DescName() + + extObj := g.ObjectNamed(*ext.Extendee) + var extDesc *Descriptor + if id, ok := extObj.(*ImportedDescriptor); ok { + // This is extending a publicly imported message. + // We need the underlying type for goTag. + extDesc = id.o.(*Descriptor) + } else { + extDesc = extObj.(*Descriptor) + } + extendedType := "*" + g.TypeName(extObj) // always use the original + field := ext.FieldDescriptorProto + fieldType, wireType := g.GoType(ext.parent, field) + tag := g.goTag(extDesc, field, wireType) + g.RecordTypeUse(*ext.Extendee) + if n := ext.FieldDescriptorProto.TypeName; n != nil { + // foreign extension type + g.RecordTypeUse(*n) + } + + typeName := ext.TypeName() + + // Special case for proto2 message sets: If this extension is extending + // proto2_bridge.MessageSet, and its final name component is "message_set_extension", + // then drop that last component. + mset := false + if extendedType == "*proto2_bridge.MessageSet" && typeName[len(typeName)-1] == "message_set_extension" { + typeName = typeName[:len(typeName)-1] + mset = true + } + + // For text formatting, the package must be exactly what the .proto file declares, + // ignoring overrides such as the go_package option, and with no dot/underscore mapping. + extName := strings.Join(typeName, ".") + if g.file.Package != nil { + extName = *g.file.Package + "." + extName + } + + g.P("var ", ccTypeName, " = &", g.Pkg["proto"], ".ExtensionDesc{") + g.In() + g.P("ExtendedType: (", extendedType, ")(nil),") + g.P("ExtensionType: (", fieldType, ")(nil),") + g.P("Field: ", field.Number, ",") + g.P(`Name: "`, extName, `",`) + g.P("Tag: ", tag, ",") + + g.Out() + g.P("}") + g.P() + + if mset { + // Generate a bit more code to register with message_set.go. + g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["proto"], fieldType, *field.Number, extName) + } + + g.file.addExport(ext, constOrVarSymbol{ccTypeName, "var", ""}) +} + +func (g *Generator) generateInitFunction() { + for _, enum := range g.file.enum { + g.generateEnumRegistration(enum) + } + for _, d := range g.file.desc { + for _, ext := range d.ext { + g.generateExtensionRegistration(ext) + } + } + for _, ext := range g.file.ext { + g.generateExtensionRegistration(ext) + } + if len(g.init) == 0 { + return + } + g.P("func init() {") + g.In() + for _, l := range g.init { + g.P(l) + } + g.Out() + g.P("}") + g.init = nil +} + +func (g *Generator) generateFileDescriptor(file *FileDescriptor) { + // Make a copy and trim source_code_info data. + // TODO: Trim this more when we know exactly what we need. + pb := proto.Clone(file.FileDescriptorProto).(*descriptor.FileDescriptorProto) + pb.SourceCodeInfo = nil + + b, err := proto.Marshal(pb) + if err != nil { + g.Fail(err.Error()) + } + + var buf bytes.Buffer + w, _ := gzip.NewWriterLevel(&buf, gzip.BestCompression) + w.Write(b) + w.Close() + b = buf.Bytes() + + v := file.VarName() + g.P() + g.P("func init() { ", g.Pkg["proto"], ".RegisterFile(", strconv.Quote(*file.Name), ", ", v, ") }") + g.P("var ", v, " = []byte{") + g.In() + g.P("// ", len(b), " bytes of a gzipped FileDescriptorProto") + for len(b) > 0 { + n := 16 + if n > len(b) { + n = len(b) + } + + s := "" + for _, c := range b[:n] { + s += fmt.Sprintf("0x%02x,", c) + } + g.P(s) + + b = b[n:] + } + g.Out() + g.P("}") +} + +func (g *Generator) generateEnumRegistration(enum *EnumDescriptor) { + // // We always print the full (proto-world) package name here. + pkg := enum.File().GetPackage() + if pkg != "" { + pkg += "." + } + // The full type name + typeName := enum.TypeName() + // The full type name, CamelCased. + ccTypeName := CamelCaseSlice(typeName) + g.addInitf("%s.RegisterEnum(%q, %[3]s_name, %[3]s_value)", g.Pkg["proto"], pkg+ccTypeName, ccTypeName) +} + +func (g *Generator) generateExtensionRegistration(ext *ExtensionDescriptor) { + g.addInitf("%s.RegisterExtension(%s)", g.Pkg["proto"], ext.DescName()) +} + +// And now lots of helper functions. + +// Is c an ASCII lower-case letter? +func isASCIILower(c byte) bool { + return 'a' <= c && c <= 'z' +} + +// Is c an ASCII digit? +func isASCIIDigit(c byte) bool { + return '0' <= c && c <= '9' +} + +// CamelCase returns the CamelCased name. +// If there is an interior underscore followed by a lower case letter, +// drop the underscore and convert the letter to upper case. +// There is a remote possibility of this rewrite causing a name collision, +// but it's so remote we're prepared to pretend it's nonexistent - since the +// C++ generator lowercases names, it's extremely unlikely to have two fields +// with different capitalizations. +// In short, _my_field_name_2 becomes XMyFieldName_2. +func CamelCase(s string) string { + if s == "" { + return "" + } + t := make([]byte, 0, 32) + i := 0 + if s[0] == '_' { + // Need a capital letter; drop the '_'. + t = append(t, 'X') + i++ + } + // Invariant: if the next letter is lower case, it must be converted + // to upper case. + // That is, we process a word at a time, where words are marked by _ or + // upper case letter. Digits are treated as words. + for ; i < len(s); i++ { + c := s[i] + if c == '_' && i+1 < len(s) && isASCIILower(s[i+1]) { + continue // Skip the underscore in s. + } + if isASCIIDigit(c) { + t = append(t, c) + continue + } + // Assume we have a letter now - if not, it's a bogus identifier. + // The next word is a sequence of characters that must start upper case. + if isASCIILower(c) { + c ^= ' ' // Make it a capital letter. + } + t = append(t, c) // Guaranteed not lower case. + // Accept lower case sequence that follows. + for i+1 < len(s) && isASCIILower(s[i+1]) { + i++ + t = append(t, s[i]) + } + } + return string(t) +} + +// CamelCaseSlice is like CamelCase, but the argument is a slice of strings to +// be joined with "_". +func CamelCaseSlice(elem []string) string { return CamelCase(strings.Join(elem, "_")) } + +// dottedSlice turns a sliced name into a dotted name. +func dottedSlice(elem []string) string { return strings.Join(elem, ".") } + +// Is this field optional? +func isOptional(field *descriptor.FieldDescriptorProto) bool { + return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_OPTIONAL +} + +// Is this field required? +func isRequired(field *descriptor.FieldDescriptorProto) bool { + return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_REQUIRED +} + +// Is this field repeated? +func isRepeated(field *descriptor.FieldDescriptorProto) bool { + return field.Label != nil && *field.Label == descriptor.FieldDescriptorProto_LABEL_REPEATED +} + +// badToUnderscore is the mapping function used to generate Go names from package names, +// which can be dotted in the input .proto file. It replaces non-identifier characters such as +// dot or dash with underscore. +func badToUnderscore(r rune) rune { + if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '_' { + return r + } + return '_' +} + +// baseName returns the last path element of the name, with the last dotted suffix removed. +func baseName(name string) string { + // First, find the last element + if i := strings.LastIndex(name, "/"); i >= 0 { + name = name[i+1:] + } + // Now drop the suffix + if i := strings.LastIndex(name, "."); i >= 0 { + name = name[0:i] + } + return name +} + +// The SourceCodeInfo message describes the location of elements of a parsed +// .proto file by way of a "path", which is a sequence of integers that +// describe the route from a FileDescriptorProto to the relevant submessage. +// The path alternates between a field number of a repeated field, and an index +// into that repeated field. The constants below define the field numbers that +// are used. +// +// See descriptor.proto for more information about this. +const ( + // tag numbers in FileDescriptorProto + packagePath = 2 // package + messagePath = 4 // message_type + enumPath = 5 // enum_type + // tag numbers in DescriptorProto + messageFieldPath = 2 // field + messageMessagePath = 3 // nested_type + messageEnumPath = 4 // enum_type + messageOneofPath = 8 // oneof_decl + // tag numbers in EnumDescriptorProto + enumValuePath = 2 // value +) diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/generator/name_test.go b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/name_test.go new file mode 100644 index 00000000..a5ebc853 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/name_test.go @@ -0,0 +1,85 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2013 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package generator + +import ( + "testing" + + "github.com/golang/protobuf/protoc-gen-go/descriptor" +) + +func TestCamelCase(t *testing.T) { + tests := []struct { + in, want string + }{ + {"one", "One"}, + {"one_two", "OneTwo"}, + {"_my_field_name_2", "XMyFieldName_2"}, + {"Something_Capped", "Something_Capped"}, + {"my_Name", "My_Name"}, + {"OneTwo", "OneTwo"}, + {"_", "X"}, + {"_a_", "XA_"}, + } + for _, tc := range tests { + if got := CamelCase(tc.in); got != tc.want { + t.Errorf("CamelCase(%q) = %q, want %q", tc.in, got, tc.want) + } + } +} + +func TestGoPackageOption(t *testing.T) { + tests := []struct { + in string + impPath, pkg string + ok bool + }{ + {"", "", "", false}, + {"foo", "", "foo", true}, + {"github.com/golang/bar", "github.com/golang/bar", "bar", true}, + {"github.com/golang/bar;baz", "github.com/golang/bar", "baz", true}, + } + for _, tc := range tests { + d := &FileDescriptor{ + FileDescriptorProto: &descriptor.FileDescriptorProto{ + Options: &descriptor.FileOptions{ + GoPackage: &tc.in, + }, + }, + } + impPath, pkg, ok := d.goPackageOption() + if impPath != tc.impPath || pkg != tc.pkg || ok != tc.ok { + t.Errorf("go_package = %q => (%q, %q, %t), want (%q, %q, %t)", tc.in, + impPath, pkg, ok, tc.impPath, tc.pkg, tc.ok) + } + } +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/grpc/grpc.go b/vendor/github.com/golang/protobuf/protoc-gen-go/grpc/grpc.go new file mode 100644 index 00000000..291cbdb4 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/grpc/grpc.go @@ -0,0 +1,462 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package grpc outputs gRPC service descriptions in Go code. +// It runs as a plugin for the Go protocol buffer compiler plugin. +// It is linked in to protoc-gen-go. +package grpc + +import ( + "fmt" + "path" + "strconv" + "strings" + + pb "github.com/golang/protobuf/protoc-gen-go/descriptor" + "github.com/golang/protobuf/protoc-gen-go/generator" +) + +// generatedCodeVersion indicates a version of the generated code. +// It is incremented whenever an incompatibility between the generated code and +// the grpc package is introduced; the generated code references +// a constant, grpc.SupportPackageIsVersionN (where N is generatedCodeVersion). +const generatedCodeVersion = 2 + +// Paths for packages used by code generated in this file, +// relative to the import_prefix of the generator.Generator. +const ( + contextPkgPath = "golang.org/x/net/context" + grpcPkgPath = "google.golang.org/grpc" +) + +func init() { + generator.RegisterPlugin(new(grpc)) +} + +// grpc is an implementation of the Go protocol buffer compiler's +// plugin architecture. It generates bindings for gRPC support. +type grpc struct { + gen *generator.Generator +} + +// Name returns the name of this plugin, "grpc". +func (g *grpc) Name() string { + return "grpc" +} + +// The names for packages imported in the generated code. +// They may vary from the final path component of the import path +// if the name is used by other packages. +var ( + contextPkg string + grpcPkg string +) + +// Init initializes the plugin. +func (g *grpc) Init(gen *generator.Generator) { + g.gen = gen + contextPkg = generator.RegisterUniquePackageName("context", nil) + grpcPkg = generator.RegisterUniquePackageName("grpc", nil) +} + +// Given a type name defined in a .proto, return its object. +// Also record that we're using it, to guarantee the associated import. +func (g *grpc) objectNamed(name string) generator.Object { + g.gen.RecordTypeUse(name) + return g.gen.ObjectNamed(name) +} + +// Given a type name defined in a .proto, return its name as we will print it. +func (g *grpc) typeName(str string) string { + return g.gen.TypeName(g.objectNamed(str)) +} + +// P forwards to g.gen.P. +func (g *grpc) P(args ...interface{}) { g.gen.P(args...) } + +// Generate generates code for the services in the given file. +func (g *grpc) Generate(file *generator.FileDescriptor) { + if len(file.FileDescriptorProto.Service) == 0 { + return + } + + g.P("// Reference imports to suppress errors if they are not otherwise used.") + g.P("var _ ", contextPkg, ".Context") + g.P("var _ ", grpcPkg, ".ClientConn") + g.P() + + // Assert version compatibility. + g.P("// This is a compile-time assertion to ensure that this generated file") + g.P("// is compatible with the grpc package it is being compiled against.") + g.P("const _ = ", grpcPkg, ".SupportPackageIsVersion", generatedCodeVersion) + g.P() + + for i, service := range file.FileDescriptorProto.Service { + g.generateService(file, service, i) + } +} + +// GenerateImports generates the import declaration for this file. +func (g *grpc) GenerateImports(file *generator.FileDescriptor) { + if len(file.FileDescriptorProto.Service) == 0 { + return + } + g.P("import (") + g.P(contextPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, contextPkgPath))) + g.P(grpcPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, grpcPkgPath))) + g.P(")") + g.P() +} + +// reservedClientName records whether a client name is reserved on the client side. +var reservedClientName = map[string]bool{ +// TODO: do we need any in gRPC? +} + +func unexport(s string) string { return strings.ToLower(s[:1]) + s[1:] } + +// generateService generates all the code for the named service. +func (g *grpc) generateService(file *generator.FileDescriptor, service *pb.ServiceDescriptorProto, index int) { + path := fmt.Sprintf("6,%d", index) // 6 means service. + + origServName := service.GetName() + fullServName := origServName + if pkg := file.GetPackage(); pkg != "" { + fullServName = pkg + "." + fullServName + } + servName := generator.CamelCase(origServName) + + g.P() + g.P("// Client API for ", servName, " service") + g.P() + + // Client interface. + g.P("type ", servName, "Client interface {") + for i, method := range service.Method { + g.gen.PrintComments(fmt.Sprintf("%s,2,%d", path, i)) // 2 means method in a service. + g.P(g.generateClientSignature(servName, method)) + } + g.P("}") + g.P() + + // Client structure. + g.P("type ", unexport(servName), "Client struct {") + g.P("cc *", grpcPkg, ".ClientConn") + g.P("}") + g.P() + + // NewClient factory. + g.P("func New", servName, "Client (cc *", grpcPkg, ".ClientConn) ", servName, "Client {") + g.P("return &", unexport(servName), "Client{cc}") + g.P("}") + g.P() + + var methodIndex, streamIndex int + serviceDescVar := "_" + servName + "_serviceDesc" + // Client method implementations. + for _, method := range service.Method { + var descExpr string + if !method.GetServerStreaming() && !method.GetClientStreaming() { + // Unary RPC method + descExpr = fmt.Sprintf("&%s.Methods[%d]", serviceDescVar, methodIndex) + methodIndex++ + } else { + // Streaming RPC method + descExpr = fmt.Sprintf("&%s.Streams[%d]", serviceDescVar, streamIndex) + streamIndex++ + } + g.generateClientMethod(servName, fullServName, serviceDescVar, method, descExpr) + } + + g.P("// Server API for ", servName, " service") + g.P() + + // Server interface. + serverType := servName + "Server" + g.P("type ", serverType, " interface {") + for i, method := range service.Method { + g.gen.PrintComments(fmt.Sprintf("%s,2,%d", path, i)) // 2 means method in a service. + g.P(g.generateServerSignature(servName, method)) + } + g.P("}") + g.P() + + // Server registration. + g.P("func Register", servName, "Server(s *", grpcPkg, ".Server, srv ", serverType, ") {") + g.P("s.RegisterService(&", serviceDescVar, `, srv)`) + g.P("}") + g.P() + + // Server handler implementations. + var handlerNames []string + for _, method := range service.Method { + hname := g.generateServerMethod(servName, fullServName, method) + handlerNames = append(handlerNames, hname) + } + + // Service descriptor. + g.P("var ", serviceDescVar, " = ", grpcPkg, ".ServiceDesc {") + g.P("ServiceName: ", strconv.Quote(fullServName), ",") + g.P("HandlerType: (*", serverType, ")(nil),") + g.P("Methods: []", grpcPkg, ".MethodDesc{") + for i, method := range service.Method { + if method.GetServerStreaming() || method.GetClientStreaming() { + continue + } + g.P("{") + g.P("MethodName: ", strconv.Quote(method.GetName()), ",") + g.P("Handler: ", handlerNames[i], ",") + g.P("},") + } + g.P("},") + g.P("Streams: []", grpcPkg, ".StreamDesc{") + for i, method := range service.Method { + if !method.GetServerStreaming() && !method.GetClientStreaming() { + continue + } + g.P("{") + g.P("StreamName: ", strconv.Quote(method.GetName()), ",") + g.P("Handler: ", handlerNames[i], ",") + if method.GetServerStreaming() { + g.P("ServerStreams: true,") + } + if method.GetClientStreaming() { + g.P("ClientStreams: true,") + } + g.P("},") + } + g.P("},") + g.P("}") + g.P() +} + +// generateClientSignature returns the client-side signature for a method. +func (g *grpc) generateClientSignature(servName string, method *pb.MethodDescriptorProto) string { + origMethName := method.GetName() + methName := generator.CamelCase(origMethName) + if reservedClientName[methName] { + methName += "_" + } + reqArg := ", in *" + g.typeName(method.GetInputType()) + if method.GetClientStreaming() { + reqArg = "" + } + respName := "*" + g.typeName(method.GetOutputType()) + if method.GetServerStreaming() || method.GetClientStreaming() { + respName = servName + "_" + generator.CamelCase(origMethName) + "Client" + } + return fmt.Sprintf("%s(ctx %s.Context%s, opts ...%s.CallOption) (%s, error)", methName, contextPkg, reqArg, grpcPkg, respName) +} + +func (g *grpc) generateClientMethod(servName, fullServName, serviceDescVar string, method *pb.MethodDescriptorProto, descExpr string) { + sname := fmt.Sprintf("/%s/%s", fullServName, method.GetName()) + methName := generator.CamelCase(method.GetName()) + inType := g.typeName(method.GetInputType()) + outType := g.typeName(method.GetOutputType()) + + g.P("func (c *", unexport(servName), "Client) ", g.generateClientSignature(servName, method), "{") + if !method.GetServerStreaming() && !method.GetClientStreaming() { + g.P("out := new(", outType, ")") + // TODO: Pass descExpr to Invoke. + g.P("err := ", grpcPkg, `.Invoke(ctx, "`, sname, `", in, out, c.cc, opts...)`) + g.P("if err != nil { return nil, err }") + g.P("return out, nil") + g.P("}") + g.P() + return + } + streamType := unexport(servName) + methName + "Client" + g.P("stream, err := ", grpcPkg, ".NewClientStream(ctx, ", descExpr, `, c.cc, "`, sname, `", opts...)`) + g.P("if err != nil { return nil, err }") + g.P("x := &", streamType, "{stream}") + if !method.GetClientStreaming() { + g.P("if err := x.ClientStream.SendMsg(in); err != nil { return nil, err }") + g.P("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }") + } + g.P("return x, nil") + g.P("}") + g.P() + + genSend := method.GetClientStreaming() + genRecv := method.GetServerStreaming() + genCloseAndRecv := !method.GetServerStreaming() + + // Stream auxiliary types and methods. + g.P("type ", servName, "_", methName, "Client interface {") + if genSend { + g.P("Send(*", inType, ") error") + } + if genRecv { + g.P("Recv() (*", outType, ", error)") + } + if genCloseAndRecv { + g.P("CloseAndRecv() (*", outType, ", error)") + } + g.P(grpcPkg, ".ClientStream") + g.P("}") + g.P() + + g.P("type ", streamType, " struct {") + g.P(grpcPkg, ".ClientStream") + g.P("}") + g.P() + + if genSend { + g.P("func (x *", streamType, ") Send(m *", inType, ") error {") + g.P("return x.ClientStream.SendMsg(m)") + g.P("}") + g.P() + } + if genRecv { + g.P("func (x *", streamType, ") Recv() (*", outType, ", error) {") + g.P("m := new(", outType, ")") + g.P("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }") + g.P("return m, nil") + g.P("}") + g.P() + } + if genCloseAndRecv { + g.P("func (x *", streamType, ") CloseAndRecv() (*", outType, ", error) {") + g.P("if err := x.ClientStream.CloseSend(); err != nil { return nil, err }") + g.P("m := new(", outType, ")") + g.P("if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }") + g.P("return m, nil") + g.P("}") + g.P() + } +} + +// generateServerSignature returns the server-side signature for a method. +func (g *grpc) generateServerSignature(servName string, method *pb.MethodDescriptorProto) string { + origMethName := method.GetName() + methName := generator.CamelCase(origMethName) + if reservedClientName[methName] { + methName += "_" + } + + var reqArgs []string + ret := "error" + if !method.GetServerStreaming() && !method.GetClientStreaming() { + reqArgs = append(reqArgs, contextPkg+".Context") + ret = "(*" + g.typeName(method.GetOutputType()) + ", error)" + } + if !method.GetClientStreaming() { + reqArgs = append(reqArgs, "*"+g.typeName(method.GetInputType())) + } + if method.GetServerStreaming() || method.GetClientStreaming() { + reqArgs = append(reqArgs, servName+"_"+generator.CamelCase(origMethName)+"Server") + } + + return methName + "(" + strings.Join(reqArgs, ", ") + ") " + ret +} + +func (g *grpc) generateServerMethod(servName, fullServName string, method *pb.MethodDescriptorProto) string { + methName := generator.CamelCase(method.GetName()) + hname := fmt.Sprintf("_%s_%s_Handler", servName, methName) + inType := g.typeName(method.GetInputType()) + outType := g.typeName(method.GetOutputType()) + + if !method.GetServerStreaming() && !method.GetClientStreaming() { + g.P("func ", hname, "(srv interface{}, ctx ", contextPkg, ".Context, dec func(interface{}) error, interceptor ", grpcPkg, ".UnaryServerInterceptor) (interface{}, error) {") + g.P("in := new(", inType, ")") + g.P("if err := dec(in); err != nil { return nil, err }") + g.P("if interceptor == nil { return srv.(", servName, "Server).", methName, "(ctx, in) }") + g.P("info := &", grpcPkg, ".UnaryServerInfo{") + g.P("Server: srv,") + g.P("FullMethod: ", strconv.Quote(fmt.Sprintf("/%s/%s", fullServName, methName)), ",") + g.P("}") + g.P("handler := func(ctx ", contextPkg, ".Context, req interface{}) (interface{}, error) {") + g.P("return srv.(", servName, "Server).", methName, "(ctx, req.(*", inType, "))") + g.P("}") + g.P("return interceptor(ctx, in, info, handler)") + g.P("}") + g.P() + return hname + } + streamType := unexport(servName) + methName + "Server" + g.P("func ", hname, "(srv interface{}, stream ", grpcPkg, ".ServerStream) error {") + if !method.GetClientStreaming() { + g.P("m := new(", inType, ")") + g.P("if err := stream.RecvMsg(m); err != nil { return err }") + g.P("return srv.(", servName, "Server).", methName, "(m, &", streamType, "{stream})") + } else { + g.P("return srv.(", servName, "Server).", methName, "(&", streamType, "{stream})") + } + g.P("}") + g.P() + + genSend := method.GetServerStreaming() + genSendAndClose := !method.GetServerStreaming() + genRecv := method.GetClientStreaming() + + // Stream auxiliary types and methods. + g.P("type ", servName, "_", methName, "Server interface {") + if genSend { + g.P("Send(*", outType, ") error") + } + if genSendAndClose { + g.P("SendAndClose(*", outType, ") error") + } + if genRecv { + g.P("Recv() (*", inType, ", error)") + } + g.P(grpcPkg, ".ServerStream") + g.P("}") + g.P() + + g.P("type ", streamType, " struct {") + g.P(grpcPkg, ".ServerStream") + g.P("}") + g.P() + + if genSend { + g.P("func (x *", streamType, ") Send(m *", outType, ") error {") + g.P("return x.ServerStream.SendMsg(m)") + g.P("}") + g.P() + } + if genSendAndClose { + g.P("func (x *", streamType, ") SendAndClose(m *", outType, ") error {") + g.P("return x.ServerStream.SendMsg(m)") + g.P("}") + g.P() + } + if genRecv { + g.P("func (x *", streamType, ") Recv() (*", inType, ", error) {") + g.P("m := new(", inType, ")") + g.P("if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err }") + g.P("return m, nil") + g.P("}") + g.P() + } + + return hname +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/link_grpc.go b/vendor/github.com/golang/protobuf/protoc-gen-go/link_grpc.go new file mode 100644 index 00000000..532a5500 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/link_grpc.go @@ -0,0 +1,34 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package main + +import _ "github.com/golang/protobuf/protoc-gen-go/grpc" diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/main.go b/vendor/github.com/golang/protobuf/protoc-gen-go/main.go new file mode 100644 index 00000000..8e2486de --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/main.go @@ -0,0 +1,98 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// protoc-gen-go is a plugin for the Google protocol buffer compiler to generate +// Go code. Run it by building this program and putting it in your path with +// the name +// protoc-gen-go +// That word 'go' at the end becomes part of the option string set for the +// protocol compiler, so once the protocol compiler (protoc) is installed +// you can run +// protoc --go_out=output_directory input_directory/file.proto +// to generate Go bindings for the protocol defined by file.proto. +// With that input, the output will be written to +// output_directory/file.pb.go +// +// The generated code is documented in the package comment for +// the library. +// +// See the README and documentation for protocol buffers to learn more: +// https://developers.google.com/protocol-buffers/ +package main + +import ( + "io/ioutil" + "os" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/protoc-gen-go/generator" +) + +func main() { + // Begin by allocating a generator. The request and response structures are stored there + // so we can do error handling easily - the response structure contains the field to + // report failure. + g := generator.New() + + data, err := ioutil.ReadAll(os.Stdin) + if err != nil { + g.Error(err, "reading input") + } + + if err := proto.Unmarshal(data, g.Request); err != nil { + g.Error(err, "parsing input proto") + } + + if len(g.Request.FileToGenerate) == 0 { + g.Fail("no files to generate") + } + + g.CommandLineParameters(g.Request.GetParameter()) + + // Create a wrapped version of the Descriptors and EnumDescriptors that + // point to the file that defines them. + g.WrapTypes() + + g.SetPackageNames() + g.BuildTypeNameMap() + + g.GenerateAllFiles() + + // Send back the results. + data, err = proto.Marshal(g.Response) + if err != nil { + g.Error(err, "failed to marshal output proto") + } + _, err = os.Stdout.Write(data) + if err != nil { + g.Error(err, "failed to write output proto") + } +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/Makefile new file mode 100644 index 00000000..eb41f20d --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/Makefile @@ -0,0 +1,45 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +# Not stored here, but plugin.proto is in https://github.com/google/protobuf/ +# at src/google/protobuf/compiler/plugin.proto +# Also we need to fix an import. +regenerate: + echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION + protoc --go_out=Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor:. \ + -I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/compiler/plugin.proto && \ + mv google/protobuf/compiler/plugin.pb.go $(GOPATH)/src/github.com/golang/protobuf/protoc-gen-go/plugin + +restore: + cp plugin.pb.golden plugin.pb.go + +preserve: + cp plugin.pb.go plugin.pb.golden diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.go new file mode 100644 index 00000000..7b029346 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.go @@ -0,0 +1,229 @@ +// Code generated by protoc-gen-go. +// source: google/protobuf/compiler/plugin.proto +// DO NOT EDIT! + +/* +Package plugin_go is a generated protocol buffer package. + +It is generated from these files: + google/protobuf/compiler/plugin.proto + +It has these top-level messages: + CodeGeneratorRequest + CodeGeneratorResponse +*/ +package plugin_go + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An encoded CodeGeneratorRequest is written to the plugin's stdin. +type CodeGeneratorRequest struct { + // The .proto files that were explicitly listed on the command-line. The + // code generator should generate code only for these files. Each file's + // descriptor will be included in proto_file, below. + FileToGenerate []string `protobuf:"bytes,1,rep,name=file_to_generate,json=fileToGenerate" json:"file_to_generate,omitempty"` + // The generator parameter passed on the command-line. + Parameter *string `protobuf:"bytes,2,opt,name=parameter" json:"parameter,omitempty"` + // FileDescriptorProtos for all files in files_to_generate and everything + // they import. The files will appear in topological order, so each file + // appears before any file that imports it. + // + // protoc guarantees that all proto_files will be written after + // the fields above, even though this is not technically guaranteed by the + // protobuf wire format. This theoretically could allow a plugin to stream + // in the FileDescriptorProtos and handle them one by one rather than read + // the entire set into memory at once. However, as of this writing, this + // is not similarly optimized on protoc's end -- it will store all fields in + // memory at once before sending them to the plugin. + ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CodeGeneratorRequest) Reset() { *m = CodeGeneratorRequest{} } +func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) } +func (*CodeGeneratorRequest) ProtoMessage() {} +func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *CodeGeneratorRequest) GetFileToGenerate() []string { + if m != nil { + return m.FileToGenerate + } + return nil +} + +func (m *CodeGeneratorRequest) GetParameter() string { + if m != nil && m.Parameter != nil { + return *m.Parameter + } + return "" +} + +func (m *CodeGeneratorRequest) GetProtoFile() []*google_protobuf.FileDescriptorProto { + if m != nil { + return m.ProtoFile + } + return nil +} + +// The plugin writes an encoded CodeGeneratorResponse to stdout. +type CodeGeneratorResponse struct { + // Error message. If non-empty, code generation failed. The plugin process + // should exit with status code zero even if it reports an error in this way. + // + // This should be used to indicate errors in .proto files which prevent the + // code generator from generating correct code. Errors which indicate a + // problem in protoc itself -- such as the input CodeGeneratorRequest being + // unparseable -- should be reported by writing a message to stderr and + // exiting with a non-zero status code. + Error *string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` + File []*CodeGeneratorResponse_File `protobuf:"bytes,15,rep,name=file" json:"file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CodeGeneratorResponse) Reset() { *m = CodeGeneratorResponse{} } +func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) } +func (*CodeGeneratorResponse) ProtoMessage() {} +func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func (m *CodeGeneratorResponse) GetError() string { + if m != nil && m.Error != nil { + return *m.Error + } + return "" +} + +func (m *CodeGeneratorResponse) GetFile() []*CodeGeneratorResponse_File { + if m != nil { + return m.File + } + return nil +} + +// Represents a single generated file. +type CodeGeneratorResponse_File struct { + // The file name, relative to the output directory. The name must not + // contain "." or ".." components and must be relative, not be absolute (so, + // the file cannot lie outside the output directory). "/" must be used as + // the path separator, not "\". + // + // If the name is omitted, the content will be appended to the previous + // file. This allows the generator to break large files into small chunks, + // and allows the generated text to be streamed back to protoc so that large + // files need not reside completely in memory at one time. Note that as of + // this writing protoc does not optimize for this -- it will read the entire + // CodeGeneratorResponse before writing files to disk. + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // If non-empty, indicates that the named file should already exist, and the + // content here is to be inserted into that file at a defined insertion + // point. This feature allows a code generator to extend the output + // produced by another code generator. The original generator may provide + // insertion points by placing special annotations in the file that look + // like: + // @@protoc_insertion_point(NAME) + // The annotation can have arbitrary text before and after it on the line, + // which allows it to be placed in a comment. NAME should be replaced with + // an identifier naming the point -- this is what other generators will use + // as the insertion_point. Code inserted at this point will be placed + // immediately above the line containing the insertion point (thus multiple + // insertions to the same point will come out in the order they were added). + // The double-@ is intended to make it unlikely that the generated code + // could contain things that look like insertion points by accident. + // + // For example, the C++ code generator places the following line in the + // .pb.h files that it generates: + // // @@protoc_insertion_point(namespace_scope) + // This line appears within the scope of the file's package namespace, but + // outside of any particular class. Another plugin can then specify the + // insertion_point "namespace_scope" to generate additional classes or + // other declarations that should be placed in this scope. + // + // Note that if the line containing the insertion point begins with + // whitespace, the same whitespace will be added to every line of the + // inserted text. This is useful for languages like Python, where + // indentation matters. In these languages, the insertion point comment + // should be indented the same amount as any inserted code will need to be + // in order to work correctly in that context. + // + // The code generator that generates the initial file and the one which + // inserts into it must both run as part of a single invocation of protoc. + // Code generators are executed in the order in which they appear on the + // command line. + // + // If |insertion_point| is present, |name| must also be present. + InsertionPoint *string `protobuf:"bytes,2,opt,name=insertion_point,json=insertionPoint" json:"insertion_point,omitempty"` + // The file contents. + Content *string `protobuf:"bytes,15,opt,name=content" json:"content,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *CodeGeneratorResponse_File) Reset() { *m = CodeGeneratorResponse_File{} } +func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) } +func (*CodeGeneratorResponse_File) ProtoMessage() {} +func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } + +func (m *CodeGeneratorResponse_File) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *CodeGeneratorResponse_File) GetInsertionPoint() string { + if m != nil && m.InsertionPoint != nil { + return *m.InsertionPoint + } + return "" +} + +func (m *CodeGeneratorResponse_File) GetContent() string { + if m != nil && m.Content != nil { + return *m.Content + } + return "" +} + +func init() { + proto.RegisterType((*CodeGeneratorRequest)(nil), "google.protobuf.compiler.CodeGeneratorRequest") + proto.RegisterType((*CodeGeneratorResponse)(nil), "google.protobuf.compiler.CodeGeneratorResponse") + proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File") +} + +func init() { proto.RegisterFile("google/protobuf/compiler/plugin.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 311 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x91, 0xd1, 0x4a, 0xfb, 0x30, + 0x14, 0xc6, 0xe9, 0xff, 0x3f, 0x91, 0x1d, 0x65, 0x93, 0x30, 0xa1, 0x8c, 0x5d, 0x94, 0xa1, 0xb8, + 0xab, 0x14, 0x44, 0xf0, 0x7e, 0x13, 0xf5, 0xb2, 0x14, 0xaf, 0x04, 0x29, 0xb5, 0x3b, 0x2b, 0x81, + 0x2e, 0x27, 0xa6, 0xe9, 0x13, 0xf9, 0x4e, 0x3e, 0x8f, 0x49, 0xda, 0x4e, 0x29, 0xee, 0xaa, 0x3d, + 0xdf, 0xf9, 0xe5, 0x3b, 0x5f, 0x72, 0xe0, 0xba, 0x24, 0x2a, 0x2b, 0x8c, 0x95, 0x26, 0x43, 0xef, + 0xcd, 0x2e, 0x2e, 0x68, 0xaf, 0x44, 0x85, 0x3a, 0x56, 0x55, 0x53, 0x0a, 0xc9, 0x7d, 0x83, 0x85, + 0x2d, 0xc6, 0x7b, 0x8c, 0xf7, 0xd8, 0x3c, 0x1a, 0x1a, 0x6c, 0xb1, 0x2e, 0xb4, 0x50, 0x86, 0x74, + 0x4b, 0x2f, 0x3f, 0x03, 0x98, 0x6d, 0x68, 0x8b, 0x4f, 0x28, 0x51, 0xe7, 0x56, 0x4f, 0xf1, 0xa3, + 0xc1, 0xda, 0xb0, 0x15, 0x5c, 0xec, 0xac, 0x47, 0x66, 0x28, 0x2b, 0xdb, 0x1e, 0x86, 0x41, 0xf4, + 0x7f, 0x35, 0x4e, 0x27, 0x4e, 0x7f, 0xa1, 0xee, 0x04, 0xb2, 0x05, 0x8c, 0x55, 0xae, 0xf3, 0x3d, + 0x1a, 0xd4, 0xe1, 0xbf, 0x28, 0xb0, 0xc8, 0x8f, 0xc0, 0x36, 0x00, 0x7e, 0x52, 0xe6, 0x4e, 0x85, + 0x53, 0xeb, 0x70, 0x76, 0x7b, 0xc5, 0x87, 0x89, 0x1f, 0x6d, 0xf3, 0xe1, 0x90, 0x2d, 0x71, 0xb2, + 0x35, 0x71, 0x1f, 0xd7, 0x59, 0x7e, 0x05, 0x70, 0x39, 0x48, 0x59, 0x2b, 0x92, 0x35, 0xb2, 0x19, + 0x9c, 0xa0, 0xd6, 0xa4, 0x6d, 0x36, 0x37, 0xb8, 0x2d, 0xd8, 0x33, 0x8c, 0x7e, 0x8d, 0xbb, 0xe3, + 0xc7, 0x1e, 0x88, 0xff, 0x69, 0xea, 0xd3, 0xa4, 0xde, 0x61, 0xfe, 0x06, 0x23, 0x57, 0x31, 0x06, + 0x23, 0x69, 0x6f, 0xd4, 0x8d, 0xf1, 0xff, 0xec, 0x06, 0xa6, 0xc2, 0xe2, 0xda, 0x08, 0x92, 0x99, + 0x22, 0x21, 0x4d, 0x77, 0xfd, 0xc9, 0x41, 0x4e, 0x9c, 0xca, 0x42, 0x38, 0x2d, 0x48, 0x1a, 0xb4, + 0xc0, 0xd4, 0x03, 0x7d, 0xb9, 0xbe, 0x87, 0x85, 0xcd, 0x72, 0x34, 0xdf, 0xfa, 0x3c, 0xf1, 0x8b, + 0xf6, 0x0f, 0x52, 0xbf, 0x8e, 0xdb, 0xb5, 0x67, 0x25, 0x7d, 0x07, 0x00, 0x00, 0xff, 0xff, 0x83, + 0x7b, 0x5c, 0x7c, 0x1b, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.golden b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.golden new file mode 100644 index 00000000..8953d0ff --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/plugin.pb.golden @@ -0,0 +1,83 @@ +// Code generated by protoc-gen-go. +// source: google/protobuf/compiler/plugin.proto +// DO NOT EDIT! + +package google_protobuf_compiler + +import proto "github.com/golang/protobuf/proto" +import "math" +import google_protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" + +// Reference proto and math imports to suppress error if they are not otherwise used. +var _ = proto.GetString +var _ = math.Inf + +type CodeGeneratorRequest struct { + FileToGenerate []string `protobuf:"bytes,1,rep,name=file_to_generate" json:"file_to_generate,omitempty"` + Parameter *string `protobuf:"bytes,2,opt,name=parameter" json:"parameter,omitempty"` + ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file" json:"proto_file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (this *CodeGeneratorRequest) Reset() { *this = CodeGeneratorRequest{} } +func (this *CodeGeneratorRequest) String() string { return proto.CompactTextString(this) } +func (*CodeGeneratorRequest) ProtoMessage() {} + +func (this *CodeGeneratorRequest) GetParameter() string { + if this != nil && this.Parameter != nil { + return *this.Parameter + } + return "" +} + +type CodeGeneratorResponse struct { + Error *string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` + File []*CodeGeneratorResponse_File `protobuf:"bytes,15,rep,name=file" json:"file,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (this *CodeGeneratorResponse) Reset() { *this = CodeGeneratorResponse{} } +func (this *CodeGeneratorResponse) String() string { return proto.CompactTextString(this) } +func (*CodeGeneratorResponse) ProtoMessage() {} + +func (this *CodeGeneratorResponse) GetError() string { + if this != nil && this.Error != nil { + return *this.Error + } + return "" +} + +type CodeGeneratorResponse_File struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + InsertionPoint *string `protobuf:"bytes,2,opt,name=insertion_point" json:"insertion_point,omitempty"` + Content *string `protobuf:"bytes,15,opt,name=content" json:"content,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (this *CodeGeneratorResponse_File) Reset() { *this = CodeGeneratorResponse_File{} } +func (this *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(this) } +func (*CodeGeneratorResponse_File) ProtoMessage() {} + +func (this *CodeGeneratorResponse_File) GetName() string { + if this != nil && this.Name != nil { + return *this.Name + } + return "" +} + +func (this *CodeGeneratorResponse_File) GetInsertionPoint() string { + if this != nil && this.InsertionPoint != nil { + return *this.InsertionPoint + } + return "" +} + +func (this *CodeGeneratorResponse_File) GetContent() string { + if this != nil && this.Content != nil { + return *this.Content + } + return "" +} + +func init() { +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/Makefile b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/Makefile new file mode 100644 index 00000000..a85cc565 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/Makefile @@ -0,0 +1,72 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +all: + @echo run make test + +include ../../Make.protobuf + +test: golden testbuild + +#test: golden testbuild extension_test +# ./extension_test +# @echo PASS + +my_test/test.pb.go: my_test/test.proto + protoc --go_out=Mmulti/multi1.proto=github.com/golang/protobuf/protoc-gen-go/testdata/multi:. $< + +golden: + make -B my_test/test.pb.go + sed -i '/return.*fileDescriptor/d' my_test/test.pb.go + sed -i '/^var fileDescriptor/,/^}/d' my_test/test.pb.go + gofmt -w my_test/test.pb.go + diff -w my_test/test.pb.go my_test/test.pb.go.golden + +nuke: clean + +testbuild: regenerate + go test + +regenerate: + # Invoke protoc once to generate three independent .pb.go files in the same package. + protoc --go_out=. multi/multi{1,2,3}.proto + +#extension_test: extension_test.$O +# $(LD) -L. -o $@ $< + +#multi.a: multi3.pb.$O multi2.pb.$O multi1.pb.$O +# rm -f multi.a +# $(QUOTED_GOBIN)/gopack grc $@ $< + +#test.pb.go: imp.pb.go +#multi1.pb.go: multi2.pb.go multi3.pb.go +#main.$O: imp.pb.$O test.pb.$O multi.a +#extension_test.$O: extension_base.pb.$O extension_extra.pb.$O extension_user.pb.$O diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_base.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_base.proto new file mode 100644 index 00000000..94acfc1b --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_base.proto @@ -0,0 +1,46 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package extension_base; + +message BaseMessage { + optional int32 height = 1; + extensions 4 to 9; + extensions 16 to max; +} + +// Another message that may be extended, using message_set_wire_format. +message OldStyleMessage { + option message_set_wire_format = true; + extensions 100 to max; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_extra.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_extra.proto new file mode 100644 index 00000000..fca7f600 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_extra.proto @@ -0,0 +1,38 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package extension_extra; + +message ExtraMessage { + optional int32 width = 1; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_test.go b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_test.go new file mode 100644 index 00000000..86e9c118 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_test.go @@ -0,0 +1,210 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Test that we can use protocol buffers that use extensions. + +package testdata + +/* + +import ( + "bytes" + "regexp" + "testing" + + "github.com/golang/protobuf/proto" + base "extension_base.pb" + user "extension_user.pb" +) + +func TestSingleFieldExtension(t *testing.T) { + bm := &base.BaseMessage{ + Height: proto.Int32(178), + } + + // Use extension within scope of another type. + vol := proto.Uint32(11) + err := proto.SetExtension(bm, user.E_LoudMessage_Volume, vol) + if err != nil { + t.Fatal("Failed setting extension:", err) + } + buf, err := proto.Marshal(bm) + if err != nil { + t.Fatal("Failed encoding message with extension:", err) + } + bm_new := new(base.BaseMessage) + if err := proto.Unmarshal(buf, bm_new); err != nil { + t.Fatal("Failed decoding message with extension:", err) + } + if !proto.HasExtension(bm_new, user.E_LoudMessage_Volume) { + t.Fatal("Decoded message didn't contain extension.") + } + vol_out, err := proto.GetExtension(bm_new, user.E_LoudMessage_Volume) + if err != nil { + t.Fatal("Failed getting extension:", err) + } + if v := vol_out.(*uint32); *v != *vol { + t.Errorf("vol_out = %v, expected %v", *v, *vol) + } + proto.ClearExtension(bm_new, user.E_LoudMessage_Volume) + if proto.HasExtension(bm_new, user.E_LoudMessage_Volume) { + t.Fatal("Failed clearing extension.") + } +} + +func TestMessageExtension(t *testing.T) { + bm := &base.BaseMessage{ + Height: proto.Int32(179), + } + + // Use extension that is itself a message. + um := &user.UserMessage{ + Name: proto.String("Dave"), + Rank: proto.String("Major"), + } + err := proto.SetExtension(bm, user.E_LoginMessage_UserMessage, um) + if err != nil { + t.Fatal("Failed setting extension:", err) + } + buf, err := proto.Marshal(bm) + if err != nil { + t.Fatal("Failed encoding message with extension:", err) + } + bm_new := new(base.BaseMessage) + if err := proto.Unmarshal(buf, bm_new); err != nil { + t.Fatal("Failed decoding message with extension:", err) + } + if !proto.HasExtension(bm_new, user.E_LoginMessage_UserMessage) { + t.Fatal("Decoded message didn't contain extension.") + } + um_out, err := proto.GetExtension(bm_new, user.E_LoginMessage_UserMessage) + if err != nil { + t.Fatal("Failed getting extension:", err) + } + if n := um_out.(*user.UserMessage).Name; *n != *um.Name { + t.Errorf("um_out.Name = %q, expected %q", *n, *um.Name) + } + if r := um_out.(*user.UserMessage).Rank; *r != *um.Rank { + t.Errorf("um_out.Rank = %q, expected %q", *r, *um.Rank) + } + proto.ClearExtension(bm_new, user.E_LoginMessage_UserMessage) + if proto.HasExtension(bm_new, user.E_LoginMessage_UserMessage) { + t.Fatal("Failed clearing extension.") + } +} + +func TestTopLevelExtension(t *testing.T) { + bm := &base.BaseMessage{ + Height: proto.Int32(179), + } + + width := proto.Int32(17) + err := proto.SetExtension(bm, user.E_Width, width) + if err != nil { + t.Fatal("Failed setting extension:", err) + } + buf, err := proto.Marshal(bm) + if err != nil { + t.Fatal("Failed encoding message with extension:", err) + } + bm_new := new(base.BaseMessage) + if err := proto.Unmarshal(buf, bm_new); err != nil { + t.Fatal("Failed decoding message with extension:", err) + } + if !proto.HasExtension(bm_new, user.E_Width) { + t.Fatal("Decoded message didn't contain extension.") + } + width_out, err := proto.GetExtension(bm_new, user.E_Width) + if err != nil { + t.Fatal("Failed getting extension:", err) + } + if w := width_out.(*int32); *w != *width { + t.Errorf("width_out = %v, expected %v", *w, *width) + } + proto.ClearExtension(bm_new, user.E_Width) + if proto.HasExtension(bm_new, user.E_Width) { + t.Fatal("Failed clearing extension.") + } +} + +func TestMessageSetWireFormat(t *testing.T) { + osm := new(base.OldStyleMessage) + osp := &user.OldStyleParcel{ + Name: proto.String("Dave"), + Height: proto.Int32(178), + } + + err := proto.SetExtension(osm, user.E_OldStyleParcel_MessageSetExtension, osp) + if err != nil { + t.Fatal("Failed setting extension:", err) + } + + buf, err := proto.Marshal(osm) + if err != nil { + t.Fatal("Failed encoding message:", err) + } + + // Data generated from Python implementation. + expected := []byte{ + 11, 16, 209, 15, 26, 9, 10, 4, 68, 97, 118, 101, 16, 178, 1, 12, + } + + if !bytes.Equal(expected, buf) { + t.Errorf("Encoding mismatch.\nwant %+v\n got %+v", expected, buf) + } + + // Check that it is restored correctly. + osm = new(base.OldStyleMessage) + if err := proto.Unmarshal(buf, osm); err != nil { + t.Fatal("Failed decoding message:", err) + } + osp_out, err := proto.GetExtension(osm, user.E_OldStyleParcel_MessageSetExtension) + if err != nil { + t.Fatal("Failed getting extension:", err) + } + osp = osp_out.(*user.OldStyleParcel) + if *osp.Name != "Dave" || *osp.Height != 178 { + t.Errorf("Retrieved extension from decoded message is not correct: %+v", osp) + } +} + +func main() { + // simpler than rigging up gotest + testing.Main(regexp.MatchString, []testing.InternalTest{ + {"TestSingleFieldExtension", TestSingleFieldExtension}, + {"TestMessageExtension", TestMessageExtension}, + {"TestTopLevelExtension", TestTopLevelExtension}, + }, + []testing.InternalBenchmark{}, + []testing.InternalExample{}) +} + +*/ diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_user.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_user.proto new file mode 100644 index 00000000..ff65873d --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/extension_user.proto @@ -0,0 +1,100 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +import "extension_base.proto"; +import "extension_extra.proto"; + +package extension_user; + +message UserMessage { + optional string name = 1; + optional string rank = 2; +} + +// Extend with a message +extend extension_base.BaseMessage { + optional UserMessage user_message = 5; +} + +// Extend with a foreign message +extend extension_base.BaseMessage { + optional extension_extra.ExtraMessage extra_message = 9; +} + +// Extend with some primitive types +extend extension_base.BaseMessage { + optional int32 width = 6; + optional int64 area = 7; +} + +// Extend inside the scope of another type +message LoudMessage { + extend extension_base.BaseMessage { + optional uint32 volume = 8; + } + extensions 100 to max; +} + +// Extend inside the scope of another type, using a message. +message LoginMessage { + extend extension_base.BaseMessage { + optional UserMessage user_message = 16; + } +} + +// Extend with a repeated field +extend extension_base.BaseMessage { + repeated Detail detail = 17; +} + +message Detail { + optional string color = 1; +} + +// An extension of an extension +message Announcement { + optional string words = 1; + extend LoudMessage { + optional Announcement loud_ext = 100; + } +} + +// Something that can be put in a message set. +message OldStyleParcel { + extend extension_base.OldStyleMessage { + optional OldStyleParcel message_set_extension = 2001; + } + + required string name = 1; + optional int32 height = 2; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/grpc.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/grpc.proto new file mode 100644 index 00000000..b8bc41ac --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/grpc.proto @@ -0,0 +1,59 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2015 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto3"; + +package grpc.testing; + +message SimpleRequest { +} + +message SimpleResponse { +} + +message StreamMsg { +} + +message StreamMsg2 { +} + +service Test { + rpc UnaryCall(SimpleRequest) returns (SimpleResponse); + + // This RPC streams from the server only. + rpc Downstream(SimpleRequest) returns (stream StreamMsg); + + // This RPC streams from the client. + rpc Upstream(stream StreamMsg) returns (SimpleResponse); + + // This one streams in both directions. + rpc Bidi(stream StreamMsg) returns (stream StreamMsg2); +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.pb.go.golden b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.pb.go.golden new file mode 100644 index 00000000..784a4f86 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.pb.go.golden @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. +// source: imp.proto +// DO NOT EDIT! + +package imp + +import proto "github.com/golang/protobuf/proto" +import "math" +import "os" +import imp1 "imp2.pb" + +// Reference proto & math imports to suppress error if they are not otherwise used. +var _ = proto.GetString +var _ = math.Inf + +// Types from public import imp2.proto +type PubliclyImportedMessage imp1.PubliclyImportedMessage + +func (this *PubliclyImportedMessage) Reset() { (*imp1.PubliclyImportedMessage)(this).Reset() } +func (this *PubliclyImportedMessage) String() string { + return (*imp1.PubliclyImportedMessage)(this).String() +} + +// PubliclyImportedMessage from public import imp.proto + +type ImportedMessage_Owner int32 + +const ( + ImportedMessage_DAVE ImportedMessage_Owner = 1 + ImportedMessage_MIKE ImportedMessage_Owner = 2 +) + +var ImportedMessage_Owner_name = map[int32]string{ + 1: "DAVE", + 2: "MIKE", +} +var ImportedMessage_Owner_value = map[string]int32{ + "DAVE": 1, + "MIKE": 2, +} + +// NewImportedMessage_Owner is deprecated. Use x.Enum() instead. +func NewImportedMessage_Owner(x ImportedMessage_Owner) *ImportedMessage_Owner { + e := ImportedMessage_Owner(x) + return &e +} +func (x ImportedMessage_Owner) Enum() *ImportedMessage_Owner { + p := new(ImportedMessage_Owner) + *p = x + return p +} +func (x ImportedMessage_Owner) String() string { + return proto.EnumName(ImportedMessage_Owner_name, int32(x)) +} + +type ImportedMessage struct { + Field *int64 `protobuf:"varint,1,req,name=field" json:"field,omitempty"` + XXX_extensions map[int32][]byte `json:",omitempty"` + XXX_unrecognized []byte `json:",omitempty"` +} + +func (this *ImportedMessage) Reset() { *this = ImportedMessage{} } +func (this *ImportedMessage) String() string { return proto.CompactTextString(this) } + +var extRange_ImportedMessage = []proto.ExtensionRange{ + proto.ExtensionRange{90, 100}, +} + +func (*ImportedMessage) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ImportedMessage +} +func (this *ImportedMessage) ExtensionMap() map[int32][]byte { + if this.XXX_extensions == nil { + this.XXX_extensions = make(map[int32][]byte) + } + return this.XXX_extensions +} + +type ImportedExtendable struct { + XXX_extensions map[int32][]byte `json:",omitempty"` + XXX_unrecognized []byte `json:",omitempty"` +} + +func (this *ImportedExtendable) Reset() { *this = ImportedExtendable{} } +func (this *ImportedExtendable) String() string { return proto.CompactTextString(this) } + +func (this *ImportedExtendable) Marshal() ([]byte, error) { + return proto.MarshalMessageSet(this.ExtensionMap()) +} +func (this *ImportedExtendable) Unmarshal(buf []byte) error { + return proto.UnmarshalMessageSet(buf, this.ExtensionMap()) +} +// ensure ImportedExtendable satisfies proto.Marshaler and proto.Unmarshaler +var _ proto.Marshaler = (*ImportedExtendable)(nil) +var _ proto.Unmarshaler = (*ImportedExtendable)(nil) + +var extRange_ImportedExtendable = []proto.ExtensionRange{ + proto.ExtensionRange{100, 536870911}, +} + +func (*ImportedExtendable) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ImportedExtendable +} +func (this *ImportedExtendable) ExtensionMap() map[int32][]byte { + if this.XXX_extensions == nil { + this.XXX_extensions = make(map[int32][]byte) + } + return this.XXX_extensions +} + +func init() { + proto.RegisterEnum("imp.ImportedMessage_Owner", ImportedMessage_Owner_name, ImportedMessage_Owner_value) +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.proto new file mode 100644 index 00000000..156e078d --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp.proto @@ -0,0 +1,70 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package imp; + +import "imp2.proto"; +import "imp3.proto"; + +message ImportedMessage { + required int64 field = 1; + + // The forwarded getters for these fields are fiddly to get right. + optional ImportedMessage2 local_msg = 2; + optional ForeignImportedMessage foreign_msg = 3; // in imp3.proto + optional Owner enum_field = 4; + oneof union { + int32 state = 9; + } + + repeated string name = 5; + repeated Owner boss = 6; + repeated ImportedMessage2 memo = 7; + + map msg_map = 8; + + enum Owner { + DAVE = 1; + MIKE = 2; + } + + extensions 90 to 100; +} + +message ImportedMessage2 { +} + +message ImportedExtendable { + option message_set_wire_format = true; + extensions 100 to max; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp2.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp2.proto new file mode 100644 index 00000000..3bb0632b --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp2.proto @@ -0,0 +1,43 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package imp; + +message PubliclyImportedMessage { + optional int64 field = 1; +} + +enum PubliclyImportedEnum { + GLASSES = 1; + HAIR = 2; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp3.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp3.proto new file mode 100644 index 00000000..58fc7598 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/imp3.proto @@ -0,0 +1,38 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package imp; + +message ForeignImportedMessage { + optional string tuber = 1; +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/main_test.go b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/main_test.go new file mode 100644 index 00000000..f9b5ccf2 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/main_test.go @@ -0,0 +1,46 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// A simple binary to link together the protocol buffers in this test. + +package testdata + +import ( + "testing" + + mytestpb "./my_test" + multipb "github.com/golang/protobuf/protoc-gen-go/testdata/multi" +) + +func TestLink(t *testing.T) { + _ = &multipb.Multi1{} + _ = &mytestpb.Request{} +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi1.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi1.proto new file mode 100644 index 00000000..0da6e0af --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi1.proto @@ -0,0 +1,44 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +import "multi/multi2.proto"; +import "multi/multi3.proto"; + +package multitest; + +message Multi1 { + required Multi2 multi2 = 1; + optional Multi2.Color color = 2; + optional Multi3.HatType hat_type = 3; +} + diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi2.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi2.proto new file mode 100644 index 00000000..e6bfc71b --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi2.proto @@ -0,0 +1,46 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package multitest; + +message Multi2 { + required int32 required_value = 1; + + enum Color { + BLUE = 1; + GREEN = 2; + RED = 3; + }; + optional Color color = 2; +} + diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi3.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi3.proto new file mode 100644 index 00000000..146c255b --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/multi/multi3.proto @@ -0,0 +1,43 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +package multitest; + +message Multi3 { + enum HatType { + FEDORA = 1; + FEZ = 2; + }; + optional HatType hat_type = 1; +} + diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go new file mode 100644 index 00000000..997743be --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go @@ -0,0 +1,882 @@ +// Code generated by protoc-gen-go. +// source: my_test/test.proto +// DO NOT EDIT! + +/* +Package my_test is a generated protocol buffer package. + +This package holds interesting messages. + +It is generated from these files: + my_test/test.proto + +It has these top-level messages: + Request + Reply + OtherBase + ReplyExtensions + OtherReplyExtensions + OldReply + Communique +*/ +package my_test + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/golang/protobuf/protoc-gen-go/testdata/multi" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +type HatType int32 + +const ( + // deliberately skipping 0 + HatType_FEDORA HatType = 1 + HatType_FEZ HatType = 2 +) + +var HatType_name = map[int32]string{ + 1: "FEDORA", + 2: "FEZ", +} +var HatType_value = map[string]int32{ + "FEDORA": 1, + "FEZ": 2, +} + +func (x HatType) Enum() *HatType { + p := new(HatType) + *p = x + return p +} +func (x HatType) String() string { + return proto.EnumName(HatType_name, int32(x)) +} +func (x *HatType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(HatType_value, data, "HatType") + if err != nil { + return err + } + *x = HatType(value) + return nil +} + +// This enum represents days of the week. +type Days int32 + +const ( + Days_MONDAY Days = 1 + Days_TUESDAY Days = 2 + Days_LUNDI Days = 1 +) + +var Days_name = map[int32]string{ + 1: "MONDAY", + 2: "TUESDAY", + // Duplicate value: 1: "LUNDI", +} +var Days_value = map[string]int32{ + "MONDAY": 1, + "TUESDAY": 2, + "LUNDI": 1, +} + +func (x Days) Enum() *Days { + p := new(Days) + *p = x + return p +} +func (x Days) String() string { + return proto.EnumName(Days_name, int32(x)) +} +func (x *Days) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Days_value, data, "Days") + if err != nil { + return err + } + *x = Days(value) + return nil +} + +type Request_Color int32 + +const ( + Request_RED Request_Color = 0 + Request_GREEN Request_Color = 1 + Request_BLUE Request_Color = 2 +) + +var Request_Color_name = map[int32]string{ + 0: "RED", + 1: "GREEN", + 2: "BLUE", +} +var Request_Color_value = map[string]int32{ + "RED": 0, + "GREEN": 1, + "BLUE": 2, +} + +func (x Request_Color) Enum() *Request_Color { + p := new(Request_Color) + *p = x + return p +} +func (x Request_Color) String() string { + return proto.EnumName(Request_Color_name, int32(x)) +} +func (x *Request_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Request_Color_value, data, "Request_Color") + if err != nil { + return err + } + *x = Request_Color(value) + return nil +} + +type Reply_Entry_Game int32 + +const ( + Reply_Entry_FOOTBALL Reply_Entry_Game = 1 + Reply_Entry_TENNIS Reply_Entry_Game = 2 +) + +var Reply_Entry_Game_name = map[int32]string{ + 1: "FOOTBALL", + 2: "TENNIS", +} +var Reply_Entry_Game_value = map[string]int32{ + "FOOTBALL": 1, + "TENNIS": 2, +} + +func (x Reply_Entry_Game) Enum() *Reply_Entry_Game { + p := new(Reply_Entry_Game) + *p = x + return p +} +func (x Reply_Entry_Game) String() string { + return proto.EnumName(Reply_Entry_Game_name, int32(x)) +} +func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Reply_Entry_Game_value, data, "Reply_Entry_Game") + if err != nil { + return err + } + *x = Reply_Entry_Game(value) + return nil +} + +// This is a message that might be sent somewhere. +type Request struct { + Key []int64 `protobuf:"varint,1,rep,name=key" json:"key,omitempty"` + // optional imp.ImportedMessage imported_message = 2; + Hue *Request_Color `protobuf:"varint,3,opt,name=hue,enum=my.test.Request_Color" json:"hue,omitempty"` + Hat *HatType `protobuf:"varint,4,opt,name=hat,enum=my.test.HatType,def=1" json:"hat,omitempty"` + // optional imp.ImportedMessage.Owner owner = 6; + Deadline *float32 `protobuf:"fixed32,7,opt,name=deadline,def=inf" json:"deadline,omitempty"` + Somegroup *Request_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` + // This is a map field. It will generate map[int32]string. + NameMapping map[int32]string `protobuf:"bytes,14,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // This is a map field whose value type is a message. + MsgMapping map[int64]*Reply `protobuf:"bytes,15,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Reset_ *int32 `protobuf:"varint,12,opt,name=reset" json:"reset,omitempty"` + // This field should not conflict with any getters. + GetKey_ *string `protobuf:"bytes,16,opt,name=get_key,json=getKey" json:"get_key,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Request) Reset() { *m = Request{} } +func (m *Request) String() string { return proto.CompactTextString(m) } +func (*Request) ProtoMessage() {} + +const Default_Request_Hat HatType = HatType_FEDORA + +var Default_Request_Deadline float32 = float32(math.Inf(1)) + +func (m *Request) GetKey() []int64 { + if m != nil { + return m.Key + } + return nil +} + +func (m *Request) GetHue() Request_Color { + if m != nil && m.Hue != nil { + return *m.Hue + } + return Request_RED +} + +func (m *Request) GetHat() HatType { + if m != nil && m.Hat != nil { + return *m.Hat + } + return Default_Request_Hat +} + +func (m *Request) GetDeadline() float32 { + if m != nil && m.Deadline != nil { + return *m.Deadline + } + return Default_Request_Deadline +} + +func (m *Request) GetSomegroup() *Request_SomeGroup { + if m != nil { + return m.Somegroup + } + return nil +} + +func (m *Request) GetNameMapping() map[int32]string { + if m != nil { + return m.NameMapping + } + return nil +} + +func (m *Request) GetMsgMapping() map[int64]*Reply { + if m != nil { + return m.MsgMapping + } + return nil +} + +func (m *Request) GetReset_() int32 { + if m != nil && m.Reset_ != nil { + return *m.Reset_ + } + return 0 +} + +func (m *Request) GetGetKey_() string { + if m != nil && m.GetKey_ != nil { + return *m.GetKey_ + } + return "" +} + +type Request_SomeGroup struct { + GroupField *int32 `protobuf:"varint,9,opt,name=group_field,json=groupField" json:"group_field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Request_SomeGroup) Reset() { *m = Request_SomeGroup{} } +func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) } +func (*Request_SomeGroup) ProtoMessage() {} + +func (m *Request_SomeGroup) GetGroupField() int32 { + if m != nil && m.GroupField != nil { + return *m.GroupField + } + return 0 +} + +type Reply struct { + Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` + CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys,json=compactKeys" json:"compact_keys,omitempty"` + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Reply) Reset() { *m = Reply{} } +func (m *Reply) String() string { return proto.CompactTextString(m) } +func (*Reply) ProtoMessage() {} + +var extRange_Reply = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*Reply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_Reply +} +func (m *Reply) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +func (m *Reply) GetFound() []*Reply_Entry { + if m != nil { + return m.Found + } + return nil +} + +func (m *Reply) GetCompactKeys() []int32 { + if m != nil { + return m.CompactKeys + } + return nil +} + +type Reply_Entry struct { + KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng,json=keyThatNeeds1234camelCasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` + Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` + XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=myFieldName2" json:"_my_field_name_2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Reply_Entry) Reset() { *m = Reply_Entry{} } +func (m *Reply_Entry) String() string { return proto.CompactTextString(m) } +func (*Reply_Entry) ProtoMessage() {} + +const Default_Reply_Entry_Value int64 = 7 + +func (m *Reply_Entry) GetKeyThatNeeds_1234Camel_CasIng() int64 { + if m != nil && m.KeyThatNeeds_1234Camel_CasIng != nil { + return *m.KeyThatNeeds_1234Camel_CasIng + } + return 0 +} + +func (m *Reply_Entry) GetValue() int64 { + if m != nil && m.Value != nil { + return *m.Value + } + return Default_Reply_Entry_Value +} + +func (m *Reply_Entry) GetXMyFieldName_2() int64 { + if m != nil && m.XMyFieldName_2 != nil { + return *m.XMyFieldName_2 + } + return 0 +} + +type OtherBase struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OtherBase) Reset() { *m = OtherBase{} } +func (m *OtherBase) String() string { return proto.CompactTextString(m) } +func (*OtherBase) ProtoMessage() {} + +var extRange_OtherBase = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OtherBase +} +func (m *OtherBase) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +func (m *OtherBase) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +type ReplyExtensions struct { + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReplyExtensions) Reset() { *m = ReplyExtensions{} } +func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) } +func (*ReplyExtensions) ProtoMessage() {} + +var E_ReplyExtensions_Time = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*float64)(nil), + Field: 101, + Name: "my.test.ReplyExtensions.time", + Tag: "fixed64,101,opt,name=time", +} + +var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*ReplyExtensions)(nil), + Field: 105, + Name: "my.test.ReplyExtensions.carrot", + Tag: "bytes,105,opt,name=carrot", +} + +var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ + ExtendedType: (*OtherBase)(nil), + ExtensionType: (*ReplyExtensions)(nil), + Field: 101, + Name: "my.test.ReplyExtensions.donut", + Tag: "bytes,101,opt,name=donut", +} + +type OtherReplyExtensions struct { + Key *int32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OtherReplyExtensions) Reset() { *m = OtherReplyExtensions{} } +func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) } +func (*OtherReplyExtensions) ProtoMessage() {} + +func (m *OtherReplyExtensions) GetKey() int32 { + if m != nil && m.Key != nil { + return *m.Key + } + return 0 +} + +type OldReply struct { + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OldReply) Reset() { *m = OldReply{} } +func (m *OldReply) String() string { return proto.CompactTextString(m) } +func (*OldReply) ProtoMessage() {} + +func (m *OldReply) Marshal() ([]byte, error) { + return proto.MarshalMessageSet(m.ExtensionMap()) +} +func (m *OldReply) Unmarshal(buf []byte) error { + return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) +} +func (m *OldReply) MarshalJSON() ([]byte, error) { + return proto.MarshalMessageSetJSON(m.XXX_extensions) +} +func (m *OldReply) UnmarshalJSON(buf []byte) error { + return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) +} + +// ensure OldReply satisfies proto.Marshaler and proto.Unmarshaler +var _ proto.Marshaler = (*OldReply)(nil) +var _ proto.Unmarshaler = (*OldReply)(nil) + +var extRange_OldReply = []proto.ExtensionRange{ + {100, 2147483646}, +} + +func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OldReply +} +func (m *OldReply) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +type Communique struct { + MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry,json=makeMeCry" json:"make_me_cry,omitempty"` + // This is a oneof, called "union". + // + // Types that are valid to be assigned to Union: + // *Communique_Number + // *Communique_Name + // *Communique_Data + // *Communique_TempC + // *Communique_Height + // *Communique_Today + // *Communique_Maybe + // *Communique_Delta_ + // *Communique_Msg + // *Communique_Somegroup + Union isCommunique_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique) Reset() { *m = Communique{} } +func (m *Communique) String() string { return proto.CompactTextString(m) } +func (*Communique) ProtoMessage() {} + +type isCommunique_Union interface { + isCommunique_Union() +} + +type Communique_Number struct { + Number int32 `protobuf:"varint,5,opt,name=number,oneof"` +} +type Communique_Name struct { + Name string `protobuf:"bytes,6,opt,name=name,oneof"` +} +type Communique_Data struct { + Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` +} +type Communique_TempC struct { + TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,json=tempC,oneof"` +} +type Communique_Height struct { + Height float32 `protobuf:"fixed32,9,opt,name=height,oneof"` +} +type Communique_Today struct { + Today Days `protobuf:"varint,10,opt,name=today,enum=my.test.Days,oneof"` +} +type Communique_Maybe struct { + Maybe bool `protobuf:"varint,11,opt,name=maybe,oneof"` +} +type Communique_Delta_ struct { + Delta int32 `protobuf:"zigzag32,12,opt,name=delta,oneof"` +} +type Communique_Msg struct { + Msg *Reply `protobuf:"bytes,13,opt,name=msg,oneof"` +} +type Communique_Somegroup struct { + Somegroup *Communique_SomeGroup `protobuf:"group,14,opt,name=SomeGroup,json=somegroup,oneof"` +} + +func (*Communique_Number) isCommunique_Union() {} +func (*Communique_Name) isCommunique_Union() {} +func (*Communique_Data) isCommunique_Union() {} +func (*Communique_TempC) isCommunique_Union() {} +func (*Communique_Height) isCommunique_Union() {} +func (*Communique_Today) isCommunique_Union() {} +func (*Communique_Maybe) isCommunique_Union() {} +func (*Communique_Delta_) isCommunique_Union() {} +func (*Communique_Msg) isCommunique_Union() {} +func (*Communique_Somegroup) isCommunique_Union() {} + +func (m *Communique) GetUnion() isCommunique_Union { + if m != nil { + return m.Union + } + return nil +} + +func (m *Communique) GetMakeMeCry() bool { + if m != nil && m.MakeMeCry != nil { + return *m.MakeMeCry + } + return false +} + +func (m *Communique) GetNumber() int32 { + if x, ok := m.GetUnion().(*Communique_Number); ok { + return x.Number + } + return 0 +} + +func (m *Communique) GetName() string { + if x, ok := m.GetUnion().(*Communique_Name); ok { + return x.Name + } + return "" +} + +func (m *Communique) GetData() []byte { + if x, ok := m.GetUnion().(*Communique_Data); ok { + return x.Data + } + return nil +} + +func (m *Communique) GetTempC() float64 { + if x, ok := m.GetUnion().(*Communique_TempC); ok { + return x.TempC + } + return 0 +} + +func (m *Communique) GetHeight() float32 { + if x, ok := m.GetUnion().(*Communique_Height); ok { + return x.Height + } + return 0 +} + +func (m *Communique) GetToday() Days { + if x, ok := m.GetUnion().(*Communique_Today); ok { + return x.Today + } + return Days_MONDAY +} + +func (m *Communique) GetMaybe() bool { + if x, ok := m.GetUnion().(*Communique_Maybe); ok { + return x.Maybe + } + return false +} + +func (m *Communique) GetDelta() int32 { + if x, ok := m.GetUnion().(*Communique_Delta_); ok { + return x.Delta + } + return 0 +} + +func (m *Communique) GetMsg() *Reply { + if x, ok := m.GetUnion().(*Communique_Msg); ok { + return x.Msg + } + return nil +} + +func (m *Communique) GetSomegroup() *Communique_SomeGroup { + if x, ok := m.GetUnion().(*Communique_Somegroup); ok { + return x.Somegroup + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, _Communique_OneofSizer, []interface{}{ + (*Communique_Number)(nil), + (*Communique_Name)(nil), + (*Communique_Data)(nil), + (*Communique_TempC)(nil), + (*Communique_Height)(nil), + (*Communique_Today)(nil), + (*Communique_Maybe)(nil), + (*Communique_Delta_)(nil), + (*Communique_Msg)(nil), + (*Communique_Somegroup)(nil), + } +} + +func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Number)) + case *Communique_Name: + b.EncodeVarint(6<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Name) + case *Communique_Data: + b.EncodeVarint(7<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Data) + case *Communique_TempC: + b.EncodeVarint(8<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.TempC)) + case *Communique_Height: + b.EncodeVarint(9<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.Height))) + case *Communique_Today: + b.EncodeVarint(10<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Today)) + case *Communique_Maybe: + t := uint64(0) + if x.Maybe { + t = 1 + } + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Communique_Delta_: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeZigzag32(uint64(x.Delta)) + case *Communique_Msg: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Msg); err != nil { + return err + } + case *Communique_Somegroup: + b.EncodeVarint(14<<3 | proto.WireStartGroup) + if err := b.Marshal(x.Somegroup); err != nil { + return err + } + b.EncodeVarint(14<<3 | proto.WireEndGroup) + case nil: + default: + return fmt.Errorf("Communique.Union has unexpected type %T", x) + } + return nil +} + +func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Communique) + switch tag { + case 5: // union.number + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Number{int32(x)} + return true, err + case 6: // union.name + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &Communique_Name{x} + return true, err + case 7: // union.data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Union = &Communique_Data{x} + return true, err + case 8: // union.temp_c + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Union = &Communique_TempC{math.Float64frombits(x)} + return true, err + case 9: // union.height + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Union = &Communique_Height{math.Float32frombits(uint32(x))} + return true, err + case 10: // union.today + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Today{Days(x)} + return true, err + case 11: // union.maybe + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Maybe{x != 0} + return true, err + case 12: // union.delta + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag32() + m.Union = &Communique_Delta_{int32(x)} + return true, err + case 13: // union.msg + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Reply) + err := b.DecodeMessage(msg) + m.Union = &Communique_Msg{msg} + return true, err + case 14: // union.somegroup + if wire != proto.WireStartGroup { + return true, proto.ErrInternalBadWireType + } + msg := new(Communique_SomeGroup) + err := b.DecodeGroup(msg) + m.Union = &Communique_Somegroup{msg} + return true, err + default: + return false, nil + } +} + +func _Communique_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + n += proto.SizeVarint(5<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Number)) + case *Communique_Name: + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Name))) + n += len(x.Name) + case *Communique_Data: + n += proto.SizeVarint(7<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Data))) + n += len(x.Data) + case *Communique_TempC: + n += proto.SizeVarint(8<<3 | proto.WireFixed64) + n += 8 + case *Communique_Height: + n += proto.SizeVarint(9<<3 | proto.WireFixed32) + n += 4 + case *Communique_Today: + n += proto.SizeVarint(10<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Today)) + case *Communique_Maybe: + n += proto.SizeVarint(11<<3 | proto.WireVarint) + n += 1 + case *Communique_Delta_: + n += proto.SizeVarint(12<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64((uint32(x.Delta) << 1) ^ uint32((int32(x.Delta) >> 31)))) + case *Communique_Msg: + s := proto.Size(x.Msg) + n += proto.SizeVarint(13<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Communique_Somegroup: + n += proto.SizeVarint(14<<3 | proto.WireStartGroup) + n += proto.Size(x.Somegroup) + n += proto.SizeVarint(14<<3 | proto.WireEndGroup) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type Communique_SomeGroup struct { + Member *string `protobuf:"bytes,15,opt,name=member" json:"member,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique_SomeGroup) Reset() { *m = Communique_SomeGroup{} } +func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) } +func (*Communique_SomeGroup) ProtoMessage() {} + +func (m *Communique_SomeGroup) GetMember() string { + if m != nil && m.Member != nil { + return *m.Member + } + return "" +} + +type Communique_Delta struct { + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique_Delta) Reset() { *m = Communique_Delta{} } +func (m *Communique_Delta) String() string { return proto.CompactTextString(m) } +func (*Communique_Delta) ProtoMessage() {} + +var E_Tag = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*string)(nil), + Field: 103, + Name: "my.test.tag", + Tag: "bytes,103,opt,name=tag", +} + +var E_Donut = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*OtherReplyExtensions)(nil), + Field: 106, + Name: "my.test.donut", + Tag: "bytes,106,opt,name=donut", +} + +func init() { + proto.RegisterType((*Request)(nil), "my.test.Request") + proto.RegisterType((*Request_SomeGroup)(nil), "my.test.Request.SomeGroup") + proto.RegisterType((*Reply)(nil), "my.test.Reply") + proto.RegisterType((*Reply_Entry)(nil), "my.test.Reply.Entry") + proto.RegisterType((*OtherBase)(nil), "my.test.OtherBase") + proto.RegisterType((*ReplyExtensions)(nil), "my.test.ReplyExtensions") + proto.RegisterType((*OtherReplyExtensions)(nil), "my.test.OtherReplyExtensions") + proto.RegisterType((*OldReply)(nil), "my.test.OldReply") + proto.RegisterType((*Communique)(nil), "my.test.Communique") + proto.RegisterType((*Communique_SomeGroup)(nil), "my.test.Communique.SomeGroup") + proto.RegisterType((*Communique_Delta)(nil), "my.test.Communique.Delta") + proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value) + proto.RegisterEnum("my.test.Days", Days_name, Days_value) + proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value) + proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value) + proto.RegisterExtension(E_ReplyExtensions_Time) + proto.RegisterExtension(E_ReplyExtensions_Carrot) + proto.RegisterExtension(E_ReplyExtensions_Donut) + proto.RegisterExtension(E_Tag) + proto.RegisterExtension(E_Donut) +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go.golden b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go.golden new file mode 100644 index 00000000..997743be --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.pb.go.golden @@ -0,0 +1,882 @@ +// Code generated by protoc-gen-go. +// source: my_test/test.proto +// DO NOT EDIT! + +/* +Package my_test is a generated protocol buffer package. + +This package holds interesting messages. + +It is generated from these files: + my_test/test.proto + +It has these top-level messages: + Request + Reply + OtherBase + ReplyExtensions + OtherReplyExtensions + OldReply + Communique +*/ +package my_test + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/golang/protobuf/protoc-gen-go/testdata/multi" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +type HatType int32 + +const ( + // deliberately skipping 0 + HatType_FEDORA HatType = 1 + HatType_FEZ HatType = 2 +) + +var HatType_name = map[int32]string{ + 1: "FEDORA", + 2: "FEZ", +} +var HatType_value = map[string]int32{ + "FEDORA": 1, + "FEZ": 2, +} + +func (x HatType) Enum() *HatType { + p := new(HatType) + *p = x + return p +} +func (x HatType) String() string { + return proto.EnumName(HatType_name, int32(x)) +} +func (x *HatType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(HatType_value, data, "HatType") + if err != nil { + return err + } + *x = HatType(value) + return nil +} + +// This enum represents days of the week. +type Days int32 + +const ( + Days_MONDAY Days = 1 + Days_TUESDAY Days = 2 + Days_LUNDI Days = 1 +) + +var Days_name = map[int32]string{ + 1: "MONDAY", + 2: "TUESDAY", + // Duplicate value: 1: "LUNDI", +} +var Days_value = map[string]int32{ + "MONDAY": 1, + "TUESDAY": 2, + "LUNDI": 1, +} + +func (x Days) Enum() *Days { + p := new(Days) + *p = x + return p +} +func (x Days) String() string { + return proto.EnumName(Days_name, int32(x)) +} +func (x *Days) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Days_value, data, "Days") + if err != nil { + return err + } + *x = Days(value) + return nil +} + +type Request_Color int32 + +const ( + Request_RED Request_Color = 0 + Request_GREEN Request_Color = 1 + Request_BLUE Request_Color = 2 +) + +var Request_Color_name = map[int32]string{ + 0: "RED", + 1: "GREEN", + 2: "BLUE", +} +var Request_Color_value = map[string]int32{ + "RED": 0, + "GREEN": 1, + "BLUE": 2, +} + +func (x Request_Color) Enum() *Request_Color { + p := new(Request_Color) + *p = x + return p +} +func (x Request_Color) String() string { + return proto.EnumName(Request_Color_name, int32(x)) +} +func (x *Request_Color) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Request_Color_value, data, "Request_Color") + if err != nil { + return err + } + *x = Request_Color(value) + return nil +} + +type Reply_Entry_Game int32 + +const ( + Reply_Entry_FOOTBALL Reply_Entry_Game = 1 + Reply_Entry_TENNIS Reply_Entry_Game = 2 +) + +var Reply_Entry_Game_name = map[int32]string{ + 1: "FOOTBALL", + 2: "TENNIS", +} +var Reply_Entry_Game_value = map[string]int32{ + "FOOTBALL": 1, + "TENNIS": 2, +} + +func (x Reply_Entry_Game) Enum() *Reply_Entry_Game { + p := new(Reply_Entry_Game) + *p = x + return p +} +func (x Reply_Entry_Game) String() string { + return proto.EnumName(Reply_Entry_Game_name, int32(x)) +} +func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Reply_Entry_Game_value, data, "Reply_Entry_Game") + if err != nil { + return err + } + *x = Reply_Entry_Game(value) + return nil +} + +// This is a message that might be sent somewhere. +type Request struct { + Key []int64 `protobuf:"varint,1,rep,name=key" json:"key,omitempty"` + // optional imp.ImportedMessage imported_message = 2; + Hue *Request_Color `protobuf:"varint,3,opt,name=hue,enum=my.test.Request_Color" json:"hue,omitempty"` + Hat *HatType `protobuf:"varint,4,opt,name=hat,enum=my.test.HatType,def=1" json:"hat,omitempty"` + // optional imp.ImportedMessage.Owner owner = 6; + Deadline *float32 `protobuf:"fixed32,7,opt,name=deadline,def=inf" json:"deadline,omitempty"` + Somegroup *Request_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` + // This is a map field. It will generate map[int32]string. + NameMapping map[int32]string `protobuf:"bytes,14,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // This is a map field whose value type is a message. + MsgMapping map[int64]*Reply `protobuf:"bytes,15,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Reset_ *int32 `protobuf:"varint,12,opt,name=reset" json:"reset,omitempty"` + // This field should not conflict with any getters. + GetKey_ *string `protobuf:"bytes,16,opt,name=get_key,json=getKey" json:"get_key,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Request) Reset() { *m = Request{} } +func (m *Request) String() string { return proto.CompactTextString(m) } +func (*Request) ProtoMessage() {} + +const Default_Request_Hat HatType = HatType_FEDORA + +var Default_Request_Deadline float32 = float32(math.Inf(1)) + +func (m *Request) GetKey() []int64 { + if m != nil { + return m.Key + } + return nil +} + +func (m *Request) GetHue() Request_Color { + if m != nil && m.Hue != nil { + return *m.Hue + } + return Request_RED +} + +func (m *Request) GetHat() HatType { + if m != nil && m.Hat != nil { + return *m.Hat + } + return Default_Request_Hat +} + +func (m *Request) GetDeadline() float32 { + if m != nil && m.Deadline != nil { + return *m.Deadline + } + return Default_Request_Deadline +} + +func (m *Request) GetSomegroup() *Request_SomeGroup { + if m != nil { + return m.Somegroup + } + return nil +} + +func (m *Request) GetNameMapping() map[int32]string { + if m != nil { + return m.NameMapping + } + return nil +} + +func (m *Request) GetMsgMapping() map[int64]*Reply { + if m != nil { + return m.MsgMapping + } + return nil +} + +func (m *Request) GetReset_() int32 { + if m != nil && m.Reset_ != nil { + return *m.Reset_ + } + return 0 +} + +func (m *Request) GetGetKey_() string { + if m != nil && m.GetKey_ != nil { + return *m.GetKey_ + } + return "" +} + +type Request_SomeGroup struct { + GroupField *int32 `protobuf:"varint,9,opt,name=group_field,json=groupField" json:"group_field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Request_SomeGroup) Reset() { *m = Request_SomeGroup{} } +func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) } +func (*Request_SomeGroup) ProtoMessage() {} + +func (m *Request_SomeGroup) GetGroupField() int32 { + if m != nil && m.GroupField != nil { + return *m.GroupField + } + return 0 +} + +type Reply struct { + Found []*Reply_Entry `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"` + CompactKeys []int32 `protobuf:"varint,2,rep,packed,name=compact_keys,json=compactKeys" json:"compact_keys,omitempty"` + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Reply) Reset() { *m = Reply{} } +func (m *Reply) String() string { return proto.CompactTextString(m) } +func (*Reply) ProtoMessage() {} + +var extRange_Reply = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*Reply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_Reply +} +func (m *Reply) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +func (m *Reply) GetFound() []*Reply_Entry { + if m != nil { + return m.Found + } + return nil +} + +func (m *Reply) GetCompactKeys() []int32 { + if m != nil { + return m.CompactKeys + } + return nil +} + +type Reply_Entry struct { + KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng,json=keyThatNeeds1234camelCasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` + Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` + XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=myFieldName2" json:"_my_field_name_2,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Reply_Entry) Reset() { *m = Reply_Entry{} } +func (m *Reply_Entry) String() string { return proto.CompactTextString(m) } +func (*Reply_Entry) ProtoMessage() {} + +const Default_Reply_Entry_Value int64 = 7 + +func (m *Reply_Entry) GetKeyThatNeeds_1234Camel_CasIng() int64 { + if m != nil && m.KeyThatNeeds_1234Camel_CasIng != nil { + return *m.KeyThatNeeds_1234Camel_CasIng + } + return 0 +} + +func (m *Reply_Entry) GetValue() int64 { + if m != nil && m.Value != nil { + return *m.Value + } + return Default_Reply_Entry_Value +} + +func (m *Reply_Entry) GetXMyFieldName_2() int64 { + if m != nil && m.XMyFieldName_2 != nil { + return *m.XMyFieldName_2 + } + return 0 +} + +type OtherBase struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OtherBase) Reset() { *m = OtherBase{} } +func (m *OtherBase) String() string { return proto.CompactTextString(m) } +func (*OtherBase) ProtoMessage() {} + +var extRange_OtherBase = []proto.ExtensionRange{ + {100, 536870911}, +} + +func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OtherBase +} +func (m *OtherBase) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +func (m *OtherBase) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +type ReplyExtensions struct { + XXX_unrecognized []byte `json:"-"` +} + +func (m *ReplyExtensions) Reset() { *m = ReplyExtensions{} } +func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) } +func (*ReplyExtensions) ProtoMessage() {} + +var E_ReplyExtensions_Time = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*float64)(nil), + Field: 101, + Name: "my.test.ReplyExtensions.time", + Tag: "fixed64,101,opt,name=time", +} + +var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*ReplyExtensions)(nil), + Field: 105, + Name: "my.test.ReplyExtensions.carrot", + Tag: "bytes,105,opt,name=carrot", +} + +var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ + ExtendedType: (*OtherBase)(nil), + ExtensionType: (*ReplyExtensions)(nil), + Field: 101, + Name: "my.test.ReplyExtensions.donut", + Tag: "bytes,101,opt,name=donut", +} + +type OtherReplyExtensions struct { + Key *int32 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OtherReplyExtensions) Reset() { *m = OtherReplyExtensions{} } +func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) } +func (*OtherReplyExtensions) ProtoMessage() {} + +func (m *OtherReplyExtensions) GetKey() int32 { + if m != nil && m.Key != nil { + return *m.Key + } + return 0 +} + +type OldReply struct { + XXX_extensions map[int32]proto.Extension `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OldReply) Reset() { *m = OldReply{} } +func (m *OldReply) String() string { return proto.CompactTextString(m) } +func (*OldReply) ProtoMessage() {} + +func (m *OldReply) Marshal() ([]byte, error) { + return proto.MarshalMessageSet(m.ExtensionMap()) +} +func (m *OldReply) Unmarshal(buf []byte) error { + return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) +} +func (m *OldReply) MarshalJSON() ([]byte, error) { + return proto.MarshalMessageSetJSON(m.XXX_extensions) +} +func (m *OldReply) UnmarshalJSON(buf []byte) error { + return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) +} + +// ensure OldReply satisfies proto.Marshaler and proto.Unmarshaler +var _ proto.Marshaler = (*OldReply)(nil) +var _ proto.Unmarshaler = (*OldReply)(nil) + +var extRange_OldReply = []proto.ExtensionRange{ + {100, 2147483646}, +} + +func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_OldReply +} +func (m *OldReply) ExtensionMap() map[int32]proto.Extension { + if m.XXX_extensions == nil { + m.XXX_extensions = make(map[int32]proto.Extension) + } + return m.XXX_extensions +} + +type Communique struct { + MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry,json=makeMeCry" json:"make_me_cry,omitempty"` + // This is a oneof, called "union". + // + // Types that are valid to be assigned to Union: + // *Communique_Number + // *Communique_Name + // *Communique_Data + // *Communique_TempC + // *Communique_Height + // *Communique_Today + // *Communique_Maybe + // *Communique_Delta_ + // *Communique_Msg + // *Communique_Somegroup + Union isCommunique_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique) Reset() { *m = Communique{} } +func (m *Communique) String() string { return proto.CompactTextString(m) } +func (*Communique) ProtoMessage() {} + +type isCommunique_Union interface { + isCommunique_Union() +} + +type Communique_Number struct { + Number int32 `protobuf:"varint,5,opt,name=number,oneof"` +} +type Communique_Name struct { + Name string `protobuf:"bytes,6,opt,name=name,oneof"` +} +type Communique_Data struct { + Data []byte `protobuf:"bytes,7,opt,name=data,oneof"` +} +type Communique_TempC struct { + TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,json=tempC,oneof"` +} +type Communique_Height struct { + Height float32 `protobuf:"fixed32,9,opt,name=height,oneof"` +} +type Communique_Today struct { + Today Days `protobuf:"varint,10,opt,name=today,enum=my.test.Days,oneof"` +} +type Communique_Maybe struct { + Maybe bool `protobuf:"varint,11,opt,name=maybe,oneof"` +} +type Communique_Delta_ struct { + Delta int32 `protobuf:"zigzag32,12,opt,name=delta,oneof"` +} +type Communique_Msg struct { + Msg *Reply `protobuf:"bytes,13,opt,name=msg,oneof"` +} +type Communique_Somegroup struct { + Somegroup *Communique_SomeGroup `protobuf:"group,14,opt,name=SomeGroup,json=somegroup,oneof"` +} + +func (*Communique_Number) isCommunique_Union() {} +func (*Communique_Name) isCommunique_Union() {} +func (*Communique_Data) isCommunique_Union() {} +func (*Communique_TempC) isCommunique_Union() {} +func (*Communique_Height) isCommunique_Union() {} +func (*Communique_Today) isCommunique_Union() {} +func (*Communique_Maybe) isCommunique_Union() {} +func (*Communique_Delta_) isCommunique_Union() {} +func (*Communique_Msg) isCommunique_Union() {} +func (*Communique_Somegroup) isCommunique_Union() {} + +func (m *Communique) GetUnion() isCommunique_Union { + if m != nil { + return m.Union + } + return nil +} + +func (m *Communique) GetMakeMeCry() bool { + if m != nil && m.MakeMeCry != nil { + return *m.MakeMeCry + } + return false +} + +func (m *Communique) GetNumber() int32 { + if x, ok := m.GetUnion().(*Communique_Number); ok { + return x.Number + } + return 0 +} + +func (m *Communique) GetName() string { + if x, ok := m.GetUnion().(*Communique_Name); ok { + return x.Name + } + return "" +} + +func (m *Communique) GetData() []byte { + if x, ok := m.GetUnion().(*Communique_Data); ok { + return x.Data + } + return nil +} + +func (m *Communique) GetTempC() float64 { + if x, ok := m.GetUnion().(*Communique_TempC); ok { + return x.TempC + } + return 0 +} + +func (m *Communique) GetHeight() float32 { + if x, ok := m.GetUnion().(*Communique_Height); ok { + return x.Height + } + return 0 +} + +func (m *Communique) GetToday() Days { + if x, ok := m.GetUnion().(*Communique_Today); ok { + return x.Today + } + return Days_MONDAY +} + +func (m *Communique) GetMaybe() bool { + if x, ok := m.GetUnion().(*Communique_Maybe); ok { + return x.Maybe + } + return false +} + +func (m *Communique) GetDelta() int32 { + if x, ok := m.GetUnion().(*Communique_Delta_); ok { + return x.Delta + } + return 0 +} + +func (m *Communique) GetMsg() *Reply { + if x, ok := m.GetUnion().(*Communique_Msg); ok { + return x.Msg + } + return nil +} + +func (m *Communique) GetSomegroup() *Communique_SomeGroup { + if x, ok := m.GetUnion().(*Communique_Somegroup); ok { + return x.Somegroup + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, _Communique_OneofSizer, []interface{}{ + (*Communique_Number)(nil), + (*Communique_Name)(nil), + (*Communique_Data)(nil), + (*Communique_TempC)(nil), + (*Communique_Height)(nil), + (*Communique_Today)(nil), + (*Communique_Maybe)(nil), + (*Communique_Delta_)(nil), + (*Communique_Msg)(nil), + (*Communique_Somegroup)(nil), + } +} + +func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Number)) + case *Communique_Name: + b.EncodeVarint(6<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Name) + case *Communique_Data: + b.EncodeVarint(7<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Data) + case *Communique_TempC: + b.EncodeVarint(8<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.TempC)) + case *Communique_Height: + b.EncodeVarint(9<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.Height))) + case *Communique_Today: + b.EncodeVarint(10<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Today)) + case *Communique_Maybe: + t := uint64(0) + if x.Maybe { + t = 1 + } + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Communique_Delta_: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeZigzag32(uint64(x.Delta)) + case *Communique_Msg: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Msg); err != nil { + return err + } + case *Communique_Somegroup: + b.EncodeVarint(14<<3 | proto.WireStartGroup) + if err := b.Marshal(x.Somegroup); err != nil { + return err + } + b.EncodeVarint(14<<3 | proto.WireEndGroup) + case nil: + default: + return fmt.Errorf("Communique.Union has unexpected type %T", x) + } + return nil +} + +func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Communique) + switch tag { + case 5: // union.number + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Number{int32(x)} + return true, err + case 6: // union.name + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Union = &Communique_Name{x} + return true, err + case 7: // union.data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.Union = &Communique_Data{x} + return true, err + case 8: // union.temp_c + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Union = &Communique_TempC{math.Float64frombits(x)} + return true, err + case 9: // union.height + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Union = &Communique_Height{math.Float32frombits(uint32(x))} + return true, err + case 10: // union.today + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Today{Days(x)} + return true, err + case 11: // union.maybe + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &Communique_Maybe{x != 0} + return true, err + case 12: // union.delta + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeZigzag32() + m.Union = &Communique_Delta_{int32(x)} + return true, err + case 13: // union.msg + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Reply) + err := b.DecodeMessage(msg) + m.Union = &Communique_Msg{msg} + return true, err + case 14: // union.somegroup + if wire != proto.WireStartGroup { + return true, proto.ErrInternalBadWireType + } + msg := new(Communique_SomeGroup) + err := b.DecodeGroup(msg) + m.Union = &Communique_Somegroup{msg} + return true, err + default: + return false, nil + } +} + +func _Communique_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Communique) + // union + switch x := m.Union.(type) { + case *Communique_Number: + n += proto.SizeVarint(5<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Number)) + case *Communique_Name: + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Name))) + n += len(x.Name) + case *Communique_Data: + n += proto.SizeVarint(7<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.Data))) + n += len(x.Data) + case *Communique_TempC: + n += proto.SizeVarint(8<<3 | proto.WireFixed64) + n += 8 + case *Communique_Height: + n += proto.SizeVarint(9<<3 | proto.WireFixed32) + n += 4 + case *Communique_Today: + n += proto.SizeVarint(10<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.Today)) + case *Communique_Maybe: + n += proto.SizeVarint(11<<3 | proto.WireVarint) + n += 1 + case *Communique_Delta_: + n += proto.SizeVarint(12<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64((uint32(x.Delta) << 1) ^ uint32((int32(x.Delta) >> 31)))) + case *Communique_Msg: + s := proto.Size(x.Msg) + n += proto.SizeVarint(13<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Communique_Somegroup: + n += proto.SizeVarint(14<<3 | proto.WireStartGroup) + n += proto.Size(x.Somegroup) + n += proto.SizeVarint(14<<3 | proto.WireEndGroup) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type Communique_SomeGroup struct { + Member *string `protobuf:"bytes,15,opt,name=member" json:"member,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique_SomeGroup) Reset() { *m = Communique_SomeGroup{} } +func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) } +func (*Communique_SomeGroup) ProtoMessage() {} + +func (m *Communique_SomeGroup) GetMember() string { + if m != nil && m.Member != nil { + return *m.Member + } + return "" +} + +type Communique_Delta struct { + XXX_unrecognized []byte `json:"-"` +} + +func (m *Communique_Delta) Reset() { *m = Communique_Delta{} } +func (m *Communique_Delta) String() string { return proto.CompactTextString(m) } +func (*Communique_Delta) ProtoMessage() {} + +var E_Tag = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*string)(nil), + Field: 103, + Name: "my.test.tag", + Tag: "bytes,103,opt,name=tag", +} + +var E_Donut = &proto.ExtensionDesc{ + ExtendedType: (*Reply)(nil), + ExtensionType: (*OtherReplyExtensions)(nil), + Field: 106, + Name: "my.test.donut", + Tag: "bytes,106,opt,name=donut", +} + +func init() { + proto.RegisterType((*Request)(nil), "my.test.Request") + proto.RegisterType((*Request_SomeGroup)(nil), "my.test.Request.SomeGroup") + proto.RegisterType((*Reply)(nil), "my.test.Reply") + proto.RegisterType((*Reply_Entry)(nil), "my.test.Reply.Entry") + proto.RegisterType((*OtherBase)(nil), "my.test.OtherBase") + proto.RegisterType((*ReplyExtensions)(nil), "my.test.ReplyExtensions") + proto.RegisterType((*OtherReplyExtensions)(nil), "my.test.OtherReplyExtensions") + proto.RegisterType((*OldReply)(nil), "my.test.OldReply") + proto.RegisterType((*Communique)(nil), "my.test.Communique") + proto.RegisterType((*Communique_SomeGroup)(nil), "my.test.Communique.SomeGroup") + proto.RegisterType((*Communique_Delta)(nil), "my.test.Communique.Delta") + proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value) + proto.RegisterEnum("my.test.Days", Days_name, Days_value) + proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value) + proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value) + proto.RegisterExtension(E_ReplyExtensions_Time) + proto.RegisterExtension(E_ReplyExtensions_Carrot) + proto.RegisterExtension(E_ReplyExtensions_Donut) + proto.RegisterExtension(E_Tag) + proto.RegisterExtension(E_Donut) +} diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.proto new file mode 100644 index 00000000..8e709463 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/my_test/test.proto @@ -0,0 +1,156 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto2"; + +// This package holds interesting messages. +package my.test; // dotted package name + +//import "imp.proto"; +import "multi/multi1.proto"; // unused import + +enum HatType { + // deliberately skipping 0 + FEDORA = 1; + FEZ = 2; +} + +// This enum represents days of the week. +enum Days { + option allow_alias = true; + + MONDAY = 1; + TUESDAY = 2; + LUNDI = 1; // same value as MONDAY +} + +// This is a message that might be sent somewhere. +message Request { + enum Color { + RED = 0; + GREEN = 1; + BLUE = 2; + } + repeated int64 key = 1; +// optional imp.ImportedMessage imported_message = 2; + optional Color hue = 3; // no default + optional HatType hat = 4 [default=FEDORA]; +// optional imp.ImportedMessage.Owner owner = 6; + optional float deadline = 7 [default=inf]; + optional group SomeGroup = 8 { + optional int32 group_field = 9; + } + + // These foreign types are in imp2.proto, + // which is publicly imported by imp.proto. +// optional imp.PubliclyImportedMessage pub = 10; +// optional imp.PubliclyImportedEnum pub_enum = 13 [default=HAIR]; + + + // This is a map field. It will generate map[int32]string. + map name_mapping = 14; + // This is a map field whose value type is a message. + map msg_mapping = 15; + + optional int32 reset = 12; + // This field should not conflict with any getters. + optional string get_key = 16; +} + +message Reply { + message Entry { + required int64 key_that_needs_1234camel_CasIng = 1; + optional int64 value = 2 [default=7]; + optional int64 _my_field_name_2 = 3; + enum Game { + FOOTBALL = 1; + TENNIS = 2; + } + } + repeated Entry found = 1; + repeated int32 compact_keys = 2 [packed=true]; + extensions 100 to max; +} + +message OtherBase { + optional string name = 1; + extensions 100 to max; +} + +message ReplyExtensions { + extend Reply { + optional double time = 101; + optional ReplyExtensions carrot = 105; + } + extend OtherBase { + optional ReplyExtensions donut = 101; + } +} + +message OtherReplyExtensions { + optional int32 key = 1; +} + +// top-level extension +extend Reply { + optional string tag = 103; + optional OtherReplyExtensions donut = 106; +// optional imp.ImportedMessage elephant = 107; // extend with message from another file. +} + +message OldReply { + // Extensions will be encoded in MessageSet wire format. + option message_set_wire_format = true; + extensions 100 to max; +} + +message Communique { + optional bool make_me_cry = 1; + + // This is a oneof, called "union". + oneof union { + int32 number = 5; + string name = 6; + bytes data = 7; + double temp_c = 8; + float height = 9; + Days today = 10; + bool maybe = 11; + sint32 delta = 12; // name will conflict with Delta below + Reply msg = 13; + group SomeGroup = 14 { + optional string member = 15; + } + } + + message Delta {} +} + diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/proto3.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/proto3.proto new file mode 100644 index 00000000..c994914e --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/testdata/proto3.proto @@ -0,0 +1,52 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2014 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +syntax = "proto3"; + +package proto3; + +message Request { + enum Flavour { + SWEET = 0; + SOUR = 1; + UMAMI = 2; + GOPHERLICIOUS = 3; + } + string name = 1; + repeated int64 key = 2; + Flavour taste = 3; + Book book = 4; +} + +message Book { + string title = 1; + bytes raw_data = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go new file mode 100644 index 00000000..89e07ae1 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any.go @@ -0,0 +1,136 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements functions to marshal proto.Message to/from +// google.protobuf.Any message. + +import ( + "fmt" + "reflect" + "strings" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes/any" +) + +const googleApis = "type.googleapis.com/" + +// AnyMessageName returns the name of the message contained in a google.protobuf.Any message. +// +// Note that regular type assertions should be done using the Is +// function. AnyMessageName is provided for less common use cases like filtering a +// sequence of Any messages based on a set of allowed message type names. +func AnyMessageName(any *any.Any) (string, error) { + slash := strings.LastIndex(any.TypeUrl, "/") + if slash < 0 { + return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) + } + return any.TypeUrl[slash+1:], nil +} + +// MarshalAny takes the protocol buffer and encodes it into google.protobuf.Any. +func MarshalAny(pb proto.Message) (*any.Any, error) { + value, err := proto.Marshal(pb) + if err != nil { + return nil, err + } + return &any.Any{TypeUrl: googleApis + proto.MessageName(pb), Value: value}, nil +} + +// DynamicAny is a value that can be passed to UnmarshalAny to automatically +// allocate a proto.Message for the type specified in a google.protobuf.Any +// message. The allocated message is stored in the embedded proto.Message. +// +// Example: +// +// var x ptypes.DynamicAny +// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... } +// fmt.Printf("unmarshaled message: %v", x.Message) +type DynamicAny struct { + proto.Message +} + +// Empty returns a new proto.Message of the type specified in a +// google.protobuf.Any message. It returns an error if corresponding message +// type isn't linked in. +func Empty(any *any.Any) (proto.Message, error) { + aname, err := AnyMessageName(any) + if err != nil { + return nil, err + } + + t := proto.MessageType(aname) + if t == nil { + return nil, fmt.Errorf("any: message type %q isn't linked in", aname) + } + return reflect.New(t.Elem()).Interface().(proto.Message), nil +} + +// UnmarshalAny parses the protocol buffer representation in a google.protobuf.Any +// message and places the decoded result in pb. It returns an error if type of +// contents of Any message does not match type of pb message. +// +// pb can be a proto.Message, or a *DynamicAny. +func UnmarshalAny(any *any.Any, pb proto.Message) error { + if d, ok := pb.(*DynamicAny); ok { + if d.Message == nil { + var err error + d.Message, err = Empty(any) + if err != nil { + return err + } + } + return UnmarshalAny(any, d.Message) + } + + aname, err := AnyMessageName(any) + if err != nil { + return err + } + + mname := proto.MessageName(pb) + if aname != mname { + return fmt.Errorf("mismatched message type: got %q want %q", aname, mname) + } + return proto.Unmarshal(any.Value, pb) +} + +// Is returns true if any value contains a given message type. +func Is(any *any.Any, pb proto.Message) bool { + aname, err := AnyMessageName(any) + if err != nil { + return false + } + + return aname == proto.MessageName(pb) +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go new file mode 100644 index 00000000..72490daf --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go @@ -0,0 +1,145 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/any/any.proto +// DO NOT EDIT! + +/* +Package any is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/any/any.proto + +It has these top-level messages: + Any +*/ +package any + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +type Any struct { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the schema `http`, `https`, or no schema, the + // following restrictions and interpretations apply: + // + // * If no schema is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemas other than `http`, `https` (or the empty schema) might be + // used with implementation specific semantics. + // + TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl" json:"type_url,omitempty"` + // Must be a valid serialized protocol buffer of the above specified type. + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Any) Reset() { *m = Any{} } +func (m *Any) String() string { return proto.CompactTextString(m) } +func (*Any) ProtoMessage() {} +func (*Any) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Any) XXX_WellKnownType() string { return "Any" } + +func init() { + proto.RegisterType((*Any)(nil), "google.protobuf.Any") +} + +func init() { proto.RegisterFile("github.com/golang/protobuf/ptypes/any/any.proto", fileDescriptor0) } + +var fileDescriptor0 = []byte{ + // 184 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, + 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0xcc, + 0xab, 0x04, 0x61, 0x3d, 0xb0, 0xb8, 0x10, 0x7f, 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x1e, 0x4c, + 0x95, 0x92, 0x19, 0x17, 0xb3, 0x63, 0x5e, 0xa5, 0x90, 0x24, 0x17, 0x07, 0x48, 0x79, 0x7c, 0x69, + 0x51, 0x8e, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x3b, 0x88, 0x1f, 0x5a, 0x94, 0x23, 0x24, + 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x9a, 0x2a, 0xc1, 0x04, 0x14, 0xe7, 0x09, 0x82, 0x70, 0x9c, + 0x8a, 0xb8, 0x84, 0x81, 0x96, 0xea, 0xa1, 0x19, 0xe7, 0xc4, 0x01, 0x34, 0x2c, 0x00, 0xc4, 0x09, + 0x60, 0x8c, 0x52, 0x25, 0xca, 0x71, 0x0b, 0x18, 0x19, 0x17, 0x31, 0x31, 0xbb, 0x07, 0x38, 0xad, + 0x62, 0x92, 0x73, 0x87, 0x98, 0x16, 0x00, 0x55, 0xa5, 0x17, 0x9e, 0x9a, 0x93, 0xe3, 0x9d, 0x97, + 0x5f, 0x9e, 0x17, 0x02, 0x52, 0x9d, 0xc4, 0x06, 0xd6, 0x6e, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, + 0xc6, 0x4d, 0x03, 0x23, 0xf6, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.proto b/vendor/github.com/golang/protobuf/ptypes/any/any.proto new file mode 100644 index 00000000..45db6ede --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.proto @@ -0,0 +1,130 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/any"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name whose content describes the type of the + // serialized protocol buffer message. + // + // For URLs which use the schema `http`, `https`, or no schema, the + // following restrictions and interpretations apply: + // + // * If no schema is provided, `https` is assumed. + // * The last segment of the URL's path must represent the fully + // qualified name of the type (as in `path/google.protobuf.Duration`). + // The name should be in a canonical form (e.g., leading "." is + // not accepted). + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Schemas other than `http`, `https` (or the empty schema) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/any_test.go b/vendor/github.com/golang/protobuf/ptypes/any_test.go new file mode 100644 index 00000000..ed675b48 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any_test.go @@ -0,0 +1,113 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +import ( + "testing" + + "github.com/golang/protobuf/proto" + pb "github.com/golang/protobuf/protoc-gen-go/descriptor" + "github.com/golang/protobuf/ptypes/any" +) + +func TestMarshalUnmarshal(t *testing.T) { + orig := &any.Any{Value: []byte("test")} + + packed, err := MarshalAny(orig) + if err != nil { + t.Errorf("MarshalAny(%+v): got: _, %v exp: _, nil", orig, err) + } + + unpacked := &any.Any{} + err = UnmarshalAny(packed, unpacked) + if err != nil || !proto.Equal(unpacked, orig) { + t.Errorf("got: %v, %+v; want nil, %+v", err, unpacked, orig) + } +} + +func TestIs(t *testing.T) { + a, err := MarshalAny(&pb.FileDescriptorProto{}) + if err != nil { + t.Fatal(err) + } + if Is(a, &pb.DescriptorProto{}) { + t.Error("FileDescriptorProto is not a DescriptorProto, but Is says it is") + } + if !Is(a, &pb.FileDescriptorProto{}) { + t.Error("FileDescriptorProto is indeed a FileDescriptorProto, but Is says it is not") + } +} + +func TestIsDifferentUrlPrefixes(t *testing.T) { + m := &pb.FileDescriptorProto{} + a := &any.Any{TypeUrl: "foo/bar/" + proto.MessageName(m)} + if !Is(a, m) { + t.Errorf("message with type url %q didn't satisfy Is for type %q", a.TypeUrl, proto.MessageName(m)) + } +} + +func TestUnmarshalDynamic(t *testing.T) { + want := &pb.FileDescriptorProto{Name: proto.String("foo")} + a, err := MarshalAny(want) + if err != nil { + t.Fatal(err) + } + var got DynamicAny + if err := UnmarshalAny(a, &got); err != nil { + t.Fatal(err) + } + if !proto.Equal(got.Message, want) { + t.Errorf("invalid result from UnmarshalAny, got %q want %q", got.Message, want) + } +} + +func TestEmpty(t *testing.T) { + want := &pb.FileDescriptorProto{} + a, err := MarshalAny(want) + if err != nil { + t.Fatal(err) + } + got, err := Empty(a) + if err != nil { + t.Fatal(err) + } + if !proto.Equal(got, want) { + t.Errorf("unequal empty message, got %q, want %q", got, want) + } + + // that's a valid type_url for a message which shouldn't be linked into this + // test binary. We want an error. + a.TypeUrl = "type.googleapis.com/google.protobuf.FieldMask" + if _, err := Empty(a); err == nil { + t.Errorf("got no error for an attempt to create a message of type %q, which shouldn't be linked in", a.TypeUrl) + } +} diff --git a/vendor/github.com/golang/protobuf/ptypes/doc.go b/vendor/github.com/golang/protobuf/ptypes/doc.go new file mode 100644 index 00000000..c0d595da --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/doc.go @@ -0,0 +1,35 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* +Package ptypes contains code for interacting with well-known types. +*/ +package ptypes diff --git a/vendor/github.com/golang/protobuf/ptypes/duration.go b/vendor/github.com/golang/protobuf/ptypes/duration.go new file mode 100644 index 00000000..65cb0f8e --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration.go @@ -0,0 +1,102 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements conversions between google.protobuf.Duration +// and time.Duration. + +import ( + "errors" + "fmt" + "time" + + durpb "github.com/golang/protobuf/ptypes/duration" +) + +const ( + // Range of a durpb.Duration in seconds, as specified in + // google/protobuf/duration.proto. This is about 10,000 years in seconds. + maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) + minSeconds = -maxSeconds +) + +// validateDuration determines whether the durpb.Duration is valid according to the +// definition in google/protobuf/duration.proto. A valid durpb.Duration +// may still be too large to fit into a time.Duration (the range of durpb.Duration +// is about 10,000 years, and the range of time.Duration is about 290). +func validateDuration(d *durpb.Duration) error { + if d == nil { + return errors.New("duration: nil Duration") + } + if d.Seconds < minSeconds || d.Seconds > maxSeconds { + return fmt.Errorf("duration: %v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %v: seconds and nanos have different signs", d) + } + return nil +} + +// Duration converts a durpb.Duration to a time.Duration. Duration +// returns an error if the durpb.Duration is invalid or is too large to be +// represented in a time.Duration. +func Duration(p *durpb.Duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a durpb.Duration. +func DurationProto(d time.Duration) *durpb.Duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &durpb.Duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go new file mode 100644 index 00000000..ee7d8b8a --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/duration/duration.proto +// DO NOT EDIT! + +/* +Package duration is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/duration/duration.proto + +It has these top-level messages: + Duration +*/ +package duration + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// +type Duration struct { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Duration) Reset() { *m = Duration{} } +func (m *Duration) String() string { return proto.CompactTextString(m) } +func (*Duration) ProtoMessage() {} +func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Duration) XXX_WellKnownType() string { return "Duration" } + +func init() { + proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") +} + +func init() { + proto.RegisterFile("github.com/golang/protobuf/ptypes/duration/duration.proto", fileDescriptor0) +} + +var fileDescriptor0 = []byte{ + // 187 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, + 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0x29, + 0x2d, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x83, 0x33, 0xf4, 0xc0, 0x2a, 0x84, 0xf8, 0xd3, 0xf3, 0xf3, + 0xd3, 0x73, 0x52, 0xf5, 0x60, 0xea, 0x95, 0xac, 0xb8, 0x38, 0x5c, 0xa0, 0x4a, 0x84, 0x24, 0xb8, + 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, 0x60, + 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0xa0, 0x38, 0x6b, 0x10, + 0x84, 0xe3, 0x54, 0xc3, 0x25, 0x0c, 0x74, 0x82, 0x1e, 0x9a, 0x91, 0x4e, 0xbc, 0x30, 0x03, 0x03, + 0x40, 0x22, 0x01, 0x8c, 0x51, 0x5a, 0xc4, 0xbb, 0x77, 0x01, 0x23, 0xe3, 0x22, 0x26, 0x66, 0xf7, + 0x00, 0xa7, 0x55, 0x4c, 0x72, 0xee, 0x10, 0x73, 0x03, 0xa0, 0x4a, 0xf5, 0xc2, 0x53, 0x73, 0x72, + 0xbc, 0xf3, 0xf2, 0xcb, 0xf3, 0x42, 0x40, 0x5a, 0x92, 0xd8, 0xc0, 0x66, 0x18, 0x03, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x62, 0xfb, 0xb1, 0x51, 0x0e, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto new file mode 100644 index 00000000..96c1796d --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto @@ -0,0 +1,98 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/duration"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// +message Duration { + + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration_test.go b/vendor/github.com/golang/protobuf/ptypes/duration_test.go new file mode 100644 index 00000000..e761289f --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration_test.go @@ -0,0 +1,121 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +import ( + "math" + "testing" + "time" + + "github.com/golang/protobuf/proto" + durpb "github.com/golang/protobuf/ptypes/duration" +) + +const ( + minGoSeconds = math.MinInt64 / int64(1e9) + maxGoSeconds = math.MaxInt64 / int64(1e9) +) + +var durationTests = []struct { + proto *durpb.Duration + isValid bool + inRange bool + dur time.Duration +}{ + // The zero duration. + {&durpb.Duration{0, 0}, true, true, 0}, + // Some ordinary non-zero durations. + {&durpb.Duration{100, 0}, true, true, 100 * time.Second}, + {&durpb.Duration{-100, 0}, true, true, -100 * time.Second}, + {&durpb.Duration{100, 987}, true, true, 100*time.Second + 987}, + {&durpb.Duration{-100, -987}, true, true, -(100*time.Second + 987)}, + // The largest duration representable in Go. + {&durpb.Duration{maxGoSeconds, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, + // The smallest duration representable in Go. + {&durpb.Duration{minGoSeconds, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, + {nil, false, false, 0}, + {&durpb.Duration{-100, 987}, false, false, 0}, + {&durpb.Duration{100, -987}, false, false, 0}, + {&durpb.Duration{math.MinInt64, 0}, false, false, 0}, + {&durpb.Duration{math.MaxInt64, 0}, false, false, 0}, + // The largest valid duration. + {&durpb.Duration{maxSeconds, 1e9 - 1}, true, false, 0}, + // The smallest valid duration. + {&durpb.Duration{minSeconds, -(1e9 - 1)}, true, false, 0}, + // The smallest invalid duration above the valid range. + {&durpb.Duration{maxSeconds + 1, 0}, false, false, 0}, + // The largest invalid duration below the valid range. + {&durpb.Duration{minSeconds - 1, -(1e9 - 1)}, false, false, 0}, + // One nanosecond past the largest duration representable in Go. + {&durpb.Duration{maxGoSeconds, int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, + // One nanosecond past the smallest duration representable in Go. + {&durpb.Duration{minGoSeconds, int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, + // One second past the largest duration representable in Go. + {&durpb.Duration{maxGoSeconds + 1, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, + // One second past the smallest duration representable in Go. + {&durpb.Duration{minGoSeconds - 1, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, +} + +func TestValidateDuration(t *testing.T) { + for _, test := range durationTests { + err := validateDuration(test.proto) + gotValid := (err == nil) + if gotValid != test.isValid { + t.Errorf("validateDuration(%v) = %t, want %t", test.proto, gotValid, test.isValid) + } + } +} + +func TestDuration(t *testing.T) { + for _, test := range durationTests { + got, err := Duration(test.proto) + gotOK := (err == nil) + wantOK := test.isValid && test.inRange + if gotOK != wantOK { + t.Errorf("Duration(%v) ok = %t, want %t", test.proto, gotOK, wantOK) + } + if err == nil && got != test.dur { + t.Errorf("Duration(%v) = %v, want %v", test.proto, got, test.dur) + } + } +} + +func TestDurationProto(t *testing.T) { + for _, test := range durationTests { + if test.isValid && test.inRange { + got := DurationProto(test.dur) + if !proto.Equal(got, test.proto) { + t.Errorf("DurationProto(%v) = %v, want %v", test.dur, got, test.proto) + } + } + } +} diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go new file mode 100644 index 00000000..d49c09bc --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go @@ -0,0 +1,69 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/empty/empty.proto +// DO NOT EDIT! + +/* +Package empty is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/empty/empty.proto + +It has these top-level messages: + Empty +*/ +package empty + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +type Empty struct { +} + +func (m *Empty) Reset() { *m = Empty{} } +func (m *Empty) String() string { return proto.CompactTextString(m) } +func (*Empty) ProtoMessage() {} +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Empty) XXX_WellKnownType() string { return "Empty" } + +func init() { + proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") +} + +func init() { + proto.RegisterFile("github.com/golang/protobuf/ptypes/empty/empty.proto", fileDescriptor0) +} + +var fileDescriptor0 = []byte{ + // 148 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, + 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0xcd, + 0x05, 0x32, 0x20, 0xa4, 0x1e, 0x58, 0x4e, 0x88, 0x3f, 0x3d, 0x3f, 0x3f, 0x3d, 0x27, 0x55, 0x0f, + 0xa6, 0x52, 0x89, 0x9d, 0x8b, 0xd5, 0x15, 0x24, 0xef, 0x54, 0xc9, 0x25, 0x0c, 0x34, 0x49, 0x0f, + 0x4d, 0xde, 0x89, 0x0b, 0x2c, 0x1b, 0x00, 0xe2, 0x06, 0x30, 0x46, 0xa9, 0x13, 0x69, 0xe7, 0x02, + 0x46, 0xc6, 0x1f, 0x8c, 0x8c, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43, + 0x0c, 0x0d, 0x80, 0x2a, 0xd5, 0x0b, 0x4f, 0xcd, 0xc9, 0xf1, 0xce, 0xcb, 0x2f, 0xcf, 0x0b, 0x01, + 0x69, 0x49, 0x62, 0x03, 0x9b, 0x61, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xbb, 0xf4, 0x0e, + 0xd2, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto b/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto new file mode 100644 index 00000000..37f4cd10 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto @@ -0,0 +1,53 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/empty"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "EmptyProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +// The JSON representation for `Empty` is empty JSON object `{}`. +message Empty {} diff --git a/vendor/github.com/golang/protobuf/ptypes/regen.sh b/vendor/github.com/golang/protobuf/ptypes/regen.sh new file mode 100755 index 00000000..2a5b4e8b --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/regen.sh @@ -0,0 +1,66 @@ +#!/bin/bash -e +# +# This script fetches and rebuilds the "well-known types" protocol buffers. +# To run this you will need protoc and goprotobuf installed; +# see https://github.com/golang/protobuf for instructions. +# You also need Go and Git installed. + +PKG=github.com/golang/protobuf/ptypes +UPSTREAM=https://github.com/google/protobuf +UPSTREAM_SUBDIR=src/google/protobuf +PROTO_FILES=' + any.proto + duration.proto + empty.proto + struct.proto + timestamp.proto + wrappers.proto +' + +function die() { + echo 1>&2 $* + exit 1 +} + +# Sanity check that the right tools are accessible. +for tool in go git protoc protoc-gen-go; do + q=$(which $tool) || die "didn't find $tool" + echo 1>&2 "$tool: $q" +done + +tmpdir=$(mktemp -d -t regen-wkt.XXXXXX) +trap 'rm -rf $tmpdir' EXIT + +echo -n 1>&2 "finding package dir... " +pkgdir=$(go list -f '{{.Dir}}' $PKG) +echo 1>&2 $pkgdir +base=$(echo $pkgdir | sed "s,/$PKG\$,,") +echo 1>&2 "base: $base" +cd $base + +echo 1>&2 "fetching latest protos... " +git clone -q $UPSTREAM $tmpdir +# Pass 1: build mapping from upstream filename to our filename. +declare -A filename_map +for f in $(cd $PKG && find * -name '*.proto'); do + echo -n 1>&2 "looking for latest version of $f... " + up=$(cd $tmpdir/$UPSTREAM_SUBDIR && find * -name $(basename $f) | grep -v /testdata/) + echo 1>&2 $up + if [ $(echo $up | wc -w) != "1" ]; then + die "not exactly one match" + fi + filename_map[$up]=$f +done +# Pass 2: copy files +for up in "${!filename_map[@]}"; do + f=${filename_map[$up]} + shortname=$(basename $f | sed 's,\.proto$,,') + cp $tmpdir/$UPSTREAM_SUBDIR/$up $PKG/$f +done + +# Run protoc once per package. +for dir in $(find $PKG -name '*.proto' | xargs dirname | sort | uniq); do + echo 1>&2 "* $dir" + protoc --go_out=. $dir/*.proto +done +echo 1>&2 "All OK" diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go new file mode 100644 index 00000000..0b28e475 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go @@ -0,0 +1,382 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/struct/struct.proto +// DO NOT EDIT! + +/* +Package structpb is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/struct/struct.proto + +It has these top-level messages: + Struct + Value + ListValue +*/ +package structpb + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +type NullValue int32 + +const ( + // Null value. + NullValue_NULL_VALUE NullValue = 0 +) + +var NullValue_name = map[int32]string{ + 0: "NULL_VALUE", +} +var NullValue_value = map[string]int32{ + "NULL_VALUE": 0, +} + +func (x NullValue) String() string { + return proto.EnumName(NullValue_name, int32(x)) +} +func (NullValue) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (NullValue) XXX_WellKnownType() string { return "NullValue" } + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +type Struct struct { + // Unordered map of dynamically typed values. + Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` +} + +func (m *Struct) Reset() { *m = Struct{} } +func (m *Struct) String() string { return proto.CompactTextString(m) } +func (*Struct) ProtoMessage() {} +func (*Struct) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Struct) XXX_WellKnownType() string { return "Struct" } + +func (m *Struct) GetFields() map[string]*Value { + if m != nil { + return m.Fields + } + return nil +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +type Value struct { + // The kind of value. + // + // Types that are valid to be assigned to Kind: + // *Value_NullValue + // *Value_NumberValue + // *Value_StringValue + // *Value_BoolValue + // *Value_StructValue + // *Value_ListValue + Kind isValue_Kind `protobuf_oneof:"kind"` +} + +func (m *Value) Reset() { *m = Value{} } +func (m *Value) String() string { return proto.CompactTextString(m) } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (*Value) XXX_WellKnownType() string { return "Value" } + +type isValue_Kind interface { + isValue_Kind() +} + +type Value_NullValue struct { + NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,enum=google.protobuf.NullValue,oneof"` +} +type Value_NumberValue struct { + NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,oneof"` +} +type Value_StringValue struct { + StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,oneof"` +} +type Value_BoolValue struct { + BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,oneof"` +} +type Value_StructValue struct { + StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,oneof"` +} +type Value_ListValue struct { + ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,oneof"` +} + +func (*Value_NullValue) isValue_Kind() {} +func (*Value_NumberValue) isValue_Kind() {} +func (*Value_StringValue) isValue_Kind() {} +func (*Value_BoolValue) isValue_Kind() {} +func (*Value_StructValue) isValue_Kind() {} +func (*Value_ListValue) isValue_Kind() {} + +func (m *Value) GetKind() isValue_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (m *Value) GetNullValue() NullValue { + if x, ok := m.GetKind().(*Value_NullValue); ok { + return x.NullValue + } + return NullValue_NULL_VALUE +} + +func (m *Value) GetNumberValue() float64 { + if x, ok := m.GetKind().(*Value_NumberValue); ok { + return x.NumberValue + } + return 0 +} + +func (m *Value) GetStringValue() string { + if x, ok := m.GetKind().(*Value_StringValue); ok { + return x.StringValue + } + return "" +} + +func (m *Value) GetBoolValue() bool { + if x, ok := m.GetKind().(*Value_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (m *Value) GetStructValue() *Struct { + if x, ok := m.GetKind().(*Value_StructValue); ok { + return x.StructValue + } + return nil +} + +func (m *Value) GetListValue() *ListValue { + if x, ok := m.GetKind().(*Value_ListValue); ok { + return x.ListValue + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Value) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Value_OneofMarshaler, _Value_OneofUnmarshaler, _Value_OneofSizer, []interface{}{ + (*Value_NullValue)(nil), + (*Value_NumberValue)(nil), + (*Value_StringValue)(nil), + (*Value_BoolValue)(nil), + (*Value_StructValue)(nil), + (*Value_ListValue)(nil), + } +} + +func _Value_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Value) + // kind + switch x := m.Kind.(type) { + case *Value_NullValue: + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.NullValue)) + case *Value_NumberValue: + b.EncodeVarint(2<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.NumberValue)) + case *Value_StringValue: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringValue) + case *Value_BoolValue: + t := uint64(0) + if x.BoolValue { + t = 1 + } + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Value_StructValue: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.StructValue); err != nil { + return err + } + case *Value_ListValue: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListValue); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Value.Kind has unexpected type %T", x) + } + return nil +} + +func _Value_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Value) + switch tag { + case 1: // kind.null_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Kind = &Value_NullValue{NullValue(x)} + return true, err + case 2: // kind.number_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Kind = &Value_NumberValue{math.Float64frombits(x)} + return true, err + case 3: // kind.string_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Kind = &Value_StringValue{x} + return true, err + case 4: // kind.bool_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Kind = &Value_BoolValue{x != 0} + return true, err + case 5: // kind.struct_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Struct) + err := b.DecodeMessage(msg) + m.Kind = &Value_StructValue{msg} + return true, err + case 6: // kind.list_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ListValue) + err := b.DecodeMessage(msg) + m.Kind = &Value_ListValue{msg} + return true, err + default: + return false, nil + } +} + +func _Value_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Value) + // kind + switch x := m.Kind.(type) { + case *Value_NullValue: + n += proto.SizeVarint(1<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.NullValue)) + case *Value_NumberValue: + n += proto.SizeVarint(2<<3 | proto.WireFixed64) + n += 8 + case *Value_StringValue: + n += proto.SizeVarint(3<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(len(x.StringValue))) + n += len(x.StringValue) + case *Value_BoolValue: + n += proto.SizeVarint(4<<3 | proto.WireVarint) + n += 1 + case *Value_StructValue: + s := proto.Size(x.StructValue) + n += proto.SizeVarint(5<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case *Value_ListValue: + s := proto.Size(x.ListValue) + n += proto.SizeVarint(6<<3 | proto.WireBytes) + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +type ListValue struct { + // Repeated field of dynamically typed values. + Values []*Value `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"` +} + +func (m *ListValue) Reset() { *m = ListValue{} } +func (m *ListValue) String() string { return proto.CompactTextString(m) } +func (*ListValue) ProtoMessage() {} +func (*ListValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (*ListValue) XXX_WellKnownType() string { return "ListValue" } + +func (m *ListValue) GetValues() []*Value { + if m != nil { + return m.Values + } + return nil +} + +func init() { + proto.RegisterType((*Struct)(nil), "google.protobuf.Struct") + proto.RegisterType((*Value)(nil), "google.protobuf.Value") + proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue") + proto.RegisterEnum("google.protobuf.NullValue", NullValue_name, NullValue_value) +} + +func init() { + proto.RegisterFile("github.com/golang/protobuf/ptypes/struct/struct.proto", fileDescriptor0) +} + +var fileDescriptor0 = []byte{ + // 412 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x3b, 0x49, 0x1b, 0xcc, 0x8b, 0xd4, 0x12, 0x41, 0x4b, 0x05, 0x95, 0xf6, 0x52, 0x44, + 0x12, 0xac, 0x08, 0x62, 0xbd, 0x18, 0xa8, 0x15, 0x0c, 0x25, 0x46, 0x5b, 0xc1, 0x4b, 0x69, 0xda, + 0x34, 0x86, 0x4e, 0x67, 0x42, 0x7e, 0x28, 0x3d, 0xfa, 0x5f, 0x78, 0x5c, 0xf6, 0xb8, 0xc7, 0xfd, + 0x0b, 0x77, 0x7e, 0x24, 0xd9, 0xa5, 0xa5, 0xb0, 0xa7, 0x99, 0xf7, 0x9d, 0xcf, 0xfb, 0xce, 0x7b, + 0x6f, 0x06, 0xde, 0x45, 0x71, 0xfe, 0xbb, 0x08, 0xac, 0x35, 0xdd, 0xdb, 0x11, 0xc5, 0x2b, 0x12, + 0xd9, 0x49, 0x4a, 0x73, 0x1a, 0x14, 0x5b, 0x3b, 0xc9, 0x0f, 0x49, 0x98, 0xd9, 0x59, 0x9e, 0x16, + 0xeb, 0xbc, 0x5c, 0x2c, 0x71, 0x6a, 0x3e, 0x8a, 0x28, 0x8d, 0x70, 0x68, 0x55, 0x6c, 0xff, 0x3f, + 0x02, 0xed, 0xbb, 0x20, 0xcc, 0x31, 0x68, 0xdb, 0x38, 0xc4, 0x9b, 0xac, 0x8b, 0x5e, 0xaa, 0x43, + 0x63, 0x34, 0xb0, 0x8e, 0x60, 0x4b, 0x82, 0xd6, 0x67, 0x41, 0x4d, 0x48, 0x9e, 0x1e, 0xfc, 0x32, + 0xa5, 0xf7, 0x0d, 0x8c, 0x3b, 0xb2, 0xd9, 0x01, 0x75, 0x17, 0x1e, 0x98, 0x11, 0x1a, 0xea, 0x3e, + 0xdf, 0x9a, 0xaf, 0xa1, 0xf5, 0x67, 0x85, 0x8b, 0xb0, 0xab, 0x30, 0xcd, 0x18, 0x3d, 0x39, 0x31, + 0x5f, 0xf0, 0x53, 0x5f, 0x42, 0x1f, 0x94, 0xf7, 0xa8, 0x7f, 0xad, 0x40, 0x4b, 0x88, 0xac, 0x32, + 0x20, 0x05, 0xc6, 0x4b, 0x69, 0xc0, 0x4d, 0xdb, 0xa3, 0xde, 0x89, 0xc1, 0x8c, 0x21, 0x82, 0xff, + 0xd2, 0xf0, 0x75, 0x52, 0x05, 0xe6, 0x00, 0x1e, 0x92, 0x62, 0x1f, 0x84, 0xe9, 0xf2, 0xf6, 0x7e, + 0xc4, 0x10, 0x43, 0xaa, 0x35, 0xc4, 0xe6, 0x14, 0x93, 0xa8, 0x84, 0x54, 0x5e, 0x38, 0x87, 0xa4, + 0x2a, 0xa1, 0x17, 0x00, 0x01, 0xa5, 0x55, 0x19, 0x4d, 0x86, 0x3c, 0xe0, 0x57, 0x71, 0x4d, 0x02, + 0x1f, 0x85, 0x0b, 0x1b, 0x51, 0x89, 0xb4, 0x44, 0xab, 0x4f, 0xcf, 0xcc, 0xb1, 0xb4, 0x67, 0xbb, + 0xba, 0x4b, 0x1c, 0x67, 0x55, 0xae, 0x26, 0x72, 0x4f, 0xbb, 0x74, 0x19, 0x52, 0x77, 0x89, 0xab, + 0xc0, 0xd1, 0xa0, 0xb9, 0x8b, 0xc9, 0xa6, 0x3f, 0x06, 0xbd, 0x26, 0x4c, 0x0b, 0x34, 0x61, 0x56, + 0xbd, 0xe8, 0xb9, 0xa1, 0x97, 0xd4, 0xab, 0x67, 0xa0, 0xd7, 0x43, 0x34, 0xdb, 0x00, 0xb3, 0xb9, + 0xeb, 0x2e, 0x17, 0x9f, 0xdc, 0xf9, 0xa4, 0xd3, 0x70, 0xfe, 0x21, 0x78, 0xcc, 0x7e, 0xdb, 0xb1, + 0x85, 0x63, 0xc8, 0x6e, 0x3c, 0x1e, 0x7b, 0xe8, 0xd7, 0x9b, 0xfb, 0x7e, 0xcc, 0xb1, 0x5c, 0x92, + 0xe0, 0x02, 0xa1, 0x4b, 0x45, 0x9d, 0x7a, 0xce, 0x95, 0xf2, 0x7c, 0x2a, 0xcd, 0xbd, 0xaa, 0xbe, + 0x9f, 0x21, 0xc6, 0x5f, 0x09, 0xfd, 0x4b, 0x7e, 0xf0, 0xcc, 0x40, 0x13, 0x56, 0x6f, 0x6f, 0x02, + 0x00, 0x00, 0xff, 0xff, 0xbc, 0xcf, 0x6d, 0x50, 0xfe, 0x02, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto new file mode 100644 index 00000000..beeba811 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto @@ -0,0 +1,96 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; + + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of that +// variants, absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/vendor/github.com/golang/protobuf/ptypes/timestamp.go new file mode 100644 index 00000000..1b365762 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp.go @@ -0,0 +1,125 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" + + tspb "github.com/golang/protobuf/ptypes/timestamp" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *tspb.Timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// Timestamp converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func Timestamp(ts *tspb.Timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func TimestampProto(t time.Time) (*tspb.Timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := &tspb.Timestamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} + +// TimestampString returns the RFC 3339 string for valid Timestamps. For invalid +// Timestamps, it returns an error message in parentheses. +func TimestampString(ts *tspb.Timestamp) string { + t, err := Timestamp(ts) + if err != nil { + return fmt.Sprintf("(%v)", err) + } + return t.Format(time.RFC3339Nano) +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go new file mode 100644 index 00000000..588348c3 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go @@ -0,0 +1,126 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto +// DO NOT EDIT! + +/* +Package timestamp is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/timestamp/timestamp.proto + +It has these top-level messages: + Timestamp +*/ +package timestamp + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// now = time.time() +// seconds = int(now) +// nanos = int((now - seconds) * 10**9) +// timestamp = Timestamp(seconds=seconds, nanos=nanos) +// +// +type Timestamp struct { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + Nanos int32 `protobuf:"varint,2,opt,name=nanos" json:"nanos,omitempty"` +} + +func (m *Timestamp) Reset() { *m = Timestamp{} } +func (m *Timestamp) String() string { return proto.CompactTextString(m) } +func (*Timestamp) ProtoMessage() {} +func (*Timestamp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" } + +func init() { + proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") +} + +func init() { + proto.RegisterFile("github.com/golang/protobuf/ptypes/timestamp/timestamp.proto", fileDescriptor0) +} + +var fileDescriptor0 = []byte{ + // 192 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, + 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0xc9, + 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0x40, 0xb0, 0xf4, 0xc0, 0x6a, 0x84, 0xf8, 0xd3, 0xf3, + 0xf3, 0xd3, 0x73, 0x52, 0xf5, 0x60, 0x3a, 0x94, 0xac, 0xb9, 0x38, 0x43, 0x60, 0x6a, 0x84, 0x24, + 0xb8, 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, + 0x60, 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0xa0, 0x38, 0x6b, + 0x10, 0x84, 0xe3, 0xd4, 0xc8, 0xc8, 0x25, 0x0c, 0x74, 0x86, 0x1e, 0x9a, 0xa1, 0x4e, 0x7c, 0x70, + 0x23, 0x03, 0x40, 0x42, 0x01, 0x8c, 0x51, 0xda, 0x24, 0x38, 0x7a, 0x01, 0x23, 0xe3, 0x0f, 0x46, + 0xc6, 0x45, 0x4c, 0xcc, 0xee, 0x01, 0x4e, 0xab, 0x98, 0xe4, 0xdc, 0x21, 0x86, 0x07, 0x40, 0x95, + 0xeb, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, 0x97, 0xe7, 0x85, 0x80, 0xb4, 0x25, 0xb1, 0x81, + 0xcd, 0x31, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x17, 0x5f, 0xb7, 0xdc, 0x17, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto new file mode 100644 index 00000000..7992a858 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto @@ -0,0 +1,111 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/timestamp"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// +// Example 5: Compute Timestamp from current time in Python. +// +// now = time.time() +// seconds = int(now) +// nanos = int((now - seconds) * 10**9) +// timestamp = Timestamp(seconds=seconds, nanos=nanos) +// +// +message Timestamp { + + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp_test.go b/vendor/github.com/golang/protobuf/ptypes/timestamp_test.go new file mode 100644 index 00000000..114a7f9f --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp_test.go @@ -0,0 +1,138 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package ptypes + +import ( + "math" + "testing" + "time" + + "github.com/golang/protobuf/proto" + tspb "github.com/golang/protobuf/ptypes/timestamp" +) + +var tests = []struct { + ts *tspb.Timestamp + valid bool + t time.Time +}{ + // The timestamp representing the Unix epoch date. + {&tspb.Timestamp{0, 0}, true, utcDate(1970, 1, 1)}, + // The smallest representable timestamp. + {&tspb.Timestamp{math.MinInt64, math.MinInt32}, false, + time.Unix(math.MinInt64, math.MinInt32).UTC()}, + // The smallest representable timestamp with non-negative nanos. + {&tspb.Timestamp{math.MinInt64, 0}, false, time.Unix(math.MinInt64, 0).UTC()}, + // The earliest valid timestamp. + {&tspb.Timestamp{minValidSeconds, 0}, true, utcDate(1, 1, 1)}, + //"0001-01-01T00:00:00Z"}, + // The largest representable timestamp. + {&tspb.Timestamp{math.MaxInt64, math.MaxInt32}, false, + time.Unix(math.MaxInt64, math.MaxInt32).UTC()}, + // The largest representable timestamp with nanos in range. + {&tspb.Timestamp{math.MaxInt64, 1e9 - 1}, false, + time.Unix(math.MaxInt64, 1e9-1).UTC()}, + // The largest valid timestamp. + {&tspb.Timestamp{maxValidSeconds - 1, 1e9 - 1}, true, + time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC)}, + // The smallest invalid timestamp that is larger than the valid range. + {&tspb.Timestamp{maxValidSeconds, 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, + // A date before the epoch. + {&tspb.Timestamp{-281836800, 0}, true, utcDate(1961, 1, 26)}, + // A date after the epoch. + {&tspb.Timestamp{1296000000, 0}, true, utcDate(2011, 1, 26)}, + // A date after the epoch, in the middle of the day. + {&tspb.Timestamp{1296012345, 940483}, true, + time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC)}, +} + +func TestValidateTimestamp(t *testing.T) { + for _, s := range tests { + got := validateTimestamp(s.ts) + if (got == nil) != s.valid { + t.Errorf("validateTimestamp(%v) = %v, want %v", s.ts, got, s.valid) + } + } +} + +func TestTimestamp(t *testing.T) { + for _, s := range tests { + got, err := Timestamp(s.ts) + if (err == nil) != s.valid { + t.Errorf("Timestamp(%v) error = %v, but valid = %t", s.ts, err, s.valid) + } else if s.valid && got != s.t { + t.Errorf("Timestamp(%v) = %v, want %v", s.ts, got, s.t) + } + } + // Special case: a nil Timestamp is an error, but returns the 0 Unix time. + got, err := Timestamp(nil) + want := time.Unix(0, 0).UTC() + if got != want { + t.Errorf("Timestamp(nil) = %v, want %v", got, want) + } + if err == nil { + t.Errorf("Timestamp(nil) error = nil, expected error") + } +} + +func TestTimestampProto(t *testing.T) { + for _, s := range tests { + got, err := TimestampProto(s.t) + if (err == nil) != s.valid { + t.Errorf("TimestampProto(%v) error = %v, but valid = %t", s.t, err, s.valid) + } else if s.valid && !proto.Equal(got, s.ts) { + t.Errorf("TimestampProto(%v) = %v, want %v", s.t, got, s.ts) + } + } + // No corresponding special case here: no time.Time results in a nil Timestamp. +} + +func TestTimestampString(t *testing.T) { + for _, test := range []struct { + ts *tspb.Timestamp + want string + }{ + // Not much testing needed because presumably time.Format is + // well-tested. + {&tspb.Timestamp{0, 0}, "1970-01-01T00:00:00Z"}, + {&tspb.Timestamp{minValidSeconds - 1, 0}, "(timestamp: seconds:-62135596801 before 0001-01-01)"}, + } { + got := TimestampString(test.ts) + if got != test.want { + t.Errorf("TimestampString(%v) = %q, want %q", test.ts, got, test.want) + } + } +} + +func utcDate(year, month, day int) time.Time { + return time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) +} diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go new file mode 100644 index 00000000..bfc0a5b0 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go @@ -0,0 +1,200 @@ +// Code generated by protoc-gen-go. +// source: github.com/golang/protobuf/ptypes/wrappers/wrappers.proto +// DO NOT EDIT! + +/* +Package wrappers is a generated protocol buffer package. + +It is generated from these files: + github.com/golang/protobuf/ptypes/wrappers/wrappers.proto + +It has these top-level messages: + DoubleValue + FloatValue + Int64Value + UInt64Value + Int32Value + UInt32Value + BoolValue + StringValue + BytesValue +*/ +package wrappers + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +type DoubleValue struct { + // The double value. + Value float64 `protobuf:"fixed64,1,opt,name=value" json:"value,omitempty"` +} + +func (m *DoubleValue) Reset() { *m = DoubleValue{} } +func (m *DoubleValue) String() string { return proto.CompactTextString(m) } +func (*DoubleValue) ProtoMessage() {} +func (*DoubleValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*DoubleValue) XXX_WellKnownType() string { return "DoubleValue" } + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +type FloatValue struct { + // The float value. + Value float32 `protobuf:"fixed32,1,opt,name=value" json:"value,omitempty"` +} + +func (m *FloatValue) Reset() { *m = FloatValue{} } +func (m *FloatValue) String() string { return proto.CompactTextString(m) } +func (*FloatValue) ProtoMessage() {} +func (*FloatValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (*FloatValue) XXX_WellKnownType() string { return "FloatValue" } + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +type Int64Value struct { + // The int64 value. + Value int64 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` +} + +func (m *Int64Value) Reset() { *m = Int64Value{} } +func (m *Int64Value) String() string { return proto.CompactTextString(m) } +func (*Int64Value) ProtoMessage() {} +func (*Int64Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (*Int64Value) XXX_WellKnownType() string { return "Int64Value" } + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +type UInt64Value struct { + // The uint64 value. + Value uint64 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` +} + +func (m *UInt64Value) Reset() { *m = UInt64Value{} } +func (m *UInt64Value) String() string { return proto.CompactTextString(m) } +func (*UInt64Value) ProtoMessage() {} +func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (*UInt64Value) XXX_WellKnownType() string { return "UInt64Value" } + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +type Int32Value struct { + // The int32 value. + Value int32 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` +} + +func (m *Int32Value) Reset() { *m = Int32Value{} } +func (m *Int32Value) String() string { return proto.CompactTextString(m) } +func (*Int32Value) ProtoMessage() {} +func (*Int32Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*Int32Value) XXX_WellKnownType() string { return "Int32Value" } + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +type UInt32Value struct { + // The uint32 value. + Value uint32 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` +} + +func (m *UInt32Value) Reset() { *m = UInt32Value{} } +func (m *UInt32Value) String() string { return proto.CompactTextString(m) } +func (*UInt32Value) ProtoMessage() {} +func (*UInt32Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (*UInt32Value) XXX_WellKnownType() string { return "UInt32Value" } + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +type BoolValue struct { + // The bool value. + Value bool `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` +} + +func (m *BoolValue) Reset() { *m = BoolValue{} } +func (m *BoolValue) String() string { return proto.CompactTextString(m) } +func (*BoolValue) ProtoMessage() {} +func (*BoolValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (*BoolValue) XXX_WellKnownType() string { return "BoolValue" } + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +type StringValue struct { + // The string value. + Value string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"` +} + +func (m *StringValue) Reset() { *m = StringValue{} } +func (m *StringValue) String() string { return proto.CompactTextString(m) } +func (*StringValue) ProtoMessage() {} +func (*StringValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*StringValue) XXX_WellKnownType() string { return "StringValue" } + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +type BytesValue struct { + // The bytes value. + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *BytesValue) Reset() { *m = BytesValue{} } +func (m *BytesValue) String() string { return proto.CompactTextString(m) } +func (*BytesValue) ProtoMessage() {} +func (*BytesValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (*BytesValue) XXX_WellKnownType() string { return "BytesValue" } + +func init() { + proto.RegisterType((*DoubleValue)(nil), "google.protobuf.DoubleValue") + proto.RegisterType((*FloatValue)(nil), "google.protobuf.FloatValue") + proto.RegisterType((*Int64Value)(nil), "google.protobuf.Int64Value") + proto.RegisterType((*UInt64Value)(nil), "google.protobuf.UInt64Value") + proto.RegisterType((*Int32Value)(nil), "google.protobuf.Int32Value") + proto.RegisterType((*UInt32Value)(nil), "google.protobuf.UInt32Value") + proto.RegisterType((*BoolValue)(nil), "google.protobuf.BoolValue") + proto.RegisterType((*StringValue)(nil), "google.protobuf.StringValue") + proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue") +} + +func init() { + proto.RegisterFile("github.com/golang/protobuf/ptypes/wrappers/wrappers.proto", fileDescriptor0) +} + +var fileDescriptor0 = []byte{ + // 258 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, + 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0x2f, + 0x4a, 0x2c, 0x28, 0x48, 0x2d, 0x42, 0x30, 0xf4, 0xc0, 0x2a, 0x84, 0xf8, 0xd3, 0xf3, 0xf3, 0xd3, + 0x73, 0x52, 0xf5, 0x60, 0xea, 0x95, 0x94, 0xb9, 0xb8, 0x5d, 0xf2, 0x4b, 0x93, 0x72, 0x52, 0xc3, + 0x12, 0x73, 0x4a, 0x53, 0x85, 0x44, 0xb8, 0x58, 0xcb, 0x40, 0x0c, 0x09, 0x46, 0x05, 0x46, 0x0d, + 0xc6, 0x20, 0x08, 0x47, 0x49, 0x89, 0x8b, 0xcb, 0x2d, 0x27, 0x3f, 0xb1, 0x04, 0x8b, 0x1a, 0x26, + 0x24, 0x35, 0x9e, 0x79, 0x25, 0x66, 0x26, 0x58, 0xd4, 0x30, 0xc3, 0xd4, 0x00, 0x2d, 0x0b, 0xc5, + 0xa5, 0x88, 0x05, 0xd5, 0x20, 0x63, 0x23, 0x2c, 0x6a, 0x58, 0xd1, 0x0c, 0xc2, 0xaa, 0x88, 0x17, + 0xa6, 0x48, 0x91, 0x8b, 0xd3, 0x29, 0x3f, 0x3f, 0x07, 0x8b, 0x12, 0x0e, 0x24, 0x73, 0x82, 0x4b, + 0x8a, 0x32, 0xf3, 0xd2, 0xb1, 0x28, 0xe2, 0x44, 0x72, 0x90, 0x53, 0x65, 0x49, 0x6a, 0x31, 0x16, + 0x35, 0x3c, 0x50, 0x35, 0x4e, 0xf5, 0x5c, 0xc2, 0xc0, 0xd8, 0xd0, 0x43, 0x0b, 0x5d, 0x27, 0xde, + 0x70, 0x68, 0xf0, 0x07, 0x80, 0x44, 0x02, 0x18, 0xa3, 0xb4, 0x88, 0x8f, 0xba, 0x05, 0x8c, 0x8c, + 0x3f, 0x18, 0x19, 0x17, 0x31, 0x31, 0xbb, 0x07, 0x38, 0xad, 0x62, 0x92, 0x73, 0x87, 0x18, 0x1d, + 0x00, 0x55, 0xad, 0x17, 0x9e, 0x9a, 0x93, 0xe3, 0x9d, 0x97, 0x5f, 0x9e, 0x17, 0x02, 0xd2, 0x95, + 0xc4, 0x06, 0x36, 0xc6, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xdf, 0x64, 0x4b, 0x1c, 0x02, + 0x00, 0x00, +} diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto new file mode 100644 index 00000000..4828ad9a --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto @@ -0,0 +1,119 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. + +syntax = "proto3"; + +package google.protobuf; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; +option go_package = "github.com/golang/protobuf/ptypes/wrappers"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option java_generate_equals_and_hash = true; +option objc_class_prefix = "GPB"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +} diff --git a/vendor/github.com/googleapis/gax-go/.gitignore b/vendor/github.com/googleapis/gax-go/.gitignore new file mode 100644 index 00000000..289bf1eb --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/.gitignore @@ -0,0 +1 @@ +*.cover diff --git a/vendor/github.com/googleapis/gax-go/.travis.yml b/vendor/github.com/googleapis/gax-go/.travis.yml new file mode 100644 index 00000000..6db28b6c --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/.travis.yml @@ -0,0 +1,15 @@ +sudo: false +language: go +go: + - 1.6 + - 1.7 +before_install: + - go get golang.org/x/tools/cmd/cover + - go get golang.org/x/tools/cmd/goimports +script: + - gofmt -l . + - goimports -l . + - go tool vet . + - go test -coverprofile=coverage.txt -covermode=atomic +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/googleapis/gax-go/CONTRIBUTING.md b/vendor/github.com/googleapis/gax-go/CONTRIBUTING.md new file mode 100644 index 00000000..2827b7d3 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/CONTRIBUTING.md @@ -0,0 +1,27 @@ +Want to contribute? Great! First, read this page (including the small print at the end). + +### Before you contribute +Before we can use your code, you must sign the +[Google Individual Contributor License Agreement] +(https://cla.developers.google.com/about/google-individual) +(CLA), which you can do online. The CLA is necessary mainly because you own the +copyright to your changes, even after your contribution becomes part of our +codebase, so we need your permission to use and distribute your code. We also +need to be sure of various other things—for instance that you'll tell us if you +know that your code infringes on other people's patents. You don't have to sign +the CLA until after you've submitted your code for review and a member has +approved it, but you must do it before we can put your code into our codebase. +Before you start working on a larger contribution, you should get in touch with +us first through the issue tracker with your idea so that we can help out and +possibly guide you. Coordinating up front makes it much easier to avoid +frustration later on. + +### Code reviews +All submissions, including submissions by project members, require review. We +use Github pull requests for this purpose. + +### The small print +Contributions made by corporations are covered by a different agreement than +the one above, the +[Software Grant and Corporate Contributor License Agreement] +(https://cla.developers.google.com/about/google-corporate). diff --git a/vendor/github.com/googleapis/gax-go/LICENSE b/vendor/github.com/googleapis/gax-go/LICENSE new file mode 100644 index 00000000..6d16b657 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/LICENSE @@ -0,0 +1,27 @@ +Copyright 2016, Google Inc. +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/googleapis/gax-go/README.md b/vendor/github.com/googleapis/gax-go/README.md new file mode 100644 index 00000000..3cedd5be --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/README.md @@ -0,0 +1,24 @@ +Google API Extensions for Go +============================ + +[![Build Status](https://travis-ci.org/googleapis/gax-go.svg?branch=master)](https://travis-ci.org/googleapis/gax-go) +[![Code Coverage](https://img.shields.io/codecov/c/github/googleapis/gax-go.svg)](https://codecov.io/github/googleapis/gax-go) + +Google API Extensions for Go (gax-go) is a set of modules which aids the +development of APIs for clients and servers based on `gRPC` and Google API +conventions. + +Application code will rarely need to use this library directly, +but the code generated automatically from API definition files can use it +to simplify code generation and to provide more convenient and idiomatic API surface. + +**This project is currently experimental and not supported.** + +Go Versions +=========== +This library requires Go 1.6 or above. + +License +======= +BSD - please see [LICENSE](https://github.com/googleapis/gax-go/blob/master/LICENSE) +for more information. diff --git a/vendor/github.com/googleapis/gax-go/call_option.go b/vendor/github.com/googleapis/gax-go/call_option.go new file mode 100644 index 00000000..7b621643 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/call_option.go @@ -0,0 +1,157 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "math/rand" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// CallOption is an option used by Invoke to control behaviors of RPC calls. +// CallOption works by modifying relevant fields of CallSettings. +type CallOption interface { + // Resolve applies the option by modifying cs. + Resolve(cs *CallSettings) +} + +// Retryer is used by Invoke to determine retry behavior. +type Retryer interface { + // Retry reports whether a request should be retriedand how long to pause before retrying + // if the previous attempt returned with err. Invoke never calls Retry with nil error. + Retry(err error) (pause time.Duration, shouldRetry bool) +} + +type retryerOption func() Retryer + +func (o retryerOption) Resolve(s *CallSettings) { + s.Retry = o +} + +// WithRetry sets CallSettings.Retry to fn. +func WithRetry(fn func() Retryer) CallOption { + return retryerOption(fn) +} + +// OnCodes returns a Retryer that retries if and only if +// the previous attempt returns a GRPC error whose error code is stored in cc. +// Pause times between retries are specified by bo. +// +// bo is only used for its parameters; each Retryer has its own copy. +func OnCodes(cc []codes.Code, bo Backoff) Retryer { + return &boRetryer{ + backoff: bo, + codes: append([]codes.Code(nil), cc...), + } +} + +type boRetryer struct { + backoff Backoff + codes []codes.Code +} + +func (r *boRetryer) Retry(err error) (time.Duration, bool) { + st, ok := status.FromError(err) + if !ok { + return 0, false + } + c := st.Code() + for _, rc := range r.codes { + if c == rc { + return r.backoff.Pause(), true + } + } + return 0, false +} + +// Backoff implements exponential backoff. +// The wait time between retries is a random value between 0 and the "retry envelope". +// The envelope starts at Initial and increases by the factor of Multiplier every retry, +// but is capped at Max. +type Backoff struct { + // Initial is the initial value of the retry envelope, defaults to 1 second. + Initial time.Duration + + // Max is the maximum value of the retry envelope, defaults to 30 seconds. + Max time.Duration + + // Multiplier is the factor by which the retry envelope increases. + // It should be greater than 1 and defaults to 2. + Multiplier float64 + + // cur is the current retry envelope + cur time.Duration +} + +func (bo *Backoff) Pause() time.Duration { + if bo.Initial == 0 { + bo.Initial = time.Second + } + if bo.cur == 0 { + bo.cur = bo.Initial + } + if bo.Max == 0 { + bo.Max = 30 * time.Second + } + if bo.Multiplier < 1 { + bo.Multiplier = 2 + } + // Select a duration between zero and the current max. It might seem counterintuitive to + // have so much jitter, but https://www.awsarchitectureblog.com/2015/03/backoff.html + // argues that that is the best strategy. + d := time.Duration(rand.Int63n(int64(bo.cur))) + bo.cur = time.Duration(float64(bo.cur) * bo.Multiplier) + if bo.cur > bo.Max { + bo.cur = bo.Max + } + return d +} + +type grpcOpt []grpc.CallOption + +func (o grpcOpt) Resolve(s *CallSettings) { + s.GRPC = o +} + +func WithGRPCOptions(opt ...grpc.CallOption) CallOption { + return grpcOpt(append([]grpc.CallOption(nil), opt...)) +} + +type CallSettings struct { + // Retry returns a Retryer to be used to control retry logic of a method call. + // If Retry is nil or the returned Retryer is nil, the call will not be retried. + Retry func() Retryer + + // CallOptions to be forwarded to GRPC. + GRPC []grpc.CallOption +} diff --git a/vendor/github.com/googleapis/gax-go/call_option_test.go b/vendor/github.com/googleapis/gax-go/call_option_test.go new file mode 100644 index 00000000..6f81305f --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/call_option_test.go @@ -0,0 +1,88 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "testing" + "time" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +var _ Retryer = &boRetryer{} + +func TestBackofDefault(t *testing.T) { + backoff := Backoff{} + + max := []time.Duration{1, 2, 4, 8, 16, 30, 30, 30, 30, 30} + for i, m := range max { + max[i] = m * time.Second + } + + for i, w := range max { + if d := backoff.Pause(); d > w { + t.Errorf("Backoff duration should be at most %s, got %s", w, d) + } else if i < len(max)-1 && backoff.cur != max[i+1] { + t.Errorf("current envelope is %s, want %s", backoff.cur, max[i+1]) + } + } +} + +func TestBackoffExponential(t *testing.T) { + backoff := Backoff{Initial: 1, Max: 20, Multiplier: 2} + want := []time.Duration{1, 2, 4, 8, 16, 20, 20, 20, 20, 20} + for _, w := range want { + if d := backoff.Pause(); d > w { + t.Errorf("Backoff duration should be at most %s, got %s", w, d) + } + } +} + +func TestOnCodes(t *testing.T) { + // Lint errors grpc.Errorf in 1.6. It mistakenly expects the first arg to Errorf to be a string. + errf := status.Errorf + apiErr := errf(codes.Unavailable, "") + tests := []struct { + c []codes.Code + retry bool + }{ + {nil, false}, + {[]codes.Code{codes.DeadlineExceeded}, false}, + {[]codes.Code{codes.DeadlineExceeded, codes.Unavailable}, true}, + {[]codes.Code{codes.Unavailable}, true}, + } + for _, tst := range tests { + b := OnCodes(tst.c, Backoff{}) + if _, retry := b.Retry(apiErr); retry != tst.retry { + t.Errorf("retriable codes: %v, error: %s, retry: %t, want %t", tst.c, apiErr, retry, tst.retry) + } + } +} diff --git a/vendor/github.com/googleapis/gax-go/gax.go b/vendor/github.com/googleapis/gax-go/gax.go new file mode 100644 index 00000000..5ebedff0 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/gax.go @@ -0,0 +1,40 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package gax contains a set of modules which aid the development of APIs +// for clients and servers based on gRPC and Google API conventions. +// +// Application code will rarely need to use this library directly. +// However, code generated automatically from API definition files can use it +// to simplify code generation and to provide more convenient and idiomatic API surfaces. +// +// This project is currently experimental and not supported. +package gax + +const Version = "0.1.0" diff --git a/vendor/github.com/googleapis/gax-go/header.go b/vendor/github.com/googleapis/gax-go/header.go new file mode 100644 index 00000000..d81455ec --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/header.go @@ -0,0 +1,24 @@ +package gax + +import "bytes" + +// XGoogHeader is for use by the Google Cloud Libraries only. +// +// XGoogHeader formats key-value pairs. +// The resulting string is suitable for x-goog-api-client header. +func XGoogHeader(keyval ...string) string { + if len(keyval) == 0 { + return "" + } + if len(keyval)%2 != 0 { + panic("gax.Header: odd argument count") + } + var buf bytes.Buffer + for i := 0; i < len(keyval); i += 2 { + buf.WriteByte(' ') + buf.WriteString(keyval[i]) + buf.WriteByte('/') + buf.WriteString(keyval[i+1]) + } + return buf.String()[1:] +} diff --git a/vendor/github.com/googleapis/gax-go/header_test.go b/vendor/github.com/googleapis/gax-go/header_test.go new file mode 100644 index 00000000..05d8de6f --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/header_test.go @@ -0,0 +1,19 @@ +package gax + +import "testing" + +func TestXGoogHeader(t *testing.T) { + for _, tst := range []struct { + kv []string + want string + }{ + {nil, ""}, + {[]string{"abc", "def"}, "abc/def"}, + {[]string{"abc", "def", "xyz", "123", "foo", ""}, "abc/def xyz/123 foo/"}, + } { + got := XGoogHeader(tst.kv...) + if got != tst.want { + t.Errorf("Header(%q) = %q, want %q", tst.kv, got, tst.want) + } + } +} diff --git a/vendor/github.com/googleapis/gax-go/invoke.go b/vendor/github.com/googleapis/gax-go/invoke.go new file mode 100644 index 00000000..86049d82 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/invoke.go @@ -0,0 +1,90 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "time" + + "golang.org/x/net/context" +) + +// A user defined call stub. +type APICall func(context.Context, CallSettings) error + +// Invoke calls the given APICall, +// performing retries as specified by opts, if any. +func Invoke(ctx context.Context, call APICall, opts ...CallOption) error { + var settings CallSettings + for _, opt := range opts { + opt.Resolve(&settings) + } + return invoke(ctx, call, settings, Sleep) +} + +// Sleep is similar to time.Sleep, but it can be interrupted by ctx.Done() closing. +// If interrupted, Sleep returns ctx.Err(). +func Sleep(ctx context.Context, d time.Duration) error { + t := time.NewTimer(d) + select { + case <-ctx.Done(): + t.Stop() + return ctx.Err() + case <-t.C: + return nil + } +} + +type sleeper func(ctx context.Context, d time.Duration) error + +// invoke implements Invoke, taking an additional sleeper argument for testing. +func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper) error { + var retryer Retryer + for { + err := call(ctx, settings) + if err == nil { + return nil + } + if settings.Retry == nil { + return err + } + if retryer == nil { + if r := settings.Retry(); r != nil { + retryer = r + } else { + return err + } + } + if d, ok := retryer.Retry(err); !ok { + return err + } else if err = sp(ctx, d); err != nil { + return err + } + } +} diff --git a/vendor/github.com/googleapis/gax-go/invoke_test.go b/vendor/github.com/googleapis/gax-go/invoke_test.go new file mode 100644 index 00000000..3d12e609 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/invoke_test.go @@ -0,0 +1,156 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "errors" + "testing" + "time" + + "golang.org/x/net/context" +) + +var canceledContext context.Context + +func init() { + ctx, cancel := context.WithCancel(context.Background()) + cancel() + canceledContext = ctx +} + +// recordSleeper is a test implementation of sleeper. +type recordSleeper int + +func (s *recordSleeper) sleep(ctx context.Context, _ time.Duration) error { + *s++ + return ctx.Err() +} + +type boolRetryer bool + +func (r boolRetryer) Retry(err error) (time.Duration, bool) { return 0, bool(r) } + +func TestInvokeSuccess(t *testing.T) { + apiCall := func(context.Context, CallSettings) error { return nil } + var sp recordSleeper + err := invoke(context.Background(), apiCall, CallSettings{}, sp.sleep) + + if err != nil { + t.Errorf("found error %s, want nil", err) + } + if sp != 0 { + t.Errorf("slept %d times, should not have slept since the call succeeded", int(sp)) + } +} + +func TestInvokeNoRetry(t *testing.T) { + apiErr := errors.New("foo error") + apiCall := func(context.Context, CallSettings) error { return apiErr } + var sp recordSleeper + err := invoke(context.Background(), apiCall, CallSettings{}, sp.sleep) + + if err != apiErr { + t.Errorf("found error %s, want %s", err, apiErr) + } + if sp != 0 { + t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) + } +} + +func TestInvokeNilRetry(t *testing.T) { + apiErr := errors.New("foo error") + apiCall := func(context.Context, CallSettings) error { return apiErr } + var settings CallSettings + WithRetry(func() Retryer { return nil }).Resolve(&settings) + var sp recordSleeper + err := invoke(context.Background(), apiCall, settings, sp.sleep) + + if err != apiErr { + t.Errorf("found error %s, want %s", err, apiErr) + } + if sp != 0 { + t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) + } +} + +func TestInvokeNeverRetry(t *testing.T) { + apiErr := errors.New("foo error") + apiCall := func(context.Context, CallSettings) error { return apiErr } + var settings CallSettings + WithRetry(func() Retryer { return boolRetryer(false) }).Resolve(&settings) + var sp recordSleeper + err := invoke(context.Background(), apiCall, settings, sp.sleep) + + if err != apiErr { + t.Errorf("found error %s, want %s", err, apiErr) + } + if sp != 0 { + t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) + } +} + +func TestInvokeRetry(t *testing.T) { + const target = 3 + + retryNum := 0 + apiErr := errors.New("foo error") + apiCall := func(context.Context, CallSettings) error { + retryNum++ + if retryNum < target { + return apiErr + } + return nil + } + var settings CallSettings + WithRetry(func() Retryer { return boolRetryer(true) }).Resolve(&settings) + var sp recordSleeper + err := invoke(context.Background(), apiCall, settings, sp.sleep) + + if err != nil { + t.Errorf("found error %s, want nil, call should have succeeded after %d tries", err, target) + } + if sp != target-1 { + t.Errorf("retried %d times, want %d", int(sp), int(target-1)) + } +} + +func TestInvokeRetryTimeout(t *testing.T) { + apiErr := errors.New("foo error") + apiCall := func(context.Context, CallSettings) error { return apiErr } + var settings CallSettings + WithRetry(func() Retryer { return boolRetryer(true) }).Resolve(&settings) + var sp recordSleeper + + err := invoke(canceledContext, apiCall, settings, sp.sleep) + + if err != context.Canceled { + t.Errorf("found error %s, want %s", err, context.Canceled) + } +} diff --git a/vendor/github.com/googleapis/gax-go/path_template.go b/vendor/github.com/googleapis/gax-go/path_template.go new file mode 100644 index 00000000..41bda94c --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/path_template.go @@ -0,0 +1,176 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "errors" + "fmt" + "strings" +) + +type matcher interface { + match([]string) (int, error) + String() string +} + +type segment struct { + matcher + name string +} + +type labelMatcher string + +func (ls labelMatcher) match(segments []string) (int, error) { + if len(segments) == 0 { + return 0, fmt.Errorf("expected %s but no more segments found", ls) + } + if segments[0] != string(ls) { + return 0, fmt.Errorf("expected %s but got %s", ls, segments[0]) + } + return 1, nil +} + +func (ls labelMatcher) String() string { + return string(ls) +} + +type wildcardMatcher int + +func (wm wildcardMatcher) match(segments []string) (int, error) { + if len(segments) == 0 { + return 0, errors.New("no more segments found") + } + return 1, nil +} + +func (wm wildcardMatcher) String() string { + return "*" +} + +type pathWildcardMatcher int + +func (pwm pathWildcardMatcher) match(segments []string) (int, error) { + length := len(segments) - int(pwm) + if length <= 0 { + return 0, errors.New("not sufficient segments are supplied for path wildcard") + } + return length, nil +} + +func (pwm pathWildcardMatcher) String() string { + return "**" +} + +type ParseError struct { + Pos int + Template string + Message string +} + +func (pe ParseError) Error() string { + return fmt.Sprintf("at %d of template '%s', %s", pe.Pos, pe.Template, pe.Message) +} + +// PathTemplate manages the template to build and match with paths used +// by API services. It holds a template and variable names in it, and +// it can extract matched patterns from a path string or build a path +// string from a binding. +// +// See http.proto in github.com/googleapis/googleapis/ for the details of +// the template syntax. +type PathTemplate struct { + segments []segment +} + +// NewPathTemplate parses a path template, and returns a PathTemplate +// instance if successful. +func NewPathTemplate(template string) (*PathTemplate, error) { + return parsePathTemplate(template) +} + +// MustCompilePathTemplate is like NewPathTemplate but panics if the +// expression cannot be parsed. It simplifies safe initialization of +// global variables holding compiled regular expressions. +func MustCompilePathTemplate(template string) *PathTemplate { + pt, err := NewPathTemplate(template) + if err != nil { + panic(err) + } + return pt +} + +// Match attempts to match the given path with the template, and returns +// the mapping of the variable name to the matched pattern string. +func (pt *PathTemplate) Match(path string) (map[string]string, error) { + paths := strings.Split(path, "/") + values := map[string]string{} + for _, segment := range pt.segments { + length, err := segment.match(paths) + if err != nil { + return nil, err + } + if segment.name != "" { + value := strings.Join(paths[:length], "/") + if oldValue, ok := values[segment.name]; ok { + values[segment.name] = oldValue + "/" + value + } else { + values[segment.name] = value + } + } + paths = paths[length:] + } + if len(paths) != 0 { + return nil, fmt.Errorf("Trailing path %s remains after the matching", strings.Join(paths, "/")) + } + return values, nil +} + +// Render creates a path string from its template and the binding from +// the variable name to the value. +func (pt *PathTemplate) Render(binding map[string]string) (string, error) { + result := make([]string, 0, len(pt.segments)) + var lastVariableName string + for _, segment := range pt.segments { + name := segment.name + if lastVariableName != "" && name == lastVariableName { + continue + } + lastVariableName = name + if name == "" { + result = append(result, segment.String()) + } else if value, ok := binding[name]; ok { + result = append(result, value) + } else { + return "", fmt.Errorf("%s is not found", name) + } + } + built := strings.Join(result, "/") + return built, nil +} diff --git a/vendor/github.com/googleapis/gax-go/path_template_parser.go b/vendor/github.com/googleapis/gax-go/path_template_parser.go new file mode 100644 index 00000000..79c8e759 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/path_template_parser.go @@ -0,0 +1,227 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "fmt" + "io" + "strings" +) + +// This parser follows the syntax of path templates, from +// https://github.com/googleapis/googleapis/blob/master/google/api/http.proto. +// The differences are that there is no custom verb, we allow the initial slash +// to be absent, and that we are not strict as +// https://tools.ietf.org/html/rfc6570 about the characters in identifiers and +// literals. + +type pathTemplateParser struct { + r *strings.Reader + runeCount int // the number of the current rune in the original string + nextVar int // the number to use for the next unnamed variable + seenName map[string]bool // names we've seen already + seenPathWildcard bool // have we seen "**" already? +} + +func parsePathTemplate(template string) (pt *PathTemplate, err error) { + p := &pathTemplateParser{ + r: strings.NewReader(template), + seenName: map[string]bool{}, + } + + // Handle panics with strings like errors. + // See pathTemplateParser.error, below. + defer func() { + if x := recover(); x != nil { + errmsg, ok := x.(errString) + if !ok { + panic(x) + } + pt = nil + err = ParseError{p.runeCount, template, string(errmsg)} + } + }() + + segs := p.template() + // If there is a path wildcard, set its length. We can't do this + // until we know how many segments we've got all together. + for i, seg := range segs { + if _, ok := seg.matcher.(pathWildcardMatcher); ok { + segs[i].matcher = pathWildcardMatcher(len(segs) - i - 1) + break + } + } + return &PathTemplate{segments: segs}, nil + +} + +// Used to indicate errors "thrown" by this parser. We don't use string because +// many parts of the standard library panic with strings. +type errString string + +// Terminates parsing immediately with an error. +func (p *pathTemplateParser) error(msg string) { + panic(errString(msg)) +} + +// Template = [ "/" ] Segments +func (p *pathTemplateParser) template() []segment { + var segs []segment + if p.consume('/') { + // Initial '/' needs an initial empty matcher. + segs = append(segs, segment{matcher: labelMatcher("")}) + } + return append(segs, p.segments("")...) +} + +// Segments = Segment { "/" Segment } +func (p *pathTemplateParser) segments(name string) []segment { + var segs []segment + for { + subsegs := p.segment(name) + segs = append(segs, subsegs...) + if !p.consume('/') { + break + } + } + return segs +} + +// Segment = "*" | "**" | LITERAL | Variable +func (p *pathTemplateParser) segment(name string) []segment { + if p.consume('*') { + if name == "" { + name = fmt.Sprintf("$%d", p.nextVar) + p.nextVar++ + } + if p.consume('*') { + if p.seenPathWildcard { + p.error("multiple '**' disallowed") + } + p.seenPathWildcard = true + // We'll change 0 to the right number at the end. + return []segment{{name: name, matcher: pathWildcardMatcher(0)}} + } + return []segment{{name: name, matcher: wildcardMatcher(0)}} + } + if p.consume('{') { + if name != "" { + p.error("recursive named bindings are not allowed") + } + return p.variable() + } + return []segment{{name: name, matcher: labelMatcher(p.literal())}} +} + +// Variable = "{" FieldPath [ "=" Segments ] "}" +// "{" is already consumed. +func (p *pathTemplateParser) variable() []segment { + // Simplification: treat FieldPath as LITERAL, instead of IDENT { '.' IDENT } + name := p.literal() + if p.seenName[name] { + p.error(name + " appears multiple times") + } + p.seenName[name] = true + var segs []segment + if p.consume('=') { + segs = p.segments(name) + } else { + // "{var}" is equivalent to "{var=*}" + segs = []segment{{name: name, matcher: wildcardMatcher(0)}} + } + if !p.consume('}') { + p.error("expected '}'") + } + return segs +} + +// A literal is any sequence of characters other than a few special ones. +// The list of stop characters is not quite the same as in the template RFC. +func (p *pathTemplateParser) literal() string { + lit := p.consumeUntil("/*}{=") + if lit == "" { + p.error("empty literal") + } + return lit +} + +// Read runes until EOF or one of the runes in stopRunes is encountered. +// If the latter, unread the stop rune. Return the accumulated runes as a string. +func (p *pathTemplateParser) consumeUntil(stopRunes string) string { + var runes []rune + for { + r, ok := p.readRune() + if !ok { + break + } + if strings.IndexRune(stopRunes, r) >= 0 { + p.unreadRune() + break + } + runes = append(runes, r) + } + return string(runes) +} + +// If the next rune is r, consume it and return true. +// Otherwise, leave the input unchanged and return false. +func (p *pathTemplateParser) consume(r rune) bool { + rr, ok := p.readRune() + if !ok { + return false + } + if r == rr { + return true + } + p.unreadRune() + return false +} + +// Read the next rune from the input. Return it. +// The second return value is false at EOF. +func (p *pathTemplateParser) readRune() (rune, bool) { + r, _, err := p.r.ReadRune() + if err == io.EOF { + return r, false + } + if err != nil { + p.error(err.Error()) + } + p.runeCount++ + return r, true +} + +// Put the last rune that was read back on the input. +func (p *pathTemplateParser) unreadRune() { + if err := p.r.UnreadRune(); err != nil { + p.error(err.Error()) + } + p.runeCount-- +} diff --git a/vendor/github.com/googleapis/gax-go/path_template_test.go b/vendor/github.com/googleapis/gax-go/path_template_test.go new file mode 100644 index 00000000..49dea47d --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/path_template_test.go @@ -0,0 +1,211 @@ +// Copyright 2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import "testing" + +func TestPathTemplateMatchRender(t *testing.T) { + testCases := []struct { + message string + template string + path string + values map[string]string + }{ + { + "base", + "buckets/*/*/objects/*", + "buckets/f/o/objects/bar", + map[string]string{"$0": "f", "$1": "o", "$2": "bar"}, + }, + { + "path wildcards", + "bar/**/foo/*", + "bar/foo/foo/foo/bar", + map[string]string{"$0": "foo/foo", "$1": "bar"}, + }, + { + "named binding", + "buckets/{foo}/objects/*", + "buckets/foo/objects/bar", + map[string]string{"$0": "bar", "foo": "foo"}, + }, + { + "named binding with colon", + "buckets/{foo}/objects/*", + "buckets/foo:boo/objects/bar", + map[string]string{"$0": "bar", "foo": "foo:boo"}, + }, + { + "named binding with complex patterns", + "buckets/{foo=x/*/y/**}/objects/*", + "buckets/x/foo/y/bar/baz/objects/quox", + map[string]string{"$0": "quox", "foo": "x/foo/y/bar/baz"}, + }, + { + "starts with slash", + "/foo/*", + "/foo/bar", + map[string]string{"$0": "bar"}, + }, + } + for _, testCase := range testCases { + pt, err := NewPathTemplate(testCase.template) + if err != nil { + t.Errorf("[%s] Failed to parse template %s: %v", testCase.message, testCase.template, err) + continue + } + values, err := pt.Match(testCase.path) + if err != nil { + t.Errorf("[%s] PathTemplate '%s' failed to match with '%s', %v", testCase.message, testCase.template, testCase.path, err) + continue + } + for key, expected := range testCase.values { + actual, ok := values[key] + if !ok { + t.Errorf("[%s] The matched data misses the value for %s", testCase.message, key) + continue + } + delete(values, key) + if actual != expected { + t.Errorf("[%s] Failed to match: value for '%s' is expected '%s' but is actually '%s'", testCase.message, key, expected, actual) + } + } + if len(values) != 0 { + t.Errorf("[%s] The matched data has unexpected keys: %v", testCase.message, values) + } + built, err := pt.Render(testCase.values) + if err != nil || built != testCase.path { + t.Errorf("[%s] Built path '%s' is different from the expected '%s', %v", testCase.message, built, testCase.path, err) + } + } +} + +func TestPathTemplateMatchFailure(t *testing.T) { + testCases := []struct { + message string + template string + path string + }{ + { + "too many paths", + "buckets/*/*/objects/*", + "buckets/f/o/o/objects/bar", + }, + { + "missing last path", + "buckets/*/*/objects/*", + "buckets/f/o/objects", + }, + { + "too many paths at end", + "buckets/*/*/objects/*", + "buckets/f/o/objects/too/long", + }, + } + for _, testCase := range testCases { + pt, err := NewPathTemplate(testCase.template) + if err != nil { + t.Errorf("[%s] Failed to parse path %s: %v", testCase.message, testCase.template, err) + continue + } + if values, err := pt.Match(testCase.path); err == nil { + t.Errorf("[%s] PathTemplate %s doesn't expect to match %s, but succeeded somehow. Match result: %v", testCase.message, testCase.template, testCase.path, values) + + } + } +} + +func TestPathTemplateRenderTooManyValues(t *testing.T) { + // Test cases where Render() succeeds but Match() doesn't return the same map. + testCases := []struct { + message string + template string + values map[string]string + expected string + }{ + { + "too many", + "bar/*/foo/*", + map[string]string{"$0": "_1", "$1": "_2", "$2": "_3"}, + "bar/_1/foo/_2", + }, + } + for _, testCase := range testCases { + pt, err := NewPathTemplate(testCase.template) + if err != nil { + t.Errorf("[%s] Failed to parse template %s (error %v)", testCase.message, testCase.template, err) + continue + } + if result, err := pt.Render(testCase.values); err != nil || result != testCase.expected { + t.Errorf("[%s] Failed to build the path (expected '%s' but returned '%s'", testCase.message, testCase.expected, result) + } + } +} + +func TestPathTemplateParseErrors(t *testing.T) { + testCases := []struct { + message string + template string + }{ + { + "multiple path wildcards", + "foo/**/bar/**", + }, + { + "recursive named bindings", + "foo/{foo=foo/{bar}/baz/*}/baz/*", + }, + { + "complicated multiple path wildcards patterns", + "foo/{foo=foo/**/bar/*}/baz/**", + }, + { + "consective slashes", + "foo//bar", + }, + { + "invalid variable pattern", + "foo/{foo=foo/*/}bar", + }, + { + "same name multiple times", + "foo/{foo}/bar/{foo}", + }, + { + "empty string after '='", + "foo/{foo=}/bar", + }, + } + for _, testCase := range testCases { + if pt, err := NewPathTemplate(testCase.template); err == nil { + t.Errorf("[%s] Template '%s' should fail to be parsed, but succeeded and returned %+v", testCase.message, testCase.template, pt) + } + } +} diff --git a/vendor/github.com/gorilla/context/.travis.yml b/vendor/github.com/gorilla/context/.travis.yml new file mode 100644 index 00000000..6f440f1e --- /dev/null +++ b/vendor/github.com/gorilla/context/.travis.yml @@ -0,0 +1,19 @@ +language: go +sudo: false + +matrix: + include: + - go: 1.3 + - go: 1.4 + - go: 1.5 + - go: 1.6 + - go: 1.7 + - go: tip + allow_failures: + - go: tip + +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d .) + - go vet $(go list ./... | grep -v /vendor/) + - go test -v -race ./... diff --git a/vendor/github.com/gorilla/context/LICENSE b/vendor/github.com/gorilla/context/LICENSE new file mode 100644 index 00000000..0e5fb872 --- /dev/null +++ b/vendor/github.com/gorilla/context/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2012 Rodrigo Moraes. 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/gorilla/context/README.md b/vendor/github.com/gorilla/context/README.md new file mode 100644 index 00000000..08f86693 --- /dev/null +++ b/vendor/github.com/gorilla/context/README.md @@ -0,0 +1,10 @@ +context +======= +[![Build Status](https://travis-ci.org/gorilla/context.png?branch=master)](https://travis-ci.org/gorilla/context) + +gorilla/context is a general purpose registry for global request variables. + +> Note: gorilla/context, having been born well before `context.Context` existed, does not play well +> with the shallow copying of the request that [`http.Request.WithContext`](https://golang.org/pkg/net/http/#Request.WithContext) (added to net/http Go 1.7 onwards) performs. You should either use *just* gorilla/context, or moving forward, the new `http.Request.Context()`. + +Read the full documentation here: http://www.gorillatoolkit.org/pkg/context diff --git a/vendor/github.com/gorilla/context/context.go b/vendor/github.com/gorilla/context/context.go new file mode 100644 index 00000000..81cb128b --- /dev/null +++ b/vendor/github.com/gorilla/context/context.go @@ -0,0 +1,143 @@ +// Copyright 2012 The Gorilla 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 context + +import ( + "net/http" + "sync" + "time" +) + +var ( + mutex sync.RWMutex + data = make(map[*http.Request]map[interface{}]interface{}) + datat = make(map[*http.Request]int64) +) + +// Set stores a value for a given key in a given request. +func Set(r *http.Request, key, val interface{}) { + mutex.Lock() + if data[r] == nil { + data[r] = make(map[interface{}]interface{}) + datat[r] = time.Now().Unix() + } + data[r][key] = val + mutex.Unlock() +} + +// Get returns a value stored for a given key in a given request. +func Get(r *http.Request, key interface{}) interface{} { + mutex.RLock() + if ctx := data[r]; ctx != nil { + value := ctx[key] + mutex.RUnlock() + return value + } + mutex.RUnlock() + return nil +} + +// GetOk returns stored value and presence state like multi-value return of map access. +func GetOk(r *http.Request, key interface{}) (interface{}, bool) { + mutex.RLock() + if _, ok := data[r]; ok { + value, ok := data[r][key] + mutex.RUnlock() + return value, ok + } + mutex.RUnlock() + return nil, false +} + +// GetAll returns all stored values for the request as a map. Nil is returned for invalid requests. +func GetAll(r *http.Request) map[interface{}]interface{} { + mutex.RLock() + if context, ok := data[r]; ok { + result := make(map[interface{}]interface{}, len(context)) + for k, v := range context { + result[k] = v + } + mutex.RUnlock() + return result + } + mutex.RUnlock() + return nil +} + +// GetAllOk returns all stored values for the request as a map and a boolean value that indicates if +// the request was registered. +func GetAllOk(r *http.Request) (map[interface{}]interface{}, bool) { + mutex.RLock() + context, ok := data[r] + result := make(map[interface{}]interface{}, len(context)) + for k, v := range context { + result[k] = v + } + mutex.RUnlock() + return result, ok +} + +// Delete removes a value stored for a given key in a given request. +func Delete(r *http.Request, key interface{}) { + mutex.Lock() + if data[r] != nil { + delete(data[r], key) + } + mutex.Unlock() +} + +// Clear removes all values stored for a given request. +// +// This is usually called by a handler wrapper to clean up request +// variables at the end of a request lifetime. See ClearHandler(). +func Clear(r *http.Request) { + mutex.Lock() + clear(r) + mutex.Unlock() +} + +// clear is Clear without the lock. +func clear(r *http.Request) { + delete(data, r) + delete(datat, r) +} + +// Purge removes request data stored for longer than maxAge, in seconds. +// It returns the amount of requests removed. +// +// If maxAge <= 0, all request data is removed. +// +// This is only used for sanity check: in case context cleaning was not +// properly set some request data can be kept forever, consuming an increasing +// amount of memory. In case this is detected, Purge() must be called +// periodically until the problem is fixed. +func Purge(maxAge int) int { + mutex.Lock() + count := 0 + if maxAge <= 0 { + count = len(data) + data = make(map[*http.Request]map[interface{}]interface{}) + datat = make(map[*http.Request]int64) + } else { + min := time.Now().Unix() - int64(maxAge) + for r := range data { + if datat[r] < min { + clear(r) + count++ + } + } + } + mutex.Unlock() + return count +} + +// ClearHandler wraps an http.Handler and clears request values at the end +// of a request lifetime. +func ClearHandler(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer Clear(r) + h.ServeHTTP(w, r) + }) +} diff --git a/vendor/github.com/gorilla/context/context_test.go b/vendor/github.com/gorilla/context/context_test.go new file mode 100644 index 00000000..d70e91a2 --- /dev/null +++ b/vendor/github.com/gorilla/context/context_test.go @@ -0,0 +1,161 @@ +// Copyright 2012 The Gorilla 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 context + +import ( + "net/http" + "testing" +) + +type keyType int + +const ( + key1 keyType = iota + key2 +) + +func TestContext(t *testing.T) { + assertEqual := func(val interface{}, exp interface{}) { + if val != exp { + t.Errorf("Expected %v, got %v.", exp, val) + } + } + + r, _ := http.NewRequest("GET", "http://localhost:8080/", nil) + emptyR, _ := http.NewRequest("GET", "http://localhost:8080/", nil) + + // Get() + assertEqual(Get(r, key1), nil) + + // Set() + Set(r, key1, "1") + assertEqual(Get(r, key1), "1") + assertEqual(len(data[r]), 1) + + Set(r, key2, "2") + assertEqual(Get(r, key2), "2") + assertEqual(len(data[r]), 2) + + //GetOk + value, ok := GetOk(r, key1) + assertEqual(value, "1") + assertEqual(ok, true) + + value, ok = GetOk(r, "not exists") + assertEqual(value, nil) + assertEqual(ok, false) + + Set(r, "nil value", nil) + value, ok = GetOk(r, "nil value") + assertEqual(value, nil) + assertEqual(ok, true) + + // GetAll() + values := GetAll(r) + assertEqual(len(values), 3) + + // GetAll() for empty request + values = GetAll(emptyR) + if values != nil { + t.Error("GetAll didn't return nil value for invalid request") + } + + // GetAllOk() + values, ok = GetAllOk(r) + assertEqual(len(values), 3) + assertEqual(ok, true) + + // GetAllOk() for empty request + values, ok = GetAllOk(emptyR) + assertEqual(len(values), 0) + assertEqual(ok, false) + + // Delete() + Delete(r, key1) + assertEqual(Get(r, key1), nil) + assertEqual(len(data[r]), 2) + + Delete(r, key2) + assertEqual(Get(r, key2), nil) + assertEqual(len(data[r]), 1) + + // Clear() + Clear(r) + assertEqual(len(data), 0) +} + +func parallelReader(r *http.Request, key string, iterations int, wait, done chan struct{}) { + <-wait + for i := 0; i < iterations; i++ { + Get(r, key) + } + done <- struct{}{} + +} + +func parallelWriter(r *http.Request, key, value string, iterations int, wait, done chan struct{}) { + <-wait + for i := 0; i < iterations; i++ { + Set(r, key, value) + } + done <- struct{}{} + +} + +func benchmarkMutex(b *testing.B, numReaders, numWriters, iterations int) { + + b.StopTimer() + r, _ := http.NewRequest("GET", "http://localhost:8080/", nil) + done := make(chan struct{}) + b.StartTimer() + + for i := 0; i < b.N; i++ { + wait := make(chan struct{}) + + for i := 0; i < numReaders; i++ { + go parallelReader(r, "test", iterations, wait, done) + } + + for i := 0; i < numWriters; i++ { + go parallelWriter(r, "test", "123", iterations, wait, done) + } + + close(wait) + + for i := 0; i < numReaders+numWriters; i++ { + <-done + } + + } + +} + +func BenchmarkMutexSameReadWrite1(b *testing.B) { + benchmarkMutex(b, 1, 1, 32) +} +func BenchmarkMutexSameReadWrite2(b *testing.B) { + benchmarkMutex(b, 2, 2, 32) +} +func BenchmarkMutexSameReadWrite4(b *testing.B) { + benchmarkMutex(b, 4, 4, 32) +} +func BenchmarkMutex1(b *testing.B) { + benchmarkMutex(b, 2, 8, 32) +} +func BenchmarkMutex2(b *testing.B) { + benchmarkMutex(b, 16, 4, 64) +} +func BenchmarkMutex3(b *testing.B) { + benchmarkMutex(b, 1, 2, 128) +} +func BenchmarkMutex4(b *testing.B) { + benchmarkMutex(b, 128, 32, 256) +} +func BenchmarkMutex5(b *testing.B) { + benchmarkMutex(b, 1024, 2048, 64) +} +func BenchmarkMutex6(b *testing.B) { + benchmarkMutex(b, 2048, 1024, 512) +} diff --git a/vendor/github.com/gorilla/context/doc.go b/vendor/github.com/gorilla/context/doc.go new file mode 100644 index 00000000..448d1bfc --- /dev/null +++ b/vendor/github.com/gorilla/context/doc.go @@ -0,0 +1,88 @@ +// Copyright 2012 The Gorilla 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 context stores values shared during a request lifetime. + +Note: gorilla/context, having been born well before `context.Context` existed, +does not play well > with the shallow copying of the request that +[`http.Request.WithContext`](https://golang.org/pkg/net/http/#Request.WithContext) +(added to net/http Go 1.7 onwards) performs. You should either use *just* +gorilla/context, or moving forward, the new `http.Request.Context()`. + +For example, a router can set variables extracted from the URL and later +application handlers can access those values, or it can be used to store +sessions values to be saved at the end of a request. There are several +others common uses. + +The idea was posted by Brad Fitzpatrick to the go-nuts mailing list: + + http://groups.google.com/group/golang-nuts/msg/e2d679d303aa5d53 + +Here's the basic usage: first define the keys that you will need. The key +type is interface{} so a key can be of any type that supports equality. +Here we define a key using a custom int type to avoid name collisions: + + package foo + + import ( + "github.com/gorilla/context" + ) + + type key int + + const MyKey key = 0 + +Then set a variable. Variables are bound to an http.Request object, so you +need a request instance to set a value: + + context.Set(r, MyKey, "bar") + +The application can later access the variable using the same key you provided: + + func MyHandler(w http.ResponseWriter, r *http.Request) { + // val is "bar". + val := context.Get(r, foo.MyKey) + + // returns ("bar", true) + val, ok := context.GetOk(r, foo.MyKey) + // ... + } + +And that's all about the basic usage. We discuss some other ideas below. + +Any type can be stored in the context. To enforce a given type, make the key +private and wrap Get() and Set() to accept and return values of a specific +type: + + type key int + + const mykey key = 0 + + // GetMyKey returns a value for this package from the request values. + func GetMyKey(r *http.Request) SomeType { + if rv := context.Get(r, mykey); rv != nil { + return rv.(SomeType) + } + return nil + } + + // SetMyKey sets a value for this package in the request values. + func SetMyKey(r *http.Request, val SomeType) { + context.Set(r, mykey, val) + } + +Variables must be cleared at the end of a request, to remove all values +that were stored. This can be done in an http.Handler, after a request was +served. Just call Clear() passing the request: + + context.Clear(r) + +...or use ClearHandler(), which conveniently wraps an http.Handler to clear +variables at the end of a request lifetime. + +The Routers from the packages gorilla/mux and gorilla/pat call Clear() +so if you are using either of them you don't need to clear the context manually. +*/ +package context diff --git a/vendor/github.com/gorilla/mux/.travis.yml b/vendor/github.com/gorilla/mux/.travis.yml new file mode 100644 index 00000000..ca377e61 --- /dev/null +++ b/vendor/github.com/gorilla/mux/.travis.yml @@ -0,0 +1,22 @@ +language: go +sudo: false + +matrix: + include: + - go: 1.2 + - go: 1.3 + - go: 1.4 + - go: 1.5 + - go: 1.6 + - go: 1.7 + - go: 1.8 + - go: tip + +install: + - # Skip + +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d .) + - go tool vet . + - go test -v -race ./... diff --git a/vendor/github.com/gorilla/mux/LICENSE b/vendor/github.com/gorilla/mux/LICENSE new file mode 100644 index 00000000..0e5fb872 --- /dev/null +++ b/vendor/github.com/gorilla/mux/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2012 Rodrigo Moraes. 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/gorilla/mux/README.md b/vendor/github.com/gorilla/mux/README.md new file mode 100644 index 00000000..56c67134 --- /dev/null +++ b/vendor/github.com/gorilla/mux/README.md @@ -0,0 +1,351 @@ +gorilla/mux +=== +[![GoDoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux) +[![Build Status](https://travis-ci.org/gorilla/mux.svg?branch=master)](https://travis-ci.org/gorilla/mux) +[![Sourcegraph](https://sourcegraph.com/github.com/gorilla/mux/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/mux?badge) + +![Gorilla Logo](http://www.gorillatoolkit.org/static/images/gorilla-icon-64.png) + +http://www.gorillatoolkit.org/pkg/mux + +Package `gorilla/mux` implements a request router and dispatcher for matching incoming requests to +their respective handler. + +The name mux stands for "HTTP request multiplexer". Like the standard `http.ServeMux`, `mux.Router` matches incoming requests against a list of registered routes and calls a handler for the route that matches the URL or other conditions. The main features are: + +* It implements the `http.Handler` interface so it is compatible with the standard `http.ServeMux`. +* Requests can be matched based on URL host, path, path prefix, schemes, header and query values, HTTP methods or using custom matchers. +* URL hosts and paths can have variables with an optional regular expression. +* Registered URLs can be built, or "reversed", which helps maintaining references to resources. +* Routes can be used as subrouters: nested routes are only tested if the parent route matches. This is useful to define groups of routes that share common conditions like a host, a path prefix or other repeated attributes. As a bonus, this optimizes request matching. + +--- + +* [Install](#install) +* [Examples](#examples) +* [Matching Routes](#matching-routes) +* [Listing Routes](#listing-routes) +* [Static Files](#static-files) +* [Registered URLs](#registered-urls) +* [Full Example](#full-example) + +--- + +## Install + +With a [correctly configured](https://golang.org/doc/install#testing) Go toolchain: + +```sh +go get -u github.com/gorilla/mux +``` + +## Examples + +Let's start registering a couple of URL paths and handlers: + +```go +func main() { + r := mux.NewRouter() + r.HandleFunc("/", HomeHandler) + r.HandleFunc("/products", ProductsHandler) + r.HandleFunc("/articles", ArticlesHandler) + http.Handle("/", r) +} +``` + +Here we register three routes mapping URL paths to handlers. This is equivalent to how `http.HandleFunc()` works: if an incoming request URL matches one of the paths, the corresponding handler is called passing (`http.ResponseWriter`, `*http.Request`) as parameters. + +Paths can have variables. They are defined using the format `{name}` or `{name:pattern}`. If a regular expression pattern is not defined, the matched variable will be anything until the next slash. For example: + +```go +r := mux.NewRouter() +r.HandleFunc("/products/{key}", ProductHandler) +r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) +r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) +``` + +The names are used to create a map of route variables which can be retrieved calling `mux.Vars()`: + +```go +func ArticlesCategoryHandler(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, "Category: %v\n", vars["category"]) +} +``` + +And this is all you need to know about the basic usage. More advanced options are explained below. + +### Matching Routes + +Routes can also be restricted to a domain or subdomain. Just define a host pattern to be matched. They can also have variables: + +```go +r := mux.NewRouter() +// Only matches if domain is "www.example.com". +r.Host("www.example.com") +// Matches a dynamic subdomain. +r.Host("{subdomain:[a-z]+}.domain.com") +``` + +There are several other matchers that can be added. To match path prefixes: + +```go +r.PathPrefix("/products/") +``` + +...or HTTP methods: + +```go +r.Methods("GET", "POST") +``` + +...or URL schemes: + +```go +r.Schemes("https") +``` + +...or header values: + +```go +r.Headers("X-Requested-With", "XMLHttpRequest") +``` + +...or query values: + +```go +r.Queries("key", "value") +``` + +...or to use a custom matcher function: + +```go +r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { + return r.ProtoMajor == 0 +}) +``` + +...and finally, it is possible to combine several matchers in a single route: + +```go +r.HandleFunc("/products", ProductsHandler). + Host("www.example.com"). + Methods("GET"). + Schemes("http") +``` + +Setting the same matching conditions again and again can be boring, so we have a way to group several routes that share the same requirements. We call it "subrouting". + +For example, let's say we have several URLs that should only match when the host is `www.example.com`. Create a route for that host and get a "subrouter" from it: + +```go +r := mux.NewRouter() +s := r.Host("www.example.com").Subrouter() +``` + +Then register routes in the subrouter: + +```go +s.HandleFunc("/products/", ProductsHandler) +s.HandleFunc("/products/{key}", ProductHandler) +s.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) +``` + +The three URL paths we registered above will only be tested if the domain is `www.example.com`, because the subrouter is tested first. This is not only convenient, but also optimizes request matching. You can create subrouters combining any attribute matchers accepted by a route. + +Subrouters can be used to create domain or path "namespaces": you define subrouters in a central place and then parts of the app can register its paths relatively to a given subrouter. + +There's one more thing about subroutes. When a subrouter has a path prefix, the inner routes use it as base for their paths: + +```go +r := mux.NewRouter() +s := r.PathPrefix("/products").Subrouter() +// "/products/" +s.HandleFunc("/", ProductsHandler) +// "/products/{key}/" +s.HandleFunc("/{key}/", ProductHandler) +// "/products/{key}/details" +s.HandleFunc("/{key}/details", ProductDetailsHandler) +``` + +### Listing Routes + +Routes on a mux can be listed using the Router.Walk method—useful for generating documentation: + +```go +package main + +import ( + "fmt" + "net/http" + "strings" + + "github.com/gorilla/mux" +) + +func handler(w http.ResponseWriter, r *http.Request) { + return +} + +func main() { + r := mux.NewRouter() + r.HandleFunc("/", handler) + r.Methods("POST").HandleFunc("/products", handler) + r.Methods("GET").HandleFunc("/articles", handler) + r.Methods("GET", "PUT").HandleFunc("/articles/{id}", handler) + r.Walk(func(route *mux.Route, router *mux.Router, ancestors []*mux.Route) error { + t, err := route.GetPathTemplate() + if err != nil { + return err + } + // p will contain regular expression is compatible with regular expression in Perl, Python, and other languages. + // for instance the regular expression for path '/articles/{id}' will be '^/articles/(?P[^/]+)$' + p, err := route.GetPathRegexp() + if err != nil { + return err + } + m, err := route.GetMethods() + if err != nil { + return err + } + fmt.Println(strings.Join(m, ","), t, p) + return nil + }) + http.Handle("/", r) +} +``` + +### Static Files + +Note that the path provided to `PathPrefix()` represents a "wildcard": calling +`PathPrefix("/static/").Handler(...)` means that the handler will be passed any +request that matches "/static/*". This makes it easy to serve static files with mux: + +```go +func main() { + var dir string + + flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") + flag.Parse() + r := mux.NewRouter() + + // This will serve files under http://localhost:8000/static/ + r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) + + srv := &http.Server{ + Handler: r, + Addr: "127.0.0.1:8000", + // Good practice: enforce timeouts for servers you create! + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } + + log.Fatal(srv.ListenAndServe()) +} +``` + +### Registered URLs + +Now let's see how to build registered URLs. + +Routes can be named. All routes that define a name can have their URLs built, or "reversed". We define a name calling `Name()` on a route. For example: + +```go +r := mux.NewRouter() +r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). + Name("article") +``` + +To build a URL, get the route and call the `URL()` method, passing a sequence of key/value pairs for the route variables. For the previous route, we would do: + +```go +url, err := r.Get("article").URL("category", "technology", "id", "42") +``` + +...and the result will be a `url.URL` with the following path: + +``` +"/articles/technology/42" +``` + +This also works for host variables: + +```go +r := mux.NewRouter() +r.Host("{subdomain}.domain.com"). + Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + +// url.String() will be "http://news.domain.com/articles/technology/42" +url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") +``` + +All variables defined in the route are required, and their values must conform to the corresponding patterns. These requirements guarantee that a generated URL will always match a registered route -- the only exception is for explicitly defined "build-only" routes which never match. + +Regex support also exists for matching Headers within a route. For example, we could do: + +```go +r.HeadersRegexp("Content-Type", "application/(text|json)") +``` + +...and the route will match both requests with a Content-Type of `application/json` as well as `application/text` + +There's also a way to build only the URL host or path for a route: use the methods `URLHost()` or `URLPath()` instead. For the previous route, we would do: + +```go +// "http://news.domain.com/" +host, err := r.Get("article").URLHost("subdomain", "news") + +// "/articles/technology/42" +path, err := r.Get("article").URLPath("category", "technology", "id", "42") +``` + +And if you use subrouters, host and path defined separately can be built as well: + +```go +r := mux.NewRouter() +s := r.Host("{subdomain}.domain.com").Subrouter() +s.Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + +// "http://news.domain.com/articles/technology/42" +url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") +``` + +## Full Example + +Here's a complete, runnable example of a small `mux` based server: + +```go +package main + +import ( + "net/http" + "log" + "github.com/gorilla/mux" +) + +func YourHandler(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("Gorilla!\n")) +} + +func main() { + r := mux.NewRouter() + // Routes consist of a path and a handler function. + r.HandleFunc("/", YourHandler) + + // Bind to a port and pass our router in + log.Fatal(http.ListenAndServe(":8000", r)) +} +``` + +## License + +BSD licensed. See the LICENSE file for details. diff --git a/vendor/github.com/gorilla/mux/bench_test.go b/vendor/github.com/gorilla/mux/bench_test.go new file mode 100644 index 00000000..522156dc --- /dev/null +++ b/vendor/github.com/gorilla/mux/bench_test.go @@ -0,0 +1,49 @@ +// Copyright 2012 The Gorilla 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 mux + +import ( + "net/http" + "net/http/httptest" + "testing" +) + +func BenchmarkMux(b *testing.B) { + router := new(Router) + handler := func(w http.ResponseWriter, r *http.Request) {} + router.HandleFunc("/v1/{v1}", handler) + + request, _ := http.NewRequest("GET", "/v1/anything", nil) + for i := 0; i < b.N; i++ { + router.ServeHTTP(nil, request) + } +} + +func BenchmarkMuxAlternativeInRegexp(b *testing.B) { + router := new(Router) + handler := func(w http.ResponseWriter, r *http.Request) {} + router.HandleFunc("/v1/{v1:(?:a|b)}", handler) + + requestA, _ := http.NewRequest("GET", "/v1/a", nil) + requestB, _ := http.NewRequest("GET", "/v1/b", nil) + for i := 0; i < b.N; i++ { + router.ServeHTTP(nil, requestA) + router.ServeHTTP(nil, requestB) + } +} + +func BenchmarkManyPathVariables(b *testing.B) { + router := new(Router) + handler := func(w http.ResponseWriter, r *http.Request) {} + router.HandleFunc("/v1/{v1}/{v2}/{v3}/{v4}/{v5}", handler) + + matchingRequest, _ := http.NewRequest("GET", "/v1/1/2/3/4/5", nil) + notMatchingRequest, _ := http.NewRequest("GET", "/v1/1/2/3/4", nil) + recorder := httptest.NewRecorder() + for i := 0; i < b.N; i++ { + router.ServeHTTP(nil, matchingRequest) + router.ServeHTTP(recorder, notMatchingRequest) + } +} diff --git a/vendor/github.com/gorilla/mux/context_gorilla.go b/vendor/github.com/gorilla/mux/context_gorilla.go new file mode 100644 index 00000000..d7adaa8f --- /dev/null +++ b/vendor/github.com/gorilla/mux/context_gorilla.go @@ -0,0 +1,26 @@ +// +build !go1.7 + +package mux + +import ( + "net/http" + + "github.com/gorilla/context" +) + +func contextGet(r *http.Request, key interface{}) interface{} { + return context.Get(r, key) +} + +func contextSet(r *http.Request, key, val interface{}) *http.Request { + if val == nil { + return r + } + + context.Set(r, key, val) + return r +} + +func contextClear(r *http.Request) { + context.Clear(r) +} diff --git a/vendor/github.com/gorilla/mux/context_gorilla_test.go b/vendor/github.com/gorilla/mux/context_gorilla_test.go new file mode 100644 index 00000000..ffaf384c --- /dev/null +++ b/vendor/github.com/gorilla/mux/context_gorilla_test.go @@ -0,0 +1,40 @@ +// +build !go1.7 + +package mux + +import ( + "net/http" + "testing" + + "github.com/gorilla/context" +) + +// Tests that the context is cleared or not cleared properly depending on +// the configuration of the router +func TestKeepContext(t *testing.T) { + func1 := func(w http.ResponseWriter, r *http.Request) {} + + r := NewRouter() + r.HandleFunc("/", func1).Name("func1") + + req, _ := http.NewRequest("GET", "http://localhost/", nil) + context.Set(req, "t", 1) + + res := new(http.ResponseWriter) + r.ServeHTTP(*res, req) + + if _, ok := context.GetOk(req, "t"); ok { + t.Error("Context should have been cleared at end of request") + } + + r.KeepContext = true + + req, _ = http.NewRequest("GET", "http://localhost/", nil) + context.Set(req, "t", 1) + + r.ServeHTTP(*res, req) + if _, ok := context.GetOk(req, "t"); !ok { + t.Error("Context should NOT have been cleared at end of request") + } + +} diff --git a/vendor/github.com/gorilla/mux/context_native.go b/vendor/github.com/gorilla/mux/context_native.go new file mode 100644 index 00000000..209cbea7 --- /dev/null +++ b/vendor/github.com/gorilla/mux/context_native.go @@ -0,0 +1,24 @@ +// +build go1.7 + +package mux + +import ( + "context" + "net/http" +) + +func contextGet(r *http.Request, key interface{}) interface{} { + return r.Context().Value(key) +} + +func contextSet(r *http.Request, key, val interface{}) *http.Request { + if val == nil { + return r + } + + return r.WithContext(context.WithValue(r.Context(), key, val)) +} + +func contextClear(r *http.Request) { + return +} diff --git a/vendor/github.com/gorilla/mux/context_native_test.go b/vendor/github.com/gorilla/mux/context_native_test.go new file mode 100644 index 00000000..c150edf0 --- /dev/null +++ b/vendor/github.com/gorilla/mux/context_native_test.go @@ -0,0 +1,32 @@ +// +build go1.7 + +package mux + +import ( + "context" + "net/http" + "testing" + "time" +) + +func TestNativeContextMiddleware(t *testing.T) { + withTimeout := func(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ctx, cancel := context.WithTimeout(r.Context(), time.Minute) + defer cancel() + h.ServeHTTP(w, r.WithContext(ctx)) + }) + } + + r := NewRouter() + r.Handle("/path/{foo}", withTimeout(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + vars := Vars(r) + if vars["foo"] != "bar" { + t.Fatal("Expected foo var to be set") + } + }))) + + rec := NewRecorder() + req := newRequest("GET", "/path/bar") + r.ServeHTTP(rec, req) +} diff --git a/vendor/github.com/gorilla/mux/doc.go b/vendor/github.com/gorilla/mux/doc.go new file mode 100644 index 00000000..00daf4a7 --- /dev/null +++ b/vendor/github.com/gorilla/mux/doc.go @@ -0,0 +1,240 @@ +// Copyright 2012 The Gorilla 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 mux implements a request router and dispatcher. + +The name mux stands for "HTTP request multiplexer". Like the standard +http.ServeMux, mux.Router matches incoming requests against a list of +registered routes and calls a handler for the route that matches the URL +or other conditions. The main features are: + + * Requests can be matched based on URL host, path, path prefix, schemes, + header and query values, HTTP methods or using custom matchers. + * URL hosts and paths can have variables with an optional regular + expression. + * Registered URLs can be built, or "reversed", which helps maintaining + references to resources. + * Routes can be used as subrouters: nested routes are only tested if the + parent route matches. This is useful to define groups of routes that + share common conditions like a host, a path prefix or other repeated + attributes. As a bonus, this optimizes request matching. + * It implements the http.Handler interface so it is compatible with the + standard http.ServeMux. + +Let's start registering a couple of URL paths and handlers: + + func main() { + r := mux.NewRouter() + r.HandleFunc("/", HomeHandler) + r.HandleFunc("/products", ProductsHandler) + r.HandleFunc("/articles", ArticlesHandler) + http.Handle("/", r) + } + +Here we register three routes mapping URL paths to handlers. This is +equivalent to how http.HandleFunc() works: if an incoming request URL matches +one of the paths, the corresponding handler is called passing +(http.ResponseWriter, *http.Request) as parameters. + +Paths can have variables. They are defined using the format {name} or +{name:pattern}. If a regular expression pattern is not defined, the matched +variable will be anything until the next slash. For example: + + r := mux.NewRouter() + r.HandleFunc("/products/{key}", ProductHandler) + r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) + +Groups can be used inside patterns, as long as they are non-capturing (?:re). For example: + + r.HandleFunc("/articles/{category}/{sort:(?:asc|desc|new)}", ArticlesCategoryHandler) + +The names are used to create a map of route variables which can be retrieved +calling mux.Vars(): + + vars := mux.Vars(request) + category := vars["category"] + +Note that if any capturing groups are present, mux will panic() during parsing. To prevent +this, convert any capturing groups to non-capturing, e.g. change "/{sort:(asc|desc)}" to +"/{sort:(?:asc|desc)}". This is a change from prior versions which behaved unpredictably +when capturing groups were present. + +And this is all you need to know about the basic usage. More advanced options +are explained below. + +Routes can also be restricted to a domain or subdomain. Just define a host +pattern to be matched. They can also have variables: + + r := mux.NewRouter() + // Only matches if domain is "www.example.com". + r.Host("www.example.com") + // Matches a dynamic subdomain. + r.Host("{subdomain:[a-z]+}.domain.com") + +There are several other matchers that can be added. To match path prefixes: + + r.PathPrefix("/products/") + +...or HTTP methods: + + r.Methods("GET", "POST") + +...or URL schemes: + + r.Schemes("https") + +...or header values: + + r.Headers("X-Requested-With", "XMLHttpRequest") + +...or query values: + + r.Queries("key", "value") + +...or to use a custom matcher function: + + r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { + return r.ProtoMajor == 0 + }) + +...and finally, it is possible to combine several matchers in a single route: + + r.HandleFunc("/products", ProductsHandler). + Host("www.example.com"). + Methods("GET"). + Schemes("http") + +Setting the same matching conditions again and again can be boring, so we have +a way to group several routes that share the same requirements. +We call it "subrouting". + +For example, let's say we have several URLs that should only match when the +host is "www.example.com". Create a route for that host and get a "subrouter" +from it: + + r := mux.NewRouter() + s := r.Host("www.example.com").Subrouter() + +Then register routes in the subrouter: + + s.HandleFunc("/products/", ProductsHandler) + s.HandleFunc("/products/{key}", ProductHandler) + s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) + +The three URL paths we registered above will only be tested if the domain is +"www.example.com", because the subrouter is tested first. This is not +only convenient, but also optimizes request matching. You can create +subrouters combining any attribute matchers accepted by a route. + +Subrouters can be used to create domain or path "namespaces": you define +subrouters in a central place and then parts of the app can register its +paths relatively to a given subrouter. + +There's one more thing about subroutes. When a subrouter has a path prefix, +the inner routes use it as base for their paths: + + r := mux.NewRouter() + s := r.PathPrefix("/products").Subrouter() + // "/products/" + s.HandleFunc("/", ProductsHandler) + // "/products/{key}/" + s.HandleFunc("/{key}/", ProductHandler) + // "/products/{key}/details" + s.HandleFunc("/{key}/details", ProductDetailsHandler) + +Note that the path provided to PathPrefix() represents a "wildcard": calling +PathPrefix("/static/").Handler(...) means that the handler will be passed any +request that matches "/static/*". This makes it easy to serve static files with mux: + + func main() { + var dir string + + flag.StringVar(&dir, "dir", ".", "the directory to serve files from. Defaults to the current dir") + flag.Parse() + r := mux.NewRouter() + + // This will serve files under http://localhost:8000/static/ + r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(dir)))) + + srv := &http.Server{ + Handler: r, + Addr: "127.0.0.1:8000", + // Good practice: enforce timeouts for servers you create! + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } + + log.Fatal(srv.ListenAndServe()) + } + +Now let's see how to build registered URLs. + +Routes can be named. All routes that define a name can have their URLs built, +or "reversed". We define a name calling Name() on a route. For example: + + r := mux.NewRouter() + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). + Name("article") + +To build a URL, get the route and call the URL() method, passing a sequence of +key/value pairs for the route variables. For the previous route, we would do: + + url, err := r.Get("article").URL("category", "technology", "id", "42") + +...and the result will be a url.URL with the following path: + + "/articles/technology/42" + +This also works for host variables: + + r := mux.NewRouter() + r.Host("{subdomain}.domain.com"). + Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + + // url.String() will be "http://news.domain.com/articles/technology/42" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") + +All variables defined in the route are required, and their values must +conform to the corresponding patterns. These requirements guarantee that a +generated URL will always match a registered route -- the only exception is +for explicitly defined "build-only" routes which never match. + +Regex support also exists for matching Headers within a route. For example, we could do: + + r.HeadersRegexp("Content-Type", "application/(text|json)") + +...and the route will match both requests with a Content-Type of `application/json` as well as +`application/text` + +There's also a way to build only the URL host or path for a route: +use the methods URLHost() or URLPath() instead. For the previous route, +we would do: + + // "http://news.domain.com/" + host, err := r.Get("article").URLHost("subdomain", "news") + + // "/articles/technology/42" + path, err := r.Get("article").URLPath("category", "technology", "id", "42") + +And if you use subrouters, host and path defined separately can be built +as well: + + r := mux.NewRouter() + s := r.Host("{subdomain}.domain.com").Subrouter() + s.Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + + // "http://news.domain.com/articles/technology/42" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") +*/ +package mux diff --git a/vendor/github.com/gorilla/mux/mux.go b/vendor/github.com/gorilla/mux/mux.go new file mode 100644 index 00000000..d66ec384 --- /dev/null +++ b/vendor/github.com/gorilla/mux/mux.go @@ -0,0 +1,542 @@ +// Copyright 2012 The Gorilla 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 mux + +import ( + "errors" + "fmt" + "net/http" + "path" + "regexp" + "strings" +) + +// NewRouter returns a new router instance. +func NewRouter() *Router { + return &Router{namedRoutes: make(map[string]*Route), KeepContext: false} +} + +// Router registers routes to be matched and dispatches a handler. +// +// It implements the http.Handler interface, so it can be registered to serve +// requests: +// +// var router = mux.NewRouter() +// +// func main() { +// http.Handle("/", router) +// } +// +// Or, for Google App Engine, register it in a init() function: +// +// func init() { +// http.Handle("/", router) +// } +// +// This will send all incoming requests to the router. +type Router struct { + // Configurable Handler to be used when no route matches. + NotFoundHandler http.Handler + // Parent route, if this is a subrouter. + parent parentRoute + // Routes to be matched, in order. + routes []*Route + // Routes by name for URL building. + namedRoutes map[string]*Route + // See Router.StrictSlash(). This defines the flag for new routes. + strictSlash bool + // See Router.SkipClean(). This defines the flag for new routes. + skipClean bool + // If true, do not clear the request context after handling the request. + // This has no effect when go1.7+ is used, since the context is stored + // on the request itself. + KeepContext bool + // see Router.UseEncodedPath(). This defines a flag for all routes. + useEncodedPath bool +} + +// Match matches registered routes against the request. +func (r *Router) Match(req *http.Request, match *RouteMatch) bool { + for _, route := range r.routes { + if route.Match(req, match) { + return true + } + } + + // Closest match for a router (includes sub-routers) + if r.NotFoundHandler != nil { + match.Handler = r.NotFoundHandler + return true + } + return false +} + +// ServeHTTP dispatches the handler registered in the matched route. +// +// When there is a match, the route variables can be retrieved calling +// mux.Vars(request). +func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) { + if !r.skipClean { + path := req.URL.Path + if r.useEncodedPath { + path = getPath(req) + } + // Clean path to canonical form and redirect. + if p := cleanPath(path); p != path { + + // Added 3 lines (Philip Schlump) - It was dropping the query string and #whatever from query. + // This matches with fix in go 1.2 r.c. 4 for same problem. Go Issue: + // http://code.google.com/p/go/issues/detail?id=5252 + url := *req.URL + url.Path = p + p = url.String() + + w.Header().Set("Location", p) + w.WriteHeader(http.StatusMovedPermanently) + return + } + } + var match RouteMatch + var handler http.Handler + if r.Match(req, &match) { + handler = match.Handler + req = setVars(req, match.Vars) + req = setCurrentRoute(req, match.Route) + } + if handler == nil { + handler = http.NotFoundHandler() + } + if !r.KeepContext { + defer contextClear(req) + } + handler.ServeHTTP(w, req) +} + +// Get returns a route registered with the given name. +func (r *Router) Get(name string) *Route { + return r.getNamedRoutes()[name] +} + +// GetRoute returns a route registered with the given name. This method +// was renamed to Get() and remains here for backwards compatibility. +func (r *Router) GetRoute(name string) *Route { + return r.getNamedRoutes()[name] +} + +// StrictSlash defines the trailing slash behavior for new routes. The initial +// value is false. +// +// When true, if the route path is "/path/", accessing "/path" will redirect +// to the former and vice versa. In other words, your application will always +// see the path as specified in the route. +// +// When false, if the route path is "/path", accessing "/path/" will not match +// this route and vice versa. +// +// Special case: when a route sets a path prefix using the PathPrefix() method, +// strict slash is ignored for that route because the redirect behavior can't +// be determined from a prefix alone. However, any subrouters created from that +// route inherit the original StrictSlash setting. +func (r *Router) StrictSlash(value bool) *Router { + r.strictSlash = value + return r +} + +// SkipClean defines the path cleaning behaviour for new routes. The initial +// value is false. Users should be careful about which routes are not cleaned +// +// When true, if the route path is "/path//to", it will remain with the double +// slash. This is helpful if you have a route like: /fetch/http://xkcd.com/534/ +// +// When false, the path will be cleaned, so /fetch/http://xkcd.com/534/ will +// become /fetch/http/xkcd.com/534 +func (r *Router) SkipClean(value bool) *Router { + r.skipClean = value + return r +} + +// UseEncodedPath tells the router to match the encoded original path +// to the routes. +// For eg. "/path/foo%2Fbar/to" will match the path "/path/{var}/to". +// This behavior has the drawback of needing to match routes against +// r.RequestURI instead of r.URL.Path. Any modifications (such as http.StripPrefix) +// to r.URL.Path will not affect routing when this flag is on and thus may +// induce unintended behavior. +// +// If not called, the router will match the unencoded path to the routes. +// For eg. "/path/foo%2Fbar/to" will match the path "/path/foo/bar/to" +func (r *Router) UseEncodedPath() *Router { + r.useEncodedPath = true + return r +} + +// ---------------------------------------------------------------------------- +// parentRoute +// ---------------------------------------------------------------------------- + +// getNamedRoutes returns the map where named routes are registered. +func (r *Router) getNamedRoutes() map[string]*Route { + if r.namedRoutes == nil { + if r.parent != nil { + r.namedRoutes = r.parent.getNamedRoutes() + } else { + r.namedRoutes = make(map[string]*Route) + } + } + return r.namedRoutes +} + +// getRegexpGroup returns regexp definitions from the parent route, if any. +func (r *Router) getRegexpGroup() *routeRegexpGroup { + if r.parent != nil { + return r.parent.getRegexpGroup() + } + return nil +} + +func (r *Router) buildVars(m map[string]string) map[string]string { + if r.parent != nil { + m = r.parent.buildVars(m) + } + return m +} + +// ---------------------------------------------------------------------------- +// Route factories +// ---------------------------------------------------------------------------- + +// NewRoute registers an empty route. +func (r *Router) NewRoute() *Route { + route := &Route{parent: r, strictSlash: r.strictSlash, skipClean: r.skipClean, useEncodedPath: r.useEncodedPath} + r.routes = append(r.routes, route) + return route +} + +// Handle registers a new route with a matcher for the URL path. +// See Route.Path() and Route.Handler(). +func (r *Router) Handle(path string, handler http.Handler) *Route { + return r.NewRoute().Path(path).Handler(handler) +} + +// HandleFunc registers a new route with a matcher for the URL path. +// See Route.Path() and Route.HandlerFunc(). +func (r *Router) HandleFunc(path string, f func(http.ResponseWriter, + *http.Request)) *Route { + return r.NewRoute().Path(path).HandlerFunc(f) +} + +// Headers registers a new route with a matcher for request header values. +// See Route.Headers(). +func (r *Router) Headers(pairs ...string) *Route { + return r.NewRoute().Headers(pairs...) +} + +// Host registers a new route with a matcher for the URL host. +// See Route.Host(). +func (r *Router) Host(tpl string) *Route { + return r.NewRoute().Host(tpl) +} + +// MatcherFunc registers a new route with a custom matcher function. +// See Route.MatcherFunc(). +func (r *Router) MatcherFunc(f MatcherFunc) *Route { + return r.NewRoute().MatcherFunc(f) +} + +// Methods registers a new route with a matcher for HTTP methods. +// See Route.Methods(). +func (r *Router) Methods(methods ...string) *Route { + return r.NewRoute().Methods(methods...) +} + +// Path registers a new route with a matcher for the URL path. +// See Route.Path(). +func (r *Router) Path(tpl string) *Route { + return r.NewRoute().Path(tpl) +} + +// PathPrefix registers a new route with a matcher for the URL path prefix. +// See Route.PathPrefix(). +func (r *Router) PathPrefix(tpl string) *Route { + return r.NewRoute().PathPrefix(tpl) +} + +// Queries registers a new route with a matcher for URL query values. +// See Route.Queries(). +func (r *Router) Queries(pairs ...string) *Route { + return r.NewRoute().Queries(pairs...) +} + +// Schemes registers a new route with a matcher for URL schemes. +// See Route.Schemes(). +func (r *Router) Schemes(schemes ...string) *Route { + return r.NewRoute().Schemes(schemes...) +} + +// BuildVarsFunc registers a new route with a custom function for modifying +// route variables before building a URL. +func (r *Router) BuildVarsFunc(f BuildVarsFunc) *Route { + return r.NewRoute().BuildVarsFunc(f) +} + +// Walk walks the router and all its sub-routers, calling walkFn for each route +// in the tree. The routes are walked in the order they were added. Sub-routers +// are explored depth-first. +func (r *Router) Walk(walkFn WalkFunc) error { + return r.walk(walkFn, []*Route{}) +} + +// SkipRouter is used as a return value from WalkFuncs to indicate that the +// router that walk is about to descend down to should be skipped. +var SkipRouter = errors.New("skip this router") + +// WalkFunc is the type of the function called for each route visited by Walk. +// At every invocation, it is given the current route, and the current router, +// and a list of ancestor routes that lead to the current route. +type WalkFunc func(route *Route, router *Router, ancestors []*Route) error + +func (r *Router) walk(walkFn WalkFunc, ancestors []*Route) error { + for _, t := range r.routes { + if t.regexp == nil || t.regexp.path == nil || t.regexp.path.template == "" { + continue + } + + err := walkFn(t, r, ancestors) + if err == SkipRouter { + continue + } + if err != nil { + return err + } + for _, sr := range t.matchers { + if h, ok := sr.(*Router); ok { + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + } + } + if h, ok := t.handler.(*Router); ok { + ancestors = append(ancestors, t) + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + ancestors = ancestors[:len(ancestors)-1] + } + } + return nil +} + +// ---------------------------------------------------------------------------- +// Context +// ---------------------------------------------------------------------------- + +// RouteMatch stores information about a matched route. +type RouteMatch struct { + Route *Route + Handler http.Handler + Vars map[string]string +} + +type contextKey int + +const ( + varsKey contextKey = iota + routeKey +) + +// Vars returns the route variables for the current request, if any. +func Vars(r *http.Request) map[string]string { + if rv := contextGet(r, varsKey); rv != nil { + return rv.(map[string]string) + } + return nil +} + +// CurrentRoute returns the matched route for the current request, if any. +// This only works when called inside the handler of the matched route +// because the matched route is stored in the request context which is cleared +// after the handler returns, unless the KeepContext option is set on the +// Router. +func CurrentRoute(r *http.Request) *Route { + if rv := contextGet(r, routeKey); rv != nil { + return rv.(*Route) + } + return nil +} + +func setVars(r *http.Request, val interface{}) *http.Request { + return contextSet(r, varsKey, val) +} + +func setCurrentRoute(r *http.Request, val interface{}) *http.Request { + return contextSet(r, routeKey, val) +} + +// ---------------------------------------------------------------------------- +// Helpers +// ---------------------------------------------------------------------------- + +// getPath returns the escaped path if possible; doing what URL.EscapedPath() +// which was added in go1.5 does +func getPath(req *http.Request) string { + if req.RequestURI != "" { + // Extract the path from RequestURI (which is escaped unlike URL.Path) + // as detailed here as detailed in https://golang.org/pkg/net/url/#URL + // for < 1.5 server side workaround + // http://localhost/path/here?v=1 -> /path/here + path := req.RequestURI + path = strings.TrimPrefix(path, req.URL.Scheme+`://`) + path = strings.TrimPrefix(path, req.URL.Host) + if i := strings.LastIndex(path, "?"); i > -1 { + path = path[:i] + } + if i := strings.LastIndex(path, "#"); i > -1 { + path = path[:i] + } + return path + } + return req.URL.Path +} + +// cleanPath returns the canonical path for p, eliminating . and .. elements. +// Borrowed from the net/http package. +func cleanPath(p string) string { + if p == "" { + return "/" + } + if p[0] != '/' { + p = "/" + p + } + np := path.Clean(p) + // path.Clean removes trailing slash except for root; + // put the trailing slash back if necessary. + if p[len(p)-1] == '/' && np != "/" { + np += "/" + } + + return np +} + +// uniqueVars returns an error if two slices contain duplicated strings. +func uniqueVars(s1, s2 []string) error { + for _, v1 := range s1 { + for _, v2 := range s2 { + if v1 == v2 { + return fmt.Errorf("mux: duplicated route variable %q", v2) + } + } + } + return nil +} + +// checkPairs returns the count of strings passed in, and an error if +// the count is not an even number. +func checkPairs(pairs ...string) (int, error) { + length := len(pairs) + if length%2 != 0 { + return length, fmt.Errorf( + "mux: number of parameters must be multiple of 2, got %v", pairs) + } + return length, nil +} + +// mapFromPairsToString converts variadic string parameters to a +// string to string map. +func mapFromPairsToString(pairs ...string) (map[string]string, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } + m := make(map[string]string, length/2) + for i := 0; i < length; i += 2 { + m[pairs[i]] = pairs[i+1] + } + return m, nil +} + +// mapFromPairsToRegex converts variadic string paramers to a +// string to regex map. +func mapFromPairsToRegex(pairs ...string) (map[string]*regexp.Regexp, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } + m := make(map[string]*regexp.Regexp, length/2) + for i := 0; i < length; i += 2 { + regex, err := regexp.Compile(pairs[i+1]) + if err != nil { + return nil, err + } + m[pairs[i]] = regex + } + return m, nil +} + +// matchInArray returns true if the given string value is in the array. +func matchInArray(arr []string, value string) bool { + for _, v := range arr { + if v == value { + return true + } + } + return false +} + +// matchMapWithString returns true if the given key/value pairs exist in a given map. +func matchMapWithString(toCheck map[string]string, toMatch map[string][]string, canonicalKey bool) bool { + for k, v := range toCheck { + // Check if key exists. + if canonicalKey { + k = http.CanonicalHeaderKey(k) + } + if values := toMatch[k]; values == nil { + return false + } else if v != "" { + // If value was defined as an empty string we only check that the + // key exists. Otherwise we also check for equality. + valueExists := false + for _, value := range values { + if v == value { + valueExists = true + break + } + } + if !valueExists { + return false + } + } + } + return true +} + +// matchMapWithRegex returns true if the given key/value pairs exist in a given map compiled against +// the given regex +func matchMapWithRegex(toCheck map[string]*regexp.Regexp, toMatch map[string][]string, canonicalKey bool) bool { + for k, v := range toCheck { + // Check if key exists. + if canonicalKey { + k = http.CanonicalHeaderKey(k) + } + if values := toMatch[k]; values == nil { + return false + } else if v != nil { + // If value was defined as an empty string we only check that the + // key exists. Otherwise we also check for equality. + valueExists := false + for _, value := range values { + if v.MatchString(value) { + valueExists = true + break + } + } + if !valueExists { + return false + } + } + } + return true +} diff --git a/vendor/github.com/gorilla/mux/mux_test.go b/vendor/github.com/gorilla/mux/mux_test.go new file mode 100644 index 00000000..19ef5a8c --- /dev/null +++ b/vendor/github.com/gorilla/mux/mux_test.go @@ -0,0 +1,1771 @@ +// Copyright 2012 The Gorilla 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 mux + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "net/http" + "net/url" + "strings" + "testing" +) + +func (r *Route) GoString() string { + matchers := make([]string, len(r.matchers)) + for i, m := range r.matchers { + matchers[i] = fmt.Sprintf("%#v", m) + } + return fmt.Sprintf("&Route{matchers:[]matcher{%s}}", strings.Join(matchers, ", ")) +} + +func (r *routeRegexp) GoString() string { + return fmt.Sprintf("&routeRegexp{template: %q, matchHost: %t, matchQuery: %t, strictSlash: %t, regexp: regexp.MustCompile(%q), reverse: %q, varsN: %v, varsR: %v", r.template, r.matchHost, r.matchQuery, r.strictSlash, r.regexp.String(), r.reverse, r.varsN, r.varsR) +} + +type routeTest struct { + title string // title of the test + route *Route // the route being tested + request *http.Request // a request to test the route + vars map[string]string // the expected vars of the match + scheme string // the expected scheme of the built URL + host string // the expected host of the built URL + path string // the expected path of the built URL + pathTemplate string // the expected path template of the route + hostTemplate string // the expected host template of the route + methods []string // the expected route methods + pathRegexp string // the expected path regexp + shouldMatch bool // whether the request is expected to match the route at all + shouldRedirect bool // whether the request should result in a redirect +} + +func TestHost(t *testing.T) { + // newRequestHost a new request with a method, url, and host header + newRequestHost := func(method, url, host string) *http.Request { + req, err := http.NewRequest(method, url, nil) + if err != nil { + panic(err) + } + req.Host = host + return req + } + + tests := []routeTest{ + { + title: "Host route match", + route: new(Route).Host("aaa.bbb.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { + title: "Host route, wrong host in request URL", + route: new(Route).Host("aaa.bbb.ccc"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: false, + }, + { + title: "Host route with port, match", + route: new(Route).Host("aaa.bbb.ccc:1234"), + request: newRequest("GET", "http://aaa.bbb.ccc:1234/111/222/333"), + vars: map[string]string{}, + host: "aaa.bbb.ccc:1234", + path: "", + shouldMatch: true, + }, + { + title: "Host route with port, wrong port in request URL", + route: new(Route).Host("aaa.bbb.ccc:1234"), + request: newRequest("GET", "http://aaa.bbb.ccc:9999/111/222/333"), + vars: map[string]string{}, + host: "aaa.bbb.ccc:1234", + path: "", + shouldMatch: false, + }, + { + title: "Host route, match with host in request header", + route: new(Route).Host("aaa.bbb.ccc"), + request: newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc"), + vars: map[string]string{}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { + title: "Host route, wrong host in request header", + route: new(Route).Host("aaa.bbb.ccc"), + request: newRequestHost("GET", "/111/222/333", "aaa.222.ccc"), + vars: map[string]string{}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: false, + }, + // BUG {new(Route).Host("aaa.bbb.ccc:1234"), newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc:1234"), map[string]string{}, "aaa.bbb.ccc:1234", "", true}, + { + title: "Host route with port, wrong host in request header", + route: new(Route).Host("aaa.bbb.ccc:1234"), + request: newRequestHost("GET", "/111/222/333", "aaa.bbb.ccc:9999"), + vars: map[string]string{}, + host: "aaa.bbb.ccc:1234", + path: "", + shouldMatch: false, + }, + { + title: "Host route with pattern, match", + route: new(Route).Host("aaa.{v1:[a-z]{3}}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `aaa.{v1:[a-z]{3}}.ccc`, + shouldMatch: true, + }, + { + title: "Host route with pattern, additional capturing group, match", + route: new(Route).Host("aaa.{v1:[a-z]{2}(?:b|c)}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `aaa.{v1:[a-z]{2}(?:b|c)}.ccc`, + shouldMatch: true, + }, + { + title: "Host route with pattern, wrong host in request URL", + route: new(Route).Host("aaa.{v1:[a-z]{3}}.ccc"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `aaa.{v1:[a-z]{3}}.ccc`, + shouldMatch: false, + }, + { + title: "Host route with multiple patterns, match", + route: new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}`, + shouldMatch: true, + }, + { + title: "Host route with multiple patterns, wrong host in request URL", + route: new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}`, + shouldMatch: false, + }, + { + title: "Host route with hyphenated name and pattern, match", + route: new(Route).Host("aaa.{v-1:[a-z]{3}}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `aaa.{v-1:[a-z]{3}}.ccc`, + shouldMatch: true, + }, + { + title: "Host route with hyphenated name and pattern, additional capturing group, match", + route: new(Route).Host("aaa.{v-1:[a-z]{2}(?:b|c)}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `aaa.{v-1:[a-z]{2}(?:b|c)}.ccc`, + shouldMatch: true, + }, + { + title: "Host route with multiple hyphenated names and patterns, match", + route: new(Route).Host("{v-1:[a-z]{3}}.{v-2:[a-z]{3}}.{v-3:[a-z]{3}}"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "aaa", "v-2": "bbb", "v-3": "ccc"}, + host: "aaa.bbb.ccc", + path: "", + hostTemplate: `{v-1:[a-z]{3}}.{v-2:[a-z]{3}}.{v-3:[a-z]{3}}`, + shouldMatch: true, + }, + } + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestPath(t *testing.T) { + tests := []routeTest{ + { + title: "Path route, match", + route: new(Route).Path("/111/222/333"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{}, + host: "", + path: "/111/222/333", + shouldMatch: true, + }, + { + title: "Path route, match with trailing slash in request and path", + route: new(Route).Path("/111/"), + request: newRequest("GET", "http://localhost/111/"), + vars: map[string]string{}, + host: "", + path: "/111/", + shouldMatch: true, + }, + { + title: "Path route, do not match with trailing slash in path", + route: new(Route).Path("/111/"), + request: newRequest("GET", "http://localhost/111"), + vars: map[string]string{}, + host: "", + path: "/111", + pathTemplate: `/111/`, + pathRegexp: `^/111/$`, + shouldMatch: false, + }, + { + title: "Path route, do not match with trailing slash in request", + route: new(Route).Path("/111"), + request: newRequest("GET", "http://localhost/111/"), + vars: map[string]string{}, + host: "", + path: "/111/", + pathTemplate: `/111`, + shouldMatch: false, + }, + { + title: "Path route, match root with no host", + route: new(Route).Path("/"), + request: newRequest("GET", "/"), + vars: map[string]string{}, + host: "", + path: "/", + pathTemplate: `/`, + pathRegexp: `^/$`, + shouldMatch: true, + }, + { + title: "Path route, match root with no host, App Engine format", + route: new(Route).Path("/"), + request: func() *http.Request { + r := newRequest("GET", "http://localhost/") + r.RequestURI = "/" + return r + }(), + vars: map[string]string{}, + host: "", + path: "/", + pathTemplate: `/`, + shouldMatch: true, + }, + { + title: "Path route, wrong path in request in request URL", + route: new(Route).Path("/111/222/333"), + request: newRequest("GET", "http://localhost/1/2/3"), + vars: map[string]string{}, + host: "", + path: "/111/222/333", + shouldMatch: false, + }, + { + title: "Path route with pattern, match", + route: new(Route).Path("/111/{v1:[0-9]{3}}/333"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v1": "222"}, + host: "", + path: "/111/222/333", + pathTemplate: `/111/{v1:[0-9]{3}}/333`, + shouldMatch: true, + }, + { + title: "Path route with pattern, URL in request does not match", + route: new(Route).Path("/111/{v1:[0-9]{3}}/333"), + request: newRequest("GET", "http://localhost/111/aaa/333"), + vars: map[string]string{"v1": "222"}, + host: "", + path: "/111/222/333", + pathTemplate: `/111/{v1:[0-9]{3}}/333`, + pathRegexp: `^/111/(?P[0-9]{3})/333$`, + shouldMatch: false, + }, + { + title: "Path route with multiple patterns, match", + route: new(Route).Path("/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v1": "111", "v2": "222", "v3": "333"}, + host: "", + path: "/111/222/333", + pathTemplate: `/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}`, + pathRegexp: `^/(?P[0-9]{3})/(?P[0-9]{3})/(?P[0-9]{3})$`, + shouldMatch: true, + }, + { + title: "Path route with multiple patterns, URL in request does not match", + route: new(Route).Path("/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/aaa/333"), + vars: map[string]string{"v1": "111", "v2": "222", "v3": "333"}, + host: "", + path: "/111/222/333", + pathTemplate: `/{v1:[0-9]{3}}/{v2:[0-9]{3}}/{v3:[0-9]{3}}`, + pathRegexp: `^/(?P[0-9]{3})/(?P[0-9]{3})/(?P[0-9]{3})$`, + shouldMatch: false, + }, + { + title: "Path route with multiple patterns with pipe, match", + route: new(Route).Path("/{category:a|(?:b/c)}/{product}/{id:[0-9]+}"), + request: newRequest("GET", "http://localhost/a/product_name/1"), + vars: map[string]string{"category": "a", "product": "product_name", "id": "1"}, + host: "", + path: "/a/product_name/1", + pathTemplate: `/{category:a|(?:b/c)}/{product}/{id:[0-9]+}`, + pathRegexp: `^/(?Pa|(?:b/c))/(?P[^/]+)/(?P[0-9]+)$`, + shouldMatch: true, + }, + { + title: "Path route with hyphenated name and pattern, match", + route: new(Route).Path("/111/{v-1:[0-9]{3}}/333"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v-1": "222"}, + host: "", + path: "/111/222/333", + pathTemplate: `/111/{v-1:[0-9]{3}}/333`, + pathRegexp: `^/111/(?P[0-9]{3})/333$`, + shouldMatch: true, + }, + { + title: "Path route with multiple hyphenated names and patterns, match", + route: new(Route).Path("/{v-1:[0-9]{3}}/{v-2:[0-9]{3}}/{v-3:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v-1": "111", "v-2": "222", "v-3": "333"}, + host: "", + path: "/111/222/333", + pathTemplate: `/{v-1:[0-9]{3}}/{v-2:[0-9]{3}}/{v-3:[0-9]{3}}`, + pathRegexp: `^/(?P[0-9]{3})/(?P[0-9]{3})/(?P[0-9]{3})$`, + shouldMatch: true, + }, + { + title: "Path route with multiple hyphenated names and patterns with pipe, match", + route: new(Route).Path("/{product-category:a|(?:b/c)}/{product-name}/{product-id:[0-9]+}"), + request: newRequest("GET", "http://localhost/a/product_name/1"), + vars: map[string]string{"product-category": "a", "product-name": "product_name", "product-id": "1"}, + host: "", + path: "/a/product_name/1", + pathTemplate: `/{product-category:a|(?:b/c)}/{product-name}/{product-id:[0-9]+}`, + pathRegexp: `^/(?Pa|(?:b/c))/(?P[^/]+)/(?P[0-9]+)$`, + shouldMatch: true, + }, + { + title: "Path route with multiple hyphenated names and patterns with pipe and case insensitive, match", + route: new(Route).Path("/{type:(?i:daily|mini|variety)}-{date:\\d{4,4}-\\d{2,2}-\\d{2,2}}"), + request: newRequest("GET", "http://localhost/daily-2016-01-01"), + vars: map[string]string{"type": "daily", "date": "2016-01-01"}, + host: "", + path: "/daily-2016-01-01", + pathTemplate: `/{type:(?i:daily|mini|variety)}-{date:\d{4,4}-\d{2,2}-\d{2,2}}`, + pathRegexp: `^/(?P(?i:daily|mini|variety))-(?P\d{4,4}-\d{2,2}-\d{2,2})$`, + shouldMatch: true, + }, + { + title: "Path route with empty match right after other match", + route: new(Route).Path(`/{v1:[0-9]*}{v2:[a-z]*}/{v3:[0-9]*}`), + request: newRequest("GET", "http://localhost/111/222"), + vars: map[string]string{"v1": "111", "v2": "", "v3": "222"}, + host: "", + path: "/111/222", + pathTemplate: `/{v1:[0-9]*}{v2:[a-z]*}/{v3:[0-9]*}`, + pathRegexp: `^/(?P[0-9]*)(?P[a-z]*)/(?P[0-9]*)$`, + shouldMatch: true, + }, + { + title: "Path route with single pattern with pipe, match", + route: new(Route).Path("/{category:a|b/c}"), + request: newRequest("GET", "http://localhost/a"), + vars: map[string]string{"category": "a"}, + host: "", + path: "/a", + pathTemplate: `/{category:a|b/c}`, + shouldMatch: true, + }, + { + title: "Path route with single pattern with pipe, match", + route: new(Route).Path("/{category:a|b/c}"), + request: newRequest("GET", "http://localhost/b/c"), + vars: map[string]string{"category": "b/c"}, + host: "", + path: "/b/c", + pathTemplate: `/{category:a|b/c}`, + shouldMatch: true, + }, + { + title: "Path route with multiple patterns with pipe, match", + route: new(Route).Path("/{category:a|b/c}/{product}/{id:[0-9]+}"), + request: newRequest("GET", "http://localhost/a/product_name/1"), + vars: map[string]string{"category": "a", "product": "product_name", "id": "1"}, + host: "", + path: "/a/product_name/1", + pathTemplate: `/{category:a|b/c}/{product}/{id:[0-9]+}`, + shouldMatch: true, + }, + { + title: "Path route with multiple patterns with pipe, match", + route: new(Route).Path("/{category:a|b/c}/{product}/{id:[0-9]+}"), + request: newRequest("GET", "http://localhost/b/c/product_name/1"), + vars: map[string]string{"category": "b/c", "product": "product_name", "id": "1"}, + host: "", + path: "/b/c/product_name/1", + pathTemplate: `/{category:a|b/c}/{product}/{id:[0-9]+}`, + shouldMatch: true, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + testRegexp(t, test) + } +} + +func TestPathPrefix(t *testing.T) { + tests := []routeTest{ + { + title: "PathPrefix route, match", + route: new(Route).PathPrefix("/111"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{}, + host: "", + path: "/111", + shouldMatch: true, + }, + { + title: "PathPrefix route, match substring", + route: new(Route).PathPrefix("/1"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{}, + host: "", + path: "/1", + shouldMatch: true, + }, + { + title: "PathPrefix route, URL prefix in request does not match", + route: new(Route).PathPrefix("/111"), + request: newRequest("GET", "http://localhost/1/2/3"), + vars: map[string]string{}, + host: "", + path: "/111", + shouldMatch: false, + }, + { + title: "PathPrefix route with pattern, match", + route: new(Route).PathPrefix("/111/{v1:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v1": "222"}, + host: "", + path: "/111/222", + pathTemplate: `/111/{v1:[0-9]{3}}`, + shouldMatch: true, + }, + { + title: "PathPrefix route with pattern, URL prefix in request does not match", + route: new(Route).PathPrefix("/111/{v1:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/aaa/333"), + vars: map[string]string{"v1": "222"}, + host: "", + path: "/111/222", + pathTemplate: `/111/{v1:[0-9]{3}}`, + shouldMatch: false, + }, + { + title: "PathPrefix route with multiple patterns, match", + route: new(Route).PathPrefix("/{v1:[0-9]{3}}/{v2:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v1": "111", "v2": "222"}, + host: "", + path: "/111/222", + pathTemplate: `/{v1:[0-9]{3}}/{v2:[0-9]{3}}`, + shouldMatch: true, + }, + { + title: "PathPrefix route with multiple patterns, URL prefix in request does not match", + route: new(Route).PathPrefix("/{v1:[0-9]{3}}/{v2:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/aaa/333"), + vars: map[string]string{"v1": "111", "v2": "222"}, + host: "", + path: "/111/222", + pathTemplate: `/{v1:[0-9]{3}}/{v2:[0-9]{3}}`, + shouldMatch: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + } +} + +func TestSchemeHostPath(t *testing.T) { + tests := []routeTest{ + { + title: "Host and Path route, match", + route: new(Route).Host("aaa.bbb.ccc").Path("/111/222/333"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/222/333`, + hostTemplate: `aaa.bbb.ccc`, + shouldMatch: true, + }, + { + title: "Scheme, Host, and Path route, match", + route: new(Route).Schemes("https").Host("aaa.bbb.ccc").Path("/111/222/333"), + request: newRequest("GET", "https://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{}, + scheme: "https", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/222/333`, + hostTemplate: `aaa.bbb.ccc`, + shouldMatch: true, + }, + { + title: "Host and Path route, wrong host in request URL", + route: new(Route).Host("aaa.bbb.ccc").Path("/111/222/333"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/222/333`, + hostTemplate: `aaa.bbb.ccc`, + shouldMatch: false, + }, + { + title: "Host and Path route with pattern, match", + route: new(Route).Host("aaa.{v1:[a-z]{3}}.ccc").Path("/111/{v2:[0-9]{3}}/333"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb", "v2": "222"}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/{v2:[0-9]{3}}/333`, + hostTemplate: `aaa.{v1:[a-z]{3}}.ccc`, + shouldMatch: true, + }, + { + title: "Scheme, Host, and Path route with host and path patterns, match", + route: new(Route).Schemes("ftp", "ssss").Host("aaa.{v1:[a-z]{3}}.ccc").Path("/111/{v2:[0-9]{3}}/333"), + request: newRequest("GET", "ssss://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb", "v2": "222"}, + scheme: "ftp", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/{v2:[0-9]{3}}/333`, + hostTemplate: `aaa.{v1:[a-z]{3}}.ccc`, + shouldMatch: true, + }, + { + title: "Host and Path route with pattern, URL in request does not match", + route: new(Route).Host("aaa.{v1:[a-z]{3}}.ccc").Path("/111/{v2:[0-9]{3}}/333"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb", "v2": "222"}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/111/{v2:[0-9]{3}}/333`, + hostTemplate: `aaa.{v1:[a-z]{3}}.ccc`, + shouldMatch: false, + }, + { + title: "Host and Path route with multiple patterns, match", + route: new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}").Path("/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc", "v4": "111", "v5": "222", "v6": "333"}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}`, + hostTemplate: `{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}`, + shouldMatch: true, + }, + { + title: "Host and Path route with multiple patterns, URL in request does not match", + route: new(Route).Host("{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}").Path("/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}"), + request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), + vars: map[string]string{"v1": "aaa", "v2": "bbb", "v3": "ccc", "v4": "111", "v5": "222", "v6": "333"}, + scheme: "http", + host: "aaa.bbb.ccc", + path: "/111/222/333", + pathTemplate: `/{v4:[0-9]{3}}/{v5:[0-9]{3}}/{v6:[0-9]{3}}`, + hostTemplate: `{v1:[a-z]{3}}.{v2:[a-z]{3}}.{v3:[a-z]{3}}`, + shouldMatch: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + } +} + +func TestHeaders(t *testing.T) { + // newRequestHeaders creates a new request with a method, url, and headers + newRequestHeaders := func(method, url string, headers map[string]string) *http.Request { + req, err := http.NewRequest(method, url, nil) + if err != nil { + panic(err) + } + for k, v := range headers { + req.Header.Add(k, v) + } + return req + } + + tests := []routeTest{ + { + title: "Headers route, match", + route: new(Route).Headers("foo", "bar", "baz", "ding"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar", "baz": "ding"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Headers route, bad header values", + route: new(Route).Headers("foo", "bar", "baz", "ding"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar", "baz": "dong"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Headers route, regex header values to match", + route: new(Route).Headers("foo", "ba[zr]"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Headers route, regex header values to match", + route: new(Route).HeadersRegexp("foo", "ba[zr]"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "baz"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestMethods(t *testing.T) { + tests := []routeTest{ + { + title: "Methods route, match GET", + route: new(Route).Methods("GET", "POST"), + request: newRequest("GET", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + methods: []string{"GET", "POST"}, + shouldMatch: true, + }, + { + title: "Methods route, match POST", + route: new(Route).Methods("GET", "POST"), + request: newRequest("POST", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + methods: []string{"GET", "POST"}, + shouldMatch: true, + }, + { + title: "Methods route, bad method", + route: new(Route).Methods("GET", "POST"), + request: newRequest("PUT", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + methods: []string{"GET", "POST"}, + shouldMatch: false, + }, + { + title: "Route without methods", + route: new(Route), + request: newRequest("PUT", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + methods: []string{}, + shouldMatch: true, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testMethods(t, test) + } +} + +func TestQueries(t *testing.T) { + tests := []routeTest{ + { + title: "Queries route, match", + route: new(Route).Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://localhost?foo=bar&baz=ding"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route, match with a query string", + route: new(Route).Host("www.example.com").Path("/api").Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://www.example.com/api?foo=bar&baz=ding"), + vars: map[string]string{}, + host: "", + path: "", + pathTemplate: `/api`, + hostTemplate: `www.example.com`, + shouldMatch: true, + }, + { + title: "Queries route, match with a query string out of order", + route: new(Route).Host("www.example.com").Path("/api").Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://www.example.com/api?baz=ding&foo=bar"), + vars: map[string]string{}, + host: "", + path: "", + pathTemplate: `/api`, + hostTemplate: `www.example.com`, + shouldMatch: true, + }, + { + title: "Queries route, bad query", + route: new(Route).Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://localhost?foo=bar&baz=dong"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with pattern, match", + route: new(Route).Queries("foo", "{v1}"), + request: newRequest("GET", "http://localhost?foo=bar"), + vars: map[string]string{"v1": "bar"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with multiple patterns, match", + route: new(Route).Queries("foo", "{v1}", "baz", "{v2}"), + request: newRequest("GET", "http://localhost?foo=bar&baz=ding"), + vars: map[string]string{"v1": "bar", "v2": "ding"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern, match", + route: new(Route).Queries("foo", "{v1:[0-9]+}"), + request: newRequest("GET", "http://localhost?foo=10"), + vars: map[string]string{"v1": "10"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern, regexp does not match", + route: new(Route).Queries("foo", "{v1:[0-9]+}"), + request: newRequest("GET", "http://localhost?foo=a"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with regexp pattern with quantifier, match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=1"), + vars: map[string]string{"v1": "1"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, additional variable in query string, match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?bar=2&foo=1"), + vars: map[string]string{"v1": "1"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, regexp does not match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=12"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with regexp pattern with quantifier, additional capturing group", + route: new(Route).Queries("foo", "{v1:[0-9]{1}(?:a|b)}"), + request: newRequest("GET", "http://localhost?foo=1a"), + vars: map[string]string{"v1": "1a"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, additional variable in query string, regexp does not match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=12"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with hyphenated name, match", + route: new(Route).Queries("foo", "{v-1}"), + request: newRequest("GET", "http://localhost?foo=bar"), + vars: map[string]string{"v-1": "bar"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with multiple hyphenated names, match", + route: new(Route).Queries("foo", "{v-1}", "baz", "{v-2}"), + request: newRequest("GET", "http://localhost?foo=bar&baz=ding"), + vars: map[string]string{"v-1": "bar", "v-2": "ding"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with hyphenate name and pattern, match", + route: new(Route).Queries("foo", "{v-1:[0-9]+}"), + request: newRequest("GET", "http://localhost?foo=10"), + vars: map[string]string{"v-1": "10"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with hyphenated name and pattern with quantifier, additional capturing group", + route: new(Route).Queries("foo", "{v-1:[0-9]{1}(?:a|b)}"), + request: newRequest("GET", "http://localhost?foo=1a"), + vars: map[string]string{"v-1": "1a"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with empty value, should match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost?foo=bar"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with empty value and no parameter in request, should not match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with empty value and empty parameter in request, should match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost?foo="), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with overlapping value, should not match", + route: new(Route).Queries("foo", "bar"), + request: newRequest("GET", "http://localhost?foo=barfoo"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with no parameter in request, should not match", + route: new(Route).Queries("foo", "{bar}"), + request: newRequest("GET", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with empty parameter in request, should match", + route: new(Route).Queries("foo", "{bar}"), + request: newRequest("GET", "http://localhost?foo="), + vars: map[string]string{"foo": ""}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route, bad submatch", + route: new(Route).Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://localhost?fffoo=bar&baz=dingggg"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + } +} + +func TestSchemes(t *testing.T) { + tests := []routeTest{ + // Schemes + { + title: "Schemes route, default scheme, match http, build http", + route: new(Route).Host("localhost"), + request: newRequest("GET", "http://localhost"), + scheme: "http", + host: "localhost", + shouldMatch: true, + }, + { + title: "Schemes route, match https, build https", + route: new(Route).Schemes("https", "ftp").Host("localhost"), + request: newRequest("GET", "https://localhost"), + scheme: "https", + host: "localhost", + shouldMatch: true, + }, + { + title: "Schemes route, match ftp, build https", + route: new(Route).Schemes("https", "ftp").Host("localhost"), + request: newRequest("GET", "ftp://localhost"), + scheme: "https", + host: "localhost", + shouldMatch: true, + }, + { + title: "Schemes route, match ftp, build ftp", + route: new(Route).Schemes("ftp", "https").Host("localhost"), + request: newRequest("GET", "ftp://localhost"), + scheme: "ftp", + host: "localhost", + shouldMatch: true, + }, + { + title: "Schemes route, bad scheme", + route: new(Route).Schemes("https", "ftp").Host("localhost"), + request: newRequest("GET", "http://localhost"), + scheme: "https", + host: "localhost", + shouldMatch: false, + }, + } + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestMatcherFunc(t *testing.T) { + m := func(r *http.Request, m *RouteMatch) bool { + if r.URL.Host == "aaa.bbb.ccc" { + return true + } + return false + } + + tests := []routeTest{ + { + title: "MatchFunc route, match", + route: new(Route).MatcherFunc(m), + request: newRequest("GET", "http://aaa.bbb.ccc"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "MatchFunc route, non-match", + route: new(Route).MatcherFunc(m), + request: newRequest("GET", "http://aaa.222.ccc"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestBuildVarsFunc(t *testing.T) { + tests := []routeTest{ + { + title: "BuildVarsFunc set on route", + route: new(Route).Path(`/111/{v1:\d}{v2:.*}`).BuildVarsFunc(func(vars map[string]string) map[string]string { + vars["v1"] = "3" + vars["v2"] = "a" + return vars + }), + request: newRequest("GET", "http://localhost/111/2"), + path: "/111/3a", + pathTemplate: `/111/{v1:\d}{v2:.*}`, + shouldMatch: true, + }, + { + title: "BuildVarsFunc set on route and parent route", + route: new(Route).PathPrefix(`/{v1:\d}`).BuildVarsFunc(func(vars map[string]string) map[string]string { + vars["v1"] = "2" + return vars + }).Subrouter().Path(`/{v2:\w}`).BuildVarsFunc(func(vars map[string]string) map[string]string { + vars["v2"] = "b" + return vars + }), + request: newRequest("GET", "http://localhost/1/a"), + path: "/2/b", + pathTemplate: `/{v1:\d}/{v2:\w}`, + shouldMatch: true, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestSubRouter(t *testing.T) { + subrouter1 := new(Route).Host("{v1:[a-z]+}.google.com").Subrouter() + subrouter2 := new(Route).PathPrefix("/foo/{v1}").Subrouter() + subrouter3 := new(Route).PathPrefix("/foo").Subrouter() + subrouter4 := new(Route).PathPrefix("/foo/bar").Subrouter() + subrouter5 := new(Route).PathPrefix("/{category}").Subrouter() + + tests := []routeTest{ + { + route: subrouter1.Path("/{v2:[a-z]+}"), + request: newRequest("GET", "http://aaa.google.com/bbb"), + vars: map[string]string{"v1": "aaa", "v2": "bbb"}, + host: "aaa.google.com", + path: "/bbb", + pathTemplate: `/{v2:[a-z]+}`, + hostTemplate: `{v1:[a-z]+}.google.com`, + shouldMatch: true, + }, + { + route: subrouter1.Path("/{v2:[a-z]+}"), + request: newRequest("GET", "http://111.google.com/111"), + vars: map[string]string{"v1": "aaa", "v2": "bbb"}, + host: "aaa.google.com", + path: "/bbb", + pathTemplate: `/{v2:[a-z]+}`, + hostTemplate: `{v1:[a-z]+}.google.com`, + shouldMatch: false, + }, + { + route: subrouter2.Path("/baz/{v2}"), + request: newRequest("GET", "http://localhost/foo/bar/baz/ding"), + vars: map[string]string{"v1": "bar", "v2": "ding"}, + host: "", + path: "/foo/bar/baz/ding", + pathTemplate: `/foo/{v1}/baz/{v2}`, + shouldMatch: true, + }, + { + route: subrouter2.Path("/baz/{v2}"), + request: newRequest("GET", "http://localhost/foo/bar"), + vars: map[string]string{"v1": "bar", "v2": "ding"}, + host: "", + path: "/foo/bar/baz/ding", + pathTemplate: `/foo/{v1}/baz/{v2}`, + shouldMatch: false, + }, + { + route: subrouter3.Path("/"), + request: newRequest("GET", "http://localhost/foo/"), + vars: map[string]string{}, + host: "", + path: "/foo/", + pathTemplate: `/foo/`, + shouldMatch: true, + }, + { + route: subrouter3.Path(""), + request: newRequest("GET", "http://localhost/foo"), + vars: map[string]string{}, + host: "", + path: "/foo", + pathTemplate: `/foo`, + shouldMatch: true, + }, + + { + route: subrouter4.Path("/"), + request: newRequest("GET", "http://localhost/foo/bar/"), + vars: map[string]string{}, + host: "", + path: "/foo/bar/", + pathTemplate: `/foo/bar/`, + shouldMatch: true, + }, + { + route: subrouter4.Path(""), + request: newRequest("GET", "http://localhost/foo/bar"), + vars: map[string]string{}, + host: "", + path: "/foo/bar", + pathTemplate: `/foo/bar`, + shouldMatch: true, + }, + { + route: subrouter5.Path("/"), + request: newRequest("GET", "http://localhost/baz/"), + vars: map[string]string{"category": "baz"}, + host: "", + path: "/baz/", + pathTemplate: `/{category}/`, + shouldMatch: true, + }, + { + route: subrouter5.Path(""), + request: newRequest("GET", "http://localhost/baz"), + vars: map[string]string{"category": "baz"}, + host: "", + path: "/baz", + pathTemplate: `/{category}`, + shouldMatch: true, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + } +} + +func TestNamedRoutes(t *testing.T) { + r1 := NewRouter() + r1.NewRoute().Name("a") + r1.NewRoute().Name("b") + r1.NewRoute().Name("c") + + r2 := r1.NewRoute().Subrouter() + r2.NewRoute().Name("d") + r2.NewRoute().Name("e") + r2.NewRoute().Name("f") + + r3 := r2.NewRoute().Subrouter() + r3.NewRoute().Name("g") + r3.NewRoute().Name("h") + r3.NewRoute().Name("i") + + if r1.namedRoutes == nil || len(r1.namedRoutes) != 9 { + t.Errorf("Expected 9 named routes, got %v", r1.namedRoutes) + } else if r1.Get("i") == nil { + t.Errorf("Subroute name not registered") + } +} + +func TestStrictSlash(t *testing.T) { + r := NewRouter() + r.StrictSlash(true) + + tests := []routeTest{ + { + title: "Redirect path without slash", + route: r.NewRoute().Path("/111/"), + request: newRequest("GET", "http://localhost/111"), + vars: map[string]string{}, + host: "", + path: "/111/", + shouldMatch: true, + shouldRedirect: true, + }, + { + title: "Do not redirect path with slash", + route: r.NewRoute().Path("/111/"), + request: newRequest("GET", "http://localhost/111/"), + vars: map[string]string{}, + host: "", + path: "/111/", + shouldMatch: true, + shouldRedirect: false, + }, + { + title: "Redirect path with slash", + route: r.NewRoute().Path("/111"), + request: newRequest("GET", "http://localhost/111/"), + vars: map[string]string{}, + host: "", + path: "/111", + shouldMatch: true, + shouldRedirect: true, + }, + { + title: "Do not redirect path without slash", + route: r.NewRoute().Path("/111"), + request: newRequest("GET", "http://localhost/111"), + vars: map[string]string{}, + host: "", + path: "/111", + shouldMatch: true, + shouldRedirect: false, + }, + { + title: "Propagate StrictSlash to subrouters", + route: r.NewRoute().PathPrefix("/static/").Subrouter().Path("/images/"), + request: newRequest("GET", "http://localhost/static/images"), + vars: map[string]string{}, + host: "", + path: "/static/images/", + shouldMatch: true, + shouldRedirect: true, + }, + { + title: "Ignore StrictSlash for path prefix", + route: r.NewRoute().PathPrefix("/static/"), + request: newRequest("GET", "http://localhost/static/logo.png"), + vars: map[string]string{}, + host: "", + path: "/static/", + shouldMatch: true, + shouldRedirect: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + testUseEscapedRoute(t, test) + } +} + +func TestUseEncodedPath(t *testing.T) { + r := NewRouter() + r.UseEncodedPath() + + tests := []routeTest{ + { + title: "Router with useEncodedPath, URL with encoded slash does match", + route: r.NewRoute().Path("/v1/{v1}/v2"), + request: newRequest("GET", "http://localhost/v1/1%2F2/v2"), + vars: map[string]string{"v1": "1%2F2"}, + host: "", + path: "/v1/1%2F2/v2", + pathTemplate: `/v1/{v1}/v2`, + shouldMatch: true, + }, + { + title: "Router with useEncodedPath, URL with encoded slash doesn't match", + route: r.NewRoute().Path("/v1/1/2/v2"), + request: newRequest("GET", "http://localhost/v1/1%2F2/v2"), + vars: map[string]string{"v1": "1%2F2"}, + host: "", + path: "/v1/1%2F2/v2", + pathTemplate: `/v1/1/2/v2`, + shouldMatch: false, + }, + } + + for _, test := range tests { + testRoute(t, test) + testTemplate(t, test) + } +} + +func TestWalkSingleDepth(t *testing.T) { + r0 := NewRouter() + r1 := NewRouter() + r2 := NewRouter() + + r0.Path("/g") + r0.Path("/o") + r0.Path("/d").Handler(r1) + r0.Path("/r").Handler(r2) + r0.Path("/a") + + r1.Path("/z") + r1.Path("/i") + r1.Path("/l") + r1.Path("/l") + + r2.Path("/i") + r2.Path("/l") + r2.Path("/l") + + paths := []string{"g", "o", "r", "i", "l", "l", "a"} + depths := []int{0, 0, 0, 1, 1, 1, 0} + i := 0 + err := r0.Walk(func(route *Route, router *Router, ancestors []*Route) error { + matcher := route.matchers[0].(*routeRegexp) + if matcher.template == "/d" { + return SkipRouter + } + if len(ancestors) != depths[i] { + t.Errorf(`Expected depth of %d at i = %d; got "%d"`, depths[i], i, len(ancestors)) + } + if matcher.template != "/"+paths[i] { + t.Errorf(`Expected "/%s" at i = %d; got "%s"`, paths[i], i, matcher.template) + } + i++ + return nil + }) + if err != nil { + panic(err) + } + if i != len(paths) { + t.Errorf("Expected %d routes, found %d", len(paths), i) + } +} + +func TestWalkNested(t *testing.T) { + router := NewRouter() + + g := router.Path("/g").Subrouter() + o := g.PathPrefix("/o").Subrouter() + r := o.PathPrefix("/r").Subrouter() + i := r.PathPrefix("/i").Subrouter() + l1 := i.PathPrefix("/l").Subrouter() + l2 := l1.PathPrefix("/l").Subrouter() + l2.Path("/a") + + paths := []string{"/g", "/g/o", "/g/o/r", "/g/o/r/i", "/g/o/r/i/l", "/g/o/r/i/l/l", "/g/o/r/i/l/l/a"} + idx := 0 + err := router.Walk(func(route *Route, router *Router, ancestors []*Route) error { + path := paths[idx] + tpl := route.regexp.path.template + if tpl != path { + t.Errorf(`Expected %s got %s`, path, tpl) + } + idx++ + return nil + }) + if err != nil { + panic(err) + } + if idx != len(paths) { + t.Errorf("Expected %d routes, found %d", len(paths), idx) + } +} + +func TestWalkErrorRoute(t *testing.T) { + router := NewRouter() + router.Path("/g") + expectedError := errors.New("error") + err := router.Walk(func(route *Route, router *Router, ancestors []*Route) error { + return expectedError + }) + if err != expectedError { + t.Errorf("Expected %v routes, found %v", expectedError, err) + } +} + +func TestWalkErrorMatcher(t *testing.T) { + router := NewRouter() + expectedError := router.Path("/g").Subrouter().Path("").GetError() + err := router.Walk(func(route *Route, router *Router, ancestors []*Route) error { + return route.GetError() + }) + if err != expectedError { + t.Errorf("Expected %v routes, found %v", expectedError, err) + } +} + +func TestWalkErrorHandler(t *testing.T) { + handler := NewRouter() + expectedError := handler.Path("/path").Subrouter().Path("").GetError() + router := NewRouter() + router.Path("/g").Handler(handler) + err := router.Walk(func(route *Route, router *Router, ancestors []*Route) error { + return route.GetError() + }) + if err != expectedError { + t.Errorf("Expected %v routes, found %v", expectedError, err) + } +} + +func TestSubrouterErrorHandling(t *testing.T) { + superRouterCalled := false + subRouterCalled := false + + router := NewRouter() + router.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + superRouterCalled = true + }) + subRouter := router.PathPrefix("/bign8").Subrouter() + subRouter.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + subRouterCalled = true + }) + + req, _ := http.NewRequest("GET", "http://localhost/bign8/was/here", nil) + router.ServeHTTP(NewRecorder(), req) + + if superRouterCalled { + t.Error("Super router 404 handler called when sub-router 404 handler is available.") + } + if !subRouterCalled { + t.Error("Sub-router 404 handler was not called.") + } +} + +// See: https://github.com/gorilla/mux/issues/200 +func TestPanicOnCapturingGroups(t *testing.T) { + defer func() { + if recover() == nil { + t.Errorf("(Test that capturing groups now fail fast) Expected panic, however test completed successfully.\n") + } + }() + NewRouter().NewRoute().Path("/{type:(promo|special)}/{promoId}.json") +} + +// ---------------------------------------------------------------------------- +// Helpers +// ---------------------------------------------------------------------------- + +func getRouteTemplate(route *Route) string { + host, err := route.GetHostTemplate() + if err != nil { + host = "none" + } + path, err := route.GetPathTemplate() + if err != nil { + path = "none" + } + return fmt.Sprintf("Host: %v, Path: %v", host, path) +} + +func testRoute(t *testing.T, test routeTest) { + request := test.request + route := test.route + vars := test.vars + shouldMatch := test.shouldMatch + shouldRedirect := test.shouldRedirect + uri := url.URL{ + Scheme: test.scheme, + Host: test.host, + Path: test.path, + } + if uri.Scheme == "" { + uri.Scheme = "http" + } + + var match RouteMatch + ok := route.Match(request, &match) + if ok != shouldMatch { + msg := "Should match" + if !shouldMatch { + msg = "Should not match" + } + t.Errorf("(%v) %v:\nRoute: %#v\nRequest: %#v\nVars: %v\n", test.title, msg, route, request, vars) + return + } + if shouldMatch { + if vars != nil && !stringMapEqual(vars, match.Vars) { + t.Errorf("(%v) Vars not equal: expected %v, got %v", test.title, vars, match.Vars) + return + } + if test.scheme != "" { + u, err := route.URL(mapToPairs(match.Vars)...) + if err != nil { + t.Fatalf("(%v) URL error: %v -- %v", test.title, err, getRouteTemplate(route)) + } + if uri.Scheme != u.Scheme { + t.Errorf("(%v) URLScheme not equal: expected %v, got %v", test.title, uri.Scheme, u.Scheme) + return + } + } + if test.host != "" { + u, err := test.route.URLHost(mapToPairs(match.Vars)...) + if err != nil { + t.Fatalf("(%v) URLHost error: %v -- %v", test.title, err, getRouteTemplate(route)) + } + if uri.Scheme != u.Scheme { + t.Errorf("(%v) URLHost scheme not equal: expected %v, got %v -- %v", test.title, uri.Scheme, u.Scheme, getRouteTemplate(route)) + return + } + if uri.Host != u.Host { + t.Errorf("(%v) URLHost host not equal: expected %v, got %v -- %v", test.title, uri.Host, u.Host, getRouteTemplate(route)) + return + } + } + if test.path != "" { + u, err := route.URLPath(mapToPairs(match.Vars)...) + if err != nil { + t.Fatalf("(%v) URLPath error: %v -- %v", test.title, err, getRouteTemplate(route)) + } + if uri.Path != u.Path { + t.Errorf("(%v) URLPath not equal: expected %v, got %v -- %v", test.title, uri.Path, u.Path, getRouteTemplate(route)) + return + } + } + if test.host != "" && test.path != "" { + u, err := route.URL(mapToPairs(match.Vars)...) + if err != nil { + t.Fatalf("(%v) URL error: %v -- %v", test.title, err, getRouteTemplate(route)) + } + if expected, got := uri.String(), u.String(); expected != got { + t.Errorf("(%v) URL not equal: expected %v, got %v -- %v", test.title, expected, got, getRouteTemplate(route)) + return + } + } + if shouldRedirect && match.Handler == nil { + t.Errorf("(%v) Did not redirect", test.title) + return + } + if !shouldRedirect && match.Handler != nil { + t.Errorf("(%v) Unexpected redirect", test.title) + return + } + } +} + +func testUseEscapedRoute(t *testing.T, test routeTest) { + test.route.useEncodedPath = true + testRoute(t, test) +} + +func testTemplate(t *testing.T, test routeTest) { + route := test.route + pathTemplate := test.pathTemplate + if len(pathTemplate) == 0 { + pathTemplate = test.path + } + hostTemplate := test.hostTemplate + if len(hostTemplate) == 0 { + hostTemplate = test.host + } + + routePathTemplate, pathErr := route.GetPathTemplate() + if pathErr == nil && routePathTemplate != pathTemplate { + t.Errorf("(%v) GetPathTemplate not equal: expected %v, got %v", test.title, pathTemplate, routePathTemplate) + } + + routeHostTemplate, hostErr := route.GetHostTemplate() + if hostErr == nil && routeHostTemplate != hostTemplate { + t.Errorf("(%v) GetHostTemplate not equal: expected %v, got %v", test.title, hostTemplate, routeHostTemplate) + } +} + +func testMethods(t *testing.T, test routeTest) { + route := test.route + methods, _ := route.GetMethods() + if strings.Join(methods, ",") != strings.Join(test.methods, ",") { + t.Errorf("(%v) GetMethods not equal: expected %v, got %v", test.title, test.methods, methods) + } +} + +func testRegexp(t *testing.T, test routeTest) { + route := test.route + routePathRegexp, regexpErr := route.GetPathRegexp() + if test.pathRegexp != "" && regexpErr == nil && routePathRegexp != test.pathRegexp { + t.Errorf("(%v) GetPathRegexp not equal: expected %v, got %v", test.title, test.pathRegexp, routePathRegexp) + } +} + +type TestA301ResponseWriter struct { + hh http.Header + status int +} + +func (ho TestA301ResponseWriter) Header() http.Header { + return http.Header(ho.hh) +} + +func (ho TestA301ResponseWriter) Write(b []byte) (int, error) { + return 0, nil +} + +func (ho TestA301ResponseWriter) WriteHeader(code int) { + ho.status = code +} + +func Test301Redirect(t *testing.T) { + m := make(http.Header) + + func1 := func(w http.ResponseWriter, r *http.Request) {} + func2 := func(w http.ResponseWriter, r *http.Request) {} + + r := NewRouter() + r.HandleFunc("/api/", func2).Name("func2") + r.HandleFunc("/", func1).Name("func1") + + req, _ := http.NewRequest("GET", "http://localhost//api/?abc=def", nil) + + res := TestA301ResponseWriter{ + hh: m, + status: 0, + } + r.ServeHTTP(&res, req) + + if "http://localhost/api/?abc=def" != res.hh["Location"][0] { + t.Errorf("Should have complete URL with query string") + } +} + +func TestSkipClean(t *testing.T) { + func1 := func(w http.ResponseWriter, r *http.Request) {} + func2 := func(w http.ResponseWriter, r *http.Request) {} + + r := NewRouter() + r.SkipClean(true) + r.HandleFunc("/api/", func2).Name("func2") + r.HandleFunc("/", func1).Name("func1") + + req, _ := http.NewRequest("GET", "http://localhost//api/?abc=def", nil) + res := NewRecorder() + r.ServeHTTP(res, req) + + if len(res.HeaderMap["Location"]) != 0 { + t.Errorf("Shouldn't redirect since skip clean is disabled") + } +} + +// https://plus.google.com/101022900381697718949/posts/eWy6DjFJ6uW +func TestSubrouterHeader(t *testing.T) { + expected := "func1 response" + func1 := func(w http.ResponseWriter, r *http.Request) { + fmt.Fprint(w, expected) + } + func2 := func(http.ResponseWriter, *http.Request) {} + + r := NewRouter() + s := r.Headers("SomeSpecialHeader", "").Subrouter() + s.HandleFunc("/", func1).Name("func1") + r.HandleFunc("/", func2).Name("func2") + + req, _ := http.NewRequest("GET", "http://localhost/", nil) + req.Header.Add("SomeSpecialHeader", "foo") + match := new(RouteMatch) + matched := r.Match(req, match) + if !matched { + t.Errorf("Should match request") + } + if match.Route.GetName() != "func1" { + t.Errorf("Expecting func1 handler, got %s", match.Route.GetName()) + } + resp := NewRecorder() + match.Handler.ServeHTTP(resp, req) + if resp.Body.String() != expected { + t.Errorf("Expecting %q", expected) + } +} + +// mapToPairs converts a string map to a slice of string pairs +func mapToPairs(m map[string]string) []string { + var i int + p := make([]string, len(m)*2) + for k, v := range m { + p[i] = k + p[i+1] = v + i += 2 + } + return p +} + +// stringMapEqual checks the equality of two string maps +func stringMapEqual(m1, m2 map[string]string) bool { + nil1 := m1 == nil + nil2 := m2 == nil + if nil1 != nil2 || len(m1) != len(m2) { + return false + } + for k, v := range m1 { + if v != m2[k] { + return false + } + } + return true +} + +// newRequest is a helper function to create a new request with a method and url. +// The request returned is a 'server' request as opposed to a 'client' one through +// simulated write onto the wire and read off of the wire. +// The differences between requests are detailed in the net/http package. +func newRequest(method, url string) *http.Request { + req, err := http.NewRequest(method, url, nil) + if err != nil { + panic(err) + } + // extract the escaped original host+path from url + // http://localhost/path/here?v=1#frag -> //localhost/path/here + opaque := "" + if i := len(req.URL.Scheme); i > 0 { + opaque = url[i+1:] + } + + if i := strings.LastIndex(opaque, "?"); i > -1 { + opaque = opaque[:i] + } + if i := strings.LastIndex(opaque, "#"); i > -1 { + opaque = opaque[:i] + } + + // Escaped host+path workaround as detailed in https://golang.org/pkg/net/url/#URL + // for < 1.5 client side workaround + req.URL.Opaque = opaque + + // Simulate writing to wire + var buff bytes.Buffer + req.Write(&buff) + ioreader := bufio.NewReader(&buff) + + // Parse request off of 'wire' + req, err = http.ReadRequest(ioreader) + if err != nil { + panic(err) + } + return req +} diff --git a/vendor/github.com/gorilla/mux/old_test.go b/vendor/github.com/gorilla/mux/old_test.go new file mode 100644 index 00000000..9bdc5e5d --- /dev/null +++ b/vendor/github.com/gorilla/mux/old_test.go @@ -0,0 +1,710 @@ +// Old tests ported to Go1. This is a mess. Want to drop it one day. + +// Copyright 2011 Gorilla 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 mux + +import ( + "bytes" + "net/http" + "testing" +) + +// ---------------------------------------------------------------------------- +// ResponseRecorder +// ---------------------------------------------------------------------------- +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// ResponseRecorder is an implementation of http.ResponseWriter that +// records its mutations for later inspection in tests. +type ResponseRecorder struct { + Code int // the HTTP response code from WriteHeader + HeaderMap http.Header // the HTTP response headers + Body *bytes.Buffer // if non-nil, the bytes.Buffer to append written data to + Flushed bool +} + +// NewRecorder returns an initialized ResponseRecorder. +func NewRecorder() *ResponseRecorder { + return &ResponseRecorder{ + HeaderMap: make(http.Header), + Body: new(bytes.Buffer), + } +} + +// Header returns the response headers. +func (rw *ResponseRecorder) Header() http.Header { + return rw.HeaderMap +} + +// Write always succeeds and writes to rw.Body, if not nil. +func (rw *ResponseRecorder) Write(buf []byte) (int, error) { + if rw.Body != nil { + rw.Body.Write(buf) + } + if rw.Code == 0 { + rw.Code = http.StatusOK + } + return len(buf), nil +} + +// WriteHeader sets rw.Code. +func (rw *ResponseRecorder) WriteHeader(code int) { + rw.Code = code +} + +// Flush sets rw.Flushed to true. +func (rw *ResponseRecorder) Flush() { + rw.Flushed = true +} + +// ---------------------------------------------------------------------------- + +func TestRouteMatchers(t *testing.T) { + var scheme, host, path, query, method string + var headers map[string]string + var resultVars map[bool]map[string]string + + router := NewRouter() + router.NewRoute().Host("{var1}.google.com"). + Path("/{var2:[a-z]+}/{var3:[0-9]+}"). + Queries("foo", "bar"). + Methods("GET"). + Schemes("https"). + Headers("x-requested-with", "XMLHttpRequest") + router.NewRoute().Host("www.{var4}.com"). + PathPrefix("/foo/{var5:[a-z]+}/{var6:[0-9]+}"). + Queries("baz", "ding"). + Methods("POST"). + Schemes("http"). + Headers("Content-Type", "application/json") + + reset := func() { + // Everything match. + scheme = "https" + host = "www.google.com" + path = "/product/42" + query = "?foo=bar" + method = "GET" + headers = map[string]string{"X-Requested-With": "XMLHttpRequest"} + resultVars = map[bool]map[string]string{ + true: {"var1": "www", "var2": "product", "var3": "42"}, + false: {}, + } + } + + reset2 := func() { + // Everything match. + scheme = "http" + host = "www.google.com" + path = "/foo/product/42/path/that/is/ignored" + query = "?baz=ding" + method = "POST" + headers = map[string]string{"Content-Type": "application/json"} + resultVars = map[bool]map[string]string{ + true: {"var4": "google", "var5": "product", "var6": "42"}, + false: {}, + } + } + + match := func(shouldMatch bool) { + url := scheme + "://" + host + path + query + request, _ := http.NewRequest(method, url, nil) + for key, value := range headers { + request.Header.Add(key, value) + } + + var routeMatch RouteMatch + matched := router.Match(request, &routeMatch) + if matched != shouldMatch { + // Need better messages. :) + if matched { + t.Errorf("Should match.") + } else { + t.Errorf("Should not match.") + } + } + + if matched { + currentRoute := routeMatch.Route + if currentRoute == nil { + t.Errorf("Expected a current route.") + } + vars := routeMatch.Vars + expectedVars := resultVars[shouldMatch] + if len(vars) != len(expectedVars) { + t.Errorf("Expected vars: %v Got: %v.", expectedVars, vars) + } + for name, value := range vars { + if expectedVars[name] != value { + t.Errorf("Expected vars: %v Got: %v.", expectedVars, vars) + } + } + } + } + + // 1st route -------------------------------------------------------------- + + // Everything match. + reset() + match(true) + + // Scheme doesn't match. + reset() + scheme = "http" + match(false) + + // Host doesn't match. + reset() + host = "www.mygoogle.com" + match(false) + + // Path doesn't match. + reset() + path = "/product/notdigits" + match(false) + + // Query doesn't match. + reset() + query = "?foo=baz" + match(false) + + // Method doesn't match. + reset() + method = "POST" + match(false) + + // Header doesn't match. + reset() + headers = map[string]string{} + match(false) + + // Everything match, again. + reset() + match(true) + + // 2nd route -------------------------------------------------------------- + + // Everything match. + reset2() + match(true) + + // Scheme doesn't match. + reset2() + scheme = "https" + match(false) + + // Host doesn't match. + reset2() + host = "sub.google.com" + match(false) + + // Path doesn't match. + reset2() + path = "/bar/product/42" + match(false) + + // Query doesn't match. + reset2() + query = "?foo=baz" + match(false) + + // Method doesn't match. + reset2() + method = "GET" + match(false) + + // Header doesn't match. + reset2() + headers = map[string]string{} + match(false) + + // Everything match, again. + reset2() + match(true) +} + +type headerMatcherTest struct { + matcher headerMatcher + headers map[string]string + result bool +} + +var headerMatcherTests = []headerMatcherTest{ + { + matcher: headerMatcher(map[string]string{"x-requested-with": "XMLHttpRequest"}), + headers: map[string]string{"X-Requested-With": "XMLHttpRequest"}, + result: true, + }, + { + matcher: headerMatcher(map[string]string{"x-requested-with": ""}), + headers: map[string]string{"X-Requested-With": "anything"}, + result: true, + }, + { + matcher: headerMatcher(map[string]string{"x-requested-with": "XMLHttpRequest"}), + headers: map[string]string{}, + result: false, + }, +} + +type hostMatcherTest struct { + matcher *Route + url string + vars map[string]string + result bool +} + +var hostMatcherTests = []hostMatcherTest{ + { + matcher: NewRouter().NewRoute().Host("{foo:[a-z][a-z][a-z]}.{bar:[a-z][a-z][a-z]}.{baz:[a-z][a-z][a-z]}"), + url: "http://abc.def.ghi/", + vars: map[string]string{"foo": "abc", "bar": "def", "baz": "ghi"}, + result: true, + }, + { + matcher: NewRouter().NewRoute().Host("{foo:[a-z][a-z][a-z]}.{bar:[a-z][a-z][a-z]}.{baz:[a-z][a-z][a-z]}"), + url: "http://a.b.c/", + vars: map[string]string{"foo": "abc", "bar": "def", "baz": "ghi"}, + result: false, + }, +} + +type methodMatcherTest struct { + matcher methodMatcher + method string + result bool +} + +var methodMatcherTests = []methodMatcherTest{ + { + matcher: methodMatcher([]string{"GET", "POST", "PUT"}), + method: "GET", + result: true, + }, + { + matcher: methodMatcher([]string{"GET", "POST", "PUT"}), + method: "POST", + result: true, + }, + { + matcher: methodMatcher([]string{"GET", "POST", "PUT"}), + method: "PUT", + result: true, + }, + { + matcher: methodMatcher([]string{"GET", "POST", "PUT"}), + method: "DELETE", + result: false, + }, +} + +type pathMatcherTest struct { + matcher *Route + url string + vars map[string]string + result bool +} + +var pathMatcherTests = []pathMatcherTest{ + { + matcher: NewRouter().NewRoute().Path("/{foo:[0-9][0-9][0-9]}/{bar:[0-9][0-9][0-9]}/{baz:[0-9][0-9][0-9]}"), + url: "http://localhost:8080/123/456/789", + vars: map[string]string{"foo": "123", "bar": "456", "baz": "789"}, + result: true, + }, + { + matcher: NewRouter().NewRoute().Path("/{foo:[0-9][0-9][0-9]}/{bar:[0-9][0-9][0-9]}/{baz:[0-9][0-9][0-9]}"), + url: "http://localhost:8080/1/2/3", + vars: map[string]string{"foo": "123", "bar": "456", "baz": "789"}, + result: false, + }, +} + +type schemeMatcherTest struct { + matcher schemeMatcher + url string + result bool +} + +var schemeMatcherTests = []schemeMatcherTest{ + { + matcher: schemeMatcher([]string{"http", "https"}), + url: "http://localhost:8080/", + result: true, + }, + { + matcher: schemeMatcher([]string{"http", "https"}), + url: "https://localhost:8080/", + result: true, + }, + { + matcher: schemeMatcher([]string{"https"}), + url: "http://localhost:8080/", + result: false, + }, + { + matcher: schemeMatcher([]string{"http"}), + url: "https://localhost:8080/", + result: false, + }, +} + +type urlBuildingTest struct { + route *Route + vars []string + url string +} + +var urlBuildingTests = []urlBuildingTest{ + { + route: new(Route).Host("foo.domain.com"), + vars: []string{}, + url: "http://foo.domain.com", + }, + { + route: new(Route).Host("{subdomain}.domain.com"), + vars: []string{"subdomain", "bar"}, + url: "http://bar.domain.com", + }, + { + route: new(Route).Host("foo.domain.com").Path("/articles"), + vars: []string{}, + url: "http://foo.domain.com/articles", + }, + { + route: new(Route).Path("/articles"), + vars: []string{}, + url: "/articles", + }, + { + route: new(Route).Path("/articles/{category}/{id:[0-9]+}"), + vars: []string{"category", "technology", "id", "42"}, + url: "/articles/technology/42", + }, + { + route: new(Route).Host("{subdomain}.domain.com").Path("/articles/{category}/{id:[0-9]+}"), + vars: []string{"subdomain", "foo", "category", "technology", "id", "42"}, + url: "http://foo.domain.com/articles/technology/42", + }, +} + +func TestHeaderMatcher(t *testing.T) { + for _, v := range headerMatcherTests { + request, _ := http.NewRequest("GET", "http://localhost:8080/", nil) + for key, value := range v.headers { + request.Header.Add(key, value) + } + var routeMatch RouteMatch + result := v.matcher.Match(request, &routeMatch) + if result != v.result { + if v.result { + t.Errorf("%#v: should match %v.", v.matcher, request.Header) + } else { + t.Errorf("%#v: should not match %v.", v.matcher, request.Header) + } + } + } +} + +func TestHostMatcher(t *testing.T) { + for _, v := range hostMatcherTests { + request, _ := http.NewRequest("GET", v.url, nil) + var routeMatch RouteMatch + result := v.matcher.Match(request, &routeMatch) + vars := routeMatch.Vars + if result != v.result { + if v.result { + t.Errorf("%#v: should match %v.", v.matcher, v.url) + } else { + t.Errorf("%#v: should not match %v.", v.matcher, v.url) + } + } + if result { + if len(vars) != len(v.vars) { + t.Errorf("%#v: vars length should be %v, got %v.", v.matcher, len(v.vars), len(vars)) + } + for name, value := range vars { + if v.vars[name] != value { + t.Errorf("%#v: expected value %v for key %v, got %v.", v.matcher, v.vars[name], name, value) + } + } + } else { + if len(vars) != 0 { + t.Errorf("%#v: vars length should be 0, got %v.", v.matcher, len(vars)) + } + } + } +} + +func TestMethodMatcher(t *testing.T) { + for _, v := range methodMatcherTests { + request, _ := http.NewRequest(v.method, "http://localhost:8080/", nil) + var routeMatch RouteMatch + result := v.matcher.Match(request, &routeMatch) + if result != v.result { + if v.result { + t.Errorf("%#v: should match %v.", v.matcher, v.method) + } else { + t.Errorf("%#v: should not match %v.", v.matcher, v.method) + } + } + } +} + +func TestPathMatcher(t *testing.T) { + for _, v := range pathMatcherTests { + request, _ := http.NewRequest("GET", v.url, nil) + var routeMatch RouteMatch + result := v.matcher.Match(request, &routeMatch) + vars := routeMatch.Vars + if result != v.result { + if v.result { + t.Errorf("%#v: should match %v.", v.matcher, v.url) + } else { + t.Errorf("%#v: should not match %v.", v.matcher, v.url) + } + } + if result { + if len(vars) != len(v.vars) { + t.Errorf("%#v: vars length should be %v, got %v.", v.matcher, len(v.vars), len(vars)) + } + for name, value := range vars { + if v.vars[name] != value { + t.Errorf("%#v: expected value %v for key %v, got %v.", v.matcher, v.vars[name], name, value) + } + } + } else { + if len(vars) != 0 { + t.Errorf("%#v: vars length should be 0, got %v.", v.matcher, len(vars)) + } + } + } +} + +func TestSchemeMatcher(t *testing.T) { + for _, v := range schemeMatcherTests { + request, _ := http.NewRequest("GET", v.url, nil) + var routeMatch RouteMatch + result := v.matcher.Match(request, &routeMatch) + if result != v.result { + if v.result { + t.Errorf("%#v: should match %v.", v.matcher, v.url) + } else { + t.Errorf("%#v: should not match %v.", v.matcher, v.url) + } + } + } +} + +func TestUrlBuilding(t *testing.T) { + + for _, v := range urlBuildingTests { + u, _ := v.route.URL(v.vars...) + url := u.String() + if url != v.url { + t.Errorf("expected %v, got %v", v.url, url) + /* + reversePath := "" + reverseHost := "" + if v.route.pathTemplate != nil { + reversePath = v.route.pathTemplate.Reverse + } + if v.route.hostTemplate != nil { + reverseHost = v.route.hostTemplate.Reverse + } + + t.Errorf("%#v:\nexpected: %q\ngot: %q\nreverse path: %q\nreverse host: %q", v.route, v.url, url, reversePath, reverseHost) + */ + } + } + + ArticleHandler := func(w http.ResponseWriter, r *http.Request) { + } + + router := NewRouter() + router.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).Name("article") + + url, _ := router.Get("article").URL("category", "technology", "id", "42") + expected := "/articles/technology/42" + if url.String() != expected { + t.Errorf("Expected %v, got %v", expected, url.String()) + } +} + +func TestMatchedRouteName(t *testing.T) { + routeName := "stock" + router := NewRouter() + route := router.NewRoute().Path("/products/").Name(routeName) + + url := "http://www.example.com/products/" + request, _ := http.NewRequest("GET", url, nil) + var rv RouteMatch + ok := router.Match(request, &rv) + + if !ok || rv.Route != route { + t.Errorf("Expected same route, got %+v.", rv.Route) + } + + retName := rv.Route.GetName() + if retName != routeName { + t.Errorf("Expected %q, got %q.", routeName, retName) + } +} + +func TestSubRouting(t *testing.T) { + // Example from docs. + router := NewRouter() + subrouter := router.NewRoute().Host("www.example.com").Subrouter() + route := subrouter.NewRoute().Path("/products/").Name("products") + + url := "http://www.example.com/products/" + request, _ := http.NewRequest("GET", url, nil) + var rv RouteMatch + ok := router.Match(request, &rv) + + if !ok || rv.Route != route { + t.Errorf("Expected same route, got %+v.", rv.Route) + } + + u, _ := router.Get("products").URL() + builtURL := u.String() + // Yay, subroute aware of the domain when building! + if builtURL != url { + t.Errorf("Expected %q, got %q.", url, builtURL) + } +} + +func TestVariableNames(t *testing.T) { + route := new(Route).Host("{arg1}.domain.com").Path("/{arg1}/{arg2:[0-9]+}") + if route.err == nil { + t.Errorf("Expected error for duplicated variable names") + } +} + +func TestRedirectSlash(t *testing.T) { + var route *Route + var routeMatch RouteMatch + r := NewRouter() + + r.StrictSlash(false) + route = r.NewRoute() + if route.strictSlash != false { + t.Errorf("Expected false redirectSlash.") + } + + r.StrictSlash(true) + route = r.NewRoute() + if route.strictSlash != true { + t.Errorf("Expected true redirectSlash.") + } + + route = new(Route) + route.strictSlash = true + route.Path("/{arg1}/{arg2:[0-9]+}/") + request, _ := http.NewRequest("GET", "http://localhost/foo/123", nil) + routeMatch = RouteMatch{} + _ = route.Match(request, &routeMatch) + vars := routeMatch.Vars + if vars["arg1"] != "foo" { + t.Errorf("Expected foo.") + } + if vars["arg2"] != "123" { + t.Errorf("Expected 123.") + } + rsp := NewRecorder() + routeMatch.Handler.ServeHTTP(rsp, request) + if rsp.HeaderMap.Get("Location") != "http://localhost/foo/123/" { + t.Errorf("Expected redirect header.") + } + + route = new(Route) + route.strictSlash = true + route.Path("/{arg1}/{arg2:[0-9]+}") + request, _ = http.NewRequest("GET", "http://localhost/foo/123/", nil) + routeMatch = RouteMatch{} + _ = route.Match(request, &routeMatch) + vars = routeMatch.Vars + if vars["arg1"] != "foo" { + t.Errorf("Expected foo.") + } + if vars["arg2"] != "123" { + t.Errorf("Expected 123.") + } + rsp = NewRecorder() + routeMatch.Handler.ServeHTTP(rsp, request) + if rsp.HeaderMap.Get("Location") != "http://localhost/foo/123" { + t.Errorf("Expected redirect header.") + } +} + +// Test for the new regexp library, still not available in stable Go. +func TestNewRegexp(t *testing.T) { + var p *routeRegexp + var matches []string + + tests := map[string]map[string][]string{ + "/{foo:a{2}}": { + "/a": nil, + "/aa": {"aa"}, + "/aaa": nil, + "/aaaa": nil, + }, + "/{foo:a{2,}}": { + "/a": nil, + "/aa": {"aa"}, + "/aaa": {"aaa"}, + "/aaaa": {"aaaa"}, + }, + "/{foo:a{2,3}}": { + "/a": nil, + "/aa": {"aa"}, + "/aaa": {"aaa"}, + "/aaaa": nil, + }, + "/{foo:[a-z]{3}}/{bar:[a-z]{2}}": { + "/a": nil, + "/ab": nil, + "/abc": nil, + "/abcd": nil, + "/abc/ab": {"abc", "ab"}, + "/abc/abc": nil, + "/abcd/ab": nil, + }, + `/{foo:\w{3,}}/{bar:\d{2,}}`: { + "/a": nil, + "/ab": nil, + "/abc": nil, + "/abc/1": nil, + "/abc/12": {"abc", "12"}, + "/abcd/12": {"abcd", "12"}, + "/abcd/123": {"abcd", "123"}, + }, + } + + for pattern, paths := range tests { + p, _ = newRouteRegexp(pattern, false, false, false, false, false) + for path, result := range paths { + matches = p.regexp.FindStringSubmatch(path) + if result == nil { + if matches != nil { + t.Errorf("%v should not match %v.", pattern, path) + } + } else { + if len(matches) != len(result)+1 { + t.Errorf("Expected %v matches, got %v.", len(result)+1, len(matches)) + } else { + for k, v := range result { + if matches[k+1] != v { + t.Errorf("Expected %v, got %v.", v, matches[k+1]) + } + } + } + } + } + } +} diff --git a/vendor/github.com/gorilla/mux/regexp.go b/vendor/github.com/gorilla/mux/regexp.go new file mode 100644 index 00000000..0189ad34 --- /dev/null +++ b/vendor/github.com/gorilla/mux/regexp.go @@ -0,0 +1,323 @@ +// Copyright 2012 The Gorilla 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 mux + +import ( + "bytes" + "fmt" + "net/http" + "net/url" + "regexp" + "strconv" + "strings" +) + +// newRouteRegexp parses a route template and returns a routeRegexp, +// used to match a host, a path or a query string. +// +// It will extract named variables, assemble a regexp to be matched, create +// a "reverse" template to build URLs and compile regexps to validate variable +// values used in URL building. +// +// Previously we accepted only Python-like identifiers for variable +// names ([a-zA-Z_][a-zA-Z0-9_]*), but currently the only restriction is that +// name and pattern can't be empty, and names can't contain a colon. +func newRouteRegexp(tpl string, matchHost, matchPrefix, matchQuery, strictSlash, useEncodedPath bool) (*routeRegexp, error) { + // Check if it is well-formed. + idxs, errBraces := braceIndices(tpl) + if errBraces != nil { + return nil, errBraces + } + // Backup the original. + template := tpl + // Now let's parse it. + defaultPattern := "[^/]+" + if matchQuery { + defaultPattern = "[^?&]*" + } else if matchHost { + defaultPattern = "[^.]+" + matchPrefix = false + } + // Only match strict slash if not matching + if matchPrefix || matchHost || matchQuery { + strictSlash = false + } + // Set a flag for strictSlash. + endSlash := false + if strictSlash && strings.HasSuffix(tpl, "/") { + tpl = tpl[:len(tpl)-1] + endSlash = true + } + varsN := make([]string, len(idxs)/2) + varsR := make([]*regexp.Regexp, len(idxs)/2) + pattern := bytes.NewBufferString("") + pattern.WriteByte('^') + reverse := bytes.NewBufferString("") + var end int + var err error + for i := 0; i < len(idxs); i += 2 { + // Set all values we are interested in. + raw := tpl[end:idxs[i]] + end = idxs[i+1] + parts := strings.SplitN(tpl[idxs[i]+1:end-1], ":", 2) + name := parts[0] + patt := defaultPattern + if len(parts) == 2 { + patt = parts[1] + } + // Name or pattern can't be empty. + if name == "" || patt == "" { + return nil, fmt.Errorf("mux: missing name or pattern in %q", + tpl[idxs[i]:end]) + } + // Build the regexp pattern. + fmt.Fprintf(pattern, "%s(?P<%s>%s)", regexp.QuoteMeta(raw), varGroupName(i/2), patt) + + // Build the reverse template. + fmt.Fprintf(reverse, "%s%%s", raw) + + // Append variable name and compiled pattern. + varsN[i/2] = name + varsR[i/2], err = regexp.Compile(fmt.Sprintf("^%s$", patt)) + if err != nil { + return nil, err + } + } + // Add the remaining. + raw := tpl[end:] + pattern.WriteString(regexp.QuoteMeta(raw)) + if strictSlash { + pattern.WriteString("[/]?") + } + if matchQuery { + // Add the default pattern if the query value is empty + if queryVal := strings.SplitN(template, "=", 2)[1]; queryVal == "" { + pattern.WriteString(defaultPattern) + } + } + if !matchPrefix { + pattern.WriteByte('$') + } + reverse.WriteString(raw) + if endSlash { + reverse.WriteByte('/') + } + // Compile full regexp. + reg, errCompile := regexp.Compile(pattern.String()) + if errCompile != nil { + return nil, errCompile + } + + // Check for capturing groups which used to work in older versions + if reg.NumSubexp() != len(idxs)/2 { + panic(fmt.Sprintf("route %s contains capture groups in its regexp. ", template) + + "Only non-capturing groups are accepted: e.g. (?:pattern) instead of (pattern)") + } + + // Done! + return &routeRegexp{ + template: template, + matchHost: matchHost, + matchQuery: matchQuery, + strictSlash: strictSlash, + useEncodedPath: useEncodedPath, + regexp: reg, + reverse: reverse.String(), + varsN: varsN, + varsR: varsR, + }, nil +} + +// routeRegexp stores a regexp to match a host or path and information to +// collect and validate route variables. +type routeRegexp struct { + // The unmodified template. + template string + // True for host match, false for path or query string match. + matchHost bool + // True for query string match, false for path and host match. + matchQuery bool + // The strictSlash value defined on the route, but disabled if PathPrefix was used. + strictSlash bool + // Determines whether to use encoded path from getPath function or unencoded + // req.URL.Path for path matching + useEncodedPath bool + // Expanded regexp. + regexp *regexp.Regexp + // Reverse template. + reverse string + // Variable names. + varsN []string + // Variable regexps (validators). + varsR []*regexp.Regexp +} + +// Match matches the regexp against the URL host or path. +func (r *routeRegexp) Match(req *http.Request, match *RouteMatch) bool { + if !r.matchHost { + if r.matchQuery { + return r.matchQueryString(req) + } + path := req.URL.Path + if r.useEncodedPath { + path = getPath(req) + } + return r.regexp.MatchString(path) + } + + return r.regexp.MatchString(getHost(req)) +} + +// url builds a URL part using the given values. +func (r *routeRegexp) url(values map[string]string) (string, error) { + urlValues := make([]interface{}, len(r.varsN)) + for k, v := range r.varsN { + value, ok := values[v] + if !ok { + return "", fmt.Errorf("mux: missing route variable %q", v) + } + urlValues[k] = value + } + rv := fmt.Sprintf(r.reverse, urlValues...) + if !r.regexp.MatchString(rv) { + // The URL is checked against the full regexp, instead of checking + // individual variables. This is faster but to provide a good error + // message, we check individual regexps if the URL doesn't match. + for k, v := range r.varsN { + if !r.varsR[k].MatchString(values[v]) { + return "", fmt.Errorf( + "mux: variable %q doesn't match, expected %q", values[v], + r.varsR[k].String()) + } + } + } + return rv, nil +} + +// getURLQuery returns a single query parameter from a request URL. +// For a URL with foo=bar&baz=ding, we return only the relevant key +// value pair for the routeRegexp. +func (r *routeRegexp) getURLQuery(req *http.Request) string { + if !r.matchQuery { + return "" + } + templateKey := strings.SplitN(r.template, "=", 2)[0] + for key, vals := range req.URL.Query() { + if key == templateKey && len(vals) > 0 { + return key + "=" + vals[0] + } + } + return "" +} + +func (r *routeRegexp) matchQueryString(req *http.Request) bool { + return r.regexp.MatchString(r.getURLQuery(req)) +} + +// braceIndices returns the first level curly brace indices from a string. +// It returns an error in case of unbalanced braces. +func braceIndices(s string) ([]int, error) { + var level, idx int + var idxs []int + for i := 0; i < len(s); i++ { + switch s[i] { + case '{': + if level++; level == 1 { + idx = i + } + case '}': + if level--; level == 0 { + idxs = append(idxs, idx, i+1) + } else if level < 0 { + return nil, fmt.Errorf("mux: unbalanced braces in %q", s) + } + } + } + if level != 0 { + return nil, fmt.Errorf("mux: unbalanced braces in %q", s) + } + return idxs, nil +} + +// varGroupName builds a capturing group name for the indexed variable. +func varGroupName(idx int) string { + return "v" + strconv.Itoa(idx) +} + +// ---------------------------------------------------------------------------- +// routeRegexpGroup +// ---------------------------------------------------------------------------- + +// routeRegexpGroup groups the route matchers that carry variables. +type routeRegexpGroup struct { + host *routeRegexp + path *routeRegexp + queries []*routeRegexp +} + +// setMatch extracts the variables from the URL once a route matches. +func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) { + // Store host variables. + if v.host != nil { + host := getHost(req) + matches := v.host.regexp.FindStringSubmatchIndex(host) + if len(matches) > 0 { + extractVars(host, matches, v.host.varsN, m.Vars) + } + } + path := req.URL.Path + if r.useEncodedPath { + path = getPath(req) + } + // Store path variables. + if v.path != nil { + matches := v.path.regexp.FindStringSubmatchIndex(path) + if len(matches) > 0 { + extractVars(path, matches, v.path.varsN, m.Vars) + // Check if we should redirect. + if v.path.strictSlash { + p1 := strings.HasSuffix(path, "/") + p2 := strings.HasSuffix(v.path.template, "/") + if p1 != p2 { + u, _ := url.Parse(req.URL.String()) + if p1 { + u.Path = u.Path[:len(u.Path)-1] + } else { + u.Path += "/" + } + m.Handler = http.RedirectHandler(u.String(), 301) + } + } + } + } + // Store query string variables. + for _, q := range v.queries { + queryURL := q.getURLQuery(req) + matches := q.regexp.FindStringSubmatchIndex(queryURL) + if len(matches) > 0 { + extractVars(queryURL, matches, q.varsN, m.Vars) + } + } +} + +// getHost tries its best to return the request host. +func getHost(r *http.Request) string { + if r.URL.IsAbs() { + return r.URL.Host + } + host := r.Host + // Slice off any port information. + if i := strings.Index(host, ":"); i != -1 { + host = host[:i] + } + return host + +} + +func extractVars(input string, matches []int, names []string, output map[string]string) { + for i, name := range names { + output[name] = input[matches[2*i+2]:matches[2*i+3]] + } +} diff --git a/vendor/github.com/gorilla/mux/route.go b/vendor/github.com/gorilla/mux/route.go new file mode 100644 index 00000000..56dcbbdc --- /dev/null +++ b/vendor/github.com/gorilla/mux/route.go @@ -0,0 +1,677 @@ +// Copyright 2012 The Gorilla 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 mux + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "regexp" + "strings" +) + +// Route stores information to match a request and build URLs. +type Route struct { + // Parent where the route was registered (a Router). + parent parentRoute + // Request handler for the route. + handler http.Handler + // List of matchers. + matchers []matcher + // Manager for the variables from host and path. + regexp *routeRegexpGroup + // If true, when the path pattern is "/path/", accessing "/path" will + // redirect to the former and vice versa. + strictSlash bool + // If true, when the path pattern is "/path//to", accessing "/path//to" + // will not redirect + skipClean bool + // If true, "/path/foo%2Fbar/to" will match the path "/path/{var}/to" + useEncodedPath bool + // The scheme used when building URLs. + buildScheme string + // If true, this route never matches: it is only used to build URLs. + buildOnly bool + // The name used to build URLs. + name string + // Error resulted from building a route. + err error + + buildVarsFunc BuildVarsFunc +} + +func (r *Route) SkipClean() bool { + return r.skipClean +} + +// Match matches the route against the request. +func (r *Route) Match(req *http.Request, match *RouteMatch) bool { + if r.buildOnly || r.err != nil { + return false + } + // Match everything. + for _, m := range r.matchers { + if matched := m.Match(req, match); !matched { + return false + } + } + // Yay, we have a match. Let's collect some info about it. + if match.Route == nil { + match.Route = r + } + if match.Handler == nil { + match.Handler = r.handler + } + if match.Vars == nil { + match.Vars = make(map[string]string) + } + // Set variables. + if r.regexp != nil { + r.regexp.setMatch(req, match, r) + } + return true +} + +// ---------------------------------------------------------------------------- +// Route attributes +// ---------------------------------------------------------------------------- + +// GetError returns an error resulted from building the route, if any. +func (r *Route) GetError() error { + return r.err +} + +// BuildOnly sets the route to never match: it is only used to build URLs. +func (r *Route) BuildOnly() *Route { + r.buildOnly = true + return r +} + +// Handler -------------------------------------------------------------------- + +// Handler sets a handler for the route. +func (r *Route) Handler(handler http.Handler) *Route { + if r.err == nil { + r.handler = handler + } + return r +} + +// HandlerFunc sets a handler function for the route. +func (r *Route) HandlerFunc(f func(http.ResponseWriter, *http.Request)) *Route { + return r.Handler(http.HandlerFunc(f)) +} + +// GetHandler returns the handler for the route, if any. +func (r *Route) GetHandler() http.Handler { + return r.handler +} + +// Name ----------------------------------------------------------------------- + +// Name sets the name for the route, used to build URLs. +// If the name was registered already it will be overwritten. +func (r *Route) Name(name string) *Route { + if r.name != "" { + r.err = fmt.Errorf("mux: route already has name %q, can't set %q", + r.name, name) + } + if r.err == nil { + r.name = name + r.getNamedRoutes()[name] = r + } + return r +} + +// GetName returns the name for the route, if any. +func (r *Route) GetName() string { + return r.name +} + +// ---------------------------------------------------------------------------- +// Matchers +// ---------------------------------------------------------------------------- + +// matcher types try to match a request. +type matcher interface { + Match(*http.Request, *RouteMatch) bool +} + +// addMatcher adds a matcher to the route. +func (r *Route) addMatcher(m matcher) *Route { + if r.err == nil { + r.matchers = append(r.matchers, m) + } + return r +} + +// addRegexpMatcher adds a host or path matcher and builder to a route. +func (r *Route) addRegexpMatcher(tpl string, matchHost, matchPrefix, matchQuery bool) error { + if r.err != nil { + return r.err + } + r.regexp = r.getRegexpGroup() + if !matchHost && !matchQuery { + if len(tpl) > 0 && tpl[0] != '/' { + return fmt.Errorf("mux: path must start with a slash, got %q", tpl) + } + if r.regexp.path != nil { + tpl = strings.TrimRight(r.regexp.path.template, "/") + tpl + } + } + rr, err := newRouteRegexp(tpl, matchHost, matchPrefix, matchQuery, r.strictSlash, r.useEncodedPath) + if err != nil { + return err + } + for _, q := range r.regexp.queries { + if err = uniqueVars(rr.varsN, q.varsN); err != nil { + return err + } + } + if matchHost { + if r.regexp.path != nil { + if err = uniqueVars(rr.varsN, r.regexp.path.varsN); err != nil { + return err + } + } + r.regexp.host = rr + } else { + if r.regexp.host != nil { + if err = uniqueVars(rr.varsN, r.regexp.host.varsN); err != nil { + return err + } + } + if matchQuery { + r.regexp.queries = append(r.regexp.queries, rr) + } else { + r.regexp.path = rr + } + } + r.addMatcher(rr) + return nil +} + +// Headers -------------------------------------------------------------------- + +// headerMatcher matches the request against header values. +type headerMatcher map[string]string + +func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchMapWithString(m, r.Header, true) +} + +// Headers adds a matcher for request header values. +// It accepts a sequence of key/value pairs to be matched. For example: +// +// r := mux.NewRouter() +// r.Headers("Content-Type", "application/json", +// "X-Requested-With", "XMLHttpRequest") +// +// The above route will only match if both request header values match. +// If the value is an empty string, it will match any value if the key is set. +func (r *Route) Headers(pairs ...string) *Route { + if r.err == nil { + var headers map[string]string + headers, r.err = mapFromPairsToString(pairs...) + return r.addMatcher(headerMatcher(headers)) + } + return r +} + +// headerRegexMatcher matches the request against the route given a regex for the header +type headerRegexMatcher map[string]*regexp.Regexp + +func (m headerRegexMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchMapWithRegex(m, r.Header, true) +} + +// HeadersRegexp accepts a sequence of key/value pairs, where the value has regex +// support. For example: +// +// r := mux.NewRouter() +// r.HeadersRegexp("Content-Type", "application/(text|json)", +// "X-Requested-With", "XMLHttpRequest") +// +// The above route will only match if both the request header matches both regular expressions. +// It the value is an empty string, it will match any value if the key is set. +func (r *Route) HeadersRegexp(pairs ...string) *Route { + if r.err == nil { + var headers map[string]*regexp.Regexp + headers, r.err = mapFromPairsToRegex(pairs...) + return r.addMatcher(headerRegexMatcher(headers)) + } + return r +} + +// Host ----------------------------------------------------------------------- + +// Host adds a matcher for the URL host. +// It accepts a template with zero or more URL variables enclosed by {}. +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next dot. +// +// - {name:pattern} matches the given regexp pattern. +// +// For example: +// +// r := mux.NewRouter() +// r.Host("www.example.com") +// r.Host("{subdomain}.domain.com") +// r.Host("{subdomain:[a-z]+}.domain.com") +// +// Variable names must be unique in a given route. They can be retrieved +// calling mux.Vars(request). +func (r *Route) Host(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, true, false, false) + return r +} + +// MatcherFunc ---------------------------------------------------------------- + +// MatcherFunc is the function signature used by custom matchers. +type MatcherFunc func(*http.Request, *RouteMatch) bool + +// Match returns the match for a given request. +func (m MatcherFunc) Match(r *http.Request, match *RouteMatch) bool { + return m(r, match) +} + +// MatcherFunc adds a custom function to be used as request matcher. +func (r *Route) MatcherFunc(f MatcherFunc) *Route { + return r.addMatcher(f) +} + +// Methods -------------------------------------------------------------------- + +// methodMatcher matches the request against HTTP methods. +type methodMatcher []string + +func (m methodMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchInArray(m, r.Method) +} + +// Methods adds a matcher for HTTP methods. +// It accepts a sequence of one or more methods to be matched, e.g.: +// "GET", "POST", "PUT". +func (r *Route) Methods(methods ...string) *Route { + for k, v := range methods { + methods[k] = strings.ToUpper(v) + } + return r.addMatcher(methodMatcher(methods)) +} + +// Path ----------------------------------------------------------------------- + +// Path adds a matcher for the URL path. +// It accepts a template with zero or more URL variables enclosed by {}. The +// template must start with a "/". +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next slash. +// +// - {name:pattern} matches the given regexp pattern. +// +// For example: +// +// r := mux.NewRouter() +// r.Path("/products/").Handler(ProductsHandler) +// r.Path("/products/{key}").Handler(ProductsHandler) +// r.Path("/articles/{category}/{id:[0-9]+}"). +// Handler(ArticleHandler) +// +// Variable names must be unique in a given route. They can be retrieved +// calling mux.Vars(request). +func (r *Route) Path(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, false, false, false) + return r +} + +// PathPrefix ----------------------------------------------------------------- + +// PathPrefix adds a matcher for the URL path prefix. This matches if the given +// template is a prefix of the full URL path. See Route.Path() for details on +// the tpl argument. +// +// Note that it does not treat slashes specially ("/foobar/" will be matched by +// the prefix "/foo") so you may want to use a trailing slash here. +// +// Also note that the setting of Router.StrictSlash() has no effect on routes +// with a PathPrefix matcher. +func (r *Route) PathPrefix(tpl string) *Route { + r.err = r.addRegexpMatcher(tpl, false, true, false) + return r +} + +// Query ---------------------------------------------------------------------- + +// Queries adds a matcher for URL query values. +// It accepts a sequence of key/value pairs. Values may define variables. +// For example: +// +// r := mux.NewRouter() +// r.Queries("foo", "bar", "id", "{id:[0-9]+}") +// +// The above route will only match if the URL contains the defined queries +// values, e.g.: ?foo=bar&id=42. +// +// It the value is an empty string, it will match any value if the key is set. +// +// Variables can define an optional regexp pattern to be matched: +// +// - {name} matches anything until the next slash. +// +// - {name:pattern} matches the given regexp pattern. +func (r *Route) Queries(pairs ...string) *Route { + length := len(pairs) + if length%2 != 0 { + r.err = fmt.Errorf( + "mux: number of parameters must be multiple of 2, got %v", pairs) + return nil + } + for i := 0; i < length; i += 2 { + if r.err = r.addRegexpMatcher(pairs[i]+"="+pairs[i+1], false, false, true); r.err != nil { + return r + } + } + + return r +} + +// Schemes -------------------------------------------------------------------- + +// schemeMatcher matches the request against URL schemes. +type schemeMatcher []string + +func (m schemeMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchInArray(m, r.URL.Scheme) +} + +// Schemes adds a matcher for URL schemes. +// It accepts a sequence of schemes to be matched, e.g.: "http", "https". +func (r *Route) Schemes(schemes ...string) *Route { + for k, v := range schemes { + schemes[k] = strings.ToLower(v) + } + if r.buildScheme == "" && len(schemes) > 0 { + r.buildScheme = schemes[0] + } + return r.addMatcher(schemeMatcher(schemes)) +} + +// BuildVarsFunc -------------------------------------------------------------- + +// BuildVarsFunc is the function signature used by custom build variable +// functions (which can modify route variables before a route's URL is built). +type BuildVarsFunc func(map[string]string) map[string]string + +// BuildVarsFunc adds a custom function to be used to modify build variables +// before a route's URL is built. +func (r *Route) BuildVarsFunc(f BuildVarsFunc) *Route { + r.buildVarsFunc = f + return r +} + +// Subrouter ------------------------------------------------------------------ + +// Subrouter creates a subrouter for the route. +// +// It will test the inner routes only if the parent route matched. For example: +// +// r := mux.NewRouter() +// s := r.Host("www.example.com").Subrouter() +// s.HandleFunc("/products/", ProductsHandler) +// s.HandleFunc("/products/{key}", ProductHandler) +// s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) +// +// Here, the routes registered in the subrouter won't be tested if the host +// doesn't match. +func (r *Route) Subrouter() *Router { + router := &Router{parent: r, strictSlash: r.strictSlash} + r.addMatcher(router) + return router +} + +// ---------------------------------------------------------------------------- +// URL building +// ---------------------------------------------------------------------------- + +// URL builds a URL for the route. +// +// It accepts a sequence of key/value pairs for the route variables. For +// example, given this route: +// +// r := mux.NewRouter() +// r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). +// Name("article") +// +// ...a URL for it can be built using: +// +// url, err := r.Get("article").URL("category", "technology", "id", "42") +// +// ...which will return an url.URL with the following path: +// +// "/articles/technology/42" +// +// This also works for host variables: +// +// r := mux.NewRouter() +// r.Host("{subdomain}.domain.com"). +// HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). +// Name("article") +// +// // url.String() will be "http://news.domain.com/articles/technology/42" +// url, err := r.Get("article").URL("subdomain", "news", +// "category", "technology", +// "id", "42") +// +// All variables defined in the route are required, and their values must +// conform to the corresponding patterns. +func (r *Route) URL(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp == nil { + return nil, errors.New("mux: route doesn't have a host or path") + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + var scheme, host, path string + if r.regexp.host != nil { + if host, err = r.regexp.host.url(values); err != nil { + return nil, err + } + scheme = "http" + if r.buildScheme != "" { + scheme = r.buildScheme + } + } + if r.regexp.path != nil { + if path, err = r.regexp.path.url(values); err != nil { + return nil, err + } + } + return &url.URL{ + Scheme: scheme, + Host: host, + Path: path, + }, nil +} + +// URLHost builds the host part of the URL for a route. See Route.URL(). +// +// The route must have a host defined. +func (r *Route) URLHost(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp == nil || r.regexp.host == nil { + return nil, errors.New("mux: route doesn't have a host") + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + host, err := r.regexp.host.url(values) + if err != nil { + return nil, err + } + u := &url.URL{ + Scheme: "http", + Host: host, + } + if r.buildScheme != "" { + u.Scheme = r.buildScheme + } + return u, nil +} + +// URLPath builds the path part of the URL for a route. See Route.URL(). +// +// The route must have a path defined. +func (r *Route) URLPath(pairs ...string) (*url.URL, error) { + if r.err != nil { + return nil, r.err + } + if r.regexp == nil || r.regexp.path == nil { + return nil, errors.New("mux: route doesn't have a path") + } + values, err := r.prepareVars(pairs...) + if err != nil { + return nil, err + } + path, err := r.regexp.path.url(values) + if err != nil { + return nil, err + } + return &url.URL{ + Path: path, + }, nil +} + +// GetPathTemplate returns the template used to build the +// route match. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a path. +func (r *Route) GetPathTemplate() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp == nil || r.regexp.path == nil { + return "", errors.New("mux: route doesn't have a path") + } + return r.regexp.path.template, nil +} + +// GetPathRegexp returns the expanded regular expression used to match route path. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a path. +func (r *Route) GetPathRegexp() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp == nil || r.regexp.path == nil { + return "", errors.New("mux: route does not have a path") + } + return r.regexp.path.regexp.String(), nil +} + +// GetMethods returns the methods the route matches against +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An empty list will be returned if route does not have methods. +func (r *Route) GetMethods() ([]string, error) { + if r.err != nil { + return nil, r.err + } + for _, m := range r.matchers { + if methods, ok := m.(methodMatcher); ok { + return []string(methods), nil + } + } + return nil, nil +} + +// GetHostTemplate returns the template used to build the +// route match. +// This is useful for building simple REST API documentation and for instrumentation +// against third-party services. +// An error will be returned if the route does not define a host. +func (r *Route) GetHostTemplate() (string, error) { + if r.err != nil { + return "", r.err + } + if r.regexp == nil || r.regexp.host == nil { + return "", errors.New("mux: route doesn't have a host") + } + return r.regexp.host.template, nil +} + +// prepareVars converts the route variable pairs into a map. If the route has a +// BuildVarsFunc, it is invoked. +func (r *Route) prepareVars(pairs ...string) (map[string]string, error) { + m, err := mapFromPairsToString(pairs...) + if err != nil { + return nil, err + } + return r.buildVars(m), nil +} + +func (r *Route) buildVars(m map[string]string) map[string]string { + if r.parent != nil { + m = r.parent.buildVars(m) + } + if r.buildVarsFunc != nil { + m = r.buildVarsFunc(m) + } + return m +} + +// ---------------------------------------------------------------------------- +// parentRoute +// ---------------------------------------------------------------------------- + +// parentRoute allows routes to know about parent host and path definitions. +type parentRoute interface { + getNamedRoutes() map[string]*Route + getRegexpGroup() *routeRegexpGroup + buildVars(map[string]string) map[string]string +} + +// getNamedRoutes returns the map where named routes are registered. +func (r *Route) getNamedRoutes() map[string]*Route { + if r.parent == nil { + // During tests router is not always set. + r.parent = NewRouter() + } + return r.parent.getNamedRoutes() +} + +// getRegexpGroup returns regexp definitions from this route. +func (r *Route) getRegexpGroup() *routeRegexpGroup { + if r.regexp == nil { + if r.parent == nil { + // During tests router is not always set. + r.parent = NewRouter() + } + regexp := r.parent.getRegexpGroup() + if regexp == nil { + r.regexp = new(routeRegexpGroup) + } else { + // Copy. + r.regexp = &routeRegexpGroup{ + host: regexp.host, + path: regexp.path, + queries: regexp.queries, + } + } + } + return r.regexp +} diff --git a/vendor/github.com/howeyc/gopass/.travis.yml b/vendor/github.com/howeyc/gopass/.travis.yml new file mode 100644 index 00000000..cc5d509f --- /dev/null +++ b/vendor/github.com/howeyc/gopass/.travis.yml @@ -0,0 +1,11 @@ +language: go + +os: + - linux + - osx + +go: + - 1.3 + - 1.4 + - 1.5 + - tip diff --git a/vendor/github.com/howeyc/gopass/LICENSE.txt b/vendor/github.com/howeyc/gopass/LICENSE.txt new file mode 100644 index 00000000..14f74708 --- /dev/null +++ b/vendor/github.com/howeyc/gopass/LICENSE.txt @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2012 Chris Howey + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE b/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE new file mode 100644 index 00000000..da23621d --- /dev/null +++ b/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE @@ -0,0 +1,384 @@ +Unless otherwise noted, all files in this distribution are released +under the Common Development and Distribution License (CDDL). +Exceptions are noted within the associated source files. + +-------------------------------------------------------------------- + + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 + +1. Definitions. + + 1.1. "Contributor" means each individual or entity that creates + or contributes to the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Software, prior Modifications used by a Contributor (if any), + and the Modifications made by that particular Contributor. + + 1.3. "Covered Software" means (a) the Original Software, or (b) + Modifications, or (c) the combination of files containing + Original Software with files containing Modifications, in + each case including portions thereof. + + 1.4. "Executable" means the Covered Software in any form other + than Source Code. + + 1.5. "Initial Developer" means the individual or entity that first + makes Original Software available under this License. + + 1.6. "Larger Work" means a work which combines Covered Software or + portions thereof with code not governed by the terms of this + License. + + 1.7. "License" means this document. + + 1.8. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed + herein. + + 1.9. "Modifications" means the Source Code and Executable form of + any of the following: + + A. Any file that results from an addition to, deletion from or + modification of the contents of a file containing Original + Software or previous Modifications; + + B. Any new file that contains any part of the Original + Software or previous Modifications; or + + C. Any new file that is contributed or otherwise made + available under the terms of this License. + + 1.10. "Original Software" means the Source Code and Executable + form of computer software code that is originally released + under this License. + + 1.11. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, + process, and apparatus claims, in any patent Licensable by + grantor. + + 1.12. "Source Code" means (a) the common form of computer software + code in which modifications are made and (b) associated + documentation included in or with such code. + + 1.13. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms + of, this License. For legal entities, "You" includes any + entity which controls, is controlled by, or is under common + control with You. For purposes of this definition, + "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty + percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, the Initial + Developer hereby grants You a world-wide, royalty-free, + non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer, to use, + reproduce, modify, display, perform, sublicense and + distribute the Original Software (or portions thereof), + with or without Modifications, and/or as part of a Larger + Work; and + + (b) under Patent Claims infringed by the making, using or + selling of Original Software, to make, have made, use, + practice, sell, and offer for sale, and/or otherwise + dispose of the Original Software (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are + effective on the date Initial Developer first distributes + or otherwise makes the Original Software available to a + third party under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: (1) for code that You delete from the Original + Software, or (2) for infringements caused by: (i) the + modification of the Original Software, or (ii) the + combination of the Original Software with other software + or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and + subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor to use, reproduce, + modify, display, perform, sublicense and distribute the + Modifications created by such Contributor (or portions + thereof), either on an unmodified basis, with other + Modifications, as Covered Software and/or as part of a + Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either + alone and/or in combination with its Contributor Version + (or portions of such combination), to make, use, sell, + offer for sale, have made, and/or otherwise dispose of: + (1) Modifications made by that Contributor (or portions + thereof); and (2) the combination of Modifications made by + that Contributor with its Contributor Version (or portions + of such combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first distributes or + otherwise makes the Modifications available to a third + party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: (1) for any code that Contributor has deleted + from the Contributor Version; (2) for infringements caused + by: (i) third party modifications of Contributor Version, + or (ii) the combination of Modifications made by that + Contributor with other software (except as part of the + Contributor Version) or other devices; or (3) under Patent + Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make + available in Executable form must also be made available in Source + Code form and that Source Code form must be distributed only under + the terms of this License. You must include a copy of this + License with every copy of the Source Code form of the Covered + Software You distribute or otherwise make available. You must + inform recipients of any such Covered Software in Executable form + as to how they can obtain such Covered Software in Source Code + form in a reasonable manner on or through a medium customarily + used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are + governed by the terms of this License. You represent that You + believe Your Modifications are Your original creation(s) and/or + You have sufficient rights to grant the rights conveyed by this + License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that + identifies You as the Contributor of the Modification. You may + not remove or alter any copyright, patent or trademark notices + contained within the Covered Software, or any notices of licensing + or any descriptive text giving attribution to any Contributor or + the Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in + Source Code form that alters or restricts the applicable version + of this License or the recipients' rights hereunder. You may + choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of + Covered Software. However, you may do so only on Your own behalf, + and not on behalf of the Initial Developer or any Contributor. + You must make it absolutely clear that any such warranty, support, + indemnity or liability obligation is offered by You alone, and You + hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial Developer or + such Contributor as a result of warranty, support, indemnity or + liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software + under the terms of this License or under the terms of a license of + Your choice, which may contain terms different from this License, + provided that You are in compliance with the terms of this License + and that the license for the Executable form does not attempt to + limit or alter the recipient's rights in the Source Code form from + the rights set forth in this License. If You distribute the + Covered Software in Executable form under a different license, You + must make it absolutely clear that any terms which differ from + this License are offered by You alone, not by the Initial + Developer or Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred + by the Initial Developer or such Contributor as a result of any + such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with + other code not governed by the terms of this License and + distribute the Larger Work as a single product. In such a case, + You must make sure the requirements of this License are fulfilled + for the Covered Software. + +4. Versions of the License. + + 4.1. New Versions. + + Sun Microsystems, Inc. is the initial license steward and may + publish revised and/or new versions of this License from time to + time. Each version will be given a distinguishing version number. + Except as provided in Section 4.3, no one other than the license + steward has the right to modify this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the + Covered Software available under the terms of the version of the + License under which You originally received the Covered Software. + If the Initial Developer includes a notice in the Original + Software prohibiting it from being distributed or otherwise made + available under any subsequent version of the License, You must + distribute and make the Covered Software available under the terms + of the version of the License under which You originally received + the Covered Software. Otherwise, You may also choose to use, + distribute or otherwise make the Covered Software available under + the terms of any subsequent version of the License published by + the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new + license for Your Original Software, You may create and use a + modified version of this License if You: (a) rename the license + and remove any references to the name of the license steward + (except to note that the license differs from this License); and + (b) otherwise make it clear that the license contains terms which + differ from this License. + +5. DISCLAIMER OF WARRANTY. + + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" + BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED + SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR + PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY + COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE + INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY + NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF + WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. + +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond + the termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or a + Contributor (the Initial Developer or Contributor against whom You + assert such claim is referred to as "Participant") alleging that + the Participant Software (meaning the Contributor Version where + the Participant is a Contributor or the Original Software where + the Participant is the Initial Developer) directly or indirectly + infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if + the Initial Developer is not the Participant) and all Contributors + under Sections 2.1 and/or 2.2 of this License shall, upon 60 days + notice from Participant terminate prospectively and automatically + at the expiration of such 60 day notice period, unless if within + such 60 day period You withdraw Your claim with respect to the + Participant Software against such Participant either unilaterally + or pursuant to a written agreement with Participant. + + 6.3. In the event of termination under Sections 6.1 or 6.2 above, + all end user licenses that have been validly granted by You or any + distributor hereunder prior to termination (excluding licenses + granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE + LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK + STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT + APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO + NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR + CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT + APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + + The Covered Software is a "commercial item," as that term is + defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial + computer software" (as that term is defined at 48 + C.F.R. 252.227-7014(a)(1)) and "commercial computer software + documentation" as such terms are used in 48 C.F.R. 12.212 + (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 + C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all + U.S. Government End Users acquire Covered Software with only those + rights set forth herein. This U.S. Government Rights clause is in + lieu of, and supersedes, any other FAR, DFAR, or other clause or + provision that addresses Government rights in computer software + under this License. + +9. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed + by the law of the jurisdiction specified in a notice contained + within the Original Software (except to the extent applicable law, + if any, provides otherwise), excluding such jurisdiction's + conflict-of-law provisions. Any litigation relating to this + License shall be subject to the jurisdiction of the courts located + in the jurisdiction and venue specified in a notice contained + within the Original Software, with the losing party responsible + for costs, including, without limitation, court costs and + reasonable attorneys' fees and expenses. The application of the + United Nations Convention on Contracts for the International Sale + of Goods is expressly excluded. Any law or regulation which + provides that the language of a contract shall be construed + against the drafter shall not apply to this License. You agree + that You alone are responsible for compliance with the United + States export administration regulations (and the export control + laws and regulation of any other countries) when You use, + distribute or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or + indirectly, out of its utilization of rights under this License + and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing + herein is intended or shall be deemed to constitute any admission + of liability. + +-------------------------------------------------------------------- + +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND +DISTRIBUTION LICENSE (CDDL) + +For Covered Software in this distribution, this License shall +be governed by the laws of the State of California (excluding +conflict-of-law provisions). + +Any litigation relating to this License shall be subject to the +jurisdiction of the Federal Courts of the Northern District of +California and the state courts of the State of California, with +venue lying in Santa Clara County, California. diff --git a/vendor/github.com/howeyc/gopass/README.md b/vendor/github.com/howeyc/gopass/README.md new file mode 100644 index 00000000..2d6a4e72 --- /dev/null +++ b/vendor/github.com/howeyc/gopass/README.md @@ -0,0 +1,27 @@ +# getpasswd in Go [![GoDoc](https://godoc.org/github.com/howeyc/gopass?status.svg)](https://godoc.org/github.com/howeyc/gopass) [![Build Status](https://secure.travis-ci.org/howeyc/gopass.png?branch=master)](http://travis-ci.org/howeyc/gopass) + +Retrieve password from user terminal or piped input without echo. + +Verified on BSD, Linux, and Windows. + +Example: +```go +package main + +import "fmt" +import "github.com/howeyc/gopass" + +func main() { + fmt.Printf("Password: ") + + // Silent. For printing *'s use gopass.GetPasswdMasked() + pass, err := gopass.GetPasswd() + if err != nil { + // Handle gopass.ErrInterrupted or getch() read error + } + + // Do something with pass +} +``` + +Caution: Multi-byte characters not supported! diff --git a/vendor/github.com/howeyc/gopass/pass.go b/vendor/github.com/howeyc/gopass/pass.go new file mode 100644 index 00000000..31c853ae --- /dev/null +++ b/vendor/github.com/howeyc/gopass/pass.go @@ -0,0 +1,91 @@ +package gopass + +import ( + "errors" + "fmt" + "io" + "os" +) + +var defaultGetCh = func() (byte, error) { + buf := make([]byte, 1) + if n, err := os.Stdin.Read(buf); n == 0 || err != nil { + if err != nil { + return 0, err + } + return 0, io.EOF + } + return buf[0], nil +} + +var ( + maxLength = 512 + ErrInterrupted = errors.New("interrupted") + ErrMaxLengthExceeded = fmt.Errorf("maximum byte limit (%v) exceeded", maxLength) + + // Provide variable so that tests can provide a mock implementation. + getch = defaultGetCh +) + +// getPasswd returns the input read from terminal. +// If masked is true, typing will be matched by asterisks on the screen. +// Otherwise, typing will echo nothing. +func getPasswd(masked bool) ([]byte, error) { + var err error + var pass, bs, mask []byte + if masked { + bs = []byte("\b \b") + mask = []byte("*") + } + + if isTerminal(os.Stdin.Fd()) { + if oldState, err := makeRaw(os.Stdin.Fd()); err != nil { + return pass, err + } else { + defer restore(os.Stdin.Fd(), oldState) + } + } + + // Track total bytes read, not just bytes in the password. This ensures any + // errors that might flood the console with nil or -1 bytes infinitely are + // capped. + var counter int + for counter = 0; counter <= maxLength; counter++ { + if v, e := getch(); e != nil { + err = e + break + } else if v == 127 || v == 8 { + if l := len(pass); l > 0 { + pass = pass[:l-1] + fmt.Print(string(bs)) + } + } else if v == 13 || v == 10 { + break + } else if v == 3 { + err = ErrInterrupted + break + } else if v != 0 { + pass = append(pass, v) + fmt.Print(string(mask)) + } + } + + if counter > maxLength { + err = ErrMaxLengthExceeded + } + + fmt.Println() + return pass, err +} + +// GetPasswd returns the password read from the terminal without echoing input. +// The returned byte array does not include end-of-line characters. +func GetPasswd() ([]byte, error) { + return getPasswd(false) +} + +// GetPasswdMasked returns the password read from the terminal, echoing asterisks. +// The returned byte array does not include end-of-line characters. +func GetPasswdMasked() ([]byte, error) { + return getPasswd(true) +} diff --git a/vendor/github.com/howeyc/gopass/pass_test.go b/vendor/github.com/howeyc/gopass/pass_test.go new file mode 100644 index 00000000..654d3626 --- /dev/null +++ b/vendor/github.com/howeyc/gopass/pass_test.go @@ -0,0 +1,228 @@ +package gopass + +import ( + "bufio" + "bytes" + "fmt" + "io" + "io/ioutil" + "os" + "testing" + "time" +) + +// TestGetPasswd tests the password creation and output based on a byte buffer +// as input to mock the underlying getch() methods. +func TestGetPasswd(t *testing.T) { + type testData struct { + input []byte + + // Due to how backspaces are written, it is easier to manually write + // each expected output for the masked cases. + masked string + password string + byesLeft int + reason string + } + + ds := []testData{ + testData{[]byte("abc\n"), "***\n", "abc", 0, "Password parsing should stop at \\n"}, + testData{[]byte("abc\r"), "***\n", "abc", 0, "Password parsing should stop at \\r"}, + testData{[]byte("a\nbc\n"), "*\n", "a", 3, "Password parsing should stop at \\n"}, + testData{[]byte("*!]|\n"), "****\n", "*!]|", 0, "Special characters shouldn't affect the password."}, + + testData{[]byte("abc\r\n"), "***\n", "abc", 1, + "Password parsing should stop at \\r; Windows LINE_MODE should be unset so \\r is not converted to \\r\\n."}, + + testData{[]byte{'a', 'b', 'c', 8, '\n'}, "***\b \b\n", "ab", 0, "Backspace byte should remove the last read byte."}, + testData{[]byte{'a', 'b', 127, 'c', '\n'}, "**\b \b*\n", "ac", 0, "Delete byte should remove the last read byte."}, + testData{[]byte{'a', 'b', 127, 'c', 8, 127, '\n'}, "**\b \b*\b \b\b \b\n", "", 0, "Successive deletes continue to delete."}, + testData{[]byte{8, 8, 8, '\n'}, "\n", "", 0, "Deletes before characters are noops."}, + testData{[]byte{8, 8, 8, 'a', 'b', 'c', '\n'}, "***\n", "abc", 0, "Deletes before characters are noops."}, + + testData{[]byte{'a', 'b', 0, 'c', '\n'}, "***\n", "abc", 0, + "Nil byte should be ignored due; may get unintended nil bytes from syscalls on Windows."}, + } + + // Redirecting output for tests as they print to os.Stdout but we want to + // capture and test the output. + origStdOut := os.Stdout + for _, masked := range []bool{true, false} { + for _, d := range ds { + pipeBytesToStdin(d.input) + + r, w, err := os.Pipe() + if err != nil { + t.Fatal(err.Error()) + } + os.Stdout = w + + result, err := getPasswd(masked) + os.Stdout = origStdOut + if err != nil { + t.Errorf("Error getting password:", err.Error()) + } + leftOnBuffer := flushStdin() + + // Test output (masked and unmasked). Delete/backspace actually + // deletes, overwrites and deletes again. As a result, we need to + // remove those from the pipe afterwards to mimic the console's + // interpretation of those bytes. + w.Close() + output, err := ioutil.ReadAll(r) + if err != nil { + t.Fatal(err.Error()) + } + var expectedOutput []byte + if masked { + expectedOutput = []byte(d.masked) + } else { + expectedOutput = []byte("\n") + } + if bytes.Compare(expectedOutput, output) != 0 { + t.Errorf("Expected output to equal %v (%q) but got %v (%q) instead when masked=%v. %s", expectedOutput, string(expectedOutput), output, string(output), masked, d.reason) + } + + if string(result) != d.password { + t.Errorf("Expected %q but got %q instead when masked=%v. %s", d.password, result, masked, d.reason) + } + + if leftOnBuffer != d.byesLeft { + t.Errorf("Expected %v bytes left on buffer but instead got %v when masked=%v. %s", d.byesLeft, leftOnBuffer, masked, d.reason) + } + } + } +} + +// TestPipe ensures we get our expected pipe behavior. +func TestPipe(t *testing.T) { + type testData struct { + input string + password string + expError error + } + ds := []testData{ + testData{"abc", "abc", io.EOF}, + testData{"abc\n", "abc", nil}, + testData{"abc\r", "abc", nil}, + testData{"abc\r\n", "abc", nil}, + } + + for _, d := range ds { + _, err := pipeToStdin(d.input) + if err != nil { + t.Log("Error writing input to stdin:", err) + t.FailNow() + } + pass, err := GetPasswd() + if string(pass) != d.password { + t.Errorf("Expected %q but got %q instead.", d.password, string(pass)) + } + if err != d.expError { + t.Errorf("Expected %v but got %q instead.", d.expError, err) + } + } +} + +// flushStdin reads from stdin for .5 seconds to ensure no bytes are left on +// the buffer. Returns the number of bytes read. +func flushStdin() int { + ch := make(chan byte) + go func(ch chan byte) { + reader := bufio.NewReader(os.Stdin) + for { + b, err := reader.ReadByte() + if err != nil { // Maybe log non io.EOF errors, if you want + close(ch) + return + } + ch <- b + } + close(ch) + }(ch) + + numBytes := 0 + for { + select { + case _, ok := <-ch: + if !ok { + return numBytes + } + numBytes++ + case <-time.After(500 * time.Millisecond): + return numBytes + } + } + return numBytes +} + +// pipeToStdin pipes the given string onto os.Stdin by replacing it with an +// os.Pipe. The write end of the pipe is closed so that EOF is read after the +// final byte. +func pipeToStdin(s string) (int, error) { + pipeReader, pipeWriter, err := os.Pipe() + if err != nil { + fmt.Println("Error getting os pipes:", err) + os.Exit(1) + } + os.Stdin = pipeReader + w, err := pipeWriter.WriteString(s) + pipeWriter.Close() + return w, err +} + +func pipeBytesToStdin(b []byte) (int, error) { + return pipeToStdin(string(b)) +} + +// TestGetPasswd_Err tests errors are properly handled from getch() +func TestGetPasswd_Err(t *testing.T) { + var inBuffer *bytes.Buffer + getch = func() (byte, error) { + b, err := inBuffer.ReadByte() + if err != nil { + return 13, err + } + if b == 'z' { + return 'z', fmt.Errorf("Forced error; byte returned should not be considered accurate.") + } + return b, nil + } + defer func() { getch = defaultGetCh }() + + for input, expectedPassword := range map[string]string{"abc": "abc", "abzc": "ab"} { + inBuffer = bytes.NewBufferString(input) + p, err := GetPasswdMasked() + if string(p) != expectedPassword { + t.Errorf("Expected %q but got %q instead.", expectedPassword, p) + } + if err == nil { + t.Errorf("Expected error to be returned.") + } + } +} + +func TestMaxPasswordLength(t *testing.T) { + type testData struct { + input []byte + expectedErr error + + // Helper field to output in case of failure; rather than hundreds of + // bytes. + inputDesc string + } + + ds := []testData{ + testData{append(bytes.Repeat([]byte{'a'}, maxLength), '\n'), nil, fmt.Sprintf("%v 'a' bytes followed by a newline", maxLength)}, + testData{append(bytes.Repeat([]byte{'a'}, maxLength+1), '\n'), ErrMaxLengthExceeded, fmt.Sprintf("%v 'a' bytes followed by a newline", maxLength+1)}, + testData{append(bytes.Repeat([]byte{0x00}, maxLength+1), '\n'), ErrMaxLengthExceeded, fmt.Sprintf("%v 0x00 bytes followed by a newline", maxLength+1)}, + } + + for _, d := range ds { + pipeBytesToStdin(d.input) + _, err := GetPasswd() + if err != d.expectedErr { + t.Errorf("Expected error to be %v; isntead got %v from %v", d.expectedErr, err, d.inputDesc) + } + } +} diff --git a/vendor/github.com/howeyc/gopass/terminal.go b/vendor/github.com/howeyc/gopass/terminal.go new file mode 100644 index 00000000..08356414 --- /dev/null +++ b/vendor/github.com/howeyc/gopass/terminal.go @@ -0,0 +1,25 @@ +// +build !solaris + +package gopass + +import "golang.org/x/crypto/ssh/terminal" + +type terminalState struct { + state *terminal.State +} + +func isTerminal(fd uintptr) bool { + return terminal.IsTerminal(int(fd)) +} + +func makeRaw(fd uintptr) (*terminalState, error) { + state, err := terminal.MakeRaw(int(fd)) + + return &terminalState{ + state: state, + }, err +} + +func restore(fd uintptr, oldState *terminalState) error { + return terminal.Restore(int(fd), oldState.state) +} diff --git a/vendor/github.com/howeyc/gopass/terminal_solaris.go b/vendor/github.com/howeyc/gopass/terminal_solaris.go new file mode 100644 index 00000000..257e1b4e --- /dev/null +++ b/vendor/github.com/howeyc/gopass/terminal_solaris.go @@ -0,0 +1,69 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +// Below is derived from Solaris source, so CDDL license is included. + +package gopass + +import ( + "syscall" + + "golang.org/x/sys/unix" +) + +type terminalState struct { + state *unix.Termios +} + +// isTerminal returns true if there is a terminal attached to the given +// file descriptor. +// Source: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c +func isTerminal(fd uintptr) bool { + var termio unix.Termio + err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) + return err == nil +} + +// makeRaw puts the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +// Source: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c +func makeRaw(fd uintptr) (*terminalState, error) { + oldTermiosPtr, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) + if err != nil { + return nil, err + } + oldTermios := *oldTermiosPtr + + newTermios := oldTermios + newTermios.Lflag &^= syscall.ECHO | syscall.ECHOE | syscall.ECHOK | syscall.ECHONL + if err := unix.IoctlSetTermios(int(fd), unix.TCSETS, &newTermios); err != nil { + return nil, err + } + + return &terminalState{ + state: oldTermiosPtr, + }, nil +} + +func restore(fd uintptr, oldState *terminalState) error { + return unix.IoctlSetTermios(int(fd), unix.TCSETS, oldState.state) +} diff --git a/vendor/github.com/imdario/mergo/.travis.yml b/vendor/github.com/imdario/mergo/.travis.yml new file mode 100644 index 00000000..9d91c633 --- /dev/null +++ b/vendor/github.com/imdario/mergo/.travis.yml @@ -0,0 +1,2 @@ +language: go +install: go get -t diff --git a/vendor/github.com/imdario/mergo/LICENSE b/vendor/github.com/imdario/mergo/LICENSE new file mode 100644 index 00000000..68668029 --- /dev/null +++ b/vendor/github.com/imdario/mergo/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2013 Dario Castañé. All rights reserved. +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/imdario/mergo/README.md b/vendor/github.com/imdario/mergo/README.md new file mode 100644 index 00000000..cdcea0f6 --- /dev/null +++ b/vendor/github.com/imdario/mergo/README.md @@ -0,0 +1,68 @@ +# Mergo + +A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. + +Also a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the Province of Ancona in the Italian region Marche. + +![Mergo dall'alto](http://www.comune.mergo.an.it/Siti/Mergo/Immagini/Foto/mergo_dall_alto.jpg) + +## Status + +It is ready for production use. It works fine although it may use more of testing. Here some projects in the wild using Mergo: + +- [EagerIO/Stout](https://github.com/EagerIO/Stout) +- [lynndylanhurley/defsynth-api](https://github.com/lynndylanhurley/defsynth-api) +- [russross/canvasassignments](https://github.com/russross/canvasassignments) +- [rdegges/cryptly-api](https://github.com/rdegges/cryptly-api) +- [casualjim/exeggutor](https://github.com/casualjim/exeggutor) +- [divshot/gitling](https://github.com/divshot/gitling) +- [RWJMurphy/gorl](https://github.com/RWJMurphy/gorl) + +[![Build Status][1]][2] +[![GoDoc](https://godoc.org/github.com/imdario/mergo?status.svg)](https://godoc.org/github.com/imdario/mergo) + +[1]: https://travis-ci.org/imdario/mergo.png +[2]: https://travis-ci.org/imdario/mergo + +## Installation + + go get github.com/imdario/mergo + + // use in your .go code + import ( + "github.com/imdario/mergo" + ) + +## Usage + +You can only merge same-type structs with exported fields initialized as zero value of their type and same-types maps. Mergo won't merge unexported (private) fields but will do recursively any exported one. Also maps will be merged recursively except for structs inside maps (because they are not addressable using Go reflection). + + if err := mergo.Merge(&dst, src); err != nil { + // ... + } + +Additionally, you can map a map[string]interface{} to a struct (and otherwise, from struct to map), following the same restrictions as in Merge(). Keys are capitalized to find each corresponding exported field. + + if err := mergo.Map(&dst, srcMap); err != nil { + // ... + } + +Warning: if you map a struct to map, it won't do it recursively. Don't expect Mergo to map struct members of your struct as map[string]interface{}. They will be just assigned as values. + +More information and examples in [godoc documentation](http://godoc.org/github.com/imdario/mergo). + +Note: if test are failing due missing package, please execute: + + go get gopkg.in/yaml.v1 + +## Contact me + +If I can help you, you have an idea or you are using Mergo in your projects, don't hesitate to drop me a line (or a pull request): [@im_dario](https://twitter.com/im_dario) + +## About + +Written by [Dario Castañé](http://dario.im). + +## License + +[BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) license, as [Go language](http://golang.org/LICENSE). diff --git a/vendor/github.com/imdario/mergo/doc.go b/vendor/github.com/imdario/mergo/doc.go new file mode 100644 index 00000000..6e9aa7ba --- /dev/null +++ b/vendor/github.com/imdario/mergo/doc.go @@ -0,0 +1,44 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package mergo merges same-type structs and maps by setting default values in zero-value fields. + +Mergo won't merge unexported (private) fields but will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection). + +Usage + +From my own work-in-progress project: + + type networkConfig struct { + Protocol string + Address string + ServerType string `json: "server_type"` + Port uint16 + } + + type FssnConfig struct { + Network networkConfig + } + + var fssnDefault = FssnConfig { + networkConfig { + "tcp", + "127.0.0.1", + "http", + 31560, + }, + } + + // Inside a function [...] + + if err := mergo.Merge(&config, fssnDefault); err != nil { + log.Fatal(err) + } + + // More code [...] + +*/ +package mergo diff --git a/vendor/github.com/imdario/mergo/map.go b/vendor/github.com/imdario/mergo/map.go new file mode 100644 index 00000000..44361e88 --- /dev/null +++ b/vendor/github.com/imdario/mergo/map.go @@ -0,0 +1,146 @@ +// Copyright 2014 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "fmt" + "reflect" + "unicode" + "unicode/utf8" +) + +func changeInitialCase(s string, mapper func(rune) rune) string { + if s == "" { + return s + } + r, n := utf8.DecodeRuneInString(s) + return string(mapper(r)) + s[n:] +} + +func isExported(field reflect.StructField) bool { + r, _ := utf8.DecodeRuneInString(field.Name) + return r >= 'A' && r <= 'Z' +} + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + zeroValue := reflect.Value{} + switch dst.Kind() { + case reflect.Map: + dstMap := dst.Interface().(map[string]interface{}) + for i, n := 0, src.NumField(); i < n; i++ { + srcType := src.Type() + field := srcType.Field(i) + if !isExported(field) { + continue + } + fieldName := field.Name + fieldName = changeInitialCase(fieldName, unicode.ToLower) + if v, ok := dstMap[fieldName]; !ok || isEmptyValue(reflect.ValueOf(v)) { + dstMap[fieldName] = src.Field(i).Interface() + } + } + case reflect.Struct: + srcMap := src.Interface().(map[string]interface{}) + for key := range srcMap { + srcValue := srcMap[key] + fieldName := changeInitialCase(key, unicode.ToUpper) + dstElement := dst.FieldByName(fieldName) + if dstElement == zeroValue { + // We discard it because the field doesn't exist. + continue + } + srcElement := reflect.ValueOf(srcValue) + dstKind := dstElement.Kind() + srcKind := srcElement.Kind() + if srcKind == reflect.Ptr && dstKind != reflect.Ptr { + srcElement = srcElement.Elem() + srcKind = reflect.TypeOf(srcElement.Interface()).Kind() + } else if dstKind == reflect.Ptr { + // Can this work? I guess it can't. + if srcKind != reflect.Ptr && srcElement.CanAddr() { + srcPtr := srcElement.Addr() + srcElement = reflect.ValueOf(srcPtr) + srcKind = reflect.Ptr + } + } + if !srcElement.IsValid() { + continue + } + if srcKind == dstKind { + if err = deepMerge(dstElement, srcElement, visited, depth+1); err != nil { + return + } + } else { + if srcKind == reflect.Map { + if err = deepMap(dstElement, srcElement, visited, depth+1); err != nil { + return + } + } else { + return fmt.Errorf("type mismatch on %s field: found %v, expected %v", fieldName, srcKind, dstKind) + } + } + } + } + return +} + +// Map sets fields' values in dst from src. +// src can be a map with string keys or a struct. dst must be the opposite: +// if src is a map, dst must be a valid pointer to struct. If src is a struct, +// dst must be map[string]interface{}. +// It won't merge unexported (private) fields and will do recursively +// any exported field. +// If dst is a map, keys will be src fields' names in lower camel case. +// Missing key in src that doesn't match a field in dst will be skipped. This +// doesn't apply if dst is a map. +// This is separated method from Merge because it is cleaner and it keeps sane +// semantics: merging equal types, mapping different (restricted) types. +func Map(dst, src interface{}) error { + var ( + vDst, vSrc reflect.Value + err error + ) + if vDst, vSrc, err = resolveValues(dst, src); err != nil { + return err + } + // To be friction-less, we redirect equal-type arguments + // to deepMerge. Only because arguments can be anything. + if vSrc.Kind() == vDst.Kind() { + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0) + } + switch vSrc.Kind() { + case reflect.Struct: + if vDst.Kind() != reflect.Map { + return ErrExpectedMapAsDestination + } + case reflect.Map: + if vDst.Kind() != reflect.Struct { + return ErrExpectedStructAsDestination + } + default: + return ErrNotSupported + } + return deepMap(vDst, vSrc, make(map[uintptr]*visit), 0) +} diff --git a/vendor/github.com/imdario/mergo/merge.go b/vendor/github.com/imdario/mergo/merge.go new file mode 100644 index 00000000..5d328b1f --- /dev/null +++ b/vendor/github.com/imdario/mergo/merge.go @@ -0,0 +1,99 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "reflect" +) + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { + if !src.IsValid() { + return + } + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + switch dst.Kind() { + case reflect.Struct: + for i, n := 0, dst.NumField(); i < n; i++ { + if err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1); err != nil { + return + } + } + case reflect.Map: + for _, key := range src.MapKeys() { + srcElement := src.MapIndex(key) + if !srcElement.IsValid() { + continue + } + dstElement := dst.MapIndex(key) + switch reflect.TypeOf(srcElement.Interface()).Kind() { + case reflect.Struct: + fallthrough + case reflect.Map: + if err = deepMerge(dstElement, srcElement, visited, depth+1); err != nil { + return + } + } + if !dstElement.IsValid() { + dst.SetMapIndex(key, srcElement) + } + } + case reflect.Ptr: + fallthrough + case reflect.Interface: + if src.IsNil() { + break + } else if dst.IsNil() { + if dst.CanSet() && isEmptyValue(dst) { + dst.Set(src) + } + } else if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1); err != nil { + return + } + default: + if dst.CanSet() && !isEmptyValue(src) { + dst.Set(src) + } + } + return +} + +// Merge sets fields' values in dst from src if they have a zero +// value of their type. +// dst and src must be valid same-type structs and dst must be +// a pointer to struct. +// It won't merge unexported (private) fields and will do recursively +// any exported field. +func Merge(dst, src interface{}) error { + var ( + vDst, vSrc reflect.Value + err error + ) + if vDst, vSrc, err = resolveValues(dst, src); err != nil { + return err + } + if vDst.Type() != vSrc.Type() { + return ErrDifferentArgumentsTypes + } + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0) +} diff --git a/vendor/github.com/imdario/mergo/mergo.go b/vendor/github.com/imdario/mergo/mergo.go new file mode 100644 index 00000000..f8a0991e --- /dev/null +++ b/vendor/github.com/imdario/mergo/mergo.go @@ -0,0 +1,90 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Based on src/pkg/reflect/deepequal.go from official +// golang's stdlib. + +package mergo + +import ( + "errors" + "reflect" +) + +// Errors reported by Mergo when it finds invalid arguments. +var ( + ErrNilArguments = errors.New("src and dst must not be nil") + ErrDifferentArgumentsTypes = errors.New("src and dst must be of same type") + ErrNotSupported = errors.New("only structs and maps are supported") + ErrExpectedMapAsDestination = errors.New("dst was expected to be a map") + ErrExpectedStructAsDestination = errors.New("dst was expected to be a struct") +) + +// During deepMerge, must keep track of checks that are +// in progress. The comparison algorithm assumes that all +// checks in progress are true when it reencounters them. +// Visited are stored in a map indexed by 17 * a1 + a2; +type visit struct { + ptr uintptr + typ reflect.Type + next *visit +} + +// From src/pkg/encoding/json. +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + } + return false +} + +func resolveValues(dst, src interface{}) (vDst, vSrc reflect.Value, err error) { + if dst == nil || src == nil { + err = ErrNilArguments + return + } + vDst = reflect.ValueOf(dst).Elem() + if vDst.Kind() != reflect.Struct && vDst.Kind() != reflect.Map { + err = ErrNotSupported + return + } + vSrc = reflect.ValueOf(src) + // We check if vSrc is a pointer to dereference it. + if vSrc.Kind() == reflect.Ptr { + vSrc = vSrc.Elem() + } + return +} + +// Traverses recursively both values, assigning src's fields values to dst. +// The map argument tracks comparisons that have already been seen, which allows +// short circuiting on recursive types. +func deeper(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { + if dst.CanAddr() { + addr := dst.UnsafeAddr() + h := 17 * addr + seen := visited[h] + typ := dst.Type() + for p := seen; p != nil; p = p.next { + if p.ptr == addr && p.typ == typ { + return nil + } + } + // Remember, remember... + visited[h] = &visit{addr, typ, seen} + } + return // TODO refactor +} diff --git a/vendor/github.com/imdario/mergo/mergo_test.go b/vendor/github.com/imdario/mergo/mergo_test.go new file mode 100644 index 00000000..072bddb7 --- /dev/null +++ b/vendor/github.com/imdario/mergo/mergo_test.go @@ -0,0 +1,288 @@ +// Copyright 2013 Dario Castañé. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package mergo + +import ( + "gopkg.in/yaml.v1" + "io/ioutil" + "reflect" + "testing" +) + +type simpleTest struct { + Value int +} + +type complexTest struct { + St simpleTest + sz int + Id string +} + +type moreComplextText struct { + Ct complexTest + St simpleTest + Nt simpleTest +} + +type pointerTest struct { + C *simpleTest +} + +type sliceTest struct { + S []int +} + +func TestNil(t *testing.T) { + if err := Merge(nil, nil); err != ErrNilArguments { + t.Fail() + } +} + +func TestDifferentTypes(t *testing.T) { + a := simpleTest{42} + b := 42 + if err := Merge(&a, b); err != ErrDifferentArgumentsTypes { + t.Fail() + } +} + +func TestSimpleStruct(t *testing.T) { + a := simpleTest{} + b := simpleTest{42} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.Value != 42 { + t.Fatalf("b not merged in a properly: a.Value(%d) != b.Value(%d)", a.Value, b.Value) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestComplexStruct(t *testing.T) { + a := complexTest{} + a.Id = "athing" + b := complexTest{simpleTest{42}, 1, "bthing"} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.St.Value != 42 { + t.Fatalf("b not merged in a properly: a.St.Value(%d) != b.St.Value(%d)", a.St.Value, b.St.Value) + } + if a.sz == 1 { + t.Fatalf("a's private field sz not preserved from merge: a.sz(%d) == b.sz(%d)", a.sz, b.sz) + } + if a.Id != b.Id { + t.Fatalf("a's field Id not merged properly: a.Id(%s) != b.Id(%s)", a.Id, b.Id) + } +} + +func TestPointerStruct(t *testing.T) { + s1 := simpleTest{} + s2 := simpleTest{19} + a := pointerTest{&s1} + b := pointerTest{&s2} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.C.Value != b.C.Value { + //t.Fatalf("b not merged in a properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + } +} + +func TestPointerStructNil(t *testing.T) { + a := pointerTest{nil} + b := pointerTest{&simpleTest{19}} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if a.C.Value != b.C.Value { + t.Fatalf("b not merged in a properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + } +} + +func TestSliceStruct(t *testing.T) { + a := sliceTest{} + b := sliceTest{[]int{1, 2, 3}} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if len(b.S) != 3 { + t.FailNow() + } + if len(a.S) != len(b.S) { + t.Fatalf("b not merged in a properly %d != %d", len(a.S), len(b.S)) + } + + a = sliceTest{[]int{1}} + b = sliceTest{[]int{1, 2, 3}} + if err := Merge(&a, b); err != nil { + t.FailNow() + } + if len(b.S) != 3 { + t.FailNow() + } + if len(a.S) != len(b.S) { + t.Fatalf("b not merged in a properly %d != %d", len(a.S), len(b.S)) + } +} + +func TestMaps(t *testing.T) { + m := map[string]simpleTest{ + "a": simpleTest{}, + "b": simpleTest{42}, + } + n := map[string]simpleTest{ + "a": simpleTest{16}, + "b": simpleTest{}, + "c": simpleTest{12}, + } + if err := Merge(&m, n); err != nil { + t.Fatalf(err.Error()) + } + if len(m) != 3 { + t.Fatalf(`n not merged in m properly, m must have 3 elements instead of %d`, len(m)) + } + if m["a"].Value != 0 { + t.Fatalf(`n merged in m because I solved non-addressable map values TODO: m["a"].Value(%d) != n["a"].Value(%d)`, m["a"].Value, n["a"].Value) + } + if m["b"].Value != 42 { + t.Fatalf(`n wrongly merged in m: m["b"].Value(%d) != n["b"].Value(%d)`, m["b"].Value, n["b"].Value) + } + if m["c"].Value != 12 { + t.Fatalf(`n not merged in m: m["c"].Value(%d) != n["c"].Value(%d)`, m["c"].Value, n["c"].Value) + } +} + +func TestYAMLMaps(t *testing.T) { + thing := loadYAML("testdata/thing.yml") + license := loadYAML("testdata/license.yml") + ft := thing["fields"].(map[interface{}]interface{}) + fl := license["fields"].(map[interface{}]interface{}) + expectedLength := len(ft) + len(fl) + if err := Merge(&license, thing); err != nil { + t.Fatal(err.Error()) + } + currentLength := len(license["fields"].(map[interface{}]interface{})) + if currentLength != expectedLength { + t.Fatalf(`thing not merged in license properly, license must have %d elements instead of %d`, expectedLength, currentLength) + } + fields := license["fields"].(map[interface{}]interface{}) + if _, ok := fields["id"]; !ok { + t.Fatalf(`thing not merged in license properly, license must have a new id field from thing`) + } +} + +func TestTwoPointerValues(t *testing.T) { + a := &simpleTest{} + b := &simpleTest{42} + if err := Merge(a, b); err != nil { + t.Fatalf(`Boom. You crossed the streams: %s`, err) + } +} + +func TestMap(t *testing.T) { + a := complexTest{} + a.Id = "athing" + c := moreComplextText{a, simpleTest{}, simpleTest{}} + b := map[string]interface{}{ + "ct": map[string]interface{}{ + "st": map[string]interface{}{ + "value": 42, + }, + "sz": 1, + "id": "bthing", + }, + "st": &simpleTest{144}, // Mapping a reference + "zt": simpleTest{299}, // Mapping a missing field (zt doesn't exist) + "nt": simpleTest{3}, + } + if err := Map(&c, b); err != nil { + t.FailNow() + } + m := b["ct"].(map[string]interface{}) + n := m["st"].(map[string]interface{}) + o := b["st"].(*simpleTest) + p := b["nt"].(simpleTest) + if c.Ct.St.Value != 42 { + t.Fatalf("b not merged in a properly: c.Ct.St.Value(%d) != b.Ct.St.Value(%d)", c.Ct.St.Value, n["value"]) + } + if c.St.Value != 144 { + t.Fatalf("b not merged in a properly: c.St.Value(%d) != b.St.Value(%d)", c.St.Value, o.Value) + } + if c.Nt.Value != 3 { + t.Fatalf("b not merged in a properly: c.Nt.Value(%d) != b.Nt.Value(%d)", c.St.Value, p.Value) + } + if c.Ct.sz == 1 { + t.Fatalf("a's private field sz not preserved from merge: c.Ct.sz(%d) == b.Ct.sz(%d)", c.Ct.sz, m["sz"]) + } + if c.Ct.Id != m["id"] { + t.Fatalf("a's field Id not merged properly: c.Ct.Id(%s) != b.Ct.Id(%s)", c.Ct.Id, m["id"]) + } +} + +func TestSimpleMap(t *testing.T) { + a := simpleTest{} + b := map[string]interface{}{ + "value": 42, + } + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.Value != 42 { + t.Fatalf("b not merged in a properly: a.Value(%d) != b.Value(%v)", a.Value, b["value"]) + } +} + +type pointerMapTest struct { + A int + hidden int + B *simpleTest +} + +func TestBackAndForth(t *testing.T) { + pt := pointerMapTest{42, 1, &simpleTest{66}} + m := make(map[string]interface{}) + if err := Map(&m, pt); err != nil { + t.FailNow() + } + var ( + v interface{} + ok bool + ) + if v, ok = m["a"]; v.(int) != pt.A || !ok { + t.Fatalf("pt not merged properly: m[`a`](%d) != pt.A(%d)", v, pt.A) + } + if v, ok = m["b"]; !ok { + t.Fatalf("pt not merged properly: B is missing in m") + } + var st *simpleTest + if st = v.(*simpleTest); st.Value != 66 { + t.Fatalf("something went wrong while mapping pt on m, B wasn't copied") + } + bpt := pointerMapTest{} + if err := Map(&bpt, m); err != nil { + t.Fatal(err) + } + if bpt.A != pt.A { + t.Fatalf("pt not merged properly: bpt.A(%d) != pt.A(%d)", bpt.A, pt.A) + } + if bpt.hidden == pt.hidden { + t.Fatalf("pt unexpectedly merged: bpt.hidden(%d) == pt.hidden(%d)", bpt.hidden, pt.hidden) + } + if bpt.B.Value != pt.B.Value { + t.Fatalf("pt not merged properly: bpt.B.Value(%d) != pt.B.Value(%d)", bpt.B.Value, pt.B.Value) + } +} + +func loadYAML(path string) (m map[string]interface{}) { + m = make(map[string]interface{}) + raw, _ := ioutil.ReadFile(path) + _ = yaml.Unmarshal(raw, &m) + return +} diff --git a/vendor/github.com/imdario/mergo/testdata/license.yml b/vendor/github.com/imdario/mergo/testdata/license.yml new file mode 100644 index 00000000..62fdb61e --- /dev/null +++ b/vendor/github.com/imdario/mergo/testdata/license.yml @@ -0,0 +1,3 @@ +import: ../../../../fossene/db/schema/thing.yml +fields: + site: string diff --git a/vendor/github.com/imdario/mergo/testdata/thing.yml b/vendor/github.com/imdario/mergo/testdata/thing.yml new file mode 100644 index 00000000..c28eab0d --- /dev/null +++ b/vendor/github.com/imdario/mergo/testdata/thing.yml @@ -0,0 +1,5 @@ +fields: + id: int + name: string + parent: ref "datu:thing" + status: enum(draft, public, private) diff --git a/vendor/github.com/urfave/negroni/.gitignore b/vendor/github.com/urfave/negroni/.gitignore new file mode 100644 index 00000000..3f2bc474 --- /dev/null +++ b/vendor/github.com/urfave/negroni/.gitignore @@ -0,0 +1 @@ +/coverage.txt diff --git a/vendor/github.com/urfave/negroni/.travis.yml b/vendor/github.com/urfave/negroni/.travis.yml new file mode 100644 index 00000000..c08649fa --- /dev/null +++ b/vendor/github.com/urfave/negroni/.travis.yml @@ -0,0 +1,26 @@ +language: go + +sudo: false +dist: trusty + +go: +- 1.x +- 1.2.x +- 1.3.x +- 1.4.x +- 1.5.x +- 1.6.x +- 1.7.x +- master + +before_install: +- find "${GOPATH%%:*}" -name '*.a' -delete +- rm -rf "${GOPATH%%:*}/src/golang.org" +- go get golang.org/x/tools/cover +- go get golang.org/x/tools/cmd/cover + +script: +- go test -race -coverprofile=coverage.txt -covermode=atomic + +after_success: +- bash <(curl -s "https://codecov.io/bash") diff --git a/vendor/github.com/urfave/negroni/CHANGELOG.md b/vendor/github.com/urfave/negroni/CHANGELOG.md new file mode 100644 index 00000000..1b757d0b --- /dev/null +++ b/vendor/github.com/urfave/negroni/CHANGELOG.md @@ -0,0 +1,37 @@ +# Change Log + +**ATTN**: This project uses [semantic versioning](http://semver.org/). + +## [Unreleased] +### Added +- `Recovery.ErrorHandlerFunc` for custom error handling during recovery +- `With()` helper for building a new `Negroni` struct chaining handlers from + existing `Negroni` structs + +### Fixed +- `Written()` correct returns `false` if no response header has been written + +### Changed +- Set default status to `0` in the case that no handler writes status -- was + previously `200` (in 0.2.0, before that it was `0` so this reestablishes that + behavior) +- Catch `panic`s thrown by callbacks provided to the `Recovery` handler + +## [0.2.0] - 2016-05-10 +### Added +- Support for variadic handlers in `New()` +- Added `Negroni.Handlers()` to fetch all of the handlers for a given chain +- Allowed size in `Recovery` handler was bumped to 8k +- `Negroni.UseFunc` to push another handler onto the chain + +### Changed +- Set the status before calling `beforeFuncs` so the information is available to them +- Set default status to `200` in the case that no handler writes status -- was previously `0` +- Panic if `nil` handler is given to `negroni.Use` + +## 0.1.0 - 2013-07-22 +### Added +- Initial implementation. + +[Unreleased]: https://github.com/urfave/negroni/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/urfave/negroni/compare/v0.1.0...v0.2.0 diff --git a/vendor/github.com/urfave/negroni/LICENSE b/vendor/github.com/urfave/negroni/LICENSE new file mode 100644 index 00000000..08b5e20a --- /dev/null +++ b/vendor/github.com/urfave/negroni/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jeremy Saenz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/urfave/negroni/README.md b/vendor/github.com/urfave/negroni/README.md new file mode 100644 index 00000000..8e8bd2f8 --- /dev/null +++ b/vendor/github.com/urfave/negroni/README.md @@ -0,0 +1,505 @@ +# Negroni +[![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) +[![Build Status](https://travis-ci.org/urfave/negroni.svg?branch=master)](https://travis-ci.org/urfave/negroni) +[![codebeat](https://codebeat.co/badges/47d320b1-209e-45e8-bd99-9094bc5111e2)](https://codebeat.co/projects/github-com-urfave-negroni) +[![codecov](https://codecov.io/gh/urfave/negroni/branch/master/graph/badge.svg)](https://codecov.io/gh/urfave/negroni) + +**Notice:** This is the library formerly known as +`github.com/codegangsta/negroni` -- Github will automatically redirect requests +to this repository, but we recommend updating your references for clarity. + +Negroni is an idiomatic approach to web middleware in Go. It is tiny, +non-intrusive, and encourages use of `net/http` Handlers. + +If you like the idea of [Martini](https://github.com/go-martini/martini), but +you think it contains too much magic, then Negroni is a great fit. + +Language Translations: +* [German (de_DE)](translations/README_de_de.md) +* [Português Brasileiro (pt_BR)](translations/README_pt_br.md) +* [简体中文 (zh_cn)](translations/README_zh_cn.md) +* [ç¹é«”中文 (zh_tw)](translations/README_zh_tw.md) +* [日本語 (ja_JP)](translations/README_ja_JP.md) + +## Getting Started + +After installing Go and setting up your +[GOPATH](http://golang.org/doc/code.html#GOPATH), create your first `.go` file. +We'll call it `server.go`. + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // Includes some default middlewares + n.UseHandler(mux) + + http.ListenAndServe(":3000", n) +} +``` + +Then install the Negroni package (**NOTE**: >= **go 1.1** is required): + +``` +go get github.com/urfave/negroni +``` + +Then run your server: + +``` +go run server.go +``` + +You will now have a Go `net/http` webserver running on `localhost:3000`. + +### Packaging + +If you are on Debian, `negroni` is also available as [a +package](https://packages.debian.org/sid/golang-github-urfave-negroni-dev) that +you can install via `apt install golang-github-urfave-negroni-dev` (at the time +of writing, it is in the `sid` repositories). + +## Is Negroni a Framework? + +Negroni is **not** a framework. It is a middleware-focused library that is +designed to work directly with `net/http`. + +## Routing? + +Negroni is BYOR (Bring your own Router). The Go community already has a number +of great http routers available, and Negroni tries to play well with all of them +by fully supporting `net/http`. For instance, integrating with [Gorilla Mux] +looks like so: + +``` go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// Or use a middleware with the Use() function +n.Use(Middleware3) +// router goes last +n.UseHandler(router) + +http.ListenAndServe(":3001", n) +``` + +## `negroni.Classic()` + +`negroni.Classic()` provides some default middleware that is useful for most +applications: + +* [`negroni.Recovery`](#recovery) - Panic Recovery Middleware. +* [`negroni.Logger`](#logger) - Request/Response Logger Middleware. +* [`negroni.Static`](#static) - Static File serving under the "public" + directory. + +This makes it really easy to get started with some useful features from Negroni. + +## Handlers + +Negroni provides a bidirectional middleware flow. This is done through the +`negroni.Handler` interface: + +``` go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +``` + +If a middleware hasn't already written to the `ResponseWriter`, it should call +the next `http.HandlerFunc` in the chain to yield to the next middleware +handler. This can be used for great good: + +``` go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // do some stuff before + next(rw, r) + // do some stuff after +} +``` + +And you can map it to the handler chain with the `Use` function: + +``` go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +``` + +You can also map plain old `http.Handler`s: + +``` go +n := negroni.New() + +mux := http.NewServeMux() +// map your routes + +n.UseHandler(mux) + +http.ListenAndServe(":3000", n) +``` + +## `With()` + +Negroni has a convenience function called `With`. `With` takes one or more +`Handler` instances and returns a new `Negroni` with the combination of the +receiver's handlers and the new handlers. + +```go +// middleware we want to reuse +common := negroni.New() +common.Use(MyMiddleware1) +common.Use(MyMiddleware2) + +// `specific` is a new negroni with the handlers from `common` combined with the +// the handlers passed in +specific := common.With( + SpecificMiddleware1, + SpecificMiddleware2 +) +``` + +## `Run()` + +Negroni has a convenience function called `Run`. `Run` takes an addr string +identical to [`http.ListenAndServe`](https://godoc.org/net/http#ListenAndServe). + + +``` go +package main + +import ( + "github.com/urfave/negroni" +) + +func main() { + n := negroni.Classic() + n.Run(":8080") +} +``` +If no address is provided, the `PORT` environment variable is used instead. +If the `PORT`environment variable is not defined, the default address will be used. +See [Run](https://godoc.org/github.com/urfave/negroni#Negroni.Run) for a complete description. + +In general, you will want to use `net/http` methods and pass `negroni` as a +`Handler`, as this is more flexible, e.g.: + + +``` go +package main + +import ( + "fmt" + "log" + "net/http" + "time" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // Includes some default middlewares + n.UseHandler(mux) + + s := &http.Server{ + Addr: ":8080", + Handler: n, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + MaxHeaderBytes: 1 << 20, + } + log.Fatal(s.ListenAndServe()) +} +``` + +## Route Specific Middleware + +If you have a route group of routes that need specific middleware to be +executed, you can simply create a new Negroni instance and use it as your route +handler. + +``` go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// add admin routes here + +// Create a new negroni for the admin middleware +router.PathPrefix("/admin").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +``` + +If you are using [Gorilla Mux], here is an example using a subrouter: + +``` go +router := mux.NewRouter() +subRouter := mux.NewRouter().PathPrefix("/subpath").Subrouter().StrictSlash(true) +subRouter.HandleFunc("/", someSubpathHandler) // "/subpath/" +subRouter.HandleFunc("/:id", someSubpathHandler) // "/subpath/:id" + +// "/subpath" is necessary to ensure the subRouter and main router linkup +router.PathPrefix("/subpath").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(subRouter), +)) +``` + +`With()` can be used to eliminate redundancy for middlewares shared across +routes. + +``` go +router := mux.NewRouter() +apiRoutes := mux.NewRouter() +// add api routes here +webRoutes := mux.NewRouter() +// add web routes here + +// create common middleware to be shared across routes +common := negroni.New( + Middleware1, + Middleware2, +) + +// create a new negroni for the api middleware +// using the common middleware as a base +router.PathPrefix("/api").Handler(common.With( + APIMiddleware1, + negroni.Wrap(apiRoutes), +)) +// create a new negroni for the web middleware +// using the common middleware as a base +router.PathPrefix("/web").Handler(common.With( + WebMiddleware1, + negroni.Wrap(webRoutes), +)) +``` + +## Bundled Middleware + +### Static + +This middleware will serve files on the filesystem. If the files do not exist, +it proxies the request to the next middleware. If you want the requests for +non-existent files to return a `404 File Not Found` to the user you should look +at using [http.FileServer](https://golang.org/pkg/net/http/#FileServer) as +a handler. + +Example: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + // Example of using a http.FileServer if you want "server-like" rather than "middleware" behavior + // mux.Handle("/public", http.FileServer(http.Dir("/home/public"))) + + n := negroni.New() + n.Use(negroni.NewStatic(http.Dir("/tmp"))) + n.UseHandler(mux) + + http.ListenAndServe(":3002", n) +} +``` + +Will serve files from the `/tmp` directory first, but proxy calls to the next +handler if the request does not match a file on the filesystem. + +### Recovery + +This middleware catches `panic`s and responds with a `500` response code. If +any other middleware has written a response code or body, this middleware will +fail to properly send a 500 to the client, as the client has already received +the HTTP response code. Additionally, an `ErrorHandlerFunc` can be attached +to report 500's to an error reporting service such as Sentry or Airbrake. + +Example: + + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + n.Use(negroni.NewRecovery()) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} +``` + +Will return a `500 Internal Server Error` to each request. It will also log the +stack traces as well as print the stack trace to the requester if `PrintStack` +is set to `true` (the default). + +Example with error handler: + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + recovery := negroni.NewRecovery() + recovery.ErrorHandlerFunc = reportToSentry + n.Use(recovery) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} + +func reportToSentry(error interface{}) { + // write code here to report error to Sentry +} +``` + + +## Logger + +This middleware logs each incoming request and response. + +Example: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.New() + n.Use(negroni.NewLogger()) + n.UseHandler(mux) + + http.ListenAndServe(":3004", n) +} +``` + +Will print a log similar to: + +``` +[negroni] Started GET / +[negroni] Completed 200 OK in 145.446µs +``` + +on each request. + +## Third Party Middleware + +Here is a current list of Negroni compatible middlware. Feel free to put up a PR +linking your middleware if you have built one: + +| Middleware | Author | Description | +| -----------|--------|-------------| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | Data binding from HTTP requests into structs | +| [cloudwatch](https://github.com/cvillecsteele/negroni-cloudwatch) | [Colin Steele](https://github.com/cvillecsteele) | AWS cloudwatch metrics middleware | +| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | [Cross Origin Resource Sharing](http://www.w3.org/TR/cors/) (CORS) support | +| [csp](https://github.com/awakenetworks/csp) | [Awake Networks](https://github.com/awakenetworks) | [Content Security Policy](https://www.w3.org/TR/CSP2/) (CSP) support | +| [delay](https://github.com/jeffbmartinez/delay) | [Jeff Martinez](https://github.com/jeffbmartinez) | Add delays/latency to endpoints. Useful when testing effects of high latency | +| [New Relic Go Agent](https://github.com/yadvendar/negroni-newrelic-go-agent) | [Yadvendar Champawat](https://github.com/yadvendar) | Official [New Relic Go Agent](https://github.com/newrelic/go-agent) (currently in beta) | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic agent for Go runtime | +| [Graceful](https://github.com/tylerb/graceful) | [Tyler Bunnell](https://github.com/tylerb) | Graceful HTTP Shutdown | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | GZIP response compression | +| [JWT Middleware](https://github.com/auth0/go-jwt-middleware) | [Auth0](https://github.com/auth0) | Middleware checks for a JWT on the `Authorization` header on incoming requests and decodes it| +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | Logrus-based logger | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | oAuth2 middleware | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | Generate TinySVG, HTML and CSS on the fly | +| [permissions2](https://github.com/xyproto/permissions2) | [Alexander Rødseth](https://github.com/xyproto) | Cookies, users and permissions | +| [prometheus](https://github.com/zbindenren/negroni-prometheus) | [Rene Zbinden](https://github.com/zbindenren) | Easily create metrics endpoint for the [prometheus](http://prometheus.io) instrumentation tool | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | Render JSON, XML and HTML templates | +| [RestGate](https://github.com/pjebs/restgate) | [Prasanga Siripala](https://github.com/pjebs) | Secure authentication for REST API endpoints | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | Middleware that implements a few quick security wins | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Session Management | +| [stats](https://github.com/thoas/stats) | [Florent Messa](https://github.com/thoas) | Store information about your web application (response time, etc.) | +| [VanGoH](https://github.com/auroratechnologies/vangoh) | [Taylor Wrobel](https://github.com/twrobel3) | Configurable [AWS-Style](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) HMAC authentication middleware | +| [xrequestid](https://github.com/pilu/xrequestid) | [Andrea Franz](https://github.com/pilu) | Middleware that assigns a random X-Request-Id header to each request | +| [mgo session](https://github.com/joeljames/nigroni-mgo-session) | [Joel James](https://github.com/joeljames) | Middleware that handles creating and closing mgo sessions per request | +| [digits](https://github.com/bamarni/digits) | [Bilal Amarni](https://github.com/bamarni) | Middleware that handles [Twitter Digits](https://get.digits.com/) authentication | + +## Examples + +[Alexander Rødseth](https://github.com/xyproto) created +[mooseware](https://github.com/xyproto/mooseware), a skeleton for writing a +Negroni middleware handler. + +## Live code reload? + +[gin](https://github.com/codegangsta/gin) and +[fresh](https://github.com/pilu/fresh) both live reload negroni apps. + +## Essential Reading for Beginners of Go & Negroni + +* [Using a Context to pass information from middleware to end handler](http://elithrar.github.io/article/map-string-interface/) +* [Understanding middleware](https://mattstauffer.co/blog/laravel-5.0-middleware-filter-style) + +## About + +Negroni is obsessively designed by none other than the [Code +Gangsta](https://codegangsta.io/) + +[Gorilla Mux]: https://github.com/gorilla/mux +[`http.FileSystem`]: https://godoc.org/net/http#FileSystem diff --git a/vendor/github.com/urfave/negroni/doc.go b/vendor/github.com/urfave/negroni/doc.go new file mode 100644 index 00000000..add1ed9f --- /dev/null +++ b/vendor/github.com/urfave/negroni/doc.go @@ -0,0 +1,25 @@ +// Package negroni is an idiomatic approach to web middleware in Go. It is tiny, non-intrusive, and encourages use of net/http Handlers. +// +// If you like the idea of Martini, but you think it contains too much magic, then Negroni is a great fit. +// +// For a full guide visit http://github.com/urfave/negroni +// +// package main +// +// import ( +// "github.com/urfave/negroni" +// "net/http" +// "fmt" +// ) +// +// func main() { +// mux := http.NewServeMux() +// mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { +// fmt.Fprintf(w, "Welcome to the home page!") +// }) +// +// n := negroni.Classic() +// n.UseHandler(mux) +// n.Run(":3000") +// } +package negroni diff --git a/vendor/github.com/urfave/negroni/logger.go b/vendor/github.com/urfave/negroni/logger.go new file mode 100644 index 00000000..032909f5 --- /dev/null +++ b/vendor/github.com/urfave/negroni/logger.go @@ -0,0 +1,80 @@ +package negroni + +import ( + "bytes" + + "log" + "net/http" + "os" + "text/template" + "time" +) + +// LoggerEntry is the structure +// passed to the template. +type LoggerEntry struct { + StartTime string + Status int + Duration time.Duration + Hostname string + Method string + Path string +} + +// LoggerDefaultFormat is the format +// logged used by the default Logger instance. +var LoggerDefaultFormat = "{{.StartTime}} | {{.Status}} | \t {{.Duration}} | {{.Hostname}} | {{.Method}} {{.Path}} \n" + +// LoggerDefaultDateFormat is the +// format used for date by the +// default Logger instance. +var LoggerDefaultDateFormat = time.RFC3339 + +// ALogger interface +type ALogger interface { + Println(v ...interface{}) + Printf(format string, v ...interface{}) +} + +// Logger is a middleware handler that logs the request as it goes in and the response as it goes out. +type Logger struct { + // ALogger implements just enough log.Logger interface to be compatible with other implementations + ALogger + dateFormat string + template *template.Template +} + +// NewLogger returns a new Logger instance +func NewLogger() *Logger { + logger := &Logger{ALogger: log.New(os.Stdout, "[negroni] ", 0), dateFormat: LoggerDefaultDateFormat} + logger.SetFormat(LoggerDefaultFormat) + return logger +} + +func (l *Logger) SetFormat(format string) { + l.template = template.Must(template.New("negroni_parser").Parse(format)) +} + +func (l *Logger) SetDateFormat(format string) { + l.dateFormat = format +} + +func (l *Logger) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + start := time.Now() + + next(rw, r) + + res := rw.(ResponseWriter) + log := LoggerEntry{ + StartTime: start.Format(l.dateFormat), + Status: res.Status(), + Duration: time.Since(start), + Hostname: r.Host, + Method: r.Method, + Path: r.URL.Path, + } + + buff := &bytes.Buffer{} + l.template.Execute(buff, log) + l.Printf(buff.String()) +} diff --git a/vendor/github.com/urfave/negroni/logger_test.go b/vendor/github.com/urfave/negroni/logger_test.go new file mode 100644 index 00000000..76b52c31 --- /dev/null +++ b/vendor/github.com/urfave/negroni/logger_test.go @@ -0,0 +1,33 @@ +package negroni + +import ( + "bytes" + "log" + "net/http" + "net/http/httptest" + "testing" +) + +func Test_Logger(t *testing.T) { + buff := bytes.NewBufferString("") + recorder := httptest.NewRecorder() + + l := NewLogger() + l.ALogger = log.New(buff, "[negroni] ", 0) + + n := New() + // replace log for testing + n.Use(l) + n.UseHandler(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { + rw.WriteHeader(http.StatusNotFound) + })) + + req, err := http.NewRequest("GET", "http://localhost:3000/foobar", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(recorder, req) + expect(t, recorder.Code, http.StatusNotFound) + refute(t, len(buff.String()), 0) +} diff --git a/vendor/github.com/urfave/negroni/negroni.go b/vendor/github.com/urfave/negroni/negroni.go new file mode 100644 index 00000000..963a28ba --- /dev/null +++ b/vendor/github.com/urfave/negroni/negroni.go @@ -0,0 +1,159 @@ +package negroni + +import ( + "log" + "net/http" + "os" +) + +const ( + // DefaultAddress is used if no other is specified. + DefaultAddress = ":8080" +) + +// Handler handler is an interface that objects can implement to be registered to serve as middleware +// in the Negroni middleware stack. +// ServeHTTP should yield to the next middleware in the chain by invoking the next http.HandlerFunc +// passed in. +// +// If the Handler writes to the ResponseWriter, the next http.HandlerFunc should not be invoked. +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} + +// HandlerFunc is an adapter to allow the use of ordinary functions as Negroni handlers. +// If f is a function with the appropriate signature, HandlerFunc(f) is a Handler object that calls f. +type HandlerFunc func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) + +func (h HandlerFunc) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + h(rw, r, next) +} + +type middleware struct { + handler Handler + next *middleware +} + +func (m middleware) ServeHTTP(rw http.ResponseWriter, r *http.Request) { + m.handler.ServeHTTP(rw, r, m.next.ServeHTTP) +} + +// Wrap converts a http.Handler into a negroni.Handler so it can be used as a Negroni +// middleware. The next http.HandlerFunc is automatically called after the Handler +// is executed. +func Wrap(handler http.Handler) Handler { + return HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + handler.ServeHTTP(rw, r) + next(rw, r) + }) +} + +// Negroni is a stack of Middleware Handlers that can be invoked as an http.Handler. +// Negroni middleware is evaluated in the order that they are added to the stack using +// the Use and UseHandler methods. +type Negroni struct { + middleware middleware + handlers []Handler +} + +// New returns a new Negroni instance with no middleware preconfigured. +func New(handlers ...Handler) *Negroni { + return &Negroni{ + handlers: handlers, + middleware: build(handlers), + } +} + +// With returns a new Negroni instance that is a combination of the negroni +// receiver's handlers and the provided handlers. +func (n *Negroni) With(handlers ...Handler) *Negroni { + return New( + append(n.handlers, handlers...)..., + ) +} + +// Classic returns a new Negroni instance with the default middleware already +// in the stack. +// +// Recovery - Panic Recovery Middleware +// Logger - Request/Response Logging +// Static - Static File Serving +func Classic() *Negroni { + return New(NewRecovery(), NewLogger(), NewStatic(http.Dir("public"))) +} + +func (n *Negroni) ServeHTTP(rw http.ResponseWriter, r *http.Request) { + n.middleware.ServeHTTP(NewResponseWriter(rw), r) +} + +// Use adds a Handler onto the middleware stack. Handlers are invoked in the order they are added to a Negroni. +func (n *Negroni) Use(handler Handler) { + if handler == nil { + panic("handler cannot be nil") + } + + n.handlers = append(n.handlers, handler) + n.middleware = build(n.handlers) +} + +// UseFunc adds a Negroni-style handler function onto the middleware stack. +func (n *Negroni) UseFunc(handlerFunc func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)) { + n.Use(HandlerFunc(handlerFunc)) +} + +// UseHandler adds a http.Handler onto the middleware stack. Handlers are invoked in the order they are added to a Negroni. +func (n *Negroni) UseHandler(handler http.Handler) { + n.Use(Wrap(handler)) +} + +// UseHandler adds a http.HandlerFunc-style handler function onto the middleware stack. +func (n *Negroni) UseHandlerFunc(handlerFunc func(rw http.ResponseWriter, r *http.Request)) { + n.UseHandler(http.HandlerFunc(handlerFunc)) +} + +// Run is a convenience function that runs the negroni stack as an HTTP +// server. The addr string, if provided, takes the same format as http.ListenAndServe. +// If no address is provided but the PORT environment variable is set, the PORT value is used. +// If neither is provided, the address' value will equal the DefaultAddress constant. +func (n *Negroni) Run(addr ...string) { + l := log.New(os.Stdout, "[negroni] ", 0) + finalAddr := detectAddress(addr...) + l.Printf("listening on %s", finalAddr) + l.Fatal(http.ListenAndServe(finalAddr, n)) +} + +func detectAddress(addr ...string) string { + if len(addr) > 0 { + return addr[0] + } + if port := os.Getenv("PORT"); port != "" { + return ":" + port + } + return DefaultAddress +} + +// Returns a list of all the handlers in the current Negroni middleware chain. +func (n *Negroni) Handlers() []Handler { + return n.handlers +} + +func build(handlers []Handler) middleware { + var next middleware + + if len(handlers) == 0 { + return voidMiddleware() + } else if len(handlers) > 1 { + next = build(handlers[1:]) + } else { + next = voidMiddleware() + } + + return middleware{handlers[0], &next} +} + +func voidMiddleware() middleware { + return middleware{ + HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) {}), + &middleware{}, + } +} diff --git a/vendor/github.com/urfave/negroni/negroni_test.go b/vendor/github.com/urfave/negroni/negroni_test.go new file mode 100644 index 00000000..bd2d311f --- /dev/null +++ b/vendor/github.com/urfave/negroni/negroni_test.go @@ -0,0 +1,136 @@ +package negroni + +import ( + "net/http" + "net/http/httptest" + "os" + "reflect" + "testing" +) + +/* Test Helpers */ +func expect(t *testing.T, a interface{}, b interface{}) { + if a != b { + t.Errorf("Expected %v (type %v) - Got %v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} + +func refute(t *testing.T, a interface{}, b interface{}) { + if a == b { + t.Errorf("Did not expect %v (type %v) - Got %v (type %v)", b, reflect.TypeOf(b), a, reflect.TypeOf(a)) + } +} + +func TestNegroniRun(t *testing.T) { + // just test that Run doesn't bomb + go New().Run(":3000") +} + +func TestNegroniWith(t *testing.T) { + result := "" + response := httptest.NewRecorder() + + n1 := New() + n1.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result = "one" + next(rw, r) + })) + n1.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result += "two" + next(rw, r) + })) + + n1.ServeHTTP(response, (*http.Request)(nil)) + expect(t, 2, len(n1.Handlers())) + expect(t, result, "onetwo") + + n2 := n1.With(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result += "three" + next(rw, r) + })) + + // Verify that n1 was left intact and not modified. + n1.ServeHTTP(response, (*http.Request)(nil)) + expect(t, 2, len(n1.Handlers())) + expect(t, result, "onetwo") + + n2.ServeHTTP(response, (*http.Request)(nil)) + expect(t, 3, len(n2.Handlers())) + expect(t, result, "onetwothree") +} + +func TestNegroniServeHTTP(t *testing.T) { + result := "" + response := httptest.NewRecorder() + + n := New() + n.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result += "foo" + next(rw, r) + result += "ban" + })) + n.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result += "bar" + next(rw, r) + result += "baz" + })) + n.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + result += "bat" + rw.WriteHeader(http.StatusBadRequest) + })) + + n.ServeHTTP(response, (*http.Request)(nil)) + + expect(t, result, "foobarbatbazban") + expect(t, response.Code, http.StatusBadRequest) +} + +// Ensures that a Negroni middleware chain +// can correctly return all of its handlers. +func TestHandlers(t *testing.T) { + response := httptest.NewRecorder() + n := New() + handlers := n.Handlers() + expect(t, 0, len(handlers)) + + n.Use(HandlerFunc(func(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + rw.WriteHeader(http.StatusOK) + })) + + // Expects the length of handlers to be exactly 1 + // after adding exactly one handler to the middleware chain + handlers = n.Handlers() + expect(t, 1, len(handlers)) + + // Ensures that the first handler that is in sequence behaves + // exactly the same as the one that was registered earlier + handlers[0].ServeHTTP(response, (*http.Request)(nil), nil) + expect(t, response.Code, http.StatusOK) +} + +func TestNegroni_Use_Nil(t *testing.T) { + defer func() { + err := recover() + if err == nil { + t.Errorf("Expected negroni.Use(nil) to panic, but it did not") + } + }() + + n := New() + n.Use(nil) +} + +func TestDetectAddress(t *testing.T) { + if detectAddress() != DefaultAddress { + t.Error("Expected the DefaultAddress") + } + + if detectAddress(":6060") != ":6060" { + t.Error("Expected the provided address") + } + + os.Setenv("PORT", "8080") + if detectAddress() != ":8080" { + t.Error("Expected the PORT env var with a prefixed colon") + } +} diff --git a/vendor/github.com/urfave/negroni/recovery.go b/vendor/github.com/urfave/negroni/recovery.go new file mode 100644 index 00000000..8396cb1e --- /dev/null +++ b/vendor/github.com/urfave/negroni/recovery.go @@ -0,0 +1,65 @@ +package negroni + +import ( + "fmt" + "log" + "net/http" + "os" + "runtime" + "runtime/debug" +) + +// Recovery is a Negroni middleware that recovers from any panics and writes a 500 if there was one. +type Recovery struct { + Logger ALogger + PrintStack bool + ErrorHandlerFunc func(interface{}) + StackAll bool + StackSize int +} + +// NewRecovery returns a new instance of Recovery +func NewRecovery() *Recovery { + return &Recovery{ + Logger: log.New(os.Stdout, "[negroni] ", 0), + PrintStack: true, + StackAll: false, + StackSize: 1024 * 8, + } +} + +func (rec *Recovery) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + defer func() { + if err := recover(); err != nil { + if rw.Header().Get("Content-Type") == "" { + rw.Header().Set("Content-Type", "text/plain; charset=utf-8") + } + + rw.WriteHeader(http.StatusInternalServerError) + + stack := make([]byte, rec.StackSize) + stack = stack[:runtime.Stack(stack, rec.StackAll)] + + f := "PANIC: %s\n%s" + rec.Logger.Printf(f, err, stack) + + if rec.PrintStack { + fmt.Fprintf(rw, f, err, stack) + } + + if rec.ErrorHandlerFunc != nil { + func() { + defer func() { + if err := recover(); err != nil { + rec.Logger.Printf("provided ErrorHandlerFunc panic'd: %s, trace:\n%s", err, debug.Stack()) + rec.Logger.Printf("%s\n", debug.Stack()) + } + }() + rec.ErrorHandlerFunc(err) + }() + } + } + }() + + next(rw, r) +} diff --git a/vendor/github.com/urfave/negroni/recovery_test.go b/vendor/github.com/urfave/negroni/recovery_test.go new file mode 100644 index 00000000..3fc0ed8a --- /dev/null +++ b/vendor/github.com/urfave/negroni/recovery_test.go @@ -0,0 +1,71 @@ +package negroni + +import ( + "bytes" + "log" + "net/http" + "net/http/httptest" + "strings" + "testing" +) + +func TestRecovery(t *testing.T) { + buff := bytes.NewBufferString("") + recorder := httptest.NewRecorder() + handlerCalled := false + + rec := NewRecovery() + rec.Logger = log.New(buff, "[negroni] ", 0) + rec.ErrorHandlerFunc = func(i interface{}) { + handlerCalled = true + } + + n := New() + // replace log for testing + n.Use(rec) + n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { + panic("here is a panic!") + })) + n.ServeHTTP(recorder, (*http.Request)(nil)) + expect(t, recorder.Header().Get("Content-Type"), "text/plain; charset=utf-8") + expect(t, recorder.Code, http.StatusInternalServerError) + expect(t, handlerCalled, true) + refute(t, recorder.Body.Len(), 0) + refute(t, len(buff.String()), 0) +} + +func TestRecovery_noContentTypeOverwrite(t *testing.T) { + recorder := httptest.NewRecorder() + + rec := NewRecovery() + rec.Logger = log.New(bytes.NewBuffer([]byte{}), "[negroni] ", 0) + + n := New() + n.Use(rec) + n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { + res.Header().Set("Content-Type", "application/javascript; charset=utf-8") + panic("here is a panic!") + })) + n.ServeHTTP(recorder, (*http.Request)(nil)) + expect(t, recorder.Header().Get("Content-Type"), "application/javascript; charset=utf-8") +} + +func TestRecovery_callbackPanic(t *testing.T) { + buff := bytes.NewBufferString("") + recorder := httptest.NewRecorder() + + rec := NewRecovery() + rec.Logger = log.New(buff, "[negroni] ", 0) + rec.ErrorHandlerFunc = func(i interface{}) { + panic("callback panic") + } + + n := New() + n.Use(rec) + n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { + panic("here is a panic!") + })) + n.ServeHTTP(recorder, (*http.Request)(nil)) + + expect(t, strings.Contains(buff.String(), "callback panic"), true) +} diff --git a/vendor/github.com/urfave/negroni/response_writer.go b/vendor/github.com/urfave/negroni/response_writer.go new file mode 100644 index 00000000..bfb83a6e --- /dev/null +++ b/vendor/github.com/urfave/negroni/response_writer.go @@ -0,0 +1,113 @@ +package negroni + +import ( + "bufio" + "fmt" + "net" + "net/http" +) + +// ResponseWriter is a wrapper around http.ResponseWriter that provides extra information about +// the response. It is recommended that middleware handlers use this construct to wrap a responsewriter +// if the functionality calls for it. +type ResponseWriter interface { + http.ResponseWriter + http.Flusher + // Status returns the status code of the response or 200 if the response has + // not been written (as this is the default response code in net/http) + Status() int + // Written returns whether or not the ResponseWriter has been written. + Written() bool + // Size returns the size of the response body. + Size() int + // Before allows for a function to be called before the ResponseWriter has been written to. This is + // useful for setting headers or any other operations that must happen before a response has been written. + Before(func(ResponseWriter)) +} + +type beforeFunc func(ResponseWriter) + +// NewResponseWriter creates a ResponseWriter that wraps an http.ResponseWriter +func NewResponseWriter(rw http.ResponseWriter) ResponseWriter { + nrw := &responseWriter{ + ResponseWriter: rw, + } + + if _, ok := rw.(http.CloseNotifier); ok { + return &responseWriterCloseNotifer{nrw} + } + + return nrw +} + +type responseWriter struct { + http.ResponseWriter + status int + size int + beforeFuncs []beforeFunc +} + +func (rw *responseWriter) WriteHeader(s int) { + rw.status = s + rw.callBefore() + rw.ResponseWriter.WriteHeader(s) +} + +func (rw *responseWriter) Write(b []byte) (int, error) { + if !rw.Written() { + // The status will be StatusOK if WriteHeader has not been called yet + rw.WriteHeader(http.StatusOK) + } + size, err := rw.ResponseWriter.Write(b) + rw.size += size + return size, err +} + +func (rw *responseWriter) Status() int { + return rw.status +} + +func (rw *responseWriter) Size() int { + return rw.size +} + +func (rw *responseWriter) Written() bool { + return rw.status != 0 +} + +func (rw *responseWriter) Before(before func(ResponseWriter)) { + rw.beforeFuncs = append(rw.beforeFuncs, before) +} + +func (rw *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { + hijacker, ok := rw.ResponseWriter.(http.Hijacker) + if !ok { + return nil, nil, fmt.Errorf("the ResponseWriter doesn't support the Hijacker interface") + } + return hijacker.Hijack() +} + +func (rw *responseWriter) callBefore() { + for i := len(rw.beforeFuncs) - 1; i >= 0; i-- { + rw.beforeFuncs[i](rw) + } +} + +func (rw *responseWriter) Flush() { + flusher, ok := rw.ResponseWriter.(http.Flusher) + if ok { + if !rw.Written() { + // The status will be StatusOK if WriteHeader has not been called yet + rw.WriteHeader(http.StatusOK) + } + flusher.Flush() + } +} + +type responseWriterCloseNotifer struct { + *responseWriter +} + +func (rw *responseWriterCloseNotifer) CloseNotify() <-chan bool { + return rw.ResponseWriter.(http.CloseNotifier).CloseNotify() +} diff --git a/vendor/github.com/urfave/negroni/response_writer_test.go b/vendor/github.com/urfave/negroni/response_writer_test.go new file mode 100644 index 00000000..46dea61e --- /dev/null +++ b/vendor/github.com/urfave/negroni/response_writer_test.go @@ -0,0 +1,187 @@ +package negroni + +import ( + "bufio" + "net" + "net/http" + "net/http/httptest" + "testing" + "time" +) + +type closeNotifyingRecorder struct { + *httptest.ResponseRecorder + closed chan bool +} + +func newCloseNotifyingRecorder() *closeNotifyingRecorder { + return &closeNotifyingRecorder{ + httptest.NewRecorder(), + make(chan bool, 1), + } +} + +func (c *closeNotifyingRecorder) close() { + c.closed <- true +} + +func (c *closeNotifyingRecorder) CloseNotify() <-chan bool { + return c.closed +} + +type hijackableResponse struct { + Hijacked bool +} + +func newHijackableResponse() *hijackableResponse { + return &hijackableResponse{} +} + +func (h *hijackableResponse) Header() http.Header { return nil } +func (h *hijackableResponse) Write(buf []byte) (int, error) { return 0, nil } +func (h *hijackableResponse) WriteHeader(code int) {} +func (h *hijackableResponse) Flush() {} +func (h *hijackableResponse) Hijack() (net.Conn, *bufio.ReadWriter, error) { + h.Hijacked = true + return nil, nil, nil +} + +func TestResponseWriterBeforeWrite(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + expect(t, rw.Status(), 0) + expect(t, rw.Written(), false) +} + +func TestResponseWriterBeforeFuncHasAccessToStatus(t *testing.T) { + var status int + + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + rw.Before(func(w ResponseWriter) { + status = w.Status() + }) + rw.WriteHeader(http.StatusCreated) + + expect(t, status, http.StatusCreated) +} + +func TestResponseWriterWritingString(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + rw.Write([]byte("Hello world")) + + expect(t, rec.Code, rw.Status()) + expect(t, rec.Body.String(), "Hello world") + expect(t, rw.Status(), http.StatusOK) + expect(t, rw.Size(), 11) + expect(t, rw.Written(), true) +} + +func TestResponseWriterWritingStrings(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + rw.Write([]byte("Hello world")) + rw.Write([]byte("foo bar bat baz")) + + expect(t, rec.Code, rw.Status()) + expect(t, rec.Body.String(), "Hello worldfoo bar bat baz") + expect(t, rw.Status(), http.StatusOK) + expect(t, rw.Size(), 26) +} + +func TestResponseWriterWritingHeader(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + rw.WriteHeader(http.StatusNotFound) + + expect(t, rec.Code, rw.Status()) + expect(t, rec.Body.String(), "") + expect(t, rw.Status(), http.StatusNotFound) + expect(t, rw.Size(), 0) +} + +func TestResponseWriterBefore(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + result := "" + + rw.Before(func(ResponseWriter) { + result += "foo" + }) + rw.Before(func(ResponseWriter) { + result += "bar" + }) + + rw.WriteHeader(http.StatusNotFound) + + expect(t, rec.Code, rw.Status()) + expect(t, rec.Body.String(), "") + expect(t, rw.Status(), http.StatusNotFound) + expect(t, rw.Size(), 0) + expect(t, result, "barfoo") +} + +func TestResponseWriterHijack(t *testing.T) { + hijackable := newHijackableResponse() + rw := NewResponseWriter(hijackable) + hijacker, ok := rw.(http.Hijacker) + expect(t, ok, true) + _, _, err := hijacker.Hijack() + if err != nil { + t.Error(err) + } + expect(t, hijackable.Hijacked, true) +} + +func TestResponseWriteHijackNotOK(t *testing.T) { + hijackable := new(http.ResponseWriter) + rw := NewResponseWriter(*hijackable) + hijacker, ok := rw.(http.Hijacker) + expect(t, ok, true) + _, _, err := hijacker.Hijack() + + refute(t, err, nil) +} + +func TestResponseWriterCloseNotify(t *testing.T) { + rec := newCloseNotifyingRecorder() + rw := NewResponseWriter(rec) + closed := false + notifier := rw.(http.CloseNotifier).CloseNotify() + rec.close() + select { + case <-notifier: + closed = true + case <-time.After(time.Second): + } + expect(t, closed, true) +} + +func TestResponseWriterNonCloseNotify(t *testing.T) { + rw := NewResponseWriter(httptest.NewRecorder()) + _, ok := rw.(http.CloseNotifier) + expect(t, ok, false) +} + +func TestResponseWriterFlusher(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + _, ok := rw.(http.Flusher) + expect(t, ok, true) +} + +func TestResponseWriter_Flush_marksWritten(t *testing.T) { + rec := httptest.NewRecorder() + rw := NewResponseWriter(rec) + + rw.Flush() + expect(t, rw.Status(), http.StatusOK) + expect(t, rw.Written(), true) +} diff --git a/vendor/github.com/urfave/negroni/static.go b/vendor/github.com/urfave/negroni/static.go new file mode 100644 index 00000000..34be967c --- /dev/null +++ b/vendor/github.com/urfave/negroni/static.go @@ -0,0 +1,88 @@ +package negroni + +import ( + "net/http" + "path" + "strings" +) + +// Static is a middleware handler that serves static files in the given +// directory/filesystem. If the file does not exist on the filesystem, it +// passes along to the next middleware in the chain. If you desire "fileserver" +// type behavior where it returns a 404 for unfound files, you should consider +// using http.FileServer from the Go stdlib. +type Static struct { + // Dir is the directory to serve static files from + Dir http.FileSystem + // Prefix is the optional prefix used to serve the static directory content + Prefix string + // IndexFile defines which file to serve as index if it exists. + IndexFile string +} + +// NewStatic returns a new instance of Static +func NewStatic(directory http.FileSystem) *Static { + return &Static{ + Dir: directory, + Prefix: "", + IndexFile: "index.html", + } +} + +func (s *Static) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + if r.Method != "GET" && r.Method != "HEAD" { + next(rw, r) + return + } + file := r.URL.Path + // if we have a prefix, filter requests by stripping the prefix + if s.Prefix != "" { + if !strings.HasPrefix(file, s.Prefix) { + next(rw, r) + return + } + file = file[len(s.Prefix):] + if file != "" && file[0] != '/' { + next(rw, r) + return + } + } + f, err := s.Dir.Open(file) + if err != nil { + // discard the error? + next(rw, r) + return + } + defer f.Close() + + fi, err := f.Stat() + if err != nil { + next(rw, r) + return + } + + // try to serve index file + if fi.IsDir() { + // redirect if missing trailing slash + if !strings.HasSuffix(r.URL.Path, "/") { + http.Redirect(rw, r, r.URL.Path+"/", http.StatusFound) + return + } + + file = path.Join(file, s.IndexFile) + f, err = s.Dir.Open(file) + if err != nil { + next(rw, r) + return + } + defer f.Close() + + fi, err = f.Stat() + if err != nil || fi.IsDir() { + next(rw, r) + return + } + } + + http.ServeContent(rw, r, file, fi.ModTime(), f) +} diff --git a/vendor/github.com/urfave/negroni/static_test.go b/vendor/github.com/urfave/negroni/static_test.go new file mode 100644 index 00000000..637cfcd6 --- /dev/null +++ b/vendor/github.com/urfave/negroni/static_test.go @@ -0,0 +1,113 @@ +package negroni + +import ( + "bytes" + "net/http" + "net/http/httptest" + "testing" +) + +func TestStatic(t *testing.T) { + response := httptest.NewRecorder() + response.Body = new(bytes.Buffer) + + n := New() + n.Use(NewStatic(http.Dir("."))) + + req, err := http.NewRequest("GET", "http://localhost:3000/negroni.go", nil) + if err != nil { + t.Error(err) + } + n.ServeHTTP(response, req) + expect(t, response.Code, http.StatusOK) + expect(t, response.Header().Get("Expires"), "") + if response.Body.Len() == 0 { + t.Errorf("Got empty body for GET request") + } +} + +func TestStaticHead(t *testing.T) { + response := httptest.NewRecorder() + response.Body = new(bytes.Buffer) + + n := New() + n.Use(NewStatic(http.Dir("."))) + n.UseHandler(http.NotFoundHandler()) + + req, err := http.NewRequest("HEAD", "http://localhost:3000/negroni.go", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(response, req) + expect(t, response.Code, http.StatusOK) + if response.Body.Len() != 0 { + t.Errorf("Got non-empty body for HEAD request") + } +} + +func TestStaticAsPost(t *testing.T) { + response := httptest.NewRecorder() + + n := New() + n.Use(NewStatic(http.Dir("."))) + n.UseHandler(http.NotFoundHandler()) + + req, err := http.NewRequest("POST", "http://localhost:3000/negroni.go", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(response, req) + expect(t, response.Code, http.StatusNotFound) +} + +func TestStaticBadDir(t *testing.T) { + response := httptest.NewRecorder() + + n := Classic() + n.UseHandler(http.NotFoundHandler()) + + req, err := http.NewRequest("GET", "http://localhost:3000/negroni.go", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(response, req) + refute(t, response.Code, http.StatusOK) +} + +func TestStaticOptionsServeIndex(t *testing.T) { + response := httptest.NewRecorder() + + n := New() + s := NewStatic(http.Dir(".")) + s.IndexFile = "negroni.go" + n.Use(s) + + req, err := http.NewRequest("GET", "http://localhost:3000/", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(response, req) + expect(t, response.Code, http.StatusOK) +} + +func TestStaticOptionsPrefix(t *testing.T) { + response := httptest.NewRecorder() + + n := New() + s := NewStatic(http.Dir(".")) + s.Prefix = "/public" + n.Use(s) + + // Check file content behaviour + req, err := http.NewRequest("GET", "http://localhost:3000/public/negroni.go", nil) + if err != nil { + t.Error(err) + } + + n.ServeHTTP(response, req) + expect(t, response.Code, http.StatusOK) +} diff --git a/vendor/github.com/urfave/negroni/translations/README_de_de.md b/vendor/github.com/urfave/negroni/translations/README_de_de.md new file mode 100644 index 00000000..09c67c4e --- /dev/null +++ b/vendor/github.com/urfave/negroni/translations/README_de_de.md @@ -0,0 +1,177 @@ +# Negroni [![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) [![wercker status](https://app.wercker.com/status/13688a4a94b82d84a0b8d038c4965b61/s "wercker status")](https://app.wercker.com/project/bykey/13688a4a94b82d84a0b8d038c4965b61) + +Negroni ist ein Ansatz für eine idiomatische Middleware in Go. Sie ist klein, nicht-intrusiv und unterstützt die Nutzung von `net/http` Handlern. + +Wenn Dir die Idee hinter [Martini](http://github.com/go-martini/martini) gefällt, aber Du denkst, es stecke zu viel Magie darin, dann ist Negroni eine passende Alternative. + +## Wo fange ich an? + +Nachdem Du Go installiert und den [GOPATH](http://golang.org/doc/code.html#GOPATH) eingerichtet hast, erstelle eine `.go`-Datei. Nennen wir sie `server.go`. + +~~~ go +package main + +import ( + "github.com/urfave/negroni" + "net/http" + "fmt" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Willkommen auf der Homepage!") + }) + + n := negroni.Classic() + n.UseHandler(mux) + n.Run(":3000") +} +~~~ + +Installiere nun das Negroni Package (**go 1.1** und höher werden vorausgesetzt): +~~~ +go get github.com/urfave/negroni +~~~ + +Dann starte Deinen Server: +~~~ +go run server.go +~~~ + +Nun läuft ein `net/http`-Webserver von Go unter `localhost:3000`. + +## Hilfe benötigt? +Wenn Du eine Frage hast oder Dir ein bestimmte Funktion wünscht, nutze die [Mailing Liste](https://groups.google.com/forum/#!forum/negroni-users). Issues auf Github werden ausschließlich für Bug Reports und Pull Requests genutzt. + +## Ist Negroni ein Framework? +Negroni ist **kein** Framework. Es ist eine Bibliothek, geschaffen, um kompatibel mit `net/http` zu sein. + +## Routing? +Negroni ist BYOR (Bring your own Router - Nutze Deinen eigenen Router). Die Go-Community verfügt bereits über eine Vielzahl von großartigen Routern. Negroni versucht möglichst alle zu unterstützen, indem es `net/http` vollständig unterstützt. Beispielsweise sieht eine Implementation mit [Gorilla Mux](http://github.com/gorilla/mux) folgendermaßen aus: + +~~~ go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// Oder nutze eine Middleware mit der Use()-Funktion +n.Use(Middleware3) +// Der Router kommt als letztes +n.UseHandler(router) + +n.Run(":3000") +~~~ + +## `negroni.Classic()` +`negroni.Classic()` stellt einige Standard-Middlewares bereit, die für die meisten Anwendungen von Nutzen ist: + +* `negroni.Recovery` - Middleware für Panic Recovery . +* `negroni.Logging` - Anfrage/Rückmeldungs-Logging-Middleware. +* `negroni.Static` - Ausliefern von statischen Dateien unter dem "public" Verzeichnis. + +Dies macht es wirklich einfach, mit den nützlichen Funktionen von Negroni zu starten. + +## Handlers +Negroni stellt einen bidirektionalen Middleware-Flow bereit. Dies wird durch das `negroni.Handler`-Interface erreicht: + +~~~ go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +~~~ + +Wenn eine Middleware nicht bereits den ResponseWriter genutzt hat, sollte sie die nächste `http.HandlerFunc` in der Verkettung von Middlewares aufrufen und diese ausführen. Das kann von großem Nutzen sein: + +~~~ go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // Mache etwas vor dem Aufruf + next(rw, r) + // Mache etwas nach dem Aufruf +} +~~~ + +Und Du kannst eine Middleware durch die `Use`-Funktion der Verkettung von Middlewares zuordnen. + +~~~ go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +~~~ + +Stattdessen kannst Du auch herkömmliche `http.Handler` zuordnen: + +~~~ go +n := negroni.New() + +mux := http.NewServeMux() +// Ordne Deine Routen zu + +n.UseHandler(mux) + +n.Run(":3000") +~~~ + +## `Run()` +Negroni hat eine nützliche Funktion namens `Run`. `Run` übernimmt eine Zeichenkette `addr` ähnlich wie [http.ListenAndServe](http://golang.org/pkg/net/http#ListenAndServe). + +~~~ go +n := negroni.Classic() +// ... +log.Fatal(http.ListenAndServe(":8080", n)) +~~~ + +## Routenspezifische Middleware +Wenn Du eine Gruppe von Routen hast, welche alle die gleiche Middleware ausführen müssen, kannst Du einfach eine neue Negroni-Instanz erstellen und sie als Route-Handler nutzen: + +~~~ go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// Füge die Admin-Routen hier hinzu + +// Erstelle eine neue Negroni-Instanz für die Admin-Middleware +router.Handle("/admin", negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +~~~ + +## Middlewares von Dritten + +Hier ist eine aktuelle Liste von Middlewares, die kompatible mit Negroni sind. Tue Dir keinen Zwang an, Dich einzutragen, wenn Du selbst eine Middleware programmiert hast: + + +| Middleware | Autor | Beschreibung | +| -----------|--------|-------------| +| [RestGate](https://github.com/pjebs/restgate) | [Prasanga Siripala](https://github.com/pjebs) | Sichere Authentifikation für Endpunkte einer REST API | +| [Graceful](https://github.com/stretchr/graceful) | [Tyler Bunnell](https://github.com/tylerb) | Graceful HTTP Shutdown | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | Eine Middleware mit ein paar nützlichen Sicherheitseinstellungen | +| [JWT Middleware](https://github.com/auth0/go-jwt-middleware) | [Auth0](https://github.com/auth0) | Eine Middleware die nach JWTs im `Authorization`-Feld des Header sucht und sie dekodiert.| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | Data Binding von HTTP-Anfragen in Structs | +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | Logrus-basierender Logger | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | Rendere JSON, XML und HTML Vorlagen | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic Agent für die Go-Echtzeitumgebung | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | Kompression von HTTP-Rückmeldungen via GZIP | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | oAuth2 Middleware | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Session Management | +| [permissions2](https://github.com/xyproto/permissions2) | [Alexander Rødseth](https://github.com/xyproto) | Cookies, Benutzer und Berechtigungen | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | Generiere TinySVG, HTML und CSS spontan | +| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | [Cross Origin Resource Sharing](http://www.w3.org/TR/cors/) (CORS) Unterstützung | +| [xrequestid](https://github.com/pilu/xrequestid) | [Andrea Franz](https://github.com/pilu) | Eine Middleware die zufällige X-Request-Id-Header jedem Request anfügt | +| [VanGoH](https://github.com/auroratechnologies/vangoh) | [Taylor Wrobel](https://github.com/twrobel3) | Configurable [AWS-Style](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) HMAC-basierte Middleware zur Authentifikation | +| [stats](https://github.com/thoas/stats) | [Florent Messa](https://github.com/thoas) | Speichere wichtige Informationen über Deine Webanwendung (Reaktionszeit, etc.) | + +## Beispiele +[Alexander Rødseth](https://github.com/xyproto) programmierte [mooseware](https://github.com/xyproto/mooseware), ein Grundgerüst zum Erstellen von Negroni Middleware-Handerln. + +## Aktualisieren in Echtzeit? +[gin](https://github.com/codegangsta/gin) und [fresh](https://github.com/pilu/fresh) aktualisieren Deine Negroni-Anwendung automatisch. + +## Unverzichbare Informationen für Go- & Negronineulinge + +* [Nutze einen Kontext zum Ãœbertragen von Middlewareinformationen an Handler (Englisch)](http://elithrar.github.io/article/map-string-interface/) +* [Middlewares verstehen (Englisch)](http://mattstauffer.co/blog/laravel-5.0-middleware-replacing-filters) + +## Ãœber das Projekt + +Negroni wurde obsseziv von Niemand gerigeren als dem [Code Gangsta](http://codegangsta.io/) entwickelt. diff --git a/vendor/github.com/urfave/negroni/translations/README_ja_JP.md b/vendor/github.com/urfave/negroni/translations/README_ja_JP.md new file mode 100644 index 00000000..93104969 --- /dev/null +++ b/vendor/github.com/urfave/negroni/translations/README_ja_JP.md @@ -0,0 +1,374 @@ +# Negroni [![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) [![wercker status](https://app.wercker.com/status/13688a4a94b82d84a0b8d038c4965b61/s "wercker status")](https://app.wercker.com/project/bykey/13688a4a94b82d84a0b8d038c4965b61) [![codebeat](https://codebeat.co/badges/47d320b1-209e-45e8-bd99-9094bc5111e2)](https://codebeat.co/projects/github-com-urfave-negroni) + +Negroniã¯Goã«ã‚ˆã‚‹Web ミドルウェアã¸ã®æ…£ç”¨çš„ãªã‚¢ãƒ—ローãƒã§ã™ã€‚ +軽é‡ã§æŠ¼ã—付ã‘ãŒã¾ã—ã„作法ã¯ç„¡ãã€ã¾ãŸ`net/http`ãƒãƒ³ãƒ‰ãƒ©ã®ä½¿ç”¨ã‚’推奨ã—ã¦ã„ã¾ã™ã€‚ + +[Martini](https://github.com/go-martini/martini) ã®æ€æƒ³ã¯æ°—ã«å…¥ã£ã¦ã„ã‚‹ãŒã€å¤šãã®é­”法をå«ã¿ã™ãŽã¦ã„ã‚‹ã¨æ„Ÿã˜ã¦ã„ã‚‹æ–¹ã«ã€ã“ã®Negroni ã¯ã‚ˆã馴染むã§ã—ょã†ã€‚ + +## ã¯ã˜ã‚ã« + +Goをインストールã—ã€[GOPATH](http://golang.org/doc/code.html#GOPATH)ã®è¨­å®šã‚’è¡Œã£ãŸå¾Œã€`.go`ファイルを作りã¾ã—ょã†ã€‚ã“れを`server.go`ã¨ã—ã¾ã™ã€‚ + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // Includes some default middlewares + n.UseHandler(mux) + + http.ListenAndServe(":3000", n) +} +``` + +Negroni パッケージをインストールã—ã¾ã™ (**NOTE**: >= **go 1.1** 以上ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå¿…è¦ã§ã™): + +``` +go get github.com/urfave/negroni +``` + +インストールãŒå®Œäº†ã—ãŸã‚‰ã€ã‚µãƒ¼ãƒãƒ¼ã‚’èµ·å‹•ã—ã¾ã—ょã†ã€‚ + +``` +go run server.go +``` + +ã™ã‚‹ã¨ã€Go標準パッケージ㮠`net/http` ã«ã‚ˆã‚‹Webサーãƒãƒ¼ãŒ`localhost:3000` ã§èµ·å‹•ã—ã¾ã™ã€‚ + +## Negroni ã¯Web Application Framework ã§ã™ã‹ï¼Ÿ + +Negroni ã¯revel ã‚„martini ã®ã‚ˆã†ãª**フレームワークã§ã¯ã‚ã‚Šã¾ã›ã‚“**。 Negroni㯠`net/http`ã¨ç›´æŽ¥çµã³ã¤ã„ã¦å‹•ä½œã™ã‚‹ã€ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã«ãƒ•ã‚©ãƒ¼ã‚«ã‚¹ã•ã‚ŒãŸãƒ©ã‚¤ãƒ–ラリã§ã™ã€‚ + + +## ルーティングã®æ©Ÿèƒ½ã¯ã‚ã‚Šã¾ã™ã‹ï¼Ÿ + +Negroni ã«ãƒ«ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã®æ©Ÿèƒ½ã¯ã‚ã‚Šã¾ã›ã‚“。Goコミュニティã«ã¯æ—¢ã«å¹¾ã¤ã‹ã®å„ªã‚ŒãŸãƒ«ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã®ãƒ©ã‚¤ãƒ–ラリãŒå­˜åœ¨ã—ã¦ãŠã‚Šã€Negroni ã¯`net/http`ã¨äº’æ›æ€§ã®ã‚るライブラリã¨å”調ã—ã¦å‹•ä½œã™ã‚‹ã‚ˆã†ã«è¨­è¨ˆã•ã‚Œã¦ã„ã¾ã™ã€‚例ãˆã°ã€[Gorilla Mux]ã¨é€£æºã™ã‚‹ã¨ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ + +``` go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// Or use a middleware with the Use() function +n.Use(Middleware3) +// router goes last +n.UseHandler(router) + +http.ListenAndServe(":3001", n) +``` + +## `negroni.Classic()` + +`negroni.Classic()` ã¯ã€å¤šãã®ã‚¢ãƒ—リケーションã§å½¹ã«ç«‹ã¤ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã‚’æä¾›ã—ã¾ã™ + +* [`negroni.Recovery`](#recovery) - Panic Recovery Middleware. +* [`negroni.Logger`](#logger) - Request/Response Logger Middleware. +* [`negroni.Static`](#static) - "public"ディレクトリã®é™çš„ファイルã®å‡¦ç† + +ã“れらã¯Negroni ã®ä¾¿åˆ©ãªæ©Ÿèƒ½ã‚’利用ã—始ã‚ã‚‹ã®ã‚’ã¨ã¦ã‚‚ç°¡å˜ã«ã—ã¦ãã‚Œã¾ã™ã€‚ + +## ãƒãƒ³ãƒ‰ãƒ© + +Negroniã¯åŒæ–¹å‘ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã®ãƒ•ãƒ­ãƒ¼ã‚’æä¾›ã—ã¾ã™ã€‚ã“ã‚Œã¯ã€`negroni.Handler` インターフェースを通ã˜ã¦è¡Œã‚ã‚Œã¾ã™ã€‚ + +``` go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +``` + +ミドルウェアãŒæ—¢ã«`ResponseWriter`ã«æ›¸ãè¾¼ã¿å‡¦ç†ã‚’è¡Œã£ã¦ã„ãªã„å ´åˆã€æ¬¡ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ãƒ»ãƒãƒ³ãƒ‰ãƒ©ã‚’å‹•ã‹ã™ãŸã‚ã«ã€ãƒã‚§ãƒ¼ãƒ³å†…ã®æ¬¡ã®`http.HandlerFunc`を呼ã³å‡ºã™å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ + + +``` go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // å‰å‡¦ç† + next(rw, r) + // å¾Œå‡¦ç† +} +``` + +ã“ã®æ™‚ã€`MyMiddleware`ã‚’`Use` 関数ã«ã‚ˆã£ã¦ãƒãƒ³ãƒ‰ãƒ©ãƒã‚§ãƒ¼ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + +``` go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +``` + +ã¾ãŸã€æ¨™æº–パッケージã«å‚™ã‚ã£ã¦ã„ã‚‹`http.Handler`ã‚’ãƒãƒ³ãƒ‰ãƒ©ãƒã‚§ãƒ¼ãƒ³ã«å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ + +``` go +n := negroni.New() + +mux := http.NewServeMux() +// ルーティングã®å‡¦ç† + +n.UseHandler(mux) + +http.ListenAndServe(":3000", n) +``` + +## `Run()` + +`Run` ã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æ–‡å­—列をå—ã‘å–ã‚Šã€[`http.ListenAndServe`](https://godoc.org/net/http#ListenAndServe)ã¨åŒæ§˜ã«ã‚µãƒ¼ãƒãƒ¼ã‚’èµ·å‹•ã—ã¾ã™ã€‚ + + +``` go +package main + +import ( + "github.com/urfave/negroni" +) + +func main() { + n := negroni.Classic() + n.Run(":8080") +} +``` + +通常ã€`net/http` を使用ã—ã€ãƒãƒ³ãƒ‰ãƒ©ã¨ã—ã¦`Negroni`を渡ã™ã“ã¨ã«ãªã‚Šã¾ã™ã€‚ +以下ã«ã‚ˆã‚ŠæŸ”軟性ã®ã‚るサンプルを示ã—ã¾ã™ã€‚ + + +``` go +package main + +import ( + "fmt" + "log" + "net/http" + "time" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() + n.UseHandler(mux) + + s := &http.Server{ + Addr: ":8080", + Handler: n, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + MaxHeaderBytes: 1 << 20, + } + log.Fatal(s.ListenAndServe()) +} +``` + +## Route Specific Middleware + +ã‚るルーティンググループã«ãŠã„ã¦ã€å®Ÿè¡Œã™ã‚‹å¿…è¦ã®ã‚るミドルウェアãŒã‚ã‚‹å ´åˆã€ +æ–°ã—ã„Negroni ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã—ã€ãƒ«ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ãƒãƒ³ãƒ‰ãƒ©ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + +``` go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// admin 関連ã®ãƒ«ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚’ココã«è¨˜è¿° + +// admin ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã¨ã—ã¦ã€Negroni ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’ä½œæˆ +router.PathPrefix("/admin").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +``` + +ã‚‚ã—[Gorilla Mux]を利用ã™ã‚‹å ´åˆã€ã‚µãƒ–ルーターを使ã†ã‚µãƒ³ãƒ—ルã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ + +``` go +router := mux.NewRouter() +subRouter := mux.NewRouter().PathPrefix("/subpath").Subrouter().StrictSlash(true) +subRouter.HandleFunc("/", someSubpathHandler) // "/subpath/" +subRouter.HandleFunc("/:id", someSubpathHandler) // "/subpath/:id" + +// "/subpath" is necessary to ensure the subRouter and main router linkup +router.PathPrefix("/subpath").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(subRouter), +)) +``` + +## Bundled Middleware + +### Static + +ã“ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’サーãƒãƒ¼ã‹ã‚‰ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«é€ä¿¡ã—ã¾ã™ã€‚ã‚‚ã—指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã—ãªã„å ´åˆã€æ¬¡ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®å‡¦ç†ã‚’ä¾é ¼ã—ã¾ã™ã€‚存在ã—ãªã„ファイルã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã«å¯¾ã—ã¦`404 Not Found`ã‚’è¿”ã—ãŸã„å ´åˆã€ [http.FileServer](https://golang.org/pkg/net/http/#FileServer) ã‚’ãƒãƒ³ãƒ‰ãƒ©ã¨ã—ã¦åˆ©ç”¨ã™ã¹ãã§ã™ã€‚ + +Example: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + // Example of using a http.FileServer if you want "server-like" rather than "middleware" behavior + // mux.Handle("/public", http.FileServer(http.Dir("/home/public"))) + + n := negroni.New() + n.Use(negroni.NewStatic(http.Dir("/tmp"))) + n.UseHandler(mux) + + http.ListenAndServe(":3002", n) +} +``` + +ã¾ãšã€`/tmp` ディレクトリã‹ã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã‚’クライアントã«é€ã‚ã†ã¨ã—ã¾ã™ãŒã€æŒ‡å®šã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ä¸Šã«å­˜åœ¨ã—ãªã„å ´åˆã€ãƒ—ロキシã¯æ¬¡ã®ãƒãƒ³ãƒ‰ãƒ©ã‚’呼ã³å‡ºã—ã¾ã™ã€‚ + +### Recovery + +ã“ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã¯ã€`panic`ã‚’å—ã‘å–ã‚‹ã¨ã€`500 internal Server Error` をレスãƒãƒ³ã‚¹ã—ã¾ã™ã€‚ +ã‚‚ã—ä»–ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ãŒæ—¢ã«å¿œç­”処ç†ã‚’è¡Œã„ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«HTTP レスãƒãƒ³ã‚¹ãŒå¸°ã£ã¦ã„ã‚‹å ´åˆã€ã“ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã¯å¤±æ•—ã—ã¾ã™ã€‚ + +Example: + + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + n.Use(negroni.NewRecovery()) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} +``` + +上記ã®ã‚³ãƒ¼ãƒ‰ã¯ã€ `500 Internal Server Error` ã‚’å„リクエストã”ã¨ã«è¿”ã—ã¾ã™ã€‚ +ã¾ãŸã€ã‚¹ã‚¿ãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’ログã«å‡ºåŠ›ã™ã‚‹ã ã‘ã§ãªãã€`PrintStack`ãŒ`true`ã«è¨­å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«ã‚¹ã‚¿ãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’出力ã—ã¾ã™ã€‚(デフォルトã§`true`ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚) + +## Logger + +ã“ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã¯ã€é€ã‚‰ã‚Œã¦ããŸå…¨ã¦ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¨ãƒ¬ã‚¹ãƒãƒ³ã‚¹ã‚’記録ã—ã¾ã™ã€‚ + +Example: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.New() + n.Use(negroni.NewLogger()) + n.UseHandler(mux) + + http.ListenAndServe(":3004", n) +} +``` + +å„リクエストã”ã¨ã«ã€ä»¥ä¸‹ã®ã‚ˆã†ãªãƒ­ã‚°ãŒå‡ºåŠ›ã•ã‚Œã¾ã™ã€‚ + +``` +[negroni] Started GET / +[negroni] Completed 200 OK in 145.446µs +``` + + +## サードパーティ製ã®ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ + +Negroni ã¨äº’æ›æ€§ã®ã‚るミドルウェアã®ä¸€è¦§ã§ã™ã€‚ã‚ãªãŸãŒä½œã£ãŸãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã‚’ã“ã“ã«è¿½åŠ ã—ã¦ã‚‚らã£ã¦ã‚‚構ã„ã¾ã›ã‚“(PRã‚’é€ã£ã¦ä¸‹ã•ã„) + +**注æ„**: ã“ã“ã®ä¸€è¦§ã¯å¤ããªã£ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚英語版ã®README.md ã‚’é©å®œå‚ç…§ã—ã¦ä¸‹ã•ã„。 + + +| ミドルウェアå | 作者 | æ¦‚è¦ | +| -----------|--------|-------------| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | Data binding from HTTP requests into structs | +| [cloudwatch](https://github.com/cvillecsteele/negroni-cloudwatch) | [Colin Steele](https://github.com/cvillecsteele) | AWS cloudwatch metrics middleware | +| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | [Cross Origin Resource Sharing](http://www.w3.org/TR/cors/) (CORS) support | +| [delay](https://github.com/jeffbmartinez/delay) | [Jeff Martinez](https://github.com/jeffbmartinez) | Add delays/latency to endpoints. Useful when testing effects of high latency | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic agent for Go runtime | +| [Graceful](https://github.com/tylerb/graceful) | [Tyler Bunnell](https://github.com/tylerb) | Graceful HTTP Shutdown | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | GZIP response compression | +| [JWT Middleware](https://github.com/auth0/go-jwt-middleware) | [Auth0](https://github.com/auth0) | Middleware checks for a JWT on the `Authorization` header on incoming requests and decodes it| +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | Logrus-based logger | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | oAuth2 middleware | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | Generate TinySVG, HTML and CSS on the fly | +| [permissions2](https://github.com/xyproto/permissions2) | [Alexander Rødseth](https://github.com/xyproto) | Cookies, users and permissions | +| [prometheus](https://github.com/zbindenren/negroni-prometheus) | [Rene Zbinden](https://github.com/zbindenren) | Easily create metrics endpoint for the [prometheus](http://prometheus.io) instrumentation tool | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | Render JSON, XML and HTML templates | +| [RestGate](https://github.com/pjebs/restgate) | [Prasanga Siripala](https://github.com/pjebs) | Secure authentication for REST API endpoints | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | Middleware that implements a few quick security wins | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Session Management | +| [stats](https://github.com/thoas/stats) | [Florent Messa](https://github.com/thoas) | Store information about your web application (response time, etc.) | +| [VanGoH](https://github.com/auroratechnologies/vangoh) | [Taylor Wrobel](https://github.com/twrobel3) | Configurable [AWS-Style](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) HMAC authentication middleware | +| [xrequestid](https://github.com/pilu/xrequestid) | [Andrea Franz](https://github.com/pilu) | Middleware that assigns a random X-Request-Id header to each request | + +## Examples + +[Alexander Rødseth](https://github.com/xyproto) created +[mooseware](https://github.com/xyproto/mooseware), a skeleton for writing a +Negroni middleware handler. + +## Live code reload? + +[gin](https://github.com/codegangsta/gin) and +[fresh](https://github.com/pilu/fresh) both live reload negroni apps. + +## Go ã‚„ Negroni ã®åˆå¿ƒè€…ã«ã‚ªã‚¹ã‚¹ãƒ¡ã®å‚考資料(英語) + +* [Using a Context to pass information from middleware to end handler](http://elithrar.github.io/article/map-string-interface/) +* [Understanding middleware](https://mattstauffer.co/blog/laravel-5.0-middleware-filter-style) + +## Negroni ã«ã¤ã„㦠+ +Negroni ã¯ä»–ãªã‚‰ã¬[Code +Gangsta](https://codegangsta.io/)ã«ã‚ˆã£ã¦ç•°å¸¸ãªã¾ã§ã«ãƒ‡ã‚¶ã‚¤ãƒ³ã•ã‚ŒãŸç´ æ™´ã‚‰ã—ã„ライブラリã§ã™ã€‚ + +[Gorilla Mux]: https://github.com/gorilla/mux +[`http.FileSystem`]: https://godoc.org/net/http#FileSystem diff --git a/vendor/github.com/urfave/negroni/translations/README_pt_br.md b/vendor/github.com/urfave/negroni/translations/README_pt_br.md new file mode 100644 index 00000000..6fae9551 --- /dev/null +++ b/vendor/github.com/urfave/negroni/translations/README_pt_br.md @@ -0,0 +1,170 @@ +# Negroni [![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) [![wercker status](https://app.wercker.com/status/13688a4a94b82d84a0b8d038c4965b61/s "wercker status")](https://app.wercker.com/project/bykey/13688a4a94b82d84a0b8d038c4965b61) + +Negroni é uma abordagem idiomática para middleware web em Go. É pequeno, não intrusivo, e incentiva uso da biblioteca `net/http`. + +Se gosta da idéia do [Martini](http://github.com/go-martini/martini), mas acha que contém muita mágica, então Negroni é ideal. + +## Começando + +Depois de instalar Go e definir seu [GOPATH](http://golang.org/doc/code.html#GOPATH), criar seu primeirto arquivo `.go`. Iremos chamá-lo `server.go`. + +~~~ go +package main + +import ( + "github.com/urfave/negroni" + "net/http" + "fmt" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() + n.UseHandler(mux) + n.Run(":3000") +} +~~~ + +Depois instale o pacote Negroni (**go 1.1** ou superior) +~~~ +go get github.com/urfave/negroni +~~~ + +Depois execute seu servidor: +~~~ +go run server.go +~~~ + +Agora terá um servidor web Go net/http rodando em `localhost:3000`. + +## Precisa de Ajuda? +Se você tem uma pergunta ou pedido de recurso,[go ask the mailing list](https://groups.google.com/forum/#!forum/negroni-users). O Github issues para o Negroni será usado exclusivamente para Reportar bugs e pull requests. + +## Negroni é um Framework? +Negroni **não** é a framework. É uma biblioteca que é desenhada para trabalhar diretamente com net/http. + +## Roteamento? +Negroni é TSPR(Traga seu próprio Roteamento). A comunidade Go já tem um grande número de roteadores http disponíveis, Negroni tenta rodar bem com todos eles pelo suporte total `net/http`/ Por exemplo, a integração com [Gorilla Mux](http://github.com/gorilla/mux) se parece com isso: + +~~~ go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// Or use a middleware with the Use() function +n.Use(Middleware3) +// router goes last +n.UseHandler(router) + +n.Run(":3000") +~~~ + +## `negroni.Classic()` +`negroni.Classic()` fornece alguns middlewares padrão que são úteis para maioria das aplicações: + +* `negroni.Recovery` - Panic Recovery Middleware. +* `negroni.Logging` - Request/Response Logging Middleware. +* `negroni.Static` - Static File serving under the "public" directory. + +Isso torna muito fácil começar com alguns recursos úteis do Negroni. + +## Handlers +Negroni fornece um middleware de fluxo bidirecional. Isso é feito através da interface `negroni.Handler`: + +~~~ go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +~~~ + +Se um middleware não tenha escrito o ResponseWriter, ele deve chamar a próxima `http.HandlerFunc` na cadeia para produzir o próximo handler middleware. Isso pode ser usado muito bem: + +~~~ go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // do some stuff before + next(rw, r) + // do some stuff after +} +~~~ + +E pode mapear isso para a cadeia de handler com a função `Use`: + +~~~ go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +~~~ + +Você também pode mapear `http.Handler` antigos: + +~~~ go +n := negroni.New() + +mux := http.NewServeMux() +// map your routes + +n.UseHandler(mux) + +n.Run(":3000") +~~~ + +## `Run()` +Negroni tem uma função de conveniência chamada `Run`. `Run` pega um endereço de string idêntico para [http.ListenAndServe](http://golang.org/pkg/net/http#ListenAndServe). + +~~~ go +n := negroni.Classic() +// ... +log.Fatal(http.ListenAndServe(":8080", n)) +~~~ + +## Middleware para Rotas Específicas +Se você tem um grupo de rota com rotas que precisam ser executadas por um middleware específico, pode simplesmente criar uma nova instância de Negroni e usar no seu Manipulador de rota. + +~~~ go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// add admin routes here + +// Criar um middleware negroni para admin +router.Handle("/admin", negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +~~~ + +## Middleware de Terceiros + +Aqui está uma lista atual de Middleware Compatíveis com Negroni. Sinta se livre para mandar um PR vinculando seu middleware se construiu um: + + +| Middleware | Autor | Descrição | +| -----------|--------|-------------| +| [Graceful](https://github.com/stretchr/graceful) | [Tyler Bunnell](https://github.com/tylerb) | Graceful HTTP Shutdown | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | Implementa rapidamente itens de segurança.| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | Handler para mapeamento/validação de um request a estrutura. | +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | Logrus-based logger | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | Pacote para renderizar JSON, XML, e templates HTML. | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic agent for Go runtime | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | Handler para adicionar compreção gzip para as requisições | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | Handler que prove sistema de login OAuth 2.0 para aplicações Martini. Google Sign-in, Facebook Connect e Github login são suportados. | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Handler que provê o serviço de sessão. | +| [permissions](https://github.com/xyproto/permissions) | [Alexander Rødseth](https://github.com/xyproto) | Cookies, usuários e permissões. | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | Pacote para gerar TinySVG, HTML e CSS em tempo real. | + +## Exemplos +[Alexander Rødseth](https://github.com/xyproto) criou [mooseware](https://github.com/xyproto/mooseware), uma estrutura para escrever um handler middleware Negroni. + +## Servidor com autoreload? +[gin](https://github.com/codegangsta/gin) e [fresh](https://github.com/pilu/fresh) são aplicativos para autoreload do Negroni. + +## Leitura Essencial para Iniciantes em Go & Negroni +* [Usando um contexto para passar informação de um middleware para o manipulador final](http://elithrar.github.io/article/map-string-interface/) +* [Entendendo middleware](http://mattstauffer.co/blog/laravel-5.0-middleware-replacing-filters) + + +## Sobre +Negroni é obsessivamente desenhado por ninguém menos que [Code Gangsta](http://codegangsta.io/) diff --git a/vendor/github.com/urfave/negroni/translations/README_zh_cn.md b/vendor/github.com/urfave/negroni/translations/README_zh_cn.md new file mode 100644 index 00000000..3a97e61f --- /dev/null +++ b/vendor/github.com/urfave/negroni/translations/README_zh_cn.md @@ -0,0 +1,439 @@ +# Negroni +[![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) +[![Build Status](https://travis-ci.org/urfave/negroni.svg?branch=master)](https://travis-ci.org/urfave/negroni) +[![codebeat](https://codebeat.co/badges/47d320b1-209e-45e8-bd99-9094bc5111e2)](https://codebeat.co/projects/github-com-urfave-negroni) +[![codecov](https://codecov.io/gh/urfave/negroni/branch/master/graph/badge.svg)](https://codecov.io/gh/urfave/negroni) + +**注æ„:** 本函å¼åº“原æ¥è‡ªäºŽ +`github.com/codegangsta/negroni` -- Github会自动将连线转到本连结, 但我们建议你更新一下å‚ç…§. + +在Go语言里,Negroni 是一个很地é“çš„ web 中间件,它是微型,éžåµŒå…¥å¼ï¼Œå¹¶é¼“励使用原生 `net/http` 处ç†å™¨çš„库。 + +如果你用过并喜欢 [Martini](http://github.com/go-martini/martini) 框架,但åˆä¸æƒ³æ¡†æž¶ä¸­æœ‰å¤ªå¤šé­”幻性的特å¾ï¼Œé‚£ Negroni 就是你的èœäº†ï¼Œç›¸ä¿¡å®ƒéžå¸¸é€‚åˆä½ ã€‚ + +语言翻译: +* [German (de_DE)](translations/README_de_de.md) +* [Português Brasileiro (pt_BR)](translations/README_pt_br.md) +* [简体中文 (zh_cn)](translations/README_zh_cn.md) +* [ç¹é«”中文 (zh_tw)](translations/README_zh_tw.md) +* [日本語 (ja_JP)](translations/README_ja_JP.md) + +## 入门指导 + +当安装了 Go 语言并设置好了 [GOPATH](http://golang.org/doc/code.html#GOPATH) åŽï¼Œæ–°å»ºä½ ç¬¬ä¸€ä¸ª`.go` 文件,我们å«å®ƒ `server.go` å§ã€‚ + +``` go +package main + +import ( + "github.com/urfave/negroni" + "net/http" + "fmt" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() + n.UseHandler(mux) + n.Run(":3000") +} +``` + +然åŽå®‰è£… Negroni 包(它ä¾èµ– **Go 1.1** 或更高的版本): +``` +go get github.com/urfave/negroni +``` + +然åŽè¿è¡Œåˆšå»ºå¥½çš„ server.go 文件: +``` +go run server.go +``` + +这时一个 Go `net/http` Web æœåŠ¡å™¨å°±è·‘在 `localhost:3000` 上,使用æµè§ˆå™¨æ‰“å¼€ `localhost:3000` å¯ä»¥çœ‹åˆ°è¾“出结果。 + +### 打包 +如果`negroni`在Debian环境下是个[套件](https://packages.debian.org/sid/golang-github-urfave-negroni-dev), å¯ç›´æŽ¥ +执行`apt install golang-github-urfave-negroni-dev`安装(这在`sid`仓库中). + + +## Negroni 是一个框架å—? +Negroni **ä¸**是一个框架,它是为了方便使用 `net/http` 而设计的一个库而已。 + +## 路由呢? +Negroni 没有带路由功能,使用 Negroni 时,需è¦æ‰¾ä¸€ä¸ªé€‚åˆä½ çš„路由。ä¸è¿‡å¥½åœ¨ Go 社区里已ç»æœ‰ç›¸å½“多å¯ç”¨çš„路由,Negroni æ›´å–œæ¬¢å’Œé‚£äº›å®Œå…¨æ”¯æŒ `net/http` 库的路由组åˆä½¿ç”¨ï¼Œæ¯”å¦‚ï¼Œç»“åˆ [Gorilla Mux](http://github.com/gorilla/mux) 使用åƒè¿™æ ·ï¼š + +``` go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// Or use a middleware with the Use() function +n.Use(Middleware3) +// router goes last +n.UseHandler(router) + +n.Run(":3000") +``` + +## `negroni.Classic()` ç»å…¸å®žä¾‹ +`negroni.Classic()` æ供一些默认的中间件,这些中间件在多数应用都很有用。 + +* `negroni.Recovery` - 异常(æ慌)æ¢å¤ä¸­é—´ä»¶ +* `negroni.Logging` - 请求 / å“应 log 日志中间件 +* `negroni.Static` - é™æ€æ–‡ä»¶å¤„ç†ä¸­é—´ä»¶ï¼Œé»˜è®¤ç›®å½•åœ¨ "public" 下. + +`negroni.Classic()` 让你一开始就éžå¸¸å®¹æ˜“上手 Negroni ,并使用它那些通用的功能。 + +## Handlers (处ç†å™¨) +Negroni æä¾›åŒå‘的中间件机制,这个特å¾å¾ˆæ£’,都是得益于 `negroni.Handler` 这个接å£ã€‚ + +``` go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +``` + +如果一个中间件没有写入 ResponseWriter å“应,它会在中间件链里调用下一个 `http.HandlerFunc` 执行下去, 它å¯ä»¥è¿™ä¹ˆä¼˜é›…的使用。如下: + +``` go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // do some stuff before + next(rw, r) + // do some stuff after +} +``` + +你也å¯ä»¥ç”¨ `Use` 函数把这些 `http.Handler` 处ç†å™¨å¼•è¿›åˆ°å¤„ç†å™¨é“¾ä¸Šæ¥ï¼š + +``` go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +``` + +你还å¯ä»¥ä½¿ç”¨ `http.Handler`(s) 把 `http.Handler` 处ç†å™¨å¼•è¿›æ¥ã€‚ + +``` go +n := negroni.New() + +mux := http.NewServeMux() +// map your routes + +n.UseHandler(mux) + +n.Run(":3000") +``` + +## `Run()` +尼格龙尼有一个很好用的函数`Run`, `Run`接收addr字串辨识[http.ListenAndServe](http://golang.org/pkg/net/http#ListenAndServe). + +``` go +package main + +import ( + "github.com/urfave/negroni" +) + +func main() { + n := negroni.Classic() + n.Run(":8080") +} +``` + +未æ供路径情况下会使用系统环境å˜æ•°`PORT`, 若未定义该系统环境å˜æ•°åˆ™ä¼šç”¨é¢„设路径, 请è§[Run](https://godoc.org/github.com/urfave/negroni#Negroni.Run)细看说明. + +一般æ¥è¯´, 你会希望使用 `net/http` 方法, 并且将尼格龙尼当作处ç†å™¨ä¼ å…¥, 这相对起æ¥å¼¹æ€§æ¯”较大, 例如: + +``` go +package main + +import ( + "fmt" + "log" + "net/http" + "time" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // 導入一些é è¨­ä¸­ä»‹å™¨ + n.UseHandler(mux) + + s := &http.Server{ + Addr: ":8080", + Handler: n, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + MaxHeaderBytes: 1 << 20, + } + log.Fatal(s.ListenAndServe()) +} +``` + +## 特定路由中间件 +如果你需è¦ç¾¤ç»„路由功能,需è¦å€ŸåŠ©ç‰¹å®šçš„路由中间件完æˆï¼Œåšæ³•å¾ˆç®€å•ï¼Œåªéœ€å»ºç«‹ä¸€ä¸ªæ–° Negroni 实例,传人路由处ç†å™¨é‡Œå³å¯ã€‚ + +``` go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// add admin routes here + +// Create a new negroni for the admin middleware +router.Handle("/admin", negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +``` + +如果你使用 [Gorilla Mux](https://github.com/gorilla/mux), 下方是一个使用 subrounter 的例å­: + +``` go +router := mux.NewRouter() +subRouter := mux.NewRouter().PathPrefix("/subpath").Subrouter().StrictSlash(true) +subRouter.HandleFunc("/", someSubpathHandler) // "/subpath/" +subRouter.HandleFunc("/:id", someSubpathHandler) // "/subpath/:id" + +// "/subpath" 是用æ¥ä¿è¯subRouter与主è¦è·¯ç”±è¿žç»“çš„å¿…è¦å‚æ•° +router.PathPrefix("/subpath").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(subRouter), +)) +``` + +`With()` å¯è¢«ç”¨æ¥é™ä½Žåœ¨è·¨è·¯ç”±åˆ†äº«æ—¶å¤šä½™çš„中介器. + +``` go +router := mux.NewRouter() +apiRoutes := mux.NewRouter() +// 在此新增API路由 +webRoutes := mux.NewRouter() +// 在此新增Web路由 + +// 建立通用中介器æ¥è·¨è·¯ç”±åˆ†äº« +common := negroni.New( + Middleware1, + Middleware2, +) + +// 为API中介器建立新的negroni +// 使用通用中介器作底 +router.PathPrefix("/api").Handler(common.With( + APIMiddleware1, + negroni.Wrap(apiRoutes), +)) +// 为Web中介器建立新的negroni +// 使用通用中介器作底 +router.PathPrefix("/web").Handler(common.With( + WebMiddleware1, + negroni.Wrap(webRoutes), +)) +``` + +## 内建中介器 + +### é™æ€ + +本中介器会在档案系统上æœåŠ¡æ¡£æ¡ˆ. 若档案ä¸å­˜åœ¨, 会将æµé‡å¯¼(proxy)到下个中介器. +如果你想è¦è¿”回`404 File Not Found`给档案ä¸å­˜åœ¨çš„请求, 请使用[http.FileServer](https://golang.org/pkg/net/http/#FileServer) +作为处ç†å™¨. + +范例: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + // http.FileServer的使用范例, 若你预期è¦"åƒä¼ºæœå™¨"而éž"中介器"的行为 + // mux.Handle("/public", http.FileServer(http.Dir("/home/public"))) + + n := negroni.New() + n.Use(negroni.NewStatic(http.Dir("/tmp"))) + n.UseHandler(mux) + + http.ListenAndServe(":3002", n) +} +``` + +从`/tmp`目录开始æœåŠ¡æ¡£æ¡ˆ 但如果请求的档案在档案系统中ä¸ç¬¦åˆ, 代ç†ä¼š +呼å«ä¸‹ä¸ªå¤„ç†å™¨. + +### æ¢å¤ + +本中介器接收`panic`跟错误代ç `500`的回应. 如果其他任何中介器写了回应 +çš„HTTP代ç æˆ–内容的è¯, 中介器会无法顺利地传é€500给用户端, 因为用户端 +å·²ç»æ”¶åˆ°HTTP的回应代ç . å¦å¤–, å¯ä»¥æŒ‚è½½`ErrorHandlerFunc`æ¥å›žæŠ¥500 +的错误到错误回报系统, 如: Sentry或Airbrake. + +范例: + + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + n.Use(negroni.NewRecovery()) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} +``` + + +将回传`500 Internal Server Error`到æ¯ä¸ªç»“æžœ. 也会把结果纪录到堆å è¿½è¸ª, +`PrintStack`设æˆ`true`(预设值)çš„è¯ä¹Ÿä¼šå°åˆ°æ³¨å†Œè€…. + +加错误处ç†å™¨çš„范例: + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + recovery := negroni.NewRecovery() + recovery.ErrorHandlerFunc = reportToSentry + n.Use(recovery) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} + +func reportToSentry(error interface{}) { + // 在这写些程å¼å›žæŠ¥é”™è¯¯ç»™Sentry +} +``` + + +## Logger + +本中介器纪录å„个进入的请求与回应. + +范例: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.New() + n.Use(negroni.NewLogger()) + n.UseHandler(mux) + + http.ListenAndServe(":3004", n) +} +``` + +在æ¯ä¸ªè¯·æ±‚å°çš„纪录会看起æ¥åƒ: + +``` +[negroni] Started GET / +[negroni] Completed 200 OK in 145.446µs +``` + +## 第三方中间件 + +以下的兼容 Negroni 的中间件列表,如果你也有兼容 Negroni 的中间件,å¯ä»¥æ交到这个列表æ¥äº¤æ¢é“¾æŽ¥ï¼Œæˆ‘们很ä¹æ„åšè¿™æ ·æœ‰ç›Šçš„事情。 + + +| 中间件 | 作者 | æè¿° | +| -------------|------------|-------------| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | HTTP 请求数æ®æ³¨å…¥åˆ° structs 实体| +| [cloudwatch](https://github.com/cvillecsteele/negroni-cloudwatch) | [Colin Steele](https://github.com/cvillecsteele) | AWS CloudWatch 矩阵的中间件 | +| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | [Cross Origin Resource Sharing](http://www.w3.org/TR/cors/) (CORS) support | +| [csp](https://github.com/awakenetworks/csp) | [Awake Networks](https://github.com/awakenetworks) | 基于[Content Security Policy](https://www.w3.org/TR/CSP2/)(CSP) | +| [delay](https://github.com/jeffbmartinez/delay) | [Jeff Martinez](https://github.com/jeffbmartinez) | 为endpoints增加延迟时间. 在测试严é‡ç½‘路延迟的效应时好用 | +| [New Relic Go Agent](https://github.com/yadvendar/negroni-newrelic-go-agent) | [Yadvendar Champawat](https://github.com/yadvendar) | 官网 [New Relic Go Agent](https://github.com/newrelic/go-agent) (ç›®å‰æ­£åœ¨æµ‹è¯•é˜¶æ®µ) | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic agent for Go runtime | +| [Graceful](https://github.com/stretchr/graceful) | [Tyler Bunnell](https://github.com/tylerb) | 优雅关闭 HTTP 的中间件 | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | å“åº”æµ GZIP 压缩 | +| [JWT Middleware](https://github.com/auth0/go-jwt-middleware) | [Auth0](https://github.com/auth0) | Middleware checks for a JWT on the `Authorization` header on incoming requests and decodes it| +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | 基于 Logrus-based logger 日志 | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | oAuth2 中间件 | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | å¿«é€Ÿç”Ÿæˆ TinySVG, HTML and CSS 中间件 | +| [permissions2](https://github.com/xyproto/permissions2) | [Alexander Rødseth](https://github.com/xyproto) | Cookies, 用户和æƒé™ | +| [prometheus](https://github.com/zbindenren/negroni-prometheus) | [Rene Zbinden](https://github.com/zbindenren) | 简易建立矩阵端点给[prometheus](http://prometheus.io)建构工具 | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | 渲染 JSON, XML and HTML 中间件 | +| [RestGate](https://github.com/pjebs/restgate) | [Prasanga Siripala](https://github.com/pjebs) | REST API 接å£çš„å®‰å…¨è®¤è¯ | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | Middleware that implements a few quick security wins | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Session 会è¯ç®¡ç† | +| [stats](https://github.com/thoas/stats) | [Florent Messa](https://github.com/thoas) | 检测 web 应用当å‰è¿è¡ŒçŠ¶æ€ä¿¡æ¯ (å“应时间等等。) | +| [VanGoH](https://github.com/auroratechnologies/vangoh) | [Taylor Wrobel](https://github.com/twrobel3) | Configurable [AWS-Style](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) 基于 HMAC 鉴æƒè®¤è¯çš„中间件 | +| [xrequestid](https://github.com/pilu/xrequestid) | [Andrea Franz](https://github.com/pilu) | ç»™æ¯ä¸ªè¯·æ±‚指定一个éšæœº X-Request-Id 头的中间件 | +| [mgo session](https://github.com/joeljames/nigroni-mgo-session) | [Joel James](https://github.com/joeljames) | 处ç†åœ¨æ¯ä¸ªè¯·æ±‚建立与关闭mgo sessions | +| [digits](https://github.com/bamarni/digits) | [Bilal Amarni](https://github.com/bamarni) | 处ç†[Twitter Digits](https://get.digits.com/)çš„è®¤è¯ | + +## 范例 +[Alexander Rødseth](https://github.com/xyproto) 创建的 [mooseware](https://github.com/xyproto/mooseware) 是一个写兼容 Negroni 中间件的处ç†å™¨éª¨æž¶çš„范例。 + +## å³æ—¶ç¼–译 +[gin](https://github.com/codegangsta/gin) å’Œ [fresh](https://github.com/pilu/fresh) 这两个应用是å³æ—¶ç¼–译的 Negroni 工具,推è用户开å‘的时候使用。 + +## Go & Negroni åˆå­¦è€…必读推è + +* [在中间件中使用上下文把消æ¯ä¼ é€’ç»™åŽç«¯å¤„ç†å™¨](http://elithrar.github.io/article/map-string-interface/) +* [了解中间件](http://mattstauffer.co/blog/laravel-5.0-middleware-replacing-filters) + +## 关于 + +尼格龙尼正是[Code Gangsta](https://codegangsta.io/)的执ç€è®¾è®¡. + +[Gorilla Mux]: https://github.com/gorilla/mux +[`http.FileSystem`]: https://godoc.org/net/http#FileSystem diff --git a/vendor/github.com/urfave/negroni/translations/README_zh_tw.md b/vendor/github.com/urfave/negroni/translations/README_zh_tw.md new file mode 100644 index 00000000..42d8e253 --- /dev/null +++ b/vendor/github.com/urfave/negroni/translations/README_zh_tw.md @@ -0,0 +1,446 @@ +# Negroni(尼格é¾å°¼) +[![GoDoc](https://godoc.org/github.com/urfave/negroni?status.svg)](http://godoc.org/github.com/urfave/negroni) +[![Build Status](https://travis-ci.org/urfave/negroni.svg?branch=master)](https://travis-ci.org/urfave/negroni) +[![codebeat](https://codebeat.co/badges/47d320b1-209e-45e8-bd99-9094bc5111e2)](https://codebeat.co/projects/github-com-urfave-negroni) +[![codecov](https://codecov.io/gh/urfave/negroni/branch/master/graph/badge.svg)](https://codecov.io/gh/urfave/negroni) + +**注æ„:** 本函å¼åº«åŽŸä¾†è‡ªæ–¼ +`github.com/codegangsta/negroni` -- Github會自動將連線轉到本連çµ, 但我們建議你更新一下åƒç…§. + +尼格é¾å°¼æ˜¯ä¸€æ¬¾web中介器. é“地的Go寫法ã€ç²¾ç°¡ã€éžä¾µå…¥ã€é¼“勵用`net/http`處ç†å™¨. + +如果你喜歡[Martini](http://github.com/go-martini/martini), 但覺得這其中包太多神奇的功能, 那麼尼格é¾å°¼æœƒæ˜¯ä½ çš„最佳é¸æ“‡. + +其他語言: +* [German (de_DE)](translations/README_de_de.md) +* [Português Brasileiro (pt_BR)](translations/README_pt_br.md) +* [简体中文 (zh_cn)](translations/README_zh_cn.md) +* [ç¹é«”中文 (zh_tw)](translations/README_zh_tw.md) +* [日本語 (ja_JP)](translations/README_ja_JP.md) + +## 入門 + +安è£å®ŒGo且設好[GOPATH](http://golang.org/doc/code.html#GOPATH), 建立你的第一個`.go`檔. å¯ä»¥å‘½å為`server.go`. + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // 導入一些é è¨­ä¸­ä»‹å™¨ + n.UseHandler(mux) + + http.ListenAndServe(":3000", n) +} +``` + +安è£å°¼æ ¼é¾å°¼å¥—件 (最低需求為**go 1.1**或更高版本): +``` +go get github.com/urfave/negroni +``` + +執行伺æœå™¨: +``` +go run server.go +``` + +ä½ ç¾åœ¨èµ·äº†ä¸€å€‹Goçš„net/http網é ä¼ºæœå™¨åœ¨`localhost:3000`. + +### 打包 +如果`negroni`在Debian環境下是個[套件](https://packages.debian.org/sid/golang-github-urfave-negroni-dev), å¯ç›´æŽ¥ +執行`apt install golang-github-urfave-negroni-dev`安è£(這在`sid`倉庫中). + +## 尼格é¾å°¼æ˜¯å€‹frameworkå—Ž? +尼格é¾å°¼**ä¸æ˜¯**framework, 是個設計用來直接使用net/httpçš„library. + +## 路由? +尼格é¾å°¼æ˜¯BYOR (Bring your own Router, 帶給你自訂路由). 在Go社群已經有大é‡å¯ç”¨çš„http路由器, 尼格é¾å°¼è©¦è‘—åšå¥½å®Œå…¨æ”¯æ´`net/http`, 例如與[Gorilla Mux](http://github.com/gorilla/mux)æ•´åˆ: + +``` go +router := mux.NewRouter() +router.HandleFunc("/", HomeHandler) + +n := negroni.New(Middleware1, Middleware2) +// 或在Use()函å¼ä¸­ä½¿ç”¨ä¸­ä»‹å™¨ +n.Use(Middleware3) +// 路由器放最後 +n.UseHandler(router) + +http.ListenAndServe(":3001", n) +``` + +## `negroni.Classic()` +`negroni.Classic()` æ供一些好用的é è¨­ä¸­ä»‹å™¨: + +* [`negroni.Recovery`](https://github.com/urfave/negroni#recovery) - Panic 還原中介器 +* [`negroni.Logging`](https://github.com/urfave/negroni#logger) - Request/Response 紀錄中介器 +* [`negroni.Static`](https://github.com/urfave/negroni#static) - 在"public"目錄下的éœæ…‹æª”案æœå‹™ + +尼格é¾å°¼çš„這些功能讓你開發變得很簡單. + +## 處ç†å™¨(Handlers) +尼格é¾å°¼æ供一個雙å‘中介器的機制, 介é¢ç‚º`negroni.Handler`: + +``` go +type Handler interface { + ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) +} +``` + +如果中介器沒有寫入ResponseWriter, 會呼å«é€šé“裡é¢çš„下個`http.HandlerFunc`讓給中介處ç†å™¨. å¯ä»¥è¢«ç”¨ä¾†åšè‰¯å¥½çš„應用: + +``` go +func MyMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { + // 在這之å‰åšä¸€äº›äº‹ + next(rw, r) + // 在這之後åšä¸€äº›äº‹ +} +``` + +然後你å¯ä»¥é€éŽ `Use` 函數å°æ‡‰åˆ°è™•ç†å™¨çš„通é“: + +``` go +n := negroni.New() +n.Use(negroni.HandlerFunc(MyMiddleware)) +``` + +你也å¯ä»¥å°æ‡‰åŽŸå§‹çš„ `http.Handler`: + +``` go +n := negroni.New() + +mux := http.NewServeMux() +// map your routes + +n.UseHandler(mux) + +http.ListenAndServe(":3000", n) +``` + +## `Run()` +尼格é¾å°¼æœ‰ä¸€å€‹å¾ˆå¥½ç”¨çš„函數`Run`, `Run`接收addr字串辨識[http.ListenAndServe](http://golang.org/pkg/net/http#ListenAndServe). + +``` go +package main + +import ( + "github.com/urfave/negroni" +) + +func main() { + n := negroni.Classic() + n.Run(":8080") +} +``` + +未æ供路徑情æ³ä¸‹æœƒä½¿ç”¨ç³»çµ±ç’°å¢ƒè®Šæ•¸`PORT`, 若未定義該系統環境變數則會用é è¨­è·¯å¾‘, 請見[Run](https://godoc.org/github.com/urfave/negroni#Negroni.Run)細看說明. + +一般來說, 你會希望使用 `net/http` 方法, 並且將尼格é¾å°¼ç•¶ä½œè™•ç†å™¨å‚³å…¥, 這相å°èµ·ä¾†å½ˆæ€§æ¯”較大, 例如: + +``` go +package main + +import ( + "fmt" + "log" + "net/http" + "time" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.Classic() // 導入一些é è¨­ä¸­ä»‹å™¨ + n.UseHandler(mux) + + s := &http.Server{ + Addr: ":8080", + Handler: n, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + MaxHeaderBytes: 1 << 20, + } + log.Fatal(s.ListenAndServe()) +} +``` + +## 路由特有中介器 +如果你有一群路由需è¦åŸ·è¡Œç‰¹åˆ¥çš„中介器, ä½ å¯ä»¥ç°¡å–®çš„建立一個新的尼格é¾å°¼å¯¦é«”當作路由處ç†å™¨. + +``` go +router := mux.NewRouter() +adminRoutes := mux.NewRouter() +// 在這裡新增管ç†ç”¨çš„路由 + +// 為管ç†ä¸­ä»‹å™¨å»ºç«‹ä¸€å€‹æ–°çš„尼格é¾å°¼ +router.Handle("/admin", negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(adminRoutes), +)) +``` + +如果你使用 [Gorilla Mux](https://github.com/gorilla/mux), 下方是一個使用 subrounter 的例å­: + +``` go +router := mux.NewRouter() +subRouter := mux.NewRouter().PathPrefix("/subpath").Subrouter().StrictSlash(true) +subRouter.HandleFunc("/", someSubpathHandler) // "/subpath/" +subRouter.HandleFunc("/:id", someSubpathHandler) // "/subpath/:id" + +// "/subpath" 是用來ä¿è­‰subRouter與主è¦è·¯ç”±é€£çµçš„å¿…è¦åƒæ•¸ +router.PathPrefix("/subpath").Handler(negroni.New( + Middleware1, + Middleware2, + negroni.Wrap(subRouter), +)) +``` + +`With()` å¯è¢«ç”¨ä¾†é™ä½Žåœ¨è·¨è·¯ç”±åˆ†äº«æ™‚多餘的中介器. + +``` go +router := mux.NewRouter() +apiRoutes := mux.NewRouter() +// 在此新增API路由 +webRoutes := mux.NewRouter() +// 在此新增Web路由 + +// 建立通用中介器來跨路由分享 +common := negroni.New( + Middleware1, + Middleware2, +) + +// 為API中介器建立新的negroni +// 使用通用中介器作底 +router.PathPrefix("/api").Handler(common.With( + APIMiddleware1, + negroni.Wrap(apiRoutes), +)) +// 為Web中介器建立新的negroni +// 使用通用中介器作底 +router.PathPrefix("/web").Handler(common.With( + WebMiddleware1, + negroni.Wrap(webRoutes), +)) +``` + + +## 內建中介器 + +### éœæ…‹ + +本中介器會在檔案系統上æœå‹™æª”案. 若檔案ä¸å­˜åœ¨, 會將æµé‡å°Ž(proxy)到下個中介器. +如果你想è¦è¿”回`404 File Not Found`給檔案ä¸å­˜åœ¨çš„請求, 請使用[http.FileServer](https://golang.org/pkg/net/http/#FileServer) +作為處ç†å™¨. + +範例: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + // http.FileServer的使用範例, 若你é æœŸè¦"åƒä¼ºæœå™¨"而éž"中介器"的行為 + // mux.Handle("/public", http.FileServer(http.Dir("/home/public"))) + + n := negroni.New() + n.Use(negroni.NewStatic(http.Dir("/tmp"))) + n.UseHandler(mux) + + http.ListenAndServe(":3002", n) +} +``` + +從`/tmp`目錄開始æœå‹™æª”案 但如果請求的檔案在檔案系統中ä¸ç¬¦åˆ, 代ç†æœƒ +呼å«ä¸‹å€‹è™•ç†å™¨. + +### æ¢å¾© + +本中介器接收`panic`跟錯誤代碼`500`的回應. 如果其他任何中介器寫了回應 +çš„HTTP代碼或內容的話, 中介器會無法順利地傳é€500給用戶端, 因為用戶端 +已經收到HTTP的回應代碼. å¦å¤–, å¯ä»¥æŽ›è¼‰`ErrorHandlerFunc`來回報500 +的錯誤到錯誤回報系統, 如: Sentry或Airbrake. + +範例: + + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + n.Use(negroni.NewRecovery()) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} +``` + + +將回傳`500 Internal Server Error`到æ¯å€‹çµæžœ. 也會把çµæžœç´€éŒ„到堆疊追蹤, +`PrintStack`設æˆ`true`(é è¨­å€¼)的話也會å°åˆ°è¨»å†Šè€…. + +加錯誤處ç†å™¨çš„範例: + +``` go +package main + +import ( + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + panic("oh no") + }) + + n := negroni.New() + recovery := negroni.NewRecovery() + recovery.ErrorHandlerFunc = reportToSentry + n.Use(recovery) + n.UseHandler(mux) + + http.ListenAndServe(":3003", n) +} + +func reportToSentry(error interface{}) { + // 在這寫些程å¼å›žå ±éŒ¯èª¤çµ¦Sentry +} +``` + + +## Logger + +本中介器紀錄å„個進入的請求與回應. + +範例: + + +``` go +package main + +import ( + "fmt" + "net/http" + + "github.com/urfave/negroni" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + fmt.Fprintf(w, "Welcome to the home page!") + }) + + n := negroni.New() + n.Use(negroni.NewLogger()) + n.UseHandler(mux) + + http.ListenAndServe(":3004", n) +} +``` + +在æ¯å€‹è«‹æ±‚å°çš„紀錄會看起來åƒ: + +``` +[negroni] Started GET / +[negroni] Completed 200 OK in 145.446µs +``` + +## 第三方中介器 + +以下清單是目å‰å¯ç”¨æ–¼å°¼æ ¼é¾å°¼çš„中介器. 如果你自己手癢åšäº†ä¸€å€‹, 請別å嗇自己把連çµè²¼åœ¨ä¸‹é¢å§: + +| 中介器 | 作者 | 說明 | +| -----------|--------|-------------| +| [binding](https://github.com/mholt/binding) | [Matt Holt](https://github.com/mholt) | 把HTTP請求的資料榜定到structs | +| [cloudwatch](https://github.com/cvillecsteele/negroni-cloudwatch) | [Colin Steele](https://github.com/cvillecsteele) | AWS CloudWatch 矩陣的中介器 | +| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | 支æ´[Cross Origin Resource Sharing](http://www.w3.org/TR/cors/)(CORS) | +| [csp](https://github.com/awakenetworks/csp) | [Awake Networks](https://github.com/awakenetworks) | 支æ´[Content Security Policy](https://www.w3.org/TR/CSP2/)(CSP) | +| [delay](https://github.com/jeffbmartinez/delay) | [Jeff Martinez](https://github.com/jeffbmartinez) | 為endpoints增加延é²æ™‚é–“. 在測試嚴é‡ç¶²è·¯å»¶é²çš„效應時好用 | +| [New Relic Go Agent](https://github.com/yadvendar/negroni-newrelic-go-agent) | [Yadvendar Champawat](https://github.com/yadvendar) | 官網 [New Relic Go Agent](https://github.com/newrelic/go-agent) (ç›®å‰æ­£åœ¨æ¸¬è©¦éšŽæ®µ) | +| [gorelic](https://github.com/jingweno/negroni-gorelic) | [Jingwen Owen Ou](https://github.com/jingweno) | New Relic agent for Go runtime | +| [Graceful](https://github.com/tylerb/graceful) | [Tyler Bunnell](https://github.com/tylerb) | 優雅地關閉HTTP | +| [gzip](https://github.com/phyber/negroni-gzip) | [phyber](https://github.com/phyber) | GZIP資æºå£“縮 | +| [JWT Middleware](https://github.com/auth0/go-jwt-middleware) | [Auth0](https://github.com/auth0) | Middleware 檢查JWT在`Authorization` header on incoming requests and decodes it| +| [logrus](https://github.com/meatballhat/negroni-logrus) | [Dan Buch](https://github.com/meatballhat) | 基於Logrus的紀錄器 | +| [oauth2](https://github.com/goincremental/negroni-oauth2) | [David Bochenski](https://github.com/bochenski) | oAuth2中介器 | +| [onthefly](https://github.com/xyproto/onthefly) | [Alexander Rødseth](https://github.com/xyproto) | 一秒產生TinySVG, HTML, CSS | +| [permissions2](https://github.com/xyproto/permissions2) | [Alexander Rødseth](https://github.com/xyproto) | Cookies與使用者權é™é…套 | +| [prometheus](https://github.com/zbindenren/negroni-prometheus) | [Rene Zbinden](https://github.com/zbindenren) | 簡易建立矩陣端點給[prometheus](http://prometheus.io)建構工具 | +| [render](https://github.com/unrolled/render) | [Cory Jacobsen](https://github.com/unrolled) | JSON, XML, HTML樣æ¿çš„渲染 | +| [RestGate](https://github.com/pjebs/restgate) | [Prasanga Siripala](https://github.com/pjebs) | REST API端點安全èªè­‰ | +| [secure](https://github.com/unrolled/secure) | [Cory Jacobsen](https://github.com/unrolled) | 簡易安全中介器 | +| [sessions](https://github.com/goincremental/negroni-sessions) | [David Bochenski](https://github.com/bochenski) | Session ç®¡ç† | +| [stats](https://github.com/thoas/stats) | [Florent Messa](https://github.com/thoas) | 儲存關於網é æ‡‰ç”¨çš„資訊(回應時間之類) | +| [VanGoH](https://github.com/auroratechnologies/vangoh) | [Taylor Wrobel](https://github.com/twrobel3) | å¯è¨­å®šçš„[AWS風格](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) HMACèªè­‰ä¸­ä»‹å™¨ | +| [xrequestid](https://github.com/pilu/xrequestid) | [Andrea Franz](https://github.com/pilu) | 在æ¯å€‹request指定一個隨機X-Request-Id header的中介器 | +| [mgo session](https://github.com/joeljames/nigroni-mgo-session) | [Joel James](https://github.com/joeljames) | 處ç†åœ¨æ¯å€‹è«‹æ±‚建立與關閉mgo sessions | +| [digits](https://github.com/bamarni/digits) | [Bilal Amarni](https://github.com/bamarni) | 處ç†[Twitter Digits](https://get.digits.com/)çš„èªè­‰ | + +## 應用範例 + +[Alexander Rødseth](https://github.com/xyproto)所建 +[mooseware](https://github.com/xyproto/mooseware)用來寫尼格é¾å°¼ä¸­ä»‹è™•ç†å™¨çš„骨架 + +## å³æ™‚編譯 + +[gin](https://github.com/codegangsta/gin)å’Œ +[fresh](https://github.com/pilu/fresh)兩個尼格é¾å°¼å³æ™‚é‡è¼‰çš„應用. + +## Go & 尼格é¾å°¼åˆå­¸è€…必讀 + +* [使用Context將資訊從中介器é€åˆ°è™•ç†å™¨](http://elithrar.github.io/article/map-string-interface/) +* [ç†è§£ä¸­ä»‹å™¨](https://mattstauffer.co/blog/laravel-5.0-middleware-filter-style) + +## 關於 + +尼格é¾å°¼æ­£æ˜¯[Code Gangsta](https://codegangsta.io/)的執著設計. + +[Gorilla Mux]: https://github.com/gorilla/mux +[`http.FileSystem`]: https://godoc.org/net/http#FileSystem + +譯者: Festum Qin (Festum@G.PL) diff --git a/vendor/golang.org/x/crypto/.gitattributes b/vendor/golang.org/x/crypto/.gitattributes new file mode 100644 index 00000000..d2f212e5 --- /dev/null +++ b/vendor/golang.org/x/crypto/.gitattributes @@ -0,0 +1,10 @@ +# Treat all files in this repo as binary, with no git magic updating +# line endings. Windows users contributing to Go will need to use a +# modern version of git and editors capable of LF line endings. +# +# We'll prevent accidental CRLF line endings from entering the repo +# via the git-review gofmt checks. +# +# See golang.org/issue/9281 + +* -text diff --git a/vendor/golang.org/x/crypto/.gitignore b/vendor/golang.org/x/crypto/.gitignore new file mode 100644 index 00000000..8339fd61 --- /dev/null +++ b/vendor/golang.org/x/crypto/.gitignore @@ -0,0 +1,2 @@ +# Add no patterns to .hgignore except for files generated by the build. +last-change diff --git a/vendor/golang.org/x/crypto/AUTHORS b/vendor/golang.org/x/crypto/AUTHORS new file mode 100644 index 00000000..15167cd7 --- /dev/null +++ b/vendor/golang.org/x/crypto/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/crypto/CONTRIBUTING.md b/vendor/golang.org/x/crypto/CONTRIBUTING.md new file mode 100644 index 00000000..88dff59b --- /dev/null +++ b/vendor/golang.org/x/crypto/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing to Go + +Go is an open source project. + +It is the work of hundreds of contributors. We appreciate your help! + + +## Filing issues + +When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: + +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? + +General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. +The gophers there will answer or ask you to file an issue if you've tripped over a bug. + +## Contributing code + +Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) +before sending patches. + +**We do not accept GitHub pull requests** +(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). + +Unless otherwise noted, the Go source files are distributed under +the BSD-style license found in the LICENSE file. + diff --git a/vendor/golang.org/x/crypto/CONTRIBUTORS b/vendor/golang.org/x/crypto/CONTRIBUTORS new file mode 100644 index 00000000..1c4577e9 --- /dev/null +++ b/vendor/golang.org/x/crypto/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE new file mode 100644 index 00000000..6a66aea5 --- /dev/null +++ b/vendor/golang.org/x/crypto/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS new file mode 100644 index 00000000..73309904 --- /dev/null +++ b/vendor/golang.org/x/crypto/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/crypto/README b/vendor/golang.org/x/crypto/README new file mode 100644 index 00000000..f1e0cbf9 --- /dev/null +++ b/vendor/golang.org/x/crypto/README @@ -0,0 +1,3 @@ +This repository holds supplementary Go cryptography libraries. + +To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/golang.org/x/crypto/acme/acme.go b/vendor/golang.org/x/crypto/acme/acme.go new file mode 100644 index 00000000..be18ad73 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/acme.go @@ -0,0 +1,944 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package acme provides an implementation of the +// Automatic Certificate Management Environment (ACME) spec. +// See https://tools.ietf.org/html/draft-ietf-acme-acme-02 for details. +// +// Most common scenarios will want to use autocert subdirectory instead, +// which provides automatic access to certificates from Let's Encrypt +// and any other ACME-based CA. +// +// This package is a work in progress and makes no API stability promises. +package acme + +import ( + "bytes" + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/sha256" + "crypto/tls" + "crypto/x509" + "encoding/base64" + "encoding/hex" + "encoding/json" + "encoding/pem" + "errors" + "fmt" + "io" + "io/ioutil" + "math/big" + "net/http" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "golang.org/x/net/context/ctxhttp" +) + +// LetsEncryptURL is the Directory endpoint of Let's Encrypt CA. +const LetsEncryptURL = "https://acme-v01.api.letsencrypt.org/directory" + +const ( + maxChainLen = 5 // max depth and breadth of a certificate chain + maxCertSize = 1 << 20 // max size of a certificate, in bytes +) + +// CertOption is an optional argument type for Client methods which manipulate +// certificate data. +type CertOption interface { + privateCertOpt() +} + +// WithKey creates an option holding a private/public key pair. +// The private part signs a certificate, and the public part represents the signee. +func WithKey(key crypto.Signer) CertOption { + return &certOptKey{key} +} + +type certOptKey struct { + key crypto.Signer +} + +func (*certOptKey) privateCertOpt() {} + +// WithTemplate creates an option for specifying a certificate template. +// See x509.CreateCertificate for template usage details. +// +// In TLSSNIxChallengeCert methods, the template is also used as parent, +// resulting in a self-signed certificate. +// The DNSNames field of t is always overwritten for tls-sni challenge certs. +func WithTemplate(t *x509.Certificate) CertOption { + return (*certOptTemplate)(t) +} + +type certOptTemplate x509.Certificate + +func (*certOptTemplate) privateCertOpt() {} + +// Client is an ACME client. +// The only required field is Key. An example of creating a client with a new key +// is as follows: +// +// key, err := rsa.GenerateKey(rand.Reader, 2048) +// if err != nil { +// log.Fatal(err) +// } +// client := &Client{Key: key} +// +type Client struct { + // Key is the account key used to register with a CA and sign requests. + // Key.Public() must return a *rsa.PublicKey or *ecdsa.PublicKey. + Key crypto.Signer + + // HTTPClient optionally specifies an HTTP client to use + // instead of http.DefaultClient. + HTTPClient *http.Client + + // DirectoryURL points to the CA directory endpoint. + // If empty, LetsEncryptURL is used. + // Mutating this value after a successful call of Client's Discover method + // will have no effect. + DirectoryURL string + + dirMu sync.Mutex // guards writes to dir + dir *Directory // cached result of Client's Discover method +} + +// Discover performs ACME server discovery using c.DirectoryURL. +// +// It caches successful result. So, subsequent calls will not result in +// a network round-trip. This also means mutating c.DirectoryURL after successful call +// of this method will have no effect. +func (c *Client) Discover(ctx context.Context) (Directory, error) { + c.dirMu.Lock() + defer c.dirMu.Unlock() + if c.dir != nil { + return *c.dir, nil + } + + dirURL := c.DirectoryURL + if dirURL == "" { + dirURL = LetsEncryptURL + } + res, err := ctxhttp.Get(ctx, c.HTTPClient, dirURL) + if err != nil { + return Directory{}, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return Directory{}, responseError(res) + } + + var v struct { + Reg string `json:"new-reg"` + Authz string `json:"new-authz"` + Cert string `json:"new-cert"` + Revoke string `json:"revoke-cert"` + Meta struct { + Terms string `json:"terms-of-service"` + Website string `json:"website"` + CAA []string `json:"caa-identities"` + } + } + if json.NewDecoder(res.Body).Decode(&v); err != nil { + return Directory{}, err + } + c.dir = &Directory{ + RegURL: v.Reg, + AuthzURL: v.Authz, + CertURL: v.Cert, + RevokeURL: v.Revoke, + Terms: v.Meta.Terms, + Website: v.Meta.Website, + CAA: v.Meta.CAA, + } + return *c.dir, nil +} + +// CreateCert requests a new certificate using the Certificate Signing Request csr encoded in DER format. +// The exp argument indicates the desired certificate validity duration. CA may issue a certificate +// with a different duration. +// If the bundle argument is true, the returned value will also contain the CA (issuer) certificate chain. +// +// In the case where CA server does not provide the issued certificate in the response, +// CreateCert will poll certURL using c.FetchCert, which will result in additional round-trips. +// In such scenario the caller can cancel the polling with ctx. +// +// CreateCert returns an error if the CA's response or chain was unreasonably large. +// Callers are encouraged to parse the returned value to ensure the certificate is valid and has the expected features. +func (c *Client) CreateCert(ctx context.Context, csr []byte, exp time.Duration, bundle bool) (der [][]byte, certURL string, err error) { + if _, err := c.Discover(ctx); err != nil { + return nil, "", err + } + + req := struct { + Resource string `json:"resource"` + CSR string `json:"csr"` + NotBefore string `json:"notBefore,omitempty"` + NotAfter string `json:"notAfter,omitempty"` + }{ + Resource: "new-cert", + CSR: base64.RawURLEncoding.EncodeToString(csr), + } + now := timeNow() + req.NotBefore = now.Format(time.RFC3339) + if exp > 0 { + req.NotAfter = now.Add(exp).Format(time.RFC3339) + } + + res, err := postJWS(ctx, c.HTTPClient, c.Key, c.dir.CertURL, req) + if err != nil { + return nil, "", err + } + defer res.Body.Close() + if res.StatusCode != http.StatusCreated { + return nil, "", responseError(res) + } + + curl := res.Header.Get("location") // cert permanent URL + if res.ContentLength == 0 { + // no cert in the body; poll until we get it + cert, err := c.FetchCert(ctx, curl, bundle) + return cert, curl, err + } + // slurp issued cert and CA chain, if requested + cert, err := responseCert(ctx, c.HTTPClient, res, bundle) + return cert, curl, err +} + +// FetchCert retrieves already issued certificate from the given url, in DER format. +// It retries the request until the certificate is successfully retrieved, +// context is cancelled by the caller or an error response is received. +// +// The returned value will also contain the CA (issuer) certificate if the bundle argument is true. +// +// FetchCert returns an error if the CA's response or chain was unreasonably large. +// Callers are encouraged to parse the returned value to ensure the certificate is valid +// and has expected features. +func (c *Client) FetchCert(ctx context.Context, url string, bundle bool) ([][]byte, error) { + for { + res, err := ctxhttp.Get(ctx, c.HTTPClient, url) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode == http.StatusOK { + return responseCert(ctx, c.HTTPClient, res, bundle) + } + if res.StatusCode > 299 { + return nil, responseError(res) + } + d := retryAfter(res.Header.Get("retry-after"), 3*time.Second) + select { + case <-time.After(d): + // retry + case <-ctx.Done(): + return nil, ctx.Err() + } + } +} + +// RevokeCert revokes a previously issued certificate cert, provided in DER format. +// +// The key argument, used to sign the request, must be authorized +// to revoke the certificate. It's up to the CA to decide which keys are authorized. +// For instance, the key pair of the certificate may be authorized. +// If the key is nil, c.Key is used instead. +func (c *Client) RevokeCert(ctx context.Context, key crypto.Signer, cert []byte, reason CRLReasonCode) error { + if _, err := c.Discover(ctx); err != nil { + return err + } + + body := &struct { + Resource string `json:"resource"` + Cert string `json:"certificate"` + Reason int `json:"reason"` + }{ + Resource: "revoke-cert", + Cert: base64.RawURLEncoding.EncodeToString(cert), + Reason: int(reason), + } + if key == nil { + key = c.Key + } + res, err := postJWS(ctx, c.HTTPClient, key, c.dir.RevokeURL, body) + if err != nil { + return err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return responseError(res) + } + return nil +} + +// AcceptTOS always returns true to indicate the acceptance of a CA's Terms of Service +// during account registration. See Register method of Client for more details. +func AcceptTOS(tosURL string) bool { return true } + +// Register creates a new account registration by following the "new-reg" flow. +// It returns registered account. The a argument is not modified. +// +// The registration may require the caller to agree to the CA's Terms of Service (TOS). +// If so, and the account has not indicated the acceptance of the terms (see Account for details), +// Register calls prompt with a TOS URL provided by the CA. Prompt should report +// whether the caller agrees to the terms. To always accept the terms, the caller can use AcceptTOS. +func (c *Client) Register(ctx context.Context, a *Account, prompt func(tosURL string) bool) (*Account, error) { + if _, err := c.Discover(ctx); err != nil { + return nil, err + } + + var err error + if a, err = c.doReg(ctx, c.dir.RegURL, "new-reg", a); err != nil { + return nil, err + } + var accept bool + if a.CurrentTerms != "" && a.CurrentTerms != a.AgreedTerms { + accept = prompt(a.CurrentTerms) + } + if accept { + a.AgreedTerms = a.CurrentTerms + a, err = c.UpdateReg(ctx, a) + } + return a, err +} + +// GetReg retrieves an existing registration. +// The url argument is an Account URI. +func (c *Client) GetReg(ctx context.Context, url string) (*Account, error) { + a, err := c.doReg(ctx, url, "reg", nil) + if err != nil { + return nil, err + } + a.URI = url + return a, nil +} + +// UpdateReg updates an existing registration. +// It returns an updated account copy. The provided account is not modified. +func (c *Client) UpdateReg(ctx context.Context, a *Account) (*Account, error) { + uri := a.URI + a, err := c.doReg(ctx, uri, "reg", a) + if err != nil { + return nil, err + } + a.URI = uri + return a, nil +} + +// Authorize performs the initial step in an authorization flow. +// The caller will then need to choose from and perform a set of returned +// challenges using c.Accept in order to successfully complete authorization. +// +// If an authorization has been previously granted, the CA may return +// a valid authorization (Authorization.Status is StatusValid). If so, the caller +// need not fulfill any challenge and can proceed to requesting a certificate. +func (c *Client) Authorize(ctx context.Context, domain string) (*Authorization, error) { + if _, err := c.Discover(ctx); err != nil { + return nil, err + } + + type authzID struct { + Type string `json:"type"` + Value string `json:"value"` + } + req := struct { + Resource string `json:"resource"` + Identifier authzID `json:"identifier"` + }{ + Resource: "new-authz", + Identifier: authzID{Type: "dns", Value: domain}, + } + res, err := postJWS(ctx, c.HTTPClient, c.Key, c.dir.AuthzURL, req) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusCreated { + return nil, responseError(res) + } + + var v wireAuthz + if err := json.NewDecoder(res.Body).Decode(&v); err != nil { + return nil, fmt.Errorf("acme: invalid response: %v", err) + } + if v.Status != StatusPending && v.Status != StatusValid { + return nil, fmt.Errorf("acme: unexpected status: %s", v.Status) + } + return v.authorization(res.Header.Get("Location")), nil +} + +// GetAuthorization retrieves an authorization identified by the given URL. +// +// If a caller needs to poll an authorization until its status is final, +// see the WaitAuthorization method. +func (c *Client) GetAuthorization(ctx context.Context, url string) (*Authorization, error) { + res, err := ctxhttp.Get(ctx, c.HTTPClient, url) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK && res.StatusCode != http.StatusAccepted { + return nil, responseError(res) + } + var v wireAuthz + if err := json.NewDecoder(res.Body).Decode(&v); err != nil { + return nil, fmt.Errorf("acme: invalid response: %v", err) + } + return v.authorization(url), nil +} + +// RevokeAuthorization relinquishes an existing authorization identified +// by the given URL. +// The url argument is an Authorization.URI value. +// +// If successful, the caller will be required to obtain a new authorization +// using the Authorize method before being able to request a new certificate +// for the domain associated with the authorization. +// +// It does not revoke existing certificates. +func (c *Client) RevokeAuthorization(ctx context.Context, url string) error { + req := struct { + Resource string `json:"resource"` + Delete bool `json:"delete"` + }{ + Resource: "authz", + Delete: true, + } + res, err := postJWS(ctx, c.HTTPClient, c.Key, url, req) + if err != nil { + return err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return responseError(res) + } + return nil +} + +// WaitAuthorization polls an authorization at the given URL +// until it is in one of the final states, StatusValid or StatusInvalid, +// or the context is done. +// +// It returns a non-nil Authorization only if its Status is StatusValid. +// In all other cases WaitAuthorization returns an error. +// If the Status is StatusInvalid, the returned error is ErrAuthorizationFailed. +func (c *Client) WaitAuthorization(ctx context.Context, url string) (*Authorization, error) { + var count int + sleep := func(v string, inc int) error { + count += inc + d := backoff(count, 10*time.Second) + d = retryAfter(v, d) + wakeup := time.NewTimer(d) + defer wakeup.Stop() + select { + case <-ctx.Done(): + return ctx.Err() + case <-wakeup.C: + return nil + } + } + + for { + res, err := ctxhttp.Get(ctx, c.HTTPClient, url) + if err != nil { + return nil, err + } + retry := res.Header.Get("retry-after") + if res.StatusCode != http.StatusOK && res.StatusCode != http.StatusAccepted { + res.Body.Close() + if err := sleep(retry, 1); err != nil { + return nil, err + } + continue + } + var raw wireAuthz + err = json.NewDecoder(res.Body).Decode(&raw) + res.Body.Close() + if err != nil { + if err := sleep(retry, 0); err != nil { + return nil, err + } + continue + } + if raw.Status == StatusValid { + return raw.authorization(url), nil + } + if raw.Status == StatusInvalid { + return nil, ErrAuthorizationFailed + } + if err := sleep(retry, 0); err != nil { + return nil, err + } + } +} + +// GetChallenge retrieves the current status of an challenge. +// +// A client typically polls a challenge status using this method. +func (c *Client) GetChallenge(ctx context.Context, url string) (*Challenge, error) { + res, err := ctxhttp.Get(ctx, c.HTTPClient, url) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK && res.StatusCode != http.StatusAccepted { + return nil, responseError(res) + } + v := wireChallenge{URI: url} + if err := json.NewDecoder(res.Body).Decode(&v); err != nil { + return nil, fmt.Errorf("acme: invalid response: %v", err) + } + return v.challenge(), nil +} + +// Accept informs the server that the client accepts one of its challenges +// previously obtained with c.Authorize. +// +// The server will then perform the validation asynchronously. +func (c *Client) Accept(ctx context.Context, chal *Challenge) (*Challenge, error) { + auth, err := keyAuth(c.Key.Public(), chal.Token) + if err != nil { + return nil, err + } + + req := struct { + Resource string `json:"resource"` + Type string `json:"type"` + Auth string `json:"keyAuthorization"` + }{ + Resource: "challenge", + Type: chal.Type, + Auth: auth, + } + res, err := postJWS(ctx, c.HTTPClient, c.Key, chal.URI, req) + if err != nil { + return nil, err + } + defer res.Body.Close() + // Note: the protocol specifies 200 as the expected response code, but + // letsencrypt seems to be returning 202. + if res.StatusCode != http.StatusOK && res.StatusCode != http.StatusAccepted { + return nil, responseError(res) + } + + var v wireChallenge + if err := json.NewDecoder(res.Body).Decode(&v); err != nil { + return nil, fmt.Errorf("acme: invalid response: %v", err) + } + return v.challenge(), nil +} + +// DNS01ChallengeRecord returns a DNS record value for a dns-01 challenge response. +// A TXT record containing the returned value must be provisioned under +// "_acme-challenge" name of the domain being validated. +// +// The token argument is a Challenge.Token value. +func (c *Client) DNS01ChallengeRecord(token string) (string, error) { + ka, err := keyAuth(c.Key.Public(), token) + if err != nil { + return "", err + } + b := sha256.Sum256([]byte(ka)) + return base64.RawURLEncoding.EncodeToString(b[:]), nil +} + +// HTTP01ChallengeResponse returns the response for an http-01 challenge. +// Servers should respond with the value to HTTP requests at the URL path +// provided by HTTP01ChallengePath to validate the challenge and prove control +// over a domain name. +// +// The token argument is a Challenge.Token value. +func (c *Client) HTTP01ChallengeResponse(token string) (string, error) { + return keyAuth(c.Key.Public(), token) +} + +// HTTP01ChallengePath returns the URL path at which the response for an http-01 challenge +// should be provided by the servers. +// The response value can be obtained with HTTP01ChallengeResponse. +// +// The token argument is a Challenge.Token value. +func (c *Client) HTTP01ChallengePath(token string) string { + return "/.well-known/acme-challenge/" + token +} + +// TLSSNI01ChallengeCert creates a certificate for TLS-SNI-01 challenge response. +// Servers can present the certificate to validate the challenge and prove control +// over a domain name. +// +// The implementation is incomplete in that the returned value is a single certificate, +// computed only for Z0 of the key authorization. ACME CAs are expected to update +// their implementations to use the newer version, TLS-SNI-02. +// For more details on TLS-SNI-01 see https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.3. +// +// The token argument is a Challenge.Token value. +// If a WithKey option is provided, its private part signs the returned cert, +// and the public part is used to specify the signee. +// If no WithKey option is provided, a new ECDSA key is generated using P-256 curve. +// +// The returned certificate is valid for the next 24 hours and must be presented only when +// the server name of the client hello matches exactly the returned name value. +func (c *Client) TLSSNI01ChallengeCert(token string, opt ...CertOption) (cert tls.Certificate, name string, err error) { + ka, err := keyAuth(c.Key.Public(), token) + if err != nil { + return tls.Certificate{}, "", err + } + b := sha256.Sum256([]byte(ka)) + h := hex.EncodeToString(b[:]) + name = fmt.Sprintf("%s.%s.acme.invalid", h[:32], h[32:]) + cert, err = tlsChallengeCert([]string{name}, opt) + if err != nil { + return tls.Certificate{}, "", err + } + return cert, name, nil +} + +// TLSSNI02ChallengeCert creates a certificate for TLS-SNI-02 challenge response. +// Servers can present the certificate to validate the challenge and prove control +// over a domain name. For more details on TLS-SNI-02 see +// https://tools.ietf.org/html/draft-ietf-acme-acme-03#section-7.3. +// +// The token argument is a Challenge.Token value. +// If a WithKey option is provided, its private part signs the returned cert, +// and the public part is used to specify the signee. +// If no WithKey option is provided, a new ECDSA key is generated using P-256 curve. +// +// The returned certificate is valid for the next 24 hours and must be presented only when +// the server name in the client hello matches exactly the returned name value. +func (c *Client) TLSSNI02ChallengeCert(token string, opt ...CertOption) (cert tls.Certificate, name string, err error) { + b := sha256.Sum256([]byte(token)) + h := hex.EncodeToString(b[:]) + sanA := fmt.Sprintf("%s.%s.token.acme.invalid", h[:32], h[32:]) + + ka, err := keyAuth(c.Key.Public(), token) + if err != nil { + return tls.Certificate{}, "", err + } + b = sha256.Sum256([]byte(ka)) + h = hex.EncodeToString(b[:]) + sanB := fmt.Sprintf("%s.%s.ka.acme.invalid", h[:32], h[32:]) + + cert, err = tlsChallengeCert([]string{sanA, sanB}, opt) + if err != nil { + return tls.Certificate{}, "", err + } + return cert, sanA, nil +} + +// doReg sends all types of registration requests. +// The type of request is identified by typ argument, which is a "resource" +// in the ACME spec terms. +// +// A non-nil acct argument indicates whether the intention is to mutate data +// of the Account. Only Contact and Agreement of its fields are used +// in such cases. +func (c *Client) doReg(ctx context.Context, url string, typ string, acct *Account) (*Account, error) { + req := struct { + Resource string `json:"resource"` + Contact []string `json:"contact,omitempty"` + Agreement string `json:"agreement,omitempty"` + }{ + Resource: typ, + } + if acct != nil { + req.Contact = acct.Contact + req.Agreement = acct.AgreedTerms + } + res, err := postJWS(ctx, c.HTTPClient, c.Key, url, req) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode < 200 || res.StatusCode > 299 { + return nil, responseError(res) + } + + var v struct { + Contact []string + Agreement string + Authorizations string + Certificates string + } + if err := json.NewDecoder(res.Body).Decode(&v); err != nil { + return nil, fmt.Errorf("acme: invalid response: %v", err) + } + var tos string + if v := linkHeader(res.Header, "terms-of-service"); len(v) > 0 { + tos = v[0] + } + var authz string + if v := linkHeader(res.Header, "next"); len(v) > 0 { + authz = v[0] + } + return &Account{ + URI: res.Header.Get("Location"), + Contact: v.Contact, + AgreedTerms: v.Agreement, + CurrentTerms: tos, + Authz: authz, + Authorizations: v.Authorizations, + Certificates: v.Certificates, + }, nil +} + +func responseCert(ctx context.Context, client *http.Client, res *http.Response, bundle bool) ([][]byte, error) { + b, err := ioutil.ReadAll(io.LimitReader(res.Body, maxCertSize+1)) + if err != nil { + return nil, fmt.Errorf("acme: response stream: %v", err) + } + if len(b) > maxCertSize { + return nil, errors.New("acme: certificate is too big") + } + cert := [][]byte{b} + if !bundle { + return cert, nil + } + + // Append CA chain cert(s). + // At least one is required according to the spec: + // https://tools.ietf.org/html/draft-ietf-acme-acme-03#section-6.3.1 + up := linkHeader(res.Header, "up") + if len(up) == 0 { + return nil, errors.New("acme: rel=up link not found") + } + if len(up) > maxChainLen { + return nil, errors.New("acme: rel=up link is too large") + } + for _, url := range up { + cc, err := chainCert(ctx, client, url, 0) + if err != nil { + return nil, err + } + cert = append(cert, cc...) + } + return cert, nil +} + +// responseError creates an error of Error type from resp. +func responseError(resp *http.Response) error { + // don't care if ReadAll returns an error: + // json.Unmarshal will fail in that case anyway + b, _ := ioutil.ReadAll(resp.Body) + e := struct { + Status int + Type string + Detail string + }{ + Status: resp.StatusCode, + } + if err := json.Unmarshal(b, &e); err != nil { + // this is not a regular error response: + // populate detail with anything we received, + // e.Status will already contain HTTP response code value + e.Detail = string(b) + if e.Detail == "" { + e.Detail = resp.Status + } + } + return &Error{ + StatusCode: e.Status, + ProblemType: e.Type, + Detail: e.Detail, + Header: resp.Header, + } +} + +// chainCert fetches CA certificate chain recursively by following "up" links. +// Each recursive call increments the depth by 1, resulting in an error +// if the recursion level reaches maxChainLen. +// +// First chainCert call starts with depth of 0. +func chainCert(ctx context.Context, client *http.Client, url string, depth int) ([][]byte, error) { + if depth >= maxChainLen { + return nil, errors.New("acme: certificate chain is too deep") + } + + res, err := ctxhttp.Get(ctx, client, url) + if err != nil { + return nil, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return nil, responseError(res) + } + b, err := ioutil.ReadAll(io.LimitReader(res.Body, maxCertSize+1)) + if err != nil { + return nil, err + } + if len(b) > maxCertSize { + return nil, errors.New("acme: certificate is too big") + } + chain := [][]byte{b} + + uplink := linkHeader(res.Header, "up") + if len(uplink) > maxChainLen { + return nil, errors.New("acme: certificate chain is too large") + } + for _, up := range uplink { + cc, err := chainCert(ctx, client, up, depth+1) + if err != nil { + return nil, err + } + chain = append(chain, cc...) + } + + return chain, nil +} + +// postJWS signs the body with the given key and POSTs it to the provided url. +// The body argument must be JSON-serializable. +func postJWS(ctx context.Context, client *http.Client, key crypto.Signer, url string, body interface{}) (*http.Response, error) { + nonce, err := fetchNonce(ctx, client, url) + if err != nil { + return nil, err + } + b, err := jwsEncodeJSON(body, key, nonce) + if err != nil { + return nil, err + } + return ctxhttp.Post(ctx, client, url, "application/jose+json", bytes.NewReader(b)) +} + +func fetchNonce(ctx context.Context, client *http.Client, url string) (string, error) { + resp, err := ctxhttp.Head(ctx, client, url) + if err != nil { + return "", nil + } + defer resp.Body.Close() + enc := resp.Header.Get("replay-nonce") + if enc == "" { + return "", errors.New("acme: nonce not found") + } + return enc, nil +} + +// linkHeader returns URI-Reference values of all Link headers +// with relation-type rel. +// See https://tools.ietf.org/html/rfc5988#section-5 for details. +func linkHeader(h http.Header, rel string) []string { + var links []string + for _, v := range h["Link"] { + parts := strings.Split(v, ";") + for _, p := range parts { + p = strings.TrimSpace(p) + if !strings.HasPrefix(p, "rel=") { + continue + } + if v := strings.Trim(p[4:], `"`); v == rel { + links = append(links, strings.Trim(parts[0], "<>")) + } + } + } + return links +} + +// retryAfter parses a Retry-After HTTP header value, +// trying to convert v into an int (seconds) or use http.ParseTime otherwise. +// It returns d if v cannot be parsed. +func retryAfter(v string, d time.Duration) time.Duration { + if i, err := strconv.Atoi(v); err == nil { + return time.Duration(i) * time.Second + } + t, err := http.ParseTime(v) + if err != nil { + return d + } + return t.Sub(timeNow()) +} + +// backoff computes a duration after which an n+1 retry iteration should occur +// using truncated exponential backoff algorithm. +// +// The n argument is always bounded between 0 and 30. +// The max argument defines upper bound for the returned value. +func backoff(n int, max time.Duration) time.Duration { + if n < 0 { + n = 0 + } + if n > 30 { + n = 30 + } + var d time.Duration + if x, err := rand.Int(rand.Reader, big.NewInt(1000)); err == nil { + d = time.Duration(x.Int64()) * time.Millisecond + } + d += time.Duration(1< max { + return max + } + return d +} + +// keyAuth generates a key authorization string for a given token. +func keyAuth(pub crypto.PublicKey, token string) (string, error) { + th, err := JWKThumbprint(pub) + if err != nil { + return "", err + } + return fmt.Sprintf("%s.%s", token, th), nil +} + +// tlsChallengeCert creates a temporary certificate for TLS-SNI challenges +// with the given SANs and auto-generated public/private key pair. +// To create a cert with a custom key pair, specify WithKey option. +func tlsChallengeCert(san []string, opt []CertOption) (tls.Certificate, error) { + var ( + key crypto.Signer + tmpl *x509.Certificate + ) + for _, o := range opt { + switch o := o.(type) { + case *certOptKey: + if key != nil { + return tls.Certificate{}, errors.New("acme: duplicate key option") + } + key = o.key + case *certOptTemplate: + var t = *(*x509.Certificate)(o) // shallow copy is ok + tmpl = &t + default: + // package's fault, if we let this happen: + panic(fmt.Sprintf("unsupported option type %T", o)) + } + } + if key == nil { + var err error + if key, err = ecdsa.GenerateKey(elliptic.P256(), rand.Reader); err != nil { + return tls.Certificate{}, err + } + } + if tmpl == nil { + tmpl = &x509.Certificate{ + SerialNumber: big.NewInt(1), + NotBefore: time.Now(), + NotAfter: time.Now().Add(24 * time.Hour), + BasicConstraintsValid: true, + KeyUsage: x509.KeyUsageKeyEncipherment, + } + } + tmpl.DNSNames = san + + der, err := x509.CreateCertificate(rand.Reader, tmpl, tmpl, key.Public(), key) + if err != nil { + return tls.Certificate{}, err + } + return tls.Certificate{ + Certificate: [][]byte{der}, + PrivateKey: key, + }, nil +} + +// encodePEM returns b encoded as PEM with block of type typ. +func encodePEM(typ string, b []byte) []byte { + pb := &pem.Block{Type: typ, Bytes: b} + return pem.EncodeToMemory(pb) +} + +// timeNow is useful for testing for fixed current time. +var timeNow = time.Now diff --git a/vendor/golang.org/x/crypto/acme/acme_test.go b/vendor/golang.org/x/crypto/acme/acme_test.go new file mode 100644 index 00000000..e552984b --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/acme_test.go @@ -0,0 +1,1185 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package acme + +import ( + "bytes" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/base64" + "encoding/json" + "fmt" + "io/ioutil" + "math/big" + "net/http" + "net/http/httptest" + "reflect" + "sort" + "strings" + "testing" + "time" + + "golang.org/x/net/context" +) + +// Decodes a JWS-encoded request and unmarshals the decoded JSON into a provided +// interface. +func decodeJWSRequest(t *testing.T, v interface{}, r *http.Request) { + // Decode request + var req struct{ Payload string } + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + t.Fatal(err) + } + payload, err := base64.RawURLEncoding.DecodeString(req.Payload) + if err != nil { + t.Fatal(err) + } + err = json.Unmarshal(payload, v) + if err != nil { + t.Fatal(err) + } +} + +func TestDiscover(t *testing.T) { + const ( + reg = "https://example.com/acme/new-reg" + authz = "https://example.com/acme/new-authz" + cert = "https://example.com/acme/new-cert" + revoke = "https://example.com/acme/revoke-cert" + ) + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("content-type", "application/json") + fmt.Fprintf(w, `{ + "new-reg": %q, + "new-authz": %q, + "new-cert": %q, + "revoke-cert": %q + }`, reg, authz, cert, revoke) + })) + defer ts.Close() + c := Client{DirectoryURL: ts.URL} + dir, err := c.Discover(context.Background()) + if err != nil { + t.Fatal(err) + } + if dir.RegURL != reg { + t.Errorf("dir.RegURL = %q; want %q", dir.RegURL, reg) + } + if dir.AuthzURL != authz { + t.Errorf("dir.AuthzURL = %q; want %q", dir.AuthzURL, authz) + } + if dir.CertURL != cert { + t.Errorf("dir.CertURL = %q; want %q", dir.CertURL, cert) + } + if dir.RevokeURL != revoke { + t.Errorf("dir.RevokeURL = %q; want %q", dir.RevokeURL, revoke) + } +} + +func TestRegister(t *testing.T) { + contacts := []string{"mailto:admin@example.com"} + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string + Contact []string + Agreement string + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "new-reg" { + t.Errorf("j.Resource = %q; want new-reg", j.Resource) + } + if !reflect.DeepEqual(j.Contact, contacts) { + t.Errorf("j.Contact = %v; want %v", j.Contact, contacts) + } + + w.Header().Set("Location", "https://ca.tld/acme/reg/1") + w.Header().Set("Link", `;rel="next"`) + w.Header().Add("Link", `;rel="recover"`) + w.Header().Add("Link", `;rel="terms-of-service"`) + w.WriteHeader(http.StatusCreated) + b, _ := json.Marshal(contacts) + fmt.Fprintf(w, `{"contact": %s}`, b) + })) + defer ts.Close() + + prompt := func(url string) bool { + const terms = "https://ca.tld/acme/terms" + if url != terms { + t.Errorf("prompt url = %q; want %q", url, terms) + } + return false + } + + c := Client{Key: testKeyEC, dir: &Directory{RegURL: ts.URL}} + a := &Account{Contact: contacts} + var err error + if a, err = c.Register(context.Background(), a, prompt); err != nil { + t.Fatal(err) + } + if a.URI != "https://ca.tld/acme/reg/1" { + t.Errorf("a.URI = %q; want https://ca.tld/acme/reg/1", a.URI) + } + if a.Authz != "https://ca.tld/acme/new-authz" { + t.Errorf("a.Authz = %q; want https://ca.tld/acme/new-authz", a.Authz) + } + if a.CurrentTerms != "https://ca.tld/acme/terms" { + t.Errorf("a.CurrentTerms = %q; want https://ca.tld/acme/terms", a.CurrentTerms) + } + if !reflect.DeepEqual(a.Contact, contacts) { + t.Errorf("a.Contact = %v; want %v", a.Contact, contacts) + } +} + +func TestUpdateReg(t *testing.T) { + const terms = "https://ca.tld/acme/terms" + contacts := []string{"mailto:admin@example.com"} + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string + Contact []string + Agreement string + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "reg" { + t.Errorf("j.Resource = %q; want reg", j.Resource) + } + if j.Agreement != terms { + t.Errorf("j.Agreement = %q; want %q", j.Agreement, terms) + } + if !reflect.DeepEqual(j.Contact, contacts) { + t.Errorf("j.Contact = %v; want %v", j.Contact, contacts) + } + + w.Header().Set("Link", `;rel="next"`) + w.Header().Add("Link", `;rel="recover"`) + w.Header().Add("Link", fmt.Sprintf(`<%s>;rel="terms-of-service"`, terms)) + w.WriteHeader(http.StatusOK) + b, _ := json.Marshal(contacts) + fmt.Fprintf(w, `{"contact":%s, "agreement":%q}`, b, terms) + })) + defer ts.Close() + + c := Client{Key: testKeyEC} + a := &Account{URI: ts.URL, Contact: contacts, AgreedTerms: terms} + var err error + if a, err = c.UpdateReg(context.Background(), a); err != nil { + t.Fatal(err) + } + if a.Authz != "https://ca.tld/acme/new-authz" { + t.Errorf("a.Authz = %q; want https://ca.tld/acme/new-authz", a.Authz) + } + if a.AgreedTerms != terms { + t.Errorf("a.AgreedTerms = %q; want %q", a.AgreedTerms, terms) + } + if a.CurrentTerms != terms { + t.Errorf("a.CurrentTerms = %q; want %q", a.CurrentTerms, terms) + } + if a.URI != ts.URL { + t.Errorf("a.URI = %q; want %q", a.URI, ts.URL) + } +} + +func TestGetReg(t *testing.T) { + const terms = "https://ca.tld/acme/terms" + const newTerms = "https://ca.tld/acme/new-terms" + contacts := []string{"mailto:admin@example.com"} + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string + Contact []string + Agreement string + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "reg" { + t.Errorf("j.Resource = %q; want reg", j.Resource) + } + if len(j.Contact) != 0 { + t.Errorf("j.Contact = %v", j.Contact) + } + if j.Agreement != "" { + t.Errorf("j.Agreement = %q", j.Agreement) + } + + w.Header().Set("Link", `;rel="next"`) + w.Header().Add("Link", `;rel="recover"`) + w.Header().Add("Link", fmt.Sprintf(`<%s>;rel="terms-of-service"`, newTerms)) + w.WriteHeader(http.StatusOK) + b, _ := json.Marshal(contacts) + fmt.Fprintf(w, `{"contact":%s, "agreement":%q}`, b, terms) + })) + defer ts.Close() + + c := Client{Key: testKeyEC} + a, err := c.GetReg(context.Background(), ts.URL) + if err != nil { + t.Fatal(err) + } + if a.Authz != "https://ca.tld/acme/new-authz" { + t.Errorf("a.AuthzURL = %q; want https://ca.tld/acme/new-authz", a.Authz) + } + if a.AgreedTerms != terms { + t.Errorf("a.AgreedTerms = %q; want %q", a.AgreedTerms, terms) + } + if a.CurrentTerms != newTerms { + t.Errorf("a.CurrentTerms = %q; want %q", a.CurrentTerms, newTerms) + } + if a.URI != ts.URL { + t.Errorf("a.URI = %q; want %q", a.URI, ts.URL) + } +} + +func TestAuthorize(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string + Identifier struct { + Type string + Value string + } + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "new-authz" { + t.Errorf("j.Resource = %q; want new-authz", j.Resource) + } + if j.Identifier.Type != "dns" { + t.Errorf("j.Identifier.Type = %q; want dns", j.Identifier.Type) + } + if j.Identifier.Value != "example.com" { + t.Errorf("j.Identifier.Value = %q; want example.com", j.Identifier.Value) + } + + w.Header().Set("Location", "https://ca.tld/acme/auth/1") + w.WriteHeader(http.StatusCreated) + fmt.Fprintf(w, `{ + "identifier": {"type":"dns","value":"example.com"}, + "status":"pending", + "challenges":[ + { + "type":"http-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id1", + "token":"token1" + }, + { + "type":"tls-sni-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id2", + "token":"token2" + } + ], + "combinations":[[0],[1]]}`) + })) + defer ts.Close() + + cl := Client{Key: testKeyEC, dir: &Directory{AuthzURL: ts.URL}} + auth, err := cl.Authorize(context.Background(), "example.com") + if err != nil { + t.Fatal(err) + } + + if auth.URI != "https://ca.tld/acme/auth/1" { + t.Errorf("URI = %q; want https://ca.tld/acme/auth/1", auth.URI) + } + if auth.Status != "pending" { + t.Errorf("Status = %q; want pending", auth.Status) + } + if auth.Identifier.Type != "dns" { + t.Errorf("Identifier.Type = %q; want dns", auth.Identifier.Type) + } + if auth.Identifier.Value != "example.com" { + t.Errorf("Identifier.Value = %q; want example.com", auth.Identifier.Value) + } + + if n := len(auth.Challenges); n != 2 { + t.Fatalf("len(auth.Challenges) = %d; want 2", n) + } + + c := auth.Challenges[0] + if c.Type != "http-01" { + t.Errorf("c.Type = %q; want http-01", c.Type) + } + if c.URI != "https://ca.tld/acme/challenge/publickey/id1" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id1", c.URI) + } + if c.Token != "token1" { + t.Errorf("c.Token = %q; want token1", c.Type) + } + + c = auth.Challenges[1] + if c.Type != "tls-sni-01" { + t.Errorf("c.Type = %q; want tls-sni-01", c.Type) + } + if c.URI != "https://ca.tld/acme/challenge/publickey/id2" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id2", c.URI) + } + if c.Token != "token2" { + t.Errorf("c.Token = %q; want token2", c.Type) + } + + combs := [][]int{{0}, {1}} + if !reflect.DeepEqual(auth.Combinations, combs) { + t.Errorf("auth.Combinations: %+v\nwant: %+v\n", auth.Combinations, combs) + } +} + +func TestAuthorizeValid(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "nonce") + return + } + w.WriteHeader(http.StatusCreated) + w.Write([]byte(`{"status":"valid"}`)) + })) + defer ts.Close() + client := Client{Key: testKey, dir: &Directory{AuthzURL: ts.URL}} + _, err := client.Authorize(context.Background(), "example.com") + if err != nil { + t.Errorf("err = %v", err) + } +} + +func TestGetAuthorization(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + t.Errorf("r.Method = %q; want GET", r.Method) + } + + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, `{ + "identifier": {"type":"dns","value":"example.com"}, + "status":"pending", + "challenges":[ + { + "type":"http-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id1", + "token":"token1" + }, + { + "type":"tls-sni-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id2", + "token":"token2" + } + ], + "combinations":[[0],[1]]}`) + })) + defer ts.Close() + + cl := Client{Key: testKeyEC} + auth, err := cl.GetAuthorization(context.Background(), ts.URL) + if err != nil { + t.Fatal(err) + } + + if auth.Status != "pending" { + t.Errorf("Status = %q; want pending", auth.Status) + } + if auth.Identifier.Type != "dns" { + t.Errorf("Identifier.Type = %q; want dns", auth.Identifier.Type) + } + if auth.Identifier.Value != "example.com" { + t.Errorf("Identifier.Value = %q; want example.com", auth.Identifier.Value) + } + + if n := len(auth.Challenges); n != 2 { + t.Fatalf("len(set.Challenges) = %d; want 2", n) + } + + c := auth.Challenges[0] + if c.Type != "http-01" { + t.Errorf("c.Type = %q; want http-01", c.Type) + } + if c.URI != "https://ca.tld/acme/challenge/publickey/id1" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id1", c.URI) + } + if c.Token != "token1" { + t.Errorf("c.Token = %q; want token1", c.Type) + } + + c = auth.Challenges[1] + if c.Type != "tls-sni-01" { + t.Errorf("c.Type = %q; want tls-sni-01", c.Type) + } + if c.URI != "https://ca.tld/acme/challenge/publickey/id2" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id2", c.URI) + } + if c.Token != "token2" { + t.Errorf("c.Token = %q; want token2", c.Type) + } + + combs := [][]int{{0}, {1}} + if !reflect.DeepEqual(auth.Combinations, combs) { + t.Errorf("auth.Combinations: %+v\nwant: %+v\n", auth.Combinations, combs) + } +} + +func TestWaitAuthorization(t *testing.T) { + var count int + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + count++ + w.Header().Set("retry-after", "0") + if count > 1 { + fmt.Fprintf(w, `{"status":"valid"}`) + return + } + fmt.Fprintf(w, `{"status":"pending"}`) + })) + defer ts.Close() + + type res struct { + authz *Authorization + err error + } + done := make(chan res) + defer close(done) + go func() { + var client Client + a, err := client.WaitAuthorization(context.Background(), ts.URL) + done <- res{a, err} + }() + + select { + case <-time.After(5 * time.Second): + t.Fatal("WaitAuthz took too long to return") + case res := <-done: + if res.err != nil { + t.Fatalf("res.err = %v", res.err) + } + if res.authz == nil { + t.Fatal("res.authz is nil") + } + } +} + +func TestWaitAuthorizationInvalid(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, `{"status":"invalid"}`) + })) + defer ts.Close() + + res := make(chan error) + defer close(res) + go func() { + var client Client + _, err := client.WaitAuthorization(context.Background(), ts.URL) + res <- err + }() + + select { + case <-time.After(3 * time.Second): + t.Fatal("WaitAuthz took too long to return") + case err := <-res: + if err == nil { + t.Error("err is nil") + } + } +} + +func TestWaitAuthorizationCancel(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("retry-after", "60") + fmt.Fprintf(w, `{"status":"pending"}`) + })) + defer ts.Close() + + res := make(chan error) + defer close(res) + go func() { + var client Client + ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond) + defer cancel() + _, err := client.WaitAuthorization(ctx, ts.URL) + res <- err + }() + + select { + case <-time.After(time.Second): + t.Fatal("WaitAuthz took too long to return") + case err := <-res: + if err == nil { + t.Error("err is nil") + } + } +} + +func TestRevokeAuthorization(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "nonce") + return + } + switch r.URL.Path { + case "/1": + var req struct { + Resource string + Delete bool + } + decodeJWSRequest(t, &req, r) + if req.Resource != "authz" { + t.Errorf("req.Resource = %q; want authz", req.Resource) + } + if !req.Delete { + t.Errorf("req.Delete is false") + } + case "/2": + w.WriteHeader(http.StatusInternalServerError) + } + })) + defer ts.Close() + client := &Client{Key: testKey} + ctx := context.Background() + if err := client.RevokeAuthorization(ctx, ts.URL+"/1"); err != nil { + t.Errorf("err = %v", err) + } + if client.RevokeAuthorization(ctx, ts.URL+"/2") == nil { + t.Error("nil error") + } +} + +func TestPollChallenge(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + t.Errorf("r.Method = %q; want GET", r.Method) + } + + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, `{ + "type":"http-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id1", + "token":"token1"}`) + })) + defer ts.Close() + + cl := Client{Key: testKeyEC} + chall, err := cl.GetChallenge(context.Background(), ts.URL) + if err != nil { + t.Fatal(err) + } + + if chall.Status != "pending" { + t.Errorf("Status = %q; want pending", chall.Status) + } + if chall.Type != "http-01" { + t.Errorf("c.Type = %q; want http-01", chall.Type) + } + if chall.URI != "https://ca.tld/acme/challenge/publickey/id1" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id1", chall.URI) + } + if chall.Token != "token1" { + t.Errorf("c.Token = %q; want token1", chall.Type) + } +} + +func TestAcceptChallenge(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string + Type string + Auth string `json:"keyAuthorization"` + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "challenge" { + t.Errorf(`resource = %q; want "challenge"`, j.Resource) + } + if j.Type != "http-01" { + t.Errorf(`type = %q; want "http-01"`, j.Type) + } + keyAuth := "token1." + testKeyECThumbprint + if j.Auth != keyAuth { + t.Errorf(`keyAuthorization = %q; want %q`, j.Auth, keyAuth) + } + + // Respond to request + w.WriteHeader(http.StatusAccepted) + fmt.Fprintf(w, `{ + "type":"http-01", + "status":"pending", + "uri":"https://ca.tld/acme/challenge/publickey/id1", + "token":"token1", + "keyAuthorization":%q + }`, keyAuth) + })) + defer ts.Close() + + cl := Client{Key: testKeyEC} + c, err := cl.Accept(context.Background(), &Challenge{ + URI: ts.URL, + Token: "token1", + Type: "http-01", + }) + if err != nil { + t.Fatal(err) + } + + if c.Type != "http-01" { + t.Errorf("c.Type = %q; want http-01", c.Type) + } + if c.URI != "https://ca.tld/acme/challenge/publickey/id1" { + t.Errorf("c.URI = %q; want https://ca.tld/acme/challenge/publickey/id1", c.URI) + } + if c.Token != "token1" { + t.Errorf("c.Token = %q; want token1", c.Type) + } +} + +func TestNewCert(t *testing.T) { + notBefore := time.Now() + notAfter := notBefore.AddDate(0, 2, 0) + timeNow = func() time.Time { return notBefore } + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "test-nonce") + return + } + if r.Method != "POST" { + t.Errorf("r.Method = %q; want POST", r.Method) + } + + var j struct { + Resource string `json:"resource"` + CSR string `json:"csr"` + NotBefore string `json:"notBefore,omitempty"` + NotAfter string `json:"notAfter,omitempty"` + } + decodeJWSRequest(t, &j, r) + + // Test request + if j.Resource != "new-cert" { + t.Errorf(`resource = %q; want "new-cert"`, j.Resource) + } + if j.NotBefore != notBefore.Format(time.RFC3339) { + t.Errorf(`notBefore = %q; wanted %q`, j.NotBefore, notBefore.Format(time.RFC3339)) + } + if j.NotAfter != notAfter.Format(time.RFC3339) { + t.Errorf(`notAfter = %q; wanted %q`, j.NotAfter, notAfter.Format(time.RFC3339)) + } + + // Respond to request + template := x509.Certificate{ + SerialNumber: big.NewInt(int64(1)), + Subject: pkix.Name{ + Organization: []string{"goacme"}, + }, + NotBefore: notBefore, + NotAfter: notAfter, + + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + BasicConstraintsValid: true, + } + + sampleCert, err := x509.CreateCertificate(rand.Reader, &template, &template, &testKeyEC.PublicKey, testKeyEC) + if err != nil { + t.Fatalf("Error creating certificate: %v", err) + } + + w.Header().Set("Location", "https://ca.tld/acme/cert/1") + w.WriteHeader(http.StatusCreated) + w.Write(sampleCert) + })) + defer ts.Close() + + csr := x509.CertificateRequest{ + Version: 0, + Subject: pkix.Name{ + CommonName: "example.com", + Organization: []string{"goacme"}, + }, + } + csrb, err := x509.CreateCertificateRequest(rand.Reader, &csr, testKeyEC) + if err != nil { + t.Fatal(err) + } + + c := Client{Key: testKeyEC, dir: &Directory{CertURL: ts.URL}} + cert, certURL, err := c.CreateCert(context.Background(), csrb, notAfter.Sub(notBefore), false) + if err != nil { + t.Fatal(err) + } + if cert == nil { + t.Errorf("cert is nil") + } + if certURL != "https://ca.tld/acme/cert/1" { + t.Errorf("certURL = %q; want https://ca.tld/acme/cert/1", certURL) + } +} + +func TestFetchCert(t *testing.T) { + var count byte + var ts *httptest.Server + ts = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + count++ + if count < 3 { + up := fmt.Sprintf("<%s>;rel=up", ts.URL) + w.Header().Set("link", up) + } + w.Write([]byte{count}) + })) + defer ts.Close() + res, err := (&Client{}).FetchCert(context.Background(), ts.URL, true) + if err != nil { + t.Fatalf("FetchCert: %v", err) + } + cert := [][]byte{{1}, {2}, {3}} + if !reflect.DeepEqual(res, cert) { + t.Errorf("res = %v; want %v", res, cert) + } +} + +func TestFetchCertRetry(t *testing.T) { + var count int + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if count < 1 { + w.Header().Set("retry-after", "0") + w.WriteHeader(http.StatusAccepted) + count++ + return + } + w.Write([]byte{1}) + })) + defer ts.Close() + res, err := (&Client{}).FetchCert(context.Background(), ts.URL, false) + if err != nil { + t.Fatalf("FetchCert: %v", err) + } + cert := [][]byte{{1}} + if !reflect.DeepEqual(res, cert) { + t.Errorf("res = %v; want %v", res, cert) + } +} + +func TestFetchCertCancel(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("retry-after", "0") + w.WriteHeader(http.StatusAccepted) + })) + defer ts.Close() + ctx, cancel := context.WithCancel(context.Background()) + done := make(chan struct{}) + var err error + go func() { + _, err = (&Client{}).FetchCert(ctx, ts.URL, false) + close(done) + }() + cancel() + <-done + if err != context.Canceled { + t.Errorf("err = %v; want %v", err, context.Canceled) + } +} + +func TestFetchCertDepth(t *testing.T) { + var count byte + var ts *httptest.Server + ts = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + count++ + if count > maxChainLen+1 { + t.Errorf("count = %d; want at most %d", count, maxChainLen+1) + w.WriteHeader(http.StatusInternalServerError) + } + w.Header().Set("link", fmt.Sprintf("<%s>;rel=up", ts.URL)) + w.Write([]byte{count}) + })) + defer ts.Close() + _, err := (&Client{}).FetchCert(context.Background(), ts.URL, true) + if err == nil { + t.Errorf("err is nil") + } +} + +func TestFetchCertBreadth(t *testing.T) { + var ts *httptest.Server + ts = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + for i := 0; i < maxChainLen+1; i++ { + w.Header().Add("link", fmt.Sprintf("<%s>;rel=up", ts.URL)) + } + w.Write([]byte{1}) + })) + defer ts.Close() + _, err := (&Client{}).FetchCert(context.Background(), ts.URL, true) + if err == nil { + t.Errorf("err is nil") + } +} + +func TestFetchCertSize(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + b := bytes.Repeat([]byte{1}, maxCertSize+1) + w.Write(b) + })) + defer ts.Close() + _, err := (&Client{}).FetchCert(context.Background(), ts.URL, false) + if err == nil { + t.Errorf("err is nil") + } +} + +func TestRevokeCert(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == "HEAD" { + w.Header().Set("replay-nonce", "nonce") + return + } + + var req struct { + Resource string + Certificate string + Reason int + } + decodeJWSRequest(t, &req, r) + if req.Resource != "revoke-cert" { + t.Errorf("req.Resource = %q; want revoke-cert", req.Resource) + } + if req.Reason != 1 { + t.Errorf("req.Reason = %d; want 1", req.Reason) + } + // echo -n cert | base64 | tr -d '=' | tr '/+' '_-' + cert := "Y2VydA" + if req.Certificate != cert { + t.Errorf("req.Certificate = %q; want %q", req.Certificate, cert) + } + })) + defer ts.Close() + client := &Client{ + Key: testKeyEC, + dir: &Directory{RevokeURL: ts.URL}, + } + ctx := context.Background() + if err := client.RevokeCert(ctx, nil, []byte("cert"), CRLReasonKeyCompromise); err != nil { + t.Fatal(err) + } +} + +func TestFetchNonce(t *testing.T) { + tests := []struct { + code int + nonce string + }{ + {http.StatusOK, "nonce1"}, + {http.StatusBadRequest, "nonce2"}, + {http.StatusOK, ""}, + } + var i int + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != "HEAD" { + t.Errorf("%d: r.Method = %q; want HEAD", i, r.Method) + } + w.Header().Set("replay-nonce", tests[i].nonce) + w.WriteHeader(tests[i].code) + })) + defer ts.Close() + for ; i < len(tests); i++ { + test := tests[i] + n, err := fetchNonce(context.Background(), http.DefaultClient, ts.URL) + if n != test.nonce { + t.Errorf("%d: n=%q; want %q", i, n, test.nonce) + } + switch { + case err == nil && test.nonce == "": + t.Errorf("%d: n=%q, err=%v; want non-nil error", i, n, err) + case err != nil && test.nonce != "": + t.Errorf("%d: n=%q, err=%v; want %q", i, n, err, test.nonce) + } + } +} + +func TestLinkHeader(t *testing.T) { + h := http.Header{"Link": { + `;rel="next"`, + `; rel=recover`, + `; foo=bar; rel="terms-of-service"`, + `;rel="next"`, + }} + tests := []struct { + rel string + out []string + }{ + {"next", []string{"https://example.com/acme/new-authz", "dup"}}, + {"recover", []string{"https://example.com/acme/recover-reg"}}, + {"terms-of-service", []string{"https://example.com/acme/terms"}}, + {"empty", nil}, + } + for i, test := range tests { + if v := linkHeader(h, test.rel); !reflect.DeepEqual(v, test.out) { + t.Errorf("%d: linkHeader(%q): %v; want %v", i, test.rel, v, test.out) + } + } +} + +func TestErrorResponse(t *testing.T) { + s := `{ + "status": 400, + "type": "urn:acme:error:xxx", + "detail": "text" + }` + res := &http.Response{ + StatusCode: 400, + Status: "400 Bad Request", + Body: ioutil.NopCloser(strings.NewReader(s)), + Header: http.Header{"X-Foo": {"bar"}}, + } + err := responseError(res) + v, ok := err.(*Error) + if !ok { + t.Fatalf("err = %+v (%T); want *Error type", err, err) + } + if v.StatusCode != 400 { + t.Errorf("v.StatusCode = %v; want 400", v.StatusCode) + } + if v.ProblemType != "urn:acme:error:xxx" { + t.Errorf("v.ProblemType = %q; want urn:acme:error:xxx", v.ProblemType) + } + if v.Detail != "text" { + t.Errorf("v.Detail = %q; want text", v.Detail) + } + if !reflect.DeepEqual(v.Header, res.Header) { + t.Errorf("v.Header = %+v; want %+v", v.Header, res.Header) + } +} + +func TestTLSSNI01ChallengeCert(t *testing.T) { + const ( + token = "evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA" + // echo -n | shasum -a 256 + san = "dbbd5eefe7b4d06eb9d1d9f5acb4c7cd.a27d320e4b30332f0b6cb441734ad7b0.acme.invalid" + ) + + client := &Client{Key: testKeyEC} + tlscert, name, err := client.TLSSNI01ChallengeCert(token) + if err != nil { + t.Fatal(err) + } + + if n := len(tlscert.Certificate); n != 1 { + t.Fatalf("len(tlscert.Certificate) = %d; want 1", n) + } + cert, err := x509.ParseCertificate(tlscert.Certificate[0]) + if err != nil { + t.Fatal(err) + } + if len(cert.DNSNames) != 1 || cert.DNSNames[0] != san { + t.Fatalf("cert.DNSNames = %v; want %q", cert.DNSNames, san) + } + if cert.DNSNames[0] != name { + t.Errorf("cert.DNSNames[0] != name: %q vs %q", cert.DNSNames[0], name) + } +} + +func TestTLSSNI02ChallengeCert(t *testing.T) { + const ( + token = "evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA" + // echo -n evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA | shasum -a 256 + sanA = "7ea0aaa69214e71e02cebb18bb867736.09b730209baabf60e43d4999979ff139.token.acme.invalid" + // echo -n | shasum -a 256 + sanB = "dbbd5eefe7b4d06eb9d1d9f5acb4c7cd.a27d320e4b30332f0b6cb441734ad7b0.ka.acme.invalid" + ) + + client := &Client{Key: testKeyEC} + tlscert, name, err := client.TLSSNI02ChallengeCert(token) + if err != nil { + t.Fatal(err) + } + + if n := len(tlscert.Certificate); n != 1 { + t.Fatalf("len(tlscert.Certificate) = %d; want 1", n) + } + cert, err := x509.ParseCertificate(tlscert.Certificate[0]) + if err != nil { + t.Fatal(err) + } + names := []string{sanA, sanB} + if !reflect.DeepEqual(cert.DNSNames, names) { + t.Fatalf("cert.DNSNames = %v;\nwant %v", cert.DNSNames, names) + } + sort.Strings(cert.DNSNames) + i := sort.SearchStrings(cert.DNSNames, name) + if i >= len(cert.DNSNames) || cert.DNSNames[i] != name { + t.Errorf("%v doesn't have %q", cert.DNSNames, name) + } +} + +func TestTLSChallengeCertOpt(t *testing.T) { + key, err := rsa.GenerateKey(rand.Reader, 512) + if err != nil { + t.Fatal(err) + } + tmpl := &x509.Certificate{ + SerialNumber: big.NewInt(2), + Subject: pkix.Name{Organization: []string{"Test"}}, + DNSNames: []string{"should-be-overwritten"}, + } + opts := []CertOption{WithKey(key), WithTemplate(tmpl)} + + client := &Client{Key: testKeyEC} + cert1, _, err := client.TLSSNI01ChallengeCert("token", opts...) + if err != nil { + t.Fatal(err) + } + cert2, _, err := client.TLSSNI02ChallengeCert("token", opts...) + if err != nil { + t.Fatal(err) + } + + for i, tlscert := range []tls.Certificate{cert1, cert2} { + // verify generated cert private key + tlskey, ok := tlscert.PrivateKey.(*rsa.PrivateKey) + if !ok { + t.Errorf("%d: tlscert.PrivateKey is %T; want *rsa.PrivateKey", i, tlscert.PrivateKey) + continue + } + if tlskey.D.Cmp(key.D) != 0 { + t.Errorf("%d: tlskey.D = %v; want %v", i, tlskey.D, key.D) + } + // verify generated cert public key + x509Cert, err := x509.ParseCertificate(tlscert.Certificate[0]) + if err != nil { + t.Errorf("%d: %v", i, err) + continue + } + tlspub, ok := x509Cert.PublicKey.(*rsa.PublicKey) + if !ok { + t.Errorf("%d: x509Cert.PublicKey is %T; want *rsa.PublicKey", i, x509Cert.PublicKey) + continue + } + if tlspub.N.Cmp(key.N) != 0 { + t.Errorf("%d: tlspub.N = %v; want %v", i, tlspub.N, key.N) + } + // verify template option + sn := big.NewInt(2) + if x509Cert.SerialNumber.Cmp(sn) != 0 { + t.Errorf("%d: SerialNumber = %v; want %v", i, x509Cert.SerialNumber, sn) + } + org := []string{"Test"} + if !reflect.DeepEqual(x509Cert.Subject.Organization, org) { + t.Errorf("%d: Subject.Organization = %+v; want %+v", i, x509Cert.Subject.Organization, org) + } + for _, v := range x509Cert.DNSNames { + if !strings.HasSuffix(v, ".acme.invalid") { + t.Errorf("%d: invalid DNSNames element: %q", i, v) + } + } + } +} + +func TestHTTP01Challenge(t *testing.T) { + const ( + token = "xxx" + // thumbprint is precomputed for testKeyEC in jws_test.go + value = token + "." + testKeyECThumbprint + urlpath = "/.well-known/acme-challenge/" + token + ) + client := &Client{Key: testKeyEC} + val, err := client.HTTP01ChallengeResponse(token) + if err != nil { + t.Fatal(err) + } + if val != value { + t.Errorf("val = %q; want %q", val, value) + } + if path := client.HTTP01ChallengePath(token); path != urlpath { + t.Errorf("path = %q; want %q", path, urlpath) + } +} + +func TestDNS01ChallengeRecord(t *testing.T) { + // echo -n xxx. | \ + // openssl dgst -binary -sha256 | \ + // base64 | tr -d '=' | tr '/+' '_-' + const value = "8DERMexQ5VcdJ_prpPiA0mVdp7imgbCgjsG4SqqNMIo" + + client := &Client{Key: testKeyEC} + val, err := client.DNS01ChallengeRecord("xxx") + if err != nil { + t.Fatal(err) + } + if val != value { + t.Errorf("val = %q; want %q", val, value) + } +} + +func TestBackoff(t *testing.T) { + tt := []struct{ min, max time.Duration }{ + {time.Second, 2 * time.Second}, + {2 * time.Second, 3 * time.Second}, + {4 * time.Second, 5 * time.Second}, + {8 * time.Second, 9 * time.Second}, + } + for i, test := range tt { + d := backoff(i, time.Minute) + if d < test.min || test.max < d { + t.Errorf("%d: d = %v; want between %v and %v", i, d, test.min, test.max) + } + } + + min, max := time.Second, 2*time.Second + if d := backoff(-1, time.Minute); d < min || max < d { + t.Errorf("d = %v; want between %v and %v", d, min, max) + } + + bound := 10 * time.Second + if d := backoff(100, bound); d != bound { + t.Errorf("d = %v; want %v", d, bound) + } +} diff --git a/vendor/golang.org/x/crypto/acme/autocert/autocert.go b/vendor/golang.org/x/crypto/acme/autocert/autocert.go new file mode 100644 index 00000000..12c9010d --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/autocert.go @@ -0,0 +1,776 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package autocert provides automatic access to certificates from Let's Encrypt +// and any other ACME-based CA. +// +// This package is a work in progress and makes no API stability promises. +package autocert + +import ( + "bytes" + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "errors" + "fmt" + "io" + mathrand "math/rand" + "net/http" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/crypto/acme" + "golang.org/x/net/context" +) + +// pseudoRand is safe for concurrent use. +var pseudoRand *lockedMathRand + +func init() { + src := mathrand.NewSource(timeNow().UnixNano()) + pseudoRand = &lockedMathRand{rnd: mathrand.New(src)} +} + +// AcceptTOS always returns true to indicate the acceptance of a CA Terms of Service +// during account registration. +func AcceptTOS(tosURL string) bool { return true } + +// HostPolicy specifies which host names the Manager is allowed to respond to. +// It returns a non-nil error if the host should be rejected. +// The returned error is accessible via tls.Conn.Handshake and its callers. +// See Manager's HostPolicy field and GetCertificate method docs for more details. +type HostPolicy func(ctx context.Context, host string) error + +// HostWhitelist returns a policy where only the specified host names are allowed. +// Only exact matches are currently supported. Subdomains, regexp or wildcard +// will not match. +func HostWhitelist(hosts ...string) HostPolicy { + whitelist := make(map[string]bool, len(hosts)) + for _, h := range hosts { + whitelist[h] = true + } + return func(_ context.Context, host string) error { + if !whitelist[host] { + return errors.New("acme/autocert: host not configured") + } + return nil + } +} + +// defaultHostPolicy is used when Manager.HostPolicy is not set. +func defaultHostPolicy(context.Context, string) error { + return nil +} + +// Manager is a stateful certificate manager built on top of acme.Client. +// It obtains and refreshes certificates automatically, +// as well as providing them to a TLS server via tls.Config. +// +// A simple usage example: +// +// m := autocert.Manager{ +// Prompt: autocert.AcceptTOS, +// HostPolicy: autocert.HostWhitelist("example.org"), +// } +// s := &http.Server{ +// Addr: ":https", +// TLSConfig: &tls.Config{GetCertificate: m.GetCertificate}, +// } +// s.ListenAndServeTLS("", "") +// +// To preserve issued certificates and improve overall performance, +// use a cache implementation of Cache. For instance, DirCache. +type Manager struct { + // Prompt specifies a callback function to conditionally accept a CA's Terms of Service (TOS). + // The registration may require the caller to agree to the CA's TOS. + // If so, Manager calls Prompt with a TOS URL provided by the CA. Prompt should report + // whether the caller agrees to the terms. + // + // To always accept the terms, the callers can use AcceptTOS. + Prompt func(tosURL string) bool + + // Cache optionally stores and retrieves previously-obtained certificates. + // If nil, certs will only be cached for the lifetime of the Manager. + // + // Manager passes the Cache certificates data encoded in PEM, with private/public + // parts combined in a single Cache.Put call, private key first. + Cache Cache + + // HostPolicy controls which domains the Manager will attempt + // to retrieve new certificates for. It does not affect cached certs. + // + // If non-nil, HostPolicy is called before requesting a new cert. + // If nil, all hosts are currently allowed. This is not recommended, + // as it opens a potential attack where clients connect to a server + // by IP address and pretend to be asking for an incorrect host name. + // Manager will attempt to obtain a certificate for that host, incorrectly, + // eventually reaching the CA's rate limit for certificate requests + // and making it impossible to obtain actual certificates. + // + // See GetCertificate for more details. + HostPolicy HostPolicy + + // RenewBefore optionally specifies how early certificates should + // be renewed before they expire. + // + // If zero, they're renewed 1 week before expiration. + RenewBefore time.Duration + + // Client is used to perform low-level operations, such as account registration + // and requesting new certificates. + // If Client is nil, a zero-value acme.Client is used with acme.LetsEncryptURL + // directory endpoint and a newly-generated ECDSA P-256 key. + // + // Mutating the field after the first call of GetCertificate method will have no effect. + Client *acme.Client + + // Email optionally specifies a contact email address. + // This is used by CAs, such as Let's Encrypt, to notify about problems + // with issued certificates. + // + // If the Client's account key is already registered, Email is not used. + Email string + + clientMu sync.Mutex + client *acme.Client // initialized by acmeClient method + + stateMu sync.Mutex + state map[string]*certState // keyed by domain name + + // tokenCert is keyed by token domain name, which matches server name + // of ClientHello. Keys always have ".acme.invalid" suffix. + tokenCertMu sync.RWMutex + tokenCert map[string]*tls.Certificate + + // renewal tracks the set of domains currently running renewal timers. + // It is keyed by domain name. + renewalMu sync.Mutex + renewal map[string]*domainRenewal +} + +// GetCertificate implements the tls.Config.GetCertificate hook. +// It provides a TLS certificate for hello.ServerName host, including answering +// *.acme.invalid (TLS-SNI) challenges. All other fields of hello are ignored. +// +// If m.HostPolicy is non-nil, GetCertificate calls the policy before requesting +// a new cert. A non-nil error returned from m.HostPolicy halts TLS negotiation. +// The error is propagated back to the caller of GetCertificate and is user-visible. +// This does not affect cached certs. See HostPolicy field description for more details. +func (m *Manager) GetCertificate(hello *tls.ClientHelloInfo) (*tls.Certificate, error) { + name := hello.ServerName + if name == "" { + return nil, errors.New("acme/autocert: missing server name") + } + + // check whether this is a token cert requested for TLS-SNI challenge + if strings.HasSuffix(name, ".acme.invalid") { + m.tokenCertMu.RLock() + defer m.tokenCertMu.RUnlock() + if cert := m.tokenCert[name]; cert != nil { + return cert, nil + } + if cert, err := m.cacheGet(name); err == nil { + return cert, nil + } + // TODO: cache error results? + return nil, fmt.Errorf("acme/autocert: no token cert for %q", name) + } + + // regular domain + cert, err := m.cert(name) + if err == nil { + return cert, nil + } + if err != ErrCacheMiss { + return nil, err + } + + // first-time + ctx := context.Background() // TODO: use a deadline? + if err := m.hostPolicy()(ctx, name); err != nil { + return nil, err + } + cert, err = m.createCert(ctx, name) + if err != nil { + return nil, err + } + m.cachePut(name, cert) + return cert, nil +} + +// cert returns an existing certificate either from m.state or cache. +// If a certificate is found in cache but not in m.state, the latter will be filled +// with the cached value. +func (m *Manager) cert(name string) (*tls.Certificate, error) { + m.stateMu.Lock() + if s, ok := m.state[name]; ok { + m.stateMu.Unlock() + s.RLock() + defer s.RUnlock() + return s.tlscert() + } + defer m.stateMu.Unlock() + cert, err := m.cacheGet(name) + if err != nil { + return nil, err + } + signer, ok := cert.PrivateKey.(crypto.Signer) + if !ok { + return nil, errors.New("acme/autocert: private key cannot sign") + } + if m.state == nil { + m.state = make(map[string]*certState) + } + s := &certState{ + key: signer, + cert: cert.Certificate, + leaf: cert.Leaf, + } + m.state[name] = s + go m.renew(name, s.key, s.leaf.NotAfter) + return cert, nil +} + +// cacheGet always returns a valid certificate, or an error otherwise. +func (m *Manager) cacheGet(domain string) (*tls.Certificate, error) { + if m.Cache == nil { + return nil, ErrCacheMiss + } + // TODO: might want to define a cache timeout on m + ctx := context.Background() + data, err := m.Cache.Get(ctx, domain) + if err != nil { + return nil, err + } + + // private + priv, pub := pem.Decode(data) + if priv == nil || !strings.Contains(priv.Type, "PRIVATE") { + return nil, errors.New("acme/autocert: no private key found in cache") + } + privKey, err := parsePrivateKey(priv.Bytes) + if err != nil { + return nil, err + } + + // public + var pubDER [][]byte + for len(pub) > 0 { + var b *pem.Block + b, pub = pem.Decode(pub) + if b == nil { + break + } + pubDER = append(pubDER, b.Bytes) + } + if len(pub) > 0 { + return nil, errors.New("acme/autocert: invalid public key") + } + + // verify and create TLS cert + leaf, err := validCert(domain, pubDER, privKey) + if err != nil { + return nil, err + } + tlscert := &tls.Certificate{ + Certificate: pubDER, + PrivateKey: privKey, + Leaf: leaf, + } + return tlscert, nil +} + +func (m *Manager) cachePut(domain string, tlscert *tls.Certificate) error { + if m.Cache == nil { + return nil + } + + // contains PEM-encoded data + var buf bytes.Buffer + + // private + switch key := tlscert.PrivateKey.(type) { + case *ecdsa.PrivateKey: + if err := encodeECDSAKey(&buf, key); err != nil { + return err + } + case *rsa.PrivateKey: + b := x509.MarshalPKCS1PrivateKey(key) + pb := &pem.Block{Type: "RSA PRIVATE KEY", Bytes: b} + if err := pem.Encode(&buf, pb); err != nil { + return err + } + default: + return errors.New("acme/autocert: unknown private key type") + } + + // public + for _, b := range tlscert.Certificate { + pb := &pem.Block{Type: "CERTIFICATE", Bytes: b} + if err := pem.Encode(&buf, pb); err != nil { + return err + } + } + + // TODO: might want to define a cache timeout on m + ctx := context.Background() + return m.Cache.Put(ctx, domain, buf.Bytes()) +} + +func encodeECDSAKey(w io.Writer, key *ecdsa.PrivateKey) error { + b, err := x509.MarshalECPrivateKey(key) + if err != nil { + return err + } + pb := &pem.Block{Type: "EC PRIVATE KEY", Bytes: b} + return pem.Encode(w, pb) +} + +// createCert starts the domain ownership verification and returns a certificate +// for that domain upon success. +// +// If the domain is already being verified, it waits for the existing verification to complete. +// Either way, createCert blocks for the duration of the whole process. +func (m *Manager) createCert(ctx context.Context, domain string) (*tls.Certificate, error) { + // TODO: maybe rewrite this whole piece using sync.Once + state, err := m.certState(domain) + if err != nil { + return nil, err + } + // state may exist if another goroutine is already working on it + // in which case just wait for it to finish + if !state.locked { + state.RLock() + defer state.RUnlock() + return state.tlscert() + } + + // We are the first; state is locked. + // Unblock the readers when domain ownership is verified + // and the we got the cert or the process failed. + defer state.Unlock() + state.locked = false + + der, leaf, err := m.authorizedCert(ctx, state.key, domain) + if err != nil { + return nil, err + } + state.cert = der + state.leaf = leaf + go m.renew(domain, state.key, state.leaf.NotAfter) + return state.tlscert() +} + +// certState returns a new or existing certState. +// If a new certState is returned, state.exist is false and the state is locked. +// The returned error is non-nil only in the case where a new state could not be created. +func (m *Manager) certState(domain string) (*certState, error) { + m.stateMu.Lock() + defer m.stateMu.Unlock() + if m.state == nil { + m.state = make(map[string]*certState) + } + // existing state + if state, ok := m.state[domain]; ok { + return state, nil + } + // new locked state + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + return nil, err + } + state := &certState{ + key: key, + locked: true, + } + state.Lock() // will be unlocked by m.certState caller + m.state[domain] = state + return state, nil +} + +// authorizedCert starts domain ownership verification process and requests a new cert upon success. +// The key argument is the certificate private key. +func (m *Manager) authorizedCert(ctx context.Context, key crypto.Signer, domain string) (der [][]byte, leaf *x509.Certificate, err error) { + // TODO: make m.verify retry or retry m.verify calls here + if err := m.verify(ctx, domain); err != nil { + return nil, nil, err + } + client, err := m.acmeClient(ctx) + if err != nil { + return nil, nil, err + } + csr, err := certRequest(key, domain) + if err != nil { + return nil, nil, err + } + der, _, err = client.CreateCert(ctx, csr, 0, true) + if err != nil { + return nil, nil, err + } + leaf, err = validCert(domain, der, key) + if err != nil { + return nil, nil, err + } + return der, leaf, nil +} + +// verify starts a new identifier (domain) authorization flow. +// It prepares a challenge response and then blocks until the authorization +// is marked as "completed" by the CA (either succeeded or failed). +// +// verify returns nil iff the verification was successful. +func (m *Manager) verify(ctx context.Context, domain string) error { + client, err := m.acmeClient(ctx) + if err != nil { + return err + } + + // start domain authorization and get the challenge + authz, err := client.Authorize(ctx, domain) + if err != nil { + return err + } + // maybe don't need to at all + if authz.Status == acme.StatusValid { + return nil + } + + // pick a challenge: prefer tls-sni-02 over tls-sni-01 + // TODO: consider authz.Combinations + var chal *acme.Challenge + for _, c := range authz.Challenges { + if c.Type == "tls-sni-02" { + chal = c + break + } + if c.Type == "tls-sni-01" { + chal = c + } + } + if chal == nil { + return errors.New("acme/autocert: no supported challenge type found") + } + + // create a token cert for the challenge response + var ( + cert tls.Certificate + name string + ) + switch chal.Type { + case "tls-sni-01": + cert, name, err = client.TLSSNI01ChallengeCert(chal.Token) + case "tls-sni-02": + cert, name, err = client.TLSSNI02ChallengeCert(chal.Token) + default: + err = fmt.Errorf("acme/autocert: unknown challenge type %q", chal.Type) + } + if err != nil { + return err + } + m.putTokenCert(name, &cert) + defer func() { + // verification has ended at this point + // don't need token cert anymore + go m.deleteTokenCert(name) + }() + + // ready to fulfill the challenge + if _, err := client.Accept(ctx, chal); err != nil { + return err + } + // wait for the CA to validate + _, err = client.WaitAuthorization(ctx, authz.URI) + return err +} + +// putTokenCert stores the cert under the named key in both m.tokenCert map +// and m.Cache. +func (m *Manager) putTokenCert(name string, cert *tls.Certificate) { + m.tokenCertMu.Lock() + defer m.tokenCertMu.Unlock() + if m.tokenCert == nil { + m.tokenCert = make(map[string]*tls.Certificate) + } + m.tokenCert[name] = cert + m.cachePut(name, cert) +} + +// deleteTokenCert removes the token certificate for the specified domain name +// from both m.tokenCert map and m.Cache. +func (m *Manager) deleteTokenCert(name string) { + m.tokenCertMu.Lock() + defer m.tokenCertMu.Unlock() + delete(m.tokenCert, name) + if m.Cache != nil { + m.Cache.Delete(context.Background(), name) + } +} + +// renew starts a cert renewal timer loop, one per domain. +// +// The loop is scheduled in two cases: +// - a cert was fetched from cache for the first time (wasn't in m.state) +// - a new cert was created by m.createCert +// +// The key argument is a certificate private key. +// The exp argument is the cert expiration time (NotAfter). +func (m *Manager) renew(domain string, key crypto.Signer, exp time.Time) { + m.renewalMu.Lock() + defer m.renewalMu.Unlock() + if m.renewal[domain] != nil { + // another goroutine is already on it + return + } + if m.renewal == nil { + m.renewal = make(map[string]*domainRenewal) + } + dr := &domainRenewal{m: m, domain: domain, key: key} + m.renewal[domain] = dr + dr.start(exp) +} + +// stopRenew stops all currently running cert renewal timers. +// The timers are not restarted during the lifetime of the Manager. +func (m *Manager) stopRenew() { + m.renewalMu.Lock() + defer m.renewalMu.Unlock() + for name, dr := range m.renewal { + delete(m.renewal, name) + dr.stop() + } +} + +func (m *Manager) accountKey(ctx context.Context) (crypto.Signer, error) { + const keyName = "acme_account.key" + + genKey := func() (*ecdsa.PrivateKey, error) { + return ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + } + + if m.Cache == nil { + return genKey() + } + + data, err := m.Cache.Get(ctx, keyName) + if err == ErrCacheMiss { + key, err := genKey() + if err != nil { + return nil, err + } + var buf bytes.Buffer + if err := encodeECDSAKey(&buf, key); err != nil { + return nil, err + } + if err := m.Cache.Put(ctx, keyName, buf.Bytes()); err != nil { + return nil, err + } + return key, nil + } + if err != nil { + return nil, err + } + + priv, _ := pem.Decode(data) + if priv == nil || !strings.Contains(priv.Type, "PRIVATE") { + return nil, errors.New("acme/autocert: invalid account key found in cache") + } + return parsePrivateKey(priv.Bytes) +} + +func (m *Manager) acmeClient(ctx context.Context) (*acme.Client, error) { + m.clientMu.Lock() + defer m.clientMu.Unlock() + if m.client != nil { + return m.client, nil + } + + client := m.Client + if client == nil { + client = &acme.Client{DirectoryURL: acme.LetsEncryptURL} + } + if client.Key == nil { + var err error + client.Key, err = m.accountKey(ctx) + if err != nil { + return nil, err + } + } + var contact []string + if m.Email != "" { + contact = []string{"mailto:" + m.Email} + } + a := &acme.Account{Contact: contact} + _, err := client.Register(ctx, a, m.Prompt) + if ae, ok := err.(*acme.Error); err == nil || ok && ae.StatusCode == http.StatusConflict { + // conflict indicates the key is already registered + m.client = client + err = nil + } + return m.client, err +} + +func (m *Manager) hostPolicy() HostPolicy { + if m.HostPolicy != nil { + return m.HostPolicy + } + return defaultHostPolicy +} + +func (m *Manager) renewBefore() time.Duration { + if m.RenewBefore > maxRandRenew { + return m.RenewBefore + } + return 7 * 24 * time.Hour // 1 week +} + +// certState is ready when its mutex is unlocked for reading. +type certState struct { + sync.RWMutex + locked bool // locked for read/write + key crypto.Signer // private key for cert + cert [][]byte // DER encoding + leaf *x509.Certificate // parsed cert[0]; always non-nil if cert != nil +} + +// tlscert creates a tls.Certificate from s.key and s.cert. +// Callers should wrap it in s.RLock() and s.RUnlock(). +func (s *certState) tlscert() (*tls.Certificate, error) { + if s.key == nil { + return nil, errors.New("acme/autocert: missing signer") + } + if len(s.cert) == 0 { + return nil, errors.New("acme/autocert: missing certificate") + } + return &tls.Certificate{ + PrivateKey: s.key, + Certificate: s.cert, + Leaf: s.leaf, + }, nil +} + +// certRequest creates a certificate request for the given common name cn +// and optional SANs. +func certRequest(key crypto.Signer, cn string, san ...string) ([]byte, error) { + req := &x509.CertificateRequest{ + Subject: pkix.Name{CommonName: cn}, + DNSNames: san, + } + return x509.CreateCertificateRequest(rand.Reader, req, key) +} + +// Attempt to parse the given private key DER block. OpenSSL 0.9.8 generates +// PKCS#1 private keys by default, while OpenSSL 1.0.0 generates PKCS#8 keys. +// OpenSSL ecparam generates SEC1 EC private keys for ECDSA. We try all three. +// +// Inspired by parsePrivateKey in crypto/tls/tls.go. +func parsePrivateKey(der []byte) (crypto.Signer, error) { + if key, err := x509.ParsePKCS1PrivateKey(der); err == nil { + return key, nil + } + if key, err := x509.ParsePKCS8PrivateKey(der); err == nil { + switch key := key.(type) { + case *rsa.PrivateKey: + return key, nil + case *ecdsa.PrivateKey: + return key, nil + default: + return nil, errors.New("acme/autocert: unknown private key type in PKCS#8 wrapping") + } + } + if key, err := x509.ParseECPrivateKey(der); err == nil { + return key, nil + } + + return nil, errors.New("acme/autocert: failed to parse private key") +} + +// validCert parses a cert chain provided as der argument and verifies the leaf, der[0], +// corresponds to the private key, as well as the domain match and expiration dates. +// It doesn't do any revocation checking. +// +// The returned value is the verified leaf cert. +func validCert(domain string, der [][]byte, key crypto.Signer) (leaf *x509.Certificate, err error) { + // parse public part(s) + var n int + for _, b := range der { + n += len(b) + } + pub := make([]byte, n) + n = 0 + for _, b := range der { + n += copy(pub[n:], b) + } + x509Cert, err := x509.ParseCertificates(pub) + if len(x509Cert) == 0 { + return nil, errors.New("acme/autocert: no public key found") + } + // verify the leaf is not expired and matches the domain name + leaf = x509Cert[0] + now := timeNow() + if now.Before(leaf.NotBefore) { + return nil, errors.New("acme/autocert: certificate is not valid yet") + } + if now.After(leaf.NotAfter) { + return nil, errors.New("acme/autocert: expired certificate") + } + if err := leaf.VerifyHostname(domain); err != nil { + return nil, err + } + // ensure the leaf corresponds to the private key + switch pub := leaf.PublicKey.(type) { + case *rsa.PublicKey: + prv, ok := key.(*rsa.PrivateKey) + if !ok { + return nil, errors.New("acme/autocert: private key type does not match public key type") + } + if pub.N.Cmp(prv.N) != 0 { + return nil, errors.New("acme/autocert: private key does not match public key") + } + case *ecdsa.PublicKey: + prv, ok := key.(*ecdsa.PrivateKey) + if !ok { + return nil, errors.New("acme/autocert: private key type does not match public key type") + } + if pub.X.Cmp(prv.X) != 0 || pub.Y.Cmp(prv.Y) != 0 { + return nil, errors.New("acme/autocert: private key does not match public key") + } + default: + return nil, errors.New("acme/autocert: unknown public key algorithm") + } + return leaf, nil +} + +func retryAfter(v string) time.Duration { + if i, err := strconv.Atoi(v); err == nil { + return time.Duration(i) * time.Second + } + if t, err := http.ParseTime(v); err == nil { + return t.Sub(timeNow()) + } + return time.Second +} + +type lockedMathRand struct { + sync.Mutex + rnd *mathrand.Rand +} + +func (r *lockedMathRand) int63n(max int64) int64 { + r.Lock() + n := r.rnd.Int63n(max) + r.Unlock() + return n +} + +// for easier testing +var timeNow = time.Now diff --git a/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go b/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go new file mode 100644 index 00000000..3a9daa10 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go @@ -0,0 +1,390 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package autocert + +import ( + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/base64" + "encoding/json" + "fmt" + "html/template" + "io" + "math/big" + "net/http" + "net/http/httptest" + "reflect" + "testing" + "time" + + "golang.org/x/crypto/acme" + "golang.org/x/net/context" +) + +var discoTmpl = template.Must(template.New("disco").Parse(`{ + "new-reg": "{{.}}/new-reg", + "new-authz": "{{.}}/new-authz", + "new-cert": "{{.}}/new-cert" +}`)) + +var authzTmpl = template.Must(template.New("authz").Parse(`{ + "status": "pending", + "challenges": [ + { + "uri": "{{.}}/challenge/1", + "type": "tls-sni-01", + "token": "token-01" + }, + { + "uri": "{{.}}/challenge/2", + "type": "tls-sni-02", + "token": "token-02" + } + ] +}`)) + +type memCache map[string][]byte + +func (m memCache) Get(ctx context.Context, key string) ([]byte, error) { + v, ok := m[key] + if !ok { + return nil, ErrCacheMiss + } + return v, nil +} + +func (m memCache) Put(ctx context.Context, key string, data []byte) error { + m[key] = data + return nil +} + +func (m memCache) Delete(ctx context.Context, key string) error { + delete(m, key) + return nil +} + +func dummyCert(pub interface{}, san ...string) ([]byte, error) { + return dateDummyCert(pub, time.Now(), time.Now().Add(90*24*time.Hour), san...) +} + +func dateDummyCert(pub interface{}, start, end time.Time, san ...string) ([]byte, error) { + // use EC key to run faster on 386 + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + return nil, err + } + t := &x509.Certificate{ + SerialNumber: big.NewInt(1), + NotBefore: start, + NotAfter: end, + BasicConstraintsValid: true, + KeyUsage: x509.KeyUsageKeyEncipherment, + DNSNames: san, + } + if pub == nil { + pub = &key.PublicKey + } + return x509.CreateCertificate(rand.Reader, t, t, pub, key) +} + +func decodePayload(v interface{}, r io.Reader) error { + var req struct{ Payload string } + if err := json.NewDecoder(r).Decode(&req); err != nil { + return err + } + payload, err := base64.RawURLEncoding.DecodeString(req.Payload) + if err != nil { + return err + } + return json.Unmarshal(payload, v) +} + +func TestGetCertificate(t *testing.T) { + const domain = "example.org" + man := &Manager{Prompt: AcceptTOS} + defer man.stopRenew() + + // echo token-02 | shasum -a 256 + // then divide result in 2 parts separated by dot + tokenCertName := "4e8eb87631187e9ff2153b56b13a4dec.13a35d002e485d60ff37354b32f665d9.token.acme.invalid" + verifyTokenCert := func() { + hello := &tls.ClientHelloInfo{ServerName: tokenCertName} + _, err := man.GetCertificate(hello) + if err != nil { + t.Errorf("verifyTokenCert: GetCertificate(%q): %v", tokenCertName, err) + return + } + } + + // ACME CA server stub + var ca *httptest.Server + ca = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("replay-nonce", "nonce") + if r.Method == "HEAD" { + // a nonce request + return + } + + switch r.URL.Path { + // discovery + case "/": + if err := discoTmpl.Execute(w, ca.URL); err != nil { + t.Fatalf("discoTmpl: %v", err) + } + // client key registration + case "/new-reg": + w.Write([]byte("{}")) + // domain authorization + case "/new-authz": + w.Header().Set("location", ca.URL+"/authz/1") + w.WriteHeader(http.StatusCreated) + if err := authzTmpl.Execute(w, ca.URL); err != nil { + t.Fatalf("authzTmpl: %v", err) + } + // accept tls-sni-02 challenge + case "/challenge/2": + verifyTokenCert() + w.Write([]byte("{}")) + // authorization status + case "/authz/1": + w.Write([]byte(`{"status": "valid"}`)) + // cert request + case "/new-cert": + var req struct { + CSR string `json:"csr"` + } + decodePayload(&req, r.Body) + b, _ := base64.RawURLEncoding.DecodeString(req.CSR) + csr, err := x509.ParseCertificateRequest(b) + if err != nil { + t.Fatalf("new-cert: CSR: %v", err) + } + der, err := dummyCert(csr.PublicKey, domain) + if err != nil { + t.Fatalf("new-cert: dummyCert: %v", err) + } + chainUp := fmt.Sprintf("<%s/ca-cert>; rel=up", ca.URL) + w.Header().Set("link", chainUp) + w.WriteHeader(http.StatusCreated) + w.Write(der) + // CA chain cert + case "/ca-cert": + der, err := dummyCert(nil, "ca") + if err != nil { + t.Fatalf("ca-cert: dummyCert: %v", err) + } + w.Write(der) + default: + t.Errorf("unrecognized r.URL.Path: %s", r.URL.Path) + } + })) + defer ca.Close() + + // use EC key to run faster on 386 + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + man.Client = &acme.Client{ + Key: key, + DirectoryURL: ca.URL, + } + + // simulate tls.Config.GetCertificate + var tlscert *tls.Certificate + done := make(chan struct{}) + go func() { + hello := &tls.ClientHelloInfo{ServerName: domain} + tlscert, err = man.GetCertificate(hello) + close(done) + }() + select { + case <-time.After(time.Minute): + t.Fatal("man.GetCertificate took too long to return") + case <-done: + } + if err != nil { + t.Fatalf("man.GetCertificate: %v", err) + } + + // verify the tlscert is the same we responded with from the CA stub + if len(tlscert.Certificate) == 0 { + t.Fatal("len(tlscert.Certificate) is 0") + } + cert, err := x509.ParseCertificate(tlscert.Certificate[0]) + if err != nil { + t.Fatalf("x509.ParseCertificate: %v", err) + } + if len(cert.DNSNames) == 0 || cert.DNSNames[0] != domain { + t.Errorf("cert.DNSNames = %v; want %q", cert.DNSNames, domain) + } + + // make sure token cert was removed + done = make(chan struct{}) + go func() { + for { + hello := &tls.ClientHelloInfo{ServerName: tokenCertName} + if _, err := man.GetCertificate(hello); err != nil { + break + } + time.Sleep(100 * time.Millisecond) + } + close(done) + }() + select { + case <-time.After(5 * time.Second): + t.Error("token cert was not removed") + case <-done: + } +} + +func TestAccountKeyCache(t *testing.T) { + cache := make(memCache) + m := Manager{Cache: cache} + ctx := context.Background() + k1, err := m.accountKey(ctx) + if err != nil { + t.Fatal(err) + } + k2, err := m.accountKey(ctx) + if err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(k1, k2) { + t.Errorf("account keys don't match: k1 = %#v; k2 = %#v", k1, k2) + } +} + +func TestCache(t *testing.T) { + privKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + tmpl := &x509.Certificate{ + SerialNumber: big.NewInt(1), + Subject: pkix.Name{CommonName: "example.org"}, + NotAfter: time.Now().Add(time.Hour), + } + pub, err := x509.CreateCertificate(rand.Reader, tmpl, tmpl, &privKey.PublicKey, privKey) + if err != nil { + t.Fatal(err) + } + tlscert := &tls.Certificate{ + Certificate: [][]byte{pub}, + PrivateKey: privKey, + } + + cache := make(memCache) + man := &Manager{Cache: cache} + defer man.stopRenew() + if err := man.cachePut("example.org", tlscert); err != nil { + t.Fatalf("man.cachePut: %v", err) + } + res, err := man.cacheGet("example.org") + if err != nil { + t.Fatalf("man.cacheGet: %v", err) + } + if res == nil { + t.Fatal("res is nil") + } +} + +func TestHostWhitelist(t *testing.T) { + policy := HostWhitelist("example.com", "example.org", "*.example.net") + tt := []struct { + host string + allow bool + }{ + {"example.com", true}, + {"example.org", true}, + {"one.example.com", false}, + {"two.example.org", false}, + {"three.example.net", false}, + {"dummy", false}, + } + for i, test := range tt { + err := policy(nil, test.host) + if err != nil && test.allow { + t.Errorf("%d: policy(%q): %v; want nil", i, test.host, err) + } + if err == nil && !test.allow { + t.Errorf("%d: policy(%q): nil; want an error", i, test.host) + } + } +} + +func TestValidCert(t *testing.T) { + key1, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + key2, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + key3, err := rsa.GenerateKey(rand.Reader, 512) + if err != nil { + t.Fatal(err) + } + cert1, err := dummyCert(key1.Public(), "example.org") + if err != nil { + t.Fatal(err) + } + cert2, err := dummyCert(key2.Public(), "example.org") + if err != nil { + t.Fatal(err) + } + cert3, err := dummyCert(key3.Public(), "example.org") + if err != nil { + t.Fatal(err) + } + now := time.Now() + early, err := dateDummyCert(key1.Public(), now.Add(time.Hour), now.Add(2*time.Hour), "example.org") + if err != nil { + t.Fatal(err) + } + expired, err := dateDummyCert(key1.Public(), now.Add(-2*time.Hour), now.Add(-time.Hour), "example.org") + if err != nil { + t.Fatal(err) + } + + tt := []struct { + domain string + key crypto.Signer + cert [][]byte + ok bool + }{ + {"example.org", key1, [][]byte{cert1}, true}, + {"example.org", key3, [][]byte{cert3}, true}, + {"example.org", key1, [][]byte{cert1, cert2, cert3}, true}, + {"example.org", key1, [][]byte{cert1, {1}}, false}, + {"example.org", key1, [][]byte{{1}}, false}, + {"example.org", key1, [][]byte{cert2}, false}, + {"example.org", key2, [][]byte{cert1}, false}, + {"example.org", key1, [][]byte{cert3}, false}, + {"example.org", key3, [][]byte{cert1}, false}, + {"example.net", key1, [][]byte{cert1}, false}, + {"example.org", key1, [][]byte{early}, false}, + {"example.org", key1, [][]byte{expired}, false}, + } + for i, test := range tt { + leaf, err := validCert(test.domain, test.cert, test.key) + if err != nil && test.ok { + t.Errorf("%d: err = %v", i, err) + } + if err == nil && !test.ok { + t.Errorf("%d: err is nil", i) + } + if err == nil && test.ok && leaf == nil { + t.Errorf("%d: leaf is nil", i) + } + } +} diff --git a/vendor/golang.org/x/crypto/acme/autocert/cache.go b/vendor/golang.org/x/crypto/acme/autocert/cache.go new file mode 100644 index 00000000..1c67f6ce --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/cache.go @@ -0,0 +1,130 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package autocert + +import ( + "errors" + "io/ioutil" + "os" + "path/filepath" + + "golang.org/x/net/context" +) + +// ErrCacheMiss is returned when a certificate is not found in cache. +var ErrCacheMiss = errors.New("acme/autocert: certificate cache miss") + +// Cache is used by Manager to store and retrieve previously obtained certificates +// as opaque data. +// +// The key argument of the methods refers to a domain name but need not be an FQDN. +// Cache implementations should not rely on the key naming pattern. +type Cache interface { + // Get returns a certificate data for the specified key. + // If there's no such key, Get returns ErrCacheMiss. + Get(ctx context.Context, key string) ([]byte, error) + + // Put stores the data in the cache under the specified key. + // Inderlying implementations may use any data storage format, + // as long as the reverse operation, Get, results in the original data. + Put(ctx context.Context, key string, data []byte) error + + // Delete removes a certificate data from the cache under the specified key. + // If there's no such key in the cache, Delete returns nil. + Delete(ctx context.Context, key string) error +} + +// DirCache implements Cache using a directory on the local filesystem. +// If the directory does not exist, it will be created with 0700 permissions. +type DirCache string + +// Get reads a certificate data from the specified file name. +func (d DirCache) Get(ctx context.Context, name string) ([]byte, error) { + name = filepath.Join(string(d), name) + var ( + data []byte + err error + done = make(chan struct{}) + ) + go func() { + data, err = ioutil.ReadFile(name) + close(done) + }() + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-done: + } + if os.IsNotExist(err) { + return nil, ErrCacheMiss + } + return data, err +} + +// Put writes the certificate data to the specified file name. +// The file will be created with 0600 permissions. +func (d DirCache) Put(ctx context.Context, name string, data []byte) error { + if err := os.MkdirAll(string(d), 0700); err != nil { + return err + } + + done := make(chan struct{}) + var err error + go func() { + defer close(done) + var tmp string + if tmp, err = d.writeTempFile(name, data); err != nil { + return + } + // prevent overwriting the file if the context was cancelled + if ctx.Err() != nil { + return // no need to set err + } + name = filepath.Join(string(d), name) + err = os.Rename(tmp, name) + }() + select { + case <-ctx.Done(): + return ctx.Err() + case <-done: + } + return err +} + +// Delete removes the specified file name. +func (d DirCache) Delete(ctx context.Context, name string) error { + name = filepath.Join(string(d), name) + var ( + err error + done = make(chan struct{}) + ) + go func() { + err = os.Remove(name) + close(done) + }() + select { + case <-ctx.Done(): + return ctx.Err() + case <-done: + } + if err != nil && !os.IsNotExist(err) { + return err + } + return nil +} + +// writeTempFile writes b to a temporary file, closes the file and returns its path. +func (d DirCache) writeTempFile(prefix string, b []byte) (string, error) { + // TempFile uses 0600 permissions + f, err := ioutil.TempFile(string(d), prefix) + if err != nil { + return "", err + } + if _, err := f.Write(b); err != nil { + f.Close() + return "", err + } + return f.Name(), f.Close() +} diff --git a/vendor/golang.org/x/crypto/acme/autocert/cache_test.go b/vendor/golang.org/x/crypto/acme/autocert/cache_test.go new file mode 100644 index 00000000..ad6d4a46 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/cache_test.go @@ -0,0 +1,58 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package autocert + +import ( + "io/ioutil" + "os" + "path/filepath" + "reflect" + "testing" + + "golang.org/x/net/context" +) + +// make sure DirCache satisfies Cache interface +var _ Cache = DirCache("/") + +func TestDirCache(t *testing.T) { + dir, err := ioutil.TempDir("", "autocert") + if err != nil { + t.Fatal(err) + } + dir = filepath.Join(dir, "certs") // a nonexistent dir + cache := DirCache(dir) + ctx := context.Background() + + // test cache miss + if _, err := cache.Get(ctx, "nonexistent"); err != ErrCacheMiss { + t.Errorf("get: %v; want ErrCacheMiss", err) + } + + // test put/get + b1 := []byte{1} + if err := cache.Put(ctx, "dummy", b1); err != nil { + t.Fatalf("put: %v", err) + } + b2, err := cache.Get(ctx, "dummy") + if err != nil { + t.Fatalf("get: %v", err) + } + if !reflect.DeepEqual(b1, b2) { + t.Errorf("b1 = %v; want %v", b1, b2) + } + name := filepath.Join(dir, "dummy") + if _, err := os.Stat(name); err != nil { + t.Error(err) + } + + // test delete + if err := cache.Delete(ctx, "dummy"); err != nil { + t.Fatalf("delete: %v", err) + } + if _, err := cache.Get(ctx, "dummy"); err != ErrCacheMiss { + t.Errorf("get: %v; want ErrCacheMiss", err) + } +} diff --git a/vendor/golang.org/x/crypto/acme/autocert/renewal.go b/vendor/golang.org/x/crypto/acme/autocert/renewal.go new file mode 100644 index 00000000..1a5018c8 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/renewal.go @@ -0,0 +1,125 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package autocert + +import ( + "crypto" + "sync" + "time" + + "golang.org/x/net/context" +) + +// maxRandRenew is a maximum deviation from Manager.RenewBefore. +const maxRandRenew = time.Hour + +// domainRenewal tracks the state used by the periodic timers +// renewing a single domain's cert. +type domainRenewal struct { + m *Manager + domain string + key crypto.Signer + + timerMu sync.Mutex + timer *time.Timer +} + +// start starts a cert renewal timer at the time +// defined by the certificate expiration time exp. +// +// If the timer is already started, calling start is a noop. +func (dr *domainRenewal) start(exp time.Time) { + dr.timerMu.Lock() + defer dr.timerMu.Unlock() + if dr.timer != nil { + return + } + dr.timer = time.AfterFunc(dr.next(exp), dr.renew) +} + +// stop stops the cert renewal timer. +// If the timer is already stopped, calling stop is a noop. +func (dr *domainRenewal) stop() { + dr.timerMu.Lock() + defer dr.timerMu.Unlock() + if dr.timer == nil { + return + } + dr.timer.Stop() + dr.timer = nil +} + +// renew is called periodically by a timer. +// The first renew call is kicked off by dr.start. +func (dr *domainRenewal) renew() { + dr.timerMu.Lock() + defer dr.timerMu.Unlock() + if dr.timer == nil { + return + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + // TODO: rotate dr.key at some point? + next, err := dr.do(ctx) + if err != nil { + next = maxRandRenew / 2 + next += time.Duration(pseudoRand.int63n(int64(next))) + } + dr.timer = time.AfterFunc(next, dr.renew) + testDidRenewLoop(next, err) +} + +// do is similar to Manager.createCert but it doesn't lock a Manager.state item. +// Instead, it requests a new certificate independently and, upon success, +// replaces dr.m.state item with a new one and updates cache for the given domain. +// +// It may return immediately if the expiration date of the currently cached cert +// is far enough in the future. +// +// The returned value is a time interval after which the renewal should occur again. +func (dr *domainRenewal) do(ctx context.Context) (time.Duration, error) { + // a race is likely unavoidable in a distributed environment + // but we try nonetheless + if tlscert, err := dr.m.cacheGet(dr.domain); err == nil { + next := dr.next(tlscert.Leaf.NotAfter) + if next > dr.m.renewBefore()+maxRandRenew { + return next, nil + } + } + + der, leaf, err := dr.m.authorizedCert(ctx, dr.key, dr.domain) + if err != nil { + return 0, err + } + state := &certState{ + key: dr.key, + cert: der, + leaf: leaf, + } + tlscert, err := state.tlscert() + if err != nil { + return 0, err + } + dr.m.cachePut(dr.domain, tlscert) + dr.m.stateMu.Lock() + defer dr.m.stateMu.Unlock() + // m.state is guaranteed to be non-nil at this point + dr.m.state[dr.domain] = state + return dr.next(leaf.NotAfter), nil +} + +func (dr *domainRenewal) next(expiry time.Time) time.Duration { + d := expiry.Sub(timeNow()) - dr.m.renewBefore() + // add a bit of randomness to renew deadline + n := pseudoRand.int63n(int64(maxRandRenew)) + d -= time.Duration(n) + if d < 0 { + return 0 + } + return d +} + +var testDidRenewLoop = func(next time.Duration, err error) {} diff --git a/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go b/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go new file mode 100644 index 00000000..d1ec52f4 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go @@ -0,0 +1,190 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package autocert + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/tls" + "crypto/x509" + "encoding/base64" + "fmt" + "net/http" + "net/http/httptest" + "testing" + "time" + + "golang.org/x/crypto/acme" +) + +func TestRenewalNext(t *testing.T) { + now := time.Now() + timeNow = func() time.Time { return now } + defer func() { timeNow = time.Now }() + + man := &Manager{RenewBefore: 7 * 24 * time.Hour} + defer man.stopRenew() + tt := []struct { + expiry time.Time + min, max time.Duration + }{ + {now.Add(90 * 24 * time.Hour), 83*24*time.Hour - maxRandRenew, 83 * 24 * time.Hour}, + {now.Add(time.Hour), 0, 1}, + {now, 0, 1}, + {now.Add(-time.Hour), 0, 1}, + } + + dr := &domainRenewal{m: man} + for i, test := range tt { + next := dr.next(test.expiry) + if next < test.min || test.max < next { + t.Errorf("%d: next = %v; want between %v and %v", i, next, test.min, test.max) + } + } +} + +func TestRenewFromCache(t *testing.T) { + const domain = "example.org" + + // ACME CA server stub + var ca *httptest.Server + ca = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("replay-nonce", "nonce") + if r.Method == "HEAD" { + // a nonce request + return + } + + switch r.URL.Path { + // discovery + case "/": + if err := discoTmpl.Execute(w, ca.URL); err != nil { + t.Fatalf("discoTmpl: %v", err) + } + // client key registration + case "/new-reg": + w.Write([]byte("{}")) + // domain authorization + case "/new-authz": + w.Header().Set("location", ca.URL+"/authz/1") + w.WriteHeader(http.StatusCreated) + w.Write([]byte(`{"status": "valid"}`)) + // cert request + case "/new-cert": + var req struct { + CSR string `json:"csr"` + } + decodePayload(&req, r.Body) + b, _ := base64.RawURLEncoding.DecodeString(req.CSR) + csr, err := x509.ParseCertificateRequest(b) + if err != nil { + t.Fatalf("new-cert: CSR: %v", err) + } + der, err := dummyCert(csr.PublicKey, domain) + if err != nil { + t.Fatalf("new-cert: dummyCert: %v", err) + } + chainUp := fmt.Sprintf("<%s/ca-cert>; rel=up", ca.URL) + w.Header().Set("link", chainUp) + w.WriteHeader(http.StatusCreated) + w.Write(der) + // CA chain cert + case "/ca-cert": + der, err := dummyCert(nil, "ca") + if err != nil { + t.Fatalf("ca-cert: dummyCert: %v", err) + } + w.Write(der) + default: + t.Errorf("unrecognized r.URL.Path: %s", r.URL.Path) + } + })) + defer ca.Close() + + // use EC key to run faster on 386 + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + man := &Manager{ + Prompt: AcceptTOS, + Cache: make(memCache), + RenewBefore: 24 * time.Hour, + Client: &acme.Client{ + Key: key, + DirectoryURL: ca.URL, + }, + } + defer man.stopRenew() + + // cache an almost expired cert + now := time.Now() + cert, err := dateDummyCert(key.Public(), now.Add(-2*time.Hour), now.Add(time.Minute), domain) + if err != nil { + t.Fatal(err) + } + tlscert := &tls.Certificate{PrivateKey: key, Certificate: [][]byte{cert}} + if err := man.cachePut(domain, tlscert); err != nil { + t.Fatal(err) + } + + // veriy the renewal happened + defer func() { + testDidRenewLoop = func(next time.Duration, err error) {} + }() + done := make(chan struct{}) + testDidRenewLoop = func(next time.Duration, err error) { + defer close(done) + if err != nil { + t.Errorf("testDidRenewLoop: %v", err) + } + // Next should be about 90 days: + // dummyCert creates 90days expiry + account for man.RenewBefore. + // Previous expiration was within 1 min. + future := 88 * 24 * time.Hour + if next < future { + t.Errorf("testDidRenewLoop: next = %v; want >= %v", next, future) + } + + // ensure the new cert is cached + after := time.Now().Add(future) + tlscert, err := man.cacheGet(domain) + if err != nil { + t.Fatalf("man.cacheGet: %v", err) + } + if !tlscert.Leaf.NotAfter.After(after) { + t.Errorf("cache leaf.NotAfter = %v; want > %v", tlscert.Leaf.NotAfter, after) + } + + // verify the old cert is also replaced in memory + man.stateMu.Lock() + defer man.stateMu.Unlock() + s := man.state[domain] + if s == nil { + t.Fatalf("m.state[%q] is nil", domain) + } + tlscert, err = s.tlscert() + if err != nil { + t.Fatalf("s.tlscert: %v", err) + } + if !tlscert.Leaf.NotAfter.After(after) { + t.Errorf("state leaf.NotAfter = %v; want > %v", tlscert.Leaf.NotAfter, after) + } + } + + // trigger renew + hello := &tls.ClientHelloInfo{ServerName: domain} + if _, err := man.GetCertificate(hello); err != nil { + t.Fatal(err) + } + + // wait for renew loop + select { + case <-time.After(10 * time.Second): + t.Fatal("renew took too long to occur") + case <-done: + } +} diff --git a/vendor/golang.org/x/crypto/acme/jws.go b/vendor/golang.org/x/crypto/acme/jws.go new file mode 100644 index 00000000..49ba313c --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/jws.go @@ -0,0 +1,153 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package acme + +import ( + "crypto" + "crypto/ecdsa" + "crypto/rand" + "crypto/rsa" + "crypto/sha256" + _ "crypto/sha512" // need for EC keys + "encoding/base64" + "encoding/json" + "fmt" + "math/big" +) + +// jwsEncodeJSON signs claimset using provided key and a nonce. +// The result is serialized in JSON format. +// See https://tools.ietf.org/html/rfc7515#section-7. +func jwsEncodeJSON(claimset interface{}, key crypto.Signer, nonce string) ([]byte, error) { + jwk, err := jwkEncode(key.Public()) + if err != nil { + return nil, err + } + alg, sha := jwsHasher(key) + if alg == "" || !sha.Available() { + return nil, ErrUnsupportedKey + } + phead := fmt.Sprintf(`{"alg":%q,"jwk":%s,"nonce":%q}`, alg, jwk, nonce) + phead = base64.RawURLEncoding.EncodeToString([]byte(phead)) + cs, err := json.Marshal(claimset) + if err != nil { + return nil, err + } + payload := base64.RawURLEncoding.EncodeToString(cs) + hash := sha.New() + hash.Write([]byte(phead + "." + payload)) + sig, err := jwsSign(key, sha, hash.Sum(nil)) + if err != nil { + return nil, err + } + + enc := struct { + Protected string `json:"protected"` + Payload string `json:"payload"` + Sig string `json:"signature"` + }{ + Protected: phead, + Payload: payload, + Sig: base64.RawURLEncoding.EncodeToString(sig), + } + return json.Marshal(&enc) +} + +// jwkEncode encodes public part of an RSA or ECDSA key into a JWK. +// The result is also suitable for creating a JWK thumbprint. +// https://tools.ietf.org/html/rfc7517 +func jwkEncode(pub crypto.PublicKey) (string, error) { + switch pub := pub.(type) { + case *rsa.PublicKey: + // https://tools.ietf.org/html/rfc7518#section-6.3.1 + n := pub.N + e := big.NewInt(int64(pub.E)) + // Field order is important. + // See https://tools.ietf.org/html/rfc7638#section-3.3 for details. + return fmt.Sprintf(`{"e":"%s","kty":"RSA","n":"%s"}`, + base64.RawURLEncoding.EncodeToString(e.Bytes()), + base64.RawURLEncoding.EncodeToString(n.Bytes()), + ), nil + case *ecdsa.PublicKey: + // https://tools.ietf.org/html/rfc7518#section-6.2.1 + p := pub.Curve.Params() + n := p.BitSize / 8 + if p.BitSize%8 != 0 { + n++ + } + x := pub.X.Bytes() + if n > len(x) { + x = append(make([]byte, n-len(x)), x...) + } + y := pub.Y.Bytes() + if n > len(y) { + y = append(make([]byte, n-len(y)), y...) + } + // Field order is important. + // See https://tools.ietf.org/html/rfc7638#section-3.3 for details. + return fmt.Sprintf(`{"crv":"%s","kty":"EC","x":"%s","y":"%s"}`, + p.Name, + base64.RawURLEncoding.EncodeToString(x), + base64.RawURLEncoding.EncodeToString(y), + ), nil + } + return "", ErrUnsupportedKey +} + +// jwsSign signs the digest using the given key. +// It returns ErrUnsupportedKey if the key type is unknown. +// The hash is used only for RSA keys. +func jwsSign(key crypto.Signer, hash crypto.Hash, digest []byte) ([]byte, error) { + switch key := key.(type) { + case *rsa.PrivateKey: + return key.Sign(rand.Reader, digest, hash) + case *ecdsa.PrivateKey: + r, s, err := ecdsa.Sign(rand.Reader, key, digest) + if err != nil { + return nil, err + } + rb, sb := r.Bytes(), s.Bytes() + size := key.Params().BitSize / 8 + if size%8 > 0 { + size++ + } + sig := make([]byte, size*2) + copy(sig[size-len(rb):], rb) + copy(sig[size*2-len(sb):], sb) + return sig, nil + } + return nil, ErrUnsupportedKey +} + +// jwsHasher indicates suitable JWS algorithm name and a hash function +// to use for signing a digest with the provided key. +// It returns ("", 0) if the key is not supported. +func jwsHasher(key crypto.Signer) (string, crypto.Hash) { + switch key := key.(type) { + case *rsa.PrivateKey: + return "RS256", crypto.SHA256 + case *ecdsa.PrivateKey: + switch key.Params().Name { + case "P-256": + return "ES256", crypto.SHA256 + case "P-384": + return "ES384", crypto.SHA384 + case "P-512": + return "ES512", crypto.SHA512 + } + } + return "", 0 +} + +// JWKThumbprint creates a JWK thumbprint out of pub +// as specified in https://tools.ietf.org/html/rfc7638. +func JWKThumbprint(pub crypto.PublicKey) (string, error) { + jwk, err := jwkEncode(pub) + if err != nil { + return "", err + } + b := sha256.Sum256([]byte(jwk)) + return base64.RawURLEncoding.EncodeToString(b[:]), nil +} diff --git a/vendor/golang.org/x/crypto/acme/jws_test.go b/vendor/golang.org/x/crypto/acme/jws_test.go new file mode 100644 index 00000000..1def8739 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/jws_test.go @@ -0,0 +1,266 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package acme + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "crypto/x509" + "encoding/base64" + "encoding/json" + "encoding/pem" + "math/big" + "testing" +) + +const testKeyPEM = ` +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA4xgZ3eRPkwoRvy7qeRUbmMDe0V+xH9eWLdu0iheeLlrmD2mq +WXfP9IeSKApbn34g8TuAS9g5zhq8ELQ3kmjr+KV86GAMgI6VAcGlq3QrzpTCf/30 +Ab7+zawrfRaFONa1HwEzPY1KHnGVkxJc85gNkwYI9SY2RHXtvln3zs5wITNrdosq +EXeaIkVYBEhbhNu54pp3kxo6TuWLi9e6pXeWetEwmlBwtWZlPoib2j3TxLBksKZf +oyFyek380mHgJAumQ/I2fjj98/97mk3ihOY4AgVdCDj1z/GCoZkG5Rq7nbCGyosy +KWyDX00Zs+nNqVhoLeIvXC4nnWdJMZ6rogxyQQIDAQABAoIBACIEZTOI1Kao9nmV +9IeIsuaR1Y61b9neOF/MLmIVIZu+AAJFCMB4Iw11FV6sFodwpEyeZhx2WkpWVN+H +r19eGiLX3zsL0DOdqBJoSIHDWCCMxgnYJ6nvS0nRxX3qVrBp8R2g12Ub+gNPbmFm +ecf/eeERIVxfifd9VsyRu34eDEvcmKFuLYbElFcPh62xE3x12UZvV/sN7gXbawpP +G+w255vbE5MoaKdnnO83cTFlcHvhn24M/78qP7Te5OAeelr1R89kYxQLpuGe4fbS +zc6E3ym5Td6urDetGGrSY1Eu10/8sMusX+KNWkm+RsBRbkyKq72ks/qKpOxOa+c6 +9gm+Y8ECgYEA/iNUyg1ubRdH11p82l8KHtFC1DPE0V1gSZsX29TpM5jS4qv46K+s +8Ym1zmrORM8x+cynfPx1VQZQ34EYeCMIX212ryJ+zDATl4NE0I4muMvSiH9vx6Xc +7FmhNnaYzPsBL5Tm9nmtQuP09YEn8poiOJFiDs/4olnD5ogA5O4THGkCgYEA5MIL +qWYBUuqbEWLRtMruUtpASclrBqNNsJEsMGbeqBJmoMxdHeSZckbLOrqm7GlMyNRJ +Ne/5uWRGSzaMYuGmwsPpERzqEvYFnSrpjW5YtXZ+JtxFXNVfm9Z1gLLgvGpOUCIU +RbpoDckDe1vgUuk3y5+DjZihs+rqIJ45XzXTzBkCgYBWuf3segruJZy5rEKhTv+o +JqeUvRn0jNYYKFpLBeyTVBrbie6GkbUGNIWbrK05pC+c3K9nosvzuRUOQQL1tJbd +4gA3oiD9U4bMFNr+BRTHyZ7OQBcIXdz3t1qhuHVKtnngIAN1p25uPlbRFUNpshnt +jgeVoHlsBhApcs5DUc+pyQKBgDzeHPg/+g4z+nrPznjKnktRY1W+0El93kgi+J0Q +YiJacxBKEGTJ1MKBb8X6sDurcRDm22wMpGfd9I5Cv2v4GsUsF7HD/cx5xdih+G73 +c4clNj/k0Ff5Nm1izPUno4C+0IOl7br39IPmfpSuR6wH/h6iHQDqIeybjxyKvT1G +N0rRAoGBAKGD+4ZI/E1MoJ5CXB8cDDMHagbE3cq/DtmYzE2v1DFpQYu5I4PCm5c7 +EQeIP6dZtv8IMgtGIb91QX9pXvP0aznzQKwYIA8nZgoENCPfiMTPiEDT9e/0lObO +9XWsXpbSTsRPj0sv1rB+UzBJ0PgjK4q2zOF0sNo7b1+6nlM3BWPx +-----END RSA PRIVATE KEY----- +` + +// This thumbprint is for the testKey defined above. +const testKeyThumbprint = "6nicxzh6WETQlrvdchkz-U3e3DOQZ4heJKU63rfqMqQ" + +const ( + // openssl ecparam -name secp256k1 -genkey -noout + testKeyECPEM = ` +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIK07hGLr0RwyUdYJ8wbIiBS55CjnkMD23DWr+ccnypWLoAoGCCqGSM49 +AwEHoUQDQgAE5lhEug5xK4xBDZ2nAbaxLtaLiv85bxJ7ePd1dkO23HThqIrvawF5 +QAaS/RNouybCiRhRjI3EaxLkQwgrCw0gqQ== +-----END EC PRIVATE KEY----- +` + // 1. opnessl ec -in key.pem -noout -text + // 2. remove first byte, 04 (the header); the rest is X and Y + // 3. covert each with: echo | xxd -r -p | base64 | tr -d '=' | tr '/+' '_-' + testKeyECPubX = "5lhEug5xK4xBDZ2nAbaxLtaLiv85bxJ7ePd1dkO23HQ" + testKeyECPubY = "4aiK72sBeUAGkv0TaLsmwokYUYyNxGsS5EMIKwsNIKk" + // echo -n '{"crv":"P-256","kty":"EC","x":"","y":""}' | \ + // openssl dgst -binary -sha256 | base64 | tr -d '=' | tr '/+' '_-' + testKeyECThumbprint = "zedj-Bd1Zshp8KLePv2MB-lJ_Hagp7wAwdkA0NUTniU" +) + +var ( + testKey *rsa.PrivateKey + testKeyEC *ecdsa.PrivateKey +) + +func init() { + d, _ := pem.Decode([]byte(testKeyPEM)) + if d == nil { + panic("no block found in testKeyPEM") + } + var err error + testKey, err = x509.ParsePKCS1PrivateKey(d.Bytes) + if err != nil { + panic(err.Error()) + } + + if d, _ = pem.Decode([]byte(testKeyECPEM)); d == nil { + panic("no block found in testKeyECPEM") + } + testKeyEC, err = x509.ParseECPrivateKey(d.Bytes) + if err != nil { + panic(err.Error()) + } +} + +func TestJWSEncodeJSON(t *testing.T) { + claims := struct{ Msg string }{"Hello JWS"} + // JWS signed with testKey and "nonce" as the nonce value + // JSON-serialized JWS fields are split for easier testing + const ( + // {"alg":"RS256","jwk":{"e":"AQAB","kty":"RSA","n":"..."},"nonce":"nonce"} + protected = "eyJhbGciOiJSUzI1NiIsImp3ayI6eyJlIjoiQVFBQiIsImt0eSI6" + + "IlJTQSIsIm4iOiI0eGdaM2VSUGt3b1J2eTdxZVJVYm1NRGUwVi14" + + "SDllV0xkdTBpaGVlTGxybUQybXFXWGZQOUllU0tBcGJuMzRnOFR1" + + "QVM5ZzV6aHE4RUxRM2ttanItS1Y4NkdBTWdJNlZBY0dscTNRcnpw" + + "VENmXzMwQWI3LXphd3JmUmFGT05hMUh3RXpQWTFLSG5HVmt4SmM4" + + "NWdOa3dZSTlTWTJSSFh0dmxuM3pzNXdJVE5yZG9zcUVYZWFJa1ZZ" + + "QkVoYmhOdTU0cHAza3hvNlR1V0xpOWU2cFhlV2V0RXdtbEJ3dFda" + + "bFBvaWIyajNUeExCa3NLWmZveUZ5ZWszODBtSGdKQXVtUV9JMmZq" + + "ajk4Xzk3bWszaWhPWTRBZ1ZkQ0RqMXpfR0NvWmtHNVJxN25iQ0d5" + + "b3N5S1d5RFgwMFpzLW5OcVZob0xlSXZYQzRubldkSk1aNnJvZ3h5" + + "UVEifSwibm9uY2UiOiJub25jZSJ9" + // {"Msg":"Hello JWS"} + payload = "eyJNc2ciOiJIZWxsbyBKV1MifQ" + signature = "eAGUikStX_UxyiFhxSLMyuyBcIB80GeBkFROCpap2sW3EmkU_ggF" + + "knaQzxrTfItICSAXsCLIquZ5BbrSWA_4vdEYrwWtdUj7NqFKjHRa" + + "zpLHcoR7r1rEHvkoP1xj49lS5fc3Wjjq8JUhffkhGbWZ8ZVkgPdC" + + "4tMBWiQDoth-x8jELP_3LYOB_ScUXi2mETBawLgOT2K8rA0Vbbmx" + + "hWNlOWuUf-8hL5YX4IOEwsS8JK_TrTq5Zc9My0zHJmaieqDV0UlP" + + "k0onFjPFkGm7MrPSgd0MqRG-4vSAg2O4hDo7rKv4n8POjjXlNQvM" + + "9IPLr8qZ7usYBKhEGwX3yq_eicAwBw" + ) + + b, err := jwsEncodeJSON(claims, testKey, "nonce") + if err != nil { + t.Fatal(err) + } + var jws struct{ Protected, Payload, Signature string } + if err := json.Unmarshal(b, &jws); err != nil { + t.Fatal(err) + } + if jws.Protected != protected { + t.Errorf("protected:\n%s\nwant:\n%s", jws.Protected, protected) + } + if jws.Payload != payload { + t.Errorf("payload:\n%s\nwant:\n%s", jws.Payload, payload) + } + if jws.Signature != signature { + t.Errorf("signature:\n%s\nwant:\n%s", jws.Signature, signature) + } +} + +func TestJWSEncodeJSONEC(t *testing.T) { + claims := struct{ Msg string }{"Hello JWS"} + + b, err := jwsEncodeJSON(claims, testKeyEC, "nonce") + if err != nil { + t.Fatal(err) + } + var jws struct{ Protected, Payload, Signature string } + if err := json.Unmarshal(b, &jws); err != nil { + t.Fatal(err) + } + + if b, err = base64.RawURLEncoding.DecodeString(jws.Protected); err != nil { + t.Fatalf("jws.Protected: %v", err) + } + var head struct { + Alg string + Nonce string + JWK struct { + Crv string + Kty string + X string + Y string + } `json:"jwk"` + } + if err := json.Unmarshal(b, &head); err != nil { + t.Fatalf("jws.Protected: %v", err) + } + if head.Alg != "ES256" { + t.Errorf("head.Alg = %q; want ES256", head.Alg) + } + if head.Nonce != "nonce" { + t.Errorf("head.Nonce = %q; want nonce", head.Nonce) + } + if head.JWK.Crv != "P-256" { + t.Errorf("head.JWK.Crv = %q; want P-256", head.JWK.Crv) + } + if head.JWK.Kty != "EC" { + t.Errorf("head.JWK.Kty = %q; want EC", head.JWK.Kty) + } + if head.JWK.X != testKeyECPubX { + t.Errorf("head.JWK.X = %q; want %q", head.JWK.X, testKeyECPubX) + } + if head.JWK.Y != testKeyECPubY { + t.Errorf("head.JWK.Y = %q; want %q", head.JWK.Y, testKeyECPubY) + } +} + +func TestJWKThumbprintRSA(t *testing.T) { + // Key example from RFC 7638 + const base64N = "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAt" + + "VT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn6" + + "4tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FD" + + "W2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n9" + + "1CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINH" + + "aQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw" + const base64E = "AQAB" + const expected = "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs" + + b, err := base64.RawURLEncoding.DecodeString(base64N) + if err != nil { + t.Fatalf("Error parsing example key N: %v", err) + } + n := new(big.Int).SetBytes(b) + + b, err = base64.RawURLEncoding.DecodeString(base64E) + if err != nil { + t.Fatalf("Error parsing example key E: %v", err) + } + e := new(big.Int).SetBytes(b) + + pub := &rsa.PublicKey{N: n, E: int(e.Uint64())} + th, err := JWKThumbprint(pub) + if err != nil { + t.Error(err) + } + if th != expected { + t.Errorf("thumbprint = %q; want %q", th, expected) + } +} + +func TestJWKThumbprintEC(t *testing.T) { + // Key example from RFC 7520 + // expected was computed with + // echo -n '{"crv":"P-521","kty":"EC","x":"","y":""}' | \ + // openssl dgst -binary -sha256 | \ + // base64 | \ + // tr -d '=' | tr '/+' '_-' + const ( + base64X = "AHKZLLOsCOzz5cY97ewNUajB957y-C-U88c3v13nmGZx6sYl_oJXu9A5RkT" + + "KqjqvjyekWF-7ytDyRXYgCF5cj0Kt" + base64Y = "AdymlHvOiLxXkEhayXQnNCvDX4h9htZaCJN34kfmC6pV5OhQHiraVySsUda" + + "QkAgDPrwQrJmbnX9cwlGfP-HqHZR1" + expected = "dHri3SADZkrush5HU_50AoRhcKFryN-PI6jPBtPL55M" + ) + + b, err := base64.RawURLEncoding.DecodeString(base64X) + if err != nil { + t.Fatalf("Error parsing example key X: %v", err) + } + x := new(big.Int).SetBytes(b) + + b, err = base64.RawURLEncoding.DecodeString(base64Y) + if err != nil { + t.Fatalf("Error parsing example key Y: %v", err) + } + y := new(big.Int).SetBytes(b) + + pub := &ecdsa.PublicKey{Curve: elliptic.P521(), X: x, Y: y} + th, err := JWKThumbprint(pub) + if err != nil { + t.Error(err) + } + if th != expected { + t.Errorf("thumbprint = %q; want %q", th, expected) + } +} + +func TestJWKThumbprintErrUnsupportedKey(t *testing.T) { + _, err := JWKThumbprint(struct{}{}) + if err != ErrUnsupportedKey { + t.Errorf("err = %q; want %q", err, ErrUnsupportedKey) + } +} diff --git a/vendor/golang.org/x/crypto/acme/types.go b/vendor/golang.org/x/crypto/acme/types.go new file mode 100644 index 00000000..0513b2e5 --- /dev/null +++ b/vendor/golang.org/x/crypto/acme/types.go @@ -0,0 +1,209 @@ +package acme + +import ( + "errors" + "fmt" + "net/http" +) + +// ACME server response statuses used to describe Authorization and Challenge states. +const ( + StatusUnknown = "unknown" + StatusPending = "pending" + StatusProcessing = "processing" + StatusValid = "valid" + StatusInvalid = "invalid" + StatusRevoked = "revoked" +) + +// CRLReasonCode identifies the reason for a certificate revocation. +type CRLReasonCode int + +// CRL reason codes as defined in RFC 5280. +const ( + CRLReasonUnspecified CRLReasonCode = 0 + CRLReasonKeyCompromise CRLReasonCode = 1 + CRLReasonCACompromise CRLReasonCode = 2 + CRLReasonAffiliationChanged CRLReasonCode = 3 + CRLReasonSuperseded CRLReasonCode = 4 + CRLReasonCessationOfOperation CRLReasonCode = 5 + CRLReasonCertificateHold CRLReasonCode = 6 + CRLReasonRemoveFromCRL CRLReasonCode = 8 + CRLReasonPrivilegeWithdrawn CRLReasonCode = 9 + CRLReasonAACompromise CRLReasonCode = 10 +) + +var ( + // ErrAuthorizationFailed indicates that an authorization for an identifier + // did not succeed. + ErrAuthorizationFailed = errors.New("acme: identifier authorization failed") + + // ErrUnsupportedKey is returned when an unsupported key type is encountered. + ErrUnsupportedKey = errors.New("acme: unknown key type; only RSA and ECDSA are supported") +) + +// Error is an ACME error, defined in Problem Details for HTTP APIs doc +// http://tools.ietf.org/html/draft-ietf-appsawg-http-problem. +type Error struct { + // StatusCode is The HTTP status code generated by the origin server. + StatusCode int + // ProblemType is a URI reference that identifies the problem type, + // typically in a "urn:acme:error:xxx" form. + ProblemType string + // Detail is a human-readable explanation specific to this occurrence of the problem. + Detail string + // Header is the original server error response headers. + Header http.Header +} + +func (e *Error) Error() string { + return fmt.Sprintf("%d %s: %s", e.StatusCode, e.ProblemType, e.Detail) +} + +// Account is a user account. It is associated with a private key. +type Account struct { + // URI is the account unique ID, which is also a URL used to retrieve + // account data from the CA. + URI string + + // Contact is a slice of contact info used during registration. + Contact []string + + // The terms user has agreed to. + // A value not matching CurrentTerms indicates that the user hasn't agreed + // to the actual Terms of Service of the CA. + AgreedTerms string + + // Actual terms of a CA. + CurrentTerms string + + // Authz is the authorization URL used to initiate a new authz flow. + Authz string + + // Authorizations is a URI from which a list of authorizations + // granted to this account can be fetched via a GET request. + Authorizations string + + // Certificates is a URI from which a list of certificates + // issued for this account can be fetched via a GET request. + Certificates string +} + +// Directory is ACME server discovery data. +type Directory struct { + // RegURL is an account endpoint URL, allowing for creating new + // and modifying existing accounts. + RegURL string + + // AuthzURL is used to initiate Identifier Authorization flow. + AuthzURL string + + // CertURL is a new certificate issuance endpoint URL. + CertURL string + + // RevokeURL is used to initiate a certificate revocation flow. + RevokeURL string + + // Term is a URI identifying the current terms of service. + Terms string + + // Website is an HTTP or HTTPS URL locating a website + // providing more information about the ACME server. + Website string + + // CAA consists of lowercase hostname elements, which the ACME server + // recognises as referring to itself for the purposes of CAA record validation + // as defined in RFC6844. + CAA []string +} + +// Challenge encodes a returned CA challenge. +type Challenge struct { + // Type is the challenge type, e.g. "http-01", "tls-sni-02", "dns-01". + Type string + + // URI is where a challenge response can be posted to. + URI string + + // Token is a random value that uniquely identifies the challenge. + Token string + + // Status identifies the status of this challenge. + Status string +} + +// Authorization encodes an authorization response. +type Authorization struct { + // URI uniquely identifies a authorization. + URI string + + // Status identifies the status of an authorization. + Status string + + // Identifier is what the account is authorized to represent. + Identifier AuthzID + + // Challenges that the client needs to fulfill in order to prove possession + // of the identifier (for pending authorizations). + // For final authorizations, the challenges that were used. + Challenges []*Challenge + + // A collection of sets of challenges, each of which would be sufficient + // to prove possession of the identifier. + // Clients must complete a set of challenges that covers at least one set. + // Challenges are identified by their indices in the challenges array. + // If this field is empty, the client needs to complete all challenges. + Combinations [][]int +} + +// AuthzID is an identifier that an account is authorized to represent. +type AuthzID struct { + Type string // The type of identifier, e.g. "dns". + Value string // The identifier itself, e.g. "example.org". +} + +// wireAuthz is ACME JSON representation of Authorization objects. +type wireAuthz struct { + Status string + Challenges []wireChallenge + Combinations [][]int + Identifier struct { + Type string + Value string + } +} + +func (z *wireAuthz) authorization(uri string) *Authorization { + a := &Authorization{ + URI: uri, + Status: z.Status, + Identifier: AuthzID{Type: z.Identifier.Type, Value: z.Identifier.Value}, + Combinations: z.Combinations, // shallow copy + Challenges: make([]*Challenge, len(z.Challenges)), + } + for i, v := range z.Challenges { + a.Challenges[i] = v.challenge() + } + return a +} + +// wireChallenge is ACME JSON challenge representation. +type wireChallenge struct { + URI string `json:"uri"` + Type string + Token string + Status string +} + +func (c *wireChallenge) challenge() *Challenge { + v := &Challenge{ + URI: c.URI, + Type: c.Type, + Token: c.Token, + Status: c.Status, + } + if v.Status == "" { + v.Status = StatusPending + } + return v +} diff --git a/vendor/golang.org/x/crypto/bcrypt/base64.go b/vendor/golang.org/x/crypto/bcrypt/base64.go new file mode 100644 index 00000000..fc311609 --- /dev/null +++ b/vendor/golang.org/x/crypto/bcrypt/base64.go @@ -0,0 +1,35 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bcrypt + +import "encoding/base64" + +const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + +var bcEncoding = base64.NewEncoding(alphabet) + +func base64Encode(src []byte) []byte { + n := bcEncoding.EncodedLen(len(src)) + dst := make([]byte, n) + bcEncoding.Encode(dst, src) + for dst[n-1] == '=' { + n-- + } + return dst[:n] +} + +func base64Decode(src []byte) ([]byte, error) { + numOfEquals := 4 - (len(src) % 4) + for i := 0; i < numOfEquals; i++ { + src = append(src, '=') + } + + dst := make([]byte, bcEncoding.DecodedLen(len(src))) + n, err := bcEncoding.Decode(dst, src) + if err != nil { + return nil, err + } + return dst[:n], nil +} diff --git a/vendor/golang.org/x/crypto/bcrypt/bcrypt.go b/vendor/golang.org/x/crypto/bcrypt/bcrypt.go new file mode 100644 index 00000000..f8b807f9 --- /dev/null +++ b/vendor/golang.org/x/crypto/bcrypt/bcrypt.go @@ -0,0 +1,294 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing +// algorithm. See http://www.usenix.org/event/usenix99/provos/provos.pdf +package bcrypt // import "golang.org/x/crypto/bcrypt" + +// The code is a port of Provos and Mazières's C implementation. +import ( + "crypto/rand" + "crypto/subtle" + "errors" + "fmt" + "golang.org/x/crypto/blowfish" + "io" + "strconv" +) + +const ( + MinCost int = 4 // the minimum allowable cost as passed in to GenerateFromPassword + MaxCost int = 31 // the maximum allowable cost as passed in to GenerateFromPassword + DefaultCost int = 10 // the cost that will actually be set if a cost below MinCost is passed into GenerateFromPassword +) + +// The error returned from CompareHashAndPassword when a password and hash do +// not match. +var ErrMismatchedHashAndPassword = errors.New("crypto/bcrypt: hashedPassword is not the hash of the given password") + +// The error returned from CompareHashAndPassword when a hash is too short to +// be a bcrypt hash. +var ErrHashTooShort = errors.New("crypto/bcrypt: hashedSecret too short to be a bcrypted password") + +// The error returned from CompareHashAndPassword when a hash was created with +// a bcrypt algorithm newer than this implementation. +type HashVersionTooNewError byte + +func (hv HashVersionTooNewError) Error() string { + return fmt.Sprintf("crypto/bcrypt: bcrypt algorithm version '%c' requested is newer than current version '%c'", byte(hv), majorVersion) +} + +// The error returned from CompareHashAndPassword when a hash starts with something other than '$' +type InvalidHashPrefixError byte + +func (ih InvalidHashPrefixError) Error() string { + return fmt.Sprintf("crypto/bcrypt: bcrypt hashes must start with '$', but hashedSecret started with '%c'", byte(ih)) +} + +type InvalidCostError int + +func (ic InvalidCostError) Error() string { + return fmt.Sprintf("crypto/bcrypt: cost %d is outside allowed range (%d,%d)", int(ic), int(MinCost), int(MaxCost)) +} + +const ( + majorVersion = '2' + minorVersion = 'a' + maxSaltSize = 16 + maxCryptedHashSize = 23 + encodedSaltSize = 22 + encodedHashSize = 31 + minHashSize = 59 +) + +// magicCipherData is an IV for the 64 Blowfish encryption calls in +// bcrypt(). It's the string "OrpheanBeholderScryDoubt" in big-endian bytes. +var magicCipherData = []byte{ + 0x4f, 0x72, 0x70, 0x68, + 0x65, 0x61, 0x6e, 0x42, + 0x65, 0x68, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x53, + 0x63, 0x72, 0x79, 0x44, + 0x6f, 0x75, 0x62, 0x74, +} + +type hashed struct { + hash []byte + salt []byte + cost int // allowed range is MinCost to MaxCost + major byte + minor byte +} + +// GenerateFromPassword returns the bcrypt hash of the password at the given +// cost. If the cost given is less than MinCost, the cost will be set to +// DefaultCost, instead. Use CompareHashAndPassword, as defined in this package, +// to compare the returned hashed password with its cleartext version. +func GenerateFromPassword(password []byte, cost int) ([]byte, error) { + p, err := newFromPassword(password, cost) + if err != nil { + return nil, err + } + return p.Hash(), nil +} + +// CompareHashAndPassword compares a bcrypt hashed password with its possible +// plaintext equivalent. Returns nil on success, or an error on failure. +func CompareHashAndPassword(hashedPassword, password []byte) error { + p, err := newFromHash(hashedPassword) + if err != nil { + return err + } + + otherHash, err := bcrypt(password, p.cost, p.salt) + if err != nil { + return err + } + + otherP := &hashed{otherHash, p.salt, p.cost, p.major, p.minor} + if subtle.ConstantTimeCompare(p.Hash(), otherP.Hash()) == 1 { + return nil + } + + return ErrMismatchedHashAndPassword +} + +// Cost returns the hashing cost used to create the given hashed +// password. When, in the future, the hashing cost of a password system needs +// to be increased in order to adjust for greater computational power, this +// function allows one to establish which passwords need to be updated. +func Cost(hashedPassword []byte) (int, error) { + p, err := newFromHash(hashedPassword) + if err != nil { + return 0, err + } + return p.cost, nil +} + +func newFromPassword(password []byte, cost int) (*hashed, error) { + if cost < MinCost { + cost = DefaultCost + } + p := new(hashed) + p.major = majorVersion + p.minor = minorVersion + + err := checkCost(cost) + if err != nil { + return nil, err + } + p.cost = cost + + unencodedSalt := make([]byte, maxSaltSize) + _, err = io.ReadFull(rand.Reader, unencodedSalt) + if err != nil { + return nil, err + } + + p.salt = base64Encode(unencodedSalt) + hash, err := bcrypt(password, p.cost, p.salt) + if err != nil { + return nil, err + } + p.hash = hash + return p, err +} + +func newFromHash(hashedSecret []byte) (*hashed, error) { + if len(hashedSecret) < minHashSize { + return nil, ErrHashTooShort + } + p := new(hashed) + n, err := p.decodeVersion(hashedSecret) + if err != nil { + return nil, err + } + hashedSecret = hashedSecret[n:] + n, err = p.decodeCost(hashedSecret) + if err != nil { + return nil, err + } + hashedSecret = hashedSecret[n:] + + // The "+2" is here because we'll have to append at most 2 '=' to the salt + // when base64 decoding it in expensiveBlowfishSetup(). + p.salt = make([]byte, encodedSaltSize, encodedSaltSize+2) + copy(p.salt, hashedSecret[:encodedSaltSize]) + + hashedSecret = hashedSecret[encodedSaltSize:] + p.hash = make([]byte, len(hashedSecret)) + copy(p.hash, hashedSecret) + + return p, nil +} + +func bcrypt(password []byte, cost int, salt []byte) ([]byte, error) { + cipherData := make([]byte, len(magicCipherData)) + copy(cipherData, magicCipherData) + + c, err := expensiveBlowfishSetup(password, uint32(cost), salt) + if err != nil { + return nil, err + } + + for i := 0; i < 24; i += 8 { + for j := 0; j < 64; j++ { + c.Encrypt(cipherData[i:i+8], cipherData[i:i+8]) + } + } + + // Bug compatibility with C bcrypt implementations. We only encode 23 of + // the 24 bytes encrypted. + hsh := base64Encode(cipherData[:maxCryptedHashSize]) + return hsh, nil +} + +func expensiveBlowfishSetup(key []byte, cost uint32, salt []byte) (*blowfish.Cipher, error) { + + csalt, err := base64Decode(salt) + if err != nil { + return nil, err + } + + // Bug compatibility with C bcrypt implementations. They use the trailing + // NULL in the key string during expansion. + ckey := append(key, 0) + + c, err := blowfish.NewSaltedCipher(ckey, csalt) + if err != nil { + return nil, err + } + + var i, rounds uint64 + rounds = 1 << cost + for i = 0; i < rounds; i++ { + blowfish.ExpandKey(ckey, c) + blowfish.ExpandKey(csalt, c) + } + + return c, nil +} + +func (p *hashed) Hash() []byte { + arr := make([]byte, 60) + arr[0] = '$' + arr[1] = p.major + n := 2 + if p.minor != 0 { + arr[2] = p.minor + n = 3 + } + arr[n] = '$' + n += 1 + copy(arr[n:], []byte(fmt.Sprintf("%02d", p.cost))) + n += 2 + arr[n] = '$' + n += 1 + copy(arr[n:], p.salt) + n += encodedSaltSize + copy(arr[n:], p.hash) + n += encodedHashSize + return arr[:n] +} + +func (p *hashed) decodeVersion(sbytes []byte) (int, error) { + if sbytes[0] != '$' { + return -1, InvalidHashPrefixError(sbytes[0]) + } + if sbytes[1] > majorVersion { + return -1, HashVersionTooNewError(sbytes[1]) + } + p.major = sbytes[1] + n := 3 + if sbytes[2] != '$' { + p.minor = sbytes[2] + n++ + } + return n, nil +} + +// sbytes should begin where decodeVersion left off. +func (p *hashed) decodeCost(sbytes []byte) (int, error) { + cost, err := strconv.Atoi(string(sbytes[0:2])) + if err != nil { + return -1, err + } + err = checkCost(cost) + if err != nil { + return -1, err + } + p.cost = cost + return 3, nil +} + +func (p *hashed) String() string { + return fmt.Sprintf("&{hash: %#v, salt: %#v, cost: %d, major: %c, minor: %c}", string(p.hash), p.salt, p.cost, p.major, p.minor) +} + +func checkCost(cost int) error { + if cost < MinCost || cost > MaxCost { + return InvalidCostError(cost) + } + return nil +} diff --git a/vendor/golang.org/x/crypto/bcrypt/bcrypt_test.go b/vendor/golang.org/x/crypto/bcrypt/bcrypt_test.go new file mode 100644 index 00000000..f08a6f5b --- /dev/null +++ b/vendor/golang.org/x/crypto/bcrypt/bcrypt_test.go @@ -0,0 +1,226 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bcrypt + +import ( + "bytes" + "fmt" + "testing" +) + +func TestBcryptingIsEasy(t *testing.T) { + pass := []byte("mypassword") + hp, err := GenerateFromPassword(pass, 0) + if err != nil { + t.Fatalf("GenerateFromPassword error: %s", err) + } + + if CompareHashAndPassword(hp, pass) != nil { + t.Errorf("%v should hash %s correctly", hp, pass) + } + + notPass := "notthepass" + err = CompareHashAndPassword(hp, []byte(notPass)) + if err != ErrMismatchedHashAndPassword { + t.Errorf("%v and %s should be mismatched", hp, notPass) + } +} + +func TestBcryptingIsCorrect(t *testing.T) { + pass := []byte("allmine") + salt := []byte("XajjQvNhvvRt5GSeFk1xFe") + expectedHash := []byte("$2a$10$XajjQvNhvvRt5GSeFk1xFeyqRrsxkhBkUiQeg0dt.wU1qD4aFDcga") + + hash, err := bcrypt(pass, 10, salt) + if err != nil { + t.Fatalf("bcrypt blew up: %v", err) + } + if !bytes.HasSuffix(expectedHash, hash) { + t.Errorf("%v should be the suffix of %v", hash, expectedHash) + } + + h, err := newFromHash(expectedHash) + if err != nil { + t.Errorf("Unable to parse %s: %v", string(expectedHash), err) + } + + // This is not the safe way to compare these hashes. We do this only for + // testing clarity. Use bcrypt.CompareHashAndPassword() + if err == nil && !bytes.Equal(expectedHash, h.Hash()) { + t.Errorf("Parsed hash %v should equal %v", h.Hash(), expectedHash) + } +} + +func TestVeryShortPasswords(t *testing.T) { + key := []byte("k") + salt := []byte("XajjQvNhvvRt5GSeFk1xFe") + _, err := bcrypt(key, 10, salt) + if err != nil { + t.Errorf("One byte key resulted in error: %s", err) + } +} + +func TestTooLongPasswordsWork(t *testing.T) { + salt := []byte("XajjQvNhvvRt5GSeFk1xFe") + // One byte over the usual 56 byte limit that blowfish has + tooLongPass := []byte("012345678901234567890123456789012345678901234567890123456") + tooLongExpected := []byte("$2a$10$XajjQvNhvvRt5GSeFk1xFe5l47dONXg781AmZtd869sO8zfsHuw7C") + hash, err := bcrypt(tooLongPass, 10, salt) + if err != nil { + t.Fatalf("bcrypt blew up on long password: %v", err) + } + if !bytes.HasSuffix(tooLongExpected, hash) { + t.Errorf("%v should be the suffix of %v", hash, tooLongExpected) + } +} + +type InvalidHashTest struct { + err error + hash []byte +} + +var invalidTests = []InvalidHashTest{ + {ErrHashTooShort, []byte("$2a$10$fooo")}, + {ErrHashTooShort, []byte("$2a")}, + {HashVersionTooNewError('3'), []byte("$3a$10$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, + {InvalidHashPrefixError('%'), []byte("%2a$10$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, + {InvalidCostError(32), []byte("$2a$32$sssssssssssssssssssssshhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh")}, +} + +func TestInvalidHashErrors(t *testing.T) { + check := func(name string, expected, err error) { + if err == nil { + t.Errorf("%s: Should have returned an error", name) + } + if err != nil && err != expected { + t.Errorf("%s gave err %v but should have given %v", name, err, expected) + } + } + for _, iht := range invalidTests { + _, err := newFromHash(iht.hash) + check("newFromHash", iht.err, err) + err = CompareHashAndPassword(iht.hash, []byte("anything")) + check("CompareHashAndPassword", iht.err, err) + } +} + +func TestUnpaddedBase64Encoding(t *testing.T) { + original := []byte{101, 201, 101, 75, 19, 227, 199, 20, 239, 236, 133, 32, 30, 109, 243, 30} + encodedOriginal := []byte("XajjQvNhvvRt5GSeFk1xFe") + + encoded := base64Encode(original) + + if !bytes.Equal(encodedOriginal, encoded) { + t.Errorf("Encoded %v should have equaled %v", encoded, encodedOriginal) + } + + decoded, err := base64Decode(encodedOriginal) + if err != nil { + t.Fatalf("base64Decode blew up: %s", err) + } + + if !bytes.Equal(decoded, original) { + t.Errorf("Decoded %v should have equaled %v", decoded, original) + } +} + +func TestCost(t *testing.T) { + suffix := "XajjQvNhvvRt5GSeFk1xFe5l47dONXg781AmZtd869sO8zfsHuw7C" + for _, vers := range []string{"2a", "2"} { + for _, cost := range []int{4, 10} { + s := fmt.Sprintf("$%s$%02d$%s", vers, cost, suffix) + h := []byte(s) + actual, err := Cost(h) + if err != nil { + t.Errorf("Cost, error: %s", err) + continue + } + if actual != cost { + t.Errorf("Cost, expected: %d, actual: %d", cost, actual) + } + } + } + _, err := Cost([]byte("$a$a$" + suffix)) + if err == nil { + t.Errorf("Cost, malformed but no error returned") + } +} + +func TestCostValidationInHash(t *testing.T) { + if testing.Short() { + return + } + + pass := []byte("mypassword") + + for c := 0; c < MinCost; c++ { + p, _ := newFromPassword(pass, c) + if p.cost != DefaultCost { + t.Errorf("newFromPassword should default costs below %d to %d, but was %d", MinCost, DefaultCost, p.cost) + } + } + + p, _ := newFromPassword(pass, 14) + if p.cost != 14 { + t.Errorf("newFromPassword should default cost to 14, but was %d", p.cost) + } + + hp, _ := newFromHash(p.Hash()) + if p.cost != hp.cost { + t.Errorf("newFromHash should maintain the cost at %d, but was %d", p.cost, hp.cost) + } + + _, err := newFromPassword(pass, 32) + if err == nil { + t.Fatalf("newFromPassword: should return a cost error") + } + if err != InvalidCostError(32) { + t.Errorf("newFromPassword: should return cost error, got %#v", err) + } +} + +func TestCostReturnsWithLeadingZeroes(t *testing.T) { + hp, _ := newFromPassword([]byte("abcdefgh"), 7) + cost := hp.Hash()[4:7] + expected := []byte("07$") + + if !bytes.Equal(expected, cost) { + t.Errorf("single digit costs in hash should have leading zeros: was %v instead of %v", cost, expected) + } +} + +func TestMinorNotRequired(t *testing.T) { + noMinorHash := []byte("$2$10$XajjQvNhvvRt5GSeFk1xFeyqRrsxkhBkUiQeg0dt.wU1qD4aFDcga") + h, err := newFromHash(noMinorHash) + if err != nil { + t.Fatalf("No minor hash blew up: %s", err) + } + if h.minor != 0 { + t.Errorf("Should leave minor version at 0, but was %d", h.minor) + } + + if !bytes.Equal(noMinorHash, h.Hash()) { + t.Errorf("Should generate hash %v, but created %v", noMinorHash, h.Hash()) + } +} + +func BenchmarkEqual(b *testing.B) { + b.StopTimer() + passwd := []byte("somepasswordyoulike") + hash, _ := GenerateFromPassword(passwd, 10) + b.StartTimer() + for i := 0; i < b.N; i++ { + CompareHashAndPassword(hash, passwd) + } +} + +func BenchmarkGeneration(b *testing.B) { + b.StopTimer() + passwd := []byte("mylongpassword1234") + b.StartTimer() + for i := 0; i < b.N; i++ { + GenerateFromPassword(passwd, 10) + } +} diff --git a/vendor/golang.org/x/crypto/blowfish/block.go b/vendor/golang.org/x/crypto/blowfish/block.go new file mode 100644 index 00000000..9d80f195 --- /dev/null +++ b/vendor/golang.org/x/crypto/blowfish/block.go @@ -0,0 +1,159 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package blowfish + +// getNextWord returns the next big-endian uint32 value from the byte slice +// at the given position in a circular manner, updating the position. +func getNextWord(b []byte, pos *int) uint32 { + var w uint32 + j := *pos + for i := 0; i < 4; i++ { + w = w<<8 | uint32(b[j]) + j++ + if j >= len(b) { + j = 0 + } + } + *pos = j + return w +} + +// ExpandKey performs a key expansion on the given *Cipher. Specifically, it +// performs the Blowfish algorithm's key schedule which sets up the *Cipher's +// pi and substitution tables for calls to Encrypt. This is used, primarily, +// by the bcrypt package to reuse the Blowfish key schedule during its +// set up. It's unlikely that you need to use this directly. +func ExpandKey(key []byte, c *Cipher) { + j := 0 + for i := 0; i < 18; i++ { + // Using inlined getNextWord for performance. + var d uint32 + for k := 0; k < 4; k++ { + d = d<<8 | uint32(key[j]) + j++ + if j >= len(key) { + j = 0 + } + } + c.p[i] ^= d + } + + var l, r uint32 + for i := 0; i < 18; i += 2 { + l, r = encryptBlock(l, r, c) + c.p[i], c.p[i+1] = l, r + } + + for i := 0; i < 256; i += 2 { + l, r = encryptBlock(l, r, c) + c.s0[i], c.s0[i+1] = l, r + } + for i := 0; i < 256; i += 2 { + l, r = encryptBlock(l, r, c) + c.s1[i], c.s1[i+1] = l, r + } + for i := 0; i < 256; i += 2 { + l, r = encryptBlock(l, r, c) + c.s2[i], c.s2[i+1] = l, r + } + for i := 0; i < 256; i += 2 { + l, r = encryptBlock(l, r, c) + c.s3[i], c.s3[i+1] = l, r + } +} + +// This is similar to ExpandKey, but folds the salt during the key +// schedule. While ExpandKey is essentially expandKeyWithSalt with an all-zero +// salt passed in, reusing ExpandKey turns out to be a place of inefficiency +// and specializing it here is useful. +func expandKeyWithSalt(key []byte, salt []byte, c *Cipher) { + j := 0 + for i := 0; i < 18; i++ { + c.p[i] ^= getNextWord(key, &j) + } + + j = 0 + var l, r uint32 + for i := 0; i < 18; i += 2 { + l ^= getNextWord(salt, &j) + r ^= getNextWord(salt, &j) + l, r = encryptBlock(l, r, c) + c.p[i], c.p[i+1] = l, r + } + + for i := 0; i < 256; i += 2 { + l ^= getNextWord(salt, &j) + r ^= getNextWord(salt, &j) + l, r = encryptBlock(l, r, c) + c.s0[i], c.s0[i+1] = l, r + } + + for i := 0; i < 256; i += 2 { + l ^= getNextWord(salt, &j) + r ^= getNextWord(salt, &j) + l, r = encryptBlock(l, r, c) + c.s1[i], c.s1[i+1] = l, r + } + + for i := 0; i < 256; i += 2 { + l ^= getNextWord(salt, &j) + r ^= getNextWord(salt, &j) + l, r = encryptBlock(l, r, c) + c.s2[i], c.s2[i+1] = l, r + } + + for i := 0; i < 256; i += 2 { + l ^= getNextWord(salt, &j) + r ^= getNextWord(salt, &j) + l, r = encryptBlock(l, r, c) + c.s3[i], c.s3[i+1] = l, r + } +} + +func encryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { + xl, xr := l, r + xl ^= c.p[0] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[1] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[2] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[3] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[4] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[5] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[6] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[7] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[8] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[9] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[10] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[11] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[12] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[13] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[14] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[15] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[16] + xr ^= c.p[17] + return xr, xl +} + +func decryptBlock(l, r uint32, c *Cipher) (uint32, uint32) { + xl, xr := l, r + xl ^= c.p[17] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[16] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[15] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[14] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[13] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[12] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[11] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[10] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[9] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[8] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[7] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[6] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[5] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[4] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[3] + xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[2] + xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[1] + xr ^= c.p[0] + return xr, xl +} diff --git a/vendor/golang.org/x/crypto/blowfish/blowfish_test.go b/vendor/golang.org/x/crypto/blowfish/blowfish_test.go new file mode 100644 index 00000000..7afa1fdf --- /dev/null +++ b/vendor/golang.org/x/crypto/blowfish/blowfish_test.go @@ -0,0 +1,274 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package blowfish + +import "testing" + +type CryptTest struct { + key []byte + in []byte + out []byte +} + +// Test vector values are from http://www.schneier.com/code/vectors.txt. +var encryptTests = []CryptTest{ + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78}}, + { + []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + []byte{0x51, 0x86, 0x6F, 0xD5, 0xB8, 0x5E, 0xCB, 0x8A}}, + { + []byte{0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + []byte{0x7D, 0x85, 0x6F, 0x9A, 0x61, 0x30, 0x63, 0xF2}}, + { + []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, + []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, + []byte{0x24, 0x66, 0xDD, 0x87, 0x8B, 0x96, 0x3C, 0x9D}}, + + { + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, + []byte{0x61, 0xF9, 0xC3, 0x80, 0x22, 0x81, 0xB0, 0x96}}, + { + []byte{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0x7D, 0x0C, 0xC6, 0x30, 0xAF, 0xDA, 0x1E, 0xC7}}, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x4E, 0xF9, 0x97, 0x45, 0x61, 0x98, 0xDD, 0x78}}, + { + []byte{0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}, + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0x0A, 0xCE, 0xAB, 0x0F, 0xC6, 0xA0, 0xA2, 0x8D}}, + { + []byte{0x7C, 0xA1, 0x10, 0x45, 0x4A, 0x1A, 0x6E, 0x57}, + []byte{0x01, 0xA1, 0xD6, 0xD0, 0x39, 0x77, 0x67, 0x42}, + []byte{0x59, 0xC6, 0x82, 0x45, 0xEB, 0x05, 0x28, 0x2B}}, + { + []byte{0x01, 0x31, 0xD9, 0x61, 0x9D, 0xC1, 0x37, 0x6E}, + []byte{0x5C, 0xD5, 0x4C, 0xA8, 0x3D, 0xEF, 0x57, 0xDA}, + []byte{0xB1, 0xB8, 0xCC, 0x0B, 0x25, 0x0F, 0x09, 0xA0}}, + { + []byte{0x07, 0xA1, 0x13, 0x3E, 0x4A, 0x0B, 0x26, 0x86}, + []byte{0x02, 0x48, 0xD4, 0x38, 0x06, 0xF6, 0x71, 0x72}, + []byte{0x17, 0x30, 0xE5, 0x77, 0x8B, 0xEA, 0x1D, 0xA4}}, + { + []byte{0x38, 0x49, 0x67, 0x4C, 0x26, 0x02, 0x31, 0x9E}, + []byte{0x51, 0x45, 0x4B, 0x58, 0x2D, 0xDF, 0x44, 0x0A}, + []byte{0xA2, 0x5E, 0x78, 0x56, 0xCF, 0x26, 0x51, 0xEB}}, + { + []byte{0x04, 0xB9, 0x15, 0xBA, 0x43, 0xFE, 0xB5, 0xB6}, + []byte{0x42, 0xFD, 0x44, 0x30, 0x59, 0x57, 0x7F, 0xA2}, + []byte{0x35, 0x38, 0x82, 0xB1, 0x09, 0xCE, 0x8F, 0x1A}}, + { + []byte{0x01, 0x13, 0xB9, 0x70, 0xFD, 0x34, 0xF2, 0xCE}, + []byte{0x05, 0x9B, 0x5E, 0x08, 0x51, 0xCF, 0x14, 0x3A}, + []byte{0x48, 0xF4, 0xD0, 0x88, 0x4C, 0x37, 0x99, 0x18}}, + { + []byte{0x01, 0x70, 0xF1, 0x75, 0x46, 0x8F, 0xB5, 0xE6}, + []byte{0x07, 0x56, 0xD8, 0xE0, 0x77, 0x47, 0x61, 0xD2}, + []byte{0x43, 0x21, 0x93, 0xB7, 0x89, 0x51, 0xFC, 0x98}}, + { + []byte{0x43, 0x29, 0x7F, 0xAD, 0x38, 0xE3, 0x73, 0xFE}, + []byte{0x76, 0x25, 0x14, 0xB8, 0x29, 0xBF, 0x48, 0x6A}, + []byte{0x13, 0xF0, 0x41, 0x54, 0xD6, 0x9D, 0x1A, 0xE5}}, + { + []byte{0x07, 0xA7, 0x13, 0x70, 0x45, 0xDA, 0x2A, 0x16}, + []byte{0x3B, 0xDD, 0x11, 0x90, 0x49, 0x37, 0x28, 0x02}, + []byte{0x2E, 0xED, 0xDA, 0x93, 0xFF, 0xD3, 0x9C, 0x79}}, + { + []byte{0x04, 0x68, 0x91, 0x04, 0xC2, 0xFD, 0x3B, 0x2F}, + []byte{0x26, 0x95, 0x5F, 0x68, 0x35, 0xAF, 0x60, 0x9A}, + []byte{0xD8, 0x87, 0xE0, 0x39, 0x3C, 0x2D, 0xA6, 0xE3}}, + { + []byte{0x37, 0xD0, 0x6B, 0xB5, 0x16, 0xCB, 0x75, 0x46}, + []byte{0x16, 0x4D, 0x5E, 0x40, 0x4F, 0x27, 0x52, 0x32}, + []byte{0x5F, 0x99, 0xD0, 0x4F, 0x5B, 0x16, 0x39, 0x69}}, + { + []byte{0x1F, 0x08, 0x26, 0x0D, 0x1A, 0xC2, 0x46, 0x5E}, + []byte{0x6B, 0x05, 0x6E, 0x18, 0x75, 0x9F, 0x5C, 0xCA}, + []byte{0x4A, 0x05, 0x7A, 0x3B, 0x24, 0xD3, 0x97, 0x7B}}, + { + []byte{0x58, 0x40, 0x23, 0x64, 0x1A, 0xBA, 0x61, 0x76}, + []byte{0x00, 0x4B, 0xD6, 0xEF, 0x09, 0x17, 0x60, 0x62}, + []byte{0x45, 0x20, 0x31, 0xC1, 0xE4, 0xFA, 0xDA, 0x8E}}, + { + []byte{0x02, 0x58, 0x16, 0x16, 0x46, 0x29, 0xB0, 0x07}, + []byte{0x48, 0x0D, 0x39, 0x00, 0x6E, 0xE7, 0x62, 0xF2}, + []byte{0x75, 0x55, 0xAE, 0x39, 0xF5, 0x9B, 0x87, 0xBD}}, + { + []byte{0x49, 0x79, 0x3E, 0xBC, 0x79, 0xB3, 0x25, 0x8F}, + []byte{0x43, 0x75, 0x40, 0xC8, 0x69, 0x8F, 0x3C, 0xFA}, + []byte{0x53, 0xC5, 0x5F, 0x9C, 0xB4, 0x9F, 0xC0, 0x19}}, + { + []byte{0x4F, 0xB0, 0x5E, 0x15, 0x15, 0xAB, 0x73, 0xA7}, + []byte{0x07, 0x2D, 0x43, 0xA0, 0x77, 0x07, 0x52, 0x92}, + []byte{0x7A, 0x8E, 0x7B, 0xFA, 0x93, 0x7E, 0x89, 0xA3}}, + { + []byte{0x49, 0xE9, 0x5D, 0x6D, 0x4C, 0xA2, 0x29, 0xBF}, + []byte{0x02, 0xFE, 0x55, 0x77, 0x81, 0x17, 0xF1, 0x2A}, + []byte{0xCF, 0x9C, 0x5D, 0x7A, 0x49, 0x86, 0xAD, 0xB5}}, + { + []byte{0x01, 0x83, 0x10, 0xDC, 0x40, 0x9B, 0x26, 0xD6}, + []byte{0x1D, 0x9D, 0x5C, 0x50, 0x18, 0xF7, 0x28, 0xC2}, + []byte{0xD1, 0xAB, 0xB2, 0x90, 0x65, 0x8B, 0xC7, 0x78}}, + { + []byte{0x1C, 0x58, 0x7F, 0x1C, 0x13, 0x92, 0x4F, 0xEF}, + []byte{0x30, 0x55, 0x32, 0x28, 0x6D, 0x6F, 0x29, 0x5A}, + []byte{0x55, 0xCB, 0x37, 0x74, 0xD1, 0x3E, 0xF2, 0x01}}, + { + []byte{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}, + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0xFA, 0x34, 0xEC, 0x48, 0x47, 0xB2, 0x68, 0xB2}}, + { + []byte{0x1F, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x0E}, + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0xA7, 0x90, 0x79, 0x51, 0x08, 0xEA, 0x3C, 0xAE}}, + { + []byte{0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1, 0xFE}, + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0xC3, 0x9E, 0x07, 0x2D, 0x9F, 0xAC, 0x63, 0x1D}}, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + []byte{0x01, 0x49, 0x33, 0xE0, 0xCD, 0xAF, 0xF6, 0xE4}}, + { + []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0xF2, 0x1E, 0x9A, 0x77, 0xB7, 0x1C, 0x49, 0xBC}}, + { + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x24, 0x59, 0x46, 0x88, 0x57, 0x54, 0x36, 0x9A}}, + { + []byte{0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}, + []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, + []byte{0x6B, 0x5C, 0x5A, 0x9C, 0x5D, 0x9E, 0x0A, 0x5A}}, +} + +func TestCipherEncrypt(t *testing.T) { + for i, tt := range encryptTests { + c, err := NewCipher(tt.key) + if err != nil { + t.Errorf("NewCipher(%d bytes) = %s", len(tt.key), err) + continue + } + ct := make([]byte, len(tt.out)) + c.Encrypt(ct, tt.in) + for j, v := range ct { + if v != tt.out[j] { + t.Errorf("Cipher.Encrypt, test vector #%d: cipher-text[%d] = %#x, expected %#x", i, j, v, tt.out[j]) + break + } + } + } +} + +func TestCipherDecrypt(t *testing.T) { + for i, tt := range encryptTests { + c, err := NewCipher(tt.key) + if err != nil { + t.Errorf("NewCipher(%d bytes) = %s", len(tt.key), err) + continue + } + pt := make([]byte, len(tt.in)) + c.Decrypt(pt, tt.out) + for j, v := range pt { + if v != tt.in[j] { + t.Errorf("Cipher.Decrypt, test vector #%d: plain-text[%d] = %#x, expected %#x", i, j, v, tt.in[j]) + break + } + } + } +} + +func TestSaltedCipherKeyLength(t *testing.T) { + if _, err := NewSaltedCipher(nil, []byte{'a'}); err != KeySizeError(0) { + t.Errorf("NewSaltedCipher with short key, gave error %#v, expected %#v", err, KeySizeError(0)) + } + + // A 57-byte key. One over the typical blowfish restriction. + key := []byte("012345678901234567890123456789012345678901234567890123456") + if _, err := NewSaltedCipher(key, []byte{'a'}); err != nil { + t.Errorf("NewSaltedCipher with long key, gave error %#v", err) + } +} + +// Test vectors generated with Blowfish from OpenSSH. +var saltedVectors = [][8]byte{ + {0x0c, 0x82, 0x3b, 0x7b, 0x8d, 0x01, 0x4b, 0x7e}, + {0xd1, 0xe1, 0x93, 0xf0, 0x70, 0xa6, 0xdb, 0x12}, + {0xfc, 0x5e, 0xba, 0xde, 0xcb, 0xf8, 0x59, 0xad}, + {0x8a, 0x0c, 0x76, 0xe7, 0xdd, 0x2c, 0xd3, 0xa8}, + {0x2c, 0xcb, 0x7b, 0xee, 0xac, 0x7b, 0x7f, 0xf8}, + {0xbb, 0xf6, 0x30, 0x6f, 0xe1, 0x5d, 0x62, 0xbf}, + {0x97, 0x1e, 0xc1, 0x3d, 0x3d, 0xe0, 0x11, 0xe9}, + {0x06, 0xd7, 0x4d, 0xb1, 0x80, 0xa3, 0xb1, 0x38}, + {0x67, 0xa1, 0xa9, 0x75, 0x0e, 0x5b, 0xc6, 0xb4}, + {0x51, 0x0f, 0x33, 0x0e, 0x4f, 0x67, 0xd2, 0x0c}, + {0xf1, 0x73, 0x7e, 0xd8, 0x44, 0xea, 0xdb, 0xe5}, + {0x14, 0x0e, 0x16, 0xce, 0x7f, 0x4a, 0x9c, 0x7b}, + {0x4b, 0xfe, 0x43, 0xfd, 0xbf, 0x36, 0x04, 0x47}, + {0xb1, 0xeb, 0x3e, 0x15, 0x36, 0xa7, 0xbb, 0xe2}, + {0x6d, 0x0b, 0x41, 0xdd, 0x00, 0x98, 0x0b, 0x19}, + {0xd3, 0xce, 0x45, 0xce, 0x1d, 0x56, 0xb7, 0xfc}, + {0xd9, 0xf0, 0xfd, 0xda, 0xc0, 0x23, 0xb7, 0x93}, + {0x4c, 0x6f, 0xa1, 0xe4, 0x0c, 0xa8, 0xca, 0x57}, + {0xe6, 0x2f, 0x28, 0xa7, 0x0c, 0x94, 0x0d, 0x08}, + {0x8f, 0xe3, 0xf0, 0xb6, 0x29, 0xe3, 0x44, 0x03}, + {0xff, 0x98, 0xdd, 0x04, 0x45, 0xb4, 0x6d, 0x1f}, + {0x9e, 0x45, 0x4d, 0x18, 0x40, 0x53, 0xdb, 0xef}, + {0xb7, 0x3b, 0xef, 0x29, 0xbe, 0xa8, 0x13, 0x71}, + {0x02, 0x54, 0x55, 0x41, 0x8e, 0x04, 0xfc, 0xad}, + {0x6a, 0x0a, 0xee, 0x7c, 0x10, 0xd9, 0x19, 0xfe}, + {0x0a, 0x22, 0xd9, 0x41, 0xcc, 0x23, 0x87, 0x13}, + {0x6e, 0xff, 0x1f, 0xff, 0x36, 0x17, 0x9c, 0xbe}, + {0x79, 0xad, 0xb7, 0x40, 0xf4, 0x9f, 0x51, 0xa6}, + {0x97, 0x81, 0x99, 0xa4, 0xde, 0x9e, 0x9f, 0xb6}, + {0x12, 0x19, 0x7a, 0x28, 0xd0, 0xdc, 0xcc, 0x92}, + {0x81, 0xda, 0x60, 0x1e, 0x0e, 0xdd, 0x65, 0x56}, + {0x7d, 0x76, 0x20, 0xb2, 0x73, 0xc9, 0x9e, 0xee}, +} + +func TestSaltedCipher(t *testing.T) { + var key, salt [32]byte + for i := range key { + key[i] = byte(i) + salt[i] = byte(i + 32) + } + for i, v := range saltedVectors { + c, err := NewSaltedCipher(key[:], salt[:i]) + if err != nil { + t.Fatal(err) + } + var buf [8]byte + c.Encrypt(buf[:], buf[:]) + if v != buf { + t.Errorf("%d: expected %x, got %x", i, v, buf) + } + } +} + +func BenchmarkExpandKeyWithSalt(b *testing.B) { + key := make([]byte, 32) + salt := make([]byte, 16) + c, _ := NewCipher(key) + for i := 0; i < b.N; i++ { + expandKeyWithSalt(key, salt, c) + } +} + +func BenchmarkExpandKey(b *testing.B) { + key := make([]byte, 32) + c, _ := NewCipher(key) + for i := 0; i < b.N; i++ { + ExpandKey(key, c) + } +} diff --git a/vendor/golang.org/x/crypto/blowfish/cipher.go b/vendor/golang.org/x/crypto/blowfish/cipher.go new file mode 100644 index 00000000..a73954f3 --- /dev/null +++ b/vendor/golang.org/x/crypto/blowfish/cipher.go @@ -0,0 +1,91 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. +package blowfish // import "golang.org/x/crypto/blowfish" + +// The code is a port of Bruce Schneier's C implementation. +// See http://www.schneier.com/blowfish.html. + +import "strconv" + +// The Blowfish block size in bytes. +const BlockSize = 8 + +// A Cipher is an instance of Blowfish encryption using a particular key. +type Cipher struct { + p [18]uint32 + s0, s1, s2, s3 [256]uint32 +} + +type KeySizeError int + +func (k KeySizeError) Error() string { + return "crypto/blowfish: invalid key size " + strconv.Itoa(int(k)) +} + +// NewCipher creates and returns a Cipher. +// The key argument should be the Blowfish key, from 1 to 56 bytes. +func NewCipher(key []byte) (*Cipher, error) { + var result Cipher + if k := len(key); k < 1 || k > 56 { + return nil, KeySizeError(k) + } + initCipher(&result) + ExpandKey(key, &result) + return &result, nil +} + +// NewSaltedCipher creates a returns a Cipher that folds a salt into its key +// schedule. For most purposes, NewCipher, instead of NewSaltedCipher, is +// sufficient and desirable. For bcrypt compatibility, the key can be over 56 +// bytes. +func NewSaltedCipher(key, salt []byte) (*Cipher, error) { + if len(salt) == 0 { + return NewCipher(key) + } + var result Cipher + if k := len(key); k < 1 { + return nil, KeySizeError(k) + } + initCipher(&result) + expandKeyWithSalt(key, salt, &result) + return &result, nil +} + +// BlockSize returns the Blowfish block size, 8 bytes. +// It is necessary to satisfy the Block interface in the +// package "crypto/cipher". +func (c *Cipher) BlockSize() int { return BlockSize } + +// Encrypt encrypts the 8-byte buffer src using the key k +// and stores the result in dst. +// Note that for amounts of data larger than a block, +// it is not safe to just call Encrypt on successive blocks; +// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). +func (c *Cipher) Encrypt(dst, src []byte) { + l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) + r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) + l, r = encryptBlock(l, r, c) + dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) + dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) +} + +// Decrypt decrypts the 8-byte buffer src using the key k +// and stores the result in dst. +func (c *Cipher) Decrypt(dst, src []byte) { + l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) + r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) + l, r = decryptBlock(l, r, c) + dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) + dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) +} + +func initCipher(c *Cipher) { + copy(c.p[0:], p[0:]) + copy(c.s0[0:], s0[0:]) + copy(c.s1[0:], s1[0:]) + copy(c.s2[0:], s2[0:]) + copy(c.s3[0:], s3[0:]) +} diff --git a/vendor/golang.org/x/crypto/blowfish/const.go b/vendor/golang.org/x/crypto/blowfish/const.go new file mode 100644 index 00000000..8c5ee4cb --- /dev/null +++ b/vendor/golang.org/x/crypto/blowfish/const.go @@ -0,0 +1,199 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// The startup permutation array and substitution boxes. +// They are the hexadecimal digits of PI; see: +// http://www.schneier.com/code/constants.txt. + +package blowfish + +var s0 = [256]uint32{ + 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, + 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, + 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, + 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, + 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, + 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, + 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, + 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, + 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, + 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, + 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, + 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, + 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, + 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, + 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, + 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, + 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, + 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, + 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, + 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, + 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, + 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, + 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, + 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, + 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, + 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, + 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, + 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, + 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, + 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, + 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, + 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, + 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, + 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, + 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, + 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, + 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, + 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, + 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, + 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, + 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, + 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, + 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, +} + +var s1 = [256]uint32{ + 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, + 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, + 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, + 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, + 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, + 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, + 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, + 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, + 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, + 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, + 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, + 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, + 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, + 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, + 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, + 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, + 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, + 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, + 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, + 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, + 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, + 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, + 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, + 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, + 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, + 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, + 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, + 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, + 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, + 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, + 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, + 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, + 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, + 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, + 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, + 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, + 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, + 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, + 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, + 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, + 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, + 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, + 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, +} + +var s2 = [256]uint32{ + 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, + 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, + 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, + 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, + 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, + 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, + 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, + 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, + 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, + 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, + 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, + 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, + 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, + 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, + 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, + 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, + 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, + 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, + 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, + 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, + 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, + 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, + 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, + 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, + 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, + 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, + 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, + 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, + 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, + 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, + 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, + 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, + 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, + 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, + 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, + 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, + 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, + 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, + 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, + 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, + 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, + 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, + 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, +} + +var s3 = [256]uint32{ + 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, + 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, + 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, + 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, + 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, + 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, + 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, + 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, + 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, + 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, + 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, + 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, + 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, + 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, + 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, + 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, + 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, + 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, + 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, + 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, + 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, + 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, + 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, + 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, + 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, + 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, + 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, + 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, + 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, + 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, + 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, + 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, + 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, + 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, + 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, + 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, + 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, + 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, + 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, + 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, + 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, + 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, + 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, +} + +var p = [18]uint32{ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, + 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, + 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b, +} diff --git a/vendor/golang.org/x/crypto/bn256/bn256.go b/vendor/golang.org/x/crypto/bn256/bn256.go new file mode 100644 index 00000000..014f8b35 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/bn256.go @@ -0,0 +1,404 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package bn256 implements a particular bilinear group at the 128-bit security level. +// +// Bilinear groups are the basis of many of the new cryptographic protocols +// that have been proposed over the past decade. They consist of a triplet of +// groups (Gâ‚, Gâ‚‚ and GT) such that there exists a function e(gâ‚Ë£,g₂ʸ)=gTˣʸ +// (where gâ‚“ is a generator of the respective group). That function is called +// a pairing function. +// +// This package specifically implements the Optimal Ate pairing over a 256-bit +// Barreto-Naehrig curve as described in +// http://cryptojedi.org/papers/dclxvi-20100714.pdf. Its output is compatible +// with the implementation described in that paper. +package bn256 // import "golang.org/x/crypto/bn256" + +import ( + "crypto/rand" + "io" + "math/big" +) + +// BUG(agl): this implementation is not constant time. +// TODO(agl): keep GF(p²) elements in Mongomery form. + +// G1 is an abstract cyclic group. The zero value is suitable for use as the +// output of an operation, but cannot be used as an input. +type G1 struct { + p *curvePoint +} + +// RandomG1 returns x and gâ‚Ë£ where x is a random, non-zero number read from r. +func RandomG1(r io.Reader) (*big.Int, *G1, error) { + var k *big.Int + var err error + + for { + k, err = rand.Int(r, Order) + if err != nil { + return nil, nil, err + } + if k.Sign() > 0 { + break + } + } + + return k, new(G1).ScalarBaseMult(k), nil +} + +func (g *G1) String() string { + return "bn256.G1" + g.p.String() +} + +// ScalarBaseMult sets e to g*k where g is the generator of the group and +// then returns e. +func (e *G1) ScalarBaseMult(k *big.Int) *G1 { + if e.p == nil { + e.p = newCurvePoint(nil) + } + e.p.Mul(curveGen, k, new(bnPool)) + return e +} + +// ScalarMult sets e to a*k and then returns e. +func (e *G1) ScalarMult(a *G1, k *big.Int) *G1 { + if e.p == nil { + e.p = newCurvePoint(nil) + } + e.p.Mul(a.p, k, new(bnPool)) + return e +} + +// Add sets e to a+b and then returns e. +// BUG(agl): this function is not complete: a==b fails. +func (e *G1) Add(a, b *G1) *G1 { + if e.p == nil { + e.p = newCurvePoint(nil) + } + e.p.Add(a.p, b.p, new(bnPool)) + return e +} + +// Neg sets e to -a and then returns e. +func (e *G1) Neg(a *G1) *G1 { + if e.p == nil { + e.p = newCurvePoint(nil) + } + e.p.Negative(a.p) + return e +} + +// Marshal converts n to a byte slice. +func (n *G1) Marshal() []byte { + n.p.MakeAffine(nil) + + xBytes := new(big.Int).Mod(n.p.x, p).Bytes() + yBytes := new(big.Int).Mod(n.p.y, p).Bytes() + + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + ret := make([]byte, numBytes*2) + copy(ret[1*numBytes-len(xBytes):], xBytes) + copy(ret[2*numBytes-len(yBytes):], yBytes) + + return ret +} + +// Unmarshal sets e to the result of converting the output of Marshal back into +// a group element and then returns e. +func (e *G1) Unmarshal(m []byte) (*G1, bool) { + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + if len(m) != 2*numBytes { + return nil, false + } + + if e.p == nil { + e.p = newCurvePoint(nil) + } + + e.p.x.SetBytes(m[0*numBytes : 1*numBytes]) + e.p.y.SetBytes(m[1*numBytes : 2*numBytes]) + + if e.p.x.Sign() == 0 && e.p.y.Sign() == 0 { + // This is the point at infinity. + e.p.y.SetInt64(1) + e.p.z.SetInt64(0) + e.p.t.SetInt64(0) + } else { + e.p.z.SetInt64(1) + e.p.t.SetInt64(1) + + if !e.p.IsOnCurve() { + return nil, false + } + } + + return e, true +} + +// G2 is an abstract cyclic group. The zero value is suitable for use as the +// output of an operation, but cannot be used as an input. +type G2 struct { + p *twistPoint +} + +// RandomG1 returns x and gâ‚‚Ë£ where x is a random, non-zero number read from r. +func RandomG2(r io.Reader) (*big.Int, *G2, error) { + var k *big.Int + var err error + + for { + k, err = rand.Int(r, Order) + if err != nil { + return nil, nil, err + } + if k.Sign() > 0 { + break + } + } + + return k, new(G2).ScalarBaseMult(k), nil +} + +func (g *G2) String() string { + return "bn256.G2" + g.p.String() +} + +// ScalarBaseMult sets e to g*k where g is the generator of the group and +// then returns out. +func (e *G2) ScalarBaseMult(k *big.Int) *G2 { + if e.p == nil { + e.p = newTwistPoint(nil) + } + e.p.Mul(twistGen, k, new(bnPool)) + return e +} + +// ScalarMult sets e to a*k and then returns e. +func (e *G2) ScalarMult(a *G2, k *big.Int) *G2 { + if e.p == nil { + e.p = newTwistPoint(nil) + } + e.p.Mul(a.p, k, new(bnPool)) + return e +} + +// Add sets e to a+b and then returns e. +// BUG(agl): this function is not complete: a==b fails. +func (e *G2) Add(a, b *G2) *G2 { + if e.p == nil { + e.p = newTwistPoint(nil) + } + e.p.Add(a.p, b.p, new(bnPool)) + return e +} + +// Marshal converts n into a byte slice. +func (n *G2) Marshal() []byte { + n.p.MakeAffine(nil) + + xxBytes := new(big.Int).Mod(n.p.x.x, p).Bytes() + xyBytes := new(big.Int).Mod(n.p.x.y, p).Bytes() + yxBytes := new(big.Int).Mod(n.p.y.x, p).Bytes() + yyBytes := new(big.Int).Mod(n.p.y.y, p).Bytes() + + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + ret := make([]byte, numBytes*4) + copy(ret[1*numBytes-len(xxBytes):], xxBytes) + copy(ret[2*numBytes-len(xyBytes):], xyBytes) + copy(ret[3*numBytes-len(yxBytes):], yxBytes) + copy(ret[4*numBytes-len(yyBytes):], yyBytes) + + return ret +} + +// Unmarshal sets e to the result of converting the output of Marshal back into +// a group element and then returns e. +func (e *G2) Unmarshal(m []byte) (*G2, bool) { + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + if len(m) != 4*numBytes { + return nil, false + } + + if e.p == nil { + e.p = newTwistPoint(nil) + } + + e.p.x.x.SetBytes(m[0*numBytes : 1*numBytes]) + e.p.x.y.SetBytes(m[1*numBytes : 2*numBytes]) + e.p.y.x.SetBytes(m[2*numBytes : 3*numBytes]) + e.p.y.y.SetBytes(m[3*numBytes : 4*numBytes]) + + if e.p.x.x.Sign() == 0 && + e.p.x.y.Sign() == 0 && + e.p.y.x.Sign() == 0 && + e.p.y.y.Sign() == 0 { + // This is the point at infinity. + e.p.y.SetOne() + e.p.z.SetZero() + e.p.t.SetZero() + } else { + e.p.z.SetOne() + e.p.t.SetOne() + + if !e.p.IsOnCurve() { + return nil, false + } + } + + return e, true +} + +// GT is an abstract cyclic group. The zero value is suitable for use as the +// output of an operation, but cannot be used as an input. +type GT struct { + p *gfP12 +} + +func (g *GT) String() string { + return "bn256.GT" + g.p.String() +} + +// ScalarMult sets e to a*k and then returns e. +func (e *GT) ScalarMult(a *GT, k *big.Int) *GT { + if e.p == nil { + e.p = newGFp12(nil) + } + e.p.Exp(a.p, k, new(bnPool)) + return e +} + +// Add sets e to a+b and then returns e. +func (e *GT) Add(a, b *GT) *GT { + if e.p == nil { + e.p = newGFp12(nil) + } + e.p.Mul(a.p, b.p, new(bnPool)) + return e +} + +// Neg sets e to -a and then returns e. +func (e *GT) Neg(a *GT) *GT { + if e.p == nil { + e.p = newGFp12(nil) + } + e.p.Invert(a.p, new(bnPool)) + return e +} + +// Marshal converts n into a byte slice. +func (n *GT) Marshal() []byte { + n.p.Minimal() + + xxxBytes := n.p.x.x.x.Bytes() + xxyBytes := n.p.x.x.y.Bytes() + xyxBytes := n.p.x.y.x.Bytes() + xyyBytes := n.p.x.y.y.Bytes() + xzxBytes := n.p.x.z.x.Bytes() + xzyBytes := n.p.x.z.y.Bytes() + yxxBytes := n.p.y.x.x.Bytes() + yxyBytes := n.p.y.x.y.Bytes() + yyxBytes := n.p.y.y.x.Bytes() + yyyBytes := n.p.y.y.y.Bytes() + yzxBytes := n.p.y.z.x.Bytes() + yzyBytes := n.p.y.z.y.Bytes() + + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + ret := make([]byte, numBytes*12) + copy(ret[1*numBytes-len(xxxBytes):], xxxBytes) + copy(ret[2*numBytes-len(xxyBytes):], xxyBytes) + copy(ret[3*numBytes-len(xyxBytes):], xyxBytes) + copy(ret[4*numBytes-len(xyyBytes):], xyyBytes) + copy(ret[5*numBytes-len(xzxBytes):], xzxBytes) + copy(ret[6*numBytes-len(xzyBytes):], xzyBytes) + copy(ret[7*numBytes-len(yxxBytes):], yxxBytes) + copy(ret[8*numBytes-len(yxyBytes):], yxyBytes) + copy(ret[9*numBytes-len(yyxBytes):], yyxBytes) + copy(ret[10*numBytes-len(yyyBytes):], yyyBytes) + copy(ret[11*numBytes-len(yzxBytes):], yzxBytes) + copy(ret[12*numBytes-len(yzyBytes):], yzyBytes) + + return ret +} + +// Unmarshal sets e to the result of converting the output of Marshal back into +// a group element and then returns e. +func (e *GT) Unmarshal(m []byte) (*GT, bool) { + // Each value is a 256-bit number. + const numBytes = 256 / 8 + + if len(m) != 12*numBytes { + return nil, false + } + + if e.p == nil { + e.p = newGFp12(nil) + } + + e.p.x.x.x.SetBytes(m[0*numBytes : 1*numBytes]) + e.p.x.x.y.SetBytes(m[1*numBytes : 2*numBytes]) + e.p.x.y.x.SetBytes(m[2*numBytes : 3*numBytes]) + e.p.x.y.y.SetBytes(m[3*numBytes : 4*numBytes]) + e.p.x.z.x.SetBytes(m[4*numBytes : 5*numBytes]) + e.p.x.z.y.SetBytes(m[5*numBytes : 6*numBytes]) + e.p.y.x.x.SetBytes(m[6*numBytes : 7*numBytes]) + e.p.y.x.y.SetBytes(m[7*numBytes : 8*numBytes]) + e.p.y.y.x.SetBytes(m[8*numBytes : 9*numBytes]) + e.p.y.y.y.SetBytes(m[9*numBytes : 10*numBytes]) + e.p.y.z.x.SetBytes(m[10*numBytes : 11*numBytes]) + e.p.y.z.y.SetBytes(m[11*numBytes : 12*numBytes]) + + return e, true +} + +// Pair calculates an Optimal Ate pairing. +func Pair(g1 *G1, g2 *G2) *GT { + return >{optimalAte(g2.p, g1.p, new(bnPool))} +} + +// bnPool implements a tiny cache of *big.Int objects that's used to reduce the +// number of allocations made during processing. +type bnPool struct { + bns []*big.Int + count int +} + +func (pool *bnPool) Get() *big.Int { + if pool == nil { + return new(big.Int) + } + + pool.count++ + l := len(pool.bns) + if l == 0 { + return new(big.Int) + } + + bn := pool.bns[l-1] + pool.bns = pool.bns[:l-1] + return bn +} + +func (pool *bnPool) Put(bn *big.Int) { + if pool == nil { + return + } + pool.bns = append(pool.bns, bn) + pool.count-- +} + +func (pool *bnPool) Count() int { + return pool.count +} diff --git a/vendor/golang.org/x/crypto/bn256/bn256_test.go b/vendor/golang.org/x/crypto/bn256/bn256_test.go new file mode 100644 index 00000000..1cec3884 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/bn256_test.go @@ -0,0 +1,304 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +import ( + "bytes" + "crypto/rand" + "math/big" + "testing" +) + +func TestGFp2Invert(t *testing.T) { + pool := new(bnPool) + + a := newGFp2(pool) + a.x.SetString("23423492374", 10) + a.y.SetString("12934872398472394827398470", 10) + + inv := newGFp2(pool) + inv.Invert(a, pool) + + b := newGFp2(pool).Mul(inv, a, pool) + if b.x.Int64() != 0 || b.y.Int64() != 1 { + t.Fatalf("bad result for a^-1*a: %s %s", b.x, b.y) + } + + a.Put(pool) + b.Put(pool) + inv.Put(pool) + + if c := pool.Count(); c > 0 { + t.Errorf("Pool count non-zero: %d\n", c) + } +} + +func isZero(n *big.Int) bool { + return new(big.Int).Mod(n, p).Int64() == 0 +} + +func isOne(n *big.Int) bool { + return new(big.Int).Mod(n, p).Int64() == 1 +} + +func TestGFp6Invert(t *testing.T) { + pool := new(bnPool) + + a := newGFp6(pool) + a.x.x.SetString("239487238491", 10) + a.x.y.SetString("2356249827341", 10) + a.y.x.SetString("082659782", 10) + a.y.y.SetString("182703523765", 10) + a.z.x.SetString("978236549263", 10) + a.z.y.SetString("64893242", 10) + + inv := newGFp6(pool) + inv.Invert(a, pool) + + b := newGFp6(pool).Mul(inv, a, pool) + if !isZero(b.x.x) || + !isZero(b.x.y) || + !isZero(b.y.x) || + !isZero(b.y.y) || + !isZero(b.z.x) || + !isOne(b.z.y) { + t.Fatalf("bad result for a^-1*a: %s", b) + } + + a.Put(pool) + b.Put(pool) + inv.Put(pool) + + if c := pool.Count(); c > 0 { + t.Errorf("Pool count non-zero: %d\n", c) + } +} + +func TestGFp12Invert(t *testing.T) { + pool := new(bnPool) + + a := newGFp12(pool) + a.x.x.x.SetString("239846234862342323958623", 10) + a.x.x.y.SetString("2359862352529835623", 10) + a.x.y.x.SetString("928836523", 10) + a.x.y.y.SetString("9856234", 10) + a.x.z.x.SetString("235635286", 10) + a.x.z.y.SetString("5628392833", 10) + a.y.x.x.SetString("252936598265329856238956532167968", 10) + a.y.x.y.SetString("23596239865236954178968", 10) + a.y.y.x.SetString("95421692834", 10) + a.y.y.y.SetString("236548", 10) + a.y.z.x.SetString("924523", 10) + a.y.z.y.SetString("12954623", 10) + + inv := newGFp12(pool) + inv.Invert(a, pool) + + b := newGFp12(pool).Mul(inv, a, pool) + if !isZero(b.x.x.x) || + !isZero(b.x.x.y) || + !isZero(b.x.y.x) || + !isZero(b.x.y.y) || + !isZero(b.x.z.x) || + !isZero(b.x.z.y) || + !isZero(b.y.x.x) || + !isZero(b.y.x.y) || + !isZero(b.y.y.x) || + !isZero(b.y.y.y) || + !isZero(b.y.z.x) || + !isOne(b.y.z.y) { + t.Fatalf("bad result for a^-1*a: %s", b) + } + + a.Put(pool) + b.Put(pool) + inv.Put(pool) + + if c := pool.Count(); c > 0 { + t.Errorf("Pool count non-zero: %d\n", c) + } +} + +func TestCurveImpl(t *testing.T) { + pool := new(bnPool) + + g := &curvePoint{ + pool.Get().SetInt64(1), + pool.Get().SetInt64(-2), + pool.Get().SetInt64(1), + pool.Get().SetInt64(0), + } + + x := pool.Get().SetInt64(32498273234) + X := newCurvePoint(pool).Mul(g, x, pool) + + y := pool.Get().SetInt64(98732423523) + Y := newCurvePoint(pool).Mul(g, y, pool) + + s1 := newCurvePoint(pool).Mul(X, y, pool).MakeAffine(pool) + s2 := newCurvePoint(pool).Mul(Y, x, pool).MakeAffine(pool) + + if s1.x.Cmp(s2.x) != 0 || + s2.x.Cmp(s1.x) != 0 { + t.Errorf("DH points don't match: (%s, %s) (%s, %s)", s1.x, s1.y, s2.x, s2.y) + } + + pool.Put(x) + X.Put(pool) + pool.Put(y) + Y.Put(pool) + s1.Put(pool) + s2.Put(pool) + g.Put(pool) + + if c := pool.Count(); c > 0 { + t.Errorf("Pool count non-zero: %d\n", c) + } +} + +func TestOrderG1(t *testing.T) { + g := new(G1).ScalarBaseMult(Order) + if !g.p.IsInfinity() { + t.Error("G1 has incorrect order") + } + + one := new(G1).ScalarBaseMult(new(big.Int).SetInt64(1)) + g.Add(g, one) + g.p.MakeAffine(nil) + if g.p.x.Cmp(one.p.x) != 0 || g.p.y.Cmp(one.p.y) != 0 { + t.Errorf("1+0 != 1 in G1") + } +} + +func TestOrderG2(t *testing.T) { + g := new(G2).ScalarBaseMult(Order) + if !g.p.IsInfinity() { + t.Error("G2 has incorrect order") + } + + one := new(G2).ScalarBaseMult(new(big.Int).SetInt64(1)) + g.Add(g, one) + g.p.MakeAffine(nil) + if g.p.x.x.Cmp(one.p.x.x) != 0 || + g.p.x.y.Cmp(one.p.x.y) != 0 || + g.p.y.x.Cmp(one.p.y.x) != 0 || + g.p.y.y.Cmp(one.p.y.y) != 0 { + t.Errorf("1+0 != 1 in G2") + } +} + +func TestOrderGT(t *testing.T) { + gt := Pair(&G1{curveGen}, &G2{twistGen}) + g := new(GT).ScalarMult(gt, Order) + if !g.p.IsOne() { + t.Error("GT has incorrect order") + } +} + +func TestBilinearity(t *testing.T) { + for i := 0; i < 2; i++ { + a, p1, _ := RandomG1(rand.Reader) + b, p2, _ := RandomG2(rand.Reader) + e1 := Pair(p1, p2) + + e2 := Pair(&G1{curveGen}, &G2{twistGen}) + e2.ScalarMult(e2, a) + e2.ScalarMult(e2, b) + + minusE2 := new(GT).Neg(e2) + e1.Add(e1, minusE2) + + if !e1.p.IsOne() { + t.Fatalf("bad pairing result: %s", e1) + } + } +} + +func TestG1Marshal(t *testing.T) { + g := new(G1).ScalarBaseMult(new(big.Int).SetInt64(1)) + form := g.Marshal() + _, ok := new(G1).Unmarshal(form) + if !ok { + t.Fatalf("failed to unmarshal") + } + + g.ScalarBaseMult(Order) + form = g.Marshal() + g2, ok := new(G1).Unmarshal(form) + if !ok { + t.Fatalf("failed to unmarshal ∞") + } + if !g2.p.IsInfinity() { + t.Fatalf("∞ unmarshaled incorrectly") + } +} + +func TestG2Marshal(t *testing.T) { + g := new(G2).ScalarBaseMult(new(big.Int).SetInt64(1)) + form := g.Marshal() + _, ok := new(G2).Unmarshal(form) + if !ok { + t.Fatalf("failed to unmarshal") + } + + g.ScalarBaseMult(Order) + form = g.Marshal() + g2, ok := new(G2).Unmarshal(form) + if !ok { + t.Fatalf("failed to unmarshal ∞") + } + if !g2.p.IsInfinity() { + t.Fatalf("∞ unmarshaled incorrectly") + } +} + +func TestG1Identity(t *testing.T) { + g := new(G1).ScalarBaseMult(new(big.Int).SetInt64(0)) + if !g.p.IsInfinity() { + t.Error("failure") + } +} + +func TestG2Identity(t *testing.T) { + g := new(G2).ScalarBaseMult(new(big.Int).SetInt64(0)) + if !g.p.IsInfinity() { + t.Error("failure") + } +} + +func TestTripartiteDiffieHellman(t *testing.T) { + a, _ := rand.Int(rand.Reader, Order) + b, _ := rand.Int(rand.Reader, Order) + c, _ := rand.Int(rand.Reader, Order) + + pa, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(a).Marshal()) + qa, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(a).Marshal()) + pb, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(b).Marshal()) + qb, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(b).Marshal()) + pc, _ := new(G1).Unmarshal(new(G1).ScalarBaseMult(c).Marshal()) + qc, _ := new(G2).Unmarshal(new(G2).ScalarBaseMult(c).Marshal()) + + k1 := Pair(pb, qc) + k1.ScalarMult(k1, a) + k1Bytes := k1.Marshal() + + k2 := Pair(pc, qa) + k2.ScalarMult(k2, b) + k2Bytes := k2.Marshal() + + k3 := Pair(pa, qb) + k3.ScalarMult(k3, c) + k3Bytes := k3.Marshal() + + if !bytes.Equal(k1Bytes, k2Bytes) || !bytes.Equal(k2Bytes, k3Bytes) { + t.Errorf("keys didn't agree") + } +} + +func BenchmarkPairing(b *testing.B) { + for i := 0; i < b.N; i++ { + Pair(&G1{curveGen}, &G2{twistGen}) + } +} diff --git a/vendor/golang.org/x/crypto/bn256/constants.go b/vendor/golang.org/x/crypto/bn256/constants.go new file mode 100644 index 00000000..08ccfdf3 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/constants.go @@ -0,0 +1,44 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +import ( + "math/big" +) + +func bigFromBase10(s string) *big.Int { + n, _ := new(big.Int).SetString(s, 10) + return n +} + +// u is the BN parameter that determines the prime: 1868033³. +var u = bigFromBase10("6518589491078791937") + +// p is a prime over which we form a basic field: 36uâ´+36u³+24u³+6u+1. +var p = bigFromBase10("65000549695646603732796438742359905742825358107623003571877145026864184071783") + +// Order is the number of elements in both Gâ‚ and Gâ‚‚: 36uâ´+36u³+18u³+6u+1. +var Order = bigFromBase10("65000549695646603732796438742359905742570406053903786389881062969044166799969") + +// xiToPMinus1Over6 is ξ^((p-1)/6) where ξ = i+3. +var xiToPMinus1Over6 = &gfP2{bigFromBase10("8669379979083712429711189836753509758585994370025260553045152614783263110636"), bigFromBase10("19998038925833620163537568958541907098007303196759855091367510456613536016040")} + +// xiToPMinus1Over3 is ξ^((p-1)/3) where ξ = i+3. +var xiToPMinus1Over3 = &gfP2{bigFromBase10("26098034838977895781559542626833399156321265654106457577426020397262786167059"), bigFromBase10("15931493369629630809226283458085260090334794394361662678240713231519278691715")} + +// xiToPMinus1Over2 is ξ^((p-1)/2) where ξ = i+3. +var xiToPMinus1Over2 = &gfP2{bigFromBase10("50997318142241922852281555961173165965672272825141804376761836765206060036244"), bigFromBase10("38665955945962842195025998234511023902832543644254935982879660597356748036009")} + +// xiToPSquaredMinus1Over3 is ξ^((p²-1)/3) where ξ = i+3. +var xiToPSquaredMinus1Over3 = bigFromBase10("65000549695646603727810655408050771481677621702948236658134783353303381437752") + +// xiTo2PSquaredMinus2Over3 is ξ^((2p²-2)/3) where ξ = i+3 (a cubic root of unity, mod p). +var xiTo2PSquaredMinus2Over3 = bigFromBase10("4985783334309134261147736404674766913742361673560802634030") + +// xiToPSquaredMinus1Over6 is ξ^((1p²-1)/6) where ξ = i+3 (a cubic root of -1, mod p). +var xiToPSquaredMinus1Over6 = bigFromBase10("65000549695646603727810655408050771481677621702948236658134783353303381437753") + +// xiTo2PMinus2Over3 is ξ^((2p-2)/3) where ξ = i+3. +var xiTo2PMinus2Over3 = &gfP2{bigFromBase10("19885131339612776214803633203834694332692106372356013117629940868870585019582"), bigFromBase10("21645619881471562101905880913352894726728173167203616652430647841922248593627")} diff --git a/vendor/golang.org/x/crypto/bn256/curve.go b/vendor/golang.org/x/crypto/bn256/curve.go new file mode 100644 index 00000000..55b7063f --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/curve.go @@ -0,0 +1,278 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +import ( + "math/big" +) + +// curvePoint implements the elliptic curve y²=x³+3. Points are kept in +// Jacobian form and t=z² when valid. Gâ‚ is the set of points of this curve on +// GF(p). +type curvePoint struct { + x, y, z, t *big.Int +} + +var curveB = new(big.Int).SetInt64(3) + +// curveGen is the generator of Gâ‚. +var curveGen = &curvePoint{ + new(big.Int).SetInt64(1), + new(big.Int).SetInt64(-2), + new(big.Int).SetInt64(1), + new(big.Int).SetInt64(1), +} + +func newCurvePoint(pool *bnPool) *curvePoint { + return &curvePoint{ + pool.Get(), + pool.Get(), + pool.Get(), + pool.Get(), + } +} + +func (c *curvePoint) String() string { + c.MakeAffine(new(bnPool)) + return "(" + c.x.String() + ", " + c.y.String() + ")" +} + +func (c *curvePoint) Put(pool *bnPool) { + pool.Put(c.x) + pool.Put(c.y) + pool.Put(c.z) + pool.Put(c.t) +} + +func (c *curvePoint) Set(a *curvePoint) { + c.x.Set(a.x) + c.y.Set(a.y) + c.z.Set(a.z) + c.t.Set(a.t) +} + +// IsOnCurve returns true iff c is on the curve where c must be in affine form. +func (c *curvePoint) IsOnCurve() bool { + yy := new(big.Int).Mul(c.y, c.y) + xxx := new(big.Int).Mul(c.x, c.x) + xxx.Mul(xxx, c.x) + yy.Sub(yy, xxx) + yy.Sub(yy, curveB) + if yy.Sign() < 0 || yy.Cmp(p) >= 0 { + yy.Mod(yy, p) + } + return yy.Sign() == 0 +} + +func (c *curvePoint) SetInfinity() { + c.z.SetInt64(0) +} + +func (c *curvePoint) IsInfinity() bool { + return c.z.Sign() == 0 +} + +func (c *curvePoint) Add(a, b *curvePoint, pool *bnPool) { + if a.IsInfinity() { + c.Set(b) + return + } + if b.IsInfinity() { + c.Set(a) + return + } + + // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/addition/add-2007-bl.op3 + + // Normalize the points by replacing a = [x1:y1:z1] and b = [x2:y2:z2] + // by [u1:s1:z1·z2] and [u2:s2:z1·z2] + // where u1 = x1·z2², s1 = y1·z2³ and u1 = x2·z1², s2 = y2·z1³ + z1z1 := pool.Get().Mul(a.z, a.z) + z1z1.Mod(z1z1, p) + z2z2 := pool.Get().Mul(b.z, b.z) + z2z2.Mod(z2z2, p) + u1 := pool.Get().Mul(a.x, z2z2) + u1.Mod(u1, p) + u2 := pool.Get().Mul(b.x, z1z1) + u2.Mod(u2, p) + + t := pool.Get().Mul(b.z, z2z2) + t.Mod(t, p) + s1 := pool.Get().Mul(a.y, t) + s1.Mod(s1, p) + + t.Mul(a.z, z1z1) + t.Mod(t, p) + s2 := pool.Get().Mul(b.y, t) + s2.Mod(s2, p) + + // Compute x = (2h)²(s²-u1-u2) + // where s = (s2-s1)/(u2-u1) is the slope of the line through + // (u1,s1) and (u2,s2). The extra factor 2h = 2(u2-u1) comes from the value of z below. + // This is also: + // 4(s2-s1)² - 4h²(u1+u2) = 4(s2-s1)² - 4h³ - 4h²(2u1) + // = r² - j - 2v + // with the notations below. + h := pool.Get().Sub(u2, u1) + xEqual := h.Sign() == 0 + + t.Add(h, h) + // i = 4h² + i := pool.Get().Mul(t, t) + i.Mod(i, p) + // j = 4h³ + j := pool.Get().Mul(h, i) + j.Mod(j, p) + + t.Sub(s2, s1) + yEqual := t.Sign() == 0 + if xEqual && yEqual { + c.Double(a, pool) + return + } + r := pool.Get().Add(t, t) + + v := pool.Get().Mul(u1, i) + v.Mod(v, p) + + // t4 = 4(s2-s1)² + t4 := pool.Get().Mul(r, r) + t4.Mod(t4, p) + t.Add(v, v) + t6 := pool.Get().Sub(t4, j) + c.x.Sub(t6, t) + + // Set y = -(2h)³(s1 + s*(x/4h²-u1)) + // This is also + // y = - 2·s1·j - (s2-s1)(2x - 2i·u1) = r(v-x) - 2·s1·j + t.Sub(v, c.x) // t7 + t4.Mul(s1, j) // t8 + t4.Mod(t4, p) + t6.Add(t4, t4) // t9 + t4.Mul(r, t) // t10 + t4.Mod(t4, p) + c.y.Sub(t4, t6) + + // Set z = 2(u2-u1)·z1·z2 = 2h·z1·z2 + t.Add(a.z, b.z) // t11 + t4.Mul(t, t) // t12 + t4.Mod(t4, p) + t.Sub(t4, z1z1) // t13 + t4.Sub(t, z2z2) // t14 + c.z.Mul(t4, h) + c.z.Mod(c.z, p) + + pool.Put(z1z1) + pool.Put(z2z2) + pool.Put(u1) + pool.Put(u2) + pool.Put(t) + pool.Put(s1) + pool.Put(s2) + pool.Put(h) + pool.Put(i) + pool.Put(j) + pool.Put(r) + pool.Put(v) + pool.Put(t4) + pool.Put(t6) +} + +func (c *curvePoint) Double(a *curvePoint, pool *bnPool) { + // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/doubling/dbl-2009-l.op3 + A := pool.Get().Mul(a.x, a.x) + A.Mod(A, p) + B := pool.Get().Mul(a.y, a.y) + B.Mod(B, p) + C := pool.Get().Mul(B, B) + C.Mod(C, p) + + t := pool.Get().Add(a.x, B) + t2 := pool.Get().Mul(t, t) + t2.Mod(t2, p) + t.Sub(t2, A) + t2.Sub(t, C) + d := pool.Get().Add(t2, t2) + t.Add(A, A) + e := pool.Get().Add(t, A) + f := pool.Get().Mul(e, e) + f.Mod(f, p) + + t.Add(d, d) + c.x.Sub(f, t) + + t.Add(C, C) + t2.Add(t, t) + t.Add(t2, t2) + c.y.Sub(d, c.x) + t2.Mul(e, c.y) + t2.Mod(t2, p) + c.y.Sub(t2, t) + + t.Mul(a.y, a.z) + t.Mod(t, p) + c.z.Add(t, t) + + pool.Put(A) + pool.Put(B) + pool.Put(C) + pool.Put(t) + pool.Put(t2) + pool.Put(d) + pool.Put(e) + pool.Put(f) +} + +func (c *curvePoint) Mul(a *curvePoint, scalar *big.Int, pool *bnPool) *curvePoint { + sum := newCurvePoint(pool) + sum.SetInfinity() + t := newCurvePoint(pool) + + for i := scalar.BitLen(); i >= 0; i-- { + t.Double(sum, pool) + if scalar.Bit(i) != 0 { + sum.Add(t, a, pool) + } else { + sum.Set(t) + } + } + + c.Set(sum) + sum.Put(pool) + t.Put(pool) + return c +} + +func (c *curvePoint) MakeAffine(pool *bnPool) *curvePoint { + if words := c.z.Bits(); len(words) == 1 && words[0] == 1 { + return c + } + + zInv := pool.Get().ModInverse(c.z, p) + t := pool.Get().Mul(c.y, zInv) + t.Mod(t, p) + zInv2 := pool.Get().Mul(zInv, zInv) + zInv2.Mod(zInv2, p) + c.y.Mul(t, zInv2) + c.y.Mod(c.y, p) + t.Mul(c.x, zInv2) + t.Mod(t, p) + c.x.Set(t) + c.z.SetInt64(1) + c.t.SetInt64(1) + + pool.Put(zInv) + pool.Put(t) + pool.Put(zInv2) + + return c +} + +func (c *curvePoint) Negative(a *curvePoint) { + c.x.Set(a.x) + c.y.Neg(a.y) + c.z.Set(a.z) + c.t.SetInt64(0) +} diff --git a/vendor/golang.org/x/crypto/bn256/example_test.go b/vendor/golang.org/x/crypto/bn256/example_test.go new file mode 100644 index 00000000..b2d19807 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/example_test.go @@ -0,0 +1,43 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +import ( + "crypto/rand" +) + +func ExamplePair() { + // This implements the tripartite Diffie-Hellman algorithm from "A One + // Round Protocol for Tripartite Diffie-Hellman", A. Joux. + // http://www.springerlink.com/content/cddc57yyva0hburb/fulltext.pdf + + // Each of three parties, a, b and c, generate a private value. + a, _ := rand.Int(rand.Reader, Order) + b, _ := rand.Int(rand.Reader, Order) + c, _ := rand.Int(rand.Reader, Order) + + // Then each party calculates gâ‚ and gâ‚‚ times their private value. + pa := new(G1).ScalarBaseMult(a) + qa := new(G2).ScalarBaseMult(a) + + pb := new(G1).ScalarBaseMult(b) + qb := new(G2).ScalarBaseMult(b) + + pc := new(G1).ScalarBaseMult(c) + qc := new(G2).ScalarBaseMult(c) + + // Now each party exchanges its public values with the other two and + // all parties can calculate the shared key. + k1 := Pair(pb, qc) + k1.ScalarMult(k1, a) + + k2 := Pair(pc, qa) + k2.ScalarMult(k2, b) + + k3 := Pair(pa, qb) + k3.ScalarMult(k3, c) + + // k1, k2 and k3 will all be equal. +} diff --git a/vendor/golang.org/x/crypto/bn256/gfp12.go b/vendor/golang.org/x/crypto/bn256/gfp12.go new file mode 100644 index 00000000..f084eddf --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/gfp12.go @@ -0,0 +1,200 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +// For details of the algorithms used, see "Multiplication and Squaring on +// Pairing-Friendly Fields, Devegili et al. +// http://eprint.iacr.org/2006/471.pdf. + +import ( + "math/big" +) + +// gfP12 implements the field of size p¹² as a quadratic extension of gfP6 +// where ω²=Ï„. +type gfP12 struct { + x, y *gfP6 // value is xω + y +} + +func newGFp12(pool *bnPool) *gfP12 { + return &gfP12{newGFp6(pool), newGFp6(pool)} +} + +func (e *gfP12) String() string { + return "(" + e.x.String() + "," + e.y.String() + ")" +} + +func (e *gfP12) Put(pool *bnPool) { + e.x.Put(pool) + e.y.Put(pool) +} + +func (e *gfP12) Set(a *gfP12) *gfP12 { + e.x.Set(a.x) + e.y.Set(a.y) + return e +} + +func (e *gfP12) SetZero() *gfP12 { + e.x.SetZero() + e.y.SetZero() + return e +} + +func (e *gfP12) SetOne() *gfP12 { + e.x.SetZero() + e.y.SetOne() + return e +} + +func (e *gfP12) Minimal() { + e.x.Minimal() + e.y.Minimal() +} + +func (e *gfP12) IsZero() bool { + e.Minimal() + return e.x.IsZero() && e.y.IsZero() +} + +func (e *gfP12) IsOne() bool { + e.Minimal() + return e.x.IsZero() && e.y.IsOne() +} + +func (e *gfP12) Conjugate(a *gfP12) *gfP12 { + e.x.Negative(a.x) + e.y.Set(a.y) + return a +} + +func (e *gfP12) Negative(a *gfP12) *gfP12 { + e.x.Negative(a.x) + e.y.Negative(a.y) + return e +} + +// Frobenius computes (xω+y)^p = x^p ω·ξ^((p-1)/6) + y^p +func (e *gfP12) Frobenius(a *gfP12, pool *bnPool) *gfP12 { + e.x.Frobenius(a.x, pool) + e.y.Frobenius(a.y, pool) + e.x.MulScalar(e.x, xiToPMinus1Over6, pool) + return e +} + +// FrobeniusP2 computes (xω+y)^p² = x^p² ω·ξ^((p²-1)/6) + y^p² +func (e *gfP12) FrobeniusP2(a *gfP12, pool *bnPool) *gfP12 { + e.x.FrobeniusP2(a.x) + e.x.MulGFP(e.x, xiToPSquaredMinus1Over6) + e.y.FrobeniusP2(a.y) + return e +} + +func (e *gfP12) Add(a, b *gfP12) *gfP12 { + e.x.Add(a.x, b.x) + e.y.Add(a.y, b.y) + return e +} + +func (e *gfP12) Sub(a, b *gfP12) *gfP12 { + e.x.Sub(a.x, b.x) + e.y.Sub(a.y, b.y) + return e +} + +func (e *gfP12) Mul(a, b *gfP12, pool *bnPool) *gfP12 { + tx := newGFp6(pool) + tx.Mul(a.x, b.y, pool) + t := newGFp6(pool) + t.Mul(b.x, a.y, pool) + tx.Add(tx, t) + + ty := newGFp6(pool) + ty.Mul(a.y, b.y, pool) + t.Mul(a.x, b.x, pool) + t.MulTau(t, pool) + e.y.Add(ty, t) + e.x.Set(tx) + + tx.Put(pool) + ty.Put(pool) + t.Put(pool) + return e +} + +func (e *gfP12) MulScalar(a *gfP12, b *gfP6, pool *bnPool) *gfP12 { + e.x.Mul(e.x, b, pool) + e.y.Mul(e.y, b, pool) + return e +} + +func (c *gfP12) Exp(a *gfP12, power *big.Int, pool *bnPool) *gfP12 { + sum := newGFp12(pool) + sum.SetOne() + t := newGFp12(pool) + + for i := power.BitLen() - 1; i >= 0; i-- { + t.Square(sum, pool) + if power.Bit(i) != 0 { + sum.Mul(t, a, pool) + } else { + sum.Set(t) + } + } + + c.Set(sum) + + sum.Put(pool) + t.Put(pool) + + return c +} + +func (e *gfP12) Square(a *gfP12, pool *bnPool) *gfP12 { + // Complex squaring algorithm + v0 := newGFp6(pool) + v0.Mul(a.x, a.y, pool) + + t := newGFp6(pool) + t.MulTau(a.x, pool) + t.Add(a.y, t) + ty := newGFp6(pool) + ty.Add(a.x, a.y) + ty.Mul(ty, t, pool) + ty.Sub(ty, v0) + t.MulTau(v0, pool) + ty.Sub(ty, t) + + e.y.Set(ty) + e.x.Double(v0) + + v0.Put(pool) + t.Put(pool) + ty.Put(pool) + + return e +} + +func (e *gfP12) Invert(a *gfP12, pool *bnPool) *gfP12 { + // See "Implementing cryptographic pairings", M. Scott, section 3.2. + // ftp://136.206.11.249/pub/crypto/pairings.pdf + t1 := newGFp6(pool) + t2 := newGFp6(pool) + + t1.Square(a.x, pool) + t2.Square(a.y, pool) + t1.MulTau(t1, pool) + t1.Sub(t2, t1) + t2.Invert(t1, pool) + + e.x.Negative(a.x) + e.y.Set(a.y) + e.MulScalar(e, t2, pool) + + t1.Put(pool) + t2.Put(pool) + + return e +} diff --git a/vendor/golang.org/x/crypto/bn256/gfp2.go b/vendor/golang.org/x/crypto/bn256/gfp2.go new file mode 100644 index 00000000..97f3f1f3 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/gfp2.go @@ -0,0 +1,219 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +// For details of the algorithms used, see "Multiplication and Squaring on +// Pairing-Friendly Fields, Devegili et al. +// http://eprint.iacr.org/2006/471.pdf. + +import ( + "math/big" +) + +// gfP2 implements a field of size p² as a quadratic extension of the base +// field where i²=-1. +type gfP2 struct { + x, y *big.Int // value is xi+y. +} + +func newGFp2(pool *bnPool) *gfP2 { + return &gfP2{pool.Get(), pool.Get()} +} + +func (e *gfP2) String() string { + x := new(big.Int).Mod(e.x, p) + y := new(big.Int).Mod(e.y, p) + return "(" + x.String() + "," + y.String() + ")" +} + +func (e *gfP2) Put(pool *bnPool) { + pool.Put(e.x) + pool.Put(e.y) +} + +func (e *gfP2) Set(a *gfP2) *gfP2 { + e.x.Set(a.x) + e.y.Set(a.y) + return e +} + +func (e *gfP2) SetZero() *gfP2 { + e.x.SetInt64(0) + e.y.SetInt64(0) + return e +} + +func (e *gfP2) SetOne() *gfP2 { + e.x.SetInt64(0) + e.y.SetInt64(1) + return e +} + +func (e *gfP2) Minimal() { + if e.x.Sign() < 0 || e.x.Cmp(p) >= 0 { + e.x.Mod(e.x, p) + } + if e.y.Sign() < 0 || e.y.Cmp(p) >= 0 { + e.y.Mod(e.y, p) + } +} + +func (e *gfP2) IsZero() bool { + return e.x.Sign() == 0 && e.y.Sign() == 0 +} + +func (e *gfP2) IsOne() bool { + if e.x.Sign() != 0 { + return false + } + words := e.y.Bits() + return len(words) == 1 && words[0] == 1 +} + +func (e *gfP2) Conjugate(a *gfP2) *gfP2 { + e.y.Set(a.y) + e.x.Neg(a.x) + return e +} + +func (e *gfP2) Negative(a *gfP2) *gfP2 { + e.x.Neg(a.x) + e.y.Neg(a.y) + return e +} + +func (e *gfP2) Add(a, b *gfP2) *gfP2 { + e.x.Add(a.x, b.x) + e.y.Add(a.y, b.y) + return e +} + +func (e *gfP2) Sub(a, b *gfP2) *gfP2 { + e.x.Sub(a.x, b.x) + e.y.Sub(a.y, b.y) + return e +} + +func (e *gfP2) Double(a *gfP2) *gfP2 { + e.x.Lsh(a.x, 1) + e.y.Lsh(a.y, 1) + return e +} + +func (c *gfP2) Exp(a *gfP2, power *big.Int, pool *bnPool) *gfP2 { + sum := newGFp2(pool) + sum.SetOne() + t := newGFp2(pool) + + for i := power.BitLen() - 1; i >= 0; i-- { + t.Square(sum, pool) + if power.Bit(i) != 0 { + sum.Mul(t, a, pool) + } else { + sum.Set(t) + } + } + + c.Set(sum) + + sum.Put(pool) + t.Put(pool) + + return c +} + +// See "Multiplication and Squaring in Pairing-Friendly Fields", +// http://eprint.iacr.org/2006/471.pdf +func (e *gfP2) Mul(a, b *gfP2, pool *bnPool) *gfP2 { + tx := pool.Get().Mul(a.x, b.y) + t := pool.Get().Mul(b.x, a.y) + tx.Add(tx, t) + tx.Mod(tx, p) + + ty := pool.Get().Mul(a.y, b.y) + t.Mul(a.x, b.x) + ty.Sub(ty, t) + e.y.Mod(ty, p) + e.x.Set(tx) + + pool.Put(tx) + pool.Put(ty) + pool.Put(t) + + return e +} + +func (e *gfP2) MulScalar(a *gfP2, b *big.Int) *gfP2 { + e.x.Mul(a.x, b) + e.y.Mul(a.y, b) + return e +} + +// MulXi sets e=ξa where ξ=i+3 and then returns e. +func (e *gfP2) MulXi(a *gfP2, pool *bnPool) *gfP2 { + // (xi+y)(i+3) = (3x+y)i+(3y-x) + tx := pool.Get().Lsh(a.x, 1) + tx.Add(tx, a.x) + tx.Add(tx, a.y) + + ty := pool.Get().Lsh(a.y, 1) + ty.Add(ty, a.y) + ty.Sub(ty, a.x) + + e.x.Set(tx) + e.y.Set(ty) + + pool.Put(tx) + pool.Put(ty) + + return e +} + +func (e *gfP2) Square(a *gfP2, pool *bnPool) *gfP2 { + // Complex squaring algorithm: + // (xi+b)² = (x+y)(y-x) + 2*i*x*y + t1 := pool.Get().Sub(a.y, a.x) + t2 := pool.Get().Add(a.x, a.y) + ty := pool.Get().Mul(t1, t2) + ty.Mod(ty, p) + + t1.Mul(a.x, a.y) + t1.Lsh(t1, 1) + + e.x.Mod(t1, p) + e.y.Set(ty) + + pool.Put(t1) + pool.Put(t2) + pool.Put(ty) + + return e +} + +func (e *gfP2) Invert(a *gfP2, pool *bnPool) *gfP2 { + // See "Implementing cryptographic pairings", M. Scott, section 3.2. + // ftp://136.206.11.249/pub/crypto/pairings.pdf + t := pool.Get() + t.Mul(a.y, a.y) + t2 := pool.Get() + t2.Mul(a.x, a.x) + t.Add(t, t2) + + inv := pool.Get() + inv.ModInverse(t, p) + + e.x.Neg(a.x) + e.x.Mul(e.x, inv) + e.x.Mod(e.x, p) + + e.y.Mul(a.y, inv) + e.y.Mod(e.y, p) + + pool.Put(t) + pool.Put(t2) + pool.Put(inv) + + return e +} diff --git a/vendor/golang.org/x/crypto/bn256/gfp6.go b/vendor/golang.org/x/crypto/bn256/gfp6.go new file mode 100644 index 00000000..f98ae782 --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/gfp6.go @@ -0,0 +1,296 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +// For details of the algorithms used, see "Multiplication and Squaring on +// Pairing-Friendly Fields, Devegili et al. +// http://eprint.iacr.org/2006/471.pdf. + +import ( + "math/big" +) + +// gfP6 implements the field of size pⶠas a cubic extension of gfP2 where τ³=ξ +// and ξ=i+3. +type gfP6 struct { + x, y, z *gfP2 // value is xτ² + yÏ„ + z +} + +func newGFp6(pool *bnPool) *gfP6 { + return &gfP6{newGFp2(pool), newGFp2(pool), newGFp2(pool)} +} + +func (e *gfP6) String() string { + return "(" + e.x.String() + "," + e.y.String() + "," + e.z.String() + ")" +} + +func (e *gfP6) Put(pool *bnPool) { + e.x.Put(pool) + e.y.Put(pool) + e.z.Put(pool) +} + +func (e *gfP6) Set(a *gfP6) *gfP6 { + e.x.Set(a.x) + e.y.Set(a.y) + e.z.Set(a.z) + return e +} + +func (e *gfP6) SetZero() *gfP6 { + e.x.SetZero() + e.y.SetZero() + e.z.SetZero() + return e +} + +func (e *gfP6) SetOne() *gfP6 { + e.x.SetZero() + e.y.SetZero() + e.z.SetOne() + return e +} + +func (e *gfP6) Minimal() { + e.x.Minimal() + e.y.Minimal() + e.z.Minimal() +} + +func (e *gfP6) IsZero() bool { + return e.x.IsZero() && e.y.IsZero() && e.z.IsZero() +} + +func (e *gfP6) IsOne() bool { + return e.x.IsZero() && e.y.IsZero() && e.z.IsOne() +} + +func (e *gfP6) Negative(a *gfP6) *gfP6 { + e.x.Negative(a.x) + e.y.Negative(a.y) + e.z.Negative(a.z) + return e +} + +func (e *gfP6) Frobenius(a *gfP6, pool *bnPool) *gfP6 { + e.x.Conjugate(a.x) + e.y.Conjugate(a.y) + e.z.Conjugate(a.z) + + e.x.Mul(e.x, xiTo2PMinus2Over3, pool) + e.y.Mul(e.y, xiToPMinus1Over3, pool) + return e +} + +// FrobeniusP2 computes (xτ²+yÏ„+z)^(p²) = xÏ„^(2p²) + yÏ„^(p²) + z +func (e *gfP6) FrobeniusP2(a *gfP6) *gfP6 { + // Ï„^(2p²) = τ²τ^(2p²-2) = τ²ξ^((2p²-2)/3) + e.x.MulScalar(a.x, xiTo2PSquaredMinus2Over3) + // Ï„^(p²) = Ï„Ï„^(p²-1) = τξ^((p²-1)/3) + e.y.MulScalar(a.y, xiToPSquaredMinus1Over3) + e.z.Set(a.z) + return e +} + +func (e *gfP6) Add(a, b *gfP6) *gfP6 { + e.x.Add(a.x, b.x) + e.y.Add(a.y, b.y) + e.z.Add(a.z, b.z) + return e +} + +func (e *gfP6) Sub(a, b *gfP6) *gfP6 { + e.x.Sub(a.x, b.x) + e.y.Sub(a.y, b.y) + e.z.Sub(a.z, b.z) + return e +} + +func (e *gfP6) Double(a *gfP6) *gfP6 { + e.x.Double(a.x) + e.y.Double(a.y) + e.z.Double(a.z) + return e +} + +func (e *gfP6) Mul(a, b *gfP6, pool *bnPool) *gfP6 { + // "Multiplication and Squaring on Pairing-Friendly Fields" + // Section 4, Karatsuba method. + // http://eprint.iacr.org/2006/471.pdf + + v0 := newGFp2(pool) + v0.Mul(a.z, b.z, pool) + v1 := newGFp2(pool) + v1.Mul(a.y, b.y, pool) + v2 := newGFp2(pool) + v2.Mul(a.x, b.x, pool) + + t0 := newGFp2(pool) + t0.Add(a.x, a.y) + t1 := newGFp2(pool) + t1.Add(b.x, b.y) + tz := newGFp2(pool) + tz.Mul(t0, t1, pool) + + tz.Sub(tz, v1) + tz.Sub(tz, v2) + tz.MulXi(tz, pool) + tz.Add(tz, v0) + + t0.Add(a.y, a.z) + t1.Add(b.y, b.z) + ty := newGFp2(pool) + ty.Mul(t0, t1, pool) + ty.Sub(ty, v0) + ty.Sub(ty, v1) + t0.MulXi(v2, pool) + ty.Add(ty, t0) + + t0.Add(a.x, a.z) + t1.Add(b.x, b.z) + tx := newGFp2(pool) + tx.Mul(t0, t1, pool) + tx.Sub(tx, v0) + tx.Add(tx, v1) + tx.Sub(tx, v2) + + e.x.Set(tx) + e.y.Set(ty) + e.z.Set(tz) + + t0.Put(pool) + t1.Put(pool) + tx.Put(pool) + ty.Put(pool) + tz.Put(pool) + v0.Put(pool) + v1.Put(pool) + v2.Put(pool) + return e +} + +func (e *gfP6) MulScalar(a *gfP6, b *gfP2, pool *bnPool) *gfP6 { + e.x.Mul(a.x, b, pool) + e.y.Mul(a.y, b, pool) + e.z.Mul(a.z, b, pool) + return e +} + +func (e *gfP6) MulGFP(a *gfP6, b *big.Int) *gfP6 { + e.x.MulScalar(a.x, b) + e.y.MulScalar(a.y, b) + e.z.MulScalar(a.z, b) + return e +} + +// MulTau computes τ·(aτ²+bÏ„+c) = bτ²+cÏ„+aξ +func (e *gfP6) MulTau(a *gfP6, pool *bnPool) { + tz := newGFp2(pool) + tz.MulXi(a.x, pool) + ty := newGFp2(pool) + ty.Set(a.y) + e.y.Set(a.z) + e.x.Set(ty) + e.z.Set(tz) + tz.Put(pool) + ty.Put(pool) +} + +func (e *gfP6) Square(a *gfP6, pool *bnPool) *gfP6 { + v0 := newGFp2(pool).Square(a.z, pool) + v1 := newGFp2(pool).Square(a.y, pool) + v2 := newGFp2(pool).Square(a.x, pool) + + c0 := newGFp2(pool).Add(a.x, a.y) + c0.Square(c0, pool) + c0.Sub(c0, v1) + c0.Sub(c0, v2) + c0.MulXi(c0, pool) + c0.Add(c0, v0) + + c1 := newGFp2(pool).Add(a.y, a.z) + c1.Square(c1, pool) + c1.Sub(c1, v0) + c1.Sub(c1, v1) + xiV2 := newGFp2(pool).MulXi(v2, pool) + c1.Add(c1, xiV2) + + c2 := newGFp2(pool).Add(a.x, a.z) + c2.Square(c2, pool) + c2.Sub(c2, v0) + c2.Add(c2, v1) + c2.Sub(c2, v2) + + e.x.Set(c2) + e.y.Set(c1) + e.z.Set(c0) + + v0.Put(pool) + v1.Put(pool) + v2.Put(pool) + c0.Put(pool) + c1.Put(pool) + c2.Put(pool) + xiV2.Put(pool) + + return e +} + +func (e *gfP6) Invert(a *gfP6, pool *bnPool) *gfP6 { + // See "Implementing cryptographic pairings", M. Scott, section 3.2. + // ftp://136.206.11.249/pub/crypto/pairings.pdf + + // Here we can give a short explanation of how it works: let j be a cubic root of + // unity in GF(p²) so that 1+j+j²=0. + // Then (xτ² + yÏ„ + z)(xj²τ² + yjÏ„ + z)(xjτ² + yj²τ + z) + // = (xτ² + yÏ„ + z)(Cτ²+BÏ„+A) + // = (x³ξ²+y³ξ+z³-3ξxyz) = F is an element of the base field (the norm). + // + // On the other hand (xj²τ² + yjÏ„ + z)(xjτ² + yj²τ + z) + // = τ²(y²-ξxz) + Ï„(ξx²-yz) + (z²-ξxy) + // + // So that's why A = (z²-ξxy), B = (ξx²-yz), C = (y²-ξxz) + t1 := newGFp2(pool) + + A := newGFp2(pool) + A.Square(a.z, pool) + t1.Mul(a.x, a.y, pool) + t1.MulXi(t1, pool) + A.Sub(A, t1) + + B := newGFp2(pool) + B.Square(a.x, pool) + B.MulXi(B, pool) + t1.Mul(a.y, a.z, pool) + B.Sub(B, t1) + + C := newGFp2(pool) + C.Square(a.y, pool) + t1.Mul(a.x, a.z, pool) + C.Sub(C, t1) + + F := newGFp2(pool) + F.Mul(C, a.y, pool) + F.MulXi(F, pool) + t1.Mul(A, a.z, pool) + F.Add(F, t1) + t1.Mul(B, a.x, pool) + t1.MulXi(t1, pool) + F.Add(F, t1) + + F.Invert(F, pool) + + e.x.Mul(C, F, pool) + e.y.Mul(B, F, pool) + e.z.Mul(A, F, pool) + + t1.Put(pool) + A.Put(pool) + B.Put(pool) + C.Put(pool) + F.Put(pool) + + return e +} diff --git a/vendor/golang.org/x/crypto/bn256/optate.go b/vendor/golang.org/x/crypto/bn256/optate.go new file mode 100644 index 00000000..7ae0746e --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/optate.go @@ -0,0 +1,395 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +func lineFunctionAdd(r, p *twistPoint, q *curvePoint, r2 *gfP2, pool *bnPool) (a, b, c *gfP2, rOut *twistPoint) { + // See the mixed addition algorithm from "Faster Computation of the + // Tate Pairing", http://arxiv.org/pdf/0904.0854v3.pdf + + B := newGFp2(pool).Mul(p.x, r.t, pool) + + D := newGFp2(pool).Add(p.y, r.z) + D.Square(D, pool) + D.Sub(D, r2) + D.Sub(D, r.t) + D.Mul(D, r.t, pool) + + H := newGFp2(pool).Sub(B, r.x) + I := newGFp2(pool).Square(H, pool) + + E := newGFp2(pool).Add(I, I) + E.Add(E, E) + + J := newGFp2(pool).Mul(H, E, pool) + + L1 := newGFp2(pool).Sub(D, r.y) + L1.Sub(L1, r.y) + + V := newGFp2(pool).Mul(r.x, E, pool) + + rOut = newTwistPoint(pool) + rOut.x.Square(L1, pool) + rOut.x.Sub(rOut.x, J) + rOut.x.Sub(rOut.x, V) + rOut.x.Sub(rOut.x, V) + + rOut.z.Add(r.z, H) + rOut.z.Square(rOut.z, pool) + rOut.z.Sub(rOut.z, r.t) + rOut.z.Sub(rOut.z, I) + + t := newGFp2(pool).Sub(V, rOut.x) + t.Mul(t, L1, pool) + t2 := newGFp2(pool).Mul(r.y, J, pool) + t2.Add(t2, t2) + rOut.y.Sub(t, t2) + + rOut.t.Square(rOut.z, pool) + + t.Add(p.y, rOut.z) + t.Square(t, pool) + t.Sub(t, r2) + t.Sub(t, rOut.t) + + t2.Mul(L1, p.x, pool) + t2.Add(t2, t2) + a = newGFp2(pool) + a.Sub(t2, t) + + c = newGFp2(pool) + c.MulScalar(rOut.z, q.y) + c.Add(c, c) + + b = newGFp2(pool) + b.SetZero() + b.Sub(b, L1) + b.MulScalar(b, q.x) + b.Add(b, b) + + B.Put(pool) + D.Put(pool) + H.Put(pool) + I.Put(pool) + E.Put(pool) + J.Put(pool) + L1.Put(pool) + V.Put(pool) + t.Put(pool) + t2.Put(pool) + + return +} + +func lineFunctionDouble(r *twistPoint, q *curvePoint, pool *bnPool) (a, b, c *gfP2, rOut *twistPoint) { + // See the doubling algorithm for a=0 from "Faster Computation of the + // Tate Pairing", http://arxiv.org/pdf/0904.0854v3.pdf + + A := newGFp2(pool).Square(r.x, pool) + B := newGFp2(pool).Square(r.y, pool) + C := newGFp2(pool).Square(B, pool) + + D := newGFp2(pool).Add(r.x, B) + D.Square(D, pool) + D.Sub(D, A) + D.Sub(D, C) + D.Add(D, D) + + E := newGFp2(pool).Add(A, A) + E.Add(E, A) + + G := newGFp2(pool).Square(E, pool) + + rOut = newTwistPoint(pool) + rOut.x.Sub(G, D) + rOut.x.Sub(rOut.x, D) + + rOut.z.Add(r.y, r.z) + rOut.z.Square(rOut.z, pool) + rOut.z.Sub(rOut.z, B) + rOut.z.Sub(rOut.z, r.t) + + rOut.y.Sub(D, rOut.x) + rOut.y.Mul(rOut.y, E, pool) + t := newGFp2(pool).Add(C, C) + t.Add(t, t) + t.Add(t, t) + rOut.y.Sub(rOut.y, t) + + rOut.t.Square(rOut.z, pool) + + t.Mul(E, r.t, pool) + t.Add(t, t) + b = newGFp2(pool) + b.SetZero() + b.Sub(b, t) + b.MulScalar(b, q.x) + + a = newGFp2(pool) + a.Add(r.x, E) + a.Square(a, pool) + a.Sub(a, A) + a.Sub(a, G) + t.Add(B, B) + t.Add(t, t) + a.Sub(a, t) + + c = newGFp2(pool) + c.Mul(rOut.z, r.t, pool) + c.Add(c, c) + c.MulScalar(c, q.y) + + A.Put(pool) + B.Put(pool) + C.Put(pool) + D.Put(pool) + E.Put(pool) + G.Put(pool) + t.Put(pool) + + return +} + +func mulLine(ret *gfP12, a, b, c *gfP2, pool *bnPool) { + a2 := newGFp6(pool) + a2.x.SetZero() + a2.y.Set(a) + a2.z.Set(b) + a2.Mul(a2, ret.x, pool) + t3 := newGFp6(pool).MulScalar(ret.y, c, pool) + + t := newGFp2(pool) + t.Add(b, c) + t2 := newGFp6(pool) + t2.x.SetZero() + t2.y.Set(a) + t2.z.Set(t) + ret.x.Add(ret.x, ret.y) + + ret.y.Set(t3) + + ret.x.Mul(ret.x, t2, pool) + ret.x.Sub(ret.x, a2) + ret.x.Sub(ret.x, ret.y) + a2.MulTau(a2, pool) + ret.y.Add(ret.y, a2) + + a2.Put(pool) + t3.Put(pool) + t2.Put(pool) + t.Put(pool) +} + +// sixuPlus2NAF is 6u+2 in non-adjacent form. +var sixuPlus2NAF = []int8{0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1} + +// miller implements the Miller loop for calculating the Optimal Ate pairing. +// See algorithm 1 from http://cryptojedi.org/papers/dclxvi-20100714.pdf +func miller(q *twistPoint, p *curvePoint, pool *bnPool) *gfP12 { + ret := newGFp12(pool) + ret.SetOne() + + aAffine := newTwistPoint(pool) + aAffine.Set(q) + aAffine.MakeAffine(pool) + + bAffine := newCurvePoint(pool) + bAffine.Set(p) + bAffine.MakeAffine(pool) + + minusA := newTwistPoint(pool) + minusA.Negative(aAffine, pool) + + r := newTwistPoint(pool) + r.Set(aAffine) + + r2 := newGFp2(pool) + r2.Square(aAffine.y, pool) + + for i := len(sixuPlus2NAF) - 1; i > 0; i-- { + a, b, c, newR := lineFunctionDouble(r, bAffine, pool) + if i != len(sixuPlus2NAF)-1 { + ret.Square(ret, pool) + } + + mulLine(ret, a, b, c, pool) + a.Put(pool) + b.Put(pool) + c.Put(pool) + r.Put(pool) + r = newR + + switch sixuPlus2NAF[i-1] { + case 1: + a, b, c, newR = lineFunctionAdd(r, aAffine, bAffine, r2, pool) + case -1: + a, b, c, newR = lineFunctionAdd(r, minusA, bAffine, r2, pool) + default: + continue + } + + mulLine(ret, a, b, c, pool) + a.Put(pool) + b.Put(pool) + c.Put(pool) + r.Put(pool) + r = newR + } + + // In order to calculate Q1 we have to convert q from the sextic twist + // to the full GF(p^12) group, apply the Frobenius there, and convert + // back. + // + // The twist isomorphism is (x', y') -> (xω², yω³). If we consider just + // x for a moment, then after applying the Frobenius, we have x̄ω^(2p) + // where xÌ„ is the conjugate of x. If we are going to apply the inverse + // isomorphism we need a value with a single coefficient of ω² so we + // rewrite this as x̄ω^(2p-2)ω². ξⶠ= ω and, due to the construction of + // p, 2p-2 is a multiple of six. Therefore we can rewrite as + // x̄ξ^((p-1)/3)ω² and applying the inverse isomorphism eliminates the + // ω². + // + // A similar argument can be made for the y value. + + q1 := newTwistPoint(pool) + q1.x.Conjugate(aAffine.x) + q1.x.Mul(q1.x, xiToPMinus1Over3, pool) + q1.y.Conjugate(aAffine.y) + q1.y.Mul(q1.y, xiToPMinus1Over2, pool) + q1.z.SetOne() + q1.t.SetOne() + + // For Q2 we are applying the p² Frobenius. The two conjugations cancel + // out and we are left only with the factors from the isomorphism. In + // the case of x, we end up with a pure number which is why + // xiToPSquaredMinus1Over3 is ∈ GF(p). With y we get a factor of -1. We + // ignore this to end up with -Q2. + + minusQ2 := newTwistPoint(pool) + minusQ2.x.MulScalar(aAffine.x, xiToPSquaredMinus1Over3) + minusQ2.y.Set(aAffine.y) + minusQ2.z.SetOne() + minusQ2.t.SetOne() + + r2.Square(q1.y, pool) + a, b, c, newR := lineFunctionAdd(r, q1, bAffine, r2, pool) + mulLine(ret, a, b, c, pool) + a.Put(pool) + b.Put(pool) + c.Put(pool) + r.Put(pool) + r = newR + + r2.Square(minusQ2.y, pool) + a, b, c, newR = lineFunctionAdd(r, minusQ2, bAffine, r2, pool) + mulLine(ret, a, b, c, pool) + a.Put(pool) + b.Put(pool) + c.Put(pool) + r.Put(pool) + r = newR + + aAffine.Put(pool) + bAffine.Put(pool) + minusA.Put(pool) + r.Put(pool) + r2.Put(pool) + + return ret +} + +// finalExponentiation computes the (p¹²-1)/Order-th power of an element of +// GF(p¹²) to obtain an element of GT (steps 13-15 of algorithm 1 from +// http://cryptojedi.org/papers/dclxvi-20100714.pdf) +func finalExponentiation(in *gfP12, pool *bnPool) *gfP12 { + t1 := newGFp12(pool) + + // This is the p^6-Frobenius + t1.x.Negative(in.x) + t1.y.Set(in.y) + + inv := newGFp12(pool) + inv.Invert(in, pool) + t1.Mul(t1, inv, pool) + + t2 := newGFp12(pool).FrobeniusP2(t1, pool) + t1.Mul(t1, t2, pool) + + fp := newGFp12(pool).Frobenius(t1, pool) + fp2 := newGFp12(pool).FrobeniusP2(t1, pool) + fp3 := newGFp12(pool).Frobenius(fp2, pool) + + fu, fu2, fu3 := newGFp12(pool), newGFp12(pool), newGFp12(pool) + fu.Exp(t1, u, pool) + fu2.Exp(fu, u, pool) + fu3.Exp(fu2, u, pool) + + y3 := newGFp12(pool).Frobenius(fu, pool) + fu2p := newGFp12(pool).Frobenius(fu2, pool) + fu3p := newGFp12(pool).Frobenius(fu3, pool) + y2 := newGFp12(pool).FrobeniusP2(fu2, pool) + + y0 := newGFp12(pool) + y0.Mul(fp, fp2, pool) + y0.Mul(y0, fp3, pool) + + y1, y4, y5 := newGFp12(pool), newGFp12(pool), newGFp12(pool) + y1.Conjugate(t1) + y5.Conjugate(fu2) + y3.Conjugate(y3) + y4.Mul(fu, fu2p, pool) + y4.Conjugate(y4) + + y6 := newGFp12(pool) + y6.Mul(fu3, fu3p, pool) + y6.Conjugate(y6) + + t0 := newGFp12(pool) + t0.Square(y6, pool) + t0.Mul(t0, y4, pool) + t0.Mul(t0, y5, pool) + t1.Mul(y3, y5, pool) + t1.Mul(t1, t0, pool) + t0.Mul(t0, y2, pool) + t1.Square(t1, pool) + t1.Mul(t1, t0, pool) + t1.Square(t1, pool) + t0.Mul(t1, y1, pool) + t1.Mul(t1, y0, pool) + t0.Square(t0, pool) + t0.Mul(t0, t1, pool) + + inv.Put(pool) + t1.Put(pool) + t2.Put(pool) + fp.Put(pool) + fp2.Put(pool) + fp3.Put(pool) + fu.Put(pool) + fu2.Put(pool) + fu3.Put(pool) + fu2p.Put(pool) + fu3p.Put(pool) + y0.Put(pool) + y1.Put(pool) + y2.Put(pool) + y3.Put(pool) + y4.Put(pool) + y5.Put(pool) + y6.Put(pool) + + return t0 +} + +func optimalAte(a *twistPoint, b *curvePoint, pool *bnPool) *gfP12 { + e := miller(a, b, pool) + ret := finalExponentiation(e, pool) + e.Put(pool) + + if a.IsInfinity() || b.IsInfinity() { + ret.SetOne() + } + + return ret +} diff --git a/vendor/golang.org/x/crypto/bn256/twist.go b/vendor/golang.org/x/crypto/bn256/twist.go new file mode 100644 index 00000000..4f8b3fed --- /dev/null +++ b/vendor/golang.org/x/crypto/bn256/twist.go @@ -0,0 +1,249 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bn256 + +import ( + "math/big" +) + +// twistPoint implements the elliptic curve y²=x³+3/ξ over GF(p²). Points are +// kept in Jacobian form and t=z² when valid. The group Gâ‚‚ is the set of +// n-torsion points of this curve over GF(p²) (where n = Order) +type twistPoint struct { + x, y, z, t *gfP2 +} + +var twistB = &gfP2{ + bigFromBase10("6500054969564660373279643874235990574282535810762300357187714502686418407178"), + bigFromBase10("45500384786952622612957507119651934019977750675336102500314001518804928850249"), +} + +// twistGen is the generator of group Gâ‚‚. +var twistGen = &twistPoint{ + &gfP2{ + bigFromBase10("21167961636542580255011770066570541300993051739349375019639421053990175267184"), + bigFromBase10("64746500191241794695844075326670126197795977525365406531717464316923369116492"), + }, + &gfP2{ + bigFromBase10("20666913350058776956210519119118544732556678129809273996262322366050359951122"), + bigFromBase10("17778617556404439934652658462602675281523610326338642107814333856843981424549"), + }, + &gfP2{ + bigFromBase10("0"), + bigFromBase10("1"), + }, + &gfP2{ + bigFromBase10("0"), + bigFromBase10("1"), + }, +} + +func newTwistPoint(pool *bnPool) *twistPoint { + return &twistPoint{ + newGFp2(pool), + newGFp2(pool), + newGFp2(pool), + newGFp2(pool), + } +} + +func (c *twistPoint) String() string { + return "(" + c.x.String() + ", " + c.y.String() + ", " + c.z.String() + ")" +} + +func (c *twistPoint) Put(pool *bnPool) { + c.x.Put(pool) + c.y.Put(pool) + c.z.Put(pool) + c.t.Put(pool) +} + +func (c *twistPoint) Set(a *twistPoint) { + c.x.Set(a.x) + c.y.Set(a.y) + c.z.Set(a.z) + c.t.Set(a.t) +} + +// IsOnCurve returns true iff c is on the curve where c must be in affine form. +func (c *twistPoint) IsOnCurve() bool { + pool := new(bnPool) + yy := newGFp2(pool).Square(c.y, pool) + xxx := newGFp2(pool).Square(c.x, pool) + xxx.Mul(xxx, c.x, pool) + yy.Sub(yy, xxx) + yy.Sub(yy, twistB) + yy.Minimal() + return yy.x.Sign() == 0 && yy.y.Sign() == 0 +} + +func (c *twistPoint) SetInfinity() { + c.z.SetZero() +} + +func (c *twistPoint) IsInfinity() bool { + return c.z.IsZero() +} + +func (c *twistPoint) Add(a, b *twistPoint, pool *bnPool) { + // For additional comments, see the same function in curve.go. + + if a.IsInfinity() { + c.Set(b) + return + } + if b.IsInfinity() { + c.Set(a) + return + } + + // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/addition/add-2007-bl.op3 + z1z1 := newGFp2(pool).Square(a.z, pool) + z2z2 := newGFp2(pool).Square(b.z, pool) + u1 := newGFp2(pool).Mul(a.x, z2z2, pool) + u2 := newGFp2(pool).Mul(b.x, z1z1, pool) + + t := newGFp2(pool).Mul(b.z, z2z2, pool) + s1 := newGFp2(pool).Mul(a.y, t, pool) + + t.Mul(a.z, z1z1, pool) + s2 := newGFp2(pool).Mul(b.y, t, pool) + + h := newGFp2(pool).Sub(u2, u1) + xEqual := h.IsZero() + + t.Add(h, h) + i := newGFp2(pool).Square(t, pool) + j := newGFp2(pool).Mul(h, i, pool) + + t.Sub(s2, s1) + yEqual := t.IsZero() + if xEqual && yEqual { + c.Double(a, pool) + return + } + r := newGFp2(pool).Add(t, t) + + v := newGFp2(pool).Mul(u1, i, pool) + + t4 := newGFp2(pool).Square(r, pool) + t.Add(v, v) + t6 := newGFp2(pool).Sub(t4, j) + c.x.Sub(t6, t) + + t.Sub(v, c.x) // t7 + t4.Mul(s1, j, pool) // t8 + t6.Add(t4, t4) // t9 + t4.Mul(r, t, pool) // t10 + c.y.Sub(t4, t6) + + t.Add(a.z, b.z) // t11 + t4.Square(t, pool) // t12 + t.Sub(t4, z1z1) // t13 + t4.Sub(t, z2z2) // t14 + c.z.Mul(t4, h, pool) + + z1z1.Put(pool) + z2z2.Put(pool) + u1.Put(pool) + u2.Put(pool) + t.Put(pool) + s1.Put(pool) + s2.Put(pool) + h.Put(pool) + i.Put(pool) + j.Put(pool) + r.Put(pool) + v.Put(pool) + t4.Put(pool) + t6.Put(pool) +} + +func (c *twistPoint) Double(a *twistPoint, pool *bnPool) { + // See http://hyperelliptic.org/EFD/g1p/auto-code/shortw/jacobian-0/doubling/dbl-2009-l.op3 + A := newGFp2(pool).Square(a.x, pool) + B := newGFp2(pool).Square(a.y, pool) + C := newGFp2(pool).Square(B, pool) + + t := newGFp2(pool).Add(a.x, B) + t2 := newGFp2(pool).Square(t, pool) + t.Sub(t2, A) + t2.Sub(t, C) + d := newGFp2(pool).Add(t2, t2) + t.Add(A, A) + e := newGFp2(pool).Add(t, A) + f := newGFp2(pool).Square(e, pool) + + t.Add(d, d) + c.x.Sub(f, t) + + t.Add(C, C) + t2.Add(t, t) + t.Add(t2, t2) + c.y.Sub(d, c.x) + t2.Mul(e, c.y, pool) + c.y.Sub(t2, t) + + t.Mul(a.y, a.z, pool) + c.z.Add(t, t) + + A.Put(pool) + B.Put(pool) + C.Put(pool) + t.Put(pool) + t2.Put(pool) + d.Put(pool) + e.Put(pool) + f.Put(pool) +} + +func (c *twistPoint) Mul(a *twistPoint, scalar *big.Int, pool *bnPool) *twistPoint { + sum := newTwistPoint(pool) + sum.SetInfinity() + t := newTwistPoint(pool) + + for i := scalar.BitLen(); i >= 0; i-- { + t.Double(sum, pool) + if scalar.Bit(i) != 0 { + sum.Add(t, a, pool) + } else { + sum.Set(t) + } + } + + c.Set(sum) + sum.Put(pool) + t.Put(pool) + return c +} + +func (c *twistPoint) MakeAffine(pool *bnPool) *twistPoint { + if c.z.IsOne() { + return c + } + + zInv := newGFp2(pool).Invert(c.z, pool) + t := newGFp2(pool).Mul(c.y, zInv, pool) + zInv2 := newGFp2(pool).Square(zInv, pool) + c.y.Mul(t, zInv2, pool) + t.Mul(c.x, zInv2, pool) + c.x.Set(t) + c.z.SetOne() + c.t.SetOne() + + zInv.Put(pool) + t.Put(pool) + zInv2.Put(pool) + + return c +} + +func (c *twistPoint) Negative(a *twistPoint, pool *bnPool) { + c.x.Set(a.x) + c.y.SetZero() + c.y.Sub(c.y, a.y) + c.z.Set(a.z) + c.t.SetZero() +} diff --git a/vendor/golang.org/x/crypto/cast5/cast5.go b/vendor/golang.org/x/crypto/cast5/cast5.go new file mode 100644 index 00000000..0b4af37b --- /dev/null +++ b/vendor/golang.org/x/crypto/cast5/cast5.go @@ -0,0 +1,526 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package cast5 implements CAST5, as defined in RFC 2144. CAST5 is a common +// OpenPGP cipher. +package cast5 // import "golang.org/x/crypto/cast5" + +import "errors" + +const BlockSize = 8 +const KeySize = 16 + +type Cipher struct { + masking [16]uint32 + rotate [16]uint8 +} + +func NewCipher(key []byte) (c *Cipher, err error) { + if len(key) != KeySize { + return nil, errors.New("CAST5: keys must be 16 bytes") + } + + c = new(Cipher) + c.keySchedule(key) + return +} + +func (c *Cipher) BlockSize() int { + return BlockSize +} + +func (c *Cipher) Encrypt(dst, src []byte) { + l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) + r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) + + l, r = r, l^f1(r, c.masking[0], c.rotate[0]) + l, r = r, l^f2(r, c.masking[1], c.rotate[1]) + l, r = r, l^f3(r, c.masking[2], c.rotate[2]) + l, r = r, l^f1(r, c.masking[3], c.rotate[3]) + + l, r = r, l^f2(r, c.masking[4], c.rotate[4]) + l, r = r, l^f3(r, c.masking[5], c.rotate[5]) + l, r = r, l^f1(r, c.masking[6], c.rotate[6]) + l, r = r, l^f2(r, c.masking[7], c.rotate[7]) + + l, r = r, l^f3(r, c.masking[8], c.rotate[8]) + l, r = r, l^f1(r, c.masking[9], c.rotate[9]) + l, r = r, l^f2(r, c.masking[10], c.rotate[10]) + l, r = r, l^f3(r, c.masking[11], c.rotate[11]) + + l, r = r, l^f1(r, c.masking[12], c.rotate[12]) + l, r = r, l^f2(r, c.masking[13], c.rotate[13]) + l, r = r, l^f3(r, c.masking[14], c.rotate[14]) + l, r = r, l^f1(r, c.masking[15], c.rotate[15]) + + dst[0] = uint8(r >> 24) + dst[1] = uint8(r >> 16) + dst[2] = uint8(r >> 8) + dst[3] = uint8(r) + dst[4] = uint8(l >> 24) + dst[5] = uint8(l >> 16) + dst[6] = uint8(l >> 8) + dst[7] = uint8(l) +} + +func (c *Cipher) Decrypt(dst, src []byte) { + l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) + r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) + + l, r = r, l^f1(r, c.masking[15], c.rotate[15]) + l, r = r, l^f3(r, c.masking[14], c.rotate[14]) + l, r = r, l^f2(r, c.masking[13], c.rotate[13]) + l, r = r, l^f1(r, c.masking[12], c.rotate[12]) + + l, r = r, l^f3(r, c.masking[11], c.rotate[11]) + l, r = r, l^f2(r, c.masking[10], c.rotate[10]) + l, r = r, l^f1(r, c.masking[9], c.rotate[9]) + l, r = r, l^f3(r, c.masking[8], c.rotate[8]) + + l, r = r, l^f2(r, c.masking[7], c.rotate[7]) + l, r = r, l^f1(r, c.masking[6], c.rotate[6]) + l, r = r, l^f3(r, c.masking[5], c.rotate[5]) + l, r = r, l^f2(r, c.masking[4], c.rotate[4]) + + l, r = r, l^f1(r, c.masking[3], c.rotate[3]) + l, r = r, l^f3(r, c.masking[2], c.rotate[2]) + l, r = r, l^f2(r, c.masking[1], c.rotate[1]) + l, r = r, l^f1(r, c.masking[0], c.rotate[0]) + + dst[0] = uint8(r >> 24) + dst[1] = uint8(r >> 16) + dst[2] = uint8(r >> 8) + dst[3] = uint8(r) + dst[4] = uint8(l >> 24) + dst[5] = uint8(l >> 16) + dst[6] = uint8(l >> 8) + dst[7] = uint8(l) +} + +type keyScheduleA [4][7]uint8 +type keyScheduleB [4][5]uint8 + +// keyScheduleRound contains the magic values for a round of the key schedule. +// The keyScheduleA deals with the lines like: +// z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8] +// Conceptually, both x and z are in the same array, x first. The first +// element describes which word of this array gets written to and the +// second, which word gets read. So, for the line above, it's "4, 0", because +// it's writing to the first word of z, which, being after x, is word 4, and +// reading from the first word of x: word 0. +// +// Next are the indexes into the S-boxes. Now the array is treated as bytes. So +// "xD" is 0xd. The first byte of z is written as "16 + 0", just to be clear +// that it's z that we're indexing. +// +// keyScheduleB deals with lines like: +// K1 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2] +// "K1" is ignored because key words are always written in order. So the five +// elements are the S-box indexes. They use the same form as in keyScheduleA, +// above. + +type keyScheduleRound struct{} +type keySchedule []keyScheduleRound + +var schedule = []struct { + a keyScheduleA + b keyScheduleB +}{ + { + keyScheduleA{ + {4, 0, 0xd, 0xf, 0xc, 0xe, 0x8}, + {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, + {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, + {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, + }, + keyScheduleB{ + {16 + 8, 16 + 9, 16 + 7, 16 + 6, 16 + 2}, + {16 + 0xa, 16 + 0xb, 16 + 5, 16 + 4, 16 + 6}, + {16 + 0xc, 16 + 0xd, 16 + 3, 16 + 2, 16 + 9}, + {16 + 0xe, 16 + 0xf, 16 + 1, 16 + 0, 16 + 0xc}, + }, + }, + { + keyScheduleA{ + {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, + {1, 4, 0, 2, 1, 3, 16 + 2}, + {2, 5, 7, 6, 5, 4, 16 + 1}, + {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, + }, + keyScheduleB{ + {3, 2, 0xc, 0xd, 8}, + {1, 0, 0xe, 0xf, 0xd}, + {7, 6, 8, 9, 3}, + {5, 4, 0xa, 0xb, 7}, + }, + }, + { + keyScheduleA{ + {4, 0, 0xd, 0xf, 0xc, 0xe, 8}, + {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, + {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, + {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, + }, + keyScheduleB{ + {16 + 3, 16 + 2, 16 + 0xc, 16 + 0xd, 16 + 9}, + {16 + 1, 16 + 0, 16 + 0xe, 16 + 0xf, 16 + 0xc}, + {16 + 7, 16 + 6, 16 + 8, 16 + 9, 16 + 2}, + {16 + 5, 16 + 4, 16 + 0xa, 16 + 0xb, 16 + 6}, + }, + }, + { + keyScheduleA{ + {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, + {1, 4, 0, 2, 1, 3, 16 + 2}, + {2, 5, 7, 6, 5, 4, 16 + 1}, + {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, + }, + keyScheduleB{ + {8, 9, 7, 6, 3}, + {0xa, 0xb, 5, 4, 7}, + {0xc, 0xd, 3, 2, 8}, + {0xe, 0xf, 1, 0, 0xd}, + }, + }, +} + +func (c *Cipher) keySchedule(in []byte) { + var t [8]uint32 + var k [32]uint32 + + for i := 0; i < 4; i++ { + j := i * 4 + t[i] = uint32(in[j])<<24 | uint32(in[j+1])<<16 | uint32(in[j+2])<<8 | uint32(in[j+3]) + } + + x := []byte{6, 7, 4, 5} + ki := 0 + + for half := 0; half < 2; half++ { + for _, round := range schedule { + for j := 0; j < 4; j++ { + var a [7]uint8 + copy(a[:], round.a[j][:]) + w := t[a[1]] + w ^= sBox[4][(t[a[2]>>2]>>(24-8*(a[2]&3)))&0xff] + w ^= sBox[5][(t[a[3]>>2]>>(24-8*(a[3]&3)))&0xff] + w ^= sBox[6][(t[a[4]>>2]>>(24-8*(a[4]&3)))&0xff] + w ^= sBox[7][(t[a[5]>>2]>>(24-8*(a[5]&3)))&0xff] + w ^= sBox[x[j]][(t[a[6]>>2]>>(24-8*(a[6]&3)))&0xff] + t[a[0]] = w + } + + for j := 0; j < 4; j++ { + var b [5]uint8 + copy(b[:], round.b[j][:]) + w := sBox[4][(t[b[0]>>2]>>(24-8*(b[0]&3)))&0xff] + w ^= sBox[5][(t[b[1]>>2]>>(24-8*(b[1]&3)))&0xff] + w ^= sBox[6][(t[b[2]>>2]>>(24-8*(b[2]&3)))&0xff] + w ^= sBox[7][(t[b[3]>>2]>>(24-8*(b[3]&3)))&0xff] + w ^= sBox[4+j][(t[b[4]>>2]>>(24-8*(b[4]&3)))&0xff] + k[ki] = w + ki++ + } + } + } + + for i := 0; i < 16; i++ { + c.masking[i] = k[i] + c.rotate[i] = uint8(k[16+i] & 0x1f) + } +} + +// These are the three 'f' functions. See RFC 2144, section 2.2. +func f1(d, m uint32, r uint8) uint32 { + t := m + d + I := (t << r) | (t >> (32 - r)) + return ((sBox[0][I>>24] ^ sBox[1][(I>>16)&0xff]) - sBox[2][(I>>8)&0xff]) + sBox[3][I&0xff] +} + +func f2(d, m uint32, r uint8) uint32 { + t := m ^ d + I := (t << r) | (t >> (32 - r)) + return ((sBox[0][I>>24] - sBox[1][(I>>16)&0xff]) + sBox[2][(I>>8)&0xff]) ^ sBox[3][I&0xff] +} + +func f3(d, m uint32, r uint8) uint32 { + t := m - d + I := (t << r) | (t >> (32 - r)) + return ((sBox[0][I>>24] + sBox[1][(I>>16)&0xff]) ^ sBox[2][(I>>8)&0xff]) - sBox[3][I&0xff] +} + +var sBox = [8][256]uint32{ + { + 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949, + 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, + 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, + 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0, + 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7, + 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935, + 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d, + 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, + 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe, + 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3, + 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167, + 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291, + 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779, + 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2, + 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511, + 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d, + 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5, + 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324, + 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, + 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc, + 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d, + 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96, + 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a, + 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, + 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, + 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6, + 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, + 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872, + 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c, + 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e, + 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9, + 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf, + }, + { + 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651, + 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, + 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb, + 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, + 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b, + 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359, + 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b, + 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c, + 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34, + 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb, + 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd, + 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860, + 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b, + 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, + 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b, + 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, + 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c, + 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13, + 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f, + 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, + 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6, + 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58, + 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, + 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, + 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6, + 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, + 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6, + 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f, + 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, + 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, + 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9, + 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1, + }, + { + 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90, + 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5, + 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e, + 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240, + 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, + 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, + 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71, + 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, + 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, + 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15, + 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2, + 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176, + 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148, + 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc, + 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, + 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e, + 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, + 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f, + 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a, + 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b, + 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, + 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, + 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, + 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536, + 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, + 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, + 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69, + 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, + 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49, + 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d, + 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a, + 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783, + }, + { + 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1, + 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf, + 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15, + 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121, + 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25, + 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, + 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb, + 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5, + 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d, + 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6, + 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23, + 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003, + 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, + 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119, + 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, + 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a, + 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79, + 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df, + 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, + 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab, + 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7, + 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, + 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2, + 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2, + 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, + 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919, + 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, + 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, + 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab, + 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04, + 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282, + 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2, + }, + { + 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f, + 0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a, + 0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff, + 0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02, + 0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a, + 0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7, + 0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9, + 0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981, + 0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774, + 0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655, + 0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2, + 0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910, + 0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1, + 0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da, + 0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049, + 0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f, + 0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba, + 0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be, + 0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3, + 0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840, + 0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4, + 0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2, + 0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7, + 0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5, + 0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e, + 0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e, + 0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801, + 0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad, + 0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0, + 0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20, + 0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8, + 0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4, + }, + { + 0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac, + 0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138, + 0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367, + 0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98, + 0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072, + 0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3, + 0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd, + 0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8, + 0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9, + 0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54, + 0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387, + 0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc, + 0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf, + 0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf, + 0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f, + 0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289, + 0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950, + 0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f, + 0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b, + 0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be, + 0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13, + 0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976, + 0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0, + 0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891, + 0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da, + 0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc, + 0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084, + 0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25, + 0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121, + 0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5, + 0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd, + 0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f, + }, + { + 0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f, + 0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de, + 0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43, + 0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19, + 0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2, + 0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516, + 0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88, + 0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816, + 0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756, + 0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a, + 0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264, + 0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688, + 0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28, + 0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3, + 0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7, + 0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06, + 0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033, + 0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a, + 0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566, + 0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509, + 0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962, + 0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e, + 0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c, + 0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c, + 0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285, + 0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301, + 0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be, + 0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767, + 0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647, + 0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914, + 0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c, + 0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3, + }, + { + 0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5, + 0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc, + 0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd, + 0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d, + 0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2, + 0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862, + 0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc, + 0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c, + 0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e, + 0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039, + 0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8, + 0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42, + 0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5, + 0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472, + 0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225, + 0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c, + 0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb, + 0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054, + 0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70, + 0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc, + 0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c, + 0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3, + 0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4, + 0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101, + 0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f, + 0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e, + 0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a, + 0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c, + 0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384, + 0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c, + 0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82, + 0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e, + }, +} diff --git a/vendor/golang.org/x/crypto/cast5/cast5_test.go b/vendor/golang.org/x/crypto/cast5/cast5_test.go new file mode 100644 index 00000000..778b272a --- /dev/null +++ b/vendor/golang.org/x/crypto/cast5/cast5_test.go @@ -0,0 +1,106 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cast5 + +import ( + "bytes" + "encoding/hex" + "testing" +) + +// This test vector is taken from RFC 2144, App B.1. +// Since the other two test vectors are for reduced-round variants, we can't +// use them. +var basicTests = []struct { + key, plainText, cipherText string +}{ + { + "0123456712345678234567893456789a", + "0123456789abcdef", + "238b4fe5847e44b2", + }, +} + +func TestBasic(t *testing.T) { + for i, test := range basicTests { + key, _ := hex.DecodeString(test.key) + plainText, _ := hex.DecodeString(test.plainText) + expected, _ := hex.DecodeString(test.cipherText) + + c, err := NewCipher(key) + if err != nil { + t.Errorf("#%d: failed to create Cipher: %s", i, err) + continue + } + var cipherText [BlockSize]byte + c.Encrypt(cipherText[:], plainText) + if !bytes.Equal(cipherText[:], expected) { + t.Errorf("#%d: got:%x want:%x", i, cipherText, expected) + } + + var plainTextAgain [BlockSize]byte + c.Decrypt(plainTextAgain[:], cipherText[:]) + if !bytes.Equal(plainTextAgain[:], plainText) { + t.Errorf("#%d: got:%x want:%x", i, plainTextAgain, plainText) + } + } +} + +// TestFull performs the test specified in RFC 2144, App B.2. +// However, due to the length of time taken, it's disabled here and a more +// limited version is included, below. +func TestFull(t *testing.T) { + if testing.Short() { + // This is too slow for normal testing + return + } + + a, b := iterate(1000000) + + const expectedA = "eea9d0a249fd3ba6b3436fb89d6dca92" + const expectedB = "b2c95eb00c31ad7180ac05b8e83d696e" + + if hex.EncodeToString(a) != expectedA { + t.Errorf("a: got:%x want:%s", a, expectedA) + } + if hex.EncodeToString(b) != expectedB { + t.Errorf("b: got:%x want:%s", b, expectedB) + } +} + +func iterate(iterations int) ([]byte, []byte) { + const initValueHex = "0123456712345678234567893456789a" + + initValue, _ := hex.DecodeString(initValueHex) + + var a, b [16]byte + copy(a[:], initValue) + copy(b[:], initValue) + + for i := 0; i < iterations; i++ { + c, _ := NewCipher(b[:]) + c.Encrypt(a[:8], a[:8]) + c.Encrypt(a[8:], a[8:]) + c, _ = NewCipher(a[:]) + c.Encrypt(b[:8], b[:8]) + c.Encrypt(b[8:], b[8:]) + } + + return a[:], b[:] +} + +func TestLimited(t *testing.T) { + a, b := iterate(1000) + + const expectedA = "23f73b14b02a2ad7dfb9f2c35644798d" + const expectedB = "e5bf37eff14c456a40b21ce369370a9f" + + if hex.EncodeToString(a) != expectedA { + t.Errorf("a: got:%x want:%s", a, expectedA) + } + if hex.EncodeToString(b) != expectedB { + t.Errorf("b: got:%x want:%s", b, expectedB) + } +} diff --git a/vendor/golang.org/x/crypto/codereview.cfg b/vendor/golang.org/x/crypto/codereview.cfg new file mode 100644 index 00000000..3f8b14b6 --- /dev/null +++ b/vendor/golang.org/x/crypto/codereview.cfg @@ -0,0 +1 @@ +issuerepo: golang/go diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.s b/vendor/golang.org/x/crypto/curve25519/const_amd64.s new file mode 100644 index 00000000..797f9b05 --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/const_amd64.s @@ -0,0 +1,20 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +DATA ·REDMASK51(SB)/8, $0x0007FFFFFFFFFFFF +GLOBL ·REDMASK51(SB), 8, $8 + +DATA ·_121666_213(SB)/8, $996687872 +GLOBL ·_121666_213(SB), 8, $8 + +DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA +GLOBL ·_2P0(SB), 8, $8 + +DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE +GLOBL ·_2P1234(SB), 8, $8 diff --git a/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s b/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s new file mode 100644 index 00000000..45484d1b --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s @@ -0,0 +1,88 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +// func cswap(inout *[5]uint64, v uint64) +TEXT ·cswap(SB),7,$0 + MOVQ inout+0(FP),DI + MOVQ v+8(FP),SI + + CMPQ SI,$1 + MOVQ 0(DI),SI + MOVQ 80(DI),DX + MOVQ 8(DI),CX + MOVQ 88(DI),R8 + MOVQ SI,R9 + CMOVQEQ DX,SI + CMOVQEQ R9,DX + MOVQ CX,R9 + CMOVQEQ R8,CX + CMOVQEQ R9,R8 + MOVQ SI,0(DI) + MOVQ DX,80(DI) + MOVQ CX,8(DI) + MOVQ R8,88(DI) + MOVQ 16(DI),SI + MOVQ 96(DI),DX + MOVQ 24(DI),CX + MOVQ 104(DI),R8 + MOVQ SI,R9 + CMOVQEQ DX,SI + CMOVQEQ R9,DX + MOVQ CX,R9 + CMOVQEQ R8,CX + CMOVQEQ R9,R8 + MOVQ SI,16(DI) + MOVQ DX,96(DI) + MOVQ CX,24(DI) + MOVQ R8,104(DI) + MOVQ 32(DI),SI + MOVQ 112(DI),DX + MOVQ 40(DI),CX + MOVQ 120(DI),R8 + MOVQ SI,R9 + CMOVQEQ DX,SI + CMOVQEQ R9,DX + MOVQ CX,R9 + CMOVQEQ R8,CX + CMOVQEQ R9,R8 + MOVQ SI,32(DI) + MOVQ DX,112(DI) + MOVQ CX,40(DI) + MOVQ R8,120(DI) + MOVQ 48(DI),SI + MOVQ 128(DI),DX + MOVQ 56(DI),CX + MOVQ 136(DI),R8 + MOVQ SI,R9 + CMOVQEQ DX,SI + CMOVQEQ R9,DX + MOVQ CX,R9 + CMOVQEQ R8,CX + CMOVQEQ R9,R8 + MOVQ SI,48(DI) + MOVQ DX,128(DI) + MOVQ CX,56(DI) + MOVQ R8,136(DI) + MOVQ 64(DI),SI + MOVQ 144(DI),DX + MOVQ 72(DI),CX + MOVQ 152(DI),R8 + MOVQ SI,R9 + CMOVQEQ DX,SI + CMOVQEQ R9,DX + MOVQ CX,R9 + CMOVQEQ R8,CX + CMOVQEQ R9,R8 + MOVQ SI,64(DI) + MOVQ DX,144(DI) + MOVQ CX,72(DI) + MOVQ R8,152(DI) + MOVQ DI,AX + MOVQ SI,DX + RET diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go new file mode 100644 index 00000000..6918c47f --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go @@ -0,0 +1,841 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// We have a implementation in amd64 assembly so this code is only run on +// non-amd64 platforms. The amd64 assembly does not support gccgo. +// +build !amd64 gccgo appengine + +package curve25519 + +// This code is a port of the public domain, "ref10" implementation of +// curve25519 from SUPERCOP 20130419 by D. J. Bernstein. + +// fieldElement represents an element of the field GF(2^255 - 19). An element +// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 +// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on +// context. +type fieldElement [10]int32 + +func feZero(fe *fieldElement) { + for i := range fe { + fe[i] = 0 + } +} + +func feOne(fe *fieldElement) { + feZero(fe) + fe[0] = 1 +} + +func feAdd(dst, a, b *fieldElement) { + for i := range dst { + dst[i] = a[i] + b[i] + } +} + +func feSub(dst, a, b *fieldElement) { + for i := range dst { + dst[i] = a[i] - b[i] + } +} + +func feCopy(dst, src *fieldElement) { + for i := range dst { + dst[i] = src[i] + } +} + +// feCSwap replaces (f,g) with (g,f) if b == 1; replaces (f,g) with (f,g) if b == 0. +// +// Preconditions: b in {0,1}. +func feCSwap(f, g *fieldElement, b int32) { + var x fieldElement + b = -b + for i := range x { + x[i] = b & (f[i] ^ g[i]) + } + + for i := range f { + f[i] ^= x[i] + } + for i := range g { + g[i] ^= x[i] + } +} + +// load3 reads a 24-bit, little-endian value from in. +func load3(in []byte) int64 { + var r int64 + r = int64(in[0]) + r |= int64(in[1]) << 8 + r |= int64(in[2]) << 16 + return r +} + +// load4 reads a 32-bit, little-endian value from in. +func load4(in []byte) int64 { + var r int64 + r = int64(in[0]) + r |= int64(in[1]) << 8 + r |= int64(in[2]) << 16 + r |= int64(in[3]) << 24 + return r +} + +func feFromBytes(dst *fieldElement, src *[32]byte) { + h0 := load4(src[:]) + h1 := load3(src[4:]) << 6 + h2 := load3(src[7:]) << 5 + h3 := load3(src[10:]) << 3 + h4 := load3(src[13:]) << 2 + h5 := load4(src[16:]) + h6 := load3(src[20:]) << 7 + h7 := load3(src[23:]) << 5 + h8 := load3(src[26:]) << 4 + h9 := load3(src[29:]) << 2 + + var carry [10]int64 + carry[9] = (h9 + 1<<24) >> 25 + h0 += carry[9] * 19 + h9 -= carry[9] << 25 + carry[1] = (h1 + 1<<24) >> 25 + h2 += carry[1] + h1 -= carry[1] << 25 + carry[3] = (h3 + 1<<24) >> 25 + h4 += carry[3] + h3 -= carry[3] << 25 + carry[5] = (h5 + 1<<24) >> 25 + h6 += carry[5] + h5 -= carry[5] << 25 + carry[7] = (h7 + 1<<24) >> 25 + h8 += carry[7] + h7 -= carry[7] << 25 + + carry[0] = (h0 + 1<<25) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + carry[2] = (h2 + 1<<25) >> 26 + h3 += carry[2] + h2 -= carry[2] << 26 + carry[4] = (h4 + 1<<25) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + carry[6] = (h6 + 1<<25) >> 26 + h7 += carry[6] + h6 -= carry[6] << 26 + carry[8] = (h8 + 1<<25) >> 26 + h9 += carry[8] + h8 -= carry[8] << 26 + + dst[0] = int32(h0) + dst[1] = int32(h1) + dst[2] = int32(h2) + dst[3] = int32(h3) + dst[4] = int32(h4) + dst[5] = int32(h5) + dst[6] = int32(h6) + dst[7] = int32(h7) + dst[8] = int32(h8) + dst[9] = int32(h9) +} + +// feToBytes marshals h to s. +// Preconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +// +// Write p=2^255-19; q=floor(h/p). +// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). +// +// Proof: +// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. +// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4. +// +// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). +// Then 0> 25 + q = (h[0] + q) >> 26 + q = (h[1] + q) >> 25 + q = (h[2] + q) >> 26 + q = (h[3] + q) >> 25 + q = (h[4] + q) >> 26 + q = (h[5] + q) >> 25 + q = (h[6] + q) >> 26 + q = (h[7] + q) >> 25 + q = (h[8] + q) >> 26 + q = (h[9] + q) >> 25 + + // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. + h[0] += 19 * q + // Goal: Output h-2^255 q, which is between 0 and 2^255-20. + + carry[0] = h[0] >> 26 + h[1] += carry[0] + h[0] -= carry[0] << 26 + carry[1] = h[1] >> 25 + h[2] += carry[1] + h[1] -= carry[1] << 25 + carry[2] = h[2] >> 26 + h[3] += carry[2] + h[2] -= carry[2] << 26 + carry[3] = h[3] >> 25 + h[4] += carry[3] + h[3] -= carry[3] << 25 + carry[4] = h[4] >> 26 + h[5] += carry[4] + h[4] -= carry[4] << 26 + carry[5] = h[5] >> 25 + h[6] += carry[5] + h[5] -= carry[5] << 25 + carry[6] = h[6] >> 26 + h[7] += carry[6] + h[6] -= carry[6] << 26 + carry[7] = h[7] >> 25 + h[8] += carry[7] + h[7] -= carry[7] << 25 + carry[8] = h[8] >> 26 + h[9] += carry[8] + h[8] -= carry[8] << 26 + carry[9] = h[9] >> 25 + h[9] -= carry[9] << 25 + // h10 = carry9 + + // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. + // Have h[0]+...+2^230 h[9] between 0 and 2^255-1; + // evidently 2^255 h10-2^255 q = 0. + // Goal: Output h[0]+...+2^230 h[9]. + + s[0] = byte(h[0] >> 0) + s[1] = byte(h[0] >> 8) + s[2] = byte(h[0] >> 16) + s[3] = byte((h[0] >> 24) | (h[1] << 2)) + s[4] = byte(h[1] >> 6) + s[5] = byte(h[1] >> 14) + s[6] = byte((h[1] >> 22) | (h[2] << 3)) + s[7] = byte(h[2] >> 5) + s[8] = byte(h[2] >> 13) + s[9] = byte((h[2] >> 21) | (h[3] << 5)) + s[10] = byte(h[3] >> 3) + s[11] = byte(h[3] >> 11) + s[12] = byte((h[3] >> 19) | (h[4] << 6)) + s[13] = byte(h[4] >> 2) + s[14] = byte(h[4] >> 10) + s[15] = byte(h[4] >> 18) + s[16] = byte(h[5] >> 0) + s[17] = byte(h[5] >> 8) + s[18] = byte(h[5] >> 16) + s[19] = byte((h[5] >> 24) | (h[6] << 1)) + s[20] = byte(h[6] >> 7) + s[21] = byte(h[6] >> 15) + s[22] = byte((h[6] >> 23) | (h[7] << 3)) + s[23] = byte(h[7] >> 5) + s[24] = byte(h[7] >> 13) + s[25] = byte((h[7] >> 21) | (h[8] << 4)) + s[26] = byte(h[8] >> 4) + s[27] = byte(h[8] >> 12) + s[28] = byte((h[8] >> 20) | (h[9] << 6)) + s[29] = byte(h[9] >> 2) + s[30] = byte(h[9] >> 10) + s[31] = byte(h[9] >> 18) +} + +// feMul calculates h = f * g +// Can overlap h with f or g. +// +// Preconditions: +// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +// +// Notes on implementation strategy: +// +// Using schoolbook multiplication. +// Karatsuba would save a little in some cost models. +// +// Most multiplications by 2 and 19 are 32-bit precomputations; +// cheaper than 64-bit postcomputations. +// +// There is one remaining multiplication by 19 in the carry chain; +// one *19 precomputation can be merged into this, +// but the resulting data flow is considerably less clean. +// +// There are 12 carries below. +// 10 of them are 2-way parallelizable and vectorizable. +// Can get away with 11 carries, but then data flow is much deeper. +// +// With tighter constraints on inputs can squeeze carries into int32. +func feMul(h, f, g *fieldElement) { + f0 := f[0] + f1 := f[1] + f2 := f[2] + f3 := f[3] + f4 := f[4] + f5 := f[5] + f6 := f[6] + f7 := f[7] + f8 := f[8] + f9 := f[9] + g0 := g[0] + g1 := g[1] + g2 := g[2] + g3 := g[3] + g4 := g[4] + g5 := g[5] + g6 := g[6] + g7 := g[7] + g8 := g[8] + g9 := g[9] + g1_19 := 19 * g1 // 1.4*2^29 + g2_19 := 19 * g2 // 1.4*2^30; still ok + g3_19 := 19 * g3 + g4_19 := 19 * g4 + g5_19 := 19 * g5 + g6_19 := 19 * g6 + g7_19 := 19 * g7 + g8_19 := 19 * g8 + g9_19 := 19 * g9 + f1_2 := 2 * f1 + f3_2 := 2 * f3 + f5_2 := 2 * f5 + f7_2 := 2 * f7 + f9_2 := 2 * f9 + f0g0 := int64(f0) * int64(g0) + f0g1 := int64(f0) * int64(g1) + f0g2 := int64(f0) * int64(g2) + f0g3 := int64(f0) * int64(g3) + f0g4 := int64(f0) * int64(g4) + f0g5 := int64(f0) * int64(g5) + f0g6 := int64(f0) * int64(g6) + f0g7 := int64(f0) * int64(g7) + f0g8 := int64(f0) * int64(g8) + f0g9 := int64(f0) * int64(g9) + f1g0 := int64(f1) * int64(g0) + f1g1_2 := int64(f1_2) * int64(g1) + f1g2 := int64(f1) * int64(g2) + f1g3_2 := int64(f1_2) * int64(g3) + f1g4 := int64(f1) * int64(g4) + f1g5_2 := int64(f1_2) * int64(g5) + f1g6 := int64(f1) * int64(g6) + f1g7_2 := int64(f1_2) * int64(g7) + f1g8 := int64(f1) * int64(g8) + f1g9_38 := int64(f1_2) * int64(g9_19) + f2g0 := int64(f2) * int64(g0) + f2g1 := int64(f2) * int64(g1) + f2g2 := int64(f2) * int64(g2) + f2g3 := int64(f2) * int64(g3) + f2g4 := int64(f2) * int64(g4) + f2g5 := int64(f2) * int64(g5) + f2g6 := int64(f2) * int64(g6) + f2g7 := int64(f2) * int64(g7) + f2g8_19 := int64(f2) * int64(g8_19) + f2g9_19 := int64(f2) * int64(g9_19) + f3g0 := int64(f3) * int64(g0) + f3g1_2 := int64(f3_2) * int64(g1) + f3g2 := int64(f3) * int64(g2) + f3g3_2 := int64(f3_2) * int64(g3) + f3g4 := int64(f3) * int64(g4) + f3g5_2 := int64(f3_2) * int64(g5) + f3g6 := int64(f3) * int64(g6) + f3g7_38 := int64(f3_2) * int64(g7_19) + f3g8_19 := int64(f3) * int64(g8_19) + f3g9_38 := int64(f3_2) * int64(g9_19) + f4g0 := int64(f4) * int64(g0) + f4g1 := int64(f4) * int64(g1) + f4g2 := int64(f4) * int64(g2) + f4g3 := int64(f4) * int64(g3) + f4g4 := int64(f4) * int64(g4) + f4g5 := int64(f4) * int64(g5) + f4g6_19 := int64(f4) * int64(g6_19) + f4g7_19 := int64(f4) * int64(g7_19) + f4g8_19 := int64(f4) * int64(g8_19) + f4g9_19 := int64(f4) * int64(g9_19) + f5g0 := int64(f5) * int64(g0) + f5g1_2 := int64(f5_2) * int64(g1) + f5g2 := int64(f5) * int64(g2) + f5g3_2 := int64(f5_2) * int64(g3) + f5g4 := int64(f5) * int64(g4) + f5g5_38 := int64(f5_2) * int64(g5_19) + f5g6_19 := int64(f5) * int64(g6_19) + f5g7_38 := int64(f5_2) * int64(g7_19) + f5g8_19 := int64(f5) * int64(g8_19) + f5g9_38 := int64(f5_2) * int64(g9_19) + f6g0 := int64(f6) * int64(g0) + f6g1 := int64(f6) * int64(g1) + f6g2 := int64(f6) * int64(g2) + f6g3 := int64(f6) * int64(g3) + f6g4_19 := int64(f6) * int64(g4_19) + f6g5_19 := int64(f6) * int64(g5_19) + f6g6_19 := int64(f6) * int64(g6_19) + f6g7_19 := int64(f6) * int64(g7_19) + f6g8_19 := int64(f6) * int64(g8_19) + f6g9_19 := int64(f6) * int64(g9_19) + f7g0 := int64(f7) * int64(g0) + f7g1_2 := int64(f7_2) * int64(g1) + f7g2 := int64(f7) * int64(g2) + f7g3_38 := int64(f7_2) * int64(g3_19) + f7g4_19 := int64(f7) * int64(g4_19) + f7g5_38 := int64(f7_2) * int64(g5_19) + f7g6_19 := int64(f7) * int64(g6_19) + f7g7_38 := int64(f7_2) * int64(g7_19) + f7g8_19 := int64(f7) * int64(g8_19) + f7g9_38 := int64(f7_2) * int64(g9_19) + f8g0 := int64(f8) * int64(g0) + f8g1 := int64(f8) * int64(g1) + f8g2_19 := int64(f8) * int64(g2_19) + f8g3_19 := int64(f8) * int64(g3_19) + f8g4_19 := int64(f8) * int64(g4_19) + f8g5_19 := int64(f8) * int64(g5_19) + f8g6_19 := int64(f8) * int64(g6_19) + f8g7_19 := int64(f8) * int64(g7_19) + f8g8_19 := int64(f8) * int64(g8_19) + f8g9_19 := int64(f8) * int64(g9_19) + f9g0 := int64(f9) * int64(g0) + f9g1_38 := int64(f9_2) * int64(g1_19) + f9g2_19 := int64(f9) * int64(g2_19) + f9g3_38 := int64(f9_2) * int64(g3_19) + f9g4_19 := int64(f9) * int64(g4_19) + f9g5_38 := int64(f9_2) * int64(g5_19) + f9g6_19 := int64(f9) * int64(g6_19) + f9g7_38 := int64(f9_2) * int64(g7_19) + f9g8_19 := int64(f9) * int64(g8_19) + f9g9_38 := int64(f9_2) * int64(g9_19) + h0 := f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38 + h1 := f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19 + h2 := f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38 + h3 := f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19 + h4 := f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38 + h5 := f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19 + h6 := f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38 + h7 := f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19 + h8 := f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38 + h9 := f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 + var carry [10]int64 + + // |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38)) + // i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8 + // |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19)) + // i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9 + + carry[0] = (h0 + (1 << 25)) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + carry[4] = (h4 + (1 << 25)) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + // |h0| <= 2^25 + // |h4| <= 2^25 + // |h1| <= 1.51*2^58 + // |h5| <= 1.51*2^58 + + carry[1] = (h1 + (1 << 24)) >> 25 + h2 += carry[1] + h1 -= carry[1] << 25 + carry[5] = (h5 + (1 << 24)) >> 25 + h6 += carry[5] + h5 -= carry[5] << 25 + // |h1| <= 2^24; from now on fits into int32 + // |h5| <= 2^24; from now on fits into int32 + // |h2| <= 1.21*2^59 + // |h6| <= 1.21*2^59 + + carry[2] = (h2 + (1 << 25)) >> 26 + h3 += carry[2] + h2 -= carry[2] << 26 + carry[6] = (h6 + (1 << 25)) >> 26 + h7 += carry[6] + h6 -= carry[6] << 26 + // |h2| <= 2^25; from now on fits into int32 unchanged + // |h6| <= 2^25; from now on fits into int32 unchanged + // |h3| <= 1.51*2^58 + // |h7| <= 1.51*2^58 + + carry[3] = (h3 + (1 << 24)) >> 25 + h4 += carry[3] + h3 -= carry[3] << 25 + carry[7] = (h7 + (1 << 24)) >> 25 + h8 += carry[7] + h7 -= carry[7] << 25 + // |h3| <= 2^24; from now on fits into int32 unchanged + // |h7| <= 2^24; from now on fits into int32 unchanged + // |h4| <= 1.52*2^33 + // |h8| <= 1.52*2^33 + + carry[4] = (h4 + (1 << 25)) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + carry[8] = (h8 + (1 << 25)) >> 26 + h9 += carry[8] + h8 -= carry[8] << 26 + // |h4| <= 2^25; from now on fits into int32 unchanged + // |h8| <= 2^25; from now on fits into int32 unchanged + // |h5| <= 1.01*2^24 + // |h9| <= 1.51*2^58 + + carry[9] = (h9 + (1 << 24)) >> 25 + h0 += carry[9] * 19 + h9 -= carry[9] << 25 + // |h9| <= 2^24; from now on fits into int32 unchanged + // |h0| <= 1.8*2^37 + + carry[0] = (h0 + (1 << 25)) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + // |h0| <= 2^25; from now on fits into int32 unchanged + // |h1| <= 1.01*2^24 + + h[0] = int32(h0) + h[1] = int32(h1) + h[2] = int32(h2) + h[3] = int32(h3) + h[4] = int32(h4) + h[5] = int32(h5) + h[6] = int32(h6) + h[7] = int32(h7) + h[8] = int32(h8) + h[9] = int32(h9) +} + +// feSquare calculates h = f*f. Can overlap h with f. +// +// Preconditions: +// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +func feSquare(h, f *fieldElement) { + f0 := f[0] + f1 := f[1] + f2 := f[2] + f3 := f[3] + f4 := f[4] + f5 := f[5] + f6 := f[6] + f7 := f[7] + f8 := f[8] + f9 := f[9] + f0_2 := 2 * f0 + f1_2 := 2 * f1 + f2_2 := 2 * f2 + f3_2 := 2 * f3 + f4_2 := 2 * f4 + f5_2 := 2 * f5 + f6_2 := 2 * f6 + f7_2 := 2 * f7 + f5_38 := 38 * f5 // 1.31*2^30 + f6_19 := 19 * f6 // 1.31*2^30 + f7_38 := 38 * f7 // 1.31*2^30 + f8_19 := 19 * f8 // 1.31*2^30 + f9_38 := 38 * f9 // 1.31*2^30 + f0f0 := int64(f0) * int64(f0) + f0f1_2 := int64(f0_2) * int64(f1) + f0f2_2 := int64(f0_2) * int64(f2) + f0f3_2 := int64(f0_2) * int64(f3) + f0f4_2 := int64(f0_2) * int64(f4) + f0f5_2 := int64(f0_2) * int64(f5) + f0f6_2 := int64(f0_2) * int64(f6) + f0f7_2 := int64(f0_2) * int64(f7) + f0f8_2 := int64(f0_2) * int64(f8) + f0f9_2 := int64(f0_2) * int64(f9) + f1f1_2 := int64(f1_2) * int64(f1) + f1f2_2 := int64(f1_2) * int64(f2) + f1f3_4 := int64(f1_2) * int64(f3_2) + f1f4_2 := int64(f1_2) * int64(f4) + f1f5_4 := int64(f1_2) * int64(f5_2) + f1f6_2 := int64(f1_2) * int64(f6) + f1f7_4 := int64(f1_2) * int64(f7_2) + f1f8_2 := int64(f1_2) * int64(f8) + f1f9_76 := int64(f1_2) * int64(f9_38) + f2f2 := int64(f2) * int64(f2) + f2f3_2 := int64(f2_2) * int64(f3) + f2f4_2 := int64(f2_2) * int64(f4) + f2f5_2 := int64(f2_2) * int64(f5) + f2f6_2 := int64(f2_2) * int64(f6) + f2f7_2 := int64(f2_2) * int64(f7) + f2f8_38 := int64(f2_2) * int64(f8_19) + f2f9_38 := int64(f2) * int64(f9_38) + f3f3_2 := int64(f3_2) * int64(f3) + f3f4_2 := int64(f3_2) * int64(f4) + f3f5_4 := int64(f3_2) * int64(f5_2) + f3f6_2 := int64(f3_2) * int64(f6) + f3f7_76 := int64(f3_2) * int64(f7_38) + f3f8_38 := int64(f3_2) * int64(f8_19) + f3f9_76 := int64(f3_2) * int64(f9_38) + f4f4 := int64(f4) * int64(f4) + f4f5_2 := int64(f4_2) * int64(f5) + f4f6_38 := int64(f4_2) * int64(f6_19) + f4f7_38 := int64(f4) * int64(f7_38) + f4f8_38 := int64(f4_2) * int64(f8_19) + f4f9_38 := int64(f4) * int64(f9_38) + f5f5_38 := int64(f5) * int64(f5_38) + f5f6_38 := int64(f5_2) * int64(f6_19) + f5f7_76 := int64(f5_2) * int64(f7_38) + f5f8_38 := int64(f5_2) * int64(f8_19) + f5f9_76 := int64(f5_2) * int64(f9_38) + f6f6_19 := int64(f6) * int64(f6_19) + f6f7_38 := int64(f6) * int64(f7_38) + f6f8_38 := int64(f6_2) * int64(f8_19) + f6f9_38 := int64(f6) * int64(f9_38) + f7f7_38 := int64(f7) * int64(f7_38) + f7f8_38 := int64(f7_2) * int64(f8_19) + f7f9_76 := int64(f7_2) * int64(f9_38) + f8f8_19 := int64(f8) * int64(f8_19) + f8f9_38 := int64(f8) * int64(f9_38) + f9f9_38 := int64(f9) * int64(f9_38) + h0 := f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38 + h1 := f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38 + h2 := f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19 + h3 := f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38 + h4 := f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38 + h5 := f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38 + h6 := f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19 + h7 := f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38 + h8 := f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38 + h9 := f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2 + var carry [10]int64 + + carry[0] = (h0 + (1 << 25)) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + carry[4] = (h4 + (1 << 25)) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + + carry[1] = (h1 + (1 << 24)) >> 25 + h2 += carry[1] + h1 -= carry[1] << 25 + carry[5] = (h5 + (1 << 24)) >> 25 + h6 += carry[5] + h5 -= carry[5] << 25 + + carry[2] = (h2 + (1 << 25)) >> 26 + h3 += carry[2] + h2 -= carry[2] << 26 + carry[6] = (h6 + (1 << 25)) >> 26 + h7 += carry[6] + h6 -= carry[6] << 26 + + carry[3] = (h3 + (1 << 24)) >> 25 + h4 += carry[3] + h3 -= carry[3] << 25 + carry[7] = (h7 + (1 << 24)) >> 25 + h8 += carry[7] + h7 -= carry[7] << 25 + + carry[4] = (h4 + (1 << 25)) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + carry[8] = (h8 + (1 << 25)) >> 26 + h9 += carry[8] + h8 -= carry[8] << 26 + + carry[9] = (h9 + (1 << 24)) >> 25 + h0 += carry[9] * 19 + h9 -= carry[9] << 25 + + carry[0] = (h0 + (1 << 25)) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + + h[0] = int32(h0) + h[1] = int32(h1) + h[2] = int32(h2) + h[3] = int32(h3) + h[4] = int32(h4) + h[5] = int32(h5) + h[6] = int32(h6) + h[7] = int32(h7) + h[8] = int32(h8) + h[9] = int32(h9) +} + +// feMul121666 calculates h = f * 121666. Can overlap h with f. +// +// Preconditions: +// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +func feMul121666(h, f *fieldElement) { + h0 := int64(f[0]) * 121666 + h1 := int64(f[1]) * 121666 + h2 := int64(f[2]) * 121666 + h3 := int64(f[3]) * 121666 + h4 := int64(f[4]) * 121666 + h5 := int64(f[5]) * 121666 + h6 := int64(f[6]) * 121666 + h7 := int64(f[7]) * 121666 + h8 := int64(f[8]) * 121666 + h9 := int64(f[9]) * 121666 + var carry [10]int64 + + carry[9] = (h9 + (1 << 24)) >> 25 + h0 += carry[9] * 19 + h9 -= carry[9] << 25 + carry[1] = (h1 + (1 << 24)) >> 25 + h2 += carry[1] + h1 -= carry[1] << 25 + carry[3] = (h3 + (1 << 24)) >> 25 + h4 += carry[3] + h3 -= carry[3] << 25 + carry[5] = (h5 + (1 << 24)) >> 25 + h6 += carry[5] + h5 -= carry[5] << 25 + carry[7] = (h7 + (1 << 24)) >> 25 + h8 += carry[7] + h7 -= carry[7] << 25 + + carry[0] = (h0 + (1 << 25)) >> 26 + h1 += carry[0] + h0 -= carry[0] << 26 + carry[2] = (h2 + (1 << 25)) >> 26 + h3 += carry[2] + h2 -= carry[2] << 26 + carry[4] = (h4 + (1 << 25)) >> 26 + h5 += carry[4] + h4 -= carry[4] << 26 + carry[6] = (h6 + (1 << 25)) >> 26 + h7 += carry[6] + h6 -= carry[6] << 26 + carry[8] = (h8 + (1 << 25)) >> 26 + h9 += carry[8] + h8 -= carry[8] << 26 + + h[0] = int32(h0) + h[1] = int32(h1) + h[2] = int32(h2) + h[3] = int32(h3) + h[4] = int32(h4) + h[5] = int32(h5) + h[6] = int32(h6) + h[7] = int32(h7) + h[8] = int32(h8) + h[9] = int32(h9) +} + +// feInvert sets out = z^-1. +func feInvert(out, z *fieldElement) { + var t0, t1, t2, t3 fieldElement + var i int + + feSquare(&t0, z) + for i = 1; i < 1; i++ { + feSquare(&t0, &t0) + } + feSquare(&t1, &t0) + for i = 1; i < 2; i++ { + feSquare(&t1, &t1) + } + feMul(&t1, z, &t1) + feMul(&t0, &t0, &t1) + feSquare(&t2, &t0) + for i = 1; i < 1; i++ { + feSquare(&t2, &t2) + } + feMul(&t1, &t1, &t2) + feSquare(&t2, &t1) + for i = 1; i < 5; i++ { + feSquare(&t2, &t2) + } + feMul(&t1, &t2, &t1) + feSquare(&t2, &t1) + for i = 1; i < 10; i++ { + feSquare(&t2, &t2) + } + feMul(&t2, &t2, &t1) + feSquare(&t3, &t2) + for i = 1; i < 20; i++ { + feSquare(&t3, &t3) + } + feMul(&t2, &t3, &t2) + feSquare(&t2, &t2) + for i = 1; i < 10; i++ { + feSquare(&t2, &t2) + } + feMul(&t1, &t2, &t1) + feSquare(&t2, &t1) + for i = 1; i < 50; i++ { + feSquare(&t2, &t2) + } + feMul(&t2, &t2, &t1) + feSquare(&t3, &t2) + for i = 1; i < 100; i++ { + feSquare(&t3, &t3) + } + feMul(&t2, &t3, &t2) + feSquare(&t2, &t2) + for i = 1; i < 50; i++ { + feSquare(&t2, &t2) + } + feMul(&t1, &t2, &t1) + feSquare(&t1, &t1) + for i = 1; i < 5; i++ { + feSquare(&t1, &t1) + } + feMul(out, &t1, &t0) +} + +func scalarMult(out, in, base *[32]byte) { + var e [32]byte + + copy(e[:], in[:]) + e[0] &= 248 + e[31] &= 127 + e[31] |= 64 + + var x1, x2, z2, x3, z3, tmp0, tmp1 fieldElement + feFromBytes(&x1, base) + feOne(&x2) + feCopy(&x3, &x1) + feOne(&z3) + + swap := int32(0) + for pos := 254; pos >= 0; pos-- { + b := e[pos/8] >> uint(pos&7) + b &= 1 + swap ^= int32(b) + feCSwap(&x2, &x3, swap) + feCSwap(&z2, &z3, swap) + swap = int32(b) + + feSub(&tmp0, &x3, &z3) + feSub(&tmp1, &x2, &z2) + feAdd(&x2, &x2, &z2) + feAdd(&z2, &x3, &z3) + feMul(&z3, &tmp0, &x2) + feMul(&z2, &z2, &tmp1) + feSquare(&tmp0, &tmp1) + feSquare(&tmp1, &x2) + feAdd(&x3, &z3, &z2) + feSub(&z2, &z3, &z2) + feMul(&x2, &tmp1, &tmp0) + feSub(&tmp1, &tmp1, &tmp0) + feSquare(&z2, &z2) + feMul121666(&z3, &tmp1) + feSquare(&x3, &x3) + feAdd(&tmp0, &tmp0, &z3) + feMul(&z3, &x1, &z2) + feMul(&z2, &tmp1, &tmp0) + } + + feCSwap(&x2, &x3, swap) + feCSwap(&z2, &z3, swap) + + feInvert(&z2, &z2) + feMul(&x2, &x2, &z2) + feToBytes(out, &x2) +} diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519_test.go b/vendor/golang.org/x/crypto/curve25519/curve25519_test.go new file mode 100644 index 00000000..14b0ee87 --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/curve25519_test.go @@ -0,0 +1,29 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package curve25519 + +import ( + "fmt" + "testing" +) + +const expectedHex = "89161fde887b2b53de549af483940106ecc114d6982daa98256de23bdf77661a" + +func TestBaseScalarMult(t *testing.T) { + var a, b [32]byte + in := &a + out := &b + a[0] = 1 + + for i := 0; i < 200; i++ { + ScalarBaseMult(out, in) + in, out = out, in + } + + result := fmt.Sprintf("%x", in[:]) + if result != expectedHex { + t.Errorf("incorrect result: got %s, want %s", result, expectedHex) + } +} diff --git a/vendor/golang.org/x/crypto/curve25519/doc.go b/vendor/golang.org/x/crypto/curve25519/doc.go new file mode 100644 index 00000000..ebeea3c2 --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/doc.go @@ -0,0 +1,23 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package curve25519 provides an implementation of scalar multiplication on +// the elliptic curve known as curve25519. See http://cr.yp.to/ecdh.html +package curve25519 // import "golang.org/x/crypto/curve25519" + +// basePoint is the x coordinate of the generator of the curve. +var basePoint = [32]byte{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +// ScalarMult sets dst to the product in*base where dst and base are the x +// coordinates of group points and all values are in little-endian form. +func ScalarMult(dst, in, base *[32]byte) { + scalarMult(dst, in, base) +} + +// ScalarBaseMult sets dst to the product in*base where dst and base are the x +// coordinates of group points, base is the standard generator and all values +// are in little-endian form. +func ScalarBaseMult(dst, in *[32]byte) { + ScalarMult(dst, in, &basePoint) +} diff --git a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s new file mode 100644 index 00000000..37599fac --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s @@ -0,0 +1,94 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +// func freeze(inout *[5]uint64) +TEXT ·freeze(SB),7,$96-8 + MOVQ inout+0(FP), DI + + MOVQ SP,R11 + MOVQ $31,CX + NOTQ CX + ANDQ CX,SP + ADDQ $32,SP + + MOVQ R11,0(SP) + MOVQ R12,8(SP) + MOVQ R13,16(SP) + MOVQ R14,24(SP) + MOVQ R15,32(SP) + MOVQ BX,40(SP) + MOVQ BP,48(SP) + MOVQ 0(DI),SI + MOVQ 8(DI),DX + MOVQ 16(DI),CX + MOVQ 24(DI),R8 + MOVQ 32(DI),R9 + MOVQ ·REDMASK51(SB),AX + MOVQ AX,R10 + SUBQ $18,R10 + MOVQ $3,R11 +REDUCELOOP: + MOVQ SI,R12 + SHRQ $51,R12 + ANDQ AX,SI + ADDQ R12,DX + MOVQ DX,R12 + SHRQ $51,R12 + ANDQ AX,DX + ADDQ R12,CX + MOVQ CX,R12 + SHRQ $51,R12 + ANDQ AX,CX + ADDQ R12,R8 + MOVQ R8,R12 + SHRQ $51,R12 + ANDQ AX,R8 + ADDQ R12,R9 + MOVQ R9,R12 + SHRQ $51,R12 + ANDQ AX,R9 + IMUL3Q $19,R12,R12 + ADDQ R12,SI + SUBQ $1,R11 + JA REDUCELOOP + MOVQ $1,R12 + CMPQ R10,SI + CMOVQLT R11,R12 + CMPQ AX,DX + CMOVQNE R11,R12 + CMPQ AX,CX + CMOVQNE R11,R12 + CMPQ AX,R8 + CMOVQNE R11,R12 + CMPQ AX,R9 + CMOVQNE R11,R12 + NEGQ R12 + ANDQ R12,AX + ANDQ R12,R10 + SUBQ R10,SI + SUBQ AX,DX + SUBQ AX,CX + SUBQ AX,R8 + SUBQ AX,R9 + MOVQ SI,0(DI) + MOVQ DX,8(DI) + MOVQ CX,16(DI) + MOVQ R8,24(DI) + MOVQ R9,32(DI) + MOVQ 0(SP),R11 + MOVQ 8(SP),R12 + MOVQ 16(SP),R13 + MOVQ 24(SP),R14 + MOVQ 32(SP),R15 + MOVQ 40(SP),BX + MOVQ 48(SP),BP + MOVQ R11,SP + MOVQ DI,AX + MOVQ SI,DX + RET diff --git a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s new file mode 100644 index 00000000..3949f9cf --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s @@ -0,0 +1,1398 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +// func ladderstep(inout *[5][5]uint64) +TEXT ·ladderstep(SB),0,$384-8 + MOVQ inout+0(FP),DI + + MOVQ SP,R11 + MOVQ $31,CX + NOTQ CX + ANDQ CX,SP + ADDQ $32,SP + + MOVQ R11,0(SP) + MOVQ R12,8(SP) + MOVQ R13,16(SP) + MOVQ R14,24(SP) + MOVQ R15,32(SP) + MOVQ BX,40(SP) + MOVQ BP,48(SP) + MOVQ 40(DI),SI + MOVQ 48(DI),DX + MOVQ 56(DI),CX + MOVQ 64(DI),R8 + MOVQ 72(DI),R9 + MOVQ SI,AX + MOVQ DX,R10 + MOVQ CX,R11 + MOVQ R8,R12 + MOVQ R9,R13 + ADDQ ·_2P0(SB),AX + ADDQ ·_2P1234(SB),R10 + ADDQ ·_2P1234(SB),R11 + ADDQ ·_2P1234(SB),R12 + ADDQ ·_2P1234(SB),R13 + ADDQ 80(DI),SI + ADDQ 88(DI),DX + ADDQ 96(DI),CX + ADDQ 104(DI),R8 + ADDQ 112(DI),R9 + SUBQ 80(DI),AX + SUBQ 88(DI),R10 + SUBQ 96(DI),R11 + SUBQ 104(DI),R12 + SUBQ 112(DI),R13 + MOVQ SI,56(SP) + MOVQ DX,64(SP) + MOVQ CX,72(SP) + MOVQ R8,80(SP) + MOVQ R9,88(SP) + MOVQ AX,96(SP) + MOVQ R10,104(SP) + MOVQ R11,112(SP) + MOVQ R12,120(SP) + MOVQ R13,128(SP) + MOVQ 96(SP),AX + MULQ 96(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 96(SP),AX + SHLQ $1,AX + MULQ 104(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 96(SP),AX + SHLQ $1,AX + MULQ 112(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 96(SP),AX + SHLQ $1,AX + MULQ 120(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 96(SP),AX + SHLQ $1,AX + MULQ 128(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 104(SP),AX + MULQ 104(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 104(SP),AX + SHLQ $1,AX + MULQ 112(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 104(SP),AX + SHLQ $1,AX + MULQ 120(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 104(SP),DX + IMUL3Q $38,DX,AX + MULQ 128(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 112(SP),AX + MULQ 112(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 112(SP),DX + IMUL3Q $38,DX,AX + MULQ 120(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 112(SP),DX + IMUL3Q $38,DX,AX + MULQ 128(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 120(SP),DX + IMUL3Q $19,DX,AX + MULQ 120(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 120(SP),DX + IMUL3Q $38,DX,AX + MULQ 128(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 128(SP),DX + IMUL3Q $19,DX,AX + MULQ 128(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + ANDQ DX,SI + MOVQ CX,R8 + SHRQ $51,CX + ADDQ R10,CX + ANDQ DX,R8 + MOVQ CX,R9 + SHRQ $51,CX + ADDQ R12,CX + ANDQ DX,R9 + MOVQ CX,AX + SHRQ $51,CX + ADDQ R14,CX + ANDQ DX,AX + MOVQ CX,R10 + SHRQ $51,CX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,136(SP) + MOVQ R8,144(SP) + MOVQ R9,152(SP) + MOVQ AX,160(SP) + MOVQ R10,168(SP) + MOVQ 56(SP),AX + MULQ 56(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 56(SP),AX + SHLQ $1,AX + MULQ 64(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 56(SP),AX + SHLQ $1,AX + MULQ 72(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 56(SP),AX + SHLQ $1,AX + MULQ 80(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 56(SP),AX + SHLQ $1,AX + MULQ 88(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 64(SP),AX + MULQ 64(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 64(SP),AX + SHLQ $1,AX + MULQ 72(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 64(SP),AX + SHLQ $1,AX + MULQ 80(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 64(SP),DX + IMUL3Q $38,DX,AX + MULQ 88(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 72(SP),AX + MULQ 72(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 72(SP),DX + IMUL3Q $38,DX,AX + MULQ 80(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 72(SP),DX + IMUL3Q $38,DX,AX + MULQ 88(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 80(SP),DX + IMUL3Q $19,DX,AX + MULQ 80(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 80(SP),DX + IMUL3Q $38,DX,AX + MULQ 88(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 88(SP),DX + IMUL3Q $19,DX,AX + MULQ 88(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + ANDQ DX,SI + MOVQ CX,R8 + SHRQ $51,CX + ADDQ R10,CX + ANDQ DX,R8 + MOVQ CX,R9 + SHRQ $51,CX + ADDQ R12,CX + ANDQ DX,R9 + MOVQ CX,AX + SHRQ $51,CX + ADDQ R14,CX + ANDQ DX,AX + MOVQ CX,R10 + SHRQ $51,CX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,176(SP) + MOVQ R8,184(SP) + MOVQ R9,192(SP) + MOVQ AX,200(SP) + MOVQ R10,208(SP) + MOVQ SI,SI + MOVQ R8,DX + MOVQ R9,CX + MOVQ AX,R8 + MOVQ R10,R9 + ADDQ ·_2P0(SB),SI + ADDQ ·_2P1234(SB),DX + ADDQ ·_2P1234(SB),CX + ADDQ ·_2P1234(SB),R8 + ADDQ ·_2P1234(SB),R9 + SUBQ 136(SP),SI + SUBQ 144(SP),DX + SUBQ 152(SP),CX + SUBQ 160(SP),R8 + SUBQ 168(SP),R9 + MOVQ SI,216(SP) + MOVQ DX,224(SP) + MOVQ CX,232(SP) + MOVQ R8,240(SP) + MOVQ R9,248(SP) + MOVQ 120(DI),SI + MOVQ 128(DI),DX + MOVQ 136(DI),CX + MOVQ 144(DI),R8 + MOVQ 152(DI),R9 + MOVQ SI,AX + MOVQ DX,R10 + MOVQ CX,R11 + MOVQ R8,R12 + MOVQ R9,R13 + ADDQ ·_2P0(SB),AX + ADDQ ·_2P1234(SB),R10 + ADDQ ·_2P1234(SB),R11 + ADDQ ·_2P1234(SB),R12 + ADDQ ·_2P1234(SB),R13 + ADDQ 160(DI),SI + ADDQ 168(DI),DX + ADDQ 176(DI),CX + ADDQ 184(DI),R8 + ADDQ 192(DI),R9 + SUBQ 160(DI),AX + SUBQ 168(DI),R10 + SUBQ 176(DI),R11 + SUBQ 184(DI),R12 + SUBQ 192(DI),R13 + MOVQ SI,256(SP) + MOVQ DX,264(SP) + MOVQ CX,272(SP) + MOVQ R8,280(SP) + MOVQ R9,288(SP) + MOVQ AX,296(SP) + MOVQ R10,304(SP) + MOVQ R11,312(SP) + MOVQ R12,320(SP) + MOVQ R13,328(SP) + MOVQ 280(SP),SI + IMUL3Q $19,SI,AX + MOVQ AX,336(SP) + MULQ 112(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 288(SP),DX + IMUL3Q $19,DX,AX + MOVQ AX,344(SP) + MULQ 104(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 256(SP),AX + MULQ 96(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 256(SP),AX + MULQ 104(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 256(SP),AX + MULQ 112(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 256(SP),AX + MULQ 120(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 256(SP),AX + MULQ 128(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 264(SP),AX + MULQ 96(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 264(SP),AX + MULQ 104(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 264(SP),AX + MULQ 112(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 264(SP),AX + MULQ 120(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 264(SP),DX + IMUL3Q $19,DX,AX + MULQ 128(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 272(SP),AX + MULQ 96(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 272(SP),AX + MULQ 104(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 272(SP),AX + MULQ 112(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 272(SP),DX + IMUL3Q $19,DX,AX + MULQ 120(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 272(SP),DX + IMUL3Q $19,DX,AX + MULQ 128(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 280(SP),AX + MULQ 96(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 280(SP),AX + MULQ 104(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 336(SP),AX + MULQ 120(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 336(SP),AX + MULQ 128(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 288(SP),AX + MULQ 96(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 344(SP),AX + MULQ 112(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 344(SP),AX + MULQ 120(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 344(SP),AX + MULQ 128(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $51,CX + ANDQ DX,SI + ADDQ R10,CX + MOVQ CX,R9 + SHRQ $51,CX + ANDQ DX,R8 + ADDQ R12,CX + MOVQ CX,AX + SHRQ $51,CX + ANDQ DX,R9 + ADDQ R14,CX + MOVQ CX,R10 + SHRQ $51,CX + ANDQ DX,AX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,96(SP) + MOVQ R8,104(SP) + MOVQ R9,112(SP) + MOVQ AX,120(SP) + MOVQ R10,128(SP) + MOVQ 320(SP),SI + IMUL3Q $19,SI,AX + MOVQ AX,256(SP) + MULQ 72(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 328(SP),DX + IMUL3Q $19,DX,AX + MOVQ AX,264(SP) + MULQ 64(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 296(SP),AX + MULQ 56(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 296(SP),AX + MULQ 64(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 296(SP),AX + MULQ 72(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 296(SP),AX + MULQ 80(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 296(SP),AX + MULQ 88(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 304(SP),AX + MULQ 56(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 304(SP),AX + MULQ 64(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 304(SP),AX + MULQ 72(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 304(SP),AX + MULQ 80(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 304(SP),DX + IMUL3Q $19,DX,AX + MULQ 88(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 312(SP),AX + MULQ 56(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 312(SP),AX + MULQ 64(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 312(SP),AX + MULQ 72(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 312(SP),DX + IMUL3Q $19,DX,AX + MULQ 80(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 312(SP),DX + IMUL3Q $19,DX,AX + MULQ 88(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 320(SP),AX + MULQ 56(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 320(SP),AX + MULQ 64(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 256(SP),AX + MULQ 80(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 256(SP),AX + MULQ 88(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 328(SP),AX + MULQ 56(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 264(SP),AX + MULQ 72(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 264(SP),AX + MULQ 80(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 264(SP),AX + MULQ 88(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $51,CX + ANDQ DX,SI + ADDQ R10,CX + MOVQ CX,R9 + SHRQ $51,CX + ANDQ DX,R8 + ADDQ R12,CX + MOVQ CX,AX + SHRQ $51,CX + ANDQ DX,R9 + ADDQ R14,CX + MOVQ CX,R10 + SHRQ $51,CX + ANDQ DX,AX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,DX + MOVQ R8,CX + MOVQ R9,R11 + MOVQ AX,R12 + MOVQ R10,R13 + ADDQ ·_2P0(SB),DX + ADDQ ·_2P1234(SB),CX + ADDQ ·_2P1234(SB),R11 + ADDQ ·_2P1234(SB),R12 + ADDQ ·_2P1234(SB),R13 + ADDQ 96(SP),SI + ADDQ 104(SP),R8 + ADDQ 112(SP),R9 + ADDQ 120(SP),AX + ADDQ 128(SP),R10 + SUBQ 96(SP),DX + SUBQ 104(SP),CX + SUBQ 112(SP),R11 + SUBQ 120(SP),R12 + SUBQ 128(SP),R13 + MOVQ SI,120(DI) + MOVQ R8,128(DI) + MOVQ R9,136(DI) + MOVQ AX,144(DI) + MOVQ R10,152(DI) + MOVQ DX,160(DI) + MOVQ CX,168(DI) + MOVQ R11,176(DI) + MOVQ R12,184(DI) + MOVQ R13,192(DI) + MOVQ 120(DI),AX + MULQ 120(DI) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 120(DI),AX + SHLQ $1,AX + MULQ 128(DI) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 120(DI),AX + SHLQ $1,AX + MULQ 136(DI) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 120(DI),AX + SHLQ $1,AX + MULQ 144(DI) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 120(DI),AX + SHLQ $1,AX + MULQ 152(DI) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 128(DI),AX + MULQ 128(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 128(DI),AX + SHLQ $1,AX + MULQ 136(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 128(DI),AX + SHLQ $1,AX + MULQ 144(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 128(DI),DX + IMUL3Q $38,DX,AX + MULQ 152(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 136(DI),AX + MULQ 136(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 136(DI),DX + IMUL3Q $38,DX,AX + MULQ 144(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 136(DI),DX + IMUL3Q $38,DX,AX + MULQ 152(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 144(DI),DX + IMUL3Q $19,DX,AX + MULQ 144(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 144(DI),DX + IMUL3Q $38,DX,AX + MULQ 152(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 152(DI),DX + IMUL3Q $19,DX,AX + MULQ 152(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + ANDQ DX,SI + MOVQ CX,R8 + SHRQ $51,CX + ADDQ R10,CX + ANDQ DX,R8 + MOVQ CX,R9 + SHRQ $51,CX + ADDQ R12,CX + ANDQ DX,R9 + MOVQ CX,AX + SHRQ $51,CX + ADDQ R14,CX + ANDQ DX,AX + MOVQ CX,R10 + SHRQ $51,CX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,120(DI) + MOVQ R8,128(DI) + MOVQ R9,136(DI) + MOVQ AX,144(DI) + MOVQ R10,152(DI) + MOVQ 160(DI),AX + MULQ 160(DI) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 160(DI),AX + SHLQ $1,AX + MULQ 168(DI) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 160(DI),AX + SHLQ $1,AX + MULQ 176(DI) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 160(DI),AX + SHLQ $1,AX + MULQ 184(DI) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 160(DI),AX + SHLQ $1,AX + MULQ 192(DI) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 168(DI),AX + MULQ 168(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 168(DI),AX + SHLQ $1,AX + MULQ 176(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 168(DI),AX + SHLQ $1,AX + MULQ 184(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 168(DI),DX + IMUL3Q $38,DX,AX + MULQ 192(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(DI),AX + MULQ 176(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 176(DI),DX + IMUL3Q $38,DX,AX + MULQ 184(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(DI),DX + IMUL3Q $38,DX,AX + MULQ 192(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 184(DI),DX + IMUL3Q $19,DX,AX + MULQ 184(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 184(DI),DX + IMUL3Q $38,DX,AX + MULQ 192(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 192(DI),DX + IMUL3Q $19,DX,AX + MULQ 192(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + ANDQ DX,SI + MOVQ CX,R8 + SHRQ $51,CX + ADDQ R10,CX + ANDQ DX,R8 + MOVQ CX,R9 + SHRQ $51,CX + ADDQ R12,CX + ANDQ DX,R9 + MOVQ CX,AX + SHRQ $51,CX + ADDQ R14,CX + ANDQ DX,AX + MOVQ CX,R10 + SHRQ $51,CX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,160(DI) + MOVQ R8,168(DI) + MOVQ R9,176(DI) + MOVQ AX,184(DI) + MOVQ R10,192(DI) + MOVQ 184(DI),SI + IMUL3Q $19,SI,AX + MOVQ AX,56(SP) + MULQ 16(DI) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 192(DI),DX + IMUL3Q $19,DX,AX + MOVQ AX,64(SP) + MULQ 8(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 160(DI),AX + MULQ 0(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 160(DI),AX + MULQ 8(DI) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 160(DI),AX + MULQ 16(DI) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 160(DI),AX + MULQ 24(DI) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 160(DI),AX + MULQ 32(DI) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 168(DI),AX + MULQ 0(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 168(DI),AX + MULQ 8(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 168(DI),AX + MULQ 16(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 168(DI),AX + MULQ 24(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 168(DI),DX + IMUL3Q $19,DX,AX + MULQ 32(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(DI),AX + MULQ 0(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 176(DI),AX + MULQ 8(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 176(DI),AX + MULQ 16(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 176(DI),DX + IMUL3Q $19,DX,AX + MULQ 24(DI) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(DI),DX + IMUL3Q $19,DX,AX + MULQ 32(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 184(DI),AX + MULQ 0(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 184(DI),AX + MULQ 8(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 56(SP),AX + MULQ 24(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 56(SP),AX + MULQ 32(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 192(DI),AX + MULQ 0(DI) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 64(SP),AX + MULQ 16(DI) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 64(SP),AX + MULQ 24(DI) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 64(SP),AX + MULQ 32(DI) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $51,CX + ANDQ DX,SI + ADDQ R10,CX + MOVQ CX,R9 + SHRQ $51,CX + ANDQ DX,R8 + ADDQ R12,CX + MOVQ CX,AX + SHRQ $51,CX + ANDQ DX,R9 + ADDQ R14,CX + MOVQ CX,R10 + SHRQ $51,CX + ANDQ DX,AX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,160(DI) + MOVQ R8,168(DI) + MOVQ R9,176(DI) + MOVQ AX,184(DI) + MOVQ R10,192(DI) + MOVQ 200(SP),SI + IMUL3Q $19,SI,AX + MOVQ AX,56(SP) + MULQ 152(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 208(SP),DX + IMUL3Q $19,DX,AX + MOVQ AX,64(SP) + MULQ 144(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(SP),AX + MULQ 136(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 176(SP),AX + MULQ 144(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 176(SP),AX + MULQ 152(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 176(SP),AX + MULQ 160(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 176(SP),AX + MULQ 168(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 184(SP),AX + MULQ 136(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 184(SP),AX + MULQ 144(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 184(SP),AX + MULQ 152(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 184(SP),AX + MULQ 160(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 184(SP),DX + IMUL3Q $19,DX,AX + MULQ 168(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 192(SP),AX + MULQ 136(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 192(SP),AX + MULQ 144(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 192(SP),AX + MULQ 152(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 192(SP),DX + IMUL3Q $19,DX,AX + MULQ 160(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 192(SP),DX + IMUL3Q $19,DX,AX + MULQ 168(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 200(SP),AX + MULQ 136(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 200(SP),AX + MULQ 144(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 56(SP),AX + MULQ 160(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 56(SP),AX + MULQ 168(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 208(SP),AX + MULQ 136(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 64(SP),AX + MULQ 152(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 64(SP),AX + MULQ 160(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 64(SP),AX + MULQ 168(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $51,CX + ANDQ DX,SI + ADDQ R10,CX + MOVQ CX,R9 + SHRQ $51,CX + ANDQ DX,R8 + ADDQ R12,CX + MOVQ CX,AX + SHRQ $51,CX + ANDQ DX,R9 + ADDQ R14,CX + MOVQ CX,R10 + SHRQ $51,CX + ANDQ DX,AX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,40(DI) + MOVQ R8,48(DI) + MOVQ R9,56(DI) + MOVQ AX,64(DI) + MOVQ R10,72(DI) + MOVQ 216(SP),AX + MULQ ·_121666_213(SB) + SHRQ $13,AX + MOVQ AX,SI + MOVQ DX,CX + MOVQ 224(SP),AX + MULQ ·_121666_213(SB) + SHRQ $13,AX + ADDQ AX,CX + MOVQ DX,R8 + MOVQ 232(SP),AX + MULQ ·_121666_213(SB) + SHRQ $13,AX + ADDQ AX,R8 + MOVQ DX,R9 + MOVQ 240(SP),AX + MULQ ·_121666_213(SB) + SHRQ $13,AX + ADDQ AX,R9 + MOVQ DX,R10 + MOVQ 248(SP),AX + MULQ ·_121666_213(SB) + SHRQ $13,AX + ADDQ AX,R10 + IMUL3Q $19,DX,DX + ADDQ DX,SI + ADDQ 136(SP),SI + ADDQ 144(SP),CX + ADDQ 152(SP),R8 + ADDQ 160(SP),R9 + ADDQ 168(SP),R10 + MOVQ SI,80(DI) + MOVQ CX,88(DI) + MOVQ R8,96(DI) + MOVQ R9,104(DI) + MOVQ R10,112(DI) + MOVQ 104(DI),SI + IMUL3Q $19,SI,AX + MOVQ AX,56(SP) + MULQ 232(SP) + MOVQ AX,SI + MOVQ DX,CX + MOVQ 112(DI),DX + IMUL3Q $19,DX,AX + MOVQ AX,64(SP) + MULQ 224(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 80(DI),AX + MULQ 216(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 80(DI),AX + MULQ 224(SP) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 80(DI),AX + MULQ 232(SP) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 80(DI),AX + MULQ 240(SP) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 80(DI),AX + MULQ 248(SP) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 88(DI),AX + MULQ 216(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 88(DI),AX + MULQ 224(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 88(DI),AX + MULQ 232(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 88(DI),AX + MULQ 240(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 88(DI),DX + IMUL3Q $19,DX,AX + MULQ 248(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 96(DI),AX + MULQ 216(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 96(DI),AX + MULQ 224(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 96(DI),AX + MULQ 232(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 96(DI),DX + IMUL3Q $19,DX,AX + MULQ 240(SP) + ADDQ AX,SI + ADCQ DX,CX + MOVQ 96(DI),DX + IMUL3Q $19,DX,AX + MULQ 248(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 104(DI),AX + MULQ 216(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 104(DI),AX + MULQ 224(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 56(SP),AX + MULQ 240(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 56(SP),AX + MULQ 248(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 112(DI),AX + MULQ 216(SP) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 64(SP),AX + MULQ 232(SP) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 64(SP),AX + MULQ 240(SP) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 64(SP),AX + MULQ 248(SP) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ ·REDMASK51(SB),DX + SHLQ $13,CX:SI + ANDQ DX,SI + SHLQ $13,R9:R8 + ANDQ DX,R8 + ADDQ CX,R8 + SHLQ $13,R11:R10 + ANDQ DX,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ DX,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ DX,R14 + ADDQ R13,R14 + IMUL3Q $19,R15,CX + ADDQ CX,SI + MOVQ SI,CX + SHRQ $51,CX + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $51,CX + ANDQ DX,SI + ADDQ R10,CX + MOVQ CX,R9 + SHRQ $51,CX + ANDQ DX,R8 + ADDQ R12,CX + MOVQ CX,AX + SHRQ $51,CX + ANDQ DX,R9 + ADDQ R14,CX + MOVQ CX,R10 + SHRQ $51,CX + ANDQ DX,AX + IMUL3Q $19,CX,CX + ADDQ CX,SI + ANDQ DX,R10 + MOVQ SI,80(DI) + MOVQ R8,88(DI) + MOVQ R9,96(DI) + MOVQ AX,104(DI) + MOVQ R10,112(DI) + MOVQ 0(SP),R11 + MOVQ 8(SP),R12 + MOVQ 16(SP),R13 + MOVQ 24(SP),R14 + MOVQ 32(SP),R15 + MOVQ 40(SP),BX + MOVQ 48(SP),BP + MOVQ R11,SP + MOVQ DI,AX + MOVQ SI,DX + RET diff --git a/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go b/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go new file mode 100644 index 00000000..5822bd53 --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go @@ -0,0 +1,240 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!gccgo,!appengine + +package curve25519 + +// These functions are implemented in the .s files. The names of the functions +// in the rest of the file are also taken from the SUPERCOP sources to help +// people following along. + +//go:noescape + +func cswap(inout *[5]uint64, v uint64) + +//go:noescape + +func ladderstep(inout *[5][5]uint64) + +//go:noescape + +func freeze(inout *[5]uint64) + +//go:noescape + +func mul(dest, a, b *[5]uint64) + +//go:noescape + +func square(out, in *[5]uint64) + +// mladder uses a Montgomery ladder to calculate (xr/zr) *= s. +func mladder(xr, zr *[5]uint64, s *[32]byte) { + var work [5][5]uint64 + + work[0] = *xr + setint(&work[1], 1) + setint(&work[2], 0) + work[3] = *xr + setint(&work[4], 1) + + j := uint(6) + var prevbit byte + + for i := 31; i >= 0; i-- { + for j < 8 { + bit := ((*s)[i] >> j) & 1 + swap := bit ^ prevbit + prevbit = bit + cswap(&work[1], uint64(swap)) + ladderstep(&work) + j-- + } + j = 7 + } + + *xr = work[1] + *zr = work[2] +} + +func scalarMult(out, in, base *[32]byte) { + var e [32]byte + copy(e[:], (*in)[:]) + e[0] &= 248 + e[31] &= 127 + e[31] |= 64 + + var t, z [5]uint64 + unpack(&t, base) + mladder(&t, &z, &e) + invert(&z, &z) + mul(&t, &t, &z) + pack(out, &t) +} + +func setint(r *[5]uint64, v uint64) { + r[0] = v + r[1] = 0 + r[2] = 0 + r[3] = 0 + r[4] = 0 +} + +// unpack sets r = x where r consists of 5, 51-bit limbs in little-endian +// order. +func unpack(r *[5]uint64, x *[32]byte) { + r[0] = uint64(x[0]) | + uint64(x[1])<<8 | + uint64(x[2])<<16 | + uint64(x[3])<<24 | + uint64(x[4])<<32 | + uint64(x[5])<<40 | + uint64(x[6]&7)<<48 + + r[1] = uint64(x[6])>>3 | + uint64(x[7])<<5 | + uint64(x[8])<<13 | + uint64(x[9])<<21 | + uint64(x[10])<<29 | + uint64(x[11])<<37 | + uint64(x[12]&63)<<45 + + r[2] = uint64(x[12])>>6 | + uint64(x[13])<<2 | + uint64(x[14])<<10 | + uint64(x[15])<<18 | + uint64(x[16])<<26 | + uint64(x[17])<<34 | + uint64(x[18])<<42 | + uint64(x[19]&1)<<50 + + r[3] = uint64(x[19])>>1 | + uint64(x[20])<<7 | + uint64(x[21])<<15 | + uint64(x[22])<<23 | + uint64(x[23])<<31 | + uint64(x[24])<<39 | + uint64(x[25]&15)<<47 + + r[4] = uint64(x[25])>>4 | + uint64(x[26])<<4 | + uint64(x[27])<<12 | + uint64(x[28])<<20 | + uint64(x[29])<<28 | + uint64(x[30])<<36 | + uint64(x[31]&127)<<44 +} + +// pack sets out = x where out is the usual, little-endian form of the 5, +// 51-bit limbs in x. +func pack(out *[32]byte, x *[5]uint64) { + t := *x + freeze(&t) + + out[0] = byte(t[0]) + out[1] = byte(t[0] >> 8) + out[2] = byte(t[0] >> 16) + out[3] = byte(t[0] >> 24) + out[4] = byte(t[0] >> 32) + out[5] = byte(t[0] >> 40) + out[6] = byte(t[0] >> 48) + + out[6] ^= byte(t[1]<<3) & 0xf8 + out[7] = byte(t[1] >> 5) + out[8] = byte(t[1] >> 13) + out[9] = byte(t[1] >> 21) + out[10] = byte(t[1] >> 29) + out[11] = byte(t[1] >> 37) + out[12] = byte(t[1] >> 45) + + out[12] ^= byte(t[2]<<6) & 0xc0 + out[13] = byte(t[2] >> 2) + out[14] = byte(t[2] >> 10) + out[15] = byte(t[2] >> 18) + out[16] = byte(t[2] >> 26) + out[17] = byte(t[2] >> 34) + out[18] = byte(t[2] >> 42) + out[19] = byte(t[2] >> 50) + + out[19] ^= byte(t[3]<<1) & 0xfe + out[20] = byte(t[3] >> 7) + out[21] = byte(t[3] >> 15) + out[22] = byte(t[3] >> 23) + out[23] = byte(t[3] >> 31) + out[24] = byte(t[3] >> 39) + out[25] = byte(t[3] >> 47) + + out[25] ^= byte(t[4]<<4) & 0xf0 + out[26] = byte(t[4] >> 4) + out[27] = byte(t[4] >> 12) + out[28] = byte(t[4] >> 20) + out[29] = byte(t[4] >> 28) + out[30] = byte(t[4] >> 36) + out[31] = byte(t[4] >> 44) +} + +// invert calculates r = x^-1 mod p using Fermat's little theorem. +func invert(r *[5]uint64, x *[5]uint64) { + var z2, z9, z11, z2_5_0, z2_10_0, z2_20_0, z2_50_0, z2_100_0, t [5]uint64 + + square(&z2, x) /* 2 */ + square(&t, &z2) /* 4 */ + square(&t, &t) /* 8 */ + mul(&z9, &t, x) /* 9 */ + mul(&z11, &z9, &z2) /* 11 */ + square(&t, &z11) /* 22 */ + mul(&z2_5_0, &t, &z9) /* 2^5 - 2^0 = 31 */ + + square(&t, &z2_5_0) /* 2^6 - 2^1 */ + for i := 1; i < 5; i++ { /* 2^20 - 2^10 */ + square(&t, &t) + } + mul(&z2_10_0, &t, &z2_5_0) /* 2^10 - 2^0 */ + + square(&t, &z2_10_0) /* 2^11 - 2^1 */ + for i := 1; i < 10; i++ { /* 2^20 - 2^10 */ + square(&t, &t) + } + mul(&z2_20_0, &t, &z2_10_0) /* 2^20 - 2^0 */ + + square(&t, &z2_20_0) /* 2^21 - 2^1 */ + for i := 1; i < 20; i++ { /* 2^40 - 2^20 */ + square(&t, &t) + } + mul(&t, &t, &z2_20_0) /* 2^40 - 2^0 */ + + square(&t, &t) /* 2^41 - 2^1 */ + for i := 1; i < 10; i++ { /* 2^50 - 2^10 */ + square(&t, &t) + } + mul(&z2_50_0, &t, &z2_10_0) /* 2^50 - 2^0 */ + + square(&t, &z2_50_0) /* 2^51 - 2^1 */ + for i := 1; i < 50; i++ { /* 2^100 - 2^50 */ + square(&t, &t) + } + mul(&z2_100_0, &t, &z2_50_0) /* 2^100 - 2^0 */ + + square(&t, &z2_100_0) /* 2^101 - 2^1 */ + for i := 1; i < 100; i++ { /* 2^200 - 2^100 */ + square(&t, &t) + } + mul(&t, &t, &z2_100_0) /* 2^200 - 2^0 */ + + square(&t, &t) /* 2^201 - 2^1 */ + for i := 1; i < 50; i++ { /* 2^250 - 2^50 */ + square(&t, &t) + } + mul(&t, &t, &z2_50_0) /* 2^250 - 2^0 */ + + square(&t, &t) /* 2^251 - 2^1 */ + square(&t, &t) /* 2^252 - 2^2 */ + square(&t, &t) /* 2^253 - 2^3 */ + + square(&t, &t) /* 2^254 - 2^4 */ + + square(&t, &t) /* 2^255 - 2^5 */ + mul(r, &t, &z11) /* 2^255 - 21 */ +} diff --git a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s new file mode 100644 index 00000000..e48d183e --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s @@ -0,0 +1,191 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +// func mul(dest, a, b *[5]uint64) +TEXT ·mul(SB),0,$128-24 + MOVQ dest+0(FP), DI + MOVQ a+8(FP), SI + MOVQ b+16(FP), DX + + MOVQ SP,R11 + MOVQ $31,CX + NOTQ CX + ANDQ CX,SP + ADDQ $32,SP + + MOVQ R11,0(SP) + MOVQ R12,8(SP) + MOVQ R13,16(SP) + MOVQ R14,24(SP) + MOVQ R15,32(SP) + MOVQ BX,40(SP) + MOVQ BP,48(SP) + MOVQ DI,56(SP) + MOVQ DX,CX + MOVQ 24(SI),DX + IMUL3Q $19,DX,AX + MOVQ AX,64(SP) + MULQ 16(CX) + MOVQ AX,R8 + MOVQ DX,R9 + MOVQ 32(SI),DX + IMUL3Q $19,DX,AX + MOVQ AX,72(SP) + MULQ 8(CX) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 0(SI),AX + MULQ 0(CX) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 0(SI),AX + MULQ 8(CX) + MOVQ AX,R10 + MOVQ DX,R11 + MOVQ 0(SI),AX + MULQ 16(CX) + MOVQ AX,R12 + MOVQ DX,R13 + MOVQ 0(SI),AX + MULQ 24(CX) + MOVQ AX,R14 + MOVQ DX,R15 + MOVQ 0(SI),AX + MULQ 32(CX) + MOVQ AX,BX + MOVQ DX,BP + MOVQ 8(SI),AX + MULQ 0(CX) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 8(SI),AX + MULQ 8(CX) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 8(SI),AX + MULQ 16(CX) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 8(SI),AX + MULQ 24(CX) + ADDQ AX,BX + ADCQ DX,BP + MOVQ 8(SI),DX + IMUL3Q $19,DX,AX + MULQ 32(CX) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 16(SI),AX + MULQ 0(CX) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 16(SI),AX + MULQ 8(CX) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 16(SI),AX + MULQ 16(CX) + ADDQ AX,BX + ADCQ DX,BP + MOVQ 16(SI),DX + IMUL3Q $19,DX,AX + MULQ 24(CX) + ADDQ AX,R8 + ADCQ DX,R9 + MOVQ 16(SI),DX + IMUL3Q $19,DX,AX + MULQ 32(CX) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 24(SI),AX + MULQ 0(CX) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ 24(SI),AX + MULQ 8(CX) + ADDQ AX,BX + ADCQ DX,BP + MOVQ 64(SP),AX + MULQ 24(CX) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 64(SP),AX + MULQ 32(CX) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 32(SI),AX + MULQ 0(CX) + ADDQ AX,BX + ADCQ DX,BP + MOVQ 72(SP),AX + MULQ 16(CX) + ADDQ AX,R10 + ADCQ DX,R11 + MOVQ 72(SP),AX + MULQ 24(CX) + ADDQ AX,R12 + ADCQ DX,R13 + MOVQ 72(SP),AX + MULQ 32(CX) + ADDQ AX,R14 + ADCQ DX,R15 + MOVQ ·REDMASK51(SB),SI + SHLQ $13,R9:R8 + ANDQ SI,R8 + SHLQ $13,R11:R10 + ANDQ SI,R10 + ADDQ R9,R10 + SHLQ $13,R13:R12 + ANDQ SI,R12 + ADDQ R11,R12 + SHLQ $13,R15:R14 + ANDQ SI,R14 + ADDQ R13,R14 + SHLQ $13,BP:BX + ANDQ SI,BX + ADDQ R15,BX + IMUL3Q $19,BP,DX + ADDQ DX,R8 + MOVQ R8,DX + SHRQ $51,DX + ADDQ R10,DX + MOVQ DX,CX + SHRQ $51,DX + ANDQ SI,R8 + ADDQ R12,DX + MOVQ DX,R9 + SHRQ $51,DX + ANDQ SI,CX + ADDQ R14,DX + MOVQ DX,AX + SHRQ $51,DX + ANDQ SI,R9 + ADDQ BX,DX + MOVQ DX,R10 + SHRQ $51,DX + ANDQ SI,AX + IMUL3Q $19,DX,DX + ADDQ DX,R8 + ANDQ SI,R10 + MOVQ R8,0(DI) + MOVQ CX,8(DI) + MOVQ R9,16(DI) + MOVQ AX,24(DI) + MOVQ R10,32(DI) + MOVQ 0(SP),R11 + MOVQ 8(SP),R12 + MOVQ 16(SP),R13 + MOVQ 24(SP),R14 + MOVQ 32(SP),R15 + MOVQ 40(SP),BX + MOVQ 48(SP),BP + MOVQ R11,SP + MOVQ DI,AX + MOVQ SI,DX + RET diff --git a/vendor/golang.org/x/crypto/curve25519/square_amd64.s b/vendor/golang.org/x/crypto/curve25519/square_amd64.s new file mode 100644 index 00000000..78d1a50d --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/square_amd64.s @@ -0,0 +1,153 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// +build amd64,!gccgo,!appengine + +// func square(out, in *[5]uint64) +TEXT ·square(SB),7,$96-16 + MOVQ out+0(FP), DI + MOVQ in+8(FP), SI + + MOVQ SP,R11 + MOVQ $31,CX + NOTQ CX + ANDQ CX,SP + ADDQ $32, SP + + MOVQ R11,0(SP) + MOVQ R12,8(SP) + MOVQ R13,16(SP) + MOVQ R14,24(SP) + MOVQ R15,32(SP) + MOVQ BX,40(SP) + MOVQ BP,48(SP) + MOVQ 0(SI),AX + MULQ 0(SI) + MOVQ AX,CX + MOVQ DX,R8 + MOVQ 0(SI),AX + SHLQ $1,AX + MULQ 8(SI) + MOVQ AX,R9 + MOVQ DX,R10 + MOVQ 0(SI),AX + SHLQ $1,AX + MULQ 16(SI) + MOVQ AX,R11 + MOVQ DX,R12 + MOVQ 0(SI),AX + SHLQ $1,AX + MULQ 24(SI) + MOVQ AX,R13 + MOVQ DX,R14 + MOVQ 0(SI),AX + SHLQ $1,AX + MULQ 32(SI) + MOVQ AX,R15 + MOVQ DX,BX + MOVQ 8(SI),AX + MULQ 8(SI) + ADDQ AX,R11 + ADCQ DX,R12 + MOVQ 8(SI),AX + SHLQ $1,AX + MULQ 16(SI) + ADDQ AX,R13 + ADCQ DX,R14 + MOVQ 8(SI),AX + SHLQ $1,AX + MULQ 24(SI) + ADDQ AX,R15 + ADCQ DX,BX + MOVQ 8(SI),DX + IMUL3Q $38,DX,AX + MULQ 32(SI) + ADDQ AX,CX + ADCQ DX,R8 + MOVQ 16(SI),AX + MULQ 16(SI) + ADDQ AX,R15 + ADCQ DX,BX + MOVQ 16(SI),DX + IMUL3Q $38,DX,AX + MULQ 24(SI) + ADDQ AX,CX + ADCQ DX,R8 + MOVQ 16(SI),DX + IMUL3Q $38,DX,AX + MULQ 32(SI) + ADDQ AX,R9 + ADCQ DX,R10 + MOVQ 24(SI),DX + IMUL3Q $19,DX,AX + MULQ 24(SI) + ADDQ AX,R9 + ADCQ DX,R10 + MOVQ 24(SI),DX + IMUL3Q $38,DX,AX + MULQ 32(SI) + ADDQ AX,R11 + ADCQ DX,R12 + MOVQ 32(SI),DX + IMUL3Q $19,DX,AX + MULQ 32(SI) + ADDQ AX,R13 + ADCQ DX,R14 + MOVQ ·REDMASK51(SB),SI + SHLQ $13,R8:CX + ANDQ SI,CX + SHLQ $13,R10:R9 + ANDQ SI,R9 + ADDQ R8,R9 + SHLQ $13,R12:R11 + ANDQ SI,R11 + ADDQ R10,R11 + SHLQ $13,R14:R13 + ANDQ SI,R13 + ADDQ R12,R13 + SHLQ $13,BX:R15 + ANDQ SI,R15 + ADDQ R14,R15 + IMUL3Q $19,BX,DX + ADDQ DX,CX + MOVQ CX,DX + SHRQ $51,DX + ADDQ R9,DX + ANDQ SI,CX + MOVQ DX,R8 + SHRQ $51,DX + ADDQ R11,DX + ANDQ SI,R8 + MOVQ DX,R9 + SHRQ $51,DX + ADDQ R13,DX + ANDQ SI,R9 + MOVQ DX,AX + SHRQ $51,DX + ADDQ R15,DX + ANDQ SI,AX + MOVQ DX,R10 + SHRQ $51,DX + IMUL3Q $19,DX,DX + ADDQ DX,CX + ANDQ SI,R10 + MOVQ CX,0(DI) + MOVQ R8,8(DI) + MOVQ R9,16(DI) + MOVQ AX,24(DI) + MOVQ R10,32(DI) + MOVQ 0(SP),R11 + MOVQ 8(SP),R12 + MOVQ 16(SP),R13 + MOVQ 24(SP),R14 + MOVQ 32(SP),R15 + MOVQ 40(SP),BX + MOVQ 48(SP),BP + MOVQ R11,SP + MOVQ DI,AX + MOVQ SI,DX + RET diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519.go b/vendor/golang.org/x/crypto/ed25519/ed25519.go new file mode 100644 index 00000000..f1d95674 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/ed25519.go @@ -0,0 +1,181 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ed25519 implements the Ed25519 signature algorithm. See +// http://ed25519.cr.yp.to/. +// +// These functions are also compatible with the “Ed25519†function defined in +// https://tools.ietf.org/html/draft-irtf-cfrg-eddsa-05. +package ed25519 + +// This code is a port of the public domain, “ref10†implementation of ed25519 +// from SUPERCOP. + +import ( + "crypto" + cryptorand "crypto/rand" + "crypto/sha512" + "crypto/subtle" + "errors" + "io" + "strconv" + + "golang.org/x/crypto/ed25519/internal/edwards25519" +) + +const ( + // PublicKeySize is the size, in bytes, of public keys as used in this package. + PublicKeySize = 32 + // PrivateKeySize is the size, in bytes, of private keys as used in this package. + PrivateKeySize = 64 + // SignatureSize is the size, in bytes, of signatures generated and verified by this package. + SignatureSize = 64 +) + +// PublicKey is the type of Ed25519 public keys. +type PublicKey []byte + +// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer. +type PrivateKey []byte + +// Public returns the PublicKey corresponding to priv. +func (priv PrivateKey) Public() crypto.PublicKey { + publicKey := make([]byte, PublicKeySize) + copy(publicKey, priv[32:]) + return PublicKey(publicKey) +} + +// Sign signs the given message with priv. +// Ed25519 performs two passes over messages to be signed and therefore cannot +// handle pre-hashed messages. Thus opts.HashFunc() must return zero to +// indicate the message hasn't been hashed. This can be achieved by passing +// crypto.Hash(0) as the value for opts. +func (priv PrivateKey) Sign(rand io.Reader, message []byte, opts crypto.SignerOpts) (signature []byte, err error) { + if opts.HashFunc() != crypto.Hash(0) { + return nil, errors.New("ed25519: cannot sign hashed message") + } + + return Sign(priv, message), nil +} + +// GenerateKey generates a public/private key pair using entropy from rand. +// If rand is nil, crypto/rand.Reader will be used. +func GenerateKey(rand io.Reader) (publicKey PublicKey, privateKey PrivateKey, err error) { + if rand == nil { + rand = cryptorand.Reader + } + + privateKey = make([]byte, PrivateKeySize) + publicKey = make([]byte, PublicKeySize) + _, err = io.ReadFull(rand, privateKey[:32]) + if err != nil { + return nil, nil, err + } + + digest := sha512.Sum512(privateKey[:32]) + digest[0] &= 248 + digest[31] &= 127 + digest[31] |= 64 + + var A edwards25519.ExtendedGroupElement + var hBytes [32]byte + copy(hBytes[:], digest[:]) + edwards25519.GeScalarMultBase(&A, &hBytes) + var publicKeyBytes [32]byte + A.ToBytes(&publicKeyBytes) + + copy(privateKey[32:], publicKeyBytes[:]) + copy(publicKey, publicKeyBytes[:]) + + return publicKey, privateKey, nil +} + +// Sign signs the message with privateKey and returns a signature. It will +// panic if len(privateKey) is not PrivateKeySize. +func Sign(privateKey PrivateKey, message []byte) []byte { + if l := len(privateKey); l != PrivateKeySize { + panic("ed25519: bad private key length: " + strconv.Itoa(l)) + } + + h := sha512.New() + h.Write(privateKey[:32]) + + var digest1, messageDigest, hramDigest [64]byte + var expandedSecretKey [32]byte + h.Sum(digest1[:0]) + copy(expandedSecretKey[:], digest1[:]) + expandedSecretKey[0] &= 248 + expandedSecretKey[31] &= 63 + expandedSecretKey[31] |= 64 + + h.Reset() + h.Write(digest1[32:]) + h.Write(message) + h.Sum(messageDigest[:0]) + + var messageDigestReduced [32]byte + edwards25519.ScReduce(&messageDigestReduced, &messageDigest) + var R edwards25519.ExtendedGroupElement + edwards25519.GeScalarMultBase(&R, &messageDigestReduced) + + var encodedR [32]byte + R.ToBytes(&encodedR) + + h.Reset() + h.Write(encodedR[:]) + h.Write(privateKey[32:]) + h.Write(message) + h.Sum(hramDigest[:0]) + var hramDigestReduced [32]byte + edwards25519.ScReduce(&hramDigestReduced, &hramDigest) + + var s [32]byte + edwards25519.ScMulAdd(&s, &hramDigestReduced, &expandedSecretKey, &messageDigestReduced) + + signature := make([]byte, SignatureSize) + copy(signature[:], encodedR[:]) + copy(signature[32:], s[:]) + + return signature +} + +// Verify reports whether sig is a valid signature of message by publicKey. It +// will panic if len(publicKey) is not PublicKeySize. +func Verify(publicKey PublicKey, message, sig []byte) bool { + if l := len(publicKey); l != PublicKeySize { + panic("ed25519: bad public key length: " + strconv.Itoa(l)) + } + + if len(sig) != SignatureSize || sig[63]&224 != 0 { + return false + } + + var A edwards25519.ExtendedGroupElement + var publicKeyBytes [32]byte + copy(publicKeyBytes[:], publicKey) + if !A.FromBytes(&publicKeyBytes) { + return false + } + edwards25519.FeNeg(&A.X, &A.X) + edwards25519.FeNeg(&A.T, &A.T) + + h := sha512.New() + h.Write(sig[:32]) + h.Write(publicKey[:]) + h.Write(message) + var digest [64]byte + h.Sum(digest[:0]) + + var hReduced [32]byte + edwards25519.ScReduce(&hReduced, &digest) + + var R edwards25519.ProjectiveGroupElement + var b [32]byte + copy(b[:], sig[32:]) + edwards25519.GeDoubleScalarMultVartime(&R, &hReduced, &A, &b) + + var checkR [32]byte + R.ToBytes(&checkR) + return subtle.ConstantTimeCompare(sig[:32], checkR[:]) == 1 +} diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519_test.go b/vendor/golang.org/x/crypto/ed25519/ed25519_test.go new file mode 100644 index 00000000..638e5255 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/ed25519_test.go @@ -0,0 +1,183 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ed25519 + +import ( + "bufio" + "bytes" + "compress/gzip" + "crypto" + "crypto/rand" + "encoding/hex" + "os" + "strings" + "testing" + + "golang.org/x/crypto/ed25519/internal/edwards25519" +) + +type zeroReader struct{} + +func (zeroReader) Read(buf []byte) (int, error) { + for i := range buf { + buf[i] = 0 + } + return len(buf), nil +} + +func TestUnmarshalMarshal(t *testing.T) { + pub, _, _ := GenerateKey(rand.Reader) + + var A edwards25519.ExtendedGroupElement + var pubBytes [32]byte + copy(pubBytes[:], pub) + if !A.FromBytes(&pubBytes) { + t.Fatalf("ExtendedGroupElement.FromBytes failed") + } + + var pub2 [32]byte + A.ToBytes(&pub2) + + if pubBytes != pub2 { + t.Errorf("FromBytes(%v)->ToBytes does not round-trip, got %x\n", pubBytes, pub2) + } +} + +func TestSignVerify(t *testing.T) { + var zero zeroReader + public, private, _ := GenerateKey(zero) + + message := []byte("test message") + sig := Sign(private, message) + if !Verify(public, message, sig) { + t.Errorf("valid signature rejected") + } + + wrongMessage := []byte("wrong message") + if Verify(public, wrongMessage, sig) { + t.Errorf("signature of different message accepted") + } +} + +func TestCryptoSigner(t *testing.T) { + var zero zeroReader + public, private, _ := GenerateKey(zero) + + signer := crypto.Signer(private) + + publicInterface := signer.Public() + public2, ok := publicInterface.(PublicKey) + if !ok { + t.Fatalf("expected PublicKey from Public() but got %T", publicInterface) + } + + if !bytes.Equal(public, public2) { + t.Errorf("public keys do not match: original:%x vs Public():%x", public, public2) + } + + message := []byte("message") + var noHash crypto.Hash + signature, err := signer.Sign(zero, message, noHash) + if err != nil { + t.Fatalf("error from Sign(): %s", err) + } + + if !Verify(public, message, signature) { + t.Errorf("Verify failed on signature from Sign()") + } +} + +func TestGolden(t *testing.T) { + // sign.input.gz is a selection of test cases from + // http://ed25519.cr.yp.to/python/sign.input + testDataZ, err := os.Open("testdata/sign.input.gz") + if err != nil { + t.Fatal(err) + } + defer testDataZ.Close() + testData, err := gzip.NewReader(testDataZ) + if err != nil { + t.Fatal(err) + } + defer testData.Close() + + scanner := bufio.NewScanner(testData) + lineNo := 0 + + for scanner.Scan() { + lineNo++ + + line := scanner.Text() + parts := strings.Split(line, ":") + if len(parts) != 5 { + t.Fatalf("bad number of parts on line %d", lineNo) + } + + privBytes, _ := hex.DecodeString(parts[0]) + pubKey, _ := hex.DecodeString(parts[1]) + msg, _ := hex.DecodeString(parts[2]) + sig, _ := hex.DecodeString(parts[3]) + // The signatures in the test vectors also include the message + // at the end, but we just want R and S. + sig = sig[:SignatureSize] + + if l := len(pubKey); l != PublicKeySize { + t.Fatalf("bad public key length on line %d: got %d bytes", lineNo, l) + } + + var priv [PrivateKeySize]byte + copy(priv[:], privBytes) + copy(priv[32:], pubKey) + + sig2 := Sign(priv[:], msg) + if !bytes.Equal(sig, sig2[:]) { + t.Errorf("different signature result on line %d: %x vs %x", lineNo, sig, sig2) + } + + if !Verify(pubKey, msg, sig2) { + t.Errorf("signature failed to verify on line %d", lineNo) + } + } + + if err := scanner.Err(); err != nil { + t.Fatalf("error reading test data: %s", err) + } +} + +func BenchmarkKeyGeneration(b *testing.B) { + var zero zeroReader + for i := 0; i < b.N; i++ { + if _, _, err := GenerateKey(zero); err != nil { + b.Fatal(err) + } + } +} + +func BenchmarkSigning(b *testing.B) { + var zero zeroReader + _, priv, err := GenerateKey(zero) + if err != nil { + b.Fatal(err) + } + message := []byte("Hello, world!") + b.ResetTimer() + for i := 0; i < b.N; i++ { + Sign(priv, message) + } +} + +func BenchmarkVerification(b *testing.B) { + var zero zeroReader + pub, priv, err := GenerateKey(zero) + if err != nil { + b.Fatal(err) + } + message := []byte("Hello, world!") + signature := Sign(priv, message) + b.ResetTimer() + for i := 0; i < b.N; i++ { + Verify(pub, message, signature) + } +} diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go new file mode 100644 index 00000000..e39f086c --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/const.go @@ -0,0 +1,1422 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package edwards25519 + +// These values are from the public domain, “ref10†implementation of ed25519 +// from SUPERCOP. + +// d is a constant in the Edwards curve equation. +var d = FieldElement{ + -10913610, 13857413, -15372611, 6949391, 114729, -8787816, -6275908, -3247719, -18696448, -12055116, +} + +// d2 is 2*d. +var d2 = FieldElement{ + -21827239, -5839606, -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199, +} + +// SqrtM1 is the square-root of -1 in the field. +var SqrtM1 = FieldElement{ + -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482, +} + +// A is a constant in the Montgomery-form of curve25519. +var A = FieldElement{ + 486662, 0, 0, 0, 0, 0, 0, 0, 0, 0, +} + +// bi contains precomputed multiples of the base-point. See the Ed25519 paper +// for a discussion about how these values are used. +var bi = [8]PreComputedGroupElement{ + { + FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605}, + FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378}, + FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546}, + }, + { + FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024}, + FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574}, + FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357}, + }, + { + FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380}, + FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306}, + FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942}, + }, + { + FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766}, + FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701}, + FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300}, + }, + { + FieldElement{-22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877}, + FieldElement{-6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951}, + FieldElement{4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784}, + }, + { + FieldElement{-25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436}, + FieldElement{25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918}, + FieldElement{23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877}, + }, + { + FieldElement{-33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800}, + FieldElement{-25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305}, + FieldElement{-13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300}, + }, + { + FieldElement{-3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876}, + FieldElement{-24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619}, + FieldElement{-3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683}, + }, +} + +// base contains precomputed multiples of the base-point. See the Ed25519 paper +// for a discussion about how these values are used. +var base = [32][8]PreComputedGroupElement{ + { + { + FieldElement{25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605}, + FieldElement{-12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378}, + FieldElement{-8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546}, + }, + { + FieldElement{-12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303}, + FieldElement{-21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081}, + FieldElement{26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697}, + }, + { + FieldElement{15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024}, + FieldElement{16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574}, + FieldElement{30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357}, + }, + { + FieldElement{-17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540}, + FieldElement{23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397}, + FieldElement{7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325}, + }, + { + FieldElement{10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380}, + FieldElement{4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306}, + FieldElement{19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942}, + }, + { + FieldElement{-15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777}, + FieldElement{-8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737}, + FieldElement{-18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652}, + }, + { + FieldElement{5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766}, + FieldElement{-30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701}, + FieldElement{28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300}, + }, + { + FieldElement{14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726}, + FieldElement{-7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955}, + FieldElement{27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425}, + }, + }, + { + { + FieldElement{-13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171}, + FieldElement{27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510}, + FieldElement{17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660}, + }, + { + FieldElement{-10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639}, + FieldElement{29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963}, + FieldElement{5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950}, + }, + { + FieldElement{-27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568}, + FieldElement{12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335}, + FieldElement{25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628}, + }, + { + FieldElement{-26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007}, + FieldElement{-2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772}, + FieldElement{-22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653}, + }, + { + FieldElement{2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567}, + FieldElement{13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686}, + FieldElement{21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372}, + }, + { + FieldElement{-13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887}, + FieldElement{-23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954}, + FieldElement{-29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953}, + }, + { + FieldElement{24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833}, + FieldElement{-16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532}, + FieldElement{-22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876}, + }, + { + FieldElement{2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268}, + FieldElement{33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214}, + FieldElement{1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038}, + }, + }, + { + { + FieldElement{6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800}, + FieldElement{4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645}, + FieldElement{-4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664}, + }, + { + FieldElement{1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933}, + FieldElement{-25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182}, + FieldElement{-17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222}, + }, + { + FieldElement{-18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991}, + FieldElement{20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880}, + FieldElement{9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092}, + }, + { + FieldElement{-16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295}, + FieldElement{19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788}, + FieldElement{8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553}, + }, + { + FieldElement{-15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026}, + FieldElement{11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347}, + FieldElement{-18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033}, + }, + { + FieldElement{-23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395}, + FieldElement{-27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278}, + FieldElement{1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890}, + }, + { + FieldElement{32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995}, + FieldElement{-30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596}, + FieldElement{-11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891}, + }, + { + FieldElement{31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060}, + FieldElement{11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608}, + FieldElement{-20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606}, + }, + }, + { + { + FieldElement{7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389}, + FieldElement{-19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016}, + FieldElement{-11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341}, + }, + { + FieldElement{-22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505}, + FieldElement{14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553}, + FieldElement{-28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655}, + }, + { + FieldElement{15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220}, + FieldElement{12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631}, + FieldElement{-4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099}, + }, + { + FieldElement{26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556}, + FieldElement{14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749}, + FieldElement{236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930}, + }, + { + FieldElement{1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391}, + FieldElement{5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253}, + FieldElement{20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066}, + }, + { + FieldElement{24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958}, + FieldElement{-11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082}, + FieldElement{-28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383}, + }, + { + FieldElement{-30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521}, + FieldElement{-11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807}, + FieldElement{23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948}, + }, + { + FieldElement{9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134}, + FieldElement{-32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455}, + FieldElement{27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629}, + }, + }, + { + { + FieldElement{-8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069}, + FieldElement{-32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746}, + FieldElement{24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919}, + }, + { + FieldElement{11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837}, + FieldElement{8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906}, + FieldElement{-28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771}, + }, + { + FieldElement{-25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817}, + FieldElement{10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098}, + FieldElement{10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409}, + }, + { + FieldElement{-12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504}, + FieldElement{-26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727}, + FieldElement{28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420}, + }, + { + FieldElement{-32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003}, + FieldElement{-1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605}, + FieldElement{-30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384}, + }, + { + FieldElement{-26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701}, + FieldElement{-23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683}, + FieldElement{29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708}, + }, + { + FieldElement{-3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563}, + FieldElement{-19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260}, + FieldElement{-5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387}, + }, + { + FieldElement{-19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672}, + FieldElement{23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686}, + FieldElement{-24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665}, + }, + }, + { + { + FieldElement{11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182}, + FieldElement{-31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277}, + FieldElement{14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628}, + }, + { + FieldElement{-4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474}, + FieldElement{-26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539}, + FieldElement{-25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822}, + }, + { + FieldElement{-10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970}, + FieldElement{19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756}, + FieldElement{-24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508}, + }, + { + FieldElement{-26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683}, + FieldElement{-10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655}, + FieldElement{-20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158}, + }, + { + FieldElement{-4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125}, + FieldElement{-15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839}, + FieldElement{-20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664}, + }, + { + FieldElement{27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294}, + FieldElement{-18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899}, + FieldElement{-11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070}, + }, + { + FieldElement{3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294}, + FieldElement{-15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949}, + FieldElement{-21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083}, + }, + { + FieldElement{31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420}, + FieldElement{-5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940}, + FieldElement{29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396}, + }, + }, + { + { + FieldElement{-12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567}, + FieldElement{20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127}, + FieldElement{-16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294}, + }, + { + FieldElement{-12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887}, + FieldElement{22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964}, + FieldElement{16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195}, + }, + { + FieldElement{9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244}, + FieldElement{24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999}, + FieldElement{-1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762}, + }, + { + FieldElement{-18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274}, + FieldElement{-33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236}, + FieldElement{-16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605}, + }, + { + FieldElement{-13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761}, + FieldElement{-22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884}, + FieldElement{-6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482}, + }, + { + FieldElement{-24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638}, + FieldElement{-11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490}, + FieldElement{-32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170}, + }, + { + FieldElement{5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736}, + FieldElement{10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124}, + FieldElement{-17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392}, + }, + { + FieldElement{8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029}, + FieldElement{6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048}, + FieldElement{28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958}, + }, + }, + { + { + FieldElement{24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593}, + FieldElement{26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071}, + FieldElement{-11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692}, + }, + { + FieldElement{11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687}, + FieldElement{-160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441}, + FieldElement{-20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001}, + }, + { + FieldElement{-938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460}, + FieldElement{-19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007}, + FieldElement{-21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762}, + }, + { + FieldElement{15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005}, + FieldElement{-9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674}, + FieldElement{4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035}, + }, + { + FieldElement{7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590}, + FieldElement{-2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957}, + FieldElement{-30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812}, + }, + { + FieldElement{33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740}, + FieldElement{-18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122}, + FieldElement{-27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158}, + }, + { + FieldElement{8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885}, + FieldElement{26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140}, + FieldElement{19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857}, + }, + { + FieldElement{801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155}, + FieldElement{19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260}, + FieldElement{19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483}, + }, + }, + { + { + FieldElement{-3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677}, + FieldElement{32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815}, + FieldElement{22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751}, + }, + { + FieldElement{-16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203}, + FieldElement{-11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208}, + FieldElement{1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230}, + }, + { + FieldElement{16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850}, + FieldElement{-21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389}, + FieldElement{-9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968}, + }, + { + FieldElement{-11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689}, + FieldElement{14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880}, + FieldElement{5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304}, + }, + { + FieldElement{30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632}, + FieldElement{-3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412}, + FieldElement{20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566}, + }, + { + FieldElement{-20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038}, + FieldElement{-26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232}, + FieldElement{-1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943}, + }, + { + FieldElement{17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856}, + FieldElement{23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738}, + FieldElement{15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971}, + }, + { + FieldElement{-27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718}, + FieldElement{-13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697}, + FieldElement{-11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883}, + }, + }, + { + { + FieldElement{5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912}, + FieldElement{-26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358}, + FieldElement{3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849}, + }, + { + FieldElement{29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307}, + FieldElement{-14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977}, + FieldElement{-6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335}, + }, + { + FieldElement{-29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644}, + FieldElement{-22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616}, + FieldElement{-27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735}, + }, + { + FieldElement{-21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099}, + FieldElement{29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341}, + FieldElement{-936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336}, + }, + { + FieldElement{-23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646}, + FieldElement{31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425}, + FieldElement{-17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388}, + }, + { + FieldElement{-31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743}, + FieldElement{-16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822}, + FieldElement{-8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462}, + }, + { + FieldElement{18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985}, + FieldElement{9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702}, + FieldElement{-22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797}, + }, + { + FieldElement{21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293}, + FieldElement{27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100}, + FieldElement{19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688}, + }, + }, + { + { + FieldElement{12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186}, + FieldElement{2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610}, + FieldElement{-2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707}, + }, + { + FieldElement{7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220}, + FieldElement{915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025}, + FieldElement{32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044}, + }, + { + FieldElement{32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992}, + FieldElement{-4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027}, + FieldElement{21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197}, + }, + { + FieldElement{8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901}, + FieldElement{31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952}, + FieldElement{19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878}, + }, + { + FieldElement{-28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390}, + FieldElement{32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730}, + FieldElement{2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730}, + }, + { + FieldElement{-19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180}, + FieldElement{-30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272}, + FieldElement{-15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715}, + }, + { + FieldElement{-22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970}, + FieldElement{-31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772}, + FieldElement{-17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865}, + }, + { + FieldElement{15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750}, + FieldElement{20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373}, + FieldElement{32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348}, + }, + }, + { + { + FieldElement{9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144}, + FieldElement{-22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195}, + FieldElement{5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086}, + }, + { + FieldElement{-13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684}, + FieldElement{-8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518}, + FieldElement{-2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233}, + }, + { + FieldElement{-5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793}, + FieldElement{-2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794}, + FieldElement{580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435}, + }, + { + FieldElement{23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921}, + FieldElement{13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518}, + FieldElement{2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563}, + }, + { + FieldElement{14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278}, + FieldElement{-27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024}, + FieldElement{4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030}, + }, + { + FieldElement{10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783}, + FieldElement{27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717}, + FieldElement{6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844}, + }, + { + FieldElement{14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333}, + FieldElement{16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048}, + FieldElement{22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760}, + }, + { + FieldElement{-4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760}, + FieldElement{-15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757}, + FieldElement{-2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112}, + }, + }, + { + { + FieldElement{-19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468}, + FieldElement{3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184}, + FieldElement{10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289}, + }, + { + FieldElement{15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066}, + FieldElement{24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882}, + FieldElement{13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226}, + }, + { + FieldElement{16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101}, + FieldElement{29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279}, + FieldElement{-6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811}, + }, + { + FieldElement{27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709}, + FieldElement{20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714}, + FieldElement{-2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121}, + }, + { + FieldElement{9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464}, + FieldElement{12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847}, + FieldElement{13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400}, + }, + { + FieldElement{4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414}, + FieldElement{-15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158}, + FieldElement{17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045}, + }, + { + FieldElement{-461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415}, + FieldElement{-5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459}, + FieldElement{-31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079}, + }, + { + FieldElement{21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412}, + FieldElement{-20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743}, + FieldElement{-14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836}, + }, + }, + { + { + FieldElement{12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022}, + FieldElement{18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429}, + FieldElement{-6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065}, + }, + { + FieldElement{30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861}, + FieldElement{10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000}, + FieldElement{-33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101}, + }, + { + FieldElement{32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815}, + FieldElement{29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642}, + FieldElement{10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966}, + }, + { + FieldElement{25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574}, + FieldElement{-21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742}, + FieldElement{-18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689}, + }, + { + FieldElement{12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020}, + FieldElement{-10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772}, + FieldElement{3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982}, + }, + { + FieldElement{-14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953}, + FieldElement{-16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218}, + FieldElement{-17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265}, + }, + { + FieldElement{29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073}, + FieldElement{-3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325}, + FieldElement{-11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798}, + }, + { + FieldElement{-4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870}, + FieldElement{-7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863}, + FieldElement{-13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927}, + }, + }, + { + { + FieldElement{-2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267}, + FieldElement{-9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663}, + FieldElement{22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862}, + }, + { + FieldElement{-25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673}, + FieldElement{15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943}, + FieldElement{15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020}, + }, + { + FieldElement{-4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238}, + FieldElement{11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064}, + FieldElement{14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795}, + }, + { + FieldElement{15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052}, + FieldElement{-10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904}, + FieldElement{29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531}, + }, + { + FieldElement{-13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979}, + FieldElement{-5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841}, + FieldElement{10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431}, + }, + { + FieldElement{10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324}, + FieldElement{-31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940}, + FieldElement{10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320}, + }, + { + FieldElement{-15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184}, + FieldElement{14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114}, + FieldElement{30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878}, + }, + { + FieldElement{12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784}, + FieldElement{-2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091}, + FieldElement{-16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585}, + }, + }, + { + { + FieldElement{-8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208}, + FieldElement{10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864}, + FieldElement{17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661}, + }, + { + FieldElement{7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233}, + FieldElement{26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212}, + FieldElement{-12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525}, + }, + { + FieldElement{-24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068}, + FieldElement{9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397}, + FieldElement{-8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988}, + }, + { + FieldElement{5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889}, + FieldElement{32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038}, + FieldElement{14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697}, + }, + { + FieldElement{20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875}, + FieldElement{-25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905}, + FieldElement{-25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656}, + }, + { + FieldElement{11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818}, + FieldElement{27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714}, + FieldElement{10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203}, + }, + { + FieldElement{20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931}, + FieldElement{-30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024}, + FieldElement{-23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084}, + }, + { + FieldElement{-1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204}, + FieldElement{20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817}, + FieldElement{27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667}, + }, + }, + { + { + FieldElement{11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504}, + FieldElement{-12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768}, + FieldElement{-19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255}, + }, + { + FieldElement{6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790}, + FieldElement{1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438}, + FieldElement{-22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333}, + }, + { + FieldElement{17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971}, + FieldElement{31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905}, + FieldElement{29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409}, + }, + { + FieldElement{12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409}, + FieldElement{6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499}, + FieldElement{-8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363}, + }, + { + FieldElement{28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664}, + FieldElement{-11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324}, + FieldElement{-21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940}, + }, + { + FieldElement{13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990}, + FieldElement{-17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914}, + FieldElement{-25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290}, + }, + { + FieldElement{24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257}, + FieldElement{-6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433}, + FieldElement{-16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236}, + }, + { + FieldElement{-12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045}, + FieldElement{11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093}, + FieldElement{-1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347}, + }, + }, + { + { + FieldElement{-28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191}, + FieldElement{-15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507}, + FieldElement{-12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906}, + }, + { + FieldElement{3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018}, + FieldElement{-16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109}, + FieldElement{-23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926}, + }, + { + FieldElement{-24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528}, + FieldElement{8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625}, + FieldElement{-32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286}, + }, + { + FieldElement{2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033}, + FieldElement{27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866}, + FieldElement{21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896}, + }, + { + FieldElement{30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075}, + FieldElement{26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347}, + FieldElement{-22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437}, + }, + { + FieldElement{-5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165}, + FieldElement{-18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588}, + FieldElement{-32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193}, + }, + { + FieldElement{-19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017}, + FieldElement{-28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883}, + FieldElement{21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961}, + }, + { + FieldElement{8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043}, + FieldElement{29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663}, + FieldElement{-20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362}, + }, + }, + { + { + FieldElement{-33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860}, + FieldElement{2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466}, + FieldElement{-24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063}, + }, + { + FieldElement{-26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997}, + FieldElement{-1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295}, + FieldElement{-13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369}, + }, + { + FieldElement{9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385}, + FieldElement{18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109}, + FieldElement{2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906}, + }, + { + FieldElement{4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424}, + FieldElement{-19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185}, + FieldElement{7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962}, + }, + { + FieldElement{-7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325}, + FieldElement{10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593}, + FieldElement{696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404}, + }, + { + FieldElement{-11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644}, + FieldElement{17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801}, + FieldElement{26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804}, + }, + { + FieldElement{-31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884}, + FieldElement{-586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577}, + FieldElement{-9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849}, + }, + { + FieldElement{32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473}, + FieldElement{-8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644}, + FieldElement{-2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319}, + }, + }, + { + { + FieldElement{-11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599}, + FieldElement{-9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768}, + FieldElement{-27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084}, + }, + { + FieldElement{-27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328}, + FieldElement{-15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369}, + FieldElement{20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920}, + }, + { + FieldElement{12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815}, + FieldElement{-32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025}, + FieldElement{-21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397}, + }, + { + FieldElement{-20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448}, + FieldElement{6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981}, + FieldElement{30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165}, + }, + { + FieldElement{32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501}, + FieldElement{17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073}, + FieldElement{-1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861}, + }, + { + FieldElement{14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845}, + FieldElement{-1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211}, + FieldElement{18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870}, + }, + { + FieldElement{10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096}, + FieldElement{33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803}, + FieldElement{-32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168}, + }, + { + FieldElement{30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965}, + FieldElement{-14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505}, + FieldElement{18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598}, + }, + }, + { + { + FieldElement{5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782}, + FieldElement{5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900}, + FieldElement{-31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479}, + }, + { + FieldElement{-12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208}, + FieldElement{8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232}, + FieldElement{17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719}, + }, + { + FieldElement{16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271}, + FieldElement{-4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326}, + FieldElement{-8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132}, + }, + { + FieldElement{14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300}, + FieldElement{8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570}, + FieldElement{15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670}, + }, + { + FieldElement{-2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994}, + FieldElement{-12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913}, + FieldElement{31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317}, + }, + { + FieldElement{-25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730}, + FieldElement{842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096}, + FieldElement{-4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078}, + }, + { + FieldElement{-15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411}, + FieldElement{-19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905}, + FieldElement{-9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654}, + }, + { + FieldElement{-28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870}, + FieldElement{-23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498}, + FieldElement{12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579}, + }, + }, + { + { + FieldElement{14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677}, + FieldElement{10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647}, + FieldElement{-2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743}, + }, + { + FieldElement{-25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468}, + FieldElement{21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375}, + FieldElement{-25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155}, + }, + { + FieldElement{6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725}, + FieldElement{-12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612}, + FieldElement{-10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943}, + }, + { + FieldElement{-30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944}, + FieldElement{30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928}, + FieldElement{9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406}, + }, + { + FieldElement{22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139}, + FieldElement{-8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963}, + FieldElement{-31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693}, + }, + { + FieldElement{1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734}, + FieldElement{-448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680}, + FieldElement{-24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410}, + }, + { + FieldElement{-9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931}, + FieldElement{-16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654}, + FieldElement{22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710}, + }, + { + FieldElement{29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180}, + FieldElement{-26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684}, + FieldElement{-10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895}, + }, + }, + { + { + FieldElement{22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501}, + FieldElement{-11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413}, + FieldElement{6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880}, + }, + { + FieldElement{-8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874}, + FieldElement{22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962}, + FieldElement{-7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899}, + }, + { + FieldElement{21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152}, + FieldElement{9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063}, + FieldElement{7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080}, + }, + { + FieldElement{-9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146}, + FieldElement{-17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183}, + FieldElement{-19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133}, + }, + { + FieldElement{-32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421}, + FieldElement{-3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622}, + FieldElement{-4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197}, + }, + { + FieldElement{2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663}, + FieldElement{31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753}, + FieldElement{4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755}, + }, + { + FieldElement{-9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862}, + FieldElement{-26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118}, + FieldElement{26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171}, + }, + { + FieldElement{15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380}, + FieldElement{16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824}, + FieldElement{28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270}, + }, + }, + { + { + FieldElement{-817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438}, + FieldElement{-31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584}, + FieldElement{-594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562}, + }, + { + FieldElement{30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471}, + FieldElement{18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610}, + FieldElement{19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269}, + }, + { + FieldElement{-30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650}, + FieldElement{14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369}, + FieldElement{19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461}, + }, + { + FieldElement{30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462}, + FieldElement{-5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793}, + FieldElement{-2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218}, + }, + { + FieldElement{-24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226}, + FieldElement{18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019}, + FieldElement{-15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037}, + }, + { + FieldElement{31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171}, + FieldElement{-17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132}, + FieldElement{-28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841}, + }, + { + FieldElement{21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181}, + FieldElement{-33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210}, + FieldElement{-1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040}, + }, + { + FieldElement{3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935}, + FieldElement{24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105}, + FieldElement{-28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814}, + }, + }, + { + { + FieldElement{793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852}, + FieldElement{5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581}, + FieldElement{-4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646}, + }, + { + FieldElement{10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844}, + FieldElement{10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025}, + FieldElement{27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453}, + }, + { + FieldElement{-23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068}, + FieldElement{4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192}, + FieldElement{-17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921}, + }, + { + FieldElement{-9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259}, + FieldElement{-12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426}, + FieldElement{-5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072}, + }, + { + FieldElement{-17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305}, + FieldElement{13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832}, + FieldElement{28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943}, + }, + { + FieldElement{-16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011}, + FieldElement{24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447}, + FieldElement{17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494}, + }, + { + FieldElement{-28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245}, + FieldElement{-20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859}, + FieldElement{28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915}, + }, + { + FieldElement{16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707}, + FieldElement{10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848}, + FieldElement{-11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224}, + }, + }, + { + { + FieldElement{-25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391}, + FieldElement{15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215}, + FieldElement{-23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101}, + }, + { + FieldElement{23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713}, + FieldElement{21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849}, + FieldElement{-7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930}, + }, + { + FieldElement{-29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940}, + FieldElement{-21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031}, + FieldElement{-17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404}, + }, + { + FieldElement{-25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243}, + FieldElement{-23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116}, + FieldElement{-24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525}, + }, + { + FieldElement{-23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509}, + FieldElement{-10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883}, + FieldElement{15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865}, + }, + { + FieldElement{-3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660}, + FieldElement{4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273}, + FieldElement{-28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138}, + }, + { + FieldElement{-25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560}, + FieldElement{-10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135}, + FieldElement{2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941}, + }, + { + FieldElement{-4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739}, + FieldElement{18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756}, + FieldElement{-30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819}, + }, + }, + { + { + FieldElement{-6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347}, + FieldElement{-27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028}, + FieldElement{21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075}, + }, + { + FieldElement{16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799}, + FieldElement{-2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609}, + FieldElement{-25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817}, + }, + { + FieldElement{-23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989}, + FieldElement{-30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523}, + FieldElement{4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278}, + }, + { + FieldElement{31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045}, + FieldElement{19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377}, + FieldElement{24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480}, + }, + { + FieldElement{17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016}, + FieldElement{510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426}, + FieldElement{18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525}, + }, + { + FieldElement{13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396}, + FieldElement{9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080}, + FieldElement{12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892}, + }, + { + FieldElement{15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275}, + FieldElement{11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074}, + FieldElement{20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140}, + }, + { + FieldElement{-16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717}, + FieldElement{-1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101}, + FieldElement{24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127}, + }, + }, + { + { + FieldElement{-12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632}, + FieldElement{-26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415}, + FieldElement{-31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160}, + }, + { + FieldElement{31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876}, + FieldElement{22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625}, + FieldElement{-15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478}, + }, + { + FieldElement{27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164}, + FieldElement{26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595}, + FieldElement{-7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248}, + }, + { + FieldElement{-16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858}, + FieldElement{15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193}, + FieldElement{8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184}, + }, + { + FieldElement{-18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942}, + FieldElement{-1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635}, + FieldElement{21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948}, + }, + { + FieldElement{11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935}, + FieldElement{-25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415}, + FieldElement{-15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416}, + }, + { + FieldElement{-7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018}, + FieldElement{4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778}, + FieldElement{366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659}, + }, + { + FieldElement{-24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385}, + FieldElement{18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503}, + FieldElement{476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329}, + }, + }, + { + { + FieldElement{20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056}, + FieldElement{-13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838}, + FieldElement{24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948}, + }, + { + FieldElement{-3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691}, + FieldElement{-15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118}, + FieldElement{-23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517}, + }, + { + FieldElement{-20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269}, + FieldElement{-6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904}, + FieldElement{-23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589}, + }, + { + FieldElement{-28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193}, + FieldElement{-7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910}, + FieldElement{-30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930}, + }, + { + FieldElement{-7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667}, + FieldElement{25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481}, + FieldElement{-9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876}, + }, + { + FieldElement{22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640}, + FieldElement{-8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278}, + FieldElement{-21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112}, + }, + { + FieldElement{26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272}, + FieldElement{17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012}, + FieldElement{-10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221}, + }, + { + FieldElement{30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046}, + FieldElement{13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345}, + FieldElement{-19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310}, + }, + }, + { + { + FieldElement{19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937}, + FieldElement{31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636}, + FieldElement{-9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008}, + }, + { + FieldElement{-2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429}, + FieldElement{-15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576}, + FieldElement{31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066}, + }, + { + FieldElement{-9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490}, + FieldElement{-12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104}, + FieldElement{33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053}, + }, + { + FieldElement{31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275}, + FieldElement{-20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511}, + FieldElement{22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095}, + }, + { + FieldElement{-28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439}, + FieldElement{23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939}, + FieldElement{-23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424}, + }, + { + FieldElement{2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310}, + FieldElement{3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608}, + FieldElement{-32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079}, + }, + { + FieldElement{-23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101}, + FieldElement{21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418}, + FieldElement{18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576}, + }, + { + FieldElement{30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356}, + FieldElement{9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996}, + FieldElement{-26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099}, + }, + }, + { + { + FieldElement{-26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728}, + FieldElement{-13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658}, + FieldElement{-10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242}, + }, + { + FieldElement{-21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001}, + FieldElement{-4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766}, + FieldElement{18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373}, + }, + { + FieldElement{26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458}, + FieldElement{-17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628}, + FieldElement{-13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657}, + }, + { + FieldElement{-23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062}, + FieldElement{25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616}, + FieldElement{31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014}, + }, + { + FieldElement{24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383}, + FieldElement{-25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814}, + FieldElement{-20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718}, + }, + { + FieldElement{30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417}, + FieldElement{2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222}, + FieldElement{33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444}, + }, + { + FieldElement{-20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597}, + FieldElement{23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970}, + FieldElement{1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799}, + }, + { + FieldElement{-5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647}, + FieldElement{13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511}, + FieldElement{-29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032}, + }, + }, + { + { + FieldElement{9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834}, + FieldElement{-23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461}, + FieldElement{29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062}, + }, + { + FieldElement{-25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516}, + FieldElement{-20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547}, + FieldElement{-24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240}, + }, + { + FieldElement{-17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038}, + FieldElement{-33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741}, + FieldElement{16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103}, + }, + { + FieldElement{-19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747}, + FieldElement{-1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323}, + FieldElement{31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016}, + }, + { + FieldElement{-14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373}, + FieldElement{15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228}, + FieldElement{-2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141}, + }, + { + FieldElement{16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399}, + FieldElement{11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831}, + FieldElement{-185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376}, + }, + { + FieldElement{-32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313}, + FieldElement{-18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958}, + FieldElement{-6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577}, + }, + { + FieldElement{-22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743}, + FieldElement{29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684}, + FieldElement{-20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476}, + }, + }, +} diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go new file mode 100644 index 00000000..5f8b9947 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/edwards25519.go @@ -0,0 +1,1771 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package edwards25519 + +// This code is a port of the public domain, “ref10†implementation of ed25519 +// from SUPERCOP. + +// FieldElement represents an element of the field GF(2^255 - 19). An element +// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 +// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on +// context. +type FieldElement [10]int32 + +var zero FieldElement + +func FeZero(fe *FieldElement) { + copy(fe[:], zero[:]) +} + +func FeOne(fe *FieldElement) { + FeZero(fe) + fe[0] = 1 +} + +func FeAdd(dst, a, b *FieldElement) { + dst[0] = a[0] + b[0] + dst[1] = a[1] + b[1] + dst[2] = a[2] + b[2] + dst[3] = a[3] + b[3] + dst[4] = a[4] + b[4] + dst[5] = a[5] + b[5] + dst[6] = a[6] + b[6] + dst[7] = a[7] + b[7] + dst[8] = a[8] + b[8] + dst[9] = a[9] + b[9] +} + +func FeSub(dst, a, b *FieldElement) { + dst[0] = a[0] - b[0] + dst[1] = a[1] - b[1] + dst[2] = a[2] - b[2] + dst[3] = a[3] - b[3] + dst[4] = a[4] - b[4] + dst[5] = a[5] - b[5] + dst[6] = a[6] - b[6] + dst[7] = a[7] - b[7] + dst[8] = a[8] - b[8] + dst[9] = a[9] - b[9] +} + +func FeCopy(dst, src *FieldElement) { + copy(dst[:], src[:]) +} + +// Replace (f,g) with (g,g) if b == 1; +// replace (f,g) with (f,g) if b == 0. +// +// Preconditions: b in {0,1}. +func FeCMove(f, g *FieldElement, b int32) { + b = -b + f[0] ^= b & (f[0] ^ g[0]) + f[1] ^= b & (f[1] ^ g[1]) + f[2] ^= b & (f[2] ^ g[2]) + f[3] ^= b & (f[3] ^ g[3]) + f[4] ^= b & (f[4] ^ g[4]) + f[5] ^= b & (f[5] ^ g[5]) + f[6] ^= b & (f[6] ^ g[6]) + f[7] ^= b & (f[7] ^ g[7]) + f[8] ^= b & (f[8] ^ g[8]) + f[9] ^= b & (f[9] ^ g[9]) +} + +func load3(in []byte) int64 { + var r int64 + r = int64(in[0]) + r |= int64(in[1]) << 8 + r |= int64(in[2]) << 16 + return r +} + +func load4(in []byte) int64 { + var r int64 + r = int64(in[0]) + r |= int64(in[1]) << 8 + r |= int64(in[2]) << 16 + r |= int64(in[3]) << 24 + return r +} + +func FeFromBytes(dst *FieldElement, src *[32]byte) { + h0 := load4(src[:]) + h1 := load3(src[4:]) << 6 + h2 := load3(src[7:]) << 5 + h3 := load3(src[10:]) << 3 + h4 := load3(src[13:]) << 2 + h5 := load4(src[16:]) + h6 := load3(src[20:]) << 7 + h7 := load3(src[23:]) << 5 + h8 := load3(src[26:]) << 4 + h9 := (load3(src[29:]) & 8388607) << 2 + + FeCombine(dst, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) +} + +// FeToBytes marshals h to s. +// Preconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +// +// Write p=2^255-19; q=floor(h/p). +// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). +// +// Proof: +// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. +// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4. +// +// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). +// Then 0> 25 + q = (h[0] + q) >> 26 + q = (h[1] + q) >> 25 + q = (h[2] + q) >> 26 + q = (h[3] + q) >> 25 + q = (h[4] + q) >> 26 + q = (h[5] + q) >> 25 + q = (h[6] + q) >> 26 + q = (h[7] + q) >> 25 + q = (h[8] + q) >> 26 + q = (h[9] + q) >> 25 + + // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. + h[0] += 19 * q + // Goal: Output h-2^255 q, which is between 0 and 2^255-20. + + carry[0] = h[0] >> 26 + h[1] += carry[0] + h[0] -= carry[0] << 26 + carry[1] = h[1] >> 25 + h[2] += carry[1] + h[1] -= carry[1] << 25 + carry[2] = h[2] >> 26 + h[3] += carry[2] + h[2] -= carry[2] << 26 + carry[3] = h[3] >> 25 + h[4] += carry[3] + h[3] -= carry[3] << 25 + carry[4] = h[4] >> 26 + h[5] += carry[4] + h[4] -= carry[4] << 26 + carry[5] = h[5] >> 25 + h[6] += carry[5] + h[5] -= carry[5] << 25 + carry[6] = h[6] >> 26 + h[7] += carry[6] + h[6] -= carry[6] << 26 + carry[7] = h[7] >> 25 + h[8] += carry[7] + h[7] -= carry[7] << 25 + carry[8] = h[8] >> 26 + h[9] += carry[8] + h[8] -= carry[8] << 26 + carry[9] = h[9] >> 25 + h[9] -= carry[9] << 25 + // h10 = carry9 + + // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. + // Have h[0]+...+2^230 h[9] between 0 and 2^255-1; + // evidently 2^255 h10-2^255 q = 0. + // Goal: Output h[0]+...+2^230 h[9]. + + s[0] = byte(h[0] >> 0) + s[1] = byte(h[0] >> 8) + s[2] = byte(h[0] >> 16) + s[3] = byte((h[0] >> 24) | (h[1] << 2)) + s[4] = byte(h[1] >> 6) + s[5] = byte(h[1] >> 14) + s[6] = byte((h[1] >> 22) | (h[2] << 3)) + s[7] = byte(h[2] >> 5) + s[8] = byte(h[2] >> 13) + s[9] = byte((h[2] >> 21) | (h[3] << 5)) + s[10] = byte(h[3] >> 3) + s[11] = byte(h[3] >> 11) + s[12] = byte((h[3] >> 19) | (h[4] << 6)) + s[13] = byte(h[4] >> 2) + s[14] = byte(h[4] >> 10) + s[15] = byte(h[4] >> 18) + s[16] = byte(h[5] >> 0) + s[17] = byte(h[5] >> 8) + s[18] = byte(h[5] >> 16) + s[19] = byte((h[5] >> 24) | (h[6] << 1)) + s[20] = byte(h[6] >> 7) + s[21] = byte(h[6] >> 15) + s[22] = byte((h[6] >> 23) | (h[7] << 3)) + s[23] = byte(h[7] >> 5) + s[24] = byte(h[7] >> 13) + s[25] = byte((h[7] >> 21) | (h[8] << 4)) + s[26] = byte(h[8] >> 4) + s[27] = byte(h[8] >> 12) + s[28] = byte((h[8] >> 20) | (h[9] << 6)) + s[29] = byte(h[9] >> 2) + s[30] = byte(h[9] >> 10) + s[31] = byte(h[9] >> 18) +} + +func FeIsNegative(f *FieldElement) byte { + var s [32]byte + FeToBytes(&s, f) + return s[0] & 1 +} + +func FeIsNonZero(f *FieldElement) int32 { + var s [32]byte + FeToBytes(&s, f) + var x uint8 + for _, b := range s { + x |= b + } + x |= x >> 4 + x |= x >> 2 + x |= x >> 1 + return int32(x & 1) +} + +// FeNeg sets h = -f +// +// Preconditions: +// |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +func FeNeg(h, f *FieldElement) { + h[0] = -f[0] + h[1] = -f[1] + h[2] = -f[2] + h[3] = -f[3] + h[4] = -f[4] + h[5] = -f[5] + h[6] = -f[6] + h[7] = -f[7] + h[8] = -f[8] + h[9] = -f[9] +} + +func FeCombine(h *FieldElement, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) { + var c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 int64 + + /* + |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38)) + i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8 + |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19)) + i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9 + */ + + c0 = (h0 + (1 << 25)) >> 26 + h1 += c0 + h0 -= c0 << 26 + c4 = (h4 + (1 << 25)) >> 26 + h5 += c4 + h4 -= c4 << 26 + /* |h0| <= 2^25 */ + /* |h4| <= 2^25 */ + /* |h1| <= 1.51*2^58 */ + /* |h5| <= 1.51*2^58 */ + + c1 = (h1 + (1 << 24)) >> 25 + h2 += c1 + h1 -= c1 << 25 + c5 = (h5 + (1 << 24)) >> 25 + h6 += c5 + h5 -= c5 << 25 + /* |h1| <= 2^24; from now on fits into int32 */ + /* |h5| <= 2^24; from now on fits into int32 */ + /* |h2| <= 1.21*2^59 */ + /* |h6| <= 1.21*2^59 */ + + c2 = (h2 + (1 << 25)) >> 26 + h3 += c2 + h2 -= c2 << 26 + c6 = (h6 + (1 << 25)) >> 26 + h7 += c6 + h6 -= c6 << 26 + /* |h2| <= 2^25; from now on fits into int32 unchanged */ + /* |h6| <= 2^25; from now on fits into int32 unchanged */ + /* |h3| <= 1.51*2^58 */ + /* |h7| <= 1.51*2^58 */ + + c3 = (h3 + (1 << 24)) >> 25 + h4 += c3 + h3 -= c3 << 25 + c7 = (h7 + (1 << 24)) >> 25 + h8 += c7 + h7 -= c7 << 25 + /* |h3| <= 2^24; from now on fits into int32 unchanged */ + /* |h7| <= 2^24; from now on fits into int32 unchanged */ + /* |h4| <= 1.52*2^33 */ + /* |h8| <= 1.52*2^33 */ + + c4 = (h4 + (1 << 25)) >> 26 + h5 += c4 + h4 -= c4 << 26 + c8 = (h8 + (1 << 25)) >> 26 + h9 += c8 + h8 -= c8 << 26 + /* |h4| <= 2^25; from now on fits into int32 unchanged */ + /* |h8| <= 2^25; from now on fits into int32 unchanged */ + /* |h5| <= 1.01*2^24 */ + /* |h9| <= 1.51*2^58 */ + + c9 = (h9 + (1 << 24)) >> 25 + h0 += c9 * 19 + h9 -= c9 << 25 + /* |h9| <= 2^24; from now on fits into int32 unchanged */ + /* |h0| <= 1.8*2^37 */ + + c0 = (h0 + (1 << 25)) >> 26 + h1 += c0 + h0 -= c0 << 26 + /* |h0| <= 2^25; from now on fits into int32 unchanged */ + /* |h1| <= 1.01*2^24 */ + + h[0] = int32(h0) + h[1] = int32(h1) + h[2] = int32(h2) + h[3] = int32(h3) + h[4] = int32(h4) + h[5] = int32(h5) + h[6] = int32(h6) + h[7] = int32(h7) + h[8] = int32(h8) + h[9] = int32(h9) +} + +// FeMul calculates h = f * g +// Can overlap h with f or g. +// +// Preconditions: +// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +// +// Notes on implementation strategy: +// +// Using schoolbook multiplication. +// Karatsuba would save a little in some cost models. +// +// Most multiplications by 2 and 19 are 32-bit precomputations; +// cheaper than 64-bit postcomputations. +// +// There is one remaining multiplication by 19 in the carry chain; +// one *19 precomputation can be merged into this, +// but the resulting data flow is considerably less clean. +// +// There are 12 carries below. +// 10 of them are 2-way parallelizable and vectorizable. +// Can get away with 11 carries, but then data flow is much deeper. +// +// With tighter constraints on inputs, can squeeze carries into int32. +func FeMul(h, f, g *FieldElement) { + f0 := int64(f[0]) + f1 := int64(f[1]) + f2 := int64(f[2]) + f3 := int64(f[3]) + f4 := int64(f[4]) + f5 := int64(f[5]) + f6 := int64(f[6]) + f7 := int64(f[7]) + f8 := int64(f[8]) + f9 := int64(f[9]) + + f1_2 := int64(2 * f[1]) + f3_2 := int64(2 * f[3]) + f5_2 := int64(2 * f[5]) + f7_2 := int64(2 * f[7]) + f9_2 := int64(2 * f[9]) + + g0 := int64(g[0]) + g1 := int64(g[1]) + g2 := int64(g[2]) + g3 := int64(g[3]) + g4 := int64(g[4]) + g5 := int64(g[5]) + g6 := int64(g[6]) + g7 := int64(g[7]) + g8 := int64(g[8]) + g9 := int64(g[9]) + + g1_19 := int64(19 * g[1]) /* 1.4*2^29 */ + g2_19 := int64(19 * g[2]) /* 1.4*2^30; still ok */ + g3_19 := int64(19 * g[3]) + g4_19 := int64(19 * g[4]) + g5_19 := int64(19 * g[5]) + g6_19 := int64(19 * g[6]) + g7_19 := int64(19 * g[7]) + g8_19 := int64(19 * g[8]) + g9_19 := int64(19 * g[9]) + + h0 := f0*g0 + f1_2*g9_19 + f2*g8_19 + f3_2*g7_19 + f4*g6_19 + f5_2*g5_19 + f6*g4_19 + f7_2*g3_19 + f8*g2_19 + f9_2*g1_19 + h1 := f0*g1 + f1*g0 + f2*g9_19 + f3*g8_19 + f4*g7_19 + f5*g6_19 + f6*g5_19 + f7*g4_19 + f8*g3_19 + f9*g2_19 + h2 := f0*g2 + f1_2*g1 + f2*g0 + f3_2*g9_19 + f4*g8_19 + f5_2*g7_19 + f6*g6_19 + f7_2*g5_19 + f8*g4_19 + f9_2*g3_19 + h3 := f0*g3 + f1*g2 + f2*g1 + f3*g0 + f4*g9_19 + f5*g8_19 + f6*g7_19 + f7*g6_19 + f8*g5_19 + f9*g4_19 + h4 := f0*g4 + f1_2*g3 + f2*g2 + f3_2*g1 + f4*g0 + f5_2*g9_19 + f6*g8_19 + f7_2*g7_19 + f8*g6_19 + f9_2*g5_19 + h5 := f0*g5 + f1*g4 + f2*g3 + f3*g2 + f4*g1 + f5*g0 + f6*g9_19 + f7*g8_19 + f8*g7_19 + f9*g6_19 + h6 := f0*g6 + f1_2*g5 + f2*g4 + f3_2*g3 + f4*g2 + f5_2*g1 + f6*g0 + f7_2*g9_19 + f8*g8_19 + f9_2*g7_19 + h7 := f0*g7 + f1*g6 + f2*g5 + f3*g4 + f4*g3 + f5*g2 + f6*g1 + f7*g0 + f8*g9_19 + f9*g8_19 + h8 := f0*g8 + f1_2*g7 + f2*g6 + f3_2*g5 + f4*g4 + f5_2*g3 + f6*g2 + f7_2*g1 + f8*g0 + f9_2*g9_19 + h9 := f0*g9 + f1*g8 + f2*g7 + f3*g6 + f4*g5 + f5*g4 + f6*g3 + f7*g2 + f8*g1 + f9*g0 + + FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) +} + +func feSquare(f *FieldElement) (h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 int64) { + f0 := int64(f[0]) + f1 := int64(f[1]) + f2 := int64(f[2]) + f3 := int64(f[3]) + f4 := int64(f[4]) + f5 := int64(f[5]) + f6 := int64(f[6]) + f7 := int64(f[7]) + f8 := int64(f[8]) + f9 := int64(f[9]) + f0_2 := int64(2 * f[0]) + f1_2 := int64(2 * f[1]) + f2_2 := int64(2 * f[2]) + f3_2 := int64(2 * f[3]) + f4_2 := int64(2 * f[4]) + f5_2 := int64(2 * f[5]) + f6_2 := int64(2 * f[6]) + f7_2 := int64(2 * f[7]) + f5_38 := 38 * f5 // 1.31*2^30 + f6_19 := 19 * f6 // 1.31*2^30 + f7_38 := 38 * f7 // 1.31*2^30 + f8_19 := 19 * f8 // 1.31*2^30 + f9_38 := 38 * f9 // 1.31*2^30 + + h0 = f0*f0 + f1_2*f9_38 + f2_2*f8_19 + f3_2*f7_38 + f4_2*f6_19 + f5*f5_38 + h1 = f0_2*f1 + f2*f9_38 + f3_2*f8_19 + f4*f7_38 + f5_2*f6_19 + h2 = f0_2*f2 + f1_2*f1 + f3_2*f9_38 + f4_2*f8_19 + f5_2*f7_38 + f6*f6_19 + h3 = f0_2*f3 + f1_2*f2 + f4*f9_38 + f5_2*f8_19 + f6*f7_38 + h4 = f0_2*f4 + f1_2*f3_2 + f2*f2 + f5_2*f9_38 + f6_2*f8_19 + f7*f7_38 + h5 = f0_2*f5 + f1_2*f4 + f2_2*f3 + f6*f9_38 + f7_2*f8_19 + h6 = f0_2*f6 + f1_2*f5_2 + f2_2*f4 + f3_2*f3 + f7_2*f9_38 + f8*f8_19 + h7 = f0_2*f7 + f1_2*f6 + f2_2*f5 + f3_2*f4 + f8*f9_38 + h8 = f0_2*f8 + f1_2*f7_2 + f2_2*f6 + f3_2*f5_2 + f4*f4 + f9*f9_38 + h9 = f0_2*f9 + f1_2*f8 + f2_2*f7 + f3_2*f6 + f4_2*f5 + + return +} + +// FeSquare calculates h = f*f. Can overlap h with f. +// +// Preconditions: +// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. +func FeSquare(h, f *FieldElement) { + h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f) + FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) +} + +// FeSquare2 sets h = 2 * f * f +// +// Can overlap h with f. +// +// Preconditions: +// |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. +// +// Postconditions: +// |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. +// See fe_mul.c for discussion of implementation strategy. +func FeSquare2(h, f *FieldElement) { + h0, h1, h2, h3, h4, h5, h6, h7, h8, h9 := feSquare(f) + + h0 += h0 + h1 += h1 + h2 += h2 + h3 += h3 + h4 += h4 + h5 += h5 + h6 += h6 + h7 += h7 + h8 += h8 + h9 += h9 + + FeCombine(h, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9) +} + +func FeInvert(out, z *FieldElement) { + var t0, t1, t2, t3 FieldElement + var i int + + FeSquare(&t0, z) // 2^1 + FeSquare(&t1, &t0) // 2^2 + for i = 1; i < 2; i++ { // 2^3 + FeSquare(&t1, &t1) + } + FeMul(&t1, z, &t1) // 2^3 + 2^0 + FeMul(&t0, &t0, &t1) // 2^3 + 2^1 + 2^0 + FeSquare(&t2, &t0) // 2^4 + 2^2 + 2^1 + FeMul(&t1, &t1, &t2) // 2^4 + 2^3 + 2^2 + 2^1 + 2^0 + FeSquare(&t2, &t1) // 5,4,3,2,1 + for i = 1; i < 5; i++ { // 9,8,7,6,5 + FeSquare(&t2, &t2) + } + FeMul(&t1, &t2, &t1) // 9,8,7,6,5,4,3,2,1,0 + FeSquare(&t2, &t1) // 10..1 + for i = 1; i < 10; i++ { // 19..10 + FeSquare(&t2, &t2) + } + FeMul(&t2, &t2, &t1) // 19..0 + FeSquare(&t3, &t2) // 20..1 + for i = 1; i < 20; i++ { // 39..20 + FeSquare(&t3, &t3) + } + FeMul(&t2, &t3, &t2) // 39..0 + FeSquare(&t2, &t2) // 40..1 + for i = 1; i < 10; i++ { // 49..10 + FeSquare(&t2, &t2) + } + FeMul(&t1, &t2, &t1) // 49..0 + FeSquare(&t2, &t1) // 50..1 + for i = 1; i < 50; i++ { // 99..50 + FeSquare(&t2, &t2) + } + FeMul(&t2, &t2, &t1) // 99..0 + FeSquare(&t3, &t2) // 100..1 + for i = 1; i < 100; i++ { // 199..100 + FeSquare(&t3, &t3) + } + FeMul(&t2, &t3, &t2) // 199..0 + FeSquare(&t2, &t2) // 200..1 + for i = 1; i < 50; i++ { // 249..50 + FeSquare(&t2, &t2) + } + FeMul(&t1, &t2, &t1) // 249..0 + FeSquare(&t1, &t1) // 250..1 + for i = 1; i < 5; i++ { // 254..5 + FeSquare(&t1, &t1) + } + FeMul(out, &t1, &t0) // 254..5,3,1,0 +} + +func fePow22523(out, z *FieldElement) { + var t0, t1, t2 FieldElement + var i int + + FeSquare(&t0, z) + for i = 1; i < 1; i++ { + FeSquare(&t0, &t0) + } + FeSquare(&t1, &t0) + for i = 1; i < 2; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t1, z, &t1) + FeMul(&t0, &t0, &t1) + FeSquare(&t0, &t0) + for i = 1; i < 1; i++ { + FeSquare(&t0, &t0) + } + FeMul(&t0, &t1, &t0) + FeSquare(&t1, &t0) + for i = 1; i < 5; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t0, &t1, &t0) + FeSquare(&t1, &t0) + for i = 1; i < 10; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t1, &t1, &t0) + FeSquare(&t2, &t1) + for i = 1; i < 20; i++ { + FeSquare(&t2, &t2) + } + FeMul(&t1, &t2, &t1) + FeSquare(&t1, &t1) + for i = 1; i < 10; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t0, &t1, &t0) + FeSquare(&t1, &t0) + for i = 1; i < 50; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t1, &t1, &t0) + FeSquare(&t2, &t1) + for i = 1; i < 100; i++ { + FeSquare(&t2, &t2) + } + FeMul(&t1, &t2, &t1) + FeSquare(&t1, &t1) + for i = 1; i < 50; i++ { + FeSquare(&t1, &t1) + } + FeMul(&t0, &t1, &t0) + FeSquare(&t0, &t0) + for i = 1; i < 2; i++ { + FeSquare(&t0, &t0) + } + FeMul(out, &t0, z) +} + +// Group elements are members of the elliptic curve -x^2 + y^2 = 1 + d * x^2 * +// y^2 where d = -121665/121666. +// +// Several representations are used: +// ProjectiveGroupElement: (X:Y:Z) satisfying x=X/Z, y=Y/Z +// ExtendedGroupElement: (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT +// CompletedGroupElement: ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T +// PreComputedGroupElement: (y+x,y-x,2dxy) + +type ProjectiveGroupElement struct { + X, Y, Z FieldElement +} + +type ExtendedGroupElement struct { + X, Y, Z, T FieldElement +} + +type CompletedGroupElement struct { + X, Y, Z, T FieldElement +} + +type PreComputedGroupElement struct { + yPlusX, yMinusX, xy2d FieldElement +} + +type CachedGroupElement struct { + yPlusX, yMinusX, Z, T2d FieldElement +} + +func (p *ProjectiveGroupElement) Zero() { + FeZero(&p.X) + FeOne(&p.Y) + FeOne(&p.Z) +} + +func (p *ProjectiveGroupElement) Double(r *CompletedGroupElement) { + var t0 FieldElement + + FeSquare(&r.X, &p.X) + FeSquare(&r.Z, &p.Y) + FeSquare2(&r.T, &p.Z) + FeAdd(&r.Y, &p.X, &p.Y) + FeSquare(&t0, &r.Y) + FeAdd(&r.Y, &r.Z, &r.X) + FeSub(&r.Z, &r.Z, &r.X) + FeSub(&r.X, &t0, &r.Y) + FeSub(&r.T, &r.T, &r.Z) +} + +func (p *ProjectiveGroupElement) ToBytes(s *[32]byte) { + var recip, x, y FieldElement + + FeInvert(&recip, &p.Z) + FeMul(&x, &p.X, &recip) + FeMul(&y, &p.Y, &recip) + FeToBytes(s, &y) + s[31] ^= FeIsNegative(&x) << 7 +} + +func (p *ExtendedGroupElement) Zero() { + FeZero(&p.X) + FeOne(&p.Y) + FeOne(&p.Z) + FeZero(&p.T) +} + +func (p *ExtendedGroupElement) Double(r *CompletedGroupElement) { + var q ProjectiveGroupElement + p.ToProjective(&q) + q.Double(r) +} + +func (p *ExtendedGroupElement) ToCached(r *CachedGroupElement) { + FeAdd(&r.yPlusX, &p.Y, &p.X) + FeSub(&r.yMinusX, &p.Y, &p.X) + FeCopy(&r.Z, &p.Z) + FeMul(&r.T2d, &p.T, &d2) +} + +func (p *ExtendedGroupElement) ToProjective(r *ProjectiveGroupElement) { + FeCopy(&r.X, &p.X) + FeCopy(&r.Y, &p.Y) + FeCopy(&r.Z, &p.Z) +} + +func (p *ExtendedGroupElement) ToBytes(s *[32]byte) { + var recip, x, y FieldElement + + FeInvert(&recip, &p.Z) + FeMul(&x, &p.X, &recip) + FeMul(&y, &p.Y, &recip) + FeToBytes(s, &y) + s[31] ^= FeIsNegative(&x) << 7 +} + +func (p *ExtendedGroupElement) FromBytes(s *[32]byte) bool { + var u, v, v3, vxx, check FieldElement + + FeFromBytes(&p.Y, s) + FeOne(&p.Z) + FeSquare(&u, &p.Y) + FeMul(&v, &u, &d) + FeSub(&u, &u, &p.Z) // y = y^2-1 + FeAdd(&v, &v, &p.Z) // v = dy^2+1 + + FeSquare(&v3, &v) + FeMul(&v3, &v3, &v) // v3 = v^3 + FeSquare(&p.X, &v3) + FeMul(&p.X, &p.X, &v) + FeMul(&p.X, &p.X, &u) // x = uv^7 + + fePow22523(&p.X, &p.X) // x = (uv^7)^((q-5)/8) + FeMul(&p.X, &p.X, &v3) + FeMul(&p.X, &p.X, &u) // x = uv^3(uv^7)^((q-5)/8) + + var tmpX, tmp2 [32]byte + + FeSquare(&vxx, &p.X) + FeMul(&vxx, &vxx, &v) + FeSub(&check, &vxx, &u) // vx^2-u + if FeIsNonZero(&check) == 1 { + FeAdd(&check, &vxx, &u) // vx^2+u + if FeIsNonZero(&check) == 1 { + return false + } + FeMul(&p.X, &p.X, &SqrtM1) + + FeToBytes(&tmpX, &p.X) + for i, v := range tmpX { + tmp2[31-i] = v + } + } + + if FeIsNegative(&p.X) != (s[31] >> 7) { + FeNeg(&p.X, &p.X) + } + + FeMul(&p.T, &p.X, &p.Y) + return true +} + +func (p *CompletedGroupElement) ToProjective(r *ProjectiveGroupElement) { + FeMul(&r.X, &p.X, &p.T) + FeMul(&r.Y, &p.Y, &p.Z) + FeMul(&r.Z, &p.Z, &p.T) +} + +func (p *CompletedGroupElement) ToExtended(r *ExtendedGroupElement) { + FeMul(&r.X, &p.X, &p.T) + FeMul(&r.Y, &p.Y, &p.Z) + FeMul(&r.Z, &p.Z, &p.T) + FeMul(&r.T, &p.X, &p.Y) +} + +func (p *PreComputedGroupElement) Zero() { + FeOne(&p.yPlusX) + FeOne(&p.yMinusX) + FeZero(&p.xy2d) +} + +func geAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) { + var t0 FieldElement + + FeAdd(&r.X, &p.Y, &p.X) + FeSub(&r.Y, &p.Y, &p.X) + FeMul(&r.Z, &r.X, &q.yPlusX) + FeMul(&r.Y, &r.Y, &q.yMinusX) + FeMul(&r.T, &q.T2d, &p.T) + FeMul(&r.X, &p.Z, &q.Z) + FeAdd(&t0, &r.X, &r.X) + FeSub(&r.X, &r.Z, &r.Y) + FeAdd(&r.Y, &r.Z, &r.Y) + FeAdd(&r.Z, &t0, &r.T) + FeSub(&r.T, &t0, &r.T) +} + +func geSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *CachedGroupElement) { + var t0 FieldElement + + FeAdd(&r.X, &p.Y, &p.X) + FeSub(&r.Y, &p.Y, &p.X) + FeMul(&r.Z, &r.X, &q.yMinusX) + FeMul(&r.Y, &r.Y, &q.yPlusX) + FeMul(&r.T, &q.T2d, &p.T) + FeMul(&r.X, &p.Z, &q.Z) + FeAdd(&t0, &r.X, &r.X) + FeSub(&r.X, &r.Z, &r.Y) + FeAdd(&r.Y, &r.Z, &r.Y) + FeSub(&r.Z, &t0, &r.T) + FeAdd(&r.T, &t0, &r.T) +} + +func geMixedAdd(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) { + var t0 FieldElement + + FeAdd(&r.X, &p.Y, &p.X) + FeSub(&r.Y, &p.Y, &p.X) + FeMul(&r.Z, &r.X, &q.yPlusX) + FeMul(&r.Y, &r.Y, &q.yMinusX) + FeMul(&r.T, &q.xy2d, &p.T) + FeAdd(&t0, &p.Z, &p.Z) + FeSub(&r.X, &r.Z, &r.Y) + FeAdd(&r.Y, &r.Z, &r.Y) + FeAdd(&r.Z, &t0, &r.T) + FeSub(&r.T, &t0, &r.T) +} + +func geMixedSub(r *CompletedGroupElement, p *ExtendedGroupElement, q *PreComputedGroupElement) { + var t0 FieldElement + + FeAdd(&r.X, &p.Y, &p.X) + FeSub(&r.Y, &p.Y, &p.X) + FeMul(&r.Z, &r.X, &q.yMinusX) + FeMul(&r.Y, &r.Y, &q.yPlusX) + FeMul(&r.T, &q.xy2d, &p.T) + FeAdd(&t0, &p.Z, &p.Z) + FeSub(&r.X, &r.Z, &r.Y) + FeAdd(&r.Y, &r.Z, &r.Y) + FeSub(&r.Z, &t0, &r.T) + FeAdd(&r.T, &t0, &r.T) +} + +func slide(r *[256]int8, a *[32]byte) { + for i := range r { + r[i] = int8(1 & (a[i>>3] >> uint(i&7))) + } + + for i := range r { + if r[i] != 0 { + for b := 1; b <= 6 && i+b < 256; b++ { + if r[i+b] != 0 { + if r[i]+(r[i+b]<= -15 { + r[i] -= r[i+b] << uint(b) + for k := i + b; k < 256; k++ { + if r[k] == 0 { + r[k] = 1 + break + } + r[k] = 0 + } + } else { + break + } + } + } + } + } +} + +// GeDoubleScalarMultVartime sets r = a*A + b*B +// where a = a[0]+256*a[1]+...+256^31 a[31]. +// and b = b[0]+256*b[1]+...+256^31 b[31]. +// B is the Ed25519 base point (x,4/5) with x positive. +func GeDoubleScalarMultVartime(r *ProjectiveGroupElement, a *[32]byte, A *ExtendedGroupElement, b *[32]byte) { + var aSlide, bSlide [256]int8 + var Ai [8]CachedGroupElement // A,3A,5A,7A,9A,11A,13A,15A + var t CompletedGroupElement + var u, A2 ExtendedGroupElement + var i int + + slide(&aSlide, a) + slide(&bSlide, b) + + A.ToCached(&Ai[0]) + A.Double(&t) + t.ToExtended(&A2) + + for i := 0; i < 7; i++ { + geAdd(&t, &A2, &Ai[i]) + t.ToExtended(&u) + u.ToCached(&Ai[i+1]) + } + + r.Zero() + + for i = 255; i >= 0; i-- { + if aSlide[i] != 0 || bSlide[i] != 0 { + break + } + } + + for ; i >= 0; i-- { + r.Double(&t) + + if aSlide[i] > 0 { + t.ToExtended(&u) + geAdd(&t, &u, &Ai[aSlide[i]/2]) + } else if aSlide[i] < 0 { + t.ToExtended(&u) + geSub(&t, &u, &Ai[(-aSlide[i])/2]) + } + + if bSlide[i] > 0 { + t.ToExtended(&u) + geMixedAdd(&t, &u, &bi[bSlide[i]/2]) + } else if bSlide[i] < 0 { + t.ToExtended(&u) + geMixedSub(&t, &u, &bi[(-bSlide[i])/2]) + } + + t.ToProjective(r) + } +} + +// equal returns 1 if b == c and 0 otherwise, assuming that b and c are +// non-negative. +func equal(b, c int32) int32 { + x := uint32(b ^ c) + x-- + return int32(x >> 31) +} + +// negative returns 1 if b < 0 and 0 otherwise. +func negative(b int32) int32 { + return (b >> 31) & 1 +} + +func PreComputedGroupElementCMove(t, u *PreComputedGroupElement, b int32) { + FeCMove(&t.yPlusX, &u.yPlusX, b) + FeCMove(&t.yMinusX, &u.yMinusX, b) + FeCMove(&t.xy2d, &u.xy2d, b) +} + +func selectPoint(t *PreComputedGroupElement, pos int32, b int32) { + var minusT PreComputedGroupElement + bNegative := negative(b) + bAbs := b - (((-bNegative) & b) << 1) + + t.Zero() + for i := int32(0); i < 8; i++ { + PreComputedGroupElementCMove(t, &base[pos][i], equal(bAbs, i+1)) + } + FeCopy(&minusT.yPlusX, &t.yMinusX) + FeCopy(&minusT.yMinusX, &t.yPlusX) + FeNeg(&minusT.xy2d, &t.xy2d) + PreComputedGroupElementCMove(t, &minusT, bNegative) +} + +// GeScalarMultBase computes h = a*B, where +// a = a[0]+256*a[1]+...+256^31 a[31] +// B is the Ed25519 base point (x,4/5) with x positive. +// +// Preconditions: +// a[31] <= 127 +func GeScalarMultBase(h *ExtendedGroupElement, a *[32]byte) { + var e [64]int8 + + for i, v := range a { + e[2*i] = int8(v & 15) + e[2*i+1] = int8((v >> 4) & 15) + } + + // each e[i] is between 0 and 15 and e[63] is between 0 and 7. + + carry := int8(0) + for i := 0; i < 63; i++ { + e[i] += carry + carry = (e[i] + 8) >> 4 + e[i] -= carry << 4 + } + e[63] += carry + // each e[i] is between -8 and 8. + + h.Zero() + var t PreComputedGroupElement + var r CompletedGroupElement + for i := int32(1); i < 64; i += 2 { + selectPoint(&t, i/2, int32(e[i])) + geMixedAdd(&r, h, &t) + r.ToExtended(h) + } + + var s ProjectiveGroupElement + + h.Double(&r) + r.ToProjective(&s) + s.Double(&r) + r.ToProjective(&s) + s.Double(&r) + r.ToProjective(&s) + s.Double(&r) + r.ToExtended(h) + + for i := int32(0); i < 64; i += 2 { + selectPoint(&t, i/2, int32(e[i])) + geMixedAdd(&r, h, &t) + r.ToExtended(h) + } +} + +// The scalars are GF(2^252 + 27742317777372353535851937790883648493). + +// Input: +// a[0]+256*a[1]+...+256^31*a[31] = a +// b[0]+256*b[1]+...+256^31*b[31] = b +// c[0]+256*c[1]+...+256^31*c[31] = c +// +// Output: +// s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l +// where l = 2^252 + 27742317777372353535851937790883648493. +func ScMulAdd(s, a, b, c *[32]byte) { + a0 := 2097151 & load3(a[:]) + a1 := 2097151 & (load4(a[2:]) >> 5) + a2 := 2097151 & (load3(a[5:]) >> 2) + a3 := 2097151 & (load4(a[7:]) >> 7) + a4 := 2097151 & (load4(a[10:]) >> 4) + a5 := 2097151 & (load3(a[13:]) >> 1) + a6 := 2097151 & (load4(a[15:]) >> 6) + a7 := 2097151 & (load3(a[18:]) >> 3) + a8 := 2097151 & load3(a[21:]) + a9 := 2097151 & (load4(a[23:]) >> 5) + a10 := 2097151 & (load3(a[26:]) >> 2) + a11 := (load4(a[28:]) >> 7) + b0 := 2097151 & load3(b[:]) + b1 := 2097151 & (load4(b[2:]) >> 5) + b2 := 2097151 & (load3(b[5:]) >> 2) + b3 := 2097151 & (load4(b[7:]) >> 7) + b4 := 2097151 & (load4(b[10:]) >> 4) + b5 := 2097151 & (load3(b[13:]) >> 1) + b6 := 2097151 & (load4(b[15:]) >> 6) + b7 := 2097151 & (load3(b[18:]) >> 3) + b8 := 2097151 & load3(b[21:]) + b9 := 2097151 & (load4(b[23:]) >> 5) + b10 := 2097151 & (load3(b[26:]) >> 2) + b11 := (load4(b[28:]) >> 7) + c0 := 2097151 & load3(c[:]) + c1 := 2097151 & (load4(c[2:]) >> 5) + c2 := 2097151 & (load3(c[5:]) >> 2) + c3 := 2097151 & (load4(c[7:]) >> 7) + c4 := 2097151 & (load4(c[10:]) >> 4) + c5 := 2097151 & (load3(c[13:]) >> 1) + c6 := 2097151 & (load4(c[15:]) >> 6) + c7 := 2097151 & (load3(c[18:]) >> 3) + c8 := 2097151 & load3(c[21:]) + c9 := 2097151 & (load4(c[23:]) >> 5) + c10 := 2097151 & (load3(c[26:]) >> 2) + c11 := (load4(c[28:]) >> 7) + var carry [23]int64 + + s0 := c0 + a0*b0 + s1 := c1 + a0*b1 + a1*b0 + s2 := c2 + a0*b2 + a1*b1 + a2*b0 + s3 := c3 + a0*b3 + a1*b2 + a2*b1 + a3*b0 + s4 := c4 + a0*b4 + a1*b3 + a2*b2 + a3*b1 + a4*b0 + s5 := c5 + a0*b5 + a1*b4 + a2*b3 + a3*b2 + a4*b1 + a5*b0 + s6 := c6 + a0*b6 + a1*b5 + a2*b4 + a3*b3 + a4*b2 + a5*b1 + a6*b0 + s7 := c7 + a0*b7 + a1*b6 + a2*b5 + a3*b4 + a4*b3 + a5*b2 + a6*b1 + a7*b0 + s8 := c8 + a0*b8 + a1*b7 + a2*b6 + a3*b5 + a4*b4 + a5*b3 + a6*b2 + a7*b1 + a8*b0 + s9 := c9 + a0*b9 + a1*b8 + a2*b7 + a3*b6 + a4*b5 + a5*b4 + a6*b3 + a7*b2 + a8*b1 + a9*b0 + s10 := c10 + a0*b10 + a1*b9 + a2*b8 + a3*b7 + a4*b6 + a5*b5 + a6*b4 + a7*b3 + a8*b2 + a9*b1 + a10*b0 + s11 := c11 + a0*b11 + a1*b10 + a2*b9 + a3*b8 + a4*b7 + a5*b6 + a6*b5 + a7*b4 + a8*b3 + a9*b2 + a10*b1 + a11*b0 + s12 := a1*b11 + a2*b10 + a3*b9 + a4*b8 + a5*b7 + a6*b6 + a7*b5 + a8*b4 + a9*b3 + a10*b2 + a11*b1 + s13 := a2*b11 + a3*b10 + a4*b9 + a5*b8 + a6*b7 + a7*b6 + a8*b5 + a9*b4 + a10*b3 + a11*b2 + s14 := a3*b11 + a4*b10 + a5*b9 + a6*b8 + a7*b7 + a8*b6 + a9*b5 + a10*b4 + a11*b3 + s15 := a4*b11 + a5*b10 + a6*b9 + a7*b8 + a8*b7 + a9*b6 + a10*b5 + a11*b4 + s16 := a5*b11 + a6*b10 + a7*b9 + a8*b8 + a9*b7 + a10*b6 + a11*b5 + s17 := a6*b11 + a7*b10 + a8*b9 + a9*b8 + a10*b7 + a11*b6 + s18 := a7*b11 + a8*b10 + a9*b9 + a10*b8 + a11*b7 + s19 := a8*b11 + a9*b10 + a10*b9 + a11*b8 + s20 := a9*b11 + a10*b10 + a11*b9 + s21 := a10*b11 + a11*b10 + s22 := a11 * b11 + s23 := int64(0) + + carry[0] = (s0 + (1 << 20)) >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[2] = (s2 + (1 << 20)) >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[4] = (s4 + (1 << 20)) >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[6] = (s6 + (1 << 20)) >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[8] = (s8 + (1 << 20)) >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[10] = (s10 + (1 << 20)) >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + carry[12] = (s12 + (1 << 20)) >> 21 + s13 += carry[12] + s12 -= carry[12] << 21 + carry[14] = (s14 + (1 << 20)) >> 21 + s15 += carry[14] + s14 -= carry[14] << 21 + carry[16] = (s16 + (1 << 20)) >> 21 + s17 += carry[16] + s16 -= carry[16] << 21 + carry[18] = (s18 + (1 << 20)) >> 21 + s19 += carry[18] + s18 -= carry[18] << 21 + carry[20] = (s20 + (1 << 20)) >> 21 + s21 += carry[20] + s20 -= carry[20] << 21 + carry[22] = (s22 + (1 << 20)) >> 21 + s23 += carry[22] + s22 -= carry[22] << 21 + + carry[1] = (s1 + (1 << 20)) >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[3] = (s3 + (1 << 20)) >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[5] = (s5 + (1 << 20)) >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[7] = (s7 + (1 << 20)) >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[9] = (s9 + (1 << 20)) >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[11] = (s11 + (1 << 20)) >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + carry[13] = (s13 + (1 << 20)) >> 21 + s14 += carry[13] + s13 -= carry[13] << 21 + carry[15] = (s15 + (1 << 20)) >> 21 + s16 += carry[15] + s15 -= carry[15] << 21 + carry[17] = (s17 + (1 << 20)) >> 21 + s18 += carry[17] + s17 -= carry[17] << 21 + carry[19] = (s19 + (1 << 20)) >> 21 + s20 += carry[19] + s19 -= carry[19] << 21 + carry[21] = (s21 + (1 << 20)) >> 21 + s22 += carry[21] + s21 -= carry[21] << 21 + + s11 += s23 * 666643 + s12 += s23 * 470296 + s13 += s23 * 654183 + s14 -= s23 * 997805 + s15 += s23 * 136657 + s16 -= s23 * 683901 + s23 = 0 + + s10 += s22 * 666643 + s11 += s22 * 470296 + s12 += s22 * 654183 + s13 -= s22 * 997805 + s14 += s22 * 136657 + s15 -= s22 * 683901 + s22 = 0 + + s9 += s21 * 666643 + s10 += s21 * 470296 + s11 += s21 * 654183 + s12 -= s21 * 997805 + s13 += s21 * 136657 + s14 -= s21 * 683901 + s21 = 0 + + s8 += s20 * 666643 + s9 += s20 * 470296 + s10 += s20 * 654183 + s11 -= s20 * 997805 + s12 += s20 * 136657 + s13 -= s20 * 683901 + s20 = 0 + + s7 += s19 * 666643 + s8 += s19 * 470296 + s9 += s19 * 654183 + s10 -= s19 * 997805 + s11 += s19 * 136657 + s12 -= s19 * 683901 + s19 = 0 + + s6 += s18 * 666643 + s7 += s18 * 470296 + s8 += s18 * 654183 + s9 -= s18 * 997805 + s10 += s18 * 136657 + s11 -= s18 * 683901 + s18 = 0 + + carry[6] = (s6 + (1 << 20)) >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[8] = (s8 + (1 << 20)) >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[10] = (s10 + (1 << 20)) >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + carry[12] = (s12 + (1 << 20)) >> 21 + s13 += carry[12] + s12 -= carry[12] << 21 + carry[14] = (s14 + (1 << 20)) >> 21 + s15 += carry[14] + s14 -= carry[14] << 21 + carry[16] = (s16 + (1 << 20)) >> 21 + s17 += carry[16] + s16 -= carry[16] << 21 + + carry[7] = (s7 + (1 << 20)) >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[9] = (s9 + (1 << 20)) >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[11] = (s11 + (1 << 20)) >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + carry[13] = (s13 + (1 << 20)) >> 21 + s14 += carry[13] + s13 -= carry[13] << 21 + carry[15] = (s15 + (1 << 20)) >> 21 + s16 += carry[15] + s15 -= carry[15] << 21 + + s5 += s17 * 666643 + s6 += s17 * 470296 + s7 += s17 * 654183 + s8 -= s17 * 997805 + s9 += s17 * 136657 + s10 -= s17 * 683901 + s17 = 0 + + s4 += s16 * 666643 + s5 += s16 * 470296 + s6 += s16 * 654183 + s7 -= s16 * 997805 + s8 += s16 * 136657 + s9 -= s16 * 683901 + s16 = 0 + + s3 += s15 * 666643 + s4 += s15 * 470296 + s5 += s15 * 654183 + s6 -= s15 * 997805 + s7 += s15 * 136657 + s8 -= s15 * 683901 + s15 = 0 + + s2 += s14 * 666643 + s3 += s14 * 470296 + s4 += s14 * 654183 + s5 -= s14 * 997805 + s6 += s14 * 136657 + s7 -= s14 * 683901 + s14 = 0 + + s1 += s13 * 666643 + s2 += s13 * 470296 + s3 += s13 * 654183 + s4 -= s13 * 997805 + s5 += s13 * 136657 + s6 -= s13 * 683901 + s13 = 0 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = (s0 + (1 << 20)) >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[2] = (s2 + (1 << 20)) >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[4] = (s4 + (1 << 20)) >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[6] = (s6 + (1 << 20)) >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[8] = (s8 + (1 << 20)) >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[10] = (s10 + (1 << 20)) >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + + carry[1] = (s1 + (1 << 20)) >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[3] = (s3 + (1 << 20)) >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[5] = (s5 + (1 << 20)) >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[7] = (s7 + (1 << 20)) >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[9] = (s9 + (1 << 20)) >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[11] = (s11 + (1 << 20)) >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = s0 >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[1] = s1 >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[2] = s2 >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[3] = s3 >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[4] = s4 >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[5] = s5 >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[6] = s6 >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[7] = s7 >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[8] = s8 >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[9] = s9 >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[10] = s10 >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + carry[11] = s11 >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = s0 >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[1] = s1 >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[2] = s2 >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[3] = s3 >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[4] = s4 >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[5] = s5 >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[6] = s6 >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[7] = s7 >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[8] = s8 >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[9] = s9 >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[10] = s10 >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + + s[0] = byte(s0 >> 0) + s[1] = byte(s0 >> 8) + s[2] = byte((s0 >> 16) | (s1 << 5)) + s[3] = byte(s1 >> 3) + s[4] = byte(s1 >> 11) + s[5] = byte((s1 >> 19) | (s2 << 2)) + s[6] = byte(s2 >> 6) + s[7] = byte((s2 >> 14) | (s3 << 7)) + s[8] = byte(s3 >> 1) + s[9] = byte(s3 >> 9) + s[10] = byte((s3 >> 17) | (s4 << 4)) + s[11] = byte(s4 >> 4) + s[12] = byte(s4 >> 12) + s[13] = byte((s4 >> 20) | (s5 << 1)) + s[14] = byte(s5 >> 7) + s[15] = byte((s5 >> 15) | (s6 << 6)) + s[16] = byte(s6 >> 2) + s[17] = byte(s6 >> 10) + s[18] = byte((s6 >> 18) | (s7 << 3)) + s[19] = byte(s7 >> 5) + s[20] = byte(s7 >> 13) + s[21] = byte(s8 >> 0) + s[22] = byte(s8 >> 8) + s[23] = byte((s8 >> 16) | (s9 << 5)) + s[24] = byte(s9 >> 3) + s[25] = byte(s9 >> 11) + s[26] = byte((s9 >> 19) | (s10 << 2)) + s[27] = byte(s10 >> 6) + s[28] = byte((s10 >> 14) | (s11 << 7)) + s[29] = byte(s11 >> 1) + s[30] = byte(s11 >> 9) + s[31] = byte(s11 >> 17) +} + +// Input: +// s[0]+256*s[1]+...+256^63*s[63] = s +// +// Output: +// s[0]+256*s[1]+...+256^31*s[31] = s mod l +// where l = 2^252 + 27742317777372353535851937790883648493. +func ScReduce(out *[32]byte, s *[64]byte) { + s0 := 2097151 & load3(s[:]) + s1 := 2097151 & (load4(s[2:]) >> 5) + s2 := 2097151 & (load3(s[5:]) >> 2) + s3 := 2097151 & (load4(s[7:]) >> 7) + s4 := 2097151 & (load4(s[10:]) >> 4) + s5 := 2097151 & (load3(s[13:]) >> 1) + s6 := 2097151 & (load4(s[15:]) >> 6) + s7 := 2097151 & (load3(s[18:]) >> 3) + s8 := 2097151 & load3(s[21:]) + s9 := 2097151 & (load4(s[23:]) >> 5) + s10 := 2097151 & (load3(s[26:]) >> 2) + s11 := 2097151 & (load4(s[28:]) >> 7) + s12 := 2097151 & (load4(s[31:]) >> 4) + s13 := 2097151 & (load3(s[34:]) >> 1) + s14 := 2097151 & (load4(s[36:]) >> 6) + s15 := 2097151 & (load3(s[39:]) >> 3) + s16 := 2097151 & load3(s[42:]) + s17 := 2097151 & (load4(s[44:]) >> 5) + s18 := 2097151 & (load3(s[47:]) >> 2) + s19 := 2097151 & (load4(s[49:]) >> 7) + s20 := 2097151 & (load4(s[52:]) >> 4) + s21 := 2097151 & (load3(s[55:]) >> 1) + s22 := 2097151 & (load4(s[57:]) >> 6) + s23 := (load4(s[60:]) >> 3) + + s11 += s23 * 666643 + s12 += s23 * 470296 + s13 += s23 * 654183 + s14 -= s23 * 997805 + s15 += s23 * 136657 + s16 -= s23 * 683901 + s23 = 0 + + s10 += s22 * 666643 + s11 += s22 * 470296 + s12 += s22 * 654183 + s13 -= s22 * 997805 + s14 += s22 * 136657 + s15 -= s22 * 683901 + s22 = 0 + + s9 += s21 * 666643 + s10 += s21 * 470296 + s11 += s21 * 654183 + s12 -= s21 * 997805 + s13 += s21 * 136657 + s14 -= s21 * 683901 + s21 = 0 + + s8 += s20 * 666643 + s9 += s20 * 470296 + s10 += s20 * 654183 + s11 -= s20 * 997805 + s12 += s20 * 136657 + s13 -= s20 * 683901 + s20 = 0 + + s7 += s19 * 666643 + s8 += s19 * 470296 + s9 += s19 * 654183 + s10 -= s19 * 997805 + s11 += s19 * 136657 + s12 -= s19 * 683901 + s19 = 0 + + s6 += s18 * 666643 + s7 += s18 * 470296 + s8 += s18 * 654183 + s9 -= s18 * 997805 + s10 += s18 * 136657 + s11 -= s18 * 683901 + s18 = 0 + + var carry [17]int64 + + carry[6] = (s6 + (1 << 20)) >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[8] = (s8 + (1 << 20)) >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[10] = (s10 + (1 << 20)) >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + carry[12] = (s12 + (1 << 20)) >> 21 + s13 += carry[12] + s12 -= carry[12] << 21 + carry[14] = (s14 + (1 << 20)) >> 21 + s15 += carry[14] + s14 -= carry[14] << 21 + carry[16] = (s16 + (1 << 20)) >> 21 + s17 += carry[16] + s16 -= carry[16] << 21 + + carry[7] = (s7 + (1 << 20)) >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[9] = (s9 + (1 << 20)) >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[11] = (s11 + (1 << 20)) >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + carry[13] = (s13 + (1 << 20)) >> 21 + s14 += carry[13] + s13 -= carry[13] << 21 + carry[15] = (s15 + (1 << 20)) >> 21 + s16 += carry[15] + s15 -= carry[15] << 21 + + s5 += s17 * 666643 + s6 += s17 * 470296 + s7 += s17 * 654183 + s8 -= s17 * 997805 + s9 += s17 * 136657 + s10 -= s17 * 683901 + s17 = 0 + + s4 += s16 * 666643 + s5 += s16 * 470296 + s6 += s16 * 654183 + s7 -= s16 * 997805 + s8 += s16 * 136657 + s9 -= s16 * 683901 + s16 = 0 + + s3 += s15 * 666643 + s4 += s15 * 470296 + s5 += s15 * 654183 + s6 -= s15 * 997805 + s7 += s15 * 136657 + s8 -= s15 * 683901 + s15 = 0 + + s2 += s14 * 666643 + s3 += s14 * 470296 + s4 += s14 * 654183 + s5 -= s14 * 997805 + s6 += s14 * 136657 + s7 -= s14 * 683901 + s14 = 0 + + s1 += s13 * 666643 + s2 += s13 * 470296 + s3 += s13 * 654183 + s4 -= s13 * 997805 + s5 += s13 * 136657 + s6 -= s13 * 683901 + s13 = 0 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = (s0 + (1 << 20)) >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[2] = (s2 + (1 << 20)) >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[4] = (s4 + (1 << 20)) >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[6] = (s6 + (1 << 20)) >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[8] = (s8 + (1 << 20)) >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[10] = (s10 + (1 << 20)) >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + + carry[1] = (s1 + (1 << 20)) >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[3] = (s3 + (1 << 20)) >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[5] = (s5 + (1 << 20)) >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[7] = (s7 + (1 << 20)) >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[9] = (s9 + (1 << 20)) >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[11] = (s11 + (1 << 20)) >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = s0 >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[1] = s1 >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[2] = s2 >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[3] = s3 >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[4] = s4 >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[5] = s5 >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[6] = s6 >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[7] = s7 >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[8] = s8 >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[9] = s9 >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[10] = s10 >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + carry[11] = s11 >> 21 + s12 += carry[11] + s11 -= carry[11] << 21 + + s0 += s12 * 666643 + s1 += s12 * 470296 + s2 += s12 * 654183 + s3 -= s12 * 997805 + s4 += s12 * 136657 + s5 -= s12 * 683901 + s12 = 0 + + carry[0] = s0 >> 21 + s1 += carry[0] + s0 -= carry[0] << 21 + carry[1] = s1 >> 21 + s2 += carry[1] + s1 -= carry[1] << 21 + carry[2] = s2 >> 21 + s3 += carry[2] + s2 -= carry[2] << 21 + carry[3] = s3 >> 21 + s4 += carry[3] + s3 -= carry[3] << 21 + carry[4] = s4 >> 21 + s5 += carry[4] + s4 -= carry[4] << 21 + carry[5] = s5 >> 21 + s6 += carry[5] + s5 -= carry[5] << 21 + carry[6] = s6 >> 21 + s7 += carry[6] + s6 -= carry[6] << 21 + carry[7] = s7 >> 21 + s8 += carry[7] + s7 -= carry[7] << 21 + carry[8] = s8 >> 21 + s9 += carry[8] + s8 -= carry[8] << 21 + carry[9] = s9 >> 21 + s10 += carry[9] + s9 -= carry[9] << 21 + carry[10] = s10 >> 21 + s11 += carry[10] + s10 -= carry[10] << 21 + + out[0] = byte(s0 >> 0) + out[1] = byte(s0 >> 8) + out[2] = byte((s0 >> 16) | (s1 << 5)) + out[3] = byte(s1 >> 3) + out[4] = byte(s1 >> 11) + out[5] = byte((s1 >> 19) | (s2 << 2)) + out[6] = byte(s2 >> 6) + out[7] = byte((s2 >> 14) | (s3 << 7)) + out[8] = byte(s3 >> 1) + out[9] = byte(s3 >> 9) + out[10] = byte((s3 >> 17) | (s4 << 4)) + out[11] = byte(s4 >> 4) + out[12] = byte(s4 >> 12) + out[13] = byte((s4 >> 20) | (s5 << 1)) + out[14] = byte(s5 >> 7) + out[15] = byte((s5 >> 15) | (s6 << 6)) + out[16] = byte(s6 >> 2) + out[17] = byte(s6 >> 10) + out[18] = byte((s6 >> 18) | (s7 << 3)) + out[19] = byte(s7 >> 5) + out[20] = byte(s7 >> 13) + out[21] = byte(s8 >> 0) + out[22] = byte(s8 >> 8) + out[23] = byte((s8 >> 16) | (s9 << 5)) + out[24] = byte(s9 >> 3) + out[25] = byte(s9 >> 11) + out[26] = byte((s9 >> 19) | (s10 << 2)) + out[27] = byte(s10 >> 6) + out[28] = byte((s10 >> 14) | (s11 << 7)) + out[29] = byte(s11 >> 1) + out[30] = byte(s11 >> 9) + out[31] = byte(s11 >> 17) +} diff --git a/vendor/golang.org/x/crypto/ed25519/testdata/sign.input.gz b/vendor/golang.org/x/crypto/ed25519/testdata/sign.input.gz new file mode 100644 index 0000000000000000000000000000000000000000..41030690c0db39a0279304a46f002a625caa9080 GIT binary patch literal 50330 zcmV*3Kz6?$iwFoTsc=vL19NF-ZZ2tVaCLM5?EPz!AU%?02mX)M0EV~k28PG}moVqp z*D^9gA!nNH)m2%^C^oAyBf`zi0DW8qRPPrlJ!@tDXRK03 zd(%@#94(}Gu8`uIr`;NMD|7S^`}4*y-?mGB@7ZaMnnO!7oDj z{=_oEOn%&|@gzPpt~=gb-~E*LmK(|_?|YtHONlw=)K8l+g!ku9UTcRw-lyL?>Yii2 zb){U-iZP#X%iCv)rTC-5?Z}sL=BXEA5vhDdjGp(ZW#rjbEN3)d z=IMI{cIK>eW@LlecwgcV`#3{+aia3fl2bjghg7gnA9(HzDVNKly|J{Xw9?vhdI;s< zCH;(3)eNZoOLxeVYHgo8M*BAKK$=ivGKig4)4NCp1tCnrG?Ude*J*;uGZe4 zJ$miCJnMO}zD6s(JQ!;s ztfctj_WbP3u3=JU>(G`=U) z`QTXie#*qB)AAa3g?#X(_g!JLx8Yg2q!bNOWv`r~cJQQ<&YbvCZ=DUnLx@))#5s|E?n-JDB3pP%R?=C6SN{H;ZVaLz*t%U!5_Qf~}514x* z1e~X0_Z@GXGt?Byb{otSEX@1h#R*@ZQrhggRb6o=A;%)PfJ? z-s{T-y`8rtj)%=|-af{A*}o8fe*FMGxbm`Lw4e96E7!SmGqC2|`if(m$cLR+$Bpl) z>1q7@zzO+{BVl-R5O6PFS8>?*K1Aiq29gbTA(}@QoRB*YzCz;Qp}ZUE_hsQG$ugHZ zC*ePg|BqMs)B41R?>&SN7IZvB4S#*e_*=!1YU5Kj`yFrr0t|oh5O4S!B2p$Tt^3}Y zLt%H@#rMDhguRVRuT?T11a>G-4g4pZ_rX30@jc;Ljw~1W7xfvL2e+@5mxVt zd+_;(Pw0&lc5A8tmvjkxWcM}Vyn7_V%zkoY%WflJU@0A3(eHydSEBMu=)uIc5q6WK z2j)a9$XIH~n}9;g}~9 z(n897QNWAsVTpTy+aFs+F%5KqWyX`eXvsOhvuPET*bcUi^Pz};V7f_<&& z=hqK-^CUm_cv=9*u)Ja3=Ypl?Nv+NLw%H!iz`k!L4DR$qK+_KUmh*rDNmjkb=d?q5 z89fGKaw!ktf@DdiDhrbYy#=x}TSV^1u8BJM4Z)NEuvz-`2EZFX-2M-*^M~9}OZ>3W z>ixX2$9LcW>5?YM1^lo2vfBJzewW@x!nivS`_3Wd-5zmI9{QBKNN5GTK?uD37y%Px z2^71pE{30xMf!MvH6+QK3Q<(A0Q4tR=}kzHbPA!h=Qb_ z-VF+yKbb7di7^zs_9mXdU+nYnOJ`XLe_&6Ri zHPu1I1|#oyunhhS;RB3P32C_c0eP^Dx+~%BIe5HLW&pd--9Nv603Y%ai)-1$Zayv7 zpJ%l?12xQ(MqH6R+@F(h$hpWV1wYhf398sMp&f(^B+xIg`Gv({!DFqFLtZ&2!L5*_~&fDX_ITyGdSLbVt z4|(7F^ZN&+O+e_F@Bz!mmnk_uu;H95W2J2FEN#85t0g_Vn0B9pu}kd zFQ$MRE-;J8dQR3EY~3l4(y*qWjsXHtl9fSR2CG?<%--^7ymB3tK#vt1e&qk`rT$n> zvVsrrjVf|Xsv?l`VMj>Mctwtf96?1xngE_9?EdcO*`35lg-6;ZoRfoi`l~U@tYtQ@~@C%vd;E zRtW(jGRl{V*-`5O%}-&AL-@aVtv{foSt)P9C7@_xJ)o?D_MQ);fZxOvn|hcx!nq!@ zH%qd~qzUvw#e7d^%c&G86eItW;>s8ipbPXsHO)5HmmD0~KYj*)o(7ebc8ry@pI<)! zWV+oY%2{@~toywrYWg6zZjzkIPj_zwsg@aL9p za>@qMd|(E+jUPmcropq=xMi&h1ejE!{8JJNRUTFIOJFa7vMFGeqLuvMs2l7J^iJ;e zOHq?Z?)=NrsGbJ3I$)I|ZU6lG0Te3Ob4=ia%Sw?@$ltH1>&M^&7$ykez^nz1NxhfI zpTyfMmJE#~*IUe&1j6^`FsesUQ#x=3=uIrL*aeQ$3 zA{jq{dbE4;HNnIG*RS?x%!Nsm;ZHsh529>jwF$2WYYvMzL->3WEAVc@%lm`}pWN(8 zovg|tWfPuyCY|7j)JU5+Mph-uHXMia)c3^42fuvr*eA9#_{)SBKLog6KY#+2NJ@!H zzGa2ktcS-O0Z9S~ng}p$z5rzYf;%2QA>cox5WoQGB0LdCcmP?1nVb($5DVP3&X**K zMYHH}fDsCiyYv}1;lQ&d&*nl&mdFi238D@IgYS3G9kV^FUh>SzX zCkX%@*qPqWd!A8a#VtuYfY9rqz~V1~54Z~ffc?fH3-Bj`kf|pMDPkYq==4hhW{2hr z9*NlikhiTYbVSAoj*L3a-;-{Rcxx5sq3Qyt_uAQO&-uo4*iOv47uK?RkVfv?88;-V zluQBui$o7V`b)C-|NVM@!sI8Y#64f2T%g!2o|G+<_5&ten4F-Fa1UO_i7TE|fT$p8 z{sn*h9RmbXQ_HF0xqb@^mS3_sZ$tr1QOgQ!vkpd)TV3Qb7qpc3=hqJ~2w!$-Rcw0_ zpl&5CP-S4-;O+7A%(S0o_}#|Vrww8Pp!Z_DZ(@0 z>iRaoXWxL<2lT#h?C}0iyyBnME+qtIMn3m?6z)&uLCpcm!8i(d^HSY{xUxYwf@%|W z^0V1jcB^HNz#ohWpbL)emD&Y(kSJ{l!}upFK(RwKTl^o)II_zN`1N?6`u_a-0WXU{ z4yQiCBtdEGz1gGWmrno+S~|ra0vq46J**CiKs*4Otz-?E4?Waqlso_r;3e)q7ulb6 z!yMV3LKa>Rp8tY``N_lr)@9A0AqH|VVB~3M0a|gI#=-+MGbkpV!*Y{@=l|48{vqyC z+MGl6=iLFn`<+znR6cV9Lk4mRmRp-Mtte;;$pho}=9_leoqf(?yYi)Se`kflQ1U+&- z&hxT^6j&P+?I{c?`B>1cGs(C337(G+UM#n<2mE#*CGc+&XH&EP5H|Kw}_={qKpPFq%1FY%FljklJ~U-$b^kVL?; zn6QRR60?@3-s~P`t@LcyrR$g;FafI)AdugDQt3J1QoSA#-69zSE%=vLNX>?>5O~M? z^XmuncUJ0C03Ov0HaW257kesvb6|yVqTJs+er5!(6FEHpr~D*u*47R%=z4obDk93v z5^e$MtU16TH(ByMEMs~+EMqZ%aR3FZd05Ik18d2;640f_dHtDUr9-?6`KeaR`yB?D z@<08ee=vz!wwHS?P)sCDF;3t)HGB5~nfOf2Mp~ty3zU}@eD4F=G-#0hFZBflc$k3# z&WBrjzM9qq@A07lKcAk9<^rltw>}_2Ahmd4_McxrAQIf`cNzR0%d;H2dvyPbM8G-6 zQ>ws!s6SK@(XwP8@&%zA^JSTczbqI@f_SeN64cmiB00wFRWMZ^<-)DNCE#AbsGmyN zy^8?s#ljcG4EFAg@y(GWw;u9FOWw_RCEPshINdDsKmDqIHrRsbR5u}fVf4Q-(4#BPI(NW>SvER?1%i}r#Lnt1ei&J?u-%mE(@ zC9}5go`hfQzWn_90g(XWktk7P4q`1?wLNR^#oK0AAQH9Sb-*V1=Ot89s^OQLI-StS z<0mP+6Fkk`Rg<-hA&q#J|AKWl$d@{>ndtylnJ1H!ylY)%A2t9JCH8^&iM~9J@)1)5 zygiqqWLU%XIe2mi|F>TD52ZHX@r2tNCG_yVD>Ta9q}PXaB2a|)73v+2n8L0&5l%*8 zrpPA{you5%WtNIH#E>XkSjtp@1-Sv#FG(7gBvuoH`Jg9N?ZJ~NVB^oPA5gG;DlE)9 zSi(?ElSN6i58ojAsb6rRvgG|^{b}cdsVQpMYob!m-(4a(Cu6`se+-i9Ty$9`)d6vy zs-tZa(Cj!kr9Xg;RRp1oalNgrwPaGWhq4d<9SDhY5W`HB7KaO*O8VEe@VWnculpw- zLhj=o>=S_z+1oGTFTU90HI@^S53s%L_wj}=QzA4%!yz|?yel~@eQhXu8ju$IUNt9{ zwBR~Ac>@sX72n$ zP&5JR-15UVPZqYaz$^DjXl_(zsrQ$KK6dPQoJ}wtwRr+JSsw2v+unB%vIOzekiy@O z4n!gG4@v`&H2L_o;o&JIe^+0)MFHkM36vQl2o6J=|F>WG4>rN>?P;?FAe$sqUKR~M z1FloT9)QKDVo37WEkqb#J4ut*5F2jK%&2vS*sT|`rp-acCY~+SVxe&ik~*)uFifCv z^+JVw_n1TK )CvQ&_F|D&(|~Wcevas@-~58&na0Fp6blgcBX0v2FFU%r%5 zcJF$5clNs!DmN^b+VTxQX)aO8z$xz z0p1%JQz(ry-qA^gwwqw^2W-{1y_xs=afC5q7}ZIhi`dgLl|KbdI^^+Kz*3;`eTZ@7 zHImqF;L!+HdrcKd36Hoq_0 z+ci_5y0xiw+EXz3pB~6WnF@2IPPlnaz1OA)q9@2cQN(28+vC*-u{pe84Qf9MhI4ox zf8ogt=njkwh9j`^OJgKZ)Zjfec@U)izy9if_#vums#zOIv1MwvmzTi#1j%zh3-C%M zES43QZVH0PX214@@vcvLzeA%^A8=DMju9#-5DK+Op2TsAQ&MSZX+PKNz~mLic(WbV z<^B2f1KyYVl+Q1?1r=eyGd2rAiHXVKs81^7am*OBKr*MeCs(nm;I8>YR=IO~B?4%} zDe}et!kMd;g&UG6>eqG(Iu8cX^+dvE=cTF0USWR(9NYYChwYs&al3g!Gv2TL?(MvX zE1A;-4)p6`eBn1!rGP%4U%mXFXwwE>ne25lm|`KBjrSNO5h=F*xDNh&E{O9!qY%#u zackJ)#h*}z5pm*&lvkjtzV;YD6rcDE1vt+6^}B}R&8c0@WXuWR&+ubd%d9-{5;s1|v^A@d~1ez zHUoTJj9#?AlQPN%%<1tvJB16q1eYJr>Z;eTuca?}-+PM8?_fj7c*MR%_90fYj)bLA z2(&X=FcLFUcUnIQ_WL0#ameC_M``SkQ@QMl4Sk0JkYo7mklM(nog{s6;$X|cLp8_r>9a3BX zdS5=`vY!NQo@N_uOz~-n5AjK$DnLxF*~VC~4*_IPJ33-66ocD-i%fRL06}M4lggwf!OKcHdGZ9}X zUaiexWD&_g+a5i6S!fFZFtG1g&WHeBA}hGEgfF@huRu8zXvdv+ zSpPLxTRawo3TQd@zHas;*{XV}4eyELY2J!b{PQKA0aN1tM|^}ux;K@L%-a`flS0PJ zpi!xH8U+rC_ujlro)i$1lD)>XKvaROz@J=iK!O)*GroY`V8a|~c=20Vad7@q)>UAxW4b@Tet=CItk-QUEw*3}Vz8h(tbBO7t)^gzLg4Nc2bIX@I%Dr3 zs`(u|cFgmK#8OCt>jy^((22CfG8)VOaXMi5a3Anh5{chuku=gE^2Bw-bRTYhR{ z9s@wy7K!m0k3*@=4d5S5s;W6D4j(5*_SXjgANVPM#`KD#;kw_g%lWQgU-vaE%jCr- zc88d--uv<@7!Qe@QYj!jiiYTW5go)SmoFKMl-`8-S6c2Oqjslwi+IWAUDq&lD?amC9?(M}$ySF`m z9t-ATGbQE6D%l1kF9vCKI0mBE>05Ax!z1xFkSN);Z#?CR&OA-4l>xOcNxip<0 zn|I>QKx;~;cL0gpvw6ZMiSotITfL0~+&&<2Y~5*~YYKG2faN0&d(ilJzXV>|&V=of z+_@+8XWaol*3YZsC*-EY=1yup> z@9Bid(+U-28+^Z4S~+T4K=PNE@p#7yIL5{RJD4@~z`~S0n4kb4>XIIbbhCLl#lNii z?LWVM06tAxA}0poSlo{X#P7yZDj2M{nwy77k1f%cN|*l-NQ1TSW@j7OB@gG4pE3O5 zc76a(*f_C~fHv%fraZKxiQS_jDA-?P6YjMnAYi8ox+$GddJ4r*0qEe-U{33QN|#F| zg0Vc+_R@IL6IQsEnB_ZWYpt7^S?!&U=i>c8{Db~n(s(66KLed{ zIg1$sz>xYfuqE#ky#b`KbZT&%*B?mi)^^U_qxGd}z;K|^ z+^Bqie*J*uaQ1CyrDkjanWfv|Yc0u)Odz{8HYo`;D1x}{UqRtG<( zhtd33hqM45e3dsDBz;?hN3H;fPSBZr)5`{Ahm}CO)MS)e)ZbL}V2M0mq5)Z?VCQBf zJa(DCY_p&a|M~R;?8_w=Zc)YYEF)6xV(?f)?|bzW^I?BBK6WUbgH#k0aacP*Gp%m7 z9_g#$m##rO)Db_?&NkxLs%FBcPKp|Sx~%MQyv6PS31f?1V&&-lw==qdGzM6Bo|6~< zux*FN2(g7NIi#ILO1!KnId%_n55<)YK_D+S&zTC~M|lXy|64xl4+d-@V1EM<09ye? z=kr`bv}rMB+r4h6@A%I3HtCVx*4>9%_k48`uUK=X93hq5uU&0ZuM+U5 z=b^Z?wIq(VJs&Fhb<8gCtHF*drApm{%geZtoStE;yxw+v@3B-1<$u#>{SgmP3fdI! zF*DU!wUZk&Yu$?>TR652&Qm@B(DKc|ISBK{>-|8P+7f1pYvfB|&9bBA$r1 z1~1#>RM;)>g9&>gI}o8`BwSr_?_NLr;@%5Uc)Dw%1GTcO3@{{Isou zuj6~m(Q8-BWpS3&^O$M>hDBtvoAK8VaB*!L2+!R7)J@;b_I}T6$Lq#h@q>y9C8>K@ z&RH@4*HOAdU2e}X@!BRBNpy&%&#ulb#OKEz{1rwnL~8rsp06_ibagQHKvu&c!Ai+` zVTWNoPyTDy9%$R)L0)VEk+SXa?8rCl8$o-RFL*8j2*xIHvJoHxwv06VdXC|Hlf%>h z#!vgxWgr4!49W#k$n;h(cjpUb(CEi|Ko&- z*5M_|7Gg=K$F?ER4q(2HNSUf9p6Ci7cQ76`EHr zWR?a*j7}&osyCaem*drj2x(U2_9{z@ji5syMjTF*5;1>%{eZlvLHP8;Uo~HqbVP0A z=-IZ3=h?P8H>tHqy!;#fADfuI5w7+;Yh!I~Q`S@5*hn{>EeO`2Ut|jYRv>`un~()P?QLWI7w)(- zDGB)5FdoOoXR{NpdacbC{crxfKZ|m1cCR5p#hxaF?%{Te9tLGushqA_9`B{{&4DEn zaf-vM@7IgJ{Tz&OTGyZYVkQP;>X4rHyQt~xyuwYT&j`oqoCG@R(orq2@XxOw(0T$P zS4tCN`6YLlNzW@J_Gp1LUr8&BAj@ioSqJRg*w_~)sCd|?sZQ;NFH_W!#-@Xu=f+v~{h_#dI+k5ZY5> zaj10J!mkw$zA+tY{d?`QAsShU$#j9uUpt$DVs2=)35|Njm_FrB0^br1@9`XstUCA4 zuOHyFT%(Ex0cf&24XWtsS&sxMn)%0k zBn#7;F6Nbu|c{pDrJ$y;2FFCzR9dYjU1p7Lq zJ^0u}-MKt?1BUl%Ok`!B^i%CQ%$ZsoxKFtZ4(OGa%;avppFbf5mrk?@gv?APU4492 zm=tcjkB7?X#j8owx5Pwk)?$$f#LLD*oPMbh4u8T=Tc?H zyr}s>FdIaOArp|ia$g=4UCiOlM3Im%O8e-5y1I$uqFCi5sU&F`N3Sm>CN4yQXfxm| zca6nO2iaVkL_K%rO`ENqx!j*$KOo8gM^FT-*ppMKf8)yY>6KiL73JNZ$Eh$%b(fJ0 z+Ptfbb0sP`$;?3J$E!Qa`{g*EmxRF8C^;01@KR3yEIW>)cF-2?MzGF+>PwvZsymAl zXD~0p7x&}m!OqUO#n;JD{58t?+DP+_dwO2ggUMj*bpkUntVa?FO9v!QEf7?w+9eu2qe|FGD)h{k ztvQ)0O%f`KHo|l~_G`@KJZs#;e$a3QbT4^R=X1#TKkrljytW8V>Y;SC6w(_e_TFqHDqyz z?BYj9B6}-YLGog0t>hK~FcxR?K@&eAnytCL5JSBJkc30$Hv5h*YilKja;bh*t2l2qZDUXd_+&)|EVAQ=cV?M z&M(M)^mv_I7N!tt)@a+tJ1Avq#-s=?UI#nC4^SaM+IiIM=fp^xa~E-aJvCyNk0Xj_ z#Za4ryQ}B%7~P83jRpIv~l_}d3i&F$IdSj1Wa;G~v2hrO%YzUC1L)iOJi^}#1> zNAcYH#dU)R1cx|I+LfxB&rEVJO)n%T|7;}j-HFToAV;mjdVX;7XAGSDK9$O`4wkHW ze$Qi*YWL89lEjI+M-x@F^9H?Y{U!m;@*bHvSCGTdIexTk&ySK>J-G7e0YEL)ZmQFDZC%wu=c(-mQlPsQng{we8%v&n`+!)&Lu&gA5T3wK}Z{{@!JP@H*e__DWgMw zy|g3bIsbG$q;tfYn)=EpT;<0|9uy{d#sCYU00bx5ii9ph@9rbu^iPOh5rlQD(`H&S zj#w`8`9IEFEt~p1zp=5W00@Dby*z-g;dq;z;N)rgyUde(e^E?{H6(g{zhE zojwQI=j;^S9@9`MzK0^h<{mt_v^0JILF*f6^E$W6fIF+SWp69e1K05m_S@skDhCG} zEg>s~Bry>e5Wik|2_Dw+KEqj~>*!C#B62&@@;BmgUA{7?R4 z*&v}sz>OO~u|3UF`4Vla7t&$Y8qie~4Uauh|qI)uYFC|I2*M^qdxJhC(K-;qf4!WFAi}V1SuVl zmzw1g^=*Q5-e|7ylb#Jo33-3>P+l=QLla-Bo9F4W?URv)WVmV8`m(>%@?2?@0T@W2 zFH&y0vR`&5c)*@<*wcEWQ{d}j4CyU$`VTN0m8y*t!MTxm!uT)x>_2&ck*Sk6(01BJ z17OV(;qIxs+i?U)+0s3wT28(`pM2LtA`vJs;5c^X%~?7SKG8T5@q$$HO0ho6x;~xs&kf_p05V*thI=3Fkt?yQo_24wx&&!zH^r%rYfJc#|e)WnX; zVo8*0M^?Lr7BQ-j@`)Z~%?1H7d;AF`5dO0E}k zo?`FIaxjUv>x~Unvc{1L{d; z+w6&4cc|YM2g+YcW=bN;3x0xFyYI67wm)T#s^G$Z*{A=ZP<{v4V9L4hM3&;(MnF2; zo*7reX$!M?!vH*c-?aIUGVe!6c_?Bdn+swF=gZ3F(V@40gB4kJBC5XOlzhY}hAYtR5J%Pj+WU!>W3lEmB*ERx(h*G-8b3YT7JAC*p?g^O_L8vc0f6!DDuDsHcNSe zK@lx5yw8=>@=O&4*hxEA9Vnur@pNGJcS_3hq^6`#B+pd&MFyo5at~k1bb*A95#!-t+VO2Pk2)6gg=xb*4Hg-?$Nhy=B=* z`EiOHBWfUdJNW$+Z?e3rqyC*9UQVy-gNM{b?%sZF)UmT_Ti#3L71kqs?Z+eeQThmbhYDk5%sBx%9-+5)A2Og}zFL$gU+(}T-z7)x!__#BTE2~>H0L2Qz zi~X?)Le}-C@OI?qb0smtl_{BJxSpN8ztgTgme9|5PW*0(ql~ICdm$K~`rVaPCo1Jk zir4#PrM0X-)2{iuNzL!t{1c3`ZeBrl>xaFDJ#Bw6Q}}P;9|1l3<3^LD+fnhaKceot%GwDiZG2yC;!e zB{}DZJxH+x=Am+AD--eBJPi=G*SD;xLLFu+S1l&DKF<68HP2(4R94~)8O5gzPI*fc zB8BUk@>!EnfGw;9h~%&N|26;rI`jWi%RZtC&u32O#i_6e-=UEFo~&kFP-TGfuiWem zK;`?v10Jt{a-NsWM-erikAiF3B`YE1M~FhwA``{pwbyj=TfsD-=gP}rvLHdh¤ zlQ$!hi%}8rZ%fs@d9}ko$K;!oye<#8l1~b5#gV<6%-bfWU0C^I+sD{n|7)k@@~BAd zA+KG&Bg#8uUzV_n+{Lc0ZXY$EDL3%jw516L0ZQ%H|%IWi3GF*jD z^EkW-kF4)U`J^xk?+rpE;fHF?uxgpT+6DH0BfKEQ;=R{x-qQTjp--9hHamYXX<44y zRLe~=OKhju*Ye;Pz>NHnc41}!1%73gG-j?x85O43VGXOsF7v#dm7bipmbB{ zD^c%vM`l2lH5HE%ha&=VGg7))`8^*&$!fBRwZ+GJ^k$KVv4pKeB)ItfSo&n(=_>J2 zK7Z>k9eq!RWW0!K9oTLe+HB`@4_{)1#27KW%0hlDt+H%8W&J7WdgT3%@eDFf9cZV@P=8f=sezjr z-1uYu^EAY-5VG@%c18pna>gf3_wvWz070-lfS)0S{B?l84)9;;0Dpp`iY@U!&c4bg z*&G^uZgu1_J2f}>_ig1VqsW#thJ>4CJ?{G(C4N%wYkoXfvaz2Q`SbW(`6EX>{SEu0 z9VZXvV=nw|3A~S>9Qyh7160pb-pAfpmH#OAC}TYDbSipK!SEjrNNn2dV_D`GfwyM3 ztO#zzj+W)s;tc!q>4`;wE*uJzqMzSQ&iz`5Py6`6z(ka2)O93&R#;A0N-`eprMv|# zap2%sYrcS*<%;mxWieV+3;O0kl*!V%#J;sCuNL&bFUF{_B6`<|JNG310m-bll z-uK{Tm)r}Il&dx?M&aRqIZ7^lG%(WcOyJR~&9OWOeh(lqS`6Q4DLTc>pp(gZx`ciH8WMGpI2jAFV zvkJzFecBMly7%r8-|V;=NH|mKO9QhEZv-1KX{)lzHb>fm3|2+ulsTL9c8=&uz4L;p z5=)%>mV;&%4+s%<$sO@r2bJ z1)Ke!QNL8$QnSpv`d4C(T9hPk6kqkRPngJdy!=j;o1|lHATK$x)C-RG+OP(}TG}CA zz)@@t25oIWfXc3RgPK!+ zUEr?^{Fl1GAD56SOm+hs<2pYfA0yQP1~NzJmEE7`b-=dQVKv}wf0SY^|6)BT0B_xlJUX41R3QXS>3uLxh>V zHOQBZ>sG7t7lcvYU8b}!HPunTb+zY|q{g8BCGW8fYh#)JFo37wH+xy?OVRuuel@f`O{``IPg(#E(?R&`iJX$cj8HqYV9ei4!``k z)1fR7MvQ;HA7ig}j`aZK-&yij$RQ2DUoVOy$tiiZjG=4!jfC5`Q-0K+y{P&(k(Y&yT@Yz1wJqm)zV~2DZaDDtG?;00Q->YxAFQ4FUt<~ zT?6kUtps_=CKG-;G3&1r{B?r=awqsh@n%!OyQ>2-m}xq4Cs2{rOb8D$!R8Ze_DaVa z6{Vr%EpmZ?2w9lx@xD9*07I>5yHBLRqec$7t6G>|Dl$2_=3#%!{`vI- zB9+kR8g zEn<_&+8ZmD14yaD53bO%ENF}D`bfnvqKw~Nu2>8J&$FM3ZLmMk>3D!0&wD&y1sut{ zcpcXPaBNAhK{Ql^*n=G(gcM$Y1g^etb*PH8irFqfo{hju%$mw6;y^NLSKw^kDZMKZ zqkbG_ReF_9fY?%109RkFaFYX3(GIWaYR7L_LQ2O=u`G2)V|%Y!Qk2Hd>TVSf zF4e7VaUSXO+^AR^unI&ACeOohqT(#z!70Fe=d1S*pYTzJv~dVql+1RdE^tWdPXXE$ z>HLnJARxhwcgmu6zp+4q0%)ZsZ=Lb^rG!19(t*XP%x)*3>|KST4__nN{s)YO%ZF%I zdxZ+H{#XU6B8dF;2awrp89Yi6J8YuJb?nI#8a%4z^xAlF3why__Oj`F+bc=1Q#!R0 z0JA5^V8R{j?_{wrhUC;4mB0oVNBfxhN-#DtIoLc%B;U3a{dI%CZtySQ27fRzX@%_( zZzaAHj3aA|GvG3P)}f&1pnOo!oTz@WQBoBp3+A%2)DNmcFKKoZ&F+T}tk1MJdr5jE zY25o@s;}aQ)?x|EQtVTH!0_|y2Y7o&Eor+|h_YMb9esX`qD4W;q-93Ly;`yoHiPV^Fm^%|Q3@C&Mbu%|@h z4KQcZ@@q-1Qk+CLr>Zp@4m-RXIC6QNx9rBm#zv@$OA^>ZluPVL5!#$)FESQLBI;rA z1BhZhr@C2jdRUPhQNLh1kK(~>`i(D-&-1(3UU2qv>TEv;V7K0yE~qZs>pgO%ekL&D zMZh@f1X*V*#uDX@7JV<9pgOCzy+L^>Y~&0`-eeM#Q|YqX#QPnY9qDMnloB#NTgh~_ zU531dQ%SbJj_}tJ{v{mYPq1|X!>*y6oE?1shhgHyKZayJ!`3Z(r{CT*+WAslJ<4?} z8KIseNQ76x9L%Os##b8_9>=w*;|8T$8hH+C$3#6+91-Ic&EqH6pI<+KLY!j7JHP#L zt;#S!My^}op_#YNc0&M0H^23LYknLIq4qr#!OrXDD#!xgUkPm4nltovOYi|NXtvACqTp_Q0h`{fjUyp0 zHMjS0?2*KLL?N}F0cH&lrp}uenCn%ciFH4`dTI_wM*p?k|5XN>$GgKv9{%#RMn?&M zY|~(!`jRG7VRt3-Vv>|x-QwaS%PSwbC$UeqadCPl9Hl8bcY+Zy>MF_Jk_?GWf0YUc z_#VD|7tHmsJINN=*GpsD2D?P<@kmdG56c|}a0q@z^}j)`A#f;`8nhXJ zaROUYSpzXo_|TGSN#SXPPkcNngxl@$Rhb32ri3tMy^3>*7yATk`3?O#f%qyGp$HAJ zZU|=OW3!R`2XqKfzgzj|rqs&dMG2uG(vNi^--~O;B4Kvop#(cG5<*m@a8Q*K!Boi2 zcc@WFEOt~<%`jqN2OP5BL9QLg6Zy3)9dRPB_nfO<0#>k9uOuJ9)*aLfxS(}6V? zAQP3|Nsk@FB%4NQ3AkG4k>;j9PgVL2&zUy8?~}^clclJseU8qcb`?Gz$4JSG%I!SO zAxMcas!5H%8INk3CxrU*>j&7mVIQHYKaxjbKLl?U2-&`^`o77_V*0BAs$zq0gf zwv~)P!3B(>hGaYNBE`$Ey(bi{joKJ1j-~VklOp)f3pvSJKirw zIrM=9z%Azl@l|Ecg7bUH&c~*Zt38inw#JShtgp+t$<}VZXMpKy>mz|D*y|`cytOQz zGE#I-*(O@)VF^JmnDKcCB+9jT0)7cp1k8tB=bt~1wxtkBE&G$!OQ9E)67TBZB>XT= zxg#q0Y~|vR7U;Nx&6{!-4)X>-pMaM;(XB=B_UFBiDkOt{@B>C#(iQK$6vf7-S9j)v zkhIm+JYNY;*pMXod_{`FeqGH}PeYbelKH!gS0P2Mc#9xqkz4c+h9af-!L@CLXlq&` zSMdRDpHTif!(V6kmvM$a@^iBgWV~DYClM!4yqt8064rUwC9$|FC1exD`v6_d-VZeb zDf*vwMsO|5c?Q+DL&wLidrGdgiv@bMhJF*N-nl3Ts+A(K&+Lq!Uq1jOMh3dd^12^k zV9Lj~wx-}kvGmQNDC~Q(9ra3|VsFAuRDG%kHn2)aRLyLAS9HR5h*EYB>29jE!qQsvDUj{b4KyfRi!Ti-y7{k%NfG3udW(;m`Dcf}KIjSun?`R#Fl zb#P=*CSeb7Br`qeZ^Z6|A-2^OSvt}q<1@TdqS^*(Z+qYgTNM6N<+gL8@*LmX#ORqi z8&v2>wRZuTha9<5aY|{l?N2`*=41I_IyFxzh#l>1Pf}|#^M*Gbi&EAiN@b=Rr-&J7 zQ^in(xI|+WYp0>II%@buaUZhUQy@#bc{z}Z#9;%||qU6*{vuLq$d&^a=h~D$` znD_Hdvr5%xtJC#DVmf(?hey2nM%lftMMtQD;qaXhTyUIU|I`HHYS^M9pv0!*lv%(; zumKivzCV3+<%hj#ZOuMQX>>9LK?Vb^p!&i5#yY>2u;r~c$h9;TjH2LKirJ0Jea9>D zIkRsfYyr)&TwgECmCMQYSLwd4i41c%3iHX$`qv%)y2HPYJN#j3vn=_nM(xxr!^^ny zvh&pNZ0nWYSV^6x4(tVT>?bNIZcPPlkO7TcTZ5exuNyWLi&W=+l7UEX_K#=&Gl_cM z)ksiUCq)TAbIQ-JAK-!E+YSI}?C{a>@@1eKAOQuAeAwm9)cE+YdxFjRZ^`2Q#;h_c zt4{SvLN4AZN<1l$2Ij{Oau&3eQd5+$$tvJ{6s4T(Em3V#grd8;D?Ak)|0 z8TKkKr5O2DAOODUrY0}cp@x-=-qF<1HO66!AhzArcz?fd?Oi@+{*#?}t9!-{;KD6M zb2jO{vO-Nqy9Bz)&dll-)$0Vd=f;h126F)o+o(j_;A0yeL1Da_ zT0#|M5u{$W3ACw6LzO#7`(t{Omu#oRdgpN_$g`akz}GETFF@^FQt<5Ap{jpwf4Y*J zz)ZU-?N0$|37bI_r^-))*YcvoTs&QUtVpyP8;CusW90XhG>NKw6GtQH!ZyxGh+-=i zub+lj%2@Ut^DT7%d;#5gw(S)j5pp^&L7aTlZUrM_Iuh>y$#W*8%PjFuhl#<7LfaHx zwG@WRO}NHOWS3~`6Ur0_6Q*DAcuW1B8AFL`drPUGam2<~uAkSt3IJXNCzt9SCf>XY z&ZmC$BI6KA`LD7)ow+5kUHp~z)EZ1w3InH{%GAgNX&oTH4*1)9)zxin4T(rbk>O=4 zvGd5b)>W4e;jcsdb%=i{hxn5m1@TPIL8{ZT%`N4Tv<7rywGvfae9l`aBIJaSZ;0K_ zEp&>0;DvH-t6Uk*k zly%>2R0NaNG9d2FZvmH<88W^dusDKzEMczH+aJ_*C0dex{+o**0mlLDbj zou1&?1h1(IFYex{$Zzekk^)y>$F$h)DrW=>d~M7LKvGOCZrLJ8?5~4yb|T)-v)=`N znXId9HjY;~6MZiGUNs*{3%b5}FY_;zBH7dX;Nbxq6H#KZ!=z+^(>Bj@)oxT7A zs{F@%ce^mVbg6YZ!!NnXj@=l0_KRn;OXgrGzrz%WXl)V&2*mk9kx z>z4ho9$&$Yb zJF|ajNE^zhWwi<^P$us|5koi}>Ynu8#sDI!D6zh2I54F>V}D)ZuS@)kxx}AFlqXxb z%NUSczx6A1g|pX@rTVj8P3?Cac_+5>C!6|I{YfW?sCec~ zpUBW7nNv?M3k(1l>*Hk|L-NvJK7jv>CpOg#9yzYkT~(^1W(Ocue@nKyNF#Aqlvorf zAXojE12@N`+SBANPQ{wHfHqphQ?WJW%2;V3)a%$RMo`zs1FOo-o!h1eoHy{-(mUco z8$YWXgHtUSWTrl`;p3b~){T|bwZqymh=ltF0tzO6ZXd^sTFmgd9=H=<2uBoe;7!v! z4*{DEs^&3qFY1~u%BC1d^ba9+amUU`=DcOQVVb18W>Dv)F;Bm*1fM$u( zo_Oal7`DM;^Dp@LS2jhS)t%Dy1|f!}AgnDlpcFe!z7bvrX^ET^)Z4@NAXynpwaG(9Gh^rmGSW>?IIvyCFF!4||`Qpcz<`6n1 z`{Yd&3XBpgsDg;8@`8GwH~0~C zRpjy@ip#V}P<>v@3u29dgNi=b3F_y|DG!v)TLMV_B&pI($wExd>uD{{AKvkj1s>a^ z>Zc)@yQ&+`3fdMnr(u5iTb+YG4mNmC;;l+tT|VlBy@0?jV3r~y_mU*DYykJ+-6$?G z2}03!RV)`@Ck#&M+7_YzuT%VWihnt$_)`Hk)PO-61c1chlSiFReoBReol*K|7pSJ> zX`j@Yk9S$~QZBP@m@;ppCS{HwtdIX?u{FyPtY|Y|DoPPbl?TjWZEPy3ttxoQpZ)y) z0k+xorBFIZZb?ZWqP=zxAn$Bd>O7B)2h{L-5m!G;SV=W0RTpeH*;L^@f~>kTN7S_7 zkt^L* zIG5+GA$o)_Rq}P#o45hwy(}p}HrM;~K_y+^pvK(mEUj|vmXj3RNAl1#9kN!DGCC#J z*lKmhR}9h-o{?T<-|zHy?GKf*W~GnsLJ!Mqk34$`b0!Y0r%I-OMbF8OMO%Disnbb; zeAC8%EKnY#Lx_xCE89fHdjZMbH)zx9<2fCClI@04Zw&dL30PH0f|5sZc&=me!y8E3 zpZuIH2S=+iq=xkn167((m4GGO5%dI3+kiO_qeqwcL^<#<(<@KjSW)isKk*2fv=pggsE*J#?)5+?q!ZuY-JXea+{ywV7PwCtp9{=kWf8F9= z&n^Dg>Acc|oyll(Y$Gip-V^48<3dVDMW_3S40?=~!d zT|>4eKDi|+YFeA|Yw45eho5nN?RssPEWGQKM~Md?p-NVcM|Slac};99B@aH*>$$gr z)@Ky3iPH5q9-J)fR7+GrY85B3q|$aS*#n6*09K&gXM3Y4!7O<^KS}Biel>9dZ0NK! z8%byaqP>b6ncrW#NMix=-GgyqAri$ZtnAd9JR{_IEcJ2pi#U`N|4LxTNVHLUcKfFo zlD(PXj$|uk9ujYS(x+XDCe;uril?LGiQUKsF3Bkrs{(j}A>PMUD6khFTJ8{izD*KR zHM)xm%6;`6t~&)JlBc(b(4MAdC6$0=ze!2n2;_S_^ij=yedHo+E^dOw5Xg42++WY5 zuwvfw)l;(XN>rLl5eWj1L(OgQ|1gLr$mETawWW}KUiqULTvXoi>pW^Y6=A8V`!nkx zI{h@oz`M+jU{vC2akgI4;o;q{*P;oBUyc-e{-Hhy@O*;2mq#1m>YG8+Wlag0_sN?tbU_Pq~~5QDa%e~{#$K} z{Tnt-V^h?FZ#keL{&zYg*?%NWsJE29R{m)!S5@tw8;TrA>?Y|^uTd^G?Aw7}t91}W zNu*9z4jcXX^#hudRU1^c`9ChZB_`h%szbHhpib=u$s{>tDQn|VQ%kaJ7ExN z0*kV%SGxNihx4vO9U-7=UMuE&Fa|z!k=i54-jmJbG%%2MkHN-D`Gm9MI^%fiLGGRE z*;o1C9TTlwu#Cqeko-?_FP%T2 z-em^ov4~)J{)2oL*_dVnkrn&%9wJchyMS#k z@h-~Q(KYX#)pnQDM7fxIq|nNb2SG|AAHKrt_p@+5uTKv2#$EBtL!SXZ4lQ6Ap z4}oeYuNpIdUE{B7{ENEApQYU0r~5>zSMu{%zZQ(RNs*jL>-KS`U}HafyK~Dt>b+lH z#TJLM6@0a#tJEVUb4Ll>4pI<*<<(j;xYG9pU z$LaODkd?cjm5@88*?V+)H@uEZUut%b)QJa*?cBEjGSz3kT@yXIxFCnj#sUH%@U6#x zf&H__Z@5?zk+)|y?BQ(O>1LM?s5JVC9Jl)S?u63mfUvH>hh_JsEJ96%~Q zWd|U2HsFs?g6RzB=sd;+wy_KZ7Q2?b_q+NC*2t$(1QQ*?u!}UM`h9m{mzoHvJYJ&a zFe|nN+`W<7jB;8TM))snU4C1w%7iYN0Na*FuOAs+X7Uz%zO1(0 zvw`n?JZ9K(L+0abbpZ=ss*j&yqZHnRKfWPQ``Ak*$sm3-F8@sVKg`-UE0|v1yjLbY z$V!=HRUYF?@mp~0OsHu!_QGo3BT1CvD-td_p8=ld@e*Se(5sC;Q%bGB&hghd{zaYR zj}Qu^;gwV_GNU^9Q$14aSG_#jNcN{C@k$nF8w}58Wxh6b>dJRCucNS6>`0CtwH}KU z+Ls;Q_B>w)5kO`e&xwUM&9=kWvDvDhUq68D2>t2g{t<^faZaMz=RY#5vtw}t={`#m zq$Kwr#eX6Bf}_;8&X0Pa`E?GK-|QGek{L>VxQSEOiodK2l3k76z)PF}d`hBM+02N8VT;v~X~K~LT={nSD!}U}%e2Ra zof5qvhKNi|+&Y&qD+^w&N9y2rn+d;D1+fznnj-h=5_?ORu6 zNIHip1@mj6eB5!Y_^LE5`vA#^BJ?p)rPoa}*-ty?Y!Cpn?NXM5PI7}w*gbRe=+19z zA4N3v8^zquuOA>0=T`A2t_yB?x@(9%YR&)3)yrsSS@71(B|@hCfOQsl;y?Dcg=$aj_4Y!!?SsMZcv zB`|sbO2{BiWX6M}jFnMw=P>4czfe%CA0R7D#YPJO@j_+Ffe#`Zx}Gr!T<>oy;iH_CP- zSs_D$TPFSh#_?1Ttg6#f6Y-Q~PKTAF%(^0atcUvlnQC4HyCuQUm0%|2IcTqh4?Q|w zS6Rc*r~RV1zFoNhH~Gt(N=F|+leU&+1l5gMd!b|iSZ7;mcczGV`9}n;=%u~-jghAu ziLCt2rc@SQmak>A)5Jvb$19I2@rGi0*e@|`-|s}L-7p^+RftM6Dq94WXU%}x)w>jM zkn7Lyk}zB;^qnO%kH`CY*`)TwM<{66x#w%c@eqdE0eexnj}Wncs9Vk*((8gyfm$pe zx#g;)OsNu{gO|=v;SkfU9b*qe&655^=Q{&M{~XP0X*-=gSz^npRFw*3cwfBa46)UA zEzComO&ml;FQC2J9)BI=uY>#xJIJ4B@BLO@W(U@7klno*3eHHyPTdZCTf!FgDlF0> zwc^~$(WPu%+(Q|PJ2$&au(EMT$A?YBbol2$Bhb`k!TD4>CLf`iYSlJy+Ar|y2S`+) z9#K%afxj*uklP#gP>CkcpENxSb7t}FB~*p_fI^2=mG}&d$;xM`T3Kn2QRi*m=)bt58ROyO>WUstYj#T-bC=)Qr zz1pUrr;xwWycXO-Bd5j#ih*;FtRa_*ccmD3nK$W7!Ycb+k^^!0oMcG~Tq#pw1L!<5 zMcJdt|HA3Q_3GL~?OAG*bytbi5H=W;Bu}tw(JmS14znBOe@4Nn*p3v70`vT-U@dt$Sw>wBHo3A=|lhigWBmXE1L zmX>LI)75EZrVk!vL{`V^hU{g76-A#QMAo{?cHZX!yb+U#-)*c>CMa+#YMzL^lpkHf zrA1n(#96~2hLJ&XUX6<231D6;00+Zm!3IC{vvB)^ixUwKfz(^hA>}XuAjo459tY=9 zECmpM5xWv$LQzjj5drBH!S!q4AL7i~Z256@qG*;1fcJODAMZ+SvNm$^r;n{@?DAh1 z`RgM8;x6*XMhnW>fTe=a_%Z3mW!njb9Dq$pOQ50#Xb6Oa9b>?kyrd*6AVety{4#BM-Fu&eQHqeBDNC9B!^rdv?o%l75 zCEO9DE>;rkY?h?gXY(pkASBvmJJ}^b;8WYVVsyKg9QjbSW8f;OsbfRu@9$WmL+H8s?=Ap5NJavrQ7U8D4 z7w@(_avAD`Juf)35lIN%^W$f%av|3BA=uuNv?fv-uXdgpZ10s{%kZ$5oyj1eyTOrU z23|k;1FN>GPK=_uRmDaA^BzxoKRHJ=VX}Ry;Jj0wFEC)TDG1*kWc z2+o>br$e*J(*Y3?|c+;-NP?rLL2qr^jTk>-!D9P&8q%hOJE?IS-?UsgyuMjjJw zWI0{=*~y;mn0rwm79?n&BoL%WieGXwE3W1OctwpZ0GUjPC1>SzRp4ODJdcUvgHhDV z5BYmuXQH=yfQ5Cn&E&lv9F$iUSL|xKvDB&(RXNi@5qdmlk!g@pvDv68d*P$r*1Rm# zRf8gvvhfVHTeG}MtVUXne)G1sTAJgs_`qCSRbfiaC&tQRU3nRS6_-#o%AP!RV9x6s zRPWb5QXCif4#t$EBQ1x|)r7<>Q@Q84UtiOGKMMJG#g{cIk8Hi)+&tg+>?ah;Y6-2% z%DknNkoy&E@(Zs6nEO%Y(9yym<)T+9H9m@^8+L()kAu%)s>?wjcjQHFl>;80?E9AX ztIFqCJAFVxdVbofbKWGYmv-c!}Q_sRb z9CHBahzcy3RxnF93#c$;5%Tar^;&5K-{+&&tt!C+W!^_#4vNlIw=F2GZ(f}bTUJTG zeZZF=H?JuXcyI{(P8Jhvl)Y(lSgemQ`6SA`Ap3`N8#d3MD8nP=`$I(t z%1r!z`&kv)lS!&xwL`)PYk*y&{NO8(4X(qe3Puu7S7RzkbN=i+2`@Q0&Nb7wi#Vl4 zo+I%5ATkJ$qN75kas^xlL>%Q5&YIc2n+-0`|`uYm4E|))NN>0psSAoPX0)XpV+;fZ=eY^ zm&aVI=cvMxbAqzT)TpC;SGoMA0){`bNP2m}233}MfDbQNdPOw_l-cx%q5x@q42yY- zS0EU@oo8d-jXBi}aIcDNvV2ow#3|9{cnRDAe14TzcW%%N)sZJ3RjJj3Evp{dlsMQm z;$rO$q@=TC8er_RbR;wn@t=cfRzymNi`^`hMPK;*z! zgt%4il^0WP%aa^z_9&HkqW#;kOSXjxc6*)Q+NHVNQx!Gr(W~9BYk*CZStau`ug6PL z`Q%rA97U4DUsw6-D*sJfQ!#A#b?kw^zYHO4O)o2;~_6 zf+U&9_{(Xrt@xlcz)#*-7+a1ri6$C9KOW_{6p7_4=D9D0_qa-LE12;_6<)!BYK;Jl z@grbkd6j=E`%`cs08sJQ$DV`*7f3JD4wt*~y>GE!Btgjl%C)sI9%`h+z;fhq2HB zn9?rb)Ny)HV6jI?-A-I3@1mUj6_YLy=#`VR*=3VJ)!u?!d#%+6I7&qYFz{9iC5h$g zj?Rb+k?MFKk8_AvD&ssJdPHR(qiUd*1H0xQwx%h(11imux8qj)NY%kqSd@s7D0kcG zhn<${T{H-2_Y&S)*Pa|c+WaLrx5<)e7q4uT+le5Bf4yd|ZG23c_XZb@BGT*jr_dYGeNKF=R!4C0?_KCprM>goq@M+;$iOnZ&?=d4EM+Wyw3)eWd zLEsmP*mZV*(p_SNe|9M=$CRGb-}rS?z7yD#<07~G_5s_jd%zx_J{1Uw9y-2Q9WdqA z$eKql1RdSwQMj@DmyU`VlweqY$#>r4Xm^%bBeBc?B`FxGKx2C)KU|(lyz-(4FcS;b z4tOlQtgmXlcqk<}+XLvrRH;LGg^Zoc^Hgz|ZrAIa-ir-vXgR)dRf6qet-;oGtflUy za4zxZsmj2_WwERH6GbEVAYpd>coM{at#M*s8^0Mdl=OJxi9cb0k2>cysS5a3Yyppv z>uZ-(KxG$?W0!}HLC^q_rTwa_iMzF2)jxA)E!c*v1XGjxpFNF7NME>cj8gjfpz%^V<4F*s<}9THT3xnSQ}~ zUMBM$S$?Omx`W;=d$REq04x470eBAiElI_Q<8oA;hbKBMPDE5YXFkgV9YP+D+o}@C z)`qP&*6z7BT?0bfE0toDXmh&)v&%H>flLFHvse7{>%F#pupdDd2I>{KGV=MZqa3M% zCV)FR@(pHQ-6j=NLLHv&n3d}7^T$EMWkGTIt?n`JfSa)^v)C<+{q1tpNhlUin?xY<-d)) z{ITnt)I;t2o&15qz-0UN5G_(oQ8M>XJ%#A2Nyp>FIK|n?-({v9K@TR`*8#P)xJI-l zETu;&q4w9glRYYS9@!KlzQXmS5npOc{QUX>!>W*d)>iWan8fO~>aJS~VdcAIRb&tD zDcJ`lELc)+Nui3R>A6Z{fJj*k4Bc_xqJoOJ<{dtl$2*dMA9h8B0S_J$8wctgSt|Ia zInO1Nen0$^L&^O~c4)e+etX#>YVUP$vZ%Zm(4%%KmM0IS+%_x$hcc!5+*3sN&gdv| zR!`X!4sukhD=C*aB#Z|gILG*aW=6(sNa=vQHn183iFECtv|-K{9&j(9g?@*T8@JsEZS|?IX_$ zrqlVYHr(26WlJ;m@2O4XNu?>Me6TXPikH&|A1&67rG2c8vJ-nu(>;)wCo3nF?}xUl zYKW?XHgN7Vv?&5TU4Z@$X>v2s0Xz?~RK@!Ft|VA5bz&kVO8AE~vrt*EjNU*Hpz`d6 z3S_i^Jpp?=2BJ!EJcqjGc>ixV94~o4rpNx#ys<%mKFl$JU|$Igj$WF`KOk*~>Q&ov zPQ^|kEREf<6K~F+!?GlzWVl|1OX2gp{2)MlvUyTOwg|>2cJCx+36+S7a9e zB7J;Bcc8Jn9#y1d7kMb?U#h5IKcL&jM?tC>$o9zdyBwZ)B}=fS_~514A&Y;OZX|17 zmFZSJIGn|jotWEqUg7vi-fUIC0bBfL!oxqV)uZ;#l7*-gZ>^y?0)1+g@1=VQVV@5G_DRXfZ`r0C zj926idiP0HF~EJ`OR^Adb+gH_;bsCK@;AIzfgk5g#4)NOHr-!pO?Bj|743 zr;zrtg}>z=DGq#vk9hi0{YEb78*Ls7$^gqZ1Mmde_Gc^Jb@8k-%XbJ?pM?E^0)q|1 zETLol9vLm$i(lN1LS5bINAgPT3q$r$yyabFwD{L${<_S6Gne^8HavEstn+-# zBF&anUO!sSQ+3(gYP-TI_W|PAz&)g4RVJ1{aEeP_$U9GIMd7}3_a4=rc<_W%;rt** zLoFXC=C>)y6Yj%?rxnxq`Sk+?Q}6W(@N)ycB+Lq$lb(=WkTxvm@=#>k_}M*$RoeV( zlS!RTqEalSGzmS33!^CMA|J-Xj{@xEGqMSj{28)T;~gM*X8?%?49{|t+P48bftsF^ z-cx62n3?Nkd+#GNrBdW)%5})s0aFg(Rpv(3cVCapolO`QnM4a7R|v}ZTl**szyK-nR*WYHT` z)&kqeXtHGimcKcw4)EBRRVJRb7C0Mok|UrUwv@fJ5&(eZ=CDu48>lZ*y-EuJjAeFw zq~uf?2b3G-=G?3f1qc5Ot9_{bWs;Vb1*rTD;M5cx&bgN;fWJs&#ka*v=(rBbgE`Ab z=lD>~7eFz#LgeJ-FRoib?LvM<=_o$Lv~S2M#_$rZbLN*~1cbx60dUF`@vEg+1N0S7 zmfiz2Cu&P*0A8-E{S-x~6(#60H{f-vRH6Z|@)9DCqe>oFc|F48Dl0C#kVM`@oAZ#O zo?en?JOI> z!})|FYl~E|1R{r_*1Ikz|z?fH%Lyc>7yQIXm#T6_gm%Qni;$Ix7fTR3a z#~J$606~2HC#X*DmvaQKwP&b&T|?w>%69%c*!Fsx?O~+KOF6J=p2oZs&Iu2+$v1AL zL%b`P-t<)m=e>=6o+&?}a%Od6PW3}^%5mBxlD={F@J^s;im9nVKfylhf{wv9&ScnF zKZ#pUluuxIDok~cYmFnZBmu(jBBz<3 zMN|Xdo#+|1vnEgWGC_V3gP$tVll4feHiyBld{+txq4~on z51$BgN_xH0`>&?Hqc;+r%__?5thvP0-?%0?2vb*@x|TBcBl~aw$^);O;yyc5Dd=nc zM!@%XE-rU;=|k>Nz$LK&EMFuP=pUQ0ECT?_x6epWNOnB$uYdLH%LSK`AY?Yh-+OC> z`FnOy@kHUdVo#~v(}^IJq{n)x1z2tN2)K3~6C42$OC)<%BPuk<7We$p5t2?2g-fu?j(xZ+WrMNaW1Q zYJ(xuOVz>ew;_Y?iEXOOR_5@u%EJftA~@>4Ws}Iqa8~}h&0n|qZ|F9ERJ@leC1=y# zhyt0;_OAkN`Kr@uN4x#BUjx-dfopWKo9ti*V3oUmdT)K@M5HcfP4kR)>EPM?^93rj zX~>&DC@{1prtTBT8y3!utGhjsQ ztCz*@I#UjU>f~_#>qv?669b znMT00++sh8K=I9m08CS3C$`h2fK#%~2D=WM0qih;TC6XDsB4DLm_vC2+1W6frPSRk zCuZsP07&WTIo~17VJg=~bwir;0&RD@EL6C&C-|@9{B@lFmX7m>kLo6)HEv+Vj*?yH zu+-q6CCMu2Pgy02hh5M^A@+D}Yahz<=s%GKQ#-c|2eI+HptMuZ9&le0eV~3#b)E5v z!`NH-5eKs7tlrPBA7Bc$Pk+thNxoOP_fdM-X4Ji2n;kv%m8NkFycN@2*;$Vm)9v!h zVx#1I0L#RLfPN|ZoA>@k1bBL|qvO~T>8wMO#YE|544VShVSo0In6fJGSx)k3n+=nP ztL>XESwC-nbCtI9k*qgjO-{T-voNq>@N27Dn;@~JeJPV*Rs1TVga6$}@f($|S$dV> zlB}4AAf&+ia!2oxc!rk(J{Db8rsBBfR!iDRG^*Jw{z;#9q@bN>9VfjD52fij=f&R+uQcYy!NnW zLo&8glUw{c-XF6(Yf;umwIy)0eV!8}Pzx&3EhVh)(!~`H*zC8G)-r&5GDSSa(G0m`EM8}|3`Vz#`Y70m#lZ0%3(GFUj!Y0O$8_1>hMy!uQd;Nui!kqN)IaE z@H^J-zLI)Mgux+2OY`z3s5wi3%c;ba`J2D4^VfC$o4U@Q<`6}qkh%))<`F`1zW0$g ziQiqRD3xs*hr(U~OzO%9h=nfC$rrB~vg9k*bqHMQaa{poso~};0d=+|_}G?2d3_}7oKKVw z#U^0hrr9Kwyfz#~`eFM{ciR$=Vm#|v4#8YeSi!uVImr)Bu>*0!0QKMje0sEnD6+h- zigcbV$@s&!s9@IHOF^$L9e6Z=Lp#1bu`2*gBo)!5UrI+eY?#1 z82Q={h^IatL}W_$T^)R|@%E19Tx*i#`4H8*JgPV(Vct=BvvJOmi=yNJ(ueYaGV3%smGr5$C<&1q4xIh zyX+84Eu`}^v-9_(-^E8yPh&32%0HBAGkqfCt&Hvf@Jp$YmZE#lvjx2KZAO>)5eg7} zx<`5zYDa49z!$43DzPQOBHN26R$kM-ULw{cF!sOB^VfO)+d9u5&s7`N%p<9#J8SAh zoSYord_`0=Dh-b-sl~x|Z3c0$lw$S zMeuko$n$+C=quM&rk5PMQ|-?ym2qT~|6v!vP>ZJ(RLjxxinlstN0?H{%(GudGt^nA zF*}f4j3lPJx!xIeRd>{avhP54t=_A$X_;OV9+s6N?3#(q+c23fO*otP|_J zxyea-jvCM^Ue8PEo&frU?MzfuS3p`A^*MpV9}l*}P5hA4v7$kHfuEsXdHJ}Str2Wb zkfJ7EMSOOa3WgxxJAu?LX9B?{xUm=ZdtX^MJG;Xwt;iFpRHVCej)q^iY#R8E!P&4N zFC2jt)2Ygf?w|OHQTOmPm7N^$C*H}rWLwT9L%Pel~V_T)aQOe!$voDrD8}GV4z)f)wp2J#Z&9mQb-z=|8fE;kPPR87Y<@ zu+yL{25MqZ;0(*oF8lP9#0AU_d7&W~CL?1oBVp{bC@ zf6U@g)mWC}1MEK7xmG+9Pz8u!UA+Nt80E=*Hi_Sy-}7R%+5F_5Ch2b5szVH{chK!_QO>$|`JD)(Iu|0`ZOJgH0f<4uUP+qEm~tzPx>ELJCiMz;vmS;+P=(X5_uxlPCcsnsCownr)+ z!Mx+FOnmISokcYc{F?mNE5Cl@rSt)HUq*lC`R8`Xt7oTV6sw4{+hfd+3~~s8>?5#q zG;vUHfJW5~a;W~5kwH#8%)S#-WP$6Z4=(~hRcdNJ)BfV+VASlYvGLa!vSdX`ueCK{ zw%hY33q5;pmkBzPDL;*HE!LC-22vs8>LfQLGHmze& zKBo(mkUScb;lt!?!?f7DQ#_=8UtWdUae1iD|LTvT50Z+2z$hxED#Z~9QC~-sm#UvCR6uZxe?+ zX};KMt~0%HNlQ6w_XIpQ-b*fQ7Qj6?6AX0v^$kfRT2d}+dzTwfSP$2 z%fxC^_BTN7^)gBg(xfEmn+phd@+Eoi`AjEPmc6c2UB zdF3o6#Vlnk`s%i#^D!gfMy&SQ@dx+ouZEWa(=V$%2;G>5*VV6*RMpgh$(>Sy4REyp zMV*CF6lq(9N$Y8k*&2_954!;Zd}PKufxO||7d74p^57*fJ}b*kfR=}+F@Ig?uM7S6 zcA-C1T;!&{T2+5iUipwnmnu}A_3;swdU)Qw-?WHa(VM-SX_8*meRKM7kUQ&+xAgo0 zg>2R6DY48TgF;a4;RfdF*6Lu!lm(yu&J3m9eBm*yu4C zYO*?Ss-MA}8bc*If!j`+VaU$&4xZ3U zeuZ&aQZwMtEHgz1(1)@$PRwMFcvA`N9baP?(Z{wwMz={Q0pR%F-o1eU>&S-vI{zam zQj<(-uhy+_FIQU~b)Nt+9SZ{q~$_7?H@jJdxeG93< zVwFchTGjDQ-zbKcva~n~S=)3QoEJ($BI<0yc6|r$Q9z_Or%{ZjGH)#Q!Z z;1eETb$84U`wRdh7Cd6pkY-c5r^tYZ)f6WaS1oV3jhDw16t*QYgI6gZw&LGA5zufp zqPQ>3x~=pb0}Y7{l-C%f|9C%3&aQPnWPfSSF3`-2=ElO+pnT7KzUq9+3y|$U zSql__h zF{14Sfpdr0#LXLQSn~j2jU+j8Q2~>81^Av=7x794mY~qVlNOelU-?Qu*_zWNUpX;( zodA14gulWP-1WY>*}*nX!pI{Cb!gbBIs7WLR29LKi5bL^6R4{4put&vq?iF^CCT+2 zIuR1nb^J+%&`D5|6dXGYd3v9HWH{$9<-y57H+4xZ6$m~Xe`gOtuvaTj&V1l1c-uoU zzsEO;A0=ab_jzr?%6WY)!8m9ba!pe&u;Tt-{-U4xC^2mhT-|_74wocaxHs<&g+^UfYh2=k(M_ zl!qPw+r?vlYd%dpaAkOAY2Q_^bSU^xahPQS)WRll53m?Xv9C8BSv%Ca^pqjapI<)! zucG$k#k_q4##QK6D zrsAE{-_*}dQkdS9lgJ@SnBx>XhROe}0Md)e32Sw&?ES6tB3TX3P;DtA@<{yEyW-Wm zT>EhNoftKc6~OmCACEo-^~bS%Z=GHKA7?-x{%(WOhAd)px#N;Q)Ln>4?_iDjEP=&X zGDb^-;=H>n(}$FFYe`q&`ALqvf)q0q9IK-2m1hqG%4-zjR8_d>`6i42Dd~+w%M2#X z8>~`0yB5Juqf{#IA_v`j6k5X19uS1Np@Jd&-9C?Yo%$ ztunp>UZr3-1bB*xCR>KGKyp;GfT4EYq{ zK7_NDqfA8qgf%frdCe4v@RIu0mq)~pOssw9xwU@OF-d7_o(~AMZ)>O26VB1U>4(QN z>{^^G^7uiX9?YM8I@j4(DYGAkHnzP!A=DQu-Ta@{3IU~znD=)IeMXrfY@8@v;Gm~j z%K;9R@46kxIr9lXcYD4Sh{K4A=Szzqv0uqPZ4@r*S_hsr9=YJgb7!;P+ve<&%T$)& zCXA3B>cJa_+9qEIGR(L`xei*!;2>@L_yE0~SEp5xy8^_Xr8Ae%SApuA@M)0oX2jsNe!hu2bF+Pl3J_wqF4{B!!p`#7^}o}{Fve#n2jxF zQec2-?K~VV%Ix)r-J!N=TK>h<3F1=ruqm=J-CK&2RpqP8B3ni%By_~)1rqQsNHf*n zEfvQ+JF@e{lTQL;A60DkQse}mIj+)R9bW(NqdzBBg!0#w{<_k?i7WkyoEdyKg zk{PfN9Jt9R@HVM}D>DY2B}8V;6_1nRS=tr#vS*U37~5mRR+CY=znF~oDC`wT^6mgW zU++qQxp1TvA0Gh_-!@uu{$vHb5`am(@zPV)uWlyeWaBeC4E#NZtvh&t~wDx+M~XMXHS6e#xjmoo!MxP zr>y+VJPDj7D%yLs7eDvt=3WsRD_pK!+3NOscHyYaR-?POPohJmZ>0f0ty4hUczCi@ z+pmn&z&)0{sPCiDk3Pf7cK|MF;Z*|t8LZ%VUe?6+^OsepjEI|h|KO}|U?VP3(nBZ0 zTTbKx3@xcq|4;+)gh(|c2gE~qC{mej3}8Qt)wiuemOKR$h%aLAR&3%RIe720R8f*p zU0%KEp}v|YK-8)(*Vmo#5fu%^fA5dO$Z3LK*@`uJ^#way_9iSq{R}Y77?;&Ga)uSa#8>eWS`XV{L(grnkT>m=LUuXJv zai%{vv?06kd3O3(@1vUFPVTX2uiPvOEvvE(+5?fuChy4d*<);sNLCcjmL0tY2FSbi zemBOdwLBo9#rLzccuiU)sW{m|vL=5wGyn4E*AHlNXW8#U9oj<~rsk?X*;YL?eN&59 z7USv>?*{P9@NA%u-9p&TeNQ{>o&3W6D!ttK9VI599^f)$IoN#q@`s*+i>e;= z*FFCCYCfMu!Ucw8RdgJskRR@mw9`Wp%wH=TGI3+cRPWvfyr55;U6&*MUbzBR`VIZ5 zFQBJ8`Dr^cZUQQ@(JU4$zb84o`v*DW@_0Qv%i3_~Y9Cv=9S9&@8D<4wxnQ{oN&;5P z?3R+g1X4Uv%juX%0wLP@TJh!Em_#$g&z9&;kN6Gf^x0jd)K$N}i_{G{}w(wo+wkKSZW&_qTj5>fb%D$42{2ywutv+Z7cieVY6V?|S1W zh+so?STBIgIVUL~(pHusy)P)aDilu$3Lh6tJcP|o*!tw=fnU;=|IjnJgaI9s)$f(kY2-h{96z$k4qwt16X$hmi3+#Y-2U zDlbJIqI#lwIm!=HUi7;@5dSztOq`T}a2{0zdHXP(Xe9)_b`4S%#IcHW^AuY!CPw+YAPEgzRBMS5#wGU6uHFSj}FROg0@$;^-YMRwc1{ zXOeE^O-|QiC&~yea9S(8xjsa39-2C@or)iu;H5_L)&K~+?)N#CRm6}qp3Xp zc)a~6=emS$P3@$&)u;>zC?#jb7hPLRr z07)|g)kIMLrzp711Ne8tA^;GEX{{~$pF@u_|1@?)ns&DOj{QwU@(d&LLjm!T8@2Y` zr!U<0I`lFgIig+p!^5kCwr%&UrYZiz;w6cVu2O{rYJSQ27}=y>0%^0zgxrb8K6^^v zR#Zp|>dcNV!M6l|2_*Gy+wut08&pd$>K^ZSw-dtGaNfx*PpXk$k(;VTkL2Nb5`-Q} z2yDBjWWX;dasA229(sNb zR!s&TSI1N?YuvHURjAf$W{X2f?;0_WqpG^8&e(7zDlCC7)PA10MXO$cJv@6fJjNk2jd2vu2 zz~BZORCflwsmb@)HPnIQBd~){|C*cL0xXi#{QU-S25>m2?&_$GO?Gph1nC^snjjKuOd&vQhvL*)Tt-6w=+HpoaeRLW52KRKkI<= zZ%~*OB*l(*oS+e`Fo^==KjCZeZoQhPt1oLx0jU#Y_9 z0vDAC+%830BU{mNEG(9-TVg2uHs|gw36Om8=W;!*=fQ!2OUpjGXC!+Y%2Nh7`$q8| zt3Y^?cap-Dua>lSJaG<&(A9#ko|rudT&NZ*^+N4JY23Iod9>GiG5;eHrU&@mN0NX zO-}vCTkB7d>=O);t*<6ZvqKIN-`7~D{blMTv8z%Z90>wreWjKC>r#JR>fg+z{*b>_ zRBK!MePz+ULv4zu?(n^06W4U^h+=!mv{f;J%dYU-EJ+<%OuXV&+YYdT$yG|h{Ji!` zS>6|WL_*Z_x_BVxMFnkhC@Hr6{Q3cEfESbW#jK^v13G~srY&fjoG#b26lO6@d!e!# zbJD?J7bJG97ho3Or@ywKbxd12fJcVXEK!j~C4ZSQl)O|HU%8Z}+P1gQBOmH*IdXs$ z$J1JG0;IY*rw43k>m;dwyEZlF0K_#iJ`cLY;sGDjHlV zDcJkQZ;_ALkRMt571DtdciTiT24aBa0+UNUyxshzyl@GwEi z{J_#t7Z`m3hxI!V@?_^L2#9?ab68lyY+w73akHlpXDR&ndE9N==RiS|@{wX_DORiU zap-@Y>aSD%+d0)ArEcu~-$zjxR_DbEZ_~c0lbf#Yw#?E4t z*S^Pxop;!)KYj`c-#WqE|}PxbOb&00p4jg zy{X3IwC9%3MwtfrU*35t7**tOQ{scV6tohcQZz4KAVmsN&je(7&^D+{6`P>azWI|k zI@sQ}uXw&{+sYQ$OYpkCeOzhrVWZ9sD$iDBb-te6TBME`U9L}XdSoM)lwCTthrxq?8Gz@i^$8O3lNt$F?cTH!R^WO?r7f=4uR)Tbp~yGRQXPDKhHcHN z^G2eR115l8`;(--!@RtTcnSptrTLIiAS&HgyaT3ymlg;otbvccd3pqH^A&*y4_=bI z+CVI4T8s&6ZUK+7|84-lPY)%oM%3ojd76hKJG>sF2}mValoN^=dp?<=m*Qg-btqQB z?g4{eKk+V}&V8&)9^6ey_-e6~m~yU5n7~V=7i+VHPiU#!-z$i;W!m{5(E7$pWLAF^ zcOekAZ$j6Ts$!M$rH{tL$O9g$RAN6h0EGvSa|bHERuWcK2R1V&zc^(c7JqQWrtoE4 zyS~KmWLR}}1_ZsyRwMKIeC1VGT46`LArmRNzRZdk@MQt=nb)#6mMzRN%E6wjPhfa1%ESiQn3{L~jbo&YoDstKJd+ z9Ry|%_M^U1&3p;2;ABpjPO?1PU=bqDDvc;+-X%}KX|P@_t18G{8+fLGr)?nO7ZEYe zxUKU&Mva@Wq@u=Qzdf^~TdD!4E}!-0!Ya0)m@)D0TuJM|EoFk5K9+UdEnn-2B@cDy z_YPv|DJmf5Vjp+`c(3I+@OKP#tBf|DSd1ynQL&r-!&h>c%3~*wyF~1_^P~7gsJ39M zXhc*2N)G2<9D3|d0~g?aminSdLjedJ>Kt~UY;5Y>OL-femYrqV9u<%B>&HWuqaJXt zo8Op<^R9Su4fB1D#O?gFGPSaF%n>)fd|Mk?{sT7j^r7-rkjd6wz1K^iI6dW;oSwY_ zdXK}qmTrwxCZUVpyd99m0Z(S3r%Sb+lv)-EO(OG#4b?iObHc|C0gG4`Wk%wK=LKL6 z<>adZjb6JDfBC0Btd@gG8WMqL2LevwUxJ4()!cD-Oopbi`|~t@N9+o1mf#iMQl&aQ zSE6zTSvU*RlRO*1x4={b|pq2J1~V zfXpLZignpD-$Sms{+deScD|qF+YhBxvr)+Prr;w9hIdp~@nS>miN|`M0&%PTJsT;? zHXe|W>S-*{1ugD|tL%ockDp&Zfc-k1{Ac$Hd7f*`zYPoQ2ql$ z!~I-EJfn3DOm*QCN*gwbgPI9A9lNd(Fom<>8ISIOLlK`IP#Rx`=?aZv#ew^4KQ-`B zjo-p2Z?7GI(-9x9VJsqtlr`&S7EY$Z_F*^-Ch*k>#0O-@e)vi3b)TwQL<|{Z0l-sI zY4e`Ms3k`MAnL^*@%vE1b8xr|Ou~&+xf&D#cVCd$KFI@{(8FuNzii)@>tWWfld8Qd zY~HfYI_207OKSLZ(vna@l6K;Xd`s+jYy>8+Zvu#!|C5hOQZgOj&8>wC{1U*)3>f&I z3FfZ+GTYz5WRKBo@M>Qmx-!0Rg5C{_l7YHFqC#GQ&ycz?f7b?b3=xR-#6j1mynm5W-EoVMxvg_?N~{?sBJ_!f+Z0P)69*?TX=R z*+M~4?%Nab8sdp z*1ea(Z{P@y-P+@JOO`}!77v$fMcd^PmbziD5YEn)qzNM!7!oh%m{N%!Y2gTJA5t2u zOc<5h{$vF-__P_j9SHfTJFo05fi$oryw|IG;NaK3IgX`V?gCBKkB9+Bw{BO_ebo3dAwLumk{4gVb_UVy?^wxibJZr86-?k4jbJ#GKGQH4TEK0KsRW2vv_H%jcL>`}Ku6z^2!$upU4m#ibh63Oonr-D^p!U98W-{QYLZz-V;uWu%1 zYy0}Mc^SUz1@_={%VAx>*xhm~luOa?5fIprNYDmmYy-BVs!G9QgCLBC^TpGvjStcd zcy{59MLyXPqRbaAr-A2FZKjeb5f~D|mkS62_675^#6w+ZkIRqreOD&c?l%#>l&S=b zy`GbKiT{Yb9bd+8u(bjLR_AG{3OUC|v7VaRXBpTkZFp6#H{)K);|-2($zz`%UO-aZ zgVnIn`*So(iT<%FY|r(&QXdY2vWD0yk-kf`73?Sp&SF_F99-A1Ok{O{$ENDjDoaEv zJNDrxTx#2|65fxjzS<^nqhq+M8mWGIW`lRB26P9aYGeIh+>q}AUK5t&gedmP;holU zANEcDp=!TJ>LYfUP)2Ex>mcTh|DiNyhXGL}JD^q4ch^Vi8a4HU;XD|8h=1MduY3I) zyVoBK>Z!xFEqRJ=Zq;wcZvX}fBaylLN=~;iGwWb1K?-g#q_d7#9wt&r&-sp1K9$y) zKe_>@Htf71>!xT~yUSQ_iygDP;Q(p|w)^wz2TbquD~~9D6>KM%M6PQ-${~+e zC0J@~N=(V>9vgmHfF0R4RTFP3?VD`mSF>n8Z&nCM zlEeB30KNh8i&EgSJ{eDoIY~~>=gnEJeX!$1f(*Dd7eWqy2#(J#S!MR?3O3zr5S|y3*^X|KUu_3`ae$B)GRhVZPo} z;M{6S1&<{NMv}U}t5az3-(Be>em>s(bPp%H%DLxlBefE^)N0yPyU z$&XEH5?fK4NfS(%8eMg)iY-L-Bfp!LXMSVB7}E&qJrj*XcDRZdL-=FIehx3+uBVX{ zW%0=0`>{0uxMkXN2jnnJR!@%E%ZpZ<6NytG_}B7`8ZoU= z1NEXJk#Vc>Y{i17*PO%q*TMce*uS-d{c-k&ay#(Tj^wll04K4x!t$T|YLIX}-qE@m ze!xdn?Wt!&dY!Xz8U*NN%8%0n{S5Yq@-`$7SSCMukE1TsZd&tq z0JtbN!zcuaA4?9aj|PPxE>LZHVl0b*ooCrGNZIMgw*pv)XMu+6c}5XulIZ6YIC|B; zSmFm$c<{&O>8rQ31M}t;s%#Gm7v~W%vc^g{c?pO*M}{PYT>*TSIWDDSKW7>UrBKfX6I@g}NcRsH%va$}9Nb_>~8R2GS<9JzfM!Aq6l? z8^k@I=1i-DnsfKf4)UN+a~@=;w5I5#mMEwVk6=95H~4&m%}<|U5fp%?;8^D(@l3*l zO39~V2KxzeRscwWmz#i;PgnUPtXIJ)2X%mXe4y}h4sYX$N$k^WKcZI*#M@`hTC&nv zwqa2t;4zU>I?%`z4>O(Juw8gkB7IE3;8Ln z-UR@}t*S&0MFy#t$XWx2(B~q$uk`I+Y5k)sZ?>+n^v6-V^<)a2X#>dGstyxf>ac&C zUyKD+S*1RWh>?@FLzIo-7sc?u^N2=x-9cX{$ zptm1Cee&Vm2K#5_^?qYhatF7#u&YemqdthdMA=_g=cl6l1i}=`+WtLcYY1rOPw+a@WfU`u&4m!?RLXc5dt~m2)k~u^h zv|I?Mf`|%xpTbH%cij?G5LgWVeMrG~AW+A3LTJvk<1Dj&DkGK18k^Bq1STQ;vYnBcY zM0aF_TJkIz0VxT#%A^gurpN(!dt_!G_QT2_$puMf7F<)(W@7ty_}R~o;sPcuz%}JU zt#Zr%GfGfw1rID-v8$VCGo{A|-7D#1KV5Fg@hm);5-~Up{@SKT3SUnl$PWdH6?_U9WF7ea`-p2*ie#fH(PP6=@9p79ptexnvx z6?|}V1s?;FU}1gn-3~-hAy4UOx@x*!lHy&TK46&B>G<72iXDhK`ex0_IK4kN{`~#{ z-k4gumMSO3RZuD8Z;$Y_NZu5anLgb&KYarqWaz_{voo_xmc#8)64>zO?s}zu!5-1k z8R~oqe{5H+wgM;L=l~XpJd%t%(UP&M8P+RztLM2 z(nMtsYP97bO6=bW0sH+qb@DdSeL3s|*bY=c)CyF2Q*eFOJDhW_A9R1@gIIiwqUHQG z#=*{kf$y^%A#$dCyeCpP#RN__HWp=Ic2a}I4eCk0rcPv@3cCJvv%hZk{{T1pV?8@B z_3I8R;TBk?t44C9IE+h~SBmN)dr&xX0+bBu<3B3h^>MWHCdU!@G)mLsP+u}tA65Qj z)CD-m$MY=eev5x_VZ4tQewoVf=hqK-Wg@z4Tzy`!%5p5SZmE$Xz^C7X&Br>5>R#X> ztMF#!E=#KFvRly+M`4eHhpbCJlEXE72BOrcpP(?t?B(Q#rkv=JWCtKyKIKMS4=6FN z><{en3|P^Xb^^HJ-%Db#Ro1|&abFLVo^uF4@AXSD_8o=kpRA)BWMh>SSGeK(;Q6-{ zF!tW|+ez&cH|{Fh;}wL$schmBFMHVL1_B!|@colziTxjq&t}inQKAH&%F)hWA0`}= zyaTV6k+mLKqC{ALqN8%xaIhH|)tcx2a@}1_`q=8!7OQ2Fn?Qj)~}?E^^W`G2?5>rzkv z$Wj8-my$8>;-!w1e0A`V1*h{iqe#Qdr`JynRA1d&4a||i{e86P`5jR!B#Mt`rA6Ga zY&uU>N5CV-89zm6RgPb8=O=Z{*TP%~1q)<&9YyEw<6u1((Znl=mOh&zFR*&mMz|u? zA)BTWwD(7|IXkYqy?XRQ#Kf=-e%ovjQ$L*mAr!qTE(nq_Xr(%q}LT;YBU>$0}f09>? z)v@|*D@tEVLH=sZ6q#*GDVng8{Rs`PApRQ3;hElIQA}{#tR!E$ciZ{r*AKuDz;?qa zDm=abtm65^RRoQ|8A027idu|IR_-{0Bf^g?PJ9$b2WE5dr^(7tHl|QrE)evS5_p)u z4cGgOg)=MLnJ`OPeo|ylpHW{$>z7l%b{@z$@YpXfBqF>(5q6}=vXnL5QeVenfz=)g z@!4b9xa427;j03bm0<$Ww(D*E$WAO{eByiFXNQle{*gFjO}ns0AjCO^14iuXAXj45 z*d92j7t>w}{h`oRcfM%6QEG`o%y27-v`wBlxd$FV2o_TfCX%Z+07#c`ZhU80gjqsq zWW%;p%APLtPZj&Q{O)vBRvrP2J;GQ8_oh@yAi<0SCwcbo?R;6?887^!kR~B2j7SNpTGlkr}^ zt8?)xZspJ(FpwPDK~DVJ{HpXoHq9W#2rPN95Gme!m#CGG=!#;_XWiq(zwjha)g|P1 zPvlyXJlGKbitp=@4Ey6%cE0`R*AM6*l#k6@d8chd*SX=lpq!2_^%TxGdFv^>ua6_k zNx@U)Ugy8yXjT3nTn0Gi+5NN`s@g6csnxZ!ZY$N1M(A4W%W=N+x~|`{@Jot;F~2VH zopy+y~sS6(F^On>PuE`=SDxvby?Zufek7iVV(d9j^KlmP8sz7gQ9hDnu^fo-fkerL~z4@pGV&BwpN9=%<2 zodYKa;pe<2kb?&i24&T!6455U77eY52-cimYr;1$kr)hrj0%2U;*FQrEnf-v7ypEp zCmwiSR)MIR5oLanr6i^shjC+EuYY(+B4d^X_oN%VzPG4&)otXr8lWk7ip|d0!wsN2 zg&Ui&{{Y!{{p8Vn<6ayTw<)oWAxqRp;)_29o@iZ=i?FKN%u&+F3X3j6!d43u4+Qcb z+s7-odDx!{v*o*jOiwUsFUqf%A;%xZ&Y`biPVh`xH^3IhE`6Gv=vGdBnPWj;N1yH z3U*)nIAXGif}Q#6Y=52Y|1r+?=Pr*>S2+&G;$WU^KW`Ezu5(>!!NKoY zY*5DwW{Sd`AQRC13T>N*dGZDxo+4RA7or`NqP$UG!l1qHeB-$Vcye( z;G_FA9=luriv+*|0aQf-;X0BqgpOA^_rlkAR60uzRJi;N-E&EaDS97YD zR}+iGa>Lg}j@f{%5?=mzt^FtjBf-`shiKsQZ*sYR3=j8_epczux3f6PNA{7#Hn-;; z*FH9(0Wn$G`r>PVz8xDGKe3doW3heG(a*#$Y%lF<#ET2Ye)lV@0&eiN^3CeaTvD?K z{OU+9p2-Hffzz26c#FB)%plNzWwu;C!oX=#ghBWocU;D9;! zxsT*@vW4Xn$Bf=wDJ~n|TO1lxb%Ee(?^;v?@0b|bX4#dzkw(Q^l;RZ~ps*Mb@XhTo z`46c=V-TuhHL+T#A+FeVApX$`k^pGc? zFQjtuV3}+Rm~%;6XFnWg`03>Mph>k=Bn^6{RsFP3NZ;R!ZLN{=M~LV!>_}=7%2n?k zhf$N1JMYh5KY+cKdSPb?&VgJ*;U_lh<0k+Llx+*S%(?s7IbubZOMkdv>874hjs4x{1a2srwY%3XRZyV?QtFK({bvFIF!zpR%t zMWt^u1CW(#B7v4oWFSh(@QF(5Nyf0r3b1N5=oU34g0&Iynlh~jrD8G@|?t#{k% zX2p=c63%kc;!z|i-6rBEM1D7*uZ^M3G&BraO>Yc-r7d<_jh0#{- zR|)dyn6WBv+GA;^Uh~SM|22RttArdDWFo8}$JQ9tL95;yXI z`|EJO4);$v+@IQAo~Z;g=jCO^rn0gWaSiTI^7Ni=CkkqZB3UA5aXKvA3!& z3NP8_&X`4L*IufSB$;bMOb)bh2H4^}snskIZX(0RK6n55>jy{?@dU|}6zl+YzRxCL zG+bduJ&w@8iUN?pg1kZI?Ld^%3wm34r62&rSpUot$AKvNr&f)}7Ij56Lp_w3Fy>kE zghZ!Kz2SY-bPQlW#j9HKjwR*ih~I$9#FqN8*Rsgu;N?vFuy{14aH2!5YuH5oS}4!u z#83C_d^}KD#$*7ToUTCyu%3B@@>!eL0!KT8^;$A|S6V8AVtr%hTKOIeE0#tOh({>7 z8*J?jz&%#5TUZVZVWuxz-rek4?b`A>sp3oL!GmotT<*og>X5=~xuMFTx;{%iyMCE%zHNR)=l9>(0k-848fd(6R#vk4Z+ELa^eWF&y?lNu@NWD z1r2cZ4cPJa`t}nZ1R&72NHi>?$_o1DVO^*R8Nu|?u78a~-aCk1l1|EZt)XxKAT5~TliI0WTc4@V6NIJSb)&%xf-bW?+UJ{LQZE}}PjE#S{ zEKzT9a!M-5I7tRDAHwrv3G6LIgBI|D?eIC!7=*X$+!kT@{nTc{A(ZBctyl8}2Z3?; zTpvxOO)L4;^@-9*5}afzHd!Jr+FN5K`Jn1_wql}quGf-$q?cKs?dQlA zQaziTseVL*N1}eb@9ll2Oj?nr{AT;zuaO>GC6fb;HsCyHTm^WR_E>)^4j$Avf3EPH z<>g!hzi+8mdb^(@xg;Z*5M=9Rw*_XbT;B6P>9Lx1wkPINz|cue zz)Z%9)tnhtPA91gm8D`XgSRC@=3l4#b-I7f>HdH+hb?hW*kr*Iquhg3eUDGOqXpjNTsxVIIDbUM}!%zY<$r$e$zZNAGjFAY=mQV09Wm$bfNaU_go zWWK>)KcGl&r;?h)8PaT&F-g|DEDT_ybb+1WaQ5T*_$k@*Y4wRLMapZgu&!9z0>c7g zqVF3{OCVpJt8n)vEY)=mnZRZiHUac`=6=5_FmgKNtAEcgY_XE5(%2@?lFuDF97WD=Vk)xfH= zc<~mX-x17jS?k#~cj{|8+po7<_PxJps>8OdM_li%La5CtaCYFe##a;}c$Eg^Jw|ez z`)+kX!?h2zZnlRYtG3PH#89SX$dXmhwk|>(;xC-A7{2@+Bz`!RIi7sU{P9YjkyT^M zU&9|?S=DcRGQZibQvm4*(>{ltp6vX!#X~|yoS#rZpFhg`@P*m5i{-91mHj?PMO5;| zTO52=#epLrDH^*ZNhXWSQv%V6&DzuByuJ;O!7fhQTuCjv$p9a z!zR6Yp7rZ?zi#&ry4@cz*pY+dxja`jXBOt`j9TBtM|_>fR43(1N_D_LWXB&9N8#iu z!y!t^oO1Ilml4S}awRaQO>nF=p7SNX@AZEHj^x5u76^rj$Io9spvqOnuQcg?l8Vvk zErVSA(Y}h(rPG>@Hy{#7*lSg@!=!hg3gD88Z#hK+R`=p+V2lQrbL;+K?MgV+J1U8L zb8xw-RSs_8n*l4A4TV<)gYrDS#|3kRJ$Uq2(n*&6gDL$2;Z<3m#i})WlgyGUeQFEA zTqgpbq{PFuXL_66b-)C^fZh4l9)N9uPaz;o47(^Dw{_ z+4VtkyhuOWnH)!1OLul00DkPLo_9Im)m57XwXsMM-xFzrRoV32h&e&}kwILEtb1@i zZ^Ua8cba4%-u8U__7nU^ls;3=CN*(@RRYwl9(W+GJEk>RIs&ilB7}N_Sde$*VH;w( za!v-dV~jJA&x(b=c=!U@J~6c*Y61P*KSm6wOS0xe$bXH7b@EQ;XCx-X8j$z31)!d< ztJ7P`v?aGGl|$jRw0>(yfZB)ky?}20d@A|5TT&`c-BS{e_!PC+AK8qt+2B|QNV&_S zg25H%`Q!*__RW~X<;0ORpt*h259k(Pr&#&YCI^I9&cz=p) zQI7;VUymBF2uLCKd5T@RkS2?-hwLNQsVn;x4_L4wR|n^M^gLfS);d@tmUsq^TlPmc zfcxAi|KHeZYq3^?FnckW~2|NkpIi5RBTY-(}3h^h%0`>KV|vRr7(z1$r|aFzC669rC{9q zcIh5FzqLm>VLN9%B|m7AL}ZC8i>Bys!}YfW0#!Gf;i27xlpNYP=J1 zZD2B`+LRBdU!Pz3{!&GIfo-ARerYv%0F3jKT{)Sz#4OWeTUV5anD|!`UJkOd#BJCZ zO53a^?P9Q8;XEAwqKFJ=^3C)8yo?tZnd-}X({2*q8DOh0`DbE+Azjp z5*=fH0})Olkb6yg#`F0+xH#WO$~3zizSe@7-52K+qJ%e<4CLawgn=(x;m3}|z>#-X zD5;)2$#H6Fd=FW{rhV%jNK1^nWG9X>Hg#2JmJKsLVC+MJ2*l?oc$^B0Bp&z)2jzKw z_I^0!h?t?N$z+)+mrjUn4pht9>8n?w5r4v9O{;ckK_y%%o3n}tWG&dBMWw;}Ra@%T z4#_D!jFE32Sa+{)>#$q>N(H*slxg7C^?qINA9cMyqh=jIht)f#3niY85^7;!NwZcKNfegfzD;$`$)qH6eb_M5sH`~vVAW5AR zl4_}pSrK3cV7E$HHP!C5sm}+vo?vp!#bNHIq#4*)^!`l3fT7S{wo*RU4xhC|xzSs9 znKaieSiYXey4a?83T8d-)+8+gc_9~Uro*-32X$^^VfDTHg`s_ktrCx5srC#sXO$yB zv@asjRV?0VKvrT}(!yA$OvLlCXFiW3S5#C6DcC|6EPd1?l;k+Lp~%sq!{xJPP99ahwk$m-%Y=~=TUqcI4^}*; zk__Mii=^uPS~qbmCkonEDH@<|dLc6-@V@F*%S1^8JZT{bGKiWC9E38u+fEtVd?B ztSTUm3^?E4oc1Ar-9DA;ScFO&B`PcYsVd0jMoK}T<-p}Q=DXVq8dNua#L=W2sg0{F z(3s8#s4V>Je80~3&pO|qTtS@Ip-cP^e6j3K9|urn?|D%5j0{()x8y}b98n<~ULAnd zA4#>Q>MAy4joKxtR~a=VTq5W7&2i$Le85{d4R>%PWt3bm;18e{e*XFa0T%$EscRO6 z53)QKtGcJ2>mb^;Bpe5+&aMsc%6JFn0>(YE$b$k^jlJn0B{UkRaK2mJ8XW%$jBr1lotwU>3drJCk=mz zUxN*MA4xxnJ_$UTb0;F^A#ckJwsfCJL?O}Vg{z1V&3ZxS#|vR$8#GGzi>PwG8~X~%zkL4)&zfsqmZF<79o#G$9FW7ws&CiANG z6ES||AjddYR_cjRa;0+VU*(A(c!*XU6RiCFIJOJ^qN;DLiGxn4i!m<;Hb!*RaggbG zMN`&!i@hX7L#dsYxu0q3;+*5v+4S|sX`9LPzK@KD-05Mlq;-|A>z+rtRx-m}In;!2xtyod`(i$3D97s^CVTCFOP8;-%Gw#ax`qI;qUnbRFa?!PUSbKJQm=j{_ zMd8a3BnGU6f|Wj|y5nsqA%vqQ{wTSWtUns7^GEgVjU)k(vnB?whE-9*nBMD!z5*iQ z8%+fvO$T|-?N$k2&ZF5PK|v6KX#|I42*#wiX{g$Q>&&lAhWqj}#e_BdhTq@t`x}0L T!|y*De*gRjX1oxufGGk1?cM`* literal 0 HcmV?d00001 diff --git a/vendor/golang.org/x/crypto/hkdf/example_test.go b/vendor/golang.org/x/crypto/hkdf/example_test.go new file mode 100644 index 00000000..df843951 --- /dev/null +++ b/vendor/golang.org/x/crypto/hkdf/example_test.go @@ -0,0 +1,61 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hkdf_test + +import ( + "bytes" + "crypto/rand" + "crypto/sha256" + "fmt" + "golang.org/x/crypto/hkdf" + "io" +) + +// Usage example that expands one master key into three other cryptographically +// secure keys. +func Example_usage() { + // Underlying hash function to use + hash := sha256.New + + // Cryptographically secure master key. + master := []byte{0x00, 0x01, 0x02, 0x03} // i.e. NOT this. + + // Non secret salt, optional (can be nil) + // Recommended: hash-length sized random + salt := make([]byte, hash().Size()) + n, err := io.ReadFull(rand.Reader, salt) + if n != len(salt) || err != nil { + fmt.Println("error:", err) + return + } + + // Non secret context specific info, optional (can be nil). + // Note, independent from the master key. + info := []byte{0x03, 0x14, 0x15, 0x92, 0x65} + + // Create the key derivation function + hkdf := hkdf.New(hash, master, salt, info) + + // Generate the required keys + keys := make([][]byte, 3) + for i := 0; i < len(keys); i++ { + keys[i] = make([]byte, 24) + n, err := io.ReadFull(hkdf, keys[i]) + if n != len(keys[i]) || err != nil { + fmt.Println("error:", err) + return + } + } + + // Keys should contain 192 bit random keys + for i := 1; i <= len(keys); i++ { + fmt.Printf("Key #%d: %v\n", i, !bytes.Equal(keys[i-1], make([]byte, 24))) + } + + // Output: + // Key #1: true + // Key #2: true + // Key #3: true +} diff --git a/vendor/golang.org/x/crypto/hkdf/hkdf.go b/vendor/golang.org/x/crypto/hkdf/hkdf.go new file mode 100644 index 00000000..5bc24635 --- /dev/null +++ b/vendor/golang.org/x/crypto/hkdf/hkdf.go @@ -0,0 +1,75 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation +// Function (HKDF) as defined in RFC 5869. +// +// HKDF is a cryptographic key derivation function (KDF) with the goal of +// expanding limited input keying material into one or more cryptographically +// strong secret keys. +// +// RFC 5869: https://tools.ietf.org/html/rfc5869 +package hkdf // import "golang.org/x/crypto/hkdf" + +import ( + "crypto/hmac" + "errors" + "hash" + "io" +) + +type hkdf struct { + expander hash.Hash + size int + + info []byte + counter byte + + prev []byte + cache []byte +} + +func (f *hkdf) Read(p []byte) (int, error) { + // Check whether enough data can be generated + need := len(p) + remains := len(f.cache) + int(255-f.counter+1)*f.size + if remains < need { + return 0, errors.New("hkdf: entropy limit reached") + } + // Read from the cache, if enough data is present + n := copy(p, f.cache) + p = p[n:] + + // Fill the buffer + for len(p) > 0 { + f.expander.Reset() + f.expander.Write(f.prev) + f.expander.Write(f.info) + f.expander.Write([]byte{f.counter}) + f.prev = f.expander.Sum(f.prev[:0]) + f.counter++ + + // Copy the new batch into p + f.cache = f.prev + n = copy(p, f.cache) + p = p[n:] + } + // Save leftovers for next run + f.cache = f.cache[n:] + + return need, nil +} + +// New returns a new HKDF using the given hash, the secret keying material to expand +// and optional salt and info fields. +func New(hash func() hash.Hash, secret, salt, info []byte) io.Reader { + if salt == nil { + salt = make([]byte, hash().Size()) + } + extractor := hmac.New(hash, salt) + extractor.Write(secret) + prk := extractor.Sum(nil) + + return &hkdf{hmac.New(hash, prk), extractor.Size(), info, 1, nil, nil} +} diff --git a/vendor/golang.org/x/crypto/hkdf/hkdf_test.go b/vendor/golang.org/x/crypto/hkdf/hkdf_test.go new file mode 100644 index 00000000..cee659bc --- /dev/null +++ b/vendor/golang.org/x/crypto/hkdf/hkdf_test.go @@ -0,0 +1,370 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +package hkdf + +import ( + "bytes" + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "hash" + "io" + "testing" +) + +type hkdfTest struct { + hash func() hash.Hash + master []byte + salt []byte + info []byte + out []byte +} + +var hkdfTests = []hkdfTest{ + // Tests from RFC 5869 + { + sha256.New, + []byte{ + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + }, + []byte{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, + }, + []byte{ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, + }, + []byte{ + 0x3c, 0xb2, 0x5f, 0x25, 0xfa, 0xac, 0xd5, 0x7a, + 0x90, 0x43, 0x4f, 0x64, 0xd0, 0x36, 0x2f, 0x2a, + 0x2d, 0x2d, 0x0a, 0x90, 0xcf, 0x1a, 0x5a, 0x4c, + 0x5d, 0xb0, 0x2d, 0x56, 0xec, 0xc4, 0xc5, 0xbf, + 0x34, 0x00, 0x72, 0x08, 0xd5, 0xb8, 0x87, 0x18, + 0x58, 0x65, + }, + }, + { + sha256.New, + []byte{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + }, + []byte{ + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + }, + []byte{ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, + []byte{ + 0xb1, 0x1e, 0x39, 0x8d, 0xc8, 0x03, 0x27, 0xa1, + 0xc8, 0xe7, 0xf7, 0x8c, 0x59, 0x6a, 0x49, 0x34, + 0x4f, 0x01, 0x2e, 0xda, 0x2d, 0x4e, 0xfa, 0xd8, + 0xa0, 0x50, 0xcc, 0x4c, 0x19, 0xaf, 0xa9, 0x7c, + 0x59, 0x04, 0x5a, 0x99, 0xca, 0xc7, 0x82, 0x72, + 0x71, 0xcb, 0x41, 0xc6, 0x5e, 0x59, 0x0e, 0x09, + 0xda, 0x32, 0x75, 0x60, 0x0c, 0x2f, 0x09, 0xb8, + 0x36, 0x77, 0x93, 0xa9, 0xac, 0xa3, 0xdb, 0x71, + 0xcc, 0x30, 0xc5, 0x81, 0x79, 0xec, 0x3e, 0x87, + 0xc1, 0x4c, 0x01, 0xd5, 0xc1, 0xf3, 0x43, 0x4f, + 0x1d, 0x87, + }, + }, + { + sha256.New, + []byte{ + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + }, + []byte{}, + []byte{}, + []byte{ + 0x8d, 0xa4, 0xe7, 0x75, 0xa5, 0x63, 0xc1, 0x8f, + 0x71, 0x5f, 0x80, 0x2a, 0x06, 0x3c, 0x5a, 0x31, + 0xb8, 0xa1, 0x1f, 0x5c, 0x5e, 0xe1, 0x87, 0x9e, + 0xc3, 0x45, 0x4e, 0x5f, 0x3c, 0x73, 0x8d, 0x2d, + 0x9d, 0x20, 0x13, 0x95, 0xfa, 0xa4, 0xb6, 0x1a, + 0x96, 0xc8, + }, + }, + { + sha1.New, + []byte{ + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, + }, + []byte{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, + }, + []byte{ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, + }, + []byte{ + 0x08, 0x5a, 0x01, 0xea, 0x1b, 0x10, 0xf3, 0x69, + 0x33, 0x06, 0x8b, 0x56, 0xef, 0xa5, 0xad, 0x81, + 0xa4, 0xf1, 0x4b, 0x82, 0x2f, 0x5b, 0x09, 0x15, + 0x68, 0xa9, 0xcd, 0xd4, 0xf1, 0x55, 0xfd, 0xa2, + 0xc2, 0x2e, 0x42, 0x24, 0x78, 0xd3, 0x05, 0xf3, + 0xf8, 0x96, + }, + }, + { + sha1.New, + []byte{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + }, + []byte{ + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + }, + []byte{ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, + []byte{ + 0x0b, 0xd7, 0x70, 0xa7, 0x4d, 0x11, 0x60, 0xf7, + 0xc9, 0xf1, 0x2c, 0xd5, 0x91, 0x2a, 0x06, 0xeb, + 0xff, 0x6a, 0xdc, 0xae, 0x89, 0x9d, 0x92, 0x19, + 0x1f, 0xe4, 0x30, 0x56, 0x73, 0xba, 0x2f, 0xfe, + 0x8f, 0xa3, 0xf1, 0xa4, 0xe5, 0xad, 0x79, 0xf3, + 0xf3, 0x34, 0xb3, 0xb2, 0x02, 0xb2, 0x17, 0x3c, + 0x48, 0x6e, 0xa3, 0x7c, 0xe3, 0xd3, 0x97, 0xed, + 0x03, 0x4c, 0x7f, 0x9d, 0xfe, 0xb1, 0x5c, 0x5e, + 0x92, 0x73, 0x36, 0xd0, 0x44, 0x1f, 0x4c, 0x43, + 0x00, 0xe2, 0xcf, 0xf0, 0xd0, 0x90, 0x0b, 0x52, + 0xd3, 0xb4, + }, + }, + { + sha1.New, + []byte{ + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + }, + []byte{}, + []byte{}, + []byte{ + 0x0a, 0xc1, 0xaf, 0x70, 0x02, 0xb3, 0xd7, 0x61, + 0xd1, 0xe5, 0x52, 0x98, 0xda, 0x9d, 0x05, 0x06, + 0xb9, 0xae, 0x52, 0x05, 0x72, 0x20, 0xa3, 0x06, + 0xe0, 0x7b, 0x6b, 0x87, 0xe8, 0xdf, 0x21, 0xd0, + 0xea, 0x00, 0x03, 0x3d, 0xe0, 0x39, 0x84, 0xd3, + 0x49, 0x18, + }, + }, + { + sha1.New, + []byte{ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + nil, + []byte{}, + []byte{ + 0x2c, 0x91, 0x11, 0x72, 0x04, 0xd7, 0x45, 0xf3, + 0x50, 0x0d, 0x63, 0x6a, 0x62, 0xf6, 0x4f, 0x0a, + 0xb3, 0xba, 0xe5, 0x48, 0xaa, 0x53, 0xd4, 0x23, + 0xb0, 0xd1, 0xf2, 0x7e, 0xbb, 0xa6, 0xf5, 0xe5, + 0x67, 0x3a, 0x08, 0x1d, 0x70, 0xcc, 0xe7, 0xac, + 0xfc, 0x48, + }, + }, +} + +func TestHKDF(t *testing.T) { + for i, tt := range hkdfTests { + hkdf := New(tt.hash, tt.master, tt.salt, tt.info) + out := make([]byte, len(tt.out)) + + n, err := io.ReadFull(hkdf, out) + if n != len(tt.out) || err != nil { + t.Errorf("test %d: not enough output bytes: %d.", i, n) + } + + if !bytes.Equal(out, tt.out) { + t.Errorf("test %d: incorrect output: have %v, need %v.", i, out, tt.out) + } + } +} + +func TestHKDFMultiRead(t *testing.T) { + for i, tt := range hkdfTests { + hkdf := New(tt.hash, tt.master, tt.salt, tt.info) + out := make([]byte, len(tt.out)) + + for b := 0; b < len(tt.out); b++ { + n, err := io.ReadFull(hkdf, out[b:b+1]) + if n != 1 || err != nil { + t.Errorf("test %d.%d: not enough output bytes: have %d, need %d .", i, b, n, len(tt.out)) + } + } + + if !bytes.Equal(out, tt.out) { + t.Errorf("test %d: incorrect output: have %v, need %v.", i, out, tt.out) + } + } +} + +func TestHKDFLimit(t *testing.T) { + hash := sha1.New + master := []byte{0x00, 0x01, 0x02, 0x03} + info := []byte{} + + hkdf := New(hash, master, nil, info) + limit := hash().Size() * 255 + out := make([]byte, limit) + + // The maximum output bytes should be extractable + n, err := io.ReadFull(hkdf, out) + if n != limit || err != nil { + t.Errorf("not enough output bytes: %d, %v.", n, err) + } + + // Reading one more should fail + n, err = io.ReadFull(hkdf, make([]byte, 1)) + if n > 0 || err == nil { + t.Errorf("key expansion overflowed: n = %d, err = %v", n, err) + } +} + +func Benchmark16ByteMD5Single(b *testing.B) { + benchmarkHKDFSingle(md5.New, 16, b) +} + +func Benchmark20ByteSHA1Single(b *testing.B) { + benchmarkHKDFSingle(sha1.New, 20, b) +} + +func Benchmark32ByteSHA256Single(b *testing.B) { + benchmarkHKDFSingle(sha256.New, 32, b) +} + +func Benchmark64ByteSHA512Single(b *testing.B) { + benchmarkHKDFSingle(sha512.New, 64, b) +} + +func Benchmark8ByteMD5Stream(b *testing.B) { + benchmarkHKDFStream(md5.New, 8, b) +} + +func Benchmark16ByteMD5Stream(b *testing.B) { + benchmarkHKDFStream(md5.New, 16, b) +} + +func Benchmark8ByteSHA1Stream(b *testing.B) { + benchmarkHKDFStream(sha1.New, 8, b) +} + +func Benchmark20ByteSHA1Stream(b *testing.B) { + benchmarkHKDFStream(sha1.New, 20, b) +} + +func Benchmark8ByteSHA256Stream(b *testing.B) { + benchmarkHKDFStream(sha256.New, 8, b) +} + +func Benchmark32ByteSHA256Stream(b *testing.B) { + benchmarkHKDFStream(sha256.New, 32, b) +} + +func Benchmark8ByteSHA512Stream(b *testing.B) { + benchmarkHKDFStream(sha512.New, 8, b) +} + +func Benchmark64ByteSHA512Stream(b *testing.B) { + benchmarkHKDFStream(sha512.New, 64, b) +} + +func benchmarkHKDFSingle(hasher func() hash.Hash, block int, b *testing.B) { + master := []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07} + salt := []byte{0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17} + info := []byte{0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27} + out := make([]byte, block) + + b.SetBytes(int64(block)) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + hkdf := New(hasher, master, salt, info) + io.ReadFull(hkdf, out) + } +} + +func benchmarkHKDFStream(hasher func() hash.Hash, block int, b *testing.B) { + master := []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07} + salt := []byte{0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17} + info := []byte{0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27} + out := make([]byte, block) + + b.SetBytes(int64(block)) + b.ResetTimer() + + hkdf := New(hasher, master, salt, info) + for i := 0; i < b.N; i++ { + _, err := io.ReadFull(hkdf, out) + if err != nil { + hkdf = New(hasher, master, salt, info) + i-- + } + } +} diff --git a/vendor/golang.org/x/crypto/md4/md4.go b/vendor/golang.org/x/crypto/md4/md4.go new file mode 100644 index 00000000..6d9ba9e5 --- /dev/null +++ b/vendor/golang.org/x/crypto/md4/md4.go @@ -0,0 +1,118 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package md4 implements the MD4 hash algorithm as defined in RFC 1320. +package md4 // import "golang.org/x/crypto/md4" + +import ( + "crypto" + "hash" +) + +func init() { + crypto.RegisterHash(crypto.MD4, New) +} + +// The size of an MD4 checksum in bytes. +const Size = 16 + +// The blocksize of MD4 in bytes. +const BlockSize = 64 + +const ( + _Chunk = 64 + _Init0 = 0x67452301 + _Init1 = 0xEFCDAB89 + _Init2 = 0x98BADCFE + _Init3 = 0x10325476 +) + +// digest represents the partial evaluation of a checksum. +type digest struct { + s [4]uint32 + x [_Chunk]byte + nx int + len uint64 +} + +func (d *digest) Reset() { + d.s[0] = _Init0 + d.s[1] = _Init1 + d.s[2] = _Init2 + d.s[3] = _Init3 + d.nx = 0 + d.len = 0 +} + +// New returns a new hash.Hash computing the MD4 checksum. +func New() hash.Hash { + d := new(digest) + d.Reset() + return d +} + +func (d *digest) Size() int { return Size } + +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + d.len += uint64(nn) + if d.nx > 0 { + n := len(p) + if n > _Chunk-d.nx { + n = _Chunk - d.nx + } + for i := 0; i < n; i++ { + d.x[d.nx+i] = p[i] + } + d.nx += n + if d.nx == _Chunk { + _Block(d, d.x[0:]) + d.nx = 0 + } + p = p[n:] + } + n := _Block(d, p) + p = p[n:] + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +func (d0 *digest) Sum(in []byte) []byte { + // Make a copy of d0, so that caller can keep writing and summing. + d := new(digest) + *d = *d0 + + // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. + len := d.len + var tmp [64]byte + tmp[0] = 0x80 + if len%64 < 56 { + d.Write(tmp[0 : 56-len%64]) + } else { + d.Write(tmp[0 : 64+56-len%64]) + } + + // Length in bits. + len <<= 3 + for i := uint(0); i < 8; i++ { + tmp[i] = byte(len >> (8 * i)) + } + d.Write(tmp[0:8]) + + if d.nx != 0 { + panic("d.nx != 0") + } + + for _, s := range d.s { + in = append(in, byte(s>>0)) + in = append(in, byte(s>>8)) + in = append(in, byte(s>>16)) + in = append(in, byte(s>>24)) + } + return in +} diff --git a/vendor/golang.org/x/crypto/md4/md4_test.go b/vendor/golang.org/x/crypto/md4/md4_test.go new file mode 100644 index 00000000..b56edd78 --- /dev/null +++ b/vendor/golang.org/x/crypto/md4/md4_test.go @@ -0,0 +1,71 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package md4 + +import ( + "fmt" + "io" + "testing" +) + +type md4Test struct { + out string + in string +} + +var golden = []md4Test{ + {"31d6cfe0d16ae931b73c59d7e0c089c0", ""}, + {"bde52cb31de33e46245e05fbdbd6fb24", "a"}, + {"ec388dd78999dfc7cf4632465693b6bf", "ab"}, + {"a448017aaf21d8525fc10ae87aa6729d", "abc"}, + {"41decd8f579255c5200f86a4bb3ba740", "abcd"}, + {"9803f4a34e8eb14f96adba49064a0c41", "abcde"}, + {"804e7f1c2586e50b49ac65db5b645131", "abcdef"}, + {"752f4adfe53d1da0241b5bc216d098fc", "abcdefg"}, + {"ad9daf8d49d81988590a6f0e745d15dd", "abcdefgh"}, + {"1e4e28b05464316b56402b3815ed2dfd", "abcdefghi"}, + {"dc959c6f5d6f9e04e4380777cc964b3d", "abcdefghij"}, + {"1b5701e265778898ef7de5623bbe7cc0", "Discard medicine more than two years old."}, + {"d7f087e090fe7ad4a01cb59dacc9a572", "He who has a shady past knows that nice guys finish last."}, + {"a6f8fd6df617c72837592fc3570595c9", "I wouldn't marry him with a ten foot pole."}, + {"c92a84a9526da8abc240c05d6b1a1ce0", "Free! Free!/A trip/to Mars/for 900/empty jars/Burma Shave"}, + {"f6013160c4dcb00847069fee3bb09803", "The days of the digital watch are numbered. -Tom Stoppard"}, + {"2c3bb64f50b9107ed57640fe94bec09f", "Nepal premier won't resign."}, + {"45b7d8a32c7806f2f7f897332774d6e4", "For every action there is an equal and opposite government program."}, + {"b5b4f9026b175c62d7654bdc3a1cd438", "His money is twice tainted: 'taint yours and 'taint mine."}, + {"caf44e80f2c20ce19b5ba1cab766e7bd", "There is no reason for any individual to have a computer in their home. -Ken Olsen, 1977"}, + {"191fae6707f496aa54a6bce9f2ecf74d", "It's a tiny change to the code and not completely disgusting. - Bob Manchek"}, + {"9ddc753e7a4ccee6081cd1b45b23a834", "size: a.out: bad magic"}, + {"8d050f55b1cadb9323474564be08a521", "The major problem is with sendmail. -Mark Horton"}, + {"ad6e2587f74c3e3cc19146f6127fa2e3", "Give me a rock, paper and scissors and I will move the world. CCFestoon"}, + {"1d616d60a5fabe85589c3f1566ca7fca", "If the enemy is within range, then so are you."}, + {"aec3326a4f496a2ced65a1963f84577f", "It's well we cannot hear the screams/That we create in others' dreams."}, + {"77b4fd762d6b9245e61c50bf6ebf118b", "You remind me of a TV show, but that's all right: I watch it anyway."}, + {"e8f48c726bae5e516f6ddb1a4fe62438", "C is as portable as Stonehedge!!"}, + {"a3a84366e7219e887423b01f9be7166e", "Even if I could be Shakespeare, I think I should still choose to be Faraday. - A. Huxley"}, + {"a6b7aa35157e984ef5d9b7f32e5fbb52", "The fugacity of a constituent in a mixture of gases at a given temperature is proportional to its mole fraction. Lewis-Randall Rule"}, + {"75661f0545955f8f9abeeb17845f3fd6", "How can you write a big system without C++? -Paul Glick"}, +} + +func TestGolden(t *testing.T) { + for i := 0; i < len(golden); i++ { + g := golden[i] + c := New() + for j := 0; j < 3; j++ { + if j < 2 { + io.WriteString(c, g.in) + } else { + io.WriteString(c, g.in[0:len(g.in)/2]) + c.Sum(nil) + io.WriteString(c, g.in[len(g.in)/2:]) + } + s := fmt.Sprintf("%x", c.Sum(nil)) + if s != g.out { + t.Fatalf("md4[%d](%s) = %s want %s", j, g.in, s, g.out) + } + c.Reset() + } + } +} diff --git a/vendor/golang.org/x/crypto/md4/md4block.go b/vendor/golang.org/x/crypto/md4/md4block.go new file mode 100644 index 00000000..3fed475f --- /dev/null +++ b/vendor/golang.org/x/crypto/md4/md4block.go @@ -0,0 +1,89 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// MD4 block step. +// In its own file so that a faster assembly or C version +// can be substituted easily. + +package md4 + +var shift1 = []uint{3, 7, 11, 19} +var shift2 = []uint{3, 5, 9, 13} +var shift3 = []uint{3, 9, 11, 15} + +var xIndex2 = []uint{0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15} +var xIndex3 = []uint{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15} + +func _Block(dig *digest, p []byte) int { + a := dig.s[0] + b := dig.s[1] + c := dig.s[2] + d := dig.s[3] + n := 0 + var X [16]uint32 + for len(p) >= _Chunk { + aa, bb, cc, dd := a, b, c, d + + j := 0 + for i := 0; i < 16; i++ { + X[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 + j += 4 + } + + // If this needs to be made faster in the future, + // the usual trick is to unroll each of these + // loops by a factor of 4; that lets you replace + // the shift[] lookups with constants and, + // with suitable variable renaming in each + // unrolled body, delete the a, b, c, d = d, a, b, c + // (or you can let the optimizer do the renaming). + // + // The index variables are uint so that % by a power + // of two can be optimized easily by a compiler. + + // Round 1. + for i := uint(0); i < 16; i++ { + x := i + s := shift1[i%4] + f := ((c ^ d) & b) ^ d + a += f + X[x] + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + // Round 2. + for i := uint(0); i < 16; i++ { + x := xIndex2[i] + s := shift2[i%4] + g := (b & c) | (b & d) | (c & d) + a += g + X[x] + 0x5a827999 + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + // Round 3. + for i := uint(0); i < 16; i++ { + x := xIndex3[i] + s := shift3[i%4] + h := b ^ c ^ d + a += h + X[x] + 0x6ed9eba1 + a = a<>(32-s) + a, b, c, d = d, a, b, c + } + + a += aa + b += bb + c += cc + d += dd + + p = p[_Chunk:] + n += _Chunk + } + + dig.s[0] = a + dig.s[1] = b + dig.s[2] = c + dig.s[3] = d + return n +} diff --git a/vendor/golang.org/x/crypto/nacl/box/box.go b/vendor/golang.org/x/crypto/nacl/box/box.go new file mode 100644 index 00000000..7ed1864f --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/box/box.go @@ -0,0 +1,86 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package box authenticates and encrypts messages using public-key cryptography. + +Box uses Curve25519, XSalsa20 and Poly1305 to encrypt and authenticate +messages. The length of messages is not hidden. + +It is the caller's responsibility to ensure the uniqueness of nonces—for +example, by using nonce 1 for the first message, nonce 2 for the second +message, etc. Nonces are long enough that randomly generated nonces have +negligible risk of collision. + +This package is interoperable with NaCl: https://nacl.cr.yp.to/box.html. +*/ +package box // import "golang.org/x/crypto/nacl/box" + +import ( + "io" + + "golang.org/x/crypto/curve25519" + "golang.org/x/crypto/nacl/secretbox" + "golang.org/x/crypto/salsa20/salsa" +) + +// Overhead is the number of bytes of overhead when boxing a message. +const Overhead = secretbox.Overhead + +// GenerateKey generates a new public/private key pair suitable for use with +// Seal and Open. +func GenerateKey(rand io.Reader) (publicKey, privateKey *[32]byte, err error) { + publicKey = new([32]byte) + privateKey = new([32]byte) + _, err = io.ReadFull(rand, privateKey[:]) + if err != nil { + publicKey = nil + privateKey = nil + return + } + + curve25519.ScalarBaseMult(publicKey, privateKey) + return +} + +var zeros [16]byte + +// Precompute calculates the shared key between peersPublicKey and privateKey +// and writes it to sharedKey. The shared key can be used with +// OpenAfterPrecomputation and SealAfterPrecomputation to speed up processing +// when using the same pair of keys repeatedly. +func Precompute(sharedKey, peersPublicKey, privateKey *[32]byte) { + curve25519.ScalarMult(sharedKey, privateKey, peersPublicKey) + salsa.HSalsa20(sharedKey, &zeros, sharedKey, &salsa.Sigma) +} + +// Seal appends an encrypted and authenticated copy of message to out, which +// will be Overhead bytes longer than the original and must not overlap. The +// nonce must be unique for each distinct message for a given pair of keys. +func Seal(out, message []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) []byte { + var sharedKey [32]byte + Precompute(&sharedKey, peersPublicKey, privateKey) + return secretbox.Seal(out, message, nonce, &sharedKey) +} + +// SealAfterPrecomputation performs the same actions as Seal, but takes a +// shared key as generated by Precompute. +func SealAfterPrecomputation(out, message []byte, nonce *[24]byte, sharedKey *[32]byte) []byte { + return secretbox.Seal(out, message, nonce, sharedKey) +} + +// Open authenticates and decrypts a box produced by Seal and appends the +// message to out, which must not overlap box. The output will be Overhead +// bytes smaller than box. +func Open(out, box []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) ([]byte, bool) { + var sharedKey [32]byte + Precompute(&sharedKey, peersPublicKey, privateKey) + return secretbox.Open(out, box, nonce, &sharedKey) +} + +// OpenAfterPrecomputation performs the same actions as Open, but takes a +// shared key as generated by Precompute. +func OpenAfterPrecomputation(out, box []byte, nonce *[24]byte, sharedKey *[32]byte) ([]byte, bool) { + return secretbox.Open(out, box, nonce, sharedKey) +} diff --git a/vendor/golang.org/x/crypto/nacl/box/box_test.go b/vendor/golang.org/x/crypto/nacl/box/box_test.go new file mode 100644 index 00000000..481ade28 --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/box/box_test.go @@ -0,0 +1,78 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package box + +import ( + "bytes" + "crypto/rand" + "encoding/hex" + "testing" + + "golang.org/x/crypto/curve25519" +) + +func TestSealOpen(t *testing.T) { + publicKey1, privateKey1, _ := GenerateKey(rand.Reader) + publicKey2, privateKey2, _ := GenerateKey(rand.Reader) + + if *privateKey1 == *privateKey2 { + t.Fatalf("private keys are equal!") + } + if *publicKey1 == *publicKey2 { + t.Fatalf("public keys are equal!") + } + message := []byte("test message") + var nonce [24]byte + + box := Seal(nil, message, &nonce, publicKey1, privateKey2) + opened, ok := Open(nil, box, &nonce, publicKey2, privateKey1) + if !ok { + t.Fatalf("failed to open box") + } + + if !bytes.Equal(opened, message) { + t.Fatalf("got %x, want %x", opened, message) + } + + for i := range box { + box[i] ^= 0x40 + _, ok := Open(nil, box, &nonce, publicKey2, privateKey1) + if ok { + t.Fatalf("opened box with byte %d corrupted", i) + } + box[i] ^= 0x40 + } +} + +func TestBox(t *testing.T) { + var privateKey1, privateKey2 [32]byte + for i := range privateKey1[:] { + privateKey1[i] = 1 + } + for i := range privateKey2[:] { + privateKey2[i] = 2 + } + + var publicKey1 [32]byte + curve25519.ScalarBaseMult(&publicKey1, &privateKey1) + var message [64]byte + for i := range message[:] { + message[i] = 3 + } + + var nonce [24]byte + for i := range nonce[:] { + nonce[i] = 4 + } + + box := Seal(nil, message[:], &nonce, &publicKey1, &privateKey2) + + // expected was generated using the C implementation of NaCl. + expected, _ := hex.DecodeString("78ea30b19d2341ebbdba54180f821eec265cf86312549bea8a37652a8bb94f07b78a73ed1708085e6ddd0e943bbdeb8755079a37eb31d86163ce241164a47629c0539f330b4914cd135b3855bc2a2dfc") + + if !bytes.Equal(box, expected) { + t.Fatalf("box didn't match, got\n%x\n, expected\n%x", box, expected) + } +} diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/example_test.go b/vendor/golang.org/x/crypto/nacl/secretbox/example_test.go new file mode 100644 index 00000000..b25e663a --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/secretbox/example_test.go @@ -0,0 +1,53 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package secretbox_test + +import ( + "crypto/rand" + "encoding/hex" + "fmt" + "io" + + "golang.org/x/crypto/nacl/secretbox" +) + +func Example() { + // Load your secret key from a safe place and reuse it across multiple + // Seal calls. (Obviously don't use this example key for anything + // real.) If you want to convert a passphrase to a key, use a suitable + // package like bcrypt or scrypt. + secretKeyBytes, err := hex.DecodeString("6368616e676520746869732070617373776f726420746f206120736563726574") + if err != nil { + panic(err) + } + + var secretKey [32]byte + copy(secretKey[:], secretKeyBytes) + + // You must use a different nonce for each message you encrypt with the + // same key. Since the nonce here is 192 bits long, a random value + // provides a sufficiently small probability of repeats. + var nonce [24]byte + if _, err := io.ReadFull(rand.Reader, nonce[:]); err != nil { + panic(err) + } + + // This encrypts "hello world" and appends the result to the nonce. + encrypted := secretbox.Seal(nonce[:], []byte("hello world"), &nonce, &secretKey) + + // When you decrypt, you must use the same nonce and key you used to + // encrypt the message. One way to achieve this is to store the nonce + // alongside the encrypted message. Above, we stored the nonce in the first + // 24 bytes of the encrypted text. + var decryptNonce [24]byte + copy(decryptNonce[:], encrypted[:24]) + decrypted, ok := secretbox.Open([]byte{}, encrypted[24:], &decryptNonce, &secretKey) + if !ok { + panic("decryption error") + } + + fmt.Println(string(decrypted)) + // Output: hello world +} diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go new file mode 100644 index 00000000..1e1dff50 --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go @@ -0,0 +1,149 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package secretbox encrypts and authenticates small messages. + +Secretbox uses XSalsa20 and Poly1305 to encrypt and authenticate messages with +secret-key cryptography. The length of messages is not hidden. + +It is the caller's responsibility to ensure the uniqueness of nonces—for +example, by using nonce 1 for the first message, nonce 2 for the second +message, etc. Nonces are long enough that randomly generated nonces have +negligible risk of collision. + +This package is interoperable with NaCl: https://nacl.cr.yp.to/secretbox.html. +*/ +package secretbox // import "golang.org/x/crypto/nacl/secretbox" + +import ( + "golang.org/x/crypto/poly1305" + "golang.org/x/crypto/salsa20/salsa" +) + +// Overhead is the number of bytes of overhead when boxing a message. +const Overhead = poly1305.TagSize + +// setup produces a sub-key and Salsa20 counter given a nonce and key. +func setup(subKey *[32]byte, counter *[16]byte, nonce *[24]byte, key *[32]byte) { + // We use XSalsa20 for encryption so first we need to generate a + // key and nonce with HSalsa20. + var hNonce [16]byte + copy(hNonce[:], nonce[:]) + salsa.HSalsa20(subKey, &hNonce, key, &salsa.Sigma) + + // The final 8 bytes of the original nonce form the new nonce. + copy(counter[:], nonce[16:]) +} + +// sliceForAppend takes a slice and a requested number of bytes. It returns a +// slice with the contents of the given slice followed by that many bytes and a +// second slice that aliases into it and contains only the extra bytes. If the +// original slice has sufficient capacity then no allocation is performed. +func sliceForAppend(in []byte, n int) (head, tail []byte) { + if total := len(in) + n; cap(in) >= total { + head = in[:total] + } else { + head = make([]byte, total) + copy(head, in) + } + tail = head[len(in):] + return +} + +// Seal appends an encrypted and authenticated copy of message to out, which +// must not overlap message. The key and nonce pair must be unique for each +// distinct message and the output will be Overhead bytes longer than message. +func Seal(out, message []byte, nonce *[24]byte, key *[32]byte) []byte { + var subKey [32]byte + var counter [16]byte + setup(&subKey, &counter, nonce, key) + + // The Poly1305 key is generated by encrypting 32 bytes of zeros. Since + // Salsa20 works with 64-byte blocks, we also generate 32 bytes of + // keystream as a side effect. + var firstBlock [64]byte + salsa.XORKeyStream(firstBlock[:], firstBlock[:], &counter, &subKey) + + var poly1305Key [32]byte + copy(poly1305Key[:], firstBlock[:]) + + ret, out := sliceForAppend(out, len(message)+poly1305.TagSize) + + // We XOR up to 32 bytes of message with the keystream generated from + // the first block. + firstMessageBlock := message + if len(firstMessageBlock) > 32 { + firstMessageBlock = firstMessageBlock[:32] + } + + tagOut := out + out = out[poly1305.TagSize:] + for i, x := range firstMessageBlock { + out[i] = firstBlock[32+i] ^ x + } + message = message[len(firstMessageBlock):] + ciphertext := out + out = out[len(firstMessageBlock):] + + // Now encrypt the rest. + counter[8] = 1 + salsa.XORKeyStream(out, message, &counter, &subKey) + + var tag [poly1305.TagSize]byte + poly1305.Sum(&tag, ciphertext, &poly1305Key) + copy(tagOut, tag[:]) + + return ret +} + +// Open authenticates and decrypts a box produced by Seal and appends the +// message to out, which must not overlap box. The output will be Overhead +// bytes smaller than box. +func Open(out []byte, box []byte, nonce *[24]byte, key *[32]byte) ([]byte, bool) { + if len(box) < Overhead { + return nil, false + } + + var subKey [32]byte + var counter [16]byte + setup(&subKey, &counter, nonce, key) + + // The Poly1305 key is generated by encrypting 32 bytes of zeros. Since + // Salsa20 works with 64-byte blocks, we also generate 32 bytes of + // keystream as a side effect. + var firstBlock [64]byte + salsa.XORKeyStream(firstBlock[:], firstBlock[:], &counter, &subKey) + + var poly1305Key [32]byte + copy(poly1305Key[:], firstBlock[:]) + var tag [poly1305.TagSize]byte + copy(tag[:], box) + + if !poly1305.Verify(&tag, box[poly1305.TagSize:], &poly1305Key) { + return nil, false + } + + ret, out := sliceForAppend(out, len(box)-Overhead) + + // We XOR up to 32 bytes of box with the keystream generated from + // the first block. + box = box[Overhead:] + firstMessageBlock := box + if len(firstMessageBlock) > 32 { + firstMessageBlock = firstMessageBlock[:32] + } + for i, x := range firstMessageBlock { + out[i] = firstBlock[32+i] ^ x + } + + box = box[len(firstMessageBlock):] + out = out[len(firstMessageBlock):] + + // Now decrypt the rest. + counter[8] = 1 + salsa.XORKeyStream(out, box, &counter, &subKey) + + return ret, true +} diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/secretbox_test.go b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox_test.go new file mode 100644 index 00000000..664dc152 --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/secretbox/secretbox_test.go @@ -0,0 +1,91 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package secretbox + +import ( + "bytes" + "crypto/rand" + "encoding/hex" + "testing" +) + +func TestSealOpen(t *testing.T) { + var key [32]byte + var nonce [24]byte + + rand.Reader.Read(key[:]) + rand.Reader.Read(nonce[:]) + + var box, opened []byte + + for msgLen := 0; msgLen < 128; msgLen += 17 { + message := make([]byte, msgLen) + rand.Reader.Read(message) + + box = Seal(box[:0], message, &nonce, &key) + var ok bool + opened, ok = Open(opened[:0], box, &nonce, &key) + if !ok { + t.Errorf("%d: failed to open box", msgLen) + continue + } + + if !bytes.Equal(opened, message) { + t.Errorf("%d: got %x, expected %x", msgLen, opened, message) + continue + } + } + + for i := range box { + box[i] ^= 0x20 + _, ok := Open(opened[:0], box, &nonce, &key) + if ok { + t.Errorf("box was opened after corrupting byte %d", i) + } + box[i] ^= 0x20 + } +} + +func TestSecretBox(t *testing.T) { + var key [32]byte + var nonce [24]byte + var message [64]byte + + for i := range key[:] { + key[i] = 1 + } + for i := range nonce[:] { + nonce[i] = 2 + } + for i := range message[:] { + message[i] = 3 + } + + box := Seal(nil, message[:], &nonce, &key) + // expected was generated using the C implementation of NaCl. + expected, _ := hex.DecodeString("8442bc313f4626f1359e3b50122b6ce6fe66ddfe7d39d14e637eb4fd5b45beadab55198df6ab5368439792a23c87db70acb6156dc5ef957ac04f6276cf6093b84be77ff0849cc33e34b7254d5a8f65ad") + + if !bytes.Equal(box, expected) { + t.Fatalf("box didn't match, got\n%x\n, expected\n%x", box, expected) + } +} + +func TestAppend(t *testing.T) { + var key [32]byte + var nonce [24]byte + var message [8]byte + + out := make([]byte, 4) + box := Seal(out, message[:], &nonce, &key) + if !bytes.Equal(box[:4], out[:4]) { + t.Fatalf("Seal didn't correctly append") + } + + out = make([]byte, 4, 100) + box = Seal(out, message[:], &nonce, &key) + if !bytes.Equal(box[:4], out[:4]) { + t.Fatalf("Seal didn't correctly append with sufficient capacity.") + } +} diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp.go b/vendor/golang.org/x/crypto/ocsp/ocsp.go new file mode 100644 index 00000000..2c7e57a0 --- /dev/null +++ b/vendor/golang.org/x/crypto/ocsp/ocsp.go @@ -0,0 +1,714 @@ +// 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 ocsp parses OCSP responses as specified in RFC 2560. OCSP responses +// are signed messages attesting to the validity of a certificate for a small +// period of time. This is used to manage revocation for X.509 certificates. +package ocsp // import "golang.org/x/crypto/ocsp" + +import ( + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "crypto/sha1" + "crypto/x509" + "crypto/x509/pkix" + "encoding/asn1" + "errors" + "math/big" + "strconv" + "time" +) + +var idPKIXOCSPBasic = asn1.ObjectIdentifier([]int{1, 3, 6, 1, 5, 5, 7, 48, 1, 1}) + +// ResponseStatus contains the result of an OCSP request. See +// https://tools.ietf.org/html/rfc6960#section-2.3 +type ResponseStatus int + +const ( + Success ResponseStatus = 0 + Malformed ResponseStatus = 1 + InternalError ResponseStatus = 2 + TryLater ResponseStatus = 3 + // Status code four is unused in OCSP. See + // https://tools.ietf.org/html/rfc6960#section-4.2.1 + SignatureRequired ResponseStatus = 5 + Unauthorized ResponseStatus = 6 +) + +func (r ResponseStatus) String() string { + switch r { + case Success: + return "success" + case Malformed: + return "malformed" + case InternalError: + return "internal error" + case TryLater: + return "try later" + case SignatureRequired: + return "signature required" + case Unauthorized: + return "unauthorized" + default: + return "unknown OCSP status: " + strconv.Itoa(int(r)) + } +} + +// ResponseError is an error that may be returned by ParseResponse to indicate +// that the response itself is an error, not just that its indicating that a +// certificate is revoked, unknown, etc. +type ResponseError struct { + Status ResponseStatus +} + +func (r ResponseError) Error() string { + return "ocsp: error from server: " + r.Status.String() +} + +// These are internal structures that reflect the ASN.1 structure of an OCSP +// response. See RFC 2560, section 4.2. + +type certID struct { + HashAlgorithm pkix.AlgorithmIdentifier + NameHash []byte + IssuerKeyHash []byte + SerialNumber *big.Int +} + +// https://tools.ietf.org/html/rfc2560#section-4.1.1 +type ocspRequest struct { + TBSRequest tbsRequest +} + +type tbsRequest struct { + Version int `asn1:"explicit,tag:0,default:0,optional"` + RequestorName pkix.RDNSequence `asn1:"explicit,tag:1,optional"` + RequestList []request +} + +type request struct { + Cert certID +} + +type responseASN1 struct { + Status asn1.Enumerated + Response responseBytes `asn1:"explicit,tag:0,optional"` +} + +type responseBytes struct { + ResponseType asn1.ObjectIdentifier + Response []byte +} + +type basicResponse struct { + TBSResponseData responseData + SignatureAlgorithm pkix.AlgorithmIdentifier + Signature asn1.BitString + Certificates []asn1.RawValue `asn1:"explicit,tag:0,optional"` +} + +type responseData struct { + Raw asn1.RawContent + Version int `asn1:"optional,default:0,explicit,tag:0"` + RawResponderName asn1.RawValue `asn1:"optional,explicit,tag:1"` + KeyHash []byte `asn1:"optional,explicit,tag:2"` + ProducedAt time.Time `asn1:"generalized"` + Responses []singleResponse +} + +type singleResponse struct { + CertID certID + Good asn1.Flag `asn1:"tag:0,optional"` + Revoked revokedInfo `asn1:"tag:1,optional"` + Unknown asn1.Flag `asn1:"tag:2,optional"` + ThisUpdate time.Time `asn1:"generalized"` + NextUpdate time.Time `asn1:"generalized,explicit,tag:0,optional"` + SingleExtensions []pkix.Extension `asn1:"explicit,tag:1,optional"` +} + +type revokedInfo struct { + RevocationTime time.Time `asn1:"generalized"` + Reason asn1.Enumerated `asn1:"explicit,tag:0,optional"` +} + +var ( + oidSignatureMD2WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 2} + oidSignatureMD5WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 4} + oidSignatureSHA1WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 5} + oidSignatureSHA256WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 11} + oidSignatureSHA384WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 12} + oidSignatureSHA512WithRSA = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 13} + oidSignatureDSAWithSHA1 = asn1.ObjectIdentifier{1, 2, 840, 10040, 4, 3} + oidSignatureDSAWithSHA256 = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 3, 2} + oidSignatureECDSAWithSHA1 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 1} + oidSignatureECDSAWithSHA256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 2} + oidSignatureECDSAWithSHA384 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 3} + oidSignatureECDSAWithSHA512 = asn1.ObjectIdentifier{1, 2, 840, 10045, 4, 3, 4} +) + +var hashOIDs = map[crypto.Hash]asn1.ObjectIdentifier{ + crypto.SHA1: asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}), + crypto.SHA256: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 1}), + crypto.SHA384: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 2}), + crypto.SHA512: asn1.ObjectIdentifier([]int{2, 16, 840, 1, 101, 3, 4, 2, 3}), +} + +// TODO(rlb): This is also from crypto/x509, so same comment as AGL's below +var signatureAlgorithmDetails = []struct { + algo x509.SignatureAlgorithm + oid asn1.ObjectIdentifier + pubKeyAlgo x509.PublicKeyAlgorithm + hash crypto.Hash +}{ + {x509.MD2WithRSA, oidSignatureMD2WithRSA, x509.RSA, crypto.Hash(0) /* no value for MD2 */}, + {x509.MD5WithRSA, oidSignatureMD5WithRSA, x509.RSA, crypto.MD5}, + {x509.SHA1WithRSA, oidSignatureSHA1WithRSA, x509.RSA, crypto.SHA1}, + {x509.SHA256WithRSA, oidSignatureSHA256WithRSA, x509.RSA, crypto.SHA256}, + {x509.SHA384WithRSA, oidSignatureSHA384WithRSA, x509.RSA, crypto.SHA384}, + {x509.SHA512WithRSA, oidSignatureSHA512WithRSA, x509.RSA, crypto.SHA512}, + {x509.DSAWithSHA1, oidSignatureDSAWithSHA1, x509.DSA, crypto.SHA1}, + {x509.DSAWithSHA256, oidSignatureDSAWithSHA256, x509.DSA, crypto.SHA256}, + {x509.ECDSAWithSHA1, oidSignatureECDSAWithSHA1, x509.ECDSA, crypto.SHA1}, + {x509.ECDSAWithSHA256, oidSignatureECDSAWithSHA256, x509.ECDSA, crypto.SHA256}, + {x509.ECDSAWithSHA384, oidSignatureECDSAWithSHA384, x509.ECDSA, crypto.SHA384}, + {x509.ECDSAWithSHA512, oidSignatureECDSAWithSHA512, x509.ECDSA, crypto.SHA512}, +} + +// TODO(rlb): This is also from crypto/x509, so same comment as AGL's below +func signingParamsForPublicKey(pub interface{}, requestedSigAlgo x509.SignatureAlgorithm) (hashFunc crypto.Hash, sigAlgo pkix.AlgorithmIdentifier, err error) { + var pubType x509.PublicKeyAlgorithm + + switch pub := pub.(type) { + case *rsa.PublicKey: + pubType = x509.RSA + hashFunc = crypto.SHA256 + sigAlgo.Algorithm = oidSignatureSHA256WithRSA + sigAlgo.Parameters = asn1.RawValue{ + Tag: 5, + } + + case *ecdsa.PublicKey: + pubType = x509.ECDSA + + switch pub.Curve { + case elliptic.P224(), elliptic.P256(): + hashFunc = crypto.SHA256 + sigAlgo.Algorithm = oidSignatureECDSAWithSHA256 + case elliptic.P384(): + hashFunc = crypto.SHA384 + sigAlgo.Algorithm = oidSignatureECDSAWithSHA384 + case elliptic.P521(): + hashFunc = crypto.SHA512 + sigAlgo.Algorithm = oidSignatureECDSAWithSHA512 + default: + err = errors.New("x509: unknown elliptic curve") + } + + default: + err = errors.New("x509: only RSA and ECDSA keys supported") + } + + if err != nil { + return + } + + if requestedSigAlgo == 0 { + return + } + + found := false + for _, details := range signatureAlgorithmDetails { + if details.algo == requestedSigAlgo { + if details.pubKeyAlgo != pubType { + err = errors.New("x509: requested SignatureAlgorithm does not match private key type") + return + } + sigAlgo.Algorithm, hashFunc = details.oid, details.hash + if hashFunc == 0 { + err = errors.New("x509: cannot sign with hash function requested") + return + } + found = true + break + } + } + + if !found { + err = errors.New("x509: unknown SignatureAlgorithm") + } + + return +} + +// TODO(agl): this is taken from crypto/x509 and so should probably be exported +// from crypto/x509 or crypto/x509/pkix. +func getSignatureAlgorithmFromOID(oid asn1.ObjectIdentifier) x509.SignatureAlgorithm { + for _, details := range signatureAlgorithmDetails { + if oid.Equal(details.oid) { + return details.algo + } + } + return x509.UnknownSignatureAlgorithm +} + +// TODO(rlb): This is not taken from crypto/x509, but it's of the same general form. +func getHashAlgorithmFromOID(target asn1.ObjectIdentifier) crypto.Hash { + for hash, oid := range hashOIDs { + if oid.Equal(target) { + return hash + } + } + return crypto.Hash(0) +} + +func getOIDFromHashAlgorithm(target crypto.Hash) asn1.ObjectIdentifier { + for hash, oid := range hashOIDs { + if hash == target { + return oid + } + } + return nil +} + +// This is the exposed reflection of the internal OCSP structures. + +// The status values that can be expressed in OCSP. See RFC 6960. +const ( + // Good means that the certificate is valid. + Good = iota + // Revoked means that the certificate has been deliberately revoked. + Revoked + // Unknown means that the OCSP responder doesn't know about the certificate. + Unknown + // ServerFailed is unused and was never used (see + // https://go-review.googlesource.com/#/c/18944). ParseResponse will + // return a ResponseError when an error response is parsed. + ServerFailed +) + +// The enumerated reasons for revoking a certificate. See RFC 5280. +const ( + Unspecified = iota + KeyCompromise = iota + CACompromise = iota + AffiliationChanged = iota + Superseded = iota + CessationOfOperation = iota + CertificateHold = iota + _ = iota + RemoveFromCRL = iota + PrivilegeWithdrawn = iota + AACompromise = iota +) + +// Request represents an OCSP request. See RFC 6960. +type Request struct { + HashAlgorithm crypto.Hash + IssuerNameHash []byte + IssuerKeyHash []byte + SerialNumber *big.Int +} + +// Marshal marshals the OCSP request to ASN.1 DER encoded form. +func (req *Request) Marshal() ([]byte, error) { + hashAlg := getOIDFromHashAlgorithm(req.HashAlgorithm) + if hashAlg == nil { + return nil, errors.New("Unknown hash algorithm") + } + return asn1.Marshal(ocspRequest{ + tbsRequest{ + Version: 0, + RequestList: []request{ + { + Cert: certID{ + pkix.AlgorithmIdentifier{ + Algorithm: hashAlg, + Parameters: asn1.RawValue{Tag: 5 /* ASN.1 NULL */}, + }, + req.IssuerNameHash, + req.IssuerKeyHash, + req.SerialNumber, + }, + }, + }, + }, + }) +} + +// Response represents an OCSP response containing a single SingleResponse. See +// RFC 6960. +type Response struct { + // Status is one of {Good, Revoked, Unknown} + Status int + SerialNumber *big.Int + ProducedAt, ThisUpdate, NextUpdate, RevokedAt time.Time + RevocationReason int + Certificate *x509.Certificate + // TBSResponseData contains the raw bytes of the signed response. If + // Certificate is nil then this can be used to verify Signature. + TBSResponseData []byte + Signature []byte + SignatureAlgorithm x509.SignatureAlgorithm + + // Extensions contains raw X.509 extensions from the singleExtensions field + // of the OCSP response. When parsing certificates, this can be used to + // extract non-critical extensions that are not parsed by this package. When + // marshaling OCSP responses, the Extensions field is ignored, see + // ExtraExtensions. + Extensions []pkix.Extension + + // ExtraExtensions contains extensions to be copied, raw, into any marshaled + // OCSP response (in the singleExtensions field). Values override any + // extensions that would otherwise be produced based on the other fields. The + // ExtraExtensions field is not populated when parsing certificates, see + // Extensions. + ExtraExtensions []pkix.Extension +} + +// These are pre-serialized error responses for the various non-success codes +// defined by OCSP. The Unauthorized code in particular can be used by an OCSP +// responder that supports only pre-signed responses as a response to requests +// for certificates with unknown status. See RFC 5019. +var ( + MalformedRequestErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x01} + InternalErrorErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x02} + TryLaterErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x03} + SigRequredErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x05} + UnauthorizedErrorResponse = []byte{0x30, 0x03, 0x0A, 0x01, 0x06} +) + +// CheckSignatureFrom checks that the signature in resp is a valid signature +// from issuer. This should only be used if resp.Certificate is nil. Otherwise, +// the OCSP response contained an intermediate certificate that created the +// signature. That signature is checked by ParseResponse and only +// resp.Certificate remains to be validated. +func (resp *Response) CheckSignatureFrom(issuer *x509.Certificate) error { + return issuer.CheckSignature(resp.SignatureAlgorithm, resp.TBSResponseData, resp.Signature) +} + +// ParseError results from an invalid OCSP response. +type ParseError string + +func (p ParseError) Error() string { + return string(p) +} + +// ParseRequest parses an OCSP request in DER form. It only supports +// requests for a single certificate. Signed requests are not supported. +// If a request includes a signature, it will result in a ParseError. +func ParseRequest(bytes []byte) (*Request, error) { + var req ocspRequest + rest, err := asn1.Unmarshal(bytes, &req) + if err != nil { + return nil, err + } + if len(rest) > 0 { + return nil, ParseError("trailing data in OCSP request") + } + + if len(req.TBSRequest.RequestList) == 0 { + return nil, ParseError("OCSP request contains no request body") + } + innerRequest := req.TBSRequest.RequestList[0] + + hashFunc := getHashAlgorithmFromOID(innerRequest.Cert.HashAlgorithm.Algorithm) + if hashFunc == crypto.Hash(0) { + return nil, ParseError("OCSP request uses unknown hash function") + } + + return &Request{ + HashAlgorithm: hashFunc, + IssuerNameHash: innerRequest.Cert.NameHash, + IssuerKeyHash: innerRequest.Cert.IssuerKeyHash, + SerialNumber: innerRequest.Cert.SerialNumber, + }, nil +} + +// ParseResponse parses an OCSP response in DER form. It only supports +// responses for a single certificate. If the response contains a certificate +// then the signature over the response is checked. If issuer is not nil then +// it will be used to validate the signature or embedded certificate. +// +// Invalid signatures or parse failures will result in a ParseError. Error +// responses will result in a ResponseError. +func ParseResponse(bytes []byte, issuer *x509.Certificate) (*Response, error) { + return ParseResponseForCert(bytes, nil, issuer) +} + +// ParseResponseForCert parses an OCSP response in DER form and searches for a +// Response relating to cert. If such a Response is found and the OCSP response +// contains a certificate then the signature over the response is checked. If +// issuer is not nil then it will be used to validate the signature or embedded +// certificate. +// +// Invalid signatures or parse failures will result in a ParseError. Error +// responses will result in a ResponseError. +func ParseResponseForCert(bytes []byte, cert, issuer *x509.Certificate) (*Response, error) { + var resp responseASN1 + rest, err := asn1.Unmarshal(bytes, &resp) + if err != nil { + return nil, err + } + if len(rest) > 0 { + return nil, ParseError("trailing data in OCSP response") + } + + if status := ResponseStatus(resp.Status); status != Success { + return nil, ResponseError{status} + } + + if !resp.Response.ResponseType.Equal(idPKIXOCSPBasic) { + return nil, ParseError("bad OCSP response type") + } + + var basicResp basicResponse + rest, err = asn1.Unmarshal(resp.Response.Response, &basicResp) + if err != nil { + return nil, err + } + + if len(basicResp.Certificates) > 1 { + return nil, ParseError("OCSP response contains bad number of certificates") + } + + if n := len(basicResp.TBSResponseData.Responses); n == 0 || cert == nil && n > 1 { + return nil, ParseError("OCSP response contains bad number of responses") + } + + ret := &Response{ + TBSResponseData: basicResp.TBSResponseData.Raw, + Signature: basicResp.Signature.RightAlign(), + SignatureAlgorithm: getSignatureAlgorithmFromOID(basicResp.SignatureAlgorithm.Algorithm), + } + + if len(basicResp.Certificates) > 0 { + ret.Certificate, err = x509.ParseCertificate(basicResp.Certificates[0].FullBytes) + if err != nil { + return nil, err + } + + if err := ret.CheckSignatureFrom(ret.Certificate); err != nil { + return nil, ParseError("bad OCSP signature") + } + + if issuer != nil { + if err := issuer.CheckSignature(ret.Certificate.SignatureAlgorithm, ret.Certificate.RawTBSCertificate, ret.Certificate.Signature); err != nil { + return nil, ParseError("bad signature on embedded certificate") + } + } + } else if issuer != nil { + if err := ret.CheckSignatureFrom(issuer); err != nil { + return nil, ParseError("bad OCSP signature") + } + } + + var r singleResponse + for _, resp := range basicResp.TBSResponseData.Responses { + if cert == nil || cert.SerialNumber.Cmp(resp.CertID.SerialNumber) == 0 { + r = resp + break + } + } + + for _, ext := range r.SingleExtensions { + if ext.Critical { + return nil, ParseError("unsupported critical extension") + } + } + ret.Extensions = r.SingleExtensions + + ret.SerialNumber = r.CertID.SerialNumber + + switch { + case bool(r.Good): + ret.Status = Good + case bool(r.Unknown): + ret.Status = Unknown + default: + ret.Status = Revoked + ret.RevokedAt = r.Revoked.RevocationTime + ret.RevocationReason = int(r.Revoked.Reason) + } + + ret.ProducedAt = basicResp.TBSResponseData.ProducedAt + ret.ThisUpdate = r.ThisUpdate + ret.NextUpdate = r.NextUpdate + + return ret, nil +} + +// RequestOptions contains options for constructing OCSP requests. +type RequestOptions struct { + // Hash contains the hash function that should be used when + // constructing the OCSP request. If zero, SHA-1 will be used. + Hash crypto.Hash +} + +func (opts *RequestOptions) hash() crypto.Hash { + if opts == nil || opts.Hash == 0 { + // SHA-1 is nearly universally used in OCSP. + return crypto.SHA1 + } + return opts.Hash +} + +// CreateRequest returns a DER-encoded, OCSP request for the status of cert. If +// opts is nil then sensible defaults are used. +func CreateRequest(cert, issuer *x509.Certificate, opts *RequestOptions) ([]byte, error) { + hashFunc := opts.hash() + + // OCSP seems to be the only place where these raw hash identifiers are + // used. I took the following from + // http://msdn.microsoft.com/en-us/library/ff635603.aspx + _, ok := hashOIDs[hashFunc] + if !ok { + return nil, x509.ErrUnsupportedAlgorithm + } + + if !hashFunc.Available() { + return nil, x509.ErrUnsupportedAlgorithm + } + h := opts.hash().New() + + var publicKeyInfo struct { + Algorithm pkix.AlgorithmIdentifier + PublicKey asn1.BitString + } + if _, err := asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo); err != nil { + return nil, err + } + + h.Write(publicKeyInfo.PublicKey.RightAlign()) + issuerKeyHash := h.Sum(nil) + + h.Reset() + h.Write(issuer.RawSubject) + issuerNameHash := h.Sum(nil) + + req := &Request{ + HashAlgorithm: hashFunc, + IssuerNameHash: issuerNameHash, + IssuerKeyHash: issuerKeyHash, + SerialNumber: cert.SerialNumber, + } + return req.Marshal() +} + +// CreateResponse returns a DER-encoded OCSP response with the specified contents. +// The fields in the response are populated as follows: +// +// The responder cert is used to populate the ResponderName field, and the certificate +// itself is provided alongside the OCSP response signature. +// +// The issuer cert is used to puplate the IssuerNameHash and IssuerKeyHash fields. +// (SHA-1 is used for the hash function; this is not configurable.) +// +// The template is used to populate the SerialNumber, RevocationStatus, RevokedAt, +// RevocationReason, ThisUpdate, and NextUpdate fields. +// +// The ProducedAt date is automatically set to the current date, to the nearest minute. +func CreateResponse(issuer, responderCert *x509.Certificate, template Response, priv crypto.Signer) ([]byte, error) { + var publicKeyInfo struct { + Algorithm pkix.AlgorithmIdentifier + PublicKey asn1.BitString + } + if _, err := asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo); err != nil { + return nil, err + } + + h := sha1.New() + h.Write(publicKeyInfo.PublicKey.RightAlign()) + issuerKeyHash := h.Sum(nil) + + h.Reset() + h.Write(issuer.RawSubject) + issuerNameHash := h.Sum(nil) + + innerResponse := singleResponse{ + CertID: certID{ + HashAlgorithm: pkix.AlgorithmIdentifier{ + Algorithm: hashOIDs[crypto.SHA1], + Parameters: asn1.RawValue{Tag: 5 /* ASN.1 NULL */}, + }, + NameHash: issuerNameHash, + IssuerKeyHash: issuerKeyHash, + SerialNumber: template.SerialNumber, + }, + ThisUpdate: template.ThisUpdate.UTC(), + NextUpdate: template.NextUpdate.UTC(), + SingleExtensions: template.ExtraExtensions, + } + + switch template.Status { + case Good: + innerResponse.Good = true + case Unknown: + innerResponse.Unknown = true + case Revoked: + innerResponse.Revoked = revokedInfo{ + RevocationTime: template.RevokedAt.UTC(), + Reason: asn1.Enumerated(template.RevocationReason), + } + } + + responderName := asn1.RawValue{ + Class: 2, // context-specific + Tag: 1, // explicit tag + IsCompound: true, + Bytes: responderCert.RawSubject, + } + tbsResponseData := responseData{ + Version: 0, + RawResponderName: responderName, + ProducedAt: time.Now().Truncate(time.Minute).UTC(), + Responses: []singleResponse{innerResponse}, + } + + tbsResponseDataDER, err := asn1.Marshal(tbsResponseData) + if err != nil { + return nil, err + } + + hashFunc, signatureAlgorithm, err := signingParamsForPublicKey(priv.Public(), template.SignatureAlgorithm) + if err != nil { + return nil, err + } + + responseHash := hashFunc.New() + responseHash.Write(tbsResponseDataDER) + signature, err := priv.Sign(rand.Reader, responseHash.Sum(nil), hashFunc) + if err != nil { + return nil, err + } + + response := basicResponse{ + TBSResponseData: tbsResponseData, + SignatureAlgorithm: signatureAlgorithm, + Signature: asn1.BitString{ + Bytes: signature, + BitLength: 8 * len(signature), + }, + } + if template.Certificate != nil { + response.Certificates = []asn1.RawValue{ + asn1.RawValue{FullBytes: template.Certificate.Raw}, + } + } + responseDER, err := asn1.Marshal(response) + if err != nil { + return nil, err + } + + return asn1.Marshal(responseASN1{ + Status: asn1.Enumerated(Success), + Response: responseBytes{ + ResponseType: idPKIXOCSPBasic, + Response: responseDER, + }, + }) +} diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp_test.go b/vendor/golang.org/x/crypto/ocsp/ocsp_test.go new file mode 100644 index 00000000..f66489a7 --- /dev/null +++ b/vendor/golang.org/x/crypto/ocsp/ocsp_test.go @@ -0,0 +1,778 @@ +// 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 ocsp + +import ( + "bytes" + "crypto" + "crypto/sha1" + "crypto/x509" + "crypto/x509/pkix" + "encoding/asn1" + "encoding/hex" + "math/big" + "reflect" + "testing" + "time" +) + +func TestOCSPDecode(t *testing.T) { + responseBytes, _ := hex.DecodeString(ocspResponseHex) + resp, err := ParseResponse(responseBytes, nil) + if err != nil { + t.Error(err) + } + + expected := Response{ + Status: Good, + SerialNumber: big.NewInt(0x1d0fa), + RevocationReason: Unspecified, + ThisUpdate: time.Date(2010, 7, 7, 15, 1, 5, 0, time.UTC), + NextUpdate: time.Date(2010, 7, 7, 18, 35, 17, 0, time.UTC), + } + + if !reflect.DeepEqual(resp.ThisUpdate, expected.ThisUpdate) { + t.Errorf("resp.ThisUpdate: got %d, want %d", resp.ThisUpdate, expected.ThisUpdate) + } + + if !reflect.DeepEqual(resp.NextUpdate, expected.NextUpdate) { + t.Errorf("resp.NextUpdate: got %d, want %d", resp.NextUpdate, expected.NextUpdate) + } + + if resp.Status != expected.Status { + t.Errorf("resp.Status: got %d, want %d", resp.Status, expected.Status) + } + + if resp.SerialNumber.Cmp(expected.SerialNumber) != 0 { + t.Errorf("resp.SerialNumber: got %x, want %x", resp.SerialNumber, expected.SerialNumber) + } + + if resp.RevocationReason != expected.RevocationReason { + t.Errorf("resp.RevocationReason: got %d, want %d", resp.RevocationReason, expected.RevocationReason) + } +} + +func TestOCSPDecodeWithoutCert(t *testing.T) { + responseBytes, _ := hex.DecodeString(ocspResponseWithoutCertHex) + _, err := ParseResponse(responseBytes, nil) + if err != nil { + t.Error(err) + } +} + +func TestOCSPDecodeWithExtensions(t *testing.T) { + responseBytes, _ := hex.DecodeString(ocspResponseWithCriticalExtensionHex) + _, err := ParseResponse(responseBytes, nil) + if err == nil { + t.Error(err) + } + + responseBytes, _ = hex.DecodeString(ocspResponseWithExtensionHex) + response, err := ParseResponse(responseBytes, nil) + if err != nil { + t.Fatal(err) + } + + if len(response.Extensions) != 1 { + t.Errorf("len(response.Extensions): got %v, want %v", len(response.Extensions), 1) + } + + extensionBytes := response.Extensions[0].Value + expectedBytes, _ := hex.DecodeString(ocspExtensionValueHex) + if !bytes.Equal(extensionBytes, expectedBytes) { + t.Errorf("response.Extensions[0]: got %x, want %x", extensionBytes, expectedBytes) + } +} + +func TestOCSPSignature(t *testing.T) { + issuerCert, _ := hex.DecodeString(startComHex) + issuer, err := x509.ParseCertificate(issuerCert) + if err != nil { + t.Fatal(err) + } + + response, _ := hex.DecodeString(ocspResponseHex) + if _, err := ParseResponse(response, issuer); err != nil { + t.Error(err) + } +} + +func TestOCSPRequest(t *testing.T) { + leafCert, _ := hex.DecodeString(leafCertHex) + cert, err := x509.ParseCertificate(leafCert) + if err != nil { + t.Fatal(err) + } + + issuerCert, _ := hex.DecodeString(issuerCertHex) + issuer, err := x509.ParseCertificate(issuerCert) + if err != nil { + t.Fatal(err) + } + + request, err := CreateRequest(cert, issuer, nil) + if err != nil { + t.Fatal(err) + } + + expectedBytes, _ := hex.DecodeString(ocspRequestHex) + if !bytes.Equal(request, expectedBytes) { + t.Errorf("request: got %x, wanted %x", request, expectedBytes) + } + + decodedRequest, err := ParseRequest(expectedBytes) + if err != nil { + t.Fatal(err) + } + + if decodedRequest.HashAlgorithm != crypto.SHA1 { + t.Errorf("request.HashAlgorithm: got %v, want %v", decodedRequest.HashAlgorithm, crypto.SHA1) + } + + var publicKeyInfo struct { + Algorithm pkix.AlgorithmIdentifier + PublicKey asn1.BitString + } + _, err = asn1.Unmarshal(issuer.RawSubjectPublicKeyInfo, &publicKeyInfo) + if err != nil { + t.Fatal(err) + } + + h := sha1.New() + h.Write(publicKeyInfo.PublicKey.RightAlign()) + issuerKeyHash := h.Sum(nil) + + h.Reset() + h.Write(issuer.RawSubject) + issuerNameHash := h.Sum(nil) + + if got := decodedRequest.IssuerKeyHash; !bytes.Equal(got, issuerKeyHash) { + t.Errorf("request.IssuerKeyHash: got %x, want %x", got, issuerKeyHash) + } + + if got := decodedRequest.IssuerNameHash; !bytes.Equal(got, issuerNameHash) { + t.Errorf("request.IssuerKeyHash: got %x, want %x", got, issuerNameHash) + } + + if got := decodedRequest.SerialNumber; got.Cmp(cert.SerialNumber) != 0 { + t.Errorf("request.SerialNumber: got %x, want %x", got, cert.SerialNumber) + } + + marshaledRequest, err := decodedRequest.Marshal() + if err != nil { + t.Fatal(err) + } + + if bytes.Compare(expectedBytes, marshaledRequest) != 0 { + t.Errorf( + "Marshaled request doesn't match expected: wanted %x, got %x", + expectedBytes, + marshaledRequest, + ) + } +} + +func TestOCSPResponse(t *testing.T) { + leafCert, _ := hex.DecodeString(leafCertHex) + leaf, err := x509.ParseCertificate(leafCert) + if err != nil { + t.Fatal(err) + } + + issuerCert, _ := hex.DecodeString(issuerCertHex) + issuer, err := x509.ParseCertificate(issuerCert) + if err != nil { + t.Fatal(err) + } + + responderCert, _ := hex.DecodeString(responderCertHex) + responder, err := x509.ParseCertificate(responderCert) + if err != nil { + t.Fatal(err) + } + + responderPrivateKeyDER, _ := hex.DecodeString(responderPrivateKeyHex) + responderPrivateKey, err := x509.ParsePKCS1PrivateKey(responderPrivateKeyDER) + if err != nil { + t.Fatal(err) + } + + extensionBytes, _ := hex.DecodeString(ocspExtensionValueHex) + extensions := []pkix.Extension{ + pkix.Extension{ + Id: ocspExtensionOID, + Critical: false, + Value: extensionBytes, + }, + } + + producedAt := time.Now().Truncate(time.Minute) + thisUpdate := time.Date(2010, 7, 7, 15, 1, 5, 0, time.UTC) + nextUpdate := time.Date(2010, 7, 7, 18, 35, 17, 0, time.UTC) + template := Response{ + Status: Revoked, + SerialNumber: leaf.SerialNumber, + ThisUpdate: thisUpdate, + NextUpdate: nextUpdate, + RevokedAt: thisUpdate, + RevocationReason: KeyCompromise, + Certificate: responder, + ExtraExtensions: extensions, + } + + responseBytes, err := CreateResponse(issuer, responder, template, responderPrivateKey) + if err != nil { + t.Fatal(err) + } + + resp, err := ParseResponse(responseBytes, nil) + if err != nil { + t.Fatal(err) + } + + if !reflect.DeepEqual(resp.ThisUpdate, template.ThisUpdate) { + t.Errorf("resp.ThisUpdate: got %d, want %d", resp.ThisUpdate, template.ThisUpdate) + } + + if !reflect.DeepEqual(resp.NextUpdate, template.NextUpdate) { + t.Errorf("resp.NextUpdate: got %d, want %d", resp.NextUpdate, template.NextUpdate) + } + + if !reflect.DeepEqual(resp.RevokedAt, template.RevokedAt) { + t.Errorf("resp.RevokedAt: got %d, want %d", resp.RevokedAt, template.RevokedAt) + } + + if !reflect.DeepEqual(resp.Extensions, template.ExtraExtensions) { + t.Errorf("resp.Extensions: got %v, want %v", resp.Extensions, template.ExtraExtensions) + } + + if !resp.ProducedAt.Equal(producedAt) { + t.Errorf("resp.ProducedAt: got %d, want %d", resp.ProducedAt, producedAt) + } + + if resp.Status != template.Status { + t.Errorf("resp.Status: got %d, want %d", resp.Status, template.Status) + } + + if resp.SerialNumber.Cmp(template.SerialNumber) != 0 { + t.Errorf("resp.SerialNumber: got %x, want %x", resp.SerialNumber, template.SerialNumber) + } + + if resp.RevocationReason != template.RevocationReason { + t.Errorf("resp.RevocationReason: got %d, want %d", resp.RevocationReason, template.RevocationReason) + } +} + +func TestErrorResponse(t *testing.T) { + responseBytes, _ := hex.DecodeString(errorResponseHex) + _, err := ParseResponse(responseBytes, nil) + + respErr, ok := err.(ResponseError) + if !ok { + t.Fatalf("expected ResponseError from ParseResponse but got %#v", err) + } + if respErr.Status != Malformed { + t.Fatalf("expected Malformed status from ParseResponse but got %d", respErr.Status) + } +} + +func TestOCSPDecodeMultiResponse(t *testing.T) { + inclCert, _ := hex.DecodeString(ocspMultiResponseCertHex) + cert, err := x509.ParseCertificate(inclCert) + if err != nil { + t.Fatal(err) + } + + responseBytes, _ := hex.DecodeString(ocspMultiResponseHex) + resp, err := ParseResponseForCert(responseBytes, cert, nil) + if err != nil { + t.Fatal(err) + } + + if resp.SerialNumber.Cmp(cert.SerialNumber) != 0 { + t.Errorf("resp.SerialNumber: got %x, want %x", resp.SerialNumber, cert.SerialNumber) + } +} + +// This OCSP response was taken from Thawte's public OCSP responder. +// To recreate: +// $ openssl s_client -tls1 -showcerts -servername www.google.com -connect www.google.com:443 +// Copy and paste the first certificate into /tmp/cert.crt and the second into +// /tmp/intermediate.crt +// $ openssl ocsp -issuer /tmp/intermediate.crt -cert /tmp/cert.crt -url http://ocsp.thawte.com -resp_text -respout /tmp/ocsp.der +// Then hex encode the result: +// $ python -c 'print file("/tmp/ocsp.der", "r").read().encode("hex")' + +const ocspResponseHex = "308206bc0a0100a08206b5308206b106092b0601050507300101048206a23082069e3081" + + "c9a14e304c310b300906035504061302494c31163014060355040a130d5374617274436f" + + "6d204c74642e312530230603550403131c5374617274436f6d20436c6173732031204f43" + + "5350205369676e6572180f32303130303730373137333531375a30663064303c30090605" + + "2b0e03021a050004146568874f40750f016a3475625e1f5c93e5a26d580414eb4234d098" + + "b0ab9ff41b6b08f7cc642eef0e2c45020301d0fa8000180f323031303037303731353031" + + "30355aa011180f32303130303730373138333531375a300d06092a864886f70d01010505" + + "000382010100ab557ff070d1d7cebbb5f0ec91a15c3fed22eb2e1b8244f1b84545f013a4" + + "fb46214c5e3fbfbebb8a56acc2b9db19f68fd3c3201046b3824d5ba689f99864328710cb" + + "467195eb37d84f539e49f859316b32964dc3e47e36814ce94d6c56dd02733b1d0802f7ff" + + "4eebdbbd2927dcf580f16cbc290f91e81b53cb365e7223f1d6e20a88ea064104875e0145" + + "672b20fc14829d51ca122f5f5d77d3ad6c83889c55c7dc43680ba2fe3cef8b05dbcabdc0" + + "d3e09aaf9725597f8c858c2fa38c0d6aed2e6318194420dd1a1137445d13e1c97ab47896" + + "17a4e08925f46f867b72e3a4dc1f08cb870b2b0717f7207faa0ac512e628a029aba7457a" + + "e63dcf3281e2162d9349a08204ba308204b6308204b23082039aa003020102020101300d" + + "06092a864886f70d010105050030818c310b300906035504061302494c31163014060355" + + "040a130d5374617274436f6d204c74642e312b3029060355040b13225365637572652044" + + "69676974616c204365727469666963617465205369676e696e6731383036060355040313" + + "2f5374617274436f6d20436c6173732031205072696d61727920496e7465726d65646961" + + "746520536572766572204341301e170d3037313032353030323330365a170d3132313032" + + "333030323330365a304c310b300906035504061302494c31163014060355040a130d5374" + + "617274436f6d204c74642e312530230603550403131c5374617274436f6d20436c617373" + + "2031204f435350205369676e657230820122300d06092a864886f70d0101010500038201" + + "0f003082010a0282010100b9561b4c45318717178084e96e178df2255e18ed8d8ecc7c2b" + + "7b51a6c1c2e6bf0aa3603066f132fe10ae97b50e99fa24b83fc53dd2777496387d14e1c3" + + "a9b6a4933e2ac12413d085570a95b8147414a0bc007c7bcf222446ef7f1a156d7ea1c577" + + "fc5f0facdfd42eb0f5974990cb2f5cefebceef4d1bdc7ae5c1075c5a99a93171f2b0845b" + + "4ff0864e973fcfe32f9d7511ff87a3e943410c90a4493a306b6944359340a9ca96f02b66" + + "ce67f028df2980a6aaee8d5d5d452b8b0eb93f923cc1e23fcccbdbe7ffcb114d08fa7a6a" + + "3c404f825d1a0e715935cf623a8c7b59670014ed0622f6089a9447a7a19010f7fe58f841" + + "29a2765ea367824d1c3bb2fda308530203010001a382015c30820158300c0603551d1301" + + "01ff04023000300b0603551d0f0404030203a8301e0603551d250417301506082b060105" + + "0507030906092b0601050507300105301d0603551d0e0416041445e0a36695414c5dd449" + + "bc00e33cdcdbd2343e173081a80603551d230481a030819d8014eb4234d098b0ab9ff41b" + + "6b08f7cc642eef0e2c45a18181a47f307d310b300906035504061302494c311630140603" + + "55040a130d5374617274436f6d204c74642e312b3029060355040b132253656375726520" + + "4469676974616c204365727469666963617465205369676e696e67312930270603550403" + + "13205374617274436f6d2043657274696669636174696f6e20417574686f726974798201" + + "0a30230603551d12041c301a8618687474703a2f2f7777772e737461727473736c2e636f" + + "6d2f302c06096086480186f842010d041f161d5374617274436f6d205265766f63617469" + + "6f6e20417574686f72697479300d06092a864886f70d01010505000382010100182d2215" + + "8f0fc0291324fa8574c49bb8ff2835085adcbf7b7fc4191c397ab6951328253fffe1e5ec" + + "2a7da0d50fca1a404e6968481366939e666c0a6209073eca57973e2fefa9ed1718e8176f" + + "1d85527ff522c08db702e3b2b180f1cbff05d98128252cf0f450f7dd2772f4188047f19d" + + "c85317366f94bc52d60f453a550af58e308aaab00ced33040b62bf37f5b1ab2a4f7f0f80" + + "f763bf4d707bc8841d7ad9385ee2a4244469260b6f2bf085977af9074796048ecc2f9d48" + + "a1d24ce16e41a9941568fec5b42771e118f16c106a54ccc339a4b02166445a167902e75e" + + "6d8620b0825dcd18a069b90fd851d10fa8effd409deec02860d26d8d833f304b10669b42" + +const startComHex = "308206343082041ca003020102020118300d06092a864886f70d0101050500307d310b30" + + "0906035504061302494c31163014060355040a130d5374617274436f6d204c74642e312b" + + "3029060355040b1322536563757265204469676974616c20436572746966696361746520" + + "5369676e696e6731293027060355040313205374617274436f6d20436572746966696361" + + "74696f6e20417574686f72697479301e170d3037313032343230353431375a170d313731" + + "3032343230353431375a30818c310b300906035504061302494c31163014060355040a13" + + "0d5374617274436f6d204c74642e312b3029060355040b13225365637572652044696769" + + "74616c204365727469666963617465205369676e696e67313830360603550403132f5374" + + "617274436f6d20436c6173732031205072696d61727920496e7465726d65646961746520" + + "53657276657220434130820122300d06092a864886f70d01010105000382010f00308201" + + "0a0282010100b689c6acef09527807ac9263d0f44418188480561f91aee187fa3250b4d3" + + "4706f0e6075f700e10f71dc0ce103634855a0f92ac83c6ac58523fba38e8fce7a724e240" + + "a60876c0926e9e2a6d4d3f6e61200adb59ded27d63b33e46fefa215118d7cd30a6ed076e" + + "3b7087b4f9faebee823c056f92f7a4dc0a301e9373fe07cad75f809d225852ae06da8b87" + + "2369b0e42ad8ea83d2bdf371db705a280faf5a387045123f304dcd3baf17e50fcba0a95d" + + "48aab16150cb34cd3c5cc30be810c08c9bf0030362feb26c3e720eee1c432ac9480e5739" + + "c43121c810c12c87fe5495521f523c31129b7fe7c0a0a559d5e28f3ef0d5a8e1d77031a9" + + "c4b3cfaf6d532f06f4a70203010001a38201ad308201a9300f0603551d130101ff040530" + + "030101ff300e0603551d0f0101ff040403020106301d0603551d0e04160414eb4234d098" + + "b0ab9ff41b6b08f7cc642eef0e2c45301f0603551d230418301680144e0bef1aa4405ba5" + + "17698730ca346843d041aef2306606082b06010505070101045a3058302706082b060105" + + "05073001861b687474703a2f2f6f6373702e737461727473736c2e636f6d2f6361302d06" + + "082b060105050730028621687474703a2f2f7777772e737461727473736c2e636f6d2f73" + + "667363612e637274305b0603551d1f045430523027a025a0238621687474703a2f2f7777" + + "772e737461727473736c2e636f6d2f73667363612e63726c3027a025a023862168747470" + + "3a2f2f63726c2e737461727473736c2e636f6d2f73667363612e63726c3081800603551d" + + "20047930773075060b2b0601040181b5370102013066302e06082b060105050702011622" + + "687474703a2f2f7777772e737461727473736c2e636f6d2f706f6c6963792e7064663034" + + "06082b060105050702011628687474703a2f2f7777772e737461727473736c2e636f6d2f" + + "696e7465726d6564696174652e706466300d06092a864886f70d01010505000382020100" + + "2109493ea5886ee00b8b48da314d8ff75657a2e1d36257e9b556f38545753be5501f048b" + + "e6a05a3ee700ae85d0fbff200364cbad02e1c69172f8a34dd6dee8cc3fa18aa2e37c37a7" + + "c64f8f35d6f4d66e067bdd21d9cf56ffcb302249fe8904f385e5aaf1e71fe875904dddf9" + + "46f74234f745580c110d84b0c6da5d3ef9019ee7e1da5595be741c7bfc4d144fac7e5547" + + "7d7bf4a50d491e95e8f712c1ccff76a62547d0f37535be97b75816ebaa5c786fec5330af" + + "ea044dcca902e3f0b60412f630b1113d904e5664d7dc3c435f7339ef4baf87ebf6fe6888" + + "4472ead207c669b0c1a18bef1749d761b145485f3b2021e95bb2ccf4d7e931f50b15613b" + + "7a94e3ebd9bc7f94ae6ae3626296a8647cb887f399327e92a252bebbf865cfc9f230fc8b" + + "c1c2a696d75f89e15c3480f58f47072fb491bfb1a27e5f4b5ad05b9f248605515a690365" + + "434971c5e06f94346bf61bd8a9b04c7e53eb8f48dfca33b548fa364a1a53a6330cd089cd" + + "4915cd89313c90c072d7654b52358a461144b93d8e2865a63e799e5c084429adb035112e" + + "214eb8d2e7103e5d8483b3c3c2e4d2c6fd094b7409ddf1b3d3193e800da20b19f038e7c5" + + "c2afe223db61e29d5c6e2089492e236ab262c145b49faf8ba7f1223bf87de290d07a19fb" + + "4a4ce3d27d5f4a8303ed27d6239e6b8db459a2d9ef6c8229dd75193c3f4c108defbb7527" + + "d2ae83a7a8ce5ba7" + +const ocspResponseWithoutCertHex = "308201d40a0100a08201cd308201c906092b0601050507300101048201ba3082" + + "01b630819fa2160414884451ff502a695e2d88f421bad90cf2cecbea7c180f3230313330" + + "3631383037323434335a30743072304a300906052b0e03021a0500041448b60d38238df8" + + "456e4ee5843ea394111802979f0414884451ff502a695e2d88f421bad90cf2cecbea7c02" + + "1100f78b13b946fc9635d8ab49de9d2148218000180f3230313330363138303732343433" + + "5aa011180f32303133303632323037323434335a300d06092a864886f70d010105050003" + + "82010100103e18b3d297a5e7a6c07a4fc52ac46a15c0eba96f3be17f0ffe84de5b8c8e05" + + "5a8f577586a849dc4abd6440eb6fedde4622451e2823c1cbf3558b4e8184959c9fe96eff" + + "8bc5f95866c58c6d087519faabfdae37e11d9874f1bc0db292208f645dd848185e4dd38b" + + "6a8547dfa7b74d514a8470015719064d35476b95bebb03d4d2845c5ca15202d2784878f2" + + "0f904c24f09736f044609e9c271381713400e563023d212db422236440c6f377bbf24b2b" + + "9e7dec8698e36a8df68b7592ad3489fb2937afb90eb85d2aa96b81c94c25057dbd4759d9" + + "20a1a65c7f0b6427a224b3c98edd96b9b61f706099951188b0289555ad30a216fb774651" + + "5a35fca2e054dfa8" + +// PKIX nonce extension +var ocspExtensionOID = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 48, 1, 2} +var ocspExtensionValueHex = "0403000000" + +const ocspResponseWithCriticalExtensionHex = "308204fe0a0100a08204f7308204f306092b0601050507300101048204e4308204e03081" + + "dba003020100a11b3019311730150603550403130e4f43535020526573706f6e64657218" + + "0f32303136303130343137303130305a3081a53081a23049300906052b0e03021a050004" + + "14c0fe0278fc99188891b3f212e9c7e1b21ab7bfc004140dfc1df0a9e0f01ce7f2b21317" + + "7e6f8d157cd4f60210017f77deb3bcbb235d44ccc7dba62e72a116180f32303130303730" + + "373135303130355aa0030a0101180f32303130303730373135303130355aa011180f3230" + + "3130303730373138333531375aa1193017301506092b06010505073001020101ff040504" + + "03000000300d06092a864886f70d01010b0500038201010031c730ca60a7a0d92d8e4010" + + "911b469de95b4d27e89de6537552436237967694f76f701cf6b45c932bd308bca4a8d092" + + "5c604ba94796903091d9e6c000178e72c1f0a24a277dd262835af5d17d3f9d7869606c9f" + + "e7c8e708a41645699895beee38bfa63bb46296683761c5d1d65439b8ab868dc3017c9eeb" + + "b70b82dbf3a31c55b457d48bb9e82b335ed49f445042eaf606b06a3e0639824924c89c63" + + "eccddfe85e6694314138b2536f5e15e07085d0f6e26d4b2f8244bab0d70de07283ac6384" + + "a0501fc3dea7cf0adfd4c7f34871080900e252ddc403e3f0265f2a704af905d3727504ed" + + "28f3214a219d898a022463c78439799ca81c8cbafdbcec34ea937cd6a08202ea308202e6" + + "308202e2308201caa003020102020101300d06092a864886f70d01010b05003019311730" + + "150603550403130e4f43535020526573706f6e646572301e170d31353031333031353530" + + "33335a170d3136303133303135353033335a3019311730150603550403130e4f43535020" + + "526573706f6e64657230820122300d06092a864886f70d01010105000382010f00308201" + + "0a0282010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef1099f0f6616e" + + "c5265b56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df1701dc6ccfbc" + + "bec75a70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074ffde8a99d5b72" + + "3350f0a112076614b12ef79c78991b119453445acf2416ab0046b540db14c9fc0f27b898" + + "9ad0f63aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa77e7332971c7d" + + "285b6a04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f1290bafd97e6" + + "55b1049a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb96222b12ace31" + + "a77dcf920334dc94581b0203010001a3353033300e0603551d0f0101ff04040302078030" + + "130603551d25040c300a06082b06010505070309300c0603551d130101ff04023000300d" + + "06092a864886f70d01010b05000382010100718012761b5063e18f0dc44644d8e6ab8612" + + "31c15fd5357805425d82aec1de85bf6d3e30fce205e3e3b8b795bbe52e40a439286d2288" + + "9064f4aeeb150359b9425f1da51b3a5c939018555d13ac42c565a0603786a919328f3267" + + "09dce52c22ad958ecb7873b9771d1148b1c4be2efe80ba868919fc9f68b6090c2f33c156" + + "d67156e42766a50b5d51e79637b7e58af74c2a951b1e642fa7741fec982cc937de37eff5" + + "9e2005d5939bfc031589ca143e6e8ab83f40ee08cc20a6b4a95a318352c28d18528dcaf9" + + "66705de17afa19d6e8ae91ddf33179d16ebb6ac2c69cae8373d408ebf8c55308be6c04d9" + + "3a25439a94299a65a709756c7a3e568be049d5c38839" + +const ocspResponseWithExtensionHex = "308204fb0a0100a08204f4308204f006092b0601050507300101048204e1308204dd3081" + + "d8a003020100a11b3019311730150603550403130e4f43535020526573706f6e64657218" + + "0f32303136303130343136353930305a3081a230819f3049300906052b0e03021a050004" + + "14c0fe0278fc99188891b3f212e9c7e1b21ab7bfc004140dfc1df0a9e0f01ce7f2b21317" + + "7e6f8d157cd4f60210017f77deb3bcbb235d44ccc7dba62e72a116180f32303130303730" + + "373135303130355aa0030a0101180f32303130303730373135303130355aa011180f3230" + + "3130303730373138333531375aa1163014301206092b0601050507300102040504030000" + + "00300d06092a864886f70d01010b05000382010100c09a33e0b2324c852421bb83f85ac9" + + "9113f5426012bd2d2279a8166e9241d18a33c870894250622ffc7ed0c4601b16d624f90b" + + "779265442cdb6868cf40ab304ab4b66e7315ed02cf663b1601d1d4751772b31bc299db23" + + "9aebac78ed6797c06ed815a7a8d18d63cfbb609cafb47ec2e89e37db255216eb09307848" + + "d01be0a3e943653c78212b96ff524b74c9ec456b17cdfb950cc97645c577b2e09ff41dde" + + "b03afb3adaa381cc0f7c1d95663ef22a0f72f2c45613ae8e2b2d1efc96e8463c7d1d8a1d" + + "7e3b35df8fe73a301fc3f804b942b2b3afa337ff105fc1462b7b1c1d75eb4566c8665e59" + + "f80393b0adbf8004ff6c3327ed34f007cb4a3348a7d55e06e3a08202ea308202e6308202" + + "e2308201caa003020102020101300d06092a864886f70d01010b05003019311730150603" + + "550403130e4f43535020526573706f6e646572301e170d3135303133303135353033335a" + + "170d3136303133303135353033335a3019311730150603550403130e4f43535020526573" + + "706f6e64657230820122300d06092a864886f70d01010105000382010f003082010a0282" + + "010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef1099f0f6616ec5265b" + + "56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df1701dc6ccfbcbec75a" + + "70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074ffde8a99d5b723350f0" + + "a112076614b12ef79c78991b119453445acf2416ab0046b540db14c9fc0f27b8989ad0f6" + + "3aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa77e7332971c7d285b6a" + + "04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f1290bafd97e655b104" + + "9a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb96222b12ace31a77dcf" + + "920334dc94581b0203010001a3353033300e0603551d0f0101ff04040302078030130603" + + "551d25040c300a06082b06010505070309300c0603551d130101ff04023000300d06092a" + + "864886f70d01010b05000382010100718012761b5063e18f0dc44644d8e6ab861231c15f" + + "d5357805425d82aec1de85bf6d3e30fce205e3e3b8b795bbe52e40a439286d22889064f4" + + "aeeb150359b9425f1da51b3a5c939018555d13ac42c565a0603786a919328f326709dce5" + + "2c22ad958ecb7873b9771d1148b1c4be2efe80ba868919fc9f68b6090c2f33c156d67156" + + "e42766a50b5d51e79637b7e58af74c2a951b1e642fa7741fec982cc937de37eff59e2005" + + "d5939bfc031589ca143e6e8ab83f40ee08cc20a6b4a95a318352c28d18528dcaf966705d" + + "e17afa19d6e8ae91ddf33179d16ebb6ac2c69cae8373d408ebf8c55308be6c04d93a2543" + + "9a94299a65a709756c7a3e568be049d5c38839" + +const ocspMultiResponseHex = "30820ee60a0100a0820edf30820edb06092b060105050730010104820ecc30820ec83082" + + "0839a216041445ac2ecd75f53f1cf6e4c51d3de0047ad0aa7465180f3230313530363032" + + "3130303033305a3082080c3065303d300906052b0e03021a05000414f7452a0080601527" + + "72e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f0204" + + "5456656a8000180f32303135303630323039303230375aa011180f323031353036303331" + + "30303033305a3065303d300906052b0e03021a05000414f7452a008060152772e4a135e7" + + "6e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f02045456656b80" + + "00180f32303135303630323039303230375aa011180f3230313530363033313030303330" + + "5a3065303d300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0" + + "f1580414edd8f2ee977252853a330b297a18f5c993853b3f02045456656c8000180f3230" + + "3135303630323039303230375aa011180f32303135303630333130303033305a3065303d" + + "300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f1580414ed" + + "d8f2ee977252853a330b297a18f5c993853b3f02045456656d8000180f32303135303630" + + "323039303230375aa011180f32303135303630333130303033305a3065303d300906052b" + + "0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee9772" + + "52853a330b297a18f5c993853b3f02045456656e8000180f323031353036303230393032" + + "30375aa011180f32303135303630333130303033305a3065303d300906052b0e03021a05" + + "000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b" + + "297a18f5c993853b3f02045456656f8000180f32303135303630323039303230375aa011" + + "180f32303135303630333130303033305a3065303d300906052b0e03021a05000414f745" + + "2a008060152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c9" + + "93853b3f0204545665708000180f32303135303630323039303230375aa011180f323031" + + "35303630333130303033305a3065303d300906052b0e03021a05000414f7452a00806015" + + "2772e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f02" + + "04545665718000180f32303135303630323039303230375aa011180f3230313530363033" + + "3130303033305a3065303d300906052b0e03021a05000414f7452a008060152772e4a135" + + "e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f020454566572" + + "8000180f32303135303630323039303230375aa011180f32303135303630333130303033" + + "305a3065303d300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52fd" + + "e0f1580414edd8f2ee977252853a330b297a18f5c993853b3f0204545665738000180f32" + + "303135303630323039303230375aa011180f32303135303630333130303033305a306530" + + "3d300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f1580414" + + "edd8f2ee977252853a330b297a18f5c993853b3f0204545665748000180f323031353036" + + "30323039303230375aa011180f32303135303630333130303033305a3065303d30090605" + + "2b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee97" + + "7252853a330b297a18f5c993853b3f0204545665758000180f3230313530363032303930" + + "3230375aa011180f32303135303630333130303033305a3065303d300906052b0e03021a" + + "05000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a33" + + "0b297a18f5c993853b3f0204545665768000180f32303135303630323039303230375aa0" + + "11180f32303135303630333130303033305a3065303d300906052b0e03021a05000414f7" + + "452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5" + + "c993853b3f0204545665778000180f32303135303630323039303230375aa011180f3230" + + "3135303630333130303033305a3065303d300906052b0e03021a05000414f7452a008060" + + "152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f" + + "0204545665788000180f32303135303630323039303230375aa011180f32303135303630" + + "333130303033305a3065303d300906052b0e03021a05000414f7452a008060152772e4a1" + + "35e76e9e52fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f0204545665" + + "798000180f32303135303630323039303230375aa011180f323031353036303331303030" + + "33305a3065303d300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52" + + "fde0f1580414edd8f2ee977252853a330b297a18f5c993853b3f02045456657a8000180f" + + "32303135303630323039303230375aa011180f32303135303630333130303033305a3065" + + "303d300906052b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f15804" + + "14edd8f2ee977252853a330b297a18f5c993853b3f02045456657b8000180f3230313530" + + "3630323039303230375aa011180f32303135303630333130303033305a3065303d300906" + + "052b0e03021a05000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee" + + "977252853a330b297a18f5c993853b3f02045456657c8000180f32303135303630323039" + + "303230375aa011180f32303135303630333130303033305a3065303d300906052b0e0302" + + "1a05000414f7452a008060152772e4a135e76e9e52fde0f1580414edd8f2ee977252853a" + + "330b297a18f5c993853b3f02045456657d8000180f32303135303630323039303230375a" + + "a011180f32303135303630333130303033305a300d06092a864886f70d01010505000382" + + "01010016b73b92859979f27d15eb018cf069eed39c3d280213565f3026de11ba15bdb94d" + + "764cf2d0fdd204ef926c588d7b183483c8a2b1995079c7ed04dcefcc650c1965be4b6832" + + "a8839e832f7f60f638425eccdf9bc3a81fbe700fda426ddf4f06c29bee431bbbe81effda" + + "a60b7da5b378f199af2f3c8380be7ba6c21c8e27124f8a4d8989926aea19055700848d33" + + "799e833512945fd75364edbd2dd18b783c1e96e332266b17979a0b88c35b43f47c87c493" + + "19155056ad8dbbae5ff2afad3c0e1c69ed111206ffda49875e8e4efc0926264823bc4423" + + "c8a002f34288c4bc22516f98f54fc609943721f590ddd8d24f989457526b599b0eb75cb5" + + "a80da1ad93a621a08205733082056f3082056b30820453a0030201020204545638c4300d" + + "06092a864886f70d01010b0500308182310b300906035504061302555331183016060355" + + "040a130f552e532e20476f7665726e6d656e7431233021060355040b131a446570617274" + + "6d656e74206f662074686520547265617375727931223020060355040b13194365727469" + + "6669636174696f6e20417574686f7269746965733110300e060355040b13074f43494f20" + + "4341301e170d3135303332303131353531335a170d3135303633303034303030305a3081" + + "98310b300906035504061302555331183016060355040a130f552e532e20476f7665726e" + + "6d656e7431233021060355040b131a4465706172746d656e74206f662074686520547265" + + "617375727931223020060355040b131943657274696669636174696f6e20417574686f72" + + "69746965733110300e060355040b13074f43494f204341311430120603550403130b4f43" + + "5350205369676e657230820122300d06092a864886f70d01010105000382010f00308201" + + "0a0282010100c1b6fe1ba1ad50bb98c855811acbd67fe68057f48b8e08d3800e7f2c51b7" + + "9e20551934971fd92b9c9e6c49453097927cba83a94c0b2fea7124ba5ac442b38e37dba6" + + "7303d4962dd7d92b22a04b0e0e182e9ea67620b1c6ce09ee607c19e0e6e3adae81151db1" + + "2bb7f706149349a292e21c1eb28565b6839df055e1a838a772ff34b5a1452618e2c26042" + + "705d53f0af4b57aae6163f58216af12f3887813fe44b0321827b3a0c52b0e47d0aab94a2" + + "f768ab0ba3901d22f8bb263823090b0e37a7f8856db4b0d165c42f3aa7e94f5f6ce1855e" + + "98dc57adea0ae98ad39f67ecdec00b88685566e9e8d69f6cefb6ddced53015d0d3b862bc" + + "be21f3d72251eefcec730203010001a38201cf308201cb300e0603551d0f0101ff040403" + + "020780306b0603551d2004643062300c060a60864801650302010502300c060a60864801" + + "650302010503300c060a60864801650302010504300c060a60864801650302010507300c" + + "060a60864801650302010508300c060a6086480165030201030d300c060a608648016503" + + "020103113081e506082b060105050701010481d83081d5303006082b0601050507300286" + + "24687474703a2f2f706b692e74726561732e676f762f746f63615f65655f6169612e7037" + + "633081a006082b060105050730028681936c6461703a2f2f6c6461702e74726561732e67" + + "6f762f6f753d4f43494f25323043412c6f753d43657274696669636174696f6e25323041" + + "7574686f7269746965732c6f753d4465706172746d656e742532306f6625323074686525" + + "323054726561737572792c6f3d552e532e253230476f7665726e6d656e742c633d55533f" + + "634143657274696669636174653b62696e61727930130603551d25040c300a06082b0601" + + "0505070309300f06092b060105050730010504020500301f0603551d23041830168014a2" + + "13a8e5c607546c243d4eb72b27a2a7711ab5af301d0603551d0e0416041451f98046818a" + + "e46d953ac90c210ccfaa1a06980c300d06092a864886f70d01010b050003820101003a37" + + "0b301d14ffdeb370883639bec5ae6f572dcbddadd672af16ee2a8303316b14e1fbdca8c2" + + "8f4bad9c7b1410250e149c14e9830ca6f17370a8d13151205d956e28c141cc0500379596" + + "c5b9239fcfa3d2de8f1d4f1a2b1bf2d1851bed1c86012ee8135bdc395cd4496ce69fadd0" + + "3b682b90350ca7b4f458190b7a0ab5c33a04cf1347a77d541877a380a4c94988c5658908" + + "44fdc22637a72b9fa410333e2caf969477f9fe07f50e3681c204fb3bf073b9da01cd8d91" + + "8044c40b1159955af12a3263ab1d34119d7f59bfa6cae88ed058addc4e08250263f8f836" + + "2f5bdffd45636fea7474c60a55c535954477b2f286e1b2535f0dd12c162f1b353c370e08" + + "be67" + +const ocspMultiResponseCertHex = "308207943082067ca003020102020454566573300d06092a864886f70d01010b05003081" + + "82310b300906035504061302555331183016060355040a130f552e532e20476f7665726e" + + "6d656e7431233021060355040b131a4465706172746d656e74206f662074686520547265" + + "617375727931223020060355040b131943657274696669636174696f6e20417574686f72" + + "69746965733110300e060355040b13074f43494f204341301e170d313530343130313535" + + "3733385a170d3138303431303136323733385a30819d310b300906035504061302555331" + + "183016060355040a130f552e532e20476f7665726e6d656e7431233021060355040b131a" + + "4465706172746d656e74206f662074686520547265617375727931253023060355040b13" + + "1c427572656175206f66207468652046697363616c20536572766963653110300e060355" + + "040b130744657669636573311630140603550403130d706b692e74726561732e676f7630" + + "820122300d06092a864886f70d01010105000382010f003082010a0282010100c7273623" + + "8c49c48bf501515a2490ef6e5ae0c06e0ad2aa9a6bb77f3d0370d846b2571581ebf38fd3" + + "1948daad3dec7a4da095f1dcbe9654e65bcf7acdfd4ee802421dad9b90536c721d2bca58" + + "8413e6bfd739a72470560bb7d64f9a09284f90ff8af1d5a3c5c84d0f95a00f9c6d988dd0" + + "d87f1d0d3344580901c955139f54d09de0acdbd3322b758cb0c58881bf04913243401f44" + + "013fd9f6d8348044cc8bb0a71978ad93366b2a4687a5274b2ee07d0fb40225453eb244ed" + + "b20152251ac77c59455260ff07eeceb3cb3c60fb8121cf92afd3daa2a4650e1942ccb555" + + "de10b3d481feb299838ef05d0fd1810b146753472ae80da65dd34da25ca1f89971f10039" + + "0203010001a38203f3308203ef300e0603551d0f0101ff0404030205a030170603551d20" + + "0410300e300c060a60864801650302010503301106096086480186f84201010404030206" + + "4030130603551d25040c300a06082b060105050703013082010806082b06010505070101" + + "0481fb3081f8303006082b060105050730028624687474703a2f2f706b692e7472656173" + + "2e676f762f746f63615f65655f6169612e7037633081a006082b06010505073002868193" + + "6c6461703a2f2f6c6461702e74726561732e676f762f6f753d4f43494f25323043412c6f" + + "753d43657274696669636174696f6e253230417574686f7269746965732c6f753d446570" + + "6172746d656e742532306f6625323074686525323054726561737572792c6f3d552e532e" + + "253230476f7665726e6d656e742c633d55533f634143657274696669636174653b62696e" + + "617279302106082b060105050730018615687474703a2f2f6f6373702e74726561732e67" + + "6f76307b0603551d1104743072811c6373612d7465616d4066697363616c2e7472656173" + + "7572792e676f768210706b692e74726561737572792e676f768210706b692e64696d632e" + + "6468732e676f76820d706b692e74726561732e676f76811f6563622d686f7374696e6740" + + "66697363616c2e74726561737572792e676f76308201890603551d1f048201803082017c" + + "3027a025a0238621687474703a2f2f706b692e74726561732e676f762f4f43494f5f4341" + + "332e63726c3082014fa082014ba0820147a48197308194310b3009060355040613025553" + + "31183016060355040a130f552e532e20476f7665726e6d656e7431233021060355040b13" + + "1a4465706172746d656e74206f662074686520547265617375727931223020060355040b" + + "131943657274696669636174696f6e20417574686f7269746965733110300e060355040b" + + "13074f43494f2043413110300e0603550403130743524c313430398681aa6c6461703a2f" + + "2f6c6461702e74726561732e676f762f636e3d43524c313430392c6f753d4f43494f2532" + + "3043412c6f753d43657274696669636174696f6e253230417574686f7269746965732c6f" + + "753d4465706172746d656e742532306f6625323074686525323054726561737572792c6f" + + "3d552e532e253230476f7665726e6d656e742c633d55533f636572746966696361746552" + + "65766f636174696f6e4c6973743b62696e617279302b0603551d1004243022800f323031" + + "35303431303135353733385a810f32303138303431303136323733385a301f0603551d23" + + "041830168014a213a8e5c607546c243d4eb72b27a2a7711ab5af301d0603551d0e041604" + + "14b0869c12c293914cd460e33ed43e6c5a26e0d68f301906092a864886f67d074100040c" + + "300a1b0456382e31030203a8300d06092a864886f70d01010b050003820101004968d182" + + "8f9efdc147e747bb5dda15536a42a079b32d3d7f87e619b483aeee70b7e26bda393c6028" + + "7c733ecb468fe8b8b11bf809ff76add6b90eb25ad8d3a1052e43ee281e48a3a1ebe7efb5" + + "9e2c4a48765dedeb23f5346242145786cc988c762d230d28dd33bf4c2405d80cbb2cb1d6" + + "4c8f10ba130d50cb174f6ffb9cfc12808297a2cefba385f4fad170f39b51ebd87c12abf9" + + "3c51fc000af90d8aaba78f48923908804a5eb35f617ccf71d201e3708a559e6d16f9f13e" + + "074361eb9007e28d86bb4e0bfa13aad0e9ddd9124e84519de60e2fc6040b18d9fd602b02" + + "684b4c071c3019fc842197d00c120c41654bcbfbc4a096a1c637b79112b81ce1fa3899f9" + +const ocspRequestHex = "3051304f304d304b3049300906052b0e03021a05000414c0fe0278fc99188891b3f212e9" + + "c7e1b21ab7bfc004140dfc1df0a9e0f01ce7f2b213177e6f8d157cd4f60210017f77deb3" + + "bcbb235d44ccc7dba62e72" + +const leafCertHex = "308203c830820331a0030201020210017f77deb3bcbb235d44ccc7dba62e72300d06092a" + + "864886f70d01010505003081ba311f301d060355040a1316566572695369676e20547275" + + "7374204e6574776f726b31173015060355040b130e566572695369676e2c20496e632e31" + + "333031060355040b132a566572695369676e20496e7465726e6174696f6e616c20536572" + + "766572204341202d20436c617373203331493047060355040b13407777772e7665726973" + + "69676e2e636f6d2f43505320496e636f72702e6279205265662e204c494142494c495459" + + "204c54442e286329393720566572695369676e301e170d3132303632313030303030305a" + + "170d3133313233313233353935395a3068310b3009060355040613025553311330110603" + + "550408130a43616c69666f726e6961311230100603550407130950616c6f20416c746f31" + + "173015060355040a130e46616365626f6f6b2c20496e632e311730150603550403140e2a" + + "2e66616365626f6f6b2e636f6d30819f300d06092a864886f70d010101050003818d0030" + + "818902818100ae94b171e2deccc1693e051063240102e0689ae83c39b6b3e74b97d48d7b" + + "23689100b0b496ee62f0e6d356bcf4aa0f50643402f5d1766aa972835a7564723f39bbef" + + "5290ded9bcdbf9d3d55dfad23aa03dc604c54d29cf1d4b3bdbd1a809cfae47b44c7eae17" + + "c5109bee24a9cf4a8d911bb0fd0415ae4c3f430aa12a557e2ae10203010001a382011e30" + + "82011a30090603551d130402300030440603551d20043d303b3039060b6086480186f845" + + "01071703302a302806082b06010505070201161c68747470733a2f2f7777772e76657269" + + "7369676e2e636f6d2f727061303c0603551d1f043530333031a02fa02d862b687474703a" + + "2f2f535652496e746c2d63726c2e766572697369676e2e636f6d2f535652496e746c2e63" + + "726c301d0603551d250416301406082b0601050507030106082b06010505070302300b06" + + "03551d0f0404030205a0303406082b0601050507010104283026302406082b0601050507" + + "30018618687474703a2f2f6f6373702e766572697369676e2e636f6d30270603551d1104" + + "20301e820e2a2e66616365626f6f6b2e636f6d820c66616365626f6f6b2e636f6d300d06" + + "092a864886f70d0101050500038181005b6c2b75f8ed30aa51aad36aba595e555141951f" + + "81a53b447910ac1f76ff78fc2781616b58f3122afc1c87010425e9ed43df1a7ba6498060" + + "67e2688af03db58c7df4ee03309a6afc247ccb134dc33e54c6bc1d5133a532a73273b1d7" + + "9cadc08e7e1a83116d34523340b0305427a21742827c98916698ee7eaf8c3bdd71700817" + +const issuerCertHex = "30820383308202eca003020102021046fcebbab4d02f0f926098233f93078f300d06092a" + + "864886f70d0101050500305f310b300906035504061302555331173015060355040a130e" + + "566572695369676e2c20496e632e31373035060355040b132e436c617373203320507562" + + "6c6963205072696d6172792043657274696669636174696f6e20417574686f7269747930" + + "1e170d3937303431373030303030305a170d3136313032343233353935395a3081ba311f" + + "301d060355040a1316566572695369676e205472757374204e6574776f726b3117301506" + + "0355040b130e566572695369676e2c20496e632e31333031060355040b132a5665726953" + + "69676e20496e7465726e6174696f6e616c20536572766572204341202d20436c61737320" + + "3331493047060355040b13407777772e766572697369676e2e636f6d2f43505320496e63" + + "6f72702e6279205265662e204c494142494c495459204c54442e28632939372056657269" + + "5369676e30819f300d06092a864886f70d010101050003818d0030818902818100d88280" + + "e8d619027d1f85183925a2652be1bfd405d3bce6363baaf04c6c5bb6e7aa3c734555b2f1" + + "bdea9742ed9a340a15d4a95cf54025ddd907c132b2756cc4cabba3fe56277143aa63f530" + + "3e9328e5faf1093bf3b74d4e39f75c495ab8c11dd3b28afe70309542cbfe2b518b5a3c3a" + + "f9224f90b202a7539c4f34e7ab04b27b6f0203010001a381e33081e0300f0603551d1304" + + "0830060101ff02010030440603551d20043d303b3039060b6086480186f8450107010130" + + "2a302806082b06010505070201161c68747470733a2f2f7777772e766572697369676e2e" + + "636f6d2f43505330340603551d25042d302b06082b0601050507030106082b0601050507" + + "030206096086480186f8420401060a6086480186f845010801300b0603551d0f04040302" + + "0106301106096086480186f842010104040302010630310603551d1f042a30283026a024" + + "a0228620687474703a2f2f63726c2e766572697369676e2e636f6d2f706361332e63726c" + + "300d06092a864886f70d010105050003818100408e4997968a73dd8e4def3e61b7caa062" + + "adf40e0abb753de26ed82cc7bff4b98c369bcaa2d09c724639f6a682036511c4bcbf2da6" + + "f5d93b0ab598fab378b91ef22b4c62d5fdb27a1ddf33fd73f9a5d82d8c2aead1fcb028b6" + + "e94948134b838a1b487b24f738de6f4154b8ab576b06dfc7a2d4a9f6f136628088f28b75" + + "d68071" + +// Key and certificate for the OCSP responder were not taken from the Thawte +// responder, since CreateResponse requires that we have the private key. +// Instead, they were generated randomly. +const responderPrivateKeyHex = "308204a40201000282010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef" + + "1099f0f6616ec5265b56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df" + + "1701dc6ccfbcbec75a70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074f" + + "fde8a99d5b723350f0a112076614b12ef79c78991b119453445acf2416ab0046b540db14" + + "c9fc0f27b8989ad0f63aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa7" + + "7e7332971c7d285b6a04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f" + + "1290bafd97e655b1049a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb9" + + "6222b12ace31a77dcf920334dc94581b02030100010282010100bcf0b93d7238bda329a8" + + "72e7149f61bcb37c154330ccb3f42a85c9002c2e2bdea039d77d8581cd19bed94078794e" + + "56293d601547fc4bf6a2f9002fe5772b92b21b254403b403585e3130cc99ccf08f0ef81a" + + "575b38f597ba4660448b54f44bfbb97072b5a2bf043bfeca828cf7741d13698e3f38162b" + + "679faa646b82abd9a72c5c7d722c5fc577a76d2c2daac588accad18516d1bbad10b0dfa2" + + "05cfe246b59e28608a43942e1b71b0c80498075121de5b900d727c31c42c78cf1db5c0aa" + + "5b491e10ea4ed5c0962aaf2ae025dd81fa4ce490d9d6b4a4465411d8e542fc88617e5695" + + "1aa4fc8ea166f2b4d0eb89ef17f2b206bd5f1014bf8fe0e71fe62f2cccf102818100f2dc" + + "ddf878d553286daad68bac4070a82ffec3dc4666a2750f47879eec913f91836f1d976b60" + + "daf9356e078446dafab5bd2e489e5d64f8572ba24a4ba4f3729b5e106c4dd831cc2497a7" + + "e6c7507df05cb64aeb1bbc81c1e340d58b5964cf39cff84ea30c29ec5d3f005ee1362698" + + "07395037955955655292c3e85f6187fa1f9502818100f4a33c102630840705f8c778a47b" + + "87e8da31e68809af981ac5e5999cf1551685d761cdf0d6520361b99aebd5777a940fa64d" + + "327c09fa63746fbb3247ec73a86edf115f1fe5c83598db803881ade71c33c6e956118345" + + "497b98b5e07bb5be75971465ec78f2f9467e1b74956ca9d4c7c3e314e742a72d8b33889c" + + "6c093a466cef0281801d3df0d02124766dd0be98349b19eb36a508c4e679e793ba0a8bef" + + "4d786888c1e9947078b1ea28938716677b4ad8c5052af12eb73ac194915264a913709a0b" + + "7b9f98d4a18edd781a13d49899f91c20dbd8eb2e61d991ba19b5cdc08893f5cb9d39e5a6" + + "0629ea16d426244673b1b3ee72bd30e41fac8395acac40077403de5efd028180050731dd" + + "d71b1a2b96c8d538ba90bb6b62c8b1c74c03aae9a9f59d21a7a82b0d572ef06fa9c807bf" + + "c373d6b30d809c7871df96510c577421d9860c7383fda0919ece19996b3ca13562159193" + + "c0c246471e287f975e8e57034e5136aaf44254e2650def3d51292474c515b1588969112e" + + "0a85cc77073e9d64d2c2fc497844284b02818100d71d63eabf416cf677401ebf965f8314" + + "120b568a57dd3bd9116c629c40dc0c6948bab3a13cc544c31c7da40e76132ef5dd3f7534" + + "45a635930c74326ae3df0edd1bfb1523e3aa259873ac7cf1ac31151ec8f37b528c275622" + + "48f99b8bed59fd4da2576aa6ee20d93a684900bf907e80c66d6e2261ae15e55284b4ed9d" + + "6bdaa059" + +const responderCertHex = "308202e2308201caa003020102020101300d06092a864886f70d01010b05003019311730" + + "150603550403130e4f43535020526573706f6e646572301e170d31353031333031353530" + + "33335a170d3136303133303135353033335a3019311730150603550403130e4f43535020" + + "526573706f6e64657230820122300d06092a864886f70d01010105000382010f00308201" + + "0a0282010100e8155f2d3e6f2e8d14c62a788bd462f9f844e7a6977c83ef1099f0f6616e" + + "c5265b56f356e62c5400f0b06a2e7945a82752c636df32a895152d6074df1701dc6ccfbc" + + "bec75a70bd2b55ae2be7e6cad3b5fd4cd5b7790ab401a436d3f5f346074ffde8a99d5b72" + + "3350f0a112076614b12ef79c78991b119453445acf2416ab0046b540db14c9fc0f27b898" + + "9ad0f63aa4b8aefc91aa8a72160c36307c60fec78a93d3fddf4259902aa77e7332971c7d" + + "285b6a04f648993c6922a3e9da9adf5f81508c3228791843e5d49f24db2f1290bafd97e6" + + "55b1049a199f652cd603c4fafa330c390b0da78fbbc67e8fa021cbd74eb96222b12ace31" + + "a77dcf920334dc94581b0203010001a3353033300e0603551d0f0101ff04040302078030" + + "130603551d25040c300a06082b06010505070309300c0603551d130101ff04023000300d" + + "06092a864886f70d01010b05000382010100718012761b5063e18f0dc44644d8e6ab8612" + + "31c15fd5357805425d82aec1de85bf6d3e30fce205e3e3b8b795bbe52e40a439286d2288" + + "9064f4aeeb150359b9425f1da51b3a5c939018555d13ac42c565a0603786a919328f3267" + + "09dce52c22ad958ecb7873b9771d1148b1c4be2efe80ba868919fc9f68b6090c2f33c156" + + "d67156e42766a50b5d51e79637b7e58af74c2a951b1e642fa7741fec982cc937de37eff5" + + "9e2005d5939bfc031589ca143e6e8ab83f40ee08cc20a6b4a95a318352c28d18528dcaf9" + + "66705de17afa19d6e8ae91ddf33179d16ebb6ac2c69cae8373d408ebf8c55308be6c04d9" + + "3a25439a94299a65a709756c7a3e568be049d5c38839" + +const errorResponseHex = "30030a0101" diff --git a/vendor/golang.org/x/crypto/openpgp/armor/armor.go b/vendor/golang.org/x/crypto/openpgp/armor/armor.go new file mode 100644 index 00000000..592d1864 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/armor/armor.go @@ -0,0 +1,219 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is +// very similar to PEM except that it has an additional CRC checksum. +package armor // import "golang.org/x/crypto/openpgp/armor" + +import ( + "bufio" + "bytes" + "encoding/base64" + "golang.org/x/crypto/openpgp/errors" + "io" +) + +// A Block represents an OpenPGP armored structure. +// +// The encoded form is: +// -----BEGIN Type----- +// Headers +// +// base64-encoded Bytes +// '=' base64 encoded checksum +// -----END Type----- +// where Headers is a possibly empty sequence of Key: Value lines. +// +// Since the armored data can be very large, this package presents a streaming +// interface. +type Block struct { + Type string // The type, taken from the preamble (i.e. "PGP SIGNATURE"). + Header map[string]string // Optional headers. + Body io.Reader // A Reader from which the contents can be read + lReader lineReader + oReader openpgpReader +} + +var ArmorCorrupt error = errors.StructuralError("armor invalid") + +const crc24Init = 0xb704ce +const crc24Poly = 0x1864cfb +const crc24Mask = 0xffffff + +// crc24 calculates the OpenPGP checksum as specified in RFC 4880, section 6.1 +func crc24(crc uint32, d []byte) uint32 { + for _, b := range d { + crc ^= uint32(b) << 16 + for i := 0; i < 8; i++ { + crc <<= 1 + if crc&0x1000000 != 0 { + crc ^= crc24Poly + } + } + } + return crc +} + +var armorStart = []byte("-----BEGIN ") +var armorEnd = []byte("-----END ") +var armorEndOfLine = []byte("-----") + +// lineReader wraps a line based reader. It watches for the end of an armor +// block and records the expected CRC value. +type lineReader struct { + in *bufio.Reader + buf []byte + eof bool + crc uint32 +} + +func (l *lineReader) Read(p []byte) (n int, err error) { + if l.eof { + return 0, io.EOF + } + + if len(l.buf) > 0 { + n = copy(p, l.buf) + l.buf = l.buf[n:] + return + } + + line, isPrefix, err := l.in.ReadLine() + if err != nil { + return + } + if isPrefix { + return 0, ArmorCorrupt + } + + if len(line) == 5 && line[0] == '=' { + // This is the checksum line + var expectedBytes [3]byte + var m int + m, err = base64.StdEncoding.Decode(expectedBytes[0:], line[1:]) + if m != 3 || err != nil { + return + } + l.crc = uint32(expectedBytes[0])<<16 | + uint32(expectedBytes[1])<<8 | + uint32(expectedBytes[2]) + + line, _, err = l.in.ReadLine() + if err != nil && err != io.EOF { + return + } + if !bytes.HasPrefix(line, armorEnd) { + return 0, ArmorCorrupt + } + + l.eof = true + return 0, io.EOF + } + + if len(line) > 96 { + return 0, ArmorCorrupt + } + + n = copy(p, line) + bytesToSave := len(line) - n + if bytesToSave > 0 { + if cap(l.buf) < bytesToSave { + l.buf = make([]byte, 0, bytesToSave) + } + l.buf = l.buf[0:bytesToSave] + copy(l.buf, line[n:]) + } + + return +} + +// openpgpReader passes Read calls to the underlying base64 decoder, but keeps +// a running CRC of the resulting data and checks the CRC against the value +// found by the lineReader at EOF. +type openpgpReader struct { + lReader *lineReader + b64Reader io.Reader + currentCRC uint32 +} + +func (r *openpgpReader) Read(p []byte) (n int, err error) { + n, err = r.b64Reader.Read(p) + r.currentCRC = crc24(r.currentCRC, p[:n]) + + if err == io.EOF { + if r.lReader.crc != uint32(r.currentCRC&crc24Mask) { + return 0, ArmorCorrupt + } + } + + return +} + +// Decode reads a PGP armored block from the given Reader. It will ignore +// leading garbage. If it doesn't find a block, it will return nil, io.EOF. The +// given Reader is not usable after calling this function: an arbitrary amount +// of data may have been read past the end of the block. +func Decode(in io.Reader) (p *Block, err error) { + r := bufio.NewReaderSize(in, 100) + var line []byte + ignoreNext := false + +TryNextBlock: + p = nil + + // Skip leading garbage + for { + ignoreThis := ignoreNext + line, ignoreNext, err = r.ReadLine() + if err != nil { + return + } + if ignoreNext || ignoreThis { + continue + } + line = bytes.TrimSpace(line) + if len(line) > len(armorStart)+len(armorEndOfLine) && bytes.HasPrefix(line, armorStart) { + break + } + } + + p = new(Block) + p.Type = string(line[len(armorStart) : len(line)-len(armorEndOfLine)]) + p.Header = make(map[string]string) + nextIsContinuation := false + var lastKey string + + // Read headers + for { + isContinuation := nextIsContinuation + line, nextIsContinuation, err = r.ReadLine() + if err != nil { + p = nil + return + } + if isContinuation { + p.Header[lastKey] += string(line) + continue + } + line = bytes.TrimSpace(line) + if len(line) == 0 { + break + } + + i := bytes.Index(line, []byte(": ")) + if i == -1 { + goto TryNextBlock + } + lastKey = string(line[:i]) + p.Header[lastKey] = string(line[i+2:]) + } + + p.lReader.in = r + p.oReader.currentCRC = crc24Init + p.oReader.lReader = &p.lReader + p.oReader.b64Reader = base64.NewDecoder(base64.StdEncoding, &p.lReader) + p.Body = &p.oReader + + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/armor/armor_test.go b/vendor/golang.org/x/crypto/openpgp/armor/armor_test.go new file mode 100644 index 00000000..9334e94e --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/armor/armor_test.go @@ -0,0 +1,95 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package armor + +import ( + "bytes" + "hash/adler32" + "io/ioutil" + "testing" +) + +func TestDecodeEncode(t *testing.T) { + buf := bytes.NewBuffer([]byte(armorExample1)) + result, err := Decode(buf) + if err != nil { + t.Error(err) + } + expectedType := "PGP SIGNATURE" + if result.Type != expectedType { + t.Errorf("result.Type: got:%s want:%s", result.Type, expectedType) + } + if len(result.Header) != 1 { + t.Errorf("len(result.Header): got:%d want:1", len(result.Header)) + } + v, ok := result.Header["Version"] + if !ok || v != "GnuPG v1.4.10 (GNU/Linux)" { + t.Errorf("result.Header: got:%#v", result.Header) + } + + contents, err := ioutil.ReadAll(result.Body) + if err != nil { + t.Error(err) + } + + if adler32.Checksum(contents) != 0x27b144be { + t.Errorf("contents: got: %x", contents) + } + + buf = bytes.NewBuffer(nil) + w, err := Encode(buf, result.Type, result.Header) + if err != nil { + t.Error(err) + } + _, err = w.Write(contents) + if err != nil { + t.Error(err) + } + w.Close() + + if !bytes.Equal(buf.Bytes(), []byte(armorExample1)) { + t.Errorf("got: %s\nwant: %s", string(buf.Bytes()), armorExample1) + } +} + +func TestLongHeader(t *testing.T) { + buf := bytes.NewBuffer([]byte(armorLongLine)) + result, err := Decode(buf) + if err != nil { + t.Error(err) + return + } + value, ok := result.Header["Version"] + if !ok { + t.Errorf("missing Version header") + } + if value != longValueExpected { + t.Errorf("got: %s want: %s", value, longValueExpected) + } +} + +const armorExample1 = `-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.10 (GNU/Linux) + +iJwEAAECAAYFAk1Fv/0ACgkQo01+GMIMMbsYTwQAiAw+QAaNfY6WBdplZ/uMAccm +4g+81QPmTSGHnetSb6WBiY13kVzK4HQiZH8JSkmmroMLuGeJwsRTEL4wbjRyUKEt +p1xwUZDECs234F1xiG5enc5SGlRtP7foLBz9lOsjx+LEcA4sTl5/2eZR9zyFZqWW +TxRjs+fJCIFuo71xb1g= +=/teI +-----END PGP SIGNATURE-----` + +const armorLongLine = `-----BEGIN PGP SIGNATURE----- +Version: 0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz + +iQEcBAABAgAGBQJMtFESAAoJEKsQXJGvOPsVj40H/1WW6jaMXv4BW+1ueDSMDwM8 +kx1fLOXbVM5/Kn5LStZNt1jWWnpxdz7eq3uiqeCQjmqUoRde3YbB2EMnnwRbAhpp +cacnAvy9ZQ78OTxUdNW1mhX5bS6q1MTEJnl+DcyigD70HG/yNNQD7sOPMdYQw0TA +byQBwmLwmTsuZsrYqB68QyLHI+DUugn+kX6Hd2WDB62DKa2suoIUIHQQCd/ofwB3 +WfCYInXQKKOSxu2YOg2Eb4kLNhSMc1i9uKUWAH+sdgJh7NBgdoE4MaNtBFkHXRvv +okWuf3+xA9ksp1npSY/mDvgHijmjvtpRDe6iUeqfCn8N9u9CBg8geANgaG8+QA4= +=wfQG +-----END PGP SIGNATURE-----` + +const longValueExpected = "0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz" diff --git a/vendor/golang.org/x/crypto/openpgp/armor/encode.go b/vendor/golang.org/x/crypto/openpgp/armor/encode.go new file mode 100644 index 00000000..6f07582c --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/armor/encode.go @@ -0,0 +1,160 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package armor + +import ( + "encoding/base64" + "io" +) + +var armorHeaderSep = []byte(": ") +var blockEnd = []byte("\n=") +var newline = []byte("\n") +var armorEndOfLineOut = []byte("-----\n") + +// writeSlices writes its arguments to the given Writer. +func writeSlices(out io.Writer, slices ...[]byte) (err error) { + for _, s := range slices { + _, err = out.Write(s) + if err != nil { + return err + } + } + return +} + +// lineBreaker breaks data across several lines, all of the same byte length +// (except possibly the last). Lines are broken with a single '\n'. +type lineBreaker struct { + lineLength int + line []byte + used int + out io.Writer + haveWritten bool +} + +func newLineBreaker(out io.Writer, lineLength int) *lineBreaker { + return &lineBreaker{ + lineLength: lineLength, + line: make([]byte, lineLength), + used: 0, + out: out, + } +} + +func (l *lineBreaker) Write(b []byte) (n int, err error) { + n = len(b) + + if n == 0 { + return + } + + if l.used == 0 && l.haveWritten { + _, err = l.out.Write([]byte{'\n'}) + if err != nil { + return + } + } + + if l.used+len(b) < l.lineLength { + l.used += copy(l.line[l.used:], b) + return + } + + l.haveWritten = true + _, err = l.out.Write(l.line[0:l.used]) + if err != nil { + return + } + excess := l.lineLength - l.used + l.used = 0 + + _, err = l.out.Write(b[0:excess]) + if err != nil { + return + } + + _, err = l.Write(b[excess:]) + return +} + +func (l *lineBreaker) Close() (err error) { + if l.used > 0 { + _, err = l.out.Write(l.line[0:l.used]) + if err != nil { + return + } + } + + return +} + +// encoding keeps track of a running CRC24 over the data which has been written +// to it and outputs a OpenPGP checksum when closed, followed by an armor +// trailer. +// +// It's built into a stack of io.Writers: +// encoding -> base64 encoder -> lineBreaker -> out +type encoding struct { + out io.Writer + breaker *lineBreaker + b64 io.WriteCloser + crc uint32 + blockType []byte +} + +func (e *encoding) Write(data []byte) (n int, err error) { + e.crc = crc24(e.crc, data) + return e.b64.Write(data) +} + +func (e *encoding) Close() (err error) { + err = e.b64.Close() + if err != nil { + return + } + e.breaker.Close() + + var checksumBytes [3]byte + checksumBytes[0] = byte(e.crc >> 16) + checksumBytes[1] = byte(e.crc >> 8) + checksumBytes[2] = byte(e.crc) + + var b64ChecksumBytes [4]byte + base64.StdEncoding.Encode(b64ChecksumBytes[:], checksumBytes[:]) + + return writeSlices(e.out, blockEnd, b64ChecksumBytes[:], newline, armorEnd, e.blockType, armorEndOfLine) +} + +// Encode returns a WriteCloser which will encode the data written to it in +// OpenPGP armor. +func Encode(out io.Writer, blockType string, headers map[string]string) (w io.WriteCloser, err error) { + bType := []byte(blockType) + err = writeSlices(out, armorStart, bType, armorEndOfLineOut) + if err != nil { + return + } + + for k, v := range headers { + err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline) + if err != nil { + return + } + } + + _, err = out.Write(newline) + if err != nil { + return + } + + e := &encoding{ + out: out, + breaker: newLineBreaker(out, 64), + crc: crc24Init, + blockType: bType, + } + e.b64 = base64.NewEncoder(base64.StdEncoding, e.breaker) + return e, nil +} diff --git a/vendor/golang.org/x/crypto/openpgp/canonical_text.go b/vendor/golang.org/x/crypto/openpgp/canonical_text.go new file mode 100644 index 00000000..e601e389 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/canonical_text.go @@ -0,0 +1,59 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import "hash" + +// NewCanonicalTextHash reformats text written to it into the canonical +// form and then applies the hash h. See RFC 4880, section 5.2.1. +func NewCanonicalTextHash(h hash.Hash) hash.Hash { + return &canonicalTextHash{h, 0} +} + +type canonicalTextHash struct { + h hash.Hash + s int +} + +var newline = []byte{'\r', '\n'} + +func (cth *canonicalTextHash) Write(buf []byte) (int, error) { + start := 0 + + for i, c := range buf { + switch cth.s { + case 0: + if c == '\r' { + cth.s = 1 + } else if c == '\n' { + cth.h.Write(buf[start:i]) + cth.h.Write(newline) + start = i + 1 + } + case 1: + cth.s = 0 + } + } + + cth.h.Write(buf[start:]) + return len(buf), nil +} + +func (cth *canonicalTextHash) Sum(in []byte) []byte { + return cth.h.Sum(in) +} + +func (cth *canonicalTextHash) Reset() { + cth.h.Reset() + cth.s = 0 +} + +func (cth *canonicalTextHash) Size() int { + return cth.h.Size() +} + +func (cth *canonicalTextHash) BlockSize() int { + return cth.h.BlockSize() +} diff --git a/vendor/golang.org/x/crypto/openpgp/canonical_text_test.go b/vendor/golang.org/x/crypto/openpgp/canonical_text_test.go new file mode 100644 index 00000000..8f3ba2a8 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/canonical_text_test.go @@ -0,0 +1,52 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "bytes" + "testing" +) + +type recordingHash struct { + buf *bytes.Buffer +} + +func (r recordingHash) Write(b []byte) (n int, err error) { + return r.buf.Write(b) +} + +func (r recordingHash) Sum(in []byte) []byte { + return append(in, r.buf.Bytes()...) +} + +func (r recordingHash) Reset() { + panic("shouldn't be called") +} + +func (r recordingHash) Size() int { + panic("shouldn't be called") +} + +func (r recordingHash) BlockSize() int { + panic("shouldn't be called") +} + +func testCanonicalText(t *testing.T, input, expected string) { + r := recordingHash{bytes.NewBuffer(nil)} + c := NewCanonicalTextHash(r) + c.Write([]byte(input)) + result := c.Sum(nil) + if expected != string(result) { + t.Errorf("input: %x got: %x want: %x", input, result, expected) + } +} + +func TestCanonicalText(t *testing.T) { + testCanonicalText(t, "foo\n", "foo\r\n") + testCanonicalText(t, "foo", "foo") + testCanonicalText(t, "foo\r\n", "foo\r\n") + testCanonicalText(t, "foo\r\nbar", "foo\r\nbar") + testCanonicalText(t, "foo\r\nbar\n\n", "foo\r\nbar\r\n\r\n") +} diff --git a/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign.go b/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign.go new file mode 100644 index 00000000..def4caba --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign.go @@ -0,0 +1,376 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package clearsign generates and processes OpenPGP, clear-signed data. See +// RFC 4880, section 7. +// +// Clearsigned messages are cryptographically signed, but the contents of the +// message are kept in plaintext so that it can be read without special tools. +package clearsign // import "golang.org/x/crypto/openpgp/clearsign" + +import ( + "bufio" + "bytes" + "crypto" + "hash" + "io" + "net/textproto" + "strconv" + + "golang.org/x/crypto/openpgp/armor" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/packet" +) + +// A Block represents a clearsigned message. A signature on a Block can +// be checked by passing Bytes into openpgp.CheckDetachedSignature. +type Block struct { + Headers textproto.MIMEHeader // Optional message headers + Plaintext []byte // The original message text + Bytes []byte // The signed message + ArmoredSignature *armor.Block // The signature block +} + +// start is the marker which denotes the beginning of a clearsigned message. +var start = []byte("\n-----BEGIN PGP SIGNED MESSAGE-----") + +// dashEscape is prefixed to any lines that begin with a hyphen so that they +// can't be confused with endText. +var dashEscape = []byte("- ") + +// endText is a marker which denotes the end of the message and the start of +// an armored signature. +var endText = []byte("-----BEGIN PGP SIGNATURE-----") + +// end is a marker which denotes the end of the armored signature. +var end = []byte("\n-----END PGP SIGNATURE-----") + +var crlf = []byte("\r\n") +var lf = byte('\n') + +// getLine returns the first \r\n or \n delineated line from the given byte +// array. The line does not include the \r\n or \n. The remainder of the byte +// array (also not including the new line bytes) is also returned and this will +// always be smaller than the original argument. +func getLine(data []byte) (line, rest []byte) { + i := bytes.Index(data, []byte{'\n'}) + var j int + if i < 0 { + i = len(data) + j = i + } else { + j = i + 1 + if i > 0 && data[i-1] == '\r' { + i-- + } + } + return data[0:i], data[j:] +} + +// Decode finds the first clearsigned message in data and returns it, as well +// as the suffix of data which remains after the message. +func Decode(data []byte) (b *Block, rest []byte) { + // start begins with a newline. However, at the very beginning of + // the byte array, we'll accept the start string without it. + rest = data + if bytes.HasPrefix(data, start[1:]) { + rest = rest[len(start)-1:] + } else if i := bytes.Index(data, start); i >= 0 { + rest = rest[i+len(start):] + } else { + return nil, data + } + + // Consume the start line. + _, rest = getLine(rest) + + var line []byte + b = &Block{ + Headers: make(textproto.MIMEHeader), + } + + // Next come a series of header lines. + for { + // This loop terminates because getLine's second result is + // always smaller than its argument. + if len(rest) == 0 { + return nil, data + } + // An empty line marks the end of the headers. + if line, rest = getLine(rest); len(line) == 0 { + break + } + + i := bytes.Index(line, []byte{':'}) + if i == -1 { + return nil, data + } + + key, val := line[0:i], line[i+1:] + key = bytes.TrimSpace(key) + val = bytes.TrimSpace(val) + b.Headers.Add(string(key), string(val)) + } + + firstLine := true + for { + start := rest + + line, rest = getLine(rest) + if len(line) == 0 && len(rest) == 0 { + // No armored data was found, so this isn't a complete message. + return nil, data + } + if bytes.Equal(line, endText) { + // Back up to the start of the line because armor expects to see the + // header line. + rest = start + break + } + + // The final CRLF isn't included in the hash so we don't write it until + // we've seen the next line. + if firstLine { + firstLine = false + } else { + b.Bytes = append(b.Bytes, crlf...) + } + + if bytes.HasPrefix(line, dashEscape) { + line = line[2:] + } + line = bytes.TrimRight(line, " \t") + b.Bytes = append(b.Bytes, line...) + + b.Plaintext = append(b.Plaintext, line...) + b.Plaintext = append(b.Plaintext, lf) + } + + // We want to find the extent of the armored data (including any newlines at + // the end). + i := bytes.Index(rest, end) + if i == -1 { + return nil, data + } + i += len(end) + for i < len(rest) && (rest[i] == '\r' || rest[i] == '\n') { + i++ + } + armored := rest[:i] + rest = rest[i:] + + var err error + b.ArmoredSignature, err = armor.Decode(bytes.NewBuffer(armored)) + if err != nil { + return nil, data + } + + return b, rest +} + +// A dashEscaper is an io.WriteCloser which processes the body of a clear-signed +// message. The clear-signed message is written to buffered and a hash, suitable +// for signing, is maintained in h. +// +// When closed, an armored signature is created and written to complete the +// message. +type dashEscaper struct { + buffered *bufio.Writer + h hash.Hash + hashType crypto.Hash + + atBeginningOfLine bool + isFirstLine bool + + whitespace []byte + byteBuf []byte // a one byte buffer to save allocations + + privateKey *packet.PrivateKey + config *packet.Config +} + +func (d *dashEscaper) Write(data []byte) (n int, err error) { + for _, b := range data { + d.byteBuf[0] = b + + if d.atBeginningOfLine { + // The final CRLF isn't included in the hash so we have to wait + // until this point (the start of the next line) before writing it. + if !d.isFirstLine { + d.h.Write(crlf) + } + d.isFirstLine = false + } + + // Any whitespace at the end of the line has to be removed so we + // buffer it until we find out whether there's more on this line. + if b == ' ' || b == '\t' || b == '\r' { + d.whitespace = append(d.whitespace, b) + d.atBeginningOfLine = false + continue + } + + if d.atBeginningOfLine { + // At the beginning of a line, hyphens have to be escaped. + if b == '-' { + // The signature isn't calculated over the dash-escaped text so + // the escape is only written to buffered. + if _, err = d.buffered.Write(dashEscape); err != nil { + return + } + d.h.Write(d.byteBuf) + d.atBeginningOfLine = false + } else if b == '\n' { + // Nothing to do because we delay writing CRLF to the hash. + } else { + d.h.Write(d.byteBuf) + d.atBeginningOfLine = false + } + if err = d.buffered.WriteByte(b); err != nil { + return + } + } else { + if b == '\n' { + // We got a raw \n. Drop any trailing whitespace and write a + // CRLF. + d.whitespace = d.whitespace[:0] + // We delay writing CRLF to the hash until the start of the + // next line. + if err = d.buffered.WriteByte(b); err != nil { + return + } + d.atBeginningOfLine = true + } else { + // Any buffered whitespace wasn't at the end of the line so + // we need to write it out. + if len(d.whitespace) > 0 { + d.h.Write(d.whitespace) + if _, err = d.buffered.Write(d.whitespace); err != nil { + return + } + d.whitespace = d.whitespace[:0] + } + d.h.Write(d.byteBuf) + if err = d.buffered.WriteByte(b); err != nil { + return + } + } + } + } + + n = len(data) + return +} + +func (d *dashEscaper) Close() (err error) { + if !d.atBeginningOfLine { + if err = d.buffered.WriteByte(lf); err != nil { + return + } + } + sig := new(packet.Signature) + sig.SigType = packet.SigTypeText + sig.PubKeyAlgo = d.privateKey.PubKeyAlgo + sig.Hash = d.hashType + sig.CreationTime = d.config.Now() + sig.IssuerKeyId = &d.privateKey.KeyId + + if err = sig.Sign(d.h, d.privateKey, d.config); err != nil { + return + } + + out, err := armor.Encode(d.buffered, "PGP SIGNATURE", nil) + if err != nil { + return + } + + if err = sig.Serialize(out); err != nil { + return + } + if err = out.Close(); err != nil { + return + } + if err = d.buffered.Flush(); err != nil { + return + } + return +} + +// Encode returns a WriteCloser which will clear-sign a message with privateKey +// and write it to w. If config is nil, sensible defaults are used. +func Encode(w io.Writer, privateKey *packet.PrivateKey, config *packet.Config) (plaintext io.WriteCloser, err error) { + if privateKey.Encrypted { + return nil, errors.InvalidArgumentError("signing key is encrypted") + } + + hashType := config.Hash() + name := nameOfHash(hashType) + if len(name) == 0 { + return nil, errors.UnsupportedError("unknown hash type: " + strconv.Itoa(int(hashType))) + } + + if !hashType.Available() { + return nil, errors.UnsupportedError("unsupported hash type: " + strconv.Itoa(int(hashType))) + } + h := hashType.New() + + buffered := bufio.NewWriter(w) + // start has a \n at the beginning that we don't want here. + if _, err = buffered.Write(start[1:]); err != nil { + return + } + if err = buffered.WriteByte(lf); err != nil { + return + } + if _, err = buffered.WriteString("Hash: "); err != nil { + return + } + if _, err = buffered.WriteString(name); err != nil { + return + } + if err = buffered.WriteByte(lf); err != nil { + return + } + if err = buffered.WriteByte(lf); err != nil { + return + } + + plaintext = &dashEscaper{ + buffered: buffered, + h: h, + hashType: hashType, + + atBeginningOfLine: true, + isFirstLine: true, + + byteBuf: make([]byte, 1), + + privateKey: privateKey, + config: config, + } + + return +} + +// nameOfHash returns the OpenPGP name for the given hash, or the empty string +// if the name isn't known. See RFC 4880, section 9.4. +func nameOfHash(h crypto.Hash) string { + switch h { + case crypto.MD5: + return "MD5" + case crypto.SHA1: + return "SHA1" + case crypto.RIPEMD160: + return "RIPEMD160" + case crypto.SHA224: + return "SHA224" + case crypto.SHA256: + return "SHA256" + case crypto.SHA384: + return "SHA384" + case crypto.SHA512: + return "SHA512" + } + return "" +} diff --git a/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign_test.go b/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign_test.go new file mode 100644 index 00000000..2c094807 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/clearsign/clearsign_test.go @@ -0,0 +1,210 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package clearsign + +import ( + "bytes" + "golang.org/x/crypto/openpgp" + "testing" +) + +func testParse(t *testing.T, input []byte, expected, expectedPlaintext string) { + b, rest := Decode(input) + if b == nil { + t.Fatal("failed to decode clearsign message") + } + if !bytes.Equal(rest, []byte("trailing")) { + t.Errorf("unexpected remaining bytes returned: %s", string(rest)) + } + if b.ArmoredSignature.Type != "PGP SIGNATURE" { + t.Errorf("bad armor type, got:%s, want:PGP SIGNATURE", b.ArmoredSignature.Type) + } + if !bytes.Equal(b.Bytes, []byte(expected)) { + t.Errorf("bad body, got:%x want:%x", b.Bytes, expected) + } + + if !bytes.Equal(b.Plaintext, []byte(expectedPlaintext)) { + t.Errorf("bad plaintext, got:%x want:%x", b.Plaintext, expectedPlaintext) + } + + keyring, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(signingKey)) + if err != nil { + t.Errorf("failed to parse public key: %s", err) + } + + if _, err := openpgp.CheckDetachedSignature(keyring, bytes.NewBuffer(b.Bytes), b.ArmoredSignature.Body); err != nil { + t.Errorf("failed to check signature: %s", err) + } +} + +func TestParse(t *testing.T) { + testParse(t, clearsignInput, "Hello world\r\nline 2", "Hello world\nline 2\n") + testParse(t, clearsignInput2, "\r\n\r\n(This message has a couple of blank lines at the start and end.)\r\n\r\n", "\n\n(This message has a couple of blank lines at the start and end.)\n\n\n") +} + +func TestParseInvalid(t *testing.T) { + if b, _ := Decode(clearsignInput3); b != nil { + t.Fatal("decoded a bad clearsigned message without any error") + } +} + +func TestParseWithNoNewlineAtEnd(t *testing.T) { + input := clearsignInput + input = input[:len(input)-len("trailing")-1] + b, rest := Decode(input) + if b == nil { + t.Fatal("failed to decode clearsign message") + } + if len(rest) > 0 { + t.Errorf("unexpected remaining bytes returned: %s", string(rest)) + } +} + +var signingTests = []struct { + in, signed, plaintext string +}{ + {"", "", ""}, + {"a", "a", "a\n"}, + {"a\n", "a", "a\n"}, + {"-a\n", "-a", "-a\n"}, + {"--a\nb", "--a\r\nb", "--a\nb\n"}, + // leading whitespace + {" a\n", " a", " a\n"}, + {" a\n", " a", " a\n"}, + // trailing whitespace (should be stripped) + {"a \n", "a", "a\n"}, + {"a ", "a", "a\n"}, + // whitespace-only lines (should be stripped) + {" \n", "", "\n"}, + {" ", "", "\n"}, + {"a\n \n \nb\n", "a\r\n\r\n\r\nb", "a\n\n\nb\n"}, +} + +func TestSigning(t *testing.T) { + keyring, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(signingKey)) + if err != nil { + t.Errorf("failed to parse public key: %s", err) + } + + for i, test := range signingTests { + var buf bytes.Buffer + + plaintext, err := Encode(&buf, keyring[0].PrivateKey, nil) + if err != nil { + t.Errorf("#%d: error from Encode: %s", i, err) + continue + } + if _, err := plaintext.Write([]byte(test.in)); err != nil { + t.Errorf("#%d: error from Write: %s", i, err) + continue + } + if err := plaintext.Close(); err != nil { + t.Fatalf("#%d: error from Close: %s", i, err) + continue + } + + b, _ := Decode(buf.Bytes()) + if b == nil { + t.Errorf("#%d: failed to decode clearsign message", i) + continue + } + if !bytes.Equal(b.Bytes, []byte(test.signed)) { + t.Errorf("#%d: bad result, got:%x, want:%x", i, b.Bytes, test.signed) + continue + } + if !bytes.Equal(b.Plaintext, []byte(test.plaintext)) { + t.Errorf("#%d: bad result, got:%x, want:%x", i, b.Plaintext, test.plaintext) + continue + } + + if _, err := openpgp.CheckDetachedSignature(keyring, bytes.NewBuffer(b.Bytes), b.ArmoredSignature.Body); err != nil { + t.Errorf("#%d: failed to check signature: %s", i, err) + } + } +} + +var clearsignInput = []byte(` +;lasjlkfdsa + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Hello world +line 2 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.10 (GNU/Linux) + +iJwEAQECAAYFAk8kMuEACgkQO9o98PRieSpMsAQAhmY/vwmNpflrPgmfWsYhk5O8 +pjnBUzZwqTDoDeINjZEoPDSpQAHGhjFjgaDx/Gj4fAl0dM4D0wuUEBb6QOrwflog +2A2k9kfSOMOtk0IH/H5VuFN1Mie9L/erYXjTQIptv9t9J7NoRBMU0QOOaFU0JaO9 +MyTpno24AjIAGb+mH1U= +=hIJ6 +-----END PGP SIGNATURE----- +trailing`) + +var clearsignInput2 = []byte(` +asdlfkjasdlkfjsadf + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + + + +(This message has a couple of blank lines at the start and end.) + + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iJwEAQEIAAYFAlPpSREACgkQO9o98PRieSpZTAP+M8QUoCt/7Rf3YbXPcdzIL32v +pt1I+cMNeopzfLy0u4ioEFi8s5VkwpL1AFmirvgViCwlf82inoRxzZRiW05JQ5LI +ESEzeCoy2LIdRCQ2hcrG8pIUPzUO4TqO5D/dMbdHwNH4h5nNmGJUAEG6FpURlPm+ +qZg6BaTvOxepqOxnhVU= +=e+C6 +-----END PGP SIGNATURE----- + +trailing`) + +var clearsignInput3 = []byte(` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +(This message was truncated.) +`) + +var signingKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.10 (GNU/Linux) + +lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp +idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn +vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB +AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X +0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL +IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk +VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn +gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 +TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx +q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz +dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA +CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 +ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ +eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid +AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV +bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK +/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA +A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX +TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc +lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 +rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN +oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 +QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU +nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC +AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp +BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad +AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL +VrM0m72/jnpKo04= +=zNCn +-----END PGP PRIVATE KEY BLOCK----- +` diff --git a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go new file mode 100644 index 00000000..73f4fe37 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go @@ -0,0 +1,122 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package elgamal implements ElGamal encryption, suitable for OpenPGP, +// as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on +// Discrete Logarithms," IEEE Transactions on Information Theory, v. IT-31, +// n. 4, 1985, pp. 469-472. +// +// This form of ElGamal embeds PKCS#1 v1.5 padding, which may make it +// unsuitable for other protocols. RSA should be used in preference in any +// case. +package elgamal // import "golang.org/x/crypto/openpgp/elgamal" + +import ( + "crypto/rand" + "crypto/subtle" + "errors" + "io" + "math/big" +) + +// PublicKey represents an ElGamal public key. +type PublicKey struct { + G, P, Y *big.Int +} + +// PrivateKey represents an ElGamal private key. +type PrivateKey struct { + PublicKey + X *big.Int +} + +// Encrypt encrypts the given message to the given public key. The result is a +// pair of integers. Errors can result from reading random, or because msg is +// too large to be encrypted to the public key. +func Encrypt(random io.Reader, pub *PublicKey, msg []byte) (c1, c2 *big.Int, err error) { + pLen := (pub.P.BitLen() + 7) / 8 + if len(msg) > pLen-11 { + err = errors.New("elgamal: message too long") + return + } + + // EM = 0x02 || PS || 0x00 || M + em := make([]byte, pLen-1) + em[0] = 2 + ps, mm := em[1:len(em)-len(msg)-1], em[len(em)-len(msg):] + err = nonZeroRandomBytes(ps, random) + if err != nil { + return + } + em[len(em)-len(msg)-1] = 0 + copy(mm, msg) + + m := new(big.Int).SetBytes(em) + + k, err := rand.Int(random, pub.P) + if err != nil { + return + } + + c1 = new(big.Int).Exp(pub.G, k, pub.P) + s := new(big.Int).Exp(pub.Y, k, pub.P) + c2 = s.Mul(s, m) + c2.Mod(c2, pub.P) + + return +} + +// Decrypt takes two integers, resulting from an ElGamal encryption, and +// returns the plaintext of the message. An error can result only if the +// ciphertext is invalid. Users should keep in mind that this is a padding +// oracle and thus, if exposed to an adaptive chosen ciphertext attack, can +// be used to break the cryptosystem. See ``Chosen Ciphertext Attacks +// Against Protocols Based on the RSA Encryption Standard PKCS #1'', Daniel +// Bleichenbacher, Advances in Cryptology (Crypto '98), +func Decrypt(priv *PrivateKey, c1, c2 *big.Int) (msg []byte, err error) { + s := new(big.Int).Exp(c1, priv.X, priv.P) + s.ModInverse(s, priv.P) + s.Mul(s, c2) + s.Mod(s, priv.P) + em := s.Bytes() + + firstByteIsTwo := subtle.ConstantTimeByteEq(em[0], 2) + + // The remainder of the plaintext must be a string of non-zero random + // octets, followed by a 0, followed by the message. + // lookingForIndex: 1 iff we are still looking for the zero. + // index: the offset of the first zero byte. + var lookingForIndex, index int + lookingForIndex = 1 + + for i := 1; i < len(em); i++ { + equals0 := subtle.ConstantTimeByteEq(em[i], 0) + index = subtle.ConstantTimeSelect(lookingForIndex&equals0, i, index) + lookingForIndex = subtle.ConstantTimeSelect(equals0, 0, lookingForIndex) + } + + if firstByteIsTwo != 1 || lookingForIndex != 0 || index < 9 { + return nil, errors.New("elgamal: decryption error") + } + return em[index+1:], nil +} + +// nonZeroRandomBytes fills the given slice with non-zero random octets. +func nonZeroRandomBytes(s []byte, rand io.Reader) (err error) { + _, err = io.ReadFull(rand, s) + if err != nil { + return + } + + for i := 0; i < len(s); i++ { + for s[i] == 0 { + _, err = io.ReadFull(rand, s[i:i+1]) + if err != nil { + return + } + } + } + + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal_test.go b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal_test.go new file mode 100644 index 00000000..c4f99f5c --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal_test.go @@ -0,0 +1,49 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package elgamal + +import ( + "bytes" + "crypto/rand" + "math/big" + "testing" +) + +// This is the 1024-bit MODP group from RFC 5114, section 2.1: +const primeHex = "B10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C69A6A9DCA52D23B616073E28675A23D189838EF1E2EE652C013ECB4AEA906112324975C3CD49B83BFACCBDD7D90C4BD7098488E9C219A73724EFFD6FAE5644738FAA31A4FF55BCCC0A151AF5F0DC8B4BD45BF37DF365C1A65E68CFDA76D4DA708DF1FB2BC2E4A4371" + +const generatorHex = "A4D1CBD5C3FD34126765A442EFB99905F8104DD258AC507FD6406CFF14266D31266FEA1E5C41564B777E690F5504F213160217B4B01B886A5E91547F9E2749F4D7FBD7D3B9A92EE1909D0D2263F80A76A6A24C087A091F531DBF0A0169B6A28AD662A4D18E73AFA32D779D5918D08BC8858F4DCEF97C2A24855E6EEB22B3B2E5" + +func fromHex(hex string) *big.Int { + n, ok := new(big.Int).SetString(hex, 16) + if !ok { + panic("failed to parse hex number") + } + return n +} + +func TestEncryptDecrypt(t *testing.T) { + priv := &PrivateKey{ + PublicKey: PublicKey{ + G: fromHex(generatorHex), + P: fromHex(primeHex), + }, + X: fromHex("42"), + } + priv.Y = new(big.Int).Exp(priv.G, priv.X, priv.P) + + message := []byte("hello world") + c1, c2, err := Encrypt(rand.Reader, &priv.PublicKey, message) + if err != nil { + t.Errorf("error encrypting: %s", err) + } + message2, err := Decrypt(priv, c1, c2) + if err != nil { + t.Errorf("error decrypting: %s", err) + } + if !bytes.Equal(message2, message) { + t.Errorf("decryption failed, got: %x, want: %x", message2, message) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/errors/errors.go b/vendor/golang.org/x/crypto/openpgp/errors/errors.go new file mode 100644 index 00000000..eb0550b2 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/errors/errors.go @@ -0,0 +1,72 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package errors contains common error types for the OpenPGP packages. +package errors // import "golang.org/x/crypto/openpgp/errors" + +import ( + "strconv" +) + +// A StructuralError is returned when OpenPGP data is found to be syntactically +// invalid. +type StructuralError string + +func (s StructuralError) Error() string { + return "openpgp: invalid data: " + string(s) +} + +// UnsupportedError indicates that, although the OpenPGP data is valid, it +// makes use of currently unimplemented features. +type UnsupportedError string + +func (s UnsupportedError) Error() string { + return "openpgp: unsupported feature: " + string(s) +} + +// InvalidArgumentError indicates that the caller is in error and passed an +// incorrect value. +type InvalidArgumentError string + +func (i InvalidArgumentError) Error() string { + return "openpgp: invalid argument: " + string(i) +} + +// SignatureError indicates that a syntactically valid signature failed to +// validate. +type SignatureError string + +func (b SignatureError) Error() string { + return "openpgp: invalid signature: " + string(b) +} + +type keyIncorrectError int + +func (ki keyIncorrectError) Error() string { + return "openpgp: incorrect key" +} + +var ErrKeyIncorrect error = keyIncorrectError(0) + +type unknownIssuerError int + +func (unknownIssuerError) Error() string { + return "openpgp: signature made by unknown entity" +} + +var ErrUnknownIssuer error = unknownIssuerError(0) + +type keyRevokedError int + +func (keyRevokedError) Error() string { + return "openpgp: signature made by revoked key" +} + +var ErrKeyRevoked error = keyRevokedError(0) + +type UnknownPacketTypeError uint8 + +func (upte UnknownPacketTypeError) Error() string { + return "openpgp: unknown packet type: " + strconv.Itoa(int(upte)) +} diff --git a/vendor/golang.org/x/crypto/openpgp/keys.go b/vendor/golang.org/x/crypto/openpgp/keys.go new file mode 100644 index 00000000..fd9bbd29 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/keys.go @@ -0,0 +1,639 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "crypto/rsa" + "io" + "time" + + "golang.org/x/crypto/openpgp/armor" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/packet" +) + +// PublicKeyType is the armor type for a PGP public key. +var PublicKeyType = "PGP PUBLIC KEY BLOCK" + +// PrivateKeyType is the armor type for a PGP private key. +var PrivateKeyType = "PGP PRIVATE KEY BLOCK" + +// An Entity represents the components of an OpenPGP key: a primary public key +// (which must be a signing key), one or more identities claimed by that key, +// and zero or more subkeys, which may be encryption keys. +type Entity struct { + PrimaryKey *packet.PublicKey + PrivateKey *packet.PrivateKey + Identities map[string]*Identity // indexed by Identity.Name + Revocations []*packet.Signature + Subkeys []Subkey +} + +// An Identity represents an identity claimed by an Entity and zero or more +// assertions by other entities about that claim. +type Identity struct { + Name string // by convention, has the form "Full Name (comment) " + UserId *packet.UserId + SelfSignature *packet.Signature + Signatures []*packet.Signature +} + +// A Subkey is an additional public key in an Entity. Subkeys can be used for +// encryption. +type Subkey struct { + PublicKey *packet.PublicKey + PrivateKey *packet.PrivateKey + Sig *packet.Signature +} + +// A Key identifies a specific public key in an Entity. This is either the +// Entity's primary key or a subkey. +type Key struct { + Entity *Entity + PublicKey *packet.PublicKey + PrivateKey *packet.PrivateKey + SelfSignature *packet.Signature +} + +// A KeyRing provides access to public and private keys. +type KeyRing interface { + // KeysById returns the set of keys that have the given key id. + KeysById(id uint64) []Key + // KeysByIdAndUsage returns the set of keys with the given id + // that also meet the key usage given by requiredUsage. + // The requiredUsage is expressed as the bitwise-OR of + // packet.KeyFlag* values. + KeysByIdUsage(id uint64, requiredUsage byte) []Key + // DecryptionKeys returns all private keys that are valid for + // decryption. + DecryptionKeys() []Key +} + +// primaryIdentity returns the Identity marked as primary or the first identity +// if none are so marked. +func (e *Entity) primaryIdentity() *Identity { + var firstIdentity *Identity + for _, ident := range e.Identities { + if firstIdentity == nil { + firstIdentity = ident + } + if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { + return ident + } + } + return firstIdentity +} + +// encryptionKey returns the best candidate Key for encrypting a message to the +// given Entity. +func (e *Entity) encryptionKey(now time.Time) (Key, bool) { + candidateSubkey := -1 + + // Iterate the keys to find the newest key + var maxTime time.Time + for i, subkey := range e.Subkeys { + if subkey.Sig.FlagsValid && + subkey.Sig.FlagEncryptCommunications && + subkey.PublicKey.PubKeyAlgo.CanEncrypt() && + !subkey.Sig.KeyExpired(now) && + (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { + candidateSubkey = i + maxTime = subkey.Sig.CreationTime + } + } + + if candidateSubkey != -1 { + subkey := e.Subkeys[candidateSubkey] + return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true + } + + // If we don't have any candidate subkeys for encryption and + // the primary key doesn't have any usage metadata then we + // assume that the primary key is ok. Or, if the primary key is + // marked as ok to encrypt to, then we can obviously use it. + i := e.primaryIdentity() + if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagEncryptCommunications && + e.PrimaryKey.PubKeyAlgo.CanEncrypt() && + !i.SelfSignature.KeyExpired(now) { + return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true + } + + // This Entity appears to be signing only. + return Key{}, false +} + +// signingKey return the best candidate Key for signing a message with this +// Entity. +func (e *Entity) signingKey(now time.Time) (Key, bool) { + candidateSubkey := -1 + + for i, subkey := range e.Subkeys { + if subkey.Sig.FlagsValid && + subkey.Sig.FlagSign && + subkey.PublicKey.PubKeyAlgo.CanSign() && + !subkey.Sig.KeyExpired(now) { + candidateSubkey = i + break + } + } + + if candidateSubkey != -1 { + subkey := e.Subkeys[candidateSubkey] + return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true + } + + // If we have no candidate subkey then we assume that it's ok to sign + // with the primary key. + i := e.primaryIdentity() + if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagSign && + !i.SelfSignature.KeyExpired(now) { + return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true + } + + return Key{}, false +} + +// An EntityList contains one or more Entities. +type EntityList []*Entity + +// KeysById returns the set of keys that have the given key id. +func (el EntityList) KeysById(id uint64) (keys []Key) { + for _, e := range el { + if e.PrimaryKey.KeyId == id { + var selfSig *packet.Signature + for _, ident := range e.Identities { + if selfSig == nil { + selfSig = ident.SelfSignature + } else if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { + selfSig = ident.SelfSignature + break + } + } + keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig}) + } + + for _, subKey := range e.Subkeys { + if subKey.PublicKey.KeyId == id { + keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) + } + } + } + return +} + +// KeysByIdAndUsage returns the set of keys with the given id that also meet +// the key usage given by requiredUsage. The requiredUsage is expressed as +// the bitwise-OR of packet.KeyFlag* values. +func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { + for _, key := range el.KeysById(id) { + if len(key.Entity.Revocations) > 0 { + continue + } + + if key.SelfSignature.RevocationReason != nil { + continue + } + + if key.SelfSignature.FlagsValid && requiredUsage != 0 { + var usage byte + if key.SelfSignature.FlagCertify { + usage |= packet.KeyFlagCertify + } + if key.SelfSignature.FlagSign { + usage |= packet.KeyFlagSign + } + if key.SelfSignature.FlagEncryptCommunications { + usage |= packet.KeyFlagEncryptCommunications + } + if key.SelfSignature.FlagEncryptStorage { + usage |= packet.KeyFlagEncryptStorage + } + if usage&requiredUsage != requiredUsage { + continue + } + } + + keys = append(keys, key) + } + return +} + +// DecryptionKeys returns all private keys that are valid for decryption. +func (el EntityList) DecryptionKeys() (keys []Key) { + for _, e := range el { + for _, subKey := range e.Subkeys { + if subKey.PrivateKey != nil && (!subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { + keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) + } + } + } + return +} + +// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. +func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { + block, err := armor.Decode(r) + if err == io.EOF { + return nil, errors.InvalidArgumentError("no armored data found") + } + if err != nil { + return nil, err + } + if block.Type != PublicKeyType && block.Type != PrivateKeyType { + return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) + } + + return ReadKeyRing(block.Body) +} + +// ReadKeyRing reads one or more public/private keys. Unsupported keys are +// ignored as long as at least a single valid key is found. +func ReadKeyRing(r io.Reader) (el EntityList, err error) { + packets := packet.NewReader(r) + var lastUnsupportedError error + + for { + var e *Entity + e, err = ReadEntity(packets) + if err != nil { + // TODO: warn about skipped unsupported/unreadable keys + if _, ok := err.(errors.UnsupportedError); ok { + lastUnsupportedError = err + err = readToNextPublicKey(packets) + } else if _, ok := err.(errors.StructuralError); ok { + // Skip unreadable, badly-formatted keys + lastUnsupportedError = err + err = readToNextPublicKey(packets) + } + if err == io.EOF { + err = nil + break + } + if err != nil { + el = nil + break + } + } else { + el = append(el, e) + } + } + + if len(el) == 0 && err == nil { + err = lastUnsupportedError + } + return +} + +// readToNextPublicKey reads packets until the start of the entity and leaves +// the first packet of the new entity in the Reader. +func readToNextPublicKey(packets *packet.Reader) (err error) { + var p packet.Packet + for { + p, err = packets.Next() + if err == io.EOF { + return + } else if err != nil { + if _, ok := err.(errors.UnsupportedError); ok { + err = nil + continue + } + return + } + + if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { + packets.Unread(p) + return + } + } + + panic("unreachable") +} + +// ReadEntity reads an entity (public key, identities, subkeys etc) from the +// given Reader. +func ReadEntity(packets *packet.Reader) (*Entity, error) { + e := new(Entity) + e.Identities = make(map[string]*Identity) + + p, err := packets.Next() + if err != nil { + return nil, err + } + + var ok bool + if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { + if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { + packets.Unread(p) + return nil, errors.StructuralError("first packet was not a public/private key") + } else { + e.PrimaryKey = &e.PrivateKey.PublicKey + } + } + + if !e.PrimaryKey.PubKeyAlgo.CanSign() { + return nil, errors.StructuralError("primary key cannot be used for signatures") + } + + var current *Identity + var revocations []*packet.Signature +EachPacket: + for { + p, err := packets.Next() + if err == io.EOF { + break + } else if err != nil { + return nil, err + } + + switch pkt := p.(type) { + case *packet.UserId: + current = new(Identity) + current.Name = pkt.Id + current.UserId = pkt + e.Identities[pkt.Id] = current + + for { + p, err = packets.Next() + if err == io.EOF { + return nil, io.ErrUnexpectedEOF + } else if err != nil { + return nil, err + } + + sig, ok := p.(*packet.Signature) + if !ok { + return nil, errors.StructuralError("user ID packet not followed by self-signature") + } + + if (sig.SigType == packet.SigTypePositiveCert || sig.SigType == packet.SigTypeGenericCert) && sig.IssuerKeyId != nil && *sig.IssuerKeyId == e.PrimaryKey.KeyId { + if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { + return nil, errors.StructuralError("user ID self-signature invalid: " + err.Error()) + } + current.SelfSignature = sig + break + } + current.Signatures = append(current.Signatures, sig) + } + case *packet.Signature: + if pkt.SigType == packet.SigTypeKeyRevocation { + revocations = append(revocations, pkt) + } else if pkt.SigType == packet.SigTypeDirectSignature { + // TODO: RFC4880 5.2.1 permits signatures + // directly on keys (eg. to bind additional + // revocation keys). + } else if current == nil { + return nil, errors.StructuralError("signature packet found before user id packet") + } else { + current.Signatures = append(current.Signatures, pkt) + } + case *packet.PrivateKey: + if pkt.IsSubkey == false { + packets.Unread(p) + break EachPacket + } + err = addSubkey(e, packets, &pkt.PublicKey, pkt) + if err != nil { + return nil, err + } + case *packet.PublicKey: + if pkt.IsSubkey == false { + packets.Unread(p) + break EachPacket + } + err = addSubkey(e, packets, pkt, nil) + if err != nil { + return nil, err + } + default: + // we ignore unknown packets + } + } + + if len(e.Identities) == 0 { + return nil, errors.StructuralError("entity without any identities") + } + + for _, revocation := range revocations { + err = e.PrimaryKey.VerifyRevocationSignature(revocation) + if err == nil { + e.Revocations = append(e.Revocations, revocation) + } else { + // TODO: RFC 4880 5.2.3.15 defines revocation keys. + return nil, errors.StructuralError("revocation signature signed by alternate key") + } + } + + return e, nil +} + +func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { + var subKey Subkey + subKey.PublicKey = pub + subKey.PrivateKey = priv + p, err := packets.Next() + if err == io.EOF { + return io.ErrUnexpectedEOF + } + if err != nil { + return errors.StructuralError("subkey signature invalid: " + err.Error()) + } + var ok bool + subKey.Sig, ok = p.(*packet.Signature) + if !ok { + return errors.StructuralError("subkey packet not followed by signature") + } + if subKey.Sig.SigType != packet.SigTypeSubkeyBinding && subKey.Sig.SigType != packet.SigTypeSubkeyRevocation { + return errors.StructuralError("subkey signature with wrong type") + } + err = e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, subKey.Sig) + if err != nil { + return errors.StructuralError("subkey signature invalid: " + err.Error()) + } + e.Subkeys = append(e.Subkeys, subKey) + return nil +} + +const defaultRSAKeyBits = 2048 + +// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a +// single identity composed of the given full name, comment and email, any of +// which may be empty but must not contain any of "()<>\x00". +// If config is nil, sensible defaults will be used. +func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { + currentTime := config.Now() + + bits := defaultRSAKeyBits + if config != nil && config.RSABits != 0 { + bits = config.RSABits + } + + uid := packet.NewUserId(name, comment, email) + if uid == nil { + return nil, errors.InvalidArgumentError("user id field contained invalid characters") + } + signingPriv, err := rsa.GenerateKey(config.Random(), bits) + if err != nil { + return nil, err + } + encryptingPriv, err := rsa.GenerateKey(config.Random(), bits) + if err != nil { + return nil, err + } + + e := &Entity{ + PrimaryKey: packet.NewRSAPublicKey(currentTime, &signingPriv.PublicKey), + PrivateKey: packet.NewRSAPrivateKey(currentTime, signingPriv), + Identities: make(map[string]*Identity), + } + isPrimaryId := true + e.Identities[uid.Id] = &Identity{ + Name: uid.Name, + UserId: uid, + SelfSignature: &packet.Signature{ + CreationTime: currentTime, + SigType: packet.SigTypePositiveCert, + PubKeyAlgo: packet.PubKeyAlgoRSA, + Hash: config.Hash(), + IsPrimaryId: &isPrimaryId, + FlagsValid: true, + FlagSign: true, + FlagCertify: true, + IssuerKeyId: &e.PrimaryKey.KeyId, + }, + } + + // If the user passes in a DefaultHash via packet.Config, + // set the PreferredHash for the SelfSignature. + if config != nil && config.DefaultHash != 0 { + e.Identities[uid.Id].SelfSignature.PreferredHash = []uint8{hashToHashId(config.DefaultHash)} + } + + e.Subkeys = make([]Subkey, 1) + e.Subkeys[0] = Subkey{ + PublicKey: packet.NewRSAPublicKey(currentTime, &encryptingPriv.PublicKey), + PrivateKey: packet.NewRSAPrivateKey(currentTime, encryptingPriv), + Sig: &packet.Signature{ + CreationTime: currentTime, + SigType: packet.SigTypeSubkeyBinding, + PubKeyAlgo: packet.PubKeyAlgoRSA, + Hash: config.Hash(), + FlagsValid: true, + FlagEncryptStorage: true, + FlagEncryptCommunications: true, + IssuerKeyId: &e.PrimaryKey.KeyId, + }, + } + e.Subkeys[0].PublicKey.IsSubkey = true + e.Subkeys[0].PrivateKey.IsSubkey = true + + return e, nil +} + +// SerializePrivate serializes an Entity, including private key material, to +// the given Writer. For now, it must only be used on an Entity returned from +// NewEntity. +// If config is nil, sensible defaults will be used. +func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { + err = e.PrivateKey.Serialize(w) + if err != nil { + return + } + for _, ident := range e.Identities { + err = ident.UserId.Serialize(w) + if err != nil { + return + } + err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) + if err != nil { + return + } + err = ident.SelfSignature.Serialize(w) + if err != nil { + return + } + } + for _, subkey := range e.Subkeys { + err = subkey.PrivateKey.Serialize(w) + if err != nil { + return + } + err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) + if err != nil { + return + } + err = subkey.Sig.Serialize(w) + if err != nil { + return + } + } + return nil +} + +// Serialize writes the public part of the given Entity to w. (No private +// key material will be output). +func (e *Entity) Serialize(w io.Writer) error { + err := e.PrimaryKey.Serialize(w) + if err != nil { + return err + } + for _, ident := range e.Identities { + err = ident.UserId.Serialize(w) + if err != nil { + return err + } + err = ident.SelfSignature.Serialize(w) + if err != nil { + return err + } + for _, sig := range ident.Signatures { + err = sig.Serialize(w) + if err != nil { + return err + } + } + } + for _, subkey := range e.Subkeys { + err = subkey.PublicKey.Serialize(w) + if err != nil { + return err + } + err = subkey.Sig.Serialize(w) + if err != nil { + return err + } + } + return nil +} + +// SignIdentity adds a signature to e, from signer, attesting that identity is +// associated with e. The provided identity must already be an element of +// e.Identities and the private key of signer must have been decrypted if +// necessary. +// If config is nil, sensible defaults will be used. +func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { + if signer.PrivateKey == nil { + return errors.InvalidArgumentError("signing Entity must have a private key") + } + if signer.PrivateKey.Encrypted { + return errors.InvalidArgumentError("signing Entity's private key must be decrypted") + } + ident, ok := e.Identities[identity] + if !ok { + return errors.InvalidArgumentError("given identity string not found in Entity") + } + + sig := &packet.Signature{ + SigType: packet.SigTypeGenericCert, + PubKeyAlgo: signer.PrivateKey.PubKeyAlgo, + Hash: config.Hash(), + CreationTime: config.Now(), + IssuerKeyId: &signer.PrivateKey.KeyId, + } + if err := sig.SignUserId(identity, e.PrimaryKey, signer.PrivateKey, config); err != nil { + return err + } + ident.Signatures = append(ident.Signatures, sig) + return nil +} diff --git a/vendor/golang.org/x/crypto/openpgp/keys_test.go b/vendor/golang.org/x/crypto/openpgp/keys_test.go new file mode 100644 index 00000000..fbc8fc24 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/keys_test.go @@ -0,0 +1,404 @@ +package openpgp + +import ( + "bytes" + "crypto" + "strings" + "testing" + "time" + + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/packet" +) + +func TestKeyExpiry(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(expiringKeyHex)) + entity := kring[0] + + const timeFormat = "2006-01-02" + time1, _ := time.Parse(timeFormat, "2013-07-01") + + // The expiringKeyHex key is structured as: + // + // pub 1024R/5E237D8C created: 2013-07-01 expires: 2013-07-31 usage: SC + // sub 1024R/1ABB25A0 created: 2013-07-01 23:11:07 +0200 CEST expires: 2013-07-08 usage: E + // sub 1024R/96A672F5 created: 2013-07-01 23:11:23 +0200 CEST expires: 2013-07-31 usage: E + // + // So this should select the newest, non-expired encryption key. + key, _ := entity.encryptionKey(time1) + if id := key.PublicKey.KeyIdShortString(); id != "96A672F5" { + t.Errorf("Expected key 1ABB25A0 at time %s, but got key %s", time1.Format(timeFormat), id) + } + + // Once the first encryption subkey has expired, the second should be + // selected. + time2, _ := time.Parse(timeFormat, "2013-07-09") + key, _ = entity.encryptionKey(time2) + if id := key.PublicKey.KeyIdShortString(); id != "96A672F5" { + t.Errorf("Expected key 96A672F5 at time %s, but got key %s", time2.Format(timeFormat), id) + } + + // Once all the keys have expired, nothing should be returned. + time3, _ := time.Parse(timeFormat, "2013-08-01") + if key, ok := entity.encryptionKey(time3); ok { + t.Errorf("Expected no key at time %s, but got key %s", time3.Format(timeFormat), key.PublicKey.KeyIdShortString()) + } +} + +func TestMissingCrossSignature(t *testing.T) { + // This public key has a signing subkey, but the subkey does not + // contain a cross-signature. + keys, err := ReadArmoredKeyRing(bytes.NewBufferString(missingCrossSignatureKey)) + if len(keys) != 0 { + t.Errorf("Accepted key with missing cross signature") + } + if err == nil { + t.Fatal("Failed to detect error in keyring with missing cross signature") + } + structural, ok := err.(errors.StructuralError) + if !ok { + t.Fatalf("Unexpected class of error: %T. Wanted StructuralError", err) + } + const expectedMsg = "signing subkey is missing cross-signature" + if !strings.Contains(string(structural), expectedMsg) { + t.Fatalf("Unexpected error: %q. Expected it to contain %q", err, expectedMsg) + } +} + +func TestInvalidCrossSignature(t *testing.T) { + // This public key has a signing subkey, and the subkey has an + // embedded cross-signature. However, the cross-signature does + // not correctly validate over the primary and subkey. + keys, err := ReadArmoredKeyRing(bytes.NewBufferString(invalidCrossSignatureKey)) + if len(keys) != 0 { + t.Errorf("Accepted key with invalid cross signature") + } + if err == nil { + t.Fatal("Failed to detect error in keyring with an invalid cross signature") + } + structural, ok := err.(errors.StructuralError) + if !ok { + t.Fatalf("Unexpected class of error: %T. Wanted StructuralError", err) + } + const expectedMsg = "subkey signature invalid" + if !strings.Contains(string(structural), expectedMsg) { + t.Fatalf("Unexpected error: %q. Expected it to contain %q", err, expectedMsg) + } +} + +func TestGoodCrossSignature(t *testing.T) { + // This public key has a signing subkey, and the subkey has an + // embedded cross-signature which correctly validates over the + // primary and subkey. + keys, err := ReadArmoredKeyRing(bytes.NewBufferString(goodCrossSignatureKey)) + if err != nil { + t.Fatal(err) + } + if len(keys) != 1 { + t.Errorf("Failed to accept key with good cross signature, %d", len(keys)) + } + if len(keys[0].Subkeys) != 1 { + t.Errorf("Failed to accept good subkey, %d", len(keys[0].Subkeys)) + } +} + +// TestExternallyRevokableKey attempts to load and parse a key with a third party revocation permission. +func TestExternallyRevocableKey(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(subkeyUsageHex)) + + // The 0xA42704B92866382A key can be revoked by 0xBE3893CB843D0FE70C + // according to this signature that appears within the key: + // :signature packet: algo 1, keyid A42704B92866382A + // version 4, created 1396409682, md5len 0, sigclass 0x1f + // digest algo 2, begin of digest a9 84 + // hashed subpkt 2 len 4 (sig created 2014-04-02) + // hashed subpkt 12 len 22 (revocation key: c=80 a=1 f=CE094AA433F7040BB2DDF0BE3893CB843D0FE70C) + // hashed subpkt 7 len 1 (not revocable) + // subpkt 16 len 8 (issuer key ID A42704B92866382A) + // data: [1024 bits] + + id := uint64(0xA42704B92866382A) + keys := kring.KeysById(id) + if len(keys) != 1 { + t.Errorf("Expected to find key id %X, but got %d matches", id, len(keys)) + } +} + +func TestKeyRevocation(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(revokedKeyHex)) + + // revokedKeyHex contains these keys: + // pub 1024R/9A34F7C0 2014-03-25 [revoked: 2014-03-25] + // sub 1024R/1BA3CD60 2014-03-25 [revoked: 2014-03-25] + ids := []uint64{0xA401D9F09A34F7C0, 0x5CD3BE0A1BA3CD60} + + for _, id := range ids { + keys := kring.KeysById(id) + if len(keys) != 1 { + t.Errorf("Expected KeysById to find revoked key %X, but got %d matches", id, len(keys)) + } + keys = kring.KeysByIdUsage(id, 0) + if len(keys) != 0 { + t.Errorf("Expected KeysByIdUsage to filter out revoked key %X, but got %d matches", id, len(keys)) + } + } +} + +func TestSubkeyRevocation(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(revokedSubkeyHex)) + + // revokedSubkeyHex contains these keys: + // pub 1024R/4EF7E4BECCDE97F0 2014-03-25 + // sub 1024R/D63636E2B96AE423 2014-03-25 + // sub 1024D/DBCE4EE19529437F 2014-03-25 + // sub 1024R/677815E371C2FD23 2014-03-25 [revoked: 2014-03-25] + validKeys := []uint64{0x4EF7E4BECCDE97F0, 0xD63636E2B96AE423, 0xDBCE4EE19529437F} + revokedKey := uint64(0x677815E371C2FD23) + + for _, id := range validKeys { + keys := kring.KeysById(id) + if len(keys) != 1 { + t.Errorf("Expected KeysById to find key %X, but got %d matches", id, len(keys)) + } + keys = kring.KeysByIdUsage(id, 0) + if len(keys) != 1 { + t.Errorf("Expected KeysByIdUsage to find key %X, but got %d matches", id, len(keys)) + } + } + + keys := kring.KeysById(revokedKey) + if len(keys) != 1 { + t.Errorf("Expected KeysById to find key %X, but got %d matches", revokedKey, len(keys)) + } + + keys = kring.KeysByIdUsage(revokedKey, 0) + if len(keys) != 0 { + t.Errorf("Expected KeysByIdUsage to filter out revoked key %X, but got %d matches", revokedKey, len(keys)) + } +} + +func TestKeyUsage(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(subkeyUsageHex)) + + // subkeyUsageHex contains these keys: + // pub 1024R/2866382A created: 2014-04-01 expires: never usage: SC + // sub 1024R/936C9153 created: 2014-04-01 expires: never usage: E + // sub 1024R/64D5F5BB created: 2014-04-02 expires: never usage: E + // sub 1024D/BC0BA992 created: 2014-04-02 expires: never usage: S + certifiers := []uint64{0xA42704B92866382A} + signers := []uint64{0xA42704B92866382A, 0x42CE2C64BC0BA992} + encrypters := []uint64{0x09C0C7D9936C9153, 0xC104E98664D5F5BB} + + for _, id := range certifiers { + keys := kring.KeysByIdUsage(id, packet.KeyFlagCertify) + if len(keys) == 1 { + if keys[0].PublicKey.KeyId != id { + t.Errorf("Expected to find certifier key id %X, but got %X", id, keys[0].PublicKey.KeyId) + } + } else { + t.Errorf("Expected one match for certifier key id %X, but got %d matches", id, len(keys)) + } + } + + for _, id := range signers { + keys := kring.KeysByIdUsage(id, packet.KeyFlagSign) + if len(keys) == 1 { + if keys[0].PublicKey.KeyId != id { + t.Errorf("Expected to find signing key id %X, but got %X", id, keys[0].PublicKey.KeyId) + } + } else { + t.Errorf("Expected one match for signing key id %X, but got %d matches", id, len(keys)) + } + + // This keyring contains no encryption keys that are also good for signing. + keys = kring.KeysByIdUsage(id, packet.KeyFlagEncryptStorage|packet.KeyFlagEncryptCommunications) + if len(keys) != 0 { + t.Errorf("Unexpected match for encryption key id %X", id) + } + } + + for _, id := range encrypters { + keys := kring.KeysByIdUsage(id, packet.KeyFlagEncryptStorage|packet.KeyFlagEncryptCommunications) + if len(keys) == 1 { + if keys[0].PublicKey.KeyId != id { + t.Errorf("Expected to find encryption key id %X, but got %X", id, keys[0].PublicKey.KeyId) + } + } else { + t.Errorf("Expected one match for encryption key id %X, but got %d matches", id, len(keys)) + } + + // This keyring contains no encryption keys that are also good for signing. + keys = kring.KeysByIdUsage(id, packet.KeyFlagSign) + if len(keys) != 0 { + t.Errorf("Unexpected match for signing key id %X", id) + } + } +} + +func TestIdVerification(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) + if err != nil { + t.Fatal(err) + } + if err := kring[1].PrivateKey.Decrypt([]byte("passphrase")); err != nil { + t.Fatal(err) + } + + const identity = "Test Key 1 (RSA)" + if err := kring[0].SignIdentity(identity, kring[1], nil); err != nil { + t.Fatal(err) + } + + ident, ok := kring[0].Identities[identity] + if !ok { + t.Fatal("identity missing from key after signing") + } + + checked := false + for _, sig := range ident.Signatures { + if sig.IssuerKeyId == nil || *sig.IssuerKeyId != kring[1].PrimaryKey.KeyId { + continue + } + + if err := kring[1].PrimaryKey.VerifyUserIdSignature(identity, kring[0].PrimaryKey, sig); err != nil { + t.Fatalf("error verifying new identity signature: %s", err) + } + checked = true + break + } + + if !checked { + t.Fatal("didn't find identity signature in Entity") + } +} + +func TestNewEntityWithPreferredHash(t *testing.T) { + c := &packet.Config{ + DefaultHash: crypto.SHA256, + } + entity, err := NewEntity("Golang Gopher", "Test Key", "no-reply@golang.com", c) + if err != nil { + t.Fatal(err) + } + + for _, identity := range entity.Identities { + if len(identity.SelfSignature.PreferredHash) == 0 { + t.Fatal("didn't find a preferred hash in self signature") + } + ph := hashToHashId(c.DefaultHash) + if identity.SelfSignature.PreferredHash[0] != ph { + t.Fatalf("Expected preferred hash to be %d, got %d", ph, identity.SelfSignature.PreferredHash[0]) + } + } +} + +func TestNewEntityWithoutPreferredHash(t *testing.T) { + entity, err := NewEntity("Golang Gopher", "Test Key", "no-reply@golang.com", nil) + if err != nil { + t.Fatal(err) + } + + for _, identity := range entity.Identities { + if len(identity.SelfSignature.PreferredHash) != 0 { + t.Fatal("Expected preferred hash to be empty but got length %d", len(identity.SelfSignature.PreferredHash)) + } + } +} + +const expiringKeyHex = "988d0451d1ec5d010400ba3385721f2dc3f4ab096b2ee867ab77213f0a27a8538441c35d2fa225b08798a1439a66a5150e6bdc3f40f5d28d588c712394c632b6299f77db8c0d48d37903fb72ebd794d61be6aa774688839e5fdecfe06b2684cc115d240c98c66cb1ef22ae84e3aa0c2b0c28665c1e7d4d044e7f270706193f5223c8d44e0d70b7b8da830011010001b40f4578706972792074657374206b657988be041301020028050251d1ec5d021b03050900278d00060b090807030206150802090a0b0416020301021e01021780000a091072589ad75e237d8c033503fd10506d72837834eb7f994117740723adc39227104b0d326a1161871c0b415d25b4aedef946ca77ea4c05af9c22b32cf98be86ab890111fced1ee3f75e87b7cc3c00dc63bbc85dfab91c0dc2ad9de2c4d13a34659333a85c6acc1a669c5e1d6cecb0cf1e56c10e72d855ae177ddc9e766f9b2dda57ccbb75f57156438bbdb4e42b88d0451d1ec5d0104009c64906559866c5cb61578f5846a94fcee142a489c9b41e67b12bb54cfe86eb9bc8566460f9a720cb00d6526fbccfd4f552071a8e3f7744b1882d01036d811ee5a3fb91a1c568055758f43ba5d2c6a9676b012f3a1a89e47bbf624f1ad571b208f3cc6224eb378f1645dd3d47584463f9eadeacfd1ce6f813064fbfdcc4b5a53001101000188a504180102000f021b0c050251d1f06b050900093e89000a091072589ad75e237d8c20e00400ab8310a41461425b37889c4da28129b5fae6084fafbc0a47dd1adc74a264c6e9c9cc125f40462ee1433072a58384daef88c961c390ed06426a81b464a53194c4e291ddd7e2e2ba3efced01537d713bd111f48437bde2363446200995e8e0d4e528dda377fd1e8f8ede9c8e2198b393bd86852ce7457a7e3daf74d510461a5b77b88d0451d1ece8010400b3a519f83ab0010307e83bca895170acce8964a044190a2b368892f7a244758d9fc193482648acb1fb9780d28cc22d171931f38bb40279389fc9bf2110876d4f3db4fcfb13f22f7083877fe56592b3b65251312c36f83ffcb6d313c6a17f197dd471f0712aad15a8537b435a92471ba2e5b0c72a6c72536c3b567c558d7b6051001101000188a504180102000f021b0c050251d1f07b050900279091000a091072589ad75e237d8ce69e03fe286026afacf7c97ee20673864d4459a2240b5655219950643c7dba0ac384b1d4359c67805b21d98211f7b09c2a0ccf6410c8c04d4ff4a51293725d8d6570d9d8bb0e10c07d22357caeb49626df99c180be02d77d1fe8ed25e7a54481237646083a9f89a11566cd20b9e995b1487c5f9e02aeb434f3a1897cd416dd0a87861838da3e9e" +const subkeyUsageHex = "988d04533a52bc010400d26af43085558f65b9e7dbc90cb9238015259aed5e954637adcfa2181548b2d0b60c65f1f42ec5081cbf1bc0a8aa4900acfb77070837c58f26012fbce297d70afe96e759ad63531f0037538e70dbf8e384569b9720d99d8eb39d8d0a2947233ed242436cb6ac7dfe74123354b3d0119b5c235d3dd9c9d6c004f8ffaf67ad8583001101000188b7041f010200210502533b8552170c8001ce094aa433f7040bb2ddf0be3893cb843d0fe70c020700000a0910a42704b92866382aa98404009d63d916a27543da4221c60087c33f1c44bec9998c5438018ed370cca4962876c748e94b73eb39c58eb698063f3fd6346d58dd2a11c0247934c4a9d71f24754f7468f96fb24c3e791dd2392b62f626148ad724189498cbf993db2df7c0cdc2d677c35da0f16cb16c9ce7c33b4de65a4a91b1d21a130ae9cc26067718910ef8e2b417556d627261203c756d627261407379642e65642e61753e88b80413010200220502533a52bc021b03060b090807030206150802090a0b0416020301021e01021780000a0910a42704b92866382a47840400c0c2bd04f5fca586de408b395b3c280a278259c93eaaa8b79a53b97003f8ed502a8a00446dd9947fb462677e4fcac0dac2f0701847d15130aadb6cd9e0705ea0cf5f92f129136c7be21a718d46c8e641eb7f044f2adae573e11ae423a0a9ca51324f03a8a2f34b91fa40c3cc764bee4dccadedb54c768ba0469b683ea53f1c29b88d04533a52bc01040099c92a5d6f8b744224da27bc2369127c35269b58bec179de6bbc038f749344222f85a31933224f26b70243c4e4b2d242f0c4777eaef7b5502f9dad6d8bf3aaeb471210674b74de2d7078af497d55f5cdad97c7bedfbc1b41e8065a97c9c3d344b21fc81d27723af8e374bc595da26ea242dccb6ae497be26eea57e563ed517e90011010001889f0418010200090502533a52bc021b0c000a0910a42704b92866382afa1403ff70284c2de8a043ff51d8d29772602fa98009b7861c540535f874f2c230af8caf5638151a636b21f8255003997ccd29747fdd06777bb24f9593bd7d98a3e887689bf902f999915fcc94625ae487e5d13e6616f89090ebc4fdc7eb5cad8943e4056995bb61c6af37f8043016876a958ec7ebf39c43d20d53b7f546cfa83e8d2604b88d04533b8283010400c0b529316dbdf58b4c54461e7e669dc11c09eb7f73819f178ccd4177b9182b91d138605fcf1e463262fabefa73f94a52b5e15d1904635541c7ea540f07050ce0fb51b73e6f88644cec86e91107c957a114f69554548a85295d2b70bd0b203992f76eb5d493d86d9eabcaa7ef3fc7db7e458438db3fcdb0ca1cc97c638439a9170011010001889f0418010200090502533b8283021b0c000a0910a42704b92866382adc6d0400cfff6258485a21675adb7a811c3e19ebca18851533f75a7ba317950b9997fda8d1a4c8c76505c08c04b6c2cc31dc704d33da36a21273f2b388a1a706f7c3378b66d887197a525936ed9a69acb57fe7f718133da85ec742001c5d1864e9c6c8ea1b94f1c3759cebfd93b18606066c063a63be86085b7e37bdbc65f9a915bf084bb901a204533b85cd110400aed3d2c52af2b38b5b67904b0ef73d6dd7aef86adb770e2b153cd22489654dcc91730892087bb9856ae2d9f7ed1eb48f214243fe86bfe87b349ebd7c30e630e49c07b21fdabf78b7a95c8b7f969e97e3d33f2e074c63552ba64a2ded7badc05ce0ea2be6d53485f6900c7860c7aa76560376ce963d7271b9b54638a4028b573f00a0d8854bfcdb04986141568046202192263b9b67350400aaa1049dbc7943141ef590a70dcb028d730371d92ea4863de715f7f0f16d168bd3dc266c2450457d46dcbbf0b071547e5fbee7700a820c3750b236335d8d5848adb3c0da010e998908dfd93d961480084f3aea20b247034f8988eccb5546efaa35a92d0451df3aaf1aee5aa36a4c4d462c760ecd9cebcabfbe1412b1f21450f203fd126687cd486496e971a87fd9e1a8a765fe654baa219a6871ab97768596ab05c26c1aeea8f1a2c72395a58dbc12ef9640d2b95784e974a4d2d5a9b17c25fedacfe551bda52602de8f6d2e48443f5dd1a2a2a8e6a5e70ecdb88cd6e766ad9745c7ee91d78cc55c3d06536b49c3fee6c3d0b6ff0fb2bf13a314f57c953b8f4d93bf88e70418010200090502533b85cd021b0200520910a42704b92866382a47200419110200060502533b85cd000a091042ce2c64bc0ba99214b2009e26b26852c8b13b10c35768e40e78fbbb48bd084100a0c79d9ea0844fa5853dd3c85ff3ecae6f2c9dd6c557aa04008bbbc964cd65b9b8299d4ebf31f41cc7264b8cf33a00e82c5af022331fac79efc9563a822497ba012953cefe2629f1242fcdcb911dbb2315985bab060bfd58261ace3c654bdbbe2e8ed27a46e836490145c86dc7bae15c011f7e1ffc33730109b9338cd9f483e7cef3d2f396aab5bd80efb6646d7e778270ee99d934d187dd98" +const revokedKeyHex = "988d045331ce82010400c4fdf7b40a5477f206e6ee278eaef888ca73bf9128a9eef9f2f1ddb8b7b71a4c07cfa241f028a04edb405e4d916c61d6beabc333813dc7b484d2b3c52ee233c6a79b1eea4e9cc51596ba9cd5ac5aeb9df62d86ea051055b79d03f8a4fa9f38386f5bd17529138f3325d46801514ea9047977e0829ed728e68636802796801be10011010001889f04200102000905025331d0e3021d03000a0910a401d9f09a34f7c042aa040086631196405b7e6af71026b88e98012eab44aa9849f6ef3fa930c7c9f23deaedba9db1538830f8652fb7648ec3fcade8dbcbf9eaf428e83c6cbcc272201bfe2fbb90d41963397a7c0637a1a9d9448ce695d9790db2dc95433ad7be19eb3de72dacf1d6db82c3644c13eae2a3d072b99bb341debba012c5ce4006a7d34a1f4b94b444526567205265766f6b657220283c52656727732022424d204261726973746122204b657920262530305c303e5c29203c72656740626d626172697374612e636f2e61753e88b704130102002205025331ce82021b03060b090807030206150802090a0b0416020301021e01021780000a0910a401d9f09a34f7c0019c03f75edfbeb6a73e7225ad3cc52724e2872e04260d7daf0d693c170d8c4b243b8767bc7785763533febc62ec2600c30603c433c095453ede59ff2fcabeb84ce32e0ed9d5cf15ffcbc816202b64370d4d77c1e9077d74e94a16fb4fa2e5bec23a56d7a73cf275f91691ae1801a976fcde09e981a2f6327ac27ea1fecf3185df0d56889c04100102000605025331cfb5000a0910fe9645554e8266b64b4303fc084075396674fb6f778d302ac07cef6bc0b5d07b66b2004c44aef711cbac79617ef06d836b4957522d8772dd94bf41a2f4ac8b1ee6d70c57503f837445a74765a076d07b829b8111fc2a918423ddb817ead7ca2a613ef0bfb9c6b3562aec6c3cf3c75ef3031d81d95f6563e4cdcc9960bcb386c5d757b104fcca5fe11fc709df884604101102000605025331cfe7000a09107b15a67f0b3ddc0317f6009e360beea58f29c1d963a22b962b80788c3fa6c84e009d148cfde6b351469b8eae91187eff07ad9d08fcaab88d045331ce820104009f25e20a42b904f3fa555530fe5c46737cf7bd076c35a2a0d22b11f7e0b61a69320b768f4a80fe13980ce380d1cfc4a0cd8fbe2d2e2ef85416668b77208baa65bf973fe8e500e78cc310d7c8705cdb34328bf80e24f0385fce5845c33bc7943cf6b11b02348a23da0bf6428e57c05135f2dc6bd7c1ce325d666d5a5fd2fd5e410011010001889f04180102000905025331ce82021b0c000a0910a401d9f09a34f7c0418003fe34feafcbeaef348a800a0d908a7a6809cc7304017d820f70f0474d5e23cb17e38b67dc6dca282c6ca00961f4ec9edf2738d0f087b1d81e4871ef08e1798010863afb4eac4c44a376cb343be929c5be66a78cfd4456ae9ec6a99d97f4e1c3ff3583351db2147a65c0acef5c003fb544ab3a2e2dc4d43646f58b811a6c3a369d1f" +const revokedSubkeyHex = "988d04533121f6010400aefc803a3e4bb1a61c86e8a86d2726c6a43e0079e9f2713f1fa017e9854c83877f4aced8e331d675c67ea83ddab80aacbfa0b9040bb12d96f5a3d6be09455e2a76546cbd21677537db941cab710216b6d24ec277ee0bd65b910f416737ed120f6b93a9d3b306245c8cfd8394606fdb462e5cf43c551438d2864506c63367fc890011010001b41d416c696365203c616c69636540626d626172697374612e636f2e61753e88bb041301020025021b03060b090807030206150802090a0b0416020301021e01021780050253312798021901000a09104ef7e4beccde97f015a803ff5448437780f63263b0df8442a995e7f76c221351a51edd06f2063d8166cf3157aada4923dfc44aa0f2a6a4da5cf83b7fe722ba8ab416c976e77c6b5682e7f1069026673bd0de56ba06fd5d7a9f177607f277d9b55ff940a638c3e68525c67517e2b3d976899b93ca267f705b3e5efad7d61220e96b618a4497eab8d04403d23f8846041011020006050253312910000a09107b15a67f0b3ddc03d96e009f50b6365d86c4be5d5e9d0ea42d5e56f5794c617700a0ab274e19c2827780016d23417ce89e0a2c0d987d889c04100102000605025331cf7a000a0910a401d9f09a34f7c0ee970400aca292f213041c9f3b3fc49148cbda9d84afee6183c8dd6c5ff2600b29482db5fecd4303797be1ee6d544a20a858080fec43412061c9a71fae4039fd58013b4ae341273e6c66ad4c7cdd9e68245bedb260562e7b166f2461a1032f2b38c0e0e5715fb3d1656979e052b55ca827a76f872b78a9fdae64bc298170bfcebedc1271b41a416c696365203c616c696365407379646973702e6f722e61753e88b804130102002205025331278b021b03060b090807030206150802090a0b0416020301021e01021780000a09104ef7e4beccde97f06a7003fa03c3af68d272ebc1fa08aa72a03b02189c26496a2833d90450801c4e42c5b5f51ad96ce2d2c9cef4b7c02a6a2fcf1412d6a2d486098eb762f5010a201819c17fd2888aec8eda20c65a3b75744de7ee5cc8ac7bfc470cbe3cb982720405a27a3c6a8c229cfe36905f881b02ed5680f6a8f05866efb9d6c5844897e631deb949ca8846041011020006050253312910000a09107b15a67f0b3ddc0347bc009f7fa35db59147469eb6f2c5aaf6428accb138b22800a0caa2f5f0874bacc5909c652a57a31beda65eddd5889c04100102000605025331cf7a000a0910a401d9f09a34f7c0316403ff46f2a5c101256627f16384d34a38fb47a6c88ba60506843e532d91614339fccae5f884a5741e7582ffaf292ba38ee10a270a05f139bde3814b6a077e8cd2db0f105ebea2a83af70d385f13b507fac2ad93ff79d84950328bb86f3074745a8b7f9b64990fb142e2a12976e27e8d09a28dc5621f957ac49091116da410ac3cbde1b88d04533121f6010400cbd785b56905e4192e2fb62a720727d43c4fa487821203cf72138b884b78b701093243e1d8c92a0248a6c0203a5a88693da34af357499abacaf4b3309c640797d03093870a323b4b6f37865f6eaa2838148a67df4735d43a90ca87942554cdf1c4a751b1e75f9fd4ce4e97e278d6c1c7ed59d33441df7d084f3f02beb68896c70011010001889f0418010200090502533121f6021b0c000a09104ef7e4beccde97f0b98b03fc0a5ccf6a372995835a2f5da33b282a7d612c0ab2a97f59cf9fff73e9110981aac2858c41399afa29624a7fd8a0add11654e3d882c0fd199e161bdad65e5e2548f7b68a437ea64293db1246e3011cbb94dc1bcdeaf0f2539bd88ff16d95547144d97cead6a8c5927660a91e6db0d16eb36b7b49a3525b54d1644e65599b032b7eb901a204533127a0110400bd3edaa09eff9809c4edc2c2a0ebe52e53c50a19c1e49ab78e6167bf61473bb08f2050d78a5cbbc6ed66aff7b42cd503f16b4a0b99fa1609681fca9b7ce2bbb1a5b3864d6cdda4d7ef7849d156d534dea30fb0efb9e4cf8959a2b2ce623905882d5430b995a15c3b9fe92906086788b891002924f94abe139b42cbbfaaabe42f00a0b65dc1a1ad27d798adbcb5b5ad02d2688c89477b03ff4eebb6f7b15a73b96a96bed201c0e5e4ea27e4c6e2dd1005b94d4b90137a5b1cf5e01c6226c070c4cc999938101578877ee76d296b9aab8246d57049caacf489e80a3f40589cade790a020b1ac146d6f7a6241184b8c7fcde680eae3188f5dcbe846d7f7bdad34f6fcfca08413e19c1d5df83fc7c7c627d493492e009c2f52a80400a2fe82de87136fd2e8845888c4431b032ba29d9a29a804277e31002a8201fb8591a3e55c7a0d0881496caf8b9fb07544a5a4879291d0dc026a0ea9e5bd88eb4aa4947bbd694b25012e208a250d65ddc6f1eea59d3aed3b4ec15fcab85e2afaa23a40ab1ef9ce3e11e1bc1c34a0e758e7aa64deb8739276df0af7d4121f834a9b88e70418010200090502533127a0021b02005209104ef7e4beccde97f047200419110200060502533127a0000a0910dbce4ee19529437fe045009c0b32f5ead48ee8a7e98fac0dea3d3e6c0e2c552500a0ad71fadc5007cfaf842d9b7db3335a8cdad15d3d1a6404009b08e2c68fe8f3b45c1bb72a4b3278cdf3012aa0f229883ad74aa1f6000bb90b18301b2f85372ca5d6b9bf478d235b733b1b197d19ccca48e9daf8e890cb64546b4ce1b178faccfff07003c172a2d4f5ebaba9f57153955f3f61a9b80a4f5cb959908f8b211b03b7026a8a82fc612bfedd3794969bcf458c4ce92be215a1176ab88d045331d144010400a5063000c5aaf34953c1aa3bfc95045b3aab9882b9a8027fecfe2142dc6b47ba8aca667399990244d513dd0504716908c17d92c65e74219e004f7b83fc125e575dd58efec3ab6dd22e3580106998523dea42ec75bf9aa111734c82df54630bebdff20fe981cfc36c76f865eb1c2fb62c9e85bc3a6e5015a361a2eb1c8431578d0011010001889f04280102000905025331d433021d03000a09104ef7e4beccde97f02e5503ff5e0630d1b65291f4882b6d40a29da4616bb5088717d469fbcc3648b8276de04a04988b1f1b9f3e18f52265c1f8b6c85861691c1a6b8a3a25a1809a0b32ad330aec5667cb4262f4450649184e8113849b05e5ad06a316ea80c001e8e71838190339a6e48bbde30647bcf245134b9a97fa875c1d83a9862cae87ffd7e2c4ce3a1b89013d04180102000905025331d144021b0200a809104ef7e4beccde97f09d2004190102000605025331d144000a0910677815e371c2fd23522203fe22ab62b8e7a151383cea3edd3a12995693911426f8ccf125e1f6426388c0010f88d9ca7da2224aee8d1c12135998640c5e1813d55a93df472faae75bef858457248db41b4505827590aeccf6f9eb646da7f980655dd3050c6897feddddaca90676dee856d66db8923477d251712bb9b3186b4d0114daf7d6b59272b53218dd1da94a03ff64006fcbe71211e5daecd9961fba66cdb6de3f914882c58ba5beddeba7dcb950c1156d7fba18c19ea880dccc800eae335deec34e3b84ac75ffa24864f782f87815cda1c0f634b3dd2fa67cea30811d21723d21d9551fa12ccbcfa62b6d3a15d01307b99925707992556d50065505b090aadb8579083a20fe65bd2a270da9b011" +const missingCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Charset: UTF-8 + +mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY +ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG +zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 +QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ +QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo +9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu +Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ +dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R +JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL +ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew +RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW +/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu +yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAJcXQeP+NmuciE99YcJoffxv +2gVLU4ZXBNHEaP0mgaJ1+tmMD089vUQAcyGRvw8jfsNsVZQIOAuRxY94aHQhIRHR +bUzBN28ofo/AJJtfx62C15xt6fDKRV6HXYqAiygrHIpEoRLyiN69iScUsjIJeyFL +C8wa72e8pSL6dkHoaV1N9ZH/xmrJ+k0vsgkQaAh9CzYufncDxcwkoP+aOlGtX1gP +WwWoIbz0JwLEMPHBWvDDXQcQPQTYQyj+LGC9U6f9VZHN25E94subM1MjuT9OhN9Y +MLfWaaIc5WyhLFyQKW2Upofn9wSFi8ubyBnv640Dfd0rVmaWv7LNTZpoZ/GbJAMA +EQEAAYkBHwQYAQIACQUCU5ygeQIbAgAKCRDt1A0FCB6SP0zCB/sEzaVR38vpx+OQ +MMynCBJrakiqDmUZv9xtplY7zsHSQjpd6xGflbU2n+iX99Q+nav0ETQZifNUEd4N +1ljDGQejcTyKD6Pkg6wBL3x9/RJye7Zszazm4+toJXZ8xJ3800+BtaPoI39akYJm ++ijzbskvN0v/j5GOFJwQO0pPRAFtdHqRs9Kf4YanxhedB4dIUblzlIJuKsxFit6N +lgGRblagG3Vv2eBszbxzPbJjHCgVLR3RmrVezKOsZjr/2i7X+xLWIR0uD3IN1qOW +CXQxLBizEEmSNVNxsp7KPGTLnqO3bPtqFirxS9PJLIMPTPLNBY7ZYuPNTMqVIUWF +4artDmrG +=7FfJ +-----END PGP PUBLIC KEY BLOCK-----` + +const invalidCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY +ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG +zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 +QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ +QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo +9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu +Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ +dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R +JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL +ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew +RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW +/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu +yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAIINDqlj7X6jYKc6DjwrOkjQ +UIRWbQQar0LwmNilehmt70g5DCL1SYm9q4LcgJJ2Nhxj0/5qqsYib50OSWMcKeEe +iRXpXzv1ObpcQtI5ithp0gR53YPXBib80t3bUzomQ5UyZqAAHzMp3BKC54/vUrSK +FeRaxDzNLrCeyI00+LHNUtwghAqHvdNcsIf8VRumK8oTm3RmDh0TyjASWYbrt9c8 +R1Um3zuoACOVy+mEIgIzsfHq0u7dwYwJB5+KeM7ZLx+HGIYdUYzHuUE1sLwVoELh ++SHIGHI1HDicOjzqgajShuIjj5hZTyQySVprrsLKiXS6NEwHAP20+XjayJ/R3tEA +EQEAAYkCPgQYAQIBKAUCU5ygeQIbAsBdIAQZAQIABgUCU5ygeQAKCRCpVlnFZmhO +52RJB/9uD1MSa0wjY6tHOIgquZcP3bHBvHmrHNMw9HR2wRCMO91ZkhrpdS3ZHtgb +u3/55etj0FdvDo1tb8P8FGSVtO5Vcwf5APM8sbbqoi8L951Q3i7qt847lfhu6sMl +w0LWFvPTOLHrliZHItPRjOltS1WAWfr2jUYhsU9ytaDAJmvf9DujxEOsN5G1YJep +54JCKVCkM/y585Zcnn+yxk/XwqoNQ0/iJUT9qRrZWvoeasxhl1PQcwihCwss44A+ +YXaAt3hbk+6LEQuZoYS73yR3WHj+42tfm7YxRGeubXfgCEz/brETEWXMh4pe0vCL +bfWrmfSPq2rDegYcAybxRQz0lF8PAAoJEO3UDQUIHpI/exkH/0vQfdHA8g/N4T6E +i6b1CUVBAkvtdJpCATZjWPhXmShOw62gkDw306vHPilL4SCvEEi4KzG72zkp6VsB +DSRcpxCwT4mHue+duiy53/aRMtSJ+vDfiV1Vhq+3sWAck/yUtfDU9/u4eFaiNok1 +8/Gd7reyuZt5CiJnpdPpjCwelK21l2w7sHAnJF55ITXdOxI8oG3BRKufz0z5lyDY +s2tXYmhhQIggdgelN8LbcMhWs/PBbtUr6uZlNJG2lW1yscD4aI529VjwJlCeo745 +U7pO4eF05VViUJ2mmfoivL3tkhoTUWhx8xs8xCUcCg8DoEoSIhxtOmoTPR22Z9BL +6LCg2mg= +=Dhm4 +-----END PGP PUBLIC KEY BLOCK-----` + +const goodCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mI0EVUqeVwEEAMufHRrMPWK3gyvi0O0tABCs/oON9zV9KDZlr1a1M91ShCSFwCPo +7r80PxdWVWcj0V5h50/CJYtpN3eE/mUIgW2z1uDYQF1OzrQ8ubrksfsJvpAhENom +lTQEppv9mV8qhcM278teb7TX0pgrUHLYF5CfPdp1L957JLLXoQR/lwLVABEBAAG0 +E2dvb2Qtc2lnbmluZy1zdWJrZXmIuAQTAQIAIgUCVUqeVwIbAwYLCQgHAwIGFQgC +CQoLBBYCAwECHgECF4AACgkQNRjL95IRWP69XQQAlH6+eyXJN4DZTLX78KGjHrsw +6FCvxxClEPtPUjcJy/1KCRQmtLAt9PbbA78dvgzjDeZMZqRAwdjyJhjyg/fkU2OH +7wq4ktjUu+dLcOBb+BFMEY+YjKZhf6EJuVfxoTVr5f82XNPbYHfTho9/OABKH6kv +X70PaKZhbwnwij8Nts65AaIEVUqftREEAJ3WxZfqAX0bTDbQPf2CMT2IVMGDfhK7 +GyubOZgDFFjwUJQvHNvsrbeGLZ0xOBumLINyPO1amIfTgJNm1iiWFWfmnHReGcDl +y5mpYG60Mb79Whdcer7CMm3AqYh/dW4g6IB02NwZMKoUHo3PXmFLxMKXnWyJ0clw +R0LI/Qn509yXAKDh1SO20rqrBM+EAP2c5bfI98kyNwQAi3buu94qo3RR1ZbvfxgW +CKXDVm6N99jdZGNK7FbRifXqzJJDLcXZKLnstnC4Sd3uyfyf1uFhmDLIQRryn5m+ +LBYHfDBPN3kdm7bsZDDq9GbTHiFZUfm/tChVKXWxkhpAmHhU/tH6GGzNSMXuIWSO +aOz3Rqq0ED4NXyNKjdF9MiwD/i83S0ZBc0LmJYt4Z10jtH2B6tYdqnAK29uQaadx +yZCX2scE09UIm32/w7pV77CKr1Cp/4OzAXS1tmFzQ+bX7DR+Gl8t4wxr57VeEMvl +BGw4Vjh3X8//m3xynxycQU18Q1zJ6PkiMyPw2owZ/nss3hpSRKFJsxMLhW3fKmKr +Ey2KiOcEGAECAAkFAlVKn7UCGwIAUgkQNRjL95IRWP5HIAQZEQIABgUCVUqftQAK +CRD98VjDN10SqkWrAKDTpEY8D8HC02E/KVC5YUI01B30wgCgurpILm20kXEDCeHp +C5pygfXw1DJrhAP+NyPJ4um/bU1I+rXaHHJYroYJs8YSweiNcwiHDQn0Engh/mVZ +SqLHvbKh2dL/RXymC3+rjPvQf5cup9bPxNMa6WagdYBNAfzWGtkVISeaQW+cTEp/ +MtgVijRGXR/lGLGETPg2X3Afwn9N9bLMBkBprKgbBqU7lpaoPupxT61bL70= +=vtbN +-----END PGP PUBLIC KEY BLOCK-----` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/compressed.go b/vendor/golang.org/x/crypto/openpgp/packet/compressed.go new file mode 100644 index 00000000..e8f0b5ca --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/compressed.go @@ -0,0 +1,123 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "compress/bzip2" + "compress/flate" + "compress/zlib" + "golang.org/x/crypto/openpgp/errors" + "io" + "strconv" +) + +// Compressed represents a compressed OpenPGP packet. The decompressed contents +// will contain more OpenPGP packets. See RFC 4880, section 5.6. +type Compressed struct { + Body io.Reader +} + +const ( + NoCompression = flate.NoCompression + BestSpeed = flate.BestSpeed + BestCompression = flate.BestCompression + DefaultCompression = flate.DefaultCompression +) + +// CompressionConfig contains compressor configuration settings. +type CompressionConfig struct { + // Level is the compression level to use. It must be set to + // between -1 and 9, with -1 causing the compressor to use the + // default compression level, 0 causing the compressor to use + // no compression and 1 to 9 representing increasing (better, + // slower) compression levels. If Level is less than -1 or + // more then 9, a non-nil error will be returned during + // encryption. See the constants above for convenient common + // settings for Level. + Level int +} + +func (c *Compressed) parse(r io.Reader) error { + var buf [1]byte + _, err := readFull(r, buf[:]) + if err != nil { + return err + } + + switch buf[0] { + case 1: + c.Body = flate.NewReader(r) + case 2: + c.Body, err = zlib.NewReader(r) + case 3: + c.Body = bzip2.NewReader(r) + default: + err = errors.UnsupportedError("unknown compression algorithm: " + strconv.Itoa(int(buf[0]))) + } + + return err +} + +// compressedWriterCloser represents the serialized compression stream +// header and the compressor. Its Close() method ensures that both the +// compressor and serialized stream header are closed. Its Write() +// method writes to the compressor. +type compressedWriteCloser struct { + sh io.Closer // Stream Header + c io.WriteCloser // Compressor +} + +func (cwc compressedWriteCloser) Write(p []byte) (int, error) { + return cwc.c.Write(p) +} + +func (cwc compressedWriteCloser) Close() (err error) { + err = cwc.c.Close() + if err != nil { + return err + } + + return cwc.sh.Close() +} + +// SerializeCompressed serializes a compressed data packet to w and +// returns a WriteCloser to which the literal data packets themselves +// can be written and which MUST be closed on completion. If cc is +// nil, sensible defaults will be used to configure the compression +// algorithm. +func SerializeCompressed(w io.WriteCloser, algo CompressionAlgo, cc *CompressionConfig) (literaldata io.WriteCloser, err error) { + compressed, err := serializeStreamHeader(w, packetTypeCompressed) + if err != nil { + return + } + + _, err = compressed.Write([]byte{uint8(algo)}) + if err != nil { + return + } + + level := DefaultCompression + if cc != nil { + level = cc.Level + } + + var compressor io.WriteCloser + switch algo { + case CompressionZIP: + compressor, err = flate.NewWriter(compressed, level) + case CompressionZLIB: + compressor, err = zlib.NewWriterLevel(compressed, level) + default: + s := strconv.Itoa(int(algo)) + err = errors.UnsupportedError("Unsupported compression algorithm: " + s) + } + if err != nil { + return + } + + literaldata = compressedWriteCloser{compressed, compressor} + + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/compressed_test.go b/vendor/golang.org/x/crypto/openpgp/packet/compressed_test.go new file mode 100644 index 00000000..cb2d70bd --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/compressed_test.go @@ -0,0 +1,41 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/hex" + "io" + "io/ioutil" + "testing" +) + +func TestCompressed(t *testing.T) { + packet, err := Read(readerFromHex(compressedHex)) + if err != nil { + t.Errorf("failed to read Compressed: %s", err) + return + } + + c, ok := packet.(*Compressed) + if !ok { + t.Error("didn't find Compressed packet") + return + } + + contents, err := ioutil.ReadAll(c.Body) + if err != nil && err != io.EOF { + t.Error(err) + return + } + + expected, _ := hex.DecodeString(compressedExpectedHex) + if !bytes.Equal(expected, contents) { + t.Errorf("got:%x want:%x", contents, expected) + } +} + +const compressedHex = "a3013b2d90c4e02b72e25f727e5e496a5e49b11e1700" +const compressedExpectedHex = "cb1062004d14c8fe636f6e74656e74732e0a" diff --git a/vendor/golang.org/x/crypto/openpgp/packet/config.go b/vendor/golang.org/x/crypto/openpgp/packet/config.go new file mode 100644 index 00000000..c76eecc9 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/config.go @@ -0,0 +1,91 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto" + "crypto/rand" + "io" + "time" +) + +// Config collects a number of parameters along with sensible defaults. +// A nil *Config is valid and results in all default values. +type Config struct { + // Rand provides the source of entropy. + // If nil, the crypto/rand Reader is used. + Rand io.Reader + // DefaultHash is the default hash function to be used. + // If zero, SHA-256 is used. + DefaultHash crypto.Hash + // DefaultCipher is the cipher to be used. + // If zero, AES-128 is used. + DefaultCipher CipherFunction + // Time returns the current time as the number of seconds since the + // epoch. If Time is nil, time.Now is used. + Time func() time.Time + // DefaultCompressionAlgo is the compression algorithm to be + // applied to the plaintext before encryption. If zero, no + // compression is done. + DefaultCompressionAlgo CompressionAlgo + // CompressionConfig configures the compression settings. + CompressionConfig *CompressionConfig + // S2KCount is only used for symmetric encryption. It + // determines the strength of the passphrase stretching when + // the said passphrase is hashed to produce a key. S2KCount + // should be between 1024 and 65011712, inclusive. If Config + // is nil or S2KCount is 0, the value 65536 used. Not all + // values in the above range can be represented. S2KCount will + // be rounded up to the next representable value if it cannot + // be encoded exactly. When set, it is strongly encrouraged to + // use a value that is at least 65536. See RFC 4880 Section + // 3.7.1.3. + S2KCount int + // RSABits is the number of bits in new RSA keys made with NewEntity. + // If zero, then 2048 bit keys are created. + RSABits int +} + +func (c *Config) Random() io.Reader { + if c == nil || c.Rand == nil { + return rand.Reader + } + return c.Rand +} + +func (c *Config) Hash() crypto.Hash { + if c == nil || uint(c.DefaultHash) == 0 { + return crypto.SHA256 + } + return c.DefaultHash +} + +func (c *Config) Cipher() CipherFunction { + if c == nil || uint8(c.DefaultCipher) == 0 { + return CipherAES128 + } + return c.DefaultCipher +} + +func (c *Config) Now() time.Time { + if c == nil || c.Time == nil { + return time.Now() + } + return c.Time() +} + +func (c *Config) Compression() CompressionAlgo { + if c == nil { + return CompressionNone + } + return c.DefaultCompressionAlgo +} + +func (c *Config) PasswordHashIterations() int { + if c == nil || c.S2KCount == 0 { + return 0 + } + return c.S2KCount +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go b/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go new file mode 100644 index 00000000..266840d0 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go @@ -0,0 +1,199 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto/rsa" + "encoding/binary" + "io" + "math/big" + "strconv" + + "golang.org/x/crypto/openpgp/elgamal" + "golang.org/x/crypto/openpgp/errors" +) + +const encryptedKeyVersion = 3 + +// EncryptedKey represents a public-key encrypted session key. See RFC 4880, +// section 5.1. +type EncryptedKey struct { + KeyId uint64 + Algo PublicKeyAlgorithm + CipherFunc CipherFunction // only valid after a successful Decrypt + Key []byte // only valid after a successful Decrypt + + encryptedMPI1, encryptedMPI2 parsedMPI +} + +func (e *EncryptedKey) parse(r io.Reader) (err error) { + var buf [10]byte + _, err = readFull(r, buf[:]) + if err != nil { + return + } + if buf[0] != encryptedKeyVersion { + return errors.UnsupportedError("unknown EncryptedKey version " + strconv.Itoa(int(buf[0]))) + } + e.KeyId = binary.BigEndian.Uint64(buf[1:9]) + e.Algo = PublicKeyAlgorithm(buf[9]) + switch e.Algo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: + e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) + case PubKeyAlgoElGamal: + e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) + if err != nil { + return + } + e.encryptedMPI2.bytes, e.encryptedMPI2.bitLength, err = readMPI(r) + } + _, err = consumeAll(r) + return +} + +func checksumKeyMaterial(key []byte) uint16 { + var checksum uint16 + for _, v := range key { + checksum += uint16(v) + } + return checksum +} + +// Decrypt decrypts an encrypted session key with the given private key. The +// private key must have been decrypted first. +// If config is nil, sensible defaults will be used. +func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { + var err error + var b []byte + + // TODO(agl): use session key decryption routines here to avoid + // padding oracle attacks. + switch priv.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: + b, err = rsa.DecryptPKCS1v15(config.Random(), priv.PrivateKey.(*rsa.PrivateKey), e.encryptedMPI1.bytes) + case PubKeyAlgoElGamal: + c1 := new(big.Int).SetBytes(e.encryptedMPI1.bytes) + c2 := new(big.Int).SetBytes(e.encryptedMPI2.bytes) + b, err = elgamal.Decrypt(priv.PrivateKey.(*elgamal.PrivateKey), c1, c2) + default: + err = errors.InvalidArgumentError("cannot decrypted encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) + } + + if err != nil { + return err + } + + e.CipherFunc = CipherFunction(b[0]) + e.Key = b[1 : len(b)-2] + expectedChecksum := uint16(b[len(b)-2])<<8 | uint16(b[len(b)-1]) + checksum := checksumKeyMaterial(e.Key) + if checksum != expectedChecksum { + return errors.StructuralError("EncryptedKey checksum incorrect") + } + + return nil +} + +// Serialize writes the encrypted key packet, e, to w. +func (e *EncryptedKey) Serialize(w io.Writer) error { + var mpiLen int + switch e.Algo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: + mpiLen = 2 + len(e.encryptedMPI1.bytes) + case PubKeyAlgoElGamal: + mpiLen = 2 + len(e.encryptedMPI1.bytes) + 2 + len(e.encryptedMPI2.bytes) + default: + return errors.InvalidArgumentError("don't know how to serialize encrypted key type " + strconv.Itoa(int(e.Algo))) + } + + serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) + + w.Write([]byte{encryptedKeyVersion}) + binary.Write(w, binary.BigEndian, e.KeyId) + w.Write([]byte{byte(e.Algo)}) + + switch e.Algo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: + writeMPIs(w, e.encryptedMPI1) + case PubKeyAlgoElGamal: + writeMPIs(w, e.encryptedMPI1, e.encryptedMPI2) + default: + panic("internal error") + } + + return nil +} + +// SerializeEncryptedKey serializes an encrypted key packet to w that contains +// key, encrypted to pub. +// If config is nil, sensible defaults will be used. +func SerializeEncryptedKey(w io.Writer, pub *PublicKey, cipherFunc CipherFunction, key []byte, config *Config) error { + var buf [10]byte + buf[0] = encryptedKeyVersion + binary.BigEndian.PutUint64(buf[1:9], pub.KeyId) + buf[9] = byte(pub.PubKeyAlgo) + + keyBlock := make([]byte, 1 /* cipher type */ +len(key)+2 /* checksum */) + keyBlock[0] = byte(cipherFunc) + copy(keyBlock[1:], key) + checksum := checksumKeyMaterial(key) + keyBlock[1+len(key)] = byte(checksum >> 8) + keyBlock[1+len(key)+1] = byte(checksum) + + switch pub.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: + return serializeEncryptedKeyRSA(w, config.Random(), buf, pub.PublicKey.(*rsa.PublicKey), keyBlock) + case PubKeyAlgoElGamal: + return serializeEncryptedKeyElGamal(w, config.Random(), buf, pub.PublicKey.(*elgamal.PublicKey), keyBlock) + case PubKeyAlgoDSA, PubKeyAlgoRSASignOnly: + return errors.InvalidArgumentError("cannot encrypt to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) + } + + return errors.UnsupportedError("encrypting a key to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) +} + +func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub *rsa.PublicKey, keyBlock []byte) error { + cipherText, err := rsa.EncryptPKCS1v15(rand, pub, keyBlock) + if err != nil { + return errors.InvalidArgumentError("RSA encryption failed: " + err.Error()) + } + + packetLen := 10 /* header length */ + 2 /* mpi size */ + len(cipherText) + + err = serializeHeader(w, packetTypeEncryptedKey, packetLen) + if err != nil { + return err + } + _, err = w.Write(header[:]) + if err != nil { + return err + } + return writeMPI(w, 8*uint16(len(cipherText)), cipherText) +} + +func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, pub *elgamal.PublicKey, keyBlock []byte) error { + c1, c2, err := elgamal.Encrypt(rand, pub, keyBlock) + if err != nil { + return errors.InvalidArgumentError("ElGamal encryption failed: " + err.Error()) + } + + packetLen := 10 /* header length */ + packetLen += 2 /* mpi size */ + (c1.BitLen()+7)/8 + packetLen += 2 /* mpi size */ + (c2.BitLen()+7)/8 + + err = serializeHeader(w, packetTypeEncryptedKey, packetLen) + if err != nil { + return err + } + _, err = w.Write(header[:]) + if err != nil { + return err + } + err = writeBig(w, c1) + if err != nil { + return err + } + return writeBig(w, c2) +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key_test.go b/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key_test.go new file mode 100644 index 00000000..fee14cf3 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key_test.go @@ -0,0 +1,146 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto/rsa" + "encoding/hex" + "fmt" + "math/big" + "testing" +) + +func bigFromBase10(s string) *big.Int { + b, ok := new(big.Int).SetString(s, 10) + if !ok { + panic("bigFromBase10 failed") + } + return b +} + +var encryptedKeyPub = rsa.PublicKey{ + E: 65537, + N: bigFromBase10("115804063926007623305902631768113868327816898845124614648849934718568541074358183759250136204762053879858102352159854352727097033322663029387610959884180306668628526686121021235757016368038585212410610742029286439607686208110250133174279811431933746643015923132833417396844716207301518956640020862630546868823"), +} + +var encryptedKeyRSAPriv = &rsa.PrivateKey{ + PublicKey: encryptedKeyPub, + D: bigFromBase10("32355588668219869544751561565313228297765464314098552250409557267371233892496951383426602439009993875125222579159850054973310859166139474359774543943714622292329487391199285040721944491839695981199720170366763547754915493640685849961780092241140181198779299712578774460837139360803883139311171713302987058393"), +} + +var encryptedKeyPriv = &PrivateKey{ + PublicKey: PublicKey{ + PubKeyAlgo: PubKeyAlgoRSA, + }, + PrivateKey: encryptedKeyRSAPriv, +} + +func TestDecryptingEncryptedKey(t *testing.T) { + const encryptedKeyHex = "c18c032a67d68660df41c70104005789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8" + const expectedKeyHex = "d930363f7e0308c333b9618617ea728963d8df993665ae7be1092d4926fd864b" + + p, err := Read(readerFromHex(encryptedKeyHex)) + if err != nil { + t.Errorf("error from Read: %s", err) + return + } + ek, ok := p.(*EncryptedKey) + if !ok { + t.Errorf("didn't parse an EncryptedKey, got %#v", p) + return + } + + if ek.KeyId != 0x2a67d68660df41c7 || ek.Algo != PubKeyAlgoRSA { + t.Errorf("unexpected EncryptedKey contents: %#v", ek) + return + } + + err = ek.Decrypt(encryptedKeyPriv, nil) + if err != nil { + t.Errorf("error from Decrypt: %s", err) + return + } + + if ek.CipherFunc != CipherAES256 { + t.Errorf("unexpected EncryptedKey contents: %#v", ek) + return + } + + keyHex := fmt.Sprintf("%x", ek.Key) + if keyHex != expectedKeyHex { + t.Errorf("bad key, got %s want %x", keyHex, expectedKeyHex) + } +} + +func TestEncryptingEncryptedKey(t *testing.T) { + key := []byte{1, 2, 3, 4} + const expectedKeyHex = "01020304" + const keyId = 42 + + pub := &PublicKey{ + PublicKey: &encryptedKeyPub, + KeyId: keyId, + PubKeyAlgo: PubKeyAlgoRSAEncryptOnly, + } + + buf := new(bytes.Buffer) + err := SerializeEncryptedKey(buf, pub, CipherAES128, key, nil) + if err != nil { + t.Errorf("error writing encrypted key packet: %s", err) + } + + p, err := Read(buf) + if err != nil { + t.Errorf("error from Read: %s", err) + return + } + ek, ok := p.(*EncryptedKey) + if !ok { + t.Errorf("didn't parse an EncryptedKey, got %#v", p) + return + } + + if ek.KeyId != keyId || ek.Algo != PubKeyAlgoRSAEncryptOnly { + t.Errorf("unexpected EncryptedKey contents: %#v", ek) + return + } + + err = ek.Decrypt(encryptedKeyPriv, nil) + if err != nil { + t.Errorf("error from Decrypt: %s", err) + return + } + + if ek.CipherFunc != CipherAES128 { + t.Errorf("unexpected EncryptedKey contents: %#v", ek) + return + } + + keyHex := fmt.Sprintf("%x", ek.Key) + if keyHex != expectedKeyHex { + t.Errorf("bad key, got %s want %x", keyHex, expectedKeyHex) + } +} + +func TestSerializingEncryptedKey(t *testing.T) { + const encryptedKeyHex = "c18c032a67d68660df41c70104005789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8" + + p, err := Read(readerFromHex(encryptedKeyHex)) + if err != nil { + t.Fatalf("error from Read: %s", err) + } + ek, ok := p.(*EncryptedKey) + if !ok { + t.Fatalf("didn't parse an EncryptedKey, got %#v", p) + } + + var buf bytes.Buffer + ek.Serialize(&buf) + + if bufHex := hex.EncodeToString(buf.Bytes()); bufHex != encryptedKeyHex { + t.Fatalf("serialization of encrypted key differed from original. Original was %s, but reserialized as %s", encryptedKeyHex, bufHex) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/literal.go b/vendor/golang.org/x/crypto/openpgp/packet/literal.go new file mode 100644 index 00000000..1a9ec6e5 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/literal.go @@ -0,0 +1,89 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "encoding/binary" + "io" +) + +// LiteralData represents an encrypted file. See RFC 4880, section 5.9. +type LiteralData struct { + IsBinary bool + FileName string + Time uint32 // Unix epoch time. Either creation time or modification time. 0 means undefined. + Body io.Reader +} + +// ForEyesOnly returns whether the contents of the LiteralData have been marked +// as especially sensitive. +func (l *LiteralData) ForEyesOnly() bool { + return l.FileName == "_CONSOLE" +} + +func (l *LiteralData) parse(r io.Reader) (err error) { + var buf [256]byte + + _, err = readFull(r, buf[:2]) + if err != nil { + return + } + + l.IsBinary = buf[0] == 'b' + fileNameLen := int(buf[1]) + + _, err = readFull(r, buf[:fileNameLen]) + if err != nil { + return + } + + l.FileName = string(buf[:fileNameLen]) + + _, err = readFull(r, buf[:4]) + if err != nil { + return + } + + l.Time = binary.BigEndian.Uint32(buf[:4]) + l.Body = r + return +} + +// SerializeLiteral serializes a literal data packet to w and returns a +// WriteCloser to which the data itself can be written and which MUST be closed +// on completion. The fileName is truncated to 255 bytes. +func SerializeLiteral(w io.WriteCloser, isBinary bool, fileName string, time uint32) (plaintext io.WriteCloser, err error) { + var buf [4]byte + buf[0] = 't' + if isBinary { + buf[0] = 'b' + } + if len(fileName) > 255 { + fileName = fileName[:255] + } + buf[1] = byte(len(fileName)) + + inner, err := serializeStreamHeader(w, packetTypeLiteralData) + if err != nil { + return + } + + _, err = inner.Write(buf[:2]) + if err != nil { + return + } + _, err = inner.Write([]byte(fileName)) + if err != nil { + return + } + binary.BigEndian.PutUint32(buf[:], time) + _, err = inner.Write(buf[:]) + if err != nil { + return + } + + plaintext = inner + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go b/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go new file mode 100644 index 00000000..ce2a33a5 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go @@ -0,0 +1,143 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// OpenPGP CFB Mode. http://tools.ietf.org/html/rfc4880#section-13.9 + +package packet + +import ( + "crypto/cipher" +) + +type ocfbEncrypter struct { + b cipher.Block + fre []byte + outUsed int +} + +// An OCFBResyncOption determines if the "resynchronization step" of OCFB is +// performed. +type OCFBResyncOption bool + +const ( + OCFBResync OCFBResyncOption = true + OCFBNoResync OCFBResyncOption = false +) + +// NewOCFBEncrypter returns a cipher.Stream which encrypts data with OpenPGP's +// cipher feedback mode using the given cipher.Block, and an initial amount of +// ciphertext. randData must be random bytes and be the same length as the +// cipher.Block's block size. Resync determines if the "resynchronization step" +// from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on +// this point. +func NewOCFBEncrypter(block cipher.Block, randData []byte, resync OCFBResyncOption) (cipher.Stream, []byte) { + blockSize := block.BlockSize() + if len(randData) != blockSize { + return nil, nil + } + + x := &ocfbEncrypter{ + b: block, + fre: make([]byte, blockSize), + outUsed: 0, + } + prefix := make([]byte, blockSize+2) + + block.Encrypt(x.fre, x.fre) + for i := 0; i < blockSize; i++ { + prefix[i] = randData[i] ^ x.fre[i] + } + + block.Encrypt(x.fre, prefix[:blockSize]) + prefix[blockSize] = x.fre[0] ^ randData[blockSize-2] + prefix[blockSize+1] = x.fre[1] ^ randData[blockSize-1] + + if resync { + block.Encrypt(x.fre, prefix[2:]) + } else { + x.fre[0] = prefix[blockSize] + x.fre[1] = prefix[blockSize+1] + x.outUsed = 2 + } + return x, prefix +} + +func (x *ocfbEncrypter) XORKeyStream(dst, src []byte) { + for i := 0; i < len(src); i++ { + if x.outUsed == len(x.fre) { + x.b.Encrypt(x.fre, x.fre) + x.outUsed = 0 + } + + x.fre[x.outUsed] ^= src[i] + dst[i] = x.fre[x.outUsed] + x.outUsed++ + } +} + +type ocfbDecrypter struct { + b cipher.Block + fre []byte + outUsed int +} + +// NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's +// cipher feedback mode using the given cipher.Block. Prefix must be the first +// blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's +// block size. If an incorrect key is detected then nil is returned. On +// successful exit, blockSize+2 bytes of decrypted data are written into +// prefix. Resync determines if the "resynchronization step" from RFC 4880, +// 13.9 step 7 is performed. Different parts of OpenPGP vary on this point. +func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream { + blockSize := block.BlockSize() + if len(prefix) != blockSize+2 { + return nil + } + + x := &ocfbDecrypter{ + b: block, + fre: make([]byte, blockSize), + outUsed: 0, + } + prefixCopy := make([]byte, len(prefix)) + copy(prefixCopy, prefix) + + block.Encrypt(x.fre, x.fre) + for i := 0; i < blockSize; i++ { + prefixCopy[i] ^= x.fre[i] + } + + block.Encrypt(x.fre, prefix[:blockSize]) + prefixCopy[blockSize] ^= x.fre[0] + prefixCopy[blockSize+1] ^= x.fre[1] + + if prefixCopy[blockSize-2] != prefixCopy[blockSize] || + prefixCopy[blockSize-1] != prefixCopy[blockSize+1] { + return nil + } + + if resync { + block.Encrypt(x.fre, prefix[2:]) + } else { + x.fre[0] = prefix[blockSize] + x.fre[1] = prefix[blockSize+1] + x.outUsed = 2 + } + copy(prefix, prefixCopy) + return x +} + +func (x *ocfbDecrypter) XORKeyStream(dst, src []byte) { + for i := 0; i < len(src); i++ { + if x.outUsed == len(x.fre) { + x.b.Encrypt(x.fre, x.fre) + x.outUsed = 0 + } + + c := src[i] + dst[i] = x.fre[x.outUsed] ^ src[i] + x.fre[x.outUsed] = c + x.outUsed++ + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/ocfb_test.go b/vendor/golang.org/x/crypto/openpgp/packet/ocfb_test.go new file mode 100644 index 00000000..91022c04 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/ocfb_test.go @@ -0,0 +1,46 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto/aes" + "crypto/rand" + "testing" +) + +var commonKey128 = []byte{0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c} + +func testOCFB(t *testing.T, resync OCFBResyncOption) { + block, err := aes.NewCipher(commonKey128) + if err != nil { + t.Error(err) + return + } + + plaintext := []byte("this is the plaintext, which is long enough to span several blocks.") + randData := make([]byte, block.BlockSize()) + rand.Reader.Read(randData) + ocfb, prefix := NewOCFBEncrypter(block, randData, resync) + ciphertext := make([]byte, len(plaintext)) + ocfb.XORKeyStream(ciphertext, plaintext) + + ocfbdec := NewOCFBDecrypter(block, prefix, resync) + if ocfbdec == nil { + t.Errorf("NewOCFBDecrypter failed (resync: %t)", resync) + return + } + plaintextCopy := make([]byte, len(plaintext)) + ocfbdec.XORKeyStream(plaintextCopy, ciphertext) + + if !bytes.Equal(plaintextCopy, plaintext) { + t.Errorf("got: %x, want: %x (resync: %t)", plaintextCopy, plaintext, resync) + } +} + +func TestOCFB(t *testing.T) { + testOCFB(t, OCFBNoResync) + testOCFB(t, OCFBResync) +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go b/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go new file mode 100644 index 00000000..17135033 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go @@ -0,0 +1,73 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto" + "encoding/binary" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/s2k" + "io" + "strconv" +) + +// OnePassSignature represents a one-pass signature packet. See RFC 4880, +// section 5.4. +type OnePassSignature struct { + SigType SignatureType + Hash crypto.Hash + PubKeyAlgo PublicKeyAlgorithm + KeyId uint64 + IsLast bool +} + +const onePassSignatureVersion = 3 + +func (ops *OnePassSignature) parse(r io.Reader) (err error) { + var buf [13]byte + + _, err = readFull(r, buf[:]) + if err != nil { + return + } + if buf[0] != onePassSignatureVersion { + err = errors.UnsupportedError("one-pass-signature packet version " + strconv.Itoa(int(buf[0]))) + } + + var ok bool + ops.Hash, ok = s2k.HashIdToHash(buf[2]) + if !ok { + return errors.UnsupportedError("hash function: " + strconv.Itoa(int(buf[2]))) + } + + ops.SigType = SignatureType(buf[1]) + ops.PubKeyAlgo = PublicKeyAlgorithm(buf[3]) + ops.KeyId = binary.BigEndian.Uint64(buf[4:12]) + ops.IsLast = buf[12] != 0 + return +} + +// Serialize marshals the given OnePassSignature to w. +func (ops *OnePassSignature) Serialize(w io.Writer) error { + var buf [13]byte + buf[0] = onePassSignatureVersion + buf[1] = uint8(ops.SigType) + var ok bool + buf[2], ok = s2k.HashToHashId(ops.Hash) + if !ok { + return errors.UnsupportedError("hash type: " + strconv.Itoa(int(ops.Hash))) + } + buf[3] = uint8(ops.PubKeyAlgo) + binary.BigEndian.PutUint64(buf[4:12], ops.KeyId) + if ops.IsLast { + buf[12] = 1 + } + + if err := serializeHeader(w, packetTypeOnePassSignature, len(buf)); err != nil { + return err + } + _, err := w.Write(buf[:]) + return err +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/opaque.go b/vendor/golang.org/x/crypto/openpgp/packet/opaque.go new file mode 100644 index 00000000..456d807f --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/opaque.go @@ -0,0 +1,162 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "io" + "io/ioutil" + + "golang.org/x/crypto/openpgp/errors" +) + +// OpaquePacket represents an OpenPGP packet as raw, unparsed data. This is +// useful for splitting and storing the original packet contents separately, +// handling unsupported packet types or accessing parts of the packet not yet +// implemented by this package. +type OpaquePacket struct { + // Packet type + Tag uint8 + // Reason why the packet was parsed opaquely + Reason error + // Binary contents of the packet data + Contents []byte +} + +func (op *OpaquePacket) parse(r io.Reader) (err error) { + op.Contents, err = ioutil.ReadAll(r) + return +} + +// Serialize marshals the packet to a writer in its original form, including +// the packet header. +func (op *OpaquePacket) Serialize(w io.Writer) (err error) { + err = serializeHeader(w, packetType(op.Tag), len(op.Contents)) + if err == nil { + _, err = w.Write(op.Contents) + } + return +} + +// Parse attempts to parse the opaque contents into a structure supported by +// this package. If the packet is not known then the result will be another +// OpaquePacket. +func (op *OpaquePacket) Parse() (p Packet, err error) { + hdr := bytes.NewBuffer(nil) + err = serializeHeader(hdr, packetType(op.Tag), len(op.Contents)) + if err != nil { + op.Reason = err + return op, err + } + p, err = Read(io.MultiReader(hdr, bytes.NewBuffer(op.Contents))) + if err != nil { + op.Reason = err + p = op + } + return +} + +// OpaqueReader reads OpaquePackets from an io.Reader. +type OpaqueReader struct { + r io.Reader +} + +func NewOpaqueReader(r io.Reader) *OpaqueReader { + return &OpaqueReader{r: r} +} + +// Read the next OpaquePacket. +func (or *OpaqueReader) Next() (op *OpaquePacket, err error) { + tag, _, contents, err := readHeader(or.r) + if err != nil { + return + } + op = &OpaquePacket{Tag: uint8(tag), Reason: err} + err = op.parse(contents) + if err != nil { + consumeAll(contents) + } + return +} + +// OpaqueSubpacket represents an unparsed OpenPGP subpacket, +// as found in signature and user attribute packets. +type OpaqueSubpacket struct { + SubType uint8 + Contents []byte +} + +// OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from +// their byte representation. +func OpaqueSubpackets(contents []byte) (result []*OpaqueSubpacket, err error) { + var ( + subHeaderLen int + subPacket *OpaqueSubpacket + ) + for len(contents) > 0 { + subHeaderLen, subPacket, err = nextSubpacket(contents) + if err != nil { + break + } + result = append(result, subPacket) + contents = contents[subHeaderLen+len(subPacket.Contents):] + } + return +} + +func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { + // RFC 4880, section 5.2.3.1 + var subLen uint32 + if len(contents) < 1 { + goto Truncated + } + subPacket = &OpaqueSubpacket{} + switch { + case contents[0] < 192: + subHeaderLen = 2 // 1 length byte, 1 subtype byte + if len(contents) < subHeaderLen { + goto Truncated + } + subLen = uint32(contents[0]) + contents = contents[1:] + case contents[0] < 255: + subHeaderLen = 3 // 2 length bytes, 1 subtype + if len(contents) < subHeaderLen { + goto Truncated + } + subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 + contents = contents[2:] + default: + subHeaderLen = 6 // 5 length bytes, 1 subtype + if len(contents) < subHeaderLen { + goto Truncated + } + subLen = uint32(contents[1])<<24 | + uint32(contents[2])<<16 | + uint32(contents[3])<<8 | + uint32(contents[4]) + contents = contents[5:] + } + if subLen > uint32(len(contents)) || subLen == 0 { + goto Truncated + } + subPacket.SubType = contents[0] + subPacket.Contents = contents[1:subLen] + return +Truncated: + err = errors.StructuralError("subpacket truncated") + return +} + +func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { + buf := make([]byte, 6) + n := serializeSubpacketLength(buf, len(osp.Contents)+1) + buf[n] = osp.SubType + if _, err = w.Write(buf[:n+1]); err != nil { + return + } + _, err = w.Write(osp.Contents) + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/opaque_test.go b/vendor/golang.org/x/crypto/openpgp/packet/opaque_test.go new file mode 100644 index 00000000..f27bbfe0 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/opaque_test.go @@ -0,0 +1,67 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/hex" + "io" + "testing" +) + +// Test packet.Read error handling in OpaquePacket.Parse, +// which attempts to re-read an OpaquePacket as a supported +// Packet type. +func TestOpaqueParseReason(t *testing.T) { + buf, err := hex.DecodeString(UnsupportedKeyHex) + if err != nil { + t.Fatal(err) + } + or := NewOpaqueReader(bytes.NewBuffer(buf)) + count := 0 + badPackets := 0 + var uid *UserId + for { + op, err := or.Next() + if err == io.EOF { + break + } else if err != nil { + t.Errorf("#%d: opaque read error: %v", count, err) + break + } + // try to parse opaque packet + p, err := op.Parse() + switch pkt := p.(type) { + case *UserId: + uid = pkt + case *OpaquePacket: + // If an OpaquePacket can't re-parse, packet.Read + // certainly had its reasons. + if pkt.Reason == nil { + t.Errorf("#%d: opaque packet, no reason", count) + } else { + badPackets++ + } + } + count++ + } + + const expectedBad = 3 + // Test post-conditions, make sure we actually parsed packets as expected. + if badPackets != expectedBad { + t.Errorf("unexpected # unparseable packets: %d (want %d)", badPackets, expectedBad) + } + if uid == nil { + t.Errorf("failed to find expected UID in unsupported keyring") + } else if uid.Id != "Armin M. Warda " { + t.Errorf("unexpected UID: %v", uid.Id) + } +} + +// This key material has public key and signature packet versions modified to +// an unsupported value (1), so that trying to parse the OpaquePacket to +// a typed packet will get an error. It also contains a GnuPG trust packet. +// (Created with: od -An -t x1 pubring.gpg | xargs | sed 's/ //g') +const UnsupportedKeyHex = `988d012e7a18a20000010400d6ac00d92b89c1f4396c243abb9b76d2e9673ad63483291fed88e22b82e255e441c078c6abbbf7d2d195e50b62eeaa915b85b0ec20c225ce2c64c167cacb6e711daf2e45da4a8356a059b8160e3b3628ac0dd8437b31f06d53d6e8ea4214d4a26406a6b63e1001406ef23e0bb3069fac9a99a91f77dfafd5de0f188a5da5e3c9000511b42741726d696e204d2e205761726461203c7761726461406e657068696c696d2e727568722e64653e8900950105102e8936c705d1eb399e58489901013f0e03ff5a0c4f421e34fcfa388129166420c08cd76987bcdec6f01bd0271459a85cc22048820dd4e44ac2c7d23908d540f54facf1b36b0d9c20488781ce9dca856531e76e2e846826e9951338020a03a09b57aa5faa82e9267458bd76105399885ac35af7dc1cbb6aaed7c39e1039f3b5beda2c0e916bd38560509bab81235d1a0ead83b0020000` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/packet.go b/vendor/golang.org/x/crypto/openpgp/packet/packet.go new file mode 100644 index 00000000..e2bde111 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/packet.go @@ -0,0 +1,539 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package packet implements parsing and serialization of OpenPGP packets, as +// specified in RFC 4880. +package packet // import "golang.org/x/crypto/openpgp/packet" + +import ( + "bufio" + "crypto/aes" + "crypto/cipher" + "crypto/des" + "golang.org/x/crypto/cast5" + "golang.org/x/crypto/openpgp/errors" + "io" + "math/big" +) + +// readFull is the same as io.ReadFull except that reading zero bytes returns +// ErrUnexpectedEOF rather than EOF. +func readFull(r io.Reader, buf []byte) (n int, err error) { + n, err = io.ReadFull(r, buf) + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + return +} + +// readLength reads an OpenPGP length from r. See RFC 4880, section 4.2.2. +func readLength(r io.Reader) (length int64, isPartial bool, err error) { + var buf [4]byte + _, err = readFull(r, buf[:1]) + if err != nil { + return + } + switch { + case buf[0] < 192: + length = int64(buf[0]) + case buf[0] < 224: + length = int64(buf[0]-192) << 8 + _, err = readFull(r, buf[0:1]) + if err != nil { + return + } + length += int64(buf[0]) + 192 + case buf[0] < 255: + length = int64(1) << (buf[0] & 0x1f) + isPartial = true + default: + _, err = readFull(r, buf[0:4]) + if err != nil { + return + } + length = int64(buf[0])<<24 | + int64(buf[1])<<16 | + int64(buf[2])<<8 | + int64(buf[3]) + } + return +} + +// partialLengthReader wraps an io.Reader and handles OpenPGP partial lengths. +// The continuation lengths are parsed and removed from the stream and EOF is +// returned at the end of the packet. See RFC 4880, section 4.2.2.4. +type partialLengthReader struct { + r io.Reader + remaining int64 + isPartial bool +} + +func (r *partialLengthReader) Read(p []byte) (n int, err error) { + for r.remaining == 0 { + if !r.isPartial { + return 0, io.EOF + } + r.remaining, r.isPartial, err = readLength(r.r) + if err != nil { + return 0, err + } + } + + toRead := int64(len(p)) + if toRead > r.remaining { + toRead = r.remaining + } + + n, err = r.r.Read(p[:int(toRead)]) + r.remaining -= int64(n) + if n < int(toRead) && err == io.EOF { + err = io.ErrUnexpectedEOF + } + return +} + +// partialLengthWriter writes a stream of data using OpenPGP partial lengths. +// See RFC 4880, section 4.2.2.4. +type partialLengthWriter struct { + w io.WriteCloser + lengthByte [1]byte +} + +func (w *partialLengthWriter) Write(p []byte) (n int, err error) { + for len(p) > 0 { + for power := uint(14); power < 32; power-- { + l := 1 << power + if len(p) >= l { + w.lengthByte[0] = 224 + uint8(power) + _, err = w.w.Write(w.lengthByte[:]) + if err != nil { + return + } + var m int + m, err = w.w.Write(p[:l]) + n += m + if err != nil { + return + } + p = p[l:] + break + } + } + } + return +} + +func (w *partialLengthWriter) Close() error { + w.lengthByte[0] = 0 + _, err := w.w.Write(w.lengthByte[:]) + if err != nil { + return err + } + return w.w.Close() +} + +// A spanReader is an io.LimitReader, but it returns ErrUnexpectedEOF if the +// underlying Reader returns EOF before the limit has been reached. +type spanReader struct { + r io.Reader + n int64 +} + +func (l *spanReader) Read(p []byte) (n int, err error) { + if l.n <= 0 { + return 0, io.EOF + } + if int64(len(p)) > l.n { + p = p[0:l.n] + } + n, err = l.r.Read(p) + l.n -= int64(n) + if l.n > 0 && err == io.EOF { + err = io.ErrUnexpectedEOF + } + return +} + +// readHeader parses a packet header and returns an io.Reader which will return +// the contents of the packet. See RFC 4880, section 4.2. +func readHeader(r io.Reader) (tag packetType, length int64, contents io.Reader, err error) { + var buf [4]byte + _, err = io.ReadFull(r, buf[:1]) + if err != nil { + return + } + if buf[0]&0x80 == 0 { + err = errors.StructuralError("tag byte does not have MSB set") + return + } + if buf[0]&0x40 == 0 { + // Old format packet + tag = packetType((buf[0] & 0x3f) >> 2) + lengthType := buf[0] & 3 + if lengthType == 3 { + length = -1 + contents = r + return + } + lengthBytes := 1 << lengthType + _, err = readFull(r, buf[0:lengthBytes]) + if err != nil { + return + } + for i := 0; i < lengthBytes; i++ { + length <<= 8 + length |= int64(buf[i]) + } + contents = &spanReader{r, length} + return + } + + // New format packet + tag = packetType(buf[0] & 0x3f) + length, isPartial, err := readLength(r) + if err != nil { + return + } + if isPartial { + contents = &partialLengthReader{ + remaining: length, + isPartial: true, + r: r, + } + length = -1 + } else { + contents = &spanReader{r, length} + } + return +} + +// serializeHeader writes an OpenPGP packet header to w. See RFC 4880, section +// 4.2. +func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { + var buf [6]byte + var n int + + buf[0] = 0x80 | 0x40 | byte(ptype) + if length < 192 { + buf[1] = byte(length) + n = 2 + } else if length < 8384 { + length -= 192 + buf[1] = 192 + byte(length>>8) + buf[2] = byte(length) + n = 3 + } else { + buf[1] = 255 + buf[2] = byte(length >> 24) + buf[3] = byte(length >> 16) + buf[4] = byte(length >> 8) + buf[5] = byte(length) + n = 6 + } + + _, err = w.Write(buf[:n]) + return +} + +// serializeStreamHeader writes an OpenPGP packet header to w where the +// length of the packet is unknown. It returns a io.WriteCloser which can be +// used to write the contents of the packet. See RFC 4880, section 4.2. +func serializeStreamHeader(w io.WriteCloser, ptype packetType) (out io.WriteCloser, err error) { + var buf [1]byte + buf[0] = 0x80 | 0x40 | byte(ptype) + _, err = w.Write(buf[:]) + if err != nil { + return + } + out = &partialLengthWriter{w: w} + return +} + +// Packet represents an OpenPGP packet. Users are expected to try casting +// instances of this interface to specific packet types. +type Packet interface { + parse(io.Reader) error +} + +// consumeAll reads from the given Reader until error, returning the number of +// bytes read. +func consumeAll(r io.Reader) (n int64, err error) { + var m int + var buf [1024]byte + + for { + m, err = r.Read(buf[:]) + n += int64(m) + if err == io.EOF { + err = nil + return + } + if err != nil { + return + } + } + + panic("unreachable") +} + +// packetType represents the numeric ids of the different OpenPGP packet types. See +// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-2 +type packetType uint8 + +const ( + packetTypeEncryptedKey packetType = 1 + packetTypeSignature packetType = 2 + packetTypeSymmetricKeyEncrypted packetType = 3 + packetTypeOnePassSignature packetType = 4 + packetTypePrivateKey packetType = 5 + packetTypePublicKey packetType = 6 + packetTypePrivateSubkey packetType = 7 + packetTypeCompressed packetType = 8 + packetTypeSymmetricallyEncrypted packetType = 9 + packetTypeLiteralData packetType = 11 + packetTypeUserId packetType = 13 + packetTypePublicSubkey packetType = 14 + packetTypeUserAttribute packetType = 17 + packetTypeSymmetricallyEncryptedMDC packetType = 18 +) + +// peekVersion detects the version of a public key packet about to +// be read. A bufio.Reader at the original position of the io.Reader +// is returned. +func peekVersion(r io.Reader) (bufr *bufio.Reader, ver byte, err error) { + bufr = bufio.NewReader(r) + var verBuf []byte + if verBuf, err = bufr.Peek(1); err != nil { + return + } + ver = verBuf[0] + return +} + +// Read reads a single OpenPGP packet from the given io.Reader. If there is an +// error parsing a packet, the whole packet is consumed from the input. +func Read(r io.Reader) (p Packet, err error) { + tag, _, contents, err := readHeader(r) + if err != nil { + return + } + + switch tag { + case packetTypeEncryptedKey: + p = new(EncryptedKey) + case packetTypeSignature: + var version byte + // Detect signature version + if contents, version, err = peekVersion(contents); err != nil { + return + } + if version < 4 { + p = new(SignatureV3) + } else { + p = new(Signature) + } + case packetTypeSymmetricKeyEncrypted: + p = new(SymmetricKeyEncrypted) + case packetTypeOnePassSignature: + p = new(OnePassSignature) + case packetTypePrivateKey, packetTypePrivateSubkey: + pk := new(PrivateKey) + if tag == packetTypePrivateSubkey { + pk.IsSubkey = true + } + p = pk + case packetTypePublicKey, packetTypePublicSubkey: + var version byte + if contents, version, err = peekVersion(contents); err != nil { + return + } + isSubkey := tag == packetTypePublicSubkey + if version < 4 { + p = &PublicKeyV3{IsSubkey: isSubkey} + } else { + p = &PublicKey{IsSubkey: isSubkey} + } + case packetTypeCompressed: + p = new(Compressed) + case packetTypeSymmetricallyEncrypted: + p = new(SymmetricallyEncrypted) + case packetTypeLiteralData: + p = new(LiteralData) + case packetTypeUserId: + p = new(UserId) + case packetTypeUserAttribute: + p = new(UserAttribute) + case packetTypeSymmetricallyEncryptedMDC: + se := new(SymmetricallyEncrypted) + se.MDC = true + p = se + default: + err = errors.UnknownPacketTypeError(tag) + } + if p != nil { + err = p.parse(contents) + } + if err != nil { + consumeAll(contents) + } + return +} + +// SignatureType represents the different semantic meanings of an OpenPGP +// signature. See RFC 4880, section 5.2.1. +type SignatureType uint8 + +const ( + SigTypeBinary SignatureType = 0 + SigTypeText = 1 + SigTypeGenericCert = 0x10 + SigTypePersonaCert = 0x11 + SigTypeCasualCert = 0x12 + SigTypePositiveCert = 0x13 + SigTypeSubkeyBinding = 0x18 + SigTypePrimaryKeyBinding = 0x19 + SigTypeDirectSignature = 0x1F + SigTypeKeyRevocation = 0x20 + SigTypeSubkeyRevocation = 0x28 +) + +// PublicKeyAlgorithm represents the different public key system specified for +// OpenPGP. See +// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-12 +type PublicKeyAlgorithm uint8 + +const ( + PubKeyAlgoRSA PublicKeyAlgorithm = 1 + PubKeyAlgoRSAEncryptOnly PublicKeyAlgorithm = 2 + PubKeyAlgoRSASignOnly PublicKeyAlgorithm = 3 + PubKeyAlgoElGamal PublicKeyAlgorithm = 16 + PubKeyAlgoDSA PublicKeyAlgorithm = 17 + // RFC 6637, Section 5. + PubKeyAlgoECDH PublicKeyAlgorithm = 18 + PubKeyAlgoECDSA PublicKeyAlgorithm = 19 +) + +// CanEncrypt returns true if it's possible to encrypt a message to a public +// key of the given type. +func (pka PublicKeyAlgorithm) CanEncrypt() bool { + switch pka { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal: + return true + } + return false +} + +// CanSign returns true if it's possible for a public key of the given type to +// sign a message. +func (pka PublicKeyAlgorithm) CanSign() bool { + switch pka { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: + return true + } + return false +} + +// CipherFunction represents the different block ciphers specified for OpenPGP. See +// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 +type CipherFunction uint8 + +const ( + Cipher3DES CipherFunction = 2 + CipherCAST5 CipherFunction = 3 + CipherAES128 CipherFunction = 7 + CipherAES192 CipherFunction = 8 + CipherAES256 CipherFunction = 9 +) + +// KeySize returns the key size, in bytes, of cipher. +func (cipher CipherFunction) KeySize() int { + switch cipher { + case Cipher3DES: + return 24 + case CipherCAST5: + return cast5.KeySize + case CipherAES128: + return 16 + case CipherAES192: + return 24 + case CipherAES256: + return 32 + } + return 0 +} + +// blockSize returns the block size, in bytes, of cipher. +func (cipher CipherFunction) blockSize() int { + switch cipher { + case Cipher3DES: + return des.BlockSize + case CipherCAST5: + return 8 + case CipherAES128, CipherAES192, CipherAES256: + return 16 + } + return 0 +} + +// new returns a fresh instance of the given cipher. +func (cipher CipherFunction) new(key []byte) (block cipher.Block) { + switch cipher { + case Cipher3DES: + block, _ = des.NewTripleDESCipher(key) + case CipherCAST5: + block, _ = cast5.NewCipher(key) + case CipherAES128, CipherAES192, CipherAES256: + block, _ = aes.NewCipher(key) + } + return +} + +// readMPI reads a big integer from r. The bit length returned is the bit +// length that was specified in r. This is preserved so that the integer can be +// reserialized exactly. +func readMPI(r io.Reader) (mpi []byte, bitLength uint16, err error) { + var buf [2]byte + _, err = readFull(r, buf[0:]) + if err != nil { + return + } + bitLength = uint16(buf[0])<<8 | uint16(buf[1]) + numBytes := (int(bitLength) + 7) / 8 + mpi = make([]byte, numBytes) + _, err = readFull(r, mpi) + return +} + +// mpiLength returns the length of the given *big.Int when serialized as an +// MPI. +func mpiLength(n *big.Int) (mpiLengthInBytes int) { + mpiLengthInBytes = 2 /* MPI length */ + mpiLengthInBytes += (n.BitLen() + 7) / 8 + return +} + +// writeMPI serializes a big integer to w. +func writeMPI(w io.Writer, bitLength uint16, mpiBytes []byte) (err error) { + _, err = w.Write([]byte{byte(bitLength >> 8), byte(bitLength)}) + if err == nil { + _, err = w.Write(mpiBytes) + } + return +} + +// writeBig serializes a *big.Int to w. +func writeBig(w io.Writer, i *big.Int) error { + return writeMPI(w, uint16(i.BitLen()), i.Bytes()) +} + +// CompressionAlgo Represents the different compression algorithms +// supported by OpenPGP (except for BZIP2, which is not currently +// supported). See Section 9.3 of RFC 4880. +type CompressionAlgo uint8 + +const ( + CompressionNone CompressionAlgo = 0 + CompressionZIP CompressionAlgo = 1 + CompressionZLIB CompressionAlgo = 2 +) diff --git a/vendor/golang.org/x/crypto/openpgp/packet/packet_test.go b/vendor/golang.org/x/crypto/openpgp/packet/packet_test.go new file mode 100644 index 00000000..1dab5c3d --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/packet_test.go @@ -0,0 +1,255 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/hex" + "fmt" + "golang.org/x/crypto/openpgp/errors" + "io" + "io/ioutil" + "testing" +) + +func TestReadFull(t *testing.T) { + var out [4]byte + + b := bytes.NewBufferString("foo") + n, err := readFull(b, out[:3]) + if n != 3 || err != nil { + t.Errorf("full read failed n:%d err:%s", n, err) + } + + b = bytes.NewBufferString("foo") + n, err = readFull(b, out[:4]) + if n != 3 || err != io.ErrUnexpectedEOF { + t.Errorf("partial read failed n:%d err:%s", n, err) + } + + b = bytes.NewBuffer(nil) + n, err = readFull(b, out[:3]) + if n != 0 || err != io.ErrUnexpectedEOF { + t.Errorf("empty read failed n:%d err:%s", n, err) + } +} + +func readerFromHex(s string) io.Reader { + data, err := hex.DecodeString(s) + if err != nil { + panic("readerFromHex: bad input") + } + return bytes.NewBuffer(data) +} + +var readLengthTests = []struct { + hexInput string + length int64 + isPartial bool + err error +}{ + {"", 0, false, io.ErrUnexpectedEOF}, + {"1f", 31, false, nil}, + {"c0", 0, false, io.ErrUnexpectedEOF}, + {"c101", 256 + 1 + 192, false, nil}, + {"e0", 1, true, nil}, + {"e1", 2, true, nil}, + {"e2", 4, true, nil}, + {"ff", 0, false, io.ErrUnexpectedEOF}, + {"ff00", 0, false, io.ErrUnexpectedEOF}, + {"ff0000", 0, false, io.ErrUnexpectedEOF}, + {"ff000000", 0, false, io.ErrUnexpectedEOF}, + {"ff00000000", 0, false, nil}, + {"ff01020304", 16909060, false, nil}, +} + +func TestReadLength(t *testing.T) { + for i, test := range readLengthTests { + length, isPartial, err := readLength(readerFromHex(test.hexInput)) + if test.err != nil { + if err != test.err { + t.Errorf("%d: expected different error got:%s want:%s", i, err, test.err) + } + continue + } + if err != nil { + t.Errorf("%d: unexpected error: %s", i, err) + continue + } + if length != test.length || isPartial != test.isPartial { + t.Errorf("%d: bad result got:(%d,%t) want:(%d,%t)", i, length, isPartial, test.length, test.isPartial) + } + } +} + +var partialLengthReaderTests = []struct { + hexInput string + err error + hexOutput string +}{ + {"e0", io.ErrUnexpectedEOF, ""}, + {"e001", io.ErrUnexpectedEOF, ""}, + {"e0010102", nil, "0102"}, + {"ff00000000", nil, ""}, + {"e10102e1030400", nil, "01020304"}, + {"e101", io.ErrUnexpectedEOF, ""}, +} + +func TestPartialLengthReader(t *testing.T) { + for i, test := range partialLengthReaderTests { + r := &partialLengthReader{readerFromHex(test.hexInput), 0, true} + out, err := ioutil.ReadAll(r) + if test.err != nil { + if err != test.err { + t.Errorf("%d: expected different error got:%s want:%s", i, err, test.err) + } + continue + } + if err != nil { + t.Errorf("%d: unexpected error: %s", i, err) + continue + } + + got := fmt.Sprintf("%x", out) + if got != test.hexOutput { + t.Errorf("%d: got:%s want:%s", i, test.hexOutput, got) + } + } +} + +var readHeaderTests = []struct { + hexInput string + structuralError bool + unexpectedEOF bool + tag int + length int64 + hexOutput string +}{ + {"", false, false, 0, 0, ""}, + {"7f", true, false, 0, 0, ""}, + + // Old format headers + {"80", false, true, 0, 0, ""}, + {"8001", false, true, 0, 1, ""}, + {"800102", false, false, 0, 1, "02"}, + {"81000102", false, false, 0, 1, "02"}, + {"820000000102", false, false, 0, 1, "02"}, + {"860000000102", false, false, 1, 1, "02"}, + {"83010203", false, false, 0, -1, "010203"}, + + // New format headers + {"c0", false, true, 0, 0, ""}, + {"c000", false, false, 0, 0, ""}, + {"c00102", false, false, 0, 1, "02"}, + {"c0020203", false, false, 0, 2, "0203"}, + {"c00202", false, true, 0, 2, ""}, + {"c3020203", false, false, 3, 2, "0203"}, +} + +func TestReadHeader(t *testing.T) { + for i, test := range readHeaderTests { + tag, length, contents, err := readHeader(readerFromHex(test.hexInput)) + if test.structuralError { + if _, ok := err.(errors.StructuralError); ok { + continue + } + t.Errorf("%d: expected StructuralError, got:%s", i, err) + continue + } + if err != nil { + if len(test.hexInput) == 0 && err == io.EOF { + continue + } + if !test.unexpectedEOF || err != io.ErrUnexpectedEOF { + t.Errorf("%d: unexpected error from readHeader: %s", i, err) + } + continue + } + if int(tag) != test.tag || length != test.length { + t.Errorf("%d: got:(%d,%d) want:(%d,%d)", i, int(tag), length, test.tag, test.length) + continue + } + + body, err := ioutil.ReadAll(contents) + if err != nil { + if !test.unexpectedEOF || err != io.ErrUnexpectedEOF { + t.Errorf("%d: unexpected error from contents: %s", i, err) + } + continue + } + if test.unexpectedEOF { + t.Errorf("%d: expected ErrUnexpectedEOF from contents but got no error", i) + continue + } + got := fmt.Sprintf("%x", body) + if got != test.hexOutput { + t.Errorf("%d: got:%s want:%s", i, got, test.hexOutput) + } + } +} + +func TestSerializeHeader(t *testing.T) { + tag := packetTypePublicKey + lengths := []int{0, 1, 2, 64, 192, 193, 8000, 8384, 8385, 10000} + + for _, length := range lengths { + buf := bytes.NewBuffer(nil) + serializeHeader(buf, tag, length) + tag2, length2, _, err := readHeader(buf) + if err != nil { + t.Errorf("length %d, err: %s", length, err) + } + if tag2 != tag { + t.Errorf("length %d, tag incorrect (got %d, want %d)", length, tag2, tag) + } + if int(length2) != length { + t.Errorf("length %d, length incorrect (got %d)", length, length2) + } + } +} + +func TestPartialLengths(t *testing.T) { + buf := bytes.NewBuffer(nil) + w := new(partialLengthWriter) + w.w = noOpCloser{buf} + + const maxChunkSize = 64 + + var b [maxChunkSize]byte + var n uint8 + for l := 1; l <= maxChunkSize; l++ { + for i := 0; i < l; i++ { + b[i] = n + n++ + } + m, err := w.Write(b[:l]) + if m != l { + t.Errorf("short write got: %d want: %d", m, l) + } + if err != nil { + t.Errorf("error from write: %s", err) + } + } + w.Close() + + want := (maxChunkSize * (maxChunkSize + 1)) / 2 + copyBuf := bytes.NewBuffer(nil) + r := &partialLengthReader{buf, 0, true} + m, err := io.Copy(copyBuf, r) + if m != int64(want) { + t.Errorf("short copy got: %d want: %d", m, want) + } + if err != nil { + t.Errorf("error from copy: %s", err) + } + + copyBytes := copyBuf.Bytes() + for i := 0; i < want; i++ { + if copyBytes[i] != uint8(i) { + t.Errorf("bad pattern in copy at %d", i) + break + } + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go new file mode 100644 index 00000000..34734cc6 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go @@ -0,0 +1,380 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "crypto/cipher" + "crypto/dsa" + "crypto/ecdsa" + "crypto/rsa" + "crypto/sha1" + "io" + "io/ioutil" + "math/big" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/elgamal" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/s2k" +) + +// PrivateKey represents a possibly encrypted private key. See RFC 4880, +// section 5.5.3. +type PrivateKey struct { + PublicKey + Encrypted bool // if true then the private key is unavailable until Decrypt has been called. + encryptedData []byte + cipher CipherFunction + s2k func(out, in []byte) + PrivateKey interface{} // An *{rsa|dsa|ecdsa}.PrivateKey or a crypto.Signer. + sha1Checksum bool + iv []byte +} + +func NewRSAPrivateKey(currentTime time.Time, priv *rsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewRSAPublicKey(currentTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewDSAPrivateKey(currentTime time.Time, priv *dsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewDSAPublicKey(currentTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewElGamalPrivateKey(currentTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewElGamalPublicKey(currentTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewECDSAPrivateKey(currentTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewECDSAPublicKey(currentTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +// NewSignerPrivateKey creates a sign-only PrivateKey from a crypto.Signer that +// implements RSA or ECDSA. +func NewSignerPrivateKey(currentTime time.Time, signer crypto.Signer) *PrivateKey { + pk := new(PrivateKey) + switch pubkey := signer.Public().(type) { + case rsa.PublicKey: + pk.PublicKey = *NewRSAPublicKey(currentTime, &pubkey) + pk.PubKeyAlgo = PubKeyAlgoRSASignOnly + case ecdsa.PublicKey: + pk.PublicKey = *NewECDSAPublicKey(currentTime, &pubkey) + default: + panic("openpgp: unknown crypto.Signer type in NewSignerPrivateKey") + } + pk.PrivateKey = signer + return pk +} + +func (pk *PrivateKey) parse(r io.Reader) (err error) { + err = (&pk.PublicKey).parse(r) + if err != nil { + return + } + var buf [1]byte + _, err = readFull(r, buf[:]) + if err != nil { + return + } + + s2kType := buf[0] + + switch s2kType { + case 0: + pk.s2k = nil + pk.Encrypted = false + case 254, 255: + _, err = readFull(r, buf[:]) + if err != nil { + return + } + pk.cipher = CipherFunction(buf[0]) + pk.Encrypted = true + pk.s2k, err = s2k.Parse(r) + if err != nil { + return + } + if s2kType == 254 { + pk.sha1Checksum = true + } + default: + return errors.UnsupportedError("deprecated s2k function in private key") + } + + if pk.Encrypted { + blockSize := pk.cipher.blockSize() + if blockSize == 0 { + return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) + } + pk.iv = make([]byte, blockSize) + _, err = readFull(r, pk.iv) + if err != nil { + return + } + } + + pk.encryptedData, err = ioutil.ReadAll(r) + if err != nil { + return + } + + if !pk.Encrypted { + return pk.parsePrivateKey(pk.encryptedData) + } + + return +} + +func mod64kHash(d []byte) uint16 { + var h uint16 + for _, b := range d { + h += uint16(b) + } + return h +} + +func (pk *PrivateKey) Serialize(w io.Writer) (err error) { + // TODO(agl): support encrypted private keys + buf := bytes.NewBuffer(nil) + err = pk.PublicKey.serializeWithoutHeaders(buf) + if err != nil { + return + } + buf.WriteByte(0 /* no encryption */) + + privateKeyBuf := bytes.NewBuffer(nil) + + switch priv := pk.PrivateKey.(type) { + case *rsa.PrivateKey: + err = serializeRSAPrivateKey(privateKeyBuf, priv) + case *dsa.PrivateKey: + err = serializeDSAPrivateKey(privateKeyBuf, priv) + case *elgamal.PrivateKey: + err = serializeElGamalPrivateKey(privateKeyBuf, priv) + case *ecdsa.PrivateKey: + err = serializeECDSAPrivateKey(privateKeyBuf, priv) + default: + err = errors.InvalidArgumentError("unknown private key type") + } + if err != nil { + return + } + + ptype := packetTypePrivateKey + contents := buf.Bytes() + privateKeyBytes := privateKeyBuf.Bytes() + if pk.IsSubkey { + ptype = packetTypePrivateSubkey + } + err = serializeHeader(w, ptype, len(contents)+len(privateKeyBytes)+2) + if err != nil { + return + } + _, err = w.Write(contents) + if err != nil { + return + } + _, err = w.Write(privateKeyBytes) + if err != nil { + return + } + + checksum := mod64kHash(privateKeyBytes) + var checksumBytes [2]byte + checksumBytes[0] = byte(checksum >> 8) + checksumBytes[1] = byte(checksum) + _, err = w.Write(checksumBytes[:]) + + return +} + +func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { + err := writeBig(w, priv.D) + if err != nil { + return err + } + err = writeBig(w, priv.Primes[1]) + if err != nil { + return err + } + err = writeBig(w, priv.Primes[0]) + if err != nil { + return err + } + return writeBig(w, priv.Precomputed.Qinv) +} + +func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { + return writeBig(w, priv.X) +} + +func serializeElGamalPrivateKey(w io.Writer, priv *elgamal.PrivateKey) error { + return writeBig(w, priv.X) +} + +func serializeECDSAPrivateKey(w io.Writer, priv *ecdsa.PrivateKey) error { + return writeBig(w, priv.D) +} + +// Decrypt decrypts an encrypted private key using a passphrase. +func (pk *PrivateKey) Decrypt(passphrase []byte) error { + if !pk.Encrypted { + return nil + } + + key := make([]byte, pk.cipher.KeySize()) + pk.s2k(key, passphrase) + block := pk.cipher.new(key) + cfb := cipher.NewCFBDecrypter(block, pk.iv) + + data := make([]byte, len(pk.encryptedData)) + cfb.XORKeyStream(data, pk.encryptedData) + + if pk.sha1Checksum { + if len(data) < sha1.Size { + return errors.StructuralError("truncated private key data") + } + h := sha1.New() + h.Write(data[:len(data)-sha1.Size]) + sum := h.Sum(nil) + if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { + return errors.StructuralError("private key checksum failure") + } + data = data[:len(data)-sha1.Size] + } else { + if len(data) < 2 { + return errors.StructuralError("truncated private key data") + } + var sum uint16 + for i := 0; i < len(data)-2; i++ { + sum += uint16(data[i]) + } + if data[len(data)-2] != uint8(sum>>8) || + data[len(data)-1] != uint8(sum) { + return errors.StructuralError("private key checksum failure") + } + data = data[:len(data)-2] + } + + return pk.parsePrivateKey(data) +} + +func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { + switch pk.PublicKey.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: + return pk.parseRSAPrivateKey(data) + case PubKeyAlgoDSA: + return pk.parseDSAPrivateKey(data) + case PubKeyAlgoElGamal: + return pk.parseElGamalPrivateKey(data) + case PubKeyAlgoECDSA: + return pk.parseECDSAPrivateKey(data) + } + panic("impossible") +} + +func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { + rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) + rsaPriv := new(rsa.PrivateKey) + rsaPriv.PublicKey = *rsaPub + + buf := bytes.NewBuffer(data) + d, _, err := readMPI(buf) + if err != nil { + return + } + p, _, err := readMPI(buf) + if err != nil { + return + } + q, _, err := readMPI(buf) + if err != nil { + return + } + + rsaPriv.D = new(big.Int).SetBytes(d) + rsaPriv.Primes = make([]*big.Int, 2) + rsaPriv.Primes[0] = new(big.Int).SetBytes(p) + rsaPriv.Primes[1] = new(big.Int).SetBytes(q) + if err := rsaPriv.Validate(); err != nil { + return err + } + rsaPriv.Precompute() + pk.PrivateKey = rsaPriv + pk.Encrypted = false + pk.encryptedData = nil + + return nil +} + +func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { + dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) + dsaPriv := new(dsa.PrivateKey) + dsaPriv.PublicKey = *dsaPub + + buf := bytes.NewBuffer(data) + x, _, err := readMPI(buf) + if err != nil { + return + } + + dsaPriv.X = new(big.Int).SetBytes(x) + pk.PrivateKey = dsaPriv + pk.Encrypted = false + pk.encryptedData = nil + + return nil +} + +func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { + pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) + priv := new(elgamal.PrivateKey) + priv.PublicKey = *pub + + buf := bytes.NewBuffer(data) + x, _, err := readMPI(buf) + if err != nil { + return + } + + priv.X = new(big.Int).SetBytes(x) + pk.PrivateKey = priv + pk.Encrypted = false + pk.encryptedData = nil + + return nil +} + +func (pk *PrivateKey) parseECDSAPrivateKey(data []byte) (err error) { + ecdsaPub := pk.PublicKey.PublicKey.(*ecdsa.PublicKey) + + buf := bytes.NewBuffer(data) + d, _, err := readMPI(buf) + if err != nil { + return + } + + pk.PrivateKey = &ecdsa.PrivateKey{ + PublicKey: *ecdsaPub, + D: new(big.Int).SetBytes(d), + } + pk.Encrypted = false + pk.encryptedData = nil + + return nil +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/private_key_test.go b/vendor/golang.org/x/crypto/openpgp/packet/private_key_test.go new file mode 100644 index 00000000..c16ef78a --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/private_key_test.go @@ -0,0 +1,270 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/hex" + "hash" + "io" + "testing" + "time" +) + +var privateKeyTests = []struct { + privateKeyHex string + creationTime time.Time +}{ + { + privKeyRSAHex, + time.Unix(0x4cc349a8, 0), + }, + { + privKeyElGamalHex, + time.Unix(0x4df9ee1a, 0), + }, +} + +func TestPrivateKeyRead(t *testing.T) { + for i, test := range privateKeyTests { + packet, err := Read(readerFromHex(test.privateKeyHex)) + if err != nil { + t.Errorf("#%d: failed to parse: %s", i, err) + continue + } + + privKey := packet.(*PrivateKey) + + if !privKey.Encrypted { + t.Errorf("#%d: private key isn't encrypted", i) + continue + } + + err = privKey.Decrypt([]byte("wrong password")) + if err == nil { + t.Errorf("#%d: decrypted with incorrect key", i) + continue + } + + err = privKey.Decrypt([]byte("testing")) + if err != nil { + t.Errorf("#%d: failed to decrypt: %s", i, err) + continue + } + + if !privKey.CreationTime.Equal(test.creationTime) || privKey.Encrypted { + t.Errorf("#%d: bad result, got: %#v", i, privKey) + } + } +} + +func populateHash(hashFunc crypto.Hash, msg []byte) (hash.Hash, error) { + h := hashFunc.New() + if _, err := h.Write(msg); err != nil { + return nil, err + } + return h, nil +} + +func TestRSAPrivateKey(t *testing.T) { + privKeyDER, _ := hex.DecodeString(pkcs1PrivKeyHex) + rsaPriv, err := x509.ParsePKCS1PrivateKey(privKeyDER) + if err != nil { + t.Fatal(err) + } + + var buf bytes.Buffer + if err := NewRSAPrivateKey(time.Now(), rsaPriv).Serialize(&buf); err != nil { + t.Fatal(err) + } + + p, err := Read(&buf) + if err != nil { + t.Fatal(err) + } + + priv, ok := p.(*PrivateKey) + if !ok { + t.Fatal("didn't parse private key") + } + + sig := &Signature{ + PubKeyAlgo: PubKeyAlgoRSA, + Hash: crypto.SHA256, + } + msg := []byte("Hello World!") + + h, err := populateHash(sig.Hash, msg) + if err != nil { + t.Fatal(err) + } + if err := sig.Sign(h, priv, nil); err != nil { + t.Fatal(err) + } + + if h, err = populateHash(sig.Hash, msg); err != nil { + t.Fatal(err) + } + if err := priv.VerifySignature(h, sig); err != nil { + t.Fatal(err) + } +} + +func TestECDSAPrivateKey(t *testing.T) { + ecdsaPriv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + + var buf bytes.Buffer + if err := NewECDSAPrivateKey(time.Now(), ecdsaPriv).Serialize(&buf); err != nil { + t.Fatal(err) + } + + p, err := Read(&buf) + if err != nil { + t.Fatal(err) + } + + priv, ok := p.(*PrivateKey) + if !ok { + t.Fatal("didn't parse private key") + } + + sig := &Signature{ + PubKeyAlgo: PubKeyAlgoECDSA, + Hash: crypto.SHA256, + } + msg := []byte("Hello World!") + + h, err := populateHash(sig.Hash, msg) + if err != nil { + t.Fatal(err) + } + if err := sig.Sign(h, priv, nil); err != nil { + t.Fatal(err) + } + + if h, err = populateHash(sig.Hash, msg); err != nil { + t.Fatal(err) + } + if err := priv.VerifySignature(h, sig); err != nil { + t.Fatal(err) + } +} + +type rsaSigner struct { + priv *rsa.PrivateKey +} + +func (s *rsaSigner) Public() crypto.PublicKey { + return s.priv.PublicKey +} + +func (s *rsaSigner) Sign(rand io.Reader, msg []byte, opts crypto.SignerOpts) ([]byte, error) { + return s.priv.Sign(rand, msg, opts) +} + +func TestRSASignerPrivateKey(t *testing.T) { + rsaPriv, err := rsa.GenerateKey(rand.Reader, 1024) + if err != nil { + t.Fatal(err) + } + + priv := NewSignerPrivateKey(time.Now(), &rsaSigner{rsaPriv}) + + if priv.PubKeyAlgo != PubKeyAlgoRSASignOnly { + t.Fatal("NewSignerPrivateKey should have made a sign-only RSA private key") + } + + sig := &Signature{ + PubKeyAlgo: PubKeyAlgoRSASignOnly, + Hash: crypto.SHA256, + } + msg := []byte("Hello World!") + + h, err := populateHash(sig.Hash, msg) + if err != nil { + t.Fatal(err) + } + if err := sig.Sign(h, priv, nil); err != nil { + t.Fatal(err) + } + + if h, err = populateHash(sig.Hash, msg); err != nil { + t.Fatal(err) + } + if err := priv.VerifySignature(h, sig); err != nil { + t.Fatal(err) + } +} + +type ecdsaSigner struct { + priv *ecdsa.PrivateKey +} + +func (s *ecdsaSigner) Public() crypto.PublicKey { + return s.priv.PublicKey +} + +func (s *ecdsaSigner) Sign(rand io.Reader, msg []byte, opts crypto.SignerOpts) ([]byte, error) { + return s.priv.Sign(rand, msg, opts) +} + +func TestECDSASignerPrivateKey(t *testing.T) { + ecdsaPriv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + + priv := NewSignerPrivateKey(time.Now(), &ecdsaSigner{ecdsaPriv}) + + if priv.PubKeyAlgo != PubKeyAlgoECDSA { + t.Fatal("NewSignerPrivateKey should have made a ECSDA private key") + } + + sig := &Signature{ + PubKeyAlgo: PubKeyAlgoECDSA, + Hash: crypto.SHA256, + } + msg := []byte("Hello World!") + + h, err := populateHash(sig.Hash, msg) + if err != nil { + t.Fatal(err) + } + if err := sig.Sign(h, priv, nil); err != nil { + t.Fatal(err) + } + + if h, err = populateHash(sig.Hash, msg); err != nil { + t.Fatal(err) + } + if err := priv.VerifySignature(h, sig); err != nil { + t.Fatal(err) + } +} + +func TestIssue11505(t *testing.T) { + // parsing a rsa private key with p or q == 1 used to panic due to a divide by zero + _, _ = Read(readerFromHex("9c3004303030300100000011303030000000000000010130303030303030303030303030303030303030303030303030303030303030303030303030303030303030")) +} + +// Generated with `gpg --export-secret-keys "Test Key 2"` +const privKeyRSAHex = "9501fe044cc349a8010400b70ca0010e98c090008d45d1ee8f9113bd5861fd57b88bacb7c68658747663f1e1a3b5a98f32fda6472373c024b97359cd2efc88ff60f77751adfbf6af5e615e6a1408cfad8bf0cea30b0d5f53aa27ad59089ba9b15b7ebc2777a25d7b436144027e3bcd203909f147d0e332b240cf63d3395f5dfe0df0a6c04e8655af7eacdf0011010001fe0303024a252e7d475fd445607de39a265472aa74a9320ba2dac395faa687e9e0336aeb7e9a7397e511b5afd9dc84557c80ac0f3d4d7bfec5ae16f20d41c8c84a04552a33870b930420e230e179564f6d19bb153145e76c33ae993886c388832b0fa042ddda7f133924f3854481533e0ede31d51278c0519b29abc3bf53da673e13e3e1214b52413d179d7f66deee35cac8eacb060f78379d70ef4af8607e68131ff529439668fc39c9ce6dfef8a5ac234d234802cbfb749a26107db26406213ae5c06d4673253a3cbee1fcbae58d6ab77e38d6e2c0e7c6317c48e054edadb5a40d0d48acb44643d998139a8a66bb820be1f3f80185bc777d14b5954b60effe2448a036d565c6bc0b915fcea518acdd20ab07bc1529f561c58cd044f723109b93f6fd99f876ff891d64306b5d08f48bab59f38695e9109c4dec34013ba3153488ce070268381ba923ee1eb77125b36afcb4347ec3478c8f2735b06ef17351d872e577fa95d0c397c88c71b59629a36aec" + +// Generated by `gpg --export-secret-keys` followed by a manual extraction of +// the ElGamal subkey from the packets. +const privKeyElGamalHex = "9d0157044df9ee1a100400eb8e136a58ec39b582629cdadf830bc64e0a94ed8103ca8bb247b27b11b46d1d25297ef4bcc3071785ba0c0bedfe89eabc5287fcc0edf81ab5896c1c8e4b20d27d79813c7aede75320b33eaeeaa586edc00fd1036c10133e6ba0ff277245d0d59d04b2b3421b7244aca5f4a8d870c6f1c1fbff9e1c26699a860b9504f35ca1d700030503fd1ededd3b840795be6d9ccbe3c51ee42e2f39233c432b831ddd9c4e72b7025a819317e47bf94f9ee316d7273b05d5fcf2999c3a681f519b1234bbfa6d359b4752bd9c3f77d6b6456cde152464763414ca130f4e91d91041432f90620fec0e6d6b5116076c2985d5aeaae13be492b9b329efcaf7ee25120159a0a30cd976b42d7afe030302dae7eb80db744d4960c4df930d57e87fe81412eaace9f900e6c839817a614ddb75ba6603b9417c33ea7b6c93967dfa2bcff3fa3c74a5ce2c962db65b03aece14c96cbd0038fc" + +// pkcs1PrivKeyHex is a PKCS#1, RSA private key. +// Generated by `openssl genrsa 1024 | openssl rsa -outform DER | xxd -p` +const pkcs1PrivKeyHex = "3082025d02010002818100e98edfa1c3b35884a54d0b36a6a603b0290fa85e49e30fa23fc94fef9c6790bc4849928607aa48d809da326fb42a969d06ad756b98b9c1a90f5d4a2b6d0ac05953c97f4da3120164a21a679793ce181c906dc01d235cc085ddcdf6ea06c389b6ab8885dfd685959e693138856a68a7e5db263337ff82a088d583a897cf2d59e9020301000102818100b6d5c9eb70b02d5369b3ee5b520a14490b5bde8a317d36f7e4c74b7460141311d1e5067735f8f01d6f5908b2b96fbd881f7a1ab9a84d82753e39e19e2d36856be960d05ac9ef8e8782ea1b6d65aee28fdfe1d61451e8cff0adfe84322f12cf455028b581cf60eb9e0e140ba5d21aeba6c2634d7c65318b9a665fc01c3191ca21024100fa5e818da3705b0fa33278bb28d4b6f6050388af2d4b75ec9375dd91ccf2e7d7068086a8b82a8f6282e4fbbdb8a7f2622eb97295249d87acea7f5f816f54d347024100eecf9406d7dc49cdfb95ab1eff4064de84c7a30f64b2798936a0d2018ba9eb52e4b636f82e96c49cc63b80b675e91e40d1b2e4017d4b9adaf33ab3d9cf1c214f024100c173704ace742c082323066226a4655226819a85304c542b9dacbeacbf5d1881ee863485fcf6f59f3a604f9b42289282067447f2b13dfeed3eab7851fc81e0550240741fc41f3fc002b382eed8730e33c5d8de40256e4accee846667f536832f711ab1d4590e7db91a8a116ac5bff3be13d3f9243ff2e976662aa9b395d907f8e9c9024046a5696c9ef882363e06c9fa4e2f5b580906452befba03f4a99d0f873697ef1f851d2226ca7934b30b7c3e80cb634a67172bbbf4781735fe3e09263e2dd723e7" diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key.go new file mode 100644 index 00000000..c769933c --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/public_key.go @@ -0,0 +1,750 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "crypto/sha1" + _ "crypto/sha256" + _ "crypto/sha512" + "encoding/binary" + "fmt" + "hash" + "io" + "math/big" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/elgamal" + "golang.org/x/crypto/openpgp/errors" +) + +var ( + // NIST curve P-256 + oidCurveP256 []byte = []byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07} + // NIST curve P-384 + oidCurveP384 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x22} + // NIST curve P-521 + oidCurveP521 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x23} +) + +const maxOIDLength = 8 + +// ecdsaKey stores the algorithm-specific fields for ECDSA keys. +// as defined in RFC 6637, Section 9. +type ecdsaKey struct { + // oid contains the OID byte sequence identifying the elliptic curve used + oid []byte + // p contains the elliptic curve point that represents the public key + p parsedMPI +} + +// parseOID reads the OID for the curve as defined in RFC 6637, Section 9. +func parseOID(r io.Reader) (oid []byte, err error) { + buf := make([]byte, maxOIDLength) + if _, err = readFull(r, buf[:1]); err != nil { + return + } + oidLen := buf[0] + if int(oidLen) > len(buf) { + err = errors.UnsupportedError("invalid oid length: " + strconv.Itoa(int(oidLen))) + return + } + oid = buf[:oidLen] + _, err = readFull(r, oid) + return +} + +func (f *ecdsaKey) parse(r io.Reader) (err error) { + if f.oid, err = parseOID(r); err != nil { + return err + } + f.p.bytes, f.p.bitLength, err = readMPI(r) + return +} + +func (f *ecdsaKey) serialize(w io.Writer) (err error) { + buf := make([]byte, maxOIDLength+1) + buf[0] = byte(len(f.oid)) + copy(buf[1:], f.oid) + if _, err = w.Write(buf[:len(f.oid)+1]); err != nil { + return + } + return writeMPIs(w, f.p) +} + +func (f *ecdsaKey) newECDSA() (*ecdsa.PublicKey, error) { + var c elliptic.Curve + if bytes.Equal(f.oid, oidCurveP256) { + c = elliptic.P256() + } else if bytes.Equal(f.oid, oidCurveP384) { + c = elliptic.P384() + } else if bytes.Equal(f.oid, oidCurveP521) { + c = elliptic.P521() + } else { + return nil, errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", f.oid)) + } + x, y := elliptic.Unmarshal(c, f.p.bytes) + if x == nil { + return nil, errors.UnsupportedError("failed to parse EC point") + } + return &ecdsa.PublicKey{Curve: c, X: x, Y: y}, nil +} + +func (f *ecdsaKey) byteLen() int { + return 1 + len(f.oid) + 2 + len(f.p.bytes) +} + +type kdfHashFunction byte +type kdfAlgorithm byte + +// ecdhKdf stores key derivation function parameters +// used for ECDH encryption. See RFC 6637, Section 9. +type ecdhKdf struct { + KdfHash kdfHashFunction + KdfAlgo kdfAlgorithm +} + +func (f *ecdhKdf) parse(r io.Reader) (err error) { + buf := make([]byte, 1) + if _, err = readFull(r, buf); err != nil { + return + } + kdfLen := int(buf[0]) + if kdfLen < 3 { + return errors.UnsupportedError("Unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) + } + buf = make([]byte, kdfLen) + if _, err = readFull(r, buf); err != nil { + return + } + reserved := int(buf[0]) + f.KdfHash = kdfHashFunction(buf[1]) + f.KdfAlgo = kdfAlgorithm(buf[2]) + if reserved != 0x01 { + return errors.UnsupportedError("Unsupported KDF reserved field: " + strconv.Itoa(reserved)) + } + return +} + +func (f *ecdhKdf) serialize(w io.Writer) (err error) { + buf := make([]byte, 4) + // See RFC 6637, Section 9, Algorithm-Specific Fields for ECDH keys. + buf[0] = byte(0x03) // Length of the following fields + buf[1] = byte(0x01) // Reserved for future extensions, must be 1 for now + buf[2] = byte(f.KdfHash) + buf[3] = byte(f.KdfAlgo) + _, err = w.Write(buf[:]) + return +} + +func (f *ecdhKdf) byteLen() int { + return 4 +} + +// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. +type PublicKey struct { + CreationTime time.Time + PubKeyAlgo PublicKeyAlgorithm + PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey or *ecdsa.PublicKey + Fingerprint [20]byte + KeyId uint64 + IsSubkey bool + + n, e, p, q, g, y parsedMPI + + // RFC 6637 fields + ec *ecdsaKey + ecdh *ecdhKdf +} + +// signingKey provides a convenient abstraction over signature verification +// for v3 and v4 public keys. +type signingKey interface { + SerializeSignaturePrefix(io.Writer) + serializeWithoutHeaders(io.Writer) error +} + +func fromBig(n *big.Int) parsedMPI { + return parsedMPI{ + bytes: n.Bytes(), + bitLength: uint16(n.BitLen()), + } +} + +// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. +func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { + pk := &PublicKey{ + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoRSA, + PublicKey: pub, + n: fromBig(pub.N), + e: fromBig(big.NewInt(int64(pub.E))), + } + + pk.setFingerPrintAndKeyId() + return pk +} + +// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. +func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { + pk := &PublicKey{ + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoDSA, + PublicKey: pub, + p: fromBig(pub.P), + q: fromBig(pub.Q), + g: fromBig(pub.G), + y: fromBig(pub.Y), + } + + pk.setFingerPrintAndKeyId() + return pk +} + +// NewElGamalPublicKey returns a PublicKey that wraps the given elgamal.PublicKey. +func NewElGamalPublicKey(creationTime time.Time, pub *elgamal.PublicKey) *PublicKey { + pk := &PublicKey{ + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoElGamal, + PublicKey: pub, + p: fromBig(pub.P), + g: fromBig(pub.G), + y: fromBig(pub.Y), + } + + pk.setFingerPrintAndKeyId() + return pk +} + +func NewECDSAPublicKey(creationTime time.Time, pub *ecdsa.PublicKey) *PublicKey { + pk := &PublicKey{ + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoECDSA, + PublicKey: pub, + ec: new(ecdsaKey), + } + + switch pub.Curve { + case elliptic.P256(): + pk.ec.oid = oidCurveP256 + case elliptic.P384(): + pk.ec.oid = oidCurveP384 + case elliptic.P521(): + pk.ec.oid = oidCurveP521 + default: + panic("unknown elliptic curve") + } + + pk.ec.p.bytes = elliptic.Marshal(pub.Curve, pub.X, pub.Y) + pk.ec.p.bitLength = uint16(8 * len(pk.ec.p.bytes)) + + pk.setFingerPrintAndKeyId() + return pk +} + +func (pk *PublicKey) parse(r io.Reader) (err error) { + // RFC 4880, section 5.5.2 + var buf [6]byte + _, err = readFull(r, buf[:]) + if err != nil { + return + } + if buf[0] != 4 { + return errors.UnsupportedError("public key version") + } + pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) + pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + err = pk.parseRSA(r) + case PubKeyAlgoDSA: + err = pk.parseDSA(r) + case PubKeyAlgoElGamal: + err = pk.parseElGamal(r) + case PubKeyAlgoECDSA: + pk.ec = new(ecdsaKey) + if err = pk.ec.parse(r); err != nil { + return err + } + pk.PublicKey, err = pk.ec.newECDSA() + case PubKeyAlgoECDH: + pk.ec = new(ecdsaKey) + if err = pk.ec.parse(r); err != nil { + return + } + pk.ecdh = new(ecdhKdf) + if err = pk.ecdh.parse(r); err != nil { + return + } + // The ECDH key is stored in an ecdsa.PublicKey for convenience. + pk.PublicKey, err = pk.ec.newECDSA() + default: + err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) + } + if err != nil { + return + } + + pk.setFingerPrintAndKeyId() + return +} + +func (pk *PublicKey) setFingerPrintAndKeyId() { + // RFC 4880, section 12.2 + fingerPrint := sha1.New() + pk.SerializeSignaturePrefix(fingerPrint) + pk.serializeWithoutHeaders(fingerPrint) + copy(pk.Fingerprint[:], fingerPrint.Sum(nil)) + pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) +} + +// parseRSA parses RSA public key material from the given Reader. See RFC 4880, +// section 5.5.2. +func (pk *PublicKey) parseRSA(r io.Reader) (err error) { + pk.n.bytes, pk.n.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.e.bytes, pk.e.bitLength, err = readMPI(r) + if err != nil { + return + } + + if len(pk.e.bytes) > 3 { + err = errors.UnsupportedError("large public exponent") + return + } + rsa := &rsa.PublicKey{ + N: new(big.Int).SetBytes(pk.n.bytes), + E: 0, + } + for i := 0; i < len(pk.e.bytes); i++ { + rsa.E <<= 8 + rsa.E |= int(pk.e.bytes[i]) + } + pk.PublicKey = rsa + return +} + +// parseDSA parses DSA public key material from the given Reader. See RFC 4880, +// section 5.5.2. +func (pk *PublicKey) parseDSA(r io.Reader) (err error) { + pk.p.bytes, pk.p.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.q.bytes, pk.q.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.g.bytes, pk.g.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.y.bytes, pk.y.bitLength, err = readMPI(r) + if err != nil { + return + } + + dsa := new(dsa.PublicKey) + dsa.P = new(big.Int).SetBytes(pk.p.bytes) + dsa.Q = new(big.Int).SetBytes(pk.q.bytes) + dsa.G = new(big.Int).SetBytes(pk.g.bytes) + dsa.Y = new(big.Int).SetBytes(pk.y.bytes) + pk.PublicKey = dsa + return +} + +// parseElGamal parses ElGamal public key material from the given Reader. See +// RFC 4880, section 5.5.2. +func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { + pk.p.bytes, pk.p.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.g.bytes, pk.g.bitLength, err = readMPI(r) + if err != nil { + return + } + pk.y.bytes, pk.y.bitLength, err = readMPI(r) + if err != nil { + return + } + + elgamal := new(elgamal.PublicKey) + elgamal.P = new(big.Int).SetBytes(pk.p.bytes) + elgamal.G = new(big.Int).SetBytes(pk.g.bytes) + elgamal.Y = new(big.Int).SetBytes(pk.y.bytes) + pk.PublicKey = elgamal + return +} + +// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. +// The prefix is used when calculating a signature over this public key. See +// RFC 4880, section 5.2.4. +func (pk *PublicKey) SerializeSignaturePrefix(h io.Writer) { + var pLength uint16 + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + pLength += 2 + uint16(len(pk.n.bytes)) + pLength += 2 + uint16(len(pk.e.bytes)) + case PubKeyAlgoDSA: + pLength += 2 + uint16(len(pk.p.bytes)) + pLength += 2 + uint16(len(pk.q.bytes)) + pLength += 2 + uint16(len(pk.g.bytes)) + pLength += 2 + uint16(len(pk.y.bytes)) + case PubKeyAlgoElGamal: + pLength += 2 + uint16(len(pk.p.bytes)) + pLength += 2 + uint16(len(pk.g.bytes)) + pLength += 2 + uint16(len(pk.y.bytes)) + case PubKeyAlgoECDSA: + pLength += uint16(pk.ec.byteLen()) + case PubKeyAlgoECDH: + pLength += uint16(pk.ec.byteLen()) + pLength += uint16(pk.ecdh.byteLen()) + default: + panic("unknown public key algorithm") + } + pLength += 6 + h.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) + return +} + +func (pk *PublicKey) Serialize(w io.Writer) (err error) { + length := 6 // 6 byte header + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + length += 2 + len(pk.n.bytes) + length += 2 + len(pk.e.bytes) + case PubKeyAlgoDSA: + length += 2 + len(pk.p.bytes) + length += 2 + len(pk.q.bytes) + length += 2 + len(pk.g.bytes) + length += 2 + len(pk.y.bytes) + case PubKeyAlgoElGamal: + length += 2 + len(pk.p.bytes) + length += 2 + len(pk.g.bytes) + length += 2 + len(pk.y.bytes) + case PubKeyAlgoECDSA: + length += pk.ec.byteLen() + case PubKeyAlgoECDH: + length += pk.ec.byteLen() + length += pk.ecdh.byteLen() + default: + panic("unknown public key algorithm") + } + + packetType := packetTypePublicKey + if pk.IsSubkey { + packetType = packetTypePublicSubkey + } + err = serializeHeader(w, packetType, length) + if err != nil { + return + } + return pk.serializeWithoutHeaders(w) +} + +// serializeWithoutHeaders marshals the PublicKey to w in the form of an +// OpenPGP public key packet, not including the packet header. +func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { + var buf [6]byte + buf[0] = 4 + t := uint32(pk.CreationTime.Unix()) + buf[1] = byte(t >> 24) + buf[2] = byte(t >> 16) + buf[3] = byte(t >> 8) + buf[4] = byte(t) + buf[5] = byte(pk.PubKeyAlgo) + + _, err = w.Write(buf[:]) + if err != nil { + return + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + return writeMPIs(w, pk.n, pk.e) + case PubKeyAlgoDSA: + return writeMPIs(w, pk.p, pk.q, pk.g, pk.y) + case PubKeyAlgoElGamal: + return writeMPIs(w, pk.p, pk.g, pk.y) + case PubKeyAlgoECDSA: + return pk.ec.serialize(w) + case PubKeyAlgoECDH: + if err = pk.ec.serialize(w); err != nil { + return + } + return pk.ecdh.serialize(w) + } + return errors.InvalidArgumentError("bad public-key algorithm") +} + +// CanSign returns true iff this public key can generate signatures +func (pk *PublicKey) CanSign() bool { + return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal +} + +// VerifySignature returns nil iff sig is a valid signature, made by this +// public key, of the data hashed into signed. signed is mutated by this call. +func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { + if !pk.CanSign() { + return errors.InvalidArgumentError("public key cannot generate signatures") + } + + signed.Write(sig.HashSuffix) + hashBytes := signed.Sum(nil) + + if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { + return errors.SignatureError("hash tag doesn't match") + } + + if pk.PubKeyAlgo != sig.PubKeyAlgo { + return errors.InvalidArgumentError("public key and signature use different algorithms") + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) + err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes) + if err != nil { + return errors.SignatureError("RSA verification failure") + } + return nil + case PubKeyAlgoDSA: + dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) + // Need to truncate hashBytes to match FIPS 186-3 section 4.6. + subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 + if len(hashBytes) > subgroupSize { + hashBytes = hashBytes[:subgroupSize] + } + if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { + return errors.SignatureError("DSA verification failure") + } + return nil + case PubKeyAlgoECDSA: + ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) + if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.bytes), new(big.Int).SetBytes(sig.ECDSASigS.bytes)) { + return errors.SignatureError("ECDSA verification failure") + } + return nil + default: + return errors.SignatureError("Unsupported public key algorithm used in signature") + } + panic("unreachable") +} + +// VerifySignatureV3 returns nil iff sig is a valid signature, made by this +// public key, of the data hashed into signed. signed is mutated by this call. +func (pk *PublicKey) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { + if !pk.CanSign() { + return errors.InvalidArgumentError("public key cannot generate signatures") + } + + suffix := make([]byte, 5) + suffix[0] = byte(sig.SigType) + binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) + signed.Write(suffix) + hashBytes := signed.Sum(nil) + + if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { + return errors.SignatureError("hash tag doesn't match") + } + + if pk.PubKeyAlgo != sig.PubKeyAlgo { + return errors.InvalidArgumentError("public key and signature use different algorithms") + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + rsaPublicKey := pk.PublicKey.(*rsa.PublicKey) + if err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { + return errors.SignatureError("RSA verification failure") + } + return + case PubKeyAlgoDSA: + dsaPublicKey := pk.PublicKey.(*dsa.PublicKey) + // Need to truncate hashBytes to match FIPS 186-3 section 4.6. + subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 + if len(hashBytes) > subgroupSize { + hashBytes = hashBytes[:subgroupSize] + } + if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { + return errors.SignatureError("DSA verification failure") + } + return nil + default: + panic("shouldn't happen") + } + panic("unreachable") +} + +// keySignatureHash returns a Hash of the message that needs to be signed for +// pk to assert a subkey relationship to signed. +func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + pk.SerializeSignaturePrefix(h) + pk.serializeWithoutHeaders(h) + signed.SerializeSignaturePrefix(h) + signed.serializeWithoutHeaders(h) + return +} + +// VerifyKeySignature returns nil iff sig is a valid signature, made by this +// public key, of signed. +func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { + h, err := keySignatureHash(pk, signed, sig.Hash) + if err != nil { + return err + } + if err = pk.VerifySignature(h, sig); err != nil { + return err + } + + if sig.FlagSign { + // Signing subkeys must be cross-signed. See + // https://www.gnupg.org/faq/subkey-cross-certify.html. + if sig.EmbeddedSignature == nil { + return errors.StructuralError("signing subkey is missing cross-signature") + } + // Verify the cross-signature. This is calculated over the same + // data as the main signature, so we cannot just recursively + // call signed.VerifyKeySignature(...) + if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { + return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) + } + if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { + return errors.StructuralError("error while verifying cross-signature: " + err.Error()) + } + } + + return nil +} + +func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + pk.SerializeSignaturePrefix(h) + pk.serializeWithoutHeaders(h) + + return +} + +// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this +// public key. +func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { + h, err := keyRevocationHash(pk, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignature(h, sig) +} + +// userIdSignatureHash returns a Hash of the message that needs to be signed +// to assert that pk is a valid key for id. +func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + pk.SerializeSignaturePrefix(h) + pk.serializeWithoutHeaders(h) + + var buf [5]byte + buf[0] = 0xb4 + buf[1] = byte(len(id) >> 24) + buf[2] = byte(len(id) >> 16) + buf[3] = byte(len(id) >> 8) + buf[4] = byte(len(id)) + h.Write(buf[:]) + h.Write([]byte(id)) + + return +} + +// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this +// public key, that id is the identity of pub. +func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { + h, err := userIdSignatureHash(id, pub, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignature(h, sig) +} + +// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this +// public key, that id is the identity of pub. +func (pk *PublicKey) VerifyUserIdSignatureV3(id string, pub *PublicKey, sig *SignatureV3) (err error) { + h, err := userIdSignatureV3Hash(id, pub, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignatureV3(h, sig) +} + +// KeyIdString returns the public key's fingerprint in capital hex +// (e.g. "6C7EE1B8621CC013"). +func (pk *PublicKey) KeyIdString() string { + return fmt.Sprintf("%X", pk.Fingerprint[12:20]) +} + +// KeyIdShortString returns the short form of public key's fingerprint +// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). +func (pk *PublicKey) KeyIdShortString() string { + return fmt.Sprintf("%X", pk.Fingerprint[16:20]) +} + +// A parsedMPI is used to store the contents of a big integer, along with the +// bit length that was specified in the original input. This allows the MPI to +// be reserialized exactly. +type parsedMPI struct { + bytes []byte + bitLength uint16 +} + +// writeMPIs is a utility function for serializing several big integers to the +// given Writer. +func writeMPIs(w io.Writer, mpis ...parsedMPI) (err error) { + for _, mpi := range mpis { + err = writeMPI(w, mpi.bitLength, mpi.bytes) + if err != nil { + return + } + } + return +} + +// BitLength returns the bit length for the given public key. +func (pk *PublicKey) BitLength() (bitLength uint16, err error) { + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + bitLength = pk.n.bitLength + case PubKeyAlgoDSA: + bitLength = pk.p.bitLength + case PubKeyAlgoElGamal: + bitLength = pk.p.bitLength + default: + err = errors.InvalidArgumentError("bad public-key algorithm") + } + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key_test.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key_test.go new file mode 100644 index 00000000..7ad7d918 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/public_key_test.go @@ -0,0 +1,202 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/hex" + "testing" + "time" +) + +var pubKeyTests = []struct { + hexData string + hexFingerprint string + creationTime time.Time + pubKeyAlgo PublicKeyAlgorithm + keyId uint64 + keyIdString string + keyIdShort string +}{ + {rsaPkDataHex, rsaFingerprintHex, time.Unix(0x4d3c5c10, 0), PubKeyAlgoRSA, 0xa34d7e18c20c31bb, "A34D7E18C20C31BB", "C20C31BB"}, + {dsaPkDataHex, dsaFingerprintHex, time.Unix(0x4d432f89, 0), PubKeyAlgoDSA, 0x8e8fbe54062f19ed, "8E8FBE54062F19ED", "062F19ED"}, + {ecdsaPkDataHex, ecdsaFingerprintHex, time.Unix(0x5071c294, 0), PubKeyAlgoECDSA, 0x43fe956c542ca00b, "43FE956C542CA00B", "542CA00B"}, +} + +func TestPublicKeyRead(t *testing.T) { + for i, test := range pubKeyTests { + packet, err := Read(readerFromHex(test.hexData)) + if err != nil { + t.Errorf("#%d: Read error: %s", i, err) + continue + } + pk, ok := packet.(*PublicKey) + if !ok { + t.Errorf("#%d: failed to parse, got: %#v", i, packet) + continue + } + if pk.PubKeyAlgo != test.pubKeyAlgo { + t.Errorf("#%d: bad public key algorithm got:%x want:%x", i, pk.PubKeyAlgo, test.pubKeyAlgo) + } + if !pk.CreationTime.Equal(test.creationTime) { + t.Errorf("#%d: bad creation time got:%v want:%v", i, pk.CreationTime, test.creationTime) + } + expectedFingerprint, _ := hex.DecodeString(test.hexFingerprint) + if !bytes.Equal(expectedFingerprint, pk.Fingerprint[:]) { + t.Errorf("#%d: bad fingerprint got:%x want:%x", i, pk.Fingerprint[:], expectedFingerprint) + } + if pk.KeyId != test.keyId { + t.Errorf("#%d: bad keyid got:%x want:%x", i, pk.KeyId, test.keyId) + } + if g, e := pk.KeyIdString(), test.keyIdString; g != e { + t.Errorf("#%d: bad KeyIdString got:%q want:%q", i, g, e) + } + if g, e := pk.KeyIdShortString(), test.keyIdShort; g != e { + t.Errorf("#%d: bad KeyIdShortString got:%q want:%q", i, g, e) + } + } +} + +func TestPublicKeySerialize(t *testing.T) { + for i, test := range pubKeyTests { + packet, err := Read(readerFromHex(test.hexData)) + if err != nil { + t.Errorf("#%d: Read error: %s", i, err) + continue + } + pk, ok := packet.(*PublicKey) + if !ok { + t.Errorf("#%d: failed to parse, got: %#v", i, packet) + continue + } + serializeBuf := bytes.NewBuffer(nil) + err = pk.Serialize(serializeBuf) + if err != nil { + t.Errorf("#%d: failed to serialize: %s", i, err) + continue + } + + packet, err = Read(serializeBuf) + if err != nil { + t.Errorf("#%d: Read error (from serialized data): %s", i, err) + continue + } + pk, ok = packet.(*PublicKey) + if !ok { + t.Errorf("#%d: failed to parse serialized data, got: %#v", i, packet) + continue + } + } +} + +func TestEcc384Serialize(t *testing.T) { + r := readerFromHex(ecc384PubHex) + var w bytes.Buffer + for i := 0; i < 2; i++ { + // Public key + p, err := Read(r) + if err != nil { + t.Error(err) + } + pubkey := p.(*PublicKey) + if !bytes.Equal(pubkey.ec.oid, []byte{0x2b, 0x81, 0x04, 0x00, 0x22}) { + t.Errorf("Unexpected pubkey OID: %x", pubkey.ec.oid) + } + if !bytes.Equal(pubkey.ec.p.bytes[:5], []byte{0x04, 0xf6, 0xb8, 0xc5, 0xac}) { + t.Errorf("Unexpected pubkey P[:5]: %x", pubkey.ec.p.bytes) + } + if pubkey.KeyId != 0x098033880F54719F { + t.Errorf("Unexpected pubkey ID: %x", pubkey.KeyId) + } + err = pubkey.Serialize(&w) + if err != nil { + t.Error(err) + } + // User ID + p, err = Read(r) + if err != nil { + t.Error(err) + } + uid := p.(*UserId) + if uid.Id != "ec_dsa_dh_384 " { + t.Error("Unexpected UID:", uid.Id) + } + err = uid.Serialize(&w) + if err != nil { + t.Error(err) + } + // User ID Sig + p, err = Read(r) + if err != nil { + t.Error(err) + } + uidSig := p.(*Signature) + err = pubkey.VerifyUserIdSignature(uid.Id, pubkey, uidSig) + if err != nil { + t.Error(err, ": UID") + } + err = uidSig.Serialize(&w) + if err != nil { + t.Error(err) + } + // Subkey + p, err = Read(r) + if err != nil { + t.Error(err) + } + subkey := p.(*PublicKey) + if !bytes.Equal(subkey.ec.oid, []byte{0x2b, 0x81, 0x04, 0x00, 0x22}) { + t.Errorf("Unexpected subkey OID: %x", subkey.ec.oid) + } + if !bytes.Equal(subkey.ec.p.bytes[:5], []byte{0x04, 0x2f, 0xaa, 0x84, 0x02}) { + t.Errorf("Unexpected subkey P[:5]: %x", subkey.ec.p.bytes) + } + if subkey.ecdh.KdfHash != 0x09 { + t.Error("Expected KDF hash function SHA384 (0x09), got", subkey.ecdh.KdfHash) + } + if subkey.ecdh.KdfAlgo != 0x09 { + t.Error("Expected KDF symmetric alg AES256 (0x09), got", subkey.ecdh.KdfAlgo) + } + if subkey.KeyId != 0xAA8B938F9A201946 { + t.Errorf("Unexpected subkey ID: %x", subkey.KeyId) + } + err = subkey.Serialize(&w) + if err != nil { + t.Error(err) + } + // Subkey Sig + p, err = Read(r) + if err != nil { + t.Error(err) + } + subkeySig := p.(*Signature) + err = pubkey.VerifyKeySignature(subkey, subkeySig) + if err != nil { + t.Error(err) + } + err = subkeySig.Serialize(&w) + if err != nil { + t.Error(err) + } + // Now read back what we've written again + r = bytes.NewBuffer(w.Bytes()) + w.Reset() + } +} + +const rsaFingerprintHex = "5fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb" + +const rsaPkDataHex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001" + +const dsaFingerprintHex = "eece4c094db002103714c63c8e8fbe54062f19ed" + +const dsaPkDataHex = "9901a2044d432f89110400cd581334f0d7a1e1bdc8b9d6d8c0baf68793632735d2bb0903224cbaa1dfbf35a60ee7a13b92643421e1eb41aa8d79bea19a115a677f6b8ba3c7818ce53a6c2a24a1608bd8b8d6e55c5090cbde09dd26e356267465ae25e69ec8bdd57c7bbb2623e4d73336f73a0a9098f7f16da2e25252130fd694c0e8070c55a812a423ae7f00a0ebf50e70c2f19c3520a551bd4b08d30f23530d3d03ff7d0bf4a53a64a09dc5e6e6e35854b7d70c882b0c60293401958b1bd9e40abec3ea05ba87cf64899299d4bd6aa7f459c201d3fbbd6c82004bdc5e8a9eb8082d12054cc90fa9d4ec251a843236a588bf49552441817436c4f43326966fe85447d4e6d0acf8fa1ef0f014730770603ad7634c3088dc52501c237328417c31c89ed70400b2f1a98b0bf42f11fefc430704bebbaa41d9f355600c3facee1e490f64208e0e094ea55e3a598a219a58500bf78ac677b670a14f4e47e9cf8eab4f368cc1ddcaa18cc59309d4cc62dd4f680e73e6cc3e1ce87a84d0925efbcb26c575c093fc42eecf45135fabf6403a25c2016e1774c0484e440a18319072c617cc97ac0a3bb0" + +const ecdsaFingerprintHex = "9892270b38b8980b05c8d56d43fe956c542ca00b" + +const ecdsaPkDataHex = "9893045071c29413052b8104002304230401f4867769cedfa52c325018896245443968e52e51d0c2df8d939949cb5b330f2921711fbee1c9b9dddb95d15cb0255e99badeddda7cc23d9ddcaacbc290969b9f24019375d61c2e4e3b36953a28d8b2bc95f78c3f1d592fb24499be348656a7b17e3963187b4361afe497bc5f9f81213f04069f8e1fb9e6a6290ae295ca1a92b894396cb4" + +// Source: https://sites.google.com/site/brainhub/pgpecckeys#TOC-ECC-NIST-P-384-key +const ecc384PubHex = `99006f044d53059213052b81040022030304f6b8c5aced5b84ef9f4a209db2e4a9dfb70d28cb8c10ecd57674a9fa5a67389942b62d5e51367df4c7bfd3f8e500feecf07ed265a621a8ebbbe53e947ec78c677eba143bd1533c2b350e1c29f82313e1e1108eba063be1e64b10e6950e799c2db42465635f6473615f64685f333834203c6f70656e70677040627261696e6875622e6f72673e8900cb04101309005305024d530592301480000000002000077072656665727265642d656d61696c2d656e636f64696e67407067702e636f6d7067706d696d65040b090807021901051b03000000021602051e010000000415090a08000a0910098033880f54719fca2b0180aa37350968bd5f115afd8ce7bc7b103822152dbff06d0afcda835329510905b98cb469ba208faab87c7412b799e7b633017f58364ea480e8a1a3f253a0c5f22c446e8be9a9fce6210136ee30811abbd49139de28b5bdf8dc36d06ae748579e9ff503b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec9180301090989008404181309000c05024d530592051b0c000000000a0910098033880f54719f80970180eee7a6d8fcee41ee4f9289df17f9bcf9d955dca25c583b94336f3a2b2d4986dc5cf417b8d2dc86f741a9e1a6d236c0e3017d1c76575458a0cfb93ae8a2b274fcc65ceecd7a91eec83656ba13219969f06945b48c56bd04152c3a0553c5f2f4bd1267` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go new file mode 100644 index 00000000..26337f5a --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go @@ -0,0 +1,280 @@ +// 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 packet + +import ( + "crypto" + "crypto/md5" + "crypto/rsa" + "encoding/binary" + "fmt" + "hash" + "io" + "math/big" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/errors" +) + +// PublicKeyV3 represents older, version 3 public keys. These keys are less secure and +// should not be used for signing or encrypting. They are supported here only for +// parsing version 3 key material and validating signatures. +// See RFC 4880, section 5.5.2. +type PublicKeyV3 struct { + CreationTime time.Time + DaysToExpire uint16 + PubKeyAlgo PublicKeyAlgorithm + PublicKey *rsa.PublicKey + Fingerprint [16]byte + KeyId uint64 + IsSubkey bool + + n, e parsedMPI +} + +// newRSAPublicKeyV3 returns a PublicKey that wraps the given rsa.PublicKey. +// Included here for testing purposes only. RFC 4880, section 5.5.2: +// "an implementation MUST NOT generate a V3 key, but MAY accept it." +func newRSAPublicKeyV3(creationTime time.Time, pub *rsa.PublicKey) *PublicKeyV3 { + pk := &PublicKeyV3{ + CreationTime: creationTime, + PublicKey: pub, + n: fromBig(pub.N), + e: fromBig(big.NewInt(int64(pub.E))), + } + + pk.setFingerPrintAndKeyId() + return pk +} + +func (pk *PublicKeyV3) parse(r io.Reader) (err error) { + // RFC 4880, section 5.5.2 + var buf [8]byte + if _, err = readFull(r, buf[:]); err != nil { + return + } + if buf[0] < 2 || buf[0] > 3 { + return errors.UnsupportedError("public key version") + } + pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) + pk.DaysToExpire = binary.BigEndian.Uint16(buf[5:7]) + pk.PubKeyAlgo = PublicKeyAlgorithm(buf[7]) + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + err = pk.parseRSA(r) + default: + err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) + } + if err != nil { + return + } + + pk.setFingerPrintAndKeyId() + return +} + +func (pk *PublicKeyV3) setFingerPrintAndKeyId() { + // RFC 4880, section 12.2 + fingerPrint := md5.New() + fingerPrint.Write(pk.n.bytes) + fingerPrint.Write(pk.e.bytes) + fingerPrint.Sum(pk.Fingerprint[:0]) + pk.KeyId = binary.BigEndian.Uint64(pk.n.bytes[len(pk.n.bytes)-8:]) +} + +// parseRSA parses RSA public key material from the given Reader. See RFC 4880, +// section 5.5.2. +func (pk *PublicKeyV3) parseRSA(r io.Reader) (err error) { + if pk.n.bytes, pk.n.bitLength, err = readMPI(r); err != nil { + return + } + if pk.e.bytes, pk.e.bitLength, err = readMPI(r); err != nil { + return + } + + // RFC 4880 Section 12.2 requires the low 8 bytes of the + // modulus to form the key id. + if len(pk.n.bytes) < 8 { + return errors.StructuralError("v3 public key modulus is too short") + } + if len(pk.e.bytes) > 3 { + err = errors.UnsupportedError("large public exponent") + return + } + rsa := &rsa.PublicKey{N: new(big.Int).SetBytes(pk.n.bytes)} + for i := 0; i < len(pk.e.bytes); i++ { + rsa.E <<= 8 + rsa.E |= int(pk.e.bytes[i]) + } + pk.PublicKey = rsa + return +} + +// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. +// The prefix is used when calculating a signature over this public key. See +// RFC 4880, section 5.2.4. +func (pk *PublicKeyV3) SerializeSignaturePrefix(w io.Writer) { + var pLength uint16 + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + pLength += 2 + uint16(len(pk.n.bytes)) + pLength += 2 + uint16(len(pk.e.bytes)) + default: + panic("unknown public key algorithm") + } + pLength += 6 + w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) + return +} + +func (pk *PublicKeyV3) Serialize(w io.Writer) (err error) { + length := 8 // 8 byte header + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + length += 2 + len(pk.n.bytes) + length += 2 + len(pk.e.bytes) + default: + panic("unknown public key algorithm") + } + + packetType := packetTypePublicKey + if pk.IsSubkey { + packetType = packetTypePublicSubkey + } + if err = serializeHeader(w, packetType, length); err != nil { + return + } + return pk.serializeWithoutHeaders(w) +} + +// serializeWithoutHeaders marshals the PublicKey to w in the form of an +// OpenPGP public key packet, not including the packet header. +func (pk *PublicKeyV3) serializeWithoutHeaders(w io.Writer) (err error) { + var buf [8]byte + // Version 3 + buf[0] = 3 + // Creation time + t := uint32(pk.CreationTime.Unix()) + buf[1] = byte(t >> 24) + buf[2] = byte(t >> 16) + buf[3] = byte(t >> 8) + buf[4] = byte(t) + // Days to expire + buf[5] = byte(pk.DaysToExpire >> 8) + buf[6] = byte(pk.DaysToExpire) + // Public key algorithm + buf[7] = byte(pk.PubKeyAlgo) + + if _, err = w.Write(buf[:]); err != nil { + return + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + return writeMPIs(w, pk.n, pk.e) + } + return errors.InvalidArgumentError("bad public-key algorithm") +} + +// CanSign returns true iff this public key can generate signatures +func (pk *PublicKeyV3) CanSign() bool { + return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly +} + +// VerifySignatureV3 returns nil iff sig is a valid signature, made by this +// public key, of the data hashed into signed. signed is mutated by this call. +func (pk *PublicKeyV3) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { + if !pk.CanSign() { + return errors.InvalidArgumentError("public key cannot generate signatures") + } + + suffix := make([]byte, 5) + suffix[0] = byte(sig.SigType) + binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) + signed.Write(suffix) + hashBytes := signed.Sum(nil) + + if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { + return errors.SignatureError("hash tag doesn't match") + } + + if pk.PubKeyAlgo != sig.PubKeyAlgo { + return errors.InvalidArgumentError("public key and signature use different algorithms") + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + if err = rsa.VerifyPKCS1v15(pk.PublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { + return errors.SignatureError("RSA verification failure") + } + return + default: + // V3 public keys only support RSA. + panic("shouldn't happen") + } + panic("unreachable") +} + +// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this +// public key, that id is the identity of pub. +func (pk *PublicKeyV3) VerifyUserIdSignatureV3(id string, pub *PublicKeyV3, sig *SignatureV3) (err error) { + h, err := userIdSignatureV3Hash(id, pk, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignatureV3(h, sig) +} + +// VerifyKeySignatureV3 returns nil iff sig is a valid signature, made by this +// public key, of signed. +func (pk *PublicKeyV3) VerifyKeySignatureV3(signed *PublicKeyV3, sig *SignatureV3) (err error) { + h, err := keySignatureHash(pk, signed, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignatureV3(h, sig) +} + +// userIdSignatureV3Hash returns a Hash of the message that needs to be signed +// to assert that pk is a valid key for id. +func userIdSignatureV3Hash(id string, pk signingKey, hfn crypto.Hash) (h hash.Hash, err error) { + if !hfn.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hfn.New() + + // RFC 4880, section 5.2.4 + pk.SerializeSignaturePrefix(h) + pk.serializeWithoutHeaders(h) + + h.Write([]byte(id)) + + return +} + +// KeyIdString returns the public key's fingerprint in capital hex +// (e.g. "6C7EE1B8621CC013"). +func (pk *PublicKeyV3) KeyIdString() string { + return fmt.Sprintf("%X", pk.KeyId) +} + +// KeyIdShortString returns the short form of public key's fingerprint +// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). +func (pk *PublicKeyV3) KeyIdShortString() string { + return fmt.Sprintf("%X", pk.KeyId&0xFFFFFFFF) +} + +// BitLength returns the bit length for the given public key. +func (pk *PublicKeyV3) BitLength() (bitLength uint16, err error) { + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + bitLength = pk.n.bitLength + default: + err = errors.InvalidArgumentError("bad public-key algorithm") + } + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3_test.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3_test.go new file mode 100644 index 00000000..e0640590 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3_test.go @@ -0,0 +1,82 @@ +// 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 packet + +import ( + "bytes" + "encoding/hex" + "testing" + "time" +) + +var pubKeyV3Test = struct { + hexFingerprint string + creationTime time.Time + pubKeyAlgo PublicKeyAlgorithm + keyId uint64 + keyIdString string + keyIdShort string +}{ + "103BECF5BD1E837C89D19E98487767F7", + time.Unix(779753634, 0), + PubKeyAlgoRSA, + 0xDE0F188A5DA5E3C9, + "DE0F188A5DA5E3C9", + "5DA5E3C9"} + +func TestPublicKeyV3Read(t *testing.T) { + i, test := 0, pubKeyV3Test + packet, err := Read(v3KeyReader(t)) + if err != nil { + t.Fatalf("#%d: Read error: %s", i, err) + } + pk, ok := packet.(*PublicKeyV3) + if !ok { + t.Fatalf("#%d: failed to parse, got: %#v", i, packet) + } + if pk.PubKeyAlgo != test.pubKeyAlgo { + t.Errorf("#%d: bad public key algorithm got:%x want:%x", i, pk.PubKeyAlgo, test.pubKeyAlgo) + } + if !pk.CreationTime.Equal(test.creationTime) { + t.Errorf("#%d: bad creation time got:%v want:%v", i, pk.CreationTime, test.creationTime) + } + expectedFingerprint, _ := hex.DecodeString(test.hexFingerprint) + if !bytes.Equal(expectedFingerprint, pk.Fingerprint[:]) { + t.Errorf("#%d: bad fingerprint got:%x want:%x", i, pk.Fingerprint[:], expectedFingerprint) + } + if pk.KeyId != test.keyId { + t.Errorf("#%d: bad keyid got:%x want:%x", i, pk.KeyId, test.keyId) + } + if g, e := pk.KeyIdString(), test.keyIdString; g != e { + t.Errorf("#%d: bad KeyIdString got:%q want:%q", i, g, e) + } + if g, e := pk.KeyIdShortString(), test.keyIdShort; g != e { + t.Errorf("#%d: bad KeyIdShortString got:%q want:%q", i, g, e) + } +} + +func TestPublicKeyV3Serialize(t *testing.T) { + //for i, test := range pubKeyV3Tests { + i := 0 + packet, err := Read(v3KeyReader(t)) + if err != nil { + t.Fatalf("#%d: Read error: %s", i, err) + } + pk, ok := packet.(*PublicKeyV3) + if !ok { + t.Fatalf("#%d: failed to parse, got: %#v", i, packet) + } + var serializeBuf bytes.Buffer + if err = pk.Serialize(&serializeBuf); err != nil { + t.Fatalf("#%d: failed to serialize: %s", i, err) + } + + if packet, err = Read(bytes.NewBuffer(serializeBuf.Bytes())); err != nil { + t.Fatalf("#%d: Read error (from serialized data): %s", i, err) + } + if pk, ok = packet.(*PublicKeyV3); !ok { + t.Fatalf("#%d: failed to parse serialized data, got: %#v", i, packet) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/reader.go b/vendor/golang.org/x/crypto/openpgp/packet/reader.go new file mode 100644 index 00000000..34bc7c61 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/reader.go @@ -0,0 +1,76 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "golang.org/x/crypto/openpgp/errors" + "io" +) + +// Reader reads packets from an io.Reader and allows packets to be 'unread' so +// that they result from the next call to Next. +type Reader struct { + q []Packet + readers []io.Reader +} + +// New io.Readers are pushed when a compressed or encrypted packet is processed +// and recursively treated as a new source of packets. However, a carefully +// crafted packet can trigger an infinite recursive sequence of packets. See +// http://mumble.net/~campbell/misc/pgp-quine +// https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4402 +// This constant limits the number of recursive packets that may be pushed. +const maxReaders = 32 + +// Next returns the most recently unread Packet, or reads another packet from +// the top-most io.Reader. Unknown packet types are skipped. +func (r *Reader) Next() (p Packet, err error) { + if len(r.q) > 0 { + p = r.q[len(r.q)-1] + r.q = r.q[:len(r.q)-1] + return + } + + for len(r.readers) > 0 { + p, err = Read(r.readers[len(r.readers)-1]) + if err == nil { + return + } + if err == io.EOF { + r.readers = r.readers[:len(r.readers)-1] + continue + } + if _, ok := err.(errors.UnknownPacketTypeError); !ok { + return nil, err + } + } + + return nil, io.EOF +} + +// Push causes the Reader to start reading from a new io.Reader. When an EOF +// error is seen from the new io.Reader, it is popped and the Reader continues +// to read from the next most recent io.Reader. Push returns a StructuralError +// if pushing the reader would exceed the maximum recursion level, otherwise it +// returns nil. +func (r *Reader) Push(reader io.Reader) (err error) { + if len(r.readers) >= maxReaders { + return errors.StructuralError("too many layers of packets") + } + r.readers = append(r.readers, reader) + return nil +} + +// Unread causes the given Packet to be returned from the next call to Next. +func (r *Reader) Unread(p Packet) { + r.q = append(r.q, p) +} + +func NewReader(r io.Reader) *Reader { + return &Reader{ + q: nil, + readers: []io.Reader{r}, + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature.go b/vendor/golang.org/x/crypto/openpgp/packet/signature.go new file mode 100644 index 00000000..6ce0cbed --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/signature.go @@ -0,0 +1,731 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "encoding/asn1" + "encoding/binary" + "hash" + "io" + "math/big" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/s2k" +) + +const ( + // See RFC 4880, section 5.2.3.21 for details. + KeyFlagCertify = 1 << iota + KeyFlagSign + KeyFlagEncryptCommunications + KeyFlagEncryptStorage +) + +// Signature represents a signature. See RFC 4880, section 5.2. +type Signature struct { + SigType SignatureType + PubKeyAlgo PublicKeyAlgorithm + Hash crypto.Hash + + // HashSuffix is extra data that is hashed in after the signed data. + HashSuffix []byte + // HashTag contains the first two bytes of the hash for fast rejection + // of bad signed data. + HashTag [2]byte + CreationTime time.Time + + RSASignature parsedMPI + DSASigR, DSASigS parsedMPI + ECDSASigR, ECDSASigS parsedMPI + + // rawSubpackets contains the unparsed subpackets, in order. + rawSubpackets []outputSubpacket + + // The following are optional so are nil when not included in the + // signature. + + SigLifetimeSecs, KeyLifetimeSecs *uint32 + PreferredSymmetric, PreferredHash, PreferredCompression []uint8 + IssuerKeyId *uint64 + IsPrimaryId *bool + + // FlagsValid is set if any flags were given. See RFC 4880, section + // 5.2.3.21 for details. + FlagsValid bool + FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage bool + + // RevocationReason is set if this signature has been revoked. + // See RFC 4880, section 5.2.3.23 for details. + RevocationReason *uint8 + RevocationReasonText string + + // MDC is set if this signature has a feature packet that indicates + // support for MDC subpackets. + MDC bool + + // EmbeddedSignature, if non-nil, is a signature of the parent key, by + // this key. This prevents an attacker from claiming another's signing + // subkey as their own. + EmbeddedSignature *Signature + + outSubpackets []outputSubpacket +} + +func (sig *Signature) parse(r io.Reader) (err error) { + // RFC 4880, section 5.2.3 + var buf [5]byte + _, err = readFull(r, buf[:1]) + if err != nil { + return + } + if buf[0] != 4 { + err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) + return + } + + _, err = readFull(r, buf[:5]) + if err != nil { + return + } + sig.SigType = SignatureType(buf[0]) + sig.PubKeyAlgo = PublicKeyAlgorithm(buf[1]) + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: + default: + err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) + return + } + + var ok bool + sig.Hash, ok = s2k.HashIdToHash(buf[2]) + if !ok { + return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) + } + + hashedSubpacketsLength := int(buf[3])<<8 | int(buf[4]) + l := 6 + hashedSubpacketsLength + sig.HashSuffix = make([]byte, l+6) + sig.HashSuffix[0] = 4 + copy(sig.HashSuffix[1:], buf[:5]) + hashedSubpackets := sig.HashSuffix[6:l] + _, err = readFull(r, hashedSubpackets) + if err != nil { + return + } + // See RFC 4880, section 5.2.4 + trailer := sig.HashSuffix[l:] + trailer[0] = 4 + trailer[1] = 0xff + trailer[2] = uint8(l >> 24) + trailer[3] = uint8(l >> 16) + trailer[4] = uint8(l >> 8) + trailer[5] = uint8(l) + + err = parseSignatureSubpackets(sig, hashedSubpackets, true) + if err != nil { + return + } + + _, err = readFull(r, buf[:2]) + if err != nil { + return + } + unhashedSubpacketsLength := int(buf[0])<<8 | int(buf[1]) + unhashedSubpackets := make([]byte, unhashedSubpacketsLength) + _, err = readFull(r, unhashedSubpackets) + if err != nil { + return + } + err = parseSignatureSubpackets(sig, unhashedSubpackets, false) + if err != nil { + return + } + + _, err = readFull(r, sig.HashTag[:2]) + if err != nil { + return + } + + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) + case PubKeyAlgoDSA: + sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r) + if err == nil { + sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) + } + case PubKeyAlgoECDSA: + sig.ECDSASigR.bytes, sig.ECDSASigR.bitLength, err = readMPI(r) + if err == nil { + sig.ECDSASigS.bytes, sig.ECDSASigS.bitLength, err = readMPI(r) + } + default: + panic("unreachable") + } + return +} + +// parseSignatureSubpackets parses subpackets of the main signature packet. See +// RFC 4880, section 5.2.3.1. +func parseSignatureSubpackets(sig *Signature, subpackets []byte, isHashed bool) (err error) { + for len(subpackets) > 0 { + subpackets, err = parseSignatureSubpacket(sig, subpackets, isHashed) + if err != nil { + return + } + } + + if sig.CreationTime.IsZero() { + err = errors.StructuralError("no creation time in signature") + } + + return +} + +type signatureSubpacketType uint8 + +const ( + creationTimeSubpacket signatureSubpacketType = 2 + signatureExpirationSubpacket signatureSubpacketType = 3 + keyExpirationSubpacket signatureSubpacketType = 9 + prefSymmetricAlgosSubpacket signatureSubpacketType = 11 + issuerSubpacket signatureSubpacketType = 16 + prefHashAlgosSubpacket signatureSubpacketType = 21 + prefCompressionSubpacket signatureSubpacketType = 22 + primaryUserIdSubpacket signatureSubpacketType = 25 + keyFlagsSubpacket signatureSubpacketType = 27 + reasonForRevocationSubpacket signatureSubpacketType = 29 + featuresSubpacket signatureSubpacketType = 30 + embeddedSignatureSubpacket signatureSubpacketType = 32 +) + +// parseSignatureSubpacket parses a single subpacket. len(subpacket) is >= 1. +func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (rest []byte, err error) { + // RFC 4880, section 5.2.3.1 + var ( + length uint32 + packetType signatureSubpacketType + isCritical bool + ) + switch { + case subpacket[0] < 192: + length = uint32(subpacket[0]) + subpacket = subpacket[1:] + case subpacket[0] < 255: + if len(subpacket) < 2 { + goto Truncated + } + length = uint32(subpacket[0]-192)<<8 + uint32(subpacket[1]) + 192 + subpacket = subpacket[2:] + default: + if len(subpacket) < 5 { + goto Truncated + } + length = uint32(subpacket[1])<<24 | + uint32(subpacket[2])<<16 | + uint32(subpacket[3])<<8 | + uint32(subpacket[4]) + subpacket = subpacket[5:] + } + if length > uint32(len(subpacket)) { + goto Truncated + } + rest = subpacket[length:] + subpacket = subpacket[:length] + if len(subpacket) == 0 { + err = errors.StructuralError("zero length signature subpacket") + return + } + packetType = signatureSubpacketType(subpacket[0] & 0x7f) + isCritical = subpacket[0]&0x80 == 0x80 + subpacket = subpacket[1:] + sig.rawSubpackets = append(sig.rawSubpackets, outputSubpacket{isHashed, packetType, isCritical, subpacket}) + switch packetType { + case creationTimeSubpacket: + if !isHashed { + err = errors.StructuralError("signature creation time in non-hashed area") + return + } + if len(subpacket) != 4 { + err = errors.StructuralError("signature creation time not four bytes") + return + } + t := binary.BigEndian.Uint32(subpacket) + sig.CreationTime = time.Unix(int64(t), 0) + case signatureExpirationSubpacket: + // Signature expiration time, section 5.2.3.10 + if !isHashed { + return + } + if len(subpacket) != 4 { + err = errors.StructuralError("expiration subpacket with bad length") + return + } + sig.SigLifetimeSecs = new(uint32) + *sig.SigLifetimeSecs = binary.BigEndian.Uint32(subpacket) + case keyExpirationSubpacket: + // Key expiration time, section 5.2.3.6 + if !isHashed { + return + } + if len(subpacket) != 4 { + err = errors.StructuralError("key expiration subpacket with bad length") + return + } + sig.KeyLifetimeSecs = new(uint32) + *sig.KeyLifetimeSecs = binary.BigEndian.Uint32(subpacket) + case prefSymmetricAlgosSubpacket: + // Preferred symmetric algorithms, section 5.2.3.7 + if !isHashed { + return + } + sig.PreferredSymmetric = make([]byte, len(subpacket)) + copy(sig.PreferredSymmetric, subpacket) + case issuerSubpacket: + // Issuer, section 5.2.3.5 + if len(subpacket) != 8 { + err = errors.StructuralError("issuer subpacket with bad length") + return + } + sig.IssuerKeyId = new(uint64) + *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket) + case prefHashAlgosSubpacket: + // Preferred hash algorithms, section 5.2.3.8 + if !isHashed { + return + } + sig.PreferredHash = make([]byte, len(subpacket)) + copy(sig.PreferredHash, subpacket) + case prefCompressionSubpacket: + // Preferred compression algorithms, section 5.2.3.9 + if !isHashed { + return + } + sig.PreferredCompression = make([]byte, len(subpacket)) + copy(sig.PreferredCompression, subpacket) + case primaryUserIdSubpacket: + // Primary User ID, section 5.2.3.19 + if !isHashed { + return + } + if len(subpacket) != 1 { + err = errors.StructuralError("primary user id subpacket with bad length") + return + } + sig.IsPrimaryId = new(bool) + if subpacket[0] > 0 { + *sig.IsPrimaryId = true + } + case keyFlagsSubpacket: + // Key flags, section 5.2.3.21 + if !isHashed { + return + } + if len(subpacket) == 0 { + err = errors.StructuralError("empty key flags subpacket") + return + } + sig.FlagsValid = true + if subpacket[0]&KeyFlagCertify != 0 { + sig.FlagCertify = true + } + if subpacket[0]&KeyFlagSign != 0 { + sig.FlagSign = true + } + if subpacket[0]&KeyFlagEncryptCommunications != 0 { + sig.FlagEncryptCommunications = true + } + if subpacket[0]&KeyFlagEncryptStorage != 0 { + sig.FlagEncryptStorage = true + } + case reasonForRevocationSubpacket: + // Reason For Revocation, section 5.2.3.23 + if !isHashed { + return + } + if len(subpacket) == 0 { + err = errors.StructuralError("empty revocation reason subpacket") + return + } + sig.RevocationReason = new(uint8) + *sig.RevocationReason = subpacket[0] + sig.RevocationReasonText = string(subpacket[1:]) + case featuresSubpacket: + // Features subpacket, section 5.2.3.24 specifies a very general + // mechanism for OpenPGP implementations to signal support for new + // features. In practice, the subpacket is used exclusively to + // indicate support for MDC-protected encryption. + sig.MDC = len(subpacket) >= 1 && subpacket[0]&1 == 1 + case embeddedSignatureSubpacket: + // Only usage is in signatures that cross-certify + // signing subkeys. section 5.2.3.26 describes the + // format, with its usage described in section 11.1 + if sig.EmbeddedSignature != nil { + err = errors.StructuralError("Cannot have multiple embedded signatures") + return + } + sig.EmbeddedSignature = new(Signature) + // Embedded signatures are required to be v4 signatures see + // section 12.1. However, we only parse v4 signatures in this + // file anyway. + if err := sig.EmbeddedSignature.parse(bytes.NewBuffer(subpacket)); err != nil { + return nil, err + } + if sigType := sig.EmbeddedSignature.SigType; sigType != SigTypePrimaryKeyBinding { + return nil, errors.StructuralError("cross-signature has unexpected type " + strconv.Itoa(int(sigType))) + } + default: + if isCritical { + err = errors.UnsupportedError("unknown critical signature subpacket type " + strconv.Itoa(int(packetType))) + return + } + } + return + +Truncated: + err = errors.StructuralError("signature subpacket truncated") + return +} + +// subpacketLengthLength returns the length, in bytes, of an encoded length value. +func subpacketLengthLength(length int) int { + if length < 192 { + return 1 + } + if length < 16320 { + return 2 + } + return 5 +} + +// serializeSubpacketLength marshals the given length into to. +func serializeSubpacketLength(to []byte, length int) int { + // RFC 4880, Section 4.2.2. + if length < 192 { + to[0] = byte(length) + return 1 + } + if length < 16320 { + length -= 192 + to[0] = byte((length >> 8) + 192) + to[1] = byte(length) + return 2 + } + to[0] = 255 + to[1] = byte(length >> 24) + to[2] = byte(length >> 16) + to[3] = byte(length >> 8) + to[4] = byte(length) + return 5 +} + +// subpacketsLength returns the serialized length, in bytes, of the given +// subpackets. +func subpacketsLength(subpackets []outputSubpacket, hashed bool) (length int) { + for _, subpacket := range subpackets { + if subpacket.hashed == hashed { + length += subpacketLengthLength(len(subpacket.contents) + 1) + length += 1 // type byte + length += len(subpacket.contents) + } + } + return +} + +// serializeSubpackets marshals the given subpackets into to. +func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { + for _, subpacket := range subpackets { + if subpacket.hashed == hashed { + n := serializeSubpacketLength(to, len(subpacket.contents)+1) + to[n] = byte(subpacket.subpacketType) + to = to[1+n:] + n = copy(to, subpacket.contents) + to = to[n:] + } + } + return +} + +// KeyExpired returns whether sig is a self-signature of a key that has +// expired. +func (sig *Signature) KeyExpired(currentTime time.Time) bool { + if sig.KeyLifetimeSecs == nil { + return false + } + expiry := sig.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) + return currentTime.After(expiry) +} + +// buildHashSuffix constructs the HashSuffix member of sig in preparation for signing. +func (sig *Signature) buildHashSuffix() (err error) { + hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) + + var ok bool + l := 6 + hashedSubpacketsLen + sig.HashSuffix = make([]byte, l+6) + sig.HashSuffix[0] = 4 + sig.HashSuffix[1] = uint8(sig.SigType) + sig.HashSuffix[2] = uint8(sig.PubKeyAlgo) + sig.HashSuffix[3], ok = s2k.HashToHashId(sig.Hash) + if !ok { + sig.HashSuffix = nil + return errors.InvalidArgumentError("hash cannot be represented in OpenPGP: " + strconv.Itoa(int(sig.Hash))) + } + sig.HashSuffix[4] = byte(hashedSubpacketsLen >> 8) + sig.HashSuffix[5] = byte(hashedSubpacketsLen) + serializeSubpackets(sig.HashSuffix[6:l], sig.outSubpackets, true) + trailer := sig.HashSuffix[l:] + trailer[0] = 4 + trailer[1] = 0xff + trailer[2] = byte(l >> 24) + trailer[3] = byte(l >> 16) + trailer[4] = byte(l >> 8) + trailer[5] = byte(l) + return +} + +func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { + err = sig.buildHashSuffix() + if err != nil { + return + } + + h.Write(sig.HashSuffix) + digest = h.Sum(nil) + copy(sig.HashTag[:], digest) + return +} + +// Sign signs a message with a private key. The hash, h, must contain +// the hash of the message to be signed and will be mutated by this function. +// On success, the signature is stored in sig. Call Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err error) { + sig.outSubpackets = sig.buildSubpackets() + digest, err := sig.signPrepareHash(h) + if err != nil { + return + } + + switch priv.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + // supports both *rsa.PrivateKey and crypto.Signer + sig.RSASignature.bytes, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) + sig.RSASignature.bitLength = uint16(8 * len(sig.RSASignature.bytes)) + case PubKeyAlgoDSA: + dsaPriv := priv.PrivateKey.(*dsa.PrivateKey) + + // Need to truncate hashBytes to match FIPS 186-3 section 4.6. + subgroupSize := (dsaPriv.Q.BitLen() + 7) / 8 + if len(digest) > subgroupSize { + digest = digest[:subgroupSize] + } + r, s, err := dsa.Sign(config.Random(), dsaPriv, digest) + if err == nil { + sig.DSASigR.bytes = r.Bytes() + sig.DSASigR.bitLength = uint16(8 * len(sig.DSASigR.bytes)) + sig.DSASigS.bytes = s.Bytes() + sig.DSASigS.bitLength = uint16(8 * len(sig.DSASigS.bytes)) + } + case PubKeyAlgoECDSA: + var r, s *big.Int + if pk, ok := priv.PrivateKey.(*ecdsa.PrivateKey); ok { + // direct support, avoid asn1 wrapping/unwrapping + r, s, err = ecdsa.Sign(config.Random(), pk, digest) + } else { + var b []byte + b, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, nil) + if err == nil { + r, s, err = unwrapECDSASig(b) + } + } + if err == nil { + sig.ECDSASigR = fromBig(r) + sig.ECDSASigS = fromBig(s) + } + default: + err = errors.UnsupportedError("public key algorithm: " + strconv.Itoa(int(sig.PubKeyAlgo))) + } + + return +} + +// unwrapECDSASig parses the two integer components of an ASN.1-encoded ECDSA +// signature. +func unwrapECDSASig(b []byte) (r, s *big.Int, err error) { + var ecsdaSig struct { + R, S *big.Int + } + _, err = asn1.Unmarshal(b, &ecsdaSig) + if err != nil { + return + } + return ecsdaSig.R, ecsdaSig.S, nil +} + +// SignUserId computes a signature from priv, asserting that pub is a valid +// key for the identity id. On success, the signature is stored in sig. Call +// Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, config *Config) error { + h, err := userIdSignatureHash(id, pub, sig.Hash) + if err != nil { + return err + } + return sig.Sign(h, priv, config) +} + +// SignKey computes a signature from priv, asserting that pub is a subkey. On +// success, the signature is stored in sig. Call Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) error { + h, err := keySignatureHash(&priv.PublicKey, pub, sig.Hash) + if err != nil { + return err + } + return sig.Sign(h, priv, config) +} + +// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been +// called first. +func (sig *Signature) Serialize(w io.Writer) (err error) { + if len(sig.outSubpackets) == 0 { + sig.outSubpackets = sig.rawSubpackets + } + if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil && sig.ECDSASigR.bytes == nil { + return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") + } + + sigLength := 0 + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + sigLength = 2 + len(sig.RSASignature.bytes) + case PubKeyAlgoDSA: + sigLength = 2 + len(sig.DSASigR.bytes) + sigLength += 2 + len(sig.DSASigS.bytes) + case PubKeyAlgoECDSA: + sigLength = 2 + len(sig.ECDSASigR.bytes) + sigLength += 2 + len(sig.ECDSASigS.bytes) + default: + panic("impossible") + } + + unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) + length := len(sig.HashSuffix) - 6 /* trailer not included */ + + 2 /* length of unhashed subpackets */ + unhashedSubpacketsLen + + 2 /* hash tag */ + sigLength + err = serializeHeader(w, packetTypeSignature, length) + if err != nil { + return + } + + _, err = w.Write(sig.HashSuffix[:len(sig.HashSuffix)-6]) + if err != nil { + return + } + + unhashedSubpackets := make([]byte, 2+unhashedSubpacketsLen) + unhashedSubpackets[0] = byte(unhashedSubpacketsLen >> 8) + unhashedSubpackets[1] = byte(unhashedSubpacketsLen) + serializeSubpackets(unhashedSubpackets[2:], sig.outSubpackets, false) + + _, err = w.Write(unhashedSubpackets) + if err != nil { + return + } + _, err = w.Write(sig.HashTag[:]) + if err != nil { + return + } + + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + err = writeMPIs(w, sig.RSASignature) + case PubKeyAlgoDSA: + err = writeMPIs(w, sig.DSASigR, sig.DSASigS) + case PubKeyAlgoECDSA: + err = writeMPIs(w, sig.ECDSASigR, sig.ECDSASigS) + default: + panic("impossible") + } + return +} + +// outputSubpacket represents a subpacket to be marshaled. +type outputSubpacket struct { + hashed bool // true if this subpacket is in the hashed area. + subpacketType signatureSubpacketType + isCritical bool + contents []byte +} + +func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { + creationTime := make([]byte, 4) + binary.BigEndian.PutUint32(creationTime, uint32(sig.CreationTime.Unix())) + subpackets = append(subpackets, outputSubpacket{true, creationTimeSubpacket, false, creationTime}) + + if sig.IssuerKeyId != nil { + keyId := make([]byte, 8) + binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) + subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) + } + + if sig.SigLifetimeSecs != nil && *sig.SigLifetimeSecs != 0 { + sigLifetime := make([]byte, 4) + binary.BigEndian.PutUint32(sigLifetime, *sig.SigLifetimeSecs) + subpackets = append(subpackets, outputSubpacket{true, signatureExpirationSubpacket, true, sigLifetime}) + } + + // Key flags may only appear in self-signatures or certification signatures. + + if sig.FlagsValid { + var flags byte + if sig.FlagCertify { + flags |= KeyFlagCertify + } + if sig.FlagSign { + flags |= KeyFlagSign + } + if sig.FlagEncryptCommunications { + flags |= KeyFlagEncryptCommunications + } + if sig.FlagEncryptStorage { + flags |= KeyFlagEncryptStorage + } + subpackets = append(subpackets, outputSubpacket{true, keyFlagsSubpacket, false, []byte{flags}}) + } + + // The following subpackets may only appear in self-signatures + + if sig.KeyLifetimeSecs != nil && *sig.KeyLifetimeSecs != 0 { + keyLifetime := make([]byte, 4) + binary.BigEndian.PutUint32(keyLifetime, *sig.KeyLifetimeSecs) + subpackets = append(subpackets, outputSubpacket{true, keyExpirationSubpacket, true, keyLifetime}) + } + + if sig.IsPrimaryId != nil && *sig.IsPrimaryId { + subpackets = append(subpackets, outputSubpacket{true, primaryUserIdSubpacket, false, []byte{1}}) + } + + if len(sig.PreferredSymmetric) > 0 { + subpackets = append(subpackets, outputSubpacket{true, prefSymmetricAlgosSubpacket, false, sig.PreferredSymmetric}) + } + + if len(sig.PreferredHash) > 0 { + subpackets = append(subpackets, outputSubpacket{true, prefHashAlgosSubpacket, false, sig.PreferredHash}) + } + + if len(sig.PreferredCompression) > 0 { + subpackets = append(subpackets, outputSubpacket{true, prefCompressionSubpacket, false, sig.PreferredCompression}) + } + + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature_test.go b/vendor/golang.org/x/crypto/openpgp/packet/signature_test.go new file mode 100644 index 00000000..56e76117 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/signature_test.go @@ -0,0 +1,78 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "encoding/hex" + "testing" +) + +func TestSignatureRead(t *testing.T) { + packet, err := Read(readerFromHex(signatureDataHex)) + if err != nil { + t.Error(err) + return + } + sig, ok := packet.(*Signature) + if !ok || sig.SigType != SigTypeBinary || sig.PubKeyAlgo != PubKeyAlgoRSA || sig.Hash != crypto.SHA1 { + t.Errorf("failed to parse, got: %#v", packet) + } +} + +func TestSignatureReserialize(t *testing.T) { + packet, _ := Read(readerFromHex(signatureDataHex)) + sig := packet.(*Signature) + out := new(bytes.Buffer) + err := sig.Serialize(out) + if err != nil { + t.Errorf("error reserializing: %s", err) + return + } + + expected, _ := hex.DecodeString(signatureDataHex) + if !bytes.Equal(expected, out.Bytes()) { + t.Errorf("output doesn't match input (got vs expected):\n%s\n%s", hex.Dump(out.Bytes()), hex.Dump(expected)) + } +} + +func TestSignUserId(t *testing.T) { + sig := &Signature{ + SigType: SigTypeGenericCert, + PubKeyAlgo: PubKeyAlgoRSA, + Hash: 0, // invalid hash function + } + + packet, err := Read(readerFromHex(rsaPkDataHex)) + if err != nil { + t.Fatalf("failed to deserialize public key: %v", err) + } + pubKey := packet.(*PublicKey) + + packet, err = Read(readerFromHex(privKeyRSAHex)) + if err != nil { + t.Fatalf("failed to deserialize private key: %v", err) + } + privKey := packet.(*PrivateKey) + + err = sig.SignUserId("", pubKey, privKey, nil) + if err == nil { + t.Errorf("did not receive an error when expected") + } + + sig.Hash = crypto.SHA256 + err = privKey.Decrypt([]byte("testing")) + if err != nil { + t.Fatalf("failed to decrypt private key: %v", err) + } + + err = sig.SignUserId("", pubKey, privKey, nil) + if err != nil { + t.Errorf("failed to sign user id: %v", err) + } +} + +const signatureDataHex = "c2c05c04000102000605024cb45112000a0910ab105c91af38fb158f8d07ff5596ea368c5efe015bed6e78348c0f033c931d5f2ce5db54ce7f2a7e4b4ad64db758d65a7a71773edeab7ba2a9e0908e6a94a1175edd86c1d843279f045b021a6971a72702fcbd650efc393c5474d5b59a15f96d2eaad4c4c426797e0dcca2803ef41c6ff234d403eec38f31d610c344c06f2401c262f0993b2e66cad8a81ebc4322c723e0d4ba09fe917e8777658307ad8329adacba821420741009dfe87f007759f0982275d028a392c6ed983a0d846f890b36148c7358bdb8a516007fac760261ecd06076813831a36d0459075d1befa245ae7f7fb103d92ca759e9498fe60ef8078a39a3beda510deea251ea9f0a7f0df6ef42060f20780360686f3e400e" diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go new file mode 100644 index 00000000..6edff889 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go @@ -0,0 +1,146 @@ +// 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 packet + +import ( + "crypto" + "encoding/binary" + "fmt" + "io" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/s2k" +) + +// SignatureV3 represents older version 3 signatures. These signatures are less secure +// than version 4 and should not be used to create new signatures. They are included +// here for backwards compatibility to read and validate with older key material. +// See RFC 4880, section 5.2.2. +type SignatureV3 struct { + SigType SignatureType + CreationTime time.Time + IssuerKeyId uint64 + PubKeyAlgo PublicKeyAlgorithm + Hash crypto.Hash + HashTag [2]byte + + RSASignature parsedMPI + DSASigR, DSASigS parsedMPI +} + +func (sig *SignatureV3) parse(r io.Reader) (err error) { + // RFC 4880, section 5.2.2 + var buf [8]byte + if _, err = readFull(r, buf[:1]); err != nil { + return + } + if buf[0] < 2 || buf[0] > 3 { + err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) + return + } + if _, err = readFull(r, buf[:1]); err != nil { + return + } + if buf[0] != 5 { + err = errors.UnsupportedError( + "invalid hashed material length " + strconv.Itoa(int(buf[0]))) + return + } + + // Read hashed material: signature type + creation time + if _, err = readFull(r, buf[:5]); err != nil { + return + } + sig.SigType = SignatureType(buf[0]) + t := binary.BigEndian.Uint32(buf[1:5]) + sig.CreationTime = time.Unix(int64(t), 0) + + // Eight-octet Key ID of signer. + if _, err = readFull(r, buf[:8]); err != nil { + return + } + sig.IssuerKeyId = binary.BigEndian.Uint64(buf[:]) + + // Public-key and hash algorithm + if _, err = readFull(r, buf[:2]); err != nil { + return + } + sig.PubKeyAlgo = PublicKeyAlgorithm(buf[0]) + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA: + default: + err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) + return + } + var ok bool + if sig.Hash, ok = s2k.HashIdToHash(buf[1]); !ok { + return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) + } + + // Two-octet field holding left 16 bits of signed hash value. + if _, err = readFull(r, sig.HashTag[:2]); err != nil { + return + } + + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) + case PubKeyAlgoDSA: + if sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r); err != nil { + return + } + sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) + default: + panic("unreachable") + } + return +} + +// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been +// called first. +func (sig *SignatureV3) Serialize(w io.Writer) (err error) { + buf := make([]byte, 8) + + // Write the sig type and creation time + buf[0] = byte(sig.SigType) + binary.BigEndian.PutUint32(buf[1:5], uint32(sig.CreationTime.Unix())) + if _, err = w.Write(buf[:5]); err != nil { + return + } + + // Write the issuer long key ID + binary.BigEndian.PutUint64(buf[:8], sig.IssuerKeyId) + if _, err = w.Write(buf[:8]); err != nil { + return + } + + // Write public key algorithm, hash ID, and hash value + buf[0] = byte(sig.PubKeyAlgo) + hashId, ok := s2k.HashToHashId(sig.Hash) + if !ok { + return errors.UnsupportedError(fmt.Sprintf("hash function %v", sig.Hash)) + } + buf[1] = hashId + copy(buf[2:4], sig.HashTag[:]) + if _, err = w.Write(buf[:4]); err != nil { + return + } + + if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil { + return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") + } + + switch sig.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + err = writeMPIs(w, sig.RSASignature) + case PubKeyAlgoDSA: + err = writeMPIs(w, sig.DSASigR, sig.DSASigS) + default: + panic("impossible") + } + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature_v3_test.go b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3_test.go new file mode 100644 index 00000000..ad7b62ac --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3_test.go @@ -0,0 +1,92 @@ +// 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 packet + +import ( + "bytes" + "crypto" + "encoding/hex" + "io" + "io/ioutil" + "testing" + + "golang.org/x/crypto/openpgp/armor" +) + +func TestSignatureV3Read(t *testing.T) { + r := v3KeyReader(t) + Read(r) // Skip public key + Read(r) // Skip uid + packet, err := Read(r) // Signature + if err != nil { + t.Error(err) + return + } + sig, ok := packet.(*SignatureV3) + if !ok || sig.SigType != SigTypeGenericCert || sig.PubKeyAlgo != PubKeyAlgoRSA || sig.Hash != crypto.MD5 { + t.Errorf("failed to parse, got: %#v", packet) + } +} + +func TestSignatureV3Reserialize(t *testing.T) { + r := v3KeyReader(t) + Read(r) // Skip public key + Read(r) // Skip uid + packet, err := Read(r) + if err != nil { + t.Error(err) + return + } + sig := packet.(*SignatureV3) + out := new(bytes.Buffer) + if err = sig.Serialize(out); err != nil { + t.Errorf("error reserializing: %s", err) + return + } + expected, err := ioutil.ReadAll(v3KeyReader(t)) + if err != nil { + t.Error(err) + return + } + expected = expected[4+141+4+39:] // See pgpdump offsets below, this is where the sig starts + if !bytes.Equal(expected, out.Bytes()) { + t.Errorf("output doesn't match input (got vs expected):\n%s\n%s", hex.Dump(out.Bytes()), hex.Dump(expected)) + } +} + +func v3KeyReader(t *testing.T) io.Reader { + armorBlock, err := armor.Decode(bytes.NewBufferString(keySigV3Armor)) + if err != nil { + t.Fatalf("armor Decode failed: %v", err) + } + return armorBlock.Body +} + +// keySigV3Armor is some V3 public key I found in an SKS dump. +// Old: Public Key Packet(tag 6)(141 bytes) +// Ver 4 - new +// Public key creation time - Fri Sep 16 17:13:54 CDT 1994 +// Pub alg - unknown(pub 0) +// Unknown public key(pub 0) +// Old: User ID Packet(tag 13)(39 bytes) +// User ID - Armin M. Warda +// Old: Signature Packet(tag 2)(149 bytes) +// Ver 4 - new +// Sig type - unknown(05) +// Pub alg - ElGamal Encrypt-Only(pub 16) +// Hash alg - unknown(hash 46) +// Hashed Sub: unknown(sub 81, critical)(1988 bytes) +const keySigV3Armor = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: SKS 1.0.10 + +mI0CLnoYogAAAQQA1qwA2SuJwfQ5bCQ6u5t20ulnOtY0gykf7YjiK4LiVeRBwHjGq7v30tGV +5Qti7qqRW4Ww7CDCJc4sZMFnystucR2vLkXaSoNWoFm4Fg47NiisDdhDezHwbVPW6OpCFNSi +ZAamtj4QAUBu8j4LswafrJqZqR9336/V3g8Yil2l48kABRG0J0FybWluIE0uIFdhcmRhIDx3 +YXJkYUBuZXBoaWxpbS5ydWhyLmRlPoiVAgUQLok2xwXR6zmeWEiZAQE/DgP/WgxPQh40/Po4 +gSkWZCDAjNdph7zexvAb0CcUWahcwiBIgg3U5ErCx9I5CNVA9U+s8bNrDZwgSIeBzp3KhWUx +524uhGgm6ZUTOAIKA6CbV6pfqoLpJnRYvXYQU5mIWsNa99wcu2qu18OeEDnztb7aLA6Ra9OF +YFCbq4EjXRoOrYM= +=LPjs +-----END PGP PUBLIC KEY BLOCK-----` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go new file mode 100644 index 00000000..4b1105b6 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go @@ -0,0 +1,155 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto/cipher" + "io" + "strconv" + + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/s2k" +) + +// This is the largest session key that we'll support. Since no 512-bit cipher +// has even been seriously used, this is comfortably large. +const maxSessionKeySizeInBytes = 64 + +// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC +// 4880, section 5.3. +type SymmetricKeyEncrypted struct { + CipherFunc CipherFunction + s2k func(out, in []byte) + encryptedKey []byte +} + +const symmetricKeyEncryptedVersion = 4 + +func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { + // RFC 4880, section 5.3. + var buf [2]byte + if _, err := readFull(r, buf[:]); err != nil { + return err + } + if buf[0] != symmetricKeyEncryptedVersion { + return errors.UnsupportedError("SymmetricKeyEncrypted version") + } + ske.CipherFunc = CipherFunction(buf[1]) + + if ske.CipherFunc.KeySize() == 0 { + return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[1]))) + } + + var err error + ske.s2k, err = s2k.Parse(r) + if err != nil { + return err + } + + encryptedKey := make([]byte, maxSessionKeySizeInBytes) + // The session key may follow. We just have to try and read to find + // out. If it exists then we limit it to maxSessionKeySizeInBytes. + n, err := readFull(r, encryptedKey) + if err != nil && err != io.ErrUnexpectedEOF { + return err + } + + if n != 0 { + if n == maxSessionKeySizeInBytes { + return errors.UnsupportedError("oversized encrypted session key") + } + ske.encryptedKey = encryptedKey[:n] + } + + return nil +} + +// Decrypt attempts to decrypt an encrypted session key and returns the key and +// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data +// packet. +func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { + key := make([]byte, ske.CipherFunc.KeySize()) + ske.s2k(key, passphrase) + + if len(ske.encryptedKey) == 0 { + return key, ske.CipherFunc, nil + } + + // the IV is all zeros + iv := make([]byte, ske.CipherFunc.blockSize()) + c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) + plaintextKey := make([]byte, len(ske.encryptedKey)) + c.XORKeyStream(plaintextKey, ske.encryptedKey) + cipherFunc := CipherFunction(plaintextKey[0]) + if cipherFunc.blockSize() == 0 { + return nil, ske.CipherFunc, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) + } + plaintextKey = plaintextKey[1:] + if l := len(plaintextKey); l == 0 || l%cipherFunc.blockSize() != 0 { + return nil, cipherFunc, errors.StructuralError("length of decrypted key not a multiple of block size") + } + + return plaintextKey, cipherFunc, nil +} + +// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. The +// packet contains a random session key, encrypted by a key derived from the +// given passphrase. The session key is returned and must be passed to +// SerializeSymmetricallyEncrypted. +// If config is nil, sensible defaults will be used. +func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { + cipherFunc := config.Cipher() + keySize := cipherFunc.KeySize() + if keySize == 0 { + return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) + } + + s2kBuf := new(bytes.Buffer) + keyEncryptingKey := make([]byte, keySize) + // s2k.Serialize salts and stretches the passphrase, and writes the + // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. + err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, &s2k.Config{Hash: config.Hash(), S2KCount: config.PasswordHashIterations()}) + if err != nil { + return + } + s2kBytes := s2kBuf.Bytes() + + packetLength := 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize + err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) + if err != nil { + return + } + + var buf [2]byte + buf[0] = symmetricKeyEncryptedVersion + buf[1] = byte(cipherFunc) + _, err = w.Write(buf[:]) + if err != nil { + return + } + _, err = w.Write(s2kBytes) + if err != nil { + return + } + + sessionKey := make([]byte, keySize) + _, err = io.ReadFull(config.Random(), sessionKey) + if err != nil { + return + } + iv := make([]byte, cipherFunc.blockSize()) + c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) + encryptedCipherAndKey := make([]byte, keySize+1) + c.XORKeyStream(encryptedCipherAndKey, buf[1:]) + c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) + _, err = w.Write(encryptedCipherAndKey) + if err != nil { + return + } + + key = sessionKey + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted_test.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted_test.go new file mode 100644 index 00000000..19538df7 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted_test.go @@ -0,0 +1,103 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/hex" + "io" + "io/ioutil" + "testing" +) + +func TestSymmetricKeyEncrypted(t *testing.T) { + buf := readerFromHex(symmetricallyEncryptedHex) + packet, err := Read(buf) + if err != nil { + t.Errorf("failed to read SymmetricKeyEncrypted: %s", err) + return + } + ske, ok := packet.(*SymmetricKeyEncrypted) + if !ok { + t.Error("didn't find SymmetricKeyEncrypted packet") + return + } + key, cipherFunc, err := ske.Decrypt([]byte("password")) + if err != nil { + t.Error(err) + return + } + + packet, err = Read(buf) + if err != nil { + t.Errorf("failed to read SymmetricallyEncrypted: %s", err) + return + } + se, ok := packet.(*SymmetricallyEncrypted) + if !ok { + t.Error("didn't find SymmetricallyEncrypted packet") + return + } + r, err := se.Decrypt(cipherFunc, key) + if err != nil { + t.Error(err) + return + } + + contents, err := ioutil.ReadAll(r) + if err != nil && err != io.EOF { + t.Error(err) + return + } + + expectedContents, _ := hex.DecodeString(symmetricallyEncryptedContentsHex) + if !bytes.Equal(expectedContents, contents) { + t.Errorf("bad contents got:%x want:%x", contents, expectedContents) + } +} + +const symmetricallyEncryptedHex = "8c0d04030302371a0b38d884f02060c91cf97c9973b8e58e028e9501708ccfe618fb92afef7fa2d80ddadd93cf" +const symmetricallyEncryptedContentsHex = "cb1062004d14c4df636f6e74656e74732e0a" + +func TestSerializeSymmetricKeyEncrypted(t *testing.T) { + buf := bytes.NewBuffer(nil) + passphrase := []byte("testing") + const cipherFunc = CipherAES128 + config := &Config{ + DefaultCipher: cipherFunc, + } + + key, err := SerializeSymmetricKeyEncrypted(buf, passphrase, config) + if err != nil { + t.Errorf("failed to serialize: %s", err) + return + } + + p, err := Read(buf) + if err != nil { + t.Errorf("failed to reparse: %s", err) + return + } + ske, ok := p.(*SymmetricKeyEncrypted) + if !ok { + t.Errorf("parsed a different packet type: %#v", p) + return + } + + if ske.CipherFunc != config.DefaultCipher { + t.Errorf("SKE cipher function is %d (expected %d)", ske.CipherFunc, config.DefaultCipher) + } + parsedKey, parsedCipherFunc, err := ske.Decrypt(passphrase) + if err != nil { + t.Errorf("failed to decrypt reparsed SKE: %s", err) + return + } + if !bytes.Equal(key, parsedKey) { + t.Errorf("keys don't match after Decrypt: %x (original) vs %x (parsed)", key, parsedKey) + } + if parsedCipherFunc != cipherFunc { + t.Errorf("cipher function doesn't match after Decrypt: %d (original) vs %d (parsed)", cipherFunc, parsedCipherFunc) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go new file mode 100644 index 00000000..6126030e --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go @@ -0,0 +1,290 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto/cipher" + "crypto/sha1" + "crypto/subtle" + "golang.org/x/crypto/openpgp/errors" + "hash" + "io" + "strconv" +) + +// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The +// encrypted contents will consist of more OpenPGP packets. See RFC 4880, +// sections 5.7 and 5.13. +type SymmetricallyEncrypted struct { + MDC bool // true iff this is a type 18 packet and thus has an embedded MAC. + contents io.Reader + prefix []byte +} + +const symmetricallyEncryptedVersion = 1 + +func (se *SymmetricallyEncrypted) parse(r io.Reader) error { + if se.MDC { + // See RFC 4880, section 5.13. + var buf [1]byte + _, err := readFull(r, buf[:]) + if err != nil { + return err + } + if buf[0] != symmetricallyEncryptedVersion { + return errors.UnsupportedError("unknown SymmetricallyEncrypted version") + } + } + se.contents = r + return nil +} + +// Decrypt returns a ReadCloser, from which the decrypted contents of the +// packet can be read. An incorrect key can, with high probability, be detected +// immediately and this will result in a KeyIncorrect error being returned. +func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { + keySize := c.KeySize() + if keySize == 0 { + return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(c))) + } + if len(key) != keySize { + return nil, errors.InvalidArgumentError("SymmetricallyEncrypted: incorrect key length") + } + + if se.prefix == nil { + se.prefix = make([]byte, c.blockSize()+2) + _, err := readFull(se.contents, se.prefix) + if err != nil { + return nil, err + } + } else if len(se.prefix) != c.blockSize()+2 { + return nil, errors.InvalidArgumentError("can't try ciphers with different block lengths") + } + + ocfbResync := OCFBResync + if se.MDC { + // MDC packets use a different form of OCFB mode. + ocfbResync = OCFBNoResync + } + + s := NewOCFBDecrypter(c.new(key), se.prefix, ocfbResync) + if s == nil { + return nil, errors.ErrKeyIncorrect + } + + plaintext := cipher.StreamReader{S: s, R: se.contents} + + if se.MDC { + // MDC packets have an embedded hash that we need to check. + h := sha1.New() + h.Write(se.prefix) + return &seMDCReader{in: plaintext, h: h}, nil + } + + // Otherwise, we just need to wrap plaintext so that it's a valid ReadCloser. + return seReader{plaintext}, nil +} + +// seReader wraps an io.Reader with a no-op Close method. +type seReader struct { + in io.Reader +} + +func (ser seReader) Read(buf []byte) (int, error) { + return ser.in.Read(buf) +} + +func (ser seReader) Close() error { + return nil +} + +const mdcTrailerSize = 1 /* tag byte */ + 1 /* length byte */ + sha1.Size + +// An seMDCReader wraps an io.Reader, maintains a running hash and keeps hold +// of the most recent 22 bytes (mdcTrailerSize). Upon EOF, those bytes form an +// MDC packet containing a hash of the previous contents which is checked +// against the running hash. See RFC 4880, section 5.13. +type seMDCReader struct { + in io.Reader + h hash.Hash + trailer [mdcTrailerSize]byte + scratch [mdcTrailerSize]byte + trailerUsed int + error bool + eof bool +} + +func (ser *seMDCReader) Read(buf []byte) (n int, err error) { + if ser.error { + err = io.ErrUnexpectedEOF + return + } + if ser.eof { + err = io.EOF + return + } + + // If we haven't yet filled the trailer buffer then we must do that + // first. + for ser.trailerUsed < mdcTrailerSize { + n, err = ser.in.Read(ser.trailer[ser.trailerUsed:]) + ser.trailerUsed += n + if err == io.EOF { + if ser.trailerUsed != mdcTrailerSize { + n = 0 + err = io.ErrUnexpectedEOF + ser.error = true + return + } + ser.eof = true + n = 0 + return + } + + if err != nil { + n = 0 + return + } + } + + // If it's a short read then we read into a temporary buffer and shift + // the data into the caller's buffer. + if len(buf) <= mdcTrailerSize { + n, err = readFull(ser.in, ser.scratch[:len(buf)]) + copy(buf, ser.trailer[:n]) + ser.h.Write(buf[:n]) + copy(ser.trailer[:], ser.trailer[n:]) + copy(ser.trailer[mdcTrailerSize-n:], ser.scratch[:]) + if n < len(buf) { + ser.eof = true + err = io.EOF + } + return + } + + n, err = ser.in.Read(buf[mdcTrailerSize:]) + copy(buf, ser.trailer[:]) + ser.h.Write(buf[:n]) + copy(ser.trailer[:], buf[n:]) + + if err == io.EOF { + ser.eof = true + } + return +} + +// This is a new-format packet tag byte for a type 19 (MDC) packet. +const mdcPacketTagByte = byte(0x80) | 0x40 | 19 + +func (ser *seMDCReader) Close() error { + if ser.error { + return errors.SignatureError("error during reading") + } + + for !ser.eof { + // We haven't seen EOF so we need to read to the end + var buf [1024]byte + _, err := ser.Read(buf[:]) + if err == io.EOF { + break + } + if err != nil { + return errors.SignatureError("error during reading") + } + } + + if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { + return errors.SignatureError("MDC packet not found") + } + ser.h.Write(ser.trailer[:2]) + + final := ser.h.Sum(nil) + if subtle.ConstantTimeCompare(final, ser.trailer[2:]) != 1 { + return errors.SignatureError("hash mismatch") + } + return nil +} + +// An seMDCWriter writes through to an io.WriteCloser while maintains a running +// hash of the data written. On close, it emits an MDC packet containing the +// running hash. +type seMDCWriter struct { + w io.WriteCloser + h hash.Hash +} + +func (w *seMDCWriter) Write(buf []byte) (n int, err error) { + w.h.Write(buf) + return w.w.Write(buf) +} + +func (w *seMDCWriter) Close() (err error) { + var buf [mdcTrailerSize]byte + + buf[0] = mdcPacketTagByte + buf[1] = sha1.Size + w.h.Write(buf[:2]) + digest := w.h.Sum(nil) + copy(buf[2:], digest) + + _, err = w.w.Write(buf[:]) + if err != nil { + return + } + return w.w.Close() +} + +// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. +type noOpCloser struct { + w io.Writer +} + +func (c noOpCloser) Write(data []byte) (n int, err error) { + return c.w.Write(data) +} + +func (c noOpCloser) Close() error { + return nil +} + +// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet +// to w and returns a WriteCloser to which the to-be-encrypted packets can be +// written. +// If config is nil, sensible defaults will be used. +func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, key []byte, config *Config) (contents io.WriteCloser, err error) { + if c.KeySize() != len(key) { + return nil, errors.InvalidArgumentError("SymmetricallyEncrypted.Serialize: bad key length") + } + writeCloser := noOpCloser{w} + ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedMDC) + if err != nil { + return + } + + _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersion}) + if err != nil { + return + } + + block := c.new(key) + blockSize := block.BlockSize() + iv := make([]byte, blockSize) + _, err = config.Random().Read(iv) + if err != nil { + return + } + s, prefix := NewOCFBEncrypter(block, iv, OCFBNoResync) + _, err = ciphertext.Write(prefix) + if err != nil { + return + } + plaintext := cipher.StreamWriter{S: s, W: ciphertext} + + h := sha1.New() + h.Write(iv) + h.Write(iv[blockSize-2:]) + contents = &seMDCWriter{w: plaintext, h: h} + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted_test.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted_test.go new file mode 100644 index 00000000..c5c00f7b --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted_test.go @@ -0,0 +1,123 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto/sha1" + "encoding/hex" + "golang.org/x/crypto/openpgp/errors" + "io" + "io/ioutil" + "testing" +) + +// TestReader wraps a []byte and returns reads of a specific length. +type testReader struct { + data []byte + stride int +} + +func (t *testReader) Read(buf []byte) (n int, err error) { + n = t.stride + if n > len(t.data) { + n = len(t.data) + } + if n > len(buf) { + n = len(buf) + } + copy(buf, t.data) + t.data = t.data[n:] + if len(t.data) == 0 { + err = io.EOF + } + return +} + +func testMDCReader(t *testing.T) { + mdcPlaintext, _ := hex.DecodeString(mdcPlaintextHex) + + for stride := 1; stride < len(mdcPlaintext)/2; stride++ { + r := &testReader{data: mdcPlaintext, stride: stride} + mdcReader := &seMDCReader{in: r, h: sha1.New()} + body, err := ioutil.ReadAll(mdcReader) + if err != nil { + t.Errorf("stride: %d, error: %s", stride, err) + continue + } + if !bytes.Equal(body, mdcPlaintext[:len(mdcPlaintext)-22]) { + t.Errorf("stride: %d: bad contents %x", stride, body) + continue + } + + err = mdcReader.Close() + if err != nil { + t.Errorf("stride: %d, error on Close: %s", stride, err) + } + } + + mdcPlaintext[15] ^= 80 + + r := &testReader{data: mdcPlaintext, stride: 2} + mdcReader := &seMDCReader{in: r, h: sha1.New()} + _, err := ioutil.ReadAll(mdcReader) + if err != nil { + t.Errorf("corruption test, error: %s", err) + return + } + err = mdcReader.Close() + if err == nil { + t.Error("corruption: no error") + } else if _, ok := err.(*errors.SignatureError); !ok { + t.Errorf("corruption: expected SignatureError, got: %s", err) + } +} + +const mdcPlaintextHex = "a302789c3b2d93c4e0eb9aba22283539b3203335af44a134afb800c849cb4c4de10200aff40b45d31432c80cb384299a0655966d6939dfdeed1dddf980" + +func TestSerialize(t *testing.T) { + buf := bytes.NewBuffer(nil) + c := CipherAES128 + key := make([]byte, c.KeySize()) + + w, err := SerializeSymmetricallyEncrypted(buf, c, key, nil) + if err != nil { + t.Errorf("error from SerializeSymmetricallyEncrypted: %s", err) + return + } + + contents := []byte("hello world\n") + + w.Write(contents) + w.Close() + + p, err := Read(buf) + if err != nil { + t.Errorf("error from Read: %s", err) + return + } + + se, ok := p.(*SymmetricallyEncrypted) + if !ok { + t.Errorf("didn't read a *SymmetricallyEncrypted") + return + } + + r, err := se.Decrypt(c, key) + if err != nil { + t.Errorf("error from Decrypt: %s", err) + return + } + + contentsCopy := bytes.NewBuffer(nil) + _, err = io.Copy(contentsCopy, r) + if err != nil { + t.Errorf("error from io.Copy: %s", err) + return + } + if !bytes.Equal(contentsCopy.Bytes(), contents) { + t.Errorf("contents not equal got: %x want: %x", contentsCopy.Bytes(), contents) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go b/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go new file mode 100644 index 00000000..96a2b382 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go @@ -0,0 +1,91 @@ +// 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 packet + +import ( + "bytes" + "image" + "image/jpeg" + "io" + "io/ioutil" +) + +const UserAttrImageSubpacket = 1 + +// UserAttribute is capable of storing other types of data about a user +// beyond name, email and a text comment. In practice, user attributes are typically used +// to store a signed thumbnail photo JPEG image of the user. +// See RFC 4880, section 5.12. +type UserAttribute struct { + Contents []*OpaqueSubpacket +} + +// NewUserAttributePhoto creates a user attribute packet +// containing the given images. +func NewUserAttributePhoto(photos ...image.Image) (uat *UserAttribute, err error) { + uat = new(UserAttribute) + for _, photo := range photos { + var buf bytes.Buffer + // RFC 4880, Section 5.12.1. + data := []byte{ + 0x10, 0x00, // Little-endian image header length (16 bytes) + 0x01, // Image header version 1 + 0x01, // JPEG + 0, 0, 0, 0, // 12 reserved octets, must be all zero. + 0, 0, 0, 0, + 0, 0, 0, 0} + if _, err = buf.Write(data); err != nil { + return + } + if err = jpeg.Encode(&buf, photo, nil); err != nil { + return + } + uat.Contents = append(uat.Contents, &OpaqueSubpacket{ + SubType: UserAttrImageSubpacket, + Contents: buf.Bytes()}) + } + return +} + +// NewUserAttribute creates a new user attribute packet containing the given subpackets. +func NewUserAttribute(contents ...*OpaqueSubpacket) *UserAttribute { + return &UserAttribute{Contents: contents} +} + +func (uat *UserAttribute) parse(r io.Reader) (err error) { + // RFC 4880, section 5.13 + b, err := ioutil.ReadAll(r) + if err != nil { + return + } + uat.Contents, err = OpaqueSubpackets(b) + return +} + +// Serialize marshals the user attribute to w in the form of an OpenPGP packet, including +// header. +func (uat *UserAttribute) Serialize(w io.Writer) (err error) { + var buf bytes.Buffer + for _, sp := range uat.Contents { + sp.Serialize(&buf) + } + if err = serializeHeader(w, packetTypeUserAttribute, buf.Len()); err != nil { + return err + } + _, err = w.Write(buf.Bytes()) + return +} + +// ImageData returns zero or more byte slices, each containing +// JPEG File Interchange Format (JFIF), for each photo in the +// the user attribute packet. +func (uat *UserAttribute) ImageData() (imageData [][]byte) { + for _, sp := range uat.Contents { + if sp.SubType == UserAttrImageSubpacket && len(sp.Contents) > 16 { + imageData = append(imageData, sp.Contents[16:]) + } + } + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userattribute_test.go b/vendor/golang.org/x/crypto/openpgp/packet/userattribute_test.go new file mode 100644 index 00000000..13ca5143 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/userattribute_test.go @@ -0,0 +1,109 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "encoding/base64" + "image/color" + "image/jpeg" + "testing" +) + +func TestParseUserAttribute(t *testing.T) { + r := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(userAttributePacket)) + for i := 0; i < 2; i++ { + p, err := Read(r) + if err != nil { + t.Fatal(err) + } + uat := p.(*UserAttribute) + imgs := uat.ImageData() + if len(imgs) != 1 { + t.Errorf("Unexpected number of images in user attribute packet: %d", len(imgs)) + } + if len(imgs[0]) != 3395 { + t.Errorf("Unexpected JPEG image size: %d", len(imgs[0])) + } + img, err := jpeg.Decode(bytes.NewBuffer(imgs[0])) + if err != nil { + t.Errorf("Error decoding JPEG image: %v", err) + } + // A pixel in my right eye. + pixel := color.NRGBAModel.Convert(img.At(56, 36)) + ref := color.NRGBA{R: 157, G: 128, B: 124, A: 255} + if pixel != ref { + t.Errorf("Unexpected pixel color: %v", pixel) + } + w := bytes.NewBuffer(nil) + err = uat.Serialize(w) + if err != nil { + t.Errorf("Error writing user attribute: %v", err) + } + r = bytes.NewBuffer(w.Bytes()) + } +} + +const userAttributePacket = ` +0cyWzJQBEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQIAAAEAAQAA/9sAQwAFAwQEBAMFBAQE +BQUFBgcMCAcHBwcPCgsJDBEPEhIRDxEQExYcFxMUGhUQERghGBocHR8fHxMXIiQiHiQcHh8e/9sA +QwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e +Hh4eHh4eHh4e/8AAEQgAZABkAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH +CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw +JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 +g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk +5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB +AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX +GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT +lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2 +9/j5+v/aAAwDAQACEQMRAD8A5uGP06VehQ4pIox04q5EnHSvAep+hIIl4zVuMHGPWmRrUWtalaaN +pU2oXsgSGJSxPr6ClvoitErs0Itqjc7BQOpPAFYmrfEnwjojtHNqaXEynBjtx5hH4jj9a8B8d+Od +W8UXZjWR4LJT+7t0Jwfc+prnIdO1CWZEW2mZ3HyDactXXDB3V5s8evm1namj6r0H4weCLtxG+ova +ueP30RA/MV6not1bX0Ed1ZzxzwyDKvGwZSPqK+Ff+ES8R8t/ZV2oHUmM10Hgbxp4m8BatEfNnWBH +/eWshOxx9Kmpg4te49RUM1kn+8Wh9zQ4P1FaMC7l465rjPh14y0fxnoseoaXOpfaPOgJ+eI98j09 +67W19M15bi4uzPSqTU480WXkjZkAyAR61DPE6OCSOalWRRgZxjvTb598sfU4FBwx5uY4T4feIm8P +TeJbAgc65NIM+8cX+FFeLfF3Vr3SfiNrMFrMypJMJcDPUqP8KK+kpVFyLU+ar037SXqX4hxVpMY7 +1UhPpVlT2rybKx9smWYz3NeH/EDVLzxt40j8O6bITaQybPlbKkjq39K9O8fasdH8IahfKxWQRFIy +Ou9uB/OuE/Z/0y3j1d9TuyoZCMs5xjuea1pLli5nn46q240l13PcfhN8EvDNtpcEl/CklyVBLuMk +mvU/Dfwo0BL/AO13FjEDD/qyV7Vn+CvGPg8zRpJrVm8ikLtEg6+1ew2dxZ3EQaJgysuQPasH7eXW +1zzsbVhT92kk/PsYieEND+zlPs6c/wCyAPyryH4wfCPRtW0u6j+xRLOxLxSoADkDpXY+MPjJ4c0S +9k082d3O8ZKkxw5XI96ytK+IGk+IpFjRpod+Qq3C7QT6A1E6NenaXbqRg6rlLlqS0fRnxjpd1r/w +w8afa7GWRPKbZLGeBKmeVNfZngLxNaeKfDdprVjxHcLlkJ5Vh1H5185/tDad9h8XOsqAw3Cb0cjq +CfX61P8AsveKf7L8T3fhe5nxa3g324YniQdh9R/KuivTdSmp9TXB1/Z1nRlsfU249QBx1pWfcwI7 +Cq6u2Ovamb9rYz16V5x7Psz5q/aJhZfibcupIElvE3H+7j+lFbXx9szP45jlUfeso8/99OKK9elL +3EeNVopzZVharCtxVRGGMk02S5JyFOB69zWTieypnL/GksfB+0cr9oQt69awPhPpD69Y3Ky3DWth +CWluGU4LAdq3vibGs/g68BJygVxjrwRW5+ztoRv/AAs8EeCZnO/J/hzz/Kumi4wp3kePjlOdZKPY +ml8Mvo6WM9ppi7J0EkQYMzkb1X0wW+bJHGACa+ivg14huZPCkjXUO6SImIYOQAP6UQ2sGneHmiWF +CYoSAAuM8etXfhBpMr+EZ3SSNRcMx6ZxWdes6ytBGSwkMNFuo7pnP614Ut9Zn1C4uLySKcwObGFA +Qnm4+XcR71h+CfDHiKCQWuv2YWFtw+bBZQD8rcE8n2Ney+GbGGQSM6I7xvtI681rXdp8hKRRp6t3 +FYPE1VDlsY1nQjWdl+J8w/tOeDZZ/AMd/EGefTHyxxyYjwfyODXg3waRh8UtEcFh+8Jb8FNfZPxh +Ak8J6nbPIsiyW7LnseK+Ofh99ptPHFnf2lu0y2twGcKuSEPB/Q1WHk50miq1o14TXU+xop+On61H +NMC6Nis1LgsAcUTSt1APFcXJZn0EqmhyvxA037friTYziBV6f7Tf40Vr3k4aXLx5OMZIzRXZB2ik +efJXbPHJJcnaD9aN2R1qoGO8/WkuLlIV+YjdjpXSonQ5lTxfiTwzqCnkeQxx9BWx+zPrQsrBFYja +zEfrXL6lfie3khcjY6lSPUGud+G3iA6FrY0uQ/KJsA9gCa0jSvFpnBi6tpKSPu++nsIfDFxeXciR +qIicscY4rxTwB8RUkn1axsPEf2LTYx85kTGzqCUP8VcJ47+JOs+I0Hhq1njjt/ufIeSvq1VtE+Gs +eoaUbSHUrkHdu3WtuX5Ix81XRh7OL5jirVpV5Whdn0F8C/iX4auVn0i612T7bASoe8wjTAd89K9g +vtSt5NMa4t5lkRhgOh3Dn6V8aaz8KZrIR3OlQ6r56LySmSxxz06Vo/CHx34h0rxBP4XvJ5AjK2RP +nEbAEj6ZxjPrWM6fMmoswqJxqJ1VZnqHxn1NLPwveqWHmNC2BnnNcD8DfDkGi+CH1m+ijN1qMzNA +4GSIiAMf+hVxPxU8Tapc3c0F9MGCn5GU5BX0Pau3+HmrT3XgXSIJCBHDGdgAx1NYSpezha52Yauq +1dya2Wh2onAIwTj1p0lxxWWLkhRyCKWa5O3ORXOos9KVQluZm83j0oqi84JyWH50Vdmc7ep43d3I +t1Z2Iz2FYdxeSTsxyRnvTdVuDNcNluM9KrKcg817NOnZGNbEXdkNckjrXGeIIprPxFFdRHAlIwem +COtdmxrG8Q2cd/ZNExw45RvQ1bVjim+dWNzw7eaTD4mN3dndCQCo6hmI5zXpj/Ea/wBHjkh0kwRW +xXEfl4yTxXzXZalJDL9nuWKMmRnHcV2Hh3WreCyYXW2SWQhd5P3F6n+lS43d2cTm6d7Ox9EWPxH1 +ODQxPqWpCaSU/ukUc4z3/WvKW8UhviAdaMewYZG98gj9c1ymoa8LyWOJHwkTDaVPb0qpr+q2m6Nb +cfvNo349az9mou9iZVXNWbub3jm98/Vza2ReV7lsJg/e3dsV654UR9N0K0sZP9ZDGFbHr3rzL4P+ +H7rXfEEWr3I3W1qf3IYdW9fwqDxf4k8UeH/G95p08kscHmk25dPlZT0we9YTj7SXKjpw1aNG8mj3 +FLv5ccU959ycnmvKPDnxB82YQarGsZPAlTp+IrvIr1ZIgySKwIyCOhFYTpyg9T0qWIhVV4svzPvf +IdhgY4orPachj81FRdmtzxqdiZmJ9aQEgdqZcPtmbJ71DJcAZ5r20kkeXJtsfPIQDwPzrG1a+S3i +LyHAHvmp7y7HOD1rlNdm+1T7Acovf3o+J2RMpezjzMvrob67pX9o2ShZlYgg/wAWKxZLLWLZ/Ke3 +mVh14yK9M+BMC3dre2ko3LHKCB7EV7EngeGQJdQ7HyBkMKS0djgq1W3c+XtK03U522RwzsTwNiEk +ntXoHgf4calql9El/G8UZbLfLyfr7V9FeGvh+s+0Lbxxcglu2K1NW1nwN4Gk/wBLuI57tV5jjwzE +/QVNS+0dWYRqNvXRFv4eeCodKsY1ggVIY1G3K4z714h+1Jqul3GpwaXYeXJLbzgyyrg4b+6D+HNb +vjz436zq9m+naHF/ZdkeGfOZXH17V4Vqt2b29K+ZuOc5bnce5zWdPBShL2lTfojSeJhy+zp/NjVz +1Bwa6DSfFGq6fbJFDKrov8DjPFcu97ZxsUe4jVhwVJ5Bpp1mwQiLewJPXacVq6fNpYyjOUXdHoKf +EG8VQHsInbuVcgflRXnt5fIs2FYHgcgUVi8LG+xusdW/mN7U2KgEVkTzPt60UVfQ9eHxGHrV1MGi +iD4V25x1qvdgLAMd6KK0pbHm4x++dp8FtUubLxJ5EIjMc+A4Za+qfD8pe1JZVOBmiinW3RyRPMfi +R8QPE638+k2l6LK0Hylbddhb6nOa80mlkcmWR2kcnlnOSaKK7qCXKcNdu5narcSrAoBxvODWJIga +VckjDdqKKwq/EaQ0gUdbjQ6mr7QGBUcd6tPBC6gtGpOOuKKKie5qn7qIpEXd0HSiiimSf//Z` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userid.go b/vendor/golang.org/x/crypto/openpgp/packet/userid.go new file mode 100644 index 00000000..d6bea7d4 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/userid.go @@ -0,0 +1,160 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "io" + "io/ioutil" + "strings" +) + +// UserId contains text that is intended to represent the name and email +// address of the key holder. See RFC 4880, section 5.11. By convention, this +// takes the form "Full Name (Comment) " +type UserId struct { + Id string // By convention, this takes the form "Full Name (Comment) " which is split out in the fields below. + + Name, Comment, Email string +} + +func hasInvalidCharacters(s string) bool { + for _, c := range s { + switch c { + case '(', ')', '<', '>', 0: + return true + } + } + return false +} + +// NewUserId returns a UserId or nil if any of the arguments contain invalid +// characters. The invalid characters are '\x00', '(', ')', '<' and '>' +func NewUserId(name, comment, email string) *UserId { + // RFC 4880 doesn't deal with the structure of userid strings; the + // name, comment and email form is just a convention. However, there's + // no convention about escaping the metacharacters and GPG just refuses + // to create user ids where, say, the name contains a '('. We mirror + // this behaviour. + + if hasInvalidCharacters(name) || hasInvalidCharacters(comment) || hasInvalidCharacters(email) { + return nil + } + + uid := new(UserId) + uid.Name, uid.Comment, uid.Email = name, comment, email + uid.Id = name + if len(comment) > 0 { + if len(uid.Id) > 0 { + uid.Id += " " + } + uid.Id += "(" + uid.Id += comment + uid.Id += ")" + } + if len(email) > 0 { + if len(uid.Id) > 0 { + uid.Id += " " + } + uid.Id += "<" + uid.Id += email + uid.Id += ">" + } + return uid +} + +func (uid *UserId) parse(r io.Reader) (err error) { + // RFC 4880, section 5.11 + b, err := ioutil.ReadAll(r) + if err != nil { + return + } + uid.Id = string(b) + uid.Name, uid.Comment, uid.Email = parseUserId(uid.Id) + return +} + +// Serialize marshals uid to w in the form of an OpenPGP packet, including +// header. +func (uid *UserId) Serialize(w io.Writer) error { + err := serializeHeader(w, packetTypeUserId, len(uid.Id)) + if err != nil { + return err + } + _, err = w.Write([]byte(uid.Id)) + return err +} + +// parseUserId extracts the name, comment and email from a user id string that +// is formatted as "Full Name (Comment) ". +func parseUserId(id string) (name, comment, email string) { + var n, c, e struct { + start, end int + } + var state int + + for offset, rune := range id { + switch state { + case 0: + // Entering name + n.start = offset + state = 1 + fallthrough + case 1: + // In name + if rune == '(' { + state = 2 + n.end = offset + } else if rune == '<' { + state = 5 + n.end = offset + } + case 2: + // Entering comment + c.start = offset + state = 3 + fallthrough + case 3: + // In comment + if rune == ')' { + state = 4 + c.end = offset + } + case 4: + // Between comment and email + if rune == '<' { + state = 5 + } + case 5: + // Entering email + e.start = offset + state = 6 + fallthrough + case 6: + // In email + if rune == '>' { + state = 7 + e.end = offset + } + default: + // After email + } + } + switch state { + case 1: + // ended in the name + n.end = len(id) + case 3: + // ended in comment + c.end = len(id) + case 6: + // ended in email + e.end = len(id) + } + + name = strings.TrimSpace(id[n.start:n.end]) + comment = strings.TrimSpace(id[c.start:c.end]) + email = strings.TrimSpace(id[e.start:e.end]) + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userid_test.go b/vendor/golang.org/x/crypto/openpgp/packet/userid_test.go new file mode 100644 index 00000000..29681938 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/packet/userid_test.go @@ -0,0 +1,87 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "testing" +) + +var userIdTests = []struct { + id string + name, comment, email string +}{ + {"", "", "", ""}, + {"John Smith", "John Smith", "", ""}, + {"John Smith ()", "John Smith", "", ""}, + {"John Smith () <>", "John Smith", "", ""}, + {"(comment", "", "comment", ""}, + {"(comment)", "", "comment", ""}, + {" sdfk", "", "", "email"}, + {" John Smith ( Comment ) asdkflj < email > lksdfj", "John Smith", "Comment", "email"}, + {" John Smith < email > lksdfj", "John Smith", "", "email"}, + {"("}, + {"foo", "bar", "", "foo (bar)"}, + {"foo", "", "baz", "foo "}, + {"", "bar", "baz", "(bar) "}, + {"foo", "bar", "baz", "foo (bar) "}, +} + +func TestNewUserId(t *testing.T) { + for i, test := range newUserIdTests { + uid := NewUserId(test.name, test.comment, test.email) + if uid == nil { + t.Errorf("#%d: returned nil", i) + continue + } + if uid.Id != test.id { + t.Errorf("#%d: got '%s', want '%s'", i, uid.Id, test.id) + } + } +} + +var invalidNewUserIdTests = []struct { + name, comment, email string +}{ + {"foo(", "", ""}, + {"foo<", "", ""}, + {"", "bar)", ""}, + {"", "bar<", ""}, + {"", "", "baz>"}, + {"", "", "baz)"}, + {"", "", "baz\x00"}, +} + +func TestNewUserIdWithInvalidInput(t *testing.T) { + for i, test := range invalidNewUserIdTests { + if uid := NewUserId(test.name, test.comment, test.email); uid != nil { + t.Errorf("#%d: returned non-nil value: %#v", i, uid) + } + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/read.go b/vendor/golang.org/x/crypto/openpgp/read.go new file mode 100644 index 00000000..6ec664f4 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/read.go @@ -0,0 +1,442 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package openpgp implements high level operations on OpenPGP messages. +package openpgp // import "golang.org/x/crypto/openpgp" + +import ( + "crypto" + _ "crypto/sha256" + "hash" + "io" + "strconv" + + "golang.org/x/crypto/openpgp/armor" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/packet" +) + +// SignatureType is the armor type for a PGP signature. +var SignatureType = "PGP SIGNATURE" + +// readArmored reads an armored block with the given type. +func readArmored(r io.Reader, expectedType string) (body io.Reader, err error) { + block, err := armor.Decode(r) + if err != nil { + return + } + + if block.Type != expectedType { + return nil, errors.InvalidArgumentError("expected '" + expectedType + "', got: " + block.Type) + } + + return block.Body, nil +} + +// MessageDetails contains the result of parsing an OpenPGP encrypted and/or +// signed message. +type MessageDetails struct { + IsEncrypted bool // true if the message was encrypted. + EncryptedToKeyIds []uint64 // the list of recipient key ids. + IsSymmetricallyEncrypted bool // true if a passphrase could have decrypted the message. + DecryptedWith Key // the private key used to decrypt the message, if any. + IsSigned bool // true if the message is signed. + SignedByKeyId uint64 // the key id of the signer, if any. + SignedBy *Key // the key of the signer, if available. + LiteralData *packet.LiteralData // the metadata of the contents + UnverifiedBody io.Reader // the contents of the message. + + // If IsSigned is true and SignedBy is non-zero then the signature will + // be verified as UnverifiedBody is read. The signature cannot be + // checked until the whole of UnverifiedBody is read so UnverifiedBody + // must be consumed until EOF before the data can be trusted. Even if a + // message isn't signed (or the signer is unknown) the data may contain + // an authentication code that is only checked once UnverifiedBody has + // been consumed. Once EOF has been seen, the following fields are + // valid. (An authentication code failure is reported as a + // SignatureError error when reading from UnverifiedBody.) + SignatureError error // nil if the signature is good. + Signature *packet.Signature // the signature packet itself, if v4 (default) + SignatureV3 *packet.SignatureV3 // the signature packet if it is a v2 or v3 signature + + decrypted io.ReadCloser +} + +// A PromptFunction is used as a callback by functions that may need to decrypt +// a private key, or prompt for a passphrase. It is called with a list of +// acceptable, encrypted private keys and a boolean that indicates whether a +// passphrase is usable. It should either decrypt a private key or return a +// passphrase to try. If the decrypted private key or given passphrase isn't +// correct, the function will be called again, forever. Any error returned will +// be passed up. +type PromptFunction func(keys []Key, symmetric bool) ([]byte, error) + +// A keyEnvelopePair is used to store a private key with the envelope that +// contains a symmetric key, encrypted with that key. +type keyEnvelopePair struct { + key Key + encryptedKey *packet.EncryptedKey +} + +// ReadMessage parses an OpenPGP message that may be signed and/or encrypted. +// The given KeyRing should contain both public keys (for signature +// verification) and, possibly encrypted, private keys for decrypting. +// If config is nil, sensible defaults will be used. +func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error) { + var p packet.Packet + + var symKeys []*packet.SymmetricKeyEncrypted + var pubKeys []keyEnvelopePair + var se *packet.SymmetricallyEncrypted + + packets := packet.NewReader(r) + md = new(MessageDetails) + md.IsEncrypted = true + + // The message, if encrypted, starts with a number of packets + // containing an encrypted decryption key. The decryption key is either + // encrypted to a public key, or with a passphrase. This loop + // collects these packets. +ParsePackets: + for { + p, err = packets.Next() + if err != nil { + return nil, err + } + switch p := p.(type) { + case *packet.SymmetricKeyEncrypted: + // This packet contains the decryption key encrypted with a passphrase. + md.IsSymmetricallyEncrypted = true + symKeys = append(symKeys, p) + case *packet.EncryptedKey: + // This packet contains the decryption key encrypted to a public key. + md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) + switch p.Algo { + case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal: + break + default: + continue + } + var keys []Key + if p.KeyId == 0 { + keys = keyring.DecryptionKeys() + } else { + keys = keyring.KeysById(p.KeyId) + } + for _, k := range keys { + pubKeys = append(pubKeys, keyEnvelopePair{k, p}) + } + case *packet.SymmetricallyEncrypted: + se = p + break ParsePackets + case *packet.Compressed, *packet.LiteralData, *packet.OnePassSignature: + // This message isn't encrypted. + if len(symKeys) != 0 || len(pubKeys) != 0 { + return nil, errors.StructuralError("key material not followed by encrypted message") + } + packets.Unread(p) + return readSignedMessage(packets, nil, keyring) + } + } + + var candidates []Key + var decrypted io.ReadCloser + + // Now that we have the list of encrypted keys we need to decrypt at + // least one of them or, if we cannot, we need to call the prompt + // function so that it can decrypt a key or give us a passphrase. +FindKey: + for { + // See if any of the keys already have a private key available + candidates = candidates[:0] + candidateFingerprints := make(map[string]bool) + + for _, pk := range pubKeys { + if pk.key.PrivateKey == nil { + continue + } + if !pk.key.PrivateKey.Encrypted { + if len(pk.encryptedKey.Key) == 0 { + pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) + } + if len(pk.encryptedKey.Key) == 0 { + continue + } + decrypted, err = se.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) + if err != nil && err != errors.ErrKeyIncorrect { + return nil, err + } + if decrypted != nil { + md.DecryptedWith = pk.key + break FindKey + } + } else { + fpr := string(pk.key.PublicKey.Fingerprint[:]) + if v := candidateFingerprints[fpr]; v { + continue + } + candidates = append(candidates, pk.key) + candidateFingerprints[fpr] = true + } + } + + if len(candidates) == 0 && len(symKeys) == 0 { + return nil, errors.ErrKeyIncorrect + } + + if prompt == nil { + return nil, errors.ErrKeyIncorrect + } + + passphrase, err := prompt(candidates, len(symKeys) != 0) + if err != nil { + return nil, err + } + + // Try the symmetric passphrase first + if len(symKeys) != 0 && passphrase != nil { + for _, s := range symKeys { + key, cipherFunc, err := s.Decrypt(passphrase) + if err == nil { + decrypted, err = se.Decrypt(cipherFunc, key) + if err != nil && err != errors.ErrKeyIncorrect { + return nil, err + } + if decrypted != nil { + break FindKey + } + } + + } + } + } + + md.decrypted = decrypted + if err := packets.Push(decrypted); err != nil { + return nil, err + } + return readSignedMessage(packets, md, keyring) +} + +// readSignedMessage reads a possibly signed message if mdin is non-zero then +// that structure is updated and returned. Otherwise a fresh MessageDetails is +// used. +func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing) (md *MessageDetails, err error) { + if mdin == nil { + mdin = new(MessageDetails) + } + md = mdin + + var p packet.Packet + var h hash.Hash + var wrappedHash hash.Hash +FindLiteralData: + for { + p, err = packets.Next() + if err != nil { + return nil, err + } + switch p := p.(type) { + case *packet.Compressed: + if err := packets.Push(p.Body); err != nil { + return nil, err + } + case *packet.OnePassSignature: + if !p.IsLast { + return nil, errors.UnsupportedError("nested signatures") + } + + h, wrappedHash, err = hashForSignature(p.Hash, p.SigType) + if err != nil { + md = nil + return + } + + md.IsSigned = true + md.SignedByKeyId = p.KeyId + keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) + if len(keys) > 0 { + md.SignedBy = &keys[0] + } + case *packet.LiteralData: + md.LiteralData = p + break FindLiteralData + } + } + + if md.SignedBy != nil { + md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md} + } else if md.decrypted != nil { + md.UnverifiedBody = checkReader{md} + } else { + md.UnverifiedBody = md.LiteralData.Body + } + + return md, nil +} + +// hashForSignature returns a pair of hashes that can be used to verify a +// signature. The signature may specify that the contents of the signed message +// should be preprocessed (i.e. to normalize line endings). Thus this function +// returns two hashes. The second should be used to hash the message itself and +// performs any needed preprocessing. +func hashForSignature(hashId crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { + if !hashId.Available() { + return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashId))) + } + h := hashId.New() + + switch sigType { + case packet.SigTypeBinary: + return h, h, nil + case packet.SigTypeText: + return h, NewCanonicalTextHash(h), nil + } + + return nil, nil, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(sigType))) +} + +// checkReader wraps an io.Reader from a LiteralData packet. When it sees EOF +// it closes the ReadCloser from any SymmetricallyEncrypted packet to trigger +// MDC checks. +type checkReader struct { + md *MessageDetails +} + +func (cr checkReader) Read(buf []byte) (n int, err error) { + n, err = cr.md.LiteralData.Body.Read(buf) + if err == io.EOF { + mdcErr := cr.md.decrypted.Close() + if mdcErr != nil { + err = mdcErr + } + } + return +} + +// signatureCheckReader wraps an io.Reader from a LiteralData packet and hashes +// the data as it is read. When it sees an EOF from the underlying io.Reader +// it parses and checks a trailing Signature packet and triggers any MDC checks. +type signatureCheckReader struct { + packets *packet.Reader + h, wrappedHash hash.Hash + md *MessageDetails +} + +func (scr *signatureCheckReader) Read(buf []byte) (n int, err error) { + n, err = scr.md.LiteralData.Body.Read(buf) + scr.wrappedHash.Write(buf[:n]) + if err == io.EOF { + var p packet.Packet + p, scr.md.SignatureError = scr.packets.Next() + if scr.md.SignatureError != nil { + return + } + + var ok bool + if scr.md.Signature, ok = p.(*packet.Signature); ok { + scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignature(scr.h, scr.md.Signature) + } else if scr.md.SignatureV3, ok = p.(*packet.SignatureV3); ok { + scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignatureV3(scr.h, scr.md.SignatureV3) + } else { + scr.md.SignatureError = errors.StructuralError("LiteralData not followed by Signature") + return + } + + // The SymmetricallyEncrypted packet, if any, might have an + // unsigned hash of its own. In order to check this we need to + // close that Reader. + if scr.md.decrypted != nil { + mdcErr := scr.md.decrypted.Close() + if mdcErr != nil { + err = mdcErr + } + } + } + return +} + +// CheckDetachedSignature takes a signed file and a detached signature and +// returns the signer if the signature is valid. If the signer isn't known, +// ErrUnknownIssuer is returned. +func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { + var issuerKeyId uint64 + var hashFunc crypto.Hash + var sigType packet.SignatureType + var keys []Key + var p packet.Packet + + packets := packet.NewReader(signature) + for { + p, err = packets.Next() + if err == io.EOF { + return nil, errors.ErrUnknownIssuer + } + if err != nil { + return nil, err + } + + switch sig := p.(type) { + case *packet.Signature: + if sig.IssuerKeyId == nil { + return nil, errors.StructuralError("signature doesn't have an issuer") + } + issuerKeyId = *sig.IssuerKeyId + hashFunc = sig.Hash + sigType = sig.SigType + case *packet.SignatureV3: + issuerKeyId = sig.IssuerKeyId + hashFunc = sig.Hash + sigType = sig.SigType + default: + return nil, errors.StructuralError("non signature packet found") + } + + keys = keyring.KeysByIdUsage(issuerKeyId, packet.KeyFlagSign) + if len(keys) > 0 { + break + } + } + + if len(keys) == 0 { + panic("unreachable") + } + + h, wrappedHash, err := hashForSignature(hashFunc, sigType) + if err != nil { + return nil, err + } + + if _, err := io.Copy(wrappedHash, signed); err != nil && err != io.EOF { + return nil, err + } + + for _, key := range keys { + switch sig := p.(type) { + case *packet.Signature: + err = key.PublicKey.VerifySignature(h, sig) + case *packet.SignatureV3: + err = key.PublicKey.VerifySignatureV3(h, sig) + default: + panic("unreachable") + } + + if err == nil { + return key.Entity, nil + } + } + + return nil, err +} + +// CheckArmoredDetachedSignature performs the same actions as +// CheckDetachedSignature but expects the signature to be armored. +func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { + body, err := readArmored(signature, SignatureType) + if err != nil { + return + } + + return CheckDetachedSignature(keyring, signed, body) +} diff --git a/vendor/golang.org/x/crypto/openpgp/read_test.go b/vendor/golang.org/x/crypto/openpgp/read_test.go new file mode 100644 index 00000000..1fbfbac4 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/read_test.go @@ -0,0 +1,613 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "bytes" + _ "crypto/sha512" + "encoding/hex" + "io" + "io/ioutil" + "strings" + "testing" + + "golang.org/x/crypto/openpgp/armor" + "golang.org/x/crypto/openpgp/errors" +) + +func readerFromHex(s string) io.Reader { + data, err := hex.DecodeString(s) + if err != nil { + panic("readerFromHex: bad input") + } + return bytes.NewBuffer(data) +} + +func TestReadKeyRing(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + if err != nil { + t.Error(err) + return + } + if len(kring) != 2 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB || uint32(kring[1].PrimaryKey.KeyId) != 0x1E35246B { + t.Errorf("bad keyring: %#v", kring) + } +} + +func TestRereadKeyRing(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + if err != nil { + t.Errorf("error in initial parse: %s", err) + return + } + out := new(bytes.Buffer) + err = kring[0].Serialize(out) + if err != nil { + t.Errorf("error in serialization: %s", err) + return + } + kring, err = ReadKeyRing(out) + if err != nil { + t.Errorf("error in second parse: %s", err) + return + } + + if len(kring) != 1 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB { + t.Errorf("bad keyring: %#v", kring) + } +} + +func TestReadPrivateKeyRing(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) + if err != nil { + t.Error(err) + return + } + if len(kring) != 2 || uint32(kring[0].PrimaryKey.KeyId) != 0xC20C31BB || uint32(kring[1].PrimaryKey.KeyId) != 0x1E35246B || kring[0].PrimaryKey == nil { + t.Errorf("bad keyring: %#v", kring) + } +} + +func TestReadDSAKey(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(dsaTestKeyHex)) + if err != nil { + t.Error(err) + return + } + if len(kring) != 1 || uint32(kring[0].PrimaryKey.KeyId) != 0x0CCC0360 { + t.Errorf("bad parse: %#v", kring) + } +} + +func TestReadP256Key(t *testing.T) { + kring, err := ReadKeyRing(readerFromHex(p256TestKeyHex)) + if err != nil { + t.Error(err) + return + } + if len(kring) != 1 || uint32(kring[0].PrimaryKey.KeyId) != 0x5918513E { + t.Errorf("bad parse: %#v", kring) + } +} + +func TestDSAHashTruncatation(t *testing.T) { + // dsaKeyWithSHA512 was generated with GnuPG and --cert-digest-algo + // SHA512 in order to require DSA hash truncation to verify correctly. + _, err := ReadKeyRing(readerFromHex(dsaKeyWithSHA512)) + if err != nil { + t.Error(err) + } +} + +func TestGetKeyById(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + + keys := kring.KeysById(0xa34d7e18c20c31bb) + if len(keys) != 1 || keys[0].Entity != kring[0] { + t.Errorf("bad result for 0xa34d7e18c20c31bb: %#v", keys) + } + + keys = kring.KeysById(0xfd94408d4543314f) + if len(keys) != 1 || keys[0].Entity != kring[0] { + t.Errorf("bad result for 0xa34d7e18c20c31bb: %#v", keys) + } +} + +func checkSignedMessage(t *testing.T, signedHex, expected string) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + + md, err := ReadMessage(readerFromHex(signedHex), kring, nil, nil) + if err != nil { + t.Error(err) + return + } + + if !md.IsSigned || md.SignedByKeyId != 0xa34d7e18c20c31bb || md.SignedBy == nil || md.IsEncrypted || md.IsSymmetricallyEncrypted || len(md.EncryptedToKeyIds) != 0 || md.IsSymmetricallyEncrypted { + t.Errorf("bad MessageDetails: %#v", md) + } + + contents, err := ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Errorf("error reading UnverifiedBody: %s", err) + } + if string(contents) != expected { + t.Errorf("bad UnverifiedBody got:%s want:%s", string(contents), expected) + } + if md.SignatureError != nil || md.Signature == nil { + t.Errorf("failed to validate: %s", md.SignatureError) + } +} + +func TestSignedMessage(t *testing.T) { + checkSignedMessage(t, signedMessageHex, signedInput) +} + +func TestTextSignedMessage(t *testing.T) { + checkSignedMessage(t, signedTextMessageHex, signedTextInput) +} + +// The reader should detect "compressed quines", which are compressed +// packets that expand into themselves and cause an infinite recursive +// parsing loop. +// The packet in this test case comes from Taylor R. Campbell at +// http://mumble.net/~campbell/misc/pgp-quine/ +func TestCampbellQuine(t *testing.T) { + md, err := ReadMessage(readerFromHex(campbellQuine), nil, nil, nil) + if md != nil { + t.Errorf("Reading a compressed quine should not return any data: %#v", md) + } + structural, ok := err.(errors.StructuralError) + if !ok { + t.Fatalf("Unexpected class of error: %T", err) + } + if !strings.Contains(string(structural), "too many layers of packets") { + t.Fatalf("Unexpected error: %s", err) + } +} + +var signedEncryptedMessageTests = []struct { + keyRingHex string + messageHex string + signedByKeyId uint64 + encryptedToKeyId uint64 +}{ + { + testKeys1And2PrivateHex, + signedEncryptedMessageHex, + 0xa34d7e18c20c31bb, + 0x2a67d68660df41c7, + }, + { + dsaElGamalTestKeysHex, + signedEncryptedMessage2Hex, + 0x33af447ccd759b09, + 0xcf6a7abcd43e3673, + }, +} + +func TestSignedEncryptedMessage(t *testing.T) { + for i, test := range signedEncryptedMessageTests { + expected := "Signed and encrypted message\n" + kring, _ := ReadKeyRing(readerFromHex(test.keyRingHex)) + prompt := func(keys []Key, symmetric bool) ([]byte, error) { + if symmetric { + t.Errorf("prompt: message was marked as symmetrically encrypted") + return nil, errors.ErrKeyIncorrect + } + + if len(keys) == 0 { + t.Error("prompt: no keys requested") + return nil, errors.ErrKeyIncorrect + } + + err := keys[0].PrivateKey.Decrypt([]byte("passphrase")) + if err != nil { + t.Errorf("prompt: error decrypting key: %s", err) + return nil, errors.ErrKeyIncorrect + } + + return nil, nil + } + + md, err := ReadMessage(readerFromHex(test.messageHex), kring, prompt, nil) + if err != nil { + t.Errorf("#%d: error reading message: %s", i, err) + return + } + + if !md.IsSigned || md.SignedByKeyId != test.signedByKeyId || md.SignedBy == nil || !md.IsEncrypted || md.IsSymmetricallyEncrypted || len(md.EncryptedToKeyIds) == 0 || md.EncryptedToKeyIds[0] != test.encryptedToKeyId { + t.Errorf("#%d: bad MessageDetails: %#v", i, md) + } + + contents, err := ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Errorf("#%d: error reading UnverifiedBody: %s", i, err) + } + if string(contents) != expected { + t.Errorf("#%d: bad UnverifiedBody got:%s want:%s", i, string(contents), expected) + } + + if md.SignatureError != nil || md.Signature == nil { + t.Errorf("#%d: failed to validate: %s", i, md.SignatureError) + } + } +} + +func TestUnspecifiedRecipient(t *testing.T) { + expected := "Recipient unspecified\n" + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) + + md, err := ReadMessage(readerFromHex(recipientUnspecifiedHex), kring, nil, nil) + if err != nil { + t.Errorf("error reading message: %s", err) + return + } + + contents, err := ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Errorf("error reading UnverifiedBody: %s", err) + } + if string(contents) != expected { + t.Errorf("bad UnverifiedBody got:%s want:%s", string(contents), expected) + } +} + +func TestSymmetricallyEncrypted(t *testing.T) { + firstTimeCalled := true + + prompt := func(keys []Key, symmetric bool) ([]byte, error) { + if len(keys) != 0 { + t.Errorf("prompt: len(keys) = %d (want 0)", len(keys)) + } + + if !symmetric { + t.Errorf("symmetric is not set") + } + + if firstTimeCalled { + firstTimeCalled = false + return []byte("wrongpassword"), nil + } + + return []byte("password"), nil + } + + md, err := ReadMessage(readerFromHex(symmetricallyEncryptedCompressedHex), nil, prompt, nil) + if err != nil { + t.Errorf("ReadMessage: %s", err) + return + } + + contents, err := ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Errorf("ReadAll: %s", err) + } + + expectedCreationTime := uint32(1295992998) + if md.LiteralData.Time != expectedCreationTime { + t.Errorf("LiteralData.Time is %d, want %d", md.LiteralData.Time, expectedCreationTime) + } + + const expected = "Symmetrically encrypted.\n" + if string(contents) != expected { + t.Errorf("contents got: %s want: %s", string(contents), expected) + } +} + +func testDetachedSignature(t *testing.T, kring KeyRing, signature io.Reader, sigInput, tag string, expectedSignerKeyId uint64) { + signed := bytes.NewBufferString(sigInput) + signer, err := CheckDetachedSignature(kring, signed, signature) + if err != nil { + t.Errorf("%s: signature error: %s", tag, err) + return + } + if signer == nil { + t.Errorf("%s: signer is nil", tag) + return + } + if signer.PrimaryKey.KeyId != expectedSignerKeyId { + t.Errorf("%s: wrong signer got:%x want:%x", tag, signer.PrimaryKey.KeyId, expectedSignerKeyId) + } +} + +func TestDetachedSignature(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + testDetachedSignature(t, kring, readerFromHex(detachedSignatureHex), signedInput, "binary", testKey1KeyId) + testDetachedSignature(t, kring, readerFromHex(detachedSignatureTextHex), signedInput, "text", testKey1KeyId) + testDetachedSignature(t, kring, readerFromHex(detachedSignatureV3TextHex), signedInput, "v3", testKey1KeyId) + + incorrectSignedInput := signedInput + "X" + _, err := CheckDetachedSignature(kring, bytes.NewBufferString(incorrectSignedInput), readerFromHex(detachedSignatureHex)) + if err == nil { + t.Fatal("CheckDetachedSignature returned without error for bad signature") + } + if err == errors.ErrUnknownIssuer { + t.Fatal("CheckDetachedSignature returned ErrUnknownIssuer when the signer was known, but the signature invalid") + } +} + +func TestDetachedSignatureDSA(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyHex)) + testDetachedSignature(t, kring, readerFromHex(detachedSignatureDSAHex), signedInput, "binary", testKey3KeyId) +} + +func TestMultipleSignaturePacketsDSA(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyHex)) + testDetachedSignature(t, kring, readerFromHex(missingHashFunctionHex+detachedSignatureDSAHex), signedInput, "binary", testKey3KeyId) +} + +func TestDetachedSignatureP256(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(p256TestKeyHex)) + testDetachedSignature(t, kring, readerFromHex(detachedSignatureP256Hex), signedInput, "binary", testKeyP256KeyId) +} + +func testHashFunctionError(t *testing.T, signatureHex string) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + _, err := CheckDetachedSignature(kring, nil, readerFromHex(signatureHex)) + if err == nil { + t.Fatal("Packet with bad hash type was correctly parsed") + } + unsupported, ok := err.(errors.UnsupportedError) + if !ok { + t.Fatalf("Unexpected class of error: %s", err) + } + if !strings.Contains(string(unsupported), "hash ") { + t.Fatalf("Unexpected error: %s", err) + } +} + +func TestUnknownHashFunction(t *testing.T) { + // unknownHashFunctionHex contains a signature packet with hash + // function type 153 (which isn't a real hash function id). + testHashFunctionError(t, unknownHashFunctionHex) +} + +func TestMissingHashFunction(t *testing.T) { + // missingHashFunctionHex contains a signature packet that uses + // RIPEMD160, which isn't compiled in. Since that's the only signature + // packet we don't find any suitable packets and end up with ErrUnknownIssuer + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2Hex)) + _, err := CheckDetachedSignature(kring, nil, readerFromHex(missingHashFunctionHex)) + if err == nil { + t.Fatal("Packet with missing hash type was correctly parsed") + } + if err != errors.ErrUnknownIssuer { + t.Fatalf("Unexpected class of error: %s", err) + } +} + +func TestReadingArmoredPrivateKey(t *testing.T) { + el, err := ReadArmoredKeyRing(bytes.NewBufferString(armoredPrivateKeyBlock)) + if err != nil { + t.Error(err) + } + if len(el) != 1 { + t.Errorf("got %d entities, wanted 1\n", len(el)) + } +} + +func TestReadingArmoredPublicKey(t *testing.T) { + el, err := ReadArmoredKeyRing(bytes.NewBufferString(e2ePublicKey)) + if err != nil { + t.Error(err) + } + if len(el) != 1 { + t.Errorf("didn't get a valid entity") + } +} + +func TestNoArmoredData(t *testing.T) { + _, err := ReadArmoredKeyRing(bytes.NewBufferString("foo")) + if _, ok := err.(errors.InvalidArgumentError); !ok { + t.Errorf("error was not an InvalidArgumentError: %s", err) + } +} + +func testReadMessageError(t *testing.T, messageHex string) { + buf, err := hex.DecodeString(messageHex) + if err != nil { + t.Errorf("hex.DecodeString(): %v", err) + } + + kr, err := ReadKeyRing(new(bytes.Buffer)) + if err != nil { + t.Errorf("ReadKeyring(): %v", err) + } + + _, err = ReadMessage(bytes.NewBuffer(buf), kr, + func([]Key, bool) ([]byte, error) { + return []byte("insecure"), nil + }, nil) + + if err == nil { + t.Errorf("ReadMessage(): Unexpected nil error") + } +} + +func TestIssue11503(t *testing.T) { + testReadMessageError(t, "8c040402000aa430aa8228b9248b01fc899a91197130303030") +} + +func TestIssue11504(t *testing.T) { + testReadMessageError(t, "9303000130303030303030303030983002303030303030030000000130") +} + +// TestSignatureV3Message tests the verification of V3 signature, generated +// with a modern V4-style key. Some people have their clients set to generate +// V3 signatures, so it's useful to be able to verify them. +func TestSignatureV3Message(t *testing.T) { + sig, err := armor.Decode(strings.NewReader(signedMessageV3)) + if err != nil { + t.Error(err) + return + } + key, err := ReadArmoredKeyRing(strings.NewReader(keyV4forVerifyingSignedMessageV3)) + if err != nil { + t.Error(err) + return + } + md, err := ReadMessage(sig.Body, key, nil, nil) + if err != nil { + t.Error(err) + return + } + + _, err = ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Error(err) + return + } + + // We'll see a sig error here after reading in the UnverifiedBody above, + // if there was one to see. + if err = md.SignatureError; err != nil { + t.Error(err) + return + } + + if md.SignatureV3 == nil { + t.Errorf("No available signature after checking signature") + return + } + if md.Signature != nil { + t.Errorf("Did not expect a signature V4 back") + return + } + return +} + +const testKey1KeyId = 0xA34D7E18C20C31BB +const testKey3KeyId = 0x338934250CCC0360 +const testKeyP256KeyId = 0xd44a2c495918513e + +const signedInput = "Signed message\nline 2\nline 3\n" +const signedTextInput = "Signed message\r\nline 2\r\nline 3\r\n" + +const recipientUnspecifiedHex = "848c0300000000000000000103ff62d4d578d03cf40c3da998dfe216c074fa6ddec5e31c197c9666ba292830d91d18716a80f699f9d897389a90e6d62d0238f5f07a5248073c0f24920e4bc4a30c2d17ee4e0cae7c3d4aaa4e8dced50e3010a80ee692175fa0385f62ecca4b56ee6e9980aa3ec51b61b077096ac9e800edaf161268593eedb6cc7027ff5cb32745d250010d407a6221ae22ef18469b444f2822478c4d190b24d36371a95cb40087cdd42d9399c3d06a53c0673349bfb607927f20d1e122bde1e2bf3aa6cae6edf489629bcaa0689539ae3b718914d88ededc3b" + +const detachedSignatureHex = "889c04000102000605024d449cd1000a0910a34d7e18c20c31bb167603ff57718d09f28a519fdc7b5a68b6a3336da04df85e38c5cd5d5bd2092fa4629848a33d85b1729402a2aab39c3ac19f9d573f773cc62c264dc924c067a79dfd8a863ae06c7c8686120760749f5fd9b1e03a64d20a7df3446ddc8f0aeadeaeba7cbaee5c1e366d65b6a0c6cc749bcb912d2f15013f812795c2e29eb7f7b77f39ce77" + +const detachedSignatureTextHex = "889c04010102000605024d449d21000a0910a34d7e18c20c31bbc8c60400a24fbef7342603a41cb1165767bd18985d015fb72fe05db42db36cfb2f1d455967f1e491194fbf6cf88146222b23bf6ffbd50d17598d976a0417d3192ff9cc0034fd00f287b02e90418bbefe609484b09231e4e7a5f3562e199bf39909ab5276c4d37382fe088f6b5c3426fc1052865da8b3ab158672d58b6264b10823dc4b39" + +const detachedSignatureV3TextHex = "8900950305005255c25ca34d7e18c20c31bb0102bb3f04009f6589ef8a028d6e54f6eaf25432e590d31c3a41f4710897585e10c31e5e332c7f9f409af8512adceaff24d0da1474ab07aa7bce4f674610b010fccc5b579ae5eb00a127f272fb799f988ab8e4574c141da6dbfecfef7e6b2c478d9a3d2551ba741f260ee22bec762812f0053e05380bfdd55ad0f22d8cdf71b233fe51ae8a24" + +const detachedSignatureDSAHex = "884604001102000605024d6c4eac000a0910338934250ccc0360f18d00a087d743d6405ed7b87755476629600b8b694a39e900a0abff8126f46faf1547c1743c37b21b4ea15b8f83" + +const detachedSignatureP256Hex = "885e0400130a0006050256e5bb00000a0910d44a2c495918513edef001009841a4f792beb0befccb35c8838a6a87d9b936beaa86db6745ddc7b045eee0cf00fd1ac1f78306b17e965935dd3f8bae4587a76587e4af231efe19cc4011a8434817" + +const testKeys1And2Hex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b0020003b88d044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f0011010001889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab0020003988d044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b0020003b88d044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020003" + +const testKeys1And2PrivateHex = "9501d8044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd00110100010003ff4d91393b9a8e3430b14d6209df42f98dc927425b881f1209f319220841273a802a97c7bdb8b3a7740b3ab5866c4d1d308ad0d3a79bd1e883aacf1ac92dfe720285d10d08752a7efe3c609b1d00f17f2805b217be53999a7da7e493bfc3e9618fd17018991b8128aea70a05dbce30e4fbe626aa45775fa255dd9177aabf4df7cf0200c1ded12566e4bc2bb590455e5becfb2e2c9796482270a943343a7835de41080582c2be3caf5981aa838140e97afa40ad652a0b544f83eb1833b0957dce26e47b0200eacd6046741e9ce2ec5beb6fb5e6335457844fb09477f83b050a96be7da043e17f3a9523567ed40e7a521f818813a8b8a72209f1442844843ccc7eb9805442570200bdafe0438d97ac36e773c7162028d65844c4d463e2420aa2228c6e50dc2743c3d6c72d0d782a5173fe7be2169c8a9f4ef8a7cf3e37165e8c61b89c346cdc6c1799d2b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b00200009d01d8044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f00110100010003fd17a7490c22a79c59281fb7b20f5e6553ec0c1637ae382e8adaea295f50241037f8997cf42c1ce26417e015091451b15424b2c59eb8d4161b0975630408e394d3b00f88d4b4e18e2cc85e8251d4753a27c639c83f5ad4a571c4f19d7cd460b9b73c25ade730c99df09637bd173d8e3e981ac64432078263bb6dc30d3e974150dd0200d0ee05be3d4604d2146fb0457f31ba17c057560785aa804e8ca5530a7cd81d3440d0f4ba6851efcfd3954b7e68908fc0ba47f7ac37bf559c6c168b70d3a7c8cd0200da1c677c4bce06a068070f2b3733b0a714e88d62aa3f9a26c6f5216d48d5c2b5624144f3807c0df30be66b3268eeeca4df1fbded58faf49fc95dc3c35f134f8b01fd1396b6c0fc1b6c4f0eb8f5e44b8eace1e6073e20d0b8bc5385f86f1cf3f050f66af789f3ef1fc107b7f4421e19e0349c730c68f0a226981f4e889054fdb4dc149e8e889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab00200009501fe044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001fe030302e9030f3c783e14856063f16938530e148bc57a7aa3f3e4f90df9dceccdc779bc0835e1ad3d006e4a8d7b36d08b8e0de5a0d947254ecfbd22037e6572b426bcfdc517796b224b0036ff90bc574b5509bede85512f2eefb520fb4b02aa523ba739bff424a6fe81c5041f253f8d757e69a503d3563a104d0d49e9e890b9d0c26f96b55b743883b472caa7050c4acfd4a21f875bdf1258d88bd61224d303dc9df77f743137d51e6d5246b88c406780528fd9a3e15bab5452e5b93970d9dcc79f48b38651b9f15bfbcf6da452837e9cc70683d1bdca94507870f743e4ad902005812488dd342f836e72869afd00ce1850eea4cfa53ce10e3608e13d3c149394ee3cbd0e23d018fcbcb6e2ec5a1a22972d1d462ca05355d0d290dd2751e550d5efb38c6c89686344df64852bf4ff86638708f644e8ec6bd4af9b50d8541cb91891a431326ab2e332faa7ae86cfb6e0540aa63160c1e5cdd5a4add518b303fff0a20117c6bc77f7cfbaf36b04c865c6c2b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b00200009d01fe044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001fe030302e9030f3c783e148560f936097339ae381d63116efcf802ff8b1c9360767db5219cc987375702a4123fd8657d3e22700f23f95020d1b261eda5257e9a72f9a918e8ef22dd5b3323ae03bbc1923dd224db988cadc16acc04b120a9f8b7e84da9716c53e0334d7b66586ddb9014df604b41be1e960dcfcbc96f4ed150a1a0dd070b9eb14276b9b6be413a769a75b519a53d3ecc0c220e85cd91ca354d57e7344517e64b43b6e29823cbd87eae26e2b2e78e6dedfbb76e3e9f77bcb844f9a8932eb3db2c3f9e44316e6f5d60e9e2a56e46b72abe6b06dc9a31cc63f10023d1f5e12d2a3ee93b675c96f504af0001220991c88db759e231b3320dcedf814dcf723fd9857e3d72d66a0f2af26950b915abdf56c1596f46a325bf17ad4810d3535fb02a259b247ac3dbd4cc3ecf9c51b6c07cebb009c1506fba0a89321ec8683e3fd009a6e551d50243e2d5092fefb3321083a4bad91320dc624bd6b5dddf93553e3d53924c05bfebec1fb4bd47e89a1a889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020000" + +const dsaElGamalTestKeysHex = "9501e1044dfcb16a110400aa3e5c1a1f43dd28c2ffae8abf5cfce555ee874134d8ba0a0f7b868ce2214beddc74e5e1e21ded354a95d18acdaf69e5e342371a71fbb9093162e0c5f3427de413a7f2c157d83f5cd2f9d791256dc4f6f0e13f13c3302af27f2384075ab3021dff7a050e14854bbde0a1094174855fc02f0bae8e00a340d94a1f22b32e48485700a0cec672ac21258fb95f61de2ce1af74b2c4fa3e6703ff698edc9be22c02ae4d916e4fa223f819d46582c0516235848a77b577ea49018dcd5e9e15cff9dbb4663a1ae6dd7580fa40946d40c05f72814b0f88481207e6c0832c3bded4853ebba0a7e3bd8e8c66df33d5a537cd4acf946d1080e7a3dcea679cb2b11a72a33a2b6a9dc85f466ad2ddf4c3db6283fa645343286971e3dd700703fc0c4e290d45767f370831a90187e74e9972aae5bff488eeff7d620af0362bfb95c1a6c3413ab5d15a2e4139e5d07a54d72583914661ed6a87cce810be28a0aa8879a2dd39e52fb6fe800f4f181ac7e328f740cde3d09a05cecf9483e4cca4253e60d4429ffd679d9996a520012aad119878c941e3cf151459873bdfc2a9563472fe0303027a728f9feb3b864260a1babe83925ce794710cfd642ee4ae0e5b9d74cee49e9c67b6cd0ea5dfbb582132195a121356a1513e1bca73e5b80c58c7ccb4164453412f456c47616d616c2054657374204b65792031886204131102002205024dfcb16a021b03060b090807030206150802090a0b0416020301021e01021780000a091033af447ccd759b09fadd00a0b8fd6f5a790bad7e9f2dbb7632046dc4493588db009c087c6a9ba9f7f49fab221587a74788c00db4889ab00200009d0157044dfcb16a1004008dec3f9291205255ccff8c532318133a6840739dd68b03ba942676f9038612071447bf07d00d559c5c0875724ea16a4c774f80d8338b55fca691a0522e530e604215b467bbc9ccfd483a1da99d7bc2648b4318fdbd27766fc8bfad3fddb37c62b8ae7ccfe9577e9b8d1e77c1d417ed2c2ef02d52f4da11600d85d3229607943700030503ff506c94c87c8cab778e963b76cf63770f0a79bf48fb49d3b4e52234620fc9f7657f9f8d56c96a2b7c7826ae6b57ebb2221a3fe154b03b6637cea7e6d98e3e45d87cf8dc432f723d3d71f89c5192ac8d7290684d2c25ce55846a80c9a7823f6acd9bb29fa6cd71f20bc90eccfca20451d0c976e460e672b000df49466408d527affe0303027a728f9feb3b864260abd761730327bca2aaa4ea0525c175e92bf240682a0e83b226f97ecb2e935b62c9a133858ce31b271fa8eb41f6a1b3cd72a63025ce1a75ee4180dcc284884904181102000905024dfcb16a021b0c000a091033af447ccd759b09dd0b009e3c3e7296092c81bee5a19929462caaf2fff3ae26009e218c437a2340e7ea628149af1ec98ec091a43992b00200009501e1044dfcb1be1104009f61faa61aa43df75d128cbe53de528c4aec49ce9360c992e70c77072ad5623de0a3a6212771b66b39a30dad6781799e92608316900518ec01184a85d872365b7d2ba4bacfb5882ea3c2473d3750dc6178cc1cf82147fb58caa28b28e9f12f6d1efcb0534abed644156c91cca4ab78834268495160b2400bc422beb37d237c2300a0cac94911b6d493bda1e1fbc6feeca7cb7421d34b03fe22cec6ccb39675bb7b94a335c2b7be888fd3906a1125f33301d8aa6ec6ee6878f46f73961c8d57a3e9544d8ef2a2cbfd4d52da665b1266928cfe4cb347a58c412815f3b2d2369dec04b41ac9a71cc9547426d5ab941cccf3b18575637ccfb42df1a802df3cfe0a999f9e7109331170e3a221991bf868543960f8c816c28097e503fe319db10fb98049f3a57d7c80c420da66d56f3644371631fad3f0ff4040a19a4fedc2d07727a1b27576f75a4d28c47d8246f27071e12d7a8de62aad216ddbae6aa02efd6b8a3e2818cda48526549791ab277e447b3a36c57cefe9b592f5eab73959743fcc8e83cbefec03a329b55018b53eec196765ae40ef9e20521a603c551efe0303020950d53a146bf9c66034d00c23130cce95576a2ff78016ca471276e8227fb30b1ffbd92e61804fb0c3eff9e30b1a826ee8f3e4730b4d86273ca977b4164453412f456c47616d616c2054657374204b65792032886204131102002205024dfcb1be021b03060b090807030206150802090a0b0416020301021e01021780000a0910a86bf526325b21b22bd9009e34511620415c974750a20df5cb56b182f3b48e6600a0a9466cb1a1305a84953445f77d461593f1d42bc1b00200009d0157044dfcb1be1004009565a951da1ee87119d600c077198f1c1bceb0f7aa54552489298e41ff788fa8f0d43a69871f0f6f77ebdfb14a4260cf9fbeb65d5844b4272a1904dd95136d06c3da745dc46327dd44a0f16f60135914368c8039a34033862261806bb2c5ce1152e2840254697872c85441ccb7321431d75a747a4bfb1d2c66362b51ce76311700030503fc0ea76601c196768070b7365a200e6ddb09307f262d5f39eec467b5f5784e22abdf1aa49226f59ab37cb49969d8f5230ea65caf56015abda62604544ed526c5c522bf92bed178a078789f6c807b6d34885688024a5bed9e9f8c58d11d4b82487b44c5f470c5606806a0443b79cadb45e0f897a561a53f724e5349b9267c75ca17fe0303020950d53a146bf9c660bc5f4ce8f072465e2d2466434320c1e712272fafc20e342fe7608101580fa1a1a367e60486a7cd1246b7ef5586cf5e10b32762b710a30144f12dd17dd4884904181102000905024dfcb1be021b0c000a0910a86bf526325b21b2904c00a0b2b66b4b39ccffda1d10f3ea8d58f827e30a8b8e009f4255b2d8112a184e40cde43a34e8655ca7809370b0020000" + +const signedMessageHex = "a3019bc0cbccc0c4b8d8b74ee2108fe16ec6d3ca490cbe362d3f8333d3f352531472538b8b13d353b97232f352158c20943157c71c16064626063656269052062e4e01987e9b6fccff4b7df3a34c534b23e679cbec3bc0f8f6e64dfb4b55fe3f8efa9ce110ddb5cd79faf1d753c51aecfa669f7e7aa043436596cccc3359cb7dd6bbe9ecaa69e5989d9e57209571edc0b2fa7f57b9b79a64ee6e99ce1371395fee92fec2796f7b15a77c386ff668ee27f6d38f0baa6c438b561657377bf6acff3c5947befd7bf4c196252f1d6e5c524d0300" + +const signedTextMessageHex = "a3019bc0cbccc8c4b8d8b74ee2108fe16ec6d36a250cbece0c178233d3f352531472538b8b13d35379b97232f352158ca0b4312f57c71c1646462606365626906a062e4e019811591798ff99bf8afee860b0d8a8c2a85c3387e3bcf0bb3b17987f2bbcfab2aa526d930cbfd3d98757184df3995c9f3e7790e36e3e9779f06089d4c64e9e47dd6202cb6e9bc73c5d11bb59fbaf89d22d8dc7cf199ddf17af96e77c5f65f9bbed56f427bd8db7af37f6c9984bf9385efaf5f184f986fb3e6adb0ecfe35bbf92d16a7aa2a344fb0bc52fb7624f0200" + +const signedEncryptedMessageHex = "848c032a67d68660df41c70103ff5789d0de26b6a50c985a02a13131ca829c413a35d0e6fa8d6842599252162808ac7439c72151c8c6183e76923fe3299301414d0c25a2f06a2257db3839e7df0ec964773f6e4c4ac7ff3b48c444237166dd46ba8ff443a5410dc670cb486672fdbe7c9dfafb75b4fea83af3a204fe2a7dfa86bd20122b4f3d2646cbeecb8f7be8d2c03b018bd210b1d3791e1aba74b0f1034e122ab72e760492c192383cf5e20b5628bd043272d63df9b923f147eb6091cd897553204832aba48fec54aa447547bb16305a1024713b90e77fd0065f1918271947549205af3c74891af22ee0b56cd29bfec6d6e351901cd4ab3ece7c486f1e32a792d4e474aed98ee84b3f591c7dff37b64e0ecd68fd036d517e412dcadf85840ce184ad7921ad446c4ee28db80447aea1ca8d4f574db4d4e37688158ddd19e14ee2eab4873d46947d65d14a23e788d912cf9a19624ca7352469b72a83866b7c23cb5ace3deab3c7018061b0ba0f39ed2befe27163e5083cf9b8271e3e3d52cc7ad6e2a3bd81d4c3d7022f8d" + +const signedEncryptedMessage2Hex = "85010e03cf6a7abcd43e36731003fb057f5495b79db367e277cdbe4ab90d924ddee0c0381494112ff8c1238fb0184af35d1731573b01bc4c55ecacd2aafbe2003d36310487d1ecc9ac994f3fada7f9f7f5c3a64248ab7782906c82c6ff1303b69a84d9a9529c31ecafbcdb9ba87e05439897d87e8a2a3dec55e14df19bba7f7bd316291c002ae2efd24f83f9e3441203fc081c0c23dc3092a454ca8a082b27f631abf73aca341686982e8fbda7e0e7d863941d68f3de4a755c2964407f4b5e0477b3196b8c93d551dd23c8beef7d0f03fbb1b6066f78907faf4bf1677d8fcec72651124080e0b7feae6b476e72ab207d38d90b958759fdedfc3c6c35717c9dbfc979b3cfbbff0a76d24a5e57056bb88acbd2a901ef64bc6e4db02adc05b6250ff378de81dca18c1910ab257dff1b9771b85bb9bbe0a69f5989e6d1710a35e6dfcceb7d8fb5ccea8db3932b3d9ff3fe0d327597c68b3622aec8e3716c83a6c93f497543b459b58ba504ed6bcaa747d37d2ca746fe49ae0a6ce4a8b694234e941b5159ff8bd34b9023da2814076163b86f40eed7c9472f81b551452d5ab87004a373c0172ec87ea6ce42ccfa7dbdad66b745496c4873d8019e8c28d6b3" + +const symmetricallyEncryptedCompressedHex = "8c0d04030302eb4a03808145d0d260c92f714339e13de5a79881216431925bf67ee2898ea61815f07894cd0703c50d0a76ef64d482196f47a8bc729af9b80bb6" + +const dsaTestKeyHex = "9901a2044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" + +const dsaTestKeyPrivateHex = "9501bb044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4d00009f592e0619d823953577d4503061706843317e4fee083db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" + +const p256TestKeyHex = "98520456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b7754b8560456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b6030108078861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" + +const p256TestKeyPrivateHex = "94a50456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253fe070302f0c2bfb0b6c30f87ee1599472b8636477eab23ced13b271886a4b50ed34c9d8436af5af5b8f88921f0efba6ef8c37c459bbb88bc1c6a13bbd25c4ce9b1e97679569ee77645d469bf4b43de637f5561b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b77549ca90456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b603010807fe0703027510012471a603cfee2968dce19f732721ddf03e966fd133b4e3c7a685b788705cbc46fb026dc94724b830c9edbaecd2fb2c662f23169516cacd1fe423f0475c364ecc10abcabcfd4bbbda1a36a1bd8861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" + +const armoredPrivateKeyBlock = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.10 (GNU/Linux) + +lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp +idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn +vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB +AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X +0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL +IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk +VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn +gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 +TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx +q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz +dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA +CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 +ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ +eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid +AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV +bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK +/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA +A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX +TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc +lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 +rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN +oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 +QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU +nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC +AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp +BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad +AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL +VrM0m72/jnpKo04= +=zNCn +-----END PGP PRIVATE KEY BLOCK-----` + +const e2ePublicKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Charset: UTF-8 + +xv8AAABSBAAAAAATCCqGSM49AwEHAgME1LRoXSpOxtHXDUdmuvzchyg6005qIBJ4 +sfaSxX7QgH9RV2ONUhC+WiayCNADq+UMzuR/vunSr4aQffXvuGnR383/AAAAFDxk +Z2lsQHlhaG9vLWluYy5jb20+wv8AAACGBBATCAA4/wAAAAWCVGvAG/8AAAACiwn/ +AAAACZC2VkQCOjdvYf8AAAAFlQgJCgv/AAAAA5YBAv8AAAACngEAAE1BAP0X8veD +24IjmI5/C6ZAfVNXxgZZFhTAACFX75jUA3oD6AEAzoSwKf1aqH6oq62qhCN/pekX ++WAsVMBhNwzLpqtCRjLO/wAAAFYEAAAAABIIKoZIzj0DAQcCAwT50ain7vXiIRv8 +B1DO3x3cE/aattZ5sHNixJzRCXi2vQIA5QmOxZ6b5jjUekNbdHG3SZi1a2Ak5mfX +fRxC/5VGAwEIB8L/AAAAZQQYEwgAGP8AAAAFglRrwBz/AAAACZC2VkQCOjdvYQAA +FJAA9isX3xtGyMLYwp2F3nXm7QEdY5bq5VUcD/RJlj792VwA/1wH0pCzVLl4Q9F9 +ex7En5r7rHR5xwX82Msc+Rq9dSyO +=7MrZ +-----END PGP PUBLIC KEY BLOCK-----` + +const dsaKeyWithSHA512 = `9901a2044f04b07f110400db244efecc7316553ee08d179972aab87bb1214de7692593fcf5b6feb1c80fba268722dd464748539b85b81d574cd2d7ad0ca2444de4d849b8756bad7768c486c83a824f9bba4af773d11742bdfb4ac3b89ef8cc9452d4aad31a37e4b630d33927bff68e879284a1672659b8b298222fc68f370f3e24dccacc4a862442b9438b00a0ea444a24088dc23e26df7daf8f43cba3bffc4fe703fe3d6cd7fdca199d54ed8ae501c30e3ec7871ea9cdd4cf63cfe6fc82281d70a5b8bb493f922cd99fba5f088935596af087c8d818d5ec4d0b9afa7f070b3d7c1dd32a84fca08d8280b4890c8da1dde334de8e3cad8450eed2a4a4fcc2db7b8e5528b869a74a7f0189e11ef097ef1253582348de072bb07a9fa8ab838e993cef0ee203ff49298723e2d1f549b00559f886cd417a41692ce58d0ac1307dc71d85a8af21b0cf6eaa14baf2922d3a70389bedf17cc514ba0febbd107675a372fe84b90162a9e88b14d4b1c6be855b96b33fb198c46f058568817780435b6936167ebb3724b680f32bf27382ada2e37a879b3d9de2abe0c3f399350afd1ad438883f4791e2e3b4184453412068617368207472756e636174696f6e207465737488620413110a002205024f04b07f021b03060b090807030206150802090a0b0416020301021e01021780000a0910ef20e0cefca131581318009e2bf3bf047a44d75a9bacd00161ee04d435522397009a03a60d51bd8a568c6c021c8d7cf1be8d990d6417b0020003` + +const unknownHashFunctionHex = `8a00000040040001990006050253863c24000a09103b4fe6acc0b21f32ffff01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101` + +const missingHashFunctionHex = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` + +const campbellQuine = `a0b001000300fcffa0b001000d00f2ff000300fcffa0b001000d00f2ff8270a01c00000500faff8270a01c00000500faff000500faff001400ebff8270a01c00000500faff000500faff001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400000000ffff000000ffff000b00f4ff428821c400000000ffff000000ffff000b00f4ff0233214c40000100feff000233214c40000100feff0000` + +const keyV4forVerifyingSignedMessageV3 = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: GPGTools - https://gpgtools.org + +mI0EVfxoFQEEAMBIqmbDfYygcvP6Phr1wr1XI41IF7Qixqybs/foBF8qqblD9gIY +BKpXjnBOtbkcVOJ0nljd3/sQIfH4E0vQwK5/4YRQSI59eKOqd6Fx+fWQOLG+uu6z +tewpeCj9LLHvibx/Sc7VWRnrznia6ftrXxJ/wHMezSab3tnGC0YPVdGNABEBAAG0 +JEdvY3J5cHRvIFRlc3QgS2V5IDx0aGVtYXhAZ21haWwuY29tPoi5BBMBCgAjBQJV +/GgVAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQeXnQmhdGW9PFVAP+ +K7TU0qX5ArvIONIxh/WAweyOk884c5cE8f+3NOPOOCRGyVy0FId5A7MmD5GOQh4H +JseOZVEVCqlmngEvtHZb3U1VYtVGE5WZ+6rQhGsMcWP5qaT4soYwMBlSYxgYwQcx +YhN9qOr292f9j2Y//TTIJmZT4Oa+lMxhWdqTfX+qMgG4jQRV/GgVAQQArhFSiij1 +b+hT3dnapbEU+23Z1yTu1DfF6zsxQ4XQWEV3eR8v+8mEDDNcz8oyyF56k6UQ3rXi +UMTIwRDg4V6SbZmaFbZYCOwp/EmXJ3rfhm7z7yzXj2OFN22luuqbyVhuL7LRdB0M +pxgmjXb4tTvfgKd26x34S+QqUJ7W6uprY4sAEQEAAYifBBgBCgAJBQJV/GgVAhsM +AAoJEHl50JoXRlvT7y8D/02ckx4OMkKBZo7viyrBw0MLG92i+DC2bs35PooHR6zz +786mitjOp5z2QWNLBvxC70S0qVfCIz8jKupO1J6rq6Z8CcbLF3qjm6h1omUBf8Nd +EfXKD2/2HV6zMKVknnKzIEzauh+eCKS2CeJUSSSryap/QLVAjRnckaES/OsEWhNB +=RZia +-----END PGP PUBLIC KEY BLOCK----- +` + +const signedMessageV3 = `-----BEGIN PGP MESSAGE----- +Comment: GPGTools - https://gpgtools.org + +owGbwMvMwMVYWXlhlrhb9GXG03JJDKF/MtxDMjKLFYAoUaEktbhEITe1uDgxPVWP +q5NhKjMrWAVcC9evD8z/bF/uWNjqtk/X3y5/38XGRQHm/57rrDRYuGnTw597Xqka +uM3137/hH3Os+Jf2dc0fXOITKwJvXJvecPVs0ta+Vg7ZO1MLn8w58Xx+6L58mbka +DGHyU9yTueZE8D+QF/Tz28Y78dqtF56R1VPn9Xw4uJqrWYdd7b3vIZ1V6R4Nh05d +iT57d/OhWwA= +=hG7R +-----END PGP MESSAGE----- +` diff --git a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go new file mode 100644 index 00000000..4b9a44ca --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go @@ -0,0 +1,273 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package s2k implements the various OpenPGP string-to-key transforms as +// specified in RFC 4800 section 3.7.1. +package s2k // import "golang.org/x/crypto/openpgp/s2k" + +import ( + "crypto" + "hash" + "io" + "strconv" + + "golang.org/x/crypto/openpgp/errors" +) + +// Config collects configuration parameters for s2k key-stretching +// transformatioms. A nil *Config is valid and results in all default +// values. Currently, Config is used only by the Serialize function in +// this package. +type Config struct { + // Hash is the default hash function to be used. If + // nil, SHA1 is used. + Hash crypto.Hash + // S2KCount is only used for symmetric encryption. It + // determines the strength of the passphrase stretching when + // the said passphrase is hashed to produce a key. S2KCount + // should be between 1024 and 65011712, inclusive. If Config + // is nil or S2KCount is 0, the value 65536 used. Not all + // values in the above range can be represented. S2KCount will + // be rounded up to the next representable value if it cannot + // be encoded exactly. When set, it is strongly encrouraged to + // use a value that is at least 65536. See RFC 4880 Section + // 3.7.1.3. + S2KCount int +} + +func (c *Config) hash() crypto.Hash { + if c == nil || uint(c.Hash) == 0 { + // SHA1 is the historical default in this package. + return crypto.SHA1 + } + + return c.Hash +} + +func (c *Config) encodedCount() uint8 { + if c == nil || c.S2KCount == 0 { + return 96 // The common case. Correspoding to 65536 + } + + i := c.S2KCount + switch { + // Behave like GPG. Should we make 65536 the lowest value used? + case i < 1024: + i = 1024 + case i > 65011712: + i = 65011712 + } + + return encodeCount(i) +} + +// encodeCount converts an iterative "count" in the range 1024 to +// 65011712, inclusive, to an encoded count. The return value is the +// octet that is actually stored in the GPG file. encodeCount panics +// if i is not in the above range (encodedCount above takes care to +// pass i in the correct range). See RFC 4880 Section 3.7.7.1. +func encodeCount(i int) uint8 { + if i < 1024 || i > 65011712 { + panic("count arg i outside the required range") + } + + for encoded := 0; encoded < 256; encoded++ { + count := decodeCount(uint8(encoded)) + if count >= i { + return uint8(encoded) + } + } + + return 255 +} + +// decodeCount returns the s2k mode 3 iterative "count" corresponding to +// the encoded octet c. +func decodeCount(c uint8) int { + return (16 + int(c&15)) << (uint32(c>>4) + 6) +} + +// Simple writes to out the result of computing the Simple S2K function (RFC +// 4880, section 3.7.1.1) using the given hash and input passphrase. +func Simple(out []byte, h hash.Hash, in []byte) { + Salted(out, h, in, nil) +} + +var zero [1]byte + +// Salted writes to out the result of computing the Salted S2K function (RFC +// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. +func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { + done := 0 + var digest []byte + + for i := 0; done < len(out); i++ { + h.Reset() + for j := 0; j < i; j++ { + h.Write(zero[:]) + } + h.Write(salt) + h.Write(in) + digest = h.Sum(digest[:0]) + n := copy(out[done:], digest) + done += n + } +} + +// Iterated writes to out the result of computing the Iterated and Salted S2K +// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, +// salt and iteration count. +func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { + combined := make([]byte, len(in)+len(salt)) + copy(combined, salt) + copy(combined[len(salt):], in) + + if count < len(combined) { + count = len(combined) + } + + done := 0 + var digest []byte + for i := 0; done < len(out); i++ { + h.Reset() + for j := 0; j < i; j++ { + h.Write(zero[:]) + } + written := 0 + for written < count { + if written+len(combined) > count { + todo := count - written + h.Write(combined[:todo]) + written = count + } else { + h.Write(combined) + written += len(combined) + } + } + digest = h.Sum(digest[:0]) + n := copy(out[done:], digest) + done += n + } +} + +// Parse reads a binary specification for a string-to-key transformation from r +// and returns a function which performs that transform. +func Parse(r io.Reader) (f func(out, in []byte), err error) { + var buf [9]byte + + _, err = io.ReadFull(r, buf[:2]) + if err != nil { + return + } + + hash, ok := HashIdToHash(buf[1]) + if !ok { + return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1]))) + } + if !hash.Available() { + return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash))) + } + h := hash.New() + + switch buf[0] { + case 0: + f := func(out, in []byte) { + Simple(out, h, in) + } + return f, nil + case 1: + _, err = io.ReadFull(r, buf[:8]) + if err != nil { + return + } + f := func(out, in []byte) { + Salted(out, h, in, buf[:8]) + } + return f, nil + case 3: + _, err = io.ReadFull(r, buf[:9]) + if err != nil { + return + } + count := decodeCount(buf[8]) + f := func(out, in []byte) { + Iterated(out, h, in, buf[:8], count) + } + return f, nil + } + + return nil, errors.UnsupportedError("S2K function") +} + +// Serialize salts and stretches the given passphrase and writes the +// resulting key into key. It also serializes an S2K descriptor to +// w. The key stretching can be configured with c, which may be +// nil. In that case, sensible defaults will be used. +func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { + var buf [11]byte + buf[0] = 3 /* iterated and salted */ + buf[1], _ = HashToHashId(c.hash()) + salt := buf[2:10] + if _, err := io.ReadFull(rand, salt); err != nil { + return err + } + encodedCount := c.encodedCount() + count := decodeCount(encodedCount) + buf[10] = encodedCount + if _, err := w.Write(buf[:]); err != nil { + return err + } + + Iterated(key, c.hash().New(), passphrase, salt, count) + return nil +} + +// hashToHashIdMapping contains pairs relating OpenPGP's hash identifier with +// Go's crypto.Hash type. See RFC 4880, section 9.4. +var hashToHashIdMapping = []struct { + id byte + hash crypto.Hash + name string +}{ + {1, crypto.MD5, "MD5"}, + {2, crypto.SHA1, "SHA1"}, + {3, crypto.RIPEMD160, "RIPEMD160"}, + {8, crypto.SHA256, "SHA256"}, + {9, crypto.SHA384, "SHA384"}, + {10, crypto.SHA512, "SHA512"}, + {11, crypto.SHA224, "SHA224"}, +} + +// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP +// hash id. +func HashIdToHash(id byte) (h crypto.Hash, ok bool) { + for _, m := range hashToHashIdMapping { + if m.id == id { + return m.hash, true + } + } + return 0, false +} + +// HashIdToString returns the name of the hash function corresponding to the +// given OpenPGP hash id. +func HashIdToString(id byte) (name string, ok bool) { + for _, m := range hashToHashIdMapping { + if m.id == id { + return m.name, true + } + } + + return "", false +} + +// HashIdToHash returns an OpenPGP hash id which corresponds the given Hash. +func HashToHashId(h crypto.Hash) (id byte, ok bool) { + for _, m := range hashToHashIdMapping { + if m.hash == h { + return m.id, true + } + } + return 0, false +} diff --git a/vendor/golang.org/x/crypto/openpgp/s2k/s2k_test.go b/vendor/golang.org/x/crypto/openpgp/s2k/s2k_test.go new file mode 100644 index 00000000..183d2605 --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/s2k/s2k_test.go @@ -0,0 +1,137 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package s2k + +import ( + "bytes" + "crypto" + _ "crypto/md5" + "crypto/rand" + "crypto/sha1" + _ "crypto/sha256" + _ "crypto/sha512" + "encoding/hex" + "testing" + + _ "golang.org/x/crypto/ripemd160" +) + +var saltedTests = []struct { + in, out string +}{ + {"hello", "10295ac1"}, + {"world", "ac587a5e"}, + {"foo", "4dda8077"}, + {"bar", "bd8aac6b9ea9cae04eae6a91c6133b58b5d9a61c14f355516ed9370456"}, + {"x", "f1d3f289"}, + {"xxxxxxxxxxxxxxxxxxxxxxx", "e00d7b45"}, +} + +func TestSalted(t *testing.T) { + h := sha1.New() + salt := [4]byte{1, 2, 3, 4} + + for i, test := range saltedTests { + expected, _ := hex.DecodeString(test.out) + out := make([]byte, len(expected)) + Salted(out, h, []byte(test.in), salt[:]) + if !bytes.Equal(expected, out) { + t.Errorf("#%d, got: %x want: %x", i, out, expected) + } + } +} + +var iteratedTests = []struct { + in, out string +}{ + {"hello", "83126105"}, + {"world", "6fa317f9"}, + {"foo", "8fbc35b9"}, + {"bar", "2af5a99b54f093789fd657f19bd245af7604d0f6ae06f66602a46a08ae"}, + {"x", "5a684dfe"}, + {"xxxxxxxxxxxxxxxxxxxxxxx", "18955174"}, +} + +func TestIterated(t *testing.T) { + h := sha1.New() + salt := [4]byte{4, 3, 2, 1} + + for i, test := range iteratedTests { + expected, _ := hex.DecodeString(test.out) + out := make([]byte, len(expected)) + Iterated(out, h, []byte(test.in), salt[:], 31) + if !bytes.Equal(expected, out) { + t.Errorf("#%d, got: %x want: %x", i, out, expected) + } + } +} + +var parseTests = []struct { + spec, in, out string +}{ + /* Simple with SHA1 */ + {"0002", "hello", "aaf4c61d"}, + /* Salted with SHA1 */ + {"01020102030405060708", "hello", "f4f7d67e"}, + /* Iterated with SHA1 */ + {"03020102030405060708f1", "hello", "f2a57b7c"}, +} + +func TestParse(t *testing.T) { + for i, test := range parseTests { + spec, _ := hex.DecodeString(test.spec) + buf := bytes.NewBuffer(spec) + f, err := Parse(buf) + if err != nil { + t.Errorf("%d: Parse returned error: %s", i, err) + continue + } + + expected, _ := hex.DecodeString(test.out) + out := make([]byte, len(expected)) + f(out, []byte(test.in)) + if !bytes.Equal(out, expected) { + t.Errorf("%d: output got: %x want: %x", i, out, expected) + } + if testing.Short() { + break + } + } +} + +func TestSerialize(t *testing.T) { + hashes := []crypto.Hash{crypto.MD5, crypto.SHA1, crypto.RIPEMD160, + crypto.SHA256, crypto.SHA384, crypto.SHA512, crypto.SHA224} + testCounts := []int{-1, 0, 1024, 65536, 4063232, 65011712} + for _, h := range hashes { + for _, c := range testCounts { + testSerializeConfig(t, &Config{Hash: h, S2KCount: c}) + } + } +} + +func testSerializeConfig(t *testing.T, c *Config) { + t.Logf("Running testSerializeConfig() with config: %+v", c) + + buf := bytes.NewBuffer(nil) + key := make([]byte, 16) + passphrase := []byte("testing") + err := Serialize(buf, key, rand.Reader, passphrase, c) + if err != nil { + t.Errorf("failed to serialize: %s", err) + return + } + + f, err := Parse(buf) + if err != nil { + t.Errorf("failed to reparse: %s", err) + return + } + key2 := make([]byte, len(key)) + f(key2, passphrase) + if !bytes.Equal(key2, key) { + t.Errorf("keys don't match: %x (serialied) vs %x (parsed)", key, key2) + } +} diff --git a/vendor/golang.org/x/crypto/openpgp/write.go b/vendor/golang.org/x/crypto/openpgp/write.go new file mode 100644 index 00000000..65a304cc --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/write.go @@ -0,0 +1,378 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "crypto" + "hash" + "io" + "strconv" + "time" + + "golang.org/x/crypto/openpgp/armor" + "golang.org/x/crypto/openpgp/errors" + "golang.org/x/crypto/openpgp/packet" + "golang.org/x/crypto/openpgp/s2k" +) + +// DetachSign signs message with the private key from signer (which must +// already have been decrypted) and writes the signature to w. +// If config is nil, sensible defaults will be used. +func DetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { + return detachSign(w, signer, message, packet.SigTypeBinary, config) +} + +// ArmoredDetachSign signs message with the private key from signer (which +// must already have been decrypted) and writes an armored signature to w. +// If config is nil, sensible defaults will be used. +func ArmoredDetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) (err error) { + return armoredDetachSign(w, signer, message, packet.SigTypeBinary, config) +} + +// DetachSignText signs message (after canonicalising the line endings) with +// the private key from signer (which must already have been decrypted) and +// writes the signature to w. +// If config is nil, sensible defaults will be used. +func DetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { + return detachSign(w, signer, message, packet.SigTypeText, config) +} + +// ArmoredDetachSignText signs message (after canonicalising the line endings) +// with the private key from signer (which must already have been decrypted) +// and writes an armored signature to w. +// If config is nil, sensible defaults will be used. +func ArmoredDetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { + return armoredDetachSign(w, signer, message, packet.SigTypeText, config) +} + +func armoredDetachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { + out, err := armor.Encode(w, SignatureType, nil) + if err != nil { + return + } + err = detachSign(out, signer, message, sigType, config) + if err != nil { + return + } + return out.Close() +} + +func detachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { + if signer.PrivateKey == nil { + return errors.InvalidArgumentError("signing key doesn't have a private key") + } + if signer.PrivateKey.Encrypted { + return errors.InvalidArgumentError("signing key is encrypted") + } + + sig := new(packet.Signature) + sig.SigType = sigType + sig.PubKeyAlgo = signer.PrivateKey.PubKeyAlgo + sig.Hash = config.Hash() + sig.CreationTime = config.Now() + sig.IssuerKeyId = &signer.PrivateKey.KeyId + + h, wrappedHash, err := hashForSignature(sig.Hash, sig.SigType) + if err != nil { + return + } + io.Copy(wrappedHash, message) + + err = sig.Sign(h, signer.PrivateKey, config) + if err != nil { + return + } + + return sig.Serialize(w) +} + +// FileHints contains metadata about encrypted files. This metadata is, itself, +// encrypted. +type FileHints struct { + // IsBinary can be set to hint that the contents are binary data. + IsBinary bool + // FileName hints at the name of the file that should be written. It's + // truncated to 255 bytes if longer. It may be empty to suggest that the + // file should not be written to disk. It may be equal to "_CONSOLE" to + // suggest the data should not be written to disk. + FileName string + // ModTime contains the modification time of the file, or the zero time if not applicable. + ModTime time.Time +} + +// SymmetricallyEncrypt acts like gpg -c: it encrypts a file with a passphrase. +// The resulting WriteCloser must be closed after the contents of the file have +// been written. +// If config is nil, sensible defaults will be used. +func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + if hints == nil { + hints = &FileHints{} + } + + key, err := packet.SerializeSymmetricKeyEncrypted(ciphertext, passphrase, config) + if err != nil { + return + } + w, err := packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), key, config) + if err != nil { + return + } + + literaldata := w + if algo := config.Compression(); algo != packet.CompressionNone { + var compConfig *packet.CompressionConfig + if config != nil { + compConfig = config.CompressionConfig + } + literaldata, err = packet.SerializeCompressed(w, algo, compConfig) + if err != nil { + return + } + } + + var epochSeconds uint32 + if !hints.ModTime.IsZero() { + epochSeconds = uint32(hints.ModTime.Unix()) + } + return packet.SerializeLiteral(literaldata, hints.IsBinary, hints.FileName, epochSeconds) +} + +// intersectPreferences mutates and returns a prefix of a that contains only +// the values in the intersection of a and b. The order of a is preserved. +func intersectPreferences(a []uint8, b []uint8) (intersection []uint8) { + var j int + for _, v := range a { + for _, v2 := range b { + if v == v2 { + a[j] = v + j++ + break + } + } + } + + return a[:j] +} + +func hashToHashId(h crypto.Hash) uint8 { + v, ok := s2k.HashToHashId(h) + if !ok { + panic("tried to convert unknown hash") + } + return v +} + +// Encrypt encrypts a message to a number of recipients and, optionally, signs +// it. hints contains optional information, that is also encrypted, that aids +// the recipients in processing the message. The resulting WriteCloser must +// be closed after the contents of the file have been written. +// If config is nil, sensible defaults will be used. +func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + var signer *packet.PrivateKey + if signed != nil { + signKey, ok := signed.signingKey(config.Now()) + if !ok { + return nil, errors.InvalidArgumentError("no valid signing keys") + } + signer = signKey.PrivateKey + if signer == nil { + return nil, errors.InvalidArgumentError("no private key in signing key") + } + if signer.Encrypted { + return nil, errors.InvalidArgumentError("signing key must be decrypted") + } + } + + // These are the possible ciphers that we'll use for the message. + candidateCiphers := []uint8{ + uint8(packet.CipherAES128), + uint8(packet.CipherAES256), + uint8(packet.CipherCAST5), + } + // These are the possible hash functions that we'll use for the signature. + candidateHashes := []uint8{ + hashToHashId(crypto.SHA256), + hashToHashId(crypto.SHA512), + hashToHashId(crypto.SHA1), + hashToHashId(crypto.RIPEMD160), + } + // In the event that a recipient doesn't specify any supported ciphers + // or hash functions, these are the ones that we assume that every + // implementation supports. + defaultCiphers := candidateCiphers[len(candidateCiphers)-1:] + defaultHashes := candidateHashes[len(candidateHashes)-1:] + + encryptKeys := make([]Key, len(to)) + for i := range to { + var ok bool + encryptKeys[i], ok = to[i].encryptionKey(config.Now()) + if !ok { + return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no encryption keys") + } + + sig := to[i].primaryIdentity().SelfSignature + + preferredSymmetric := sig.PreferredSymmetric + if len(preferredSymmetric) == 0 { + preferredSymmetric = defaultCiphers + } + preferredHashes := sig.PreferredHash + if len(preferredHashes) == 0 { + preferredHashes = defaultHashes + } + candidateCiphers = intersectPreferences(candidateCiphers, preferredSymmetric) + candidateHashes = intersectPreferences(candidateHashes, preferredHashes) + } + + if len(candidateCiphers) == 0 || len(candidateHashes) == 0 { + return nil, errors.InvalidArgumentError("cannot encrypt because recipient set shares no common algorithms") + } + + cipher := packet.CipherFunction(candidateCiphers[0]) + // If the cipher specified by config is a candidate, we'll use that. + configuredCipher := config.Cipher() + for _, c := range candidateCiphers { + cipherFunc := packet.CipherFunction(c) + if cipherFunc == configuredCipher { + cipher = cipherFunc + break + } + } + + var hash crypto.Hash + for _, hashId := range candidateHashes { + if h, ok := s2k.HashIdToHash(hashId); ok && h.Available() { + hash = h + break + } + } + + // If the hash specified by config is a candidate, we'll use that. + if configuredHash := config.Hash(); configuredHash.Available() { + for _, hashId := range candidateHashes { + if h, ok := s2k.HashIdToHash(hashId); ok && h == configuredHash { + hash = h + break + } + } + } + + if hash == 0 { + hashId := candidateHashes[0] + name, ok := s2k.HashIdToString(hashId) + if !ok { + name = "#" + strconv.Itoa(int(hashId)) + } + return nil, errors.InvalidArgumentError("cannot encrypt because no candidate hash functions are compiled in. (Wanted " + name + " in this case.)") + } + + symKey := make([]byte, cipher.KeySize()) + if _, err := io.ReadFull(config.Random(), symKey); err != nil { + return nil, err + } + + for _, key := range encryptKeys { + if err := packet.SerializeEncryptedKey(ciphertext, key.PublicKey, cipher, symKey, config); err != nil { + return nil, err + } + } + + encryptedData, err := packet.SerializeSymmetricallyEncrypted(ciphertext, cipher, symKey, config) + if err != nil { + return + } + + if signer != nil { + ops := &packet.OnePassSignature{ + SigType: packet.SigTypeBinary, + Hash: hash, + PubKeyAlgo: signer.PubKeyAlgo, + KeyId: signer.KeyId, + IsLast: true, + } + if err := ops.Serialize(encryptedData); err != nil { + return nil, err + } + } + + if hints == nil { + hints = &FileHints{} + } + + w := encryptedData + if signer != nil { + // If we need to write a signature packet after the literal + // data then we need to stop literalData from closing + // encryptedData. + w = noOpCloser{encryptedData} + + } + var epochSeconds uint32 + if !hints.ModTime.IsZero() { + epochSeconds = uint32(hints.ModTime.Unix()) + } + literalData, err := packet.SerializeLiteral(w, hints.IsBinary, hints.FileName, epochSeconds) + if err != nil { + return nil, err + } + + if signer != nil { + return signatureWriter{encryptedData, literalData, hash, hash.New(), signer, config}, nil + } + return literalData, nil +} + +// signatureWriter hashes the contents of a message while passing it along to +// literalData. When closed, it closes literalData, writes a signature packet +// to encryptedData and then also closes encryptedData. +type signatureWriter struct { + encryptedData io.WriteCloser + literalData io.WriteCloser + hashType crypto.Hash + h hash.Hash + signer *packet.PrivateKey + config *packet.Config +} + +func (s signatureWriter) Write(data []byte) (int, error) { + s.h.Write(data) + return s.literalData.Write(data) +} + +func (s signatureWriter) Close() error { + sig := &packet.Signature{ + SigType: packet.SigTypeBinary, + PubKeyAlgo: s.signer.PubKeyAlgo, + Hash: s.hashType, + CreationTime: s.config.Now(), + IssuerKeyId: &s.signer.KeyId, + } + + if err := sig.Sign(s.h, s.signer, s.config); err != nil { + return err + } + if err := s.literalData.Close(); err != nil { + return err + } + if err := sig.Serialize(s.encryptedData); err != nil { + return err + } + return s.encryptedData.Close() +} + +// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. +// TODO: we have two of these in OpenPGP packages alone. This probably needs +// to be promoted somewhere more common. +type noOpCloser struct { + w io.Writer +} + +func (c noOpCloser) Write(data []byte) (n int, err error) { + return c.w.Write(data) +} + +func (c noOpCloser) Close() error { + return nil +} diff --git a/vendor/golang.org/x/crypto/openpgp/write_test.go b/vendor/golang.org/x/crypto/openpgp/write_test.go new file mode 100644 index 00000000..2161ebcd --- /dev/null +++ b/vendor/golang.org/x/crypto/openpgp/write_test.go @@ -0,0 +1,273 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "bytes" + "io" + "io/ioutil" + "testing" + "time" + + "golang.org/x/crypto/openpgp/packet" +) + +func TestSignDetached(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) + out := bytes.NewBuffer(nil) + message := bytes.NewBufferString(signedInput) + err := DetachSign(out, kring[0], message, nil) + if err != nil { + t.Error(err) + } + + testDetachedSignature(t, kring, out, signedInput, "check", testKey1KeyId) +} + +func TestSignTextDetached(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(testKeys1And2PrivateHex)) + out := bytes.NewBuffer(nil) + message := bytes.NewBufferString(signedInput) + err := DetachSignText(out, kring[0], message, nil) + if err != nil { + t.Error(err) + } + + testDetachedSignature(t, kring, out, signedInput, "check", testKey1KeyId) +} + +func TestSignDetachedDSA(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(dsaTestKeyPrivateHex)) + out := bytes.NewBuffer(nil) + message := bytes.NewBufferString(signedInput) + err := DetachSign(out, kring[0], message, nil) + if err != nil { + t.Error(err) + } + + testDetachedSignature(t, kring, out, signedInput, "check", testKey3KeyId) +} + +func TestSignDetachedP256(t *testing.T) { + kring, _ := ReadKeyRing(readerFromHex(p256TestKeyPrivateHex)) + kring[0].PrivateKey.Decrypt([]byte("passphrase")) + + out := bytes.NewBuffer(nil) + message := bytes.NewBufferString(signedInput) + err := DetachSign(out, kring[0], message, nil) + if err != nil { + t.Error(err) + } + + testDetachedSignature(t, kring, out, signedInput, "check", testKeyP256KeyId) +} + +func TestNewEntity(t *testing.T) { + if testing.Short() { + return + } + + // Check bit-length with no config. + e, err := NewEntity("Test User", "test", "test@example.com", nil) + if err != nil { + t.Errorf("failed to create entity: %s", err) + return + } + bl, err := e.PrimaryKey.BitLength() + if err != nil { + t.Errorf("failed to find bit length: %s", err) + } + if int(bl) != defaultRSAKeyBits { + t.Errorf("BitLength %v, expected %v", defaultRSAKeyBits) + } + + // Check bit-length with a config. + cfg := &packet.Config{RSABits: 1024} + e, err = NewEntity("Test User", "test", "test@example.com", cfg) + if err != nil { + t.Errorf("failed to create entity: %s", err) + return + } + bl, err = e.PrimaryKey.BitLength() + if err != nil { + t.Errorf("failed to find bit length: %s", err) + } + if int(bl) != cfg.RSABits { + t.Errorf("BitLength %v, expected %v", bl, cfg.RSABits) + } + + w := bytes.NewBuffer(nil) + if err := e.SerializePrivate(w, nil); err != nil { + t.Errorf("failed to serialize entity: %s", err) + return + } + serialized := w.Bytes() + + el, err := ReadKeyRing(w) + if err != nil { + t.Errorf("failed to reparse entity: %s", err) + return + } + + if len(el) != 1 { + t.Errorf("wrong number of entities found, got %d, want 1", len(el)) + } + + w = bytes.NewBuffer(nil) + if err := e.SerializePrivate(w, nil); err != nil { + t.Errorf("failed to serialize entity second time: %s", err) + return + } + + if !bytes.Equal(w.Bytes(), serialized) { + t.Errorf("results differed") + } +} + +func TestSymmetricEncryption(t *testing.T) { + buf := new(bytes.Buffer) + plaintext, err := SymmetricallyEncrypt(buf, []byte("testing"), nil, nil) + if err != nil { + t.Errorf("error writing headers: %s", err) + return + } + message := []byte("hello world\n") + _, err = plaintext.Write(message) + if err != nil { + t.Errorf("error writing to plaintext writer: %s", err) + } + err = plaintext.Close() + if err != nil { + t.Errorf("error closing plaintext writer: %s", err) + } + + md, err := ReadMessage(buf, nil, func(keys []Key, symmetric bool) ([]byte, error) { + return []byte("testing"), nil + }, nil) + if err != nil { + t.Errorf("error rereading message: %s", err) + } + messageBuf := bytes.NewBuffer(nil) + _, err = io.Copy(messageBuf, md.UnverifiedBody) + if err != nil { + t.Errorf("error rereading message: %s", err) + } + if !bytes.Equal(message, messageBuf.Bytes()) { + t.Errorf("recovered message incorrect got '%s', want '%s'", messageBuf.Bytes(), message) + } +} + +var testEncryptionTests = []struct { + keyRingHex string + isSigned bool +}{ + { + testKeys1And2PrivateHex, + false, + }, + { + testKeys1And2PrivateHex, + true, + }, + { + dsaElGamalTestKeysHex, + false, + }, + { + dsaElGamalTestKeysHex, + true, + }, +} + +func TestEncryption(t *testing.T) { + for i, test := range testEncryptionTests { + kring, _ := ReadKeyRing(readerFromHex(test.keyRingHex)) + + passphrase := []byte("passphrase") + for _, entity := range kring { + if entity.PrivateKey != nil && entity.PrivateKey.Encrypted { + err := entity.PrivateKey.Decrypt(passphrase) + if err != nil { + t.Errorf("#%d: failed to decrypt key", i) + } + } + for _, subkey := range entity.Subkeys { + if subkey.PrivateKey != nil && subkey.PrivateKey.Encrypted { + err := subkey.PrivateKey.Decrypt(passphrase) + if err != nil { + t.Errorf("#%d: failed to decrypt subkey", i) + } + } + } + } + + var signed *Entity + if test.isSigned { + signed = kring[0] + } + + buf := new(bytes.Buffer) + w, err := Encrypt(buf, kring[:1], signed, nil /* no hints */, nil) + if err != nil { + t.Errorf("#%d: error in Encrypt: %s", i, err) + continue + } + + const message = "testing" + _, err = w.Write([]byte(message)) + if err != nil { + t.Errorf("#%d: error writing plaintext: %s", i, err) + continue + } + err = w.Close() + if err != nil { + t.Errorf("#%d: error closing WriteCloser: %s", i, err) + continue + } + + md, err := ReadMessage(buf, kring, nil /* no prompt */, nil) + if err != nil { + t.Errorf("#%d: error reading message: %s", i, err) + continue + } + + testTime, _ := time.Parse("2006-01-02", "2013-07-01") + if test.isSigned { + signKey, _ := kring[0].signingKey(testTime) + expectedKeyId := signKey.PublicKey.KeyId + if md.SignedByKeyId != expectedKeyId { + t.Errorf("#%d: message signed by wrong key id, got: %d, want: %d", i, *md.SignedBy, expectedKeyId) + } + if md.SignedBy == nil { + t.Errorf("#%d: failed to find the signing Entity", i) + } + } + + plaintext, err := ioutil.ReadAll(md.UnverifiedBody) + if err != nil { + t.Errorf("#%d: error reading encrypted contents: %s", i, err) + continue + } + + encryptKey, _ := kring[0].encryptionKey(testTime) + expectedKeyId := encryptKey.PublicKey.KeyId + if len(md.EncryptedToKeyIds) != 1 || md.EncryptedToKeyIds[0] != expectedKeyId { + t.Errorf("#%d: expected message to be encrypted to %v, but got %#v", i, expectedKeyId, md.EncryptedToKeyIds) + } + + if string(plaintext) != message { + t.Errorf("#%d: got: %s, want: %s", i, string(plaintext), message) + } + + if test.isSigned { + if md.SignatureError != nil { + t.Errorf("#%d: signature error: %s", i, md.SignatureError) + } + if md.Signature == nil { + t.Error("signature missing") + } + } + } +} diff --git a/vendor/golang.org/x/crypto/otr/libotr_test_helper.c b/vendor/golang.org/x/crypto/otr/libotr_test_helper.c new file mode 100644 index 00000000..b3ca072d --- /dev/null +++ b/vendor/golang.org/x/crypto/otr/libotr_test_helper.c @@ -0,0 +1,197 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code can be compiled and used to test the otr package against libotr. +// See otr_test.go. + +// +build ignore + +#include +#include +#include + +#include +#include +#include + +static int g_session_established = 0; + +OtrlPolicy policy(void *opdata, ConnContext *context) { + return OTRL_POLICY_ALWAYS; +} + +int is_logged_in(void *opdata, const char *accountname, const char *protocol, + const char *recipient) { + return 1; +} + +void inject_message(void *opdata, const char *accountname, const char *protocol, + const char *recipient, const char *message) { + printf("%s\n", message); + fflush(stdout); + fprintf(stderr, "libotr helper sent: %s\n", message); +} + +void update_context_list(void *opdata) {} + +void new_fingerprint(void *opdata, OtrlUserState us, const char *accountname, + const char *protocol, const char *username, + unsigned char fingerprint[20]) { + fprintf(stderr, "NEW FINGERPRINT\n"); + g_session_established = 1; +} + +void write_fingerprints(void *opdata) {} + +void gone_secure(void *opdata, ConnContext *context) {} + +void gone_insecure(void *opdata, ConnContext *context) {} + +void still_secure(void *opdata, ConnContext *context, int is_reply) {} + +int max_message_size(void *opdata, ConnContext *context) { return 99999; } + +const char *account_name(void *opdata, const char *account, + const char *protocol) { + return "ACCOUNT"; +} + +void account_name_free(void *opdata, const char *account_name) {} + +const char *error_message(void *opdata, ConnContext *context, + OtrlErrorCode err_code) { + return "ERR"; +} + +void error_message_free(void *opdata, const char *msg) {} + +void resent_msg_prefix_free(void *opdata, const char *prefix) {} + +void handle_smp_event(void *opdata, OtrlSMPEvent smp_event, + ConnContext *context, unsigned short progress_event, + char *question) {} + +void handle_msg_event(void *opdata, OtrlMessageEvent msg_event, + ConnContext *context, const char *message, + gcry_error_t err) { + fprintf(stderr, "msg event: %d %s\n", msg_event, message); +} + +OtrlMessageAppOps uiops = { + policy, + NULL, + is_logged_in, + inject_message, + update_context_list, + new_fingerprint, + write_fingerprints, + gone_secure, + gone_insecure, + still_secure, + max_message_size, + account_name, + account_name_free, + NULL, /* received_symkey */ + error_message, + error_message_free, + NULL, /* resent_msg_prefix */ + resent_msg_prefix_free, + handle_smp_event, + handle_msg_event, + NULL /* create_instag */, + NULL /* convert_msg */, + NULL /* convert_free */, + NULL /* timer_control */, +}; + +static const char kPrivateKeyData[] = + "(privkeys (account (name \"account\") (protocol proto) (private-key (dsa " + "(p " + "#00FC07ABCF0DC916AFF6E9AE47BEF60C7AB9B4D6B2469E436630E36F8A489BE812486A09F" + "30B71224508654940A835301ACC525A4FF133FC152CC53DCC59D65C30A54F1993FE13FE63E" + "5823D4C746DB21B90F9B9C00B49EC7404AB1D929BA7FBA12F2E45C6E0A651689750E8528AB" + "8C031D3561FECEE72EBB4A090D450A9B7A857#) (q " + "#00997BD266EF7B1F60A5C23F3A741F2AEFD07A2081#) (g " + "#535E360E8A95EBA46A4F7DE50AD6E9B2A6DB785A66B64EB9F20338D2A3E8FB0E94725848F" + "1AA6CC567CB83A1CC517EC806F2E92EAE71457E80B2210A189B91250779434B41FC8A8873F" + "6DB94BEA7D177F5D59E7E114EE10A49CFD9CEF88AE43387023B672927BA74B04EB6BBB5E57" + "597766A2F9CE3857D7ACE3E1E3BC1FC6F26#) (y " + "#0AC8670AD767D7A8D9D14CC1AC6744CD7D76F993B77FFD9E39DF01E5A6536EF65E775FCEF" + "2A983E2A19BD6415500F6979715D9FD1257E1FE2B6F5E1E74B333079E7C880D39868462A93" + "454B41877BE62E5EF0A041C2EE9C9E76BD1E12AE25D9628DECB097025DD625EF49C3258A1A" + "3C0FF501E3DC673B76D7BABF349009B6ECF#) (x " + "#14D0345A3562C480A039E3C72764F72D79043216#)))))\n"; + +int main() { + OTRL_INIT; + + // We have to write the private key information to a file because the libotr + // API demands a filename to read from. + const char *tmpdir = "/tmp"; + if (getenv("TMP")) { + tmpdir = getenv("TMP"); + } + + char private_key_file[256]; + snprintf(private_key_file, sizeof(private_key_file), + "%s/libotr_test_helper_privatekeys-XXXXXX", tmpdir); + int fd = mkstemp(private_key_file); + if (fd == -1) { + perror("creating temp file"); + } + write(fd, kPrivateKeyData, sizeof(kPrivateKeyData) - 1); + close(fd); + + OtrlUserState userstate = otrl_userstate_create(); + otrl_privkey_read(userstate, private_key_file); + unlink(private_key_file); + + fprintf(stderr, "libotr helper started\n"); + + char buf[4096]; + + for (;;) { + char *message = fgets(buf, sizeof(buf), stdin); + if (strlen(message) == 0) { + break; + } + message[strlen(message) - 1] = 0; + fprintf(stderr, "libotr helper got: %s\n", message); + + char *newmessage = NULL; + OtrlTLV *tlvs; + int ignore_message = otrl_message_receiving( + userstate, &uiops, NULL, "account", "proto", "peer", message, + &newmessage, &tlvs, NULL, NULL, NULL); + if (tlvs) { + otrl_tlv_free(tlvs); + } + + if (newmessage != NULL) { + fprintf(stderr, "libotr got: %s\n", newmessage); + otrl_message_free(newmessage); + + gcry_error_t err; + char *newmessage = NULL; + + err = otrl_message_sending(userstate, &uiops, NULL, "account", "proto", + "peer", 0, "test message", NULL, &newmessage, + OTRL_FRAGMENT_SEND_SKIP, NULL, NULL, NULL); + if (newmessage == NULL) { + fprintf(stderr, "libotr didn't encrypt message\n"); + return 1; + } + write(1, newmessage, strlen(newmessage)); + write(1, "\n", 1); + fprintf(stderr, "libotr sent: %s\n", newmessage); + otrl_message_free(newmessage); + + g_session_established = 0; + write(1, "?OTRv2?\n", 8); + fprintf(stderr, "libotr sent: ?OTRv2\n"); + } + } + + return 0; +} diff --git a/vendor/golang.org/x/crypto/otr/otr.go b/vendor/golang.org/x/crypto/otr/otr.go new file mode 100644 index 00000000..549be116 --- /dev/null +++ b/vendor/golang.org/x/crypto/otr/otr.go @@ -0,0 +1,1408 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package otr implements the Off The Record protocol as specified in +// http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html +package otr // import "golang.org/x/crypto/otr" + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "crypto/dsa" + "crypto/hmac" + "crypto/rand" + "crypto/sha1" + "crypto/sha256" + "crypto/subtle" + "encoding/base64" + "encoding/hex" + "errors" + "hash" + "io" + "math/big" + "strconv" +) + +// SecurityChange describes a change in the security state of a Conversation. +type SecurityChange int + +const ( + NoChange SecurityChange = iota + // NewKeys indicates that a key exchange has completed. This occurs + // when a conversation first becomes encrypted, and when the keys are + // renegotiated within an encrypted conversation. + NewKeys + // SMPSecretNeeded indicates that the peer has started an + // authentication and that we need to supply a secret. Call SMPQuestion + // to get the optional, human readable challenge and then Authenticate + // to supply the matching secret. + SMPSecretNeeded + // SMPComplete indicates that an authentication completed. The identity + // of the peer has now been confirmed. + SMPComplete + // SMPFailed indicates that an authentication failed. + SMPFailed + // ConversationEnded indicates that the peer ended the secure + // conversation. + ConversationEnded +) + +// QueryMessage can be sent to a peer to start an OTR conversation. +var QueryMessage = "?OTRv2?" + +// ErrorPrefix can be used to make an OTR error by appending an error message +// to it. +var ErrorPrefix = "?OTR Error:" + +var ( + fragmentPartSeparator = []byte(",") + fragmentPrefix = []byte("?OTR,") + msgPrefix = []byte("?OTR:") + queryMarker = []byte("?OTR") +) + +// isQuery attempts to parse an OTR query from msg and returns the greatest +// common version, or 0 if msg is not an OTR query. +func isQuery(msg []byte) (greatestCommonVersion int) { + pos := bytes.Index(msg, queryMarker) + if pos == -1 { + return 0 + } + for i, c := range msg[pos+len(queryMarker):] { + if i == 0 { + if c == '?' { + // Indicates support for version 1, but we don't + // implement that. + continue + } + + if c != 'v' { + // Invalid message + return 0 + } + + continue + } + + if c == '?' { + // End of message + return + } + + if c == ' ' || c == '\t' { + // Probably an invalid message + return 0 + } + + if c == '2' { + greatestCommonVersion = 2 + } + } + + return 0 +} + +const ( + statePlaintext = iota + stateEncrypted + stateFinished +) + +const ( + authStateNone = iota + authStateAwaitingDHKey + authStateAwaitingRevealSig + authStateAwaitingSig +) + +const ( + msgTypeDHCommit = 2 + msgTypeData = 3 + msgTypeDHKey = 10 + msgTypeRevealSig = 17 + msgTypeSig = 18 +) + +const ( + // If the requested fragment size is less than this, it will be ignored. + minFragmentSize = 18 + // Messages are padded to a multiple of this number of bytes. + paddingGranularity = 256 + // The number of bytes in a Diffie-Hellman private value (320-bits). + dhPrivateBytes = 40 + // The number of bytes needed to represent an element of the DSA + // subgroup (160-bits). + dsaSubgroupBytes = 20 + // The number of bytes of the MAC that are sent on the wire (160-bits). + macPrefixBytes = 20 +) + +// These are the global, common group parameters for OTR. +var ( + p *big.Int // group prime + g *big.Int // group generator + q *big.Int // group order + pMinus2 *big.Int +) + +func init() { + p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF", 16) + q, _ = new(big.Int).SetString("7FFFFFFFFFFFFFFFE487ED5110B4611A62633145C06E0E68948127044533E63A0105DF531D89CD9128A5043CC71A026EF7CA8CD9E69D218D98158536F92F8A1BA7F09AB6B6A8E122F242DABB312F3F637A262174D31BF6B585FFAE5B7A035BF6F71C35FDAD44CFD2D74F9208BE258FF324943328F6722D9EE1003E5C50B1DF82CC6D241B0E2AE9CD348B1FD47E9267AFC1B2AE91EE51D6CB0E3179AB1042A95DCF6A9483B84B4B36B3861AA7255E4C0278BA36046511B993FFFFFFFFFFFFFFFF", 16) + g = new(big.Int).SetInt64(2) + pMinus2 = new(big.Int).Sub(p, g) +} + +// Conversation represents a relation with a peer. The zero value is a valid +// Conversation, although PrivateKey must be set. +// +// When communicating with a peer, all inbound messages should be passed to +// Conversation.Receive and all outbound messages to Conversation.Send. The +// Conversation will take care of maintaining the encryption state and +// negotiating encryption as needed. +type Conversation struct { + // PrivateKey contains the private key to use to sign key exchanges. + PrivateKey *PrivateKey + + // Rand can be set to override the entropy source. Otherwise, + // crypto/rand will be used. + Rand io.Reader + // If FragmentSize is set, all messages produced by Receive and Send + // will be fragmented into messages of, at most, this number of bytes. + FragmentSize int + + // Once Receive has returned NewKeys once, the following fields are + // valid. + SSID [8]byte + TheirPublicKey PublicKey + + state, authState int + + r [16]byte + x, y *big.Int + gx, gy *big.Int + gxBytes []byte + digest [sha256.Size]byte + + revealKeys, sigKeys akeKeys + + myKeyId uint32 + myCurrentDHPub *big.Int + myCurrentDHPriv *big.Int + myLastDHPub *big.Int + myLastDHPriv *big.Int + + theirKeyId uint32 + theirCurrentDHPub *big.Int + theirLastDHPub *big.Int + + keySlots [4]keySlot + + myCounter [8]byte + theirLastCtr [8]byte + oldMACs []byte + + k, n int // fragment state + frag []byte + + smp smpState +} + +// A keySlot contains key material for a specific (their keyid, my keyid) pair. +type keySlot struct { + // used is true if this slot is valid. If false, it's free for reuse. + used bool + theirKeyId uint32 + myKeyId uint32 + sendAESKey, recvAESKey []byte + sendMACKey, recvMACKey []byte + theirLastCtr [8]byte +} + +// akeKeys are generated during key exchange. There's one set for the reveal +// signature message and another for the signature message. In the protocol +// spec the latter are indicated with a prime mark. +type akeKeys struct { + c [16]byte + m1, m2 [32]byte +} + +func (c *Conversation) rand() io.Reader { + if c.Rand != nil { + return c.Rand + } + return rand.Reader +} + +func (c *Conversation) randMPI(buf []byte) *big.Int { + _, err := io.ReadFull(c.rand(), buf) + if err != nil { + panic("otr: short read from random source") + } + + return new(big.Int).SetBytes(buf) +} + +// tlv represents the type-length value from the protocol. +type tlv struct { + typ, length uint16 + data []byte +} + +const ( + tlvTypePadding = 0 + tlvTypeDisconnected = 1 + tlvTypeSMP1 = 2 + tlvTypeSMP2 = 3 + tlvTypeSMP3 = 4 + tlvTypeSMP4 = 5 + tlvTypeSMPAbort = 6 + tlvTypeSMP1WithQuestion = 7 +) + +// Receive handles a message from a peer. It returns a human readable message, +// an indicator of whether that message was encrypted, a hint about the +// encryption state and zero or more messages to send back to the peer. +// These messages do not need to be passed to Send before transmission. +func (c *Conversation) Receive(in []byte) (out []byte, encrypted bool, change SecurityChange, toSend [][]byte, err error) { + if bytes.HasPrefix(in, fragmentPrefix) { + in, err = c.processFragment(in) + if in == nil || err != nil { + return + } + } + + if bytes.HasPrefix(in, msgPrefix) && in[len(in)-1] == '.' { + in = in[len(msgPrefix) : len(in)-1] + } else if version := isQuery(in); version > 0 { + c.authState = authStateAwaitingDHKey + c.reset() + toSend = c.encode(c.generateDHCommit()) + return + } else { + // plaintext message + out = in + return + } + + msg := make([]byte, base64.StdEncoding.DecodedLen(len(in))) + msgLen, err := base64.StdEncoding.Decode(msg, in) + if err != nil { + err = errors.New("otr: invalid base64 encoding in message") + return + } + msg = msg[:msgLen] + + // The first two bytes are the protocol version (2) + if len(msg) < 3 || msg[0] != 0 || msg[1] != 2 { + err = errors.New("otr: invalid OTR message") + return + } + + msgType := int(msg[2]) + msg = msg[3:] + + switch msgType { + case msgTypeDHCommit: + switch c.authState { + case authStateNone: + c.authState = authStateAwaitingRevealSig + if err = c.processDHCommit(msg); err != nil { + return + } + c.reset() + toSend = c.encode(c.generateDHKey()) + return + case authStateAwaitingDHKey: + // This is a 'SYN-crossing'. The greater digest wins. + var cmp int + if cmp, err = c.compareToDHCommit(msg); err != nil { + return + } + if cmp > 0 { + // We win. Retransmit DH commit. + toSend = c.encode(c.serializeDHCommit()) + return + } else { + // They win. We forget about our DH commit. + c.authState = authStateAwaitingRevealSig + if err = c.processDHCommit(msg); err != nil { + return + } + c.reset() + toSend = c.encode(c.generateDHKey()) + return + } + case authStateAwaitingRevealSig: + if err = c.processDHCommit(msg); err != nil { + return + } + toSend = c.encode(c.serializeDHKey()) + case authStateAwaitingSig: + if err = c.processDHCommit(msg); err != nil { + return + } + c.reset() + toSend = c.encode(c.generateDHKey()) + c.authState = authStateAwaitingRevealSig + default: + panic("bad state") + } + case msgTypeDHKey: + switch c.authState { + case authStateAwaitingDHKey: + var isSame bool + if isSame, err = c.processDHKey(msg); err != nil { + return + } + if isSame { + err = errors.New("otr: unexpected duplicate DH key") + return + } + toSend = c.encode(c.generateRevealSig()) + c.authState = authStateAwaitingSig + case authStateAwaitingSig: + var isSame bool + if isSame, err = c.processDHKey(msg); err != nil { + return + } + if isSame { + toSend = c.encode(c.serializeDHKey()) + } + } + case msgTypeRevealSig: + if c.authState != authStateAwaitingRevealSig { + return + } + if err = c.processRevealSig(msg); err != nil { + return + } + toSend = c.encode(c.generateSig()) + c.authState = authStateNone + c.state = stateEncrypted + change = NewKeys + case msgTypeSig: + if c.authState != authStateAwaitingSig { + return + } + if err = c.processSig(msg); err != nil { + return + } + c.authState = authStateNone + c.state = stateEncrypted + change = NewKeys + case msgTypeData: + if c.state != stateEncrypted { + err = errors.New("otr: encrypted message received without encrypted session established") + return + } + var tlvs []tlv + out, tlvs, err = c.processData(msg) + encrypted = true + + EachTLV: + for _, inTLV := range tlvs { + switch inTLV.typ { + case tlvTypeDisconnected: + change = ConversationEnded + c.state = stateFinished + break EachTLV + case tlvTypeSMP1, tlvTypeSMP2, tlvTypeSMP3, tlvTypeSMP4, tlvTypeSMPAbort, tlvTypeSMP1WithQuestion: + var reply tlv + var complete bool + reply, complete, err = c.processSMP(inTLV) + if err == smpSecretMissingError { + err = nil + change = SMPSecretNeeded + c.smp.saved = &inTLV + return + } + if err == smpFailureError { + err = nil + change = SMPFailed + } else if complete { + change = SMPComplete + } + if reply.typ != 0 { + toSend = c.encode(c.generateData(nil, &reply)) + } + break EachTLV + default: + // skip unknown TLVs + } + } + default: + err = errors.New("otr: unknown message type " + strconv.Itoa(msgType)) + } + + return +} + +// Send takes a human readable message from the local user, possibly encrypts +// it and returns zero one or more messages to send to the peer. +func (c *Conversation) Send(msg []byte) ([][]byte, error) { + switch c.state { + case statePlaintext: + return [][]byte{msg}, nil + case stateEncrypted: + return c.encode(c.generateData(msg, nil)), nil + case stateFinished: + return nil, errors.New("otr: cannot send message because secure conversation has finished") + } + + return nil, errors.New("otr: cannot send message in current state") +} + +// SMPQuestion returns the human readable challenge question from the peer. +// It's only valid after Receive has returned SMPSecretNeeded. +func (c *Conversation) SMPQuestion() string { + return c.smp.question +} + +// Authenticate begins an authentication with the peer. Authentication involves +// an optional challenge message and a shared secret. The authentication +// proceeds until either Receive returns SMPComplete, SMPSecretNeeded (which +// indicates that a new authentication is happening and thus this one was +// aborted) or SMPFailed. +func (c *Conversation) Authenticate(question string, mutualSecret []byte) (toSend [][]byte, err error) { + if c.state != stateEncrypted { + err = errors.New("otr: can't authenticate a peer without a secure conversation established") + return + } + + if c.smp.saved != nil { + c.calcSMPSecret(mutualSecret, false /* they started it */) + + var out tlv + var complete bool + out, complete, err = c.processSMP(*c.smp.saved) + if complete { + panic("SMP completed on the first message") + } + c.smp.saved = nil + if out.typ != 0 { + toSend = c.encode(c.generateData(nil, &out)) + } + return + } + + c.calcSMPSecret(mutualSecret, true /* we started it */) + outs := c.startSMP(question) + for _, out := range outs { + toSend = append(toSend, c.encode(c.generateData(nil, &out))...) + } + return +} + +// End ends a secure conversation by generating a termination message for +// the peer and switches to unencrypted communication. +func (c *Conversation) End() (toSend [][]byte) { + switch c.state { + case statePlaintext: + return nil + case stateEncrypted: + c.state = statePlaintext + return c.encode(c.generateData(nil, &tlv{typ: tlvTypeDisconnected})) + case stateFinished: + c.state = statePlaintext + return nil + } + panic("unreachable") +} + +// IsEncrypted returns true if a message passed to Send would be encrypted +// before transmission. This result remains valid until the next call to +// Receive or End, which may change the state of the Conversation. +func (c *Conversation) IsEncrypted() bool { + return c.state == stateEncrypted +} + +var fragmentError = errors.New("otr: invalid OTR fragment") + +// processFragment processes a fragmented OTR message and possibly returns a +// complete message. Fragmented messages look like "?OTR,k,n,msg," where k is +// the fragment number (starting from 1), n is the number of fragments in this +// message and msg is a substring of the base64 encoded message. +func (c *Conversation) processFragment(in []byte) (out []byte, err error) { + in = in[len(fragmentPrefix):] // remove "?OTR," + parts := bytes.Split(in, fragmentPartSeparator) + if len(parts) != 4 || len(parts[3]) != 0 { + return nil, fragmentError + } + + k, err := strconv.Atoi(string(parts[0])) + if err != nil { + return nil, fragmentError + } + + n, err := strconv.Atoi(string(parts[1])) + if err != nil { + return nil, fragmentError + } + + if k < 1 || n < 1 || k > n { + return nil, fragmentError + } + + if k == 1 { + c.frag = append(c.frag[:0], parts[2]...) + c.k, c.n = k, n + } else if n == c.n && k == c.k+1 { + c.frag = append(c.frag, parts[2]...) + c.k++ + } else { + c.frag = c.frag[:0] + c.n, c.k = 0, 0 + } + + if c.n > 0 && c.k == c.n { + c.n, c.k = 0, 0 + return c.frag, nil + } + + return nil, nil +} + +func (c *Conversation) generateDHCommit() []byte { + _, err := io.ReadFull(c.rand(), c.r[:]) + if err != nil { + panic("otr: short read from random source") + } + + var xBytes [dhPrivateBytes]byte + c.x = c.randMPI(xBytes[:]) + c.gx = new(big.Int).Exp(g, c.x, p) + c.gy = nil + c.gxBytes = appendMPI(nil, c.gx) + + h := sha256.New() + h.Write(c.gxBytes) + h.Sum(c.digest[:0]) + + aesCipher, err := aes.NewCipher(c.r[:]) + if err != nil { + panic(err.Error()) + } + + var iv [aes.BlockSize]byte + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(c.gxBytes, c.gxBytes) + + return c.serializeDHCommit() +} + +func (c *Conversation) serializeDHCommit() []byte { + var ret []byte + ret = appendU16(ret, 2) // protocol version + ret = append(ret, msgTypeDHCommit) + ret = appendData(ret, c.gxBytes) + ret = appendData(ret, c.digest[:]) + return ret +} + +func (c *Conversation) processDHCommit(in []byte) error { + var ok1, ok2 bool + c.gxBytes, in, ok1 = getData(in) + digest, in, ok2 := getData(in) + if !ok1 || !ok2 || len(in) > 0 { + return errors.New("otr: corrupt DH commit message") + } + copy(c.digest[:], digest) + return nil +} + +func (c *Conversation) compareToDHCommit(in []byte) (int, error) { + _, in, ok1 := getData(in) + digest, in, ok2 := getData(in) + if !ok1 || !ok2 || len(in) > 0 { + return 0, errors.New("otr: corrupt DH commit message") + } + return bytes.Compare(c.digest[:], digest), nil +} + +func (c *Conversation) generateDHKey() []byte { + var yBytes [dhPrivateBytes]byte + c.y = c.randMPI(yBytes[:]) + c.gy = new(big.Int).Exp(g, c.y, p) + return c.serializeDHKey() +} + +func (c *Conversation) serializeDHKey() []byte { + var ret []byte + ret = appendU16(ret, 2) // protocol version + ret = append(ret, msgTypeDHKey) + ret = appendMPI(ret, c.gy) + return ret +} + +func (c *Conversation) processDHKey(in []byte) (isSame bool, err error) { + gy, in, ok := getMPI(in) + if !ok { + err = errors.New("otr: corrupt DH key message") + return + } + if gy.Cmp(g) < 0 || gy.Cmp(pMinus2) > 0 { + err = errors.New("otr: DH value out of range") + return + } + if c.gy != nil { + isSame = c.gy.Cmp(gy) == 0 + return + } + c.gy = gy + return +} + +func (c *Conversation) generateEncryptedSignature(keys *akeKeys, xFirst bool) ([]byte, []byte) { + var xb []byte + xb = c.PrivateKey.PublicKey.Serialize(xb) + + var verifyData []byte + if xFirst { + verifyData = appendMPI(verifyData, c.gx) + verifyData = appendMPI(verifyData, c.gy) + } else { + verifyData = appendMPI(verifyData, c.gy) + verifyData = appendMPI(verifyData, c.gx) + } + verifyData = append(verifyData, xb...) + verifyData = appendU32(verifyData, c.myKeyId) + + mac := hmac.New(sha256.New, keys.m1[:]) + mac.Write(verifyData) + mb := mac.Sum(nil) + + xb = appendU32(xb, c.myKeyId) + xb = append(xb, c.PrivateKey.Sign(c.rand(), mb)...) + + aesCipher, err := aes.NewCipher(keys.c[:]) + if err != nil { + panic(err.Error()) + } + var iv [aes.BlockSize]byte + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(xb, xb) + + mac = hmac.New(sha256.New, keys.m2[:]) + encryptedSig := appendData(nil, xb) + mac.Write(encryptedSig) + + return encryptedSig, mac.Sum(nil) +} + +func (c *Conversation) generateRevealSig() []byte { + s := new(big.Int).Exp(c.gy, c.x, p) + c.calcAKEKeys(s) + c.myKeyId++ + + encryptedSig, mac := c.generateEncryptedSignature(&c.revealKeys, true /* gx comes first */) + + c.myCurrentDHPub = c.gx + c.myCurrentDHPriv = c.x + c.rotateDHKeys() + incCounter(&c.myCounter) + + var ret []byte + ret = appendU16(ret, 2) + ret = append(ret, msgTypeRevealSig) + ret = appendData(ret, c.r[:]) + ret = append(ret, encryptedSig...) + ret = append(ret, mac[:20]...) + return ret +} + +func (c *Conversation) processEncryptedSig(encryptedSig, theirMAC []byte, keys *akeKeys, xFirst bool) error { + mac := hmac.New(sha256.New, keys.m2[:]) + mac.Write(appendData(nil, encryptedSig)) + myMAC := mac.Sum(nil)[:20] + + if len(myMAC) != len(theirMAC) || subtle.ConstantTimeCompare(myMAC, theirMAC) == 0 { + return errors.New("bad signature MAC in encrypted signature") + } + + aesCipher, err := aes.NewCipher(keys.c[:]) + if err != nil { + panic(err.Error()) + } + var iv [aes.BlockSize]byte + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(encryptedSig, encryptedSig) + + sig := encryptedSig + sig, ok1 := c.TheirPublicKey.Parse(sig) + keyId, sig, ok2 := getU32(sig) + if !ok1 || !ok2 { + return errors.New("otr: corrupt encrypted signature") + } + + var verifyData []byte + if xFirst { + verifyData = appendMPI(verifyData, c.gx) + verifyData = appendMPI(verifyData, c.gy) + } else { + verifyData = appendMPI(verifyData, c.gy) + verifyData = appendMPI(verifyData, c.gx) + } + verifyData = c.TheirPublicKey.Serialize(verifyData) + verifyData = appendU32(verifyData, keyId) + + mac = hmac.New(sha256.New, keys.m1[:]) + mac.Write(verifyData) + mb := mac.Sum(nil) + + sig, ok1 = c.TheirPublicKey.Verify(mb, sig) + if !ok1 { + return errors.New("bad signature in encrypted signature") + } + if len(sig) > 0 { + return errors.New("corrupt encrypted signature") + } + + c.theirKeyId = keyId + zero(c.theirLastCtr[:]) + return nil +} + +func (c *Conversation) processRevealSig(in []byte) error { + r, in, ok1 := getData(in) + encryptedSig, in, ok2 := getData(in) + theirMAC := in + if !ok1 || !ok2 || len(theirMAC) != 20 { + return errors.New("otr: corrupt reveal signature message") + } + + aesCipher, err := aes.NewCipher(r) + if err != nil { + return errors.New("otr: cannot create AES cipher from reveal signature message: " + err.Error()) + } + var iv [aes.BlockSize]byte + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(c.gxBytes, c.gxBytes) + h := sha256.New() + h.Write(c.gxBytes) + digest := h.Sum(nil) + if len(digest) != len(c.digest) || subtle.ConstantTimeCompare(digest, c.digest[:]) == 0 { + return errors.New("otr: bad commit MAC in reveal signature message") + } + var rest []byte + c.gx, rest, ok1 = getMPI(c.gxBytes) + if !ok1 || len(rest) > 0 { + return errors.New("otr: gx corrupt after decryption") + } + if c.gx.Cmp(g) < 0 || c.gx.Cmp(pMinus2) > 0 { + return errors.New("otr: DH value out of range") + } + s := new(big.Int).Exp(c.gx, c.y, p) + c.calcAKEKeys(s) + + if err := c.processEncryptedSig(encryptedSig, theirMAC, &c.revealKeys, true /* gx comes first */); err != nil { + return errors.New("otr: in reveal signature message: " + err.Error()) + } + + c.theirCurrentDHPub = c.gx + c.theirLastDHPub = nil + + return nil +} + +func (c *Conversation) generateSig() []byte { + c.myKeyId++ + + encryptedSig, mac := c.generateEncryptedSignature(&c.sigKeys, false /* gy comes first */) + + c.myCurrentDHPub = c.gy + c.myCurrentDHPriv = c.y + c.rotateDHKeys() + incCounter(&c.myCounter) + + var ret []byte + ret = appendU16(ret, 2) + ret = append(ret, msgTypeSig) + ret = append(ret, encryptedSig...) + ret = append(ret, mac[:macPrefixBytes]...) + return ret +} + +func (c *Conversation) processSig(in []byte) error { + encryptedSig, in, ok1 := getData(in) + theirMAC := in + if !ok1 || len(theirMAC) != macPrefixBytes { + return errors.New("otr: corrupt signature message") + } + + if err := c.processEncryptedSig(encryptedSig, theirMAC, &c.sigKeys, false /* gy comes first */); err != nil { + return errors.New("otr: in signature message: " + err.Error()) + } + + c.theirCurrentDHPub = c.gy + c.theirLastDHPub = nil + + return nil +} + +func (c *Conversation) rotateDHKeys() { + // evict slots using our retired key id + for i := range c.keySlots { + slot := &c.keySlots[i] + if slot.used && slot.myKeyId == c.myKeyId-1 { + slot.used = false + c.oldMACs = append(c.oldMACs, slot.recvMACKey...) + } + } + + c.myLastDHPriv = c.myCurrentDHPriv + c.myLastDHPub = c.myCurrentDHPub + + var xBytes [dhPrivateBytes]byte + c.myCurrentDHPriv = c.randMPI(xBytes[:]) + c.myCurrentDHPub = new(big.Int).Exp(g, c.myCurrentDHPriv, p) + c.myKeyId++ +} + +func (c *Conversation) processData(in []byte) (out []byte, tlvs []tlv, err error) { + origIn := in + flags, in, ok1 := getU8(in) + theirKeyId, in, ok2 := getU32(in) + myKeyId, in, ok3 := getU32(in) + y, in, ok4 := getMPI(in) + counter, in, ok5 := getNBytes(in, 8) + encrypted, in, ok6 := getData(in) + macedData := origIn[:len(origIn)-len(in)] + theirMAC, in, ok7 := getNBytes(in, macPrefixBytes) + _, in, ok8 := getData(in) + if !ok1 || !ok2 || !ok3 || !ok4 || !ok5 || !ok6 || !ok7 || !ok8 || len(in) > 0 { + err = errors.New("otr: corrupt data message") + return + } + + ignoreErrors := flags&1 != 0 + + slot, err := c.calcDataKeys(myKeyId, theirKeyId) + if err != nil { + if ignoreErrors { + err = nil + } + return + } + + mac := hmac.New(sha1.New, slot.recvMACKey) + mac.Write([]byte{0, 2, 3}) + mac.Write(macedData) + myMAC := mac.Sum(nil) + if len(myMAC) != len(theirMAC) || subtle.ConstantTimeCompare(myMAC, theirMAC) == 0 { + if !ignoreErrors { + err = errors.New("otr: bad MAC on data message") + } + return + } + + if bytes.Compare(counter, slot.theirLastCtr[:]) <= 0 { + err = errors.New("otr: counter regressed") + return + } + copy(slot.theirLastCtr[:], counter) + + var iv [aes.BlockSize]byte + copy(iv[:], counter) + aesCipher, err := aes.NewCipher(slot.recvAESKey) + if err != nil { + panic(err.Error()) + } + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(encrypted, encrypted) + decrypted := encrypted + + if myKeyId == c.myKeyId { + c.rotateDHKeys() + } + if theirKeyId == c.theirKeyId { + // evict slots using their retired key id + for i := range c.keySlots { + slot := &c.keySlots[i] + if slot.used && slot.theirKeyId == theirKeyId-1 { + slot.used = false + c.oldMACs = append(c.oldMACs, slot.recvMACKey...) + } + } + + c.theirLastDHPub = c.theirCurrentDHPub + c.theirKeyId++ + c.theirCurrentDHPub = y + } + + if nulPos := bytes.IndexByte(decrypted, 0); nulPos >= 0 { + out = decrypted[:nulPos] + tlvData := decrypted[nulPos+1:] + for len(tlvData) > 0 { + var t tlv + var ok1, ok2, ok3 bool + + t.typ, tlvData, ok1 = getU16(tlvData) + t.length, tlvData, ok2 = getU16(tlvData) + t.data, tlvData, ok3 = getNBytes(tlvData, int(t.length)) + if !ok1 || !ok2 || !ok3 { + err = errors.New("otr: corrupt tlv data") + } + tlvs = append(tlvs, t) + } + } else { + out = decrypted + } + + return +} + +func (c *Conversation) generateData(msg []byte, extra *tlv) []byte { + slot, err := c.calcDataKeys(c.myKeyId-1, c.theirKeyId) + if err != nil { + panic("otr: failed to generate sending keys: " + err.Error()) + } + + var plaintext []byte + plaintext = append(plaintext, msg...) + plaintext = append(plaintext, 0) + + padding := paddingGranularity - ((len(plaintext) + 4) % paddingGranularity) + plaintext = appendU16(plaintext, tlvTypePadding) + plaintext = appendU16(plaintext, uint16(padding)) + for i := 0; i < padding; i++ { + plaintext = append(plaintext, 0) + } + + if extra != nil { + plaintext = appendU16(plaintext, extra.typ) + plaintext = appendU16(plaintext, uint16(len(extra.data))) + plaintext = append(plaintext, extra.data...) + } + + encrypted := make([]byte, len(plaintext)) + + var iv [aes.BlockSize]byte + copy(iv[:], c.myCounter[:]) + aesCipher, err := aes.NewCipher(slot.sendAESKey) + if err != nil { + panic(err.Error()) + } + ctr := cipher.NewCTR(aesCipher, iv[:]) + ctr.XORKeyStream(encrypted, plaintext) + + var ret []byte + ret = appendU16(ret, 2) + ret = append(ret, msgTypeData) + ret = append(ret, 0 /* flags */) + ret = appendU32(ret, c.myKeyId-1) + ret = appendU32(ret, c.theirKeyId) + ret = appendMPI(ret, c.myCurrentDHPub) + ret = append(ret, c.myCounter[:]...) + ret = appendData(ret, encrypted) + + mac := hmac.New(sha1.New, slot.sendMACKey) + mac.Write(ret) + ret = append(ret, mac.Sum(nil)[:macPrefixBytes]...) + ret = appendData(ret, c.oldMACs) + c.oldMACs = nil + incCounter(&c.myCounter) + + return ret +} + +func incCounter(counter *[8]byte) { + for i := 7; i >= 0; i-- { + counter[i]++ + if counter[i] > 0 { + break + } + } +} + +// calcDataKeys computes the keys used to encrypt a data message given the key +// IDs. +func (c *Conversation) calcDataKeys(myKeyId, theirKeyId uint32) (slot *keySlot, err error) { + // Check for a cache hit. + for i := range c.keySlots { + slot = &c.keySlots[i] + if slot.used && slot.theirKeyId == theirKeyId && slot.myKeyId == myKeyId { + return + } + } + + // Find an empty slot to write into. + slot = nil + for i := range c.keySlots { + if !c.keySlots[i].used { + slot = &c.keySlots[i] + break + } + } + if slot == nil { + return nil, errors.New("otr: internal error: no more key slots") + } + + var myPriv, myPub, theirPub *big.Int + + if myKeyId == c.myKeyId { + myPriv = c.myCurrentDHPriv + myPub = c.myCurrentDHPub + } else if myKeyId == c.myKeyId-1 { + myPriv = c.myLastDHPriv + myPub = c.myLastDHPub + } else { + err = errors.New("otr: peer requested keyid " + strconv.FormatUint(uint64(myKeyId), 10) + " when I'm on " + strconv.FormatUint(uint64(c.myKeyId), 10)) + return + } + + if theirKeyId == c.theirKeyId { + theirPub = c.theirCurrentDHPub + } else if theirKeyId == c.theirKeyId-1 && c.theirLastDHPub != nil { + theirPub = c.theirLastDHPub + } else { + err = errors.New("otr: peer requested keyid " + strconv.FormatUint(uint64(myKeyId), 10) + " when they're on " + strconv.FormatUint(uint64(c.myKeyId), 10)) + return + } + + var sendPrefixByte, recvPrefixByte [1]byte + + if myPub.Cmp(theirPub) > 0 { + // we're the high end + sendPrefixByte[0], recvPrefixByte[0] = 1, 2 + } else { + // we're the low end + sendPrefixByte[0], recvPrefixByte[0] = 2, 1 + } + + s := new(big.Int).Exp(theirPub, myPriv, p) + sBytes := appendMPI(nil, s) + + h := sha1.New() + h.Write(sendPrefixByte[:]) + h.Write(sBytes) + slot.sendAESKey = h.Sum(slot.sendAESKey[:0])[:16] + + h.Reset() + h.Write(slot.sendAESKey) + slot.sendMACKey = h.Sum(slot.sendMACKey[:0]) + + h.Reset() + h.Write(recvPrefixByte[:]) + h.Write(sBytes) + slot.recvAESKey = h.Sum(slot.recvAESKey[:0])[:16] + + h.Reset() + h.Write(slot.recvAESKey) + slot.recvMACKey = h.Sum(slot.recvMACKey[:0]) + + slot.theirKeyId = theirKeyId + slot.myKeyId = myKeyId + slot.used = true + + zero(slot.theirLastCtr[:]) + return +} + +func (c *Conversation) calcAKEKeys(s *big.Int) { + mpi := appendMPI(nil, s) + h := sha256.New() + + var cBytes [32]byte + hashWithPrefix(c.SSID[:], 0, mpi, h) + + hashWithPrefix(cBytes[:], 1, mpi, h) + copy(c.revealKeys.c[:], cBytes[:16]) + copy(c.sigKeys.c[:], cBytes[16:]) + + hashWithPrefix(c.revealKeys.m1[:], 2, mpi, h) + hashWithPrefix(c.revealKeys.m2[:], 3, mpi, h) + hashWithPrefix(c.sigKeys.m1[:], 4, mpi, h) + hashWithPrefix(c.sigKeys.m2[:], 5, mpi, h) +} + +func hashWithPrefix(out []byte, prefix byte, in []byte, h hash.Hash) { + h.Reset() + var p [1]byte + p[0] = prefix + h.Write(p[:]) + h.Write(in) + if len(out) == h.Size() { + h.Sum(out[:0]) + } else { + digest := h.Sum(nil) + copy(out, digest) + } +} + +func (c *Conversation) encode(msg []byte) [][]byte { + b64 := make([]byte, base64.StdEncoding.EncodedLen(len(msg))+len(msgPrefix)+1) + base64.StdEncoding.Encode(b64[len(msgPrefix):], msg) + copy(b64, msgPrefix) + b64[len(b64)-1] = '.' + + if c.FragmentSize < minFragmentSize || len(b64) <= c.FragmentSize { + // We can encode this in a single fragment. + return [][]byte{b64} + } + + // We have to fragment this message. + var ret [][]byte + bytesPerFragment := c.FragmentSize - minFragmentSize + numFragments := (len(b64) + bytesPerFragment) / bytesPerFragment + + for i := 0; i < numFragments; i++ { + frag := []byte("?OTR," + strconv.Itoa(i+1) + "," + strconv.Itoa(numFragments) + ",") + todo := bytesPerFragment + if todo > len(b64) { + todo = len(b64) + } + frag = append(frag, b64[:todo]...) + b64 = b64[todo:] + frag = append(frag, ',') + ret = append(ret, frag) + } + + return ret +} + +func (c *Conversation) reset() { + c.myKeyId = 0 + + for i := range c.keySlots { + c.keySlots[i].used = false + } +} + +type PublicKey struct { + dsa.PublicKey +} + +func (pk *PublicKey) Parse(in []byte) ([]byte, bool) { + var ok bool + var pubKeyType uint16 + + if pubKeyType, in, ok = getU16(in); !ok || pubKeyType != 0 { + return nil, false + } + if pk.P, in, ok = getMPI(in); !ok { + return nil, false + } + if pk.Q, in, ok = getMPI(in); !ok { + return nil, false + } + if pk.G, in, ok = getMPI(in); !ok { + return nil, false + } + if pk.Y, in, ok = getMPI(in); !ok { + return nil, false + } + + return in, true +} + +func (pk *PublicKey) Serialize(in []byte) []byte { + in = appendU16(in, 0) + in = appendMPI(in, pk.P) + in = appendMPI(in, pk.Q) + in = appendMPI(in, pk.G) + in = appendMPI(in, pk.Y) + return in +} + +// Fingerprint returns the 20-byte, binary fingerprint of the PublicKey. +func (pk *PublicKey) Fingerprint() []byte { + b := pk.Serialize(nil) + h := sha1.New() + h.Write(b[2:]) + return h.Sum(nil) +} + +func (pk *PublicKey) Verify(hashed, sig []byte) ([]byte, bool) { + if len(sig) != 2*dsaSubgroupBytes { + return nil, false + } + r := new(big.Int).SetBytes(sig[:dsaSubgroupBytes]) + s := new(big.Int).SetBytes(sig[dsaSubgroupBytes:]) + ok := dsa.Verify(&pk.PublicKey, hashed, r, s) + return sig[dsaSubgroupBytes*2:], ok +} + +type PrivateKey struct { + PublicKey + dsa.PrivateKey +} + +func (priv *PrivateKey) Sign(rand io.Reader, hashed []byte) []byte { + r, s, err := dsa.Sign(rand, &priv.PrivateKey, hashed) + if err != nil { + panic(err.Error()) + } + rBytes := r.Bytes() + sBytes := s.Bytes() + if len(rBytes) > dsaSubgroupBytes || len(sBytes) > dsaSubgroupBytes { + panic("DSA signature too large") + } + + out := make([]byte, 2*dsaSubgroupBytes) + copy(out[dsaSubgroupBytes-len(rBytes):], rBytes) + copy(out[len(out)-len(sBytes):], sBytes) + return out +} + +func (priv *PrivateKey) Serialize(in []byte) []byte { + in = priv.PublicKey.Serialize(in) + in = appendMPI(in, priv.PrivateKey.X) + return in +} + +func (priv *PrivateKey) Parse(in []byte) ([]byte, bool) { + in, ok := priv.PublicKey.Parse(in) + if !ok { + return in, ok + } + priv.PrivateKey.PublicKey = priv.PublicKey.PublicKey + priv.PrivateKey.X, in, ok = getMPI(in) + return in, ok +} + +func (priv *PrivateKey) Generate(rand io.Reader) { + if err := dsa.GenerateParameters(&priv.PrivateKey.PublicKey.Parameters, rand, dsa.L1024N160); err != nil { + panic(err.Error()) + } + if err := dsa.GenerateKey(&priv.PrivateKey, rand); err != nil { + panic(err.Error()) + } + priv.PublicKey.PublicKey = priv.PrivateKey.PublicKey +} + +func notHex(r rune) bool { + if r >= '0' && r <= '9' || + r >= 'a' && r <= 'f' || + r >= 'A' && r <= 'F' { + return false + } + + return true +} + +// Import parses the contents of a libotr private key file. +func (priv *PrivateKey) Import(in []byte) bool { + mpiStart := []byte(" #") + + mpis := make([]*big.Int, 5) + + for i := 0; i < len(mpis); i++ { + start := bytes.Index(in, mpiStart) + if start == -1 { + return false + } + in = in[start+len(mpiStart):] + end := bytes.IndexFunc(in, notHex) + if end == -1 { + return false + } + hexBytes := in[:end] + in = in[end:] + + if len(hexBytes)&1 != 0 { + return false + } + + mpiBytes := make([]byte, len(hexBytes)/2) + if _, err := hex.Decode(mpiBytes, hexBytes); err != nil { + return false + } + + mpis[i] = new(big.Int).SetBytes(mpiBytes) + } + + priv.PrivateKey.P = mpis[0] + priv.PrivateKey.Q = mpis[1] + priv.PrivateKey.G = mpis[2] + priv.PrivateKey.Y = mpis[3] + priv.PrivateKey.X = mpis[4] + priv.PublicKey.PublicKey = priv.PrivateKey.PublicKey + + a := new(big.Int).Exp(priv.PrivateKey.G, priv.PrivateKey.X, priv.PrivateKey.P) + return a.Cmp(priv.PrivateKey.Y) == 0 +} + +func getU8(in []byte) (uint8, []byte, bool) { + if len(in) < 1 { + return 0, in, false + } + return in[0], in[1:], true +} + +func getU16(in []byte) (uint16, []byte, bool) { + if len(in) < 2 { + return 0, in, false + } + r := uint16(in[0])<<8 | uint16(in[1]) + return r, in[2:], true +} + +func getU32(in []byte) (uint32, []byte, bool) { + if len(in) < 4 { + return 0, in, false + } + r := uint32(in[0])<<24 | uint32(in[1])<<16 | uint32(in[2])<<8 | uint32(in[3]) + return r, in[4:], true +} + +func getMPI(in []byte) (*big.Int, []byte, bool) { + l, in, ok := getU32(in) + if !ok || uint32(len(in)) < l { + return nil, in, false + } + r := new(big.Int).SetBytes(in[:l]) + return r, in[l:], true +} + +func getData(in []byte) ([]byte, []byte, bool) { + l, in, ok := getU32(in) + if !ok || uint32(len(in)) < l { + return nil, in, false + } + return in[:l], in[l:], true +} + +func getNBytes(in []byte, n int) ([]byte, []byte, bool) { + if len(in) < n { + return nil, in, false + } + return in[:n], in[n:], true +} + +func appendU16(out []byte, v uint16) []byte { + out = append(out, byte(v>>8), byte(v)) + return out +} + +func appendU32(out []byte, v uint32) []byte { + out = append(out, byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) + return out +} + +func appendData(out, v []byte) []byte { + out = appendU32(out, uint32(len(v))) + out = append(out, v...) + return out +} + +func appendMPI(out []byte, v *big.Int) []byte { + vBytes := v.Bytes() + out = appendU32(out, uint32(len(vBytes))) + out = append(out, vBytes...) + return out +} + +func appendMPIs(out []byte, mpis ...*big.Int) []byte { + for _, mpi := range mpis { + out = appendMPI(out, mpi) + } + return out +} + +func zero(b []byte) { + for i := range b { + b[i] = 0 + } +} diff --git a/vendor/golang.org/x/crypto/otr/otr_test.go b/vendor/golang.org/x/crypto/otr/otr_test.go new file mode 100644 index 00000000..cfcd062b --- /dev/null +++ b/vendor/golang.org/x/crypto/otr/otr_test.go @@ -0,0 +1,470 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package otr + +import ( + "bufio" + "bytes" + "crypto/rand" + "encoding/hex" + "math/big" + "os" + "os/exec" + "testing" +) + +var isQueryTests = []struct { + msg string + expectedVersion int +}{ + {"foo", 0}, + {"?OtR", 0}, + {"?OtR?", 0}, + {"?OTR?", 0}, + {"?OTRv?", 0}, + {"?OTRv1?", 0}, + {"?OTR?v1?", 0}, + {"?OTR?v?", 0}, + {"?OTR?v2?", 2}, + {"?OTRv2?", 2}, + {"?OTRv23?", 2}, + {"?OTRv23 ?", 0}, +} + +func TestIsQuery(t *testing.T) { + for i, test := range isQueryTests { + version := isQuery([]byte(test.msg)) + if version != test.expectedVersion { + t.Errorf("#%d: got %d, want %d", i, version, test.expectedVersion) + } + } +} + +var alicePrivateKeyHex = "000000000080c81c2cb2eb729b7e6fd48e975a932c638b3a9055478583afa46755683e30102447f6da2d8bec9f386bbb5da6403b0040fee8650b6ab2d7f32c55ab017ae9b6aec8c324ab5844784e9a80e194830d548fb7f09a0410df2c4d5c8bc2b3e9ad484e65412be689cf0834694e0839fb2954021521ffdffb8f5c32c14dbf2020b3ce7500000014da4591d58def96de61aea7b04a8405fe1609308d000000808ddd5cb0b9d66956e3dea5a915d9aba9d8a6e7053b74dadb2fc52f9fe4e5bcc487d2305485ed95fed026ad93f06ebb8c9e8baf693b7887132c7ffdd3b0f72f4002ff4ed56583ca7c54458f8c068ca3e8a4dfa309d1dd5d34e2a4b68e6f4338835e5e0fb4317c9e4c7e4806dafda3ef459cd563775a586dd91b1319f72621bf3f00000080b8147e74d8c45e6318c37731b8b33b984a795b3653c2cd1d65cc99efe097cb7eb2fa49569bab5aab6e8a1c261a27d0f7840a5e80b317e6683042b59b6dceca2879c6ffc877a465be690c15e4a42f9a7588e79b10faac11b1ce3741fcef7aba8ce05327a2c16d279ee1b3d77eb783fb10e3356caa25635331e26dd42b8396c4d00000001420bec691fea37ecea58a5c717142f0b804452f57" + +var aliceFingerprintHex = "0bb01c360424522e94ee9c346ce877a1a4288b2f" + +var bobPrivateKeyHex = "000000000080a5138eb3d3eb9c1d85716faecadb718f87d31aaed1157671d7fee7e488f95e8e0ba60ad449ec732710a7dec5190f7182af2e2f98312d98497221dff160fd68033dd4f3a33b7c078d0d9f66e26847e76ca7447d4bab35486045090572863d9e4454777f24d6706f63e02548dfec2d0a620af37bbc1d24f884708a212c343b480d00000014e9c58f0ea21a5e4dfd9f44b6a9f7f6a9961a8fa9000000803c4d111aebd62d3c50c2889d420a32cdf1e98b70affcc1fcf44d59cca2eb019f6b774ef88153fb9b9615441a5fe25ea2d11b74ce922ca0232bd81b3c0fcac2a95b20cb6e6c0c5c1ace2e26f65dc43c751af0edbb10d669890e8ab6beea91410b8b2187af1a8347627a06ecea7e0f772c28aae9461301e83884860c9b656c722f0000008065af8625a555ea0e008cd04743671a3cda21162e83af045725db2eb2bb52712708dc0cc1a84c08b3649b88a966974bde27d8612c2861792ec9f08786a246fcadd6d8d3a81a32287745f309238f47618c2bd7612cb8b02d940571e0f30b96420bcd462ff542901b46109b1e5ad6423744448d20a57818a8cbb1647d0fea3b664e0000001440f9f2eb554cb00d45a5826b54bfa419b6980e48" + +func TestKeySerialization(t *testing.T) { + var priv PrivateKey + alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) + rest, ok := priv.Parse(alicePrivateKey) + if !ok { + t.Error("failed to parse private key") + } + if len(rest) > 0 { + t.Error("data remaining after parsing private key") + } + + out := priv.Serialize(nil) + if !bytes.Equal(alicePrivateKey, out) { + t.Errorf("serialization (%x) is not equal to original (%x)", out, alicePrivateKey) + } + + aliceFingerprint, _ := hex.DecodeString(aliceFingerprintHex) + fingerprint := priv.PublicKey.Fingerprint() + if !bytes.Equal(aliceFingerprint, fingerprint) { + t.Errorf("fingerprint (%x) is not equal to expected value (%x)", fingerprint, aliceFingerprint) + } +} + +const libOTRPrivateKey = `(privkeys + (account +(name "foo@example.com") +(protocol prpl-jabber) +(private-key + (dsa + (p #00FC07ABCF0DC916AFF6E9AE47BEF60C7AB9B4D6B2469E436630E36F8A489BE812486A09F30B71224508654940A835301ACC525A4FF133FC152CC53DCC59D65C30A54F1993FE13FE63E5823D4C746DB21B90F9B9C00B49EC7404AB1D929BA7FBA12F2E45C6E0A651689750E8528AB8C031D3561FECEE72EBB4A090D450A9B7A857#) + (q #00997BD266EF7B1F60A5C23F3A741F2AEFD07A2081#) + (g #535E360E8A95EBA46A4F7DE50AD6E9B2A6DB785A66B64EB9F20338D2A3E8FB0E94725848F1AA6CC567CB83A1CC517EC806F2E92EAE71457E80B2210A189B91250779434B41FC8A8873F6DB94BEA7D177F5D59E7E114EE10A49CFD9CEF88AE43387023B672927BA74B04EB6BBB5E57597766A2F9CE3857D7ACE3E1E3BC1FC6F26#) + (y #0AC8670AD767D7A8D9D14CC1AC6744CD7D76F993B77FFD9E39DF01E5A6536EF65E775FCEF2A983E2A19BD6415500F6979715D9FD1257E1FE2B6F5E1E74B333079E7C880D39868462A93454B41877BE62E5EF0A041C2EE9C9E76BD1E12AE25D9628DECB097025DD625EF49C3258A1A3C0FF501E3DC673B76D7BABF349009B6ECF#) + (x #14D0345A3562C480A039E3C72764F72D79043216#) + ) + ) + ) +)` + +func TestParseLibOTRPrivateKey(t *testing.T) { + var priv PrivateKey + + if !priv.Import([]byte(libOTRPrivateKey)) { + t.Fatalf("Failed to import sample private key") + } +} + +func TestSignVerify(t *testing.T) { + var priv PrivateKey + alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) + _, ok := priv.Parse(alicePrivateKey) + if !ok { + t.Error("failed to parse private key") + } + + var msg [32]byte + rand.Reader.Read(msg[:]) + + sig := priv.Sign(rand.Reader, msg[:]) + rest, ok := priv.PublicKey.Verify(msg[:], sig) + if !ok { + t.Errorf("signature (%x) of %x failed to verify", sig, msg[:]) + } else if len(rest) > 0 { + t.Error("signature data remains after verification") + } + + sig[10] ^= 80 + _, ok = priv.PublicKey.Verify(msg[:], sig) + if ok { + t.Errorf("corrupted signature (%x) of %x verified", sig, msg[:]) + } +} + +func setupConversation(t *testing.T) (alice, bob *Conversation) { + alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) + bobPrivateKey, _ := hex.DecodeString(bobPrivateKeyHex) + + alice, bob = new(Conversation), new(Conversation) + + alice.PrivateKey = new(PrivateKey) + bob.PrivateKey = new(PrivateKey) + alice.PrivateKey.Parse(alicePrivateKey) + bob.PrivateKey.Parse(bobPrivateKey) + alice.FragmentSize = 100 + bob.FragmentSize = 100 + + if alice.IsEncrypted() { + t.Error("Alice believes that the conversation is secure before we've started") + } + if bob.IsEncrypted() { + t.Error("Bob believes that the conversation is secure before we've started") + } + + performHandshake(t, alice, bob) + return alice, bob +} + +func performHandshake(t *testing.T, alice, bob *Conversation) { + var alicesMessage, bobsMessage [][]byte + var out []byte + var aliceChange, bobChange SecurityChange + var err error + alicesMessage = append(alicesMessage, []byte(QueryMessage)) + + for round := 0; len(alicesMessage) > 0 || len(bobsMessage) > 0; round++ { + bobsMessage = nil + for i, msg := range alicesMessage { + out, _, bobChange, bobsMessage, err = bob.Receive(msg) + if len(out) > 0 { + t.Errorf("Bob generated output during key exchange, round %d, message %d", round, i) + } + if err != nil { + t.Fatalf("Bob returned an error, round %d, message %d (%x): %s", round, i, msg, err) + } + if len(bobsMessage) > 0 && i != len(alicesMessage)-1 { + t.Errorf("Bob produced output while processing a fragment, round %d, message %d", round, i) + } + } + + alicesMessage = nil + for i, msg := range bobsMessage { + out, _, aliceChange, alicesMessage, err = alice.Receive(msg) + if len(out) > 0 { + t.Errorf("Alice generated output during key exchange, round %d, message %d", round, i) + } + if err != nil { + t.Fatalf("Alice returned an error, round %d, message %d (%x): %s", round, i, msg, err) + } + if len(alicesMessage) > 0 && i != len(bobsMessage)-1 { + t.Errorf("Alice produced output while processing a fragment, round %d, message %d", round, i) + } + } + } + + if aliceChange != NewKeys { + t.Errorf("Alice terminated without signaling new keys") + } + if bobChange != NewKeys { + t.Errorf("Bob terminated without signaling new keys") + } + + if !bytes.Equal(alice.SSID[:], bob.SSID[:]) { + t.Errorf("Session identifiers don't match. Alice has %x, Bob has %x", alice.SSID[:], bob.SSID[:]) + } + + if !alice.IsEncrypted() { + t.Error("Alice doesn't believe that the conversation is secure") + } + if !bob.IsEncrypted() { + t.Error("Bob doesn't believe that the conversation is secure") + } +} + +const ( + firstRoundTrip = iota + subsequentRoundTrip + noMACKeyCheck +) + +func roundTrip(t *testing.T, alice, bob *Conversation, message []byte, macKeyCheck int) { + alicesMessage, err := alice.Send(message) + if err != nil { + t.Errorf("Error from Alice sending message: %s", err) + } + + if len(alice.oldMACs) != 0 { + t.Errorf("Alice has not revealed all MAC keys") + } + + for i, msg := range alicesMessage { + out, encrypted, _, _, err := bob.Receive(msg) + + if err != nil { + t.Errorf("Error generated while processing test message: %s", err.Error()) + } + if len(out) > 0 { + if i != len(alicesMessage)-1 { + t.Fatal("Bob produced a message while processing a fragment of Alice's") + } + if !encrypted { + t.Errorf("Message was not marked as encrypted") + } + if !bytes.Equal(out, message) { + t.Errorf("Message corrupted: got %x, want %x", out, message) + } + } + } + + switch macKeyCheck { + case firstRoundTrip: + if len(bob.oldMACs) != 0 { + t.Errorf("Bob should not have MAC keys to reveal") + } + case subsequentRoundTrip: + if len(bob.oldMACs) != 40 { + t.Errorf("Bob has %d bytes of MAC keys to reveal, but should have 40", len(bob.oldMACs)) + } + } + + bobsMessage, err := bob.Send(message) + if err != nil { + t.Errorf("Error from Bob sending message: %s", err) + } + + if len(bob.oldMACs) != 0 { + t.Errorf("Bob has not revealed all MAC keys") + } + + for i, msg := range bobsMessage { + out, encrypted, _, _, err := alice.Receive(msg) + + if err != nil { + t.Errorf("Error generated while processing test message: %s", err.Error()) + } + if len(out) > 0 { + if i != len(bobsMessage)-1 { + t.Fatal("Alice produced a message while processing a fragment of Bob's") + } + if !encrypted { + t.Errorf("Message was not marked as encrypted") + } + if !bytes.Equal(out, message) { + t.Errorf("Message corrupted: got %x, want %x", out, message) + } + } + } + + switch macKeyCheck { + case firstRoundTrip: + if len(alice.oldMACs) != 20 { + t.Errorf("Alice has %d bytes of MAC keys to reveal, but should have 20", len(alice.oldMACs)) + } + case subsequentRoundTrip: + if len(alice.oldMACs) != 40 { + t.Errorf("Alice has %d bytes of MAC keys to reveal, but should have 40", len(alice.oldMACs)) + } + } +} + +func TestConversation(t *testing.T) { + alice, bob := setupConversation(t) + + var testMessages = [][]byte{ + []byte("hello"), []byte("bye"), + } + + roundTripType := firstRoundTrip + + for _, testMessage := range testMessages { + roundTrip(t, alice, bob, testMessage, roundTripType) + roundTripType = subsequentRoundTrip + } +} + +func TestGoodSMP(t *testing.T) { + var alice, bob Conversation + + alice.smp.secret = new(big.Int).SetInt64(42) + bob.smp.secret = alice.smp.secret + + var alicesMessages, bobsMessages []tlv + var aliceComplete, bobComplete bool + var err error + var out tlv + + alicesMessages = alice.startSMP("") + for round := 0; len(alicesMessages) > 0 || len(bobsMessages) > 0; round++ { + bobsMessages = bobsMessages[:0] + for i, msg := range alicesMessages { + out, bobComplete, err = bob.processSMP(msg) + if err != nil { + t.Errorf("Error from Bob in round %d: %s", round, err) + } + if bobComplete && i != len(alicesMessages)-1 { + t.Errorf("Bob returned a completed signal before processing all of Alice's messages in round %d", round) + } + if out.typ != 0 { + bobsMessages = append(bobsMessages, out) + } + } + + alicesMessages = alicesMessages[:0] + for i, msg := range bobsMessages { + out, aliceComplete, err = alice.processSMP(msg) + if err != nil { + t.Errorf("Error from Alice in round %d: %s", round, err) + } + if aliceComplete && i != len(bobsMessages)-1 { + t.Errorf("Alice returned a completed signal before processing all of Bob's messages in round %d", round) + } + if out.typ != 0 { + alicesMessages = append(alicesMessages, out) + } + } + } + + if !aliceComplete || !bobComplete { + t.Errorf("SMP completed without both sides reporting success: alice: %v, bob: %v\n", aliceComplete, bobComplete) + } +} + +func TestBadSMP(t *testing.T) { + var alice, bob Conversation + + alice.smp.secret = new(big.Int).SetInt64(42) + bob.smp.secret = new(big.Int).SetInt64(43) + + var alicesMessages, bobsMessages []tlv + + alicesMessages = alice.startSMP("") + for round := 0; len(alicesMessages) > 0 || len(bobsMessages) > 0; round++ { + bobsMessages = bobsMessages[:0] + for _, msg := range alicesMessages { + out, complete, _ := bob.processSMP(msg) + if complete { + t.Errorf("Bob signaled completion in round %d", round) + } + if out.typ != 0 { + bobsMessages = append(bobsMessages, out) + } + } + + alicesMessages = alicesMessages[:0] + for _, msg := range bobsMessages { + out, complete, _ := alice.processSMP(msg) + if complete { + t.Errorf("Alice signaled completion in round %d", round) + } + if out.typ != 0 { + alicesMessages = append(alicesMessages, out) + } + } + } +} + +func TestRehandshaking(t *testing.T) { + alice, bob := setupConversation(t) + roundTrip(t, alice, bob, []byte("test"), firstRoundTrip) + roundTrip(t, alice, bob, []byte("test 2"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 3"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 4"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 5"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 6"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 7"), subsequentRoundTrip) + roundTrip(t, alice, bob, []byte("test 8"), subsequentRoundTrip) + performHandshake(t, alice, bob) + roundTrip(t, alice, bob, []byte("test"), noMACKeyCheck) + roundTrip(t, alice, bob, []byte("test 2"), noMACKeyCheck) +} + +func TestAgainstLibOTR(t *testing.T) { + // This test requires otr.c.test to be built as /tmp/a.out. + // If enabled, this tests runs forever performing OTR handshakes in a + // loop. + return + + alicePrivateKey, _ := hex.DecodeString(alicePrivateKeyHex) + var alice Conversation + alice.PrivateKey = new(PrivateKey) + alice.PrivateKey.Parse(alicePrivateKey) + + cmd := exec.Command("/tmp/a.out") + cmd.Stderr = os.Stderr + + out, err := cmd.StdinPipe() + if err != nil { + t.Fatal(err) + } + defer out.Close() + stdout, err := cmd.StdoutPipe() + if err != nil { + t.Fatal(err) + } + in := bufio.NewReader(stdout) + + if err := cmd.Start(); err != nil { + t.Fatal(err) + } + + out.Write([]byte(QueryMessage)) + out.Write([]byte("\n")) + var expectedText = []byte("test message") + + for { + line, isPrefix, err := in.ReadLine() + if isPrefix { + t.Fatal("line from subprocess too long") + } + if err != nil { + t.Fatal(err) + } + text, encrypted, change, alicesMessage, err := alice.Receive(line) + if err != nil { + t.Fatal(err) + } + for _, msg := range alicesMessage { + out.Write(msg) + out.Write([]byte("\n")) + } + if change == NewKeys { + alicesMessage, err := alice.Send([]byte("Go -> libotr test message")) + if err != nil { + t.Fatalf("error sending message: %s", err.Error()) + } else { + for _, msg := range alicesMessage { + out.Write(msg) + out.Write([]byte("\n")) + } + } + } + if len(text) > 0 { + if !bytes.Equal(text, expectedText) { + t.Fatalf("expected %x, but got %x", expectedText, text) + } + if !encrypted { + t.Fatal("message wasn't encrypted") + } + } + } +} diff --git a/vendor/golang.org/x/crypto/otr/smp.go b/vendor/golang.org/x/crypto/otr/smp.go new file mode 100644 index 00000000..dc6de4ee --- /dev/null +++ b/vendor/golang.org/x/crypto/otr/smp.go @@ -0,0 +1,572 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file implements the Socialist Millionaires Protocol as described in +// http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html. The protocol +// specification is required in order to understand this code and, where +// possible, the variable names in the code match up with the spec. + +package otr + +import ( + "bytes" + "crypto/sha256" + "errors" + "hash" + "math/big" +) + +type smpFailure string + +func (s smpFailure) Error() string { + return string(s) +} + +var smpFailureError = smpFailure("otr: SMP protocol failed") +var smpSecretMissingError = smpFailure("otr: mutual secret needed") + +const smpVersion = 1 + +const ( + smpState1 = iota + smpState2 + smpState3 + smpState4 +) + +type smpState struct { + state int + a2, a3, b2, b3, pb, qb *big.Int + g2a, g3a *big.Int + g2, g3 *big.Int + g3b, papb, qaqb, ra *big.Int + saved *tlv + secret *big.Int + question string +} + +func (c *Conversation) startSMP(question string) (tlvs []tlv) { + if c.smp.state != smpState1 { + tlvs = append(tlvs, c.generateSMPAbort()) + } + tlvs = append(tlvs, c.generateSMP1(question)) + c.smp.question = "" + c.smp.state = smpState2 + return +} + +func (c *Conversation) resetSMP() { + c.smp.state = smpState1 + c.smp.secret = nil + c.smp.question = "" +} + +func (c *Conversation) processSMP(in tlv) (out tlv, complete bool, err error) { + data := in.data + + switch in.typ { + case tlvTypeSMPAbort: + if c.smp.state != smpState1 { + err = smpFailureError + } + c.resetSMP() + return + case tlvTypeSMP1WithQuestion: + // We preprocess this into a SMP1 message. + nulPos := bytes.IndexByte(data, 0) + if nulPos == -1 { + err = errors.New("otr: SMP message with question didn't contain a NUL byte") + return + } + c.smp.question = string(data[:nulPos]) + data = data[nulPos+1:] + } + + numMPIs, data, ok := getU32(data) + if !ok || numMPIs > 20 { + err = errors.New("otr: corrupt SMP message") + return + } + + mpis := make([]*big.Int, numMPIs) + for i := range mpis { + var ok bool + mpis[i], data, ok = getMPI(data) + if !ok { + err = errors.New("otr: corrupt SMP message") + return + } + } + + switch in.typ { + case tlvTypeSMP1, tlvTypeSMP1WithQuestion: + if c.smp.state != smpState1 { + c.resetSMP() + out = c.generateSMPAbort() + return + } + if c.smp.secret == nil { + err = smpSecretMissingError + return + } + if err = c.processSMP1(mpis); err != nil { + return + } + c.smp.state = smpState3 + out = c.generateSMP2() + case tlvTypeSMP2: + if c.smp.state != smpState2 { + c.resetSMP() + out = c.generateSMPAbort() + return + } + if out, err = c.processSMP2(mpis); err != nil { + out = c.generateSMPAbort() + return + } + c.smp.state = smpState4 + case tlvTypeSMP3: + if c.smp.state != smpState3 { + c.resetSMP() + out = c.generateSMPAbort() + return + } + if out, err = c.processSMP3(mpis); err != nil { + return + } + c.smp.state = smpState1 + c.smp.secret = nil + complete = true + case tlvTypeSMP4: + if c.smp.state != smpState4 { + c.resetSMP() + out = c.generateSMPAbort() + return + } + if err = c.processSMP4(mpis); err != nil { + out = c.generateSMPAbort() + return + } + c.smp.state = smpState1 + c.smp.secret = nil + complete = true + default: + panic("unknown SMP message") + } + + return +} + +func (c *Conversation) calcSMPSecret(mutualSecret []byte, weStarted bool) { + h := sha256.New() + h.Write([]byte{smpVersion}) + if weStarted { + h.Write(c.PrivateKey.PublicKey.Fingerprint()) + h.Write(c.TheirPublicKey.Fingerprint()) + } else { + h.Write(c.TheirPublicKey.Fingerprint()) + h.Write(c.PrivateKey.PublicKey.Fingerprint()) + } + h.Write(c.SSID[:]) + h.Write(mutualSecret) + c.smp.secret = new(big.Int).SetBytes(h.Sum(nil)) +} + +func (c *Conversation) generateSMP1(question string) tlv { + var randBuf [16]byte + c.smp.a2 = c.randMPI(randBuf[:]) + c.smp.a3 = c.randMPI(randBuf[:]) + g2a := new(big.Int).Exp(g, c.smp.a2, p) + g3a := new(big.Int).Exp(g, c.smp.a3, p) + h := sha256.New() + + r2 := c.randMPI(randBuf[:]) + r := new(big.Int).Exp(g, r2, p) + c2 := new(big.Int).SetBytes(hashMPIs(h, 1, r)) + d2 := new(big.Int).Mul(c.smp.a2, c2) + d2.Sub(r2, d2) + d2.Mod(d2, q) + if d2.Sign() < 0 { + d2.Add(d2, q) + } + + r3 := c.randMPI(randBuf[:]) + r.Exp(g, r3, p) + c3 := new(big.Int).SetBytes(hashMPIs(h, 2, r)) + d3 := new(big.Int).Mul(c.smp.a3, c3) + d3.Sub(r3, d3) + d3.Mod(d3, q) + if d3.Sign() < 0 { + d3.Add(d3, q) + } + + var ret tlv + if len(question) > 0 { + ret.typ = tlvTypeSMP1WithQuestion + ret.data = append(ret.data, question...) + ret.data = append(ret.data, 0) + } else { + ret.typ = tlvTypeSMP1 + } + ret.data = appendU32(ret.data, 6) + ret.data = appendMPIs(ret.data, g2a, c2, d2, g3a, c3, d3) + return ret +} + +func (c *Conversation) processSMP1(mpis []*big.Int) error { + if len(mpis) != 6 { + return errors.New("otr: incorrect number of arguments in SMP1 message") + } + g2a := mpis[0] + c2 := mpis[1] + d2 := mpis[2] + g3a := mpis[3] + c3 := mpis[4] + d3 := mpis[5] + h := sha256.New() + + r := new(big.Int).Exp(g, d2, p) + s := new(big.Int).Exp(g2a, c2, p) + r.Mul(r, s) + r.Mod(r, p) + t := new(big.Int).SetBytes(hashMPIs(h, 1, r)) + if c2.Cmp(t) != 0 { + return errors.New("otr: ZKP c2 incorrect in SMP1 message") + } + r.Exp(g, d3, p) + s.Exp(g3a, c3, p) + r.Mul(r, s) + r.Mod(r, p) + t.SetBytes(hashMPIs(h, 2, r)) + if c3.Cmp(t) != 0 { + return errors.New("otr: ZKP c3 incorrect in SMP1 message") + } + + c.smp.g2a = g2a + c.smp.g3a = g3a + return nil +} + +func (c *Conversation) generateSMP2() tlv { + var randBuf [16]byte + b2 := c.randMPI(randBuf[:]) + c.smp.b3 = c.randMPI(randBuf[:]) + r2 := c.randMPI(randBuf[:]) + r3 := c.randMPI(randBuf[:]) + r4 := c.randMPI(randBuf[:]) + r5 := c.randMPI(randBuf[:]) + r6 := c.randMPI(randBuf[:]) + + g2b := new(big.Int).Exp(g, b2, p) + g3b := new(big.Int).Exp(g, c.smp.b3, p) + + r := new(big.Int).Exp(g, r2, p) + h := sha256.New() + c2 := new(big.Int).SetBytes(hashMPIs(h, 3, r)) + d2 := new(big.Int).Mul(b2, c2) + d2.Sub(r2, d2) + d2.Mod(d2, q) + if d2.Sign() < 0 { + d2.Add(d2, q) + } + + r.Exp(g, r3, p) + c3 := new(big.Int).SetBytes(hashMPIs(h, 4, r)) + d3 := new(big.Int).Mul(c.smp.b3, c3) + d3.Sub(r3, d3) + d3.Mod(d3, q) + if d3.Sign() < 0 { + d3.Add(d3, q) + } + + c.smp.g2 = new(big.Int).Exp(c.smp.g2a, b2, p) + c.smp.g3 = new(big.Int).Exp(c.smp.g3a, c.smp.b3, p) + c.smp.pb = new(big.Int).Exp(c.smp.g3, r4, p) + c.smp.qb = new(big.Int).Exp(g, r4, p) + r.Exp(c.smp.g2, c.smp.secret, p) + c.smp.qb.Mul(c.smp.qb, r) + c.smp.qb.Mod(c.smp.qb, p) + + s := new(big.Int) + s.Exp(c.smp.g2, r6, p) + r.Exp(g, r5, p) + s.Mul(r, s) + s.Mod(s, p) + r.Exp(c.smp.g3, r5, p) + cp := new(big.Int).SetBytes(hashMPIs(h, 5, r, s)) + + // D5 = r5 - r4 cP mod q and D6 = r6 - y cP mod q + + s.Mul(r4, cp) + r.Sub(r5, s) + d5 := new(big.Int).Mod(r, q) + if d5.Sign() < 0 { + d5.Add(d5, q) + } + + s.Mul(c.smp.secret, cp) + r.Sub(r6, s) + d6 := new(big.Int).Mod(r, q) + if d6.Sign() < 0 { + d6.Add(d6, q) + } + + var ret tlv + ret.typ = tlvTypeSMP2 + ret.data = appendU32(ret.data, 11) + ret.data = appendMPIs(ret.data, g2b, c2, d2, g3b, c3, d3, c.smp.pb, c.smp.qb, cp, d5, d6) + return ret +} + +func (c *Conversation) processSMP2(mpis []*big.Int) (out tlv, err error) { + if len(mpis) != 11 { + err = errors.New("otr: incorrect number of arguments in SMP2 message") + return + } + g2b := mpis[0] + c2 := mpis[1] + d2 := mpis[2] + g3b := mpis[3] + c3 := mpis[4] + d3 := mpis[5] + pb := mpis[6] + qb := mpis[7] + cp := mpis[8] + d5 := mpis[9] + d6 := mpis[10] + h := sha256.New() + + r := new(big.Int).Exp(g, d2, p) + s := new(big.Int).Exp(g2b, c2, p) + r.Mul(r, s) + r.Mod(r, p) + s.SetBytes(hashMPIs(h, 3, r)) + if c2.Cmp(s) != 0 { + err = errors.New("otr: ZKP c2 failed in SMP2 message") + return + } + + r.Exp(g, d3, p) + s.Exp(g3b, c3, p) + r.Mul(r, s) + r.Mod(r, p) + s.SetBytes(hashMPIs(h, 4, r)) + if c3.Cmp(s) != 0 { + err = errors.New("otr: ZKP c3 failed in SMP2 message") + return + } + + c.smp.g2 = new(big.Int).Exp(g2b, c.smp.a2, p) + c.smp.g3 = new(big.Int).Exp(g3b, c.smp.a3, p) + + r.Exp(g, d5, p) + s.Exp(c.smp.g2, d6, p) + r.Mul(r, s) + s.Exp(qb, cp, p) + r.Mul(r, s) + r.Mod(r, p) + + s.Exp(c.smp.g3, d5, p) + t := new(big.Int).Exp(pb, cp, p) + s.Mul(s, t) + s.Mod(s, p) + t.SetBytes(hashMPIs(h, 5, s, r)) + if cp.Cmp(t) != 0 { + err = errors.New("otr: ZKP cP failed in SMP2 message") + return + } + + var randBuf [16]byte + r4 := c.randMPI(randBuf[:]) + r5 := c.randMPI(randBuf[:]) + r6 := c.randMPI(randBuf[:]) + r7 := c.randMPI(randBuf[:]) + + pa := new(big.Int).Exp(c.smp.g3, r4, p) + r.Exp(c.smp.g2, c.smp.secret, p) + qa := new(big.Int).Exp(g, r4, p) + qa.Mul(qa, r) + qa.Mod(qa, p) + + r.Exp(g, r5, p) + s.Exp(c.smp.g2, r6, p) + r.Mul(r, s) + r.Mod(r, p) + + s.Exp(c.smp.g3, r5, p) + cp.SetBytes(hashMPIs(h, 6, s, r)) + + r.Mul(r4, cp) + d5 = new(big.Int).Sub(r5, r) + d5.Mod(d5, q) + if d5.Sign() < 0 { + d5.Add(d5, q) + } + + r.Mul(c.smp.secret, cp) + d6 = new(big.Int).Sub(r6, r) + d6.Mod(d6, q) + if d6.Sign() < 0 { + d6.Add(d6, q) + } + + r.ModInverse(qb, p) + qaqb := new(big.Int).Mul(qa, r) + qaqb.Mod(qaqb, p) + + ra := new(big.Int).Exp(qaqb, c.smp.a3, p) + r.Exp(qaqb, r7, p) + s.Exp(g, r7, p) + cr := new(big.Int).SetBytes(hashMPIs(h, 7, s, r)) + + r.Mul(c.smp.a3, cr) + d7 := new(big.Int).Sub(r7, r) + d7.Mod(d7, q) + if d7.Sign() < 0 { + d7.Add(d7, q) + } + + c.smp.g3b = g3b + c.smp.qaqb = qaqb + + r.ModInverse(pb, p) + c.smp.papb = new(big.Int).Mul(pa, r) + c.smp.papb.Mod(c.smp.papb, p) + c.smp.ra = ra + + out.typ = tlvTypeSMP3 + out.data = appendU32(out.data, 8) + out.data = appendMPIs(out.data, pa, qa, cp, d5, d6, ra, cr, d7) + return +} + +func (c *Conversation) processSMP3(mpis []*big.Int) (out tlv, err error) { + if len(mpis) != 8 { + err = errors.New("otr: incorrect number of arguments in SMP3 message") + return + } + pa := mpis[0] + qa := mpis[1] + cp := mpis[2] + d5 := mpis[3] + d6 := mpis[4] + ra := mpis[5] + cr := mpis[6] + d7 := mpis[7] + h := sha256.New() + + r := new(big.Int).Exp(g, d5, p) + s := new(big.Int).Exp(c.smp.g2, d6, p) + r.Mul(r, s) + s.Exp(qa, cp, p) + r.Mul(r, s) + r.Mod(r, p) + + s.Exp(c.smp.g3, d5, p) + t := new(big.Int).Exp(pa, cp, p) + s.Mul(s, t) + s.Mod(s, p) + t.SetBytes(hashMPIs(h, 6, s, r)) + if t.Cmp(cp) != 0 { + err = errors.New("otr: ZKP cP failed in SMP3 message") + return + } + + r.ModInverse(c.smp.qb, p) + qaqb := new(big.Int).Mul(qa, r) + qaqb.Mod(qaqb, p) + + r.Exp(qaqb, d7, p) + s.Exp(ra, cr, p) + r.Mul(r, s) + r.Mod(r, p) + + s.Exp(g, d7, p) + t.Exp(c.smp.g3a, cr, p) + s.Mul(s, t) + s.Mod(s, p) + t.SetBytes(hashMPIs(h, 7, s, r)) + if t.Cmp(cr) != 0 { + err = errors.New("otr: ZKP cR failed in SMP3 message") + return + } + + var randBuf [16]byte + r7 := c.randMPI(randBuf[:]) + rb := new(big.Int).Exp(qaqb, c.smp.b3, p) + + r.Exp(qaqb, r7, p) + s.Exp(g, r7, p) + cr = new(big.Int).SetBytes(hashMPIs(h, 8, s, r)) + + r.Mul(c.smp.b3, cr) + d7 = new(big.Int).Sub(r7, r) + d7.Mod(d7, q) + if d7.Sign() < 0 { + d7.Add(d7, q) + } + + out.typ = tlvTypeSMP4 + out.data = appendU32(out.data, 3) + out.data = appendMPIs(out.data, rb, cr, d7) + + r.ModInverse(c.smp.pb, p) + r.Mul(pa, r) + r.Mod(r, p) + s.Exp(ra, c.smp.b3, p) + if r.Cmp(s) != 0 { + err = smpFailureError + } + + return +} + +func (c *Conversation) processSMP4(mpis []*big.Int) error { + if len(mpis) != 3 { + return errors.New("otr: incorrect number of arguments in SMP4 message") + } + rb := mpis[0] + cr := mpis[1] + d7 := mpis[2] + h := sha256.New() + + r := new(big.Int).Exp(c.smp.qaqb, d7, p) + s := new(big.Int).Exp(rb, cr, p) + r.Mul(r, s) + r.Mod(r, p) + + s.Exp(g, d7, p) + t := new(big.Int).Exp(c.smp.g3b, cr, p) + s.Mul(s, t) + s.Mod(s, p) + t.SetBytes(hashMPIs(h, 8, s, r)) + if t.Cmp(cr) != 0 { + return errors.New("otr: ZKP cR failed in SMP4 message") + } + + r.Exp(rb, c.smp.a3, p) + if r.Cmp(c.smp.papb) != 0 { + return smpFailureError + } + + return nil +} + +func (c *Conversation) generateSMPAbort() tlv { + return tlv{typ: tlvTypeSMPAbort} +} + +func hashMPIs(h hash.Hash, magic byte, mpis ...*big.Int) []byte { + if h != nil { + h.Reset() + } else { + h = sha256.New() + } + + h.Write([]byte{magic}) + for _, mpi := range mpis { + h.Write(appendMPI(nil, mpi)) + } + return h.Sum(nil) +} diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go new file mode 100644 index 00000000..593f6530 --- /dev/null +++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go @@ -0,0 +1,77 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC +2898 / PKCS #5 v2.0. + +A key derivation function is useful when encrypting data based on a password +or any other not-fully-random data. It uses a pseudorandom function to derive +a secure encryption key based on the password. + +While v2.0 of the standard defines only one pseudorandom function to use, +HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved +Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To +choose, you can pass the `New` functions from the different SHA packages to +pbkdf2.Key. +*/ +package pbkdf2 // import "golang.org/x/crypto/pbkdf2" + +import ( + "crypto/hmac" + "hash" +) + +// Key derives a key from the password, salt and iteration count, returning a +// []byte of length keylen that can be used as cryptographic key. The key is +// derived based on the method described as PBKDF2 with the HMAC variant using +// the supplied hash function. +// +// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you +// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by +// doing: +// +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// +// Remember to get a good random salt. At least 8 bytes is recommended by the +// RFC. +// +// Using a higher iteration count will increase the cost of an exhaustive +// search but will also make derivation proportionally slower. +func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { + prf := hmac.New(h, password) + hashLen := prf.Size() + numBlocks := (keyLen + hashLen - 1) / hashLen + + var buf [4]byte + dk := make([]byte, 0, numBlocks*hashLen) + U := make([]byte, hashLen) + for block := 1; block <= numBlocks; block++ { + // N.B.: || means concatenation, ^ means XOR + // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter + // U_1 = PRF(password, salt || uint(i)) + prf.Reset() + prf.Write(salt) + buf[0] = byte(block >> 24) + buf[1] = byte(block >> 16) + buf[2] = byte(block >> 8) + buf[3] = byte(block) + prf.Write(buf[:4]) + dk = prf.Sum(dk) + T := dk[len(dk)-hashLen:] + copy(U, T) + + // U_n = PRF(password, U_(n-1)) + for n := 2; n <= iter; n++ { + prf.Reset() + prf.Write(U) + U = U[:0] + U = prf.Sum(U) + for x := range U { + T[x] ^= U[x] + } + } + } + return dk[:keyLen] +} diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2_test.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2_test.go new file mode 100644 index 00000000..13792406 --- /dev/null +++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2_test.go @@ -0,0 +1,157 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pbkdf2 + +import ( + "bytes" + "crypto/sha1" + "crypto/sha256" + "hash" + "testing" +) + +type testVector struct { + password string + salt string + iter int + output []byte +} + +// Test vectors from RFC 6070, http://tools.ietf.org/html/rfc6070 +var sha1TestVectors = []testVector{ + { + "password", + "salt", + 1, + []byte{ + 0x0c, 0x60, 0xc8, 0x0f, 0x96, 0x1f, 0x0e, 0x71, + 0xf3, 0xa9, 0xb5, 0x24, 0xaf, 0x60, 0x12, 0x06, + 0x2f, 0xe0, 0x37, 0xa6, + }, + }, + { + "password", + "salt", + 2, + []byte{ + 0xea, 0x6c, 0x01, 0x4d, 0xc7, 0x2d, 0x6f, 0x8c, + 0xcd, 0x1e, 0xd9, 0x2a, 0xce, 0x1d, 0x41, 0xf0, + 0xd8, 0xde, 0x89, 0x57, + }, + }, + { + "password", + "salt", + 4096, + []byte{ + 0x4b, 0x00, 0x79, 0x01, 0xb7, 0x65, 0x48, 0x9a, + 0xbe, 0xad, 0x49, 0xd9, 0x26, 0xf7, 0x21, 0xd0, + 0x65, 0xa4, 0x29, 0xc1, + }, + }, + // // This one takes too long + // { + // "password", + // "salt", + // 16777216, + // []byte{ + // 0xee, 0xfe, 0x3d, 0x61, 0xcd, 0x4d, 0xa4, 0xe4, + // 0xe9, 0x94, 0x5b, 0x3d, 0x6b, 0xa2, 0x15, 0x8c, + // 0x26, 0x34, 0xe9, 0x84, + // }, + // }, + { + "passwordPASSWORDpassword", + "saltSALTsaltSALTsaltSALTsaltSALTsalt", + 4096, + []byte{ + 0x3d, 0x2e, 0xec, 0x4f, 0xe4, 0x1c, 0x84, 0x9b, + 0x80, 0xc8, 0xd8, 0x36, 0x62, 0xc0, 0xe4, 0x4a, + 0x8b, 0x29, 0x1a, 0x96, 0x4c, 0xf2, 0xf0, 0x70, + 0x38, + }, + }, + { + "pass\000word", + "sa\000lt", + 4096, + []byte{ + 0x56, 0xfa, 0x6a, 0xa7, 0x55, 0x48, 0x09, 0x9d, + 0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3, + }, + }, +} + +// Test vectors from +// http://stackoverflow.com/questions/5130513/pbkdf2-hmac-sha2-test-vectors +var sha256TestVectors = []testVector{ + { + "password", + "salt", + 1, + []byte{ + 0x12, 0x0f, 0xb6, 0xcf, 0xfc, 0xf8, 0xb3, 0x2c, + 0x43, 0xe7, 0x22, 0x52, 0x56, 0xc4, 0xf8, 0x37, + 0xa8, 0x65, 0x48, 0xc9, + }, + }, + { + "password", + "salt", + 2, + []byte{ + 0xae, 0x4d, 0x0c, 0x95, 0xaf, 0x6b, 0x46, 0xd3, + 0x2d, 0x0a, 0xdf, 0xf9, 0x28, 0xf0, 0x6d, 0xd0, + 0x2a, 0x30, 0x3f, 0x8e, + }, + }, + { + "password", + "salt", + 4096, + []byte{ + 0xc5, 0xe4, 0x78, 0xd5, 0x92, 0x88, 0xc8, 0x41, + 0xaa, 0x53, 0x0d, 0xb6, 0x84, 0x5c, 0x4c, 0x8d, + 0x96, 0x28, 0x93, 0xa0, + }, + }, + { + "passwordPASSWORDpassword", + "saltSALTsaltSALTsaltSALTsaltSALTsalt", + 4096, + []byte{ + 0x34, 0x8c, 0x89, 0xdb, 0xcb, 0xd3, 0x2b, 0x2f, + 0x32, 0xd8, 0x14, 0xb8, 0x11, 0x6e, 0x84, 0xcf, + 0x2b, 0x17, 0x34, 0x7e, 0xbc, 0x18, 0x00, 0x18, + 0x1c, + }, + }, + { + "pass\000word", + "sa\000lt", + 4096, + []byte{ + 0x89, 0xb6, 0x9d, 0x05, 0x16, 0xf8, 0x29, 0x89, + 0x3c, 0x69, 0x62, 0x26, 0x65, 0x0a, 0x86, 0x87, + }, + }, +} + +func testHash(t *testing.T, h func() hash.Hash, hashName string, vectors []testVector) { + for i, v := range vectors { + o := Key([]byte(v.password), []byte(v.salt), v.iter, len(v.output), h) + if !bytes.Equal(o, v.output) { + t.Errorf("%s %d: expected %x, got %x", hashName, i, v.output, o) + } + } +} + +func TestWithHMACSHA1(t *testing.T) { + testHash(t, sha1.New, "SHA1", sha1TestVectors) +} + +func TestWithHMACSHA256(t *testing.T) { + testHash(t, sha256.New, "SHA256", sha256TestVectors) +} diff --git a/vendor/golang.org/x/crypto/pkcs12/bmp-string.go b/vendor/golang.org/x/crypto/pkcs12/bmp-string.go new file mode 100644 index 00000000..284d2a68 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/bmp-string.go @@ -0,0 +1,50 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "errors" + "unicode/utf16" +) + +// bmpString returns s encoded in UCS-2 with a zero terminator. +func bmpString(s string) ([]byte, error) { + // References: + // https://tools.ietf.org/html/rfc7292#appendix-B.1 + // http://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane + // - non-BMP characters are encoded in UTF 16 by using a surrogate pair of 16-bit codes + // EncodeRune returns 0xfffd if the rune does not need special encoding + // - the above RFC provides the info that BMPStrings are NULL terminated. + + ret := make([]byte, 0, 2*len(s)+2) + + for _, r := range s { + if t, _ := utf16.EncodeRune(r); t != 0xfffd { + return nil, errors.New("pkcs12: string contains characters that cannot be encoded in UCS-2") + } + ret = append(ret, byte(r/256), byte(r%256)) + } + + return append(ret, 0, 0), nil +} + +func decodeBMPString(bmpString []byte) (string, error) { + if len(bmpString)%2 != 0 { + return "", errors.New("pkcs12: odd-length BMP string") + } + + // strip terminator if present + if l := len(bmpString); l >= 2 && bmpString[l-1] == 0 && bmpString[l-2] == 0 { + bmpString = bmpString[:l-2] + } + + s := make([]uint16, 0, len(bmpString)/2) + for len(bmpString) > 0 { + s = append(s, uint16(bmpString[0])<<8+uint16(bmpString[1])) + bmpString = bmpString[2:] + } + + return string(utf16.Decode(s)), nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/bmp-string_test.go b/vendor/golang.org/x/crypto/pkcs12/bmp-string_test.go new file mode 100644 index 00000000..7fca55f4 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/bmp-string_test.go @@ -0,0 +1,63 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "encoding/hex" + "testing" +) + +var bmpStringTests = []struct { + in string + expectedHex string + shouldFail bool +}{ + {"", "0000", false}, + // Example from https://tools.ietf.org/html/rfc7292#appendix-B. + {"Beavis", "0042006500610076006900730000", false}, + // Some characters from the "Letterlike Symbols Unicode block". + {"\u2115 - Double-struck N", "21150020002d00200044006f00750062006c0065002d00730074007200750063006b0020004e0000", false}, + // any character outside the BMP should trigger an error. + {"\U0001f000 East wind (Mahjong)", "", true}, +} + +func TestBMPString(t *testing.T) { + for i, test := range bmpStringTests { + expected, err := hex.DecodeString(test.expectedHex) + if err != nil { + t.Fatalf("#%d: failed to decode expectation", i) + } + + out, err := bmpString(test.in) + if err == nil && test.shouldFail { + t.Errorf("#%d: expected to fail, but produced %x", i, out) + continue + } + + if err != nil && !test.shouldFail { + t.Errorf("#%d: failed unexpectedly: %s", i, err) + continue + } + + if !test.shouldFail { + if !bytes.Equal(out, expected) { + t.Errorf("#%d: expected %s, got %x", i, test.expectedHex, out) + continue + } + + roundTrip, err := decodeBMPString(out) + if err != nil { + t.Errorf("#%d: decoding output gave an error: %s", i, err) + continue + } + + if roundTrip != test.in { + t.Errorf("#%d: decoding output resulted in %q, but it should have been %q", i, roundTrip, test.in) + continue + } + } + } +} diff --git a/vendor/golang.org/x/crypto/pkcs12/crypto.go b/vendor/golang.org/x/crypto/pkcs12/crypto.go new file mode 100644 index 00000000..4bd4470e --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/crypto.go @@ -0,0 +1,131 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "crypto/cipher" + "crypto/des" + "crypto/x509/pkix" + "encoding/asn1" + "errors" + + "golang.org/x/crypto/pkcs12/internal/rc2" +) + +var ( + oidPBEWithSHAAnd3KeyTripleDESCBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 3}) + oidPBEWithSHAAnd40BitRC2CBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 6}) +) + +// pbeCipher is an abstraction of a PKCS#12 cipher. +type pbeCipher interface { + // create returns a cipher.Block given a key. + create(key []byte) (cipher.Block, error) + // deriveKey returns a key derived from the given password and salt. + deriveKey(salt, password []byte, iterations int) []byte + // deriveKey returns an IV derived from the given password and salt. + deriveIV(salt, password []byte, iterations int) []byte +} + +type shaWithTripleDESCBC struct{} + +func (shaWithTripleDESCBC) create(key []byte) (cipher.Block, error) { + return des.NewTripleDESCipher(key) +} + +func (shaWithTripleDESCBC) deriveKey(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 24) +} + +func (shaWithTripleDESCBC) deriveIV(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) +} + +type shaWith40BitRC2CBC struct{} + +func (shaWith40BitRC2CBC) create(key []byte) (cipher.Block, error) { + return rc2.New(key, len(key)*8) +} + +func (shaWith40BitRC2CBC) deriveKey(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 5) +} + +func (shaWith40BitRC2CBC) deriveIV(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) +} + +type pbeParams struct { + Salt []byte + Iterations int +} + +func pbDecrypterFor(algorithm pkix.AlgorithmIdentifier, password []byte) (cipher.BlockMode, int, error) { + var cipherType pbeCipher + + switch { + case algorithm.Algorithm.Equal(oidPBEWithSHAAnd3KeyTripleDESCBC): + cipherType = shaWithTripleDESCBC{} + case algorithm.Algorithm.Equal(oidPBEWithSHAAnd40BitRC2CBC): + cipherType = shaWith40BitRC2CBC{} + default: + return nil, 0, NotImplementedError("algorithm " + algorithm.Algorithm.String() + " is not supported") + } + + var params pbeParams + if err := unmarshal(algorithm.Parameters.FullBytes, ¶ms); err != nil { + return nil, 0, err + } + + key := cipherType.deriveKey(params.Salt, password, params.Iterations) + iv := cipherType.deriveIV(params.Salt, password, params.Iterations) + + block, err := cipherType.create(key) + if err != nil { + return nil, 0, err + } + + return cipher.NewCBCDecrypter(block, iv), block.BlockSize(), nil +} + +func pbDecrypt(info decryptable, password []byte) (decrypted []byte, err error) { + cbc, blockSize, err := pbDecrypterFor(info.Algorithm(), password) + if err != nil { + return nil, err + } + + encrypted := info.Data() + if len(encrypted) == 0 { + return nil, errors.New("pkcs12: empty encrypted data") + } + if len(encrypted)%blockSize != 0 { + return nil, errors.New("pkcs12: input is not a multiple of the block size") + } + decrypted = make([]byte, len(encrypted)) + cbc.CryptBlocks(decrypted, encrypted) + + psLen := int(decrypted[len(decrypted)-1]) + if psLen == 0 || psLen > blockSize { + return nil, ErrDecryption + } + + if len(decrypted) < psLen { + return nil, ErrDecryption + } + ps := decrypted[len(decrypted)-psLen:] + decrypted = decrypted[:len(decrypted)-psLen] + if bytes.Compare(ps, bytes.Repeat([]byte{byte(psLen)}, psLen)) != 0 { + return nil, ErrDecryption + } + + return +} + +// decryptable abstracts a object that contains ciphertext. +type decryptable interface { + Algorithm() pkix.AlgorithmIdentifier + Data() []byte +} diff --git a/vendor/golang.org/x/crypto/pkcs12/crypto_test.go b/vendor/golang.org/x/crypto/pkcs12/crypto_test.go new file mode 100644 index 00000000..eb4dae8f --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/crypto_test.go @@ -0,0 +1,125 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "crypto/x509/pkix" + "encoding/asn1" + "testing" +) + +var sha1WithTripleDES = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 3}) + +func TestPbDecrypterFor(t *testing.T) { + params, _ := asn1.Marshal(pbeParams{ + Salt: []byte{1, 2, 3, 4, 5, 6, 7, 8}, + Iterations: 2048, + }) + alg := pkix.AlgorithmIdentifier{ + Algorithm: asn1.ObjectIdentifier([]int{1, 2, 3}), + Parameters: asn1.RawValue{ + FullBytes: params, + }, + } + + pass, _ := bmpString("Sesame open") + + _, _, err := pbDecrypterFor(alg, pass) + if _, ok := err.(NotImplementedError); !ok { + t.Errorf("expected not implemented error, got: %T %s", err, err) + } + + alg.Algorithm = sha1WithTripleDES + cbc, blockSize, err := pbDecrypterFor(alg, pass) + if err != nil { + t.Errorf("unexpected error from pbDecrypterFor %v", err) + } + if blockSize != 8 { + t.Errorf("unexpected block size %d, wanted 8", blockSize) + } + + plaintext := []byte{1, 2, 3, 4, 5, 6, 7, 8} + expectedCiphertext := []byte{185, 73, 135, 249, 137, 1, 122, 247} + ciphertext := make([]byte, len(plaintext)) + cbc.CryptBlocks(ciphertext, plaintext) + + if bytes.Compare(ciphertext, expectedCiphertext) != 0 { + t.Errorf("bad ciphertext, got %x but wanted %x", ciphertext, expectedCiphertext) + } +} + +var pbDecryptTests = []struct { + in []byte + expected []byte + expectedError error +}{ + { + []byte("\x33\x73\xf3\x9f\xda\x49\xae\xfc\xa0\x9a\xdf\x5a\x58\xa0\xea\x46"), // 7 padding bytes + []byte("A secret!"), + nil, + }, + { + []byte("\x33\x73\xf3\x9f\xda\x49\xae\xfc\x96\x24\x2f\x71\x7e\x32\x3f\xe7"), // 8 padding bytes + []byte("A secret"), + nil, + }, + { + []byte("\x35\x0c\xc0\x8d\xab\xa9\x5d\x30\x7f\x9a\xec\x6a\xd8\x9b\x9c\xd9"), // 9 padding bytes, incorrect + nil, + ErrDecryption, + }, + { + []byte("\xb2\xf9\x6e\x06\x60\xae\x20\xcf\x08\xa0\x7b\xd9\x6b\x20\xef\x41"), // incorrect padding bytes: [ ... 0x04 0x02 ] + nil, + ErrDecryption, + }, +} + +func TestPbDecrypt(t *testing.T) { + for i, test := range pbDecryptTests { + decryptable := testDecryptable{ + data: test.in, + algorithm: pkix.AlgorithmIdentifier{ + Algorithm: sha1WithTripleDES, + Parameters: pbeParams{ + Salt: []byte("\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8"), + Iterations: 4096, + }.RawASN1(), + }, + } + password, _ := bmpString("sesame") + + plaintext, err := pbDecrypt(decryptable, password) + if err != test.expectedError { + t.Errorf("#%d: got error %q, but wanted %q", i, err, test.expectedError) + continue + } + + if !bytes.Equal(plaintext, test.expected) { + t.Errorf("#%d: got %x, but wanted %x", i, plaintext, test.expected) + } + } +} + +type testDecryptable struct { + data []byte + algorithm pkix.AlgorithmIdentifier +} + +func (d testDecryptable) Algorithm() pkix.AlgorithmIdentifier { return d.algorithm } +func (d testDecryptable) Data() []byte { return d.data } + +func (params pbeParams) RawASN1() (raw asn1.RawValue) { + asn1Bytes, err := asn1.Marshal(params) + if err != nil { + panic(err) + } + _, err = asn1.Unmarshal(asn1Bytes, &raw) + if err != nil { + panic(err) + } + return +} diff --git a/vendor/golang.org/x/crypto/pkcs12/errors.go b/vendor/golang.org/x/crypto/pkcs12/errors.go new file mode 100644 index 00000000..7377ce6f --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/errors.go @@ -0,0 +1,23 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import "errors" + +var ( + // ErrDecryption represents a failure to decrypt the input. + ErrDecryption = errors.New("pkcs12: decryption error, incorrect padding") + + // ErrIncorrectPassword is returned when an incorrect password is detected. + // Usually, P12/PFX data is signed to be able to verify the password. + ErrIncorrectPassword = errors.New("pkcs12: decryption password incorrect") +) + +// NotImplementedError indicates that the input is not currently supported. +type NotImplementedError string + +func (e NotImplementedError) Error() string { + return "pkcs12: " + string(e) +} diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go new file mode 100644 index 00000000..3347f338 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go @@ -0,0 +1,27 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rc2 + +import ( + "testing" +) + +func BenchmarkEncrypt(b *testing.B) { + r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) + b.ResetTimer() + var src [8]byte + for i := 0; i < b.N; i++ { + r.Encrypt(src[:], src[:]) + } +} + +func BenchmarkDecrypt(b *testing.B) { + r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) + b.ResetTimer() + var src [8]byte + for i := 0; i < b.N; i++ { + r.Decrypt(src[:], src[:]) + } +} diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go new file mode 100644 index 00000000..8c709025 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go @@ -0,0 +1,274 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package rc2 implements the RC2 cipher +/* +https://www.ietf.org/rfc/rfc2268.txt +http://people.csail.mit.edu/rivest/pubs/KRRR98.pdf + +This code is licensed under the MIT license. +*/ +package rc2 + +import ( + "crypto/cipher" + "encoding/binary" +) + +// The rc2 block size in bytes +const BlockSize = 8 + +type rc2Cipher struct { + k [64]uint16 +} + +// New returns a new rc2 cipher with the given key and effective key length t1 +func New(key []byte, t1 int) (cipher.Block, error) { + // TODO(dgryski): error checking for key length + return &rc2Cipher{ + k: expandKey(key, t1), + }, nil +} + +func (*rc2Cipher) BlockSize() int { return BlockSize } + +var piTable = [256]byte{ + 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, + 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, + 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32, + 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, + 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, + 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, + 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03, + 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, + 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, + 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec, + 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, + 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, + 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, + 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9, + 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, + 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad, +} + +func expandKey(key []byte, t1 int) [64]uint16 { + + l := make([]byte, 128) + copy(l, key) + + var t = len(key) + var t8 = (t1 + 7) / 8 + var tm = byte(255 % uint(1<<(8+uint(t1)-8*uint(t8)))) + + for i := len(key); i < 128; i++ { + l[i] = piTable[l[i-1]+l[uint8(i-t)]] + } + + l[128-t8] = piTable[l[128-t8]&tm] + + for i := 127 - t8; i >= 0; i-- { + l[i] = piTable[l[i+1]^l[i+t8]] + } + + var k [64]uint16 + + for i := range k { + k[i] = uint16(l[2*i]) + uint16(l[2*i+1])*256 + } + + return k +} + +func rotl16(x uint16, b uint) uint16 { + return (x >> (16 - b)) | (x << b) +} + +func (c *rc2Cipher) Encrypt(dst, src []byte) { + + r0 := binary.LittleEndian.Uint16(src[0:]) + r1 := binary.LittleEndian.Uint16(src[2:]) + r2 := binary.LittleEndian.Uint16(src[4:]) + r3 := binary.LittleEndian.Uint16(src[6:]) + + var j int + + for j <= 16 { + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = rotl16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = rotl16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = rotl16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = rotl16(r3, 5) + j++ + + } + + r0 = r0 + c.k[r3&63] + r1 = r1 + c.k[r0&63] + r2 = r2 + c.k[r1&63] + r3 = r3 + c.k[r2&63] + + for j <= 40 { + + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = rotl16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = rotl16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = rotl16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = rotl16(r3, 5) + j++ + + } + + r0 = r0 + c.k[r3&63] + r1 = r1 + c.k[r0&63] + r2 = r2 + c.k[r1&63] + r3 = r3 + c.k[r2&63] + + for j <= 60 { + + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = rotl16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = rotl16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = rotl16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = rotl16(r3, 5) + j++ + } + + binary.LittleEndian.PutUint16(dst[0:], r0) + binary.LittleEndian.PutUint16(dst[2:], r1) + binary.LittleEndian.PutUint16(dst[4:], r2) + binary.LittleEndian.PutUint16(dst[6:], r3) +} + +func (c *rc2Cipher) Decrypt(dst, src []byte) { + + r0 := binary.LittleEndian.Uint16(src[0:]) + r1 := binary.LittleEndian.Uint16(src[2:]) + r2 := binary.LittleEndian.Uint16(src[4:]) + r3 := binary.LittleEndian.Uint16(src[6:]) + + j := 63 + + for j >= 44 { + // unmix r3 + r3 = rotl16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = rotl16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = rotl16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = rotl16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + } + + r3 = r3 - c.k[r2&63] + r2 = r2 - c.k[r1&63] + r1 = r1 - c.k[r0&63] + r0 = r0 - c.k[r3&63] + + for j >= 20 { + // unmix r3 + r3 = rotl16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = rotl16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = rotl16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = rotl16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + + } + + r3 = r3 - c.k[r2&63] + r2 = r2 - c.k[r1&63] + r1 = r1 - c.k[r0&63] + r0 = r0 - c.k[r3&63] + + for j >= 0 { + + // unmix r3 + r3 = rotl16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = rotl16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = rotl16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = rotl16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + + } + + binary.LittleEndian.PutUint16(dst[0:], r0) + binary.LittleEndian.PutUint16(dst[2:], r1) + binary.LittleEndian.PutUint16(dst[4:], r2) + binary.LittleEndian.PutUint16(dst[6:], r3) +} diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2_test.go b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2_test.go new file mode 100644 index 00000000..8a49dfaf --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2_test.go @@ -0,0 +1,93 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rc2 + +import ( + "bytes" + "encoding/hex" + "testing" +) + +func TestEncryptDecrypt(t *testing.T) { + + // TODO(dgryski): add the rest of the test vectors from the RFC + var tests = []struct { + key string + plain string + cipher string + t1 int + }{ + { + "0000000000000000", + "0000000000000000", + "ebb773f993278eff", + 63, + }, + { + "ffffffffffffffff", + "ffffffffffffffff", + "278b27e42e2f0d49", + 64, + }, + { + "3000000000000000", + "1000000000000001", + "30649edf9be7d2c2", + 64, + }, + { + "88", + "0000000000000000", + "61a8a244adacccf0", + 64, + }, + { + "88bca90e90875a", + "0000000000000000", + "6ccf4308974c267f", + 64, + }, + { + "88bca90e90875a7f0f79c384627bafb2", + "0000000000000000", + "1a807d272bbe5db1", + 64, + }, + { + "88bca90e90875a7f0f79c384627bafb2", + "0000000000000000", + "2269552ab0f85ca6", + 128, + }, + { + "88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e", + "0000000000000000", + "5b78d3a43dfff1f1", + 129, + }, + } + + for _, tt := range tests { + k, _ := hex.DecodeString(tt.key) + p, _ := hex.DecodeString(tt.plain) + c, _ := hex.DecodeString(tt.cipher) + + b, _ := New(k, tt.t1) + + var dst [8]byte + + b.Encrypt(dst[:], p) + + if !bytes.Equal(dst[:], c) { + t.Errorf("encrypt failed: got % 2x wanted % 2x\n", dst, c) + } + + b.Decrypt(dst[:], c) + + if !bytes.Equal(dst[:], p) { + t.Errorf("decrypt failed: got % 2x wanted % 2x\n", dst, p) + } + } +} diff --git a/vendor/golang.org/x/crypto/pkcs12/mac.go b/vendor/golang.org/x/crypto/pkcs12/mac.go new file mode 100644 index 00000000..5f38aa7d --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/mac.go @@ -0,0 +1,45 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "crypto/hmac" + "crypto/sha1" + "crypto/x509/pkix" + "encoding/asn1" +) + +type macData struct { + Mac digestInfo + MacSalt []byte + Iterations int `asn1:"optional,default:1"` +} + +// from PKCS#7: +type digestInfo struct { + Algorithm pkix.AlgorithmIdentifier + Digest []byte +} + +var ( + oidSHA1 = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) +) + +func verifyMac(macData *macData, message, password []byte) error { + if !macData.Mac.Algorithm.Algorithm.Equal(oidSHA1) { + return NotImplementedError("unknown digest algorithm: " + macData.Mac.Algorithm.Algorithm.String()) + } + + key := pbkdf(sha1Sum, 20, 64, macData.MacSalt, password, macData.Iterations, 3, 20) + + mac := hmac.New(sha1.New, key) + mac.Write(message) + expectedMAC := mac.Sum(nil) + + if !hmac.Equal(macData.Mac.Digest, expectedMAC) { + return ErrIncorrectPassword + } + return nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/mac_test.go b/vendor/golang.org/x/crypto/pkcs12/mac_test.go new file mode 100644 index 00000000..1ed4ff21 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/mac_test.go @@ -0,0 +1,42 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "encoding/asn1" + "testing" +) + +func TestVerifyMac(t *testing.T) { + td := macData{ + Mac: digestInfo{ + Digest: []byte{0x18, 0x20, 0x3d, 0xff, 0x1e, 0x16, 0xf4, 0x92, 0xf2, 0xaf, 0xc8, 0x91, 0xa9, 0xba, 0xd6, 0xca, 0x9d, 0xee, 0x51, 0x93}, + }, + MacSalt: []byte{1, 2, 3, 4, 5, 6, 7, 8}, + Iterations: 2048, + } + + message := []byte{11, 12, 13, 14, 15} + password, _ := bmpString("") + + td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 2, 3}) + err := verifyMac(&td, message, password) + if _, ok := err.(NotImplementedError); !ok { + t.Errorf("err: %v", err) + } + + td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) + err = verifyMac(&td, message, password) + if err != ErrIncorrectPassword { + t.Errorf("Expected incorrect password, got err: %v", err) + } + + password, _ = bmpString("Sesame open") + err = verifyMac(&td, message, password) + if err != nil { + t.Errorf("err: %v", err) + } + +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pbkdf.go b/vendor/golang.org/x/crypto/pkcs12/pbkdf.go new file mode 100644 index 00000000..5c419d41 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pbkdf.go @@ -0,0 +1,170 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "crypto/sha1" + "math/big" +) + +var ( + one = big.NewInt(1) +) + +// sha1Sum returns the SHA-1 hash of in. +func sha1Sum(in []byte) []byte { + sum := sha1.Sum(in) + return sum[:] +} + +// fillWithRepeats returns v*ceiling(len(pattern) / v) bytes consisting of +// repeats of pattern. +func fillWithRepeats(pattern []byte, v int) []byte { + if len(pattern) == 0 { + return nil + } + outputLen := v * ((len(pattern) + v - 1) / v) + return bytes.Repeat(pattern, (outputLen+len(pattern)-1)/len(pattern))[:outputLen] +} + +func pbkdf(hash func([]byte) []byte, u, v int, salt, password []byte, r int, ID byte, size int) (key []byte) { + // implementation of https://tools.ietf.org/html/rfc7292#appendix-B.2 , RFC text verbatim in comments + + // Let H be a hash function built around a compression function f: + + // Z_2^u x Z_2^v -> Z_2^u + + // (that is, H has a chaining variable and output of length u bits, and + // the message input to the compression function of H is v bits). The + // values for u and v are as follows: + + // HASH FUNCTION VALUE u VALUE v + // MD2, MD5 128 512 + // SHA-1 160 512 + // SHA-224 224 512 + // SHA-256 256 512 + // SHA-384 384 1024 + // SHA-512 512 1024 + // SHA-512/224 224 1024 + // SHA-512/256 256 1024 + + // Furthermore, let r be the iteration count. + + // We assume here that u and v are both multiples of 8, as are the + // lengths of the password and salt strings (which we denote by p and s, + // respectively) and the number n of pseudorandom bits required. In + // addition, u and v are of course non-zero. + + // For information on security considerations for MD5 [19], see [25] and + // [1], and on those for MD2, see [18]. + + // The following procedure can be used to produce pseudorandom bits for + // a particular "purpose" that is identified by a byte called "ID". + // This standard specifies 3 different values for the ID byte: + + // 1. If ID=1, then the pseudorandom bits being produced are to be used + // as key material for performing encryption or decryption. + + // 2. If ID=2, then the pseudorandom bits being produced are to be used + // as an IV (Initial Value) for encryption or decryption. + + // 3. If ID=3, then the pseudorandom bits being produced are to be used + // as an integrity key for MACing. + + // 1. Construct a string, D (the "diversifier"), by concatenating v/8 + // copies of ID. + var D []byte + for i := 0; i < v; i++ { + D = append(D, ID) + } + + // 2. Concatenate copies of the salt together to create a string S of + // length v(ceiling(s/v)) bits (the final copy of the salt may be + // truncated to create S). Note that if the salt is the empty + // string, then so is S. + + S := fillWithRepeats(salt, v) + + // 3. Concatenate copies of the password together to create a string P + // of length v(ceiling(p/v)) bits (the final copy of the password + // may be truncated to create P). Note that if the password is the + // empty string, then so is P. + + P := fillWithRepeats(password, v) + + // 4. Set I=S||P to be the concatenation of S and P. + I := append(S, P...) + + // 5. Set c=ceiling(n/u). + c := (size + u - 1) / u + + // 6. For i=1, 2, ..., c, do the following: + A := make([]byte, c*20) + var IjBuf []byte + for i := 0; i < c; i++ { + // A. Set A2=H^r(D||I). (i.e., the r-th hash of D||1, + // H(H(H(... H(D||I)))) + Ai := hash(append(D, I...)) + for j := 1; j < r; j++ { + Ai = hash(Ai) + } + copy(A[i*20:], Ai[:]) + + if i < c-1 { // skip on last iteration + // B. Concatenate copies of Ai to create a string B of length v + // bits (the final copy of Ai may be truncated to create B). + var B []byte + for len(B) < v { + B = append(B, Ai[:]...) + } + B = B[:v] + + // C. Treating I as a concatenation I_0, I_1, ..., I_(k-1) of v-bit + // blocks, where k=ceiling(s/v)+ceiling(p/v), modify I by + // setting I_j=(I_j+B+1) mod 2^v for each j. + { + Bbi := new(big.Int).SetBytes(B) + Ij := new(big.Int) + + for j := 0; j < len(I)/v; j++ { + Ij.SetBytes(I[j*v : (j+1)*v]) + Ij.Add(Ij, Bbi) + Ij.Add(Ij, one) + Ijb := Ij.Bytes() + // We expect Ijb to be exactly v bytes, + // if it is longer or shorter we must + // adjust it accordingly. + if len(Ijb) > v { + Ijb = Ijb[len(Ijb)-v:] + } + if len(Ijb) < v { + if IjBuf == nil { + IjBuf = make([]byte, v) + } + bytesShort := v - len(Ijb) + for i := 0; i < bytesShort; i++ { + IjBuf[i] = 0 + } + copy(IjBuf[bytesShort:], Ijb) + Ijb = IjBuf + } + copy(I[j*v:(j+1)*v], Ijb) + } + } + } + } + // 7. Concatenate A_1, A_2, ..., A_c together to form a pseudorandom + // bit string, A. + + // 8. Use the first n bits of A as the output of this entire process. + return A[:size] + + // If the above process is being used to generate a DES key, the process + // should be used to create 64 random bits, and the key's parity bits + // should be set after the 64 bits have been produced. Similar concerns + // hold for 2-key and 3-key triple-DES keys, for CDMF keys, and for any + // similar keys with parity bits "built into them". +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pbkdf_test.go b/vendor/golang.org/x/crypto/pkcs12/pbkdf_test.go new file mode 100644 index 00000000..262037d7 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pbkdf_test.go @@ -0,0 +1,34 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "testing" +) + +func TestThatPBKDFWorksCorrectlyForLongKeys(t *testing.T) { + cipherInfo := shaWithTripleDESCBC{} + + salt := []byte("\xff\xff\xff\xff\xff\xff\xff\xff") + password, _ := bmpString("sesame") + key := cipherInfo.deriveKey(salt, password, 2048) + + if expected := []byte("\x7c\xd9\xfd\x3e\x2b\x3b\xe7\x69\x1a\x44\xe3\xbe\xf0\xf9\xea\x0f\xb9\xb8\x97\xd4\xe3\x25\xd9\xd1"); bytes.Compare(key, expected) != 0 { + t.Fatalf("expected key '%x', but found '%x'", expected, key) + } +} + +func TestThatPBKDFHandlesLeadingZeros(t *testing.T) { + // This test triggers a case where I_j (in step 6C) ends up with leading zero + // byte, meaning that len(Ijb) < v (leading zeros get stripped by big.Int). + // This was previously causing bug whereby certain inputs would break the + // derivation and produce the wrong output. + key := pbkdf(sha1Sum, 20, 64, []byte("\xf3\x7e\x05\xb5\x18\x32\x4b\x4b"), []byte("\x00\x00"), 2048, 1, 24) + expected := []byte("\x00\xf7\x59\xff\x47\xd1\x4d\xd0\x36\x65\xd5\x94\x3c\xb3\xc4\xa3\x9a\x25\x55\xc0\x2a\xed\x66\xe1") + if bytes.Compare(key, expected) != 0 { + t.Fatalf("expected key '%x', but found '%x'", expected, key) + } +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pkcs12.go b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go new file mode 100644 index 00000000..ad6341e6 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go @@ -0,0 +1,342 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package pkcs12 implements some of PKCS#12. +// +// This implementation is distilled from https://tools.ietf.org/html/rfc7292 +// and referenced documents. It is intended for decoding P12/PFX-stored +// certificates and keys for use with the crypto/tls package. +package pkcs12 + +import ( + "crypto/ecdsa" + "crypto/rsa" + "crypto/x509" + "crypto/x509/pkix" + "encoding/asn1" + "encoding/hex" + "encoding/pem" + "errors" +) + +var ( + oidDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 1}) + oidEncryptedDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 6}) + + oidFriendlyName = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 20}) + oidLocalKeyID = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 21}) + oidMicrosoftCSPName = asn1.ObjectIdentifier([]int{1, 3, 6, 1, 4, 1, 311, 17, 1}) +) + +type pfxPdu struct { + Version int + AuthSafe contentInfo + MacData macData `asn1:"optional"` +} + +type contentInfo struct { + ContentType asn1.ObjectIdentifier + Content asn1.RawValue `asn1:"tag:0,explicit,optional"` +} + +type encryptedData struct { + Version int + EncryptedContentInfo encryptedContentInfo +} + +type encryptedContentInfo struct { + ContentType asn1.ObjectIdentifier + ContentEncryptionAlgorithm pkix.AlgorithmIdentifier + EncryptedContent []byte `asn1:"tag:0,optional"` +} + +func (i encryptedContentInfo) Algorithm() pkix.AlgorithmIdentifier { + return i.ContentEncryptionAlgorithm +} + +func (i encryptedContentInfo) Data() []byte { return i.EncryptedContent } + +type safeBag struct { + Id asn1.ObjectIdentifier + Value asn1.RawValue `asn1:"tag:0,explicit"` + Attributes []pkcs12Attribute `asn1:"set,optional"` +} + +type pkcs12Attribute struct { + Id asn1.ObjectIdentifier + Value asn1.RawValue `asn1:"set"` +} + +type encryptedPrivateKeyInfo struct { + AlgorithmIdentifier pkix.AlgorithmIdentifier + EncryptedData []byte +} + +func (i encryptedPrivateKeyInfo) Algorithm() pkix.AlgorithmIdentifier { + return i.AlgorithmIdentifier +} + +func (i encryptedPrivateKeyInfo) Data() []byte { + return i.EncryptedData +} + +// PEM block types +const ( + certificateType = "CERTIFICATE" + privateKeyType = "PRIVATE KEY" +) + +// unmarshal calls asn1.Unmarshal, but also returns an error if there is any +// trailing data after unmarshaling. +func unmarshal(in []byte, out interface{}) error { + trailing, err := asn1.Unmarshal(in, out) + if err != nil { + return err + } + if len(trailing) != 0 { + return errors.New("pkcs12: trailing data found") + } + return nil +} + +// ConvertToPEM converts all "safe bags" contained in pfxData to PEM blocks. +func ToPEM(pfxData []byte, password string) ([]*pem.Block, error) { + encodedPassword, err := bmpString(password) + if err != nil { + return nil, ErrIncorrectPassword + } + + bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) + + blocks := make([]*pem.Block, 0, len(bags)) + for _, bag := range bags { + block, err := convertBag(&bag, encodedPassword) + if err != nil { + return nil, err + } + blocks = append(blocks, block) + } + + return blocks, nil +} + +func convertBag(bag *safeBag, password []byte) (*pem.Block, error) { + block := &pem.Block{ + Headers: make(map[string]string), + } + + for _, attribute := range bag.Attributes { + k, v, err := convertAttribute(&attribute) + if err != nil { + return nil, err + } + block.Headers[k] = v + } + + switch { + case bag.Id.Equal(oidCertBag): + block.Type = certificateType + certsData, err := decodeCertBag(bag.Value.Bytes) + if err != nil { + return nil, err + } + block.Bytes = certsData + case bag.Id.Equal(oidPKCS8ShroundedKeyBag): + block.Type = privateKeyType + + key, err := decodePkcs8ShroudedKeyBag(bag.Value.Bytes, password) + if err != nil { + return nil, err + } + + switch key := key.(type) { + case *rsa.PrivateKey: + block.Bytes = x509.MarshalPKCS1PrivateKey(key) + case *ecdsa.PrivateKey: + block.Bytes, err = x509.MarshalECPrivateKey(key) + if err != nil { + return nil, err + } + default: + return nil, errors.New("found unknown private key type in PKCS#8 wrapping") + } + default: + return nil, errors.New("don't know how to convert a safe bag of type " + bag.Id.String()) + } + return block, nil +} + +func convertAttribute(attribute *pkcs12Attribute) (key, value string, err error) { + isString := false + + switch { + case attribute.Id.Equal(oidFriendlyName): + key = "friendlyName" + isString = true + case attribute.Id.Equal(oidLocalKeyID): + key = "localKeyId" + case attribute.Id.Equal(oidMicrosoftCSPName): + // This key is chosen to match OpenSSL. + key = "Microsoft CSP Name" + isString = true + default: + return "", "", errors.New("pkcs12: unknown attribute with OID " + attribute.Id.String()) + } + + if isString { + if err := unmarshal(attribute.Value.Bytes, &attribute.Value); err != nil { + return "", "", err + } + if value, err = decodeBMPString(attribute.Value.Bytes); err != nil { + return "", "", err + } + } else { + var id []byte + if err := unmarshal(attribute.Value.Bytes, &id); err != nil { + return "", "", err + } + value = hex.EncodeToString(id) + } + + return key, value, nil +} + +// Decode extracts a certificate and private key from pfxData. This function +// assumes that there is only one certificate and only one private key in the +// pfxData. +func Decode(pfxData []byte, password string) (privateKey interface{}, certificate *x509.Certificate, err error) { + encodedPassword, err := bmpString(password) + if err != nil { + return nil, nil, err + } + + bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) + if err != nil { + return nil, nil, err + } + + if len(bags) != 2 { + err = errors.New("pkcs12: expected exactly two safe bags in the PFX PDU") + return + } + + for _, bag := range bags { + switch { + case bag.Id.Equal(oidCertBag): + if certificate != nil { + err = errors.New("pkcs12: expected exactly one certificate bag") + } + + certsData, err := decodeCertBag(bag.Value.Bytes) + if err != nil { + return nil, nil, err + } + certs, err := x509.ParseCertificates(certsData) + if err != nil { + return nil, nil, err + } + if len(certs) != 1 { + err = errors.New("pkcs12: expected exactly one certificate in the certBag") + return nil, nil, err + } + certificate = certs[0] + + case bag.Id.Equal(oidPKCS8ShroundedKeyBag): + if privateKey != nil { + err = errors.New("pkcs12: expected exactly one key bag") + } + + if privateKey, err = decodePkcs8ShroudedKeyBag(bag.Value.Bytes, encodedPassword); err != nil { + return nil, nil, err + } + } + } + + if certificate == nil { + return nil, nil, errors.New("pkcs12: certificate missing") + } + if privateKey == nil { + return nil, nil, errors.New("pkcs12: private key missing") + } + + return +} + +func getSafeContents(p12Data, password []byte) (bags []safeBag, updatedPassword []byte, err error) { + pfx := new(pfxPdu) + if err := unmarshal(p12Data, pfx); err != nil { + return nil, nil, errors.New("pkcs12: error reading P12 data: " + err.Error()) + } + + if pfx.Version != 3 { + return nil, nil, NotImplementedError("can only decode v3 PFX PDU's") + } + + if !pfx.AuthSafe.ContentType.Equal(oidDataContentType) { + return nil, nil, NotImplementedError("only password-protected PFX is implemented") + } + + // unmarshal the explicit bytes in the content for type 'data' + if err := unmarshal(pfx.AuthSafe.Content.Bytes, &pfx.AuthSafe.Content); err != nil { + return nil, nil, err + } + + if len(pfx.MacData.Mac.Algorithm.Algorithm) == 0 { + return nil, nil, errors.New("pkcs12: no MAC in data") + } + + if err := verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password); err != nil { + if err == ErrIncorrectPassword && len(password) == 2 && password[0] == 0 && password[1] == 0 { + // some implementations use an empty byte array + // for the empty string password try one more + // time with empty-empty password + password = nil + err = verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password) + } + if err != nil { + return nil, nil, err + } + } + + var authenticatedSafe []contentInfo + if err := unmarshal(pfx.AuthSafe.Content.Bytes, &authenticatedSafe); err != nil { + return nil, nil, err + } + + if len(authenticatedSafe) != 2 { + return nil, nil, NotImplementedError("expected exactly two items in the authenticated safe") + } + + for _, ci := range authenticatedSafe { + var data []byte + + switch { + case ci.ContentType.Equal(oidDataContentType): + if err := unmarshal(ci.Content.Bytes, &data); err != nil { + return nil, nil, err + } + case ci.ContentType.Equal(oidEncryptedDataContentType): + var encryptedData encryptedData + if err := unmarshal(ci.Content.Bytes, &encryptedData); err != nil { + return nil, nil, err + } + if encryptedData.Version != 0 { + return nil, nil, NotImplementedError("only version 0 of EncryptedData is supported") + } + if data, err = pbDecrypt(encryptedData.EncryptedContentInfo, password); err != nil { + return nil, nil, err + } + default: + return nil, nil, NotImplementedError("only data and encryptedData content types are supported in authenticated safe") + } + + var safeContents []safeBag + if err := unmarshal(data, &safeContents); err != nil { + return nil, nil, err + } + bags = append(bags, safeContents...) + } + + return bags, password, nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pkcs12_test.go b/vendor/golang.org/x/crypto/pkcs12/pkcs12_test.go new file mode 100644 index 00000000..14dd2a6c --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pkcs12_test.go @@ -0,0 +1,138 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "crypto/rsa" + "crypto/tls" + "encoding/base64" + "encoding/pem" + "testing" +) + +func TestPfx(t *testing.T) { + for commonName, base64P12 := range testdata { + p12, _ := base64.StdEncoding.DecodeString(base64P12) + + priv, cert, err := Decode(p12, "") + if err != nil { + t.Fatal(err) + } + + if err := priv.(*rsa.PrivateKey).Validate(); err != nil { + t.Errorf("error while validating private key: %v", err) + } + + if cert.Subject.CommonName != commonName { + t.Errorf("expected common name to be %q, but found %q", commonName, cert.Subject.CommonName) + } + } +} + +func TestPEM(t *testing.T) { + for commonName, base64P12 := range testdata { + p12, _ := base64.StdEncoding.DecodeString(base64P12) + + blocks, err := ToPEM(p12, "") + if err != nil { + t.Fatalf("error while converting to PEM: %s", err) + } + + var pemData []byte + for _, b := range blocks { + pemData = append(pemData, pem.EncodeToMemory(b)...) + } + + cert, err := tls.X509KeyPair(pemData, pemData) + if err != nil { + t.Errorf("err while converting to key pair: %v", err) + } + config := tls.Config{ + Certificates: []tls.Certificate{cert}, + } + config.BuildNameToCertificate() + + if _, exists := config.NameToCertificate[commonName]; !exists { + t.Errorf("did not find our cert in PEM?: %v", config.NameToCertificate) + } + } +} + +func ExampleToPEM() { + p12, _ := base64.StdEncoding.DecodeString(`MIIJzgIBAzCCCZQGCS ... CA+gwggPk==`) + + blocks, err := ToPEM(p12, "password") + if err != nil { + panic(err) + } + + var pemData []byte + for _, b := range blocks { + pemData = append(pemData, pem.EncodeToMemory(b)...) + } + + // then use PEM data for tls to construct tls certificate: + cert, err := tls.X509KeyPair(pemData, pemData) + if err != nil { + panic(err) + } + + config := &tls.Config{ + Certificates: []tls.Certificate{cert}, + } + + _ = config +} + +var testdata = map[string]string{ + // 'null' password test case + "Windows Azure Tools": `MIIKDAIBAzCCCcwGCSqGSIb3DQEHAaCCCb0Eggm5MIIJtTCCBe4GCSqGSIb3DQEHAaCCBd8EggXbMIIF1zCCBdMGCyqGSIb3DQEMCgECoIIE7jCCBOowHAYKKoZIhvcNAQwBAzAOBAhStUNnlTGV+gICB9AEggTIJ81JIossF6boFWpPtkiQRPtI6DW6e9QD4/WvHAVrM2bKdpMzSMsCML5NyuddANTKHBVq00Jc9keqGNAqJPKkjhSUebzQFyhe0E1oI9T4zY5UKr/I8JclOeccH4QQnsySzYUG2SnniXnQ+JrG3juetli7EKth9h6jLc6xbubPadY5HMB3wL/eG/kJymiXwU2KQ9Mgd4X6jbcV+NNCE/8jbZHvSTCPeYTJIjxfeX61Sj5kFKUCzERbsnpyevhY3X0eYtEDezZQarvGmXtMMdzf8HJHkWRdk9VLDLgjk8uiJif/+X4FohZ37ig0CpgC2+dP4DGugaZZ51hb8tN9GeCKIsrmWogMXDIVd0OACBp/EjJVmFB6y0kUCXxUE0TZt0XA1tjAGJcjDUpBvTntZjPsnH/4ZySy+s2d9OOhJ6pzRQBRm360TzkFdSwk9DLiLdGfv4pwMMu/vNGBlqjP/1sQtj+jprJiD1sDbCl4AdQZVoMBQHadF2uSD4/o17XG/Ci0r2h6Htc2yvZMAbEY4zMjjIn2a+vqIxD6onexaek1R3zbkS9j19D6EN9EWn8xgz80YRCyW65znZk8xaIhhvlU/mg7sTxeyuqroBZNcq6uDaQTehDpyH7bY2l4zWRpoj10a6JfH2q5shYz8Y6UZC/kOTfuGqbZDNZWro/9pYquvNNW0M847E5t9bsf9VkAAMHRGBbWoVoU9VpI0UnoXSfvpOo+aXa2DSq5sHHUTVY7A9eov3z5IqT+pligx11xcs+YhDWcU8di3BTJisohKvv5Y8WSkm/rloiZd4ig269k0jTRk1olP/vCksPli4wKG2wdsd5o42nX1yL7mFfXocOANZbB+5qMkiwdyoQSk+Vq+C8nAZx2bbKhUq2MbrORGMzOe0Hh0x2a0PeObycN1Bpyv7Mp3ZI9h5hBnONKCnqMhtyQHUj/nNvbJUnDVYNfoOEqDiEqqEwB7YqWzAKz8KW0OIqdlM8uiQ4JqZZlFllnWJUfaiDrdFM3lYSnFQBkzeVlts6GpDOOBjCYd7dcCNS6kq6pZC6p6HN60Twu0JnurZD6RT7rrPkIGE8vAenFt4iGe/yF52fahCSY8Ws4K0UTwN7bAS+4xRHVCWvE8sMRZsRCHizb5laYsVrPZJhE6+hux6OBb6w8kwPYXc+ud5v6UxawUWgt6uPwl8mlAtU9Z7Miw4Nn/wtBkiLL/ke1UI1gqJtcQXgHxx6mzsjh41+nAgTvdbsSEyU6vfOmxGj3Rwc1eOrIhJUqn5YjOWfzzsz/D5DzWKmwXIwdspt1p+u+kol1N3f2wT9fKPnd/RGCb4g/1hc3Aju4DQYgGY782l89CEEdalpQ/35bQczMFk6Fje12HykakWEXd/bGm9Unh82gH84USiRpeOfQvBDYoqEyrY3zkFZzBjhDqa+jEcAj41tcGx47oSfDq3iVYCdL7HSIjtnyEktVXd7mISZLoMt20JACFcMw+mrbjlug+eU7o2GR7T+LwtOp/p4LZqyLa7oQJDwde1BNZtm3TCK2P1mW94QDL0nDUps5KLtr1DaZXEkRbjSJub2ZE9WqDHyU3KA8G84Tq/rN1IoNu/if45jacyPje1Npj9IftUZSP22nV7HMwZtwQ4P4MYHRMBMGCSqGSIb3DQEJFTEGBAQBAAAAMFsGCSqGSIb3DQEJFDFOHkwAewBCADQAQQA0AEYARQBCADAALQBBADEAOABBAC0ANAA0AEIAQgAtAEIANQBGADIALQA0ADkAMQBFAEYAMQA1ADIAQgBBADEANgB9MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAG8AZgB0AHcAYQByAGUAIABLAGUAeQAgAFMAdABvAHIAYQBnAGUAIABQAHIAbwB2AGkAZABlAHIwggO/BgkqhkiG9w0BBwagggOwMIIDrAIBADCCA6UGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECEBk5ZAYpu0WAgIH0ICCA3hik4mQFGpw9Ha8TQPtk+j2jwWdxfF0+sTk6S8PTsEfIhB7wPltjiCK92Uv2tCBQnodBUmatIfkpnRDEySmgmdglmOCzj204lWAMRs94PoALGn3JVBXbO1vIDCbAPOZ7Z0Hd0/1t2hmk8v3//QJGUg+qr59/4y/MuVfIg4qfkPcC2QSvYWcK3oTf6SFi5rv9B1IOWFgN5D0+C+x/9Lb/myPYX+rbOHrwtJ4W1fWKoz9g7wwmGFA9IJ2DYGuH8ifVFbDFT1Vcgsvs8arSX7oBsJVW0qrP7XkuDRe3EqCmKW7rBEwYrFznhxZcRDEpMwbFoSvgSIZ4XhFY9VKYglT+JpNH5iDceYEBOQL4vBLpxNUk3l5jKaBNxVa14AIBxq18bVHJ+STInhLhad4u10v/Xbx7wIL3f9DX1yLAkPrpBYbNHS2/ew6H/ySDJnoIDxkw2zZ4qJ+qUJZ1S0lbZVG+VT0OP5uF6tyOSpbMlcGkdl3z254n6MlCrTifcwkzscysDsgKXaYQw06rzrPW6RDub+t+hXzGny799fS9jhQMLDmOggaQ7+LA4oEZsfT89HLMWxJYDqjo3gIfjciV2mV54R684qLDS+AO09U49e6yEbwGlq8lpmO/pbXCbpGbB1b3EomcQbxdWxW2WEkkEd/VBn81K4M3obmywwXJkw+tPXDXfBmzzaqqCR+onMQ5ME1nMkY8ybnfoCc1bDIupjVWsEL2Wvq752RgI6KqzVNr1ew1IdqV5AWN2fOfek+0vi3Jd9FHF3hx8JMwjJL9dZsETV5kHtYJtE7wJ23J68BnCt2eI0GEuwXcCf5EdSKN/xXCTlIokc4Qk/gzRdIZsvcEJ6B1lGovKG54X4IohikqTjiepjbsMWj38yxDmK3mtENZ9ci8FPfbbvIEcOCZIinuY3qFUlRSbx7VUerEoV1IP3clUwexVQo4lHFee2jd7ocWsdSqSapW7OWUupBtDzRkqVhE7tGria+i1W2d6YLlJ21QTjyapWJehAMO637OdbJCCzDs1cXbodRRE7bsP492ocJy8OX66rKdhYbg8srSFNKdb3pF3UDNbN9jhI/t8iagRhNBhlQtTr1me2E/c86Q18qcRXl4bcXTt6acgCeffK6Y26LcVlrgjlD33AEYRRUeyC+rpxbT0aMjdFderlndKRIyG23mSp0HaUwNzAfMAcGBSsOAwIaBBRlviCbIyRrhIysg2dc/KbLFTc2vQQUg4rfwHMM4IKYRD/fsd1x6dda+wQ=`, + // empty string password test case + "testing@example.com": `MIIJzgIBAzCCCZQGCSqGSIb3DQEHAaCCCYUEggmBMIIJfTCCA/cGCSqGSIb3DQEHBqCCA+gwggPk +AgEAMIID3QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIIszfRGqcmPcCAggAgIIDsOZ9Eg1L +s5Wx8JhYoV3HAL4aRnkAWvTYB5NISZOgSgIQTssmt/3A7134dibTmaT/93LikkL3cTKLnQzJ4wDf +YZ1bprpVJvUqz+HFT79m27bP9zYXFrvxWBJbxjYKTSjQMgz+h8LAEpXXGajCmxMJ1oCOtdXkhhzc +LdZN6SAYgtmtyFnCdMEDskSggGuLb3fw84QEJ/Sj6FAULXunW/CPaS7Ce0TMsKmNU/jfFWj3yXXw +ro0kwjKiVLpVFlnBlHo2OoVU7hmkm59YpGhLgS7nxLD3n7nBroQ0ID1+8R01NnV9XLGoGzxMm1te +6UyTCkr5mj+kEQ8EP1Ys7g/TC411uhVWySMt/rcpkx7Vz1r9kYEAzJpONAfr6cuEVkPKrxpq4Fh0 +2fzlKBky0i/hrfIEUmngh+ERHUb/Mtv/fkv1j5w9suESbhsMLLiCXAlsP1UWMX+3bNizi3WVMEts +FM2k9byn+p8IUD/A8ULlE4kEaWeoc+2idkCNQkLGuIdGUXUFVm58se0auUkVRoRJx8x4CkMesT8j +b1H831W66YRWoEwwDQp2kK1lA2vQXxdVHWlFevMNxJeromLzj3ayiaFrfByeUXhR2S+Hpm+c0yNR +4UVU9WED2kacsZcpRm9nlEa5sr28mri5JdBrNa/K02OOhvKCxr5ZGmbOVzUQKla2z4w+Ku9k8POm +dfDNU/fGx1b5hcFWtghXe3msWVsSJrQihnN6q1ughzNiYZlJUGcHdZDRtiWwCFI0bR8h/Dmg9uO9 +4rawQQrjIRT7B8yF3UbkZyAqs8Ppb1TsMeNPHh1rxEfGVQknh/48ouJYsmtbnzugTUt3mJCXXiL+ +XcPMV6bBVAUu4aaVKSmg9+yJtY4/VKv10iw88ktv29fViIdBe3t6l/oPuvQgbQ8dqf4T8w0l/uKZ +9lS1Na9jfT1vCoS7F5TRi+tmyj1vL5kr/amEIW6xKEP6oeAMvCMtbPAzVEj38zdJ1R22FfuIBxkh +f0Zl7pdVbmzRxl/SBx9iIBJSqAvcXItiT0FIj8HxQ+0iZKqMQMiBuNWJf5pYOLWGrIyntCWwHuaQ +wrx0sTGuEL9YXLEAsBDrsvzLkx/56E4INGZFrH8G7HBdW6iGqb22IMI4GHltYSyBRKbB0gadYTyv +abPEoqww8o7/85aPSzOTJ/53ozD438Q+d0u9SyDuOb60SzCD/zPuCEd78YgtXJwBYTuUNRT27FaM +3LGMX8Hz+6yPNRnmnA2XKPn7dx/IlaqAjIs8MIIFfgYJKoZIhvcNAQcBoIIFbwSCBWswggVnMIIF +YwYLKoZIhvcNAQwKAQKgggTuMIIE6jAcBgoqhkiG9w0BDAEDMA4ECJr0cClYqOlcAgIIAASCBMhe +OQSiP2s0/46ONXcNeVAkz2ksW3u/+qorhSiskGZ0b3dFa1hhgBU2Q7JVIkc4Hf7OXaT1eVQ8oqND +uhqsNz83/kqYo70+LS8Hocj49jFgWAKrf/yQkdyP1daHa2yzlEw4mkpqOfnIORQHvYCa8nEApspZ +wVu8y6WVuLHKU67mel7db2xwstQp7PRuSAYqGjTfAylElog8ASdaqqYbYIrCXucF8iF9oVgmb/Qo +xrXshJ9aSLO4MuXlTPELmWgj07AXKSb90FKNihE+y0bWb9LPVFY1Sly3AX9PfrtkSXIZwqW3phpv +MxGxQl/R6mr1z+hlTfY9Wdpb5vlKXPKA0L0Rt8d2pOesylFi6esJoS01QgP1kJILjbrV731kvDc0 +Jsd+Oxv4BMwA7ClG8w1EAOInc/GrV1MWFGw/HeEqj3CZ/l/0jv9bwkbVeVCiIhoL6P6lVx9pXq4t +KZ0uKg/tk5TVJmG2vLcMLvezD0Yk3G2ZOMrywtmskrwoF7oAUpO9e87szoH6fEvUZlkDkPVW1NV4 +cZk3DBSQiuA3VOOg8qbo/tx/EE3H59P0axZWno2GSB0wFPWd1aj+b//tJEJHaaNR6qPRj4IWj9ru +Qbc8eRAcVWleHg8uAehSvUXlFpyMQREyrnpvMGddpiTC8N4UMrrBRhV7+UbCOWhxPCbItnInBqgl +1JpSZIP7iUtsIMdu3fEC2cdbXMTRul+4rdzUR7F9OaezV3jjvcAbDvgbK1CpyC+MJ1Mxm/iTgk9V +iUArydhlR8OniN84GyGYoYCW9O/KUwb6ASmeFOu/msx8x6kAsSQHIkKqMKv0TUR3kZnkxUvdpBGP +KTl4YCTvNGX4dYALBqrAETRDhua2KVBD/kEttDHwBNVbN2xi81+Mc7ml461aADfk0c66R/m2sjHB +2tN9+wG12OIWFQjL6wF/UfJMYamxx2zOOExiId29Opt57uYiNVLOO4ourPewHPeH0u8Gz35aero7 +lkt7cZAe1Q0038JUuE/QGlnK4lESK9UkSIQAjSaAlTsrcfwtQxB2EjoOoLhwH5mvxUEmcNGNnXUc +9xj3M5BD3zBz3Ft7G3YMMDwB1+zC2l+0UG0MGVjMVaeoy32VVNvxgX7jk22OXG1iaOB+PY9kdk+O +X+52BGSf/rD6X0EnqY7XuRPkMGgjtpZeAYxRQnFtCZgDY4wYheuxqSSpdF49yNczSPLkgB3CeCfS ++9NTKN7aC6hBbmW/8yYh6OvSiCEwY0lFS/T+7iaVxr1loE4zI1y/FFp4Pe1qfLlLttVlkygga2UU +SCunTQ8UB/M5IXWKkhMOO11dP4niWwb39Y7pCWpau7mwbXOKfRPX96cgHnQJK5uG+BesDD1oYnX0 +6frN7FOnTSHKruRIwuI8KnOQ/I+owmyz71wiv5LMQt+yM47UrEjB/EZa5X8dpEwOZvkdqL7utcyo +l0XH5kWMXdW856LL/FYftAqJIDAmtX1TXF/rbP6mPyN/IlDC0gjP84Uzd/a2UyTIWr+wk49Ek3vQ +/uDamq6QrwAxVmNh5Tset5Vhpc1e1kb7mRMZIzxSP8JcTuYd45oFKi98I8YjvueHVZce1g7OudQP +SbFQoJvdT46iBg1TTatlltpOiH2mFaxWVS0xYjAjBgkqhkiG9w0BCRUxFgQUdA9eVqvETX4an/c8 +p8SsTugkit8wOwYJKoZIhvcNAQkUMS4eLABGAHIAaQBlAG4AZABsAHkAIABuAGEAbQBlACAAZgBv +AHIAIABjAGUAcgB0MDEwITAJBgUrDgMCGgUABBRFsNz3Zd1O1GI8GTuFwCWuDOjEEwQIuBEfIcAy +HQ8CAggA`, +} diff --git a/vendor/golang.org/x/crypto/pkcs12/safebags.go b/vendor/golang.org/x/crypto/pkcs12/safebags.go new file mode 100644 index 00000000..def1f7b9 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/safebags.go @@ -0,0 +1,57 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "crypto/x509" + "encoding/asn1" + "errors" +) + +var ( + // see https://tools.ietf.org/html/rfc7292#appendix-D + oidCertTypeX509Certificate = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 22, 1}) + oidPKCS8ShroundedKeyBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 2}) + oidCertBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 3}) +) + +type certBag struct { + Id asn1.ObjectIdentifier + Data []byte `asn1:"tag:0,explicit"` +} + +func decodePkcs8ShroudedKeyBag(asn1Data, password []byte) (privateKey interface{}, err error) { + pkinfo := new(encryptedPrivateKeyInfo) + if err = unmarshal(asn1Data, pkinfo); err != nil { + return nil, errors.New("pkcs12: error decoding PKCS#8 shrouded key bag: " + err.Error()) + } + + pkData, err := pbDecrypt(pkinfo, password) + if err != nil { + return nil, errors.New("pkcs12: error decrypting PKCS#8 shrouded key bag: " + err.Error()) + } + + ret := new(asn1.RawValue) + if err = unmarshal(pkData, ret); err != nil { + return nil, errors.New("pkcs12: error unmarshaling decrypted private key: " + err.Error()) + } + + if privateKey, err = x509.ParsePKCS8PrivateKey(pkData); err != nil { + return nil, errors.New("pkcs12: error parsing PKCS#8 private key: " + err.Error()) + } + + return privateKey, nil +} + +func decodeCertBag(asn1Data []byte) (x509Certificates []byte, err error) { + bag := new(certBag) + if err := unmarshal(asn1Data, bag); err != nil { + return nil, errors.New("pkcs12: error decoding cert bag: " + err.Error()) + } + if !bag.Id.Equal(oidCertTypeX509Certificate) { + return nil, NotImplementedError("only X509 certificates are supported") + } + return bag.Data, nil +} diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305.go b/vendor/golang.org/x/crypto/poly1305/poly1305.go new file mode 100644 index 00000000..4a5f826f --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305.go @@ -0,0 +1,32 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf. + +Poly1305 is a fast, one-time authentication function. It is infeasible for an +attacker to generate an authenticator for a message without the key. However, a +key must only be used for a single message. Authenticating two different +messages with the same key allows an attacker to forge authenticators for other +messages with the same key. + +Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was +used with a fixed key in order to generate one-time keys from an nonce. +However, in this package AES isn't used and the one-time key is specified +directly. +*/ +package poly1305 // import "golang.org/x/crypto/poly1305" + +import "crypto/subtle" + +// TagSize is the size, in bytes, of a poly1305 authenticator. +const TagSize = 16 + +// Verify returns true if mac is a valid authenticator for m with the given +// key. +func Verify(mac *[16]byte, m []byte, key *[32]byte) bool { + var tmp [16]byte + Sum(&tmp, m, key) + return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1 +} diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305_amd64.s b/vendor/golang.org/x/crypto/poly1305/poly1305_amd64.s new file mode 100644 index 00000000..431c4322 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305_amd64.s @@ -0,0 +1,133 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!gccgo,!appengine + +#include "textflag.h" + +#define POLY1305_ADD(msg, h0, h1, h2) \ + ADDQ 0(msg), h0; \ + ADCQ 8(msg), h1; \ + ADCQ $1, h2; \ + LEAQ 16(msg), msg + +#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \ + MOVQ r0, AX; \ + MULQ h0; \ + MOVQ AX, t0; \ + MOVQ DX, t1; \ + MOVQ r0, AX; \ + MULQ h1; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ r0, t2; \ + IMULQ h2, t2; \ + ADDQ DX, t2; \ + \ + MOVQ r1, AX; \ + MULQ h0; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ DX, h0; \ + MOVQ r1, t3; \ + IMULQ h2, t3; \ + MOVQ r1, AX; \ + MULQ h1; \ + ADDQ AX, t2; \ + ADCQ DX, t3; \ + ADDQ h0, t2; \ + ADCQ $0, t3; \ + \ + MOVQ t0, h0; \ + MOVQ t1, h1; \ + MOVQ t2, h2; \ + ANDQ $3, h2; \ + MOVQ t2, t0; \ + ANDQ $0xFFFFFFFFFFFFFFFC, t0; \ + ADDQ t0, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2; \ + SHRQ $2, t3, t2; \ + SHRQ $2, t3; \ + ADDQ t2, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2 + +DATA poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF +DATA poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC +GLOBL poly1305Mask<>(SB), RODATA, $16 + +// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key) +TEXT ·poly1305(SB), $0-32 + MOVQ out+0(FP), DI + MOVQ m+8(FP), SI + MOVQ mlen+16(FP), R15 + MOVQ key+24(FP), AX + + MOVQ SP, BP + ANDQ $0xFFFFFFFFFFFFFFF0, SP + SUBQ $32, SP + + MOVOU 0(AX), X0 + MOVOU 16(AX), X1 + MOVOU poly1305Mask<>(SB), X2 + PAND X2, X0 + MOVO X0, 0(SP) + MOVO X1, 16(SP) + + XORQ R8, R8 // h0 + XORQ R9, R9 // h1 + XORQ R10, R10 // h2 + MOVQ 0(SP), R11 // r0 + MOVQ 8(SP), R12 // r1 + + CMPQ R15, $16 + JB bytes_between_0_and_15 + +loop: + POLY1305_ADD(SI, R8, R9, R10) +multiply: + POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14) + SUBQ $16, R15 + CMPQ R15, $16 + JAE loop + +bytes_between_0_and_15: + TESTQ R15, R15 + JZ done + MOVQ $1, BX + XORQ CX, CX + XORQ R13, R13 + ADDQ R15, SI + +flush_buffer: + SHLQ $8, BX, CX + SHLQ $8, BX + MOVB -1(SI), R13 + XORQ R13, BX + DECQ SI + DECQ R15 + JNZ flush_buffer + + ADDQ BX, R8 + ADCQ CX, R9 + ADCQ $0, R10 + MOVQ $16, R15 + JMP multiply + +done: + MOVQ R8, AX + MOVQ R9, BX + SUBQ $0xFFFFFFFFFFFFFFFB, AX + SBBQ $0xFFFFFFFFFFFFFFFF, BX + SBBQ $3, R10 + CMOVQCS R8, AX + CMOVQCS R9, BX + ADDQ 16(SP), AX + ADCQ 24(SP), BX + + MOVQ BP, SP + MOVQ AX, 0(DI) + MOVQ BX, 8(DI) + RET diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305_arm.s b/vendor/golang.org/x/crypto/poly1305/poly1305_arm.s new file mode 100644 index 00000000..c1538674 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305_arm.s @@ -0,0 +1,379 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This code was translated into a form compatible with 5a from the public +// domain source by Andrew Moon: github.com/floodyberry/poly1305-opt/blob/master/app/extensions/poly1305. + +// +build arm,!gccgo,!appengine + +DATA poly1305_init_constants_armv6<>+0x00(SB)/4, $0x3ffffff +DATA poly1305_init_constants_armv6<>+0x04(SB)/4, $0x3ffff03 +DATA poly1305_init_constants_armv6<>+0x08(SB)/4, $0x3ffc0ff +DATA poly1305_init_constants_armv6<>+0x0c(SB)/4, $0x3f03fff +DATA poly1305_init_constants_armv6<>+0x10(SB)/4, $0x00fffff +GLOBL poly1305_init_constants_armv6<>(SB), 8, $20 + +// Warning: the linker may use R11 to synthesize certain instructions. Please +// take care and verify that no synthetic instructions use it. + +TEXT poly1305_init_ext_armv6<>(SB),4,$-4 + MOVM.DB.W [R4-R11], (R13) + MOVM.IA.W (R1), [R2-R5] + MOVW $poly1305_init_constants_armv6<>(SB), R7 + MOVW R2, R8 + MOVW R2>>26, R9 + MOVW R3>>20, g + MOVW R4>>14, R11 + MOVW R5>>8, R12 + ORR R3<<6, R9, R9 + ORR R4<<12, g, g + ORR R5<<18, R11, R11 + MOVM.IA (R7), [R2-R6] + AND R8, R2, R2 + AND R9, R3, R3 + AND g, R4, R4 + AND R11, R5, R5 + AND R12, R6, R6 + MOVM.IA.W [R2-R6], (R0) + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + MOVM.IA.W [R2-R6], (R0) + MOVM.IA.W (R1), [R2-R5] + MOVM.IA [R2-R6], (R0) + MOVM.IA.W (R13), [R4-R11] + RET + +#define MOVW_UNALIGNED(Rsrc, Rdst, Rtmp, offset) \ + MOVBU (offset+0)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+0)(Rdst); \ + MOVBU (offset+1)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+1)(Rdst); \ + MOVBU (offset+2)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+2)(Rdst); \ + MOVBU (offset+3)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+3)(Rdst) + +TEXT poly1305_blocks_armv6<>(SB),4,$-4 + MOVM.DB.W [R4, R5, R6, R7, R8, R9, g, R11, R14], (R13) + SUB $128, R13 + MOVW R0, 36(R13) + MOVW R1, 40(R13) + MOVW R2, 44(R13) + MOVW R1, R14 + MOVW R2, R12 + MOVW 56(R0), R8 + WORD $0xe1180008 // TST R8, R8 not working see issue 5921 + EOR R6, R6, R6 + MOVW.EQ $(1<<24), R6 + MOVW R6, 32(R13) + ADD $64, R13, g + MOVM.IA (R0), [R0-R9] + MOVM.IA [R0-R4], (g) + CMP $16, R12 + BLO poly1305_blocks_armv6_done +poly1305_blocks_armv6_mainloop: + WORD $0xe31e0003 // TST R14, #3 not working see issue 5921 + BEQ poly1305_blocks_armv6_mainloop_aligned + ADD $48, R13, g + MOVW_UNALIGNED(R14, g, R0, 0) + MOVW_UNALIGNED(R14, g, R0, 4) + MOVW_UNALIGNED(R14, g, R0, 8) + MOVW_UNALIGNED(R14, g, R0, 12) + MOVM.IA (g), [R0-R3] + ADD $16, R14 + B poly1305_blocks_armv6_mainloop_loaded +poly1305_blocks_armv6_mainloop_aligned: + MOVM.IA.W (R14), [R0-R3] +poly1305_blocks_armv6_mainloop_loaded: + MOVW R0>>26, g + MOVW R1>>20, R11 + MOVW R2>>14, R12 + MOVW R14, 40(R13) + MOVW R3>>8, R4 + ORR R1<<6, g, g + ORR R2<<12, R11, R11 + ORR R3<<18, R12, R12 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, g, g + MOVW 32(R13), R3 + BIC $0xfc000000, R11, R11 + BIC $0xfc000000, R12, R12 + ADD R0, R5, R5 + ADD g, R6, R6 + ORR R3, R4, R4 + ADD R11, R7, R7 + ADD $64, R13, R14 + ADD R12, R8, R8 + ADD R4, R9, R9 + MOVM.IA (R14), [R0-R4] + MULLU R4, R5, (R11, g) + MULLU R3, R5, (R14, R12) + MULALU R3, R6, (R11, g) + MULALU R2, R6, (R14, R12) + MULALU R2, R7, (R11, g) + MULALU R1, R7, (R14, R12) + ADD R4<<2, R4, R4 + ADD R3<<2, R3, R3 + MULALU R1, R8, (R11, g) + MULALU R0, R8, (R14, R12) + MULALU R0, R9, (R11, g) + MULALU R4, R9, (R14, R12) + MOVW g, 24(R13) + MOVW R11, 28(R13) + MOVW R12, 16(R13) + MOVW R14, 20(R13) + MULLU R2, R5, (R11, g) + MULLU R1, R5, (R14, R12) + MULALU R1, R6, (R11, g) + MULALU R0, R6, (R14, R12) + MULALU R0, R7, (R11, g) + MULALU R4, R7, (R14, R12) + ADD R2<<2, R2, R2 + ADD R1<<2, R1, R1 + MULALU R4, R8, (R11, g) + MULALU R3, R8, (R14, R12) + MULALU R3, R9, (R11, g) + MULALU R2, R9, (R14, R12) + MOVW g, 8(R13) + MOVW R11, 12(R13) + MOVW R12, 0(R13) + MOVW R14, w+4(SP) + MULLU R0, R5, (R11, g) + MULALU R4, R6, (R11, g) + MULALU R3, R7, (R11, g) + MULALU R2, R8, (R11, g) + MULALU R1, R9, (R11, g) + MOVM.IA (R13), [R0-R7] + MOVW g>>26, R12 + MOVW R4>>26, R14 + ORR R11<<6, R12, R12 + ORR R5<<6, R14, R14 + BIC $0xfc000000, g, g + BIC $0xfc000000, R4, R4 + ADD.S R12, R0, R0 + ADC $0, R1, R1 + ADD.S R14, R6, R6 + ADC $0, R7, R7 + MOVW R0>>26, R12 + MOVW R6>>26, R14 + ORR R1<<6, R12, R12 + ORR R7<<6, R14, R14 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, R6, R6 + ADD R14<<2, R14, R14 + ADD.S R12, R2, R2 + ADC $0, R3, R3 + ADD R14, g, g + MOVW R2>>26, R12 + MOVW g>>26, R14 + ORR R3<<6, R12, R12 + BIC $0xfc000000, g, R5 + BIC $0xfc000000, R2, R7 + ADD R12, R4, R4 + ADD R14, R0, R0 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R8 + ADD R12, R6, R9 + MOVW w+44(SP), R12 + MOVW w+40(SP), R14 + MOVW R0, R6 + CMP $32, R12 + SUB $16, R12, R12 + MOVW R12, 44(R13) + BHS poly1305_blocks_armv6_mainloop +poly1305_blocks_armv6_done: + MOVW 36(R13), R12 + MOVW R5, 20(R12) + MOVW R6, 24(R12) + MOVW R7, 28(R12) + MOVW R8, 32(R12) + MOVW R9, 36(R12) + ADD $128, R13, R13 + MOVM.IA.W (R13), [R4, R5, R6, R7, R8, R9, g, R11, R14] + RET + +#define MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst); \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst) + +#define MOVWP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp); \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) + +TEXT poly1305_finish_ext_armv6<>(SB),4,$-4 + MOVM.DB.W [R4, R5, R6, R7, R8, R9, g, R11, R14], (R13) + SUB $16, R13, R13 + MOVW R0, R5 + MOVW R1, R6 + MOVW R2, R7 + MOVW R3, R8 + AND.S R2, R2, R2 + BEQ poly1305_finish_ext_armv6_noremaining + EOR R0, R0 + MOVW R13, R9 + MOVW R0, 0(R13) + MOVW R0, 4(R13) + MOVW R0, 8(R13) + MOVW R0, 12(R13) + WORD $0xe3110003 // TST R1, #3 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_aligned + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8 + MOVWP_UNALIGNED(R1, R9, g) + MOVWP_UNALIGNED(R1, R9, g) +poly1305_finish_ext_armv6_skip8: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4 + MOVWP_UNALIGNED(R1, R9, g) +poly1305_finish_ext_armv6_skip4: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHUP_UNALIGNED(R1, R9, g) + B poly1305_finish_ext_armv6_skip2 +poly1305_finish_ext_armv6_aligned: + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8_aligned + MOVM.IA.W (R1), [g-R11] + MOVM.IA.W [g-R11], (R9) +poly1305_finish_ext_armv6_skip8_aligned: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4_aligned + MOVW.P 4(R1), g + MOVW.P g, 4(R9) +poly1305_finish_ext_armv6_skip4_aligned: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHU.P 2(R1), g + MOVH.P g, 2(R9) +poly1305_finish_ext_armv6_skip2: + WORD $0xe3120001 // TST $1, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip1 + MOVBU.P 1(R1), g + MOVBU.P g, 1(R9) +poly1305_finish_ext_armv6_skip1: + MOVW $1, R11 + MOVBU R11, 0(R9) + MOVW R11, 56(R5) + MOVW R5, R0 + MOVW R13, R1 + MOVW $16, R2 + BL poly1305_blocks_armv6<>(SB) +poly1305_finish_ext_armv6_noremaining: + MOVW 20(R5), R0 + MOVW 24(R5), R1 + MOVW 28(R5), R2 + MOVW 32(R5), R3 + MOVW 36(R5), R4 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R4 + ADD R12<<2, R12, R12 + ADD R12, R0, R0 + MOVW R0>>26, R12 + BIC $0xfc000000, R0, R0 + ADD R12, R1, R1 + MOVW R1>>26, R12 + BIC $0xfc000000, R1, R1 + ADD R12, R2, R2 + MOVW R2>>26, R12 + BIC $0xfc000000, R2, R2 + ADD R12, R3, R3 + MOVW R3>>26, R12 + BIC $0xfc000000, R3, R3 + ADD R12, R4, R4 + ADD $5, R0, R6 + MOVW R6>>26, R12 + BIC $0xfc000000, R6, R6 + ADD R12, R1, R7 + MOVW R7>>26, R12 + BIC $0xfc000000, R7, R7 + ADD R12, R2, g + MOVW g>>26, R12 + BIC $0xfc000000, g, g + ADD R12, R3, R11 + MOVW $-(1<<26), R12 + ADD R11>>26, R12, R12 + BIC $0xfc000000, R11, R11 + ADD R12, R4, R14 + MOVW R14>>31, R12 + SUB $1, R12 + AND R12, R6, R6 + AND R12, R7, R7 + AND R12, g, g + AND R12, R11, R11 + AND R12, R14, R14 + MVN R12, R12 + AND R12, R0, R0 + AND R12, R1, R1 + AND R12, R2, R2 + AND R12, R3, R3 + AND R12, R4, R4 + ORR R6, R0, R0 + ORR R7, R1, R1 + ORR g, R2, R2 + ORR R11, R3, R3 + ORR R14, R4, R4 + ORR R1<<26, R0, R0 + MOVW R1>>6, R1 + ORR R2<<20, R1, R1 + MOVW R2>>12, R2 + ORR R3<<14, R2, R2 + MOVW R3>>18, R3 + ORR R4<<8, R3, R3 + MOVW 40(R5), R6 + MOVW 44(R5), R7 + MOVW 48(R5), g + MOVW 52(R5), R11 + ADD.S R6, R0, R0 + ADC.S R7, R1, R1 + ADC.S g, R2, R2 + ADC.S R11, R3, R3 + MOVM.IA [R0-R3], (R8) + MOVW R5, R12 + EOR R0, R0, R0 + EOR R1, R1, R1 + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + EOR R7, R7, R7 + MOVM.IA.W [R0-R7], (R12) + MOVM.IA [R0-R7], (R12) + ADD $16, R13, R13 + MOVM.IA.W (R13), [R4, R5, R6, R7, R8, R9, g, R11, R14] + RET + +// func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]key) +TEXT ·poly1305_auth_armv6(SB),0,$280-16 + MOVW out+0(FP), R4 + MOVW m+4(FP), R5 + MOVW mlen+8(FP), R6 + MOVW key+12(FP), R7 + + MOVW R13, R8 + BIC $63, R13 + SUB $64, R13, R13 + MOVW R13, R0 + MOVW R7, R1 + BL poly1305_init_ext_armv6<>(SB) + BIC.S $15, R6, R2 + BEQ poly1305_auth_armv6_noblocks + MOVW R13, R0 + MOVW R5, R1 + ADD R2, R5, R5 + SUB R2, R6, R6 + BL poly1305_blocks_armv6<>(SB) +poly1305_auth_armv6_noblocks: + MOVW R13, R0 + MOVW R5, R1 + MOVW R6, R2 + MOVW R4, R3 + BL poly1305_finish_ext_armv6<>(SB) + MOVW R8, R13 + RET diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305_test.go b/vendor/golang.org/x/crypto/poly1305/poly1305_test.go new file mode 100644 index 00000000..91b8e2b4 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305_test.go @@ -0,0 +1,92 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package poly1305 + +import ( + "bytes" + "testing" + "unsafe" +) + +var testData = []struct { + in, k, correct []byte +}{ + { + []byte("Hello world!"), + []byte("this is 32-byte key for Poly1305"), + []byte{0xa6, 0xf7, 0x45, 0x00, 0x8f, 0x81, 0xc9, 0x16, 0xa2, 0x0d, 0xcc, 0x74, 0xee, 0xf2, 0xb2, 0xf0}, + }, + { + make([]byte, 32), + []byte("this is 32-byte key for Poly1305"), + []byte{0x49, 0xec, 0x78, 0x09, 0x0e, 0x48, 0x1e, 0xc6, 0xc2, 0x6b, 0x33, 0xb9, 0x1c, 0xcc, 0x03, 0x07}, + }, + { + make([]byte, 2007), + []byte("this is 32-byte key for Poly1305"), + []byte{0xda, 0x84, 0xbc, 0xab, 0x02, 0x67, 0x6c, 0x38, 0xcd, 0xb0, 0x15, 0x60, 0x42, 0x74, 0xc2, 0xaa}, + }, + { + make([]byte, 2007), + make([]byte, 32), + make([]byte, 16), + }, + { + // This test triggers an edge-case. See https://go-review.googlesource.com/#/c/30101/. + []byte{0x81, 0xd8, 0xb2, 0xe4, 0x6a, 0x25, 0x21, 0x3b, 0x58, 0xfe, 0xe4, 0x21, 0x3a, 0x2a, 0x28, 0xe9, 0x21, 0xc1, 0x2a, 0x96, 0x32, 0x51, 0x6d, 0x3b, 0x73, 0x27, 0x27, 0x27, 0xbe, 0xcf, 0x21, 0x29}, + []byte{0x3b, 0x3a, 0x29, 0xe9, 0x3b, 0x21, 0x3a, 0x5c, 0x5c, 0x3b, 0x3b, 0x05, 0x3a, 0x3a, 0x8c, 0x0d}, + []byte{0x6d, 0xc1, 0x8b, 0x8c, 0x34, 0x4c, 0xd7, 0x99, 0x27, 0x11, 0x8b, 0xbe, 0x84, 0xb7, 0xf3, 0x14}, + }, +} + +func testSum(t *testing.T, unaligned bool) { + var out [16]byte + var key [32]byte + + for i, v := range testData { + in := v.in + if unaligned { + in = unalignBytes(in) + } + copy(key[:], v.k) + Sum(&out, in, &key) + if !bytes.Equal(out[:], v.correct) { + t.Errorf("%d: expected %x, got %x", i, v.correct, out[:]) + } + } +} + +func TestSum(t *testing.T) { testSum(t, false) } +func TestSumUnaligned(t *testing.T) { testSum(t, true) } + +func benchmark(b *testing.B, size int, unaligned bool) { + var out [16]byte + var key [32]byte + in := make([]byte, size) + if unaligned { + in = unalignBytes(in) + } + b.SetBytes(int64(len(in))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + Sum(&out, in, &key) + } +} + +func Benchmark64(b *testing.B) { benchmark(b, 64, false) } +func Benchmark1K(b *testing.B) { benchmark(b, 1024, false) } +func Benchmark64Unaligned(b *testing.B) { benchmark(b, 64, true) } +func Benchmark1KUnaligned(b *testing.B) { benchmark(b, 1024, true) } + +func unalignBytes(in []byte) []byte { + out := make([]byte, len(in)+1) + if uintptr(unsafe.Pointer(&out[0]))&(unsafe.Alignof(uint32(0))-1) == 0 { + out = out[1:] + } else { + out = out[:len(in)] + } + copy(out, in) + return out +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.go b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go new file mode 100644 index 00000000..6775c703 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go @@ -0,0 +1,24 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!gccgo,!appengine + +package poly1305 + +// This function is implemented in poly1305_amd64.s + +//go:noescape + +func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte) + +// Sum generates an authenticator for m using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[16]byte, m []byte, key *[32]byte) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305(out, mPtr, uint64(len(m)), key) +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_arm.go b/vendor/golang.org/x/crypto/poly1305/sum_arm.go new file mode 100644 index 00000000..50b979c2 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_arm.go @@ -0,0 +1,24 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build arm,!gccgo,!appengine + +package poly1305 + +// This function is implemented in poly1305_arm.s + +//go:noescape + +func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte) + +// Sum generates an authenticator for m using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[16]byte, m []byte, key *[32]byte) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305_auth_armv6(out, mPtr, uint32(len(m)), key) +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ref.go b/vendor/golang.org/x/crypto/poly1305/sum_ref.go new file mode 100644 index 00000000..0b24fc78 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_ref.go @@ -0,0 +1,1531 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64,!arm gccgo appengine + +package poly1305 + +// Based on original, public domain implementation from NaCl by D. J. +// Bernstein. + +import "math" + +const ( + alpham80 = 0.00000000558793544769287109375 + alpham48 = 24.0 + alpham16 = 103079215104.0 + alpha0 = 6755399441055744.0 + alpha18 = 1770887431076116955136.0 + alpha32 = 29014219670751100192948224.0 + alpha50 = 7605903601369376408980219232256.0 + alpha64 = 124615124604835863084731911901282304.0 + alpha82 = 32667107224410092492483962313449748299776.0 + alpha96 = 535217884764734955396857238543560676143529984.0 + alpha112 = 35076039295941670036888435985190792471742381031424.0 + alpha130 = 9194973245195333150150082162901855101712434733101613056.0 + scale = 0.0000000000000000000000000000000000000036734198463196484624023016788195177431833298649127735047148490821200539357960224151611328125 + offset0 = 6755408030990331.0 + offset1 = 29014256564239239022116864.0 + offset2 = 124615283061160854719918951570079744.0 + offset3 = 535219245894202480694386063513315216128475136.0 +) + +// Sum generates an authenticator for m using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[16]byte, m []byte, key *[32]byte) { + r := key + s := key[16:] + var ( + y7 float64 + y6 float64 + y1 float64 + y0 float64 + y5 float64 + y4 float64 + x7 float64 + x6 float64 + x1 float64 + x0 float64 + y3 float64 + y2 float64 + x5 float64 + r3lowx0 float64 + x4 float64 + r0lowx6 float64 + x3 float64 + r3highx0 float64 + x2 float64 + r0highx6 float64 + r0lowx0 float64 + sr1lowx6 float64 + r0highx0 float64 + sr1highx6 float64 + sr3low float64 + r1lowx0 float64 + sr2lowx6 float64 + r1highx0 float64 + sr2highx6 float64 + r2lowx0 float64 + sr3lowx6 float64 + r2highx0 float64 + sr3highx6 float64 + r1highx4 float64 + r1lowx4 float64 + r0highx4 float64 + r0lowx4 float64 + sr3highx4 float64 + sr3lowx4 float64 + sr2highx4 float64 + sr2lowx4 float64 + r0lowx2 float64 + r0highx2 float64 + r1lowx2 float64 + r1highx2 float64 + r2lowx2 float64 + r2highx2 float64 + sr3lowx2 float64 + sr3highx2 float64 + z0 float64 + z1 float64 + z2 float64 + z3 float64 + m0 int64 + m1 int64 + m2 int64 + m3 int64 + m00 uint32 + m01 uint32 + m02 uint32 + m03 uint32 + m10 uint32 + m11 uint32 + m12 uint32 + m13 uint32 + m20 uint32 + m21 uint32 + m22 uint32 + m23 uint32 + m30 uint32 + m31 uint32 + m32 uint32 + m33 uint64 + lbelow2 int32 + lbelow3 int32 + lbelow4 int32 + lbelow5 int32 + lbelow6 int32 + lbelow7 int32 + lbelow8 int32 + lbelow9 int32 + lbelow10 int32 + lbelow11 int32 + lbelow12 int32 + lbelow13 int32 + lbelow14 int32 + lbelow15 int32 + s00 uint32 + s01 uint32 + s02 uint32 + s03 uint32 + s10 uint32 + s11 uint32 + s12 uint32 + s13 uint32 + s20 uint32 + s21 uint32 + s22 uint32 + s23 uint32 + s30 uint32 + s31 uint32 + s32 uint32 + s33 uint32 + bits32 uint64 + f uint64 + f0 uint64 + f1 uint64 + f2 uint64 + f3 uint64 + f4 uint64 + g uint64 + g0 uint64 + g1 uint64 + g2 uint64 + g3 uint64 + g4 uint64 + ) + + var p int32 + + l := int32(len(m)) + + r00 := uint32(r[0]) + + r01 := uint32(r[1]) + + r02 := uint32(r[2]) + r0 := int64(2151) + + r03 := uint32(r[3]) + r03 &= 15 + r0 <<= 51 + + r10 := uint32(r[4]) + r10 &= 252 + r01 <<= 8 + r0 += int64(r00) + + r11 := uint32(r[5]) + r02 <<= 16 + r0 += int64(r01) + + r12 := uint32(r[6]) + r03 <<= 24 + r0 += int64(r02) + + r13 := uint32(r[7]) + r13 &= 15 + r1 := int64(2215) + r0 += int64(r03) + + d0 := r0 + r1 <<= 51 + r2 := int64(2279) + + r20 := uint32(r[8]) + r20 &= 252 + r11 <<= 8 + r1 += int64(r10) + + r21 := uint32(r[9]) + r12 <<= 16 + r1 += int64(r11) + + r22 := uint32(r[10]) + r13 <<= 24 + r1 += int64(r12) + + r23 := uint32(r[11]) + r23 &= 15 + r2 <<= 51 + r1 += int64(r13) + + d1 := r1 + r21 <<= 8 + r2 += int64(r20) + + r30 := uint32(r[12]) + r30 &= 252 + r22 <<= 16 + r2 += int64(r21) + + r31 := uint32(r[13]) + r23 <<= 24 + r2 += int64(r22) + + r32 := uint32(r[14]) + r2 += int64(r23) + r3 := int64(2343) + + d2 := r2 + r3 <<= 51 + + r33 := uint32(r[15]) + r33 &= 15 + r31 <<= 8 + r3 += int64(r30) + + r32 <<= 16 + r3 += int64(r31) + + r33 <<= 24 + r3 += int64(r32) + + r3 += int64(r33) + h0 := alpha32 - alpha32 + + d3 := r3 + h1 := alpha32 - alpha32 + + h2 := alpha32 - alpha32 + + h3 := alpha32 - alpha32 + + h4 := alpha32 - alpha32 + + r0low := math.Float64frombits(uint64(d0)) + h5 := alpha32 - alpha32 + + r1low := math.Float64frombits(uint64(d1)) + h6 := alpha32 - alpha32 + + r2low := math.Float64frombits(uint64(d2)) + h7 := alpha32 - alpha32 + + r0low -= alpha0 + + r1low -= alpha32 + + r2low -= alpha64 + + r0high := r0low + alpha18 + + r3low := math.Float64frombits(uint64(d3)) + + r1high := r1low + alpha50 + sr1low := scale * r1low + + r2high := r2low + alpha82 + sr2low := scale * r2low + + r0high -= alpha18 + r0high_stack := r0high + + r3low -= alpha96 + + r1high -= alpha50 + r1high_stack := r1high + + sr1high := sr1low + alpham80 + + r0low -= r0high + + r2high -= alpha82 + sr3low = scale * r3low + + sr2high := sr2low + alpham48 + + r1low -= r1high + r1low_stack := r1low + + sr1high -= alpham80 + sr1high_stack := sr1high + + r2low -= r2high + r2low_stack := r2low + + sr2high -= alpham48 + sr2high_stack := sr2high + + r3high := r3low + alpha112 + r0low_stack := r0low + + sr1low -= sr1high + sr1low_stack := sr1low + + sr3high := sr3low + alpham16 + r2high_stack := r2high + + sr2low -= sr2high + sr2low_stack := sr2low + + r3high -= alpha112 + r3high_stack := r3high + + sr3high -= alpham16 + sr3high_stack := sr3high + + r3low -= r3high + r3low_stack := r3low + + sr3low -= sr3high + sr3low_stack := sr3low + + if l < 16 { + goto addatmost15bytes + } + + m00 = uint32(m[p+0]) + m0 = 2151 + + m0 <<= 51 + m1 = 2215 + m01 = uint32(m[p+1]) + + m1 <<= 51 + m2 = 2279 + m02 = uint32(m[p+2]) + + m2 <<= 51 + m3 = 2343 + m03 = uint32(m[p+3]) + + m10 = uint32(m[p+4]) + m01 <<= 8 + m0 += int64(m00) + + m11 = uint32(m[p+5]) + m02 <<= 16 + m0 += int64(m01) + + m12 = uint32(m[p+6]) + m03 <<= 24 + m0 += int64(m02) + + m13 = uint32(m[p+7]) + m3 <<= 51 + m0 += int64(m03) + + m20 = uint32(m[p+8]) + m11 <<= 8 + m1 += int64(m10) + + m21 = uint32(m[p+9]) + m12 <<= 16 + m1 += int64(m11) + + m22 = uint32(m[p+10]) + m13 <<= 24 + m1 += int64(m12) + + m23 = uint32(m[p+11]) + m1 += int64(m13) + + m30 = uint32(m[p+12]) + m21 <<= 8 + m2 += int64(m20) + + m31 = uint32(m[p+13]) + m22 <<= 16 + m2 += int64(m21) + + m32 = uint32(m[p+14]) + m23 <<= 24 + m2 += int64(m22) + + m33 = uint64(m[p+15]) + m2 += int64(m23) + + d0 = m0 + m31 <<= 8 + m3 += int64(m30) + + d1 = m1 + m32 <<= 16 + m3 += int64(m31) + + d2 = m2 + m33 += 256 + + m33 <<= 24 + m3 += int64(m32) + + m3 += int64(m33) + d3 = m3 + + p += 16 + l -= 16 + + z0 = math.Float64frombits(uint64(d0)) + + z1 = math.Float64frombits(uint64(d1)) + + z2 = math.Float64frombits(uint64(d2)) + + z3 = math.Float64frombits(uint64(d3)) + + z0 -= alpha0 + + z1 -= alpha32 + + z2 -= alpha64 + + z3 -= alpha96 + + h0 += z0 + + h1 += z1 + + h3 += z2 + + h5 += z3 + + if l < 16 { + goto multiplyaddatmost15bytes + } + +multiplyaddatleast16bytes: + + m2 = 2279 + m20 = uint32(m[p+8]) + y7 = h7 + alpha130 + + m2 <<= 51 + m3 = 2343 + m21 = uint32(m[p+9]) + y6 = h6 + alpha130 + + m3 <<= 51 + m0 = 2151 + m22 = uint32(m[p+10]) + y1 = h1 + alpha32 + + m0 <<= 51 + m1 = 2215 + m23 = uint32(m[p+11]) + y0 = h0 + alpha32 + + m1 <<= 51 + m30 = uint32(m[p+12]) + y7 -= alpha130 + + m21 <<= 8 + m2 += int64(m20) + m31 = uint32(m[p+13]) + y6 -= alpha130 + + m22 <<= 16 + m2 += int64(m21) + m32 = uint32(m[p+14]) + y1 -= alpha32 + + m23 <<= 24 + m2 += int64(m22) + m33 = uint64(m[p+15]) + y0 -= alpha32 + + m2 += int64(m23) + m00 = uint32(m[p+0]) + y5 = h5 + alpha96 + + m31 <<= 8 + m3 += int64(m30) + m01 = uint32(m[p+1]) + y4 = h4 + alpha96 + + m32 <<= 16 + m02 = uint32(m[p+2]) + x7 = h7 - y7 + y7 *= scale + + m33 += 256 + m03 = uint32(m[p+3]) + x6 = h6 - y6 + y6 *= scale + + m33 <<= 24 + m3 += int64(m31) + m10 = uint32(m[p+4]) + x1 = h1 - y1 + + m01 <<= 8 + m3 += int64(m32) + m11 = uint32(m[p+5]) + x0 = h0 - y0 + + m3 += int64(m33) + m0 += int64(m00) + m12 = uint32(m[p+6]) + y5 -= alpha96 + + m02 <<= 16 + m0 += int64(m01) + m13 = uint32(m[p+7]) + y4 -= alpha96 + + m03 <<= 24 + m0 += int64(m02) + d2 = m2 + x1 += y7 + + m0 += int64(m03) + d3 = m3 + x0 += y6 + + m11 <<= 8 + m1 += int64(m10) + d0 = m0 + x7 += y5 + + m12 <<= 16 + m1 += int64(m11) + x6 += y4 + + m13 <<= 24 + m1 += int64(m12) + y3 = h3 + alpha64 + + m1 += int64(m13) + d1 = m1 + y2 = h2 + alpha64 + + x0 += x1 + + x6 += x7 + + y3 -= alpha64 + r3low = r3low_stack + + y2 -= alpha64 + r0low = r0low_stack + + x5 = h5 - y5 + r3lowx0 = r3low * x0 + r3high = r3high_stack + + x4 = h4 - y4 + r0lowx6 = r0low * x6 + r0high = r0high_stack + + x3 = h3 - y3 + r3highx0 = r3high * x0 + sr1low = sr1low_stack + + x2 = h2 - y2 + r0highx6 = r0high * x6 + sr1high = sr1high_stack + + x5 += y3 + r0lowx0 = r0low * x0 + r1low = r1low_stack + + h6 = r3lowx0 + r0lowx6 + sr1lowx6 = sr1low * x6 + r1high = r1high_stack + + x4 += y2 + r0highx0 = r0high * x0 + sr2low = sr2low_stack + + h7 = r3highx0 + r0highx6 + sr1highx6 = sr1high * x6 + sr2high = sr2high_stack + + x3 += y1 + r1lowx0 = r1low * x0 + r2low = r2low_stack + + h0 = r0lowx0 + sr1lowx6 + sr2lowx6 = sr2low * x6 + r2high = r2high_stack + + x2 += y0 + r1highx0 = r1high * x0 + sr3low = sr3low_stack + + h1 = r0highx0 + sr1highx6 + sr2highx6 = sr2high * x6 + sr3high = sr3high_stack + + x4 += x5 + r2lowx0 = r2low * x0 + z2 = math.Float64frombits(uint64(d2)) + + h2 = r1lowx0 + sr2lowx6 + sr3lowx6 = sr3low * x6 + + x2 += x3 + r2highx0 = r2high * x0 + z3 = math.Float64frombits(uint64(d3)) + + h3 = r1highx0 + sr2highx6 + sr3highx6 = sr3high * x6 + + r1highx4 = r1high * x4 + z2 -= alpha64 + + h4 = r2lowx0 + sr3lowx6 + r1lowx4 = r1low * x4 + + r0highx4 = r0high * x4 + z3 -= alpha96 + + h5 = r2highx0 + sr3highx6 + r0lowx4 = r0low * x4 + + h7 += r1highx4 + sr3highx4 = sr3high * x4 + + h6 += r1lowx4 + sr3lowx4 = sr3low * x4 + + h5 += r0highx4 + sr2highx4 = sr2high * x4 + + h4 += r0lowx4 + sr2lowx4 = sr2low * x4 + + h3 += sr3highx4 + r0lowx2 = r0low * x2 + + h2 += sr3lowx4 + r0highx2 = r0high * x2 + + h1 += sr2highx4 + r1lowx2 = r1low * x2 + + h0 += sr2lowx4 + r1highx2 = r1high * x2 + + h2 += r0lowx2 + r2lowx2 = r2low * x2 + + h3 += r0highx2 + r2highx2 = r2high * x2 + + h4 += r1lowx2 + sr3lowx2 = sr3low * x2 + + h5 += r1highx2 + sr3highx2 = sr3high * x2 + + p += 16 + l -= 16 + h6 += r2lowx2 + + h7 += r2highx2 + + z1 = math.Float64frombits(uint64(d1)) + h0 += sr3lowx2 + + z0 = math.Float64frombits(uint64(d0)) + h1 += sr3highx2 + + z1 -= alpha32 + + z0 -= alpha0 + + h5 += z3 + + h3 += z2 + + h1 += z1 + + h0 += z0 + + if l >= 16 { + goto multiplyaddatleast16bytes + } + +multiplyaddatmost15bytes: + + y7 = h7 + alpha130 + + y6 = h6 + alpha130 + + y1 = h1 + alpha32 + + y0 = h0 + alpha32 + + y7 -= alpha130 + + y6 -= alpha130 + + y1 -= alpha32 + + y0 -= alpha32 + + y5 = h5 + alpha96 + + y4 = h4 + alpha96 + + x7 = h7 - y7 + y7 *= scale + + x6 = h6 - y6 + y6 *= scale + + x1 = h1 - y1 + + x0 = h0 - y0 + + y5 -= alpha96 + + y4 -= alpha96 + + x1 += y7 + + x0 += y6 + + x7 += y5 + + x6 += y4 + + y3 = h3 + alpha64 + + y2 = h2 + alpha64 + + x0 += x1 + + x6 += x7 + + y3 -= alpha64 + r3low = r3low_stack + + y2 -= alpha64 + r0low = r0low_stack + + x5 = h5 - y5 + r3lowx0 = r3low * x0 + r3high = r3high_stack + + x4 = h4 - y4 + r0lowx6 = r0low * x6 + r0high = r0high_stack + + x3 = h3 - y3 + r3highx0 = r3high * x0 + sr1low = sr1low_stack + + x2 = h2 - y2 + r0highx6 = r0high * x6 + sr1high = sr1high_stack + + x5 += y3 + r0lowx0 = r0low * x0 + r1low = r1low_stack + + h6 = r3lowx0 + r0lowx6 + sr1lowx6 = sr1low * x6 + r1high = r1high_stack + + x4 += y2 + r0highx0 = r0high * x0 + sr2low = sr2low_stack + + h7 = r3highx0 + r0highx6 + sr1highx6 = sr1high * x6 + sr2high = sr2high_stack + + x3 += y1 + r1lowx0 = r1low * x0 + r2low = r2low_stack + + h0 = r0lowx0 + sr1lowx6 + sr2lowx6 = sr2low * x6 + r2high = r2high_stack + + x2 += y0 + r1highx0 = r1high * x0 + sr3low = sr3low_stack + + h1 = r0highx0 + sr1highx6 + sr2highx6 = sr2high * x6 + sr3high = sr3high_stack + + x4 += x5 + r2lowx0 = r2low * x0 + + h2 = r1lowx0 + sr2lowx6 + sr3lowx6 = sr3low * x6 + + x2 += x3 + r2highx0 = r2high * x0 + + h3 = r1highx0 + sr2highx6 + sr3highx6 = sr3high * x6 + + r1highx4 = r1high * x4 + + h4 = r2lowx0 + sr3lowx6 + r1lowx4 = r1low * x4 + + r0highx4 = r0high * x4 + + h5 = r2highx0 + sr3highx6 + r0lowx4 = r0low * x4 + + h7 += r1highx4 + sr3highx4 = sr3high * x4 + + h6 += r1lowx4 + sr3lowx4 = sr3low * x4 + + h5 += r0highx4 + sr2highx4 = sr2high * x4 + + h4 += r0lowx4 + sr2lowx4 = sr2low * x4 + + h3 += sr3highx4 + r0lowx2 = r0low * x2 + + h2 += sr3lowx4 + r0highx2 = r0high * x2 + + h1 += sr2highx4 + r1lowx2 = r1low * x2 + + h0 += sr2lowx4 + r1highx2 = r1high * x2 + + h2 += r0lowx2 + r2lowx2 = r2low * x2 + + h3 += r0highx2 + r2highx2 = r2high * x2 + + h4 += r1lowx2 + sr3lowx2 = sr3low * x2 + + h5 += r1highx2 + sr3highx2 = sr3high * x2 + + h6 += r2lowx2 + + h7 += r2highx2 + + h0 += sr3lowx2 + + h1 += sr3highx2 + +addatmost15bytes: + + if l == 0 { + goto nomorebytes + } + + lbelow2 = l - 2 + + lbelow3 = l - 3 + + lbelow2 >>= 31 + lbelow4 = l - 4 + + m00 = uint32(m[p+0]) + lbelow3 >>= 31 + p += lbelow2 + + m01 = uint32(m[p+1]) + lbelow4 >>= 31 + p += lbelow3 + + m02 = uint32(m[p+2]) + p += lbelow4 + m0 = 2151 + + m03 = uint32(m[p+3]) + m0 <<= 51 + m1 = 2215 + + m0 += int64(m00) + m01 &^= uint32(lbelow2) + + m02 &^= uint32(lbelow3) + m01 -= uint32(lbelow2) + + m01 <<= 8 + m03 &^= uint32(lbelow4) + + m0 += int64(m01) + lbelow2 -= lbelow3 + + m02 += uint32(lbelow2) + lbelow3 -= lbelow4 + + m02 <<= 16 + m03 += uint32(lbelow3) + + m03 <<= 24 + m0 += int64(m02) + + m0 += int64(m03) + lbelow5 = l - 5 + + lbelow6 = l - 6 + lbelow7 = l - 7 + + lbelow5 >>= 31 + lbelow8 = l - 8 + + lbelow6 >>= 31 + p += lbelow5 + + m10 = uint32(m[p+4]) + lbelow7 >>= 31 + p += lbelow6 + + m11 = uint32(m[p+5]) + lbelow8 >>= 31 + p += lbelow7 + + m12 = uint32(m[p+6]) + m1 <<= 51 + p += lbelow8 + + m13 = uint32(m[p+7]) + m10 &^= uint32(lbelow5) + lbelow4 -= lbelow5 + + m10 += uint32(lbelow4) + lbelow5 -= lbelow6 + + m11 &^= uint32(lbelow6) + m11 += uint32(lbelow5) + + m11 <<= 8 + m1 += int64(m10) + + m1 += int64(m11) + m12 &^= uint32(lbelow7) + + lbelow6 -= lbelow7 + m13 &^= uint32(lbelow8) + + m12 += uint32(lbelow6) + lbelow7 -= lbelow8 + + m12 <<= 16 + m13 += uint32(lbelow7) + + m13 <<= 24 + m1 += int64(m12) + + m1 += int64(m13) + m2 = 2279 + + lbelow9 = l - 9 + m3 = 2343 + + lbelow10 = l - 10 + lbelow11 = l - 11 + + lbelow9 >>= 31 + lbelow12 = l - 12 + + lbelow10 >>= 31 + p += lbelow9 + + m20 = uint32(m[p+8]) + lbelow11 >>= 31 + p += lbelow10 + + m21 = uint32(m[p+9]) + lbelow12 >>= 31 + p += lbelow11 + + m22 = uint32(m[p+10]) + m2 <<= 51 + p += lbelow12 + + m23 = uint32(m[p+11]) + m20 &^= uint32(lbelow9) + lbelow8 -= lbelow9 + + m20 += uint32(lbelow8) + lbelow9 -= lbelow10 + + m21 &^= uint32(lbelow10) + m21 += uint32(lbelow9) + + m21 <<= 8 + m2 += int64(m20) + + m2 += int64(m21) + m22 &^= uint32(lbelow11) + + lbelow10 -= lbelow11 + m23 &^= uint32(lbelow12) + + m22 += uint32(lbelow10) + lbelow11 -= lbelow12 + + m22 <<= 16 + m23 += uint32(lbelow11) + + m23 <<= 24 + m2 += int64(m22) + + m3 <<= 51 + lbelow13 = l - 13 + + lbelow13 >>= 31 + lbelow14 = l - 14 + + lbelow14 >>= 31 + p += lbelow13 + lbelow15 = l - 15 + + m30 = uint32(m[p+12]) + lbelow15 >>= 31 + p += lbelow14 + + m31 = uint32(m[p+13]) + p += lbelow15 + m2 += int64(m23) + + m32 = uint32(m[p+14]) + m30 &^= uint32(lbelow13) + lbelow12 -= lbelow13 + + m30 += uint32(lbelow12) + lbelow13 -= lbelow14 + + m3 += int64(m30) + m31 &^= uint32(lbelow14) + + m31 += uint32(lbelow13) + m32 &^= uint32(lbelow15) + + m31 <<= 8 + lbelow14 -= lbelow15 + + m3 += int64(m31) + m32 += uint32(lbelow14) + d0 = m0 + + m32 <<= 16 + m33 = uint64(lbelow15 + 1) + d1 = m1 + + m33 <<= 24 + m3 += int64(m32) + d2 = m2 + + m3 += int64(m33) + d3 = m3 + + z3 = math.Float64frombits(uint64(d3)) + + z2 = math.Float64frombits(uint64(d2)) + + z1 = math.Float64frombits(uint64(d1)) + + z0 = math.Float64frombits(uint64(d0)) + + z3 -= alpha96 + + z2 -= alpha64 + + z1 -= alpha32 + + z0 -= alpha0 + + h5 += z3 + + h3 += z2 + + h1 += z1 + + h0 += z0 + + y7 = h7 + alpha130 + + y6 = h6 + alpha130 + + y1 = h1 + alpha32 + + y0 = h0 + alpha32 + + y7 -= alpha130 + + y6 -= alpha130 + + y1 -= alpha32 + + y0 -= alpha32 + + y5 = h5 + alpha96 + + y4 = h4 + alpha96 + + x7 = h7 - y7 + y7 *= scale + + x6 = h6 - y6 + y6 *= scale + + x1 = h1 - y1 + + x0 = h0 - y0 + + y5 -= alpha96 + + y4 -= alpha96 + + x1 += y7 + + x0 += y6 + + x7 += y5 + + x6 += y4 + + y3 = h3 + alpha64 + + y2 = h2 + alpha64 + + x0 += x1 + + x6 += x7 + + y3 -= alpha64 + r3low = r3low_stack + + y2 -= alpha64 + r0low = r0low_stack + + x5 = h5 - y5 + r3lowx0 = r3low * x0 + r3high = r3high_stack + + x4 = h4 - y4 + r0lowx6 = r0low * x6 + r0high = r0high_stack + + x3 = h3 - y3 + r3highx0 = r3high * x0 + sr1low = sr1low_stack + + x2 = h2 - y2 + r0highx6 = r0high * x6 + sr1high = sr1high_stack + + x5 += y3 + r0lowx0 = r0low * x0 + r1low = r1low_stack + + h6 = r3lowx0 + r0lowx6 + sr1lowx6 = sr1low * x6 + r1high = r1high_stack + + x4 += y2 + r0highx0 = r0high * x0 + sr2low = sr2low_stack + + h7 = r3highx0 + r0highx6 + sr1highx6 = sr1high * x6 + sr2high = sr2high_stack + + x3 += y1 + r1lowx0 = r1low * x0 + r2low = r2low_stack + + h0 = r0lowx0 + sr1lowx6 + sr2lowx6 = sr2low * x6 + r2high = r2high_stack + + x2 += y0 + r1highx0 = r1high * x0 + sr3low = sr3low_stack + + h1 = r0highx0 + sr1highx6 + sr2highx6 = sr2high * x6 + sr3high = sr3high_stack + + x4 += x5 + r2lowx0 = r2low * x0 + + h2 = r1lowx0 + sr2lowx6 + sr3lowx6 = sr3low * x6 + + x2 += x3 + r2highx0 = r2high * x0 + + h3 = r1highx0 + sr2highx6 + sr3highx6 = sr3high * x6 + + r1highx4 = r1high * x4 + + h4 = r2lowx0 + sr3lowx6 + r1lowx4 = r1low * x4 + + r0highx4 = r0high * x4 + + h5 = r2highx0 + sr3highx6 + r0lowx4 = r0low * x4 + + h7 += r1highx4 + sr3highx4 = sr3high * x4 + + h6 += r1lowx4 + sr3lowx4 = sr3low * x4 + + h5 += r0highx4 + sr2highx4 = sr2high * x4 + + h4 += r0lowx4 + sr2lowx4 = sr2low * x4 + + h3 += sr3highx4 + r0lowx2 = r0low * x2 + + h2 += sr3lowx4 + r0highx2 = r0high * x2 + + h1 += sr2highx4 + r1lowx2 = r1low * x2 + + h0 += sr2lowx4 + r1highx2 = r1high * x2 + + h2 += r0lowx2 + r2lowx2 = r2low * x2 + + h3 += r0highx2 + r2highx2 = r2high * x2 + + h4 += r1lowx2 + sr3lowx2 = sr3low * x2 + + h5 += r1highx2 + sr3highx2 = sr3high * x2 + + h6 += r2lowx2 + + h7 += r2highx2 + + h0 += sr3lowx2 + + h1 += sr3highx2 + +nomorebytes: + + y7 = h7 + alpha130 + + y0 = h0 + alpha32 + + y1 = h1 + alpha32 + + y2 = h2 + alpha64 + + y7 -= alpha130 + + y3 = h3 + alpha64 + + y4 = h4 + alpha96 + + y5 = h5 + alpha96 + + x7 = h7 - y7 + y7 *= scale + + y0 -= alpha32 + + y1 -= alpha32 + + y2 -= alpha64 + + h6 += x7 + + y3 -= alpha64 + + y4 -= alpha96 + + y5 -= alpha96 + + y6 = h6 + alpha130 + + x0 = h0 - y0 + + x1 = h1 - y1 + + x2 = h2 - y2 + + y6 -= alpha130 + + x0 += y7 + + x3 = h3 - y3 + + x4 = h4 - y4 + + x5 = h5 - y5 + + x6 = h6 - y6 + + y6 *= scale + + x2 += y0 + + x3 += y1 + + x4 += y2 + + x0 += y6 + + x5 += y3 + + x6 += y4 + + x2 += x3 + + x0 += x1 + + x4 += x5 + + x6 += y5 + + x2 += offset1 + d1 = int64(math.Float64bits(x2)) + + x0 += offset0 + d0 = int64(math.Float64bits(x0)) + + x4 += offset2 + d2 = int64(math.Float64bits(x4)) + + x6 += offset3 + d3 = int64(math.Float64bits(x6)) + + f0 = uint64(d0) + + f1 = uint64(d1) + bits32 = math.MaxUint64 + + f2 = uint64(d2) + bits32 >>= 32 + + f3 = uint64(d3) + f = f0 >> 32 + + f0 &= bits32 + f &= 255 + + f1 += f + g0 = f0 + 5 + + g = g0 >> 32 + g0 &= bits32 + + f = f1 >> 32 + f1 &= bits32 + + f &= 255 + g1 = f1 + g + + g = g1 >> 32 + f2 += f + + f = f2 >> 32 + g1 &= bits32 + + f2 &= bits32 + f &= 255 + + f3 += f + g2 = f2 + g + + g = g2 >> 32 + g2 &= bits32 + + f4 = f3 >> 32 + f3 &= bits32 + + f4 &= 255 + g3 = f3 + g + + g = g3 >> 32 + g3 &= bits32 + + g4 = f4 + g + + g4 = g4 - 4 + s00 = uint32(s[0]) + + f = uint64(int64(g4) >> 63) + s01 = uint32(s[1]) + + f0 &= f + g0 &^= f + s02 = uint32(s[2]) + + f1 &= f + f0 |= g0 + s03 = uint32(s[3]) + + g1 &^= f + f2 &= f + s10 = uint32(s[4]) + + f3 &= f + g2 &^= f + s11 = uint32(s[5]) + + g3 &^= f + f1 |= g1 + s12 = uint32(s[6]) + + f2 |= g2 + f3 |= g3 + s13 = uint32(s[7]) + + s01 <<= 8 + f0 += uint64(s00) + s20 = uint32(s[8]) + + s02 <<= 16 + f0 += uint64(s01) + s21 = uint32(s[9]) + + s03 <<= 24 + f0 += uint64(s02) + s22 = uint32(s[10]) + + s11 <<= 8 + f1 += uint64(s10) + s23 = uint32(s[11]) + + s12 <<= 16 + f1 += uint64(s11) + s30 = uint32(s[12]) + + s13 <<= 24 + f1 += uint64(s12) + s31 = uint32(s[13]) + + f0 += uint64(s03) + f1 += uint64(s13) + s32 = uint32(s[14]) + + s21 <<= 8 + f2 += uint64(s20) + s33 = uint32(s[15]) + + s22 <<= 16 + f2 += uint64(s21) + + s23 <<= 24 + f2 += uint64(s22) + + s31 <<= 8 + f3 += uint64(s30) + + s32 <<= 16 + f3 += uint64(s31) + + s33 <<= 24 + f3 += uint64(s32) + + f2 += uint64(s23) + f3 += uint64(s33) + + out[0] = byte(f0) + f0 >>= 8 + out[1] = byte(f0) + f0 >>= 8 + out[2] = byte(f0) + f0 >>= 8 + out[3] = byte(f0) + f0 >>= 8 + f1 += f0 + + out[4] = byte(f1) + f1 >>= 8 + out[5] = byte(f1) + f1 >>= 8 + out[6] = byte(f1) + f1 >>= 8 + out[7] = byte(f1) + f1 >>= 8 + f2 += f1 + + out[8] = byte(f2) + f2 >>= 8 + out[9] = byte(f2) + f2 >>= 8 + out[10] = byte(f2) + f2 >>= 8 + out[11] = byte(f2) + f2 >>= 8 + f3 += f2 + + out[12] = byte(f3) + f3 >>= 8 + out[13] = byte(f3) + f3 >>= 8 + out[14] = byte(f3) + f3 >>= 8 + out[15] = byte(f3) +} diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go new file mode 100644 index 00000000..6c6e8423 --- /dev/null +++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go @@ -0,0 +1,120 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ripemd160 implements the RIPEMD-160 hash algorithm. +package ripemd160 // import "golang.org/x/crypto/ripemd160" + +// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart +// Preneel with specifications available at: +// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf. + +import ( + "crypto" + "hash" +) + +func init() { + crypto.RegisterHash(crypto.RIPEMD160, New) +} + +// The size of the checksum in bytes. +const Size = 20 + +// The block size of the hash algorithm in bytes. +const BlockSize = 64 + +const ( + _s0 = 0x67452301 + _s1 = 0xefcdab89 + _s2 = 0x98badcfe + _s3 = 0x10325476 + _s4 = 0xc3d2e1f0 +) + +// digest represents the partial evaluation of a checksum. +type digest struct { + s [5]uint32 // running context + x [BlockSize]byte // temporary buffer + nx int // index into x + tc uint64 // total count of bytes processed +} + +func (d *digest) Reset() { + d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4 + d.nx = 0 + d.tc = 0 +} + +// New returns a new hash.Hash computing the checksum. +func New() hash.Hash { + result := new(digest) + result.Reset() + return result +} + +func (d *digest) Size() int { return Size } + +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Write(p []byte) (nn int, err error) { + nn = len(p) + d.tc += uint64(nn) + if d.nx > 0 { + n := len(p) + if n > BlockSize-d.nx { + n = BlockSize - d.nx + } + for i := 0; i < n; i++ { + d.x[d.nx+i] = p[i] + } + d.nx += n + if d.nx == BlockSize { + _Block(d, d.x[0:]) + d.nx = 0 + } + p = p[n:] + } + n := _Block(d, p) + p = p[n:] + if len(p) > 0 { + d.nx = copy(d.x[:], p) + } + return +} + +func (d0 *digest) Sum(in []byte) []byte { + // Make a copy of d0 so that caller can keep writing and summing. + d := *d0 + + // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. + tc := d.tc + var tmp [64]byte + tmp[0] = 0x80 + if tc%64 < 56 { + d.Write(tmp[0 : 56-tc%64]) + } else { + d.Write(tmp[0 : 64+56-tc%64]) + } + + // Length in bits. + tc <<= 3 + for i := uint(0); i < 8; i++ { + tmp[i] = byte(tc >> (8 * i)) + } + d.Write(tmp[0:8]) + + if d.nx != 0 { + panic("d.nx != 0") + } + + var digest [Size]byte + for i, s := range d.s { + digest[i*4] = byte(s) + digest[i*4+1] = byte(s >> 8) + digest[i*4+2] = byte(s >> 16) + digest[i*4+3] = byte(s >> 24) + } + + return append(in, digest[:]...) +} diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160_test.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160_test.go new file mode 100644 index 00000000..5df1b259 --- /dev/null +++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160_test.go @@ -0,0 +1,64 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ripemd160 + +// Test vectors are from: +// http://homes.esat.kuleuven.be/~bosselae/ripemd160.html + +import ( + "fmt" + "io" + "testing" +) + +type mdTest struct { + out string + in string +} + +var vectors = [...]mdTest{ + {"9c1185a5c5e9fc54612808977ee8f548b2258d31", ""}, + {"0bdc9d2d256b3ee9daae347be6f4dc835a467ffe", "a"}, + {"8eb208f7e05d987a9b044a8e98c6b087f15a0bfc", "abc"}, + {"5d0689ef49d2fae572b881b123a85ffa21595f36", "message digest"}, + {"f71c27109c692c1b56bbdceb5b9d2865b3708dbc", "abcdefghijklmnopqrstuvwxyz"}, + {"12a053384a9c0c88e405a06c27dcf49ada62eb2b", "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"}, + {"b0e20b6e3116640286ed3a87a5713079b21f5189", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"}, + {"9b752e45573d4b39f4dbd3323cab82bf63326bfb", "12345678901234567890123456789012345678901234567890123456789012345678901234567890"}, +} + +func TestVectors(t *testing.T) { + for i := 0; i < len(vectors); i++ { + tv := vectors[i] + md := New() + for j := 0; j < 3; j++ { + if j < 2 { + io.WriteString(md, tv.in) + } else { + io.WriteString(md, tv.in[0:len(tv.in)/2]) + md.Sum(nil) + io.WriteString(md, tv.in[len(tv.in)/2:]) + } + s := fmt.Sprintf("%x", md.Sum(nil)) + if s != tv.out { + t.Fatalf("RIPEMD-160[%d](%s) = %s, expected %s", j, tv.in, s, tv.out) + } + md.Reset() + } + } +} + +func TestMillionA(t *testing.T) { + md := New() + for i := 0; i < 100000; i++ { + io.WriteString(md, "aaaaaaaaaa") + } + out := "52783243c1697bdbe16d37f97f68f08325dc1528" + s := fmt.Sprintf("%x", md.Sum(nil)) + if s != out { + t.Fatalf("RIPEMD-160 (1 million 'a') = %s, expected %s", s, out) + } + md.Reset() +} diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go new file mode 100644 index 00000000..7bc8e6c4 --- /dev/null +++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go @@ -0,0 +1,161 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// RIPEMD-160 block step. +// In its own file so that a faster assembly or C version +// can be substituted easily. + +package ripemd160 + +// work buffer indices and roll amounts for one line +var _n = [80]uint{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, +} + +var _r = [80]uint{ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, +} + +// same for the other parallel one +var n_ = [80]uint{ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, +} + +var r_ = [80]uint{ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, +} + +func _Block(md *digest, p []byte) int { + n := 0 + var x [16]uint32 + var alpha, beta uint32 + for len(p) >= BlockSize { + a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4] + aa, bb, cc, dd, ee := a, b, c, d, e + j := 0 + for i := 0; i < 16; i++ { + x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 + j += 4 + } + + // round 1 + i := 0 + for i < 16 { + alpha = a + (b ^ c ^ d) + x[_n[i]] + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 2 + for i < 32 { + alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999 + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 3 + for i < 48 { + alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1 + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 4 + for i < 64 { + alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9 + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // round 5 + for i < 80 { + alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e + s := _r[i] + alpha = (alpha<>(32-s)) + e + beta = c<<10 | c>>22 + a, b, c, d, e = e, alpha, b, beta, d + + // parallel line + alpha = aa + (bb ^ cc ^ dd) + x[n_[i]] + s = r_[i] + alpha = (alpha<>(32-s)) + ee + beta = cc<<10 | cc>>22 + aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd + + i++ + } + + // combine results + dd += c + md.s[1] + md.s[1] = md.s[2] + d + ee + md.s[2] = md.s[3] + e + aa + md.s[3] = md.s[4] + a + bb + md.s[4] = md.s[0] + b + cc + md.s[0] = dd + + p = p[BlockSize:] + n += BlockSize + } + return n +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go b/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go new file mode 100644 index 00000000..4c96147c --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go @@ -0,0 +1,144 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package salsa provides low-level access to functions in the Salsa family. +package salsa // import "golang.org/x/crypto/salsa20/salsa" + +// Sigma is the Salsa20 constant for 256-bit keys. +var Sigma = [16]byte{'e', 'x', 'p', 'a', 'n', 'd', ' ', '3', '2', '-', 'b', 'y', 't', 'e', ' ', 'k'} + +// HSalsa20 applies the HSalsa20 core function to a 16-byte input in, 32-byte +// key k, and 16-byte constant c, and puts the result into the 32-byte array +// out. +func HSalsa20(out *[32]byte, in *[16]byte, k *[32]byte, c *[16]byte) { + x0 := uint32(c[0]) | uint32(c[1])<<8 | uint32(c[2])<<16 | uint32(c[3])<<24 + x1 := uint32(k[0]) | uint32(k[1])<<8 | uint32(k[2])<<16 | uint32(k[3])<<24 + x2 := uint32(k[4]) | uint32(k[5])<<8 | uint32(k[6])<<16 | uint32(k[7])<<24 + x3 := uint32(k[8]) | uint32(k[9])<<8 | uint32(k[10])<<16 | uint32(k[11])<<24 + x4 := uint32(k[12]) | uint32(k[13])<<8 | uint32(k[14])<<16 | uint32(k[15])<<24 + x5 := uint32(c[4]) | uint32(c[5])<<8 | uint32(c[6])<<16 | uint32(c[7])<<24 + x6 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 + x7 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 + x8 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 + x9 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 + x10 := uint32(c[8]) | uint32(c[9])<<8 | uint32(c[10])<<16 | uint32(c[11])<<24 + x11 := uint32(k[16]) | uint32(k[17])<<8 | uint32(k[18])<<16 | uint32(k[19])<<24 + x12 := uint32(k[20]) | uint32(k[21])<<8 | uint32(k[22])<<16 | uint32(k[23])<<24 + x13 := uint32(k[24]) | uint32(k[25])<<8 | uint32(k[26])<<16 | uint32(k[27])<<24 + x14 := uint32(k[28]) | uint32(k[29])<<8 | uint32(k[30])<<16 | uint32(k[31])<<24 + x15 := uint32(c[12]) | uint32(c[13])<<8 | uint32(c[14])<<16 | uint32(c[15])<<24 + + for i := 0; i < 20; i += 2 { + u := x0 + x12 + x4 ^= u<<7 | u>>(32-7) + u = x4 + x0 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x4 + x12 ^= u<<13 | u>>(32-13) + u = x12 + x8 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x1 + x9 ^= u<<7 | u>>(32-7) + u = x9 + x5 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x9 + x1 ^= u<<13 | u>>(32-13) + u = x1 + x13 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x6 + x14 ^= u<<7 | u>>(32-7) + u = x14 + x10 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x14 + x6 ^= u<<13 | u>>(32-13) + u = x6 + x2 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x11 + x3 ^= u<<7 | u>>(32-7) + u = x3 + x15 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x3 + x11 ^= u<<13 | u>>(32-13) + u = x11 + x7 + x15 ^= u<<18 | u>>(32-18) + + u = x0 + x3 + x1 ^= u<<7 | u>>(32-7) + u = x1 + x0 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x1 + x3 ^= u<<13 | u>>(32-13) + u = x3 + x2 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x4 + x6 ^= u<<7 | u>>(32-7) + u = x6 + x5 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x6 + x4 ^= u<<13 | u>>(32-13) + u = x4 + x7 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x9 + x11 ^= u<<7 | u>>(32-7) + u = x11 + x10 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x11 + x9 ^= u<<13 | u>>(32-13) + u = x9 + x8 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x14 + x12 ^= u<<7 | u>>(32-7) + u = x12 + x15 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x12 + x14 ^= u<<13 | u>>(32-13) + u = x14 + x13 + x15 ^= u<<18 | u>>(32-18) + } + out[0] = byte(x0) + out[1] = byte(x0 >> 8) + out[2] = byte(x0 >> 16) + out[3] = byte(x0 >> 24) + + out[4] = byte(x5) + out[5] = byte(x5 >> 8) + out[6] = byte(x5 >> 16) + out[7] = byte(x5 >> 24) + + out[8] = byte(x10) + out[9] = byte(x10 >> 8) + out[10] = byte(x10 >> 16) + out[11] = byte(x10 >> 24) + + out[12] = byte(x15) + out[13] = byte(x15 >> 8) + out[14] = byte(x15 >> 16) + out[15] = byte(x15 >> 24) + + out[16] = byte(x6) + out[17] = byte(x6 >> 8) + out[18] = byte(x6 >> 16) + out[19] = byte(x6 >> 24) + + out[20] = byte(x7) + out[21] = byte(x7 >> 8) + out[22] = byte(x7 >> 16) + out[23] = byte(x7 >> 24) + + out[24] = byte(x8) + out[25] = byte(x8 >> 8) + out[26] = byte(x8 >> 16) + out[27] = byte(x8 >> 24) + + out[28] = byte(x9) + out[29] = byte(x9 >> 8) + out[30] = byte(x9 >> 16) + out[31] = byte(x9 >> 24) +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa2020_amd64.s b/vendor/golang.org/x/crypto/salsa20/salsa/salsa2020_amd64.s new file mode 100644 index 00000000..6e1df963 --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa2020_amd64.s @@ -0,0 +1,902 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!appengine,!gccgo + +// This code was translated into a form compatible with 6a from the public +// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html + +// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) +TEXT ·salsa2020XORKeyStream(SB),0,$512-40 + MOVQ out+0(FP),DI + MOVQ in+8(FP),SI + MOVQ n+16(FP),DX + MOVQ nonce+24(FP),CX + MOVQ key+32(FP),R8 + + MOVQ SP,R11 + MOVQ $31,R9 + NOTQ R9 + ANDQ R9,SP + ADDQ $32,SP + + MOVQ R11,352(SP) + MOVQ R12,360(SP) + MOVQ R13,368(SP) + MOVQ R14,376(SP) + MOVQ R15,384(SP) + MOVQ BX,392(SP) + MOVQ BP,400(SP) + MOVQ DX,R9 + MOVQ CX,DX + MOVQ R8,R10 + CMPQ R9,$0 + JBE DONE + START: + MOVL 20(R10),CX + MOVL 0(R10),R8 + MOVL 0(DX),AX + MOVL 16(R10),R11 + MOVL CX,0(SP) + MOVL R8, 4 (SP) + MOVL AX, 8 (SP) + MOVL R11, 12 (SP) + MOVL 8(DX),CX + MOVL 24(R10),R8 + MOVL 4(R10),AX + MOVL 4(DX),R11 + MOVL CX,16(SP) + MOVL R8, 20 (SP) + MOVL AX, 24 (SP) + MOVL R11, 28 (SP) + MOVL 12(DX),CX + MOVL 12(R10),DX + MOVL 28(R10),R8 + MOVL 8(R10),AX + MOVL DX,32(SP) + MOVL CX, 36 (SP) + MOVL R8, 40 (SP) + MOVL AX, 44 (SP) + MOVQ $1634760805,DX + MOVQ $857760878,CX + MOVQ $2036477234,R8 + MOVQ $1797285236,AX + MOVL DX,48(SP) + MOVL CX, 52 (SP) + MOVL R8, 56 (SP) + MOVL AX, 60 (SP) + CMPQ R9,$256 + JB BYTESBETWEEN1AND255 + MOVOA 48(SP),X0 + PSHUFL $0X55,X0,X1 + PSHUFL $0XAA,X0,X2 + PSHUFL $0XFF,X0,X3 + PSHUFL $0X00,X0,X0 + MOVOA X1,64(SP) + MOVOA X2,80(SP) + MOVOA X3,96(SP) + MOVOA X0,112(SP) + MOVOA 0(SP),X0 + PSHUFL $0XAA,X0,X1 + PSHUFL $0XFF,X0,X2 + PSHUFL $0X00,X0,X3 + PSHUFL $0X55,X0,X0 + MOVOA X1,128(SP) + MOVOA X2,144(SP) + MOVOA X3,160(SP) + MOVOA X0,176(SP) + MOVOA 16(SP),X0 + PSHUFL $0XFF,X0,X1 + PSHUFL $0X55,X0,X2 + PSHUFL $0XAA,X0,X0 + MOVOA X1,192(SP) + MOVOA X2,208(SP) + MOVOA X0,224(SP) + MOVOA 32(SP),X0 + PSHUFL $0X00,X0,X1 + PSHUFL $0XAA,X0,X2 + PSHUFL $0XFF,X0,X0 + MOVOA X1,240(SP) + MOVOA X2,256(SP) + MOVOA X0,272(SP) + BYTESATLEAST256: + MOVL 16(SP),DX + MOVL 36 (SP),CX + MOVL DX,288(SP) + MOVL CX,304(SP) + ADDQ $1,DX + SHLQ $32,CX + ADDQ CX,DX + MOVQ DX,CX + SHRQ $32,CX + MOVL DX, 292 (SP) + MOVL CX, 308 (SP) + ADDQ $1,DX + SHLQ $32,CX + ADDQ CX,DX + MOVQ DX,CX + SHRQ $32,CX + MOVL DX, 296 (SP) + MOVL CX, 312 (SP) + ADDQ $1,DX + SHLQ $32,CX + ADDQ CX,DX + MOVQ DX,CX + SHRQ $32,CX + MOVL DX, 300 (SP) + MOVL CX, 316 (SP) + ADDQ $1,DX + SHLQ $32,CX + ADDQ CX,DX + MOVQ DX,CX + SHRQ $32,CX + MOVL DX,16(SP) + MOVL CX, 36 (SP) + MOVQ R9,408(SP) + MOVQ $20,DX + MOVOA 64(SP),X0 + MOVOA 80(SP),X1 + MOVOA 96(SP),X2 + MOVOA 256(SP),X3 + MOVOA 272(SP),X4 + MOVOA 128(SP),X5 + MOVOA 144(SP),X6 + MOVOA 176(SP),X7 + MOVOA 192(SP),X8 + MOVOA 208(SP),X9 + MOVOA 224(SP),X10 + MOVOA 304(SP),X11 + MOVOA 112(SP),X12 + MOVOA 160(SP),X13 + MOVOA 240(SP),X14 + MOVOA 288(SP),X15 + MAINLOOP1: + MOVOA X1,320(SP) + MOVOA X2,336(SP) + MOVOA X13,X1 + PADDL X12,X1 + MOVOA X1,X2 + PSLLL $7,X1 + PXOR X1,X14 + PSRLL $25,X2 + PXOR X2,X14 + MOVOA X7,X1 + PADDL X0,X1 + MOVOA X1,X2 + PSLLL $7,X1 + PXOR X1,X11 + PSRLL $25,X2 + PXOR X2,X11 + MOVOA X12,X1 + PADDL X14,X1 + MOVOA X1,X2 + PSLLL $9,X1 + PXOR X1,X15 + PSRLL $23,X2 + PXOR X2,X15 + MOVOA X0,X1 + PADDL X11,X1 + MOVOA X1,X2 + PSLLL $9,X1 + PXOR X1,X9 + PSRLL $23,X2 + PXOR X2,X9 + MOVOA X14,X1 + PADDL X15,X1 + MOVOA X1,X2 + PSLLL $13,X1 + PXOR X1,X13 + PSRLL $19,X2 + PXOR X2,X13 + MOVOA X11,X1 + PADDL X9,X1 + MOVOA X1,X2 + PSLLL $13,X1 + PXOR X1,X7 + PSRLL $19,X2 + PXOR X2,X7 + MOVOA X15,X1 + PADDL X13,X1 + MOVOA X1,X2 + PSLLL $18,X1 + PXOR X1,X12 + PSRLL $14,X2 + PXOR X2,X12 + MOVOA 320(SP),X1 + MOVOA X12,320(SP) + MOVOA X9,X2 + PADDL X7,X2 + MOVOA X2,X12 + PSLLL $18,X2 + PXOR X2,X0 + PSRLL $14,X12 + PXOR X12,X0 + MOVOA X5,X2 + PADDL X1,X2 + MOVOA X2,X12 + PSLLL $7,X2 + PXOR X2,X3 + PSRLL $25,X12 + PXOR X12,X3 + MOVOA 336(SP),X2 + MOVOA X0,336(SP) + MOVOA X6,X0 + PADDL X2,X0 + MOVOA X0,X12 + PSLLL $7,X0 + PXOR X0,X4 + PSRLL $25,X12 + PXOR X12,X4 + MOVOA X1,X0 + PADDL X3,X0 + MOVOA X0,X12 + PSLLL $9,X0 + PXOR X0,X10 + PSRLL $23,X12 + PXOR X12,X10 + MOVOA X2,X0 + PADDL X4,X0 + MOVOA X0,X12 + PSLLL $9,X0 + PXOR X0,X8 + PSRLL $23,X12 + PXOR X12,X8 + MOVOA X3,X0 + PADDL X10,X0 + MOVOA X0,X12 + PSLLL $13,X0 + PXOR X0,X5 + PSRLL $19,X12 + PXOR X12,X5 + MOVOA X4,X0 + PADDL X8,X0 + MOVOA X0,X12 + PSLLL $13,X0 + PXOR X0,X6 + PSRLL $19,X12 + PXOR X12,X6 + MOVOA X10,X0 + PADDL X5,X0 + MOVOA X0,X12 + PSLLL $18,X0 + PXOR X0,X1 + PSRLL $14,X12 + PXOR X12,X1 + MOVOA 320(SP),X0 + MOVOA X1,320(SP) + MOVOA X4,X1 + PADDL X0,X1 + MOVOA X1,X12 + PSLLL $7,X1 + PXOR X1,X7 + PSRLL $25,X12 + PXOR X12,X7 + MOVOA X8,X1 + PADDL X6,X1 + MOVOA X1,X12 + PSLLL $18,X1 + PXOR X1,X2 + PSRLL $14,X12 + PXOR X12,X2 + MOVOA 336(SP),X12 + MOVOA X2,336(SP) + MOVOA X14,X1 + PADDL X12,X1 + MOVOA X1,X2 + PSLLL $7,X1 + PXOR X1,X5 + PSRLL $25,X2 + PXOR X2,X5 + MOVOA X0,X1 + PADDL X7,X1 + MOVOA X1,X2 + PSLLL $9,X1 + PXOR X1,X10 + PSRLL $23,X2 + PXOR X2,X10 + MOVOA X12,X1 + PADDL X5,X1 + MOVOA X1,X2 + PSLLL $9,X1 + PXOR X1,X8 + PSRLL $23,X2 + PXOR X2,X8 + MOVOA X7,X1 + PADDL X10,X1 + MOVOA X1,X2 + PSLLL $13,X1 + PXOR X1,X4 + PSRLL $19,X2 + PXOR X2,X4 + MOVOA X5,X1 + PADDL X8,X1 + MOVOA X1,X2 + PSLLL $13,X1 + PXOR X1,X14 + PSRLL $19,X2 + PXOR X2,X14 + MOVOA X10,X1 + PADDL X4,X1 + MOVOA X1,X2 + PSLLL $18,X1 + PXOR X1,X0 + PSRLL $14,X2 + PXOR X2,X0 + MOVOA 320(SP),X1 + MOVOA X0,320(SP) + MOVOA X8,X0 + PADDL X14,X0 + MOVOA X0,X2 + PSLLL $18,X0 + PXOR X0,X12 + PSRLL $14,X2 + PXOR X2,X12 + MOVOA X11,X0 + PADDL X1,X0 + MOVOA X0,X2 + PSLLL $7,X0 + PXOR X0,X6 + PSRLL $25,X2 + PXOR X2,X6 + MOVOA 336(SP),X2 + MOVOA X12,336(SP) + MOVOA X3,X0 + PADDL X2,X0 + MOVOA X0,X12 + PSLLL $7,X0 + PXOR X0,X13 + PSRLL $25,X12 + PXOR X12,X13 + MOVOA X1,X0 + PADDL X6,X0 + MOVOA X0,X12 + PSLLL $9,X0 + PXOR X0,X15 + PSRLL $23,X12 + PXOR X12,X15 + MOVOA X2,X0 + PADDL X13,X0 + MOVOA X0,X12 + PSLLL $9,X0 + PXOR X0,X9 + PSRLL $23,X12 + PXOR X12,X9 + MOVOA X6,X0 + PADDL X15,X0 + MOVOA X0,X12 + PSLLL $13,X0 + PXOR X0,X11 + PSRLL $19,X12 + PXOR X12,X11 + MOVOA X13,X0 + PADDL X9,X0 + MOVOA X0,X12 + PSLLL $13,X0 + PXOR X0,X3 + PSRLL $19,X12 + PXOR X12,X3 + MOVOA X15,X0 + PADDL X11,X0 + MOVOA X0,X12 + PSLLL $18,X0 + PXOR X0,X1 + PSRLL $14,X12 + PXOR X12,X1 + MOVOA X9,X0 + PADDL X3,X0 + MOVOA X0,X12 + PSLLL $18,X0 + PXOR X0,X2 + PSRLL $14,X12 + PXOR X12,X2 + MOVOA 320(SP),X12 + MOVOA 336(SP),X0 + SUBQ $2,DX + JA MAINLOOP1 + PADDL 112(SP),X12 + PADDL 176(SP),X7 + PADDL 224(SP),X10 + PADDL 272(SP),X4 + MOVD X12,DX + MOVD X7,CX + MOVD X10,R8 + MOVD X4,R9 + PSHUFL $0X39,X12,X12 + PSHUFL $0X39,X7,X7 + PSHUFL $0X39,X10,X10 + PSHUFL $0X39,X4,X4 + XORL 0(SI),DX + XORL 4(SI),CX + XORL 8(SI),R8 + XORL 12(SI),R9 + MOVL DX,0(DI) + MOVL CX,4(DI) + MOVL R8,8(DI) + MOVL R9,12(DI) + MOVD X12,DX + MOVD X7,CX + MOVD X10,R8 + MOVD X4,R9 + PSHUFL $0X39,X12,X12 + PSHUFL $0X39,X7,X7 + PSHUFL $0X39,X10,X10 + PSHUFL $0X39,X4,X4 + XORL 64(SI),DX + XORL 68(SI),CX + XORL 72(SI),R8 + XORL 76(SI),R9 + MOVL DX,64(DI) + MOVL CX,68(DI) + MOVL R8,72(DI) + MOVL R9,76(DI) + MOVD X12,DX + MOVD X7,CX + MOVD X10,R8 + MOVD X4,R9 + PSHUFL $0X39,X12,X12 + PSHUFL $0X39,X7,X7 + PSHUFL $0X39,X10,X10 + PSHUFL $0X39,X4,X4 + XORL 128(SI),DX + XORL 132(SI),CX + XORL 136(SI),R8 + XORL 140(SI),R9 + MOVL DX,128(DI) + MOVL CX,132(DI) + MOVL R8,136(DI) + MOVL R9,140(DI) + MOVD X12,DX + MOVD X7,CX + MOVD X10,R8 + MOVD X4,R9 + XORL 192(SI),DX + XORL 196(SI),CX + XORL 200(SI),R8 + XORL 204(SI),R9 + MOVL DX,192(DI) + MOVL CX,196(DI) + MOVL R8,200(DI) + MOVL R9,204(DI) + PADDL 240(SP),X14 + PADDL 64(SP),X0 + PADDL 128(SP),X5 + PADDL 192(SP),X8 + MOVD X14,DX + MOVD X0,CX + MOVD X5,R8 + MOVD X8,R9 + PSHUFL $0X39,X14,X14 + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X5,X5 + PSHUFL $0X39,X8,X8 + XORL 16(SI),DX + XORL 20(SI),CX + XORL 24(SI),R8 + XORL 28(SI),R9 + MOVL DX,16(DI) + MOVL CX,20(DI) + MOVL R8,24(DI) + MOVL R9,28(DI) + MOVD X14,DX + MOVD X0,CX + MOVD X5,R8 + MOVD X8,R9 + PSHUFL $0X39,X14,X14 + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X5,X5 + PSHUFL $0X39,X8,X8 + XORL 80(SI),DX + XORL 84(SI),CX + XORL 88(SI),R8 + XORL 92(SI),R9 + MOVL DX,80(DI) + MOVL CX,84(DI) + MOVL R8,88(DI) + MOVL R9,92(DI) + MOVD X14,DX + MOVD X0,CX + MOVD X5,R8 + MOVD X8,R9 + PSHUFL $0X39,X14,X14 + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X5,X5 + PSHUFL $0X39,X8,X8 + XORL 144(SI),DX + XORL 148(SI),CX + XORL 152(SI),R8 + XORL 156(SI),R9 + MOVL DX,144(DI) + MOVL CX,148(DI) + MOVL R8,152(DI) + MOVL R9,156(DI) + MOVD X14,DX + MOVD X0,CX + MOVD X5,R8 + MOVD X8,R9 + XORL 208(SI),DX + XORL 212(SI),CX + XORL 216(SI),R8 + XORL 220(SI),R9 + MOVL DX,208(DI) + MOVL CX,212(DI) + MOVL R8,216(DI) + MOVL R9,220(DI) + PADDL 288(SP),X15 + PADDL 304(SP),X11 + PADDL 80(SP),X1 + PADDL 144(SP),X6 + MOVD X15,DX + MOVD X11,CX + MOVD X1,R8 + MOVD X6,R9 + PSHUFL $0X39,X15,X15 + PSHUFL $0X39,X11,X11 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X6,X6 + XORL 32(SI),DX + XORL 36(SI),CX + XORL 40(SI),R8 + XORL 44(SI),R9 + MOVL DX,32(DI) + MOVL CX,36(DI) + MOVL R8,40(DI) + MOVL R9,44(DI) + MOVD X15,DX + MOVD X11,CX + MOVD X1,R8 + MOVD X6,R9 + PSHUFL $0X39,X15,X15 + PSHUFL $0X39,X11,X11 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X6,X6 + XORL 96(SI),DX + XORL 100(SI),CX + XORL 104(SI),R8 + XORL 108(SI),R9 + MOVL DX,96(DI) + MOVL CX,100(DI) + MOVL R8,104(DI) + MOVL R9,108(DI) + MOVD X15,DX + MOVD X11,CX + MOVD X1,R8 + MOVD X6,R9 + PSHUFL $0X39,X15,X15 + PSHUFL $0X39,X11,X11 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X6,X6 + XORL 160(SI),DX + XORL 164(SI),CX + XORL 168(SI),R8 + XORL 172(SI),R9 + MOVL DX,160(DI) + MOVL CX,164(DI) + MOVL R8,168(DI) + MOVL R9,172(DI) + MOVD X15,DX + MOVD X11,CX + MOVD X1,R8 + MOVD X6,R9 + XORL 224(SI),DX + XORL 228(SI),CX + XORL 232(SI),R8 + XORL 236(SI),R9 + MOVL DX,224(DI) + MOVL CX,228(DI) + MOVL R8,232(DI) + MOVL R9,236(DI) + PADDL 160(SP),X13 + PADDL 208(SP),X9 + PADDL 256(SP),X3 + PADDL 96(SP),X2 + MOVD X13,DX + MOVD X9,CX + MOVD X3,R8 + MOVD X2,R9 + PSHUFL $0X39,X13,X13 + PSHUFL $0X39,X9,X9 + PSHUFL $0X39,X3,X3 + PSHUFL $0X39,X2,X2 + XORL 48(SI),DX + XORL 52(SI),CX + XORL 56(SI),R8 + XORL 60(SI),R9 + MOVL DX,48(DI) + MOVL CX,52(DI) + MOVL R8,56(DI) + MOVL R9,60(DI) + MOVD X13,DX + MOVD X9,CX + MOVD X3,R8 + MOVD X2,R9 + PSHUFL $0X39,X13,X13 + PSHUFL $0X39,X9,X9 + PSHUFL $0X39,X3,X3 + PSHUFL $0X39,X2,X2 + XORL 112(SI),DX + XORL 116(SI),CX + XORL 120(SI),R8 + XORL 124(SI),R9 + MOVL DX,112(DI) + MOVL CX,116(DI) + MOVL R8,120(DI) + MOVL R9,124(DI) + MOVD X13,DX + MOVD X9,CX + MOVD X3,R8 + MOVD X2,R9 + PSHUFL $0X39,X13,X13 + PSHUFL $0X39,X9,X9 + PSHUFL $0X39,X3,X3 + PSHUFL $0X39,X2,X2 + XORL 176(SI),DX + XORL 180(SI),CX + XORL 184(SI),R8 + XORL 188(SI),R9 + MOVL DX,176(DI) + MOVL CX,180(DI) + MOVL R8,184(DI) + MOVL R9,188(DI) + MOVD X13,DX + MOVD X9,CX + MOVD X3,R8 + MOVD X2,R9 + XORL 240(SI),DX + XORL 244(SI),CX + XORL 248(SI),R8 + XORL 252(SI),R9 + MOVL DX,240(DI) + MOVL CX,244(DI) + MOVL R8,248(DI) + MOVL R9,252(DI) + MOVQ 408(SP),R9 + SUBQ $256,R9 + ADDQ $256,SI + ADDQ $256,DI + CMPQ R9,$256 + JAE BYTESATLEAST256 + CMPQ R9,$0 + JBE DONE + BYTESBETWEEN1AND255: + CMPQ R9,$64 + JAE NOCOPY + MOVQ DI,DX + LEAQ 416(SP),DI + MOVQ R9,CX + REP; MOVSB + LEAQ 416(SP),DI + LEAQ 416(SP),SI + NOCOPY: + MOVQ R9,408(SP) + MOVOA 48(SP),X0 + MOVOA 0(SP),X1 + MOVOA 16(SP),X2 + MOVOA 32(SP),X3 + MOVOA X1,X4 + MOVQ $20,CX + MAINLOOP2: + PADDL X0,X4 + MOVOA X0,X5 + MOVOA X4,X6 + PSLLL $7,X4 + PSRLL $25,X6 + PXOR X4,X3 + PXOR X6,X3 + PADDL X3,X5 + MOVOA X3,X4 + MOVOA X5,X6 + PSLLL $9,X5 + PSRLL $23,X6 + PXOR X5,X2 + PSHUFL $0X93,X3,X3 + PXOR X6,X2 + PADDL X2,X4 + MOVOA X2,X5 + MOVOA X4,X6 + PSLLL $13,X4 + PSRLL $19,X6 + PXOR X4,X1 + PSHUFL $0X4E,X2,X2 + PXOR X6,X1 + PADDL X1,X5 + MOVOA X3,X4 + MOVOA X5,X6 + PSLLL $18,X5 + PSRLL $14,X6 + PXOR X5,X0 + PSHUFL $0X39,X1,X1 + PXOR X6,X0 + PADDL X0,X4 + MOVOA X0,X5 + MOVOA X4,X6 + PSLLL $7,X4 + PSRLL $25,X6 + PXOR X4,X1 + PXOR X6,X1 + PADDL X1,X5 + MOVOA X1,X4 + MOVOA X5,X6 + PSLLL $9,X5 + PSRLL $23,X6 + PXOR X5,X2 + PSHUFL $0X93,X1,X1 + PXOR X6,X2 + PADDL X2,X4 + MOVOA X2,X5 + MOVOA X4,X6 + PSLLL $13,X4 + PSRLL $19,X6 + PXOR X4,X3 + PSHUFL $0X4E,X2,X2 + PXOR X6,X3 + PADDL X3,X5 + MOVOA X1,X4 + MOVOA X5,X6 + PSLLL $18,X5 + PSRLL $14,X6 + PXOR X5,X0 + PSHUFL $0X39,X3,X3 + PXOR X6,X0 + PADDL X0,X4 + MOVOA X0,X5 + MOVOA X4,X6 + PSLLL $7,X4 + PSRLL $25,X6 + PXOR X4,X3 + PXOR X6,X3 + PADDL X3,X5 + MOVOA X3,X4 + MOVOA X5,X6 + PSLLL $9,X5 + PSRLL $23,X6 + PXOR X5,X2 + PSHUFL $0X93,X3,X3 + PXOR X6,X2 + PADDL X2,X4 + MOVOA X2,X5 + MOVOA X4,X6 + PSLLL $13,X4 + PSRLL $19,X6 + PXOR X4,X1 + PSHUFL $0X4E,X2,X2 + PXOR X6,X1 + PADDL X1,X5 + MOVOA X3,X4 + MOVOA X5,X6 + PSLLL $18,X5 + PSRLL $14,X6 + PXOR X5,X0 + PSHUFL $0X39,X1,X1 + PXOR X6,X0 + PADDL X0,X4 + MOVOA X0,X5 + MOVOA X4,X6 + PSLLL $7,X4 + PSRLL $25,X6 + PXOR X4,X1 + PXOR X6,X1 + PADDL X1,X5 + MOVOA X1,X4 + MOVOA X5,X6 + PSLLL $9,X5 + PSRLL $23,X6 + PXOR X5,X2 + PSHUFL $0X93,X1,X1 + PXOR X6,X2 + PADDL X2,X4 + MOVOA X2,X5 + MOVOA X4,X6 + PSLLL $13,X4 + PSRLL $19,X6 + PXOR X4,X3 + PSHUFL $0X4E,X2,X2 + PXOR X6,X3 + SUBQ $4,CX + PADDL X3,X5 + MOVOA X1,X4 + MOVOA X5,X6 + PSLLL $18,X5 + PXOR X7,X7 + PSRLL $14,X6 + PXOR X5,X0 + PSHUFL $0X39,X3,X3 + PXOR X6,X0 + JA MAINLOOP2 + PADDL 48(SP),X0 + PADDL 0(SP),X1 + PADDL 16(SP),X2 + PADDL 32(SP),X3 + MOVD X0,CX + MOVD X1,R8 + MOVD X2,R9 + MOVD X3,AX + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X2,X2 + PSHUFL $0X39,X3,X3 + XORL 0(SI),CX + XORL 48(SI),R8 + XORL 32(SI),R9 + XORL 16(SI),AX + MOVL CX,0(DI) + MOVL R8,48(DI) + MOVL R9,32(DI) + MOVL AX,16(DI) + MOVD X0,CX + MOVD X1,R8 + MOVD X2,R9 + MOVD X3,AX + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X2,X2 + PSHUFL $0X39,X3,X3 + XORL 20(SI),CX + XORL 4(SI),R8 + XORL 52(SI),R9 + XORL 36(SI),AX + MOVL CX,20(DI) + MOVL R8,4(DI) + MOVL R9,52(DI) + MOVL AX,36(DI) + MOVD X0,CX + MOVD X1,R8 + MOVD X2,R9 + MOVD X3,AX + PSHUFL $0X39,X0,X0 + PSHUFL $0X39,X1,X1 + PSHUFL $0X39,X2,X2 + PSHUFL $0X39,X3,X3 + XORL 40(SI),CX + XORL 24(SI),R8 + XORL 8(SI),R9 + XORL 56(SI),AX + MOVL CX,40(DI) + MOVL R8,24(DI) + MOVL R9,8(DI) + MOVL AX,56(DI) + MOVD X0,CX + MOVD X1,R8 + MOVD X2,R9 + MOVD X3,AX + XORL 60(SI),CX + XORL 44(SI),R8 + XORL 28(SI),R9 + XORL 12(SI),AX + MOVL CX,60(DI) + MOVL R8,44(DI) + MOVL R9,28(DI) + MOVL AX,12(DI) + MOVQ 408(SP),R9 + MOVL 16(SP),CX + MOVL 36 (SP),R8 + ADDQ $1,CX + SHLQ $32,R8 + ADDQ R8,CX + MOVQ CX,R8 + SHRQ $32,R8 + MOVL CX,16(SP) + MOVL R8, 36 (SP) + CMPQ R9,$64 + JA BYTESATLEAST65 + JAE BYTESATLEAST64 + MOVQ DI,SI + MOVQ DX,DI + MOVQ R9,CX + REP; MOVSB + BYTESATLEAST64: + DONE: + MOVQ 352(SP),R11 + MOVQ 360(SP),R12 + MOVQ 368(SP),R13 + MOVQ 376(SP),R14 + MOVQ 384(SP),R15 + MOVQ 392(SP),BX + MOVQ 400(SP),BP + MOVQ R11,SP + RET + BYTESATLEAST65: + SUBQ $64,R9 + ADDQ $64,DI + ADDQ $64,SI + JMP BYTESBETWEEN1AND255 diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa208.go b/vendor/golang.org/x/crypto/salsa20/salsa/salsa208.go new file mode 100644 index 00000000..9bfc0927 --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa208.go @@ -0,0 +1,199 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package salsa + +// Core208 applies the Salsa20/8 core function to the 64-byte array in and puts +// the result into the 64-byte array out. The input and output may be the same array. +func Core208(out *[64]byte, in *[64]byte) { + j0 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 + j1 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 + j2 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 + j3 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 + j4 := uint32(in[16]) | uint32(in[17])<<8 | uint32(in[18])<<16 | uint32(in[19])<<24 + j5 := uint32(in[20]) | uint32(in[21])<<8 | uint32(in[22])<<16 | uint32(in[23])<<24 + j6 := uint32(in[24]) | uint32(in[25])<<8 | uint32(in[26])<<16 | uint32(in[27])<<24 + j7 := uint32(in[28]) | uint32(in[29])<<8 | uint32(in[30])<<16 | uint32(in[31])<<24 + j8 := uint32(in[32]) | uint32(in[33])<<8 | uint32(in[34])<<16 | uint32(in[35])<<24 + j9 := uint32(in[36]) | uint32(in[37])<<8 | uint32(in[38])<<16 | uint32(in[39])<<24 + j10 := uint32(in[40]) | uint32(in[41])<<8 | uint32(in[42])<<16 | uint32(in[43])<<24 + j11 := uint32(in[44]) | uint32(in[45])<<8 | uint32(in[46])<<16 | uint32(in[47])<<24 + j12 := uint32(in[48]) | uint32(in[49])<<8 | uint32(in[50])<<16 | uint32(in[51])<<24 + j13 := uint32(in[52]) | uint32(in[53])<<8 | uint32(in[54])<<16 | uint32(in[55])<<24 + j14 := uint32(in[56]) | uint32(in[57])<<8 | uint32(in[58])<<16 | uint32(in[59])<<24 + j15 := uint32(in[60]) | uint32(in[61])<<8 | uint32(in[62])<<16 | uint32(in[63])<<24 + + x0, x1, x2, x3, x4, x5, x6, x7, x8 := j0, j1, j2, j3, j4, j5, j6, j7, j8 + x9, x10, x11, x12, x13, x14, x15 := j9, j10, j11, j12, j13, j14, j15 + + for i := 0; i < 8; i += 2 { + u := x0 + x12 + x4 ^= u<<7 | u>>(32-7) + u = x4 + x0 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x4 + x12 ^= u<<13 | u>>(32-13) + u = x12 + x8 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x1 + x9 ^= u<<7 | u>>(32-7) + u = x9 + x5 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x9 + x1 ^= u<<13 | u>>(32-13) + u = x1 + x13 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x6 + x14 ^= u<<7 | u>>(32-7) + u = x14 + x10 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x14 + x6 ^= u<<13 | u>>(32-13) + u = x6 + x2 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x11 + x3 ^= u<<7 | u>>(32-7) + u = x3 + x15 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x3 + x11 ^= u<<13 | u>>(32-13) + u = x11 + x7 + x15 ^= u<<18 | u>>(32-18) + + u = x0 + x3 + x1 ^= u<<7 | u>>(32-7) + u = x1 + x0 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x1 + x3 ^= u<<13 | u>>(32-13) + u = x3 + x2 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x4 + x6 ^= u<<7 | u>>(32-7) + u = x6 + x5 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x6 + x4 ^= u<<13 | u>>(32-13) + u = x4 + x7 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x9 + x11 ^= u<<7 | u>>(32-7) + u = x11 + x10 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x11 + x9 ^= u<<13 | u>>(32-13) + u = x9 + x8 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x14 + x12 ^= u<<7 | u>>(32-7) + u = x12 + x15 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x12 + x14 ^= u<<13 | u>>(32-13) + u = x14 + x13 + x15 ^= u<<18 | u>>(32-18) + } + x0 += j0 + x1 += j1 + x2 += j2 + x3 += j3 + x4 += j4 + x5 += j5 + x6 += j6 + x7 += j7 + x8 += j8 + x9 += j9 + x10 += j10 + x11 += j11 + x12 += j12 + x13 += j13 + x14 += j14 + x15 += j15 + + out[0] = byte(x0) + out[1] = byte(x0 >> 8) + out[2] = byte(x0 >> 16) + out[3] = byte(x0 >> 24) + + out[4] = byte(x1) + out[5] = byte(x1 >> 8) + out[6] = byte(x1 >> 16) + out[7] = byte(x1 >> 24) + + out[8] = byte(x2) + out[9] = byte(x2 >> 8) + out[10] = byte(x2 >> 16) + out[11] = byte(x2 >> 24) + + out[12] = byte(x3) + out[13] = byte(x3 >> 8) + out[14] = byte(x3 >> 16) + out[15] = byte(x3 >> 24) + + out[16] = byte(x4) + out[17] = byte(x4 >> 8) + out[18] = byte(x4 >> 16) + out[19] = byte(x4 >> 24) + + out[20] = byte(x5) + out[21] = byte(x5 >> 8) + out[22] = byte(x5 >> 16) + out[23] = byte(x5 >> 24) + + out[24] = byte(x6) + out[25] = byte(x6 >> 8) + out[26] = byte(x6 >> 16) + out[27] = byte(x6 >> 24) + + out[28] = byte(x7) + out[29] = byte(x7 >> 8) + out[30] = byte(x7 >> 16) + out[31] = byte(x7 >> 24) + + out[32] = byte(x8) + out[33] = byte(x8 >> 8) + out[34] = byte(x8 >> 16) + out[35] = byte(x8 >> 24) + + out[36] = byte(x9) + out[37] = byte(x9 >> 8) + out[38] = byte(x9 >> 16) + out[39] = byte(x9 >> 24) + + out[40] = byte(x10) + out[41] = byte(x10 >> 8) + out[42] = byte(x10 >> 16) + out[43] = byte(x10 >> 24) + + out[44] = byte(x11) + out[45] = byte(x11 >> 8) + out[46] = byte(x11 >> 16) + out[47] = byte(x11 >> 24) + + out[48] = byte(x12) + out[49] = byte(x12 >> 8) + out[50] = byte(x12 >> 16) + out[51] = byte(x12 >> 24) + + out[52] = byte(x13) + out[53] = byte(x13 >> 8) + out[54] = byte(x13 >> 16) + out[55] = byte(x13 >> 24) + + out[56] = byte(x14) + out[57] = byte(x14 >> 8) + out[58] = byte(x14 >> 16) + out[59] = byte(x14 >> 24) + + out[60] = byte(x15) + out[61] = byte(x15 >> 8) + out[62] = byte(x15 >> 16) + out[63] = byte(x15 >> 24) +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go new file mode 100644 index 00000000..903c7858 --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go @@ -0,0 +1,23 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!appengine,!gccgo + +package salsa + +// This function is implemented in salsa2020_amd64.s. + +//go:noescape + +func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) + +// XORKeyStream crypts bytes from in to out using the given key and counters. +// In and out may be the same slice but otherwise should not overlap. Counter +// contains the raw salsa20 counter bytes (both nonce and block counter). +func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { + if len(in) == 0 { + return + } + salsa2020XORKeyStream(&out[0], &in[0], uint64(len(in)), &counter[0], &key[0]) +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_ref.go b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_ref.go new file mode 100644 index 00000000..95f8ca5b --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_ref.go @@ -0,0 +1,234 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine gccgo + +package salsa + +const rounds = 20 + +// core applies the Salsa20 core function to 16-byte input in, 32-byte key k, +// and 16-byte constant c, and puts the result into 64-byte array out. +func core(out *[64]byte, in *[16]byte, k *[32]byte, c *[16]byte) { + j0 := uint32(c[0]) | uint32(c[1])<<8 | uint32(c[2])<<16 | uint32(c[3])<<24 + j1 := uint32(k[0]) | uint32(k[1])<<8 | uint32(k[2])<<16 | uint32(k[3])<<24 + j2 := uint32(k[4]) | uint32(k[5])<<8 | uint32(k[6])<<16 | uint32(k[7])<<24 + j3 := uint32(k[8]) | uint32(k[9])<<8 | uint32(k[10])<<16 | uint32(k[11])<<24 + j4 := uint32(k[12]) | uint32(k[13])<<8 | uint32(k[14])<<16 | uint32(k[15])<<24 + j5 := uint32(c[4]) | uint32(c[5])<<8 | uint32(c[6])<<16 | uint32(c[7])<<24 + j6 := uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 + j7 := uint32(in[4]) | uint32(in[5])<<8 | uint32(in[6])<<16 | uint32(in[7])<<24 + j8 := uint32(in[8]) | uint32(in[9])<<8 | uint32(in[10])<<16 | uint32(in[11])<<24 + j9 := uint32(in[12]) | uint32(in[13])<<8 | uint32(in[14])<<16 | uint32(in[15])<<24 + j10 := uint32(c[8]) | uint32(c[9])<<8 | uint32(c[10])<<16 | uint32(c[11])<<24 + j11 := uint32(k[16]) | uint32(k[17])<<8 | uint32(k[18])<<16 | uint32(k[19])<<24 + j12 := uint32(k[20]) | uint32(k[21])<<8 | uint32(k[22])<<16 | uint32(k[23])<<24 + j13 := uint32(k[24]) | uint32(k[25])<<8 | uint32(k[26])<<16 | uint32(k[27])<<24 + j14 := uint32(k[28]) | uint32(k[29])<<8 | uint32(k[30])<<16 | uint32(k[31])<<24 + j15 := uint32(c[12]) | uint32(c[13])<<8 | uint32(c[14])<<16 | uint32(c[15])<<24 + + x0, x1, x2, x3, x4, x5, x6, x7, x8 := j0, j1, j2, j3, j4, j5, j6, j7, j8 + x9, x10, x11, x12, x13, x14, x15 := j9, j10, j11, j12, j13, j14, j15 + + for i := 0; i < rounds; i += 2 { + u := x0 + x12 + x4 ^= u<<7 | u>>(32-7) + u = x4 + x0 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x4 + x12 ^= u<<13 | u>>(32-13) + u = x12 + x8 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x1 + x9 ^= u<<7 | u>>(32-7) + u = x9 + x5 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x9 + x1 ^= u<<13 | u>>(32-13) + u = x1 + x13 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x6 + x14 ^= u<<7 | u>>(32-7) + u = x14 + x10 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x14 + x6 ^= u<<13 | u>>(32-13) + u = x6 + x2 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x11 + x3 ^= u<<7 | u>>(32-7) + u = x3 + x15 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x3 + x11 ^= u<<13 | u>>(32-13) + u = x11 + x7 + x15 ^= u<<18 | u>>(32-18) + + u = x0 + x3 + x1 ^= u<<7 | u>>(32-7) + u = x1 + x0 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x1 + x3 ^= u<<13 | u>>(32-13) + u = x3 + x2 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x4 + x6 ^= u<<7 | u>>(32-7) + u = x6 + x5 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x6 + x4 ^= u<<13 | u>>(32-13) + u = x4 + x7 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x9 + x11 ^= u<<7 | u>>(32-7) + u = x11 + x10 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x11 + x9 ^= u<<13 | u>>(32-13) + u = x9 + x8 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x14 + x12 ^= u<<7 | u>>(32-7) + u = x12 + x15 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x12 + x14 ^= u<<13 | u>>(32-13) + u = x14 + x13 + x15 ^= u<<18 | u>>(32-18) + } + x0 += j0 + x1 += j1 + x2 += j2 + x3 += j3 + x4 += j4 + x5 += j5 + x6 += j6 + x7 += j7 + x8 += j8 + x9 += j9 + x10 += j10 + x11 += j11 + x12 += j12 + x13 += j13 + x14 += j14 + x15 += j15 + + out[0] = byte(x0) + out[1] = byte(x0 >> 8) + out[2] = byte(x0 >> 16) + out[3] = byte(x0 >> 24) + + out[4] = byte(x1) + out[5] = byte(x1 >> 8) + out[6] = byte(x1 >> 16) + out[7] = byte(x1 >> 24) + + out[8] = byte(x2) + out[9] = byte(x2 >> 8) + out[10] = byte(x2 >> 16) + out[11] = byte(x2 >> 24) + + out[12] = byte(x3) + out[13] = byte(x3 >> 8) + out[14] = byte(x3 >> 16) + out[15] = byte(x3 >> 24) + + out[16] = byte(x4) + out[17] = byte(x4 >> 8) + out[18] = byte(x4 >> 16) + out[19] = byte(x4 >> 24) + + out[20] = byte(x5) + out[21] = byte(x5 >> 8) + out[22] = byte(x5 >> 16) + out[23] = byte(x5 >> 24) + + out[24] = byte(x6) + out[25] = byte(x6 >> 8) + out[26] = byte(x6 >> 16) + out[27] = byte(x6 >> 24) + + out[28] = byte(x7) + out[29] = byte(x7 >> 8) + out[30] = byte(x7 >> 16) + out[31] = byte(x7 >> 24) + + out[32] = byte(x8) + out[33] = byte(x8 >> 8) + out[34] = byte(x8 >> 16) + out[35] = byte(x8 >> 24) + + out[36] = byte(x9) + out[37] = byte(x9 >> 8) + out[38] = byte(x9 >> 16) + out[39] = byte(x9 >> 24) + + out[40] = byte(x10) + out[41] = byte(x10 >> 8) + out[42] = byte(x10 >> 16) + out[43] = byte(x10 >> 24) + + out[44] = byte(x11) + out[45] = byte(x11 >> 8) + out[46] = byte(x11 >> 16) + out[47] = byte(x11 >> 24) + + out[48] = byte(x12) + out[49] = byte(x12 >> 8) + out[50] = byte(x12 >> 16) + out[51] = byte(x12 >> 24) + + out[52] = byte(x13) + out[53] = byte(x13 >> 8) + out[54] = byte(x13 >> 16) + out[55] = byte(x13 >> 24) + + out[56] = byte(x14) + out[57] = byte(x14 >> 8) + out[58] = byte(x14 >> 16) + out[59] = byte(x14 >> 24) + + out[60] = byte(x15) + out[61] = byte(x15 >> 8) + out[62] = byte(x15 >> 16) + out[63] = byte(x15 >> 24) +} + +// XORKeyStream crypts bytes from in to out using the given key and counters. +// In and out may be the same slice but otherwise should not overlap. Counter +// contains the raw salsa20 counter bytes (both nonce and block counter). +func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { + var block [64]byte + var counterCopy [16]byte + copy(counterCopy[:], counter[:]) + + for len(in) >= 64 { + core(&block, &counterCopy, key, &Sigma) + for i, x := range block { + out[i] = in[i] ^ x + } + u := uint32(1) + for i := 8; i < 16; i++ { + u += uint32(counterCopy[i]) + counterCopy[i] = byte(u) + u >>= 8 + } + in = in[64:] + out = out[64:] + } + + if len(in) > 0 { + core(&block, &counterCopy, key, &Sigma) + for i, v := range in { + out[i] = v ^ block[i] + } + } +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa_test.go b/vendor/golang.org/x/crypto/salsa20/salsa/salsa_test.go new file mode 100644 index 00000000..f8cecd9e --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa_test.go @@ -0,0 +1,35 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package salsa + +import "testing" + +func TestCore208(t *testing.T) { + in := [64]byte{ + 0x7e, 0x87, 0x9a, 0x21, 0x4f, 0x3e, 0xc9, 0x86, + 0x7c, 0xa9, 0x40, 0xe6, 0x41, 0x71, 0x8f, 0x26, + 0xba, 0xee, 0x55, 0x5b, 0x8c, 0x61, 0xc1, 0xb5, + 0x0d, 0xf8, 0x46, 0x11, 0x6d, 0xcd, 0x3b, 0x1d, + 0xee, 0x24, 0xf3, 0x19, 0xdf, 0x9b, 0x3d, 0x85, + 0x14, 0x12, 0x1e, 0x4b, 0x5a, 0xc5, 0xaa, 0x32, + 0x76, 0x02, 0x1d, 0x29, 0x09, 0xc7, 0x48, 0x29, + 0xed, 0xeb, 0xc6, 0x8d, 0xb8, 0xb8, 0xc2, 0x5e} + + out := [64]byte{ + 0xa4, 0x1f, 0x85, 0x9c, 0x66, 0x08, 0xcc, 0x99, + 0x3b, 0x81, 0xca, 0xcb, 0x02, 0x0c, 0xef, 0x05, + 0x04, 0x4b, 0x21, 0x81, 0xa2, 0xfd, 0x33, 0x7d, + 0xfd, 0x7b, 0x1c, 0x63, 0x96, 0x68, 0x2f, 0x29, + 0xb4, 0x39, 0x31, 0x68, 0xe3, 0xc9, 0xe6, 0xbc, + 0xfe, 0x6b, 0xc5, 0xb7, 0xa0, 0x6d, 0x96, 0xba, + 0xe4, 0x24, 0xcc, 0x10, 0x2c, 0x91, 0x74, 0x5c, + 0x24, 0xad, 0x67, 0x3d, 0xc7, 0x61, 0x8f, 0x81, + } + + Core208(&in, &in) + if in != out { + t.Errorf("expected %x, got %x", out, in) + } +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa20.go b/vendor/golang.org/x/crypto/salsa20/salsa20.go new file mode 100644 index 00000000..fde9846b --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa20.go @@ -0,0 +1,54 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package salsa20 implements the Salsa20 stream cipher as specified in http://cr.yp.to/snuffle/spec.pdf. + +Salsa20 differs from many other stream ciphers in that it is message orientated +rather than byte orientated. Keystream blocks are not preserved between calls, +therefore each side must encrypt/decrypt data with the same segmentation. + +Another aspect of this difference is that part of the counter is exposed as +an nonce in each call. Encrypting two different messages with the same (key, +nonce) pair leads to trivial plaintext recovery. This is analogous to +encrypting two different messages with the same key with a traditional stream +cipher. + +This package also implements XSalsa20: a version of Salsa20 with a 24-byte +nonce as specified in http://cr.yp.to/snuffle/xsalsa-20081128.pdf. Simply +passing a 24-byte slice as the nonce triggers XSalsa20. +*/ +package salsa20 // import "golang.org/x/crypto/salsa20" + +// TODO(agl): implement XORKeyStream12 and XORKeyStream8 - the reduced round variants of Salsa20. + +import ( + "golang.org/x/crypto/salsa20/salsa" +) + +// XORKeyStream crypts bytes from in to out using the given key and nonce. In +// and out may be the same slice but otherwise should not overlap. Nonce must +// be either 8 or 24 bytes long. +func XORKeyStream(out, in []byte, nonce []byte, key *[32]byte) { + if len(out) < len(in) { + in = in[:len(out)] + } + + var subNonce [16]byte + + if len(nonce) == 24 { + var subKey [32]byte + var hNonce [16]byte + copy(hNonce[:], nonce[:16]) + salsa.HSalsa20(&subKey, &hNonce, key, &salsa.Sigma) + copy(subNonce[:], nonce[16:]) + key = &subKey + } else if len(nonce) == 8 { + copy(subNonce[:], nonce[:]) + } else { + panic("salsa20: nonce must be 8 or 24 bytes") + } + + salsa.XORKeyStream(out, in, &subNonce, key) +} diff --git a/vendor/golang.org/x/crypto/salsa20/salsa20_test.go b/vendor/golang.org/x/crypto/salsa20/salsa20_test.go new file mode 100644 index 00000000..0ef3328e --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa20_test.go @@ -0,0 +1,139 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package salsa20 + +import ( + "bytes" + "encoding/hex" + "testing" +) + +func fromHex(s string) []byte { + ret, err := hex.DecodeString(s) + if err != nil { + panic(err) + } + return ret +} + +// testVectors was taken from set 6 of the ECRYPT test vectors: +// http://www.ecrypt.eu.org/stream/svn/viewcvs.cgi/ecrypt/trunk/submissions/salsa20/full/verified.test-vectors?logsort=rev&rev=210&view=markup +var testVectors = []struct { + key []byte + iv []byte + numBytes int + xor []byte +}{ + { + fromHex("0053A6F94C9FF24598EB3E91E4378ADD3083D6297CCF2275C81B6EC11467BA0D"), + fromHex("0D74DB42A91077DE"), + 131072, + fromHex("C349B6A51A3EC9B712EAED3F90D8BCEE69B7628645F251A996F55260C62EF31FD6C6B0AEA94E136C9D984AD2DF3578F78E457527B03A0450580DD874F63B1AB9"), + }, + { + fromHex("0558ABFE51A4F74A9DF04396E93C8FE23588DB2E81D4277ACD2073C6196CBF12"), + fromHex("167DE44BB21980E7"), + 131072, + fromHex("C3EAAF32836BACE32D04E1124231EF47E101367D6305413A0EEB07C60698A2876E4D031870A739D6FFDDD208597AFF0A47AC17EDB0167DD67EBA84F1883D4DFD"), + }, + { + fromHex("0A5DB00356A9FC4FA2F5489BEE4194E73A8DE03386D92C7FD22578CB1E71C417"), + fromHex("1F86ED54BB2289F0"), + 131072, + fromHex("3CD23C3DC90201ACC0CF49B440B6C417F0DC8D8410A716D5314C059E14B1A8D9A9FB8EA3D9C8DAE12B21402F674AA95C67B1FC514E994C9D3F3A6E41DFF5BBA6"), + }, + { + fromHex("0F62B5085BAE0154A7FA4DA0F34699EC3F92E5388BDE3184D72A7DD02376C91C"), + fromHex("288FF65DC42B92F9"), + 131072, + fromHex("E00EBCCD70D69152725F9987982178A2E2E139C7BCBE04CA8A0E99E318D9AB76F988C8549F75ADD790BA4F81C176DA653C1A043F11A958E169B6D2319F4EEC1A"), + }, +} + +func TestSalsa20(t *testing.T) { + var inBuf, outBuf []byte + var key [32]byte + + for i, test := range testVectors { + if test.numBytes%64 != 0 { + t.Errorf("#%d: numBytes is not a multiple of 64", i) + continue + } + + if test.numBytes > len(inBuf) { + inBuf = make([]byte, test.numBytes) + outBuf = make([]byte, test.numBytes) + } + in := inBuf[:test.numBytes] + out := outBuf[:test.numBytes] + copy(key[:], test.key) + XORKeyStream(out, in, test.iv, &key) + + var xor [64]byte + for len(out) > 0 { + for i := 0; i < 64; i++ { + xor[i] ^= out[i] + } + out = out[64:] + } + + if !bytes.Equal(xor[:], test.xor) { + t.Errorf("#%d: bad result", i) + } + } +} + +var xSalsa20TestData = []struct { + in, nonce, key, out []byte +}{ + { + []byte("Hello world!"), + []byte("24-byte nonce for xsalsa"), + []byte("this is 32-byte key for xsalsa20"), + []byte{0x00, 0x2d, 0x45, 0x13, 0x84, 0x3f, 0xc2, 0x40, 0xc4, 0x01, 0xe5, 0x41}, + }, + { + make([]byte, 64), + []byte("24-byte nonce for xsalsa"), + []byte("this is 32-byte key for xsalsa20"), + []byte{0x48, 0x48, 0x29, 0x7f, 0xeb, 0x1f, 0xb5, 0x2f, 0xb6, + 0x6d, 0x81, 0x60, 0x9b, 0xd5, 0x47, 0xfa, 0xbc, 0xbe, 0x70, + 0x26, 0xed, 0xc8, 0xb5, 0xe5, 0xe4, 0x49, 0xd0, 0x88, 0xbf, + 0xa6, 0x9c, 0x08, 0x8f, 0x5d, 0x8d, 0xa1, 0xd7, 0x91, 0x26, + 0x7c, 0x2c, 0x19, 0x5a, 0x7f, 0x8c, 0xae, 0x9c, 0x4b, 0x40, + 0x50, 0xd0, 0x8c, 0xe6, 0xd3, 0xa1, 0x51, 0xec, 0x26, 0x5f, + 0x3a, 0x58, 0xe4, 0x76, 0x48}, + }, +} + +func TestXSalsa20(t *testing.T) { + var key [32]byte + + for i, test := range xSalsa20TestData { + out := make([]byte, len(test.in)) + copy(key[:], test.key) + XORKeyStream(out, test.in, test.nonce, &key) + if !bytes.Equal(out, test.out) { + t.Errorf("%d: expected %x, got %x", i, test.out, out) + } + } +} + +var ( + keyArray [32]byte + key = &keyArray + nonce [8]byte + msg = make([]byte, 1<<10) +) + +func BenchmarkXOR1K(b *testing.B) { + b.StopTimer() + out := make([]byte, 1024) + b.StartTimer() + for i := 0; i < b.N; i++ { + XORKeyStream(out, msg[:1024], nonce[:], key) + } + b.SetBytes(1024) +} diff --git a/vendor/golang.org/x/crypto/scrypt/scrypt.go b/vendor/golang.org/x/crypto/scrypt/scrypt.go new file mode 100644 index 00000000..7455395c --- /dev/null +++ b/vendor/golang.org/x/crypto/scrypt/scrypt.go @@ -0,0 +1,243 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package scrypt implements the scrypt key derivation function as defined in +// Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard +// Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf). +package scrypt // import "golang.org/x/crypto/scrypt" + +import ( + "crypto/sha256" + "errors" + + "golang.org/x/crypto/pbkdf2" +) + +const maxInt = int(^uint(0) >> 1) + +// blockCopy copies n numbers from src into dst. +func blockCopy(dst, src []uint32, n int) { + copy(dst, src[:n]) +} + +// blockXOR XORs numbers from dst with n numbers from src. +func blockXOR(dst, src []uint32, n int) { + for i, v := range src[:n] { + dst[i] ^= v + } +} + +// salsaXOR applies Salsa20/8 to the XOR of 16 numbers from tmp and in, +// and puts the result into both both tmp and out. +func salsaXOR(tmp *[16]uint32, in, out []uint32) { + w0 := tmp[0] ^ in[0] + w1 := tmp[1] ^ in[1] + w2 := tmp[2] ^ in[2] + w3 := tmp[3] ^ in[3] + w4 := tmp[4] ^ in[4] + w5 := tmp[5] ^ in[5] + w6 := tmp[6] ^ in[6] + w7 := tmp[7] ^ in[7] + w8 := tmp[8] ^ in[8] + w9 := tmp[9] ^ in[9] + w10 := tmp[10] ^ in[10] + w11 := tmp[11] ^ in[11] + w12 := tmp[12] ^ in[12] + w13 := tmp[13] ^ in[13] + w14 := tmp[14] ^ in[14] + w15 := tmp[15] ^ in[15] + + x0, x1, x2, x3, x4, x5, x6, x7, x8 := w0, w1, w2, w3, w4, w5, w6, w7, w8 + x9, x10, x11, x12, x13, x14, x15 := w9, w10, w11, w12, w13, w14, w15 + + for i := 0; i < 8; i += 2 { + u := x0 + x12 + x4 ^= u<<7 | u>>(32-7) + u = x4 + x0 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x4 + x12 ^= u<<13 | u>>(32-13) + u = x12 + x8 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x1 + x9 ^= u<<7 | u>>(32-7) + u = x9 + x5 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x9 + x1 ^= u<<13 | u>>(32-13) + u = x1 + x13 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x6 + x14 ^= u<<7 | u>>(32-7) + u = x14 + x10 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x14 + x6 ^= u<<13 | u>>(32-13) + u = x6 + x2 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x11 + x3 ^= u<<7 | u>>(32-7) + u = x3 + x15 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x3 + x11 ^= u<<13 | u>>(32-13) + u = x11 + x7 + x15 ^= u<<18 | u>>(32-18) + + u = x0 + x3 + x1 ^= u<<7 | u>>(32-7) + u = x1 + x0 + x2 ^= u<<9 | u>>(32-9) + u = x2 + x1 + x3 ^= u<<13 | u>>(32-13) + u = x3 + x2 + x0 ^= u<<18 | u>>(32-18) + + u = x5 + x4 + x6 ^= u<<7 | u>>(32-7) + u = x6 + x5 + x7 ^= u<<9 | u>>(32-9) + u = x7 + x6 + x4 ^= u<<13 | u>>(32-13) + u = x4 + x7 + x5 ^= u<<18 | u>>(32-18) + + u = x10 + x9 + x11 ^= u<<7 | u>>(32-7) + u = x11 + x10 + x8 ^= u<<9 | u>>(32-9) + u = x8 + x11 + x9 ^= u<<13 | u>>(32-13) + u = x9 + x8 + x10 ^= u<<18 | u>>(32-18) + + u = x15 + x14 + x12 ^= u<<7 | u>>(32-7) + u = x12 + x15 + x13 ^= u<<9 | u>>(32-9) + u = x13 + x12 + x14 ^= u<<13 | u>>(32-13) + u = x14 + x13 + x15 ^= u<<18 | u>>(32-18) + } + x0 += w0 + x1 += w1 + x2 += w2 + x3 += w3 + x4 += w4 + x5 += w5 + x6 += w6 + x7 += w7 + x8 += w8 + x9 += w9 + x10 += w10 + x11 += w11 + x12 += w12 + x13 += w13 + x14 += w14 + x15 += w15 + + out[0], tmp[0] = x0, x0 + out[1], tmp[1] = x1, x1 + out[2], tmp[2] = x2, x2 + out[3], tmp[3] = x3, x3 + out[4], tmp[4] = x4, x4 + out[5], tmp[5] = x5, x5 + out[6], tmp[6] = x6, x6 + out[7], tmp[7] = x7, x7 + out[8], tmp[8] = x8, x8 + out[9], tmp[9] = x9, x9 + out[10], tmp[10] = x10, x10 + out[11], tmp[11] = x11, x11 + out[12], tmp[12] = x12, x12 + out[13], tmp[13] = x13, x13 + out[14], tmp[14] = x14, x14 + out[15], tmp[15] = x15, x15 +} + +func blockMix(tmp *[16]uint32, in, out []uint32, r int) { + blockCopy(tmp[:], in[(2*r-1)*16:], 16) + for i := 0; i < 2*r; i += 2 { + salsaXOR(tmp, in[i*16:], out[i*8:]) + salsaXOR(tmp, in[i*16+16:], out[i*8+r*16:]) + } +} + +func integer(b []uint32, r int) uint64 { + j := (2*r - 1) * 16 + return uint64(b[j]) | uint64(b[j+1])<<32 +} + +func smix(b []byte, r, N int, v, xy []uint32) { + var tmp [16]uint32 + x := xy + y := xy[32*r:] + + j := 0 + for i := 0; i < 32*r; i++ { + x[i] = uint32(b[j]) | uint32(b[j+1])<<8 | uint32(b[j+2])<<16 | uint32(b[j+3])<<24 + j += 4 + } + for i := 0; i < N; i += 2 { + blockCopy(v[i*(32*r):], x, 32*r) + blockMix(&tmp, x, y, r) + + blockCopy(v[(i+1)*(32*r):], y, 32*r) + blockMix(&tmp, y, x, r) + } + for i := 0; i < N; i += 2 { + j := int(integer(x, r) & uint64(N-1)) + blockXOR(x, v[j*(32*r):], 32*r) + blockMix(&tmp, x, y, r) + + j = int(integer(y, r) & uint64(N-1)) + blockXOR(y, v[j*(32*r):], 32*r) + blockMix(&tmp, y, x, r) + } + j = 0 + for _, v := range x[:32*r] { + b[j+0] = byte(v >> 0) + b[j+1] = byte(v >> 8) + b[j+2] = byte(v >> 16) + b[j+3] = byte(v >> 24) + j += 4 + } +} + +// Key derives a key from the password, salt, and cost parameters, returning +// a byte slice of length keyLen that can be used as cryptographic key. +// +// N is a CPU/memory cost parameter, which must be a power of two greater than 1. +// r and p must satisfy r * p < 2³â°. If the parameters do not satisfy the +// limits, the function returns a nil byte slice and an error. +// +// For example, you can get a derived key for e.g. AES-256 (which needs a +// 32-byte key) by doing: +// +// dk, err := scrypt.Key([]byte("some password"), salt, 16384, 8, 1, 32) +// +// The recommended parameters for interactive logins as of 2009 are N=16384, +// r=8, p=1. They should be increased as memory latency and CPU parallelism +// increases. Remember to get a good random salt. +func Key(password, salt []byte, N, r, p, keyLen int) ([]byte, error) { + if N <= 1 || N&(N-1) != 0 { + return nil, errors.New("scrypt: N must be > 1 and a power of 2") + } + if uint64(r)*uint64(p) >= 1<<30 || r > maxInt/128/p || r > maxInt/256 || N > maxInt/128/r { + return nil, errors.New("scrypt: parameters are too large") + } + + xy := make([]uint32, 64*r) + v := make([]uint32, 32*N*r) + b := pbkdf2.Key(password, salt, 1, p*128*r, sha256.New) + + for i := 0; i < p; i++ { + smix(b[i*128*r:], r, N, v, xy) + } + + return pbkdf2.Key(password, b, 1, keyLen, sha256.New), nil +} diff --git a/vendor/golang.org/x/crypto/scrypt/scrypt_test.go b/vendor/golang.org/x/crypto/scrypt/scrypt_test.go new file mode 100644 index 00000000..e096c3a3 --- /dev/null +++ b/vendor/golang.org/x/crypto/scrypt/scrypt_test.go @@ -0,0 +1,160 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package scrypt + +import ( + "bytes" + "testing" +) + +type testVector struct { + password string + salt string + N, r, p int + output []byte +} + +var good = []testVector{ + { + "password", + "salt", + 2, 10, 10, + []byte{ + 0x48, 0x2c, 0x85, 0x8e, 0x22, 0x90, 0x55, 0xe6, 0x2f, + 0x41, 0xe0, 0xec, 0x81, 0x9a, 0x5e, 0xe1, 0x8b, 0xdb, + 0x87, 0x25, 0x1a, 0x53, 0x4f, 0x75, 0xac, 0xd9, 0x5a, + 0xc5, 0xe5, 0xa, 0xa1, 0x5f, + }, + }, + { + "password", + "salt", + 16, 100, 100, + []byte{ + 0x88, 0xbd, 0x5e, 0xdb, 0x52, 0xd1, 0xdd, 0x0, 0x18, + 0x87, 0x72, 0xad, 0x36, 0x17, 0x12, 0x90, 0x22, 0x4e, + 0x74, 0x82, 0x95, 0x25, 0xb1, 0x8d, 0x73, 0x23, 0xa5, + 0x7f, 0x91, 0x96, 0x3c, 0x37, + }, + }, + { + "this is a long \000 password", + "and this is a long \000 salt", + 16384, 8, 1, + []byte{ + 0xc3, 0xf1, 0x82, 0xee, 0x2d, 0xec, 0x84, 0x6e, 0x70, + 0xa6, 0x94, 0x2f, 0xb5, 0x29, 0x98, 0x5a, 0x3a, 0x09, + 0x76, 0x5e, 0xf0, 0x4c, 0x61, 0x29, 0x23, 0xb1, 0x7f, + 0x18, 0x55, 0x5a, 0x37, 0x07, 0x6d, 0xeb, 0x2b, 0x98, + 0x30, 0xd6, 0x9d, 0xe5, 0x49, 0x26, 0x51, 0xe4, 0x50, + 0x6a, 0xe5, 0x77, 0x6d, 0x96, 0xd4, 0x0f, 0x67, 0xaa, + 0xee, 0x37, 0xe1, 0x77, 0x7b, 0x8a, 0xd5, 0xc3, 0x11, + 0x14, 0x32, 0xbb, 0x3b, 0x6f, 0x7e, 0x12, 0x64, 0x40, + 0x18, 0x79, 0xe6, 0x41, 0xae, + }, + }, + { + "p", + "s", + 2, 1, 1, + []byte{ + 0x48, 0xb0, 0xd2, 0xa8, 0xa3, 0x27, 0x26, 0x11, 0x98, + 0x4c, 0x50, 0xeb, 0xd6, 0x30, 0xaf, 0x52, + }, + }, + + { + "", + "", + 16, 1, 1, + []byte{ + 0x77, 0xd6, 0x57, 0x62, 0x38, 0x65, 0x7b, 0x20, 0x3b, + 0x19, 0xca, 0x42, 0xc1, 0x8a, 0x04, 0x97, 0xf1, 0x6b, + 0x48, 0x44, 0xe3, 0x07, 0x4a, 0xe8, 0xdf, 0xdf, 0xfa, + 0x3f, 0xed, 0xe2, 0x14, 0x42, 0xfc, 0xd0, 0x06, 0x9d, + 0xed, 0x09, 0x48, 0xf8, 0x32, 0x6a, 0x75, 0x3a, 0x0f, + 0xc8, 0x1f, 0x17, 0xe8, 0xd3, 0xe0, 0xfb, 0x2e, 0x0d, + 0x36, 0x28, 0xcf, 0x35, 0xe2, 0x0c, 0x38, 0xd1, 0x89, + 0x06, + }, + }, + { + "password", + "NaCl", + 1024, 8, 16, + []byte{ + 0xfd, 0xba, 0xbe, 0x1c, 0x9d, 0x34, 0x72, 0x00, 0x78, + 0x56, 0xe7, 0x19, 0x0d, 0x01, 0xe9, 0xfe, 0x7c, 0x6a, + 0xd7, 0xcb, 0xc8, 0x23, 0x78, 0x30, 0xe7, 0x73, 0x76, + 0x63, 0x4b, 0x37, 0x31, 0x62, 0x2e, 0xaf, 0x30, 0xd9, + 0x2e, 0x22, 0xa3, 0x88, 0x6f, 0xf1, 0x09, 0x27, 0x9d, + 0x98, 0x30, 0xda, 0xc7, 0x27, 0xaf, 0xb9, 0x4a, 0x83, + 0xee, 0x6d, 0x83, 0x60, 0xcb, 0xdf, 0xa2, 0xcc, 0x06, + 0x40, + }, + }, + { + "pleaseletmein", "SodiumChloride", + 16384, 8, 1, + []byte{ + 0x70, 0x23, 0xbd, 0xcb, 0x3a, 0xfd, 0x73, 0x48, 0x46, + 0x1c, 0x06, 0xcd, 0x81, 0xfd, 0x38, 0xeb, 0xfd, 0xa8, + 0xfb, 0xba, 0x90, 0x4f, 0x8e, 0x3e, 0xa9, 0xb5, 0x43, + 0xf6, 0x54, 0x5d, 0xa1, 0xf2, 0xd5, 0x43, 0x29, 0x55, + 0x61, 0x3f, 0x0f, 0xcf, 0x62, 0xd4, 0x97, 0x05, 0x24, + 0x2a, 0x9a, 0xf9, 0xe6, 0x1e, 0x85, 0xdc, 0x0d, 0x65, + 0x1e, 0x40, 0xdf, 0xcf, 0x01, 0x7b, 0x45, 0x57, 0x58, + 0x87, + }, + }, + /* + // Disabled: needs 1 GiB RAM and takes too long for a simple test. + { + "pleaseletmein", "SodiumChloride", + 1048576, 8, 1, + []byte{ + 0x21, 0x01, 0xcb, 0x9b, 0x6a, 0x51, 0x1a, 0xae, 0xad, + 0xdb, 0xbe, 0x09, 0xcf, 0x70, 0xf8, 0x81, 0xec, 0x56, + 0x8d, 0x57, 0x4a, 0x2f, 0xfd, 0x4d, 0xab, 0xe5, 0xee, + 0x98, 0x20, 0xad, 0xaa, 0x47, 0x8e, 0x56, 0xfd, 0x8f, + 0x4b, 0xa5, 0xd0, 0x9f, 0xfa, 0x1c, 0x6d, 0x92, 0x7c, + 0x40, 0xf4, 0xc3, 0x37, 0x30, 0x40, 0x49, 0xe8, 0xa9, + 0x52, 0xfb, 0xcb, 0xf4, 0x5c, 0x6f, 0xa7, 0x7a, 0x41, + 0xa4, + }, + }, + */ +} + +var bad = []testVector{ + {"p", "s", 0, 1, 1, nil}, // N == 0 + {"p", "s", 1, 1, 1, nil}, // N == 1 + {"p", "s", 7, 8, 1, nil}, // N is not power of 2 + {"p", "s", 16, maxInt / 2, maxInt / 2, nil}, // p * r too large +} + +func TestKey(t *testing.T) { + for i, v := range good { + k, err := Key([]byte(v.password), []byte(v.salt), v.N, v.r, v.p, len(v.output)) + if err != nil { + t.Errorf("%d: got unexpected error: %s", i, err) + } + if !bytes.Equal(k, v.output) { + t.Errorf("%d: expected %x, got %x", i, v.output, k) + } + } + for i, v := range bad { + _, err := Key([]byte(v.password), []byte(v.salt), v.N, v.r, v.p, 32) + if err == nil { + t.Errorf("%d: expected error, got nil", i) + } + } +} + +func BenchmarkKey(b *testing.B) { + for i := 0; i < b.N; i++ { + Key([]byte("password"), []byte("salt"), 16384, 8, 1, 64) + } +} diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go new file mode 100644 index 00000000..a0ee3ae7 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/doc.go @@ -0,0 +1,66 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package sha3 implements the SHA-3 fixed-output-length hash functions and +// the SHAKE variable-output-length hash functions defined by FIPS-202. +// +// Both types of hash function use the "sponge" construction and the Keccak +// permutation. For a detailed specification see http://keccak.noekeon.org/ +// +// +// Guidance +// +// If you aren't sure what function you need, use SHAKE256 with at least 64 +// bytes of output. The SHAKE instances are faster than the SHA3 instances; +// the latter have to allocate memory to conform to the hash.Hash interface. +// +// If you need a secret-key MAC (message authentication code), prepend the +// secret key to the input, hash with SHAKE256 and read at least 32 bytes of +// output. +// +// +// Security strengths +// +// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security +// strength against preimage attacks of x bits. Since they only produce "x" +// bits of output, their collision-resistance is only "x/2" bits. +// +// The SHAKE-256 and -128 functions have a generic security strength of 256 and +// 128 bits against all attacks, provided that at least 2x bits of their output +// is used. Requesting more than 64 or 32 bytes of output, respectively, does +// not increase the collision-resistance of the SHAKE functions. +// +// +// The sponge construction +// +// A sponge builds a pseudo-random function from a public pseudo-random +// permutation, by applying the permutation to a state of "rate + capacity" +// bytes, but hiding "capacity" of the bytes. +// +// A sponge starts out with a zero state. To hash an input using a sponge, up +// to "rate" bytes of the input are XORed into the sponge's state. The sponge +// is then "full" and the permutation is applied to "empty" it. This process is +// repeated until all the input has been "absorbed". The input is then padded. +// The digest is "squeezed" from the sponge in the same way, except that output +// output is copied out instead of input being XORed in. +// +// A sponge is parameterized by its generic security strength, which is equal +// to half its capacity; capacity + rate is equal to the permutation's width. +// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means +// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. +// +// +// Recommendations +// +// The SHAKE functions are recommended for most new uses. They can produce +// output of arbitrary length. SHAKE256, with an output length of at least +// 64 bytes, provides 256-bit security against all attacks. The Keccak team +// recommends it for most applications upgrading from SHA2-512. (NIST chose a +// much stronger, but much slower, sponge instance for SHA3-512.) +// +// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. +// They produce output of the same length, with the same security strengths +// against all attacks. This means, in particular, that SHA3-256 only has +// 128-bit collision resistance, because its output length is 32 bytes. +package sha3 // import "golang.org/x/crypto/sha3" diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go new file mode 100644 index 00000000..2b51cf4e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/hashes.go @@ -0,0 +1,65 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file provides functions for creating instances of the SHA-3 +// and SHAKE hash functions, as well as utility functions for hashing +// bytes. + +import ( + "hash" +) + +// New224 creates a new SHA3-224 hash. +// Its generic security strength is 224 bits against preimage attacks, +// and 112 bits against collision attacks. +func New224() hash.Hash { return &state{rate: 144, outputLen: 28, dsbyte: 0x06} } + +// New256 creates a new SHA3-256 hash. +// Its generic security strength is 256 bits against preimage attacks, +// and 128 bits against collision attacks. +func New256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x06} } + +// New384 creates a new SHA3-384 hash. +// Its generic security strength is 384 bits against preimage attacks, +// and 192 bits against collision attacks. +func New384() hash.Hash { return &state{rate: 104, outputLen: 48, dsbyte: 0x06} } + +// New512 creates a new SHA3-512 hash. +// Its generic security strength is 512 bits against preimage attacks, +// and 256 bits against collision attacks. +func New512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} } + +// Sum224 returns the SHA3-224 digest of the data. +func Sum224(data []byte) (digest [28]byte) { + h := New224() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum256 returns the SHA3-256 digest of the data. +func Sum256(data []byte) (digest [32]byte) { + h := New256() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum384 returns the SHA3-384 digest of the data. +func Sum384(data []byte) (digest [48]byte) { + h := New384() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum512 returns the SHA3-512 digest of the data. +func Sum512(data []byte) (digest [64]byte) { + h := New512() + h.Write(data) + h.Sum(digest[:0]) + return +} diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/keccakf.go new file mode 100644 index 00000000..46d03ed3 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf.go @@ -0,0 +1,412 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64 appengine gccgo + +package sha3 + +// rc stores the round constants for use in the ι step. +var rc = [24]uint64{ + 0x0000000000000001, + 0x0000000000008082, + 0x800000000000808A, + 0x8000000080008000, + 0x000000000000808B, + 0x0000000080000001, + 0x8000000080008081, + 0x8000000000008009, + 0x000000000000008A, + 0x0000000000000088, + 0x0000000080008009, + 0x000000008000000A, + 0x000000008000808B, + 0x800000000000008B, + 0x8000000000008089, + 0x8000000000008003, + 0x8000000000008002, + 0x8000000000000080, + 0x000000000000800A, + 0x800000008000000A, + 0x8000000080008081, + 0x8000000000008080, + 0x0000000080000001, + 0x8000000080008008, +} + +// keccakF1600 applies the Keccak permutation to a 1600b-wide +// state represented as a slice of 25 uint64s. +func keccakF1600(a *[25]uint64) { + // Implementation translated from Keccak-inplace.c + // in the keccak reference code. + var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 + + for i := 0; i < 24; i += 4 { + // Combines the 5 steps in each round into 2 steps. + // Unrolls 4 rounds per loop and spreads some steps across rounds. + + // Round 1 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[6] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[12] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[18] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[24] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i] + a[6] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[16] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[22] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[3] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[10] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[1] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[7] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[19] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[20] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[11] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[23] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[4] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[5] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[2] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[8] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[14] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[15] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + // Round 2 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[16] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[7] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[23] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[14] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1] + a[16] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[11] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[2] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[18] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[20] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[6] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[22] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[4] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[15] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[1] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[8] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[24] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[10] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[12] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[3] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[19] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[5] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + // Round 3 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[11] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[22] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[8] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[19] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2] + a[11] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[1] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[12] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[23] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[15] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[16] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[2] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[24] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[5] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[6] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[3] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[14] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[20] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[7] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[18] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[4] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[10] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + // Round 4 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[1] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[2] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[3] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[4] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3] + a[1] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[6] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[7] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[8] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[5] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[11] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[12] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[14] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[10] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[16] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[18] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[19] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[15] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[22] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[23] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[24] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[20] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + } +} diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go new file mode 100644 index 00000000..78867958 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go @@ -0,0 +1,13 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!appengine,!gccgo + +package sha3 + +// This function is implemented in keccakf_amd64.s. + +//go:noescape + +func keccakF1600(a *[25]uint64) diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s new file mode 100644 index 00000000..a3533517 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s @@ -0,0 +1,392 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!appengine,!gccgo + +// This code was translated into a form compatible with 6a from the public +// domain sources at https://github.com/gvanas/KeccakCodePackage + +// Offsets in state +#define _ba (0*8) +#define _be (1*8) +#define _bi (2*8) +#define _bo (3*8) +#define _bu (4*8) +#define _ga (5*8) +#define _ge (6*8) +#define _gi (7*8) +#define _go (8*8) +#define _gu (9*8) +#define _ka (10*8) +#define _ke (11*8) +#define _ki (12*8) +#define _ko (13*8) +#define _ku (14*8) +#define _ma (15*8) +#define _me (16*8) +#define _mi (17*8) +#define _mo (18*8) +#define _mu (19*8) +#define _sa (20*8) +#define _se (21*8) +#define _si (22*8) +#define _so (23*8) +#define _su (24*8) + +// Temporary registers +#define rT1 AX + +// Round vars +#define rpState DI +#define rpStack SP + +#define rDa BX +#define rDe CX +#define rDi DX +#define rDo R8 +#define rDu R9 + +#define rBa R10 +#define rBe R11 +#define rBi R12 +#define rBo R13 +#define rBu R14 + +#define rCa SI +#define rCe BP +#define rCi rBi +#define rCo rBo +#define rCu R15 + +#define MOVQ_RBI_RCE MOVQ rBi, rCe +#define XORQ_RT1_RCA XORQ rT1, rCa +#define XORQ_RT1_RCE XORQ rT1, rCe +#define XORQ_RBA_RCU XORQ rBa, rCu +#define XORQ_RBE_RCU XORQ rBe, rCu +#define XORQ_RDU_RCU XORQ rDu, rCu +#define XORQ_RDA_RCA XORQ rDa, rCa +#define XORQ_RDE_RCE XORQ rDe, rCe + +#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ + /* Prepare round */ \ + MOVQ rCe, rDa; \ + ROLQ $1, rDa; \ + \ + MOVQ _bi(iState), rCi; \ + XORQ _gi(iState), rDi; \ + XORQ rCu, rDa; \ + XORQ _ki(iState), rCi; \ + XORQ _mi(iState), rDi; \ + XORQ rDi, rCi; \ + \ + MOVQ rCi, rDe; \ + ROLQ $1, rDe; \ + \ + MOVQ _bo(iState), rCo; \ + XORQ _go(iState), rDo; \ + XORQ rCa, rDe; \ + XORQ _ko(iState), rCo; \ + XORQ _mo(iState), rDo; \ + XORQ rDo, rCo; \ + \ + MOVQ rCo, rDi; \ + ROLQ $1, rDi; \ + \ + MOVQ rCu, rDo; \ + XORQ rCe, rDi; \ + ROLQ $1, rDo; \ + \ + MOVQ rCa, rDu; \ + XORQ rCi, rDo; \ + ROLQ $1, rDu; \ + \ + /* Result b */ \ + MOVQ _ba(iState), rBa; \ + MOVQ _ge(iState), rBe; \ + XORQ rCo, rDu; \ + MOVQ _ki(iState), rBi; \ + MOVQ _mo(iState), rBo; \ + MOVQ _su(iState), rBu; \ + XORQ rDe, rBe; \ + ROLQ $44, rBe; \ + XORQ rDi, rBi; \ + XORQ rDa, rBa; \ + ROLQ $43, rBi; \ + \ + MOVQ rBe, rCa; \ + MOVQ rc, rT1; \ + ORQ rBi, rCa; \ + XORQ rBa, rT1; \ + XORQ rT1, rCa; \ + MOVQ rCa, _ba(oState); \ + \ + XORQ rDu, rBu; \ + ROLQ $14, rBu; \ + MOVQ rBa, rCu; \ + ANDQ rBe, rCu; \ + XORQ rBu, rCu; \ + MOVQ rCu, _bu(oState); \ + \ + XORQ rDo, rBo; \ + ROLQ $21, rBo; \ + MOVQ rBo, rT1; \ + ANDQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _bi(oState); \ + \ + NOTQ rBi; \ + ORQ rBa, rBu; \ + ORQ rBo, rBi; \ + XORQ rBo, rBu; \ + XORQ rBe, rBi; \ + MOVQ rBu, _bo(oState); \ + MOVQ rBi, _be(oState); \ + B_RBI_RCE; \ + \ + /* Result g */ \ + MOVQ _gu(iState), rBe; \ + XORQ rDu, rBe; \ + MOVQ _ka(iState), rBi; \ + ROLQ $20, rBe; \ + XORQ rDa, rBi; \ + ROLQ $3, rBi; \ + MOVQ _bo(iState), rBa; \ + MOVQ rBe, rT1; \ + ORQ rBi, rT1; \ + XORQ rDo, rBa; \ + MOVQ _me(iState), rBo; \ + MOVQ _si(iState), rBu; \ + ROLQ $28, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ga(oState); \ + G_RT1_RCA; \ + \ + XORQ rDe, rBo; \ + ROLQ $45, rBo; \ + MOVQ rBi, rT1; \ + ANDQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _ge(oState); \ + G_RT1_RCE; \ + \ + XORQ rDi, rBu; \ + ROLQ $61, rBu; \ + MOVQ rBu, rT1; \ + ORQ rBa, rT1; \ + XORQ rBo, rT1; \ + MOVQ rT1, _go(oState); \ + \ + ANDQ rBe, rBa; \ + XORQ rBu, rBa; \ + MOVQ rBa, _gu(oState); \ + NOTQ rBu; \ + G_RBA_RCU; \ + \ + ORQ rBu, rBo; \ + XORQ rBi, rBo; \ + MOVQ rBo, _gi(oState); \ + \ + /* Result k */ \ + MOVQ _be(iState), rBa; \ + MOVQ _gi(iState), rBe; \ + MOVQ _ko(iState), rBi; \ + MOVQ _mu(iState), rBo; \ + MOVQ _sa(iState), rBu; \ + XORQ rDi, rBe; \ + ROLQ $6, rBe; \ + XORQ rDo, rBi; \ + ROLQ $25, rBi; \ + MOVQ rBe, rT1; \ + ORQ rBi, rT1; \ + XORQ rDe, rBa; \ + ROLQ $1, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ka(oState); \ + K_RT1_RCA; \ + \ + XORQ rDu, rBo; \ + ROLQ $8, rBo; \ + MOVQ rBi, rT1; \ + ANDQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _ke(oState); \ + K_RT1_RCE; \ + \ + XORQ rDa, rBu; \ + ROLQ $18, rBu; \ + NOTQ rBo; \ + MOVQ rBo, rT1; \ + ANDQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _ki(oState); \ + \ + MOVQ rBu, rT1; \ + ORQ rBa, rT1; \ + XORQ rBo, rT1; \ + MOVQ rT1, _ko(oState); \ + \ + ANDQ rBe, rBa; \ + XORQ rBu, rBa; \ + MOVQ rBa, _ku(oState); \ + K_RBA_RCU; \ + \ + /* Result m */ \ + MOVQ _ga(iState), rBe; \ + XORQ rDa, rBe; \ + MOVQ _ke(iState), rBi; \ + ROLQ $36, rBe; \ + XORQ rDe, rBi; \ + MOVQ _bu(iState), rBa; \ + ROLQ $10, rBi; \ + MOVQ rBe, rT1; \ + MOVQ _mi(iState), rBo; \ + ANDQ rBi, rT1; \ + XORQ rDu, rBa; \ + MOVQ _so(iState), rBu; \ + ROLQ $27, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ma(oState); \ + M_RT1_RCA; \ + \ + XORQ rDi, rBo; \ + ROLQ $15, rBo; \ + MOVQ rBi, rT1; \ + ORQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _me(oState); \ + M_RT1_RCE; \ + \ + XORQ rDo, rBu; \ + ROLQ $56, rBu; \ + NOTQ rBo; \ + MOVQ rBo, rT1; \ + ORQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _mi(oState); \ + \ + ORQ rBa, rBe; \ + XORQ rBu, rBe; \ + MOVQ rBe, _mu(oState); \ + \ + ANDQ rBa, rBu; \ + XORQ rBo, rBu; \ + MOVQ rBu, _mo(oState); \ + M_RBE_RCU; \ + \ + /* Result s */ \ + MOVQ _bi(iState), rBa; \ + MOVQ _go(iState), rBe; \ + MOVQ _ku(iState), rBi; \ + XORQ rDi, rBa; \ + MOVQ _ma(iState), rBo; \ + ROLQ $62, rBa; \ + XORQ rDo, rBe; \ + MOVQ _se(iState), rBu; \ + ROLQ $55, rBe; \ + \ + XORQ rDu, rBi; \ + MOVQ rBa, rDu; \ + XORQ rDe, rBu; \ + ROLQ $2, rBu; \ + ANDQ rBe, rDu; \ + XORQ rBu, rDu; \ + MOVQ rDu, _su(oState); \ + \ + ROLQ $39, rBi; \ + S_RDU_RCU; \ + NOTQ rBe; \ + XORQ rDa, rBo; \ + MOVQ rBe, rDa; \ + ANDQ rBi, rDa; \ + XORQ rBa, rDa; \ + MOVQ rDa, _sa(oState); \ + S_RDA_RCA; \ + \ + ROLQ $41, rBo; \ + MOVQ rBi, rDe; \ + ORQ rBo, rDe; \ + XORQ rBe, rDe; \ + MOVQ rDe, _se(oState); \ + S_RDE_RCE; \ + \ + MOVQ rBo, rDi; \ + MOVQ rBu, rDo; \ + ANDQ rBu, rDi; \ + ORQ rBa, rDo; \ + XORQ rBi, rDi; \ + XORQ rBo, rDo; \ + MOVQ rDi, _si(oState); \ + MOVQ rDo, _so(oState) \ + +// func keccakF1600(state *[25]uint64) +TEXT ·keccakF1600(SB), 0, $200-8 + MOVQ state+0(FP), rpState + SUBQ $(8*25), SP + + // Convert the user state into an internal state + NOTQ _be(rpState) + NOTQ _bi(rpState) + NOTQ _go(rpState) + NOTQ _ki(rpState) + NOTQ _mi(rpState) + NOTQ _sa(rpState) + + // Execute the KeccakF permutation + MOVQ _ba(rpState), rCa + MOVQ _be(rpState), rCe + MOVQ _bu(rpState), rCu + + XORQ _ga(rpState), rCa + XORQ _ge(rpState), rCe + XORQ _gu(rpState), rCu + + XORQ _ka(rpState), rCa + XORQ _ke(rpState), rCe + XORQ _ku(rpState), rCu + + XORQ _ma(rpState), rCa + XORQ _me(rpState), rCe + XORQ _mu(rpState), rCu + + XORQ _sa(rpState), rCa + XORQ _se(rpState), rCe + MOVQ _si(rpState), rDi + MOVQ _so(rpState), rDo + XORQ _su(rpState), rCu + + mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) + + // Revert the internal state to the user state + NOTQ _be(rpState) + NOTQ _bi(rpState) + NOTQ _go(rpState) + NOTQ _ki(rpState) + NOTQ _mi(rpState) + NOTQ _sa(rpState) + + ADDQ $(8*25), SP + RET diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go new file mode 100644 index 00000000..3cf6a22e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/register.go @@ -0,0 +1,18 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.4 + +package sha3 + +import ( + "crypto" +) + +func init() { + crypto.RegisterHash(crypto.SHA3_224, New224) + crypto.RegisterHash(crypto.SHA3_256, New256) + crypto.RegisterHash(crypto.SHA3_384, New384) + crypto.RegisterHash(crypto.SHA3_512, New512) +} diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go new file mode 100644 index 00000000..c86167c0 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/sha3.go @@ -0,0 +1,193 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// spongeDirection indicates the direction bytes are flowing through the sponge. +type spongeDirection int + +const ( + // spongeAbsorbing indicates that the sponge is absorbing input. + spongeAbsorbing spongeDirection = iota + // spongeSqueezing indicates that the sponge is being squeezed. + spongeSqueezing +) + +const ( + // maxRate is the maximum size of the internal buffer. SHAKE-256 + // currently needs the largest buffer. + maxRate = 168 +) + +type state struct { + // Generic sponge components. + a [25]uint64 // main state of the hash + buf []byte // points into storage + rate int // the number of bytes of state to use + + // dsbyte contains the "domain separation" bits and the first bit of + // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the + // SHA-3 and SHAKE functions by appending bitstrings to the message. + // Using a little-endian bit-ordering convention, these are "01" for SHA-3 + // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the + // padding rule from section 5.1 is applied to pad the message to a multiple + // of the rate, which involves adding a "1" bit, zero or more "0" bits, and + // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, + // giving 00000110b (0x06) and 00011111b (0x1f). + // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf + // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and + // Extendable-Output Functions (May 2014)" + dsbyte byte + storage [maxRate]byte + + // Specific to SHA-3 and SHAKE. + fixedOutput bool // whether this is a fixed-output-length instance + outputLen int // the default output size in bytes + state spongeDirection // whether the sponge is absorbing or squeezing +} + +// BlockSize returns the rate of sponge underlying this hash function. +func (d *state) BlockSize() int { return d.rate } + +// Size returns the output size of the hash function in bytes. +func (d *state) Size() int { return d.outputLen } + +// Reset clears the internal state by zeroing the sponge state and +// the byte buffer, and setting Sponge.state to absorbing. +func (d *state) Reset() { + // Zero the permutation's state. + for i := range d.a { + d.a[i] = 0 + } + d.state = spongeAbsorbing + d.buf = d.storage[:0] +} + +func (d *state) clone() *state { + ret := *d + if ret.state == spongeAbsorbing { + ret.buf = ret.storage[:len(ret.buf)] + } else { + ret.buf = ret.storage[d.rate-cap(d.buf) : d.rate] + } + + return &ret +} + +// permute applies the KeccakF-1600 permutation. It handles +// any input-output buffering. +func (d *state) permute() { + switch d.state { + case spongeAbsorbing: + // If we're absorbing, we need to xor the input into the state + // before applying the permutation. + xorIn(d, d.buf) + d.buf = d.storage[:0] + keccakF1600(&d.a) + case spongeSqueezing: + // If we're squeezing, we need to apply the permutatin before + // copying more output. + keccakF1600(&d.a) + d.buf = d.storage[:d.rate] + copyOut(d, d.buf) + } +} + +// pads appends the domain separation bits in dsbyte, applies +// the multi-bitrate 10..1 padding rule, and permutes the state. +func (d *state) padAndPermute(dsbyte byte) { + if d.buf == nil { + d.buf = d.storage[:0] + } + // Pad with this instance's domain-separator bits. We know that there's + // at least one byte of space in d.buf because, if it were full, + // permute would have been called to empty it. dsbyte also contains the + // first one bit for the padding. See the comment in the state struct. + d.buf = append(d.buf, dsbyte) + zerosStart := len(d.buf) + d.buf = d.storage[:d.rate] + for i := zerosStart; i < d.rate; i++ { + d.buf[i] = 0 + } + // This adds the final one bit for the padding. Because of the way that + // bits are numbered from the LSB upwards, the final bit is the MSB of + // the last byte. + d.buf[d.rate-1] ^= 0x80 + // Apply the permutation + d.permute() + d.state = spongeSqueezing + d.buf = d.storage[:d.rate] + copyOut(d, d.buf) +} + +// Write absorbs more data into the hash's state. It produces an error +// if more data is written to the ShakeHash after writing +func (d *state) Write(p []byte) (written int, err error) { + if d.state != spongeAbsorbing { + panic("sha3: write to sponge after read") + } + if d.buf == nil { + d.buf = d.storage[:0] + } + written = len(p) + + for len(p) > 0 { + if len(d.buf) == 0 && len(p) >= d.rate { + // The fast path; absorb a full "rate" bytes of input and apply the permutation. + xorIn(d, p[:d.rate]) + p = p[d.rate:] + keccakF1600(&d.a) + } else { + // The slow path; buffer the input until we can fill the sponge, and then xor it in. + todo := d.rate - len(d.buf) + if todo > len(p) { + todo = len(p) + } + d.buf = append(d.buf, p[:todo]...) + p = p[todo:] + + // If the sponge is full, apply the permutation. + if len(d.buf) == d.rate { + d.permute() + } + } + } + + return +} + +// Read squeezes an arbitrary number of bytes from the sponge. +func (d *state) Read(out []byte) (n int, err error) { + // If we're still absorbing, pad and apply the permutation. + if d.state == spongeAbsorbing { + d.padAndPermute(d.dsbyte) + } + + n = len(out) + + // Now, do the squeezing. + for len(out) > 0 { + n := copy(out, d.buf) + d.buf = d.buf[n:] + out = out[n:] + + // Apply the permutation if we've squeezed the sponge dry. + if len(d.buf) == 0 { + d.permute() + } + } + + return +} + +// Sum applies padding to the hash state and then squeezes out the desired +// number of output bytes. +func (d *state) Sum(in []byte) []byte { + // Make a copy of the original hash so that caller can keep writing + // and summing. + dup := d.clone() + hash := make([]byte, dup.outputLen) + dup.Read(hash) + return append(in, hash...) +} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_test.go b/vendor/golang.org/x/crypto/sha3/sha3_test.go new file mode 100644 index 00000000..caf72f27 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/sha3_test.go @@ -0,0 +1,306 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// Tests include all the ShortMsgKATs provided by the Keccak team at +// https://github.com/gvanas/KeccakCodePackage +// +// They only include the zero-bit case of the bitwise testvectors +// published by NIST in the draft of FIPS-202. + +import ( + "bytes" + "compress/flate" + "encoding/hex" + "encoding/json" + "hash" + "os" + "strings" + "testing" +) + +const ( + testString = "brekeccakkeccak koax koax" + katFilename = "testdata/keccakKats.json.deflate" +) + +// Internal-use instances of SHAKE used to test against KATs. +func newHashShake128() hash.Hash { + return &state{rate: 168, dsbyte: 0x1f, outputLen: 512} +} +func newHashShake256() hash.Hash { + return &state{rate: 136, dsbyte: 0x1f, outputLen: 512} +} + +// testDigests contains functions returning hash.Hash instances +// with output-length equal to the KAT length for both SHA-3 and +// SHAKE instances. +var testDigests = map[string]func() hash.Hash{ + "SHA3-224": New224, + "SHA3-256": New256, + "SHA3-384": New384, + "SHA3-512": New512, + "SHAKE128": newHashShake128, + "SHAKE256": newHashShake256, +} + +// testShakes contains functions that return ShakeHash instances for +// testing the ShakeHash-specific interface. +var testShakes = map[string]func() ShakeHash{ + "SHAKE128": NewShake128, + "SHAKE256": NewShake256, +} + +// decodeHex converts a hex-encoded string into a raw byte string. +func decodeHex(s string) []byte { + b, err := hex.DecodeString(s) + if err != nil { + panic(err) + } + return b +} + +// structs used to marshal JSON test-cases. +type KeccakKats struct { + Kats map[string][]struct { + Digest string `json:"digest"` + Length int64 `json:"length"` + Message string `json:"message"` + } +} + +func testUnalignedAndGeneric(t *testing.T, testf func(impl string)) { + xorInOrig, copyOutOrig := xorIn, copyOut + xorIn, copyOut = xorInGeneric, copyOutGeneric + testf("generic") + if xorImplementationUnaligned != "generic" { + xorIn, copyOut = xorInUnaligned, copyOutUnaligned + testf("unaligned") + } + xorIn, copyOut = xorInOrig, copyOutOrig +} + +// TestKeccakKats tests the SHA-3 and Shake implementations against all the +// ShortMsgKATs from https://github.com/gvanas/KeccakCodePackage +// (The testvectors are stored in keccakKats.json.deflate due to their length.) +func TestKeccakKats(t *testing.T) { + testUnalignedAndGeneric(t, func(impl string) { + // Read the KATs. + deflated, err := os.Open(katFilename) + if err != nil { + t.Errorf("error opening %s: %s", katFilename, err) + } + file := flate.NewReader(deflated) + dec := json.NewDecoder(file) + var katSet KeccakKats + err = dec.Decode(&katSet) + if err != nil { + t.Errorf("error decoding KATs: %s", err) + } + + // Do the KATs. + for functionName, kats := range katSet.Kats { + d := testDigests[functionName]() + for _, kat := range kats { + d.Reset() + in, err := hex.DecodeString(kat.Message) + if err != nil { + t.Errorf("error decoding KAT: %s", err) + } + d.Write(in[:kat.Length/8]) + got := strings.ToUpper(hex.EncodeToString(d.Sum(nil))) + if got != kat.Digest { + t.Errorf("function=%s, implementation=%s, length=%d\nmessage:\n %s\ngot:\n %s\nwanted:\n %s", + functionName, impl, kat.Length, kat.Message, got, kat.Digest) + t.Logf("wanted %+v", kat) + t.FailNow() + } + continue + } + } + }) +} + +// TestUnalignedWrite tests that writing data in an arbitrary pattern with +// small input buffers. +func testUnalignedWrite(t *testing.T) { + testUnalignedAndGeneric(t, func(impl string) { + buf := sequentialBytes(0x10000) + for alg, df := range testDigests { + d := df() + d.Reset() + d.Write(buf) + want := d.Sum(nil) + d.Reset() + for i := 0; i < len(buf); { + // Cycle through offsets which make a 137 byte sequence. + // Because 137 is prime this sequence should exercise all corner cases. + offsets := [17]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1} + for _, j := range offsets { + if v := len(buf) - i; v < j { + j = v + } + d.Write(buf[i : i+j]) + i += j + } + } + got := d.Sum(nil) + if !bytes.Equal(got, want) { + t.Errorf("Unaligned writes, implementation=%s, alg=%s\ngot %q, want %q", impl, alg, got, want) + } + } + }) +} + +// TestAppend checks that appending works when reallocation is necessary. +func TestAppend(t *testing.T) { + testUnalignedAndGeneric(t, func(impl string) { + d := New224() + + for capacity := 2; capacity <= 66; capacity += 64 { + // The first time around the loop, Sum will have to reallocate. + // The second time, it will not. + buf := make([]byte, 2, capacity) + d.Reset() + d.Write([]byte{0xcc}) + buf = d.Sum(buf) + expected := "0000DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" + if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { + t.Errorf("got %s, want %s", got, expected) + } + } + }) +} + +// TestAppendNoRealloc tests that appending works when no reallocation is necessary. +func TestAppendNoRealloc(t *testing.T) { + testUnalignedAndGeneric(t, func(impl string) { + buf := make([]byte, 1, 200) + d := New224() + d.Write([]byte{0xcc}) + buf = d.Sum(buf) + expected := "00DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39" + if got := strings.ToUpper(hex.EncodeToString(buf)); got != expected { + t.Errorf("%s: got %s, want %s", impl, got, expected) + } + }) +} + +// TestSqueezing checks that squeezing the full output a single time produces +// the same output as repeatedly squeezing the instance. +func TestSqueezing(t *testing.T) { + testUnalignedAndGeneric(t, func(impl string) { + for functionName, newShakeHash := range testShakes { + d0 := newShakeHash() + d0.Write([]byte(testString)) + ref := make([]byte, 32) + d0.Read(ref) + + d1 := newShakeHash() + d1.Write([]byte(testString)) + var multiple []byte + for _ = range ref { + one := make([]byte, 1) + d1.Read(one) + multiple = append(multiple, one...) + } + if !bytes.Equal(ref, multiple) { + t.Errorf("%s (%s): squeezing %d bytes one at a time failed", functionName, impl, len(ref)) + } + } + }) +} + +// sequentialBytes produces a buffer of size consecutive bytes 0x00, 0x01, ..., used for testing. +func sequentialBytes(size int) []byte { + result := make([]byte, size) + for i := range result { + result[i] = byte(i) + } + return result +} + +// BenchmarkPermutationFunction measures the speed of the permutation function +// with no input data. +func BenchmarkPermutationFunction(b *testing.B) { + b.SetBytes(int64(200)) + var lanes [25]uint64 + for i := 0; i < b.N; i++ { + keccakF1600(&lanes) + } +} + +// benchmarkHash tests the speed to hash num buffers of buflen each. +func benchmarkHash(b *testing.B, h hash.Hash, size, num int) { + b.StopTimer() + h.Reset() + data := sequentialBytes(size) + b.SetBytes(int64(size * num)) + b.StartTimer() + + var state []byte + for i := 0; i < b.N; i++ { + for j := 0; j < num; j++ { + h.Write(data) + } + state = h.Sum(state[:0]) + } + b.StopTimer() + h.Reset() +} + +// benchmarkShake is specialized to the Shake instances, which don't +// require a copy on reading output. +func benchmarkShake(b *testing.B, h ShakeHash, size, num int) { + b.StopTimer() + h.Reset() + data := sequentialBytes(size) + d := make([]byte, 32) + + b.SetBytes(int64(size * num)) + b.StartTimer() + + for i := 0; i < b.N; i++ { + h.Reset() + for j := 0; j < num; j++ { + h.Write(data) + } + h.Read(d) + } +} + +func BenchmarkSha3_512_MTU(b *testing.B) { benchmarkHash(b, New512(), 1350, 1) } +func BenchmarkSha3_384_MTU(b *testing.B) { benchmarkHash(b, New384(), 1350, 1) } +func BenchmarkSha3_256_MTU(b *testing.B) { benchmarkHash(b, New256(), 1350, 1) } +func BenchmarkSha3_224_MTU(b *testing.B) { benchmarkHash(b, New224(), 1350, 1) } + +func BenchmarkShake128_MTU(b *testing.B) { benchmarkShake(b, NewShake128(), 1350, 1) } +func BenchmarkShake256_MTU(b *testing.B) { benchmarkShake(b, NewShake256(), 1350, 1) } +func BenchmarkShake256_16x(b *testing.B) { benchmarkShake(b, NewShake256(), 16, 1024) } +func BenchmarkShake256_1MiB(b *testing.B) { benchmarkShake(b, NewShake256(), 1024, 1024) } + +func BenchmarkSha3_512_1MiB(b *testing.B) { benchmarkHash(b, New512(), 1024, 1024) } + +func Example_sum() { + buf := []byte("some data to hash") + // A hash needs to be 64 bytes long to have 256-bit collision resistance. + h := make([]byte, 64) + // Compute a 64-byte hash of buf and put it in h. + ShakeSum256(h, buf) +} + +func Example_mac() { + k := []byte("this is a secret key; you should generate a strong random key that's at least 32 bytes long") + buf := []byte("and this is some data to authenticate") + // A MAC with 32 bytes of output has 256-bit security strength -- if you use at least a 32-byte-long key. + h := make([]byte, 32) + d := NewShake256() + // Write the key into the hash. + d.Write(k) + // Now write the data. + d.Write(buf) + // Read 32 bytes of output from the hash into h. + d.Read(h) +} diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go new file mode 100644 index 00000000..841f9860 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/shake.go @@ -0,0 +1,60 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file defines the ShakeHash interface, and provides +// functions for creating SHAKE instances, as well as utility +// functions for hashing bytes to arbitrary-length output. + +import ( + "io" +) + +// ShakeHash defines the interface to hash functions that +// support arbitrary-length output. +type ShakeHash interface { + // Write absorbs more data into the hash's state. It panics if input is + // written to it after output has been read from it. + io.Writer + + // Read reads more output from the hash; reading affects the hash's + // state. (ShakeHash.Read is thus very different from Hash.Sum) + // It never returns an error. + io.Reader + + // Clone returns a copy of the ShakeHash in its current state. + Clone() ShakeHash + + // Reset resets the ShakeHash to its initial state. + Reset() +} + +func (d *state) Clone() ShakeHash { + return d.clone() +} + +// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. +// Its generic security strength is 128 bits against all attacks if at +// least 32 bytes of its output are used. +func NewShake128() ShakeHash { return &state{rate: 168, dsbyte: 0x1f} } + +// NewShake256 creates a new SHAKE128 variable-output-length ShakeHash. +// Its generic security strength is 256 bits against all attacks if +// at least 64 bytes of its output are used. +func NewShake256() ShakeHash { return &state{rate: 136, dsbyte: 0x1f} } + +// ShakeSum128 writes an arbitrary-length digest of data into hash. +func ShakeSum128(hash, data []byte) { + h := NewShake128() + h.Write(data) + h.Read(hash) +} + +// ShakeSum256 writes an arbitrary-length digest of data into hash. +func ShakeSum256(hash, data []byte) { + h := NewShake256() + h.Write(data) + h.Read(hash) +} diff --git a/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate b/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate new file mode 100644 index 0000000000000000000000000000000000000000..62e85ae24236b46c09e5cfa84c71c69f5cc33cf6 GIT binary patch literal 521342 zcmV(wKzy6Q^@gM*Azx~Vq{J;Fmzx?Ch{x$i(5WRo?```ch?|=FG z>3{z3AOH9N=YRii|M5Tm`SX8hy#;>6sy0=|rHk_99c*FNJPEr@%PjJ-+%s}pIW)HOadPLF*FZ1|m#XVEZQL^J z8}q2xyRg#2Gfi@x>sGO%u(G>lHS%u@0*@p+eRb&B7)x6 zN8q{HPb`wT#pgU7NDnR~FjQ-F0CtB9*D1syD{4u-^FG;N`lJK5Z?1ph0V@v4gb@;o z8qApUxUUa^^qr%q02@32@&v6X{_!F2Q<;Q^{IbPjE;~`mCci#u zMXxC(#SH=&=YW#-X->!mi}R8_Q3iQ1K4E9TUk>*v<=wGIL}ZFwdcyrvM>yu(Y|WHZ zh9&T-GeNEaN;wWM*Vf0EkE>rCJpB5oPf>5~j`ZA($87HtIsElm^4j**aT_lNKcehlYQBnAr;U<|JieS6xWwAc)abQG0+dqn7?Fg;B-D9(fn6uhft?JZ|+3lz< zvO8!_!SD0?{8Mw33Z6ySJ>&VFSc>heIicxKlXZB~XFkL}qG5E{F7WVGKX}(VU5Mv@ zf*j!2ik}Gb=c{m94B7{eXL^vfPbf47&cSx)rv~rFAG8SM5QpKG^m^pdjS^ATl^tZ> z*cJeYq1M+ozR&kzqR!JLqWGYNNFG<|280)367J7eOtW3GiA9n$nOnp!eL@#bj1V8G zswVB47O_h!eSM|SXW-R+d;0`fR`D|Lkz2j-!9(f{TlpEo#3NYQAbALYqo2mSm)NAM z^2X9WMN=(C+8ugN5_Od;TMPU?4 zFX89gLU+|B>{>nwWPJ@*tYDs62jwJQu#F;1ONDvFU*8+_`Muj!Kqhham`AS*G?d#O zDE2s)6yK#Da{u&IVg()08$Y)u0?8`5f!EAi$siCRLI9$gaAs65zGg0f&o9oK4thL1 zFCkRKlNGwj+Q*d+YK^C4-81E43M@%``3B85inwP>`lH z@nk)m-MYfhuSWgO04>B~k`dd_$s#SE#D?DmV4&wS0e(!jS0es?raoK^E~s8&BN3R~ zV<~)xob~uU+);ZpyS%P9IKKDw-QQz5oEME>-^8f*U88khA(}yy@Q^;GD=T}KnRy~T{b(Q;r-M&m%Xy_YdqpJtt={SmZP9X5ztwEVSar&5ysd1_3huoKX9U} zdm(hg&N=5Cq(2AGFm!hA2L`SEjzS<@BeLn|=0a0l>?#AeVveTYHcwZHKZzX2^u=p}x89dl| zqTF1*5>CQszHa*l=1lh8(b4RTB-FzD*_$dEi5Vh5!q&-%<~ z<}HMlD^~M^GSd@U7Tj7k&shek{Ho%6_fa%`8+RB>MciwXl#jrMSGKJckis=G5%MLZY_&M!16{9_UPlMkr#ro?jX_5l2W!?aI zXKw==^I*#SGxNlE21ZI93R<=8qTAIY*hLQz1BfJl^VM=!qcY8m|m})$_ggv8+s_ZA#;3YH#0r_#hXqRARsvTXnX_ zM>jV}E}!7295*odQoN_-`+EmCV}dl9(8{kH#oZ0cp9YT2Qlry~7>t;!ug#>)XGNbb z(C)JvL8cbvd5#>jrm~-DrR!Z#P$hGx z4+WQ{?U^dZnlVHrp?S|sWT*@JOe@TvegL?SZ&~1a`w47EArJ_!mW=2^c<92+1lYSp z_Elgf1Ttvn*Q=Y;ROMQyKeZR-k7Y%!1#W}o&-=quDH?fQw7I2k=sA*x>B1*d@6#EW z4T#wwpO@0^V|jXL{r0HN$F>LO#RXKB!Yk)!T3x9jlm|mmNtWfy5cz(y6}%QMphOjT zMv(=gn-6Ho4zPrYQ5+GAf|W9K z=@uuUI5$*ycQ^U&>KH_!QKfDt%X^_#Nc_oc`LrUyE1P0}Y6NmJeZ?;+`!=+HI$=n& z09!hk2I;l*BWxB_$d+4SPBNz>I2yiJST>)vefvg&V$zoO?zlVl5{RMExW*VKhTtlX z7%8&9a_B92f@@ZweQ=VniP9NhyVzt~`TKkh^zz+42W3U{>vkyzGk7CW`UW*oAXB(! zA09A#RcD_Lg7!GgNN_ahkqPuW#0SFE!_9nA(miK_Z(aP&OS!ljW2ioV1M`fO^;Oh` zWRc)R)zA7Y1+NPH&2EVx>)seCtP~hteu!Y?cF1mpFal0(zW zx;qyQdV5NiY(3z8A_`uWez;6;tnE;Y!Z)km^xAmz3M##bi=RCJ`$1OLD{7foZO_iVl{hb@Wn09sTuRizS zJB=*LP{pRbPK8r#pUYyi2@EeQ)Y;O+O4#JKU4lpFF>J1D7JVSxX6BL^t3l_4hcE4Z zZ{vYHm7{GNDsg%nNbq_hw)Do}k^`RO!~gi-t0kZZ&oP&RH-wc%)- zJ6n{?Ota$HkN2JJ5k=Q~%BMVZG*&~M|@RE zpYF2_7h#Bi+M1MLISzyR=d{|Z_a1`84Qaebm6_zNoxoN^yV);B#^W{AsS?IfgKrG1 zXA#cI&w1|2B$=V~n4GvtZP^6AK6~!;V6gDQWFEuNz1XNvR{7J1VEPFGN;1>PtK-uf#{yBmV8XY(|)myl9jtD-j2v#>R+bTpZNGRt|DRoh^M z59WGr_4QeG2*2q>2vK;nj8iKx?TWc_|D-9doH(T1Bc@LDe%7J zt%j$r7m-gp)*ULe#h#Oh)4C%i=}NlTU8`7}vOT(=^*%QYp6FT$E}l$*d2@3%LyE)z zRl!{x%e$ADm!I{1ded%oqk|X;bsb+c7#yZCA+zYnylRYW%7?h^J-cfuhD%GZd5SmC z%n5f}6gE?48Fr8lg`Z8SR_D)(VYW$Xnaq}K-kHA~x%0Ca#ffBy8VwfY?AjfqPd&@0 zOFh(*o{rlPtYO6(%eqE_6p&})Tj_o?>NozDW4Iu)NnY5n*5j_Va!F0@tx2DHEApaw zSFlR2OSAF!-GQOhS_e}UmB_NjIP3Jb46YYP^3^f3w@!C)%%`gL)32oE@>Gv$;hYhh zX?@bkU%nj$4@^m0fh!8p;;u}KYt>FReF}>J59I+~Q@NnGJ^?y(+r(GbA;2bKAipD(V}+;rvkwz3p$bKYFbIQf zfVT##ZB^t1<90GWQO;(~EQhbU{nNwfCK++6l8gykm_iUPSL68s6GEBJIuj~?BPQhiAiqa zhC}POq#Z3D;BKFles55Al>u6Glb#6YT8Tzz^rB$-@7lYYOXA3zubu5ehjZ{=Qjn$JiPWp7*31JQ2jQMc!b9v+06J%J1`%#>S|?11>A$Nd?;B`6An>7=nHsCjaYAB^%)lGiH0qp@M^Rz?QN6&Y z!<|^`1JH?0Q}m$4Cmk_|MNc2N^Q6VZj*yZ|Oiy}qGc8B~Pxw2`dPxlQC`-$HSbbVD z6IX{{_z1J%`YULh_j}%Nl&4@9t`~IyG|ouD?d&?NMSz=?dU^$==Jm?)tA70Sx((7? zFUZpsM$@UgZb~ip)*4f};20h>kh<4k01#bs>VM?IJK>P^pzMY1gl?A4x#NWI3c z2ajW%C5_(F<=RizlXc4uIC+>A(A8%*wy@AB)O+S5yXXuXJD#{>UkK2r>!Gd}k6*ZN zRKc5#4n0ybN9-`}eJK=L&x|^G_qH5Tg=&uQ1pYM6G(~)I#>2ryBQ}vhVP{E4Ytc8! zamm4Rm<{l=<4KJTkUSinR|wgwK#}wsEZJ{FIV*|m;LLPWmOe4~^uOyzZ@0)AJrNu5 zI9f!;%RC*V+@}(!DIe{~Qp2{f-KiHn(Q(*vSwzEk$>*DO6`;e77W%s0$(j~Lqp3^* zPhc(E^-m?lY?t@pJbPhK+?Q^bPpM3n$*scc)jkM*6iYPvg#v#%Vb=09DtT*U{Awy~ z0>zE>=_A2@M_9~P)j?yI9m&#fnThTIhuEPj^X>T+*bpWmd0E9t>BR9{Eyt7VUOnJnw zb%eW(Ulk9dKzpUPoI7lm56SHyTX2Q}ZY>iC1i9Y$KB5iAiRkdjH)m^*`<_*n_uT}s z(|DShLXyPwyBeckXk3zVLGUJDXbDXz32u_4ki49fk~hz^3oPESyT>OQpN@%KLyma5 zL!}4rjy)uMcdYh&dY)_{p#@fByo7U50%hwd8LqN*EF$a4%gE2vlXkIqB`#5prDWYpvGjfW0K?k6!Of(h-yL)GLI|;Tw#gotfRH ztu+*w4nO6bW@6hDt3VFR^!%AC5GY7Wxp;#^&K>DB*QJ>qMM^zv?~IZrX58(mAe<^a2dHOPh~|Obt!?#9Jb`jyUI7^V6`L# z2Ee?RL|ijcINb4C7XzY!N(tr_7N>UH4!tq37Ygt9^!YlriuNMIiBgHY2GMo8-$SgH z*beqNvXxihC?BXOd^&5@O)wAMSe?YnwtFmOHjOqul2X2JkSBEL^sO0Y)d;4f=cYZZ z?XH^iv@M30d|al0?d_3(vbrPPjQ zNxc`oc-l^_ovYXQ{7G?p{`Q&zn+@FSeKc9-7_m!R4EXZJi+IGENX4_n3{9V2!=Da} zG{N!Qok6lgSLLV<77M*8I^Z_O@Xbh^3Z7887Xx^U`(u&kpt?!duMrT@JMfr9l<1{A znAN?R>ZH&;yaM2dCk1%h*Z8!iNU*pjM?`ym<~q9GBZ-&mBD3#Wb-G*7QY8?*IOAyL zR@uWLr>?&6d7obFh6!US$J#uJbG>5O<5~XPn(SQ;vsNS9*67_+@seka)0d@kz?La~ zEPJSV_p;WkQt?!r^sH7LOG-x)HyvD-a-&E3AOhVy8L{L=>S!J@{B-3fZhY{ByN(@2 z6WQM~ue7PSm(|ttG>GDOJb|vC2z|Qp2GqOTd-KGq%@FTirV%lAlH_U866krION^U% zd8GBQBFGd8`+!b5SB{)2S0bjIp5hVfjhv5g%X%C-C-=6Zlt5dn zfk|TrAK)uG?(_0^o9!a+CrWDm4)KNfcu6VAj7PrZFiu2X8B~P16sdRhBtIug)la8Z zettx;RyfCH25lzqt)S|HqYGSOYrCVyl)X0HM_b{1*+r%~nlN~2B`~~PdOa4g9rg@@ zAT4X>*^v94J1@OX!nSijt>CJtSTL`tFyNsw$5Pav9qpmpZSK6Q;SrDwO&#{^QAgai@ncoZ=at13dwF(W{o*f9hxkFm6dFjvpxB+o`Fp`b#9WlicHj@pGV%x zL$c>o3Ao_?MB>$J%ua&}&(0&w}6eHA8OZ>CgFM zpQ%p0jX?zJU7cIVB_d?PiiTSQJ4kbqF%kP#lz+N6_)|Op?Yq~luS}>zjNDcdF0&e> zqwYM0_$Gjc>9s`w*YoT0^Lqt&yl&%Hh#>Df#*gct5fF^l|m} zbAM4tu)5F@8Y!-tCxPh{6?Du!kuMoTLoD%mzd-iIrIR+rNFCYP+6c)W$8E2Qwu-(^ zH6L)?j3r5v;h2KA=<`g1px4PO-Wt)vqc>$FPm6^T_NP~!9{F;ql=|zK5KvGI2Y3pK z9MC;WPdo`O3S4VHb5ndedijVxqmZ|ZSMrwpI_>fK8=vOqfnB1n^%eM887k{+jlNFY zsj0MUY2F9$qBoqX(%Tjc82BwSvOf*km^Cdyct=0Ycu0w_FT0jMUfBzjB0RkOaWPcC3V1l>0xtQ|HvkX4H9Y#D`RWAMUqgCj=UB<$E zn>__VheUI&&JbXhJ9xZ8eq!ztyRonL>ZOryJY{-8R%+7o?q&NseN#Nyw=U2)gKqD& zz25GL+c!=4zy-nY!P_hyzb91k9_6$7>GJxV*<=vunriJ7vG!H?Tu!okP(SXy6jvjy z=T%>b;de4Ok)@%P!Nvj z763W7Q_J@;XPt6+iV}a zb>Trt1Z+J?T4@Iy8<*)2a!qu2?FLnG05@;CfHR%R$ppn6V>-u3_;`7UEjQD`g49!{ zu(cOFW80dDHaShHFn7!xIMl*wERZx)A{>Y zoV(`cbu}6&7p_e}0UfL^?Sfpym@T~(1r8FHeYPNAhGG}$$nsvI!PCHZu~+&`DT(_m zU)%~MQR(@+4dzCsNEh6_buOgElyiR@VLYS=S z@wl0LE2I`Hz~P=Sk4}Oq=zQVE`sry#*FgMWF9K02$LN9@a9=}kg+!e8^^-1k*j3jq z*#eAp(5$EtS>>07kg1d*2;HDYJ-jm|9&K|}YS+U|ar)<*@8Nd3C3E|UOunnikv=LC zvhoe*D#oPC*)}2mg2^5rZH-ifA z4&;JwM2xPMLM*oDc{QhxHf_DsB3<^;maC%%hxc+fpF#T3k^bzYJ9e`kZ-TnHO8vSy z^pAAthoT4XI(jE!kor`$R`*`H#oOoowCC6ekk6d9cW~L9G|FnJtWJ>aK@chCBEdRQt-2horL*d*zFPKM zSLUO)%6zvN?u*rueG(~dV3A@O2sNny3hPpGQhH{3AQZ|m(Y>#Jc3Ah@tMv$33eA|^ zH%ayIjifE|gD1+7T4>rd#=7%~-}jUd7g?1m60{3A^`=*7Dl4GCui;^^0$I@Rn@my$ z=8*tLaVv|!$%OTyQ32ZTXi2!3Bi z*%KjIs8e$1(ifxkncMhAbDB&Ym#e+HEQ*q;Ym`(Tgv(X!!PM2ECp01!YMVJ8`8xc) zFt>tY)YmCxXc>P>EGPl(ErYJ=@-Zq(qX@o$$ef^q_ZCW$IKBIJw^SW(-S?szS@|8J*o&s;jn;$D%Lv7i znyt=5W7E0bXr(vok|8$vF5(Nh$M8Zzg`oGb0=xp!(#A6is_4gBAktMvBMjpTgJha0 zKq>fOx%uQ}uqy8xf}L%qA%9CE`cCPENXhTrcHNRbrR3w zgxwN~K4-F^PZamMI`0WKQcNvCMejkgy%^q&dDvDX06F`hr&VUBs&dL*QVL%&B{U4U zISBzS1Cx6ivp>4Dm57EGd<*6W(oWcx?}Zm&KLDnULpMt7Ah|^ACE@j8+1K2Lc#@?onxXmvV+?c z=I_0CL<^oGnd0)OgkAyl@W{w%faR@W%h*#QddU|PE4;SgPp7M1@6Y+ouk@uocI!x9 z%zjzzG%SIo#V?LldRE2X_*k>yCz7AtCEa+T)jE{}NK4fjz|S(3>CFoZ5!k3+(ASBJ zS7FIe_$=uipQ<*b(HQdcoi)Hd8nh)6ZhnK?T>5OP_vqZ>-j+M|bB3}&Htzu3GLlVc zG-A}&QP71vn|pJ1ruzbV7>X+Ao~ZwxPNs-nb)R&)&QG;!6dbR4Ny&vXGd zNRG6+180@+y{J`z*8R5R&^LWYnwl{zUWpihRf&MlICE-7nu9 zd50a%A@+htIm%P5b$4ZYyv68EIfePqx)2^RxP;3?BfzkV!Y-*KMz0aEH#kRVFAtyl z!xxoNbnodX#2h{7WfqADvGQ#PH=Rgu$pwD_RxP1e1a)%SDLyh;>^b$*GaH)bkP~mz zluB3NiWeMKUo@ws&*VetM_0;*tY3J3-<_Am9JazDa$cJW%ewEoD zd?&i5XP)b+#yOzJ$cqftcj=UZDWvkYjj)O{D`a}>rE6+l20Q6g5DVG{`7tkFr3=gx zRoHW`aMSG0OUekhBzc8wt&0zmPy-i1<01R=-`BGfW!NUCD7eb;cPJ1{`&6IpbU%3u zTEwWTilgv_==Y^s-!>3-h|2=rtqxsF!~+dGVd$g+-8*V)?Hj=$w!qrfH+XdX?I)(6{YXMy zWeHLrlZ|T0#8D_ZfWre)dO4=#0$L)no6b(6#Ps@}&{e)9WSHeel|gjIB!h{ruwHK( zrVKrSF;sx6*GcMq;TtgeLJLwABPG3+r*u3)`OUSqZTn_4fR^?XJuHGAj5WtRf+sKA z9e(D{7Y1|O=N-#1U8{YX^y!d=5rcv-}- zsfPaEgO$QTd15srCra=x1MTwpss^BTJ#V~gT-+yQuehGE#RBAGf86H^m?DA?aT`g1 zS2FwYxSA#wQP{R6IKb5H!lR%Kwj*o+IkboPjN#!=#hyZtlkzQ&Tne&I`YaALmqN`e z14v$K65SBiy)R_HFYYG3$+v0jVLS!pwYCybwf6*rjYn6f$1r5mU9KZ=Jk*pT$RwH) z0)PVP3VfkU%Jg2KQf_&lTcJ@O=U@N{&neQG6&|!OEtgzJG!5hVsQ{veB)BEZ?%Q2i z=GUw-zAHm<8saG9s*@3Od=?LWstqVUrFt12D@5u zO(lR(%So&rt5~2nJFOWGGeRIyw^za93in$c=rJ*cCaglK z_e?z2b$v_=H+tvijE?~uH|c3(&X4ctC>YpSaU25)D){ zNPlSXzzDnh=9R@}kC#fasr5>wtv!U-;gT&{-W|C$sJAt*Cncwlq2P{~qT5FixA09i zsV7~mGIzu*bA;XI!xlpl)(!J9!^Dl9#VS>ma_Xkb zEJ|(erk)SMOY#r}i6vzkL|2?ESe0t9Y)_P6_mO5YTOuRZQ@N9slHA6h7{4B&z{CUx ztF*?4zzO%XmDNJd&xaFfCDwhS~Fr}_}*op#i;8uSEAl0(Ds}ZI%Kf&ars3_ zWNoKU@N=Iue#(0fFudNNUO|C@5gjdtW)Gn5 zVO$je1LK?;-b=Qy5PhdXPP5S}56qv#k98In98)rNiCm7I?^O)>@F2;fHo%hYN2qG@by8y;SkSR;X+cS<5o}uzMQL=}}?#nE|dX0yQ1xn+_ zg?-8HHw-BFPKoHDSViqU;x=G3;bT)^R%?-iyappgb)g9J3gF%oP! zgTyh(dc2hEkeE)xULt%J5vY&ey2Ox;c|5j?A)^O%-Yhwl*W1lR^*ob6ih@IFTwH~+ zvTMY>`n0RreISBsl;}cth44EB}rSFl{7uxdK5xJwDK7od#&h=#{KCh`qX2)3eUN3E-fxMb&ojcY%yBAlU z#01@3bH0$YNs+@TGK;7(gpso|C1^szOM}m2qx5EgmYRq2mAp|{&S%W8*#fymL)bi3 zW21~_n<-BozYD&nXu5UqUO)5q)Y<@^!9YVjXiso&M{(4jPQvU~bV;1Zb-899a(KbP zl3)nCoIrL5qZ~25-CuYsd^!oP$}6)j6gg?LFid@Ou`>LcG`VxM?X(zRIA#k20pe+3 zP9}uZzDgNa4ahKk?9l>gNc{RkJ1 zutFqJ+fW*}afy0)OP`e2J5oLcRoG-8569gaZEsFiBbU;^_Fd68c49QQ-(O+xqVn4nSeF)T} zzUSd11LLHxqF~@X4Xj4b`@-Dx6LZ1TEACegZLQu4h-$J5@wP;>POcfmnBG?FGjkG9 zyg0J8jHk?5gO?JX_H4OR65y7K*F>T@CdHerH!@wJ+4%}MonKwOjl6L0?K;Ypu&#ix_^tF4=rg~2D##rm z9MMgJppF^P3m(@y53V};2)*-tq3)lZ(=!i@uGf<$v>Ktf1KS~XgTd&EKsxOZvc_q9 zociEFVfBkm?`ic4%HtB- zo_bBHWJD5!7Cwty8?Xp_+caR$-$W56yTMXsENByE(m+SwBLIhV$iUe}y`Q*KW-a9CxIOSr-Ff0ZZ}36!zSqFSB6HZnDEh|kIg1JNd;BET z92c=i7DCE+PR^-4mvaEzELc5M4L6>33oRAJ^gQJWNazR(B%dUrk|e|@P}Q(N@A=Zt zZrU;cgJx?uR*_+3uu1^?h6l_Aw`j!+sTOK?;tP2M_-v=CPa?`wv7~!DRxNil-m@ps zKFNdI+Sb-iX^*_3#NVab2Auj*16=0x!jy;To!K*Q(zJ%CO)C!X zYi9vIVc(xYy(}#1wKh3v&z>!2PP&};lczHhLvanc`QAGRvv2S}J1Z<_!Gb*FD1e^Q zbgMz?T%cF-x@1LQwI2y9G_Bi8JiwD}dV9e5T;$+H`)Y7*Mg1MSc2BkW%q)FeK5Y*x3^hSBR&lk~a@I7jH z+?Ftvk}ZWJtdO}<0V+RTC&s%^)t?6UgLd4i0nmOC{;u*ksb~WvYZXjo<`aI@Z|&2y zgw%u3Rc2k`>$ ZZsLg$&N9BRAe4vjM&U3cLIy|dQ%H^$doZq>M6$A<4IbEga)XZ z!m47)a-lu0$Zai1pKje)%*x~(rEExTnKhMJYBt0&jpdttFYN*9-8p4Hz4Sv18!k#C zEe&0sO%aC2k-f|Lq$vffnPxyl1?m?8J9x@&X|)hQW~GvHJq8cjYGF4IZtU=dI)u4# zeG)*Q{gz6ntan^hwl-!994Lg)A8AddwN6IP5V!|Z&s}9=<3oz-o-sJq*eiTNE-pS) zI4CmsX6dHXA-#Z%{DBBMC3G&C5Wnu|AXjdzm!*0PuMd>4N1mvh)ZJ4YuBTY@V2&Ka zmyJmP>$$?_i~tYm=xQ+gy@e;bu~B(EPL``KS2&J8r&ma_UJc_eqVz%lvGlc6c_3bf ztK+TFD*RCHpdCLc;Lp~JFeMO0J)M=>pp?s8`y5e|VhepaV6iGEr4y12J+FF*ALDy~ zpc2o6;c>SeDG52&*(|AuJA`Ty8^}QmiZq>cXB;)*qYWKMT2n3qb?teCB~y+x**nlW zD!_8HBEIpCw0L!9r3N`1x*aH}j2Mt>fSLS>zq%t+F*hve151B#FMl`TTCRN&4)^#< zCA>BW$Hs3GkHbzuCJek~kfh(neUk7#n{Y6{S%r?UnpAK_z*NR}`u08Xle>5VEf8}6 zy590EoLdDu!`uQ*GAp5lW1R-1ae?|dgh^L1AUYC)V&PWyJD*54$E7JPba=FY+ZTYA z`Vv;`J=?bHT1`7AaXEXyyF|nzG;Hf$^q5{*b>>H6BpLd-KVT1)5RM{4_lAw!bx84p7?JO8q z%+F@y9*>A(mm^q3$<9wAEL6jL>FxET6TU%3WIt}3)GTpIE4;*$vZY|J+p z3z*JZy6p%RPn^2^>XNQ2f=XEZUD@*?(sw{GT%pi~qvg%dn@V2B^`;RsG-YNaz3nN0 zeymw-K&+TfRqo{F!W!jmw7mdMx1b`1${x{_u$ND@nHwHIPUm=NAjT1?oE#LjxceMr zw3k-~214yN0G@`XsPete4zvK!q~0=-M`JSTKdp&SgJDs8RIc#u(Yx3z?IDj)V%(Em z9F?i17&iE%LO)xyL@q(;*+Ow!hDTnJGrfFpoh0Kb*oXHtm!0=?{5=%6Ol)|~%XRMS z$k?m+q^~@TCluEoQxVXmAF)`EW*gFoHQGu<$*x5_zYOV?E!WlcbcQraliOEtev)+rV_aq z4N1DvxvLf_rM=~$gn9TXRC^V0@qLnEpUv8A*WpzhQ%DxEl7*L1L1NJ`1x{}{a(F0< zIK%NPE+!X6VLS(mvPj(s2LnL?SA9S?jiwFaVapP!U6_^yYV5rA!q6#gCHD;2_jTwX zbCEd(+Cy6o6qb_361->QJGO5gklcn(yHzwQk>aa69t4V2UpAUG3O)AAQo{-)CAg9O*q7%!e5~ zDEfE|9fy+kAbtH!pd%f@4&mXm+B2p)PKCV(YR$&4T&lh28Jfc(OvgF}mN;{ynpG$e z`WdbTA6Zy#@{0#5NKOGN!&W7-X`z?zL~qqSuyMm;8!oKR~+DtarxG@wFE3)D#V zAcl4xKCKv&G361O3ZHl}TyQ&@4nkKy=Lvmd?r4VZ7KDt39b|PeK(tU_0BcW=K)f65 z_JI5*#6JmPnvjBu%%OBgoz(#yJXZi0kQ#4%NbhtbQMn{3XGP9g2DaH9_5=)IxJdR< zH{^jp_h7B8h!ionExfV1aAYMihc-q|40-4Fpmdjp&+trr=AoSsJf|8?@Oei>^>$-w z0OdU^W&xWKIL>wl@Kn%dNeF?4-bJi%spdo-aEzykC@1zqJ;&fu%em z#Z--IdNnYII@CsK7e1Da0Rc5(evvYV*X5AK4xP+3rFfw^S84SL1eI#T5#*uvbbfieS@;c4H#C6dnKBBlUI(T#WqzDpih8AS7{4#CpKC}{-ZKp& zAn`Vf$5&58o0TTI((4d7w*vT8rf+&(MZfb^d(;af)Gs!D!`?B6BCRuQtYtI>sQeDW zq64F)qiM8=JP48#3fO_cJi@-a#}N_HyTC(7r9>UQaz4 zr*tvq_kh)B_ibTUTZv?&fEkzGKAT!#?I+^2qqfBN+Mc*fmO#v5IV*zblPCJ9sBrr! zFFHKGCVpnEMVY`N@wSKA0`oNQbu}fTYF7Fvd5f)q9Tcn^Smy=yyjN3!vOu8=7%-y4 zJU+7sC8fY-&K|~%6OWr{hgtR~H6dptNb+=Fp1K4hJvFrI=Tx^rWFASndw@0TG~d*G zwtPah148s}C3w66fvL|rr*=XVF@^9JM&G)iA8I>z7KIs!gy&MIJER#aSX%g5b6>B+ zkl@y~x(lFOWSwnhlNq-#v&o z&lE*%*<-u)ord~8&^Ko==dAf`pbeQ>OMtvsf?+7OEbSsCFLI>sJ+vp4+ffDhdiPH9 zVWl+og3E1%LuEyu#Sw}x@Sd&mQZ)OR{~6-EGh8@%UUto>;F8Oppl}!Ev(0*eIkDA{ zQrgVkReq`x!;g|4tM|`-lLa>nE&*b1^b{G0Y2xxS?)o;(#UeHR)LH@_!6!ZMGX`uv zSm!SE;-p87+pXOLWiFhLW3s44qpx+EJuyx?AiK^q_hOUn(H)n(JsZ|7>wS0Fk;T=B z(RW%K+`voV=FBV&S&nSAQV2b*ddKIHSTn7OyJPPJUe_80Xh0Q(q#IQ%-%{_!YOD3b zDc>6#SMEbNe{ielYr#6n({KU`)Sl@uJL6iFsm~jD-Tc@mkuCs% zlsDx%uVzUsrs%Z9FAzt9N6z93=E!;IeNbLNs)d=17|IM zB`DAI6#4c&%eT;cTz&+BknNEiW+2j`Ff=k$Mm3(@hLQm+Ojxc4oDXqk;i-;zN|=Tk zWh&%|TlsUGeN`z!iTcDW%tHXTg-0G#z;nW5DyTshDR}$*`NetP#@2Ws)`pm4n#5R6 z7`-$Enp!b6)3R2kYL1GM#Q?D-QV~jtc#TuVC2ek)h$q4Zi11#^Pm=7;lROIv>>*I@ z@m_hrBY&l6#KuHPbq3gReS7^)(q~BMHuIM+kkYawhm|0+C@S5+tcSatl{Kg1cskw* z?wk-7q2eBbA7MgLxQK;g!wUCm?>wnFb86fpfT5@?#~FPJ;u`vPvaGkJYTM+-f&>)K zCaGMwsK7(qFX6mVxAlb=z80C@WtJ|^z|ru1!@*g;zS-a;=Q&%ui=lH538Vp0?XB=5 z?aU{9K8sx?7Jt&Phx2~#(*$~IvtCsuxZ?4$zC0ng7%zEivFwIfomN#;x$;SqeZ~b- zj(UoBM+QYtBpV0wdd(@`%T3t;x2=~PTcK6bT$u;!>g_^0{NPT0emKU&%|M$5&Tcd#>jt9nvS*TYB(XdsGf}rw5dc9zzQ0~Osk<<>*DYE=$#mS? zmfMiZ9k#_Gw^~DZjE5`hy9iSKXoqd=6|PA5tHXx4)x=BWJ+9Ep%^gij41q+#-|vZ{ zw1l{w?nQuk8!JO4JCRil_#P&WT0N2m@!9((%D;m{sUTk~7DHd9_`I=oxOjt4JRqPC z$DweJRvp}@72$Y4$GyfWm)gWc~YP= z$$bx9Ra&fT_f^%i%h!44_jXnEwu$Zb?N;R_fiCV*4eY*L!y4EqI(Zj3nR9qsHwH}X zILcbaJY8I8dWCO^^A1maho|~XIx3>|NPpind!c61S_QwQ^ivI zmjZU_cAY9Sf&yXhb)%QT@wtYR>Gjon z3)}LvsX6+_cLRanT`(|+*CU~)bgu2hTPStUakVVEIe`dWLW)& zTfDc%^)v4QdFcH4M}%t}73GVde6f3$g$#aAw9VTgYO>wG$RhX*6R$6k%mWxmPxW@@ zA=?x2S}buH;FcDd?0Bp=N3Qc~ING`#*mk%`t-zX}D(QPM&@BZs)JKG8`RXWXk!K0xG)_qKwIo*2)y2k4hrxy?e zv8skLx?yha{bH{I+zJi0k276|<_#vObko6v!JJiE?D){((= zqMcN<5;>JF8Y)lIQ9$k5(i}LHVqQES6k978CmpQwbtJaRGA3lCo6I*tXzyLPPwCCU zlNSRwog6&M(MFMHs2lB7`TS?V=mE4MjZ{``^O)%E+~eJ7787(#@JFg+oFO z!0<=i;w(GAjCsKT@nNGC` zD`tu*xFY*i=GvUJt`Xp(ouOrkE>h<_)7lpbo%Xngivif41*=I!qDhK${I zf8on}EqL;V0mjK^rn_RGKxcq3Df*;KiUc%JYReNb!pqBD7cR=uVZ$acZ2-yOBF)f# zQI<^(Nr)YuV5iqrhH)gYypmc;9h}Y_rX9!lZ0nOU`ivUduOPuN#CXN%xhih>Z7q|E z;YDJnBM&RPFy@libA=;rPEOCpCIR4=s<1SMi#nX$uP%BCrS(t>8?J55hKCHrR&_FZ zw}ZsbkLqH9>SYI8@Qg0SGT6?th9t}>cTK~!>XjKd@)o}6qzu$Rtlbwt{jAM_R%0K? zEjPU05+Smn6al_;iZd`WB2pzh>*t=P;SHmaDT=jmY(L*wlfMoIPx8{C=*~13KJSN> z(=*kW`8MJ?rtZ?c`6P`$Lx*75R9P?GZ9TFK?7kI3zj<)6P`30;bY4H}5m8V8uW7PD zeE`86pf_<0dpGmk0f+`1QG_4m@s;)nt5KF+NpW&@?Xz0E;UqHeTu-@CY<$dT!vbnD zL+HTvv~xPe9x@yt0RX*Levk#-)MxLA_^HP6+W?3?+KT7Iqg0F!>|W*5!^GWws1MiQ zm>F3~tUWDHHLSg0J&;-_Fp0}wwDClSMe&;_qOsWF12L^Mz>3;Hg8eYP0+8JV4)>F` z2cP!H5;4IiqPR|21DMZ8Q5bQ;^_RK!#=#IM9N}ci_59FOu!n3CtZ?hG z)0w;;>=05n=Nt$kI1wO!zy|Z;)fO7kBZAYs-oR~7I1ysJP@%`X(#y}IjLcB`UT&pL zPZIP{WJbCK0g~{=^O<-Yl9jRSLNz!FGikXp4Nr=kCjoS^E62GTnSzp0rbL7pq?LRI z0`aNDPm}bSj>CnE*GSJ&Z4@#7jKGvy+YYzw6mb+;IE&$%xbGuKZPW>A$4HutsLUYl zDOXqwsH;TV0cnHR=F3CHamlAN4*LWiY~VdqX|UIivsIBD7%{zTN21&J^%L}U=%F^x z!p=I?x^vzvP6vE00u06oAuxZ|ORgQ9xV;_}tL)OUT&0_y)^Mex%(P6fhTU)LDJ7-S zQr&_dbms)GV(pa7K$&YAd6udk*n*f2dUQ}-ToFv?i)nG4e2p4$) z+OXCuQ12#e~P%UHKqi<>u?>fQ#)&seejStZP9rckhMp09XfEuA#B!CL}+I;@&o z?83DZvr&5+qLJ;Hn`{|Zh8&5BX(MgV6(oK3io#rDYiA5cQBo#}U+5q%VpbKB7J*(u znuYD!ETV-g;Gdn*^q!eC-Qts+)SATZV$wQ&?`NL0zC^ZAZ;s7G5@vX>oK&g;cpJ5S z&`SI85VYkxPwHnlIn#2PR(pg%GWs?cLI=l?$|}#U0MJkmXqbyop{d=e8DS4O#k8<# z820?k_k8G{3VtZJ?oHw^*k<8YmY{mB6ei&C(hjA-7lYEngbc}-fMd= zUAWI7p-I$d-i~-uhrZ{a_Xy$juCS7?)SQ)aK{5LV<1&_8(<^-1I`BY2M6GvELSZfz zh`OG}yf(LcUCAx)C1wX+$o;fUV`#!yjEQ0EvQ*ADGa~D6x`0^stli0rlDMPdlRl$Q z+m!N-2BuA|9%H_1H}tEb6ySWDeulG&Xo?=E@fhC0o%*^`I);^VgqXb8qsJ*^aZUQP z<~2Z+4(@CnJ!8kPta=?mr-jo|>47H(Zjs$1sfDhA8QeCIKI|7#%F#Hv^}Juxp>&^A zjDVjrb2H7Fn`1q6fg{Cok$$z+jU>qqEpG&{Ww-`xwS*7|QNewM$5fmPP;n{62h98+ zkU%qQB!3RziVb-65)h6t27|kFSV7qYLm)Bzf`y|tnaLNg(!3Q(AY~F=O%2 z?%lEN^PIShHuvV^CV&Mro`_Ih?CK0w;v#(;1RO8-dDUx9sS3TT_Jb8Zh9wHooUA5O zIk78KTzs}&=b|ReQ@R4}iRbYcA>-|wgU)!TCM-T|xU`PT)z(~O(^ubMS4c*gfJ^8z0#;WEJFK56&YiASz*Wiq7a`1 zyf+t3db0H3G_`^qj9=&YE0v(@(BPSg3w!%b;b(Mt`-CbVA=z|?=-xX&mKpUfBDpdy zskX&!Ne{0|3Pw?0dzW`yYK-sb;r5GrX`r}V1B9IGq?N@EhllSn%M12qMsBd`1sl6? zf**qjkEBRq9tqPKT80W@>_iXI>Q|`@5fFJ~V%r(5C=zKl1QvLl7LqGdqx~SotP0mH6-tC4ZXGH|6;fYdU2)uBI7xvs- zEw$g%QUJHhj)bG@_T{3tVf%=mRB*}Jum(EC@Ok&VD%OWsF4x55ThM}CjDlz23OP(q zdqIiQr@gpeT!^1*!1=N(tl<_FK8uvzgyQqs8@KE{VWr2ix!omn?21;cElsUU8k>Vx zqp|UDUJe1$B()S__0@&%OS3G>!{eJ|Vm^2}?1$4o$M)0*^ZX$P+_ULt^XmGL;rawy zj^+hkU?a1=UI~>i8X3ONIsyJHS1s(Sp|n^>SKJ%Y9*>cjd#6C@SP%kGwRC$TQ zs^yDC?&I$S&FO)Yg-M!n^^>-O$FQCvG54OkfGj|?@?^w2e8Bg>LY#nmt904MqvNG) z_9<{Alb!aPs&-Y?X>!<{bZQ`228LV24n5b0rCg7? zUQ^V~SeRso?p%|-Y*89`_F93TC7AcVCRzVUq)Qd=g!gms@l$If>OhQ^wx{JF9i$>d+^6 zdW(eD!FjN^j9xa_0mMPPeRMQ>gcQ$X{psc%7(n{GC%pHBlXs@k?}4{jI+KZ_T~@zM zPIBf<;|JQXp-QG;G3@KhE*xpF7_VCdIWwPFYXm#rU;q@ZQO%XJ4Bjwdu~jDRxrwb`1C3aJDq4QT)D%mknfBFd;5n2g`*)_2UGnb&ApAMz(or%SH8V ztxTU0r_V*Huy#B=Xw+shk7u{Y>FE>QFk;fFo{~PkB9H6@T=hvA2@hRPMHLn=Ff4{Q zn#BX?@m{UKi;;z;D#yq^wNwB_MDSQOHDns28JF6buAM$!4uX9M0>0oTmuQ^*u-o^W%jualvS87GRlUp^)^=fTcgtao6buyLkNUt?Mel-UjSE=&yf8exp^Kl0H8fJw zc=_8vbj*8d)g~E(KV#3z2zb6V2>=YNp#QCy(%+KZBLP{t)6GO|Mue?WU0-HzOZz+ar2H4j4 zjVm|Rgn86!dJLh+ex^oEOpI^u=2`{$ku6P{25JdC59V4%+LD=leFhHiio~jXMxd*ls=NDnffa_+LOk+SYCqji=pM<{mX|_zPWjtG^ zN_BiZnc|0R#p0EUAPRf-M9d|l_NIU(L3INR-UUTXs7LQXFW01G-+K<#TRsqjP!OKu z0x(euhI7q{FHhS{5XW&j)BU}0ZLUqdr*W}B7_Wm|y+=+^pOUDB-@&67@){q%n%jxX zE)FQL;YS-m!Mbqnbpz}E5@t#*2IN`yY%BXCmwfUl22rwYh$Rh;9s%LtG>bkwImqYh z@5xk(uXa)U<}XSq=t0JYvAb7zayn};yU08o&nj(p&{WdqIrP*1q*OkmP;uOrlk?`Z z@;dq}!8yt0n}?b08Ol{qi#_0(;%eg)2(21KxW@FD74+$;$e;0oq`&oPm<1_)7~A}! zGvYl53?9G^5|ZO9p580)yw)L&XEjwfE*N~mC7=+k_#i-9I8|Lse1(%SQmjIW8Fw}u zU*z#DBYHZ<Pb2au}?=Mm#56uf_xc54g$dWwJq)Kt(w4hjM%;B9Z*yfY@Bvn5{QHJx#I{|j! z^|pw(w^OxF8{qFA5kAgfnwjZmiB?c1`qGXqBL>WMBcACaABsOKYz#}Ix-8^Jjg)Zx z%KcpXPI{LD`AhRZ?^D6yRMCE;tm zO?zb^SVY=J1QFZj&iRzexioL)0R%lSPhvX-xs?RJwefnwgpY8mQmw`yp#Wy;;#FqZ zvBb#WZX(E$Pv6gYbn>{~JmSr4S7xu$@m6%q(P>B$V-Dfou`Oq_<8N9&8MKJO4BPAh*RF!%#!!x(Q%j8K7URt!O|Gvh*Q^Y8w+5x0bB0s*lj{#_|C69sbkzl zE$1ri?Gi{vos~cTnR~4sSnO_0EZ-yu?n38ds5b|Q1EPx5nD?G0x;1?gYx-%z2rXg6 z%hNfdV>0J9kSGpojLaEj1JD(+jd3E+fQ*T2O;EfL&!KejQEQqDqq|PPvjSfcT$5E& zTnlqy)iIz~V?EKwL=&|(VppmN8b{But;!^N4C@tZCsos&4kwdeZcRl^*;`t11uaNiWpKa^_9A>6tZ+L&Lr4y&6M8dCtb-WFXy1FQkU@v7z4T z+aVp0=qphzW_>j;cEQkUCLCb~-}vP?Ox5)3ykhHCxPn_shpQ(K%R6HvruT^%d&cni z>BBs4zR^iknnt|_%xodcmp~%*h8P=a1@66rDJVnE1D;U7wS!aK0jJj@{Ypqhp5NAJ z=19x#obujU@bhSn@*9dlc)$DXQw(Ma4y)$P9*w$t2m~z7>@*v^-ESPGuimxbcb|># z@U%7WF#TP7q3nA?DX#`-G?w9&9h0JF&IAZsupwyfTk_c$&n%$9sOF`c#Zf_#SPFf@ z`=&A;8zjD|DjJ-(1Vjw98?XeYi@juowc;5+&nLdK zJgqglEzb%II#-IsYFX2e-XbV88r=QN#!yXxU~Nk>@16HL=R+x+l{xlQ!!Qj6HKj5P z`nKfJBy`sX(TeO7Zo%GIhpSWbOgwckWbB<1z{2KV)`{U zo|k49TIxg2Br*kSL20ElW=E@(HKlH~=W7e2Zq(s#jJTtU3(>Ybl+lF&(xEO@diI5k zK|byGTwFn}yLP~}sh;#+C=WBmo7ynYLe3*PEbG@J34nduBzTqRYecP!{R&Yv(CeMv z^9(P2#SM1tn)+ARz;np5n78^+N(c`7`5QGU{6%m*7k#gp$hpV?EzUX&9}655XWv*q zNqSbtr9B1qP4H)+O3579r%#iqUHUrP_<*j30S?3IvWkw-V#yhJ-!qp7@p`UZ9wV$Y zoI(Wm-pLz(qxF=DCm3=HtkEQ*SV}++V$EN5O1Lbb5s6vYm9V~8+A!k1L3Nd8ENLD= z<@abr=wQ$1Y?SnlI$LMXckE~ z$AyN!Q2|A47)b_)k>bQUbj_MaAu8_0CEgRy!(b@fOhMsiW@dl#=tb-eF+0vyPawS( zj($*=1}kXfaH0u8u=q(ae(#{Pt5$8}WtbE2=4gXhVoE{yGp|>#Yfmz4gWLDfi5MBO zm|Ro3KVckGqVsbLc1xE?heOx{GVmThd&pVrlGiMz<`rVzuyy)y4@?u2;qXk@Vq>}} z-KAzIBtUi@8c;ozG9+ve`jBR5ymz1KleU$_ho=imocWxxR#dT3S7Q&CoDG+jSeqp( z-v%{_lBSj2A)ju(+yGtdTU6da!zerx$k47?x#|#}STXG()VvO0;-5x6NXzc8+WP`c z2F-juIWrMsUwW9apO0f9nODE(pCr>~$U1Bx?=$0Ydj>XdJVz@0tj$nk7D^1==ZLvz z+Ea>gCuQnU;7pwQYUQw%kDYcjzyLyWpHnvaLA*y}&LFogX>U2!6!JOSbK0SMY%|D3+X#>H`eL@H zdEIOU?jC~XAf%8G!ypC$(@RH)H_14grO!0;(Gj#if85vD;`071g@tN{?ZJ#Dss-iJ zxE`WDtTMFzNwm7k)7P5BP_Is3C39WalNcPL$t#QnzgITd3v~BM^!pB8XyNWg&oQoY zI4^^2Sj;R`6;{)+g(iH1fk|;BUpf=h>6v)&8-YycyI6vhAf4OF>=!~Y0J;^#Ex7{E zcjUe8XSib+xN}cgnVp^91&V1Duew9LR;L0&!IfRW6@+?>?XHq{URru|5?wk-F=?@3 ztwZIP+B(Unz!)(!Se+%$)F~Z%v`^(!1d)&f$Gp0UOKM<)Xj{kY!a9W3-wb)~1w>Xd z?oj}ptvaP+=VfLsw$tPg1pH*8C6vXofma5|-OZSWHeeAgpg`aXUbMCtpt3yTsX>WKb z{E{OH#2$+5i%+uUJB-Z{3SGW?EY@xhg<{5R%{fSh$8IMOnQPf*mjE$(A;cDIY`dL3>mft!fF6!~>l;z}y5oFD^yt z?6>;{n`APjjZbBXwM0;22jUeNln*%e%21(RJt zA)$A^=y+~f!l6o($hq>g!?I>iOOzdE(f}!){Xt-tPZZP!Ku5h*z(rvNjsot~_hNB7A1C9)1lg3g@|YinaH~WHU9i zg78MmSOyJ+Wn*VZtud$~+@akf%n$(xARuHsEg##GIKs<^DIhC*hAWCZGX&rma?oOL zwUTciKtx|6>dIl#rKe89tDLU4G%_&Dc+<}TJg}dbV?t(I2Uv-YGG3?jdQs0R!5|Kr z*-l(4@Sn;o-b{;$UyodldHN;gI|0z-c~_IAWvs|6Pz+Uu_cZk&@l~S8 z4(Wu{C|MbSG#Cv~DNMnQ?TbwiZ(67%pvgO!4P1ZHXYuo$r*|Ps92CgXT|9i<3$r@Z z^#-KCSzZ%jq#Hl#{3iV~wDr?hH92I`0@D-DrILeyQE}&zxQ6Xu#{{p6ItZs3uX?=Y z`iZOO#-2-QM>$s|rKA%P;EuYuZp${=6}ec-VA4Pg1fm?#baUJ)o-9_vovzo*uGczg z&ui`Yz&VVA0+(FQtdTGwi%`+QiG3YoE6n}QCORo~jKtv1~dRuHO2M3BV*?a>%-Y)5K!uv%# z%*>!rA1EK3fRvzb`ILzmynE7NEatGy>ERi~pR~tkeDm^Aukti8rdu*{lvGdbXvt)( zhqKfEg4a|?1_zLbxwj^kFr_MFiWD_W(;Mvi9^%PqwVo}MSazCslLe$+l!v=`cC z-ex_Ccra{>!&B^wyi*h<4fo)k-npH_wbxn_$sN&EMSE%C7&Ek(KNxz|CIwm!!!SAO zpz_`bLZ0?Bmv!Q7UZ|f#niz*w;rTN}eYo-NA)kz~h*oH&^exI6gpe!geDBExK7*VV zpc}$_daSA(Rn=YWm^>~CDg37HOw0W_O(E5#Qmf$diFYE-t<`n@ol;c0vKymT$GZlwE7 zAH97ev_UoRiTLwxCr*J!mh;x@Ra$ozM5;p1f%S?obs~;W9FC7Uc82a@`j#$WkW0v?M($ z=AZNW;gfzsNF3zx)(-ovkdZ%w^P~wy!RHzguvhEE^hrK_hC8qTZ8r)lSIfF5rW?oI zc1}lBC@-(;D7b<#4hzKJq~?PrE2f3QvU^DV4$J8|tU(5`6w)>s1f(Q0nj}?`kLUC= z>Aht>bKvt{vQQ&5c08a}ORjhR((tf_$QPP&!jO$mPmPq`^`;MIoC_LU4#Oo>4GFL` z*TYmanWq-vHApC@$F6$9{_LVpeUF!}N?vuunn14Cr+Dsz5jd-h&KfDPJxrPA$;fs&woO$ZnPUFwSf?`#9m z=6%!uy_<92coiTos|h{kG|DUa@xwCf86jVDg_YUsOpAh!d_p;|oH7}-)}OF$S?_c$ zh>w-O)ZBB@0`l?%GAxa3R*(#3*^HA-$TWcCEpwJ?d5Ty;6#5vTLwIlP1um;uQ*SLe z(S~Rb>SHdTR_~X@B-DJdD3}kmUMQ1TnezhsX}yt-Lxgif6>3X;kygFa)!lkDU?f!m z+>N1?rfr%ThmaUhIEd;IT$yp#p@}L&sAl}cYul(`IXaFS3EBKM>#ga}yIPHMr@zVe zYH=MnsAZw4s>FL;k6|{`5uDOd;_Krb6>rUX=4JuY|KTx#Phazc->B$ zMbC1kM3UT{^>%&o&oZckzyn|Mn%khf2Z1Ml#q(dHK4dpU2;#Z_nT z@jP=(C>HbT2yM48DExhMv)#A3sYur9d%da=SbpGww_r5Kg$pGEww$l_TLSXlXa6rs z;&)G$wntpqL-Gj@dn9XQRz%+(jC9;};_51&DVH?9tEgwr$nEP5dt00x0?;Qn!4_EN zv1*%*bOY>5@~qnzu4769k2!H)fVI91qM0P#4ku%TVo(SddHK@(K!B8{q~uAV#Nr)J zr*0X)awC3R{;0(^uW!;H$nI1<-(%Vc4IN|&3u0+b5Z1SB*fgex0dzRd_;fB_NJDCi zjn&1j**aX9Tkew8;w_T)bnJO>zO?D8X0?5A`}R-0^=OkM5Adf5j(5ep;325n<_YV? zwvEawlM{H2@XFkR`}GBke2PFmL*Ss+<{VHK&YRYAFYhPvT5w%;&Kb(1LDyVU&P{AR zAQ&M}u>HZ_`VbTgGu~s7aX4cN341C$GfL1i`;6gA+XsfGi|WY)&AXZswT9$%t-qqx>qiHAK?5O8Nb#E>ndp7j*;x+`O62a-w#@a;nLJ1BC;Y+zk_i-NTtyQMvm zmKKoLeMkJpx)3X3>%@DY#p4KSvfstQlAp=)!doextzHGo7drlY)Gn=FAX6Kbo8O3t zEjT6mcH-4!ym|FY1|3bxp(_eKxa#yKR&>$gx;?XB!vxcrGF3{vdHpE^{oeJR%4xMk zx)=zcE>*7GiiN{0BiTw8nVc98^E=~n1xCAw>wOtKNGc zv4FNj8``xGT_XnYwQd4-8~}SEP=x!N+GdQX0?Fxk8zPCqOc;%bayzhcghXCocn@a8 z`q6_4AGR{yhja^<&w!C&tfAGyXor|rW{UxmNI{;_B_~(9{=DNIg9k%10McF+37J`2Y;d$T+EzA>iWI|}ZQI_IJ;MB4-Mk^vr%W5*1%Xr$4 zR3o#iYR&-{#osZ*lDAR#vrT*`RHJOg14qSPuSV*kEwIHMlpGN_d9x~aR@M+#I9Ah( z`Y5cA1slxkUHaLv^eNWXx#O#&=Lt9u*R{n^HXpR|8Jn<0+7^!aktxyDQ_nJgnOXT( z_@&Mb&gmtJAo9aCk{w#N3pcjzveMMK+=u$io>9TmI&?&I8x*X|I4i1)>?z{pS^?`h ze0_6*Hq<3ou`lbV6eL4m9s3qPQ-4H%uE|@t*QF2JFA%#xJ!a2)S@95q%`uR!d)S zx}K{hDoZ1|L|;V?+EYlgdP0=a=+4cf+3mWDN~*T~@NFc*%k&@+PAVKDR7n@9?D5NU z;FmHJWvKTo!Oy=96uYed+bA_l&)?e7`&OlSJrK4K&8h6rSlR`Q<%BiKV$m7Ok679ezc z;V%&Ch4=^f=erU(cr){4*>XQg(3ly-w^3M){sD9 zM`4E%^;m{tVX>ZUUGU+ff^}a4P=HaYiIdHH?sKmBp1~%O0Vq1{dkz5*uHLW7p&yTp zz7$fwGz_p83gA|pn$^zcPUlX4f8{4ELBSr0RMh6^wzLVh=jFRcHthmH&ABXxDNwtb z*v~6%(d3v>)u712`59$uD(()XIw!|26N7^iY`&Lq_8wxc^hN-KkY8lIXp5ttxuK;*}_+_TKzeVG23ufnM}vsx`N@$ z$T1edMFNm;g_)(7<;G-0RQmeN-a|=)GkQHo2D5zoY$m}I`Hgi>w6%uh`YWbjmujdz52-lZx%U!yUOj|v z; z*KxdEj=d}*^A2*J>db2d&j5}X19%u=%|*gbGF14uBh?VIumVRjh6wdNnxqcnu2Gj= z)5mpV#$-unxzR<=N|4}&I#*9=rEydqQ)i552CO5#$33`RelUv`9bL~W-|20$LaQDL zovyx}4*fZ3TG`_D8+PU$w;NQwfH-Lq)oIv}Ld$l3ha1b2^C=4a43(wG@1l7FXB+_R z!2raJgVF;>9KkGs!BLSS}Z^XBy5{&^zw&4)E2Lz(4_=fK;&}c9? z56+xO=mwd+jozCF3;T$b$fSq{uwOHK9L9`B&4u{Zk}qSvyQPvtPd8`mD}#^|Pq&Us z!YQLl(qN0CX<~oHlOfy|B&K*fOiu~2Hy_Ii)uWeY#HUFt#`aJw`Smynv0#%V7BM+# z?=9Bw8r(HXGOjg9IAM$(z+<-+MIA zE$>B-G)G{si*HgYOqQlf@_YC~C78oFo1PeWEK8t5SLaTA?QivT1_If*}lWqeIU)c{ca zRvz-|j8jMOIWwHJ4%WVEivv$g$oF#yeY%4HXpRt31TDgM_kfKus z;HNP7GibgSv3HmKsyBt~+1}v3BPip2ZsN6p((Z|OD-=;s0OD-(65o9Aap*52*v1x64H%G))H{U)ZXwTdM;p(H5hv~=Y?+RzI0&m z>^9eD1CM`6WAx=N+Kw-k%W6T`)C-X}EPB9{{1T;X{k?4;_xO~?`;45sUFA2IZ&C>j zZa|IfG;AEt`4sR@ai2MY40o9T9koXtub=47JdJ@D4wmfhl(u`-F4vJE5JDT5{>t;V zhI`Fv-lT*BkdqZ|g}c)x9;BaTMlT?zZd5;|E7kUSi9SjA02eEmMYoWSjihu6)!z{V zWOzj)#>$Z08N9qJMPDQXU$fPfj_kh)w6n4P%WMK$4@`l)rD~*N ziV2YobNChs=WW!zM-=xKw@(r-4z}`*^p=sEXAw0YY)L8!6KAWQf#SV%ylm(93>R8L zgb%@=$t?xU=z0;$CT5BJttt9pdG0tHU5(I=JQ2%#L~z*+w8YC8%KS|RV|We zYo-kY^j<+4KRS0Ux8j-UmDlbDSEOl}ekugS-?>9S1L;wO zhlnE2Jbc}VI48Xf86i~`w4_k5Y$=5kk8T6dFkd#E>bxKy%VD#710t{MUJLOM-k*6} zjNU6C@9By{6CW-PRi;OG+@(9K$(ni~Q(XOUVO+7;U+HX%S3&4NKB60WG>0aOwJ3&H zLb<9(yRu)}3(A4Vyjv(wUY;K#6&IzLnZWX14I8YdcQ%TXIELX>a^=U=b=tu;SH>ISdd*v8&6nG* zF27rh)?$niM%0}r0H6mN{;=)&eW6`>aHPN2VU?dlhbv74X5ez7xs>J|Nfj z)CXz+YUytQElAVgu}@(YE6(1oF&Yp)l5;1VJ<`FwF}rr*a&&nzAd=HT{w#FGxlLDZ z?R8|6xMe=g^mB)IbX(%A-LE(+E6X26ia9UZNJJbHJ=&7kW9YG*tVSK9sVN9kVtCf! z;c@PRZ}WiC2&oozn+7Z#GczJy%$&#e1Tb@&Rlmh>Pp7Q2w$5V;{3VinS{|jZpe-0? zo}3hk(~U)2PC$xxycW8sOOd|*6p4R^)HrJNoQ-0KHh+r-SEjs?Ng$_>fkABxt2cw^ zWU^nKBrQOhW5_x99KCDPCGE0W#%Y!Vf3If;MXf3+T)gi(?1};qn6Usyldl*hy0OA| zNMthn@$yT^2a26F6+3K459_jun_!si@jW0diG1D7E=de{&J6{L0R=|`m|cD_4-s(@ zj_xhKU<)#lh!mOzk7BtQA$|pYWu@b}HKN>!mnz)SKsYyg5(KMn%@}jZ*yp_k4w4XE4h6Rq?8BsiVQL}+-e81Zb9*nyPyV1ijOhZ~ZQKv@HiW|yQ z@<;Iu-GvYGTPB}zH5Vn0FPRksfO56E*Sl)QhJ0lwMp5`lNWYGI+z%+Dit)G@u=dk>Dcw`Sr3H?mtt3g=CUoK0HPzNXUf2@R}#%znq`;D z6%8Nn^y>%phLKhAUS!P#_ol@lnxH$#3%%9sqo96GiDz05IK#%8BPP$Kp62*lRC?NK zqt0q#HOs6`0VDGOR~y+ii^;v{I(ej z;m*i9%M8A6P#iiyYYVs6SKSJ6&;b^r! z^rsF^DlFpBhKOTacfF6XUO#w2YswR3AqttvzD3jcl90xTFXAQMs_5OD!6$;fZ>^QE zC{q+(A^>2Ko2Q2*d4fYoGsz+(>ChFXN!{pc5@3ibk$mrntFmE4P!n6-hU?)TUDZXm z=se?}191rmnISejn>~X<>m#@@s2z*O#tI>mCiB-Ez_XuX!S929TL_P1`w;jIc9=TO z^LsG^z)y5m;hB^_FxY$kteLs&iAmwL4<)*WzUPu$uKaE@Swb=slkQ1K+Gr^Xi}LI; zR%O4(?a915Ix-=e;gIUA+9YHp0=pqV0&}H-n_VL#nv1W(K-Fu}UVF^ZZ9dKwI%IsL z9PR#Yl#vtFLR-s7Z@sjd75B9x>|b&@ zvo0YMLh7JPn4BOil@oA$PP9Ba;;%h~JOU2rQ!WIba!Jj1@1`XZhltrRSMpx?*efHU z?UPvc*cZsqwz;dMYc=6vdpALVcCUL@wctH?NCkc+5qFJoA(R<6%iq@C_vMQYq)ugb+tH zAfxotn^JQ(DQ?FF;e2r7*jL;15+A%mHB2n`)B!~Tq7d{eM7?yH@#>N1zp zYGOL?tv9CAdY^636{O?sizP(xh4>cCXTY7fOnkkyQ8p`rr46R?Ad)%QMG25g))y8R zQXl%9al}Asn&FjWb7$0Wl`n;0LA3=5Nm9J6L2y=g2fdZG!$rG!%lU8s+GG9tUb1rM zPGNS5`0|L-Ap;eUbCtX9kd-MgTR1XK7DzopW5>-*t3=s$f+}g`64V)eu(>TsHXt|G z3CB{L!btekLF+Y;N%cTxauJ{%KMj*9QN5@)$aZfRLEmdinpBt5I!? zqvUlMd#nlVVlr|esqqQ+r)2mu>eBcld&~o^cr>AX>(GZAOr(++$STdHn3+5}-N12L zNjXBP>D>(12xlOxWd?#EVRrdK8{5E>%o6D_yu<4Ufw=Y_4wkH0g<$4b0p7?I7Ml&K z6iC&1I6PVoRp>k~vbYtZ7)+mXZHR~+l@%Vq?&?>M(YX5}s5tS7>uKeqlUs(o^xOw6 za}=R^!A~dUyjTu3ah9`m7VepikE=qUgTlI3RBUu=J^};ga!W^=I+6E=W1l+#!a0@p z0?7ILo!)Y@gH}@+Hp5`qOP=f@g@;Cu`7Avxg|zb}C6eLx zwTz6_N;Ztk1R;d5z+9_D*u2M0*bea)l5cM)6ss#cO~A201XvUJ;#hZ-LQ8byhyl0?4Ni(KA_8-dZQe zakEMJo_DPYzp2(&O;CIF(E1d%gHCy3*EsC=KBkh&M`iKdWDA}`oV&Z@l!HM+8H{;Q z14LpD`KNI7I|$>GOQcu!C=#!U7>O<8MWqp7b)ypvlhG`Ilsa)ZhBnFBN;e&OT-|#Q zvru<$*82*fWJ6n9RESz@W)GBrk>`xAIfGk~2bTd0ZCYAYelN5K{r+N>O%*e-kJgTWB zYy*LMM*-nfE=>~O);_gMv0kou@x0X4#$LvpG;He$L)X!+Vy_-(wI8{@xf5|V(_)Oww^-_?y>X@B_^PcXc%kNd*`3j*=f!nYbwi(m2Ya)Z!cr`^(C;&^E zmry1~-_r3<>D*jScML`45a$AWYpe7m=AMZWVYwUa@R;2BoK1p~4XG~CTSsb+vvA%g z;&lUwN43YdC0YrA1be0wXcY~?t`^VbS?-1_z#xoU5g@3Wrw>ulYD~0At!sBX`a&~%bss7}dMIZOr#RYV??~xCbfeK6EJ_O$qC98Te zhS3F2og;S{u@keVoiP>!MlFoGSW*iWut=uv`A^@uRG@<>@^iH?!;R)p1*USiq=RE# zf5$r-wU!&-;n+UIakwixVcal;Ji>F*6Wwra%W;? ziRR0@+<7mQ<{)%@q;Sih>@lKy@gf}NIbtFoiq@7Txo55fZw)@fQhJ$~)|zvGO9W6n zM&q8GJB$GBPK^6-uh}#}4@w-SJ>gpA0;KD6&-X*Uw(Qq~l#U zJkj@zE$Bf?7G9a%biODCIj~CC`YY=y_Uc^|NxS-!1JX@-1f~_3P)$99tcygg615~T z;Vb@d?lqkPGt3+B*|j=MNP17`?RKl*QSM0{fJVoOZsz)gCF0UHdx#MxAbIqQh?DZkcF9D5nfsQ~7Goe0kYiPa{C?b7b zWT!gzwBQ+_YFB?ZulNki&&mlk6Rt`|EmV)zsnHrNlSY|rL$AkqdDfU&J&t!RB3@$M z6L9J`MzZ7ckU+YmdQO@jp4nv=PCiYkDC+7Ln{(z`J??mHm?4*FbH=Bjf{~kWXEBn9 zkF3IX?T}L%K-rdD9`e&bkZ=wpyv@j3>cQ%&IH8`H+zT`=w5@17dDYd&45hXD|(0RjIT=32yMB691Ht!)J8%zQa?y6>bRk&DRTZGt)K*r%kWAE%9+Z!~N$rNUMR+phr)V(j?kvuf5dV@8% z9xCrKl}{}uvh*WFDUMe_&qb5cdD>;voN8aa_lQH(y0>4Uzj^X}bNNmagN`3lP$ex> z!jalBc9R;$mJ2cLOux(d!sHG}U|$4F^>a0Gs{Vg5qU&tM`_u%CHjp zlQ&$68o3~z&dBVIW{(y49Cy*Ut|7>tzKa?opWS$^xmlLEy346#`%^@z(a`8=NDqAc zlGr0VtGP~3AJS=<^Tx4-!a#|Bi|8{%Z}xzNVc$hXa0Kvq<9JueyeTYso-PA#flctG zI4it0w_}Q+Izq$>%a-*Fc48JGV`M@h%93?)7DZAh8|1CsGnXRHhc_;!sgtHJeMiTM z=7m_wlM#B)L>oQRVKH;w;6)P*Nz5)9;!?NY05WP^S@-K@FIGBV2-e)d@UnIG>CJbR zQt>FN__V5zrh`OfSxp;TR=0SD63#V~cxQOP0}sRAGYztM#dAp-ikK62Mr9!iRPUxR z{P>2q9@awveI&a4WPQ8^TSTTk2?Jh6!C?;UU6z?^{%M#CLj`Q(m^)eY(a$&y8gaw& zP{-Kd(cv`l>v}` z-qBB!|3H-`FEb^IdxP}m0bfoGTs4)cdWVdc!29+i`V7{9MsvnQP95{yRijya`2~?e z*9QI(SB=ZJsr?GJk)oa)J<48)L!oOWev7s1ndLpA>-Ah0rz@jD9$3?bO#1j?L!S9A z?KmZ;#Wr+-L2&48#rIj7*atbZAb}E zHgMcWgX#sjo`xaVLXRZ&ErGlhmNE;qsL5GTy%jM47gzLE(s~J(=ONX-0f+)GUo6Ot zD3Wb151t2FUdi+AoUBO%0z|y+V0`_MUwE=Yf$IZ#kwjg@ZH(D#k4Y$<$P$LsV_qu& zDyW*zRS^D?lIZ!yX(UIikVj}g!hxVvvi#%#RWd~ zdJ*;-Y}zrhMvX(JU_sp8o%76Oc?iFkHL!+=MRT#@V>&K5;Rsr+6yl_{@aC~7ii9Z0 zzIs(oubBJgZOK{{48{e-FEK^H8?o7`V0mOmEC~RiNW^mZHXdma`U3g66*u&!nBMoE z`dK%o#O+na%V?8IS8axAY3zcA^9@#<@aHc?XJjxRoT9(HTAu7UQy?Gg-0rK>z=+mf zs@D*dd~Ya4ZzY)%z{Kv2&92N92t7v3uv}2}d=`ckVya80GtZk(%pYFh!ApP~*)%ws zXOW}?)6!$UnZ?Nkh=x(N=7TYF1{06i!t=}oZL38%=z0LJ6<~axYQ#bw=uO9Jul>@E;Zp8Gv%^ZnpY(u0c zT=0f@la)m|t{kY1o62y+Q?zQ-u+VS$?a=acvOC!*-xSWfVsd#P0I#TcNx?Dw4!lQ) z3jBPnYy*rrw)+&6d54mdCW9C;6bc_HKXsu_%gA|2r$t57PW8@ zP;heHWD*)ixh0xsK%if1x;;QFK!1dJ{ggNh*wGn_CMmu0QHSn31J{@R-XiG5V?+>K zdu`T8fpsz!!m%2nR;P*Br@>TJIn3wrv`!pfgX*}TG7qL83j%NyzX*=Hc~mamgih9e z2XZ(Ng$1TEZJx+d()s2p!2zpt<`PYmxV`k*W?#McUb*CZXY2tAHlQP5`OZ05#m!wc zPWRqyi4S-Sbb^VFEZvL2v>fAwgW}HBPX?I_Lub{CG^x0kGYM<@Xm7|9AO z8o=1RS_W5JHdY7QSd2KkYQzDvU%0%Y5{-G!XqfLoRk=HbC_QObon~U{JiUBE%AhF>G?kUsMTb}=jGFREbG0CaJ*z5V6{;5$(0ABwOFc*ZDr7u! z7oys)F4dh^X^72T9N`7lH3A-vx3Vq|?5wlrfHZ+6&%MhreL`We6>$`KxxF*k%H_k_ z$L3F7VwGCj!#2y-(&7ubcR;0YvKr;FEAr+G6PSCn8-Rd^D4CH}ai@>z&1_6o6(Go4 ztkHVa(-sW*UK0b1Tc>%02E73$&M|k}rya1~ZxA4RVs{Alm#}R09k+PMfVg%`$>SoM z#Zt{+LBplBmV!HNB19{!g9dqpxBQI52n|HA|XBmU? z9)Y~{48-znbW&HDrxSd**0NOQ$Q_gdy29>yJkJ2Df`?Kaa}c8aNx-Xe#XQdgeOkI4 zQS7DoKydh-`Xf0uos%-!lIj+hW)yg0liswo+)Ei4`g48K^Iw$!=@}T8Lvo2otCITn3L9@K)lIBmZ{2gao zQ@|@Jx;i2Qpk6^j<|D!34N1GzD z`OGSLqu%Qt0dF>W#EO^~v?Bauno!K5Xaq5~@%u#JtioW=R0qWpC4#@i74W@B z_kp`vPTjYsqTriqw9gqDDISlZTlXFKy?EHy$SY5dE822ow`!>X^-(?7&U2BbHa_vj zeajp;=}V(Lp^I|kFNAZYi7^lhAV)!<$1-m+I|@#fb2YP`2*$t(2c|qUuz421Z;exP z93+<|976NJ{E&kg@CA=5&lsMwYjl!T3V7KDuHzzkqoGc7_AP_IA_81^eGZ_Cw%doL z51zf0dD1r<_lEa^Mh8SHAUp`;ji(d(l#UZ{`Xj|5fH8c=W6%Bgkv-H>4{cPH0(q-opi{dW!i#pVXnL0v@g@%*xN%Fr?cNyG4aCA1wEdPb4uc zA>cYFUI8w-jf7N_Cr%o zj-{eIkeS&z6Fi(fMH<>Sjxd>=&>ipu^&%hVsRE<03!0};tl)X(;zI{-ua>b==xoxe z@RyAqFz{IS%;Ax?Jll9_1%80pb^Vf^WOL!25M%)A(UsQ;s_Y;c>$Tys=8H5|e8#bv zyzTrzqp%(vvOrUDmb)}i>w}6jb={GR5VC#P*JGi#uSv86jnTD<6gBQhEaYuXIyS6a z#Lqy#waACG{doDbKtRW`2z9X;k>j1U$7o~_^Z+z`3XDDjy9@EH(V+3Q_l?0hwYNFw=nh<3<@qV6a z7qD2ynb*VTglGq-s$zeph5%CNlY0DcbOWxjr&y>MF89gsbBebDSjr?ci_ab$l}oNr z#LPCM(X5vaR1!uKByp82!rkLH98-Ma%pe;l4IC3L8p~#7k_K7MHaJHb<@rif??F{y ziP;mm;pRWFy-U!Fv|f5`jFxCLza-`a2zc^X#&t1jTYLu=+g2HFoo0f@4BkF`4wR_h z68ntyibjWFn7X)c6%Fz#CuHQdBkDAYUa7rmv>9_iRFoBS2tC`% z27-YixR#9er38k0?x81=(x{3e41&RKV7E`QE}lP3jkHv!7Ke4#csPU;5XpIs2NlYT zosxyYi}Vsxcn(|Kp23PcUdfwWEEs=q(0(yk@LHc#B0OvxpE@F7NF~lhQTF1ANa_c0 zXL?LRV3FrORBXqxtJ;`1@`XM@pXGh28Vd7)Htk*rmp$_^? zsFY+g-ZRECndeD1@NCrN+2NakyG)TwS&Fkf7*rgW&Fgmr6lG`~=$jS8@Z>QC)KnUZ zmpTwMRK5j^>X4FZxQ6#Kf+}9U?%^8Mfz2wJs;q!FN(*2@{gw+LaLl;+UgN9BW|O>k z=kyA@=n}A)2KQ+P#470yO>Pj}Yn$3qmTHrC*)={dYAgAO8~b5*T@UO+Bfixzwi5|! zsKarIgEqBA2cTSEjwU6=yIBf?;epD74Nzp)(7u(jWhw=@Cv%*c9Km#)HWyL~mu^T& zWO$v&f!J#$h=o68ra(qCSaFOMEfBbHX9S0X=_$CS7qY|kkY+)7K4td4<35j)Ja?8i z$FO{ElIlCx$M4TVG<`8k?P8?mxn`(S%w>a^lLt5zr4pho_C54^TmcI??T*))>j={B zzOg-oxrrUQm=Dc$8dmhUl6#B_4I_FJ#`Tx3$-rHdWMe_ceyr)?@b{(Qw(qI zz3S)bCXG>P%Aq<5TbmBBfJG-z02?!}vs0&w@eKg_+cVrG4jfbH5HN(Pmj)MvboYk@ zUQC-%FS@Ih=RiN7^QXFJ#JH9%Y6n{)5V1Y&P%G!-YI6z&&g1vIzvZi+Sl?3MO0LbmEpp&_e3dFwBZhA0Be?tzom1Eba3 zeNhBTUA|mTi2FPE%V+SXohGNd3aBtdp8?KH;KC=z$^o+6H8cX-qd~=12LR~ODmc7h zq^$wNX1tC2ToCqAq1mH?0ybNl)$$Wrfb@J*&mQ!yPJuHB#SDg`3E(ttutX+TA3j@1 z)8Z_He&Mf?mpN7)w2EcbInRX*g4Mt!j>i+OZC-G7rB)%8oXQ%mfpp4f$MaF$;W36H zo#K$<_srOu^m4!>6LMe~w2QnBvJXMeBaiLL!M4!|zfkW^dE7&t0v)gLiP~e5w=CYs zXbqNNbyTpOk39{7)h@3+Qj9o&{911NM!0-0#P<+(LBY#Tx*~{k!a#f*)C{28o;H%D z;_lB=k(f#uh`kHuhmGAYyZD_xDVeZxoY(8e-t0=Jjo(t!&k-P?$Wt@%R+s~&x_ljX zw6muXLaFS|>DfDfvRkfUrT~2g1y@%mg3DEjh9;Ux}wg+v72}y zuUVM(vXeRsND#PafLd=1CppdTp^XKTy14uAoaR@IPEYE=BOuS# zFP8L-(BxZe{^@I>@tzHuynv(3r~(ndH?>ErF0Vt*M+Ql9Nm)rv)A?exjwvC*bO5c2`( z&oj8N5^YdhfSrhP<@vp}JZL&Mx_2ec1(+9GJOTD8H~Sn5j8LB_bH10<=7jcDxVh+nKq0K=8xgZ|%J97M=v|k19n%nI{ z3)v%um!Cin)5K6bEa=Lb5}5Q&5@dXW`kJ$}x`qV%Js+A^;Fc|x5>4bXqVG^A-;S(; z?SzE{;nTZKK`y6r8!==9CCY^m84vV7e%=5?D>_a;Js%8OUUV0zXaz-D0#*sJsVyu@+|VoDFqQ7%BFdQ zAGP};bME-3;QVty&~k<0Fp|VqFTBd|iM@Km)@g1Jo~fU{*5`#LSS*|!RN2&=nmUzA$1Gy~zGId626CKw)20^@|IAWC8V7Ly~9J_2G1s>f#i&h*}F zmw?v*lJH0gc-9LTMtXU5kCe1%4LsgPiBggKK++TF%RYPwGr7|640R;|oSHctPl0WS zM;4y!;vSLnm6x)42ELYw_fW~wh?<=4p3st{Z7TR^^zP%}1S1)=P#)k%>hDP8g^nkB zQz+sSMnML7!HCyj2aI%Oz6xf{@7y-ijceC4Lo_@>w+Pu}i|XwOH@*i*V6*i^ox@jV zBCRiMy+f6knEBPyKsx958e^}|n=19-G09<)Ehv>ziVv9TwNAaE*2ExJcm-%OZZxQ6 z0lwAn&=k?F+gyaSDcOy0vpMxq6~_q+ia=hNK{I)t{q(u*1&;U74^&SCh%HP67xXl3 zP@kw%=9`!?$@8_Zr7i({4h_XEYp*ndxk;E2v_-jICjqe^m9CnstK;%Z_V9S-Qj@b1 zDl{*R$04O%YM#6s+_;+@Y<83rVBgq#Oqngs{cin1HyiZ1ibE&K~yi(pHDYt5MpOfb8+7mqh!xUVsY7sFg>9%dXV2DPmliHiH)=J$_?<4f2 z;#VVmL6+rDmpva;jiX6yEHgU-YMRJt#2m}00)Ull&QZ|qUKtC4ZJj|$4Vv>it4mna zF2cxpc|tD>H`$n9rs`u^84kOK1eJb>Th+_d^q>Ns=`dKY18qAs_KRw)?dJ_@vQ4S2 z$2+`I_Hd9N8-y5Gi^?L5Cqa1=JoUQ}eAmZVk6!dRP49{~B;^TvQDC|)bHErI1}50^ zmoj{O$Dh6EZqX{7s}w_wA&YrP2RoX@&*e;ca?25^i?d}4N577){IS&L5tQi5_~TFd|xC0rzXOAL?`jr>w4ZtKS zusFj`d6+ZyTPuL0CccJ3xoL)RxiV;mevGZ`i%C*~orh!V1p;N~QCAEnac~5;eaE95 zS^Y?)*wwF}%sB3|Eu^dmN11Ibb22!MIT6--{l;0#<@Ii40|fxE9=qBtjK91)wwh%I zZz9lE>SvGH1mYpMo3(Md70J_EkWFN(oomn}3nhCHkuV}}($B_-IG=YNW7%wH;#Pa% z6H{JRV^nV}EJJDRiP#>VDPk{Bc;PPFIl<4G9_!pOwHY42WEZ!5FP&P32iX$1Gs#x9 z{qE-i}fJm8`aCk@K5nEeK%ZGyAw8e&6yY*SIoe| zVG{jx=0RWz&E!Uo>jN(hW(ki~eE6yfvfcm^!Lrc9y^{_hDzLap2~&IRW2m?9;fg9E zloFya_I97&fL8ko;sBV-ikbUPB(}7%&^th97+S>V9W=1hVTin3R?@@pLdmkGyf|jw zs0S?U21f7&6)?+7_Y)$)mZz)l@tbHKd-C29Uj?ru4IN&g$dh`Dtkz-7Qb2+6UV9ls z4$m_WGQNE8Dtye7wYk~!W$k8Li$>!_T3$tR4?D9HvnD1Kp+KUr_%Z7M=c1pgwu$kG^t(aF zrdaL1S>;WZgPaq0>1#+He@R9AX6U`pDf3uWMuXn7XW^Mx)$_#OCRF8v=P{*E&qc_W@_gYlC(}}@mV$XC^%KB~Df(sfglRH=g4Itjt zF`EmUkHs{po~G1l73|BP?cK`#KM(%@{PVy5r#SxcZ~vP7Ur6+y%J}#HohZ}pTF>in z$5aIypNS?Yjw+ov+`ZYy_2SZL9P*XJ`Qw)#;`~%5z^~__W`8b;J#2s!JnVA7R>@?c zBvfU+=uiM9PBT#inK^b}W6|eK)cteO9>-X^Dm>Q{ojasJH*Tj`O7cz|8R<%Qx8E2( zzoa$FFHF8u^26VWshWtN?5p9kpyY>r=-FT%haDZNhLi$W7=xwC)IAS;TfW@mGdJP6 z*-va*T%y)V6uR9!kol~gU+S)sFAJ`~TLoMPi3C-vOMh%c7y?v2ezExnq!TG0hGT(>Dpy|2?2#O2k)?q@kD z6tDW>F`>#_eZ4jPl=sVb1oZp~l92xVuyEJC0BNroGTKR}a93F{4c9pA(DxJuGh-~F z)y=@Vzwk2pes`)_4_$Vmludr-*epNyVGLZtG?F50}BWW!&4rB-y2R<`$QGOCO&X zpU*&QA9uhJ1<<}*-=X23AK2swu&^hfhHaa?K<|<(W0JOJ>dlhA=A=j3tT}vvt@zb^ z;CoQEr({gzNObJjTu=A?2GP;E_PNPr*|uE7PP~%~fIb|p5FS6n#kFn#SGRCjMgDA% zNS}eW#SMEDqcu{w?S;M8#;?o!ZI?gQ9(V~8pC==o%) ze0?Q-zLQHLw^!Yu?iTBNh^cX4L_cp{ZEIaDdeiFL9%TC>hEgk+${ZanFxn}$YMn?b zcbi?Dmf^F6T?+gWo$`{{{og|v4XH2w$?x;e5H6xG18i!TZeyI8T} ziP>HYMJH*0eJOvw9;d~ieeigu2Wk6+LSx_@YkHn>t%hf&_ZHMdBrhRKyj|et zuwaSi)d6Vl!-l|VQ~LVW_xX-Y)Oor@6d$w@$>S>Bfbb$r!u|Q`2k;mPwy$Q$r}sTZ zQ`J7#cS0Okv7PLXr=F-<(?W*le0{CZXAswYd;0`fR`D|Lkz2j-!9(f{TluY7T*Z}n zLcm8>u7?zy4wc0ZgC_4$xe^x=fD~O}qi5HrOX+tHBE{hF7*J8aRrfWK2e}Dq&nC|0 zr)TBB@==%?sBKUT_V$E`)0`h=)K<`DlI<3woD#4~2EF(B#heMa>-*wp!|t)y)Bs~SXZ#uStU}J$|>!wxhQJEK%nSPD*A|d(K27Q5Z$iOZe#+aB(8lB9l+Gny2wRoF(-^JTaOz z9(_BiPZNhr)oKkgzP>x?^SigJfK1}-F^^ssXehTmQ0#FoDZWcROV^XsicRDeh7O_k}p^HsgH*9#ZOG#RkT^7vGvV+MR5@-lyZ zJ?eMHXdxDpjM#oo7HRn;HvBFC13jM!@ME&Q67lylZR#xQ%TUshd?#;QUN(wHykkjU zR@!b8J`r@XfZ&(3FrZ)G|Gi#-^P=(Vn;7-JYqahwL^FsI9@3|jeEjsv+M-;3cFr;d zMykOgi)%G{7DL#w!!K5DLk~P25L-P#c|u0mFA_g1;O|!(%FXK`cal*1oZbTv^l^Mh z=O&i|Lb#;sve^L*@Aqc-nnY&b9!A6DD~O_{%O*SmcwSErtr^rMYafiXJwCSY9S?l6 zz=^Kzh0qN<=bUqp{v15R(Al{k7_{~~3W0Eq$fo|iHp`cA*H3{pJQwmE552cvvBCoRagt>iAxj#L;zI2h2jiXu0*+hM_lZ zY8N4*U(?8JT-eH#X5&U9{GKJnZeiJbIFa6FYLD9)Bv@2;gK_f1^@c4B(<@FsE3@}i z$@g|;)(?v>^OeDaohQo8 zEERFDO;SDr8(!JARzylqqTCKONq1%Q#kW#dIq#xtC%p!z~^RMI5`kXWISU8}yp zeD4L5MM`aU#qwie`c&HY+UMDchGly*K8OZacQSsKikvJ;@UWG+4-e1PRZ>hB$XRx% z>BY~f+@HRvyPoGlRzdFTlX5~=S)}l$B?J2vl-oSBsj+%cnxB~}zOy${>QK z*SZZ-g%D1Y=kM^atbom;oI~OfhU5V=3_k zkKg-!ArXz&NyinTM5O74%3178Qa$bAX-sol)T~o)%Uw~+?crBd_~{G|wOc*3e4gwf>@db$RqJVbn?TUZ6`8N9A?+-dA%ovjn|$@tBfO8?a)7g5+5=Z5=*!o=_U`$m z^c2cAP~jP&vF1B}u?k;x(WggPRwmLmrSUVhx9>fCkPBBTG2n}>I@{x;n;RsTPjFO@ z8yI{k-qZ5^z2j^d$s@`)7uf?1qL&QgOAksdl3?DDGLXWV#hs&cI*rX|WuI=*?z0;~ zrWWOSk0`4v`^dQh-W}s&XN$KvhC`gnh=a{jBQAndt5k%hvR}19wh39}+^ML-(2Zm96?Zt~sLF^EE=O5IMD_d>0Z_>RTnHbfM8;hwMSB>S(tg`^@>8~p7(`nEirx^*320b!?euwx#n0mOGFG{-SOz^FX zzj-MaS7Qv-=Wk%1k+Qyux{xdqoT#7uo!_~FZ6h=UHC95YsPrm^fl|N4WJzCdBi`pp zLl3pt;_Y~uom3V^j`c289>1ExWiw3_Ji+qvnWFqoAx>tPPKh5i_Io5ysS`X zOA{+$liPL)9-YUqxvp9CfpD9dOJ=MFof96uv=jW@R}LlwOW$)umZ#d+T`Tm^yK#W8 zP)kZfn`MmN>4|ie&S$lsjuc54wT}(CM$7?a<0e%bj>fsOMY+s0D~|nm-`O5fbiKz6 z?phH--KVlTkogSVpV$anw&blk*A+b zebtNlo$!uIgKJ<+_98mBripUyfqRA|%cD~^0$y^iY9@7aSaTcoA@61ndqSs4l<8vJ zy>;{?jDEWD$m=>AX@^|Ign`O=8KgU1}RH!Vm$q zH7UVz90v8znYCB%Jp_px(s++5Gs#;!fvt#kvtNvi$7`rlC5)p6-xyfWBAgZa$?}0f zKFQg=*Vi_o4}mJ(tR0vj*({z1uewU8Y?D0ec^zLh^QT|I^b>SswoayWBD%HYx<}V> z9`+td^qmR|yipLm^;ej7Hw0bJ=4ogzA*H%jMQx;KVQX0FXfpqN%hg!j2B+*HK7|09 z$5udF;~{TbqBy&9kT!d#T8eN3{HyBs>0GnqTKNccy#U1Uox>IOTyD(<4#oLX;C;zk z4NqM!BA<4wJ5*?kJtq;Tbw^6lm2|PYRNozDW4Iu)NnY5n*5j_Va!F0@ ztx2DHEApawSFlR2OS5r*&I>vv_!e-1U#od3>pZArwMja*Qv>rVF}{xN<*6Ri!Z{;0)B2>7zkE9i9+;B00#_8G#a)>e*Q%Xt`V%>Q^rt2d@7CCOb_sy#`ob?%WCBej-T~A2sk7EOeyy1aE5A& z3sj3~of>2As(MbG`*x3m43C>MrO$d7q&l5Z5mcvX39Xo6&Iu9NBIb1LIl}I+a!$Xj zh+~DPKf4->w8f3CUb^o*pwh6oS=@1u7oN3+fcJ>8Wb_R_juD|x_WjfA=q4F)s*;Qe zTbM!+E?49E0TV)*&f~TBd{8|Sl-;a!@bx<#*v!yI0T5)vvl-8a7-y5x&$*jdjkp1? ze&gX1nOHjOaYrFGXX@<*njI6vzh(0-sKJVyzEACpJydgBG83#2gkq zec;ZM785%{N-i-y>CMfwAO$?(?=b5nG0>wdE%RaZX~|4n9e&{>%!cc)pmARP^aQfh z_i#5j>giIm`B>f-tOxe9Bu9dM?t2GWhI!!T-dp^I1Acnq25GJrC{~}rIveZ zjj3F43=f)T)NJf=CNj3-GB)m`p38gnrf0<>*%k%%YEML@USrpT$1%>5MsMkI?H3aL zsz8mM0ch&IPBRYlDtid86kdw+A{A(@Xp_NtJr<;+FC^&G9Z}bd$1mJBs^HB=haM@J zBX$_~z7z_rXGWd8ds_~vLN!Nt0)N_Pnj*e9C{K#@Q|6IV_`RHKvlQ_h+7)S3;~V{g>*9o=M#%hpS*tbc8jdh6R`o0qeW!A z%+o>2eJXL9^3jegHEbK(oqEv|9fvKKMKpYue7;#%0Xp1hp|9(mtZ7j+n#vUL1lF=$ z|GvCmjP^#Cii>EO_SjbP3UaVUP;)kzl_gEat1~ps~x2Wa+oeM0bEg?9i3@_WTNL2$PV!tm33};`lA{akSkvtZ`p9gh26J&SGP=L0Brt0YRsf{60+`nX=bI*8GJ_TJ6F zDUAtO%zI#<^*dS4yt`MzAVT*%FVch|_33kr9ZV@>27hM|`*89wyI8jG^SuatE2P~_ zxpT2IyvAF~sk2gEwlle&+lC?_dG4E4&kmWBWr}76L#yEzM_O(q2N z*ZY!m#H2j+3So2j1|w)^X18f;4F#sdPdTTV*!ILKki#-Pf94YHXG@!}l48*;X!iP* zftkF1s;_2IP(1|!>fCYL8mLJ83mN}(+e#_5l5I}D%caJcaWqZZGim4vU?Z6)9bEG@PD+G0}$hK78xNd{KICtv`kc+w#W)eYiFLD=pALuB2I&jrZFc02X zoy5zwdn{x&jW#}#Qoe7HCv@oatr=$32&Saxrai3fu9-r!>P--OyfpyaH=FBb-T5Zt zDM+blU|@_FFrV45zfM32Zmgf`0RlR}HGDAjZubTJ`B`4xoaXaR=3%8aHz{AAijDyl z`NZebivz$sB5t@@%Jb?TsCLaViwCmG!L>;vx%Q0vrQl`7yC|PM>&Oe1w1pW(J?Nv z{gqJVH5S}j&s2-NQt$?B4|uH_<5P^95W@LdeS4YSw&aVuDT%}yO$y3{{fSXUMU}cV zJv<-fn>v`vtll#)$r-DBAW3((mLo;HK-l($5qLiQOF~$hdI^IjKp(O+#5+)?QmjP_>D)|c~{&Z@j36AIP z43ZtXDo1s&Sm;gB0k<)RZ${!&@Px{}7{FWHAB#K()lIs7jev;WfyX4GL@(vRtnSTJ zCx!0e6#zdxDZtyl#-}w!g2gpCBHBYgJt_9j@u-NR$0QUfMF_{$vM5pFRYT#erg>S& z>u!IY2cI~-PtSJ4gt3%kZJxxrUa{=)EPrlI_AZB6tC4MM^zNy6$+O1k%ThUD%M?GB zJ=DB=S!-6Qcq&eMR;!LBr6Y-(4lYZ%(Ib5jfo`6RSn?uuG>;g5cDJ=|H(`)Xt%{~= zGpHDUH^CM9K<1)?8SJ!VmUNND==CR3pYFW@_3rlGJh5ss#JiViM2wvzd0MmtdS2%e z<0f7nX+5k6GDX5Zpp(v(Bd5xhh$*M1c*J@m=Of&*9*54!y{#xE(AMg>W;_USXD_g% zn}|aD=X|=IWpdfO?!eF^T_X$z64_)e9K95iy9qs(|DA7->jC@vUOk7j| z`n6d;az*NKc*oFu2*Y|s7%iQU$zY^e7_f4DWU*k(W41+eLonCLrv15`$0hc=9z^14X(z#*=nysjb##n8XQb z=@;W!A)m_9Pe)gNenhcWILBoMZ6@!npz4C73tVDryQ9XGy*AxPTj6}!MW#8LFnDPt zFuYuPJr=PY_6&j`Eo}IyXsNMJDRd&m(W;A=z`P1YB@`BJoNM88m^UBc-MEf(w#Eh^F1_vDHe` zW9>Qy=(Q}hXTk6Knjtsy^ry>D=CfuoLNQX!0Wuv4(!3)#I?#e1tFV_2W2sIy56Ap7 zSNW&QgFnRs(7t=!`pSel#K>(W;WDd1I_l12h;IUDm|j~1a6P{+KfhOi$NOgLIZN=6 z900JZhM(lDUFK{k%1sLlleugP&I^yXPb!nA4Qz>?y0<>?QZK|`nDG-CqxpSe_UZTP?dSfYkYIJ8BQ#Q6HBSQ5DJtlgdm>*l zhK5+;^L~Nsi%TbMijg|9v$YYDJ&xO66>SxLooYVdxEV{5Cc`lWZ_($O1VOKpSG+Z% zhevP9NS+o8CG1ZxJE29O6{BD`Z}OvDqY%pm|5MZ8GZfWF27KVPv4|dxOc&*m>0VfNalZK!`?YlL za|$H6Cnp*V(t>Vv9I^)rIBwuWqLtYYSQ!WW&1mQQ#{$XF3>oGZtu0d-tLLpH%<7!1;OvZ z+bkWwCsgtt<@yBolC7lWX%z|942i>Vkkdw;fo`Gp*QCw&uH z8d@1_EI`pGTEbz%cMnws=RFNyHvpPG#pz3`w?;?$CUPWj4sUj?9u{o@kaJ6J6+c8K zE;ZUreA0p>=<=sJIA(Ep1;iw!v#FxM$1m=UjF&mh@YCr2ja}QzTsnS`^w7L3OAz37 zC1y5HATl=t7|NzoqZw&5i0Bt~-#5rYhxx-E5pmbVUnTV`Adv7Lv6pSO58k@)pd|?OR$8I(l*3v)D+W}oigm#tsd{3KGFN^5PdAp zU32rg8V!^S*CwEV4px_TK`vs@9%hQuKVN+hx6>_|+fQWjT~&_s zQIU|9Z#Y*mCSA_93Gpuk1(gqon3tJyqL!(NpLSf|a^$64ZB%35R?xj5K#?NY{zCBk zGHSZp7osVoFV4+`9G}iI&(Vt>2UtR9IF$`JIFim7l?ONbK!J&2JJl2pk)!QMeYTQ7 zK^b>5sPOJUF8D^o=xQm%VtbxfbNXo0)=MqYWgl(1I%;ruFL(19q#qsq%*K~_upxxj z`3gnd1ovoP4?mpPW?obUsDr4W*2B~}e?$9)q0lFWISr*6yoya4N9L>XUP{t91BBx~ z0HSk_Y<-X2>aqh|RRCO?dRkm=^I65v3XMuqQKU_?!2{frQJ8@tyjZG$%MA?1D17BD zqEhgPd#{{qzZ2 zeKkMTSiI^rU$QbmGx0jJ*d z3Qc7N6!P3f>43R%5x|4|(6uB@tKWbXbfHoQ0 zmktkZIZnAMuO9Hkl6P~tF1+P<8U5$IQp4?X83%11r~to^#HRCk=yz)9g+BAzM5o(# z;GT)BH_;1A?Z!AC%e6nb+82`F7hd*6NEYgp+`06{Xnp23zR{c}Q^)0MuP%$CWa=6v zl?UN+ReLaXb?6C=h=tl_jz_)@e=p3fpcwUaN*P+lpE3(dKzqxetGaxQiqa^8FCa1} z=-|DDlBAC8=t52Cq;tF%zp%7TN7U8Fudy@X1!zpwMCrlCwD#O+x(7cVE>a-}2J`#u zGv7C19dF(Dq8eHG9irHarss{;gU`zd#gdw>&O>94iuM z{X~;>+}#8(v)}ld*OLm#DwKIJ;p4#GMkKXxLOk*~Hl;pOchD!AdtIIP1RE))7NDZ{ zpxIsw@5VfAs}X>lebCb?vr|<$97KHD)+9S4Q-h6T&c>4F<`7yUJFfuB=1|S?)PX;G>ChG$=3_=M+=)mFk zI^QF%aKcwwo7sfz4u2x%^A4_gR1nmS1=>5uL~mpVw<*lud+&%AJVi3a&Ir$qFUFD6!aZNZ;TSH0e!$vh!_bVRzl7G&GrG#MA_sCHBUsH*ICNhuHy zZF00ek@tz{XBSF0UTC#Wf-K~Z;rgfj^+@1 z!J{1Isn)u?GCkg6^roD`d}v(=4;fs-<)IN^SVdu%R1%}th}avPBea)?&;8+x$|$<` zbQEHa9`rJcM1)xRwu75aB)H^)zW}S2P%MHvIqei5nJo64`i1MVLOpsZ4QlWPpR>@y zyQhNZ!^JKQc=T=(Vn}t~j@_w#;`)6*Ulw!N3X8~jZ6+-9W=fs=nD8+Qpsd*Xfq*FmGXdC3mynK}|Fi%ur z&$+@)vpX*-BixeY6|%K1K1f0hTm+4W?9YE83&XWtu~;t`52a%_+?eWF=tkUF#F_3G zGo^YKYnvtR#TT;Q7k7QzK-eKJ3wXCWj8y{jUR#t#@EEB%Do;Io@hm}D?J35fIH2Yf zJw9n4fy|&2$YNcwxTDD`b4V(oV1vn|2m(vvC)C1oqlUR`qK?EXKV>vhn=12d1NxUZvdaPUiz}nQJx?2c-0JOvwebL}WLeokWT0^*y1hd`ZYK%Zn<5=!{7Q z6J24w-ZV@ZdIDpp09CJ()ce9WVDyC+q$);AdMi)qc!KhqYi-;1&1e8E?I(Iz1U(pQ zj(G%6UbZ{@%&jQBBW9WowB@@%9rIKk-#xvxj2;ZSw0U=>>-flSu?)Y^mG2J56Bks} zqGAv!>P9ai?*h(`pWWjEV)l!dz&lK<$E>P%;y{zH9cy}FU|kzt-n^ZrYp;h7o5G~@ zz?7pf;&m8LWaRbo#ITAh0q_eKvK&D3a_=$@|5 zzwn(|#q(N{@*-X&q{fEwbV(SXad}>aHf)B>%MChH;+>zKtKYqhalPKff)b7}4pFj0 ztxRN%=;gL>*KibG7BOt9p}+TFrEpN5SPjXE61>YmyL`T?0jOQi8}Awy_X*i6u4inq z0QuM-_qhV5h~PuqMiSta%ziwsrin!qwrvRxFm=1|C}@N22pd2S?IAv6c=*$MC5~$6 zUh3{u$h9=&qKRm)*G$WzJ6sl>x+icxts?L5Nx{B%ed3#Zo5mi-Q&3)OD-l(DPcYbc zbai?RLpI&zIs(T-O(}v*qA4K&D3Gqe7rLZO?*%I5miM_88uf7w29WTaBAr>`K?~Dz z$#q22FrJ?ZAZkd0Te9rF-IZm2%^KsoG8CsFjxw$~88OFa@qmBlTq)Q!H%L9(dN-jm zu}}eHad*}7k^uc)s}ntSI#%H0PmKM08nf1grm`2$pGpwAy2Cp-s}Y!CVsV}}e;45y z+=HF3bm#2*!f;WgXPYJpmW)e(>jfQdI6@n~Wu!y080^ zj??y-9YA$#JS=Xq6+Lr!Y~6J>-vLPO%K=#d{XMlkVvr=kbb#2oQEHpOK&a4)k{Q2A zDP+>yhkLqvVLn*!uNJn_+tsMaU$^om3S)eO=f8ayzf&Fe|YDP$%L)@#as)e+ zJF27CJzVkbeW6Y8scex(*j(6Fe~miGPx&Y)u#U8ymM-BDWkefJy*zv~(RR!`DRg5z zfYuF1Q)~Rj84tz@26W^+CcB@Dao~IBee*1Whzs*BfH4uIOA{z64OdrOZCq01MPRef zamSuFE^eeLL#<+GR;LCzG)FXESt1Qm?)A^!=pOru3n^X#is)s`YHA92Mw;>nGT-#P zU@NU6?&QS){KWgSH`4B=2A{ax+tJf=SEJ=Tw6Uv0mGSsdsDbiO3Ogf4t3 z6lG)CuzIHomQ0U#;|j6*c!}ZNn%wowXiL*lzMdzi+@Umppie-2SjF(cOC73r@0rNs zH>MH3&JUuQKr&HLrrrawsR$&-p{_?tPwbsM`ROMER1d?YX3$x>p1mv9*Cb8d8I!O> zSCwTV^y(o5u%lFbAsLmAYFBd(L|e0*CuZ8LQv6XB;IwL*;RzWDk$smsx=I8V?l7>c)FrFS5Qcf1myG(MBYlL+-)?AXy|merJpeIQ;Ux!gK^Q(jaV*fMz&G zf-Pr|I3`(-my#V4(`ndCgwG-Z_0e0G7_u>s$5t_9^q|h0C8zRwyP2q-XA($Ja43z7 zt58;Ujks5zb~U>XL~xA~UFeQH#n&XI8JR*R9-DdBhcmh*s-fM428Z*t#afwf*%V+20j(Yk88jd>Gm!0^$rXHCcW7&JXw1o!pYNmDW zSo7>&TzL``baT!5LeeHh4yVX0qRJ3P&d!ve2?;L^K97ykn*myC9?n!I%->UM19%1l4fUWs!Mz>D@n;Vmm388w-nVxZ zMK)EZdp&9FIVf~hNJ9udw5>t`J4f42 zivfmXwlEMNo(AS*LP+halyTL74AV!hEF(gCyz%sGnrq%vn@7Z|@Oy}E>3EUTBgrjC z@~WLg3sC&zsqu6pF`aIpZ(VB(_Nr}e!J~;2+wE7kfv~8NXI?z}e2{JK9r=S_$oJ~d zjE}sB*C^%gw_^l~ixf!m7;9&fX#sX2O+^~CS^N|E&u*%ur{3tPktzWwkIXDQzNq;BzK0htyc}I^s=-Fmnj^1HehhYXs$dG9SNFGL0M$z zXI~`;LvFY`gzh7fik4e&x{C>aBpN zCaVx{OEl}`nn8@|ZM8l#CjrHaBU{UO%A7TLDdA~P_obM1p3rNdZ8Z01ctPdOcElFa zi7_HE?`dbDcJ=fIl*J_iY44iVy(}yNZmD=pB${JVyxDpq(-oSXuYl9})z#a`3-{ix zqg)B=3J8ne$~VFrH`34}oXrdgY3N<62BQ}W7-SuqDo$F@-Fhl9H}ngA|Lm}yd0=$C zo;0D=2*n-P4zU{yMpp#VX@`(CPTS+u2M-FXUu+@|x|pLhY=k+^a!!@J$GzAdwj$`> zn@5D1p^nNv3zCb)M8SSft5;ASm)Q2yYf>d6k{Gn`S>)P)McCV>0ek)?iZIy?mNH{O zn=q3GI{F>~IHW@c&MxZx!oP&`TnUP!b7(X?(KNvzH#4r(YJgdqpG$IS8>iv4wDcGL z@!4yIFVJrQ3JtJE;GOquI&gL;VK#b;zN~Sg}oZ53a2f)pO)kD>A<5{=R zQc+CLQ=Wi?j-WvDNg^sqLVN;M4GZ+1Fa3N0p6GRuLaS$XC}(&3I=Lfa#TJ`S>kvXf z9Pa@?ft|9j4+aq6v+brni6~FSlJ4zTwcOEo&z?m4BoA(DTU$G&J@SeYf0t?-aOz79 za8)}`kyUjC)hAz~9*3MIH#<{tA-}qguFR03gj*82_p((Tw{#w41vU%DRt_a!a@qlvZn}p8}49i)tAkR1opr$VaP@MN3b9xy%^IXKaNrXeGmc7+d3gYzhHM=0>8SDZ=nLvUfS3 zG^JoQ(+r5HK>chBHo%yvQC4qAlchX#Op);&j^Y;5bmJOjo?=DMa{$h7B7i>oGL=qQ z@3^XLZOj%pPza$v(wa8#WSrCjFP=ZKmVTj${S7!BZmoNyhtZ*1`N{6*|IdQo$7gQyJgs+xNsz?&1lwK+FN? zddstLZWZhda|<-dtb`VhbsCVy1?uMzCSApV=tu~PgADHSL_lo&YN9&PTID}C`c9wvrDM4cw`PSPQhU3Z)dMv+Q&@V7 zVD+_Sg|*GFJU=#9=J2qTgXRE6dC}4$EnZT? zw*pp2fTVm3^4Kv1p^>VImuBjnAr82u>rP>@2qUv{(rkp52Lj3BGhhX`2iSewX^v9I z{o)rXGrYCXozOX)XOw4r^c%^kSt;) z3ooOB#G+veoZfQe@K6?UhT~UUOfHJTcn%h2k-8BM27&^v`had4O&i3+mL*cVFf9wz z*m>)Pp;OvQ?isM}>(D{wB6A9~hqfFjEG3I2c+bXnY~MT}xecFot7udr#aDMc2o$Tn zY&2^a4(wu`LZH?&nG@n6*hQe;tv~GxV|Rn92*OI=I`K%Dg=eDIMp+wcIY?yPs99vQ zWIL98(&FD|WHTJ;JsHf089XTZcnlqflJ+2d{Y{`F9l;La;j`K^raDfAy$5Q|#;;te zz2_O4!y!z^It7+EbEKM8C=mJ?t_2@iSZ?x*2P#NT0V=~*C9-Lum+wSx+(YX{Q4dBv zCX}2|YeOn}E5J0MLQD(PNcJFxb{;;h7?UyO5t<60crjdXJDLtcSM~F~oEqOl5Vp9} zGLhXZg5H8@vl4P;eYdDB(d`*vc?V`p-^BPQF-#LuP?0&5?x?dmpo8ZM-~v+PjSuOa zZX_y~B;~BgIm^H{yThJ<0Sp((KI(=%5a=GPl@*a92DgPbRu_(}MCQ=O$cZ8E+#Zzf z((oCcsn0yL6N2Yd!wEj`h^XFfObwvCXT>aFGXlq1kDj&6MtasLrO);z;BvXOSCE|) zcx|z%z1H((hlcl)8llJ3$EEcuUS#_71@Y-o8e>^NGqNC}wQR_9foDpW`E6zK+4A8% zgk=P$d?x}=U>iY>+(0P|85HP=ZV9dBj`Z|P@MYT5dx@S#ecO1&rVjf2jt+;baYg^wqYO| z=$=I<<<=|oWdnmEIG4nt&v^ymd%s?e8yz%f+R zSCu_&pfK*FDDw~>dv1bg^MjrXGjl&(v_bS)5g>Ju3nqhSGxd^r}H*28G zfMs~vw{MB0v$%*UKvHxg-huCu2UZ5ryl9@hEt9j>Fo7<$aiR`I(|%gxNpWa^Y9OH^gZuay*#XU5DkXC+<6(aZ_BvXQ%}YzU5xoXVD;I3TiDfB zBH1Wl#-+EE&Qyxuh(HnaBExL1yC-s z&Nj1hpIZ1ibxDxUN)z9E$rl&GuekLdND1p}I!~`@>3q@lqISIZRX+DHP|Ed3uTy7M zPNZQUWys)CP^Y}Br|IviqsQ%NpkwVlpJjNQOLQ|tKj$6pT2Oau&t-)Tu`TdUF>`+X z#4hI^`aqX)s9ic)66Kq3lK3+u#4EdmYV7wmUKEZg+A!8Lg08hrvDV9X58}-;MNwP! z*lvBNp}r6F%^A!&Yd#xjLuS?zATO3+7>X@RyGY549O-)x?MdZ!Q~|!;y_0-cDUH40 za$Dh0S4gyIXlXREvv%|7OTMmg^c7fzm+T{9}UjaW!J} zoz@07@DjK=GfP93BU`N$LQkvS@p&ZHOl#uq*gJvOwMGFNP(>l>MitAq)Vs0TYW;A^ z_r}JR`w-3_+$#E7uuk%HN~g{R^U*sEd6nRRi4?EL$5wSN@Au*}gY_!%+^*DItax*z zO^Gze-{dnjKW@5PNsgP6KZV`ZCsFc!6c8IJ+b3YBI+3LIOo!PS*Q!i?-oWeT$3BU4 z0SKhLDc5;5OJXrarzL)YI1)T^7FQs*ETPMn4tI2>I9RY^-~b|x=qJdUn3&UhBP0ImGf`cmbU`?-T_lL_wR>Tu9=eB7tR(ppd!8vLlABn!qXwf&?@ zKO=;*7QYgdXL^c!`<~@nXg)4Kf02U@JR|C$6IJ59n zM?57=Lya;Oa>T9tInKVS6rn_YVix8hfZM_&4=Ug};V~7|poO` z%rQ-3EGLX!8UjtNn3`!>D^oQ`Mag1-*b=D-r9`~Osp670H%!D6VFN^XujMCM7|C6{ zE`kSsRVh=7Z%O@>2Tv24)uU>|cqE3U>fI9=_$KQ!Omv(1%NIy#S(3v_kXaO!ZeZ5K zUCzpy({Vfn6J_T_NeLGp! zTT``da$`XP3TKm4E?iXLA?}xO-l*I9!V6!EOz$#F7iZvT_`c!bEMMPjaFX+!t=+}Y zxrYSOfT;FX_>p$z6F#5Ct`dtsiP*z=zxQ>W-dD(BeCHB2nwbt-!?aHKHq|SeujKKO zs@v?V=vuG&q{}{Ig(*ip#k(Veq9>A#gL%E?6z}DxY=GO=OOCD3Drv6FgLU{<>rni zC5AvE;qUhqxoU9fk|nLh)utBKN3Vxn5W&Eat@M0vd@u={!yOy_lQ91d7^Q-Itym0w zmE!Zp*5Tp}KJkEnJ{*U_Ia+mapH_qy5|uFGJmT`_Nm-EF(8t=(AIp}|PGr5RUQ5YZ zwdk;1np&3iZk#6tI+NV@&{d_yx^`bxJ-d9JXMS&2MQ@wfZr^TIUJ~fy9@W6^%QdWl zjiQrxfs;9hw{>H{#Ezq^Wz5sXb*5MNmN@V5)OUEQ&!nRwT95Q+CS;mZLa#KrdFGzB zVq|Hf-r^Mff}g7MH6ia~&f}?+tnW-1-%&&2jlDXV+4ml)%xid)6GnK)%dhK{X!7{s zEoy~6#?yXtc&0G?jzYJ>CVWI8N67WI-}IuX0pGRJ0xB=@r%q>L~3x zRb~VQ!rtpfFN5QA4JXs8UpU=XiILQm;j+ljYO>Yn3jS#)y( z5xRsFtN41cu~Ut}^UWQ(0cy5*Z;k60X+Vy~%dO2pD}$V8&yUT09={jWG9w|3^fqPZ zI2g#}R6j{0_zWGdFOkdx7)Vd`cIF}56Y*LsaT(y27MbjLtT;!m^J+NSx*XVcxJa$Q znx87^doj>01vAt~glGGj--~>;5#cg4vTAilLCj(^n@Q>>^j$Pj2*>75mGO-)Ay$9W_8C8hSEVbc zFD+E*H17qEh9+3|F=gg-?;YqGuTPv_KoG>L8p`N~xw-d?y$WzEG}u1QbRC*En4ppi zd+kB*SY_0-xGR=wJJ4@J2kP2G@ypQqfA}RJv%WJWWRdwQEar;82Qr@qAEh ztzevVu+Gr==)-tIWULY|rWS`VeL;o8=0c*sy}RVSl&J4pQes4f<$UUskr&*)Mt zgY7J9NWz?Q*EC$KUYUU-Z{dqh%0Lao+I<1k&)OVlHTHqra>MH_5h4pp5#URwI0GXi zB2~h(e(q@+-Y^=OqF5Wp_Ve8t>oR0_i%6jRLuw04OsQ2Iynw?O5Ac*x!s0y?NtesB zPxAOPoCuapmG#oy)+5Wn?pq=Bn+F#QWlPUQ=k>E55d{VCnkF062N28wdK1U6cQel& zfM~!GMfg!3Uulo98fDp)6em~LKC8tWP9pQp^^_aM#>ad%ETAScgbr*^JEv3ZA;SR@ z0MKjY2U*ZfefExspK2Vx4S?9At$0p6O2zoV?o~cLOx*2<`f&Y?nUR&m+SBq>!`chh z1F3ZaleqlZ?<8V&yIaGPUOvUNhp~ad(e_Z0@AbOdRC-L?GTEPH)VFOu__R%yhzULs z#dX3OzDzs$8a4u(MC2q#Of=ZB_(J!F$$giNhh)*ScnrAJH z8!BkNMvC53)O+j-Fw)hqaW95)+S64G8-rM}`QCjK_448gfWa6c1m@3@$+d$Mx7UMWm0envt8~-T8m@GdnU)FGu={O2rKD6^s$1}b z?wsINteuh>D059C&r;O`TM*Mhj}EGfD}w2Kkxj!PI?vc;=@*4>7!;rtcH$)rRX3U# zCPodQK~HwJ`M@JwsLG{e&F7`_Nuhj3mrm2+M3RtnG<8xm0QKi;BF~1`PoRkqF7g7j zVXar7-cvx=TZ1Q-v2L*zH*YZ2y$zC|v10qPN|@11pffST(oU zg=;5fqxLpLBil1K*)pySIT91oM%tb$Nc!v*g}KJo&KQoOq)ZaO&_P_ptSTfe0=Lk`jJ^$q(7`dJvdXh705sGC8s;KYXli$AM%Y76 zF)eHwhCM&?Js-NK0$>P{Il*VIE7rzp&pISvJ&%jj+M`jXh#lGci8FV2_seIP=0HZg z_uAe|7w&UNXcG0Aw^uk4yF5~Vg&r0nVV_W+#Ktn3mhqyi}b6lZX`)|Xn7-mEyFcnt0ja$hzjm2Jf`AY zfQm~gK49htfdraaBl&ZXCncY0GjRgXjKh8L!ie4$skaVQPi8$Qn2knFmDW>0%TFR5 zK8eJ>X-exZJ7z2%+PyoreV!AS(dOQK+ytOJDkpYjii^*->s-`?c}iEHJ@GsqBV@dtbI=*@)P%){4VTt&x!Rhm za_AkLE)=UPCBk(gM^a1ckl{`>Y==*7yS8}Vv*dpJvWBSZ36_h~&z+q}mp@B|W?D1SX|PoFdYdTUZIAO+RSqsY3qM}g)-Kg14So5TwqF|@FIv4%GDAQ6WV)!~oK4O} zq~7g@C1*ths^N)JU-OcMw_*E;pHy(k*{}vW#qfFe zyeig*ST5JZ&tu0NhOB$PlSEI4JMVfEF8?@O~R%ERNEWMV#eI_!tj zKgWN3N=KX6EPs-t^@d_-vQ+SK>M^j>!Gz3_ZfhPaA8m#&IvKvtNdf*WS1s(Sp|n^> zSKJ%Y9*>cjd#6C@SP%kGwRC$TQs^yDC?&I$S&FO)Yg-M!n^^>-O$FQCv@n=3R zAPW$!JQ?v0AMib}5GUZ?DqXhm=y)lceF_}OWT*Y6sx2uQY{E2?V;|cl!@j=k!jT4x@w!Ej zGxLeHMzHe@20-B&)m%Bt;0+TNTcv}%C@{|#o8Tzq8X4%FVkaeU$8g^bXG?<`#V<;o zS{`mn7s_BhBspPql3;IQ@!h7HX&LN(@MxCvfVETPlT!MOLVYeug|*}1L8CU4c|5yC zPEVich7pra^_2AS6?tSQ;Hpo`NOOwFsTd>}M;yNIb ztb&|FaFs?_H7bt?O6cv&vc6ouiVQdnhv(1>O%yk%CJ&;<+*#h_F)BUiTgVIE`uR@% zRar1SW#d-$@3VRpk`|N2Qv@JuAB0Q*(ZL+6D z;mTWf2)s3^`1(;`I!I~0cEU#tqAx+jstth_YIuj(Fi7a^v5dYUgk8$K7MI!pzI?bC z>Md|1BdivrbCw{>`KS+URrD@s*0_MR&kMuD8@l+3SVJQqV^U?5^a?NFrZcSk&4KrDm`>Tw<$m9V$oM#*r0XlGS805btehR znZ-{chTy%b1984AAM9Nrh!^Q&x5&^k+x)JU!Q@)yCU&yxpEru0Y|fJy=S6;c6aiV zSXm;ku1Nz$eKY`%jpwaCurf+Eb{wp|>$8jSo=ovW zwqo&0MG%EOdm`qNQF~LslAyW)2JeERCe)+%pqFb>vhO{I>Mb9LK`02%aRHbp1;e@K z#FwXSCWzy>oaz2vxHi|O-qW~PAdJ^RuHGXjs831M!tdbG3we!?U(M~rWfun&*zlu` zpkQ4%_qu^~e+e_C76bCEd$yJRkxM>#6oV+)HpG&KMvs7SaGFIQo*d-!_4i~d#aFwi zee)N!AjAz()pz^Qhp&gIHS0pMuGlYLuZU84T@USMTp0yC{G?VsBU5qQmXq`5wDLOo zE5SL*<(r3@?HS5dP>Vg_nc`~W69}yuM7YNEm=*NtsmPxpgQUOpX_y5meHh#PqBG(> z2Miv-4ib{%E1upf@VwR`jb}AgH!c`_!X=;(t@t27S~yi*OMHcsF;c8Ti5Yh`9AD(| zEF*e4#^f7Q15J4J>MafhLctDcp5mauR@YMrnMbM#HFhdk`D~!=(4v!Eo&eYctv`%; zeseYUUjJS`bTx_7!<-$qhzM=U(H&SGdwtz%_G0)s6lJ9O%6Z=Tcc0bI@RZ>^@=kyq zc)cwm?(I~q(+2pvM}&_vm}X}BS)vt`iN3UB%ZLGU-H2!U$cN(3A{)cfs4ffnQ6nW> zKXbb=KpRU%d+=iOafw-=#-2T+nyQJ1)8%w+oY_y(GhWA04L`F}yy3FY14=9>eM$IQ zZ_{2G2o{mH5kbVZxpO|HaxTrAc>qDr%ahnnL2f0%Z*9DuFySNIs#L2nNGO1rx_FgY zb}TV6xSI%a%%9HnZgYcy!$5wa=deORzLXIO5c`+r|PIZNQehI(C~-7{2o> zPwE(VQOmgsd%FaZQD^1Pe-1yrNudC4@O*W3o-L!uI|jLK#|7SiN)EQTa`)l7}hJ+PO7Fk9Zn{{+?tAz z42zdOMkul)f{EwW4s{9=_4wNK1wf%EHob>u&&?k9`CCyr#q$~3UM=nJc<;dr49mfh+7(V_TBbhiAb`4sZBr?Obc1-kZ)> zV)S66BR(ni&uBG;cnVQjX$76iFGve#grmJHC+UUSSkAl&H$AhaacH4nr#J~q@_eLJKB5`87A#jLO9#V#0H&4eS&;2XajhpC!=omXt#3RiGT>2USr zVR>ha#PmKfW6u~KKYf_z%{MxUO4F#4EdB79uw{~!f zJK*$Mq+bcC$n)D8%^Ydjom1Xh3w|EWQGP=)2=8|vcJROi*F1Is5>U5@!=Q)Q>e2lc zCQ{<~9!?cd^5era`6fBOL)O;3!}NFUg|hDnrMw!T(O8C8c1((zITIjk!G@r@Z^>t4 zJhOlXqnej)7Doj|Vkz_q@0-eaY>@b-s%UWD5)d)aZom>a6Yll6kmq>p(`o0}j5$T$ zbdHx=cMQH}q?HSeQ9Z9#Xi`ahY42@lCLz7|DDK6cbUoLxJC@GI$}ZawLyY&TyC{pF z0nDSpE%uTT){1BRJfHZ^^0e0Iwmd5==v*lht7T0?dW)dYXmIy4OPkFc@GF}eEeguy zg2ol0dsaB!#9$7Oy2Yz_<{3f7?wc=~AAH6w$xhJ(PGs{}(@Y){tnVzA(xs8ev|d!u z6y#*SBhV2bKSDk=Zx)0_#Ea?I*mz!=U1+HfIg`i~tOcc&(wH5sQr48Z)t;{{jJi>W zzcJ#DDlSCZ@=!(>21tjxRO#6lG6wmy-*a&Vx$fEl*QR>Xd!anc6mM$7KnppK=&-C` zk0b#0ZIj?tqOTFPF7_)#)j+Rzde1Yw^c6SQwQK5MVFS-0%VOT@Ln$FR?B{RPq<-IL zc}U&I)e;>ZtkapBW*@w1&S<~~w==<8YdIGLMdv*EzKQnFTrHUc`}AotwM$=T8z0cM zFu-9rT~^T%S}ZvO?|bI*AYRY4%VUI$6iW%nL9F?! zP6?Lj@Cj3vz@h+N`TP}d#=mo<~%IwowZItDQyP=jxvL&1#? zMK4E+hy6j%^>ox~o?uLoQj*;R56vR!=D5)CH!7fr4I|0mFjAaYhpt)kC`84*xWs$n zc^C|Zn<*&#q>+2dOJ1{>npcQhmxN}5)7hkUyEasza+Z&7&z4WsZ( zAVa%m<*Gw?V#TzFQ1d!~iGLb+9<)4rLJmwzN>P4Qu>2m#*^%HpT;mc|tK|mkE^6!$ z{v?||!`NX9d7l}F+cU6v<2h2{XKjWWvruB_K1a+&)1Fd{J1J9-0%zjXS1X6DeC)KN z0p2UFvscwTHfZ6C>;_RVCTlIh!`(fNMbL)!>a7Olj1y!pDb17a%Ox;dH@8rJhU%b@ zsI=Yb&EA;qEKs9dB^=1_4B+PF%t%Nqi7?w_f>yh-_+@qN&6QNUhdGZwZt%=$?RVO& zr*bH|F4&Q9fwnJMtt2OS+@2#P&T3i(_Xy{N5z{ZaqiWC6gacV#vU_G)C$LN_4HIKI zKwy;sOhB{0+4D19q4A9)IQXQSKVw-;9H(uMU_Cq)qZ=4-$7SGvxiW_coLrmYdZrl2 z&(K#d+#F%$kz&kcS_w#-ma#zVV;Zl+zO6X~jS5JXgMrsIhYSUCZEkWe-zxQ#uaIQU zSg$`4f_zTd=m+s0jX8tdx}?43SX0R7Y|m+j?y=1v7i}Xv%Ik~Sp5}G46}Wo{nuCx+ zLJWf#1WYd-A>Jh8Y?eOL%tuGi{`_%YV~flCvltet8MX&Any40(OXGTo`moB-`X}Lq z;7=^Ih8b%gciiGq0meJhL^$=mYFThUglkoQ)(9pu&jhT*M)Tmt-l%a+zW`TWZbC$F7m5u z<}w5BiBLjGL}LGG>52&9>~krFPv_ohb4|77Gpl7SCGxEa1QI~Xd)=`0AigR0Ps&aA zSO|upET2b|H;gPx?2{Js$QcCK$F+|lfv$K~?%w$gti^;XXLlO)P;@+TDhvur5o;-A z6bc(uzbbhfOWT9&5KSf58{s>xVjxczU&PefmA!e^W5?peMMwow$0upgnf!>}&8WdJ z%XJ~>$pkgW(|d0?uPc}KVYbK{Up0wirZTPdNML%ING;E4aFcgEX6FU#@p6O1V?E)x zM7FipI?Nt5C;0^I^|NX#f`WMdz*2QwWa)m9{tk|zJ)j`#!3#wc7h_?+jie%e6)zzI zk91@c-pzEhsC<$x-=S@eQ0VgAW3hI7C=@ehYtBJ3Jf<5`c}XRYlA8H=a1d=!qVE}> z6C<$b?Y<7kSOHms^P}eyD$44W5bStKPqwsqO!*js589)`XjMyiBp&F*0p=#yd2uO9 zXTRMyASaL31}5vtsC9P_r-F9Z7UL#f8h})Sq3J42mW}zTBkY0eJv#7}kb`YPW1|WW zgKlL)F`b}Z_Os@&e882HD9?vLnjdFF%yzmm2^%+;>BKPs`EB|Zlc4;f-Q`L26_AHS z^o&|ReGi6ETkjrEk%~A(-3J zPs^+7AeD{0_cDh-NQoP2Bp96ok@C4RUvU$_Td)`HmJf?Gy`IMt;TXJon6F6VDcxX1 z-S#|TdnS4!8Hl<;5S$(H1aq$_FK(Dd$4;)=&QczXKv+ZQR&#M0p*)-g4W*7yX~^)QJHD2No9O31|6p)oY!xcrI z83J$&IcTxBTFJK$Afhi3b>%SW(o-klRZiDi8X1^nyy@ov9@tOJF(I?91FS?x8Lv}% zy{KoEU=Rn*Y$q-i_)l#XZ>Gh>uSYJ&ynoK;I?4}&z$#+i6y}VDj0>etW+Rq)x4hJbT0I`F>9%xIb4ncWvq$z1qyc$m#tMs)g z%kD7h2{QV|_$+c8BxNPM#OJIoaxD8CguKjjAaOm3OP;ltk0uO6(Zk`|U^7(c&bMm8 z1CW9;O%c>(*YchtpoTeiur$i-3ylLlfS5ao!b zo8wmTWU&(NbiH17z1B&4UTen(&S4xJ@6IlLInK`3Uotnls+%-mbs;HtJdgh?L5@)Y#*O7 z&&x->%G1P{Zpp||Qa!PwC6lop&QALaUQ;0%96%oC-kMm#l&X*^Qq(X_Z?Nloh$pAj zdbUtv*=gQQ7La;T9`54V(H4a&cl1_O&4h6|PK;`09JiSC2|aW~lw&dn6057o-PSy$ zJn|K{&Ia|wq!2EN9Cf(Y^rUEcoAo5(!LTh3Pq8oZPEnLJ+=F*|=XMU)UTaAtcSKhe z?WKid%+O-~VCYqw6lggN!{n%g%6lUSdD_oh)`_!uq5StAo(rnU@o_VysuyI*nAVCR zHLx3qUcp)%HJu$czs>q-s^W6{21~~dN817S<^1)T}JJ$VwrX(z3-2IVzFjMb>YbWcd8ut>b84B|;~7Qi^Vof)SlgM_%j617gMkrwSD zn?4>h>`iToGXvYu8yhBJk7*;ZHW!q7#&GB6=IKL>+E|T2PfNS8URXlVgZ6@~dxo;q z`Ft<#$(ttN4pmVVE+YeHK|bFr*L~4~TxH_L1wyxkhYeE2+-yiO+UBrVMjEx(kt8rl zRH+*T`@m0+8WxP>Qv~!G0>J{b-6*VFE$g0`ZX9>pIUP}x!(Cp z!^0LLUuen+LpDA=HBx%ln?9IvE@*H$43|(fB*4;K4^z=(o?3+0AfcQdyXp!1vx`3U zJzlyhdDRhbmKdmF^Ttju0#S`>8T6Uuqzl*ypA{)BbQdZ%kae60MX=AM%lke4TrVQFNu zf@CPmW}Iw7rU4vpnX^>OQ^X3Q(8mBB!h35ka9PcodTYUnHbi?+A9Dey30ABAgqlP+RJYwCbI%?$)CLBdH4DZVat7ZPUy+gv5ZtK~#_6 z%8a`XO;iy=HRC5<+eQV;(Q(vB$mX|MZ%y-OEI)?$0R1%f*BI+3& zgC}X}vb>pF`4)n(e)@rjMB2W}T(=kGj?DVN5aTTchZ!Bglr^Imn1@@7SX1gq)~b&X z>>f|QKn+@4!s>B{oUK!?dW2j89(D;JB)apkL<7$Jgj}S30@d@Cs$MTmQa#bJw6#Xd zlA|l!4JeD%a6{TqHk5F_0n>-MuinPAF#%sT<|1C=d0RZZZl}$nXE{@%OUnM9ZHz*! zB9uZexT;m)3FQ!)uC>6M*fK&i*Vrxf02MC_s@e)nW)d&HGJ zB%k20N3up{MfB~#NXK0#uCDT#a!KR6ihAaZ+`ithx5e2Z0DW>3Y=LDStG3xlH^9Cm z&$@l#I;JG>m=pH}SnJCmnn~jAa56?H28D2umoLo^1W0L0N}d!-EZ*UC>Xz{E>>`vA5J*JJ&&_R~4AeQC?VSUSnO=Ef(K!@XuPv_!=G^DoJSY7Ozt;2=6 z)?j*CNFM3c zQCw@Q#KWE`2)MHzV#pR!&w2`a-IcMk14$(V_;#WB9Td4^Hn1+eMZsE+-O`>&OAE;B zz9W8PU5FL2b>cnH;&B8u+3(_D$yHHuy>lp%7RrYThFMlbgB zi$zyJ>I+Sr=P$-&PO6+y*zLxAV^Mfb&ns+joW#|uiUN3yP6)+zND)Hns`nm9 zETApXhIZ{k*N6dpt($-y2f$tk6yg4+wizR;Kyo_XhDf3?6GkJV+zzZ9A(0mt-h&yj ze)M3%hpmkFA>G2|GhiebYiPAF+9BqZ*Ha}KyD{*D=zyp6)2ZQ?_r8f7aUI4bsfHBuLCfi3Q!zfm_p)R?KeOW&xanP@k?HzLlPOI2?@};0DcMV)6cHRuNgzPX-W?_~|evg*+ z86|JVG9Ghsy}Yck6Bq299uM{kHKtvsSk0dCNGouqgoW{Tl4lvm?knrfbdf@#B9KK|$>FCc2*nyz zc580nJ;9CDJ}5-0!slDj57vtw*{*Mjt-{EReu~0BL#07JsH?poGE2-Hqtmh&Kr;;M zw>6JR)%&(V1|qV%R1lO(<_<+0ii}y+E#nobTJ+7tToH~0`AFsC$;)F2+A zmE1F?NmSeA3l3762am6#D}xxgtYkxT6Dem>pG(ZWa^2X45?>AoTrG632c8{ok>aHX zB0bq<#Z_1Z+&l5XVN;G{6RvHCt$KU2B#!o2!BmN_RUXQ%;9vncu<9VS$QxICeB4|r zM*9F*F%^sy8Q;Uo7o5&l8+nrfXL*=wXv980XANh~sx#X&UsRg)E7eyKp(6<#7-bK) zUh)C0RhW~C#(l4&gFa>PSajcudv&hwomt_#H)>s46OAXiET)7b<@jtxsZ?53Tsn{T z1=e$+NWkPbL^_W(Bv9B<*kMFHmZ4Z!tS4I+eE6tf-Io9qV3ca&Wb>Z;oNK;kut{V9 zicb5ULjZ)U_iJ+K$77=}h14$%1MGzYxD}^nwX?a?xzpcY`3XxlwK=*iZG!E2 z`R^GaJZIc8KfD6(*VMwyz5y924t$+64C;GhJX?`535hnOq9 z5x^ki7g;ab;(iXH{=%Rw7+i+HyOvl~2g5k@^F&4o^0+4WpnWdNI#$-fP`ufb?LrH@(dOb%5vwZt( zCc#RvV~>(W@SdcIKUbjVmo=-Vi#;Z%ERxBao3&hm(~dlGMVt8!4kym}jdf16wT9&S zE2dzVYN$OAsW{xZ_Y!zsJ%n!Jv`8(beaBBz)@NL>$;BdMrcR2+&~nS4F~Z_$KF#JK zO}nV~!X-~dhsru0=z7NbJ)5q#r{&z4eUW>mh+fxsw(r%R2HVz5d!Vaxl-Wh<9 zhcO@=FV?*~8XgpG_1a^T9O#8;=y@Ybt#tmv=35&6nJ-eb&KUZgbBLRuMDZA0=Z7Jhsv^CFuWYy zimK2;=jth~G>*z+>WmT1 zfOW+8xCgh(4`$J#qw9I)JH2gIXw@U3)77`rq4jefxd4Sc-na9NQL|5QrGk*Sr=OG6 zyxfaGai1Os^NQVk@F@=b449KkGs! zBLSS}Z^XBy5{&^zw&4)E2Lz(4_=fK;&}c9?56+xO=mwd+jozCF3;T$b$fSq{uwOHK z9L9`B&4u{Zk}qSvyQPvtPd8`mD}#^|Pq&Us!YQLl(qN0CX<~oHlOfy|B&K*fOiu~2 zHy_Ii)uWeY#HUFt#`aJw`Smynv0#%V7BM+#?=9Bw8r(HXGOjg9IAM$(z+U<_PR{@l8sF$)Gi?N3jSQ7=-3>T1NDCq4)&{_w=2jUTyE ziVD;$^-vAo(2Zlbek5r9M~C-FzHjIW8P8UU)_%0phAaq0*@XNHs3!P-}Cao~vw z`F;+skL*vbFtUUaumVrgp8%nL*>P;bg zwl}!%2+DY$n|N)Yw0q*+3PltYfH+$|EjogXE^b|Y8OtsDlC0sdH3vh1je&Jr>K4<6SyrB2TYFT$G%l~EssFJ9g-R#x?0NxTkp_g2CHiwUrs zdh9zMLNPj_gmfd4wFDe7wKx2To(tGx4aT0$d7)dnFCADsyUq34z~f&MDOrUCjP-|a zoYifGeUsGkyfpV4%;tNiBjO)8ah^=mq4|jq0a#rP@9((I*KX;9>={=oZqkk(5rM`a5EP46jJUSQ)ZAgO_)u z=!<0FYqq*_{E#ChA0p!ojxuYLQTjC-I2=4|Lw;Dhnk52VF9}j-O4Ao8;;8Ud8$-)0 zFKq1RRxe&n_YJ48uw>B@qXg7ZKTx`%9Pta#q=EUFL&CKtHwyWxgDhAv_Ju)KGjsS+ zNs6U*)q_+b30l&Sxo?s9r%3c2@5^3kf9Ruf+f*$>$-pyD9QYaQa>1NoKzOYsfzIX$ zjaE7_YUeS-o(r)Fy7w#VQQTYHK1sMZ*vdE3TSji4Mbvz-C8;D#oUM8Wiucm-vYp>ETxbaqJ_LUzw-hjs zR}(~XdH3m++9Nv0m+Jj$dA;N3*_~e7wI^(|hpdN2ueF_RXUe;!-Ht3q0wYDxBg&*O zdH5+4`HZVWT{OlF%oiKTA&lhU?A-khI>X+&ZL2?k5!%q=OAUY7;uAR#>@zDF#sEH! z-Y*nvVwT9?nxY?;=Z>?{)d=m#6S2HU1eXmlm;N3DqDEBM*yHn~!rWtF+o~ti9g93y zkNuJFVnDvVDel~|<6uU#I_0csTd~@DXxO%xLkd|SZVuXSkgb$aOCYPGdtvT4J13u2 zm20h;t)f+}nBP6Y@b{)zVIf0X4UhuXv?^ps56%$yG#t`-y%A*P{pz z5k;PP__`5sPI?(KLaOY~rl4TiQVJ&?-3FjxzHBw@{wEJU>P%E=n;of#tm#Hds&ZY!oMP48yDB%2xwp zx`sa4=Z|@qQ)0;NygP{attA=4!xGYEkG+C@P@3q)nWy6Gw1aJ~j5oyfnzzWBFSlJ? zen}-g!&i$FK(321ZdbhJi4DBc7>N^hzUP{^UJu%uI2|x@x~~QE^Lld5o+NMWv8NbWa^>5SK;zm!q*~N%8nAH8%!qg~a~|6hz|3h@{T9PLowCl_I*%#vXHM}rDt?M& zn-xnAA=B>#dShbd=E8Hu#u>o(5_iGQi5vY>EdCj0nes*^ft)@D z2DL4$-VC0T$$oW`v;bv}A?M(8^sY^pw99H4r&$jCy`CKuwW_3W@xJS@D+)kh#sVBo zzG9T<#tP#hk;(AK%P%1xD0bFV?64g@tjj8Hf?=}9_kgq{@^v@6Br)JQHxwiW6dVm; zcKN|PM8riny0`d(EyzS7QfL}Hisfd6_!ab(m5%4uh;k=hs&GpK;oRs+5Ud`0UEb7o z9b^HJBQx&^RAfZRi^lfzRvuH*e$GT27C3TeMDgH7%?7UV{cJ;P>6l%6EMrBl3{+m! z!>n;q^6tCHzK2KcIYVxb)jb#RTP~lmHWww1FPRksfO56E*Sl)QhJ0lwMp5`lNWYGI z+z%+Dit)G@u=dk>DH$2!6R`}uO<7zS#znRgD( zlZq)Go86ZN5?LF8PKGa>D>~-Au@ikPq4SP^=9l!Ud5(mS2$7IXxz2ar=tAb?t*nse zCSGAJqC4omxNpfAyidtIe%p+N@aLqr+c2Xw@z&w2GNuz_4@}Os08NncR7dkwpABjy zI7XrerLxgQu~fHpI*ROKtUvN`_W>G_dx(P!qP9;%PuZ>afb#p0W zqF=rD;!^VxHF=7vA0h3XaI{(<`cnrd6&CSmL&PzzyWYoGuOGaiHRTDi5QWTS-=b-J zNl0VF7x5BrRrK!7;1j{#x7JEnlqm`?5dg5r&C|n@Ji#HPnPd@?bm$7xq;B*z2{1&J zNWOQ(RoO5isEMs^!}V~FuIi#&be{3gLHdD5q2ruvryRb?LJ-T$-OfssBY>Mpn0>)w zqZoRb^YxMuqe+iV^#Kh+@8$4qazcd84jt=s!c*xBCs0*BrsPR zxY;!_qPh4g3{<@q?X|}o-R9$5p+m+;%F*ucMk!gH8=5WX;OJ!`qgNN%65cbm%Tj8y zP4?DYUhW^wvwOS#e)G!v5Kwwoamom!R`Ul=SR)Q}Zr7fHQid?R zPGArMpRytNluc^Bdp9kSI7G~jxsvz7$6gr;ZJ)%l$G$*@w#{87U8@NX+q($@w0qsN zss-=CQ|j5dVWDvpUd`7&mf%QdfZfJcg62&kdSHl109#5n)fCa07BrXQ#}X_QammSo zu~ERNI(LZ@2z-|;>tc4+kgl!u^cH!_mwG0quhOMvrh6eReNp5b&ydD9ZuKb&4-Zj0 zVhzVR!(%QYN{)VooHq6Qa>}JTp6HxSSG|MKnB)MRN~i ze)KJz&mcT;nfQ8Zqij|LOB+n(K_qjqixME0tS>Asq(1aH7gVt*xlj?!Y(>x-7sxH-s_2~06%_!R6_NtMdx|9 zr`SZd-$5Gr`ST+R;Ttl zKBdE-k(kCG*<&7P#iI%BTZcZ}U?P>oKvrok#mwZ<=?0F|O3D#RP48y7MmPgmEi(`V z3A4)=+Smr3WR^&e;T>K-2*kDbaIj>}Dg-mf3h+jzu-I%+r9i6A!{O0#s6yv?k;SbL z#bElBYePirsI2e+c2~c8jKo!m0yrRP3qnWG5R3w}B&=f!fUiL;!g zvvALBd|VX*9Te8RqGF>{^AQ*@ms>j0)QP+|9Q)h}5YDNz7eLO}@AQ_N9kiOtxT&1; z%HZ)6rC@j$=gQ)Sv~juI$v=IEZLLo;lCdD1ik`(|Dsy%fvxfz{7CDnxq`&vfEY9$-SWr7ew zSYWPIB5dB{CTxdz3(2=P6pGaqFL!_`FqaX!Cr!q)_f^|?tPQUWsz6Q3sCsz`)U~gI zFZ#PToRL&H{qE$z78zxO!|JyhYjB8!^@)z^d;KBM_H%!vJFe!Is1(zn4FSsJae|; z`;?D-#^m-5)2yfL0l{v)Tt06Fp_v#~G+=@H2?Q4og#|)ZKgSi_O*jg@aJHE10Eaw{ zH7??a!N$k6>yV2~j!L~)X{YIIPc4cdvxgnF-YT+FM?|>68zlqG%fNS$WFS2SD(-Ru z1Fp?mV!{T{?1t!7_~>|b5;xrEiZR<{jMam2pA2$flD#52=iUONi|VX~B2;y$8}m2; z;xGhyg>Ie%@*WA%#ios0SUvzubQCt>Y?>1YzLk4#IAAtZeA-9uXvbha>dt3RIllkyFNuiyBQvv$rCznXC>`^3M6EPB7#*0cL!0JXP8YZJz04a6ia13pdvz2Z-^0>P99?EG% zm))v~SzzIN{1Av=E-3Dt60^ioy=7{QI`=2=m}USwQ?^hOr`h~Cuv3=%tsILQdCklV zlPPNtnDnal*KK@9?{U0=c^>k@+*I}@KuPc!9Cd<|8Ye04xKH&SBAJno_jpuOOV|bi z^^O9QzO8*~mtwtK^Wu4_tBt*kIceC|6Nav%UBzBK&}u(&eRC(`Y^KFH=WTag zijO=+>#T+i-Rq?wan&(92j@NANtfR%K~3>@aW8xP+81TAhe;{$HW;x9!i`8;u7}-8_AWS|6L&DZjHb34jI; z*8;PGIxl;WPVZSMR>bWJo3?DJI&8->xF6IEw5U5ja5LoemH3dN64pe?v z4sDNH(}l|FT`4qI5*}Bhl(W-gOZ6wuEc&>|E-s+EeUE&g3{+SO_aXR}C|T8$F^n#F z>KwVth@F@CjHbN2j=N zGFPSFA;R!lCxlA24ZY>pF#RfN^bYEzYJ-c#xX~V!(1`ewS3PpL1lX7Qb zWr^m?yWDv%l;$9Ge57#8pX@QBd+{P1<~d>_ABxtNCAnv=1aA#K!%}*gnAVzefJ+2W zJVxW5oI8vF?M{sQaIe`kKo3eBrak1q;U>i%{*~~vo#l-x9zV`?eyxNH_OdmAla^PR z-myyYW171(rh8`DNZ+%Vf5+*}QZmtDuvCq~r&$^96JW0;QKER(1qIVF3eh_8P9^LV zMc3hG$UB25soH2t^PhD{AA?kz%cy((%z0VED;Tqw50nz2ot=%{ z&-TP6JlUV#i+K_1RO;L>L8%_0#Jjv|Wao~@mCiMLg0k0#Fh7I!^tNiW44`RYO#_gT z4?Sven@Ql}tV;!ZLOguA_ne^iQ%La{te=$=Y9?Hjj9RE3ty7~lSSF1!*@j+^^YW}Q zvw9rwT133Wx+mb&Z;WKe=OKY~N%fpGKRmO`E}VRtQc={^FE;1QwR+s~*f2vb(dLX# zK?Nf>;m%?t5g%EF@7f`!G=Q=#xjf{jfgs@=NO+r(wbX;vRdr--uk%>V7o@JRvqON{As`U_~Inx>l7kdH^ZU z5*Oey%5r@CoxkFjdx$P5Yj5@tE6}|L7cXogk(vRSw#h-6qb4VNl5V`rf3~)oGsddo zfu$_i;t3-pPD@B|S;g<#DM3@=+}pWb|DDHV^RichQhXgWw#mesVeWp#^ZDB)Z)iFbwvJn%5=J<}kI zS3H-bp@=zQXH*uVK=p14!;f!x>tQ_<&_|-nPu9m9 zkmzfwMY(0ToR>Z6VewwlU5mqAkYRL4A7wt87Jq85OERj( zR4PViPRzps2jzSwNHUS?F0XnOoUC3zmCf-?>QUn3_PWrl4&ZSfiL}6_QF46gQ4S7C z4ho{)M=u?67183>-@;uE0K21km!_f(+uq3Q1`LCI`EW3Oc&7L1PF21v>wp|l;qYP8 zdyMGO>y6F4$aI^l={;zv*vbG%zXVm`uW7XOrpd)#=7``mYN?+~opwKmL}?_?6-5=r zd1{28f}+m=4rnxIOytxt&s{Z|#g|_YDRgb%AA!}le4E;@U>hmw$uKGc+_>v+ z87Lt(9f;uNZ67=cTeX4n^^74EMAC+o@MHtWeKe?Ekn3p}f-Uq&V&4+TTVW})P>Y(J z71di218{LgUnQ-VaCsh5-5Y=?@bbli+=wFC=JMcqpyic3-_FUJL?A%K+YZLp5BY^B zD-^gskQYhRMcl@iz4n-d(upi#NImAY0-%Db`CJ9zFG&TaR9w?^%jHgr4Xx$F4WenL z5u@Ci(~;NZ&AE@Btc%L0r1&$6vzt`VgFaqJFNs!hd2pm@fPLuxLYJD*p1Bv2-cUTC z(KLC&m7px-Z@``99)Ms{hB{9Nb;zH)Z4Cti+)ebT2 zyLlP6`0!RiSno5%o6TC3Svtm;t30$vJzMM{5^e6tm}~75Raa+Qgc(aWL$qR@(xSEHu=Uc&6Jufcssn?6J*I?6*ku_=@G6f6b_U@c#Cd)(k zy{v&XL@b(%6(7@a$q7f$Vx8i~zEsb5! zaK6Ec6aM^#=!^{JgH!aESId(fXA0zlo!fnN8W_>qOZ6IplJ5UiTT3|Ja`F^Bbx?C^DL5-U|M?2H?ugo0MRhY)_gE# z&S2sZTX>$Cpl!7X2VD=~wE~RKQ>|D_OP4z4i*9)s8#Qik=0+hLQD7#|$8Ib0vAqK~ zN>TD*bO2z)r4tolm7F(!ZVf99Zw@VqXl-`eq9qFvbzF=tum^OpyRCPGjrH2qZeDC} zt=2g>t>-UU=>YS%OztqNj+~9`JK*90DHSu{-2{6DtN}x_1pzY051>H1E?aY#jT{7vSMCt%UF>)bluyQE;C5ycDemOlnS+v7?W4+s>?K1|S-^u< z{KPZHoDdv9PpWLzq@S!Gx0xeRjcthZgbUst-+}k&P=TMXm2E&$7VcO+EF3^` zA!<6WJJGaTwa|D(z0Q#_Pr(oPm#_f0s*E4PZe^=Vb3Fj%0l<4awJ~T!TTFZlZpveK zps4*REYZ(g^%iw@8i_1`D)X3Wc)){L0c%FziScD(l@VZ|_bqDSBB0>py2&IojB-mf z&wxO`)^vM-Sb+Wr^ZF@q7OM z9a*{;gK0U&3kSu+B?kf7r$mKr-V(^XFa7y~ps)mOI<{WjFKPL3zUUI8tcZ>}AVyZL z0=!Pts6=DlGaBZ5P*v_uAxcl0Ri{~;#!y2uEZ<^?*gjl&v-_M9 zA5j3v1?LU*OB+{wgOFhva|w3V6HhOnkTNLG48@dREWas*$z)Q02Vk^G8IN>(>r#m0 zO6@2by(^RQbm!GQ`jdkbXQKt6zT1{3meG~grq(IJK@+dD>^(n$Eq)sroDM+t40|Pv z^&q0%bv7~Ub>$n6lWWVRBkUfsQ^f6jN?J7F(?smFL5+Jwr+L$U(>#Pm3hxA1`e`|a z%}?LDDoMz~& z5I#}yT|J4Qq-zVfcM3kyQ|~1Nj#RvIU&qUSHz)n#Jv!tH#1?Var=b)gh#s4FO3(c; zpGDaeVxlN4hR<|&p8!fg@FTgi!!92jq^AR6Zu-D&w6aMINDBh?a=o|Zh)R#JC9)T@ zja^U5ovl+7sr2eZ_|1SQ?16NeBfQ~?$1_C)x4G?+DXT#Va88tz6-l=WEHEZ(wWxO_ zq|^G?jRa@_@6n-q)()g@q@LWsV6TmsNXK2O7UV$@)HvvYFDQy?z&K_*qM3K{WK+|N z3I!lQyWZdxu;mKj?28C}<WpnY)$EMDYa|EdLS}v;mB`xkMxGOfD;}qOeRaW ze|wjI#`y6+351@QuF7@-iX4X=^kt9pv1SA!?ue<+(IDy&5-t;qRlbwAvq5&~aTGS3 zVVCnZ5>D#j_;}3NEdh#JL{nL5U37?5!l)^qG*=5!*t4nQdc#m4?{d#Sva$T_fP(cq{Ajz|J~*4oDMN^4z-|({su6?giW-ps~iRRMy$ z#Tu;NxOJL0XwVyA;v93gecA!*{RRQDCw7N$e+f(mr_v9_Up60Wadwbw zBWII8K(0`Ip^~MfQt{}imW*$I3+yw{b0VD!cs*#Qw)cWcm5JG8`t}9-Yx6Tki(|%D z7OTvr<=N_dl7ffAuf`|}sNf9%ok-XC`gN3S80eL zE#Bd5F8G^mak#L7RCAZPb$%6d*_aEa_NX_O)C8$h@N`b{iR3}cjb>fE>`eqtW`kyV z&n3;DUimxDwx)nrQgn4h20*=ngv?d8*lz_utZs1Mn__P3snE!XC4YtfP9X6Ws3%?v zKui>cPi+u!h*6r7Wj0XO`tfo-I-@B^*NY!2FPd8Sn*n!-QV(rpnjXFA zieVx&O;EcjaPLWiCHtYNC&yCJ9mve=oCzMzo+1tH8%LN-PUsGJf_jmU^HhOR*agi~ zC|2-1bMc{rw^z$pDReezRrt$B4;Xl?d*<*+Tb^yav;sfC?7Du*PO`c1P6#pp_2|m$ z1XXsBjP=@ZS@T62D?a1cOx|{Wpix*44q2e7ILlocsP#d`nY!-CMF`nG?CY`6+t(!8 zfyU_CM2Z@BBo^|vCLJ4AF5;Katf3~Y>(S)Y0NV+q9NBV~Op^FKH8`xz0F>8m9geJ( z-$J9$;4jzf2$3u<2KykK7t!C!LualE2wZYF67MT~kKGDnFkl~J7e-~Ok#Qxoc-96o z_@cizJy5LXmHFtH<>(TG)Dq}HaT|I{JSr|;uFLQgX_CaJx;~Z)Y(!mDb-;Nkug5ep z;uyhLb|pb3mzroetR_TRPQ0I|+663@apv{#IU(8ss;bzZ$svFg`lKE|9NmCx>?sy1 zhRc02{G8&g0G2Wd&Em5MN9B?$6fv{SXf*4k1C@l41W8;ai*Wb&4aXFpI5Wt`Ndw1( zi^j59nWRCMvklIXMtQyx)q7ACSYq}>Zn*hRbng1x}%}-BLXyHmiCJHWh zJP_oytY^1jPj_Bwc681vu8sqZxDgwDOYL(6P&7IW!_>unt7wo{IUysr9Z{!I^h)hj zqs^EDqN1z-&FYDkYhfA=-{a@tM(EjAHV_OH!L?+xFC{S4a}Pa{ltxt)VGs;<1G{~a zb@BXRYNVw)wK%M^#={|;fJn}3Jg87!?364FUZj_p!gJW-_6%0s@k-w0V!`->gZ7KT zg4g<_65(On_|y>rLn?75in13^L{dM1JJVwl0*gHNp<+9hUDd|?!zIawhuyQEK!uGQ zoW(wQXd*0HT$rMv1;odZWm$6MbB}<6wK|N0E4VsPx=>;hYb+rjzOGl6n9X_WComQV z9c_$nP2g;RE>pbj=K%>@^-rP#J7$9x3H{hcJfOo_68QqsI02a{3yd)zCZg=8*jPV( zP1Uz2Vy>1@`XM@pXGh28Vd7)Htk*rmp$_^?sFY+g-ZRECndeD1@NCrN+2NakyG)Tw zS&Fkf7*rgW&Fgmr6lG`~=$jS8@Z>QC)KnUZmpTwMRK5j^>X4FZxQ6#Kf+}9U?%^8M zfz2wJs;q!FN(*2@{gw+LaLl;+UgN9BW|O>k=kyA@=n}A)2KQ+P#470yO>Pj}Yn$3q zmTHrC*)={dYAgAO8~b5*T@UO+Bfixzwi5|!sKarIgEqBA2cTSEjwU6=yIBf?;epD7 z4Nzp)(7u(jWhw=@Cv%*c9Km#)HWyL~mu^T&WO$v&f!J#$h=sr8_B;V9iC(sd_&rRE z6GFDBK&K2ogeUXZJXQjEtoFeJ?{9B=-(vxfl00{oH^;DiZj$Od*T?VAQZ#)rOYLH$ z<+*04Q_N+9n3D%M6{QlQE%rV1dRzeuIqi_wxtI^w=LU_Euz*D; zPyibXT-Rc zEoui_A`r1kv{kNM#3lq7kczFE!|(9kl1CSlQ!a02D+=w<098P$zZ>eH%9S(~C!rMX z7i9%BxAJa^HUR9E_Ax@X>QBMZgZy&=I|kIopd4AWl?yI?e9QZ10&$O6gOlGRn?EPZ zPr=FOfIvG& z?4v@nM+F6Jwl=HfC$a$P`KF#d=v|!xXAp`R3`G;bY209mOs+nBwveX9SqA;WUn4Jb ztU72F%c^sp3mF8fflC~ZCtTaS;Oa`PLMl0xHCzMfl+ljoqq@Um3`IJ{A;s^Ru{G)C zfJY|ez%pnTc^zaQf}Ten+mnNBqY-|g-ktKehdKp1Uf~n9$0ToAyphowEWzriU^^ds z8U(9dUVEe%aRB+X-1d!d`Cf?cA?$*Jmz{J)5a)z}_%^5+K({?@Bum9z{wcZ47)YF` zC=IMvt`Apzp1h%n=GXf;r9@`LB*0M1^J$-bN=`pVg@7VY&BR+_4wUNhb==X;o<<0z zvOA||@BGPbxrUhn^cfUbr7v43KHTL8%h&6Vl060TY6BQBxu#nJkJct;h4+OBi6~Tn zw+B6r2uSKAwP+EJyE$bwvz%z`*>i}VjP>cMCzw^S(P(@5*dlA_6*|>~W9PL6>4QY) zQq*`1IPhAEH*+*zYR&5g-IGbbB(8T!sZS(YQk}zs0W5|DTCn;6mI^hsU!dV*F36l4 z2Vx{sQ7DHeK4S(RWrMS5Z;GzL)y)m5RG`oj37EJ2m?mu&!ct4HBGFZ zUhLbA!X_68wWBy0aASYY_0Xz9i&FHUJv)`DLNubGc+qo-C$OYBKPfr7sD^buX*%tN3do{2d~zBx-}7l>3-Oy##piMu)0Y+4V@APl$#p#;utjrZ~S8b3d`W@k!ywntSf7Lm2nCyU2Mn+`$D2cSRi zq3v^yg^N1|DG!;|0evczykMc8C_mx`!IU=ukU6u^pr5j{&+)+s^@%d)dr56x7(j1x z`^3d0i@3=!z?qxWO{U>s1nOySM)Tuw+O(1471%ZadD4n9xw)y&ND~f3!NhcWICLDT zfUi^pTOWd(iw+1B!fL(|F)ODG&nu7Kb&1z8jjvsLTn z%@CtA9gvqNtvKf*aquZT{~RQ=TwyqjB=OY?uQGgMuimhAn%jeC>Zh;ud7%jw3ugya zHZ>>tWC7S^ zR|OMLuhC&JiCHR8*cVm(;zA!;K)n^Y=q$LUnxSAB0NmAwk(DJ+%pC@%?g)0=#P2o1 ztx4<^Gd}Et^&oM(b#z;~YB6&yTQBfXqz=}(1|G7#se!I3+5y_c4yzH<`C zE?Y=}hiG+cXdJ&+!GfEamoK+Hdq@>@^l`LENvm$#l!J-IPOC?}Vt}&*`_6YkpVCV} zXUJpsND_3W_h!2UyatejM@qo6UcfNY%d2~&q(y7s@it17irfd1oJ7Cf z2D!p3K$CH!K`jgLt%irDh;H5HBBV{pZhV`~sgJ5SPFPR`^1=+7$@A=|?*%lCoG)oX z&1@P5=&J%srAJ5Il8=J5@ZF-FE7r5JMgMBJ1n@ar6t}Fs(g@}zVMfpv<$9e2#C}w| zYO=15%P-l(MNXc zEKU{$z&e*aVpp`;MYbz;K*WGE<*%TZr+@AVc?%-a))<8h6lUPVk zC)PWN42$-;Cd}vKDcn;<+HXppU4!l|UAVx`khQw-ObjofXln)5!ENUPD~ifya9Z zG$Hn?IvHK-;kW!g#|-B@eq_;I@)&Mw8!R0|U>NR|>OFr>nzw6D^Z*P~aIvaI#Gs_x zw)KJ`8m&%hZ^l|Hbwj<6(36T^jr0XsmOowgd{8xxCb6;1>CU&hM-)VNtsXBj@D_y)4{hV}6;ck7Z>z>>3hO`XO#rFH_Tl3V5c& zV7(5s?bO&Wsk-rrM4dL@JiXkL4IryVqh&Qi!h!99))PV{90hV9#I5@bQ(mA4)HXuB@Ej*2?0Q#Hc+8hfL5;PiTS@L#o%a zGQhM!Ssn+u`1@Y*&?v~e5EeCydy4rS1%V3yQrkv}O*@Ao5BOeD!6NXd0P%C+NZave zFS=W_3g;@t5M#(<9#VORtGkXP9H`~-i*?O6jt7~3{fVP`R7ZAl` zYTj60?}P%TMc~`3wMK3ilH@QQ)JMh^^63c z3qRi%j$Cgmc919mi#MO-$YKV?oZ?8s@tQ5(G>ew9JEy`%SH(3iK+`cz&C^f`cRmeh zHKS#gQ?zR4L&ee4@JB+sNUKx|0NFx}3mw%ewM0BVH}P5kULs&#+-Sq^(c`4A-W;E` zq?sRkay>56XOXa;FMy#XvN5jU4^0Kf&X=DOr1vR7y=9obp2TE|b;=T0rjirbB55~n z8DbDuNN36IT_t^)toiIw1W~{8;=BQvL^$m<;Uo@@;I{90lq0Jji4?o~^^+OLeYS;^_24M8jb%;-r!gnO zdavI&Yq`AMjclL*0M=tyyM^(WcgI$<%-~G~+DiTGF`Ga<1b4GGF1I3idJD3NY_)R@ znq;A54jXe?D!!t$f1qv_RWjiPM zS<_>kJEk_nmhYug%kUsu0(U0asP$pWlF1`wHR!n9GWp`%Wab zw6V}TKxY_Q#OEC}u+w3Pyj)h&!|+1MvZlN^X5Od=EbInG@C6kx%S-nYBEgoYtMBof zXdZj=-Vt8~uOtl}UZKd7dW)>qVa!rMf$?5@8AA@wGY>MpeD5lJ%#*db+4N=YW?PF! z<33InS}8MV7I^0d0kaDxiT&E8p*i{|vVd~cR=0^ijEEP9q!zr!cUS!4r^=85j5_!!qtl()6MLIbl@FfBn7*QO&YV^)d|of1Cxo6hl8v}wze9ZJ z8jvz`fb=w>9rAG-z#ksY$}xSD4@qheIsIPj67MkRWww|$UqR!Ns2Yx=U6b%jp_6(X zXS9#rESuhIQRz-62AhdJ(@81ow`B`1XtYf3U=1{Ycvr`4E^Iy))1-QuQma+4FN3ys zE4ThvF8t@8|Mfq`@sEG|*W~}g{{E?qfB)ZlWGkmh`ICKT1BhVbLi?JYOADqzW@fx= z#Ryr$s@-r-%4S1$M$(s4&#trv7sN*n;LAfll?(9mdb4ZC_QJU5Rq^!0WpL!D7XHHS zbXmKCg~)Mk!3OMF7&;@z_bhWn_hcT{I*+V8cKBL3ea>9nKlAsDqe4tK1?=5eHe|@W zByd7;SkW4Rsqx1_paQj)4vB^#W|Pd;H|M&7ZTdQs7NO?jOTW|k!{12_-|0QqtMHwt z`4Yq7!K8!5TI_p1nZ30Ea`pOP&UKH{Q1Fy)A*9X)bqmz&R>6$l(wBRE<~Tez`-$xY zRgJ={8G04&A>ijCUdS6NA=v@dp6}u0MG1~(HNLw6XSoViT@ECHNBVl*_7QgZ$LD@` z{KoB@`}x63&qwe0(Xb@LHZfER_7o}t$>?E|V0LOQ3*&)0HR?;e1|un~y>sv+fJR0U zOCpE(_~7r}KzPV6TkI#sIzv0)ji>LqSfWf`o`bO0u7r_!N7ll#y2`rp!s{}5ybif> zhK~o}-eev}A$u0zeSPxxQ_~ZuvbXeeh2UxC>8gDCV!!Y<`t}Xg ztcNZ;QOYL2KAm=DjwG@^2 zxZJ5I+wq0De?H0Gu}4H?id=fa{rj@w+I+@W5LAo)uBk9ig5Y@K9mzZ)MwMKri{dD1 zqj#e;9m%8&fk_-Adzd3iGw+7<>*M|N<8ybU=WaY^d!NYR&(9BZM~-dk93KoD1}_Kg zV`p<}iu5MirD$2kM^ZF{UUYIV@al?v49rhl5RjxnU&7boAU>a|)IRQjBMP8>x4uKe zKZnY8DsPjPkq2v|^n#omuhPp03dMQs9UpAIBY?wRc_#Rx$!S5RG-O(>@*d6JP4kI- zHFx-4eArVmCUPV?c5JSv`+k$)3`0!P0I0+}w;8sH1FI5F^L8w&eD!TAw#!B}y3-(D zKNN0;TIFlildE2PRUA)3ziPnG$IC5l*rOP&k;)|xwj`D0cg(8AYK4r}t3^m7TS^@c z3x<(rIn*3LuJODX)ppJ9bjf7fA7e|-tG90@S1n()`@km?^!bi2iQHawgSuO+?;)nf zff4isY zc|^VHv8r~@U-&(d^*RI*6+S|Ww>dVn9$p}qCcB+ar%6oune=nWe9@_&wY<-FZlcc9 zC8GGCg-9M(=>~)sVG{07*Lqmi9yPDTDQyT=ELv|0y%HKpaI&&n-SXb^trsX*)$nq< z9LK`uRSO<)-5oL9b$`Bi`F!!9`}Xz;u&m-`-XphqRp*)DuC7TYwdfN* zMs2{TNgK<>n*=V4?1x;1NB&^MGc()lXc|F>=r9dY?Be`kzt1W8T}>mAB^aS>0zH7wEqdl1|%Pkgp zfl3p3?PMI3?&@pj5-+7O-bDLpK87xKEgvW8*2#K1WsmZ!Cj0L81}-#EeTKegxI2>|55o0F*$)3BvRy`-4EY|mm*7)8=c_*GZZ%!_o1A zh{xNx@126a_bw*uFvV`)y5VUkk?NqU(9PSeseM6xEk#9mUv&k2*0o&)WD;kOdGxwK zL%HpNVvlo4@m=a6xBm3ApO9?=brSHxWk2I2%ezrOm6^ zxYZ>UVc%^Mk`fq??~DCsWqH#}#9tDRnK z+%zx3)6V4-YO|f^;tIQ@undJit7AKS#c1=irg&vWPd!`{JR!WFR*cKwk-S86^9Jw> z3)1#PZgzGf>|0K8Fg=c-BmJxn^*iIW5Q|AhY(FQ9w0sg9eiwj&p3emMG1*>;`1?6c z=)<%;j&` zE(L^eN!Mkw0~+4X1kaKbv=|0pOWvzO`Ns+$t3(Ty!DG*ieazrEJZD%h5tol^C68&T z!G}1Z-dl!(n$H^Fr@sIvy1ExaH|(5q&O!Qf@C-v|=YC+&+V3a?!ZjkB`uEx-CA8kt zk?!$>AWK@dfIwV;!xQSO>xYL#0bSXH9l&jGcF!N&Acrr~t}ACxQ03Nlm7h-I?@F)) zZBARVyJUdq{KzLE3W1pB5fj`s)6{mev()cRVr8yn?!2pebit@?>t{r}1)36G0&(cC zh^|J`v4bb%?hNr{Ho%`1)AQ0f)6VJz+x@CjK0POnuG>0b76L}gt;aSDy>U~!2oe37 zMrPx}R;Dx?HyYumyHa0!qNgG1yb7QI!FcH4&BaW6Q^?eUa)AhoQO@#MWa24mN2pZO z;L-Cqe?ob7MW2l7r~AzMVew_YGI+4_M7gLo$h40(CrmsH(X3bY;uzt5*B; zA*Dlk+Z=D8+QbH)w1u~qTLLVo$iQ<<8=ANhpWxhSH7)s_<#e6yDX7BnP&ad?M6w-| z><%FFEk#DxBTsH3F)FRomPs0zr%(C?vZ!#v3k#XIlmlPY`lllmP2a{H#!?aY+9c&8 zu;G<$Yel5=B+BhjlXO=$UwkWdmGkzeH&LKMD)x~-Dz;4*bFac)r+Bjyn?tHBF^Y3M zIv2i+B0IoYn1Z7eSP#`90YsR>w?6Cr^rmMg8kX(N_#hfw-O2b_Dsr+Y!NXSOK0G{E zS4lBlAZOX3rWe1rMl#MmI|r7{Df*NMb6Ptk;7ORyMKiP7O(xWGUW@G>%;UEk)T8Ld zm!xf*HRxk*Mqd@j_iTlfIux{O+eNp}wQhq{A%xT9`MZ1lj<%Bu@?fWD9&@x7?Y@=w zv*vl2OfS(ms`@&dlZpgPAQ914tcFyOx@9^IRL3ifa$*arxNTW0%HK7tBSmTSu)nW2 z%<$<~VcbXcrVr}Ujp`xB>jJ5Ii)spq{$QLRGoS;BDTZxhEG53+@q73CLTfO_m1nlO zmM)Z7g;A-ha@!l$Q~%==X}ema*!?N$#h zpJzP5c`qUqJB%?`)q0xVCJ^*;Mdqt&NIQ#V$l&+XCSU#Zu=IPWkbWn{TlF@lqMsh# z1J1HLWok>rbGQx^cJX@tD6lwK4H-;Bgun*c7DL}O^3$)n>C?k3D-&s(()gL$+xH$m z$b~DF81Thbo$c|_%?*;vCpap{4Gg{%?`iq|zA=cSjCpp30w@!4l=V8hjIFbsJG+dn2;W+59rk+vUz4NV~y;y@=rHw_t}jgQ;YJvN0il-edJsL?~ZY? zv&GvS!y!&(#KGpN5f{O!RVqSL*-zGG0t-+DhF(1rzK3pjX#g8xBZqs@pyLRsmIbc2pTKq$0)g;q$%rn5hc3)afW2E} zUj=qTAcJ;(y}CI~RjzeEQ%YMUsJi1+FmANk8+*OP5XAu0I#NvpqW$ENVo$Y9@GT>3 z&X~wPyuvY$n~F5PN%H%u{(U+evjH(1>_Q70|NFT~cdHk(ffk?dtF0Sk%%UJ*`J} z*9W3LZvboM-NAg-FW)K6gXF=5zV^0PLsLKvIqpvoy4dsPJ@!1t>p(Km`#qAPNuK; zC1u}+_D|>Ex4_+%K~+PJP6HsPG5glA6MboC&^l@i#B!;%bbc`uq*dGg8)9Q5TX$ zf)iCgJpsvXuV?7NnNs)i$)N~d+hWgFTL=vH#A|i;djVZUE{SjhyB1cc-qQI@@sgM_ z59A96|DIC)vJy`)UcV_hG`+05bJ3u;r)0_21Kua1;8p2|%k;+D4#g;Zv-(Z1jYqGb z(u=tGeJL(UdOHPDd;YW_@%Wxk64G4LKxNxg515x@bhVsT@6MM>9+i`s#ZyBfGAvw} zqZ;}`B0k-*Hq>9O0Y7jBHty)>R4Hid5!a5DnMf*!;r6C*Sd4B4ZdD7SLjMfz=82RMt52O>?t_B_j8ww4sHVQ$OovZT7gzd5Qxg zCDEz=KCpQ3oemdesAAJzr^2bW&tTGFZC2VrrF2SSo7&g~6i#`x;Gjqv| z)u402!iQ)&$tA;OJn7jmV-K@f2QPzRxhk?X@p4q& z8L{{EdoC>(=Opxn2kLi%J}M2afic;O=-iqn%DD&b8ImlIPT2@}$+@bT)XibdZPbUn zn?39aohDJHi*fhX(UY*>w^)vu1xm&!S=YGNf{DX$_vVfJ)(X6qcPNr6m&1(u;N8?< zpo6_(8GM!PK6)&H;EB^;h|s5tZo@?wBA~V=C0LHbpguAI?bUk^LE?rq-lNJ)^43mZ zE27=(7bD~G8tPODidygdgPK5>D zC`wj9ADfi?Y4gxPA~++n2W; z$N1g`pM-ANYStCM>zxAMNpt6|x(C2smL~7wzEF9e&N@r3m5)Hz3qTCtIb31S<<@NA zP@F#n-j}@9@YMAp@@dDqLxr~3a}se{ccdg;Nf*0o6^m20NB7fHDw(!36EdSE)(DM{ z(i}Bg@EEzDS^^pdOocPGGU7II`G}Sk5nMuKfMY1_?Fjm}THdF}?p8NCh>=j&@kN8d zVHy)Mi;m2z#>l38h}+(?yOv_Ov;>={cmvIxaJNNaGi8=x2l-I=*_3K^{zOLP=4hL2 zm|sar>{XPGpf5=+oZKl}oK;vnIbI}|Z37A^j;+l)gX=t8#ht3%cnH~yAmxFE7gUf8hK zvvGfRX2IlR4vbrwguPAO$sxc4y!40K?2;Z6I%kiE9;aqjN|^=>x>ZQ$-DD50%ZZjF z*B3VW>ATW$d8)^>aL$O$v_9$NFW-)W2d1R0z!imPaaX3rwQ47uK7~bqhw=cgsa()o zp8y@YZQ`rz5MYxqke`VbN7pZ;U)V@(UOhrtu%41wST=}0QB?F(TLuiqA$YC5&urmL z03yU+>64{1bQN&qFLdnFfeqCb7pNA~IyJ`JRrQ=W_w61B86G!jN}u&ENOd}+BB)N& z5?V3CoD(9jMa=2gbA;Vt<(z(55yuKoe|GJ{;b#M4-DBixg;WPnCy3`Zdp&TeIXQW+ z3Ue&rK)0*#-g8f2i~{MWX>QNO*r3-wUzUG*G2J91PF0dIVGC0T!sTi_KVU*A(|Nr1 zo)4-=g0h>H4!(Y;1DhGzC;)EUP@-k&?CxD z-RFpI&YVg}H8gO6PcYSH%yq5<=XL~(<(@6hmZxXEiY~P>K#OkD6X9Gd(Fl!R6fFOV zk;xL@4wuA~77nv{*}56&qprF$Lm1D%q8C-#>dXFm9_nFay5a9-=b;5+0{u`zC!PQ!MF4xF)kNFT&9I|RX3Mo|wR=V)v;wbgBCaW2V1z(Z) zgJSJ606toqS{|I*Ny4UaZ`wngl;RdxJFB3-WY@(RAvrn^McYwZ>E~ zIEDw!Gio;WI1?FLaTy!;QP1VQdegIFk!*_sd$lJbQm?V=!Q&WbNu#%Px%M+LD)n>0 zVZ=1o+1Hb{v59*Jb@`M`@lN|3-b&z3Buc?_a8i|~_T99P4RI243bpIzCsOq3-l*%v z;}`B5Rq$q`Lywfq5j%`~UkZiRGow!4y)B1Sp_(H+fjNs~nj*e9r|=!w{X$I&7(Ugqf_3WG0Sz#~X6rR&^C zbeVKn5}w>!7cwXfc$IIvO{)aSgY@oVEY8TkmBpWqp0)gpO5Pe7znV&$KyhPz`bee0zQcHiSt?URH5ZI&u6K`8e9{n$~Eaxw}ME{>+*D zuvXM8L3YPclQ2|c)S>For5O8o3x+%{fDo=QEgnqN-3tgN$bHLYWN)SRS@hGxFTCET zx3gXxq{>m}3m@aCcyDy?cv7}1#nvYJp@b(D>|=-HzE{s;oA~(v%H1l7lCdD7yu3cH zSFa9Yw4c3qGjK{{0v7Wg7-;=Y=3{W?9&ahAz$D>T^eTjkdfhT!Cs6P+l(;ISB0}Jq zH~pGa%5vR9pgTSKK?&ny%Y0vm34JT9-AuW2u`|5JTgs`kQeL(*xt`mGA|QG0n^n&a znUiITW(7m5;TK0*ZY1O{sM9)LQ{&>EXxW=8m8NVK49A;d9MCq)_X{(R8ZGONoSD0Q zTIbTD<-Mwlh4nNv3d3^hX!(_a#CR3R#R=D7il;54>dGF0*NKLFVWyvcAMdQw7gHYb zYaQWk<5$JQD9~Q%E$0rK{waUwc=^3B;A<$X6n z>@=QcrjR6Y{jSF7r5i`Sd*5LP86y#&`+mpafcX%@yR> zR1992M$rr4h%v*Uy20kz(=CwU>9hpK?f|7dQ!BTj@p5#2;^vP6eXi=b?z&sZN@u8H z?rrfQz<~xC*`(Rzy_YJ_O#!*sfU#e2HhKsE@NNx)CB+wRrk}X&PIM(&BtUG_wg|Wx z&oIa{>qNBG5sg(XIeo3w`W&#AB>mCreMvfEQl5H+usM8#5wtV2+qAWY0@LBAoYPEf zdtw#HVVRyka~Z*)c59y08_Dh79Ef9p!fBigP6cO!T`1~9X+{aM5342MJEozKv)7e?B5KKFY zbSif*%Hc9{Ri4UXVR5Wk9|rZzNCwD7 zDx)VzPvA>=`hB&mx(VjN8>^Fe*>;bG%%;)CM^ei74f2EzoxU~0tQx_T^xU+EwcRyS zXjZ)mLXWowfcs{1-K;y`WIP2aH4O}m@dD;E8}`=;D8Y^O^W~n8J)1dwOh94v-nl&6 zdvv|#`TQUy5`7B$D(-Q^3njm>hN|G4%nC(A5i)x8&K{6`;`hDn0Wgn<8*Y~Jyt)Uf zU9-&Mfvj?HZPG}tJ>z~UcvO|aHinUGNK5bzZB9oriX?5R-!&&+CcjEii4 zB~*Eh1-I5S)grGHyaC$-UaQ9V6r(1DaK2XGUZ%G#`QmO$BC$r3f-+%$s*v(wA==Y- zb}!Uv9XS$4YKU(E1~H(p9>$T?3n-%~(W;DDeKBJl?xn@xz^;mm%}QSwe&15(sk~Zp zuQ)D4Y#Jay3G?)Bv1d4<4hcb-!tacY+ORjXj3n8)-}Sxm*-WwPl*7y!lMo$&+_NiWbbmAwHn#BM(>`Ampp5nzATjkwoLJ3*+b2{ zm$hbEN=I8$Hqo5$NX0h$SylNArl`7n1l8_9Cl%!V6nv5jhnD zrC>Fft0g8G+pn9W3{}=p0t5ZA$v9DhwV9vtW2~jz?TPqA^83OYQ15Q<%@eCOL%e&L zM#R`jlBY#WpyzciF>d1Jk=DbCAX6ml13KwkIdZC8iI{SFibt$Baz4T>>v8Cu+}ny$ z0&T61YsP~RclH8Hx``;Xe{WnEb_5HaJj2=az9SWcQGf9iar;K`&5M z_aeYFFk7|)0qECe`N$Qi$Kf4A^C1lD6=Ae=LMDTe zW?{g}@sY)XF^}0AsWnD4=(}W9eA(j-l+kSVP z?<=zM^COD2!Z|K8Xft_l1yvUuUEmU1+Z{Eg?6v7W+6w2(E;7y0guzQIf#K!S>#>OK zuxAhiX<0kZhTQMmdFgc$ww(iN1y@DIf_Y7a0S}cqmZI*@-s56?GGIag!%mFx(r`uG z;ohzJ^B{gx$8)@F{JJ{Vr*XV7H{@b3BY>x0KXELHnfX-b_ucswlHIJ#8grsLG+6*E zE7>Y%d-7pD1DkN_+$3=onW#fQkGz$KWY4J*aKZhF#49yq&;*i>l$O#9E=Ud`ns&3t zRx3@9wd)w5*Rs@}1;6WShTP24Ux?n^zQY23#@y8L(u#Gdgv?%sG}SE8_0092(An)- zs~z~#Sw(rM?R$2ndx4=aX-fV%*?eEB!Jpy*Xy3hVePu!&V&t}xaGBL09d+k1#5Vyn zOs_2hxSn5^pWiFM<9##roF#Zj4glCy!%uS7E^{^%<)#IO$y_!C=Y_}HCzZ+52DU^` z-CG}csTbleOrMWxK2*t+C*<4fQ4^T}n}wmrG&lXm^oUhOoJGho6ZO$*-P<{O2Mi~> zdtjFjPKG`){p?5T?dSfYkYIJ8BQ#Q6HBSQ5DJtlgdm>*lhK5+;^L~Nsi%TbMijg|9 zv$YYDJ&xO66>SxLooYVdxEV{5Cc`lWZ_($O1VOKpSG+Z%hevP9NS+o8CG2l6Z4whU z>cwM+)K#qlldIhDYg!#1QcHq6VC1akSrS^{8>zYUYATCsx7R)SvZm^#exdq(4KE+j zXB6_5@k-v3U#C4jf8*2qJg`gjwY~yBD???St5;7ialuvTiSp0M5_UDW(`OvY9+6}}cUr2( zRmbS4cn1U3khp}Ib*~V+>`gu6SM7snF*dy?EVXewNnZ|N@ID=2#Isf9(jPxsh2Gm` zEX=prQxJ4WG}r130cN>_$1CI~<}R@t`+Bcl8u`XkrWa(TCOz+7w!hOi#gl#O0*y21 z_FmiT?Vh-O(}WLP5d0pz&C>CELM87}KAT_2I*_fvdqI4@yEupbT%{+hlqJn4G2+G{ zhld}h>cg5u>n~*Sdr~ryrJS56q06DkhR`Ek*;!>l{#3wCCf-Zlmg<}?nS3pcs zI-4pAeEj0x$atC43_p$TpV(Tcqc1!Qb$eKrDM}v3 ztg$a+d=U`kW=z_{z|t?iuqF6(19X_hR76DFHSt$T{R#*qyhrS1o9%-JmKC;O0#iaHcaknV`61Oy?L0A1@EF(HKuLGg9cqP2xKrr&o1FhM9vlPIrj1nb$+wV7l&W? zvVMB5(KQf1*o#1v$}zg22He*WTpmC>RuU*E<8B5O z-W|vV--sApErnQY&+}?dA8p!tsYSZ%qb*lQ4G!<+Za#zbqa*#9$ke*{7C5=91TGhE zZPT3-a)rCrjLsmYML>=_z(ikzU%xQ0z6<3jlD4O%z;X9H_tS%gJ~7T|DAnLqY|=O~ zUyb)tlExVz9QOebopWUCd+b)19pI`0;L_C7;&PkMDuz~QRFaA!ZJG@p;GT@a3=HAL zQUzRYU@%7ED{m2%f=AqYDO(=FazhLd)$muvN3g%)q0 z_tTzZBS1cL+TOusbJ8fQrLsCfwg*9^n2QAKM78R2w3g1Qulj1)Z(W&>-YWCmVz@6> zOZG{mxPe8AWgyg~0w}CY$w}#%>48uv$3*wOnx8nY*ETe58{tATDX{grCJOo$hcst6 z&@5o{5qJyNZkkTNUrR*rVr1KWEz}5asHm#;v%b3MS^w#r{44mO=SfX_%%EX zRv-)7eUnMbz&sM*C~gH&wJ!$hMTe6Nkv}N9lZh4-xiC3DYFf*HHW}KN4i9cQPPr&bN{duNLc77@^DwV;zO_5# zVi$YYmv=P;M&T~6^rFc|)$GM1ctm)UUr5_$_hV0lWT8&Uol9Sg)@N?x8_j7lbzH9Y z>ar+Grmj&^c@QpFwFgsIhn~=gSg390c;xHw_rlx?icw#ul%Zw(DZ8Kqw6_eps>{cy zD2*cc0wQyQ4&GZRN$SXsF4TlhI>&qQyAPr%wwOe(T1P|hwzM-g-dShq%eHm^0@a<) z9e8i{#CntWv^HGKS$U|J2Tv;B^ZT6c{CfjA-n#EaHL~(MM6nl5&l{}=pO+DeB{f@} zhsLIJz0pc<*d;@3@?FFia*yGKgbG3LV+D8xq@|5#6jafVwLqk+j7Av76$Z&PQGinL z!E*D-%V1UBHv~J|Ohf*bMD(4~3y~7~nd_2XVxIbxN^_V!#$87UYBN3SVjey4cz^(# z^dM>QT#57Hfb~YORoAw6A{Zs6`Fee!9rTIzURUQm!A6Ry1*qsfXto!_yD<;jY6Ku> zAM~`!>{L}wxl2mnE2e~o0XHWhz-3@^Ph<8+m$nko(1LHl{6N|X+w#5e0_+FCv~lQ0 zi5(=DXuTx79xVHs+mM{-QJ0|>fk$`aPj!=Tyur9u0F{(I+vkAJZtZY1EN~1uaEgG& zhB4A^Z(e$K^Ml)*SIc6HXO8qRJjd(v`_?TN57#Wpb0}zg@Cxeqbll6fb2B8EZ zbl~uNo$nD>IN>X;&1}MU2TN+^^A4_gR1nmS1=>5uL~mpVw<*lud+&%AJVi3a&Ir$qFUFD6!aZNZ;TSH0ff8~8*YrSr7ClhzrN@-8sGVc1n~H*eY& z&m3%-fi1{=tl_C>RnTg1y_5;z3pw{liartl?2_rm3$50v96(yC&H#RvsZ4KPSct$z z^@6@mT)YZPhQen_@Ay=;A&th6pYN;z_R*j%k#O@H+~(3}Q@uy$7WcN?v7a-P1+sYu z;FghWN}~~@wvK`>ItIDKO@l=BKnlD!rP(4Y2uw0Qu6BdF8yg*kpti=cs4`YxvDaA@56k5Vpur{ad{ z>u{M4=QRFKfdN+(mysr}dXSLbwe;;sMBZXJme0e7V6^emv4@|!;a<< zd%>d|<*C-XyD~lAV)Uk*!hC352oD)t!sVe6U|2m=e3!z z%$q57?ql9#HA7*tzSl3sccN>0=DD6~oCA7{yvSgEmrf~|LMm_D2&*`=LZ-J~x~Ar3 zu#-*&v7l{`AM^56y1+b9g+1pAH_h(6q>OM&l2^#qy7(XoHE;Au#8gHY`ZyvsLeiB&}wc1lK<&$OBy#T}~9MKnp*y z|Lm(0@+wP^`j~7~OD2v&(E%JDkkZRBB^S^Vk==B55+$bB_k^zUB_YEsFRBcpGbR~K zbcOYL(=cV|35=lvRJ~48?+f36(HB~fsu(HhtvsdU3CeG-wQbusqXD$EpXgx`^kA$x z<`F!3+3r6l(u-$LW6F>=Nsr_V;?CRxSvM&y7Lo>bWcTG9EUF!XRzHLe&czAWZ9-hQ ziF{xWT|RT9e0Nx$xS*mI6@y4oH+l(q7jS<3>>d{ovtPUf-eFojW>vit2bz5CSknsw z>)P=0=Iu0Hdp&&E6egtyrW}P4ufupEBd?byhE-e%fM2*E*CnbBDaA6r340G!tpM!d zTjLnJt%F-`rbf#|_jGms={yo1b#JTgHDU1#KM@>0MYTX6RyC}$Nlv57m`P45T z?7j3xB1_DNO^zU|FPq>CfBo*YjO+C-7L;&=afp%~YGop8L@&36yN09ivWQ_*4gI|b zD}{sd#A--Rl;B+k+U4_A4M6RB-gwuzxKGGlaXn*;1<1$#xX%?ZMFbz>Hj)6ZWcK56 zHBBs{ux(3lfT`PsM?o8GN7w*zXb6cCoe$IibDw-A3rvE`I+nOdzUM|$+v0jVLS!pwYCybwf6*rjYn6f z$1r5mU9KZ=Jk*pT$RwH)0)PVP3VfkU%Jg2KQf_&lTcJ@O=U@N{&neQG6&|!OEtgzJ zG!5hVsQ{veB)BEZ?%Q2i=GUw-zAHm<8saG9s*@3Od=?LWz5*V6rI)KHy5^>==3)7Q zG|+KVyqi1!z=d-hO}Wxj6m^(@D2mfOTcyi^HwN&uHsaHT{Ck?U)`h0B7tfzc5W2d< zJ2D?*RV>h(oz@J8 z86l9U+pA!4h5IcJay{;SFAPo=8Z3r#Y%Ez`^q81J6IP+rdnO+1x<00b8@=;;ha;K; z7~qR;ozxp^`6hSV+&dsPs>9yiU`M`}%{mpOli||wtZgBmWs%h(^q9is^Sna!r{(f8i6Ve6AX@Vtp;nHpkQC@sBv{WitdL|zR5J%z_yg!(!K*VWJB z*&l!~7PK$xpjPe)xN!G_ad|F9jWIuU}ISm5=11%&kDMD2dOVt?gb!8{LAuT=SZCk$xuH-qJ^Du)A zppjFtcbfjiLwxpR@zIQ^)+g@tibMm|4ALJOJTSuUzIkP_+2f^>Y-+tyX=@MRb+}}U zmUl;P4eD*p>q*HeWGJ{Jrs(!j#4UW2P3lP(tIQoS%N$|1`LKo3S{4~?q-1i3Wh-qY z752&CrEO+4%Slr~!Vy~#V+b=*zx~Aoj!Ru+Qt5Ovf~<{QAZQ%mzK-zG11>Wa7!&6h zm9&Hx7JQqgi2;JHzsTSf1)Si3{w$7NpIvkgOZ#V}^+vJBwASD&^EomsynB+)X_n zf|ukW3KC1oG>EP^SFkG8VA-B1!R{l?WVQfZK%&1yMy{uFCo3hn{d+6n(wE}c$M+87 zq1G<%NH)oPs+1{Mb2zm8e4@I^`0;a_BPjHV(<^?Kle%Fr@Z$7!|M&|6%-g40rIm20lmW*z}kd+ zRGt@Wn0Q!&>gEU<^M=`P_5kW0##I3@FwUvry<`gu(RUi;G#jn*!2H<^ObSRA>ca+_ zKd&0+7ykPKZVK)P0UVwApbq1Y&BNg9*e*rXgzREs%goXq2dlBXC*$zO*%E!ICeoWH zlM@Gpzu2J9j$I;+u(`0U{u*_VpYl;qU>#{YEnUJR%7`|cdU^O}qV1S>Qs~Bb0IeI2 zrq=k4Gaif+4Cu&tOm;sPDR(FhAm|ei zA67AZ@KT5B-FqhT_>F0Vuk(XwCXh^2l&SYXY$^hYaj5H&(i3|pPku2nh3`Fj021bg zm!gAk!nIcQ0I1(ndi~ydbVP+9k(#FI9l1Xs7vfmjcXefg`_Mwn#=jWh&n`Y$h|^H; zYziJhipz=iqX|Y6QF5V2{vu8_VagHzAkCt)p1U2C$17Jxh*0{}wc1MEErmVjy#|59 zeWZ-lZ`(7D5}u**I8m~P$L`B4zoWVF3W5m zhEeIks`OEhrum(4A#zI5tXgNQ)0Q=!9~c0lM2c;DcT$+w>uLt;7&dx`K_M4&!;>k>mY=JD7nhKwH6d9&nHUT-%O)$>dODGCmyad8#O%B~Uj z>eH@f_kjqmQKAdok*D~Yq%;5@^cA@VF<&lOlK>^cm81$jZ4 zEos=bik>$Q-DXGYDL%yHSfkCignSDr#Mm!GCRhy z_j+jy4dm5K>)f&C*}b^(Bqr$Qn)8LEO^O^&ky%8QA&i`zDM1qwUK)HJ8>Ke`wA4JD zujGxwaz0~z%@)Wl8p7tO8XILa+e~@#_+9WlMboW=_xhQ?r`87W3=e3#v{JUyG{nm5(v5wR-#9->=1UgY#ha?6ptYA4YG6hC=tJl#l4ryJ;7*V=-;YMWc| zXyU|n`_*kAENbML7tcN)WSe_O{@@ogN+=C~tQNZ`@-tOn=~o$ok5|D5rSt5Og)+Rm z#8g@lRmh4gJQenOd3e0(QEMZ3_sPs>w^!0rZ}ikil>n5;=%=;7BcY<NlE zZ}cNvIKm2%L~TQ9+{Pv932r#_!MzE98s?sbB7b0H`n^lmIxz9Pp^phLG)GO{+ z4sEU83W#d53h}l?vreuV#F*Yz>oao_P`o&@wT!3CS%a4np7wNKidp9gy%yR=bAN^x zRNibyY$2T(BNFqTb{1+^Pj5h3Tq2P6u36p7!V=(?iq}M+yds(GD1^;-)^mA_U&jjF^2S(THNfTO)P~3s-5WB%(bVVSYb_iMHv^`FJ@Sw2z z#U}Egi#bZeMwsI)=Tymi+>7mDD}wI5c|@2Q>Zt6qAh}pf6zuo3dIjZiiEU54CRH*b zi9rjWMXn84guQJVu;*{02$S7lDKi$d2{UP+qwf)bLpo&O?4sV!*TeCINwNi2wAxEh z#8fDai2H%pm^VFU}BLu zY+)3AWA~iJg!w&wl4_2N*dq%eWjrV6)Sk;Z0B#nn9;${L&$@+{ieh@6@&qJw1O<{$ z5>ZJK;uEN9SfKZO=@&y1NE!&qPieUja1S!4Lv`#)8x*5#^~^(!Cw4mOC2n*^_9WUbd>^md=B$z{UY`x*avZ z7JJIWEk{+}n#O=vPfRnp5Ss zQDfm|74a1~f>s{itAszRwvxX0fC0p^)u>k}w&1uXSsf$P93%7co21W#0LxjhAkR1o zpr$VaP@MN3b9xy%^IXKaNrXeGmc7+d3gYzhHM=0>< zc0GV2Oo&$SPBqsbUfc8m$6BJ&Vq#AY_R z6Ii_0n_8$tri_77PchCOPtr0ZG(go9{yB4&3+-`5ZfimMbnC`qRwm~tWkYJqtf|aW zvmusgEZ^*VX%A5E&MEupr5{?@a8Vj*Y3TB7iZDEm>|M?$O(|H-Gy@_kP``-s8^C~I z$1Ov4;D^DA=nKs7Z)EY926ORvvgDH zkX}GW{y+qs5;~Vmh+lVfkSjOV%Thgt*9S`2BTrOL>h38H*Hf%{Fh`Ez%f=*t^;}_d zMu3NObTyd$-og{z*r+@nC(BirD;!7r*`LOy4dS3MqKgRa}K_#9C!{cr{QWA2kvsqFRcL>!aHjslB6lpr?&NynqM;khjw5D7J z>e}-NOQsxYvUi|$RDk7XMSSBOY4PgJN)2*2bURQ`88IN&05ka$e|1NuVs2Q_2bTWg zUj7afJX)3bWNbC2s^B1Eo+Tb3`@94=(gJIxKK5sLa21_E)QW#}1|VnD_{g}8FW^MI z`6TOohKXQ)vkDzyHL2i=fT@h{^zD1%CwK7#S|H{CbiL(SIJXLRhPefrWL828$2tv2 z;{x?_2$Qa2Ky)Mo#lo%ZcRrD9j!RQo=d$w)YwVHNL;&S$YcZrBc zXxQr2J<><6$fNa0EF8ipAv;UJ)0CjGi+t;C48!$9R^0wY*H!O1%z&;f6qltumrkjs zV)w4VBo8=rY!@qD$l4nPl@~EiGa|>=gSIT#kgTlb@@<3fGghp77Pxw#24@OOZxO7% zwydzW8J6eA=E@u%mU7S>z$h;|-2hehnc3s+s|D10k9<6geIMz`-8w2MvK?A(-zk>S z)GkdEgrYn2Eji9*$u4_g5W3?NSX5w|m3~aLFDB1Z*7_(<~WqY<%H}d5*Z0peWy>!Eif*32TmKr@D>zF~7SH9$} zj^fEGf-{rlrT)ZX7e5J;&wz1*v4H8krQ42B@x-aiuP*7jBB+Gb-<3TdB7Fx0!xai$ zI9lHPys6}6TyGjNLsMo((%YT_=*ODX2E>Z#ROL=yF04`BM%xSEbPFnCsO%9<348fe zo4Mif<8+RP24WnM%E>`di@VQ3MtgZ>U?9|P1K??BiYnjh>_7_uP3kQZc{C=Y{_~Ap zhmXG|^%{uIf#|V%bulbE8@4UtF6$gCVnevyu;l3?0Kl%RewoXwFEQ#pE)utIOVrP( zA(2Z^dbUv9mf?|CF(PEw6A86~YvFhE(8blu`5HGC^zbp%Mt#~_a#Ll7FNns{lZ-WlS6 zTe|KP7K<=4D<{oHXn7!zEItEPaC?B=$DQUVb=)t0k@gIqiU%}TH1N*V!KpissMv$b zNiI|J98Iz_ie_m{SJe<+uZW@c*jcEdkukX0L#$8I>@#$j?K-@QV+zS4Rm5o`@RkxWG*tNKznG*fx=RdQv6hT*_2 z)+q#PJ(D>h9)ev2>fQQ_HaM>|!Z!=c8H?QHRF@FFX->`9AasH{keLs7!VGm`zzfeV zsvfwMh}eU6<}J4t36|? z<5bvtpw?{s%B9+So}oD$!gQ=tV2LwFs#%2sp`YPe@R5b(Cck)~g5(sSGHg{Mn-+Tc zPV~k-v|beTVANwm$qBVKq@uS1Oam&!v_Oqy4`OKN;nRvS8B-pisql#x!v(ja=^%9V za~|s)8uF{@=9DqK;+)=XAx6%5IPVTGP&$*}E|NLN)X_#-fiCvj9wm_=ZPW%`!M%ZR z;{201rU@yi$Q(*{)L9+S!E*(00jcrEhxAT25|vAma#rM=Wni1#VNbvShKpn$bweHq zbPv|bibxTI+rk^G3rAKWb7*7a#E^Gx4@!4w_zcg~XCB%K!E>tN1fO?ARBtz?22kF! zVivF&f#a-4&st_9J!_QGXL}QHx!l?-$W98pw%F8O>-n-n!}~d(6$Wi(JtLI#jVs?b zqF6*wIL&Hc$p-x)GKBMH2Ru#Di8&%|Fn z&;vmZPt96;`z9r-^juc!#d_k|Q76D$r97pk9;%!5(sxBT1`W=K$mk`SLIYfmoh`df zvBg*eU|x!%<~qrvO%WUFTDIbZ zYwb%Yk7&}3TLA$zVSbS}r{_>QqJ5VxPm(O@NeZks4WeDMgx^ys z?J*aHd&O--NPOg{))}i(w@`MX+F})ZU*sWt-%rYMqjF|}^zcnc14ftuy^ckmvXmae zi;e3SIEIS)s89z>zGPx|mPrd;ao(3@0MO(Fuvr-hNi)U+Ly@ebl}_HgYQxj7=A@5Ah- z6pw)jGNn*{ejG}|CDsM|fC6jC$&6LBbYZ+Uu_wV_vavgA`h(|keSF1WXJ(gjoBdov zn)04$7y*g5Svni%4uiB$t7@>Z#=^OTrITUG~VPh?$ zDd6|Q*rU!puEvu6QNVEF2pPmwsw)ewaIh&uS=#|t&m=~npbevq%38##Ya1qHy-_KJ z@=pTkdtXxZ^03}PG#K`B=Vj2oE#qEKJsGETG3NJx)o1r@VOLv;WTSu?m)<^`T43!b z;X01h;z#{RshuH%2H1BmaC8BCp z`Y3set$`gBtQ%P81@^pGQ-QKTp$ix=qQg8svj`=nz-G=K#*Gt?n`nnw_V<4B!E#X3 zN>Q{!)0jdAXX0Y;GaB2KSOT7T=C|}(Qc2&E8|N`*%{n@nD+OS#gcw$RQ}`KO2-OY< z(Yux4@dgB@KI@#?2~orp!dn=9>w1N?2dhd3sGt=Zm%%wd1|7^0|kBQm#LG zojS8}A`SZ}Lk5?EI^|tGO@CJ%J#I$>9c%CTEW_hmqMIT5Iqz93Cro2=^u5cXAv&eT z0x+@6R~|bshUAm>W4ra8hWb9xH)k;Ctodx94VhU>fV^0OVJNmN?II;F za-{D)v?rC@Q3d#V_fGO*r8M?}%WZ{2WksLG5sEMHo~`myH2awU8S%U`TsV1NcFm~Z zlFOc;a2MsX&3b`3vDJ`L+RWZneyS3~kCGm%_s@Q~11{qXc|+r8p=9LPl#a^HfwxU9 zPU@$6_WCYNu!>?~z;M%V==$O@5Des)I62mR)A&B)%;tl2?m{n4depex+C5O_!udER zi&`}LTBq3)(!>r8VmHrXECamm}WVcoLccZVHWT#Xogr?tTiyaaB}%+iqM$W|+b z(9^1Sd>)B4)0((D_DUZNVI@P;qj7&*tf#H+q3}6{0Ehvb&FHE&9C@F-1-QRm#drMBD zSIqNB;c;}OamKUQ1!(18R9Sx4p*5X%!@=Q;WZ{M?g3(d#nM-T|v9?4+_A{`1tBSU3W zWHU=X{b@ALXNnVKgZcul_Hd=Pt3wR1aMn;PjR#_Fh&iT7jOB#UOGBWk6;m@UYh|kDs3=(s5L+S@p_GW%I8|KI z=7x!QB5Z&N@3rtxgMG_Fg+mi=$=1%O6t~ct6`MuPvJY^u+<^mb+I>%R z_8g<10&5`aq}w-{pJAul%wN7hO3RWQR)Wl;sB{Cf9`15h)|`&x>3Ao&b3#~zihBrt zgb7LEA{LGfE8MHS^Q7j?sd0}0hN7|@XY?tEYv|j_vfi4iZIc@d5>Pmsq;lb+0uOP& zg!4w-))!v*T4Z{cS-Lm_N5l6G2WR>EW`mQQ=WOjRhR!`CkOoAxx5AIKGoSGJEOwPx z{7J|j&ilPD)h74bm-Y^JuviD_XiCGb`aM9a5*zl8t$A{iUhlRf@Hr^tzDm4HR9b}9 zKb}+VHfk=D2rncmVZ?dF<JyMz1@FpjW@Q#;X*D2BD@xxox3Vn>H{pRpYVfY<|ZiP+wh(eB# z>uta3MWc5FCGW=O1n1QuTh6FxJIK>3tP|8x+I6bT2nvL~*Nt8V$LAVOrq@^REo{rv zrsn7y-wgzQcfr6QUXO&H(z&)1Z=uvZ$JMgv<^&>i2`N_b^kJr>}??a!_n5|z_!ChY6aH(R7u~9 zfo>_7p*|u!+t>VFv!>2U8Qm~9_kOWg0d9o` z+sB!%L-Pg`RB~ajJ?I^)jG7jA#Zqkt`c3FSJ)T`>BkRcEI?+xlT8W%W7Y&uC=_sIf zZD|f1N--~<4~nf7jFS%5`8pC?Wf>DP(oNK12#Cmc#Nc7|)q=*mguE-ji+sWkPPl8q;-t|7wrr!OLUPs=b6^NQ1BcY0ftzc=R@PO?@~OQ`!;WP zpEqRew)+cT-fO{=Hw-XNJ~Q1F0|hz*gh|mST~Z{Vfl^zZh!I|1?z(VMmJS;>foTIs z1{Z0D_KVukxs3>|yOfo2ZjM5{XNNS1gm5;G0m{%}&;vI!?e;mu#q%g!dSG{MSES@K zhu1*g)Y4~U(tZUAh9Sl)M$c7o!*6SuR17Z?I~{pg*@ZEeyq+r@adUEdHZ}&A`MJHvT24d~L0P1IL4zwEkKyJC=^_B>c1*Hh^rBj@Nkr9z9;aNZTG!1VU zjZ9Ijjbr=yZY}yK8PLv2gBwy9lhx35K;(Lr!Exupp*5jGt#rHBWR#`CpUXyRkxPLy z>m9#U>~BNn&+sHzHdWS3cUzAv1G{g9&~F}GER-!h6P?%3dPEcyz-yXpP#-`r2k1>4 z!`{t2cL1URM-<^ld3>ck!fKRdS5ll@UHhySZ#ap}JJ(Zg6dND&*|30`%n&-TJ?)%M zv4;!?NB}^ul^-Hr z$@TouRIrC^60C6RvD2Bn9_$cOH|HD(A~+Esf4~Ow;?))!(j$V?yxzcVPdE``yilRX zywc0hqm0Z@`(AFPO-~Z^P-I5B1Obxp#q*hX9Fmo>>_Rm-3NvZBG7V3PoF@Tvu`9>9 z8<~QVQKm$M8KnQL5d!h4#7}e9NV2K}hXoV~^5EeT84R%@HS;GLL7Yz&RZ_2zLXpQe z^%UXQ6qaAi(}EzgE|(`yzX|?6uGL1Jkamou$%x7f;+}Ga#elj>v>lK(cx}EsR2-Ll zO5?Ck;K2soLzM=5{Wx0{*?|$$yLKeHeP2I8UxyxQ^DOMFQ>{Da&Ej;x=OVyhj1U6z zXZhsX!HL`JL9xm%Ez4E9>1hpDI?7DT1Z&v+ww_W_DlOG5_(6A0@G90$$qbaarjci< z>VYkY>7Yjk)x{OTbiT-@;Sil??6UNW;*EA^zz0g98i~`=zDriC8f8dyZ`z&cDND~X zznlm~Ilk%V8Y@c5%Wd}_fw7+9Tl%J0KBHBq>2M-RNIIH2DH?$Kb2X7?!|Nx|LV{2y&M^REHiC^d-E@D;{k`{qp zLYjr`+AN}lD~+Q3SnXMd1gz(Aky?8+ z$`r99dp~jJ4)1>X4AUIQi1%LGd+EY`4hc=7KJ#|OlRET02farKuXlx&e5K~BlnaX4 zHyD?(+?rnD)7F6p3LQ&Fl+?kg8e z2e)|#yXGd%#j97@&@=tSYxF4_hDM*j&_F!8ZhOFDTz~~qPvnzkqffh*@{R_kO|2ed zzH2x1tD+R(e4BoTvx#Vm9;fjb-oc&vx>7oZm2-rcyx611DP(a?`n2XXK$H&dY#lvg z$FQt=9YLps(^2VxCkAej-6N@mu7MfcHjqB-7gEa6IJxz_U(=yL1#d48;wbhLz$qp@V1h8ee25hy25C~DheTBzVoC{EKDa8lO{2-7(GixOA7tu&k zf=$94sAetEz)Y=)JYcgTo8{nQ5`5qsDSD~qElX!zbiprcWyRebUS`SoA@BElcK9S3 z`=%+ayX=^;cxdeu9OJZi5y8StwV-8)vz5tx$WBGdC!vj?b9X{dfg&DqjW-;6_j3SR2~+g{i2GD zF}$p>V}DZ3(62yKnT4$-}Lek?QUT|{zaTvBa|+maq$l@yGky!I~dxYQWm(ZlT* z_tHRdxdsS1*GVgj9S#rQWtJE0&5Yb&)eAOu;RHVh5gtjA?y7PWo_z-IC_1TT_uyeX z^#z#`6tV7hXvk0usOo-WwtYv~sx|jqpTs<}3)hEm?wk%O)y>od2hY4JGAxnwS}x=X z?t`PCe2Om^2IRF1W)EO=|1@ykgiF2#mdyuUwUOM|dbW~}t&-qKjrGVw&T)imJ1Eh0 z?U_;_^vhHd6*eCBA|JW=Bs=u8Pp69-&e`N#MC#pcSaMcGpco=cr_Xu z59j3&AWc$B5msMa_`WpDqC7mlNhaolr^9|Y{d+yqc$iQ3LBP|JWPGN!Uba>^kwL-u z9=8loiX$5qJLDz0+KRm9vpL!)V%axwzQoY)ebLSEeJ%{}XSr%&R}H1bI=bTCkoI_t z#N0atO2>j&Xwxa)Nu|n56jm)?EOH-zCumL&oGeVzl&hb#6+DLZ6p6X_+y!I-qLn8j z-r)nj2NvQ4+*_r~HXa=>WwTF#Bbn^9-&D0FC4)_vW^(MqJQX&2d`;+csabEv(MprU z=A=^t!7?!1B6jGxJ}l*W)b*O8ZpOkSJ9Ouo>}8A6z_Zs1{4Bw|_ch7-Pr@mO*wFx} z{Qx}X5u3t^Xl$uQBE13c{K)=pN8{R=GGBiFY>L}Qk5*!?!sbJl3CX-hlz6&wIjqPdIsJ8vP!4o24_EDB5N9+vFr?&NP0Y4I8Rt3Kqk@ zzU;!028;2!MUXS|iM2+s^9=?-;TqLkIm_S;6Bb*ggS;p(&lj8EDC8O$=$&FGC2z-Y z-wkI=gBryz%7i!^oed5G3iuKNgrR4M|J|P`lO76hc2h0 z3X2yQ7Q-9O;sNw{uU6p2$ih;UV`QINDu5y)c&wTlGL6xUOYKZo(dc`jQ_vk0B3ZAM z_#N&hy`vF)&PPiS`^2Lz1mm&=>kTNb10u;P$T-o7mB%k`_sfYWez z4!zJsaf52|AZpB=}gTB@|GO}Z%rz` zeiWDvQkt)w@DYRPOAxVYL!gBk-XS&&5;}VH}L9y$hN(E@18R!tn5hE`B1`&`3?=AvyW`LMRM51- zN{KZ6&nwMZ1p^RY_u@H2^4wlZdXo7_pTsLP&K7UbZF?bp=l%WG`7^%3_(0?i#vvew zMz5@G1)XyeM6PKqW1BpGZ!-|Jw>Xk$s}z6%t*VbyL@rh7p$ocA`9T+pzVgBbty7nI zc1*52Nl?x#eiAVR?^PX$^JV#%pUb<2lu&dghL$~Fd5_ctHjldBQViD&u&wbMS8l2a z^QhPK7($W#OpThD7~kH_wF>ehTbeWt)Dn6g%(aZPB{Tc_3>@ASiD%1|(})i^nq})f z69u%plV8NUndul1O`}UtiFpgZrRx)mrweDVpUt@_(s{H>@Qpymz9$XOM|(072M1x3 zi#v=5K8b(t)8v_0%Xqd-mFoC-GQ|(sip47xK@|4viI_`9?M(qog6aksybFq&P>WzV{rew|pQ5p&&fR1z@5S4Ck5?U!Jy^Adcg5ru%#0+FYA@Pvc^NFkT0_dXJo- zJ|$5Lzk^3Fju{SCCrps49K(Y*;e*PF8Sn945DP) z5K9^wJp#hPX%>BWa*)s0-;=2nU+tpy&7aisz4r*8-Cp}j3m-b2G}+WJ_wK&PF2?uU*Tko6su5T#+?nv7kNC(h@Ory`Nq^h6CS;K zi$j4>utS=sI4H2y^;AOUk!nJXoeEYy8)!SU=p>gX05(DE4`ZI+T#dcg`-^-*7DoxN zH=)o_F~%c@ls9?hCu0FplS*unx-e>F1H3n+yD3unKnZ>MUVHo)IKB7B^|G&9rB60M+2^ranJMhuwiMm*C;J`{fz+!&Tdby>)d z8Y$uWncIy4+E^;ugBP2ROUwc__UsweR82gbE~jhb%zl!d@j8xb_?eyJ4VQ%;P+~dh zOTyQBoA$~;u!yvc2qL!4o%1P`b7|hp0|EkzQ$5-aw!rsba z;U`pdV4N?FO>Y?cC4bZZ8T0lHHhNe>x@xcJQC%bM{TDMX3WQyvQu@j6k8uv z0dJbHX0C)e;zr#|t0%m(j2Bia6_zoafWs^!BMx_8CpL-v~0V z%dDBnxM`#HnUY^bw9g{h? zfkbgwV`R=K8-T8mZHyCn24qZJYl7m1cn+nDk6P1Q7~OROo)!3t;F_$G;#!ystBwJ^ z8taKZCYq?V5xY`F&^UUIZB-`GV_2_PJE@xHbU2y(a%(C=GAv&D7@^3H2qvCeJJcyi z)Z=T@7XXEx*z_KrJvV#Y=Wj*j6wha9d$qK?hIKoi1PjMW?tBgUi^0yvZ2*m)+JplX22I}@TksJdtKuxr|Din{2yMM4EZ zIMhtRHa;cbpV4m$@f4!6(h542Uyv5g2uFKYPSOjtv7C7mZhB@-GBJi&|HHnmN+4JEy$27W_P#qx^~?9*xI*o-+v-*k?bT6YY-W~7x1jZry_+5JQajs=FwQp8?FH!7cWZ5!Q-l{5+rd&hoU@=(ap7Ea+S*602oRLwbv# z&}eY?a~3dbcn%eKOnVM7-o#nNDvk%$=@su;zF{SD5Gu|p&C+Pa!5AZWuE}>VET0;e zzpjwav+RSLqu!wju z{Tdt3OS20t^&w{xnS!;Tv{D+gqgBe9Qn%XkwS`eP>hL#4+)>4aXj>l2=)wT$P?st_ z`$EPbpZ0q$t{~T4JK)+>PkJwuhneC{Z5U`F=Mf#2_3M!Yz`kt~yh`*nqSnQJg{T_n z^-k}3hL^tL2D^4m{VQzXIb>PPTYV@c1c&|njhYnx6oTVZT@o9*lz7WAO$12_ZO?oN z#j6bVkzQx-ogBiA0wRI(#w`O)6u;hYeTan2Qf$?s+64fJX*Y@$em*VyonuIKPZXPv~K`ZwI z%RM!RPbuK{PEfmQ)iz#+IRS5uHi#vr6ofzXdiA>YB*QkieIK2Oks*u8HKqF##xW&2 zKeu4Fbcu90ggqbw@A0#ToW(AA&0=a^A?6KRrw{kQG%*Dri;>DYKB4rWY?hq z)l(@$!UmxaX@E_D~(8az*i{PH*&wdx0GN(nrS_vyi$bRXD};M< zN9a+IvZwm!stgPD0%4gR>_iDrVQXC5G;E#9TD(DaE*xGW95MCQf~|a@fkpPCFXlz2Z81Rn23A7QV=C5Cvnh))GA2 z-P2eEZD_CFYEaHNLH3f;Jn6n%0<(2<3*~314ho4%+nwI*jp@z;HOf`Of&9(@ZeGre zgv62vvrQ&wwJVEXR@dHKNws^J^Z5HS+ML#Yr_FjQhob9(9SIj``;yg4a)QV0Ia1=R zrd4o{a84L8{gOja<}^@MSV%rEU<7`#%QY4nd;=lI39Fb@GTnKRbwkAxtfQ#SfR zyhmfsAh#}QZ#mW!@;Tdc+M#=FGss2T2#@mmVz#Gw-E0N!9)ji|q>vE9AO-=`OGk(| z$vB&(&ouMV5wt&l+}GIR^8PG}g=&WF!Hg!V1?AGX9-=<1GPM3F2pH&|x-H0HK0@5g zcw0{>0GJ*>5RmTkDa#4oFeSrtq$>|F2RUWrfr4N>=^)^mO8FGT`woz3;qFGyF|Kkr zFN17Y%q&zDR@1SCCVYc|NpU1!Iuq0BnRxIUflTMSSb~%wo!iRn7eX-rx)sDNxdP93 z8H zQ~($G)iraO0rx~Gp(G-)|7;n1T6kmyz12_D#eJ1*$Y(?&#nUfRFmcG;>cNRTD{8ei z47Az^9}Kr_^9?ZTwt%c}N%*HEO!rs_hM_E1Nr1yaW+Y0;Vdh~CYp!7$5pA?V2jHOJF?Z#b_jm-b<{$QxfZiDRZRt@X%1 zdq|{~=QOyheiT-Nw|zL4)w zIY%gT`R=h;yFC<&8M8I#AQ>Lh4XM1Ol1E9+d^|XaHYm~ejL(S?SoC&Z2V|^(tik!w za|sn?^-2hKyrd^v+B~Lw48aHOQDL;IB|H)jbm9PW6YRXW6s5D@?i-MkM{5I<^<>n# zyN6RjyK9Sa6E6)wD#6fn6(-BZ{L~Tl!1W#-_)5sZHleXmg@-}6GNG7GP%rygb67s$ z%1M;xLm4p(I6sO z-X1%@B)~^gBapBT@+7?1;$fZ4ygBPWLO-DUl!boAOI{Qf7`M@_lJ=a4c_b)(ixv*S z+?IY?UR4LFY~;O{IRrvV+)yLI=p2ZY&z1R#n*iQ|y=b?5SfuIoJe~;0;N8P~MH)}( z1|#aW=Ly?0(G$r))D42*?1(3rdqsJ1!!$Z}a@BU0@?ZqQ8bY_4i_-|@;Vc*@b_1PV z!4+08*%cHLdgqId=awZLsziyLD^EKtYxcB6*2WLF51UNGc6{5J#snb4ZmB-k;kf` zJiP5E5rL905iE7m1c}rHTs`ZaPd86Gi{`OiT+g0bg`0YnLr1#3;(OZP((up7=|i)8 zP;9B}(gDWdAcY1Xb`aPDZ3)#OC=ZS_B~6M~<0)g6zBXmq9Y#GtM&B5pMQ($ntb~{N zoYh5+WuJqPmzfSEt|xKHv-a}Qgn=k}I9wZSh6>&JRxNk{Qc$KTg1YS59!_?m;bWYP z=w3ZDk3)*3Z0S>}2V=m%(nIJ{6|C(9K$GWPO_r9iBCkL(R2kmW)PuxVi6T3s6H=pO zWdzb-G(e>=1vj=YHbJ~;p^|_m?_f4?{Yjt2&%1^tnm2MC7Rl=8Odk zaY zYzI3gcvaLvIL&y~<1N=uTs=4TTuM92xhg3oornN;)WvmMw#lx@#Zm^724Wx(<%p)6 z<5uxxu@dfdy`)=7I_YsUx9VH_Oq&Mtj9&d%0fGB>-bn>1i`At`q}kO>U%jfE0e zdlHvb%Hyq7Wjwz8oEsuaq?+Llg6`Byb9Qc?*(i%a$BCf$vtwO)l~4vEV#v_jVp};l zP>jju8|d+NNtYAe&)a7|nq9@7uogJs2Yqk)oh@Tr$z@xT*2CFV9rJK_HF$ftM}er1 zI~tc7o=b;Cu};vpcZ7a=NBR7@PnsChEg3mVswZ}|WHQ#n*=c{lYbqpz1IWYNTN6u| zQWY{qiW;Wr4R(DG@#M5x&lXB7JI%Yv0#Yx^!(BW(+M-b9j^3)OnJ_NLiBYYL;}(-X zp@)u$a!lqxVs#a{+nR@zN510L*`S`76v8EuqYn3)o)j%_vz|me7`DaXDfUI)DThLbd2a+EPy3n6I&n5H)X(A7 z2vFcg68qxiqYI+Ft}^1gcz*Uebs+gTB3s_17gvKF$Ldm8G-|tvtM<`}zfL=v&*4?z zGmvTlx*@!$$Led3@UR-XPn0Ga{joo-_6Z;CsI!UD>v~?-T<2V@^IpHp;Kz_>(t`mt z%bIpU=V~XO4jce;4(KSr{>EjTkm-;ZK(i^gQhb3D*lsniMrAv#-wU%Dp0;<-OV<+X zM!Mhh(c3pd8&vb2h(F&KRnc&F&W9_h0yMf!6jslX85hzajCH;wx6}s&YLJeTlka+en-;~eo4>p)x27^ zc2Ax}aN0@htU-Cr5MwoJFx?Z9DJ&B2DT8=YoCPqBZfC}+$si$autcqsYNSQG$fl3S z40}_X;>^G{^u~rs*kjsAtjz_bo-y3Hxq12!qc&D!(9_axtQVFL^q{>U>z<)3bw1yV zd-A3UxIe+;bDVRF*h4hjCMO7=AP#ClY(_8OJ}&1 zCw*cAA>u%dXhYmxBAetF(lFk1(USD2nD3WJ-jXxjE(Ht*TB8)B2cL?0BSpL?6;b`% zz!#aHC*l?z*)5@^@(GhTTkxRwY4SurgXmfb_@cUVr(VGS~frI5DCARr}~(Ilygd_1S0N$)N5nFF8q zl7$+fvEu=)T5`SfmxhNeM843J6NYSjdTONft~Y%!<6O|-au_b5YDj>kxgMsX$vm|P zuR%gNJ$BU-_GcG;>U+F&Rr0DM-YhXtIYrBEs&BuC*OfOmsJZVp?k>CzV5ORJz8iN&Clqr9J+j(kEn zubeU&wAP=nZdvbiEr^emztr4w(gO1G1Trj*Y*vsAW!a3AO~^EW<1KTRYI%xSK@|EJ zphI|X?FBBYSyOKAx) zqh!9Ju2Ba;`4kH4r=NI8r0uKBb$dbX$gB?xG2T*en9&hTSu=`(dAPNRHKmSZt@;ST z?(y^s)S$&BtR8pB**fK_N601MVV3|xqB{>uG~mon$VJ*GP(5F%>h;nj)e{{{TWho| zIl98#fU;N(H>3?^LkZ^_FnyT&>TOIL6YynYF5)Ggx5dNjcG@g@mNO-~r0nn6#wf%p zLMilutBPiB9Zqt4664s!Te^X~eOerNhcAsbxA@-6d2=qVI(v`jnPWn+m{&(=yM;mF z?;CAuojlLNxKkKSH;PN8n~stoHh*j!d3SC`%sXta`V11#kTmQy4JH%O_ylOJ3na;W zO67e<*e*)qcTbkKM_k!M@(B)mBx__=MBg5abli2~>MEZpmo&bssAtZ|?duJDTbvyN z&?h&+7Fg!7YMYI81MExktlJl^V@d*#IdNZrwZ06ZnIzs0Cu4+SPzV=!`O^GAfRv`B zZW+IFBYs@|sKqv~Z_*#g?o>VBW7-G}9b^d$Vrfng*0*ffG^U3EbU4oV zbS_>y8+{D%cf)Vlr+aK($4?(do<2@D`hcl*-u&2T^ zqXa#(&ls+>ePC$1sGdyFysIfuYe-(#8ca_M$s@fwife6^c-S)q0e99z4B0~JSx-T) zyE1lmAgN>k-!3%2gCcj#2G*swC|K*UTiO$8X#siNcf@b33$Y@$PP_+NJdU6y`&}F? z`I#&)yp`hF>Q%6Oq2td-?b7N6GPPm3`HhI!f>WYzCtgj)n^!+$t#?WwH6l)_TAI~b zo1H&gFE(VL=WLc3J#@)EwA;^%+4>f&Dd0#0a$c-OFK1k=@TXk#d-r-Or_~baVjzIJ zRJnF577nwFWGh)@a$-Ep?~KnC7(usLgaK8-_h?2}qv+K_86wwdnnI;+^kP51Sab!X zzR<*Z{$fn#q{=YWgi@0el9+bI0mCO#CZQMTfNqhhaDBX!Xh*y0XK zjtHE*S(Q60YltfxtLa636xPRr4d(SO{p?u!6l?3;@zv4u1e}NK+F~f14_f(*P1quB z3&;G(l<4ZIXPLjutb8l{Qs)Ne^b$o7`QaML4z1gT8(Vi-Y3f|=Lw#n?sNiWGIwHCa z3f5(u71c%d6mfE`fb|@{zBxe~>XNJ2m-SOJKpo%&BbSkZU=)GtR=3-B=!|mSi2=S- zhvBaMI;BQlR&0l+W?4B(i3|IIyQ=}ieM-hYqwdXE#$!&dmzOn`oU;7HR&=(`eEpRr z6m-IR>j>9C)8sN189*zNGrxNrjEJc_~kk9OPPr>)O(iT=nYY&l}D5* zzztfjlN3+HOffu$@@m{mQ_XXbJWpMX5NzP^+PJ0D9y|#OE2f|##|^IDGR2xTB5Y0( z17F$p_l$a`GyQEJu@QGe1hPmg`OiVxB-8}(&K&oeJ4V9LqP;tJ9~)29X{M&sjvzV% z@3faa^L%#Hn+K^SWkhdCl6%H9iE6ui z!9hy%;PG{IWe@|Gm27BkBIQi#bBVcEt{b~h;>!VntA+0Mz_a5mQoQs)q$j(qxC*O) zdnZ0PY|3$L!nN(NRc~*W#L*rrm@4tL%0syo94sIQRvn}kdE;u2kDE)yXdeJ8rh<_o z<9k^7g46kGBX2U`EDv)Hjo9axY$%-FDm{72eV4T!fv!9Zt`-+NN(SzIICs`uBfMw3 zJp6KPp$#7+rq%e62vBD|eD%G53Hp@HW6^yt?$x=zcV>m}-l%nHO*Ee5vX~N%l;g7% zrBZ2Cap^qT7g*1QA_0@%5a~SDkU(KaVTTd*ScYO@v7T&Q@ZqC^bzcHdfKjT6lg)eX zbFTTG!6uObC_3$X4gnCZ-ml4_ACHZ`6jHx546qjp;8vWP)z0Ql=T3irmyZ!*=3z;b z4QU5FYCl4a7_IGi}=H`Y1P)*6!Qub6^es-gBgq~dVr-b>(l^$@y=(;~H$_8mV> zS)XyiCKrp4nK~&NL(46H#t4h2`81n{H0`3^3zs|<9V+X1pz9gy_iVb}o|bcG_C@ZM zB6?ll*}hkM8f;rL?SZb&QD#3Qady<)#2MNEN_c=*J~1U5&a-wTK0|~VyQv2oxT~E_ zfazuA$^KTAJ;0yM&6~AL({JhcXTC|%I%DW}&LM7s9*xlNiUbwJ#L{oO883`&xk-Qv zNWoW)ab3oeor7C#R#3}@;W@p!LY8H&BPvef3gkM?9xBUn!SHf)E2^F+Z)BO#JG+=} zloXpW*G^mBo~9+`>p0#n$6gkZc?UU9b>=mKX8=cx0X&Sb<|5%I87h3-k!pxpSb?J% zLxlPsO;U$(*Qm>`>EpUFW3r^P+~^`_B}i~XovWv`(l{!QsWV121J)7W;~v~DKbS>} zj;`mG@AS4=p;eEBPFLSfhyEPE5BL&zUtcuw`!n2{D%FXs%G)ay0DOE0btPk?om7Wo zJ@7cK()Q~4p=`DK;Kh^hwNLTjXE-iJeizLfIO70d4+bD+9F!h7;s|D;Jk79IUFgH_ z>7&Y&9tq$)eweSlCCbL?%Tv zfc=`;<1l74YA(dLmV6oW-7S?Idb&AdUm1j)c)E355>6Rak_KB8O%wYoo($o(ATh<; zVR}lCz4=&Hs2;sEBR)-HF}8<-+MIA zE$>B-G)G{si*HgYOqQlf@_YC~C78oFo1PeWEK8t5SLaTA?QivT1_If*}lWqeIU)c{ca zRvz-|j8jMOIWwHJ4%WVEivv$g$frMZPeZl5R4afS1HP6J69jwx_C4F11?bH4_UoJz zQ*UM{Z95F~gZEBaTEr0s%!OZCea~6SpMm+kh`qb)SG_4@&-MoQ9YGoIa}%!(ly*%R`D~Z>E?%qlmU@-x9Q;&VeLnuZkl#p&jvX+1& zruK#((Q^TNtijl`IWKfe_oV}iXScaN8+iOvLQ@!>B4)%r+-Pg#_@I*kQopsQP9IfH1X$-t@uw-|qwB4(AxsD8h5Zbu(SDv>u+-pwrCM6tzoUCvw z+?_V@ApI;edI33gqxvabskYBc^hv@8xLCm~x`lLXB&AcR{*D+R!z&UoR)*}(;N@K@ z`XU+lnys!JKjcWshsbz?qs-c5l>Udd!@ueWYTLiE#D&YPZ8-m-j}`7{?JF|wy9c%l7VNQ zIPf#p<$^iGfbd#N0-enh8m)9<)XrmuJr`mVbnjUzj_!Dw?}eDBEu}A?WQ_VcYWbkL z$5q4DL2wMbQwHYT$fcSr<8p7((HfH7r?88A;#ZKDLEXY}-loF?VQZ!#qPVxXeUfl-u$6D5w~X98i>UcvOHxUgI9v4$6z`?u zWjnuTxX=5(qh#FC0V~@{|3UiNzZL6M4cP#Q;J@!YwivjuernqyXfsl zZN+Nqp<&x%4k=`TxH)LQLAFvxErG0#?uEJI?3{d7Rj##Wwu)A@Vt)4o!{3`?g@p`l zH9!hj)2fgmJvfKgp6|%eHv6s3#!=sKRf{CrnrXuTxhOED_8{btv;S;r2wROJx{OJ- zc?v1Fyy%E5Et`n8d`Fl^1FtqKk{;jPDbwW0gqmPa)}Nus(|L5K-ir zhp!tE=cJb*Bc#fLmJ|w>Ev0bc(QN=4=F6s2ofqU|Ic#=sK;(7ZYat%O)0Jb3(R&5t zJzY^~;={$E%Jk@tyL4wYSyK;WimM+kj4KxVE1hleDhM6OM|2~P=FnuZ7RB&NC|C7p zT$4_nUV2|VT1Mb&PH(($1uD~u6#8xrfcYv zeg2q-IVFbN&bxz%-&&F(JS-ty_Sh@f2c?N#oOvp~PCMA<%6LOuuX&5C`EuLU<>!bm zrxK?TQ90hzX8kAt(??(9rIVfc^Kd~{d{8IzimQqz^bL)p=*10C>9A9^KZNw}lc^eg zM{KjOC66ehWYJ2Ix;Mw!o!V0f54WCK4LZM!i|lHCkQ8r>;^@NWI2EB5?of6rT1TcH z>U$M#j}`F2wZ0R|1U?|w_S6Sz0BY%P0WC<=;IU6(6)Vo(t}z-AK9X}MoITRPy)nCX z;c|3&G9Z%ELH;as#koyaZ|!wtlelF*&Gd7JcXV6gtlh6TD=W(%MT$8u+DJqk6Fu6J z*kkCioUBG2qp2wfQ(}15;o))agKzVI(g>**b(;n(95XW_Ud)`w_5?60@9}+rsM2;5nJ>S0_meQ05qN4n9Zk z+H^^~td?<_<-p(T*+EgON(vY6yAHde00d?%z|rI@Mu~2$Fdh<_41c`*67qp!XHCTp z+tI_itl}mZCVPAjNJ}DLce6_p1D0i!a!MOe7+Orop3F zZbpb-L0?(vcy5g-cjBcAw=@vWjh+O->Y>-=O>Ngf763Ui^Nv78Mufa*Y(H=1F(vKi zOtfKvBX>p=4_?%4;2Pi0Hur4o-Ap7#3VSfJBIx5wm$-u(D{(G}xS5I$hv^1@ye;LJ zi2%b*#xR{^DXWebHSgP-{4;jvqQvnfvtj^Hu2%PYSIyXvuk6Gq3O@g0cBJ% z9v1_4-MoC<`(Pk#W`wZ;afOrLG(Ar`Sp6laD2KrC>0Wwhvdj?9jKleW(g|~eN!Q3s zGMC?AMwReTiMeus^o@c%uIfkiOy>=!of=GVtq_MDvzr*`;zt!^b=Q`a!*6WL3NuSu?@CX)%Z<=nnEi zZ#DZUs9#g!nbrf&u(9Td$#bcvIsO)vp0?Vkvzl1VGHX-7$UMN+Mt03&vamd@BEgNK z@mrJE&z@5mEfmMwEYmlKtSUx!Bf@HQrG?dQC6S+Yk06dSdEu z$QKsjEF$&HI|t`U#T1Xt?n?uStc^e?!xzpK9rNDUi9VLldB;B`#U0L10I!W)z!POF z2xQefoR4b?D&MnRyNyeXb7K+ z?#N}Zz2=6fS=3OVZo*KDQ%MxnYh%=V-CW9;=vVK(xYWEvO`f9aM@V}o9Ie)e{?x%q zg+)Bt5OIv_uJjy7rO?iSWL?JWTw`dw)64Ds)MZCmY6}@{i_(ZVxt+f&sWs1T} z1OO~@^YpMJPjConCRv0e9lF9asT+Mw0t`_llJ6aHRW^(WYGSL~a6R0ktGehGoo5`s zMAeYv&1;(yg7D^5LxN9NyTGFzff=7Dz^rE-2dWpC!*#c_55W$%@T3$wZ5{-UI@7nP z@H3QKTL_P1`w;jIc9=TO^LsG^z)y5m;hB^_FxY$kteLs&iAmwL4<)*WzUPu$uKaE@ zSwb=slkQ1K+Gr^Xi}LI;R%O4(?a915Ix-=e;gIUA+9YHp0=pqV0&}H-n_VL#nv1W( zK-Fu}UVF^ZZ9dKwI%IsL9PR#Yl#vtF zLR-s7Z@sjd75B9x>|e6V^vMLu>T1bX48V0KT}|yz;??6EJ9p>1g;(>nk0m(L8DO`um7sZ(h#nXs62O*{O*KVyrUlKV z_^|{FMO<>SU~CjHs?J@a1OneB%et7IHKc26J-tPq@}-`M>8o_9ndx3gOJ5W@$1|ky zjaz++!ox$fJYMSAdV{>QJaFs8GU_rG72}x4CtwC^BcL%+dwZlcbdCU250NP{y z`d+ef=T2dEiTLt}(jfyCk8_o~?vRx!Fk3h>P8LW#LSx6xOshoMc7iHt)IsYtkV*AGW^xgr9X}0|DN((sH^_Ex7eU`^N}5!i-A>_0ORO)X zxs@D*yl$8_An)}=Re&EqKq{en)uQvf+fz%TvH)MWZ`L3!CL}g38m#@2)-_(+VVrgh zWkL)oI zwBpf(_N_x7ZZMHbVj!zDmttn}=yU_eX(iIFZYl=EUa)WliN(pk7?Ha@Njfes4m zUQw~psrd*Dn9D64Y3fAY8;*VM1PJF;+6y4(>vwv~%??^kW!zNGd1dhUiBd4Ui*sdh zL)y4p?&P1o<>dog0D{7)t+#38ZIjOwcNWZ0{3$HR zOFP5Ci1#V3_Zi-0F(%C2t}`3hZHZdXftz3QWDhAkG1ipXoi8bo47aakWUN-Q zVO%B%A%q3yS|!5fJ#NBwh_{e@dqbgEUGZ`Um;!Sdp?lI~JbPcYjmO&X%Ag9=q>QSU zmq1*rCB&(I=KznyDez85nEleUJ zyn)O&m;vA(C+w{MtcJ!KCFcI)Nxc`FFb#IT|P3)D{_ zxNs;e5VHC?uIO&UQRs!U#astCcvVsO=o**Q3RPi?6CD# zk)1js!VTUi8DL%pzKbLS=_ycgmlGIpZQc?SHh^X~M6bd}$E%aL;XYT4*(PJG9*p~B zkOPzK7125O78qSrXEhX|s!QFN#|aRJANQf>rZQR20AyD$%LjyK-61u%5uMzV^JfonR#I{W$gizUe*4(jqm6^ zjyEvRLtdDh%Dx0B2|k0PPHz{*sBLx?MJR}?nIo;v>4~S?XFAlk*8>#)v%#^y%Z#_ zI%enKyr(a#x#bpBavYCaY7LwO8cPI0V5OWR`j^#KAfX@?{$pH z1*=9lDUV`D2+3B&R`jclCecWRg7tr0lM?O#nDlCQj5PVCNtm?@a zMi)GFj@)I$PRyEi##j&-wJ_>pNi9^sBAL49KYh%dUgY^pJKPt8@3}_uyj#!I#e8mW z_o-D!Y&7!{g5=Ra*h3pFb72b-4w|BtE?lUfPm$SY$PagACyX10kVkkOM{giy)0p||`Rre7tE-a(yIZE&%;9LpP% z$6fL$F;kw}8#V#6qhW>gd-Ldc3K^TrvW!7VtrEdh!u4f9dk4f*NMj`&Jee5238^iN zBA&u7Z5X)9z+v@3p(w9$QtnKwEYW;bB7V2-HCA@?lqeR=s}6Yw1*rx+@#pUzY>1Q zte+y$0F>fd%mGQh5t8y$ptfv)$M7gu>MW>l*d}cf zapEmR&X_@|r!F}55OqQWyt=g>a;|%v;yxL80#RhC;;)~*d`ZWeRqWNfCX#mbCkLdP@(4^TFrk`y23Z%0S|w^pV!~Ja;oNIF1!kBx z-m`0Un2_|I(A(`+zoXofIslE1bxXw76^vQT2TF<1&d$c}XM5rjp6pNW#k>f0Ds}Fc zpj3}g;$2=fvUA7dO6QtALD}m=n4e9v5_Y*!ho?>Wbf0Q7XN0FQIWf;ixhus z%IdBwLRg~KkxKJGc18SdD>tzEQ)uxS{GXK*Y9?Hjj9RE3ty7~lSSF1!*@j+^^YW}Q zvw9rwT133Wx+mb&Z;WKe=OKY~N%fpGKRmO`E}VRtQc={^FE;1QwR+s~*f2vb(dLX# zK?Nf>;m%?t5g%EF@7f`!G=Q=#xjf{jfgs@=NO+r(wbX;vRdr--uk%>V7o@JRvqON{As`U_~Inx>l7kdH^ZU z5*Oey%5r@CoxkFjdx$P5Yj5@tE6}|L7cXogk(vRSw#h-6qb4VNl5V`re@TtJ*pTFi zxzb0-R>)tXuI_E*`WxPA-F@wzyO4z{jflx~M?Kw-kh7W83gqcDjJ@{H6^6s-2;hB( zr*L!qd9U%n%GXj=6KYj8bO-eW4CT1;f=M~G4!uYjJ5CZ+SV z%cwckzIyKwhp2ULze0cW3l}L@s!uFuJ{vNhb8A7u=w3aNXXLo4 z;wTT6ym4$ngXCG@!LZAw#<$qua~Rm{0Sm*vi;Ca~;Pb}uu9A6ESn@nw2Hpaj;7f5< zcx!IQ6hU=_h!vJC>ly6CEJDV}ghG@h>*6emq);}+I8;?<}R_ zQB?71RUb_UiORB?Hnyy8@eC!LYbNo|@PG#%hP`JRWbumUk~9=CC+v*MLKLXpO=0-) z4R1ZHhXVRYbot5pcnh|OOnVXryo`dw9N4=oGuQmnIv0it*v2t;vgo7VyMN8#h58s zweCG>X4YPvYr3;pcYi&^(}8q*aAu+nG0f8Fah$_RtYKM`E|`w)n9$yx*Wr*wZ9t;0 zsTSq-^{Y69xgvT#FwjLy?soGeJaJz3q=&_ONp~#{cR_~HA$^qjXj=TKy)Mb97E`Gh zojEZN3mla5nIOqTs=K`ERdBL;0aZ4~GpR?3kK5})vpRssc_h*Tmqy9)rAIk9BsnOE zdLO-X$W=s(TYn38IRNaA=3SbKHf(z%uNyE7^5w(9^x>J_r#n^ovaADgM1{kLP46+H zN3SC?3#gnmpl3P!{qx;LdUnKrksoou`BH zD%jaDFpwD0fGsNZUQRpeZCAlXzo%s`bwXgF{&2`En!W(*+zrp1;ia(%|qGq ztzfI37Z>={>qXdWuxZE08Z{1?f(3DVcg{1D8i~zEsb5!aK6Ec z6aM^#=!^{JgH!aESId(fXA0zlo!fnN8W_>qOZ6IplJ5UiTT3|Ja`F^Bbx?C^DL5-U|M?2H?ugo0MRhY)_gE#&S2sZ zTX>$Cpl!7X2VD=~wE~RKQ>|D_OP4z4i*9)s8#Qik=0+hLQD7#|$8Ib0vAqK~N>TD* zbO2z)r4tolm7F(!ZVxLBZw@VqXl-`eq9qFvbzF=tum^OpyRCPGjrH2qZeDC}t=2g> zt>@1?=jgt914|ce_ud*5`xM^tA{9Oj zN}x_1pzY051>H1E?aY#js9GpSMCt%UF>)bluyQE;C5ycDemOlnS+v7 z?W4+s>?K1|S-^u<{KPZHoDdv9PpWLzq@S!Gx0xeRjcthZgbUs< zZ?du|$CU%MaZ?$Nc#2ky8W#F3za3hhPIf07<(tBJS4=Js1mG1FFDW>t-+}k&P=TMX zm2E&$7VcO+EF3^`A!<6WJJGaTwa|D(z0Q#_Pr(oPXOkW0<|9(+fZKc3S_6ZYgnqCX z`aHU5{E1ZUI%I{%-R9F-6XvHoHPY_y`Rx?U%bYi#!V~?>b#GB;r;*44s4|b4h6g-| z6|iRXofuyxRv7^Xdf%cJE&>WpuA59k!zi~z^9%^|YfZNYhz016Ft48yX8}7pW6>m~ zS3c^{eP`hMvfo<-y?BfWf@`nM8Y!?&rb0MYL)7Xt5&JZlsw#*1Jf7Bx<7-eI7gXlK z6l6gFj^Y==Q8$mu#hcK{+V4OP2codRRHn@nSxP$JTqQVQbrFd~ZgQ@5BDLs9kt+pMd+28KMk^Al1O zXIG6lVD<}_S5%@g?->pAJ*X;orx2wl&8pKZPGhK{8J2G`L~I|fyxDzDiH|4%xrkAPe>V*XNF?RFP7hw!elb3zXLGZq>M+py>%(Xaiw+?joy_> zdAjrJ9{tJ1iL=oHP~UCK6U*pIYg6l#;Gl`uS@xcvz!txa3{D3idxpId#(EIZ?mC;8 z^}6zn$H}$j(h+tK*(u_7J|!(0@M$7;+Mve0qSL%-ziA#qBZYSYEd8_`!{(>&MKNo= zrV@rzX}~-_$ftc+N;)!iShNCX0TsuuJ6VlUZm!NI6r(5KB++tQFbV@Ze$TV^Ib1Bo z2ndQ#%>>)T@(?~z@m)QMprmUHxOWOZ(Npgw1ddd^a$m>Gem5um;ypU#3d9z1*QcQr zB8VQFcS_IwFrP))6k?(%EQZf?cb@=CK=32Ev%@YQ9HgfMVQ%`sZM3pU3`h$C_Hwvz+kV9m`KN6sutuy5!5*7fiEbEYQQ*V zJEEC)@?=xfiwXrGK)c@H6|m(B;p~eDedW)7$*;5DBO*J5e!()2ngSm@Ml}y;-o<+& zI_yJWYU>Xux8E2b;t}v8(+xOs1e#TTOPcrHcKvhA82^(<=!xm7Y$u?|amYbm_BbDF zMj+yjnED(Iq7EV9GO<|YJ9#@BWQQI{VZ#}AId3E3q#lls$Bf+)pr}POm6g^-hgc77Y1b69bG}r+I@0y#Xf9F?ZXi z9kAYS5FmSEcL?{F06~_ooOgW`!tIR&3ppFmQLLq+aW~f0=YDB!W z+FY}c1kXhE6@2@je-0d+Naq4x51Og%y`WNMVm6t+eS!Yk{EX4!nDLdxDzj;MwmP4r z;GyuVF^U2zcmqHu(lx$*9VOeisa2~918a{_&{r#;4AKLZi{a^o^eU^v$B=O~ zj$n)6uV!&{Ok9EtJyh~@BTwX-vwZc6>Dn_59!ho0L5TJz0k6sx^E?mqY3XuAv6tcl z!Qpr6k3>1)*tP+>cwFUL#-8>Iw^>RRFhl@%PReLYs#{!|QQ(P9dehc&16n^NsQZ-L zuB7j=7QXj_FmFwVF5g-b?_9^c&^(;BHBUg}v9P^!II3dm8-9}~%G__YdcGwXpQ8u5 z;!f|=OUXf7yu;aC@HgAyaA573*f$%B>~&ANEm zn+TlD2F>!GOPW8u@^_qVO#!c@=<0|JfO-W9nX7EE-wJ?O-Qd1A#oX3Yp^*_w{tEq_ zK;kPN zP&6*-t#tA-)4-!glwOYF!`rIq07zkajCXSka?sK8Q-lFeYTaW*YJV6Sx()zr=sASYP8Q8 z8Yv!+pB^*NY!2FPd8Sn*< zD$f|6vukvcRSJ072Cm~Gd846DbM`HRzaj!$czq6_iniN_r4OFHlzGxO8~29yf<^~K zDj+-vn!-QV(rpnjXFAieVx&O;EcjaPLWi zCHtYNC&yCJ9mve=oCzMzo+1tH8%LN-PUsGJf_jmU^HhOR*agi~C|2-1bMc{rw^z$p zDReezRrt$B4;Xl?d*<*+Tb^yav;sfC?7Du*PO`c1P6#pp_2|m$1XXsBjP=@ZS@T62 zD?a1cOx|{Wpix*44q2e7ILlocsP#d`nY!-CMF`nG?CY`6+t(!8fyU_CM2Z@BBo^|v zCLJ4AE`HuW3KFX_kS0^dVW(9vN&rhKo+!r~t4VtEG_T_tCpe)blrGVz3Xwc@h1sJap!&fWRe(Bk{h%_t>pK1_Smnc41Ve8W~qY zi)U>hgD?7f(*wn7UYU=MS&lA2NG*XL6t|(L#G~Tk<+=<{ktRues_SE^z(&+XRR^4x z@_I}oBaRV_Wmghpa;b@i!)ij5<;44Ws$IZh8E0M(pA(`TpsI@fnIr;8p-<}Z!_f`6 z#-3uKVz}HV!_O(+{xQWQG>gw39F;i$ zCk-4EE*i^bWs(M2&Netl8s+&)RPRAmV2Rlix#8wNQNByiinLyOZH$&^G{5(Q`;^VY zE1_#*td#Y(W*R6TO8|D&p4XWUud7bjh_Jjeyhd8Jgjfq6d%>t<_-?`bTZ*3}ilWhB z7^W`nTSbGs$_W{{?T9*!qE~9K8g0fL5EW$wXjV_OTnp21_#Qt8H$u<0vVmZr2(Bfg zeJO#Vo_pwtq%^9c2!mj-8`$lWtc&LlQzI?asl{QPH69M(1VnOP<3WY;Vy9$b@FKm$ z6rRHtw`Z{8j#u&~7YoK89JF5y7QEIcl?V^p#;1-57*dHdQIx%SB9i(6+?gJe5Lo27 z4;9<7?5Z~AA1+BgJnWwR1S)Lg;4JpZLla@q;=&XSEg(LQEX$H3pL+xptkq#0T*1|W z(uES6SYrwK@O8bi#B9z}KY_70=xAenYXWBjbeZCHKM!N6<^Mqux z=jdl~EAUL0NXDa-_Hiwf$c7F^S2MrdgNH$XFq^c^rx;m3eNol7Ct|LaQ2HS{hi6B} z=3(MvzO2_h!=VoPOsJG(Gu|`CGnwZ}Ht=lJ!W1=Lg;ikCVNG*rF?i|UY)YPg2?GJ+~zz3$-})q%|_nX0USH%bd&Lj9Ht zAaKmM`d;I!$7Ykfcjxp9yXX?ImU* znH<4%oHiFy3YTt3No07P$AQ>uC5VN;06=@1dw7C9fMo$1<0Jc&b2zbGr9 zxs`WQv;knRw2u+8ReuWd7Mt+#QHVLlTy)HU48W^}6|vp%mZY-YCpO}u$W+*mcYB*P z$KYi!q|0+je$B3M-?>pf2N>FEa=NR43Pbc6;LHRrd~&QDAj@4tBd|RhRBUwsfG(|q z!y8808Zd0e+qlmKVILKmJt`<*v$a_*KamAU&o}k#LGS7mID=5kU?`dZPU8kkWODW4 zvxPJ*&NAp1{u+6iW7R>cSXQ0$T*x3;4P4@QJmK2r1y@&U6;jEmtl=6+r;K(yAJrWm zV<^%o4k>=mjIBv82Rt$%2bMv*$m<~c5cE9q*q$708;$S__3o6%J=7`C@d}@)Jtld} z;*E^fU5=9(;!&w^4cTChy%#4<+g8x%lATj4`CM+yzHbaf;cA(#J54s0J`mI zBUvi${yg!$!BbLoU-gKR>z-$qSx+{!6&E#JqqFuNkaN*PpDS|rD~IklY9W1LEzm;m znZLu3@BFBrqf9`Nr)J`Yvw_L+a0s0IItkRb)6d&&L zgXQb>N6DT7d9?uym|W8>fk$f-v%>pAghUi7z}tf!M+78wl3KI~$K9N=npsXX_Ut)C zPsaN6)Dz6A*l4u9d~A_5^a`D7!m;z(g7iV6b17;(1{`=T#hW=AFSX`%gYLkYL&OY)kuXc#N@%|@$tqqJsgv zgiQr7nh!P(q42$4$`(5rqp*vPc(LzJy$psq&P@P&T?EREj;VFhbEuaPAU$Nfz%Ow( z$C^#+ffad`g zKlOkFEOv;kAntxLcSqMrPI^zANuFwlb7AYNP4?>C&LHf78Gy&M-RJQsOZyyej8LB_ zbH10<=7jcDxVh+nKq0K=8xgZ|%J97M=v|k19n%nI{3)v%um!Cin)5K6bEa=Lb5}5Q&5@dXW`kJ$}x`qV%Js+A^;Fc|x z5>4bXqVG^A-;S(;?SzE{;nTZK zK`y6r8!==9CCY^m84vV7e%=5?D>_a;Js%8OUUV0KmF1VlG~%tRy4cO zvlo@U`j8po-Ncz3h?+I`zz!?El;E!3f@t%0T^6_jyL*o!HBseLnEpBFXt~007)j!* z7hYxf#9qB&>om6q&(u#}>+?brEEdiVs%&ab^38y_Ie5g(`T!GXmAC0J2?LB1m%6?x z1H2e(OFZ9>fm{}UnL4Aii4oT0jP)vOBHyGyFwNVWv_H-7Lk1666wO^lWJ8_25YtCQ z8HjFEw0D~?Mg}AlfkrWENK;X(Zqk`WK&}cVpkAZHU=p)bps+8h`o)DlvVeLka?x3E zOEp8mG61-%4mbV9qZe==N2xC%)59X$E~tGXb3;kKH3l(3#$w z?Go@BKoTA)0nd5?!$>c$?vauft%1keC{ZeMA4qxvec6XEVJ24^o}sQJfKxMv<0-HW z@yNoHUECvbzVcEw&%oC*@g6E!8c~ze-4j}pv`qycjoy76oM0q_7Rm$sNc|m&ywLGP zZwf_x!YIffFBtI}?0}K3%vZsT`JLNlx^eA#W{8GI=oTTHY*D>E;l}p>32e5WsB`$r zOr-UNt#_#M5;MPg8c65-USsU_c~hkxJSI6zvIV75O7Q_xz1FEW)S4LN3a&s*;b-gMHa2Kl@zM$?lkIb3XTqWWL136<1#9Sw}yRDJOQ*#eun;>0$=v$tjV~}$mKeFg9c?`F; z4VI1}Fbwxf^`1W`&D*sndH{wgxLDO9Vo=g;+j_wejaDbMH)E}px}n}j=t;$|M*4y* z%bzZLKByW;lh{~hb_CQkk<*AdmQe)&E7_c*pxeDN76RKkgOVCF=XX|@u&7;xk@NC| zUKVb$F~3aJ$FedUb`1$C{SddRm#OJN1w7MXuwDn+c53Vw)mYol8`NZ*Qd^IAc%|&& zAU`$;F|ZbuMHo+l@+NrdcOm$$kFg%T=y96f6>mt&6ZWFObX(?tF*XcLu;(vj`1s1( z52Y7GS60q%Yi03DV$>dlLndgaCp5u{A=T?y8DQF=ERTa+{Mp=ZKo%S#-nEY99*wu| zd*dk^aFWERrVEz~L*>1w)ENV6NaD~D5te2U35pIgkFMg|Kk;)QO55>gFS=W_3g;@t z5M#(<9#VORtGkXP9H`~-i*?O6jt7~3{fVP`R7ZAl`YTj60?}P%TMc~`3wMK3ilH@QQ)JMh^^63c3qRi%j$Cgm zc919mi#MO-$YKV?oZ?8s@tQ5(G>ew9JEy`%SH(3iK+`cz&C^f`cRmehHKS#gQ?zR4 zL&ee4@JB+sNUKx|0NFx}3mw%ewM0BVH}P5kULs&#+-Sq^(a0}JXC&p-#YZ<)+tM1 znMzJzi=^GSWr#ssA)O_+ca`*IvgWf#5k&pUi}MCx5*1jSVW&LI8T+jjz)=%lL!sO> z!?;`-G($heR`$gtDZ$RevGoFhvh%1bhLborg4@31QI4#BBvS0^*H2~~_t_Rw)`O$W zHkLUVoW`68>%D&CtmX20H?n~O09cP*?H0yg-W^-bGJ`h}Xe;%z$7}-e5Zuk$xZH~5 z=`F}6venKtXp)7JJ%~sckvHjQV?>qMyz@2uz`w+{kf#;HAMV;jxMjUo}D28$cph7J9gM(ji0z7FQ`@YOj3^_4Ykn zQALDOLKMc{?(-YaYF|Md0CQO}bKi-?mNpi82j~n#i}<{Q26j3Ok(bL#dKg|PS=N*n z$IKh`fQ8+_2)>{KW_js;LL}JoboD)c6U}2!-aF!};FYAI!z&bdQg4yfI*eHgC@|h@ zFJs8zdFDaJm+xJLk9o2-H=Dk!-E3>oXxzuiLMvqk%>wV-AYgXEB(Yz+G&D!wBdqCG zl#9L7u6L_X9pL5m$}uc%w@wk|L~vA5L3f7=;auIz1@Mx3S`DE4OQuLZt%#;n8-*;z z#_|01WlpC($59u2$8)16V_t=>oU4uu&eGEcifKEcub2*}Om@H9{reo3I5{1opYP35 zPT;#bfJM*J>Ua1AIg4zd(LB+;6d&W-i4u3I7BN3HlVR5q*l_9>oKtlzuOhjJo!N<5 z6BCM1AW>NSn00`2(N9&|#CSyd-JoMrtajh5@+Qkc&WXG9H6)L}q@sN@^j_$cd8{g< zLGRhK@Jy`gd17x9s`A0}7}HmD&Y9Dyh0p6H^n}pUMzRq%?01L{T?0~P4v?NEv_n2_ z1Ng(kSvjU}@*znLBB$SrUE&=Ez04NV<|}Ai5>>--v}+Q6DRfegQ);ye_GQraZspeh%BBDO^S}P5 zIR5c(|C;d#g!bVhx9|-pUMXK^$a;UuG>qjlod%HO){qQ zTbXXwrCm4`$~IacrFTgyIlJ99qg5;pM6cc`vK#2Nu7iY?kb@vG6o3+TQxQePW)jFp zC7&~6_peGaA;?wofySFalQ-3-Rzg639!#WehR-sj%j>oO`QokjXn>GtfyX49hi*zI z#!ydW#cRW$YmT#?HxeEu$$;D%AC-Jh7Y~0Y%`SrJlNTcA5QvECUfaF*yfNuuK*5_+ zOiV2JceSTmdDDvnQ1gh*U#ZR6996Pwqc)R7L-0kCQeCL(BQ)`pJK-uB1V^y6! z+_eVuRTk+?m!fXHg*8%mR2auM0yP6eEyd4+7GU)_VwU9HM^W-=3W#CI-OjsvKf{y2 znA_;q3pHrU*F9*f-D?T2@s{Cwfd}_U08MCua^ZFHlbc5?2<+`#RPX%eu@BZOk#2Es ztw2Vm!&LDrBcB#M{mU=fk?J+G}DR*4j)2C#x|%?_e>@lQ}dFWUC9trQ$F&q;{3C? z+#Tt;8;{xECvy0!ypuTzp`f?H%nUVBV@j4v&1!V?@gwLVhn=-l^Z4aezYUmzCp| zW68yaX&v~*AHt`jq&+2LB1fWQ$L4yv?>C9^n(Q^t9O*c{lbh?}7pVXq0AgFT1Vr?t ztGuRRh#vH%^Ya73z{_e_gbQ**7eeef(LknMo!QqMs_ONs1ahzWzG}ozbKw>@>`{!? zNad0TTarpYZ3e*9h&7FcM6k#?efwTpkiGMMy(z+3kFO2;h_2|=RdRsZy$&Gg2pPoq zLA#_d`YGLuzy@gLE)emqKIGByx5o2TC4KtLC6U{!ZculN^*zMYI548$b)urP(VF11 zynu#2)aI(m1dW+$rRQ86G(bK(FU|z~rOb5;=k~;j%~TmrCOo_`1ds76**WdY)5CpB zlEbs4+MjiPT8>aEcot#zjOTk|DYmobg!Z#1hQ7Dl0j0J?NN+>uc6x<}xu3!zldB(u z$)Fce-$DkN@v&|0c^pBxQ+UoL&3;wNpYG$d7_<)_ z&-5T|pHOHFoP+Jo&k$-H5sw3m{9Xq8oD~ybkFpuM_!B<3!_2U{i>KjV-$*oq8Bj z5S^0J9hPtOWxqBN^G{~w(~&^;?d=m_S;fn|M{f1T2M?(;Y=3$a2KFAdW&%WER;s;P zDn6Ke=rD&kFxQdjV>57J`!Y3=XwjM*ln|QF+Fz6<~CibM9Kb4&|~KoXSG0h z^m9c2&OoFX93BHI>bL5?Ch{ORLG9VZx!_NR6~@Hv(JP}z6I|UZD2Hv5OSNVQXSBoj zRyMtwDt+`p#Oa*998NZ4VTCoJ)%DQV+R*_GKm4<|((~deS#< z)+H@x&=)M1=#+yf#y2<2M#cj-GK`p~ZG<_O3~1)7+j5qg5yonVfRkjE>T% zz%bb7g#$h-&zlZtE4`p2;w><4o%W*@PYeF4pFX_~&WpycZ(`K@ zuF<-$5X~S;cu1d8^6}FvYm0K(pZZT>dlPgQDZcOoS0OT`p{3ENia@;`L}`HOU36&z z+hYxcRtdfk==a!Oy_GsW9nQzPy*im&qJz)Idz_;?SvLC<0seNqP;Ooixs!z2=ky+c zppWB2Iybo#5W*#0m(31nc)u_(1d;)d!(dt^VURVrY@RX4_y)*%@we@vYx6P zt0$+|O!ko!6=X`sLXWoFG*i1gAWIKlQdUl_bk{{v2RbuWZ&*g5B%gY@U% z8HUcz{lK8L-%$vJYeY8vK5aC`mLY>9r3&ToU6h$ps6XW=K%1&+Ya8bP0o#-@8qnU6 z=KACc-b4>+tby)Qhps&WyQ)c%m?oEwYN10(67Bp%;nNBIT?v+;&1p+^mkbb{ANeFi zArR9%VuHJ7n%Zu5mioPEFL3LCN0?jZ7Kr+6Hs+~xO`>Y4(e|_Mc_1$hSrYf$Wi5b9 zsQIY*)`$ulH7G0t%juDaXacn|CeedKLZ!B9BmKfbK0PsxuG>0b76L}gt;aSDy>U~! z2oe37MrPx}R;Dx?HyYumA}B*zui-e_&(gKujFMtnbUe5&My|ffs52C@lWK!KC+i8D zOLTHrnc0=@Y8>TW_g<==ahfbeI15)xYl1@DcV9^8r#sI2Vew_YGI+4_M7gq+>O>rLvzg^vfX5XOG2^p62j-I+O1LOmC*Xu&_^`R63Nm&G81RO>E#vTX=i9 zCBTA;3_QoQp@}Q;3C^8X(~{p=xvp(OeV*_m&~UJp!wP*QeRmtNgRJvRRW^VYNE^`& zu*#a(ZZyzb5T$R5_J}1_s~g#0;(&X3cLq$1Cz-;#nW%kpv=P$6%VTpnT%->7CC`G%VYj@j*1W zx|8vQK*SZZ-g%D1Y=kMy8`VRM*9B7b7S$9I{lPdtWo~M+T^RB9xERG zR7p~^BdMb!-QPX3<_0Er%N0(IU@D`fCkPBBTG2n}>I@{x;n;RsTPjFO@8yI{k z-qZ3O{^>2&4+v9rb79K#__ zWyHbesSy{!sZ}aMQ`yhXOjxtC&tE6{sS${)S{EHn2T{Mrf*aD*lO}n#PsFTFVEG6b zIZjE5EOM@y2rFKKkv=@HDUs<0I>G_B*pjuUnqS!Pr|$yp<69QE-hKkxQ3wRWt0g14 z5FWZPGXeH)k$n}|34sjS`St4NG*!9Q>CZ%4qNGy6PeVO9V8b7dl(~7Lc;!w!1@(3C zeWJ#aYWso+E=!d-Mn*tqOj7))MVF+b5hU5k8Xvz_Bayxi1WXx-FLd6g12Y>Cvq3&D zrQOH!^w9e4QJs%%56+7Vs4Rt7&e62GQbQ;YhN6-z%aXsmjAkhpl)EOz%y_1-#WN0h+ z^kVr=xgI1BF7&mxy&9SVYRGYag3!gDH}A3MFHgV-ST#mAaiQ?}b_+@h7w8(~1DEY>NH; zna9cW6~CnH+tB{mxoDaMRr(lh$7ZSC(G5h%n7M>`r;FpJ1M>#b(Z08<$g_1V!qU%2 z+1Zat1|Mn#Iy6DeIw?MZSB8ogt{@ECY0#e-efx8QV$zoO?zlVl5{RMExW*VKhTtlX z7%8&9a_B92f@@ZweQ=VniP9NhyVzt~`3t2kMT7(z>r~dKe7Y<^-3Mq~0PvjJ7Jzbs z%o+!Q(Q0O^dD1R$0F9TIE<~v2X7kNpUY!YeL1<>7!wbR$8gN%x!yzIE|8FXiHDjG_Ac4a_rA)>ly%l0||O^*bN#agxVt-9LW; zEEIlz0ct2H*#BkTcBS=r2Bgyr5m^#)zYwyZ>@A=t= z-mK5#FP!|-v&Szh@dV@bo03D*%ep%k4SIV@mTW!XeIg28m43KPZ>;T5jKVjo-}Kse z^a?7yh>KrHakS;aIUvQvP&lO0)1}fwNRGX{(Rj0ilnNdKF(KP4pwsLP8MDuAVjkcW z9ts9Oc!3BS!d#vE`gscw4rms$kAyYs+Q8wVtFm;^(^!O^&&lL zA!Xl9_25L(aDvoF)v>ptJ+`FNPd6;>TKw|(FfB>Wb$c3*4sG>)VD;cTT`$T|#iqSZ zg;Q;x%VM($3@4DTu*;9gNp zjcspmAP|MCVEfOUiH`^9U7EDdQ!*Bh@-u%-^I{Jln(xa@vT0WB=rXsXSH|}+ERE=p zfe{^3FLmFkBAEwIS`nvMR0ZGK7+XG!2f<%>p?*&&N2S3vFeZBuomRJ`Gk)DOEVWp$V{PS&=PNJgV^`Nse8>#biK#XK~7Fv|D^3HZz z+p1k1jV0Fj^jgHN&Fb2)M7PxfR)b%3rX~()lg|^sp5^-90q$FKQ7rSc}i&M5o_j|K& z4}xW_1JE5`za=A_D9PO&W&;gi^L<7&6h~z5QRj^FWY6u zzzZ{vdYQpQoIVbFpSXSYfZggw2Qd=rI=*NyI80+gX3>#()fm~74{_UjcGpr2mzH4j z6mOuJ6YjPsY^KaI>>wWsKbumm&Y#G&4?Vh)J8bPiOn8u+$I=b4ERtce@MZ_c`JtQF zj?A4`)nIAd8zkx#W{7NX6Rwb<6f?rPL0W_KJ)}ik)LFQRFXX;2iVwA~9dR=VGe`i;Nk7%qrxk{33t^|))TTvC&JYtpCQio9sv6|Bkwd*Fp!_8%QmO?3I)qZ638Y(m%? zSJiXk+_!riWO&@9DSg(vAl2!Nil918OK8Omb54lB7BQz|&k=Tqm2>)KMI0+U&7U0> zcu%VYnKI_R%?)lNpu(ro)KtL+I*^P-LB#zKlS2ef;W#Qp^adW(m0X-b1S6Nbz4je7 z>ub5-iKKX#QGon?=X~FHPP$1(oT?;a!WO0wgv-@Y|tKV}LacvHSfu&hd$PLjg0Fo24Hw~*ZP=Z_` zzDi0!>Nk6RpvUeuI%Nrov+$}pqGp3eYYhWlMy6Fz?OXx@AC4F3eIochImqC%my%gB z^oX)k_c@}QGp7<#4Gmo26HK)kbDitJxgEh`xo3;B<>^_kqD!p|(4w34L^#(OMV)lv&A;1CW-ZXccY`i?>JDom(8bVkpl`EFT+T7U@QJ^g*b}&+)aDL%5 zX7%`OJhT`{-bIk$CxNhw)BS~Ed`}aGH5L!=;T*h|6lCdlBK7L2HS>VSLAYm<@KC&* zsVOF5XqZRfg)k8kPJGaCVEoh{fX-Q*L4+He)(I10`fn7uY{Kstg^GY)=DbU&2h;j! z{n0#O2HD;tbFsJVibltc`u6QrG=*RiUmK5eqt*+6tDxNSy#+1t3-s!j&v9Q9e{~Z1 zzP_GV>tC(0X^I}S_@pD|u;}Rncb>GE*b!24iRnpiZl(n(;0b?+Sucr!9%X5n535g0 zX5#Ab3m;)NTz>_P^XjK3ZV9N>nNm_7w#?} z2<)L{zJN?nzOs1KC!sP=f&lQn#smk<8jXyEc=?6n_q}$5G}jCAbcNA$>aLqo%e}S6 zR4zD%2hH=(Q}#F$8C!7~8~0Jq<-K~-vtp5KivoMKCn8d>vFpL(7-vbNw{*F`Z*{Q5 zqX3nUP|jim;91q}2+Y~&nug#T3(Xr;o!w6N8thugYomO)z-URtL{jg>oz95!x{~v( zpV*d=#M4P_;VSq-^83Pzx?Vhf;l5D?Z#FvgNXZg3(qa!3`bIl}v^ zD2{20_~ML*gNsINB7wrrl8)A*Z<6DZgXb_C;1`z8KnO~RHW|TWD}-Ym$czMD#|Ifk zscjRa>zUx&~g1KMNmPb@$C%=M$U zTV#!%hz)ogEh6J(o(@v(Q;E}*k9K6KVcXd5)Qg_zIBdBrqT##b^Ub;n(BVc4eO>Ql zO^c$@ROZhUu$Jxmr!qU^KuasK{7m~DPpz7b)GJ2dN38EXe{I$?-ZG<&33Z0nrt3Tz zMfG-WUpF#0Ub}MWdUM7;x)}n&xX#1~4fMD#G{3LNSCdD%-xM-vN9Va6=DKW$8KDP_FTudd+jiQugrh+_!c@%d@ks60Cx9_l4rcG! z-U82_5I7*DC$7IQJm2@-SuYM!<*4(8k8xDIH@bH`DO;6dYZLuY!jlU2vBPoSt7oxI z{CoiAZk0sISP)TOULV)1R|hfL&)&NkIHfTGi+K+Ww0=)EQQn4+(BWXmg(XS{U2{Ro ztZ2%b7Y|f9XpOmS_in5a&r%y&49Ga~_%<;iCA%8)g*72Ge z7xzTV-c+eHWwT&7-W212wpqTP2`S4sAx$d68g`v2nt62(*<-^A4bj!kO!6oMZRf7` zAq=qLpcg0%4t*emF933NHZG`%OnGJ#*1e&4p^opt(R$|HWQBiwEL zs(2U$+AF=~++nkPNNxw&f-?+oYnebG$o0ne5p6I|M2AnlIa`C=_pGwK?%GP7D;;DY?Yx}N*J$-184ZumsiKf65FkRzV%Q0c+DV-LyR9jiT`o+n#KXo1xj zFX0@NK1u{IHmcZB@ptNUdSbiRRLJEjB~4G)B$7$2kgarg2@I#XT@;`42`)sw%2c=S=F{IOt2Y;yTxzOaq&o6TO5W{Vo5 z+H`i7D+JSyBAv?Ji*mS(T$QJ?B9FS1z+?_va^+p+n{u#Pk^%!@-b*5`87Um@c&&>8 z(LkjH^9qYoJ8p;G7}yJipB)VBAkm-kt9(^Pc&uZE#m=X75j}Dy@o@X_j*3YRI4=wa zr|^I!ObiHuPa;hb>OkHg0owK`!XNYpidpzV&&~DAYxVo8Uv(4AgEv+u@v`k63z*tgeU{GGTOw@fb%3wQVLvyN zxj}*^wF(62XJ%H+flS-{y8TnZ_}SI;A;@;RvY<4!5H7G9`)(>AE!$w$}8{f_ZGZm~dbqm!R3pKPclZ}n+nqAool z9OLG&0Y6u0}LTn}G3R!Z$?mehOUi>K|>+PQj-&z}^x|Lk-*>1*E0 ztMi^!QrYx{8~Uxy<6<9mL|ZY7e7G}yX@ud+#f=Sw5+v0z0Cq#oB0Hn%2~D;KcOGZj z=fcYKI(7l@3uXT7bVw5%&)pd$J9Jf!>R_?Zo1z15V+`Mn#Hrv3m3uLOx41tRc@C;g5A&vZaxd)ZT!u2s$ z)~d2|`2z}7(ZFTxys)0^MB9xG8+!yelukZI8&@^5V9q!J2eEnFu3UpaJ%u}4?K$Ep zyuF`D`}gJ>>fP^+52 zOQ-k10JkCpAK&%a<5w~?`|)0qECe`N$Qi$Kf4A^C1lD6=Ae=LMDTeW?{g}@sY)XF^}0AsWnoC*eHt{z)ettx;RyfCH25lzqt)S|HqYGSOYrCVyl)X0HM_b{1*+r%~nlN~2B`~~PdOa4g z9rg@@AT4X>*^v94J1@OX!nSijt>CJtSTL`tFyNsw$5Pav31l02Ip9*|rV&BjGIgBP z$?Aq(HNPeY4}N+_G+|1$b(;7t?V@Q_9}n)>wg$<-B|-Q(z5wx!7@!>KQmofqsZZ?- zZ~N?xuaN9!W!9Jz)uG7(SXs$dIop#D>lxUDQ|Bg$tH?wh`g!E7JS2Ngm4FNGPb6Nc zA%iB6bfmPDUT{Hj2+_2gJ+@kDdaPZ?0KJx__AK~aUo+%pp8m{yHAO>dD_61=&5__126SL{5g%IwnJCe4p<8u zHI|z7;}x3qK{UaYw-UP0@QR%+ZTV%~$ZDw>h~OxHoO-R z-3eO!6LbG`6>mTH7lj0?3mu`6;;MNPm`+ha$J`V7k})*I5})@AWM5o5X;X~Uk)5rL zknC~X_Nr*B=<8JT0msc)k~A5PDR_%M&m;(XoxI|$5j{M5Q%3T%SSVqCdU?KexpRF^ zjnJBz)fOqnUFVUIL52upB1cq0QDc34+O1vTiYpK*Mvv0GpdruvE-b4X)7hO2M%#yh z=1E7T_=ER_dVF@y@)3PTA#WM4EAX>2RMy!VeVw>dQ)$=I zybs_-Z#Y$@w=Ebj@LOhNe;TqeYg&Tvj;{I%%XaNnGgp%x#i5@b**XvxT$P?E|Gt@q z<(1iRoCmyIPeF>bnfC3Vfb0h>x>&+9Aa-fuuaYq@FZQHV48pDvWiy%Ac9wMpz?nwP zwg#;E6&S9uILvT<;BN3f9cIL{RprtjKU#&}+hr`wx7kw=bVxMU>I?y9xr4_mKMFed_{^GwAkS+w1L~xP8-v4_pxZ9=y%c@q0og z?@>PceF-SKmdM9Rs@g%I6^!;Q$YoWb)S&ec@ghP**HLg`%Ll32sUvNz_h&$-5Jw#mXkbs{yA6hvoW(Jbq7_CbBfNGT2yvqEEDh!-Vf1stV3~8oq7-G<}NG zmsD?!j`U6BNZ=ga>{>l6+5#ZwmfR|Sh)i5+w3+y%1xe85PxWxj;_wQHNlIr^MS+iB z+#4A$bDH6&(ft#9NHxy$w=~3P<&bV%x9mkiZe-xao);CO%OWqErkBpF9YumCA{f>( zRkg)R!Wax`rC&yg`HP(yLrOM>2U|{W{0n=6Pq#sbSxiMl#9b4AmDI0*K*D>(Ubfjj zc^9q@Y)Tk;s9>mbOC2NlamRGJH~X5k?`^I5L<4hg$1dn zOkry;c*eFhiG?}0=QUp7?@J91KYj9)w`zi^jbZ-)Z3NGBb+9Qlmjmh7>u|izKT*R0yy%hxx5|(|oAYg`K7wX9JUZTO%z<04%`b;T_`z&AF3MJ%gz*dI7bt5as ztBCZtvu?!c6f_30g@;ytYZ-f$Iw370_j7JKvCBY7b6W1!aFj~IxJQ}PMAT!)5QmWG zkJ(@GaByTo1aoX2Uy4Yb?UAtrpFxEk{qDEwuUlu~9QidROgBtbl&Xjnx%~7dc z4>QFn7Up{ox6>_|+fQWjT~&_sQIU|9Z#Y*mCSA_93GvStAjnRgELQ~OAsN$PZ`AGR zm}T?Cp6IYxs>_}UO-i7>;UkXBSa^qzkbUAI7h%9tmAyAdr@X3MFMyp@;W?f;D}6EW zKD(~zZeNI|kiIxK6LNey%REOfdK_R0o#FoYJvfri7?lS%`#^z-VLR0n4w0knNPV`F zKtUOIGpO+HKrZ-3#OP`%#A17%S9AJk)7DEZ(q$iQxjJfacrSPJ8KfT_{hY0cGhf+j zdF%HCKwfFqRO@N;zQ?M0y$unCB4#oR59+w0XQ15VVqU;yYP>`5uDfmRESnWeiEU*v zdXOzKN+VE&{l$UMCkHtVr5e17O&Uk$tMOh+(l`Tz<30eQbB=6%kKO9B16)-AT$*}X zTyFDO#n1|kN>WjzO|!uR+>=q5fg!wDs({N448|yYEkmaMJGea;^SDz~b%me%fO3srI@DM2)E3GiBm50I!%oG#INRp!+bh7N zc6te?PfR%TDUYaikvZjcQBe~DZK}Q&jqtMoC1t(FPaeLf-nhuBRFR-vz^OOALQ`1* z1%3?=gB8evcHd-@GBA$>IEq_ARPBp_dePw|L*x&N?qs3`MJ`OvkDAsppiPGMrNe_; zj#IA6s|P%>mnzrGIpQp11g01Wb;J0m?u!Zg?9S|o zkSx?GxpV1@(fZ77e4{x{rjEd+G!5ev1=9FKe*{$7|{ zK{4vi z7jlo`g@g)0?_&jc1*D~oXB1S?kF`LgtBgh%#uWz1G*N(3@WFEP$;)6>-Zun0+e}0L zmPGWO(hHFi`uQ>%lKcsrZ8ZXr zvk!V&Wp=76r`#o_@D)=+!+@KU5a2Q}xu-Gvqf1+fXlTK=V16L&gl+j=cmehUVA?oz zqr?u9OSE1RUJsUi&230d^r*{Fi@>A1@fRQF1W5p*bM|mC?%tq)DnIu=*9%q_-iRfs zU?MmnhPrBGR<0*LIu&#=gg6GmN(E?6+lZchD_ps+HJjR21`zS;gAa$#-u;+c7#JCq zUIP%0t0#k#Jd^c-8U~>RB6Q&Jd!6qQS2*D-t<7x0b_Yvp=JO7&c~lV8jRo2}$3$;r z2e&EA-+S+f7Cc2V#pO{6y#ngtk&)8?%Ui>iv8P1zk}oD!cx}O-PFKC&UyMNb%g5xJ z+(mRHapn$-_?CD%hYRL0kQ|5GK&D>$3a^6dIovZ1dN@6x^cdSt4XMRim&s&@kE$hb zN~Z}{Y9WL_8Tstu>BbAK)~OtSzM{?mewL|BZ(dl4z()0gzD``c3QLBPb^Bdge(q~h>N9Pvzw%oCwGn56gc?aN@k!(t%5u>(_f-dCQ+?%sA z-51cqP*gehME&=)oyq_&>{P%ddh9*5aF-r=Y^krCLs9Ha_o^%^qM~M87zP{%GE@o^ z#H&$y`Uc8Nh{BROnkEP2xclXsBk!=IImBM@C`Wm!weGG=kGB}TDW@Eo;}z{)$_mVQ^N?BkU6ORo=+ROPJW+)`=L$E? z?!2Uoa7&U`$kw{}APF^a5i}mMKmWzdL+1-MiM0kLKe~1d3$k~Q5HTOu$W*bqR1q4y zUM<++L4C7*8^lHP_&$P;L_?7iTQeP_dJI~XFXxQVz)$y{*n2PQ&mq}p2`ua3 z$eyISQ0zdF_9r)=eP2ReWeHLrlZ|T0#8D_ZfWre)dO4=#0$L)no6b(6#Ps@}&{e)9 zWSHeel|gjIB!h{ruwHK(rVKrSF;sx6*GcMq;TtgeLJLwABPG3+r*u3)`OUSqZTn_4 zfR^?XJuHGAj5WtRf+sKA{pUoFMhC49jKC%+8i);6=okkTgY*R7HZ_|-7cEDSCV4(( z&9d$3nHbGb7}R!sGvcC8#_jM)OEC&N9*e5zDB5k*a}I6;}e_7cR(kiK;_Nv5arR-a}O@0DJh>IL2=4;Fg=I(K69JU7deB8%$-&@)JIq zyk2CP27E_;bsF6MwrpN)mqYRt)1s~iC>7sHG|tUsF^#_=Ab-k~lx^qdKCcXj&n=#E zCHkGpcWTz}EWo&4?_xm-M;M1F*`Zb@vPSfBTexdD3NMQoHr3GId$3YCC{L`0=oBDwpf6C?2r3g0aHZqA#NiH@JePs9#_-EA`08K1P7S9 zU3e6d7H z1cQx7SEt7?WYb-)BXB&_lp@F^ni2wl0_h5Tp-am2UZ7HLd7oRMQ6J}E013}2(wP+= zv@k7~Tt_qwjytq6yoqL+8e&-}ExmjFHpSOOUJU>}g~wck`Z@*I)z9MDAHXmcv@h$RR_+P7 zaQB08c`ileF1E>7vZ?#JFX=dKkJ$lK$Hv3rCR@=nhsV}kXY(C^M*$l2abQjC%#)`t#X``j-QwBvO2OnOt(Qv`cw*uYaNj+$5h!)1!Z`@D zFm391OpO`Exxk-1#b;&^AI*qred129NHkE*ApN1i10(G2n^zW_Jzgrwrq(N!w)PNS zhfB6-d3WU2px)NJo|K$IhJrg{if$i8+`>26q@HxK%G?pN%n^2*4_hd$Ws%WFN+x$$ zw$esYVV?|M+GbX>oHP|A9I*v4hA_E*Z2HJnIOws7;P;J z^XW6nD-$KA9#q8>)+sU3TA4~;&ria?g5_=pv zc3x^AOCu#-)Ywi?MQ{0DJQqgi2;JHzsTSf1)Si3{w$7NpIvkgOZ# zV}^+vJBwASD&^EomsynB+)X_nf|ukW3KC1oG>EP^SFkG8VA-B1!R{l?WVS>`uBUP* zD7o!mQ5>XjtDM>-KL(O9YwUtHm5j_?)7_bvl1MqQt|67@cTw&$eKA%m5V z%P&eIYdd{{pZlcoQ{H=k;q?af3JMI20QuR1fZkyYU~R%ZD$k2GOgyYXb#nxbdBf~C zdjNG0Ygb|Ml>=zaX(|{Ll@3?wSTlC#LTo?axfe4?l}7Etl)lfj zUOkj?)=#$RGf|XCBWx~gtG`AavPD_{Yh%%xLr(PbunP@xaofNt;9zg4c zqp3B1YZ(xnL$m4>S;t~M?y@*=R==eT3f z8y7dyl%ZC!GpkdB9GW8qR$@4zUD(rlov6Pfoc*X#hc=fcUVA;e(etRPWw1k;iXLBYd47L^FY8qM}T_2VzqZNQ^^W zkCdL+J9+YpF>1djdI5og)_ECoI1sx^xN}?70FxE(vB*f!+$55pvk|$NFNeyosfEOF z&+J<(wFRPwN8a+#mU+|Oasbl>`{oy8{FyQ)3vn6>o=w3cNO3vQel)>oB1$gw$X~>% zCQLcvALLnd)^oRm@_6OS2oXx3x>j4MyQQ$_yw@ObxQ~>v`fYp0QNlA+9w$on@YsEs z1z4}~P_aO1+_Y$VJrt{`y+_<;&SjbH!!Rm6Sd~8N(KNp}<6QIyl=F}{ z4|81o2}oc+J=MoJk0>c7nC9Z;MHVlKo`Z@>@fHldoi<@Kk_BelS{1)olh5SA9rg4H zG#quVFFWyhO+7L@#=;oU9g``c298Qs0M3o_ooSi8_ z6B1q;d>$L6Hv_cPJe;rOjlyz1V}8vR$SoSe=BXMRWi;DNdGh#O@I6J-t%LXanZKvj z2Jj398tOrNf_poP5#Z8ugtnogn@^2!NMBYN;?iG&`7&uCneKhx*xz9ABq^I8KsgWuHD3Q@mYk@~XMZ=FKn`h0U{11=lN4Ri= z6(Wh+hSIo=OVrC-`lP(xk@6|1!X^WGIPTVHdvmfHxs(RB?~2BIX+2125wPOcfmnBG?FGjkG9yg0J8jHk?5gO?JX_H4OR65y7K*F>T@CdHer zH!@wJ+4%}MonKwOjl6L0?K;Ypu&#ix`2F(ojj-=~u~fWuk$LSt6f5{DVW@qU4D|T) zQj+>z$jOvcmPBJ}H0nN=NDO1hDq5`rMWOd(Cmoh+rB{W3cvEa;zu5E7gyNY8M%U{} z6IzW>+=1;7yTM>|MIfDa2wCH_Jx+b_ps@PICi0+*IZDGunBy$xRLOhXi|t`6g6_R} zM3@=ssO+;KxmZjT?Dw>K1?6#xZBM->RWc%pK?|Qnt_@g(y=@w>=Wn72ligq`GZwT7 zGijis?-77QI%MGNqTWyEG^U})hsFHj0$}bjs6<6p>_nWB=CE`T_$#qdSV^g8gq%aj zF46NK^tB|ZHL(sXJE{rEnfa%-l;oJ+~*BGDBkxPm{?>ETNp*(*ga=4 zVSbOFq?+R*_Q*m=8PCZ%wdZmUfSU!YhpOSmvu>fKqL`kiJOK$EL4o9xL{yT5_ynpN z7U(@+`o&<_G%4ufJFC0H>wICMvaFrS>DV{=BnC*HP@KNW2X|}lQG+K6j`l9s(>i|m z)&UU`&Tx0%8;b`(HoE~E82iFU<%2;4_>3*7Pa?`wv7~!DRxNil-m@psKFNdI+Sb-i zX^*_3#NVab2Auj*16=0x!jy;To!K*Q(zJ%CO)C!XYi9vIVc%aQ z&PteX_P!N78}c}+z1l9$Y~Sdd=a+EC2(88=RMoj#voE?NO^5l7&dmsBV-~%Q#hwln z(3qMj9$JQif+j8A#cvWn6AUb8!Gb*FD1e^QbgMz?T%cF-x@1LQwI2y9G_Bi8JiwD} zdV9e5T;$+H`)Y7*M zg1MSc2BkW%q)FeK5Y*x3^hSBR&lk~a@I7jH+?Ftvk}ZWJtdO}<0s1q`FlTjAq^Ci= zzCx&d>9CIH0Jv4b+%T`gQ$va7L$#S7RuE=dINS|)qSj@`g9HneXZJ9NdS!y=KGL7Y%eJ||+ z>fJeIKfUxr3mYy6G=3tIF2KY=HxX5c(sn$+XtV$Qc6nVCuQ6Ol*8eQQb2J#~OQuFUZBkhYANp z2Hz~*lscprkdZ$SL8pYyB@^P;9UbJ#jrForkKy%!686Xwm6N)Aio^93YaYyzWB9T$ z31B@}*qjmIAst-}X1}-aL^n1nkH^V!)#VDu(SA`W2X*!EX(04LGXd)>&G7^(2vwrU zA~l^*gM%4*xQ_6qfGlkHHld=kY6J2;6Dwdgksv9$?&Aaic^A2U)q5tC{z)Z&MjV7G zfhg+ftkedjT;|&6h?*2z=*t0%RXHi0kYwn2)kFLk-vb1dcpeOoyX{Cx$g$35Nk!Zt zRFl|14q8y8>7+a3s0kl!=s?n%av7*=&m%0Ea-_-Lf!0w0mYWsvjd!HQt1~M#$l=iK zKtW~1fLsI2OM1j+0ibs3d!Lgh06-C!(WI&bN=BUC(b>hh~g zx~>Q+VfA-q&xc6g0l{#ELKlvfH$QJGc^TK6M$FKZnUVCirvUn~X0-vaVmej1la~u? zl(*6L0yy1*iWn+;L{q|EKGkM!c>Fk>+5OY2$)z2s-kxNi|wou%b;gMJ5OfMf? zC&{=9_TfFvW#>H|e-Fhi6B}Oha-I7+GWIGy=_?Q83B~otR0MP>dAty#B$qi(QjIYg zC9O>`Kv|P?-Qp!Rd@Epe1W3xqAdekG5E`kPcxk5I8RCFjy6zMfi!d@PC(TA^c_5H1 zJ_A;8dw|`?o#rTY+%JBS3imLJ2B8I)T-hfF%~j-3q3BF_>b>33-iPosxcgq@yps=G2;U(ot(@Gf~kJ`JW9=8aIYLeNqpO{f5xLS!;#*T!F-s(gQAbe&~Yef z57O7)1Uk|Y>=53c*PJocaVqRRP-`}Ry=&K#QG<(OcPR2kvWv^sIxktgXaq1 z0#f6R59yt5Br2CA<*dj#%fL3f!=8Wv3>V2h>V`ZJ=pL+<6_Fwaw}m%W7mln%=FrB- zi6QUY9+d9V@EM+|&pfmfg6CAj2|n+LsNQZ&4WPVd#VlYm0>@d8p0&(Ide$hV&-NzZ za=Eovkew8GZLz7n*7IeDhWCrwT3>vnCU&>N9c6MlvyoQX51u`EIO{ww74%6u=~y0S zE$&{ImAz8x)D(OxM;bQbQn$UmNWoaOIB&Zya=H<(}IJ8@F9pP*cQ)x|Xdt;adCB z6K9l)&=NJ9Af0Tn;v<@L<5oaGO_-kpPTT6+g>h0ao_Ft6ABt-_SN8GJBKzEwN_ly) z+}PwYz@{!!D?RB>vQ~SyMHp%#@g&PyrZ-}<0>#rr(6h<XE$BoLF1=7Pe zAq^N|2J|`>dCF3H2ro9SU*H%j>Z{70Hc%LMQj~d!k3Ba*wE02Lg_*gZF4`datO$_0 z$OV(ZGa9@>uUK10s$2wHn42|FX23E$?c29R(pg-@6d)N( zYnVWn+Bi{%qG>;^@uWC3KsLUDNK9RBL-G4XulS>Rlhh0`QIu(Yxduc^X9nr3PnBR) z8jTDe>c&_&-USbl_b5zbH);?9!T7^{9P9Sy!~#4|wF6$(dC$mpXT~SJ_!*-vb$94Z zs;VXtf#cJ{NMUN)j>>okaX5Rpc8%N|k+$Up*0RR+{KauS4M6 z3gB0nzUg%p{mxhIQ7?>8zu5E*d&eA#w9c@xmeCaOd!c_`^n|RW{dGnf&=j4pocRtg zaZ@lQiA>QuHxj{4J85`M#Tw8`yX`p|3_e9;#Nho#QF@l0r8w%H-XY3UJtkBBB$&SU zO;s-s>m5XcVJ~-H2JPE2?)B7@aY`3seh*lEcHb6uwUtOV3Yc-}?X#%`)_x*RJ8DaO zukDG;WC_F^ma`&=K6#>#iVC-%@}k4@YvO0tT9gSa5^sB$Eig~>URP5hs%E8+lDF6z z*g?U%fpuPB&wDi$C<_$2fB_>q%;PhQP*MtP=ImkIIPtiNc9>;BQyOmGwOyylMjK_$V$0Ao7H1B`yK zL#p&m@n^ImR68I)S~3qPkW3DQ|<;(IUo;zIZpx84IOVSP>K=`}5#FWO$z zj`zOG=N<-1x&G*N>deZCH0+}c8C(kLly~(s{atnRxE&32ti9*643Be(ZiXm+_Tezk zdDZXW`n_gp)xgfDN;dwWGR0^%3J6t=JKQl01AESq`UrzyL8v==aRh9z(x&uKZ~&Dc z=g%Zs+3EruqVe0P`7>n2E4zeh?DsZa6pks{FxE4IuC-3F*2{Mf;>|NfQCs%dZhfbr zz7O=x8O%9rJ{xF5X4VoQFP2~!iY-gKNXd&F>3a|DN#%A_0lwb7lYCeyjlJMJZ4 zq{r(0vmbN%275m_J~WF!3N3n~GLfnvf~qJJnxNEPE1WRelKR|gS%%V&`&0=Anx>Lk z6h@swj{McyIUQF}U;uMRuZ+Vd&F?dAZ9Z7%F7)E0M~&O9-2-JVoR4F&s70f%b(%df zPC6jF&NTO8lkL$Rm%Ke2)-CIOci54|)riq|S{vNJOW@|rEDc$XY_(DdJ*|4j=aE=5 zt%dLpXnMtLSUNI?2;1ojMoHNAEP` zRe}R1QoJ4?Th+O|--mmL+ug(&3KI6bB1d3>-kD5xs?1 zxTlmsgcQd*ii)EqAiJ4_psS`Pso#ye=v42bF)}5o1%^+aGk|53w4fm7zA)9cprjB2 zc7N|}?JYTpUNO%jg~!pA#u?9I7oe4YQJr^+t&3RUE0Rsfg$dO*3lD?{vt_T4DE!er z#dj}(qN4_1!j9cUW#i>1)%qF1oVECspghx4 zJzgt4*}d39(hm!&k2vIpaxx};O+D07w3H&TjPOP8)A-W5@R`G^wJP$ zYQ@w{%UYSLIVwsP1H_g{MJOfWHBJ?mw7Fp-o(LNt!h0=0$tHaWiwT3vD)HE7rYMBB zI1`+D3n-cF5+GdcjmHJCp3Ge|+U&8N_P&y7+?69fF~7yYT`$4Ia^P28Rb{0q04d*O ze}=JcGk^I4DJ@HKSP3$VqS6h_dbrD3S#vs$r{kUA&Iw@=D()fp5hf&si&!`|tZ=XP z&Xbxmr^Y=37>deroYAKsuAy%y%X(|7woPsCilFEgP3OvO963!cSTVHtLYmw<) zX6fP#91Y($9GvCrn+;BKp0l;P7&`ZmKpGI$-U>g`&V0h>v)EN)@h35RIPdqqS^#B| zk``5QIE7MWFb*h~fxg_^0 z{NPT0emKU&%|M$5&Tcd#>jt9nvS*TYB(XdsGf}rw5nel~ zyD+uaEm}aybllsP+mOl~w#6a0T0?k@hb!y52vYrMhi&W?u1NT+!-lxk#7pEouF%WP z9ZgCMfkeXJ@4LvHyl<=TjfZa5;rSb|aI&)Lwqx)lc&5+Zte`tZdSo_F3y@J?hG{{G zWAu}b-D|;eOR_=iSh)}jBt(*QH+kQ~mVXDdQbE2}EQY>H@p)tGaPbD8ctAiOjzi%b ztva|*E5ZwjN*Hk-aryJqEXZx>W9{dUWlLx$vR+lMrDUyIbXYD;Ez5d0&XWS2N$z{- zs?uUzyRWLAUB1pUzqhNRw@qxfZ?`Hh33PFfYGC)}8rHx@(aF2O$(+O6x-np4$5GZY z=IP=((<^*SoOgKYJ3Q5A(oqquM?c^AqifLVi>S8_uZmwFU_Bj8O=H!4CL#}XQ{>U} z$~~b)%gYB&abgeycK5*CaSlNbMLUf}i3$z`$D55#*AaVi>D$udJE}>%u~#QE``#m! zc@1xJ!U*qp`E{KVO&&kIMXk`sc-n6c&lHB=QRr6KgpVlX2)W+&n_e_}M^N%^Y))`q z9kS(&infD1y}~*{9i?5T%8Z~u*n8dRWpI41;beM!_1?m^JZ)-@zVY2a;CB}c4C3`j z=qa6RJMk7u-E&+mi*8OJLYI(Y6<;qlcB&D0zPTeeK+P8Kt#SP#9XdTa%E)+@{oOGi zR(6#Oh?4gkUIrE@W?@B9&UvUgDa1%LY}vIfW`t+eGEwki@!l=>>sxrX%nAFR@5zX; z_I(aw1fQYp^(B&d00Zf%-p)K^dm>(oB`yQp(jt=`j}_<0bzTieTbBdd4i~8vSo2dQ zeJ=*OrC^5oi12J*^Lvr6HX>YxMpmuvD2Q2XX0s%#>nX-@a*7r81$hF|7MYs1_Bn`p z0KDsb^Kes}2J)Fln}VEGIs1$|7w7OQkgb_iA1S%xBZr8#y9+6N4I!Jzuuu`~DNA%M zqyi^_zi2maiS(X(g9DbTRdktlmxM?o4cA#`%i^(NN?cPxloxsQ0==pGda2x@P9HvL zgXze3v*tGkfj&dMa+}c?kv$K;Y5$CG!>iI2)Rz{jbei{qM?({=`?Taw=UkRGy}zfZDaCIdCY&ym&q+wpK7sI#}oHNNkm5Ovp$#nQw&9-n($0 z(wl=PF9vQpIe3(#jUvxbH`=T6`7h%8-Utl=8O;K|VKqiD6LQ;?l`ejLk!QXtgM+tr zg@;^9Gf~dXe`cpy?=)UK^L7cpJ@fSu7Dl|raPTgZC7PU_PvY@2$oZpgaTa*Op+sY6 zxVDV0oK)`8q6w8sQ?Duc=mu#mRAJf(q?00H8q#g*O)Kp_%ZF2}6*I*YT#@}Mb8Svq z*9dUY&d{<%7pZfeY3&OI&!G`uh_!h>G(P(-#k09@^LF=nL&k2qzwqU~7Cd>w0ORB{ z(_Jx8pff<26n)YqMFJWqwdIKz;pOG73m0YSuwfIJHh^Ssk!EPWsAnE!+6UZmk-;yD zJo7nWA{9=F*m#fw@G!L47+~LFzo_hZM!kLa1olnfu(tM?6QKp{ogQ4>3kQCHudA|G zrVrwidisoX+OHtNFvNJp=(#Fx_-!qdis40Kry~z5yD;XG*K>se)EfmUN5$SpU#-V!0QpcDbVbc!=DG9pqXJnQG4rr`~v zktvF`acn=|eaLHr$m)VBca)$BK52T&z22aZgL4eR476#5aa7N$4{li^o#`T7C4G2m zxK_gFMhC93#ol&8ZkvxUlRHP$f_#$CpW#lhY^to6?zSFT26o>Hq2D~XSSVY1COWU5 z^@u1afY&tHpgw?L4$zx8hP|74?f^ssjwr&9^7u-7gw-g^uB14*y7pNu-f$9`cdn=0 zC^kOkvta=>nIUvwd)hgjVhQ;!!Hb2X?RW z>0#n-Kh%foZ_JFWB-WmmryAB?upUUQ6PU#1FZz?&KV3nX^gsBteU^wn zX^P@HVGUqDBX+H(ySG>Kaz|mr3D;ld+8YN$pm2nfCD-#qQ^6jxNwC7L$4+PRday%C z-JEkEh~Pwk`~e%xi&tA{NRJ3k^LhifJ>f)%@j`_j^GYv2k1{et?R&YEHa$tuLy;Nj z5(G%X7td$naY$CivJ2JVD9ohg$}~JFa-Iax#jYIZZe$8dMwt>3W{_6$83@Fu5w5SP*;hzgQpE%o1BM=@~U)_Qqbms)EV(pa7K$&aW^DI?8umv$4^yqkXarIz2IkMkShz=XM?E86& zu}L3Xj)4hf2H0h|X!iw!C+P(R&^fJ-Q)%C(OQD4Cd+iRd78>tJT`+_rP2R#2RtOrZ zaNfrXQ2DZ~EndZfaefkz&*;}_I+XY%BpprtDH?z}yP62w(E17Vdk7bK0ot(ED^Sb| z=z43wVj1feYjMMasqSr%#72tkY?Uyhneu{k^L)h2W&VX=BKeu(g+rS+X`gWO11m^Wx-kl%5McvAw+-|$0jL{qjDo~%>XK$%OSqpQgfkScHzl)!KhQKo|muWSA2v0_N zgCKNp3}0F0*%bg9>cJbLdZ^H^-Cq;J9#V>FVZR~R^E2P`dB-XMh7g$(bjDq=HdcGq zApz@oR8Orv8fEH{BYCqpQHOVPvSFITvqyW}#+)wH=aA4()Mt1{JYR=0JLvI4;NBI| z=PNa5rBqNvzCpNz<<^f2Sz8Af6hzc|_aqeNV&T0m));PcJMKzqVNT2rypW&w_bQd~ zU}B`+^SCLHB1w^L6QE^bO@V9LZhtaajfs=1ZH84CcJxS}xYQ+!%w2@hC-u%hH-sd`y@{R_2n_4|abk}a^SM^eWk~jSfXA{vBJx+rO_~1@`U0*te zl~aV6aO^#%lxK1Ml(mK%AW8>!w(hZ!V^~&kN4(R*>8SL;69c!%?vd0&*T4*F8%Q7W z3n`^&oZMn>?sq8NClw>$=S0->X3fp97+v6=V!23jZFS?5B!?Cr0c;tn0b4D32oF)g zeTBwUoC;8JUy2Wy`9a_V&8(5cpNAcWx%beaG%C`GKoz52r}y}RC2`f(dl=c)=U%Ly z!Pd;|>`??%qavUki@g%Wo-wYJS%SjOz9A*#VNRzfSDNFW5F9=sVBhph>n=MYESk4_ zcVx?+6PMBE-gMLtU;&LLB9s=pI)n64J>`uD6r9Um#Z4(yp?B4OutG<$?}cbiRzFiY zu`5$tWZSNDQ4^vmU4iz*^I$^A;GJ{O8Sm7DMaG6p>$qHP%~d({4oa67t1Bf!bt3nq z_N_yP`>P>4WV!9yqG7hA=4I`N^0-^1XY`#s%!-#@X|FsiLYt%N8DV%?VaNV_3f8xr zh-q73WEU%IuKAY|k-Q)8knNjb0Pp*tgs%>#w(!;Cr1)(Ud@#P(r z8X@0f+~zn=1I48pcu2Yaw6e(I@Q^RFykKu;nx#cZjIJ3^B3m9B8;J3 z;-EnEI&M539ZPfh_R~d88Q@g{yNYmuWMSBJTDqrCkBDi*-uE%+g?{FQbWy`Oo1BYC zz1s~-%8Ce7!xMdhA;94d9L8?0mfFl(3gC9xk#O(2eW@OA*zzNm3Mx4p(m;PPblyE& zMaqcfa{cJ}7PMd&q2L*~LJmFFUeHJB(_YjZ7vkp{aK7XUYq<3a*&?Mkq3FE!#w|Nf zNFS4IZggor0&f@q_iiTC$MT!KkFgXWIVsFxO1_@X7M?Tuch<8!)bgp2uehaDonS z$ZXhseC(1chWm=%!c)Zi;z00y4i0d(T(z*PhSDM(U2$(nV;Xy6?wtaqWARAdroZ5m zN)=8NQY~Ms=RVFSX#N=dS(v0LRkO4eFu{6?#2mA`fGj|?(qsf5GSD$th(Dm-DqXVi z=-`yiJ_U-TXQ$0m)s`;_Y{E2?Vj1&P$R5-6L!V2{;u%LPO$wWnP7MUhz;KJ$dF;wq zO2w~>`$gT1g-Lek&h<0S7JUP3+zP~&VBX99Wc??I=MqV%a^zhSv;0g{yec;ma+Gbt zUSIen>^3*puE~h$)WyjRM!Mq^FP}{jZo`GG6z_ymFPb3W)u zztRp0;cI=S@EV}GGt!23@YORkI;huCu$&SU6rQTGYO66&_^xcZx1P{CI1ToeJxTN>0}{9GB&u?FZiL|9hnVFo7T_@zk#NX7GZVu3joV+=QF-f&oY?0kKA5^nHz z9x(82FMGb-nCg2EAEFfMaA~UzKBIpIRz_A|iOKni|p@ zdowPzGhOvYnM0?bJ6?!naqA;K+|9@LMv$HE?SohrkGc?y%N8siP+SMZC#xXm5LBfR zR*gy{f)aYmS=N{9SCIjy;lK{P(C@_!stH5Xm^%qi9-%&lzJVU+ycU<*0J>yc4D}Yckr7ghr*oDdOUbVfY*q9w-mFmpX`dH{ zhc|Q)i&#VB>o;D`8;Fj1tX6H3F+Xc(hRSM0<6Z8OMv)3OC83MITzZi!xY~Us&*a3< z*n6k^w48}An-h^FCrU&zy&LZ$^1TOL>r~g+WPI20tO_9O`yN5`882acAaV!e5RgKn zSJt-Tol`!DT+>>@HeqMp3`FfMihOUY6o3G&s_&_YT&g}s7j&EQgDw)~^1=qKQjHdHW4I`@l9+7FZAk%wr)rqUSk}TF$STPQ;=Hb)2gbydF_O$v)oq>a_FC z-exCiRrq<&<~`l*d)L8v%L?4bpD>s|mk2%5GMX(@eRXs+nc|0JMdFo;APRfNBIc4& zds9G?pt=DDeDR_t)T8&Hmugb7kJ+Jm%Lif*3c_<-047SoaIPtl^R&$baU7R2-I>F+ zsW$ak<6_}qaL04?9yvi}eWDhA2mCmM8=1J~cH**&0t#%1-$uM3T{!o;fpzDEnNo`Z zVe6i4CFkdoEc{{+CEMnaq@g{2@NjUNL>W&Gl6{?7rc!*h>$UIC8>SIz9MnE#QCXHN zKUNhJT9JDU&bkG|j=cxZcsXfYLLQph#HmSxKA-7Dk*8LvuJ@3igBa31XznKq^_aq2 zWr_Vea>{4qEQ;Im=d?Mkw2satI48Mu!ZbKM9w<>&L_f5bP2rMgor2s-g5TPBvCu<)xK*iEV~|h)Gj+k0S#~5b zGPs)va?hvlXAFhr7u~4*gc?G~RUJt>nDnOFV$v6{Hr`rQ>lT4NlfX4%>n^6V+$;>{HlO9O-M6W!W?mTc9!tMiZ$h6PcXqSUs0gXp%%&$j9fC)i^H8P z?w4fN^x|zOgOkLNB02NO76k#oa~jDZ224UPd^gC(<%;iKmB5vzS1deA;jx*0-b|z8 zF5Esbh$2DK7~zOh*KQjNU~dDq+|{w$wJ;Y_9fQX;))Rg7-bAg9*p(`R#yxgyt1^im!{Q?C zeARDGhmxLOZcRl!~>x{b@nbOLheY)h}fbvS>%rH_esP* zqv;glDMV$Z6?7_bJT06NiuSIYd>m?HIl~ifdS?B`q2YLXug379u#=JaGm!3l98&X= z$xv^Vcb*PN^p&UTovJ({BY=EWfJ?;OJ2k&1T<9?pzr_{!lzAF1S#?x?0`)=P7r_flHx zQRtgT;;iIr_%_g~A)g^RO@W)8y*Ctrs28B+sK_X98y}{vq z@E*b24cG@x5BGXpp67Th>$FpB#+;&WIt8cJ9f7ae)5?X$s2;ABH>pp2-yUyh=EKL# zFOFkRy4ZE>j-<1(vdcEa5QDk8>tzue!0;Q~A}<*stzaYeWbvJ)X|2(1VJj@?T&X8k zOPYp{7eS%X;O=LaDbh{RDy?&vz>!ptbB4&(vT=)T21hB9R^@Ijz&dS1&tc_5Y2q0q zl(a};(bA^#9gkI@fNH}%V_SSZZDyd4Kl2E~XIz!+6iuK+GUuA6=P^ObXR$9`8s9T5 zj*2%0IhlM9bOfH?Lpn8Y5`;y>i)n6bJTJ{Iv{XjQe9siD1*P?+5jk3=tm*4kV_#bs zb$cDoV~;wjs1R+-LkV37ARX#brDr*043f2(U0gw~yLP~}U$OLFC=JmIp4u?bLdtvZ zu&lX95&-+QpWs!Zuf5m0*j$LJfnI!i>=|ClMGbcCn)?642G}9XVtAENN*)|GJCB+a z{(|D$<)`mWmVw(whV%e2V!Yeb!Vb~7$f4QsN5Nj^9L+~4&><4?AcVGN!*@(im#J>~ z>d8$SK6%nQG?@oU1VK)LHJU^eNeRe7tT|Vwgv$cjdtw%LC8QktHtf;f zpt?#EmNbnZQi)eVU3)yZteFJYF(F&kF^B8RB_!I*mb z^4T$XXx5W%iVF?rQ2|A47)b($k)p&pbj=!mAu8@gCEgS4VK6V;OhMrn6~TBYlf>EA zqi;shwnxI8R2Xf<`l(@Bv8zaV9JAM>!skOdz=4ohRnq_)!imdaDrlOXo!n$2nsu;H z_Ld0K$NG~Be!r<|SFPFxXP7^r&Cv$2#FT~qx=YQxkO0|r zXh8MUmmy(;(1&m4jrT6Avb3!vGM+B%qfGXfwW5lRx*B`9&&hD#KGG(MO5S+=M4zUW z-65TBa&CYw_AM%HpkWlA31n#3tXy>nO{|#qJk-1nphrI!5DYfv@M7QIt_wG(Q6vz* zr5FR4%3}`<^Rae{b!&Anv{B09Ox&?873-ZipV!CsfS~<%~bb-luO^x-a*E*}A!f5*w<6LZZIy zPH*zYbSHrtr7EF7;xm97&Y6*r*e60{lL=bwO5&H*wKrE%?H=Yd&eY(U)7pI6q^EKy zx-Qs}aDld*q*js>G;Zwp5@$87f_j8jQ(^+t1b5>i zhj2*eX%AcLqY%R;e|{_~2_s~#<~WA05%!FT-m_D|FxKbpHq0+&FXodAea70DILiOI zhsAg*_HJOn9hZOt=E@u*aB^*micK+)*w9xm+#F$rpJL2qS_w#-mXSa!(;KhDzO6X~ zjS5JTg8}ZELxO_2Ha9s=UVS~~D^D_Ktk?O;ga6sk=m)|4#+*QIUD9|d))bPRjQ#Dr zW3m~fdfN#6^7>-7r)k}61@0I@a}ZLVJc2=t2lO}{A$XE-HcQzwlixjPXJ_hbY;ocL z5l8ZBhKylG6V>A7zHvQ7Wvnu^{t0H&X*O~}%m7cf)$i0c-U1Of`c_%wVF>jTWCkDc z)i?xUM&*|{QZ@<*XI&_Rgfl|uBArB*R!|mvsiX1e04?u3xA1qsMGJSg$BuE8LwOm` zhQ!Q5Rbe$9Ti%3k5YST`NlvFn@AOPOh({pP=`Qv`N<5w0%4`mKF#x(1k6LmC*ms0^ zn+7ye_Om-a5}b&%J=iO2VBA zpn86FO;lz;JrVj)67iA$BBLtUPljj^%ASxMPCZSW+qV_bGXlcwfG!>-yiKCCGoYezrjt~^_U$F(xasY2PQqCxJ0rwZXF_znv-M!<7TV2 zdQcGT43?_nBKz(anlxdR_t?&!OYfWUL;#Z32*u@#h9`?R;MO&SPZu~c*6B4JB?n&5 z5_x$825ZmQY|~4>u^sFpV5!a{3J;LND*i?z-=TNzp}b2zCb4#7lovB*YfkZGXiPVx z^757N%hyClgM(;;5`AoR{s@6YZz#dPBJlAkq&B?DDXqOi{cX=2KTnC*0>CuG!ArV~dG zp5LZ#(G!$kY_1WXovOgmQ*su{GNY4Tg^N>Esg8KQcj#?N&rulKQc>oOzKpjbHk`PP z@5MSh#=NNm?H!(ly8vL=u238`Uv&Irqo47Y7KH@HZFH-oJtt!L2}<9hg+mavrJt5p z)j=xR^WMvx2lDh$LyZKXQy{)%SE4KG2fz!)(Qe6DPt%J%ScGEmjxo8O2J5@Qh`Q}z zA!8FgkqkuLco38w!GgJ0FE4KBjgFmMwVkCfj6hgJ=vGrv+CyQS1*61ncxP8|g%$Md z3JM>3Cr1anWeJ7qdx?}QtR0p$ds?F8Fp~!O(#aVDOI36r>)9Jp>P>T0x-*rYLCQiS zuV5I|&fo95)DNpW+p>3khsnx~cdX|gY`%@@@GO7$SP`cAoKYWp2@(Xb^j!7E+sjzd zmLeTpnP=ia7`+<(-pXjZtqAT8f9D$e48l!5T2Lm|CGu(+f?<0BAoi%BBnYgL1=aO1 z-!pjeo&$_{^;#-vqdnUdwg#++Y!>U`*RY~+o@=LAdpstasi74QZ?ueL&`?M=cIK%y z#;XW-XtxM6M1Thn5Hg;YOtw!Pfs-)>WM$8AMUiIa0XT*nv>2~e(k%l-^d+LM9Ok?9 z)JfpV>EeAO1G9uT%?{v!&0>xTnQa|lB|1uYozm;|dR89{;-H!B#H9lLYqj8+78Ac7 zxg7I`pHF!~L0sNSkWptyt$a6#&o|p-u=i$9mEYB~d(b7S!Tm11Quq33VMW`_qc5|y z-dR1i*>qC7o2RkH6+KrVWI(vzbo?_C`@C5?D6&*?=>Vf}kU|3xI|%H7wuI^s6oz}6 zk|sr~!Ae-A+@>VEL#QW6=o{m+NNtcWD}fW)NnPYfmL24Indv~{dOj*)YcC&77>Ig| zL$yI>sL-9fYC!{#f-?OgUYA`P<76iqGT~%I_v)E>9KP6>EqyA*Fa`u9Jr7-~g0%es zyvg&fewLQ8B3z&tsszlMdXUJKD6;c(LTdC`*#l{?H}Fbf3T|vUHbK1KLgj-uc?YwB z>nwd1KMw}nB|gq!VIHW{q;JS_7GGP!_$?K9k%3Covxoiy7kH1DAS46bt$-n%yBrGI z74ZgNqi+sbh0ueM*qNe-NXswz8;^g^9agTIoM+Mk(-Tgml7oOzap#h_hV5WS54h@e zJe(%H>hYFq7FW-WJ(tpsa;nOglK$QU+))?TZP|Wy^;|4vFyBB71ftw~(@k-!c(Pat zce-AjUEDfp?6r1u;1otd!FP7)OL2C#&Pmkds&3MN)rC)~gFz-Rz&933V2vd%tCYrD ztIBA6iJclEN~D_L4&vRZm*(u;u-PbyLC1-pINOo#<4Pz45ium_ZLzH!94Nvh^9}Ui z-KR?l{EH7s)A_;la|PcHeqH+9*x$n_e)YDxa^e*?@tWxTX^47jVjredg-ks~4b$`nyFNxdIjz>Sg%Zn7^X_K>sTbwpE}k82QK)kF zcvaO*2$$l-UagGd7CmKojE;zM^vvOj)m7wfYaYJ5=PPcV4eE*cLZ~Ei)Zw@vOTDFS z(vt{=AzK`pB44DPdQsAF419X$b`IBGYx$nsy?0g7URpRt1TE$a^SIiiK+9nWCPy7q zm`4!uwAozNA7#@*`OoFp#K~ z$uK@7(;4r6^J*$DS(LzYtf7%AT@+(XNWh*geE|~q49r@9ZV1eJq`t-v538a3MBhZC zGdXLuPxxR*olT5h7kgb(ol}txbMs{o6XconU_i~1rd_;qwG&SV3V=BWbQB=xaT$L| z@9+_TX20A@@r9Q_cB^?cD%)wz9A+~#ZG7ydYl(Fu-8_Admq*^lt6>&#_T_k9u-RV5 zrnl4$w5~6c=Z@K6>UMONeHr1NKq$LyU(?HH&+O;~9@VoaIm?QLB;p<-obIF@eL^*+ zc4A~Bg3h~%S#&}>17X_iKRZ_hhmlAwTA)P?qL8+cg7ge>Xd5qW5R^W9i9k)6-r+oN zj0-T=UI*Vx9!k*IY+ZnGo`;)DGgkC+z+X|Q0zy#bCn5Zf&LPD4*pO?umaN^ACK3GY zq;=Mya1+E>jT%h%gk%bd1hW!|=Zmud!qM%_I5io3h#MqP>rXY(qFrRu$76=PUz_60 zz&7;8hDjLH+eoa<1${kZxN~#E%7{@Lt1;+lX*bpj`w;Y?y&&t@Q1*4Q@5Qn3^aJWp z6;+|KXW%4A=X>S494$yyCSFt^@AlzggH#bU8NL|pc09~I&1sf`b$^yla4Rf*Vgn)K z@EXzPQFn=KKEIHL@qQOA`S=yl{X*2?PlZDN=k2x7!zZ%?VW}>7Ep=p_^tPWK(<;01 zVU*^Bs)VZ}c=i#z@)s?;slLsO*OfOmsJVO_ zcNbmFRF1H(*by0;n59D^1%pGY%m! zpl}e?Bd9Xtu0s=5LNPE8w-&K}sUumdKJsAqXqp2x-r_#29(Tyu zI;ARpNG0H5mjLoacNj}F;LJ~+i?mOmdUC1i^}fkhEIO99)@WIB?+SMV%3?L#@NFm= zN;utsDPt}dZ%i9Kpv%Tw#7jJH3&!jAw^@%ZXG(ORk~7=JD8wp4DfEJ?ie_#dPEvb5 z!m$b7cLRCLS`>JPoc1=i=$LbO&c#({k7?K(6N<#VIzrnm3<`hW*v~?x3^80u5A}^C zFZdX(w`XKy&eYskqeHVtcN!@a-7Y0RR}^N2I#-KFMeKD;Z!IQ}BB4uOvtB+hm&?tC z^y*Ja%%AzFUOwVu*|$C7N***NLmEbf#3&$X8KpPDt(R4SQRZ z9RkoNH$fIy=CNvlz1Rhc1a)7mR#(OjQXgmBFAryf^xCkew`GLUG zHzg%3g%XQ*IGws>#O3ygshnSnZC>A`Gsx~#vG38_2n`)135!S4lpv(MWY}*^4+Gxe zI3ep?a7aUHi;dOAuGu9DOj}kF@`5^F?dfJcrdLQr)44eY$_%>ix#IPvKDzO8DFRk8HZ@ONwOuXT%DN$=kTGtv(PYcO=dUY?Z zwN-+#X9@!DtmhGA%Tv!{1-t_krbjPaCk`4Ry=-Mi7LlIqLH1 z$TJK#1r-jNDa9E?>bnCi#BqghPWt_JeJZEb66saa9xm6Z%6avcnf4PhItxL1F=I-`mixWps@gKyKXx>^K1OLU8tO8ySgN-fBfKFm69kXDo*d4{i zlePBr;9LnB#I1fKgR?Y|=z#8^hVjfMg3c~$=NpuNf?^L`c?-jWj`R?kZj_`b5-7DS zjnL{nOv~zLFqgsF{8S^et7^^x7sdIAV4t_WaJEfklvkreI(dmUVQ0iN7AQQTj!2k_t+C~7}vGMP&OG_>5NRsB5e!D z{GRE1SFE08&Y4-sE5xaDgL8U`B8bGe_GIU++l3ohcUfubTrQ)s8QUvhtwTpdw?VbKiqDDon8LA^>LC@5C8Cc++iEEXrR%wB zqLMT|m*}g=L1Tq9E0*_C8r`XBG`n3_QJ<=9GxA0vaHhutp?rm74^`4dDtr9$9Eek9 zq73!e5*)oDsxn^MHUSGJwmUe9!<^Y%TmN8J#CB+~jEexbs4HxGB2?v7kXc#(Zj z+A-kNQ(?wUEQf6(E8Hv_c}i(8{jzdz3v(Ftu!bf|W4M`t=e>4WCHn!RNJKsil=WFn69HM;}K9<$%f`8zMM&A zmzd*n-PnZ^UkV6ZEp#si&kkOE!RdkcSawNq6;=WFPJD34l;X&QYTIF}cyIQJqcJI% z>Z5BFM!6LnEO-v2I`~?I$JLmQno7mqG5{&2f;~k-W~}6(bh_Hen+!P1!(2mq{O~*hz#H^vFZYz<3eT1AEg2 zFR~vz7ROiKmnoto?~_%$PgYE#%N)mbuFPjv$j77Br8Uubl1pOxaHJgBR`iuhtBOnK zz2(4Smlp|`#PgmGlZFHeISM(9sK*i%35oS&>w*v6D_Hk^017brYT{(`*nQ45nGH7I zGXO<@%j^&U;p)x(9GYotlvAGirD1?^D1cj0YF0a$`#bmd|0l7K#0&CBeD&HK-S%yQ z?Roj`J)3p`culz^hbd6In%L}>wrFxhsA^Ep!inu=YAWsyq&g+VEjwAkQzdINIXgFIefh%P-A3O37_Hj4;G8BqnOyd_a-iZa^bDfk)4Ih;1K+rdN^shdCa&IQ^1`PZ_qqk6_}ed zo@h{Qx}VAb>m#q);x`iJ zoI>0LJsP3;>Io`{iKX9m6J8kEQa=GIcnZF1gzGYvTrj*G-Re~j3y&-jdS@5C8-0pRm}{pkyr*gTk~@yJ%dwY4WcVP5RcE*n zJOe0V41h7hn(7I$WT?rq>xGngQ#G%+!P1w%z@N-0Cp z-9V!FOX1`8E0RWtvMaWystZg*4UkI<3zsO`+JmT9@ ziAI1U+i(co0|L=ibVGL+Xm2nm56=8Oc{fPpZI5{v7M36BdnWbX05&&~$6?H9)Le*f z?eir}zS~!F=;`K!ePs}G;_23L`Ebf!<`D-TOJaq{Ug3Cl<;dMK?a@pr~Z9^py=q4cshE;0Y4$Xct)qC;~DR#P@pV zktyjarro^&S$IgP14f|D68q3&X*FZvJI3q#ep?U5o{D~+1!;lzR@&FA2-x`3<|}ar8)21opc4=1Yai(o{)eMh=xA3Zv}DV&JhPfeK|kJI(K2EJ6mxLvuMT zdyjXah=YQ9`c6@>1d7Z?Aw(h`4TN(~DggM43e+t1Pz~DCd>B#G@10GH03=HJ6Xyp@ z$o<}{27qc_VWia=e;q;RL~znNSj*KG2cDRatUr4qsXZbA7h50`J$S3Yg86(6Q4!-= zIg(D_(Tdu%qTi7gA%Kx}m}5mdrSBJfS?=Phj*J=$Rw- z?y|XhQ=YNy4KCkbE*sq))IJp86~G$Numlyy>A5D!=f>%NxSVs=g};?m%~M zeHdUd0d`YNzT+V;Mkn;)yAjFS2NW^2H^lF;3mB6IVbA7p=$0<01Bqw1xv~u~{a%r0 zhLi~p6Ih;{3EF!ZxzgMg!~^+U53fM{(YR*(|7hUZo=_Mc9@Tv zJHr|S91fP`?k{cks$H%lLm=dBTsoKMZ4LFBzu`#<2YCLha4X#XZQ?=tS!VPCQtC!E z>$_5IA5QeihYYw_K_t3`@5r8%PN6#ABY+IANW@r~XLkmicctiy&%oDgb>)bWA|)A- z@CHYTw4c57Ycg;+U~EHTtX<6#fiBJmsWYYN3oqhcAy*qg3zru*HoFxE*L2@d3JFQp zyGJMib*~xp-Mk#}3($N6zaJ(RyVS<)ij~gH*ly>=%kW5I1m^Toxx_hS#!SYPwva&8 zrwhv#H&AI8h0`dv^H?fE!iR(;oOu1_Ngsx~JdE1+jm$rhDIYCoue3AzsND9emU&4) zGb|3oM!HlmXBZG(YxzKD^W=?I`XkiNBZ57bM<(drv#%(+gEN^!%+vOzFP&tJ`Z{X) zpt{FZ!`4Ai4DcxdQEueEnk=Jo@28_RPj*>h7x%=kATQ%}3&nYx4h@8@rKZwWMTxuZ z9QA=IJa4HQshFaNNQOCdiw}o4>X_e)JxgDt$GHE z$LV<4PRxc2Eg?dO;B0dH0)}ZdK_r)US+CUiy>sMLZ?2{Fj-Po9n0kf|HZ5p5(znUq zIT)V8gOV40-u^Z;_ywXB>BARg>M?YAFZl%pOBo+s^kCy zd@_^IxIeG!jS&IS#RgIc;d5|u>gI#aFkZK9bp{xD8(MU!;hZf#kpn?Kvyx#1;N$4c zpVn2`eAwQIN7@zc{{=)mdEeGWkbxRGZP?cM1_qpo!=|WJrc65Vwvt(q`6{p ze!hzV$$L}Oxn)N|glKh2S<|*+wZ&-IwwUu2vOwG%w0V%Mlu%0`tD}2i?kGDa*{aI5 z*34GXs#eVJSTLMU1Mj`xVy@)-hS z$Fb17q+R5A`l+0xDMn?k zaAQ(HhHK@MmkD(6T-#F_)Bx1dc>yh+rU8>rVHGLP-mVcEJme?m{&4o54(^TFwF{M_ z3(J5=PRDb$&=sdPUA;B#$bRCM$(rfs4t(#n#7VokC@U+=`9+F3E!s##9KFYHOJa|p z$8xe7b?i+|L6|-Qwhj-Eb06f*gO~R3)uL{{0Sm{>j0ldI^VpsMB1*GrUJUp2mvz?G zdGrE*zVnCUWyVlvbG&+&U_OZA=lIy?e2O%?MkUZwAfD zWOJS5TYxghkaO_4$JeI&w99G#~aa!O%0NV|ZE;$=yvZ`3Ufw8VV8v3hoVHcKN|DBH|+4 zJ6_})NJ4y-On}Z0Z$sKT1zppE~jwFMopJv)r2?Z z8ertL>>*W(wX+Ozw#i7Y9;hM1a|CMQ$A)&?@9K2i2ShX=-1I@V6f=lveslY*1-U43 zbV;Nb054aod%de>Y@V;|#3%}}gfw>?Q!~7bD#D{8z^)rkre5yHJ<{PE-TEZ9Ghkm@ zEZ|*bgH^&J+a*6WO&nDhg9QpDx033Si1k&?+`;n1z?Nhawo@b{czCI^Ib9;8G>@ns zGsC?$nkvCK>$sHk(6={o`s6h**kQojUXFnswE@^@+>w^EM@nf~i`ZJs@Ch`iAf7~= zXnSapbfA?|B}wa@L%hnfK^0%K>yYu(WZErmz#}>!H@kRdTS#$u z98nJfUy?K{#AS?g%`@IGzy1Ulp9O)+H>~BZ-)J&i+N@pgb-+>K>tI;RVibC~FLpKF zT((6NKy<|POd0s~N}_p7lkC27MMI{Y=4L1!LQ=)!$eIc2O^ZP^L3a=iz18e{@tXT3 zo@p^qhK)5vOrA@z<~T3vV{NrjCpEE}CDMKYBg25JjpUj|&%*Mw>IrVt8^1N-W@CS4 zZ=oo7vrGdOpWdi%+Nf*=jl@ZDOE$wo;KKi**FYf_Xk`SRbrj;WcKIpq(tWxm; zQ`$WVCSss*LMlIiI&?Ji@LaQ(T36Pcf@x+o$RKJcin9W=Y)&-`YABI|-N}{M<8=)R|Qz>DhUomrBYF?ryO}%P<`1VdH zTCESA)xn<%iFmXj;uzIkFB29w1IJrans^qXkeTFLZyGrtzOhFa!HKsjddD-!BG}7o ztq<#EiUKDB0M>K!^ss!M;1JUEWD)Y|yemwTx>4>YKoC_T$$XEhvSCC}6IDenQ4~Ki| zrCz5mYpzhtQXZ4vB9{bmcz4Kw;d{;sZ7n0c#c4Gw?rZn3f3btY7Fu;xBjl2!gCp1{ zt?w14>mV55Z~`0MFx-1BkX>w}w0SB1@?EX4P|_LIRcAa>hvR;27t!J5-e5ChdG}iP zlih<)cB#q7H!YDk?-4oXN*;%gaoLl%eG*F^%Yg)Ko4fjSttLEd?)E*>dE+Rwn%q8?;P}n}yN#>_&HIVyfg$1p*wSZH{USQk;?1S_kp#($xTGY(*eD=W zox4N{1iDL-bul|@NY~b4y+xYxeLWM?SLsqS)4hHar?JK36nvh3P4M-@>dQ)odCPnSIAe0Ozj(xTLIFW%1)iAN# zQwJ0uycdFgg_OpfkS)2t;Ej_G^in?0F>FdVwa_}1%yRN^UUqmp9NEC^oC}%>zC$=$ z(&UZs-a+>6aCC_;`A}v->}~G^aojW!Svrj8$4N?^JB8UL;!7j?4hde-I90jp&a*NFA`3^t$pR^UXymw=X_YA3{-8=4sRVUK z88){ipAE>(b;6Mpr4T-3bne32g#0i5tO-KzDd>D?G)m- zkCa22TAzbFuN!(BkjFhy72rn<_)1=Jwdk;SdumBk79fZFW(~f@gv5S}25Z0QDVC?n zgURBd5MVCM=x#oFN;|ngPfTrTUc%mc5=7~Ewq&8t!40M+%UNv1r5Qm9rG!j{rfJMJ zP!Qnw;S|L&6@Aj9&r0#e`56-pwBo%9?OTUF+@SYV5(7!4sT4DlMyDGnPAgxIywvn= zf@_2`kkv8+L69)Jvwuf zO%7W9%BWvC<&^;wi@qS>i*qG$!?$s{)JZ?*UO8L6c#ggfP??OK{ot1CEnfL>rOA#_igjAt)b+jy)EtqiI_P0FZxc?s0DuYxZ+9}i{ZtDNRL zIk1I>YR|a0P%od}=y;0&fL~^o$&F#&OMYD2k=7IAbUECJVe(x?<`dy_+r6l#UhJ0sOV~F!^(IWcg6k$C8AYsRiU1`p_ zmlX|{0`(|N`hMOfWJkwE&5T!-fv@S6CE#M~lWV8Y)z`AtN4T%1X1X%D7lEnbW=+>X;V*^2tv=YexHqX%;JaK#*H6l@G5VG(Cb94On>1 z0zrlI!U7?y*>Od86YhmxI9beffJ2_f8r7qS!A7Rqb;w0}j{17B(oWOKSS{*7W)C@R z@hXzPj)-sr9(@Lwmw|kd&p>(#RNUnR23(uA#Dol>$qmt~kl)ejByPCR6=Al?7^w&0 zvJ6sSKI3}toO%oFT~uc^)I(L5x-pLvcoc^4xX{h>fiORL?_$%&Ei4(~CCxD!kf}ex z8(BbWm%#^+tc>WHBr3etNpaLeQZaevzSJr~Xsk^-NH;HN$~Uo;jNM-M8E+Kyom%T`6+a~k z=n36dGp>A}0QI|YAj>5_F5?%8*Y6QNvJ8$&dw|uA{@&2DHwz%8{wN$n`^ni#_q*qD zb?>Y+jZx>$0!(iPurp-~HF28Ej{-Yosd?o{ z)SlPOaF|S4d%&buwR5-8-D9TUfng8fFgKOu1SknQgL|FePmS^^?zm6&9^x~5KHlR| z{aV5{5MJ*nAe_pjNg{78t6hrqQVj=tsjH1~#+)>4>j^>Ey77pq3bu7MEmb9LEew4V^iP5}m(%~# zvvMBg0(onz^d#nW}rpgiIGO3k;I1D5kp|b1J)D(fjUr$u^if%TGQo~6<;YdRX#kb zMkyzMOqS{_Y!-dgV;2|D-M;sHpbS(<3YQUlOY~V4%NRx%usTKV5@IK2O*>&M2#i|T z>mo@lRKR*Nb?iUqput$Bic8Pi3#@vI@Z@5;9nMLjW166?Unm|7o`P6KGcRSTC07F+ zlDX?r9}?=AoNt{9w#8gzL}v|<6M&OF!0-NRpCu&RmHc7c5QOl<^QR}ed=N{bFSPV| zQ?CX=$GtW28%&4xXLRormnU;onhz0%);b|nvTYtOal28Dg%eq1LZ||jX$N%#L5y)&b!=U4t;YFIzCdkX}j-uK` zw&5rm0ut8K-lRc&GW72{l3DspbOlaQ3P^em9F*wv#w&V`1(C*S7$kRx+(m?v;q^VU(X=v;(M(U zwNGNgSDbN<`<((243GEhS{)|jW0uFe-RgHQ_oNO$qhs9?v2_Jw7L!3=BD9l}k^9-6 zxP&J;>v0T6sJ~LD<^+Ak4<-2Ws*#*Jm@1uW_5@|G4`F^mbTWDA-hncVK`+#v%ytWO zG{`&|t(wSt3wxl?b^CThaW*7srwR!Sc$i+lYL6gz;Ku?B3Gb<*JqD(E>Rpf5uKD}^ z5ue3`t^A>8!d1zrh3dWa*Jurv`9|s4hF*`;(yS4YdK~RqL~vpq3;1gud$Qxh_&~a( zdQO@c&+M`bCs|V}>UA~8=A5}!k2@Y2X2>PloY5($VB{v;S&SqiKdbOvJEW8bP_lh4 zjKmrU5>9~+Z!@y?^13g z&t0U2Cyb_5JXnM4p~6hBd}=X~r1>FAQEOx@-4lDdum76{nRkFTpr6X%9V#@zey(A4a^9B+%a}& zs>zIogDMDsO@3|hg0s8TdrMShNFO>24^^T@E{LZS5_zK;lLDRNE*jM}#4}dDsIlj> z8{C?kWtpqHl=^IcV%(qzG98cR8D`~W@h8Uwucv#s8K-zX1Z&Z%TUpS>i5`WQEw7#I zt~x;*3JWf0_7qyo$YZP25qsV>3<|kr))n6vKg-Hy4_FxXT~q``0G&6Eca;oJVF`P> z4DbS(Ag4Gf@S5Avi+FVp5i2ZP)-%W-k;pSbdMNK@$+|d+;!`Laq^;dEmwJ?pH!h~B zlct=$qvP)lhgb^B$YVCqM$dFu%p4xP=m+y8W)}@{U$@@?5^7voH}{ek={sKt(%iuR zuj}N~n|zj1!7r-lw5sn-#}kz$HEnEJ-J+S7aITq;c7_H#@Gy+oG@b<)&E?Zj#GJ6R zR~Dl1if;}PlGO=jC$JulE~eqj0>$V^F2Zot%z^SmC*tx{Rsau{!*s4=g?h7UeKf5=U7p8j+M zbYLXdm1X1HsUP@|O*~7+PmcI~JE3geNPew*EKNk(t8@MCY}Vbm=h1ZFyFEBF(S{fz zY4kYCp?suaS(7f9j_#Py-ksOskoDT&iE_VMlv{4DIE1-+k9}aE>+N&58%cblu}J!q-eN&xtNF6#xlUMjV% zdQRZ}=tMJvriv%_rY490Camxx_PYEvsdGz8N~ZE!61PTqP(){e+VSB)m|C64zLx;F41Ks7GirZyLBdTyRK2P5DwC+x7 z+;v`pmk^r{?*Zp+A25Wi+Q9jG#yl0orwu9LNd}I~Z&1A;*V8ZrTOL1&<$WN$LQ-a- z7Bx95s<$Er;NptD`m{LV@;s!vHvmz9lVd?{MDf|?(%^ZZ<(05+=VVPHJV3vodYYo4Kozcl1`=GlZ#kASNSeksuorV-K_IU8-j@2HK8R4p}OMzd|k9;yd~z zNuO1Q+@#_$^wC0kNwkU!!#zy{>_c}B-PaF|&AssH%?pM%nkFn%2}<&u2i!@H0R;19 zsMB=3yb5wM3=DjPXh0T~dYsdadfQcS(ac)rQYQ~A)EQUY&C968hqemBdf60jHfvF4 z-x0=K<)QKG*&+{-XmdxxR0~=Ra#2+z({}6)QJ=)f)Ob>CcVm`JZ3%1QO*R@&I3Vue zY8YkDw}PyCI4+RYizAF1Y}zrhMvX$IU_spY&S_?{JcO9D2G$U<-dwEsn2t+MID!`G z3-PD5z{4bpA|VR0TwLXki>NtoOV+AjFfJf|-d(V~$3g~E{kZ}zz!Y@gU8J6qG4lys zpT|Z(xt|;@@fHWHy+jMSEax+yq_e#C@X)rN6;~Oo9^(&BG0 zy~^N>HmP*gCYYASE@(L4AjJu1=MbHd!DKi^=e$~)>^M_+KG?b4SEqpyt-Y_fAzsq) zycE5aBuW4iJ06=|nJbXTgqUHupz6sMh81F}`%Y)rn@-FbFYtg9AV)S0?hRYy(+AVi zW4@V1Nd<_8QMTrTF>?kJ{K&%d%mi(#MJV3&0A4G=_^@ilT3Wi)5nXf(V{Fv8@yv}v zIHJHzo{!yDCX?}j+e^{sL+AiNi2F`dgj8~P7_1+xH1Hf+zW3Hi}&p*X;m2n%QAgD>{Gz z?YeBuU9#sOShRA7P<*lDHBdeoOhD~KCQ{T%xibePT@O!;Zkuj{`2lNZ(%s|V-9fcM-mCAjL8DMYh^t3zel=bm;yauv5uSPvkcx$rD z>K1v7M|&r|k0d~jTr`2OsXHLq1&@22l`>an{S&6>XRhQ$ot?(_EZ|k<5xt=Sk4Fkv zGs-7Mmx)#O00X^mQ41FV1t-@{CZS=JTB2zN1e#mZjRCO$ogd~k>!U0nM<=W|`O+)- zb?EXLxND_`I++TgSPfCD(?smkpjTBnMCZX;Cyv~pIxeV0gDFUY z02D0#lhbPb4Yn)w%r$aJ>?ZVYW9!$52)7{zCMzG^tLL_!~nF&9LOf5V2)k z;n`(>iTqvw$OYxiYfc+ij~CNmZtQ<7 zd+Smj#g*EHR$&0TAAFQz#G8hcj%tA z1F0LSCpR$IYa=GoahIwEc~B2(9Q42!6h$>)9J3wK%sXkaUq6lt1$cmVy+JErOBF)d z7ZJ+kY`=IWL5)KfWf#?@Es!M*%oBhx9>WkjbtFL|c+m8=c+~xn-oO>G)WWmF$3+t) zUGA~e)tsFC0G?L8?3Y|vC@of{{K?ZlYtZ;Vq0kf4RoPBJk)x1AS7d^~3C_5q4oM8C4qy66zAgi%vEX{r`{ zVQf_;r1Fa61@s-Z+rFNA%@s19xeHP4SC{Het8X5eyEp;|)-?hij<=F74eYFw=YaGB zOPb@$F=csSu@!MI@^X7;u$9V(w2#bLII&7Cjj_$LwY2C$jt^cbPgbKaxgu?Hn7|yr z-2enUM9GY-iaTX`JhL%bRe&J8Sfj<&(-s8D+>Zdpt<$_g(ejO#-xT#gE2?J|PDCnz|EQ61MqSpvAq74tj~ zl(lpzqR2~;L2!sqou4Qr9N9KN7mcf2%NT2OxXr#)0Ye0Er+gW0`RW$;%_z{s=HqE= zxdE;HIYTV~wTWw&F-y7-o;jPRl*oYfTW~@rnOQx*^U2F5OF8$e1nb_rC2@|a!AAu; z_lTqbp0W&>-(rC~Q$Ml9s+I2*AD`6-U2&(E^-^-s7VmI27o2BX94>4i)!b!now#By z8*{@cseJ^B6-kqqgfZ6y@^0cWY8qcE@{qs<$RQF{Q|h8-qpQl0Iyf@ zAyJhrHm?AP)eSE56j57Gg+@l~b1rl~fkZA)PrMd@n5Y*%wecQ>*h|xAnGG*%{b;G! zh|!L8c%Fa^YMGcF%hQet&S#KsZdqVJC;jv?MBO4GMfx^kjo+q-Y_eG;Z4`6&2zZkT zKT^cJcq>9I(+|Zg>Wv`AR&uoAa8%sVp=ew_Ug@MIdIS9Uz4USvAKF$;2f!DmM|d|! zAO{^SKancXSwV=35)U&%iE;9DY_b}Yg|eWn?4@9mz9d+0rPm^;FNp-JMCdI;uxCc% zQo6Y|@O!yU+eF@WTw-eR09amqAr1Jx3;Dp^ETt~*sVMlS+FN#l#urRu=+=D)ejJQ_ zjkLmYRMD0ryH)!NQ27{|lodJk}c`y4d;gH z57!iC1l~``P7OLd!JuWy-|kPp0@j^QigDDtjrlMDa|l7T(aZ)apKn7(D%n=ly7@Ve_s@)N1T?!$W~IIeIfIH2YLu3n6XMh5>rc%;}3szzG}3*e4h) znD*kG%mVB(i{9$;Az$dotgRjz@6_}DhWb8>lU%POM3T4|EJHXgqVo!)6IBHS?sK>& z-dD&>ZUr(JuuRy6QJHGbs1jN{YXb><(V3?QiqyO^`5lqmy99Y^36G(u4Lv3J6%{Sj zWq6A8lSEcsA4>(Y_qtxy0p+D|k7;DY5rUEIN`g%8>-UDjYC@Fc#G5_UE?}{YGOvfu zAEF(gs*3#&Sp<+mpVTA9(G9r9o+5cgaJei)>@Ro)u#}#>S!83lS1!5oB4)M;?ag}W zK;^^82l=Q<7U7PGhhmCOoCsv&q=90>MPtdVOwu6B$p+`1MtO3H>M>LWmYA`~4K@9v zk<9_iRFoBXvwEWCT9}4I$HWe94?Ww;27=&4Q0=p~oDvx7xrd(k^o^=0!XOyz z26p=->EbzKYNVz5YjId74aRvm0g;r~cu=9V*eO{UwD>qNh32rujSW`Z@k)4dv0$9x zp#5U7fLmEA5g6OXr|vxyG-%A{Fzg$$JUx8ZYC&2$Kt}S-w3f{9P%wQWqZd0zZL|!%6n#J z=(Aw_IQ0?H-7uv9rVBH3q;)p6k3U>;DClyuSHVHwIhFKtuB!U>M9kGblx9Sy@a*W= zJWOPw%i``C3UyF6d8JP_gV_krWZ3iB0Nbbu+ab@uU8cyT?2EHJ7*rgW&1=2~FUrt5 z&^IfFfQ9J=)KnUZmpVLXsN@BU>X4FZxCZ8ocokgSJyfGQuvsNjl@-9FZvjkR^HKo> zju}-SH*ztVP14?-KQ8Qgmw-iYa9KMbR-f*?$&ClcZBtuHQfu;N|*K^wXz!H~Zqj&_LzE1}KtiXx~cN(klfxmO08y zilBFtHWyL~mu~p-J;Uof3dCM3K`i_^TdxO~JPW8zfK>ZjXY6fL-FqihXSWH+F@&Y5 zR_Y~WB~eKhXgBV?6PZ3Q7*pj$URgXZGM82zWjHG1JfPS?@BQS;-?fTHpRhX#&k-!0 zo22^A^%4J%G)-U3Qo9&wVb=`x7jxMl=FbEC)k}Sdw%Et$#Z&@hVr+RQ$YAJ&HZhr$bj0Jxr28YrD(1 zobOIZ--&j(*8?|5s=X9ogK4>}rSOmjQ+ytmH-T(fS@1;h2wV`kZmDNi?R%w!?}@`C{`V` zie%L(&*d2esewxzjVD~&a8PxnR^cl-l{H)g>6Fn9_EFuTF@kzJMIlAZW@P>Ja=;@K za$pIx>vUo_49bCww#`J`j#2X2%!4jKMyr$La~ z<+VqOJqmb!Ew_CmRK6GDdkDLr;AJOW5sz}hKztk244~Us8=s}(?#~md<9bQV^gMRN zVvsX=F^NwOrZI9Ku3JcNtZKZ;QkJriVAh<@Bv71Y<(GovDf;#bC`}#m;N&$RgO2n= z+RWBkkx#PvS+xS{d1@x!3Q?d`m#^cFcJ?$v=qtPP$HwO@yX6{Y3eaazV3odPp~$#P z3`^JR{E|Ec@@fMJFsY_n0`IL&%nB`s$P-bh0B?`S6cLcG^QlFPP~6QashQ8mQ<&(AOMSb0xej50Q(9xwK>p`i3&33#^Dh@Q&A`f7N0Q#kFvz7?pRx{ICtFa z(T>+l=)|5#$AP@{3{evMS_XCOCOCwfgx+3uzWyIz2vl$2wcZ#`Qkos3jRie*arfUj zmiTc&fX3Clfy)MPkjw$Q5nX~RN7NEF%?+s2>}}_!Vj=a6t+MM)AC*u!d4ilTB@%RX zK?`hJbJxy9>l)qn$v0a6oU@_9Y=b5oa4$2eKm?Gd_TH)scgXoDgh1VTL#@v~;eJ|g z2rHInqt!cdj$?T@3j4W0sNIW`0XK4XDn_dct(T$)?b)gHO5}k=OJp{k;#skDsFum$ zL=fKbN+^SpdG7{hraetc=O#L`jh|v zViH~QyY!hFUsROnAOJ5RQvr;ogN;KdWbS?0VkcuS?4lz$mhaTdV2I+}1hCgdpv>OU zYn}9**ZUA4J!HJVFL5`=noNtq48nj~5K7?O)@Yf|*NFYxnw(w=+uo~Mv52glK3P1n zx9Jd%=m7L*o?U~uA_2T~^b=cyCY33c?t5FFeyKVeCHD|V54ywN%h^!sP|1bE~P+62Hne(-IVZh_f?GqQ1tVjI}1DvRz zy2&&gj6kvGW;8L4zfBt{T7hi?5SCVy$<0k=dzx?{3MQu0L!smN3g}8ju$2+qTy#L7 z5LS~%#H{>fcwTw*u1j#oG{#!o-U0c$zQJdQ$z;B`y1-aS9x1fM0zLF5 z<^^LxSJsrkq;Eb!LKakR%F^nZC)mtBZ@9oMTP!8|J(m&XL!IOuSq0k(3yFuUcLjTN zG)3T7#BWZvBpxUG6TLPiWXxyo$n9@*l-R{gSll3&(y8qcWW!4ohFi4ovpt9doKggZR+ja zCdbHtgd)6AjGCvZs8u)VL?R$p1rt!*=rEX%NGeds7ghb@Lit%h@rqn@7Tms?c|kG& zxT}njl_f0Z4g*tn4|d$dkNd%`N$eF7GWNlGJaM~qbX&P@_jFYr)&9i(#&G|%>` z*4owRP(f=1NAAe=I4w(k=Om6?w(tcWqSdXT(eG125M=SoI60}7d+)tA_Iqre0LRc& zI?8UNV>>X02yhJ7Rj*Y=b@OQsB%|qzlT@5eM(m!4XQVa+epFbG1JEB|Mt#za_enPa zogk0gBcGttW1j62@EX7;G*SYd#Q{V3IIoVMKCQO~9=uVaub%rrJ{IW9KIDX%TxnoK zT}c3cO%#r&KsJv?7Fc$1?>(n0FD3H~cp%kzm2BEFn>tn)i-LDQk=cA3c3EnZ7FRcEmx^$e`dMa5Yuy zG^z|1%qRRPKkz<)&vI7Ovc{zmME!&aL0goHJ0Cpqd!?%;>*~0~Ngf_-E;TtTq4I{) zXdF`7rG|xXaN}-ru*p$QfP7<*>1DPwHQzczHyQM~ibE!~nAJ;M0l7JowuDqJoO3Kn5(U6InB#?)cr9@%*fHX= zt?zNwvuLfYe4)DT{zjcl!Lh=P)z@+d_X4&C0&@L{h4ge{@j+x*w9oa!WFJqVo~ozK zQ^Ix)y0`Db1$O4COR_31_i;b;4P^3BIHngT?0&!f?#hquvXG6HnT`?)1iO!MsJjbXh_da0+mw% z9rUo?E?_KDxd>?w?Pb1kLY2(46?JE@4r-9!3u5$>S{CBqQQXRVG;(3cH2` zm1e}P>ZR9@p#s=+2&~uPZTo9%j%uuJ_69ZCeyOcTJG4^9I7mzeAqLi>vIyh(pu8Wj z`dtX}^$`|7jvjy0yW$P`@`SuzV7e_)z!(_@CKx-X3>{s0`=RuL=*r6ZZLKU`NsJmp zIAnr$dO|-qF?_{6D+Ba4UY5r}F8%`CgFA9}dP&1VZch+O>lwc7Xx+*XCL%6aTaSKX85b?6n$PU*nR*FqynrhlHpT7K{sxSng)MEz**LmevtT+BaU_B*w{4IR45?hr=-ow*SPzLvRhtbI0drCD`kS%xw#jI zS%Ghx)+fPu=x`pPAfA}$LFsM|tw(CQ-x5J0T=qV-x~pqif`GQ0NEZ;rBc&XZO?O;- z%;#_?;_ycHEHQblJgzSt4s}j=ut0QI$yP(TV&QI3N-?x%Z0Z@bXt6y(b|LoVaHQg` z*unP_uxOJdM;0?)%qfmE9Ie^nO_OLTxl<}^bX8o_0`xn2Q^Oi6;ZCOkt!8hDFuYd2yo+zpGncCTwBH!E0cR-7CVx z6zareQ#tc(H0(o}w2>Bkj#gf0V?9>Ls714{DnWLxpg4#_vLAvam%5J3_-GDeaVCv@ z5`O$iSZ@iYuO~6-#rn$3F|G$CX&_8HE2EyeZ~-xFd{tZXJhYCvUeR}*=%RxR(m0f zDJ`iHsy7yvp)~eHY!A)UBQH?kaF^|zAhv!?I(PKi439X;#VwiBU(3)SSps$DvsG=s z(_e^Rt>OQd**DcUOrrx28tgIu|CsiCeJF+lmpA|%L`Jdy|MN#6YGDi9M08SzZmWDa z?zjR^?TOkw;8|Fs-luCAFrSF&eFq6tyAv|trc8{DD~LE#Fn-{!t5Q_wq`X0XkXj{pm;#Y17ykJ4X@n)Zus|-oK0&dN9*jYs80iG@`U&R z{lU;8vUkwHPKP1BePty*4>*)8Ys%}z43B!i!fs&1yP$&igwy?mNU()(y(a|}7|iWu4|3kHd62zJ=Bw~A&!_$RnR3={wzX(9F28(2 zD`f`#1o+$_V0OVIvAJCu`b8fT)^sb%#olQb-zuvEaBi>MgT?LEDWaT+7gbcy-JwD_ zSI4;kUQ(>p0J?v!E!N9xFr;QgK|S*5vDdV5mi2(_ctwgC;>IucVWc<75_r2v1hSKz z=X6(EQql4ZF^5i>$ErRw=sjZ#&%~-87UNB* zN(S~AQ!YAxnbWF;?8ON^A;j89HsXfOhsfv}kTP?C#G23!$*&FIR}X*sV)`Z-Noo*Z z`f=>i+j*du*<#x73L2M0)o>i`n&fc`ofN+~qh;dRXL{VC(w$BZY$o6!|4GKb z|G#kCMN=iO`#IStDzFHcg1EdLd*u-Cbg$Zd3sX1yQgx5?b>VJ?I{;Tagx6P)yEl~T zx`3CQ;_LbJMW-k3yT}z=dQ#r)_L|y167qp3g-BKcGcuug0#!gnB7Ru!+`_)|X={CrXcv=c#vhdL95+Pn;~b za~!IrI23Yb&0g->?y+^jb%v?c;!SEW##{y2#vIsVFAUYdtlScZdNh0D^1OWLotr({ z)K@^omvHR%p2Ctd26>Od4EL^g!*B;thNAnxBQj?tKjy>IaM01h*CMM zLF0;X0R=thX%$V%K#`3uWl;W(9PsG4-WjyS+kClOiZAW3aQ3|$6L35UdLT#3Lb}rs z`mhi}{8)M1;~rK50twut9X|DK3bkwJJ<5%|BlU$s1IW8pCn%wpZvqXU9L*i=g4V53 zJtQ{5;UsO~m6s;_VC|)4G-t>Jw#abE#tF_q$;S9=9a-;nc$vQhs_>M&fheE8BYQo! zCH5}IfA)xZZPS{;0PfAYt`X)tYwcb#nXJ_%BPJAfHpd;k?iC~pWDhd_$?En~5y$~#JF=Ag!$5oSS}NfHWwkCnsUqq%%`7J$FnB+qaG0H;l?;`_zdi=Fix7*Gz*yQfml8r2c1S`u5YNO-RuL!)Jj zW7Vm$a)Ic1KD;3VUq&A*6JEmQGAWg{c~MeKV=q8;t@TOBU47ctMX9Y( zxNQ$P3Gaygz0Fc2@kb_TrOrX##>~&*C*LTfZZN>)vs46uR*B;Y7IxQmH&&02j?0hUdrHW}(EbMfHD+ey8G=kUxLX{0LV*vKJb-AiPgpzWLt z9*;w;iTcBQj~mRd$+OF}B&S~8>5NKrCP(+angS6MDDQ3a#Hi?k z#_(J&6hq@^X-^T3#{ev<7nJcBZPhC^DzUt`5$!Tb$JlG2Mm?|~glc{*x>@>=e>k6) z5kJ!g{nDsh9mp%zT#VDJ7xIoGjWy;>-Px2Z- zBrds4Lq=!ftVo_Eschs~Qitn#DXdNF)@vRIN!`8DtCG4|!W~=2zNsysg32$s<{hY1-Cf zcbK-Q9D%v(j?E8A{7aJVza)X^P@$?&kI;Ow?8r+dZus!z-2i6Atv?gb-g10=y`9AE zd=k{V{F2#p-Q`_p+2rk6DQw@?jlo=>xYf&h;z_Qz&+yf;JxS*ReQ*gE%Jv~YA-YZk<+|s7!bbN1MIcAy3dzcvXNe4a+ z#B{oYiZ&LF#Ip80qb%H%qtnx5*;fTl6ghJlsD+-!XYry1AD~dSKYodz!6aDv;Z_dtXF$N15u4ad6QdS+-a?jF3DDrV&}1x=h8Md&h1PnTj+! zh)n1rIVg8ofvl9G=k}`d_|~1plC88sf*pMz13f&1UNkbrj+^lA3WpyLTxrL^9Bj!$ zC66^~&D`= z%CvP4Ka|jipd-NYhI#KKI$DK}Gl*;BHB^Xil50V7Ntj0@c}I;fMgxrN;!GJi=L>3xwi$>U~D zAa5K-4sM3bpY*vuc)Iem*Yx((BW0~dS<|j;j1K}ZUeOC!MK+1DEt?ILeE!Id#RCfW za4mPtQGFwHEZdBS?fekE-U6i6pddc1dZsq?3ZH_-3wM$p~^MJMK{NTO!I zcSQP%akF_~CsAEE6t6Nh2RJ>}C>1DMLM65-6&eQ!D!Yx-5Qj-PX}jh8K*@^FC>I~J zfCQXZU<-v#Eso5^q{nkJXw~BVTs;+_8uwJ?^0I>3pX6fLzv2Con z-VTRCRS4avnGFnTdHV$BRnWaGxZdOCSdgk}^g`UuU}{e=(;YsFS9TrcYYh)xQY7Q7 za^2QYsJRIR3>zv#26BO!^xPpsQK@!8M1q_=v5t|oi^DN5C+{A5*VZHcC=}l;*M@5p zA5Ed3SdfMEdY0W$LHfEOD1BT8f6Y_cX8LY9)=*hTia#qP^!y z1xu7AbL~}bY^7U=mikVgx`nhR>g<9%B_{g7{S=VpJ-CM8?pw$^oR9fJ&cLr?;+ z501_d-K*DKLhy*L`pGQA8Y4c$YG;e{kOU0{V1Fh^At(J@gpEgqpVnhjaPfyEsWpt9 z52ho!9#a`*=y?+1+werKs@Ug=jKx=}-k3&jaKtnj~zTwvB`{!6^& z0YOZaEP_89X^FrgQw5~8bxkLKUMy0f<4$Eu(g8-PI!RQJT@iHix=*f}TuI79YtDzu zo_GKbl7`L3OF_EJr6R{cm2tmJ#9rOflwOQ z#^ZatO?hM2BNVz6(ewZ$6dE(@9)s^}=q&mo+-!sym(;umLHc66HpY$cL5DuXEuBuM zZt_%Wz~JA1q~mZd~cK*w{PxGP^_+s zVe%PpiZ}(2Ur<l3X)ys*th{T7j)xrkra1^xuGZ$%4hPEQbtPk&>`GUfr$9^?I4cQ072@zdBrbho z#b<5HQ!vobSVnAa(xvLMAZqDZ-d7vX-{fYJ4H0)nYcyD12E|=NB)mnHF+zDcU-QZL zZjbQrakkiBr1-dLtEF_Kq%dzeZoJZK6vKCeEiz_Kz+0MU;F|Yt!v?8%hNvxbgtww& zUtk5KwMbTWzjmBKbN7%#gZD-hL1C$)?}jam4?|l6EWqZbReJ8d%Dgn-&?jl|0mf^O16L1r2N&43 zLb`;S?KH8n%m8hG-~hFhEqrC{`YDWD624(xDU%NLj_oRZ+>29-uNh-f>5--g;!=WQ4|;Bm1p2OVtqF`pbbQjKMB(bTE_HK}YR7 zH}5QC{1km)fQX2h<`~DtyULPvrH~SW-gLotjk@wEyR{W$#a;srlD@FnC?SKm?i5|L!%rx#RmdG)IfCE#$^jPWM4&Q}( zZY5V{t^_q{)b*Bf1!lcqwD=wA;!D(<1FuaJDi*6_*Ip*OL95{w4@i$ZYL}v*7VK>k z4rpwhjZv89n3ra|Ws3noC}6?#7=sa|T3t56@!Sg*CtAhjsO4hXLGH9opEfSP7C z87K7y?VT3s7b)MLV)X>7jF;l??J8TnB(Rre&qdbAMxrb5GP|>Nv7i(l%Zl zFjv2al(IZw{Klw;JiAd(Ia?qg4NY<4=~YZxn^Rs?80H6eLH*-k9dtoeE2cMPZ3e8C)qA%oss2G*x}Y|a1oxhDo=0OC0#X%db*!Yfp;5I zu_7U1-{YoX;Ci;c=@ZZyeFN>S+oi=^XYY7`J>kYh0>_QCR*7|vLD{GiWYFhsYqM-8 z0&BI0f?+#~^rC|>=I(lo@MI=lpFF1YNNo*Ncf&%C$HRvfyvP-_8G&g|K}_$Y2U6y- z@QTbX8JLacnU7o5yNbmZ?_t(G(wn7QoL4CCWy141iJGR-_uhrNA|_u{s_t!2t~W$% zUt>P4HBv{tylyB!ZSlfo8tOJsS;MRv>uuZ-w%j__lldivje1PEyIyl%b_zpHlbz7% zL&1%kfE=kxJLisV+X&U5a;7Ux;UQPZ2beLZ_r#hOq>)khemJD-@?>lzyy%%Ngwd5* zT1aszGQeS9r|>$%lQVjP=UeY8g-OXZowCYgleMnlRFalM)cQIM`swH^>b93-7Z!*X zg$d2$tb)@kR-wuWo%H&;qE2cIM)af((>h+v8VB)CUAH15zV_$v3hCY3ydmys!f(j)-bR1OT~yoj*eaoCWObBSRpq^S|} zo6TkGZaSa00d=}Q;d!-m?D$T-^s2ehJIYhU62@(eIhmf12Pp(2JO~zfUNi@`AU7-} zP-6iJg0RE+6~H9Kdw7V?5QOFd!b6wWcCQ}^d4m$AS+ldg9_$I- zKI4EhIMfZsuFF}&8E3QYJ4CZGjJGVh-AuJt3kIq-dM~ner7NFsy_fzJsIk$=VQ6Zg zSHiXrZ~GOQBg{Q-a**+I8HEVm8EStg9^S1=j~EZNxr3PbN)rruybe7wCAVXw4w>CS zOnDQ!+e`OFgyLLUSB%g4H~={8mJA?NXJ@OCug|hmKO+N{n67p>4kfi`Hers29M330 zUeU-Sh^84uLhXK;L(xXhM+=$8FoSw`*$~*YDcLWl)L#YDGqPSYx?ZZOK67luxZ)?I z<(qjp2uHZ$8bU<26qT!ZNo_l=q;RHL!jG6&o})ugKoi(|ut(9G;dYiimq4EO3+_9_ zO_V6Yx_1JXTNa9LypD=W!(>l7=80NfvJ8%wYVVb}nt!mO{KX0<9|5tmAPMPTu;7F) zuy8Fr8xOeJGSgn^AgZ}?vR{$1cCp&)<%Y04c{B_S^)5QzGQgd|>DBNIu)!Q2=mKYP zN@(c?Rdwb(6&QsI1_&huA`N`}q@(KOC}zF7!w8Li-{EZ8<+>XqI1AWfrBRYvQxlnv z*Z2-Oi+Qo;I?{uC{s@W4>&Ju(Y&wC9Sh*J2%@LBsH~7L&Pi=|d zz3S(fwK~fSqK}^6^ozuLAeX`LcAq!^KZ=O0$Asxis4^Qdi<=B+3&tXMh>c!f*}F0-*1l{O_R8Q235#2~%?5)f3pYcUXZuQn$n%OO z>?q%RDZ`M?FQRq$ByDRivIl%ro6K=5z$KaXdGlj>;HVWa|V}5 zt%)*}+X^x$e36WM8BYO+^cl~)^_2H)!>cT@x0W32;2qV>0Uxj! zeeZo#vlv}=qV$>kMGLe{$riV?znk9M*i(8EdZ9yL-a6efQL=ovC0VseZ-?33LnbEL zZ4FOJB>x@VvL()|wsukPZk6(b^vtWv|O(PA#N7j;f8@ z{@qo0>m)ASd#@4XDG8{l4uYJ4O@MSM{;1)iwn=_)E=M^`0NYozVbCBu_@2cSuR3)G$ z-0P=Tsbqf9lo!?4aSy3ijl@$Mdrwa(<&CvUGNc~T6&)&KV>BM^8s{7M6p#Q?APJb{%7)=DEJ~ zqdFU-J5aP5FfE>iVzHA;DtEk2F(Oyq>O@qapjQK@DS-6BZRo zj84mw%;0&QV<_)1S+$Dg=}G^A4?$q^(>Wh#QshKNNiqx;j> zHn#8HUNhv~Q=o7U3-uy_az=29p6QjHb|_O$$vf1$!+t}d$gS1f4g(hb{SUE-}7&J#}=jn(r&+kQ+U{6s7(LxTY1k#g(?zGmhykM9Spu4z zOI>C~&Du1W2W$%OT*UZ^+cTax$TGmEdAm5cbD=bt8xvFT^vF3PXZ^XZ`OpZTpK!YD z!I+^5q>P{-@{8@uqGZ=g>@!;rdmCo8jjlT^r_JFk8;c=8-Szsa`AAGB=0O6y^9GnE zh+XwVwm!7ll9gqI=bq5pto-s-5|_%O9(z;3QO3*LGQ}w33L(#&!cw7WuME_<*&e$; zmtxzDjd>A5xsigh_@W5LG#{+WL6nUF)`1z__MjsGUA#sFlOOQ8B6(YdG2b z>BIQeGpw4ph69QSFIh-}&m5n&dJ%^6H4MS}J*riD+l zHeh(ei%SZ8WoM$$scG<1)3wlh)N)E*;-iq9g-Q=0>I)}*5L{2GL7#X)AKxGk^vZ0m z32?OJJ=>|228UOqTN{EA3h1Ny07onlyNiFMG9`%?=4>gJ}9Yzpn9+JRp1i2J4$88!xkl> zu%>(HFu7b#%n-#-oGBCO>;My8P9tuLS~G^Ji%kkR-jVB^u-fpYxC;UMyJ= zia;7}lS_NixmJx|!z6?vSCu}w0Lk1p47e5=Gaa|!&q5;AI5JJI=cPdqn5rs$@DlpP zi`4S#fFlZ^*^VmI~K?Wog^v5$d znZy!ANp>@dtdb6*Er@B9<_sYmdI=;BU@y2a-j0EYyMoPOq_WWQN_)VqvcDH8VT@i$ zYipqWblx<_%a`g*_ktmM(Upku%5e*r!Lb!ty3Y&Ng{BoKsSF-Ikw8pqEYuz2^%`y7 z_H0o>H1!7XN|ML#R=O>ll$up3+u>~^IHgd6JUD3Qho`<5XU%PM9SuU{`}BEPl1@+D zkiUm#1zdYCL`R$BI#{Q}HlCzuy`tjTo>at_F`X5t@>~dteD(@tO5|uz{YEcO&0BZg zlYFmbQcFy(`%3wa_Nt}&NB|B%m+s9Kw?a~7Z96d_zc!0}6DIEvtokAx2{edIY=N)i zfxjJuG#hD!w|D0fl>Gu|X~4=TrA^wf^x@ppy$Cbr8+{}&v{ljqJbyS! zsSWQK-agoT<#5#g`@!~_hK^dWyhQXZYeI@8Q1jZG1P**iuCgf2BsgzM1vLeyZ?6#5 zde4Ax#o(svT&YURu~>1xfI;9dVbWO19+4x_J;#2rxMRB3g)SqAdMVCDiFM3j}8?laXfOsF~?})X&rp%RG8d=|m%5 zm(hDp#w*4EO0{p>^6umj%6hN@)RURr!c5!%Yt(x za(LL&$y-Itlp}dTow*&ti>sYT4ti>XRq2#XVI~l zUxO16wdH$6AaVXOQLpDt7R>YLTtw+$6!g(?nij>8)dW7kBGYb0&a<|HB)EkEVVG(v zOFj+sdREzwg%OGE=xj%FXOPw?XH9gHL#b&oD#CLyDHbMApGC6d+#YFex5LB^8nQT@ z4Z|$-tIIjgCzDD${KU$=S%}OLM&G?x8z2)`@r6GM_&7D19pDtXm3xRar20B%@OM` z=IPFW8?Ef}I~i(e7krGW7e!e?@cKGKlR+*X-z$Gi5go$$=0Q@o+Ov2v8OG(|%VFrQwJU^(I=((eakP5W8}tfuOu5`wFNre_+_as?ORowZYq}A8 zMl4DT`S@O;+Uel|K*Xq>lv~_-S@1K`Q+5<@c%tFb%|1a)oXi!Vg}mj2R?;Tpz5)*s zz#4n4a%v*kw|n?Jo|fZ4QU z6jAd%s~sMECA3HfTE*w-4hm&fargjA#zW2?a;}jxVP^>5`Xtwi7`%W7_o;qcfV}Prb)A;b{>CbVo}j7_XqQjIc>V zbL>&JSso!xvJ}ygjqspIB=%UnNRCu;od+_*Nn$Lt@nGbrUmt3#8t0s2EsoQ}DQzsz z=*~;s@cL4Q;7gfHA~&vXP$H95d!y;k5m=gXX`_uEEA2w;Rbf;5jwKkyz(f%oysAEtbajdCT8H+|Qm8C$8PGSI zM7&P2&y@*@Hx1;GEtr(zfG-rsG&;9nFa=d{T38S91aY^rqt*rD)p5AsgOnKcJ5YPw z-kdKWN8;7ip)$rDD{t4kHg8lYor*J&l*_b?r&8j*b^)xC7YfZ@W~dPhTSRv944&I6 zu`k*#1_2n7?^@2A;HpT%cvZuSo>wnlL>B?-_Q=ID<{=p19R^D3Lf|pqFQI1?-JB=4 zed@2UZHAP2jK!PfZuH4+xwOR+W8<-F^kl5rI-Hf8H}OWE*$|DlH8g{^XP&@`RhIg- z_DcdXF0Fp@R!3oyVf|^~i(&zv+|a2+n$8%9!~n*87G5NDLtIC-%J8HobwWm03^rYT z%N-o!)w3WEOG366nruVXj>B-rbwNm3^kOW{W4vdCCBuu^PP6Kc>-1J1_7VGY$Bp+I zS1Ac=Ti~T`D%>lyxad?Dn#@Y>9m`qSCmRZ^?~?oFqvIBbgV#gLatQlKz^=$0oa{vF zTHrx)XRtomDSRvrhLZH!ZA|1QuuxP7lMU}7>=ZRpCgRbMgZevuC^BkG+rZn@MZGI8 zc>vBV)86!G=O_+lSwBc6>oz%m!(MZdrdcfd>5P9lBa{lBMc6&#$t;#)J8Mp8`lmFb zv;wn1bqxA!*s*tNh>oVRa<^fF2QT8@9<6%eiA-2d;v0HK2t4|Nb>Eh?z}SkPWWtC& zSbnNiUE1>=1%pcnPJoa@z+2H+mgTjZ zp?XSGQi0Tjwd4fe8_?E|X?2!e#vb$Zz4e%A!+Qh(*g_z@Ik5e#xa)~_p98qh4Q=Uj zdW6vVOf9SMDZP%$&8U^_@~QH9(_!s?S{cn5&HNHzBiZyOCtgm*DG!pvo3>kQL(-wg z5Bk*Mf)9$&6LjQ?&oq3xq&*Z265hz<<_Pao;!Tka)lKCAL(aTdwA+(Oi15>VfJLz3 zE*3Z8{!lqe&al*aT~7tz?a84+p?4DcFl%d~-(w`FZjTig4^HYS;zh9PtyP^zDjt$b zw1TB*DFy^ZvGjD#oD2)gt>tcaujbx8-FhgbZUhk&?En>BoD_X)dB+c^BVZN!6tkzY z`t{g_*JX;-D7H;ly@HGVQ|8K%zDqXY%-!B3;O|h&+bcHCV+;ueUhH=3_QO zE%!nmAes-;^_!W&N7VChyL{>Cp|O*~vE)5Zu}q&q3$3Y+$VMJ?z}k=mZ)|PFGRXas z=INI-PK!ayz;C7pY5RmiW8fTYcm8}mfl~V+p&w4my-sPmd-tBR-8-_ zOFOQfrZrARllXf>(mrk1$LB)(LZrBZSdY8=T}5pxN5INB+k+8ZS@sv3^oqo5pDF-y zb0|xa`WC#piAUoWMWj&2t=+sE)?U-mK&ueXXz-dCC@>zIL{O5oP!k-U6CSzL4Ia1d z1oN&(hPuL2Ugj`dD9zj+W*t}WI75@Rrnljclb5cr8nBhfWq7uGsFMn4mGAO;J(T>E zRVfdtHeos*5#3(ed;B=r%ny!E8YYQfw6vH#mXa{TH zxY{WcI6QXP*sMayk(=m{qAnM!?UjJ%`)aLmWf(FN`iJ$k*(vcodmS)|Zc6BBUaJDu zv=Nacw{9!<9`E>5k9e8`ns)F|0&?&n$n@N-iSRI;OI7;Muh+;DNpfHtugoZ3v9FIm z+iZN~xD!xbJh9q^XFKTvVm9IEoH8_}_&=w?DmI6Lsf$6JdHx*#J zV^(KiCjfVL3FG7D8y8l2uHl<6fGuRctYQAL#zg&1mxv-m3z6`v(hUeN!X(_kw8?68 z${6x`3;fRA8jP|xabdMdGoVgyW3etsh5!NjoiFQ*=;K~6J2iC{P*MaTgsORJ9=D~u zv5>GO0JgcpL;Mg$Q!A5WT12q zqt9+H-#8ekhaOvsj{>2pvSdo<)k%}X=9x;e9fxCv+S@5I@VJK$IrXX4)q8I_<5_pV zHDE&5(2MYVq#@{`QkxKx@wn0O%)?@|cjEc^)f?^hQ{36Cn@xB=b%qjww(o+mY0&lw zzJM$^;vs*a5AkJOg{rrl)Zw!EfPh^Z>t+M4`QB zH|+69^_K;c8S)7L(O-3D`kS8FBNcCGy0$rP74R7WlExl&2!g6BMH0!*+2 zUQ*j710j}X5A-r@=P|Ej&of9iQ=vD{(ko!(<*=~IWF-}QFEm7$UzQvv^rfQlh$vDS z0`*Q=O5m2Jnb$D(y(W(VUDx7y6lXZC{c26dRu$JaN{)Mih~!El@a)mEB_XKDRNyad zgub)^UEW(3c(RI@c}#A_^raTgeN|SEnu*%Tic!ta97lzw>o6J0m8?V;fHURL>;!LqR}PYwa-|iY_eZk85haxKH347i-g*HCXoz4ORIK{ z6Y@4{YUQzTb52n+W8MWSnWR3ju^^{9Zwuu27V0g9 z_Vb)rK&8r^_BgDkF3%9&o`vNKuX<(;y;;XH1@-V3j}b-UfraK+au^WeJ9{?ZNJ~&I z(9ips8WW;fy|_}icRf&!DUhzjD^_Ys@M^8Srd4Yrt0XZCO$=n}RBBEJG44GikWAy% z1#VMa1|KL=K|$>GD$Bsi#(vzm3{rXWuD!bM zY!fj$<(Hfi_=7=X!DpU*yU(51^UE8BFK?C<3!|Qo2;!jUdSu@*P6tAqKTU2H;J3C}#~7?P zAVFmG3RZ=5r6LMpJ?b@gYOf@aVh!$b_PQeeV}yMRB8mJ(h?C4=i0;E^CH*e;|a#D1lZT%SJ4HlqXE?n#6CkaP1;Sy1xBKkywnSHmC06CS3=5o z-AnjDCP)r$YL?2s2R8lE6-ApirXudr8T(Sca#+QMu*+hsdn8)T2b7f zOHpzT!*Ux}cAqpcA;%PrOwUO8l!Rl-w%9!EQ0BgxX?Qnua_){p#GDX($H*`wv?L(l z@t#$XjPt%debk}uzHlo|uW-~-`Rq>6?CQX1Mqb)`9%l6xQ@ z0gp|Qs7iP0nDE1_Fg^oCMqA=KH9m&&F*qe|>)$|$R zD}5Fi=$e=3WQhq~a^ie!V)Vv_c8^hMK`yd~2>UVW+PV+XaI;~8Y{9gF6Kx;`6De*y zjfQ!WYLwlQ?Cm=0Pj(`z2{3_r8P;{7A+)F;uT&?2t+aGNpKI0Y9=q~Td@FA|fLJcZ zAIcyCu~IKW<}NEZ0_ILVbFnF+>>eo~-g)#;a7>8aY8UJ=&>`(ofVjpB-P0V1)9Y)o zhfuYwo#tpjILGg5x+g{n#q-jS-~pUpq7?zzd;GldwBT^?3a>rK8F^iKwrZ>7LZ2Ew zA!2c?C|}`Kj%R1!Nqt~qFPWN!nfuvHA-N3?SlgXVh^jg9vE<`M_33!S zUS}9vy*={O6_=4n zP?kzIed>Vtp6>0Gt&Yy5Q=}}*60+)XU5iMlv1i;uD%Pv0$f5uR@ab1xSB9pzo87B^ zJ9KbR&p{Ra;j#&%Nv_34L%b*wIJd=K$$^fJ}qxspI& zvyFgwZE`09nt?AS%5&CShx2xvQ$(MQCYkjzVtXq|#}E#TMiQMg z@3LQBH`C(C%pN?o*G&^?t7!0k(Mo($4@=kI<9QF4h(P2PF#FAx1UUr&HrSk+kh zq#7+m=H!p9QgpAJzCT0 z(E`y^7|7@?Cu*!RqZ6rixj~|YFe+%c^>QD3=x!T-l~%+dSI?SSk?Yx@zK1uWQ%uR(6a5S- zFTEo!Fr~MMN2r9lRZLw`ABeHx(Rhbbo>>$~B`yad*ND_eEY3}99LHwpnc)?mmfE0# zu8s;l^?ca<&KRA^(&zNR^322~i3K*=P02s}+5Zqj>eMtycKf*bU1(pF!&)Slbx@<@LifyTv(^)#Q!8X`!0Yyy12`>$L$(JrnumTJe3i^P&rUX9a%2<*(=-R^ zf}YNEVF;7AZwEUT)u_zha-cpbGQjICIDD_M=i(`s)rjh5560#;Cj2xvF5?T z+b`Hyp9;|}tFIHw?n<2t>i#-$=I=llD&q9`*iq-E-E4)(6bhn zXq$Xis1%wuv_x1Bx!6vK6L5l^<*e|YkB!izKUY{WT@Qq(l7zNZ`Iy?4G@rm-PYPd- z1)1m;jvIs?D9LEivo!;SeF7C-ffiGtRyW@I79}%@-_!DkTpDyh))6~ZCbnW!FbPmB z6F>kpW?nCJ(4WbeE%ZHF+iU@N7My@kFLAmh)K4OzcZQ3$jt>q6SH{o1DNH~q1ROfB z6LFII9x)rSEU4Px@Ree;AOmvFmDzg}Mi^en&N^bdK5=JngkRUAE_I>^9pD1b!#DR* zL+741MX6b(Ub16K5)CP0`556IV)IkXM<8d?0cFK6ip}HoNIz#KWql$Jup2lNPj$TW zHSL*j`AqSpzZZ6yyHQ2F%QxvEk9utJK)QK^OnAE_rnNeszKM0-7WGNVJ!+X&qygm}7*= zo(86!wg56v3#}(}?qO^xjwP(dGlQNFfK(}c@bKB|zGyIo0`PQ@wP&i(OI}M;d~=-) zb+hoq6s5c%ij*rd`t4j9T&PtEK|!Rc3U6oJoaSK^{V;y)Ybj=UuisMEu9!MTVoSK= zYWWpTVIlGu>jw1d#c4ximo#g^Q+Zz#4*`72lQ$j2Z{Bc1sEFrN=q76)S30P*Hzn(y zDe{*+0tnRg;;ttA9!K2C3uHIwT4sh$FCE3QC|hO63V!1&kAiJLQx-UN+gCzDoLIp9 z(!ms<@B!@bEL+k#z&KLnq&(jzIN8cG5BRN}iWDOfV+TCkAyXmceMYS(!B4_H^zHeB za25gzQyhNF^C-G%fStrJaAY$)oLFVNR7pLd%dlQ14}>uKCB5n0m1w4HcfP#^UnC^i*Y2%C?O`feSVkR#n)~{= zJsDqiikdV!zql6=)jk=tW7tL*=`lT3Z^81V4h21 zsM8X!zYWaLb=9ha8lwirxnaJ0ESLV8xbfwJddxD@3}CyU#cJHdg5Ao>^W)MCo->_xs#FdiOSV@QO0`4GOJoxbQCFOj&D;DAW0;REssp<$Sg>%qABe9 zY#Q{+J%_q?s08&|ZG2m%hiwbF!F=x!UxrXwo0YFWn(HcAb6*Oz*$%t7!Y(Q7gTg=c*`(A)&d$VF-ivbl^bx3# zBy+Am9;X6;y#;=r{0O&kOJ^UxfGQ5zv;(!_d^b^x_QDZNtCoZOXansX=R@&no{bBJ z8g5_HrgPVp;RZ|c)lRG@$^EcV-lHerQ%IvPz;{d>L%LF=u)IUvhA@^3wbU)wZ=!gZMYC0EF$`8*-nq3{ZIj1F z$YsXep=K6rr|hmj3=bRP)lol+iu8DvFyV%lqxcM#q~V~{!+038PNw=bNRl>})Nm`D z3>_UHshX6zbW_4W4HoS+)eW)*F?2>`y@ z-H?7Wi{U77np8c4y6G_N=ezpEA?w1zK^|m@$2Fn2fowqupo~_~Fb+?+sABDa_2BZ8 zkj9J-paT!nBU(Tw>7kA=NE(Ps$X4&iGy* zMsTr=&6y>8h(@6iH2Mpml(cn3C3@4Z2X396G|7iZ)gKQOMBd?JMI?CR27Fs~_=~)5 zhpQi-K9}$sd2l)~nHI9?(iFne=$>SWoY}RsX+3i;^`_%!P7zJy0g~lC3Eq5xt`~{^ z*e^z5hU(E2fvvpolbFiKB8U?fuJ}gvp|{-=;N*u1UA{5#r4QFoaQQR{YgZvs$C^4uvx?ldC z+cMFwv8s!UzV({JP?@K8jxVBS zI+h`HpgK@;@Qg-?UP$W$9boGhQH9NJR^w!TLlLC?$~d!ykvA6N=>ksfA}F@>5Wjv7 zIS#}UVKlF4jx7u$MYty(dirHPK+V)$5KCUM?k){aF4$(odpL*($^`P;d_LcAc$3eaF;#_b?3&!+5MCkW6 zHS8Kg1j#zEW|&}Bwp1NLH5L5`rPYmy{Q^bWKNw_lZ1!T_XTh?~c(nh`IKShItkn$Rl3BP(v_ zjh1zkb5mI@7J8;#xGDQkunE^Zt}9V@KptqzJ38d1zS}$#-`aCGQkyY+y zMdpk-+CY5^$GD-87`+65^^!0w*^YZq*5(<|l0u_<-&~DIAHPSn+Epla>8msVZvu$l zGmH|{mY9d<7f*Tz4iI)#*O#5yucGdyi_}hZEAX7*OZ5No_y8ooeHELD9?@@jNpTAwH6u`D1M!$60G4PX zk`ZY?K}$d}CkPu8ruW9*JbISECVcORgsu4zUZcsy`dhUq*fvp~U>dVi-ed=JAg1nw zO6BxsY}?=!lb%?GCW>WKX|IlWz@Cm@sg*fso z703|H3gc){fJ5$H@p>jOa*JPMVpwcNJiorytd|#7k=EY9gVav=We~&X6!a2Z-3y@` zcFteUK{`8lhM_-y&0x^ld=vuV8j(%?mqJUFZMQLnfow%nBd((@{w!tY&Cz4sRGe&+ zSMUtUcp4EDDfdl1fz8`3k1E7p1;#l+0*d$z%tU1ZSSUOgGN%L7w=R!7Armx=(;nff zDhD}Ec?&25JcO*bgv9T-satxyo@QG=X?pTNRtv?Y-ZN(p8>ggsc&a?1FDDOZLw|=iu)|1RbPJ2LrNxS9+CsT?qu>qDHWn5EhFK3L-|LJ_(s-1+3nMN8 zQq?YR9Wss8Krhc~1v;Sds?nDM1cb~ss-iBVO>ILc)tfI~0`n;?sIFo{&I7Ev3c_}D z4XD#W)Yh)GIW$gNu_dD52hRyO*u?6Qa5e)2ryZvbUMTTO-%B%iK}BY-JgG;cPjoF5Y?PH6JoPA0xH{+fZgdH@%K#SLSLoG?2m7Qw0`hVQ z8Se}ODW|}u0Y<9K$F4;JSj|x?<5+w7q;nnzLW;4vjh|gMokBex?pLWpGH(UZ%LS{; zUSlBur_wv0X-^oi9KvEb;n(SFAoW~%u=y5<6JtlNK$xZy`o%4z)A%FRiALg8oGAnw zU&s>cFz8!xi^)tw10Z7Xvy3Ei3~g!4R^+bmZZaJ_*&d6>mW&hj6cS@q)G?(@*1YX3 za;Ap?Cw10l=M~N!p0PS;F1+K=P6KRb_D_ZUOCjeg!4kANZOQJE0iyFGpM)p`dNfRr z;I1D{ZTIshMe&zI*RwfJ_oC-|FQT!sN{utpmpEI3m9-xZ5G40dHHmQEm^UxuJ9FSm zH1LXJ0Jw35ePD33SQ)$f9OMaQj*1i)q>&$uTsJ@B=OooIz3+7zs*+BdZV-%-m@Mhc z7$OW@1ZE%sl;F!5Y|O~ujob8^Lz**jp$w}@t9YW%HBu=X9_WhDu*)N%Y@Qqsh}@Y<4x<~sqZ#ncD_PXtiQC7#>%-6e zriq^5>GQ{cR`O!s9rC*uTvEmZdMX>5mT!Rk2KlrN0JkiMrmv5Sm@O0SCFS}~iDOCC zc&sO@-$FhYFnLg6A(O9qTW7XqWji7f zUIzBPhoKAJPSYx@o;&nBt%+DS5wYXFBRm)c26&3wb9#-MBe2Er&DOC zeIqL{*ItY3nqk|!G44xMlrQhtu0}`IWE}Sv3_M87G3z0x5MLV$1fbGTw$W>Tqze~| zdNq|)xDm)zyK@&>Uk-_WITT0NZ5=QR0i)&CV;hFvxT#%)h<;5YvvFZ7Q<{w%jqs;L zkv#gwsdX=<@GhW81!4O@TV56RD`T=!ZpK->gjWql4lW%=8=Q7^EB8VVnthF1P z1g7;C&p2n-iN*%;0HYcopO`1fv5YVS>Dw8|7>~OFz)tn{{|%!GYs- zild#*8!m-gZ3o5fMCCOZeUW)4W&K{uJOyFP$E}XY>*>Lx;>$<2ukqPpQ4&0g*MJfx zxy6z7PzITR*wp;#-ZIYgF|l|{2|dqQum_Z|)8r}3r>=t+{)`eWre|pH%mX?1l7ku~ z@8G3$zD4&_#BAaq>L$;2KoFy2(1snXO6O4J5Xz9ib}_S7h3j&`8&s!pgqn;Ls#`(b0xC)aZ>7%y=dc z2wuLAsux@n5d;jLgT_U$*-V_t-sJd>EB5nNTypob%D0$J&yoyY^(Y@k?QIZ}#JLZV zRFtsdfdPdjd4T7WF|ScYmG(|~v@PDslNj#%VvwGRyDG+ekDwjuL8Ct;O#~tuZJMoA zNRcfS<2(d`EKVhPjI+$e`K#$gdR;%VkfQ&W8uxz zE)8tSL6agJflK(fAk@cQ-EC_k2aaoB4MTqAjhS|}s4W3h(T3$~rRQC5e}SZIl) zT5>^088liK$}6v*k+r~0FnVK84d}svAl%-|+Ogv9hw^ycWoH1c@S!T&D8E<45u%Ht zQfsur{&redHlWy`ixxakU|zj4xVuMW_;6t^k&=kLL3ytI8PGK=T@k8u-qhZM*g32+ zmz=3ZYh9f+ph~VqqDafK-_HlS4|IbDW(^3gu}joXHcJkYkf8uU+-7UW8F(hCd323D z`7lM$X#w3l`WBu7JV0d}nWbs*+s?_zSY(pPIy`_)z}FyqZOV3#aHu<`KWbS7MZB6i1MQ1ZuOwO34|WJYpIG9jZ6^GEB|+nxQoL z;Cj}Wh~KR7O)?oAM8m@OvTuoZ;-A+KIiEaickc`_fV@lkDRcA6pi<)EO1!m z+^zQkK?Qh$t+3>CC4Y-{;h-o~(CbSi@yGoxKaxj?{&cm1~z+{?(7LfUA_paHU2HWj3AeBhu%JaC{WtpA6 z<-WpU8HrsPiqSV z?DkrAB@t(zw#r`4cdpPj2M??auHG9*<=c0gkv&xR*txQIuZo9w%xcy|`%ICm>3HDT zq6WVO=Vux+xdhw^9!9m!?<7XSA4%KjC>K6Oc6Td|Yr~usD#UdV)61?jhH;O0(`Iu~ zma{FKI(ZK{im+l}0^w-)s9$8g2Yj@mqI1f+B3L=NTvVB_tnSUlxRDvXCl3+n&1{H>P0W6ravh`$46$tQ?ytNU~m)T zksLn6l$q&Q0{TXl@>mjkfV;>mbmyEo^I2P;?(K`GFLOl~R~uKJ_4$f7!APE1Ca7DO zuWz!()7cwMy~nOu6^jR4isXiHCJ%W|*+4PiII}zbGL9Dk{JE?$9>Zk~kyp$x;XXj; z2r+`;K%{G?K$XnW$tmb7y>MMbR~>vllb%wnq6JE0udl1U-0ca(ZITl#3aC-8HQ;8S zOo++07Ea&ciL5qFCvUG@aq8i=)qqD6BgY{=%?m&ef-n<|djVG#6t~VqKC)fs*CP~Y zfqizRokrkKpl@U>O|i>Mg?Ludh1F)435XsMdau@t6#>};Vxi(|NVk5}QPELeCs!jT z^6;GqdSJ^SF6oU}sU*|vz1jk6_d&ECRDVy>jHAK|Zwk0==M80I(iE=&k=`3Gx9rA9 zyvL_d*VqG_=*le_ft`eH)TnQuv{L-N@x8XpoRw;w_hgk^C}*;s`@>A&X(qO5TkMpD zqRH59dE)6Fn?pxESMq!U;IdaCQy!5ci!xtxCe=QDDzc;9%{KJ9GhsIYeo`*A8f0;{ zOSR!(=UHL{ZM`<&(&2@ zOc%(X>`)U2{VCEQse|uOcCh$40QI3!sJ2fY5U>dPPW8FnJd}I5X^w4AEM}rs^8vuw z=t?s{7z~%%!wVRbPQVq}S$;5{ERo@DIMIt*ef=KSCHDHFr$GwrD+?({xP4@=V#{WI zq6|$gtRG#0n3|7c6yoFT2NrgEXQf2F?25`y@2sD*JfN7dda}yi$k|4+#Q|!wbTHRD z)a8+_;ogbnYcwzz+s%%~UW>L~nORdgRn7xNN6FE=3Jn10+od?vLo)7+C^k{LW84O9 z7I=E@y^1BbaO5*X#hWWjX*hQr5@0v(uX}`O6K6yyFr~=2_`SEKqyi&S(5twOKZ9sw z^FIb;}cK-(d6%+@tHHesq&ETk4w;cXC#$+k8_^=jjy5^#mz}fI01~ zMNJ+((+R^|0aid~Y==M%k@rY-kP|tZHSHNZBMj*(t|p{CqeMRorQKC~zK5wArTXeU z?RvyJ4&E>CmhOch*Y?P$u%Wcey_KGt0E)&Fj~*D&ml@uA8DScZ5=5Pr5AFx7^P35w z6C>`PD)A(ZNgGg2VHbv`cbvvBP8UF|gYlXup$8PO2_7u?%0Wh!6|2vJJUD?u(SAO4 z;DlEC%1FzF$WkuH>jG8Qw1Bz*`fTP3-o!j_cUs3)v0IVQQe87!HM(Qed?+%!w6&Wp z#gU%-Trdk?<(EjIUm^)o>QK!c6o*W zG|BbNuso*4JjPR}#^<{}d7%%yFznSchThs}iilwhD3CUNu+wfA!E_H3JPfIh%0Le9 zjXznE6dzziw;+L{8d|V8*d*2G4O08;1;D^t|inQyo z8ay1Q3Rjq>_EhL8Mdg|55*=>k-j;nO`P6+}2s(TOwcYH5*-Lw_F>#Jr z0K9k21Qj5Zp6xZ+&7(!7@F%6JPXU!JbCyFA(Hck=UOS9W(><&z>lq$ufwpj42YA`Q zM7pvdxIPpQE?y(QBL|+Ddi*4?7x7l4b{Kxxf{|~Di3Sg!QrTJn?n?m42O5eXm_Qhp z983DvW!;M0p*K1@=h?~h0pJ{|TroSu>jU4FpjI8KnP&ku%0UIPN4%j0KFKSR`I^j-~53;f3=Q z8ZACddca>Mg}pv1o<68cH!4O9?gFXeMKy&)XBdC{9-sq>DTZxhEG2Th@#CvMCnc0B znAIe=XY*8^yp018+9@HUR6BpJ?=hy8g?9#qB?!Wca9g6)yO4XhN3|>xqGv4ze8~uY z3NS@%4rE9>q<&9|EXyMY5S3WW-?Y_63F0m%JomJ{NP4`8il-3>^BUUJo=OC?FRunOI6oJ;9>_9DHdI(QSazcqMfj&${XO@yV|+e>LydKFhJH`a$D8&ms(EJ z#BjitRC-#$T(1S6(hN-}>(J{Gpfpm;o{dOf)71yAthn0-sz@xf#BgD5uaody+-e%F z>IBxjQyAd0N$Ua$5_gk>VR0llaDbZYt+`vuT60DZ2JNWQcW)i6*1e5-H-%G#n2R0V zWSZKZjz>&nkoN&Km7wW(wv=*J+5|_3@hZM!Ea}Bkw+fuv?Jd>ZO7C@xsK?F|Br?Jx zkyC&Z3WhKke(5cVzISZ<-mgZ~&vl%&CPh~!);idHM)bA7IK#9m4}xq4l~SvUE_Kht z5ZSfn=OkK0Ch&B&=s7g_kPd0%>hrVBMLJoR7iTP}hmT>>3N?A_Jg4KG2Hd@<7p+Lc zbUxfQrd)K^+k->`Lgom~0R?xSF9P=k@#Z$XQ>%vMF>eU84S!6R}r7x9` zzEpCk-Rhxz=NT+G%n_m3VGnavt*41MfuQ$QWO7wQ+F9&_jK{1t$pwG86up9xc+ZO3 zp!Jlo!Su{+J&P1w_p-LM7k$guq#%8F7WBq^9_d!S0*+jE9?i4D$<486D$md?G#}66 zR9^sGOB6+z=nLQJ1$`|lOdu^cq@HP*`l6rgli}H|E1ym@buIDK7YCC9i)rz^*pgKT z-mC#*2?pKd!Bb%?JED=KcV3#!zSe4G&nOS}iTBwXx(uSM*X#6By+W#A3cpHvx{NPh zH`PPOIi9B+Y)tqP&XL`p(u2z493v{qcg?K*Lc*-;xk-aIz{7R0Ca$&3C?FyB!;EMS zW}`kvONZA#?9SbxVV<%eq3YQ_zVK%ytr`yjEqU^-z6c*U1{z5dLTU#lL(1hmE)Iab z)sDq&$xg6qda%0Yk5kfBjwTIvJ3yGpf+YiA%VQDH-AAjrx4ik5-7CRZWWqbR1kBfD z=>Z?D%S_C0E&2hy!EDW13F7v(a>Cg6D+6zFnU^-|E%nP}s4!8@c~u@L9Hf=!PB6B< zEMn*Qd?$|i<;6#WU6P)%En&P&n$Z$<^;Q8)A+eo=+qp3Gn7)Oyf;-MBc zgEt=SJF1($_LY1Tr6!D?)$9<{bCj?7TrDdW8gj{l_<92z$WU&CiP!u!f4M~P<&tG( zB5hOJV^ia0W@N~PE0q}V#a5l|@zKoiaq?P&eH$-B51#Vg8$5dS_Espk#siFZ#jprlERBi{4`Igaj=DHJ9`K1Qd1Q{KJjm}x3z9#|) zrocpI{YX%#UG3ew(GG{vn&r*n2k85VW}dQ5qQ5}s*NrN%ZhRJ4lr7sJ|Bvj2sH&$3#F`05raSi*%TrFZ@l(K`H@SJls6-3bRLLoWVUS6}KrCiT0*T_fsbSlBwNiH-bzp z%JY~gt1J7+Uj^{p!^O@PZ*vTXIF%6x8&;!N1gBQ12u)>w*;LCjl@qm*)lTnJQrQ9_ z6O>d+*b3-zW1c2bxB!iKXs8` zP#M=%E4cU?Myl1#R^t;RnGMA~OUJB$UdA8M19Kb+A~9o#ZB3e2{p+ zx{_|mM?F`?lb8FRHQtoeOw86JG~gDO(MMfn3H+SN(zW|cOkA|&Nzn%7bEBh@c^xc` zdQaGj&0@vEtDW56x`4Q(T`mD6TdChwu5h8z^RcdXNgdBPn1r4orV*<{Z1&1XO*le2Hgij$U7_1wEBMSWyA5f^7t#w%?nx@J3&-5O)@BE?1`Z=bO- zj$g;zqk2^e=a;pKn;AkL#c%M|kW!%R)v0$5Y9>kIOvpGS92$dS0!|#dK!^vr54zS= z1ZGDvGQG+R6effn?Sk-8XV!=V%jdqkrt4GbfMj|)lxd*?D)&0*WhpDcBraMqvjtp~ z)g#R(78NO*a@!BzQ1FFaJL?!>u$1P^29_!d-_cPz_9ez?v9#cT)jFZxTH}IH5(jY6 zHf;pOL+*)5b{42DzuWQV2uE!&&n-$Up#v)kwAqHV+HER-XXbT<(#!Zdk{?)iS^I0Z zaN>c!?&f;A-GcE*@3Nk}eby3H5qGu4oFTP^lSAVCYP$u$Yf4w1Krh4^gO%M=efEC9SW= z#e_E|G{Z<5DTf}HyWPl!c8`#NRg3aTEG?wpdL%PvK4EIA2Q*l5es35LI}{dOE%{b? zMhq0Wvvyxy|71qa#PYHK#Ax8u%MvxP!yWFhP!O*0unOONxL3pyP#;P zIff6B9FO=sFugl>oLF^~$#ulF1jaxGS|+zM>X78HrfIeglCr`wuf6xUP@br!7i+ek zc7v%rfDMB}$~j+{%kI>afFKVXdpjaCN}R;X0&yjZP)oU>p%6BrEL|NNL1l;c0zh^X zav{A$auSbxn^Krbm6cZWRfZ)1Y#NaPY5;(3+708?JAZX9Ba4xR3`cjXGX{qdWf2l# zyUnk{vpQidfS76Ekk^)r+|%Fr^2x7Sequ>;Avj7k6%~DRZ^#dxan-!ytPmmQTxMQ+ z;ckR0^_owfro&YkBF~z}h?@d*ki3|nenm>yY5~d`uO>WR?Yw^S^5n4@SgE)M(rE8U zz{@JesU9h=Qrn|^DCc!U5A2Ppp{#2h8_(%Uhwp1#6+|m^=7Q%>&@Htn7lb!g(86X7 zxNW%Ilf?H5Y4AqTCpM%x_t_?#@ZK$a0|Fcg(!S-uY<`S0mTwT0w$p*C9-jg`K&Dbr3eIpl{i z*^L9x;Ax8n6ZTZ~d2rmqEeSFEgmG*m2!gCvu|FaP)5{>>i)3**6xhs}cvvzXvNL}4 zE9Zlo2t;F0KI@5B@c3~PrLXjm^({up_;C$`WDGhjk6k1cK(zWETX?dDDlG%6rpfp z&Ef48mr0k0F@I4n-j(*t7?}4u_aKz4{=E-$ScSyW6 ztld!p1%1PYX>ls64CPIb`0xsaUsT+aQII#4tVKuaM2;I`WCS%YSUOwbt>QXWFClYc zOyiL-S}Y(Agx16rb)H#G3Pqir3M2Z+6!y@Cy%X8CLd;UswTB^MLO1@{483oP`gBW0 zu$iM%0Vx7iXKWF+lG*0GDK?a!mipsErLl0EIFUm7@=55+C-op% z0ts1k*~yR+PAH(!%5gt^0?|^A+Ve~r$Z_zN;t(Ht&6DN4g`N|vXzSi27jwHbP9ry; zd2TK$3VQ4w^H@0W6-<|9H5VQD2TP~AUg}2GF zcxs60O-X;!a! z4W(f(O@i9{00QT+q4D~J@QQ`ZQ)r&W0du)!DZ@#3R*4R;><1t#HSUha0#Bj@1tBNo zP!D{&mAk^34$e0LHs}<`}D^J7k+m5ia0xgviU@OLi7bTZ4>z zf%=*jJdU)3?Y$X&n~g)&Y2bt`40K~ks?zU_Okw&CUnj4_2{5uFGYFRT#=em8a-~5@%j{sN1LK`%p71dycD@TBQ@K!;i!Q`Ff*P zX+5IzRWf9FiskhieFX&-R2nxh2P`;tk10&(WyFYo38nBQ)JZ7L4He$qP4Zpc15s#H zsoTl&UZ@okXPGUZRs`U(spqUlAScsTkCU=*LmU1w>WV1utaMQ(BBikP>(e@EEtH+ z2;zYEEMD*lD!|)kvQSlUD9bHL?6#9b-G5GaagdWTUDQlNP*UOH`iU_Qc&)JWkSLkV`_*l6z0SVH|6P+Z|5fkV|YEZKGYV4JvK1bRc7P@Qh z8DCMv2wi&JkmAHGxtvuJDU-_}`a*^Ml`20gT$879r&$lPt{#hH_W*R7_8H~bcB(jW zvL^eLdwX_*cD2kim#LR!UWI7du+kmduGJ{8SDWZi*g*|qA6Q*?Ra2Ba<< z@}h%K0QbG;O{sHMawJv1n^8MLd#K#gH9mQO58R^DpHjDWlAk;r$5Aj6FVzu`&5RyN zq8sCYiUjP^h7fOZf;)e-6@0MJ84?w5I#)FLN+=u;;?t<_@8b!INn6^xYbMhu#tvT(bi0gOh|!l+FO##U|Uzzm(cCeiFHlxk&fPd%?D(y;tiH z@ub&!VI*v@8A*ict`5x~2rXPdGSHa2cc)xvZ;Tta0u(KfR`OcxFxkDyP-d^)V*_lm z&WEmG0Vulh3Mu25f+GEV!VEiKl|=ReG~1)_7h%)c2&^l{Td~rCl*9WR9{{#%2bMmU z4Vv4aJLwBhA$52``QB+_JWI2=sMsSBRelc~D5j<4mR@$0sI9i+zy?H;#flTk5aFX8 zf756DK&7Dzb;~LO&zX>fge%){97_2JWGvz|{NUzn6QhG3Kd}~no=~SbgQko+^&W8- zSP4HA?dMH*1#<{|``kIT{NNR=3D$Gs8wk6aCt@uX9ZDNl6lgMd1QtJ0CY;}5N+}nu z#_fwUYZ}aV^K#17XwVFA)HGVyOyXAOB2@7gy?&)WF_h9-BfMqM;&ki^U z=i_>VT5h-JKyE>uLA|O3AvC7S#-iG|p>t|g`i$v4fNqFD zs7T%m7>=OyJHO0ViqCTZ*ZQ@GDs1ShA|_G}@tBi0f{tv_Ba$M8MGm%u1ealE*>~nb zBuJ5k4zx{d%|69dP0prX(t8*)#p4gY@|=QqAnzh1ShKga!Lc?y)5a+Ba~gGo2#iB zeI>77qys_f)`kLPCru<}Uwe4MWSfN!>*_sV5lHvojKvnz#6&W38{RYCNQO6$bg~w& zg?%s+AHAk*hInq^V{Q}*i%9JBWGM4R-`jCd^z)=^vS2ix8g9JuR@Zu_jBP#BqN4r| z2JMB=P~$Y|j+~T(Hj*K7Ab3z=B@}FdH9_tHYPP>LZxkwS-e&9`595iq>Uu(*uA-AV zF10m_(9CQALgxBFLY~EmwNNzg2A3}*Kvp~;(24F{cf`x4!xAPbJurr=JUVBCjBqJ4 zS22M{+M{qTa?E6>Ta`)HbCAHycVu2olp@tB7m(sbHWsw2>k+=ej!|l_j07w?8=oC2=R(F1Ftr?%~LyiqaBkLJ!<^XjIs7&biV93Q8BvIz%BvpTt+(v z0r#p_CPDO?YUqdyGa#U7G#lT3;d70V;khs0x#nUz66LgnP@xBsMzcC$qbL^Pa)Qea_#TBB`TWplSB%VXW-=-B2vC0t>C0d)#Y(R28~I$plS_RFQcQc$XR z$O(Fx>*vgl`7}zI9&c|3^R`~SzI;gHfHqUlUW=r1!^Ilkms8GPPK{qy;t2*fPsyR_ zW!;^N2JxPf<+C2}J`n}4N%kc|n=ACYvy*F;R^;_?Cj-^Aw{HvMBOm98WHL-gl!EH#{~n zo^8bsc%Sps!-7Zt0vn?<<~gqFFgofgTXw15LrO-skcLsY$cxi(#yyOc6<@Wp#2&IO(RN?7ht2v2R>S8{pcT{{W$HG!G; zV%WW;Q{H$P-Lo*nG z>MP+BQC2=)w-)MshTXpeH>8bFMF2uvG?LAk1-Q*;zGqa&&4A_|A2Q=`0XMZp^b- zP|J*Z*DtjPrp5-Z^)+V`qF&Uz9)k)_d1V-Gjdm&{YnCHw+>QDvRnV7IwV}?n29LoN zp1qD{r%FLvkGOWM%tTsg9W$~p863t+uRU|`Dd}Sc?PzQ}#oUp&u=&fXmlJSe*LPJ6 zVA>V#8iG*Etmmkh%lGWW;>9^Q_w*F6^0eJ^xIHiRJ~B3k)Reo2g(LQYX$_4HjA=cv zzP22g3-rJL(K+3#m z2RR%z)?;)d)`O*9232H}lQOB`1S`P!%8I{~s9f&T=6wF-Re%SlL zA|p+a+lE`IGC77fds*ReCey%3??m)P#Gt@qe2lcHqlTf80~40&;DsTU#*Xu-x@&gZ z93lfAzg>xT?$I24EEK&h%ajkDUv=kWj+vLVU=rcx?ue;?`BZUiC=jVUEFY5fbyfw zeGkQlvrz>0S?p~=V7tEr1Uj4C+NMn2>>;zXWtoQ8?Q$DJ^GN#%VcmtpqE-Pg=@358 zxJMGN2cO86bTBX2edWOP&Ol& z2LWLnPI>o6TR4l}T&oJuOTc;&u$mqbYw)arL6SQw&`qmU;d0lrAKX;bhgA&lWtA<; zP{pQkr^2bW&t*Nc2@EeQ)Y;O+O4xjDy97+Pg3gml33Q9Hr2q9+3%qXU*HkWMO5Q!MM<@s9A&=L_q2%I50|2q z<1w}-hr|jfWW;HNVV=jTN&*VmRy3KbvQ#PidFyP8l`=}SC z?cPEOOIV6TO|Mm7mR}Fa7A&;Q0l8DB+R_29lB$Te-P0RLsvVXnflC_q*HNz7z6|Lb zbPN%lRlBivgXDCe^+p0btR`<<`58q)6q_(tzI(akv)6BSUyq7wJqCYrFX!>-qJq4o z?BJ5F;p?hi8Xy)X%mc#Jg%)Xf;@ll*6XEE?2jY^WDgb$fudOej=)D1)n`wLAk7Nl- zU!PMxuw!oFS1TUIh)|Q;$B)%JfS6+H3Rpazo?4eg^D?893_OHbcNPqf?j3wOl>tB| z)TiJ~uTzNq6_dOnUMUvl2dJ}4W3sjtvy76+-uwcDlrS6TELNdQT#^gC(|}ytEI2;3 z@-M9-38R*u;j0mIK-suS)rO<-*V&@4%rqI68E~(trpC56ULX*K zt6;nS<<-El3barS-YGYol)1e14A3zaE48joq(@XTI8t5SZ|gX^b#DEN(L?ZIh^k_n z(NG1O~C>gHi^Qw!Okv_8bc2$-g5fpk2lCieBoj*~9m!1UlbP z4QQOj%T`xob`5(W-GXfFcyY=R{N5-r3D7345^1`FIy^cRz4j4^0mj3DFy9(J+Innj zV&X|bZYQw@o>C(nwy8?iDvji%(j?qHb*e|LlZFD$NFa61&z>0Lf<1i|T_}?~1@8&f+$r?| zyohe5NKcYZ>^7C$L9{Xov?A#tqv&J3pz(Q!_%JU@>rjal8M?%3r9-=DIiJQ5>7`R0 z%)MJm-hKA?aZ9JVIyJNem-$O5x>N<;drmG0i~ST*(ZoI5vC;<{z3JtHA(qMM!B&qq z&ml&)9>~h`doi6~UZH+@)qYeOuLj0sFQRj6nkeTO+%qJfFr7XlcuW4O`jNUhthtT) zkas^1W1-U|%5<^Uy>-MAM){XmxVbVX%mK=F2QOSy++0ekksU^6?rpuqTjdaf1#3X# zo5PunbU}9ue{YmC;vR{JI?-F2fsRzG%$g&jrhLfpv`0+LUkJGm!wj&ETFyCn5Lj!g z5zt$blv5q5%&Da?+I%FaSthUZS&ke(&EURKLZ`A(--WdV)OKNThQZCLmnc5&8EYMI zB6#a!jYcZj5>=_ecEsZJFgU=`Dk3E?%sYc+c;M)9#LUaIN2p~@zB?uD_ZnQ#B}OZw zfTz`NiYu4LUZpUssywZ|rMoJb%nR%-CF^6?cw{Z}ntCk^z(Ur-B)#>b!77AQ6nTzi z1vWiqF7D(g3k8%So>gGj3ct<=;JQwcSF<9-(+J8rp?AgOZ!@shI^Fp-7iJid8-Z9s zcJzv^b=VMfgWlm8t9T}P-3#B@ICRa^WtUL~@8o1rRuA--BeV_ooCJEtpN%>vE?+Lv z107I3I?NtX3p<>pj9G_}8CI?oA1NB~i-&Y*7F$%5b7=O?=_;FFp>Ik-cl_#I6GM4( zia`4GIa*mrk_5b`yXYd%c_~TT7G>Q)bC0pr@MwG~VUr3{#JirPLkKxZJBynXWq_^o z3tP%JNOH>k@HNWxK~JkbL(>$$(}vmy55@JhauOz9B3mA8?=;a(T}GD&U7-zWvqIVS zb{M`5NLG%he$YeqOC}Dvd?$SNL&0}#}*?t#%rb-PaF}m z>?A1nNO?{Thbcj#wHuKMky_Mk6q-IO$i2vDZ`FUQv)c2f^DT|g>7K55`L)2wfSpYL}9)qcGSjB<8{L8FIUuMBH3p&1MosZIq=+^SpFHQSs zNvyjDQvq*PXZyRg2jyJ(it7QuKL-z8 zS65Q#o?sVq0}jaa+@+i6Os$k8iePC8dTt)PYcPafimJP%R(ggwOxP@U)ZGDZ2G!pn zZOK*zD{n)+4(d|c)UJCbfu*=wi*mgMjrOpZ#^;HfDWU!j^iJtcY{ZX}h^^=Nb(!dC zl3Xu<^B7mAz4TtBWej-@uPNg$nAKC`_lJ_xa!ESW7xqZoW<+TN&iTa}L1Q))lfAT= zE<G>RA&j8ax*wC-Gc+R5PLg(os*a@%x~~%EJSBc7>Ge~?;GDN*6!Z7 z>~nIYt=`5ifk>`1h4nNBA6Rg>$}7Tsm3EZ@U;YzzrIdMth?E*LeOVa<5BY#sZ5QLQ^9r+KtFKxH(c}ezTpq%)$`i(;l+Iioa^~m`jK|ok zFJ2_@dl^&nz<^*KN+rvRvR-5~#h}{sHHZ?sLJ1V~yMEzXKv3)_*9XuqwZ`viTk~wQMNtB| zfsrw+P%1RGhi@|V#PxN(a7#d$ouRPv=QR4F#}K{Kg+vA~JnQgef|Vmt5uC>8Lo*j+;rQ%i;H` zBTbXg8}V^tmmIu%XU}bk1w2v;y+h|75@JdCBji%Pdy5lLO^=gK_G}|w`|-+U)PB0< zpD)C%ZgdbMp{{!u4F-p4kMKRwk>P5LY)VGl_MY9f6vL$@*gVA>==T!twkT|-%rfjC z8RfA}saEHoa%J|jySUU-29Dw}VzG9s-FMgYfH`a7aFFl?F<>d|yKV3o&V7#|6a%HI zEv7Txv*rZajmU~e^;n+?YJk{!wLQE{4kqdo3PmC|6o*{?-Dv}k*G1de)8sA{%9MRV zSaZG9i})U`JbJpzr}&B-pvhMPY^Wb0pMs$xa_BioFvgp1h`ipnS!fz5moyhyi<$)( zCXrw$JcRw8$}~aESjToc0Sg3e3WJoWD^{h(yGP`PHKV+=jNxJ?JC^SdLfUw1I#DXN z;;3Bdai~qXdV*6TYw`q}l1I-p23xPt#Orn8dblQ#oMcn_=wU`~ zsm{D+97ZBE&}1j>%huE>jeUb+#7w~zLsAlCTzGR46z=y9y#jB{O>Mj936*uvdvc-k z>IJ?4YIkWiXgV7zfD9rHgK&LoHt&izu^qa^JNhO<7h11e?p4VHuaNcPCnDX$B_2*O z$xKyU2Pth8MZ9m;SvS`Cy~E^uq*-lw{!*&?Hi~PUoso+~p~dTM-;!+2!&Vnk@iuAf#F)S9h?{sqEYNlPQ8H{xYkHJBVrHS%UaW5 za_~`>AhZKbn=iRUzvN=nlAey+5UhEMHI{Xa1SueF;#=u{GwL_a`(j=}WRq~%JS~1* zYvq!fueTzVlUYBO${$0SdNd-T z3$qEm_7T$~3K7<>*G#zaf{2{V1JbWW-{~}qlnrzqaa&<6Gl|YB%hnA!9_i}<&@)es z^?2bB@;r@KS=Xd_==Ff^sh6Uyw#?IZdF;>L^>rUc=Bv?I^iDN^z@ZW-Xv&wFOL(<+ z9-QbQNXNT}M&fzEK41?mjs@naQphQUsO_e|E=^i0M}yN?doji4#*0TB*&!j!B!+_k zz4NG1aED*SNp6R^2{LWtdKr7hrS#ib5%zMERY)S9@CS^s^xk!(dmmgp6V)y9kibA~ z9F(Y0ujg>)T=P~FV7SdigYWt68^5|)0euyC`NHx#!5&r^1(U{}qgctq0$-GFp=@7S zQ(v8V0a6u<#Y*g$m*K&TeP9l~S{S5b7!1SPPC}Uc*dnN&nVjH_ z(aR@mbaA0l$?t(^h`kg~0K&z|f;^&4c#Cz5>%K)p6}IAH7Vp+d-!r@?8f}(l`yK}I z^krN*7#(lkOYwMym4&sFvm7^%-HsT##gNF>V|FUn=Wl~}Sc*ILgx2(qo+eBtcAU;*syn9# za^3Fdh3~42IOEnHb-kB5@+QROT|I&3FT0e#?2?wtQ@uwE=MS+Ttxq~RC+{eDU`pBw zTv3SD>&mpaR_%PItgr~cC=7T_<$~VI0(9uMiCotq@Jzx${?ZHE+m&D8r4|gK4dDut z3m}vczt?%DY+kd1);9fiDy%)ni79C3)UcY}7?>+G5u!?*(8X7n zAz(eI-fni;i@YaWAk!;Y`0xdHgb}eFHjK@CGUydgL?Eg*xOuh;8Vg;K``)D^Mj2e6 zl*B$$d&LHwh5UfVL8>1;p?VBghG*-k$X>5;`fJ$~@w2GWv(`@pL1%A`ARiUqcW2>m_7(TahXcb#Z>gMh}__paF{P!wYt26SB1 zn%CWAfKX?nEgRPcO?*Z|?2$cp^|0sE>uV-Lp*Vs&P;Pgf&udEUaniemj%0XQ#kXT` zdIXp}))qNH6QPhW#VWX|p9#~Zzt&fl%( zK?uuE;K9DQv_}L2B+0QT&+lw9cchGV+ufC>f$$|D(Tmv{;_CwY(#z;eFGID(1**lg zPK_~lRXwMd%e(i24DU5*N}u&ENOk%{MNpllCA4}E=A01WS;U-(32 zHUIQ$^7$MSW=_3H4LT0DMMK25DD%{13IT1aZosP4r|4XB6I=5Yy25^@MyFGd*d%PUu%Oaq#(;BaErwLCLMN9C3c+9~7---PK$ z`4;Lnc?~z(PdrUf%n87Z5*Jtj`~jf|-A*!TZfiW&g`0<$i(VdFYSYihR=8BD7X;H; zUgH$Oi9krB*@^p8l3}Rk;s}*yZ%#z_5N?6FT&9;u4`p^2ZtDqqW|$B^>QNWVJf=Da zHbV0OLmo53Cmw!=A|6_>#%PDH zi*efc9i<%7lXvLCyfjKLlPS*yCHVOfTV}8YQA*~8*N9TCutbFluAD=#o8yRhvQA<@xHR%+x7Lhh<<0s}?Q$C?gAP^5*tji*I zCG2H>`Q`BC7v1DToT?;yge{Lk5H44P{ooNonGU}-W*=0K1buE+I>^nZ1DhGzC;)=b z@NCAD5#wx9n*DXZRioE{S2lkMrV5p8co~e`;gW2H!RWvgl9TIRjg`nUd&OWms)zAv z8F!Z#&T!D=bZ}Ifi^$R=7KWU%4S5Cj0Z`_-h895D(^Tl_zTiPw)+u!&uSDa?MKQtW z^DeebyHKwnQXusVhzWE!fyiuVpyVBT^!T!@%W=cyT+)*ceHp3G_>KGT&)OAH$99j{ zy?6nl*v{%C60jzyp>)k~-JDA;A$KRVC{_~-5z5sInGvL18nGL&#Uni)(+rC)3MUMu zKEJ&!cp%!ZjX8v=m*@Oo{8@7C__L^Oc4pf zBjd~oE#hQLxxpwRXI&Pjv5MWR(<-#m4tO{^i;B_V9a>dz*8!I@E;5X(>+bZ1@D8RS z)vS5+!vi`aJXTv&>$g$xMBP3G^Dn_d2H7|zvt)>gvQw8G(aqmWC8Qb}xIh+6wHb4r z>%h4k!FqCRi?ikFSzOVjRt9L%O?o0P*Ge=(qZb9s|1>NH$WHii>*+R1k=DIYyocjB ztPOWeI!q7?H}4|f0uJO!Z^56(Y z(3~1yT4doswTd9p7z^+V#F7jlUfp&_qMpe!pniPm&aiGSX~0@)!K?Iy)JcmCd*YP( zA`fU^c!OEnxq{mRG0!1N=AL{p=ZApZM+ibKbd3~hGuLK~^2R|usi4f?Grbipoa~8& zdh4bv_^7twUQbeAoCR#oODN6j@SU#W~e-V&d=N@D@6g)vW4M| zazNM?0})6sS0U~B(;F`9y))qRq{>bieU1Wb@eW&yZBXWt<%}cA+pbYtLlSCFgP-NR z^Y(d@@?29VOh_oUdYt=$Mj4Yk(L~U!&K9*3nU@TfF>sT#u8>*Cg>W9tr9X_@XFWi= zat3yev+MlGdZ3IOq)$WmZLqWVD(W?&pFILCd~`r!K~g^PrW7u9;qj2A$|e+Tp@V2Q zYe22}L`@gZmg22|M~mlp5BL;iM^aOPBkmbKh$-}k6FUfx5=m_y3N7c<5io7CgT{bh zTuZ@Ac_v#=q`DuOsTS80341ofn>{rrMSe*5LvnW`y%ARRh`JrN8FGz!3yPeu$_S-9 zR#{4AO%+VD%m>&ECkaac!|l9s)TMQI89GiuK_>NK&zE7LUxu||jRoT|&H-~$kfq;= z6c?-YdjlQ^;hstIhJtgZrXI$_E?<(bk5=oBHZA#P97nq|E<^y z!4l%|drkX*5mU#bMIJ-i1J!z3m@6{TA;@%zyZCm!j6%V9oR)b^XqUo36m*=PL;N(B zq=$4KM9VF32V)dgu6*6E#_=JJ#*m7khS_Vz^s|FiS};9n0Fg;xnpv=MLZiCdt15VS zWhlbh$rkWDWV+bFDw>}R>IF1omig0^$HEI9NfLs>a!@bQIqp&9hN$OLh68^T1x(~% zStzV{+G>l5E9Ly+ctG*B6sPwhWaE^?B=t?>`K5U)tb5vO!x6jZZ7ph5r#kGaRLNt) zrD&(;We0=Ltra#~V7vI`@g0~50Y=pBLuKsb_wLCkRp>37^#djq0AdC}UrufnRSWdk zPJMFA5MadSe4>b#8MhWKoz) zSM8Djpmxq+C$1$_a+rBxh6*Ixv=l_3i!KH^0$qX&MrjFZj$5%tC-@S!2|4g!b+0T)-36m@wZIhWEzUmnfTpUFe#t!9QBbf)g~i>x4<_y6ozSSL zA#EYe^*v|@vUe-#$5a84NgazD?Sv7Gp5@|;))0fgs&N+F# zComW0Y_maj6uSE2y=yeydH~TP4t@Kg%<7&*y2|W?`@AZBNTRd4Wlvk5X}oE%aHimJ zg-9j9){V{{GpE@#t5?HDUim0t(mjz0sfK_lsC4%R+P2Y=%K&Kny1>I^IHQ#i;DQ;r zZys$O2ZL2|tA_Qcj5R|D_L>>ftEn=DGlZwK2 z3Lo{CEssXid2s%qa*H}UU*%4sUmz_{b>T@*U&e{jzFI0kC*3{igK?NdR8v_PR(nFE+@8@$ zOlLgd^W@CfsFUZM9WvL7M9YdAjn@bn32~Qp>%y##Am|%o{Y%sM*+i znfS03_hI8Q^;{koPtS@)K3f#nt345s;>Iopelh+ejdFtV40`#7$9Bt2!ywSeRSz!SgbMHjGk`HU4x%mS#)$0fd$?Xx zm#F%fdW?e8=qb36+oNiiv23vi*3Skk8{R|!L=y4W4sm@h21LS zcPd7WKu0()gU$n-9}C9#S=ba?U&X81NKwm5$GC(ir@WMg&S5u>66$B*8lal%Q}K`w zKw0&w<*7n-O1Da>xb~Q=IFn6Vy|clzgA@lg6MEb}5MV6om*>`6e5C+3nrnyy;_>@L(Z5LLdX!$Hs>mJ92B0YFrWYlmtkRkMt4h8pW7Io0( z6&+QDQ5-W*L19I_)E?Rld&3VXaLBZaEyfS5;ueVRIUB#N*C_E0lp=V@<>j`L+N!q^ zUr6kPPs}s~#>tx+;U%vs@?1ICtm>!fxFiXL#*O^k)*ChC!e&+5xRRjTw{c76P2M0| zdT?eA7r~q*=vI`PIxD{C>Ibx0hCr)hn_iV_UNBXMr=z1eaLJF6(oRjNnT$)b)Df7w#KX zz_ZbzM@r_19rk)Tg+hzXsPpaKmP4vg%@Ll!oW(twqIYrj=EW--v55o-xh~g?DBX*7n^w+69~={HeZ{u2uaqV`#mo!)+w2>tOo&lmJb&S9?YZzw3+G_ z`@(S{H5>PnC(IZw$M8&dD&m?Fs;Dv}C$~8oPi|f+@UBnEKnv#C&QLs1b**P1DsO2k zYiI+}%RF2??VRvRs%5#)9X@LEpsfseF%o z)>GBl9;~sU@nb175L)lvFqN#FIIEY<>rE(fDS60O+W=GqHMGlUr=7Cp6#{PkcvGl- za5{wLofZ)QVLJP&X_d(i76%CV_$?ixkD+-M*?PQr zudplQs$Rsr__WMFUzg3qyG7RMiP(VmqD5r9%+o>2eJXL9l4(bl8n*4(oq7?Aj>DGA zA{z4LJKwCU0G-!pq1?qMYg!bIrZNR@0&AaL|E1Y5QwixV%tBh2WdmQd6YagH(L=qH z-5^<8ZHVLt4N2!CO`_U8*S%}@@@A;vJacI!N;E=_Fft0X^!ZHSKvT94Vottp4onFb z5;4>^DK@^kcCqg8sMU%u}+;8rfCrmZv?~- zM5zFDoe11!e8}uQPhAmd;gqLC;SWc}t=K}*BK26>V>;Gl=7Czy0l$6S0UP=PM*&%; z9@d(f&nW|qIry#a&WjAGOAF$PGhcLk&sGHTZW;PEq75Q~ zx8fWtd68RHpS{Osk6`zuQiz1f%Dp4mdOLZE%b?tan-kT8!MDu9&RA$zAQ% ztwNi*Z=;$0c^X{L>yS|65tI-I5VlJin=OgkTqxSuFfT-% z-QCgm|k17{o8pChk!RuwH8=#!f-5KK|6~>6d0%``D<2*T^2%RN4fJ+f!C1 z!R8~Z_pYjg#x6VZN%Ou(bO$)}9J(@j&#%CSFbT=aDo#o#?(yQg7j1V%YOr|b_7xyf!D`jllw zUcE6L7o>8Fp~2W^6R%+7iJ`(>0~|q5=rv{vL4g~b%d1C>rEbD8O@oIR7~Xfe&l#wf zyUjA}^>G|V3hfy^+7~7Iywzct-(yo!u@~06F|Bg>tS>I{0w{|D&U?AHowAZe(t=A& zYZ-WlxJIBNIp_^=zr*Nqqy-qAm`;EU&~3QK3Wq$ed$n&9+kBk?8m{pvCZ~cU)CuP0 z>m)4nwmG@Esu{mVH5|g;V&IFJX8_I^J-1hfBX*W$s#3W(0?^M>vVeEkmg|vdK>^Bu zAgUMzF#5>ccJFW|+a+>F!iK5dLwfB{DmM+*wL|R%Chw>ScFAxMhx~Ryy=GqXF-O>A zeT{a6r;xG|wS4vRalnpSCK^O4DZf>@b2IB1BF;V11LL3rpiF3`W&gWE5 zFASPJRH50qH_HVQA0S>PSjQW>ruAjEjIe^bCRft{H1tUIv00FwISt*4cjXpzBt>D7 zJCmE1@kBgo*-6&lM%4rAm%8rbuPO($QY*?KUMsf}Ikm80 z$nGk(Cz5S?1m{Q^Xwo!VuCyMi6q~8YfEuZd`!hZ@u0=ZWd@||gkF|#V38KlSQ9_q2 z!7-+$tqTRt1%hGyCJd=5WGF2?skEXS6ZK#UKlXMkft_P_PvtSZS@-yKtbZeNqcyLapAAq z{2iK-E0M1RsOPp4V-Y(zgZ3z#+DKxSfxj^q4(G%(cu+P5Ff#1B*IEm?$=VJ?BP#1cTIU z8M44mNj*$L`FQd0Rab9CLn5tVB-xTl+$jp>>mBQgA>=M5JxXozS6B=b99A>v_8pGxns^{Vzr!g-xQ+`JuHZK$!DcU2&> zC!TO5Pa^CdOS>wt;96IYzgD81f${WvF#gP{9@frY32TQ3J#2Z*R_18g@0@5Pw4{x7 z#9xed`{}SWJ2^hFb$dwt-YIR1`V{A$9R|;;h2y9dm8t}(i|Fq2xscoD>c^0;D&)nM zBEPzsMyjFr>h9zgjNjy&_BgQ_lt?xi9e1b7S=Hr^HyQ#vK-$I@>gPN=>g0TKKpAJk zQSL{~H%*H5xJI>)?j$uxL?ywiJ>}fV%_JqCAX|&|J+kKL+hhyt#s`DznPg6)*R_nw z1Xrg1RtHiFSvAFV!yB28d*q7D8dst)K1CDyp3vIO^mQ(FhSzvYIdxVFXZs`9bK6h^ zB+unp_3V&2*+faWk11iys3u++GfdrnI;WD zENBV_J#_RATNb4VGf=U%lDN`v!lQOPz?^noY`NGzlDs61oPu|Uxo1PVE5xI{PB_%g z)cgi6kF6AFMan|q3NrNh>ZFs=WJ&pyIZtNWgF1M@Bajm9R!jsA7-$+zSOcDq^0-M~ zL5yPJ8`vf-9UOg0dnv_N(ZhtiXdk| z3)-d<^a`Ohq2xaA=67VG6YpWc`{|U?dwx|nPeC)~YH6hAAtR=X)oWjiq&qBteZR|X zl7aCT;-x%24I#wn&-T5y;>(lD_ex6affuR-adFETh?-dt`yMku?OTV_h^tq+4E?ln zn(9h`tIf>btBjIRiE~vPv3kO-`r^T@dJ2jrgLx<76otaY_({^4;2>#^7$F= z@^f&Xkhf?ldYD>ZFcdqJMF4}nUNoLfyB8ScGAyDWA9dcj*yNoDZM zG=(qIg3mgAF@@=I>&WZ2$5n403ba>x%elj5`H|e3@wD;Y4)! zB+uCziQF`KV;Pl*q% zs^#$ks~yCeNlle!S7&>@Y2CgIx+hy>6p7UV^z_7X9^DmdgGk3?qn1;_HF6?>+6W9>RZp$Vb41dz!q zcanE|V(PdGH;FEo=-YTN~w3{T?`K za1i2nZ*JPNEw{Q@9S(}|S8hvg?QZ+1R4)&Op_E&m#H(Jgm$_VZhIrGKr)yns8_$Q% zP5E8(WO3Rs3IobIF;OEcz%no60LYX>S8-F=d$J3wsQYMaqf)A1+^-6xc*G*+gq4x}s_5b=kv+yW1;LSy7P1GUI$$yf89TcpSH$%mQww-DqEcxE zs^-YgE~kp^)N@T}-GW?`1PIO-;Ko)dPd`=jFV*nXkRzV%Q0W2RJrBv=9jiT`9+oX6 zw7_Z%PB;f8(7NkaL5@xJzzfqTdI20UW*(?+JoD`77Rc~)S^|6S0Hr-sE4QJ+IXZv2 z)_IBUTjM?Vg0_6s%yjg`_>2@Kt4b!HM1+8`!WGUFi{~eVRp=Ta2=nC4E2cf8HQ@ba z1SoOW_Nltzkr&BXxRG?e8)Q41q~drK*OCCsu8Fb1DrHWEXj;y!lA#CwLhRm%2-0cq zah|LPB6zX-BW(o1T@;Ka1i>foa5E|AMLt@|xp@Gj!zG%;;SZw83SMH!ouqY=t)TNh zqKYzq&D^};Os5)B<1wP_wGb6#5itG2VeK6K1w996SZsa>n`&8SG*K zzr57a9?fTzdG~Z$oPePouL~i$>_)25lL6Gu>tOS87^^Vz&XY-A8+4VLtAIB9}TToI|3FHx=WU+iv=JG-#Q{!5Xp`f-hnU>@ESDCQZ-=sr^CN8z%7= zMzjqrNpleI0Jq{Kb!fq)bJN>0HL5*=^$n~@J4$GP9TuEp<>uPsBEH-=5#ctH2kQ>1lt-h9Ef!fDWkd;gWkkk;zVDQbcWQ$a4jS z#8jcY$E~B4EWj(Rj>qvbnX6nQ!uo)i;oXLyB2wFI8j-Z6%6hSmWdo=>LZsGp46{?JVbsi#(Z5G)1n3Qy;AzP47b7erRNCQ$rP+(%T@HkSl;GMZ6p;L4$?Z3hi#UM z;3+&GeiQm&or52i#{oz()d=Fq?!BHoL{A^`TMN8| zYaUMObfv(@05>8a_y)SSIoVAJx8>D)!&gHir-tv~@LuC;l7}=emFTzzaOdpX1J2_f zytkfZZaV94@I5rx7wG!p1l+~*JsBqE_DT16BbYYYIg-SPQ~4@n_f^QfqHUd0Ay-dF z@w*&*ff3Etk0z1>EeEt`3_0xix~LayX;}gZEegtWavdbf($rK>t;$Lc@dhzclC@)h zR&!x6rIEpJr5#o-dq0cLRpPIvy{(0ymwX zuc_BDt2riBE=Oyht$5rz6t&(HCC?DEZoB|GP+a~IKSVq<-g3hYdf3*RMpY;8!bwSI zkidJN$u6J7+ntMdMu6B^PL9BlrrUS{LO${`X+b>d0+=Dd3J$0R6B8$ro9p4tJ@XXy z=27Y8ty;6<3)#q}$kz*Klspdo3`Rq(j%;R%0#rn`s2_pcCN8<*sgcf&UrB9XL_b_J zMX3XYeD7Y)MPj=Sfi!XGTx#$7IV$meN83Ay zCh!hVAd*f^pol43-%!ePd*fa6^1&epm>=YHy1{gSHuPE7B8D}-hE}<8Hmnxf0UL*a z_SbjCU$zB(*#>(_nk{M%)uywvTp=FqDAK9iag@VlVf*?YJG{F)$7V{!6z6U|OXodB^-f>8&spO0QFl^>+ zR6Qc;;ex{^W#i{4eOC7@-rMQt{SsN83+*c+Xc-}Wqt;Got8|Sq#2xjh5z z>4#}azTqbhPtmaI`Yd`8T(KMa9zQ2~5yH9%(DJB~RsbK8hUo&enLmuT&97~rT+`fX z7P7yyl9dqYz_YWgE}_In3D2)Lo?Ej%S>sCBQJ4A6nx(K02Moj7&Nbni2FpkkQ zHNW+1!3&>C)|whiZrvL*SzPI?;P!3@sL)8! z=C!8BIVb|1$#dfEJ?`m#YmZ{u&pO@&UwEZ-2~PPb%1E$jJ*rv)M4Z{OY^})lKGi;} z_k4+@W+#V}S`M0m(ZP4EhK5#R(g2}XRrItFZzV_sd?iVBq4mH*-s`YyxDt_AP>Yuv zb#>cb$MX=`{AHgGtU+WVGC$G*A4XZr>vS-Z*(UafZ^LQ!LpKHZoZRXr-W$BJItk9U z<0oV`jW#}#QocO+CUoeO*9^021XI#;(->>JYo^ewdJ}~BZ4JQdo6U8z?&Qf}1t~QR z42o>xRhyiMK6n~tQy$td-Uj%PO0 z*qL?q9zz81TZph@)~U+PLQVlAg5IZlh=Ak^Su<}^FMNpcEgRE1jdAdMEi9XrAtjszTgFgnb6W72~VC%CcC!_xOW#uWmL=O`)(Hk%Z zkN_2NWZPBr^Hyhg_3XV&eQ(a}_>7+l?aFJ?OXVTKhG@^}h}?ano%lLiT9fN{9kFyP zxQOGjpwMNy@1c?pa4?}>(K8RUfk+c^Qkn(G$1;`+q}6Tly!utci;WgYrSnV6EXieF zuSmR3D3#gw#nUIUEs#~|iPK^ZH47ULAvK*RN0>_*4$AO&ZCyXWTCZ zFDv+>eD5a}(0#3{TgZl>Zp5$EnT35AjzIaRw% z;YpY5l-n8!@Vm9dtpUl2<+=3s@d+xsU{!6zm}SF9x_D}DQ*9?@RNLXn0$Ub1iY*d( zaX~zY!$=_Ty|r32_og#@Y^}`2FF4*i&3uc{Sdrm8NT~y@zT{vodx>~x55-}$4Lf{v z^}2dabVg*{TqUPo$Xei=9NkFXj^~MEOE2&Wu}=Z)IvQxx;FwEor;tFWT^nFv z{BGhEJU)NWAm?J33hLvQl+C0;v#oUe(9dsm?rA`?!?NEpXt{J;Po9Wp1H&B(AeJ^} zqrcoqD}WmIMJ)?62(JuADmExvI|fvONT7ogm!@bDF6r~EG+$d;LuLz#m2hCKT&jK) z;;WK&mPwHmP1|0NR|spK0-lM~FzuW|!2rvP;W~ZW4H5hn8p#z7T2#ft(izr;L!0-_ z0oT)Bze=W=6p7IX)zsU@5f8H>w3Hz;w) zYvx3E(358qTJN6FD&`!yIKn(KadIAtT!lM!7LT_Bws~X( zh!#6BV$9BO9dV*jsZR{>rCmm54CKQ%%&oO{2O0tjYK~U7We+#+oS+@aR22DMW4@QQ zATT{EdLylujmb|?mQFga3Ls6U=u!|_GJ=7n{0vhgeD#*Cht-5*g?*c^_%*#XlVFyr zr^(D$(1BC$A{`HbeF^&>RljAjRD_syzJX0I0PP*~0k5(aHQ!~xEh>8lJ*3Zz+VJtt z*-uj4qBo*v%e8|!ca3W#I$~!jxh!-ZH4s`* zn#B24fL*dI6`4MNr}9lOs}bjuajhpLz+-XDn^u?}r2T>baPtVzhn+zH zRs?{JvOpx>z1#&7XtJ%Tw_6e-GdA{S(vc?I?^wQ!BmOdOScPlJz2aUOV$%QtN|>j2 zi?QK|IwS;T%Hy+V)P}v8WhD9hHD4c(&t{5U=j#R0dq|5%;Aft z?bO=2dX4NX_1g0<%Dlz^mLro4SHT{u-sVrL8p-Au2ia)$s1Umc3#eI8$oq#npoSH z539f)-oPHaA9gOKcZz#4IjAqh>eJ8zDZ{#{@i<IEU~t!s5N zKVLV}8|%qK@y2`dUP3-H^XMeQ(~?~@#GG10Le=dvt%2&mx)2*Kg>hzv+U(A*UTQLv z98BV8clpYuZ>cz;YnHqqmivK@<9pi~LXI#*jgM+t9s1hVxK4s&ZRF7;ai(Dr6^m&n z`!-&Y@}O8kZ#zD-oJNwPD6+l-WmxE0k9lrV#<7f)0vQ+yF0QFmZtl(5o7qjy)MgQb zBpcD1)Od;l-2(512~GlFS|ExYC56l5mEY6CTQU$zY1KzOwz>X7Yzps`Ou)J;M+^cGNPrzoxvt<*h2J+MqLi&(Pzzdt*%nB6wo|n*n*JQtMu^EO&e2pNlR5# z?)9x+$T74lhVp$X_vlMGq=^^o?hhn8bXAV(V6o7fq62PY40%T4RPcn#y&eEnK&roh zx482YVF%Ssy5>eeMDM_RB%(x|!Z53QGu26*QoB(S1D)UtKR7L=Frs9}{OUZz~d{r}2A@Pj;Wf)X8LxL)ANL%xfCRv~f zk6G%iw5P-L8+(M6)4QTp76PfRg&c4Nos4+kH<_R&uhiJ=)Dk;0pC5!gxD`j|P7#{z zh7~R@0DEh8$4~I)TFzQm59P&^#uakkF0pXz1x9U=dD5!n8D3&%JGPAM6+SPV zdBzuB;a!r*6FNa02Nyj|E}CR=L16M86b9+cLQNggORw!JEv;u^Gai+^*+#xvq8gee zlwiAs3E>FC0!8X{q!H7KXm!PM`#`hGJ;KzV&tTm{3uK^P;v)|^1Acrtn8VYq2lpU$ z11>MSZH*er(8yynWElW1r$IasW1_icBOA_(rE}QZyoS^jK_-$+9lD$xKp+B{K);-0 z_;St-6UI{RX}?LF>lMo$&vJHaGQOPmv>Kmnjoz_}m#{TXUzW?oV8|^ zil^eFXSM2BQaX~j>EN=I8$Hqo5$NXm5KA~xNAu{xU(&hv3p_UWsmiC%B{=L1E%I-+v`lhz%-sB;?A-<44sf6SSZuLpj2jCzHo#*{D`4P(611pZq(6G|m+TG^kle1IhMuI!C z_L)v1;@)I?Z;A#JoBX`tLDGX4H6X}2>fjD?C5U)}oCtf{d`z;~fd#v7>dv71^s%lU zE5nqd^CbC=w>}gtaw6rx#vm$JB6vry-5_b)x8zPz8a5=z&DcU4g;DF3pk~ha1OzxYmbdhC#t>9$DXzFvTXlo?w zG^a!+@Q{rqD8+8xySo{Grov6sp-h|*sg!cadR@JEl=CT_e@V9i#dmu=ELLrXc*mJW z^stj8Pm7j7&+A-b+{DWxt>^u?Et2O0I_a-+d^6u7HC74lC*x=OVyB*hx?*+_r{{nW9VMGQye;I#GC`E z(veFjY^j=xf{I-B2$+zME3rMLm$_lEB7tb?c5Zo`;n;R`xD1I4c$6<2)?=`hc1*CM z&>TgM(&z|f1(zdv#pRfZ+QiNSa~Oax6@5~LD_<|SrYUj|S2Sdm7q#|mly@Id;yy^i ze9!1bP|m(!ViIxzc`_-t#|LaZ5x#9XZqw#GX=5UF6(grT9lJu6D1BvzOpz$(2d#GD zqs!dYUWqy|H>qQE)tJojDEFGiQ_&qc#Kz0m7dl~H34~O;xs)~m$XiYVe*7Nl7+=Rv zS~JPw*Ztld6(9Gyfa|bT4?b!rSPXs41=y$SHTf2FNzq3XxJrP5jTzsSuxeBpvjLAs zOM%XAiVrWv>0ES>ruHUMSg1{_ia!;;nRm(@@LqB#Ml6@!vxTdNwF1WWOpz!A#RNiF z4G;iywNG?V+R?Ki|+M#dGKbt z2>+$s!SbQ=ytiI*o>`6d3V0RkiV5~{4$;2#?1!EMIzj6tb8}p9YojbICuHp) z6BqK7wE9WV>ma&@SQ`qqc}#VIE4=skO2W;6&j$KwN5*5jmk~g=7!+WSsYo8y;3TNd z8i^XD0Vz^wGY#MncW1>h>8@hjVaDa@4A6R90c=y=8a2UfK~W zcA`aO#gbL#mrJwKolHvNqh5eQAi)*FmWEuA&n)MKACp8p@w0o+MOOKc&V6DjAXZ;k z_C3x%3w@L~D~9Oej$F>iMq54bwmQ`CUbu9`bXL&qFwBPKYbKfJQ_a5fxC!W);m##r zxW~h?%F>%rq~R=`elh%3b&Ma_re{2f9D56)vhI=-7>Bgl%F-|$LDH*oa&HSCwLw75 z9n*s@)Y1-7%T$^P3XVL4)LYeVfuiU`kEs$uHp_@uy`?e=oBYkBx0NQOliw;^D*NQqo|VxLeP9KC{oKw99ckP|JedG9$Y;)K22$9CQH zsOt{kOFQK+?ewu9QLGity)uI~6Xq3EU2t@POKfd-)R;1E(`DKUf0tcknxhGWmsSGv z_LW|bMQn$$K@g;6?XV5G-?_gf?j&qG2h@sJ6%`BSH5CSLsLZhxb^r1XJ>H#jK;@pX zy@2d&lwsK3P@?Awl47wY0qocb8_l^lRA7H~#&5pno?XwVqy`+%Vx z{Agk;>G>MR!>+u%3D$rllflHsrZ~g$>F(_24dHhO5&(=gwydpu#VlNJrYxZvuv`*y zyXJz7cCRMgaVTreaykwzNn2o6dG;`e5+W_OO*FHy+cQvAMURI;g%R3gho7 zn#HqYopZ~kxVW0#z?ktNR=UP1gC(m7+9!w4lqIfF%JimR>qNiPiQswwOz%**^osnP zCG$6B=bA{c$+XtSshAy7H3cH--;dgf}U+M{Dlm;Y8c>fFfHI z7$2oN<_RsePbSWh8IPV~)Lx<~HkbZ7MC9T$?_ ztjyYbiR#c~0Z*Tjt-fr}cUWv-6Hc9*B(5S8b?E1jx57xqPL+TQ?ko~qYWP4CNIFtl zN-thPz7V2mH{)lu(!@`@?g8{#mKs|;zP^5tn|b<|c%mlWtH5Ob`e4wLn)&KN9;k?6 z_4ON!*=_QJQBf}RBC^uSty~qK0hMFq<-0r+9Rw%1ecp;`YISr2O-!3_Be=U&P_IwD z#st~lTTo1u7c^+nrCV;#c$P`+!Sb46TYwm7m5l9s$``EV35u*F7z4F>Mg>H`f=8{b zE4_q9N{`<1wd2$sYD_2aW4CcXpeku1eti89_$j;;WO&MDO?_x_hmRP02Ldst_d)Ym z*={~w2yWLBqD}V$Bn^JowC}vJ9ZgfNgYqLo3|5Z1S+d+6Hf`6`6IPs4Ch| zQ!A2`+nvUh+Zz(LWAK9w9F?{lSbchJd{ix7+K|bt zJI$777yxyYRlrGB^59y<$Z};#OgHngTP=bMx9QNXZi$i~t_7AoTq*2(FUVj6>K#d@ zd6Dl;1!xwHh{A+vrr&UiLQ>2kHCsLfd{`xi=QoD=C7#2Vc;Kvf0NQultz0J5Ax3U1 z371(7(ouIFL+>Vl<`K6=z$^Ca^7G>Yyth14>`&qi$pOG~)$o&?wac6hMY(B#d1Nk| zg2Um#%Tk$d+Q62G)xDL$OT7^PGH(P-Z$YP77#NRn%;r!XLcEK&{2>Ozh<7E8b~l#T zo{j3j1Y3c6kS~yPQqbrnlXMH8GYm&u!L)=16yA^6eV5 zEkU_ivRK%xKNWUW2GV>E_dpGV9_>6kMqor9aZo92V`kint^+6sdyk|TT(Fqoy-Qvd zWJkq8$5WtiQ}VE#A(VnI4VV z(cOfB-66v7`Zz9_=n&(*(eBlm!%y@4^HuBZ=gv_`u)5F@8Y!-tCxPh{6?E_QL~=e1 z4Y5S_=D_ERODAoLkvg)owGom%j@w=pZ54f;YChn&8B3BT^I{5k(T7cfpx4POc#Vkh zh^LH%wVqJI@?Yu&u(?i`q~B|<<>}BqRBx5Nd9x~48#FhegOm}7{j$u zh>_mY3)L4CqD8HUMC>>=`HWO);Ha2ti;3LLs$BBrl~Aiky-5>&Rzl@ifliyE;jq+@ zH!x(%JkaA>W^nb6??}<_0N~D?6-1b0F}t1-9=wEAxqfDc9!|WVg>O^S!lrFKJr9(@ zB!h|5AXv03m6~4(9wW=>35%kHnis?!W>^)*aWbYqEm(yBMN6uRimbBXQZr+ZJM4bC zdgtU-WJNloNG$nI{P~OHy~JjDqazzd^@448Nd`b?*|h4}2*|Y@WJ6Zid5M;bTlyVs zDfT;m5{?AL8XH|L*YNU|&S)13(azDgyx!}P=Xp5}*kv+Ybb?|&N}gzdbD|X$Rfmud zX2Ii??&}<0Qf_gI!j^tgFR@&r(w3tsI^Kn^#@5z(K%6`Y(djd_7F^0}4usbrl-Zas z1}Gq&zigl^CxYd0aic(;(b>${cVcXk?-k6p#*yk_MZlb0oXci9T@vZkR4@fqV827+ z@=ARDvK9h-g-UJH@Zl=v)e%s^PKb}*RoJdA-b`)uHgr$_mF_P~M=4^B> zzly%O&! zxsWHW`eZN$A2H9DdZAzHm5(SJh44PS5?=D_G=AqiKKW7&ibFp=vUQ+Wa8-Ju zum5!K>L&|<$m_)8a=_~{c~b?;lJ^c3j3Ys=Dd+qSPr#-hFd>h*v@BRy)9IPonC9Ch z>RK2?J~{74Rp*l~AQ12z7ZsEn01q9EJO-x3wIR}F&&ck@tD!x-ke)^}TYOghW)+4> zT24k?hTq6(AhGyOzT@oeX#(OdTRnaZ*Qf8jE{aNYz)XjR^Cb2pd?1xdqqOQVA`>86 z@SeK)>w0vik|Og!(TqDD^Sbnt^9p7rI5se-#~tet+T=JMuo5^@(tGe&-?*+jAqLvo zl%3S@Jr$K27ulOBm*}u2(2;xo)EVxc>#KN+mWe@*1eB-SP*^hE)&LXJ;7!xrxs1DX z9kCE4V;rlGl?)lH#MAvwm;n2!ztJf{enxEBJ@d??Gjxa>D#j|UO%219Kj{L~%? z=>ssHdygOY)9ttgwe_`N3&y~EB26R8mt3WR1~e^lyxRT-o87XC91n=qkrTI8Ne|>e z2O^(gUhx{M%5$UhS4;vSzy)GcRtK6l9r#WyHWx2>f~Dd$SAng;u^+P4sCpq`fuxzG z=(D~hPO3(c4y$+%>g_9MKlMm}EWALyM|j&Hrf;ToRP?Q7=IeYA+1pj%&a*9!BI4tB zM(YG0?iujs3wOk`Rprw8F|9)H?LI6_-s~v|IwYEF^#=iFxr6ss$WP2&VmFq1uQ-i- zgY^*yS*b}6A7?wC^3i?*R#cH>GoH>PEI7jM5vfG6V5&Y;u+o$wu|%X-tk%T3RG z)hT>CiNQ6lM1>sQNdU2&AA=*@*1UH|V!`{u#5clu*_3oQJ&TZ~hn5uF-mnmxM7l`P zB($ePYd@7WU9V?ZT#-8APHr$wbc*>Huj3I4)k-_(Da)4Os^Ke~C~@LIm6!fhYUSaG zN|B+&MN8Y|b^_nxDrsX!+S=W7CsitNE+?xDT~{fScWZB7JYBZEINU@*H$OGZ6Evb^ z69L9h*rv3m=ANhA9LT4<0o8d|d&su&B(>n7DyRtPr5!;USPq-v9gvPy!IZ5r-}dM; zr|FuQG_f~k=d_x_tc4PCw&w`WotqoDLUgIX`3w{(wT_iX+-Q4dj+I=J!N&Z_67lnO zTBS}nyg4f-Sd@!tP|PP7<@Y>*s0MVS9_Hh7;e#`|if(zH(~yf3j#KK5wt6oEM_Xa9 zGM`v-Tn(~k*)C1!W_m!F(;8=ZhzAVNt+y9MdB#!tq7#6Vw4jGJQ%mGUPP}op9G=59v!j zG?AsDmBGdW6lKwp7bfqHQB`o5HGJIwX!;bVFR6Hqj+7^IBybLIcC8qTwgAXqOK#O; z#7D2xXfu(e1xe5afsf$c69+D!M^ZYQDhlr&$MMK`nbXW;jqX3~TQb(3_u@SYe9KR7 zT8fZR>czk#-4J&=3UrRzdoQoGts;SrpEs=@qsgq?0ha}dma`DP3bcBhfQXKqCtjfK zC3!K#<~isGNY7ry!Go-_sIj`|(A2aC28wGkR*CqWr5%=Em7zZ~dj!hm@LsGxR8X(J zd6u=Bo4S*)#j7qP%`5^%>cNegDIgt$@5NC}1>z!Brdm8pp1sC;vN%Xm?0WGi#4|_JDM3p&ZYGIjj z`ja@@W_n!!8-Y@-ugFf<#2KhWEn=)6#4Ai9x+`xuaI%*=f+$1X#uOFL$@Dqc^@UZ+ zuG5*HKdHV{QI?#iCpr?c0~*9)T;e#|tWX66(W4=b_Gm8#XUz}F5h8WC$?zx}3@y^R z?rH8LFC1{CQz_26yN2b`M7vpXf57y(o0u&tGl|}yPD$qa0_mV-;Jwnvtg}}Y z-42i5Y7x!t#>DdT>XSv@ndX3r>1{e`eKL;{OIvxcZ@{LFHiSEDic;5U%0x`i=rjw4 z1p~#;x&7(AvSNSG3ohEv{KbroU6y8K0bEQq5ahD7vOtqqS%WI}n4F;O{_^k22a1sD zG#p(#7z~jQEfYpnZQm+hHBA87aY`LuVZtC2`a9>ly{(|l(e0xAw2$EPwTlk3n2Lyq z`^#D-H5U*_c#jxon=J#c%NvwLz}Azbm3F|fahVPw*F*ipOxZ&x7m+6n3Oi!ADekNxW`SIDx$n_+AX*X;3b}i?ZZAE$4F?tLN*|LPBcSv+I%A- zE7ED<;F5LZ`N5Q5MD?k$)Q;^?8W>Rq1!nTCMwIG$ok-csCMk* zId_T_zkF&2>x!eouLQC+`9)TP5lOH6@XT~gkpB|}{6 zA>riHYm<-a*aDq@C$gPHiY4h-wQ z&L+a*+i>)F20=A1TL|Oe##Bo29c|e@O*!`K+Sl8yCJYzkG=f5Y14TkLKbi0+lOAMWk2Y2tu z+s6-|2j?3~NY{evGks`Jl3Mjum*GgTH5Y9dGlo-HVDb@Ext?9YdxWrjD?YtOq7UMx zw#UZq-5w3j*#fcMh2t<}lct%G3547O?RIzi_M zzk}b1v2#LXks2PW_0EdFLOJId4Y##|o}_KN0j{gsDBf~KFTu__8Nb(oCxm-c6j~^Kr{arFq=z<#$ZB$88}5l* zaR_|zUX{A!%b1!B%_z5{&08Q(YZZL}j;ulbrVn7^!20efo&wfU;$_FC_?Ylh;ODes zeNSdB$DRnWJ#-6YRdBq@1i8snQ59yN#ap#3Q6PaNe76cGpc}hu1ed0iXG2MkgCwl( z*#f9V7=+x7K6a?fJGBPqot9c{sJjb|I?yHAFaMr?`3FYVK#yTB0#Pc*=zxglPK zM4a|DOV@MQRo5=r0*rOgtf&!LeVm1msgxlI-JnK2Z)Zw8+UBU#uID|9Q!Gqo#_e>= z_u5ZnlCLU9`lv|A$~XK~JxscsZ4-Kb3b@U@vUp1IWII`agL6i6&!(`k{mDCg!p$8| zbz?=-M`{M>`Kw6aN)ED+kcSnhp`bnCR9Z$sHnjZS1i-ywps|zc42yckw6xSX=fjKo zl>CY1*0T;q#q$i(@JG|+$;;udSdbwltt0v2yM0kbjc6>dX{EPc!|+HWY7{W-!)P-@ zYCyw%?A8)+8%6ZWP90C1i#4YMsj~7NE(Ua|PC`Ae_dK#XJKykTHz}}o8#dS5MIqR9 zPAvDZw0%*rH!ApG)=z^I(($-Af)kE!u_u^cjEZ2VmxiPq(Y7EEv@J1ISzi?Hv*50h6BC&b?VMR z)NGIF+&!aNUs{|e-6yiPj@dF}Xw7jPRD(rK@8OmzxgElyj8$vQZuC2ZM~zAa&I0~+ zRNg#4GB7qlIH%=zu(`T5*Lf5=Pa(ona((T|^_u4{y+>!Jdg(7z|soLZ#&e6;22sKJ3bcasg$kB;jO3glPAtx8wS=IWK8Fc!NEhD>EvQ9z#Ym^b6A&p@RE0hV$u(I% z*XZ&Gi}KbPMh}%|vo=6QLr&W-oT|!(vg>+mHr_grXNUR1nD@H*ymNe6hl?fXpb#mvAO;7y{2Jt21 zTdKG`McroPDu^4^wk=V5V8_~EEP$KF=-0}D zm>mpFz9vh^N)Hz**yHU@!R&;wxrMIVOn~0q20eP}J)rh3LUpYkQZpZ^ay$`czopCF z#PF2UEf!!HQBYs0@SkJBPG*a@0*ZUr1>~h@>`Q}yUDWw7ntdN*L$DkY5-y~EZ~ zFlRciAcaJh>;*DJffY0&bu#nP25DX273Nw2kkF|=ygQDd(N{@`EI@ORk3F)*kM*@* zB-ZPi*X~b`JM#gSy{F^TLm~~P)F?~*WuVZffjJGO8gCVwG>*(ygE=K>`~igHG62!} zi)>|nZgtrKt||a7O+76xx5-v9v_hkjR1|5`&wv5MSZ zz1}M)8#yF+4=7^*g&v0|Pa!ejOq$Wixp%UV$GzDyuS3#?$y~;nBy(kGe2g<7kTW0DF!=#Ftst|^?m3h-CNstI zIzpSgS6h*7)jxI_moQ7<2Pznf0TGX2!?&j9=NRa~fp{*XAlm z@DWUV))TnwtS3fVBC3|v)7I1IVhW}u*O{fHtZu_$^Jp6eQkv=Z+#{Iro}QIakUUa% zSuC}Y7^}9~Cv@)2$K0>B2jj~!Qs}p?25JZZ(NU%;+t1d@t=}(obulD(^>w8DM`rh4QxGz>q_DQ6;fkldC zAk?G+D6C7#N$HvCfl%m+iSFf^zZ@)o!xwU!*S3OS>jIk6q zYU905ReTmKc$x+2o2}LChA)Bdp=Yv8DzRR9PqeFEUPrRGthNrw2;cxL_}TCySXm0b zPAcUWGq(9^Po=MqL^qmOFMw*|H20G79=ru0ADDr%CDnVlgh}s&^_qJtYEzQo@w}O{ zI(;Rq=ZRzQ;zSqQptNLhyPB9)@DTwCxMsXJ!GlNGQ3;RZ?eih;nR|lAvmMd)SUkE} z)OmIzvn}qaRWOV$W{KrZ-Z9a|D6GF5O>h_mQX7m}RnqI81(VRQY3ttB=UkR;8&A^? zY4LG`ymIK9ey$M6QDjze>W&;DN?WX25yQiY<q@ZIb@m0L_nF}Uu(g=BIJ!CHw9$?tJ%*ed0*+!lq zRxOa2cWFH%?}5pQE4Dlzjal&H07Weo$dZH`G%Eo(kOjotmkrv)4vuOD1G{GdZi;!} z4`{Bl!?_mftwP@Q2{~TtlIQLNCS07_Q#0v|>LQ01!VR?oI3gnhiQVQ-S#n5jCHeM5 zxdQD;MW@Ti8p0bulcG+5&9+jq%9Z_e(7znixX7whk)U0`DV|=TsjPqkzXry53S>dM zJei~q-Wv&U6t{w?T8@F@=x~xDa)zQinP@?g3zPGsrnL-clcD8wV7Ps8`l|AZ;Y}=g z_bb;0-WQzFu?{LVuU#(Vpv?mn;4cX!9j_eEyOixUa6G7KX~^gd9ZmsAtCS2><3O>O zX=sjsqkOCxk6js5k+b4n*qRq$_;t8C7CDU-WiTS>Jg+8gz20nn#5z zyQEogPD*-=4;qW1N0&OLM%8RpnG<(30d;B;UzDp~(^&`Ut7CbxzTL#rN?Ld?>$t#| zD7pts=eozEeP`Ni;|@ruX8Xz18B!mlR8?AWTNzMSJb9a3`34r|*hgD*paeTfqhp!8 zh(b_A+Iv+>47mFp?>tuyHg0a>(347ZQHn_BuDv-L~uEaB)?SPy1Wx&)u*ARB&Dl1&?ZKlI))J7-1N1hj5 zDBO9&9ZQcrfeJ44dAlg7NRRBhrkWjPo>JU|<{7f}vS_OnI+1>aic!*DJE<@LGjH-W z#&8p9&e2G7stS5A95G{c-lYMzLjVYppw^NhJV3EHp!ec=&=uKkOtoRo<2_OpTzs!y z6OIRRm2NQWA(H!In)1Vb5uvW`I7(j-xp(TUmdL6qgr!5;H7bv9Ibq!@2H^UFf#>{b(y0YpFTcBF^(qoM(aWLGD5MW zepct9vFWdPw9*@P$q<`-7m-7bA8<&h5cKj>04^XcZ9Jo(isq*UB3)%P@?czHkW3Q= zC*g0-cW9ilclT$i8a>QJ{!Jj@L;0s zt3}kLeeR*i$=S#1 z6eD<(u2?=jN=%%(Oh$>-N1o;8mthc7{Kf$`R`t zhu2yaGIbcoVMbB)peSydtNBELUTA3aX^7SOr5#%G0jJ)qAt@Ie7Q^1njVQP}h)yO# zYWHeLrl+GUKP2ohTyD;HEvs8(XfP}d6i32G^P7SJ#o>``}n#fLtT z@H&Ohcg19 zv8_e`a+aZ|Rc5EEa>`v&3b`I7Gz_>o2?6edNA79wIn$-BL^QM@FPI-lJ7HTghZkTo zz@v>rH%javxkT$FdF%0HxnCQS6ESreY7uyJH~!_}?L(HNjTJ6;_r@!?G+>}DR)B(} z(Wi4o?_5Lt1%NQ00#!^ulG2Rzh71f+pe@-I$9)C0DjVoiRUCVOc4*u$w~(4(@C`w~ zXRz4U82Z>F{Jji(Ci>9uO;HG^?|Ys8Vpk5y;I$*CJ`Szo=NK{`dD63ZL_41M7|N*h zCPWpg9;Yyl-NNUf~8gzF9V#O!DgJQo{3k16rJK-$e@TO+d&~2~%W#B&2}~ zXXO&xVvxu){6MUZvtAEvAHEI3D<`DmXVDV%9$liNJq2Ss@zl3)`s7lmCH7$`giuM&aceuieGsS}*^hUDbY**1#cAPqCz=ND2ZbLe3>b2FWc@Jjm5yx2`(>`27Q&oC8 zYZO8LK;OI>?RFo4&?k|&{w&0q4Y|5w+$Z%aK?hM3kz47mWFp1MIF}7an8!8@aC@?% z^c8LM?G_l4o;UV+b*|G}t3uBZRVC{SSsl-_+F&w?M@sSGp#yw*$nUj0c=%9>8-Q?J zJs&s;o2(DiJP=ACLWdWA+{sL@!U?&wHnR!a9W1HeJMVZkOa(#RSfIUgkBCQhaGS!M znfZtoJVi3ag{g$NfO_7@$Z3G(tzpX;D-m(Ni;0!Dw&1MORowfRh@3#!8pE=EL3(Qv zlnoMs<9gW@CJ@CE11!;#Hhom!T!HN(ka3hj%>hjYodL}V=*>qUEBRibI9~}@;i0~K zwf^RyjgX!!@h~Hty&`pJ@F(RAQ`}6dl>1)KMAS@> zsts4WF+w4W2E`K?&<;!yPfD~L=q-lqfQz4}( zrSINdEP&%F4m`nK5yJ=ohfu!Hus*RVm*t4uidC6;GPOWJqJmTDVzWHmh+(-y!)lK`V8; zRtz#pEa*eoY{#HCjIwx7s{7cFy-r0|%k4a&M3OMu6l%)JE1%%pr-=R~V!FMBR_oLk zKw7H)0Q@XdAMtQlh`>hmf^sJ=UWMg@LbfEncdFWuMq~Kcch&&=Xwa5OUOyh(ex+<`KUpLqx1mXT~qqtQcc9R*#;vpJr#GhGhoc~De2$D%Ix=c{=D{Cr2S zHC+RtA8hAQDKnDNShwm5*NckG>fO$x4NWLH>`HokEW}jf7n)*~8QwV$$dNl_L9Ne^ zttff*N~>GiAT3ScOxTGxE)14ic=+}C@xt(X6%XgAw6+j#rO1y`OS+eMptTrz+V?dm z*SsRFbXsQRdfd;RY&_Y1WtmS`^8hFzGiSrKAW`yQ<1kywd+u!jQI`(YMxWG!Y+tI9 zHPsVx2fEIB{rWM;kvz5Ay+%50n+QWY+Ef|?z+z{yct!3rv1UdF3VzEVt_qUp9d|+l zw~UDElim*{#5Fi;pKH6MYvvI=pHp%i@3FT881@W!9`f8-O26V!;g^qF?^+Zwr0bPA zHD)(iyh=@zFhqo9{=hiTu zRH7%(v$vdG_PW#Dt>9id7u8kCW5_GF+AP~=;Otz*o3vRyi~z=aTW>@VUqIqHUOP+2Qe3|{qydbCSyH+TCT*m*?M-d(EK0Ji}9gUo%w5ZZoi8mxjK_*8~>0}K#wJ4zi~k2d{0%gPZqJtrQIbd*vnB%A&D zcD7`#r&gIjZx@3oAA=XNOjd`b$X1*8-G$uvD1ojt!d^$$K4nghCIASlv^ezw$9S!Q zyns4c;ZM;(hOE4R^}ub;W+J?SsvWA(o*6kmWof>6;83usVp|YEc{4>G`sx>loVwSf8OeB}CXi}I6%(k-p)(h2 z(10I7rEqqqY^w_opTCXg=kjEa+;T`ShHZeYjqh}M`#mS3YD?V5x?KWkBu4YjGL&!z z#5f}nA}k{4&^5pW2A-r!Q5-zCTk{PJ_VP{Ne3)Q-$spMehWYaKq1Ltzb4iN@PSZ23 z!Nwpo0rBQeDO{NF7+0NGFkL61OnEKkF_w8NW%3LJ2xjaoI^H}yQ_opEVGb>&)3HL* zBoSXO%2zgbc))sb(^f?R^gI?DE;$z9cs*!Lu1XTUh|cwujad4jhZMf-2w*C&MdSxw z_8_O5%2%3Jr?74ANq4NH!kkF$PzU%+sZV^6>Hu% zss?Z@L>RSL0^pDN=9RALATW!|YjWhV%`rHJ}z^Vlc2fVrx+{oT|$>wZCMFTAF9s}s3bajJdvN_89 zp^14BeFaDkW~$8$2?(p3px#us&;3Xzq^2;~Y7X})4+*uSKglximn%I#NOv(FpsrL) z1~dr;W6V**BA?#`z;K0N7zh!z!IYtSIXYTFZD;pxnA8hheb3*)yLJfc)!j%%8hKkS zM)thWn5n(xXnd{Jz+UMsF|N)4%o9~c5!xLX>_-WakBQ#lyoCpn&(&lXR7)R`uk+p%*m+^IRFH$Y9tmGo}taFY6(7@>0n-NU3xSmgw$-b+5lv7)KdSBBs+ zv%6bbQ3D<4am>UgGL!7U>$+6o4<8gO!@F54gBAe2P2j%w1a1_G+ny-C>21@{>vtx- z<@9_Y28$WiB=Qm|%sm5}-<>hN18LpBN2kmz-s?|e#*jN>*%{}mC@Prv2e?1GtHYBp z&_LO0w&&_;=tu6B+3r5ncH7r@zS1`(^NQNA4|^FPp|jA#sWKVMnNbpwBS{uL{a8$j zHHG;QEcoHdfdxthjaLfNV>nuVr5>}Zh;FV)j47Or8wSl=|y?Z||uY$|LLJ<`mzFuIU+eJ=Hh|^cdmD zc*>VfDVRbkylsS4FSA0Xw>Vu>^D>^3P6a(d+aSO9_Fbh542vr4`Kxf#?9NNd2)88R z!e_0E3`wYgi=e^yoc%8uyIhzgv0IZbbzI`rz#~vsvuEdH978pRPjVK<5|2=?g0iLA z!+M{HKj8q4NH{}DdSVFB;El`JA%!nJ_LcOGbs4C==z;rIq$ zXaTIsqJ)5qQNj(h?C}o~|QPHY8*QVnN7zKq@zUg>Ro% zs#!fA4TiYD(_@}fppJ8XN~SirSmFl4ch*_q`Fgl|=wXog0Wwdz^8;0d$yp%?O@ttC z$#Ve5*f$<9)l+FbhjqylL0~)zJzDu*hxgLNIL9dLq(88N6Np@MLa7XZkrcyvo27Fo zCSyb8olOU?xkPA%*fMYFah&WHWTvQ+ZShFI*FVGXRz?DENSr(cksHqIm99lpY2@?` zJW*{6iNPtt(%Z6FAOIZN{5j)Er4et8)ExCqv2m~^$Wvp* z7!(K8oFaZF?IVyGbOKpVS1j&mvdSEiN+_PeWYX_i`>JPNMv}m6tw=+wIH7aeGM5y3Tuiyo6aa|40}qcqDgeta&equ3(q39gJC}|zIa5&=Pb(*8qbiT4Au+)2J@j=08|uf* zNuEnA^PY9Rso^C67;ENXjQ#hB;9_rILal3NysFv%7$%M+S1v{ z5SXFa8&xE8D@rCx9)uiwtZzqQ;0Z@pD8G$rV|Yc(2^%Tt`TWLQ!dVqNNN+*{(V8f> z=7~Amxja)peUy-taA@$dWbuIz=X>WQ_Rtt|pup#X&hK>B05w3$zh2`i)*VKvN{o$ ziB#oF9w>;*IJ-ykxHHqpkf3SeS??menAMjldE)TS607J4Ub{_}OLo$#r+Y`6I5+YS zd4#xFpson+vG!QE3e(g&8BOBF{iK9?-00#zA z;v7?Q0WA^PO@B_J^oaXd=qfo0AI!c*l|l4}Nd^;LVZGiok23TG#!vyOxRccT!Z%=) zLkm(BBPG4{P3d@oKAvlB+xE?904;46JuHGAj5WtR0v678hre`$$*2n^l$#%8`Se$M za5(l`hz=6ubmq15l@wkkim+O=h0THX&NE4};xWS0H~Wq=9_bo`W@q~)@Mw!*k!KB2+p0Ht}M?E^mK4|ua4XWcH6SANI*++acwVCER+w&Th zxb}7394Z`3k6WL;Rcz(AtY)<5tu&d77z==K<17z=WV;u`i^}y%*LU4do9(pN5LQh2 z7-Y>w)qM{htXw%4aj{d-90e&4cmL>4yEi~+VUtYCKIxE`&qO%(zp8iy%4VKx|Rcit8U zDit6~@xCG5dKFivN3Jm+KOjOY{*h`QtvBJ!6dP(w<3!HUqJ%i%T)OA}Z z9jd)f^VNj1mDG~;z_U8e?jph`(c$$VuublU#6h-M=!^u%jUZPrn?ng&bDrtpOVlKd zU~;C*9+IY0Pp)_=X}z)Yyp3Fn%q;KG0~_ab?v{&ZWg(y*eP24t_Xg%oTu@Pqib15P z8*xJ31)SewJAMW9o?mdn+j+El@2TpYIM5`wV@)p%tZM`34evBvdoeOLg-Pjw>5IY$ z?yxtJk=Oes=Bc<6z~gYiSC^*1_%TM~#+=?&<39FCV2E zWf{Rq#t_>G0~I;2~7dSujrl@0uBg{!jfP5^Hy6w z6)BWQVY-4eWkN~8ICXkgeGPd#5%VmD*R{MKJ+e~-sWKT;jik}2v7~00dxg&@}l z*ch=GpRn`bq>_} zmif8Ga2@Ssgh5gh^2+ljaLu-Awn+p1MY5Z_T1W1=W$deLaKPtBWB6J-GKUs=E#rC4 zab3PXb?;hRq8l-=-J>zE6#(uFn0AMKdGwN>B&pLyBU){4`ALeM5E}TN(R2Th{^r{=3Vq^m}t}9R6kvWk_mBKrq?%QLU5!Sx5n8&w^@1fNKY}R_~osJO=uy2{z zT0U=;PE0Fe^avh#y$%6L)WI2#MR=h4x#$ApKvJB`3t|o8Gksh_Dh5vA#Vs-2;QZyI ze(z!)t`}b{DB;M%AUM!CXye%t zHh>%&BeFeU{7c9ok89zV=U7uR6{dn(K4!nZSgtC1Px393 zX}t%{gdSYk&FoVUXJmpyn*wexV=e&NOh)#pSWJ`pgMQ|Mbu0=lL4qz7*nN>t>gmc8 zZ|>&9cCaBACd8mxAn&q~c~fech*_%ooRl$Z_8n>f2h75VXhD(y>PQ(H=8{TKNwdN- zQfLDb(SUJz%gZ=>xlPgfR(KCa{SsHK6*%em0hQ%}6v2?M7*PRHY?kRwPvOwnitpBP zUAI&5a_PwG(DWIL3#kyc8BAv>rZYPBzy@WqOE%4Oe_*ga6<2bgTe60O&}gzS zwyhCtgI9N+F7}k3zo&jejq&#S&G|dYD4iL3V^8x5zhQmuMb4s+8sI=p4W-u`GvA{S z6b{+VbA^n&>CguSx>3?Q-PR?BXmL;M$p8(yj1|0{WSmG|j{FQvpN`NpQ<2 zyS%%y?{Pnk@m(2;(-21)SDlQQduPG$=M-7qgtK@^&|=I_Xv=VO*KuRk)BAMyExllV z4)`Vt$IQXuH95NOdz_Dp`_M!n_ey-$T=t0%WojzcNYoY<9S3(un2s8_5W*XI7c%nU?uQ-<-jopn5 z?FEloyd>!Zx{%UcrM>Yb4QHgs2L_BI{eq#b=I)ugmakFMdrV?}2~#{xcsvbnp1dd* zJYmKXuAT^dM0;@EE{!~UQEOCQOu>7PQSCXJy;%dn}@+_ z+*3~$o)$}IKWUaN+R>Ug&#qvg+E}sd23W|_mU^^X6|UyyP4AdYrYYToANlN{EP>`e zEQQ+5BRgA4F>Iy?X5=T*E?u9HCx?F->F{MFTkAqo83#M71fi=t@WEM)z|5m3 z{-(|OB0S^uU?;ckIS=EsV^cHSt^on!alXK? zF^$wbeW*}7;V@<3?xdR6Wz6ZfjE6OmSgKx}p{f0vZu4!UC`%ANcHtu3hX^!SA%{qa z-XXyznR+zW4`83i4Jh8Is!cuZM<5b_3b7|qFMXCTszFA`SlWDjP{f|!gRPgouN3QP z&g0ZNYl)I*ys%es!5uq_X{_g>2n7o3HNf4Wfooy0H7gtbUhW>@#q@@rViFFOyYhkE z^ys{!sy9W^+ofu-E|DBcDYt+Y^t9HPbfcpvp~42Sv}1uIE3-IQ@F6)Ho_ip#fVQRp z=njP(KV^g-;^H3MmQ3ihR9%WW?WgoS+A_)>E*Jp=Gz7gGZ_e;k!BWcf%*m9?VaEke zw4{3HnnUkSA3WAKsSlvo*x#9khSI#3hqGia`oUvWl~d?|%O_>rO$_t=VFT`XSK#I2 z6zAD|=B$03Q2a^;n^eMzGO@#6g25rdfwy_awT}?rHXZ^QAH3wW_4Ve)n_`s2EcD{W z16z!z=Xkevl#rN?vUC*h@nPXQP^>LdS~$9O7r|-c<^>jVDHh#wKNqT20}83097gZ7 z>wD1}mvPZ6oQJj=ayW`yUBhv^FP_lzUWti)=J!@Y>oIa5$0ARZ<3SZf)10raKH{fa zBP3N*D&|DNFeHYr>{-&>^c)nQ&R7tn53a`MS()-cvPL)d>TDUzjK+Q{>7Q?H4M=>H z#aiS$m&z98Z2lc}L63#FxZ+`K8iCc-rU#0vag5h`~IuB)E~+YdMx z3tG-PsFh;@m)FfOF6>fN?qZt{OEz`6`;zXZ?Y-v!s$=6}ag(j+ne)chU1yUIKyo<; zWCc|2FDJtvX)T@MW6|x<4#rC;@qLI*q-@M?XKs(%2Lw59mLJ7K)X{$L@@=cz;0Cyf zQLD2>E`r0I7t!-Z%uRd~2?S~NZg)km=~5$**<%;6(7Iw?9&~*vhs0+EG$4pLVSCUm)KX4_&tEEuHj^o> zux5{H;A}X;HId;2`Qu59pgx9&72X4Zv4HbrX4;;Q<^yS61^|u>Tjabt1}746e>C(^ zrL*%;Q;_#YhrlxA!umbveDAd*G)C^_BHha*weGmig0eSMwsNlktj9rQpjlNqTHdvz zr@ZZnhDkHstrx%yv7@ivvon!yGk=rbW%x?4jiAX%4e{>jgd4r~0%&%5yMy(X&dbMm z`*Oe{IqsRN%nCd_x;o)WJ-o8ez*jN7REY$-Od|K9A96m<-2^-gm44cJ9!Y0cv3a)9 zVM}G8PqPko08V0XCWj%i-vg1=GeO%>s+K3ab6vSj@GkIbsPHvu5?nOV(-t`{0d31o zvDkSD1pG4+Xi$6{@Wr#3rZ)*%FngO|v3`vs7^Wt+kt|{u%~BpJA(0e6GRjsbL$zFi zVu&sUoRNbcyeutL1$e}Jfu46Uhl)gen0BOPb5GffjCi;(uM)AO5n1$IOp*d84VFT6 zzed!Qjh4@8GW5$y@zIQ^Ru*^SBGEuKgLFm%1|#h58!n5@9xs)Arq(N!w#EqD;gT&{ z-W|C$sJAuTlaf>Tpx}-kMYoS4ZXr)LsV7~mzSj}6??u>cGPY1!%i=>DDVf}PvXwTH z3d=HhX`5O7H)h`}%i`UP z2GxmyA<)WZk@X@4>{4oy96umA=$XmsynB z+)X_n0#5P}1&JknG>EP^SFkG8VA-B1@!UuHk=YU%xt_|Mtd!(7{$-_ts3dV2v?=TB zX?bBa&|p?(-3EQ{A$h`6P3s4!xP<-a=zv%dGZX|EMk5v(;UR9n^$?2Z9XR%K3>{wW zJIhj7%52NPQMv}Bpy28%csMf>q-Q3VE<@5Ti(UOV=-I{KGQcV~N?KT>3SR9`^B8fh zGQq_%m42EG0N&Axl%8tMku=;W04PdhXBgItV40?X%KR?8NQC;+s5kGuGQLO&T@#m9WzA!8v?l-sLWFNy!Po=xkRw%uGYCOl zJ(c@~*zs$(2XpoCDKKoSd(I84#isFsou)Fniavfryvz#ta>f+IiSaN_dYFzx&o{g+ z<*cH)_nizzU#>=;&${|uiG$57G^b29G6aRSl;@B&E|%Yo7*sQ!;SuIphrXy*0TRT! z812(nx3r#Xfh8bhWAPq$xlL4OVEB7uNUwa%E_A>Uw59~|HCMR8%3@F5a&h!9=o@IZ z(7K~r6!=wbS39)^1D^M28KNUWlWf8aRt^ZD&w)>=<)OMeG&xV6&AgXZhfeI3wib2h zrQUCmRe50XaSV(1+9G*G^rY+>=nebj_yBu!dW)g=y`e@GeQ2Kh9>kZGNMBa^iX-!7 zpv9;wn=4T-3$(G5LWc}i@+-e6iLCAPiO24f_E_H@1BMq5>J=0i7y&-E1p&Ro7{J>oooNJY{grJWFe?d8+OG~vh#d6&kd2|Gn zRElwDM%yF}(4?_;hp_#;;zh)aS6jU)hOTvku3wxX)tS=h!n`u_)U1yWL`*5GuzgaY zPi*4}HG4r#13bK0Ph>40cbwsY0jZHeE}{0wDNVAzNvb!d0-GvOWiqbDo<=mb58y4r z@*9s_!VMImhay_`o}8Fw5E1((0mH1aCk)5^21}Z& z*OhBX&nDFO`T~QV#dE%)nG}S|k$P}|E(FT)Jkk1jDXOBuEy_WhvUD56^Jgg2PdfZ` z$)2;ldBkn4r*BP>*oj5BVDm8&T=tNYwjHIR4LRDlVP$0>9w>G;uxu*Ujt^&M;xHze ztw2L4XrZ~*sw`&hA)HR@kZ(DG&f8a>qSyY6oC293yG}v-aZ$Z>q35{wi_uNyV_cBh z4VaEBLwob3CBf%pDbfg=3)|}4sDqF79R&r}k+##)B`{G&wBZ!zAH}(e5 zy5VSQ?eX}-gK>fZ9XXH5Zg#O3$b8;6Y!O7SFz*5$CW3Tn0!5|a>WZt4ONwv=_Vc;d zvFDA88)^EWRB)MGwKmJIU>&Q@%wp>;c?1d~vSx45}+NjZg@x5#>F2 z;U}VjV@XK0PJCpU2oFT)oi!pU4Q-MTj8Pu$<8-&G;`F%))tgNddxBePb2t|lb7Ny3 zG_P;)pgdoq<_L(41n|rRz;en32jiuMuHT~sUI*J*3~>w`aS?pxDF$w-bnN?b$%VGz zsc;uE4V4SFM93o^lpwn|nVE&|Go`As;1XJf6HR3diE_T?2h^HQ&=&oOUWSjw5Xmz+ zeJ0z4DTJCafCKdWibY*)ZB!9Er)kcaC!+N^^hvDMG^zInj=gsaup5yA*;hN^tJ!EX zp3iKT^Wq+QA9;^<+7y)cy5n1 zQ!LjuAI#!FC!oJe0!-*aPN66p%ZAlERj_=-Z#S+GtM4s6;9HZso*8XvT1xI=Iei^U z0|?3j;`3At88~&Q_?S(EACGB-uRn(9MM>v0Cz$ya~nvN6^t8sJT-hEX_q!Q5qri$8w-|l0 zhuaA@&mGEPA00p$f+$Mw0|6C7eW*kT80p+eLvbl4D!nQ6f}P7Zj3E~c*lXZSO2Ek) zpNGYDsA2J{a|q2vs^dc2jw9flfD+8!IN_sh#}lv@fvd7OW0XQAp*?x4Eu|9#BJb^? z3_eS|-84~dc>5A#sp1$E;0{wYiP4_z*=15}`LlS{41>$wlYK9qHb;~g<<`;c3AjGt zIh$K`s%UaN?o(%w0a8cx6AlS{7Y|AS;)%K13(s!35FC+l;euuwT0*kUwwD8Cf-ew} zkxxfceF1yQf;V-Acv(^@ox)&P*=J`;TEhMva(OP<|qLsd2sCu)G1G#q&32X`0?ho{3T!mU!q=gPTst=@{J;X(x*v1RbA|)b} z5nTA@E<%g-;vUq_*i>SR1E%`mJPSgMvD>0ZWnXXs>IBwjc@<0sWFxULNlz-1M}e~F zj>M|uDml}lW5{JAuK6LW3pxTp(?(-o5e=>t=1ep^OFPH11$=U$94(;Khi%^JnTSe(2&m#yB&5ChJ8?SXGP61ccU;Yogf1 zgzrq{0Rbc9p0xEsnzpz#5j}J~Ihqr%l=0Xaf@lCfNkWmX@z6vwz`_{mkr9!j4CT7o zBO9VCCZ9sZhOCGIhCB@2D^rHO7AfoW#maU)e(I-4JB0*GX`SF)akA%=kcjxSO=0?& zNjt-jK#+l>cIjgER5P!cNcw8{g;mv6x>2E1LE+G^W#NqixNEWnMPUQ#WLYA+^J z_|4^Lae2B|xz%$|4dbi;6J38gE99=RN%nY6#xuux4^yG$8DfBg^V5+weUx-S*01~4 z?@e$)lhT!CMPK4M_ry(0mymZb>|HTe^t(50V-#BJivs7g4idbN^DThy zF-$1iF6rWO-;7VIy`yaTGL!ksOs0)UI)~ha1wgV$;>TwX7jPaYb749H8fg$VNI*Zh zhXh;xK;jg1NKB_;FA=gu1S%7+OAOhV2S2MAGGeInev(spz1@$f*fR;FC|)Ry zi>pvpc8$1KpLX?gABcE0N_3$+!iwA^r5Tw*CLWu4*M~N9_LrLBLzbj@+x+&NpkQ7sL6Y0=IFRZPm>$pfL>c&5!a>D8C>o3f?^L7q5GQ_k5BfNv*JIsMpKQ~Dn98IAAW9kVJ}Gm%49FH1H`{7Y zQPiyne-6W&*jh;D%*jONQBf}$CwGJ4O!~s4SlON`>Nt$Yb89r5z;NSx&hqk@cTnA( zkg~~Q*aNys)QE(~bmS_C7%6FYQo_Ma#0%F$$ggmdTpqmbW9L`sJ9&x^2A?t6o1Kl# zywTNTc46Dl%;!Q+0z(0o>jt=+YQ|&L6>_o_*WNyB(Pt3%(2ZZ@1F6{bS>F<&R1`yE z!NExmNnfA}doL5u%6wKE4*E2oMM&(`rKfq9ZoD*c_ZTM~+c#~DiBMM}!W{9`U(xf& z81qi*DhuBhZi1MskYCRr+)hCQzSq9ymoT%8?MXp61zcTzS$X=zcZl3rU+4IWI+K5mkmTa(1Q!O-SC- zAbV_--VD%Ezj?_eJPP}g?LF>ifv-hFo_VUqMj6faqdeiq7w=fnbnAe**_>Ie4S)>> z8j7Jk!Mz>DQUBhUhqQMd&_u{&ww(3^=XLy$0>I)@#^va#vK1S4Y6~+?CT2<(*9F$m7)(xaJkP$%N^-Fhlbx%ccou)YOHOEJ=>0 zSVpdfY(Sz>@RXodkY)6p9`IMBOi>AmDNmfYZi}x0pXq7oQhSyZ(rTpwRr^Qx2@ zr-kOZtPKP{z9r;de3EUTBl%j6gsYuI3sC%o)!uX? zJv!Y$-@4Wo>{Z*`0;Y)*+ikAfKv>ksGp{$xKKN{okDTEzIZY+mmt>b;HtK^`sS|vD zaux(3i%#rs*4^#kM6>1^gfyjM*MgGdJ%+eOQFY|#Nta`21fR`pih&XAOz>)p4xx-wKpzm^4z)!v|^1^M^`(N zPyviHlx6{M>$0+2*S*iqh`YGxAY5tm^>rVPJ4}eKtvttL7WG-JoP0s==pZ`RVMtW5 zf*%rKW1!FBGSiV7!b2XfckUZ3K&u;q+_bmbmX5kkf@W%U7Dl6wqDnXi>(rd7nd5}p z`*GLj_r;a5u}@E{3)k@$*H8L-sq{3Dgh{w z(X6%bMnXlyk0$%gnnn4~qi7~vIKm2%L~TQ9+{Pv9eOt;>UVNnQ6jWjJ0eLv?)@Xab zd}`!U8rZ%o8q8@uNN5qZIMIYkQ1Y~QYfWZ}`x$;PK zB z0c&<663~H%oFJyQ9`z>H(0@%pdcw%ARjdEP!`TR8}s{}uI$S(&lMyd;h z1bA;~d$I=Y;S|v5C1=OtJa|?nWhs5<26VoYcGT4)kaPn zdT%leU1N6GX0EIzVl84<;pTNetl@egI(a$1Y(aqWZUKx% z9P+H?O0uGi8;4#VwZb46HwLfu%ruxv+pV?UFvfd=9!(?8{Cu8Uw7~FN?IIa5(_#m5 zjF#E9F2b;Sj}_(1PSa021yiqHb2+rNdMhBR$tnbIiDsQ#KM;GwTdi#7B%pY4WNR6$ z?_~{MN_ZOUa{e-YLfk^zXzpxyLFN7I=vhc7#)!l)YiFT$_4Edm#U%o1@0!(d7M8$k zso*9O%`vIB*?J?>6`Gw~@X{aG6>sE)dvDiKu7q_3gvH;JrwXN(+rXMZKvZQC8Xa2? zNLhlF*u*y53*G2WhMh94h{}cZ%S%BUq#dP_4axBkg?pPl#F&&vT!jZzlX{Sned%(1 zu6<`x8*3@QL_2vvzsN3~b&nz5dq#rZnm|42KX}_hRJz7n< z*`rq{$ZS*|404NQk13O{n0;Y)JXuSRB)}esiDAJ@o}=JOcPr0j<(+ZlKSZ+6&9FsS`BlU6Qk7R?ioCOAExBo4C<_|AzOFQdMu zs%Taq87F!54wQm)(9Y!<`QBb3jK-?7R_hxuy>r7?`b~j5t+=plZkjiDnw%jnarbfns>G)p7Y-1zE-A(?!iry z5yvm*=)zWBCA*3#FiE6WHj{e1cUWOHY*!C1B!`^OAIs!EDH7M;P&t!&k+jW0!rf^H=TI^Pp_E2BqGm+JHASI1Ocw8r z>NqtI+U04_RZl)W2qnxH^oqCQCD}4tXb(1;fj=pK>oMdzUwS%!>FJpVM%U{}6IzW> zuLIj5cH@E36@hfxA!Loy_BizcLt!F(^xC~`P^VBGZwT7Gijis zj|spb9WrosQSa~R6E$BFMvVqk6tF-y)bWAgYu4rlGUoF$oF&ByMhP+(Rq;1G1KcC_ z)}qC<@ksn}2hPjWxR(zw_fk;7$u;iv7F?iaz?%R=})#kXMx83$>E!s-pLbCGtvgvzLA4 ziS%2`=XNpOks@Y~Ob5AL%6Dtu5aK0x*NkU2tLOpwHEQZ8_{-3!(Jdi14H-Y36>NB# z#&2lK*kLvqo5=6x@{pqXU|{4-nHl8H^UORaQs0*FDJ=@xCii6q9UaNa0bq(!Y4MQP z)eCRZIbZiC_uP@PymfWWhaVgpJvD2q_fGebq>DU&Rh<%v znd%-9m<1XO8!ht0UBF9xsdPqI-C~y7@99f;J7M|)H#D9_<*U-Fiy*^$D|0zBbx`$a zDz-<(4<^a=-TJZjQsR>rp2XK_60)K5uyYSW<3tOIjH8V&5xg1aaR51a5uGE~ zJ)y*s6542$GdX&+Uw#IC`6=%L{RW`W0BZ#Jyl2zlWp@&0qqit$1vDkvqy)8%hPt1M zgP6P!5nS(iZ{ha9J9US}eRzi&j~a_G62OlHmBaTTtdx91CNJqqN*XK_0&B$Bu*F^#o$JEEi2u5WY3~%n~!lINr;y&v|#1N(yRPT@%s`Ae0I#$BSW}lYE z>lD9z#<}aW*D3~2uHCrI1-D^#mW*pbc}TpWUL-vqa(#7Pwl#3J)bEPYc2XT+vS{`c zFa2cI169aEn>PBywF-pe^z7Ap#>r!?kLAwZ)kR#9bh0_UNMq zE_7QlDX84b6IBUn!4j&f1F+-cvOt)DHeh1VQ(W0AUEs}Z(*;Xg*VcV023r1J3)Rdy z@**i3@r6xBnY+D+vYWm_euU$Rs{R_M6=l=go*&dHm@bHmoWuAezk?4!5dgjjO=XEF zPsNh%?O3(k(O@=~XrFw8+uGLFPH9YDQQ~~5wgIQU)Bsnt!-`K;S5SSD6ZKxmS-yV$ zs9xdYx{j{QkfDTI5<2E=RmUwIhOEHG0dl$>HNX~Qee+t5s=PJr0ba3~X11es70`K?UR zrOd$|zujQ1yNAb8qNF0yHx_gvtdbLVAY2BDxhH{Dw<)zK+E!$C?mpwQGh)BOa!Vq>n?v$Pg!JA{0Fv&sCah?$&t+)61kr@=~bJ5~q zJ$opJI|d-q)y-|*($K?&alIofn*aw(8zz)Q#w@d~BT#SbWetsEM`mluTLhm3Zl>Wt z63%-e&Y-@Jd+8WRuk8b7{AAPcWnjo)h=H85K599SY#qnB$F zCqi==jZCSYR<`Y41v07s*{TgCx$LJz{DOUnN{S)U`aZdm8cpFh~%^LBnW=ETkgo zUbvdpJv-X-8-66NZzN(7Zk)%*Z15XV|3Vb@Wx;~5y(oa5(sZjq>Rcc$;VxMbSZyYG z3Qg;_5)62-2sGvt1Eom5mFBZr)hYtUd&?a= zb9UfPdS20p`U-lz9-2m`Q5Ls^*Q>%FvB1>o2ZMMZfdiXakH_Kgu{|COs&3s>%#PCvu@H;boj2(tf(P|BA6OXVU94u58H`-toF}bQ=Ga0|60X_i-wg>HE2ekUI zu^gx7y?L7?FD`PoGn}bjhg@QLVZR4KdMmB@LJ3)()qoa9SqSFAMK185_&sG4OQ9@0 z!eSKhkf30Pam#utX(3RLaO4IW{r27ID};G{W1Pog#sZM@E+>3ah8RZi)pK1n8!4z3JuPBYQG<4r=iag*K*}E@Uno_X((F};FK>Y=&ENHw{o?0~rk$gA~lP>9) zSSefBr7yUwFq3kc${TN&k8$pv(i5QTejLL^wN;G|agPG`*p35Qukq0XlM;+}n;NsO z;3j-q!cOL?jabl+u!HexD~zc$Aj8buWIXW(l&qxpsYU8kx0k#zleL!}7lOud{p9Vg z5kY4$9G^Aq=0og(5(wiwbl(hP5{PCbyar2yYw`nquS6@WSWtv(en6-MmssJs&n4Il zpEp~U+*J;|Nt{%sJx*Pd459Vxdf|aj%hQ5Z@4X_Pq;6g&!l2#CLqbukc`tP==2Xz? z9RRKx-;1j7iA-1&B7Gi(rXp)a7CI(73;ZBqZNT6~`94u5F*s$h^T(VLQ!|3(XMB<6 zuLp&u(83KcGNH&y*Fv!O)Jlv8M4t4PYyrJ|QDP5E^H#gc>vrJ`9b+u8$-Qo4Yt=x_ z{8lL)a*wDh8iF963(!4Cf-6pTqJf5C8i7%})HK}-j1HI92YQ?K^3^c{=)tW*!vvKB zf{wSLRMibW`e(UO-09Ac9T_ zol7S4xH~$?^)(h}son$b110Pc7L}8_W5s#JiZu*#T(CO=!$bg4DPbkUdXFwqcZ^1RC1)g_ahw(3^iGPmeQ;|mHxjOIH1y0M0NO1Y|N zqjm9G98-`u?Xi;dIAUql0u;e}7->&;6D%*xFksBAkyvF>k*`y9%24>CS@a~r1C&O= zBgT3xNak=cn|6Dmz~F43LxGuq$31xE$|JqN(IRNJj|rJy3HZ+LWa|S9wd6;Lgu6s! z&9+bMGN_F4vR*)lbx*u!#Z-;H8jd%y*FlUoLtHt~YDR=w-CaRVo1OLYA@u?Qq0V%m z$-Q%Z{FZd6*pAw)9eX1e+A#EW?@eUz>l^FPYgO5- zHdqBEe3Q?5Y)dbgQd1QCft2@nMGcRV%*xnwmk7`6W!2G5Z=5(pyyOinlDCOiJiD)! z(AyoH89+xFP$l|FQ&PN1`lR&H7o`YO0#Ve{S*Z<5x$o7oBWhA?q3;V=tjbC0gd{`H zs~&p%kQoqEf;}Ga>$W2$A;&tKB^7apP)&LUa?pYzO()$MM@`7Ip#w>4`pQ6Edzi3f z%8@2}2UI5AfB%d*m$6bw{RRZdlLvzR@T zr>LE6)%;YmSPp8i#4%6T9arBq8XWTtoR8b+6)L1Tge7}uEr<-D8h}l7r6Np%xA$XO zuAb~|J*cV&2!0ev7;G8iOoFiLS7-v}6`=f-fpvu$=ym4?vo{#o`VHxOaHN+CdmhLh z<$ak-4_u#7Lo_^l9d~2~N< zfOR1&!b1__XbTDL2^KMJ-lM1Z;s|!LCD;V$A-XC#%L{{h?JTq`T>FN{VIu_IJ%L)> zJ2&$keD}tk+|-v&b>TI!7GFtpQ}0O6km@`F3`qrSUJmkcZl#{_T-tnM%jx%+=v|@b zC#DQvn8tfNtI!cvlM1c~nEH@Ud6~se?t%qcAm#vcy@f6OwF-8IxdobJRzk~*bsCVy z1!{H(lm3Me9SK3Pa4Vb7C-Rx&(v%iDFfHKr1)!yJ!iq85wq4h1+Bu2K8N=HpqBlbG zthkOznOyOW7L!;wgi%6vmVl=zL1P#B7H`ahYsROz{THX^K(AS*!-esXn{bYiJsq|O z@PxKDx6hh<4TLflOA+362QE+jvs9&r8#JhkghxsB204beLlpP;E9tq!@O2nO^f_q6KT*p_03eILU z7rbxyt;nH!jhB}cg)M^~l{47g?5yo<5ZR9Am@kC?+!rT}ChcxG3ikt@1yI2>6lJi^ zF>&XeIngwcof#H*klg&zX+#uY{3ZuQ1|J~zke!p|gHw38fcBEsCnNnP&Lm(v<(?Va zN>+C?By5TY6V-*X-Mb8rSNRmRpEt^m_Tj}grE)21zLwP%SGw7Ix|GZrh@^3xvwl_q zWVBg=H~Dm;2g-fgLlE4zU~JTDtKOp_Y9@x0nJ3(>rUHG-Dlt#km~v8`Jgw)_>C6t> zS)U@f4Kms@lVfgIz!WuOa+qK|5>1cYasd#n=j;$hsnswZF9|_foU8k7=$oVIgnCg< zPVXd{6t7~Kk+QPV%;h@uNjg`V*y3}LhbMdCdN0jzIoMSmninzTqjNPXFBLhc_DARP znm~t6*WOf3lWI(=scNw83UoSkC(tX&*X)upgi3Eb-}pDD{>ACKXMw8+YPga^b2?>9Gz}}s>^1^uls5NwV27r!=5jbp4_dYlH#*N z%k4YGGMd_@X@XF6hrT7pxh&azUKoV#$O4NBk7i|gL~?xiIu*hQ3pA**Eovn}7tLZN445bBT2zs z@P!gTnKwC6I3>congjy$Jc;Rr-RT-*h(^}yrETOEX2;RTCpvhKhUH~$(JKOT0m6Xx z!9L+-wZ0LYuGV$B5Dd$~)1C+D9A(-)D-3<-3~w;D%YDi*S+4OZg#!!#Tua}afCKXI zBfiriMwTZldymmYq#QF}cN^ceL+kOOLB5%Jz=I=u*(buNys&BEVl-9n#XEgz6%DF6 z>U|`6Fi#m^nJi^0>h^2bPdEk5c#y>Q0VdOGM@X#KTQH@^k@&to4p}!B|`z z4;`O{GR76-y&6a*c!gY5~kx%}*)JxwY@{LY4^8=*ApZ#=hZ_ny+B)Ai@PLG+yiwmLsG?t>-e4?X`rFcNN2p+N>hh~gx~>Q+dFp&+ z>_en{KrpXDp$kXL`>{8baK`nf(RbBJZ178OgPY-6>i^ZM&ia) zWX`^N;I8(ab5Z zjYR;{6ETPMEm28oES*8VlPAH#P*i~m{Xi@qt-jZadO9`dqq`XKwAZ)RtE{RKeT-n+ z{hmC%9E2;S=YVYl1NKyqU5%b|O$WRIwZkHFVQOk7rP_FmEB=U(>6lGmP<1XN_h1nx&Wy+o6bl%9rzJtmI6 zT=Z3zmBDtqTzfk&Cq5hn-9{Vr<1vOip<}$0AoPAD?R$D=6a-^OvW^Yg}8{-QV}D{ zwCuzXnU_V?{$4#am(Uh!9G0J+~;pk$C**wGO>aC z?W=QN$A`U&EPdr+Z$fdM9~A*zO5R(DQIg9XC#lAmjFQ$S7@(|4x^D53ns+N;bp%NI z?t$=g3_)n5YI;jE#b<~EZt1#HSWo2Pd-{@QBeXmaNEX@PDY!9U_q|SYl)Bd(f1#>t zL{>u zc0RMUhfg^knc7OdTn5c)Q1T}nqkMI5H?PJ5l$l^>ggKBe+2V~CV_1uGZM5pkuwcKOLBq4B#1d9(yvyrY#*sJ?#wfbbe6!4WnM?< zCU%2js$K&*PJa^^}wbGKltV2uDn z?GN~ACN3LePFotk0C~W&`{cP3bCOeh(&5oxon2KFmI>Q^J6)`IkwWRdYrguK=i#9Z7EdLV5c6l$cN8L+ko1Xv1pGr!tI2^ zK2bILLe*^7fh+D&NESUM3ooOB#G-i=IKAcg!b6{kKe)&B>XD10JUj=BvPj(s2LnL? zS7o4^M$-oIuzeD#U6_^yYR}&mhoMv2O70mvU+&Ps_lnFZ&=_rBpgbvAEWu+N-?8Ok zAh`{ncB^PqB1NvdHwYA~zRzgZFdUwXbqax6&ty)BhhP_hdbj??s?`%0DdSPIES;LF z+8sZyomb#0C9Jq)u2x6cYW7ssU38nCiMbmZ_ips1JnZMdYR~SLvm(8T;k1=BSX$vOLIgo);70zU8JaZ^INt17Kp7mAk3Mp38|4 zlY)0_G-;`+KZ;j){?M@%YRrVA#q_AQe1+?6OD)}Id(UI&L*Rnsn7Cr+lIIj!5BI@} zoTW42%A!`FYY_6#+3~cxJza=93P(Y|^LNA}xN>KX!b7&&vqyC=74{g^`q}TotG$N}&EXKHW1Rv^{Jlsu zt56{HGhB;zWMR4aI2crroB~wlS(V79g9@-v~{GPjJjDxE)Ogp{x1}R;h<=lpzzFoTXb=R3w0hyv<1T5)c;Y zmAb3Um4V`UH^6Dsx~^zG(|l$d!t4siT*9x|+f%ePNrW}i#9mWORz?|X2JbrMdrksu z4H&yQv6dDi@RUwDvIqCb=DcRJfI=k`8hX_p62G?~h=q|dgl{j5VAVYxx~8oXTL2yz zpqkcjW?87oxtwVki{D!vqt{9fROmqmO~r!Gktrwk9>tj9s@toD@Gfrw>}QYs>Fxxo zltvCiuB0+eIJ8wezf03nkSldJniYC2fxQq%7^Yclcgkn>O2)Q?pK3M0yZMpN(p<=U zHJClO?fgOn)RDl2-?9c7C*Dk<4kJkdZXlS8AV=;@*%DItjQ4}c!p0f_J(_0*Ohd$CK30Gfm zUUEx3^C`LAoL$|=Gyp8&W^v$Kk@T<47Db>9?eonjQtU6C~*VpDrSbO&5Mk=uYL8VMQ zU8kn@v2#Uq9VWk*l`V@W$Co6V@3#25Tp+9LR2bC|U5wKn^cHT)aK1gU$QDP99-!GP z550o*1`C_WN7|UFp<9@X0$a4bQ5;5ctxYa@K1l(-JMl^jP>{-D;nlS9Mhdy}%O0w@ z*?L0spc-r9;DWcLn0CaxbhW2k_VeGn#Lx1BTxEq-5_r@ zdjhH7yHvw<+q-4p(UImBx<74O?`X9$)k-*t%~Nt6&^w?6>sJW(#xR#O{4Sx%>SL7Xj zvPC;MTu+s8-puUKIH@;60FZMzvOWn7J|2ie)7=t*GNo9}c)C!%&9${dp5m$RY|4=3wM?v_2IO{)MOj3Y5XY3$RwObR3CXJ<;#9SsGr7N^e3 z#}D5#ah8e_;(E?>2{R}P^+{{!7p=gIun)m0*~GaR^g!^1r)I73@}xwSp37=+tS6ow zbpp&)3M)1BP~EJT@)hA2H26EjhhCy7H1Nu?vt_p_wjS01n3tlcxlX>(@qQ1&Tbiv( zEn9gC8CCLBidmS)L1$Ku-A10hwhIetir7%svK1#>YhPmVhf)z*qGl7MlPy;7h$h`$ zDgC8F5eJV=XvJj&e^6^7KY*lF4+qB7u$^PVYL6C}yFWP)P3X}Uo1YuPjo z)`7QAN>$@M&17qFiLE=Q_g=#@#+rh7@J#wKnH&{$Zu#pQ@=%#XI)zl$U7=@W_GW<< zU%r`LQeA?DY+x%0QdlUBBM1J5%9R`(0U*)1^{i)ysT#&-%i^^pRW0qwaXEC(U}Pqx59#etDQc z;LBrYGU?VQ{mvfsgF=xd5}~2mrclcRAoVwguBX-uM59?R60Sm*JgHF6cPF`YDOQ8=wbDyw9r(nQMKV{ zHxKrjn-!W4gz=D~h!)*hBVW_7 z#u1l1Ab`8vp>EmnxhfYhiz(@oe`W7(fkm=yIA^r;#c zVWxOxN+Oot`WLPU{DrHR<3{Do0_h=7NCQTg0ddFTo3fN1!i$Y-4je;8<*Mvy1BG!X zMHxoq=eY@@{TO;K%*_3C(FW0HMS#>rE*=@M(clew#o9VjxlJq4@p9 zE5pMwYfAU5$cOpFRH$SdonCA*-JaA7K+&-jNNgM@O(6;^)TnlFBPoDX!}E78di^ZR zn|)=Fmdr%lLl5I-1)ev&49RCockFYyJjz@F>@3rjh%Df|TJ}({ON{9rK9UC>OxF*` zj#W;ZM_p^f+-IL%iKTY6T6e!V2!EJeSU3&{B)s_W&JqM39z0xqCVjQT40SN7XF!-i zmO~shug#Yvbh>%@uEht=-ox6F>LZSJ2=Ygb)&|%rHHp*F0v>Fn1+0oESA1JyFfz~V z?R!Jh6Jm{qJNj@rThfoIo|B(>B|Opx5<27Mtdw*lD?mjuiN-b#7dm-&Pj$^LA45VO zzufW(8Br;$@v-wMzT`GNIcK8PCWiN--`x7};9HzBmT^L=zNJT*(t=UjeaiJ5ToA(K zE!_$rUu>?L;^-*ACP*LT>hJ?-Q-e!%j`v=by(oTZz2XtReE#@BYzT;p?f}7-6Nnhj zyRLf~^H7u1OZVjqYaoCy>kL^J&fF&{;@IxY9;%3R*MQ`wX(h851{mWHS~14J;g!)m z^fA8#wW-cgRu{YRPAR>s9$VNqK&69k6R4se>jD5YvHNxE`nvkfu6f`kQbC9-6k=Hm zOR&m7l%~~lpQzKFf{I|*^bU^cB7WHId-&X-3ME7fjX`D**h)vZ+jwAjr{A15JD(-5ugdRn;USaAYlvlt)e5Q5k#?hqH%k*ZBHHB>OUEH>G$CM35PW|hMdfvik2>n*CzHPIOntHj+)NEF4y<29@v@LrQBw-Ye-Wbn}!jPc$)>k zD;CjyN)uh_bqFuF0v=bUZ+cxt^ZBYV^}+}>$EI%>-+Q4*>kl^8GMWNZ{sQ)438rz` z3o7KLo8Tq(wJS3Qd3vSm-YMV%7@*qPbN(uiQ0aIEO=@h-AL(JrXwA!*C~@Ov;|5ox zoqq9Tm$*jxCFIN66(wzc8&TKxHufy_eiq1v*H* zS;K`xu80cSxxjmdYxQj1v8fR}7M#?3Sr&#Q^VInjOQyh4UDx?71zwS{lo@o5iFZM| zwqNoKk2mp3R1FZ*x9+iA3P>C%O&SfX^kcNDd97J@LA<5a#-}q-59-*R9nsdDAUiy0 z8-1>@L`{*D?4n6r9@C%-qYoi=+9fCEs36WOb$QW8Q*_!dxe-LnMbH+6JhiU?w1gdg zxP}!x*E2!(FgI>V&X*6y$CJ!bQ^F7iD&1gC=qMpjbEm)!LSGX|9Y<>t32p{0T@+_j z%!OC238hSv_==?0bKyD+w|5xe8&dLYmJJ?8?^E`wl!WJl*lxvFG1sx(iM8_r8;0FU z3W)I06zSy~v{49`kpV?~@-DRCHJA9qtEh%%#KC}g@k-bpmqelLk|u@_KW}#(#g@w) z#MoLF)64)q^sB{a;m8_;11hWypU1Bkz^O|CWJ)kK5wc_j(qotTo&aTGj8X&Zv+R-P zm^D91fl%XI-`oJzcsGs+3u6MOC`tqF3*|PG7kX_by#a7kiHxp8D+a7Iw9jNHz+Xz0zB@sfDM_B2GJMOYgXi z#bvStVh+onB8alEC{t14HtSn-V85ovX01h;@I->Q=RFI|(>(5KN<`JH^ilE_TLU{N zSU0fF3+!R8sX$qv&;<+_(RputW)VtC;hFjKu-7=juZecvll_y}Zo8pO9rh=DyHdN}vWp`eKrcjA!~jU$GEK#a924?*2XnDDE2r#RaCO1m$Jx3lDCVxVBQ zfSFfmLZC}i-Rsz(<;8MDjtYx@em!++%=~beIuAvFd_#K?LeE9lLB{w=7ETJ0fivPavHnFYq1pi1j9SwA>G5hQTez`<9Lll1@%gFptCKoUL5@H#5G|K48ua#5j z9N*iD<{EjUoz{;{fIV+B=Emu2Rut0VQ4G8+IUc1a zzAE!{a~Xo&VI5(BNGQ^SB|B=JL^|8RuldPCNHaz!A+gFDgLSU;1c>NVHQ~l5Z2A}u z`8hosYa;81Pu@H?U$sORb@f)2KHyl?%c4t7dZ-}JkoxU9xG4p}wIkQN_w>#?oVAM| z6S4RizwCbD7eu?srcSSWBeRlyP@+X@diCkh!$Uugjxw;|tHY`0GaR=HwCxzo5n)MY zLkV(!qwfOy@@$nI^oVrb<@xGu_=o1<9Sq;79i%zZk6=NT$=)F#sacQqy_=@a=BLGQVZ3%Rd9VP zZYZa@PHHuO!SneQh@@T;)gj|0%j%pfg~Y|NWnj%3N?xi!gxEU-rT5<54nH^O?aO3( zH$;f%^gL=D4i4TczC;RTW_Q*V$)!rx{2@WqL_Q{o^*zTv{hVXD>=LT6nKw8J#}sWI z78^m=TBlg+B_BiZ{Hm(9&ttolPeXkfl;;fQ{AsccwBdVCOMtwd#Dk&Ovb2koyvUJ0 zW;B+{?Wh9e-o2A#tdz!HaJj8;sI2I-I70D-w`Z$wDf;=Cqo(ul87`c#mt8+paLIk1 zpl}!Ev;Fh}b7HF@rL^DkuJTirn8%dFPrdIiWY>^k~30iWcy2CKEgZE}f($ z&8lR{_R+3w;Q?*JJob`jw0jE4lFsEkERC)qWN>{Ac5gdm0g~=E09QJ8-{dF&*~^2m zcej0c$k?y+-Micj(DwpuNx{W>uz3f=uZB(DIwcd5-_Kj+l4MBLMWt7c4qWpNO^GDD z?!|SAjkgahEp4+T@8L@-Eyx~Sb@NK8+#L(uSC7M=OOCC(m~MhEvTJy)v(y`7f6uV^ zT}C|_b4dX5O6P+18%HFHC({tFv7j<+6GCqDepKstb$Xo)Pv@(h!pt$)d?ne#-qJv~ z^Pt#38-b@$Vly-h*N>Ul1+dDTW|{y+Lx~zMd_CSd!5{}JUo@*UV@CL0iDF-m)!RpQ z=Ao!hF=!OUCmqtlP2Ow3rkUpuNR8Qt{2r9c#_I(+qUSl#m>>~S`Y@}buht+tMP(zg zXP9{2`ONK1!@PMYOCnd{Tc4yL@)gVN!vHOCZXRh~c#HS%#2@aS@!96~#3- zzwO5)hcw;YaG4=RtLNM6%_xe*9dmV;W=g!0oFVcKQB9n=UmmQZ_FnhfO@1)e_Mi`+ z+-W{uVOoJBxvr^u34-^c3&@Y4eDqw1uxxr3U~E~+TqyLpfM?Nam5;laP^Weni>#t3 zH{E5cuXs?+&Q;EJy90U#l|(q0_}eJ29Hj>u?6*So!us5YV3@(f!DOEr-$1a&;7wK0 z6EMLeT=rVyqXJ$_WGB}fk_?EDk_<7_QOgq5GJnCwI_dmK%U|EI(>cvWdDq;Vpa>c` z5Hgu(dGC6-mk=}9VRDS6w5!=XIshe?-eA8Z8BpuUI9o-`0VyBmV8~ITX153AWFF}+ z^5PBH6C>%`jcKNb>t?TXavq{N$OGgbggTtIt&fO=86NY$w;njym+Lb_ZUiJ5~f+xYBvqT!!XC z(NKn+*+b>UVtWa#hTGkn%F}B1QeG0SU|Dcpvpme@WAyMPfp$=$MS4YcNxo$VHe7tG zZ%kbEYQ`Rva0Z2G*a_nmQ-E_0ziEx`wb$BcB(K>q0Vv0I5pTgvgp;dSvXeK)%iGr( z%vBo@%Q*T?E_yyufypglG0=az>y6@8Aj?NSZ3swvqK%^19<*mG) z(gz}>IMz{AFKPm^`;icI)zl<4-?)oT^)A}OM@edd;gjbNz%oi&P!MxDOtmd2DTLs; zGxOHol9TAwd&8u_FS^oR23za`w7$Qn6*x8Tr7&pcO~k3mdlB*^HE1q`)E+~=U_~{B zN~g+kl?#G+G`%VVhftD-^~}$-YC(FueNk78V1?|FUfnZEIqr?ZL6%5HMBa5jelatk ztN;wO^vs`FSaGe|UTkAV~a(UR04A05A z(YPLmxeFA~vWz)G^KB9FzFBCGUX22s+l^kzTF)zjSPBfzE^Q&*Yz`R75cH9>#m2Ng zd)z@{F{pIpN?Qv?v^2f)=5C!+C|RPSaUj(!84C_GSh6H+Yh0M~rZ6w88}|X(Ho46y zZQ?p^U>`q{A)uKorG;39;LCbsJ$*}+dZy5HXJZkR?@CP??98U5ax_4+YF-K?B=MYb z+RN(K`x*})uC2D|!4-j>j!p@;50W3Xml`|)1sW?zA(Y2L-9fv2=yEIu46?#qA$_gQan^|2=hD^*=)?E$0G5$Z87Us6zh}XD1cr|``9XmZ;O>}n z(^XywXoy|K*`ja7O@ST=GDdaVsAW&Z%Q$nPm?(M7xv%-U@0vlMfU_-;*AjHRA~Jvpo2SVTWrU#ANclf~AqC_h!$nQeL{F1((C#?zu?K6CmAX$7~byu5} zut_o-7jk*;G@s-Q(M!b{V3v4F(cq-;oUM+^4lEf_rm@}f;LL?Z-xm5^`V#L#EJfJ! zyWzvN0F3M9WpOIdw~hCdnF?Ia>8>J%A&O6f(ziA;`$#+yrKdRaleG~M%`8pFXR@P-hEHHUIvbaFVBmYwXnejTw(_x6JYI-O2*n+3`C; zR<0QG-txkzdwlR3I|irC(r?+M9tR1oWmliP! ziqz!`Hhol#+r_(4EvwO0#=0a(;W{trwH=FGtsHt_8v@qN%e3b$?Oct)CT~Iw%kS;3 zdV^pJS@46@`a_2~`(wO50Q?`fdEm6CbYLhKx8uhkE*t-ahkl;2|MxzUWQ8;AyH z&*amQ#PX2LMBPqB;C51XdDLFFXaObDal9?JA(cDN7Khww4S^pXuB`7ONHx>WvoS7Q zk#MfVhPc(lOMH8;LN7OWG$}Cz5()pFZ!taOskm_(96ew+FMN+H6JpQ96BO(o@neKN z;6hI4fW~-d0Uk>iBjyFFbwy2<$BRKxQMN4-EMo~^LFXzE zxMu*prR0Lh0@03YbB#pxUeB8|#e0@d?4`*`qh``Gtw#n)Dnzb$gi+;Bqx(;SXLAIA5YECWm4G`pMR9KdeQUgJ3!Ci<2bGY@B(A_u48hK|q6)PoMfO z&#NWQ8SRxa*hfBh3l99mtzQtn8P!w|xXTgOi^A6jKFjQn$$Wt)=>lg#NNgdmnM*38 z?ohh*Z1;h(lL61dl|#kLS(Rr`yhvz3p!V1+l2|)UMyYp$fQ%}d3-sp2P5R{UV7~&) zZW#fih+&=?cszs-w0POEKxu6~1#rsOX2D7F3Tqme`U#_ME9ZMbHxiKlD_bn0G+6GmjM`3azckqKf@%IQhmG*nS_3s5)so=X-tOtFS;=^O>aKVEt9uUxn z<4`z9s}AndiohXJ2_ybSTsFi!3vwI!o;Eu_*%I1`EUxOcl&n>Y4$GyfeX`z-!&0C# z`T7`LRa&fTm#d2Hk~`1*cvnSlo1WeBZdG0q=;9vLz%J(+*1$&5318r3&f#s{7(9B8 zqfg7;o32-9dWF37@(xdZ=S}sQbW}v^k^Vj7UMo^O$@CX!QA4Wsgg7^=B`#HS_zVL< zoph8&bQcIPREAZ;&4L`<1}uVoxZd4rmq-;Mtphn&LdEo2YbSMr^%Dzz9{4LU%_Omx z-|xhFy}q*y+o}+grwd3H*zy*k008!0`5Xo~<=Z@IXec3e)Kaao0`JmNA+Uk5cIHQU z2q{8yOmbax87fA;M-|3b5}>kMg&>A8B#%>^pQzv%zYe^_kVhhCW_@}=^Bzl9-`Y`P}Ux60xYcL)(?y%}5c~E8kUJeU}gfG!Nf1^=wLx_d4jI z#HipXss$z{)okFVJbSvS#R*}xYjCg^{AP$1o%eDR&?{z_nlGo~t!2DrAbTb8T-j0+ zVIC$t;n@aHc=4=bCEM_Xrr-ol2UJm`;jQ~)(>+1juBAbU5kN_-Q-w`u;-{dH-T7#p zRgu4J?yhW{0et6nEhi3}&_$YKMY{Ewra)exOo2M6z_y|h)#^wZv>+o65sAxL~>lM}s z>L~3xRb~VQ!X9^{m%+Vr4JXsrk zuLJOTt~_|}(UiRg3wm5^EPg$EpY?Y?*#q)KLNy~*Es<+p7 zy1I(#M;32`RV5Q2i?Td&YMZj{K5L;GsUA#AAGmEu8I5VfEA#a`@U|Rdf`(3^c33i= zs8)LNaG%L7BR?$$rM)&nVHK07FR%iKUvJx96h;Lg`YQuh-K1tl1;TtU%E^YFl0Jtq z%Jh7rTEmMNMMJ`yOnO)h-J(1N3bKG=_5y4sl-bY_*0vr$Y3;TUtkoPQuw!5sjdx<( z#W-rl=?u#uoj5(Uc!+e0=ZjAciRB6cBxZ6MNWhiaqV`(&Q3;fnC-;H_=R-0LtGV|c z&g+~_9F{mySvbnZ_vkSyoFk&C&cpO*|(*m-`aQJm3N8sou^oK4THD z#S)i+*U}=B9sCsM$aT2pMO&A{vz=F@R$%>Dm6SOKx}{)-`iSssxgT>R*G7cP(8#LQ z9Rgv|MJ<^UF*32}3Pc5 ztjOf0f)?cIAh-pdJ|uLN(gEdOq-EBIGK_T5LS>ugN_>heAQSa6kkRDXLLtI{s|h@k zY)=g3@_brZft88KIK8ffYKgl%nShg8Z`)1sLZ6a)PlU{b!(1twHdNP)^8;4O6s@aG z4SX=ePZ^fpO!GvsMhaodd(#=~iDCGlUxvVY@ixTMtfww6-gRmalD`h!ecrYk)OKKw zxuMkR2?ofct@QG}=ZT3ys6mqaC?gElPM>N{8Q@;?Fas~p91C5fR^;}gXDYU6XOTED z#PS+rK`&bCojdM3fjD`3e(Ff-YnYq*Oik@%IOZO`XcaTTh*EFo=P@{(Oqz`_Ou%}h zxeGMBaO{<|*W2e0A6QU?I^ZgoqlFQ2(oRYdg^EDp+vjVO_w?c@tvniMAVVZzsmvIq zUp}eWEsxrW_udo15%MRuPbYBb2;`LX8eTVFJlExMl+*G;@{Gop$M9U`dET(23hcS- zyqU5BGa{j~w{gs4PShR2BDaX%ItcJ?iSGfIztuKn3?V!0ZCU9QI}1b+9u$-W(iM9X z!*z0J@{~<-kZa00p!dmJ+_^4zKGozH!#np#M*FeFQNIFOwQqL)i`{vv(iPN~7OHfb z$MHr(6Ri6lW#)A69q8IypE$jMAc$2pl+g`yb8n8l3UDhl*uIzPIy5|(pppxF?LmA` zWz@7@S1i?bpx=ZJ6u;T^XJj22uTHd+idG`0(nUjsH5~=it}V^sg;ER$`=Hob!8qw) zov$N3t1Nqj59ub8M+lAi!hK3_4p=w_ZaQDQ(HCtLd4{^tUX|>B!Fwn#?~KFy=^NlX zuPqGR7wkf1al-1jKJX5>9#+FM1gh)dwK0f%Zt2lBgT&W>K_#wdIc6gLG<{^QOJ`g} z4JjNz_nyU2R}E6PGzhvHTE1|R;KR7$Y^7Fvy{+?%5t$6OAFVe8Yd?6Lo88yX%UH(5 zEzp@Fq;?7-+03g)fHM^PW*>nYd5I0NW>rT_>!YL>nkn@-Z20hkuc!l35>Ifh?=mYD zp^dEVd_5^Kt9$gxu*PTS9zl{EWehH`xqFT7VzobZ<41Qn50l zY$xqgrB0jczI~2jhf+_~i3m@n^is$VsR;y`E;&s1V9%`sbu~%KF zYt3wr@)_Lh%j0Pl8laz4wQ%yn5odO(^D-vSgizzQopzh=3B;pk2RqoQy-JBhnAdIq z1O=UhG4NKhZ;vEsP6G8d!%%pY*d?FuCC?GOT?a2D4Fcs>h@;qq)=&_QMIa=~Hr|Mg zpnKMs5RegMvsn@T;4K@wEd_!pq>cioy*3|J!k04CKDAu)Ghu5 zSY9a6*cqS@JHJ&IS6 z&6T+}C#`D)xM*i+S)z;7Ic!?Xq2M_*0uN$s*oVev`BFUl^=;nnvNvSxwmXOK+iSrS zo(C{aJ~Q1F0|hz*gh|mST~Z{Vfl^zZh!I|1?z(VMmJS;>foTIs1{Z0D_7}awjL(OJ zF>ZRRjNd~ZQk$1W{-Wmr?G)%N>}^T;v%?tcuJyzt3L<`X&07*!MQ@iR51<;W-nAaT z5#o_@X3I;q2~}n|B^Z`|y;kgW-DB#@Pjh#rNjCbp-;E;&M=2IV3U|7ilT=cQtoBkKv}{z* zM(w()lV&}~@AnE2fsr1owo={)WVHg z)8<)t=_xQetXm*94OhUv$yd9)l9(zFAG%1wo1*J}aT-3zLw*ze6dj$^mWZ-C-M8S8 z9;?wbK9D>xS|}4Wme5pG2AqqOH_RjNQYg}zyw^t3u*2NJNJcQl6IAdiJf41IpodS{ zQ$34Sf5{jbxP&|A!THs%nd>FKA$!iAuS&$Lx+LNO7n& zsj)7Pt6Ommr-3S4^MQw3`w$dV#Li#3T_G5h`U{R&o~N)hPZf*>+6b~djZQx4CH|sU zn+p;QL+q^>v8&>S-_|}-F}z6ZbbRylxjf7zFLs5a*DqgsHZ}>s<5Y#EF3D26{(=@zcG%`i8Htw1K zi7&hzdl9SGOq{392W}|E5S7C8tgpJc$dV?^5fA(F{MHlKsEj%q`WNi+n3z|r?6#9H zo9#_Mk|j2~8{~U7$+`MGsgM`pEoH~j1*g|?6!{b*^U|KD+GC_5gJ zOd|YJFc7NimC!~(%8^v20pyzna~iHs`F*|Gdb!9;_&oYnXK8~&7?&H9!Q*q1p><(+HmbyWr0*gsdN(1XG%o3qLZw8 z>BeASho;|AhL>dTbbd#e2V2-yNKZ> ztfYe=cOXUa9(dZM#|uA!vZn)#`0n|>Er(Zmpa&d7V2h>uIxz4>rDpJ6m~x=tBP&vl zvs~&pH}j17HL^No7Zj4UYLoLl#*xbD z>*x51@1rk#1-V4y1xCg&% zu{!|KfFp`Lro4BhJ@V8j%dVtezUo@GTD*BlWZt=+a--PD@14yPP?H%#hi9yv(<#RI z-~b5#h+7{+7Iage@ew^%jeEQS5PP&0?DR&d9x~W*CF^10ZZj(5I**x=mBbord8%RU z#nS_+bpn&P{EJ^{a)eha)a2r^t>v5Yw%9Z>1N+L;PuwJx0BiZ+T}NVP`ifH`-nDkz za96&QeMcx9g4}h^2BJQfw7o=(j^!###ODXrnVjH()2Xn#W8F9OQpp~AP~zUB5foIZ zZg!Ul%Nh5R7(n8Zx5#RC-h6jqu@T{Ex|RhOI4dafVt@@ngrK_$SXQhs;y(T zbUVg#eH*uUWpv5)4#)R}*udQ6-#f+an%Q}jH*4caEb5zXBu&+r{CzivlutuL= zlW7+K0EF~0W97Rf_*-q?nbx#V5w2>Z**7?FJ% zq9S+e7DINYeS7f8O?lkTTu-Zwdl-tn1!|DVt5-5Zlg&1P%3#pmdv|Dhv<9VHRQ1a*wKo@SfwLlM(Xqh_NPvh=cNQtg!P4Gt(I(*OAPy20D%qvr?A5ig}nuF?9tx z35s%c%i$UmKA-$DeDUi~A|~F6D6SLM045tf*J`@sy&BFPg%KxQ=gc)82ScE6gp(!L z^Fvd?90(sE@QSc?2j0_b8_j=yev z6qFBTN<`iRX(gY5KxCD$zW|0ze2TiU3(fuHmMRDlz15JVoW)nsf*-CU%cN5z?TwWC z!vZyiVE-l5RmyubG~}wNusIj63y_7OoayB1Z8A)sHR>IO6pFd)qd4Nq^DUX58UffF1 zx;{g&?p~}nv|J6(GE2DL`P_ zlHxAgGhx}XXK@En${bJ6x5G>}4$%`sd~I3Xnn0L%IUhE7rDL2rnF{X?vEXSEF`Z*( zy^P$sG~{P1+2mf89RgBd`+%ya5aOm|sZ1U}%2ol&cX_cbTsMimFG3Ung$UvG2rT5!0L*Ri$d0HZ*n-ME9AKgWy5BR0J6em zm#V%-eDx0H*5@2lJL+Cobk&>c59F_$bHt-l#8jPD?wkke{hnU{ABhl^4&4RuTJ=Eq|*jcAqcm6i(r312y zzyo^-Au#Ybm0UYs;`Vw_tUi~PeO0>YX$@C8`X22gSi^4KVx^>1TB=*{gYKMot5`cF zGf?K5MxLdr2eu%lgB~4J7gq$+$&pR-LUh=k%hF#2FIi!~O0sG8BdAc2=DS-sMYs!y zVy7W|{kS*|t_wJW?4YoDs5MJFs#@2kH1up4FVRf~JXMx(fF;mixjIDFRzfoY+fN9| z*2UFrx^!We;b8Yjx0!&Eiys?>IWN|k3C$3!sp@ZS2=8dxC> zGl8$NCNtg|69sJCnLlGLI8n0R#R{C|hjY_oxzjzhz`Hp*t$VT20{HOuS*d~ToF@?0 zo2V{0rL6bx__afE+?$acw*KWVsaR4FZu^PX5Mt5QftF5hIpxEE8ptAV>%6{7=0^zB z`9O^T<-JiJ=IQm+M@_)p+3H2?2RA*!weL7Sjk4{`ozo?+Ji`F>Y*8L z?P#4d`W_^bfL9etF;2tLuA~P9N>0(h>5}gd*shn#Q$Q)xmkNm)+7T?d#fqx<61MV{ zTLWF;Bwl2q#vZ41PpGXU*7+MU@^Y_|K1#W51p<85s=mudxVbuH5(mOrC=wUMxJ#wd z_cQ~{2-2o|RpjzYRvvH8qhw>rV5`*TA|Qqtyk__$SoDkFPSbgbBq8Z&>ZE7@>g;MF zZ1dJnpotJJ@&dGBtyiF!70~t8fW<1o>)sK zjcve7fUNUWbL+Xh+KJhyy$#XG_RP&^8CQlc5);!#+SnB&efEmNTw`lz3`bE?Ch2kL zATDB76_OT#UP79M?b2vA_OgoaWw*WHS&U3e^6r{_)`tW*o94w$hh+1@vSg>gQ$WtB4N6hXbHQ=(#hK#N zh%wGV&j62P07^rugvr_z#6(0~nLXmCx<^!{@5oFq()=aq>wPHx23+A@1*R&&L&{Eg zn@#<^QmLck5(*TO&%5DzIv0nLAHAbdj`WRl@GGFH3(`rtdD_a`-M|5{^uUK2o?3#& zjPlal+>WJWFb1M zV4GJ^9QK5D-K8QL_HAO15uaC|=->bhX1?-?Vz*FUv-cjT%!NV2pd57%EyHJRcSlNt@t!i7P&B|G(sb!>&Cf){2L}06@ zw9C(T^pe#Wyc2lYTiz46LL{g47{+|ER}b5v(5sG@ym!US!Yhn4$$(hy$z{r$B$=*Q zW=Urn=Ql}s7$fMauSPT^qVbRmYf*H^T{QCn^~sp3FO@alEMVS zt6FbFz{VWW>@hlwspy!gSyC$k!?fj!ItF_*41(6LQY{?7N`j~_zvp1(FNDvuT&C5S z5J*OO<3Z@)7*bi~*%bg9>H*DrMX1o!?$i%q4_}IDVbeU=^E2P`p<@*QLx{|Ycg9_@ zHdcGqApz@ouSl&u8fA)})*@uUuAcF0tG{ZZz^PWN*z5h1`= zi?-N~{YbkP?@snn5r<3C5)u{|1yBuLYcB|!X4lb>VIX-H_LGaZ=R^T1DohE?MIlMr zF3XkY<-+W!2bIkxZy2Pb7btHR>LHbEdk#{9)x1Ho<7&&>(}kd+*EY;@UW8K;9jWUW zd67387+E5)n5qn+HWWHlrb;Cvn&p&2S*O1fYq{IR!3nL4EehoBv4=|O zrC2V6IDn8>p0~5U8Ortw95#H*k`4garEYa`ZFOm;F#y-B6{cRQG@Yziu2DfJSC%eq zGn~@Bx2|%)5`L<;$nfG8Ud!CGco>Y28ShOgj!~?L`VG z=9D7=zls{b+bCY)sNL8H96tpQWLUCyhS4hO*%2}$o=Gv;(nc?G>2&gCLAA#Nz%EM= zibf_}DI?6N3wSuF+}eskSI?U$+J)G-D`zx_yFD3Dm8Q_%*mYb3kavKHu>)Gola*S(H6!r@EmH7j#S2#=?O$DKSGLFw3ad!3YnLH3_vny&2sIyo)Yxd!wl_(iw z3r~cQi5hr&#yx1biZb(@g(Ff}>ojsmUt>8-ft1widh`T)0k;q;&M8( zA)MF(N=!gq(pxP`*gR?*Mlb6eR`~fv?ZBi@i`ly(Z0@6ni>R+2jGCr;CGc5m-AZPX zgQZY9FAkE6Y+X^!G56yfXQg;!xUWD4t#KHEM%v8e9t^&73TThHbJxN_QhzL{H!r)L zy~2Hmn-5s)MJLqJp(VI!$)-7>!fc%+8AQ$VYdEcYgG;Vu`8Xx==D18Ga*N)B2^Q08 zggO}{w%tN17C~(yw^4fz4x(`zXi@%>>;MexF?riV%?{(K3157+W_WGKJ6LAXuhoo` z@@YzE4VJ~GeuM)Np;%q?`&blgBILKI)Xf^NVIZSFh-%)@atb~GHY5(~cc zhuIyR#6qUg{s>;tIZIx+wPV!)Wd-rcih&xy-ubMJSr319*3O+@Hh?COlC z^oo=>2wre5dlmOfsS3TT_Jfso50)rIbF!LD<;1Q`aglAi&P7e$o6;3%PdpEP2pPO{ z4m#tVny|>&aA_TvtF5^zhu-nhg<^H3L|&c9k<`*UWVln!vqP5KuB|uBmalnPn^1_m zMS4c*gfJ^8z0#;WEJB;3itJ%{Sz*WiMKM^9FB}HykV+bR`es)<7O)HeUn1~j;yx3q z$is(E?G8Ha^i8p{L#Z``Y@=>b5Uql$0eVH&1YR!?`&WVwRV4TRmT#-QQS?jrgcs~?+Pbff*dO3XI2j%k(5AUapWDioJZyo&8y8FWNLAF zsER_46Y$4})vEdnzVYBRuL;reR z(ky(vV>inniL)bdE(+@N6eBl-%wv5Y)~Zc49RuCW_S?4ta+Uc)t4rrvTyZ&UPfTwa zQ1*;pHIKy8^Aut$Q?-1AiYzZ`c&=_N?o|h@b}u-uXKF`IqctrW@bc1@TTJn2TB;Iu z80`x8iqk!Y*QRyvRw3t*hj5giBkOjM+AAJ1bCSbKL21{=(oGIGstKU^+}OQ( zBPqfvja3TMM-uM5(T{)^JQH@`ozBkK6FGSM9=#g| z*Tn#SQ+T#x7kPOd>SYh#ts02h>wfs$;>iUyX&y2RWma32>4oWbQR?Xo4y?*dgqc} zRXpFI6x)#3<&cG9q-Oe@+IVV8E_YM(n_~Z>n3shrnUHL{Lv)YN@5zjM7m-}qE2*}{ zZAlNWN{WY~Z;dbSUa39gBgSox<1|p*R|AAE*GVhuIUFAHWtJE0&5Yb&700vZ@)G8>hAd9!T5N6|?&y9bQH>I*U>C}Q31(2$`RP}R+2wtYv~sx`;1EHO-W;mQc- z{?Z|(x*s*c0h?Dvh9#0-%Z0GuG8_dZD{?#-5N;RD9>D0nzc5Da%m8X&CLXy;=6X4k zk00soozmzN-nSNXyf9v&Zg@QdJjuHyPs}lX}M@G+H(Uo zd1*Tj&xvaNEid>{zI!u5!!_p+FgXDUC>!XUkATA1!$wGsUh?J*rl^!DBaWB(oUrFm z?LL2SnfcaphNfoOf}ZBk9Fj9Ck(+Jtu7@P#g+35k!^b0x_^2G4r%Tx6d;2DKe@zeS>!CJRGY-?Pl6G-*3Cubff2 zMXkt%_L7wH3gS3cpnQtVcL-%~@!9<@e%p3${ zT_O?8uKX7FTAA9~&iFCTa`=y_a3O1(uC z;vKpi*Rpr-*sG-isqZ1VHitiuGVAuU5x&PS;<9mgeCeWwb2d2_ zk$SfqmM<$JPz_I%0z-hq9XO2LTrIVkwG_bZvLoT>x_w^}Z`d+DmWo$$HctbcV%~Z8 zaMe>rESGC~HvG#(}OP}_7&2b@qt^w!!Twx8jsE{pEdK2oM*WS2g z=gCvzC!5<{Lib$Js9ERkS3|62&=Cyd^ydsC=c)5V&IO$12h$2p=tX>0Ntd`(wSrY(7xGP+it#=gGHvV^dRiZ0b)m^BMh1wnCK zEqJk}$E=SG-BatasEj>7%pje7wWxi%HF{@f?l+ay5Q-@N2={T564>@)BGK9#xlog& z>!M{hyaslYtEs5pHEz{St>KLFtJEr5>OR)N#<`f*1~Xer45!yPBB|`wt!aNCYf<$V1Jk&gp-b6%XYRz^h z;PTb&d#=#-gJepWk*0!dj>bcWJkm`9pIOk`sXiLYCE#4$bSccpp{69Gn94W0dRa;u zv zO;}{BXKI$g7r3?WkY6d+0sv4$J3Z zm9& z+=A1Kpo_F7F~UXgu-g~bG;2=YB)+HMPna_c+b$)q%Zlv!*(%T6I+^>sgy&Jd=Axz@ z^g{bBHZCeInW;SQTP|G!m3LyG2akhd6M%xWp{{hIAG%mo?Fn{5@MUURM{7Nv2|}kO z%w!9C9pIM$igvMquv>Rj`!uw)YS?3p1i={&OqRGEPhSd|QF+Nd3T-=skm4PCbTZw0 z`Y4|rFvc_AITf5EH$aT!!!77g%(bAgDZFj>N~Bt3AyD@0*XCmn_<@wkyuwUnr)raC|eaY@Pdr#{@K4p?-ihaYC>$vTNC0@FVEmzSo z@giO~_G1h}3$w6!(Jl1mQMhfvm^7>aozNcM)tg303{!1FG$aCqOrv?5w{~-plj^7U@c4#AFy8)vSScG|ADA+qhNQ zA5^RN({sC6F$beuwNz+&sabG93!fk(ea^=^(p1{DRxrAJBG_QFIyVaDE=aO5U5Td*&1n++ec8N zZjif!_G%iTfJq+~F7)lxqgjby+j_!4SDS@mpj55vvCx(4UagJ+C3uI&vP0t~u~!NW&oY)K{9YbLbdfJ_YQ5TuS%);B z_A+RAQIE<-UwcsM6qepf#*#i?f6U95&_^f)Pn+k6SE9jV-wp1k<_aMsOnhe%Uem;9;z*SFyfh%p)ssU!og)unvy+qKY zN|ShS4^F|NrT|5KS@}t));aX%y@PS{6on2A(nmn)n;`&Y_%u4i?b*0gzq;anER<~B zk(E3eVvrk2%+c88+{t!C%7#quAWK+KS-k1(!#OyIi+o$p3f6eChKsBQXG%Z?I_L&4 zCujKuvm^))>$_K=zHlDU?@e4(aX(CyU;zh1>u%^NLyRcvQ?R@_*-w%QzDVwKQ7Wt* z4-Xo(naq2$Tja#bq8mn!bgHMM?_H5cb^@;Yq>O}z?n_0LCthG!4|p`|4WI{etpLZ! z!cvuEWS?3pfFdGzteP4=8lxGP+L^ARQRdJo=ne{zEN-R8hr3C9G=l8!XbECjJnBL) zE?cm8Kye)qNmfD5Azqb6ST*V!5tPtd&a%E-zlsbv4F`7Ug(iv{R1=1%G504tc@LEs z`WEuyZT*EZ#i2+HX1|q_(R=DbtCyg;Mo{tM-Y)VT)f4WhU`##*fB0@tg^XR7r={W1 z0GU&mg>^|_Io!j5Z8*FHKerT$Euti1Tf+mn;=&z9vRcAed*xzukxTeQ$D3HLUJlQ` zm&Q+?&bZK#8A-@c=g7JQc_~KtgH7|%0U})+>gy+Yj9VoEgtClEfGIu^kj{=I#Fm); zF!aHc-q^_<_Yp^2@L>Zm=5?5IQ_WGqWoKBujPnz4R06XrLgC08fskxC8e;~P3aIE# zb5sVxS1$;PoLh5s!_A&*Hfu;>RNJiky;a0_s~ouI4~l!vc;2GH*bA5_V0b~Vy_5~N zWc0<70nh8FaJ1S$6L zBm-ONuu=p>1A8VTd2oBkX1A#{&tDVS(iHbdl*_WDW3ni%3F9<5^3e}UAn){qjYfX1 zsqBx{!>4AS(M~i(G9=~cLbfp0LRMut7tLtWO?GTnmABi8&xBN^O@%VNiW(y0r^YYL z1TiLUtGt@^Dk%lpgoXFH_A`!wr-7#ivIaSZ3L#w&9%Zlpy@wO^UUTvz zHGhMhxmbK)ps;sgzHF>@(6$eH6oH{ew#itF!u4(0A-t_gMQ*0Rbdb{Ic0#5HqMRUN z)rLR|HE)NWVUW-nKN;mAgk8$K7MI$9cgeUI>Md|1BTp?z=PW_?B~u^Rs_0$Nti6J# zeO?$I-q7_}#2Ol@X}p{_5FPVat=c4G@Gq9z-uPvf3>1$l)Cf2&bHC0GTSaBBg#<1{ zHR9FNQZaQ_RUO|Qqd}5cg0I=7^z+#J~y~B8kK>Ktp!h)vYZ6rfm zM0Ey|Qm`+Yf`H1^>GLawM6qJ&vp`IfH!uV;=WM7chDfzp%%=o+XOcM!l~*ai#?rU+ zmRDib_C-7;${l-&Gn%YY!}4ZcOQj9<+&i2X&otGV-ipXc_K{RCuE;$w5~|2-YRDJu zE^W(v1l;9>4f8CCW?vfKOALrYEJMd;s*N(wgn>k1=6eqSOoXei8^&+kM)~1YyteM= zrj{b}V4kpuLd|oS^5%w}j2Ch0=fcWNs*PnKUSzN)Wr2?~0oSGvS8qxua%F(J*L!{0 zflW3Pt(z$W8+;;9R}io~Tl{fOQLBdAF{LS|A=hrU`aBUkHnENkD@!lF8yt z)%hhvE7>GSE?->7>;^@H4nQz!Lr&v_TaS_?L3Sl~yPeS~f~)mQ%OKB}@GR7H{g%WK zEQ?MW9@G#!>>G4_qO^De7C;W~y`31Dk(B;q`RNzSFg_5ugK-G>LZesKwt~)I5=5?P z?ZY-igVw3bu-zlqog^rKPy8fe z2$-u5#NTE4*e`OokP?di=t0Y#uP~FEz~)gmFU7o?foE%v$MrSUgn1M<@qg&9w?XCR>^`4b&21kN0XH(w59D_Zc|w6^UodmD7k1IGSbav55lO-N|1tbAlZ0 zVdlskKTxLFhQk16FuPK&TbyozGwyf5vXRkmmh+W_zT7jz0uDqhD^`XjD6DkevAo?! zB8J)b*!CgbdyT_{M>whvRGKGeYS3I-CL2bCd#5m2^3jqb%Z4Av?2=2pH;dfw=^%u_ zc0UN!vRGGqcUxsZ*A0-^Oae2{C9C9FlJf?F4{GUwA1}f?YS~z6x9AcGk;f>wuOlDo zfKIQxvI8t8o@Y{`e5?LqaPR<Rfa|!nZn2UVD@5$T6## z$Eh%^D7B+Dh!%Q^_WDg9zJO=-aJM6!f#<*^teRBkwM}eAT4$YcTrn@h80)~sTuFP? z7RkOtMH+bXwxCgXmWvF$`8+*LY0>bES)|dwRQxuA(H!OL9d&+;zS{2 zUpI#Gv*+YC2_WQj@7n3&1Txj}=tOSOAv%^`zLZ$OruE=6^k;N&iK1L=S?~BA7+a$G zi;ef5MyZ*DyhT$!p_Y3X`(AsIsQDSaNBdrPhPC=(EQqf`KV*bCp0x!>jZp|KE8b)$ z!!32b-MID=#eTO-)9Y^_sF10)kFK z^B2th=xN!TEmNhscW*Mq51-W&uT%t4*fSO}myFt*f+q>88(_c}6g8n9y$8LoCMElr z9jdo{AO@izJjVrKq7)40`XzFnwwWM~YTIC=1P5)_jlj#(prxRE|K!2XAow*V{~5A12RIl zb&-l=5SO=Fz8G;}c(84bwLaGr8;{(N=oH`qu}Lqg;Jhw1OwcEl`6l*!p9bCUaR7&F^5^i@GE_JC)K ztBp?}v}zFH+9Q5XL0L~l-e4z4I~U#i2kb z*dfhR92D5VkWPWW1;m+^za&8F%Uk*rVD_vFcNlOiNN1vER;3RP_pp)I(G!Teo zS*!wMx_5-5_VV#YZUklBalW^AtJu_*Jp-lkOsvCg8c$5h&~YscsGah86wIum&#df* zC8nS}l>xrT`0DOqzl$THx=I4Yh}R}cnP!S;aw9nGwRs!7sM(LvqHonL@GeK+6L*&; zkA}gKj+kaDn_cmV9SP|Z6dxV|kuKtZUyw62AkjNmVr(4|%RTeikk)ffs{z`e*Oa|8 zwGUJ8(X;MMGaor?!_Lq(TErlDW^FFH8S^g(SsW@3s7$CyR$3)04Em>MbJ zn$7LT0BtN4je%p6Ux`_u#-6cJP1OYBbU9ty%WRhP4DL9pd2DuyH?J)8fD+3|ISIM- zHjT?bu!yvc2qL!4{Us}vztX%J1_)v=PkMF=aw`dbYvaZ82$^uJQmw`yp#Wy;f-AG^ zp2W!DZX(E$Phb7TbAVs#yWLpCVP31=>}pgbjSP)=gMg%RPExLoV6E6Uh+FykrXc)P zN99Y$nHm?gp?&xwEW4IH*>aD)UNxrZZqsFxLx)b}l!z7bd)(S0a?d#P;zAT0Wy{EX zsvXmO-!vn0xdmeMLr5Zjt|Z0-B0~k^BabkeE!LY(C;Opmf+3tPCE$U%%tw{c%HYIZ-g-M;x#?jD}+_2tt7X5CRU!@dlK%NnXqyO9?s>J zZ8sjchpC`Xi)xmyud_ll2xN^EuZ=tn@G$mSV9E0;%=JZnk}hZKXBCpkGGvlx1~+l% zqNl3bF5ybrCCtEA`J{y2iEM}A87#s=To$DJzUag?bSQQTmv!3gaqJpuSCjJ^Mh)z% zd_m;Hwy!)x}b5WvYU= zY4S94CCm{w>Nu@f-p)R}uwqR)*b_`JOsW^?bEt(vf|2{o^x|+Qi<|P9^`oE-W$-64 zPw_eP$kvMo0OW5Z=P_VD^g_BpHZE7Bqbh+bO|Mv>m%?K+OWyoO$6dI6Vh}~*Nn?Z~ zPF=fgEP&AlY`Lprw+V$IpI>=W$GD4H&Q%!i5=cg!m9zf^G&uAN+67J+-diBJ)Fz;( zYmF2D?saw>@%4 zu7d*!v;p#v!jJd?JEyA60un9^)C*FJoIv%u;)4N#wQbC80Ih-b6u~OngEGMZFgZnO zAT#OkcPxaod@p!S9VX6^g!y4z#hTF`bqXuM(BbhE(&!XNRpcDJO6@>eNUzHxXgHoX zsU{iVWF|!Ip`5)ShtCIt%98fRZ&lwF7qRPmAtIUBPbSgFJpwu2i^FU-5djA!>z8{b zlkunu^xeG4E?oeOwwV?sGgA_P_g0T>OX5L*T{j+I^QL$AX*b-j?AhhLfcSxh?veF>9u=z_l*kp#{OC-ewxg@mB(SuYYvRb>$8_yKD0F z9iua6)g>#SCS2VdjR#gZJ<)n7(`XY{N`kfz^<})w14*QBpiRGkE`*jadi$nxM#p5% zZ6Hw`)*il>Q8oZwA=?-y!UklIUabj=7vedTE;6;Ixjb~&31BPm6~Q%GCB?Ncm!~=g z#5L9veUE6O)<*0~6+z>O9owo*qQ|hfo_10-&FQ>+0^WU|43JybaQ;-B;J?wc@^Qb`(R1 zwH~wRg>w2A(JtrId6;i>%GX+ZI9kJ|A98M{#e=x*%qF~J)fch*L#2e-&p7-`vEa2kOz~*2q!rL01t=rNh{Y~bcG-_#4XFgD0zd4J#!2as^>;rCHWZV0ZZ{Emsc871>2Tt zMg|fldwE~^E5;5;OEpTas6HCZN2J<*__kT+cpRQ{BU*~0!wVlG^>%>h6W6RNW1&F2 zvDeX$IRH2jbBD1+EZ-Y*l4cT|Op^hfvu=ee zxTSQsVqq-rjFFgL7PIFW^TtmZ^Ss}UPNLE@>NQ|y3t4gki4+e#Y^W7D=7T9H!AO ze)(pGD6`sfiq)b0E*AfWyd|}g73a3h@})j9dfP{c72-2aX5}&Oj@Y1Q zS-@=8dOJ=+af*P!JbZOqfK7*T5kzIyjytE5_} zA~GJ2klipF@T>|y90z@KB+K`%JI_e4 z#w)fO@-=H46-YKuF|P}#JK`P)95B`5+O{)J``H$yO$;@{)>C*FLi@nTqfsBXO{}u_ z(=xe-n}KaeGFvS*?+nhmGu{Js&MHZJLJ#mw3)tedsE4zUhRfM=)g9#Dg&tvb_&lj5 zCeh{##D2rQ{LI4n;i<1}#wqw(P59WH2Z>{mi6Ur9n*^Npdx%=rq%oWi5Dp1*3kpG1 z^JcaNJumLWkQjGgEFY~oP`Al!jCN9p6jBt>MFTzV<>{ zW}y_W0UC{cz-9MHQ8Q-(CTK z4le=G1Nx}Zbr)qlHh^Io+ma-4?dOg3gs9 zvD&9;NW2INjRtr57t>hzR@AA45Sj$uQ|k-52CCHCOKpCAMl!LGk`{WwQKujs3^+

;TQ8)#7l>4Snz*J)FMZ0Q-2>;ACWq)?04 z{KkU8ZD7LUQgu>@A=|8$d%ND$tibIvY5|s7dN*s`P+G1D05)v14kM8?)#m=Hiq5o* z*S6%XcTi;6bBrp89z{SixoY1t-IiN&1J6i8< z9fusdj-pOLv_X5RCj-6eb(|kZ0?Q0_^Qc3mCy^)}PRsM>s$vA&3d{Sd%M_4HF?NaX z7>it?UM2H$A)7Esd_e1W81xA7o~pfqS}*ZBXuG|F9)Tp!=h~~2WBs7~G+*+wb!Fs- z{8pb|D;p=Jrz(Rh-ElJq-i*-pfwJiOj5Pqq2}h`9!9eu7V5QqV|XUTTg%?mS91 zDjJ#2=M?>nc3Ros5$RTS=gmW1-h3I=k?Au`8HQ3622_=iOOM(dbfuwza#LM_j!PU~ zXpvR$bICWowY`tU$-kIpfG?&cJ4F*-;xp%(e&jLnl+R)*T^fl@i=%?3ASaWLKu3W5 z2;ZrBKS5YTyqM<3#`DtbLQ7?QnM9^wEhw#&_MW3v%9>KQ8vEM9s2g=SkJ0O>dWC3P z9{SMb0i;7+s`M;}j6t$Cvx_Upb=MBKHWf?ng}!-@f~PhNwD9E-9hNosNCIHrHVIxO z`WjK|Vsjy?272-7v1fQG*K4qA*VNy^2G}9XVtAENN(c^{okvXy|AN}i2eKY0l%!_g z6QcB&jmeK@VrxdJcBK=!TlltNUX~7ScE6|aj*$DwdXs3?+CgF?LaL;$ootQTdrx4x zDqWBa6E@X3Aur+4o;(o5lAECSBIe?W+C&xZw(;mCXA29C>s!psyVua4( zCUMI1jTCc>czd@&01`&7X`h@nYg-{74=m?2hC$Z2Q??speJks-${Iw9xqkFDISP(cc|^L+xKsr(_N+ zD{DS#m%h%ncR<(j01m_HvWkw-V#y!8Wi}Uv;GSz2eh4cKrx5Xa?}W#Bv{)a#i3d3a z)@Tw@Pf9=zV$HcaC0rKJh{P=HN}h5oZ5X}1L3NdWSki9<@s)TL)U^k}Wz8hGj>)rC z9fKGUs6ig+P;h&PqL(A}<~c*p^>ox~o?uLoQj#5mhh~vWFj6nE z4qdZ`DMZD+UWxYvdl(Fbn<*&#MRhC5w!PH}!7YziS1AFc9V4O$@go;Vi!LX^93uAg zQG;|a5{z7(JMXKrByfEE!>saWjLO@x@sql@D4MXbe0I7oj_uj{Z1 zM<PHNJ=wK;{#D=i+aw2^>`#K}Bs_@NORA#8FmS4y_$EhQI)C0NL16-tmV` zD6(h`1^$Y5sd`IHqIG39&!dw#dqr7C8P1OUAozttC5BDu zs-@dKb1JKeNL{jXI(%=cb&RN_XCcV!h{4qGj=2%h7D?q~J1#3BgSFIVNWEW$)na%J zm7vQO*fYPH?4{xgYoDbCLDL>|Ey#IiBRpvasKQ$~cu4>l*qfmP2h^^eNoKb#vDon- z>`DfPp91V-crDMu^SwRk&UzyZvN9zGN!l-=rXKJkzn-W2$Vw)}0$*lN^ThKS05J=F zBbSdKLL3{$I0h9G8O>b2=Zch>JyqNlxJa?gfQy=HZ}hfMDfqEm4{TJn*Yty}?S9od zeRCu^)x~6HsdwBUCE+NBd7kf0tj%M2e10A$B8e$tidRcBsuk}&aDsVT@MtVWrz|q9 z`x!lk3V9I5@&w|Dp)Rs@dSDKG2p8d#YSb^PLAz?zHaNqa;BAgJh$W^JgtK{Zao3(? z*v4yLrV}wTd}4A<>CWS89*}|e_!;BNdM}r0D-nJ8NSk)M0_A)?`Wb9 z-t`pc^uv}Xy7W*S@?z2~p1lNE?iAw3*UtbB-}eQon#gA`sL)gdnp z_qi+ND=y);>X-XeQp*12|& zfwnXX`3Q^Z*1_@FX(i<3X;z-p`D`j!X}h+0tZhD`fQMBYt59hyCyE4)fK$t6oVl-i zZ1Sx(D@lPd*L$lP)(=(SE*L^u`pON6FI$ktvFC-1=YwleT3<&SnKjr5T&|aO5GaAB zvH6M#!;+6@n@#TZU9lO!`lBl_DmH)9#|+5IG!YLDB57Z9I442v7%mU(V9Tuu6r95w z_P|7PdwA?~&&Kw_=Hs&+M{U7-v!fJk#}B&R;f}E)ERV{QS&%JV6N17%Re6*2bUK#L zyVGk+L-QzKqcqd%xi#(L2H;z}eYhTYdZFS+O9sjGP}qsPM{AA4Q}4<*wRxpHwGaEf zhurW!u_pe)`mlw(&+LU88`$u8j#T(ro1w-mlo-0t(R)SHo>C8YQl^*!XX4aXE9Y7H z*l9-tFxRUyuIe{7XyJ>`4WeL7)>`7t>+WeRf;KcRUJc3_C&*q>8kX+MB`{kzx6sFi z>Y$LQwB70byfNLMK#jgCd4Z450B$&EMnYmqQ#lk}7wky5KwHkIR+1BM+}M#4XEm+j^~lQ!qep*n4R##w9i=sed&QVMVrbl| z&F34Ei9jLX6k5emHTSAf*mu7gVuI5;v~XVIia~3LsYT zLiQ1&KErzU%tJcjDrBgI$tz=e5Oh!J)P&je(Ie(kn0%M$rgJHkBs$YNtvrlB?ACEiFj{|j8{B1(sF`Lz6>_ZJqo3? z#V#)Lz=jeQVM}D~B+q#p-I{e8V{_$J6y8Zf&&}PJpgXH$V~3qdDPL*gx!7s|ya!op z%)+U(G&{Hb^3H0>m!DvBHrR7`RE`aINO{FwSixtAk$RNHDAr|7m&NE7!7sst-s?S2 zWubQl`&v)6W%rHTR0I(f<=cX|%j#@bTPPaP5b1JQ+gvm?_fM`LeQ_NV_tLgUuozFp z=mrMdaUZ;ZxiW_coLrlF#ikhe*w9xm+#CQwK)%0Wg-J2yGOYxpP0OA@D?b{q!@jLK z1dR&FCkF%EHHQxh=GxrkIC+(N%2!A-XROzmgdo`|8~q@dY0MwUtxFp3i#3I0f5uKb zbo^`vU(q%KQ(j-p_VimfTY)=9&>Vym5_&L*LGXyv5rQWl&Soi_W-=W?J3GI=#ugWr zU56)BGtU@iG*K-mm&WxFm9fgu`cJTJ-&GDVN711&sS0iqpE6x}S1}ZZ#?>LTr1o1Y z%%Nd?jpu3JJ#w4{m5{(fv0LwqN<}vj9`poHO0SlVHM5a7^xoFkrG$aK^V%D&OnD@M z-dLIa%4cnGxr|~_F81J@USmX}AMqN4L^aea0w*@;3TbkmLUbN+G22q(u z9=fk|YD(ams+tF1(>{|!!|`pUW_pRF#WJt)mG0Y%zKZf2lDafbw0K*!i0TGXmZW<~ zO-#I@9ux5@y@4!X{q>^iOj-N$SyVRW%0e}M^iVXErI0xv*X&CMLps1|pk-5J7_iDW z%_lhN!A8dXJZPK!IllogA6-%A)wTSPU0 ztAKv9@5Nlj=2NAo>|hmmHiRG}0gqEp92E>onu|CmS4bM`Xh?073m#Z7Nb=K3CgpB{ zqI!@&M0to319;jVV&@CXvln5H6MD+x6KwuoFrtOK8?j?t<-EKMvUy@=p{lT&jx99d z8xI~SjwGi)dUSdw9*;*L)8AbzK}wL$ZDlrxPz-=>1-+JB0rnkX-e$uc!@!+mefpk1 zC%!;2je4u@5ZvliKq$Df3%G(%{IK0s^3F?3k4~aX2Pq~kHmr51{8C#d-zhwd7#gh3 z5;k>8#~$rdITb-9e1T(L-SkRoV1sB|$Lqp6gw}b6Jof@3D-WkGUQdJ) zN+QzpzsN3ijYIS}q0Q@tC+{q8%E7dy7xXR7G4Q>?hnzes_JlFWHjY~@MY!5&!}=wi zwpz3!bxf)-sUs^^9zfjNK^PlqF(mh7+&jItH+P=-x){j4ojZ1lyLl zp;SS)zUNL};kYH0ezp<_1{YQ@MGf6^xLM@31Gk$xoMHj=MVM%|4Ka__VlkU05lAH7>ExMQmT; zL*4N^tPaM98y2?LkTel?K1tN8v+%@`JTLD!bV^y35YpA@V#qa1^#QL%Zx9-1^$avm z3HZTls$FQe(|$266%W1MT+6!62nJmYu6`L-sWLHBDnO2+0IhMl>G*mP3X1YR|5 z)tvDhco6E5Y27mu>ifdw2w-As?&7~&!yBc}F>kH8u%Zqieh z4J&OF-dB|`>j@*uvugJT+jSwY$_aTcWc5lit9rrD2hc*?*#q?!xZcpnX-ow@CW6WL z-1j|~?h3%*kN`4>m+{Vk{hsVgDfkhP7UTp)O#RpZuGY>LpaDj+=5k4AI;4{=jqtq- z3*u3uz}EXF+ds)R-FreX56Y4~qP$^bpTx4XphwOi!1AkQiUhiPvvSAhH?S5HsxQ0K zsE4A1#i=kTC`GKL@S#xHp!!t_Z!B#OK8I*3x!wrhX%z!uS>%YRwJYOc>#=*{^oo!Q zr0$)hMQ1)H;+s)}c~7njK~E;AU$7qYyu7YlTE=V<9$z(ydymSr)+6B&XCk$*)8OXY z^_U%wr}y?XIPlYx7nk^Kja%nEkD8NY0pn(?wjwA9b_Pq;agn9_3+>%GXXNb47Z1Bj znz4Xo4LnG@)m!jAqoS0K^V%|PP+-NLnq}8>3?bAgRsls}+!uyHofTBdJ(3GxT-9Qhn_7= zSP`|d@(2O_J#krME|uMU2>hPi<=rui;QNoQCZnq zecTR8tioJjn~fG7kM>!xSIJ5{Pd#FRdli?$?QsL|R@@cK*Hhd3jS)y$sw7YaEHF}Y zyzJ`tTox0<=FFvl_LvH4t48?YuEg9!At?8KQ1eWyd5vHU4;wmix#?<=baGZt)s}jl zq!SVSq@0e@^+swOl<-n-6WP@F27FAGn^A9&SPB|U)aRIpdFo6RdEp))s52of$AGK% z%Q|cia25nrs_DLXgr<`hFJ1v8-&`PWdnNKZ7AX4)l9rWr<6H+&${VOO0&WtWRl6!7 zIc*wlo&sm*MCOO}1j@8vW;cR3ePO0~wPG#>DJvdzZBQLeo!F4Qf&$UhnWLzDns$!QUx2IR#CDrjwSJ;4-%H0iLZM4O zeq!y$C=@ehYyN^{-k5Gk( zYwO`AUK)T@f}!auOqPxLsUz%x>oFbpO31-Bp*^Dt4})%fgkm~Dz0c43g(btQoJ3(C z0_n#u8)CN8^^rV#{mOLW9s&7n`qm>s`HOAE(uKf#>9zOVm7VQ@Qsg6%SGZ?;>FSZI z4G2mnAlt{j&I+Z*5x8C<;zvB#KrQyLP-Gf+MmL;W`UI=xM=Ut! zdbC?M<%tEg&O(_od+vG55qqcJppckBdoe#wQxWpVeaMc^FJoU42qO5rDJ>_Jv!^e_ z*(a&RL`r~+wML_zR$JH>;Wx8JDRy9!Y>GsqL}6vvv@5`wUJp5e8#+Noq2k7)SLUcg-B zTh?o7P<`p1sA zif$eXK5RGuA7ESUrpNMRg6%+E*vSnUh9A7A5&^4J>@4}#dID4pUNnK!VENN#Vkkm_ z5}re9RvIdVyQNVq7Ci{qOVXCNc!EO|G!MULZRIbv-=aK$aU0z#Y0rrmCPC?2v~Y;` z+R{(UtLh;28F}wz4uO!;Yp9WU=r0f{+4a4v*95=|#?fxcSfuI29xU==@QyLLNQ0Gb zFrsdISe~(oo=66wZV<%Fj$pyuE6R(TN26mWS8Zo03?mTM5W3Z`UK*h=&Vs$fZlJR( zxWbA@b_Iom-pSFyZdvj|l_>G$3TuaD&7PL%bC^j3r1a+ufu$-skVQuG^!27W>bo-St80@Wx_rX)rn|nzO49t!4aNY$a zkaTLi>nw>0*rBAE_l`~dM1QHKb(_cQNAX;#i4(BTq8S+&qvcA*-l)Tj=w;*G&WSxQTpHBxI?X!*6cZpTblhAlFk* z_m&+?!`&@_x9%_U8J3UhS&2_Rc{^9+fpwD7U7L+7M?2fdOg9##`LJA;4QNh%=Oqa6 zlCnpkG&H7AF~6TZYIs9n52(0uD&rU{j4Kr_Hc<_iRiWEY^2r&dS5)Rsv)COz(pR7~ zr66&|WHRIr3B7=emiTaAy=m^G4lc$9k)7n;mfxAS#iZMZ41*^y!eOmL|g3%>fN+tX8duycI|4t#e*oiwYriDDIMY_Qq30Vp_;o&mDiFF3{;NH+E4vhCa&cQod1%uEE zb4$T4Q|EDDxK=fU);BIG2s1bHP60$gkU`gu&<@Gf9ukIWz^-q;w;E3#Xqo0XD)74= zArcAG3k~dtdG!<($z4sn)^h`q7>PxTUkIS(hUObY-zT_BgLajn_414~3yby+@cNY( zPcJJb3mvSw%Pz;WdR#U0#L{1?XUHJcMbBbOR*pfh<%2Sg*-K_!>OwqlB7H7tIPp5w`n0=!%a@&*N5D7XNtQ(3SuB{|oeT7En1vrlwZ6B< zSddIF)NztLU-cE;<;w^Ph=l}XH^;|aPabl;Lwmzs{fJ|O zRmsj74625yNTC6U9R&73TS9dR3d516q)ENiV0~Dn+@?=<=b@h9L*E#m z#n%Q&SqYrT{?tY8$+ClxmzfSEt|z?`w)XPTgn=kxoL3vq3>CVQS1sNEq@YYw1a;Z9 zF-~@(AwQgq=w3ZDk3)*3Z0S=ehB0{Xq=(R@DxS6z08O5EHCbB5ig1Bqs6JrU)PqE> zM3EiR38_)CG6HEZ8lX~`f*V_oO%QKds3f4tJD3ezXX&%}bM7wf&Yai-DHSXACn{p> zAh_?5K=Y*n)Z>R63i1kaG-uDoSGsqSL?^VX&+siqcwwBwdv)-rqbNlmL_IW-Dfg5v zMAb-+JdTJK!R=*Qjj865SCB;pLLsRfPkB9;L)zk%y=*?oOu)2MJr<_ql%mKaRTQ81 zEV7E5R6@Jo8is5JA_-VlLSxnVUW&PpusSYccAZLw8Ac2Yd-U)V>p8`P$ydq{;&*S` zI!kt--x|rb@}PIM*A#?>+V#G?NJBdboZ-mp=U2u2EKtS@6;~ag-+04jmSW2e$haXE zz?yhaW(#U8Q-x#`SdxXKI;SORMcV?LWku4AGd~N4G}Ne$@DyFhhZ^s(WXn62inIZF zl-&*s@szmbF+QZVqqVz}0z+CV#5is}>BJTBhgelBe>|xi}MIiyCv)PB15lOZ+jo@22W`f?2seHqOdYOswg3I0EjqMpN z={iAFli=lvmoF^!WTzAh1R57uhv!Ze^>f49FiP%+b9tSN5aANQli69=NW3Z`N@YfF zr4v*3@_CZxz#3~AUV`gsChrRZgLnztQ>_v4nh2zCr+FTs2G6@Jf7D|X+a!Q{G|zPl z4H6J5bKm+)+Z#lVdICEV$HadvU*q_Nl9y#s$?FJADSUHZN_J6q>`ub->BNds0F zlD-ZGnZN+wSSW!tmbk3aH{M!R_Qv*CXZs4~3LFX(d`kzcxSw9Fy(ac6*Nu2-$(&3ADDldT5S;SVpY9c^ zfOD42;A>LGm&p&_V4%OQgAme<(UX7(XiG(ecTWBGt$3=v^GzIpcG(+O8y>qzSPIdn z@g6j^R;^ZWGfR zaGCb>^V-elyL@kXYzee(ry@4)by^X!m5S3LIgq@aVnQx3XMYFQmtn6sqz`XEw0B?WMZZ{z5n~b*+uZ|3w&29shmcZsD1`wB? znO)^87RKlG@NhxI(R&q@<6w9|O@-Jp%5Tf(lkd>a*}Htyt2|BY(JdJ{N~$Mzv}8Uk z#@T7-cxx&og9G^Hz22Hw!j!6zDN@uhO>eO4W5kowYCT&hvFtSOCJRWtC=Yk>>}ZQZ zl{?~9RWo_GFHVeVWgNF2DGM<=BFa572NJ8R$lcaFq&)H!x6TIj#H5f{5;^K{+{99} zZ~N&<1j9UAoHzA+@$D2vNy9Pl>7Cm-Tzjo0k=zkoRkW8Dj=cvh<_tqzZBn4+Fb^h2 z9aNY{5c0IyT-NDjzlHL@0LKjw0zsRKyP$M`GpEMAF zLEhk;0cV<-;J8!d#yNW<<`(soqx;evh6o={m*66Io<*<^hYci`_p1eZBG~HVKK=G- zmXAFrxN(Pjp&ZJWbqaL>5J7e%^R{~Tv9)l$wTcX}gC2w&l!1(-$?R1_(f2YKVA7r5 zvvmPUen^6KiS-ad0eE%c7!KgHpGU@x%v7DN9qA!S49QWWX>l1IG{9^Hy4=CCfZq%( zh~@F|(A-OuxfDjt>O62AK=fM7G-ylYNyZ9Aa^!wdx;C{H$tX9xmhJZzSPyDRs$oD9 z{UzUBb2tJt;Q+odq_Hb@Rb%1g6t33ZCxT$4w#1?)0F>=-0g^OL_vh((E1?qfvxIkb zHLYhg?kN+Ywdsf#XY!KRm6TRl=sYybkD;h0>_XuAl=|&(3Sn@?x;V`lML3UC+22eLttfaI-16vj`~+T3L`>n3W`mHF1EcreiIj`g`uNu&6i zyET~9$FZHH>o2Av;!GObh((lN1`w+@v7v#+Ue3<*#^MoMpwrC*mF=obFFM`sCG^+KD|I5p>>7%z7tp zXCO?QUH&3m&>iTe<5DOo4Q}cv4~yT z3{Oh8NX$23uUQjeLu%lb94J<*Jr5pGj4>Y-7*tuUNv>=BA;LB$p$>CLN+K zRHdX$URQ{Af!7%w;Cn8wl91Ak5kUgcCA8fwq{Ha^PDH`#oXQ)?vt)pAT}RBhp6u+R z!d(yOLl%T-&Wnm`!H5`xjznONmQpHlR%By>N418q0>zY_!PM6F%yhE^3vTb(3A3&D z5{8rN+70eAAL*i_(7ZBJfKpboOMF#@G0CLleoSv$6|Dv%&HTLs?37aHnwH9q7im#S z@QUd8itM;HXzSjy3zXOM#(WY&8rHPK%@WgLD3|A~S2X?H^d2qZw~MRH;?=u)3^Ig3hn28}rkRyA?QJSLDsRMEOoN)#j)@-!Rt^JRe5D(;7{_f98~1XUlUP$*(8%RBFve5QX-YL7)kUYsvN^)a2~}Cy z9u+wgP4lfd^YQ1bnD81?2mNW0&7=-#?5LFO6M_c}nB7jQ$9R>z^mvG5_fg#;G3ePT zLDysFQ4`yHSsL4;CK)6^0QSU5OCOZcDj(s#aV~t4PZp1J*|TUJn79#YwaPNh&*!28 z<=JIb;1rKIlb_BiJ!J|)#*MVQop^^jI8Xca7Kg%GmtT)p;NF=OkfDUQPCsA}6wyTn zOl=WK2UgT9GO^K!y25?Nq~Wh$+~YZIywnEgn~v7^N;BWXmK7kcL6_vMdt1=S-7jp| z@fesHj~3r*vk{#vw;*CoUjvt8-tzdcbs%k3ay0 zsFV;V zjHit*b|}j(x@=H%-}ZAjWUo4Zm_e2U^j@G zO0Oikd2_FBPtZm>pF^8@h}bx#CcMap~>peLSfl4QuARsvBMf< z(33*iCWC;Kd=E{Ms>sK4noW9d-#c@7=e=a1MrhCRfL1ME@j0jAVGEHjH06Zhvv+!G zq{P>oKA3SXXmB|XE}?2j;7Pw?OhuDnwFs|4LOH$XswdCcF8b8>-qKYGS4Z$HJ)m-m zmfcj}X2$Ev8ynPIzKy#JuLD@ArX1m!z`M9fo-r$J6VAX88NA9I_>1wEz^3g>?4WjV zp$906J#e}rRS$2+U?@k9oDLoU^G^s(fp%d zqQD^rz~*FbeV)0J9>CJbxTqyc*XZ%?MIT31>Y(jaUvgk1w!$d%6h7)bP*0F_yp(>% zWbgK=9(N|HyS3yXxz~Vd8RO97JAIiOrfW*r^24;w{oQ1cN6LD9hKJ$+WxD%qw)FNBES%M{#t zoRnzX@lxY8x@}m!y5#nbwi!W6<0IWO-d*B($0P^cAP4zUA2{e$DDbn>ouYnNfbiCAHK%$4>G1+fSDYSFNYfu-%4iM+LM#{G+Nao^wy z5YB2sk2#I<%Eynf%z8%1*IZ#`_Bzv|pd(o*hs!DRfz~?9(=F?rt_AV2a!$=XCoLc^ zPawn6$bJfvp-(pBWD_zC;NF(`lWJi_tRM>I2hbsJZ;b=@saaEREjZDJXb&pCS3s@a zob*Vj-^HR}GHP+?Be61n3(rrBM>-A>&J9(lEtMm!dZ(+q^=QCIssdg&hE|%kX=WTk zVnE>_sz=vsZv0#LH^o&(BD#(po@*J){<$r>!B_d9IN%{3YT*y|d* zn0&XuM7b4-P>uz*-Mi347Hn%XvQ%W24u%dWb<)Wl^)_YOI$OG?EtIJnO4y7dAw=6= zbchbb=M76qFb1@X_re%2S%gC#q-qj=L!Gb(gvXPpmQ7(NGlT z8z3P_$GjNE2w30_QzZpwT-Q*Uk|Sd+*-t%Qb)2@eS~25-ZTel(BcwSk2~aSoxUn2d?nyvmjFVd zJB%e7aONlEBJC5Xo?NPWy);S1qGM@mjg}=xSGXHc7OUZgw4u*X!ru*;GUjse#!8^~MMdVzPy zX|%cZjyZ?tTwHbb_zjz5LOn6Bj?i`sgThCDQO+@T`BL95D&ofWUb>&dT<7>$j>c+w zL=NyEkh|m}W1MfSdf4G;JVUd^8t+8lv?j9h>B(Vx14-3LjY;HIGOe0$4n9E5LN!+> z*?j!!If9gA9IaY%YdhY`OgHAd%~6t~fQL77xQBk6xhT8cRC<#9p03os8=DsfBS4CG zdJ(jeaE@O4m?{v8)Y^@q?B2r#rB`C{hLLq@yz=SOK?>x#C*4=Ot5o+E;Juk4MdV$B zNM+m+Zoy*w+BGpQ(_*%Z3HM0Zk>t-cxTr}`Air&=FQ1=pRTRA&W@ zSJrFfqdrbuZpH_BOd>z7i|T2_&bi5JW4Rcgrk7X890_s@a^3!}^k+#*twn*Z*t}(u zhdbT)3UkY}R=9W0RfS*J!`@|N?wyA9?2BE>BNo#b;z=dNed>KM5OCobs^HEh?8tbFQx9HE;WNWM3^hIs-Px= zY9;x5+Ao$&9jaVwn<8+W_KKlzHC%#u=N0-=cH0V85f2O2hRmrRt1HsD@ z?%m9SanAQ*#u>qbLiMG<9=+YkOW@7RpS*WEMIB3$7M+F0NpVrZ$2D4VJ^nx)ZX1EHHZi3}JHyO5; z9XXfAv=r-p0t=EnU3efgamTsyyk&7z8l+#_lxL(iKrYoQmfPv{eh@|dG}0;*JoBjl zN*>0$_aJD%xhO4L`nmx3s5q@y)#xUSD? zBR<0{f3RoVEo+ZUw6y`>6KEu)0DMGsUC=Xg_#QLc+ZO`;;<4)7l*HY|iql3}oW%12 zHl0P1>!)|d4X>}%r3<3&xaskc(L`aTCW*oWXXW0fGYwnn`f`}c1~>o$8zhaTQ;yv0 z!ArOSuRE(GQYmeuB5{T%Hre*1Hz!uXZJuWs6ZY^53;I|?AB4Iqls@)BdDxXdjD%_wr^DZozfcIe$1lt+**5`Mc_we|MjKkTZkT6zxGou7OvuqEpw0&S`x~NztX!vSM z)Ee@wYYnESh2)W59mTb_N-*|JLBO5$(1UCt^(#mHQ9Y`t}K;DIZd{E?$+3<9U z7X@oQc1wFAEiE9g`;H!ubs<*7)`|B(i^mbvWb?(rlAp=G1zxE)TfGXF96HWEYL`|V z_^1ub&2L1+7Mv1&JMn5Vc)0$Y%`Gwe7@qb^r6fK}T12)JqnL8n_oA)WGE&zRUzI|$ zi4l+3TjgaSI|>DQYf7C2=MGug_K<1b;5==N0I5o3duZ-36NHc^H`XEqrbmpykCwGv zd^O6>+UOb83c`UMVVKRPk_qzZcGcsV9_^EHEx_70$a|JNV$-yVod3g!+2h8qtwi=4?RMq9!dOwfV?A)Jx5-%-d0{C+W(VExT#hWi^P# zX)#Yi+Z3*w#>QW2atSfOzME4{N?V?oXo+|r7Q=$7=(iCTg&<1xRg7^Dx!)<$D;r!FgzIf@ z8L7vd*n>-5!3!sl!b{1H$#Y6`S1T2%7Z%j&D(JNjh*K_1HY|bgl&?(yS)V+^j_LLg zIx1mcadMHn0uE8Uw*-K1joTCCh93(mp?B-DzEcvEV&Qt?t%yefR56H^!_SpCOdicS z&)Q2M5N3(8=nB!*xg(18tM+aYA5~ohRVcTL0)IGX6g_T9borhKPV^RaTkjU$LsftZ ze)L!euL-digEd(1y-JDEl6OJi=ZBa6l!Tbs``pq6I~Q!AdtFz8OE$X?iVxwuc^Ekx zg9D;(g|yr4x)+~o+lf3IgeP?J$+^N8=YA@u)e`AqAb`45xppfS4zmx*RCr7F_|UFEnx3ImTp8s{Elmw;S_~ zMR{v_UTNFf?i`MA5?5Rm1;7uT5bD_>MF^>@9y3TRpe@mcb}gf8!~k;ZCSb<_JTC-_ zaObJ*hY?jEIUT$qk|^&HMkAu!4y+s@krx;q!;DxnF--V8D|^dGw{Xb@4++K^S}lxr z=)INMdH_kJAZ&E`@>RP21v(vQ`y1(MGwoPf4q&GVsv4h11y%^;3#{TagBF5~uji7i zK_$rvC&KPo@8G=C*zxq;ev%@Mj8Wuf-~g$b-rXSYQ7aeZLr6T%h}}r^oyXJ-FFi0` zl|JW4Js|g@C~!ak*oJ+fc;m9#$L{d(fSewc-_EL&wKefozn7%xmQhLw01VGtZMP5h zVletm`z^Iic{0bLdWQEk1^~YsUAlX!-A_amgZ9OsDr4|y@VnTQVl^27K?GRju*NWG z3NisLDMK5Yy6cWpO2~fCA47Yyy?S94?nu>U1e9t_nqB^m6XB^FlT4h&dq`q%r(NS= z_Fk{OhR?>A= zt_QldGMixx;ni!XZqJ+Lz#_?HquRZ|p}drsaM;82_W;PBC!s{c#ZB%D_9$If$(ekc zI_;|_%aSZEhKNa99Jep0M`$mXkxO@(9y2gTJ%oLICU_i{vlBJ1w*!rm-d(%-Ox!8F zx7pF$YZ_J=yQffUs?u9o&9A;e_fOE-16OEaSkUniLcbe*QZEu-YFXMtD?9XN3J9G1RTb7Z84NhhSqoXOrAyB7LNImDbW?HXPI+m zR`SZ@)VaYqy+jej$GAqaL+f_o_N=?CG=$3u8XB3xmX z$Qq#PR5CX%$5>l~JMcPRsm-E$g0OKslgBD!iYzDR3OhsR_ZlK+6JPXO5X)9(w@})* z`+V^#j-pDgkH#S4FS+1 zy=XXEAV|FB;nQxi24maKXT@ifh)}QGQ1(rMO=VWWibL}e%yilIDinnfVwUxui=(`$ zd*=g7c1kFM_0Z(;hB}DpC`C(e^n7pqTouK+>KOfP2SHr}^6) zym|pyRR^Ut-Dc7m*^d&tYE)|+CM8g)!W@OyujeJr-3vvua{T$WJK3G1yRuLhbX z_hFF%v?BR?eEh<(_7&kP97{wWiMG{Jj+d_Is)_ofkzAs$A_t8X(yUmBQX1V~ztQY= zT}35T+h*jAMBq#h0(nV=V}vT{B9%RUc@B?LW}*!B*b*GQA*!_Uh%yCUgBEv^;)$3k zhR0A|jeBXTc@C22sjCr!4IEzEYw0uwmY}eD6jbE6@v65>v1W}3`=yA1uWUQBQO|Uy z^Y+m*dfgC#Po$L`{+!cY6dt9$h-w;69)4rfK%Du2VFwMv378fJlR;mp!V}Uho=ujU z0SYRp>7)Qs(88mUxQ^=&r56M#C_um>@{|o>7gQ&yysy7dVoG zJcYJJueyxK43JzC#S2~rS>M2G2BmFa#q*AS!{xIu2E8p?fc{JtpOg7c>^#*G*7498 zcbSBKg0CgZ_LjEO*^3N%vft3HE%Lotb@p4pQ66VJ3~!fSu|+M=JI1?V;nG$VjWQg0 z-YZ5iEh(8eJU4PU@3=eRnAiZ85iSb#71OD0$E5DFx2A;4&mvzF6+1a25xv|Y z4_0&TQ!DL_2=s+ULK8qGmWbuG*Z@Gy8d6!p4I~gJF1xCbjh%>SfeUCc_Vc%fn^mgQ z)To`MuR*!WyZ=%4zOkZjJJo@U;a4;e^cg%n3Ys;#7fML@8>F z%^2a^ZeECLnAb5!T0)AovYR6+wV||b$&f+-2`-BCc5H~9AMR~ijKw1cOB++dXSnPYTX76WL8Va;2^k5s*H8)P6NyGsQ@ zsbua@w4un}Q+3PWB2|mNnV3AwA>j9XCYlEsk>S0RCXyP&BearZdo+n^yYJ!!DGdX^ z>*&g$2d}JTLvs@;XHwZE=D1upcA>=g1q7}Zx)+0I2QN}^dLRCNpfwcWCTW44O~;Lzkd3Aj?e z@Yqz;%LI9EIr0^_c-+yPmnT`}k|e#$c!mIvj%K!b-vvmgXFuyooERc0I;F>NMi`y^ zP1)!&*`7R8fnYXzGh=f*`hqJ_7>aIFMW5Jc^a zs2~SEORmLMhU0D56w$)annOP6_mt766W@cbMRT0%nrqS$B_QdT3SdPQZ$1pR#KLDh zjs&QlnB@b#X+m}&@D8I{L0DfeKJKi=HgeT_wn>K|!<_F39A=m%1!8*&H@zW;UpT>V z^{!Dsf!KW4Pr+q^V-`dX#&_Oxhi?NHxUoUJb7? zGuXXi#j^FbI|w}@i%=ScHS@)ON-4*-oSh4z7|gXu+P?FgD`gGOo8CaH3msJW!lACE|&~`}pJqK5cakB)xrUSJhw{)JcM=I}fl6 z(;4LswVQm9ovzB#U=H_aBvT~88BxXT0d8iGd)*1X7ziAw$`#p%D{yt>A+!dD5`5!W zN_xo{JYix4;zwvZU{GN@Oyg}6(`yfg3=*);*@EH@mN0->$LZotG}S$b^QVqDi^~Qu zQE5-rs2FVJ1!3spdlaJE{mFXJC+qw~mpP8>T$#_TkdH^LOKYO>B=?Ca;Yc~MttgdB ztBOnK(Q;t13q=Cv;~~=Fry+sz9OXHTsK-92Cr_*=TNixZQNg+|0Vu#I)x^o>vHP5B zG8=3X8GxeGGCKr7xO#JwL-QLO5f1#qjEn$`Zyoz9(pKOf7Jpm-jMRMh6^ zwzLVh=jFRcHthmH{c@iiraC@8M_U~I3H!#_imVrj6Zow*wm>fj)HxdaY*8@-IzSWC+hB{lSB=H} zj5v~}0S*bKWeJgU7P8W~$5%N5;o;^Tb zrDwrj{`h4vx}hFygyEDXS`;FgWf#q9X-UA_x`%i)!G+K-2Wsair;S~MqP_X`!H%lE zR#xxRD2~^$*_5-8^}-D;#K2vXyuk;i+g|}Hr4LJ}!_5#AH8n#r@4FQl$Rh5|Sq6O_ zzZ_d|K|7P!TUu+bJ6{5vcTsQsI3@sHGpl2!6%jUkA0sH*B=KFPq^HJ=zx- zGkPeKPsxs{lt?y@>(B*L3>G48U-{Y?Yd;oyX>82Hgiqe1$?V8@j4R=7$d^|OLT76% zl{ie?wa|s}C}TNn2obX->}&-P(pA)2kkDCh`wg<<;Lr%4tebGVa1W0{7*#{C6F6tN z%G@O2U|TM?an#k!U{v*ltfxGH5DHeW=4P7!lthe*el|mm9Idk25gO4N{rZwYT4iAc z^NGtm*&GABE%C!_qcL8$p;oy9qed)xa@VsjL?T(v9jA+eI(I_qW$D7Q`ne`OSsH%^ z4$Nb+rk-?f3!l(?&rNZvpQkS%gV5BlCV+A-kVxfKYC`+f6+;)}^ki2HtD2iWuK>(p zp|KH2Xhi_PtI|W#02;cHFW42n7p46ydu0ZUUHLIqJJtn75B=c=< z*1i&)c6<|8w3&QxIC1`XtaGBRH6+)$9>sI1hT8Lxio=~_PI$w`2;KD3BDIv3@3E$= z&$wWdi$%yxofM6s<(9KOgvHZj&3;3gc2UgXlBc3WWgQH-x@?x%M=kZOya?y84SU`-}EEq3kprV(b!)d9g*~sxerkObtEdg^cUgudt@@2uK+d z6(HxiJ7{H`ObMj*-Gz10+YPgZc^+|$d?(E|>fsD0v9>lvI}?<5@9OCdhOgDhI9`&) z8NZv-iU!y)1{DVic+(8sZwd9z$kOOYO^H4D5V@7s3IQi3U*NtZkhbEWvQ6^wr`f7v zq0m*!{XFfR+a{hTilkCQ%1EUXPUPG$RUcE=Ljh9D&0GOX28c?ZK7+)Ux6?&PDDe7j z&GiBA%M6Es>#+`S2EC!4=vS=!NXQ*(iEN_&ATRa&($J2NsWxx;+fr`dbPX~ZKsRc0LxO-7~7mAdI7K5t}g?xEv>|f!BlpS&>rJm=)pkG2`G&h#tU?5w#!=K@HA&7 z8Z4TGsRNx{Jyj&o3*VX|u`0UecHPsp)_u5UqV0Wa&Cb-5;pU?xwlj7FoB)xrm>hJH z^@}LG#G{9g*vQXQ5Sr}-b?KXS|Dyd;w9XzhpT7_{L61ggz9K;dF|qX9?uQrlY+sYW zDW04m-H&|)oJ!nS(Xcim!n%z^|0{BzK7n~ z_2@=Pu^;BzX$$XZT2gYyz3p=BeIhb^ki)7o+z6flFJcUUF~a&4$z#b-dG|U}4KWKV za5Q6xP?>3xI_!0gy6l?rs~fXNmUNaIUF1&*65LSdij`IxM};4C#)xLXIwJGy!R_*c zS+wZrVz1=W+kOhIdL(qZ$~zref8h?k#zkb|a_(h~?wn{bP|(~7ttUjRyZY06Lhd-*Af|I2heQdISDr* zQ!$SO8?Y--t!VTiEC@1K(&jNr(z1E2ynexw26VtnV)(XcX>kNcpSpoEodUh&cLOew zuUI`pfYSH252G$DKo=t#LReV=3d#}-9m*L|ytTszUq8dMEKv^KMDDwX2$?bOxdvz? zUJy#^O+;@H>F!CAQ30@%%`7Yy)^R~YSE)hgp%ywr>$0%c%IvfPHbqQ z4D9AQ(OI#BJUMZ0bGXsZ7!bx|I9*Y@r%v4#X{_h!xp!5$m+0-j+^LqQ0Pe|gjYW$y zBIpYXa02@}h}t_9AQ{i7!sUSWQQ}47?c!okoEYofmfJStfxF`7V|`f_4zGK?oy1(; zO+!J0*)WMr4qnE}xJrj(B?>)t^0j4>lgVx_dp?W4+UlttBxTgd`+zA>5p4szG#(;2 zF0Zo`gj#fhf>q^p<6|uHS2@Be`X1O@ncN)}#=;v2dA5^uFqDFQdiLa>z6Sy)?7ZvT(iQ++CvHWIcqdq&u~mdDpQ} zv@;83s2)ZHStg1YCX3Iegk+XkWxI+d20w8}{ldKzA7Av_z!?VsV;F##aZqA##1YIw zVa+hEF7$cK%2b)sBLOeZdBnG+672zwY{MaR4+un8y_CR?=Rk8y(NT&D|;g9fJr29xTeiAIS&`< zV)rq-GL*fMywRc2%bv!9zLa;YDH`yeEP{{h9lBBjH6~P@Y!S86j?h{p$NGKw!G8w&vQM1lp_TQq;b4m<(D+A}z%MA3k3??vL7Tx~08zIr!3 zGeJ)_wdNhF=HR3ACZc6Y2N_g7zirWB_oOUUd$y0BuNq@42CK?U4v!P^3r?QIT!@8j z-j*VWMhD?_lhyX!0yb3p`qBU#}8! z0VU1!AduRAX-lL|58q&T;pKbRMj_Af3A?z7=W6@5UiKrF)@9*Ay`&RtM%Bv_oFgL_ zKN^K+2F(y|r_4;lZh0I%(k}vgU3`;LVX`z;@-ZWaO1u~LvWdmOW1j>nl=bX1(@`u! z1_q(IoR$&sF4W_A@p}4BQLqH+nT=u=blsmaEc1lEcH;0x2H)MQLl;4rbPe} zrJTf>U>|Z5Q8fTm^9tizopI`jcm5unv<}vCwZ(xaCM4@$z$?ntF^-}09_*ZDL4ie? zCa2X=A*4mp-TDwM9i*3%gGkhk@$#v!X&@=56suq^?6d%%W`mk7^7ELWz^4jpqNIwV zL^CX2*15cOILT)@1!kBIQB%wt=x3vjhPb)5<7_O6YxnXF;vp(kU2T~33(i&N*PFw_ z39u{}ixk8j;x`i~3HqDOAo^V|t6iCfZ&}ez(g#v;DitfRn0<6P02vh{|Yh@zbD9?2= zd#$x0PC@XlcC~ZoC_*4clP1OB5p*geY`8oz$;WiDk!!kSiv{gLMIDdEA%`k3eU!#Q z?q)G`8V@ywDn{_gFIR=t-O#B5DZH%cX4$Cj#`QVxVwo40sPMh%=eNuNy(jRVAC5(_ zd8;{YC*gy>m#z~?+z(ASJd)^uNX7e7$=~adBS|1Ec#c52^29a%>F0%3zjDIFACqwj@o`(jGlF4Wj0 zB1CE|?F2cHls|th(z>$)Rk8FIW(k*pN-Kno#Q{JOGcw)28^Sn!M zRqlNIwI|?KPBz5VhQi8-oC&#kDtNtB+jItjHxi{vQcPlS#%fqhYQ!2LC1OIsLr}UJ zZ-8D%wmb?JyZ|ZWvAc6kX23IF?Y8pgpp9`4^0ZCN?L>*F;!f?I=tET5@gtbThib=j z$t{mf$Ck#<^mtQe%)sdONV8wIoysOPAL8?{;RD!TMbfiSsj&K?;F!h`C)3QiUkFM9 z@4FSd;_b{OJq5qignfXjCy7M#8X>1d9p2-&@qEj@{l#8f;I$=G%y~r4n||b|+Mf5` ztc$|VhHpQ^B#P%G#E&k;47C}=%X+SG#!kSkhh=l64wL)k!fTA~5{GRhnj7I6LeS)u zR5lSW;z5}Qy>y)*YVSM(0p7ME85~)ZHO;CG#)Fg&_70L5-k6#!n&4?%WOy3J5yG5! zKh;AtlW3CNOEJSX-n;E=2}4}0kx-jM#|ND+_$Gm*@;xqcvBaJ20-#FK>E6Bo<`oO% zH_cWH4~!@T7zTkdqZ|g}c)x9;BaTMlaw?-Kb`zE7kVlM4u#Nz{QI9M7NOc8A<6B zs`JqU$nc6pjFlm~GvK@{MPDQXU$fPfdyFqqk`W)?;OKkWWR!mW3>*#^+wd{gu4aiq z7bijLOlkT8MI04!wLNIz^1{Yux8mTM?wgnLBy>^y_GrYmT&cQLF75h%X!7v`i+V zRx6yk&DqowCcw#w9%p2=CR;tonv= z#4RIVy^%+8KF2MxuJ>;Hfw_+_z?_D5H*1RW(KC!kOPDOe_)y0C;q1Ib#f6iQJ+||! zpVL@k^6c{IAjn}3tU?Fc0Zz30B>=(W=uR)dG0VH9*U2R&S%=GHq(z3eW_NJwn4Sa; zn(b2>kx7eqAlERkEoUz>AX>skz9GfNaj_F&f z;RuS=_V%}JrnTXoF64z*PoYl6sz-(IBC&6AYvl9@L-Ka z8PqK=&f9d}K-gMp>f5R)akrg&eP9aYEmb2GQ;!gzVa~fn!r_fNW}-M=+&)RTIM_-a z=`ABS&m!t~uqCM^k6yOw87Lm7<7N9}He6^4k#`8rCbtwY{8kf0a^EiNl^PSBBd2$ML~&oj#oq0aH|S$U1wn=+Bqfzg_eQDMd^yrLPS5cGN+2pS4wEnd08I1lgd_5OKo-RK{B2OEte@pKr*;$Zin`67r|bfb=Q@@bYU0NXC97t zJ667s{BBVClB@7R#J$c6vB2{JIRP>?+H9H^cC*-H3wk*M+KGEjloMU`geSaKET9+& z+wxZTNQUSMf-29pzIlS;5z*1pE%@5oHXfR!n&ktM=pu*ge12`|5mu@%DYhnju%Dbw z<7C#T8Pv@y=fj4FylRKMb{Xl8O;`;pO?e}Sg}lc*7dg-AY-|BM9`Bh_F`CnKZj>^! zXXV-($=B@w!NnKhuPbO2`-#YkHw>|nu7kaP(T^Rjs4~vgqGDaq`w}<^jj`UYQIe^s zgZg{Cir~?kWY!1sc=Nplf{@zx2xwbl=piHdOpd+-z`5rTm1(js#R%&0dRyvS&`HKf zcJyVh2jc~~w8S7FucOyAo27+zHc#mpDI9t*96SId=~d%eW1gl2Bc(*vu2&}^C9%a3 z{9=O7@yV?HN^=8Y%v)7qHQWe|<^g;{ZR}V)4!){yW~%Pd6KC$tH}&XM^){MlHM2wW z?LZ?h^1M&xMZcII>Y}mt;Ju3td?63X!JofwKIjbNb=y{FfDzizdY2l`+2Rv95YJ~; zGVB5PIC^s^*u*T6^O~X`mgkN?qpK0x5f-sLCW6a`m`i7VfT$4_HpcJ#s4(}QJliUk z>5j!WSNxpGcQGJ&Z|Ze!*}ZrV(dzVNP1}mq7NcR?Vh$-}fw(zn^Wd}6hgt$z9o-9a z_p)=6t*TsW&1@B|YQ_AH1;d%Ap29+gwi+M>tZ7xqkRF@^we2{KzagM?9Qunmibo^7CyIsqA1Ht*mX;kxXq``VtZ7PnhxaF^yh zA}lFDkD+^!!cKQtosH*h3rUfM78O>StJ}i0k(A`qem)BYMEsKMB zaaLUN=F?)riR8wf_$60Hji=u%>y8xkZPax&LCs`6bEHe=g2aqS zJ%m13t%--Fc}tW>;q32W>1>NvLFhm-(Ty<8p~+$`is6+|uIkaaCY?HQdS7N&Hm7k=4)A-sg~Gyleh;Z$ zQHq%f?Axn(2J7jajp8JZVR)6Vl51d0*U%^XoZp-GQew#MygP^`omb9yrUD(gzocbM6hOw5|Ct_d&sK>C1~=x_ZgrQHD4|s z_+~uwxLiz6MH9Jhv=eJ@-^WbgNf8l}uiuW6s)-KTTp6s|kttznUhDmse3CF^74y5zCO50GzJ@ds=!v9K0El{Bw9*0 zRS$1Cy!nN>P17E2EBA1V=yX{7daYCr+{!I8EGtc-USV6IXV{5Pa>-`ox&h={8hj*M zvoVzucA0~3%60tsxwz-xhU#+KWDQhuz5tur8Y+?qLoau+2h}*nfeA~Oto~E(ZLO>b zF7)0Io{OlDrdhe5>@fxSQz)^{u_ypwBc4GtAg}7poD$?=8Pn@EyR1v)My$xD>hcF? z))v>LmWHDmbv8%$%1$mWFEhlj@hIVW&}y}qYJ`Kzi#))_bcWGFb#-kyaO0|cJIhh1 zXc$3OvX7PzBb-L(Q3A_zvjcAl+Um2+NAJv2b=R?1C~RLjCg7g(b+GW&PNOuwd~urX zRgutJ$mvFX4FiL@F{RmN3FC*3`Xg!P3(>ZsZju@9yk`qKs$yIfNhIr)Le&B0b@Y+xN zwe%v+!H7OFhUc6_7r@p+=PimE&VGQvs5V{;$<=ICp327PP}Tc(H4xd#cv|e{M472b7(IwDafSf;cb~;Coktb+^v$!LvPmppoxmoneM&$e_heN>Z*>xJ1gYW>r>(VIvX7z=>=b9%? zMGrRisg-$ip-~}I+a5n4YFFJbIYT5jjOl7ped9r`&ExK?+G-PPYI#ERu;NX|j(JFN z0m{TUE4_XI?uHfeoVLyVN}PzAXWSoyaBHv;5&Lo4K$`qC-x3s*vC<$=WNt-XmegP zxH5eknFMmm4<4v(VfALbIhky(lcWVGa|}5LpCi6DUD7VAeK`H(z?pk?P}HiD!o~Zp z!>%X*;XN$C(R^1ACAzV~-jK-T&#=b{$)MO-Q?c{xh_NoKUK7kC<97_CC6V0S&n4*r zp1+2I#DIdM0n9Ex7)C@~grnm{j%Pt85|KjF;89O*M(A-tUs>sRZjI>c#7mXe(m*&j zdJ+VyhhCRAwOt2U0Oa`I+YzY9h!Bp(_Vd;^rligOh&C*6Yobiau&AjF=nYIJb6RuB(E&ZDJpi;4ZU*l$AiH`XR-1*BSSYZ<7+kYk zZl|)jrzV`^3$V@gE_{bpxm@xESUq{8uE>Itlr)HtxQ{r<^_eki%X>l2_4;kq`8eZn zbO1OReb%#d2(hgbH?M`sR;!8C)3EQf#n|);(*@=pu(C9)@`XkUqasrHVqsj! zrjp0ArkoqmcljXv`7Rq=vLie+G#kYo=cu?%VMb^-D{N^ACCQbCyiTvHao&tYHI{Pt z5}ggoBi|AkaC(^-2SHTJqbDroNhG?9jJq}HH>k`{J(p(|ft}V(eA!j5(OJ3#P~^mT z(JWsTS$I64jF_r`OUq5 zai5D4_b%U43;@d2>R#`v85{DIoft)VEFsMu$FCVEqw3+kdVpOwocwyZiF>5OIl7f3 zwliQUEf(;uvcW20k?oR6O%q4e#bDuuKDUzUk%;wG&D_EA#K4wh6Sh-)_JHtGXLGtl zp1z^?nwS}m+TK(N##zUuq=(Yp$SDamFxX+h++L1>-D?A|(YSkB&K@bHWi4WBF~cX& zpn`Z3aiZ;^^`rx>^i@7-y>kevJR4N;HMmS;>G6Jp`m)R$`H!R_g;Cw3MJKBIKW58)cbNyrza z6QV7H2Eln)b|@bZWF#d*(-XNl5ZcN_04r#~#ZHU~DJ+nNhiXAD$g)ZIy&X-b*G7XN zN%aI=g0yDGS0XvO##%uUwN4Z+8=rF9iYsJbpxQb!xQ?<{*OVNxcg}7tb<$8j-l$m= zneOO|m?AQl@smfE$5v&6%P)It~kP0yC8ncDq835hTG1~Eoyd!&WDEKa*m16he@}OQ!M>lV3 z2@F4f8n-Q=RgEt5Y$jTc%4nfp@Mf6? zDw5u)Z`!DA#T$u};+AZNvwrn#?Vbi71rs-Mp0^+DN%X|j;gByZ!dXP>nRgBjOU2Y1 zn_W%=iL8x4CqoW@6&=GocB1?wbokz1Pqr$7AYgQ?bVy2C3Y-a>iQL0&39hYo^j%B1L*H zOQQ4X4(X85ZogJj(U1ATqfR^9H zRMkA;eLc_p2zRz4dFx@cscz+4To;vs?!Bks60{iL$VLF1x6g09&{hXi@^*xFnIk~L zd(jqRc2q(opTj;D>Rug?cSMKlJ;Z6+#;2(v0{yi3c|hCJ3l%S$)Jao!jd>IL-m5hx z%Ce@C2`K6p_C{5U_eCVN93YG8zRJMJ!B9?QpQL%hriEq^<+LfBrJYcj5I$g!!Le{jd-&Z|Zg%X0#@F9nLCaIx+UZ zb6ctkzI^+Ca)$MLUz#|xr}GruOVs{H590u zFx28y5=Hge9_n%TD}9*gSIiujnwO~grl^_;Y47AktM#F?Iyk935sx-R9D8-w%MXj2 zfrHlcO^}5sWajfNnnq4S8l!g+oOr9EcRYhEg1x-fN?4RB3Y-W4SmfsEVM(6g5Ymri z5t4N13e%)+l$!(|M3qP~AHAw<7!lOOR=0V@xJOrY(JeY`FaAP*GkDT&=eUSMo!*w% z!HpxUAG7J|1v~+M=Uf>=fRg9F>hvCAEYHJnh>XIQ25(n4qUpin!m}~6o7Up$edl;b zYl%`ZIj+Z!I+$~C(vMen>9$FqJZ9c&MysqvZI+sau2-O0gK>MTdRl8LRHyfQup=5wdX3Oo(8B zVSB3KW?rS0o(Jb6V~J?fItXP4ynJ2?=o-Tfyc^e=Z7W=yIxa+kbaL+~t+i{L;PP-$ z`MFO#Y9R&F$6`Y!B;;NTu|1cG=|L5d1Cw!$U2hZ$%Vj#`^+r82#9Xa%O1#iMVha?h ze)Y&5-r(km?!o~Py*gC8dT(_N1CB9~a8{z?HY}k1s+tPREN7x0>X@V*PfZC;($2)t z6K%~jOYH5E_aLjEQyP1F7+sC|Lz$uEoVoX8&__B<*p%_KB&)gQP?c0h<8hn0MM`n! z3|V^G#W`Ab;R8$eFc^xNpcpB5X*g1@FC(m-2e8DaQeJeQYP?bab|fP!5*{LUs1ayc zutTLOiETt$oW65>)ueg`{KN<-2aH}ldo{;Vxci2ec!FtY{X&-UjzcSsPo5}XI6T!$ zi&7;4>pb_&UbG$M@YR`8X^Ys@@V4^gsAC7hz8?^wMAH1&v8?eEeWWk+tu5q@WBU;J z4R)A14*PM;06Z3*RbZ2H27^6zwtnxGv6vKI`%t25D6>nxa(#T8`6MJWG3i)B(nd>B zp6Hw1hgI3kuRY(}9UYkv&2UKdr`jZBB?7x4Kmv26fty_;Bbtj`VW8@@XxtuibesHg zg$^Gw>5F#f8>M{euc4m>9UO5MKJ@A$Tf$>|c3Dbow)wpJSCV5qn=IwVcUx;HR3}xI zC24;0SchM?F?Q)0m6eCXk$S1uDP_$SidhQr^IPPSKo0K?IWQ!0R%mM(=`BvHS#e)G z!v2eWd#gsvT4X#A!Xxge9bNM{g&!o>$ zn_j}qC1FlSnD()yhS&yjWfstK)3if044vAoNo>%ViS&lbCKm(CC>kv$v~d)3xP@Fl zlT7tsL{F?GCroqmAvp=t_j*^vwBDdBy-pidHi(=g*w>9t^8mOIsHRUuHBX3I1Q9rH zyU$@bwF$?%bFheKW@Zv53!3g27DNZqQ1ao-6ScVE{G>Uh2qwirm)bo*+M4 zbV+yLlw2c>3M5>9zWush7`|5~??EA>=Yh*wF=wmq22q{BoWqgG7rS9d z{*IEMPoG&U`^LCP#Pzb1hLztIp)-2n9)v|aSvdcdfabY?hKM{$sF?I@TvJ9Rn$9@d zhsu=6IAz!N9=QaR21^)Ygl7eeg;KnTsPrU6oFgF7p<97$EvUYcol$I35TxxVw$3b} zdx!AJKEWsZsmaGTEs;1x?>Xj59*2){83}El#6FMZzz1!cyGpuN6CSpA69j0--Lt9% z%)m-LJ2y{g9ObPhw~r+_(ivd4Ju5-;CJ{X_L?nPMC7WuB=u8WmOYwUWPblK@Jg{52;}$BTRe51_ZecD5u0K+M>b*>OMdN@%jvGRuUil`Ohx&9uEqyxYcrh>x1= zTHoP@MzJwJC!)65_e|;JnKg#ZY~*DGQUKhMJbQcn@(s{i2z&wqLmJg}r@Z%MX>qY1 z03r8N!+6x)Io57?d)%Q>kNb4Jz#W^;47gb25Pe_Gvox;tc*5iDbA8Hj3C{p?(aJ#5 zRoZ%E$8q`U8E+{+3Vx!y!(LA;9!hmR>eaS;Ks!=B>PP4g5%%m(A@{PiuAGFbRU3|h zbo$xW@`U;8G?sY58x-Z~@5Z0`#6nnJ7o?%SLtPPz^%G(B@a7UiQtnIut#{pXtamw$ zL1IFCY?BY}36JWTzRYD!sH^94SBvtLQ8ZSTi0&DmFX8Un^I=kb$<4$LZ!J`h4iYzw zUV?T|9=&+&muiUPA;?WoiU!lk>^EfJ@cS416PJnHTN`DwB3RmBDh!eD#dA>td?o7( ziwmiYK4&jtAT`bK%CTQ()VwNR3c-SE3lfr~;H^RMr|u4VD{F^~cEkIUaRAz5{rWhc zzRsP(>=N;PBT9!4sNVRia@QTQGKKdn93M^=NHL*3$IVQuMA>$NDrtNrs58p2xh+XH zAUD?u_oQCRLqb*uEp8x_>VeFBMSymXHB6>N^`dz2+3_xdGB+hns?KhwJf@|m9MZ3q z9E7}X9&JD#_e52I-(x^3q2g-MVej_TlBg^|4)@I(q{W29rbUCbKk1j+?tDH0?`Yim zDkB|Qa5%xzB$kJ5e)$Qy3u2dQ1paDs@8|Dw!{5rad0G<&`LSfWJ06 zQ;r@9w_}bARqs{ZAr#~WSv!am8t0pRu%S=hu+IU3Gs=|UrVJ9Kq0@A*c(Wmrk-Y2# z8KLV&FMFNXFQxj9=anX7vw)Mnu!(w}E$#aN+mgX-r>8Vo>xBi9A3-5FoSFJg>K^+xu+z_Bg)q8jsK)NYDM)2;MV*~J}g5D#MdmM?8xs$Pp%lDdPGg|l`?5IanYy$r=JT#lqrz2e=b6QL)O4U|Xi1xU)_+j_>&{b5s&8{T+6P2MDO z3o$67)>mp(3fs7ha;(Cq`8Fl{jOQ3{A!c9r6TI17j_3)W@~B6U;=4-cqOk~*-0Bsj zs014$n2+Cp_7*#L%A>sWJ7i4W@y#Z3gE2Z;1Q!G|$Dw7Sdb^!K?2TGnu{OW>%Iu8m&oFJTFG>B`yekpm!V~jB2+IP>!h65lS56MeOWpS$7bW>su1X) zukIbXli+t<%QtEucYmA||);K!mA5BTC- zpSU4yT<+_9f6o2emJkWNO)x9F>Q5bq3C#@UTtsP30L{7K zR&q0m(IJ1~F1SOKm*!PmFB#kP3_#CZ+-+#!0h90O_StOL64XHy<|C|7MZFk2-tK^E zx*hBXjb54bSmeP2<3q?wsVND)S0&YWnI7ViL75>_7#=8%xBZx4G&yB092}5l4U4hc z(kv^~2}^2lohU(9!x3<8c@|gJx-TGJ1T~ZrW27o9X7lYr;Xt!JVbn$!0}UgBoT^Sy z@@Qg{Ma$Mpj}6Vt^pQj3(TRLJ#i_N+rJw_49v4iB=OdMA;(2;HSG5xAdZ+25Bo8Pa z_T%;m@T!6q(#Yu$L%9Hwc+LsuURs%WlPNV~C$~knP@#?lnLwZyh(m}?W7f?oRl4Xe z8pyCul_HGH?BEM82YH? zo-yn$OJ=7~jK71r*Q27(+1Yc%tXJX9!!l@w6qyo3S8qHi%gWd1^15J0ooY6e`+?xv zIu5gNfX-s5a^Pa;8Q6m-r2Y`AvFAyEiWWY?@lkgfl!iKIsA6ci3V zoy=?_M1KC3<#jLsHNTT_+wf4b^XQXO5S!I;9ZIL2aDpd-acmCOtF1WG6R2J{Glyx$tV8IU--*nOqjb}XEr>yC2Bo~*N^i}_K*Uj5x;kqo|Zz|$w`T1xP2`n zW3`eE<1#@AAx~hgRU&MdUlX=N@It=Z8w$nh3eFvP6qx%Ex+hJ>vzM!FJl5u|45~m) z%BXsI3DmW(f-gEB&&x=voaQ?@u!V+d&p28rO41u0ZxI0S%gi#lG0dZ6;@Xb1o?qf} zxP9YcAc~5n8```QdZ~Wr08HW)5wP==9ylvHaOK;Vwn5`Zce&DZl_HgrugMyc&alQ1 zhi=g#nsVx45db`4$BkWS&N<48hD(8>7bbmw@~<*aZ7H)21G3) zMgjMhwx^*8Y{;vH?0xp=VJMGcd8C-+iBqbMRUtEOzKD@XYjGJ<;`c`Rm|NaVl;8S2 zu_T>VUEo5gxEr{(#^N2Yskht?`Gib?W>6~&&v#tX2|@J2ZYhu$@vKj4D!?GZI(eiT zwV+5*;_O~uwviAqHdyF;Jx*@jj92fhOVQ=JcX1!9ZGgE~Z1C%N+SpErvLz*ndGA^a z5I7_@d||8Lj4pvL#aNz02&Fb{L6&pxK2gPc+y}F~8ZMQ4mnSU4o^zmb_$tTPaDjNHNN`SELAK z2QLpE3&YEkt!yx*!5s*-TzE9~VD8%SQ7|2glD4ft)j7;umIK0DrdJ1$EhZSu9<@M9 zTsx@EgEu_@hy$&Bd0M5nMYwRF@(yJDN~6yMAKTnPzQCtdGCTwb*!6Y;paeYe{bD%- zcfz+<-P)kBnEakGjUZAamWX!sl&7ufG{2JkS4CY z*i(;(%QE-^lZ=b#{Ph+XT~uc^6rrk1-I&J-&Zp8PPMJsPJ0ni+lY{%J;l$O&(9Ray3Ei6{GbjYzLjbiCuf~=f@u^ z9jRxNtdt-Stix>2WRqt*9>n&8D{Z?}KegPl(#0T5hp@_OF}z+&rR z#IqNI$)M>cHanBvQ85J1*W9{=OQ~zZdYIUD;=Ng{QNL6J6gR*F_trI+^_g{p2U-rZ zokLU2klu7a`hX)SC^6oP<1~425Xn>H6M0zJf|sYk2^;!cqDT|5*8}pc zG(1PCZ0c@)neCv#SbGW3t<`IECvghxQUakhwlQ1^LoY#KUh#V`NejBPG*;=}TenrY zMp0TBe9p%&#?UetmXZQJEP3l)Fut(OyFT8w=hMn>jf}8Fl}^KJMu2uOohFE@Vay?c z<7`5uN?Zm`jT7`1-a(<~ik9W3fjn|BTFz%&R$(aaRAa9nZ-k0&gS}FDO$wgCU0+>?=|Jfy`7 z$1r#S$D$!G{cg^vF2VP9D;M@F*%QtI@=F|vru#ovN0zJ+J#hp`nPhzQfA2mjuI}7|G1K63eg_=11%1{4SZz+& zMUHsxjsc+0vh7jqX5rz&qnRcQE@CtnWk68aJiy4|iOE-OKs5%nauX9B<$4Uv*~};k z>u$M(`}*y@1KH2Fvt#Vuw{wgZ9ic4m-K@D*)Apm5TwPqU|5KU9GmM&qTu5h=IffM!M%a4 z-ROxx0KD$f3|bDbc%_HR_PYigjf-9mAZT3QS1hlmF`dK5TM){J@DhMtfct_<8B+_A zn5iDdqSXs~O0yj-?*txs%Ock~zza>tmzW_|6kXVU2@*B?q9SBi0-!{f+I#4Dy|PX8 z3CupHc!RghPuXLl=()mT&XXlZ93X_5!G7ZrtWSgpv4F$OK7#Wz(|=-TMhHBz35-mc@Spy7F>5oV-UmPgtzY|a(j zz;k3&hyhR^i%HTU7^LjkkLL|+L+9fBZUO$;0&Xs+JBFfi=;gxm)>i3B%smq$!g4p- zd1G?tb2bS|Hl(^lypGiGC(T)pLv}=K0A{DXn5gTU{+A)Wen-WY^7Kcw=2)IWlPmzJNAM5LCrvmx7!|fI(>-3EB&|WwxU@6Er%j{ZZ2X8S# zJ&mfG6@X#!i}QT(-n{CZ>UP-#$=>ToOS2_i@^zX*v2E<4j%YHv_X>;DMc(TP_o*pe z7pQq{xF8;hD%bQhRSFNMOd#J);|ogDHA7~NVq1doV9m2p--|*;2sA%cdIY18FwSqU zTMAdSPscC4lw+pJS3LY>Wm{1%U}VCA)pHxKWbJvE$5ui#rW%Ho3a_2jxe9{!`8aKL zA$Tu5dHehllE*0ctgP~k<=(>6ZJ>vz`HO|zSueH)ExSb(^Ky=gp@mR^Lv7~b4Rm>~ z+v?$i3#AfY;fQd9KeXb1`K3M-_ob%^l*{v9VF>%u?k zV6>Sj27hoKi_$I|kFSj-bKEMQOrw^iQ+HU9a&UFyZSfBOTo&}~CK>{t_t^yOa|s;o z`kXLs9)vLAIq8WmAH+UU3N0n?*Q@cM<7iF%2GgOP>>Zur@?@?`^C7~#wN40?Y#ZWz z+%V0Rzsf?LRBgO^;&M-TO!##PQ(~sD8qYHUv!i(m>Bqx#ZwepwE6cJ6N@|q|rV_54 z0qq?StdRDUaPVYe-c3ktVHCY7?9zsTs|=i{9w-#$HBS0E6DvzJIq!0ZIh5ugbbO?6 z%USjwqIyA=*9r)O{+ikf!l4+gf{N;oC29?5@EN(^x;9m zx3O7yjEAUb7y~L}!DRyHT>B^=JuV)3$_gVwpzbMYk!Z=49&XpASZ9;zC2V!l*!#3Z z(;kUU)nR3o@)1W(Z~bn!-TfJ4=$jiYP0Cs7y+Q6rLS4_qh2Wr7j)hpA%!ngcUoPfj zbO7|1sj!zIh@RvGXv}AoP>?UkXRLwr-H>uwj}4A|c$S7!T()(~i>FVJ}v&^lUez z@go{LBUESPcwppS%)TuA9-9T@Ev<7gwD-9>og*; zaBEI8khH8d;<8JG4v2d}!W;((qqqc?Ga-ZlhS|GQQ8B&qC}WYHD2{^Du;yMa*e=%K zBU9P8g0EEtu%25M?Ls7QuD&I4a6!x4d<%l8(KmE=-s0j*6H3p+I@SeEvL#(#a1Z38 zgj7mD8SU;mjyIY7&ipA=bu#3fy?1W7&;SuWQ8(%iDyphIR?D~HL9IAF(nBw0nap6uTKL%p{CgdoSxP244=hzMj=`! z-l>G0qUbu@40%UCH1#K_JkKU=5^;hTB4^B?)KeE6dx$!r0l03hhy2y?OL3nJJb@^( zRB>)LPENYF3x_AlY|nxiQnK*M?52~W9>{@Jy4LSlSFu-oO(gB=EC-~U!UU!jm{3hU zgHIQUS|w^pV!~IPagLi#;XN20@7c9FOh{rD;@xibJIXz&1JLMLw?u4R!I;HlP)daM z=g*$|*`BzB=X2KM7>-b z4#?}i%p}KGN+80`(GU9wJe2zqJ>QlX@$gnX+h;GlHwduvy_VAqhB#8nYuP#ogIZAZ zZClYsX?#ToWRN8p^7L}HoVRG=afQbd9=7YjsVjz?Pw*MW<;Z@?B>{jd1E#bR|tQf=9h^4u?C4*3R?_#6~%8s&}gr}gU;}nOoy+eCfhUXvenVJZBd?uHZhPzL3SGkiVxoMnQy;g+w}5ziS<&QDGYA-MMFU7 zdcmU=!Kt}{J=aN)XUA)F=1;vIM(LD2$-7MleedXeD~7bauODGsKi0F)Mi8HiVYYHY z&4jCxQ47_hb!xN*%cKBGK()WoN4BBY<8R-rz4z4P-mXOiC)TlmQ}YD` z^kY1;%PyQ`O{pmAYL3l0bFChCyl0ppmuPeLPC*4DH{s4=BoUdc!guZPr8Iy(TXJE1 ztbrimFOcvyBWtM#tE=kB+PL$cnlDIQVF!nYZ33R?UGn7Bx-u)Gy0oI@Bha=qc)FbJ zs1|V=Z}Qd-;~u5kS8D%*>&gWc@a}Uu4WsPSKu>##| zaPh(>5~&~Hqiyg@W^S5#{SOD9~?w4P4*c)SGeHk2OH zW~3_ao`xwMEPUNycy;aX5V?)!m2g+ziV;8bAi=Z-1+UIThA859q(Xht&Cj)uMQ|uY z?ios8Ljrf*B-zsx8=g{p%N zbtwhBt2}O`Y|cbEK!C^KAcnOY>-rkIJh}kORryWfU}_U_JWh)V4MpvK7md%U9Jl+Q<9zwXaFJ}p zv8(EZIn{~>P>>ZgOb~HA5;+HH={C>M+;!do*UWh5S7+oj=938(jiiKH6BL`Ayz87?9hSx(wLQ<2CTBKrM*s& z+bYt><4R*im`mBWFQwkJ?jRTz+*{eNR^aftBKE$+Q@fSd5bmK9`1EQ9+pj${N8S0Mlf;5*rBN=Ga3%6AOQCBYYPg_ z?pE(DQI&a0=qx<15;bx`JpJK&-e|^8;hp0y+N)~_GFHB*G4k0BZq3cI%+=kOO1A!Y zGk_V>6=;0Lhy%P6;|S&lD;3u=7eeo>DR+y}J0JN18yLFKwQSRcHsO2CnbztL^ll8& zoH*cu9BF~`J$@Ae)W~Iy$qtYnTH6%su2MCqOe5_B z%$Vxc6-%)5f$$<{-rf!uoi|?SF@Rc+o3j)%9|qQ2ZYt)}>fbf3LcA0e7J6`fIT%S@ zNSt*-tRBawDo5))2uZ(t>13qRA%`Y)*kDcVAd)G)uynnAjFQeHboUYxW!ief?0G@a zH1dNQ(JI3%k6i>WsVM_(3yhI%wPv@8_PNxd_g+g7I|AQ($BjxUD4H)-HQ4v1PU0Jw z?`H71EZ*z^3&XyPig*$5&Kt+ON`|Mfggspbc;T5Kr}$IgHMe^dL3M8Z*UHpk6DU=Pqt=%)1qL+*}E~crIrkuW`<3z(DmclYZ%qH6CnGTDY!-E%1 zFeEX%XoySQegpVWYsO(eI#+KEs zH$w^Mnn`bG-hc-lhB2E4S#Z6%Bn?H(2|J^*5Ctl}DGa}N^R^g^Q9zkQ_pz*xw_uCN zv?pNzXA~Ufz}{t#y{;GV7(nk~?Rz}u zt&?C`-nuIErnBOyt(LJVz?#b@)I4@bu(2F`z<|+k02fe{Dj*RB#i%Nhi-qHtUA@l- zCQDL(nPm$oI9qSU;tZ#-Hs96j!~ntRQz+iT(`$*jYN^4Z9j$1iv6AWc)(4-cR;vNN zZbRhF(KjU9or9q%P2#ik#%aBaD%Iq5R7-dYUl4W%u?Zy0lUKtm@lzycNU#)`#qxFD zn^eb!tK+wP&yjO;z%`AM%`K2`z^jccH9AFEvkjtRVNOc4{myBp_BB01PaJtpx%0eU zo$%JB0!lyk_6-`b?h3ngG+Z3wr|=L*cH{|53FF!kcXvih3BheA3EPe?x<`U+B{ulO z@ybA@dd`95R;*P$8#RRCyOVMQu95zPpW&;a;BkJ2hw*6N)-%`#gm6<$F7L>m(Hw-F zVLra(DpEH3q6%qteS8OLq{cH#Lxi+Sk%^S(oy2sM*J?+)GraPN; zckZD#9Z0taXC~SZ^PV(%+{<}MPs6e%T`(QpF`>OXufrjW+JHp4sTSpyn=1}su87zN z2D)g;-ELUI6Nj@WJuH}$?phq~f()ZW`Y4lWTAbCmOERj(R4PViPRzps2jzSwNHUS? zF0XnOoUAyY%I4lo>QN%U_PWrl4tV2lB+>$xM#+)WqZ}NP927*ok2oE27183>dEqVx z;JKrDm!_i4v%L}S1`LDbWE@PNH`B|yQf(45~p!fLsT#*S+unGgVaQwgngf*)ry8gRt&NAwqRDl;vn&37AXk zbH`c~4Gw`ISFPU2eemiTMj2CHB`p#YlsdLYE{|Ssjhnm$Yr}j z#;4}p{G4Ph+L1IaVz8We0^fOdB~R7~GbTmTnnp2KZG>h=Ygo4U!%LB;#M(;+!#K7sssT?YnQ`4kPSN={jObI5H)=ShtXem$Gs>99JZddJ=;xv*M#1oJ9~x! zNkW07`d-?--DN^HAJyKcc5{=OkqX)QiriaSspgJg>df=aP^`VdeCzjaoH(DN8qqG4 zTgJY4ogOH$>8LTC2!6hFTTeQk(e|rAq?N}zXYakRGI0Sx5=&7oXKt`5nLbg5w-TGB zCu$NS&}?Qg69CT9!PAr3m?sGA5MCFOP_dKr=0FJYO^s_pN%Ss(6YWjKRO*mXT90&x zaQHq3P?8s)4S_xv$bd$3_K2K1hTT=8pZGowB89FE`~h5z`)*U43$~G>SdN&o7vfOp zTIum(?RsW;kLY@_>*91}Gzfz=UC5-5A2#Hf@6wJ_zO>keE-;7}x~r5q<$RvJ>uKGc zuW{FTA5cPUIuHTpZ67d%t=ho(dd83nB56ZPcs>KiWg1j3$n`V~!4_hYSY86*l_zBu zYEhH3qIxT004}cRtE9yVm**kXy#a^8b1L zh=+naG7V+PgxVSv?ebJXqITY<^v?4{T^q*hXg5e_M% zszdAE9SJ*9vopPW{+7r1u4HE{=W*-8C|9i=3%Mu9$!ugJ-$ScmS6V!hea{mfguQ5= z88UxSp7jd2;;L7rH?vq_vYZbD7P8}>=}o&!DEREde|Ur z))Ogns7fc-?k@w2X~%N1R=aRlg>PdOwHSH>p7gv5OppbEE)sENNr)FMPm}guN&Ay$ z6#aJTc}u%bnKa0h7TwnV5V&~OX*qm(9FhoKuV2NQaEd`)${M}$hHeBq*ts+91xxCC z+1p&jyojyu)zo>c2;e9H66mm4C}q-#bu`_(p20HBUJ5euBTUVi92UVaD3nJvZ&@c& zP@ynI`nVST5+&zg3Ph@kFl!>E;HufUcc|Rl?9p{q(L**liu-H{?{k&>+@yjS`riH! zh*oi7IMOu0K6K~Mr6x2s_d?Pe3I-ZY6P8yA`h=VZ+@Bl+2qtByzv-a7is#QTFpwUi z!Lz8;u1zmre0zvleBR?qSST9vV~6*7FdF zHg|lOYVj81xu_~W({}6)QJ=)f)F3IgyD>|CZ3%1Q{cJQyI3VueY8YkDx8hm#a9kj( z7e^R3*tBD0joJ&Df(3EoJAX5iD$QuJ@Yrwq&ge2IB(aucn}`=*LB_u8+s>=CQv^&Wt92;&a_P zQbo$Ao7$8F;SQdFPGhH=Mm?hg8`wu;u2f5)0x!|Flmm&R}DfUREsex zWw;ddb%Z(5f;~eMmDY=5Gh1{`sL?Sxm8#dBwoVFoB&v1^=t|&c;jV~jTFrx~SudDJ zEzHTU<@(TaE+Zx+P5|E(32M^3X%GS5X!0z%STKWuDZ0AodF@#NM?*fy0nl~b1qwMdoohbydLI0snw^^Z=C{GkHX4s>Pgi| z9Mml;vi7}{G@-D&kpWVdez6lTIOpcIwIk=cZmH0qP+4v`)FZ#QsOSFLTIW=aHgQuI zycGpxRa_{s7IC)Ab^N)4#iFgzo?kvMjcp8Sr~oBGft2Pa&izoLPZ2%vIe4hNTxEGf ze5^d788y&1d)C-7LBqN(JjxtSHFdC3YyEuZSR>~(Y~>2aBdQ}q3E1bksEL;~$&sUV zUP$OS0Y*&%WLXc*t>T^w1&SiRbV{Egt0C%3!>E@9^N_+4W+N{Ellg(zJnm^kV;dFI zG6fnNofB^gN{wRS*e(?G1o~_W{JB&%wr)&`+p7%DXp>4;?FZA+*aZ#e8&7e<**QdK zWH1>{(K)a7O?I3qkPmil_tj}&L~AbiSLOeA^9d%qKN#tS^)1jvz1gQH=KBqf-Z9`nttm#+ZPFv`|^FlNqRg6Ua!o|&L+ zwa5#)9>8k_7#~)xSW8Qny7w-+g)ug2+<4|jAskU)CeO!iE0dq`fg7bL`8;$0c!*0U zD)Llvco?h+RvLH?Es1DtcH5#Q3lVi(j4rSTbg{dwcjVdAYgfDB*xp*Lb8uSEKi>-Z zdQuE9gnc#D$D?O!E>y%Ov$H8$_FNuKC(@&b14KG7c1plB2GvB;Rk-5;G`?DEQdG|b zI0D%42JpC5boI2%La|L=n!^O%!jtez8aahBqk0_ZQ~q?Qhs>`Si|C~e9!Uo#S9mE` zzO6@dDbuppEtSY>M{Xn98_wpnyMf>~*@;WHkkk3x{dJ^0jmQqqoRa1OH^bOUGbzX_ zELh1dK8u4hnJ!vel1`!qEmVqa>-(bq2$edt+EiOb#8|EBB+^$16Z`TiSE1=3fhJQEjfmqsEdlSwDye8 ztrs7kIWnTy0EZu`buiLfRM6pG%=Iy6>x(OTIhO#Or+P%;__jiWE~)?_A$ApU3XKwggU$!CKk0oOvBc-K;CA zEa;Dtk{_Bb=+tm*%(F<1)dL5|Q;0GGYw3A`%(4iBa7PufFly8oT@xpFt(~knAy32J zQ%_?{OFDX)vyRDcIfgd6cit&?5;q|Ay?mg}uzgRR-$SeQp>TLVna^--gD6nAp!vHk ze6E+p^1|@Cb32TmOw)Gk0aH}(w3f0N#U`q|c zBYa*mB$Wkk(CV>x#+Va=1L#SW&6<=nRJw36z40msTm#&QX}--IiE3;^B$ije^WNsu zC;H;bf!bbE8IE|0R*f1K`t9Q#+BZLU$VT5y;qcWX7X|^~qIydTj_G&cJvvn2=WAsf zkd%cxmW+i1NG?Q8=XEEVcB>W|Ow{WyGKLlW;QiGYXtuEwlfo>8@9_0rgI{dxA=Wyq zos?N~_mKv%K(A}Zh;52@J%BN1f2`@;nmVp~TWF={?fW1UCa3bv zOu53b4jFpe18b2|$vp(83SS00(bD%4Rm_FFoDfO)QuCg39_&7?WIiIa(D?s)6 zlUSevg9diEXEZk&bJ6c@&tqpb2RCqQn;hjug?g0mj2?R4p{k!G6ub_Ge$MnFf=^g) zH+bI;TzNK00MJ16Lj(uCD^dO-+NMX|eoj6Gx&0!=UIx76Xy`bz0|BmR@7hj(rSsDA zi1p#waz$(u(=Gw_BxK`VS!5I66Vx%)f-_v)+w;|~ecr_5TK=B<=)9(j8qEtXPtnqn z9(j2T{_M6}*zqC{Zwb|fnj9C@4?HlyOZ+)Yi6?h4Y9t(G7WLB`bS{*B%K*O57oeeZ zibTt!xu3oDM?U!08Ae4xnmHHH3f#0yvKF&>q7yk^eKrQs&%FXK>g+TUSpZe$y+`u~ zJm@K4%_yJPyG*Py0u1!NMJ-$e6r5Z)nS_SX*Ao3^K%lub-53xH(3vo=S?OiLbM%Kr zlayY`)S=5~;L6#|i=Y?$5J7N_+pLiS>trhA#cGIJohD+R#-pmrdG9<}>%@^8RL2GN zy}=ZGf&ee-am0(dVJa7ILMLm#134Us!U9v7Hcxy~(#dm`;DFURbBQKOuf3FQv#*$$ z%O#o5o(Cw{fR2DApTBr2Ztkjay2rC6KHx3T2_`zSbR2_eIrbI~>dh-T2*^GqDs=Of z!1tEZ*%t)mNzkTa>(%|$8m0-Jx8h4Ve_Hd#lHIYSUfn&QH)%8^Z?S}+I!91x(NSGg zX&6YTcEf4w5pt%%%t3~<48p_NFh^1?TnMAOJC#Xx8&n_V)j7G zm%2_}U;E>S-P|5NlL8&QHykAV=sKUKK41&DI=;Q!U9xDv^3wFdCX;<#yk3Vk?hx>< z^2q8^C28N3FS)pR28YP$HS&QZT#|@JaJeE?S#ogkjMwYK>R7Jx_lE20+`M^SP5ZUM zkdBq@ zGSfP5DK15~6zxbhwy;#smUTzCark9}vEe*vvGTT8t$w0NJHS+Tvg-Oc`O0x=4<_jD za1oc^jZS1dQS+gj0bWp0oP3ow%P1AEC4CB2ULW`@y6Q>4d9U_SzVe~6suvr^(z@<# zPDcd&)Gk<@yrO~xW)0U9dE42lcAE;5U3(SnVeb(Z=SzL^n%Y22;__19=TK=@(<_!E z-!*$Wrzeql&qu-?g^i5+B9HpouW>u)9J7q}c~F|q z;B<9L!Bpdy8(7*%4Zg@K`PmwjKR+e4qx5s$T{v>zUb5~Tp#)TTNLFCc0QStQWpK4+ zV|B3YiP6ih8gamE4i_#e(HLfLsVHtA?cGeTDmn@_Y^vw*#lwa)QDTT>=q|OImv`HCEy1jKN^x{hG zC>p&hlk#+j>zIC=JH2eQ093whVX=&^v^KR)i5E1%on_2^0$YzaGG00W85{OW*wcfE zcGua&EbdAkkCSW5r6cSfvQxzEWF;*c@M)swv_Xw~MW=bwe$#IVjTHCRAag zzG4OJY_tUGYIVFIo4wqbg45KvxqgvlPuO5x6X2XSr-K1Kbtx&JBnqx2MrZcBZjW_p^7qVfa za7A~3P`5+T(O#jxu6HjU3b6*MH;5J{0gKw!+EY8%SBWhBs-D{AYrqxJQMzh>j$N-k zqjmyp*s&qrA(z2m&BM%Oyfk^e53ePRA=&CA9L^K=(PpP7yNgl244eW>l79RiblIdW zT-l&7_Pf{5EcDH?D5Q@#FXBdPVg=d-SU)~O>@g2uHpGbQdoYX+=e|}m4KE18m^r5~ z)aQH8V4ut9r5FK0@u``3HnDFASyX&iPa-Jk+5(PG!6$l(IU#VQg3Em!FPm>pnuD1R zUj<@|xGQTYg$Sa@=A9C|A0}IrO(7HIYiMPUP_nh{7I7r#S-8tKc_NL~xti9+|Ql zlmO>MNm-F}tMCNIWUUtUj)Zht`MHq*4d5{yx@YY`>PG6x4Gi|$h>3LErD{PQ6hV!H z9{7Tys0NH)%w+}3Sl@~%x!p- z1H1SYk44LYlCoU(4ExS0ggtA!Ya-pJ;#MzA;^<9kU-0ATOM!|-KWyz`njzW*PEJdE z*}X<@c_rAdyTiqH>xeo`G0XGL-g6x`$j2mX0@Z6f?VhYBoTYrCRGY4k-OpLoP~ffX z1G(3&NJtwpAmW0_!x@Pzb3${K&O4RI;dcg~2ijpqD`Q zEo(oS<`N)~Mnt!5$L*BbSF{0%1|x4(p9LEm5J6GuPNg>t>=Tk&7G<>6O}GiK6Ham9 z%+k6t@*+wZz{>jt*q#%fESMxLmnp|Sc!Nfv;kZ}sk8GqcUwWqzQdC&XRo^tr_8Y7l zz(H{2Ba+rSh)_D8v z)FPV7O6#IStP(~|-$}n}K?-B5DtRhY92C%Z*ltTbN6i&7p1BKA?N^uT{#I$|nY%aw z2i7$L9*(y@-8Zna{yYby2`t|nUydmYg~e9HQRL+K{7WzfN|?I zZ_pqfc=U42-Ilcj)|&?bvL|+jaR1ypD5s5KrLUUV%a$zYeTsUBY>#ngw-OW0)`g;A z_8|IY!~_DxnDx6j7Xi;To<*a3;ypvvyw_f2b>y(9RPYjhEv0rTP) z1G-5Tgob!*Iitz~Qp=B7qt|>+!qPn8IbQ8n?^@h!@GdbV)teiIqIZm>Dc3KoxOim= zJznQk*0yq;yi<7m_)z`2RL#lP;+PACbi++9wj-RBy`uFRb5zL2ZYXm=naC#6WiRZ# zqGD$PT7dJQSagr5ORb=OnO-0ln?o`Ov_Ng^P0FRV4VJ~0HX#9Ws?e=Ql%3>+lDoq1 z%0l3PfXzAY%${-i&*M~!BT6_?iG2EYktox&rrmLid}JS+GZl3^-T||fdU&icFSg<@%{#*P7WGv009GdTBWZ=@!DN@u8FbsdhscU;jm zuNWT-P&`EQ7Qenrhb|7iae*hKkI&u!&^4zTiL>{TFuGE`7E#SWar0HESKPQ~2gnEa zh*>Gz1M~SieWKpZF-J+@YqGh|cKo|Rd@iJ4BAp9(G4!K0=Acr2^q$G|EeATc`PoB@ zdk?uRR^Kx%&sKjYDR?N4YmB0R3ix+Wk*@Le>nPdAO|4o@7+B+ng1%bGGDr+hF6K=y zq*qxT@`H?1v4!HzID##LHrEtK$HXPb&_g9ZH}b?+bCz6OkFGt_K)9RTG1o3J@=~R> z-!9h6*@r=SOdy<|fmptcPUcH>WW=%Yh+IWO7^(DJt z^|Z1#Z9S|J2xm^wvhn~kT3}eUd6W#{d(}O#qeD`Z6}vZ3DqCeb!Z2{#+hmpMlHA8JAVNSIHEcsD|T_;I9}oMLoenT67PX+%Zc{RY-hir^0f8 zOY*^UAKQc3`zP)-7 zhwpNvliG=!uIF(c&Zexwa(YkDTB*DTXoT@>;cYkNh%)61qTx|hW;cmYY#o2lT`Z%j zr6wH&*~G4e03|7yrV>YNPa5rA+#FCL117v3sb<-O@U@7wd`+=MO2gotkvi1qE&B9c zJ@eIf-iB=e;$gb(FrIMq7LE=(7vOk7ZxqyCAB1|+zLp6~3zevLJk=Ms8in4vJb158 zo;Y&yD7xLdsIfDFDBALf)E#yqZB;1)O(8v4+2!}9>y@yInuvN0D-jj1=5 z)C8$h@N`a+Me?BKMzbzBdlTX1dj|c4*(J?cubl5?TT=j+6kQ#W0Z^|X;d@oK*t`ND zRyVlJQ}4C)RA^+xl5?T+2_$lXdg8SJ#6(f})CSQDF-lXi%m&I@zqha09;4mU;UNJT z)G{$U7SfIhPBKWETNW75Nk6>|QMX7)k-m*sW7-svO*X518^zo`0^ZMr=_z7f(26{k zX+klJq7lT{N{%)hj*8oNC>oc745>`Nj*w!(I4iNn#diF2EJ>4D(Rxid7ydnz?%hXaA*&jf%B-y^!0t>{QPY}336 z49q}xxA>wR_4T>2!h@m}tD-ax6_hw;=Y7e|xOUD_w{A4`ift=!xntF)A+q4g{boJG zQ7Usf5$Sn_%>gHztcbx(yAAs4zV}|tu;UPP87rHkQV+6nP)sjg1!$?TjI)jh_69!j zicO$6a@?L4u`bit_QuQ1LHHfC98AH8MQZltBhyY6U%zYKXO^A9{$4-a0Cm-k*|yEi zGtLEjFUBC}F_{;bb_!$f@eIPLUr{vL!2=L7pt5os7duvBgazW*jn3PsWR)u?}T1PFTc!0%D*I8@KP(l2Y2L zc#PFBk!kls)`K*1e7G@>wE`z`x3u0q-jrN)c%e%eC3mIghU_~&T-k(c3a(fjNBsGY z2>4u5gAd%zzSQMC6$Rf^qh){4NWpIm-Ma6<4)50K-H>YFh|R8@P^(Xn2*uNyF{7Nd&9FQu_jEVG zfMR*7d{@fXeA%xN!Sgi{9lb&-Q+&Z#_>4K&u#%l^GdWRfOCS{PPUfm;O*Ed@^Nc4D z)hibODX|(?@IVq{S>Z0%eT>t{+UeTxdAU!4?Gzf-3sIdRI#?GvL&=MI{SLrmV=ImB z6!bl@*+^qPg2l`FEHkn4`I*5>))BYeU> z2Ps+w3%F9h;$jEjrnd#I1?q}gwEOV5bYXUr4wRSJXG9I;ultRX(u>iA?gR{lG zM>i2DD7eQOiv6=TES>*!wC9wHo7uN>5pqm2U zgG6;`wRs6sSlQhm!+@FT*Qyif0Uld6Q&|aenLgw1QkZX6JuO~79TzsCBf7-*-fKmn zvqRr84`)w&j|>dQWn`Z=UsGV86j!{!^CiJIT&hq=0Tz%YFi2(ZIter0d4!J`Xv4F9 zZlg-q1hr3yd|Xy)04xpd)qt*al`SLa%Vp_Oo$NIAzt~?`fIo_3`qGu-rVb<2SZVoj{ z1zCx&QE^~x3!Y|?Z4@|z)d*k_J2g2(*ycuaiQ$g!i^Mm^V~I;7-gQs>75UopE95LH zh1J7F_mDTC8BcM@sa$57_}yw-w=!1}yn5tU%?seZ4CJpgm5>Nj5;0ME1~);D35$0W zj(Izr^yvY~%jMP0N3fIh1m|XfTn2YsAq6#J4Jbh{3i=@iD^*9=o9$6mHmA3XFQ#ta zE|R34aqgS|Gd+JE3kAvZ@Mb zDDa#tvRX;@4hPPjSkc8Us@tNc&ppssoWYw}TT2e-)re%n>0u6N7Gto&2}z0av|6=R zQQv^~lpvtu874(;hqT(GM-olQ-7gq$+24lKu8L{eA*dI)KlVUPX|};BhT7aZJg~n3iM|PvW1EepK zO86>oCLH+sMj^MUfVqP(&5EQ99`&gUo1DNKfQj@ed#_6orLl6bovpE|<}s}j8;s6b z6Cy@FL5rN%cIrLET7K^Ym-NYGv%-|W>z0NY;7BU_Y!vjlxR&d6gvci@2Fnos7SVZy z(ch~I2wZYF67MTyer^Ra7_j`X3!^gC$X+G1c-96!@I_~y9;m10mC1DP$iSqJJR|C&s)Lu8!ab&u5%&=6$*v^G%K0jjE)Ki5D2DfCIb$2htH*Vt1}s2*G{%RF`pUI8q9Bs7a`3`gaX zD-4sR^jqAwMpV}GT((YB*X&g7E(n!cKZ`^iAsA~ z6jhI+(5Yn7@5ahS2%sxQ`IhxPv?hEJwl#;2Q1@&BM)XW9@R_t+I!|9d+s4o;nt83- zIPbyZZ1!rq%|p2`ps_(*Hl%E~c)SG4(lzgds?iyT zUPxZ~gk9voQ-iK`=+(g`(!}u`q!=#qFcGc;dNVnR#OfVw0d;3vTKU_@*=Zxf{oa9e zzH?Lku)$I6{Gil~UiO$u-QY84G=6Rd^}WC9L{jqY7ATfOx}cbSxgc zKu~RQa;?o)veE5?C_bI*Zo^*jD4fLgfLv%v=#z&NjYIE2wZE`~IAXsDj0kz8S3$@Y z68%v)RW!(}oRE>*j;PZp z;!@*kv>9_iRFoBx_Hi*8fmFcEe`8XgK-EaAoArk9#rUC?365ww@93r^5(F`jSW`Z@k)4dv0$9x zp#5U7fLmEA5g6OXr;Z37q|(bo(dYFhBB>eR&h#D$fkmGCP(8aRyQ+=(t4os4o9CX* z0u?rLa2CtLXd+LvUSW!c7SOvFS(YV7KF0(UPpiXTyoy&HC|xMAi8YpxjNHX#iP}uL+zD&}E9(3!MPyr;XQE!c1>@2Lj+?35O+;2ex%uql?$@Pt~;FQYkY(Kus4-q zeb~mmWdyXvF!F6C8)^<;1!xMm)1N#Ve$10)8?Jd82dzOP%&=gcQi7PP(G_0p&xgTK0aWo;<1ROl9L%uNEqu zI?6&`m%g&Kb*0d97qQxBN#q;lE$SRqgO{FJH{Wi4_}Z7(AjXG`jdr}%r_%NaBYN6%6~ zM;?qaKT(gxDT}kbNf7L7P zG7&``+>7S$mo)o=~W89^0X+&!;GbzrkfrYb9dM`-~}sCi!j1diFOK5pdVXEyov z?wq)=i!K4{(crRnK&+DP(BuZeaog0EKB+e0%dYX^sI7cQudx}s>v~`p8j)ASo}EZo zLmiGw9JHw|IsoPRzGzZXyql#Um^V;)umOtCHMDP~Y#)^Z9LwCx%op+KUfNtpDO|cC zC6VEE-V4NDD?u#$t6j7eY$705Ee+zFKY0V1nj>gB*>B&27p;V;PZp7Q=ZHyi+$%+B zv=koazLcwJd$Rl-K{-h3M!RI+n!F)vOS9v;dGnqMvEm6sbW$`ZWJln=&VZz-I5h!E zA-0gi2g(m_Efo1d@xzTS`-xbK+i!4`8Fo{dL+?SpWJaT+7B!fpo6uXV1^pCK0k|GByj;0?ENNaM`nZUxYr#^l@LiS>?uBW+#dEsj zDbREM9pt1;T_Ac4K-;k9QOw3U_?%tm$=Kj6IfVup?8t1TukgA^6SEh|)zS4$*i)Vmz`RE;UkP$;7cE?b5a8!&4V zOCOQPkzS9IOL*f&X%?pR(+kq13avatWo|HfscH6RkXtp);1Fw^HeFg3yqyqVDBwkf z)1$g3Y|B@|3uj5G%e~+2g1^_=ZLhG!I=})Joj?I>%y4I? zPS-;o0Ce6n+@u#crqCf^2veK}7ld^8s{~$5n@}&htCiwrBKwMRe%A zcAk+=3l@PZnFPJ1$`(^4xlTxgUhJ%gp6lSCL9s1+2=_?oSYb-%#po2;?Nhd(Z0eH& zwIhY6dXw~c7s3=>JYUPsrH!{&*@k+Zc@T9DC7D9#f}--Em{S?ANmkdR!Ex)BN-T8G zHM5dSF_^r5@!Bq-(^TmRze`E;>D-AL3 zs>+`NxhYflHaOip?HZd$>DaIy*=!q@9sc9Bgmyvf@H{QwQu#vdb> zr#u?=OEHb*^<-U?7^#aOZB;gZDr9w%MbB9`pWh?gwFfV8^70frY!oC4;UOQyy^*Gygr6*kHM7Vc0M-(Z+OsEN1c!cJ8w)7!NWX8c}`D+xIqOt!QphrXld%x$}t zt?fP#UXC6`#>0WZMuzC4YtO^Qxzca5G1wLgvdeMWN*oUKgi?&(`Pw?Dp0;TT;G5K7 zFyhAo-sC_FpAADk7u>YdK1q$f|YG4!rZfjtz`hZ8%!AE+}}}Nmm5DoG=jI1~midHr7V6 zRNQ@kwT#?JTj64E-o|P2d>~m5dOEHOYl7Y}PAZ6ac6-08$K$ex@@9J;1h~RJe<-*$ z01nJWPy_|7ggU63M3^%NP!V&fLA@5Mk?rzs3|a@wT%m>U%(6v7sSgI!-FqQJX4`sA zVSV8#=f;z6?+vBOD@B`HmSoj9IB88YwJYeTX_wc|J$rISG%5XXP|(pxQ2c_meHjUWF(^q>pz%&9jc&^LXn{_qzMfh&?$oUF%$_r{>Qk~9 z&axsw9CK>IDXS#m*F^Thpc}pM=@^fSKXbZaW}>7Sz{(2Cqhx~f!&!xFI5x5h3?uRg zekIfOh6o-^ywn|VeTzXb?WyWM*Oztuws$4++UjwflolwiL?Fu&F*V5O6V(7sh6+C) za=3>>;tm5-kO6rF2yQ6bal3N2C|H$@E5RgOwt0#z#mo>~4@?jfEn;ZHp8(v3@|$T= zp|Uc&B%5L^firg^uI1vh+2L2B`D$!SND0)Vc!*qL=Pj5aKScFGV&IY%eQcL^6^rj( zi#^yi&CiyhpR4YGB2Uf4TX`=~s>|1LM>~5OA(YDQoY?rBWw%_zOab}~3arxiStv5@ zK8AhQ>rDAP1@dYG9$>zjZV5bEo0yfi93mv5PyyZ^#4jQssgu;AMPA&^=~FYyiN>Bi zhv>;zpPpjDtcs0B+e>~HSwmdtR1=P!*A}DiJe+)p0uWhZqOkRZIG0cyQ5oP23^j5ZdJ)WzNZ z++)P;z2n>4i&uig)6g*QdMK`C^wi-5vDK-DabMVO2C^~ZYWQ+7K_4Zm6iVh(52^Ls zK;Dse9U*Y2BMf%}!VO~&&0~-h0@LJL+Gbyqv-!F%NLwm!ZvapF*&aNcjtMaaEEE|; zFqV7B(vM9zS;}rNc!1>1%G0`p9a$A2eybjL0Wmww!Jh9$k4Smg07@OldH_*CuD<{V z4G1Q_CaoJ;U&CB-OI>PoK)a5xs%A`^7l}UW_2A?lzG03Q2zkhB3<9`>fDX2K@12AW zmE8*&c)AKF9Khhn59VZNPQd;&{B17Xm~9865&LEkGUo@yQ&CAGC?7s)F*p5!8}Gd7oO+^~6T zJ{yJ>_JSRgO+z;C3n*m~p$=|% z><^_TaIrSOn}&bBGeU#e22D8NC^M=+1dylpXw`)~Ow2*Po3qsC0+DKp`Q9bd zrO(v(qM}5{FV*r)1u*&@Y#c%%b1!9!os3b~MMrQf->H|uycg#tfW0mPWk&a?b<%UF zmk=O5WW2yHaW}{MnHGZ?gu!b;D1mcZd&}>9?XjO*KYx_MwntSf7Lm2nCyV!tHXVZA zI{^KwZLCt?G8bwjC|>T|YOkt+Xf=??;1Q+hyg3rNt3noj?<)IEHB^Kr0|1tT1X)ev zCYvdRgSd8r`zTjdLv{_jw;XtR6Tyun%C=fCyF99jpr_DYs9NKDC2>@;5O|hZ9OY~&yVa`l9S<1Kq0Xz2+`(o;-!vQC z=L*gMo9?YAcL~m$y9B!1J|qgMfZ{gO;=tn?NXzBS<95__2>Q7D(Q#1K^`qi7*4=j- z8yy92(q@@40n4hR&&YVwGfl~ac2l}GQo1b0kh zti|meJg4g$Bs(mJms}C7$Jvqm%okS|7z>|A%G<{RJ&z`ag0Y}0Yf50!H%agz3o7@^ z(&`!#Y-S%CE^x~hONl0O8BspeN#2oFu${1wAY{EO*n9V;9{AN`nv*RF;$$b$Ytx5} zN#>5+PNSobUCe~V4RT-lYoiC*K#9U|ixz&i2eI!-x=KR&3VVAgsKt2)=fO4!OiNhj z&oj8%Cww&@T>68nFyle)ou_~#lfiP#LS7Mb1R*WxYNo@Fle36`(tCvY-H|>$MMNU6 z!;_Ypt3D-j3Agvmv`Rea!5BYe@K@oltC~%hI}Rc=0cRGX{V`5*({l=XSNA9}%lFwv zqE9|QVH9rW%W}_g7u%LQr>@10As)?C(=flaLqBX1czGI*B4`L2Fcm<@nkiY&MYk$_ ztChL!y%=5c-J;ymkwf(bX6xGI7u)S&{Oab?{X$=Ai5)qLok$;Ri8Z~@d}8U#ydBD& zk6Q3jrqLP~PS4?z+J|(34_-g&F@2}q2ZwrrGDfExD1pYMAy0;gqCJJ*Mo<>4Yn9;S zGv9jV2}i!ek$z%F#0#&Zk=PILy)npR$+m+bYjNQ2hz+Nt6o0v*N=oJT`>ZjbwUTA{#o-iW?mUlirgG zl;?}8esQ5p7Ert*7o7#SR5KJ$1^{=JF|x9R#oS?F>W*N?P5ihCZcSpZ-b2PdSPv4n zTSvE*s}?iYvh@NFMe2Au*YJjHuWGGb?Hwv;jo`@Lb3IPWQr|g=doEi@frn^yYiKXx zuht>`dMx*527Dpz@k=LC6sdldAravekvrVW>(XlC{+_y|_)3=p&?TGucB#E}gbuGc z!$dzznz??0AUdEgsukdpsRmx*L+R!YWk?^zVaIB_0JDz0+0^S7@giPtyR+kUB`mjK z^i_!!tK8tec~8W~C(RyV7vYNYs@c6%o#!3PF_9rGqvf2J&xGx;w}_f{Vtm3hUTSP6 z4az;!)mgKGU2U5tzrx1qVybf!WPnX#gK|3ze~`NQ-XsLlv5S>egel$Qc@8k?6l zLvEvKS#+!626X1i;5Nt#j;!s)c=6q5Xdwx+iNeTg`d!(kIH76nww zH0(FVoeDnvXifWt;(~!Ps+Wh~q!iyaf(YLuCY^EgvLm!0#3M9fOA8so5UUfe3n zD>8mc&7$Qu^)g8x=swUrtUEUl&5gK$?x@mCPMFD+1~$}{1aRv2!toTI4ZV>CmR;N<@^|H>&pZRUWr7)%ERCqi>5he#ByCgS z7sXwE@e+(=&_dt9V^ZfM5e^+s^rlcmmWP55gySJzgB?7iEAv$_dymg;Gu>Y8dS-}* zN9Y#eGufizJ$a4HfCM&MEb1?OWhT=4!qz)f-_m=Ji#3qWA9G{u^?6gJ9`GYMOtJ-~ zQcCdwQ@z$H9%@Ytas@6xlX0U#Eer6i21Zjvw{CM0(x!ZF?>76TGF81ed4eL47iQ3p zJkS1ocla9_5TY$Ea%5NQ0S2DrkFe@!aG0kp z12I6m8H7h4LeDgdy{+pwBQkin3!6JH9U&9_sSTZ;XtB9Fo|1dmlA2%ki!)7QVTDNx ze9yQe&yi6i$OGZY#Ut0c1DdvHTi`b3x3*@9?oFVb+s^(dkwDlc)DSE=@|cE+cI_!o zNvQ;(OM^|@RntILQv&ttUI2rpcQkni?bnK;ugiL2<3X9Ufo3^6RBsP2HJeKiS}_^M z-eWYCJ8Oxi7mX&AuhZTF{|@Y>m^|Tg!jAWfl3ucfjjFkJUoh;1jyl>X8lAC|60@g< zGp|H%sJ))Zd?&dJVhTPyrwmMEp74U;lHROUtGFYp)Wc>1KK0S)nZDeLl+@$gY!#z9 z0(BsUH>j~CMWxZV@8)_IqcHrrC`h|<$pO`LR-Ll81dB(UkU!|xlL5i}I&@B_k4L!NJRojSvQ%oZ4(8|S`5L+9#E1|)UgaH^Ew6J& zw01&lJ*5D*!!`iHcf@Q$vP(~iAYy&IWT?{vy<5!Ww&Wh)3Nm(gylpf>b$y=pw6{PQ z6AS(6*SmuNK9}S5TGqHU;=Lw$4?$b>6?YQQ^P|#LlXZ36$N4-w*j#FIRzih_)806w zv`Y;O-{8jG zLHCv}TwrHNU6NI?iv#gcWw`Y1k(Ap&hR&Ni%>omTh|D460juG|_fqZg%`(d^8yjM2 zWcb!-ZHM6PGT$gk*d0h(=i0CzOOuU{zz`f%H|r{rzUS@}z# z?7GQ$@Mw%$Vdd^I<;F8@h0caxbC@_ty}s4Qp^4Y3knb%b;vF;AlmgVVe2+x)$+~tC zORvvR2(A{lb!fXN64)@%Ain@QaKS)u-hHut#YUlWf~_l}eZ09MEetumvlVNm5sixJ zJ_82vNO0;H-dd7w>Rr5|l~!D7kmubLqcQ8C6CoW{5+xKUsaP?Y`HJxRk>uLqNYEQw z>M1_MjmC}HdJhBjAc`m-cN*LfFv9K>5u%TRx&gXZRX6~%6h6J%dt>sV41ss&>AqEc zC8(C790fN7_?Q^wRZyJ}I7=8cvYs!B8q_lM(H^e7rMC=xX!88MtSv-*Wa~-++}0Ty zCr(g|t?ZoFtIxQNl%TO-&ZvQ3W9@0Zw}qC<1y{>H>Z@=8eW@CRe4z$mW)(^1rE(Y+ zqL1Z;05}<~cE6e9H}|w&EC+hnqt~18%6;g{uj1m6Fg65_dsHZsys-yfK8CRbltaYQhV*MQpdG`v>~J05rI($>z~C#TGPcrW?!P$6x;_u|2O z@;snkbBjFwZXcg(a({V`$)dZ2AKcb9SUQHlJUA}ZV`nGL+cg$F0K*hqtZET4DCxFs zy?79fRwuPLW383Cq25R6N%go!`hqOWS@(G|RE?uaZ0vi_5m3`aP9x@?j4A+F$>tmd z-R_k=A+W78D5*j7$7gj3i`qpPIh-fNS-AP^Jvf=Qr^e=}#@c3YP?K#+ZN0biR>~L$A3uW-18Y%Pgz+ROZvs}o3qiiVhsDIv<21c1 z-jI|h&x-=nZQlzRdxn7t#?C48?p=BNq4a|2%F6j|tt?(ij2c5YWP)~jLKB=AQgP49 zz@rVy@;J!FKldJ1^gBWG3n`lA3{cI-QYb+w4azZW+x~(aHB}m3iJ{%?5R;wY+kQN6 zN^&If6c@H-E>t=3h*uyVwl=a_gt4&7zQhOZTtYhyj0~BB>3LI4G>-aSjN~9`D{6^6 zpx!k0HRjf%ljlq1BF{B!2a6UpCh9#Y#o&@KlP-)xUP`F~6E={=$FwB7=)`Tp7W2@0 zoq5~3me?cEmEP^80)!bf;sc3R_5y(~m%JX6i18*=EAwh6C-V%HIVyY&HJplw8z*0G`OL(hCl-#7sQr6V1&(zlADBTtG5s~)j zrKb9nMR4TZyuCmZNA;wTl*hCP%|J&*V4BkeuM)u$%|?mCWepqBSI){SFh(^ylX z;2D!XZC1X1qd3e8r0usp3C8mdhaL*ziHRPR?&iGpNKNiX@2fVP`R7ZAmJ`f^M*-EobW&*4tQfkyT$F?p>#t}h)9bxwG&Ky+81 zt%h>N!rkDH8Lb(cB7+t!HWFl)$G#knuXrnVkSGD`ZL;LZVg|*W;z+~2HCw#tCtCX4 zUn*>LRb0OXXu3yJ!x}2#{!Rm0&1m0~Q?%;$gJtwIoJnXGX_ZO=AY16+LPxbqEzujF zo8T4zP6W)08*RA1KVi+_xikW_9Y{%JB&4}GmI&kaYBH$NL>|43bI6!?9r{=o3+_!n zh$=+bcX6z;;LmX4DJqFyOP|~$<Eye!&JIkHl#! zB-JT<%bGxr^L2;DTjn>`Rk%2NOaY=q*|10h!mk$1wee-(83&7AEUi!KMV(7%kho~JU)Rn!+#%?Sw#j|~xA69yuq@dZ8-(Y>+WNs9NjqFi&Nk_bcR z7+9SnUi#W?-|C9fO1@-6GkGibYLAs>+zINQi@D^do^p$cgAm=~0Y#*ezJAAPzVIHvGn!|SoRK1Mm%Ec>^`IUFKS?jz z*GMMn#a@^utaM^Jc{8VFY_%N3l*>0{f`s1hz=p?X?U&5LZZllH0pV z%9&4-jVXetxx8N908FC76MwK%9_A05*9zdM>0Lvi-1LKSxiaVn%@13jFD6L|b{>wc z7YLM{M_oNQiGw4!?YlSnBCDB1>bd$g%Z%f)Z6Reb9A&mWnUle3%!#nxYaV}EF5J73 z4HN+I^q#BT!Z_#MJ*(OGz?%rPm70y;Gl5_PceA!vZbia+3$lsNYUdg>$wJ8(A`(V~ zC;e=U=p}pCJuI8;Ox$WOWHEjF)E=rg7M7tj_C##Yn<;u;pupiS+d1*rn)vD5J!&(& z$N5~`k~y7P<_$hec%4bMs_l3BR}(>fMDqZo_B6Ez%o^X}OPET;&Q?MN8S|yiw^d-z zwIRFd4HTi+Lwbuf{Ia|8kfypHyKzaQmkvCu_hLgli~^|gp>c*k+{}8yuL7{NkN2c& zuop`qJ79xP7o}}-@MUv(-eo;xe5AP`=0cN2eubi(_Dl%aL5wX~8a8xkfmIRj3Tvix zbx#^w+bn<#(64a;o+P^p&GJDtJnw*(;%l1FC=9__VE}YqZBuMR3Paq!cZ{q}<)ca+ znh!Y83@3+hVM5i;9ul&RyuxP|5eH;E^dcu=Y03Gi>Gn2^khe$5YV#%{X7|lz3_{I2 zi$_ZSQXvkPI&OxM;Hgau!y9?20|j&a@);?FZrf=udL+fs19@k$XmMn+kEZa6+9G)B zYlHX5wfR(^=4D_%+eaxyb$}6q?_CaJhE@hqFV_hMCCJm`qvscWkefrKl56ko1wD0A z<}OAq-=K|_Eg#l>v8*Zig2$wi1~Ac!9>i=%#KW6tiWx<)SM(BNrz^YDCx~qQmfk#k z!Iq^H?O^Tws(sM|#S52`3(kLgl`^Wr*Pb?nlF!(srk;Z`+$6UD)1@Bh6IJ z%G*>4(T=7(qnx6)l4{)RYv1ELPZY{6|7;?UzCUE4+MPTD?w5(NarGWNd0`UGI>Qi{ zLNmFM%H1%iS}R2S@VWwwiN=UVI9&T#kvCODP8OR*sm270)(B<*jnUcIA`mvU+>Kw0{P zNSU>qtNm8a4%}ZBLMT?`!#jo9MMa5f4X3>V7nX3YGrS#a?s04g zm<#XvkCdSE@a38%+SA6hNDa zn!;0>kkU;$?g7smOu-RKs`%bJTp4{)dQokiN|k!vaXxDXq>#64#|!6l2!!EVNp`}I zgtC2R{4JJGK?Y{4=zBLvDFRy?dhs&VfOjN7njT;31i=f0t^t}w)#iSW{mOCA$~hNV z zB&4f$zO<4m!@b8O%L=z!6v%Oe2C9lrL(WA&6N0r*JuD757wqLZkcVj?8-LxrSEvJ1cl)Mf?u9#doV1?YRkEbIQQeE_Zs;C_s#0td~%R;;x2s+`Nlb^XnBU1L#NDRRUaDkp0R~z zVpR`|@g`Iy1AB}q7oES%Y1KmZ;)I?MVr?WFal__AWONNknK?jWO=ySY*9P#bhd+HW zeUpqNHHa_$ICkmhtX^h|X}>FIToP5oakOia$0>AD{Njw3iD#ebaf?cKIz6zN*fX7! zvgR#Ya6zMe((;Rv7$ z1TaReBb9MMV#$5eU_`HdgW_53IakAG zxsuC!9NQ+sdg52sWG4Nbm0AE{oVC%VQ4nz@M2J$W2er@j-XIY|>?^#P;8&X4te!MV znAV`J8Dgze!jspp)=kt#&FJ9^IYl;#SL(f4ma)*{PuB21ovXD2V4REwN3`k8s6 z+z|V`7dvY%S9X$^nW6LWZFYM=JZ-es(*u{~PR(K>xAk%-blB`J^aa#Kst!K&BJd?V zYlH#LH#NLZLEl@M;!+?5Y~@mw62Xy;2E~CO7 zqCfLPJYcg~5J|_3ofJz>>MLk}K`{>@kj^N!wJ)ExW^0=GGvo&>V}ac+dnZL0kB*)z zRv*0-Dw$NCvH~IlZ3QLMa+)ED7wMw_MVnb2JTZAq>6joii)bj6!h*Xx-v{WxFE_m zGehSV1kYR;ne~Y1oy3cWHCPF>6kxrNftBz`D*y&05iv5B<8fM#qt66AW0pDrHc3F- z1TZ&u2OPq=?XsjQ3SJJ;xilQ_W+Mi9Omz-OaEqQIIPRlaO+5Y%%<76{YgUd6o|=!E z?JDc^J`Nqh=f5nNQ>P?A=H2V!Dz~={M;ni3jGYbM+m-_(;e9|>kc~8Dqw_AH^Sl(C{(m*cNVc)!6_dLTYRnUU6z}agWQ)*YnDt{QaXpe9!8Eng#HDZG5 zN!D1LRHO@ocf3)g_ilUjInZ;HOrVOL%5GyTA3Exh z&r^_~MN$Ea3raa>Zm!czfe9ZWBe1abj-cb$rfKgcon&>I;9jz^T2lFmVD?|#P)@ui?@ziGu2Wb^Nfjs5cYzy zF{?32S!V8wseoXqoaYV@J7OrU&Q-h|j=TAYw@+1^bHFE#tTlQ16h#7EtlFOPdRpUC zRm_#Ub@H~yGqNcOhGe?VX5~V%KxM@&6WFc$Y{ZRWnhG>(b%NIBLK?G#%Jj?>b00tQ zP}*!m(Pf2t4Sctq+ipZDy7ugm%Q6jjws83Q*oe`Vyc6m6< zFC$^%WdJR^V+k@uJw4I4oep`KQ+8gM%#$4z82smByVXlu$L~ ze(7Yx92ULa-I{4D4}2??voG%M1m|frGvGO*4Oi%6Xr)2Wf>dTXz;L^0Zb&9r%&6Rw z;OfGfx|Jvem94<8EfQjTZ7#l@Y_iyn>rB$N)M%j1%~|zwb6>niY_UCia~ZD{wi&=u zuw@3~m5`A#iX0Kp0uF({AsfTg(+(PcvAStP{EKVz(+7t&pi9M4)G&}^P?L!G^ig^5 z3XzH?Qzg%DuE@L=>Wv&Infk@T7G_63Enbj)IoD|~9D6HI7uXUVLpRNxbt28Fbg_2{ zp1SH(r*SCr8t+N6JRi<0G|+kqXOA8E;hSIFTS;rzvf(z4%!a*Mz)`cq_@&}LIxo^r zJ)U;FwR<9-Nrx`3{g=VpJ-CcSpm zC;~5B_m#6e80SRYQ+|(9H^ue|ZybSeT~nre-~|`o4ATvfb#T3Rk;BsW!iip-<5g2v zwmHNBE;a>&y&N5K!bbAf(oA-YH>@nOXT_T^I1y7X^3a*z>O-QL+aU?O z)&L>9u!IPLU@Rbhk@qT}7TS%tFS=b<;~hd|amMzw8V2bebVobwf^MrxESY$^OO#*6 z%(0F(a46xOc-*@a?O=@2V^8%`zr6wVtZiZ^9=k>XGHc=&b>@RI5>uJfg|jFhd7wl6nNYCEevwE44<(tlAKAlPh8hA2;Zxc}!(wDBJ$19EV z2{kaU5yqOpQIygJ?~r<`14RXw^1b0BjF)z;vGX`3RE!M|xH%NTd8@=Rt2;(upBksl zR*}oK5lWpZ=oG%7v_r+H$Cf-`Lk}jw9Pwr;x0WRh(7ewXTQSa%_DE}YyBYl@0t1+? zz3bD=q7L&Q%zYsOp|*_Y zY+k<}-c|?jcj7F^iH!mVD;5?FSRQj$tISU}+0m*YhhBE4cDeZ(K0KfcLRlJVq`p@? z#6_V5?SUzr?X|jZw!vSRyUoI;YdNN{M1}fQE_!jnBc8Rj#@xL&30LM`yz`3>PQEv~ zjoUZ(_hY9#o!JDfGCJ+@@peQy0Pqoc7CEtzGj6?kX-Xs=Q)_m%3<;`cI*-~o7zya& zIFsKXwUTmPO6ZGbUc{3{K3vfd0-rL!XMHaljaXw=tsDS(Fu6iKMbAYl?@5wL`Lgxd+(=zIN8ADafg~ElpAzNOGHO?sMYESI|9@d=<2R%cv#xS<`AZ{|R z9a*#DdYFXStUxI1fmVshcB&h>zLMj2K-yIM$YWh>1eozX*akYy;?_q|==1U*aVMq> z?lGWlLgyVG?15M6kc#S@c5ft$Ee60VkAF; z2_RV`Ida5B-PDuoV+X;cHXY|C=5QGyg8bh&^k2K#{<`q0>^0fD!xzhSmo_C^D zkGPYz_QcE54?GATnzs++Oi7{x5eoMKLK{(&MXo|-I7`^J3ezrTO=qr;2+JMI+K+fc zmR!n*#9yF%@Ae1}A7_jGMT!OkZXFJ{Z3;lG!XBvkn=XJze8tz}^%z%EkJ)&pp zYN$u*_8Og_`somyj;wM<%j#1Xc_3Z=j%zt1KuXTy$~4k~DPr@|*YPd|t9TTM9SWP_ zVmE3R&_>2iXVu%&VmBxWDki1o4PdpX^vqi^*J~d3GmHl8(RrQMBLK%|>I$&xfe3Wh z2!}6tUos@t2tP+NsbYX#U4jZ>g6pDot-8MFP#v;+o$poqtkYY3#RZ&}i#Jc7y9>@O zGE7!CF@#j;F%Oh}&x6LUM>{OBjh!`T(%DWtr`PvPX%L$a<<2YYqINoLF+Ep=8!A?{ z5{JF|a$rO+uvC_$;H4~kA5XzlvszU(E<7`S5twaMTqH3nfG^3wx13~dS_R@IAD?VE zlg(Ny;B!_R4}hHO#Uo>IeLk%kVnfzt##MO-wX+MSBCoo#!-$h$eFu8A=uCO}U>uf( z(A-nH-TTec!w8aWIs)m_En6LR_uU()<*4?$@pPzIkZBWqwUt&YG%xC+hKi;K-c9@Y z+6AP)$)X&W6C7Zugu{l6>E|01DKKRhk)-}qkyZg)mmllOddMDkUyr7AKQp^Vyj0G} zCL8KWwWa7nPuqy4POt~9U!;70iq#XSGG2;5A3i{$*ht+osMZ-06DHbi5UgjnRaadCf9G5d*omvA!guK>bS(@^!po@=12y}KDxwdBX~6a_~pGF}&{ zB0vS_0CPxKp#;3}#MIYJ%JE!^`!b!pJ>c2Gh1E_v3#7UbAV2rWpeAu;QROYMt_18? zh>suoA|^Wf1k%7zS8k0&8kP`;s9_7c5FG=);9K@7ju35lz}$H?49{>+#SSxFmqUXk zs%i*lQ}m@EJ0%;k?YXd9O7~RDqiV{nex$O7H9n%pLf8}U38%e5lj}aotUWUISsGs# z9KI&JgGWxmh*PBM55VPB%6S#uP4Bytz_1$h_lB~rydRL&(;^IwvwhmH^xkD@7@pq6R&9K`WSJN79HPlXlGr-(*w3ap95bJ<-HV;94o4tr?s<>p`5SMN4vMQ& z1=0&te(|g1(i#mbqk(5lJS!oR6HOpbi_1zYpzo`4R}F#3#R?#(Pe1t z;d#VcNWRiWld$or=QEZ^68nfuup1J)lXf{6jyFYn11*BFk2RD;dw{cC9;pt}+N#Af z8{wsR1iWk<)P}r3d-^ zdfkv|#$S;ih+J9*A)Nr)GfvxVsWK;S6b1>KeOw#c9=ut7CRjHz3lxc+leQ8u{9a`P zM`TWzlUNKn(MuUrQr@c**}`XF>}!+FB}yW!{!1Qby#56|P6H>B6TIXl$|+tZlKMW+ z+~Qa7dg`DO;4Q(kEur>}csLcUaMw6^y=$s(5YV!8y0L=TDBbgosOL%E#e>|O$~8fg z*L8H^_MXocW;)R=xw*S4*n1eN#Lr7RPiuTEW|417=fPR{J26BwGnKKC#l2F5%j=l6 z_d2HD4ITCqCLD^c&~r_G;3=dJ;m%kS_q7^`SU3hbaR_Qw!3Q&m71Tn=DP}`zIAOy@N|nxB?06*DT>|9j2#~(O7$8O`ASb$NQ0c9 zJy>6|jakDHrwqw?Yre`A=Ho^cnC`7;vi&Y-B(ssL_XbYKN0t_2mepDw+^lQn>80cX z32y?9fh&-C6W7{V3#mr#ZVR=7-m3Cg`nuSbaedy55%J&FO{`m1;%B zalU9SF;Abz8lZ!mY50bURHvj|at8!myNev6o>$fDxQHfKw0PGB6GkO?gb`}I_IOxt zVSP(Y%q%;WOU%<|dHPDSe*$a)sL`_u7Z4a#cR82d#|W%e()o-tjtRzlWs;NQ@vS+i z2xH3|Fl_gOJAAa8vsaTX8%}~PVez1+9*u>HZZTg-n^#RZ$Za&y3sq_xaXA#zp%Hp@2TZHU%`W9t)O8`bwE$Y zIGO+>-i(uL!DD8CXJQ59R~LH1_$V|ps$3qKy)EyuzIJ$GetAORG+gC*3i<#qgDiuu zl+xbP#_dyEb9#d4BB+gynQFWk4=|q(K9fZiPjsBRAPaj9L|~Qu5=y0^HGtPKBwwot z48Fc$ZFHA#BYo@CE6Oe=QFlekc1)loN5%e{OyCNN4J-+e@5Bm|>6z5CV&(!z>>cik zH_|L3II`G2M^N1p{H$#G1&Yo@4o`r*czN0Q*s>@r9I*#$v#nXUxeQgyrEZ1pv^hXp zWc)Qszl=0fsL8nI3fSh%y6AeUknXS6@R_}r$Yx^1c5JY){Hg{Gp+!+Sgn%?E*gN3+|CcowcfCGOy0ZQbtvlP z49YFI^Yw;c_Q^3lxdI%Gu&u%uW0x}L4RuIW3wcz!Pq-O8?ooLQ1?&67#XoV$-I1QV z@tEypk;A`u0k|h5Xq`1;H@j;$9$7I5)#O@!CRR-o1(9jR{)}Vc+{LLcy5F#sCuH~-WLvyPdM#Tj z?;XHyKd#Gqf_}#vUKZk{giX~}W!avW>7y|B4veldPmnL|Cia#Jujh4zrkz2$@zWp@ z=Zd#yTm_GWQFm_}d2djFA3fE^#+9?+XcBupi<-pE6zCloSrhK(AxL1zac=L-hb-QW zGTp1U@qn@1MasKRDd{w+e0zD?fcrEaXjGfWu)#IQ^Bj63B{KwrZy!FEBGfn&SdHeu zw{I@-aE0>$M*4fNRM}M`HEH9y(>0&x0zJM#4x~5!@Q|JGotUqO;tW{tTyTJ8<(%z} zvjD6B){(gHD->B9Vn>+_ah8z1p=&)f^;5ydErbQ25P5ta=`$PitU=C}_hOTtmZF?f z-GHr~-WImfT+i@Hc+J)8D!6_mu@gE%xhPr$2d7&F9!S;~e!x=Gg*4^dw9DoIy-%|c zE}ZD$t+CFdYXKkwSW?bRAiTMUl9^?J&qEAI^w=eTC1 zKVY#Xd+k|X?|twR`o)XX^6P*j3ZUg%-=TSb0fT+0;Rgn!@}4^D%h){xS{L^lSwlRo zMBQiMV{P^zdwR81HlK6!bjE=5v)Y9?^AUPs9W-zN*&QPrEI|0~J*!9)4O_penNGFt zDmyRgEF_2*mb{Z#8Ch7&Pj&e$VQ7kNgdK@6-#D93~pQ$|2RFL z1KwbjJsmdpQ<>V^E;dDVY4tZH+8_f*dT0R%U5{SVwO1tb3?~}Z5|OtSB$!2kK3grB z1vWF4utd8J9@osBKunw&vh!0kgzof~doI8!aDWfEM1nC6wB&%_+=g@UY|@lMKx6vT zBW*BpU~d=?1~j4yF%`2zG=Qp>)T+a#*XmZq=7=;2Gbz-#qeKHl_MFaiCs%Na?vNY8 zE7yl4DdkPLfKP^ZL~hTNZO-p6xr}v$DN*m1>&>ViT%i!t-UHFAGh?OUJGF&+%(Xz> z2k$EUbVg3+fhIQQRH3wl5Hio(9P1crP|QSQAbtj@MV2FOXirG?#(P z#jS*U0kf5X_7UmMJT7IfE(uHkO7O0P2d9NW_5ln6e+iSuO7@5xiS9Y}E7s+|hZx3( z4|4{lk_wWY`OSL~9-5<4C&x@W^f;HGV`%D4%w;(;;Fu9PQ;I*N^JiKv<_f@9Ah{KYFyvi7SHT72Hkrwc0}{@aqUM-OGLLu#ydJ=6fhonV)X?mE^Qu;FrZi%o^dr70 zA?(@feK3Gxkn7~|3Q9PwF^`J{30X0noy{8Y|F=(^xBlSYq6% zD+KAA%BTO36fQ7X|Z_vruj4sI^@e3 zq%UJ$iyQVRMr)+L5{4~FCHYGky3Kom!%|ePk2Vn;be{~X9G$66_hvj`0ZQ(RzHvG0 zVXcFeo}+%4{8}?-3!2qmy<6c0rUqmd8xW@SYzU!fjE6Vay9K+aEr~;Zc7tmXF3-li zVtRArK|vOYE!pEo^Tr5dS+Mt71C#}4rnO$dBn}?Uy#szP)Wz2nqdb{lpo@C0YWXcj z4OOeb(#fP?VmUINUBab>JiiWzdFX7-s`A>=8Ic8~1)HOtc^f@fTKCKe7+}C9>N&yf zXaT*!d@Rybql;-nf*K`WWtdI~=JAefBe)W{EruX=!uClFP(|P}P#+BPmf~>ZPCP6Y z($TlEA!wH=)&7#65GuiyRBU8p&#}nUJmD3!lZonw7&`P?yrB)^1&8HZ#7kk$XAxM^ zpygvHHV?$sU%$;m6WVJQ}ep@4ZZvDcMJ8-cS3M>rZOBsSMWiE-_xVk~zE!OuCQ{%vh{&GePF`5PJ!XyVa zHu(@$S1w8d>PQVUw-^T>47C_kUW-LR#WuTi+tY+}_NsQ*u1t%&9#HF5u2+m;j9Gx# z!b~LU;K3kuxIQznuX=AW4c|ICd`(Puz zU0|@*N4^jU?^1iQcslM1YK@*w*2@}-HQ<4MLM_CXjl4)#ia{~qvlI5l*3Bh7`-JjD z8?aX?C!Q*Fyi$MHMBqO5fX--Oa)m`+LBG{WYYwlim&v-u5@wNDuy}fSw;r$=UbiA11+@2c=95qm@ZvBD6UxvOQRy(fe)j#frcZ#=!(iQgdkCM8#Tgbpe^ zK@4uldEveT*|MY9cw(CGbs#s@)-LSUin#ew@k_xK1QG=GeGO-A6oejPZ%gySq9?b~ z%lApFmOiSiynRA$_IidBU9l{S zjDwF)y4AMNFG4sP0y|a1?g$pVPIIHQ*0|d2NT&pb0i>g9i>2Q3{$~Lh$?l*gWw}Q&~zP(34h^b=eA2#az*l- zFK*vi8fD2WVb?43r)N*m9~d!>ym;1X-EvRUMCbx-3Mu(1+tUJ9!-u@p^X_r0!9o?N z&Re&j>?L{%ev&A(T^HBI#B@82ONRXX$w7lY0yJLR-7SUFlJx1w+_3HB;IXJTb2GJp z^C&or`_=0je2kkMX!hO}zC@{fT&xEp;n*?FVu|#cQOHaerJlJ#6Yn(CM3=q3l%W87 z(P-q+H2cypD`75sUzyGs_LQ22Jwh{jV&b;1>0va=xLTT?wAD!`ozNqdVMN~?yU?l! zkK?5I*&A8DEC$ow(kySp?nx~pBP2}3130y@k=%#tx|7A?)w96V;``=3^=Wpg$r^@y zr)3n}@VtEI0qGiScWm1zCP!bFGU zpMJ&Hy@*F{+bxkocYNVlh)s;Ry*5NeJW9rFBTV$_ofV zaAnIoyNAQgoe2V4m;qThm<^{^af}F{$z?jy#l=2^!joa)8rFPuQ%YsjqyZobg!O_ zdc9;s=Hf7X$p&?b1Dzl%1k9%1^CivGFKL_>gO-8cOb^ob35CYMIoR&}`Fa9T41+qr zWdyJ0@JTMe07$re=4LRN8wPJt)x+I5(FwDFAB}b4KpKFqu;R=Ej_1~lsE=%L-hzqr zEI__ysFLfeS;>L4WmSP(>v}d#2g@g*Q_059cDLi4UiNt0+uSp?+|LM87>a)v@+nV<8_UTHM&f z)YuoDwh0R?RiYja!z!^uaL}tR@RT5fcWk8N{ptt~GBjxehg_2NDxN+&GwfJ>10|NZ z`{d=F8cArgDs;Vgjv0WU0KM@rtXmV5F!Gssc@&)H0=$xo+B5Aw9T6-SS};vDPvbRN z245T=Eer*AzauO?E$atPAQ!JDCb4xAXT!iA7$ekJF3}zF5?9^iI>+6TsutG#lmYLH zfqQ2f-hAP2xPo@cONz^D!uz4+UKitv&WJodiAinedP68~L%YUs!U=7cqm=q8JkQwZ zS*f3SzUWGp&~r?p_tfUGh^c!$;*$5IFH>#J(;=jT#=wD+GEI?Ub~P$+(4?jz*(Jq0 zu*>%zX;J&&I6ac)tmT9=ndtdI;j~1!aKo%?0YC$ z$<#%pwQqxuDBi}xRb$kg7@EGfXeGg%KmyV&uK*v(;FyI9g=}hR2`o}Dn%Wt;R~)Z) z-#bxD+kmmLSMI_3njnt|F(ToFx_}Q}iL~E) zArF$D)l@BTGnE!msH*8>fD?|l4?D9!G1apB7(=)z6VfgL+>*=56Z5K-Dj_y7UncV< zr?CpTQ`z0~jz$ft^LLe*X!mG#bw~vL5{!`by~mextpfrJT^O=#h60_4;akgtv7L*B zj}YKFy*l9Wi(yx-e1NYb+3uj^U1}Sg*bu?EuGg($Dn8+Z2x0+Xb}N;&W?2Z(2diiA zrbUbPR_n1w&BLMhoO?L^K^p1^v}NE7M6#sCv5mc|M}u6oE`23hmDy|)_EPU%T+`bb zGtP%4?_J+dH%b#XY6)R;hp+{9mM?9DzO(^d-dh%UvWk~^Om4;FgNM`^w(^%Zb-cUs zD!22+k~^D2;sIC*Xsl(xVO9;&o>`kE!}Cs2g&3iV+C_Zwbo{n$NckuP!RT`8XkJ1Q zYQT=Lc?v@VO~9+CCgv6t+002btrAwWMz@DZB{gd~;sWYE$| z@FZsI;utuxHlKCQd*w&)DEUUN^^h2tuZ}X7jR|kGk=^IqDwz5JFRtzIojGw^Lu8(g zy*S?IruF;@>$W=0X6osCs}B%RS!<9*yNS{&TL1%ueOI*Q3J}F1YPE2zPuM+4Rbe3= zrqg3jMKbiQ1HM%3C7Yy2`~dw8V@F3`Xd|z)=FB~HHm4=9Ky`u>Ti{mMhssPoc+0z{0Qyf^m7gc{`Gmp2Mu z-YhA`3y%R6^;>mc6Jf|rP-B}o7yL_{)UbQ%t_0p!Bhs%Mo5A{BnCC+=Uam+BFw|AR z)?LVICd`x-b}zA|c%9>U44~4e$Y2B0b6tZ*cWVHpFt(TE(QG32-laTwDpLXAw7XD_ z#7z6ts)t$dQ0RJu)oqq@3C^w+uIo(?He>9ZF$r!vv*A2h-sHFH93cppo!QeczI}2p zoWTV|tPN_B&5{n)yEg1LT{h8Of|F}X{O!dIwUj!U@!HzLFOg{U`T`Z6#cM-cnpAO( z+Ly$`jt!5})wpq?CooCv0d<3O$!q7lH;^_@ph_v}UImaX9?5IsVaI%&<>Q6QXD z9n$z%xSDg_T9y|9%Lcf$-vO*vb8%G=-HUch&T)PQyhw7=*EgQHz8*{udd8;4Y8Wy) zD{D(CH@Z2dR5UwaYnStCpNAEkr7}oVy@$!B7XBFC+|v#WlgQD!d=^0;5MMr%L!U}^EQbvY>uKzML0LTkA`BKOYL1IB($=c+^gvYBlq2bH{sAv zmj^*TW@Lrr9?zK(V=XA=l6!qag*o3v(_vP3(p zm?Lb8@x9@oYD1?XU@&AVfYrL>suxrTul?jqSZi#~XKSQ&39ogYGowmdr6W=5_8 z%)zLgBxplM5;WZ=pp5g2KzkAvOfO~*p6O)?rl7*Xwe+B_mCY3dzaAk5WdyFl?hVVw z1Wzv6@OhKX#1+7)kTb+0)Ha|Byh2mARy|4pFe)XMZBUf(Nin#m6}NuBy1w=6dYza) zf$ug8J)k{z*2q?0E4Y+2hOSf9xlw?&BQtFO2$do-Bo{?(L&P?qP~Jz6vLCPYaE_da zddEH}#}|wZ#H!_JT`2TM4Q<7Xx4U|bGw7{@j#J(fdLc(7qzjsc;!=j9v2OhaGjF|r zxgcO*>Y`=bAVgaxskiwa||8H|!Z3Ud?4PNn{G z8&;`cFxf!`fN{%u`ffTDFzd;iz_3mf1%86pL|P-p{Ytg4mB`BaRLtf8g@BMV6bBgI zmpP_i=7@pIjV&^vW+Bk{Lo4Wd&(mB-t{;uxU+SE@C7_2(D`&kCg{UPYTzh9(2E!Rp z$EFG^Ps(VnA#sji8~Pc!Qq>H$@sw%84pLRaBl4Fimx_}22o@XVp=_ez77?Sf1`fV? zzV~9bE=eioe$20NbBrQ6P5IOfboPV7C-1=wABi%Ty;~>KR(&Lu;@*bl^I~&e`;^p` zrrd**0Ca5U)^cwqOwL)M(z!AoJRGMj0=+s{^9f<5DW@Rx*nAxG-jnv^5?lA?3oN7_ z$ajU{56quyWVd@|@XH>3*)x}}k8j7{3niuZ6nU@r#VE|sc;RWan?*F2ZB^MYSc?*_ zXcw)|3!w!Y5d~pBM<}Z5-+!ks!5(Im8mRSPdvge0QI4`IgioS%2wS!ILuJjjS2dt3 zp}Es7=D-EGPr zU@&aa?U7fBjzDo0c5%=#hsCvUPympGzR#h{IT^BMESA*7eD_)OD>Y7%e6Rt;00nia zsnKOwp{i((YkeT8MYpl=o@!FR<&R^;z2m{Z_REcTWQlnl{%wD!< zJy94%(o6Wu9hzD!y=Q*dqM2QCk%o!1^#nDTj)tX&m3(P*Dl@s0oJJWOw1ceU)tlDA z4jm!CrmN||F|$`wOf_(w9#oo=f+7W~)v1_4@zy|g z24HrSfevY4^14sKU*Hj|82Lk>ez1mSR#tH@4m2vDm{Zqz+*Dz(`a;~2WJ}^4x$n}u zdTng8pA^};ft|`pnO~vSTBA9ViYRO(JKPZfb0IA_9^buFGl=1V!XA;SYc@(dSxuqWI zXsZu-O1|qo%q8jFem<@`#x_b_QF7k(ynqb_G3bu@Zn2(}4ETmT=7p#+4DM_mRU_)y zr*f~Mtk`cMiQ+Ar7q7OjmUX;i)Mr(2gL2cvtISVAF0-{C)B5aL9N^r9t`et*a6xW7 z34A8ympZnSgkqk8xv-@%VY8OkczkJLmpX_eO{y=wAXJ6*nE?P0$CM;JdauskJZ(#q zdFyKLgr*ym42oF6btMOsou0P(UL9~g#EgW1HcCwkMBS?7%D%N@Ezt)@))7Zy`C9aq zE601~*H4Y|bJ_{|bZ5H?$Ry7Az0vCe4Sj74iaq{H>fNOtzSh6wkzkTrDU#S6TVQ%5 z{90v8vId%`^kU&PItTf>nS)fUZKLRTV-4(*Enmh%e^iX-I61Fv=+&k=wlN77ZVP4r zm_5;XEuEBP7B#EKQmZ*laH}&=%^vkem)~sjo$h-{+)7NC1m(t1iHomBnQdvbdndaz zD4EsU!_QIX+{^PV5JUAS50Tk8iz-tWQk*NCc$ zc4%+?;Z_E1DnNAz3e{V>NpgE9>;R3@M53k+5tWjiV-ogQ-djH|X`?8n>+HTw7;P(= z&GD4Pfk701I{Mgj>vg~*xp&v>9m=Os6k>~n69UK}+b2CIZB7Olb(}$rR=CW~%;ROq zyDlhPIm${8O;Gx<)FE@abKbqu7y~x}f=e?xrGH0Yl4F(gV`&o%3`1;-fe zT>~A%1A8=sxhDwPDmmV&H&3AP9SsmY8!E2Ielsbw&kS#c?KNAQ)j7`u>^(=|aj~Cy zr)9ZX6lCBB6>1sbspF^06piiJD-F;2xmhl^=po~1g) z8}pR(<*dEprpPo~X^?8j9EJ{H1WkN4M1z!42-@Z-P1?Ogc>8!vVofYT9(S zB$$&9SiUyPcm@v?g>I-*TN&YMgrY7wiHh6rhM9Ty@aZ0uBAG5z!2lBQQdV!O&xiIo+<9kn|Enj@QqRLVv(Jr7=-nxY^CioDfdAt<~@MzA6&bvX=e z)e{}I$SOiO9Zc1hhZu;bUn-yeC8<0Y7$`cL0C>ej{1b|Q2Rt%hNFOEfDJjCY~ zSj;&TPG|sd@FFALy926-EY%dlp^-%uu<4B56D|ydCEa_9?j}g1tX( zdVL3&Zbx$;$RZ0{=L|Z;GZ7Y7!iIo%t65EvgU0A~Ffv*XxpO7?LR*%Qh*t{`3P+)zq;3@C1Q)jDx``DDAX)O=t-;4GlV`?z%T^()oaV|J|o z+$8qMN%TkwWRr2vlIeAu*gDo&HG_xyWU;J|J}T9i&S7zxK7H)%Ekn~Pn4FCcdM`z$ zRxVd!1ePj}vYa#6E7no;Q+b3Xl2Hw8$_6HRZ*y+Qn^>&OulBbOJ*t zP#}yQg^zAL1=w6=wjSD9PE#QT*q>JC#6A&bDd9B}3Ay2Hf-J z-X6mWBMh_}>xJD5m|uo9R-3U4Anv+j@3meOO{TKWfL-qk&ro>PL@$#l57aas4&RIn zHE8S6@jM)M;WJw1P2|`?qdFAo8Sr^8Pu$JRm(+Wi*NOEhHiHE-0!u|l8Z5O0DU z@1tGHU5DU2#h0ab&hv~iIbn-R{qCZkC-)>8NTs^RZ?< zxmqmdeyS*u=N5J~6s-j$9$c!V`W}I~D-8Hcakp2#GfVaWiqY)2Fb(!d#1!E$if(+4 zHRw{<6VMZoPox6IZ0CuETf%!gzWx?0Wn`YRE0POuA@GAQe~7>Qf%BsA>zf$$zH7AZ zD?~Ghk~gHRl=1}ek3Fc z({YgFtY=+KkfS9*o*uPc6U2zPI_7MB5fqGo+>BJVYC+gy#tAr|{ag^AZ0jlNig}tyx|}Ua3wx&nm2@g!wf2P5+_g3>%DFF?zb`J z$%1do-JwE`!cCivE&corc(_GTJb~%b&SDNr-$KqyXXi%`p$Xp@zXH{*ZYURuxC55HHPFm~NDr8>AX!6k9>D_v?d&_tMG_3^aQMekK_-aPEWim~9lU@;16 ziim0S_e>th9 z+lTj_+r51ZF)v(?mg;PVUihPqt1p4x_gCl8*Ka-KP7-R_i5Wo9$B~iFO)dq5a7ou? zvjZCV@68wMm>1Oqs&b#3gz-?{6y%aEz~#>Ndj>6C{*Yp8LALpMLITkv1?=~7lpZRT zSE0hm_(^+ERkDH(#9d_Zu!f!Noe4R1MX`idUU=~40Z{bbQx8Ufwa|F? z)`BIpHzKFcq- zRJ^E*gI|&#kR}CzcquvBb!_2_8PI2Cdui`6yEvHVj^4&gJ)*@$uAp`6eqGXhV`#wm znuB9yKxc;eHXxg~Hka|GRc7H0RYc_-GcAg2@D|6I?9EIxRFyVvYqoMIvb2eq``nhP zb^?jcMXPvOwJJFHxyi;pueTH?{DwNUej3 zP9y386$m|)EDotCa@%l!1=33Piu=)Z;-Kr$96O%y6PbK@Z*8+U8X45Zy5b~Yt+0Gk z$`V?p%5Ka&`AQ6Gsmq=mVW&jodBBs6iDOP#VWQa`q7SL{G0#V-0BoWT&JLD$W$1fJ- zWM=ARhw7I>44+fbOLTQFgl^b5e>n%~?BE%O{`@tAL2L6-2!v}yHuYZ$)tlzWl|$zH zBV6Yy8yU5Z?dqAbWb10#^4wS~E6DDn3JcjmSAW+fdV#P+&w%fc01i+#uV@z(9XB=$ zE77WDoU4hFMj9VSU z-cy-$fZ$_AFzCB{oUU^QQf}R3HVzotuB||ibbViDFV@-tK5Yp1%S24N3(O5hi`eGb z(2Ya2WpHmNs>*KGxqM`EMhG4CFyrij=9)YdO4o~p?Sgl+WsK54Om!5m(~jr0neOV< zY5=+d1zopxd0eri`YEdHQ+JtRP{ZA4ME)eOI-sdIg^8RBU+o%hRq`TP*qp>In{p&s z9->ahF)kdGRw$j3!d%jcMuyd~F-Y<@r?NhE*cb4+tzReIi;bsxy`2sZCq0(g>e;<= zFpZlA=AgjK!z#b%?VZ{!UPziQ@)71a1SS>PNnKB!-KQyFjuV41U{0e4Tv$N2^_hRKT15R49Y1k*Po(-Ty0Ps=?}NM#&4$=_xn zh?Z6-#2baWCHH+5K(UhfLOSm43w*;xR5?ioNlthEI`nPW;hFHu3@SOs2z$S)gqIeB zFQ^%I#Yp8Q&m_z`4mP~0cV_IYg^H0Vc?FFeI)rU5;;tTO(9VmXxWsRT{7WI{E5RSD zr!CoCGC*{GK|5DA{UduRzk=KWHF z2+QYcDsRAd>DhIY(RN{*8Wm&tY}*J|xEFV)N*{$Sj_{;PqUjUJW{+Td5{tNxv)=Nk zF>el<$y`8<)Pf<^2=B2@lZChmS(vioX!*rJ!!2?lJR=d}uAzpRh&#)p@;zRm(cqW3oo&?ls-2`pahf}KF_9MJ?L9;k7Mertu8hGrSsW>=yvql z!V+Y?6kn0@5b%3kD?yYxJ9koHZff*iws?@V8XX@Ol-VOqDe~8abA(ni zH&=(Wd|S!1^cr1F7OoCRV`=0i5Eql{Wq`Ugjj!6iRH%h9FzT1%wQ-!!gq1Y~9;K(1uHn7!U zi^^F9$=gTyTApufjx#anL>-cKi{@4{Q*rrK$)vPNEY?C3AhA{`JmLhmdifyU9$3$@ zOrSI+7u*?)a-$+PS}R3uxKKBP=Pe;!KX{Fy$3zJ(X{64LzzR#jR|>sxG_sTuv3$7i zvRsYf6nANQ@@%nvyqdy~p(0+_K>AMA!j>CKX^Ic^_7Gm{vjSR>$}!njz6VV;g<|A> zrthFIfYkxD(KUkw9*NN!hR`FK2Sd}dl!1a8EjZB3uFPXD*(zRefRE~Rhq`k!&TLMU z7?a#I;2TiWu!ft}q?w0#`>?w&#-&&v$!PD4Lm6xv8kvtl^J6wKa1YQFv!*S0aGpbj zo|qUqORDUFA__y~XFwrZWWc(kZ&RyW-&t7CB4Pp+M(T0Yv~3o_0z*8n2(yvLH3K*p zg<_8Mq=_SmxBZbBq^S^`G_0Itx312a*v(qZT8=kAAQzN!QsjY22WNm5v)LQqDbX{&n_A|Yjo$_RjT1(9XiSg-YZxbBxk%3l)A`eD7xt7bJN75ub*PJ*vbniW`rXoVuGcFXxu^7+U@NL2XfL9R~GI@K8E=cyfk@vPEy8)S| zGT$9eumf!Y*yzh}MFKt*zlWAxyN58F{kC z4TOFSFH32Jmpl_u??QWFbRA5Yz*(pJLOL@0vR<+)U%Zleu8}r5DOKkf#)zScszt{q zv=0St9jHT_EpIgAl+Q%?_Ki?k)MSr#2m^Mc`5{X1V_UN`vh0xseAwsV&G&SwKy4Rf z`FZJO8jP12!B()5GXt^}N{CsP^mX4x#`Yrw$6<;)_vWkxYO75ugi>4~bdQzpreK3< zRD8r9SNtHTv}3PB(7LCgz=<Pq#N_^twPOE82{y7F`z8aN>L?a{yKXM=3Ggd<73-nLrxrMF0V#av3wr*gk;9ip zMbo!&hp|-jdTo-D32ffVwzVQsdJ^S!s7bo(GhgJDy2|1G%cHCve`jRxUR&Br0}z!% z&Fv~!cthqAoD`Ssub!(%E=L+MVwYa0j6U5;Z&B!m=fyVZ#!OLbEs#MdB@lkWh_J`| z{M^T&>mF+t=g9)sdRPnbZg)E+8PSQw!HU}oZc)`3mgz5cSK(+ z7OoYysX4i^6Kb6nvWhn%w@_KiYoUDSRZoEZ@hgm$!nj1dJ{fb9CP(;W9&(|>zxVhW9E1lhdEWrEd1oqyj=tIV-it_LQ zEhBlwAhwYj1EfiIGRIzZbh}gvj~Irzg5}+@OA#SCIVkp)aL+Va`z${gT329c3n+T+ z%n_|sz$jRoEY_ar(+3cIq4895@kroNE(mc`LX^fC*1SE|bvMkMSK=L1&85LLGHmJT z(CL#~sp7mcQaoCshVArL&wRYpQjLY4)~U&oCtA~aXBU?Yszu#JbUvNcHU&dsd~C2OqxXBAqVfP zL93^+X*g@I57xF`APLH{urSw}qxlr$#Z_~yy}`})1{4l0aDVZbC-fZ{tmNL*QPhBF znKf0oljgp#?F9pzPS0c^mLnZQpE%YIxW_rZXAnl&tpIhhoAK$9e|f}qqG8$I4;iAt z)t&6IrQ*vcO2F9qULPKwtE;4#E|5Rjp(YOcQ=}O7p4kA1cjqu|&RV&B+%|e{YVb0d zfonnFvDDen#ofDjz4&OKZ*2l*X<%i?dGPCcFLTY^Hq75bB5oxOzDPxx^Hkd9tXQ$? z#j{I{e)Uc>-AmXGY9t$$=vfIevY@?OpWV_^(9T0)={RN@=XnYam4a*%`x*x4se8Wh zvL>H#2F{d)$ZW`ajch?<&W}wAH99k%EalE4<-~>rkbV;NO1w%gDpFUrSJ3rhnzTbG zDZEUZ1D_9ph1YdCzX9zd$ixu_M64cx)_F14^!6-0(>I=wYCyY!E4@UBLJ@9fIFwa` zY3}#-)i|0nx%ImZzw24eJ(-jSc)kw@5&OM&>^Z8Bw~MV=2;b4mh8A<{3RRg`54S1d zE?UBppV1ukJ|5^({A=6865$0Phc?li4?A{ERH_Mz!^tLVU{nELcc^3q|~9HRogDQW!Jh5QiYJ0 zChUC2%}3iw1$nU3GyGn(7VYv1|7j9q55GL(S8E62kWmbpDPe0A;zPVFCzQ0964mmg z32d*cW4u&S)H*>XS%Afx?nb=RJ6{1RT9(dXB=>Ws;7l|gBkzhgI!@L2WIO2axxw^^ z=oB+yW2@+Mc)KfGQ+>$wax8X=7nH)F^6ISvj?8j)9tfo_SOGmL=u7UI#TD+C(A&1o zfXVZGkucs`*QgS{vbKV9U?qaPymj?`*cc=9mEZB#rz zOc7FA>n5q$pog-LV*C_o&QLjaAv0h2yW(&zT|_c;-;8_1AOYjTC$(ZA{BmY|--D_o z;J_FQ#1%E5y-Ihqc;L2u(wkwD?o$SO1)k}NP$_3L^nj)?0qan%`xQus#xnqc&K5l3 z2pF-6d}aY9OFG~sIt!VXid*zt-G*Oikw@I=kiZ2M&QNykR5vyx23G=1viU%jN=yI( z#GS-DO+Hl!IyHJ85Fomku#4>@*z=snz-xSc&3NF?-XNKb$+dXKL&o=3 zsgW0i)wabcLd``TZ7t7b8q#0hTQ>+Jgf$#{B*qRzOM=0Iw89mIu3`Pkph7!+#K;wg z1kJlLUdP46!!Y4c>16&-KZEbxC^9;7u6IJonid( zdw>okrWm%3v6RU1#*eT5oRpx1V&(}poVC2D%a(i(=w#gkG$~e9Chvh5GF!jtwd&b) zpnb}vQV*U5yq2AsBt}|r?&{$aOa|gkT@;=)Xg0^`YxAcEy0WaGgF3WWJ1`1YPs{nl zY4Zw&FtE>o2MG^O;}N51*?UuMvG_zPiU*B!U%V!2r#jqqc}9J}DZzl=`Vwg8s>p+g z&`pkD+TMGx)4Q-rU1CF({4Q}l&vFjM(!v$5*mpQO41rt6V<-R=iDCq6E-RI~%$mc~ z$MBTw84)uJ3CHjmYh*7j#rBI;SQmZs?kYRQfk#!Ltx+W0;tn0S&y{n1uzioji?Ilc zodI%=U!-Y6%_v<}lY))QF@~-XkqP>cK<=Ikr&2`pp2U?P6O4^CCdln-UESx>`(v;r?I^t77)+_WLnCUmHZPYfn zVatq6BxzbAiBUv4l4e&}GW?|y(w9mOwOc*3?>vJAhdCk?JM3Yus`WJSCJ^+#icGF* zNIQ#tknxz+Cb|Cp#=R9zNhW;DIvC?!=UO}xJjlg_?O89E*_4=V5 zZyi`O(i<`3E}n2r2i6=2X6YrKCiB2Dg_(z)Jf;xOscu|FN{(XPRb_&Gd_?c9=eXFD z*bLftweOrU5Xt<#(V9DVz^Ihca5`pvq;6Jko+_DI>joC2UJSW=ZPJS(IV??LPwmM@ zGYQiWzYHbbxwP2_0$uhLXov@&>1!Ib1k?v!$1QK7tvExngh@Dpxr~#x9-O)tUI#ue zu`AQ8N04nb>_*ndy|w$5%A{ThH73E9dPHzmdTm{bcDL2Vz#14QOvlv_OMSIcJrS3Nm7XGNh%FOWs#X5 zf?jLCy*gr{HUX9q^L|c5i%e`&OqU9mIsvhe+Ymc<7tqaEk1~wJkeBf;lMkV%)W!Pv@H4W$y)BrzJbVPwLCCsPI*kSI|>J<_qo3apwW}{l* zVQqDjJI-!tvB=YtUoH`Rxnxm9qF=Y&K&MSk3yXz&k*FCW#LE(AW0#Rko?w;NTp*L$8N=~wnw16jAENv z+Ij<@bVwk#cBt#|OVK_RN}VB-PEGfxf@i*dU5@JOGk#+Z_T<2g;O$~QC`o)Hr)9nQ zxV!V!yr)IrlPzw(E_KLOP`n1?cJ^k0-Kz6SccLEvEzOA@p_F+W5F}Q|@q4IPY1hHU zy-zK6Lu4GDJ|-~rj<$WR8oI&TU696pjfclTTic)x=B{+OG}qpv*Ys`?1Xplw->B3x zi=K5SuB-GceYeNPqwKewe$n7>7gqcHPECFAgzw=qkmGz~qK-imxN*SX>sy6@T^p7Y zcczK=*zQp1SSE@fw`|tB3D}lRpTMJ#cP-u0%QC9jLyOpEmjjbNeJFQG@2O13J(&&i z=V))MYceKLE}slSDX&!-$_oP@cTi+W^q{L@G%ebQhk{(&Xg4W6)Ot zK~K%%DYLvsK&escuV}k4a_3E<_zUYGntmBj%IQubjFmDId1L1^)e7%WwBi&a{k7qv zgz+3h0%?DloI<5UPrx|d!o_8UJTRrifR1Ykb?8tm@V=+BrIwLwbQe#D)I^1n`>2#D&Yi; ziCv}2+o;zTI3t*Z5!}1*E}vbdjHsZemWmiP)=RWKp;M-|qTU4+a=JC9m5Yu_0eE$& zrdeS8qPy?T#>#ZgdEZ1_CTSe7NtbNe6v@2$Wlk$pAD6g&2@-IRlsyQk(gbvGVWxKEs{mqM4I0GxL-Aq%gSZLb^X;apUd9o1T8z1i1WepTPAt3v5Rr5Xf6C8PSFC(1n=^Fuuj-tMHr<$e{gkuWn9Lm1~{; zr4w{{7Oo=4F%AV9P8Bm3+-tDgn-!ht8bpC>en0PH;bf-;&STTMVN*Mn9zAW%Y@@38 z2vabx>(ND)41(YeF)yVLqwz!6ryLpqW?-?XZuRs`IzmR%yxcN2I8rpJuewosuQRo& zOYlG#j1r`guF|y-=E1ACx7q0Df>PHrg=jRQf8q7QRksT>_(6tM)B z;~UXY#SCBunQ`RI<@Y#!_pC2jq$9ZBKCBS1Ygn2ENKDA%sqX5jd+}aiOK!)$;(6^W z=N98@a{9o0)itqZWc7)+I9RI2d0fEoRy{0xp$#ZBGIgpl9rLSZT+@ z^Wi?%S&`>c0&+E20R$b+$x;0x)Kg=m-cm(IDUO=y$m1A(kNW{r!$V8T$Mkr;OSwFT zVqbdcx)5mk$ z=IS{@TP=bkeGOz*DCNS6d^y7Yo*eg$(pmfgdp2Z8OOH$9AsrEC`ys#j1+je^$$-Vuvv+9?qtHZS!Z zA8s98KJ328E2A)c&n>O@uJjb|9F+=tg5LxRZ`V^=-ELh{jWgClCJNwu(-ZIETZV`9 zymSlEP_>@%rRO>`yk$m*4=2}Ta@eT z4>}t{UO(O;uMPM0h@g&x_G|GQS$nKgbi`F9rl1d~KnTV%SNI+W%_%ShY94SsI6Gp8 zBC2@VY}YbN-LplOY)t|z8j>6LR``kxgu29$G0+iYK?zaxjw?s=$(&SY!d3dHB|1Jh zL`#UffO1nv12RRf6^$!3m8gU1!Fy$ckBIU;zgV%SBa@@>2t5`#hG;}xv5Zm_GbY7k zjNnB3skF4$0E;wwS=pOQR-wibgM80Z3Wt&gAo;l|zCo-^F;qywcU;O7XfGBX?HEjxGjH8gkrO5W1e{4fFH7hu48*qWAW;wH}rDRzJU{)CznO zn*R5v#W3_04HAN@+QSw`sv_KAtJbH%%e$p*cuR&GgfdgR!@IhX^ zIjKfSJB+j)noeX2Bgf$gp#imm;ABwecx!VJ3=j0>09dd0nl7d70G$Cn;kW!Y`nES% z0iQ(zd)iZd83kIv20RisrL&bB7BO!fgc`FRKcJ+f7gX|6u0q(9e232u#io2Lq-WFK zMGz8&2~q-+M#0E2`jUmzt?9;#^XfRlXUI57(gz_&Wx}TeedAm&05jk*OIaE!lDs%R zdpg%RJc$+Qed%^6`*=7VpM!VbQb$G_LSlspp=yNgtOzV}iA;`Av}Z(B+>*NYQ6B{p zi-Dmu$L0k$Y(m`;*$%VtlYL5h4|`Pb&g&+0=7ZBaoBn ztH(*%x1s&_=I&HpBq9I?>E2tIy8>hq_u*yV;UpxJhvdy2%-t&RR&E#(#owr1-Eh$k zjT5tNxXi%o;>qY9-#!x1Sm$D6Ol~pJQHmdMCJG4Q6QTJ`=K7)N$cZlbjo+(bi>H7J zuR0>?;;F>wyH_DOkcTIW#xW-t)*-nC(&}&eo^9Myn!*`nF<;+_#_ofBIq_DboGu%H zvx?ZGz#cbuwiISO)b0nzoXr%-xf-hBt`yH_V5;8urKY^WGZ>OYlRiht3BaM4ezgqC zhmrEYyURk3`Dpto2kS(f#LzTO6SmBtQdxVCRIML(`YC9_o)jy_X1pTv>1o>F$0CR3 zJ4%C%q|Eb;~^fNvjYVCYo~Oo#f(d|U5&w6iOdHw89`?dM;(cK_1;uF zf~O5p&hvOY6e0OiMtpk8m!AweL`>96x#%qP3WkftqN%73Q!gEgCI}~cwQtL8z@~NC zUA=e5g`Jaig7Z08?-(@&-DpJil@?CIgUz}V7QLR!T!VGNN)BY|6!HlifL>%b@e)3u zc&jb1O&Cgq+#gW^N-3z#pf+?FV(SZoZq&-la7gbrJ}GxZPsb-K1d}drDXxu3EGL2? zj?tGvT>NS#TniXgtoFr_b zbOzWiHrZDGrBpp6XhB^|gBNAzL+P%?W_%foTn=exh4TOb1%G|hkMgf^G1mb zL2uy|C&LlmJ77cxNlu3iy4MXXZK2j>d35i&#q`CbtmT~JgTSpPwjB*K5LT{!OJgXF z#5s`6OQn-@QcvOXG>weeN5;xDi`r0yUqURM$%p~MOWzQWT=4-6;OtA76JEVLz#StY z)w30<2)cTV%%YC=KxG*;al^-F7Tsf@jEn)X6X1ze57=;@KYEAoMxBa`GW><4LWa;Y zb~=EW5hCFCDA#E_#I`=bl6~Gb|N9IX)eDQBUxyFud+5%u94u)N&PjYx@ZC z6{ak12_+6nZPjZI2Fp=$+9eTmiHknBf$@W^r7$<4?_HF1&zT^vi}P^G#nsq@>T@0# zHqxhDQ5TX$f)iDLIdu~8-o?f>8$YJ9>hj_lt+WEllbxYPCoUqZ8cI=eBQ*z>#~b`M zHA)O4U~^uMOb%#gG}MLNCf;*%CpM=g<}qWied}-Jge>u-ZoG}{8oUJ!mQTA7IivgW zhGvtAo6}=v!Mf>!0NNJHxOM_J4Cz6@NM9*<%c03+N;ln=x-Irb8jRruYS@It;|qWE za3_>0p*87(FuXX_Ak)sY(NONSgR-xJR#=~bOK4V%&$JD^m`yyMzA)t(65^KrX}d9>jrv2n0!)nX%Yf&{Gk z1kqLMZn3YK3LqOsgWWQ#TiI*I3GgW;zg&zAF_=A*>bukdfKb|anDc0#W+3_)x0zj} zj?3fF4SoI|^;;b)NI7^=RE*&r^)Q`!5si@=nFD#vd7@yd%kw>gJEG>}V@DWqm$tb# zaC;AmkI0A~ka;VBKgRc(7cp0*I+sA>rmshZsi%+MVznmJsti%%xZl01u)62R$7Y*V)CCg_$;C&(rUX^~hk9e%@ zP>jMit9g2DJbDF{IO5{Zci)t#m4~3RlHkK~;4t!pRIQ$&BAaJUp2zs)%}HJ&%*Azg zHzLgB1H*jsF!ltTun#S?q#wrc#z?CHV$?aN~J()9Bjn8v6{szz|60ywO+oc7(%24!WM74Fzdf1Pj3|BAhuD z^s&_ySl?B5>agjsdJ$PY20iAkd#!sK1V!;KTO-J(iw5OAfwuNa8s}leeVqn76OXVP zo?Gf%ITK-^K=AHDlF^acG$J1QvbK&>k5+iRM~Wrs4!3hdFN@Afdmo2+>}*&!JRVqJ z@O}HrWI}Lk4qh05QuN~Qn6zX@n-1;jI6CE~YN>DE-4kEqEEYpLsKz!n5u6D~%CdRSMdA#I<8(Celjln309a z;4oHt?U{Q|Ngpd{M`PP5=8nXL&EK!TF*L7suMxAB2}!j=1Yv2qhZR-PsHdXoOApdV`C3}@nQ|tam>OD6 zO84Z0%I?WCG=_&72;Jc8WK?QGNI|z~96)+GvuXUEI1_FbAcET<3={a}`p78QE{sQ* zR*yv@9q)Ky%K&;5EbT}^z0h_kGSgR6Cp4lJw1CnF4s(38?eN0qYV1A1xECn%4uJ+h zb(mx?ZZY%awTpB6@knr1y5i0~dWU8b{rN{bEysgZ+Bw`9Qq1h$Gdj2`I2* z#n{KR&+`V&UD*_}5Tc8NV+H+zlv7TR`mJsd4Q6H0;G;oU$gIgTKjukS+Uj{o}leXE|n|UZO@+J-w9)Lb13e=lat!%;8=*^Y)&Jsl-!%7%=2WThs#{^A@MVkLFfV{l!TEm+o|`J@RKm@4{uVJD52ecn*rHriyuq=fxZy zvyIVR1(a>Hda^!>9evP~8*E?(%=9%?F~FBqwkSgto5r0Ar`kT3^~@$PysS`XOA{+$ z^R?{~FrCLdb6vCO19@#`E}5|!bWV84X(#xXR*x}L+D*3j9m4u7xq!I1tGK}`WhCFR z)P-3E+dwT^(R3M)xWkn^)Ru;l#kNV}@%A=a=}FFDkU$!wZF#7QxW$m`oB_|^o!UG{ ztFo7EP0bv`qhrsy7POH$2`*yp8Y%q{crKRNGj#U(w2qy>M||~?l(agKL3Sn3?wQKO z5xJY05oxVci1X;esWAV}KyvZoI`C;FEi{at?#l6I*lav|LK93*M5;DneC!Oj3ud5V zlPg}8Q*vxu(eCu<%BourZzoL^;F470Z2cip)Z6Ex*{Nf`FxKMaLIN+<+|kX66Hv4SqhW;Tsy zgT{W8y^z>~lmjNn`>+f8#`vu?g}&FMtU2gTXj+M~*6mDoNl-)~2%vKcCdwy^EY>z0qnBN1wN(S63s;RN-mN=74B0re!ZJx#l2+RnH#yrmscCB_ zGHJ#n>}6r9RGP#XykNbw@PKabSPfTu!srpBy+b}pg<*cDsMJTJ`IZ*aj#8^~vbW{9 z_zh={LjXJ@3a4w!bHZFkeuMOKQ_IFhKo}=u40s$T7Rd>=;jJ@2SKUm9l*cLIPaF>? zukDaHP=@IuiQSFBn&?r(jczOy z+d=P`fW+j%$1CzsMK~HAfXN~&p?P!U9#c06yqH|<=*#=^3iZpY_M_5xH83W75uIDp zL^;Rco+0^!>GT=FTk==ckJQa!&27|&y!&|=3!NrWri;Dqts|B&%D=>F3Pe+H7K?pu zTAFo`oDYh&oLi(ZC}wcoQ0N;ULarE;bT=U-@Ul&ROh15A+1UftYf*iQ|j3*18vdZ zMqF*1eFmiObwsmG9WQtuzhqCrBvFFKL#?{yUQD4>D4tPxLOlCCyQx-%7*24Xw#s|s zl2&j9dXvipY3tmq%oY4rx;dL&K>C1bd;O|7E1*!z@?OrqB|bNtq;Yk8i2&`iN*5gc z#NZ0i7%a;$RiTQ>IT5+=)X|i1_m)_@0W~_UA#PQjGYq0i)>;}OpA?TQLM*;F^m^|u zmY>%up_pa(L~#_{17ld*2hZE94{Y7D%hWECUnxvJw^FpxyYuvMa~6D~9D6U3DJvVQ z$5G<=N@a>zQHkV=ul4C@;{;Ec*eY8*t~Bdlt+D}xTxs(KK`~a9fUe1arw<%LIcm=i zh715QP_$@3raZC(GVpltC}b#f%>1po(PeiTbaf9g*D1jWM?5DcZ0~wbu_n4&jFR`7 z^g>8p402ViXv5~!-!~rqoIzBRCD0=u(=C)v#!3xBK{I<8!o~S z0kt(L!Ezi1mB|FOSC1J%;)XPssWOwiwG*Bd(QY=!$aru=oho4*HTcHBdKTfV(BEd| zwY+YbT2>7^<&n~QR))SnToNcTmxl=yU)7e?P#QeKXNRE+qT1x#gXlzi@w_q6 z^wri2+T3@emt(eRB(!T};VZ=tJrwuURzm6)YT;?KdApZG3-mjy0X9%Q?pk=5uBOaF zkyo_})_Q5CK-qhd`egPMUX6CBmEwEAFqoUHWV&ApnL6}=l50aiWshC!~adafsx(@6~D?0cn}P4ix)a3*GVNt?U^ z$Ai){r{}&_PHpyp@4><=nOD~fhb1VUJKI@o9F6usrjH&b@FwxoV|pj)=*@~7Fe*E# zG1D?(Rv1UR+%e_GM+%hhq*k)Lr44$j#a8M}44#?#Vkiw{YnZZ>gg5Kxi?)QBhh^PY z?#sqfM`kJ@54_25roj2s6uq1WSTKt+S@;hY?x>{_y=JLgI0cmpDd-`gRL)PmGzdpfLEyD=Oxj9hFo@r2R1o^F_^Nc)#r zkG{-;X%=*R&pIEa6Va{Zt7E#3^Dt(T=sT4sz@s2|>s*+2Hw0a5!y4L4NU5$>Q5)%5 z*cw(kn(zJjHjFhn87||y8e;AVQJr%|AuX8=ah^vGm6Gbb*)hx=*f6~!|euII?ZpwJz<0UW%w&`blsfJs@Y&$#RDdsSo4wy(}%mv}f_ zP6zRp_;zZqp4;$F9p~aP#Ht;FVI12F3-x8t6fBsm;*A%0d+;vKs@X6ep%BP(4dlz& zXMnbI1#{~ySlmw03N;fClpw1&= zC&t$rd~ukwDy4S5IFFV~M)2Ty(`AguO;I&E`@XdjZtmd$!sGVJJ4H9~h_cw@L{=|g zei|5#m(?KyreIJt;sJZPi@~YvyyE>sb@I_!%!I;HK}^a7?5~Vw{9pd3Z}1 zjvV#IJ6@q)E*^lfW?JzvY&70@q%FC)40SbL^K7a&o(3o(aTnXDzbRr#KJqvaIuA!; zhFaPoF9zVqm}--HR|xQGJ+UIRmYEFF-!wr!AElNs9EbtEn||ls$)MEHjYnEIqnLyVIKn(dDuCV8FYc_Bw&RO9t=i6#vb-jpW?O1oH&=zAS z5vO%WO45~dvAb5WIDN)+f4Q|qyj|MS-IKUK_mWiomA>TH>B>tl)6_9J$nvhnb9S8! zxQOc!j&?vKc3l_C%LZo=yLHYYSzvaT9S6aLttu9qaKeqoNA%#1tog`7kRMGl$^?u= zpCP+wbR|&Uqx9o41&wzUG*l77%)FxMG}?|2qbFiyrs#la zgP4e!MMfr0qBkbzpw=8X_@=YkD0g4j;p-X|9bzpdhQubU99=-t&Q0ui5SomA%3cjS zmLRzBrb}?C*>fMYJG$#*AWSahoaUm=NI~@BQVn0X#(l$0sv4o^CQM9(e6PS9w0*O^ zOJ80uB)n1{eZ!g~@8Gdazl>WE7=9Zo8s|-wRn$N-&hKnQeRj3ll;#yrIh5x^jOoHi zv_82-ebM>wT^n!qX30fm(+X=pow25%3W=nS&hQ@O*WyIg!Dumi?+vmhDg>%~F9y}Y zOWXIj2Hu-e%{RiFev3AA()H<P^>a?l}PR_c%GtfIOsUtaQmLY0P-1ZJQriywR9ad*ta_o%~ z*DXRN^ge|!!xbn&0IpF23X*sL``#OL4a+wJ3_j0VmQ1=mxwR$71sI-6y=1Z@th+c= zg~_oPe$g^H>LP363}RNA=|rc<#ndMzifORxgnH3E&Wk-^R;gh zJ*<;^7?>RDxa-IAjK?v}c;mcvS6HP)t-2T6Y@IyXh!GRpPZ%gbf%TX=Z{15cWxegH zBU=RRa9h10t zU%{yD=z}vJy<=UmyE1w@A_gx-axrR2PseQt);z@;%eqE_6c9G? zt#rQ`^&97XF|Q!9NjPkt7Qe2wa!JkCTa!M;E5gxlSFlR2OS5tRvP=I@MSJMRbSU8TV-o zz@YJA7b7h;w{XRDc^plEHsL`UH0yH@W&3UMY72O|0MNCqjye8*0m*d+9rCW&cAS81 zgIxI_zbV?&@>gyyAM76j1?5yY!SkxU}Ofn z>Qdljrkh@yjgA=BF+B6Zig*a`krn1=(Cg7E6U=u9M!KXxPYT1(-A_ zw-Q?}X>!Xn7O<~!*0do<7ZreEWO?o->4teJ;$YcF5~6;A7c-Ae)vYtz%{K6DgZi4Yb# zz?{Pose7sB1KD@XE#N{I43mMG@6uDMz1wKc@(}Z2F&foQ;o-D7%(?hG3IK_dtZfan zvpwPWLY^}*J!WA5uH_fr1D)D~YdG+Xj)+16&y)?B8edC+hdJoI&)1^zmtE3wd8+ql z;rt=?qxDHA=j0s)4@^m0fh!8pdR>_o*Q%Y*lob{M7=;0^sa()oS%41RHj(Q(1fEG4 z$e)uJ@sj2|1@(PSvUm~Jx8peo7+j%iy2m6nkBx-uFsfW>hB+3{X`_4z+Pj1q_HmcJ zz<5%6G933FMuzh~d>O|(hG5Na?AZZo4Z+y4aH;`Dh-znrHxJ0cJS=j=WZz1j1B`fD z(7NHTpNLK04HG?gm$a_LXWEm4QcbsqYXbOsUUs_PESI7l)$K#ThnceLq$dR|I6T*I zur-@qPt!}YLdV9jC<)INqGbd8I{VV}%?>}srHO4u8l;EAsv6)n;rZ!#b1-=^$yeNyAxdyYRZ*i3z;bNTHDWNlNSSm=Z z&?3C)%GQxEr1J_A+#hzbx!3~iqW~j#Rxd-R!yIl(=vl0x!w#&os}7S{jK_&yaQe75 zD8K_s2ogDezL!-4erffXwtC&IYc|OE<IL(IxlUHac5_r$R!;m3T*pS3M&wBIS z(7=E;JndXQ({h&+sCSE)FYW<%7*L%Y@r)z^=*F$)(97+R@O@ldz^@>va|a&vyJUKx zpzI)P?-rgYWbdnSn=o#_3YmmfU)bg%mUfP+0j=PC7z826239A`hWK`0A?J01rq(_1 zsfCyRrI*o{UWRIm3sj3~of>2As(MZ@mv`?48QyEsls@ZSkm~e@il918OK9~T%sC;# zvxqqzV@KGXr!S{DE8?C4YyRcezy@D=nq@=~ zW9w4~OA!%RXm7by7zhO|gD;M|ZuOe0UcW6tLw-US+b|BbV*3K1dgGA|!rb&4RL`SE ziW?cJZsF$YFgi6+vQSpNsBU`^Q_jpyyB@kd>ArBWV-(>MK?gMkw)3_(43ya+69-|q z3Qg~S2(x$83Zf7Uz+3WtwDh6-UsB-K11SQRbn4HCXEdE+rk8Lm!`)0Mkf9nf`5wGe zQ*_i9-`;fKa; z1eife)8gU)41C!KV+A1Hu2yZHJKHK@Kv?|J>=n@Iy?w+YE~ShIZ|8a0)|1z#p=@uP z_n7Adhg3+?)lVUfM@ND8wmg(s#O#_2aMDOD)d4F83?9xiP17|wB9sd*J9vbsEIbd< z;_cC*7%vd^@lN!0t)}CuOxB|qrK4kr+P&wM{Omci zt0!xb6=Z4aPoXuhI)!ZVWTZID1-H8AY)DUH@}zJ5?bDR@n7wcZlVuu1JM3-&hf3Iv%TFwSGGptbo6#3!38Bals zdz0GY+|6r`xB;);{3qBk&U)v(m(0>E4imgw3@$Q<+bohkB0WRz6+pz110Zp1!K9X& z-84HNEb4n_Z)d0)4sq7r@xGLa*J>TdRd8K0yfWbTjz^o}YG}fwNA%d7>XpO`g8{_!6H6`dEe>KL z=RIb+mj&ZDH9y1&0G-jTmN9Mb-swpXy+*3qoq~s&u(o)%tWWv&9YBhWdjnIh8fU7T@ z5h8%6>SVx$C5`-*&zWgWT>*!_-h8>TdkU6?_wta{x5W3|U59}+nXUB%a6f&Imezek zMO|kD5HU$%*XSB)p0>7n*K6R825ZXf*s0qBN+fu>dXYiHG`*(eiTp@+YM;Ji2$4vE z4JJ2sA8&|@x;lx~E2nS4{7bOVL3xszSvn*{*=Z||=+Bwc2&sk!E>INH-pq5G>%h4k z#bP~qi?ikFSyItuuO8rwZn9J5+*fK57QLug{;y%l6WiMfoCs*?DwgxKU$G+4XjTCb zUg=TcDVGKs$sU|FMx4o1ACoS>lVn3S?=v{A$vDL7(>vP2l!gKoD_svKkWF1de5V-q z=;(A70bfz&!Xuu*6o#VW#_)GDBzG`y*s~B3Z)4isr#XBKBZ(#PtH`0WZmijxZV&)#Js0Oc{TT14NMEedIsR8GG{p* zhNckcVa=JKADrX6jlgYC?M``8hKqStYj?(BSs)M1A%wZw^PaK=NUVW2HUN3T@PmCl z(72@!ulPkhed{%ZnTAbEM+E~@L-RPhXa?M05SI(Ui|Qw5ZDCG`UQ|3cd>b;H&$hhA zye~t5We!RO13~O*#p$Y@w=L`)(nJv~J!MUZjY|Y};4*5ndAShh%aM8tdR!Mg^mZ2u zO~o!=9vE7U1hJ4N9^59HDzl`Lw@!+MDNoM&t$8tnza;zhvM5{d7@V;Cf`8Q_XF zX%0vRucqf=3{gv4y@UC3*5{$W^|On7ro`7yu;1Un!oCdahczz*PjC)Il7e3PooY#m zy=ETpI0*MlQXUG)nVMo!hK3OWFNBHEaN>i8gU4bn05uQ#)vA0=sn)Qm0p0~Uq z*+qJan$#hcp_+gR;k8#9WC%`2%+7>x>qOxCq(YzZbs93|6|aeiVc|SKZeNgbgDVK7 zi)7BXYK^&#J=__{oklmTSAAzx08HYt11~FD5n4UYC``wmvD5Zj)n$#-x_n5ID&^cH z`bcwLSoqtM4Rq@#>xHG<2lSMg1?hP~S{dQIYx7dIgW|;uWu%iEmWO*-$IY$V>tsG}gKrmez}O z2g?5BL}SgtsMQp zc|$bJll9y#E^CEaXe3_R;*bXcUiHX*MX?pn?x6|_Pd^_$ZP^hZ!k1izV%F=>okaTP zy{U>Q1B;usp3ab{K6+8SGOI7lXJF5{FEW%Yd6d|ERT z*M=p0l=iZ{(N;s|3JgD*~FYk(iV8^$ya=|$>MwE(k4c6aTf znypGOwx{}fU1G~Ejys#(0Y+T#)K_ak~@xwz5?ve#Ff+-$VpXaP_8)R0ufXl&W; z-4MhgiLwr=RQN>%j>|1(KI2wo9>MJ<=3oeY(_7EO@*dn{O*(Dd7vhjN3L#vrfKq*s zk5w|?J!CX4)x;I78PKcBXq=+90O6h3O}YHx0o^6((}H$6lFUK~>a=jqWRvDj7-E~u1xwq9k(+iH_!RHw@8+)9IjBU7# zjVsi1c~Ua{^Ede|D(uyss%lANmw<4Lv*sgNy4?4lWKI-yZLIk$#?90?tllHO606E^ z^M`cwn%@i3PAgU~=fH&=Z-&W-*M9KOszS31CIQ;;IA68TA)`Lj4bsD{t1F#HUAz!} z(14N->z*RSIFlGMm%gma8fUPn^HLWE*ChRBDdc2_mN%S2Cd=82+KMl)iy|}|U!Fa) zNRq3Ej84qyH0>2E?G{`-_gqq|SbC$2Z}vrA*QHs*8zi6(m34{9X=og+d{LKA0;93* z?xxCF$X~mX5~XP_57RQgraH9d(j^+v_f8A+u>29aGJ#-)1r=z%*tG)i0ZBJNH`cQRi#J^s~eoi($f{Y+QrT;=G55 zrx3LOMh~9hYokeKwq|f^j-u&`$#=xHk74mV z#-j3`1l;m_q}yFSa`Fl#T?>Zoc5_A&2qt+ZCB;2-CR4O@&n04m-+i^nhAH>yBpqr;Aj zo+EZV?v+#uD|wGPdH1#)(v)hB@D%1=9Mcr>#XTMlE*gCk2^8;M($T)?o8-9U;5p0& z_|GykBwKou-e>@2KColDaq?Qw^fHB~WeY3fZfBZ#4VRz*3k}-k2^3u1Qrsk7>E4lJ zOn8I5o`F737!GrjRY?}pR|5^K+E4qv)#iyD0^Wz$^jy<EYPHnbi6;v270!HUMzk zuu;13G@E0gSyz+5lh8#E;1vr2c6hf&d~D+PA`bm(4DRkd(19l=>wpWnBS!}&RFTyB z>r?=hM&TqzLh#eZM#iUQ=nz=$P6_)6bk{h8Ft)2NLpTwJCQ_ljp>%``fY06@j8aZr zoM}`UUD^WJ^C}+^2^0568L`__#nbFqiV-&o5J-6$+{S4|JOBeJXkvbo6`VU0h)Sll zoFW1<0u*=e+$Wx@5$}5!!cf67xk^zRX~pmgi-NK=(6>kmMZ;C4q}#|sF!}*XNWHGq z;;}gE=}~mN0bY3G1HQPBsV&<^EzjR;1Xq9DfVM}nZ$&2`4o}4taiMbePDVzSc8|A; zS?^Ie0)%foTXB2v)Bw*pX{aYLniwzAJo9D~^XPfc z@5Mghg(|&ZT^rGh=hH>GgEZIEDHf`xYKw8CBOMwY{#>u*;YbbI)8TS?LeFfpQtFP9 zFOWVh^Uv313(0QLYxG2Hz~g9D9k1uo#X6z~Mr^1J>|v%TB}js`)xUO&~deeaQbY@-ht$Q3#WOylZv z*03HYC?QOk&Q$XDG%9>ageJmZk0xy#eQ8xS)Axm$rk$TY!j#2#>$j7tnB9SBho`Wi z&T)4n^rmsby?`v79f4Hd$cQ!Kkc!vxxho=$@-Z0ZlX%o>`l8LT32JoYr8H$IarL4K znBN>b^67}CkBB|>CL}{yPFshqzCFhk0hWcM0lFT@)wM#HCfS6jkg1mEkDqzNwDnO0 zR>*rIt^z^QrEgfB=9RA~Z-})%q#)N)@#}WR;$_6XyJR#BLGxJdF^T4rH(|ifK?d4V zF1;ZNG2dvip0#9olu18UR2HJ-Rf@%^$a(j=S?mHNkQUP#!n=34Hl8Z-OR|91H}76< zVd~?Ihb^hkpi?=bYfb0?!6aTL4x7yMWF0?kl~*%mfOur3CIj6k3#!xL7S-gyfvXJ! z44@N4V$1JMtHGchXQ(@v%i}`1eamstqzJxAFD87BFo4!zMz(;-Z2j?YL6gidgINT! zTMHwuI>tMaJcmnE0CR!ogiTCu1AqloVV{!~og!qLjuhbrvl&8&CaflG`ykU;2%{a9 zCt){<60{M>9W4SElUw6}%x#Lh^bQr)3kzvdG8L@2+Vdtvq+vh)Vs>voq=9 zum|{D%jDS`IehudcQKse<&)Jx!*};2nTZ?X2L;fJWyL0eSLGf(lKapLA}b%_EoY)%EOAr9U*lb$r!hOz$|~<(p;AvxE?zKAxRw z&xb0#t`xw0_O4CsLT}`i!Ah8;hi)x6$(+LZCWu2RY%!UTaJttX#p%ga0#do9&UHAb zdr9kv-e_5ewgmy@E0XPNf z-J8-)tR^+lJuVf?N1k`mNzisq?ssq}^`_3*7n8SDjI-Rko!$WF6Thk;dGRuQ7^1Qv z_A#N>dF=~tR2(K6Lxd)WaV^p3I<7Lwkq&3#@dCZkqUJ4LD-8fgM1xD6MOoO|JbCLH zGc>ksm&hE+p{_3PRZEayG0^ps1$0kJM|OqBj6vM2FH3fZ&*UxxelZF}1CA66qPR#S zc<>^C4B~CS(|nlk3b0fjuLJ9_bHx$c(PhGdO%<|caO_1FV;(LeoxHY=T0DhGwlB{_ zzC2^QI7ri@P6?mKQ6Vz6cRZYRN^{LEhkOc8O9(njxx#qD;9j-+^o}w1V?mTAFIs{F(>FnC zS%8IkJCjjyt~U$=vs~d*>{$V`1|aHeeTCG5t2Md$D)^Q0Ys4LS_hw0GEAG)SDYuS0 z7ZEcbI^N|NqzX=g8{iAPhVzLN$&gaT!t@vQ?3(HYW6}u&4icuUx#4NM+;stRT=OII z(({z&8wqfTK9Mu8#x>Joi;;OU12vlucR*2^U&=$0UK9&@^khQ8UONEWP8_BdBtq`P zb$$skwKC1>b7KBDXd;TT*K2b!OwHa?^g@HzzR2}X6angbFL7kqE2=2AhzDOqx7j@~ z*0ff}+UW9tTxafiy{r=69p~8kOo9Wsa{MV%J;dX4_s1JM;^|yg)C#;1mdxiQwE zfYzz^0Inw3@1pi>`5YD{wpf@QEphnv9e_R-4C*dTFPJyNOs|wxRr>B19x1FIZ(;R<-$v|pkreQ#*(?-_S4c81q@YdLjRs$@Hp+xgot1SHRu zS@Z1BIbEh`HhB1ISmMaaA1S#6b-oU1YFyk?t0z-s+LX`Q{AXGQfO7gh z_B3zwE`L{<&JSu(=z$;&07~nu1Nc=vS;Ii51QBW^ytgD0sRbC*(5vz4aNh8m45CYj zjVOVqn>^xt+>J{@_t2jswi2B?WS=sqjkDIE!gakVLpB~Fc)}8QD#@#Nqz~y)Amn4_ z&=~KgIEzw&)$LA&x%VQ7joFuiR81`ymdIWtr@Agvxi>vgs(o6skDo`08u41_)f4b( zMGqW>=IzbPUt4h%}@^&Bv&#yN`5W8H)>qc=e@S#hZwOTPI z2IK;j+ZpvF-8^}?4GbHyQ)-POK$=(?^@37Sr|JY~n5#?_ophDbU%hf_k=|u8iwip* zpUl=EMtY@~rL8-{s~Id(Os&Zeltp*LyIV=4W0-}y5ylMY$&8U7HZ?Hb#tu0tz-V(g z^^0dla3zKTtOT426z_1XoH}G|J8`pbw!M zpDVJTyXu^4R3B!l-riR-f zpCjTz5Jr3rhKK!j`w_QxT{@#I7W$@j88=YH*d-UepePxk!+EZbe0z%|ai;Z1M`ks0 z;bF>I3S=f(u%67`T=FyM@UC^xRG6(|KwJO=)T?y?=qoHM9zr8P8GAY>B%fQF!IxFprD;EV^jwM?K8r6~(czOa_x3@q z$g3>xy9r{a@qF(YBxzjB)jax7HF|Y~o`6WIC{q-XV13 zKyvWqQ$7XZ*B%V0LPM{S8u*m&-oqZ4lVU%CGI(XLPcVRBSQ`DbhHHdmI8NRmdb^}@ z8tdX?({s557N})H0<}if8=^N{N*A?H^%qqpf2FhAu=@D5i%V7|)LOUjgxcXt!9K_7 z)qT!n#@q+NWD5XN_~;pfM{4j~RbxUJB-#eR2JX9h|hRA@r(cyfl#7Tvo((_Zj&G6on~@ia%kXieW8vwb&u2jL8k z>?MonZc3gRJ4}X;g9^?TnKQziCug#m+}Q!V_BN)?;StmcF|NCdn?d`YB*kM88{Y@x zyFM=Qa>w(D7o%&wSHxaw3LOEV;}3`+8k+GI-vbc3<(ejSI=yniElpzSl8!QdSJFBY z7eJ&_(nga)a6IUtSF{DXoILjI-Q$~TuaFT>Rqd6YRS>OHCaveR&?I!lJ@h7wGxh*w zrcw$F{K)8CXBF+7K1hii<@XA!9|li!cN3ouYtxj*fX?|y`YMW1c-hwCENLZz$Mh51 z+q3E=D&eb$-K?3+XKE%&ry`r_+AFG2Y0im6z0ZOk34y{DvDG95ibEDw6}hhDpQ`znYREO@h-W)gb|81`q1n6hYR{)fbPEYzU^Rv$ zoP!Zq-8EN`V^cABVLpmp07r}&2D1%*o;}?P8JQVHY_B^=3m#Ymr&U# zm3Uq~yK=TIQ8#-K(dyNT^LFiQw!%ZolKJVgg2{_?FmZ1lVt+>UlJ*r+W)F^qDZbr7 zp-i3DgeUL7SC=D6+~(;?ysohpj~F|xqs;6;kF>0|ef|n2TFJRxU=_VB3plvXfcdcn zDb59J0?mRLPhHCNG|mRFTt^e$RZPumadw$IMnJ03(~O>*ddSh-tfvNnJSIF-k30|r z`H<|@VI8Vl>#oJ*kd-p31j{oTX@_PRMXVW54m{@}l8f_mF2l(Lu~wn#=ZDJ4xkGP} z%t8Gult_K($sx8+7)xr+$Xc|)^x=8T5wUO1?Q`x*Q%Y4qw~2Lz*Y7=kM1vsF?5Ik1 z>TF0=<7ch@2Gq;pYSMSc*K9Khp2HyUgn&D&*O^z0qwe*goyNkrdLHww4Eakc zU&FSoBU`j(mEt|)_hc6^Q7o`fVjK?;(o~PZH_SQ$7HhA|R!I3yxK1AD4>@rR@vIP^*1(r*&put- zo#;w@kpQtx+p6I2@eG5?d!2}HZPa4TO3$RN+Qb2SNz;X-SCVY>X?fZe!shS|M$pd8 zZqwF2RG1Dw%84+EYe`zVKft_nk3wwGRxU|wN%Tk8<~k-aTRKZDpom8?V06|8 z$Kk-$%nTwu>x{stniBWkorhSycLhO%efUrhh~n+YSwRYuiW{3?OOwcyzguxj-g-X6 zrLTLz9#MDIDQ|bXQ97v^X%?^=-^ydSC++tf_|+`GQT9nE$_*4Ohw${$H&3oN6CORW zsU2@A;tMRE^@@7T1J->>*XU2426SWtW?b6S@h(LLh4AwTZVAz#CN(@ix?L`^H-7bA zVwNillPg?6c`FV05+??crQw2lxX|{NIB1+7){_`DUTRaS2Q6e3SYEIgdsK{ZG;gj+ z59T4|v(8|q3#wx8^O&7*psJUnrc%WEn6wM~?6BjCP4)zLy&%2v^e)!@`Knb)?dGye z%>l(qAkO)^oR&U#AfsIN#;P#)_{FngKLMS{O?z!=^BzA~el^d5#Y8j81k@g}*)$l| zvC9^0>|-&z(*g93N~IYxnvNF_x}-cy?76%qo`fp|Jk3|Jm5SMG4T!M=+%Hk`I_+8Q zhy>A2S9bM_vMFM0gXxj1s!M3(hAbX)$nAW-6?FhPK*qmt4|~ns^3IweG$dn=2GD|9 zjZD)vNUhndrIpJXuG!1>(09D`;e_ncTUQwAFWFqaWUJJ&SGvu~ce&IUGmg)a_MSHM z1n?sr(T=VM5E%ds1)VP`>}6=KIa#Dlor_t&G8ai41J5?YdwU0RizSu3c%@_L95pXd=Ril7RjKJIw#BQaR;H!m^kAvT z9uHT0C<;@iV<$3Ew)EoB)q=uWK2v_X!y8wqF0o_STy(Y!=}J838(Npk8C=C+EKEp; zP40-SAwo~1U7OdOBJo87pIeI1RMts^0L7c-qv(vYUDDl?sOVSxrbQw$25q>QCMk;p zvvIA`j>DcZU81i-;VO*{Z;{B`CFm86op>-0mw6nLV1xM}RzmVA52^+vMWH_Cs}3f7 zC9l|A5g?Os6ey<9Zr)OGE4J#YEUM_c2!POlJ?~eq77;|b9+#L>(M5xJ%{$s84H)L_ zRt2vys^x@0Z+tQlt-*1-(c&7^*F zIbd_%DiHze7mgqm$3$E(r?4F+W-39ut8QJhqc5KxzGsvazy@-T1UES0n78xBa#Q2> z!A$RCPr*|@L#&{;%`=?!)+3>yID|Ko^2sGN5QNM0mcDmZye~Jrs~nGe;yJ9+h}7&| zo|xTazZ9XU_MlJ#DY&X=PomT#pmk+ap(c^8V*qIA#;$^vMNf+EAd6S9>RFikUM@o6 z@OIFa#bc9B3wqJAyT>u~8f=Xx`x%hWz0`~+=N&Ik`(-kgR_Wo%6s>XbNXMB=AO*Pe zdpR3Vjmo}k3;MDR_L3}H?J?S$&dzd!VA?UHGrf~2hs(${71LD}>N0|-bJ&`za+NaW z@M=j59su)R5^>FF;c$nvEe1pbl@W{-7N>RG4#_-t5(e_GZt8bv`_Oi!4DzFu10(TB?$6%ge%kTu9s)6jKiMMuEBEw_6rYdDcu|3d~?j~=WwAo+S zLw{098f{s{SdtC_wW*nJtUymqUgzfIt7I+F+ueO4)v(XTH?3T{1%ZdvF{rW&$sC|d z(-u)4#JeJ^*2Jc53?~ZR|8HC48WD&zE}cMfY(Q-+XK~@uqdrv z&Mp;`+X~ndt{tvUNWD~%MM89TZx6kKR&1fVv9T3YfO~$;R^W!H#=* zb5PeAf;k{DA&e4=DeU>IAl5tEsy>^VwX}x_PBX=IKR~LhISA}KfWA9xEgh0iBP=oDU2C0?hW%9c~&j^NCS@}(dpG;};s}i0x zFsHl00qnu8iw%f}w`llm?k3gkp~98((Zdx1+EHqpdwx`>^r4#pd~R-a6U>7*uTDd< z-w7+dH;r$6G_`zXkSA>DO!hs@s!>c$&&?-T+g&q-?^SPtlJM35aNlgMzt^2I8DgMi z&jJHuyny-M8+Pdg)ZoVY&o>}EuztvXW~@ZjBOE?BKH_&lN<8zt5unG_uk{8`0v&}!-XfBtJ5Dr_ zIXJ*%KN|}W5m6uIWgRjuT5vph(6O%Xsp;N3Z)LdWxktc}P^6sXOR?4rH)MAg_THKz zVJSX!qJa<^n5v9>CW>+uY;18)m}LDzp{^T)k|78WM3qQ%_eIwwV}S9>Y$Nj`Y+C^V z(52y4lY6;<%sNh_B455+o1!+XmYlS?nUazy?cBwA-KUjy0?CmVv`I!pt}t?P8Svs> zu&INIKzW#PKhPw3M$x|H``!({;m9t2HA%DgTwWv1J9J2U)zAHfj^zgWTg#n8lO?Cd zea1xT$L?xv6DkJr-mRbIGdKxE6acZeZ(%bv=WVoJB)$@(ZZFYe@UFD?u(O2a1YW0g zCqGQ<$H<)xs);<>FEDg!LL%il8lN@U+UWMNaACyC^CX=~)!UXEL0fv@c>q}D+58^w zbCRlTY%sM@4wpiNIK0p)$ee{P<=Xewz0*0})Od0I0pdRND>k%BUX`S}n7e0~Lc6#Q zF@q_L{nD94NDLzZX&4`kDW>!*$6)-&#x zikB5~Q9gUGBU_zPr+PviUtYbz5t^PG;}MQU;iiE zR0At?XYRhUMb~F5tew}d+jOfPi{2z1db)egE{34j*~wrrxUV`%of!jpS^%q@WGLr8 z?&-CH&~(-w(H(tC^Jpz1`+!j?<}r&C`ex~jUHI73Wp;Gtj?~t&W-zq8tF!%h=%tD37(P&oU%|%6sfN{dgH?8oSZ(PH$K>)r zVY68j7nK{JCd+xe_ZY)NrqE{`4iRb9V2PDyqiM?OM#!07W~GTVp#1MD zp?wKwf}q>!#){em`}!&q63QI{#L(pU$yi`djVX9$R-B2$GJd0Cp zyR0QPpJNOJuWLdgvv!Z13LA*oz2-LuXWFZDuQ;qEh9fyM6KI&+>t>!bfNUET*erxb6-{=)e5z=NxKdn*>Hi0W*dO% z#k%$bcdmU0R>996zjJ2f+1k!*K18tsh4W&AG?cP_v>lkdB86cO`ShtAlEm5cZsn$f z#2wQyxFTOPG_i7rqcp6&&M`?mW-<~9NRBzbsJ=98M(rat21cP!d&~mthXZc4P?1tO zJ<*cj0xVu5&l(_K&yBm$I&4Kca}8CgjeD2s@PG-Em0yC(1szY*c+XYxa>DXf{Oa6W zP~+;CPcQPZrN8t@)HFvzgxjF3)AD<7)4hq{DZcwMj^xX@5mTup_lo0sh)n|osPR0# zTc11}HHUSE{{|nEN@58`ds%>d?gW(50?Z<{|F zybhE)uL5Gm7I@^twaSR`ETq>&W(LIv_EZ|)8?`b8OUV!{@Rx?eqpv(y*-0jSybmk} z`*coh83MuQ$uat{-(r{_szS~S!ii@)n$-rOymAANlXKrCKTiZ*xaR6E?q#t^W!p=> zSZ&vU!`Oc74?Hg@qm#9B8=vqIxlA&wA?Fo8RCwElt@`9Wta-ww&Vo9=B4B$QsIUrM zOU(Hk*WI3R%t&D2DHFb%#cQo#d)QbOj0-Q!W*_LF(V^^dhpxRA$ifB}WQU6kG;Jj! zdGEI3Z6volg3RmPDE>{(61ER8d`P`w862F;$&TrE@hzpsH35iqI_fQiYNvZTUa95l zfa)MZwk#+O-m4Kr*P z0aE#e&d%8@^HGMl#O#=IH8mVtM>9)_%vqUz7>g;T7`eSrBO#b<60}e+y58Pi&dE+& zvPesT2_(LQefMAk_Pv=ENGH)ZJ?f^;XeAZ=ybjb0G?!zbpMnKdP!$bY=?N3S>^XL~ zVNsHGZv@r_hq8>J1~GYErFo`zoZ@kUh}qMaH&|izJgzHUcafmY(vO?L*AkVP2v(B4 z31>2;=vwhg;xyW&_)9saFXfOXIKL5B=vH@jczC z9vwZVIKUNEpfZclzKYa?C%&;*T`W?@;g75G#SreXm3L!}C$YZqxjJs9N^59Z54Ni? zXOHngc5i};(?@mDd%+&qCOr12-BfGrZ8r~WhbXlTCOnTE?#EI=hVCng#bYjq(vUi_ zk9sH(TKm##r=e1hv#k^rlGKhWMAa=E&mm~R=~2j)i-p^;yB>SBU5HiyY?X>Z$WmPP zY!=ou&b!67c3w3ahy`birRv1vt&w!9*sk%lVh^x!!=;4>vMZ-LJF+jI9J&+2u5h69 zI?ScN(8POsus0GZ*ZcG9&>tIER3{KUzEh!`D%)*jBtM)d?Qg8DL?781ZR*>RV8U9v zRJ6iOVu|8*O}%*7vZxQWayD;hJqh0+x+6uOM5^4lI`CGp;XFPVAILYVZ(#AYk8{(T z>6OO;p4b=L2j}3r@7*L%d$f~5q{&;-yY!)JHw-Dt7u>IyO4@@Fb+aNL2)Kg03nEPl zVrxV91AI9WkIb-NSTd>aNJy|U*IuMX(wnY6L&?oNg4#p195Sp+;;UU6mwA>4`v@OL z9?;xF7$E3!SP!iuFxTN+!`V)!VIeS9^aq($y~I7qYHu3zZZ8<43X_mVsWK;Mz#^Hc z1_*@UhGp%_E*=7PzG5Gd>hd_Y4hy_=YvbOg&KK(A)nmTuw8Ie{;lj0yta=YBS_>ke#$%L z(TTZK30zKlIJv>Ym97qaq%}gA! zp%ylqd@J}Io8?j<`TA`jQ}aRJ-I2Ye>i2Mlg3OlMBr@dqP_O!7s$rNfTVKi_Y?qO=P*ti)E7MQ8xg*Sxq6*!qs5dxFq#v zZn4AROlLH_nL|jNg#P_VZU)m(Y$T+Vr z5@bJS25tc?^TEz%MM;n+cW^859G0|%U121&GBESen_64)viI8i&1BtHU*_2>-yW~U z5{;TMFQM31q-6yOG(&Zez1P~+x7q`*9c7u!fZpaBQggt2?FjqK(jVoEF|YPp-?;?o zrFLM_rrQE8ZD$u!Hz<;{Dw@E$)U$^`$!FQaGuFZUYL+*|B94oNah!th1-l!u6M4;? z6#EgyEs12UJS?=t>V91HD%UdjxzEC|MAy?tF+!AAOr6`kcP&(}1}vmdh1^bhQWT%E z3^ZN73g1V$2TSGS3sshS>9plQO-~U?t&x?AU}!Z4hR66$x0&t1CB06Ip;I>}8&2GW z@Sf<-AjW-Cfg2HflSpTL>F_K?Jfs9%;HFxJ^cT;2pVIl4bQ@4|we(3{vEAtTD7UW1p>uL?8)_-^ zYjfQ9co5?5NnmL=5rwt>XWhHTd)M@c_?fkzFar2XZk5#ZOfcLc7`BHYBwS_GZvr5~ zT&j-EyR7P=1GQ1dF{wvTL&po%XGE!2sGYD1N#=q3_yuh8oVbQll$<&DJ8hbRTk!3B zRxz?3FUvt0CJqNlsD$uAV|YJTQnR_7Y<&V_m`W|~bYe@9x73eWTN6>=Y6Tm@K>CVO zjLT0BmAAJry~uqRxL$F=4fhGfD-DJ%`=hGr!orDj;C>j?_RU7 zko)l zsgtAOZNDZKPtmwpROVth2|E`BVtcg?F^~mq>n2aOXkKzkFGaTxY+v~+F{7J#9vJ~F zY0_E(_lyU^-TjJ*#kNeO$#1O2s*Dy!Gbiu%pbl!v0n;Jw*}Nzh14C!9R|;xM-gn1Y zDF@py9b|WXP5d6PwwE5l=%;mRpVmF{S)+OCY6{TO@1>9%QjdciL-QdF+ZAE7c0wk@ zBg?{o)#IZV3y*o;+eh{qUoE{MG=+?m!DTv=FnY#5m6P#+`gJleS?r(yO3`tjmxpY& ztIB`cVNHv0`Qcj1YkfZlyaBdjEkL}MC>!kcG!ipDOpASw%NV1eZh;&RI;&(7?`f+u z6J%H#-TKTS3^d>Khd``G_})6bTPXDe8ur$d0It{L1)UCnMC|-%T4(YBrjWmZhnG|o z@8LaA@m}HVf}_=xVC3s(TY2mCbdm6YLRRoG@pe>aT;8SQ?NH`>nn^=#g7a#PWYZ06 zv`M;evhi*%TZ~?FxTfH)Zs}X1SWK*7q_&$B3N+9ms}up;L$JBh+RHav^c3I_6T^tdM!nk@oM#9! zJQA1hu=ARfj#loNnmdJ)IOOflNV#vC!0L|%?ShO&B&2P;Dw66hjsnXLh{shk^g^GT z*~*{=1r#u0YZ1mPOMM#GedB%U1X&5H=XeMVE^u6X?y^Z%MFav!W zEOykRJoTlW$(MG<;ztzw3g@`qgMLp%R?%$1(G@PSt=-XL>PbIap{;Pf?4oBmmN0nv zN?~}p?0R0rc073y1o^Udv{}))lbXvhj zJ>DnSIXuF+9GlRV?kXZcrJWOZJl!X515(t$MI8)O|NcCu(aoyLpMM9A1fG(3m83x!X!P zqT}m(M;O7<`bMW|0G4-&rSwHv+0rPB4g0g6;-_RJYbq@3KB|l4Lh(A+NFubb_}Rnq zXnpI?uGnzLvyDY9c${js79gA7tQkJyAkf@Xvqr->0Xyl!j`v<3HN3OnWnCeU?3%#V zII!0WBw|O{i3T(XT{zDNeY!xnrDVb45k9Xh=>RZdp*uFQ-gYEN?Lk?Lhk9n)c7`zt zJ9XGGQ90>wP(=s_AZ}J6{AJ}VNl=mJUil;$| zK&REd#1K9e;isc8qEl3P%prmShaqD35)b6wijGEwiZ9^i*~-``Y4JY0=si%U*RXOIqM7=Zbg#B?P_#9D5>iHN9JKi?`>s&2KwS15@ja*+f5F-_3nD_#y1h)+rTo2Q9LKkzVSH?a zd283JZ$d`lJ-omk$iiyFnRwL)yw%mzv~B+CfhJYA4$Kxo*P3XU$ed?<4Z&i?a9Ru{fEPL{T<@%Z-H}mX2@dRaa+MMYE6Qte)SToNQ ze``Diii%6IhY!8q#7W!EV7nJ+ARO^{x=MxgL$ww{B%?<=^*C)&ofWoUa)iSq2BWdq z;4wqQ%$SlLkmsQhY{oL@BB603vUnf{yB$zXQJtj=@Zu z^L<>|*6S|ziXon%g0Z2Pk^y67$C=s7e5hy_t@mIRXx^Z^`PmF>j1Q0{2;^~RDf6ag z=*;UP08^zG*1EVw%_TN9aU_n1CFFfGNd72dUq7TMes4Kca$z^@Lbcujs~AGLn9>7H z(2xev=AIfXHK}dko6;b!00rX0O2HEG}>-ho)6KXfRE!^g>z( z4&LCRpS-S+ql8CpaeXofl1n(6nDZs9FzTU|U z3<&p=mxP420WXdFg$_|rZ;*`&9y4~`WgMEKjY>q!bp#?K^r^}C;Q>@oOAJ1YEv_9@`{`rRVG(QJwd$#(RXpA$)1~Vamof zsShxsA5@EBwAm^h>tW^)KOd)>^qhJMjQl`Hkc|82W-BpA7f7$4O&dW^bD7KbERgd> zzOhIb<5EA#ey4>?$EOaR?*!eC>4D87sudMpUkIUMv@l?a?`y2Xmw4b}cmURS(rr>t zsY4(6TTQskYS50l^BCfr02(Ig7Xe)2*X8FY1$ewNQ{t?_LwW$fZWex;v+puz!%%Np zVVIulrs7C=$ck1bPd|7|B<9{G;ALKj|CtAUkqHO#T!iNWYUi3nA3z+hdV%c~(cqEO zq$Dwc5hp2(x*WZw5xoaKY4$Rzn`~Jdqg4wnBRDrEJjCya&BhZl!2)$xAJQPd5gYMV zwy8+cnsdL13_){V7AjT2TyZR{v~-Vp*|m|T!L7^^jrGQ^{o2gvC0*Wg#D;^Em;fQM z3f(9(U#}t^B|HdF7pzy5ZBn$XaV367F)taVaA@BG77QVTo0&98Og}^x6N&5hDtBd0 zg+;p2)6sIG!=VNy2CyYZ_Mjh7-}rM-1P+9C?BTOM8RS6@->14N50*H)(@GIKHSQ8h zi8JQiz0`5N$}L{aXv7J5*?N-=Qc&-$4iF_`BRsekdrgtk# zgZ)}q2<`1RPSIPHJK}y#_QGp7 za;(?=n1KQeQ{5NetH!P(+2UYvJT5~+`!vr#U$x$T?h=IrYYQD=k?Ll78kkN|LC4$^ zDajZX`Vz%k0@)XrPWu@~+UU;KMrigpZhKYqtLW>r=L3$Lv84HQIHo`redK8n^g4Nk z>?0C9lBq{3R;-k;@}GKCek#N%_$JEfO?WmA;nr*HIbrc5zXLBjF!osKCPr+1gbI=B z?sLHRPAX)Cy3CHtT{pduAy^WDln9>1V6)Oa8h(D9#=VLAjIuZNiCJ?Vy1z&MsL{qf z4y+C`nGhdbW2Ot0AlF@7GF{_>!MSOny00pn$IOXzZZ!c& zFcB0UP-^damu`o?dN0O0vE$6uv$te}-Xciiv_|U&6yr(S(lg=`8-bBWV z2vhT!<+5j)RwM&EqjhH8y_qdVwB4gf+hMq*2qBaAGIER{*#o?fS6XHM3<=&P}m9 zv=MiTHKN8fJUST9&FZ!BIqV&>PSGtEzR|fud7)uomz{7+v|88hBYXz>rUJJh2U;bt z%!;<72sQziP){I;PH;zdObjgy=#k+&rZGBlk5>uYnr`|EXC$W%&R1E2B0PvvUKP#r zcnWlG{#s1i^BF35fDwYv12nPs7IE>617FG!|5$#H#m*h-m2VH2z#teAGCsyWk!MDE zTUEr+0aWDUBHDVq35>Zf59G9nhI3!9dRv!l3#w12l35@4L2PHwMX;R>PU=Y6fqsP2Q4x$R6S4pjaaIMgyw^O*0;`L z^qA|^i}LmJe4BU!YKSxUrC!*VdgY@gk3wY`uT+-&I-l^lj8C(8V3(S-NrB(1hsHKr zW73H`HI?sLn^yoNdc&zIz2CwE29{+;cCpZn*=MB)a&*X#XYAXK z_oQXnEY!i=8WL!`C!F46(-1i6+SC~>sCKz-k!$Q5 z2s1b%n7nRc0*WMXw^XH}=xzpuNDe`lMr6 zh;A(K;S=~tRz;R zUrCSe20euj_a4aS3wPAB&GgcRh1Q_=b{Pv(HhT(!4vFU4oFU-7+`;2j^3&(8u^TJB zSCWr>LySp+UfI(gImvc8lPR9;TUThDL4P9sq_=zGR;CFBToL>PWV3AiM5$DSQr`S0 zAG}vIhfL_E%&q;0{JT9-;Y>tDo zP*Kr3gBjIcx-3!k*`BwUngZo7DR@{pWYQ$%3@p?LnaS>C+$E9^<2mMKOf}@dLhYy` zn$XjcYeZwuqYr#z)gy* zfC3W!L@Y6QatT_BT?QtC%uy;c-IxhNtm0|(tHWv!ICm$T)L0-t6YQINL_9@MEM@Fb zAl_B3EeR{@GOev7I5fGLP8$%kLuT>t23?2C4C5ghG-yi+Rr=!kGTy3tLuEQ9)e+z; zT&Rd@Hn==wM(uU)HRUF#>dQ>u0pu-@OP%DnmY9g;28A^uB&xR@TocUosFi~XP1iu# zt86J|8B#+YD32sDuxIWS@|0J~6&I#y$&(3L=?m8)0jeYFd{>Wndd9iZpU!a`u!6gF zmL=8zT^7^fbVB#|i(*9#TRg9BR>o{oHjrQ{i+yZbUWTjs)U{qZ8^0JJ3Kuym9cnqo zv`XreBz3Ka%54BT2ue29D1sgZPhQum?;M@nbvoQdq}06j?&a!iwoDzEH%spak% zp7RiddNQ~*_eiXdulA)G-x^ed^!5XB=%#UQm&Xt9l;vgcsDMV0m6e}TujLJ`8h^@% z^d%oY)uo};!Nvkq6SY!~r+g=9rZ^%NzWxAc`V6Npsbn7=nM~wp;2hrUz7j0j0wDiY zSH*(J#AS~*6GdB*6kQSI2##4Dq=1;TY&J~|_*mj(biAI^42wngzxG)bdW+URRB#d8 zbyP6ic}^!)ntjT_)luc7*DpE;NZTeJjG>;8E4o@(FOh}C=z=Yp@OfqMso~2j2+KOL zS=xQWRF%oBM&5#lcMLA*s@95YlMKdDsgrDp63^zQ0a+E#n2`AqXNIbl7h)Y~i0Dfz zaxXx14SFdqNPw~GM(ALd8Rng2Y*y~lLT>Pe#%^OhNY=*ZS>zj<4ZzSWn_cm+tZYV% z8`NDxQoPQ>VOLjrOKXee+n{xB8k;P-iqSbc^IojLkb+m+X4{oA&Z73cV|kuJ?sKX( zQr0okdRPVzZ|At>BEz82&lwO*O3v8`js(b1+5k2kuBb?=qP*UFRmp&mjaO@!i(YpZ z3Up?OSl)>XbM~+qG3^j7-i$Yiwp56fPXUiLygif_?Yn03wMGi@5#%@Kz+$lx);KQB zjZ@`)y&6RLP<7fb7FX4~)GdBh=sP_}eSTn2#EJPdYaI}-m0d}uu~db}<@CsVRx%Z$ zJb^`tj?VCWIn8-6ng9J?*ip1;nw#2$^TKtY#n+%!oZ82*U+LzgoLp zVP17(Rama*dP&DB2gr?AdBG))XI4~gRl*~gN=xd8N1pRQuh!}&)Nds?Ti!fKY$>jJ z?5!B8J{M<(3~la=`R0k&D|P~6M{v`g2#?3Qr08Y=m*{VON$S1&vX9{NwTlk3n1+am zyH8yzsilBG!+Z2e_IoQJ>&kW?&7e zV!vzAa>y%R(iR3uS8`ZG5)a(RaUFBMELjs|G+n|BO$|r1&qZGGr9FEuyYYB@oozQm za#P08kjWG}$lXDjyHgJvki$q8!%cXUS||)a>8koX@&HEN05UXQ4N`I>b8hbz8ty7R z4zCH+tTUk}w$fpm?`@#%1LzFUt_MVvoL=5K%h~rdBLPg!QQ{rF+_l0J0or_sy;dX| zRBimux$**Oco7!zEpTrz$`zTc-c7TbFg!MLeodZNOC3_=4lGYh8j* zP@)e;T@WN1=glOp;+!87T4y3g#xhZKCKv(77Mh-n&YEA>vmK_x#XvNxb?!2DxouH$ zbstYg_l(I`jiB1tK(4d{5C} z!rz?J3DeW-SDp;s##67!Ln9}~*M?qds^Xe!nQ=T3(}_?0{7b(+R_Cs{k*>xE#)bPP zpnwk6mUcleV%}SlRRa!E)|I!Q@E+>BFh^FA#0O%5aL%E!$vSXO!o@B)oT z+_5>Tw=-2d6^P&R`5eK8n<~ZgoQ#$&T76(N`%xYtnBvs<;BDxCx5g=Nk>+;~1>sB7vTD)&abu=;_P#9Megx0E$X zBrj+?ts%w`n-N<@s+g&$V^CyBLg6^+xxR{v9GsH5irh1;UTPxQjoWyx8r&V-PX?Y< z>9jsA*)+Y>NSo_5mOW>9)KyunnW>z6+9gAck%l|~Dm%%cQv22k{2aB=K!Gn z%IMrxpX5f1RKRFo1xG+<310I?81=w8$m_)1LXNo1Ya6@nGb=ivz6xdXi0;KqUnklP z2~T^?@krp!ZFpE*%tbGgr&J_PE}CNH6;m!notb_4$M)qPJh}#AfxQSst(->})PO4u z!4(>D*4Lt4?67NYUAhGr>tI#~4-ib1I&Olsyjga3oYfxxxK&TdN2nCn2VP>}*hFBo} z80cxj$=HZr__#rE1Y1W54(91RibCvQaAmRaXVEBFj<*ws@5Z$O%@7lz*_+gsMzQyj7jgz5AsGe-4 z8lt%35L(<2Og>dg{Y<0ZqOpRgzc3nqscTThEpFahO(4X6310E?9?nMAz7vQX7z$Bc z?9~uvbKTp_?XCqBqrzu!OIq10(wDYa+T_y-@B$`msO)n2yT{v03IhlIU@O zC3J=}-GGB5?Tj%MxLE-MCWh^_XK;ud{f^9MD+vsYaW{hs?+)~WZ&V*$Erq_=9`R~U zA8Xo@v?5#fvDT}j1_zPcO?i-hbY%Y-Xh9E`!T9wm8%IVusMGnz1TG{-9yV#pGFnP@ zU5m2JE1OcSnoWL3O19bw0&gHW25c#>OxYVri#Z_OV1b#Ri-2I<1sY3r3hj2}IIQZL zjxfq&brb{kj>@ep2XD+Mnip0_RGFzVK@?6%`w(!|1{0Dfy82?lUtn8}m~2HnG*KWC zZHnN+p|orvp}`XbZ_1Ua6TcSVD?e6l?c|+?XdQ`Q5D%llnUW_#Ubjnc&horAx5#8? zAf_Y~vUQQv@F~`CRtt8d<5_DnM`qk3vo1;UU9zLlhxtxAiWTBXZ9!&^2~7mc#@@ZR zgKTw9nl1{06%BZx8dVtnZtOY~nP?@YWLKeIzHVVA;Xnf(^QghdNtJL~;G`NPLr91k zc-GK-Hnz~o;)pOlt&^$kLKvQ{+d=sPB62qICSeYWb=@EG<6@*SR22@K>R4>O0C*k4 zFQQ4NCBZ`$pFXg;Hy~Ry786ie`VilOlsR6Jgy?Z4&%DDx!iTCRCJHceRRJylo-a0A zVZ2TQjq@sf;c)ew7L`;v{ER%HLkSb~p(7K*b(cChdfMQVmyAv{rP@+fhng7htlk() z_~Uk8w;F!~z5wb;NYA0&0<}{$Rvou_`i<6QMXLat;X#PY1^8UigqP{L3SaRdP*dwb zc@*lZ=|+Jpyn86PtO!(7pyq%GP-yUFpwg#-ISpkNyoOB{N6*(nBsFQA0m5+wfashf z+eFx3U3P$*DS&HJPpj)~%BvV!r7=w^ihR@jKmhl23}#>mFP19casz`g3Z=YNO$&s$ z_sZ#w9uhDEWelJaOL)o@0zdgrL3#}K^z>xv*|5;&y7#$S@q=)p_m(8_LKhxxL6eV} z>V)F!N_#WQRB0*6M8hvfQg$yO4VG>>)m-q^J{6|Z7baCW^HLK{o8;I}z_nXcu~}P2Zdakqt28tV7N&x`c0PLR1ZeY?g{_HQ2J>b4Tj_o3sp*_@W9*D$ z=f1KIgFU2gM@rCdu}Z=LWU$wJvUgS}Qu)BP-Wy2El2^OAi*#FC@J3jcEFXrxRXsT- zmr6KCeY1SnzOdp?resZ5NjRM9MqkE081z~WaF&eb7r2&XEciGwj5EX*CmmBJiXTyB z6C(z0CLphnG*y^}z1(mc1tFVoh7FR41qZ*e&7kx|P`TiQb7{mn!8Z$-ub@&r03TIn zR`F0bu`4@K7_6D8dQpjm9(xj%K70Ba64OQa?JJ`f9x0$)D50{Q5OYL?V{PkhD!WPf z1n0PFY>(1gjOWE8qJ1>$E7IO}bXy|JLyYjt21n-cEwvO?$2=5jpuoDgj`t9sr??0{ z0-An={>%Xu5LWpx9xWR~>GT4jvErIPRm!8wN{dKYUT9_4ahPU%H!$!>eMTd#Qim4q zat%@!TAYMmNFaCiT%!yD0QN*eyo_#r!^i-(P#&T=8!yn2%6P+*0=ocWJz}o=)m)tV zv74PWbMAW&9UN2fJ%VPL+`UwKCitbG!Iy%IcbDO0-RtF6{S)Ygtayv{96ti&drsRs zxcreW)cIz@g0L1dVV1nWe#=6bX*oz0~BYT0kyn2%(Q`ED`X7ppb=ir>(_{lzVU@Yh*ZHzdeZ3DZ8nDIe+( zzhc2`DrjwsXrszfMOB7~^(0jEymNr|9ibALea&zbYk`fz+WV->9vCpZ!NO+8pkJ4B zcnCHYDZN7}&J$S@y0d-u7ks`39r0UQ-oaVTxrBPnBuubmL`;b?oDYo?Bpmwcz+Y{X zEUV3p=gMpp7(v|)-UZ027YDc!Wg`!c3Z5BFD1aB9x6-6Nr>NIM;MGx{To&|JpVrmA zr8w*yXPOwm9l=#a%3i^!pnG@;eR?mJ8PG--WA{!CJH+X!ixDIGCfl25UQH78I_MfB zB5v=$gIePxu-`_J@g@7gX4MOpfD4cIjq+ci!Hbrv4_G}VlJlIK}vV}0HJo`jb60qE{cXPQd z$Z|+V$2yqSaJyc{K|c>Pfd3@q_CONYi8DG;Q!i~CUYYme>5BFhLW?SL(A$g&#Nrhc zlxf&a_VzS4&sfMKxUkB0=Eli;I8e7)Cs^KO4TutYKHDMlD7&<^Bdf6a(RsZWwNJ3! zU>{M!xprpr5Vmz}tznyZ+^IU|oSH(Jpe?L>x<{u$w+VvM7~n`C=&L=pl4&ljXO#!D zvX8`5V4~JWHQ#!ZnX!`(xP(qIUr2VpeJhbK4Ud%^ZM>yniH}VM1U=WL0phZlJ4D-7 ze8-?#%;foV2OuJtj8ruc(lj*61kM|M0KIj&!Z8Htder4)-R>wMaMVY-EKg;84tQ3? zZ*VY+y{f5D->brEj>%Vn_15^Fx1MnN(-wMFh_Env2X6r+JH`=)nHeDIJx?&UpTp*o z?Uq{|Z(c=1h)}bxS&&x2N`tf(4@CJKl(+v@x&+)2LpImxilN2i{ zb_|RQ#WNQ3t^-0T8r%-a;>&efef`9dNEzEuYigt?)v}H;#y0OBdrdxbu9Tj6{`iI9 zbhccJF2ATTMcOPIl$PVsC!X9V`jB7HFv>X|4xVQ3*h|RB1TtYhCQt@rTD?a|RL0o{ zcvRh!Q6ty-Vr{08AI^2%V|n!@;j=FZ*%KjIsZ(?3(ifwD2_D~Q&Zkqy<@Tg5i=uSu z8a0gv;d0G-Fl}u}lt%T1z0Dktlnxh(=dYj`O**w6z6?H+Ehq)+tp{Dz<@2a0A4Tv5 zMCJq?h%A&Qb!0~uT0$qC<4OGcItEn3!ZAP0t6&I!@70^oRjU_(Atws@ic8_ZH$8-H zRVq7DH$-c&s}!@Z3dV4iW3YHVEU_AetnpI7O9yQpnCNTP<*~=_Ws&1Udg)4&VtflW zv^PTvXi9h(<)fU)wgdBZS_Jk)Tp zHJC2u$pDA6*3+=@uFUpliM_0nh=VJUBilrd<;O5Qm6?o>=e7yIb5$GZN&$<8U}*{OHF<8-*rP3&x} zW=~^|W_U+DO}b2s5JHI8Zm-~=CI;2z>P}N>n@f#k+EEC6#iew>qMoO|x7`i+Zl`LH zqmfIYI5Y>XTNQ|YyeU~R@Qirf+||r3RJu5(I~^X!5}?LRG?H8 zSZ+R*3^wDHA=uew8gf}uH8~>*)l<L!s0_?Z&BWwYw)yIwekd;Y$p_(ImWyb2b2#5KD?q#@SkP4z=r!bE7KF9}X`I@t)$f z&+93;j5f463w$AML)MLno}w=AHlG2$(Kk_Jb%U$DDIH`W+3g0TGy|vXZY@55{y?SX z7K0;cZM5}4IyD2NsdDY=BD`J35Y~en^a@g?ohZ4xkw@L)H217*GFOFZ@HNR(5vh9C z^Ma9kP>i5)s95|>V3Vf2oE5Rf*~`~9)U=(9#t3!@JE`x*rZwUDyyyMvr2*dRiCR6G z0q?gx>vtMaWGY}Jl|{xVqD=BKL=8#K9M-%mu$<&AtR`3wo2?kA9^*rru5>I7xJs7x zHH`M-z2O)ti|)4OL6;j)&!`{L}wxoc{n6jMUOfIlZCz-3@^&&TXSmv1$qp%rD}`GK|*_DhlQ0&D?b+Boz_ zi5;Yu_Kf(2yxx;|!YRA`z9mrYGaV=yL*&A+OdJT4ahrAXlG|KcE_V$|*QJ_v>d{sT z^L9OkT9nhgeW1#9_&-Lc1ULf@;C(7R_*kEXp~RHgU9 z?Ks|W?x>I{DG3IN5T_I(2M%YUHITlSvy2QF2B|Ncx%o~nrePb*n>&bDDrOlJOPv{V z{0&suJ&+=V#nwc7<^rU7@dBT|E|>(xx03X*J#u%qRw)cZDav9al^cyQ06{>$zsn;p zdElniX@hw6h=K#So~AStBEG8aqeYZj1)cTIHt@#TY`bJ`Q=dnoa;?qJB|IEBonzE= z5?t8!0UTHRTtp3vX_qvvyW153t1L35QCx>fAv}}=uy~Gy8;{>S$oHln-@WGyOLN6J zm09g<`oikx zb2@nfy?OLdH{LeAn^as`>v}9ec{$+robat!!4f%tc<2CM9tv|S10$o6Gyvhac``Vu zJY65CVNgmSLI(~%=@cQZa6&1o&1}MUhnLjM=N()lR1nmS1=c&qL^8UA+Z4}5M2={| zQ#Dgvg-S^ZsE0>K&jMcFK5U&QMnsZ)F|o?~7F=w)N_zhjab*IMgDUI!3>&vUd97~1 z%IXJ-yB-kFsCgnwiVo{-DU>{RA#Ocwk~V^)t1YT`|M}Syqed6+Bl?`L}TOk?BTp8_(X%v)Uj3lfoZE|Zf-V)xcjpm7+pO&K1g@~ zrT_!H=iR87WhFN1Z|*!8vVEu7MQcdI*k7tSX#%h<-rhb~O68QsC|%J!%fS|75ZYbj zC=$u{6eqJsI$vuiJRK_IxU$@3)tQmoWBvhr6DFh`zi7gam6)flpBRl2uAsWjYZt#|1XhhPEp|^BIF~zXNpVK6WH;#5qZSMc z3&tLg6MW2-^_Z^DRk37;Jo$zWXHbS}^Z|%p))LU~DYd}h{=kLDqZ@9YEYqrtaC%FQyk&1LeYdXLUu zoNT#ci!;;<88y_)R+ZfnF-kX!Tch6P=dKii-=S0o*{xdO)jnd3sGYYTz zl#VVsg@~vLA6^mCWnOQZT1iL8q(T_PzKY0#YV3EiZRi781 zcxF9q+&pMXPr+rzANQL(+zOyQXNWSaE1Og(OXs^*5!(6q=IN4SbD}6iv=NlqLtju| zeE0-RV(R3%t(S9Sr1rqAy)s|EC514f3G)*|B9aob0a@|q{h;It#OjsW9i<+VWZ1rl z?rSsTBAP6|pYrQ~Jibcid8M@q5!;PD{ zH!B^y+RJrZ0Yhp+dqz)SH!qdDgw=X9e4|f*IeHw;ZnM#HpYL-tFIDQ5vFq5ohRf8hguXJ%h39M2K1HI@Nbll7@r(7BWUo0P zb{!fEj`u4Gi56z2vW?JpD2zDxwLz*i<0 z({ng9{@T;bYwT+0RnDEnSPx~36{~0GHQdA_x^o5j}F0; zeIqKsBRp`u&zrLxmud_!f%z30XVKCkcFVy&u7(xN+1xJer2-+^jW;vsZc%-6QPP*u zbEh*mt6ZRCTDn6DfmqJ9Ua{(?YOd+S+>e|rajWr2B!xLc1d3$(+5#u?`7!Z}8n2p@ z^Pg#xuM_*8T+4cM!()kACk}^+Z6}K47OqXbEvWJ%H3X!$gO~UOFQAWfZXYx1hyb`Z zEAhl=Es`+quV1{UryE_U4-b5XB;S@0cIK1jC-=IiXSQTVAH^dgLb#M*aQBYPJ+Ni# z=Pg_p80O+#@D?Wo`(bolS)Qi?%1*{y6oF0$Xp!&PQ7kn@pXg(J3s}XHJ-#e$@5H=M z@KMw*E0Z%1%IlR?LwD6954PcyEn8qGkT8_gSt!tAd?b*z5ZHU3Wc?PI92RIW(u@_D zjd`ztuSZ`l+4DAzBBKK|lh=m5Iy-=hq1bN=FLAkQ(7_2Id5E$y+*#Ay=Gc&OP1%Of zVV0&8fmdp=Xr82tlPJ_-#mQx$8!G7O<2aLf?OooQoOEu2h8HEFBAR$+z7^@V(4>Pk z&t`q>f&xmnIrFbM{|h1;8Bh$X0`5aOu}1?-jq|Ag0Blfkij)v1s?&%t0?T!N@DaH z)hB~K2;0foNIL?dvI*^b zY%~krhj@MRnk9MEjvk6~jnO^P=Lc5U9O|_;{+Mwb$>BkhNC1@0EDCXv8Y&2?T{Vb4 z)y2|4VhMxA6uDIC?7|nCjvgKllUP7s4fWFy~3W76804->NBpQ%?!AD0n zrGt+R{0hpN+xfJi09m3{eFs)uv18Uyd&^vsJKBs9Lw0I2>@{5MvPBjxwTj1!$jJ{g9~_ zKtuH84okZpST2-KMz8T^2$$#h6K=?p&c3wmNUAH*J#%1JHP7r;^ru=csbxpt=-HCi zqR2Z$#sQPmRynRIhmo~KW=C*RET@pJmEl9D;}fIeaL%fCq$LyCp1gG2og5Fvx4Kbf z_D!XxI6>Qcmor@oRF?MgU>XdlXSFh%`_%%mw%5*Kpq-*Hk3){X5=U)oj+YT&MFUUk z8t#!WP9hvg<{GMK8nMYS+fyNN1Iq%V7ZL7j1@o|J>H^*pVux|E6Eo9T)`=(#BZ9-1 zi%efGF6(pHiWiY1{hqRp%#=CzG4HXxhsyN&q$SmNqHB6a+|De{0X;?~GT7wODHT)6 zRJI>s6=zoH^p>PsT3!Y_*;EiKz76tYUcO3K7*R9WbFT1b*`1e^5&n`?3i-7y3M8Qg zE`o(1yZC=HmWc-N87(DnNWBS9CF`}uN1DJVKkX{$<;XQTW}jHq^aE(u-&JDCGv3`voz>>dM2vdr?0 zWVh2Br8_!IDS^WceUHK*&WH2%h%;njd9N;c&8l%nq=jtg?Z{0+NmXSVC`>;bFqtK` z83!0x5_I2$LXXI@fo!yJ1C}amPr`mV@4#Xo*kcfd1F_MI;s&#}t_yEP#nloWD>&ZX z1AZ@eF~&IrJ4eJN2Y$_dlO)2i%kEDloZ$7%kL2Voug(JXeo*30uZifn*#oldUeok5 z;hJPfPP?trtykd~#(nV4ZjK;#{8_YbvkGYoo9%9rWs%nj@4IO)xo4Er*9v6 z6fU`ECs3YDBG`3@75TWJZ?ZsjII~EV`jN;{9 zXqyRTiyQnUqrjJpCfh*Rp{@&fw>FGb3M0}l$|86k*>g0Wk|!ZALD`-d#-KW&E>0KylK`H7jb2girLoY=Q9gJ^zIQ!-`as?7#%z0A_$62H3{kM;=J6)pi4t7 zOBXnS?$z!uq8>xmvB^teQ#Hz-B^DOo zoldrr%<6*{S1f`sqUZaZ_g&Y;%jg3%U*9zWYA>TVtJN}hnQe1CdIDuK<@LgJvgg6B|p`oG6qQMcrMiM;4 z_o8P@ZpPK?@$sDKfu3-+`GE zwh#{a25*K=N!qYCj=Xk&>*8~?Wox&w;?=P##%9uf3DYUVp>FSl?clw(hgcOhT^VV! zZH#^umE{z<0(B2s6~)Tm#N|XfNAHOdNz}ANIS>Wea+}GRX(%xgr|pJAS=6RK;m1Ui zIAg?`PtZ8b8zLkdnh@3G**G7STfD?lgcmx&Hg!#XYi~yYdmnf|WjrjIeY&n-Q{Z$H z#YJL|gPnx#PL82AUg!As(79LXNxbw!6)_FM4zZ{QSBWP&&pJ|o$TN8CIa}B3TRPIz zQ)@y47bO&zd_yus#Zg5`puF-OTRxJh2UFEH$9#7YACX zFhIzXMWQ}e3({$qOh|wIuFwoy`$>T#iu>@08=$OX!BEs=QAn@{Y3D>d7g{Q$0mWwu z){Pz#SEj*-sY(kbC5!qj=jH1opoQ`a*t`IgHzIpzz&IQb0+TvVnl;IyBL#fR9K2UKKnaL+2H+ILL&itBZprwXJfH*ULTU91bf!j;*WHbuu>CI`wI!w0F3 znKT24?oX*7kAR7x2Mr7aMC(r!g4&(xSLmAgIoUS#;6-A^psu9Jh3h?Lku#HOTH%5vcwC&jH$0xa@;FUfpkC$_>(Kx6}^cTSSFE7lEP%SzV1E{Om|6mEvP z$HVcQZG|YQdx$70!hn-kHaDY&n#UwzySV!`RP(sKenE^?)!wutgtXIMqz%&gHj;O} z5jb}x$MS#_&>9opBlnZUcT148git@evW$nXWX<0WS5h?^AHEK-H}D#rKnC){Qn2T= zHrmQVf#&rgIj@r-6r%F$4n`4%XJgRwrK5gdV0hw!idsz{M5_5CNyxi^^J94@TtLiz zAql+0w06v9cBc+BDeYL(3j^!cAbBG@P1jz6f=%(X?BE$kVT5!%p2*1S<%wZaHv(V@ zSLC`xvmv8cMwxgbX!Z)=3Ccc>dAD_N%gxmIGSNNVod5Ij7v;>Bch8ByPa%&l-rGDs z8jEWn4%o$4htF`k9uI>15L+sXvO^ig%fXu-MSO#n+=7t12|*JclpETw;=N!n)qdLd zoTU-)EQXdjG4Z8%EC{qt@j0gw+K#^G!-2*y_ylwpGVJD+vxxXDR2%lT0!mt56r8Km zbEbV_;T8q{Na6vr6AcT-2=j~FvSt*pyg`h}%I)K9UsAD($9CSb9MNv!Wl!d`&uSg} z@hVMcyci}&0;rhtiKwzR%~y6tu(-0O>>21C(X-aYj0y)HR`pZ}%gHpengknYg4bA{ zH7j!1YPn6DC1^j%rEPzkIQVo>6DjA=FJ4eQnB|IP@PKg-V+cnbeYwQ$p_y-=%~*;7 z#sTPIa6f(}O2cFl>BmvH1CZrmn6?FS7O`o>`syWn3vp$P5GnNh~tkMZdF=wAIKn3a=dRM0o5NM6=OeZ~rrtzK#;vwklu+DnH zNI|JQRS{S+Vpzo}Gsdv6wX8vhJ7ttzbQvysj>qgb!^^?ysweFwK!_@vxAr8SMhxU~ za4MQT&UnyQQ4iFeY~H~&#qkcy4&#ZwfHYpseu19S+$AAjKHB#!hH<^*V!;SU8HXs@ zp;jldM(uK2xobEIFN+v9?V*bZtQHQc=&K<;H3GQ|e3#;D7J$|z-gwuzxT5r=xa9GR z1xR5R?sEf7RYgJEMpEF_%oZNEXNg4=Z~G-Uz|`%6P|yayBkW(GpCHO(5d2Tbdsf2M zqziR4PZQ<Sj9{+fV#12 z>n7+m_HcloF6TL@ZMjpfVBk3|7%|7Ff+|^-P@VOt91I&N=JP#z($z0sdDx>)BI$|> zSvC_dHe&XXaCE|gV)q5_jYrC*>;0Z>6z3-MT(hH=21T+1R5`2g2rV2lHklNL>DT=fn&4UU-53@>W$-w88WB@FH1}`YYy>_Q80Psxb zQ-5&`6Pk>X0_x$2+JW#lE)Vkfk>@+DWU_kC zSuJFl?CFYe8%U#1$;#+|66-aK?0v&-(mc4z%?m#pVqm^voMSSt(ski%OB*v3Hj(t z$fv%^xB1xP@f4KTzSW4TJy8sPJhnDH4?{QI^*RE_!=6zDJ&mS>0H8p+0$=FTdUg_M zlw02CukcYH=U@OS&l%FaS9s9Mv|M@}(KL+bX9|cGn&2;4cV%~VnWfocd{>9!EYwlQ z%_bw}_+AM7yG6D?=)NZx884jP;=r9RPIhq8!XYG7zLZ%Ibmc&udgIonfG{N}gainr z!(w`eWN%aF+Bcx5WPJYZw$(}vX%?YtXc1o)kv)rq(?wc#SPu}7mfmGlE9t|LOS)BEf+?_ZnJTz&=43WG z6LC~~{RAWw-;~eOGlM7g_I6-Ap5^rGcVx;BQJDxCIgL`VU=4Xp8nP{<5b@DlcN@ajLn+FmJrHVHYS92I~eAvzL`E?)j)PlG_!TU&zRwLZzhwHEmHn z5mT&(r4dgEC>`9NL(f*{p=WugujU3hL+nlIXd1`7cCI~ttC=Mu!1pqSXlJmiMmZTzvlGh$mdCFxUA3mj9s_a0M8c#OZRoNjyW zwy1b74X*v2N@0tZ<`u=>Kn#$&UwfMDbpv6u#;hUfPxs7JY4`xS_rx z=c9XUutjRUx})G!!49Eww9PP^O%c1PWFBJOB#;Yz4drS|todH;NU5vAA>ySPLxklh zf@xZYzIeeRP1bPL;liX?ChZYfiBqdcl7wj>`@m8`o=^D(A93^`j&jkVd4|}=i`)wz zOYY4Dria`lSdPyQk15|F)AsiAwLXS8JD3iCR>AaI8n}h>$u^-aOf8VjpuOFYTQ2~n zi%MYL;kDZH>6tEa@743clBotvty8>tqy$FJ{eXNNkP{yqOiLEROA+eO0z%1$!!sjCGZgl$cZ?^3)8n7>K1-8IHP-n zDm=tKpe=16OE!el-QND3MK<02kRCrG^b|!b2VP#=1n!w4eX_>3CD2JiSBw@;0b9|4 zZ7Q?H3rJ+j5-akZOOqGmJSHN`58Ffo z!Sg1Xb!v!pp{(pqS~k`9sY(q1iGeT|p-HFWy7|43_X7^*1+8Qq)ar?XD|ZWwtGE`G zyS`1v(*5PGFX=en9e`OB3& zPSm28vf`1F37BiN#Fv27x9n90SS$>orIQ5RRN}1EMWU??mUJ0seZ?eYvo&doOoSM( zNVagB)MQENNnj}ld2F5r2a>3dvo4>X*n)bG6_@LPGtXLJ;)3_s6WUi4`eu4yL0tXD zB>c5mS>@$Ra5|<@R9D(yOm=!fS#r1dieo&``woD*02{h+@rJ3&3urD(o{|!;$(;3* zauIqM&GV+8_Qv$8Jjt;mR&wYXJRtMKSPNANK-&<{hk|!vK+KR3*7hu-C}yh4&kW!_ z=o(lKFF+2a0#ULA)l!_GgIrhEd>a^Sb%ePO*nA-Xv`~(3V%b=aH4MgMk!7P$! zlN6~1+Ix^L_(0$hcK40ci_IP{)8uEbS1aE>L68pDY_;<4$gM%Ut&yJ8oI-|zJ7S7% zA4A+inQSsox>#fGh*{={cbkH(l&^J>@r{;F?yzp<8%={19lU&-S4(%i?39ew;%{$Z?NF>e)o85*oaL6F*=Qy7Hded+;m*()vY`a+8uT974tvQY zh(pO-nw{>$5jh0Z05k}8!3Am-0Ca%Xp3H%Z9!f@$Km$?g*#cfa zXxtw4GcNZKL8k+j8h8Z*gj@AQ-kHIgRW+m&_H(5{=W?(ESIxzcae&9Rb{n8`i=?J8JV$zs(AX%5 zL}W_PTNfiQ-_-~J<%mHTy5#3WHbzm>E9A#dE0=FmSKA82gM2#( zB95E)L&^a8lCt))^a+Q}J1={nOQWS;)Ywi?MY4QSxx9YW!!~t~Wfx_2EGr)6&aes) ztC+2my27rsB5lSC&AMSeW|+8n_hOBz$~bM)br!WYchk;?K$1MvKx4_62GI@Y3f8n5 zUbZJ{u={8;y|+Y<+|Kk)S4(pn|Fx3Wf{WC(nS#unI$mv}!H8wAW*uD0%K(?_nMkV%9`p3C!OkcU{ytuOR=3-Z;0aOZ-piwJLN#58FX_u>hrn}Ad6aU=j@FP&%<5Oeo;xrnT`Rpi02LjTCb|7Qstf*D(n-f!KIG3CMBtm_@Y9f z0rTbFCh-zYvj~r=F5_KZ+PhZON3VT=ny+~FjWx2cpD}TH)a!V9traj1wZ1okRlNac zY@L92wVcI~2`4ND$2^x3^w3ifAL7QoVc)D!GgU@8)?q^e;#ZsEyF0BCqy_;qyPhR= zWERNSR~pc!RlR`TyUD#Qk>2IJtmwUdth@#90^k`y6Ij2qvcgG{!zAMaj`w&^FXD1- zqNo@RFyioyM2^KM)|myWD4y{4oP1e{^kt>5I*MEdz8G_p=SI{k3jM^%phE{Mh08BW zBWpW-g2jFEu^8_OV0g)(T|vQvM}RDELBZ}Y2Cz2agv#?`A0{5wp!stIi;-dWn>~O! z!MG{_2F5vic#{0$g_@iNIn73!3OtuL1Ct7xg(lcQvndDTEaCS58~pik>63K9cHbi` zOM*lIBW0G8+to13A~Z2KRLqLo0jEyMK-7fNgNW7{sg*qhr%`4?s&bY>+OvSVj0`bIpygEzex1cfp4;+;#+w9?c_l%yElU?OD?n>a{P zKy4O79`LhH2p^HvLBT;|JA=n+an$<=`Ap#L@-uT-AA1%;gqX2cPi-%zQ$U|&4uQ+% zLK(h!^yY|7#A2=5m2Ai@vz z$;72Q`n2Mh5D82TG=i)L2NyLvh6sa?lRpAAdB($ayF^%*5fjfI;KMgUDBVlfq|dmq zNcZfKTh&{Mr@@5@?*-Cw-m?f!S%Q)EoO!t?_fS_4+iT3%19@T`^ohKq$Jc`QAb|o> zw{CjH2m%6t$pMdgPoy1C*G=c?)96=(_}bRDtn_hsMNq-QxVuXqP2WR6bl=b$jEQsuF?CKF1w<-nh7t&lqYAJF_}1$e}r+ z@#-bgAmv{F=Otq6%a1>$M(79C&l?zCKiwjvf}I?6Q2;Vr04F{n z9+zsG9KLI7%Ce_P(tUF_5;o&H3zoCY1DO({`!idh6G7a{7`#?y%>y93^ z$=guAiidIOnbC}K-J&a(15at6pk2%X7$2tB2`{55bAwpR(LPd1pxe!@>5(~%0&Mj1 zxosQ@ys-zBHo{VZTL$LIrtuh@5MI{UTp8U6c}1b~;`MczN?N~Et-u9CHFc%9lrwyO zDW|>16#NV=@=&;tUqv|jBf6J=lJc$$oeU%HoES`V6!~sz+hYVJ&D7@ilTK zt8re5Z2bNgXDj&*O_BeBnTdZZRal)C_ygKi^ab*ruMP)ec zJrIyzSyVg1SafgrSgi{TgfZV~VOd{|K8VMb0={Rxhb5|;PcZNxZuf{GF@eGy-g*|Z z0B0<3qAB!H-lv!TeFBlOYi4ZB5?WkAi zpu7}&Qk}*zPo3aygB2nR{A%A;K2VViW^ArxmRC?B3%6_+^&-NUkQ610)*d7CrcU%R zI^Jc!dm&HbAzR!_K=;FB^Y?;C-SG8O!amxL7bG~o!J-ueO2UafX+eU1?y8lBrLUj% zdcL9o40jl6wKklF<<3s%F{X9Ln9jRkHVI!GecWhdF*IrlQQJHEq8*wKVg*gXaq|U2 zl@Ia(KfZLJlkhwY*gBu5rWu^?VP3bl;M){~wRe)69^Q|)d$sUw_1W%u+AEA*s8Q4W5Sussc#7I=PTo>TYQk4o2OV*-ZhG?_~obC*|InoQ;v@+f#WPanl$4 zgaHz}QTefiR3jmj&uD2cNMS%aiJE2PN&?OGgFByN3{>(A+<21{5A$-oeEM3znQD+i8Oow?%WO5g_dVs9QzsGhPRuFrEy@_rPjIE+tRVdcg!g~=bp ztmA{hs#lthSj`JJU`KGky{PuOr_}@PagVQQ$Rj}AwN!oMQ3$d``+!kP-~pCIKdS@` zJM#=u-90kmRmOQdsF?4VP#|i?(YZ748oh1CxN$4x9lX-w5s)SV=EwUZbjZeIZv3>8 z?g5yX!pq}6XDM~F}+=2rd6++Qktj!1*T;R+dJwQPIFQGz@) z9w$on@Yt2i0xW4fG%PS0e_Ys??0&<5igHFog8C|IPl)?H=X#m#!!V{jSd~8J(KP>> zDY`K8t~YftR;Su}fJeQlvZWk*9is9L^wTc4H)-3`(OaGPURE^I_idYb;#0n*;N9M!a%z;bqF86 z#+uk|GZKPbq3qGtLnq=2$|j3qf@%z4RcIX5db#Q#n_G7FTA%Vm!#x*+6}3qrjBhmg19RqoczJemQr>DWxURHb6;X$lTqV`51PsGDS@94kuDVmc_ama zW~liI*-cHpDi9)Z@S-DJS%;-VKiL;xDhp#PZY&@sWtZX|dJ!oIwxMas&qcl5*i@|_ zz`VE?wRjDYE<@Xb)i-KzkSK3^O#loYa=IzncAF4~Em|5AaQ7lQ#J?ZnM}~$e=uUuPk9})GElOe( z2h|xV@^V)$ki1nL85KP=L2PBTWZ$5L7L2@V)3^6tD8fVWLel|pITq_^iS*e;f6I+W zo;Lcfx!$A%2o*n4m;tH|hj)v4`bLw{OgdncAF5E1hv_;fk(lCzIUCAbV1T9!cH`JD zGey446xxWSbI4s-0Hha5!g7ys0f!|;3eyqrkp*Fc1~kJl5^Onx#xd!7NNRRyOy|R1 zB9s>qXhO2CG4$qn2)~ME8JS8?JvQ^M58uqa|J2;W6ex6zY=V~9#baEya%ID4-!PcO)M__-()tJ* zj#SqnqDS=6KwN710c+N-UMD`%3-?e_>yd>)AKrfLRm?3V{Z-&4}xWgN!j; z%2tMMRlVNfi^u7wUTZdw^Kx}oTT3jBKo|8q-)Zr7uW7jM)UCAJursU)b;OG7v1Y24 zvsl=)Vi+q4jHLxg3kua03S60pTTAaGboC=dABSBFf?DFI}h!)IVF6<$w zqcbEn;XMV>L5kP0C*@Bz0A!@j?dClwC&aldbQfxS|iz-nHY>Q`5s^ zex63qkrAbk$AGM{;lsE&z%pIHEOny8y`2jgx^i$Z1_i$qzRZJdY}v$l14g5ToEBx? zt5@uF_m(sXqu;If;5;vRX22L{n;?Q754O1U(%$oN*&5;Z+KZ>in7Rzj7^j^2%)2Fl zQ{4-yNoMYS44a9T!~;+x;EVXw>R@A<$uw(6%h`mYS2UD2xiT4CB^ z>qeLR`qc}4*l#*tjJ|k~3jw0??7d>>nKuv#@i^CXYyplh2(%K$!TNZnG`p@e8)uI* z{h6%isc-oh$oK$I)+TZ`Y?1l<)uAdViJ{U2VlI(gyl&ov&ooyR3PB-lWAux z5QlYm0iKg@J&D?pMKgUH!|e7J7-MauauN=$#q7AST!Ctu)TO%SA$i8Lw)Q$2RUY;% z@(L#h8eAi5d8NDH%5X=N;Y!(v+-fkhXTf;3hN8`@q^E0Sv2U(N8Wdlnxl5a4Va@ZA z6jb04j%p2gZQ9LRqqJ{n;1=4wsDnCy6Q-VyRyGfhr6v=1?!v0J;d)ggBIg^=9VlP~ zf}Yn3ELPO9du!MPjgl4edg>JqD&wQkW2zy0CG%cB1M4dV2T(t?RqTy>yl=61uD5ds^d00dzcrk62(6V$9XAWecqZh=I;v#H z8)EmSxkje?c|@!!iy-<-$BUdEO>R9>sdiE;K=o6x$J33(bhd%Mb#1NKYj1N4geFek zZcE(;!lFgq^Ws_YL4I>`y zAEvRx-ng(_Y83FxLT?uL5|9Q?arTV0HYk1_ES^c-ybuRyg$M6;d?cZQ>n8B$1VBD8 z_eb$EFc)dD*wq=7E#32SCLKl!}GCs8c&ha8%k7S4}B=sPe809}f{4kYFn7u(0|Kl!^)TT`Y(P)Ese5 z>hya+0=HG~`QSiFaff%lydg!>u&p_u^Tl25CzWK$x+qT1<&0bgMlbPowS_7;ko8C$ z!#LflWAO7?WK?iaRTZ%Et+J}}**euEFFj<1J4Sn|&##_7Qf@CZ@c*xJrTD3R9tLBnlpFK;GS*IiR z=W15sWPyT>uOEYqky0q3Iy^6NycBxSG-Hf;`vVAl@NiDJ!UYe(9}btpiaAV`N3XZ^ z+5WM|&!X_2M@sFBfPwZNlcYT-wd&9m=C`Ol+h zAzV1Z3e`mGhuXM}OVrC-CR$!{WPAo@u*pCkj=MG1-kfZYT+0I6chy29Uk?(#h_^V= zgho)xR#T(19;9~;UlHr7O)T9D zNv%-?05^~A$6AykXdkwkNv*-eb|PsbEB7p5Ksk|jB4b*1?`!wG^`E@v@)u?xdU7C1KiA@g^L0}QeXKN0U`by?7esXVqrdC>(4&zR7|_# zmU8IV=52szPuC!1OD*g4nn53vY_-XIP6~z>M{i$-7<1O(rH1DdTSkR3$0pd0%ZEA}eW^~J3%0Np+< zhns$!L(q?20dN^Prq^D*dtIcWC!}s!{-WbfiN~_tM>OORRD12|=btJ(%8N>1@CssK~pvSqL$cD`q5_?T4TH74V>uLMaZ37neRtNDc z33kE}6T4I4Epwl|+a#N}_AdQb7Ks)n$@poj%j5=AE$)(Tx9%DaBO)db?$!~3nQjZ< zl2^G_@EB^DY!2KWtmQq@PTh1-DSepFWiK>=fD~_uEtCcsENC1bP@$bqA8?OTI)uMh z;O~jCrntspD%wU1vR(-)0O1S9q3dRw=t&zC*iFfG-VE^N88g%yKjgdn;KpkzIeb-&o+4g z?>Ls0sN+SJ`kcev)YB4DKZ*R()8$J~&pdc^y`D5-)deHJtqi;05$#Hv?Og-hS| zlr)*qBhnar;j_rK0gJG=O#@F{CWX2F@>! zQ7FQx*Vbg5m5!0!Me*v9^n|u5Ib6MywNwN^$D6SQgfMBNYsH2u6?h>%T-jrx2~I@- zXp6OYe&ez4WlqAAmzQJNMHj|Z^6an_wHpkiSMwFRg4J#L(>ifRk0EnXMX}3z^_(Ed z=5FKl!vNfK)XOmSoR~3TBjxycGucDA^J4%g>-M zKb0@gZvYA(V2y&D_iQ?Fb|+yrdaFrRKvUwI)S!N2VeV(@piene71w*17j6%{({@DN zM+OCoSEPZ7Rp+pkQBCHZIO|hp5f)8*j*Hl%3!(LRPS2@5mvaF8yAY`8g43u?;Ncf0r5Mbcs)|I;_WX_vWgt-nNb1L8NTso>8b;hJ&0^dBzmr+ z+JYDl(hzc1OrCbb^26+9k>c9LNAq~&Qu=Pt!QjEZKJj`))7$XWwr~?P*2Qu5h-)q+ z0Tg=4#q$VDqBNLb^knDis4-2M!D<UneYJB9153U0%>AoX($!Q2gR z$lPZWqz2a#{u(;H>)`cFRM_H?tn+ESm(*(L55{ifDZQ`&=oZYBqaw9%7ho{WXa&1` z-Uu zHOr#HHrdM9_~=1vvQd(E_>L6^YC^EiOX62Wl8HWoQ%VnOQRUyIP;|jxT+m7WHVbu^GQjxB=w_^{m^@;It>rs`ryp<)L=>o;+`|d<{{XuQRqyX+GDn zncThRv^+}B?djl45{oNHN2z;wO-S?5Xvg8f%S=V-(K4qBtq@Pom>0X;ixoK{!)t3> zqS}YyK@T2{A9*NbE|lJsk?$xuSm?fVHq#DC;;lhrWqa{qjtj}IG< z-P=+0+w9m)yzq_Xc=o`Kwu*%z&!p?QCy8M_wh8oSH{$qf8f%Gq>FWjvjq1ih(V}|K z=9L!Kzz(X+l>y!J_ECGskbNvH*uiSG?r++4Lr@K9F{VIy!_)wKb;`{eGj`S+DIHzm zFvWTrRS-!H5|_ON5>OTq0z>bJK_yg9j5D3|ZZY}2;Vzt_7elMn?>0fSkBiI^AM^>0 zG$?v?tYY)I3Mi5BFt&o*6Eam=>)cy@WG~+%O%a1z%6BxOIMb(^W?34um}dEIP|>1p z_c4c%GkAl%SMZIfe<2FXS+Jn;I0~SrEdA9WbuN&UN|&xGthJD`LDTwM4FNpeCfNf< zan*xUYk3wrYWc2E@L6ykCGIE%9^G!}J>4CZ#KNX^B(keJJL8;Hmq6@?VK05_K`>YI z>7Z5zmNuElgrW^Mr#GtXiZ7zqpa?Yx_e+>c&DO$EHppD90MmbW(M5?2HCTh0XOj)D z$Mg{iaJGr@17=gMF#zS`P#>7XJ)GQP;X4y|^>-2>ni%rJ2{L@n#ih4>*}&8L4XTEm z;pMr?yMjs+&Pu)wp~b*4TuPTz@sxVDfFkv9!EgXqOUx*y)paKcEv)Pw+V;E&UzJ-4 z3o5;P`(y_dom)~Kd0NU%yI!h|grP2=V4E7stm1ptk5g%-yq*^?FtggzAYDqkdN&>Xe3*ca!wz(=2a+)O zE_pIkwnW6OL1o@}H4%mw639C`Z@p0=R*3<& zV4{07Zk(w?E*#^lJ4{4JEVc~#G)m0L7C7$GlM4EwyrxVMFd!qldQo5zJE%L+sq!<4 zH!_rTir7=pANW3h5Tm^d$BAJjou!1~JDTbp{+{l3&GPmmB$TO_;nF@Vj;L zu888@t#y2xWd!cP%rQOz+Aew>EaLAJ?|Mqsd3>4QWLHn?JGZy>y^ErK@1k_Ap(PNu z#%!y6J=Z?ijZf#{WXC*(G-MuPjM&U3cY+rpy=jFu^o%i3OAOW@U1YQ8uKt&OXywYJQ0IES7IpB%c7<-8p58UHajRH(ZpDtSoGK zHdPsfBYT%qv?&#=+jLoWaj;Cfkd~ z--!yO@9S(2rp{*scy4N#GZ5p5fQ6ow**N<83(VJe zLgxmuUO+Zttjje;uM@7w_bI+QGpdTn<>a>T9LS^t67YSNdcj%O!CYv8>9NaOo#d{Y z#yoJFGSvfIpk=;rGGq@$ZW=s%RtylGDd(3b$#*aw%snGcoho(zIIP>JAnPgdG_cZ7>8W4PLQ1D)aJ=ZjQ{9cJ#8=tY7VA8-BfT_rS5V>&ZMkFm z1auaCp9dDVs~|nmSdUv3p-vlZA}$a^d3CcZtbMYVd-Fi~@wC4ss5gxLhF`!NhVo(p zm8#fIhk?AT(rpFh2^qzAsJn(?nJ9hR zlL{}nGmR5x`;nERcgfA{jwQ<{q$FREQrXn&9XHdhjoAVR3MF(QtI2$AlaVt7{!8}U zRVFqHQdIZMgJX-mLJ4wp^`XK+)j^r1n=*&=0(#^Es_2x^x%8A+x}$^KxUnS5>=>jE zjIc*VO;77i42Me$YXs)VF?{(kDPV~kY|bd~kd3Vcv!5)8+QvrZ@i@I)bG^cGeE(5u zb`?@aCVF8vs+(lE;2E4*`K z#6o$ajBmIbVq{ph8moxdjEg0P&+I^F_NAGj?K_WxYIBX`Ef=72M-M2%cu{L-&^Hxl zO*g9#=0#@=2}C%-3iC{at~AlZEwTuHT@~gW30(Q|9$C&2*Sn;1WAO&@Scp`Of!n(4 zI_7z=cgRyX4q|C9^Nlgf56`Ei?#R*>!kl|>Zl(>o@wO>%C75lOdK(^z3#ADX_d8+p z7~FOD$LEom8;_wdDV}*PtVH@NrN+}7@Oc1xQTmeLbh=*?d+Mt7CMWFTMa`R$5j0m&2B~OMMyxNRxA&q@C_mFiZW1NZQVqVsAUEz_*5~sZr zH3(aJrvg_sItS}BrD-Xu+Y81cqvTEMRO^R`i}(5+ft1q-oIz8bLB!PDn9R9)L?tCq zlKF$>+fHkE8<8V?!9zGrPZ#qB7ukkR0)0%t1KiBP=FUFvm_^Q>le%X*br zEf=_hkXSpoS`^JeZh_ZGlWHzHMW#`1NN9QtvCjlA)tn9rYOJ^-TsxIM5+DX@<524% zR2EDewuh`n+$I7cJuX_{S^d(xMvlwu#QEvmL)B`{=eQR1Xd8=jWw|eLd^qZ$r0|nc zrY}knrWB&6r?b);jB=T4#Stwjw$PUY7OQenJ0a3cA%ho#DH7_%;cgjbw|(i`NM)fcE`0mQY0-ST5@VlDJr`VdDV5_aih15{Zm0%5 z6D&Pt{Dgv;l;>4Bl_>W)#W7bz`KncbwHq?ln4Ep@r2=1=2D8i>bi}Jk12+UrW0W&l z5%tr%5QSEVIRIO4l^4!!ikL{*TjG7xunu;#8Wa&Taww;K@)w1?UvB8gTMyfy@kM;$mn$96IW~;$N*4js?n}$N+sJA16Cb@;%ZT5{obkP z(^pTMYjlt9oau6bU>iFYqY?2X!aGokO|t`oml81r%@k%CI__i<71k0Gfy54|aG@B1 zx$l{;CK=gFPvOpIxzW0FjPqLQs31DFP#62;oof-)sCLS`Z4fV?^N0kWTH0v3M|E>t z<-mCerHNHNuVgV$7b2R7;h_p3wY}uHeD4v=1F&*S+>wLOG84&*N4+D8qFg+yukdob zgdDPs7Iz?)F#K@^)s=#Yv2cs^a0{)=M!y3+%+$P5=QGzNxCpD)V9o$!fj#6SD)*3C zn%Li53lGy8a{yRG`?W47pGin3RAty6LcL>qGmJ(&(+kLy?kB)1XKKm856D9=LyEP0^3b!c^E$y!?kjDDayXE73j%m z(diG+Y~{Tt+CG{0k~P zAbDuz8#)N`oRi-3AZ0RS0DhQqLtuakd^YH>cM$C5b|IFe zlqTa%%}G*WWi;#-G}XSxfX{D*H9#B7A#b9GUUeH|>q~^=IzDo(a+qj2><2px5f*}j zJ4DKE^-kVFK;Ix2Gbw}~#Sn>+-1_{c0h8aY`q2uoyJ#JY;`#tlbX>>tV8_10jG#A$8}A zt||~`TboGKeV)c%;4kh8urNoJTyg9Uw2zrf+MDqx0xU5=xP08JSGnu&#$%+k1rB7Q zw_Ooxng^b8v=cDi#$$1^KDH{sVi2-nN(3S$h$bmxOn7)(lu^#&2^bU6 zo~5bNCfh`mSdbsjvcrrdd{EX|xg=sdb}LdW1x1FtvcxyhRY@DY3iv!g&b zuPnmGN(E=1&fwE^f=3SgN*R^V6+52r4)FQpQILxjZ370en<}a8hQUHOPQ5ZswxCit zBVfLHkrXG%*7U0OCD*ILb>!ouoy6WMig+=BkDz;ybfAUjfqPIj`@m21?mmP0;cnpZ977Rs8g3;UD9<$P$`?s)e|2glLLa`3WF{jD{mHWDwT}u%}318 zl$ntv+fx87Y+3z)*f5={+{w$8Ez0}R_5wKFf~h_<_K2p0y%e)%ZV(nu=Ma3Lk0a7J zIVfszR~&S#msbY{!rpBFh=rw^@kwU~z5uYK-g>G+^K{JrBUN3GUY@<%B@uh}3ba?i z=v9G@01Lx}q|w8eTym2hk$vgA$pRHVIiLjNjn-I&S!&d9)3pT<-$ovF_M3 z&x@5F3%YpdSGrmBAgP{Y8F49LNrCGF=Inr8?I{Yw)T@Ih4nnV~CjsHX={{ecohJ|d$xML`g-Bh2h(Dvq@CECZ4wqbSy=S2$ zK7hT8I8QVBor?CkRX)-3995HJE=aFO`#ep|BfRylI+ndqeD;JD;_*Ix z5lM>sC|POf0Z?E!A7+j~P6sH|UbrJZ*z93~mkq6tm)Ofx0V?86Z?U`zxgG_JKH)ml z+&$ElM%Ed^5)dl_JV8|C+zg|raDPMC)56dE8XF5~Q#wUMbHwm(gF#XdZ-Tz1~GaS>F1nb;uB%XRMS$k=Nr+E*TrCk)qxsR-y&^LQb~ zNH24ov>IbFO52)XfU+j(y46c-_*UW75g-{Kg99$i?tjfr2 zoHQF@<$*xDC=b}cp8$3rcRok0dphT z=BlIoNLeY9Cz1xBlNP1lyEDV$Op#@%9v&$~NbfDvMTNNugxC%7yF=^&Jj?I~1Q=rC zQ(7iorj6TIl{O-XyUX480Es5GZrdwpA0fs_VHYME*)(*$xRR9)_LO{``NF6`5|N@L zA)`g#9sBw)zW|YyGA$=&dk_^WfIZM@(g>$RltgCF6E|h4RTKhTv!(@eH|H7l3$bHH zfvop*4DS^H9tsY?DM5f^AzoAV>I4d3bv*=pR^6Vvqyy+AhS``RcAO#4y;zaUeP&Ll zpmwi|8GA^T1ufaYPNcMtjnVs&0$vipyJwXOwyg*XUi8L-`ewEco)*U{V1 z2b)&vd7BC4WI{ld)WXorg92f}*-DCWA_ah1m(i-B4UcRFci7tN_0UmVW*{vY@?a}2 z4YZvXy{n!vZX#_QMi!qLPRYcJi*bocs%W6a*^g$GP}#p1rj9PoSkx?p+R#=HDR5(Qjr z`I*DBVWFFYTIoX8F~2%i?oe!c%Z1@W&(86_^d%a-m*qo7v{?Xd+fX=@z5#XYVJK? zU+J(x=A!2m_ypf_pt6=Omg319-+3z|KzbWK?XRNIhzzCfcn~PoeEHGr!*F2N*Qo^d zdM0y1JruhL%)9MBR;>*}b-FywxNQ2J?!5(zPQT^Jh%}os4GYpyeYX>M@*q&)jomC0 z5SPBCU1`gXSMZ*ZTsG<1BA;NOg_S_c+|x7cQ6-#kY8!}g7HWLSX4}SM%Sv8keHW;; zAwm^f-3)hhmNT$Ul>yR^A3%3R_MJF%9*Do*Rq0B8%4MlDb}+Z54-XJ^{qZY!2#i2n zRt59IO`4AxjrKWN^e*xB%B#SVn+v>fF-aW4eG!B2o;6lEyxBE-1x1fRrIx}eq6Vp6 zI$W_zFRu+|U$_YSi&T~Evr4uKkNger=A2B$$u5Vix$@pGy`|Z(St!yU|wXHQ}-eF}#k-F#t} za%wm3VI@)2gHghSniKZ=Ar;9gFb$Xz(*iZp6NsT5L9vQ?I?s5NrotyAh6`@T(n0B} z{)4rfHWOs`Twe6#x|(hIT_OUcz>Cnjh{%n%vr1-;(<}jocH|;71d~BX(hH92UXBu& zJ7?ON2Sab2QVJFaJB!$vnf$PPQW)A3{F$X2Ke%-9d{G+VQ`~n0`YLR3X&3g0Vmpz! zQC0lHIRXfTAH#}ND>cXEG|ueigkA*45kV&dn4t>Hy`70Xex5p#7)2Gl*3VC(S($|s zN)IuRsg#ihK%8*^pG7j-&?(lLbQeJqHub%1zp}Fpcwk6YlM9A8gB(Wdr98H|Wc><; zRB`f*#5cy&@v&2Z3^4}{g0BpV@T}(aqsRRS)6bb;`_}QjY_Qkqsel$~`xpSWdKy=D zjXAE}Uh}-%EEg2x@OhQ9NH`cCm!gkZ)nw!8dyt#}q|pifz!01aGig|60nR)7jp(qh zW*To=EDk2!n=B51QCz4tW$`3c6@UjEsnpyI5e|c|a|jMmjS-Tghl8I%->RRT=d2Ji zk~=vh>*AC@aCEM~zC3k$8&+`dNsB^o3BJ6G854Y~5he*(Lup8NeU<15hrv@6uOh7* zhaOD4%=Po+v?8<6EHhzj0$Su4;~7qp_uQWK-trO_(6+3f_KlhPOQaHk=hwrryCPM4 zk|B}C4RfR3M_1IN2S7^&gh6I~4UCRY+-4t?kZXEAI3D&i97ffN$UJFM4w%O#n#Jqm zaPSSQf5OT%p#>G0L+Oq-YXdfTZUC;JHQp#la<-9ZT$+@#s^_c&+w2Z|3J+koNLQ#E z@<5?`uvS-9ix~VZ$h^96WFvYG{TMkhRL-A3*)9#=!+Yj4g71_-oN741M~;X}c4KM) zRpb@3!kbYz&JvQ>IveR(W0XGIn}EyZuf2laX@S=kKYP-4zUDGL)q_cXX3M&*-WP-muY?Pq^^Ntqf+vA@jGYRSqAn0?hjP4>Hk*RYQ*%()krKxiLNdU`su5ElkH?F z^0w2K(yBxXz%Ur*)ZC=``2s^c99Jk3)d6nu*wTS~Z)85o+}! zYC-O*K7J`e_)`|tkEGc~j9!$eZvYObgAoG&37AjBcw>28+3~77*X?m*?x=ZZhvc0CDQ6pIwn7no2lz6(4HfbD2JkY*+ ztqtw)FieTCrC#*x8J*Riqw8Y~O?y!>{o(ao&2A8eAw*4si#-1i2K7xWxls8EjO=;chv+vQGLm8u2w zEAOOtH`pXZPak#Dd-sTywJQOcmo*6As1n&TaYe_h+M8;|b~HJBF7K1purFFc1YsG$ zDdnk43D|)mho@!jla)!0Dm&M;l2}i?chm_mSE*vu)I)W%UM5$B^Ps``5E;GHQfYw8 zv9oozDYh7E0G^kj+H;%avGHbx@Ya@BWiQ)g3I$E`OiM&X#=&M*PyCJY<9-(}s3~H@ z-0H15;lB1IQD@YOuu^+(f^4$&6(7;0KW+mAw1oK&*OxT6V8wZZ zfH9PJ;)Amy>NBl7G(W1eWpc2!eG|iGqnwOUP3`5G{rVi$k=*bR#XQT^ker7N3o2M{ z@H~y?;Zg*xs_xp=W`K3ys^9cOz%beM<^~;T>NlQ%^%jky`izLVLHsS-Vw1{~MT&ZK zcu{#{3->y1)@MX!8fU`HU4TMbi=zcR6Kjw|2TzjNd}44F%^^6AACrpSYDh8d2A)Sz zyyav*<=RM00269_lMf6VVNgkr1sw*YpI6pdVY^v+HV(!$z9u>3P64Jdg_(TfO9?SN z@sf~ql-3?JPDTKwv; zLyHm)jGsaDs0Aog>G4AZlAaB!+B@vW9cArP`LHOH*fYsW0A4)bD;68R1z>Cr%m>Ft zEv>gWNyGhkrCKQkU^T+cV7!rDi*>&n^_Zd#rJ;lORsgW5ti*P8)lx*Cmy}OqUNSdF zNbl>FC>cjb425SE>~#iuhWX^86|_y7@~Hvt+vW@@BGkv=RU?k7oOR~!^OU1m5L)6RSerR8>SWuzB!UOC2zMar}v`tHi6GG^cbf>Ulev7 zJ}=^;XRC%Dg3q83-wzjOe$s(4HbPwbw6#T}G;=IzzHmj5FI>GGH!5cq$PQ&f8!+NM zAn91-sh8SAc(HLUf%DMNq$+#*fx) zd*ehMhR<58#*^ak0rKN3h{UwzeyD!`@p_eF&XN|P!JIjBuBCAXTU_sz=CD^2rW?VF z@gbtu6~(>0y&eo9At$I$APBB=-e>Do^9QQ8XuP6S7S%deAT!8dJvLA-Dn^ zVkgbT^j?Cg%j;O~o<2mLZJn+?%}i{qz{Xh6-7-5{3&-d63g{M~Jf=Hb$u41EQ5(ry zYoZP3T% zYP&Adkm-yY1C2Ez5H##HEk3L#hI*nlw1~Lxc6APb@RdZB1U;y|)tc)?acktZ3|Yn` zXdHg81%XK#Jn=OR$V2EPd+VCijf*cQ*&dk6U~Dk?4kQ{2u5M(NL(S}Ao!*wtY^nh%D^r@mTUsO+huI}?&Qoc7 z8xOm!)Yv)Iq@ZeO9H{LwU$v1@XlUUZkmg*1dt9s;xiYLa0?48Z38VO=TJ(|HRE>*V zq}27ojQFv(o@b!0VG?^p3tSqf;=v#qEE*Zq$s`6)9$?#Bk9b9yw-_D+$S&3wu4vN0 zf*uTOcmsAZ3M;;O&nS$=kHbj0^mV}sP+$!?y~n0jwlH3s*puLr{Ma2WT|iu~ zkFOZsz4tElHe1|6oATsYJOWbh_d@teRIS-)qAR@)fpaT>r80ff>nd8#*Pc)>j8aQ% z`o@!E4ntaJ*w~lR6kz%vuu=x00FL3Woth34t70oN^3fux>RSq{-tbU0Y|GH#hg+B( zi5w^=f>Dx?2;#*fM5RoI1=(a<;Yu69Op1#t5jNXK82P|>{1JKj{CK$yN!X|2+J3}S z#Dcp|I4;j$VzEYV-UoRMiLQj4CYh33cYs__GienW?W5!glLC7OBWe2Rl12?*hdFj9#KuhsCeljhBfT}Wo> zeH?*0av;`@B1m&emUAaZ?1**PmZZXu)>rHRz|WY;_=SVu1L4Z@Yr^G+S`Rr(YH+4_ z6s}@)EVnM?Zc=f$MwYalib5-=-}xbSK7Z2*qO(*=`GUx@Dn!rXF(nR6ax#&R$oL66 z`FNF7iEBrBrGoe!Mfy*DxdsWb~g zvZvZl*#gbp8_JT)^ut)6-gpga0s7z$5MMJTp8_=9I=&oJoTKF?KV7#6&S&t}2NdFo zs(a3099BJX0)MICgl{rGfhG6?HmW2KOAeypVJ~-H2CZy8?)9|OaZ1<6ECOskyRwB{ z{Yo_(72e~rTX|CpY%QuzJNB0Nq@SqkWGTcPma`$KiHe#~QQ@{2FFJ@{6U%#TMVY{= zA=|_J0`n|Sx|$NvEGvDCy!GvacTlkY;B{VLk4Q}g>H>u=V8Eyi^Z3jnl$HU%=j`#g zaYDF>c9?blBUZbrgKvkxyY?V&T&tVD99o?@& zF+*et$d*;3JCzD(8&BDBq`5m3OfRJ;o0zRQSg6+FK^B$9RMzx+tMCYjmiHkXuwJJVg<3%+Wx`G{DzeegzM8hGwm}YJ2D=rFmmLO{sLU zWS}@Y&s>n5y$i#D1oJdftiAL)1ysp`dneVzjpl?}o!%BdWW?JGV!Xv7-hp?Irc4m< zk;dD+(t-DK2hB0w5i}QIH@8xTs8~Isk}NesEO89F0N=MSUp*j5KjQ}p^>{&SnGolg zm1YY^VPdgi;Wr?btkR;3IK3u;&4WbD(qr-kjxhPOssr4*afH9U#z$2Y z&XxgKd~$pn_f4#S5ld+AfDpag2!uBvFil?P)J~`&rV`%5n5--Mp|yi&QM^a0;kgv% z4*4D%ynNyJn)`Ykh7`B9&0PWYBJ18}R<76!Kc_AYvRQ576G^_fP?qAh6VOsNX*y4@ zY3-EgCs8}zE0y9N4~%kMNIGq1^;8>HC_@LAf;v^M#M0%eqsQOTK*v52pJfovCAt}+ z_z&66=zEg0W0+D+Pzlf1LHPkyV~R-cS!98FMZ>8Zxizx)0cEmvSuAvQE1jqs@zAT# zcpYrMsgv76&-dw%=c^uZm^t6$C>{g{9|DpGgO2D)sLq~n)+%q9A_sANUy$5r?azX^xgvxdX~KQ#y1OA5}Fo6 z>?*Ow>@Pt)j z8ZtrPt+un63Kt$W$>4&@Q>K^VPT1H8>aNh}@SbgsS%l4K0=ek}T3C6Y>r4AahV(#P z$+N>@%NfV&!M<*=on(}8SQO@>G~R6itzF74^v)*stT|GdsoF;-(B1}d4+f;)8>$Tq zxaaLF;=r0gU@q9IeSu23datwRg=bqBMW|xxi0&YAhxE7+#@j{o&XHH%;B|6|ZS)`w zXKj>y41AHS;jXs&oyZ7!mA_Ses|r1n1WhgPsLxmh5j}=scBU%e>7^Yg;ZVyRtc(c) zSfB1D5@Y%sATSd)+e&RUgfiaM(o|?_@3eVa-qSVHEV%=|^A>i6-x8}xj5PK^sG_Vo zF1IJ@=1uNl+-xz{#unL-D4b{bhOy)kbnWZZ*LEo<5Hj)%)!wqlcAK1q`3jiKJ(zR0 zlsC{1nb}H#yjX)_D7Id{i`2Zx(LND;qLtfG1t`6Hrzu#ejlJM{Tj5Yy(f8sA)fag0 zt?^Pc`#eWWmyvt8a4KH!n$f^Dmp#GYF3M+{?E-URt0A?lnZ2w0%ru6Dl7!9s{$n<- zo?U?To}~B7=$U0wSsPKu>3gC@7NOVGNW2g2;Kf2h#SgrmnASY^kfMp_%%S(HK__$x z1fx;s$!=Z|mmO9Ly^O-eHBeXvMYI0(G9Bb zKwOi;V12a@;~_pg19^^aY9s|un;YROK?vvo*aC!FVCFL;Ta~-0`7pLN9+39fk4zn9kWOH9bu6lDzbrS4O2RA>VP&rx( zV{!r)SI*P+V@OP4W`0tVX6Qcq_}=3?OMRA*Fvo2H-5N^B&pW4(xW*nQ$mJE;RE#N) zLHav#7IU6>r(;WeN7+j`kb0f{unT|*ICcS(nwMYkVxwfQNNU;&7cM4TwdWPIBX%Gj zxpKQ6!hn(TP_WT}E3vcC<1k!)Emg2Naxa#7-rE`&7k&_hgy*FYO~PR+F@*l+lsdw8 zGaR%fx#ixY0N{Bw?=EkQUEYhaGBnP4ZA>ZPL8S1|eUoU+bwS%*aWmT1NGHT_4=m43 zHu$1MMGk;O$YfgINd^YNZ37apzEWY3?ST}X@ic$G{+-zoQCrv6y5YM9D{==tap<}Y z7@=ez4966F7OwAUchGXCG4;u4N)!QZEYPT`m=YPINVn`Tdp(+vt;w`OyB+y6m3inQle z7!8*t;Bye^y?5}|Nu#H`4jK&l_QtP=L$P*3s+$2oC&vMZ=w*wNq_5F~FeEcO6*q$? zNAzf|JBibMG(l&yM5a#=7x|rtiK4$c;PFn3DQAr*y^ONs$A?`k@VdoKAq~@6>5`?T z8D9Ccup3KL&<6U$)M?fCwDJj*FM?~MRKFJqWI*mE-VRw()O%;5*Ycj?*xWF1kXY)z z^TIK^Tv)1y_^3%nBYM=?E)Sv9URODbgEZP8VyTUX;kLbAo9XZ<$c8J9r|LLd^8kb& zDKnaDg~k%)nL>QRd}{8aKA=8(FJsnA@<9R&aIoVTPFn-xOPDpv{DfBN z3tH4ST5m<+o!LZ^J$W|F&bY7YnU4%eHw*hD(gh%p@uptq)hy|YDLO0l3&hdj(R*

nJLYnt<$PQi86UnxvK+ceSbB#mC5$ zWG^s$@|*!)MrkW5Vy?t9>lc(1O2F=7OwM9Ez3;B^G$%LKjia8*hkv>G{9|`&2@y2 zcg(5qltuZ$yTx}f>@koo@s`xpY=gn57?+iOC)5IaA4B0BorE7CBsI-~Ok21hB#)Q{ zQ>?iBA~)KAx5Hrna0^NfV7j#D0AlXMnYu-F_|#O<~kRV*yO8#m#AH@>gzW}hpDnu0p;W-8UPc;CK7jVFx<`-@>xbl8uMpSQZSFToUq>6g*A-byKQeb01+k3$`JuBIvtV zcoNh;K|CtVc6^X2B1A33OH(i!PH67&l*ysM5m@k@Fq-<|){;Hq=Rk{F*Xc$;FDY^> z=X@v9fWvvArfOY^CsNOivg&lvS5>KDc%QykVS$FkB?^*xgz(OU!CtxNECrty-|$(e zc2DHIMV5}!U4yg9=fISM?K%&knlLy391#r&O`pJP6a zc{%Y&@*&XF>a+K(UK>+2M@8vkfW9R%RZ5MJ#;M}ce*Q2KPn91af=KJX*qW(t(QQRO zjyrrLx2RKdor@V^IZsHIAt}ej=DR3WBl&6;1Y5={+|PY*{{^ z>^___NXXfT5oaFl2MyBgVvK%J-YkVgRpIP*;stBL_=0`zSx4I_P+czGB)^$T1ka15 zf!DXCQ1xP*{6^DWNAr7lmkF<5%DXhjL{>M%%4Y>HPHs^qD-woNR)?|$PY(GBW86hK zPCQUVF*%)#+!$k|ORqel>+PhH+Q#&8e<#lo5BFs^y36d!6Ud^orIPbTY{z~pP>XQ^ zNACt7QC4VW5=se#l@wxPMyYbk_B@Z=i6gpR^;`_&G+I%Zr_u%DZN7W3Z>T9zi~%x$ zT5ZP%C91U9)U3;s=hD?ljZ!@5&1{R-K7}(5ckF8B;Sz5opFjjZO4UbF(~3rAO5MPt zr-2)GQYDc3aIuI^LDH&hd^}!0b{EjMIJAX23&ZMKjnXrh*ULFNmTow&&#Ck<@3|Pi zjHnkEsN^m2>=7JGaw1hiO0`Qo?OjHDBm0PgHYn666nIQ1DKM;pWgoV&kmfuq$UcoFD#&3)}AZ zTv7rlUzX;u5o8ucr9XJDhr67OEvMsnI^-00P6><9aPOB3Oh^h>ec{-!%DvV*qBZxN z8utibC@RZw#>7C~!el4w_108vKfQTD3I_Kksa(0Jz(d_H;k?ndO~MPMRi}5EwTm-w zEPQ1+ILp^J8=Uk!XKQycY)+6s8xZZuDhpX>it_m^c9p*P5&r~7+WzCV?~TLkxbFj) z9YrrX00{xjO$)WaASu}cBhVRgiG2wWVDg%iSm5=@)@Z3yGnJ`IE7%HJ#UKZ8a*hSD zIN7o-x4Kc~UepBdu_%(-^JUr^ty~DhU?rx}T9xcac=PlY(Ub*K@Wvg6IA)Q+R37H8 z^~HlOOE{pM*>uC(y9-=vT5;NpYEr!d=w7__UY?W}TjbCDSgmQ#`2-;0pw~4F?AVQx z^~D;*toUK?aJyw}GLRU}M$#)dQhebT1KCBi)(-*kU`DhM*Oys^lj&)Zl!-|=q?X-f z(MCI{_9R-ZwZWC4r5~@?(@>?PIV#X{vD#ep1f0&o4N}p9;%=HIMHYSmgfnlNLTcjW zd)oLUL5|Lz2D;#a1B18vTLK>}iMK>S1kElMA+jfUhH28y3zotG)yL?oyppy-C>O$m zyP>ZhuB*dBqH|k;21y^2L%c^ll@DN(Ekry^?Kpy6N6N<)yM1gOfDeJSZ68MmF7V;? zgc)T=EI%sIYj8s#(^ZC3zI$Y+5zXubSz^9cO|6OqLI(8kR;(c@o+f&A-}p=AqI|nc z5Sr*vkXrr5Wc1znUK%+|EI_*yJ)F5k-U0~rR|u-d1^Y_XdMzJ&#k4yV(Y`P<6i;iJ zctxG+=q7g}08ip6R2Fbv5R;?U5GJOHfjBE@vm7~%h8tI$1SZD-`RFIN&%U^Q#!+H; zcl4l0RI_m~ulG5HNN(x|_}h}?*b1xC=E^)+H*Z(6VF9@i(0#G*)n)5ldDLO(Dw8L+n6s~Hx)L}#1TH+=09#`1q=8h#LhC(9Y|NHGtN!OmcD#=5* zu)`7$h)7?(INhV_?j|lv!>D$=n7T8r$To-?orKGmmkn#LDlAoglP{?dUPuW_t-Irh z?nu0u(&tZDPJtyEI-k8BPsXyKXTsVMZF1adZ!3@6;;Oe*po^~TVJAE5_7Hi$ekLIZ z2yZxIXUwqLL*59FR*PU3?Q!H~+jFn($yPBMweT}AG(<^fu?Nq<1{JWKMdSfv-)0b| zYqmRK$WyrTl_Ao{N$)5C>uH<&8*oi4c}umUdC#?@3?|vD;|!m|p%pDyXJYqzokJDc zI_f;ISUqnM3dS#e@-4(uc!TJVITX#7HL$W=aZh^Q;(_+K0Om^ACoCo987yn(&=~cyoa&C&FtuGE;c0XJg;Zg+7d9g%QzHL zN~*79yBcrvxKu=?s~-iWDLHi%%xgA*0-hTs*J9O(F-^C2p8`#e}KziUbEo^3UXx1)FtgjyTkWW~ad z4Z}{`JWY$ioweP9$pH-AR9M-W9_4!+Z^o{fB#L_RWwGGPj+r#tebU08;QIH0tW1%w z4U3_#Qhj9JI$X%0s0Re};W!k|(VBz%v>`}nRKhR7>bjxNvmm#jkFCXpbxUa{vZSi_ zrDmH80&>@a9(IiD;d+g z1s+m0b5cE(hG`^|-SAk_8Q6R;-BqifY$BK)0d_<*)EW;uzB%S8BRLh=Ix%i3akW6U z^}t4ON`7lOV?os5w~91DY8>7Clr5R$*cF1Q6%hN9IqEk?^}*HiPHwM8l>bn$E+HRj8Mjg7~k8WN$( z549lQ&X%pVw#q=8s4zQS0Xap3kUGf)kp4h^}uQU0*++0mcjI~KR ze2gT$1DR?{nJmUsi`cj2*W8g%(xUl-x$L1ZWt!RL-P#K^nn&-RTNoHb1`fodW-Y16 zp*J~cNwNUy(S=*F^1xD_wbnfe2%Hms&=+xMIki|op`cYcj+&#eHGM<`9{jG-Aw@YO zIwb()fhBiyhW2H>gQgo=V8eI(;^xXTP=ub!tdWDhcsV6Kd2{vB;;5iErj;RM+xrQw z2R(H~YRPN@SCe3Ufe*PPDl}t`P;chR1=#s!zCupeOc9>vDNbyXRqpKgO>TUj$~0u2 z)alHM2$_yF$mGN$yyIo*IwP7q7Q98PFkw7vnZtVq!*Ue16>q{v4RVy+Zd;}oAITAv z%FUZo9H~QoIb&+=pkh~8r)Xoe>r|N$6bO6Ljb0Cq&n=vuU0;bTY^zvPbM%ex1_H}n zFfgc>kdhdkTRZU%tM<(;;Xqu5t_^ zZXl~Ys8cy{fUfh6r4hJDY3tf2{tTc_6rXeQb5*aTN9L*UBoB3MIt1aU~@hD59s+?ek z(dOB*$0LM_JK@Q$(zp%_Zoc%!yLu{M>R3Sy;T9h#zrfgjje+_C#TRVec+~P~ySFeb z`wiPT!IWkQn!|#Z4!XuB(`%eIekwfdT5&=^;!nb!cGkvK`8&0CQzk7ZYZ;~`FI=fZ_c$7W zN`HHRk6<3}UNyUucRmApZEDL;eP*!tF)U?f1FLL4+!v$VFsx)dehnm5-eXU*DByO- zdM5*uA|IYMlFQ@mkX?>n>l0l9_(E6u z66tvW1KF9~&Is}oRj!*w*X8hwV3ECo*DPjaA~Ddd z1vAt~g!fjOMIxm(B3y??*IwOG5VO9S&C;wcF^uEn)K}COMwmfI0VII`i$ltY6!=v$3Q(oPtEG@U4?& z`m&yZy$+!MNmrJ6)dk2uRHGL zyU;go4Mf!L9xek#=Q0(!+?qNdw}sOX7KgvaP~|E;MSUwYL$KLF`~TB;+gsj zam^|oHGLB8J-P~$(W3Z{F{_gOa9+aY!jPkNLM6`Ks>PfT>JX|un}zFB&8L@oZ$08b zG^Gp_XM$CMX|mO>)mp+mrNQaSwVtH3r@-sQ1Zx&4T4yH5PLrl1zVVEUuvX)ZJbyyS z&+s*@SSy+@l(4@iVhc}=XN%{V%ETtO=kjc;w?5@#x!Ez$lpr={J1AD&(AneKe986{ z-eH_9q|E^DFa$KY-ZO0ROe zr&0CIu79yRyrx}2efh$S&hjL9EG*%5A5&&d_uhf+!hO9$fNCB9uqRsO{R>f5(vp5`mJH@uJ!#^7zghd|0cs;o`H%%M!7jO-EGB}bh1 zAWj>B*NpbaVnegN-d-SQ>%4cEERsi zBd>8__f>~-JJO;*Wlb=RqRzEidE_D(Poyo=tYVe#S;Ym6BYE$=w^wl{NLz@!C#Rlo-K46cIdvXD?T<3gWe! zJ_2-YjFcxU&GW$0*j5M>lK7c5-Ek7OY|Okoqm#Ft_VDEKQi;Db&8q8s(mPiOs(IYSrLx#$px(0HsmTN7E*5lH z;Fo4Bk))DKnSPGl?@ASApG_p-g>lGo0*C-di_-SN&1re+OG-6>EXKSWT+|U0I!u1E zov>}N_mp3}95b&saa0X7OXB@77;)9Y7SY^iX71t9VT3SaS6@}!5ed7K8UZjrmZo=c z`{hTg6N<1y^KCW$v5PwtWP+`0nA$Qd^|Xk!Q6M2A)Hsz!3XJd}w@D zF4eQSZ}WCnydh(^-6ec^uN6;a7+{=yX1Xf|3Ty@llcG<%v`E1MwYEGFBfPxaZQ-I` zI&8cN%r}7a;3D6{_aD9f$TPH5Cmubl2Uu7~P2n$#L3B87A)a@Ly%rpi1~75!<4(l# zh9PRhNMA9f+**6Lar1_i^%-;fB9@!hNUQ3@c_wQYv=pTsY+&?Qi89o87rKa1*CVmC zMfVvOiWZ_-%ER|uHiB33rA1t}v1{nd43xTdwe{{cn&Ci=gG(Jc=_e^2i^qv|Am{VA zQj?LHgyXRq<*h$y0cHfZeHjll`&qAxQ@sKTdfsW+_oOs;$RTZCXn?gepOUtAvD2#N zLAG{m-n0@FWIs8S1p+=Kh+8wk!HI|cj2{rlHA?kZIuS2Jr(?Z|4LR0nWn(e1By95a z$CdX4ALxo3Wm$-taxxNM{@h9 zo6%tO%#YX~%PV!*5Iq4bC?HM3jd!~ZBhxKNLmE#(#G|;IV7cA7Vcd^Q1G8Mlu%wwu>Nw1fd7v<>TVYf|FwQ0~?Apvrz zQqz7-feZ9@fOofV2keE#C%q(J^jb?n!o$$VtB=IZaKmqFnM@yEBz8LTu(2y+E_sO? z9C34UdNwvG085&|(mY(W;p~>W=q1#)LoIB$e*50=&_jJ|HW|I!LF(s6b+JGt*}*S( z#+G6k-p;axCd?UkO~bX>)qCK`TPV><8EAo6yAnVxub%_0#R}*xH%M=(61|{Q1-^8O zd+_KHks0B=7WaG>-Y^!KYFHb`@87+*V3!66^)NJ8hJxQH@vtA}q4G5fHOT6ii?e9h zaRmek279Uz#0W|a=0cb77L`~tN@GGoq3Q@z$ZJM7p<8V&xv_zjCd`=DkSPLXcqO=Z zgMxyhva32dYWBLHXbg~Zrz47?ki+%d~*djgf)?|Mwi+1Wh(4yJEO z3r6gAp4v# zl&<8C>OIV)C*;2apGB-5g}mwT4n4I+N^uv) z2OFLHfKLIilqQ85vSY}#J&|)B0fLaoVKhUrcaIV5xhM-@C){qempYJEwXHSvbN2{; zIGmbnJc{EHSlXrFdY+@C`EbLvc=i)trZ0RI>rK_`rMoSmmx0~4O6WHN7Yp^481`;P+yRIN98r~p^7zVnlRNfVc*9BbymLME z#;{SC?+q*1(-}eseqx=|sZWsM00{s{+E^e9x~cEU5wV!Xv1|au9&Lp<@fa1Oz&oiF zJ51bdK@(h;dGFCHjeTO}X%A~J*bcPT37*E~fBa%B$2}2ANmy(EHbx;%BWzF|Sa=7E zxTm$~Z1vCrx?mR7)LfcXcjIVnO~bhy0ZS3!I8fhAdHV$QV>1v7&T2IYZ1oQjDSJU0yjM8SepV zh1@zQ9KVEWlvUsDXDY>P8Ou3@$ zS_*&xm$lG;7`oF}&MG<(HKz z=BCNWFznkcVXNZlTSKnC4Uqa4bs1h`vJSFpdBxk9?bS5Sd0ic^7>+t-Emq>`RCY5i z$f2e;(CQHH04iAS?HZ&=%o4Pw!Xbe}yqeiL8|q>Kw#f%xsXTYD#u8T$^et$WzT$go z7%#RgT7bo8?~&J~v(ss{PZ?h|_?m*{I8-n6!|M=W+s(p;_DE{a69B3~HGIyJ0eF`} znIv&<^8u{gNfF|`0;L_T*(eg~@F&~HQH-AakPoLB%!D*+pS9%3JK^oyX}1(z++Y<6 zkKUKF`Bu8PFA(IlTx`zk@Z2!|5flET1b~+B@RMJGFMgdhVuDZAaGkIQFy#@uRnwj9 z)ky9bj5^`EWbTu3cnB1ZaJuAne)vqWhu$Q-!YyH^dn!HHp=AD?b0CP|RDoQ8AB=?5 z7Cs~)g0sBdz->=BRbsp_C1GCeW$~y-@1gZcZsnVvB%%7Mm__9D5mlL1=#cG-C{|ur#yJi#o;n;-j!PkZRi` zn4nLVo^y&JgdZ6zGkc5zmyWAK`x)HWZ78=Iqp_AnfUumm`T0gRKfq!GXc~vpLK+l8 z7smh@Jk)&8`W7#rC<0f6UUd5UQYRR-CLi9ki`Ny*O3K^KNyJv{C)|VDOm#sx@Q#Ga z8QjdkK#Ss5w6zcW(l%qFIK7k+#SXQXGH;6`g=z z-g*?p%<0VA2Sr}nl6ZVu^QilFoekF6Z=Sz_Ov>X_pfOQl&MoXadFyM>!ddztDP1dX zBRxu(fvVc1-Lvdg9?~&7Ca4ABSvEPgKU&@*)PPo~Ks|PR=t7z{L_&>RwSjwpmm0{s!2;0H)fgQ?icHd^&16 zgScm0@nXQ-H2NKoHF#}G9vY5oiqSZ%COVp2*RaIRiZ}B)<1t zTF&4>`vvHQiCfX=E%K}N(T55rulr3m0OC!=vChfFq8?oEdq(XKm9z1g=#D*gEcT^h z@rZo$$TGGY`)C!zcQo&ik5nWxF~OqOlcCFOvBCv_hTxt>!-aI{MO>f^lK?%z(UvjB zim_G0VH(V-!NVB~s`5DTwrV-|GK*WOp&;tDWOOl5P-db~T14*fVg_~{YbjHD46Me} za}ZHY2y}rub6gAIvF+7cK+$U$PqGD*Y;5|SvVf)>XCOms_vSr3CojHt>WFVko~0NW z3-Ot6Hw(Rq3~375do7J)ubB82^(;JOj*V8OM6gmjWO$*}>OIOUy{_|KBa=6G^Stt% z`0Na==*x}UHBbj|Nzh~TfHzkGm$?-u6O9I>k#?@cdGEFNcpi(K;EW=!SX)H;MQXZk zcItZ$0Gh|h57Y_9L2;ggf(=kY6o@?F@PQmA&Z$fDBv`ZcJ>@7XeF7{ce5!js!w>G!t9YLTt9=pN z`D{3mG&CKbIT=0xb8&mB@`l$>p@|SK@&c@3U#~)m7@*tj1JReU{$gL;$Y7d#KS-9x zhVAkyVa76*f^GAB)e~#!w6Pz^5}??yS#Gf_*G|kv?QN(Tk(iiow4baV#)lZpol@w zptt6|SwvEPd`b+;nguJBfY^pAXG&S^j~{q_t3$=_R%9a4JDz}`tfr6RiV>KtE{ z3C1JMTER_Jin5tD34$5tuza^%WT4Uz%LrmxXPWs+t>ynfFq6N_aXYLB)^eW8Yl zL=oZ@%!xAP!?$#Bjb@H-DPu{J(brO@481I!of2y>4It1v!MCc3BscOkcDKj#r*Voj zFXOEY9w26IOD`DSg0v31C3P0 z;}mrfi%z%i$zGvk+ZBGb+bWAoF!UpFd)vLUB1%MCjfQGpU4VwBF8-zXN)MtfF z!?5S~e9wnYOaUH3WKQrs>56^xYVUPuzM#)pJ0S$=U1cL*t+`jm1;y+ejLTU5nxs&yZ9u?4)n4zOhQVAc z5Os;gNI!okUCFH?iP?b{djByT93#TVnfDxmg^IQfAY(A)Ewo^0$Kr(c5?yFlcxF5} zxfzOl+c7H-6PtxboM8y&TC*<0&+A5d?kO!m-J#;VPLa{7ec9+4+l{D?Rf<403%oG* z6@wV@4-6Z5c*N<{wAl6zag<)T5_qeGAiJYB_ZiVkOS|ljrNre?FQ%n1L0xr^RbQNT z(^tSGHMrRZcRuB8PwJ^Tv-nuV^8>MXiG#yyLoq-Q()3;*u#6M%w9EsY^UZo7*5Zhb zezYB6^;qi$n=+ZfE}Q2H|om%dWoJ3H^J$H$v^Ci&#}Ot^%yicQMLm?D0VS zN%88`+CG`ULxet08QtuDsTgM_9Y%$i;tNE5rXy3bvI-W8iagF{(a-JXT=GTkP0mw6 zN$YmnblKv>$Ls!vgBXmltebMkTD60{t)0;E^f|$;`)r2gCKbUlLsK+Fnkcf!qryT4 zE0E z3j=Iz-&NN`NnB2srQ1l%h=fmuAAK=QTHevXv}x7znD5#j`c+XXaLT6N!`Vc9h8|}j z403R1zHXF`@ya=-Yrq$B98a5^eI@brPd$nMd! zLbt#S?l+J=>=#fo0Zc;(rj|!a6M5nk^WDIy&oE)bdFH&iT2%Ry6w%|~Fu4<|Y!vIVMHWvF<7QA23yE!}vHF6h>0)8|+ zcW*FB$-!tCC*I(@cish&y@2TNA#6-jj|+8sLnI8|vIq$|U+>d35itYr+!xk(#;zA0 z*TKbjxYKMk)V#;_a8QmE#EX_8_2>mU-0=;RGk9n4$>2V^ccT3mIm;Mz@SrgKe6-{} zp$*xoVK!loXNDY@PR{g1_98lqf{(0yqu^q!qn&DZ7g9>rc6g8Wap>&{5gpIH0;WxJ zVUXty>?=BK{9By@4CC(&gF` zq9^E{@Z5r1Ee%N)1mMAYn6e51Y;)LABunTT;3>Rv=a|!P5JvTR0i;dEm0EAwC~81q zPe%2wTh}-ltG>*Gxm0E_fJ`%2sk8Hyh@r=tHSQ8{a}@kVTnR5C#&h1p1!MR zxF~PC&efhWPuVK8C!U8eLWb;|gUxuSB`gXyT)vLWwYFT-L+{{prC3`nRjyM#(pp-F z40o#GcPM(>wZ$Xyl3P}+36-Q-b{@_wGEn0xs()teLm?-7Sb8E&lTJK5^GnCi#+P#GuY585< zjiC#$9vowi!@VVaSF|49u{xQW1O}Y2DR{XW`^?3}(#cvB@E~7$8&RJoz2UbJz7r}3 zbCYc8)~nH;KF5=$llpWHR4~Xw*bk=R1g}`YWW}pxZ?}W1(m_k7OrKGvZ>F@HJo^RLL7#MT}|LH{i+@Z)fJ29-a9D@(w>Vm!Q;A1J``v`p@B8* zS{|GOD?rm1`NT`DJw_|t#cb-udSG9^dZ0`xV?Oo=)shJR^ELwq+>O zBApQz>d;Pte&=qB77BJ=wWH>jo3EEtk;V4<9^7a%l_i5ds(RG^+NeB&c8aHH zk#&x__B`_xEbm!r?e=Psvd6vJB4_LZ9kHtKxI{a)gTk?IikDy)1oDtGXijiF!QUHD zjk7zQnChfcPFYGXd4%4V6P=dJ9(05W6Aib4DF^hbNy9bd{1@+%KvUkKZo) zk;m)W$jT7*?v05@+hjDX-posDN9QO9OJ4FInsyMQ6f~qZ{4}I{sNSd@@HfT&MX{_X zRSF@!=?=9$IX~7J^DZL2dR$ul7PmD$yecUe)p(y=-f`Julq11yiIaR_xLgB-oa>db)m@nvzqU!5zhlUKp zfU0hp_qOi{+pOlqO*BU6UAPItxpO+CRyR`<9LV#k$asll*LtC%xB^E(DTWdZ11jx` z*#j8e_aDZ2a3{2@Pz-PcWa3v#)8IlJB0{0&tfCL@`KvHxOaRe-h8`=*Y{8CQuOO9Q z#WrXrk-gZkel@RC^##xLxFMjV3C~ zO?j{~#L5a{SMCV9Z{`}DIW}TEpF)}7I&Nl(C3@%bUZw=UfQ${H-LeSSf<>topX=mQ0tLi7gLqk7kxf_JkGhVzkJ+RY^A8I88I62PJ?jll5&<33EE zrPs^Dq1IU&ZK>5`ui=(-s%A?cK{@ez&r!GOz0!~ll!Mpd;Us-f2nIVaQoOxnFW53(OThBmN#?GC?QHDWz_OX?Cw zwWe;v)c1~Y3G#7t7ik$aaO0HbKBNW0sOmz)(5Xb(?~0z*N<9VDLkb9-qmVr2mSE;|yA zuG^Q3WaF(6i&k*yyC;}^5*O;{ z7I41o2K#V}3gty=Z$j~T?Tx?eJY^$c-Q4a{I(EZXZLLjhOBS1hS7WguIFdtvG)b*R zSbcTjEBRg)<>B#7GBF>B4g2A=|HpCY5ZcHUVh2E%vpu<?VXfGCES1O!z8V`Hfr zPkFKSA1@3jo< zCuqOW(;J>%injou~d<-7FTe6&DrDkQI1}@;V{c@i}#> z*CvtJtGIoAdJtOtta5H*tDz=$svDeX9CCZc0wart(ZnW%tXpgnS2=t}o^Hs^RfZ!) zd&J9-^i^3uC#r<2*$(%`PzN=T{{OKrHVRtm7EMOVhQ>*je| z%X+T{{1EwN7gF0eKkN2={G8rl{K_sK&&=S*65SxhZDN7JIE{P=+uHh0MiV*Nm&{NY zsEL>1$a5jgq9pI41jgpFOtLq8U6ZP0MYlP46`W5fh8az~e(vSny1&yOTb&B|C&0<*#ll$1su8lZr;KR4^c+9KJYakS~rmz~$xIi+9yfR%~Od?hW~b=aD}5PKC00 zL9Ddt6mnW=Dv8Qw<%>n`<8q46NxL1@lb#k?=L4&!uI_jN>ayjyI>B76>l` z!(YS>iJM>;Hn>)S85`vMWHyWA zOPdkagmj<;WAeL-}2fcBFfv6PUJcq%%x#&(HD`kUhZ#s~T zf@V-BLo8nh*YXXwA#Y}=zIB*BL=qcTk(1olrn+LLGOegcLVfwl2wEtfzQR#@@bGp$ zpdWA6VGSC?v{s1`?nrCf-8;dP>Kz%zBGehGwbW3m0h^o_N>)81H?*nv^)z~0Nb0&g z_(J@UO>$o?-U~rae{so=_G&cF=$ie-RRSAPU&tG{p#~Cz!FjAJxV@N^6%Q`sxlG$T zxYv}NkSYd;#RwEvrh^%24pDNHOL3g$-PF%v000hNK!i8k)@5oWrdsbr+*2}_Je%uv zrU0x6N40*u0I%Px6TrU7lC^4eD(jK=uDc3VqW!^*t&uTTzzzcMl)QNo1JWEr)0sRY zFF5q=4bnWX$EQBR;O|7unS}{SmXSsx-iw}GW2RjncR76+1Mj)zYu5}Dx^2TUbCwHl z(uH)O;&YiaGioUi8cD}&?DBMRiSI#v}*dHK`EoOjV^#vTc-N z-s!GcZ)Lecv6UT?q00`L1bi4TXSVf$1C(#6XYRz-c*2;Wk8qUOIV0LbRrA!)H#8Np z(A3ixPB?D)FvHr2Dz$&Epzu?3+lN1C<@z+ArcLSj7Cl*;;8IFTMTCZWFL4Q1BX%IG zo@a2XSUh=YgV(aWT)BO|$E*$qFseNlNU~JBQ|>73r=$3=&ope7HLo|Mw@Ghx%-=hK z$(Ev_n@rg7Yw#)Ho4n?fqzoTeH|>aeW~a&$W$p?#uO494@6XO*tTudxpVYVzVjCjT z3{)iPUJ_n7$UG8MamN75SLdilU?-V~Pg$IhT1DAw*B+OeIw@e91{fyl6Ork4X(9`@ zjaWrek{?BLTR=zCW?J4YM%2J$@%-}TOCNkVBHFu(kxb+G2rptzDGa3!Vuc~L4wND&h_)C{m3dguutRPKopJn`_5NbFG$$~~PfDu@vyK!tF5_(DO$ zA<4y7eWr*u;}WiGIVa{WGlfoWPcmkl10}Rl9wco!j7HGp^Xc~W;KoYofar4qPxNNo z%I;5+3BE|~b2Tcg9S;v0do!8Gvs>gOCTbgxm~5)2w2!aIBRc`td{Rfl!=)GA1fE-Y0!M)uiD129AckF{qHndZ@qYwb)|(U?fs6m$oLYL>JS%i(U4 z9F3wlA1y(ws7GBW#$_v(3>dBhBIz3FIRsZ(#H&W*QAG{Am7hwveia#T77pUj3r!R^ zXio*A=DD-V0n#$3Md;H!ztlLWcEFx#0Z9~;|d_#|p za}4Oz_x!;Cl5L{r4IV1JU~DE#ADhHF12Y|XF9&tcP}L<#V*B3kBX8IkzJ{pt;j4-v zgG;$Xt{Rz2b5;!)dz*E671YHA!g^%;w#oF~61*p3i|TNLPu}{&c{#Wd)R+OWVBX2+ zVSI156kt7*f>9n%bG6t#>?hIW zxIkrZ{GfOMX;wn0u(%D9G<03GQ&fOlJOrN$O{BFvFd=DeNO)W~;IMj5(A~Qc-EzZ^ z3aVP6>7Ui|aX0zAWZkdPYK~6qXP? z)is+GBnrc#<%m{p*D47mrFuyBjk15COxeqrRgkny_CjRno-V3JxK2G*Y5S3eKJD^A zh_92O9y3l9b4v=7J?FvBTr4?wV6b=beC3JNLBD0_F$94c-KHm26mGor4uQ8O4W)$w z(?QEp+6jdi)FeUmRX+q;sNo&rhe1mBgmp}Y5Oyi^T3u@c_)>5&%v<3`N7-JG&AkL& zPN6<{Yif5vvyThd`n)hayrGLl^))n7(|EaTAUfuWz3QhKga5L;_BO5x)Z7fVQhcx< z;5;?ui8qlU`yMo_E*+oEM7`#oeh+V*w*A%KN@fvOzBZ4`K1B`gqUZP0Q^v8P_l0-U zRVtw9Zow?PI6z~go0UK#=z`=X>(bFHh;Z2F{GPPmP{()xY!w2}>$sMT06&~66EI_E+>@|f)4XmwCiP+%`*6uvV&Bg@MJea7H2r> zBiF0!D0I%0*hb&*jS?870-_TrLN>uJTJ&WGUg?16lg=h)Q@*sWVYI3Q8+T@X5f`@4 zA_&RRkc5#}D~;t{#NpCRt6ExYaGk9QwtP`m|M7P-B{%5 z^DR4gvP-*Hwbn`l>xCe83^GfdXX27g@|b?MIfpX_OHm%vbp!=~eW->oQFGWSQ-YWf&ib+`%{m zOpqV*O>5^a?MFyO1|BU9B&GZJ(~e^Y+Y#cEPs*kE<$ zI`WRmZ6^uJnbl7thCrn1K%Fnk=lQwHEu@B_GcmO8`Kk!nQ`kJ}mZcc38Q`~%W!$)_ zCZ0!0lQ4uK`#pQq#Kb6jH`k`fLT_pES)i4Ycre#8(w5Gw^gVEpD^kzaE2mK(aC|S@ zPM#XzyF2|4=0_msrgZ!UN$V^~ManCo-8E`+%~lE|C)HfrN}3zXlby6E$Eu4?MYyEN zb50+-U*Cyir%?n;XPrM{m6c=;p?d7yBa0zugi5j=ita<%9eZst`w|~i$CDO@3TIf- zxiE-V{9KdH%I!E-L!T^8G*#g45HXGn=3b3X@AB$p3dy687#NI64~M!odbWZyV*oSv ze4RLWcQqpy+Mhm$hhz52-8QS%p1xGd3nx3%eVq` znD)j4O{|{GcxIq2JggJvJpv@vHFG3#<%6nLW zC)VbtZ`ug8LZ+b#_&lIyfo24Ib>RHOS8j51@E}1aBSme}p`1=+FO{dlBTlH2v9~AY z^;+sIb3K?bp*NgSjP0DWi@Wf6!M26iZ&x+}DE!&2ZKuvYTN$P@Rg=BWWU@R~jGYwQ z;uYa^-RJ2`HiU)hOrC0a0tGJz@hn zO_)dTK`+;&W}k>d^_CCBAQXh>xB^U+!Na-cM9H&$PZ7s)In!Mv+?s3CPAo1K2tzu^ z&3p6|O^noD_#FsIs5A;o&F#cx7Y7u)VWEwnU|Tr%x`B0(wz%(L-l`XFpjcy=z{QAH)&W2v}PM_ZCd z!iC3l+KEJ25+?5^Eufrp;dVuhv?R&E+Lz6G6c`ga*acp92%(_#iZRN2%_9<`4+5=9 zunn$3vyn7;9a-#YOegf#%rh=S366O6o}@a-(;+fEyI*9e75l*~A`(BfEvr!9)g!o) zln@G5pC`OhM)NE{hWJJ&JGSc%#Z~I)&7@-#pOO$VMS(u+=7`OHEc5s#s{B!)`LZr0 zOTfIkOpaAv6&4VExh<{jCk?k7%mKxxpsn<*J!-SLh+~#q+@2wJ@{E(hdcT`fqJ?$Yl$V@fsxo(H^(K*7 zBK6ohMV>^o=%lm+&NU)?kUc73Q+RirxNqT=@Kxw1%}QT17sqWmId4uIucJ#T&S@^+ z2xhit7*|0p_JC)q+Z&%iXtN-~eN4h^U}9&gJlF}EF6+}U3tA=^+bq!;A>x3+1K2@I zdVIyxdj+1?He?~Mrs~EOgHO2>45AGM0<@LW%&pW{IT<7MRTwej&W58z9?vqOr(;aY zJbPdXLQ=9g6bJ=7WO;^z3R_)b8ahH|2{rFbu~ObZzrz=ux@GME~J!q$Q~`t%7BMY-sqDOpDlXOO*bzl^`Q@pX4mt4$MBpCUnVVZ z#fd#OBUnXB%am1Jsu1OuPgvh-;~JsWRP(9d3pLImvG*yjp`2Vtz9W35z&St z$6P;->!(qxFO0{9-azRP1o!C)vAnbiXIi|i5`7k|m*^WjQv~b1M@L)9+-8TXPY@qg znY6?qdA@>-gV1C>O@fTD zKguJb+u%r=r#9C62(aalzj>Q-a0ZEzPQMG z__AFb11JD&9*_90YA15?aO_ZU4&=3Owx5q+JR~81@40Uyx$UqX7&DmjEi(wEk*c%y zsAR%xKr>b-SG@3}97?d8R4a5i#0o>JQrrnox*e^ii`{!5mh4ZZ0#$fxsSY&-2OIdIXwT#Cd z?^eEXHu%Ch!+BIrfgO0gUqqbjRISqnxSSB7a0b)NOv_7r1@+V<-|@?cf#?joUR{dwrF~WbR5;N zymy8-Trcc^63fXX38n2epVR}zBC>u&5V8H-ImM`)%kpLfAV|DCiQgIMttR;G8!u5N z6vC}ado>Rd3Sg!#q%!LrYm5%=CW0RM^wobn^HX-SYZ?#*jmsbvq~SZbK~i}nv(3H$ zhY*&>HjvMN0~kC4;6nSN`nI>FH&N=1Ll={@+8U@u=ETB@4(B5~e`|-X8V_*Sa$#S( z5tZn4TLdQFq0U-8uj&fBcm^Ivmh5{NunTPvQz|FIr-y*@jE>pPXiM*Py+WXkxUBJa zY`Md%u?182IOb%xi)jedR z2bT-O5poWORD~315uEw>h%VQJp36L4?9%M1Zi3`26dyZ2d?-L1h=f%Fa(?=3_d2o% z1Gp}7s7JPtzz>C|T}*hD^uY*NCFA*Y9FudA1)h_&+J_t~|o7j9Kr~&74rko@9usZ5@ zCNT4S-coj&EtX-MP!;gzQ?|_2c#gPHC;3X0cb4(um00S*o?^noq~buILn~BLj9h-t zE)I9Hq$&BmW(wLc0cVY2Lw1qTEe-|%avsfL0Zc|Oq#Kkc<%V=rrEq2G6$`|vGH+(d zTX<~TRoW*8Q8ic_BOGz++TX?kJlcRQcXRB1O7T$6uRN(^+|^#rRXo`x(2TlQF8=@i z?3jtmtRUQYj}6A8AMo`V20VFbXsrtO{55mx0YKIg97EeR}O+RDUYDF>tCWBNq1Ov0S|7G2vUdN+~g#X^8AHE5{BdFXWE4$@%H z0gN(?m~yG@#r64cbw9Waf0c{^Y13lKA z9kd z_pMz**hO#%?)BY4v8xFeHi{_Jcm_Mi1Fvq|G8)H4HhjjI3imyp;0gojGFH*I%nim7 zIFvRr#FU(C4f;vOUV|L}&aj&dsFu03?_(D4mkvmAd4RDJC<(c8VHjXP$a$I=i z6=iJfGWU!6Wup5lBRU4@j$AwqzPyp5qacVvmn^Z=!Be^J@=dsGY}r?mI=xoix8FO8A;embS@c3Z`*(*XO>^h9KnH!I&R~^&4TBTI0@ysM@hRH8 z+iIQ*ogEj^?IwdtF;r{!QbJ#Ky4~1nIr477hrxEQwe|pfUe2?8P|H1h@Bm-n14`nD z1}~h5cdu@DUNwSm^b775x?py!iqVUQz!FiD#)iPasS575hj6>h&~mH;DFesW*a_AH zE@4wJV5(eWNG?uD$}tOL;i(MMu?S1OtV)7le^&#%_?ylGxs_eh5e=LFu0<%$z6E&Dl94Y z^g{@GGx=O*w^d$?2qic=h+5dmNTn>yqZs5*qFug-osH}VioyHPmg)_?0-j$Oi zVQ*f}$b>(;_nO9`;beNR<{_bq^J8^-pxsFlT0<%P&~8n3$Obg}O3jMdq()*F9=@6h zN0>nwzZ{3DnwHKhe%%IFa7*cMB`R3n8KW`1qVKV143D1)=6UmtO`_2>+BINiE4`Ei zQY{%`Y^YT@k%K9yhnxpIVSf7#&Tt2uq*Yr=$yCK}YbX@PDb0#q-Jk=EZ>_vih7T(vv_xcMTV)GcMPo& z&Z1AUxL6*%@Gb?*SJaJ#-_tNRtv&7b$|l_KJMeZbt9UNr_l#VPt4W?7Snk|AN;j`yPD zNOeS_SN1fo6!kq0)F`Ixu8e-YlziJCBmpUv$6@mNMmfln8^;Hl)BIC-qm9k^g(ElK-Sl0seB zct_gX!Ct%@1R5iPS#*>&Q-MJEWoBQp*l;1)^(da|s*$EuXV#O0wW!2v)Gp3-oBi}!S#%2A?%4-vE$xlVBj4!yTW=lp@agoieK zZZPW|;VJ&w6XT)8zVD0nku zu$d-MyBu5l6Y2Oq5^jwgrpvV#>WV0(N)6ChEQ8cLCPT}d2~d8)55aO}$!B9cvw#Mp znwM@C#}rj#DNK}CrZR*dB+6734UQ}U5d-Z8EP*rOUXLqzj>n2kJI7|s8TzJkNLt-7 z_`XM0xzHHZBehDCM(Rs@vSFEoBq9_iv8P?)Ht&wLv$3-4ZRkS`k?JnWpJgyYgInyS zqihxOSUg32XL;IcY+L0O7Idx_>8oYSha`(&(D>jk|7AKgLV>h-CWN26VAvf*Lj{!< zlwxTNGjes$?=?*07z&Gus5R_udJC|VC_axuWgGdnz!6e5x=0}TOjcJV-TO>VbX~bO@ z=xBWughSV+v)O^i3wtCNuT#+n?Hz@RN}dyV7O4slc}5o24eUVsK;-I+dWgmz6_shb z>~2WM#Dj}QZ_w~tEatSPR`D5IjSXXCQ4S~$i7VvY8jAq$0dz# zLHa6Us@Lj4*Ax>XT&PGOh{S{8%qyc(Bt9zP<8pf1LxaEq=5CT9iDj%z$2hd66^-#0 z86(ck*d2WEO~>*CO13RL?^%Pyy_kv%S+%A(b`|u@($mpyCOIfvs<`M5(ujxG`jTqU z%?(5sBsrfn8(8_y($Y#S6(3-4Nr|GZg|d4tGxj#ReK9QnUrcLuswHqDKbM+j@|a+g zd$E+RjYQ8%qJpL%CsU5VMuGeY`RsYKA}k_aOiN?qd0BShOB3WwqG#}0QQIgVv*WAO zeMa5(#P=@{Le3*Ptk=?`34nduqkbbL8tgH?I_)Gx6S~)K zBdwtz?Q7$EI!gWC1JmfhTtvdn>J>&G^&=CRQycVv*pBz+>ChX}p}_42mK@1j$SYxi zXU*u|3{XyQIS0?q!JW}3<=Mb9vs}TT1|P|K@m5(xiK92g^?@9aSxaQk+p#w!laHD6 zUPK8L17?o9^8-F$w=nYaLq#@XSf8BYD(X6e>?3HOUCyM%rVFK6wQC0LLp&*9?{z7p=P!QqB)rwMA?b6w5+;j8uXG@T$dR{nPlB3-l2jyWl ziby`-7M|l*WN#QvfH+)FPggvN-$@y}@LPCtDSghsFsUxKCJUUzJG6_mD`aAW@U;8_ z%MHgS)2pW7U5#4yqg%J9z}VOWMwEAR9YpVBy2^x5?EDP{L%9Yz_G!)=%j@=66`(on zFWbxWO+M%~vaaPtUPRSL&tcf7SB^6+Lru_y5TfEKMEL_GE46$J}85~B76YJ0|YlK2g-HS`TC&c5yQ22WW2LDpM{YKHM=-KY8H4mh9 zyPk);;G0rinj#fSurBw6*%8rTHJ?zOuZS?k$<-3gqXVFG5{(&UpVwpp$Pwl4B*tA` zN1`tuIGk@cP=X%ot30doS;lb5synkBaO#TCM2C5zT62|`>0D2GLdCtuPy2e&wu&YW zd{ru0kVQ>=;9B(okodc`g8@NzbqnvzxDkBVee4d`kg-p(uGFkD;4O01^TgOU(5=E3 z^%%IH)Pz2is8&#AC=yE_L1PEvaxRzJ?H3u?LpU5x^;VxcJ%7{Q(cABlArJ}Kdx=BpSsviVyJ?{iyn0oV;(Lu9B0|X>w4v~Q2CCxgcHupM^ z1a1}F@i|`~UBtwx#qjbm9dsVe8v}iJW#~NgBrqyQO1id?v;%R?B;2<)GUVfKOeHe!u-Wl^p9tl{h5~tfulfNo8JmblhHzOz z52TlyAK|U+E9I=?Y&H(rA6%K;;Nj2IR)nHw<_BJHr zIRS5uHRwxBEeMzACBKoJX1on&6)~rz}8`PvmmapC&^4X^32H0ZXqVWbkjKX^g z8P+wcR~^a|tIv7}Ew2NZ`2PKf5;2A(@JJ7Q0|0ld|>Yf3L(UEq7|;XNLT z<&DJU=w4H_2E!!5CmYf%6?dEf9{fUc0m#7+6gC<-m9w9}=P#LQM*8V(H`dF>wMmAx zNU`aV_Q&Q;sIXi7@Tt@2sw-Bhg?5*qt&EG&fru~6LoA`gvP+oC5!kS{vRHdn81PCA zrWvFB05#C<^Zzhak3`W*Hiu^xe62ldqVhg@y&T*;Ir!y{J>@ zrL64=>1tOiALL<-t3L(&I&cgRmy=Z_W*7rXGTL~NtO9cCRnu_ zt6x^v-dt(5dpzfH;Rer~wwAMIJJUn8b;XW^3w$fd_DXYt$A6JXoV9!v+@qWmkC^`B z`rS}WJP42SgUL~H>+#-qx-YmK_WX<#?4BlKTyb`B%p>cmwUa2f&^Vm8=uiaf$>%VYg6*hHHz8L~B1 zN{m36h)jofYNfr^OUH8)U2W*nu^kub=xxqgs2`y0@Flm4q$v|_p136KQ{iDFqj%KR zlFov9$(@E)(epOF2Or4^Spyp83idiaJ<#x5$=tx?LmF#0jRNC4ZIjzk@g^{)IB1=e z+^d`iGH8iqFWJZ8t;qo=XH2e?nDlcoDitk|Kv?L@(Y44UZJfCYFJzGV{NhewN)|{Gfk3DjIqbyHFRu~O< zAHMCEZ}4?^zGkw9lynZ&e!GnPqDZjmC~JYei1iI;ObCoWJxVo}E_tLn9dw77^(I@! zo-Q)7G|Am7P;a`34p$c-e_ad^W!*eaGj(4yMVrsv#Dp$C4Jre+l-_M!mfiN*_w&0P z4ib4c%0>jE!;(GVb%<2(v}pZ3YmipP%f&^~cFL5R>iXV6>M ze6k$-3{sq*IPK60zZvABZ3LmbzL@Q4UVm>D?gYVd5K>8rVGx6WNzxHQCK+e5OrB*5 z9YMRea9?AqtLUx+E7c4?ff-A*7nDomc8Dfe_3-t-VDBXbM`=v^vC`}3%Pxg|Nc|RF z%wIxt;!WIDym<5Ikmr0cqA1YPDxGd#2Fe3Af4dJ}+xc@*5t{APIPk^M*%PmB;VMj% zCo(bv1np)F(Ff%WmlAOZkp4XQnrJ;9U~Uo%<8(jZEDRY^8f zoc-eTJ%SVr$W=`>mONYGo-2Q%u0d8Kq2XBfTIcC9VAs@)Z=Au7tCHBE}}23q6k_{!qowHJlQS+x@&pNsOb8LOP>-x zemz&c5i{j@?&H`GTMsB(ryNlDjo9QdRt1B@lO&uBKl6w)a#)dQEY;rP1yP~_c7~T( z8z%J#vY0XPQ7U)u;gfVa5IZ3!7{rh_Sd6xF9MEo?wL}8G0N}@A3Hy#mu_D}i=&oAA zEpA~OIGH^$eId=5#FF1^BI2x)1co6>gdq?SkCA6RxO%5tE>s4`PiO4Cm=Lnu%3YOb zMrC2NYzPqT+|zqDUTuunjn818OBeSU36j38MY#!8*mg$y{d5ipi0UEUi+kSFC9W$i z!1i$U2=;BBEHoI4jLM?E7kG`Oj+qTDdm%5o%Y^oMUwwit-v>r~;qH&bF|KkrFN5B& zzW2h+U@aY6X~H)cm<&f#(wUgf?x_dMC}cX{#S)|j+1yrUODM$v*j5m?<|>HqsK~ZF z+<6$db7E}F&Q5ZH`Yejq+##gRsen*%br*0Ip@gyBP4mvn%8pK>%LXYXUu?X#q4G;> zo8&WKj2IfM&Qf{il#V^tXL_cJNXUWnyt;`?YhZ(D+s5nSbttXN40-MaL{>8HQ~($G z)iray2iy~3gqn!N{vX-#f@qx{8kf7pL_Sl=6=m8ayYNsWMI}Hwlvj)E=yMKa9urn# z(O$3t2m?Yq8IWbWL+z{y*eT6!Z45~??plg?NH1cuH^T0snzmd~Co`N*0#Z@iS(>>^iS7PNX|CgrKl ziO!ajk=qbD@N0W)0kp#!d9Qm@i8fZ9Qq2MXdqfnaaa1BRpvFv~pkPGx;8G84H81>+D*8@>d(%czVr7=la!McY!Y z(uCDCjRpb_eMlh`wMMi|^?|d!*XT|oe&%lzHr)!en@^V+W~93Dt(F{h%Tb%W$2-R$ zdMVz@;20F!$G9#Tpz1c9SBwO}c=t4GyeH@Nt{J=K%ZHu;6}}q}+$7Q7rFhj#zUMjJ zgrEzzMNd!)%UYvft=?0JRUI{KCMCZ1#zr#oT@#u}i+jTWC6T|z_}@g zCF>!3m9K?9B!}CRuy3;clk8`EtOUbQFU2Fu8%CEkRRGKv0+VDS zwTjc=ChvO8js)BBa)X1gopM|vzkSj+%pNtTDGE%#;~*}^mDQzfZu7Cy?h3?d{w)1-K>(DBrBB*fVu9yx1YlIcd7`q{madNn~~ zzE2M(T~1zyMZZJpQ+$B<>h11$y|x7 z&(leI#3%*O*FDPKBx43ttK;(tkQSz}mEn_k@1Pq2;#Tqa6`jY6jyKsI)IP9qEt&ul zqe)I-88= z-J4c^R*Fge+5}kR5ncvoDCA2#c*kZ1*Q5PH9_|vqK@7Hf#x8)5AHtRQt>7g2JHtV~ zDtuC+cnp)6cm)U4R4nF^kF@aIGK}P{ow&zaC0UmVtnN7Q**x^vOP4%KrpYG`IT=o? zFVdOrN8jzJt`Cf4K7>szsQ01|%-(iwoI1T5$T_>T37@@bNIqVd(OmMeXT1-2@xWlE za;0H{@m%s*(|d0o7SO@m@C<-~v~3lW31w_;42uC?JuIy+ zSei@m?0_V0GTwB9rQhqVDW)WsC_@y=x2ip;cZ%tRL(Ij^I&l^wFRN^*RM8?g2{G-- z(;M;OD0AaITgl1wP=c`R_72u$s=QpIo#Vg~~}hLs_b zTL8DP@}qZ_L59uH`d*0(V9^Hbs58{CH?p7&#zon7*b(c!1brBWhu(0U@!k{IIPH#J zqqES9jC=8tIq8bzrBSu9ip0v@799zN*Ay!4dymNAVn5k7`C^+Fl@-R{*j8zKPQ(Z) zYTx1uhhXlPepX&p2WkAsdoObcl#IBcMuX8g5Glot`HGtWWZ_A)zZ5L8^b!wI1JO1Jg0mw;G53n{;)ZE#-sx4pd#M7W5U(L@tGPHIp$g8z zZhQ$p=X3>;i#hrZ$j8kA{tV z^En#dJ=2~+&cerDAuwp2`ybra!EX#8w4PB}qy?hQEIv{!yMBiFhVb#i0}}AM@g&p) zeMdTv;Icvx>NvK6dCa^0>7#zvUfe;@kDwu0?!^2d9@A4^UvuP%@vLUZ=G09-Q-~y5 zz+?}OxP$;DF=e#c2MSmZdaDUbd-dJKFY#o0g@DAgq2#ebEG3)`Ribs}Ng*Elng!t` zO@O@f)ojHpria1FaNR108P2*|C-D}lX31jt04qo0W%EJ^X}y)v(PYtzo+dSOZl1@F zsH~VzN$2JW5lo-#aAL7XKtrPEW-1zC+ZgbuXD$_v$LU)KTC?+fNK_{+jdSdGQ7Er! zWWZ$+gTgyn^03-CAhQW-a7x#FGanloUhPZ_PNI5?!P2XFgDl~Sp=PxWD97;(pY?-&l1oA=@BMT!e9p7Od2VaN;M zj;T`bxu=~&@t$fukhQ=#(ybF#g5I-vcq5oO^j>CBRl8NhD@)dv#`N+AS?l)%*S#0R z(-d4V;*q~q?juRM368_udyyS5{ro+TTqqVPQ?HZYvq{_2K%~8AHyr5;eJ>s_0A0Uq zQSFwS@CIP$*U#|z;Lczc(y|19!~N(B?q(k=sHd+>m1+e-V0!@|_PC%l7+#|&n%iL# zJ)j_RfKjjBm&Vrk=y`-^xF5r6;!LdWx^@LN(xkQ7V>UEO=QYREG~0FI#ttxwh}`BnfT`V!Gr50frE zZ4#t%x@2i|V3zTw#Q{99MW16rX1@-2r8dTRo!aX~J!=GmIQZV%iAw`k!Pyrw)B4n} zM=$4j!+&(+vvw5#%MJtpBk{xDyFRE+6hN&P90g#y8tLpu$Q3(cZJzvIHY36ecrL4t zG~q*gI7-{? z0VS#T);c^`(6%18GWk!P=|xn94XX#Ja*$w3h@tiBtjHk8-nib-aOH~$D{hye%?o1% z7P?~YI$fDYns=|PH51M$m)s=Tfvk*!W=lDY-!O4&lGs+g^tb&$e6F`~I>U#F<4z4U zJezS~A5rW=vei5Vs0gf_)_e4{#uR3sz~s6RF6JW!4rz5R5?p|T` zY)#8rX^53?b$C#S^RXZhOVXV&bwO+pnc6im*Mh=TmP8B}xQTGwi&C2l=Wct~Vo*RY z2c>)w={)>BR8cUTIVDq?LCFLbC&@$+M#WnYnmQ+#s0#iYC&z4@3? z6K70yBdtm!x$K=D>ItT=IFEPuV-7T9A6?(8O>eDA0)U~JV}{M+DcnedN2^sgqc;S2 zp2!Zc?_qq>?eImn56$vH@k?XZ4tN|6TKE9;9R&73zl7>gRDmN)&8Nj{A;wr`($83T zhtW=v(Kp6tk^4bXR)Qpov$^WAt~e-py=Mc7>q%THuf2RMVIYbGhiil1Lxb*=wHG`9 zsi@NwL0#|q2~Kw6Lt&hZ=w7?`JPs+AvbE2&1m*z)YY(AoRj{=a08O5EHNAWpt11PC zVa6b0X$Of?iK;tf6Ix^R>JezeqX8;|DY$tnu?gx;3zY;kc?YwB>!N)x{=@q;IxVXe zW$x{2UR0o`vTEm==1ga3JGj}-qG`w}%9|aPs0#GAa*E12yn9V>8V`7J?@77kwCMRP zlPSR~O)eqg=6bM^Q6vZ6RCuW8>d%-R+v6w;CAUrAzLoBrip>ocFEUZs=&XxUNi`3C zVMQYil1at&1jo*GBfZP63T6WDDsZFl#i#{cw0X2JYW6ZW?F*KXK<88jEk6ZNB%yhn zMB1uvp1;a=4;c-A?Ij(kKuw`HTO~o{s)po7Mw2g}r@sU9g;&ybPAsx^mE2wr@^x+i zaTS0xdWzVb3sZY&D&ur!`2<3%5u0MNQOgprB%>Svs-zH38c0`Wsg=ORF$t}oVRvL? zNe42By61(1qC2i1H+_QcmtdXsQE+o8oMd_G1*O9xQypw*zRsBB_Jfe> z;HTyZEN)wk^s-K5P$AoZyX$9H=340TaMc@JQdDkL@mgBPce zL*_Y%JaL(xYm3sRrmJKGdb9>M*jI)F&zHsx4inUp7u@nL+mKc5Dmv3dJfo84{$sPg(u!$*^i#bzE#?JUB_1a%Eb;!hLZ@>DPBtLvqV!*RC&d8%5sC; zVpfL^+{geLeBR1kstm?7Sq+?BY%y>B^^D=>o3hbxX!8Te(IG#D(vpbe$CHapj@UYR zRXd%;xK9j$9##+RV@{3H9ZTDNFH3e|Ou7KF-?qBtFdQD&DVUMDVh}{eu7DRz6|U{; zyfUuN_k>dO_49ebTns(Ea9#?uY-U#pO`TcR1x{vy`J{nXFXq6|8UX3B_!ECkTNb?T z=t+)U>VvRwfq3aVsk6tuNyvur_C?}5^;K&jqvM(xe-kwVnS{@%h3`S2X;|=3osL%n z8`I`Mn?u>wDsRs17(aR_d@Ijf&^;%O1NU~yQsX_C6tDsa&_)t-C@$hrX&}|G*Ien3 zXy(A=5ROSX9yO%gX<;S4^9qu;G>(_Ja&Nf?O!i^&$)UUYfB?`d(XOl9*KG&VNLp^M z`&f}%-~ha-!w?8c;+mL553 znkRO&W-^xG?6gbpK2y@c0pwxst%)T}tqPqYLyKqW4e$B{@${_P?k$wQ?0nu$FCgur zJlxf@qhA!7-jS@Cy{C-Jar&rM$8n3vL`l#QQIF|4kiNQ#+-=K4$|GO(*V$m6m=wyT zkz)=gO`=81+ia&10>f`{c#3_IcZ#C4;RNLD&fhs)d+kdiy(7A+XfG?A#|*8{1%{;h zX@Ql)Fieg)n2L-dRh0UN{JQ?uD^Jooj9n2fVr=2c+A zt9y+t>QlJTu1)5;4%X_-Y^O$WB6qABmXCD!73MpXD2Cm&oud}p^?P?%ilbT85StUZ z_XORq685&7=G>Y=>J;<}=nk~-#ml$FDzO#&q|RIm_0~|U-({&q()wmAvR%C8;CKsx z7jIr8j<1z*Ko~Y8CiqZ39e^%-(f+_+G)YPhT*>aCzcrwEW^OD8R_|!S%eAL>+l8i> zu=~|>;_+jqJI#76GI4HHhQmUfon{;qyGbRlqo1D#j6%u{2)r1%_cDrsuR1+lX|!vh zAm-lm5I%1g1%7Y_z0dNt`-V%3#rlOY3di^hgkXJ_B{|E_nMPny3LSNP~D zTV|_I%$v?%&Q=k*XBA?p~u(;6keWJN6A z>rC>TL@Ga`sM3&iAVW<;9>Ts!2&~68nNa8x``$)QxCkC`kexNyY^PCG;F&P6(z?D( z6!&s+f@348W!RTB^jz0B#*(`dGRSg;l#~|*U(SPbXzW{wehiC6{`TbEnv!bf9twDy zoe}k5nYi3G+S9{)lGn`=d-B9e#C)<&-}?ewLB0UD0`!LW9!%Yi&5Exe94Ul}zwK+Lq(|=^p8|2wBh6VcEM!&pP?dCN>*!OidG<~p zzfnb(-NYclj>!I;!yBE20Tt2x@Nl+~^U0>1vax*n1lD=J=$)6*dj_Xg4_l?Z@iBB zX8KVh4p*2<&xwU??P9uLaAd@DpxhO!+LyHus4a8mExZMmC`fGqJ9~aZcp-zfEpLR- zycx=qo6_I1I4cnV2=w-|c+NUwmcF22Qz4u^ROv#JZ-B8i2bib>IWr2erEwv$`@BN% zCaL!>n~%Ll__lcM4FIi==tM){kiXQkmU@utNa6Nc><%}41c-o|-h%t2f-&k_sFi%} zWb9i;9P(0QPz$d*O!KiwJjC1GQ^GQAxsZB!1*qs+{o29^;1HTj-xBkga6=K~qg{Rb z7T>mm6_g~BUmToO9#V9VQ(;{9qcgfh5Vfx5$M|Yiq7ruF##uF%i9pz2SLu*}3DOhs zp`!=X#jm+jOCmh_RRFt6z+22GeiN%63Aj6HSNsH@_v&i{dd$KR`8=!xuaeK3wgcbM z&2k8h!41FKn=}cCWH}wL+1<9;$qDw5jkfd<<5!Ns9vY8ZXIw~_tTgBmH<&t~Ig?{% zK=T#nQ_1$+Gn8qDX#>w8+sqOw@d)I1GD0gTbioho+}k_6$_jNMf}G{KCcV4vxF+D2 zoLo}eWR$ZS%V`h2U!*s*(J;CL6P0NK?l4m`<$CnMS&`58%55cD zk*l71ae>k;;bDVTF*iS?80&UC%stC#(SmiSm(FmjqJ8=XLe+s9@eOfzscw>AXv28Z zMQf5!G2efP>u9dVdyj(j__fY+e72|@RHJ-lS`?&p>M?WiCTLfXj$B^$VrfbeDQX8o zLOywsBYmeK-ja`P4+sy8T!Ec8-*fh;(_?OBeZ4q{gE&jCX5iT)u%O3p)%_J*TluBf zkv%m9c;w|#vza9)?0 z5iRm%?^eGo7HjB-iI)j;WEv9=xsrV#jE`TGEft}gg>Y?;`Y|m`y+GJCNQYvAY zao_MZWTBzg1Y}galq^%VEr>~ORm|q2hf*tD5Rxq_2eUO8CfkRK=x6VVNgE(|`djx< z5F?8zLNs62ZJ9en@wdSxk$$=ByViUM${~XT9l(IZU00#cIsmm9E+#>ku_F`#Pt;@R z^_t1hSdg~^@7j*3mKh$o9g;){y@KMA#z=qAZD6Y810znCi-gaNo@NiyV=ScCqB8iZ zhUwmmnj4KFBJ2+0XOciX;)xJP8ci(|guJYRm~Z8P8~yp}vx___mkj4K*+Ej>eVvhF zVbACRhC;_XesTma`viy^R>&0F6q*^flJdRBdCr`Xudss+YWv+h_bKB%=dy^!$_A8l z%Z+D;>JTe)?ORTyv-&z-cMq8J4%C*tdP-?Ex`*Tw)t1A;1(KWV{cK*6ECcBX+xEl( z3sVFp#$cfd<>@El1Yd~53$XS_@yhLGo#?ZTN065(DaIF zp|IWwQp;gEiNij~Al5?KrUwD3$&62vs>sK4TAudaGT(FH^Im#kkMObM0j<5{l5@$2 zhpj}u(3BGo`SID=BO|%q^udgC#Rr$ea0yjI3arf~n1)YB>_vDD66)Epo1L=DyXZ6D zT2=avOISUI(yRO*twvfp>9}GV@+pKa~s&)xoRG zf&UmUmJRcoL0j{FxMM*;$=<4R&PJE)bU5369?DiQbeFHsA8Bvn(7Zf-W-4K2!s`U4 zX6OAQr-i0W#qlXHM%D3~m_6hHg`&w;UNp{T({;>T;F=OBdjrpHXRoQ4<8~iDo1G5m zphC+>wuZ?oSy~iN&@EEd??`2swT(b|H?B)7han2F0&QobQU^7pAglTw=SyNNK@i|K z2+btS7ctG6tOo8EK;czUg9_J9N`SAn4-63}ce5X8bsyI9rCrhF6qJ7} zTjBlKE+db0lLw&lCPB9RKt)QuC?<7;J;MT}6Gz@rJ_;m1gH<~T3&f!$VzN%Z24>YIX4t(b;o6cS(gg-{-ydnmFtgy%LOLs{oy*i9H;8bsbWo z=4|=RxPLLO?i*48Dp^hFF=tU;$-;v5Ue74`J~vpMz0Q15(2=5)BjuFIV6`sFw)J|a zYe9WpxuoTulNFGcC(y&P$Yul0FxJgD-Gs~saJ==LwOYjxD~Q5`0XmfT_DSHfz1P%R z3r@75)`KR@1=Qv(NlZ%37mJE1XeD7x`sz6^u%DHTb{ry{KQyI&X%hLWce=XUjs_lS zRRDKmSmm>RmKleT7*IHf<`G<(ao1sqrb=k-~}Ox8i+ej7+=$YD#eFAJep_ANu!yD%V`ZNUz zxpCi7T1!1bnlXGG1t~b<_M|K^+PE=`k9yx>!li|Dx&S61A-s3w*rQ{qLXwTciI^Gh z+@JF!TJx+KHkW{R#=9Uo?|2bZ^q9+~83-ZxezI7AL}6)>J)Hr}Val$vM+(+U9I$xokf3tIDwo7UXnSz;2ICC;2? zuA4B32Q(?~nL8$)y6@smxB*=`WBa(iuE&!K9g$ru(=P^&>9Use_DW@HBm_{BWLvdl zWP2}0>ScI(&4MkHtQFPNzS><&(Un^d@nJ?agn)YddQpafI=XP)F7NY!dOc}3NPWP5 zUO~%xuf`V5B=zK;?yAMvYrzy2W|(WR^R|AdM&OB9V-LKDjuCZrWFk&Q6esLeyFUGX^l0>nEJ7=lVjHYqG{^WV?g7pgM5VwK+*6PJ$$KJ#*v1qJdtS zP+0{phrAM<=R1~ad>Mn#a~CXaIL}Kgx1LJhZ684HfH?=74yM$b=vG%sxu<%7kGOp~ z3_IwUAcePy$0?}gM3`-#3rWhF!aS*#w+*`KV?k;_U=`EE2<^cd&JR}Sbb_Knq%2!s>B{ zoUJpi5<)Hok9P^6q_!hiY618Blw7ra0?kv(%&wOvsYGpFzI}}^OOLK_H=tgug+HVX zvq~Kl9w~3wq)!gZ(|H%4WSHr!Ohe%w+<({ zJ&AGNge=`a-ij3m-l629%`HBW9GP=A+Fv{PCQ6Y31KI=LM_N00JW-7_K^oA+sH_er1;bf?R&Dr zR*&P<-w?n=K94&!6#~O7nFX){e-h1D*`RMGFV(T_o?12E5m&WvBZ$|KixY^tx5rvD zMr^ZB$4M1J^|q!Cv1O4X^2!R2Qp~!L9HMujq+S74KEg^dg}zHxGj;+LUx1|ahVqjp zn5rdc6k92!ki^#!O>=M4=mOzokKS$pZcl^BQ6Q$6RU?oT<}JeU%yZ$IEjK6T$k2NU zYp6+R?UDP|)7*p1UCybRQv7w1g|?|r*@JCzTjRXaB9Ty#c(u&n*qv~Lk`n5+; zw4715ogt35JH5+N*2u?zeR=MLpp9|__M&v(3K=&A$2+5f5DBPRwXVV+VXEL53ps-{ z=^Ctgl+obIZ-;?pID)wx0Drp%KYO<83o{3>8v zw9r}^ePEEbwU;5&xICXqXYhd}F9UL7ykwd2JTcCfx#FYPZ+E9fOKap}wH9pT^^3qz z+gIb{vrCxLk`~R?wG}8=!Om3c8Ey&hU2{eN11eMRltwpj!d|W3xeM~a6g+VpWU2QE zU_n{130pYdHS7@_siX+|#Yr?dvTeOP9g}rO8bN+tEC@y7G)x}Z4eyh3kuS=-D2e4n zm$paU*h5nkhdq)lGAp8Q4@NugI&p1{?-`f&uMs8B8M%GEVQ-7GLjn5qCin%`^H_VE zjdTO-ODeD17p`MU1CKdzCE&G52GL9sZ->)kgkmrVSCy1}exN``Q(7uosIhp5(`j3e zrTh^KmkYJN&FhPJ4Je^a(mcTb_i|;K4h3v0^b0dW@}(c( zZ@l`Qy~iP1-f7Bp!50Ouu5w%sL%VPDSnoF8B0><-OrAc#Iy%RERElYKjT)dVPK=L& zUNvvBP=?J#L7#?_1vp6abCk;A6m*GsnA!V~LC`rx-Wx_Xm41v}kdepH*`B^q=FWMq z46xoqO)Wy98gDnRFENGj36aE2C+m+*jOIGNr*G zbcQ06FEX2tdz3GrUKvYg*^3=|EZEM;7qkA169$}HHf4*;8$H6_T0Fq#y=2KpBRrT! zD?>Jh#zy+4P&7Su_sW|+Gsfb;7%HOVE-yGVEq9`g_j$ha-aK)a6*Jz~u^jjKJ>b*9 zeq6LJcBy&5O5X2qke_#Czg{4Xpy#4`X^Zu0=R|pX%ppC}`@O42FU>t$AE$1YiW2(i zOcsO8)pH{ZQ51WUN=FAyV#&a=x57i$+AK(>S#Ii32*!DuAEfi zgks(kxu^=_L~a~A)VQz;7~qG6tm$XMiqqaP*O12!;lt_bJd+;J5x7Vtv@VMZMOMb? zJ!!C(?yUva)C!bo+}pki^4fS!yf)eWVvibhw84+McssT48QCFc z=ur?ywx8&mUROu0bUuhEoZc77)V3hxP~Lm%+l0KtPgQw{Q05bJr7z3}tv2U?vT$VD z&b_=vRa$Y~Y|a_VqrvvMrJg^1>jA+Cd5Y}sEv5`9kx^u8!i`+B5`vrXb+%^$YlY$)aMd$8K3q|xV9D?4@`9`u z&sML&O9>knAA6UtB#@~emOsBy)wkf3=-Y``lOZGZALlZ#s`BV^C*Q_F(6*!+uCp!~ z25Y6R4We$0v;g5F-RF$0^$vlK1|_5b<8Gr)mDGt^;<@v|DuxskgvZomJ4@H~%`j5P zo^X;t!9%>czJ|=UwAFLRqFhAcdundR0;i|MlGc!aX4I|_mmyCQ0cTQlt%?% z8ZM*h6?IstCTJ_$kaOsJ&Q-zf#|wnXFb0Yp&M_^X4;twiqDVM#fgQ| z^@YPMBfZrudV2bJnB^Xy8!&=xvnm6cf$!0btwoX4LOn#TvwQ}Xw$Y0%ezE8VNPS_6 zBQ7yd=d{WhmHpj3-&j=MXXlk~+uB{i5l-Vus-ggd(FvjW9a4mnx!H+;#sa=2+OVz_ zbc+~3Y1;(sH~{uSpa^%F+GdQX0?p}=4b?RsgW6JGWUpkc7_+jbC|2^0Xn zFfh{fBLr!-=xyloVVBqB0}2kbTgt6@;PYS`C|&@@16XvbhxE*F&Mh2Xqa8zRfge9> zZH5B$I4mh9A+7}j0czZi!hLxpOqbUXD|`2*?Nn088eT}BfMg6E#&{`50 z-#tiP64PoGzJiyl=wUi^o+G15cGbxOgOAv`c|EzjbKLnghNp^)M5Jrt%7fq^D=@N(W#? z#hwxifu@I(&{1e3gZDn#05j?<D0L*BfFrnWtq*lmppEbGQ+|)^fc8RKpEVz$!ht}VPKYrcy%F^a?1x?6=r0LtT0mD_Q@OeyZx4LwzQMZ?%({F}4z*W&26JiWKF+ zd5t3LWq#?KiB_)6B3T`vyB$!hWsWzVl1gF_5w&Y19xe7zaZ?-SweL|yXxxYlJ{)Dp zk<@1i{j5+P(hEYzS7`4_7!>9mohqI0dpnATSpWe~BeEQ>RjgfOY8vFIlb1c822T&s zw#Pnh2@+K5H&{xJ7J(|sOp0L}Zy!%mkm4Csn?Epj6(ay@BvX6~FhG-*#08xp2wQ>H z7`OdwHZtIey!2^2XOP`0TlN79al&0-H%+ab1-1pud6LEP@@mi8sCAkUQ(pD-%yx+v zzB*;LJ7=7Fd(rz$xX4vOMnchWWZk6fcI^%9<&e8KNO}YvV60M_G2J8OxG|-N>!|$l zYGdCEZBx&L=At&)VyPKeJ&aAlSGFBWa6KzxO$4tacSF)L@8s|}GBD^(-Za1JbbJgf zsdA&Nb-;uaq4AUijsZx-CUFq4;o^1Ba_EFD5>%+433ti1Qrl3Y_*z0rJSJ9C1;|2t zLfDef2MMavUNYqG%&zb4WU?KyRz=^N&2%d(r@Nv2y=2tUe>(i)Me4P zYO{6E*QH)UK_{%YjdBe%O)g{61875XW;x+-tmPu)!g-14qtS1zOoG$x+$_;p8_6~L zDsu3NLB3a_M5&GL+&q@uZfj^{_O=COBM~IigFrc{a2}y)x@u*QU!MQ+HWT&GPF{ke zH$;_H9#N(OH&{t08J_BUhT$=kSL0rm_B;p4^UUoL!W%fee%#vm1Vn@46;n`=;|5o6 zJ;R!PMA)3F4}5joMIQA`XS!@3@gwer2xQeZa`+E*S0Y{Zm=hIscg*MXo~sWR(zYtS z+Jyl=!M#cndwAF+y2o7Yy?xwQZ_|m4_x$u^sbPS5aL#gA54UrRR^W(s;-m)#E3WWP z^O|=IRN~OtmPvEW1Xn~PkTY_#j}7eQTid)`IURiLCna=>u6fLIyGzb~xoHFpOvkOw zL*&K{^qdFPXpsu~@f<^VZxeX6tJb+>G%*5UjvijsDkkAlm07i_8j=Dy(Fsqfh762> zGSwqnPGM-WiPh>JedpYRy_}kiGu?!9~+#r1-aFWO${U}syMTeDmdz05txQfzT(QG|}e6XRY+>_Vw82L!Gax|e`whb&S^ zdLWYME*q}F8sOfk4-P-$IDX2t?XXp{H%sdHgbkh<@wKU--YO0jkOP|yQme|iJ>lc# zGJUiHz=mn?$dFM4D!iv6k5kg>bEw`qX^16RAC$vqmKiUd%HdsM&Y22B z)#>@mgM4>n`n=<1DWG^+p*}=LyxlNLuV^03$}#mPG5DOTRuxxD;8fy>I8fp zg2Kgf_>NTPax@0|3xax)Re7$~%bwRyE#Et;8*NVDXmD|; zY{xOd^9t1>Dzg&RYA}8?5{ZP~vflZ)rp(J-VhF_>2>WTB%Y$JF9=U>I+$rAiq-;nOzRwCIv-eT!v*KL zR@CjLfPy4X6$iAX;3MF8VgB;9Tij>ZhBQvDY+)^_~N}S zxCT(RMg`E7vx%dy$O(Idb^Fp%oFw_7#vXXVwLzOJ`i=CetN?Qh=B#xQde58OeP%@U z5EBgo&8rbLN6rXi^Qt9iS!-Iv*3E>upNJ`#1%<2+I=v(XI9>)1ZWJe&CRw)P62%SC zsGH6;Lh}bke_j<5?JC&k$}lEL^i?}8mR23>@aE`%TTPWuP56UeE6tf z-Io9iV2oHL#GvS2!L?&mL`W5o;N0`WPbTD;7J&Ozv8s4c7E=3 z?)3Y~qO3u|9*I=c&(Yt~CcHf_-#vQMt^m}W%X*j!wQGqjUilWE9y6LfD0<;6k1{O{ zcL&m(lVg{O!NCYNMKbP*Am(as1TZN1MV3UrIQkEEW`W|DJ3|L;b|lVO(`Fs7L_w9F z660aN3{vw~A=ZJcRZlaE260V{;c;Sm@4%*W3O%-5*TISy9NLY{E4zx5eOcMXQ5|Qa z;m#R@1#@mq8XS_KE@Uq2Df;*@xwpi&S7Yuy(nu&EEoW@%hRG!jRcyDZHw!H+*VU{{ z?g#`Jz!l^`Jv!MJX(u^dpxe4&6v>wnHAkskla%M!H7M*(n2aIdV{bJ=S*R|mWYV>! zPq;N{bD~Qw$y8{wL1g-Y>$}6kzEB`56O#%{vExMc>mn;9T}z02xC6TSa!!&j%Mg1U zEEdpi=T#gXO0y%7A&r>>?}4in^|R;e4{~3v^$PzOd@Iiyas=MNU~VpwsS=)Wj&&a% zEws}rhh|+1E_h}MTRIpxFNt-wC@FHCZ*;7@S^I@37hNXY2Zpc%cr|i?o`DyJ-z|F&-A4R3V&8axPo|#bN}r8?%~=m$(4--uO*Cv_9cY z+?uLu3YRM^dLtrvTr_~`CP>Ky0V&F^8A!(={P@5S^4@TRjjPG!We%5nKftiW**TJz zrKqdd?Gljgaq(o4#%J_q=6qIF0ebQb?x-H@8?q8d_Gluen_c1Dh$2D{zIr`n?hPhx z`Y<6XGD?RgTOlgZY@qdYe6!h@Nr=}iU-&9kn~T#t<~N*GPp9K< z-Qb~Q0p0R2sZ*JCdDNZ}`#1(C(92`!Zv&`$9=+_pS>rza?uGLU`9$Im@b0P^m zQi9M;oWI~1tsIM`uFtq)lk1DnnK~_+hcCBW9wRKCrC2r(S-y)B3D-PR8>-hKVCxy{ zCvUoB&&s*;r_f#*qSy7^Tantc;I}o?9_Z#A_1=H9Uq`ElK!7ja^UQ#CcYo2b7r;HD zFcq>|yD*-8ma?LpOlb&h1Tk@%BHLMGEF(G~rxRk;!|qEVJODYK)?!W*t|vM#ENj#C z1YSbxKXF)w&Sl^j=0Y$bfP8r&dDH)`3Mm#xGcYXmb zx6D_vCSU`;=%HcN-kN%bNjc26920Ve?vt9ha?~9fyg>!yu}EFAc5@!BO|s)WW~bR! z1!>9cUZ~itNIXl&LxVm(40MG+5odm;9h#c~nQVtWloUE)?Sj;*3(a zCy__S55f068C}7#V!z1;a7idyK&*>X30&<{$KSO37wwm7b&sLtoJ0L7dNe}I6)76% z)0ckR&3N(nEjKA}0U7w(V_esH$xhbzxB|J(vWMzrxng)Z z`YWm)Q5juk^v*7(8zaMJ%zbCAvS;~{QaX;e%dwYLb>tvN%x0t!JOeml9)MuPYc5h2 z%`oNTj!2kRv!+*@Rd@@c35jsbidOU9zVX)*0DRbukIQf*D_2o*G#_!(nm#P32OQTo`KVFi zi73+OCBc;UW6KBE06~a1wJ?uFTbpdgpZ6+FK7-7F5lvOVy?kQtm1{n>A~*17MJyzP z-SW%;1U4{ccJb`jg$ba<(Z*?udQiFP0i_nmMD19FFw>dbnbrLsta)KoYJoS;vuE$2 zfd@&t^38itlsn@iRJgCxxR?v;AUvj(z#@ z4!#$jisfLY4P?_)mAsoJ+!a7_X9rUJu;B@DFAWqer2`ZpPuya#0N=VfI;h3g0FVZT zM!ET0h;!^HDxZD!Xz=m**1!wN9)?IViXF&&i&E;wim0jHo1?Yh!w9;xrb01z&xvb% zvLe7`ag3|l`0et`5u>;I7Il`jQ|ZbD-ZQA7+(CO~o2CW*sG^ixJ<$djlIZmW9mb(l zYK~O_q`s#s34!xmB!^~2x?300={XaMKAjQX}#;$y(kZ8(JP0fp!)zTvwId^8xG2lt#v z=?0m-ABl{>!V0kwJuRXEY-whX!tlcC%%NT1>DFo_XlZwl)wm5}6n#AivYkDs8vWa)8IV#Ov+EMju9-dn8U zeQ?*P$+)jU!wF;F0SFs~459~?lfSB_uI% z_2;lCoVqamMocia@U7^gKSH-T2Srv+%X`3$_9}?kkao;Bl$AtgBGQnrgpb~9XIA%n zNjXQGgPM~xw)48vvY*=%tS8F5W1#)cH#vPN(?`vH9_?J1G`I>0(X4um08OGV!oKaQ zL8e5wWv6_bkRctb{f@C;%>nv}RG9^Dn-rNX<{lnoz-^i0YHX#SDKsTfSuQa1u=~1LrNbjcdq!=pSFXfQXaZ8`bp)QnloKyYScIqN++jiMZqHQZGgLX-$*n(!4 zr8q~AT>WSa_&sQW@OLI6G~zE$qDPw}u-DZ$DGese(ll8FB}{`k9%qy21CM15G^p3J z(?UnF2pJfJ&-JVxk?caT1PAx@ouOhW6u&nHp&CIv5H3Aw0N@lAXj$g*1LZ6UBZ`~o z-n1$}qL!1o5GC^pBB}ShJN4DfC_R4qP>?yaoVmNz2$o+#njlh`kIc)yOHQ)|k!D+BHa<*< z-4)-mhkTX2NwH&`2U8(CR7KPcSRMn)fsNJfBDG$JpducmImC}gY*_GJ5P;bFN?t-E zrh~qc6uOko+t#4-rt`!7rP7ct+2@*vZ=U(yV|)(8Li=nV48s$>%4?_rczfqhx|p8f zJb-pzdQ&^4uj_Wx+!qea0bO1rh;^O3rAFF@6hIqYC-y*_bbqs1PI_T_!PYPGF`Af` zcv5+dxv+LVXTm+HtSz~m+f|dP*z?k(y=Y>qq25I|Hg2-& z#cg*Pv1lzvzCn20m9MqMj?j3jaU%@__KaW*l*?V+_Hm)FqY+p>I*PX!V(rC1Y0K9^ z$@?-g{ViFen2};HRt ziG{}Vp^Y3Rg}bvJl)!tH4N>o9oe)V})fmr~21ep_Sjv)3#XJut$WP#zzJM2r*t^S? z>P@95Z*Oqr2@SeaAy7#wLuAZd9|DfFq{%hJ{F6;R#zX_H2%XZP`jXuzGesH+ciX{}DgFr?KL< z@d}hG0e|P|3yTf&&zFMOPrE}G{?rQ8`Q z_u;$*(13gzE9IjkNYW<`)!XK1*Snq7vB<1;5jjbW(YyuSv0SAfJJa`uokI~Tp#&)( zHK(`4y)a2R+MQR9@`zIWEpOVgyq+d?g#ctInO4^3%kTx)LwJ|ML{w;RYmTbMG5`jVeN>Yzd zfFbVdcQOi9Lq#zd4K#{@K3Z$*YIWn&+nYt3aZabT%Bydr0J8a^uOC%4opN)ZA2VS3rnT?o0L7!DhdOCjM5_Dz0m54W-w4X_{4~5fiYOfg%B!E{vX$HSskfRcbsm zQ9UMOOrF4Px|i-WH?W1=QmzF_yd>|H^1`hyJ~>b)^RpzWXXO7V4#*cY% zl0=0m3pix6L3f;lyhYGwHUV06^(8)xenSJ2&+&W!{q<{R#Fu=h^0-DD2~nP1$(Bj( ztY$1t-7bJV+?UaPd(TJ~&)n<1u70W&TDHxB;~O(jrhO-i*F>jg2c_Y4Z^!nNc!4kC zce~1OE@jdPAKZXFdS~&*@tn^9?+jO-Bj|9~Q=p^vsN?lh+ZnMKkZ^d(?oRo3uiEuG zG895->sIgLzeH~=}l!mV(3+QftOdzsM-$Y~qZVsvHJK9cB@gaWu&!K}80 zbo@xmrqEoD7$Czd5;0bX-rWPqyE61edf@xs+Ul_&M`{Wp;|-26ThpWTYkuHxAlMIC zuy!p=6}lt|(q_ui7bxPWP^uq8tCSZuw)iUvsp-DqR94n3I%3p-I%)x<8_H3?081K} z|Bw$CeUOgWWu;8W2yKJ+bp9WkSlL`qYneJ(UaL#j~tU zYeO5?+zPKoI0}3(Sp(`egim=$k(hXOUyRAcA!CfZu}YVIoBTMa29-!AqzY{!78dt` z(N*)#yml1yakTZPR~_?&g(Su!4S=fNd&~Cj1z}Xb%TD0M3UOz6vl)I2Lh4uD%B`N_ zoOa#MCnkz~BBuC3EK}od;4OpRqXNNTZtq+>^ERR|_0hoIC`5p5RN;#2+9*DOuEseJ-O5NYiaUVPb^46-+iYX>Uewf3zNI0@lCqfh_i`%CO z7YAD@qrLUWpJx#@A8ctFDHCU#-2=mubi8b5k%tSdp~{Eg^7NJhMtChjHJ5kAuIvfX zIZB$h)be`Af6P!l>Mnyv$MM?u41-Tut3st}R1cX%xX6S;exqnZ#gORUC*a z`fd*Odc)vt^?~wRxyYmkJVcaKdTT)E@2ph1Uxv_gc!{uTwOSO_JQH|3z(hxZqk}&YxR^?7*vCiwRVIOhY6pvS^s z9$kyUQ_f0YlB0P&j~|^NkEFyt!_HYb4a7me*AM9odoi`+;O$U>&}h4rOvPKQmzDaK zj;6x9OF%Hub_o|edkI;P+QzVlTc}FMCu?45hUl##9j!@oq2rsVRu>psw0o;d*=*`s z=Lj!n2AV9&6=7}>iD(vUk-M8xD_z;#Um_;tW8QL{;72jyPaIA4l(9}S*GK|g03qHs zgyOwxW$hYQ3tU*(-E2v9@iff!u`whZzUoRA&3dXW>ms=GT=`C{GsPj`k>|_ikg#R| zs?3P#fCGuWm2c+NzL+2CqIt}~e6fKX%192*&fRj*8Bf;Vwz&X|(uNgZTDWAZPvk(b z&#Y!V2Jmt8mN0k|vqUcY4E?Y?cbp$xjna;a>dO-%xNL~IbP)zbi>P?>gwKx(bB~qZ zR*6n`Eb?3lyO8fLR$eSRm3;UZIPu#jPG50C=(Sykwe9h`%-ryMs=KF-VyN@m3<7TlhxJ<4{Xn+8A->*%pNmRTLAZ>*;Tyj z;?0g>7{f(QoXx5rnzU7WI_>eSM}%zWUcP+sX2*kVA$cF+thP+3t&_i&0v#lTs$uJe zWvh3Tj3IiRR@vB@#Vt0{PNK`J9#bZ6%hUD7o(ON!VG4?c&V7@IF7SdL96)@mw_?0#0^p>*{GQ9E=q{E)(>8TFa0w zC~(>05iMIj)8{YYo*&T?KL=azhdmkbY!ddZP)p9^ONrr&CVe~DZOtAIRz=NJc<+hK zbShUWD)Bp1_tVSQ#>NI^F4QT`!=)5#Op*Q)0{wTsj)sSZdr5h3Fw3i_xwCV*d85AtP)WQj& z+W>r+l1*ne66Eu8_`Q<>Rp~luB_6`F)#DdqCk5m^T~YYdhl|6EN$8HdY-cUm(hhWr zs|6Rv4U1jMW?Q`q!Uj@^Zd7OvpDxy-KD<)OH9H!&q%$W;@5}7UmV6SF1H!ypsG^eR z$4JFRsqa07<-Hnyu%6!8s7~q_53iCdr3U8NKJ>{x7v^D3jUj*M-9f~%FX=mp)S)vzbo~f_X4)$|nydf@W-lErhx$WlqAN9d;l2W?-%AShCb1GO@l^RQO!fglb zg?A&T$<^#=Nep_#%6ECF?!3<+c{agh4%NBubjLa4rO{jrKFM?l^?fEG23O(^b4fV! z8sPYGW*i`F4bHyB%*UsAE^}-(G`&{*<|QIhTU+eaW9eSXLQ;H}%YJaIK`9nYid}Mo zd2gNIaP5StE6%-~u1{YSrQX0sYH^dRP}XEdo8lfOXtFCPno}{claV~l-BR|Da(c4I zuZZ}}lBr>MPW1RNP*AR6-JdUyx+|6R)HvA?TRuSOlxSfHeQrH#58=Vi@()cpmbuH` zU2+7W&EuisSmh>7!{dUYd9lKv6^XCqJ%3N$aCeHWd+iG`skuR`64`#^MhXn?4X-S> zY9%IKPZGXSK5e38J$Jqu*yonVPS1)3AM-iYZnYr#h+8uy?@KXQl2ELxeFmzwY~kpj zB~Z?<6y>scosfgyb^*FbFh&mFV#78@DbV@?M{xM@c|S40Gt8)DAUssw5zUBdRLFF< zItVC0mPyj0C$Oui*0;4_1}JFa-|YLXuVBR}QKzPF6gb9)UYNAM``VQ46DM1sd@F#450@o&|lnH!5ZtZCT z_5kdq%L2Y2%Ll?fg;i`gd%KVE0ilqdJK^k+4erf**REWSuA&2~IUVHk!d9L8+1l-s zj%-qYnPQoK?jT3ErOwtZ#aUTdE)=QHdGU=##4(Z3mc|}K&&$bbw0Sf&1@Vj+ zoco|`9#B3)szuwTfftUM84(gQ=dnEj%$)C4%VM~vQ`WtHoyQdTANJhOn`nS|nebS?&V@%Hs9pQOGGie42J%^={Fn-MCu41k6xn1$AmfEb6N=U9x(j z!Lc|a&oO~aw>3v<@@8>UAV)#=3O0^qQ5Ti0&>tTu4s(;kMdv)M{$UxUdC@#I()Pk@ zIM_%5U+ZuIo7q)!?$Wbdv&f^3MaZQwaFTaCz5XnHlWW&@0kC=WT;6q1QbrHl%;tzT zUXY*^@goAz%=3H+s4;={-buoW%vME0*o*fH1Rfc4iMr3hSVa3pz!=+DdMW`Rx?;Fr z47*qZ0+cjjY&tp^CAWnDvPfUZNn}N6liP{lI0>FXK6Yax&+%OBeh!-vy>~E;o;VPC)$)ZntcAq%n-X9y(f!x;x_?@#ON$p;8^k%qeeGYJRVY=3>RLOgcLCBtf|=HcO+PsRon!_^n_1yU5h~Hxe%{9OjI70(XyXNr-aVoakf_vd+`-~)3-C^Yr310Z~f7fTSVf%zUYtf^fq4-#>8h*%>IQ`qAY zbW7K1gFqB$c;Ld%VDC~b&`(e@+KvXp_YE}0iR54muE&zHY3~VmK=>O{O+!dL zagBpT-@&u?>O;#1>nfA?s#m=kPqk!V!yJp_rZEN{aK6wc7C>wD7q0I}(`57D0kk=; z29ynjfimJ@O>N41MpajURENOB($rbXqr4bKmF5cdUX1s_r&IU%KARb0Yyg*YQ)V@|SztQT6T)P-G zB~`yCjWezmM$B2Ux2L_kPY;sC8rsrv!Yx18=ENmi$;gi?}58_;iI66@^vP^iz&v&Qzu|1T>og^8NPnICt z*u2cJ5}hP3C|ry8UFf^$VC{#hj1M@iycCg>O-`xb+-nv0h?ji#&>!Dq7p9$La~WeY z3s$prJ)v_1C~~0Ku@<>5!3{1ue3)QTaL7gHT=)W*VfKiU{k2l>y+a#Z4oBinAjWzo zA@jhyEhNd89E)WKjq3#?BTc5-Qv!#UFgrJPWHE=Xu$FVwYG3<(U zJRV)IQjGgyy7@gBcn574Z5INkJnoC`LA%zsdK-&rx$3MYfvV8TSZby*pwp~8ZuUE?UqO7U@B8L(uFo{0iZNEh2W=k3uQ(&x`=ba|h% zBls1UTbZh#SBc8uKD(?%KQ6OQ6!FFank=jyaoq>e=>VhjFq8~vqp(I@&oJ1=XY6?g zfWY&hr z1rQxEJyQ?-dNuKRYqRcBx#2_Mot73T8Adk4lgOG0?#&m2_!QkiCG6I+kAhm767N|F zaK@Y095H#WC6?o|Xe8G5#+>cxt664i3K$&$Tx(>vET$JP&#FjqqiFp0skA(Csz(dO zA)ECq(2(rLeDjUzR`6(?mb7LI+-oj=`;IN-D1@X*^1S_EPopQM4u^bU5$;8#-Sf`D z5v`cwd9y3|KqG4-(CMLs|3Dd$d8a0W8-|n+l?+jcE4u>_}##`GcSyvOW z97iA;sXa&EdrP9(%@$dun=wA2_;TNs0P|i|b=89#>&8_@f0>^2`spg7ZKc>Owe$0c zry%LX0c!=WDcX9uO4p3C{%rE)y8t5Vo#B=ZSNC^lq{uas&BW{a_#KDJwE7@zxK*JG z3~YfI0yQ8zPEnwSV-e5x%8zI)!BQKBW=-Tt!nUC-sCuDzAPy34(}eWy9dk?Y8+t;o zUp+9|dpjE4kSr+wsGsv7<40!B$SeRw;#%Xr~e8;V9WMOVIs#K$Asjg4~KlfnU}TyTTErT2(%H zg%f=gvBR5$A?!|O@mSAdNRI^0-*K_@ypV!6RyIcf%WTbg+9y_RVxlkVv>s~q6YRlm zu%1p^AANCj=NwDM9ir~tL*|9UPgm!(uDxD*+&t>5i#ip6y**`gD+P%+Ar!{D(_{IB z?71BKxr4XDxxFE3giDz>J0+*Aa*JCiE*)p098aB`{ji_IGY@QCT#?Wy?I%k1jk79pfrATQLNSdIvrJaG1i5=nrH~c)pqnU_(^j^ z)GS&UP&Z-Ni!)7Bv+KubC*54enCMp`5|@^jXvtGlErhgp%F*`v(8U~_Oj*^VA0p1< zy6Y9jk`|DleZ~{?LJcyLeT$}1l91*RUxXyyn%bSrpr~T6>}w+|%2WeM1OP1Z=jrj1 zJi#HfnRF47Z0HK}Y2BDKDKJEpYKk0jRW^(&T4I~O;S$`VtGeh`8+jc6qTfLB3IjVx zm~~vZ91W%6FfAhsbIO|Bf{5ddHx?NYBx@u0L&asii(*qwaGPX~O*~L{JVDu)Xl+<1 z%H;2Yq{TObIYI#-qoZJJbiMYdgPfrIqRP79#5A*!q;y}%O?4ZnOM!NC<$#S~U(D$6 zaJ^gXJ!6?w^)eG$4XmcK$l6@PJ)NXiJ4b;-DF{|P8DdxZn0%dH`^YXfn`z#Q3+twU z3lbJ@1_GU@1y}`|8FS6}`et_PEk6_WXaHWy#F;Zl?(m#hQG6>f;C&7zMxfhqZ5zpp zWm2>`Y8d*Ommb30J%XCI>Vo1pv6vt}*w2y|6TA)(guMNR(vGH6ZuYhJX|$8A&5>Bo zzBlT`Gq}+3H1eF))?-H+n4TrSt;)yK7`87^OJ8NqBIiqbmYE`IOS~c~BSHofn=?;* zWZ$CeD;t_<2Fx==rw6W)-NFXkFOts2!u{cmvdiQN7uxO0_9BYys4RApZ|2d2Fc>=< zL|u`M8Ot01hA#|;0ubur^LdXc?kPx~!?e|-xA|TmgI=-UOkwZ6GqRM(wqjNvMo=EHqCt)4vcQth1< z#>FDv^z^VC&lb`oqvEaOF933Sy+{sPVB(?n@SyqG%hTi`;DOLu1{+DTPxO(#(0~0x zc^un^z;CeQnd69`#0&t7+N^;*Ef;vOCoZp(LwxiLyM=Z5ANbZ{hD$mrEYZwXHxzsoY}_cqz9e=Rw|dy{3-$hWl* zmFl$WWobS?Ww8u7ID zzM56{eMi{;vd^bG=i0TQ(Q~y~wUl9rj)W}RG2C5`#(-nwdiJ37RXxh*RL{b= z5cpom?TBkT_3ph}xD_*92qFQ?#q(iVz4z)G^1P(ou`cdeKTl%z@IiubtPMMRgRGBO z;O&r-Fa>$PBXziP0DvyVVEZoous zK#F|#Mjn!x?-;Wfr6sUsY*S0VmCPO)qq&&G+t8Sb?13vgzz%vV}f~M&!v$%$l0wb%M zO%6}9=niXyY8T_^VvLQUvt4&PnIa+4-&+^IqBOy0f|&2RX~uZ06GN1qL)FS=5qQDn zE7Bu8e6`s3S_L&huCvTvy^%^f)3+R>dyVhd5)+nZ#SotRb_;jygG!od=B$%u))1Ic z_P{HfUV<6m$o^!X;FJBdl#`p*NE{+&$6U>m@Oe^?l(tV}*<&S;q2K1Nk?pGqkGFRd z1o%$6XUz&kK#Y2JZdhp?mDf_*=OsAOJ;3hAuN0p*soKFqL;~0{dQ(jio%w?1QvFzi zl_D-VSur*W7|rG`Q3HYRl676*yVsCzZ6$V#JmpJ06Vq4eS~JtVkS~2v^&IaZjc?qV z7%C4BQ9EJ{$2o&A7ZLJ|7z2i2X;APDB=b@k=hTD}M>Qa$w%ASCbAMXgjtj~uaO&7s z+a!qsQfLno%ROztkbo!@{R%msbV9b~{s(^?1J8DE23rU~D|0U`8aaCCTl6z+(6pxl z(&xtSrt}??;!Tr_{4%{0uLlSPZJ)`)BMnEejfpox0RF(=^yzu_A;`;DqUdYRtJyY( zdsz9lUkdsmExXOtOG(|C@bJ!6857N73=XFgHlDNxhgbbF6EP%#tDbRSKA+sTa(9n8 z?JziaqorH7_*8+%3wv+39%ysD{ldsIWF>N@ZKnun7F&{sm|SzSwAvqu{}-hGFJD&bZe)<5Q&8jo-j9zP8sIv zoG!w(=Pz{y4@Ne0spPE?UEgZW+iKHfAeI-*u;Ed>)6N7t?dDfVGzZV+K>y zVK_|6_C0;;a`+yCHPvNnbqgo*v_PfjXyd*|tv(0GbO(pP;^x)|W^{B6BUmY3NVu3N z)(_T@ago8H$ICeDg7)bB(|ASF!-*%}0Ab9b;?-FLY7Ze%$H2cSLH zuTPSVJ9i4ROVyW0jSd;8c$}-;ZHHbx1LhZwjFSagLipHmGxJrVZaYDhHgYN2j0tRR zYtkFgo9l#QEly=56mzhW26|dOkeOTr_>RTm>6DsXlnnAa*+npsrld);+3i#oT4IyX z<~DLr^15N#fIR7mssKM0Kq{q@YPAvX_O#NdEIfJRN5{$9SZ$JNH;&~P~QOfOD*wrKAN zMG!AE=QX$BS>E;wUjQ7&Tq0pgmCEU-c<&x^NwNi#y;|-WPMldxU1LY#q|4PvO4eA6 z*C(rs6U>tn7x5k+n&9K*b@cFe7=uKa^+@wbBwiM$0Udj7&+_|AipFX6(cq;^z!4Uq)q+gZcFlo zkU5uIcG?xrd%V#>jM(z4RmH3~pbxOkaGNH`cVSqQt`GJw{awDH@F#CYrZS}i+EiJ* zyy-nWetwk)4`?sCq=b63$N+8p^s=#Dq{KN8B|03)dAOH)s1pguuvh{cQR|rPhzeOqRFv5q2U+62*vEU;A{3c% zERxgvCi015PP~B*Q?5WOplFGQYftSe-_ygurzmL61?sQqT0!{Ohsp@lL0aA zyu-{Bn&<~{gtZw`-uYPIs=UZ()>>Y@m{lUm+kJ%{Av;QzBcmpWY^Ovowd#|8wlDf= zT<8h&KpP%SSl>GI;RX|#CI+%;a~WnPk4-mloK;eeQd)X9!!^P^(6xFG6n_F;N?2n* z@TB(=Nf_ktS|AYjiQr)AzE`1`Ij;b3bP9{#8#FD@s`GFVS`IVlJTH22t3)xFKIPUB z5j&=NRQo{JS`y!|~QPl0MQt0%SAul~wpmmNS%r01LQqPO^&=O}k%Vy!^z437~ z2y`%5_lk;*PD>$pz+C>)k)}>nWH?sb2@uYytQSDf*YE6>n;op0>Ty#!=hXvYQKMjx zi*sZ3hqQ6I+{yp${Wf7kBmg#7>$^?vK{r(A?sqDzfJf)KT2@>39{&2|ZVy+A9b_!@ zG29Gvf!vKhE?5CX;JI8sK)EZ}WG7}`=5QSZegX^>2W>)3jLz9^<^gZ^1=bYQJw&>p z_DUVDV5Y~V2u_aBPf`0hKAx=Let9ikkk3ZNy`FW#>Ld|anMKlGsvRVOV7H_JAr+OJ z6ws3>LUc9faP#hl4Av>U$Dn(x1|-+dU#JC?Mb{?aHk4+1aZ5H0Ix0RZePA>#PiXei z92}33U9SBpbDTi9uIp?a=f<8xU*{9!rxIi+x4O?VY!ys^Z>dkKOE}k7*5a)j@mnXY zDKzl6#WXzCeUwLKB-tey1`E$|Uz=M&aeBf^ZQ%vT!nhOwus`<%>NTrOjXiW-vgaBO z$ZbI2tG%UA53pv)LXyP!-E#{@pqC9}l0+c@rO&yJB8y`#a(f55y<+S(m1cQ^2=r;m zah@&Bp=uJ0zdJtNo(AF9_tMkE6KbO!54KtKRi%!GI7&3%ksyMyN@SDFU7MCll}8ah ziC9)5yNShg-8!977FPEcms-8!Uv!?<^SZ zpetDshHIkl`RTow`NUu33x8dViRb>VGaK0761ANJH%szl4;ctP66W6&UMg9qBqh?r z?Q0#KSF71Dt`me1$_jIB8u3Pio3I^17LspoC=9DBBzJ%*FqaX!C!daIuT;PB*f+d7 zXbLr{W9H?hP}jZ&zUXo?oRL&HEq8kG78+GwbQi!#qkMsqM(u z6XSe2(!RkMh-zx-58rSpahl&bfRK7c1njU8gNvbqRPu7Z4H`eX%hjf_RayrJ|q$0TI=QJ=k*^S4hB<#xt~ev-L#>Q3#`|k(@F5 zBGtYvOJ{qb;0u9pW$T(Q5q@yBU13hfl3Q*OYx z4+{oBdp-QH@AY#!g!0}|e$Yp+p0qhpAe1Rr%`kbcrUaopPk~3}{o12MY(d}Iv{(?j zbv8#I_;T|>hv>T#nS5OCy~vojRMM8jIwK}4@4W(x;mFvfRDW;bt(!%`7=j`rPyw7T z<=ZBN7T}}h@Vz5i3{EqCHZb5>49K}Dqu{&lJHv)IshP6)Dm}uOx*iej%xEz|p1HNd z(R*(~E-6{aQ(o?40ZZ@OVj`SjB6)M0_xc`x52a53x5}tH_8=4gpMc6e31VK=2S*fpgpORRMQb zq%9DJJ+P~Cwk8+CyoD@!_8y_a4cL3x`%HDy2;~fi(mwfD`r^NR<5`v%dqA+iUM?S5 zMQA35RSQ_47KPx#p?HCi)#A8ny9q~sg_%3b1zQS6^B#?E-=PnkMGxi9y)OqkEBGm> ze5-s5U7;6F7IPiokf*Um^(bPnk*Rhaa*>{+zFw@f({wUci+YgRLk?TKisY{&BHVyS zp8@7&AYbG&ke&h+cR7Ip*QPB1ML@d0F(CtJazpegi5u>7MVM_eM(RPhEQ1u7 z&$!+@r``g47u8t}^-$HNZp`BZ9)%%1E_CyJAk0tRyV$gG3rj|LNpp+_Wa>}wMi$W8 zW$*zcD#;Xz} z&fu+3*psWtm3jn$Vmx;d-eH}D%Lv6t50LV5g$Yb6J25=gN+!`(g;$l^MH66bmT8Of zwUjThZBn6U@Cb1Ov#a6lYf=DW5jbSIK+G=d$C44ZWSywC<+*St8v~_sPh=j?@}sD9 z>$hGehVkG*Q9d6bSDY8^EW^wBP=R;e$h0pvg7vToptF@g?_+sMs4jr7B{&wklmOh( zJTs-EU^A717XU(g@}|wviH@w5cVCE1K^!&}nOed@Ja;8g6Qq&)&EVrzO^Zzl7@69W z^^%DY+KIEL2o1w0o1<354>!ONkbEJkP(osEBbUMRGP3VFF=oK2<^+8FD&tHN{q()a zaDiD;6-r2oa5Klvr89Csxm}pa~>$`JqFi zv2IajWiU^r)KRboSfUqB@Ekja+sntZJCl@WN#>TNMI(pL2b#LGGzXfP4695hlO8VV z>0OZAh?fMo_<3*%*F}WQc^L&oVB`_MQ3*Q2Gi`c;S>*Wk*#R77E;I;9de=p3#yr@k zs~Dpmv7Mf*@^tKhB;7j-!&X?P*URL`(64I`?&a7MD)bzorW!v4|33ccx9~-lOMG0$ zFA}fcBYb2T9F_I}s~i2jp=WOvKuY~lIEMCkPNv~?>Zlk-$ zOu+-g9>QU6D$5B_5_AUlI>DbB z6zioL4)#)48{>>QY1q~ig06eJioJTE)qc;F=T5}QOp9>N+wQs)`FV=gSq&Mw7pLH( zsv~j=%46M0m(@S-|4`3{WpM+WM7<*52y}RW$jPBOAGa_~S%BntKd5NdNQ)IXyETvo znm5>Yv9C$47gzTI$o z7XZ2o4+O@ggq@fhqT5nio8fw;MTmW|wj7ZCRT_+TOFk|t=tz3v1wq`Dj8_M?C%_8( zYEr-qF@)Rct^)gBJ%2WG-8#7jbK?Hgqs8b@BBNL|n8gRKJOuy>A!^grQQt%ho9>-fL+yRrw=^p?MiI2;==T?q5EL^v_ruQW{b8hpb%<)GP*^bt#?hl z?3^U{tQ4fPE+q^fGB#g=GhE4o#DVlFt`|O!XJ6W5z2^(0C5Tgj7Q7^7GP%`7X(x;Yfl&*4T_mZ63Rq93j{VO)K!bqQj8N>sh^vCg!+kvT zjAbqh{LQO=l!PkH7*5z2te)ULVJ}Ao6wo+hPOljYvM}GBy-c;)}K$9VqhUuXKamKh{4_3}>D;RdpA+%py;-hQWa@@}2 zMlBzCsf~9_1cS(9*qgJ@tAO8gkxX1$C(j^xL?|_IPR^v5;_@QjQy$e(aZr_Lj{Rin&ewTYspn~FxDEMHV}^sE0l%XdojeLwalp5MHgH7j+Xd*l{B>wac($! z>vhb6U{&7#1T02_F99fbpb`YVd*vpA=J;Tjwk(9+)$QLG41n! zYR@frV`zT4^=>gCF}P41PwBmJw7h$>HkqNvX-~FlyyH6BQ3ldCE}Ng+Ge3L?&N<x%Oc%7~~t0j9wx*Cs=PVmxaluO?9yC!N;bz`&+ ze(Ip6$doJr>I|p>bMcTCU4cP-jRCO`@sJUO@M?#isO4D#VU#4Np`ADk>cj>yuK5|- zK6~QnoUf;gz&@j zrzg665KE#jwDfsXuLeQKy*2S0Oo#Sobng_GCv#Pr4-tmeIw4fDZ5}Ui!!%dE(L1P< zstqaX1BcWDixe^2-e14VB`Tr^nd6#{yJRLo61Dv!tT#9U8|$TW%rsf-G)Nd#%Q;Sv*50Aot7 z9V{!ShsC3~Ma9#FuLA=?QV!fA&bpGy=hoh=GdwF|?80CjP0j!ty{kqkO#lbU+9$xq zrWG+lshPFWCSFv>Y&y5M_m)%@Es?=os9@lk&+)r50IEVon0z_%_`QVfZevH^DxQ1F z134A?sA3md$Z+FejmB;W^A+R8q<4e}A)xAYuGU7T$85Nc z75jcEUk4%y$JKNqa(jYoRaQ}BV)oqpX8LZ#?_NQq;wY#!9C7$wm0XvRI?`GAJ|u*< zY)LbUsdW)k&xxm$YHw2a1#E^;dWBw+slc2dfWH^)f$i$?9*PSjaUSl1N@y?>PAX|f zO}lVb__c-h^BR5jI$Gv%Frqh3q)JT8b*o2RaI(YVapo1m ztTD1Lv{bh*d$+2*htEo7 zMmScR9zI^^6cKT~P6s9ktH`B^>hp+8&|Miwv~9?@Dz;>OGMplP+z}gxpn(dH@y)Y~ z@+oQVr_9&>-Xc0t(L?oYk9#A5#yVjj>d!5h#T({Qqoa&fT+$RH1AnIAFI5!(7=R4Yk z!xLpTvUm(BS$Ji3)5%c;a$uFN^?TM;>=j?XC++Gi2TwPJADC8PLiOtzBwc*3RigGu zO!$g3&T+p}AcEoXo?WZMgnZ2Mc(+^q?&Y4;0cdorTOziuV9a7N=u3olax!v1+Y^`Y zBxgO2;Ry9t>eQT|ulS(^UtTqmQwLL}Q_Y^B?DZkcpJG_6W?Bk`v$EX%cmev=HF`dP zDV-hP$}!kppg|aX)bfT)@Nv)0zL9jG^4joL)_rlx_i9Fj;|XCsV{8S6Yr(TQbOfEq zTz!W@P+3oJ1l2}Ro0s#3fMhgpW;aFAc+R+oc{*IoZQZ03Cy;{gkb@g$GEszpL%O{#7|&mE z5h9=Ff=Ii(f-v9CR73FG-om%$O%!0*3F4QWLM-AQF@`&&{ZM%pI-cS?us&9~cnyi+ zcEC#O?FguNI}%w6p-;XZkLK`-=H9+qXT_U z!4R9dk>28wD&eDTD99%?Yg0J=5}X~y@RTc?t|vCz$ZCpTCJ)7%xezvdih(m-@7z-i zq_(5h+Q)rE9`0FPm=KDb9;He4a7PD{xpdt*n&PC-7?pp5AU?$~TlquHgsYNK3)Oq; zuhAMT^NrH84ZR+xrCB2)^*GwKh~UIJ7Vy_R_GHJ0@qu(n^_(;@p4nv=PO_#{)az=F z%{gP9yB%A^t-ezR&>%r=( zx@T?Nd8FnGQdii);bEJACwiAWd9|+0il{EFXh{#WEe%MQvmMnUPJpRVjN6kiwR@0GCmg(;}8_f#fyQ zGsq1d7zR4a^I*;#5)Xw^O<41L%Z+i5x&3v)Ak^R-M_+mL+BY%I<(5_pssKc0psHh_JmkGm_+U zCcg9#*soccZZ1zaSHv%hVT*if1@(!pPnZG1d!@d35Kf6aHnmq0lPzEb`et3jYb!c< zav?cx1XC3+HPiVP!F`JtE|fz^pQMKuPy}t)W8WKDRdP_Zemm%LE$X@Ai&BzeSvSt1 z3c(OhuV$M^7MX~uw z$2cjIWOOua?R#;_!6nB}Xfj?K`O6~r<^y?wxN-Nqn~71{(;uiX(Rfc*puBD*3_P?K zn;{xhT(#9yK=;D;w8$tDjyQz{!|!BX@r#$~qY3;BS!pf=Svq3dG*HbHHK4;tF`QFX z3P$>&M$YWKFBCX@Dq`Y(9Xj;XCHMkxs%=F5q z786ODAEFcm7d&>+eCagpGHU*6xtRG;h+6kH7dj6M`{vS}CdNBrdhsgX(o49fc7)we z4P(pYu?(YJd06(FWTM@`jNr!|V~3`i%xE~Mf&kd$*A_20yIZ}tL{*0Lp|kK%C2Hh? zcse1GH<~di&^hj+QC&kkW95q)dp^6tt+`p2xw=cK&-PCk#0$aAw1*)?m_4H;_HGg1 z!W*gf-x8hPTc_oR4SW6ai+iJuB)ue`&P zsS-j>(yo1@mn_0S>36^mDRTgiLd%z#D*z-T!-fFm#mVKKS;IAOQvtR$2iRd)JPY7z z(aCo%kYH*X*ivTW$=G>aGtzD9`yQ+_n=1tM@{{VKI_;y|=2e;{-0|81i)=W2 zr|zU_INmWveo-swg!m$M`{lZ3neo6lv9w-V661T6OjG5OBhT1D>rqnG5uQq%`_c9sYTB=tk#7=q|b5oUHPwtFu3wJW8mPWBZ&s%*ir2$d> zazlIc9i=?-aC;W_K>JD1&8y>)R3>&#L6N(A0Z&K;$gQoWq3FgqwlJN~643(kdWNp; zT`pA>wupp^bJ=5EvjM{=`f~FQ`!^*TJ{6fHkEc10Gg&cOF1l(NGx6>vR1UsF+dk`n z)vJE6^~)C}lD)@L#~e$$;sz=xZuV?Qs&yhL(tNrlhn>Uhiw@t%y7jIM}o+!1;@*0>C)RbzN z6N#a;>{kgFzmai2#NqY zZyfI`8J@xt_H-HG1u{WSaZ=zlx1$&F>K-CiShlQZkUt`kXN2@n-pi78aT3L+P&Pd{DOj9RKIekaR-y06G6qb?4Y@&^x>9CkNJb2L$=1I&h8sffgzX2rFxUz2U zB`?x`nU8jc20ZXEjM+4v z1sBcb(@?~mu(MYdqVS4u3d4_XXp6BJ1(cuY63hB{3$}<%dp-={jDo`)*t;w<*UWyC zR2V8?8%NYhqWtVn93WV=@I~&6n&+>{`nVQl-cEB#KDZulB-97Js~z+-?}>-jJQ0Cz zD%QrR5+8q(hN8)t4Y~G~TmdsRbEkQx#e9$@*Aw!1l^~Fd<9aBXF&-zzj;_3I6d0_z zx_yRLQLLl2QKMvTiic{ANVH2Bju)klqsIHxiW0EkSmYw1UCUOhXlJM2jBERzp4J&@ zW%M=YgH?EDanP+#7mftU!P=`0g>?oORvtoX*3{Ht+oBgQ z({~+tPR4b#@R)MUZT)5GU<39s9~C`$Pa(PmL+vu=FBvSKl&P(V%Yk|{09%QyAb z%bZ^t9WF?MoTUxMwfl)_0mr$mi<4~f)DALcBRwp(+^L)AQp)aSiu6F2okSwNz@7|2 zU;-b4k#1rX6-x6`0XC@e;9Zl@Vzv+N*Q@?rhfGx#!Vz;JZCIGtq_^B5CwE z%AtIuVOf(dn2zq4(B7Tb;gI#(;E8g-T9jLEt~i9bdXIfzpzG~(w;Pu5#Nq5o4-4je zcP$Qg@eHFw`d%i#X>nHLF3G4CQ>hr8IWZ3l9F+5!c#?^)?((Wv!JiceRM{NOq~1$p zYOf2;>Hr$2kw^>NH~JhoJ<7o$pM!#^_dQOBTt&3FbzZp30U&oY@6uGXA=?|_Zon`| zPR7CXp_yLRovP$4>wp|lq3|KoV?y-k^~NSzq<5RE={;zv*h&ES{sIELd02kCTqRLF z6yrV@SZZSWlp%tLk^pM#NhEF9>^LFfn`cCE%_q@zXp^-&gs>Zc<1g}I5I<}le?Etg zJ=IUM;`y#y-q^F5ex^DLh6q&13=9{0?@2s~NVwGA>32PmW?Xx&Z{7&D?-TOD*#p_) zmbJ=jZvcHGd*gxPzRH9sxblX+v>SoP-75YxGqh$>_u+Qgz?j{tVE2>lr_k7p#{+Ze zFO>4_?m;%R;-d+Bn(!zzLGi6uY7d8dBfYiG!V(BWLl6p`ddy*D!~{(`k83#i$(kZvo(dYuf^J=;~=|qFCdDr@g7i-ru%X>uEi(MC| zE2BXetlx!9`uJf(p84+E@t2eq+t39DL7}_)GN+u+lXpF>yOSDsotNMx#HPc0zT&Gz`I($4_E;9|*6Ilv$`nP0otyt%w1*xT3E< zEl#*R52@}AKosEQSdbf0e73nXcphkZCG6WdS(6A45b?HykeiV>JV~Lzl|eZ2y{<=X zgxPCMPhR?amM~8}hFbwpLDhV&;^ALNFb#}SnCB^GXxkWY9TBkf;K3@B`tu1G&v%@b z^YGA2<35Xm!z%<~n>L9LrZmx@$ilgN;m8ag9RuDJXJBD9E~gU@Or7Dq>iGcbur0dRc&3zyy#Ei=F|; z%hY9j-Rm0@Lfnw#P%NDj^js14=(0EMPB7wdd4Tw#QlW-o!G$mDx}xO19^;9(Z;l{o z4xp;?hbiBL@axx4Ie1vE~7L|IO(~f%ERdCVF zTINzG4=mIfSKQ6ZsKtl23c`BX6mK?bQD)x}#$4s0@$1;ukkyMLj2mp)F|tODLZ)Cr z-1yFEX0kkln6n1f5V77|toWFYOHMd~7U>J|r?tStB#I&-3bI^W<&TS~Id4nWs$eiK zApV5HOJbUPjV=rzDzvyA?H3#`FZS%Rk9E#o zZ$L((#XyOZTzPI2CEg2T%}~qdYzN0n%|12taO;u*7QOCylJ!3tNU!UwGI{DHi8DC?IYNU1UDKLa(9e)H`N=I zy!ZeqMUUsb6K5@6;2M;T+>n4apk2!))^dfx;zGv^rN-$Y&0&{JcJ38oBsY(KZk#3V zUIzQjmq3WK=YGlL$-HQQ6UC5g*qr3A=3dVs^H zNV10>yDwk~`pNV=rLyrpjE%97*m|dEK+bQWJvP~m87ms?QXL?bnh_6&?zl+~*Q3fG zj6yx>!W_d@aiV}Vp&&Mi6joCQ1}W?)T?!nXX%>XL#~dmWw@-l^$W!K2$#3k;9TuFe z+@VpQA6xBlsK-DPHoIEo>2-qNriX**bfKYk2r*_SsZ~!@k-ZF>cfG+@(pd(!#(XGO zBel>>Q#qGMEgf=$uzelO1OY&j&lV z`|30>qP6!GH^fUio|mGxl0*q$V#i~%D{}?%m=H587gRmj!mvV2b>Ha>d((+I;{_gY z0_4c1!M$ONeEMKoddxSoD5(I^Fv`|^FlNqRf*)CUo|&L+wFt$#9>8k_7#~)xSW8Qn zI--kiVT_F$H=ems2uBo{$@8(>%49M=aC<5Gde z?6yTq79#4n*t@_U(8cby-Vrj=YgfDB*xp*LbMUvGe_2sj68J_e}3ya^seiH(5?oamOsz^m8!2f2a+dqy7m#8gwbHvLV}mDn>qwr2F2k$cdNtZnh8%a>nU)ANd%!k z6*KKBj8>^^o#s@h5N(i`E4>NtaCuV$E>?!>C_&Sn9_*D)mXLr6-KFI;n{DK>aLb}! zjPlMNpxEF6UYgfEM^-=Nv1kegnO9Q3RNX~XBW!v7m>#<~OVWxCT|~Hu5|U%d9(6{gwevH|fUJAbwmJUpt+mdot&zqwyel{yeN{e>1qf2-=>`FtqM@)I zQANj8kMKL-4lBrKK9Bd+?It{kOQ%udyj9tbwG#ocVC7o# z3gv{`9z#CvL##tJg7Q_<3w8n?+N>j#4JmtcSF<`nxP4Tstufy1?+6EvBdT&dCqspm zU=3aBv~k?ui~*b-7G~9v^NC0Bh;*zIW~Z~2p9&Wk96x?)>ViO3M3LOXG#Bi_8~92& zyHGM)<%UD~@y)@jwG3TU?9v1vj>o_OC__|(f{d0}|nxgEwN({DTW zfL~Paw3f2ji%nE_@zmwWMlf6hJx)nw=|o;{GuBZNM17$CIzZdYbvpo$W_B3WiVmPa zyDnREm+UzR7OmVN6kqIk4U|s?6Hq&mi4=8G?#w|6SNo{aL-LY&QdvNQR>a~NWBw2v zKu@Y{)}*AN(uIp3jaNC~8sJ7u^KIrxRAU?BW1#{bqD@i~rMPlO4V;VXJB3yd|9|-$yhjm&*i;-=XEEV zcB>W|{9dn9WDG0#0sVbMdX$@}JCN;pkJ19M7Ep%yf{y4#4mQA}sz_aSWwVJsA+REG zc~-|3H<@g7tI*Rc(L~LIQ$YY?Oy1eW06K5A=~>Yg5Y>|N9oQB_GUxJ8Y=#B*i;klV zJhj+k4QNJwuP`WHsPF&`^MGD&6v@i%ru2hucsB@~#-@B!b@zkbFMt?@VKem2*1hSFYOQ+Tfw8K_H-&kFrK{Pw~a7f?H)i;~Mv_{65( zy(*>Wkx8DGaa*(Wz+<`CVxkY7&jy>(OWFI@R>9(I8oNpEy(L_IV8BLN%(u9dYSwwD zcoU-Tw0he0%%5|D)V<=KD5p33K>V^u6y&u?0nKBn%n>SAMrKApFtx1B2e?n~87Rjl zNda4=YEA`Hv{;(0bD413((~oq0Yx`{Jsi0Qd5FsTj#BC|F)cD)3!YZok!ccyN1@em zXH38Bt>Jrbe6zsc>btv$z82|}wdQhFBoaOB1Ib8Qzp=naR~Y&%O&nn;kNF|ZO-jIH zxq7eI*SF=wcX0%3cX_lHYR=XNJ-5grWE9@wCSE@o7`9O!PxpF8m)@-$4QQ!!#ElGz zy#1FVo7saCiXOCx$O7fEodMQGr3%l)?KX;Hlw<&#n>56uVm!b`IHQbi*6w;I zZkVaiJ>I>z*&8cbLo4|NgXpJM;6C$q z7Xbw)*G(p&VU${;X$AzEThomJu>hSP<~8f1EFecGtT*}6EBSTk@)@{tHuECr1rs6& zu5p_+zQ8(}3ZYmHQLEEL?9-rERXIfG!CEJd+@Lxxs6>M)NP++qMI1pnKn-(De2_7N^rpHoVi33ebipcw%J$A%;l2IXXF72HlQP5$>$WL;^wXz zr+YkG;sf3SonWFP`;KEUEyrl#plGP%ARznny+Su{2_#xhXI~H$l6aertylNw&hUCH z_l3y5etpwT#yJtodM~aQ?CooCSvYvlF*#k*-^<63g_RLl^+j~209H!6Ha>8n2lECH z6+?RnS8dUxE-N7RSvYI^-6_y&m|r$9#0G|kGTo)iWg zO@jhEB6>J3kY!)vP}=2TC}z)sf}Gmw5&Pp=a8Ve^ELK0VcjA{v5z zqA^BQd$wcX4`01govFypW{E`XaD82(#_pmR^B5{?$)V~ViSp?L>i}g6^AdY7CA&A= zyhlYkB?Ws`E6s~fsOe4{#4|(EA)d%15A0&HMb8P9@j#(7IoPY^3>p;7}9Ug>U3nWl_Ggvw4>jlz)c_SLp z282|6ZzvW$Ya@KuXqKG7rz<<3m7jJM5lE4Ac}6jg&0gL^3BA`*A^7eW>wbD}YIllEnyt2- zH2Y+v{j)T?>>SjF~iNqHsV*_!v-J{k|o)OVyh(Me@h`H`h zG$?(hDzKK&l~+jxz8^-lAq{ibOi+Ed^YAZgZe3>*3r4#wpM+?{y*h>c%LdyW>8 zulR^Q#}1#6Gp%b#$R&uO>Gw>SE^^lp+XWt$$32Mwc<6q-CNwk6#4w%D%9&a662KBy z;3Wo7x|ldwXca!5xlu0Zz|!c6dIa}uE@j?JhyuG#99Nh=LhbifY?8#|3Jz@h)Nr~` zAdq@pK_{b^BE`kZ$)5{>Xi5;=lO<&XlrpO~$01C}hv$WD#N-y**Rx{G zUck&e#FqsMCk1Fq(1f0tG$)O+dY(z_yL8lO*t}lhU7RmOFCW9!^AN?gPJ-Rc=(A9# zDa%)I&x;D{2x=ttb?A0`jq%{ULBbazVXf*;o<39$dNFyI2N7si*s>pjaBd z?`deJs{4Xh8_1@e0fIV@0cbTOpjBlSjv_{3iAT}X!ys*c%?6Lezq?7PG6ZF^hi*8-v+|e~fb#$nL9C<5jsWCWO4zPNDa9dFG`^r`*`8V73n-dc)1+a=qo}`ZBx6dma)K z!_1gMwFP>zVxewll>)kAiSO*{nrG9U35Y~kR(eB=xp`Jf+9w?BQ$FvD5fBugnhCOr zrFqDr;=6hh@$y|;!0{>gL{Bj%1ddd2xv%48^UX=` z*+#A>izO2Z1t3U!{vQ~?F z_vGocGPym0H-N|Q&^>DhQa4ghZeXz2MogsRE>#QipdQpX=z%XNifX_(W;>#pchY3P zejF7F@Br<4gI2(nDul8xB9zP7{=x$u*c}HV*=!sxMKmOV3p61ND!i6` z57!kBtwI=9>4ZyB^!i0;y?LD)^mL)il2c5vC~m<6(CEFoM`a~5mB<0Y=uCA6B;Y54 z57Efr2|f0EbOh6V&p@&K92+5^+jm^`DP0NV=uyJ6y_(E1Q`o%ThIn4dfJQ0MiV|8T znLPHwHNCPc6(?sBDad%xoXJR#w0#;Dx!+b-#}*=_`s*@Fdusu$zKG7wgv@wn&{Zu+ z8ABdJ9I2E!n!%p@W-Rbpq!w>Gd zO_XkB%Bn|^%6aEFLz2(u#ZuNnQ?#dP>6J_gPC?|uWFOksV6LT!M1qELKAlhYo_n(@ zVLcgnNyAT06P+5_C3r=o%PC{OIG9+ za}-6gt7G!eF2!E*J#xKL9}z-qrSILrKQ;9DFTz7lOjl()0Y#2N4*Igk=}0pI5qHGY z=iVUdJbbwHNUV}icxU6;p~t7=Pz z@P)Bem5|CSju+5(*lzoJ?lo7)c;+rdwO?JTJFUKXWbWb!99Y)~csSllx-_t}PM!nO z4=ibpFUOSSg~e9Hy~xY$oxxTrAJRTDXW_&uwKT>y%huAO3pqY`r94@U!sLpy$zcL> z{B{En@DL?4vMTPB>G90QWK{uz@M4V?S5I3IBy&Fk7`IOI293u9^eD&NZCN{Dy?GEI zdt!GU?q7iLDqMVc?Xd|*W3lOv#!WZVxU~DSNMmi;oVt3*0Nv!UR-)j%*!zjw8UU8A z?Vvy0ryQWM&JR$W>WRLUV9Ap{Bi?t=3IWsp97Cf!q+M}4ce}7B&DU=cqZA6Hh1t2X zL$J)8ci_pDo9~N<5~wZiS}ygt>dC{~t!*kd)k@@Bwq01q$x*LI9w20vH#H*5NXm&1 z9fx(^K6_P%SI3x6{bI+R6q$rV6*(Un!8oh)&`Iih`H1c?N5tvUz@`9vX?G;UP#?zD zkr-ZKZ#ciKAUPzm;&7V)*N$dJb& zXV5!q&#cP1Ev5BQhtU>MU>Qio#+rKUQ$9DR&|~tZpe>Fy z7|mA&sTuDaZu<2*gS@JjIEUM;#MRI@9fOYo{mu2=5J2c6UUSl`V(t@!WFC@j>bfT3 z1^0y#3VH*xJm-|5GyyLRDP9>*NVCa2MQ4#Xy*Rl*ftO%_SOEs-8?|yWxDuhnOVv9j znjG2I^^7R=EPL*XYH^uyeS8PReIN))$VjJgV%SWGJ41D;ZGcbV`EMg`& zsFh8v(t3Xb;!{Xd;yV}cVrY78%<)Q<9+AoPEeATc`5B?b5h0hwDv@b#`J2G*ER&{r#21|I{-#nALZdX?276J(r zdy9O|h1Eb;*Y+k~G>zHjF4+F2C)F+9 z`exxmg+70a6H-_)qy;gWZ((Q1-m`*vaj_h5IEtcky(q$~ksM{JFweca^l~qf;Z!sO z(w`()%Ptr}JndcNyQjfPH3%~9(eCM;IM2|Y&A@fT%wXr+4UvJ@=RIi`O9@a+`dTAf z3FQ&7Ox92+3Fo*z7B|wt+H0;R*<&*~cn4^eZ!7LD-isHH>1BxmRX!kotIviU{4ogJ zDfXk1HIKQsPI4pKDz`NNxT~Si=CAbG1*C!7?&G1CE(2o@>46w5M~2bTyA^Hlc)Ac@ z!}W~4M+OWn8_Jzxy8`SSOMuc3pqV=i0_#$`uWu*F|JZX(uAuMFQMc!ee)=$N(c996e@W)jOEe1ZOb@FG-T(YgBS_G zxUSMQwBd3w5D!xY;WJ3#8%N2^*RJU)#rAl znhdf1BwzMM8@7ZNwVCO%d5-vr5`1=I#;jCKG<7hI$HjO#HKtb>rF6$_QPBrTWN<4L57hG zhfzOv2U}q9gh87DXEDLRZM5`}qOoLgGj0~b#{!YNu8K}`ou;H?Or<3j-aPt3aBNDH zVepvM#tmq}8Sxn$anNJTJ@P9PJAi{-P1QDfhvY99OlO}QIO6(ZTq1q-WqLu128c}Et8F&jE(Rl=dp#)J{RfM$gNdyz84QbL0*yY6dw?oWS0ss z_q)lhFzfVnB=mWkAx+`fYdRAzo|;$7fso+5;^bt6*;Wgfz6{8+iSw~r!@|UUudZni z^d7c#!~rfMC}d6Gdoy&GdeE;J-k`J&ub<1~lw3W0?4@pw2Is|T6VfgPEN-B>#DJpX zP!HC?PuRc#k5i5{jc1pL-WB8=u)Xe)c=cG{=7vVLAj20V0zM@*_`uyPr7rKODEOw@ zTXurR7ffU5)_n(l9E^R9w8C;!(Uv2-Rr?B1`4zi%o{RKrqZ4mjUZTKB-#1DVx+pi! zA(Siq2m`SIaufu5Eb}I_qu^92S2K%6Fa}O2Fon^;hAn`2jZ$+QB$p%{Li51_6lR;VP&{P2r*A!;u{?ye;o-gz9I5mJsgCviy+~^AV%=S#Ry6HG-036ec zl+^*qCxzUpPmem#MFJ89m&tqEP`SpCq)s8P%rl`G*>9^9v;`8FgA_tuV~sYeumdAJ zc}OVBVtI3kE}}A_rS%Asi*#Y?9!gH;k&Rrj zF=AT3vn{=~Ft)&*Lw3a@NPgazaS6V(&CQ3cEqyN%bj*w;a=Xc*4sAVBxJ>A}j-1s= zdN(eexa$Syl16w?PTQ=~gdU!CDHz4tsJ)Ca0P~9gy59`uIBkow@#C#2kBS5{eeQOY z-0NlO6bE;+`_SK;xp--`E{FK$r7k>beE^~xw!|dejrP{m6GJKm4jy?9B^%#Nj&6@s zz|)5YGw{@(o<{e}UL2dqtc*i$qt-*@9a%XOwNQ()eB15F^r|Z(sClt7N2hEez)N(I zfp-NQlredp;;=i5B~IGN;z87HOg&oa;o3*#m(Cpoh#@{=;+~-6b4U`Pn1D!#FNCyrK&0hDDE3Manjo`j$# z*}(F$b#NDYRQ4gVt2F1Fd4D?@CJaN)d5Ryy8e=3j6@G>zb4N$>su|Jjejldskj3sIr64NUsf- zG&#~pk&R+AY1@fGqp%nbNuXa*mb)~(R)&f*b={GRkY~%-*JGi#+)uOvjnK8DaJx5r2y7H-(nLfQW|~R50RnibfImFZCY zXVJCC^d3B3HG2v3%hmKL!;l!0zCE}HUESkyC|ME;4c(J+$dz#LLfqsfaPV*m?CVx* z5ysHE2E|iBW@vSMeL@&YaY1ux{KbDETzsX~6Nn{NP;5>C0EbjPmefGj;!j&N&I za@#kAlV&@Oc^OJ?%y!@Kj&Q`Q5#)d*o-wBBZBd&Iu@MoF!SNZUS|W&hlB@Vk9#Bmf z(-AzYIN~CnG6C*4c7vG_6{Ks=`C^~Exwk|TH5+3hv@!XBdwZri|DM)W&ad18~gK>~NcTiFPb=hLzezO;@0R zGF}Oz>GQsD9l0P3Bci%387oa|b0q^S+Xi||C#|nj6JC%L5;Cklws3yOed;Nk$hnY3 zBINKS9vqaOf{2xl8_=%W?nWB#1q=a zM5z}V=j;(mHncBgM0Rl9L@|XmUs_`TfL9;Y_9NOFoDq5a#x9#u-fIQa)u#rhx>NcB z^40;BU|)4-6$>m6b4HDy(r^K9+;hm65caa(3la>_lcP6l$gZ}2!1GMm{a&W5z9}yy zer^n$M)oMHY*8M9rA{gwwC!bv(3F8vctSYI%FaYk(3B+VyQLN77fvD9levCrYZ>5J zzQ1m6#4^#sFw@iNx3NTIzG)bH<}d^#9tWx9j3pyuysi7Hz^Fu?TPkBzYo19A(s{d^ zG}&u>L-EGWLBSc{R%E<1S75J;)B_sCWbM6Bvs zPxLX{@!{cYDV?%_Z!HG9Owm@jf*rNnY${wP5fZ``SBeqzGCW?e;zHu*%J!mnS z)IrgM@j`{79OwM?pzI7keV|858Ov@Rms3?S6)@@d#%P0~1tqQcF2R^-NIDbRV>eb1 zN3~!3?K`;pM#ZPXRJQ32!mj-8`$lWq>JZ_sgaiIuf<`VG#KaM z1VmC^<3WYeVy9$b(Bk976q>^pH#S&t$1CB<#e#8$gZ7KT0&ZogL||+ipSt&eAoWou zijo&iM80N#JJX{l4=nQB=M~wJ?5Z~AuP*s~XvjUA1uAUh;4GGf(L_kJs4zuC3mzRs zmSxF3pW_EFNUOsrsDi2kr3)oCvBnaTk-NAoF`M$#Phcz#I@$<%P2gaACW5CtS`y%BB>r6BxbbO{uRxD8%C^u|$jU0QFu?$knkehfk=3Ec$h|y}>MbbK7z!U13fambGe&t5# zetF88drIn@RTNd>nG&95YS}y&+H*=cAOO{h)BfJQ79LYP=y z%7CJ0DEXBF5=E_Y)g%|4fkzm?)uhNEk)15jNde4-t#&^2dHA->aQpUIJ(cub&yI;B zuDoZ_97X6`SIJ?$W{;?|IRjbuWX>u`?WG7MZL?0^df5ftBSOWiz?16qnBtLp&F>Qy zq@R0*{^lcMuJ)lcBRYj=N5|%2A`@K}ch69$gR;pheX<$MMtCN}p3er@Moribc?Rw> zMJ{DuoaMow;<#*H^F4S`hSq_;Suq4GOz)RUX((Rm@SvfR7c8nnN~+-+m^0#4aB=rg zjq1Q=l}uGu0FS-}FnP^O1rRu9RDImY#bh=~dw2f0ur2s3pW@x@iw8pk zl?NN3NUouMD`iWs6yR9qC^IR7-cj0INGV*p;mh|7uk$Dnd#wbq@K0Y6kjT+oR;e8B zegXDy<1Vn9#A6=>7g#`qL`S0B0YWQ+KR!#29O`_o3?3VlV_?!4sz8(_vhkGMaArh< zX+-@NTi~d-%mcxZ+pOPvyrL6G^SY+l zH`M@UVSzx4Ba+W35#G9nR; zi>JdUnmObfcvtcw*&p0f7?YPlW3^({?@S)?rJ`ip%iA`^Sh%NPIG)r2hga;%VIz64 z%W@L~#hI{R53pk8p4l1=`_9#w%z4vcDoGlV1S(2Xyk0URcfonN&epmWSu%msleQrQ zjNRG??_gDd*K@^0XXUxF+-Ac1Vaw@33uTqPa~`0uq)5A@w)JXz^~e^+%drD@&==wv zbv`Il8sajGDvJqeGLFnNpjn|CyS^gDeM5@`>X%>&4;#s-H)1AX=7Mlu?F@t@UC1&f z6hw;-;1jwRB2Mh1=Zpa!&Px!QmN2QaW+_wnIFtG9GzH_+ey3JgoG`nexZrQCO`}iP zorLEImd;I5edqd!VVzXd7qiqZMq1c4L;b~EHi-H20DtvTAEGVxF?umoz(P*DQ8@?*s~9V}?6Bb-D<70ML2QaPv{%m_mnuAxv=^Ts(Yt zze?c6w8`s5ceU~yX!bd0)jfNJYuTc9uq6T!tM6@&N`| zb>;F&E4!-JwOz`j+gig6JL-!!H=^~bi=2w?!Vq1`9y7s(gdPb*o7$p;8!2+(@HWe( zi|h8Ihh>4HU@j|5y+}E-z9<4oF91!l?~QrSpfzkhkR5BJ(7KogXGZl(O4Z^nzYiLXn)pNRM0;1a*jmVJD)f%z z!m$aTQS>s&Sq=@D%k(Jwz7z^9WqFcrE=LQ>tgY3!5Os;s)+lX7ZiS$@wNAIXG z3=szBd-&?5oBA5D0lyN3Q!n24mfwz_V3U){#U)E4Q3ed39$JsoVNAy&kj$B%Er1y# z)(za`qg9h2_q=9dm%3-zep7^+^vc7VMyDH$yeJcxvIm|0%35z-)0wYLIfRDdiH1B_ z^Gn3)(Skgx^|k5(06kH6bdR3dXKrw79cw@*R@${NO7`y2d-Vwn`4rr5r=P#O3aBtd zp8?8DphA`-r2tv#nl}R5qw$KY4gk=lRd8s-p0)-Inb9^byC5vTLNk5^1!T51tK}!M z0O`q7Yz)1tQ{V*hVg^Ie1aKNRNFtM}57`#dv?$AX+(7}Z)YD`afNxYHJ8Z5!;Ucq)Uc^U+%U0!>n*rR~w*K*r8 zLgjlQzK5_23SM^774ax148*rV%>cTMweeXh?$Te#7;ZcY2p@b@Fyk)3cbdhIm+)lB zp6=DT3P7(BRIb~$8g|&3`h^6wGh&G?ffjU8@DY`(a!}PZ9e7;wx`~Tl^*ZuwRe)UD z<2ajIBRe^@Cw->#QlJQ9LhE`&7ASS&Q2_$b>PVQTYNkAaCbEv^W_T4w)PDNZJgy$y zAuw@p8im3O>kLGgN3(}xuN3gK`Sm#kIRF(Ux%SKsr$IdqlMZnS^WYoZ*Nm^Hb?I%| zQTXF`&cnwwtTDThgHVRHmHG4@JHE%qh9nQ;5k8A1bu|-AHqBGW<~%gx)u8Kb$Q^VNQS zbL7(=5Zs2b8UmhYS-U*QKnsTy#IE#`#lSP`*)Rj0jFd|{X4~7@*vIULS8ih1ouq^{ z85aZ7pa1{`!~$1s6P{;$P>`NjHM;}Y+)e-mvLJnyXa2YztEz4ZA;$G(4z*?O-oi6Z zk*o&HI!JQ#Sk@lu6+K9v@{Qu~-Bw?qDZA-Fvqv!3_KqbP(?I$79ko15Sz)7kr#{$T z845L2EMEI+?=|V8B2U$)y4jo59n=uVeWFUw)_j|ySA=odk>Bl+L!O}GPPCFezCJF&qshM~yM1fLWzK%QE z+0zK2uk6kr8=tf6mTQJBI7PGEM2ejOY#)Rs|_H)q?&FCytg(nE3_OU zPeh>tygeRML_ogIrxq?_pN=0HOx zD#)B0he!BKMWGy6e8vns$`Y%(V{N(O+;OuLc6xSgR&^>XRZi&ODAiWb|deG^jCQRm~;qYeU7`8 zxEocVnWK2L@cKBV%IYERW3ruxOm?~EWPZ;J8J){!Z5`HGoGjU?p>@vp5vki59$Xm9 zhzlbg0+DD!v+>0vXP{*Wg;Ppmbc~=Uo4UR^N!Y<>-gj6|`Sy~R16US%iBnn;o=^lm z@3FH;T<*4b%w`}PYgd4F(Hb;1i9A*tRrF?JBh_Bu0ZrKD+lqWv7PSLdTQ<9l zF40J!K`|l)OBge6VFB|Tsz#Bq#c)# zlbpSP`mD${cVCX~u#qm_gM{#z+*W+Ki}r#EX%dx%#saX<;o4q=z6YAa{-6NX_h2Hz z#hl&~T`6;3Pmj5oAwOM|S#V5$i;*uuhS9#E;h%d(XfWHL2?yNEj4BWTcSmz zJ_;dFx86|evro96)*Hf#<=JTUj-2CI-i^Y3E)Z(>;$*;$oSll%szU3f=s|mSD!meU zAkh+;O{aKPEFG$4aySu$cf1nHpk&^=fthJflhV0~j%=f+R-cv_OG1Hya(eoRu2AM7 zym>SebC7g%mP#%Vsiv4jm;5e$rp6Z)B{~SeOUP6Jqv>Gd5DJ-lU$)rE*bBSp2#)1D z^)eWuI5z?8brC4Dcl25(J?Hg41V|4VFYrs;&9NraVlaa+pcaG@IJY%grt>voKer~Q zm%_I9s#Yu_Yo|{ZkL+za#3MQY{qsDfh$y-5Mwp+Q4fs-|*qjfi9HNa_KXq5M^hxCl z_IHwwwlFlej2V4LgvTRGk71I0naav7p4^hT;OlWhd)L(cC^S8L>I4uv#Z-aBvCign zOkVIKgD8S2M}1Ins!)>YZ&N#5MJJyX8^ol`kn%R5^xMpPnX{9xfuV9P3-zpDF2$rK zY9NRaU|G|X=gvK`3l^*HVxvQ4$LAuV$S?)O4-aC)%ORcL6M!U+l7{iSdcs7>_^?d< zoeP=(1i{KZQ*Cu~RuSqr(^>Lg$l;j|<$D@hA!b}7TgGn&e z@FE8Xb17WQP_+ZWv*yCLnvdX?v6Bbv9qIFVVE%e+mNz_K%z@MG3DC0cUYgr^!A9X) zyK@D;7iL1Q#_&oBA2fmniVEsHm0J>tLJyS<^@^%dA$E3EXIs;!Z=kz&{R#*JFk0^0^4EUhS$o14n^G~qxLOiZVTLdWqH(3Of{Dm*9?RjJ3GE1M+u$gU=4jfs!kN^*B3{$$W8jfw7Q0QfP?< zdgx8e3&w)3tSNy>-+Y3EEU4U+rPVc0u$g_{aDiL4SW5JJE+fi^I>|e-3bqp#5)WDL z3ijw|iomak-<)hoJWlo}dTmO`n9tmi+u!IYv5T3oxIr$ZQ`;lRhLhhAvo&c@)`S;r{FQ0z&@n(tG~cORY!1n@fbUn_SyDpw5-ROq(&A&hVr~CJawW1 zSA;}J9Ry^oMQrZLIA92?6A(U>0o3%gVUL;ecJ~kU~}@KgA2NmfrSZB|?*q zNB{|#sc@UOKu_2vqBXGSHNG*5XZ%uf*#@X2!Bd!py=t4KLL6qXx63LHG~E?>G7)v` z0ZjWk?onGy+AqM6XkMz`)g{TIs^3mD0?VY?Ts%=e1#lZQI>RzKV5rt^>*xm zgxa+q_CsImtQ7JWq{m$~XUCZN@=;VD=`D(vjTzSV{UT;EvkA|bCpainA9Ycc38TlA ztockZ8aCEw4u#N6>hNR_mDrFKmeFOwyv~G@qSJgGM~{yyr~_XFuE4q5tA3^|7#eqE zk-68@hA@kY&yh422A}#MXjSja>?E#u{ExVFQ>_Ap$tVE{*@Vyly&$GR@TE9qK1Qo$D%e}gb zsg2l?tit!e`pD0&qS9>4^b+Q%F0((u;h!R0%N2&go+NT{c$FcGaq*CKni~U~`YE@v z7n)#^Pwyxo)idr!+Vp)(u&JS-~o%GxvPj|sFN3B%J01lM7OE8cbgm|0}_hxMlouh zrlMBeq!WpNTop_}aihavJ|d|=A>Ut2#D(&+fZ`Ro=q$K>HS>aG0B~0sBP&Z-%pC@% z?jG#8i68faTa(x;B4q4?^?2fT>*%&})nevawqD?&_&P}E8fc#FRjswF(V>FY2#(y5 z>v39^`p!ulxoqJJJVdKoL!*d4(edu8LFon7ybiJHX;Y;)gVhUD*V)4Hp3gHI$I`6I z03IeH*mH1PR35+1lLw2h$h{d*{e`5`kV=WAY4C6hIKGN#*9B5UO|S!0E(3QVQ}^M@ z!-eZ<=hjJ|c;>;Xsi23uPkN0NFIDD%Yqt7vQgUTe!7J8iUzZb_V8^L_%+qS+)$81C zXo5(?WAzwG0XLAL%;8O38NMLjXaVBhO%p0>vj(rm1{y)!f#MMWtI8(dH7zwMqug_S z)EV6)7W=$%Z8W6z$<>q^9Wh{TU?)7L&%3xys{qPmeuP-y;JC$w?YgcMY5J0~RqOZ9#jIo$!{+^fY7Lr*-6w zq>_VHCDy3hWwyLGR#K2Y3P#UKB|vn|nI8Cin`fY^=#X<$`P8I%bM&;{oha4L4u4@yYnB*W`ydfna8Q)~})M&9P^(kW$XCul24 z1jKt0G6hu;$=O_X^s60c93g=!cy*2RQjS_wJ+z0ZpKwtJDC(PtZ0~_i}0{Cm9a6ARFc{H-XvWt7~IbC@vnP(uk zOfaK9OM9=MzdM$foUYJ4C^E~@=@2Gr*y^U4Hx`~lz=^8g})I}C(;IlU;1k(`_8-j3M z@N!QKi(1y6__$6x?37R$Dl;NftiOH~cW8U^$Qf4icqD8bd3a^}ZH6xkHVC0Jypg)o z)fFRA$x?;|sMGT%Wi2{YQDAF@9VQCOvwP!n9w-T?$2=Oh7&Ie_c1ux{O1?ZZX@&)B zhJ>C%IomaL2R7QbnZW5}K-{_sYtVlEmhB@l?;L>@XiVoTV^G&$u(5DigsHJiu4*(R0ARekFawT zg71Z%Nvw<4S!TTOddFucO{mt$vW-uh;dEuX$F2Rb2Ls%BMOhTavONh^^xdJW)>{#l zDte|nhR})6llomoIpL*VQsGl_Xs+COG=Z*{?F1fp;q5pKm?}t%6sN*^pt7E)iy0E~ z&=a1Fzj$bRp52_CyGq~i?Uz7%+lQ^rAfxT@wdo38Dg81Wvzk$$LV00oqFhj zC9G1`teqK(ue-oaNTav8`eGt#NfszqtevhM0w`~vY~P~+)IJT5osJ*&$BKGNI8!*I99l^`daSbUclBsK(0Trke*H~K8Os9 z_PKtT?BglaQ}wiYO4zPJ_x4@5z|K5%Nmj)!4#Y#1;ZoXrQf>noIy85h1tuO5ne&hb ztcDMXQjPd#ndO#^4Y4#b{A}N!_+ZCA(|tRbxMd6i8%i&!dO48hjiBxmbkuw!VxWXP z%1#v`_Xf_8gaZ+N7J6h4-3NpA2xkwgW&@STdBYbjS>RCrgWI zfj+pi@6v9%D)-TyNlv{QcX?L5dhl+~2u;|{9Pepc+tdv(GL^w7=|jsp+tVQB^0MZj zR%YTE>@In<($($w5L5Z~GLG?XihN>xWFcb(Yssg32yN zMWE>zzSoOsO2m>7m|Na5=UHSuJfTgGV13is8s~Yq4pI1QI^1jareX$_$JN6wFbz*1 z78_*S+%vK_A^x6)tmhlY%ly;RJ;34iqS0Zxw-dSF8L?#tA(}LB|_{D8FJfueBA)AV; z_U$3`?gyqGrkeCjk$1EJs~{y`AMi;D?@U;&y_NG|dcNzL*fH;}R61_pHo4MO1~&On zXHTscM~5GTG`6!lnI_Xy3cV#}XJ->ep?bp^+{~|Ltxs*eB7!%>hq}>53T`a<9uPd< ze$iXUP{MI9NV~N$G|Oq*o5f|GFX7PkNtHy_<9gj1;47F>JyO+|@fzML7I>#EW#*1i zvp_(!SJV{0*PR9F+LF@L2&u${M)bb%@u|t3@`#^BcL@{R);3r=hQJUUm+G;zKh4`U z7CivN6kM!o5iuy~wr#y2h(@cE+MBV~O5ITJd+7O!xJLToS(dXdc`{Uuqe*Nm5jg^C zn#gIy9LcBxfR${{y?D2KWh4)5>kLY2(46?JE@4r-9!3u5$>S{CBqQQXRVG;(3cH2` zm1e}P>ZR9@p#s=+2&~uPZTo9%j%uuJ_69ZCeyOcTJG4^9I7mzeAqLi>vIyh(pu8Wj z`dtX}^$`|7jvjy0yW$P`@`SuzV7e_)z!(_@CKx-X3>{s0`=RuL=*r6ZZLKU`NsJmp zIAnr$dO|-qF?_{6D+Ba4UY5r}F8&D+ix+JJ%~N)#pX4QHZGoDEgM7x9=j z+XDem24Py!pS(01uK;L9#=d*3*bLqn73PB_z8c^t4GmTSh-Arfz>-zt!q2l$kP(n% z>lr@ZR(k^aRAq2AwR|gw%5g}|pr8ktfGVEyJek`?u4fj$?-gsB=)F3I3i{v$JkDF#gR~=aIui-A^Fr8d70;}GP;VF3hjP|v zU)q{4_ck>|P7-)LwpQ~;E)E`;ldLcblP@fJ%VsLo2GRE68Y@<>^|gr+$MdB7kRG6upcYQo!Q#6?;)@)Y za^bw`UgXA>H&BPWxbhO;%_u3oi8(CuHIFDDc{b@1hL3Zp-NII#9+C@qmIr9mX}pY; zL3o`H94xs;fM~4FI?yA0XynynC})nrR}630PM{v*N!VcxMQJ3@T_mhdEwN=Ik`*c8 z49bN)w3NDitzuD4&3tYiv-4IJ#T33g;@t5M!RjFuw8(S9cvp zI8e(Yj&240KM{2s?5AiAq$tD#)6a5pHW7+Nzn^$c3H*q$J}5c_gCQt?*o;Cl&Jw8@eqiy1HG z6h|74)@<>nNwk#QDHS%lDz0e(`W?NgVGWgVr_+E|v$sTYidIc@s5p8W&QIPhzSUO> z0NL^g7dom{YTu*rxe0Co;6%W@xY36Ddj|o`=V8~W{!)Wu+%G7$FPM;FJNaF}xXzm< zz`f1i3mPcGM_s44@i7q}v{afJ-;9nP|DK_6Otg!Y#R6R z05{h<$spq0#pH=1)(jD&2%55vwlwM0cyog2p#)B4=B`4a0_ZG@Z+T|cACMGKYBOnA zPrbsH=B>vA!_L`-Aj0tiDy~P`i+2f!w}fB54ka63Vs$I@tT%n}(x1B7#i6NgS2HcS z#j;~_X-))->mh=p=Y!G zpn25>!pR9$?}c0D>r{KI(XWiCUEyB5=6mQOR#x$_nbb-V7sqZ1`dE0k4k7|tvd4-k z(KzERl#ips+%Uvbe8zVWCjv-mC;s@&3nJjBH9WrOq_RBg${Nk2*KpHRF21|8FZ%81 zslZcBE8=+xD?3cS3LZEY?^Y`WCZsCj0*Luq_M{$y#si6sbBScrq`c!QHb0q32Ys=R zG;hfGEy=M0Yt5m&Cjp|boyeNvhP?d5dS^H={C;l>K_a;3ftnLWB9uDV$zHCmnE?DN={(wNxMKLrGjXfEkj0di)CkoZ3(HU%dm^@nX6lg_C~&yTc1{pm zKPH_!dToYBoaEw`%;~RXXpk&{I`i48w%_Sr5b-t9g4jj1n5z)Wt(Fq$?qo*J%@Kbu z5EK{^Q~cP}=P@R@MpD|SznLJrLLzymB-=D%PR<&YniZ5W?Yc)2enJb(w;4`=VVDp7 zCEAmwS10n~dVy7?<6h%48Fm(?1@aB$agoId45v-vvr%1)eO7uB^=Lx_`UNsQ3qrM& z^^9W9t=O(i0obRg+4S&Ba%a@OWrYx#7l&tJl*3PNU0ORf5N|9yt26 z#R0m|?K&2*JcOQmq1=>D5`uVpwUFRN$uG9ep~odzSC~WS`9WnWfq7A|qdjISv2ig> ze{E>V6O?)rIZ26o&3L3?3NY}lOGI`LM^Il8>v+7)YK13Qz#bOIvE(8*k{t3N6$T=9 z-bqTkDZ5GX=Htg;E?P28L6x|MH^41~j$$t-U;&+jc&t8lnSpl;GB4? z;_1b$+^2?O*`P)!QL!&$GbXt8idJeuX|6Meo%=v*O_uIaB0jhBSFMU(x|60bF9ydM zpc%KR_~qkmTrj9!*lnBE*2CDBT4|SA_GTQ9(2*0pH=NrtS0_3%9e~go{Y2fcy>Hyi zFViN6_^ER&LIL9_25d14Bb=Npn}WJn+)j&Yd_siY_aO__?t~1uDHCJkiU>$3Orlw5 z7y?t?Om5`3GI(haNqDRxBUeAj;sJaQmgF(+opi{11r}E+VQSnyhI-44E2@Z4`VfV% zxBL7CwAxn?2f$ob%-nY(v89dV@c}x)yhUX1cmq2fhDb|gB|QWj`Ydb8i(-aHJz!xs zFoG^#0g-UJpS&m7!n(>#Jkd19!hDaef>!d)JG?>>mf}TH>o6iIc!9y(UPh2Z!{+gf zE}5^w$2>`!noK!sH``h?8kZ?a-b$H4lK`I^1k5g&BsRB8LsRte!zh;6Q=`YtP?o)w-)<};FgGz8#&mp~Oe1+PL$*dQwofjnGBIs2?89CfLr?zw3f;(PQGwwO&0=Ppj#kS6Yi zyUQb26zrD72i7MH%%qC6-d~8>l#t~~HyHXlM z2v1gNfSaT(ygKpe8&RW-J_v%69FH1yk%(z@mgkdf0SE3|g9fD}6XK}!=G_HMS*S|y zFadbvA$8ot(_yA`bWlFD+>VVF76ZUbpVqv}sU;*oavzU@)qC$$)$obbLoneTrE#2I zlU_gcC?Q@QEfR`M!F96cHy3jfZMcetJsj|Ev8Ii#&`e6&gcEmo(~c12T9|f$(I@AL z9-SikrWqn9YNL=y@pH4psh2hfiz2x=t_E4XO)PM{Z@0tA&qMgpp3*!;B(Kbqi9_Hn z$q>s;(1wcgHZK@vw9siFftk%J^CT)gyjb;}r9lU2E8EvM!V8z9?_j)BEzM+_g*7iA z^xjUrhg1BVX;kQ$D?WeI!J1GBn24^F^#cf)d4Je zmR9p23sTmzfkyL0_fllSwG(~RrCN`O)l7z5OJKuab5KszwQxmJ4>^%PB27%FhXRR0 z;zy(dl#70<+9pOL(tLxC{bIHIW|cNc4suT1rLQ4rob%ONo_WlnQ|7U%ga*B5Y~h($ z)x%=E3029!9%IV&&M9+RwUE6yp(o_AHa;71!{$R|bPY(EIl#x7&<@Ge2JowglTu9I zB;%7BL`px7-A6kFdYLVzO;^ykPgD)Z(XO8mr@WJ5inF);c$Q3$TU5H!AA!xpp6R5N zHE-F13))+H?qCgX0P(Jl$Xv*LET*68X-chD!E(mi-mTpFzZd!U|KI=o^Y8aRCpfy) literal 0 HcmV?d00001 diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go new file mode 100644 index 00000000..46a0d63a --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor.go @@ -0,0 +1,16 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64,!386,!ppc64le appengine + +package sha3 + +var ( + xorIn = xorInGeneric + copyOut = copyOutGeneric + xorInUnaligned = xorInGeneric + copyOutUnaligned = copyOutGeneric +) + +const xorImplementationUnaligned = "generic" diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go new file mode 100644 index 00000000..fd35f02e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor_generic.go @@ -0,0 +1,28 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +import "encoding/binary" + +// xorInGeneric xors the bytes in buf into the state; it +// makes no non-portable assumptions about memory layout +// or alignment. +func xorInGeneric(d *state, buf []byte) { + n := len(buf) / 8 + + for i := 0; i < n; i++ { + a := binary.LittleEndian.Uint64(buf) + d.a[i] ^= a + buf = buf[8:] + } +} + +// copyOutGeneric copies ulint64s to a byte buffer. +func copyOutGeneric(d *state, b []byte) { + for i := 0; len(b) >= 8; i++ { + binary.LittleEndian.PutUint64(b, d.a[i]) + b = b[8:] + } +} diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go new file mode 100644 index 00000000..929a486a --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go @@ -0,0 +1,58 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64 386 ppc64le +// +build !appengine + +package sha3 + +import "unsafe" + +func xorInUnaligned(d *state, buf []byte) { + bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0])) + n := len(buf) + if n >= 72 { + d.a[0] ^= bw[0] + d.a[1] ^= bw[1] + d.a[2] ^= bw[2] + d.a[3] ^= bw[3] + d.a[4] ^= bw[4] + d.a[5] ^= bw[5] + d.a[6] ^= bw[6] + d.a[7] ^= bw[7] + d.a[8] ^= bw[8] + } + if n >= 104 { + d.a[9] ^= bw[9] + d.a[10] ^= bw[10] + d.a[11] ^= bw[11] + d.a[12] ^= bw[12] + } + if n >= 136 { + d.a[13] ^= bw[13] + d.a[14] ^= bw[14] + d.a[15] ^= bw[15] + d.a[16] ^= bw[16] + } + if n >= 144 { + d.a[17] ^= bw[17] + } + if n >= 168 { + d.a[18] ^= bw[18] + d.a[19] ^= bw[19] + d.a[20] ^= bw[20] + } +} + +func copyOutUnaligned(d *state, buf []byte) { + ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) + copy(buf, ab[:]) +} + +var ( + xorIn = xorInUnaligned + copyOut = copyOutUnaligned +) + +const xorImplementationUnaligned = "unaligned" diff --git a/vendor/golang.org/x/crypto/ssh/agent/client.go b/vendor/golang.org/x/crypto/ssh/agent/client.go new file mode 100644 index 00000000..ecfd7c58 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/client.go @@ -0,0 +1,659 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package agent implements the ssh-agent protocol, and provides both +// a client and a server. The client can talk to a standard ssh-agent +// that uses UNIX sockets, and one could implement an alternative +// ssh-agent process using the sample server. +// +// References: +// [PROTOCOL.agent]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD +package agent // import "golang.org/x/crypto/ssh/agent" + +import ( + "bytes" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "encoding/base64" + "encoding/binary" + "errors" + "fmt" + "io" + "math/big" + "sync" + + "golang.org/x/crypto/ed25519" + "golang.org/x/crypto/ssh" +) + +// Agent represents the capabilities of an ssh-agent. +type Agent interface { + // List returns the identities known to the agent. + List() ([]*Key, error) + + // Sign has the agent sign the data using a protocol 2 key as defined + // in [PROTOCOL.agent] section 2.6.2. + Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) + + // Add adds a private key to the agent. + Add(key AddedKey) error + + // Remove removes all identities with the given public key. + Remove(key ssh.PublicKey) error + + // RemoveAll removes all identities. + RemoveAll() error + + // Lock locks the agent. Sign and Remove will fail, and List will empty an empty list. + Lock(passphrase []byte) error + + // Unlock undoes the effect of Lock + Unlock(passphrase []byte) error + + // Signers returns signers for all the known keys. + Signers() ([]ssh.Signer, error) +} + +// AddedKey describes an SSH key to be added to an Agent. +type AddedKey struct { + // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or + // *ecdsa.PrivateKey, which will be inserted into the agent. + PrivateKey interface{} + // Certificate, if not nil, is communicated to the agent and will be + // stored with the key. + Certificate *ssh.Certificate + // Comment is an optional, free-form string. + Comment string + // LifetimeSecs, if not zero, is the number of seconds that the + // agent will store the key for. + LifetimeSecs uint32 + // ConfirmBeforeUse, if true, requests that the agent confirm with the + // user before each use of this key. + ConfirmBeforeUse bool +} + +// See [PROTOCOL.agent], section 3. +const ( + agentRequestV1Identities = 1 + agentRemoveAllV1Identities = 9 + + // 3.2 Requests from client to agent for protocol 2 key operations + agentAddIdentity = 17 + agentRemoveIdentity = 18 + agentRemoveAllIdentities = 19 + agentAddIdConstrained = 25 + + // 3.3 Key-type independent requests from client to agent + agentAddSmartcardKey = 20 + agentRemoveSmartcardKey = 21 + agentLock = 22 + agentUnlock = 23 + agentAddSmartcardKeyConstrained = 26 + + // 3.7 Key constraint identifiers + agentConstrainLifetime = 1 + agentConstrainConfirm = 2 +) + +// maxAgentResponseBytes is the maximum agent reply size that is accepted. This +// is a sanity check, not a limit in the spec. +const maxAgentResponseBytes = 16 << 20 + +// Agent messages: +// These structures mirror the wire format of the corresponding ssh agent +// messages found in [PROTOCOL.agent]. + +// 3.4 Generic replies from agent to client +const agentFailure = 5 + +type failureAgentMsg struct{} + +const agentSuccess = 6 + +type successAgentMsg struct{} + +// See [PROTOCOL.agent], section 2.5.2. +const agentRequestIdentities = 11 + +type requestIdentitiesAgentMsg struct{} + +// See [PROTOCOL.agent], section 2.5.2. +const agentIdentitiesAnswer = 12 + +type identitiesAnswerAgentMsg struct { + NumKeys uint32 `sshtype:"12"` + Keys []byte `ssh:"rest"` +} + +// See [PROTOCOL.agent], section 2.6.2. +const agentSignRequest = 13 + +type signRequestAgentMsg struct { + KeyBlob []byte `sshtype:"13"` + Data []byte + Flags uint32 +} + +// See [PROTOCOL.agent], section 2.6.2. + +// 3.6 Replies from agent to client for protocol 2 key operations +const agentSignResponse = 14 + +type signResponseAgentMsg struct { + SigBlob []byte `sshtype:"14"` +} + +type publicKey struct { + Format string + Rest []byte `ssh:"rest"` +} + +// Key represents a protocol 2 public key as defined in +// [PROTOCOL.agent], section 2.5.2. +type Key struct { + Format string + Blob []byte + Comment string +} + +func clientErr(err error) error { + return fmt.Errorf("agent: client error: %v", err) +} + +// String returns the storage form of an agent key with the format, base64 +// encoded serialized key, and the comment if it is not empty. +func (k *Key) String() string { + s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob) + + if k.Comment != "" { + s += " " + k.Comment + } + + return s +} + +// Type returns the public key type. +func (k *Key) Type() string { + return k.Format +} + +// Marshal returns key blob to satisfy the ssh.PublicKey interface. +func (k *Key) Marshal() []byte { + return k.Blob +} + +// Verify satisfies the ssh.PublicKey interface. +func (k *Key) Verify(data []byte, sig *ssh.Signature) error { + pubKey, err := ssh.ParsePublicKey(k.Blob) + if err != nil { + return fmt.Errorf("agent: bad public key: %v", err) + } + return pubKey.Verify(data, sig) +} + +type wireKey struct { + Format string + Rest []byte `ssh:"rest"` +} + +func parseKey(in []byte) (out *Key, rest []byte, err error) { + var record struct { + Blob []byte + Comment string + Rest []byte `ssh:"rest"` + } + + if err := ssh.Unmarshal(in, &record); err != nil { + return nil, nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(record.Blob, &wk); err != nil { + return nil, nil, err + } + + return &Key{ + Format: wk.Format, + Blob: record.Blob, + Comment: record.Comment, + }, record.Rest, nil +} + +// client is a client for an ssh-agent process. +type client struct { + // conn is typically a *net.UnixConn + conn io.ReadWriter + // mu is used to prevent concurrent access to the agent + mu sync.Mutex +} + +// NewClient returns an Agent that talks to an ssh-agent process over +// the given connection. +func NewClient(rw io.ReadWriter) Agent { + return &client{conn: rw} +} + +// call sends an RPC to the agent. On success, the reply is +// unmarshaled into reply and replyType is set to the first byte of +// the reply, which contains the type of the message. +func (c *client) call(req []byte) (reply interface{}, err error) { + c.mu.Lock() + defer c.mu.Unlock() + + msg := make([]byte, 4+len(req)) + binary.BigEndian.PutUint32(msg, uint32(len(req))) + copy(msg[4:], req) + if _, err = c.conn.Write(msg); err != nil { + return nil, clientErr(err) + } + + var respSizeBuf [4]byte + if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil { + return nil, clientErr(err) + } + respSize := binary.BigEndian.Uint32(respSizeBuf[:]) + if respSize > maxAgentResponseBytes { + return nil, clientErr(err) + } + + buf := make([]byte, respSize) + if _, err = io.ReadFull(c.conn, buf); err != nil { + return nil, clientErr(err) + } + reply, err = unmarshal(buf) + if err != nil { + return nil, clientErr(err) + } + return reply, err +} + +func (c *client) simpleCall(req []byte) error { + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +func (c *client) RemoveAll() error { + return c.simpleCall([]byte{agentRemoveAllIdentities}) +} + +func (c *client) Remove(key ssh.PublicKey) error { + req := ssh.Marshal(&agentRemoveIdentityMsg{ + KeyBlob: key.Marshal(), + }) + return c.simpleCall(req) +} + +func (c *client) Lock(passphrase []byte) error { + req := ssh.Marshal(&agentLockMsg{ + Passphrase: passphrase, + }) + return c.simpleCall(req) +} + +func (c *client) Unlock(passphrase []byte) error { + req := ssh.Marshal(&agentUnlockMsg{ + Passphrase: passphrase, + }) + return c.simpleCall(req) +} + +// List returns the identities known to the agent. +func (c *client) List() ([]*Key, error) { + // see [PROTOCOL.agent] section 2.5.2. + req := []byte{agentRequestIdentities} + + msg, err := c.call(req) + if err != nil { + return nil, err + } + + switch msg := msg.(type) { + case *identitiesAnswerAgentMsg: + if msg.NumKeys > maxAgentResponseBytes/8 { + return nil, errors.New("agent: too many keys in agent reply") + } + keys := make([]*Key, msg.NumKeys) + data := msg.Keys + for i := uint32(0); i < msg.NumKeys; i++ { + var key *Key + var err error + if key, data, err = parseKey(data); err != nil { + return nil, err + } + keys[i] = key + } + return keys, nil + case *failureAgentMsg: + return nil, errors.New("agent: failed to list keys") + } + panic("unreachable") +} + +// Sign has the agent sign the data using a protocol 2 key as defined +// in [PROTOCOL.agent] section 2.6.2. +func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { + req := ssh.Marshal(signRequestAgentMsg{ + KeyBlob: key.Marshal(), + Data: data, + }) + + msg, err := c.call(req) + if err != nil { + return nil, err + } + + switch msg := msg.(type) { + case *signResponseAgentMsg: + var sig ssh.Signature + if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil { + return nil, err + } + + return &sig, nil + case *failureAgentMsg: + return nil, errors.New("agent: failed to sign challenge") + } + panic("unreachable") +} + +// unmarshal parses an agent message in packet, returning the parsed +// form and the message type of packet. +func unmarshal(packet []byte) (interface{}, error) { + if len(packet) < 1 { + return nil, errors.New("agent: empty packet") + } + var msg interface{} + switch packet[0] { + case agentFailure: + return new(failureAgentMsg), nil + case agentSuccess: + return new(successAgentMsg), nil + case agentIdentitiesAnswer: + msg = new(identitiesAnswerAgentMsg) + case agentSignResponse: + msg = new(signResponseAgentMsg) + case agentV1IdentitiesAnswer: + msg = new(agentV1IdentityMsg) + default: + return nil, fmt.Errorf("agent: unknown type tag %d", packet[0]) + } + if err := ssh.Unmarshal(packet, msg); err != nil { + return nil, err + } + return msg, nil +} + +type rsaKeyMsg struct { + Type string `sshtype:"17|25"` + N *big.Int + E *big.Int + D *big.Int + Iqmp *big.Int // IQMP = Inverse Q Mod P + P *big.Int + Q *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type dsaKeyMsg struct { + Type string `sshtype:"17|25"` + P *big.Int + Q *big.Int + G *big.Int + Y *big.Int + X *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ecdsaKeyMsg struct { + Type string `sshtype:"17|25"` + Curve string + KeyBytes []byte + D *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ed25519KeyMsg struct { + Type string `sshtype:"17|25"` + Pub []byte + Priv []byte + Comments string + Constraints []byte `ssh:"rest"` +} + +// Insert adds a private key to the agent. +func (c *client) insertKey(s interface{}, comment string, constraints []byte) error { + var req []byte + switch k := s.(type) { + case *rsa.PrivateKey: + if len(k.Primes) != 2 { + return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) + } + k.Precompute() + req = ssh.Marshal(rsaKeyMsg{ + Type: ssh.KeyAlgoRSA, + N: k.N, + E: big.NewInt(int64(k.E)), + D: k.D, + Iqmp: k.Precomputed.Qinv, + P: k.Primes[0], + Q: k.Primes[1], + Comments: comment, + Constraints: constraints, + }) + case *dsa.PrivateKey: + req = ssh.Marshal(dsaKeyMsg{ + Type: ssh.KeyAlgoDSA, + P: k.P, + Q: k.Q, + G: k.G, + Y: k.Y, + X: k.X, + Comments: comment, + Constraints: constraints, + }) + case *ecdsa.PrivateKey: + nistID := fmt.Sprintf("nistp%d", k.Params().BitSize) + req = ssh.Marshal(ecdsaKeyMsg{ + Type: "ecdsa-sha2-" + nistID, + Curve: nistID, + KeyBytes: elliptic.Marshal(k.Curve, k.X, k.Y), + D: k.D, + Comments: comment, + Constraints: constraints, + }) + case *ed25519.PrivateKey: + req = ssh.Marshal(ed25519KeyMsg{ + Type: ssh.KeyAlgoED25519, + Pub: []byte(*k)[32:], + Priv: []byte(*k), + Comments: comment, + Constraints: constraints, + }) + default: + return fmt.Errorf("agent: unsupported key type %T", s) + } + + // if constraints are present then the message type needs to be changed. + if len(constraints) != 0 { + req[0] = agentAddIdConstrained + } + + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +type rsaCertMsg struct { + Type string `sshtype:"17|25"` + CertBytes []byte + D *big.Int + Iqmp *big.Int // IQMP = Inverse Q Mod P + P *big.Int + Q *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type dsaCertMsg struct { + Type string `sshtype:"17|25"` + CertBytes []byte + X *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ecdsaCertMsg struct { + Type string `sshtype:"17|25"` + CertBytes []byte + D *big.Int + Comments string + Constraints []byte `ssh:"rest"` +} + +type ed25519CertMsg struct { + Type string `sshtype:"17|25"` + CertBytes []byte + Pub []byte + Priv []byte + Comments string + Constraints []byte `ssh:"rest"` +} + +// Add adds a private key to the agent. If a certificate is given, +// that certificate is added instead as public key. +func (c *client) Add(key AddedKey) error { + var constraints []byte + + if secs := key.LifetimeSecs; secs != 0 { + constraints = append(constraints, agentConstrainLifetime) + + var secsBytes [4]byte + binary.BigEndian.PutUint32(secsBytes[:], secs) + constraints = append(constraints, secsBytes[:]...) + } + + if key.ConfirmBeforeUse { + constraints = append(constraints, agentConstrainConfirm) + } + + if cert := key.Certificate; cert == nil { + return c.insertKey(key.PrivateKey, key.Comment, constraints) + } else { + return c.insertCert(key.PrivateKey, cert, key.Comment, constraints) + } +} + +func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment string, constraints []byte) error { + var req []byte + switch k := s.(type) { + case *rsa.PrivateKey: + if len(k.Primes) != 2 { + return fmt.Errorf("agent: unsupported RSA key with %d primes", len(k.Primes)) + } + k.Precompute() + req = ssh.Marshal(rsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + D: k.D, + Iqmp: k.Precomputed.Qinv, + P: k.Primes[0], + Q: k.Primes[1], + Comments: comment, + Constraints: constraints, + }) + case *dsa.PrivateKey: + req = ssh.Marshal(dsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + X: k.X, + Comments: comment, + Constraints: constraints, + }) + case *ecdsa.PrivateKey: + req = ssh.Marshal(ecdsaCertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + D: k.D, + Comments: comment, + Constraints: constraints, + }) + case *ed25519.PrivateKey: + req = ssh.Marshal(ed25519CertMsg{ + Type: cert.Type(), + CertBytes: cert.Marshal(), + Pub: []byte(*k)[32:], + Priv: []byte(*k), + Comments: comment, + Constraints: constraints, + }) + default: + return fmt.Errorf("agent: unsupported key type %T", s) + } + + // if constraints are present then the message type needs to be changed. + if len(constraints) != 0 { + req[0] = agentAddIdConstrained + } + + signer, err := ssh.NewSignerFromKey(s) + if err != nil { + return err + } + if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { + return errors.New("agent: signer and cert have different public key") + } + + resp, err := c.call(req) + if err != nil { + return err + } + if _, ok := resp.(*successAgentMsg); ok { + return nil + } + return errors.New("agent: failure") +} + +// Signers provides a callback for client authentication. +func (c *client) Signers() ([]ssh.Signer, error) { + keys, err := c.List() + if err != nil { + return nil, err + } + + var result []ssh.Signer + for _, k := range keys { + result = append(result, &agentKeyringSigner{c, k}) + } + return result, nil +} + +type agentKeyringSigner struct { + agent *client + pub ssh.PublicKey +} + +func (s *agentKeyringSigner) PublicKey() ssh.PublicKey { + return s.pub +} + +func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) (*ssh.Signature, error) { + // The agent has its own entropy source, so the rand argument is ignored. + return s.agent.Sign(s.pub, data) +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/client_test.go b/vendor/golang.org/x/crypto/ssh/agent/client_test.go new file mode 100644 index 00000000..e33d4713 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/client_test.go @@ -0,0 +1,343 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "bytes" + "crypto/rand" + "errors" + "net" + "os" + "os/exec" + "path/filepath" + "strconv" + "testing" + "time" + + "golang.org/x/crypto/ssh" +) + +// startAgent executes ssh-agent, and returns a Agent interface to it. +func startAgent(t *testing.T) (client Agent, socket string, cleanup func()) { + if testing.Short() { + // ssh-agent is not always available, and the key + // types supported vary by platform. + t.Skip("skipping test due to -short") + } + + bin, err := exec.LookPath("ssh-agent") + if err != nil { + t.Skip("could not find ssh-agent") + } + + cmd := exec.Command(bin, "-s") + out, err := cmd.Output() + if err != nil { + t.Fatalf("cmd.Output: %v", err) + } + + /* Output looks like: + + SSH_AUTH_SOCK=/tmp/ssh-P65gpcqArqvH/agent.15541; export SSH_AUTH_SOCK; + SSH_AGENT_PID=15542; export SSH_AGENT_PID; + echo Agent pid 15542; + */ + fields := bytes.Split(out, []byte(";")) + line := bytes.SplitN(fields[0], []byte("="), 2) + line[0] = bytes.TrimLeft(line[0], "\n") + if string(line[0]) != "SSH_AUTH_SOCK" { + t.Fatalf("could not find key SSH_AUTH_SOCK in %q", fields[0]) + } + socket = string(line[1]) + + line = bytes.SplitN(fields[2], []byte("="), 2) + line[0] = bytes.TrimLeft(line[0], "\n") + if string(line[0]) != "SSH_AGENT_PID" { + t.Fatalf("could not find key SSH_AGENT_PID in %q", fields[2]) + } + pidStr := line[1] + pid, err := strconv.Atoi(string(pidStr)) + if err != nil { + t.Fatalf("Atoi(%q): %v", pidStr, err) + } + + conn, err := net.Dial("unix", string(socket)) + if err != nil { + t.Fatalf("net.Dial: %v", err) + } + + ac := NewClient(conn) + return ac, socket, func() { + proc, _ := os.FindProcess(pid) + if proc != nil { + proc.Kill() + } + conn.Close() + os.RemoveAll(filepath.Dir(socket)) + } +} + +func testAgent(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { + agent, _, cleanup := startAgent(t) + defer cleanup() + + testAgentInterface(t, agent, key, cert, lifetimeSecs) +} + +func testKeyring(t *testing.T, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { + a := NewKeyring() + testAgentInterface(t, a, key, cert, lifetimeSecs) +} + +func testAgentInterface(t *testing.T, agent Agent, key interface{}, cert *ssh.Certificate, lifetimeSecs uint32) { + signer, err := ssh.NewSignerFromKey(key) + if err != nil { + t.Fatalf("NewSignerFromKey(%T): %v", key, err) + } + // The agent should start up empty. + if keys, err := agent.List(); err != nil { + t.Fatalf("RequestIdentities: %v", err) + } else if len(keys) > 0 { + t.Fatalf("got %d keys, want 0: %v", len(keys), keys) + } + + // Attempt to insert the key, with certificate if specified. + var pubKey ssh.PublicKey + if cert != nil { + err = agent.Add(AddedKey{ + PrivateKey: key, + Certificate: cert, + Comment: "comment", + LifetimeSecs: lifetimeSecs, + }) + pubKey = cert + } else { + err = agent.Add(AddedKey{PrivateKey: key, Comment: "comment", LifetimeSecs: lifetimeSecs}) + pubKey = signer.PublicKey() + } + if err != nil { + t.Fatalf("insert(%T): %v", key, err) + } + + // Did the key get inserted successfully? + if keys, err := agent.List(); err != nil { + t.Fatalf("List: %v", err) + } else if len(keys) != 1 { + t.Fatalf("got %v, want 1 key", keys) + } else if keys[0].Comment != "comment" { + t.Fatalf("key comment: got %v, want %v", keys[0].Comment, "comment") + } else if !bytes.Equal(keys[0].Blob, pubKey.Marshal()) { + t.Fatalf("key mismatch") + } + + // Can the agent make a valid signature? + data := []byte("hello") + sig, err := agent.Sign(pubKey, data) + if err != nil { + t.Fatalf("Sign(%s): %v", pubKey.Type(), err) + } + + if err := pubKey.Verify(data, sig); err != nil { + t.Fatalf("Verify(%s): %v", pubKey.Type(), err) + } + + // If the key has a lifetime, is it removed when it should be? + if lifetimeSecs > 0 { + time.Sleep(time.Second*time.Duration(lifetimeSecs) + 100*time.Millisecond) + keys, err := agent.List() + if err != nil { + t.Fatalf("List: %v", err) + } + if len(keys) > 0 { + t.Fatalf("key not expired") + } + } + +} + +func TestAgent(t *testing.T) { + for _, keyType := range []string{"rsa", "dsa", "ecdsa", "ed25519"} { + testAgent(t, testPrivateKeys[keyType], nil, 0) + testKeyring(t, testPrivateKeys[keyType], nil, 1) + } +} + +func TestCert(t *testing.T) { + cert := &ssh.Certificate{ + Key: testPublicKeys["rsa"], + ValidBefore: ssh.CertTimeInfinity, + CertType: ssh.UserCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + testAgent(t, testPrivateKeys["rsa"], cert, 0) + testKeyring(t, testPrivateKeys["rsa"], cert, 1) +} + +// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and +// therefore is buffered (net.Pipe deadlocks if both sides start with +// a write.) +func netPipe() (net.Conn, net.Conn, error) { + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("tcp", listener.Addr().String()) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1, c2, nil +} + +func TestAuth(t *testing.T) { + a, b, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + defer a.Close() + defer b.Close() + + agent, _, cleanup := startAgent(t) + defer cleanup() + + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil { + t.Errorf("Add: %v", err) + } + + serverConf := ssh.ServerConfig{} + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key ssh.PublicKey) (*ssh.Permissions, error) { + if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { + return nil, nil + } + + return nil, errors.New("pubkey rejected") + } + + go func() { + conn, _, _, err := ssh.NewServerConn(a, &serverConf) + if err != nil { + t.Fatalf("Server: %v", err) + } + conn.Close() + }() + + conf := ssh.ClientConfig{} + conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers)) + conn, _, _, err := ssh.NewClientConn(b, "", &conf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + conn.Close() +} + +func TestLockClient(t *testing.T) { + agent, _, cleanup := startAgent(t) + defer cleanup() + testLockAgent(agent, t) +} + +func testLockAgent(agent Agent, t *testing.T) { + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment 1"}); err != nil { + t.Errorf("Add: %v", err) + } + if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["dsa"], Comment: "comment dsa"}); err != nil { + t.Errorf("Add: %v", err) + } + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 2 { + t.Errorf("Want 2 keys, got %v", keys) + } + + passphrase := []byte("secret") + if err := agent.Lock(passphrase); err != nil { + t.Errorf("Lock: %v", err) + } + + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 0 { + t.Errorf("Want 0 keys, got %v", keys) + } + + signer, _ := ssh.NewSignerFromKey(testPrivateKeys["rsa"]) + if _, err := agent.Sign(signer.PublicKey(), []byte("hello")); err == nil { + t.Fatalf("Sign did not fail") + } + + if err := agent.Remove(signer.PublicKey()); err == nil { + t.Fatalf("Remove did not fail") + } + + if err := agent.RemoveAll(); err == nil { + t.Fatalf("RemoveAll did not fail") + } + + if err := agent.Unlock(nil); err == nil { + t.Errorf("Unlock with wrong passphrase succeeded") + } + if err := agent.Unlock(passphrase); err != nil { + t.Errorf("Unlock: %v", err) + } + + if err := agent.Remove(signer.PublicKey()); err != nil { + t.Fatalf("Remove: %v", err) + } + + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 1 { + t.Errorf("Want 1 keys, got %v", keys) + } +} + +func TestAgentLifetime(t *testing.T) { + agent, _, cleanup := startAgent(t) + defer cleanup() + + for _, keyType := range []string{"rsa", "dsa", "ecdsa"} { + // Add private keys to the agent. + err := agent.Add(AddedKey{ + PrivateKey: testPrivateKeys[keyType], + Comment: "comment", + LifetimeSecs: 1, + }) + if err != nil { + t.Fatalf("add: %v", err) + } + // Add certs to the agent. + cert := &ssh.Certificate{ + Key: testPublicKeys[keyType], + ValidBefore: ssh.CertTimeInfinity, + CertType: ssh.UserCert, + } + cert.SignCert(rand.Reader, testSigners[keyType]) + err = agent.Add(AddedKey{ + PrivateKey: testPrivateKeys[keyType], + Certificate: cert, + Comment: "comment", + LifetimeSecs: 1, + }) + if err != nil { + t.Fatalf("add: %v", err) + } + } + time.Sleep(1100 * time.Millisecond) + if keys, err := agent.List(); err != nil { + t.Errorf("List: %v", err) + } else if len(keys) != 0 { + t.Errorf("Want 0 keys, got %v", len(keys)) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/example_test.go b/vendor/golang.org/x/crypto/ssh/agent/example_test.go new file mode 100644 index 00000000..c1130f77 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/example_test.go @@ -0,0 +1,40 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent_test + +import ( + "log" + "os" + "net" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" +) + +func ExampleClientAgent() { + // ssh-agent has a UNIX socket under $SSH_AUTH_SOCK + socket := os.Getenv("SSH_AUTH_SOCK") + conn, err := net.Dial("unix", socket) + if err != nil { + log.Fatalf("net.Dial: %v", err) + } + agentClient := agent.NewClient(conn) + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + // Use a callback rather than PublicKeys + // so we only consult the agent once the remote server + // wants it. + ssh.PublicKeysCallback(agentClient.Signers), + }, + } + + sshc, err := ssh.Dial("tcp", "localhost:22", config) + if err != nil { + log.Fatalf("Dial: %v", err) + } + // .. use sshc + sshc.Close() +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/forward.go b/vendor/golang.org/x/crypto/ssh/agent/forward.go new file mode 100644 index 00000000..fd24ba90 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/forward.go @@ -0,0 +1,103 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "errors" + "io" + "net" + "sync" + + "golang.org/x/crypto/ssh" +) + +// RequestAgentForwarding sets up agent forwarding for the session. +// ForwardToAgent or ForwardToRemote should be called to route +// the authentication requests. +func RequestAgentForwarding(session *ssh.Session) error { + ok, err := session.SendRequest("auth-agent-req@openssh.com", true, nil) + if err != nil { + return err + } + if !ok { + return errors.New("forwarding request denied") + } + return nil +} + +// ForwardToAgent routes authentication requests to the given keyring. +func ForwardToAgent(client *ssh.Client, keyring Agent) error { + channels := client.HandleChannelOpen(channelType) + if channels == nil { + return errors.New("agent: already have handler for " + channelType) + } + + go func() { + for ch := range channels { + channel, reqs, err := ch.Accept() + if err != nil { + continue + } + go ssh.DiscardRequests(reqs) + go func() { + ServeAgent(keyring, channel) + channel.Close() + }() + } + }() + return nil +} + +const channelType = "auth-agent@openssh.com" + +// ForwardToRemote routes authentication requests to the ssh-agent +// process serving on the given unix socket. +func ForwardToRemote(client *ssh.Client, addr string) error { + channels := client.HandleChannelOpen(channelType) + if channels == nil { + return errors.New("agent: already have handler for " + channelType) + } + conn, err := net.Dial("unix", addr) + if err != nil { + return err + } + conn.Close() + + go func() { + for ch := range channels { + channel, reqs, err := ch.Accept() + if err != nil { + continue + } + go ssh.DiscardRequests(reqs) + go forwardUnixSocket(channel, addr) + } + }() + return nil +} + +func forwardUnixSocket(channel ssh.Channel, addr string) { + conn, err := net.Dial("unix", addr) + if err != nil { + return + } + + var wg sync.WaitGroup + wg.Add(2) + go func() { + io.Copy(conn, channel) + conn.(*net.UnixConn).CloseWrite() + wg.Done() + }() + go func() { + io.Copy(channel, conn) + channel.CloseWrite() + wg.Done() + }() + + wg.Wait() + conn.Close() + channel.Close() +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring.go b/vendor/golang.org/x/crypto/ssh/agent/keyring.go new file mode 100644 index 00000000..a6ba06ab --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/keyring.go @@ -0,0 +1,215 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "bytes" + "crypto/rand" + "crypto/subtle" + "errors" + "fmt" + "sync" + "time" + + "golang.org/x/crypto/ssh" +) + +type privKey struct { + signer ssh.Signer + comment string + expire *time.Time +} + +type keyring struct { + mu sync.Mutex + keys []privKey + + locked bool + passphrase []byte +} + +var errLocked = errors.New("agent: locked") + +// NewKeyring returns an Agent that holds keys in memory. It is safe +// for concurrent use by multiple goroutines. +func NewKeyring() Agent { + return &keyring{} +} + +// RemoveAll removes all identities. +func (r *keyring) RemoveAll() error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + r.keys = nil + return nil +} + +// removeLocked does the actual key removal. The caller must already be holding the +// keyring mutex. +func (r *keyring) removeLocked(want []byte) error { + found := false + for i := 0; i < len(r.keys); { + if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) { + found = true + r.keys[i] = r.keys[len(r.keys)-1] + r.keys = r.keys[:len(r.keys)-1] + continue + } else { + i++ + } + } + + if !found { + return errors.New("agent: key not found") + } + return nil +} + +// Remove removes all identities with the given public key. +func (r *keyring) Remove(key ssh.PublicKey) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + return r.removeLocked(key.Marshal()) +} + +// Lock locks the agent. Sign and Remove will fail, and List will return an empty list. +func (r *keyring) Lock(passphrase []byte) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + + r.locked = true + r.passphrase = passphrase + return nil +} + +// Unlock undoes the effect of Lock +func (r *keyring) Unlock(passphrase []byte) error { + r.mu.Lock() + defer r.mu.Unlock() + if !r.locked { + return errors.New("agent: not locked") + } + if len(passphrase) != len(r.passphrase) || 1 != subtle.ConstantTimeCompare(passphrase, r.passphrase) { + return fmt.Errorf("agent: incorrect passphrase") + } + + r.locked = false + r.passphrase = nil + return nil +} + +// expireKeysLocked removes expired keys from the keyring. If a key was added +// with a lifetimesecs contraint and seconds >= lifetimesecs seconds have +// ellapsed, it is removed. The caller *must* be holding the keyring mutex. +func (r *keyring) expireKeysLocked() { + for _, k := range r.keys { + if k.expire != nil && time.Now().After(*k.expire) { + r.removeLocked(k.signer.PublicKey().Marshal()) + } + } +} + +// List returns the identities known to the agent. +func (r *keyring) List() ([]*Key, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + // section 2.7: locked agents return empty. + return nil, nil + } + + r.expireKeysLocked() + var ids []*Key + for _, k := range r.keys { + pub := k.signer.PublicKey() + ids = append(ids, &Key{ + Format: pub.Type(), + Blob: pub.Marshal(), + Comment: k.comment}) + } + return ids, nil +} + +// Insert adds a private key to the keyring. If a certificate +// is given, that certificate is added as public key. Note that +// any constraints given are ignored. +func (r *keyring) Add(key AddedKey) error { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return errLocked + } + signer, err := ssh.NewSignerFromKey(key.PrivateKey) + + if err != nil { + return err + } + + if cert := key.Certificate; cert != nil { + signer, err = ssh.NewCertSigner(cert, signer) + if err != nil { + return err + } + } + + p := privKey{ + signer: signer, + comment: key.Comment, + } + + if key.LifetimeSecs > 0 { + t := time.Now().Add(time.Duration(key.LifetimeSecs) * time.Second) + p.expire = &t + } + + r.keys = append(r.keys, p) + + return nil +} + +// Sign returns a signature for the data. +func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return nil, errLocked + } + + r.expireKeysLocked() + wanted := key.Marshal() + for _, k := range r.keys { + if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) { + return k.signer.Sign(rand.Reader, data) + } + } + return nil, errors.New("not found") +} + +// Signers returns signers for all the known keys. +func (r *keyring) Signers() ([]ssh.Signer, error) { + r.mu.Lock() + defer r.mu.Unlock() + if r.locked { + return nil, errLocked + } + + r.expireKeysLocked() + s := make([]ssh.Signer, 0, len(r.keys)) + for _, k := range r.keys { + s = append(s, k.signer) + } + return s, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go b/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go new file mode 100644 index 00000000..e5d50e7e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go @@ -0,0 +1,76 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import "testing" + +func addTestKey(t *testing.T, a Agent, keyName string) { + err := a.Add(AddedKey{ + PrivateKey: testPrivateKeys[keyName], + Comment: keyName, + }) + if err != nil { + t.Fatalf("failed to add key %q: %v", keyName, err) + } +} + +func removeTestKey(t *testing.T, a Agent, keyName string) { + err := a.Remove(testPublicKeys[keyName]) + if err != nil { + t.Fatalf("failed to remove key %q: %v", keyName, err) + } +} + +func validateListedKeys(t *testing.T, a Agent, expectedKeys []string) { + listedKeys, err := a.List() + if err != nil { + t.Fatalf("failed to list keys: %v", err) + return + } + actualKeys := make(map[string]bool) + for _, key := range listedKeys { + actualKeys[key.Comment] = true + } + + matchedKeys := make(map[string]bool) + for _, expectedKey := range expectedKeys { + if !actualKeys[expectedKey] { + t.Fatalf("expected key %q, but was not found", expectedKey) + } else { + matchedKeys[expectedKey] = true + } + } + + for actualKey := range actualKeys { + if !matchedKeys[actualKey] { + t.Fatalf("key %q was found, but was not expected", actualKey) + } + } +} + +func TestKeyringAddingAndRemoving(t *testing.T) { + keyNames := []string{"dsa", "ecdsa", "rsa", "user"} + + // add all test private keys + k := NewKeyring() + for _, keyName := range keyNames { + addTestKey(t, k, keyName) + } + validateListedKeys(t, k, keyNames) + + // remove a key in the middle + keyToRemove := keyNames[1] + keyNames = append(keyNames[:1], keyNames[2:]...) + + removeTestKey(t, k, keyToRemove) + validateListedKeys(t, k, keyNames) + + // remove all keys + err := k.RemoveAll() + if err != nil { + t.Fatalf("failed to remove all keys: %v", err) + } + validateListedKeys(t, k, []string{}) +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/server.go b/vendor/golang.org/x/crypto/ssh/agent/server.go new file mode 100644 index 00000000..68a333fa --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/server.go @@ -0,0 +1,451 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "encoding/binary" + "errors" + "fmt" + "io" + "log" + "math/big" + + "golang.org/x/crypto/ed25519" + "golang.org/x/crypto/ssh" +) + +// Server wraps an Agent and uses it to implement the agent side of +// the SSH-agent, wire protocol. +type server struct { + agent Agent +} + +func (s *server) processRequestBytes(reqData []byte) []byte { + rep, err := s.processRequest(reqData) + if err != nil { + if err != errLocked { + // TODO(hanwen): provide better logging interface? + log.Printf("agent %d: %v", reqData[0], err) + } + return []byte{agentFailure} + } + + if err == nil && rep == nil { + return []byte{agentSuccess} + } + + return ssh.Marshal(rep) +} + +func marshalKey(k *Key) []byte { + var record struct { + Blob []byte + Comment string + } + record.Blob = k.Marshal() + record.Comment = k.Comment + + return ssh.Marshal(&record) +} + +// See [PROTOCOL.agent], section 2.5.1. +const agentV1IdentitiesAnswer = 2 + +type agentV1IdentityMsg struct { + Numkeys uint32 `sshtype:"2"` +} + +type agentRemoveIdentityMsg struct { + KeyBlob []byte `sshtype:"18"` +} + +type agentLockMsg struct { + Passphrase []byte `sshtype:"22"` +} + +type agentUnlockMsg struct { + Passphrase []byte `sshtype:"23"` +} + +func (s *server) processRequest(data []byte) (interface{}, error) { + switch data[0] { + case agentRequestV1Identities: + return &agentV1IdentityMsg{0}, nil + + case agentRemoveAllV1Identities: + return nil, nil + + case agentRemoveIdentity: + var req agentRemoveIdentityMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { + return nil, err + } + + return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: req.KeyBlob}) + + case agentRemoveAllIdentities: + return nil, s.agent.RemoveAll() + + case agentLock: + var req agentLockMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + return nil, s.agent.Lock(req.Passphrase) + + case agentUnlock: + var req agentLockMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + return nil, s.agent.Unlock(req.Passphrase) + + case agentSignRequest: + var req signRequestAgentMsg + if err := ssh.Unmarshal(data, &req); err != nil { + return nil, err + } + + var wk wireKey + if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil { + return nil, err + } + + k := &Key{ + Format: wk.Format, + Blob: req.KeyBlob, + } + + sig, err := s.agent.Sign(k, req.Data) // TODO(hanwen): flags. + if err != nil { + return nil, err + } + return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil + + case agentRequestIdentities: + keys, err := s.agent.List() + if err != nil { + return nil, err + } + + rep := identitiesAnswerAgentMsg{ + NumKeys: uint32(len(keys)), + } + for _, k := range keys { + rep.Keys = append(rep.Keys, marshalKey(k)...) + } + return rep, nil + + case agentAddIdConstrained, agentAddIdentity: + return nil, s.insertIdentity(data) + } + + return nil, fmt.Errorf("unknown opcode %d", data[0]) +} + +func parseRSAKey(req []byte) (*AddedKey, error) { + var k rsaKeyMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + if k.E.BitLen() > 30 { + return nil, errors.New("agent: RSA public exponent too large") + } + priv := &rsa.PrivateKey{ + PublicKey: rsa.PublicKey{ + E: int(k.E.Int64()), + N: k.N, + }, + D: k.D, + Primes: []*big.Int{k.P, k.Q}, + } + priv.Precompute() + + return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil +} + +func parseEd25519Key(req []byte) (*AddedKey, error) { + var k ed25519KeyMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + priv := ed25519.PrivateKey(k.Priv) + return &AddedKey{PrivateKey: &priv, Comment: k.Comments}, nil +} + +func parseDSAKey(req []byte) (*AddedKey, error) { + var k dsaKeyMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + priv := &dsa.PrivateKey{ + PublicKey: dsa.PublicKey{ + Parameters: dsa.Parameters{ + P: k.P, + Q: k.Q, + G: k.G, + }, + Y: k.Y, + }, + X: k.X, + } + + return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil +} + +func unmarshalECDSA(curveName string, keyBytes []byte, privScalar *big.Int) (priv *ecdsa.PrivateKey, err error) { + priv = &ecdsa.PrivateKey{ + D: privScalar, + } + + switch curveName { + case "nistp256": + priv.Curve = elliptic.P256() + case "nistp384": + priv.Curve = elliptic.P384() + case "nistp521": + priv.Curve = elliptic.P521() + default: + return nil, fmt.Errorf("agent: unknown curve %q", curveName) + } + + priv.X, priv.Y = elliptic.Unmarshal(priv.Curve, keyBytes) + if priv.X == nil || priv.Y == nil { + return nil, errors.New("agent: point not on curve") + } + + return priv, nil +} + +func parseEd25519Cert(req []byte) (*AddedKey, error) { + var k ed25519CertMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + pubKey, err := ssh.ParsePublicKey(k.CertBytes) + if err != nil { + return nil, err + } + priv := ed25519.PrivateKey(k.Priv) + cert, ok := pubKey.(*ssh.Certificate) + if !ok { + return nil, errors.New("agent: bad ED25519 certificate") + } + return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil +} + +func parseECDSAKey(req []byte) (*AddedKey, error) { + var k ecdsaKeyMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + + priv, err := unmarshalECDSA(k.Curve, k.KeyBytes, k.D) + if err != nil { + return nil, err + } + + return &AddedKey{PrivateKey: priv, Comment: k.Comments}, nil +} + +func parseRSACert(req []byte) (*AddedKey, error) { + var k rsaCertMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + + pubKey, err := ssh.ParsePublicKey(k.CertBytes) + if err != nil { + return nil, err + } + + cert, ok := pubKey.(*ssh.Certificate) + if !ok { + return nil, errors.New("agent: bad RSA certificate") + } + + // An RSA publickey as marshaled by rsaPublicKey.Marshal() in keys.go + var rsaPub struct { + Name string + E *big.Int + N *big.Int + } + if err := ssh.Unmarshal(cert.Key.Marshal(), &rsaPub); err != nil { + return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) + } + + if rsaPub.E.BitLen() > 30 { + return nil, errors.New("agent: RSA public exponent too large") + } + + priv := rsa.PrivateKey{ + PublicKey: rsa.PublicKey{ + E: int(rsaPub.E.Int64()), + N: rsaPub.N, + }, + D: k.D, + Primes: []*big.Int{k.Q, k.P}, + } + priv.Precompute() + + return &AddedKey{PrivateKey: &priv, Certificate: cert, Comment: k.Comments}, nil +} + +func parseDSACert(req []byte) (*AddedKey, error) { + var k dsaCertMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + pubKey, err := ssh.ParsePublicKey(k.CertBytes) + if err != nil { + return nil, err + } + cert, ok := pubKey.(*ssh.Certificate) + if !ok { + return nil, errors.New("agent: bad DSA certificate") + } + + // A DSA publickey as marshaled by dsaPublicKey.Marshal() in keys.go + var w struct { + Name string + P, Q, G, Y *big.Int + } + if err := ssh.Unmarshal(cert.Key.Marshal(), &w); err != nil { + return nil, fmt.Errorf("agent: Unmarshal failed to parse public key: %v", err) + } + + priv := &dsa.PrivateKey{ + PublicKey: dsa.PublicKey{ + Parameters: dsa.Parameters{ + P: w.P, + Q: w.Q, + G: w.G, + }, + Y: w.Y, + }, + X: k.X, + } + + return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil +} + +func parseECDSACert(req []byte) (*AddedKey, error) { + var k ecdsaCertMsg + if err := ssh.Unmarshal(req, &k); err != nil { + return nil, err + } + + pubKey, err := ssh.ParsePublicKey(k.CertBytes) + if err != nil { + return nil, err + } + cert, ok := pubKey.(*ssh.Certificate) + if !ok { + return nil, errors.New("agent: bad ECDSA certificate") + } + + // An ECDSA publickey as marshaled by ecdsaPublicKey.Marshal() in keys.go + var ecdsaPub struct { + Name string + ID string + Key []byte + } + if err := ssh.Unmarshal(cert.Key.Marshal(), &ecdsaPub); err != nil { + return nil, err + } + + priv, err := unmarshalECDSA(ecdsaPub.ID, ecdsaPub.Key, k.D) + if err != nil { + return nil, err + } + + return &AddedKey{PrivateKey: priv, Certificate: cert, Comment: k.Comments}, nil +} + +func (s *server) insertIdentity(req []byte) error { + var record struct { + Type string `sshtype:"17|25"` + Rest []byte `ssh:"rest"` + } + + if err := ssh.Unmarshal(req, &record); err != nil { + return err + } + + var addedKey *AddedKey + var err error + + switch record.Type { + case ssh.KeyAlgoRSA: + addedKey, err = parseRSAKey(req) + case ssh.KeyAlgoDSA: + addedKey, err = parseDSAKey(req) + case ssh.KeyAlgoECDSA256, ssh.KeyAlgoECDSA384, ssh.KeyAlgoECDSA521: + addedKey, err = parseECDSAKey(req) + case ssh.KeyAlgoED25519: + addedKey, err = parseEd25519Key(req) + case ssh.CertAlgoRSAv01: + addedKey, err = parseRSACert(req) + case ssh.CertAlgoDSAv01: + addedKey, err = parseDSACert(req) + case ssh.CertAlgoECDSA256v01, ssh.CertAlgoECDSA384v01, ssh.CertAlgoECDSA521v01: + addedKey, err = parseECDSACert(req) + case ssh.CertAlgoED25519v01: + addedKey, err = parseEd25519Cert(req) + default: + return fmt.Errorf("agent: not implemented: %q", record.Type) + } + + if err != nil { + return err + } + return s.agent.Add(*addedKey) +} + +// ServeAgent serves the agent protocol on the given connection. It +// returns when an I/O error occurs. +func ServeAgent(agent Agent, c io.ReadWriter) error { + s := &server{agent} + + var length [4]byte + for { + if _, err := io.ReadFull(c, length[:]); err != nil { + return err + } + l := binary.BigEndian.Uint32(length[:]) + if l > maxAgentResponseBytes { + // We also cap requests. + return fmt.Errorf("agent: request too large: %d", l) + } + + req := make([]byte, l) + if _, err := io.ReadFull(c, req); err != nil { + return err + } + + repData := s.processRequestBytes(req) + if len(repData) > maxAgentResponseBytes { + return fmt.Errorf("agent: reply too large: %d bytes", len(repData)) + } + + binary.BigEndian.PutUint32(length[:], uint32(len(repData))) + if _, err := c.Write(length[:]); err != nil { + return err + } + if _, err := c.Write(repData); err != nil { + return err + } + } +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/server_test.go b/vendor/golang.org/x/crypto/ssh/agent/server_test.go new file mode 100644 index 00000000..ec9cdeeb --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/server_test.go @@ -0,0 +1,207 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package agent + +import ( + "crypto" + "crypto/rand" + "fmt" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestServer(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + client := NewClient(c1) + + go ServeAgent(NewKeyring(), c2) + + testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0) +} + +func TestLockServer(t *testing.T) { + testLockAgent(NewKeyring(), t) +} + +func TestSetupForwardAgent(t *testing.T) { + a, b, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + defer a.Close() + defer b.Close() + + _, socket, cleanup := startAgent(t) + defer cleanup() + + serverConf := ssh.ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["rsa"]) + incoming := make(chan *ssh.ServerConn, 1) + go func() { + conn, _, _, err := ssh.NewServerConn(a, &serverConf) + if err != nil { + t.Fatalf("Server: %v", err) + } + incoming <- conn + }() + + conf := ssh.ClientConfig{} + conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + client := ssh.NewClient(conn, chans, reqs) + + if err := ForwardToRemote(client, socket); err != nil { + t.Fatalf("SetupForwardAgent: %v", err) + } + + server := <-incoming + ch, reqs, err := server.OpenChannel(channelType, nil) + if err != nil { + t.Fatalf("OpenChannel(%q): %v", channelType, err) + } + go ssh.DiscardRequests(reqs) + + agentClient := NewClient(ch) + testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0) + conn.Close() +} + +func TestV1ProtocolMessages(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + c := NewClient(c1) + + go ServeAgent(NewKeyring(), c2) + + testV1ProtocolMessages(t, c.(*client)) +} + +func testV1ProtocolMessages(t *testing.T, c *client) { + reply, err := c.call([]byte{agentRequestV1Identities}) + if err != nil { + t.Fatalf("v1 request all failed: %v", err) + } + if msg, ok := reply.(*agentV1IdentityMsg); !ok || msg.Numkeys != 0 { + t.Fatalf("invalid request all response: %#v", reply) + } + + reply, err = c.call([]byte{agentRemoveAllV1Identities}) + if err != nil { + t.Fatalf("v1 remove all failed: %v", err) + } + if _, ok := reply.(*successAgentMsg); !ok { + t.Fatalf("invalid remove all response: %#v", reply) + } +} + +func verifyKey(sshAgent Agent) error { + keys, err := sshAgent.List() + if err != nil { + return fmt.Errorf("listing keys: %v", err) + } + + if len(keys) != 1 { + return fmt.Errorf("bad number of keys found. expected 1, got %d", len(keys)) + } + + buf := make([]byte, 128) + if _, err := rand.Read(buf); err != nil { + return fmt.Errorf("rand: %v", err) + } + + sig, err := sshAgent.Sign(keys[0], buf) + if err != nil { + return fmt.Errorf("sign: %v", err) + } + + if err := keys[0].Verify(buf, sig); err != nil { + return fmt.Errorf("verify: %v", err) + } + return nil +} + +func addKeyToAgent(key crypto.PrivateKey) error { + sshAgent := NewKeyring() + if err := sshAgent.Add(AddedKey{PrivateKey: key}); err != nil { + return fmt.Errorf("add: %v", err) + } + return verifyKey(sshAgent) +} + +func TestKeyTypes(t *testing.T) { + for k, v := range testPrivateKeys { + if err := addKeyToAgent(v); err != nil { + t.Errorf("error adding key type %s, %v", k, err) + } + if err := addCertToAgentSock(v, nil); err != nil { + t.Errorf("error adding key type %s, %v", k, err) + } + } +} + +func addCertToAgentSock(key crypto.PrivateKey, cert *ssh.Certificate) error { + a, b, err := netPipe() + if err != nil { + return err + } + agentServer := NewKeyring() + go ServeAgent(agentServer, a) + + agentClient := NewClient(b) + if err := agentClient.Add(AddedKey{PrivateKey: key, Certificate: cert}); err != nil { + return fmt.Errorf("add: %v", err) + } + return verifyKey(agentClient) +} + +func addCertToAgent(key crypto.PrivateKey, cert *ssh.Certificate) error { + sshAgent := NewKeyring() + if err := sshAgent.Add(AddedKey{PrivateKey: key, Certificate: cert}); err != nil { + return fmt.Errorf("add: %v", err) + } + return verifyKey(sshAgent) +} + +func TestCertTypes(t *testing.T) { + for keyType, key := range testPublicKeys { + cert := &ssh.Certificate{ + ValidPrincipals: []string{"gopher1"}, + ValidAfter: 0, + ValidBefore: ssh.CertTimeInfinity, + Key: key, + Serial: 1, + CertType: ssh.UserCert, + SignatureKey: testPublicKeys["rsa"], + Permissions: ssh.Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + if err := cert.SignCert(rand.Reader, testSigners["rsa"]); err != nil { + t.Fatalf("signcert: %v", err) + } + if err := addCertToAgent(testPrivateKeys[keyType], cert); err != nil { + t.Fatalf("%v", err) + } + if err := addCertToAgentSock(testPrivateKeys[keyType], cert); err != nil { + t.Fatalf("%v", err) + } + } +} diff --git a/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go b/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go new file mode 100644 index 00000000..cc42a87c --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go @@ -0,0 +1,64 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package agent + +import ( + "crypto/rand" + "fmt" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]ssh.Signer + testPublicKeys map[string]ssh.PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]ssh.Signer, n) + testPublicKeys = make(map[string]ssh.PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &ssh.Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: ssh.Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/benchmark_test.go b/vendor/golang.org/x/crypto/ssh/benchmark_test.go new file mode 100644 index 00000000..d9f7eb9b --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/benchmark_test.go @@ -0,0 +1,122 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "io" + "net" + "testing" +) + +type server struct { + *ServerConn + chans <-chan NewChannel +} + +func newServer(c net.Conn, conf *ServerConfig) (*server, error) { + sconn, chans, reqs, err := NewServerConn(c, conf) + if err != nil { + return nil, err + } + go DiscardRequests(reqs) + return &server{sconn, chans}, nil +} + +func (s *server) Accept() (NewChannel, error) { + n, ok := <-s.chans + if !ok { + return nil, io.EOF + } + return n, nil +} + +func sshPipe() (Conn, *server, error) { + c1, c2, err := netPipe() + if err != nil { + return nil, nil, err + } + + clientConf := ClientConfig{ + User: "user", + } + serverConf := ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["ecdsa"]) + done := make(chan *server, 1) + go func() { + server, err := newServer(c2, &serverConf) + if err != nil { + done <- nil + } + done <- server + }() + + client, _, reqs, err := NewClientConn(c1, "", &clientConf) + if err != nil { + return nil, nil, err + } + + server := <-done + if server == nil { + return nil, nil, errors.New("server handshake failed.") + } + go DiscardRequests(reqs) + + return client, server, nil +} + +func BenchmarkEndToEnd(b *testing.B) { + b.StopTimer() + + client, server, err := sshPipe() + if err != nil { + b.Fatalf("sshPipe: %v", err) + } + + defer client.Close() + defer server.Close() + + size := (1 << 20) + input := make([]byte, size) + output := make([]byte, size) + b.SetBytes(int64(size)) + done := make(chan int, 1) + + go func() { + newCh, err := server.Accept() + if err != nil { + b.Fatalf("Client: %v", err) + } + ch, incoming, err := newCh.Accept() + go DiscardRequests(incoming) + for i := 0; i < b.N; i++ { + if _, err := io.ReadFull(ch, output); err != nil { + b.Fatalf("ReadFull: %v", err) + } + } + ch.Close() + done <- 1 + }() + + ch, in, err := client.OpenChannel("speed", nil) + if err != nil { + b.Fatalf("OpenChannel: %v", err) + } + go DiscardRequests(in) + + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + if _, err := ch.Write(input); err != nil { + b.Fatalf("WriteFull: %v", err) + } + } + ch.Close() + b.StopTimer() + + <-done +} diff --git a/vendor/golang.org/x/crypto/ssh/buffer.go b/vendor/golang.org/x/crypto/ssh/buffer.go new file mode 100644 index 00000000..6931b511 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/buffer.go @@ -0,0 +1,98 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "sync" +) + +// buffer provides a linked list buffer for data exchange +// between producer and consumer. Theoretically the buffer is +// of unlimited capacity as it does no allocation of its own. +type buffer struct { + // protects concurrent access to head, tail and closed + *sync.Cond + + head *element // the buffer that will be read first + tail *element // the buffer that will be read last + + closed bool +} + +// An element represents a single link in a linked list. +type element struct { + buf []byte + next *element +} + +// newBuffer returns an empty buffer that is not closed. +func newBuffer() *buffer { + e := new(element) + b := &buffer{ + Cond: newCond(), + head: e, + tail: e, + } + return b +} + +// write makes buf available for Read to receive. +// buf must not be modified after the call to write. +func (b *buffer) write(buf []byte) { + b.Cond.L.Lock() + e := &element{buf: buf} + b.tail.next = e + b.tail = e + b.Cond.Signal() + b.Cond.L.Unlock() +} + +// eof closes the buffer. Reads from the buffer once all +// the data has been consumed will receive os.EOF. +func (b *buffer) eof() error { + b.Cond.L.Lock() + b.closed = true + b.Cond.Signal() + b.Cond.L.Unlock() + return nil +} + +// Read reads data from the internal buffer in buf. Reads will block +// if no data is available, or until the buffer is closed. +func (b *buffer) Read(buf []byte) (n int, err error) { + b.Cond.L.Lock() + defer b.Cond.L.Unlock() + + for len(buf) > 0 { + // if there is data in b.head, copy it + if len(b.head.buf) > 0 { + r := copy(buf, b.head.buf) + buf, b.head.buf = buf[r:], b.head.buf[r:] + n += r + continue + } + // if there is a next buffer, make it the head + if len(b.head.buf) == 0 && b.head != b.tail { + b.head = b.head.next + continue + } + + // if at least one byte has been copied, return + if n > 0 { + break + } + + // if nothing was read, and there is nothing outstanding + // check to see if the buffer is closed. + if b.closed { + err = io.EOF + break + } + // out of buffers, wait for producer + b.Cond.Wait() + } + return +} diff --git a/vendor/golang.org/x/crypto/ssh/buffer_test.go b/vendor/golang.org/x/crypto/ssh/buffer_test.go new file mode 100644 index 00000000..d5781cb3 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/buffer_test.go @@ -0,0 +1,87 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "testing" +) + +var alphabet = []byte("abcdefghijklmnopqrstuvwxyz") + +func TestBufferReadwrite(t *testing.T) { + b := newBuffer() + b.write(alphabet[:10]) + r, _ := b.Read(make([]byte, 10)) + if r != 10 { + t.Fatalf("Expected written == read == 10, written: 10, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:5]) + r, _ = b.Read(make([]byte, 10)) + if r != 5 { + t.Fatalf("Expected written == read == 5, written: 5, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:10]) + r, _ = b.Read(make([]byte, 5)) + if r != 5 { + t.Fatalf("Expected written == 10, read == 5, written: 10, read %d", r) + } + + b = newBuffer() + b.write(alphabet[:5]) + b.write(alphabet[5:15]) + r, _ = b.Read(make([]byte, 10)) + r2, _ := b.Read(make([]byte, 10)) + if r != 10 || r2 != 5 || 15 != r+r2 { + t.Fatal("Expected written == read == 15") + } +} + +func TestBufferClose(t *testing.T) { + b := newBuffer() + b.write(alphabet[:10]) + b.eof() + _, err := b.Read(make([]byte, 5)) + if err != nil { + t.Fatal("expected read of 5 to not return EOF") + } + b = newBuffer() + b.write(alphabet[:10]) + b.eof() + r, err := b.Read(make([]byte, 5)) + r2, err2 := b.Read(make([]byte, 10)) + if r != 5 || r2 != 5 || err != nil || err2 != nil { + t.Fatal("expected reads of 5 and 5") + } + + b = newBuffer() + b.write(alphabet[:10]) + b.eof() + r, err = b.Read(make([]byte, 5)) + r2, err2 = b.Read(make([]byte, 10)) + r3, err3 := b.Read(make([]byte, 10)) + if r != 5 || r2 != 5 || r3 != 0 || err != nil || err2 != nil || err3 != io.EOF { + t.Fatal("expected reads of 5 and 5 and 0, with EOF") + } + + b = newBuffer() + b.write(make([]byte, 5)) + b.write(make([]byte, 10)) + b.eof() + r, err = b.Read(make([]byte, 9)) + r2, err2 = b.Read(make([]byte, 3)) + r3, err3 = b.Read(make([]byte, 3)) + r4, err4 := b.Read(make([]byte, 10)) + if err != nil || err2 != nil || err3 != nil || err4 != io.EOF { + t.Fatalf("Expected EOF on forth read only, err=%v, err2=%v, err3=%v, err4=%v", err, err2, err3, err4) + } + if r != 9 || r2 != 3 || r3 != 3 || r4 != 0 { + t.Fatal("Expected written == read == 15", r, r2, r3, r4) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/certs.go b/vendor/golang.org/x/crypto/ssh/certs.go new file mode 100644 index 00000000..6331c94d --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/certs.go @@ -0,0 +1,503 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" + "net" + "sort" + "time" +) + +// These constants from [PROTOCOL.certkeys] represent the algorithm names +// for certificate types supported by this package. +const ( + CertAlgoRSAv01 = "ssh-rsa-cert-v01@openssh.com" + CertAlgoDSAv01 = "ssh-dss-cert-v01@openssh.com" + CertAlgoECDSA256v01 = "ecdsa-sha2-nistp256-cert-v01@openssh.com" + CertAlgoECDSA384v01 = "ecdsa-sha2-nistp384-cert-v01@openssh.com" + CertAlgoECDSA521v01 = "ecdsa-sha2-nistp521-cert-v01@openssh.com" + CertAlgoED25519v01 = "ssh-ed25519-cert-v01@openssh.com" +) + +// Certificate types distinguish between host and user +// certificates. The values can be set in the CertType field of +// Certificate. +const ( + UserCert = 1 + HostCert = 2 +) + +// Signature represents a cryptographic signature. +type Signature struct { + Format string + Blob []byte +} + +// CertTimeInfinity can be used for OpenSSHCertV01.ValidBefore to indicate that +// a certificate does not expire. +const CertTimeInfinity = 1<<64 - 1 + +// An Certificate represents an OpenSSH certificate as defined in +// [PROTOCOL.certkeys]?rev=1.8. +type Certificate struct { + Nonce []byte + Key PublicKey + Serial uint64 + CertType uint32 + KeyId string + ValidPrincipals []string + ValidAfter uint64 + ValidBefore uint64 + Permissions + Reserved []byte + SignatureKey PublicKey + Signature *Signature +} + +// genericCertData holds the key-independent part of the certificate data. +// Overall, certificates contain an nonce, public key fields and +// key-independent fields. +type genericCertData struct { + Serial uint64 + CertType uint32 + KeyId string + ValidPrincipals []byte + ValidAfter uint64 + ValidBefore uint64 + CriticalOptions []byte + Extensions []byte + Reserved []byte + SignatureKey []byte + Signature []byte +} + +func marshalStringList(namelist []string) []byte { + var to []byte + for _, name := range namelist { + s := struct{ N string }{name} + to = append(to, Marshal(&s)...) + } + return to +} + +type optionsTuple struct { + Key string + Value []byte +} + +type optionsTupleValue struct { + Value string +} + +// serialize a map of critical options or extensions +// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, +// we need two length prefixes for a non-empty string value +func marshalTuples(tups map[string]string) []byte { + keys := make([]string, 0, len(tups)) + for key := range tups { + keys = append(keys, key) + } + sort.Strings(keys) + + var ret []byte + for _, key := range keys { + s := optionsTuple{Key: key} + if value := tups[key]; len(value) > 0 { + s.Value = Marshal(&optionsTupleValue{value}) + } + ret = append(ret, Marshal(&s)...) + } + return ret +} + +// issue #10569 - per [PROTOCOL.certkeys] and SSH implementation, +// we need two length prefixes for a non-empty option value +func parseTuples(in []byte) (map[string]string, error) { + tups := map[string]string{} + var lastKey string + var haveLastKey bool + + for len(in) > 0 { + var key, val, extra []byte + var ok bool + + if key, in, ok = parseString(in); !ok { + return nil, errShortRead + } + keyStr := string(key) + // according to [PROTOCOL.certkeys], the names must be in + // lexical order. + if haveLastKey && keyStr <= lastKey { + return nil, fmt.Errorf("ssh: certificate options are not in lexical order") + } + lastKey, haveLastKey = keyStr, true + // the next field is a data field, which if non-empty has a string embedded + if val, in, ok = parseString(in); !ok { + return nil, errShortRead + } + if len(val) > 0 { + val, extra, ok = parseString(val) + if !ok { + return nil, errShortRead + } + if len(extra) > 0 { + return nil, fmt.Errorf("ssh: unexpected trailing data after certificate option value") + } + tups[keyStr] = string(val) + } else { + tups[keyStr] = "" + } + } + return tups, nil +} + +func parseCert(in []byte, privAlgo string) (*Certificate, error) { + nonce, rest, ok := parseString(in) + if !ok { + return nil, errShortRead + } + + key, rest, err := parsePubKey(rest, privAlgo) + if err != nil { + return nil, err + } + + var g genericCertData + if err := Unmarshal(rest, &g); err != nil { + return nil, err + } + + c := &Certificate{ + Nonce: nonce, + Key: key, + Serial: g.Serial, + CertType: g.CertType, + KeyId: g.KeyId, + ValidAfter: g.ValidAfter, + ValidBefore: g.ValidBefore, + } + + for principals := g.ValidPrincipals; len(principals) > 0; { + principal, rest, ok := parseString(principals) + if !ok { + return nil, errShortRead + } + c.ValidPrincipals = append(c.ValidPrincipals, string(principal)) + principals = rest + } + + c.CriticalOptions, err = parseTuples(g.CriticalOptions) + if err != nil { + return nil, err + } + c.Extensions, err = parseTuples(g.Extensions) + if err != nil { + return nil, err + } + c.Reserved = g.Reserved + k, err := ParsePublicKey(g.SignatureKey) + if err != nil { + return nil, err + } + + c.SignatureKey = k + c.Signature, rest, ok = parseSignatureBody(g.Signature) + if !ok || len(rest) > 0 { + return nil, errors.New("ssh: signature parse error") + } + + return c, nil +} + +type openSSHCertSigner struct { + pub *Certificate + signer Signer +} + +// NewCertSigner returns a Signer that signs with the given Certificate, whose +// private key is held by signer. It returns an error if the public key in cert +// doesn't match the key used by signer. +func NewCertSigner(cert *Certificate, signer Signer) (Signer, error) { + if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 { + return nil, errors.New("ssh: signer and cert have different public key") + } + + return &openSSHCertSigner{cert, signer}, nil +} + +func (s *openSSHCertSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { + return s.signer.Sign(rand, data) +} + +func (s *openSSHCertSigner) PublicKey() PublicKey { + return s.pub +} + +const sourceAddressCriticalOption = "source-address" + +// CertChecker does the work of verifying a certificate. Its methods +// can be plugged into ClientConfig.HostKeyCallback and +// ServerConfig.PublicKeyCallback. For the CertChecker to work, +// minimally, the IsAuthority callback should be set. +type CertChecker struct { + // SupportedCriticalOptions lists the CriticalOptions that the + // server application layer understands. These are only used + // for user certificates. + SupportedCriticalOptions []string + + // IsAuthority should return true if the key is recognized as + // an authority. This allows for certificates to be signed by other + // certificates. + IsAuthority func(auth PublicKey) bool + + // Clock is used for verifying time stamps. If nil, time.Now + // is used. + Clock func() time.Time + + // UserKeyFallback is called when CertChecker.Authenticate encounters a + // public key that is not a certificate. It must implement validation + // of user keys or else, if nil, all such keys are rejected. + UserKeyFallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + + // HostKeyFallback is called when CertChecker.CheckHostKey encounters a + // public key that is not a certificate. It must implement host key + // validation or else, if nil, all such keys are rejected. + HostKeyFallback func(addr string, remote net.Addr, key PublicKey) error + + // IsRevoked is called for each certificate so that revocation checking + // can be implemented. It should return true if the given certificate + // is revoked and false otherwise. If nil, no certificates are + // considered to have been revoked. + IsRevoked func(cert *Certificate) bool +} + +// CheckHostKey checks a host key certificate. This method can be +// plugged into ClientConfig.HostKeyCallback. +func (c *CertChecker) CheckHostKey(addr string, remote net.Addr, key PublicKey) error { + cert, ok := key.(*Certificate) + if !ok { + if c.HostKeyFallback != nil { + return c.HostKeyFallback(addr, remote, key) + } + return errors.New("ssh: non-certificate host key") + } + if cert.CertType != HostCert { + return fmt.Errorf("ssh: certificate presented as a host key has type %d", cert.CertType) + } + + return c.CheckCert(addr, cert) +} + +// Authenticate checks a user certificate. Authenticate can be used as +// a value for ServerConfig.PublicKeyCallback. +func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permissions, error) { + cert, ok := pubKey.(*Certificate) + if !ok { + if c.UserKeyFallback != nil { + return c.UserKeyFallback(conn, pubKey) + } + return nil, errors.New("ssh: normal key pairs not accepted") + } + + if cert.CertType != UserCert { + return nil, fmt.Errorf("ssh: cert has type %d", cert.CertType) + } + + if err := c.CheckCert(conn.User(), cert); err != nil { + return nil, err + } + + return &cert.Permissions, nil +} + +// CheckCert checks CriticalOptions, ValidPrincipals, revocation, timestamp and +// the signature of the certificate. +func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { + if c.IsRevoked != nil && c.IsRevoked(cert) { + return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) + } + + for opt, _ := range cert.CriticalOptions { + // sourceAddressCriticalOption will be enforced by + // serverAuthenticate + if opt == sourceAddressCriticalOption { + continue + } + + found := false + for _, supp := range c.SupportedCriticalOptions { + if supp == opt { + found = true + break + } + } + if !found { + return fmt.Errorf("ssh: unsupported critical option %q in certificate", opt) + } + } + + if len(cert.ValidPrincipals) > 0 { + // By default, certs are valid for all users/hosts. + found := false + for _, p := range cert.ValidPrincipals { + if p == principal { + found = true + break + } + } + if !found { + return fmt.Errorf("ssh: principal %q not in the set of valid principals for given certificate: %q", principal, cert.ValidPrincipals) + } + } + + if !c.IsAuthority(cert.SignatureKey) { + return fmt.Errorf("ssh: certificate signed by unrecognized authority") + } + + clock := c.Clock + if clock == nil { + clock = time.Now + } + + unixNow := clock().Unix() + if after := int64(cert.ValidAfter); after < 0 || unixNow < int64(cert.ValidAfter) { + return fmt.Errorf("ssh: cert is not yet valid") + } + if before := int64(cert.ValidBefore); cert.ValidBefore != uint64(CertTimeInfinity) && (unixNow >= before || before < 0) { + return fmt.Errorf("ssh: cert has expired") + } + if err := cert.SignatureKey.Verify(cert.bytesForSigning(), cert.Signature); err != nil { + return fmt.Errorf("ssh: certificate signature does not verify") + } + + return nil +} + +// SignCert sets c.SignatureKey to the authority's public key and stores a +// Signature, by authority, in the certificate. +func (c *Certificate) SignCert(rand io.Reader, authority Signer) error { + c.Nonce = make([]byte, 32) + if _, err := io.ReadFull(rand, c.Nonce); err != nil { + return err + } + c.SignatureKey = authority.PublicKey() + + sig, err := authority.Sign(rand, c.bytesForSigning()) + if err != nil { + return err + } + c.Signature = sig + return nil +} + +var certAlgoNames = map[string]string{ + KeyAlgoRSA: CertAlgoRSAv01, + KeyAlgoDSA: CertAlgoDSAv01, + KeyAlgoECDSA256: CertAlgoECDSA256v01, + KeyAlgoECDSA384: CertAlgoECDSA384v01, + KeyAlgoECDSA521: CertAlgoECDSA521v01, + KeyAlgoED25519: CertAlgoED25519v01, +} + +// certToPrivAlgo returns the underlying algorithm for a certificate algorithm. +// Panics if a non-certificate algorithm is passed. +func certToPrivAlgo(algo string) string { + for privAlgo, pubAlgo := range certAlgoNames { + if pubAlgo == algo { + return privAlgo + } + } + panic("unknown cert algorithm") +} + +func (cert *Certificate) bytesForSigning() []byte { + c2 := *cert + c2.Signature = nil + out := c2.Marshal() + // Drop trailing signature length. + return out[:len(out)-4] +} + +// Marshal serializes c into OpenSSH's wire format. It is part of the +// PublicKey interface. +func (c *Certificate) Marshal() []byte { + generic := genericCertData{ + Serial: c.Serial, + CertType: c.CertType, + KeyId: c.KeyId, + ValidPrincipals: marshalStringList(c.ValidPrincipals), + ValidAfter: uint64(c.ValidAfter), + ValidBefore: uint64(c.ValidBefore), + CriticalOptions: marshalTuples(c.CriticalOptions), + Extensions: marshalTuples(c.Extensions), + Reserved: c.Reserved, + SignatureKey: c.SignatureKey.Marshal(), + } + if c.Signature != nil { + generic.Signature = Marshal(c.Signature) + } + genericBytes := Marshal(&generic) + keyBytes := c.Key.Marshal() + _, keyBytes, _ = parseString(keyBytes) + prefix := Marshal(&struct { + Name string + Nonce []byte + Key []byte `ssh:"rest"` + }{c.Type(), c.Nonce, keyBytes}) + + result := make([]byte, 0, len(prefix)+len(genericBytes)) + result = append(result, prefix...) + result = append(result, genericBytes...) + return result +} + +// Type returns the key name. It is part of the PublicKey interface. +func (c *Certificate) Type() string { + algo, ok := certAlgoNames[c.Key.Type()] + if !ok { + panic("unknown cert key type " + c.Key.Type()) + } + return algo +} + +// Verify verifies a signature against the certificate's public +// key. It is part of the PublicKey interface. +func (c *Certificate) Verify(data []byte, sig *Signature) error { + return c.Key.Verify(data, sig) +} + +func parseSignatureBody(in []byte) (out *Signature, rest []byte, ok bool) { + format, in, ok := parseString(in) + if !ok { + return + } + + out = &Signature{ + Format: string(format), + } + + if out.Blob, in, ok = parseString(in); !ok { + return + } + + return out, in, ok +} + +func parseSignature(in []byte) (out *Signature, rest []byte, ok bool) { + sigBytes, rest, ok := parseString(in) + if !ok { + return + } + + out, trailing, ok := parseSignatureBody(sigBytes) + if !ok || len(trailing) > 0 { + return nil, nil, false + } + return +} diff --git a/vendor/golang.org/x/crypto/ssh/certs_test.go b/vendor/golang.org/x/crypto/ssh/certs_test.go new file mode 100644 index 00000000..c5f2e533 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/certs_test.go @@ -0,0 +1,216 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "reflect" + "testing" + "time" +) + +// Cert generated by ssh-keygen 6.0p1 Debian-4. +// % ssh-keygen -s ca-key -I test user-key +const exampleSSHCert = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgb1srW/W3ZDjYAO45xLYAwzHBDLsJ4Ux6ICFIkTjb1LEAAAADAQABAAAAYQCkoR51poH0wE8w72cqSB8Sszx+vAhzcMdCO0wqHTj7UNENHWEXGrU0E0UQekD7U+yhkhtoyjbPOVIP7hNa6aRk/ezdh/iUnCIt4Jt1v3Z1h1P+hA4QuYFMHNB+rmjPwAcAAAAAAAAAAAAAAAEAAAAEdGVzdAAAAAAAAAAAAAAAAP//////////AAAAAAAAAIIAAAAVcGVybWl0LVgxMS1mb3J3YXJkaW5nAAAAAAAAABdwZXJtaXQtYWdlbnQtZm9yd2FyZGluZwAAAAAAAAAWcGVybWl0LXBvcnQtZm9yd2FyZGluZwAAAAAAAAAKcGVybWl0LXB0eQAAAAAAAAAOcGVybWl0LXVzZXItcmMAAAAAAAAAAAAAAHcAAAAHc3NoLXJzYQAAAAMBAAEAAABhANFS2kaktpSGc+CcmEKPyw9mJC4nZKxHKTgLVZeaGbFZOvJTNzBspQHdy7Q1uKSfktxpgjZnksiu/tFF9ngyY2KFoc+U88ya95IZUycBGCUbBQ8+bhDtw/icdDGQD5WnUwAAAG8AAAAHc3NoLXJzYQAAAGC8Y9Z2LQKhIhxf52773XaWrXdxP0t3GBVo4A10vUWiYoAGepr6rQIoGGXFxT4B9Gp+nEBJjOwKDXPrAevow0T9ca8gZN+0ykbhSrXLE5Ao48rqr3zP4O1/9P7e6gp0gw8=` + +func TestParseCert(t *testing.T) { + authKeyBytes := []byte(exampleSSHCert) + + key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + if len(rest) > 0 { + t.Errorf("rest: got %q, want empty", rest) + } + + if _, ok := key.(*Certificate); !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + + marshaled := MarshalAuthorizedKey(key) + // Before comparison, remove the trailing newline that + // MarshalAuthorizedKey adds. + marshaled = marshaled[:len(marshaled)-1] + if !bytes.Equal(authKeyBytes, marshaled) { + t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) + } +} + +// Cert generated by ssh-keygen OpenSSH_6.8p1 OS X 10.10.3 +// % ssh-keygen -s ca -I testcert -O source-address=192.168.1.0/24 -O force-command=/bin/sleep user.pub +// user.pub key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMN +// Critical Options: +// force-command /bin/sleep +// source-address 192.168.1.0/24 +// Extensions: +// permit-X11-forwarding +// permit-agent-forwarding +// permit-port-forwarding +// permit-pty +// permit-user-rc +const exampleSSHCertWithOptions = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgDyysCJY0XrO1n03EeRRoITnTPdjENFmWDs9X58PP3VUAAAADAQABAAABAQDACh1rt2DXfV3hk6fszSQcQ/rueMId0kVD9U7nl8cfEnFxqOCrNT92g4laQIGl2mn8lsGZfTLg8ksHq3gkvgO3oo/0wHy4v32JeBOHTsN5AL4gfHNEhWeWb50ev47hnTsRIt9P4dxogeUo/hTu7j9+s9lLpEQXCvq6xocXQt0j8MV9qZBBXFLXVT3cWIkSqOdwt/5ZBg+1GSrc7WfCXVWgTk4a20uPMuJPxU4RQwZW6X3+O8Pqo8C3cW0OzZRFP6gUYUKUsTI5WntlS+LAxgw1mZNsozFGdbiOPRnEryE3SRldh9vjDR3tin1fGpA5P7+CEB/bqaXtG3V+F2OkqaMNAAAAAAAAAAAAAAABAAAACHRlc3RjZXJ0AAAAAAAAAAAAAAAA//////////8AAABLAAAADWZvcmNlLWNvbW1hbmQAAAAOAAAACi9iaW4vc2xlZXAAAAAOc291cmNlLWFkZHJlc3MAAAASAAAADjE5Mi4xNjguMS4wLzI0AAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAABFwAAAAdzc2gtcnNhAAAAAwEAAQAAAQEAwU+c5ui5A8+J/CFpjW8wCa52bEODA808WWQDCSuTG/eMXNf59v9Y8Pk0F1E9dGCosSNyVcB/hacUrc6He+i97+HJCyKavBsE6GDxrjRyxYqAlfcOXi/IVmaUGiO8OQ39d4GHrjToInKvExSUeleQyH4Y4/e27T/pILAqPFL3fyrvMLT5qU9QyIt6zIpa7GBP5+urouNavMprV3zsfIqNBbWypinOQAw823a5wN+zwXnhZrgQiHZ/USG09Y6k98y1dTVz8YHlQVR4D3lpTAsKDKJ5hCH9WU4fdf+lU8OyNGaJ/vz0XNqxcToe1l4numLTnaoSuH89pHryjqurB7lJKwAAAQ8AAAAHc3NoLXJzYQAAAQCaHvUIoPL1zWUHIXLvu96/HU1s/i4CAW2IIEuGgxCUCiFj6vyTyYtgxQxcmbfZf6eaITlS6XJZa7Qq4iaFZh75C1DXTX8labXhRSD4E2t//AIP9MC1rtQC5xo6FmbQ+BoKcDskr+mNACcbRSxs3IL3bwCfWDnIw2WbVox9ZdcthJKk4UoCW4ix4QwdHw7zlddlz++fGEEVhmTbll1SUkycGApPFBsAYRTMupUJcYPIeReBI/m8XfkoMk99bV8ZJQTAd7OekHY2/48Ff53jLmyDjP7kNw1F8OaPtkFs6dGJXta4krmaekPy87j+35In5hFj7yoOqvSbmYUkeX70/GGQ` + +func TestParseCertWithOptions(t *testing.T) { + opts := map[string]string{ + "source-address": "192.168.1.0/24", + "force-command": "/bin/sleep", + } + exts := map[string]string{ + "permit-X11-forwarding": "", + "permit-agent-forwarding": "", + "permit-port-forwarding": "", + "permit-pty": "", + "permit-user-rc": "", + } + authKeyBytes := []byte(exampleSSHCertWithOptions) + + key, _, _, rest, err := ParseAuthorizedKey(authKeyBytes) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + if len(rest) > 0 { + t.Errorf("rest: got %q, want empty", rest) + } + cert, ok := key.(*Certificate) + if !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + if !reflect.DeepEqual(cert.CriticalOptions, opts) { + t.Errorf("unexpected critical options - got %v, want %v", cert.CriticalOptions, opts) + } + if !reflect.DeepEqual(cert.Extensions, exts) { + t.Errorf("unexpected Extensions - got %v, want %v", cert.Extensions, exts) + } + marshaled := MarshalAuthorizedKey(key) + // Before comparison, remove the trailing newline that + // MarshalAuthorizedKey adds. + marshaled = marshaled[:len(marshaled)-1] + if !bytes.Equal(authKeyBytes, marshaled) { + t.Errorf("marshaled certificate does not match original: got %q, want %q", marshaled, authKeyBytes) + } +} + +func TestValidateCert(t *testing.T) { + key, _, _, _, err := ParseAuthorizedKey([]byte(exampleSSHCert)) + if err != nil { + t.Fatalf("ParseAuthorizedKey: %v", err) + } + validCert, ok := key.(*Certificate) + if !ok { + t.Fatalf("got %v (%T), want *Certificate", key, key) + } + checker := CertChecker{} + checker.IsAuthority = func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), validCert.SignatureKey.Marshal()) + } + + if err := checker.CheckCert("user", validCert); err != nil { + t.Errorf("Unable to validate certificate: %v", err) + } + invalidCert := &Certificate{ + Key: testPublicKeys["rsa"], + SignatureKey: testPublicKeys["ecdsa"], + ValidBefore: CertTimeInfinity, + Signature: &Signature{}, + } + if err := checker.CheckCert("user", invalidCert); err == nil { + t.Error("Invalid cert signature passed validation") + } +} + +func TestValidateCertTime(t *testing.T) { + cert := Certificate{ + ValidPrincipals: []string{"user"}, + Key: testPublicKeys["rsa"], + ValidAfter: 50, + ValidBefore: 100, + } + + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + for ts, ok := range map[int64]bool{ + 25: false, + 50: true, + 99: true, + 100: false, + 125: false, + } { + checker := CertChecker{ + Clock: func() time.Time { return time.Unix(ts, 0) }, + } + checker.IsAuthority = func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), + testPublicKeys["ecdsa"].Marshal()) + } + + if v := checker.CheckCert("user", &cert); (v == nil) != ok { + t.Errorf("Authenticate(%d): %v", ts, v) + } + } +} + +// TODO(hanwen): tests for +// +// host keys: +// * fallbacks + +func TestHostKeyCert(t *testing.T) { + cert := &Certificate{ + ValidPrincipals: []string{"hostname", "hostname.domain"}, + Key: testPublicKeys["rsa"], + ValidBefore: CertTimeInfinity, + CertType: HostCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + + checker := &CertChecker{ + IsAuthority: func(p PublicKey) bool { + return bytes.Equal(testPublicKeys["ecdsa"].Marshal(), p.Marshal()) + }, + } + + certSigner, err := NewCertSigner(cert, testSigners["rsa"]) + if err != nil { + t.Errorf("NewCertSigner: %v", err) + } + + for _, name := range []string{"hostname", "otherhost"} { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + errc := make(chan error) + + go func() { + conf := ServerConfig{ + NoClientAuth: true, + } + conf.AddHostKey(certSigner) + _, _, _, err := NewServerConn(c1, &conf) + errc <- err + }() + + config := &ClientConfig{ + User: "user", + HostKeyCallback: checker.CheckHostKey, + } + _, _, _, err = NewClientConn(c2, name, config) + + succeed := name == "hostname" + if (err == nil) != succeed { + t.Fatalf("NewClientConn(%q): %v", name, err) + } + + err = <-errc + if (err == nil) != succeed { + t.Fatalf("NewServerConn(%q): %v", name, err) + } + } +} diff --git a/vendor/golang.org/x/crypto/ssh/channel.go b/vendor/golang.org/x/crypto/ssh/channel.go new file mode 100644 index 00000000..6d709b50 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/channel.go @@ -0,0 +1,633 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "encoding/binary" + "errors" + "fmt" + "io" + "log" + "sync" +) + +const ( + minPacketLength = 9 + // channelMaxPacket contains the maximum number of bytes that will be + // sent in a single packet. As per RFC 4253, section 6.1, 32k is also + // the minimum. + channelMaxPacket = 1 << 15 + // We follow OpenSSH here. + channelWindowSize = 64 * channelMaxPacket +) + +// NewChannel represents an incoming request to a channel. It must either be +// accepted for use by calling Accept, or rejected by calling Reject. +type NewChannel interface { + // Accept accepts the channel creation request. It returns the Channel + // and a Go channel containing SSH requests. The Go channel must be + // serviced otherwise the Channel will hang. + Accept() (Channel, <-chan *Request, error) + + // Reject rejects the channel creation request. After calling + // this, no other methods on the Channel may be called. + Reject(reason RejectionReason, message string) error + + // ChannelType returns the type of the channel, as supplied by the + // client. + ChannelType() string + + // ExtraData returns the arbitrary payload for this channel, as supplied + // by the client. This data is specific to the channel type. + ExtraData() []byte +} + +// A Channel is an ordered, reliable, flow-controlled, duplex stream +// that is multiplexed over an SSH connection. +type Channel interface { + // Read reads up to len(data) bytes from the channel. + Read(data []byte) (int, error) + + // Write writes len(data) bytes to the channel. + Write(data []byte) (int, error) + + // Close signals end of channel use. No data may be sent after this + // call. + Close() error + + // CloseWrite signals the end of sending in-band + // data. Requests may still be sent, and the other side may + // still send data + CloseWrite() error + + // SendRequest sends a channel request. If wantReply is true, + // it will wait for a reply and return the result as a + // boolean, otherwise the return value will be false. Channel + // requests are out-of-band messages so they may be sent even + // if the data stream is closed or blocked by flow control. + // If the channel is closed before a reply is returned, io.EOF + // is returned. + SendRequest(name string, wantReply bool, payload []byte) (bool, error) + + // Stderr returns an io.ReadWriter that writes to this channel + // with the extended data type set to stderr. Stderr may + // safely be read and written from a different goroutine than + // Read and Write respectively. + Stderr() io.ReadWriter +} + +// Request is a request sent outside of the normal stream of +// data. Requests can either be specific to an SSH channel, or they +// can be global. +type Request struct { + Type string + WantReply bool + Payload []byte + + ch *channel + mux *mux +} + +// Reply sends a response to a request. It must be called for all requests +// where WantReply is true and is a no-op otherwise. The payload argument is +// ignored for replies to channel-specific requests. +func (r *Request) Reply(ok bool, payload []byte) error { + if !r.WantReply { + return nil + } + + if r.ch == nil { + return r.mux.ackRequest(ok, payload) + } + + return r.ch.ackRequest(ok) +} + +// RejectionReason is an enumeration used when rejecting channel creation +// requests. See RFC 4254, section 5.1. +type RejectionReason uint32 + +const ( + Prohibited RejectionReason = iota + 1 + ConnectionFailed + UnknownChannelType + ResourceShortage +) + +// String converts the rejection reason to human readable form. +func (r RejectionReason) String() string { + switch r { + case Prohibited: + return "administratively prohibited" + case ConnectionFailed: + return "connect failed" + case UnknownChannelType: + return "unknown channel type" + case ResourceShortage: + return "resource shortage" + } + return fmt.Sprintf("unknown reason %d", int(r)) +} + +func min(a uint32, b int) uint32 { + if a < uint32(b) { + return a + } + return uint32(b) +} + +type channelDirection uint8 + +const ( + channelInbound channelDirection = iota + channelOutbound +) + +// channel is an implementation of the Channel interface that works +// with the mux class. +type channel struct { + // R/O after creation + chanType string + extraData []byte + localId, remoteId uint32 + + // maxIncomingPayload and maxRemotePayload are the maximum + // payload sizes of normal and extended data packets for + // receiving and sending, respectively. The wire packet will + // be 9 or 13 bytes larger (excluding encryption overhead). + maxIncomingPayload uint32 + maxRemotePayload uint32 + + mux *mux + + // decided is set to true if an accept or reject message has been sent + // (for outbound channels) or received (for inbound channels). + decided bool + + // direction contains either channelOutbound, for channels created + // locally, or channelInbound, for channels created by the peer. + direction channelDirection + + // Pending internal channel messages. + msg chan interface{} + + // Since requests have no ID, there can be only one request + // with WantReply=true outstanding. This lock is held by a + // goroutine that has such an outgoing request pending. + sentRequestMu sync.Mutex + + incomingRequests chan *Request + + sentEOF bool + + // thread-safe data + remoteWin window + pending *buffer + extPending *buffer + + // windowMu protects myWindow, the flow-control window. + windowMu sync.Mutex + myWindow uint32 + + // writeMu serializes calls to mux.conn.writePacket() and + // protects sentClose and packetPool. This mutex must be + // different from windowMu, as writePacket can block if there + // is a key exchange pending. + writeMu sync.Mutex + sentClose bool + + // packetPool has a buffer for each extended channel ID to + // save allocations during writes. + packetPool map[uint32][]byte +} + +// writePacket sends a packet. If the packet is a channel close, it updates +// sentClose. This method takes the lock c.writeMu. +func (c *channel) writePacket(packet []byte) error { + c.writeMu.Lock() + if c.sentClose { + c.writeMu.Unlock() + return io.EOF + } + c.sentClose = (packet[0] == msgChannelClose) + err := c.mux.conn.writePacket(packet) + c.writeMu.Unlock() + return err +} + +func (c *channel) sendMessage(msg interface{}) error { + if debugMux { + log.Printf("send(%d): %#v", c.mux.chanList.offset, msg) + } + + p := Marshal(msg) + binary.BigEndian.PutUint32(p[1:], c.remoteId) + return c.writePacket(p) +} + +// WriteExtended writes data to a specific extended stream. These streams are +// used, for example, for stderr. +func (c *channel) WriteExtended(data []byte, extendedCode uint32) (n int, err error) { + if c.sentEOF { + return 0, io.EOF + } + // 1 byte message type, 4 bytes remoteId, 4 bytes data length + opCode := byte(msgChannelData) + headerLength := uint32(9) + if extendedCode > 0 { + headerLength += 4 + opCode = msgChannelExtendedData + } + + c.writeMu.Lock() + packet := c.packetPool[extendedCode] + // We don't remove the buffer from packetPool, so + // WriteExtended calls from different goroutines will be + // flagged as errors by the race detector. + c.writeMu.Unlock() + + for len(data) > 0 { + space := min(c.maxRemotePayload, len(data)) + if space, err = c.remoteWin.reserve(space); err != nil { + return n, err + } + if want := headerLength + space; uint32(cap(packet)) < want { + packet = make([]byte, want) + } else { + packet = packet[:want] + } + + todo := data[:space] + + packet[0] = opCode + binary.BigEndian.PutUint32(packet[1:], c.remoteId) + if extendedCode > 0 { + binary.BigEndian.PutUint32(packet[5:], uint32(extendedCode)) + } + binary.BigEndian.PutUint32(packet[headerLength-4:], uint32(len(todo))) + copy(packet[headerLength:], todo) + if err = c.writePacket(packet); err != nil { + return n, err + } + + n += len(todo) + data = data[len(todo):] + } + + c.writeMu.Lock() + c.packetPool[extendedCode] = packet + c.writeMu.Unlock() + + return n, err +} + +func (c *channel) handleData(packet []byte) error { + headerLen := 9 + isExtendedData := packet[0] == msgChannelExtendedData + if isExtendedData { + headerLen = 13 + } + if len(packet) < headerLen { + // malformed data packet + return parseError(packet[0]) + } + + var extended uint32 + if isExtendedData { + extended = binary.BigEndian.Uint32(packet[5:]) + } + + length := binary.BigEndian.Uint32(packet[headerLen-4 : headerLen]) + if length == 0 { + return nil + } + if length > c.maxIncomingPayload { + // TODO(hanwen): should send Disconnect? + return errors.New("ssh: incoming packet exceeds maximum payload size") + } + + data := packet[headerLen:] + if length != uint32(len(data)) { + return errors.New("ssh: wrong packet length") + } + + c.windowMu.Lock() + if c.myWindow < length { + c.windowMu.Unlock() + // TODO(hanwen): should send Disconnect with reason? + return errors.New("ssh: remote side wrote too much") + } + c.myWindow -= length + c.windowMu.Unlock() + + if extended == 1 { + c.extPending.write(data) + } else if extended > 0 { + // discard other extended data. + } else { + c.pending.write(data) + } + return nil +} + +func (c *channel) adjustWindow(n uint32) error { + c.windowMu.Lock() + // Since myWindow is managed on our side, and can never exceed + // the initial window setting, we don't worry about overflow. + c.myWindow += uint32(n) + c.windowMu.Unlock() + return c.sendMessage(windowAdjustMsg{ + AdditionalBytes: uint32(n), + }) +} + +func (c *channel) ReadExtended(data []byte, extended uint32) (n int, err error) { + switch extended { + case 1: + n, err = c.extPending.Read(data) + case 0: + n, err = c.pending.Read(data) + default: + return 0, fmt.Errorf("ssh: extended code %d unimplemented", extended) + } + + if n > 0 { + err = c.adjustWindow(uint32(n)) + // sendWindowAdjust can return io.EOF if the remote + // peer has closed the connection, however we want to + // defer forwarding io.EOF to the caller of Read until + // the buffer has been drained. + if n > 0 && err == io.EOF { + err = nil + } + } + + return n, err +} + +func (c *channel) close() { + c.pending.eof() + c.extPending.eof() + close(c.msg) + close(c.incomingRequests) + c.writeMu.Lock() + // This is not necessary for a normal channel teardown, but if + // there was another error, it is. + c.sentClose = true + c.writeMu.Unlock() + // Unblock writers. + c.remoteWin.close() +} + +// responseMessageReceived is called when a success or failure message is +// received on a channel to check that such a message is reasonable for the +// given channel. +func (c *channel) responseMessageReceived() error { + if c.direction == channelInbound { + return errors.New("ssh: channel response message received on inbound channel") + } + if c.decided { + return errors.New("ssh: duplicate response received for channel") + } + c.decided = true + return nil +} + +func (c *channel) handlePacket(packet []byte) error { + switch packet[0] { + case msgChannelData, msgChannelExtendedData: + return c.handleData(packet) + case msgChannelClose: + c.sendMessage(channelCloseMsg{PeersId: c.remoteId}) + c.mux.chanList.remove(c.localId) + c.close() + return nil + case msgChannelEOF: + // RFC 4254 is mute on how EOF affects dataExt messages but + // it is logical to signal EOF at the same time. + c.extPending.eof() + c.pending.eof() + return nil + } + + decoded, err := decode(packet) + if err != nil { + return err + } + + switch msg := decoded.(type) { + case *channelOpenFailureMsg: + if err := c.responseMessageReceived(); err != nil { + return err + } + c.mux.chanList.remove(msg.PeersId) + c.msg <- msg + case *channelOpenConfirmMsg: + if err := c.responseMessageReceived(); err != nil { + return err + } + if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { + return fmt.Errorf("ssh: invalid MaxPacketSize %d from peer", msg.MaxPacketSize) + } + c.remoteId = msg.MyId + c.maxRemotePayload = msg.MaxPacketSize + c.remoteWin.add(msg.MyWindow) + c.msg <- msg + case *windowAdjustMsg: + if !c.remoteWin.add(msg.AdditionalBytes) { + return fmt.Errorf("ssh: invalid window update for %d bytes", msg.AdditionalBytes) + } + case *channelRequestMsg: + req := Request{ + Type: msg.Request, + WantReply: msg.WantReply, + Payload: msg.RequestSpecificData, + ch: c, + } + + c.incomingRequests <- &req + default: + c.msg <- msg + } + return nil +} + +func (m *mux) newChannel(chanType string, direction channelDirection, extraData []byte) *channel { + ch := &channel{ + remoteWin: window{Cond: newCond()}, + myWindow: channelWindowSize, + pending: newBuffer(), + extPending: newBuffer(), + direction: direction, + incomingRequests: make(chan *Request, 16), + msg: make(chan interface{}, 16), + chanType: chanType, + extraData: extraData, + mux: m, + packetPool: make(map[uint32][]byte), + } + ch.localId = m.chanList.add(ch) + return ch +} + +var errUndecided = errors.New("ssh: must Accept or Reject channel") +var errDecidedAlready = errors.New("ssh: can call Accept or Reject only once") + +type extChannel struct { + code uint32 + ch *channel +} + +func (e *extChannel) Write(data []byte) (n int, err error) { + return e.ch.WriteExtended(data, e.code) +} + +func (e *extChannel) Read(data []byte) (n int, err error) { + return e.ch.ReadExtended(data, e.code) +} + +func (c *channel) Accept() (Channel, <-chan *Request, error) { + if c.decided { + return nil, nil, errDecidedAlready + } + c.maxIncomingPayload = channelMaxPacket + confirm := channelOpenConfirmMsg{ + PeersId: c.remoteId, + MyId: c.localId, + MyWindow: c.myWindow, + MaxPacketSize: c.maxIncomingPayload, + } + c.decided = true + if err := c.sendMessage(confirm); err != nil { + return nil, nil, err + } + + return c, c.incomingRequests, nil +} + +func (ch *channel) Reject(reason RejectionReason, message string) error { + if ch.decided { + return errDecidedAlready + } + reject := channelOpenFailureMsg{ + PeersId: ch.remoteId, + Reason: reason, + Message: message, + Language: "en", + } + ch.decided = true + return ch.sendMessage(reject) +} + +func (ch *channel) Read(data []byte) (int, error) { + if !ch.decided { + return 0, errUndecided + } + return ch.ReadExtended(data, 0) +} + +func (ch *channel) Write(data []byte) (int, error) { + if !ch.decided { + return 0, errUndecided + } + return ch.WriteExtended(data, 0) +} + +func (ch *channel) CloseWrite() error { + if !ch.decided { + return errUndecided + } + ch.sentEOF = true + return ch.sendMessage(channelEOFMsg{ + PeersId: ch.remoteId}) +} + +func (ch *channel) Close() error { + if !ch.decided { + return errUndecided + } + + return ch.sendMessage(channelCloseMsg{ + PeersId: ch.remoteId}) +} + +// Extended returns an io.ReadWriter that sends and receives data on the given, +// SSH extended stream. Such streams are used, for example, for stderr. +func (ch *channel) Extended(code uint32) io.ReadWriter { + if !ch.decided { + return nil + } + return &extChannel{code, ch} +} + +func (ch *channel) Stderr() io.ReadWriter { + return ch.Extended(1) +} + +func (ch *channel) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { + if !ch.decided { + return false, errUndecided + } + + if wantReply { + ch.sentRequestMu.Lock() + defer ch.sentRequestMu.Unlock() + } + + msg := channelRequestMsg{ + PeersId: ch.remoteId, + Request: name, + WantReply: wantReply, + RequestSpecificData: payload, + } + + if err := ch.sendMessage(msg); err != nil { + return false, err + } + + if wantReply { + m, ok := (<-ch.msg) + if !ok { + return false, io.EOF + } + switch m.(type) { + case *channelRequestFailureMsg: + return false, nil + case *channelRequestSuccessMsg: + return true, nil + default: + return false, fmt.Errorf("ssh: unexpected response to channel request: %#v", m) + } + } + + return false, nil +} + +// ackRequest either sends an ack or nack to the channel request. +func (ch *channel) ackRequest(ok bool) error { + if !ch.decided { + return errUndecided + } + + var msg interface{} + if !ok { + msg = channelRequestFailureMsg{ + PeersId: ch.remoteId, + } + } else { + msg = channelRequestSuccessMsg{ + PeersId: ch.remoteId, + } + } + return ch.sendMessage(msg) +} + +func (ch *channel) ChannelType() string { + return ch.chanType +} + +func (ch *channel) ExtraData() []byte { + return ch.extraData +} diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go new file mode 100644 index 00000000..34d3917c --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/cipher.go @@ -0,0 +1,579 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/des" + "crypto/rc4" + "crypto/subtle" + "encoding/binary" + "errors" + "fmt" + "hash" + "io" + "io/ioutil" +) + +const ( + packetSizeMultiple = 16 // TODO(huin) this should be determined by the cipher. + + // RFC 4253 section 6.1 defines a minimum packet size of 32768 that implementations + // MUST be able to process (plus a few more kilobytes for padding and mac). The RFC + // indicates implementations SHOULD be able to handle larger packet sizes, but then + // waffles on about reasonable limits. + // + // OpenSSH caps their maxPacket at 256kB so we choose to do + // the same. maxPacket is also used to ensure that uint32 + // length fields do not overflow, so it should remain well + // below 4G. + maxPacket = 256 * 1024 +) + +// noneCipher implements cipher.Stream and provides no encryption. It is used +// by the transport before the first key-exchange. +type noneCipher struct{} + +func (c noneCipher) XORKeyStream(dst, src []byte) { + copy(dst, src) +} + +func newAESCTR(key, iv []byte) (cipher.Stream, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + return cipher.NewCTR(c, iv), nil +} + +func newRC4(key, iv []byte) (cipher.Stream, error) { + return rc4.NewCipher(key) +} + +type streamCipherMode struct { + keySize int + ivSize int + skip int + createFunc func(key, iv []byte) (cipher.Stream, error) +} + +func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { + if len(key) < c.keySize { + panic("ssh: key length too small for cipher") + } + if len(iv) < c.ivSize { + panic("ssh: iv too small for cipher") + } + + stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) + if err != nil { + return nil, err + } + + var streamDump []byte + if c.skip > 0 { + streamDump = make([]byte, 512) + } + + for remainingToDump := c.skip; remainingToDump > 0; { + dumpThisTime := remainingToDump + if dumpThisTime > len(streamDump) { + dumpThisTime = len(streamDump) + } + stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) + remainingToDump -= dumpThisTime + } + + return stream, nil +} + +// cipherModes documents properties of supported ciphers. Ciphers not included +// are not supported and will not be negotiated, even if explicitly requested in +// ClientConfig.Crypto.Ciphers. +var cipherModes = map[string]*streamCipherMode{ + // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms + // are defined in the order specified in the RFC. + "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, + "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, + "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, + + // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. + // They are defined in the order specified in the RFC. + "arcfour128": {16, 0, 1536, newRC4}, + "arcfour256": {32, 0, 1536, newRC4}, + + // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. + // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and + // RC4) has problems with weak keys, and should be used with caution." + // RFC4345 introduces improved versions of Arcfour. + "arcfour": {16, 0, 0, newRC4}, + + // AES-GCM is not a stream cipher, so it is constructed with a + // special case. If we add any more non-stream ciphers, we + // should invest a cleaner way to do this. + gcmCipherID: {16, 12, 0, nil}, + + // CBC mode is insecure and so is not included in the default config. + // (See http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf). If absolutely + // needed, it's possible to specify a custom Config to enable it. + // You should expect that an active attacker can recover plaintext if + // you do. + aes128cbcID: {16, aes.BlockSize, 0, nil}, + + // 3des-cbc is insecure and is disabled by default. + tripledescbcID: {24, des.BlockSize, 0, nil}, +} + +// prefixLen is the length of the packet prefix that contains the packet length +// and number of padding bytes. +const prefixLen = 5 + +// streamPacketCipher is a packetCipher using a stream cipher. +type streamPacketCipher struct { + mac hash.Hash + cipher cipher.Stream + + // The following members are to avoid per-packet allocations. + prefix [prefixLen]byte + seqNumBytes [4]byte + padding [2 * packetSizeMultiple]byte + packetData []byte + macResult []byte +} + +// readPacket reads and decrypt a single packet from the reader argument. +func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + if _, err := io.ReadFull(r, s.prefix[:]); err != nil { + return nil, err + } + + s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) + length := binary.BigEndian.Uint32(s.prefix[0:4]) + paddingLength := uint32(s.prefix[4]) + + var macSize uint32 + if s.mac != nil { + s.mac.Reset() + binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) + s.mac.Write(s.seqNumBytes[:]) + s.mac.Write(s.prefix[:]) + macSize = uint32(s.mac.Size()) + } + + if length <= paddingLength+1 { + return nil, errors.New("ssh: invalid packet length, packet too small") + } + + if length > maxPacket { + return nil, errors.New("ssh: invalid packet length, packet too large") + } + + // the maxPacket check above ensures that length-1+macSize + // does not overflow. + if uint32(cap(s.packetData)) < length-1+macSize { + s.packetData = make([]byte, length-1+macSize) + } else { + s.packetData = s.packetData[:length-1+macSize] + } + + if _, err := io.ReadFull(r, s.packetData); err != nil { + return nil, err + } + mac := s.packetData[length-1:] + data := s.packetData[:length-1] + s.cipher.XORKeyStream(data, data) + + if s.mac != nil { + s.mac.Write(data) + s.macResult = s.mac.Sum(s.macResult[:0]) + if subtle.ConstantTimeCompare(s.macResult, mac) != 1 { + return nil, errors.New("ssh: MAC failure") + } + } + + return s.packetData[:length-paddingLength-1], nil +} + +// writePacket encrypts and sends a packet of data to the writer argument +func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + if len(packet) > maxPacket { + return errors.New("ssh: packet too large") + } + + paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple + if paddingLength < 4 { + paddingLength += packetSizeMultiple + } + + length := len(packet) + 1 + paddingLength + binary.BigEndian.PutUint32(s.prefix[:], uint32(length)) + s.prefix[4] = byte(paddingLength) + padding := s.padding[:paddingLength] + if _, err := io.ReadFull(rand, padding); err != nil { + return err + } + + if s.mac != nil { + s.mac.Reset() + binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum) + s.mac.Write(s.seqNumBytes[:]) + s.mac.Write(s.prefix[:]) + s.mac.Write(packet) + s.mac.Write(padding) + } + + s.cipher.XORKeyStream(s.prefix[:], s.prefix[:]) + s.cipher.XORKeyStream(packet, packet) + s.cipher.XORKeyStream(padding, padding) + + if _, err := w.Write(s.prefix[:]); err != nil { + return err + } + if _, err := w.Write(packet); err != nil { + return err + } + if _, err := w.Write(padding); err != nil { + return err + } + + if s.mac != nil { + s.macResult = s.mac.Sum(s.macResult[:0]) + if _, err := w.Write(s.macResult); err != nil { + return err + } + } + + return nil +} + +type gcmCipher struct { + aead cipher.AEAD + prefix [4]byte + iv []byte + buf []byte +} + +func newGCMCipher(iv, key, macKey []byte) (packetCipher, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + aead, err := cipher.NewGCM(c) + if err != nil { + return nil, err + } + + return &gcmCipher{ + aead: aead, + iv: iv, + }, nil +} + +const gcmTagSize = 16 + +func (c *gcmCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + // Pad out to multiple of 16 bytes. This is different from the + // stream cipher because that encrypts the length too. + padding := byte(packetSizeMultiple - (1+len(packet))%packetSizeMultiple) + if padding < 4 { + padding += packetSizeMultiple + } + + length := uint32(len(packet) + int(padding) + 1) + binary.BigEndian.PutUint32(c.prefix[:], length) + if _, err := w.Write(c.prefix[:]); err != nil { + return err + } + + if cap(c.buf) < int(length) { + c.buf = make([]byte, length) + } else { + c.buf = c.buf[:length] + } + + c.buf[0] = padding + copy(c.buf[1:], packet) + if _, err := io.ReadFull(rand, c.buf[1+len(packet):]); err != nil { + return err + } + c.buf = c.aead.Seal(c.buf[:0], c.iv, c.buf, c.prefix[:]) + if _, err := w.Write(c.buf); err != nil { + return err + } + c.incIV() + + return nil +} + +func (c *gcmCipher) incIV() { + for i := 4 + 7; i >= 4; i-- { + c.iv[i]++ + if c.iv[i] != 0 { + break + } + } +} + +func (c *gcmCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + if _, err := io.ReadFull(r, c.prefix[:]); err != nil { + return nil, err + } + length := binary.BigEndian.Uint32(c.prefix[:]) + if length > maxPacket { + return nil, errors.New("ssh: max packet length exceeded.") + } + + if cap(c.buf) < int(length+gcmTagSize) { + c.buf = make([]byte, length+gcmTagSize) + } else { + c.buf = c.buf[:length+gcmTagSize] + } + + if _, err := io.ReadFull(r, c.buf); err != nil { + return nil, err + } + + plain, err := c.aead.Open(c.buf[:0], c.iv, c.buf, c.prefix[:]) + if err != nil { + return nil, err + } + c.incIV() + + padding := plain[0] + if padding < 4 || padding >= 20 { + return nil, fmt.Errorf("ssh: illegal padding %d", padding) + } + + if int(padding+1) >= len(plain) { + return nil, fmt.Errorf("ssh: padding %d too large", padding) + } + plain = plain[1 : length-uint32(padding)] + return plain, nil +} + +// cbcCipher implements aes128-cbc cipher defined in RFC 4253 section 6.1 +type cbcCipher struct { + mac hash.Hash + macSize uint32 + decrypter cipher.BlockMode + encrypter cipher.BlockMode + + // The following members are to avoid per-packet allocations. + seqNumBytes [4]byte + packetData []byte + macResult []byte + + // Amount of data we should still read to hide which + // verification error triggered. + oracleCamouflage uint32 +} + +func newCBCCipher(c cipher.Block, iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + cbc := &cbcCipher{ + mac: macModes[algs.MAC].new(macKey), + decrypter: cipher.NewCBCDecrypter(c, iv), + encrypter: cipher.NewCBCEncrypter(c, iv), + packetData: make([]byte, 1024), + } + if cbc.mac != nil { + cbc.macSize = uint32(cbc.mac.Size()) + } + + return cbc, nil +} + +func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + c, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + + cbc, err := newCBCCipher(c, iv, key, macKey, algs) + if err != nil { + return nil, err + } + + return cbc, nil +} + +func newTripleDESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + c, err := des.NewTripleDESCipher(key) + if err != nil { + return nil, err + } + + cbc, err := newCBCCipher(c, iv, key, macKey, algs) + if err != nil { + return nil, err + } + + return cbc, nil +} + +func maxUInt32(a, b int) uint32 { + if a > b { + return uint32(a) + } + return uint32(b) +} + +const ( + cbcMinPacketSizeMultiple = 8 + cbcMinPacketSize = 16 + cbcMinPaddingSize = 4 +) + +// cbcError represents a verification error that may leak information. +type cbcError string + +func (e cbcError) Error() string { return string(e) } + +func (c *cbcCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + p, err := c.readPacketLeaky(seqNum, r) + if err != nil { + if _, ok := err.(cbcError); ok { + // Verification error: read a fixed amount of + // data, to make distinguishing between + // failing MAC and failing length check more + // difficult. + io.CopyN(ioutil.Discard, r, int64(c.oracleCamouflage)) + } + } + return p, err +} + +func (c *cbcCipher) readPacketLeaky(seqNum uint32, r io.Reader) ([]byte, error) { + blockSize := c.decrypter.BlockSize() + + // Read the header, which will include some of the subsequent data in the + // case of block ciphers - this is copied back to the payload later. + // How many bytes of payload/padding will be read with this first read. + firstBlockLength := uint32((prefixLen + blockSize - 1) / blockSize * blockSize) + firstBlock := c.packetData[:firstBlockLength] + if _, err := io.ReadFull(r, firstBlock); err != nil { + return nil, err + } + + c.oracleCamouflage = maxPacket + 4 + c.macSize - firstBlockLength + + c.decrypter.CryptBlocks(firstBlock, firstBlock) + length := binary.BigEndian.Uint32(firstBlock[:4]) + if length > maxPacket { + return nil, cbcError("ssh: packet too large") + } + if length+4 < maxUInt32(cbcMinPacketSize, blockSize) { + // The minimum size of a packet is 16 (or the cipher block size, whichever + // is larger) bytes. + return nil, cbcError("ssh: packet too small") + } + // The length of the packet (including the length field but not the MAC) must + // be a multiple of the block size or 8, whichever is larger. + if (length+4)%maxUInt32(cbcMinPacketSizeMultiple, blockSize) != 0 { + return nil, cbcError("ssh: invalid packet length multiple") + } + + paddingLength := uint32(firstBlock[4]) + if paddingLength < cbcMinPaddingSize || length <= paddingLength+1 { + return nil, cbcError("ssh: invalid packet length") + } + + // Positions within the c.packetData buffer: + macStart := 4 + length + paddingStart := macStart - paddingLength + + // Entire packet size, starting before length, ending at end of mac. + entirePacketSize := macStart + c.macSize + + // Ensure c.packetData is large enough for the entire packet data. + if uint32(cap(c.packetData)) < entirePacketSize { + // Still need to upsize and copy, but this should be rare at runtime, only + // on upsizing the packetData buffer. + c.packetData = make([]byte, entirePacketSize) + copy(c.packetData, firstBlock) + } else { + c.packetData = c.packetData[:entirePacketSize] + } + + if n, err := io.ReadFull(r, c.packetData[firstBlockLength:]); err != nil { + return nil, err + } else { + c.oracleCamouflage -= uint32(n) + } + + remainingCrypted := c.packetData[firstBlockLength:macStart] + c.decrypter.CryptBlocks(remainingCrypted, remainingCrypted) + + mac := c.packetData[macStart:] + if c.mac != nil { + c.mac.Reset() + binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) + c.mac.Write(c.seqNumBytes[:]) + c.mac.Write(c.packetData[:macStart]) + c.macResult = c.mac.Sum(c.macResult[:0]) + if subtle.ConstantTimeCompare(c.macResult, mac) != 1 { + return nil, cbcError("ssh: MAC failure") + } + } + + return c.packetData[prefixLen:paddingStart], nil +} + +func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, packet []byte) error { + effectiveBlockSize := maxUInt32(cbcMinPacketSizeMultiple, c.encrypter.BlockSize()) + + // Length of encrypted portion of the packet (header, payload, padding). + // Enforce minimum padding and packet size. + encLength := maxUInt32(prefixLen+len(packet)+cbcMinPaddingSize, cbcMinPaddingSize) + // Enforce block size. + encLength = (encLength + effectiveBlockSize - 1) / effectiveBlockSize * effectiveBlockSize + + length := encLength - 4 + paddingLength := int(length) - (1 + len(packet)) + + // Overall buffer contains: header, payload, padding, mac. + // Space for the MAC is reserved in the capacity but not the slice length. + bufferSize := encLength + c.macSize + if uint32(cap(c.packetData)) < bufferSize { + c.packetData = make([]byte, encLength, bufferSize) + } else { + c.packetData = c.packetData[:encLength] + } + + p := c.packetData + + // Packet header. + binary.BigEndian.PutUint32(p, length) + p = p[4:] + p[0] = byte(paddingLength) + + // Payload. + p = p[1:] + copy(p, packet) + + // Padding. + p = p[len(packet):] + if _, err := io.ReadFull(rand, p); err != nil { + return err + } + + if c.mac != nil { + c.mac.Reset() + binary.BigEndian.PutUint32(c.seqNumBytes[:], seqNum) + c.mac.Write(c.seqNumBytes[:]) + c.mac.Write(c.packetData) + // The MAC is now appended into the capacity reserved for it earlier. + c.packetData = c.mac.Sum(c.packetData) + } + + c.encrypter.CryptBlocks(c.packetData[:encLength], c.packetData[:encLength]) + + if _, err := w.Write(c.packetData); err != nil { + return err + } + + return nil +} diff --git a/vendor/golang.org/x/crypto/ssh/cipher_test.go b/vendor/golang.org/x/crypto/ssh/cipher_test.go new file mode 100644 index 00000000..eced8d85 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/cipher_test.go @@ -0,0 +1,127 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto" + "crypto/aes" + "crypto/rand" + "testing" +) + +func TestDefaultCiphersExist(t *testing.T) { + for _, cipherAlgo := range supportedCiphers { + if _, ok := cipherModes[cipherAlgo]; !ok { + t.Errorf("default cipher %q is unknown", cipherAlgo) + } + } +} + +func TestPacketCiphers(t *testing.T) { + // Still test aes128cbc cipher although it's commented out. + cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} + defer delete(cipherModes, aes128cbcID) + + for cipher := range cipherModes { + kr := &kexResult{Hash: crypto.SHA1} + algs := directionAlgorithms{ + Cipher: cipher, + MAC: "hmac-sha1", + Compression: "none", + } + client, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Errorf("newPacketCipher(client, %q): %v", cipher, err) + continue + } + server, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Errorf("newPacketCipher(client, %q): %v", cipher, err) + continue + } + + want := "bla bla" + input := []byte(want) + buf := &bytes.Buffer{} + if err := client.writePacket(0, buf, rand.Reader, input); err != nil { + t.Errorf("writePacket(%q): %v", cipher, err) + continue + } + + packet, err := server.readPacket(0, buf) + if err != nil { + t.Errorf("readPacket(%q): %v", cipher, err) + continue + } + + if string(packet) != want { + t.Errorf("roundtrip(%q): got %q, want %q", cipher, packet, want) + } + } +} + +func TestCBCOracleCounterMeasure(t *testing.T) { + cipherModes[aes128cbcID] = &streamCipherMode{16, aes.BlockSize, 0, nil} + defer delete(cipherModes, aes128cbcID) + + kr := &kexResult{Hash: crypto.SHA1} + algs := directionAlgorithms{ + Cipher: aes128cbcID, + MAC: "hmac-sha1", + Compression: "none", + } + client, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Fatalf("newPacketCipher(client): %v", err) + } + + want := "bla bla" + input := []byte(want) + buf := &bytes.Buffer{} + if err := client.writePacket(0, buf, rand.Reader, input); err != nil { + t.Errorf("writePacket: %v", err) + } + + packetSize := buf.Len() + buf.Write(make([]byte, 2*maxPacket)) + + // We corrupt each byte, but this usually will only test the + // 'packet too large' or 'MAC failure' cases. + lastRead := -1 + for i := 0; i < packetSize; i++ { + server, err := newPacketCipher(clientKeys, algs, kr) + if err != nil { + t.Fatalf("newPacketCipher(client): %v", err) + } + + fresh := &bytes.Buffer{} + fresh.Write(buf.Bytes()) + fresh.Bytes()[i] ^= 0x01 + + before := fresh.Len() + _, err = server.readPacket(0, fresh) + if err == nil { + t.Errorf("corrupt byte %d: readPacket succeeded ", i) + continue + } + if _, ok := err.(cbcError); !ok { + t.Errorf("corrupt byte %d: got %v (%T), want cbcError", i, err, err) + continue + } + + after := fresh.Len() + bytesRead := before - after + if bytesRead < maxPacket { + t.Errorf("corrupt byte %d: read %d bytes, want more than %d", i, bytesRead, maxPacket) + continue + } + + if i > 0 && bytesRead != lastRead { + t.Errorf("corrupt byte %d: read %d bytes, want %d bytes read", i, bytesRead, lastRead) + } + lastRead = bytesRead + } +} diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go new file mode 100644 index 00000000..0212a20c --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/client.go @@ -0,0 +1,213 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "fmt" + "net" + "sync" + "time" +) + +// Client implements a traditional SSH client that supports shells, +// subprocesses, port forwarding and tunneled dialing. +type Client struct { + Conn + + forwards forwardList // forwarded tcpip connections from the remote side + mu sync.Mutex + channelHandlers map[string]chan NewChannel +} + +// HandleChannelOpen returns a channel on which NewChannel requests +// for the given type are sent. If the type already is being handled, +// nil is returned. The channel is closed when the connection is closed. +func (c *Client) HandleChannelOpen(channelType string) <-chan NewChannel { + c.mu.Lock() + defer c.mu.Unlock() + if c.channelHandlers == nil { + // The SSH channel has been closed. + c := make(chan NewChannel) + close(c) + return c + } + + ch := c.channelHandlers[channelType] + if ch != nil { + return nil + } + + ch = make(chan NewChannel, 16) + c.channelHandlers[channelType] = ch + return ch +} + +// NewClient creates a Client on top of the given connection. +func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client { + conn := &Client{ + Conn: c, + channelHandlers: make(map[string]chan NewChannel, 1), + } + + go conn.handleGlobalRequests(reqs) + go conn.handleChannelOpens(chans) + go func() { + conn.Wait() + conn.forwards.closeAll() + }() + go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) + return conn +} + +// NewClientConn establishes an authenticated SSH connection using c +// as the underlying transport. The Request and NewChannel channels +// must be serviced or the connection will hang. +func NewClientConn(c net.Conn, addr string, config *ClientConfig) (Conn, <-chan NewChannel, <-chan *Request, error) { + fullConf := *config + fullConf.SetDefaults() + conn := &connection{ + sshConn: sshConn{conn: c}, + } + + if err := conn.clientHandshake(addr, &fullConf); err != nil { + c.Close() + return nil, nil, nil, fmt.Errorf("ssh: handshake failed: %v", err) + } + conn.mux = newMux(conn.transport) + return conn, conn.mux.incomingChannels, conn.mux.incomingRequests, nil +} + +// clientHandshake performs the client side key exchange. See RFC 4253 Section +// 7. +func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) error { + if config.ClientVersion != "" { + c.clientVersion = []byte(config.ClientVersion) + } else { + c.clientVersion = []byte(packageVersion) + } + var err error + c.serverVersion, err = exchangeVersions(c.sshConn.conn, c.clientVersion) + if err != nil { + return err + } + + c.transport = newClientTransport( + newTransport(c.sshConn.conn, config.Rand, true /* is client */), + c.clientVersion, c.serverVersion, config, dialAddress, c.sshConn.RemoteAddr()) + if err := c.transport.requestInitialKeyChange(); err != nil { + return err + } + + // We just did the key change, so the session ID is established. + c.sessionID = c.transport.getSessionID() + + return c.clientAuthenticate(config) +} + +// verifyHostKeySignature verifies the host key obtained in the key +// exchange. +func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error { + sig, rest, ok := parseSignatureBody(result.Signature) + if len(rest) > 0 || !ok { + return errors.New("ssh: signature parse error") + } + + return hostKey.Verify(result.H, sig) +} + +// NewSession opens a new Session for this client. (A session is a remote +// execution of a program.) +func (c *Client) NewSession() (*Session, error) { + ch, in, err := c.OpenChannel("session", nil) + if err != nil { + return nil, err + } + return newSession(ch, in) +} + +func (c *Client) handleGlobalRequests(incoming <-chan *Request) { + for r := range incoming { + // This handles keepalive messages and matches + // the behaviour of OpenSSH. + r.Reply(false, nil) + } +} + +// handleChannelOpens channel open messages from the remote side. +func (c *Client) handleChannelOpens(in <-chan NewChannel) { + for ch := range in { + c.mu.Lock() + handler := c.channelHandlers[ch.ChannelType()] + c.mu.Unlock() + + if handler != nil { + handler <- ch + } else { + ch.Reject(UnknownChannelType, fmt.Sprintf("unknown channel type: %v", ch.ChannelType())) + } + } + + c.mu.Lock() + for _, ch := range c.channelHandlers { + close(ch) + } + c.channelHandlers = nil + c.mu.Unlock() +} + +// Dial starts a client connection to the given SSH server. It is a +// convenience function that connects to the given network address, +// initiates the SSH handshake, and then sets up a Client. For access +// to incoming channels and requests, use net.Dial with NewClientConn +// instead. +func Dial(network, addr string, config *ClientConfig) (*Client, error) { + conn, err := net.DialTimeout(network, addr, config.Timeout) + if err != nil { + return nil, err + } + c, chans, reqs, err := NewClientConn(conn, addr, config) + if err != nil { + return nil, err + } + return NewClient(c, chans, reqs), nil +} + +// A ClientConfig structure is used to configure a Client. It must not be +// modified after having been passed to an SSH function. +type ClientConfig struct { + // Config contains configuration that is shared between clients and + // servers. + Config + + // User contains the username to authenticate as. + User string + + // Auth contains possible authentication methods to use with the + // server. Only the first instance of a particular RFC 4252 method will + // be used during authentication. + Auth []AuthMethod + + // HostKeyCallback, if not nil, is called during the cryptographic + // handshake to validate the server's host key. A nil HostKeyCallback + // implies that all host keys are accepted. + HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error + + // ClientVersion contains the version identification string that will + // be used for the connection. If empty, a reasonable default is used. + ClientVersion string + + // HostKeyAlgorithms lists the key types that the client will + // accept from the server as host key, in order of + // preference. If empty, a reasonable default is used. Any + // string returned from PublicKey.Type method may be used, or + // any of the CertAlgoXxxx and KeyAlgoXxxx constants. + HostKeyAlgorithms []string + + // Timeout is the maximum amount of time for the TCP connection to establish. + // + // A Timeout of zero means no timeout. + Timeout time.Duration +} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go new file mode 100644 index 00000000..294af0d4 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -0,0 +1,473 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" +) + +// clientAuthenticate authenticates with the remote server. See RFC 4252. +func (c *connection) clientAuthenticate(config *ClientConfig) error { + // initiate user auth session + if err := c.transport.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})); err != nil { + return err + } + packet, err := c.transport.readPacket() + if err != nil { + return err + } + var serviceAccept serviceAcceptMsg + if err := Unmarshal(packet, &serviceAccept); err != nil { + return err + } + + // during the authentication phase the client first attempts the "none" method + // then any untried methods suggested by the server. + tried := make(map[string]bool) + var lastMethods []string + for auth := AuthMethod(new(noneAuth)); auth != nil; { + ok, methods, err := auth.auth(c.transport.getSessionID(), config.User, c.transport, config.Rand) + if err != nil { + return err + } + if ok { + // success + return nil + } + tried[auth.method()] = true + if methods == nil { + methods = lastMethods + } + lastMethods = methods + + auth = nil + + findNext: + for _, a := range config.Auth { + candidateMethod := a.method() + if tried[candidateMethod] { + continue + } + for _, meth := range methods { + if meth == candidateMethod { + auth = a + break findNext + } + } + } + } + return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", keys(tried)) +} + +func keys(m map[string]bool) []string { + s := make([]string, 0, len(m)) + + for key := range m { + s = append(s, key) + } + return s +} + +// An AuthMethod represents an instance of an RFC 4252 authentication method. +type AuthMethod interface { + // auth authenticates user over transport t. + // Returns true if authentication is successful. + // If authentication is not successful, a []string of alternative + // method names is returned. If the slice is nil, it will be ignored + // and the previous set of possible methods will be reused. + auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) + + // method returns the RFC 4252 method name. + method() string +} + +// "none" authentication, RFC 4252 section 5.2. +type noneAuth int + +func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + if err := c.writePacket(Marshal(&userAuthRequestMsg{ + User: user, + Service: serviceSSH, + Method: "none", + })); err != nil { + return false, nil, err + } + + return handleAuthResponse(c) +} + +func (n *noneAuth) method() string { + return "none" +} + +// passwordCallback is an AuthMethod that fetches the password through +// a function call, e.g. by prompting the user. +type passwordCallback func() (password string, err error) + +func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + type passwordAuthMsg struct { + User string `sshtype:"50"` + Service string + Method string + Reply bool + Password string + } + + pw, err := cb() + // REVIEW NOTE: is there a need to support skipping a password attempt? + // The program may only find out that the user doesn't have a password + // when prompting. + if err != nil { + return false, nil, err + } + + if err := c.writePacket(Marshal(&passwordAuthMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + Reply: false, + Password: pw, + })); err != nil { + return false, nil, err + } + + return handleAuthResponse(c) +} + +func (cb passwordCallback) method() string { + return "password" +} + +// Password returns an AuthMethod using the given password. +func Password(secret string) AuthMethod { + return passwordCallback(func() (string, error) { return secret, nil }) +} + +// PasswordCallback returns an AuthMethod that uses a callback for +// fetching a password. +func PasswordCallback(prompt func() (secret string, err error)) AuthMethod { + return passwordCallback(prompt) +} + +type publickeyAuthMsg struct { + User string `sshtype:"50"` + Service string + Method string + // HasSig indicates to the receiver packet that the auth request is signed and + // should be used for authentication of the request. + HasSig bool + Algoname string + PubKey []byte + // Sig is tagged with "rest" so Marshal will exclude it during + // validateKey + Sig []byte `ssh:"rest"` +} + +// publicKeyCallback is an AuthMethod that uses a set of key +// pairs for authentication. +type publicKeyCallback func() ([]Signer, error) + +func (cb publicKeyCallback) method() string { + return "publickey" +} + +func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + // Authentication is performed in two stages. The first stage sends an + // enquiry to test if each key is acceptable to the remote. The second + // stage attempts to authenticate with the valid keys obtained in the + // first stage. + + signers, err := cb() + if err != nil { + return false, nil, err + } + var validKeys []Signer + for _, signer := range signers { + if ok, err := validateKey(signer.PublicKey(), user, c); ok { + validKeys = append(validKeys, signer) + } else { + if err != nil { + return false, nil, err + } + } + } + + // methods that may continue if this auth is not successful. + var methods []string + for _, signer := range validKeys { + pub := signer.PublicKey() + + pubKey := pub.Marshal() + sign, err := signer.Sign(rand, buildDataSignedForAuth(session, userAuthRequestMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + }, []byte(pub.Type()), pubKey)) + if err != nil { + return false, nil, err + } + + // manually wrap the serialized signature in a string + s := Marshal(sign) + sig := make([]byte, stringLength(len(s))) + marshalString(sig, s) + msg := publickeyAuthMsg{ + User: user, + Service: serviceSSH, + Method: cb.method(), + HasSig: true, + Algoname: pub.Type(), + PubKey: pubKey, + Sig: sig, + } + p := Marshal(&msg) + if err := c.writePacket(p); err != nil { + return false, nil, err + } + var success bool + success, methods, err = handleAuthResponse(c) + if err != nil { + return false, nil, err + } + if success { + return success, methods, err + } + } + return false, methods, nil +} + +// validateKey validates the key provided is acceptable to the server. +func validateKey(key PublicKey, user string, c packetConn) (bool, error) { + pubKey := key.Marshal() + msg := publickeyAuthMsg{ + User: user, + Service: serviceSSH, + Method: "publickey", + HasSig: false, + Algoname: key.Type(), + PubKey: pubKey, + } + if err := c.writePacket(Marshal(&msg)); err != nil { + return false, err + } + + return confirmKeyAck(key, c) +} + +func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { + pubKey := key.Marshal() + algoname := key.Type() + + for { + packet, err := c.readPacket() + if err != nil { + return false, err + } + switch packet[0] { + case msgUserAuthBanner: + // TODO(gpaul): add callback to present the banner to the user + case msgUserAuthPubKeyOk: + var msg userAuthPubKeyOkMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, err + } + if msg.Algo != algoname || !bytes.Equal(msg.PubKey, pubKey) { + return false, nil + } + return true, nil + case msgUserAuthFailure: + return false, nil + default: + return false, unexpectedMessageError(msgUserAuthSuccess, packet[0]) + } + } +} + +// PublicKeys returns an AuthMethod that uses the given key +// pairs. +func PublicKeys(signers ...Signer) AuthMethod { + return publicKeyCallback(func() ([]Signer, error) { return signers, nil }) +} + +// PublicKeysCallback returns an AuthMethod that runs the given +// function to obtain a list of key pairs. +func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMethod { + return publicKeyCallback(getSigners) +} + +// handleAuthResponse returns whether the preceding authentication request succeeded +// along with a list of remaining authentication methods to try next and +// an error if an unexpected response was received. +func handleAuthResponse(c packetConn) (bool, []string, error) { + for { + packet, err := c.readPacket() + if err != nil { + return false, nil, err + } + + switch packet[0] { + case msgUserAuthBanner: + // TODO: add callback to present the banner to the user + case msgUserAuthFailure: + var msg userAuthFailureMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + return false, msg.Methods, nil + case msgUserAuthSuccess: + return true, nil, nil + default: + return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) + } + } +} + +// KeyboardInteractiveChallenge should print questions, optionally +// disabling echoing (e.g. for passwords), and return all the answers. +// Challenge may be called multiple times in a single session. After +// successful authentication, the server may send a challenge with no +// questions, for which the user and instruction messages should be +// printed. RFC 4256 section 3.3 details how the UI should behave for +// both CLI and GUI environments. +type KeyboardInteractiveChallenge func(user, instruction string, questions []string, echos []bool) (answers []string, err error) + +// KeyboardInteractive returns a AuthMethod using a prompt/response +// sequence controlled by the server. +func KeyboardInteractive(challenge KeyboardInteractiveChallenge) AuthMethod { + return challenge +} + +func (cb KeyboardInteractiveChallenge) method() string { + return "keyboard-interactive" +} + +func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { + type initiateMsg struct { + User string `sshtype:"50"` + Service string + Method string + Language string + Submethods string + } + + if err := c.writePacket(Marshal(&initiateMsg{ + User: user, + Service: serviceSSH, + Method: "keyboard-interactive", + })); err != nil { + return false, nil, err + } + + for { + packet, err := c.readPacket() + if err != nil { + return false, nil, err + } + + // like handleAuthResponse, but with less options. + switch packet[0] { + case msgUserAuthBanner: + // TODO: Print banners during userauth. + continue + case msgUserAuthInfoRequest: + // OK + case msgUserAuthFailure: + var msg userAuthFailureMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + return false, msg.Methods, nil + case msgUserAuthSuccess: + return true, nil, nil + default: + return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) + } + + var msg userAuthInfoRequestMsg + if err := Unmarshal(packet, &msg); err != nil { + return false, nil, err + } + + // Manually unpack the prompt/echo pairs. + rest := msg.Prompts + var prompts []string + var echos []bool + for i := 0; i < int(msg.NumPrompts); i++ { + prompt, r, ok := parseString(rest) + if !ok || len(r) == 0 { + return false, nil, errors.New("ssh: prompt format error") + } + prompts = append(prompts, string(prompt)) + echos = append(echos, r[0] != 0) + rest = r[1:] + } + + if len(rest) != 0 { + return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") + } + + answers, err := cb(msg.User, msg.Instruction, prompts, echos) + if err != nil { + return false, nil, err + } + + if len(answers) != len(prompts) { + return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") + } + responseLength := 1 + 4 + for _, a := range answers { + responseLength += stringLength(len(a)) + } + serialized := make([]byte, responseLength) + p := serialized + p[0] = msgUserAuthInfoResponse + p = p[1:] + p = marshalUint32(p, uint32(len(answers))) + for _, a := range answers { + p = marshalString(p, []byte(a)) + } + + if err := c.writePacket(serialized); err != nil { + return false, nil, err + } + } +} + +type retryableAuthMethod struct { + authMethod AuthMethod + maxTries int +} + +func (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader) (ok bool, methods []string, err error) { + for i := 0; r.maxTries <= 0 || i < r.maxTries; i++ { + ok, methods, err = r.authMethod.auth(session, user, c, rand) + if ok || err != nil { // either success or error terminate + return ok, methods, err + } + } + return ok, methods, err +} + +func (r *retryableAuthMethod) method() string { + return r.authMethod.method() +} + +// RetryableAuthMethod is a decorator for other auth methods enabling them to +// be retried up to maxTries before considering that AuthMethod itself failed. +// If maxTries is <= 0, will retry indefinitely +// +// This is useful for interactive clients using challenge/response type +// authentication (e.g. Keyboard-Interactive, Password, etc) where the user +// could mistype their response resulting in the server issuing a +// SSH_MSG_USERAUTH_FAILURE (rfc4252 #8 [password] and rfc4256 #3.4 +// [keyboard-interactive]); Without this decorator, the non-retryable +// AuthMethod would be removed from future consideration, and never tried again +// (and so the user would never be able to retry their entry). +func RetryableAuthMethod(auth AuthMethod, maxTries int) AuthMethod { + return &retryableAuthMethod{authMethod: auth, maxTries: maxTries} +} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth_test.go b/vendor/golang.org/x/crypto/ssh/client_auth_test.go new file mode 100644 index 00000000..1409276e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/client_auth_test.go @@ -0,0 +1,472 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "errors" + "fmt" + "os" + "strings" + "testing" +) + +type keyboardInteractive map[string]string + +func (cr keyboardInteractive) Challenge(user string, instruction string, questions []string, echos []bool) ([]string, error) { + var answers []string + for _, q := range questions { + answers = append(answers, cr[q]) + } + return answers, nil +} + +// reused internally by tests +var clientPassword = "tiger" + +// tryAuth runs a handshake with a given config against an SSH server +// with config serverConfig +func tryAuth(t *testing.T, config *ClientConfig) error { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + certChecker := CertChecker{ + IsAuthority: func(k PublicKey) bool { + return bytes.Equal(k.Marshal(), testPublicKeys["ecdsa"].Marshal()) + }, + UserKeyFallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { + if conn.User() == "testuser" && bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) { + return nil, nil + } + + return nil, fmt.Errorf("pubkey for %q not acceptable", conn.User()) + }, + IsRevoked: func(c *Certificate) bool { + return c.Serial == 666 + }, + } + + serverConfig := &ServerConfig{ + PasswordCallback: func(conn ConnMetadata, pass []byte) (*Permissions, error) { + if conn.User() == "testuser" && string(pass) == clientPassword { + return nil, nil + } + return nil, errors.New("password auth failed") + }, + PublicKeyCallback: certChecker.Authenticate, + KeyboardInteractiveCallback: func(conn ConnMetadata, challenge KeyboardInteractiveChallenge) (*Permissions, error) { + ans, err := challenge("user", + "instruction", + []string{"question1", "question2"}, + []bool{true, true}) + if err != nil { + return nil, err + } + ok := conn.User() == "testuser" && ans[0] == "answer1" && ans[1] == "answer2" + if ok { + challenge("user", "motd", nil, nil) + return nil, nil + } + return nil, errors.New("keyboard-interactive failed") + }, + AuthLogCallback: func(conn ConnMetadata, method string, err error) { + t.Logf("user %q, method %q: %v", conn.User(), method, err) + }, + } + serverConfig.AddHostKey(testSigners["rsa"]) + + go newServer(c1, serverConfig) + _, _, _, err = NewClientConn(c2, "", config) + return err +} + +func TestClientAuthPublicKey(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodPassword(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + Password(clientPassword), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodFallback(t *testing.T) { + var passwordCalled bool + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + PasswordCallback( + func() (string, error) { + passwordCalled = true + return "WRONG", nil + }), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } + + if passwordCalled { + t.Errorf("password auth tried before public-key auth.") + } +} + +func TestAuthMethodWrongPassword(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + Password("wrong"), + PublicKeys(testSigners["rsa"]), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodKeyboardInteractive(t *testing.T) { + answers := keyboardInteractive(map[string]string{ + "question1": "answer1", + "question2": "answer2", + }) + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + KeyboardInteractive(answers.Challenge), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +func TestAuthMethodWrongKeyboardInteractive(t *testing.T) { + answers := keyboardInteractive(map[string]string{ + "question1": "answer1", + "question2": "WRONG", + }) + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + KeyboardInteractive(answers.Challenge), + }, + } + + if err := tryAuth(t, config); err == nil { + t.Fatalf("wrong answers should not have authenticated with KeyboardInteractive") + } +} + +// the mock server will only authenticate ssh-rsa keys +func TestAuthMethodInvalidPublicKey(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["dsa"]), + }, + } + + if err := tryAuth(t, config); err == nil { + t.Fatalf("dsa private key should not have authenticated with rsa public key") + } +} + +// the client should authenticate with the second key +func TestAuthMethodRSAandDSA(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["dsa"], testSigners["rsa"]), + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("client could not authenticate with rsa key: %v", err) + } +} + +func TestClientHMAC(t *testing.T) { + for _, mac := range supportedMACs { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + Config: Config{ + MACs: []string{mac}, + }, + } + if err := tryAuth(t, config); err != nil { + t.Fatalf("client could not authenticate with mac algo %s: %v", mac, err) + } + } +} + +// issue 4285. +func TestClientUnsupportedCipher(t *testing.T) { + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(), + }, + Config: Config{ + Ciphers: []string{"aes128-cbc"}, // not currently supported + }, + } + if err := tryAuth(t, config); err == nil { + t.Errorf("expected no ciphers in common") + } +} + +func TestClientUnsupportedKex(t *testing.T) { + if os.Getenv("GO_BUILDER_NAME") != "" { + t.Skip("skipping known-flaky test on the Go build dashboard; see golang.org/issue/15198") + } + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + PublicKeys(), + }, + Config: Config{ + KeyExchanges: []string{"diffie-hellman-group-exchange-sha256"}, // not currently supported + }, + } + if err := tryAuth(t, config); err == nil || !strings.Contains(err.Error(), "common algorithm") { + t.Errorf("got %v, expected 'common algorithm'", err) + } +} + +func TestClientLoginCert(t *testing.T) { + cert := &Certificate{ + Key: testPublicKeys["rsa"], + ValidBefore: CertTimeInfinity, + CertType: UserCert, + } + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + certSigner, err := NewCertSigner(cert, testSigners["rsa"]) + if err != nil { + t.Fatalf("NewCertSigner: %v", err) + } + + clientConfig := &ClientConfig{ + User: "user", + } + clientConfig.Auth = append(clientConfig.Auth, PublicKeys(certSigner)) + + t.Log("should succeed") + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login failed: %v", err) + } + + t.Log("corrupted signature") + cert.Signature.Blob[0]++ + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with corrupted sig") + } + + t.Log("revoked") + cert.Serial = 666 + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("revoked cert login succeeded") + } + cert.Serial = 1 + + t.Log("sign with wrong key") + cert.SignCert(rand.Reader, testSigners["dsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with non-authoritative key") + } + + t.Log("host cert") + cert.CertType = HostCert + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with wrong type") + } + cert.CertType = UserCert + + t.Log("principal specified") + cert.ValidPrincipals = []string{"user"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login failed: %v", err) + } + + t.Log("wrong principal specified") + cert.ValidPrincipals = []string{"fred"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with wrong principal") + } + cert.ValidPrincipals = nil + + t.Log("added critical option") + cert.CriticalOptions = map[string]string{"root-access": "yes"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login passed with unrecognized critical option") + } + + t.Log("allowed source address") + cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err != nil { + t.Errorf("cert login with source-address failed: %v", err) + } + + t.Log("disallowed source address") + cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42"} + cert.SignCert(rand.Reader, testSigners["ecdsa"]) + if err := tryAuth(t, clientConfig); err == nil { + t.Errorf("cert login with source-address succeeded") + } +} + +func testPermissionsPassing(withPermissions bool, t *testing.T) { + serverConfig := &ServerConfig{ + PublicKeyCallback: func(conn ConnMetadata, key PublicKey) (*Permissions, error) { + if conn.User() == "nopermissions" { + return nil, nil + } else { + return &Permissions{}, nil + } + }, + } + serverConfig.AddHostKey(testSigners["rsa"]) + + clientConfig := &ClientConfig{ + Auth: []AuthMethod{ + PublicKeys(testSigners["rsa"]), + }, + } + if withPermissions { + clientConfig.User = "permissions" + } else { + clientConfig.User = "nopermissions" + } + + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewClientConn(c2, "", clientConfig) + serverConn, err := newServer(c1, serverConfig) + if err != nil { + t.Fatal(err) + } + if p := serverConn.Permissions; (p != nil) != withPermissions { + t.Fatalf("withPermissions is %t, but Permissions object is %#v", withPermissions, p) + } +} + +func TestPermissionsPassing(t *testing.T) { + testPermissionsPassing(true, t) +} + +func TestNoPermissionsPassing(t *testing.T) { + testPermissionsPassing(false, t) +} + +func TestRetryableAuth(t *testing.T) { + n := 0 + passwords := []string{"WRONG1", "WRONG2"} + + config := &ClientConfig{ + User: "testuser", + Auth: []AuthMethod{ + RetryableAuthMethod(PasswordCallback(func() (string, error) { + p := passwords[n] + n++ + return p, nil + }), 2), + PublicKeys(testSigners["rsa"]), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } + if n != 2 { + t.Fatalf("Did not try all passwords") + } +} + +func ExampleRetryableAuthMethod(t *testing.T) { + user := "testuser" + NumberOfPrompts := 3 + + // Normally this would be a callback that prompts the user to answer the + // provided questions + Cb := func(user, instruction string, questions []string, echos []bool) (answers []string, err error) { + return []string{"answer1", "answer2"}, nil + } + + config := &ClientConfig{ + User: user, + Auth: []AuthMethod{ + RetryableAuthMethod(KeyboardInteractiveChallenge(Cb), NumberOfPrompts), + }, + } + + if err := tryAuth(t, config); err != nil { + t.Fatalf("unable to dial remote side: %s", err) + } +} + +// Test if username is received on server side when NoClientAuth is used +func TestClientAuthNone(t *testing.T) { + user := "testuser" + serverConfig := &ServerConfig{ + NoClientAuth: true, + } + serverConfig.AddHostKey(testSigners["rsa"]) + + clientConfig := &ClientConfig{ + User: user, + } + + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewClientConn(c2, "", clientConfig) + serverConn, err := newServer(c1, serverConfig) + if err != nil { + t.Fatalf("newServer: %v", err) + } + if serverConn.User() != user { + t.Fatalf("server: got %q, want %q", serverConn.User(), user) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/client_test.go b/vendor/golang.org/x/crypto/ssh/client_test.go new file mode 100644 index 00000000..1fe790cb --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/client_test.go @@ -0,0 +1,39 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "net" + "testing" +) + +func testClientVersion(t *testing.T, config *ClientConfig, expected string) { + clientConn, serverConn := net.Pipe() + defer clientConn.Close() + receivedVersion := make(chan string, 1) + go func() { + version, err := readVersion(serverConn) + if err != nil { + receivedVersion <- "" + } else { + receivedVersion <- string(version) + } + serverConn.Close() + }() + NewClientConn(clientConn, "", config) + actual := <-receivedVersion + if actual != expected { + t.Fatalf("got %s; want %s", actual, expected) + } +} + +func TestCustomClientVersion(t *testing.T) { + version := "Test-Client-Version-0.0" + testClientVersion(t, &ClientConfig{ClientVersion: version}, version) +} + +func TestDefaultClientVersion(t *testing.T) { + testClientVersion(t, &ClientConfig{}, packageVersion) +} diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go new file mode 100644 index 00000000..2c72ab54 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -0,0 +1,356 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto" + "crypto/rand" + "fmt" + "io" + "sync" + + _ "crypto/sha1" + _ "crypto/sha256" + _ "crypto/sha512" +) + +// These are string constants in the SSH protocol. +const ( + compressionNone = "none" + serviceUserAuth = "ssh-userauth" + serviceSSH = "ssh-connection" +) + +// supportedCiphers specifies the supported ciphers in preference order. +var supportedCiphers = []string{ + "aes128-ctr", "aes192-ctr", "aes256-ctr", + "aes128-gcm@openssh.com", + "arcfour256", "arcfour128", +} + +// supportedKexAlgos specifies the supported key-exchange algorithms in +// preference order. +var supportedKexAlgos = []string{ + kexAlgoCurve25519SHA256, + // P384 and P521 are not constant-time yet, but since we don't + // reuse ephemeral keys, using them for ECDH should be OK. + kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, + kexAlgoDH14SHA1, kexAlgoDH1SHA1, +} + +// supportedKexAlgos specifies the supported host-key algorithms (i.e. methods +// of authenticating servers) in preference order. +var supportedHostKeyAlgos = []string{ + CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, + CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01, + + KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, + KeyAlgoRSA, KeyAlgoDSA, + + KeyAlgoED25519, +} + +// supportedMACs specifies a default set of MAC algorithms in preference order. +// This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed +// because they have reached the end of their useful life. +var supportedMACs = []string{ + "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", +} + +var supportedCompressions = []string{compressionNone} + +// hashFuncs keeps the mapping of supported algorithms to their respective +// hashes needed for signature verification. +var hashFuncs = map[string]crypto.Hash{ + KeyAlgoRSA: crypto.SHA1, + KeyAlgoDSA: crypto.SHA1, + KeyAlgoECDSA256: crypto.SHA256, + KeyAlgoECDSA384: crypto.SHA384, + KeyAlgoECDSA521: crypto.SHA512, + CertAlgoRSAv01: crypto.SHA1, + CertAlgoDSAv01: crypto.SHA1, + CertAlgoECDSA256v01: crypto.SHA256, + CertAlgoECDSA384v01: crypto.SHA384, + CertAlgoECDSA521v01: crypto.SHA512, +} + +// unexpectedMessageError results when the SSH message that we received didn't +// match what we wanted. +func unexpectedMessageError(expected, got uint8) error { + return fmt.Errorf("ssh: unexpected message type %d (expected %d)", got, expected) +} + +// parseError results from a malformed SSH message. +func parseError(tag uint8) error { + return fmt.Errorf("ssh: parse error in message type %d", tag) +} + +func findCommon(what string, client []string, server []string) (common string, err error) { + for _, c := range client { + for _, s := range server { + if c == s { + return c, nil + } + } + } + return "", fmt.Errorf("ssh: no common algorithm for %s; client offered: %v, server offered: %v", what, client, server) +} + +type directionAlgorithms struct { + Cipher string + MAC string + Compression string +} + +type algorithms struct { + kex string + hostKey string + w directionAlgorithms + r directionAlgorithms +} + +func findAgreedAlgorithms(clientKexInit, serverKexInit *kexInitMsg) (algs *algorithms, err error) { + result := &algorithms{} + + result.kex, err = findCommon("key exchange", clientKexInit.KexAlgos, serverKexInit.KexAlgos) + if err != nil { + return + } + + result.hostKey, err = findCommon("host key", clientKexInit.ServerHostKeyAlgos, serverKexInit.ServerHostKeyAlgos) + if err != nil { + return + } + + result.w.Cipher, err = findCommon("client to server cipher", clientKexInit.CiphersClientServer, serverKexInit.CiphersClientServer) + if err != nil { + return + } + + result.r.Cipher, err = findCommon("server to client cipher", clientKexInit.CiphersServerClient, serverKexInit.CiphersServerClient) + if err != nil { + return + } + + result.w.MAC, err = findCommon("client to server MAC", clientKexInit.MACsClientServer, serverKexInit.MACsClientServer) + if err != nil { + return + } + + result.r.MAC, err = findCommon("server to client MAC", clientKexInit.MACsServerClient, serverKexInit.MACsServerClient) + if err != nil { + return + } + + result.w.Compression, err = findCommon("client to server compression", clientKexInit.CompressionClientServer, serverKexInit.CompressionClientServer) + if err != nil { + return + } + + result.r.Compression, err = findCommon("server to client compression", clientKexInit.CompressionServerClient, serverKexInit.CompressionServerClient) + if err != nil { + return + } + + return result, nil +} + +// If rekeythreshold is too small, we can't make any progress sending +// stuff. +const minRekeyThreshold uint64 = 256 + +// Config contains configuration data common to both ServerConfig and +// ClientConfig. +type Config struct { + // Rand provides the source of entropy for cryptographic + // primitives. If Rand is nil, the cryptographic random reader + // in package crypto/rand will be used. + Rand io.Reader + + // The maximum number of bytes sent or received after which a + // new key is negotiated. It must be at least 256. If + // unspecified, 1 gigabyte is used. + RekeyThreshold uint64 + + // The allowed key exchanges algorithms. If unspecified then a + // default set of algorithms is used. + KeyExchanges []string + + // The allowed cipher algorithms. If unspecified then a sensible + // default is used. + Ciphers []string + + // The allowed MAC algorithms. If unspecified then a sensible default + // is used. + MACs []string +} + +// SetDefaults sets sensible values for unset fields in config. This is +// exported for testing: Configs passed to SSH functions are copied and have +// default values set automatically. +func (c *Config) SetDefaults() { + if c.Rand == nil { + c.Rand = rand.Reader + } + if c.Ciphers == nil { + c.Ciphers = supportedCiphers + } + var ciphers []string + for _, c := range c.Ciphers { + if cipherModes[c] != nil { + // reject the cipher if we have no cipherModes definition + ciphers = append(ciphers, c) + } + } + c.Ciphers = ciphers + + if c.KeyExchanges == nil { + c.KeyExchanges = supportedKexAlgos + } + + if c.MACs == nil { + c.MACs = supportedMACs + } + + if c.RekeyThreshold == 0 { + // RFC 4253, section 9 suggests rekeying after 1G. + c.RekeyThreshold = 1 << 30 + } + if c.RekeyThreshold < minRekeyThreshold { + c.RekeyThreshold = minRekeyThreshold + } +} + +// buildDataSignedForAuth returns the data that is signed in order to prove +// possession of a private key. See RFC 4252, section 7. +func buildDataSignedForAuth(sessionId []byte, req userAuthRequestMsg, algo, pubKey []byte) []byte { + data := struct { + Session []byte + Type byte + User string + Service string + Method string + Sign bool + Algo []byte + PubKey []byte + }{ + sessionId, + msgUserAuthRequest, + req.User, + req.Service, + req.Method, + true, + algo, + pubKey, + } + return Marshal(data) +} + +func appendU16(buf []byte, n uint16) []byte { + return append(buf, byte(n>>8), byte(n)) +} + +func appendU32(buf []byte, n uint32) []byte { + return append(buf, byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) +} + +func appendU64(buf []byte, n uint64) []byte { + return append(buf, + byte(n>>56), byte(n>>48), byte(n>>40), byte(n>>32), + byte(n>>24), byte(n>>16), byte(n>>8), byte(n)) +} + +func appendInt(buf []byte, n int) []byte { + return appendU32(buf, uint32(n)) +} + +func appendString(buf []byte, s string) []byte { + buf = appendU32(buf, uint32(len(s))) + buf = append(buf, s...) + return buf +} + +func appendBool(buf []byte, b bool) []byte { + if b { + return append(buf, 1) + } + return append(buf, 0) +} + +// newCond is a helper to hide the fact that there is no usable zero +// value for sync.Cond. +func newCond() *sync.Cond { return sync.NewCond(new(sync.Mutex)) } + +// window represents the buffer available to clients +// wishing to write to a channel. +type window struct { + *sync.Cond + win uint32 // RFC 4254 5.2 says the window size can grow to 2^32-1 + writeWaiters int + closed bool +} + +// add adds win to the amount of window available +// for consumers. +func (w *window) add(win uint32) bool { + // a zero sized window adjust is a noop. + if win == 0 { + return true + } + w.L.Lock() + if w.win+win < win { + w.L.Unlock() + return false + } + w.win += win + // It is unusual that multiple goroutines would be attempting to reserve + // window space, but not guaranteed. Use broadcast to notify all waiters + // that additional window is available. + w.Broadcast() + w.L.Unlock() + return true +} + +// close sets the window to closed, so all reservations fail +// immediately. +func (w *window) close() { + w.L.Lock() + w.closed = true + w.Broadcast() + w.L.Unlock() +} + +// reserve reserves win from the available window capacity. +// If no capacity remains, reserve will block. reserve may +// return less than requested. +func (w *window) reserve(win uint32) (uint32, error) { + var err error + w.L.Lock() + w.writeWaiters++ + w.Broadcast() + for w.win == 0 && !w.closed { + w.Wait() + } + w.writeWaiters-- + if w.win < win { + win = w.win + } + w.win -= win + if w.closed { + err = io.EOF + } + w.L.Unlock() + return win, err +} + +// waitWriterBlocked waits until some goroutine is blocked for further +// writes. It is used in tests only. +func (w *window) waitWriterBlocked() { + w.Cond.L.Lock() + for w.writeWaiters == 0 { + w.Cond.Wait() + } + w.Cond.L.Unlock() +} diff --git a/vendor/golang.org/x/crypto/ssh/connection.go b/vendor/golang.org/x/crypto/ssh/connection.go new file mode 100644 index 00000000..e786f2f9 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/connection.go @@ -0,0 +1,143 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "fmt" + "net" +) + +// OpenChannelError is returned if the other side rejects an +// OpenChannel request. +type OpenChannelError struct { + Reason RejectionReason + Message string +} + +func (e *OpenChannelError) Error() string { + return fmt.Sprintf("ssh: rejected: %s (%s)", e.Reason, e.Message) +} + +// ConnMetadata holds metadata for the connection. +type ConnMetadata interface { + // User returns the user ID for this connection. + User() string + + // SessionID returns the sesson hash, also denoted by H. + SessionID() []byte + + // ClientVersion returns the client's version string as hashed + // into the session ID. + ClientVersion() []byte + + // ServerVersion returns the server's version string as hashed + // into the session ID. + ServerVersion() []byte + + // RemoteAddr returns the remote address for this connection. + RemoteAddr() net.Addr + + // LocalAddr returns the local address for this connection. + LocalAddr() net.Addr +} + +// Conn represents an SSH connection for both server and client roles. +// Conn is the basis for implementing an application layer, such +// as ClientConn, which implements the traditional shell access for +// clients. +type Conn interface { + ConnMetadata + + // SendRequest sends a global request, and returns the + // reply. If wantReply is true, it returns the response status + // and payload. See also RFC4254, section 4. + SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) + + // OpenChannel tries to open an channel. If the request is + // rejected, it returns *OpenChannelError. On success it returns + // the SSH Channel and a Go channel for incoming, out-of-band + // requests. The Go channel must be serviced, or the + // connection will hang. + OpenChannel(name string, data []byte) (Channel, <-chan *Request, error) + + // Close closes the underlying network connection + Close() error + + // Wait blocks until the connection has shut down, and returns the + // error causing the shutdown. + Wait() error + + // TODO(hanwen): consider exposing: + // RequestKeyChange + // Disconnect +} + +// DiscardRequests consumes and rejects all requests from the +// passed-in channel. +func DiscardRequests(in <-chan *Request) { + for req := range in { + if req.WantReply { + req.Reply(false, nil) + } + } +} + +// A connection represents an incoming connection. +type connection struct { + transport *handshakeTransport + sshConn + + // The connection protocol. + *mux +} + +func (c *connection) Close() error { + return c.sshConn.conn.Close() +} + +// sshconn provides net.Conn metadata, but disallows direct reads and +// writes. +type sshConn struct { + conn net.Conn + + user string + sessionID []byte + clientVersion []byte + serverVersion []byte +} + +func dup(src []byte) []byte { + dst := make([]byte, len(src)) + copy(dst, src) + return dst +} + +func (c *sshConn) User() string { + return c.user +} + +func (c *sshConn) RemoteAddr() net.Addr { + return c.conn.RemoteAddr() +} + +func (c *sshConn) Close() error { + return c.conn.Close() +} + +func (c *sshConn) LocalAddr() net.Addr { + return c.conn.LocalAddr() +} + +func (c *sshConn) SessionID() []byte { + return dup(c.sessionID) +} + +func (c *sshConn) ClientVersion() []byte { + return dup(c.clientVersion) +} + +func (c *sshConn) ServerVersion() []byte { + return dup(c.serverVersion) +} diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go new file mode 100644 index 00000000..d6be8946 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/doc.go @@ -0,0 +1,18 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package ssh implements an SSH client and server. + +SSH is a transport security protocol, an authentication protocol and a +family of application protocols. The most typical application level +protocol is a remote shell and this is specifically implemented. However, +the multiplexed nature of SSH is exposed to users that wish to support +others. + +References: + [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD + [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 +*/ +package ssh // import "golang.org/x/crypto/ssh" diff --git a/vendor/golang.org/x/crypto/ssh/example_test.go b/vendor/golang.org/x/crypto/ssh/example_test.go new file mode 100644 index 00000000..4d2eabd0 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/example_test.go @@ -0,0 +1,262 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh_test + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net" + "net/http" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/terminal" +) + +func ExampleNewServerConn() { + // Public key authentication is done by comparing + // the public key of a received connection + // with the entries in the authorized_keys file. + authorizedKeysBytes, err := ioutil.ReadFile("authorized_keys") + if err != nil { + log.Fatalf("Failed to load authorized_keys, err: %v", err) + } + + authorizedKeysMap := map[string]bool{} + for len(authorizedKeysBytes) > 0 { + pubKey, _, _, rest, err := ssh.ParseAuthorizedKey(authorizedKeysBytes) + if err != nil { + log.Fatal(err) + } + + authorizedKeysMap[string(pubKey.Marshal())] = true + authorizedKeysBytes = rest + } + + // An SSH server is represented by a ServerConfig, which holds + // certificate details and handles authentication of ServerConns. + config := &ssh.ServerConfig{ + // Remove to disable password auth. + PasswordCallback: func(c ssh.ConnMetadata, pass []byte) (*ssh.Permissions, error) { + // Should use constant-time compare (or better, salt+hash) in + // a production setting. + if c.User() == "testuser" && string(pass) == "tiger" { + return nil, nil + } + return nil, fmt.Errorf("password rejected for %q", c.User()) + }, + + // Remove to disable public key auth. + PublicKeyCallback: func(c ssh.ConnMetadata, pubKey ssh.PublicKey) (*ssh.Permissions, error) { + if authorizedKeysMap[string(pubKey.Marshal())] { + return nil, nil + } + return nil, fmt.Errorf("unknown public key for %q", c.User()) + }, + } + + privateBytes, err := ioutil.ReadFile("id_rsa") + if err != nil { + log.Fatal("Failed to load private key: ", err) + } + + private, err := ssh.ParsePrivateKey(privateBytes) + if err != nil { + log.Fatal("Failed to parse private key: ", err) + } + + config.AddHostKey(private) + + // Once a ServerConfig has been configured, connections can be + // accepted. + listener, err := net.Listen("tcp", "0.0.0.0:2022") + if err != nil { + log.Fatal("failed to listen for connection: ", err) + } + nConn, err := listener.Accept() + if err != nil { + log.Fatal("failed to accept incoming connection: ", err) + } + + // Before use, a handshake must be performed on the incoming + // net.Conn. + _, chans, reqs, err := ssh.NewServerConn(nConn, config) + if err != nil { + log.Fatal("failed to handshake: ", err) + } + // The incoming Request channel must be serviced. + go ssh.DiscardRequests(reqs) + + // Service the incoming Channel channel. + + // Service the incoming Channel channel. + for newChannel := range chans { + // Channels have a type, depending on the application level + // protocol intended. In the case of a shell, the type is + // "session" and ServerShell may be used to present a simple + // terminal interface. + if newChannel.ChannelType() != "session" { + newChannel.Reject(ssh.UnknownChannelType, "unknown channel type") + continue + } + channel, requests, err := newChannel.Accept() + if err != nil { + log.Fatalf("Could not accept channel: %v", err) + } + + // Sessions have out-of-band requests such as "shell", + // "pty-req" and "env". Here we handle only the + // "shell" request. + go func(in <-chan *ssh.Request) { + for req := range in { + req.Reply(req.Type == "shell", nil) + } + }(requests) + + term := terminal.NewTerminal(channel, "> ") + + go func() { + defer channel.Close() + for { + line, err := term.ReadLine() + if err != nil { + break + } + fmt.Println(line) + } + }() + } +} + +func ExampleDial() { + // An SSH client is represented with a ClientConn. + // + // To authenticate with the remote server you must pass at least one + // implementation of AuthMethod via the Auth field in ClientConfig. + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("yourpassword"), + }, + } + client, err := ssh.Dial("tcp", "yourserver.com:22", config) + if err != nil { + log.Fatal("Failed to dial: ", err) + } + + // Each ClientConn can support multiple interactive sessions, + // represented by a Session. + session, err := client.NewSession() + if err != nil { + log.Fatal("Failed to create session: ", err) + } + defer session.Close() + + // Once a Session is created, you can execute a single command on + // the remote side using the Run method. + var b bytes.Buffer + session.Stdout = &b + if err := session.Run("/usr/bin/whoami"); err != nil { + log.Fatal("Failed to run: " + err.Error()) + } + fmt.Println(b.String()) +} + +func ExamplePublicKeys() { + // A public key may be used to authenticate against the remote + // server by using an unencrypted PEM-encoded private key file. + // + // If you have an encrypted private key, the crypto/x509 package + // can be used to decrypt it. + key, err := ioutil.ReadFile("/home/user/.ssh/id_rsa") + if err != nil { + log.Fatalf("unable to read private key: %v", err) + } + + // Create the Signer for this private key. + signer, err := ssh.ParsePrivateKey(key) + if err != nil { + log.Fatalf("unable to parse private key: %v", err) + } + + config := &ssh.ClientConfig{ + User: "user", + Auth: []ssh.AuthMethod{ + // Use the PublicKeys method for remote authentication. + ssh.PublicKeys(signer), + }, + } + + // Connect to the remote server and perform the SSH handshake. + client, err := ssh.Dial("tcp", "host.com:22", config) + if err != nil { + log.Fatalf("unable to connect: %v", err) + } + defer client.Close() +} + +func ExampleClient_Listen() { + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("password"), + }, + } + // Dial your ssh server. + conn, err := ssh.Dial("tcp", "localhost:22", config) + if err != nil { + log.Fatal("unable to connect: ", err) + } + defer conn.Close() + + // Request the remote side to open port 8080 on all interfaces. + l, err := conn.Listen("tcp", "0.0.0.0:8080") + if err != nil { + log.Fatal("unable to register tcp forward: ", err) + } + defer l.Close() + + // Serve HTTP with your SSH server acting as a reverse proxy. + http.Serve(l, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { + fmt.Fprintf(resp, "Hello world!\n") + })) +} + +func ExampleSession_RequestPty() { + // Create client config + config := &ssh.ClientConfig{ + User: "username", + Auth: []ssh.AuthMethod{ + ssh.Password("password"), + }, + } + // Connect to ssh server + conn, err := ssh.Dial("tcp", "localhost:22", config) + if err != nil { + log.Fatal("unable to connect: ", err) + } + defer conn.Close() + // Create a session + session, err := conn.NewSession() + if err != nil { + log.Fatal("unable to create session: ", err) + } + defer session.Close() + // Set up terminal modes + modes := ssh.TerminalModes{ + ssh.ECHO: 0, // disable echoing + ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud + ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud + } + // Request pseudo terminal + if err := session.RequestPty("xterm", 40, 80, modes); err != nil { + log.Fatal("request for pseudo terminal failed: ", err) + } + // Start remote shell + if err := session.Shell(); err != nil { + log.Fatal("failed to start shell: ", err) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go new file mode 100644 index 00000000..37d42e47 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -0,0 +1,460 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto/rand" + "errors" + "fmt" + "io" + "log" + "net" + "sync" +) + +// debugHandshake, if set, prints messages sent and received. Key +// exchange messages are printed as if DH were used, so the debug +// messages are wrong when using ECDH. +const debugHandshake = false + +// keyingTransport is a packet based transport that supports key +// changes. It need not be thread-safe. It should pass through +// msgNewKeys in both directions. +type keyingTransport interface { + packetConn + + // prepareKeyChange sets up a key change. The key change for a + // direction will be effected if a msgNewKeys message is sent + // or received. + prepareKeyChange(*algorithms, *kexResult) error +} + +// handshakeTransport implements rekeying on top of a keyingTransport +// and offers a thread-safe writePacket() interface. +type handshakeTransport struct { + conn keyingTransport + config *Config + + serverVersion []byte + clientVersion []byte + + // hostKeys is non-empty if we are the server. In that case, + // it contains all host keys that can be used to sign the + // connection. + hostKeys []Signer + + // hostKeyAlgorithms is non-empty if we are the client. In that case, + // we accept these key types from the server as host key. + hostKeyAlgorithms []string + + // On read error, incoming is closed, and readError is set. + incoming chan []byte + readError error + + // data for host key checking + hostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error + dialAddress string + remoteAddr net.Addr + + readSinceKex uint64 + + // Protects the writing side of the connection + mu sync.Mutex + cond *sync.Cond + sentInitPacket []byte + sentInitMsg *kexInitMsg + writtenSinceKex uint64 + writeError error + + // The session ID or nil if first kex did not complete yet. + sessionID []byte +} + +func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, serverVersion []byte) *handshakeTransport { + t := &handshakeTransport{ + conn: conn, + serverVersion: serverVersion, + clientVersion: clientVersion, + incoming: make(chan []byte, 16), + config: config, + } + t.cond = sync.NewCond(&t.mu) + return t +} + +func newClientTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ClientConfig, dialAddr string, addr net.Addr) *handshakeTransport { + t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) + t.dialAddress = dialAddr + t.remoteAddr = addr + t.hostKeyCallback = config.HostKeyCallback + if config.HostKeyAlgorithms != nil { + t.hostKeyAlgorithms = config.HostKeyAlgorithms + } else { + t.hostKeyAlgorithms = supportedHostKeyAlgos + } + go t.readLoop() + return t +} + +func newServerTransport(conn keyingTransport, clientVersion, serverVersion []byte, config *ServerConfig) *handshakeTransport { + t := newHandshakeTransport(conn, &config.Config, clientVersion, serverVersion) + t.hostKeys = config.hostKeys + go t.readLoop() + return t +} + +func (t *handshakeTransport) getSessionID() []byte { + return t.sessionID +} + +func (t *handshakeTransport) id() string { + if len(t.hostKeys) > 0 { + return "server" + } + return "client" +} + +func (t *handshakeTransport) readPacket() ([]byte, error) { + p, ok := <-t.incoming + if !ok { + return nil, t.readError + } + return p, nil +} + +func (t *handshakeTransport) readLoop() { + for { + p, err := t.readOnePacket() + if err != nil { + t.readError = err + close(t.incoming) + break + } + if p[0] == msgIgnore || p[0] == msgDebug { + continue + } + t.incoming <- p + } + + // If we can't read, declare the writing part dead too. + t.mu.Lock() + defer t.mu.Unlock() + if t.writeError == nil { + t.writeError = t.readError + } + t.cond.Broadcast() +} + +func (t *handshakeTransport) readOnePacket() ([]byte, error) { + if t.readSinceKex > t.config.RekeyThreshold { + if err := t.requestKeyChange(); err != nil { + return nil, err + } + } + + p, err := t.conn.readPacket() + if err != nil { + return nil, err + } + + t.readSinceKex += uint64(len(p)) + if debugHandshake { + if p[0] == msgChannelData || p[0] == msgChannelExtendedData { + log.Printf("%s got data (packet %d bytes)", t.id(), len(p)) + } else { + msg, err := decode(p) + log.Printf("%s got %T %v (%v)", t.id(), msg, msg, err) + } + } + if p[0] != msgKexInit { + return p, nil + } + + t.mu.Lock() + + firstKex := t.sessionID == nil + + err = t.enterKeyExchangeLocked(p) + if err != nil { + // drop connection + t.conn.Close() + t.writeError = err + } + + if debugHandshake { + log.Printf("%s exited key exchange (first %v), err %v", t.id(), firstKex, err) + } + + // Unblock writers. + t.sentInitMsg = nil + t.sentInitPacket = nil + t.cond.Broadcast() + t.writtenSinceKex = 0 + t.mu.Unlock() + + if err != nil { + return nil, err + } + + t.readSinceKex = 0 + + // By default, a key exchange is hidden from higher layers by + // translating it into msgIgnore. + successPacket := []byte{msgIgnore} + if firstKex { + // sendKexInit() for the first kex waits for + // msgNewKeys so the authentication process is + // guaranteed to happen over an encrypted transport. + successPacket = []byte{msgNewKeys} + } + + return successPacket, nil +} + +// keyChangeCategory describes whether a key exchange is the first on a +// connection, or a subsequent one. +type keyChangeCategory bool + +const ( + firstKeyExchange keyChangeCategory = true + subsequentKeyExchange keyChangeCategory = false +) + +// sendKexInit sends a key change message, and returns the message +// that was sent. After initiating the key change, all writes will be +// blocked until the change is done, and a failed key change will +// close the underlying transport. This function is safe for +// concurrent use by multiple goroutines. +func (t *handshakeTransport) sendKexInit(isFirst keyChangeCategory) error { + var err error + + t.mu.Lock() + // If this is the initial key change, but we already have a sessionID, + // then do nothing because the key exchange has already completed + // asynchronously. + if !isFirst || t.sessionID == nil { + _, _, err = t.sendKexInitLocked(isFirst) + } + t.mu.Unlock() + if err != nil { + return err + } + if isFirst { + if packet, err := t.readPacket(); err != nil { + return err + } else if packet[0] != msgNewKeys { + return unexpectedMessageError(msgNewKeys, packet[0]) + } + } + return nil +} + +func (t *handshakeTransport) requestInitialKeyChange() error { + return t.sendKexInit(firstKeyExchange) +} + +func (t *handshakeTransport) requestKeyChange() error { + return t.sendKexInit(subsequentKeyExchange) +} + +// sendKexInitLocked sends a key change message. t.mu must be locked +// while this happens. +func (t *handshakeTransport) sendKexInitLocked(isFirst keyChangeCategory) (*kexInitMsg, []byte, error) { + // kexInits may be sent either in response to the other side, + // or because our side wants to initiate a key change, so we + // may have already sent a kexInit. In that case, don't send a + // second kexInit. + if t.sentInitMsg != nil { + return t.sentInitMsg, t.sentInitPacket, nil + } + + msg := &kexInitMsg{ + KexAlgos: t.config.KeyExchanges, + CiphersClientServer: t.config.Ciphers, + CiphersServerClient: t.config.Ciphers, + MACsClientServer: t.config.MACs, + MACsServerClient: t.config.MACs, + CompressionClientServer: supportedCompressions, + CompressionServerClient: supportedCompressions, + } + io.ReadFull(rand.Reader, msg.Cookie[:]) + + if len(t.hostKeys) > 0 { + for _, k := range t.hostKeys { + msg.ServerHostKeyAlgos = append( + msg.ServerHostKeyAlgos, k.PublicKey().Type()) + } + } else { + msg.ServerHostKeyAlgos = t.hostKeyAlgorithms + } + packet := Marshal(msg) + + // writePacket destroys the contents, so save a copy. + packetCopy := make([]byte, len(packet)) + copy(packetCopy, packet) + + if err := t.conn.writePacket(packetCopy); err != nil { + return nil, nil, err + } + + t.sentInitMsg = msg + t.sentInitPacket = packet + return msg, packet, nil +} + +func (t *handshakeTransport) writePacket(p []byte) error { + t.mu.Lock() + defer t.mu.Unlock() + + if t.writtenSinceKex > t.config.RekeyThreshold { + t.sendKexInitLocked(subsequentKeyExchange) + } + for t.sentInitMsg != nil && t.writeError == nil { + t.cond.Wait() + } + if t.writeError != nil { + return t.writeError + } + t.writtenSinceKex += uint64(len(p)) + + switch p[0] { + case msgKexInit: + return errors.New("ssh: only handshakeTransport can send kexInit") + case msgNewKeys: + return errors.New("ssh: only handshakeTransport can send newKeys") + default: + return t.conn.writePacket(p) + } +} + +func (t *handshakeTransport) Close() error { + return t.conn.Close() +} + +// enterKeyExchange runs the key exchange. t.mu must be held while running this. +func (t *handshakeTransport) enterKeyExchangeLocked(otherInitPacket []byte) error { + if debugHandshake { + log.Printf("%s entered key exchange", t.id()) + } + myInit, myInitPacket, err := t.sendKexInitLocked(subsequentKeyExchange) + if err != nil { + return err + } + + otherInit := &kexInitMsg{} + if err := Unmarshal(otherInitPacket, otherInit); err != nil { + return err + } + + magics := handshakeMagics{ + clientVersion: t.clientVersion, + serverVersion: t.serverVersion, + clientKexInit: otherInitPacket, + serverKexInit: myInitPacket, + } + + clientInit := otherInit + serverInit := myInit + if len(t.hostKeys) == 0 { + clientInit = myInit + serverInit = otherInit + + magics.clientKexInit = myInitPacket + magics.serverKexInit = otherInitPacket + } + + algs, err := findAgreedAlgorithms(clientInit, serverInit) + if err != nil { + return err + } + + // We don't send FirstKexFollows, but we handle receiving it. + // + // RFC 4253 section 7 defines the kex and the agreement method for + // first_kex_packet_follows. It states that the guessed packet + // should be ignored if the "kex algorithm and/or the host + // key algorithm is guessed wrong (server and client have + // different preferred algorithm), or if any of the other + // algorithms cannot be agreed upon". The other algorithms have + // already been checked above so the kex algorithm and host key + // algorithm are checked here. + if otherInit.FirstKexFollows && (clientInit.KexAlgos[0] != serverInit.KexAlgos[0] || clientInit.ServerHostKeyAlgos[0] != serverInit.ServerHostKeyAlgos[0]) { + // other side sent a kex message for the wrong algorithm, + // which we have to ignore. + if _, err := t.conn.readPacket(); err != nil { + return err + } + } + + kex, ok := kexAlgoMap[algs.kex] + if !ok { + return fmt.Errorf("ssh: unexpected key exchange algorithm %v", algs.kex) + } + + var result *kexResult + if len(t.hostKeys) > 0 { + result, err = t.server(kex, algs, &magics) + } else { + result, err = t.client(kex, algs, &magics) + } + + if err != nil { + return err + } + + if t.sessionID == nil { + t.sessionID = result.H + } + result.SessionID = t.sessionID + + t.conn.prepareKeyChange(algs, result) + if err = t.conn.writePacket([]byte{msgNewKeys}); err != nil { + return err + } + if packet, err := t.conn.readPacket(); err != nil { + return err + } else if packet[0] != msgNewKeys { + return unexpectedMessageError(msgNewKeys, packet[0]) + } + + return nil +} + +func (t *handshakeTransport) server(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { + var hostKey Signer + for _, k := range t.hostKeys { + if algs.hostKey == k.PublicKey().Type() { + hostKey = k + } + } + + r, err := kex.Server(t.conn, t.config.Rand, magics, hostKey) + return r, err +} + +func (t *handshakeTransport) client(kex kexAlgorithm, algs *algorithms, magics *handshakeMagics) (*kexResult, error) { + result, err := kex.Client(t.conn, t.config.Rand, magics) + if err != nil { + return nil, err + } + + hostKey, err := ParsePublicKey(result.HostKey) + if err != nil { + return nil, err + } + + if err := verifyHostKeySignature(hostKey, result); err != nil { + return nil, err + } + + if t.hostKeyCallback != nil { + err = t.hostKeyCallback(t.dialAddress, t.remoteAddr, hostKey) + if err != nil { + return nil, err + } + } + + return result, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/handshake_test.go b/vendor/golang.org/x/crypto/ssh/handshake_test.go new file mode 100644 index 00000000..da53d3a0 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/handshake_test.go @@ -0,0 +1,486 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "errors" + "fmt" + "net" + "reflect" + "runtime" + "strings" + "sync" + "testing" +) + +type testChecker struct { + calls []string +} + +func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { + if dialAddr == "bad" { + return fmt.Errorf("dialAddr is bad") + } + + if tcpAddr, ok := addr.(*net.TCPAddr); !ok || tcpAddr == nil { + return fmt.Errorf("testChecker: got %T want *net.TCPAddr", addr) + } + + t.calls = append(t.calls, fmt.Sprintf("%s %v %s %x", dialAddr, addr, key.Type(), key.Marshal())) + + return nil +} + +// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and +// therefore is buffered (net.Pipe deadlocks if both sides start with +// a write.) +func netPipe() (net.Conn, net.Conn, error) { + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("tcp", listener.Addr().String()) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1, c2, nil +} + +func handshakePair(clientConf *ClientConfig, addr string) (client *handshakeTransport, server *handshakeTransport, err error) { + a, b, err := netPipe() + if err != nil { + return nil, nil, err + } + + trC := newTransport(a, rand.Reader, true) + trS := newTransport(b, rand.Reader, false) + clientConf.SetDefaults() + + v := []byte("version") + client = newClientTransport(trC, v, v, clientConf, addr, a.RemoteAddr()) + + serverConf := &ServerConfig{} + serverConf.AddHostKey(testSigners["ecdsa"]) + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.SetDefaults() + server = newServerTransport(trS, v, v, serverConf) + + return client, server, nil +} + +func TestHandshakeBasic(t *testing.T) { + if runtime.GOOS == "plan9" { + t.Skip("see golang.org/issue/7237") + } + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + go func() { + // Client writes a bunch of stuff, and does a key + // change in the middle. This should not confuse the + // handshake in progress + for i := 0; i < 10; i++ { + p := []byte{msgRequestSuccess, byte(i)} + if err := trC.writePacket(p); err != nil { + t.Fatalf("sendPacket: %v", err) + } + if i == 5 { + // halfway through, we request a key change. + err := trC.sendKexInit(subsequentKeyExchange) + if err != nil { + t.Fatalf("sendKexInit: %v", err) + } + } + } + trC.Close() + }() + + // Server checks that client messages come in cleanly + i := 0 + for { + p, err := trS.readPacket() + if err != nil { + break + } + if p[0] == msgNewKeys { + continue + } + want := []byte{msgRequestSuccess, byte(i)} + if bytes.Compare(p, want) != 0 { + t.Errorf("message %d: got %q, want %q", i, p, want) + } + i++ + } + if i != 10 { + t.Errorf("received %d messages, want 10.", i) + } + + // If all went well, we registered exactly 1 key change. + if len(checker.calls) != 1 { + t.Fatalf("got %d host key checks, want 1", len(checker.calls)) + } + + pub := testSigners["ecdsa"].PublicKey() + want := fmt.Sprintf("%s %v %s %x", "addr", trC.remoteAddr, pub.Type(), pub.Marshal()) + if want != checker.calls[0] { + t.Errorf("got %q want %q for host key check", checker.calls[0], want) + } +} + +func TestHandshakeError(t *testing.T) { + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "bad") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + // send a packet + packet := []byte{msgRequestSuccess, 42} + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + + // Now request a key change. + err = trC.sendKexInit(subsequentKeyExchange) + if err != nil { + t.Errorf("sendKexInit: %v", err) + } + + // the key change will fail, and afterwards we can't write. + if err := trC.writePacket([]byte{msgRequestSuccess, 43}); err == nil { + t.Errorf("writePacket after botched rekey succeeded.") + } + + readback, err := trS.readPacket() + if err != nil { + t.Fatalf("server closed too soon: %v", err) + } + if bytes.Compare(readback, packet) != 0 { + t.Errorf("got %q want %q", readback, packet) + } + readback, err = trS.readPacket() + if err == nil { + t.Errorf("got a message %q after failed key change", readback) + } +} + +func TestForceFirstKex(t *testing.T) { + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + trC.writePacket(Marshal(&serviceRequestMsg{serviceUserAuth})) + + // We setup the initial key exchange, but the remote side + // tries to send serviceRequestMsg in cleartext, which is + // disallowed. + + err = trS.sendKexInit(firstKeyExchange) + if err == nil { + t.Errorf("server first kex init should reject unexpected packet") + } +} + +func TestHandshakeTwice(t *testing.T) { + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + // Both sides should ask for the first key exchange first. + err = trS.sendKexInit(firstKeyExchange) + if err != nil { + t.Errorf("server sendKexInit: %v", err) + } + + err = trC.sendKexInit(firstKeyExchange) + if err != nil { + t.Errorf("client sendKexInit: %v", err) + } + + sent := 0 + // send a packet + packet := make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + sent++ + + // Send another packet. Use a fresh one, since writePacket destroys. + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + sent++ + + // 2nd key change. + err = trC.sendKexInit(subsequentKeyExchange) + if err != nil { + t.Errorf("sendKexInit: %v", err) + } + + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + sent++ + + packet = make([]byte, 5) + packet[0] = msgRequestSuccess + for i := 0; i < sent; i++ { + msg, err := trS.readPacket() + if err != nil { + t.Fatalf("server closed too soon: %v", err) + } + + if bytes.Compare(msg, packet) != 0 { + t.Errorf("packet %d: got %q want %q", i, msg, packet) + } + } + if len(checker.calls) != 2 { + t.Errorf("got %d key changes, want 2", len(checker.calls)) + } +} + +func TestHandshakeAutoRekeyWrite(t *testing.T) { + checker := &testChecker{} + clientConf := &ClientConfig{HostKeyCallback: checker.Check} + clientConf.RekeyThreshold = 500 + trC, trS, err := handshakePair(clientConf, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + for i := 0; i < 5; i++ { + packet := make([]byte, 251) + packet[0] = msgRequestSuccess + if err := trC.writePacket(packet); err != nil { + t.Errorf("writePacket: %v", err) + } + } + + j := 0 + for ; j < 5; j++ { + _, err := trS.readPacket() + if err != nil { + break + } + } + + if j != 5 { + t.Errorf("got %d, want 5 messages", j) + } + + if len(checker.calls) != 2 { + t.Errorf("got %d key changes, wanted 2", len(checker.calls)) + } +} + +type syncChecker struct { + called chan int +} + +func (t *syncChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error { + t.called <- 1 + return nil +} + +func TestHandshakeAutoRekeyRead(t *testing.T) { + sync := &syncChecker{make(chan int, 2)} + clientConf := &ClientConfig{ + HostKeyCallback: sync.Check, + } + clientConf.RekeyThreshold = 500 + + trC, trS, err := handshakePair(clientConf, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + defer trC.Close() + defer trS.Close() + + packet := make([]byte, 501) + packet[0] = msgRequestSuccess + if err := trS.writePacket(packet); err != nil { + t.Fatalf("writePacket: %v", err) + } + // While we read out the packet, a key change will be + // initiated. + if _, err := trC.readPacket(); err != nil { + t.Fatalf("readPacket(client): %v", err) + } + + <-sync.called +} + +// errorKeyingTransport generates errors after a given number of +// read/write operations. +type errorKeyingTransport struct { + packetConn + readLeft, writeLeft int +} + +func (n *errorKeyingTransport) prepareKeyChange(*algorithms, *kexResult) error { + return nil +} +func (n *errorKeyingTransport) getSessionID() []byte { + return nil +} + +func (n *errorKeyingTransport) writePacket(packet []byte) error { + if n.writeLeft == 0 { + n.Close() + return errors.New("barf") + } + + n.writeLeft-- + return n.packetConn.writePacket(packet) +} + +func (n *errorKeyingTransport) readPacket() ([]byte, error) { + if n.readLeft == 0 { + n.Close() + return nil, errors.New("barf") + } + + n.readLeft-- + return n.packetConn.readPacket() +} + +func TestHandshakeErrorHandlingRead(t *testing.T) { + for i := 0; i < 20; i++ { + testHandshakeErrorHandlingN(t, i, -1) + } +} + +func TestHandshakeErrorHandlingWrite(t *testing.T) { + for i := 0; i < 20; i++ { + testHandshakeErrorHandlingN(t, -1, i) + } +} + +// testHandshakeErrorHandlingN runs handshakes, injecting errors. If +// handshakeTransport deadlocks, the go runtime will detect it and +// panic. +func testHandshakeErrorHandlingN(t *testing.T, readLimit, writeLimit int) { + msg := Marshal(&serviceRequestMsg{strings.Repeat("x", int(minRekeyThreshold)/4)}) + + a, b := memPipe() + defer a.Close() + defer b.Close() + + key := testSigners["ecdsa"] + serverConf := Config{RekeyThreshold: minRekeyThreshold} + serverConf.SetDefaults() + serverConn := newHandshakeTransport(&errorKeyingTransport{a, readLimit, writeLimit}, &serverConf, []byte{'a'}, []byte{'b'}) + serverConn.hostKeys = []Signer{key} + go serverConn.readLoop() + + clientConf := Config{RekeyThreshold: 10 * minRekeyThreshold} + clientConf.SetDefaults() + clientConn := newHandshakeTransport(&errorKeyingTransport{b, -1, -1}, &clientConf, []byte{'a'}, []byte{'b'}) + clientConn.hostKeyAlgorithms = []string{key.PublicKey().Type()} + go clientConn.readLoop() + + var wg sync.WaitGroup + wg.Add(4) + + for _, hs := range []packetConn{serverConn, clientConn} { + go func(c packetConn) { + for { + err := c.writePacket(msg) + if err != nil { + break + } + } + wg.Done() + }(hs) + go func(c packetConn) { + for { + _, err := c.readPacket() + if err != nil { + break + } + } + wg.Done() + }(hs) + } + + wg.Wait() +} + +func TestDisconnect(t *testing.T) { + if runtime.GOOS == "plan9" { + t.Skip("see golang.org/issue/7237") + } + checker := &testChecker{} + trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr") + if err != nil { + t.Fatalf("handshakePair: %v", err) + } + + defer trC.Close() + defer trS.Close() + + trC.writePacket([]byte{msgRequestSuccess, 0, 0}) + errMsg := &disconnectMsg{ + Reason: 42, + Message: "such is life", + } + trC.writePacket(Marshal(errMsg)) + trC.writePacket([]byte{msgRequestSuccess, 0, 0}) + + packet, err := trS.readPacket() + if err != nil { + t.Fatalf("readPacket 1: %v", err) + } + if packet[0] != msgRequestSuccess { + t.Errorf("got packet %v, want packet type %d", packet, msgRequestSuccess) + } + + _, err = trS.readPacket() + if err == nil { + t.Errorf("readPacket 2 succeeded") + } else if !reflect.DeepEqual(err, errMsg) { + t.Errorf("got error %#v, want %#v", err, errMsg) + } + + _, err = trS.readPacket() + if err == nil { + t.Errorf("readPacket 3 succeeded") + } +} diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go new file mode 100644 index 00000000..9285ee31 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/kex.go @@ -0,0 +1,526 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "crypto" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/subtle" + "errors" + "io" + "math/big" + + "golang.org/x/crypto/curve25519" +) + +const ( + kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" + kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" + kexAlgoECDH256 = "ecdh-sha2-nistp256" + kexAlgoECDH384 = "ecdh-sha2-nistp384" + kexAlgoECDH521 = "ecdh-sha2-nistp521" + kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" +) + +// kexResult captures the outcome of a key exchange. +type kexResult struct { + // Session hash. See also RFC 4253, section 8. + H []byte + + // Shared secret. See also RFC 4253, section 8. + K []byte + + // Host key as hashed into H. + HostKey []byte + + // Signature of H. + Signature []byte + + // A cryptographic hash function that matches the security + // level of the key exchange algorithm. It is used for + // calculating H, and for deriving keys from H and K. + Hash crypto.Hash + + // The session ID, which is the first H computed. This is used + // to derive key material inside the transport. + SessionID []byte +} + +// handshakeMagics contains data that is always included in the +// session hash. +type handshakeMagics struct { + clientVersion, serverVersion []byte + clientKexInit, serverKexInit []byte +} + +func (m *handshakeMagics) write(w io.Writer) { + writeString(w, m.clientVersion) + writeString(w, m.serverVersion) + writeString(w, m.clientKexInit) + writeString(w, m.serverKexInit) +} + +// kexAlgorithm abstracts different key exchange algorithms. +type kexAlgorithm interface { + // Server runs server-side key agreement, signing the result + // with a hostkey. + Server(p packetConn, rand io.Reader, magics *handshakeMagics, s Signer) (*kexResult, error) + + // Client runs the client-side key agreement. Caller is + // responsible for verifying the host key signature. + Client(p packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) +} + +// dhGroup is a multiplicative group suitable for implementing Diffie-Hellman key agreement. +type dhGroup struct { + g, p *big.Int +} + +func (group *dhGroup) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { + if theirPublic.Sign() <= 0 || theirPublic.Cmp(group.p) >= 0 { + return nil, errors.New("ssh: DH parameter out of bounds") + } + return new(big.Int).Exp(theirPublic, myPrivate, group.p), nil +} + +func (group *dhGroup) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { + hashFunc := crypto.SHA1 + + x, err := rand.Int(randSource, group.p) + if err != nil { + return nil, err + } + X := new(big.Int).Exp(group.g, x, group.p) + kexDHInit := kexDHInitMsg{ + X: X, + } + if err := c.writePacket(Marshal(&kexDHInit)); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexDHReply kexDHReplyMsg + if err = Unmarshal(packet, &kexDHReply); err != nil { + return nil, err + } + + kInt, err := group.diffieHellman(kexDHReply.Y, x) + if err != nil { + return nil, err + } + + h := hashFunc.New() + magics.write(h) + writeString(h, kexDHReply.HostKey) + writeInt(h, X) + writeInt(h, kexDHReply.Y) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: kexDHReply.HostKey, + Signature: kexDHReply.Signature, + Hash: crypto.SHA1, + }, nil +} + +func (group *dhGroup) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + hashFunc := crypto.SHA1 + packet, err := c.readPacket() + if err != nil { + return + } + var kexDHInit kexDHInitMsg + if err = Unmarshal(packet, &kexDHInit); err != nil { + return + } + + y, err := rand.Int(randSource, group.p) + if err != nil { + return + } + + Y := new(big.Int).Exp(group.g, y, group.p) + kInt, err := group.diffieHellman(kexDHInit.X, y) + if err != nil { + return nil, err + } + + hostKeyBytes := priv.PublicKey().Marshal() + + h := hashFunc.New() + magics.write(h) + writeString(h, hostKeyBytes) + writeInt(h, kexDHInit.X) + writeInt(h, Y) + + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + H := h.Sum(nil) + + // H is already a hash, but the hostkey signing will apply its + // own key-specific hash algorithm. + sig, err := signAndMarshal(priv, randSource, H) + if err != nil { + return nil, err + } + + kexDHReply := kexDHReplyMsg{ + HostKey: hostKeyBytes, + Y: Y, + Signature: sig, + } + packet = Marshal(&kexDHReply) + + err = c.writePacket(packet) + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA1, + }, nil +} + +// ecdh performs Elliptic Curve Diffie-Hellman key exchange as +// described in RFC 5656, section 4. +type ecdh struct { + curve elliptic.Curve +} + +func (kex *ecdh) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + ephKey, err := ecdsa.GenerateKey(kex.curve, rand) + if err != nil { + return nil, err + } + + kexInit := kexECDHInitMsg{ + ClientPubKey: elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y), + } + + serialized := Marshal(&kexInit) + if err := c.writePacket(serialized); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + + x, y, err := unmarshalECKey(kex.curve, reply.EphemeralPubKey) + if err != nil { + return nil, err + } + + // generate shared secret + secret, _ := kex.curve.ScalarMult(x, y, ephKey.D.Bytes()) + + h := ecHash(kex.curve).New() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, kexInit.ClientPubKey) + writeString(h, reply.EphemeralPubKey) + K := make([]byte, intLength(secret)) + marshalInt(K, secret) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: ecHash(kex.curve), + }, nil +} + +// unmarshalECKey parses and checks an EC key. +func unmarshalECKey(curve elliptic.Curve, pubkey []byte) (x, y *big.Int, err error) { + x, y = elliptic.Unmarshal(curve, pubkey) + if x == nil { + return nil, nil, errors.New("ssh: elliptic.Unmarshal failure") + } + if !validateECPublicKey(curve, x, y) { + return nil, nil, errors.New("ssh: public key not on curve") + } + return x, y, nil +} + +// validateECPublicKey checks that the point is a valid public key for +// the given curve. See [SEC1], 3.2.2 +func validateECPublicKey(curve elliptic.Curve, x, y *big.Int) bool { + if x.Sign() == 0 && y.Sign() == 0 { + return false + } + + if x.Cmp(curve.Params().P) >= 0 { + return false + } + + if y.Cmp(curve.Params().P) >= 0 { + return false + } + + if !curve.IsOnCurve(x, y) { + return false + } + + // We don't check if N * PubKey == 0, since + // + // - the NIST curves have cofactor = 1, so this is implicit. + // (We don't foresee an implementation that supports non NIST + // curves) + // + // - for ephemeral keys, we don't need to worry about small + // subgroup attacks. + return true +} + +func (kex *ecdh) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexECDHInit kexECDHInitMsg + if err = Unmarshal(packet, &kexECDHInit); err != nil { + return nil, err + } + + clientX, clientY, err := unmarshalECKey(kex.curve, kexECDHInit.ClientPubKey) + if err != nil { + return nil, err + } + + // We could cache this key across multiple users/multiple + // connection attempts, but the benefit is small. OpenSSH + // generates a new key for each incoming connection. + ephKey, err := ecdsa.GenerateKey(kex.curve, rand) + if err != nil { + return nil, err + } + + hostKeyBytes := priv.PublicKey().Marshal() + + serializedEphKey := elliptic.Marshal(kex.curve, ephKey.PublicKey.X, ephKey.PublicKey.Y) + + // generate shared secret + secret, _ := kex.curve.ScalarMult(clientX, clientY, ephKey.D.Bytes()) + + h := ecHash(kex.curve).New() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexECDHInit.ClientPubKey) + writeString(h, serializedEphKey) + + K := make([]byte, intLength(secret)) + marshalInt(K, secret) + h.Write(K) + + H := h.Sum(nil) + + // H is already a hash, but the hostkey signing will apply its + // own key-specific hash algorithm. + sig, err := signAndMarshal(priv, rand, H) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: serializedEphKey, + HostKey: hostKeyBytes, + Signature: sig, + } + + serialized := Marshal(&reply) + if err := c.writePacket(serialized); err != nil { + return nil, err + } + + return &kexResult{ + H: H, + K: K, + HostKey: reply.HostKey, + Signature: sig, + Hash: ecHash(kex.curve), + }, nil +} + +var kexAlgoMap = map[string]kexAlgorithm{} + +func init() { + // This is the group called diffie-hellman-group1-sha1 in RFC + // 4253 and Oakley Group 2 in RFC 2409. + p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF", 16) + kexAlgoMap[kexAlgoDH1SHA1] = &dhGroup{ + g: new(big.Int).SetInt64(2), + p: p, + } + + // This is the group called diffie-hellman-group14-sha1 in RFC + // 4253 and Oakley Group 14 in RFC 3526. + p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) + + kexAlgoMap[kexAlgoDH14SHA1] = &dhGroup{ + g: new(big.Int).SetInt64(2), + p: p, + } + + kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} + kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} + kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} + kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} +} + +// curve25519sha256 implements the curve25519-sha256@libssh.org key +// agreement protocol, as described in +// https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt +type curve25519sha256 struct{} + +type curve25519KeyPair struct { + priv [32]byte + pub [32]byte +} + +func (kp *curve25519KeyPair) generate(rand io.Reader) error { + if _, err := io.ReadFull(rand, kp.priv[:]); err != nil { + return err + } + curve25519.ScalarBaseMult(&kp.pub, &kp.priv) + return nil +} + +// curve25519Zeros is just an array of 32 zero bytes so that we have something +// convenient to compare against in order to reject curve25519 points with the +// wrong order. +var curve25519Zeros [32]byte + +func (kex *curve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + var kp curve25519KeyPair + if err := kp.generate(rand); err != nil { + return nil, err + } + if err := c.writePacket(Marshal(&kexECDHInitMsg{kp.pub[:]})); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + if len(reply.EphemeralPubKey) != 32 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong length") + } + + var servPub, secret [32]byte + copy(servPub[:], reply.EphemeralPubKey) + curve25519.ScalarMult(&secret, &kp.priv, &servPub) + if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + } + + h := crypto.SHA256.New() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, kp.pub[:]) + writeString(h, reply.EphemeralPubKey) + + kInt := new(big.Int).SetBytes(secret[:]) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: crypto.SHA256, + }, nil +} + +func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + packet, err := c.readPacket() + if err != nil { + return + } + var kexInit kexECDHInitMsg + if err = Unmarshal(packet, &kexInit); err != nil { + return + } + + if len(kexInit.ClientPubKey) != 32 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong length") + } + + var kp curve25519KeyPair + if err := kp.generate(rand); err != nil { + return nil, err + } + + var clientPub, secret [32]byte + copy(clientPub[:], kexInit.ClientPubKey) + curve25519.ScalarMult(&secret, &kp.priv, &clientPub) + if subtle.ConstantTimeCompare(secret[:], curve25519Zeros[:]) == 1 { + return nil, errors.New("ssh: peer's curve25519 public value has wrong order") + } + + hostKeyBytes := priv.PublicKey().Marshal() + + h := crypto.SHA256.New() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexInit.ClientPubKey) + writeString(h, kp.pub[:]) + + kInt := new(big.Int).SetBytes(secret[:]) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + H := h.Sum(nil) + + sig, err := signAndMarshal(priv, rand, H) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: kp.pub[:], + HostKey: hostKeyBytes, + Signature: sig, + } + if err := c.writePacket(Marshal(&reply)); err != nil { + return nil, err + } + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA256, + }, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/kex_test.go b/vendor/golang.org/x/crypto/ssh/kex_test.go new file mode 100644 index 00000000..12ca0acd --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/kex_test.go @@ -0,0 +1,50 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Key exchange tests. + +import ( + "crypto/rand" + "reflect" + "testing" +) + +func TestKexes(t *testing.T) { + type kexResultErr struct { + result *kexResult + err error + } + + for name, kex := range kexAlgoMap { + a, b := memPipe() + + s := make(chan kexResultErr, 1) + c := make(chan kexResultErr, 1) + var magics handshakeMagics + go func() { + r, e := kex.Client(a, rand.Reader, &magics) + a.Close() + c <- kexResultErr{r, e} + }() + go func() { + r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"]) + b.Close() + s <- kexResultErr{r, e} + }() + + clientRes := <-c + serverRes := <-s + if clientRes.err != nil { + t.Errorf("client: %v", clientRes.err) + } + if serverRes.err != nil { + t.Errorf("server: %v", serverRes.err) + } + if !reflect.DeepEqual(clientRes.result, serverRes.result) { + t.Errorf("kex %q: mismatch %#v, %#v", name, clientRes.result, serverRes.result) + } + } +} diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go new file mode 100644 index 00000000..e13cf9ce --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/keys.go @@ -0,0 +1,880 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rsa" + "crypto/x509" + "encoding/asn1" + "encoding/base64" + "encoding/pem" + "errors" + "fmt" + "io" + "math/big" + "strings" + + "golang.org/x/crypto/ed25519" +) + +// These constants represent the algorithm names for key types supported by this +// package. +const ( + KeyAlgoRSA = "ssh-rsa" + KeyAlgoDSA = "ssh-dss" + KeyAlgoECDSA256 = "ecdsa-sha2-nistp256" + KeyAlgoECDSA384 = "ecdsa-sha2-nistp384" + KeyAlgoECDSA521 = "ecdsa-sha2-nistp521" + KeyAlgoED25519 = "ssh-ed25519" +) + +// parsePubKey parses a public key of the given algorithm. +// Use ParsePublicKey for keys with prepended algorithm. +func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) { + switch algo { + case KeyAlgoRSA: + return parseRSA(in) + case KeyAlgoDSA: + return parseDSA(in) + case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521: + return parseECDSA(in) + case KeyAlgoED25519: + return parseED25519(in) + case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01: + cert, err := parseCert(in, certToPrivAlgo(algo)) + if err != nil { + return nil, nil, err + } + return cert, nil, nil + } + return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo) +} + +// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format +// (see sshd(8) manual page) once the options and key type fields have been +// removed. +func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) { + in = bytes.TrimSpace(in) + + i := bytes.IndexAny(in, " \t") + if i == -1 { + i = len(in) + } + base64Key := in[:i] + + key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key))) + n, err := base64.StdEncoding.Decode(key, base64Key) + if err != nil { + return nil, "", err + } + key = key[:n] + out, err = ParsePublicKey(key) + if err != nil { + return nil, "", err + } + comment = string(bytes.TrimSpace(in[i:])) + return out, comment, nil +} + +// ParseKnownHosts parses an entry in the format of the known_hosts file. +// +// The known_hosts format is documented in the sshd(8) manual page. This +// function will parse a single entry from in. On successful return, marker +// will contain the optional marker value (i.e. "cert-authority" or "revoked") +// or else be empty, hosts will contain the hosts that this entry matches, +// pubKey will contain the public key and comment will contain any trailing +// comment at the end of the line. See the sshd(8) manual page for the various +// forms that a host string can take. +// +// The unparsed remainder of the input will be returned in rest. This function +// can be called repeatedly to parse multiple entries. +// +// If no entries were found in the input then err will be io.EOF. Otherwise a +// non-nil err value indicates a parse error. +func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey, comment string, rest []byte, err error) { + for len(in) > 0 { + end := bytes.IndexByte(in, '\n') + if end != -1 { + rest = in[end+1:] + in = in[:end] + } else { + rest = nil + } + + end = bytes.IndexByte(in, '\r') + if end != -1 { + in = in[:end] + } + + in = bytes.TrimSpace(in) + if len(in) == 0 || in[0] == '#' { + in = rest + continue + } + + i := bytes.IndexAny(in, " \t") + if i == -1 { + in = rest + continue + } + + // Strip out the beginning of the known_host key. + // This is either an optional marker or a (set of) hostname(s). + keyFields := bytes.Fields(in) + if len(keyFields) < 3 || len(keyFields) > 5 { + return "", nil, nil, "", nil, errors.New("ssh: invalid entry in known_hosts data") + } + + // keyFields[0] is either "@cert-authority", "@revoked" or a comma separated + // list of hosts + marker := "" + if keyFields[0][0] == '@' { + marker = string(keyFields[0][1:]) + keyFields = keyFields[1:] + } + + hosts := string(keyFields[0]) + // keyFields[1] contains the key type (e.g. “ssh-rsaâ€). + // However, that information is duplicated inside the + // base64-encoded key and so is ignored here. + + key := bytes.Join(keyFields[2:], []byte(" ")) + if pubKey, comment, err = parseAuthorizedKey(key); err != nil { + return "", nil, nil, "", nil, err + } + + return marker, strings.Split(hosts, ","), pubKey, comment, rest, nil + } + + return "", nil, nil, "", nil, io.EOF +} + +// ParseAuthorizedKeys parses a public key from an authorized_keys +// file used in OpenSSH according to the sshd(8) manual page. +func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { + for len(in) > 0 { + end := bytes.IndexByte(in, '\n') + if end != -1 { + rest = in[end+1:] + in = in[:end] + } else { + rest = nil + } + + end = bytes.IndexByte(in, '\r') + if end != -1 { + in = in[:end] + } + + in = bytes.TrimSpace(in) + if len(in) == 0 || in[0] == '#' { + in = rest + continue + } + + i := bytes.IndexAny(in, " \t") + if i == -1 { + in = rest + continue + } + + if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { + return out, comment, options, rest, nil + } + + // No key type recognised. Maybe there's an options field at + // the beginning. + var b byte + inQuote := false + var candidateOptions []string + optionStart := 0 + for i, b = range in { + isEnd := !inQuote && (b == ' ' || b == '\t') + if (b == ',' && !inQuote) || isEnd { + if i-optionStart > 0 { + candidateOptions = append(candidateOptions, string(in[optionStart:i])) + } + optionStart = i + 1 + } + if isEnd { + break + } + if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) { + inQuote = !inQuote + } + } + for i < len(in) && (in[i] == ' ' || in[i] == '\t') { + i++ + } + if i == len(in) { + // Invalid line: unmatched quote + in = rest + continue + } + + in = in[i:] + i = bytes.IndexAny(in, " \t") + if i == -1 { + in = rest + continue + } + + if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { + options = candidateOptions + return out, comment, options, rest, nil + } + + in = rest + continue + } + + return nil, "", nil, nil, errors.New("ssh: no key found") +} + +// ParsePublicKey parses an SSH public key formatted for use in +// the SSH wire protocol according to RFC 4253, section 6.6. +func ParsePublicKey(in []byte) (out PublicKey, err error) { + algo, in, ok := parseString(in) + if !ok { + return nil, errShortRead + } + var rest []byte + out, rest, err = parsePubKey(in, string(algo)) + if len(rest) > 0 { + return nil, errors.New("ssh: trailing junk in public key") + } + + return out, err +} + +// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH +// authorized_keys file. The return value ends with newline. +func MarshalAuthorizedKey(key PublicKey) []byte { + b := &bytes.Buffer{} + b.WriteString(key.Type()) + b.WriteByte(' ') + e := base64.NewEncoder(base64.StdEncoding, b) + e.Write(key.Marshal()) + e.Close() + b.WriteByte('\n') + return b.Bytes() +} + +// PublicKey is an abstraction of different types of public keys. +type PublicKey interface { + // Type returns the key's type, e.g. "ssh-rsa". + Type() string + + // Marshal returns the serialized key data in SSH wire format, + // with the name prefix. + Marshal() []byte + + // Verify that sig is a signature on the given data using this + // key. This function will hash the data appropriately first. + Verify(data []byte, sig *Signature) error +} + +// CryptoPublicKey, if implemented by a PublicKey, +// returns the underlying crypto.PublicKey form of the key. +type CryptoPublicKey interface { + CryptoPublicKey() crypto.PublicKey +} + +// A Signer can create signatures that verify against a public key. +type Signer interface { + // PublicKey returns an associated PublicKey instance. + PublicKey() PublicKey + + // Sign returns raw signature for the given data. This method + // will apply the hash specified for the keytype to the data. + Sign(rand io.Reader, data []byte) (*Signature, error) +} + +type rsaPublicKey rsa.PublicKey + +func (r *rsaPublicKey) Type() string { + return "ssh-rsa" +} + +// parseRSA parses an RSA key according to RFC 4253, section 6.6. +func parseRSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + E *big.Int + N *big.Int + Rest []byte `ssh:"rest"` + } + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + if w.E.BitLen() > 24 { + return nil, nil, errors.New("ssh: exponent too large") + } + e := w.E.Int64() + if e < 3 || e&1 == 0 { + return nil, nil, errors.New("ssh: incorrect exponent") + } + + var key rsa.PublicKey + key.E = int(e) + key.N = w.N + return (*rsaPublicKey)(&key), w.Rest, nil +} + +func (r *rsaPublicKey) Marshal() []byte { + e := new(big.Int).SetInt64(int64(r.E)) + // RSA publickey struct layout should match the struct used by + // parseRSACert in the x/crypto/ssh/agent package. + wirekey := struct { + Name string + E *big.Int + N *big.Int + }{ + KeyAlgoRSA, + e, + r.N, + } + return Marshal(&wirekey) +} + +func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != r.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) + } + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob) +} + +func (r *rsaPublicKey) CryptoPublicKey() crypto.PublicKey { + return (*rsa.PublicKey)(r) +} + +type dsaPublicKey dsa.PublicKey + +func (r *dsaPublicKey) Type() string { + return "ssh-dss" +} + +// parseDSA parses an DSA key according to RFC 4253, section 6.6. +func parseDSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + P, Q, G, Y *big.Int + Rest []byte `ssh:"rest"` + } + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + key := &dsaPublicKey{ + Parameters: dsa.Parameters{ + P: w.P, + Q: w.Q, + G: w.G, + }, + Y: w.Y, + } + return key, w.Rest, nil +} + +func (k *dsaPublicKey) Marshal() []byte { + // DSA publickey struct layout should match the struct used by + // parseDSACert in the x/crypto/ssh/agent package. + w := struct { + Name string + P, Q, G, Y *big.Int + }{ + k.Type(), + k.P, + k.Q, + k.G, + k.Y, + } + + return Marshal(&w) +} + +func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != k.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) + } + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + + // Per RFC 4253, section 6.6, + // The value for 'dss_signature_blob' is encoded as a string containing + // r, followed by s (which are 160-bit integers, without lengths or + // padding, unsigned, and in network byte order). + // For DSS purposes, sig.Blob should be exactly 40 bytes in length. + if len(sig.Blob) != 40 { + return errors.New("ssh: DSA signature parse error") + } + r := new(big.Int).SetBytes(sig.Blob[:20]) + s := new(big.Int).SetBytes(sig.Blob[20:]) + if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) { + return nil + } + return errors.New("ssh: signature did not verify") +} + +func (k *dsaPublicKey) CryptoPublicKey() crypto.PublicKey { + return (*dsa.PublicKey)(k) +} + +type dsaPrivateKey struct { + *dsa.PrivateKey +} + +func (k *dsaPrivateKey) PublicKey() PublicKey { + return (*dsaPublicKey)(&k.PrivateKey.PublicKey) +} + +func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) { + h := crypto.SHA1.New() + h.Write(data) + digest := h.Sum(nil) + r, s, err := dsa.Sign(rand, k.PrivateKey, digest) + if err != nil { + return nil, err + } + + sig := make([]byte, 40) + rb := r.Bytes() + sb := s.Bytes() + + copy(sig[20-len(rb):20], rb) + copy(sig[40-len(sb):], sb) + + return &Signature{ + Format: k.PublicKey().Type(), + Blob: sig, + }, nil +} + +type ecdsaPublicKey ecdsa.PublicKey + +func (key *ecdsaPublicKey) Type() string { + return "ecdsa-sha2-" + key.nistID() +} + +func (key *ecdsaPublicKey) nistID() string { + switch key.Params().BitSize { + case 256: + return "nistp256" + case 384: + return "nistp384" + case 521: + return "nistp521" + } + panic("ssh: unsupported ecdsa key size") +} + +type ed25519PublicKey ed25519.PublicKey + +func (key ed25519PublicKey) Type() string { + return KeyAlgoED25519 +} + +func parseED25519(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + KeyBytes []byte + Rest []byte `ssh:"rest"` + } + + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + key := ed25519.PublicKey(w.KeyBytes) + + return (ed25519PublicKey)(key), w.Rest, nil +} + +func (key ed25519PublicKey) Marshal() []byte { + w := struct { + Name string + KeyBytes []byte + }{ + KeyAlgoED25519, + []byte(key), + } + return Marshal(&w) +} + +func (key ed25519PublicKey) Verify(b []byte, sig *Signature) error { + if sig.Format != key.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) + } + + edKey := (ed25519.PublicKey)(key) + if ok := ed25519.Verify(edKey, b, sig.Blob); !ok { + return errors.New("ssh: signature did not verify") + } + + return nil +} + +func (k ed25519PublicKey) CryptoPublicKey() crypto.PublicKey { + return ed25519.PublicKey(k) +} + +func supportedEllipticCurve(curve elliptic.Curve) bool { + return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521() +} + +// ecHash returns the hash to match the given elliptic curve, see RFC +// 5656, section 6.2.1 +func ecHash(curve elliptic.Curve) crypto.Hash { + bitSize := curve.Params().BitSize + switch { + case bitSize <= 256: + return crypto.SHA256 + case bitSize <= 384: + return crypto.SHA384 + } + return crypto.SHA512 +} + +// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1. +func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) { + var w struct { + Curve string + KeyBytes []byte + Rest []byte `ssh:"rest"` + } + + if err := Unmarshal(in, &w); err != nil { + return nil, nil, err + } + + key := new(ecdsa.PublicKey) + + switch w.Curve { + case "nistp256": + key.Curve = elliptic.P256() + case "nistp384": + key.Curve = elliptic.P384() + case "nistp521": + key.Curve = elliptic.P521() + default: + return nil, nil, errors.New("ssh: unsupported curve") + } + + key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes) + if key.X == nil || key.Y == nil { + return nil, nil, errors.New("ssh: invalid curve point") + } + return (*ecdsaPublicKey)(key), w.Rest, nil +} + +func (key *ecdsaPublicKey) Marshal() []byte { + // See RFC 5656, section 3.1. + keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y) + // ECDSA publickey struct layout should match the struct used by + // parseECDSACert in the x/crypto/ssh/agent package. + w := struct { + Name string + ID string + Key []byte + }{ + key.Type(), + key.nistID(), + keyBytes, + } + + return Marshal(&w) +} + +func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { + if sig.Format != key.Type() { + return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type()) + } + + h := ecHash(key.Curve).New() + h.Write(data) + digest := h.Sum(nil) + + // Per RFC 5656, section 3.1.2, + // The ecdsa_signature_blob value has the following specific encoding: + // mpint r + // mpint s + var ecSig struct { + R *big.Int + S *big.Int + } + + if err := Unmarshal(sig.Blob, &ecSig); err != nil { + return err + } + + if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) { + return nil + } + return errors.New("ssh: signature did not verify") +} + +func (k *ecdsaPublicKey) CryptoPublicKey() crypto.PublicKey { + return (*ecdsa.PublicKey)(k) +} + +// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, +// *ecdsa.PrivateKey or any other crypto.Signer and returns a corresponding +// Signer instance. ECDSA keys must use P-256, P-384 or P-521. +func NewSignerFromKey(key interface{}) (Signer, error) { + switch key := key.(type) { + case crypto.Signer: + return NewSignerFromSigner(key) + case *dsa.PrivateKey: + return &dsaPrivateKey{key}, nil + default: + return nil, fmt.Errorf("ssh: unsupported key type %T", key) + } +} + +type wrappedSigner struct { + signer crypto.Signer + pubKey PublicKey +} + +// NewSignerFromSigner takes any crypto.Signer implementation and +// returns a corresponding Signer interface. This can be used, for +// example, with keys kept in hardware modules. +func NewSignerFromSigner(signer crypto.Signer) (Signer, error) { + pubKey, err := NewPublicKey(signer.Public()) + if err != nil { + return nil, err + } + + return &wrappedSigner{signer, pubKey}, nil +} + +func (s *wrappedSigner) PublicKey() PublicKey { + return s.pubKey +} + +func (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) { + var hashFunc crypto.Hash + + switch key := s.pubKey.(type) { + case *rsaPublicKey, *dsaPublicKey: + hashFunc = crypto.SHA1 + case *ecdsaPublicKey: + hashFunc = ecHash(key.Curve) + case ed25519PublicKey: + default: + return nil, fmt.Errorf("ssh: unsupported key type %T", key) + } + + var digest []byte + if hashFunc != 0 { + h := hashFunc.New() + h.Write(data) + digest = h.Sum(nil) + } else { + digest = data + } + + signature, err := s.signer.Sign(rand, digest, hashFunc) + if err != nil { + return nil, err + } + + // crypto.Signer.Sign is expected to return an ASN.1-encoded signature + // for ECDSA and DSA, but that's not the encoding expected by SSH, so + // re-encode. + switch s.pubKey.(type) { + case *ecdsaPublicKey, *dsaPublicKey: + type asn1Signature struct { + R, S *big.Int + } + asn1Sig := new(asn1Signature) + _, err := asn1.Unmarshal(signature, asn1Sig) + if err != nil { + return nil, err + } + + switch s.pubKey.(type) { + case *ecdsaPublicKey: + signature = Marshal(asn1Sig) + + case *dsaPublicKey: + signature = make([]byte, 40) + r := asn1Sig.R.Bytes() + s := asn1Sig.S.Bytes() + copy(signature[20-len(r):20], r) + copy(signature[40-len(s):40], s) + } + } + + return &Signature{ + Format: s.pubKey.Type(), + Blob: signature, + }, nil +} + +// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey, +// ed25519.PublicKey, or any other crypto.Signer and returns a corresponding +// Signer instance. ECDSA keys must use P-256, P-384 or P-521. +func NewPublicKey(key interface{}) (PublicKey, error) { + switch key := key.(type) { + case *rsa.PublicKey: + return (*rsaPublicKey)(key), nil + case *ecdsa.PublicKey: + if !supportedEllipticCurve(key.Curve) { + return nil, errors.New("ssh: only P-256, P-384 and P-521 EC keys are supported.") + } + return (*ecdsaPublicKey)(key), nil + case *dsa.PublicKey: + return (*dsaPublicKey)(key), nil + case ed25519.PublicKey: + return (ed25519PublicKey)(key), nil + default: + return nil, fmt.Errorf("ssh: unsupported key type %T", key) + } +} + +// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports +// the same keys as ParseRawPrivateKey. +func ParsePrivateKey(pemBytes []byte) (Signer, error) { + key, err := ParseRawPrivateKey(pemBytes) + if err != nil { + return nil, err + } + + return NewSignerFromKey(key) +} + +// encryptedBlock tells whether a private key is +// encrypted by examining its Proc-Type header +// for a mention of ENCRYPTED +// according to RFC 1421 Section 4.6.1.1. +func encryptedBlock(block *pem.Block) bool { + return strings.Contains(block.Headers["Proc-Type"], "ENCRYPTED") +} + +// ParseRawPrivateKey returns a private key from a PEM encoded private key. It +// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys. +func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) { + block, _ := pem.Decode(pemBytes) + if block == nil { + return nil, errors.New("ssh: no key found") + } + + if encryptedBlock(block) { + return nil, errors.New("ssh: cannot decode encrypted private keys") + } + + switch block.Type { + case "RSA PRIVATE KEY": + return x509.ParsePKCS1PrivateKey(block.Bytes) + case "EC PRIVATE KEY": + return x509.ParseECPrivateKey(block.Bytes) + case "DSA PRIVATE KEY": + return ParseDSAPrivateKey(block.Bytes) + case "OPENSSH PRIVATE KEY": + return parseOpenSSHPrivateKey(block.Bytes) + default: + return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type) + } +} + +// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as +// specified by the OpenSSL DSA man page. +func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) { + var k struct { + Version int + P *big.Int + Q *big.Int + G *big.Int + Priv *big.Int + Pub *big.Int + } + rest, err := asn1.Unmarshal(der, &k) + if err != nil { + return nil, errors.New("ssh: failed to parse DSA key: " + err.Error()) + } + if len(rest) > 0 { + return nil, errors.New("ssh: garbage after DSA key") + } + + return &dsa.PrivateKey{ + PublicKey: dsa.PublicKey{ + Parameters: dsa.Parameters{ + P: k.P, + Q: k.Q, + G: k.G, + }, + Y: k.Priv, + }, + X: k.Pub, + }, nil +} + +// Implemented based on the documentation at +// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key +func parseOpenSSHPrivateKey(key []byte) (*ed25519.PrivateKey, error) { + magic := append([]byte("openssh-key-v1"), 0) + if !bytes.Equal(magic, key[0:len(magic)]) { + return nil, errors.New("ssh: invalid openssh private key format") + } + remaining := key[len(magic):] + + var w struct { + CipherName string + KdfName string + KdfOpts string + NumKeys uint32 + PubKey []byte + PrivKeyBlock []byte + } + + if err := Unmarshal(remaining, &w); err != nil { + return nil, err + } + + pk1 := struct { + Check1 uint32 + Check2 uint32 + Keytype string + Pub []byte + Priv []byte + Comment string + Pad []byte `ssh:"rest"` + }{} + + if err := Unmarshal(w.PrivKeyBlock, &pk1); err != nil { + return nil, err + } + + if pk1.Check1 != pk1.Check2 { + return nil, errors.New("ssh: checkint mismatch") + } + + // we only handle ed25519 keys currently + if pk1.Keytype != KeyAlgoED25519 { + return nil, errors.New("ssh: unhandled key type") + } + + for i, b := range pk1.Pad { + if int(b) != i+1 { + return nil, errors.New("ssh: padding not as expected") + } + } + + if len(pk1.Priv) != ed25519.PrivateKeySize { + return nil, errors.New("ssh: private key unexpected length") + } + + pk := ed25519.PrivateKey(make([]byte, ed25519.PrivateKeySize)) + copy(pk, pk1.Priv) + return &pk, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/keys_test.go b/vendor/golang.org/x/crypto/ssh/keys_test.go new file mode 100644 index 00000000..0739c662 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/keys_test.go @@ -0,0 +1,456 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/dsa" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/rsa" + "encoding/base64" + "fmt" + "reflect" + "strings" + "testing" + + "golang.org/x/crypto/ed25519" + "golang.org/x/crypto/ssh/testdata" +) + +func rawKey(pub PublicKey) interface{} { + switch k := pub.(type) { + case *rsaPublicKey: + return (*rsa.PublicKey)(k) + case *dsaPublicKey: + return (*dsa.PublicKey)(k) + case *ecdsaPublicKey: + return (*ecdsa.PublicKey)(k) + case ed25519PublicKey: + return (ed25519.PublicKey)(k) + case *Certificate: + return k + } + panic("unknown key type") +} + +func TestKeyMarshalParse(t *testing.T) { + for _, priv := range testSigners { + pub := priv.PublicKey() + roundtrip, err := ParsePublicKey(pub.Marshal()) + if err != nil { + t.Errorf("ParsePublicKey(%T): %v", pub, err) + } + + k1 := rawKey(pub) + k2 := rawKey(roundtrip) + + if !reflect.DeepEqual(k1, k2) { + t.Errorf("got %#v in roundtrip, want %#v", k2, k1) + } + } +} + +func TestUnsupportedCurves(t *testing.T) { + raw, err := ecdsa.GenerateKey(elliptic.P224(), rand.Reader) + if err != nil { + t.Fatalf("GenerateKey: %v", err) + } + + if _, err = NewSignerFromKey(raw); err == nil || !strings.Contains(err.Error(), "only P-256") { + t.Fatalf("NewPrivateKey should not succeed with P-224, got: %v", err) + } + + if _, err = NewPublicKey(&raw.PublicKey); err == nil || !strings.Contains(err.Error(), "only P-256") { + t.Fatalf("NewPublicKey should not succeed with P-224, got: %v", err) + } +} + +func TestNewPublicKey(t *testing.T) { + for _, k := range testSigners { + raw := rawKey(k.PublicKey()) + // Skip certificates, as NewPublicKey does not support them. + if _, ok := raw.(*Certificate); ok { + continue + } + pub, err := NewPublicKey(raw) + if err != nil { + t.Errorf("NewPublicKey(%#v): %v", raw, err) + } + if !reflect.DeepEqual(k.PublicKey(), pub) { + t.Errorf("NewPublicKey(%#v) = %#v, want %#v", raw, pub, k.PublicKey()) + } + } +} + +func TestKeySignVerify(t *testing.T) { + for _, priv := range testSigners { + pub := priv.PublicKey() + + data := []byte("sign me") + sig, err := priv.Sign(rand.Reader, data) + if err != nil { + t.Fatalf("Sign(%T): %v", priv, err) + } + + if err := pub.Verify(data, sig); err != nil { + t.Errorf("publicKey.Verify(%T): %v", priv, err) + } + sig.Blob[5]++ + if err := pub.Verify(data, sig); err == nil { + t.Errorf("publicKey.Verify on broken sig did not fail") + } + } +} + +func TestParseRSAPrivateKey(t *testing.T) { + key := testPrivateKeys["rsa"] + + rsa, ok := key.(*rsa.PrivateKey) + if !ok { + t.Fatalf("got %T, want *rsa.PrivateKey", rsa) + } + + if err := rsa.Validate(); err != nil { + t.Errorf("Validate: %v", err) + } +} + +func TestParseECPrivateKey(t *testing.T) { + key := testPrivateKeys["ecdsa"] + + ecKey, ok := key.(*ecdsa.PrivateKey) + if !ok { + t.Fatalf("got %T, want *ecdsa.PrivateKey", ecKey) + } + + if !validateECPublicKey(ecKey.Curve, ecKey.X, ecKey.Y) { + t.Fatalf("public key does not validate.") + } +} + +// See Issue https://github.com/golang/go/issues/6650. +func TestParseEncryptedPrivateKeysFails(t *testing.T) { + const wantSubstring = "encrypted" + for i, tt := range testdata.PEMEncryptedKeys { + _, err := ParsePrivateKey(tt.PEMBytes) + if err == nil { + t.Errorf("#%d key %s: ParsePrivateKey successfully parsed, expected an error", i, tt.Name) + continue + } + + if !strings.Contains(err.Error(), wantSubstring) { + t.Errorf("#%d key %s: got error %q, want substring %q", i, tt.Name, err, wantSubstring) + } + } +} + +func TestParseDSA(t *testing.T) { + // We actually exercise the ParsePrivateKey codepath here, as opposed to + // using the ParseRawPrivateKey+NewSignerFromKey path that testdata_test.go + // uses. + s, err := ParsePrivateKey(testdata.PEMBytes["dsa"]) + if err != nil { + t.Fatalf("ParsePrivateKey returned error: %s", err) + } + + data := []byte("sign me") + sig, err := s.Sign(rand.Reader, data) + if err != nil { + t.Fatalf("dsa.Sign: %v", err) + } + + if err := s.PublicKey().Verify(data, sig); err != nil { + t.Errorf("Verify failed: %v", err) + } +} + +// Tests for authorized_keys parsing. + +// getTestKey returns a public key, and its base64 encoding. +func getTestKey() (PublicKey, string) { + k := testPublicKeys["rsa"] + + b := &bytes.Buffer{} + e := base64.NewEncoder(base64.StdEncoding, b) + e.Write(k.Marshal()) + e.Close() + + return k, b.String() +} + +func TestMarshalParsePublicKey(t *testing.T) { + pub, pubSerialized := getTestKey() + line := fmt.Sprintf("%s %s user@host", pub.Type(), pubSerialized) + + authKeys := MarshalAuthorizedKey(pub) + actualFields := strings.Fields(string(authKeys)) + if len(actualFields) == 0 { + t.Fatalf("failed authKeys: %v", authKeys) + } + + // drop the comment + expectedFields := strings.Fields(line)[0:2] + + if !reflect.DeepEqual(actualFields, expectedFields) { + t.Errorf("got %v, expected %v", actualFields, expectedFields) + } + + actPub, _, _, _, err := ParseAuthorizedKey([]byte(line)) + if err != nil { + t.Fatalf("cannot parse %v: %v", line, err) + } + if !reflect.DeepEqual(actPub, pub) { + t.Errorf("got %v, expected %v", actPub, pub) + } +} + +type authResult struct { + pubKey PublicKey + options []string + comments string + rest string + ok bool +} + +func testAuthorizedKeys(t *testing.T, authKeys []byte, expected []authResult) { + rest := authKeys + var values []authResult + for len(rest) > 0 { + var r authResult + var err error + r.pubKey, r.comments, r.options, rest, err = ParseAuthorizedKey(rest) + r.ok = (err == nil) + t.Log(err) + r.rest = string(rest) + values = append(values, r) + } + + if !reflect.DeepEqual(values, expected) { + t.Errorf("got %#v, expected %#v", values, expected) + } +} + +func TestAuthorizedKeyBasic(t *testing.T) { + pub, pubSerialized := getTestKey() + line := "ssh-rsa " + pubSerialized + " user@host" + testAuthorizedKeys(t, []byte(line), + []authResult{ + {pub, nil, "user@host", "", true}, + }) +} + +func TestAuth(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithOptions := []string{ + `# comments to ignore before any keys...`, + ``, + `env="HOME=/home/root",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`, + `# comments to ignore, along with a blank line`, + ``, + `env="HOME=/home/root2" ssh-rsa ` + pubSerialized + ` user2@host2`, + ``, + `# more comments, plus a invalid entry`, + `ssh-rsa data-that-will-not-parse user@host3`, + } + for _, eol := range []string{"\n", "\r\n"} { + authOptions := strings.Join(authWithOptions, eol) + rest2 := strings.Join(authWithOptions[3:], eol) + rest3 := strings.Join(authWithOptions[6:], eol) + testAuthorizedKeys(t, []byte(authOptions), []authResult{ + {pub, []string{`env="HOME=/home/root"`, "no-port-forwarding"}, "user@host", rest2, true}, + {pub, []string{`env="HOME=/home/root2"`}, "user2@host2", rest3, true}, + {nil, nil, "", "", false}, + }) + } +} + +func TestAuthWithQuotedSpaceInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedSpaceInEnv := []byte(`env="HOME=/home/root dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedSpaceInEnv), []authResult{ + {pub, []string{`env="HOME=/home/root dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) +} + +func TestAuthWithQuotedCommaInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedCommaInEnv := []byte(`env="HOME=/home/root,dir",no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedCommaInEnv), []authResult{ + {pub, []string{`env="HOME=/home/root,dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) +} + +func TestAuthWithQuotedQuoteInEnv(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithQuotedQuoteInEnv := []byte(`env="HOME=/home/\"root dir",no-port-forwarding` + "\t" + `ssh-rsa` + "\t" + pubSerialized + ` user@host`) + authWithDoubleQuotedQuote := []byte(`no-port-forwarding,env="HOME=/home/ \"root dir\"" ssh-rsa ` + pubSerialized + "\t" + `user@host`) + testAuthorizedKeys(t, []byte(authWithQuotedQuoteInEnv), []authResult{ + {pub, []string{`env="HOME=/home/\"root dir"`, "no-port-forwarding"}, "user@host", "", true}, + }) + + testAuthorizedKeys(t, []byte(authWithDoubleQuotedQuote), []authResult{ + {pub, []string{"no-port-forwarding", `env="HOME=/home/ \"root dir\""`}, "user@host", "", true}, + }) +} + +func TestAuthWithInvalidSpace(t *testing.T) { + _, pubSerialized := getTestKey() + authWithInvalidSpace := []byte(`env="HOME=/home/root dir", no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host +#more to follow but still no valid keys`) + testAuthorizedKeys(t, []byte(authWithInvalidSpace), []authResult{ + {nil, nil, "", "", false}, + }) +} + +func TestAuthWithMissingQuote(t *testing.T) { + pub, pubSerialized := getTestKey() + authWithMissingQuote := []byte(`env="HOME=/home/root,no-port-forwarding ssh-rsa ` + pubSerialized + ` user@host +env="HOME=/home/root",shared-control ssh-rsa ` + pubSerialized + ` user@host`) + + testAuthorizedKeys(t, []byte(authWithMissingQuote), []authResult{ + {pub, []string{`env="HOME=/home/root"`, `shared-control`}, "user@host", "", true}, + }) +} + +func TestInvalidEntry(t *testing.T) { + authInvalid := []byte(`ssh-rsa`) + _, _, _, _, err := ParseAuthorizedKey(authInvalid) + if err == nil { + t.Errorf("got valid entry for %q", authInvalid) + } +} + +var knownHostsParseTests = []struct { + input string + err string + + marker string + comment string + hosts []string + rest string +}{ + { + "", + "EOF", + + "", "", nil, "", + }, + { + "# Just a comment", + "EOF", + + "", "", nil, "", + }, + { + " \t ", + "EOF", + + "", "", nil, "", + }, + { + "localhost ssh-rsa {RSAPUB}", + "", + + "", "", []string{"localhost"}, "", + }, + { + "localhost\tssh-rsa {RSAPUB}", + "", + + "", "", []string{"localhost"}, "", + }, + { + "localhost\tssh-rsa {RSAPUB}\tcomment comment", + "", + + "", "comment comment", []string{"localhost"}, "", + }, + { + "localhost\tssh-rsa {RSAPUB}\tcomment comment\n", + "", + + "", "comment comment", []string{"localhost"}, "", + }, + { + "localhost\tssh-rsa {RSAPUB}\tcomment comment\r\n", + "", + + "", "comment comment", []string{"localhost"}, "", + }, + { + "localhost\tssh-rsa {RSAPUB}\tcomment comment\r\nnext line", + "", + + "", "comment comment", []string{"localhost"}, "next line", + }, + { + "localhost,[host2:123]\tssh-rsa {RSAPUB}\tcomment comment", + "", + + "", "comment comment", []string{"localhost", "[host2:123]"}, "", + }, + { + "@marker \tlocalhost,[host2:123]\tssh-rsa {RSAPUB}", + "", + + "marker", "", []string{"localhost", "[host2:123]"}, "", + }, + { + "@marker \tlocalhost,[host2:123]\tssh-rsa aabbccdd", + "short read", + + "", "", nil, "", + }, +} + +func TestKnownHostsParsing(t *testing.T) { + rsaPub, rsaPubSerialized := getTestKey() + + for i, test := range knownHostsParseTests { + var expectedKey PublicKey + const rsaKeyToken = "{RSAPUB}" + + input := test.input + if strings.Contains(input, rsaKeyToken) { + expectedKey = rsaPub + input = strings.Replace(test.input, rsaKeyToken, rsaPubSerialized, -1) + } + + marker, hosts, pubKey, comment, rest, err := ParseKnownHosts([]byte(input)) + if err != nil { + if len(test.err) == 0 { + t.Errorf("#%d: unexpectedly failed with %q", i, err) + } else if !strings.Contains(err.Error(), test.err) { + t.Errorf("#%d: expected error containing %q, but got %q", i, test.err, err) + } + continue + } else if len(test.err) != 0 { + t.Errorf("#%d: succeeded but expected error including %q", i, test.err) + continue + } + + if !reflect.DeepEqual(expectedKey, pubKey) { + t.Errorf("#%d: expected key %#v, but got %#v", i, expectedKey, pubKey) + } + + if marker != test.marker { + t.Errorf("#%d: expected marker %q, but got %q", i, test.marker, marker) + } + + if comment != test.comment { + t.Errorf("#%d: expected comment %q, but got %q", i, test.comment, comment) + } + + if !reflect.DeepEqual(test.hosts, hosts) { + t.Errorf("#%d: expected hosts %#v, but got %#v", i, test.hosts, hosts) + } + + if rest := string(rest); rest != test.rest { + t.Errorf("#%d: expected remaining input to be %q, but got %q", i, test.rest, rest) + } + } +} diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go new file mode 100644 index 00000000..07744ad6 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mac.go @@ -0,0 +1,57 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Message authentication support + +import ( + "crypto/hmac" + "crypto/sha1" + "crypto/sha256" + "hash" +) + +type macMode struct { + keySize int + new func(key []byte) hash.Hash +} + +// truncatingMAC wraps around a hash.Hash and truncates the output digest to +// a given size. +type truncatingMAC struct { + length int + hmac hash.Hash +} + +func (t truncatingMAC) Write(data []byte) (int, error) { + return t.hmac.Write(data) +} + +func (t truncatingMAC) Sum(in []byte) []byte { + out := t.hmac.Sum(in) + return out[:len(in)+t.length] +} + +func (t truncatingMAC) Reset() { + t.hmac.Reset() +} + +func (t truncatingMAC) Size() int { + return t.length +} + +func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } + +var macModes = map[string]*macMode{ + "hmac-sha2-256": {32, func(key []byte) hash.Hash { + return hmac.New(sha256.New, key) + }}, + "hmac-sha1": {20, func(key []byte) hash.Hash { + return hmac.New(sha1.New, key) + }}, + "hmac-sha1-96": {20, func(key []byte) hash.Hash { + return truncatingMAC{12, hmac.New(sha1.New, key)} + }}, +} diff --git a/vendor/golang.org/x/crypto/ssh/mempipe_test.go b/vendor/golang.org/x/crypto/ssh/mempipe_test.go new file mode 100644 index 00000000..8697cd61 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mempipe_test.go @@ -0,0 +1,110 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "sync" + "testing" +) + +// An in-memory packetConn. It is safe to call Close and writePacket +// from different goroutines. +type memTransport struct { + eof bool + pending [][]byte + write *memTransport + sync.Mutex + *sync.Cond +} + +func (t *memTransport) readPacket() ([]byte, error) { + t.Lock() + defer t.Unlock() + for { + if len(t.pending) > 0 { + r := t.pending[0] + t.pending = t.pending[1:] + return r, nil + } + if t.eof { + return nil, io.EOF + } + t.Cond.Wait() + } +} + +func (t *memTransport) closeSelf() error { + t.Lock() + defer t.Unlock() + if t.eof { + return io.EOF + } + t.eof = true + t.Cond.Broadcast() + return nil +} + +func (t *memTransport) Close() error { + err := t.write.closeSelf() + t.closeSelf() + return err +} + +func (t *memTransport) writePacket(p []byte) error { + t.write.Lock() + defer t.write.Unlock() + if t.write.eof { + return io.EOF + } + c := make([]byte, len(p)) + copy(c, p) + t.write.pending = append(t.write.pending, c) + t.write.Cond.Signal() + return nil +} + +func memPipe() (a, b packetConn) { + t1 := memTransport{} + t2 := memTransport{} + t1.write = &t2 + t2.write = &t1 + t1.Cond = sync.NewCond(&t1.Mutex) + t2.Cond = sync.NewCond(&t2.Mutex) + return &t1, &t2 +} + +func TestMemPipe(t *testing.T) { + a, b := memPipe() + if err := a.writePacket([]byte{42}); err != nil { + t.Fatalf("writePacket: %v", err) + } + if err := a.Close(); err != nil { + t.Fatal("Close: ", err) + } + p, err := b.readPacket() + if err != nil { + t.Fatal("readPacket: ", err) + } + if len(p) != 1 || p[0] != 42 { + t.Fatalf("got %v, want {42}", p) + } + p, err = b.readPacket() + if err != io.EOF { + t.Fatalf("got %v, %v, want EOF", p, err) + } +} + +func TestDoubleClose(t *testing.T) { + a, _ := memPipe() + err := a.Close() + if err != nil { + t.Errorf("Close: %v", err) + } + err = a.Close() + if err != io.EOF { + t.Errorf("expect EOF on double close.") + } +} diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go new file mode 100644 index 00000000..e6ecd3af --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -0,0 +1,758 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "math/big" + "reflect" + "strconv" + "strings" +) + +// These are SSH message type numbers. They are scattered around several +// documents but many were taken from [SSH-PARAMETERS]. +const ( + msgIgnore = 2 + msgUnimplemented = 3 + msgDebug = 4 + msgNewKeys = 21 + + // Standard authentication messages + msgUserAuthSuccess = 52 + msgUserAuthBanner = 53 +) + +// SSH messages: +// +// These structures mirror the wire format of the corresponding SSH messages. +// They are marshaled using reflection with the marshal and unmarshal functions +// in this file. The only wrinkle is that a final member of type []byte with a +// ssh tag of "rest" receives the remainder of a packet when unmarshaling. + +// See RFC 4253, section 11.1. +const msgDisconnect = 1 + +// disconnectMsg is the message that signals a disconnect. It is also +// the error type returned from mux.Wait() +type disconnectMsg struct { + Reason uint32 `sshtype:"1"` + Message string + Language string +} + +func (d *disconnectMsg) Error() string { + return fmt.Sprintf("ssh: disconnect, reason %d: %s", d.Reason, d.Message) +} + +// See RFC 4253, section 7.1. +const msgKexInit = 20 + +type kexInitMsg struct { + Cookie [16]byte `sshtype:"20"` + KexAlgos []string + ServerHostKeyAlgos []string + CiphersClientServer []string + CiphersServerClient []string + MACsClientServer []string + MACsServerClient []string + CompressionClientServer []string + CompressionServerClient []string + LanguagesClientServer []string + LanguagesServerClient []string + FirstKexFollows bool + Reserved uint32 +} + +// See RFC 4253, section 8. + +// Diffie-Helman +const msgKexDHInit = 30 + +type kexDHInitMsg struct { + X *big.Int `sshtype:"30"` +} + +const msgKexECDHInit = 30 + +type kexECDHInitMsg struct { + ClientPubKey []byte `sshtype:"30"` +} + +const msgKexECDHReply = 31 + +type kexECDHReplyMsg struct { + HostKey []byte `sshtype:"31"` + EphemeralPubKey []byte + Signature []byte +} + +const msgKexDHReply = 31 + +type kexDHReplyMsg struct { + HostKey []byte `sshtype:"31"` + Y *big.Int + Signature []byte +} + +// See RFC 4253, section 10. +const msgServiceRequest = 5 + +type serviceRequestMsg struct { + Service string `sshtype:"5"` +} + +// See RFC 4253, section 10. +const msgServiceAccept = 6 + +type serviceAcceptMsg struct { + Service string `sshtype:"6"` +} + +// See RFC 4252, section 5. +const msgUserAuthRequest = 50 + +type userAuthRequestMsg struct { + User string `sshtype:"50"` + Service string + Method string + Payload []byte `ssh:"rest"` +} + +// Used for debug printouts of packets. +type userAuthSuccessMsg struct { +} + +// See RFC 4252, section 5.1 +const msgUserAuthFailure = 51 + +type userAuthFailureMsg struct { + Methods []string `sshtype:"51"` + PartialSuccess bool +} + +// See RFC 4256, section 3.2 +const msgUserAuthInfoRequest = 60 +const msgUserAuthInfoResponse = 61 + +type userAuthInfoRequestMsg struct { + User string `sshtype:"60"` + Instruction string + DeprecatedLanguage string + NumPrompts uint32 + Prompts []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.1. +const msgChannelOpen = 90 + +type channelOpenMsg struct { + ChanType string `sshtype:"90"` + PeersId uint32 + PeersWindow uint32 + MaxPacketSize uint32 + TypeSpecificData []byte `ssh:"rest"` +} + +const msgChannelExtendedData = 95 +const msgChannelData = 94 + +// Used for debug print outs of packets. +type channelDataMsg struct { + PeersId uint32 `sshtype:"94"` + Length uint32 + Rest []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.1. +const msgChannelOpenConfirm = 91 + +type channelOpenConfirmMsg struct { + PeersId uint32 `sshtype:"91"` + MyId uint32 + MyWindow uint32 + MaxPacketSize uint32 + TypeSpecificData []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.1. +const msgChannelOpenFailure = 92 + +type channelOpenFailureMsg struct { + PeersId uint32 `sshtype:"92"` + Reason RejectionReason + Message string + Language string +} + +const msgChannelRequest = 98 + +type channelRequestMsg struct { + PeersId uint32 `sshtype:"98"` + Request string + WantReply bool + RequestSpecificData []byte `ssh:"rest"` +} + +// See RFC 4254, section 5.4. +const msgChannelSuccess = 99 + +type channelRequestSuccessMsg struct { + PeersId uint32 `sshtype:"99"` +} + +// See RFC 4254, section 5.4. +const msgChannelFailure = 100 + +type channelRequestFailureMsg struct { + PeersId uint32 `sshtype:"100"` +} + +// See RFC 4254, section 5.3 +const msgChannelClose = 97 + +type channelCloseMsg struct { + PeersId uint32 `sshtype:"97"` +} + +// See RFC 4254, section 5.3 +const msgChannelEOF = 96 + +type channelEOFMsg struct { + PeersId uint32 `sshtype:"96"` +} + +// See RFC 4254, section 4 +const msgGlobalRequest = 80 + +type globalRequestMsg struct { + Type string `sshtype:"80"` + WantReply bool + Data []byte `ssh:"rest"` +} + +// See RFC 4254, section 4 +const msgRequestSuccess = 81 + +type globalRequestSuccessMsg struct { + Data []byte `ssh:"rest" sshtype:"81"` +} + +// See RFC 4254, section 4 +const msgRequestFailure = 82 + +type globalRequestFailureMsg struct { + Data []byte `ssh:"rest" sshtype:"82"` +} + +// See RFC 4254, section 5.2 +const msgChannelWindowAdjust = 93 + +type windowAdjustMsg struct { + PeersId uint32 `sshtype:"93"` + AdditionalBytes uint32 +} + +// See RFC 4252, section 7 +const msgUserAuthPubKeyOk = 60 + +type userAuthPubKeyOkMsg struct { + Algo string `sshtype:"60"` + PubKey []byte +} + +// typeTags returns the possible type bytes for the given reflect.Type, which +// should be a struct. The possible values are separated by a '|' character. +func typeTags(structType reflect.Type) (tags []byte) { + tagStr := structType.Field(0).Tag.Get("sshtype") + + for _, tag := range strings.Split(tagStr, "|") { + i, err := strconv.Atoi(tag) + if err == nil { + tags = append(tags, byte(i)) + } + } + + return tags +} + +func fieldError(t reflect.Type, field int, problem string) error { + if problem != "" { + problem = ": " + problem + } + return fmt.Errorf("ssh: unmarshal error for field %s of type %s%s", t.Field(field).Name, t.Name(), problem) +} + +var errShortRead = errors.New("ssh: short read") + +// Unmarshal parses data in SSH wire format into a structure. The out +// argument should be a pointer to struct. If the first member of the +// struct has the "sshtype" tag set to a '|'-separated set of numbers +// in decimal, the packet must start with one of those numbers. In +// case of error, Unmarshal returns a ParseError or +// UnexpectedMessageError. +func Unmarshal(data []byte, out interface{}) error { + v := reflect.ValueOf(out).Elem() + structType := v.Type() + expectedTypes := typeTags(structType) + + var expectedType byte + if len(expectedTypes) > 0 { + expectedType = expectedTypes[0] + } + + if len(data) == 0 { + return parseError(expectedType) + } + + if len(expectedTypes) > 0 { + goodType := false + for _, e := range expectedTypes { + if e > 0 && data[0] == e { + goodType = true + break + } + } + if !goodType { + return fmt.Errorf("ssh: unexpected message type %d (expected one of %v)", data[0], expectedTypes) + } + data = data[1:] + } + + var ok bool + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + t := field.Type() + switch t.Kind() { + case reflect.Bool: + if len(data) < 1 { + return errShortRead + } + field.SetBool(data[0] != 0) + data = data[1:] + case reflect.Array: + if t.Elem().Kind() != reflect.Uint8 { + return fieldError(structType, i, "array of unsupported type") + } + if len(data) < t.Len() { + return errShortRead + } + for j, n := 0, t.Len(); j < n; j++ { + field.Index(j).Set(reflect.ValueOf(data[j])) + } + data = data[t.Len():] + case reflect.Uint64: + var u64 uint64 + if u64, data, ok = parseUint64(data); !ok { + return errShortRead + } + field.SetUint(u64) + case reflect.Uint32: + var u32 uint32 + if u32, data, ok = parseUint32(data); !ok { + return errShortRead + } + field.SetUint(uint64(u32)) + case reflect.Uint8: + if len(data) < 1 { + return errShortRead + } + field.SetUint(uint64(data[0])) + data = data[1:] + case reflect.String: + var s []byte + if s, data, ok = parseString(data); !ok { + return fieldError(structType, i, "") + } + field.SetString(string(s)) + case reflect.Slice: + switch t.Elem().Kind() { + case reflect.Uint8: + if structType.Field(i).Tag.Get("ssh") == "rest" { + field.Set(reflect.ValueOf(data)) + data = nil + } else { + var s []byte + if s, data, ok = parseString(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(s)) + } + case reflect.String: + var nl []string + if nl, data, ok = parseNameList(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(nl)) + default: + return fieldError(structType, i, "slice of unsupported type") + } + case reflect.Ptr: + if t == bigIntType { + var n *big.Int + if n, data, ok = parseInt(data); !ok { + return errShortRead + } + field.Set(reflect.ValueOf(n)) + } else { + return fieldError(structType, i, "pointer to unsupported type") + } + default: + return fieldError(structType, i, fmt.Sprintf("unsupported type: %v", t)) + } + } + + if len(data) != 0 { + return parseError(expectedType) + } + + return nil +} + +// Marshal serializes the message in msg to SSH wire format. The msg +// argument should be a struct or pointer to struct. If the first +// member has the "sshtype" tag set to a number in decimal, that +// number is prepended to the result. If the last of member has the +// "ssh" tag set to "rest", its contents are appended to the output. +func Marshal(msg interface{}) []byte { + out := make([]byte, 0, 64) + return marshalStruct(out, msg) +} + +func marshalStruct(out []byte, msg interface{}) []byte { + v := reflect.Indirect(reflect.ValueOf(msg)) + msgTypes := typeTags(v.Type()) + if len(msgTypes) > 0 { + out = append(out, msgTypes[0]) + } + + for i, n := 0, v.NumField(); i < n; i++ { + field := v.Field(i) + switch t := field.Type(); t.Kind() { + case reflect.Bool: + var v uint8 + if field.Bool() { + v = 1 + } + out = append(out, v) + case reflect.Array: + if t.Elem().Kind() != reflect.Uint8 { + panic(fmt.Sprintf("array of non-uint8 in field %d: %T", i, field.Interface())) + } + for j, l := 0, t.Len(); j < l; j++ { + out = append(out, uint8(field.Index(j).Uint())) + } + case reflect.Uint32: + out = appendU32(out, uint32(field.Uint())) + case reflect.Uint64: + out = appendU64(out, uint64(field.Uint())) + case reflect.Uint8: + out = append(out, uint8(field.Uint())) + case reflect.String: + s := field.String() + out = appendInt(out, len(s)) + out = append(out, s...) + case reflect.Slice: + switch t.Elem().Kind() { + case reflect.Uint8: + if v.Type().Field(i).Tag.Get("ssh") != "rest" { + out = appendInt(out, field.Len()) + } + out = append(out, field.Bytes()...) + case reflect.String: + offset := len(out) + out = appendU32(out, 0) + if n := field.Len(); n > 0 { + for j := 0; j < n; j++ { + f := field.Index(j) + if j != 0 { + out = append(out, ',') + } + out = append(out, f.String()...) + } + // overwrite length value + binary.BigEndian.PutUint32(out[offset:], uint32(len(out)-offset-4)) + } + default: + panic(fmt.Sprintf("slice of unknown type in field %d: %T", i, field.Interface())) + } + case reflect.Ptr: + if t == bigIntType { + var n *big.Int + nValue := reflect.ValueOf(&n) + nValue.Elem().Set(field) + needed := intLength(n) + oldLength := len(out) + + if cap(out)-len(out) < needed { + newOut := make([]byte, len(out), 2*(len(out)+needed)) + copy(newOut, out) + out = newOut + } + out = out[:oldLength+needed] + marshalInt(out[oldLength:], n) + } else { + panic(fmt.Sprintf("pointer to unknown type in field %d: %T", i, field.Interface())) + } + } + } + + return out +} + +var bigOne = big.NewInt(1) + +func parseString(in []byte) (out, rest []byte, ok bool) { + if len(in) < 4 { + return + } + length := binary.BigEndian.Uint32(in) + in = in[4:] + if uint32(len(in)) < length { + return + } + out = in[:length] + rest = in[length:] + ok = true + return +} + +var ( + comma = []byte{','} + emptyNameList = []string{} +) + +func parseNameList(in []byte) (out []string, rest []byte, ok bool) { + contents, rest, ok := parseString(in) + if !ok { + return + } + if len(contents) == 0 { + out = emptyNameList + return + } + parts := bytes.Split(contents, comma) + out = make([]string, len(parts)) + for i, part := range parts { + out[i] = string(part) + } + return +} + +func parseInt(in []byte) (out *big.Int, rest []byte, ok bool) { + contents, rest, ok := parseString(in) + if !ok { + return + } + out = new(big.Int) + + if len(contents) > 0 && contents[0]&0x80 == 0x80 { + // This is a negative number + notBytes := make([]byte, len(contents)) + for i := range notBytes { + notBytes[i] = ^contents[i] + } + out.SetBytes(notBytes) + out.Add(out, bigOne) + out.Neg(out) + } else { + // Positive number + out.SetBytes(contents) + } + ok = true + return +} + +func parseUint32(in []byte) (uint32, []byte, bool) { + if len(in) < 4 { + return 0, nil, false + } + return binary.BigEndian.Uint32(in), in[4:], true +} + +func parseUint64(in []byte) (uint64, []byte, bool) { + if len(in) < 8 { + return 0, nil, false + } + return binary.BigEndian.Uint64(in), in[8:], true +} + +func intLength(n *big.Int) int { + length := 4 /* length bytes */ + if n.Sign() < 0 { + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bitLen := nMinus1.BitLen() + if bitLen%8 == 0 { + // The number will need 0xff padding + length++ + } + length += (bitLen + 7) / 8 + } else if n.Sign() == 0 { + // A zero is the zero length string + } else { + bitLen := n.BitLen() + if bitLen%8 == 0 { + // The number will need 0x00 padding + length++ + } + length += (bitLen + 7) / 8 + } + + return length +} + +func marshalUint32(to []byte, n uint32) []byte { + binary.BigEndian.PutUint32(to, n) + return to[4:] +} + +func marshalUint64(to []byte, n uint64) []byte { + binary.BigEndian.PutUint64(to, n) + return to[8:] +} + +func marshalInt(to []byte, n *big.Int) []byte { + lengthBytes := to + to = to[4:] + length := 0 + + if n.Sign() < 0 { + // A negative number has to be converted to two's-complement + // form. So we'll subtract 1 and invert. If the + // most-significant-bit isn't set then we'll need to pad the + // beginning with 0xff in order to keep the number negative. + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bytes := nMinus1.Bytes() + for i := range bytes { + bytes[i] ^= 0xff + } + if len(bytes) == 0 || bytes[0]&0x80 == 0 { + to[0] = 0xff + to = to[1:] + length++ + } + nBytes := copy(to, bytes) + to = to[nBytes:] + length += nBytes + } else if n.Sign() == 0 { + // A zero is the zero length string + } else { + bytes := n.Bytes() + if len(bytes) > 0 && bytes[0]&0x80 != 0 { + // We'll have to pad this with a 0x00 in order to + // stop it looking like a negative number. + to[0] = 0 + to = to[1:] + length++ + } + nBytes := copy(to, bytes) + to = to[nBytes:] + length += nBytes + } + + lengthBytes[0] = byte(length >> 24) + lengthBytes[1] = byte(length >> 16) + lengthBytes[2] = byte(length >> 8) + lengthBytes[3] = byte(length) + return to +} + +func writeInt(w io.Writer, n *big.Int) { + length := intLength(n) + buf := make([]byte, length) + marshalInt(buf, n) + w.Write(buf) +} + +func writeString(w io.Writer, s []byte) { + var lengthBytes [4]byte + lengthBytes[0] = byte(len(s) >> 24) + lengthBytes[1] = byte(len(s) >> 16) + lengthBytes[2] = byte(len(s) >> 8) + lengthBytes[3] = byte(len(s)) + w.Write(lengthBytes[:]) + w.Write(s) +} + +func stringLength(n int) int { + return 4 + n +} + +func marshalString(to []byte, s []byte) []byte { + to[0] = byte(len(s) >> 24) + to[1] = byte(len(s) >> 16) + to[2] = byte(len(s) >> 8) + to[3] = byte(len(s)) + to = to[4:] + copy(to, s) + return to[len(s):] +} + +var bigIntType = reflect.TypeOf((*big.Int)(nil)) + +// Decode a packet into its corresponding message. +func decode(packet []byte) (interface{}, error) { + var msg interface{} + switch packet[0] { + case msgDisconnect: + msg = new(disconnectMsg) + case msgServiceRequest: + msg = new(serviceRequestMsg) + case msgServiceAccept: + msg = new(serviceAcceptMsg) + case msgKexInit: + msg = new(kexInitMsg) + case msgKexDHInit: + msg = new(kexDHInitMsg) + case msgKexDHReply: + msg = new(kexDHReplyMsg) + case msgUserAuthRequest: + msg = new(userAuthRequestMsg) + case msgUserAuthSuccess: + return new(userAuthSuccessMsg), nil + case msgUserAuthFailure: + msg = new(userAuthFailureMsg) + case msgUserAuthPubKeyOk: + msg = new(userAuthPubKeyOkMsg) + case msgGlobalRequest: + msg = new(globalRequestMsg) + case msgRequestSuccess: + msg = new(globalRequestSuccessMsg) + case msgRequestFailure: + msg = new(globalRequestFailureMsg) + case msgChannelOpen: + msg = new(channelOpenMsg) + case msgChannelData: + msg = new(channelDataMsg) + case msgChannelOpenConfirm: + msg = new(channelOpenConfirmMsg) + case msgChannelOpenFailure: + msg = new(channelOpenFailureMsg) + case msgChannelWindowAdjust: + msg = new(windowAdjustMsg) + case msgChannelEOF: + msg = new(channelEOFMsg) + case msgChannelClose: + msg = new(channelCloseMsg) + case msgChannelRequest: + msg = new(channelRequestMsg) + case msgChannelSuccess: + msg = new(channelRequestSuccessMsg) + case msgChannelFailure: + msg = new(channelRequestFailureMsg) + default: + return nil, unexpectedMessageError(0, packet[0]) + } + if err := Unmarshal(packet, msg); err != nil { + return nil, err + } + return msg, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/messages_test.go b/vendor/golang.org/x/crypto/ssh/messages_test.go new file mode 100644 index 00000000..e7907641 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/messages_test.go @@ -0,0 +1,288 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "math/big" + "math/rand" + "reflect" + "testing" + "testing/quick" +) + +var intLengthTests = []struct { + val, length int +}{ + {0, 4 + 0}, + {1, 4 + 1}, + {127, 4 + 1}, + {128, 4 + 2}, + {-1, 4 + 1}, +} + +func TestIntLength(t *testing.T) { + for _, test := range intLengthTests { + v := new(big.Int).SetInt64(int64(test.val)) + length := intLength(v) + if length != test.length { + t.Errorf("For %d, got length %d but expected %d", test.val, length, test.length) + } + } +} + +type msgAllTypes struct { + Bool bool `sshtype:"21"` + Array [16]byte + Uint64 uint64 + Uint32 uint32 + Uint8 uint8 + String string + Strings []string + Bytes []byte + Int *big.Int + Rest []byte `ssh:"rest"` +} + +func (t *msgAllTypes) Generate(rand *rand.Rand, size int) reflect.Value { + m := &msgAllTypes{} + m.Bool = rand.Intn(2) == 1 + randomBytes(m.Array[:], rand) + m.Uint64 = uint64(rand.Int63n(1<<63 - 1)) + m.Uint32 = uint32(rand.Intn((1 << 31) - 1)) + m.Uint8 = uint8(rand.Intn(1 << 8)) + m.String = string(m.Array[:]) + m.Strings = randomNameList(rand) + m.Bytes = m.Array[:] + m.Int = randomInt(rand) + m.Rest = m.Array[:] + return reflect.ValueOf(m) +} + +func TestMarshalUnmarshal(t *testing.T) { + rand := rand.New(rand.NewSource(0)) + iface := &msgAllTypes{} + ty := reflect.ValueOf(iface).Type() + + n := 100 + if testing.Short() { + n = 5 + } + for j := 0; j < n; j++ { + v, ok := quick.Value(ty, rand) + if !ok { + t.Errorf("failed to create value") + break + } + + m1 := v.Elem().Interface() + m2 := iface + + marshaled := Marshal(m1) + if err := Unmarshal(marshaled, m2); err != nil { + t.Errorf("Unmarshal %#v: %s", m1, err) + break + } + + if !reflect.DeepEqual(v.Interface(), m2) { + t.Errorf("got: %#v\nwant:%#v\n%x", m2, m1, marshaled) + break + } + } +} + +func TestUnmarshalEmptyPacket(t *testing.T) { + var b []byte + var m channelRequestSuccessMsg + if err := Unmarshal(b, &m); err == nil { + t.Fatalf("unmarshal of empty slice succeeded") + } +} + +func TestUnmarshalUnexpectedPacket(t *testing.T) { + type S struct { + I uint32 `sshtype:"43"` + S string + B bool + } + + s := S{11, "hello", true} + packet := Marshal(s) + packet[0] = 42 + roundtrip := S{} + err := Unmarshal(packet, &roundtrip) + if err == nil { + t.Fatal("expected error, not nil") + } +} + +func TestMarshalPtr(t *testing.T) { + s := struct { + S string + }{"hello"} + + m1 := Marshal(s) + m2 := Marshal(&s) + if !bytes.Equal(m1, m2) { + t.Errorf("got %q, want %q for marshaled pointer", m2, m1) + } +} + +func TestBareMarshalUnmarshal(t *testing.T) { + type S struct { + I uint32 + S string + B bool + } + + s := S{42, "hello", true} + packet := Marshal(s) + roundtrip := S{} + Unmarshal(packet, &roundtrip) + + if !reflect.DeepEqual(s, roundtrip) { + t.Errorf("got %#v, want %#v", roundtrip, s) + } +} + +func TestBareMarshal(t *testing.T) { + type S2 struct { + I uint32 + } + s := S2{42} + packet := Marshal(s) + i, rest, ok := parseUint32(packet) + if len(rest) > 0 || !ok { + t.Errorf("parseInt(%q): parse error", packet) + } + if i != s.I { + t.Errorf("got %d, want %d", i, s.I) + } +} + +func TestUnmarshalShortKexInitPacket(t *testing.T) { + // This used to panic. + // Issue 11348 + packet := []byte{0x14, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xff, 0xff, 0xff, 0xff} + kim := &kexInitMsg{} + if err := Unmarshal(packet, kim); err == nil { + t.Error("truncated packet unmarshaled without error") + } +} + +func TestMarshalMultiTag(t *testing.T) { + var res struct { + A uint32 `sshtype:"1|2"` + } + + good1 := struct { + A uint32 `sshtype:"1"` + }{ + 1, + } + good2 := struct { + A uint32 `sshtype:"2"` + }{ + 1, + } + + if e := Unmarshal(Marshal(good1), &res); e != nil { + t.Errorf("error unmarshaling multipart tag: %v", e) + } + + if e := Unmarshal(Marshal(good2), &res); e != nil { + t.Errorf("error unmarshaling multipart tag: %v", e) + } + + bad1 := struct { + A uint32 `sshtype:"3"` + }{ + 1, + } + if e := Unmarshal(Marshal(bad1), &res); e == nil { + t.Errorf("bad struct unmarshaled without error") + } +} + +func randomBytes(out []byte, rand *rand.Rand) { + for i := 0; i < len(out); i++ { + out[i] = byte(rand.Int31()) + } +} + +func randomNameList(rand *rand.Rand) []string { + ret := make([]string, rand.Int31()&15) + for i := range ret { + s := make([]byte, 1+(rand.Int31()&15)) + for j := range s { + s[j] = 'a' + uint8(rand.Int31()&15) + } + ret[i] = string(s) + } + return ret +} + +func randomInt(rand *rand.Rand) *big.Int { + return new(big.Int).SetInt64(int64(int32(rand.Uint32()))) +} + +func (*kexInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { + ki := &kexInitMsg{} + randomBytes(ki.Cookie[:], rand) + ki.KexAlgos = randomNameList(rand) + ki.ServerHostKeyAlgos = randomNameList(rand) + ki.CiphersClientServer = randomNameList(rand) + ki.CiphersServerClient = randomNameList(rand) + ki.MACsClientServer = randomNameList(rand) + ki.MACsServerClient = randomNameList(rand) + ki.CompressionClientServer = randomNameList(rand) + ki.CompressionServerClient = randomNameList(rand) + ki.LanguagesClientServer = randomNameList(rand) + ki.LanguagesServerClient = randomNameList(rand) + if rand.Int31()&1 == 1 { + ki.FirstKexFollows = true + } + return reflect.ValueOf(ki) +} + +func (*kexDHInitMsg) Generate(rand *rand.Rand, size int) reflect.Value { + dhi := &kexDHInitMsg{} + dhi.X = randomInt(rand) + return reflect.ValueOf(dhi) +} + +var ( + _kexInitMsg = new(kexInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() + _kexDHInitMsg = new(kexDHInitMsg).Generate(rand.New(rand.NewSource(0)), 10).Elem().Interface() + + _kexInit = Marshal(_kexInitMsg) + _kexDHInit = Marshal(_kexDHInitMsg) +) + +func BenchmarkMarshalKexInitMsg(b *testing.B) { + for i := 0; i < b.N; i++ { + Marshal(_kexInitMsg) + } +} + +func BenchmarkUnmarshalKexInitMsg(b *testing.B) { + m := new(kexInitMsg) + for i := 0; i < b.N; i++ { + Unmarshal(_kexInit, m) + } +} + +func BenchmarkMarshalKexDHInitMsg(b *testing.B) { + for i := 0; i < b.N; i++ { + Marshal(_kexDHInitMsg) + } +} + +func BenchmarkUnmarshalKexDHInitMsg(b *testing.B) { + m := new(kexDHInitMsg) + for i := 0; i < b.N; i++ { + Unmarshal(_kexDHInit, m) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/mux.go b/vendor/golang.org/x/crypto/ssh/mux.go new file mode 100644 index 00000000..f3a3ddd7 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mux.go @@ -0,0 +1,330 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "encoding/binary" + "fmt" + "io" + "log" + "sync" + "sync/atomic" +) + +// debugMux, if set, causes messages in the connection protocol to be +// logged. +const debugMux = false + +// chanList is a thread safe channel list. +type chanList struct { + // protects concurrent access to chans + sync.Mutex + + // chans are indexed by the local id of the channel, which the + // other side should send in the PeersId field. + chans []*channel + + // This is a debugging aid: it offsets all IDs by this + // amount. This helps distinguish otherwise identical + // server/client muxes + offset uint32 +} + +// Assigns a channel ID to the given channel. +func (c *chanList) add(ch *channel) uint32 { + c.Lock() + defer c.Unlock() + for i := range c.chans { + if c.chans[i] == nil { + c.chans[i] = ch + return uint32(i) + c.offset + } + } + c.chans = append(c.chans, ch) + return uint32(len(c.chans)-1) + c.offset +} + +// getChan returns the channel for the given ID. +func (c *chanList) getChan(id uint32) *channel { + id -= c.offset + + c.Lock() + defer c.Unlock() + if id < uint32(len(c.chans)) { + return c.chans[id] + } + return nil +} + +func (c *chanList) remove(id uint32) { + id -= c.offset + c.Lock() + if id < uint32(len(c.chans)) { + c.chans[id] = nil + } + c.Unlock() +} + +// dropAll forgets all channels it knows, returning them in a slice. +func (c *chanList) dropAll() []*channel { + c.Lock() + defer c.Unlock() + var r []*channel + + for _, ch := range c.chans { + if ch == nil { + continue + } + r = append(r, ch) + } + c.chans = nil + return r +} + +// mux represents the state for the SSH connection protocol, which +// multiplexes many channels onto a single packet transport. +type mux struct { + conn packetConn + chanList chanList + + incomingChannels chan NewChannel + + globalSentMu sync.Mutex + globalResponses chan interface{} + incomingRequests chan *Request + + errCond *sync.Cond + err error +} + +// When debugging, each new chanList instantiation has a different +// offset. +var globalOff uint32 + +func (m *mux) Wait() error { + m.errCond.L.Lock() + defer m.errCond.L.Unlock() + for m.err == nil { + m.errCond.Wait() + } + return m.err +} + +// newMux returns a mux that runs over the given connection. +func newMux(p packetConn) *mux { + m := &mux{ + conn: p, + incomingChannels: make(chan NewChannel, 16), + globalResponses: make(chan interface{}, 1), + incomingRequests: make(chan *Request, 16), + errCond: newCond(), + } + if debugMux { + m.chanList.offset = atomic.AddUint32(&globalOff, 1) + } + + go m.loop() + return m +} + +func (m *mux) sendMessage(msg interface{}) error { + p := Marshal(msg) + if debugMux { + log.Printf("send global(%d): %#v", m.chanList.offset, msg) + } + return m.conn.writePacket(p) +} + +func (m *mux) SendRequest(name string, wantReply bool, payload []byte) (bool, []byte, error) { + if wantReply { + m.globalSentMu.Lock() + defer m.globalSentMu.Unlock() + } + + if err := m.sendMessage(globalRequestMsg{ + Type: name, + WantReply: wantReply, + Data: payload, + }); err != nil { + return false, nil, err + } + + if !wantReply { + return false, nil, nil + } + + msg, ok := <-m.globalResponses + if !ok { + return false, nil, io.EOF + } + switch msg := msg.(type) { + case *globalRequestFailureMsg: + return false, msg.Data, nil + case *globalRequestSuccessMsg: + return true, msg.Data, nil + default: + return false, nil, fmt.Errorf("ssh: unexpected response to request: %#v", msg) + } +} + +// ackRequest must be called after processing a global request that +// has WantReply set. +func (m *mux) ackRequest(ok bool, data []byte) error { + if ok { + return m.sendMessage(globalRequestSuccessMsg{Data: data}) + } + return m.sendMessage(globalRequestFailureMsg{Data: data}) +} + +func (m *mux) Close() error { + return m.conn.Close() +} + +// loop runs the connection machine. It will process packets until an +// error is encountered. To synchronize on loop exit, use mux.Wait. +func (m *mux) loop() { + var err error + for err == nil { + err = m.onePacket() + } + + for _, ch := range m.chanList.dropAll() { + ch.close() + } + + close(m.incomingChannels) + close(m.incomingRequests) + close(m.globalResponses) + + m.conn.Close() + + m.errCond.L.Lock() + m.err = err + m.errCond.Broadcast() + m.errCond.L.Unlock() + + if debugMux { + log.Println("loop exit", err) + } +} + +// onePacket reads and processes one packet. +func (m *mux) onePacket() error { + packet, err := m.conn.readPacket() + if err != nil { + return err + } + + if debugMux { + if packet[0] == msgChannelData || packet[0] == msgChannelExtendedData { + log.Printf("decoding(%d): data packet - %d bytes", m.chanList.offset, len(packet)) + } else { + p, _ := decode(packet) + log.Printf("decoding(%d): %d %#v - %d bytes", m.chanList.offset, packet[0], p, len(packet)) + } + } + + switch packet[0] { + case msgChannelOpen: + return m.handleChannelOpen(packet) + case msgGlobalRequest, msgRequestSuccess, msgRequestFailure: + return m.handleGlobalPacket(packet) + } + + // assume a channel packet. + if len(packet) < 5 { + return parseError(packet[0]) + } + id := binary.BigEndian.Uint32(packet[1:]) + ch := m.chanList.getChan(id) + if ch == nil { + return fmt.Errorf("ssh: invalid channel %d", id) + } + + return ch.handlePacket(packet) +} + +func (m *mux) handleGlobalPacket(packet []byte) error { + msg, err := decode(packet) + if err != nil { + return err + } + + switch msg := msg.(type) { + case *globalRequestMsg: + m.incomingRequests <- &Request{ + Type: msg.Type, + WantReply: msg.WantReply, + Payload: msg.Data, + mux: m, + } + case *globalRequestSuccessMsg, *globalRequestFailureMsg: + m.globalResponses <- msg + default: + panic(fmt.Sprintf("not a global message %#v", msg)) + } + + return nil +} + +// handleChannelOpen schedules a channel to be Accept()ed. +func (m *mux) handleChannelOpen(packet []byte) error { + var msg channelOpenMsg + if err := Unmarshal(packet, &msg); err != nil { + return err + } + + if msg.MaxPacketSize < minPacketLength || msg.MaxPacketSize > 1<<31 { + failMsg := channelOpenFailureMsg{ + PeersId: msg.PeersId, + Reason: ConnectionFailed, + Message: "invalid request", + Language: "en_US.UTF-8", + } + return m.sendMessage(failMsg) + } + + c := m.newChannel(msg.ChanType, channelInbound, msg.TypeSpecificData) + c.remoteId = msg.PeersId + c.maxRemotePayload = msg.MaxPacketSize + c.remoteWin.add(msg.PeersWindow) + m.incomingChannels <- c + return nil +} + +func (m *mux) OpenChannel(chanType string, extra []byte) (Channel, <-chan *Request, error) { + ch, err := m.openChannel(chanType, extra) + if err != nil { + return nil, nil, err + } + + return ch, ch.incomingRequests, nil +} + +func (m *mux) openChannel(chanType string, extra []byte) (*channel, error) { + ch := m.newChannel(chanType, channelOutbound, extra) + + ch.maxIncomingPayload = channelMaxPacket + + open := channelOpenMsg{ + ChanType: chanType, + PeersWindow: ch.myWindow, + MaxPacketSize: ch.maxIncomingPayload, + TypeSpecificData: extra, + PeersId: ch.localId, + } + if err := m.sendMessage(open); err != nil { + return nil, err + } + + switch msg := (<-ch.msg).(type) { + case *channelOpenConfirmMsg: + return ch, nil + case *channelOpenFailureMsg: + return nil, &OpenChannelError{msg.Reason, msg.Message} + default: + return nil, fmt.Errorf("ssh: unexpected packet in response to channel open: %T", msg) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/mux_test.go b/vendor/golang.org/x/crypto/ssh/mux_test.go new file mode 100644 index 00000000..591aae8e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mux_test.go @@ -0,0 +1,502 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "io" + "io/ioutil" + "sync" + "testing" +) + +func muxPair() (*mux, *mux) { + a, b := memPipe() + + s := newMux(a) + c := newMux(b) + + return s, c +} + +// Returns both ends of a channel, and the mux for the the 2nd +// channel. +func channelPair(t *testing.T) (*channel, *channel, *mux) { + c, s := muxPair() + + res := make(chan *channel, 1) + go func() { + newCh, ok := <-s.incomingChannels + if !ok { + t.Fatalf("No incoming channel") + } + if newCh.ChannelType() != "chan" { + t.Fatalf("got type %q want chan", newCh.ChannelType()) + } + ch, _, err := newCh.Accept() + if err != nil { + t.Fatalf("Accept %v", err) + } + res <- ch.(*channel) + }() + + ch, err := c.openChannel("chan", nil) + if err != nil { + t.Fatalf("OpenChannel: %v", err) + } + + return <-res, ch, c +} + +// Test that stderr and stdout can be addressed from different +// goroutines. This is intended for use with the race detector. +func TestMuxChannelExtendedThreadSafety(t *testing.T) { + writer, reader, mux := channelPair(t) + defer writer.Close() + defer reader.Close() + defer mux.Close() + + var wr, rd sync.WaitGroup + magic := "hello world" + + wr.Add(2) + go func() { + io.WriteString(writer, magic) + wr.Done() + }() + go func() { + io.WriteString(writer.Stderr(), magic) + wr.Done() + }() + + rd.Add(2) + go func() { + c, err := ioutil.ReadAll(reader) + if string(c) != magic { + t.Fatalf("stdout read got %q, want %q (error %s)", c, magic, err) + } + rd.Done() + }() + go func() { + c, err := ioutil.ReadAll(reader.Stderr()) + if string(c) != magic { + t.Fatalf("stderr read got %q, want %q (error %s)", c, magic, err) + } + rd.Done() + }() + + wr.Wait() + writer.CloseWrite() + rd.Wait() +} + +func TestMuxReadWrite(t *testing.T) { + s, c, mux := channelPair(t) + defer s.Close() + defer c.Close() + defer mux.Close() + + magic := "hello world" + magicExt := "hello stderr" + go func() { + _, err := s.Write([]byte(magic)) + if err != nil { + t.Fatalf("Write: %v", err) + } + _, err = s.Extended(1).Write([]byte(magicExt)) + if err != nil { + t.Fatalf("Write: %v", err) + } + err = s.Close() + if err != nil { + t.Fatalf("Close: %v", err) + } + }() + + var buf [1024]byte + n, err := c.Read(buf[:]) + if err != nil { + t.Fatalf("server Read: %v", err) + } + got := string(buf[:n]) + if got != magic { + t.Fatalf("server: got %q want %q", got, magic) + } + + n, err = c.Extended(1).Read(buf[:]) + if err != nil { + t.Fatalf("server Read: %v", err) + } + + got = string(buf[:n]) + if got != magicExt { + t.Fatalf("server: got %q want %q", got, magic) + } +} + +func TestMuxChannelOverflow(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + writer.Write(make([]byte, 1)) + wDone <- 1 + }() + writer.remoteWin.waitWriterBlocked() + + // Send 1 byte. + packet := make([]byte, 1+4+4+1) + packet[0] = msgChannelData + marshalUint32(packet[1:], writer.remoteId) + marshalUint32(packet[5:], uint32(1)) + packet[9] = 42 + + if err := writer.mux.conn.writePacket(packet); err != nil { + t.Errorf("could not send packet") + } + if _, err := reader.SendRequest("hello", true, nil); err == nil { + t.Errorf("SendRequest succeeded.") + } + <-wDone +} + +func TestMuxChannelCloseWriteUnblock(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + if _, err := writer.Write(make([]byte, 1)); err != io.EOF { + t.Errorf("got %v, want EOF for unblock write", err) + } + wDone <- 1 + }() + + writer.remoteWin.waitWriterBlocked() + reader.Close() + <-wDone +} + +func TestMuxConnectionCloseWriteUnblock(t *testing.T) { + reader, writer, mux := channelPair(t) + defer reader.Close() + defer writer.Close() + defer mux.Close() + + wDone := make(chan int, 1) + go func() { + if _, err := writer.Write(make([]byte, channelWindowSize)); err != nil { + t.Errorf("could not fill window: %v", err) + } + if _, err := writer.Write(make([]byte, 1)); err != io.EOF { + t.Errorf("got %v, want EOF for unblock write", err) + } + wDone <- 1 + }() + + writer.remoteWin.waitWriterBlocked() + mux.Close() + <-wDone +} + +func TestMuxReject(t *testing.T) { + client, server := muxPair() + defer server.Close() + defer client.Close() + + go func() { + ch, ok := <-server.incomingChannels + if !ok { + t.Fatalf("Accept") + } + if ch.ChannelType() != "ch" || string(ch.ExtraData()) != "extra" { + t.Fatalf("unexpected channel: %q, %q", ch.ChannelType(), ch.ExtraData()) + } + ch.Reject(RejectionReason(42), "message") + }() + + ch, err := client.openChannel("ch", []byte("extra")) + if ch != nil { + t.Fatal("openChannel not rejected") + } + + ocf, ok := err.(*OpenChannelError) + if !ok { + t.Errorf("got %#v want *OpenChannelError", err) + } else if ocf.Reason != 42 || ocf.Message != "message" { + t.Errorf("got %#v, want {Reason: 42, Message: %q}", ocf, "message") + } + + want := "ssh: rejected: unknown reason 42 (message)" + if err.Error() != want { + t.Errorf("got %q, want %q", err.Error(), want) + } +} + +func TestMuxChannelRequest(t *testing.T) { + client, server, mux := channelPair(t) + defer server.Close() + defer client.Close() + defer mux.Close() + + var received int + var wg sync.WaitGroup + wg.Add(1) + go func() { + for r := range server.incomingRequests { + received++ + r.Reply(r.Type == "yes", nil) + } + wg.Done() + }() + _, err := client.SendRequest("yes", false, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + ok, err := client.SendRequest("yes", true, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + + if !ok { + t.Errorf("SendRequest(yes): %v", ok) + + } + + ok, err = client.SendRequest("no", true, nil) + if err != nil { + t.Fatalf("SendRequest: %v", err) + } + if ok { + t.Errorf("SendRequest(no): %v", ok) + + } + + client.Close() + wg.Wait() + + if received != 3 { + t.Errorf("got %d requests, want %d", received, 3) + } +} + +func TestMuxGlobalRequest(t *testing.T) { + clientMux, serverMux := muxPair() + defer serverMux.Close() + defer clientMux.Close() + + var seen bool + go func() { + for r := range serverMux.incomingRequests { + seen = seen || r.Type == "peek" + if r.WantReply { + err := r.Reply(r.Type == "yes", + append([]byte(r.Type), r.Payload...)) + if err != nil { + t.Errorf("AckRequest: %v", err) + } + } + } + }() + + _, _, err := clientMux.SendRequest("peek", false, nil) + if err != nil { + t.Errorf("SendRequest: %v", err) + } + + ok, data, err := clientMux.SendRequest("yes", true, []byte("a")) + if !ok || string(data) != "yesa" || err != nil { + t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", + ok, data, err) + } + if ok, data, err := clientMux.SendRequest("yes", true, []byte("a")); !ok || string(data) != "yesa" || err != nil { + t.Errorf("SendRequest(\"yes\", true, \"a\"): %v %v %v", + ok, data, err) + } + + if ok, data, err := clientMux.SendRequest("no", true, []byte("a")); ok || string(data) != "noa" || err != nil { + t.Errorf("SendRequest(\"no\", true, \"a\"): %v %v %v", + ok, data, err) + } + + if !seen { + t.Errorf("never saw 'peek' request") + } +} + +func TestMuxGlobalRequestUnblock(t *testing.T) { + clientMux, serverMux := muxPair() + defer serverMux.Close() + defer clientMux.Close() + + result := make(chan error, 1) + go func() { + _, _, err := clientMux.SendRequest("hello", true, nil) + result <- err + }() + + <-serverMux.incomingRequests + serverMux.conn.Close() + err := <-result + + if err != io.EOF { + t.Errorf("want EOF, got %v", io.EOF) + } +} + +func TestMuxChannelRequestUnblock(t *testing.T) { + a, b, connB := channelPair(t) + defer a.Close() + defer b.Close() + defer connB.Close() + + result := make(chan error, 1) + go func() { + _, err := a.SendRequest("hello", true, nil) + result <- err + }() + + <-b.incomingRequests + connB.conn.Close() + err := <-result + + if err != io.EOF { + t.Errorf("want EOF, got %v", err) + } +} + +func TestMuxCloseChannel(t *testing.T) { + r, w, mux := channelPair(t) + defer mux.Close() + defer r.Close() + defer w.Close() + + result := make(chan error, 1) + go func() { + var b [1024]byte + _, err := r.Read(b[:]) + result <- err + }() + if err := w.Close(); err != nil { + t.Errorf("w.Close: %v", err) + } + + if _, err := w.Write([]byte("hello")); err != io.EOF { + t.Errorf("got err %v, want io.EOF after Close", err) + } + + if err := <-result; err != io.EOF { + t.Errorf("got %v (%T), want io.EOF", err, err) + } +} + +func TestMuxCloseWriteChannel(t *testing.T) { + r, w, mux := channelPair(t) + defer mux.Close() + + result := make(chan error, 1) + go func() { + var b [1024]byte + _, err := r.Read(b[:]) + result <- err + }() + if err := w.CloseWrite(); err != nil { + t.Errorf("w.CloseWrite: %v", err) + } + + if _, err := w.Write([]byte("hello")); err != io.EOF { + t.Errorf("got err %v, want io.EOF after CloseWrite", err) + } + + if err := <-result; err != io.EOF { + t.Errorf("got %v (%T), want io.EOF", err, err) + } +} + +func TestMuxInvalidRecord(t *testing.T) { + a, b := muxPair() + defer a.Close() + defer b.Close() + + packet := make([]byte, 1+4+4+1) + packet[0] = msgChannelData + marshalUint32(packet[1:], 29348723 /* invalid channel id */) + marshalUint32(packet[5:], 1) + packet[9] = 42 + + a.conn.writePacket(packet) + go a.SendRequest("hello", false, nil) + // 'a' wrote an invalid packet, so 'b' has exited. + req, ok := <-b.incomingRequests + if ok { + t.Errorf("got request %#v after receiving invalid packet", req) + } +} + +func TestZeroWindowAdjust(t *testing.T) { + a, b, mux := channelPair(t) + defer a.Close() + defer b.Close() + defer mux.Close() + + go func() { + io.WriteString(a, "hello") + // bogus adjust. + a.sendMessage(windowAdjustMsg{}) + io.WriteString(a, "world") + a.Close() + }() + + want := "helloworld" + c, _ := ioutil.ReadAll(b) + if string(c) != want { + t.Errorf("got %q want %q", c, want) + } +} + +func TestMuxMaxPacketSize(t *testing.T) { + a, b, mux := channelPair(t) + defer a.Close() + defer b.Close() + defer mux.Close() + + large := make([]byte, a.maxRemotePayload+1) + packet := make([]byte, 1+4+4+1+len(large)) + packet[0] = msgChannelData + marshalUint32(packet[1:], a.remoteId) + marshalUint32(packet[5:], uint32(len(large))) + packet[9] = 42 + + if err := a.mux.conn.writePacket(packet); err != nil { + t.Errorf("could not send packet") + } + + go a.SendRequest("hello", false, nil) + + _, ok := <-b.incomingRequests + if ok { + t.Errorf("connection still alive after receiving large packet.") + } +} + +// Don't ship code with debug=true. +func TestDebug(t *testing.T) { + if debugMux { + t.Error("mux debug switched on") + } + if debugHandshake { + t.Error("handshake debug switched on") + } +} diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go new file mode 100644 index 00000000..37df1b30 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -0,0 +1,488 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "errors" + "fmt" + "io" + "net" +) + +// The Permissions type holds fine-grained permissions that are +// specific to a user or a specific authentication method for a +// user. Permissions, except for "source-address", must be enforced in +// the server application layer, after successful authentication. The +// Permissions are passed on in ServerConn so a server implementation +// can honor them. +type Permissions struct { + // Critical options restrict default permissions. Common + // restrictions are "source-address" and "force-command". If + // the server cannot enforce the restriction, or does not + // recognize it, the user should not authenticate. + CriticalOptions map[string]string + + // Extensions are extra functionality that the server may + // offer on authenticated connections. Common extensions are + // "permit-agent-forwarding", "permit-X11-forwarding". Lack of + // support for an extension does not preclude authenticating a + // user. + Extensions map[string]string +} + +// ServerConfig holds server specific configuration data. +type ServerConfig struct { + // Config contains configuration shared between client and server. + Config + + hostKeys []Signer + + // NoClientAuth is true if clients are allowed to connect without + // authenticating. + NoClientAuth bool + + // PasswordCallback, if non-nil, is called when a user + // attempts to authenticate using a password. + PasswordCallback func(conn ConnMetadata, password []byte) (*Permissions, error) + + // PublicKeyCallback, if non-nil, is called when a client attempts public + // key authentication. It must return true if the given public key is + // valid for the given user. For example, see CertChecker.Authenticate. + PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + + // KeyboardInteractiveCallback, if non-nil, is called when + // keyboard-interactive authentication is selected (RFC + // 4256). The client object's Challenge function should be + // used to query the user. The callback may offer multiple + // Challenge rounds. To avoid information leaks, the client + // should be presented a challenge even if the user is + // unknown. + KeyboardInteractiveCallback func(conn ConnMetadata, client KeyboardInteractiveChallenge) (*Permissions, error) + + // AuthLogCallback, if non-nil, is called to log all authentication + // attempts. + AuthLogCallback func(conn ConnMetadata, method string, err error) + + // ServerVersion is the version identification string to announce in + // the public handshake. + // If empty, a reasonable default is used. + // Note that RFC 4253 section 4.2 requires that this string start with + // "SSH-2.0-". + ServerVersion string +} + +// AddHostKey adds a private key as a host key. If an existing host +// key exists with the same algorithm, it is overwritten. Each server +// config must have at least one host key. +func (s *ServerConfig) AddHostKey(key Signer) { + for i, k := range s.hostKeys { + if k.PublicKey().Type() == key.PublicKey().Type() { + s.hostKeys[i] = key + return + } + } + + s.hostKeys = append(s.hostKeys, key) +} + +// cachedPubKey contains the results of querying whether a public key is +// acceptable for a user. +type cachedPubKey struct { + user string + pubKeyData []byte + result error + perms *Permissions +} + +const maxCachedPubKeys = 16 + +// pubKeyCache caches tests for public keys. Since SSH clients +// will query whether a public key is acceptable before attempting to +// authenticate with it, we end up with duplicate queries for public +// key validity. The cache only applies to a single ServerConn. +type pubKeyCache struct { + keys []cachedPubKey +} + +// get returns the result for a given user/algo/key tuple. +func (c *pubKeyCache) get(user string, pubKeyData []byte) (cachedPubKey, bool) { + for _, k := range c.keys { + if k.user == user && bytes.Equal(k.pubKeyData, pubKeyData) { + return k, true + } + } + return cachedPubKey{}, false +} + +// add adds the given tuple to the cache. +func (c *pubKeyCache) add(candidate cachedPubKey) { + if len(c.keys) < maxCachedPubKeys { + c.keys = append(c.keys, candidate) + } +} + +// ServerConn is an authenticated SSH connection, as seen from the +// server +type ServerConn struct { + Conn + + // If the succeeding authentication callback returned a + // non-nil Permissions pointer, it is stored here. + Permissions *Permissions +} + +// NewServerConn starts a new SSH server with c as the underlying +// transport. It starts with a handshake and, if the handshake is +// unsuccessful, it closes the connection and returns an error. The +// Request and NewChannel channels must be serviced, or the connection +// will hang. +func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewChannel, <-chan *Request, error) { + fullConf := *config + fullConf.SetDefaults() + s := &connection{ + sshConn: sshConn{conn: c}, + } + perms, err := s.serverHandshake(&fullConf) + if err != nil { + c.Close() + return nil, nil, nil, err + } + return &ServerConn{s, perms}, s.mux.incomingChannels, s.mux.incomingRequests, nil +} + +// signAndMarshal signs the data with the appropriate algorithm, +// and serializes the result in SSH wire format. +func signAndMarshal(k Signer, rand io.Reader, data []byte) ([]byte, error) { + sig, err := k.Sign(rand, data) + if err != nil { + return nil, err + } + + return Marshal(sig), nil +} + +// handshake performs key exchange and user authentication. +func (s *connection) serverHandshake(config *ServerConfig) (*Permissions, error) { + if len(config.hostKeys) == 0 { + return nil, errors.New("ssh: server has no host keys") + } + + if !config.NoClientAuth && config.PasswordCallback == nil && config.PublicKeyCallback == nil && config.KeyboardInteractiveCallback == nil { + return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") + } + + if config.ServerVersion != "" { + s.serverVersion = []byte(config.ServerVersion) + } else { + s.serverVersion = []byte(packageVersion) + } + var err error + s.clientVersion, err = exchangeVersions(s.sshConn.conn, s.serverVersion) + if err != nil { + return nil, err + } + + tr := newTransport(s.sshConn.conn, config.Rand, false /* not client */) + s.transport = newServerTransport(tr, s.clientVersion, s.serverVersion, config) + + if err := s.transport.requestInitialKeyChange(); err != nil { + return nil, err + } + + // We just did the key change, so the session ID is established. + s.sessionID = s.transport.getSessionID() + + var packet []byte + if packet, err = s.transport.readPacket(); err != nil { + return nil, err + } + + var serviceRequest serviceRequestMsg + if err = Unmarshal(packet, &serviceRequest); err != nil { + return nil, err + } + if serviceRequest.Service != serviceUserAuth { + return nil, errors.New("ssh: requested service '" + serviceRequest.Service + "' before authenticating") + } + serviceAccept := serviceAcceptMsg{ + Service: serviceUserAuth, + } + if err := s.transport.writePacket(Marshal(&serviceAccept)); err != nil { + return nil, err + } + + perms, err := s.serverAuthenticate(config) + if err != nil { + return nil, err + } + s.mux = newMux(s.transport) + return perms, err +} + +func isAcceptableAlgo(algo string) bool { + switch algo { + case KeyAlgoRSA, KeyAlgoDSA, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, KeyAlgoED25519, + CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01: + return true + } + return false +} + +func checkSourceAddress(addr net.Addr, sourceAddr string) error { + if addr == nil { + return errors.New("ssh: no address known for client, but source-address match required") + } + + tcpAddr, ok := addr.(*net.TCPAddr) + if !ok { + return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr) + } + + if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil { + if bytes.Equal(allowedIP, tcpAddr.IP) { + return nil + } + } else { + _, ipNet, err := net.ParseCIDR(sourceAddr) + if err != nil { + return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err) + } + + if ipNet.Contains(tcpAddr.IP) { + return nil + } + } + + return fmt.Errorf("ssh: remote address %v is not allowed because of source-address restriction", addr) +} + +func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { + var err error + var cache pubKeyCache + var perms *Permissions + +userAuthLoop: + for { + var userAuthReq userAuthRequestMsg + if packet, err := s.transport.readPacket(); err != nil { + return nil, err + } else if err = Unmarshal(packet, &userAuthReq); err != nil { + return nil, err + } + + if userAuthReq.Service != serviceSSH { + return nil, errors.New("ssh: client attempted to negotiate for unknown service: " + userAuthReq.Service) + } + + s.user = userAuthReq.User + perms = nil + authErr := errors.New("no auth passed yet") + + switch userAuthReq.Method { + case "none": + if config.NoClientAuth { + authErr = nil + } + case "password": + if config.PasswordCallback == nil { + authErr = errors.New("ssh: password auth not configured") + break + } + payload := userAuthReq.Payload + if len(payload) < 1 || payload[0] != 0 { + return nil, parseError(msgUserAuthRequest) + } + payload = payload[1:] + password, payload, ok := parseString(payload) + if !ok || len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + + perms, authErr = config.PasswordCallback(s, password) + case "keyboard-interactive": + if config.KeyboardInteractiveCallback == nil { + authErr = errors.New("ssh: keyboard-interactive auth not configubred") + break + } + + prompter := &sshClientKeyboardInteractive{s} + perms, authErr = config.KeyboardInteractiveCallback(s, prompter.Challenge) + case "publickey": + if config.PublicKeyCallback == nil { + authErr = errors.New("ssh: publickey auth not configured") + break + } + payload := userAuthReq.Payload + if len(payload) < 1 { + return nil, parseError(msgUserAuthRequest) + } + isQuery := payload[0] == 0 + payload = payload[1:] + algoBytes, payload, ok := parseString(payload) + if !ok { + return nil, parseError(msgUserAuthRequest) + } + algo := string(algoBytes) + if !isAcceptableAlgo(algo) { + authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) + break + } + + pubKeyData, payload, ok := parseString(payload) + if !ok { + return nil, parseError(msgUserAuthRequest) + } + + pubKey, err := ParsePublicKey(pubKeyData) + if err != nil { + return nil, err + } + + candidate, ok := cache.get(s.user, pubKeyData) + if !ok { + candidate.user = s.user + candidate.pubKeyData = pubKeyData + candidate.perms, candidate.result = config.PublicKeyCallback(s, pubKey) + if candidate.result == nil && candidate.perms != nil && candidate.perms.CriticalOptions != nil && candidate.perms.CriticalOptions[sourceAddressCriticalOption] != "" { + candidate.result = checkSourceAddress( + s.RemoteAddr(), + candidate.perms.CriticalOptions[sourceAddressCriticalOption]) + } + cache.add(candidate) + } + + if isQuery { + // The client can query if the given public key + // would be okay. + if len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + + if candidate.result == nil { + okMsg := userAuthPubKeyOkMsg{ + Algo: algo, + PubKey: pubKeyData, + } + if err = s.transport.writePacket(Marshal(&okMsg)); err != nil { + return nil, err + } + continue userAuthLoop + } + authErr = candidate.result + } else { + sig, payload, ok := parseSignature(payload) + if !ok || len(payload) > 0 { + return nil, parseError(msgUserAuthRequest) + } + // Ensure the public key algo and signature algo + // are supported. Compare the private key + // algorithm name that corresponds to algo with + // sig.Format. This is usually the same, but + // for certs, the names differ. + if !isAcceptableAlgo(sig.Format) { + break + } + signedData := buildDataSignedForAuth(s.transport.getSessionID(), userAuthReq, algoBytes, pubKeyData) + + if err := pubKey.Verify(signedData, sig); err != nil { + return nil, err + } + + authErr = candidate.result + perms = candidate.perms + } + default: + authErr = fmt.Errorf("ssh: unknown method %q", userAuthReq.Method) + } + + if config.AuthLogCallback != nil { + config.AuthLogCallback(s, userAuthReq.Method, authErr) + } + + if authErr == nil { + break userAuthLoop + } + + var failureMsg userAuthFailureMsg + if config.PasswordCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "password") + } + if config.PublicKeyCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "publickey") + } + if config.KeyboardInteractiveCallback != nil { + failureMsg.Methods = append(failureMsg.Methods, "keyboard-interactive") + } + + if len(failureMsg.Methods) == 0 { + return nil, errors.New("ssh: no authentication methods configured but NoClientAuth is also false") + } + + if err = s.transport.writePacket(Marshal(&failureMsg)); err != nil { + return nil, err + } + } + + if err = s.transport.writePacket([]byte{msgUserAuthSuccess}); err != nil { + return nil, err + } + return perms, nil +} + +// sshClientKeyboardInteractive implements a ClientKeyboardInteractive by +// asking the client on the other side of a ServerConn. +type sshClientKeyboardInteractive struct { + *connection +} + +func (c *sshClientKeyboardInteractive) Challenge(user, instruction string, questions []string, echos []bool) (answers []string, err error) { + if len(questions) != len(echos) { + return nil, errors.New("ssh: echos and questions must have equal length") + } + + var prompts []byte + for i := range questions { + prompts = appendString(prompts, questions[i]) + prompts = appendBool(prompts, echos[i]) + } + + if err := c.transport.writePacket(Marshal(&userAuthInfoRequestMsg{ + Instruction: instruction, + NumPrompts: uint32(len(questions)), + Prompts: prompts, + })); err != nil { + return nil, err + } + + packet, err := c.transport.readPacket() + if err != nil { + return nil, err + } + if packet[0] != msgUserAuthInfoResponse { + return nil, unexpectedMessageError(msgUserAuthInfoResponse, packet[0]) + } + packet = packet[1:] + + n, packet, ok := parseUint32(packet) + if !ok || int(n) != len(questions) { + return nil, parseError(msgUserAuthInfoResponse) + } + + for i := uint32(0); i < n; i++ { + ans, rest, ok := parseString(packet) + if !ok { + return nil, parseError(msgUserAuthInfoResponse) + } + + answers = append(answers, string(ans)) + packet = rest + } + if len(packet) != 0 { + return nil, errors.New("ssh: junk at end of message") + } + + return answers, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/session.go b/vendor/golang.org/x/crypto/ssh/session.go new file mode 100644 index 00000000..17e2aa85 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/session.go @@ -0,0 +1,627 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Session implements an interactive session described in +// "RFC 4254, section 6". + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "io/ioutil" + "sync" +) + +type Signal string + +// POSIX signals as listed in RFC 4254 Section 6.10. +const ( + SIGABRT Signal = "ABRT" + SIGALRM Signal = "ALRM" + SIGFPE Signal = "FPE" + SIGHUP Signal = "HUP" + SIGILL Signal = "ILL" + SIGINT Signal = "INT" + SIGKILL Signal = "KILL" + SIGPIPE Signal = "PIPE" + SIGQUIT Signal = "QUIT" + SIGSEGV Signal = "SEGV" + SIGTERM Signal = "TERM" + SIGUSR1 Signal = "USR1" + SIGUSR2 Signal = "USR2" +) + +var signals = map[Signal]int{ + SIGABRT: 6, + SIGALRM: 14, + SIGFPE: 8, + SIGHUP: 1, + SIGILL: 4, + SIGINT: 2, + SIGKILL: 9, + SIGPIPE: 13, + SIGQUIT: 3, + SIGSEGV: 11, + SIGTERM: 15, +} + +type TerminalModes map[uint8]uint32 + +// POSIX terminal mode flags as listed in RFC 4254 Section 8. +const ( + tty_OP_END = 0 + VINTR = 1 + VQUIT = 2 + VERASE = 3 + VKILL = 4 + VEOF = 5 + VEOL = 6 + VEOL2 = 7 + VSTART = 8 + VSTOP = 9 + VSUSP = 10 + VDSUSP = 11 + VREPRINT = 12 + VWERASE = 13 + VLNEXT = 14 + VFLUSH = 15 + VSWTCH = 16 + VSTATUS = 17 + VDISCARD = 18 + IGNPAR = 30 + PARMRK = 31 + INPCK = 32 + ISTRIP = 33 + INLCR = 34 + IGNCR = 35 + ICRNL = 36 + IUCLC = 37 + IXON = 38 + IXANY = 39 + IXOFF = 40 + IMAXBEL = 41 + ISIG = 50 + ICANON = 51 + XCASE = 52 + ECHO = 53 + ECHOE = 54 + ECHOK = 55 + ECHONL = 56 + NOFLSH = 57 + TOSTOP = 58 + IEXTEN = 59 + ECHOCTL = 60 + ECHOKE = 61 + PENDIN = 62 + OPOST = 70 + OLCUC = 71 + ONLCR = 72 + OCRNL = 73 + ONOCR = 74 + ONLRET = 75 + CS7 = 90 + CS8 = 91 + PARENB = 92 + PARODD = 93 + TTY_OP_ISPEED = 128 + TTY_OP_OSPEED = 129 +) + +// A Session represents a connection to a remote command or shell. +type Session struct { + // Stdin specifies the remote process's standard input. + // If Stdin is nil, the remote process reads from an empty + // bytes.Buffer. + Stdin io.Reader + + // Stdout and Stderr specify the remote process's standard + // output and error. + // + // If either is nil, Run connects the corresponding file + // descriptor to an instance of ioutil.Discard. There is a + // fixed amount of buffering that is shared for the two streams. + // If either blocks it may eventually cause the remote + // command to block. + Stdout io.Writer + Stderr io.Writer + + ch Channel // the channel backing this session + started bool // true once Start, Run or Shell is invoked. + copyFuncs []func() error + errors chan error // one send per copyFunc + + // true if pipe method is active + stdinpipe, stdoutpipe, stderrpipe bool + + // stdinPipeWriter is non-nil if StdinPipe has not been called + // and Stdin was specified by the user; it is the write end of + // a pipe connecting Session.Stdin to the stdin channel. + stdinPipeWriter io.WriteCloser + + exitStatus chan error +} + +// SendRequest sends an out-of-band channel request on the SSH channel +// underlying the session. +func (s *Session) SendRequest(name string, wantReply bool, payload []byte) (bool, error) { + return s.ch.SendRequest(name, wantReply, payload) +} + +func (s *Session) Close() error { + return s.ch.Close() +} + +// RFC 4254 Section 6.4. +type setenvRequest struct { + Name string + Value string +} + +// Setenv sets an environment variable that will be applied to any +// command executed by Shell or Run. +func (s *Session) Setenv(name, value string) error { + msg := setenvRequest{ + Name: name, + Value: value, + } + ok, err := s.ch.SendRequest("env", true, Marshal(&msg)) + if err == nil && !ok { + err = errors.New("ssh: setenv failed") + } + return err +} + +// RFC 4254 Section 6.2. +type ptyRequestMsg struct { + Term string + Columns uint32 + Rows uint32 + Width uint32 + Height uint32 + Modelist string +} + +// RequestPty requests the association of a pty with the session on the remote host. +func (s *Session) RequestPty(term string, h, w int, termmodes TerminalModes) error { + var tm []byte + for k, v := range termmodes { + kv := struct { + Key byte + Val uint32 + }{k, v} + + tm = append(tm, Marshal(&kv)...) + } + tm = append(tm, tty_OP_END) + req := ptyRequestMsg{ + Term: term, + Columns: uint32(w), + Rows: uint32(h), + Width: uint32(w * 8), + Height: uint32(h * 8), + Modelist: string(tm), + } + ok, err := s.ch.SendRequest("pty-req", true, Marshal(&req)) + if err == nil && !ok { + err = errors.New("ssh: pty-req failed") + } + return err +} + +// RFC 4254 Section 6.5. +type subsystemRequestMsg struct { + Subsystem string +} + +// RequestSubsystem requests the association of a subsystem with the session on the remote host. +// A subsystem is a predefined command that runs in the background when the ssh session is initiated +func (s *Session) RequestSubsystem(subsystem string) error { + msg := subsystemRequestMsg{ + Subsystem: subsystem, + } + ok, err := s.ch.SendRequest("subsystem", true, Marshal(&msg)) + if err == nil && !ok { + err = errors.New("ssh: subsystem request failed") + } + return err +} + +// RFC 4254 Section 6.9. +type signalMsg struct { + Signal string +} + +// Signal sends the given signal to the remote process. +// sig is one of the SIG* constants. +func (s *Session) Signal(sig Signal) error { + msg := signalMsg{ + Signal: string(sig), + } + + _, err := s.ch.SendRequest("signal", false, Marshal(&msg)) + return err +} + +// RFC 4254 Section 6.5. +type execMsg struct { + Command string +} + +// Start runs cmd on the remote host. Typically, the remote +// server passes cmd to the shell for interpretation. +// A Session only accepts one call to Run, Start or Shell. +func (s *Session) Start(cmd string) error { + if s.started { + return errors.New("ssh: session already started") + } + req := execMsg{ + Command: cmd, + } + + ok, err := s.ch.SendRequest("exec", true, Marshal(&req)) + if err == nil && !ok { + err = fmt.Errorf("ssh: command %v failed", cmd) + } + if err != nil { + return err + } + return s.start() +} + +// Run runs cmd on the remote host. Typically, the remote +// server passes cmd to the shell for interpretation. +// A Session only accepts one call to Run, Start, Shell, Output, +// or CombinedOutput. +// +// The returned error is nil if the command runs, has no problems +// copying stdin, stdout, and stderr, and exits with a zero exit +// status. +// +// If the remote server does not send an exit status, an error of type +// *ExitMissingError is returned. If the command completes +// unsuccessfully or is interrupted by a signal, the error is of type +// *ExitError. Other error types may be returned for I/O problems. +func (s *Session) Run(cmd string) error { + err := s.Start(cmd) + if err != nil { + return err + } + return s.Wait() +} + +// Output runs cmd on the remote host and returns its standard output. +func (s *Session) Output(cmd string) ([]byte, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + var b bytes.Buffer + s.Stdout = &b + err := s.Run(cmd) + return b.Bytes(), err +} + +type singleWriter struct { + b bytes.Buffer + mu sync.Mutex +} + +func (w *singleWriter) Write(p []byte) (int, error) { + w.mu.Lock() + defer w.mu.Unlock() + return w.b.Write(p) +} + +// CombinedOutput runs cmd on the remote host and returns its combined +// standard output and standard error. +func (s *Session) CombinedOutput(cmd string) ([]byte, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + if s.Stderr != nil { + return nil, errors.New("ssh: Stderr already set") + } + var b singleWriter + s.Stdout = &b + s.Stderr = &b + err := s.Run(cmd) + return b.b.Bytes(), err +} + +// Shell starts a login shell on the remote host. A Session only +// accepts one call to Run, Start, Shell, Output, or CombinedOutput. +func (s *Session) Shell() error { + if s.started { + return errors.New("ssh: session already started") + } + + ok, err := s.ch.SendRequest("shell", true, nil) + if err == nil && !ok { + return errors.New("ssh: could not start shell") + } + if err != nil { + return err + } + return s.start() +} + +func (s *Session) start() error { + s.started = true + + type F func(*Session) + for _, setupFd := range []F{(*Session).stdin, (*Session).stdout, (*Session).stderr} { + setupFd(s) + } + + s.errors = make(chan error, len(s.copyFuncs)) + for _, fn := range s.copyFuncs { + go func(fn func() error) { + s.errors <- fn() + }(fn) + } + return nil +} + +// Wait waits for the remote command to exit. +// +// The returned error is nil if the command runs, has no problems +// copying stdin, stdout, and stderr, and exits with a zero exit +// status. +// +// If the remote server does not send an exit status, an error of type +// *ExitMissingError is returned. If the command completes +// unsuccessfully or is interrupted by a signal, the error is of type +// *ExitError. Other error types may be returned for I/O problems. +func (s *Session) Wait() error { + if !s.started { + return errors.New("ssh: session not started") + } + waitErr := <-s.exitStatus + + if s.stdinPipeWriter != nil { + s.stdinPipeWriter.Close() + } + var copyError error + for _ = range s.copyFuncs { + if err := <-s.errors; err != nil && copyError == nil { + copyError = err + } + } + if waitErr != nil { + return waitErr + } + return copyError +} + +func (s *Session) wait(reqs <-chan *Request) error { + wm := Waitmsg{status: -1} + // Wait for msg channel to be closed before returning. + for msg := range reqs { + switch msg.Type { + case "exit-status": + wm.status = int(binary.BigEndian.Uint32(msg.Payload)) + case "exit-signal": + var sigval struct { + Signal string + CoreDumped bool + Error string + Lang string + } + if err := Unmarshal(msg.Payload, &sigval); err != nil { + return err + } + + // Must sanitize strings? + wm.signal = sigval.Signal + wm.msg = sigval.Error + wm.lang = sigval.Lang + default: + // This handles keepalives and matches + // OpenSSH's behaviour. + if msg.WantReply { + msg.Reply(false, nil) + } + } + } + if wm.status == 0 { + return nil + } + if wm.status == -1 { + // exit-status was never sent from server + if wm.signal == "" { + // signal was not sent either. RFC 4254 + // section 6.10 recommends against this + // behavior, but it is allowed, so we let + // clients handle it. + return &ExitMissingError{} + } + wm.status = 128 + if _, ok := signals[Signal(wm.signal)]; ok { + wm.status += signals[Signal(wm.signal)] + } + } + + return &ExitError{wm} +} + +// ExitMissingError is returned if a session is torn down cleanly, but +// the server sends no confirmation of the exit status. +type ExitMissingError struct{} + +func (e *ExitMissingError) Error() string { + return "wait: remote command exited without exit status or exit signal" +} + +func (s *Session) stdin() { + if s.stdinpipe { + return + } + var stdin io.Reader + if s.Stdin == nil { + stdin = new(bytes.Buffer) + } else { + r, w := io.Pipe() + go func() { + _, err := io.Copy(w, s.Stdin) + w.CloseWithError(err) + }() + stdin, s.stdinPipeWriter = r, w + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.ch, stdin) + if err1 := s.ch.CloseWrite(); err == nil && err1 != io.EOF { + err = err1 + } + return err + }) +} + +func (s *Session) stdout() { + if s.stdoutpipe { + return + } + if s.Stdout == nil { + s.Stdout = ioutil.Discard + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.Stdout, s.ch) + return err + }) +} + +func (s *Session) stderr() { + if s.stderrpipe { + return + } + if s.Stderr == nil { + s.Stderr = ioutil.Discard + } + s.copyFuncs = append(s.copyFuncs, func() error { + _, err := io.Copy(s.Stderr, s.ch.Stderr()) + return err + }) +} + +// sessionStdin reroutes Close to CloseWrite. +type sessionStdin struct { + io.Writer + ch Channel +} + +func (s *sessionStdin) Close() error { + return s.ch.CloseWrite() +} + +// StdinPipe returns a pipe that will be connected to the +// remote command's standard input when the command starts. +func (s *Session) StdinPipe() (io.WriteCloser, error) { + if s.Stdin != nil { + return nil, errors.New("ssh: Stdin already set") + } + if s.started { + return nil, errors.New("ssh: StdinPipe after process started") + } + s.stdinpipe = true + return &sessionStdin{s.ch, s.ch}, nil +} + +// StdoutPipe returns a pipe that will be connected to the +// remote command's standard output when the command starts. +// There is a fixed amount of buffering that is shared between +// stdout and stderr streams. If the StdoutPipe reader is +// not serviced fast enough it may eventually cause the +// remote command to block. +func (s *Session) StdoutPipe() (io.Reader, error) { + if s.Stdout != nil { + return nil, errors.New("ssh: Stdout already set") + } + if s.started { + return nil, errors.New("ssh: StdoutPipe after process started") + } + s.stdoutpipe = true + return s.ch, nil +} + +// StderrPipe returns a pipe that will be connected to the +// remote command's standard error when the command starts. +// There is a fixed amount of buffering that is shared between +// stdout and stderr streams. If the StderrPipe reader is +// not serviced fast enough it may eventually cause the +// remote command to block. +func (s *Session) StderrPipe() (io.Reader, error) { + if s.Stderr != nil { + return nil, errors.New("ssh: Stderr already set") + } + if s.started { + return nil, errors.New("ssh: StderrPipe after process started") + } + s.stderrpipe = true + return s.ch.Stderr(), nil +} + +// newSession returns a new interactive session on the remote host. +func newSession(ch Channel, reqs <-chan *Request) (*Session, error) { + s := &Session{ + ch: ch, + } + s.exitStatus = make(chan error, 1) + go func() { + s.exitStatus <- s.wait(reqs) + }() + + return s, nil +} + +// An ExitError reports unsuccessful completion of a remote command. +type ExitError struct { + Waitmsg +} + +func (e *ExitError) Error() string { + return e.Waitmsg.String() +} + +// Waitmsg stores the information about an exited remote command +// as reported by Wait. +type Waitmsg struct { + status int + signal string + msg string + lang string +} + +// ExitStatus returns the exit status of the remote command. +func (w Waitmsg) ExitStatus() int { + return w.status +} + +// Signal returns the exit signal of the remote command if +// it was terminated violently. +func (w Waitmsg) Signal() string { + return w.signal +} + +// Msg returns the exit message given by the remote command +func (w Waitmsg) Msg() string { + return w.msg +} + +// Lang returns the language tag. See RFC 3066 +func (w Waitmsg) Lang() string { + return w.lang +} + +func (w Waitmsg) String() string { + str := fmt.Sprintf("Process exited with status %v", w.status) + if w.signal != "" { + str += fmt.Sprintf(" from signal %v", w.signal) + } + if w.msg != "" { + str += fmt.Sprintf(". Reason was: %v", w.msg) + } + return str +} diff --git a/vendor/golang.org/x/crypto/ssh/session_test.go b/vendor/golang.org/x/crypto/ssh/session_test.go new file mode 100644 index 00000000..f35a378f --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/session_test.go @@ -0,0 +1,770 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +// Session tests. + +import ( + "bytes" + crypto_rand "crypto/rand" + "errors" + "io" + "io/ioutil" + "math/rand" + "net" + "testing" + + "golang.org/x/crypto/ssh/terminal" +) + +type serverType func(Channel, <-chan *Request, *testing.T) + +// dial constructs a new test server and returns a *ClientConn. +func dial(handler serverType, t *testing.T) *Client { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + + go func() { + defer c1.Close() + conf := ServerConfig{ + NoClientAuth: true, + } + conf.AddHostKey(testSigners["rsa"]) + + _, chans, reqs, err := NewServerConn(c1, &conf) + if err != nil { + t.Fatalf("Unable to handshake: %v", err) + } + go DiscardRequests(reqs) + + for newCh := range chans { + if newCh.ChannelType() != "session" { + newCh.Reject(UnknownChannelType, "unknown channel type") + continue + } + + ch, inReqs, err := newCh.Accept() + if err != nil { + t.Errorf("Accept: %v", err) + continue + } + go func() { + handler(ch, inReqs, t) + }() + } + }() + + config := &ClientConfig{ + User: "testuser", + } + + conn, chans, reqs, err := NewClientConn(c2, "", config) + if err != nil { + t.Fatalf("unable to dial remote side: %v", err) + } + + return NewClient(conn, chans, reqs) +} + +// Test a simple string is returned to session.Stdout. +func TestSessionShell(t *testing.T) { + conn := dial(shellHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + stdout := new(bytes.Buffer) + session.Stdout = stdout + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %s", err) + } + if err := session.Wait(); err != nil { + t.Fatalf("Remote command did not exit cleanly: %v", err) + } + actual := stdout.String() + if actual != "golang" { + t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) + } +} + +// TODO(dfc) add support for Std{in,err}Pipe when the Server supports it. + +// Test a simple string is returned via StdoutPipe. +func TestSessionStdoutPipe(t *testing.T) { + conn := dial(shellHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("Unable to request StdoutPipe(): %v", err) + } + var buf bytes.Buffer + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + done := make(chan bool, 1) + go func() { + if _, err := io.Copy(&buf, stdout); err != nil { + t.Errorf("Copy of stdout failed: %v", err) + } + done <- true + }() + if err := session.Wait(); err != nil { + t.Fatalf("Remote command did not exit cleanly: %v", err) + } + <-done + actual := buf.String() + if actual != "golang" { + t.Fatalf("Remote shell did not return expected string: expected=golang, actual=%s", actual) + } +} + +// Test that a simple string is returned via the Output helper, +// and that stderr is discarded. +func TestSessionOutput(t *testing.T) { + conn := dial(fixedOutputHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + buf, err := session.Output("") // cmd is ignored by fixedOutputHandler + if err != nil { + t.Error("Remote command did not exit cleanly:", err) + } + w := "this-is-stdout." + g := string(buf) + if g != w { + t.Error("Remote command did not return expected string:") + t.Logf("want %q", w) + t.Logf("got %q", g) + } +} + +// Test that both stdout and stderr are returned +// via the CombinedOutput helper. +func TestSessionCombinedOutput(t *testing.T) { + conn := dial(fixedOutputHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + buf, err := session.CombinedOutput("") // cmd is ignored by fixedOutputHandler + if err != nil { + t.Error("Remote command did not exit cleanly:", err) + } + const stdout = "this-is-stdout." + const stderr = "this-is-stderr." + g := string(buf) + if g != stdout+stderr && g != stderr+stdout { + t.Error("Remote command did not return expected string:") + t.Logf("want %q, or %q", stdout+stderr, stderr+stdout) + t.Logf("got %q", g) + } +} + +// Test non-0 exit status is returned correctly. +func TestExitStatusNonZero(t *testing.T) { + conn := dial(exitStatusNonZeroHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.ExitStatus() != 15 { + t.Fatalf("expected command to exit with 15 but got %v", e.ExitStatus()) + } +} + +// Test 0 exit status is returned correctly. +func TestExitStatusZero(t *testing.T) { + conn := dial(exitStatusZeroHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err != nil { + t.Fatalf("expected nil but got %v", err) + } +} + +// Test exit signal and status are both returned correctly. +func TestExitSignalAndStatus(t *testing.T) { + conn := dial(exitSignalAndStatusHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "TERM" || e.ExitStatus() != 15 { + t.Fatalf("expected command to exit with signal TERM and status 15 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +// Test exit signal and status are both returned correctly. +func TestKnownExitSignalOnly(t *testing.T) { + conn := dial(exitSignalHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "TERM" || e.ExitStatus() != 143 { + t.Fatalf("expected command to exit with signal TERM and status 143 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +// Test exit signal and status are both returned correctly. +func TestUnknownExitSignal(t *testing.T) { + conn := dial(exitSignalUnknownHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + e, ok := err.(*ExitError) + if !ok { + t.Fatalf("expected *ExitError but got %T", err) + } + if e.Signal() != "SYS" || e.ExitStatus() != 128 { + t.Fatalf("expected command to exit with signal SYS and status 128 but got signal %s and status %v", e.Signal(), e.ExitStatus()) + } +} + +func TestExitWithoutStatusOrSignal(t *testing.T) { + conn := dial(exitWithoutSignalOrStatus, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatalf("Unable to request new session: %v", err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err == nil { + t.Fatalf("expected command to fail but it didn't") + } + if _, ok := err.(*ExitMissingError); !ok { + t.Fatalf("got %T want *ExitMissingError", err) + } +} + +// windowTestBytes is the number of bytes that we'll send to the SSH server. +const windowTestBytes = 16000 * 200 + +// TestServerWindow writes random data to the server. The server is expected to echo +// the same data back, which is compared against the original. +func TestServerWindow(t *testing.T) { + origBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) + io.CopyN(origBuf, crypto_rand.Reader, windowTestBytes) + origBytes := origBuf.Bytes() + + conn := dial(echoHandler, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + result := make(chan []byte) + + go func() { + defer close(result) + echoedBuf := bytes.NewBuffer(make([]byte, 0, windowTestBytes)) + serverStdout, err := session.StdoutPipe() + if err != nil { + t.Errorf("StdoutPipe failed: %v", err) + return + } + n, err := copyNRandomly("stdout", echoedBuf, serverStdout, windowTestBytes) + if err != nil && err != io.EOF { + t.Errorf("Read only %d bytes from server, expected %d: %v", n, windowTestBytes, err) + } + result <- echoedBuf.Bytes() + }() + + serverStdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("StdinPipe failed: %v", err) + } + written, err := copyNRandomly("stdin", serverStdin, origBuf, windowTestBytes) + if err != nil { + t.Fatalf("failed to copy origBuf to serverStdin: %v", err) + } + if written != windowTestBytes { + t.Fatalf("Wrote only %d of %d bytes to server", written, windowTestBytes) + } + + echoedBytes := <-result + + if !bytes.Equal(origBytes, echoedBytes) { + t.Fatalf("Echoed buffer differed from original, orig %d, echoed %d", len(origBytes), len(echoedBytes)) + } +} + +// Verify the client can handle a keepalive packet from the server. +func TestClientHandlesKeepalives(t *testing.T) { + conn := dial(channelKeepaliveSender, t) + defer conn.Close() + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + if err := session.Shell(); err != nil { + t.Fatalf("Unable to execute command: %v", err) + } + err = session.Wait() + if err != nil { + t.Fatalf("expected nil but got: %v", err) + } +} + +type exitStatusMsg struct { + Status uint32 +} + +type exitSignalMsg struct { + Signal string + CoreDumped bool + Errmsg string + Lang string +} + +func handleTerminalRequests(in <-chan *Request) { + for req := range in { + ok := false + switch req.Type { + case "shell": + ok = true + if len(req.Payload) > 0 { + // We don't accept any commands, only the default shell. + ok = false + } + case "env": + ok = true + } + req.Reply(ok, nil) + } +} + +func newServerShell(ch Channel, in <-chan *Request, prompt string) *terminal.Terminal { + term := terminal.NewTerminal(ch, prompt) + go handleTerminalRequests(in) + return term +} + +func exitStatusZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + // this string is returned to stdout + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(0, ch, t) +} + +func exitStatusNonZeroHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(15, ch, t) +} + +func exitSignalAndStatusHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendStatus(15, ch, t) + sendSignal("TERM", ch, t) +} + +func exitSignalHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendSignal("TERM", ch, t) +} + +func exitSignalUnknownHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + sendSignal("SYS", ch, t) +} + +func exitWithoutSignalOrStatus(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) +} + +func shellHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + // this string is returned to stdout + shell := newServerShell(ch, in, "golang") + readLine(shell, t) + sendStatus(0, ch, t) +} + +// Ignores the command, writes fixed strings to stderr and stdout. +// Strings are "this-is-stdout." and "this-is-stderr.". +func fixedOutputHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + _, err := ch.Read(nil) + + req, ok := <-in + if !ok { + t.Fatalf("error: expected channel request, got: %#v", err) + return + } + + // ignore request, always send some text + req.Reply(true, nil) + + _, err = io.WriteString(ch, "this-is-stdout.") + if err != nil { + t.Fatalf("error writing on server: %v", err) + } + _, err = io.WriteString(ch.Stderr(), "this-is-stderr.") + if err != nil { + t.Fatalf("error writing on server: %v", err) + } + sendStatus(0, ch, t) +} + +func readLine(shell *terminal.Terminal, t *testing.T) { + if _, err := shell.ReadLine(); err != nil && err != io.EOF { + t.Errorf("unable to read line: %v", err) + } +} + +func sendStatus(status uint32, ch Channel, t *testing.T) { + msg := exitStatusMsg{ + Status: status, + } + if _, err := ch.SendRequest("exit-status", false, Marshal(&msg)); err != nil { + t.Errorf("unable to send status: %v", err) + } +} + +func sendSignal(signal string, ch Channel, t *testing.T) { + sig := exitSignalMsg{ + Signal: signal, + CoreDumped: false, + Errmsg: "Process terminated", + Lang: "en-GB-oed", + } + if _, err := ch.SendRequest("exit-signal", false, Marshal(&sig)); err != nil { + t.Errorf("unable to send signal: %v", err) + } +} + +func discardHandler(ch Channel, t *testing.T) { + defer ch.Close() + io.Copy(ioutil.Discard, ch) +} + +func echoHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + if n, err := copyNRandomly("echohandler", ch, ch, windowTestBytes); err != nil { + t.Errorf("short write, wrote %d, expected %d: %v ", n, windowTestBytes, err) + } +} + +// copyNRandomly copies n bytes from src to dst. It uses a variable, and random, +// buffer size to exercise more code paths. +func copyNRandomly(title string, dst io.Writer, src io.Reader, n int) (int, error) { + var ( + buf = make([]byte, 32*1024) + written int + remaining = n + ) + for remaining > 0 { + l := rand.Intn(1 << 15) + if remaining < l { + l = remaining + } + nr, er := src.Read(buf[:l]) + nw, ew := dst.Write(buf[:nr]) + remaining -= nw + written += nw + if ew != nil { + return written, ew + } + if nr != nw { + return written, io.ErrShortWrite + } + if er != nil && er != io.EOF { + return written, er + } + } + return written, nil +} + +func channelKeepaliveSender(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + shell := newServerShell(ch, in, "> ") + readLine(shell, t) + if _, err := ch.SendRequest("keepalive@openssh.com", true, nil); err != nil { + t.Errorf("unable to send channel keepalive request: %v", err) + } + sendStatus(0, ch, t) +} + +func TestClientWriteEOF(t *testing.T) { + conn := dial(simpleEchoHandler, t) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatal(err) + } + defer session.Close() + stdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("StdinPipe failed: %v", err) + } + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("StdoutPipe failed: %v", err) + } + + data := []byte(`0000`) + _, err = stdin.Write(data) + if err != nil { + t.Fatalf("Write failed: %v", err) + } + stdin.Close() + + res, err := ioutil.ReadAll(stdout) + if err != nil { + t.Fatalf("Read failed: %v", err) + } + + if !bytes.Equal(data, res) { + t.Fatalf("Read differed from write, wrote: %v, read: %v", data, res) + } +} + +func simpleEchoHandler(ch Channel, in <-chan *Request, t *testing.T) { + defer ch.Close() + data, err := ioutil.ReadAll(ch) + if err != nil { + t.Errorf("handler read error: %v", err) + } + _, err = ch.Write(data) + if err != nil { + t.Errorf("handler write error: %v", err) + } +} + +func TestSessionID(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serverID := make(chan []byte, 1) + clientID := make(chan []byte, 1) + + serverConf := &ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["ecdsa"]) + clientConf := &ClientConfig{ + User: "user", + } + + go func() { + conn, chans, reqs, err := NewServerConn(c1, serverConf) + if err != nil { + t.Fatalf("server handshake: %v", err) + } + serverID <- conn.SessionID() + go DiscardRequests(reqs) + for ch := range chans { + ch.Reject(Prohibited, "") + } + }() + + go func() { + conn, chans, reqs, err := NewClientConn(c2, "", clientConf) + if err != nil { + t.Fatalf("client handshake: %v", err) + } + clientID <- conn.SessionID() + go DiscardRequests(reqs) + for ch := range chans { + ch.Reject(Prohibited, "") + } + }() + + s := <-serverID + c := <-clientID + if bytes.Compare(s, c) != 0 { + t.Errorf("server session ID (%x) != client session ID (%x)", s, c) + } else if len(s) == 0 { + t.Errorf("client and server SessionID were empty.") + } +} + +type noReadConn struct { + readSeen bool + net.Conn +} + +func (c *noReadConn) Close() error { + return nil +} + +func (c *noReadConn) Read(b []byte) (int, error) { + c.readSeen = true + return 0, errors.New("noReadConn error") +} + +func TestInvalidServerConfiguration(t *testing.T) { + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + serveConn := noReadConn{Conn: c1} + serverConf := &ServerConfig{} + + NewServerConn(&serveConn, serverConf) + if serveConn.readSeen { + t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing host key") + } + + serverConf.AddHostKey(testSigners["ecdsa"]) + + NewServerConn(&serveConn, serverConf) + if serveConn.readSeen { + t.Fatalf("NewServerConn attempted to Read() from Conn while configuration is missing authentication method") + } +} + +func TestHostKeyAlgorithms(t *testing.T) { + serverConf := &ServerConfig{ + NoClientAuth: true, + } + serverConf.AddHostKey(testSigners["rsa"]) + serverConf.AddHostKey(testSigners["ecdsa"]) + + connect := func(clientConf *ClientConfig, want string) { + var alg string + clientConf.HostKeyCallback = func(h string, a net.Addr, key PublicKey) error { + alg = key.Type() + return nil + } + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewServerConn(c1, serverConf) + _, _, _, err = NewClientConn(c2, "", clientConf) + if err != nil { + t.Fatalf("NewClientConn: %v", err) + } + if alg != want { + t.Errorf("selected key algorithm %s, want %s", alg, want) + } + } + + // By default, we get the preferred algorithm, which is ECDSA 256. + + clientConf := &ClientConfig{} + connect(clientConf, KeyAlgoECDSA256) + + // Client asks for RSA explicitly. + clientConf.HostKeyAlgorithms = []string{KeyAlgoRSA} + connect(clientConf, KeyAlgoRSA) + + c1, c2, err := netPipe() + if err != nil { + t.Fatalf("netPipe: %v", err) + } + defer c1.Close() + defer c2.Close() + + go NewServerConn(c1, serverConf) + clientConf.HostKeyAlgorithms = []string{"nonexistent-hostkey-algo"} + _, _, _, err = NewClientConn(c2, "", clientConf) + if err == nil { + t.Fatal("succeeded connecting with unknown hostkey algorithm") + } +} diff --git a/vendor/golang.org/x/crypto/ssh/tcpip.go b/vendor/golang.org/x/crypto/ssh/tcpip.go new file mode 100644 index 00000000..6151241f --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/tcpip.go @@ -0,0 +1,407 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "errors" + "fmt" + "io" + "math/rand" + "net" + "strconv" + "strings" + "sync" + "time" +) + +// Listen requests the remote peer open a listening socket on +// addr. Incoming connections will be available by calling Accept on +// the returned net.Listener. The listener must be serviced, or the +// SSH connection may hang. +func (c *Client) Listen(n, addr string) (net.Listener, error) { + laddr, err := net.ResolveTCPAddr(n, addr) + if err != nil { + return nil, err + } + return c.ListenTCP(laddr) +} + +// Automatic port allocation is broken with OpenSSH before 6.0. See +// also https://bugzilla.mindrot.org/show_bug.cgi?id=2017. In +// particular, OpenSSH 5.9 sends a channelOpenMsg with port number 0, +// rather than the actual port number. This means you can never open +// two different listeners with auto allocated ports. We work around +// this by trying explicit ports until we succeed. + +const openSSHPrefix = "OpenSSH_" + +var portRandomizer = rand.New(rand.NewSource(time.Now().UnixNano())) + +// isBrokenOpenSSHVersion returns true if the given version string +// specifies a version of OpenSSH that is known to have a bug in port +// forwarding. +func isBrokenOpenSSHVersion(versionStr string) bool { + i := strings.Index(versionStr, openSSHPrefix) + if i < 0 { + return false + } + i += len(openSSHPrefix) + j := i + for ; j < len(versionStr); j++ { + if versionStr[j] < '0' || versionStr[j] > '9' { + break + } + } + version, _ := strconv.Atoi(versionStr[i:j]) + return version < 6 +} + +// autoPortListenWorkaround simulates automatic port allocation by +// trying random ports repeatedly. +func (c *Client) autoPortListenWorkaround(laddr *net.TCPAddr) (net.Listener, error) { + var sshListener net.Listener + var err error + const tries = 10 + for i := 0; i < tries; i++ { + addr := *laddr + addr.Port = 1024 + portRandomizer.Intn(60000) + sshListener, err = c.ListenTCP(&addr) + if err == nil { + laddr.Port = addr.Port + return sshListener, err + } + } + return nil, fmt.Errorf("ssh: listen on random port failed after %d tries: %v", tries, err) +} + +// RFC 4254 7.1 +type channelForwardMsg struct { + addr string + rport uint32 +} + +// ListenTCP requests the remote peer open a listening socket +// on laddr. Incoming connections will be available by calling +// Accept on the returned net.Listener. +func (c *Client) ListenTCP(laddr *net.TCPAddr) (net.Listener, error) { + if laddr.Port == 0 && isBrokenOpenSSHVersion(string(c.ServerVersion())) { + return c.autoPortListenWorkaround(laddr) + } + + m := channelForwardMsg{ + laddr.IP.String(), + uint32(laddr.Port), + } + // send message + ok, resp, err := c.SendRequest("tcpip-forward", true, Marshal(&m)) + if err != nil { + return nil, err + } + if !ok { + return nil, errors.New("ssh: tcpip-forward request denied by peer") + } + + // If the original port was 0, then the remote side will + // supply a real port number in the response. + if laddr.Port == 0 { + var p struct { + Port uint32 + } + if err := Unmarshal(resp, &p); err != nil { + return nil, err + } + laddr.Port = int(p.Port) + } + + // Register this forward, using the port number we obtained. + ch := c.forwards.add(*laddr) + + return &tcpListener{laddr, c, ch}, nil +} + +// forwardList stores a mapping between remote +// forward requests and the tcpListeners. +type forwardList struct { + sync.Mutex + entries []forwardEntry +} + +// forwardEntry represents an established mapping of a laddr on a +// remote ssh server to a channel connected to a tcpListener. +type forwardEntry struct { + laddr net.TCPAddr + c chan forward +} + +// forward represents an incoming forwarded tcpip connection. The +// arguments to add/remove/lookup should be address as specified in +// the original forward-request. +type forward struct { + newCh NewChannel // the ssh client channel underlying this forward + raddr *net.TCPAddr // the raddr of the incoming connection +} + +func (l *forwardList) add(addr net.TCPAddr) chan forward { + l.Lock() + defer l.Unlock() + f := forwardEntry{ + addr, + make(chan forward, 1), + } + l.entries = append(l.entries, f) + return f.c +} + +// See RFC 4254, section 7.2 +type forwardedTCPPayload struct { + Addr string + Port uint32 + OriginAddr string + OriginPort uint32 +} + +// parseTCPAddr parses the originating address from the remote into a *net.TCPAddr. +func parseTCPAddr(addr string, port uint32) (*net.TCPAddr, error) { + if port == 0 || port > 65535 { + return nil, fmt.Errorf("ssh: port number out of range: %d", port) + } + ip := net.ParseIP(string(addr)) + if ip == nil { + return nil, fmt.Errorf("ssh: cannot parse IP address %q", addr) + } + return &net.TCPAddr{IP: ip, Port: int(port)}, nil +} + +func (l *forwardList) handleChannels(in <-chan NewChannel) { + for ch := range in { + var payload forwardedTCPPayload + if err := Unmarshal(ch.ExtraData(), &payload); err != nil { + ch.Reject(ConnectionFailed, "could not parse forwarded-tcpip payload: "+err.Error()) + continue + } + + // RFC 4254 section 7.2 specifies that incoming + // addresses should list the address, in string + // format. It is implied that this should be an IP + // address, as it would be impossible to connect to it + // otherwise. + laddr, err := parseTCPAddr(payload.Addr, payload.Port) + if err != nil { + ch.Reject(ConnectionFailed, err.Error()) + continue + } + raddr, err := parseTCPAddr(payload.OriginAddr, payload.OriginPort) + if err != nil { + ch.Reject(ConnectionFailed, err.Error()) + continue + } + + if ok := l.forward(*laddr, *raddr, ch); !ok { + // Section 7.2, implementations MUST reject spurious incoming + // connections. + ch.Reject(Prohibited, "no forward for address") + continue + } + } +} + +// remove removes the forward entry, and the channel feeding its +// listener. +func (l *forwardList) remove(addr net.TCPAddr) { + l.Lock() + defer l.Unlock() + for i, f := range l.entries { + if addr.IP.Equal(f.laddr.IP) && addr.Port == f.laddr.Port { + l.entries = append(l.entries[:i], l.entries[i+1:]...) + close(f.c) + return + } + } +} + +// closeAll closes and clears all forwards. +func (l *forwardList) closeAll() { + l.Lock() + defer l.Unlock() + for _, f := range l.entries { + close(f.c) + } + l.entries = nil +} + +func (l *forwardList) forward(laddr, raddr net.TCPAddr, ch NewChannel) bool { + l.Lock() + defer l.Unlock() + for _, f := range l.entries { + if laddr.IP.Equal(f.laddr.IP) && laddr.Port == f.laddr.Port { + f.c <- forward{ch, &raddr} + return true + } + } + return false +} + +type tcpListener struct { + laddr *net.TCPAddr + + conn *Client + in <-chan forward +} + +// Accept waits for and returns the next connection to the listener. +func (l *tcpListener) Accept() (net.Conn, error) { + s, ok := <-l.in + if !ok { + return nil, io.EOF + } + ch, incoming, err := s.newCh.Accept() + if err != nil { + return nil, err + } + go DiscardRequests(incoming) + + return &tcpChanConn{ + Channel: ch, + laddr: l.laddr, + raddr: s.raddr, + }, nil +} + +// Close closes the listener. +func (l *tcpListener) Close() error { + m := channelForwardMsg{ + l.laddr.IP.String(), + uint32(l.laddr.Port), + } + + // this also closes the listener. + l.conn.forwards.remove(*l.laddr) + ok, _, err := l.conn.SendRequest("cancel-tcpip-forward", true, Marshal(&m)) + if err == nil && !ok { + err = errors.New("ssh: cancel-tcpip-forward failed") + } + return err +} + +// Addr returns the listener's network address. +func (l *tcpListener) Addr() net.Addr { + return l.laddr +} + +// Dial initiates a connection to the addr from the remote host. +// The resulting connection has a zero LocalAddr() and RemoteAddr(). +func (c *Client) Dial(n, addr string) (net.Conn, error) { + // Parse the address into host and numeric port. + host, portString, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + port, err := strconv.ParseUint(portString, 10, 16) + if err != nil { + return nil, err + } + // Use a zero address for local and remote address. + zeroAddr := &net.TCPAddr{ + IP: net.IPv4zero, + Port: 0, + } + ch, err := c.dial(net.IPv4zero.String(), 0, host, int(port)) + if err != nil { + return nil, err + } + return &tcpChanConn{ + Channel: ch, + laddr: zeroAddr, + raddr: zeroAddr, + }, nil +} + +// DialTCP connects to the remote address raddr on the network net, +// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used +// as the local address for the connection. +func (c *Client) DialTCP(n string, laddr, raddr *net.TCPAddr) (net.Conn, error) { + if laddr == nil { + laddr = &net.TCPAddr{ + IP: net.IPv4zero, + Port: 0, + } + } + ch, err := c.dial(laddr.IP.String(), laddr.Port, raddr.IP.String(), raddr.Port) + if err != nil { + return nil, err + } + return &tcpChanConn{ + Channel: ch, + laddr: laddr, + raddr: raddr, + }, nil +} + +// RFC 4254 7.2 +type channelOpenDirectMsg struct { + raddr string + rport uint32 + laddr string + lport uint32 +} + +func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel, error) { + msg := channelOpenDirectMsg{ + raddr: raddr, + rport: uint32(rport), + laddr: laddr, + lport: uint32(lport), + } + ch, in, err := c.OpenChannel("direct-tcpip", Marshal(&msg)) + if err != nil { + return nil, err + } + go DiscardRequests(in) + return ch, err +} + +type tcpChan struct { + Channel // the backing channel +} + +// tcpChanConn fulfills the net.Conn interface without +// the tcpChan having to hold laddr or raddr directly. +type tcpChanConn struct { + Channel + laddr, raddr net.Addr +} + +// LocalAddr returns the local network address. +func (t *tcpChanConn) LocalAddr() net.Addr { + return t.laddr +} + +// RemoteAddr returns the remote network address. +func (t *tcpChanConn) RemoteAddr() net.Addr { + return t.raddr +} + +// SetDeadline sets the read and write deadlines associated +// with the connection. +func (t *tcpChanConn) SetDeadline(deadline time.Time) error { + if err := t.SetReadDeadline(deadline); err != nil { + return err + } + return t.SetWriteDeadline(deadline) +} + +// SetReadDeadline sets the read deadline. +// A zero value for t means Read will not time out. +// After the deadline, the error from Read will implement net.Error +// with Timeout() == true. +func (t *tcpChanConn) SetReadDeadline(deadline time.Time) error { + return errors.New("ssh: tcpChan: deadline not supported") +} + +// SetWriteDeadline exists to satisfy the net.Conn interface +// but is not implemented by this type. It always returns an error. +func (t *tcpChanConn) SetWriteDeadline(deadline time.Time) error { + return errors.New("ssh: tcpChan: deadline not supported") +} diff --git a/vendor/golang.org/x/crypto/ssh/tcpip_test.go b/vendor/golang.org/x/crypto/ssh/tcpip_test.go new file mode 100644 index 00000000..f1265cb4 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/tcpip_test.go @@ -0,0 +1,20 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "testing" +) + +func TestAutoPortListenBroken(t *testing.T) { + broken := "SSH-2.0-OpenSSH_5.9hh11" + works := "SSH-2.0-OpenSSH_6.1" + if !isBrokenOpenSSHVersion(broken) { + t.Errorf("version %q not marked as broken", broken) + } + if isBrokenOpenSSHVersion(works) { + t.Errorf("version %q marked as broken", works) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go new file mode 100644 index 00000000..741eeb13 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go @@ -0,0 +1,892 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +import ( + "bytes" + "io" + "sync" + "unicode/utf8" +) + +// EscapeCodes contains escape sequences that can be written to the terminal in +// order to achieve different styles of text. +type EscapeCodes struct { + // Foreground colors + Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte + + // Reset all attributes + Reset []byte +} + +var vt100EscapeCodes = EscapeCodes{ + Black: []byte{keyEscape, '[', '3', '0', 'm'}, + Red: []byte{keyEscape, '[', '3', '1', 'm'}, + Green: []byte{keyEscape, '[', '3', '2', 'm'}, + Yellow: []byte{keyEscape, '[', '3', '3', 'm'}, + Blue: []byte{keyEscape, '[', '3', '4', 'm'}, + Magenta: []byte{keyEscape, '[', '3', '5', 'm'}, + Cyan: []byte{keyEscape, '[', '3', '6', 'm'}, + White: []byte{keyEscape, '[', '3', '7', 'm'}, + + Reset: []byte{keyEscape, '[', '0', 'm'}, +} + +// Terminal contains the state for running a VT100 terminal that is capable of +// reading lines of input. +type Terminal struct { + // AutoCompleteCallback, if non-null, is called for each keypress with + // the full input line and the current position of the cursor (in + // bytes, as an index into |line|). If it returns ok=false, the key + // press is processed normally. Otherwise it returns a replacement line + // and the new cursor position. + AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) + + // Escape contains a pointer to the escape codes for this terminal. + // It's always a valid pointer, although the escape codes themselves + // may be empty if the terminal doesn't support them. + Escape *EscapeCodes + + // lock protects the terminal and the state in this object from + // concurrent processing of a key press and a Write() call. + lock sync.Mutex + + c io.ReadWriter + prompt []rune + + // line is the current line being entered. + line []rune + // pos is the logical position of the cursor in line + pos int + // echo is true if local echo is enabled + echo bool + // pasteActive is true iff there is a bracketed paste operation in + // progress. + pasteActive bool + + // cursorX contains the current X value of the cursor where the left + // edge is 0. cursorY contains the row number where the first row of + // the current line is 0. + cursorX, cursorY int + // maxLine is the greatest value of cursorY so far. + maxLine int + + termWidth, termHeight int + + // outBuf contains the terminal data to be sent. + outBuf []byte + // remainder contains the remainder of any partial key sequences after + // a read. It aliases into inBuf. + remainder []byte + inBuf [256]byte + + // history contains previously entered commands so that they can be + // accessed with the up and down keys. + history stRingBuffer + // historyIndex stores the currently accessed history entry, where zero + // means the immediately previous entry. + historyIndex int + // When navigating up and down the history it's possible to return to + // the incomplete, initial line. That value is stored in + // historyPending. + historyPending string +} + +// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is +// a local terminal, that terminal must first have been put into raw mode. +// prompt is a string that is written at the start of each input line (i.e. +// "> "). +func NewTerminal(c io.ReadWriter, prompt string) *Terminal { + return &Terminal{ + Escape: &vt100EscapeCodes, + c: c, + prompt: []rune(prompt), + termWidth: 80, + termHeight: 24, + echo: true, + historyIndex: -1, + } +} + +const ( + keyCtrlD = 4 + keyCtrlU = 21 + keyEnter = '\r' + keyEscape = 27 + keyBackspace = 127 + keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota + keyUp + keyDown + keyLeft + keyRight + keyAltLeft + keyAltRight + keyHome + keyEnd + keyDeleteWord + keyDeleteLine + keyClearScreen + keyPasteStart + keyPasteEnd +) + +var pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'} +var pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'} + +// bytesToKey tries to parse a key sequence from b. If successful, it returns +// the key and the remainder of the input. Otherwise it returns utf8.RuneError. +func bytesToKey(b []byte, pasteActive bool) (rune, []byte) { + if len(b) == 0 { + return utf8.RuneError, nil + } + + if !pasteActive { + switch b[0] { + case 1: // ^A + return keyHome, b[1:] + case 5: // ^E + return keyEnd, b[1:] + case 8: // ^H + return keyBackspace, b[1:] + case 11: // ^K + return keyDeleteLine, b[1:] + case 12: // ^L + return keyClearScreen, b[1:] + case 23: // ^W + return keyDeleteWord, b[1:] + } + } + + if b[0] != keyEscape { + if !utf8.FullRune(b) { + return utf8.RuneError, b + } + r, l := utf8.DecodeRune(b) + return r, b[l:] + } + + if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' { + switch b[2] { + case 'A': + return keyUp, b[3:] + case 'B': + return keyDown, b[3:] + case 'C': + return keyRight, b[3:] + case 'D': + return keyLeft, b[3:] + case 'H': + return keyHome, b[3:] + case 'F': + return keyEnd, b[3:] + } + } + + if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' { + switch b[5] { + case 'C': + return keyAltRight, b[6:] + case 'D': + return keyAltLeft, b[6:] + } + } + + if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) { + return keyPasteStart, b[6:] + } + + if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) { + return keyPasteEnd, b[6:] + } + + // If we get here then we have a key that we don't recognise, or a + // partial sequence. It's not clear how one should find the end of a + // sequence without knowing them all, but it seems that [a-zA-Z~] only + // appears at the end of a sequence. + for i, c := range b[0:] { + if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' { + return keyUnknown, b[i+1:] + } + } + + return utf8.RuneError, b +} + +// queue appends data to the end of t.outBuf +func (t *Terminal) queue(data []rune) { + t.outBuf = append(t.outBuf, []byte(string(data))...) +} + +var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} +var space = []rune{' '} + +func isPrintable(key rune) bool { + isInSurrogateArea := key >= 0xd800 && key <= 0xdbff + return key >= 32 && !isInSurrogateArea +} + +// moveCursorToPos appends data to t.outBuf which will move the cursor to the +// given, logical position in the text. +func (t *Terminal) moveCursorToPos(pos int) { + if !t.echo { + return + } + + x := visualLength(t.prompt) + pos + y := x / t.termWidth + x = x % t.termWidth + + up := 0 + if y < t.cursorY { + up = t.cursorY - y + } + + down := 0 + if y > t.cursorY { + down = y - t.cursorY + } + + left := 0 + if x < t.cursorX { + left = t.cursorX - x + } + + right := 0 + if x > t.cursorX { + right = x - t.cursorX + } + + t.cursorX = x + t.cursorY = y + t.move(up, down, left, right) +} + +func (t *Terminal) move(up, down, left, right int) { + movement := make([]rune, 3*(up+down+left+right)) + m := movement + for i := 0; i < up; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'A' + m = m[3:] + } + for i := 0; i < down; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'B' + m = m[3:] + } + for i := 0; i < left; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'D' + m = m[3:] + } + for i := 0; i < right; i++ { + m[0] = keyEscape + m[1] = '[' + m[2] = 'C' + m = m[3:] + } + + t.queue(movement) +} + +func (t *Terminal) clearLineToRight() { + op := []rune{keyEscape, '[', 'K'} + t.queue(op) +} + +const maxLineLength = 4096 + +func (t *Terminal) setLine(newLine []rune, newPos int) { + if t.echo { + t.moveCursorToPos(0) + t.writeLine(newLine) + for i := len(newLine); i < len(t.line); i++ { + t.writeLine(space) + } + t.moveCursorToPos(newPos) + } + t.line = newLine + t.pos = newPos +} + +func (t *Terminal) advanceCursor(places int) { + t.cursorX += places + t.cursorY += t.cursorX / t.termWidth + if t.cursorY > t.maxLine { + t.maxLine = t.cursorY + } + t.cursorX = t.cursorX % t.termWidth + + if places > 0 && t.cursorX == 0 { + // Normally terminals will advance the current position + // when writing a character. But that doesn't happen + // for the last character in a line. However, when + // writing a character (except a new line) that causes + // a line wrap, the position will be advanced two + // places. + // + // So, if we are stopping at the end of a line, we + // need to write a newline so that our cursor can be + // advanced to the next line. + t.outBuf = append(t.outBuf, '\n') + } +} + +func (t *Terminal) eraseNPreviousChars(n int) { + if n == 0 { + return + } + + if t.pos < n { + n = t.pos + } + t.pos -= n + t.moveCursorToPos(t.pos) + + copy(t.line[t.pos:], t.line[n+t.pos:]) + t.line = t.line[:len(t.line)-n] + if t.echo { + t.writeLine(t.line[t.pos:]) + for i := 0; i < n; i++ { + t.queue(space) + } + t.advanceCursor(n) + t.moveCursorToPos(t.pos) + } +} + +// countToLeftWord returns then number of characters from the cursor to the +// start of the previous word. +func (t *Terminal) countToLeftWord() int { + if t.pos == 0 { + return 0 + } + + pos := t.pos - 1 + for pos > 0 { + if t.line[pos] != ' ' { + break + } + pos-- + } + for pos > 0 { + if t.line[pos] == ' ' { + pos++ + break + } + pos-- + } + + return t.pos - pos +} + +// countToRightWord returns then number of characters from the cursor to the +// start of the next word. +func (t *Terminal) countToRightWord() int { + pos := t.pos + for pos < len(t.line) { + if t.line[pos] == ' ' { + break + } + pos++ + } + for pos < len(t.line) { + if t.line[pos] != ' ' { + break + } + pos++ + } + return pos - t.pos +} + +// visualLength returns the number of visible glyphs in s. +func visualLength(runes []rune) int { + inEscapeSeq := false + length := 0 + + for _, r := range runes { + switch { + case inEscapeSeq: + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { + inEscapeSeq = false + } + case r == '\x1b': + inEscapeSeq = true + default: + length++ + } + } + + return length +} + +// handleKey processes the given key and, optionally, returns a line of text +// that the user has entered. +func (t *Terminal) handleKey(key rune) (line string, ok bool) { + if t.pasteActive && key != keyEnter { + t.addKeyToLine(key) + return + } + + switch key { + case keyBackspace: + if t.pos == 0 { + return + } + t.eraseNPreviousChars(1) + case keyAltLeft: + // move left by a word. + t.pos -= t.countToLeftWord() + t.moveCursorToPos(t.pos) + case keyAltRight: + // move right by a word. + t.pos += t.countToRightWord() + t.moveCursorToPos(t.pos) + case keyLeft: + if t.pos == 0 { + return + } + t.pos-- + t.moveCursorToPos(t.pos) + case keyRight: + if t.pos == len(t.line) { + return + } + t.pos++ + t.moveCursorToPos(t.pos) + case keyHome: + if t.pos == 0 { + return + } + t.pos = 0 + t.moveCursorToPos(t.pos) + case keyEnd: + if t.pos == len(t.line) { + return + } + t.pos = len(t.line) + t.moveCursorToPos(t.pos) + case keyUp: + entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1) + if !ok { + return "", false + } + if t.historyIndex == -1 { + t.historyPending = string(t.line) + } + t.historyIndex++ + runes := []rune(entry) + t.setLine(runes, len(runes)) + case keyDown: + switch t.historyIndex { + case -1: + return + case 0: + runes := []rune(t.historyPending) + t.setLine(runes, len(runes)) + t.historyIndex-- + default: + entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1) + if ok { + t.historyIndex-- + runes := []rune(entry) + t.setLine(runes, len(runes)) + } + } + case keyEnter: + t.moveCursorToPos(len(t.line)) + t.queue([]rune("\r\n")) + line = string(t.line) + ok = true + t.line = t.line[:0] + t.pos = 0 + t.cursorX = 0 + t.cursorY = 0 + t.maxLine = 0 + case keyDeleteWord: + // Delete zero or more spaces and then one or more characters. + t.eraseNPreviousChars(t.countToLeftWord()) + case keyDeleteLine: + // Delete everything from the current cursor position to the + // end of line. + for i := t.pos; i < len(t.line); i++ { + t.queue(space) + t.advanceCursor(1) + } + t.line = t.line[:t.pos] + t.moveCursorToPos(t.pos) + case keyCtrlD: + // Erase the character under the current position. + // The EOF case when the line is empty is handled in + // readLine(). + if t.pos < len(t.line) { + t.pos++ + t.eraseNPreviousChars(1) + } + case keyCtrlU: + t.eraseNPreviousChars(t.pos) + case keyClearScreen: + // Erases the screen and moves the cursor to the home position. + t.queue([]rune("\x1b[2J\x1b[H")) + t.queue(t.prompt) + t.cursorX, t.cursorY = 0, 0 + t.advanceCursor(visualLength(t.prompt)) + t.setLine(t.line, t.pos) + default: + if t.AutoCompleteCallback != nil { + prefix := string(t.line[:t.pos]) + suffix := string(t.line[t.pos:]) + + t.lock.Unlock() + newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key) + t.lock.Lock() + + if completeOk { + t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos])) + return + } + } + if !isPrintable(key) { + return + } + if len(t.line) == maxLineLength { + return + } + t.addKeyToLine(key) + } + return +} + +// addKeyToLine inserts the given key at the current position in the current +// line. +func (t *Terminal) addKeyToLine(key rune) { + if len(t.line) == cap(t.line) { + newLine := make([]rune, len(t.line), 2*(1+len(t.line))) + copy(newLine, t.line) + t.line = newLine + } + t.line = t.line[:len(t.line)+1] + copy(t.line[t.pos+1:], t.line[t.pos:]) + t.line[t.pos] = key + if t.echo { + t.writeLine(t.line[t.pos:]) + } + t.pos++ + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) writeLine(line []rune) { + for len(line) != 0 { + remainingOnLine := t.termWidth - t.cursorX + todo := len(line) + if todo > remainingOnLine { + todo = remainingOnLine + } + t.queue(line[:todo]) + t.advanceCursor(visualLength(line[:todo])) + line = line[todo:] + } +} + +func (t *Terminal) Write(buf []byte) (n int, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + if t.cursorX == 0 && t.cursorY == 0 { + // This is the easy case: there's nothing on the screen that we + // have to move out of the way. + return t.c.Write(buf) + } + + // We have a prompt and possibly user input on the screen. We + // have to clear it first. + t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */) + t.cursorX = 0 + t.clearLineToRight() + + for t.cursorY > 0 { + t.move(1 /* up */, 0, 0, 0) + t.cursorY-- + t.clearLineToRight() + } + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + + if n, err = t.c.Write(buf); err != nil { + return + } + + t.writeLine(t.prompt) + if t.echo { + t.writeLine(t.line) + } + + t.moveCursorToPos(t.pos) + + if _, err = t.c.Write(t.outBuf); err != nil { + return + } + t.outBuf = t.outBuf[:0] + return +} + +// ReadPassword temporarily changes the prompt and reads a password, without +// echo, from the terminal. +func (t *Terminal) ReadPassword(prompt string) (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + oldPrompt := t.prompt + t.prompt = []rune(prompt) + t.echo = false + + line, err = t.readLine() + + t.prompt = oldPrompt + t.echo = true + + return +} + +// ReadLine returns a line of input from the terminal. +func (t *Terminal) ReadLine() (line string, err error) { + t.lock.Lock() + defer t.lock.Unlock() + + return t.readLine() +} + +func (t *Terminal) readLine() (line string, err error) { + // t.lock must be held at this point + + if t.cursorX == 0 && t.cursorY == 0 { + t.writeLine(t.prompt) + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + } + + lineIsPasted := t.pasteActive + + for { + rest := t.remainder + lineOk := false + for !lineOk { + var key rune + key, rest = bytesToKey(rest, t.pasteActive) + if key == utf8.RuneError { + break + } + if !t.pasteActive { + if key == keyCtrlD { + if len(t.line) == 0 { + return "", io.EOF + } + } + if key == keyPasteStart { + t.pasteActive = true + if len(t.line) == 0 { + lineIsPasted = true + } + continue + } + } else if key == keyPasteEnd { + t.pasteActive = false + continue + } + if !t.pasteActive { + lineIsPasted = false + } + line, lineOk = t.handleKey(key) + } + if len(rest) > 0 { + n := copy(t.inBuf[:], rest) + t.remainder = t.inBuf[:n] + } else { + t.remainder = nil + } + t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + if lineOk { + if t.echo { + t.historyIndex = -1 + t.history.Add(line) + } + if lineIsPasted { + err = ErrPasteIndicator + } + return + } + + // t.remainder is a slice at the beginning of t.inBuf + // containing a partial key sequence + readBuf := t.inBuf[len(t.remainder):] + var n int + + t.lock.Unlock() + n, err = t.c.Read(readBuf) + t.lock.Lock() + + if err != nil { + return + } + + t.remainder = t.inBuf[:n+len(t.remainder)] + } + + panic("unreachable") // for Go 1.0. +} + +// SetPrompt sets the prompt to be used when reading subsequent lines. +func (t *Terminal) SetPrompt(prompt string) { + t.lock.Lock() + defer t.lock.Unlock() + + t.prompt = []rune(prompt) +} + +func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) { + // Move cursor to column zero at the start of the line. + t.move(t.cursorY, 0, t.cursorX, 0) + t.cursorX, t.cursorY = 0, 0 + t.clearLineToRight() + for t.cursorY < numPrevLines { + // Move down a line + t.move(0, 1, 0, 0) + t.cursorY++ + t.clearLineToRight() + } + // Move back to beginning. + t.move(t.cursorY, 0, 0, 0) + t.cursorX, t.cursorY = 0, 0 + + t.queue(t.prompt) + t.advanceCursor(visualLength(t.prompt)) + t.writeLine(t.line) + t.moveCursorToPos(t.pos) +} + +func (t *Terminal) SetSize(width, height int) error { + t.lock.Lock() + defer t.lock.Unlock() + + if width == 0 { + width = 1 + } + + oldWidth := t.termWidth + t.termWidth, t.termHeight = width, height + + switch { + case width == oldWidth: + // If the width didn't change then nothing else needs to be + // done. + return nil + case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0: + // If there is nothing on current line and no prompt printed, + // just do nothing + return nil + case width < oldWidth: + // Some terminals (e.g. xterm) will truncate lines that were + // too long when shinking. Others, (e.g. gnome-terminal) will + // attempt to wrap them. For the former, repainting t.maxLine + // works great, but that behaviour goes badly wrong in the case + // of the latter because they have doubled every full line. + + // We assume that we are working on a terminal that wraps lines + // and adjust the cursor position based on every previous line + // wrapping and turning into two. This causes the prompt on + // xterms to move upwards, which isn't great, but it avoids a + // huge mess with gnome-terminal. + if t.cursorX >= t.termWidth { + t.cursorX = t.termWidth - 1 + } + t.cursorY *= 2 + t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2) + case width > oldWidth: + // If the terminal expands then our position calculations will + // be wrong in the future because we think the cursor is + // |t.pos| chars into the string, but there will be a gap at + // the end of any wrapped line. + // + // But the position will actually be correct until we move, so + // we can move back to the beginning and repaint everything. + t.clearAndRepaintLinePlusNPrevious(t.maxLine) + } + + _, err := t.c.Write(t.outBuf) + t.outBuf = t.outBuf[:0] + return err +} + +type pasteIndicatorError struct{} + +func (pasteIndicatorError) Error() string { + return "terminal: ErrPasteIndicator not correctly handled" +} + +// ErrPasteIndicator may be returned from ReadLine as the error, in addition +// to valid line data. It indicates that bracketed paste mode is enabled and +// that the returned line consists only of pasted data. Programs may wish to +// interpret pasted data more literally than typed data. +var ErrPasteIndicator = pasteIndicatorError{} + +// SetBracketedPasteMode requests that the terminal bracket paste operations +// with markers. Not all terminals support this but, if it is supported, then +// enabling this mode will stop any autocomplete callback from running due to +// pastes. Additionally, any lines that are completely pasted will be returned +// from ReadLine with the error set to ErrPasteIndicator. +func (t *Terminal) SetBracketedPasteMode(on bool) { + if on { + io.WriteString(t.c, "\x1b[?2004h") + } else { + io.WriteString(t.c, "\x1b[?2004l") + } +} + +// stRingBuffer is a ring buffer of strings. +type stRingBuffer struct { + // entries contains max elements. + entries []string + max int + // head contains the index of the element most recently added to the ring. + head int + // size contains the number of elements in the ring. + size int +} + +func (s *stRingBuffer) Add(a string) { + if s.entries == nil { + const defaultNumEntries = 100 + s.entries = make([]string, defaultNumEntries) + s.max = defaultNumEntries + } + + s.head = (s.head + 1) % s.max + s.entries[s.head] = a + if s.size < s.max { + s.size++ + } +} + +// NthPreviousEntry returns the value passed to the nth previous call to Add. +// If n is zero then the immediately prior value is returned, if one, then the +// next most recent, and so on. If such an element doesn't exist then ok is +// false. +func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { + if n >= s.size { + return "", false + } + index := s.head - n + if index < 0 { + index += s.max + } + return s.entries[index], true +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go new file mode 100644 index 00000000..6bdefb4e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go @@ -0,0 +1,291 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +import ( + "io" + "os" + "testing" +) + +type MockTerminal struct { + toSend []byte + bytesPerRead int + received []byte +} + +func (c *MockTerminal) Read(data []byte) (n int, err error) { + n = len(data) + if n == 0 { + return + } + if n > len(c.toSend) { + n = len(c.toSend) + } + if n == 0 { + return 0, io.EOF + } + if c.bytesPerRead > 0 && n > c.bytesPerRead { + n = c.bytesPerRead + } + copy(data, c.toSend[:n]) + c.toSend = c.toSend[n:] + return +} + +func (c *MockTerminal) Write(data []byte) (n int, err error) { + c.received = append(c.received, data...) + return len(data), nil +} + +func TestClose(t *testing.T) { + c := &MockTerminal{} + ss := NewTerminal(c, "> ") + line, err := ss.ReadLine() + if line != "" { + t.Errorf("Expected empty line but got: %s", line) + } + if err != io.EOF { + t.Errorf("Error should have been EOF but got: %s", err) + } +} + +var keyPressTests = []struct { + in string + line string + err error + throwAwayLines int +}{ + { + err: io.EOF, + }, + { + in: "\r", + line: "", + }, + { + in: "foo\r", + line: "foo", + }, + { + in: "a\x1b[Cb\r", // right + line: "ab", + }, + { + in: "a\x1b[Db\r", // left + line: "ba", + }, + { + in: "a\177b\r", // backspace + line: "b", + }, + { + in: "\x1b[A\r", // up + }, + { + in: "\x1b[B\r", // down + }, + { + in: "line\x1b[A\x1b[B\r", // up then down + line: "line", + }, + { + in: "line1\rline2\x1b[A\r", // recall previous line. + line: "line1", + throwAwayLines: 1, + }, + { + // recall two previous lines and append. + in: "line1\rline2\rline3\x1b[A\x1b[Axxx\r", + line: "line1xxx", + throwAwayLines: 2, + }, + { + // Ctrl-A to move to beginning of line followed by ^K to kill + // line. + in: "a b \001\013\r", + line: "", + }, + { + // Ctrl-A to move to beginning of line, Ctrl-E to move to end, + // finally ^K to kill nothing. + in: "a b \001\005\013\r", + line: "a b ", + }, + { + in: "\027\r", + line: "", + }, + { + in: "a\027\r", + line: "", + }, + { + in: "a \027\r", + line: "", + }, + { + in: "a b\027\r", + line: "a ", + }, + { + in: "a b \027\r", + line: "a ", + }, + { + in: "one two thr\x1b[D\027\r", + line: "one two r", + }, + { + in: "\013\r", + line: "", + }, + { + in: "a\013\r", + line: "a", + }, + { + in: "ab\x1b[D\013\r", + line: "a", + }, + { + in: "Ξεσκεπάζω\r", + line: "Ξεσκεπάζω", + }, + { + in: "£\r\x1b[A\177\r", // non-ASCII char, enter, up, backspace. + line: "", + throwAwayLines: 1, + }, + { + in: "£\r££\x1b[A\x1b[B\177\r", // non-ASCII char, enter, 2x non-ASCII, up, down, backspace, enter. + line: "£", + throwAwayLines: 1, + }, + { + // Ctrl-D at the end of the line should be ignored. + in: "a\004\r", + line: "a", + }, + { + // a, b, left, Ctrl-D should erase the b. + in: "ab\x1b[D\004\r", + line: "a", + }, + { + // a, b, c, d, left, left, ^U should erase to the beginning of + // the line. + in: "abcd\x1b[D\x1b[D\025\r", + line: "cd", + }, + { + // Bracketed paste mode: control sequences should be returned + // verbatim in paste mode. + in: "abc\x1b[200~de\177f\x1b[201~\177\r", + line: "abcde\177", + }, + { + // Enter in bracketed paste mode should still work. + in: "abc\x1b[200~d\refg\x1b[201~h\r", + line: "efgh", + throwAwayLines: 1, + }, + { + // Lines consisting entirely of pasted data should be indicated as such. + in: "\x1b[200~a\r", + line: "a", + err: ErrPasteIndicator, + }, +} + +func TestKeyPresses(t *testing.T) { + for i, test := range keyPressTests { + for j := 1; j < len(test.in); j++ { + c := &MockTerminal{ + toSend: []byte(test.in), + bytesPerRead: j, + } + ss := NewTerminal(c, "> ") + for k := 0; k < test.throwAwayLines; k++ { + _, err := ss.ReadLine() + if err != nil { + t.Errorf("Throwaway line %d from test %d resulted in error: %s", k, i, err) + } + } + line, err := ss.ReadLine() + if line != test.line { + t.Errorf("Line resulting from test %d (%d bytes per read) was '%s', expected '%s'", i, j, line, test.line) + break + } + if err != test.err { + t.Errorf("Error resulting from test %d (%d bytes per read) was '%v', expected '%v'", i, j, err, test.err) + break + } + } + } +} + +func TestPasswordNotSaved(t *testing.T) { + c := &MockTerminal{ + toSend: []byte("password\r\x1b[A\r"), + bytesPerRead: 1, + } + ss := NewTerminal(c, "> ") + pw, _ := ss.ReadPassword("> ") + if pw != "password" { + t.Fatalf("failed to read password, got %s", pw) + } + line, _ := ss.ReadLine() + if len(line) > 0 { + t.Fatalf("password was saved in history") + } +} + +var setSizeTests = []struct { + width, height int +}{ + {40, 13}, + {80, 24}, + {132, 43}, +} + +func TestTerminalSetSize(t *testing.T) { + for _, setSize := range setSizeTests { + c := &MockTerminal{ + toSend: []byte("password\r\x1b[A\r"), + bytesPerRead: 1, + } + ss := NewTerminal(c, "> ") + ss.SetSize(setSize.width, setSize.height) + pw, _ := ss.ReadPassword("Password: ") + if pw != "password" { + t.Fatalf("failed to read password, got %s", pw) + } + if string(c.received) != "Password: \r\n" { + t.Errorf("failed to set the temporary prompt expected %q, got %q", "Password: ", c.received) + } + } +} + +func TestMakeRawState(t *testing.T) { + fd := int(os.Stdout.Fd()) + if !IsTerminal(fd) { + t.Skip("stdout is not a terminal; skipping test") + } + + st, err := GetState(fd) + if err != nil { + t.Fatalf("failed to get terminal state from GetState: %s", err) + } + defer Restore(fd, st) + raw, err := MakeRaw(fd) + if err != nil { + t.Fatalf("failed to get terminal state from MakeRaw: %s", err) + } + + if *st != *raw { + t.Errorf("states do not match; was %v, expected %v", raw, st) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util.go b/vendor/golang.org/x/crypto/ssh/terminal/util.go new file mode 100644 index 00000000..c869213e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util.go @@ -0,0 +1,133 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux,!appengine netbsd openbsd + +// Package terminal provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := terminal.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer terminal.Restore(0, oldState) +package terminal // import "golang.org/x/crypto/ssh/terminal" + +import ( + "io" + "syscall" + "unsafe" +) + +// State contains the state of a terminal. +type State struct { + termios syscall.Termios +} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + var termios syscall.Termios + _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) + return err == 0 +} + +// MakeRaw put the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + var oldState State + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { + return nil, err + } + + newState := oldState.termios + // This attempts to replicate the behaviour documented for cfmakeraw in + // the termios(3) manpage. + newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON + newState.Oflag &^= syscall.OPOST + newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN + newState.Cflag &^= syscall.CSIZE | syscall.PARENB + newState.Cflag |= syscall.CS8 + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { + return nil, err + } + + return &oldState, nil +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + var oldState State + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 { + return nil, err + } + + return &oldState, nil +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, state *State) error { + _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&state.termios)), 0, 0, 0) + return err +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + var dimensions [4]uint16 + + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&dimensions)), 0, 0, 0); err != 0 { + return -1, -1, err + } + return int(dimensions[1]), int(dimensions[0]), nil +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + var oldState syscall.Termios + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0); err != 0 { + return nil, err + } + + newState := oldState + newState.Lflag &^= syscall.ECHO + newState.Lflag |= syscall.ICANON | syscall.ISIG + newState.Iflag |= syscall.ICRNL + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 { + return nil, err + } + + defer func() { + syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlWriteTermios, uintptr(unsafe.Pointer(&oldState)), 0, 0, 0) + }() + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(fd, buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go new file mode 100644 index 00000000..9c1ffd14 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go @@ -0,0 +1,12 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd netbsd openbsd + +package terminal + +import "syscall" + +const ioctlReadTermios = syscall.TIOCGETA +const ioctlWriteTermios = syscall.TIOCSETA diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go new file mode 100644 index 00000000..5883b22d --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go @@ -0,0 +1,11 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package terminal + +// These constants are declared here, rather than importing +// them from the syscall package as some syscall packages, even +// on linux, for example gccgo, do not declare them. +const ioctlReadTermios = 0x5401 // syscall.TCGETS +const ioctlWriteTermios = 0x5402 // syscall.TCSETS diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go new file mode 100644 index 00000000..799f049f --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go @@ -0,0 +1,58 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package terminal provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := terminal.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer terminal.Restore(0, oldState) +package terminal + +import ( + "fmt" + "runtime" +) + +type State struct{} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + return false +} + +// MakeRaw put the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, state *State) error { + return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go new file mode 100644 index 00000000..07eb5edd --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go @@ -0,0 +1,73 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build solaris + +package terminal // import "golang.org/x/crypto/ssh/terminal" + +import ( + "golang.org/x/sys/unix" + "io" + "syscall" +) + +// State contains the state of a terminal. +type State struct { + termios syscall.Termios +} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c + var termio unix.Termio + err := unix.IoctlSetTermio(fd, unix.TCGETA, &termio) + return err == nil +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c + val, err := unix.IoctlGetTermios(fd, unix.TCGETS) + if err != nil { + return nil, err + } + oldState := *val + + newState := oldState + newState.Lflag &^= syscall.ECHO + newState.Lflag |= syscall.ICANON | syscall.ISIG + newState.Iflag |= syscall.ICRNL + err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState) + if err != nil { + return nil, err + } + + defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState) + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(fd, buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go new file mode 100644 index 00000000..ae9fa9ec --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go @@ -0,0 +1,174 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package terminal provides support functions for dealing with terminals, as +// commonly found on UNIX systems. +// +// Putting a terminal into raw mode is the most common requirement: +// +// oldState, err := terminal.MakeRaw(0) +// if err != nil { +// panic(err) +// } +// defer terminal.Restore(0, oldState) +package terminal + +import ( + "io" + "syscall" + "unsafe" +) + +const ( + enableLineInput = 2 + enableEchoInput = 4 + enableProcessedInput = 1 + enableWindowInput = 8 + enableMouseInput = 16 + enableInsertMode = 32 + enableQuickEditMode = 64 + enableExtendedFlags = 128 + enableAutoPosition = 256 + enableProcessedOutput = 1 + enableWrapAtEolOutput = 2 +) + +var kernel32 = syscall.NewLazyDLL("kernel32.dll") + +var ( + procGetConsoleMode = kernel32.NewProc("GetConsoleMode") + procSetConsoleMode = kernel32.NewProc("SetConsoleMode") + procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") +) + +type ( + short int16 + word uint16 + + coord struct { + x short + y short + } + smallRect struct { + left short + top short + right short + bottom short + } + consoleScreenBufferInfo struct { + size coord + cursorPosition coord + attributes word + window smallRect + maximumWindowSize coord + } +) + +type State struct { + mode uint32 +} + +// IsTerminal returns true if the given file descriptor is a terminal. +func IsTerminal(fd int) bool { + var st uint32 + r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + return r != 0 && e == 0 +} + +// MakeRaw put the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd int) (*State, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + raw := st &^ (enableEchoInput | enableProcessedInput | enableLineInput | enableProcessedOutput) + _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(raw), 0) + if e != 0 { + return nil, error(e) + } + return &State{st}, nil +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd int) (*State, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + return &State{st}, nil +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd int, state *State) error { + _, _, err := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(state.mode), 0) + return err +} + +// GetSize returns the dimensions of the given terminal. +func GetSize(fd int) (width, height int, err error) { + var info consoleScreenBufferInfo + _, _, e := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&info)), 0) + if e != 0 { + return 0, 0, error(e) + } + return int(info.size.x), int(info.size.y), nil +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd int) ([]byte, error) { + var st uint32 + _, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(fd), uintptr(unsafe.Pointer(&st)), 0) + if e != 0 { + return nil, error(e) + } + old := st + + st &^= (enableEchoInput) + st |= (enableProcessedInput | enableLineInput | enableProcessedOutput) + _, _, e = syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(st), 0) + if e != 0 { + return nil, error(e) + } + + defer func() { + syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(fd), uintptr(old), 0) + }() + + var buf [16]byte + var ret []byte + for { + n, err := syscall.Read(syscall.Handle(fd), buf[:]) + if err != nil { + return nil, err + } + if n == 0 { + if len(ret) == 0 { + return nil, io.EOF + } + break + } + if buf[n-1] == '\n' { + n-- + } + if n > 0 && buf[n-1] == '\r' { + n-- + } + ret = append(ret, buf[:n]...) + if n < len(buf) { + break + } + } + + return ret, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go new file mode 100644 index 00000000..f481253c --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go @@ -0,0 +1,59 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "bytes" + "testing" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" +) + +func TestAgentForward(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + keyring := agent.NewKeyring() + if err := keyring.Add(agent.AddedKey{PrivateKey: testPrivateKeys["dsa"]}); err != nil { + t.Fatalf("Error adding key: %s", err) + } + if err := keyring.Add(agent.AddedKey{ + PrivateKey: testPrivateKeys["dsa"], + ConfirmBeforeUse: true, + LifetimeSecs: 3600, + }); err != nil { + t.Fatalf("Error adding key with constraints: %s", err) + } + pub := testPublicKeys["dsa"] + + sess, err := conn.NewSession() + if err != nil { + t.Fatalf("NewSession: %v", err) + } + if err := agent.RequestAgentForwarding(sess); err != nil { + t.Fatalf("RequestAgentForwarding: %v", err) + } + + if err := agent.ForwardToAgent(conn, keyring); err != nil { + t.Fatalf("SetupForwardKeyring: %v", err) + } + out, err := sess.CombinedOutput("ssh-add -L") + if err != nil { + t.Fatalf("running ssh-add: %v, out %s", err, out) + } + key, _, _, _, err := ssh.ParseAuthorizedKey(out) + if err != nil { + t.Fatalf("ParseAuthorizedKey(%q): %v", out, err) + } + + if !bytes.Equal(key.Marshal(), pub.Marshal()) { + t.Fatalf("got key %s, want %s", ssh.MarshalAuthorizedKey(key), ssh.MarshalAuthorizedKey(pub)) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/test/cert_test.go b/vendor/golang.org/x/crypto/ssh/test/cert_test.go new file mode 100644 index 00000000..364790f1 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/cert_test.go @@ -0,0 +1,47 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "crypto/rand" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestCertLogin(t *testing.T) { + s := newServer(t) + defer s.Shutdown() + + // Use a key different from the default. + clientKey := testSigners["dsa"] + caAuthKey := testSigners["ecdsa"] + cert := &ssh.Certificate{ + Key: clientKey.PublicKey(), + ValidPrincipals: []string{username()}, + CertType: ssh.UserCert, + ValidBefore: ssh.CertTimeInfinity, + } + if err := cert.SignCert(rand.Reader, caAuthKey); err != nil { + t.Fatalf("SetSignature: %v", err) + } + + certSigner, err := ssh.NewCertSigner(cert, clientKey) + if err != nil { + t.Fatalf("NewCertSigner: %v", err) + } + + conf := &ssh.ClientConfig{ + User: username(), + } + conf.Auth = append(conf.Auth, ssh.PublicKeys(certSigner)) + client, err := s.TryDial(conf) + if err != nil { + t.Fatalf("TryDial: %v", err) + } + client.Close() +} diff --git a/vendor/golang.org/x/crypto/ssh/test/doc.go b/vendor/golang.org/x/crypto/ssh/test/doc.go new file mode 100644 index 00000000..3f9b3346 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/doc.go @@ -0,0 +1,7 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This package contains integration tests for the +// golang.org/x/crypto/ssh package. +package test // import "golang.org/x/crypto/ssh/test" diff --git a/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go new file mode 100644 index 00000000..877a88cd --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go @@ -0,0 +1,160 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd + +package test + +import ( + "bytes" + "io" + "io/ioutil" + "math/rand" + "net" + "testing" + "time" +) + +func TestPortForward(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + go func() { + sshConn, err := sshListener.Accept() + if err != nil { + t.Fatalf("listen.Accept failed: %v", err) + } + + _, err = io.Copy(sshConn, sshConn) + if err != nil && err != io.EOF { + t.Fatalf("ssh client copy: %v", err) + } + sshConn.Close() + }() + + forwardedAddr := sshListener.Addr().String() + tcpConn, err := net.Dial("tcp", forwardedAddr) + if err != nil { + t.Fatalf("TCP dial failed: %v", err) + } + + readChan := make(chan []byte) + go func() { + data, _ := ioutil.ReadAll(tcpConn) + readChan <- data + }() + + // Invent some data. + data := make([]byte, 100*1000) + for i := range data { + data[i] = byte(i % 255) + } + + var sent []byte + for len(sent) < 1000*1000 { + // Send random sized chunks + m := rand.Intn(len(data)) + n, err := tcpConn.Write(data[:m]) + if err != nil { + break + } + sent = append(sent, data[:n]...) + } + if err := tcpConn.(*net.TCPConn).CloseWrite(); err != nil { + t.Errorf("tcpConn.CloseWrite: %v", err) + } + + read := <-readChan + + if len(sent) != len(read) { + t.Fatalf("got %d bytes, want %d", len(read), len(sent)) + } + if bytes.Compare(sent, read) != 0 { + t.Fatalf("read back data does not match") + } + + if err := sshListener.Close(); err != nil { + t.Fatalf("sshListener.Close: %v", err) + } + + // Check that the forward disappeared. + tcpConn, err = net.Dial("tcp", forwardedAddr) + if err == nil { + tcpConn.Close() + t.Errorf("still listening to %s after closing", forwardedAddr) + } +} + +func TestAcceptClose(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + quit := make(chan error, 1) + go func() { + for { + c, err := sshListener.Accept() + if err != nil { + quit <- err + break + } + c.Close() + } + }() + sshListener.Close() + + select { + case <-time.After(1 * time.Second): + t.Errorf("timeout: listener did not close.") + case err := <-quit: + t.Logf("quit as expected (error %v)", err) + } +} + +// Check that listeners exit if the underlying client transport dies. +func TestPortForwardConnectionClose(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + + sshListener, err := conn.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + + quit := make(chan error, 1) + go func() { + for { + c, err := sshListener.Accept() + if err != nil { + quit <- err + break + } + c.Close() + } + }() + + // It would be even nicer if we closed the server side, but it + // is more involved as the fd for that side is dup()ed. + server.clientConn.Close() + + select { + case <-time.After(1 * time.Second): + t.Errorf("timeout: listener did not close.") + case err := <-quit: + t.Logf("quit as expected (error %v)", err) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/test/session_test.go b/vendor/golang.org/x/crypto/ssh/test/session_test.go new file mode 100644 index 00000000..fc7e4715 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/session_test.go @@ -0,0 +1,365 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !windows + +package test + +// Session functional tests. + +import ( + "bytes" + "errors" + "io" + "strings" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestRunCommandSuccess(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + err = session.Run("true") + if err != nil { + t.Fatalf("session failed: %v", err) + } +} + +func TestHostKeyCheck(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + + conf := clientConfig() + hostDB := hostKeyDB() + conf.HostKeyCallback = hostDB.Check + + // change the keys. + hostDB.keys[ssh.KeyAlgoRSA][25]++ + hostDB.keys[ssh.KeyAlgoDSA][25]++ + hostDB.keys[ssh.KeyAlgoECDSA256][25]++ + + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + t.Fatalf("dial should have failed.") + } else if !strings.Contains(err.Error(), "host key mismatch") { + t.Fatalf("'host key mismatch' not found in %v", err) + } +} + +func TestRunCommandStdin(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + r, w := io.Pipe() + defer r.Close() + defer w.Close() + session.Stdin = r + + err = session.Run("true") + if err != nil { + t.Fatalf("session failed: %v", err) + } +} + +func TestRunCommandStdinError(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + r, w := io.Pipe() + defer r.Close() + session.Stdin = r + pipeErr := errors.New("closing write end of pipe") + w.CloseWithError(pipeErr) + + err = session.Run("true") + if err != pipeErr { + t.Fatalf("expected %v, found %v", pipeErr, err) + } +} + +func TestRunCommandFailed(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + err = session.Run(`bash -c "kill -9 $$"`) + if err == nil { + t.Fatalf("session succeeded: %v", err) + } +} + +func TestRunCommandWeClosed(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + err = session.Shell() + if err != nil { + t.Fatalf("shell failed: %v", err) + } + err = session.Close() + if err != nil { + t.Fatalf("shell failed: %v", err) + } +} + +func TestFuncLargeRead(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("unable to create new session: %s", err) + } + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + err = session.Start("dd if=/dev/urandom bs=2048 count=1024") + if err != nil { + t.Fatalf("unable to execute remote command: %s", err) + } + + buf := new(bytes.Buffer) + n, err := io.Copy(buf, stdout) + if err != nil { + t.Fatalf("error reading from remote stdout: %s", err) + } + + if n != 2048*1024 { + t.Fatalf("Expected %d bytes but read only %d from remote command", 2048, n) + } +} + +func TestKeyChange(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + hostDB := hostKeyDB() + conf.HostKeyCallback = hostDB.Check + conf.RekeyThreshold = 1024 + conn := server.Dial(conf) + defer conn.Close() + + for i := 0; i < 4; i++ { + session, err := conn.NewSession() + if err != nil { + t.Fatalf("unable to create new session: %s", err) + } + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + err = session.Start("dd if=/dev/urandom bs=1024 count=1") + if err != nil { + t.Fatalf("unable to execute remote command: %s", err) + } + buf := new(bytes.Buffer) + n, err := io.Copy(buf, stdout) + if err != nil { + t.Fatalf("error reading from remote stdout: %s", err) + } + + want := int64(1024) + if n != want { + t.Fatalf("Expected %d bytes but read only %d from remote command", want, n) + } + } + + if changes := hostDB.checkCount; changes < 4 { + t.Errorf("got %d key changes, want 4", changes) + } +} + +func TestInvalidTerminalMode(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + if err = session.RequestPty("vt100", 80, 40, ssh.TerminalModes{255: 1984}); err == nil { + t.Fatalf("req-pty failed: successful request with invalid mode") + } +} + +func TestValidTerminalMode(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + conn := server.Dial(clientConfig()) + defer conn.Close() + + session, err := conn.NewSession() + if err != nil { + t.Fatalf("session failed: %v", err) + } + defer session.Close() + + stdout, err := session.StdoutPipe() + if err != nil { + t.Fatalf("unable to acquire stdout pipe: %s", err) + } + + stdin, err := session.StdinPipe() + if err != nil { + t.Fatalf("unable to acquire stdin pipe: %s", err) + } + + tm := ssh.TerminalModes{ssh.ECHO: 0} + if err = session.RequestPty("xterm", 80, 40, tm); err != nil { + t.Fatalf("req-pty failed: %s", err) + } + + err = session.Shell() + if err != nil { + t.Fatalf("session failed: %s", err) + } + + stdin.Write([]byte("stty -a && exit\n")) + + var buf bytes.Buffer + if _, err := io.Copy(&buf, stdout); err != nil { + t.Fatalf("reading failed: %s", err) + } + + if sttyOutput := buf.String(); !strings.Contains(sttyOutput, "-echo ") { + t.Fatalf("terminal mode failure: expected -echo in stty output, got %s", sttyOutput) + } +} + +func TestCiphers(t *testing.T) { + var config ssh.Config + config.SetDefaults() + cipherOrder := config.Ciphers + // These ciphers will not be tested when commented out in cipher.go it will + // fallback to the next available as per line 292. + cipherOrder = append(cipherOrder, "aes128-cbc", "3des-cbc") + + for _, ciph := range cipherOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + conf.Ciphers = []string{ciph} + // Don't fail if sshd doesn't have the cipher. + conf.Ciphers = append(conf.Ciphers, cipherOrder...) + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + } else { + t.Fatalf("failed for cipher %q", ciph) + } + } +} + +func TestMACs(t *testing.T) { + var config ssh.Config + config.SetDefaults() + macOrder := config.MACs + + for _, mac := range macOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + conf.MACs = []string{mac} + // Don't fail if sshd doesn't have the MAC. + conf.MACs = append(conf.MACs, macOrder...) + if conn, err := server.TryDial(conf); err == nil { + conn.Close() + } else { + t.Fatalf("failed for MAC %q", mac) + } + } +} + +func TestKeyExchanges(t *testing.T) { + var config ssh.Config + config.SetDefaults() + kexOrder := config.KeyExchanges + for _, kex := range kexOrder { + server := newServer(t) + defer server.Shutdown() + conf := clientConfig() + // Don't fail if sshd doesn't have the kex. + conf.KeyExchanges = append([]string{kex}, kexOrder...) + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + } else { + t.Errorf("failed for kex %q", kex) + } + } +} + +func TestClientAuthAlgorithms(t *testing.T) { + for _, key := range []string{ + "rsa", + "dsa", + "ecdsa", + "ed25519", + } { + server := newServer(t) + conf := clientConfig() + conf.SetDefaults() + conf.Auth = []ssh.AuthMethod{ + ssh.PublicKeys(testSigners[key]), + } + + conn, err := server.TryDial(conf) + if err == nil { + conn.Close() + } else { + t.Errorf("failed for key %q", key) + } + + server.Shutdown() + } +} diff --git a/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go b/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go new file mode 100644 index 00000000..a2eb9358 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/tcpip_test.go @@ -0,0 +1,46 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !windows + +package test + +// direct-tcpip functional tests + +import ( + "io" + "net" + "testing" +) + +func TestDial(t *testing.T) { + server := newServer(t) + defer server.Shutdown() + sshConn := server.Dial(clientConfig()) + defer sshConn.Close() + + l, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + t.Fatalf("Listen: %v", err) + } + defer l.Close() + + go func() { + for { + c, err := l.Accept() + if err != nil { + break + } + + io.WriteString(c, c.RemoteAddr().String()) + c.Close() + } + }() + + conn, err := sshConn.Dial("tcp", l.Addr().String()) + if err != nil { + t.Fatalf("Dial: %v", err) + } + defer conn.Close() +} diff --git a/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go b/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go new file mode 100644 index 00000000..3bfd881e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/test_unix_test.go @@ -0,0 +1,268 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd plan9 + +package test + +// functional test harness for unix. + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "net" + "os" + "os/exec" + "os/user" + "path/filepath" + "testing" + "text/template" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/testdata" +) + +const sshd_config = ` +Protocol 2 +HostKey {{.Dir}}/id_rsa +HostKey {{.Dir}}/id_dsa +HostKey {{.Dir}}/id_ecdsa +Pidfile {{.Dir}}/sshd.pid +#UsePrivilegeSeparation no +KeyRegenerationInterval 3600 +ServerKeyBits 768 +SyslogFacility AUTH +LogLevel DEBUG2 +LoginGraceTime 120 +PermitRootLogin no +StrictModes no +RSAAuthentication yes +PubkeyAuthentication yes +AuthorizedKeysFile {{.Dir}}/authorized_keys +TrustedUserCAKeys {{.Dir}}/id_ecdsa.pub +IgnoreRhosts yes +RhostsRSAAuthentication no +HostbasedAuthentication no +PubkeyAcceptedKeyTypes=* +` + +var configTmpl = template.Must(template.New("").Parse(sshd_config)) + +type server struct { + t *testing.T + cleanup func() // executed during Shutdown + configfile string + cmd *exec.Cmd + output bytes.Buffer // holds stderr from sshd process + + // Client half of the network connection. + clientConn net.Conn +} + +func username() string { + var username string + if user, err := user.Current(); err == nil { + username = user.Username + } else { + // user.Current() currently requires cgo. If an error is + // returned attempt to get the username from the environment. + log.Printf("user.Current: %v; falling back on $USER", err) + username = os.Getenv("USER") + } + if username == "" { + panic("Unable to get username") + } + return username +} + +type storedHostKey struct { + // keys map from an algorithm string to binary key data. + keys map[string][]byte + + // checkCount counts the Check calls. Used for testing + // rekeying. + checkCount int +} + +func (k *storedHostKey) Add(key ssh.PublicKey) { + if k.keys == nil { + k.keys = map[string][]byte{} + } + k.keys[key.Type()] = key.Marshal() +} + +func (k *storedHostKey) Check(addr string, remote net.Addr, key ssh.PublicKey) error { + k.checkCount++ + algo := key.Type() + + if k.keys == nil || bytes.Compare(key.Marshal(), k.keys[algo]) != 0 { + return fmt.Errorf("host key mismatch. Got %q, want %q", key, k.keys[algo]) + } + return nil +} + +func hostKeyDB() *storedHostKey { + keyChecker := &storedHostKey{} + keyChecker.Add(testPublicKeys["ecdsa"]) + keyChecker.Add(testPublicKeys["rsa"]) + keyChecker.Add(testPublicKeys["dsa"]) + return keyChecker +} + +func clientConfig() *ssh.ClientConfig { + config := &ssh.ClientConfig{ + User: username(), + Auth: []ssh.AuthMethod{ + ssh.PublicKeys(testSigners["user"]), + }, + HostKeyCallback: hostKeyDB().Check, + } + return config +} + +// unixConnection creates two halves of a connected net.UnixConn. It +// is used for connecting the Go SSH client with sshd without opening +// ports. +func unixConnection() (*net.UnixConn, *net.UnixConn, error) { + dir, err := ioutil.TempDir("", "unixConnection") + if err != nil { + return nil, nil, err + } + defer os.Remove(dir) + + addr := filepath.Join(dir, "ssh") + listener, err := net.Listen("unix", addr) + if err != nil { + return nil, nil, err + } + defer listener.Close() + c1, err := net.Dial("unix", addr) + if err != nil { + return nil, nil, err + } + + c2, err := listener.Accept() + if err != nil { + c1.Close() + return nil, nil, err + } + + return c1.(*net.UnixConn), c2.(*net.UnixConn), nil +} + +func (s *server) TryDial(config *ssh.ClientConfig) (*ssh.Client, error) { + sshd, err := exec.LookPath("sshd") + if err != nil { + s.t.Skipf("skipping test: %v", err) + } + + c1, c2, err := unixConnection() + if err != nil { + s.t.Fatalf("unixConnection: %v", err) + } + + s.cmd = exec.Command(sshd, "-f", s.configfile, "-i", "-e") + f, err := c2.File() + if err != nil { + s.t.Fatalf("UnixConn.File: %v", err) + } + defer f.Close() + s.cmd.Stdin = f + s.cmd.Stdout = f + s.cmd.Stderr = &s.output + if err := s.cmd.Start(); err != nil { + s.t.Fail() + s.Shutdown() + s.t.Fatalf("s.cmd.Start: %v", err) + } + s.clientConn = c1 + conn, chans, reqs, err := ssh.NewClientConn(c1, "", config) + if err != nil { + return nil, err + } + return ssh.NewClient(conn, chans, reqs), nil +} + +func (s *server) Dial(config *ssh.ClientConfig) *ssh.Client { + conn, err := s.TryDial(config) + if err != nil { + s.t.Fail() + s.Shutdown() + s.t.Fatalf("ssh.Client: %v", err) + } + return conn +} + +func (s *server) Shutdown() { + if s.cmd != nil && s.cmd.Process != nil { + // Don't check for errors; if it fails it's most + // likely "os: process already finished", and we don't + // care about that. Use os.Interrupt, so child + // processes are killed too. + s.cmd.Process.Signal(os.Interrupt) + s.cmd.Wait() + } + if s.t.Failed() { + // log any output from sshd process + s.t.Logf("sshd: %s", s.output.String()) + } + s.cleanup() +} + +func writeFile(path string, contents []byte) { + f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) + if err != nil { + panic(err) + } + defer f.Close() + if _, err := f.Write(contents); err != nil { + panic(err) + } +} + +// newServer returns a new mock ssh server. +func newServer(t *testing.T) *server { + if testing.Short() { + t.Skip("skipping test due to -short") + } + dir, err := ioutil.TempDir("", "sshtest") + if err != nil { + t.Fatal(err) + } + f, err := os.Create(filepath.Join(dir, "sshd_config")) + if err != nil { + t.Fatal(err) + } + err = configTmpl.Execute(f, map[string]string{ + "Dir": dir, + }) + if err != nil { + t.Fatal(err) + } + f.Close() + + for k, v := range testdata.PEMBytes { + filename := "id_" + k + writeFile(filepath.Join(dir, filename), v) + writeFile(filepath.Join(dir, filename+".pub"), ssh.MarshalAuthorizedKey(testPublicKeys[k])) + } + + var authkeys bytes.Buffer + for k, _ := range testdata.PEMBytes { + authkeys.Write(ssh.MarshalAuthorizedKey(testPublicKeys[k])) + } + writeFile(filepath.Join(dir, "authorized_keys"), authkeys.Bytes()) + + return &server{ + t: t, + configfile: f.Name(), + cleanup: func() { + if err := os.RemoveAll(dir); err != nil { + t.Error(err) + } + }, + } +} diff --git a/vendor/golang.org/x/crypto/ssh/test/testdata_test.go b/vendor/golang.org/x/crypto/ssh/test/testdata_test.go new file mode 100644 index 00000000..a053f67e --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/test/testdata_test.go @@ -0,0 +1,64 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package test + +import ( + "crypto/rand" + "fmt" + + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]ssh.Signer + testPublicKeys map[string]ssh.PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]ssh.Signer, n) + testPublicKeys = make(map[string]ssh.PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &ssh.Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: ssh.CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: ssh.Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = ssh.NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/testdata/doc.go b/vendor/golang.org/x/crypto/ssh/testdata/doc.go new file mode 100644 index 00000000..fcae47ca --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/testdata/doc.go @@ -0,0 +1,8 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This package contains test data shared between the various subpackages of +// the golang.org/x/crypto/ssh package. Under no circumstance should +// this data be used for production code. +package testdata // import "golang.org/x/crypto/ssh/testdata" diff --git a/vendor/golang.org/x/crypto/ssh/testdata/keys.go b/vendor/golang.org/x/crypto/ssh/testdata/keys.go new file mode 100644 index 00000000..736dad95 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/testdata/keys.go @@ -0,0 +1,120 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package testdata + +var PEMBytes = map[string][]byte{ + "dsa": []byte(`-----BEGIN DSA PRIVATE KEY----- +MIIBuwIBAAKBgQD6PDSEyXiI9jfNs97WuM46MSDCYlOqWw80ajN16AohtBncs1YB +lHk//dQOvCYOsYaE+gNix2jtoRjwXhDsc25/IqQbU1ahb7mB8/rsaILRGIbA5WH3 +EgFtJmXFovDz3if6F6TzvhFpHgJRmLYVR8cqsezL3hEZOvvs2iH7MorkxwIVAJHD +nD82+lxh2fb4PMsIiaXudAsBAoGAQRf7Q/iaPRn43ZquUhd6WwvirqUj+tkIu6eV +2nZWYmXLlqFQKEy4Tejl7Wkyzr2OSYvbXLzo7TNxLKoWor6ips0phYPPMyXld14r +juhT24CrhOzuLMhDduMDi032wDIZG4Y+K7ElU8Oufn8Sj5Wge8r6ANmmVgmFfynr +FhdYCngCgYEA3ucGJ93/Mx4q4eKRDxcWD3QzWyqpbRVRRV1Vmih9Ha/qC994nJFz +DQIdjxDIT2Rk2AGzMqFEB68Zc3O+Wcsmz5eWWzEwFxaTwOGWTyDqsDRLm3fD+QYj +nOwuxb0Kce+gWI8voWcqC9cyRm09jGzu2Ab3Bhtpg8JJ8L7gS3MRZK4CFEx4UAfY +Fmsr0W6fHB9nhS4/UXM8 +-----END DSA PRIVATE KEY----- +`), + "ecdsa": []byte(`-----BEGIN EC PRIVATE KEY----- +MHcCAQEEINGWx0zo6fhJ/0EAfrPzVFyFC9s18lBt3cRoEDhS3ARooAoGCCqGSM49 +AwEHoUQDQgAEi9Hdw6KvZcWxfg2IDhA7UkpDtzzt6ZqJXSsFdLd+Kx4S3Sx4cVO+ +6/ZOXRnPmNAlLUqjShUsUBBngG0u2fqEqA== +-----END EC PRIVATE KEY----- +`), + "rsa": []byte(`-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQC8A6FGHDiWCSREAXCq6yBfNVr0xCVG2CzvktFNRpue+RXrGs/2 +a6ySEJQb3IYquw7HlJgu6fg3WIWhOmHCjfpG0PrL4CRwbqQ2LaPPXhJErWYejcD8 +Di00cF3677+G10KMZk9RXbmHtuBFZT98wxg8j+ZsBMqGM1+7yrWUvynswQIDAQAB +AoGAJMCk5vqfSRzyXOTXLGIYCuR4Kj6pdsbNSeuuRGfYBeR1F2c/XdFAg7D/8s5R +38p/Ih52/Ty5S8BfJtwtvgVY9ecf/JlU/rl/QzhG8/8KC0NG7KsyXklbQ7gJT8UT +Ojmw5QpMk+rKv17ipDVkQQmPaj+gJXYNAHqImke5mm/K/h0CQQDciPmviQ+DOhOq +2ZBqUfH8oXHgFmp7/6pXw80DpMIxgV3CwkxxIVx6a8lVH9bT/AFySJ6vXq4zTuV9 +6QmZcZzDAkEA2j/UXJPIs1fQ8z/6sONOkU/BjtoePFIWJlRxdN35cZjXnBraX5UR +fFHkePv4YwqmXNqrBOvSu+w2WdSDci+IKwJAcsPRc/jWmsrJW1q3Ha0hSf/WG/Bu +X7MPuXaKpP/DkzGoUmb8ks7yqj6XWnYkPNLjCc8izU5vRwIiyWBRf4mxMwJBAILa +NDvRS0rjwt6lJGv7zPZoqDc65VfrK2aNyHx2PgFyzwrEOtuF57bu7pnvEIxpLTeM +z26i6XVMeYXAWZMTloMCQBbpGgEERQpeUknLBqUHhg/wXF6+lFA+vEGnkY+Dwab2 +KCXFGd+SQ5GdUcEMe9isUH6DYj/6/yCDoFrXXmpQb+M= +-----END RSA PRIVATE KEY----- +`), + "ed25519": []byte(`-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACA+3f7hS7g5UWwXOGVTrMfhmxyrjqz7Sxxbx7I1j8DvvwAAAJhAFfkOQBX5 +DgAAAAtzc2gtZWQyNTUxOQAAACA+3f7hS7g5UWwXOGVTrMfhmxyrjqz7Sxxbx7I1j8Dvvw +AAAEAaYmXltfW6nhRo3iWGglRB48lYq0z0Q3I3KyrdutEr6j7d/uFLuDlRbBc4ZVOsx+Gb +HKuOrPtLHFvHsjWPwO+/AAAAE2dhcnRvbm1AZ2FydG9ubS14cHMBAg== +-----END OPENSSH PRIVATE KEY----- +`), + "user": []byte(`-----BEGIN EC PRIVATE KEY----- +MHcCAQEEILYCAeq8f7V4vSSypRw7pxy8yz3V5W4qg8kSC3zJhqpQoAoGCCqGSM49 +AwEHoUQDQgAEYcO2xNKiRUYOLEHM7VYAp57HNyKbOdYtHD83Z4hzNPVC4tM5mdGD +PLL8IEwvYu2wq+lpXfGQnNMbzYf9gspG0w== +-----END EC PRIVATE KEY----- +`), +} + +var PEMEncryptedKeys = []struct { + Name string + EncryptionKey string + PEMBytes []byte +}{ + 0: { + Name: "rsa-encrypted", + EncryptionKey: "r54-G0pher_t3st$", + PEMBytes: []byte(`-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,3E1714DE130BC5E81327F36564B05462 + +MqW88sud4fnWk/Jk3fkjh7ydu51ZkHLN5qlQgA4SkAXORPPMj2XvqZOv1v2LOgUV +dUevUn8PZK7a9zbZg4QShUSzwE5k6wdB7XKPyBgI39mJ79GBd2U4W3h6KT6jIdWA +goQpluxkrzr2/X602IaxLEre97FT9mpKC6zxKCLvyFWVIP9n3OSFS47cTTXyFr+l +7PdRhe60nn6jSBgUNk/Q1lAvEQ9fufdPwDYY93F1wyJ6lOr0F1+mzRrMbH67NyKs +rG8J1Fa7cIIre7ueKIAXTIne7OAWqpU9UDgQatDtZTbvA7ciqGsSFgiwwW13N+Rr +hN8MkODKs9cjtONxSKi05s206A3NDU6STtZ3KuPDjFE1gMJODotOuqSM+cxKfyFq +wxpk/CHYCDdMAVBSwxb/vraOHamylL4uCHpJdBHypzf2HABt+lS8Su23uAmL87DR +yvyCS/lmpuNTndef6qHPRkoW2EV3xqD3ovosGf7kgwGJUk2ZpCLVteqmYehKlZDK +r/Jy+J26ooI2jIg9bjvD1PZq+Mv+2dQ1RlDrPG3PB+rEixw6vBaL9x3jatCd4ej7 +XG7lb3qO9xFpLsx89tkEcvpGR+broSpUJ6Mu5LBCVmrvqHjvnDhrZVz1brMiQtU9 +iMZbgXqDLXHd6ERWygk7OTU03u+l1gs+KGMfmS0h0ZYw6KGVLgMnsoxqd6cFSKNB +8Ohk9ZTZGCiovlXBUepyu8wKat1k8YlHSfIHoRUJRhhcd7DrmojC+bcbMIZBU22T +Pl2ftVRGtcQY23lYd0NNKfebF7ncjuLWQGy+vZW+7cgfI6wPIbfYfP6g7QAutk6W +KQx0AoX5woZ6cNxtpIrymaVjSMRRBkKQrJKmRp3pC/lul5E5P2cueMs1fj4OHTbJ +lAUv88ywr+R+mRgYQlFW/XQ653f6DT4t6+njfO9oBcPrQDASZel3LjXLpjjYG/N5 ++BWnVexuJX9ika8HJiFl55oqaKb+WknfNhk5cPY+x7SDV9ywQeMiDZpr0ffeYAEP +LlwwiWRDYpO+uwXHSFF3+JjWwjhs8m8g99iFb7U93yKgBB12dCEPPa2ZeH9wUHMJ +sreYhNuq6f4iWWSXpzN45inQqtTi8jrJhuNLTT543ErW7DtntBO2rWMhff3aiXbn +Uy3qzZM1nPbuCGuBmP9L2dJ3Z5ifDWB4JmOyWY4swTZGt9AVmUxMIKdZpRONx8vz +I9u9nbVPGZBcou50Pa0qTLbkWsSL94MNXrARBxzhHC9Zs6XNEtwN7mOuii7uMkVc +adrxgknBH1J1N+NX/eTKzUwJuPvDtA+Z5ILWNN9wpZT/7ed8zEnKHPNUexyeT5g3 +uw9z9jH7ffGxFYlx87oiVPHGOrCXYZYW5uoZE31SCBkbtNuffNRJRKIFeipmpJ3P +7bpAG+kGHMelQH6b+5K1Qgsv4tpuSyKeTKpPFH9Av5nN4P1ZBm9N80tzbNWqjSJm +S7rYdHnuNEVnUGnRmEUMmVuYZnNBEVN/fP2m2SEwXcP3Uh7TiYlcWw10ygaGmOr7 +MvMLGkYgQ4Utwnd98mtqa0jr0hK2TcOSFir3AqVvXN3XJj4cVULkrXe4Im1laWgp +-----END RSA PRIVATE KEY----- +`), + }, + + 1: { + Name: "dsa-encrypted", + EncryptionKey: "qG0pher-dsa_t3st$", + PEMBytes: []byte(`-----BEGIN DSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,7CE7A6E4A647DC01AF860210B15ADE3E + +hvnBpI99Hceq/55pYRdOzBLntIEis02JFNXuLEydWL+RJBFDn7tA+vXec0ERJd6J +G8JXlSOAhmC2H4uK3q2xR8/Y3yL95n6OIcjvCBiLsV+o3jj1MYJmErxP6zRtq4w3 +JjIjGHWmaYFSxPKQ6e8fs74HEqaeMV9ONUoTtB+aISmgaBL15Fcoayg245dkBvVl +h5Kqspe7yvOBmzA3zjRuxmSCqKJmasXM7mqs3vIrMxZE3XPo1/fWKcPuExgpVQoT +HkJZEoIEIIPnPMwT2uYbFJSGgPJVMDT84xz7yvjCdhLmqrsXgs5Qw7Pw0i0c0BUJ +b7fDJ2UhdiwSckWGmIhTLlJZzr8K+JpjCDlP+REYBI5meB7kosBnlvCEHdw2EJkH +0QDc/2F4xlVrHOLbPRFyu1Oi2Gvbeoo9EsM/DThpd1hKAlb0sF5Y0y0d+owv0PnE +R/4X3HWfIdOHsDUvJ8xVWZ4BZk9Zk9qol045DcFCehpr/3hslCrKSZHakLt9GI58 +vVQJ4L0aYp5nloLfzhViZtKJXRLkySMKdzYkIlNmW1oVGl7tce5UCNI8Nok4j6yn +IiHM7GBn+0nJoKTXsOGMIBe3ulKlKVxLjEuk9yivh/8= +-----END DSA PRIVATE KEY----- +`), + }, +} diff --git a/vendor/golang.org/x/crypto/ssh/testdata_test.go b/vendor/golang.org/x/crypto/ssh/testdata_test.go new file mode 100644 index 00000000..2da8c79d --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/testdata_test.go @@ -0,0 +1,63 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// IMPLEMENTATION NOTE: To avoid a package loop, this file is in three places: +// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three +// instances. + +package ssh + +import ( + "crypto/rand" + "fmt" + + "golang.org/x/crypto/ssh/testdata" +) + +var ( + testPrivateKeys map[string]interface{} + testSigners map[string]Signer + testPublicKeys map[string]PublicKey +) + +func init() { + var err error + + n := len(testdata.PEMBytes) + testPrivateKeys = make(map[string]interface{}, n) + testSigners = make(map[string]Signer, n) + testPublicKeys = make(map[string]PublicKey, n) + for t, k := range testdata.PEMBytes { + testPrivateKeys[t], err = ParseRawPrivateKey(k) + if err != nil { + panic(fmt.Sprintf("Unable to parse test key %s: %v", t, err)) + } + testSigners[t], err = NewSignerFromKey(testPrivateKeys[t]) + if err != nil { + panic(fmt.Sprintf("Unable to create signer for test key %s: %v", t, err)) + } + testPublicKeys[t] = testSigners[t].PublicKey() + } + + // Create a cert and sign it for use in tests. + testCert := &Certificate{ + Nonce: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + ValidPrincipals: []string{"gopher1", "gopher2"}, // increases test coverage + ValidAfter: 0, // unix epoch + ValidBefore: CertTimeInfinity, // The end of currently representable time. + Reserved: []byte{}, // To pass reflect.DeepEqual after marshal & parse, this must be non-nil + Key: testPublicKeys["ecdsa"], + SignatureKey: testPublicKeys["rsa"], + Permissions: Permissions{ + CriticalOptions: map[string]string{}, + Extensions: map[string]string{}, + }, + } + testCert.SignCert(rand.Reader, testSigners["rsa"]) + testPrivateKeys["cert"] = testPrivateKeys["ecdsa"] + testSigners["cert"], err = NewCertSigner(testCert, testSigners["ecdsa"]) + if err != nil { + panic(fmt.Sprintf("Unable to create certificate signer: %v", err)) + } +} diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go new file mode 100644 index 00000000..62fba629 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/transport.go @@ -0,0 +1,333 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bufio" + "errors" + "io" +) + +const ( + gcmCipherID = "aes128-gcm@openssh.com" + aes128cbcID = "aes128-cbc" + tripledescbcID = "3des-cbc" +) + +// packetConn represents a transport that implements packet based +// operations. +type packetConn interface { + // Encrypt and send a packet of data to the remote peer. + writePacket(packet []byte) error + + // Read a packet from the connection + readPacket() ([]byte, error) + + // Close closes the write-side of the connection. + Close() error +} + +// transport is the keyingTransport that implements the SSH packet +// protocol. +type transport struct { + reader connectionState + writer connectionState + + bufReader *bufio.Reader + bufWriter *bufio.Writer + rand io.Reader + + io.Closer +} + +// packetCipher represents a combination of SSH encryption/MAC +// protocol. A single instance should be used for one direction only. +type packetCipher interface { + // writePacket encrypts the packet and writes it to w. The + // contents of the packet are generally scrambled. + writePacket(seqnum uint32, w io.Writer, rand io.Reader, packet []byte) error + + // readPacket reads and decrypts a packet of data. The + // returned packet may be overwritten by future calls of + // readPacket. + readPacket(seqnum uint32, r io.Reader) ([]byte, error) +} + +// connectionState represents one side (read or write) of the +// connection. This is necessary because each direction has its own +// keys, and can even have its own algorithms +type connectionState struct { + packetCipher + seqNum uint32 + dir direction + pendingKeyChange chan packetCipher +} + +// prepareKeyChange sets up key material for a keychange. The key changes in +// both directions are triggered by reading and writing a msgNewKey packet +// respectively. +func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) error { + if ciph, err := newPacketCipher(t.reader.dir, algs.r, kexResult); err != nil { + return err + } else { + t.reader.pendingKeyChange <- ciph + } + + if ciph, err := newPacketCipher(t.writer.dir, algs.w, kexResult); err != nil { + return err + } else { + t.writer.pendingKeyChange <- ciph + } + + return nil +} + +// Read and decrypt next packet. +func (t *transport) readPacket() ([]byte, error) { + return t.reader.readPacket(t.bufReader) +} + +func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) { + packet, err := s.packetCipher.readPacket(s.seqNum, r) + s.seqNum++ + if err == nil && len(packet) == 0 { + err = errors.New("ssh: zero length packet") + } + + if len(packet) > 0 { + switch packet[0] { + case msgNewKeys: + select { + case cipher := <-s.pendingKeyChange: + s.packetCipher = cipher + default: + return nil, errors.New("ssh: got bogus newkeys message.") + } + + case msgDisconnect: + // Transform a disconnect message into an + // error. Since this is lowest level at which + // we interpret message types, doing it here + // ensures that we don't have to handle it + // elsewhere. + var msg disconnectMsg + if err := Unmarshal(packet, &msg); err != nil { + return nil, err + } + return nil, &msg + } + } + + // The packet may point to an internal buffer, so copy the + // packet out here. + fresh := make([]byte, len(packet)) + copy(fresh, packet) + + return fresh, err +} + +func (t *transport) writePacket(packet []byte) error { + return t.writer.writePacket(t.bufWriter, t.rand, packet) +} + +func (s *connectionState) writePacket(w *bufio.Writer, rand io.Reader, packet []byte) error { + changeKeys := len(packet) > 0 && packet[0] == msgNewKeys + + err := s.packetCipher.writePacket(s.seqNum, w, rand, packet) + if err != nil { + return err + } + if err = w.Flush(); err != nil { + return err + } + s.seqNum++ + if changeKeys { + select { + case cipher := <-s.pendingKeyChange: + s.packetCipher = cipher + default: + panic("ssh: no key material for msgNewKeys") + } + } + return err +} + +func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transport { + t := &transport{ + bufReader: bufio.NewReader(rwc), + bufWriter: bufio.NewWriter(rwc), + rand: rand, + reader: connectionState{ + packetCipher: &streamPacketCipher{cipher: noneCipher{}}, + pendingKeyChange: make(chan packetCipher, 1), + }, + writer: connectionState{ + packetCipher: &streamPacketCipher{cipher: noneCipher{}}, + pendingKeyChange: make(chan packetCipher, 1), + }, + Closer: rwc, + } + if isClient { + t.reader.dir = serverKeys + t.writer.dir = clientKeys + } else { + t.reader.dir = clientKeys + t.writer.dir = serverKeys + } + + return t +} + +type direction struct { + ivTag []byte + keyTag []byte + macKeyTag []byte +} + +var ( + serverKeys = direction{[]byte{'B'}, []byte{'D'}, []byte{'F'}} + clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} +) + +// generateKeys generates key material for IV, MAC and encryption. +func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { + cipherMode := cipherModes[algs.Cipher] + macMode := macModes[algs.MAC] + + iv = make([]byte, cipherMode.ivSize) + key = make([]byte, cipherMode.keySize) + macKey = make([]byte, macMode.keySize) + + generateKeyMaterial(iv, d.ivTag, kex) + generateKeyMaterial(key, d.keyTag, kex) + generateKeyMaterial(macKey, d.macKeyTag, kex) + return +} + +// setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as +// described in RFC 4253, section 6.4. direction should either be serverKeys +// (to setup server->client keys) or clientKeys (for client->server keys). +func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { + iv, key, macKey := generateKeys(d, algs, kex) + + if algs.Cipher == gcmCipherID { + return newGCMCipher(iv, key, macKey) + } + + if algs.Cipher == aes128cbcID { + return newAESCBCCipher(iv, key, macKey, algs) + } + + if algs.Cipher == tripledescbcID { + return newTripleDESCBCCipher(iv, key, macKey, algs) + } + + c := &streamPacketCipher{ + mac: macModes[algs.MAC].new(macKey), + } + c.macResult = make([]byte, c.mac.Size()) + + var err error + c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) + if err != nil { + return nil, err + } + + return c, nil +} + +// generateKeyMaterial fills out with key material generated from tag, K, H +// and sessionId, as specified in RFC 4253, section 7.2. +func generateKeyMaterial(out, tag []byte, r *kexResult) { + var digestsSoFar []byte + + h := r.Hash.New() + for len(out) > 0 { + h.Reset() + h.Write(r.K) + h.Write(r.H) + + if len(digestsSoFar) == 0 { + h.Write(tag) + h.Write(r.SessionID) + } else { + h.Write(digestsSoFar) + } + + digest := h.Sum(nil) + n := copy(out, digest) + out = out[n:] + if len(out) > 0 { + digestsSoFar = append(digestsSoFar, digest...) + } + } +} + +const packageVersion = "SSH-2.0-Go" + +// Sends and receives a version line. The versionLine string should +// be US ASCII, start with "SSH-2.0-", and should not include a +// newline. exchangeVersions returns the other side's version line. +func exchangeVersions(rw io.ReadWriter, versionLine []byte) (them []byte, err error) { + // Contrary to the RFC, we do not ignore lines that don't + // start with "SSH-2.0-" to make the library usable with + // nonconforming servers. + for _, c := range versionLine { + // The spec disallows non US-ASCII chars, and + // specifically forbids null chars. + if c < 32 { + return nil, errors.New("ssh: junk character in version line") + } + } + if _, err = rw.Write(append(versionLine, '\r', '\n')); err != nil { + return + } + + them, err = readVersion(rw) + return them, err +} + +// maxVersionStringBytes is the maximum number of bytes that we'll +// accept as a version string. RFC 4253 section 4.2 limits this at 255 +// chars +const maxVersionStringBytes = 255 + +// Read version string as specified by RFC 4253, section 4.2. +func readVersion(r io.Reader) ([]byte, error) { + versionString := make([]byte, 0, 64) + var ok bool + var buf [1]byte + + for len(versionString) < maxVersionStringBytes { + _, err := io.ReadFull(r, buf[:]) + if err != nil { + return nil, err + } + // The RFC says that the version should be terminated with \r\n + // but several SSH servers actually only send a \n. + if buf[0] == '\n' { + ok = true + break + } + + // non ASCII chars are disallowed, but we are lenient, + // since Go doesn't use null-terminated strings. + + // The RFC allows a comment after a space, however, + // all of it (version and comments) goes into the + // session hash. + versionString = append(versionString, buf[0]) + } + + if !ok { + return nil, errors.New("ssh: overflow reading version string") + } + + // There might be a '\r' on the end which we should remove. + if len(versionString) > 0 && versionString[len(versionString)-1] == '\r' { + versionString = versionString[:len(versionString)-1] + } + return versionString, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/transport_test.go b/vendor/golang.org/x/crypto/ssh/transport_test.go new file mode 100644 index 00000000..92d83abf --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/transport_test.go @@ -0,0 +1,109 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssh + +import ( + "bytes" + "crypto/rand" + "encoding/binary" + "strings" + "testing" +) + +func TestReadVersion(t *testing.T) { + longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] + cases := map[string]string{ + "SSH-2.0-bla\r\n": "SSH-2.0-bla", + "SSH-2.0-bla\n": "SSH-2.0-bla", + longversion + "\r\n": longversion, + } + + for in, want := range cases { + result, err := readVersion(bytes.NewBufferString(in)) + if err != nil { + t.Errorf("readVersion(%q): %s", in, err) + } + got := string(result) + if got != want { + t.Errorf("got %q, want %q", got, want) + } + } +} + +func TestReadVersionError(t *testing.T) { + longversion := strings.Repeat("SSH-2.0-bla", 50)[:253] + cases := []string{ + longversion + "too-long\r\n", + } + for _, in := range cases { + if _, err := readVersion(bytes.NewBufferString(in)); err == nil { + t.Errorf("readVersion(%q) should have failed", in) + } + } +} + +func TestExchangeVersionsBasic(t *testing.T) { + v := "SSH-2.0-bla" + buf := bytes.NewBufferString(v + "\r\n") + them, err := exchangeVersions(buf, []byte("xyz")) + if err != nil { + t.Errorf("exchangeVersions: %v", err) + } + + if want := "SSH-2.0-bla"; string(them) != want { + t.Errorf("got %q want %q for our version", them, want) + } +} + +func TestExchangeVersions(t *testing.T) { + cases := []string{ + "not\x000allowed", + "not allowed\n", + } + for _, c := range cases { + buf := bytes.NewBufferString("SSH-2.0-bla\r\n") + if _, err := exchangeVersions(buf, []byte(c)); err == nil { + t.Errorf("exchangeVersions(%q): should have failed", c) + } + } +} + +type closerBuffer struct { + bytes.Buffer +} + +func (b *closerBuffer) Close() error { + return nil +} + +func TestTransportMaxPacketWrite(t *testing.T) { + buf := &closerBuffer{} + tr := newTransport(buf, rand.Reader, true) + huge := make([]byte, maxPacket+1) + err := tr.writePacket(huge) + if err == nil { + t.Errorf("transport accepted write for a huge packet.") + } +} + +func TestTransportMaxPacketReader(t *testing.T) { + var header [5]byte + huge := make([]byte, maxPacket+128) + binary.BigEndian.PutUint32(header[0:], uint32(len(huge))) + // padding. + header[4] = 0 + + buf := &closerBuffer{} + buf.Write(header[:]) + buf.Write(huge) + + tr := newTransport(buf, rand.Reader, true) + _, err := tr.readPacket() + if err == nil { + t.Errorf("transport succeeded reading huge packet.") + } else if !strings.Contains(err.Error(), "large") { + t.Errorf("got %q, should mention %q", err.Error(), "large") + } +} diff --git a/vendor/golang.org/x/crypto/tea/cipher.go b/vendor/golang.org/x/crypto/tea/cipher.go new file mode 100644 index 00000000..9c13d12a --- /dev/null +++ b/vendor/golang.org/x/crypto/tea/cipher.go @@ -0,0 +1,109 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package tea implements the TEA algorithm, as defined in Needham and +// Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithmâ€. See +// http://www.cix.co.uk/~klockstone/tea.pdf for details. + +package tea + +import ( + "crypto/cipher" + "encoding/binary" + "errors" +) + +const ( + // BlockSize is the size of a TEA block, in bytes. + BlockSize = 8 + + // KeySize is the size of a TEA key, in bytes. + KeySize = 16 + + // delta is the TEA key schedule constant. + delta = 0x9e3779b9 + + // numRounds is the standard number of rounds in TEA. + numRounds = 64 +) + +// tea is an instance of the TEA cipher with a particular key. +type tea struct { + key [16]byte + rounds int +} + +// NewCipher returns an instance of the TEA cipher with the standard number of +// rounds. The key argument must be 16 bytes long. +func NewCipher(key []byte) (cipher.Block, error) { + return NewCipherWithRounds(key, numRounds) +} + +// NewCipherWithRounds returns an instance of the TEA cipher with a given +// number of rounds, which must be even. The key argument must be 16 bytes +// long. +func NewCipherWithRounds(key []byte, rounds int) (cipher.Block, error) { + if len(key) != 16 { + return nil, errors.New("tea: incorrect key size") + } + + if rounds&1 != 0 { + return nil, errors.New("tea: odd number of rounds specified") + } + + c := &tea{ + rounds: rounds, + } + copy(c.key[:], key) + + return c, nil +} + +// BlockSize returns the TEA block size, which is eight bytes. It is necessary +// to satisfy the Block interface in the package "crypto/cipher". +func (*tea) BlockSize() int { + return BlockSize +} + +// Encrypt encrypts the 8 byte buffer src using the key in t and stores the +// result in dst. Note that for amounts of data larger than a block, it is not +// safe to just call Encrypt on successive blocks; instead, use an encryption +// mode like CBC (see crypto/cipher/cbc.go). +func (t *tea) Encrypt(dst, src []byte) { + e := binary.BigEndian + v0, v1 := e.Uint32(src), e.Uint32(src[4:]) + k0, k1, k2, k3 := e.Uint32(t.key[0:]), e.Uint32(t.key[4:]), e.Uint32(t.key[8:]), e.Uint32(t.key[12:]) + + sum := uint32(0) + delta := uint32(delta) + + for i := 0; i < t.rounds/2; i++ { + sum += delta + v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1) + v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3) + } + + e.PutUint32(dst, v0) + e.PutUint32(dst[4:], v1) +} + +// Decrypt decrypts the 8 byte buffer src using the key in t and stores the +// result in dst. +func (t *tea) Decrypt(dst, src []byte) { + e := binary.BigEndian + v0, v1 := e.Uint32(src), e.Uint32(src[4:]) + k0, k1, k2, k3 := e.Uint32(t.key[0:]), e.Uint32(t.key[4:]), e.Uint32(t.key[8:]), e.Uint32(t.key[12:]) + + delta := uint32(delta) + sum := delta * uint32(t.rounds/2) // in general, sum = delta * n + + for i := 0; i < t.rounds/2; i++ { + v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3) + v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1) + sum -= delta + } + + e.PutUint32(dst, v0) + e.PutUint32(dst[4:], v1) +} diff --git a/vendor/golang.org/x/crypto/tea/tea_test.go b/vendor/golang.org/x/crypto/tea/tea_test.go new file mode 100644 index 00000000..eb98d1e0 --- /dev/null +++ b/vendor/golang.org/x/crypto/tea/tea_test.go @@ -0,0 +1,93 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tea + +import ( + "bytes" + "testing" +) + +// A sample test key for when we just want to initialize a cipher +var testKey = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF} + +// Test that the block size for tea is correct +func TestBlocksize(t *testing.T) { + c, err := NewCipher(testKey) + if err != nil { + t.Fatalf("NewCipher returned error: %s", err) + } + + if result := c.BlockSize(); result != BlockSize { + t.Errorf("cipher.BlockSize returned %d, but expected %d", result, BlockSize) + } +} + +// Test that invalid key sizes return an error +func TestInvalidKeySize(t *testing.T) { + var key [KeySize + 1]byte + + if _, err := NewCipher(key[:]); err == nil { + t.Errorf("invalid key size %d didn't result in an error.", len(key)) + } + + if _, err := NewCipher(key[:KeySize-1]); err == nil { + t.Errorf("invalid key size %d didn't result in an error.", KeySize-1) + } +} + +// Test Vectors +type teaTest struct { + rounds int + key []byte + plaintext []byte + ciphertext []byte +} + +var teaTests = []teaTest{ + // These were sourced from https://github.com/froydnj/ironclad/blob/master/testing/test-vectors/tea.testvec + { + numRounds, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x41, 0xea, 0x3a, 0x0a, 0x94, 0xba, 0xa9, 0x40}, + }, + { + numRounds, + []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + []byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + []byte{0x31, 0x9b, 0xbe, 0xfb, 0x01, 0x6a, 0xbd, 0xb2}, + }, + { + 16, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0xed, 0x28, 0x5d, 0xa1, 0x45, 0x5b, 0x33, 0xc1}, + }, +} + +// Test encryption +func TestCipherEncrypt(t *testing.T) { + // Test encryption with standard 64 rounds + for i, test := range teaTests { + c, err := NewCipherWithRounds(test.key, test.rounds) + if err != nil { + t.Fatalf("#%d: NewCipher returned error: %s", i, err) + } + + var ciphertext [BlockSize]byte + c.Encrypt(ciphertext[:], test.plaintext) + + if !bytes.Equal(ciphertext[:], test.ciphertext) { + t.Errorf("#%d: incorrect ciphertext. Got %x, wanted %x", i, ciphertext, test.ciphertext) + } + + var plaintext2 [BlockSize]byte + c.Decrypt(plaintext2[:], ciphertext[:]) + + if !bytes.Equal(plaintext2[:], test.plaintext) { + t.Errorf("#%d: incorrect plaintext. Got %x, wanted %x", i, plaintext2, test.plaintext) + } + } +} diff --git a/vendor/golang.org/x/crypto/twofish/twofish.go b/vendor/golang.org/x/crypto/twofish/twofish.go new file mode 100644 index 00000000..376fa0ec --- /dev/null +++ b/vendor/golang.org/x/crypto/twofish/twofish.go @@ -0,0 +1,342 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package twofish implements Bruce Schneier's Twofish encryption algorithm. +package twofish // import "golang.org/x/crypto/twofish" + +// Twofish is defined in http://www.schneier.com/paper-twofish-paper.pdf [TWOFISH] + +// This code is a port of the LibTom C implementation. +// See http://libtom.org/?page=features&newsitems=5&whatfile=crypt. +// LibTomCrypt is free for all purposes under the public domain. +// It was heavily inspired by the go blowfish package. + +import "strconv" + +// BlockSize is the constant block size of Twofish. +const BlockSize = 16 + +const mdsPolynomial = 0x169 // x^8 + x^6 + x^5 + x^3 + 1, see [TWOFISH] 4.2 +const rsPolynomial = 0x14d // x^8 + x^6 + x^3 + x^2 + 1, see [TWOFISH] 4.3 + +// A Cipher is an instance of Twofish encryption using a particular key. +type Cipher struct { + s [4][256]uint32 + k [40]uint32 +} + +type KeySizeError int + +func (k KeySizeError) Error() string { + return "crypto/twofish: invalid key size " + strconv.Itoa(int(k)) +} + +// NewCipher creates and returns a Cipher. +// The key argument should be the Twofish key, 16, 24 or 32 bytes. +func NewCipher(key []byte) (*Cipher, error) { + keylen := len(key) + + if keylen != 16 && keylen != 24 && keylen != 32 { + return nil, KeySizeError(keylen) + } + + // k is the number of 64 bit words in key + k := keylen / 8 + + // Create the S[..] words + var S [4 * 4]byte + for i := 0; i < k; i++ { + // Computes [y0 y1 y2 y3] = rs . [x0 x1 x2 x3 x4 x5 x6 x7] + for j, rsRow := range rs { + for k, rsVal := range rsRow { + S[4*i+j] ^= gfMult(key[8*i+k], rsVal, rsPolynomial) + } + } + } + + // Calculate subkeys + c := new(Cipher) + var tmp [4]byte + for i := byte(0); i < 20; i++ { + // A = h(p * 2x, Me) + for j := range tmp { + tmp[j] = 2 * i + } + A := h(tmp[:], key, 0) + + // B = rolc(h(p * (2x + 1), Mo), 8) + for j := range tmp { + tmp[j] = 2*i + 1 + } + B := h(tmp[:], key, 1) + B = rol(B, 8) + + c.k[2*i] = A + B + + // K[2i+1] = (A + 2B) <<< 9 + c.k[2*i+1] = rol(2*B+A, 9) + } + + // Calculate sboxes + switch k { + case 2: + for i := range c.s[0] { + c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][byte(i)]^S[0]]^S[4]], 0) + c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][byte(i)]^S[1]]^S[5]], 1) + c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][byte(i)]^S[2]]^S[6]], 2) + c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][byte(i)]^S[3]]^S[7]], 3) + } + case 3: + for i := range c.s[0] { + c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][sbox[1][byte(i)]^S[0]]^S[4]]^S[8]], 0) + c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][sbox[1][byte(i)]^S[1]]^S[5]]^S[9]], 1) + c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][sbox[0][byte(i)]^S[2]]^S[6]]^S[10]], 2) + c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][sbox[0][byte(i)]^S[3]]^S[7]]^S[11]], 3) + } + default: + for i := range c.s[0] { + c.s[0][i] = mdsColumnMult(sbox[1][sbox[0][sbox[0][sbox[1][sbox[1][byte(i)]^S[0]]^S[4]]^S[8]]^S[12]], 0) + c.s[1][i] = mdsColumnMult(sbox[0][sbox[0][sbox[1][sbox[1][sbox[0][byte(i)]^S[1]]^S[5]]^S[9]]^S[13]], 1) + c.s[2][i] = mdsColumnMult(sbox[1][sbox[1][sbox[0][sbox[0][sbox[0][byte(i)]^S[2]]^S[6]]^S[10]]^S[14]], 2) + c.s[3][i] = mdsColumnMult(sbox[0][sbox[1][sbox[1][sbox[0][sbox[1][byte(i)]^S[3]]^S[7]]^S[11]]^S[15]], 3) + } + } + + return c, nil +} + +// BlockSize returns the Twofish block size, 16 bytes. +func (c *Cipher) BlockSize() int { return BlockSize } + +// store32l stores src in dst in little-endian form. +func store32l(dst []byte, src uint32) { + dst[0] = byte(src) + dst[1] = byte(src >> 8) + dst[2] = byte(src >> 16) + dst[3] = byte(src >> 24) + return +} + +// load32l reads a little-endian uint32 from src. +func load32l(src []byte) uint32 { + return uint32(src[0]) | uint32(src[1])<<8 | uint32(src[2])<<16 | uint32(src[3])<<24 +} + +// rol returns x after a left circular rotation of y bits. +func rol(x, y uint32) uint32 { + return (x << (y & 31)) | (x >> (32 - (y & 31))) +} + +// ror returns x after a right circular rotation of y bits. +func ror(x, y uint32) uint32 { + return (x >> (y & 31)) | (x << (32 - (y & 31))) +} + +// The RS matrix. See [TWOFISH] 4.3 +var rs = [4][8]byte{ + {0x01, 0xA4, 0x55, 0x87, 0x5A, 0x58, 0xDB, 0x9E}, + {0xA4, 0x56, 0x82, 0xF3, 0x1E, 0xC6, 0x68, 0xE5}, + {0x02, 0xA1, 0xFC, 0xC1, 0x47, 0xAE, 0x3D, 0x19}, + {0xA4, 0x55, 0x87, 0x5A, 0x58, 0xDB, 0x9E, 0x03}, +} + +// sbox tables +var sbox = [2][256]byte{ + { + 0xa9, 0x67, 0xb3, 0xe8, 0x04, 0xfd, 0xa3, 0x76, 0x9a, 0x92, 0x80, 0x78, 0xe4, 0xdd, 0xd1, 0x38, + 0x0d, 0xc6, 0x35, 0x98, 0x18, 0xf7, 0xec, 0x6c, 0x43, 0x75, 0x37, 0x26, 0xfa, 0x13, 0x94, 0x48, + 0xf2, 0xd0, 0x8b, 0x30, 0x84, 0x54, 0xdf, 0x23, 0x19, 0x5b, 0x3d, 0x59, 0xf3, 0xae, 0xa2, 0x82, + 0x63, 0x01, 0x83, 0x2e, 0xd9, 0x51, 0x9b, 0x7c, 0xa6, 0xeb, 0xa5, 0xbe, 0x16, 0x0c, 0xe3, 0x61, + 0xc0, 0x8c, 0x3a, 0xf5, 0x73, 0x2c, 0x25, 0x0b, 0xbb, 0x4e, 0x89, 0x6b, 0x53, 0x6a, 0xb4, 0xf1, + 0xe1, 0xe6, 0xbd, 0x45, 0xe2, 0xf4, 0xb6, 0x66, 0xcc, 0x95, 0x03, 0x56, 0xd4, 0x1c, 0x1e, 0xd7, + 0xfb, 0xc3, 0x8e, 0xb5, 0xe9, 0xcf, 0xbf, 0xba, 0xea, 0x77, 0x39, 0xaf, 0x33, 0xc9, 0x62, 0x71, + 0x81, 0x79, 0x09, 0xad, 0x24, 0xcd, 0xf9, 0xd8, 0xe5, 0xc5, 0xb9, 0x4d, 0x44, 0x08, 0x86, 0xe7, + 0xa1, 0x1d, 0xaa, 0xed, 0x06, 0x70, 0xb2, 0xd2, 0x41, 0x7b, 0xa0, 0x11, 0x31, 0xc2, 0x27, 0x90, + 0x20, 0xf6, 0x60, 0xff, 0x96, 0x5c, 0xb1, 0xab, 0x9e, 0x9c, 0x52, 0x1b, 0x5f, 0x93, 0x0a, 0xef, + 0x91, 0x85, 0x49, 0xee, 0x2d, 0x4f, 0x8f, 0x3b, 0x47, 0x87, 0x6d, 0x46, 0xd6, 0x3e, 0x69, 0x64, + 0x2a, 0xce, 0xcb, 0x2f, 0xfc, 0x97, 0x05, 0x7a, 0xac, 0x7f, 0xd5, 0x1a, 0x4b, 0x0e, 0xa7, 0x5a, + 0x28, 0x14, 0x3f, 0x29, 0x88, 0x3c, 0x4c, 0x02, 0xb8, 0xda, 0xb0, 0x17, 0x55, 0x1f, 0x8a, 0x7d, + 0x57, 0xc7, 0x8d, 0x74, 0xb7, 0xc4, 0x9f, 0x72, 0x7e, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, + 0x6e, 0x50, 0xde, 0x68, 0x65, 0xbc, 0xdb, 0xf8, 0xc8, 0xa8, 0x2b, 0x40, 0xdc, 0xfe, 0x32, 0xa4, + 0xca, 0x10, 0x21, 0xf0, 0xd3, 0x5d, 0x0f, 0x00, 0x6f, 0x9d, 0x36, 0x42, 0x4a, 0x5e, 0xc1, 0xe0, + }, + { + 0x75, 0xf3, 0xc6, 0xf4, 0xdb, 0x7b, 0xfb, 0xc8, 0x4a, 0xd3, 0xe6, 0x6b, 0x45, 0x7d, 0xe8, 0x4b, + 0xd6, 0x32, 0xd8, 0xfd, 0x37, 0x71, 0xf1, 0xe1, 0x30, 0x0f, 0xf8, 0x1b, 0x87, 0xfa, 0x06, 0x3f, + 0x5e, 0xba, 0xae, 0x5b, 0x8a, 0x00, 0xbc, 0x9d, 0x6d, 0xc1, 0xb1, 0x0e, 0x80, 0x5d, 0xd2, 0xd5, + 0xa0, 0x84, 0x07, 0x14, 0xb5, 0x90, 0x2c, 0xa3, 0xb2, 0x73, 0x4c, 0x54, 0x92, 0x74, 0x36, 0x51, + 0x38, 0xb0, 0xbd, 0x5a, 0xfc, 0x60, 0x62, 0x96, 0x6c, 0x42, 0xf7, 0x10, 0x7c, 0x28, 0x27, 0x8c, + 0x13, 0x95, 0x9c, 0xc7, 0x24, 0x46, 0x3b, 0x70, 0xca, 0xe3, 0x85, 0xcb, 0x11, 0xd0, 0x93, 0xb8, + 0xa6, 0x83, 0x20, 0xff, 0x9f, 0x77, 0xc3, 0xcc, 0x03, 0x6f, 0x08, 0xbf, 0x40, 0xe7, 0x2b, 0xe2, + 0x79, 0x0c, 0xaa, 0x82, 0x41, 0x3a, 0xea, 0xb9, 0xe4, 0x9a, 0xa4, 0x97, 0x7e, 0xda, 0x7a, 0x17, + 0x66, 0x94, 0xa1, 0x1d, 0x3d, 0xf0, 0xde, 0xb3, 0x0b, 0x72, 0xa7, 0x1c, 0xef, 0xd1, 0x53, 0x3e, + 0x8f, 0x33, 0x26, 0x5f, 0xec, 0x76, 0x2a, 0x49, 0x81, 0x88, 0xee, 0x21, 0xc4, 0x1a, 0xeb, 0xd9, + 0xc5, 0x39, 0x99, 0xcd, 0xad, 0x31, 0x8b, 0x01, 0x18, 0x23, 0xdd, 0x1f, 0x4e, 0x2d, 0xf9, 0x48, + 0x4f, 0xf2, 0x65, 0x8e, 0x78, 0x5c, 0x58, 0x19, 0x8d, 0xe5, 0x98, 0x57, 0x67, 0x7f, 0x05, 0x64, + 0xaf, 0x63, 0xb6, 0xfe, 0xf5, 0xb7, 0x3c, 0xa5, 0xce, 0xe9, 0x68, 0x44, 0xe0, 0x4d, 0x43, 0x69, + 0x29, 0x2e, 0xac, 0x15, 0x59, 0xa8, 0x0a, 0x9e, 0x6e, 0x47, 0xdf, 0x34, 0x35, 0x6a, 0xcf, 0xdc, + 0x22, 0xc9, 0xc0, 0x9b, 0x89, 0xd4, 0xed, 0xab, 0x12, 0xa2, 0x0d, 0x52, 0xbb, 0x02, 0x2f, 0xa9, + 0xd7, 0x61, 0x1e, 0xb4, 0x50, 0x04, 0xf6, 0xc2, 0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xbe, 0x91, + }, +} + +// gfMult returns a·b in GF(2^8)/p +func gfMult(a, b byte, p uint32) byte { + B := [2]uint32{0, uint32(b)} + P := [2]uint32{0, p} + var result uint32 + + // branchless GF multiplier + for i := 0; i < 7; i++ { + result ^= B[a&1] + a >>= 1 + B[1] = P[B[1]>>7] ^ (B[1] << 1) + } + result ^= B[a&1] + return byte(result) +} + +// mdsColumnMult calculates y{col} where [y0 y1 y2 y3] = MDS · [x0] +func mdsColumnMult(in byte, col int) uint32 { + mul01 := in + mul5B := gfMult(in, 0x5B, mdsPolynomial) + mulEF := gfMult(in, 0xEF, mdsPolynomial) + + switch col { + case 0: + return uint32(mul01) | uint32(mul5B)<<8 | uint32(mulEF)<<16 | uint32(mulEF)<<24 + case 1: + return uint32(mulEF) | uint32(mulEF)<<8 | uint32(mul5B)<<16 | uint32(mul01)<<24 + case 2: + return uint32(mul5B) | uint32(mulEF)<<8 | uint32(mul01)<<16 | uint32(mulEF)<<24 + case 3: + return uint32(mul5B) | uint32(mul01)<<8 | uint32(mulEF)<<16 | uint32(mul5B)<<24 + } + + panic("unreachable") +} + +// h implements the S-box generation function. See [TWOFISH] 4.3.5 +func h(in, key []byte, offset int) uint32 { + var y [4]byte + for x := range y { + y[x] = in[x] + } + switch len(key) / 8 { + case 4: + y[0] = sbox[1][y[0]] ^ key[4*(6+offset)+0] + y[1] = sbox[0][y[1]] ^ key[4*(6+offset)+1] + y[2] = sbox[0][y[2]] ^ key[4*(6+offset)+2] + y[3] = sbox[1][y[3]] ^ key[4*(6+offset)+3] + fallthrough + case 3: + y[0] = sbox[1][y[0]] ^ key[4*(4+offset)+0] + y[1] = sbox[1][y[1]] ^ key[4*(4+offset)+1] + y[2] = sbox[0][y[2]] ^ key[4*(4+offset)+2] + y[3] = sbox[0][y[3]] ^ key[4*(4+offset)+3] + fallthrough + case 2: + y[0] = sbox[1][sbox[0][sbox[0][y[0]]^key[4*(2+offset)+0]]^key[4*(0+offset)+0]] + y[1] = sbox[0][sbox[0][sbox[1][y[1]]^key[4*(2+offset)+1]]^key[4*(0+offset)+1]] + y[2] = sbox[1][sbox[1][sbox[0][y[2]]^key[4*(2+offset)+2]]^key[4*(0+offset)+2]] + y[3] = sbox[0][sbox[1][sbox[1][y[3]]^key[4*(2+offset)+3]]^key[4*(0+offset)+3]] + } + // [y0 y1 y2 y3] = MDS . [x0 x1 x2 x3] + var mdsMult uint32 + for i := range y { + mdsMult ^= mdsColumnMult(y[i], i) + } + return mdsMult +} + +// Encrypt encrypts a 16-byte block from src to dst, which may overlap. +// Note that for amounts of data larger than a block, +// it is not safe to just call Encrypt on successive blocks; +// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). +func (c *Cipher) Encrypt(dst, src []byte) { + S1 := c.s[0] + S2 := c.s[1] + S3 := c.s[2] + S4 := c.s[3] + + // Load input + ia := load32l(src[0:4]) + ib := load32l(src[4:8]) + ic := load32l(src[8:12]) + id := load32l(src[12:16]) + + // Pre-whitening + ia ^= c.k[0] + ib ^= c.k[1] + ic ^= c.k[2] + id ^= c.k[3] + + for i := 0; i < 8; i++ { + k := c.k[8+i*4 : 12+i*4] + t2 := S2[byte(ib)] ^ S3[byte(ib>>8)] ^ S4[byte(ib>>16)] ^ S1[byte(ib>>24)] + t1 := S1[byte(ia)] ^ S2[byte(ia>>8)] ^ S3[byte(ia>>16)] ^ S4[byte(ia>>24)] + t2 + ic = ror(ic^(t1+k[0]), 1) + id = rol(id, 1) ^ (t2 + t1 + k[1]) + + t2 = S2[byte(id)] ^ S3[byte(id>>8)] ^ S4[byte(id>>16)] ^ S1[byte(id>>24)] + t1 = S1[byte(ic)] ^ S2[byte(ic>>8)] ^ S3[byte(ic>>16)] ^ S4[byte(ic>>24)] + t2 + ia = ror(ia^(t1+k[2]), 1) + ib = rol(ib, 1) ^ (t2 + t1 + k[3]) + } + + // Output with "undo last swap" + ta := ic ^ c.k[4] + tb := id ^ c.k[5] + tc := ia ^ c.k[6] + td := ib ^ c.k[7] + + store32l(dst[0:4], ta) + store32l(dst[4:8], tb) + store32l(dst[8:12], tc) + store32l(dst[12:16], td) +} + +// Decrypt decrypts a 16-byte block from src to dst, which may overlap. +func (c *Cipher) Decrypt(dst, src []byte) { + S1 := c.s[0] + S2 := c.s[1] + S3 := c.s[2] + S4 := c.s[3] + + // Load input + ta := load32l(src[0:4]) + tb := load32l(src[4:8]) + tc := load32l(src[8:12]) + td := load32l(src[12:16]) + + // Undo undo final swap + ia := tc ^ c.k[6] + ib := td ^ c.k[7] + ic := ta ^ c.k[4] + id := tb ^ c.k[5] + + for i := 8; i > 0; i-- { + k := c.k[4+i*4 : 8+i*4] + t2 := S2[byte(id)] ^ S3[byte(id>>8)] ^ S4[byte(id>>16)] ^ S1[byte(id>>24)] + t1 := S1[byte(ic)] ^ S2[byte(ic>>8)] ^ S3[byte(ic>>16)] ^ S4[byte(ic>>24)] + t2 + ia = rol(ia, 1) ^ (t1 + k[2]) + ib = ror(ib^(t2+t1+k[3]), 1) + + t2 = S2[byte(ib)] ^ S3[byte(ib>>8)] ^ S4[byte(ib>>16)] ^ S1[byte(ib>>24)] + t1 = S1[byte(ia)] ^ S2[byte(ia>>8)] ^ S3[byte(ia>>16)] ^ S4[byte(ia>>24)] + t2 + ic = rol(ic, 1) ^ (t1 + k[0]) + id = ror(id^(t2+t1+k[1]), 1) + } + + // Undo pre-whitening + ia ^= c.k[0] + ib ^= c.k[1] + ic ^= c.k[2] + id ^= c.k[3] + + store32l(dst[0:4], ia) + store32l(dst[4:8], ib) + store32l(dst[8:12], ic) + store32l(dst[12:16], id) +} diff --git a/vendor/golang.org/x/crypto/twofish/twofish_test.go b/vendor/golang.org/x/crypto/twofish/twofish_test.go new file mode 100644 index 00000000..303081f3 --- /dev/null +++ b/vendor/golang.org/x/crypto/twofish/twofish_test.go @@ -0,0 +1,129 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package twofish + +import ( + "bytes" + "testing" +) + +var qbox = [2][4][16]byte{ + { + {0x8, 0x1, 0x7, 0xD, 0x6, 0xF, 0x3, 0x2, 0x0, 0xB, 0x5, 0x9, 0xE, 0xC, 0xA, 0x4}, + {0xE, 0xC, 0xB, 0x8, 0x1, 0x2, 0x3, 0x5, 0xF, 0x4, 0xA, 0x6, 0x7, 0x0, 0x9, 0xD}, + {0xB, 0xA, 0x5, 0xE, 0x6, 0xD, 0x9, 0x0, 0xC, 0x8, 0xF, 0x3, 0x2, 0x4, 0x7, 0x1}, + {0xD, 0x7, 0xF, 0x4, 0x1, 0x2, 0x6, 0xE, 0x9, 0xB, 0x3, 0x0, 0x8, 0x5, 0xC, 0xA}, + }, + { + {0x2, 0x8, 0xB, 0xD, 0xF, 0x7, 0x6, 0xE, 0x3, 0x1, 0x9, 0x4, 0x0, 0xA, 0xC, 0x5}, + {0x1, 0xE, 0x2, 0xB, 0x4, 0xC, 0x3, 0x7, 0x6, 0xD, 0xA, 0x5, 0xF, 0x9, 0x0, 0x8}, + {0x4, 0xC, 0x7, 0x5, 0x1, 0x6, 0x9, 0xA, 0x0, 0xE, 0xD, 0x8, 0x2, 0xB, 0x3, 0xF}, + {0xB, 0x9, 0x5, 0x1, 0xC, 0x3, 0xD, 0xE, 0x6, 0x4, 0x7, 0xF, 0x2, 0x0, 0x8, 0xA}, + }, +} + +// genSbox generates the variable sbox +func genSbox(qi int, x byte) byte { + a0, b0 := x/16, x%16 + for i := 0; i < 2; i++ { + a1 := a0 ^ b0 + b1 := (a0 ^ ((b0 << 3) | (b0 >> 1)) ^ (a0 << 3)) & 15 + a0 = qbox[qi][2*i][a1] + b0 = qbox[qi][2*i+1][b1] + } + return (b0 << 4) + a0 +} + +func TestSbox(t *testing.T) { + for n := range sbox { + for m := range sbox[n] { + if genSbox(n, byte(m)) != sbox[n][m] { + t.Errorf("#%d|%d: sbox value = %d want %d", n, m, sbox[n][m], genSbox(n, byte(m))) + } + } + } +} + +var testVectors = []struct { + key []byte + dec []byte + enc []byte +}{ + // These tests are extracted from LibTom + { + []byte{0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32, 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A}, + []byte{0xD4, 0x91, 0xDB, 0x16, 0xE7, 0xB1, 0xC3, 0x9E, 0x86, 0xCB, 0x08, 0x6B, 0x78, 0x9F, 0x54, 0x19}, + []byte{0x01, 0x9F, 0x98, 0x09, 0xDE, 0x17, 0x11, 0x85, 0x8F, 0xAA, 0xC3, 0xA3, 0xBA, 0x20, 0xFB, 0xC3}, + }, + { + []byte{0x88, 0xB2, 0xB2, 0x70, 0x6B, 0x10, 0x5E, 0x36, 0xB4, 0x46, 0xBB, 0x6D, 0x73, 0x1A, 0x1E, 0x88, + 0xEF, 0xA7, 0x1F, 0x78, 0x89, 0x65, 0xBD, 0x44}, + []byte{0x39, 0xDA, 0x69, 0xD6, 0xBA, 0x49, 0x97, 0xD5, 0x85, 0xB6, 0xDC, 0x07, 0x3C, 0xA3, 0x41, 0xB2}, + []byte{0x18, 0x2B, 0x02, 0xD8, 0x14, 0x97, 0xEA, 0x45, 0xF9, 0xDA, 0xAC, 0xDC, 0x29, 0x19, 0x3A, 0x65}, + }, + { + []byte{0xD4, 0x3B, 0xB7, 0x55, 0x6E, 0xA3, 0x2E, 0x46, 0xF2, 0xA2, 0x82, 0xB7, 0xD4, 0x5B, 0x4E, 0x0D, + 0x57, 0xFF, 0x73, 0x9D, 0x4D, 0xC9, 0x2C, 0x1B, 0xD7, 0xFC, 0x01, 0x70, 0x0C, 0xC8, 0x21, 0x6F}, + []byte{0x90, 0xAF, 0xE9, 0x1B, 0xB2, 0x88, 0x54, 0x4F, 0x2C, 0x32, 0xDC, 0x23, 0x9B, 0x26, 0x35, 0xE6}, + []byte{0x6C, 0xB4, 0x56, 0x1C, 0x40, 0xBF, 0x0A, 0x97, 0x05, 0x93, 0x1C, 0xB6, 0xD4, 0x08, 0xE7, 0xFA}, + }, + // These test are derived from http://www.schneier.com/code/ecb_ival.txt + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32, 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A}, + }, + { + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + }, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0xCF, 0xD1, 0xD2, 0xE5, 0xA9, 0xBE, 0x9C, 0xDF, 0x50, 0x1F, 0x13, 0xB8, 0x92, 0xBD, 0x22, 0x48}, + }, + { + []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, + }, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x37, 0x52, 0x7B, 0xE0, 0x05, 0x23, 0x34, 0xB8, 0x9F, 0x0C, 0xFC, 0xCA, 0xE8, 0x7C, 0xFA, 0x20}, + }, +} + +func TestCipher(t *testing.T) { + for n, tt := range testVectors { + // Test if the plaintext (dec) is encrypts to the given + // ciphertext (enc) using the given key. Test also if enc can + // be decrypted again into dec. + c, err := NewCipher(tt.key) + if err != nil { + t.Errorf("#%d: NewCipher: %v", n, err) + return + } + + buf := make([]byte, 16) + c.Encrypt(buf, tt.dec) + if !bytes.Equal(buf, tt.enc) { + t.Errorf("#%d: encrypt = %x want %x", n, buf, tt.enc) + } + c.Decrypt(buf, tt.enc) + if !bytes.Equal(buf, tt.dec) { + t.Errorf("#%d: decrypt = %x want %x", n, buf, tt.dec) + } + + // Test that 16 zero bytes, encrypted 1000 times then decrypted + // 1000 times results in zero bytes again. + zero := make([]byte, 16) + buf = make([]byte, 16) + for i := 0; i < 1000; i++ { + c.Encrypt(buf, buf) + } + for i := 0; i < 1000; i++ { + c.Decrypt(buf, buf) + } + if !bytes.Equal(buf, zero) { + t.Errorf("#%d: encrypt/decrypt 1000: have %x want %x", n, buf, zero) + } + } +} diff --git a/vendor/golang.org/x/crypto/xtea/block.go b/vendor/golang.org/x/crypto/xtea/block.go new file mode 100644 index 00000000..bf5d2459 --- /dev/null +++ b/vendor/golang.org/x/crypto/xtea/block.go @@ -0,0 +1,66 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* + Implementation adapted from Needham and Wheeler's paper: + http://www.cix.co.uk/~klockstone/xtea.pdf + + A precalculated look up table is used during encryption/decryption for values that are based purely on the key. +*/ + +package xtea + +// XTEA is based on 64 rounds. +const numRounds = 64 + +// blockToUint32 reads an 8 byte slice into two uint32s. +// The block is treated as big endian. +func blockToUint32(src []byte) (uint32, uint32) { + r0 := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) + r1 := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) + return r0, r1 +} + +// uint32ToBlock writes two uint32s into an 8 byte data block. +// Values are written as big endian. +func uint32ToBlock(v0, v1 uint32, dst []byte) { + dst[0] = byte(v0 >> 24) + dst[1] = byte(v0 >> 16) + dst[2] = byte(v0 >> 8) + dst[3] = byte(v0) + dst[4] = byte(v1 >> 24) + dst[5] = byte(v1 >> 16) + dst[6] = byte(v1 >> 8) + dst[7] = byte(v1 >> 0) +} + +// encryptBlock encrypts a single 8 byte block using XTEA. +func encryptBlock(c *Cipher, dst, src []byte) { + v0, v1 := blockToUint32(src) + + // Two rounds of XTEA applied per loop + for i := 0; i < numRounds; { + v0 += ((v1<<4 ^ v1>>5) + v1) ^ c.table[i] + i++ + v1 += ((v0<<4 ^ v0>>5) + v0) ^ c.table[i] + i++ + } + + uint32ToBlock(v0, v1, dst) +} + +// decryptBlock decrypt a single 8 byte block using XTEA. +func decryptBlock(c *Cipher, dst, src []byte) { + v0, v1 := blockToUint32(src) + + // Two rounds of XTEA applied per loop + for i := numRounds; i > 0; { + i-- + v1 -= ((v0<<4 ^ v0>>5) + v0) ^ c.table[i] + i-- + v0 -= ((v1<<4 ^ v1>>5) + v1) ^ c.table[i] + } + + uint32ToBlock(v0, v1, dst) +} diff --git a/vendor/golang.org/x/crypto/xtea/cipher.go b/vendor/golang.org/x/crypto/xtea/cipher.go new file mode 100644 index 00000000..108b4263 --- /dev/null +++ b/vendor/golang.org/x/crypto/xtea/cipher.go @@ -0,0 +1,82 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package xtea implements XTEA encryption, as defined in Needham and Wheeler's +// 1997 technical report, "Tea extensions." +package xtea // import "golang.org/x/crypto/xtea" + +// For details, see http://www.cix.co.uk/~klockstone/xtea.pdf + +import "strconv" + +// The XTEA block size in bytes. +const BlockSize = 8 + +// A Cipher is an instance of an XTEA cipher using a particular key. +// table contains a series of precalculated values that are used each round. +type Cipher struct { + table [64]uint32 +} + +type KeySizeError int + +func (k KeySizeError) Error() string { + return "crypto/xtea: invalid key size " + strconv.Itoa(int(k)) +} + +// NewCipher creates and returns a new Cipher. +// The key argument should be the XTEA key. +// XTEA only supports 128 bit (16 byte) keys. +func NewCipher(key []byte) (*Cipher, error) { + k := len(key) + switch k { + default: + return nil, KeySizeError(k) + case 16: + break + } + + c := new(Cipher) + initCipher(c, key) + + return c, nil +} + +// BlockSize returns the XTEA block size, 8 bytes. +// It is necessary to satisfy the Block interface in the +// package "crypto/cipher". +func (c *Cipher) BlockSize() int { return BlockSize } + +// Encrypt encrypts the 8 byte buffer src using the key and stores the result in dst. +// Note that for amounts of data larger than a block, +// it is not safe to just call Encrypt on successive blocks; +// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). +func (c *Cipher) Encrypt(dst, src []byte) { encryptBlock(c, dst, src) } + +// Decrypt decrypts the 8 byte buffer src using the key k and stores the result in dst. +func (c *Cipher) Decrypt(dst, src []byte) { decryptBlock(c, dst, src) } + +// initCipher initializes the cipher context by creating a look up table +// of precalculated values that are based on the key. +func initCipher(c *Cipher, key []byte) { + // Load the key into four uint32s + var k [4]uint32 + for i := 0; i < len(k); i++ { + j := i << 2 // Multiply by 4 + k[i] = uint32(key[j+0])<<24 | uint32(key[j+1])<<16 | uint32(key[j+2])<<8 | uint32(key[j+3]) + } + + // Precalculate the table + const delta = 0x9E3779B9 + var sum uint32 = 0 + + // Two rounds of XTEA applied per loop + for i := 0; i < numRounds; { + c.table[i] = sum + k[sum&3] + i++ + sum += delta + c.table[i] = sum + k[(sum>>11)&3] + i++ + } +} diff --git a/vendor/golang.org/x/crypto/xtea/xtea_test.go b/vendor/golang.org/x/crypto/xtea/xtea_test.go new file mode 100644 index 00000000..be711bf5 --- /dev/null +++ b/vendor/golang.org/x/crypto/xtea/xtea_test.go @@ -0,0 +1,229 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package xtea + +import ( + "testing" +) + +// A sample test key for when we just want to initialize a cipher +var testKey = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF} + +// Test that the block size for XTEA is correct +func TestBlocksize(t *testing.T) { + if BlockSize != 8 { + t.Errorf("BlockSize constant - expected 8, got %d", BlockSize) + return + } + + c, err := NewCipher(testKey) + if err != nil { + t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) + return + } + + result := c.BlockSize() + if result != 8 { + t.Errorf("BlockSize function - expected 8, got %d", result) + return + } +} + +// A series of test values to confirm that the Cipher.table array was initialized correctly +var testTable = []uint32{ + 0x00112233, 0x6B1568B8, 0xE28CE030, 0xC5089E2D, 0xC5089E2D, 0x1EFBD3A2, 0xA7845C2A, 0x78EF0917, + 0x78EF0917, 0x172682D0, 0x5B6AC714, 0x822AC955, 0x3DE68511, 0xDC1DFECA, 0x2062430E, 0x3611343F, + 0xF1CCEFFB, 0x900469B4, 0xD448ADF8, 0x2E3BE36D, 0xB6C46BF5, 0x994029F2, 0x994029F2, 0xF3335F67, + 0x6AAAD6DF, 0x4D2694DC, 0x4D2694DC, 0xEB5E0E95, 0x2FA252D9, 0x4551440A, 0x121E10D6, 0xB0558A8F, + 0xE388BDC3, 0x0A48C004, 0xC6047BC0, 0x643BF579, 0xA88039BD, 0x02736F32, 0x8AFBF7BA, 0x5C66A4A7, + 0x5C66A4A7, 0xC76AEB2C, 0x3EE262A4, 0x215E20A1, 0x215E20A1, 0x7B515616, 0x03D9DE9E, 0x1988CFCF, + 0xD5448B8B, 0x737C0544, 0xB7C04988, 0xDE804BC9, 0x9A3C0785, 0x3873813E, 0x7CB7C582, 0xD6AAFAF7, + 0x4E22726F, 0x309E306C, 0x309E306C, 0x8A9165E1, 0x1319EE69, 0xF595AC66, 0xF595AC66, 0x4F88E1DB, +} + +// Test that the cipher context is initialized correctly +func TestCipherInit(t *testing.T) { + c, err := NewCipher(testKey) + if err != nil { + t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) + return + } + + for i := 0; i < len(c.table); i++ { + if c.table[i] != testTable[i] { + t.Errorf("NewCipher() failed to initialize Cipher.table[%d] correctly. Expected %08X, got %08X", i, testTable[i], c.table[i]) + break + } + } +} + +// Test that invalid key sizes return an error +func TestInvalidKeySize(t *testing.T) { + // Test a long key + key := []byte{ + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, + 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, + } + + _, err := NewCipher(key) + if err == nil { + t.Errorf("Invalid key size %d didn't result in an error.", len(key)) + } + + // Test a short key + key = []byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77} + + _, err = NewCipher(key) + if err == nil { + t.Errorf("Invalid key size %d didn't result in an error.", len(key)) + } +} + +// Test that we can correctly decode some bytes we have encoded +func TestEncodeDecode(t *testing.T) { + original := []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF} + input := original + output := make([]byte, BlockSize) + + c, err := NewCipher(testKey) + if err != nil { + t.Errorf("NewCipher(%d bytes) = %s", len(testKey), err) + return + } + + // Encrypt the input block + c.Encrypt(output, input) + + // Check that the output does not match the input + differs := false + for i := 0; i < len(input); i++ { + if output[i] != input[i] { + differs = true + break + } + } + if differs == false { + t.Error("Cipher.Encrypt: Failed to encrypt the input block.") + return + } + + // Decrypt the block we just encrypted + input = output + output = make([]byte, BlockSize) + c.Decrypt(output, input) + + // Check that the output from decrypt matches our initial input + for i := 0; i < len(input); i++ { + if output[i] != original[i] { + t.Errorf("Decrypted byte %d differed. Expected %02X, got %02X\n", i, original[i], output[i]) + return + } + } +} + +// Test Vectors +type CryptTest struct { + key []byte + plainText []byte + cipherText []byte +} + +var CryptTests = []CryptTest{ + // These were sourced from http://www.freemedialibrary.com/index.php/XTEA_test_vectors + { + []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, + []byte{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48}, + []byte{0x49, 0x7d, 0xf3, 0xd0, 0x72, 0x61, 0x2c, 0xb5}, + }, + { + []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, + []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, + []byte{0xe7, 0x8f, 0x2d, 0x13, 0x74, 0x43, 0x41, 0xd8}, + }, + { + []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}, + []byte{0x5a, 0x5b, 0x6e, 0x27, 0x89, 0x48, 0xd7, 0x7f}, + []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, + }, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48}, + []byte{0xa0, 0x39, 0x05, 0x89, 0xf8, 0xb8, 0xef, 0xa5}, + }, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, + []byte{0xed, 0x23, 0x37, 0x5a, 0x82, 0x1a, 0x8c, 0x2d}, + }, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x70, 0xe1, 0x22, 0x5d, 0x6e, 0x4e, 0x76, 0x55}, + []byte{0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}, + }, + + // These vectors are from http://wiki.secondlife.com/wiki/XTEA_Strong_Encryption_Implementation#Bouncy_Castle_C.23_API + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0xDE, 0xE9, 0xD4, 0xD8, 0xF7, 0x13, 0x1E, 0xD9}, + }, + { + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}, + []byte{0x06, 0x5C, 0x1B, 0x89, 0x75, 0xC6, 0xA8, 0x16}, + }, + { + []byte{0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A}, + []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + []byte{0x1F, 0xF9, 0xA0, 0x26, 0x1A, 0xC6, 0x42, 0x64}, + }, + { + []byte{0x01, 0x23, 0x45, 0x67, 0x12, 0x34, 0x56, 0x78, 0x23, 0x45, 0x67, 0x89, 0x34, 0x56, 0x78, 0x9A}, + []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}, + []byte{0x8C, 0x67, 0x15, 0x5B, 0x2E, 0xF9, 0x1E, 0xAD}, + }, +} + +// Test encryption +func TestCipherEncrypt(t *testing.T) { + for i, tt := range CryptTests { + c, err := NewCipher(tt.key) + if err != nil { + t.Errorf("NewCipher(%d bytes), vector %d = %s", len(tt.key), i, err) + continue + } + + out := make([]byte, len(tt.plainText)) + c.Encrypt(out, tt.plainText) + + for j := 0; j < len(out); j++ { + if out[j] != tt.cipherText[j] { + t.Errorf("Cipher.Encrypt %d: out[%d] = %02X, expected %02X", i, j, out[j], tt.cipherText[j]) + break + } + } + } +} + +// Test decryption +func TestCipherDecrypt(t *testing.T) { + for i, tt := range CryptTests { + c, err := NewCipher(tt.key) + if err != nil { + t.Errorf("NewCipher(%d bytes), vector %d = %s", len(tt.key), i, err) + continue + } + + out := make([]byte, len(tt.cipherText)) + c.Decrypt(out, tt.cipherText) + + for j := 0; j < len(out); j++ { + if out[j] != tt.plainText[j] { + t.Errorf("Cipher.Decrypt %d: out[%d] = %02X, expected %02X", i, j, out[j], tt.plainText[j]) + break + } + } + } +} diff --git a/vendor/golang.org/x/crypto/xts/xts.go b/vendor/golang.org/x/crypto/xts/xts.go new file mode 100644 index 00000000..c9a283b2 --- /dev/null +++ b/vendor/golang.org/x/crypto/xts/xts.go @@ -0,0 +1,138 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package xts implements the XTS cipher mode as specified in IEEE P1619/D16. +// +// XTS mode is typically used for disk encryption, which presents a number of +// novel problems that make more common modes inapplicable. The disk is +// conceptually an array of sectors and we must be able to encrypt and decrypt +// a sector in isolation. However, an attacker must not be able to transpose +// two sectors of plaintext by transposing their ciphertext. +// +// XTS wraps a block cipher with Rogaway's XEX mode in order to build a +// tweakable block cipher. This allows each sector to have a unique tweak and +// effectively create a unique key for each sector. +// +// XTS does not provide any authentication. An attacker can manipulate the +// ciphertext and randomise a block (16 bytes) of the plaintext. +// +// (Note: this package does not implement ciphertext-stealing so sectors must +// be a multiple of 16 bytes.) +package xts // import "golang.org/x/crypto/xts" + +import ( + "crypto/cipher" + "errors" +) + +// Cipher contains an expanded key structure. It doesn't contain mutable state +// and therefore can be used concurrently. +type Cipher struct { + k1, k2 cipher.Block +} + +// blockSize is the block size that the underlying cipher must have. XTS is +// only defined for 16-byte ciphers. +const blockSize = 16 + +// NewCipher creates a Cipher given a function for creating the underlying +// block cipher (which must have a block size of 16 bytes). The key must be +// twice the length of the underlying cipher's key. +func NewCipher(cipherFunc func([]byte) (cipher.Block, error), key []byte) (c *Cipher, err error) { + c = new(Cipher) + if c.k1, err = cipherFunc(key[:len(key)/2]); err != nil { + return + } + c.k2, err = cipherFunc(key[len(key)/2:]) + + if c.k1.BlockSize() != blockSize { + err = errors.New("xts: cipher does not have a block size of 16") + } + + return +} + +// Encrypt encrypts a sector of plaintext and puts the result into ciphertext. +// Plaintext and ciphertext may be the same slice but should not overlap. +// Sectors must be a multiple of 16 bytes and less than 2²ⴠbytes. +func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) { + if len(ciphertext) < len(plaintext) { + panic("xts: ciphertext is smaller than plaintext") + } + if len(plaintext)%blockSize != 0 { + panic("xts: plaintext is not a multiple of the block size") + } + + var tweak [blockSize]byte + for i := 0; i < 8; i++ { + tweak[i] = byte(sectorNum) + sectorNum >>= 8 + } + + c.k2.Encrypt(tweak[:], tweak[:]) + + for i := 0; i < len(plaintext); i += blockSize { + for j := 0; j < blockSize; j++ { + ciphertext[i+j] = plaintext[i+j] ^ tweak[j] + } + c.k1.Encrypt(ciphertext[i:], ciphertext[i:]) + for j := 0; j < blockSize; j++ { + ciphertext[i+j] ^= tweak[j] + } + + mul2(&tweak) + } +} + +// Decrypt decrypts a sector of ciphertext and puts the result into plaintext. +// Plaintext and ciphertext may be the same slice but should not overlap. +// Sectors must be a multiple of 16 bytes and less than 2²ⴠbytes. +func (c *Cipher) Decrypt(plaintext, ciphertext []byte, sectorNum uint64) { + if len(plaintext) < len(ciphertext) { + panic("xts: plaintext is smaller than ciphertext") + } + if len(ciphertext)%blockSize != 0 { + panic("xts: ciphertext is not a multiple of the block size") + } + + var tweak [blockSize]byte + for i := 0; i < 8; i++ { + tweak[i] = byte(sectorNum) + sectorNum >>= 8 + } + + c.k2.Encrypt(tweak[:], tweak[:]) + + for i := 0; i < len(plaintext); i += blockSize { + for j := 0; j < blockSize; j++ { + plaintext[i+j] = ciphertext[i+j] ^ tweak[j] + } + c.k1.Decrypt(plaintext[i:], plaintext[i:]) + for j := 0; j < blockSize; j++ { + plaintext[i+j] ^= tweak[j] + } + + mul2(&tweak) + } +} + +// mul2 multiplies tweak by 2 in GF(2¹²â¸) with an irreducible polynomial of +// x¹²⸠+ xâ· + x² + x + 1. +func mul2(tweak *[blockSize]byte) { + var carryIn byte + for j := range tweak { + carryOut := tweak[j] >> 7 + tweak[j] = (tweak[j] << 1) + carryIn + carryIn = carryOut + } + if carryIn != 0 { + // If we have a carry bit then we need to subtract a multiple + // of the irreducible polynomial (x¹²⸠+ xâ· + x² + x + 1). + // By dropping the carry bit, we're subtracting the x^128 term + // so all that remains is to subtract xâ· + x² + x + 1. + // Subtraction (and addition) in this representation is just + // XOR. + tweak[0] ^= 1<<7 | 1<<2 | 1<<1 | 1 + } +} diff --git a/vendor/golang.org/x/crypto/xts/xts_test.go b/vendor/golang.org/x/crypto/xts/xts_test.go new file mode 100644 index 00000000..7a5e9fad --- /dev/null +++ b/vendor/golang.org/x/crypto/xts/xts_test.go @@ -0,0 +1,85 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package xts + +import ( + "bytes" + "crypto/aes" + "encoding/hex" + "testing" +) + +// These test vectors have been taken from IEEE P1619/D16, Annex B. +var xtsTestVectors = []struct { + key string + sector uint64 + plaintext string + ciphertext string +}{ + { + "0000000000000000000000000000000000000000000000000000000000000000", + 0, + "0000000000000000000000000000000000000000000000000000000000000000", + "917cf69ebd68b2ec9b9fe9a3eadda692cd43d2f59598ed858c02c2652fbf922e", + }, { + "1111111111111111111111111111111122222222222222222222222222222222", + 0x3333333333, + "4444444444444444444444444444444444444444444444444444444444444444", + "c454185e6a16936e39334038acef838bfb186fff7480adc4289382ecd6d394f0", + }, { + "fffefdfcfbfaf9f8f7f6f5f4f3f2f1f022222222222222222222222222222222", + 0x3333333333, + "4444444444444444444444444444444444444444444444444444444444444444", + "af85336b597afc1a900b2eb21ec949d292df4c047e0b21532186a5971a227a89", + }, { + "2718281828459045235360287471352631415926535897932384626433832795", + 0, + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568", + }, { + "2718281828459045235360287471352631415926535897932384626433832795", + 1, + "27a7479befa1d476489f308cd4cfa6e2a96e4bbe3208ff25287dd3819616e89cc78cf7f5e543445f8333d8fa7f56000005279fa5d8b5e4ad40e736ddb4d35412328063fd2aab53e5ea1e0a9f332500a5df9487d07a5c92cc512c8866c7e860ce93fdf166a24912b422976146ae20ce846bb7dc9ba94a767aaef20c0d61ad02655ea92dc4c4e41a8952c651d33174be51a10c421110e6d81588ede82103a252d8a750e8768defffed9122810aaeb99f9172af82b604dc4b8e51bcb08235a6f4341332e4ca60482a4ba1a03b3e65008fc5da76b70bf1690db4eae29c5f1badd03c5ccf2a55d705ddcd86d449511ceb7ec30bf12b1fa35b913f9f747a8afd1b130e94bff94effd01a91735ca1726acd0b197c4e5b03393697e126826fb6bbde8ecc1e08298516e2c9ed03ff3c1b7860f6de76d4cecd94c8119855ef5297ca67e9f3e7ff72b1e99785ca0a7e7720c5b36dc6d72cac9574c8cbbc2f801e23e56fd344b07f22154beba0f08ce8891e643ed995c94d9a69c9f1b5f499027a78572aeebd74d20cc39881c213ee770b1010e4bea718846977ae119f7a023ab58cca0ad752afe656bb3c17256a9f6e9bf19fdd5a38fc82bbe872c5539edb609ef4f79c203ebb140f2e583cb2ad15b4aa5b655016a8449277dbd477ef2c8d6c017db738b18deb4a427d1923ce3ff262735779a418f20a282df920147beabe421ee5319d0568", + "264d3ca8512194fec312c8c9891f279fefdd608d0c027b60483a3fa811d65ee59d52d9e40ec5672d81532b38b6b089ce951f0f9c35590b8b978d175213f329bb1c2fd30f2f7f30492a61a532a79f51d36f5e31a7c9a12c286082ff7d2394d18f783e1a8e72c722caaaa52d8f065657d2631fd25bfd8e5baad6e527d763517501c68c5edc3cdd55435c532d7125c8614deed9adaa3acade5888b87bef641c4c994c8091b5bcd387f3963fb5bc37aa922fbfe3df4e5b915e6eb514717bdd2a74079a5073f5c4bfd46adf7d282e7a393a52579d11a028da4d9cd9c77124f9648ee383b1ac763930e7162a8d37f350b2f74b8472cf09902063c6b32e8c2d9290cefbd7346d1c779a0df50edcde4531da07b099c638e83a755944df2aef1aa31752fd323dcb710fb4bfbb9d22b925bc3577e1b8949e729a90bbafeacf7f7879e7b1147e28ba0bae940db795a61b15ecf4df8db07b824bb062802cc98a9545bb2aaeed77cb3fc6db15dcd7d80d7d5bc406c4970a3478ada8899b329198eb61c193fb6275aa8ca340344a75a862aebe92eee1ce032fd950b47d7704a3876923b4ad62844bf4a09c4dbe8b4397184b7471360c9564880aedddb9baa4af2e75394b08cd32ff479c57a07d3eab5d54de5f9738b8d27f27a9f0ab11799d7b7ffefb2704c95c6ad12c39f1e867a4b7b1d7818a4b753dfd2a89ccb45e001a03a867b187f225dd", + }, { + "27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592", + 0xff, + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "1c3b3a102f770386e4836c99e370cf9bea00803f5e482357a4ae12d414a3e63b5d31e276f8fe4a8d66b317f9ac683f44680a86ac35adfc3345befecb4bb188fd5776926c49a3095eb108fd1098baec70aaa66999a72a82f27d848b21d4a741b0c5cd4d5fff9dac89aeba122961d03a757123e9870f8acf1000020887891429ca2a3e7a7d7df7b10355165c8b9a6d0a7de8b062c4500dc4cd120c0f7418dae3d0b5781c34803fa75421c790dfe1de1834f280d7667b327f6c8cd7557e12ac3a0f93ec05c52e0493ef31a12d3d9260f79a289d6a379bc70c50841473d1a8cc81ec583e9645e07b8d9670655ba5bbcfecc6dc3966380ad8fecb17b6ba02469a020a84e18e8f84252070c13e9f1f289be54fbc481457778f616015e1327a02b140f1505eb309326d68378f8374595c849d84f4c333ec4423885143cb47bd71c5edae9be69a2ffeceb1bec9de244fbe15992b11b77c040f12bd8f6a975a44a0f90c29a9abc3d4d893927284c58754cce294529f8614dcd2aba991925fedc4ae74ffac6e333b93eb4aff0479da9a410e4450e0dd7ae4c6e2910900575da401fc07059f645e8b7e9bfdef33943054ff84011493c27b3429eaedb4ed5376441a77ed43851ad77f16f541dfd269d50d6a5f14fb0aab1cbb4c1550be97f7ab4066193c4caa773dad38014bd2092fa755c824bb5e54c4f36ffda9fcea70b9c6e693e148c151", + }, +} + +func fromHex(s string) []byte { + ret, err := hex.DecodeString(s) + if err != nil { + panic("xts: invalid hex in test") + } + return ret +} + +func TestXTS(t *testing.T) { + for i, test := range xtsTestVectors { + c, err := NewCipher(aes.NewCipher, fromHex(test.key)) + if err != nil { + t.Errorf("#%d: failed to create cipher: %s", i, err) + continue + } + plaintext := fromHex(test.plaintext) + ciphertext := make([]byte, len(plaintext)) + c.Encrypt(ciphertext, plaintext, test.sector) + + expectedCiphertext := fromHex(test.ciphertext) + if !bytes.Equal(ciphertext, expectedCiphertext) { + t.Errorf("#%d: encrypted failed, got: %x, want: %x", i, ciphertext, expectedCiphertext) + continue + } + + decrypted := make([]byte, len(ciphertext)) + c.Decrypt(decrypted, ciphertext, test.sector) + if !bytes.Equal(decrypted, plaintext) { + t.Errorf("#%d: decryption failed, got: %x, want: %x", i, decrypted, plaintext) + } + } +} diff --git a/vendor/golang.org/x/oauth2/.travis.yml b/vendor/golang.org/x/oauth2/.travis.yml new file mode 100644 index 00000000..fa139db2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/.travis.yml @@ -0,0 +1,13 @@ +language: go + +go: + - tip + +install: + - export GOPATH="$HOME/gopath" + - mkdir -p "$GOPATH/src/golang.org/x" + - mv "$TRAVIS_BUILD_DIR" "$GOPATH/src/golang.org/x/oauth2" + - go get -v -t -d golang.org/x/oauth2/... + +script: + - go test -v golang.org/x/oauth2/... diff --git a/vendor/golang.org/x/oauth2/AUTHORS b/vendor/golang.org/x/oauth2/AUTHORS new file mode 100644 index 00000000..15167cd7 --- /dev/null +++ b/vendor/golang.org/x/oauth2/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/oauth2/CONTRIBUTING.md b/vendor/golang.org/x/oauth2/CONTRIBUTING.md new file mode 100644 index 00000000..46aa2b12 --- /dev/null +++ b/vendor/golang.org/x/oauth2/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing to Go + +Go is an open source project. + +It is the work of hundreds of contributors. We appreciate your help! + + +## Filing issues + +When [filing an issue](https://github.com/golang/oauth2/issues), make sure to answer these five questions: + +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? + +General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. +The gophers there will answer or ask you to file an issue if you've tripped over a bug. + +## Contributing code + +Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) +before sending patches. + +**We do not accept GitHub pull requests** +(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). + +Unless otherwise noted, the Go source files are distributed under +the BSD-style license found in the LICENSE file. + diff --git a/vendor/golang.org/x/oauth2/CONTRIBUTORS b/vendor/golang.org/x/oauth2/CONTRIBUTORS new file mode 100644 index 00000000..1c4577e9 --- /dev/null +++ b/vendor/golang.org/x/oauth2/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/oauth2/LICENSE b/vendor/golang.org/x/oauth2/LICENSE new file mode 100644 index 00000000..d02f24fd --- /dev/null +++ b/vendor/golang.org/x/oauth2/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The oauth2 Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/oauth2/README.md b/vendor/golang.org/x/oauth2/README.md new file mode 100644 index 00000000..1643c08e --- /dev/null +++ b/vendor/golang.org/x/oauth2/README.md @@ -0,0 +1,65 @@ +# OAuth2 for Go + +[![Build Status](https://travis-ci.org/golang/oauth2.svg?branch=master)](https://travis-ci.org/golang/oauth2) +[![GoDoc](https://godoc.org/golang.org/x/oauth2?status.svg)](https://godoc.org/golang.org/x/oauth2) + +oauth2 package contains a client implementation for OAuth 2.0 spec. + +## Installation + +~~~~ +go get golang.org/x/oauth2 +~~~~ + +See godoc for further documentation and examples. + +* [godoc.org/golang.org/x/oauth2](http://godoc.org/golang.org/x/oauth2) +* [godoc.org/golang.org/x/oauth2/google](http://godoc.org/golang.org/x/oauth2/google) + + +## App Engine + +In change 96e89be (March 2015) we removed the `oauth2.Context2` type in favor +of the [`context.Context`](https://golang.org/x/net/context#Context) type from +the `golang.org/x/net/context` package + +This means its no longer possible to use the "Classic App Engine" +`appengine.Context` type with the `oauth2` package. (You're using +Classic App Engine if you import the package `"appengine"`.) + +To work around this, you may use the new `"google.golang.org/appengine"` +package. This package has almost the same API as the `"appengine"` package, +but it can be fetched with `go get` and used on "Managed VMs" and well as +Classic App Engine. + +See the [new `appengine` package's readme](https://github.com/golang/appengine#updating-a-go-app-engine-app) +for information on updating your app. + +If you don't want to update your entire app to use the new App Engine packages, +you may use both sets of packages in parallel, using only the new packages +with the `oauth2` package. + + import ( + "golang.org/x/net/context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/google" + newappengine "google.golang.org/appengine" + newurlfetch "google.golang.org/appengine/urlfetch" + + "appengine" + ) + + func handler(w http.ResponseWriter, r *http.Request) { + var c appengine.Context = appengine.NewContext(r) + c.Infof("Logging a message with the old package") + + var ctx context.Context = newappengine.NewContext(r) + client := &http.Client{ + Transport: &oauth2.Transport{ + Source: google.AppEngineTokenSource(ctx, "scope"), + Base: &newurlfetch.Transport{Context: ctx}, + }, + } + client.Get("...") + } + diff --git a/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go b/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go new file mode 100644 index 00000000..44af1f1a --- /dev/null +++ b/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go @@ -0,0 +1,16 @@ +// Copyright 2015 The oauth2 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 bitbucket provides constants for using OAuth2 to access Bitbucket. +package bitbucket + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Bitbucket's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://bitbucket.org/site/oauth2/authorize", + TokenURL: "https://bitbucket.org/site/oauth2/access_token", +} diff --git a/vendor/golang.org/x/oauth2/client_appengine.go b/vendor/golang.org/x/oauth2/client_appengine.go new file mode 100644 index 00000000..8962c49d --- /dev/null +++ b/vendor/golang.org/x/oauth2/client_appengine.go @@ -0,0 +1,25 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build appengine + +// App Engine hooks. + +package oauth2 + +import ( + "net/http" + + "golang.org/x/net/context" + "golang.org/x/oauth2/internal" + "google.golang.org/appengine/urlfetch" +) + +func init() { + internal.RegisterContextClientFunc(contextClientAppEngine) +} + +func contextClientAppEngine(ctx context.Context) (*http.Client, error) { + return urlfetch.Client(ctx), nil +} diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go new file mode 100644 index 00000000..38be1126 --- /dev/null +++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go @@ -0,0 +1,112 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package clientcredentials implements the OAuth2.0 "client credentials" token flow, +// also known as the "two-legged OAuth 2.0". +// +// This should be used when the client is acting on its own behalf or when the client +// is the resource owner. It may also be used when requesting access to protected +// resources based on an authorization previously arranged with the authorization +// server. +// +// See http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.4 +package clientcredentials // import "golang.org/x/oauth2/clientcredentials" + +import ( + "net/http" + "net/url" + "strings" + + "golang.org/x/net/context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" +) + +// tokenFromInternal maps an *internal.Token struct into +// an *oauth2.Token struct. +func tokenFromInternal(t *internal.Token) *oauth2.Token { + if t == nil { + return nil + } + tk := &oauth2.Token{ + AccessToken: t.AccessToken, + TokenType: t.TokenType, + RefreshToken: t.RefreshToken, + Expiry: t.Expiry, + } + return tk.WithExtra(t.Raw) +} + +// retrieveToken takes a *Config and uses that to retrieve an *internal.Token. +// This token is then mapped from *internal.Token into an *oauth2.Token which is +// returned along with an error. +func retrieveToken(ctx context.Context, c *Config, v url.Values) (*oauth2.Token, error) { + tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.TokenURL, v) + if err != nil { + return nil, err + } + return tokenFromInternal(tk), nil +} + +// Client Credentials Config describes a 2-legged OAuth2 flow, with both the +// client application information and the server's endpoint URLs. +type Config struct { + // ClientID is the application's ID. + ClientID string + + // ClientSecret is the application's secret. + ClientSecret string + + // TokenURL is the resource server's token endpoint + // URL. This is a constant specific to each server. + TokenURL string + + // Scope specifies optional requested permissions. + Scopes []string +} + +// Token uses client credentials to retrieve a token. +// The HTTP client to use is derived from the context. +// If nil, http.DefaultClient is used. +func (c *Config) Token(ctx context.Context) (*oauth2.Token, error) { + return retrieveToken(ctx, c, url.Values{ + "grant_type": {"client_credentials"}, + "scope": internal.CondVal(strings.Join(c.Scopes, " ")), + }) +} + +// Client returns an HTTP client using the provided token. +// The token will auto-refresh as necessary. The underlying +// HTTP transport will be obtained using the provided context. +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context) *http.Client { + return oauth2.NewClient(ctx, c.TokenSource(ctx)) +} + +// TokenSource returns a TokenSource that returns t until t expires, +// automatically refreshing it as necessary using the provided context and the +// client ID and client secret. +// +// Most users will use Config.Client instead. +func (c *Config) TokenSource(ctx context.Context) oauth2.TokenSource { + source := &tokenSource{ + ctx: ctx, + conf: c, + } + return oauth2.ReuseTokenSource(nil, source) +} + +type tokenSource struct { + ctx context.Context + conf *Config +} + +// Token refreshes the token by using a new client credentials request. +// tokens received this way do not include a refresh token +func (c *tokenSource) Token() (*oauth2.Token, error) { + return retrieveToken(c.ctx, c.conf, url.Values{ + "grant_type": {"client_credentials"}, + "scope": internal.CondVal(strings.Join(c.conf.Scopes, " ")), + }) +} diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go new file mode 100644 index 00000000..061b43bf --- /dev/null +++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go @@ -0,0 +1,95 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package clientcredentials + +import ( + "context" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func newConf(url string) *Config { + return &Config{ + ClientID: "CLIENT_ID", + ClientSecret: "CLIENT_SECRET", + Scopes: []string{"scope1", "scope2"}, + TokenURL: url + "/token", + } +} + +type mockTransport struct { + rt func(req *http.Request) (resp *http.Response, err error) +} + +func (t *mockTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) { + return t.rt(req) +} + +func TestTokenRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("authenticate client request URL = %q; want %q", r.URL, "/token") + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + if got, want := r.Header.Get("Content-Type"), "application/x-www-form-urlencoded"; got != want { + t.Errorf("Content-Type header = %q; want %q", got, want) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + r.Body.Close() + } + if err != nil { + t.Errorf("failed reading request body: %s.", err) + } + if string(body) != "client_id=CLIENT_ID&grant_type=client_credentials&scope=scope1+scope2" { + t.Errorf("payload = %q; want %q", string(body), "client_id=CLIENT_ID&grant_type=client_credentials&scope=scope1+scope2") + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Token(context.Background()) + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("token invalid. got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Access token = %q; want %q", tok.AccessToken, "90d64460d14870c08c81352a05dedd3465940a7c") + } + if tok.TokenType != "bearer" { + t.Errorf("token type = %q; want %q", tok.TokenType, "bearer") + } +} + +func TestTokenRefreshRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "client_id=CLIENT_ID&grant_type=client_credentials&scope=scope1+scope2" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background()) + c.Get(ts.URL + "/somethingelse") +} diff --git a/vendor/golang.org/x/oauth2/example_test.go b/vendor/golang.org/x/oauth2/example_test.go new file mode 100644 index 00000000..d861fe7e --- /dev/null +++ b/vendor/golang.org/x/oauth2/example_test.go @@ -0,0 +1,47 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package oauth2_test + +import ( + "context" + "fmt" + "log" + + "golang.org/x/oauth2" +) + +func ExampleConfig() { + ctx := context.Background() + conf := &oauth2.Config{ + ClientID: "YOUR_CLIENT_ID", + ClientSecret: "YOUR_CLIENT_SECRET", + Scopes: []string{"SCOPE1", "SCOPE2"}, + Endpoint: oauth2.Endpoint{ + AuthURL: "https://provider.com/o/oauth2/auth", + TokenURL: "https://provider.com/o/oauth2/token", + }, + } + + // Redirect user to consent page to ask for permission + // for the scopes specified above. + url := conf.AuthCodeURL("state", oauth2.AccessTypeOffline) + fmt.Printf("Visit the URL for the auth dialog: %v", url) + + // Use the authorization code that is pushed to the redirect + // URL. Exchange will do the handshake to retrieve the + // initial access token. The HTTP Client returned by + // conf.Client will refresh the token as necessary. + var code string + if _, err := fmt.Scan(&code); err != nil { + log.Fatal(err) + } + tok, err := conf.Exchange(ctx, code) + if err != nil { + log.Fatal(err) + } + + client := conf.Client(ctx, tok) + client.Get("...") +} diff --git a/vendor/golang.org/x/oauth2/facebook/facebook.go b/vendor/golang.org/x/oauth2/facebook/facebook.go new file mode 100644 index 00000000..14c801a2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/facebook/facebook.go @@ -0,0 +1,16 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package facebook provides constants for using OAuth2 to access Facebook. +package facebook // import "golang.org/x/oauth2/facebook" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Facebook's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.facebook.com/dialog/oauth", + TokenURL: "https://graph.facebook.com/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/fitbit/fitbit.go b/vendor/golang.org/x/oauth2/fitbit/fitbit.go new file mode 100644 index 00000000..b31b82ac --- /dev/null +++ b/vendor/golang.org/x/oauth2/fitbit/fitbit.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package fitbit provides constants for using OAuth2 to access the Fitbit API. +package fitbit // import "golang.org/x/oauth2/fitbit" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is the Fitbit API's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.fitbit.com/oauth2/authorize", + TokenURL: "https://api.fitbit.com/oauth2/token", +} diff --git a/vendor/golang.org/x/oauth2/github/github.go b/vendor/golang.org/x/oauth2/github/github.go new file mode 100644 index 00000000..f2978015 --- /dev/null +++ b/vendor/golang.org/x/oauth2/github/github.go @@ -0,0 +1,16 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package github provides constants for using OAuth2 to access Github. +package github // import "golang.org/x/oauth2/github" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Github's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://github.com/login/oauth/authorize", + TokenURL: "https://github.com/login/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/google/appengine.go b/vendor/golang.org/x/oauth2/google/appengine.go new file mode 100644 index 00000000..dc993efb --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appengine.go @@ -0,0 +1,86 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "sort" + "strings" + "sync" + "time" + + "golang.org/x/net/context" + "golang.org/x/oauth2" +) + +// Set at init time by appenginevm_hook.go. If true, we are on App Engine Managed VMs. +var appengineVM bool + +// Set at init time by appengine_hook.go. If nil, we're not on App Engine. +var appengineTokenFunc func(c context.Context, scopes ...string) (token string, expiry time.Time, err error) + +// AppEngineTokenSource returns a token source that fetches tokens +// issued to the current App Engine application's service account. +// If you are implementing a 3-legged OAuth 2.0 flow on App Engine +// that involves user accounts, see oauth2.Config instead. +// +// The provided context must have come from appengine.NewContext. +func AppEngineTokenSource(ctx context.Context, scope ...string) oauth2.TokenSource { + if appengineTokenFunc == nil { + panic("google: AppEngineTokenSource can only be used on App Engine.") + } + scopes := append([]string{}, scope...) + sort.Strings(scopes) + return &appEngineTokenSource{ + ctx: ctx, + scopes: scopes, + key: strings.Join(scopes, " "), + } +} + +// aeTokens helps the fetched tokens to be reused until their expiration. +var ( + aeTokensMu sync.Mutex + aeTokens = make(map[string]*tokenLock) // key is space-separated scopes +) + +type tokenLock struct { + mu sync.Mutex // guards t; held while fetching or updating t + t *oauth2.Token +} + +type appEngineTokenSource struct { + ctx context.Context + scopes []string + key string // to aeTokens map; space-separated scopes +} + +func (ts *appEngineTokenSource) Token() (*oauth2.Token, error) { + if appengineTokenFunc == nil { + panic("google: AppEngineTokenSource can only be used on App Engine.") + } + + aeTokensMu.Lock() + tok, ok := aeTokens[ts.key] + if !ok { + tok = &tokenLock{} + aeTokens[ts.key] = tok + } + aeTokensMu.Unlock() + + tok.mu.Lock() + defer tok.mu.Unlock() + if tok.t.Valid() { + return tok.t, nil + } + access, exp, err := appengineTokenFunc(ts.ctx, ts.scopes...) + if err != nil { + return nil, err + } + tok.t = &oauth2.Token{ + AccessToken: access, + Expiry: exp, + } + return tok.t, nil +} diff --git a/vendor/golang.org/x/oauth2/google/appengine_hook.go b/vendor/golang.org/x/oauth2/google/appengine_hook.go new file mode 100644 index 00000000..4f42c8b3 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appengine_hook.go @@ -0,0 +1,13 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build appengine + +package google + +import "google.golang.org/appengine" + +func init() { + appengineTokenFunc = appengine.AccessToken +} diff --git a/vendor/golang.org/x/oauth2/google/appenginevm_hook.go b/vendor/golang.org/x/oauth2/google/appenginevm_hook.go new file mode 100644 index 00000000..633611cc --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appenginevm_hook.go @@ -0,0 +1,14 @@ +// Copyright 2015 The oauth2 Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build appenginevm + +package google + +import "google.golang.org/appengine" + +func init() { + appengineVM = true + appengineTokenFunc = appengine.AccessToken +} diff --git a/vendor/golang.org/x/oauth2/google/default.go b/vendor/golang.org/x/oauth2/google/default.go new file mode 100644 index 00000000..565d731c --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/default.go @@ -0,0 +1,155 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "runtime" + + "cloud.google.com/go/compute/metadata" + "golang.org/x/net/context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/jwt" +) + +// DefaultClient returns an HTTP Client that uses the +// DefaultTokenSource to obtain authentication credentials. +// +// This client should be used when developing services +// that run on Google App Engine or Google Compute Engine +// and use "Application Default Credentials." +// +// For more details, see: +// https://developers.google.com/accounts/docs/application-default-credentials +// +func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) { + ts, err := DefaultTokenSource(ctx, scope...) + if err != nil { + return nil, err + } + return oauth2.NewClient(ctx, ts), nil +} + +// DefaultTokenSource is a token source that uses +// "Application Default Credentials". +// +// It looks for credentials in the following places, +// preferring the first location found: +// +// 1. A JSON file whose path is specified by the +// GOOGLE_APPLICATION_CREDENTIALS environment variable. +// 2. A JSON file in a location known to the gcloud command-line tool. +// On Windows, this is %APPDATA%/gcloud/application_default_credentials.json. +// On other systems, $HOME/.config/gcloud/application_default_credentials.json. +// 3. On Google App Engine it uses the appengine.AccessToken function. +// 4. On Google Compute Engine and Google App Engine Managed VMs, it fetches +// credentials from the metadata server. +// (In this final case any provided scopes are ignored.) +// +// For more details, see: +// https://developers.google.com/accounts/docs/application-default-credentials +// +func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSource, error) { + // First, try the environment variable. + const envVar = "GOOGLE_APPLICATION_CREDENTIALS" + if filename := os.Getenv(envVar); filename != "" { + ts, err := tokenSourceFromFile(ctx, filename, scope) + if err != nil { + return nil, fmt.Errorf("google: error getting credentials using %v environment variable: %v", envVar, err) + } + return ts, nil + } + + // Second, try a well-known file. + filename := wellKnownFile() + _, err := os.Stat(filename) + if err == nil { + ts, err2 := tokenSourceFromFile(ctx, filename, scope) + if err2 == nil { + return ts, nil + } + err = err2 + } else if os.IsNotExist(err) { + err = nil // ignore this error + } + if err != nil { + return nil, fmt.Errorf("google: error getting credentials using well-known file (%v): %v", filename, err) + } + + // Third, if we're on Google App Engine use those credentials. + if appengineTokenFunc != nil && !appengineVM { + return AppEngineTokenSource(ctx, scope...), nil + } + + // Fourth, if we're on Google Compute Engine use the metadata server. + if metadata.OnGCE() { + return ComputeTokenSource(""), nil + } + + // None are found; return helpful error. + const url = "https://developers.google.com/accounts/docs/application-default-credentials" + return nil, fmt.Errorf("google: could not find default credentials. See %v for more information.", url) +} + +func wellKnownFile() string { + const f = "application_default_credentials.json" + if runtime.GOOS == "windows" { + return filepath.Join(os.Getenv("APPDATA"), "gcloud", f) + } + return filepath.Join(guessUnixHomeDir(), ".config", "gcloud", f) +} + +func tokenSourceFromFile(ctx context.Context, filename string, scopes []string) (oauth2.TokenSource, error) { + b, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + var d struct { + // Common fields + Type string + ClientID string `json:"client_id"` + + // User Credential fields + ClientSecret string `json:"client_secret"` + RefreshToken string `json:"refresh_token"` + + // Service Account fields + ClientEmail string `json:"client_email"` + PrivateKeyID string `json:"private_key_id"` + PrivateKey string `json:"private_key"` + } + if err := json.Unmarshal(b, &d); err != nil { + return nil, err + } + switch d.Type { + case "authorized_user": + cfg := &oauth2.Config{ + ClientID: d.ClientID, + ClientSecret: d.ClientSecret, + Scopes: append([]string{}, scopes...), // copy + Endpoint: Endpoint, + } + tok := &oauth2.Token{RefreshToken: d.RefreshToken} + return cfg.TokenSource(ctx, tok), nil + case "service_account": + cfg := &jwt.Config{ + Email: d.ClientEmail, + PrivateKey: []byte(d.PrivateKey), + Scopes: append([]string{}, scopes...), // copy + TokenURL: JWTTokenURL, + } + return cfg.TokenSource(ctx), nil + case "": + return nil, errors.New("missing 'type' field in credentials") + default: + return nil, fmt.Errorf("unknown credential type: %q", d.Type) + } +} diff --git a/vendor/golang.org/x/oauth2/google/example_test.go b/vendor/golang.org/x/oauth2/google/example_test.go new file mode 100644 index 00000000..92bc3b40 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/example_test.go @@ -0,0 +1,150 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build appenginevm appengine + +package google_test + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/google" + "golang.org/x/oauth2/jwt" + "google.golang.org/appengine" + "google.golang.org/appengine/urlfetch" +) + +func ExampleDefaultClient() { + client, err := google.DefaultClient(oauth2.NoContext, + "https://www.googleapis.com/auth/devstorage.full_control") + if err != nil { + log.Fatal(err) + } + client.Get("...") +} + +func Example_webServer() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + conf := &oauth2.Config{ + ClientID: "YOUR_CLIENT_ID", + ClientSecret: "YOUR_CLIENT_SECRET", + RedirectURL: "YOUR_REDIRECT_URL", + Scopes: []string{ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/blogger", + }, + Endpoint: google.Endpoint, + } + // Redirect user to Google's consent page to ask for permission + // for the scopes specified above. + url := conf.AuthCodeURL("state") + fmt.Printf("Visit the URL for the auth dialog: %v", url) + + // Handle the exchange code to initiate a transport. + tok, err := conf.Exchange(oauth2.NoContext, "authorization-code") + if err != nil { + log.Fatal(err) + } + client := conf.Client(oauth2.NoContext, tok) + client.Get("...") +} + +func ExampleJWTConfigFromJSON() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + // Navigate to your project, then see the "Credentials" page + // under "APIs & Auth". + // To create a service account client, click "Create new Client ID", + // select "Service Account", and click "Create Client ID". A JSON + // key file will then be downloaded to your computer. + data, err := ioutil.ReadFile("/path/to/your-project-key.json") + if err != nil { + log.Fatal(err) + } + conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/bigquery") + if err != nil { + log.Fatal(err) + } + // Initiate an http.Client. The following GET request will be + // authorized and authenticated on the behalf of + // your service account. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func ExampleSDKConfig() { + // The credentials will be obtained from the first account that + // has been authorized with `gcloud auth login`. + conf, err := google.NewSDKConfig("") + if err != nil { + log.Fatal(err) + } + // Initiate an http.Client. The following GET request will be + // authorized and authenticated on the behalf of the SDK user. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func Example_serviceAccount() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + conf := &jwt.Config{ + Email: "xxx@developer.gserviceaccount.com", + // The contents of your RSA private key or your PEM file + // that contains a private key. + // If you have a p12 file instead, you + // can use `openssl` to export the private key into a pem file. + // + // $ openssl pkcs12 -in key.p12 -passin pass:notasecret -out key.pem -nodes + // + // The field only supports PEM containers with no passphrase. + // The openssl command will convert p12 keys to passphrase-less PEM containers. + PrivateKey: []byte("-----BEGIN RSA PRIVATE KEY-----..."), + Scopes: []string{ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/blogger", + }, + TokenURL: google.JWTTokenURL, + // If you would like to impersonate a user, you can + // create a transport with a subject. The following GET + // request will be made on the behalf of user@example.com. + // Optional. + Subject: "user@example.com", + } + // Initiate an http.Client, the following GET request will be + // authorized and authenticated on the behalf of user@example.com. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func ExampleAppEngineTokenSource() { + var req *http.Request // from the ServeHTTP handler + ctx := appengine.NewContext(req) + client := &http.Client{ + Transport: &oauth2.Transport{ + Source: google.AppEngineTokenSource(ctx, "https://www.googleapis.com/auth/bigquery"), + Base: &urlfetch.Transport{ + Context: ctx, + }, + }, + } + client.Get("...") +} + +func ExampleComputeTokenSource() { + client := &http.Client{ + Transport: &oauth2.Transport{ + // Fetch from Google Compute Engine's metadata server to retrieve + // an access token for the provided account. + // If no account is specified, "default" is used. + Source: google.ComputeTokenSource(""), + }, + } + client.Get("...") +} diff --git a/vendor/golang.org/x/oauth2/google/google.go b/vendor/golang.org/x/oauth2/google/google.go new file mode 100644 index 00000000..a48d5bf3 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/google.go @@ -0,0 +1,153 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package google provides support for making OAuth2 authorized and +// authenticated HTTP requests to Google APIs. +// It supports the Web server flow, client-side credentials, service accounts, +// Google Compute Engine service accounts, and Google App Engine service +// accounts. +// +// For more information, please read +// https://developers.google.com/accounts/docs/OAuth2 +// and +// https://developers.google.com/accounts/docs/application-default-credentials. +package google // import "golang.org/x/oauth2/google" + +import ( + "encoding/json" + "errors" + "fmt" + "strings" + "time" + + "cloud.google.com/go/compute/metadata" + "golang.org/x/oauth2" + "golang.org/x/oauth2/jwt" +) + +// Endpoint is Google's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://accounts.google.com/o/oauth2/auth", + TokenURL: "https://accounts.google.com/o/oauth2/token", +} + +// JWTTokenURL is Google's OAuth 2.0 token URL to use with the JWT flow. +const JWTTokenURL = "https://accounts.google.com/o/oauth2/token" + +// ConfigFromJSON uses a Google Developers Console client_credentials.json +// file to construct a config. +// client_credentials.json can be downloaded from +// https://console.developers.google.com, under "Credentials". Download the Web +// application credentials in the JSON format and provide the contents of the +// file as jsonKey. +func ConfigFromJSON(jsonKey []byte, scope ...string) (*oauth2.Config, error) { + type cred struct { + ClientID string `json:"client_id"` + ClientSecret string `json:"client_secret"` + RedirectURIs []string `json:"redirect_uris"` + AuthURI string `json:"auth_uri"` + TokenURI string `json:"token_uri"` + } + var j struct { + Web *cred `json:"web"` + Installed *cred `json:"installed"` + } + if err := json.Unmarshal(jsonKey, &j); err != nil { + return nil, err + } + var c *cred + switch { + case j.Web != nil: + c = j.Web + case j.Installed != nil: + c = j.Installed + default: + return nil, fmt.Errorf("oauth2/google: no credentials found") + } + if len(c.RedirectURIs) < 1 { + return nil, errors.New("oauth2/google: missing redirect URL in the client_credentials.json") + } + return &oauth2.Config{ + ClientID: c.ClientID, + ClientSecret: c.ClientSecret, + RedirectURL: c.RedirectURIs[0], + Scopes: scope, + Endpoint: oauth2.Endpoint{ + AuthURL: c.AuthURI, + TokenURL: c.TokenURI, + }, + }, nil +} + +// JWTConfigFromJSON uses a Google Developers service account JSON key file to read +// the credentials that authorize and authenticate the requests. +// Create a service account on "Credentials" for your project at +// https://console.developers.google.com to download a JSON key file. +func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error) { + var key struct { + Email string `json:"client_email"` + PrivateKey string `json:"private_key"` + PrivateKeyID string `json:"private_key_id"` + TokenURL string `json:"token_uri"` + } + if err := json.Unmarshal(jsonKey, &key); err != nil { + return nil, err + } + config := &jwt.Config{ + Email: key.Email, + PrivateKey: []byte(key.PrivateKey), + PrivateKeyID: key.PrivateKeyID, + Scopes: scope, + TokenURL: key.TokenURL, + } + if config.TokenURL == "" { + config.TokenURL = JWTTokenURL + } + return config, nil +} + +// ComputeTokenSource returns a token source that fetches access tokens +// from Google Compute Engine (GCE)'s metadata server. It's only valid to use +// this token source if your program is running on a GCE instance. +// If no account is specified, "default" is used. +// Further information about retrieving access tokens from the GCE metadata +// server can be found at https://cloud.google.com/compute/docs/authentication. +func ComputeTokenSource(account string) oauth2.TokenSource { + return oauth2.ReuseTokenSource(nil, computeSource{account: account}) +} + +type computeSource struct { + account string +} + +func (cs computeSource) Token() (*oauth2.Token, error) { + if !metadata.OnGCE() { + return nil, errors.New("oauth2/google: can't get a token from the metadata service; not running on GCE") + } + acct := cs.account + if acct == "" { + acct = "default" + } + tokenJSON, err := metadata.Get("instance/service-accounts/" + acct + "/token") + if err != nil { + return nil, err + } + var res struct { + AccessToken string `json:"access_token"` + ExpiresInSec int `json:"expires_in"` + TokenType string `json:"token_type"` + } + err = json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res) + if err != nil { + return nil, fmt.Errorf("oauth2/google: invalid token JSON from metadata: %v", err) + } + if res.ExpiresInSec == 0 || res.AccessToken == "" { + return nil, fmt.Errorf("oauth2/google: incomplete token received from metadata") + } + return &oauth2.Token{ + AccessToken: res.AccessToken, + TokenType: res.TokenType, + Expiry: time.Now().Add(time.Duration(res.ExpiresInSec) * time.Second), + }, nil +} diff --git a/vendor/golang.org/x/oauth2/google/google_test.go b/vendor/golang.org/x/oauth2/google/google_test.go new file mode 100644 index 00000000..287c699e --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/google_test.go @@ -0,0 +1,116 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "strings" + "testing" +) + +var webJSONKey = []byte(` +{ + "web": { + "auth_uri": "https://google.com/o/oauth2/auth", + "client_secret": "3Oknc4jS_wA2r9i", + "token_uri": "https://google.com/o/oauth2/token", + "client_email": "222-nprqovg5k43uum874cs9osjt2koe97g8@developer.gserviceaccount.com", + "redirect_uris": ["https://www.example.com/oauth2callback"], + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/222-nprqovg5k43uum874cs9osjt2koe97g8@developer.gserviceaccount.com", + "client_id": "222-nprqovg5k43uum874cs9osjt2koe97g8.apps.googleusercontent.com", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "javascript_origins": ["https://www.example.com"] + } +}`) + +var installedJSONKey = []byte(`{ + "installed": { + "client_id": "222-installed.apps.googleusercontent.com", + "redirect_uris": ["https://www.example.com/oauth2callback"] + } +}`) + +var jwtJSONKey = []byte(`{ + "private_key_id": "268f54e43a1af97cfc71731688434f45aca15c8b", + "private_key": "super secret key", + "client_email": "gopher@developer.gserviceaccount.com", + "client_id": "gopher.apps.googleusercontent.com", + "token_uri": "https://accounts.google.com/o/gophers/token", + "type": "service_account" +}`) + +var jwtJSONKeyNoTokenURL = []byte(`{ + "private_key_id": "268f54e43a1af97cfc71731688434f45aca15c8b", + "private_key": "super secret key", + "client_email": "gopher@developer.gserviceaccount.com", + "client_id": "gopher.apps.googleusercontent.com", + "type": "service_account" +}`) + +func TestConfigFromJSON(t *testing.T) { + conf, err := ConfigFromJSON(webJSONKey, "scope1", "scope2") + if err != nil { + t.Error(err) + } + if got, want := conf.ClientID, "222-nprqovg5k43uum874cs9osjt2koe97g8.apps.googleusercontent.com"; got != want { + t.Errorf("ClientID = %q; want %q", got, want) + } + if got, want := conf.ClientSecret, "3Oknc4jS_wA2r9i"; got != want { + t.Errorf("ClientSecret = %q; want %q", got, want) + } + if got, want := conf.RedirectURL, "https://www.example.com/oauth2callback"; got != want { + t.Errorf("RedictURL = %q; want %q", got, want) + } + if got, want := strings.Join(conf.Scopes, ","), "scope1,scope2"; got != want { + t.Errorf("Scopes = %q; want %q", got, want) + } + if got, want := conf.Endpoint.AuthURL, "https://google.com/o/oauth2/auth"; got != want { + t.Errorf("AuthURL = %q; want %q", got, want) + } + if got, want := conf.Endpoint.TokenURL, "https://google.com/o/oauth2/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} + +func TestConfigFromJSON_Installed(t *testing.T) { + conf, err := ConfigFromJSON(installedJSONKey) + if err != nil { + t.Error(err) + } + if got, want := conf.ClientID, "222-installed.apps.googleusercontent.com"; got != want { + t.Errorf("ClientID = %q; want %q", got, want) + } +} + +func TestJWTConfigFromJSON(t *testing.T) { + conf, err := JWTConfigFromJSON(jwtJSONKey, "scope1", "scope2") + if err != nil { + t.Fatal(err) + } + if got, want := conf.Email, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Email = %q, want %q", got, want) + } + if got, want := string(conf.PrivateKey), "super secret key"; got != want { + t.Errorf("PrivateKey = %q, want %q", got, want) + } + if got, want := conf.PrivateKeyID, "268f54e43a1af97cfc71731688434f45aca15c8b"; got != want { + t.Errorf("PrivateKeyID = %q, want %q", got, want) + } + if got, want := strings.Join(conf.Scopes, ","), "scope1,scope2"; got != want { + t.Errorf("Scopes = %q; want %q", got, want) + } + if got, want := conf.TokenURL, "https://accounts.google.com/o/gophers/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} + +func TestJWTConfigFromJSONNoTokenURL(t *testing.T) { + conf, err := JWTConfigFromJSON(jwtJSONKeyNoTokenURL, "scope1", "scope2") + if err != nil { + t.Fatal(err) + } + if got, want := conf.TokenURL, "https://accounts.google.com/o/oauth2/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} diff --git a/vendor/golang.org/x/oauth2/google/jwt.go b/vendor/golang.org/x/oauth2/google/jwt.go new file mode 100644 index 00000000..b0fdb3a8 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/jwt.go @@ -0,0 +1,74 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "crypto/rsa" + "fmt" + "time" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" + "golang.org/x/oauth2/jws" +) + +// JWTAccessTokenSourceFromJSON uses a Google Developers service account JSON +// key file to read the credentials that authorize and authenticate the +// requests, and returns a TokenSource that does not use any OAuth2 flow but +// instead creates a JWT and sends that as the access token. +// The audience is typically a URL that specifies the scope of the credentials. +// +// Note that this is not a standard OAuth flow, but rather an +// optimization supported by a few Google services. +// Unless you know otherwise, you should use JWTConfigFromJSON instead. +func JWTAccessTokenSourceFromJSON(jsonKey []byte, audience string) (oauth2.TokenSource, error) { + cfg, err := JWTConfigFromJSON(jsonKey) + if err != nil { + return nil, fmt.Errorf("google: could not parse JSON key: %v", err) + } + pk, err := internal.ParseKey(cfg.PrivateKey) + if err != nil { + return nil, fmt.Errorf("google: could not parse key: %v", err) + } + ts := &jwtAccessTokenSource{ + email: cfg.Email, + audience: audience, + pk: pk, + pkID: cfg.PrivateKeyID, + } + tok, err := ts.Token() + if err != nil { + return nil, err + } + return oauth2.ReuseTokenSource(tok, ts), nil +} + +type jwtAccessTokenSource struct { + email, audience string + pk *rsa.PrivateKey + pkID string +} + +func (ts *jwtAccessTokenSource) Token() (*oauth2.Token, error) { + iat := time.Now() + exp := iat.Add(time.Hour) + cs := &jws.ClaimSet{ + Iss: ts.email, + Sub: ts.email, + Aud: ts.audience, + Iat: iat.Unix(), + Exp: exp.Unix(), + } + hdr := &jws.Header{ + Algorithm: "RS256", + Typ: "JWT", + KeyID: string(ts.pkID), + } + msg, err := jws.Encode(hdr, cs, ts.pk) + if err != nil { + return nil, fmt.Errorf("google: could not encode JWT: %v", err) + } + return &oauth2.Token{AccessToken: msg, TokenType: "Bearer", Expiry: exp}, nil +} diff --git a/vendor/golang.org/x/oauth2/google/jwt_test.go b/vendor/golang.org/x/oauth2/google/jwt_test.go new file mode 100644 index 00000000..f844436f --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/jwt_test.go @@ -0,0 +1,91 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "bytes" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/base64" + "encoding/json" + "encoding/pem" + "strings" + "testing" + "time" + + "golang.org/x/oauth2/jws" +) + +func TestJWTAccessTokenSourceFromJSON(t *testing.T) { + // Generate a key we can use in the test data. + privateKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + t.Fatal(err) + } + + // Encode the key and substitute into our example JSON. + enc := pem.EncodeToMemory(&pem.Block{ + Type: "PRIVATE KEY", + Bytes: x509.MarshalPKCS1PrivateKey(privateKey), + }) + enc, err = json.Marshal(string(enc)) + if err != nil { + t.Fatalf("json.Marshal: %v", err) + } + jsonKey := bytes.Replace(jwtJSONKey, []byte(`"super secret key"`), enc, 1) + + ts, err := JWTAccessTokenSourceFromJSON(jsonKey, "audience") + if err != nil { + t.Fatalf("JWTAccessTokenSourceFromJSON: %v\nJSON: %s", err, string(jsonKey)) + } + + tok, err := ts.Token() + if err != nil { + t.Fatalf("Token: %v", err) + } + + if got, want := tok.TokenType, "Bearer"; got != want { + t.Errorf("TokenType = %q, want %q", got, want) + } + if got := tok.Expiry; tok.Expiry.Before(time.Now()) { + t.Errorf("Expiry = %v, should not be expired", got) + } + + err = jws.Verify(tok.AccessToken, &privateKey.PublicKey) + if err != nil { + t.Errorf("jws.Verify on AccessToken: %v", err) + } + + claim, err := jws.Decode(tok.AccessToken) + if err != nil { + t.Fatalf("jws.Decode on AccessToken: %v", err) + } + + if got, want := claim.Iss, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Iss = %q, want %q", got, want) + } + if got, want := claim.Sub, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Sub = %q, want %q", got, want) + } + if got, want := claim.Aud, "audience"; got != want { + t.Errorf("Aud = %q, want %q", got, want) + } + + // Finally, check the header private key. + parts := strings.Split(tok.AccessToken, ".") + hdrJSON, err := base64.RawURLEncoding.DecodeString(parts[0]) + if err != nil { + t.Fatalf("base64 DecodeString: %v\nString: %q", err, parts[0]) + } + var hdr jws.Header + if err := json.Unmarshal([]byte(hdrJSON), &hdr); err != nil { + t.Fatalf("json.Unmarshal: %v (%q)", err, hdrJSON) + } + + if got, want := hdr.KeyID, "268f54e43a1af97cfc71731688434f45aca15c8b"; got != want { + t.Errorf("Header KeyID = %q, want %q", got, want) + } +} diff --git a/vendor/golang.org/x/oauth2/google/sdk.go b/vendor/golang.org/x/oauth2/google/sdk.go new file mode 100644 index 00000000..d29a3bb9 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/sdk.go @@ -0,0 +1,168 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "os" + "os/user" + "path/filepath" + "runtime" + "strings" + "time" + + "golang.org/x/net/context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" +) + +type sdkCredentials struct { + Data []struct { + Credential struct { + ClientID string `json:"client_id"` + ClientSecret string `json:"client_secret"` + AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` + TokenExpiry *time.Time `json:"token_expiry"` + } `json:"credential"` + Key struct { + Account string `json:"account"` + Scope string `json:"scope"` + } `json:"key"` + } +} + +// An SDKConfig provides access to tokens from an account already +// authorized via the Google Cloud SDK. +type SDKConfig struct { + conf oauth2.Config + initialToken *oauth2.Token +} + +// NewSDKConfig creates an SDKConfig for the given Google Cloud SDK +// account. If account is empty, the account currently active in +// Google Cloud SDK properties is used. +// Google Cloud SDK credentials must be created by running `gcloud auth` +// before using this function. +// The Google Cloud SDK is available at https://cloud.google.com/sdk/. +func NewSDKConfig(account string) (*SDKConfig, error) { + configPath, err := sdkConfigPath() + if err != nil { + return nil, fmt.Errorf("oauth2/google: error getting SDK config path: %v", err) + } + credentialsPath := filepath.Join(configPath, "credentials") + f, err := os.Open(credentialsPath) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to load SDK credentials: %v", err) + } + defer f.Close() + + var c sdkCredentials + if err := json.NewDecoder(f).Decode(&c); err != nil { + return nil, fmt.Errorf("oauth2/google: failed to decode SDK credentials from %q: %v", credentialsPath, err) + } + if len(c.Data) == 0 { + return nil, fmt.Errorf("oauth2/google: no credentials found in %q, run `gcloud auth login` to create one", credentialsPath) + } + if account == "" { + propertiesPath := filepath.Join(configPath, "properties") + f, err := os.Open(propertiesPath) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to load SDK properties: %v", err) + } + defer f.Close() + ini, err := internal.ParseINI(f) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to parse SDK properties %q: %v", propertiesPath, err) + } + core, ok := ini["core"] + if !ok { + return nil, fmt.Errorf("oauth2/google: failed to find [core] section in %v", ini) + } + active, ok := core["account"] + if !ok { + return nil, fmt.Errorf("oauth2/google: failed to find %q attribute in %v", "account", core) + } + account = active + } + + for _, d := range c.Data { + if account == "" || d.Key.Account == account { + if d.Credential.AccessToken == "" && d.Credential.RefreshToken == "" { + return nil, fmt.Errorf("oauth2/google: no token available for account %q", account) + } + var expiry time.Time + if d.Credential.TokenExpiry != nil { + expiry = *d.Credential.TokenExpiry + } + return &SDKConfig{ + conf: oauth2.Config{ + ClientID: d.Credential.ClientID, + ClientSecret: d.Credential.ClientSecret, + Scopes: strings.Split(d.Key.Scope, " "), + Endpoint: Endpoint, + RedirectURL: "oob", + }, + initialToken: &oauth2.Token{ + AccessToken: d.Credential.AccessToken, + RefreshToken: d.Credential.RefreshToken, + Expiry: expiry, + }, + }, nil + } + } + return nil, fmt.Errorf("oauth2/google: no such credentials for account %q", account) +} + +// Client returns an HTTP client using Google Cloud SDK credentials to +// authorize requests. The token will auto-refresh as necessary. The +// underlying http.RoundTripper will be obtained using the provided +// context. The returned client and its Transport should not be +// modified. +func (c *SDKConfig) Client(ctx context.Context) *http.Client { + return &http.Client{ + Transport: &oauth2.Transport{ + Source: c.TokenSource(ctx), + }, + } +} + +// TokenSource returns an oauth2.TokenSource that retrieve tokens from +// Google Cloud SDK credentials using the provided context. +// It will returns the current access token stored in the credentials, +// and refresh it when it expires, but it won't update the credentials +// with the new access token. +func (c *SDKConfig) TokenSource(ctx context.Context) oauth2.TokenSource { + return c.conf.TokenSource(ctx, c.initialToken) +} + +// Scopes are the OAuth 2.0 scopes the current account is authorized for. +func (c *SDKConfig) Scopes() []string { + return c.conf.Scopes +} + +// sdkConfigPath tries to guess where the gcloud config is located. +// It can be overridden during tests. +var sdkConfigPath = func() (string, error) { + if runtime.GOOS == "windows" { + return filepath.Join(os.Getenv("APPDATA"), "gcloud"), nil + } + homeDir := guessUnixHomeDir() + if homeDir == "" { + return "", errors.New("unable to get current user home directory: os/user lookup failed; $HOME is empty") + } + return filepath.Join(homeDir, ".config", "gcloud"), nil +} + +func guessUnixHomeDir() string { + usr, err := user.Current() + if err == nil { + return usr.HomeDir + } + return os.Getenv("HOME") +} diff --git a/vendor/golang.org/x/oauth2/google/sdk_test.go b/vendor/golang.org/x/oauth2/google/sdk_test.go new file mode 100644 index 00000000..4489bb94 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/sdk_test.go @@ -0,0 +1,46 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package google + +import "testing" + +func TestSDKConfig(t *testing.T) { + sdkConfigPath = func() (string, error) { + return "testdata/gcloud", nil + } + + tests := []struct { + account string + accessToken string + err bool + }{ + {"", "bar_access_token", false}, + {"foo@example.com", "foo_access_token", false}, + {"bar@example.com", "bar_access_token", false}, + {"baz@serviceaccount.example.com", "", true}, + } + for _, tt := range tests { + c, err := NewSDKConfig(tt.account) + if got, want := err != nil, tt.err; got != want { + if !tt.err { + t.Errorf("got %v, want nil", err) + } else { + t.Errorf("got nil, want error") + } + continue + } + if err != nil { + continue + } + tok := c.initialToken + if tok == nil { + t.Errorf("got nil, want %q", tt.accessToken) + continue + } + if tok.AccessToken != tt.accessToken { + t.Errorf("got %q, want %q", tok.AccessToken, tt.accessToken) + } + } +} diff --git a/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials b/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials new file mode 100644 index 00000000..ff5eefbd --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials @@ -0,0 +1,122 @@ +{ + "data": [ + { + "credential": { + "_class": "OAuth2Credentials", + "_module": "oauth2client.client", + "access_token": "foo_access_token", + "client_id": "foo_client_id", + "client_secret": "foo_client_secret", + "id_token": { + "at_hash": "foo_at_hash", + "aud": "foo_aud", + "azp": "foo_azp", + "cid": "foo_cid", + "email": "foo@example.com", + "email_verified": true, + "exp": 1420573614, + "iat": 1420569714, + "id": "1337", + "iss": "accounts.google.com", + "sub": "1337", + "token_hash": "foo_token_hash", + "verified_email": true + }, + "invalid": false, + "refresh_token": "foo_refresh_token", + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "token_expiry": "2015-01-09T00:51:51Z", + "token_response": { + "access_token": "foo_access_token", + "expires_in": 3600, + "id_token": "foo_id_token", + "token_type": "Bearer" + }, + "token_uri": "https://accounts.google.com/o/oauth2/token", + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "foo@example.com", + "clientId": "foo_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + }, + { + "credential": { + "_class": "OAuth2Credentials", + "_module": "oauth2client.client", + "access_token": "bar_access_token", + "client_id": "bar_client_id", + "client_secret": "bar_client_secret", + "id_token": { + "at_hash": "bar_at_hash", + "aud": "bar_aud", + "azp": "bar_azp", + "cid": "bar_cid", + "email": "bar@example.com", + "email_verified": true, + "exp": 1420573614, + "iat": 1420569714, + "id": "1337", + "iss": "accounts.google.com", + "sub": "1337", + "token_hash": "bar_token_hash", + "verified_email": true + }, + "invalid": false, + "refresh_token": "bar_refresh_token", + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "token_expiry": "2015-01-09T00:51:51Z", + "token_response": { + "access_token": "bar_access_token", + "expires_in": 3600, + "id_token": "bar_id_token", + "token_type": "Bearer" + }, + "token_uri": "https://accounts.google.com/o/oauth2/token", + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "bar@example.com", + "clientId": "bar_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + }, + { + "credential": { + "_class": "ServiceAccountCredentials", + "_kwargs": {}, + "_module": "oauth2client.client", + "_private_key_id": "00000000000000000000000000000000", + "_private_key_pkcs8_text": "-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQCt3fpiynPSaUhWSIKMGV331zudwJ6GkGmvQtwsoK2S2LbvnSwU\nNxgj4fp08kIDR5p26wF4+t/HrKydMwzftXBfZ9UmLVJgRdSswmS5SmChCrfDS5OE\nvFFcN5+6w1w8/Nu657PF/dse8T0bV95YrqyoR0Osy8WHrUOMSIIbC3hRuwIDAQAB\nAoGAJrGE/KFjn0sQ7yrZ6sXmdLawrM3mObo/2uI9T60+k7SpGbBX0/Pi6nFrJMWZ\nTVONG7P3Mu5aCPzzuVRYJB0j8aldSfzABTY3HKoWCczqw1OztJiEseXGiYz4QOyr\nYU3qDyEpdhS6q6wcoLKGH+hqRmz6pcSEsc8XzOOu7s4xW8kCQQDkc75HjhbarCnd\nJJGMe3U76+6UGmdK67ltZj6k6xoB5WbTNChY9TAyI2JC+ppYV89zv3ssj4L+02u3\nHIHFGxsHAkEAwtU1qYb1tScpchPobnYUFiVKJ7KA8EZaHVaJJODW/cghTCV7BxcJ\nbgVvlmk4lFKn3lPKAgWw7PdQsBTVBUcCrQJATPwoIirizrv3u5soJUQxZIkENAqV\nxmybZx9uetrzP7JTrVbFRf0SScMcyN90hdLJiQL8+i4+gaszgFht7sNMnwJAAbfj\nq0UXcauQwALQ7/h2oONfTg5S+MuGC/AxcXPSMZbMRGGoPh3D5YaCv27aIuS/ukQ+\n6dmm/9AGlCb64fsIWQJAPaokbjIifo+LwC5gyK73Mc4t8nAOSZDenzd/2f6TCq76\nS1dcnKiPxaED7W/y6LJiuBT2rbZiQ2L93NJpFZD/UA==\n-----END RSA PRIVATE KEY-----\n", + "_revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "_scopes": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "_service_account_email": "baz@serviceaccount.example.com", + "_service_account_id": "baz.serviceaccount.example.com", + "_token_uri": "https://accounts.google.com/o/oauth2/token", + "_user_agent": "Cloud SDK Command Line Tool", + "access_token": null, + "assertion_type": null, + "client_id": null, + "client_secret": null, + "id_token": null, + "invalid": false, + "refresh_token": null, + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "service_account_name": "baz@serviceaccount.example.com", + "token_expiry": null, + "token_response": null, + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "baz@serviceaccount.example.com", + "clientId": "baz_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + } + ], + "file_version": 1 +} diff --git a/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties b/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties new file mode 100644 index 00000000..025de886 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties @@ -0,0 +1,2 @@ +[core] +account = bar@example.com \ No newline at end of file diff --git a/vendor/golang.org/x/oauth2/heroku/heroku.go b/vendor/golang.org/x/oauth2/heroku/heroku.go new file mode 100644 index 00000000..5b4fdb89 --- /dev/null +++ b/vendor/golang.org/x/oauth2/heroku/heroku.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package heroku provides constants for using OAuth2 to access Heroku. +package heroku // import "golang.org/x/oauth2/heroku" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Heroku's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://id.heroku.com/oauth/authorize", + TokenURL: "https://id.heroku.com/oauth/token", +} diff --git a/vendor/golang.org/x/oauth2/hipchat/hipchat.go b/vendor/golang.org/x/oauth2/hipchat/hipchat.go new file mode 100644 index 00000000..594fe072 --- /dev/null +++ b/vendor/golang.org/x/oauth2/hipchat/hipchat.go @@ -0,0 +1,60 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hipchat provides constants for using OAuth2 to access HipChat. +package hipchat // import "golang.org/x/oauth2/hipchat" + +import ( + "encoding/json" + "errors" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/clientcredentials" +) + +// Endpoint is HipChat's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.hipchat.com/users/authorize", + TokenURL: "https://api.hipchat.com/v2/oauth/token", +} + +// ServerEndpoint returns a new oauth2.Endpoint for a HipChat Server instance +// running on the given domain or host. +func ServerEndpoint(host string) oauth2.Endpoint { + return oauth2.Endpoint{ + AuthURL: "https://" + host + "/users/authorize", + TokenURL: "https://" + host + "/v2/oauth/token", + } +} + +// ClientCredentialsConfigFromCaps generates a Config from a HipChat API +// capabilities descriptor. It does not verify the scopes against the +// capabilities document at this time. +// +// For more information see: https://www.hipchat.com/docs/apiv2/method/get_capabilities +func ClientCredentialsConfigFromCaps(capsJSON []byte, clientID, clientSecret string, scopes ...string) (*clientcredentials.Config, error) { + var caps struct { + Caps struct { + Endpoint struct { + TokenURL string `json:"tokenUrl"` + } `json:"oauth2Provider"` + } `json:"capabilities"` + } + + if err := json.Unmarshal(capsJSON, &caps); err != nil { + return nil, err + } + + // Verify required fields. + if caps.Caps.Endpoint.TokenURL == "" { + return nil, errors.New("oauth2/hipchat: missing OAuth2 token URL in the capabilities descriptor JSON") + } + + return &clientcredentials.Config{ + ClientID: clientID, + ClientSecret: clientSecret, + Scopes: scopes, + TokenURL: caps.Caps.Endpoint.TokenURL, + }, nil +} diff --git a/vendor/golang.org/x/oauth2/internal/oauth2.go b/vendor/golang.org/x/oauth2/internal/oauth2.go new file mode 100644 index 00000000..fbe1028d --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/oauth2.go @@ -0,0 +1,76 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains support packages for oauth2 package. +package internal + +import ( + "bufio" + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "errors" + "fmt" + "io" + "strings" +) + +// ParseKey converts the binary contents of a private key file +// to an *rsa.PrivateKey. It detects whether the private key is in a +// PEM container or not. If so, it extracts the the private key +// from PEM container before conversion. It only supports PEM +// containers with no passphrase. +func ParseKey(key []byte) (*rsa.PrivateKey, error) { + block, _ := pem.Decode(key) + if block != nil { + key = block.Bytes + } + parsedKey, err := x509.ParsePKCS8PrivateKey(key) + if err != nil { + parsedKey, err = x509.ParsePKCS1PrivateKey(key) + if err != nil { + return nil, fmt.Errorf("private key should be a PEM or plain PKSC1 or PKCS8; parse error: %v", err) + } + } + parsed, ok := parsedKey.(*rsa.PrivateKey) + if !ok { + return nil, errors.New("private key is invalid") + } + return parsed, nil +} + +func ParseINI(ini io.Reader) (map[string]map[string]string, error) { + result := map[string]map[string]string{ + "": map[string]string{}, // root section + } + scanner := bufio.NewScanner(ini) + currentSection := "" + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if strings.HasPrefix(line, ";") { + // comment. + continue + } + if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") { + currentSection = strings.TrimSpace(line[1 : len(line)-1]) + result[currentSection] = map[string]string{} + continue + } + parts := strings.SplitN(line, "=", 2) + if len(parts) == 2 && parts[0] != "" { + result[currentSection][strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + } + } + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("error scanning ini: %v", err) + } + return result, nil +} + +func CondVal(v string) []string { + if v == "" { + return nil + } + return []string{v} +} diff --git a/vendor/golang.org/x/oauth2/internal/oauth2_test.go b/vendor/golang.org/x/oauth2/internal/oauth2_test.go new file mode 100644 index 00000000..c6158554 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/oauth2_test.go @@ -0,0 +1,62 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains support packages for oauth2 package. +package internal + +import ( + "reflect" + "strings" + "testing" +) + +func TestParseINI(t *testing.T) { + tests := []struct { + ini string + want map[string]map[string]string + }{ + { + `root = toor +[foo] +bar = hop +ini = nin +`, + map[string]map[string]string{ + "": map[string]string{"root": "toor"}, + "foo": map[string]string{"bar": "hop", "ini": "nin"}, + }, + }, + { + `[empty] +[section] +empty= +`, + map[string]map[string]string{ + "": map[string]string{}, + "empty": map[string]string{}, + "section": map[string]string{"empty": ""}, + }, + }, + { + `ignore +[invalid +=stuff +;comment=true +`, + map[string]map[string]string{ + "": map[string]string{}, + }, + }, + } + for _, tt := range tests { + result, err := ParseINI(strings.NewReader(tt.ini)) + if err != nil { + t.Errorf("ParseINI(%q) error %v, want: no error", tt.ini, err) + continue + } + if !reflect.DeepEqual(result, tt.want) { + t.Errorf("ParseINI(%q) = %#v, want: %#v", tt.ini, result, tt.want) + } + } +} diff --git a/vendor/golang.org/x/oauth2/internal/token.go b/vendor/golang.org/x/oauth2/internal/token.go new file mode 100644 index 00000000..18328a0d --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/token.go @@ -0,0 +1,225 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains support packages for oauth2 package. +package internal + +import ( + "encoding/json" + "fmt" + "io" + "io/ioutil" + "mime" + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "golang.org/x/net/context" +) + +// Token represents the crendentials used to authorize +// the requests to access protected resources on the OAuth 2.0 +// provider's backend. +// +// This type is a mirror of oauth2.Token and exists to break +// an otherwise-circular dependency. Other internal packages +// should convert this Token into an oauth2.Token before use. +type Token struct { + // AccessToken is the token that authorizes and authenticates + // the requests. + AccessToken string + + // TokenType is the type of token. + // The Type method returns either this or "Bearer", the default. + TokenType string + + // RefreshToken is a token that's used by the application + // (as opposed to the user) to refresh the access token + // if it expires. + RefreshToken string + + // Expiry is the optional expiration time of the access token. + // + // If zero, TokenSource implementations will reuse the same + // token forever and RefreshToken or equivalent + // mechanisms for that TokenSource will not be used. + Expiry time.Time + + // Raw optionally contains extra metadata from the server + // when updating a token. + Raw interface{} +} + +// tokenJSON is the struct representing the HTTP response from OAuth2 +// providers returning a token in JSON form. +type tokenJSON struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + RefreshToken string `json:"refresh_token"` + ExpiresIn expirationTime `json:"expires_in"` // at least PayPal returns string, while most return number + Expires expirationTime `json:"expires"` // broken Facebook spelling of expires_in +} + +func (e *tokenJSON) expiry() (t time.Time) { + if v := e.ExpiresIn; v != 0 { + return time.Now().Add(time.Duration(v) * time.Second) + } + if v := e.Expires; v != 0 { + return time.Now().Add(time.Duration(v) * time.Second) + } + return +} + +type expirationTime int32 + +func (e *expirationTime) UnmarshalJSON(b []byte) error { + var n json.Number + err := json.Unmarshal(b, &n) + if err != nil { + return err + } + i, err := n.Int64() + if err != nil { + return err + } + *e = expirationTime(i) + return nil +} + +var brokenAuthHeaderProviders = []string{ + "https://accounts.google.com/", + "https://api.dropbox.com/", + "https://api.dropboxapi.com/", + "https://api.instagram.com/", + "https://api.netatmo.net/", + "https://api.odnoklassniki.ru/", + "https://api.pushbullet.com/", + "https://api.soundcloud.com/", + "https://api.twitch.tv/", + "https://app.box.com/", + "https://connect.stripe.com/", + "https://login.microsoftonline.com/", + "https://login.salesforce.com/", + "https://oauth.sandbox.trainingpeaks.com/", + "https://oauth.trainingpeaks.com/", + "https://oauth.vk.com/", + "https://openapi.baidu.com/", + "https://slack.com/", + "https://test-sandbox.auth.corp.google.com", + "https://test.salesforce.com/", + "https://user.gini.net/", + "https://www.douban.com/", + "https://www.googleapis.com/", + "https://www.linkedin.com/", + "https://www.strava.com/oauth/", + "https://www.wunderlist.com/oauth/", + "https://api.patreon.com/", +} + +func RegisterBrokenAuthHeaderProvider(tokenURL string) { + brokenAuthHeaderProviders = append(brokenAuthHeaderProviders, tokenURL) +} + +// providerAuthHeaderWorks reports whether the OAuth2 server identified by the tokenURL +// implements the OAuth2 spec correctly +// See https://code.google.com/p/goauth2/issues/detail?id=31 for background. +// In summary: +// - Reddit only accepts client secret in the Authorization header +// - Dropbox accepts either it in URL param or Auth header, but not both. +// - Google only accepts URL param (not spec compliant?), not Auth header +// - Stripe only accepts client secret in Auth header with Bearer method, not Basic +func providerAuthHeaderWorks(tokenURL string) bool { + for _, s := range brokenAuthHeaderProviders { + if strings.HasPrefix(tokenURL, s) { + // Some sites fail to implement the OAuth2 spec fully. + return false + } + } + + // Assume the provider implements the spec properly + // otherwise. We can add more exceptions as they're + // discovered. We will _not_ be adding configurable hooks + // to this package to let users select server bugs. + return true +} + +func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values) (*Token, error) { + hc, err := ContextClient(ctx) + if err != nil { + return nil, err + } + v.Set("client_id", clientID) + bustedAuth := !providerAuthHeaderWorks(tokenURL) + if bustedAuth && clientSecret != "" { + v.Set("client_secret", clientSecret) + } + req, err := http.NewRequest("POST", tokenURL, strings.NewReader(v.Encode())) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + if !bustedAuth { + req.SetBasicAuth(clientID, clientSecret) + } + r, err := hc.Do(req) + if err != nil { + return nil, err + } + defer r.Body.Close() + body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1<<20)) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + if code := r.StatusCode; code < 200 || code > 299 { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v\nResponse: %s", r.Status, body) + } + + var token *Token + content, _, _ := mime.ParseMediaType(r.Header.Get("Content-Type")) + switch content { + case "application/x-www-form-urlencoded", "text/plain": + vals, err := url.ParseQuery(string(body)) + if err != nil { + return nil, err + } + token = &Token{ + AccessToken: vals.Get("access_token"), + TokenType: vals.Get("token_type"), + RefreshToken: vals.Get("refresh_token"), + Raw: vals, + } + e := vals.Get("expires_in") + if e == "" { + // TODO(jbd): Facebook's OAuth2 implementation is broken and + // returns expires_in field in expires. Remove the fallback to expires, + // when Facebook fixes their implementation. + e = vals.Get("expires") + } + expires, _ := strconv.Atoi(e) + if expires != 0 { + token.Expiry = time.Now().Add(time.Duration(expires) * time.Second) + } + default: + var tj tokenJSON + if err = json.Unmarshal(body, &tj); err != nil { + return nil, err + } + token = &Token{ + AccessToken: tj.AccessToken, + TokenType: tj.TokenType, + RefreshToken: tj.RefreshToken, + Expiry: tj.expiry(), + Raw: make(map[string]interface{}), + } + json.Unmarshal(body, &token.Raw) // no error checks for optional fields + } + // Don't overwrite `RefreshToken` with an empty value + // if this was a token refreshing request. + if token.RefreshToken == "" { + token.RefreshToken = v.Get("refresh_token") + } + return token, nil +} diff --git a/vendor/golang.org/x/oauth2/internal/token_test.go b/vendor/golang.org/x/oauth2/internal/token_test.go new file mode 100644 index 00000000..5ed0b15d --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/token_test.go @@ -0,0 +1,35 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains support packages for oauth2 package. +package internal + +import ( + "fmt" + "testing" +) + +func TestRegisterBrokenAuthHeaderProvider(t *testing.T) { + RegisterBrokenAuthHeaderProvider("https://aaa.com/") + tokenURL := "https://aaa.com/token" + if providerAuthHeaderWorks(tokenURL) { + t.Errorf("got %q as unbroken; want broken", tokenURL) + } +} + +func Test_providerAuthHeaderWorks(t *testing.T) { + for _, p := range brokenAuthHeaderProviders { + if providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } + p := fmt.Sprintf("%ssomesuffix", p) + if providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } + } + p := "https://api.not-in-the-list-example.com/" + if !providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } +} diff --git a/vendor/golang.org/x/oauth2/internal/transport.go b/vendor/golang.org/x/oauth2/internal/transport.go new file mode 100644 index 00000000..f1f173e3 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/transport.go @@ -0,0 +1,69 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains support packages for oauth2 package. +package internal + +import ( + "net/http" + + "golang.org/x/net/context" +) + +// HTTPClient is the context key to use with golang.org/x/net/context's +// WithValue function to associate an *http.Client value with a context. +var HTTPClient ContextKey + +// ContextKey is just an empty struct. It exists so HTTPClient can be +// an immutable public variable with a unique type. It's immutable +// because nobody else can create a ContextKey, being unexported. +type ContextKey struct{} + +// ContextClientFunc is a func which tries to return an *http.Client +// given a Context value. If it returns an error, the search stops +// with that error. If it returns (nil, nil), the search continues +// down the list of registered funcs. +type ContextClientFunc func(context.Context) (*http.Client, error) + +var contextClientFuncs []ContextClientFunc + +func RegisterContextClientFunc(fn ContextClientFunc) { + contextClientFuncs = append(contextClientFuncs, fn) +} + +func ContextClient(ctx context.Context) (*http.Client, error) { + if ctx != nil { + if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { + return hc, nil + } + } + for _, fn := range contextClientFuncs { + c, err := fn(ctx) + if err != nil { + return nil, err + } + if c != nil { + return c, nil + } + } + return http.DefaultClient, nil +} + +func ContextTransport(ctx context.Context) http.RoundTripper { + hc, err := ContextClient(ctx) + // This is a rare error case (somebody using nil on App Engine). + if err != nil { + return ErrorTransport{err} + } + return hc.Transport +} + +// ErrorTransport returns the specified error on RoundTrip. +// This RoundTripper should be used in rare error cases where +// error handling can be postponed to response handling time. +type ErrorTransport struct{ Err error } + +func (t ErrorTransport) RoundTrip(*http.Request) (*http.Response, error) { + return nil, t.Err +} diff --git a/vendor/golang.org/x/oauth2/internal/transport_test.go b/vendor/golang.org/x/oauth2/internal/transport_test.go new file mode 100644 index 00000000..8772ec5c --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/transport_test.go @@ -0,0 +1,38 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +import ( + "net/http" + "testing" + + "golang.org/x/net/context" +) + +func TestContextClient(t *testing.T) { + rc := &http.Client{} + RegisterContextClientFunc(func(context.Context) (*http.Client, error) { + return rc, nil + }) + + c := &http.Client{} + ctx := context.WithValue(context.Background(), HTTPClient, c) + + hc, err := ContextClient(ctx) + if err != nil { + t.Fatalf("want valid client; got err = %v", err) + } + if hc != c { + t.Fatalf("want context client = %p; got = %p", c, hc) + } + + hc, err = ContextClient(context.TODO()) + if err != nil { + t.Fatalf("want valid client; got err = %v", err) + } + if hc != rc { + t.Fatalf("want registered client = %p; got = %p", c, hc) + } +} diff --git a/vendor/golang.org/x/oauth2/jws/jws.go b/vendor/golang.org/x/oauth2/jws/jws.go new file mode 100644 index 00000000..683d2d27 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jws/jws.go @@ -0,0 +1,182 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package jws provides a partial implementation +// of JSON Web Signature encoding and decoding. +// It exists to support the golang.org/x/oauth2 package. +// +// See RFC 7515. +// +// Deprecated: this package is not intended for public use and might be +// removed in the future. It exists for internal use only. +// Please switch to another JWS package or copy this package into your own +// source tree. +package jws // import "golang.org/x/oauth2/jws" + +import ( + "bytes" + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "strings" + "time" +) + +// ClaimSet contains information about the JWT signature including the +// permissions being requested (scopes), the target of the token, the issuer, +// the time the token was issued, and the lifetime of the token. +type ClaimSet struct { + Iss string `json:"iss"` // email address of the client_id of the application making the access token request + Scope string `json:"scope,omitempty"` // space-delimited list of the permissions the application requests + Aud string `json:"aud"` // descriptor of the intended target of the assertion (Optional). + Exp int64 `json:"exp"` // the expiration time of the assertion (seconds since Unix epoch) + Iat int64 `json:"iat"` // the time the assertion was issued (seconds since Unix epoch) + Typ string `json:"typ,omitempty"` // token type (Optional). + + // Email for which the application is requesting delegated access (Optional). + Sub string `json:"sub,omitempty"` + + // The old name of Sub. Client keeps setting Prn to be + // complaint with legacy OAuth 2.0 providers. (Optional) + Prn string `json:"prn,omitempty"` + + // See http://tools.ietf.org/html/draft-jones-json-web-token-10#section-4.3 + // This array is marshalled using custom code (see (c *ClaimSet) encode()). + PrivateClaims map[string]interface{} `json:"-"` +} + +func (c *ClaimSet) encode() (string, error) { + // Reverting time back for machines whose time is not perfectly in sync. + // If client machine's time is in the future according + // to Google servers, an access token will not be issued. + now := time.Now().Add(-10 * time.Second) + if c.Iat == 0 { + c.Iat = now.Unix() + } + if c.Exp == 0 { + c.Exp = now.Add(time.Hour).Unix() + } + if c.Exp < c.Iat { + return "", fmt.Errorf("jws: invalid Exp = %v; must be later than Iat = %v", c.Exp, c.Iat) + } + + b, err := json.Marshal(c) + if err != nil { + return "", err + } + + if len(c.PrivateClaims) == 0 { + return base64.RawURLEncoding.EncodeToString(b), nil + } + + // Marshal private claim set and then append it to b. + prv, err := json.Marshal(c.PrivateClaims) + if err != nil { + return "", fmt.Errorf("jws: invalid map of private claims %v", c.PrivateClaims) + } + + // Concatenate public and private claim JSON objects. + if !bytes.HasSuffix(b, []byte{'}'}) { + return "", fmt.Errorf("jws: invalid JSON %s", b) + } + if !bytes.HasPrefix(prv, []byte{'{'}) { + return "", fmt.Errorf("jws: invalid JSON %s", prv) + } + b[len(b)-1] = ',' // Replace closing curly brace with a comma. + b = append(b, prv[1:]...) // Append private claims. + return base64.RawURLEncoding.EncodeToString(b), nil +} + +// Header represents the header for the signed JWS payloads. +type Header struct { + // The algorithm used for signature. + Algorithm string `json:"alg"` + + // Represents the token type. + Typ string `json:"typ"` + + // The optional hint of which key is being used. + KeyID string `json:"kid,omitempty"` +} + +func (h *Header) encode() (string, error) { + b, err := json.Marshal(h) + if err != nil { + return "", err + } + return base64.RawURLEncoding.EncodeToString(b), nil +} + +// Decode decodes a claim set from a JWS payload. +func Decode(payload string) (*ClaimSet, error) { + // decode returned id token to get expiry + s := strings.Split(payload, ".") + if len(s) < 2 { + // TODO(jbd): Provide more context about the error. + return nil, errors.New("jws: invalid token received") + } + decoded, err := base64.RawURLEncoding.DecodeString(s[1]) + if err != nil { + return nil, err + } + c := &ClaimSet{} + err = json.NewDecoder(bytes.NewBuffer(decoded)).Decode(c) + return c, err +} + +// Signer returns a signature for the given data. +type Signer func(data []byte) (sig []byte, err error) + +// EncodeWithSigner encodes a header and claim set with the provided signer. +func EncodeWithSigner(header *Header, c *ClaimSet, sg Signer) (string, error) { + head, err := header.encode() + if err != nil { + return "", err + } + cs, err := c.encode() + if err != nil { + return "", err + } + ss := fmt.Sprintf("%s.%s", head, cs) + sig, err := sg([]byte(ss)) + if err != nil { + return "", err + } + return fmt.Sprintf("%s.%s", ss, base64.RawURLEncoding.EncodeToString(sig)), nil +} + +// Encode encodes a signed JWS with provided header and claim set. +// This invokes EncodeWithSigner using crypto/rsa.SignPKCS1v15 with the given RSA private key. +func Encode(header *Header, c *ClaimSet, key *rsa.PrivateKey) (string, error) { + sg := func(data []byte) (sig []byte, err error) { + h := sha256.New() + h.Write(data) + return rsa.SignPKCS1v15(rand.Reader, key, crypto.SHA256, h.Sum(nil)) + } + return EncodeWithSigner(header, c, sg) +} + +// Verify tests whether the provided JWT token's signature was produced by the private key +// associated with the supplied public key. +func Verify(token string, key *rsa.PublicKey) error { + parts := strings.Split(token, ".") + if len(parts) != 3 { + return errors.New("jws: invalid token received, token must have 3 parts") + } + + signedContent := parts[0] + "." + parts[1] + signatureString, err := base64.RawURLEncoding.DecodeString(parts[2]) + if err != nil { + return err + } + + h := sha256.New() + h.Write([]byte(signedContent)) + return rsa.VerifyPKCS1v15(key, crypto.SHA256, h.Sum(nil), []byte(signatureString)) +} diff --git a/vendor/golang.org/x/oauth2/jws/jws_test.go b/vendor/golang.org/x/oauth2/jws/jws_test.go new file mode 100644 index 00000000..39a136a2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jws/jws_test.go @@ -0,0 +1,46 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package jws + +import ( + "crypto/rand" + "crypto/rsa" + "testing" +) + +func TestSignAndVerify(t *testing.T) { + header := &Header{ + Algorithm: "RS256", + Typ: "JWT", + } + payload := &ClaimSet{ + Iss: "http://google.com/", + Aud: "", + Exp: 3610, + Iat: 10, + } + + privateKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + t.Fatal(err) + } + + token, err := Encode(header, payload, privateKey) + if err != nil { + t.Fatal(err) + } + + err = Verify(token, &privateKey.PublicKey) + if err != nil { + t.Fatal(err) + } +} + +func TestVerifyFailsOnMalformedClaim(t *testing.T) { + err := Verify("abc.def", nil) + if err == nil { + t.Error("got no errors; want improperly formed JWT not to be verified") + } +} diff --git a/vendor/golang.org/x/oauth2/jwt/example_test.go b/vendor/golang.org/x/oauth2/jwt/example_test.go new file mode 100644 index 00000000..58503d80 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/example_test.go @@ -0,0 +1,33 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package jwt_test + +import ( + "context" + + "golang.org/x/oauth2/jwt" +) + +func ExampleJWTConfig() { + ctx := context.Background() + conf := &jwt.Config{ + Email: "xxx@developer.com", + // The contents of your RSA private key or your PEM file + // that contains a private key. + // If you have a p12 file instead, you + // can use `openssl` to export the private key into a pem file. + // + // $ openssl pkcs12 -in key.p12 -out key.pem -nodes + // + // It only supports PEM containers with no passphrase. + PrivateKey: []byte("-----BEGIN RSA PRIVATE KEY-----..."), + Subject: "user@example.com", + TokenURL: "https://provider.com/o/oauth2/token", + } + // Initiate an http.Client, the following GET request will be + // authorized and authenticated on the behalf of user@example.com. + client := conf.Client(ctx) + client.Get("...") +} diff --git a/vendor/golang.org/x/oauth2/jwt/jwt.go b/vendor/golang.org/x/oauth2/jwt/jwt.go new file mode 100644 index 00000000..f4b9523e --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/jwt.go @@ -0,0 +1,157 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package jwt implements the OAuth 2.0 JSON Web Token flow, commonly +// known as "two-legged OAuth 2.0". +// +// See: https://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer-12 +package jwt + +import ( + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strings" + "time" + + "golang.org/x/net/context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" + "golang.org/x/oauth2/jws" +) + +var ( + defaultGrantType = "urn:ietf:params:oauth:grant-type:jwt-bearer" + defaultHeader = &jws.Header{Algorithm: "RS256", Typ: "JWT"} +) + +// Config is the configuration for using JWT to fetch tokens, +// commonly known as "two-legged OAuth 2.0". +type Config struct { + // Email is the OAuth client identifier used when communicating with + // the configured OAuth provider. + Email string + + // PrivateKey contains the contents of an RSA private key or the + // contents of a PEM file that contains a private key. The provided + // private key is used to sign JWT payloads. + // PEM containers with a passphrase are not supported. + // Use the following command to convert a PKCS 12 file into a PEM. + // + // $ openssl pkcs12 -in key.p12 -out key.pem -nodes + // + PrivateKey []byte + + // PrivateKeyID contains an optional hint indicating which key is being + // used. + PrivateKeyID string + + // Subject is the optional user to impersonate. + Subject string + + // Scopes optionally specifies a list of requested permission scopes. + Scopes []string + + // TokenURL is the endpoint required to complete the 2-legged JWT flow. + TokenURL string + + // Expires optionally specifies how long the token is valid for. + Expires time.Duration +} + +// TokenSource returns a JWT TokenSource using the configuration +// in c and the HTTP client from the provided context. +func (c *Config) TokenSource(ctx context.Context) oauth2.TokenSource { + return oauth2.ReuseTokenSource(nil, jwtSource{ctx, c}) +} + +// Client returns an HTTP client wrapping the context's +// HTTP transport and adding Authorization headers with tokens +// obtained from c. +// +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context) *http.Client { + return oauth2.NewClient(ctx, c.TokenSource(ctx)) +} + +// jwtSource is a source that always does a signed JWT request for a token. +// It should typically be wrapped with a reuseTokenSource. +type jwtSource struct { + ctx context.Context + conf *Config +} + +func (js jwtSource) Token() (*oauth2.Token, error) { + pk, err := internal.ParseKey(js.conf.PrivateKey) + if err != nil { + return nil, err + } + hc := oauth2.NewClient(js.ctx, nil) + claimSet := &jws.ClaimSet{ + Iss: js.conf.Email, + Scope: strings.Join(js.conf.Scopes, " "), + Aud: js.conf.TokenURL, + } + if subject := js.conf.Subject; subject != "" { + claimSet.Sub = subject + // prn is the old name of sub. Keep setting it + // to be compatible with legacy OAuth 2.0 providers. + claimSet.Prn = subject + } + if t := js.conf.Expires; t > 0 { + claimSet.Exp = time.Now().Add(t).Unix() + } + payload, err := jws.Encode(defaultHeader, claimSet, pk) + if err != nil { + return nil, err + } + v := url.Values{} + v.Set("grant_type", defaultGrantType) + v.Set("assertion", payload) + resp, err := hc.PostForm(js.conf.TokenURL, v) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1<<20)) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + if c := resp.StatusCode; c < 200 || c > 299 { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v\nResponse: %s", resp.Status, body) + } + // tokenRes is the JSON response body. + var tokenRes struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + IDToken string `json:"id_token"` + ExpiresIn int64 `json:"expires_in"` // relative seconds from now + } + if err := json.Unmarshal(body, &tokenRes); err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + token := &oauth2.Token{ + AccessToken: tokenRes.AccessToken, + TokenType: tokenRes.TokenType, + } + raw := make(map[string]interface{}) + json.Unmarshal(body, &raw) // no error checks for optional fields + token = token.WithExtra(raw) + + if secs := tokenRes.ExpiresIn; secs > 0 { + token.Expiry = time.Now().Add(time.Duration(secs) * time.Second) + } + if v := tokenRes.IDToken; v != "" { + // decode returned id token to get expiry + claimSet, err := jws.Decode(v) + if err != nil { + return nil, fmt.Errorf("oauth2: error decoding JWT token: %v", err) + } + token.Expiry = time.Unix(claimSet.Exp, 0) + } + return token, nil +} diff --git a/vendor/golang.org/x/oauth2/jwt/jwt_test.go b/vendor/golang.org/x/oauth2/jwt/jwt_test.go new file mode 100644 index 00000000..a490af5d --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/jwt_test.go @@ -0,0 +1,133 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package jwt + +import ( + "context" + "net/http" + "net/http/httptest" + "testing" +) + +var dummyPrivateKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAx4fm7dngEmOULNmAs1IGZ9Apfzh+BkaQ1dzkmbUgpcoghucE +DZRnAGd2aPyB6skGMXUytWQvNYav0WTR00wFtX1ohWTfv68HGXJ8QXCpyoSKSSFY +fuP9X36wBSkSX9J5DVgiuzD5VBdzUISSmapjKm+DcbRALjz6OUIPEWi1Tjl6p5RK +1w41qdbmt7E5/kGhKLDuT7+M83g4VWhgIvaAXtnhklDAggilPPa8ZJ1IFe31lNlr +k4DRk38nc6sEutdf3RL7QoH7FBusI7uXV03DC6dwN1kP4GE7bjJhcRb/7jYt7CQ9 +/E9Exz3c0yAp0yrTg0Fwh+qxfH9dKwN52S7SBwIDAQABAoIBAQCaCs26K07WY5Jt +3a2Cw3y2gPrIgTCqX6hJs7O5ByEhXZ8nBwsWANBUe4vrGaajQHdLj5OKfsIDrOvn +2NI1MqflqeAbu/kR32q3tq8/Rl+PPiwUsW3E6Pcf1orGMSNCXxeducF2iySySzh3 +nSIhCG5uwJDWI7a4+9KiieFgK1pt/Iv30q1SQS8IEntTfXYwANQrfKUVMmVF9aIK +6/WZE2yd5+q3wVVIJ6jsmTzoDCX6QQkkJICIYwCkglmVy5AeTckOVwcXL0jqw5Kf +5/soZJQwLEyBoQq7Kbpa26QHq+CJONetPP8Ssy8MJJXBT+u/bSseMb3Zsr5cr43e +DJOhwsThAoGBAPY6rPKl2NT/K7XfRCGm1sbWjUQyDShscwuWJ5+kD0yudnT/ZEJ1 +M3+KS/iOOAoHDdEDi9crRvMl0UfNa8MAcDKHflzxg2jg/QI+fTBjPP5GOX0lkZ9g +z6VePoVoQw2gpPFVNPPTxKfk27tEzbaffvOLGBEih0Kb7HTINkW8rIlzAoGBAM9y +1yr+jvfS1cGFtNU+Gotoihw2eMKtIqR03Yn3n0PK1nVCDKqwdUqCypz4+ml6cxRK +J8+Pfdh7D+ZJd4LEG6Y4QRDLuv5OA700tUoSHxMSNn3q9As4+T3MUyYxWKvTeu3U +f2NWP9ePU0lV8ttk7YlpVRaPQmc1qwooBA/z/8AdAoGAW9x0HWqmRICWTBnpjyxx +QGlW9rQ9mHEtUotIaRSJ6K/F3cxSGUEkX1a3FRnp6kPLcckC6NlqdNgNBd6rb2rA +cPl/uSkZP42Als+9YMoFPU/xrrDPbUhu72EDrj3Bllnyb168jKLa4VBOccUvggxr +Dm08I1hgYgdN5huzs7y6GeUCgYEAj+AZJSOJ6o1aXS6rfV3mMRve9bQ9yt8jcKXw +5HhOCEmMtaSKfnOF1Ziih34Sxsb7O2428DiX0mV/YHtBnPsAJidL0SdLWIapBzeg +KHArByIRkwE6IvJvwpGMdaex1PIGhx5i/3VZL9qiq/ElT05PhIb+UXgoWMabCp84 +OgxDK20CgYAeaFo8BdQ7FmVX2+EEejF+8xSge6WVLtkaon8bqcn6P0O8lLypoOhd +mJAYH8WU+UAy9pecUnDZj14LAGNVmYcse8HFX71MoshnvCTFEPVo4rZxIAGwMpeJ +5jgQ3slYLpqrGlcbLgUXBUgzEO684Wk/UV9DFPlHALVqCfXQ9dpJPg== +-----END RSA PRIVATE KEY-----`) + +func TestJWTFetch_JSONResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "access_token": "90d64460d14870c08c81352a05dedd3465940a7c", + "scope": "user", + "token_type": "bearer", + "expires_in": 3600 + }`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if !tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, "90d64460d14870c08c81352a05dedd3465940a7c"; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } + if got := tok.Expiry.IsZero(); got { + t.Errorf("token expiry = %v, want none", got) + } + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("scope = %q; want %q", got, want) + } +} + +func TestJWTFetch_BadResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if tok == nil { + t.Fatalf("got nil token; want token") + } + if tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("token scope = %q; want %q", got, want) + } +} + +func TestJWTFetch_BadResponseType(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":123, "scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err == nil { + t.Error("got a token; expected error") + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + } +} diff --git a/vendor/golang.org/x/oauth2/linkedin/linkedin.go b/vendor/golang.org/x/oauth2/linkedin/linkedin.go new file mode 100644 index 00000000..b619f93d --- /dev/null +++ b/vendor/golang.org/x/oauth2/linkedin/linkedin.go @@ -0,0 +1,16 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package linkedin provides constants for using OAuth2 to access LinkedIn. +package linkedin // import "golang.org/x/oauth2/linkedin" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is LinkedIn's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.linkedin.com/uas/oauth2/authorization", + TokenURL: "https://www.linkedin.com/uas/oauth2/accessToken", +} diff --git a/vendor/golang.org/x/oauth2/mediamath/mediamath.go b/vendor/golang.org/x/oauth2/mediamath/mediamath.go new file mode 100644 index 00000000..3ebce5da --- /dev/null +++ b/vendor/golang.org/x/oauth2/mediamath/mediamath.go @@ -0,0 +1,22 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package mediamath provides constants for using OAuth2 to access MediaMath. +package mediamath // import "golang.org/x/oauth2/mediamath" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is MediaMath's OAuth 2.0 endpoint for production. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://api.mediamath.com/oauth2/v1.0/authorize", + TokenURL: "https://api.mediamath.com/oauth2/v1.0/token", +} + +// SandboxEndpoint is MediaMath's OAuth 2.0 endpoint for sandbox. +var SandboxEndpoint = oauth2.Endpoint{ + AuthURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/authorize", + TokenURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/token", +} diff --git a/vendor/golang.org/x/oauth2/microsoft/microsoft.go b/vendor/golang.org/x/oauth2/microsoft/microsoft.go new file mode 100644 index 00000000..f21b3985 --- /dev/null +++ b/vendor/golang.org/x/oauth2/microsoft/microsoft.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package microsoft provides constants for using OAuth2 to access Windows Live ID. +package microsoft // import "golang.org/x/oauth2/microsoft" + +import ( + "golang.org/x/oauth2" +) + +// LiveConnectEndpoint is Windows's Live ID OAuth 2.0 endpoint. +var LiveConnectEndpoint = oauth2.Endpoint{ + AuthURL: "https://login.live.com/oauth20_authorize.srf", + TokenURL: "https://login.live.com/oauth20_token.srf", +} diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go new file mode 100644 index 00000000..7b06bfe1 --- /dev/null +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -0,0 +1,341 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package oauth2 provides support for making +// OAuth2 authorized and authenticated HTTP requests. +// It can additionally grant authorization with Bearer JWT. +package oauth2 // import "golang.org/x/oauth2" + +import ( + "bytes" + "errors" + "net/http" + "net/url" + "strings" + "sync" + + "golang.org/x/net/context" + "golang.org/x/oauth2/internal" +) + +// NoContext is the default context you should supply if not using +// your own context.Context (see https://golang.org/x/net/context). +// +// Deprecated: Use context.Background() or context.TODO() instead. +var NoContext = context.TODO() + +// RegisterBrokenAuthHeaderProvider registers an OAuth2 server +// identified by the tokenURL prefix as an OAuth2 implementation +// which doesn't support the HTTP Basic authentication +// scheme to authenticate with the authorization server. +// Once a server is registered, credentials (client_id and client_secret) +// will be passed as query parameters rather than being present +// in the Authorization header. +// See https://code.google.com/p/goauth2/issues/detail?id=31 for background. +func RegisterBrokenAuthHeaderProvider(tokenURL string) { + internal.RegisterBrokenAuthHeaderProvider(tokenURL) +} + +// Config describes a typical 3-legged OAuth2 flow, with both the +// client application information and the server's endpoint URLs. +// For the client credentials 2-legged OAuth2 flow, see the clientcredentials +// package (https://golang.org/x/oauth2/clientcredentials). +type Config struct { + // ClientID is the application's ID. + ClientID string + + // ClientSecret is the application's secret. + ClientSecret string + + // Endpoint contains the resource server's token endpoint + // URLs. These are constants specific to each server and are + // often available via site-specific packages, such as + // google.Endpoint or github.Endpoint. + Endpoint Endpoint + + // RedirectURL is the URL to redirect users going through + // the OAuth flow, after the resource owner's URLs. + RedirectURL string + + // Scope specifies optional requested permissions. + Scopes []string +} + +// A TokenSource is anything that can return a token. +type TokenSource interface { + // Token returns a token or an error. + // Token must be safe for concurrent use by multiple goroutines. + // The returned Token must not be modified. + Token() (*Token, error) +} + +// Endpoint contains the OAuth 2.0 provider's authorization and token +// endpoint URLs. +type Endpoint struct { + AuthURL string + TokenURL string +} + +var ( + // AccessTypeOnline and AccessTypeOffline are options passed + // to the Options.AuthCodeURL method. They modify the + // "access_type" field that gets sent in the URL returned by + // AuthCodeURL. + // + // Online is the default if neither is specified. If your + // application needs to refresh access tokens when the user + // is not present at the browser, then use offline. This will + // result in your application obtaining a refresh token the + // first time your application exchanges an authorization + // code for a user. + AccessTypeOnline AuthCodeOption = SetAuthURLParam("access_type", "online") + AccessTypeOffline AuthCodeOption = SetAuthURLParam("access_type", "offline") + + // ApprovalForce forces the users to view the consent dialog + // and confirm the permissions request at the URL returned + // from AuthCodeURL, even if they've already done so. + ApprovalForce AuthCodeOption = SetAuthURLParam("approval_prompt", "force") +) + +// An AuthCodeOption is passed to Config.AuthCodeURL. +type AuthCodeOption interface { + setValue(url.Values) +} + +type setParam struct{ k, v string } + +func (p setParam) setValue(m url.Values) { m.Set(p.k, p.v) } + +// SetAuthURLParam builds an AuthCodeOption which passes key/value parameters +// to a provider's authorization endpoint. +func SetAuthURLParam(key, value string) AuthCodeOption { + return setParam{key, value} +} + +// AuthCodeURL returns a URL to OAuth 2.0 provider's consent page +// that asks for permissions for the required scopes explicitly. +// +// State is a token to protect the user from CSRF attacks. You must +// always provide a non-zero string and validate that it matches the +// the state query parameter on your redirect callback. +// See http://tools.ietf.org/html/rfc6749#section-10.12 for more info. +// +// Opts may include AccessTypeOnline or AccessTypeOffline, as well +// as ApprovalForce. +func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string { + var buf bytes.Buffer + buf.WriteString(c.Endpoint.AuthURL) + v := url.Values{ + "response_type": {"code"}, + "client_id": {c.ClientID}, + "redirect_uri": internal.CondVal(c.RedirectURL), + "scope": internal.CondVal(strings.Join(c.Scopes, " ")), + "state": internal.CondVal(state), + } + for _, opt := range opts { + opt.setValue(v) + } + if strings.Contains(c.Endpoint.AuthURL, "?") { + buf.WriteByte('&') + } else { + buf.WriteByte('?') + } + buf.WriteString(v.Encode()) + return buf.String() +} + +// PasswordCredentialsToken converts a resource owner username and password +// pair into a token. +// +// Per the RFC, this grant type should only be used "when there is a high +// degree of trust between the resource owner and the client (e.g., the client +// is part of the device operating system or a highly privileged application), +// and when other authorization grant types are not available." +// See https://tools.ietf.org/html/rfc6749#section-4.3 for more info. +// +// The HTTP client to use is derived from the context. +// If nil, http.DefaultClient is used. +func (c *Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*Token, error) { + return retrieveToken(ctx, c, url.Values{ + "grant_type": {"password"}, + "username": {username}, + "password": {password}, + "scope": internal.CondVal(strings.Join(c.Scopes, " ")), + }) +} + +// Exchange converts an authorization code into a token. +// +// It is used after a resource provider redirects the user back +// to the Redirect URI (the URL obtained from AuthCodeURL). +// +// The HTTP client to use is derived from the context. +// If a client is not provided via the context, http.DefaultClient is used. +// +// The code will be in the *http.Request.FormValue("code"). Before +// calling Exchange, be sure to validate FormValue("state"). +func (c *Config) Exchange(ctx context.Context, code string) (*Token, error) { + return retrieveToken(ctx, c, url.Values{ + "grant_type": {"authorization_code"}, + "code": {code}, + "redirect_uri": internal.CondVal(c.RedirectURL), + "scope": internal.CondVal(strings.Join(c.Scopes, " ")), + }) +} + +// Client returns an HTTP client using the provided token. +// The token will auto-refresh as necessary. The underlying +// HTTP transport will be obtained using the provided context. +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context, t *Token) *http.Client { + return NewClient(ctx, c.TokenSource(ctx, t)) +} + +// TokenSource returns a TokenSource that returns t until t expires, +// automatically refreshing it as necessary using the provided context. +// +// Most users will use Config.Client instead. +func (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource { + tkr := &tokenRefresher{ + ctx: ctx, + conf: c, + } + if t != nil { + tkr.refreshToken = t.RefreshToken + } + return &reuseTokenSource{ + t: t, + new: tkr, + } +} + +// tokenRefresher is a TokenSource that makes "grant_type"=="refresh_token" +// HTTP requests to renew a token using a RefreshToken. +type tokenRefresher struct { + ctx context.Context // used to get HTTP requests + conf *Config + refreshToken string +} + +// WARNING: Token is not safe for concurrent access, as it +// updates the tokenRefresher's refreshToken field. +// Within this package, it is used by reuseTokenSource which +// synchronizes calls to this method with its own mutex. +func (tf *tokenRefresher) Token() (*Token, error) { + if tf.refreshToken == "" { + return nil, errors.New("oauth2: token expired and refresh token is not set") + } + + tk, err := retrieveToken(tf.ctx, tf.conf, url.Values{ + "grant_type": {"refresh_token"}, + "refresh_token": {tf.refreshToken}, + }) + + if err != nil { + return nil, err + } + if tf.refreshToken != tk.RefreshToken { + tf.refreshToken = tk.RefreshToken + } + return tk, err +} + +// reuseTokenSource is a TokenSource that holds a single token in memory +// and validates its expiry before each call to retrieve it with +// Token. If it's expired, it will be auto-refreshed using the +// new TokenSource. +type reuseTokenSource struct { + new TokenSource // called when t is expired. + + mu sync.Mutex // guards t + t *Token +} + +// Token returns the current token if it's still valid, else will +// refresh the current token (using r.Context for HTTP client +// information) and return the new one. +func (s *reuseTokenSource) Token() (*Token, error) { + s.mu.Lock() + defer s.mu.Unlock() + if s.t.Valid() { + return s.t, nil + } + t, err := s.new.Token() + if err != nil { + return nil, err + } + s.t = t + return t, nil +} + +// StaticTokenSource returns a TokenSource that always returns the same token. +// Because the provided token t is never refreshed, StaticTokenSource is only +// useful for tokens that never expire. +func StaticTokenSource(t *Token) TokenSource { + return staticTokenSource{t} +} + +// staticTokenSource is a TokenSource that always returns the same Token. +type staticTokenSource struct { + t *Token +} + +func (s staticTokenSource) Token() (*Token, error) { + return s.t, nil +} + +// HTTPClient is the context key to use with golang.org/x/net/context's +// WithValue function to associate an *http.Client value with a context. +var HTTPClient internal.ContextKey + +// NewClient creates an *http.Client from a Context and TokenSource. +// The returned client is not valid beyond the lifetime of the context. +// +// As a special case, if src is nil, a non-OAuth2 client is returned +// using the provided context. This exists to support related OAuth2 +// packages. +func NewClient(ctx context.Context, src TokenSource) *http.Client { + if src == nil { + c, err := internal.ContextClient(ctx) + if err != nil { + return &http.Client{Transport: internal.ErrorTransport{Err: err}} + } + return c + } + return &http.Client{ + Transport: &Transport{ + Base: internal.ContextTransport(ctx), + Source: ReuseTokenSource(nil, src), + }, + } +} + +// ReuseTokenSource returns a TokenSource which repeatedly returns the +// same token as long as it's valid, starting with t. +// When its cached token is invalid, a new token is obtained from src. +// +// ReuseTokenSource is typically used to reuse tokens from a cache +// (such as a file on disk) between runs of a program, rather than +// obtaining new tokens unnecessarily. +// +// The initial token t may be nil, in which case the TokenSource is +// wrapped in a caching version if it isn't one already. This also +// means it's always safe to wrap ReuseTokenSource around any other +// TokenSource without adverse effects. +func ReuseTokenSource(t *Token, src TokenSource) TokenSource { + // Don't wrap a reuseTokenSource in itself. That would work, + // but cause an unnecessary number of mutex operations. + // Just build the equivalent one. + if rt, ok := src.(*reuseTokenSource); ok { + if t == nil { + // Just use it directly. + return rt + } + src = rt.new + } + return &reuseTokenSource{ + t: t, + new: src, + } +} diff --git a/vendor/golang.org/x/oauth2/oauth2_test.go b/vendor/golang.org/x/oauth2/oauth2_test.go new file mode 100644 index 00000000..982ea99e --- /dev/null +++ b/vendor/golang.org/x/oauth2/oauth2_test.go @@ -0,0 +1,456 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package oauth2 + +import ( + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "net/url" + "reflect" + "strconv" + "testing" + "time" + + "golang.org/x/net/context" +) + +type mockTransport struct { + rt func(req *http.Request) (resp *http.Response, err error) +} + +func (t *mockTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) { + return t.rt(req) +} + +func newConf(url string) *Config { + return &Config{ + ClientID: "CLIENT_ID", + ClientSecret: "CLIENT_SECRET", + RedirectURL: "REDIRECT_URL", + Scopes: []string{"scope1", "scope2"}, + Endpoint: Endpoint{ + AuthURL: url + "/auth", + TokenURL: url + "/token", + }, + } +} + +func TestAuthCodeURL(t *testing.T) { + conf := newConf("server") + url := conf.AuthCodeURL("foo", AccessTypeOffline, ApprovalForce) + const want = "server/auth?access_type=offline&approval_prompt=force&client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code&scope=scope1+scope2&state=foo" + if got := url; got != want { + t.Errorf("got auth code URL = %q; want %q", got, want) + } +} + +func TestAuthCodeURL_CustomParam(t *testing.T) { + conf := newConf("server") + param := SetAuthURLParam("foo", "bar") + url := conf.AuthCodeURL("baz", param) + const want = "server/auth?client_id=CLIENT_ID&foo=bar&redirect_uri=REDIRECT_URL&response_type=code&scope=scope1+scope2&state=baz" + if got := url; got != want { + t.Errorf("got auth code = %q; want %q", got, want) + } +} + +func TestAuthCodeURL_Optional(t *testing.T) { + conf := &Config{ + ClientID: "CLIENT_ID", + Endpoint: Endpoint{ + AuthURL: "/auth-url", + TokenURL: "/token-url", + }, + } + url := conf.AuthCodeURL("") + const want = "/auth-url?client_id=CLIENT_ID&response_type=code" + if got := url; got != want { + t.Fatalf("got auth code = %q; want %q", got, want) + } +} + +func TestExchangeRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected exchange request URL, %v is found.", r.URL) + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + if string(body) != "client_id=CLIENT_ID&code=exchange-code&grant_type=authorization_code&redirect_uri=REDIRECT_URL&scope=scope1+scope2" { + t.Errorf("Unexpected exchange payload, %v is found.", string(body)) + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Exchange(context.Background(), "exchange-code") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } + if tok.TokenType != "bearer" { + t.Errorf("Unexpected token type, %#v.", tok.TokenType) + } + scope := tok.Extra("scope") + if scope != "user" { + t.Errorf("Unexpected value for scope: %v", scope) + } +} + +func TestExchangeRequest_JSONResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected exchange request URL, %v is found.", r.URL) + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + if string(body) != "client_id=CLIENT_ID&code=exchange-code&grant_type=authorization_code&redirect_uri=REDIRECT_URL&scope=scope1+scope2" { + t.Errorf("Unexpected exchange payload, %v is found.", string(body)) + } + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token": "90d64460d14870c08c81352a05dedd3465940a7c", "scope": "user", "token_type": "bearer", "expires_in": 86400}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Exchange(context.Background(), "exchange-code") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } + if tok.TokenType != "bearer" { + t.Errorf("Unexpected token type, %#v.", tok.TokenType) + } + scope := tok.Extra("scope") + if scope != "user" { + t.Errorf("Unexpected value for scope: %v", scope) + } + expiresIn := tok.Extra("expires_in") + if expiresIn != float64(86400) { + t.Errorf("Unexpected non-numeric value for expires_in: %v", expiresIn) + } +} + +func TestExtraValueRetrieval(t *testing.T) { + values := url.Values{} + kvmap := map[string]string{ + "scope": "user", "token_type": "bearer", "expires_in": "86400.92", + "server_time": "1443571905.5606415", "referer_ip": "10.0.0.1", + "etag": "\"afZYj912P4alikMz_P11982\"", "request_id": "86400", + "untrimmed": " untrimmed ", + } + for key, value := range kvmap { + values.Set(key, value) + } + + tok := Token{raw: values} + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("got scope = %q; want %q", got, want) + } + serverTime := tok.Extra("server_time") + if got, want := serverTime, 1443571905.5606415; got != want { + t.Errorf("got server_time value = %v; want %v", got, want) + } + refererIP := tok.Extra("referer_ip") + if got, want := refererIP, "10.0.0.1"; got != want { + t.Errorf("got referer_ip value = %v, want %v", got, want) + } + expiresIn := tok.Extra("expires_in") + if got, want := expiresIn, 86400.92; got != want { + t.Errorf("got expires_in value = %v, want %v", got, want) + } + requestID := tok.Extra("request_id") + if got, want := requestID, int64(86400); got != want { + t.Errorf("got request_id value = %v, want %v", got, want) + } + untrimmed := tok.Extra("untrimmed") + if got, want := untrimmed, " untrimmed "; got != want { + t.Errorf("got untrimmed = %q; want %q", got, want) + } +} + +const day = 24 * time.Hour + +func TestExchangeRequest_JSONResponse_Expiry(t *testing.T) { + seconds := int32(day.Seconds()) + jsonNumberType := reflect.TypeOf(json.Number("0")) + for _, c := range []struct { + expires string + expect error + }{ + {fmt.Sprintf(`"expires_in": %d`, seconds), nil}, + {fmt.Sprintf(`"expires_in": "%d"`, seconds), nil}, // PayPal case + {fmt.Sprintf(`"expires": %d`, seconds), nil}, // Facebook case + {`"expires": false`, &json.UnmarshalTypeError{Value: "bool", Type: jsonNumberType}}, // wrong type + {`"expires": {}`, &json.UnmarshalTypeError{Value: "object", Type: jsonNumberType}}, // wrong type + {`"expires": "zzz"`, &strconv.NumError{Func: "ParseInt", Num: "zzz", Err: strconv.ErrSyntax}}, // wrong value + } { + testExchangeRequest_JSONResponse_expiry(t, c.expires, c.expect) + } +} + +func testExchangeRequest_JSONResponse_expiry(t *testing.T, exp string, expect error) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(fmt.Sprintf(`{"access_token": "90d", "scope": "user", "token_type": "bearer", %s}`, exp))) + })) + defer ts.Close() + conf := newConf(ts.URL) + t1 := time.Now().Add(day) + tok, err := conf.Exchange(context.Background(), "exchange-code") + t2 := time.Now().Add(day) + // Do a fmt.Sprint comparison so either side can be + // nil. fmt.Sprint just stringifies them to "", and no + // non-nil expected error ever stringifies as "", so this + // isn't terribly disgusting. We do this because Go 1.4 and + // Go 1.5 return a different deep value for + // json.UnmarshalTypeError. In Go 1.5, the + // json.UnmarshalTypeError contains a new field with a new + // non-zero value. Rather than ignore it here with reflect or + // add new files and +build tags, just look at the strings. + if fmt.Sprint(err) != fmt.Sprint(expect) { + t.Errorf("Error = %v; want %v", err, expect) + } + if err != nil { + return + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + expiry := tok.Expiry + if expiry.Before(t1) || expiry.After(t2) { + t.Errorf("Unexpected value for Expiry: %v (shold be between %v and %v)", expiry, t1, t2) + } +} + +func TestExchangeRequest_BadResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Exchange(context.Background(), "code") + if err != nil { + t.Fatal(err) + } + if tok.AccessToken != "" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } +} + +func TestExchangeRequest_BadResponseType(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":123, "scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + _, err := conf.Exchange(context.Background(), "exchange-code") + if err == nil { + t.Error("expected error from invalid access_token type") + } +} + +func TestExchangeRequest_NonBasicAuth(t *testing.T) { + tr := &mockTransport{ + rt: func(r *http.Request) (w *http.Response, err error) { + headerAuth := r.Header.Get("Authorization") + if headerAuth != "" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + return nil, errors.New("no response") + }, + } + c := &http.Client{Transport: tr} + conf := &Config{ + ClientID: "CLIENT_ID", + Endpoint: Endpoint{ + AuthURL: "https://accounts.google.com/auth", + TokenURL: "https://accounts.google.com/token", + }, + } + + ctx := context.WithValue(context.Background(), HTTPClient, c) + conf.Exchange(ctx, "code") +} + +func TestPasswordCredentialsTokenRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() + expected := "/token" + if r.URL.String() != expected { + t.Errorf("URL = %q; want %q", r.URL, expected) + } + headerAuth := r.Header.Get("Authorization") + expected = "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" + if headerAuth != expected { + t.Errorf("Authorization header = %q; want %q", headerAuth, expected) + } + headerContentType := r.Header.Get("Content-Type") + expected = "application/x-www-form-urlencoded" + if headerContentType != expected { + t.Errorf("Content-Type header = %q; want %q", headerContentType, expected) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + expected = "client_id=CLIENT_ID&grant_type=password&password=password1&scope=scope1+scope2&username=user1" + if string(body) != expected { + t.Errorf("res.Body = %q; want %q", string(body), expected) + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.PasswordCredentialsToken(context.Background(), "user1", "password1") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + expected := "90d64460d14870c08c81352a05dedd3465940a7c" + if tok.AccessToken != expected { + t.Errorf("AccessToken = %q; want %q", tok.AccessToken, expected) + } + expected = "bearer" + if tok.TokenType != expected { + t.Errorf("TokenType = %q; want %q", tok.TokenType, expected) + } +} + +func TestTokenRefreshRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "client_id=CLIENT_ID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background(), &Token{RefreshToken: "REFRESH_TOKEN"}) + c.Get(ts.URL + "/somethingelse") +} + +func TestFetchWithNoRefreshToken(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "client_id=CLIENT_ID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background(), nil) + _, err := c.Get(ts.URL + "/somethingelse") + if err == nil { + t.Errorf("Fetch should return an error if no refresh token is set") + } +} + +func TestRefreshToken_RefreshTokenReplacement(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":"ACCESS TOKEN", "scope": "user", "token_type": "bearer", "refresh_token": "NEW REFRESH TOKEN"}`)) + return + })) + defer ts.Close() + conf := newConf(ts.URL) + tkr := tokenRefresher{ + conf: conf, + ctx: context.Background(), + refreshToken: "OLD REFRESH TOKEN", + } + tk, err := tkr.Token() + if err != nil { + t.Errorf("got err = %v; want none", err) + return + } + if tk.RefreshToken != tkr.refreshToken { + t.Errorf("tokenRefresher.refresh_token = %q; want %q", tkr.refreshToken, tk.RefreshToken) + } +} + +func TestConfigClientWithToken(t *testing.T) { + tok := &Token{ + AccessToken: "abc123", + } + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), fmt.Sprintf("Bearer %s", tok.AccessToken); got != want { + t.Errorf("Authorization header = %q; want %q", got, want) + } + return + })) + defer ts.Close() + conf := newConf(ts.URL) + + c := conf.Client(context.Background(), tok) + req, err := http.NewRequest("GET", ts.URL, nil) + if err != nil { + t.Error(err) + } + _, err = c.Do(req) + if err != nil { + t.Error(err) + } +} diff --git a/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go b/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go new file mode 100644 index 00000000..c0d093cc --- /dev/null +++ b/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go @@ -0,0 +1,16 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package odnoklassniki provides constants for using OAuth2 to access Odnoklassniki. +package odnoklassniki // import "golang.org/x/oauth2/odnoklassniki" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Odnoklassniki's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.odnoklassniki.ru/oauth/authorize", + TokenURL: "https://api.odnoklassniki.ru/oauth/token.do", +} diff --git a/vendor/golang.org/x/oauth2/paypal/paypal.go b/vendor/golang.org/x/oauth2/paypal/paypal.go new file mode 100644 index 00000000..2e713c53 --- /dev/null +++ b/vendor/golang.org/x/oauth2/paypal/paypal.go @@ -0,0 +1,22 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package paypal provides constants for using OAuth2 to access PayPal. +package paypal // import "golang.org/x/oauth2/paypal" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is PayPal's OAuth 2.0 endpoint in live (production) environment. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize", + TokenURL: "https://api.paypal.com/v1/identity/openidconnect/tokenservice", +} + +// SandboxEndpoint is PayPal's OAuth 2.0 endpoint in sandbox (testing) environment. +var SandboxEndpoint = oauth2.Endpoint{ + AuthURL: "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize", + TokenURL: "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice", +} diff --git a/vendor/golang.org/x/oauth2/slack/slack.go b/vendor/golang.org/x/oauth2/slack/slack.go new file mode 100644 index 00000000..593d2f60 --- /dev/null +++ b/vendor/golang.org/x/oauth2/slack/slack.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package slack provides constants for using OAuth2 to access Slack. +package slack // import "golang.org/x/oauth2/slack" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Slack's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://slack.com/oauth/authorize", + TokenURL: "https://slack.com/api/oauth.access", +} diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go new file mode 100644 index 00000000..7a3167f1 --- /dev/null +++ b/vendor/golang.org/x/oauth2/token.go @@ -0,0 +1,158 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package oauth2 + +import ( + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "golang.org/x/net/context" + "golang.org/x/oauth2/internal" +) + +// expiryDelta determines how earlier a token should be considered +// expired than its actual expiration time. It is used to avoid late +// expirations due to client-server time mismatches. +const expiryDelta = 10 * time.Second + +// Token represents the crendentials used to authorize +// the requests to access protected resources on the OAuth 2.0 +// provider's backend. +// +// Most users of this package should not access fields of Token +// directly. They're exported mostly for use by related packages +// implementing derivative OAuth2 flows. +type Token struct { + // AccessToken is the token that authorizes and authenticates + // the requests. + AccessToken string `json:"access_token"` + + // TokenType is the type of token. + // The Type method returns either this or "Bearer", the default. + TokenType string `json:"token_type,omitempty"` + + // RefreshToken is a token that's used by the application + // (as opposed to the user) to refresh the access token + // if it expires. + RefreshToken string `json:"refresh_token,omitempty"` + + // Expiry is the optional expiration time of the access token. + // + // If zero, TokenSource implementations will reuse the same + // token forever and RefreshToken or equivalent + // mechanisms for that TokenSource will not be used. + Expiry time.Time `json:"expiry,omitempty"` + + // raw optionally contains extra metadata from the server + // when updating a token. + raw interface{} +} + +// Type returns t.TokenType if non-empty, else "Bearer". +func (t *Token) Type() string { + if strings.EqualFold(t.TokenType, "bearer") { + return "Bearer" + } + if strings.EqualFold(t.TokenType, "mac") { + return "MAC" + } + if strings.EqualFold(t.TokenType, "basic") { + return "Basic" + } + if t.TokenType != "" { + return t.TokenType + } + return "Bearer" +} + +// SetAuthHeader sets the Authorization header to r using the access +// token in t. +// +// This method is unnecessary when using Transport or an HTTP Client +// returned by this package. +func (t *Token) SetAuthHeader(r *http.Request) { + r.Header.Set("Authorization", t.Type()+" "+t.AccessToken) +} + +// WithExtra returns a new Token that's a clone of t, but using the +// provided raw extra map. This is only intended for use by packages +// implementing derivative OAuth2 flows. +func (t *Token) WithExtra(extra interface{}) *Token { + t2 := new(Token) + *t2 = *t + t2.raw = extra + return t2 +} + +// Extra returns an extra field. +// Extra fields are key-value pairs returned by the server as a +// part of the token retrieval response. +func (t *Token) Extra(key string) interface{} { + if raw, ok := t.raw.(map[string]interface{}); ok { + return raw[key] + } + + vals, ok := t.raw.(url.Values) + if !ok { + return nil + } + + v := vals.Get(key) + switch s := strings.TrimSpace(v); strings.Count(s, ".") { + case 0: // Contains no "."; try to parse as int + if i, err := strconv.ParseInt(s, 10, 64); err == nil { + return i + } + case 1: // Contains a single "."; try to parse as float + if f, err := strconv.ParseFloat(s, 64); err == nil { + return f + } + } + + return v +} + +// expired reports whether the token is expired. +// t must be non-nil. +func (t *Token) expired() bool { + if t.Expiry.IsZero() { + return false + } + return t.Expiry.Add(-expiryDelta).Before(time.Now()) +} + +// Valid reports whether t is non-nil, has an AccessToken, and is not expired. +func (t *Token) Valid() bool { + return t != nil && t.AccessToken != "" && !t.expired() +} + +// tokenFromInternal maps an *internal.Token struct into +// a *Token struct. +func tokenFromInternal(t *internal.Token) *Token { + if t == nil { + return nil + } + return &Token{ + AccessToken: t.AccessToken, + TokenType: t.TokenType, + RefreshToken: t.RefreshToken, + Expiry: t.Expiry, + raw: t.Raw, + } +} + +// retrieveToken takes a *Config and uses that to retrieve an *internal.Token. +// This token is then mapped from *internal.Token into an *oauth2.Token which is returned along +// with an error.. +func retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) { + tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v) + if err != nil { + return nil, err + } + return tokenFromInternal(tk), nil +} diff --git a/vendor/golang.org/x/oauth2/token_test.go b/vendor/golang.org/x/oauth2/token_test.go new file mode 100644 index 00000000..80db83c2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/token_test.go @@ -0,0 +1,72 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package oauth2 + +import ( + "testing" + "time" +) + +func TestTokenExtra(t *testing.T) { + type testCase struct { + key string + val interface{} + want interface{} + } + const key = "extra-key" + cases := []testCase{ + {key: key, val: "abc", want: "abc"}, + {key: key, val: 123, want: 123}, + {key: key, val: "", want: ""}, + {key: "other-key", val: "def", want: nil}, + } + for _, tc := range cases { + extra := make(map[string]interface{}) + extra[tc.key] = tc.val + tok := &Token{raw: extra} + if got, want := tok.Extra(key), tc.want; got != want { + t.Errorf("Extra(%q) = %q; want %q", key, got, want) + } + } +} + +func TestTokenExpiry(t *testing.T) { + now := time.Now() + cases := []struct { + name string + tok *Token + want bool + }{ + {name: "12 seconds", tok: &Token{Expiry: now.Add(12 * time.Second)}, want: false}, + {name: "10 seconds", tok: &Token{Expiry: now.Add(expiryDelta)}, want: true}, + {name: "-1 hour", tok: &Token{Expiry: now.Add(-1 * time.Hour)}, want: true}, + } + for _, tc := range cases { + if got, want := tc.tok.expired(), tc.want; got != want { + t.Errorf("expired (%q) = %v; want %v", tc.name, got, want) + } + } +} + +func TestTokenTypeMethod(t *testing.T) { + cases := []struct { + name string + tok *Token + want string + }{ + {name: "bearer-mixed_case", tok: &Token{TokenType: "beAREr"}, want: "Bearer"}, + {name: "default-bearer", tok: &Token{}, want: "Bearer"}, + {name: "basic", tok: &Token{TokenType: "basic"}, want: "Basic"}, + {name: "basic-capitalized", tok: &Token{TokenType: "Basic"}, want: "Basic"}, + {name: "mac", tok: &Token{TokenType: "mac"}, want: "MAC"}, + {name: "mac-caps", tok: &Token{TokenType: "MAC"}, want: "MAC"}, + {name: "mac-mixed_case", tok: &Token{TokenType: "mAc"}, want: "MAC"}, + } + for _, tc := range cases { + if got, want := tc.tok.Type(), tc.want; got != want { + t.Errorf("TokenType(%q) = %v; want %v", tc.name, got, want) + } + } +} diff --git a/vendor/golang.org/x/oauth2/transport.go b/vendor/golang.org/x/oauth2/transport.go new file mode 100644 index 00000000..92ac7e25 --- /dev/null +++ b/vendor/golang.org/x/oauth2/transport.go @@ -0,0 +1,132 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package oauth2 + +import ( + "errors" + "io" + "net/http" + "sync" +) + +// Transport is an http.RoundTripper that makes OAuth 2.0 HTTP requests, +// wrapping a base RoundTripper and adding an Authorization header +// with a token from the supplied Sources. +// +// Transport is a low-level mechanism. Most code will use the +// higher-level Config.Client method instead. +type Transport struct { + // Source supplies the token to add to outgoing requests' + // Authorization headers. + Source TokenSource + + // Base is the base RoundTripper used to make HTTP requests. + // If nil, http.DefaultTransport is used. + Base http.RoundTripper + + mu sync.Mutex // guards modReq + modReq map[*http.Request]*http.Request // original -> modified +} + +// RoundTrip authorizes and authenticates the request with an +// access token. If no token exists or token is expired, +// tries to refresh/fetch a new token. +func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { + if t.Source == nil { + return nil, errors.New("oauth2: Transport's Source is nil") + } + token, err := t.Source.Token() + if err != nil { + return nil, err + } + + req2 := cloneRequest(req) // per RoundTripper contract + token.SetAuthHeader(req2) + t.setModReq(req, req2) + res, err := t.base().RoundTrip(req2) + if err != nil { + t.setModReq(req, nil) + return nil, err + } + res.Body = &onEOFReader{ + rc: res.Body, + fn: func() { t.setModReq(req, nil) }, + } + return res, nil +} + +// CancelRequest cancels an in-flight request by closing its connection. +func (t *Transport) CancelRequest(req *http.Request) { + type canceler interface { + CancelRequest(*http.Request) + } + if cr, ok := t.base().(canceler); ok { + t.mu.Lock() + modReq := t.modReq[req] + delete(t.modReq, req) + t.mu.Unlock() + cr.CancelRequest(modReq) + } +} + +func (t *Transport) base() http.RoundTripper { + if t.Base != nil { + return t.Base + } + return http.DefaultTransport +} + +func (t *Transport) setModReq(orig, mod *http.Request) { + t.mu.Lock() + defer t.mu.Unlock() + if t.modReq == nil { + t.modReq = make(map[*http.Request]*http.Request) + } + if mod == nil { + delete(t.modReq, orig) + } else { + t.modReq[orig] = mod + } +} + +// cloneRequest returns a clone of the provided *http.Request. +// The clone is a shallow copy of the struct and its Header map. +func cloneRequest(r *http.Request) *http.Request { + // shallow copy of the struct + r2 := new(http.Request) + *r2 = *r + // deep copy of the Header + r2.Header = make(http.Header, len(r.Header)) + for k, s := range r.Header { + r2.Header[k] = append([]string(nil), s...) + } + return r2 +} + +type onEOFReader struct { + rc io.ReadCloser + fn func() +} + +func (r *onEOFReader) Read(p []byte) (n int, err error) { + n, err = r.rc.Read(p) + if err == io.EOF { + r.runFunc() + } + return +} + +func (r *onEOFReader) Close() error { + err := r.rc.Close() + r.runFunc() + return err +} + +func (r *onEOFReader) runFunc() { + if fn := r.fn; fn != nil { + fn() + r.fn = nil + } +} diff --git a/vendor/golang.org/x/oauth2/transport_test.go b/vendor/golang.org/x/oauth2/transport_test.go new file mode 100644 index 00000000..d6e8087d --- /dev/null +++ b/vendor/golang.org/x/oauth2/transport_test.go @@ -0,0 +1,108 @@ +package oauth2 + +import ( + "net/http" + "net/http/httptest" + "testing" + "time" +) + +type tokenSource struct{ token *Token } + +func (t *tokenSource) Token() (*Token, error) { + return t.token, nil +} + +func TestTransportNilTokenSource(t *testing.T) { + tr := &Transport{} + server := newMockServer(func(w http.ResponseWriter, r *http.Request) {}) + defer server.Close() + client := &http.Client{Transport: tr} + resp, err := client.Get(server.URL) + if err == nil { + t.Errorf("got no errors, want an error with nil token source") + } + if resp != nil { + t.Errorf("Response = %v; want nil", resp) + } +} + +func TestTransportTokenSource(t *testing.T) { + ts := &tokenSource{ + token: &Token{ + AccessToken: "abc", + }, + } + tr := &Transport{ + Source: ts, + } + server := newMockServer(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), "Bearer abc"; got != want { + t.Errorf("Authorization header = %q; want %q", got, want) + } + }) + defer server.Close() + client := &http.Client{Transport: tr} + res, err := client.Get(server.URL) + if err != nil { + t.Fatal(err) + } + res.Body.Close() +} + +// Test for case-sensitive token types, per https://github.com/golang/oauth2/issues/113 +func TestTransportTokenSourceTypes(t *testing.T) { + const val = "abc" + tests := []struct { + key string + val string + want string + }{ + {key: "bearer", val: val, want: "Bearer abc"}, + {key: "mac", val: val, want: "MAC abc"}, + {key: "basic", val: val, want: "Basic abc"}, + } + for _, tc := range tests { + ts := &tokenSource{ + token: &Token{ + AccessToken: tc.val, + TokenType: tc.key, + }, + } + tr := &Transport{ + Source: ts, + } + server := newMockServer(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), tc.want; got != want { + t.Errorf("Authorization header (%q) = %q; want %q", val, got, want) + } + }) + defer server.Close() + client := &http.Client{Transport: tr} + res, err := client.Get(server.URL) + if err != nil { + t.Fatal(err) + } + res.Body.Close() + } +} + +func TestTokenValidNoAccessToken(t *testing.T) { + token := &Token{} + if token.Valid() { + t.Errorf("got valid with no access token; want invalid") + } +} + +func TestExpiredWithExpiry(t *testing.T) { + token := &Token{ + Expiry: time.Now().Add(-5 * time.Hour), + } + if token.Valid() { + t.Errorf("got valid with expired token; want invalid") + } +} + +func newMockServer(handler func(w http.ResponseWriter, r *http.Request)) *httptest.Server { + return httptest.NewServer(http.HandlerFunc(handler)) +} diff --git a/vendor/golang.org/x/oauth2/uber/uber.go b/vendor/golang.org/x/oauth2/uber/uber.go new file mode 100644 index 00000000..5520a645 --- /dev/null +++ b/vendor/golang.org/x/oauth2/uber/uber.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package uber provides constants for using OAuth2 to access Uber. +package uber // import "golang.org/x/oauth2/uber" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Uber's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://login.uber.com/oauth/v2/authorize", + TokenURL: "https://login.uber.com/oauth/v2/token", +} diff --git a/vendor/golang.org/x/oauth2/vk/vk.go b/vendor/golang.org/x/oauth2/vk/vk.go new file mode 100644 index 00000000..bd8e1594 --- /dev/null +++ b/vendor/golang.org/x/oauth2/vk/vk.go @@ -0,0 +1,16 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package vk provides constants for using OAuth2 to access VK.com. +package vk // import "golang.org/x/oauth2/vk" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is VK's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://oauth.vk.com/authorize", + TokenURL: "https://oauth.vk.com/access_token", +} diff --git a/vendor/golang.org/x/sync/AUTHORS b/vendor/golang.org/x/sync/AUTHORS new file mode 100644 index 00000000..15167cd7 --- /dev/null +++ b/vendor/golang.org/x/sync/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/sync/CONTRIBUTING.md b/vendor/golang.org/x/sync/CONTRIBUTING.md new file mode 100644 index 00000000..88dff59b --- /dev/null +++ b/vendor/golang.org/x/sync/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing to Go + +Go is an open source project. + +It is the work of hundreds of contributors. We appreciate your help! + + +## Filing issues + +When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: + +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? + +General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. +The gophers there will answer or ask you to file an issue if you've tripped over a bug. + +## Contributing code + +Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) +before sending patches. + +**We do not accept GitHub pull requests** +(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). + +Unless otherwise noted, the Go source files are distributed under +the BSD-style license found in the LICENSE file. + diff --git a/vendor/golang.org/x/sync/CONTRIBUTORS b/vendor/golang.org/x/sync/CONTRIBUTORS new file mode 100644 index 00000000..1c4577e9 --- /dev/null +++ b/vendor/golang.org/x/sync/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE new file mode 100644 index 00000000..6a66aea5 --- /dev/null +++ b/vendor/golang.org/x/sync/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS new file mode 100644 index 00000000..73309904 --- /dev/null +++ b/vendor/golang.org/x/sync/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/sync/README b/vendor/golang.org/x/sync/README new file mode 100644 index 00000000..59c9dcb4 --- /dev/null +++ b/vendor/golang.org/x/sync/README @@ -0,0 +1,2 @@ +This repository provides Go concurrency primitives in addition to the +ones provided by the language and "sync" and "sync/atomic" packages. diff --git a/vendor/golang.org/x/sync/codereview.cfg b/vendor/golang.org/x/sync/codereview.cfg new file mode 100644 index 00000000..3f8b14b6 --- /dev/null +++ b/vendor/golang.org/x/sync/codereview.cfg @@ -0,0 +1 @@ +issuerepo: golang/go diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go new file mode 100644 index 00000000..533438d9 --- /dev/null +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -0,0 +1,67 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package errgroup provides synchronization, error propagation, and Context +// cancelation for groups of goroutines working on subtasks of a common task. +package errgroup + +import ( + "sync" + + "golang.org/x/net/context" +) + +// A Group is a collection of goroutines working on subtasks that are part of +// the same overall task. +// +// A zero Group is valid and does not cancel on error. +type Group struct { + cancel func() + + wg sync.WaitGroup + + errOnce sync.Once + err error +} + +// WithContext returns a new Group and an associated Context derived from ctx. +// +// The derived Context is canceled the first time a function passed to Go +// returns a non-nil error or the first time Wait returns, whichever occurs +// first. +func WithContext(ctx context.Context) (*Group, context.Context) { + ctx, cancel := context.WithCancel(ctx) + return &Group{cancel: cancel}, ctx +} + +// Wait blocks until all function calls from the Go method have returned, then +// returns the first non-nil error (if any) from them. +func (g *Group) Wait() error { + g.wg.Wait() + if g.cancel != nil { + g.cancel() + } + return g.err +} + +// Go calls the given function in a new goroutine. +// +// The first call to return a non-nil error cancels the group; its error will be +// returned by Wait. +func (g *Group) Go(f func() error) { + g.wg.Add(1) + + go func() { + defer g.wg.Done() + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel() + } + }) + } + }() +} diff --git a/vendor/golang.org/x/sync/errgroup/errgroup_example_md5all_test.go b/vendor/golang.org/x/sync/errgroup/errgroup_example_md5all_test.go new file mode 100644 index 00000000..714b5aea --- /dev/null +++ b/vendor/golang.org/x/sync/errgroup/errgroup_example_md5all_test.go @@ -0,0 +1,101 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package errgroup_test + +import ( + "crypto/md5" + "fmt" + "io/ioutil" + "log" + "os" + "path/filepath" + + "golang.org/x/net/context" + "golang.org/x/sync/errgroup" +) + +// Pipeline demonstrates the use of a Group to implement a multi-stage +// pipeline: a version of the MD5All function with bounded parallelism from +// https://blog.golang.org/pipelines. +func ExampleGroup_pipeline() { + m, err := MD5All(context.Background(), ".") + if err != nil { + log.Fatal(err) + } + + for k, sum := range m { + fmt.Printf("%s:\t%x\n", k, sum) + } +} + +type result struct { + path string + sum [md5.Size]byte +} + +// MD5All reads all the files in the file tree rooted at root and returns a map +// from file path to the MD5 sum of the file's contents. If the directory walk +// fails or any read operation fails, MD5All returns an error. +func MD5All(ctx context.Context, root string) (map[string][md5.Size]byte, error) { + // ctx is canceled when g.Wait() returns. When this version of MD5All returns + // - even in case of error! - we know that all of the goroutines have finished + // and the memory they were using can be garbage-collected. + g, ctx := errgroup.WithContext(ctx) + paths := make(chan string) + + g.Go(func() error { + defer close(paths) + return filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if !info.Mode().IsRegular() { + return nil + } + select { + case paths <- path: + case <-ctx.Done(): + return ctx.Err() + } + return nil + }) + }) + + // Start a fixed number of goroutines to read and digest files. + c := make(chan result) + const numDigesters = 20 + for i := 0; i < numDigesters; i++ { + g.Go(func() error { + for path := range paths { + data, err := ioutil.ReadFile(path) + if err != nil { + return err + } + select { + case c <- result{path, md5.Sum(data)}: + case <-ctx.Done(): + return ctx.Err() + } + } + return nil + }) + } + go func() { + g.Wait() + close(c) + }() + + m := make(map[string][md5.Size]byte) + for r := range c { + m[r.path] = r.sum + } + // Check whether any of the goroutines failed. Since g is accumulating the + // errors, we don't need to send them (or check for them) in the individual + // results sent on the channel. + if err := g.Wait(); err != nil { + return nil, err + } + return m, nil +} diff --git a/vendor/golang.org/x/sync/errgroup/errgroup_test.go b/vendor/golang.org/x/sync/errgroup/errgroup_test.go new file mode 100644 index 00000000..6a9696ef --- /dev/null +++ b/vendor/golang.org/x/sync/errgroup/errgroup_test.go @@ -0,0 +1,176 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package errgroup_test + +import ( + "errors" + "fmt" + "net/http" + "os" + "testing" + + "golang.org/x/net/context" + "golang.org/x/sync/errgroup" +) + +var ( + Web = fakeSearch("web") + Image = fakeSearch("image") + Video = fakeSearch("video") +) + +type Result string +type Search func(ctx context.Context, query string) (Result, error) + +func fakeSearch(kind string) Search { + return func(_ context.Context, query string) (Result, error) { + return Result(fmt.Sprintf("%s result for %q", kind, query)), nil + } +} + +// JustErrors illustrates the use of a Group in place of a sync.WaitGroup to +// simplify goroutine counting and error handling. This example is derived from +// the sync.WaitGroup example at https://golang.org/pkg/sync/#example_WaitGroup. +func ExampleGroup_justErrors() { + var g errgroup.Group + var urls = []string{ + "http://www.golang.org/", + "http://www.google.com/", + "http://www.somestupidname.com/", + } + for _, url := range urls { + // Launch a goroutine to fetch the URL. + url := url // https://golang.org/doc/faq#closures_and_goroutines + g.Go(func() error { + // Fetch the URL. + resp, err := http.Get(url) + if err == nil { + resp.Body.Close() + } + return err + }) + } + // Wait for all HTTP fetches to complete. + if err := g.Wait(); err == nil { + fmt.Println("Successfully fetched all URLs.") + } +} + +// Parallel illustrates the use of a Group for synchronizing a simple parallel +// task: the "Google Search 2.0" function from +// https://talks.golang.org/2012/concurrency.slide#46, augmented with a Context +// and error-handling. +func ExampleGroup_parallel() { + Google := func(ctx context.Context, query string) ([]Result, error) { + g, ctx := errgroup.WithContext(ctx) + + searches := []Search{Web, Image, Video} + results := make([]Result, len(searches)) + for i, search := range searches { + i, search := i, search // https://golang.org/doc/faq#closures_and_goroutines + g.Go(func() error { + result, err := search(ctx, query) + if err == nil { + results[i] = result + } + return err + }) + } + if err := g.Wait(); err != nil { + return nil, err + } + return results, nil + } + + results, err := Google(context.Background(), "golang") + if err != nil { + fmt.Fprintln(os.Stderr, err) + return + } + for _, result := range results { + fmt.Println(result) + } + + // Output: + // web result for "golang" + // image result for "golang" + // video result for "golang" +} + +func TestZeroGroup(t *testing.T) { + err1 := errors.New("errgroup_test: 1") + err2 := errors.New("errgroup_test: 2") + + cases := []struct { + errs []error + }{ + {errs: []error{}}, + {errs: []error{nil}}, + {errs: []error{err1}}, + {errs: []error{err1, nil}}, + {errs: []error{err1, nil, err2}}, + } + + for _, tc := range cases { + var g errgroup.Group + + var firstErr error + for i, err := range tc.errs { + err := err + g.Go(func() error { return err }) + + if firstErr == nil && err != nil { + firstErr = err + } + + if gErr := g.Wait(); gErr != firstErr { + t.Errorf("after %T.Go(func() error { return err }) for err in %v\n"+ + "g.Wait() = %v; want %v", + g, tc.errs[:i+1], err, firstErr) + } + } + } +} + +func TestWithContext(t *testing.T) { + errDoom := errors.New("group_test: doomed") + + cases := []struct { + errs []error + want error + }{ + {want: nil}, + {errs: []error{nil}, want: nil}, + {errs: []error{errDoom}, want: errDoom}, + {errs: []error{errDoom, nil}, want: errDoom}, + } + + for _, tc := range cases { + g, ctx := errgroup.WithContext(context.Background()) + + for _, err := range tc.errs { + err := err + g.Go(func() error { return err }) + } + + if err := g.Wait(); err != tc.want { + t.Errorf("after %T.Go(func() error { return err }) for err in %v\n"+ + "g.Wait() = %v; want %v", + g, tc.errs, err, tc.want) + } + + canceled := false + select { + case <-ctx.Done(): + canceled = true + default: + } + if !canceled { + t.Errorf("after %T.Go(func() error { return err }) for err in %v\n"+ + "ctx.Done() was not closed", + g, tc.errs) + } + } +} diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go new file mode 100644 index 00000000..e9d2d79a --- /dev/null +++ b/vendor/golang.org/x/sync/semaphore/semaphore.go @@ -0,0 +1,131 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package semaphore provides a weighted semaphore implementation. +package semaphore // import "golang.org/x/sync/semaphore" + +import ( + "container/list" + "sync" + + // Use the old context because packages that depend on this one + // (e.g. cloud.google.com/go/...) must run on Go 1.6. + // TODO(jba): update to "context" when possible. + "golang.org/x/net/context" +) + +type waiter struct { + n int64 + ready chan<- struct{} // Closed when semaphore acquired. +} + +// NewWeighted creates a new weighted semaphore with the given +// maximum combined weight for concurrent access. +func NewWeighted(n int64) *Weighted { + w := &Weighted{size: n} + return w +} + +// Weighted provides a way to bound concurrent access to a resource. +// The callers can request access with a given weight. +type Weighted struct { + size int64 + cur int64 + mu sync.Mutex + waiters list.List +} + +// Acquire acquires the semaphore with a weight of n, blocking only until ctx +// is done. On success, returns nil. On failure, returns ctx.Err() and leaves +// the semaphore unchanged. +// +// If ctx is already done, Acquire may still succeed without blocking. +func (s *Weighted) Acquire(ctx context.Context, n int64) error { + s.mu.Lock() + if s.size-s.cur >= n && s.waiters.Len() == 0 { + s.cur += n + s.mu.Unlock() + return nil + } + + if n > s.size { + // Don't make other Acquire calls block on one that's doomed to fail. + s.mu.Unlock() + <-ctx.Done() + return ctx.Err() + } + + ready := make(chan struct{}) + w := waiter{n: n, ready: ready} + elem := s.waiters.PushBack(w) + s.mu.Unlock() + + select { + case <-ctx.Done(): + err := ctx.Err() + s.mu.Lock() + select { + case <-ready: + // Acquired the semaphore after we were canceled. Rather than trying to + // fix up the queue, just pretend we didn't notice the cancelation. + err = nil + default: + s.waiters.Remove(elem) + } + s.mu.Unlock() + return err + + case <-ready: + return nil + } +} + +// TryAcquire acquires the semaphore with a weight of n without blocking. +// On success, returns true. On failure, returns false and leaves the semaphore unchanged. +func (s *Weighted) TryAcquire(n int64) bool { + s.mu.Lock() + success := s.size-s.cur >= n && s.waiters.Len() == 0 + if success { + s.cur += n + } + s.mu.Unlock() + return success +} + +// Release releases the semaphore with a weight of n. +func (s *Weighted) Release(n int64) { + s.mu.Lock() + s.cur -= n + if s.cur < 0 { + s.mu.Unlock() + panic("semaphore: bad release") + } + for { + next := s.waiters.Front() + if next == nil { + break // No more waiters blocked. + } + + w := next.Value.(waiter) + if s.size-s.cur < w.n { + // Not enough tokens for the next waiter. We could keep going (to try to + // find a waiter with a smaller request), but under load that could cause + // starvation for large requests; instead, we leave all remaining waiters + // blocked. + // + // Consider a semaphore used as a read-write lock, with N tokens, N + // readers, and one writer. Each reader can Acquire(1) to obtain a read + // lock. The writer can Acquire(N) to obtain a write lock, excluding all + // of the readers. If we allow the readers to jump ahead in the queue, + // the writer will starve — there is always one token available for every + // reader. + break + } + + s.cur += w.n + s.waiters.Remove(next) + close(w.ready) + } + s.mu.Unlock() +} diff --git a/vendor/golang.org/x/sync/semaphore/semaphore_bench_test.go b/vendor/golang.org/x/sync/semaphore/semaphore_bench_test.go new file mode 100644 index 00000000..5bb2fb30 --- /dev/null +++ b/vendor/golang.org/x/sync/semaphore/semaphore_bench_test.go @@ -0,0 +1,130 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.7 + +package semaphore + +import ( + "fmt" + "testing" + + "golang.org/x/net/context" +) + +// weighted is an interface matching a subset of *Weighted. It allows +// alternate implementations for testing and benchmarking. +type weighted interface { + Acquire(context.Context, int64) error + TryAcquire(int64) bool + Release(int64) +} + +// semChan implements Weighted using a channel for +// comparing against the condition variable-based implementation. +type semChan chan struct{} + +func newSemChan(n int64) semChan { + return semChan(make(chan struct{}, n)) +} + +func (s semChan) Acquire(_ context.Context, n int64) error { + for i := int64(0); i < n; i++ { + s <- struct{}{} + } + return nil +} + +func (s semChan) TryAcquire(n int64) bool { + if int64(len(s))+n > int64(cap(s)) { + return false + } + + for i := int64(0); i < n; i++ { + s <- struct{}{} + } + return true +} + +func (s semChan) Release(n int64) { + for i := int64(0); i < n; i++ { + <-s + } +} + +// acquireN calls Acquire(size) on sem N times and then calls Release(size) N times. +func acquireN(b *testing.B, sem weighted, size int64, N int) { + b.ResetTimer() + for i := 0; i < b.N; i++ { + for j := 0; j < N; j++ { + sem.Acquire(context.Background(), size) + } + for j := 0; j < N; j++ { + sem.Release(size) + } + } +} + +// tryAcquireN calls TryAcquire(size) on sem N times and then calls Release(size) N times. +func tryAcquireN(b *testing.B, sem weighted, size int64, N int) { + b.ResetTimer() + for i := 0; i < b.N; i++ { + for j := 0; j < N; j++ { + if !sem.TryAcquire(size) { + b.Fatalf("TryAcquire(%v) = false, want true", size) + } + } + for j := 0; j < N; j++ { + sem.Release(size) + } + } +} + +func BenchmarkNewSeq(b *testing.B) { + for _, cap := range []int64{1, 128} { + b.Run(fmt.Sprintf("Weighted-%d", cap), func(b *testing.B) { + for i := 0; i < b.N; i++ { + _ = NewWeighted(cap) + } + }) + b.Run(fmt.Sprintf("semChan-%d", cap), func(b *testing.B) { + for i := 0; i < b.N; i++ { + _ = newSemChan(cap) + } + }) + } +} + +func BenchmarkAcquireSeq(b *testing.B) { + for _, c := range []struct { + cap, size int64 + N int + }{ + {1, 1, 1}, + {2, 1, 1}, + {16, 1, 1}, + {128, 1, 1}, + {2, 2, 1}, + {16, 2, 8}, + {128, 2, 64}, + {2, 1, 2}, + {16, 8, 2}, + {128, 64, 2}, + } { + for _, w := range []struct { + name string + w weighted + }{ + {"Weighted", NewWeighted(c.cap)}, + {"semChan", newSemChan(c.cap)}, + } { + b.Run(fmt.Sprintf("%s-acquire-%d-%d-%d", w.name, c.cap, c.size, c.N), func(b *testing.B) { + acquireN(b, w.w, c.size, c.N) + }) + b.Run(fmt.Sprintf("%s-tryAcquire-%d-%d-%d", w.name, c.cap, c.size, c.N), func(b *testing.B) { + tryAcquireN(b, w.w, c.size, c.N) + }) + } + } +} diff --git a/vendor/golang.org/x/sync/semaphore/semaphore_test.go b/vendor/golang.org/x/sync/semaphore/semaphore_test.go new file mode 100644 index 00000000..3f3bc9f4 --- /dev/null +++ b/vendor/golang.org/x/sync/semaphore/semaphore_test.go @@ -0,0 +1,170 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package semaphore + +import ( + "math/rand" + "runtime" + "sync" + "testing" + "time" + + "golang.org/x/net/context" + "golang.org/x/sync/errgroup" +) + +const maxSleep = 1 * time.Millisecond + +func HammerWeighted(sem *Weighted, n int64, loops int) { + for i := 0; i < loops; i++ { + sem.Acquire(context.Background(), n) + time.Sleep(time.Duration(rand.Int63n(int64(maxSleep/time.Nanosecond))) * time.Nanosecond) + sem.Release(n) + } +} + +func TestWeighted(t *testing.T) { + t.Parallel() + + n := runtime.GOMAXPROCS(0) + loops := 10000 / n + sem := NewWeighted(int64(n)) + var wg sync.WaitGroup + wg.Add(n) + for i := 0; i < n; i++ { + i := i + go func() { + defer wg.Done() + HammerWeighted(sem, int64(i), loops) + }() + } + wg.Wait() +} + +func TestWeightedPanic(t *testing.T) { + t.Parallel() + + defer func() { + if recover() == nil { + t.Fatal("release of an unacquired weighted semaphore did not panic") + } + }() + w := NewWeighted(1) + w.Release(1) +} + +func TestWeightedTryAcquire(t *testing.T) { + t.Parallel() + + ctx := context.Background() + sem := NewWeighted(2) + tries := []bool{} + sem.Acquire(ctx, 1) + tries = append(tries, sem.TryAcquire(1)) + tries = append(tries, sem.TryAcquire(1)) + + sem.Release(2) + + tries = append(tries, sem.TryAcquire(1)) + sem.Acquire(ctx, 1) + tries = append(tries, sem.TryAcquire(1)) + + want := []bool{true, false, true, false} + for i := range tries { + if tries[i] != want[i] { + t.Errorf("tries[%d]: got %t, want %t", i, tries[i], want[i]) + } + } +} + +func TestWeightedAcquire(t *testing.T) { + t.Parallel() + + ctx := context.Background() + sem := NewWeighted(2) + tryAcquire := func(n int64) bool { + ctx, cancel := context.WithTimeout(ctx, 10*time.Millisecond) + defer cancel() + return sem.Acquire(ctx, n) == nil + } + + tries := []bool{} + sem.Acquire(ctx, 1) + tries = append(tries, tryAcquire(1)) + tries = append(tries, tryAcquire(1)) + + sem.Release(2) + + tries = append(tries, tryAcquire(1)) + sem.Acquire(ctx, 1) + tries = append(tries, tryAcquire(1)) + + want := []bool{true, false, true, false} + for i := range tries { + if tries[i] != want[i] { + t.Errorf("tries[%d]: got %t, want %t", i, tries[i], want[i]) + } + } +} + +func TestWeightedDoesntBlockIfTooBig(t *testing.T) { + t.Parallel() + + const n = 2 + sem := NewWeighted(n) + { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + go sem.Acquire(ctx, n+1) + } + + g, ctx := errgroup.WithContext(context.Background()) + for i := n * 3; i > 0; i-- { + g.Go(func() error { + err := sem.Acquire(ctx, 1) + if err == nil { + time.Sleep(1 * time.Millisecond) + sem.Release(1) + } + return err + }) + } + if err := g.Wait(); err != nil { + t.Errorf("NewWeighted(%v) failed to AcquireCtx(_, 1) with AcquireCtx(_, %v) pending", n, n+1) + } +} + +// TestLargeAcquireDoesntStarve times out if a large call to Acquire starves. +// Merely returning from the test function indicates success. +func TestLargeAcquireDoesntStarve(t *testing.T) { + t.Parallel() + + ctx := context.Background() + n := int64(runtime.GOMAXPROCS(0)) + sem := NewWeighted(n) + running := true + + var wg sync.WaitGroup + wg.Add(int(n)) + for i := n; i > 0; i-- { + sem.Acquire(ctx, 1) + go func() { + defer func() { + sem.Release(1) + wg.Done() + }() + for running { + time.Sleep(1 * time.Millisecond) + sem.Release(1) + sem.Acquire(ctx, 1) + } + }() + } + + sem.Acquire(ctx, n) + running = false + sem.Release(n) + wg.Wait() +} diff --git a/vendor/golang.org/x/sync/singleflight/singleflight.go b/vendor/golang.org/x/sync/singleflight/singleflight.go new file mode 100644 index 00000000..9a4f8d59 --- /dev/null +++ b/vendor/golang.org/x/sync/singleflight/singleflight.go @@ -0,0 +1,111 @@ +// 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 "golang.org/x/sync/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 + + // 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() + 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() + delete(g.m, key) + g.mu.Unlock() +} diff --git a/vendor/golang.org/x/sync/singleflight/singleflight_test.go b/vendor/golang.org/x/sync/singleflight/singleflight_test.go new file mode 100644 index 00000000..5e6f1b32 --- /dev/null +++ b/vendor/golang.org/x/sync/singleflight/singleflight_test.go @@ -0,0 +1,87 @@ +// 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 + +import ( + "errors" + "fmt" + "sync" + "sync/atomic" + "testing" + "time" +) + +func TestDo(t *testing.T) { + var g Group + v, err, _ := g.Do("key", func() (interface{}, error) { + return "bar", nil + }) + if got, want := fmt.Sprintf("%v (%T)", v, v), "bar (string)"; got != want { + t.Errorf("Do = %v; want %v", got, want) + } + if err != nil { + t.Errorf("Do error = %v", err) + } +} + +func TestDoErr(t *testing.T) { + var g Group + someErr := errors.New("Some error") + v, err, _ := g.Do("key", func() (interface{}, error) { + return nil, someErr + }) + if err != someErr { + t.Errorf("Do error = %v; want someErr %v", err, someErr) + } + if v != nil { + t.Errorf("unexpected non-nil value %#v", v) + } +} + +func TestDoDupSuppress(t *testing.T) { + var g Group + var wg1, wg2 sync.WaitGroup + c := make(chan string, 1) + var calls int32 + fn := func() (interface{}, error) { + if atomic.AddInt32(&calls, 1) == 1 { + // First invocation. + wg1.Done() + } + v := <-c + c <- v // pump; make available for any future calls + + time.Sleep(10 * time.Millisecond) // let more goroutines enter Do + + return v, nil + } + + const n = 10 + wg1.Add(1) + for i := 0; i < n; i++ { + wg1.Add(1) + wg2.Add(1) + go func() { + defer wg2.Done() + wg1.Done() + v, err, _ := g.Do("key", fn) + if err != nil { + t.Errorf("Do error: %v", err) + return + } + if s, _ := v.(string); s != "bar" { + t.Errorf("Do = %T %v; want %q", v, v, "bar") + } + }() + } + wg1.Wait() + // At least one goroutine is in fn now and all of them have at + // least reached the line before the Do. + c <- "bar" + wg2.Wait() + if got := atomic.LoadInt32(&calls); got <= 0 || got >= n { + t.Errorf("number of calls = %d; want over 0 and less than %d", got, n) + } +} diff --git a/vendor/golang.org/x/sync/syncmap/map.go b/vendor/golang.org/x/sync/syncmap/map.go new file mode 100644 index 00000000..80e15847 --- /dev/null +++ b/vendor/golang.org/x/sync/syncmap/map.go @@ -0,0 +1,372 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package syncmap provides a concurrent map implementation. +// It is a prototype for a proposed addition to the sync package +// in the standard library. +// (https://golang.org/issue/18177) +package syncmap + +import ( + "sync" + "sync/atomic" + "unsafe" +) + +// Map is a concurrent map with amortized-constant-time loads, stores, and deletes. +// It is safe for multiple goroutines to call a Map's methods concurrently. +// +// The zero Map is valid and empty. +// +// A Map must not be copied after first use. +type Map struct { + mu sync.Mutex + + // read contains the portion of the map's contents that are safe for + // concurrent access (with or without mu held). + // + // The read field itself is always safe to load, but must only be stored with + // mu held. + // + // Entries stored in read may be updated concurrently without mu, but updating + // a previously-expunged entry requires that the entry be copied to the dirty + // map and unexpunged with mu held. + read atomic.Value // readOnly + + // dirty contains the portion of the map's contents that require mu to be + // held. To ensure that the dirty map can be promoted to the read map quickly, + // it also includes all of the non-expunged entries in the read map. + // + // Expunged entries are not stored in the dirty map. An expunged entry in the + // clean map must be unexpunged and added to the dirty map before a new value + // can be stored to it. + // + // If the dirty map is nil, the next write to the map will initialize it by + // making a shallow copy of the clean map, omitting stale entries. + dirty map[interface{}]*entry + + // misses counts the number of loads since the read map was last updated that + // needed to lock mu to determine whether the key was present. + // + // Once enough misses have occurred to cover the cost of copying the dirty + // map, the dirty map will be promoted to the read map (in the unamended + // state) and the next store to the map will make a new dirty copy. + misses int +} + +// readOnly is an immutable struct stored atomically in the Map.read field. +type readOnly struct { + m map[interface{}]*entry + amended bool // true if the dirty map contains some key not in m. +} + +// expunged is an arbitrary pointer that marks entries which have been deleted +// from the dirty map. +var expunged = unsafe.Pointer(new(interface{})) + +// An entry is a slot in the map corresponding to a particular key. +type entry struct { + // p points to the interface{} value stored for the entry. + // + // If p == nil, the entry has been deleted and m.dirty == nil. + // + // If p == expunged, the entry has been deleted, m.dirty != nil, and the entry + // is missing from m.dirty. + // + // Otherwise, the entry is valid and recorded in m.read.m[key] and, if m.dirty + // != nil, in m.dirty[key]. + // + // An entry can be deleted by atomic replacement with nil: when m.dirty is + // next created, it will atomically replace nil with expunged and leave + // m.dirty[key] unset. + // + // An entry's associated value can be updated by atomic replacement, provided + // p != expunged. If p == expunged, an entry's associated value can be updated + // only after first setting m.dirty[key] = e so that lookups using the dirty + // map find the entry. + p unsafe.Pointer // *interface{} +} + +func newEntry(i interface{}) *entry { + return &entry{p: unsafe.Pointer(&i)} +} + +// Load returns the value stored in the map for a key, or nil if no +// value is present. +// The ok result indicates whether value was found in the map. +func (m *Map) Load(key interface{}) (value interface{}, ok bool) { + read, _ := m.read.Load().(readOnly) + e, ok := read.m[key] + if !ok && read.amended { + m.mu.Lock() + // Avoid reporting a spurious miss if m.dirty got promoted while we were + // blocked on m.mu. (If further loads of the same key will not miss, it's + // not worth copying the dirty map for this key.) + read, _ = m.read.Load().(readOnly) + e, ok = read.m[key] + if !ok && read.amended { + e, ok = m.dirty[key] + // Regardless of whether the entry was present, record a miss: this key + // will take the slow path until the dirty map is promoted to the read + // map. + m.missLocked() + } + m.mu.Unlock() + } + if !ok { + return nil, false + } + return e.load() +} + +func (e *entry) load() (value interface{}, ok bool) { + p := atomic.LoadPointer(&e.p) + if p == nil || p == expunged { + return nil, false + } + return *(*interface{})(p), true +} + +// Store sets the value for a key. +func (m *Map) Store(key, value interface{}) { + read, _ := m.read.Load().(readOnly) + if e, ok := read.m[key]; ok && e.tryStore(&value) { + return + } + + m.mu.Lock() + read, _ = m.read.Load().(readOnly) + if e, ok := read.m[key]; ok { + if e.unexpungeLocked() { + // The entry was previously expunged, which implies that there is a + // non-nil dirty map and this entry is not in it. + m.dirty[key] = e + } + e.storeLocked(&value) + } else if e, ok := m.dirty[key]; ok { + e.storeLocked(&value) + } else { + if !read.amended { + // We're adding the first new key to the dirty map. + // Make sure it is allocated and mark the read-only map as incomplete. + m.dirtyLocked() + m.read.Store(readOnly{m: read.m, amended: true}) + } + m.dirty[key] = newEntry(value) + } + m.mu.Unlock() +} + +// tryStore stores a value if the entry has not been expunged. +// +// If the entry is expunged, tryStore returns false and leaves the entry +// unchanged. +func (e *entry) tryStore(i *interface{}) bool { + p := atomic.LoadPointer(&e.p) + if p == expunged { + return false + } + for { + if atomic.CompareAndSwapPointer(&e.p, p, unsafe.Pointer(i)) { + return true + } + p = atomic.LoadPointer(&e.p) + if p == expunged { + return false + } + } +} + +// unexpungeLocked ensures that the entry is not marked as expunged. +// +// If the entry was previously expunged, it must be added to the dirty map +// before m.mu is unlocked. +func (e *entry) unexpungeLocked() (wasExpunged bool) { + return atomic.CompareAndSwapPointer(&e.p, expunged, nil) +} + +// storeLocked unconditionally stores a value to the entry. +// +// The entry must be known not to be expunged. +func (e *entry) storeLocked(i *interface{}) { + atomic.StorePointer(&e.p, unsafe.Pointer(i)) +} + +// LoadOrStore returns the existing value for the key if present. +// Otherwise, it stores and returns the given value. +// The loaded result is true if the value was loaded, false if stored. +func (m *Map) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) { + // Avoid locking if it's a clean hit. + read, _ := m.read.Load().(readOnly) + if e, ok := read.m[key]; ok { + actual, loaded, ok := e.tryLoadOrStore(value) + if ok { + return actual, loaded + } + } + + m.mu.Lock() + read, _ = m.read.Load().(readOnly) + if e, ok := read.m[key]; ok { + if e.unexpungeLocked() { + m.dirty[key] = e + } + actual, loaded, _ = e.tryLoadOrStore(value) + } else if e, ok := m.dirty[key]; ok { + actual, loaded, _ = e.tryLoadOrStore(value) + m.missLocked() + } else { + if !read.amended { + // We're adding the first new key to the dirty map. + // Make sure it is allocated and mark the read-only map as incomplete. + m.dirtyLocked() + m.read.Store(readOnly{m: read.m, amended: true}) + } + m.dirty[key] = newEntry(value) + actual, loaded = value, false + } + m.mu.Unlock() + + return actual, loaded +} + +// tryLoadOrStore atomically loads or stores a value if the entry is not +// expunged. +// +// If the entry is expunged, tryLoadOrStore leaves the entry unchanged and +// returns with ok==false. +func (e *entry) tryLoadOrStore(i interface{}) (actual interface{}, loaded, ok bool) { + p := atomic.LoadPointer(&e.p) + if p == expunged { + return nil, false, false + } + if p != nil { + return *(*interface{})(p), true, true + } + + // Copy the interface after the first load to make this method more amenable + // to escape analysis: if we hit the "load" path or the entry is expunged, we + // shouldn't bother heap-allocating. + ic := i + for { + if atomic.CompareAndSwapPointer(&e.p, nil, unsafe.Pointer(&ic)) { + return i, false, true + } + p = atomic.LoadPointer(&e.p) + if p == expunged { + return nil, false, false + } + if p != nil { + return *(*interface{})(p), true, true + } + } +} + +// Delete deletes the value for a key. +func (m *Map) Delete(key interface{}) { + read, _ := m.read.Load().(readOnly) + e, ok := read.m[key] + if !ok && read.amended { + m.mu.Lock() + read, _ = m.read.Load().(readOnly) + e, ok = read.m[key] + if !ok && read.amended { + delete(m.dirty, key) + } + m.mu.Unlock() + } + if ok { + e.delete() + } +} + +func (e *entry) delete() (hadValue bool) { + for { + p := atomic.LoadPointer(&e.p) + if p == nil || p == expunged { + return false + } + if atomic.CompareAndSwapPointer(&e.p, p, nil) { + return true + } + } +} + +// Range calls f sequentially for each key and value present in the map. +// If f returns false, range stops the iteration. +// +// Range does not necessarily correspond to any consistent snapshot of the Map's +// contents: no key will be visited more than once, but if the value for any key +// is stored or deleted concurrently, Range may reflect any mapping for that key +// from any point during the Range call. +// +// Range may be O(N) with the number of elements in the map even if f returns +// false after a constant number of calls. +func (m *Map) Range(f func(key, value interface{}) bool) { + // We need to be able to iterate over all of the keys that were already + // present at the start of the call to Range. + // If read.amended is false, then read.m satisfies that property without + // requiring us to hold m.mu for a long time. + read, _ := m.read.Load().(readOnly) + if read.amended { + // m.dirty contains keys not in read.m. Fortunately, Range is already O(N) + // (assuming the caller does not break out early), so a call to Range + // amortizes an entire copy of the map: we can promote the dirty copy + // immediately! + m.mu.Lock() + read, _ = m.read.Load().(readOnly) + if read.amended { + read = readOnly{m: m.dirty} + m.read.Store(read) + m.dirty = nil + m.misses = 0 + } + m.mu.Unlock() + } + + for k, e := range read.m { + v, ok := e.load() + if !ok { + continue + } + if !f(k, v) { + break + } + } +} + +func (m *Map) missLocked() { + m.misses++ + if m.misses < len(m.dirty) { + return + } + m.read.Store(readOnly{m: m.dirty}) + m.dirty = nil + m.misses = 0 +} + +func (m *Map) dirtyLocked() { + if m.dirty != nil { + return + } + + read, _ := m.read.Load().(readOnly) + m.dirty = make(map[interface{}]*entry, len(read.m)) + for k, e := range read.m { + if !e.tryExpungeLocked() { + m.dirty[k] = e + } + } +} + +func (e *entry) tryExpungeLocked() (isExpunged bool) { + p := atomic.LoadPointer(&e.p) + for p == nil { + if atomic.CompareAndSwapPointer(&e.p, nil, expunged) { + return true + } + p = atomic.LoadPointer(&e.p) + } + return p == expunged +} diff --git a/vendor/golang.org/x/sync/syncmap/map_bench_test.go b/vendor/golang.org/x/sync/syncmap/map_bench_test.go new file mode 100644 index 00000000..b279b4f7 --- /dev/null +++ b/vendor/golang.org/x/sync/syncmap/map_bench_test.go @@ -0,0 +1,216 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package syncmap_test + +import ( + "fmt" + "reflect" + "sync/atomic" + "testing" + + "golang.org/x/sync/syncmap" +) + +type bench struct { + setup func(*testing.B, mapInterface) + perG func(b *testing.B, pb *testing.PB, i int, m mapInterface) +} + +func benchMap(b *testing.B, bench bench) { + for _, m := range [...]mapInterface{&DeepCopyMap{}, &RWMutexMap{}, &syncmap.Map{}} { + b.Run(fmt.Sprintf("%T", m), func(b *testing.B) { + m = reflect.New(reflect.TypeOf(m).Elem()).Interface().(mapInterface) + if bench.setup != nil { + bench.setup(b, m) + } + + b.ResetTimer() + + var i int64 + b.RunParallel(func(pb *testing.PB) { + id := int(atomic.AddInt64(&i, 1) - 1) + bench.perG(b, pb, id*b.N, m) + }) + }) + } +} + +func BenchmarkLoadMostlyHits(b *testing.B) { + const hits, misses = 1023, 1 + + benchMap(b, bench{ + setup: func(_ *testing.B, m mapInterface) { + for i := 0; i < hits; i++ { + m.LoadOrStore(i, i) + } + // Prime the map to get it into a steady state. + for i := 0; i < hits*2; i++ { + m.Load(i % hits) + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.Load(i % (hits + misses)) + } + }, + }) +} + +func BenchmarkLoadMostlyMisses(b *testing.B) { + const hits, misses = 1, 1023 + + benchMap(b, bench{ + setup: func(_ *testing.B, m mapInterface) { + for i := 0; i < hits; i++ { + m.LoadOrStore(i, i) + } + // Prime the map to get it into a steady state. + for i := 0; i < hits*2; i++ { + m.Load(i % hits) + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.Load(i % (hits + misses)) + } + }, + }) +} + +func BenchmarkLoadOrStoreBalanced(b *testing.B) { + const hits, misses = 128, 128 + + benchMap(b, bench{ + setup: func(b *testing.B, m mapInterface) { + if _, ok := m.(*DeepCopyMap); ok { + b.Skip("DeepCopyMap has quadratic running time.") + } + for i := 0; i < hits; i++ { + m.LoadOrStore(i, i) + } + // Prime the map to get it into a steady state. + for i := 0; i < hits*2; i++ { + m.Load(i % hits) + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + j := i % (hits + misses) + if j < hits { + if _, ok := m.LoadOrStore(j, i); !ok { + b.Fatalf("unexpected miss for %v", j) + } + } else { + if v, loaded := m.LoadOrStore(i, i); loaded { + b.Fatalf("failed to store %v: existing value %v", i, v) + } + } + } + }, + }) +} + +func BenchmarkLoadOrStoreUnique(b *testing.B) { + benchMap(b, bench{ + setup: func(b *testing.B, m mapInterface) { + if _, ok := m.(*DeepCopyMap); ok { + b.Skip("DeepCopyMap has quadratic running time.") + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.LoadOrStore(i, i) + } + }, + }) +} + +func BenchmarkLoadOrStoreCollision(b *testing.B) { + benchMap(b, bench{ + setup: func(_ *testing.B, m mapInterface) { + m.LoadOrStore(0, 0) + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.LoadOrStore(0, 0) + } + }, + }) +} + +func BenchmarkRange(b *testing.B) { + const mapSize = 1 << 10 + + benchMap(b, bench{ + setup: func(_ *testing.B, m mapInterface) { + for i := 0; i < mapSize; i++ { + m.Store(i, i) + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.Range(func(_, _ interface{}) bool { return true }) + } + }, + }) +} + +// BenchmarkAdversarialAlloc tests performance when we store a new value +// immediately whenever the map is promoted to clean and otherwise load a +// unique, missing key. +// +// This forces the Load calls to always acquire the map's mutex. +func BenchmarkAdversarialAlloc(b *testing.B) { + benchMap(b, bench{ + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + var stores, loadsSinceStore int64 + for ; pb.Next(); i++ { + m.Load(i) + if loadsSinceStore++; loadsSinceStore > stores { + m.LoadOrStore(i, stores) + loadsSinceStore = 0 + stores++ + } + } + }, + }) +} + +// BenchmarkAdversarialDelete tests performance when we periodically delete +// one key and add a different one in a large map. +// +// This forces the Load calls to always acquire the map's mutex and periodically +// makes a full copy of the map despite changing only one entry. +func BenchmarkAdversarialDelete(b *testing.B) { + const mapSize = 1 << 10 + + benchMap(b, bench{ + setup: func(_ *testing.B, m mapInterface) { + for i := 0; i < mapSize; i++ { + m.Store(i, i) + } + }, + + perG: func(b *testing.B, pb *testing.PB, i int, m mapInterface) { + for ; pb.Next(); i++ { + m.Load(i) + + if i%mapSize == 0 { + m.Range(func(k, _ interface{}) bool { + m.Delete(k) + return false + }) + m.Store(i, i) + } + } + }, + }) +} diff --git a/vendor/golang.org/x/sync/syncmap/map_reference_test.go b/vendor/golang.org/x/sync/syncmap/map_reference_test.go new file mode 100644 index 00000000..923c51b7 --- /dev/null +++ b/vendor/golang.org/x/sync/syncmap/map_reference_test.go @@ -0,0 +1,151 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package syncmap_test + +import ( + "sync" + "sync/atomic" +) + +// This file contains reference map implementations for unit-tests. + +// mapInterface is the interface Map implements. +type mapInterface interface { + Load(interface{}) (interface{}, bool) + Store(key, value interface{}) + LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) + Delete(interface{}) + Range(func(key, value interface{}) (shouldContinue bool)) +} + +// RWMutexMap is an implementation of mapInterface using a sync.RWMutex. +type RWMutexMap struct { + mu sync.RWMutex + dirty map[interface{}]interface{} +} + +func (m *RWMutexMap) Load(key interface{}) (value interface{}, ok bool) { + m.mu.RLock() + value, ok = m.dirty[key] + m.mu.RUnlock() + return +} + +func (m *RWMutexMap) Store(key, value interface{}) { + m.mu.Lock() + if m.dirty == nil { + m.dirty = make(map[interface{}]interface{}) + } + m.dirty[key] = value + m.mu.Unlock() +} + +func (m *RWMutexMap) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) { + m.mu.Lock() + actual, loaded = m.dirty[key] + if !loaded { + actual = value + if m.dirty == nil { + m.dirty = make(map[interface{}]interface{}) + } + m.dirty[key] = value + } + m.mu.Unlock() + return actual, loaded +} + +func (m *RWMutexMap) Delete(key interface{}) { + m.mu.Lock() + delete(m.dirty, key) + m.mu.Unlock() +} + +func (m *RWMutexMap) Range(f func(key, value interface{}) (shouldContinue bool)) { + m.mu.RLock() + keys := make([]interface{}, 0, len(m.dirty)) + for k := range m.dirty { + keys = append(keys, k) + } + m.mu.RUnlock() + + for _, k := range keys { + v, ok := m.Load(k) + if !ok { + continue + } + if !f(k, v) { + break + } + } +} + +// DeepCopyMap is an implementation of mapInterface using a Mutex and +// atomic.Value. It makes deep copies of the map on every write to avoid +// acquiring the Mutex in Load. +type DeepCopyMap struct { + mu sync.Mutex + clean atomic.Value +} + +func (m *DeepCopyMap) Load(key interface{}) (value interface{}, ok bool) { + clean, _ := m.clean.Load().(map[interface{}]interface{}) + value, ok = clean[key] + return value, ok +} + +func (m *DeepCopyMap) Store(key, value interface{}) { + m.mu.Lock() + dirty := m.dirty() + dirty[key] = value + m.clean.Store(dirty) + m.mu.Unlock() +} + +func (m *DeepCopyMap) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) { + clean, _ := m.clean.Load().(map[interface{}]interface{}) + actual, loaded = clean[key] + if loaded { + return actual, loaded + } + + m.mu.Lock() + // Reload clean in case it changed while we were waiting on m.mu. + clean, _ = m.clean.Load().(map[interface{}]interface{}) + actual, loaded = clean[key] + if !loaded { + dirty := m.dirty() + dirty[key] = value + actual = value + m.clean.Store(dirty) + } + m.mu.Unlock() + return actual, loaded +} + +func (m *DeepCopyMap) Delete(key interface{}) { + m.mu.Lock() + dirty := m.dirty() + delete(dirty, key) + m.clean.Store(dirty) + m.mu.Unlock() +} + +func (m *DeepCopyMap) Range(f func(key, value interface{}) (shouldContinue bool)) { + clean, _ := m.clean.Load().(map[interface{}]interface{}) + for k, v := range clean { + if !f(k, v) { + break + } + } +} + +func (m *DeepCopyMap) dirty() map[interface{}]interface{} { + clean, _ := m.clean.Load().(map[interface{}]interface{}) + dirty := make(map[interface{}]interface{}, len(clean)+1) + for k, v := range clean { + dirty[k] = v + } + return dirty +} diff --git a/vendor/golang.org/x/sync/syncmap/map_test.go b/vendor/golang.org/x/sync/syncmap/map_test.go new file mode 100644 index 00000000..c883f176 --- /dev/null +++ b/vendor/golang.org/x/sync/syncmap/map_test.go @@ -0,0 +1,172 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package syncmap_test + +import ( + "math/rand" + "reflect" + "runtime" + "sync" + "testing" + "testing/quick" + + "golang.org/x/sync/syncmap" +) + +type mapOp string + +const ( + opLoad = mapOp("Load") + opStore = mapOp("Store") + opLoadOrStore = mapOp("LoadOrStore") + opDelete = mapOp("Delete") +) + +var mapOps = [...]mapOp{opLoad, opStore, opLoadOrStore, opDelete} + +// mapCall is a quick.Generator for calls on mapInterface. +type mapCall struct { + op mapOp + k, v interface{} +} + +func (c mapCall) apply(m mapInterface) (interface{}, bool) { + switch c.op { + case opLoad: + return m.Load(c.k) + case opStore: + m.Store(c.k, c.v) + return nil, false + case opLoadOrStore: + return m.LoadOrStore(c.k, c.v) + case opDelete: + m.Delete(c.k) + return nil, false + default: + panic("invalid mapOp") + } +} + +type mapResult struct { + value interface{} + ok bool +} + +func randValue(r *rand.Rand) interface{} { + b := make([]byte, r.Intn(4)) + for i := range b { + b[i] = 'a' + byte(rand.Intn(26)) + } + return string(b) +} + +func (mapCall) Generate(r *rand.Rand, size int) reflect.Value { + c := mapCall{op: mapOps[rand.Intn(len(mapOps))], k: randValue(r)} + switch c.op { + case opStore, opLoadOrStore: + c.v = randValue(r) + } + return reflect.ValueOf(c) +} + +func applyCalls(m mapInterface, calls []mapCall) (results []mapResult, final map[interface{}]interface{}) { + for _, c := range calls { + v, ok := c.apply(m) + results = append(results, mapResult{v, ok}) + } + + final = make(map[interface{}]interface{}) + m.Range(func(k, v interface{}) bool { + final[k] = v + return true + }) + + return results, final +} + +func applyMap(calls []mapCall) ([]mapResult, map[interface{}]interface{}) { + return applyCalls(new(syncmap.Map), calls) +} + +func applyRWMutexMap(calls []mapCall) ([]mapResult, map[interface{}]interface{}) { + return applyCalls(new(RWMutexMap), calls) +} + +func applyDeepCopyMap(calls []mapCall) ([]mapResult, map[interface{}]interface{}) { + return applyCalls(new(DeepCopyMap), calls) +} + +func TestMapMatchesRWMutex(t *testing.T) { + if err := quick.CheckEqual(applyMap, applyRWMutexMap, nil); err != nil { + t.Error(err) + } +} + +func TestMapMatchesDeepCopy(t *testing.T) { + if err := quick.CheckEqual(applyMap, applyDeepCopyMap, nil); err != nil { + t.Error(err) + } +} + +func TestConcurrentRange(t *testing.T) { + const mapSize = 1 << 10 + + m := new(syncmap.Map) + for n := int64(1); n <= mapSize; n++ { + m.Store(n, int64(n)) + } + + done := make(chan struct{}) + var wg sync.WaitGroup + defer func() { + close(done) + wg.Wait() + }() + for g := int64(runtime.GOMAXPROCS(0)); g > 0; g-- { + r := rand.New(rand.NewSource(g)) + wg.Add(1) + go func(g int64) { + defer wg.Done() + for i := int64(0); ; i++ { + select { + case <-done: + return + default: + } + for n := int64(1); n < mapSize; n++ { + if r.Int63n(mapSize) == 0 { + m.Store(n, n*i*g) + } else { + m.Load(n) + } + } + } + }(g) + } + + iters := 1 << 10 + if testing.Short() { + iters = 16 + } + for n := iters; n > 0; n-- { + seen := make(map[int64]bool, mapSize) + + m.Range(func(ki, vi interface{}) bool { + k, v := ki.(int64), vi.(int64) + if v%k != 0 { + t.Fatalf("while Storing multiples of %v, Range saw value %v", k, v) + } + if seen[k] { + t.Fatalf("Range visited key %v twice", k) + } + seen[k] = true + return true + }) + + if len(seen) != mapSize { + t.Fatalf("Range visited %v elements of %v-element Map", len(seen), mapSize) + } + } +} diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s new file mode 100644 index 00000000..2ea42575 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -0,0 +1,31 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build linux +// +build mips mipsle +// +build !gccgo + +#include "textflag.h" + +// +// System calls for mips, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go index 362831c3..fc0e50e0 100644 --- a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go +++ b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go @@ -1,4 +1,4 @@ -// +build linux,386 linux,arm +// +build linux,386 linux,arm linux,mips linux,mipsle // Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go new file mode 100644 index 00000000..56332692 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go @@ -0,0 +1,20 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build gccgo,linux,sparc64 + +package unix + +import "syscall" + +//extern sysconf +func realSysconf(name int) int64 + +func sysconf(name int) (n int64, err syscall.Errno) { + r := realSysconf(name) + if r < 0 { + return 0, syscall.GetErrno() + } + return r, 0 +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 3e224c57..2a1473f1 100755 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -223,6 +223,13 @@ linux_s390x) # package generates its version of the types file. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; +linux_sparc64) + GOOSARCH_in=syscall_linux_sparc64.go + unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h + mkerrors="$mkerrors -m64" + mksysnum="./mksysnum_linux.pl $unistd_h" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; netbsd_386) mkerrors="$mkerrors -m32" mksyscall="./mksyscall.pl -l32 -netbsd" diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index c40d788c..7e6276b9 100755 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -127,6 +127,8 @@ includes_Linux=' #include #include #include +#include +#include #include #include @@ -141,6 +143,12 @@ includes_Linux=' #ifndef PTRACE_SETREGS #define PTRACE_SETREGS 0xd #endif + +#ifdef SOL_BLUETOOTH +// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h +// but it is already in bluetooth_linux.go +#undef SOL_BLUETOOTH +#endif ' includes_NetBSD=' @@ -332,6 +340,7 @@ ccflags="$@" $2 !~ /^(BPF_TIMEVAL)$/ && $2 ~ /^(BPF|DLT)_/ || $2 ~ /^CLOCK_/ || + $2 ~ /^CAN_/ || $2 !~ "WMESGLEN" && $2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^__WCOREFLAG$/ {next} diff --git a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl index 4d4017de..52b16139 100755 --- a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl +++ b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl @@ -23,6 +23,8 @@ package unix const( EOF +my $offset = 0; + sub fmt { my ($name, $num) = @_; if($num > 999){ @@ -31,13 +33,18 @@ sub fmt { return; } $name =~ y/a-z/A-Z/; + $num = $num + $offset; print " SYS_$name = $num;\n"; } my $prev; open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; while(){ - if(/^#define __NR_syscalls\s+/) { + if(/^#define __NR_Linux\s+([0-9]+)/){ + # mips/mips64: extract offset + $offset = $1; + } + elsif(/^#define __NR_syscalls\s+/) { # ignore redefinitions of __NR_syscalls } elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ @@ -51,6 +58,9 @@ sub fmt { elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ fmt($1, $prev+$2) } + elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){ + fmt($1, $2); + } } print < 0 && buf[n-1] == '\x00' { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 6d10c9cf..01c569ad 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -69,10 +69,10 @@ func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error return ppoll(&fds[0], len(fds), timeout, sigmask) } -//sys readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) func Readlink(path string, buf []byte) (n int, err error) { - return readlinkat(AT_FDCWD, path, buf) + return Readlinkat(AT_FDCWD, path, buf) } func Rename(oldpath string, newpath string) (err error) { @@ -80,24 +80,20 @@ func Rename(oldpath string, newpath string) (err error) { } func Rmdir(path string) error { - return unlinkat(AT_FDCWD, path, AT_REMOVEDIR) + return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) } -//sys symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) func Symlink(oldpath string, newpath string) (err error) { - return symlinkat(oldpath, AT_FDCWD, newpath) + return Symlinkat(oldpath, AT_FDCWD, newpath) } func Unlink(path string) error { - return unlinkat(AT_FDCWD, path, 0) + return Unlinkat(AT_FDCWD, path, 0) } -//sys unlinkat(dirfd int, path string, flags int) (err error) - -func Unlinkat(dirfd int, path string, flags int) error { - return unlinkat(dirfd, path, flags) -} +//sys Unlinkat(dirfd int, path string, flags int) (err error) //sys utimes(path string, times *[2]Timeval) (err error) @@ -143,8 +139,7 @@ func UtimesNano(path string, ts []Timespec) error { // in 2.6.22, Released, 8 July 2007) then fall back to utimes var tv [2]Timeval for i := 0; i < 2; i++ { - tv[i].Sec = ts[i].Sec - tv[i].Usec = ts[i].Nsec / 1000 + tv[i] = NsecToTimeval(TimespecToNsec(ts[i])) } return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } @@ -416,6 +411,47 @@ func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil } +// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. +// The RxID and TxID fields are used for transport protocol addressing in +// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with +// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. +// +// The SockaddrCAN struct must be bound to the socket file descriptor +// using Bind before the CAN socket can be used. +// +// // Read one raw CAN frame +// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) +// addr := &SockaddrCAN{Ifindex: index} +// Bind(fd, addr) +// frame := make([]byte, 16) +// Read(fd, frame) +// +// The full SocketCAN documentation can be found in the linux kernel +// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt +type SockaddrCAN struct { + Ifindex int + RxID uint32 + TxID uint32 + raw RawSockaddrCAN +} + +func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i] = rx[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+4] = tx[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { switch rsa.Addr.Family { case AF_NETLINK: @@ -904,6 +940,7 @@ func Getpgrp() (pid int) { //sysnb Getppid() (ppid int) //sys Getpriority(which int, who int) (prio int, err error) //sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) //sysnb Gettid() (tid int) //sys Getxattr(path string, attr string, dest []byte) (sz int, err error) //sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) @@ -916,7 +953,7 @@ func Getpgrp() (pid int) { //sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) //sys Nanosleep(time *Timespec, leftover *Timespec) (err error) //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT -//sysnb prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) = SYS_PRLIMIT64 +//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 //sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) //sys read(fd int, p []byte) (n int, err error) //sys Removexattr(path string, attr string) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 18911c2d..9516a3fd 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -6,8 +6,6 @@ package unix -import "syscall" - //sys Dup2(oldfd int, newfd int) (err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -63,9 +61,6 @@ import "syscall" //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) -//go:noescape -func gettimeofday(tv *Timeval) (err syscall.Errno) - func Gettimeofday(tv *Timeval) (err error) { errno := gettimeofday(tv) if errno != 0 { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go new file mode 100644 index 00000000..21a4946b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -0,0 +1,13 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,linux +// +build !gccgo + +package unix + +import "syscall" + +//go:noescape +func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index 4b6ff2a8..4a136396 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -6,8 +6,6 @@ package unix -const _SYS_dup = SYS_DUP3 - //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 440f54ee..8119fde3 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -7,13 +7,6 @@ package unix -// Linux introduced getdents64 syscall for N64 ABI only in 3.10 -// (May 21 2013, rev dec33abaafc89bcbd78f85fad0513170415a26d5), -// to support older kernels, we have to use getdents for mips64. -// Also note that struct dirent is different for these two. -// Lookup linux_dirent{,64} in kernel source code for details. -const _SYS_getdents = SYS_GETDENTS - //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstatfs(fd int, buf *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go new file mode 100644 index 00000000..5ed80136 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -0,0 +1,241 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build linux +// +build mips mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys Dup2(oldfd int, newfd int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys Setfsgid(gid int) (err error) +//sys Setfsuid(uid int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) + +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sysnb InotifyInit() (fd int, err error) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) + +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Pause() (err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + use(unsafe.Pointer(buf)) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + p, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + use(unsafe.Pointer(p)) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) + if e != 0 { + err = errnoErr(e) + } + return +} + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = int32(nsec / 1e9) + ts.Nsec = int32(nsec % 1e9) + return +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + nsec += 999 // round up to microsecond + tv.Sec = int32(nsec / 1e9) + tv.Usec = int32(nsec % 1e9 / 1e3) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, 0) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = uint32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +func Getpagesize() int { return 4096 } diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go new file mode 100644 index 00000000..20b7454d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -0,0 +1,169 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build sparc64,linux + +package unix + +import ( + "sync/atomic" + "syscall" +) + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sysnb InotifyInit() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys Setfsgid(gid int) (err error) +//sys Setfsuid(uid int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func sysconf(name int) (n int64, err syscall.Errno) + +// pageSize caches the value of Getpagesize, since it can't change +// once the system is booted. +var pageSize int64 // accessed atomically + +func Getpagesize() int { + n := atomic.LoadInt64(&pageSize) + if n == 0 { + n, _ = sysconf(_SC_PAGESIZE) + atomic.StoreInt64(&pageSize, n) + } + return int(n) +} + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = nsec / 1e9 + ts.Nsec = nsec % 1e9 + return +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + nsec += 999 // round up to microsecond + tv.Sec = nsec / 1e9 + tv.Usec = int32(nsec % 1e9 / 1e3) + return +} + +func (r *PtraceRegs) PC() uint64 { return r.Tpc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe2(&pp, flags) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index b46b2502..8a5237de 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -49,11 +49,6 @@ func errnoErr(e syscall.Errno) error { return e } -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) - // Mmap manager, for use by operating system-specific implementations. type mmapper struct { diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go new file mode 100644 index 00000000..4cb8e8ed --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -0,0 +1,15 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin dragonfly freebsd linux netbsd openbsd solaris +// +build !gccgo + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/types_linux.go b/vendor/golang.org/x/sys/unix/types_linux.go index 7dea79a8..f3d8f90e 100644 --- a/vendor/golang.org/x/sys/unix/types_linux.go +++ b/vendor/golang.org/x/sys/unix/types_linux.go @@ -58,6 +58,7 @@ package unix #include #include #include +#include #ifdef TCSETS2 // On systems that have "struct termios2" use this as type Termios. @@ -105,6 +106,9 @@ typedef struct pt_regs PtraceRegs; typedef struct user PtraceRegs; #elif defined(__s390x__) typedef struct _user_regs_struct PtraceRegs; +#elif defined(__sparc__) +#include +typedef struct pt_regs PtraceRegs; #else typedef struct user_regs_struct PtraceRegs; #endif @@ -122,11 +126,11 @@ typedef struct {} ptracePer; // The real epoll_event is a union, and godefs doesn't handle it well. struct my_epoll_event { uint32_t events; -#if defined(__ARM_EABI__) || defined(__aarch64__) +#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) // padding is not specified in linux/eventpoll.h but added to conform to the // alignment requirements of EABI int32_t padFd; -#elif defined(__powerpc64__) || defined(__s390x__) +#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) int32_t _padFd; #endif int32_t fd; @@ -215,6 +219,8 @@ type RawSockaddrNetlink C.struct_sockaddr_nl type RawSockaddrHCI C.struct_sockaddr_hci +type RawSockaddrCAN C.struct_sockaddr_can + type RawSockaddr C.struct_sockaddr type RawSockaddrAny C.struct_sockaddr_any @@ -255,6 +261,7 @@ const ( SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci + SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can SizeofLinger = C.sizeof_struct_linger SizeofIPMreq = C.sizeof_struct_ip_mreq SizeofIPMreqn = C.sizeof_struct_ip_mreqn @@ -445,6 +452,10 @@ const ( type Sigset_t C.sigset_t +// sysconf information + +const _SC_PAGESIZE = C._SC_PAGESIZE + // Terminal handling type Termios C.termios_t diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 8f920124..b40d0299 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -190,6 +190,25 @@ const ( BS0 = 0x0 BS1 = 0x2000 BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 49b6c354..9f0600cc 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -190,6 +190,25 @@ const ( BS0 = 0x0 BS1 = 0x2000 BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index f036758f..647a796e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -186,6 +186,25 @@ const ( BS0 = 0x0 BS1 = 0x2000 BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 16dcbc9c..a6d1e1fa 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -196,6 +196,25 @@ const ( BS0 = 0x0 BS1 = 0x2000 BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go new file mode 100644 index 00000000..e4fb9ad5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -0,0 +1,1814 @@ +// mkerrors.sh +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build mips,linux + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x27 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BOTHER = 0x1000 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MCNET = 0x5 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CFLUSH = 0xf + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_IO = 0x80000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = -0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x80 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DOFORK = 0xb + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLDLY = 0x100 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_NAME = 0xf + PR_SET_PDEATHSIG = 0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_STOP = 0x7 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_MASK = 0x7f + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SEIZE_DEVEL = 0x80000000 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xe + RTAX_MTU = 0x2 + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x10 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x4f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x10 + RTM_NR_MSGTYPES = 0x40 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_CAN_BASE = 0x64 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_MARK = 0x24 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x40045430 + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETFEATURES = 0x400454cf + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADF = syscall.Errno(0x9) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x9e) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOM = syscall.Errno(0x21) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x85) + EISDIR = syscall.Errno(0x15) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENFILE = syscall.Errno(0x17) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x86) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x50) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPIPE = syscall.Errno(0x20) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + ERANGE = syscall.Errno(0x22) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + EROFS = syscall.Errno(0x1e) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + ETXTBSY = syscall.Errno(0x1a) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x16) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errors = [...]string{ + 1: "operation not permitted", + 2: "no such file or directory", + 3: "no such process", + 4: "interrupted system call", + 5: "input/output error", + 6: "no such device or address", + 7: "argument list too long", + 8: "exec format error", + 9: "bad file descriptor", + 10: "no child processes", + 11: "resource temporarily unavailable", + 12: "cannot allocate memory", + 13: "permission denied", + 14: "bad address", + 15: "block device required", + 16: "device or resource busy", + 17: "file exists", + 18: "invalid cross-device link", + 19: "no such device", + 20: "not a directory", + 21: "is a directory", + 22: "invalid argument", + 23: "too many open files in system", + 24: "too many open files", + 25: "inappropriate ioctl for device", + 26: "text file busy", + 27: "file too large", + 28: "no space left on device", + 29: "illegal seek", + 30: "read-only file system", + 31: "too many links", + 32: "broken pipe", + 33: "numerical argument out of domain", + 34: "numerical result out of range", + 35: "no message of desired type", + 36: "identifier removed", + 37: "channel number out of range", + 38: "level 2 not synchronized", + 39: "level 3 halted", + 40: "level 3 reset", + 41: "link number out of range", + 42: "protocol driver not attached", + 43: "no CSI structure available", + 44: "level 2 halted", + 45: "resource deadlock avoided", + 46: "no locks available", + 50: "invalid exchange", + 51: "invalid request descriptor", + 52: "exchange full", + 53: "no anode", + 54: "invalid request code", + 55: "invalid slot", + 56: "file locking deadlock error", + 59: "bad font file format", + 60: "device not a stream", + 61: "no data available", + 62: "timer expired", + 63: "out of streams resources", + 64: "machine is not on the network", + 65: "package not installed", + 66: "object is remote", + 67: "link has been severed", + 68: "advertise error", + 69: "srmount error", + 70: "communication error on send", + 71: "protocol error", + 73: "RFS specific error", + 74: "multihop attempted", + 77: "bad message", + 78: "file name too long", + 79: "value too large for defined data type", + 80: "name not unique on network", + 81: "file descriptor in bad state", + 82: "remote address changed", + 83: "can not access a needed shared library", + 84: "accessing a corrupted shared library", + 85: ".lib section in a.out corrupted", + 86: "attempting to link in too many shared libraries", + 87: "cannot exec a shared library directly", + 88: "invalid or incomplete multibyte or wide character", + 89: "function not implemented", + 90: "too many levels of symbolic links", + 91: "interrupted system call should be restarted", + 92: "streams pipe error", + 93: "directory not empty", + 94: "too many users", + 95: "socket operation on non-socket", + 96: "destination address required", + 97: "message too long", + 98: "protocol wrong type for socket", + 99: "protocol not available", + 120: "protocol not supported", + 121: "socket type not supported", + 122: "operation not supported", + 123: "protocol family not supported", + 124: "address family not supported by protocol", + 125: "address already in use", + 126: "cannot assign requested address", + 127: "network is down", + 128: "network is unreachable", + 129: "network dropped connection on reset", + 130: "software caused connection abort", + 131: "connection reset by peer", + 132: "no buffer space available", + 133: "transport endpoint is already connected", + 134: "transport endpoint is not connected", + 135: "structure needs cleaning", + 137: "not a XENIX named type file", + 138: "no XENIX semaphores available", + 139: "is a named type file", + 140: "remote I/O error", + 141: "unknown error 141", + 142: "unknown error 142", + 143: "cannot send after transport endpoint shutdown", + 144: "too many references: cannot splice", + 145: "connection timed out", + 146: "connection refused", + 147: "host is down", + 148: "no route to host", + 149: "operation already in progress", + 150: "operation now in progress", + 151: "stale NFS file handle", + 158: "operation canceled", + 159: "no medium found", + 160: "wrong medium type", + 161: "required key not available", + 162: "key has expired", + 163: "key has been revoked", + 164: "key was rejected by service", + 165: "owner died", + 166: "state not recoverable", + 167: "operation not possible due to RF-kill", + 168: "unknown error 168", + 1133: "disk quota exceeded", +} + +// Signal table +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "EMT trap", + 8: "floating point exception", + 9: "killed", + 10: "bus error", + 11: "segmentation fault", + 12: "bad system call", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", + 16: "user defined signal 1", + 17: "user defined signal 2", + 18: "child exited", + 19: "power failure", + 20: "window changed", + 21: "urgent I/O condition", + 22: "I/O possible", + 23: "stopped (signal)", + 24: "stopped", + 25: "continued", + 26: "stopped (tty input)", + 27: "stopped (tty output)", + 28: "virtual timer expired", + 29: "profiling timer expired", + 30: "CPU time limit exceeded", + 31: "file size limit exceeded", +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go new file mode 100644 index 00000000..0f5ee223 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -0,0 +1,2020 @@ +// mkerrors.sh +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build mipsle,linux + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BOTHER = 0x1000 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CFLUSH = 0xf + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_STACK = 0x40000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLDLY = 0x100 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = 0xffffffff + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x10 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x18 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x5f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNSID = 0x58 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x14 + RTM_NR_MSGTYPES = 0x50 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x11 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_FILTER = 0x1a + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x31 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADF = syscall.Errno(0x9) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x9e) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOM = syscall.Errno(0x21) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x85) + EISDIR = syscall.Errno(0x15) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENFILE = syscall.Errno(0x17) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x86) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x50) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPIPE = syscall.Errno(0x20) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + ERANGE = syscall.Errno(0x22) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + EROFS = syscall.Errno(0x1e) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + ETXTBSY = syscall.Errno(0x1a) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x16) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errors = [...]string{ + 1: "operation not permitted", + 2: "no such file or directory", + 3: "no such process", + 4: "interrupted system call", + 5: "input/output error", + 6: "no such device or address", + 7: "argument list too long", + 8: "exec format error", + 9: "bad file descriptor", + 10: "no child processes", + 11: "resource temporarily unavailable", + 12: "cannot allocate memory", + 13: "permission denied", + 14: "bad address", + 15: "block device required", + 16: "device or resource busy", + 17: "file exists", + 18: "invalid cross-device link", + 19: "no such device", + 20: "not a directory", + 21: "is a directory", + 22: "invalid argument", + 23: "too many open files in system", + 24: "too many open files", + 25: "inappropriate ioctl for device", + 26: "text file busy", + 27: "file too large", + 28: "no space left on device", + 29: "illegal seek", + 30: "read-only file system", + 31: "too many links", + 32: "broken pipe", + 33: "numerical argument out of domain", + 34: "numerical result out of range", + 35: "no message of desired type", + 36: "identifier removed", + 37: "channel number out of range", + 38: "level 2 not synchronized", + 39: "level 3 halted", + 40: "level 3 reset", + 41: "link number out of range", + 42: "protocol driver not attached", + 43: "no CSI structure available", + 44: "level 2 halted", + 45: "resource deadlock avoided", + 46: "no locks available", + 50: "invalid exchange", + 51: "invalid request descriptor", + 52: "exchange full", + 53: "no anode", + 54: "invalid request code", + 55: "invalid slot", + 56: "file locking deadlock error", + 59: "bad font file format", + 60: "device not a stream", + 61: "no data available", + 62: "timer expired", + 63: "out of streams resources", + 64: "machine is not on the network", + 65: "package not installed", + 66: "object is remote", + 67: "link has been severed", + 68: "advertise error", + 69: "srmount error", + 70: "communication error on send", + 71: "protocol error", + 73: "RFS specific error", + 74: "multihop attempted", + 77: "bad message", + 78: "file name too long", + 79: "value too large for defined data type", + 80: "name not unique on network", + 81: "file descriptor in bad state", + 82: "remote address changed", + 83: "can not access a needed shared library", + 84: "accessing a corrupted shared library", + 85: ".lib section in a.out corrupted", + 86: "attempting to link in too many shared libraries", + 87: "cannot exec a shared library directly", + 88: "invalid or incomplete multibyte or wide character", + 89: "function not implemented", + 90: "too many levels of symbolic links", + 91: "interrupted system call should be restarted", + 92: "streams pipe error", + 93: "directory not empty", + 94: "too many users", + 95: "socket operation on non-socket", + 96: "destination address required", + 97: "message too long", + 98: "protocol wrong type for socket", + 99: "protocol not available", + 120: "protocol not supported", + 121: "socket type not supported", + 122: "operation not supported", + 123: "protocol family not supported", + 124: "address family not supported by protocol", + 125: "address already in use", + 126: "cannot assign requested address", + 127: "network is down", + 128: "network is unreachable", + 129: "network dropped connection on reset", + 130: "software caused connection abort", + 131: "connection reset by peer", + 132: "no buffer space available", + 133: "transport endpoint is already connected", + 134: "transport endpoint is not connected", + 135: "structure needs cleaning", + 137: "not a XENIX named type file", + 138: "no XENIX semaphores available", + 139: "is a named type file", + 140: "remote I/O error", + 141: "unknown error 141", + 142: "unknown error 142", + 143: "cannot send after transport endpoint shutdown", + 144: "too many references: cannot splice", + 145: "connection timed out", + 146: "connection refused", + 147: "host is down", + 148: "no route to host", + 149: "operation already in progress", + 150: "operation now in progress", + 151: "stale file handle", + 158: "operation canceled", + 159: "no medium found", + 160: "wrong medium type", + 161: "required key not available", + 162: "key has expired", + 163: "key has been revoked", + 164: "key was rejected by service", + 165: "owner died", + 166: "state not recoverable", + 167: "operation not possible due to RF-kill", + 168: "memory page has hardware error", + 1133: "disk quota exceeded", +} + +// Signal table +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "EMT trap", + 8: "floating point exception", + 9: "killed", + 10: "bus error", + 11: "segmentation fault", + 12: "bad system call", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", + 16: "user defined signal 1", + 17: "user defined signal 2", + 18: "child exited", + 19: "power failure", + 20: "window changed", + 21: "urgent I/O condition", + 22: "I/O possible", + 23: "stopped (signal)", + 24: "stopped", + 25: "continued", + 26: "stopped (tty input)", + 27: "stopped (tty output)", + 28: "virtual timer expired", + 29: "profiling timer expired", + 30: "CPU time limit exceeded", + 31: "file size limit exceeded", +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 8b42ca2f..4e419395 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -197,6 +197,25 @@ const ( BS0 = 0x0 BS1 = 0x8000 BSDLY = 0x8000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0xff CBAUDEX = 0x0 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index e8d12b5d..407e6b53 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -196,6 +196,25 @@ const ( BS0 = 0x0 BS1 = 0x8000 BSDLY = 0x8000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0xff CBAUDEX = 0x0 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 329f25e7..40c9b879 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -201,6 +201,25 @@ const ( BS0 = 0x0 BS1 = 0x2000 BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go new file mode 100644 index 00000000..62680ed8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -0,0 +1,2096 @@ +// mkerrors.sh -m64 +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build sparc64,linux + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + B0 = 0x0 + B1000000 = 0x100c + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x100d + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100e + B153600 = 0x1006 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100f + B230400 = 0x1003 + B2400 = 0xb + B300 = 0x7 + B307200 = 0x1007 + B38400 = 0xf + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x100a + B57600 = 0x1001 + B576000 = 0x100b + B600 = 0x8 + B614400 = 0x1008 + B75 = 0x2 + B76800 = 0x1005 + B921600 = 0x1009 + B9600 = 0xd + BOTHER = 0x1000 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CFLUSH = 0xf + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EMT_TAGOVF = 0x1 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x400000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x400000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x4000 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLDLY = 0x100 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS = 0xc + PTRACE_GETREGS64 = 0x16 + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGS64 = 0x17 + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SPARC_DETACH = 0xb + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x6 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x10 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x18 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x5f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNSID = 0x58 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x14 + RTM_NR_MSGTYPES = 0x50 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x11 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPNS = 0x21 + SCM_WIFI_STATUS = 0x25 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SOCK_CLOEXEC = 0x400000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_FILTER = 0x1a + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUSY_POLL = 0x30 + SO_CNX_ADVICE = 0x37 + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x33 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_NOFCS = 0x27 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVTIMEO = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x25 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + VDISCARD = 0xd + VDSUSP = 0xb + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WRAP = 0x20000 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XCASE = 0x4 + XTABS = 0x1800 + __TIOCFLUSH = 0x80047410 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EADV = syscall.Errno(0x53) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x25) + EBADE = syscall.Errno(0x66) + EBADF = syscall.Errno(0x9) + EBADFD = syscall.Errno(0x5d) + EBADMSG = syscall.Errno(0x4c) + EBADR = syscall.Errno(0x67) + EBADRQC = syscall.Errno(0x6a) + EBADSLT = syscall.Errno(0x6b) + EBFONT = syscall.Errno(0x6d) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x7f) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x5e) + ECOMM = syscall.Errno(0x55) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0x4e) + EDEADLOCK = syscall.Errno(0x6c) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOTDOT = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EHWPOISON = syscall.Errno(0x87) + EIDRM = syscall.Errno(0x4d) + EILSEQ = syscall.Errno(0x7a) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x81) + EKEYREJECTED = syscall.Errno(0x83) + EKEYREVOKED = syscall.Errno(0x82) + EL2HLT = syscall.Errno(0x65) + EL2NSYNC = syscall.Errno(0x5f) + EL3HLT = syscall.Errno(0x60) + EL3RST = syscall.Errno(0x61) + ELIBACC = syscall.Errno(0x72) + ELIBBAD = syscall.Errno(0x70) + ELIBEXEC = syscall.Errno(0x6e) + ELIBMAX = syscall.Errno(0x7b) + ELIBSCN = syscall.Errno(0x7c) + ELNRNG = syscall.Errno(0x62) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x7e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x57) + ENAMETOOLONG = syscall.Errno(0x3f) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOANO = syscall.Errno(0x69) + ENOBUFS = syscall.Errno(0x37) + ENOCSI = syscall.Errno(0x64) + ENODATA = syscall.Errno(0x6f) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOKEY = syscall.Errno(0x80) + ENOLCK = syscall.Errno(0x4f) + ENOLINK = syscall.Errno(0x52) + ENOMEDIUM = syscall.Errno(0x7d) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x4b) + ENONET = syscall.Errno(0x50) + ENOPKG = syscall.Errno(0x71) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x4a) + ENOSTR = syscall.Errno(0x48) + ENOSYS = syscall.Errno(0x5a) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x85) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x73) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x5c) + EOWNERDEAD = syscall.Errno(0x84) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROTO = syscall.Errno(0x56) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMCHG = syscall.Errno(0x59) + EREMOTE = syscall.Errno(0x47) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x74) + ERFKILL = syscall.Errno(0x86) + EROFS = syscall.Errno(0x1e) + ERREMOTE = syscall.Errno(0x51) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESRMNT = syscall.Errno(0x54) + ESTALE = syscall.Errno(0x46) + ESTRPIPE = syscall.Errno(0x5b) + ETIME = syscall.Errno(0x49) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x63) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) + EXFULL = syscall.Errno(0x68) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x1d) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errors = [...]string{ + 1: "operation not permitted", + 2: "no such file or directory", + 3: "no such process", + 4: "interrupted system call", + 5: "input/output error", + 6: "no such device or address", + 7: "argument list too long", + 8: "exec format error", + 9: "bad file descriptor", + 10: "no child processes", + 11: "resource temporarily unavailable", + 12: "cannot allocate memory", + 13: "permission denied", + 14: "bad address", + 15: "block device required", + 16: "device or resource busy", + 17: "file exists", + 18: "invalid cross-device link", + 19: "no such device", + 20: "not a directory", + 21: "is a directory", + 22: "invalid argument", + 23: "too many open files in system", + 24: "too many open files", + 25: "inappropriate ioctl for device", + 26: "text file busy", + 27: "file too large", + 28: "no space left on device", + 29: "illegal seek", + 30: "read-only file system", + 31: "too many links", + 32: "broken pipe", + 33: "numerical argument out of domain", + 34: "numerical result out of range", + 36: "operation now in progress", + 37: "operation already in progress", + 38: "socket operation on non-socket", + 39: "destination address required", + 40: "message too long", + 41: "protocol wrong type for socket", + 42: "protocol not available", + 43: "protocol not supported", + 44: "socket type not supported", + 45: "operation not supported", + 46: "protocol family not supported", + 47: "address family not supported by protocol", + 48: "address already in use", + 49: "cannot assign requested address", + 50: "network is down", + 51: "network is unreachable", + 52: "network dropped connection on reset", + 53: "software caused connection abort", + 54: "connection reset by peer", + 55: "no buffer space available", + 56: "transport endpoint is already connected", + 57: "transport endpoint is not connected", + 58: "cannot send after transport endpoint shutdown", + 59: "too many references: cannot splice", + 60: "connection timed out", + 61: "connection refused", + 62: "too many levels of symbolic links", + 63: "file name too long", + 64: "host is down", + 65: "no route to host", + 66: "directory not empty", + 67: "too many processes", + 68: "too many users", + 69: "disk quota exceeded", + 70: "stale file handle", + 71: "object is remote", + 72: "device not a stream", + 73: "timer expired", + 74: "out of streams resources", + 75: "no message of desired type", + 76: "bad message", + 77: "identifier removed", + 78: "resource deadlock avoided", + 79: "no locks available", + 80: "machine is not on the network", + 81: "unknown error 81", + 82: "link has been severed", + 83: "advertise error", + 84: "srmount error", + 85: "communication error on send", + 86: "protocol error", + 87: "multihop attempted", + 88: "RFS specific error", + 89: "remote address changed", + 90: "function not implemented", + 91: "streams pipe error", + 92: "value too large for defined data type", + 93: "file descriptor in bad state", + 94: "channel number out of range", + 95: "level 2 not synchronized", + 96: "level 3 halted", + 97: "level 3 reset", + 98: "link number out of range", + 99: "protocol driver not attached", + 100: "no CSI structure available", + 101: "level 2 halted", + 102: "invalid exchange", + 103: "invalid request descriptor", + 104: "exchange full", + 105: "no anode", + 106: "invalid request code", + 107: "invalid slot", + 108: "file locking deadlock error", + 109: "bad font file format", + 110: "cannot exec a shared library directly", + 111: "no data available", + 112: "accessing a corrupted shared library", + 113: "package not installed", + 114: "can not access a needed shared library", + 115: "name not unique on network", + 116: "interrupted system call should be restarted", + 117: "structure needs cleaning", + 118: "not a XENIX named type file", + 119: "no XENIX semaphores available", + 120: "is a named type file", + 121: "remote I/O error", + 122: "invalid or incomplete multibyte or wide character", + 123: "attempting to link in too many shared libraries", + 124: ".lib section in a.out corrupted", + 125: "no medium found", + 126: "wrong medium type", + 127: "operation canceled", + 128: "required key not available", + 129: "key has expired", + 130: "key has been revoked", + 131: "key was rejected by service", + 132: "owner died", + 133: "state not recoverable", + 134: "operation not possible due to RF-kill", + 135: "memory page has hardware error", +} + +// Signal table +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "EMT trap", + 8: "floating point exception", + 9: "killed", + 10: "bus error", + 11: "segmentation fault", + 12: "bad system call", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", + 16: "urgent I/O condition", + 17: "stopped (signal)", + 18: "stopped", + 19: "continued", + 20: "child exited", + 21: "stopped (tty input)", + 22: "stopped (tty output)", + 23: "I/O possible", + 24: "CPU time limit exceeded", + 25: "file size limit exceeded", + 26: "virtual timer expired", + 27: "profiling timer expired", + 28: "window changed", + 29: "resource lost", + 30: "user defined signal 1", + 31: "user defined signal 2", +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 1f7a7566..fa92387b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index b4e24fc0..b34d5c26 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 20bf33ce..2e5cb398 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index c7286db4..0d584cc0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go new file mode 100644 index 00000000..a18e0b17 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -0,0 +1,1829 @@ +// mksyscall.pl -b32 -arm syscall_linux.go syscall_linux_mipsx.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build mips,linux + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + use(unsafe.Pointer(_p0)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + use(unsafe.Pointer(_p2)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + use(unsafe.Pointer(_p0)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + use(unsafe.Pointer(_p0)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + Syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsgid(gid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsuid(uid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index b709ed2f..bf6f3603 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 5cb1c567..8c86bd70 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go new file mode 100644 index 00000000..645e00eb --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -0,0 +1,1829 @@ +// mksyscall.pl -l32 -arm syscall_linux.go syscall_linux_mipsx.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build mipsle,linux + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + use(unsafe.Pointer(_p0)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + use(unsafe.Pointer(_p2)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + use(unsafe.Pointer(_p0)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + use(unsafe.Pointer(_p0)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + Syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsgid(gid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsuid(uid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 873bb18f..f5d488b4 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index bf08835c..5183711e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index dbaa53b9..4c7ed08c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -64,7 +64,7 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -87,7 +87,7 @@ func readlinkat(dirfd int, path string, buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(oldpath) if err != nil { @@ -109,7 +109,7 @@ func symlinkat(oldpath string, newdirfd int, newpath string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func unlinkat(dirfd int, path string, flags int) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { @@ -572,6 +572,17 @@ func Getrusage(who int, rusage *Rusage) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Gettid() (tid int) { r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) tid = int(r0) @@ -762,8 +773,8 @@ func PivotRoot(newroot string, putold string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func prlimit(pid int, resource int, old *Rlimit, newlimit *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(newlimit)), 0, 0) +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go new file mode 100644 index 00000000..beb83e4f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -0,0 +1,1845 @@ +// mksyscall.pl syscall_linux.go syscall_linux_sparc64.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +// +build sparc64,linux + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + use(unsafe.Pointer(_p0)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + use(unsafe.Pointer(_p2)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate(size int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + use(unsafe.Pointer(_p0)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + use(unsafe.Pointer(_p0)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + Syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit() (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsgid(gid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setfsuid(uid int) (err error) { + _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + use(unsafe.Pointer(_p0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go new file mode 100644 index 00000000..0786867e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -0,0 +1,359 @@ +// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +// +build mips,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_LINUX_SYSCALLS = 4346 + SYS_O32_LINUX_SYSCALLS = 4346 + SYS_64_LINUX_SYSCALLS = 4305 + SYS_N32_LINUX_SYSCALLS = 4310 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go new file mode 100644 index 00000000..25d23170 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -0,0 +1,359 @@ +// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +// +build mipsle,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_LINUX_SYSCALLS = 4346 + SYS_O32_LINUX_SYSCALLS = 4346 + SYS_64_LINUX_SYSCALLS = 4305 + SYS_N32_LINUX_SYSCALLS = 4310 +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go new file mode 100644 index 00000000..46b5bee1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -0,0 +1,348 @@ +// mksysnum_linux.pl /usr/include/sparc64-linux-gnu/asm/unistd.h +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +// +build sparc64,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECV = 11 + SYS_CHDIR = 12 + SYS_CHOWN = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BRK = 17 + SYS_PERFCTR = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_CAPGET = 21 + SYS_CAPSET = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_VMSPLICE = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_SIGALTSTACK = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_STAT = 38 + SYS_SENDFILE = 39 + SYS_LSTAT = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_UMOUNT2 = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_MEMORY_ORDERING = 52 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_FSTAT = 62 + SYS_FSTAT64 = 63 + SYS_GETPAGESIZE = 64 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_MMAP = 71 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_VHANGUP = 76 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_SETHOSTNAME = 88 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_ACCEPT = 99 + SYS_GETPRIORITY = 100 + SYS_RT_SIGRETURN = 101 + SYS_RT_SIGACTION = 102 + SYS_RT_SIGPROCMASK = 103 + SYS_RT_SIGPENDING = 104 + SYS_RT_SIGTIMEDWAIT = 105 + SYS_RT_SIGQUEUEINFO = 106 + SYS_RT_SIGSUSPEND = 107 + SYS_SETRESUID = 108 + SYS_GETRESUID = 109 + SYS_SETRESGID = 110 + SYS_GETRESGID = 111 + SYS_RECVMSG = 113 + SYS_SENDMSG = 114 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_GETCWD = 119 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_RECVFROM = 125 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_TRUNCATE = 129 + SYS_FTRUNCATE = 130 + SYS_FLOCK = 131 + SYS_LSTAT64 = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_STAT64 = 139 + SYS_SENDFILE64 = 140 + SYS_GETPEERNAME = 141 + SYS_FUTEX = 142 + SYS_GETTID = 143 + SYS_GETRLIMIT = 144 + SYS_SETRLIMIT = 145 + SYS_PIVOT_ROOT = 146 + SYS_PRCTL = 147 + SYS_PCICONFIG_READ = 148 + SYS_PCICONFIG_WRITE = 149 + SYS_GETSOCKNAME = 150 + SYS_INOTIFY_INIT = 151 + SYS_INOTIFY_ADD_WATCH = 152 + SYS_POLL = 153 + SYS_GETDENTS64 = 154 + SYS_INOTIFY_RM_WATCH = 156 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UMOUNT = 159 + SYS_SCHED_SET_AFFINITY = 160 + SYS_SCHED_GET_AFFINITY = 161 + SYS_GETDOMAINNAME = 162 + SYS_SETDOMAINNAME = 163 + SYS_UTRAP_INSTALL = 164 + SYS_QUOTACTL = 165 + SYS_SET_TID_ADDRESS = 166 + SYS_MOUNT = 167 + SYS_USTAT = 168 + SYS_SETXATTR = 169 + SYS_LSETXATTR = 170 + SYS_FSETXATTR = 171 + SYS_GETXATTR = 172 + SYS_LGETXATTR = 173 + SYS_GETDENTS = 174 + SYS_SETSID = 175 + SYS_FCHDIR = 176 + SYS_FGETXATTR = 177 + SYS_LISTXATTR = 178 + SYS_LLISTXATTR = 179 + SYS_FLISTXATTR = 180 + SYS_REMOVEXATTR = 181 + SYS_LREMOVEXATTR = 182 + SYS_SIGPENDING = 183 + SYS_QUERY_MODULE = 184 + SYS_SETPGID = 185 + SYS_FREMOVEXATTR = 186 + SYS_TKILL = 187 + SYS_EXIT_GROUP = 188 + SYS_UNAME = 189 + SYS_INIT_MODULE = 190 + SYS_PERSONALITY = 191 + SYS_REMAP_FILE_PAGES = 192 + SYS_EPOLL_CREATE = 193 + SYS_EPOLL_CTL = 194 + SYS_EPOLL_WAIT = 195 + SYS_IOPRIO_SET = 196 + SYS_GETPPID = 197 + SYS_SIGACTION = 198 + SYS_SGETMASK = 199 + SYS_SSETMASK = 200 + SYS_SIGSUSPEND = 201 + SYS_OLDLSTAT = 202 + SYS_USELIB = 203 + SYS_READDIR = 204 + SYS_READAHEAD = 205 + SYS_SOCKETCALL = 206 + SYS_SYSLOG = 207 + SYS_LOOKUP_DCOOKIE = 208 + SYS_FADVISE64 = 209 + SYS_FADVISE64_64 = 210 + SYS_TGKILL = 211 + SYS_WAITPID = 212 + SYS_SWAPOFF = 213 + SYS_SYSINFO = 214 + SYS_IPC = 215 + SYS_SIGRETURN = 216 + SYS_CLONE = 217 + SYS_IOPRIO_GET = 218 + SYS_ADJTIMEX = 219 + SYS_SIGPROCMASK = 220 + SYS_CREATE_MODULE = 221 + SYS_DELETE_MODULE = 222 + SYS_GET_KERNEL_SYMS = 223 + SYS_GETPGID = 224 + SYS_BDFLUSH = 225 + SYS_SYSFS = 226 + SYS_AFS_SYSCALL = 227 + SYS_SETFSUID = 228 + SYS_SETFSGID = 229 + SYS__NEWSELECT = 230 + SYS_SPLICE = 232 + SYS_STIME = 233 + SYS_STATFS64 = 234 + SYS_FSTATFS64 = 235 + SYS__LLSEEK = 236 + SYS_MLOCK = 237 + SYS_MUNLOCK = 238 + SYS_MLOCKALL = 239 + SYS_MUNLOCKALL = 240 + SYS_SCHED_SETPARAM = 241 + SYS_SCHED_GETPARAM = 242 + SYS_SCHED_SETSCHEDULER = 243 + SYS_SCHED_GETSCHEDULER = 244 + SYS_SCHED_YIELD = 245 + SYS_SCHED_GET_PRIORITY_MAX = 246 + SYS_SCHED_GET_PRIORITY_MIN = 247 + SYS_SCHED_RR_GET_INTERVAL = 248 + SYS_NANOSLEEP = 249 + SYS_MREMAP = 250 + SYS__SYSCTL = 251 + SYS_GETSID = 252 + SYS_FDATASYNC = 253 + SYS_NFSSERVCTL = 254 + SYS_SYNC_FILE_RANGE = 255 + SYS_CLOCK_SETTIME = 256 + SYS_CLOCK_GETTIME = 257 + SYS_CLOCK_GETRES = 258 + SYS_CLOCK_NANOSLEEP = 259 + SYS_SCHED_GETAFFINITY = 260 + SYS_SCHED_SETAFFINITY = 261 + SYS_TIMER_SETTIME = 262 + SYS_TIMER_GETTIME = 263 + SYS_TIMER_GETOVERRUN = 264 + SYS_TIMER_DELETE = 265 + SYS_TIMER_CREATE = 266 + SYS_IO_SETUP = 268 + SYS_IO_DESTROY = 269 + SYS_IO_SUBMIT = 270 + SYS_IO_CANCEL = 271 + SYS_IO_GETEVENTS = 272 + SYS_MQ_OPEN = 273 + SYS_MQ_UNLINK = 274 + SYS_MQ_TIMEDSEND = 275 + SYS_MQ_TIMEDRECEIVE = 276 + SYS_MQ_NOTIFY = 277 + SYS_MQ_GETSETATTR = 278 + SYS_WAITID = 279 + SYS_TEE = 280 + SYS_ADD_KEY = 281 + SYS_REQUEST_KEY = 282 + SYS_KEYCTL = 283 + SYS_OPENAT = 284 + SYS_MKDIRAT = 285 + SYS_MKNODAT = 286 + SYS_FCHOWNAT = 287 + SYS_FUTIMESAT = 288 + SYS_FSTATAT64 = 289 + SYS_UNLINKAT = 290 + SYS_RENAMEAT = 291 + SYS_LINKAT = 292 + SYS_SYMLINKAT = 293 + SYS_READLINKAT = 294 + SYS_FCHMODAT = 295 + SYS_FACCESSAT = 296 + SYS_PSELECT6 = 297 + SYS_PPOLL = 298 + SYS_UNSHARE = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_GET_ROBUST_LIST = 301 + SYS_MIGRATE_PAGES = 302 + SYS_MBIND = 303 + SYS_GET_MEMPOLICY = 304 + SYS_SET_MEMPOLICY = 305 + SYS_KEXEC_LOAD = 306 + SYS_MOVE_PAGES = 307 + SYS_GETCPU = 308 + SYS_EPOLL_PWAIT = 309 + SYS_UTIMENSAT = 310 + SYS_SIGNALFD = 311 + SYS_TIMERFD_CREATE = 312 + SYS_EVENTFD = 313 + SYS_FALLOCATE = 314 + SYS_TIMERFD_SETTIME = 315 + SYS_TIMERFD_GETTIME = 316 + SYS_SIGNALFD4 = 317 + SYS_EVENTFD2 = 318 + SYS_EPOLL_CREATE1 = 319 + SYS_DUP3 = 320 + SYS_PIPE2 = 321 + SYS_INOTIFY_INIT1 = 322 + SYS_ACCEPT4 = 323 + SYS_PREADV = 324 + SYS_PWRITEV = 325 + SYS_RT_TGSIGQUEUEINFO = 326 + SYS_PERF_EVENT_OPEN = 327 + SYS_RECVMMSG = 328 + SYS_FANOTIFY_INIT = 329 + SYS_FANOTIFY_MARK = 330 + SYS_PRLIMIT64 = 331 + SYS_NAME_TO_HANDLE_AT = 332 + SYS_OPEN_BY_HANDLE_AT = 333 + SYS_CLOCK_ADJTIME = 334 + SYS_SYNCFS = 335 + SYS_SENDMMSG = 336 + SYS_SETNS = 337 + SYS_PROCESS_VM_READV = 338 + SYS_PROCESS_VM_WRITEV = 339 + SYS_KERN_FEATURES = 340 + SYS_KCMP = 341 + SYS_FINIT_MODULE = 342 + SYS_SCHED_SETATTR = 343 + SYS_SCHED_GETATTR = 344 + SYS_RENAMEAT2 = 345 + SYS_SECCOMP = 346 + SYS_GETRANDOM = 347 + SYS_MEMFD_CREATE = 348 + SYS_BPF = 349 + SYS_EXECVEAT = 350 + SYS_MEMBARRIER = 351 + SYS_USERFAULTFD = 352 + SYS_BIND = 353 + SYS_LISTEN = 354 + SYS_SETSOCKOPT = 355 + SYS_MLOCK2 = 356 + SYS_COPY_FILE_RANGE = 357 + SYS_PREADV2 = 358 + SYS_PWRITEV2 = 359 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index f3ddf534..a3631053 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -203,6 +203,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -326,6 +333,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index a923bef3..0573e6cd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -205,6 +205,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -330,6 +337,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index 817ac9c2..0578b539 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -1,6 +1,6 @@ // +build arm,linux // Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go +// cgo -godefs types_linux.go | go run mkpost.go package unix @@ -155,6 +155,15 @@ type Flock_t struct { Pad_cgo_1 [4]byte } +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + type RawSockaddrInet4 struct { Family uint16 Port uint16 @@ -198,6 +207,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -321,6 +337,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index e786addf..808e0466 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -206,6 +206,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -331,6 +338,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go new file mode 100644 index 00000000..2eaff573 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -0,0 +1,642 @@ +// +build mips,linux +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go | go run mkpost.go + +package unix + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + Pad_cgo_0 [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + Pad_cgo_1 [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x1d + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [109]uint32 + U_tsize uint32 + U_dsize uint32 + U_ssize uint32 + Start_code uint32 + Start_data uint32 + Start_stack uint32 + Signal int32 + U_ar0 *byte + Magic uint32 + U_comm [32]int8 +} + +type ptracePsw struct { +} + +type ptraceFpregs struct { +} + +type ptracePer struct { +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]int8 +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLRDHUP = 0x2000 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type Sigset_t struct { + X__val [32]uint32 +} + +const _SC_PAGESIZE = 0x1e + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index b29894de..73e4b76c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -206,6 +206,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -330,6 +337,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index d9af71b6..479ca3e1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -206,6 +206,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -330,6 +337,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go new file mode 100644 index 00000000..7617a69d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -0,0 +1,642 @@ +// +build mipsle,linux +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go | go run mkpost.go + +package unix + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + Pad_cgo_0 [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + Pad_cgo_1 [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x2a + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [109]uint32 + U_tsize uint32 + U_dsize uint32 + U_ssize uint32 + Start_code uint32 + Start_data uint32 + Start_stack uint32 + Signal int32 + U_ar0 *byte + Magic uint32 + U_comm [32]int8 +} + +type ptracePsw struct { +} + +type ptraceFpregs struct { +} + +type ptracePer struct { +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]int8 +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLRDHUP = 0x2000 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type Sigset_t struct { + X__val [32]uint32 +} + +const _SC_PAGESIZE = 0x1e + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 4218170a..2db548b9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -207,6 +207,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -332,6 +339,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 7db4c78c..4bfdcc0a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -207,6 +207,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -332,6 +339,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index 76ee57cb..435cd792 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -206,6 +206,13 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -330,6 +337,7 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 SizeofLinger = 0x8 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go new file mode 100644 index 00000000..439f9691 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -0,0 +1,648 @@ +// +build sparc64,linux +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go | go run mkpost.go + +package unix + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + X__pad1 uint16 + Pad_cgo_0 [6]byte + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad2 uint16 + Pad_cgo_1 [6]byte + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__glibc_reserved4 uint64 + X__glibc_reserved5 uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + X__glibc_reserved int16 + Pad_cgo_1 [2]byte +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrCAN struct { + Family uint16 + Pad_cgo_0 [2]byte + Ifindex int32 + Addr [8]byte +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrCAN = 0x10 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x2a + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [16]uint64 + Tstate uint64 + Tpc uint64 + Tnpc uint64 + Y uint32 + Magic uint32 +} + +type ptracePsw struct { +} + +type ptraceFpregs struct { +} + +type ptracePer struct { +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]int8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + X_padFd int32 + Fd int32 + Pad int32 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLRDHUP = 0x800 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type Sigset_t struct { + X__val [16]uint64 +} + +const _SC_PAGESIZE = 0x1e + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/vendor/golang.org/x/sys/windows/registry/key.go b/vendor/golang.org/x/sys/windows/registry/key.go index f087ce5a..d0beb195 100644 --- a/vendor/golang.org/x/sys/windows/registry/key.go +++ b/vendor/golang.org/x/sys/windows/registry/key.go @@ -57,11 +57,12 @@ const ( // An application can use these keys as entry points to the registry. // Normally these keys are used in OpenKey to open new keys, // but they can also be used anywhere a Key is required. - CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT) - CURRENT_USER = Key(syscall.HKEY_CURRENT_USER) - LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE) - USERS = Key(syscall.HKEY_USERS) - CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG) + CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT) + CURRENT_USER = Key(syscall.HKEY_CURRENT_USER) + LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE) + USERS = Key(syscall.HKEY_USERS) + CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG) + PERFORMANCE_DATA = Key(syscall.HKEY_PERFORMANCE_DATA) ) // Close closes open key k. @@ -87,6 +88,27 @@ func OpenKey(k Key, path string, access uint32) (Key, error) { return Key(subkey), nil } +// OpenRemoteKey opens a predefined registry key on another +// computer pcname. The key to be opened is specified by k, but +// can only be one of LOCAL_MACHINE, PERFORMANCE_DATA or USERS. +// If pcname is "", OpenRemoteKey returns local computer key. +func OpenRemoteKey(pcname string, k Key) (Key, error) { + var err error + var p *uint16 + if pcname != "" { + p, err = syscall.UTF16PtrFromString(`\\` + pcname) + if err != nil { + return 0, err + } + } + var remoteKey syscall.Handle + err = regConnectRegistry(p, syscall.Handle(k), &remoteKey) + if err != nil { + return 0, err + } + return Key(remoteKey), nil +} + // ReadSubKeyNames returns the names of subkeys of key k. // The parameter n controls the number of returned names, // analogous to the way os.File.Readdirnames works. diff --git a/vendor/golang.org/x/sys/windows/registry/syscall.go b/vendor/golang.org/x/sys/windows/registry/syscall.go index a6525dac..e66643cb 100644 --- a/vendor/golang.org/x/sys/windows/registry/syscall.go +++ b/vendor/golang.org/x/sys/windows/registry/syscall.go @@ -27,5 +27,6 @@ func LoadRegLoadMUIString() error { //sys regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW //sys regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW //sys regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW +//sys regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) = advapi32.RegConnectRegistryW //sys expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW diff --git a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go index 0fa24c6d..ceebdd77 100644 --- a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go @@ -3,13 +3,39 @@ package registry import ( - "golang.org/x/sys/windows" "syscall" "unsafe" + + "golang.org/x/sys/windows" ) var _ unsafe.Pointer +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + var ( modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") modkernel32 = windows.NewLazySystemDLL("kernel32.dll") @@ -20,6 +46,7 @@ var ( procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") + procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") ) @@ -71,12 +98,20 @@ func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint return } +func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 3ff8f525..f10ebbf2 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -9,6 +9,31 @@ import ( var _ unsafe.Pointer +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + var ( modadvapi32 = NewLazySystemDLL("advapi32.dll") modkernel32 = NewLazySystemDLL("kernel32.dll") @@ -200,7 +225,7 @@ func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Hand handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -212,7 +237,7 @@ func DeregisterEventSource(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -224,7 +249,7 @@ func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrS r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -237,7 +262,7 @@ func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (ha handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -249,7 +274,7 @@ func CloseServiceHandle(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -262,7 +287,7 @@ func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -275,7 +300,7 @@ func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -287,7 +312,7 @@ func DeleteService(service Handle) (err error) { r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -299,7 +324,7 @@ func StartService(service Handle, numArgs uint32, argVectors **uint16) (err erro r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -311,7 +336,7 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -323,7 +348,7 @@ func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -335,7 +360,7 @@ func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -347,7 +372,7 @@ func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -359,7 +384,7 @@ func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, e r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -371,7 +396,7 @@ func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, buf r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -383,7 +408,7 @@ func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err err r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -395,7 +420,7 @@ func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -425,7 +450,7 @@ func _LoadLibrary(libname *uint16) (handle Handle, err error) { handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -447,7 +472,7 @@ func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -459,7 +484,7 @@ func FreeLibrary(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -481,7 +506,7 @@ func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { proc = uintptr(r0) if proc == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -494,7 +519,7 @@ func GetVersion() (ver uint32, err error) { ver = uint32(r0) if ver == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -511,7 +536,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -529,7 +554,7 @@ func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -545,7 +570,7 @@ func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -561,7 +586,7 @@ func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -574,7 +599,7 @@ func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence newlowoffset = uint32(r0) if newlowoffset == 0xffffffff { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -586,7 +611,7 @@ func CloseHandle(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -599,7 +624,7 @@ func GetStdHandle(stdhandle int) (handle Handle, err error) { handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -612,7 +637,7 @@ func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err erro handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -624,7 +649,7 @@ func findNextFile1(handle Handle, data *win32finddata1) (err error) { r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -636,7 +661,7 @@ func FindClose(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -648,7 +673,7 @@ func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (e r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -661,7 +686,7 @@ func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -673,7 +698,7 @@ func SetCurrentDirectory(path *uint16) (err error) { r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -685,7 +710,7 @@ func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -697,7 +722,7 @@ func RemoveDirectory(path *uint16) (err error) { r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -709,7 +734,7 @@ func DeleteFile(path *uint16) (err error) { r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -721,7 +746,7 @@ func MoveFile(from *uint16, to *uint16) (err error) { r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -733,7 +758,7 @@ func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -745,7 +770,7 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -757,7 +782,7 @@ func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -769,7 +794,7 @@ func SetEndOfFile(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -787,7 +812,7 @@ func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { rc = uint32(r0) if rc == 0xffffffff { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -800,7 +825,7 @@ func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, thre handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -812,7 +837,7 @@ func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overla r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -824,7 +849,7 @@ func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlap r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -836,7 +861,7 @@ func CancelIo(s Handle) (err error) { r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -848,7 +873,7 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -866,7 +891,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -885,7 +910,7 @@ func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -897,7 +922,7 @@ func TerminateProcess(handle Handle, exitcode uint32) (err error) { r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -909,7 +934,7 @@ func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -921,7 +946,7 @@ func GetStartupInfo(startupInfo *StartupInfo) (err error) { r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -934,7 +959,7 @@ func GetCurrentProcess() (pseudoHandle Handle, err error) { pseudoHandle = Handle(r0) if pseudoHandle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -946,7 +971,7 @@ func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -964,7 +989,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -977,7 +1002,7 @@ func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, event = uint32(r0) if event == 0xffffffff { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -990,7 +1015,7 @@ func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1002,7 +1027,7 @@ func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1015,7 +1040,7 @@ func GetFileType(filehandle Handle) (n uint32, err error) { n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1027,7 +1052,7 @@ func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16 r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1039,7 +1064,7 @@ func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1051,7 +1076,7 @@ func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1064,7 +1089,7 @@ func GetEnvironmentStrings() (envs *uint16, err error) { envs = (*uint16)(unsafe.Pointer(r0)) if envs == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1076,7 +1101,7 @@ func FreeEnvironmentStrings(envs *uint16) (err error) { r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1089,7 +1114,7 @@ func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32 n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1101,7 +1126,7 @@ func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1113,7 +1138,7 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1126,7 +1151,7 @@ func GetFileAttributes(name *uint16) (attrs uint32, err error) { attrs = uint32(r0) if attrs == INVALID_FILE_ATTRIBUTES { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1138,7 +1163,7 @@ func SetFileAttributes(name *uint16, attrs uint32) (err error) { r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1150,7 +1175,7 @@ func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1169,7 +1194,7 @@ func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) if argv == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1182,7 +1207,7 @@ func LocalFree(hmem Handle) (handle Handle, err error) { handle = Handle(r0) if handle != 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1194,7 +1219,7 @@ func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1206,7 +1231,7 @@ func FlushFileBuffers(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1219,7 +1244,7 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1232,7 +1257,7 @@ func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err er n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1245,7 +1270,7 @@ func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uin n = uint32(r0) if n == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1258,7 +1283,7 @@ func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxS handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1271,7 +1296,7 @@ func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow ui addr = uintptr(r0) if addr == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1283,7 +1308,7 @@ func UnmapViewOfFile(addr uintptr) (err error) { r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1295,7 +1320,7 @@ func FlushViewOfFile(addr uintptr, length uintptr) (err error) { r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1307,7 +1332,7 @@ func VirtualLock(addr uintptr, length uintptr) (err error) { r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1319,7 +1344,7 @@ func VirtualUnlock(addr uintptr, length uintptr) (err error) { r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1331,7 +1356,7 @@ func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1349,7 +1374,7 @@ func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1362,7 +1387,7 @@ func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { store = Handle(r0) if store == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1375,7 +1400,7 @@ func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptPr handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1388,7 +1413,7 @@ func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (contex context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1400,7 +1425,7 @@ func CertAddCertificateContextToStore(store Handle, certContext *CertContext, ad r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1412,7 +1437,7 @@ func CertCloseStore(store Handle, flags uint32) (err error) { r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1424,7 +1449,7 @@ func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, a r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1442,7 +1467,7 @@ func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, en context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1454,7 +1479,7 @@ func CertFreeCertificateContext(ctx *CertContext) (err error) { r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1466,7 +1491,7 @@ func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1524,7 +1549,7 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1536,7 +1561,7 @@ func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1548,7 +1573,7 @@ func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, input r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1561,7 +1586,7 @@ func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, er handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1573,7 +1598,7 @@ func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1585,7 +1610,7 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1597,7 +1622,7 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1609,7 +1634,7 @@ func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags u r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) if r1&0xff == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1621,7 +1646,7 @@ func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) if r1&0xff == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1640,7 +1665,7 @@ func CreateEvent(eventAttrs *syscall.SecurityAttributes, manualReset uint32, ini handle = Handle(r0) if handle == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1652,7 +1677,7 @@ func SetEvent(event Handle) (err error) { r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1672,7 +1697,7 @@ func WSACleanup() (err error) { r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1684,7 +1709,7 @@ func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbo r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1697,7 +1722,7 @@ func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { handle = Handle(r0) if handle == InvalidHandle { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1709,7 +1734,7 @@ func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32 r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1721,7 +1746,7 @@ func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int3 r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1733,7 +1758,7 @@ func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1745,7 +1770,7 @@ func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1757,7 +1782,7 @@ func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1769,7 +1794,7 @@ func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1781,7 +1806,7 @@ func listen(s Handle, backlog int32) (err error) { r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1793,7 +1818,7 @@ func shutdown(s Handle, how int32) (err error) { r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1805,7 +1830,7 @@ func Closesocket(s Handle) (err error) { r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1817,7 +1842,7 @@ func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32 r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1834,7 +1859,7 @@ func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32 r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1846,7 +1871,7 @@ func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1858,7 +1883,7 @@ func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *ui r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1870,7 +1895,7 @@ func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32 r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1892,7 +1917,7 @@ func _GetHostByName(name *byte) (h *Hostent, err error) { h = (*Hostent)(unsafe.Pointer(r0)) if h == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1919,7 +1944,7 @@ func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { s = (*Servent)(unsafe.Pointer(r0)) if s == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -1947,7 +1972,7 @@ func _GetProtoByName(name *byte) (p *Protoent, err error) { p = (*Protoent)(unsafe.Pointer(r0)) if p == nil { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2016,7 +2041,7 @@ func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2029,7 +2054,7 @@ func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferL n = int32(r0) if n == -1 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2056,7 +2081,7 @@ func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, nwrite = int32(r0) if nwrite == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2068,7 +2093,7 @@ func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) if r1&0xff == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2080,7 +2105,7 @@ func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err er r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2116,7 +2141,7 @@ func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint3 r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2128,7 +2153,7 @@ func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2140,7 +2165,7 @@ func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2152,7 +2177,7 @@ func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2170,7 +2195,7 @@ func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2182,7 +2207,7 @@ func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, s r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2194,7 +2219,7 @@ func FreeSid(sid *SID) (err error) { r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) if r1 != 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2212,7 +2237,7 @@ func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2224,7 +2249,7 @@ func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } @@ -2236,7 +2261,7 @@ func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) if r1 == 0 { if e1 != 0 { - err = error(e1) + err = errnoErr(e1) } else { err = syscall.EINVAL } diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt new file mode 100644 index 00000000..375e1adb --- /dev/null +++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt @@ -0,0 +1,107 @@ +This file was derived from +http://www.gutenberg.org/files/23864/23864-0.txt +after converting from Traditional Chinese to Simplified Chinese. +-------- +始计第一 + +å­™å­æ›°ï¼šå…µè€…,国之大事,死生之地,存亡之é“,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚ + +æ•…ç»ä¹‹ä»¥äº”事,校之以计,而索其情:一曰é“,二曰天,三曰地,四曰将,五曰法。 + +é“者,令民与上åŒæ„,å¯ä¸Žä¹‹æ­»ï¼Œå¯ä¸Žä¹‹ç”Ÿï¼Œè€Œä¸ç•å±ä¹Ÿï¼›å¤©è€…,阴阳ã€å¯’æš‘ã€æ—¶åˆ¶ä¹Ÿï¼›åœ°è€…,远近ã€é™©æ˜“ã€å¹¿ç‹­ã€æ­»ç”Ÿä¹Ÿï¼›å°†è€…,智ã€ä¿¡ã€ä»ã€å‹‡ã€ä¸¥ä¹Ÿï¼›æ³•è€…,曲制ã€å®˜é“ã€ä¸»ç”¨ä¹Ÿã€‚凡此五者,将莫ä¸é—»ï¼ŒçŸ¥ä¹‹è€…胜,ä¸çŸ¥è€…ä¸èƒœã€‚ + +故校之以计,而索其情,曰:主孰有é“?将孰有能?天地孰得?法令孰行?兵眾孰强?士å’孰练?èµç½šå­°æ˜Žï¼Ÿå¾ä»¥æ­¤çŸ¥èƒœè´ŸçŸ£ã€‚ + +å°†å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…胜,留之;将ä¸å¬å¾è®¡ï¼Œç”¨ä¹‹å¿…败,去之。 + +计利以å¬ï¼Œä¹ƒç‚ºä¹‹åŠ¿ï¼Œä»¥ä½å…¶å¤–。势者,因利而制æƒä¹Ÿã€‚ + +兵者,诡é“也。故能而示之ä¸èƒ½ï¼Œç”¨è€Œç¤ºä¹‹ä¸ç”¨ï¼Œè¿‘而示之远,远而示之近。利而诱之,乱而å–之,实而备之,强而é¿ä¹‹ï¼Œæ€’而挠之,å‘而骄之,佚而劳之,亲而离之,攻其无备,出其ä¸æ„。此兵家之胜,ä¸å¯å…ˆä¼ ä¹Ÿã€‚ + +夫未战而庙算胜者,得算多也;未战而庙算ä¸èƒœè€…,得算少也。多算胜,少算ä¸èƒœï¼Œè€Œå†µæ— ç®—乎ï¼å¾ä»¥æ­¤è§‚之,胜负è§çŸ£ã€‚ + +作战第二 + +å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œé©°è½¦åƒé§Ÿï¼Œé©è½¦åƒä¹˜ï¼Œå¸¦ç”²å万,åƒé‡Œé¦ˆç²®ã€‚则内外之费,宾客之用,胶漆之æ,车甲之奉,日费åƒé‡‘,然åŽå万之师举矣。 + +其用战也,贵胜,久则é’兵挫é”,攻城则力屈,久暴师则国用ä¸è¶³ã€‚夫é’兵挫é”,屈力殫货,则诸侯乘其弊而起,虽有智者,ä¸èƒ½å–„å…¶åŽçŸ£ã€‚故兵闻拙速,未ç¹å·§ä¹‹ä¹…也。夫兵久而国利者,未之有也。故ä¸å°½çŸ¥ç”¨å…µä¹‹å®³è€…,则ä¸èƒ½å°½çŸ¥ç”¨å…µä¹‹åˆ©ä¹Ÿã€‚ + +善用兵者,役ä¸å†ç±ï¼Œç²®ä¸ä¸‰è½½ï¼Œå–用於国,因粮於敌,故军食å¯è¶³ä¹Ÿã€‚国之贫於师者远输,远输则百姓贫;近於师者贵å–,贵å–则百姓竭,财竭则急於丘役。力屈财殫,中原内虚於家,百姓之费,å去其七;公家之费,破军罢马,甲胄矢弩,戟楯矛櫓,丘牛大车,å去其六。 + +故智将务食於敌,食敌一钟,当å¾äºŒåé’Ÿï¼›è秆一石,当å¾äºŒå石。故æ€æ•Œè€…,怒也;å–敌之利者,货也。故车战,得车å乘以上,èµå…¶å…ˆå¾—者,而更其旌旗。车æ‚而乘之,å’善而养之,是谓胜敌而益强。 + +故兵贵胜,ä¸è´µä¹…。故知兵之将,民之å¸å‘½ã€‚国家安å±ä¹‹ä¸»ä¹Ÿã€‚ + +谋攻第三 + +å­™å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œå…¨å›½ç‚ºä¸Šï¼Œç ´å›½æ¬¡ä¹‹ï¼›å…¨å†›ç‚ºä¸Šï¼Œç ´å†›æ¬¡ä¹‹ï¼›å…¨æ—…為上,破旅次之;全å’為上,破å’次之;全ä¼ç‚ºä¸Šï¼Œç ´ä¼æ¬¡ä¹‹ã€‚是故百战百胜,éžå–„之善者也;ä¸æˆ˜è€Œå±ˆäººä¹‹å…µï¼Œå–„之善者也。 + +故上兵ä¼è°‹ï¼Œå…¶æ¬¡ä¼äº¤ï¼Œå…¶æ¬¡ä¼å…µï¼Œå…¶ä¸‹æ”»åŸŽã€‚攻城之法,為ä¸å¾—已。修櫓轒轀,具器械,三月而åŽæˆï¼›è·é—‰ï¼Œåˆä¸‰æœˆè€ŒåŽå·²ã€‚å°†ä¸èƒœå…¶å¿¿ï¼Œè€Œèšé™„之,æ€å£«ä¸‰åˆ†ä¹‹ä¸€ï¼Œè€ŒåŸŽä¸æ‹”者,此攻之ç¾ä¹Ÿã€‚ + +故善用兵者,屈人之兵,而éžæˆ˜ä¹Ÿï¼Œæ‹”人之城而éžæ”»ä¹Ÿï¼Œæ¯äººä¹‹å›½è€Œéžä¹…也,必以全争於天下,故兵ä¸é¡¿è€Œåˆ©å¯å…¨ï¼Œæ­¤è°‹æ”»ä¹‹æ³•ä¹Ÿã€‚ + +故用兵之法,å则围之,五则攻之,å€åˆ™åˆ†ä¹‹ï¼Œæ•Œåˆ™èƒ½æˆ˜ä¹‹ï¼Œå°‘则能逃之,ä¸è‹¥åˆ™èƒ½é¿ä¹‹ã€‚æ•…å°æ•Œä¹‹åšï¼Œå¤§æ•Œä¹‹æ“’也。 + +夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故å›ä¹‹æ‰€ä»¥æ‚£æ–¼å†›è€…三:ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥è¿›è€Œè°“之进,ä¸çŸ¥å†›ä¹‹ä¸å¯ä»¥é€€è€Œè°“之退,是谓縻军;ä¸çŸ¥ä¸‰å†›ä¹‹äº‹ï¼Œè€ŒåŒä¸‰å†›ä¹‹æ”¿ï¼Œåˆ™å†›å£«æƒ‘矣;ä¸çŸ¥ä¸‰å†›ä¹‹æƒï¼Œè€ŒåŒä¸‰å†›ä¹‹ä»»ï¼Œåˆ™å†›å£«ç–‘矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。 + +故知胜有五:知å¯ä»¥æˆ˜ä¸Žä¸å¯ä»¥æˆ˜è€…,胜。识眾寡之用者,胜。上下åŒæ¬²è€…,胜。以虞待ä¸è™žè€…,胜。将能而å›ä¸å¾¡è€…,胜。此五者,知胜之é“也。 + +故曰:知己知彼,百战ä¸è²½ï¼›ä¸çŸ¥å½¼è€ŒçŸ¥å·±ï¼Œä¸€èƒœä¸€è´Ÿï¼›ä¸çŸ¥å½¼ä¸çŸ¥å·±ï¼Œæ¯æˆ˜å¿…败。 + +军形第四 + +å­™å­æ›°ï¼šæ˜”之善战者,先為ä¸å¯èƒœï¼Œä»¥å¾…敌之å¯èƒœã€‚ä¸å¯èƒœåœ¨å·±ï¼Œå¯èƒœåœ¨æ•Œã€‚故善战者,能為ä¸å¯èƒœï¼Œä¸èƒ½ä½¿æ•Œå¿…å¯èƒœã€‚故曰:胜å¯çŸ¥ï¼Œè€Œä¸å¯ç‚ºã€‚ + +ä¸å¯èƒœè€…,守也;å¯èƒœè€…,攻也。守则ä¸è¶³ï¼Œæ”»åˆ™æœ‰é¤˜ã€‚善守者,è—æ–¼ä¹åœ°ä¹‹ä¸‹ï¼Œå–„攻者,动於ä¹å¤©ä¹‹ä¸Šï¼Œæ•…能自ä¿è€Œå…¨èƒœä¹Ÿã€‚ + +è§èƒœä¸è¿‡çœ¾äººä¹‹æ‰€çŸ¥ï¼Œéžå–„之善者也;战胜而天下曰善,éžå–„之善者也。故举秋毫ä¸ç‚ºå¤šåŠ›ï¼Œè§æ—¥æœˆä¸ç‚ºæ˜Žç›®ï¼Œé—»é›·éœ†ä¸ç‚ºèªè€³ã€‚å¤ä¹‹å–„战者,胜於易胜者也。故善战者之胜也,无智å,无勇功,故其战胜ä¸å¿’。ä¸å¿’者,其所措必胜,胜已败者也。故善战者,先立於ä¸è´¥ä¹‹åœ°ï¼Œè€Œä¸å¤±æ•Œä¹‹è´¥ä¹Ÿã€‚是故胜兵先胜,而åŽæ±‚战,败兵先战而åŽæ±‚胜。善用兵者,修é“而ä¿æ³•ï¼Œæ•…能為胜败之政。 + +兵法:一曰度,二曰é‡ï¼Œä¸‰æ›°æ•°ï¼Œå››æ›°ç§°ï¼Œäº”曰胜。地生度,度生é‡ï¼Œé‡ç”Ÿæ•°ï¼Œæ•°ç”Ÿç§°ï¼Œç§°ç”Ÿèƒœã€‚故胜兵若以鎰称銖,败兵若以銖称鎰。胜者之战,若决积水於åƒä»žä¹‹è°¿è€…,形也。 + +兵势第五 + +å­™å­æ›°ï¼šå‡¡æ²»çœ¾å¦‚治寡,分数是也;斗眾如斗寡,形å是也;三军之眾,å¯ä½¿å¿…å—敌而无败者,奇正是也;兵之所加,如以碫投åµè€…,虚实是也。 + +凡战者,以正åˆï¼Œä»¥å¥‡èƒœã€‚故善出奇者,无穷如天地,ä¸ç«­å¦‚江海。终而å¤å§‹ï¼Œæ—¥æœˆæ˜¯ä¹Ÿã€‚死而復生,四时是也。声ä¸è¿‡äº”,五声之å˜ï¼Œä¸å¯èƒœå¬ä¹Ÿï¼›è‰²ä¸è¿‡äº”,五色之å˜ï¼Œä¸å¯èƒœè§‚也;味ä¸è¿‡äº”,五味之å˜ï¼Œä¸å¯èƒœå°ä¹Ÿï¼›æˆ˜åŠ¿ï¼Œä¸è¿‡å¥‡æ­£ï¼Œå¥‡æ­£ä¹‹å˜ï¼Œä¸å¯èƒœç©·ä¹Ÿã€‚奇正相生,如循环之无端,熟能穷之哉? + +激水之疾,至於漂石者,势也;鷙鸟之疾,至於æ¯æŠ˜è€…,节也。是故善战者,其势险,其节短。势如张弩,节如å‘机。 + +纷纷紜紜,斗乱而ä¸å¯ä¹±ä¹Ÿï¼›æµ‘浑沌沌,形圆而ä¸å¯è´¥ä¹Ÿã€‚乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必å–之。以利动之,以å’待之。 + +故善战者,求之於势,ä¸è´£æ–¼äººï¼›æ•…能择人而任势。任势者,其战人也,如转木石。木石之性,安则é™ï¼Œå±åˆ™åŠ¨ï¼Œæ–¹åˆ™æ­¢ï¼Œåœ†åˆ™è¡Œã€‚故善战人之势,如转圆石於åƒä»žä¹‹å±±è€…,势也。 + +虚实第六 + +å­™å­æ›°ï¼šå‡¡å…ˆå¤„战地而待敌者佚,åŽå¤„战地而趋战者劳。 + +故善战者,致人而ä¸è‡´æ–¼äººã€‚能使敌人自至者,利之也;能使敌人ä¸å¾—至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所ä¸æ„。行åƒé‡Œè€Œä¸åŠ³è€…,行於无人之地也;攻而必å–者,攻其所ä¸å®ˆä¹Ÿã€‚守而必固者,守其所ä¸æ”»ä¹Ÿã€‚ + +故善攻者,敌ä¸çŸ¥å…¶æ‰€å®ˆï¼›å–„守者,敌ä¸çŸ¥å…¶æ‰€æ”»ã€‚微乎微乎,至於无形;神乎神乎,至於无声,故能為敌之å¸å‘½ã€‚进而ä¸å¯å¾¡è€…,冲其虚也;退而ä¸å¯è¿½è€…,速而ä¸å¯åŠä¹Ÿã€‚故我欲战,敌虽高垒深沟,ä¸å¾—ä¸ä¸Žæˆ‘战者,攻其所必救也;我ä¸æ¬²æˆ˜ï¼Œè™½ç”»åœ°è€Œå®ˆä¹‹ï¼Œæ•Œä¸å¾—与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专為一,敌分為å,是以å攻其一也。则我眾敌寡,能以眾击寡者,则å¾ä¹‹æ‰€ä¸Žæˆ˜è€…约矣。å¾æ‰€ä¸Žæˆ˜ä¹‹åœ°ä¸å¯çŸ¥ï¼Œä¸å¯çŸ¥åˆ™æ•Œæ‰€å¤‡è€…多,敌所备者多,则å¾æ‰€ä¸Žæˆ˜è€…寡矣。故备å‰åˆ™åŽå¯¡ï¼Œå¤‡åŽåˆ™å‰å¯¡ï¼Œå¤‡å·¦åˆ™å³å¯¡ï¼Œå¤‡å³åˆ™å·¦å¯¡ï¼Œæ— æ‰€ä¸å¤‡ï¼Œåˆ™æ— æ‰€ä¸å¯¡ã€‚寡者,备人者也;眾者,使人备己者也。故知战之地,知战之日,则å¯åƒé‡Œè€Œä¼šæˆ˜ï¼›ä¸çŸ¥æˆ˜ä¹‹åœ°ï¼Œä¸çŸ¥æˆ˜æ—¥ï¼Œåˆ™å·¦ä¸èƒ½æ•‘å³ï¼Œå³ä¸èƒ½æ•‘左,å‰ä¸èƒ½æ•‘åŽï¼ŒåŽä¸èƒ½æ•‘å‰ï¼Œè€Œå†µè¿œè€…æ•°å里,近者数里乎ï¼ä»¥å¾åº¦ä¹‹ï¼Œè¶Šäººä¹‹å…µè™½å¤šï¼Œäº¦å¥šç›Šæ–¼èƒœå“‰ï¼æ•…曰:胜å¯ç‚ºä¹Ÿã€‚敌虽眾,å¯ä½¿æ— æ–—。故策之而知得失之计,候之而知动é™ä¹‹ç†ï¼Œå½¢ä¹‹è€ŒçŸ¥æ­»ç”Ÿä¹‹åœ°ï¼Œè§’之而知有餘ä¸è¶³ä¹‹å¤„。故形兵之æžï¼Œè‡³æ–¼æ— å½¢ã€‚无形则深间ä¸èƒ½çª¥ï¼Œæ™ºè€…ä¸èƒ½è°‹ã€‚因形而措胜於眾,眾ä¸èƒ½çŸ¥ã€‚人皆知我所以胜之形,而莫知å¾æ‰€ä»¥åˆ¶èƒœä¹‹å½¢ã€‚故其战胜ä¸å¾©ï¼Œè€Œåº”形於无穷。夫兵形象水,水之行é¿é«˜è€Œè¶‹ä¸‹ï¼Œå…µä¹‹å½¢é¿å®žè€Œå‡»è™šï¼›æ°´å› åœ°è€Œåˆ¶æµï¼Œå…µå› æ•Œè€Œåˆ¶èƒœã€‚故兵无常势,水无常形。能因敌å˜åŒ–而å–胜者,谓之神。故五行无常胜,四时无常ä½ï¼Œæ—¥æœ‰çŸ­é•¿ï¼Œæœˆæœ‰æ­»ç”Ÿã€‚ + +军争第七 + +å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èšçœ¾ï¼Œäº¤å’Œè€Œèˆï¼ŒèŽ«éš¾æ–¼å†›äº‰ã€‚军争之难者,以迂為直,以患為利。故迂其途,而诱之以利,åŽäººå‘,先人至,此知迂直之计者也。军争為利,军争為å±ã€‚举军而争利则ä¸åŠï¼Œå§”军而争利则輜é‡æ。是故æ²ç”²è€Œè¶‹ï¼Œæ—¥å¤œä¸å¤„,å€é“兼行,百裡而争利,则擒三将军,劲者先,疲者åŽï¼Œå…¶æ³•å一而至;五å里而争利,则蹶上将军,其法åŠè‡³ï¼›ä¸‰å里而争利,则三分之二至。是故军无輜é‡åˆ™äº¡ï¼Œæ— ç²®é£Ÿåˆ™äº¡ï¼Œæ— å§”积则亡。故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½è±«äº¤ï¼›ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼è€…,ä¸èƒ½å¾—地利。故兵以诈立,以利动,以分和為å˜è€…也。故其疾如风,其å¾å¦‚林,侵掠如ç«ï¼Œä¸åŠ¨å¦‚山,难知如阴,动如雷震。掠乡分眾,廓地分利,悬æƒè€ŒåŠ¨ã€‚先知迂直之计者胜,此军争之法也。《军政》曰:“言ä¸ç›¸é—»ï¼Œæ•…為之金鼓;视ä¸ç›¸è§ï¼Œæ•…為之旌旗。â€å¤«é‡‘鼓旌旗者,所以一民之耳目也。民既专一,则勇者ä¸å¾—独进,怯者ä¸å¾—独退,此用眾之法也。故夜战多金鼓,昼战多旌旗,所以å˜äººä¹‹è€³ç›®ä¹Ÿã€‚三军å¯å¤ºæ°”,将军å¯å¤ºå¿ƒã€‚是故æœæ°”é”,昼气惰,暮气归。善用兵者,é¿å…¶é”气,击其惰归,此治气者也。以治待乱,以é™å¾…哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治å˜è€…也。故用兵之法,高陵勿å‘,背丘勿逆,佯北勿从,é”å’勿攻,饵兵勿食,归师勿é,围师é—闕,穷寇勿迫,此用兵之法也。 + +ä¹å˜ç¬¬å…« + +å­™å­æ›°ï¼š 凡用兵之法,将å—命於å›ï¼Œåˆå†›èšåˆã€‚泛地无èˆï¼Œè¡¢åœ°åˆäº¤ï¼Œç»åœ°æ— ç•™ï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ï¼Œé€”有所ä¸ç”±ï¼Œå†›æœ‰æ‰€ä¸å‡»ï¼ŒåŸŽæœ‰æ‰€ä¸æ”»ï¼Œåœ°æœ‰æ‰€ä¸äº‰ï¼Œå›å‘½æœ‰æ‰€ä¸å—。故将通於ä¹å˜ä¹‹åˆ©è€…,知用兵矣;将ä¸é€šä¹å˜ä¹‹åˆ©ï¼Œè™½çŸ¥åœ°å½¢ï¼Œä¸èƒ½å¾—地之利矣;治兵ä¸çŸ¥ä¹å˜ä¹‹æœ¯ï¼Œè™½çŸ¥äº”利,ä¸èƒ½å¾—人之用矣。是故智者之虑,必æ‚於利害,æ‚於利而务å¯ä¿¡ä¹Ÿï¼Œæ‚於害而患å¯è§£ä¹Ÿã€‚是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无æƒå…¶ä¸æ¥ï¼Œæƒå¾æœ‰ä»¥å¾…之;无æƒå…¶ä¸æ”»ï¼Œæƒå¾æœ‰æ‰€ä¸å¯æ”»ä¹Ÿã€‚故将有五å±ï¼Œå¿…æ­»å¯æ€ï¼Œå¿…生å¯è™ï¼Œå¿¿é€Ÿå¯ä¾®ï¼Œå»‰æ´å¯è¾±ï¼Œçˆ±æ°‘å¯çƒ¦ã€‚凡此五者,将之过也,用兵之ç¾ä¹Ÿã€‚覆军æ€å°†ï¼Œå¿…以五å±ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚ + +è¡Œå†›ç¬¬ä¹ + +å­™å­æ›°ï¼šå‡¡å¤„军相敌,ç»å±±ä¾ç©€ï¼Œè§†ç”Ÿå¤„高,战隆无登,此处山之军也。ç»æ°´å¿…远水,客ç»æ°´è€Œæ¥ï¼Œå‹¿è¿Žä¹‹æ–¼æ°´å†…,令åŠæ¸¡è€Œå‡»ä¹‹åˆ©ï¼Œæ¬²æˆ˜è€…,无附於水而迎客,视生处高,无迎水æµï¼Œæ­¤å¤„水上之军也。ç»æ–¥æ³½ï¼Œå”¯äºŸåŽ»æ— ç•™ï¼Œè‹¥äº¤å†›æ–¼æ–¥æ³½ä¹‹ä¸­ï¼Œå¿…ä¾æ°´è‰è€ŒèƒŒçœ¾æ ‘,此处斥泽之军也。平陆处易,å³èƒŒé«˜ï¼Œå‰æ­»åŽç”Ÿï¼Œæ­¤å¤„平陆之军也。凡此四军之利,黄å¸ä¹‹æ‰€ä»¥èƒœå››å¸ä¹Ÿã€‚凡军好高而æ¶ä¸‹ï¼Œè´µé˜³è€Œè´±é˜´ï¼Œå…»ç”Ÿè€Œå¤„实,军无百疾,是谓必胜。丘陵堤防,必处其阳而å³èƒŒä¹‹ï¼Œæ­¤å…µä¹‹åˆ©ï¼Œåœ°ä¹‹åŠ©ä¹Ÿã€‚上雨水æµè‡³ï¼Œæ¬²æ¶‰è€…,待其定也。凡地有ç»æ¶§ã€å¤©äº•ã€å¤©ç‰¢ã€å¤©ç½—ã€å¤©é™·ã€å¤©éš™ï¼Œå¿…亟去之,勿近也。å¾è¿œä¹‹ï¼Œæ•Œè¿‘之;å¾è¿Žä¹‹ï¼Œæ•ŒèƒŒä¹‹ã€‚军æ—有险阻ã€æ½¢äº•ã€è’¹è‘­ã€å°æž—ã€è˜™è–ˆè€…,必谨覆索之,此ä¼å§¦ä¹‹æ‰€å¤„也。敌近而é™è€…,æƒå…¶é™©ä¹Ÿï¼›è¿œè€ŒæŒ‘战者,欲人之进也;其所居易者,利也;眾树动者,æ¥ä¹Ÿï¼›çœ¾è‰å¤šéšœè€…,疑也;鸟起者,ä¼ä¹Ÿï¼›å…½éª‡è€…,覆也;尘高而é”者,车æ¥ä¹Ÿï¼›å‘而广者,徒æ¥ä¹Ÿï¼›æ•£è€Œæ¡è¾¾è€…,樵採也;少而往æ¥è€…,è¥å†›ä¹Ÿï¼›è¾žå‘而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;åŠè¿›åŠé€€è€…,诱也;æ–而立者,饥也;汲而先饮者,渴也;è§åˆ©è€Œä¸è¿›è€…,劳也;鸟集者,虚也;夜呼者,æ也;军扰者,将ä¸é‡ä¹Ÿï¼›æ—Œæ——动者,乱也;å怒者,倦也;æ€é©¬è‚‰é£Ÿè€…,军无粮也;悬甀ä¸è¿”å…¶èˆè€…,穷寇也;谆谆翕翕,å¾ä¸Žäººè¨€è€…,失眾也;数èµè€…,窘也;数罚者,困也;先暴而åŽç•å…¶çœ¾è€…,ä¸ç²¾ä¹‹è‡³ä¹Ÿï¼›æ¥å§”谢者,欲休æ¯ä¹Ÿã€‚兵怒而相迎,久而ä¸åˆï¼Œåˆä¸ç›¸åŽ»ï¼Œå¿…谨察之。兵éžè´µç›Šå¤šä¹Ÿï¼ŒæƒŸæ— æ­¦è¿›ï¼Œè¶³ä»¥å¹¶åŠ›æ–™æ•Œå–人而已。夫惟无虑而易敌者,必擒於人。å’未亲而罚之,则ä¸æœï¼Œä¸æœåˆ™éš¾ç”¨ã€‚å’已亲附而罚ä¸è¡Œï¼Œåˆ™ä¸å¯ç”¨ã€‚æ•…åˆä¹‹ä»¥æ–‡ï¼Œé½ä¹‹ä»¥æ­¦ï¼Œæ˜¯è°“å¿…å–。令素行以教其民,则民æœï¼›ä»¤ç´ ä¸è¡Œä»¥æ•™å…¶æ°‘,则民ä¸æœã€‚令素行者,与眾相得也。 + +地形第å + +å­™å­æ›°ï¼šåœ°å½¢æœ‰é€šè€…ã€æœ‰æŽ›è€…ã€æœ‰æ”¯è€…ã€æœ‰éš˜è€…ã€æœ‰é™©è€…ã€æœ‰è¿œè€…。我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥ï¼Œæ›°é€šã€‚通形者,先居高阳,利粮é“,以战则利。å¯ä»¥å¾€ï¼Œéš¾ä»¥è¿”,曰掛。掛形者,敌无备,出而胜之,敌若有备,出而ä¸èƒœï¼Œéš¾ä»¥è¿”,ä¸åˆ©ã€‚我出而ä¸åˆ©ï¼Œå½¼å‡ºè€Œä¸åˆ©ï¼Œæ›°æ”¯ã€‚支形者,敌虽利我,我无出也,引而去之,令敌åŠå‡ºè€Œå‡»ä¹‹åˆ©ã€‚隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,ä¸ç›ˆè€Œä»Žä¹‹ã€‚险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势å‡éš¾ä»¥æŒ‘战,战而ä¸åˆ©ã€‚凡此六者,地之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡兵有走者ã€æœ‰é©°è€…ã€æœ‰é™·è€…ã€æœ‰å´©è€…ã€æœ‰ä¹±è€…ã€æœ‰åŒ—者。凡此六者,éžå¤©åœ°ä¹‹ç¾ï¼Œå°†ä¹‹è¿‡ä¹Ÿã€‚夫势å‡ï¼Œä»¥ä¸€å‡»å,曰走;å’强å弱,曰驰;å强å’弱,曰陷;大å怒而ä¸æœï¼Œé‡æ•Œæ‡Ÿè€Œè‡ªæˆ˜ï¼Œå°†ä¸çŸ¥å…¶èƒ½ï¼Œæ›°å´©ï¼›å°†å¼±ä¸ä¸¥ï¼Œæ•™é“ä¸æ˜Žï¼Œåå’无常,陈兵纵横,曰乱;将ä¸èƒ½æ–™æ•Œï¼Œä»¥å°‘åˆçœ¾ï¼Œä»¥å¼±å‡»å¼ºï¼Œå…µæ— é€‰é”‹ï¼Œæ›°åŒ—。凡此六者,败之é“也,将之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚夫地形者,兵之助也。料敌制胜,计险隘远近,上将之é“也。知此而用战者必胜,ä¸çŸ¥æ­¤è€Œç”¨æˆ˜è€…必败。故战é“必胜,主曰无战,必战å¯ä¹Ÿï¼›æˆ˜é“ä¸èƒœï¼Œä¸»æ›°å¿…战,无战å¯ä¹Ÿã€‚æ•…è¿›ä¸æ±‚å,退ä¸é¿ç½ªï¼Œå”¯æ°‘是ä¿ï¼Œè€Œåˆ©æ–¼ä¸»ï¼Œå›½ä¹‹å®ä¹Ÿã€‚视å’如婴儿,故å¯ä»¥ä¸Žä¹‹èµ´æ·±æºªï¼›è§†å’如爱å­ï¼Œæ•…å¯ä¸Žä¹‹ä¿±æ­»ã€‚厚而ä¸èƒ½ä½¿ï¼Œçˆ±è€Œä¸èƒ½ä»¤ï¼Œä¹±è€Œä¸èƒ½æ²»ï¼Œè­¬è‹¥éª„å­ï¼Œä¸å¯ç”¨ä¹Ÿã€‚知å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥æ•Œä¹‹ä¸å¯å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼Œè€Œä¸çŸ¥å¾å’之ä¸å¯ä»¥å‡»ï¼Œèƒœä¹‹åŠä¹Ÿï¼›çŸ¥æ•Œä¹‹å¯å‡»ï¼ŒçŸ¥å¾å’之å¯ä»¥å‡»ï¼Œè€Œä¸çŸ¥åœ°å½¢ä¹‹ä¸å¯ä»¥æˆ˜ï¼Œèƒœä¹‹åŠä¹Ÿã€‚故知兵者,动而ä¸è¿·ï¼Œä¸¾è€Œä¸ç©·ã€‚故曰:知彼知己,胜乃ä¸æ®†ï¼›çŸ¥å¤©çŸ¥åœ°ï¼Œèƒœä¹ƒå¯å…¨ã€‚ + +ä¹åœ°ç¬¬å一 + +å­™å­æ›°ï¼šç”¨å…µä¹‹æ³•ï¼Œæœ‰æ•£åœ°ï¼Œæœ‰è½»åœ°ï¼Œæœ‰äº‰åœ°ï¼Œæœ‰äº¤åœ°ï¼Œæœ‰è¡¢åœ°ï¼Œæœ‰é‡åœ°ï¼Œæœ‰æ³›åœ°ï¼Œæœ‰å›´åœ°ï¼Œæœ‰æ­»åœ°ã€‚诸侯自战其地者,為散地;入人之地ä¸æ·±è€…,為轻地;我得亦利,彼得亦利者,為争地;我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥æ¥è€…,為交地;诸侯之地三属,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為é‡åœ°ï¼›å±±æž—ã€é™©é˜»ã€æ²®æ³½ï¼Œå‡¡éš¾è¡Œä¹‹é“者,為泛地;所由入者隘,所从归者迂,彼寡å¯ä»¥å‡»å¾ä¹‹çœ¾è€…,為围地;疾战则存,ä¸ç–¾æˆ˜åˆ™äº¡è€…,為死地。是故散地则无战,轻地则无止,争地则无攻,交地则无ç»ï¼Œè¡¢åœ°åˆ™åˆäº¤ï¼Œé‡åœ°åˆ™æŽ ï¼Œæ³›åœ°åˆ™è¡Œï¼Œå›´åœ°åˆ™è°‹ï¼Œæ­»åœ°åˆ™æˆ˜ã€‚å¤ä¹‹å–„用兵者,能使敌人å‰åŽä¸ç›¸åŠï¼Œçœ¾å¯¡ä¸ç›¸æƒï¼Œè´µè´±ä¸ç›¸æ•‘,上下ä¸ç›¸æ”¶ï¼Œå’离而ä¸é›†ï¼Œå…µåˆè€Œä¸é½ã€‚åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œæ­¢ã€‚敢问敌眾而整将æ¥ï¼Œå¾…之若何曰:先夺其所爱则å¬çŸ£ã€‚兵之情主速,乘人之ä¸åŠã€‚ç”±ä¸è™žä¹‹é“,攻其所ä¸æˆ’也。凡為客之é“,深入则专。主人ä¸å…‹ï¼ŒæŽ æ–¼é¥¶é‡Žï¼Œä¸‰å†›è¶³é£Ÿã€‚谨养而勿劳,并气积力,è¿å…µè®¡è°‹ï¼Œç‚ºä¸å¯æµ‹ã€‚投之无所往,死且ä¸åŒ—。死焉ä¸å¾—,士人尽力。兵士甚陷则ä¸æƒ§ï¼Œæ— æ‰€å¾€åˆ™å›ºï¼Œæ·±å…¥åˆ™æ‹˜ï¼Œä¸å¾—已则斗。是故其兵ä¸ä¿®è€Œæˆ’,ä¸æ±‚而得,ä¸çº¦è€Œäº²ï¼Œä¸ä»¤è€Œä¿¡ï¼Œç¦ç¥¥åŽ»ç–‘,至死无所之。å¾å£«æ— é¤˜è´¢ï¼Œéžæ¶è´§ä¹Ÿï¼›æ— é¤˜å‘½ï¼Œéžæ¶å¯¿ä¹Ÿã€‚令å‘之日,士å’å者涕沾襟,åƒå§è€…涕交é¢ï¼ŒæŠ•ä¹‹æ— æ‰€å¾€ï¼Œè¯¸ã€åŠŒä¹‹å‹‡ä¹Ÿã€‚故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵å¯ä½¿å¦‚率然乎?曰å¯ã€‚夫å´äººä¸Žè¶Šäººç›¸æ¶ä¹Ÿï¼Œå½“å…¶åŒèˆŸè€ŒæµŽè€Œé‡é£Žï¼Œå…¶ç›¸æ•‘也如左å³æ‰‹ã€‚是故方马埋轮,未足æƒä¹Ÿï¼›é½å‹‡å¦‚一,政之é“也;刚柔皆得,地之ç†ä¹Ÿã€‚故善用兵者,æºæ‰‹è‹¥ä½¿ä¸€äººï¼Œä¸å¾—已也。将军之事,é™ä»¥å¹½ï¼Œæ­£ä»¥æ²»ï¼Œèƒ½æ„šå£«å’之耳目,使之无知;易其事,é©å…¶è°‹ï¼Œä½¿äººæ— è¯†ï¼›æ˜“其居,迂其途,使民ä¸å¾—虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而å‘其机。若驱群羊,驱而往,驱而æ¥ï¼ŒèŽ«çŸ¥æ‰€ä¹‹ã€‚èšä¸‰å†›ä¹‹çœ¾ï¼ŒæŠ•ä¹‹æ–¼é™©ï¼Œæ­¤è°“将军之事也。ä¹åœ°ä¹‹å˜ï¼Œå±ˆä¼¸ä¹‹åŠ›ï¼Œäººæƒ…之ç†ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡為客之é“,深则专,浅则散。去国越境而师者,ç»åœ°ä¹Ÿï¼›å››å½»è€…,衢地也;入深者,é‡åœ°ä¹Ÿï¼›å…¥æµ…者,轻地也;背固å‰éš˜è€…,围地也;无所往者,死地也。是故散地å¾å°†ä¸€å…¶å¿—,轻地å¾å°†ä½¿ä¹‹å±žï¼Œäº‰åœ°å¾å°†è¶‹å…¶åŽï¼Œäº¤åœ°å¾å°†è°¨å…¶å®ˆï¼Œäº¤åœ°å¾å°†å›ºå…¶ç»“,衢地å¾å°†è°¨å…¶æƒï¼Œé‡åœ°å¾å°†ç»§å…¶é£Ÿï¼Œæ³›åœ°å¾å°†è¿›å…¶é€”,围地å¾å°†å¡žå…¶é—•ï¼Œæ­»åœ°å¾å°†ç¤ºä¹‹ä»¥ä¸æ´»ã€‚故兵之情:围则御,ä¸å¾—已则斗,过则从。是故ä¸çŸ¥è¯¸ä¾¯ä¹‹è°‹è€…,ä¸èƒ½é¢„交;ä¸çŸ¥å±±æž—ã€é™©é˜»ã€æ²®æ³½ä¹‹å½¢è€…,ä¸èƒ½è¡Œå†›ï¼›ä¸ç”¨ä¹¡å¯¼ï¼Œä¸èƒ½å¾—地利。四五者,一ä¸çŸ¥ï¼Œéžéœ¸çŽ‹ä¹‹å…µä¹Ÿã€‚夫霸王之兵,ä¼å¤§å›½ï¼Œåˆ™å…¶çœ¾ä¸å¾—èšï¼›å¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶äº¤ä¸å¾—åˆã€‚是故ä¸äº‰å¤©ä¸‹ä¹‹äº¤ï¼Œä¸å…»å¤©ä¸‹ä¹‹æƒï¼Œä¿¡å·±ä¹‹ç§ï¼Œå¨åŠ æ–¼æ•Œï¼Œåˆ™å…¶åŸŽå¯æ‹”,其国å¯éš³ã€‚施无法之èµï¼Œæ‚¬æ— æ”¿ä¹‹ä»¤ã€‚犯三军之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然åŽå­˜ï¼Œé™·ä¹‹æ­»åœ°ç„¶åŽç”Ÿã€‚夫眾陷於害,然åŽèƒ½ç‚ºèƒœè´¥ã€‚故為兵之事,在顺详敌之æ„,并敌一å‘,åƒé‡Œæ€å°†ï¼Œæ˜¯è°“巧能æˆäº‹ã€‚是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开闔,必亟入之,先其所爱,微与之期,践墨éšæ•Œï¼Œä»¥å†³æˆ˜äº‹ã€‚是故始如处女,敌人开户;åŽå¦‚脱兔,敌ä¸åŠæ‹’。 + +ç«æ”»ç¬¬å二 + +å­™å­æ›°ï¼šå‡¡ç«æ”»æœ‰äº”:一曰ç«äººï¼ŒäºŒæ›°ç«ç§¯ï¼Œä¸‰æ›°ç«è¼œï¼Œå››æ›°ç«åº“,五曰ç«é˜Ÿã€‚è¡Œç«å¿…有因,因必素具。å‘ç«æœ‰æ—¶ï¼Œèµ·ç«æœ‰æ—¥ã€‚时者,天之燥也。日者,月在箕ã€å£ã€ç¿¼ã€è»«ä¹Ÿã€‚凡此四宿者,风起之日也。凡ç«æ”»ï¼Œå¿…因五ç«ä¹‹å˜è€Œåº”之:ç«å‘於内,则早应之於外;ç«å‘而其兵é™è€…,待而勿攻,æžå…¶ç«åŠ›ï¼Œå¯ä»Žè€Œä»Žä¹‹ï¼Œä¸å¯ä»Žåˆ™ä¸Šã€‚ç«å¯å‘於外,无待於内,以时å‘之,ç«å‘上风,无攻下风,昼风久,夜风止。凡军必知五ç«ä¹‹å˜ï¼Œä»¥æ•°å®ˆä¹‹ã€‚故以ç«ä½æ”»è€…明,以水ä½æ”»è€…强。水å¯ä»¥ç»ï¼Œä¸å¯ä»¥å¤ºã€‚夫战胜攻å–而ä¸æƒ°å…¶åŠŸè€…凶,命曰“费留â€ã€‚故曰:明主虑之,良将惰之,éžåˆ©ä¸åŠ¨ï¼Œéžå¾—ä¸ç”¨ï¼Œéžå±ä¸æˆ˜ã€‚主ä¸å¯ä»¥æ€’而兴师,将ä¸å¯ä»¥æ…而攻战。åˆæ–¼åˆ©è€ŒåŠ¨ï¼Œä¸åˆæ–¼åˆ©è€Œä¸Šã€‚怒å¯ä»¥å¤å–œï¼Œæ…å¯ä»¥å¤è¯´ï¼Œäº¡å›½ä¸å¯ä»¥å¤å­˜ï¼Œæ­»è€…ä¸å¯ä»¥å¤ç”Ÿã€‚故明主慎之,良将警之。此安国全军之é“也。 + +用间第å三 + +å­™å­æ›°ï¼š 凡兴师å万,出å¾åƒé‡Œï¼Œç™¾å§“之费,公家之奉,日费åƒé‡‘,内外骚动,怠於é“路,ä¸å¾—æ“事者,七å万家。相守数年,以争一日之胜,而爱爵禄百金,ä¸çŸ¥æ•Œä¹‹æƒ…者,ä¸ä»ä¹‹è‡³ä¹Ÿï¼Œéžæ°‘之将也,éžä¸»ä¹‹ä½ä¹Ÿï¼Œéžèƒœä¹‹ä¸»ä¹Ÿã€‚故明å›è´¤å°†æ‰€ä»¥åŠ¨è€Œèƒœäººï¼ŒæˆåŠŸå‡ºæ–¼çœ¾è€…,先知也。先知者,ä¸å¯å–於鬼神,ä¸å¯è±¡æ–¼äº‹ï¼Œä¸å¯éªŒæ–¼åº¦ï¼Œå¿…å–於人,知敌之情者也。故用间有五:有因间,有内间,有å间,有死间,有生间。五间俱起,莫知其é“,是谓神纪,人å›ä¹‹å®ä¹Ÿã€‚乡间者,因其乡人而用之;内间者,因其官人而用之;å间者,因其敌间而用之;死间者,為誑事於外,令å¾é—»çŸ¥ä¹‹è€Œä¼ æ–¼æ•Œé—´ä¹Ÿï¼›ç”Ÿé—´è€…,å报也。故三军之事,莫亲於间,èµèŽ«åŽšæ–¼é—´ï¼Œäº‹èŽ«å¯†æ–¼é—´ï¼Œéžåœ£è´¤ä¸èƒ½ç”¨é—´ï¼Œéžä»ä¹‰ä¸èƒ½ä½¿é—´ï¼Œéžå¾®å¦™ä¸èƒ½å¾—间之实。微哉微哉ï¼æ— æ‰€ä¸ç”¨é—´ä¹Ÿã€‚间事未å‘而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲æ€ï¼Œå¿…先知其守将ã€å·¦å³ã€è¬è€…ã€é—¨è€…ã€èˆäººä¹‹å§“å,令å¾é—´å¿…索知之。敌间之æ¥é—´æˆ‘者,因而利之,导而èˆä¹‹ï¼Œæ•…åé—´å¯å¾—而用也;因是而知之,故乡间ã€å†…é—´å¯å¾—而使也;因是而知之,故死间為誑事,å¯ä½¿å‘Šæ•Œï¼›å› æ˜¯è€ŒçŸ¥ä¹‹ï¼Œæ•…生间å¯ä½¿å¦‚期。五间之事,主必知之,知之必在於å间,故åé—´ä¸å¯ä¸åŽšä¹Ÿã€‚昔殷之兴也,伊挚在å¤ï¼›å‘¨ä¹‹å…´ä¹Ÿï¼Œå•ç‰™åœ¨æ®·ã€‚故明å›è´¤å°†ï¼Œèƒ½ä»¥ä¸Šæ™ºç‚ºé—´è€…,必æˆå¤§åŠŸã€‚此兵之è¦ï¼Œä¸‰å†›ä¹‹æ‰€æƒè€ŒåŠ¨ä¹Ÿã€‚ diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt new file mode 100644 index 00000000..1918c8fa --- /dev/null +++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt @@ -0,0 +1,106 @@ +This file was derived from +http://www.gutenberg.org/files/23864/23864-0.txt +-------- +©l­p²Ä¤@ + +®]¤l¤ê¡G§LªÌ¡A°ê¤§¤j¨Æ¡A¦º¥Í¤§¦a¡A¦s¤`¤§¹D¡A¤£¥i¤£¹î¤]¡C + +¬G¸g¤§¥H¤­¨Æ¡A®Õ¤§¥H­p¡A¦Ó¯Á¨ä±¡¡G¤@¤ê¹D¡A¤G¤ê¤Ñ¡A¤T¤ê¦a¡A¥|¤ê±N¡A¤­¤êªk¡C + +¹DªÌ¡A¥O¥Á»P¤W¦P·N¡A¥i»P¤§¦º¡A¥i»P¤§¥Í¡A¦Ó¤£¬È¦M¤]¡F¤ÑªÌ¡A³±¶§¡B´H´»¡B®É¨î¤]¡F¦aªÌ¡A»·ªñ¡BÀI©ö¡B¼s¯U¡B¦º¥Í¤]¡F±NªÌ¡A´¼¡B«H¡B¤¯¡B«i¡BÄY¤]¡FªkªÌ¡A¦±¨î¡B©x¹D¡B¥D¥Î¤]¡C¤Z¦¹¤­ªÌ¡A±N²ö¤£»D¡Aª¾¤§ªÌ³Ó¡A¤£ª¾ªÌ¤£³Ó¡C + +¬G®Õ¤§¥H­p¡A¦Ó¯Á¨ä±¡¡A¤ê¡G¥D±E¦³¹D¡H±N±E¦³¯à¡H¤Ñ¦a±E±o¡Hªk¥O±E¦æ¡H§L²³±E±j¡H¤h¨ò±E½m¡H½à»@±E©ú¡H§^¥H¦¹ª¾³Ó­t¨o¡C + +±NÅ¥§^­p¡A¥Î¤§¥²³Ó¡A¯d¤§¡F±N¤£Å¥§^­p¡A¥Î¤§¥²±Ñ¡A¥h¤§¡C + +­p§Q¥HÅ¥¡A¤D¬°¤§¶Õ¡A¥H¦õ¨ä¥~¡C¶ÕªÌ¡A¦]§Q¦Ó¨îÅv¤]¡C + +§LªÌ¡A¸Þ¹D¤]¡C¬G¯à¦Ó¥Ü¤§¤£¯à¡A¥Î¦Ó¥Ü¤§¤£¥Î¡Aªñ¦Ó¥Ü¤§»·¡A»·¦Ó¥Ü¤§ªñ¡C§Q¦Ó»¤¤§¡A¶Ã¦Ó¨ú¤§¡A¹ê¦Ó³Æ¤§¡A±j¦ÓÁפ§¡A«ã¦Ó¼¸¤§¡A¨õ¦Óź¤§¡A§H¦Ó³Ò¤§¡A¿Ë¦ÓÂ÷¤§¡A§ð¨äµL³Æ¡A¥X¨ä¤£·N¡C¦¹§L®a¤§³Ó¡A¤£¥i¥ý¶Ç¤]¡C + +¤Ò¥¼¾Ô¦Ó¼qºâ³ÓªÌ¡A±oºâ¦h¤]¡F¥¼¾Ô¦Ó¼qºâ¤£³ÓªÌ¡A±oºâ¤Ö¤]¡C¦hºâ³Ó¡A¤Öºâ¤£³Ó¡A¦ÓªpµLºâ¥G¡I§^¥H¦¹Æ[¤§¡A³Ó­t¨£¨o¡C + +§@¾Ô²Ä¤G + +®]¤l¤ê¡G¤Z¥Î§L¤§ªk¡A¹£¨®¤d¾o¡A­²¨®¤d­¼¡A±a¥Ò¤Q¸U¡A¤d¨½õX³¡C«h¤º¥~¤§¶O¡A»««È¤§¥Î¡A½¦º£¤§§÷¡A¨®¥Ò¤§©^¡A¤é¶O¤dª÷¡AµM«á¤Q¸U¤§®vÁ|¨o¡C + +¨ä¥Î¾Ô¤]¡A¶Q³Ó¡A¤[«h¶w§L®À¾U¡A§ð«°«h¤O©}¡A¤[¼É®v«h°ê¥Î¤£¨¬¡C¤Ò¶w§L®À¾U¡A©}¤Oéã³f¡A«h½Ñ«J­¼¨ä¹ú¦Ó°_¡AÁö¦³´¼ªÌ¡A¤£¯àµ½¨ä«á¨o¡C¬G§L»D©å³t¡A¥¼¸@¥©¤§¤[¤]¡C¤Ò§L¤[¦Ó°ê§QªÌ¡A¥¼¤§¦³¤]¡C¬G¤£ºÉª¾¥Î§L¤§®`ªÌ¡A«h¤£¯àºÉª¾¥Î§L¤§§Q¤]¡C + +µ½¥Î§LªÌ¡A§Ð¤£¦AÄy¡A³¤£¤T¸ü¡A¨ú¥Î©ó°ê¡A¦]³©ó¼Ä¡A¬G­x­¹¥i¨¬¤]¡C°ê¤§³h©ó®vªÌ»·¿é¡A»·¿é«h¦Ê©m³h¡Fªñ©ó®vªÌ¶Q½æ¡A¶Q½æ«h¦Ê©mºÜ¡A°]ºÜ«h«æ©ó¥C§Ð¡C¤O©}°]éã¡A¤¤­ì¤ºµê©ó®a¡A¦Ê©m¤§¶O¡A¤Q¥h¨ä¤C¡F¤½®a¤§¶O¡A¯}­x½}°¨¡A¥Ò­H¥Ú©¸¡A´uÝã¥ÙÃr¡A¥C¤û¤j¨®¡A¤Q¥h¨ä¤»¡C + +¬G´¼±N°È­¹©ó¼Ä¡A­¹¼Ä¤@Áé¡A·í§^¤G¤QÁé¡FÛmµz¤@¥Û¡A·í§^¤G¤Q¥Û¡C¬G±þ¼ÄªÌ¡A«ã¤]¡F¨ú¼Ä¤§§QªÌ¡A³f¤]¡C¬G¨®¾Ô¡A±o¨®¤Q­¼¥H¤W¡A½à¨ä¥ý±oªÌ¡A¦Ó§ó¨ä±ÜºX¡C¨®Âø¦Ó­¼¤§¡A¨òµ½¦Ó¾i¤§¡A¬O¿×³Ó¼Ä¦Ó¯q±j¡C + +¬G§L¶Q³Ó¡A¤£¶Q¤[¡C¬Gª¾§L¤§±N¡A¥Á¤§¥q©R¡C°ê®a¦w¦M¤§¥D¤]¡C + +¿Ñ§ð²Ä¤T + +®]¤l¤ê¡G¤Z¥Î§L¤§ªk¡A¥þ°ê¬°¤W¡A¯}°ê¦¸¤§¡F¥þ­x¬°¤W¡A¯}­x¦¸¤§¡F¥þ®È¬°¤W¡A¯}®È¦¸¤§¡F¥þ¨ò¬°¤W¡A¯}¨ò¦¸¤§¡F¥þ¥î¬°¤W¡A¯}¥î¦¸¤§¡C¬O¬G¦Ê¾Ô¦Ê³Ó¡A«Dµ½¤§µ½ªÌ¤]¡F¤£¾Ô¦Ó©}¤H¤§§L¡Aµ½¤§µ½ªÌ¤]¡C + +¬G¤W§L¥ï¿Ñ¡A¨ä¦¸¥ï¥æ¡A¨ä¦¸¥ï§L¡A¨ä¤U§ð«°¡C§ð«°¤§ªk¡A¬°¤£±o¤w¡C­×ÃróVîÁ¡A¨ã¾¹±ñ¡A¤T¤ë¦Ó«á¦¨¡F¶Zîð¡A¤S¤T¤ë¦Ó«á¤w¡C±N¤£³Ó¨ä©Á¡A¦ÓÃƪþ¤§¡A±þ¤h¤T¤À¤§¤@¡A¦Ó«°¤£©ÞªÌ¡A¦¹§ð¤§¨a¤]¡C + +¬Gµ½¥Î§LªÌ¡A©}¤H¤§§L¡A¦Ó«D¾Ô¤]¡A©Þ¤H¤§«°¦Ó«D§ð¤]¡A·´¤H¤§°ê¦Ó«D¤[¤]¡A¥²¥H¥þª§©ó¤Ñ¤U¡A¬G§L¤£¹y¦Ó§Q¥i¥þ¡A¦¹¿Ñ§ð¤§ªk¤]¡C + +¬G¥Î§L¤§ªk¡A¤Q«h³ò¤§¡A¤­«h§ð¤§¡A­¿«h¤À¤§¡A¼Ä«h¯à¾Ô¤§¡A¤Ö«h¯à°k¤§¡A¤£­Y«h¯àÁפ§¡C¬G¤p¼Ä¤§°í¡A¤j¼Ä¤§¾à¤]¡C + +¤Ò±NªÌ¡A°ê¤§»²¤]¡C»²©P«h°ê¥²±j¡A»²»Ø«h°ê¥²®z¡C¬G§g¤§©Ò¥H±w©ó­xªÌ¤T¡G¤£ª¾­x¤§¤£¥i¥H¶i¦Ó¿×¤§¶i¡A¤£ª¾­x¤§¤£¥i¥H°h¦Ó¿×¤§°h¡A¬O¿×íÝ­x¡F¤£ª¾¤T­x¤§¨Æ¡A¦Ó¦P¤T­x¤§¬F¡A«h­x¤h´b¨o¡F¤£ª¾¤T­x¤§Åv¡A¦Ó¦P¤T­x¤§¥ô¡A«h­x¤hºÃ¨o¡C¤T­x¬J´b¥BºÃ¡A«h½Ñ«J¤§Ãø¦Ü¨o¡C¬O¿×¶Ã­x¤Þ³Ó¡C + +¬Gª¾³Ó¦³¤­¡Gª¾¥i¥H¾Ô»P¤£¥i¥H¾ÔªÌ¡A³Ó¡CÃѲ³¹è¤§¥ÎªÌ¡A³Ó¡C¤W¤U¦P±ýªÌ¡A³Ó¡C¥H¸·«Ý¤£¸·ªÌ¡A³Ó¡C±N¯à¦Ó§g¤£±sªÌ¡A³Ó¡C¦¹¤­ªÌ¡Aª¾³Ó¤§¹D¤]¡C + +¬G¤ê¡Gª¾¤vª¾©¼¡A¦Ê¾Ô¤£¶M¡F¤£ª¾©¼¦Óª¾¤v¡A¤@³Ó¤@­t¡F¤£ª¾©¼¤£ª¾¤v¡A¨C¾Ô¥²±Ñ¡C + +­x§Î²Ä¥| + +®]¤l¤ê¡G©õ¤§µ½¾ÔªÌ¡A¥ý¬°¤£¥i³Ó¡A¥H«Ý¼Ä¤§¥i³Ó¡C¤£¥i³Ó¦b¤v¡A¥i³Ó¦b¼Ä¡C¬Gµ½¾ÔªÌ¡A¯à¬°¤£¥i³Ó¡A¤£¯à¨Ï¼Ä¥²¥i³Ó¡C¬G¤ê¡G³Ó¥iª¾¡A¦Ó¤£¥i¬°¡C + +¤£¥i³ÓªÌ¡A¦u¤]¡F¥i³ÓªÌ¡A§ð¤]¡C¦u«h¤£¨¬¡A§ð«h¦³¾l¡Cµ½¦uªÌ¡AÂéó¤E¦a¤§¤U¡Aµ½§ðªÌ¡A°Ê©ó¤E¤Ñ¤§¤W¡A¬G¯à¦Û«O¦Ó¥þ³Ó¤]¡C + +¨£³Ó¤£¹L²³¤H¤§©Òª¾¡A«Dµ½¤§µ½ªÌ¤]¡F¾Ô³Ó¦Ó¤Ñ¤U¤êµ½¡A«Dµ½¤§µ½ªÌ¤]¡C¬GÁ|¬î²@¤£¬°¦h¤O¡A¨£¤é¤ë¤£¬°©ú¥Ø¡A»D¹p¾^¤£¬°Áo¦Õ¡C¥j¤§µ½¾ÔªÌ¡A³Ó©ó©ö³ÓªÌ¤]¡C¬Gµ½¾ÔªÌ¤§³Ó¤]¡AµL´¼¦W¡AµL«i¥\¡A¬G¨ä¾Ô³Ó¤£ÊÖ¡C¤£Ê̡֪A¨ä©Ò±¹¥²³Ó¡A³Ó¤w±ÑªÌ¤]¡C¬Gµ½¾ÔªÌ¡A¥ý¥ß©ó¤£±Ñ¤§¦a¡A¦Ó¤£¥¢¼Ä¤§±Ñ¤]¡C¬O¬G³Ó§L¥ý³Ó¡A¦Ó«á¨D¾Ô¡A±Ñ§L¥ý¾Ô¦Ó«á¨D³Ó¡Cµ½¥Î§LªÌ¡A­×¹D¦Ó«Oªk¡A¬G¯à¬°³Ó±Ñ¤§¬F¡C + +§Lªk¡G¤@¤ê«×¡A¤G¤ê¶q¡A¤T¤ê¼Æ¡A¥|¤êºÙ¡A¤­¤ê³Ó¡C¦a¥Í«×¡A«×¥Í¶q¡A¶q¥Í¼Æ¡A¼Æ¥ÍºÙ¡AºÙ¥Í³Ó¡C¬G³Ó§L­Y¥HÂïºÙ»Ë¡A±Ñ§L­Y¥H»ËºÙÂï¡C³ÓªÌ¤§¾Ô¡A­Y¨M¿n¤ô©ó¤d¥Q¤§Áƪ̡A§Î¤]¡C + +§L¶Õ²Ä¤­ + +®]¤l¤ê¡G¤Zªv²³¦pªv¹è¡A¤À¼Æ¬O¤]¡F°«²³¦p°«¹è¡A§Î¦W¬O¤]¡F¤T­x¤§²³¡A¥i¨Ï¥²¨ü¼Ä¦ÓµL±ÑªÌ¡A©_¥¿¬O¤]¡F§L¤§©Ò¥[¡A¦p¥Hâñ§ë§ZªÌ¡Aµê¹ê¬O¤]¡C + +¤Z¾ÔªÌ¡A¥H¥¿¦X¡A¥H©_³Ó¡C¬Gµ½¥X©_ªÌ¡AµL½a¦p¤Ñ¦a¡A¤£ºÜ¦p¦¿®ü¡C²×¦Ó½Æ©l¡A¤é¤ë¬O¤]¡C¦º¦Ó´_¥Í¡A¥|®É¬O¤]¡CÁn¤£¹L¤­¡A¤­Án¤§ÅÜ¡A¤£¥i³ÓÅ¥¤]¡F¦â¤£¹L¤­¡A¤­¦â¤§ÅÜ¡A¤£¥i³ÓÆ[¤]¡F¨ý¤£¹L¤­¡A¤­¨ý¤§ÅÜ¡A¤£¥i³Ó¹Á¤]¡F¾Ô¶Õ¡A¤£¹L©_¥¿¡A©_¥¿¤§ÅÜ¡A¤£¥i³Ó½a¤]¡C©_¥¿¬Û¥Í¡A¦p´`Àô¤§µLºÝ¡A¼ô¯à½a¤§«v¡H + +¿E¤ô¤§¯e¡A¦Ü©óº}¥ÛªÌ¡A¶Õ¤]¡F÷Á³¾¤§¯e¡A¦Ü©ó·´§éªÌ¡A¸`¤]¡C¬O¬Gµ½¾ÔªÌ¡A¨ä¶ÕÀI¡A¨ä¸`µu¡C¶Õ¦p±i©¸¡A¸`¦pµo¾÷¡C + +¯É¯É¯Æ¯Æ¡A°«¶Ã¦Ó¤£¥i¶Ã¤]¡F´ý´ý¨P¨P¡A§Î¶ê¦Ó¤£¥i±Ñ¤]¡C¶Ã¥Í©óªv¡A©Ä¥Í©ó«i¡A®z¥Í©ó±j¡Cªv¶Ã¡A¼Æ¤]¡F«i©Ä¡A¶Õ¤]¡F±j®z¡A§Î¤]¡C¬Gµ½°Ê¼ÄªÌ¡A§Î¤§¡A¼Ä¥²±q¤§¡F¤©¤§¡A¼Ä¥²¨ú¤§¡C¥H§Q°Ê¤§¡A¥H¨ò«Ý¤§¡C + +¬Gµ½¾ÔªÌ¡A¨D¤§©ó¶Õ¡A¤£³d©ó¤H¡F¬G¯à¾Ü¤H¦Ó¥ô¶Õ¡C¥ô¶ÕªÌ¡A¨ä¾Ô¤H¤]¡A¦pÂà¤ì¥Û¡C¤ì¥Û¤§©Ê¡A¦w«hÀR¡A¦M«h°Ê¡A¤è«h¤î¡A¶ê«h¦æ¡C¬Gµ½¾Ô¤H¤§¶Õ¡A¦pÂà¶ê¥Û©ó¤d¥Q¤§¤sªÌ¡A¶Õ¤]¡C + +µê¹ê²Ä¤» + +®]¤l¤ê¡G¤Z¥ý³B¾Ô¦a¦Ó«Ý¼ÄªÌ§H¡A«á³B¾Ô¦a¦ÓÁ;Ԫ̳ҡC + +¬Gµ½¾ÔªÌ¡A­P¤H¦Ó¤£­P©ó¤H¡C¯à¨Ï¼Ä¤H¦Û¦ÜªÌ¡A§Q¤§¤]¡F¯à¨Ï¼Ä¤H¤£±o¦ÜªÌ¡A®`¤§¤]¡C¬G¼Ä§H¯à³Ò¤§¡A¹¡¯àÄȤ§¡A¦w¯à°Ê¤§¡C¥X¨ä©Ò¥²ÁÍ¡AÁͨä©Ò¤£·N¡C¦æ¤d¨½¦Ó¤£³ÒªÌ¡A¦æ©óµL¤H¤§¦a¤]¡F§ð¦Ó¥²¨úªÌ¡A§ð¨ä©Ò¤£¦u¤]¡C¦u¦Ó¥²©TªÌ¡A¦u¨ä©Ò¤£§ð¤]¡C + +¬Gµ½§ðªÌ¡A¼Ä¤£ª¾¨ä©Ò¦u¡Fµ½¦uªÌ¡A¼Ä¤£ª¾¨ä©Ò§ð¡C·L¥G·L¥G¡A¦Ü©óµL§Î¡F¯«¥G¯«¥G¡A¦Ü©óµLÁn¡A¬G¯à¬°¼Ä¤§¥q©R¡C¶i¦Ó¤£¥i¿mªÌ¡A¨R¨äµê¤]¡F°h¦Ó¤£¥i°lªÌ¡A³t¦Ó¤£¥i¤Î¤]¡C¬G§Ú±ý¾Ô¡A¼ÄÁö°ªÂS²`·¾¡A¤£±o¤£»P§Ú¾ÔªÌ¡A§ð¨ä©Ò¥²±Ï¤]¡F§Ú¤£±ý¾Ô¡AÁöµe¦a¦Ó¦u¤§¡A¼Ä¤£±o»P§Ú¾ÔªÌ¡A¨Ä¨ä©Ò¤§¤]¡C¬G§Î¤H¦Ó§ÚµL§Î¡A«h§Ú±M¦Ó¼Ä¤À¡C§Ú±M¬°¤@¡A¼Ä¤À¬°¤Q¡A¬O¥H¤Q§ð¨ä¤@¤]¡C«h§Ú²³¼Ä¹è¡A¯à¥H²³À»¹èªÌ¡A«h§^¤§©Ò»P¾ÔªÌ¬ù¨o¡C§^©Ò»P¾Ô¤§¦a¤£¥iª¾¡A¤£¥iª¾«h¼Ä©Ò³ÆªÌ¦h¡A¼Ä©Ò³ÆªÌ¦h¡A«h§^©Ò»P¾ÔªÌ¹è¨o¡C¬G³Æ«e«h«á¹è¡A³Æ«á«h«e¹è¡A³Æ¥ª«h¥k¹è¡A³Æ¥k«h¥ª¹è¡AµL©Ò¤£³Æ¡A«hµL©Ò¤£¹è¡C¹èªÌ¡A³Æ¤HªÌ¤]¡F²³ªÌ¡A¨Ï¤H³Æ¤vªÌ¤]¡C¬Gª¾¾Ô¤§¦a¡Aª¾¾Ô¤§¤é¡A«h¥i¤d¨½¦Ó·|¾Ô¡F¤£ª¾¾Ô¤§¦a¡A¤£ª¾¾Ô¤é¡A«h¥ª¤£¯à±Ï¥k¡A¥k¤£¯à±Ï¥ª¡A«e¤£¯à±Ï«á¡A«á¤£¯à±Ï«e¡A¦Óªp»·ªÌ¼Æ¤QùØ¡AªñªÌ¼ÆùØ¥G¡I¥H§^«×¤§¡A¶V¤H¤§§LÁö¦h¡A¥ç®O¯q©ó³Ó«v¡I¬G¤ê¡G³Ó¥i¬°¤]¡C¼ÄÁö²³¡A¥i¨ÏµL°«¡C¬Gµ¦¤§¦Óª¾±o¥¢¤§­p¡A­Ô¤§¦Óª¾°ÊÀR¤§²z¡A§Î¤§¦Óª¾¦º¥Í¤§¦a¡A¨¤¤§¦Óª¾¦³¾l¤£¨¬¤§³B¡C¬G§Î§L¤§·¥¡A¦Ü©óµL§Î¡CµL§Î«h²`¶¡¤£¯à¿s¡A´¼ªÌ¤£¯à¿Ñ¡C¦]§Î¦Ó±¹³Ó©ó²³¡A²³¤£¯àª¾¡C¤H¬Òª¾§Ú©Ò¥H³Ó¤§§Î¡A¦Ó²öª¾§^©Ò¥H¨î³Ó¤§§Î¡C¬G¨ä¾Ô³Ó¤£´_¡A¦ÓÀ³§Î©óµL½a¡C¤Ò§L§Î¶H¤ô¡A¤ô¤§¦æÁ×°ª¦ÓÁͤU¡A§L¤§§ÎÁ×¹ê¦ÓÀ»µê¡F¤ô¦]¦a¦Ó¨î¬y¡A§L¦]¼Ä¦Ó¨î³Ó¡C¬G§LµL±`¶Õ¡A¤ôµL±`§Î¡C¯à¦]¼ÄÅܤƦӨú³ÓªÌ¡A¿×¤§¯«¡C¬G¤­¦æµL±`³Ó¡A¥|®ÉµL±`¦ì¡A¤é¦³µuªø¡A¤ë¦³¦º¥Í¡C + +­xª§²Ä¤C + +®]¤l¤ê¡G ¤Z¥Î§L¤§ªk¡A±N¨ü©R©ó§g¡A¦X­x»E²³¡A¥æ©M¦ÓªÙ¡A²öÃø©ó­xª§¡C­xª§¤§ÃøªÌ¡A¥H¨±¬°ª½¡A¥H±w¬°§Q¡C¬G¨±¨ä³~¡A¦Ó»¤¤§¥H§Q¡A«á¤Hµo¡A¥ý¤H¦Ü¡A¦¹ª¾¨±ª½¤§­pªÌ¤]¡C­xª§¬°§Q¡A­xª§¬°¦M¡CÁ|­x¦Óª§§Q«h¤£¤Î¡A©e­x¦Óª§§Q«h½ý­«®½¡C¬O¬G±²¥Ò¦ÓÁÍ¡A¤é©]¤£³B¡A­¿¹D­Ý¦æ¡A¦Ê¸Ì¦Óª§§Q¡A«h¾à¤T±N­x¡A«lªÌ¥ý¡A¯hªÌ«á¡A¨äªk¤Q¤@¦Ó¦Ü¡F¤­¤QùئӪ§§Q¡A«hÃݤW±N­x¡A¨äªk¥b¦Ü¡F¤T¤QùئӪ§§Q¡A«h¤T¤À¤§¤G¦Ü¡C¬O¬G­xµL½ý­««h¤`¡AµL³­¹«h¤`¡AµL©e¿n«h¤`¡C¬G¤£ª¾½Ñ«J¤§¿ÑªÌ¡A¤£¯à¿Ý¥æ¡F¤£ª¾¤sªL¡BÀIªý¡Bªq¿A¤§§ÎªÌ¡A¤£¯à¦æ­x¡F¤£¥Î¶m¾ÉªÌ¡A¤£¯à±o¦a§Q¡C¬G§L¥H¶B¥ß¡A¥H§Q°Ê¡A¥H¤À©M¬°Åܪ̤]¡C¬G¨ä¯e¦p­·¡A¨ä®}¦pªL¡A«I±°¦p¤õ¡A¤£°Ê¦p¤s¡AÃøª¾¦p³±¡A°Ê¦p¹p¾_¡C±°¶m¤À²³¡A¹ø¦a¤À§Q¡AÄaÅv¦Ó°Ê¡C¥ýª¾¨±ª½¤§­pªÌ³Ó¡A¦¹­xª§¤§ªk¤]¡C¡m­x¬F¡n¤ê¡G¡§¨¥¤£¬Û»D¡A¬G¬°¤§ª÷¹ª¡Fµø¤£¬Û¨£¡A¬G¬°¤§±ÜºX¡C¡¨¤Òª÷¹ª±ÜºXªÌ¡A©Ò¥H¤@¥Á¤§¦Õ¥Ø¤]¡C¥Á¬J±M¤@¡A«h«iªÌ¤£±o¿W¶i¡A©ÄªÌ¤£±o¿W°h¡A¦¹¥Î²³¤§ªk¤]¡C¬G©]¾Ô¦hª÷¹ª¡A±Þ¾Ô¦h±ÜºX¡A©Ò¥HÅܤH¤§¦Õ¥Ø¤]¡C¤T­x¥i¹Ü®ð¡A±N­x¥i¹Ü¤ß¡C¬O¬G´Â®ð¾U¡A±Þ®ð´k¡A¼Ç®ðÂk¡Cµ½¥Î§LªÌ¡AÁרä¾U®ð¡AÀ»¨ä´kÂk¡A¦¹ªv®ðªÌ¤]¡C¥Hªv«Ý¶Ã¡A¥HÀR«Ý¼M¡A¦¹ªv¤ßªÌ¤]¡C¥Hªñ«Ý»·¡A¥H§H«Ý³Ò¡A¥H¹¡«ÝÄÈ¡A¦¹ªv¤OªÌ¤]¡CµLÁÜ¥¿¥¿¤§ºX¡AµLÀ»°ó°ó¤§³¯¡A¦¹ªvÅܪ̤]¡C¬G¥Î§L¤§ªk¡A°ª³®¤Å¦V¡A­I¥C¤Å°f¡A¨Ë¥_¤Å±q¡A¾U¨ò¤Å§ð¡A»ç§L¤Å­¹¡AÂk®v¤Å¹K¡A³ò®v¿òÂö¡A½a±F¤Å­¢¡A¦¹¥Î§L¤§ªk¤]¡C + +¤EÅܲĤK + +®]¤l¤ê¡G ¤Z¥Î§L¤§ªk¡A±N¨ü©R©ó§g¡A¦X­x»E¦X¡Cªx¦aµLªÙ¡AÅü¦a¦X¥æ¡Aµ´¦aµL¯d¡A³ò¦a«h¿Ñ¡A¦º¦a«h¾Ô¡A³~¦³©Ò¤£¥Ñ¡A­x¦³©Ò¤£À»¡A«°¦³©Ò¤£§ð¡A¦a¦³©Ò¤£ª§¡A§g©R¦³©Ò¤£¨ü¡C¬G±N³q©ó¤EÅܤ§§QªÌ¡Aª¾¥Î§L¨o¡F±N¤£³q¤EÅܤ§§Q¡AÁöª¾¦a§Î¡A¤£¯à±o¦a¤§§Q¨o¡Fªv§L¤£ª¾¤EÅܤ§³N¡AÁöª¾¤­§Q¡A¤£¯à±o¤H¤§¥Î¨o¡C¬O¬G´¼ªÌ¤§¼{¡A¥²Âø©ó§Q®`¡AÂø©ó§Q¦Ó°È¥i«H¤]¡AÂø©ó®`¦Ó±w¥i¸Ñ¤]¡C¬O¬G©}½Ñ«JªÌ¥H®`¡A§Ð½Ñ«JªÌ¥H·~¡AÁͽѫJªÌ¥H§Q¡C¬G¥Î§L¤§ªk¡AµL«î¨ä¤£¨Ó¡A«î§^¦³¥H«Ý¤§¡FµL«î¨ä¤£§ð¡A«î§^¦³©Ò¤£¥i§ð¤]¡C¬G±N¦³¤­¦M¡A¥²¦º¥i±þ¡A¥²¥Í¥i¸¸¡A©Á³t¥i«V¡A·G¼ä¥i°d¡A·R¥Á¥i·Ð¡C¤Z¦¹¤­ªÌ¡A±N¤§¹L¤]¡A¥Î§L¤§¨a¤]¡CÂЭx±þ±N¡A¥²¥H¤­¦M¡A¤£¥i¤£¹î¤]¡C + +¦æ­x²Ä¤E + +®]¤l¤ê¡G¤Z³B­x¬Û¼Ä¡Aµ´¤s¨Ì½\¡Aµø¥Í³B°ª¡A¾Ô¶©µLµn¡A¦¹³B¤s¤§­x¤]¡Cµ´¤ô¥²»·¤ô¡A«Èµ´¤ô¦Ó¨Ó¡A¤Åªï¤§©ó¤ô¤º¡A¥O¥b´ç¦ÓÀ»¤§§Q¡A±ý¾ÔªÌ¡AµLªþ©ó¤ô¦Óªï«È¡Aµø¥Í³B°ª¡AµLªï¤ô¬y¡A¦¹³B¤ô¤W¤§­x¤]¡Cµ´¥¸¿A¡A°ß«E¥hµL¯d¡A­Y¥æ­x©ó¥¸¿A¤§¤¤¡A¥²¨Ì¤ô¯ó¦Ó­I²³¾ð¡A¦¹³B¥¸¿A¤§­x¤]¡C¥­³°³B©ö¡A¥k­I°ª¡A«e¦º«á¥Í¡A¦¹³B¥­³°¤§­x¤]¡C¤Z¦¹¥|­x¤§§Q¡A¶À«Ò¤§©Ò¥H³Ó¥|«Ò¤]¡C¤Z­x¦n°ª¦Ó´c¤U¡A¶Q¶§¦Ó½â³±¡A¾i¥Í¦Ó³B¹ê¡A­xµL¦Ê¯e¡A¬O¿×¥²³Ó¡C¥C³®³ö¨¾¡A¥²³B¨ä¶§¦Ó¥k­I¤§¡A¦¹§L¤§§Q¡A¦a¤§§U¤]¡C¤W«B¤ô¬y¦Ü¡A±ý¯AªÌ¡A«Ý¨ä©w¤]¡C¤Z¦a¦³µ´¼î¡B¤Ñ¤«¡B¤Ñ¨c¡B¤Ñù¡B¤Ñ³´¡B¤Ñ»Ø¡A¥²«E¥h¤§¡A¤Åªñ¤]¡C§^»·¤§¡A¼Äªñ¤§¡F§^ªï¤§¡A¼Ä­I¤§¡C­x®Ç¦³ÀIªý¡BæC¤«¡B㶸µ¡B¤pªL¡Bõ÷îPªÌ¡A¥²ÂÔÂЯÁ¤§¡A¦¹¥ñ«Á¤§©Ò³B¤]¡C¼Äªñ¦ÓÀRªÌ¡A«î¨äÀI¤]¡F»·¦Ó¬D¾ÔªÌ¡A±ý¤H¤§¶i¤]¡F¨ä©Ò©~©öªÌ¡A§Q¤]¡F²³¾ð°ÊªÌ¡A¨Ó¤]¡F²³¯ó¦h»ÙªÌ¡AºÃ¤]¡F³¾°_ªÌ¡A¥ñ¤]¡FÃ~ÀbªÌ¡AÂФ]¡F¹Ð°ª¦Ó¾UªÌ¡A¨®¨Ó¤]¡F¨õ¦Ó¼sªÌ¡A®{¨Ó¤]¡F´²¦Ó±ø¹FªÌ¡A¾ö±Ä¤]¡F¤Ö¦Ó©¹¨ÓªÌ¡AÀç­x¤]¡FÃã¨õ¦Ó³ÆªÌ¡A¶i¤]¡FÃã±j¦Ó¶iÅXªÌ¡A°h¤]¡F»´¨®¥ý¥X©~¨ä°¼ªÌ¡A³¯¤]¡FµL¬ù¦Ó½Ð©MªÌ¡A¿Ñ¤]¡F©b¨«¦Ó³¯§LªÌ¡A´Á¤]¡F¥b¶i¥b°hªÌ¡A»¤¤]¡F§ú¦Ó¥ßªÌ¡AÄȤ]¡F¨V¦Ó¥ý¶¼ªÌ¡A´÷¤]¡F¨£§Q¦Ó¤£¶iªÌ¡A³Ò¤]¡F³¾¶°ªÌ¡Aµê¤]¡F©]©IªÌ¡A®£¤]¡F­xÂZªÌ¡A±N¤£­«¤]¡F±ÜºX°ÊªÌ¡A¶Ã¤]¡F¦O«ãªÌ¡A­Â¤]¡F±þ°¨¦×­¹ªÌ¡A­xµL³¤]¡FÄaâÕ¤£ªð¨äªÙªÌ¡A½a±F¤]¡F½Î½Îµ¿µ¿¡A®}»P¤H¨¥ªÌ¡A¥¢²³¤]¡F¼Æ½àªÌ¡Aµ~¤]¡F¼Æ»@ªÌ¡A§x¤]¡F¥ý¼É¦Ó«á¬È¨ä²³ªÌ¡A¤£ºë¤§¦Ü¤]¡F¨Ó©eÁª̡A±ý¥ð®§¤]¡C§L«ã¦Ó¬Ûªï¡A¤[¦Ó¤£¦X¡A¤S¤£¬Û¥h¡A¥²ÂԹ¡C§L«D¶Q¯q¦h¤]¡A±©µLªZ¶i¡A¨¬¥H¨Ã¤O®Æ¼Ä¨ú¤H¦Ó¤w¡C¤Ò±©µL¼{¦Ó©ö¼ÄªÌ¡A¥²¾à©ó¤H¡C¨ò¥¼¿Ë¦Ó»@¤§¡A«h¤£ªA¡A¤£ªA«hÃø¥Î¡C¨ò¤w¿Ëªþ¦Ó»@¤£¦æ¡A«h¤£¥i¥Î¡C¬G¦X¤§¥H¤å¡A»ô¤§¥HªZ¡A¬O¿×¥²¨ú¡C¥O¯À¦æ¥H±Ð¨ä¥Á¡A«h¥ÁªA¡F¥O¯À¤£¦æ¥H±Ð¨ä¥Á¡A«h¥Á¤£ªA¡C¥O¯À¦æªÌ¡A»P²³¬Û±o¤]¡C + +¦a§Î²Ä¤Q + +®]¤l¤ê¡G¦a§Î¦³³qªÌ¡B¦³±¾ªÌ¡B¦³¤äªÌ¡B¦³¹iªÌ¡B¦³ÀIªÌ¡B¦³»·ªÌ¡C§Ú¥i¥H©¹¡A©¼¥i¥H¨Ó¡A¤ê³q¡C³q§ÎªÌ¡A¥ý©~°ª¶§¡A§Q³¹D¡A¥H¾Ô«h§Q¡C¥i¥H©¹¡AÃø¥Hªð¡A¤ê±¾¡C±¾§ÎªÌ¡A¼ÄµL³Æ¡A¥X¦Ó³Ó¤§¡A¼Ä­Y¦³³Æ¡A¥X¦Ó¤£³Ó¡AÃø¥Hªð¡A¤£§Q¡C§Ú¥X¦Ó¤£§Q¡A©¼¥X¦Ó¤£§Q¡A¤ê¤ä¡C¤ä§ÎªÌ¡A¼ÄÁö§Q§Ú¡A§ÚµL¥X¤]¡A¤Þ¦Ó¥h¤§¡A¥O¼Ä¥b¥X¦ÓÀ»¤§§Q¡C¹i§ÎªÌ¡A§Ú¥ý©~¤§¡A¥²¬Õ¤§¥H«Ý¼Ä¡C­Y¼Ä¥ý©~¤§¡A¬Õ¦Ó¤Å±q¡A¤£¬Õ¦Ó±q¤§¡CÀI§ÎªÌ¡A§Ú¥ý©~¤§¡A¥²©~°ª¶§¥H«Ý¼Ä¡F­Y¼Ä¥ý©~¤§¡A¤Þ¦Ó¥h¤§¡A¤Å±q¤]¡C»·§ÎªÌ¡A¶Õ§¡Ãø¥H¬D¾Ô¡A¾Ô¦Ó¤£§Q¡C¤Z¦¹¤»ªÌ¡A¦a¤§¹D¤]¡A±N¤§¦Ü¥ô¡A¤£¥i¤£¹î¤]¡C¤Z§L¦³¨«ªÌ¡B¦³¹£ªÌ¡B¦³³´ªÌ¡B¦³±YªÌ¡B¦³¶ÃªÌ¡B¦³¥_ªÌ¡C¤Z¦¹¤»ªÌ¡A«D¤Ñ¦a¤§¨a¡A±N¤§¹L¤]¡C¤Ò¶Õ§¡¡A¥H¤@À»¤Q¡A¤ê¨«¡F¨ò±j¦O®z¡A¤ê¹£¡F¦O±j¨ò®z¡A¤ê³´¡F¤j¦O«ã¦Ó¤£ªA¡A¹J¼ÄïȦӦ۾ԡA±N¤£ª¾¨ä¯à¡A¤ê±Y¡F±N®z¤£ÄY¡A±Ð¹D¤£©ú¡A¦O¨òµL±`¡A³¯§LÁa¾î¡A¤ê¶Ã¡F±N¤£¯à®Æ¼Ä¡A¥H¤Ö¦X²³¡A¥H®zÀ»±j¡A§LµL¿ï¾W¡A¤ê¥_¡C¤Z¦¹¤»ªÌ¡A±Ñ¤§¹D¤]¡A±N¤§¦Ü¥ô¡A¤£¥i¤£¹î¤]¡C¤Ò¦a§ÎªÌ¡A§L¤§§U¤]¡C®Æ¼Ä¨î³Ó¡A­pÀI¹i»·ªñ¡A¤W±N¤§¹D¤]¡Cª¾¦¹¦Ó¥Î¾ÔªÌ¥²³Ó¡A¤£ª¾¦¹¦Ó¥Î¾ÔªÌ¥²±Ñ¡C¬G¾Ô¹D¥²³Ó¡A¥D¤êµL¾Ô¡A¥²¾Ô¥i¤]¡F¾Ô¹D¤£³Ó¡A¥D¤ê¥²¾Ô¡AµL¾Ô¥i¤]¡C¬G¶i¤£¨D¦W¡A°h¤£Á׸o¡A°ß¥Á¬O«O¡A¦Ó§Q©ó¥D¡A°ê¤§Ä_¤]¡Cµø¨ò¦pÀ¦¨à¡A¬G¥i¥H»P¤§­u²`·Ë¡Fµø¨ò¦p·R¤l¡A¬G¥i»P¤§­Ñ¦º¡C«p¦Ó¤£¯à¨Ï¡A·R¦Ó¤£¯à¥O¡A¶Ã¦Ó¤£¯àªv¡AÄ´­Yź¤l¡A¤£¥i¥Î¤]¡Cª¾§^¨ò¤§¥i¥HÀ»¡A¦Ó¤£ª¾¼Ä¤§¤£¥iÀ»¡A³Ó¤§¥b¤]¡Fª¾¼Ä¤§¥iÀ»¡A¦Ó¤£ª¾§^¨ò¤§¤£¥i¥HÀ»¡A³Ó¤§¥b¤]¡Fª¾¼Ä¤§¥iÀ»¡Aª¾§^¨ò¤§¥i¥HÀ»¡A¦Ó¤£ª¾¦a§Î¤§¤£¥i¥H¾Ô¡A³Ó¤§¥b¤]¡C¬Gª¾§LªÌ¡A°Ê¦Ó¤£°g¡AÁ|¦Ó¤£½a¡C¬G¤ê¡Gª¾©¼ª¾¤v¡A³Ó¤D¤£¬p¡Fª¾¤Ñª¾¦a¡A³Ó¤D¥i¥þ¡C + +¤E¦a²Ä¤Q¤@ + +®]¤l¤ê¡G¥Î§L¤§ªk¡A¦³´²¦a¡A¦³»´¦a¡A¦³ª§¦a¡A¦³¥æ¦a¡A¦³Åü¦a¡A¦³­«¦a¡A¦³ªx¦a¡A¦³³ò¦a¡A¦³¦º¦a¡C½Ñ«J¦Û¾Ô¨ä¦aªÌ¡A¬°´²¦a¡F¤J¤H¤§¦a¤£²`ªÌ¡A¬°»´¦a¡F§Ú±o¥ç§Q¡A©¼±o¥ç§QªÌ¡A¬°ª§¦a¡F§Ú¥i¥H©¹¡A©¼¥i¥H¨ÓªÌ¡A¬°¥æ¦a¡F½Ñ«J¤§¦a¤TÄÝ¡A¥ý¦Ü¦Ó±o¤Ñ¤U²³ªÌ¡A¬°Åü¦a¡F¤J¤H¤§¦a²`¡A­I«°¨¶¦hªÌ¡A¬°­«¦a¡F¤sªL¡BÀIªý¡Bªq¿A¡A¤ZÃø¦æ¤§¹DªÌ¡A¬°ªx¦a¡F©Ò¥Ñ¤JªÌ¹i¡A©Ò±qÂkªÌ¨±¡A©¼¹è¥i¥HÀ»§^¤§²³ªÌ¡A¬°³ò¦a¡F¯e¾Ô«h¦s¡A¤£¯e¾Ô«h¤`ªÌ¡A¬°¦º¦a¡C¬O¬G´²¦a«hµL¾Ô¡A»´¦a«hµL¤î¡Aª§¦a«hµL§ð¡A¥æ¦a«hµLµ´¡AÅü¦a«h¦X¥æ¡A­«¦a«h±°¡Aªx¦a«h¦æ¡A³ò¦a«h¿Ñ¡A¦º¦a«h¾Ô¡C¥j¤§µ½¥Î§LªÌ¡A¯à¨Ï¼Ä¤H«e«á¤£¬Û¤Î¡A²³¹è¤£¬Û«î¡A¶Q½â¤£¬Û±Ï¡A¤W¤U¤£¬Û¦¬¡A¨òÂ÷¦Ó¤£¶°¡A§L¦X¦Ó¤£»ô¡C¦X©ó§Q¦Ó°Ê¡A¤£¦X©ó§Q¦Ó¤î¡C´±°Ý¼Ä²³¦Ó¾ã±N¨Ó¡A«Ý¤§­Y¦ó¤ê¡G¥ý¹Ü¨ä©Ò·R«hÅ¥¨o¡C§L¤§±¡¥D³t¡A­¼¤H¤§¤£¤Î¡C¥Ñ¤£¸·¤§¹D¡A§ð¨ä©Ò¤£§Ù¤]¡C¤Z¬°«È¤§¹D¡A²`¤J«h±M¡C¥D¤H¤£§J¡A±°©óÄdz¥¡A¤T­x¨¬­¹¡CÂÔ¾i¦Ó¤Å³Ò¡A¨Ã®ð¿n¤O¡A¹B§L­p¿Ñ¡A¬°¤£¥i´ú¡C§ë¤§µL©Ò©¹¡A¦º¥B¤£¥_¡C¦º²j¤£±o¡A¤h¤HºÉ¤O¡C§L¤h¬Æ³´«h¤£Äß¡AµL©Ò©¹«h©T¡A²`¤J«h©ë¡A¤£±o¤w«h°«¡C¬O¬G¨ä§L¤£­×¦Ó§Ù¡A¤£¨D¦Ó±o¡A¤£¬ù¦Ó¿Ë¡A¤£¥O¦Ó«H¡A¸T²»¥hºÃ¡A¦Ü¦ºµL©Ò¤§¡C§^¤hµL¾l°]¡A«D´c³f¤]¡FµL¾l©R¡A«D´c¹Ø¤]¡C¥Oµo¤§¤é¡A¤h¨ò§¤ªÌ®÷ªgÃÌ¡A°³ª×ªÌ®÷¥æÀ[¡A§ë¤§µL©Ò©¹¡A½Ñ¡Bä󤧫i¤]¡C¬Gµ½¥Î§LªÌ¡AÄ´¦p²vµM¡C²vµMªÌ¡A±`¤s¤§³D¤]¡CÀ»¨ä­º«h§À¦Ü¡AÀ»¨ä§À«h­º¦Ü¡AÀ»¨ä¤¤«h­º§À­Ñ¦Ü¡C´±°Ý§L¥i¨Ï¦p²vµM¥G¡H¤ê¥i¡C¤Ò§d¤H»P¶V¤H¬Û´c¤]¡A·í¨ä¦P¦à¦ÓÀÙ¦Ó¹J­·¡A¨ä¬Û±Ï¤]¦p¥ª¥k¤â¡C¬O¬G¤è°¨®I½ü¡A¥¼¨¬«î¤]¡F»ô«i¦p¤@¡A¬F¤§¹D¤]¡F­è¬X¬Ò±o¡A¦a¤§²z¤]¡C¬Gµ½¥Î§LªÌ¡AÄâ¤â­Y¨Ï¤@¤H¡A¤£±o¤w¤]¡C±N­x¤§¨Æ¡AÀR¥H«Õ¡A¥¿¥Hªv¡A¯à·M¤h¨ò¤§¦Õ¥Ø¡A¨Ï¤§µLª¾¡F©ö¨ä¨Æ¡A­²¨ä¿Ñ¡A¨Ï¤HµLÃÑ¡F©ö¨ä©~¡A¨±¨ä³~¡A¨Ï¥Á¤£±o¼{¡C«Ó»P¤§´Á¡A¦pµn°ª¦Ó¥h¨ä±è¡F«Ó»P¤§²`¤J½Ñ«J¤§¦a¡A¦Óµo¨ä¾÷¡C­YÅX¸s¦Ï¡AÅX¦Ó©¹¡AÅX¦Ó¨Ó¡A²öª¾©Ò¤§¡C»E¤T­x¤§²³¡A§ë¤§©óÀI¡A¦¹¿×±N­x¤§¨Æ¤]¡C¤E¦a¤§ÅÜ¡A©}¦ù¤§¤O¡A¤H±¡¤§²z¡A¤£¥i¤£¹î¤]¡C¤Z¬°«È¤§¹D¡A²`«h±M¡A²L«h´²¡C¥h°ê¶V¹Ò¦Ó®vªÌ¡Aµ´¦a¤]¡F¥|¹ýªÌ¡AÅü¦a¤]¡F¤J²`ªÌ¡A­«¦a¤]¡F¤J²LªÌ¡A»´¦a¤]¡F­I©T«e¹iªÌ¡A³ò¦a¤]¡FµL©Ò©¹ªÌ¡A¦º¦a¤]¡C¬O¬G´²¦a§^±N¤@¨ä§Ó¡A»´¦a§^±N¨Ï¤§ÄÝ¡Aª§¦a§^±NÁͨä«á¡A¥æ¦a§^±NÂÔ¨ä¦u¡A¥æ¦a§^±N©T¨äµ²¡AÅü¦a§^±NÂÔ¨ä«î¡A­«¦a§^±NÄ~¨ä­¹¡Aªx¦a§^±N¶i¨ä³~¡A³ò¦a§^±N¶ë¨äÂö¡A¦º¦a§^±N¥Ü¤§¥H¤£¬¡¡C¬G§L¤§±¡¡G³ò«h¿m¡A¤£±o¤w«h°«¡A¹L«h±q¡C¬O¬G¤£ª¾½Ñ«J¤§¿ÑªÌ¡A¤£¯à¹w¥æ¡F¤£ª¾¤sªL¡BÀIªý¡Bªq¿A¤§§ÎªÌ¡A¤£¯à¦æ­x¡F¤£¥Î¶m¾É¡A¤£¯à±o¦a§Q¡C¥|¤­ªÌ¡A¤@¤£ª¾¡A«DÅQ¤ý¤§§L¤]¡C¤ÒÅQ¤ý¤§§L¡A¥ï¤j°ê¡A«h¨ä²³¤£±o»E¡F«Â¥[©ó¼Ä¡A«h¨ä¥æ¤£±o¦X¡C¬O¬G¤£ª§¤Ñ¤U¤§¥æ¡A¤£¾i¤Ñ¤U¤§Åv¡A«H¤v¤§¨p¡A«Â¥[©ó¼Ä¡A«h¨ä«°¥i©Þ¡A¨ä°ê¥iño¡C¬IµLªk¤§½à¡AÄaµL¬F¤§¥O¡C¥Ç¤T­x¤§²³¡A­Y¨Ï¤@¤H¡C¥Ç¤§¥H¨Æ¡A¤Å§i¥H¨¥¡F¥Ç¤§¥H®`¡A¤Å§i¥H§Q¡C§ë¤§¤`¦aµM«á¦s¡A³´¤§¦º¦aµM«á¥Í¡C¤Ò²³³´©ó®`¡AµM«á¯à¬°³Ó±Ñ¡C¬G¬°§L¤§¨Æ¡A¦b¶¶¸Ô¼Ä¤§·N¡A¨Ã¼Ä¤@¦V¡A¤d¨½±þ±N¡A¬O¿×¥©¯à¦¨¨Æ¡C¬O¬G¬FÁ|¤§¤é¡A¦iÃö§é²Å¡AµL³q¨ä¨Ï¡A¼F©ó´Y¼q¤§¤W¡A¥H¸Ý¨ä¨Æ¡C¼Ä¤H¶}Âó¡A¥²«E¤J¤§¡A¥ý¨ä©Ò·R¡A·L»P¤§´Á¡A½î¾¥ÀH¼Ä¡A¥H¨M¾Ô¨Æ¡C¬O¬G©l¦p³B¤k¡A¼Ä¤H¶}¤á¡F«á¦p²æ¨ß¡A¼Ä¤£¤Î©Ú¡C + +¤õ§ð²Ä¤Q¤G + +®]¤l¤ê¡G¤Z¤õ§ð¦³¤­¡G¤@¤ê¤õ¤H¡A¤G¤ê¤õ¿n¡A¤T¤ê¤õ½ý¡A¥|¤ê¤õ®w¡A¤­¤ê¤õ¶¤¡C¦æ¤õ¥²¦³¦]¡A¦]¥²¯À¨ã¡Cµo¤õ¦³®É¡A°_¤õ¦³¤é¡C®ÉªÌ¡A¤Ñ¤§Àê¤]¡C¤éªÌ¡A¤ë¦bºß¡B¾À¡BÁl¡BÜH¤]¡C¤Z¦¹¥|±JªÌ¡A­·°_¤§¤é¤]¡C¤Z¤õ§ð¡A¥²¦]¤­¤õ¤§ÅܦÓÀ³¤§¡G¤õµo©ó¤º¡A«h¦­À³¤§©ó¥~¡F¤õµo¦Ó¨ä§LÀRªÌ¡A«Ý¦Ó¤Å§ð¡A·¥¨ä¤õ¤O¡A¥i±q¦Ó±q¤§¡A¤£¥i±q«h¤W¡C¤õ¥iµo©ó¥~¡AµL«Ý©ó¤º¡A¥H®Éµo¤§¡A¤õµo¤W­·¡AµL§ð¤U­·¡A±Þ­·¤[¡A©]­·¤î¡C¤Z­x¥²ª¾¤­¤õ¤§ÅÜ¡A¥H¼Æ¦u¤§¡C¬G¥H¤õ¦õ§ðªÌ©ú¡A¥H¤ô¦õ§ðªÌ±j¡C¤ô¥i¥Hµ´¡A¤£¥i¥H¹Ü¡C¤Ò¾Ô³Ó§ð¨ú¦Ó¤£´k¨ä¥\ªÌ¤¿¡A©R¤ê¡§¶O¯d¡¨¡C¬G¤ê¡G©ú¥D¼{¤§¡A¨}±N´k¤§¡A«D§Q¤£°Ê¡A«D±o¤£¥Î¡A«D¦M¤£¾Ô¡C¥D¤£¥i¥H«ã¦Ó¿³®v¡A±N¤£¥i¥H·Y¦Ó§ð¾Ô¡C¦X©ó§Q¦Ó°Ê¡A¤£¦X©ó§Q¦Ó¤W¡C«ã¥i¥H½Æ³ß¡A·Y¥i¥H½Æ»¡¡A¤`°ê¤£¥i¥H½Æ¦s¡A¦ºªÌ¤£¥i¥H½Æ¥Í¡C¬G©ú¥D·V¤§¡A¨}±Nĵ¤§¡C¦¹¦w°ê¥þ­x¤§¹D¤]¡C + +¥Î¶¡²Ä¤Q¤T + +®]¤l¤ê¡G ¤Z¿³®v¤Q¸U¡A¥X©º¤d¨½¡A¦Ê©m¤§¶O¡A¤½®a¤§©^¡A¤é¶O¤dª÷¡A¤º¥~ÄÌ°Ê¡A«å©ó¹D¸ô¡A¤£±o¾Þ¨ÆªÌ¡A¤C¤Q¸U®a¡C¬Û¦u¼Æ¦~¡A¥Hª§¤@¤é¤§³Ó¡A¦Ó·RÀï¸S¦Êª÷¡A¤£ª¾¼Ä¤§±¡ªÌ¡A¤£¤¯¤§¦Ü¤]¡A«D¥Á¤§±N¤]¡A«D¥D¤§¦õ¤]¡A«D³Ó¤§¥D¤]¡C¬G©ú§g½å±N©Ò¥H°Ê¦Ó³Ó¤H¡A¦¨¥\¥X©ó²³ªÌ¡A¥ýª¾¤]¡C¥ýª¾ªÌ¡A¤£¥i¨ú©ó°­¯«¡A¤£¥i¶H©ó¨Æ¡A¤£¥iÅç©ó«×¡A¥²¨ú©ó¤H¡Aª¾¼Ä¤§±¡ªÌ¤]¡C¬G¥Î¶¡¦³¤­¡G¦³¦]¶¡¡A¦³¤º¶¡¡A¦³¤Ï¶¡¡A¦³¦º¶¡¡A¦³¥Í¶¡¡C¤­¶¡­Ñ°_¡A²öª¾¨ä¹D¡A¬O¿×¯«¬ö¡A¤H§g¤§Ä_¤]¡C¶m¶¡ªÌ¡A¦]¨ä¶m¤H¦Ó¥Î¤§¡F¤º¶¡ªÌ¡A¦]¨ä©x¤H¦Ó¥Î¤§¡F¤Ï¶¡ªÌ¡A¦]¨ä¼Ä¶¡¦Ó¥Î¤§¡F¦º¶¡ªÌ¡A¬°»¥¨Æ©ó¥~¡A¥O§^»Dª¾¤§¦Ó¶Ç©ó¼Ä¶¡¤]¡F¥Í¶¡ªÌ¡A¤Ï³ø¤]¡C¬G¤T­x¤§¨Æ¡A²ö¿Ë©ó¶¡¡A½à²ö«p©ó¶¡¡A¨Æ²ö±K©ó¶¡¡A«D¸t½å¤£¯à¥Î¶¡¡A«D¤¯¸q¤£¯à¨Ï¶¡¡A«D·L§®¤£¯à±o¶¡¤§¹ê¡C·L«v·L«v¡IµL©Ò¤£¥Î¶¡¤]¡C¶¡¨Æ¥¼µo¦Ó¥ý»DªÌ¡A¶¡»P©Ò§iªÌ­Ý¦º¡C¤Z­x¤§©Ò±ýÀ»¡A«°¤§©Ò±ý§ð¡A¤H¤§©Ò±ý±þ¡A¥²¥ýª¾¨ä¦u±N¡B¥ª¥k¡B¿ÖªÌ¡BªùªÌ¡BªÙ¤H¤§©m¦W¡A¥O§^¶¡¥²¯Áª¾¤§¡C¼Ä¶¡¤§¨Ó¶¡§ÚªÌ¡A¦]¦Ó§Q¤§¡A¾É¦ÓªÙ¤§¡A¬G¤Ï¶¡¥i±o¦Ó¥Î¤]¡F¦]¬O¦Óª¾¤§¡A¬G¶m¶¡¡B¤º¶¡¥i±o¦Ó¨Ï¤]¡F¦]¬O¦Óª¾¤§¡A¬G¦º¶¡¬°»¥¨Æ¡A¥i¨Ï§i¼Ä¡F¦]¬O¦Óª¾¤§¡A¬G¥Í¶¡¥i¨Ï¦p´Á¡C¤­¶¡¤§¨Æ¡A¥D¥²ª¾¤§¡Aª¾¤§¥²¦b©ó¤Ï¶¡¡A¬G¤Ï¶¡¤£¥i¤£«p¤]¡C©õ®ï¤§¿³¤]¡A¥ì¼°¦b®L¡F©P¤§¿³¤]¡A§f¤ú¦b®ï¡C¬G©ú§g½å±N¡A¯à¥H¤W´¼¬°¶¡ªÌ¡A¥²¦¨¤j¥\¡C¦¹§L¤§­n¡A¤T­x¤§©Ò«î¦Ó°Ê¤]¡C diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt new file mode 100644 index 00000000..5797b374 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt @@ -0,0 +1,106 @@ +This file was derived from +http://www.gutenberg.org/files/23864/23864-0.txt +-------- +始計第一 + +å­«å­æ›°ï¼šå…µè€…,國之大事,死生之地,存亡之é“,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚ + +故經之以五事,校之以計,而索其情:一曰é“,二曰天,三曰地,四曰將,五曰法。 + +é“者,令民與上åŒæ„,å¯èˆ‡ä¹‹æ­»ï¼Œå¯èˆ‡ä¹‹ç”Ÿï¼Œè€Œä¸ç•å±ä¹Ÿï¼›å¤©è€…,陰陽ã€å¯’æš‘ã€æ™‚制也;地者,é è¿‘ã€éšªæ˜“ã€å»£ç‹¹ã€æ­»ç”Ÿä¹Ÿï¼›å°‡è€…,智ã€ä¿¡ã€ä»ã€å‹‡ã€åš´ä¹Ÿï¼›æ³•è€…,曲制ã€å®˜é“ã€ä¸»ç”¨ä¹Ÿã€‚凡此五者,將莫ä¸èžï¼ŒçŸ¥ä¹‹è€…å‹ï¼Œä¸çŸ¥è€…ä¸å‹ã€‚ + +故校之以計,而索其情,曰:主孰有é“?將孰有能?天地孰得?法令孰行?兵眾孰強?士å’孰練?賞罰孰明?å¾ä»¥æ­¤çŸ¥å‹è² çŸ£ã€‚ + +å°‡è½å¾è¨ˆï¼Œç”¨ä¹‹å¿…å‹ï¼Œç•™ä¹‹ï¼›å°‡ä¸è½å¾è¨ˆï¼Œç”¨ä¹‹å¿…敗,去之。 + +計利以è½ï¼Œä¹ƒç‚ºä¹‹å‹¢ï¼Œä»¥ä½å…¶å¤–。勢者,因利而制權也。 + +兵者,詭é“也。故能而示之ä¸èƒ½ï¼Œç”¨è€Œç¤ºä¹‹ä¸ç”¨ï¼Œè¿‘而示之é ï¼Œé è€Œç¤ºä¹‹è¿‘。利而誘之,亂而å–之,實而備之,強而é¿ä¹‹ï¼Œæ€’而撓之,å‘而驕之,佚而勞之,親而離之,攻其無備,出其ä¸æ„。此兵家之å‹ï¼Œä¸å¯å…ˆå‚³ä¹Ÿã€‚ + +夫未戰而廟算å‹è€…,得算多也;未戰而廟算ä¸å‹è€…,得算少也。多算å‹ï¼Œå°‘ç®—ä¸å‹ï¼Œè€Œæ³ç„¡ç®—乎ï¼å¾ä»¥æ­¤è§€ä¹‹ï¼Œå‹è² è¦‹çŸ£ã€‚ + +作戰第二 + +å­«å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œé¦³è»Šåƒé§Ÿï¼Œé©è»Šåƒä¹˜ï¼Œå¸¶ç”²åè¬ï¼Œåƒé‡Œé¥‹ç³§ã€‚則內外之費,賓客之用,膠漆之æ,車甲之奉,日費åƒé‡‘,然後åè¬ä¹‹å¸«èˆ‰çŸ£ã€‚ + +其用戰也,貴å‹ï¼Œä¹…則éˆå…µæŒ«éŠ³ï¼Œæ”»åŸŽå‰‡åŠ›å±ˆï¼Œä¹…暴師則國用ä¸è¶³ã€‚夫éˆå…µæŒ«éŠ³ï¼Œå±ˆåŠ›æ®«è²¨ï¼Œå‰‡è«¸ä¾¯ä¹˜å…¶å¼Šè€Œèµ·ï¼Œé›–有智者,ä¸èƒ½å–„其後矣。故兵èžæ‹™é€Ÿï¼Œæœªç¹å·§ä¹‹ä¹…也。夫兵久而國利者,未之有也。故ä¸ç›¡çŸ¥ç”¨å…µä¹‹å®³è€…,則ä¸èƒ½ç›¡çŸ¥ç”¨å…µä¹‹åˆ©ä¹Ÿã€‚ + +善用兵者,役ä¸å†ç±ï¼Œç³§ä¸ä¸‰è¼‰ï¼Œå–用於國,因糧於敵,故è»é£Ÿå¯è¶³ä¹Ÿã€‚國之貧於師者é è¼¸ï¼Œé è¼¸å‰‡ç™¾å§“貧;近於師者貴賣,貴賣則百姓竭,財竭則急於丘役。力屈財殫,中原內虛於家,百姓之費,å去其七;公家之費,破è»ç½·é¦¬ï¼Œç”²èƒ„矢弩,戟楯矛櫓,丘牛大車,å去其六。 + +故智將務食於敵,食敵一é¾ï¼Œç•¶å¾äºŒåé¾ï¼›è稈一石,當å¾äºŒå石。故殺敵者,怒也;å–敵之利者,貨也。故車戰,得車å乘以上,賞其先得者,而更其旌旗。車雜而乘之,å’善而養之,是謂å‹æ•µè€Œç›Šå¼·ã€‚ + +故兵貴å‹ï¼Œä¸è²´ä¹…。故知兵之將,民之å¸å‘½ã€‚國家安å±ä¹‹ä¸»ä¹Ÿã€‚ + +謀攻第三 + +å­«å­æ›°ï¼šå‡¡ç”¨å…µä¹‹æ³•ï¼Œå…¨åœ‹ç‚ºä¸Šï¼Œç ´åœ‹æ¬¡ä¹‹ï¼›å…¨è»ç‚ºä¸Šï¼Œç ´è»æ¬¡ä¹‹ï¼›å…¨æ—…為上,破旅次之;全å’為上,破å’次之;全ä¼ç‚ºä¸Šï¼Œç ´ä¼æ¬¡ä¹‹ã€‚是故百戰百å‹ï¼Œéžå–„之善者也;ä¸æˆ°è€Œå±ˆäººä¹‹å…µï¼Œå–„之善者也。 + +故上兵ä¼è¬€ï¼Œå…¶æ¬¡ä¼äº¤ï¼Œå…¶æ¬¡ä¼å…µï¼Œå…¶ä¸‹æ”»åŸŽã€‚攻城之法,為ä¸å¾—已。修櫓轒轀,具器械,三月而後æˆï¼›è·é—‰ï¼Œåˆä¸‰æœˆè€Œå¾Œå·²ã€‚å°‡ä¸å‹å…¶å¿¿ï¼Œè€ŒèŸ»é™„之,殺士三分之一,而城ä¸æ‹”者,此攻之ç½ä¹Ÿã€‚ + +故善用兵者,屈人之兵,而éžæˆ°ä¹Ÿï¼Œæ‹”人之城而éžæ”»ä¹Ÿï¼Œæ¯€äººä¹‹åœ‹è€Œéžä¹…也,必以全爭於天下,故兵ä¸é “而利å¯å…¨ï¼Œæ­¤è¬€æ”»ä¹‹æ³•ä¹Ÿã€‚ + +故用兵之法,å則åœä¹‹ï¼Œäº”則攻之,å€å‰‡åˆ†ä¹‹ï¼Œæ•µå‰‡èƒ½æˆ°ä¹‹ï¼Œå°‘則能逃之,ä¸è‹¥å‰‡èƒ½é¿ä¹‹ã€‚æ•…å°æ•µä¹‹å …,大敵之擒也。 + +夫將者,國之輔也。輔周則國必強,輔隙則國必弱。故å›ä¹‹æ‰€ä»¥æ‚£æ–¼è»è€…三:ä¸çŸ¥è»ä¹‹ä¸å¯ä»¥é€²è€Œè¬‚之進,ä¸çŸ¥è»ä¹‹ä¸å¯ä»¥é€€è€Œè¬‚之退,是謂縻è»ï¼›ä¸çŸ¥ä¸‰è»ä¹‹äº‹ï¼Œè€ŒåŒä¸‰è»ä¹‹æ”¿ï¼Œå‰‡è»å£«æƒ‘矣;ä¸çŸ¥ä¸‰è»ä¹‹æ¬Šï¼Œè€ŒåŒä¸‰è»ä¹‹ä»»ï¼Œå‰‡è»å£«ç–‘矣。三è»æ—¢æƒ‘且疑,則諸侯之難至矣。是謂亂è»å¼•å‹ã€‚ + +故知å‹æœ‰äº”:知å¯ä»¥æˆ°èˆ‡ä¸å¯ä»¥æˆ°è€…,å‹ã€‚識眾寡之用者,å‹ã€‚上下åŒæ¬²è€…,å‹ã€‚以虞待ä¸è™žè€…,å‹ã€‚將能而å›ä¸å¾¡è€…,å‹ã€‚此五者,知å‹ä¹‹é“也。 + +故曰:知己知彼,百戰ä¸è²½ï¼›ä¸çŸ¥å½¼è€ŒçŸ¥å·±ï¼Œä¸€å‹ä¸€è² ï¼›ä¸çŸ¥å½¼ä¸çŸ¥å·±ï¼Œæ¯æˆ°å¿…敗。 + +è»å½¢ç¬¬å›› + +å­«å­æ›°ï¼šæ˜”之善戰者,先為ä¸å¯å‹ï¼Œä»¥å¾…敵之å¯å‹ã€‚ä¸å¯å‹åœ¨å·±ï¼Œå¯å‹åœ¨æ•µã€‚故善戰者,能為ä¸å¯å‹ï¼Œä¸èƒ½ä½¿æ•µå¿…å¯å‹ã€‚故曰:å‹å¯çŸ¥ï¼Œè€Œä¸å¯ç‚ºã€‚ + +ä¸å¯å‹è€…,守也;å¯å‹è€…,攻也。守則ä¸è¶³ï¼Œæ”»å‰‡æœ‰é¤˜ã€‚善守者,è—æ–¼ä¹åœ°ä¹‹ä¸‹ï¼Œå–„攻者,動於ä¹å¤©ä¹‹ä¸Šï¼Œæ•…能自ä¿è€Œå…¨å‹ä¹Ÿã€‚ + +見å‹ä¸éŽçœ¾äººä¹‹æ‰€çŸ¥ï¼Œéžå–„之善者也;戰å‹è€Œå¤©ä¸‹æ›°å–„,éžå–„之善者也。故舉秋毫ä¸ç‚ºå¤šåŠ›ï¼Œè¦‹æ—¥æœˆä¸ç‚ºæ˜Žç›®ï¼Œèžé›·éœ†ä¸ç‚ºè°è€³ã€‚å¤ä¹‹å–„戰者,å‹æ–¼æ˜“å‹è€…也。故善戰者之å‹ä¹Ÿï¼Œç„¡æ™ºå,無勇功,故其戰å‹ä¸å¿’。ä¸å¿’者,其所措必å‹ï¼Œå‹å·²æ•—者也。故善戰者,先立於ä¸æ•—之地,而ä¸å¤±æ•µä¹‹æ•—也。是故å‹å…µå…ˆå‹ï¼Œè€Œå¾Œæ±‚戰,敗兵先戰而後求å‹ã€‚善用兵者,修é“而ä¿æ³•ï¼Œæ•…能為å‹æ•—之政。 + +兵法:一曰度,二曰é‡ï¼Œä¸‰æ›°æ•¸ï¼Œå››æ›°ç¨±ï¼Œäº”æ›°å‹ã€‚地生度,度生é‡ï¼Œé‡ç”Ÿæ•¸ï¼Œæ•¸ç”Ÿç¨±ï¼Œç¨±ç”Ÿå‹ã€‚æ•…å‹å…µè‹¥ä»¥éŽ°ç¨±éŠ–,敗兵若以銖稱鎰。å‹è€…之戰,若決ç©æ°´æ–¼åƒä»žä¹‹è°¿è€…,形也。 + +兵勢第五 + +å­«å­æ›°ï¼šå‡¡æ²»çœ¾å¦‚治寡,分數是也;鬥眾如鬥寡,形å是也;三è»ä¹‹çœ¾ï¼Œå¯ä½¿å¿…å—敵而無敗者,奇正是也;兵之所加,如以碫投åµè€…,虛實是也。 + +凡戰者,以正åˆï¼Œä»¥å¥‡å‹ã€‚故善出奇者,無窮如天地,ä¸ç«­å¦‚江海。終而複始,日月是也。死而復生,四時是也。è²ä¸éŽäº”,五è²ä¹‹è®Šï¼Œä¸å¯å‹è½ä¹Ÿï¼›è‰²ä¸éŽäº”,五色之變,ä¸å¯å‹è§€ä¹Ÿï¼›å‘³ä¸éŽäº”,五味之變,ä¸å¯å‹å˜—也;戰勢,ä¸éŽå¥‡æ­£ï¼Œå¥‡æ­£ä¹‹è®Šï¼Œä¸å¯å‹çª®ä¹Ÿã€‚奇正相生,如循環之無端,熟能窮之哉? + +激水之疾,至於漂石者,勢也;鷙鳥之疾,至於毀折者,節也。是故善戰者,其勢險,其節短。勢如張弩,節如發機。 + +紛紛紜紜,鬥亂而ä¸å¯äº‚也;渾渾沌沌,形圓而ä¸å¯æ•—也。亂生於治,怯生於勇,弱生於強。治亂,數也;勇怯,勢也;強弱,形也。故善動敵者,形之,敵必從之;予之,敵必å–之。以利動之,以å’待之。 + +故善戰者,求之於勢,ä¸è²¬æ–¼äººï¼›æ•…能擇人而任勢。任勢者,其戰人也,如轉木石。木石之性,安則éœï¼Œå±å‰‡å‹•ï¼Œæ–¹å‰‡æ­¢ï¼Œåœ“則行。故善戰人之勢,如轉圓石於åƒä»žä¹‹å±±è€…,勢也。 + +虛實第六 + +å­«å­æ›°ï¼šå‡¡å…ˆè™•æˆ°åœ°è€Œå¾…敵者佚,後處戰地而趨戰者勞。 + +故善戰者,致人而ä¸è‡´æ–¼äººã€‚能使敵人自至者,利之也;能使敵人ä¸å¾—至者,害之也。故敵佚能勞之,飽能饑之,安能動之。出其所必趨,趨其所ä¸æ„。行åƒé‡Œè€Œä¸å‹žè€…,行於無人之地也;攻而必å–者,攻其所ä¸å®ˆä¹Ÿã€‚守而必固者,守其所ä¸æ”»ä¹Ÿã€‚ + +故善攻者,敵ä¸çŸ¥å…¶æ‰€å®ˆï¼›å–„守者,敵ä¸çŸ¥å…¶æ‰€æ”»ã€‚微乎微乎,至於無形;神乎神乎,至於無è²ï¼Œæ•…能為敵之å¸å‘½ã€‚進而ä¸å¯ç¦¦è€…,沖其虛也;退而ä¸å¯è¿½è€…,速而ä¸å¯åŠä¹Ÿã€‚故我欲戰,敵雖高壘深æºï¼Œä¸å¾—ä¸èˆ‡æˆ‘戰者,攻其所必救也;我ä¸æ¬²æˆ°ï¼Œé›–畫地而守之,敵ä¸å¾—與我戰者,乖其所之也。故形人而我無形,則我專而敵分。我專為一,敵分為å,是以å攻其一也。則我眾敵寡,能以眾擊寡者,則å¾ä¹‹æ‰€èˆ‡æˆ°è€…約矣。å¾æ‰€èˆ‡æˆ°ä¹‹åœ°ä¸å¯çŸ¥ï¼Œä¸å¯çŸ¥å‰‡æ•µæ‰€å‚™è€…多,敵所備者多,則å¾æ‰€èˆ‡æˆ°è€…寡矣。故備å‰å‰‡å¾Œå¯¡ï¼Œå‚™å¾Œå‰‡å‰å¯¡ï¼Œå‚™å·¦å‰‡å³å¯¡ï¼Œå‚™å³å‰‡å·¦å¯¡ï¼Œç„¡æ‰€ä¸å‚™ï¼Œå‰‡ç„¡æ‰€ä¸å¯¡ã€‚寡者,備人者也;眾者,使人備己者也。故知戰之地,知戰之日,則å¯åƒé‡Œè€Œæœƒæˆ°ï¼›ä¸çŸ¥æˆ°ä¹‹åœ°ï¼Œä¸çŸ¥æˆ°æ—¥ï¼Œå‰‡å·¦ä¸èƒ½æ•‘å³ï¼Œå³ä¸èƒ½æ•‘左,å‰ä¸èƒ½æ•‘後,後ä¸èƒ½æ•‘å‰ï¼Œè€Œæ³é è€…數åè£ï¼Œè¿‘者數è£ä¹Žï¼ä»¥å¾åº¦ä¹‹ï¼Œè¶Šäººä¹‹å…µé›–多,亦奚益於å‹å“‰ï¼æ•…曰:å‹å¯ç‚ºä¹Ÿã€‚敵雖眾,å¯ä½¿ç„¡é¬¥ã€‚故策之而知得失之計,候之而知動éœä¹‹ç†ï¼Œå½¢ä¹‹è€ŒçŸ¥æ­»ç”Ÿä¹‹åœ°ï¼Œè§’之而知有餘ä¸è¶³ä¹‹è™•ã€‚故形兵之極,至於無形。無形則深間ä¸èƒ½çªºï¼Œæ™ºè€…ä¸èƒ½è¬€ã€‚因形而措å‹æ–¼çœ¾ï¼Œçœ¾ä¸èƒ½çŸ¥ã€‚人皆知我所以å‹ä¹‹å½¢ï¼Œè€ŒèŽ«çŸ¥å¾æ‰€ä»¥åˆ¶å‹ä¹‹å½¢ã€‚故其戰å‹ä¸å¾©ï¼Œè€Œæ‡‰å½¢æ–¼ç„¡çª®ã€‚夫兵形象水,水之行é¿é«˜è€Œè¶¨ä¸‹ï¼Œå…µä¹‹å½¢é¿å¯¦è€Œæ“Šè™›ï¼›æ°´å› åœ°è€Œåˆ¶æµï¼Œå…µå› æ•µè€Œåˆ¶å‹ã€‚故兵無常勢,水無常形。能因敵變化而å–å‹è€…,謂之神。故五行無常å‹ï¼Œå››æ™‚無常ä½ï¼Œæ—¥æœ‰çŸ­é•·ï¼Œæœˆæœ‰æ­»ç”Ÿã€‚ + +è»çˆ­ç¬¬ä¸ƒ + +å­«å­æ›°ï¼š 凡用兵之法,將å—命於å›ï¼Œåˆè»èšçœ¾ï¼Œäº¤å’Œè€Œèˆï¼ŒèŽ«é›£æ–¼è»çˆ­ã€‚è»çˆ­ä¹‹é›£è€…,以迂為直,以患為利。故迂其途,而誘之以利,後人發,先人至,此知迂直之計者也。è»çˆ­ç‚ºåˆ©ï¼Œè»çˆ­ç‚ºå±ã€‚舉è»è€Œçˆ­åˆ©å‰‡ä¸åŠï¼Œå§”è»è€Œçˆ­åˆ©å‰‡è¼œé‡æ。是故æ²ç”²è€Œè¶¨ï¼Œæ—¥å¤œä¸è™•ï¼Œå€é“兼行,百裡而爭利,則擒三將è»ï¼Œå‹è€…先,疲者後,其法å一而至;五åè£è€Œçˆ­åˆ©ï¼Œå‰‡è¹¶ä¸Šå°‡è»ï¼Œå…¶æ³•åŠè‡³ï¼›ä¸‰åè£è€Œçˆ­åˆ©ï¼Œå‰‡ä¸‰åˆ†ä¹‹äºŒè‡³ã€‚是故è»ç„¡è¼œé‡å‰‡äº¡ï¼Œç„¡ç³§é£Ÿå‰‡äº¡ï¼Œç„¡å§”ç©å‰‡äº¡ã€‚æ•…ä¸çŸ¥è«¸ä¾¯ä¹‹è¬€è€…,ä¸èƒ½è±«äº¤ï¼›ä¸çŸ¥å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ä¹‹å½¢è€…,ä¸èƒ½è¡Œè»ï¼›ä¸ç”¨é„‰å°Žè€…,ä¸èƒ½å¾—地利。故兵以è©ç«‹ï¼Œä»¥åˆ©å‹•ï¼Œä»¥åˆ†å’Œç‚ºè®Šè€…也。故其疾如風,其å¾å¦‚林,侵掠如ç«ï¼Œä¸å‹•å¦‚山,難知如陰,動如雷震。掠鄉分眾,廓地分利,懸權而動。先知迂直之計者å‹ï¼Œæ­¤è»çˆ­ä¹‹æ³•ä¹Ÿã€‚《è»æ”¿ã€‹æ›°ï¼šâ€œè¨€ä¸ç›¸èžï¼Œæ•…為之金鼓;視ä¸ç›¸è¦‹ï¼Œæ•…為之旌旗。â€å¤«é‡‘鼓旌旗者,所以一民之耳目也。民既專一,則勇者ä¸å¾—ç¨é€²ï¼Œæ€¯è€…ä¸å¾—ç¨é€€ï¼Œæ­¤ç”¨çœ¾ä¹‹æ³•ä¹Ÿã€‚故夜戰多金鼓,æ™æˆ°å¤šæ—Œæ——,所以變人之耳目也。三è»å¯å¥ªæ°£ï¼Œå°‡è»å¯å¥ªå¿ƒã€‚是故æœæ°£éŠ³ï¼Œæ™æ°£æƒ°ï¼Œæš®æ°£æ­¸ã€‚善用兵者,é¿å…¶éŠ³æ°£ï¼Œæ“Šå…¶æƒ°æ­¸ï¼Œæ­¤æ²»æ°£è€…也。以治待亂,以éœå¾…嘩,此治心者也。以近待é ï¼Œä»¥ä½šå¾…勞,以飽待饑,此治力者也。無邀正正之旗,無擊堂堂之陳,此治變者也。故用兵之法,高陵勿å‘,背丘勿逆,佯北勿從,銳å’勿攻,餌兵勿食,歸師勿é,åœå¸«éºé—•ï¼Œçª®å¯‡å‹¿è¿«ï¼Œæ­¤ç”¨å…µä¹‹æ³•ä¹Ÿã€‚ + +ä¹è®Šç¬¬å…« + +å­«å­æ›°ï¼š 凡用兵之法,將å—命於å›ï¼Œåˆè»èšåˆã€‚泛地無èˆï¼Œè¡¢åœ°åˆäº¤ï¼Œçµ•åœ°ç„¡ç•™ï¼Œåœåœ°å‰‡è¬€ï¼Œæ­»åœ°å‰‡æˆ°ï¼Œé€”有所ä¸ç”±ï¼Œè»æœ‰æ‰€ä¸æ“Šï¼ŒåŸŽæœ‰æ‰€ä¸æ”»ï¼Œåœ°æœ‰æ‰€ä¸çˆ­ï¼Œå›å‘½æœ‰æ‰€ä¸å—。故將通於ä¹è®Šä¹‹åˆ©è€…,知用兵矣;將ä¸é€šä¹è®Šä¹‹åˆ©ï¼Œé›–知地形,ä¸èƒ½å¾—地之利矣;治兵ä¸çŸ¥ä¹è®Šä¹‹è¡“,雖知五利,ä¸èƒ½å¾—人之用矣。是故智者之慮,必雜於利害,雜於利而務å¯ä¿¡ä¹Ÿï¼Œé›œæ–¼å®³è€Œæ‚£å¯è§£ä¹Ÿã€‚是故屈諸侯者以害,役諸侯者以業,趨諸侯者以利。故用兵之法,無æƒå…¶ä¸ä¾†ï¼Œæƒå¾æœ‰ä»¥å¾…之;無æƒå…¶ä¸æ”»ï¼Œæƒå¾æœ‰æ‰€ä¸å¯æ”»ä¹Ÿã€‚故將有五å±ï¼Œå¿…æ­»å¯æ®ºï¼Œå¿…生å¯è™œï¼Œå¿¿é€Ÿå¯ä¾®ï¼Œå»‰æ½”å¯è¾±ï¼Œæ„›æ°‘å¯ç…©ã€‚凡此五者,將之éŽä¹Ÿï¼Œç”¨å…µä¹‹ç½ä¹Ÿã€‚覆è»æ®ºå°‡ï¼Œå¿…以五å±ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚ + +è¡Œè»ç¬¬ä¹ + +å­«å­æ›°ï¼šå‡¡è™•è»ç›¸æ•µï¼Œçµ•å±±ä¾ç©€ï¼Œè¦–生處高,戰隆無登,此處山之è»ä¹Ÿã€‚絕水必é æ°´ï¼Œå®¢çµ•æ°´è€Œä¾†ï¼Œå‹¿è¿Žä¹‹æ–¼æ°´å…§ï¼Œä»¤åŠæ¸¡è€Œæ“Šä¹‹åˆ©ï¼Œæ¬²æˆ°è€…,無附於水而迎客,視生處高,無迎水æµï¼Œæ­¤è™•æ°´ä¸Šä¹‹è»ä¹Ÿã€‚絕斥澤,唯亟去無留,若交è»æ–¼æ–¥æ¾¤ä¹‹ä¸­ï¼Œå¿…ä¾æ°´è‰è€ŒèƒŒçœ¾æ¨¹ï¼Œæ­¤è™•æ–¥æ¾¤ä¹‹è»ä¹Ÿã€‚平陸處易,å³èƒŒé«˜ï¼Œå‰æ­»å¾Œç”Ÿï¼Œæ­¤è™•å¹³é™¸ä¹‹è»ä¹Ÿã€‚凡此四è»ä¹‹åˆ©ï¼Œé»ƒå¸ä¹‹æ‰€ä»¥å‹å››å¸ä¹Ÿã€‚凡è»å¥½é«˜è€Œæƒ¡ä¸‹ï¼Œè²´é™½è€Œè³¤é™°ï¼Œé¤Šç”Ÿè€Œè™•å¯¦ï¼Œè»ç„¡ç™¾ç–¾ï¼Œæ˜¯è¬‚å¿…å‹ã€‚丘陵堤防,必處其陽而å³èƒŒä¹‹ï¼Œæ­¤å…µä¹‹åˆ©ï¼Œåœ°ä¹‹åŠ©ä¹Ÿã€‚上雨水æµè‡³ï¼Œæ¬²æ¶‰è€…,待其定也。凡地有絕澗ã€å¤©äº•ã€å¤©ç‰¢ã€å¤©ç¾…ã€å¤©é™·ã€å¤©éš™ï¼Œå¿…亟去之,勿近也。å¾é ä¹‹ï¼Œæ•µè¿‘之;å¾è¿Žä¹‹ï¼Œæ•µèƒŒä¹‹ã€‚è»æ—有險阻ã€æ½¢äº•ã€è’¹è‘­ã€å°æž—ã€è˜™è–ˆè€…,必謹覆索之,此ä¼å§¦ä¹‹æ‰€è™•ä¹Ÿã€‚敵近而éœè€…,æƒå…¶éšªä¹Ÿï¼›é è€ŒæŒ‘戰者,欲人之進也;其所居易者,利也;眾樹動者,來也;眾è‰å¤šéšœè€…,疑也;鳥起者,ä¼ä¹Ÿï¼›ç¸é§­è€…,覆也;塵高而銳者,車來也;å‘而廣者,徒來也;散而æ¢é”者,樵採也;少而往來者,營è»ä¹Ÿï¼›è¾­å‘而備者,進也;辭強而進驅者,退也;輕車先出居其å´è€…,陳也;無約而請和者,謀也;奔走而陳兵者,期也;åŠé€²åŠé€€è€…,誘也;æ–而立者,饑也;汲而先飲者,渴也;見利而ä¸é€²è€…,勞也;鳥集者,虛也;夜呼者,æ也;è»æ“¾è€…,將ä¸é‡ä¹Ÿï¼›æ—Œæ——動者,亂也;å怒者,倦也;殺馬肉食者,è»ç„¡ç³§ä¹Ÿï¼›æ‡¸ç”€ä¸è¿”å…¶èˆè€…,窮寇也;諄諄翕翕,å¾èˆ‡äººè¨€è€…,失眾也;數賞者,窘也;數罰者,困也;先暴而後ç•å…¶çœ¾è€…,ä¸ç²¾ä¹‹è‡³ä¹Ÿï¼›ä¾†å§”è¬è€…,欲休æ¯ä¹Ÿã€‚兵怒而相迎,久而ä¸åˆï¼Œåˆä¸ç›¸åŽ»ï¼Œå¿…謹察之。兵éžè²´ç›Šå¤šä¹Ÿï¼ŒæƒŸç„¡æ­¦é€²ï¼Œè¶³ä»¥ä¸¦åŠ›æ–™æ•µå–人而已。夫惟無慮而易敵者,必擒於人。å’未親而罰之,則ä¸æœï¼Œä¸æœå‰‡é›£ç”¨ã€‚å’已親附而罰ä¸è¡Œï¼Œå‰‡ä¸å¯ç”¨ã€‚æ•…åˆä¹‹ä»¥æ–‡ï¼Œé½Šä¹‹ä»¥æ­¦ï¼Œæ˜¯è¬‚å¿…å–。令素行以教其民,則民æœï¼›ä»¤ç´ ä¸è¡Œä»¥æ•™å…¶æ°‘,則民ä¸æœã€‚令素行者,與眾相得也。 + +地形第å + +å­«å­æ›°ï¼šåœ°å½¢æœ‰é€šè€…ã€æœ‰æŽ›è€…ã€æœ‰æ”¯è€…ã€æœ‰éš˜è€…ã€æœ‰éšªè€…ã€æœ‰é è€…。我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥ä¾†ï¼Œæ›°é€šã€‚通形者,先居高陽,利糧é“,以戰則利。å¯ä»¥å¾€ï¼Œé›£ä»¥è¿”,曰掛。掛形者,敵無備,出而å‹ä¹‹ï¼Œæ•µè‹¥æœ‰å‚™ï¼Œå‡ºè€Œä¸å‹ï¼Œé›£ä»¥è¿”,ä¸åˆ©ã€‚我出而ä¸åˆ©ï¼Œå½¼å‡ºè€Œä¸åˆ©ï¼Œæ›°æ”¯ã€‚支形者,敵雖利我,我無出也,引而去之,令敵åŠå‡ºè€Œæ“Šä¹‹åˆ©ã€‚隘形者,我先居之,必盈之以待敵。若敵先居之,盈而勿從,ä¸ç›ˆè€Œå¾žä¹‹ã€‚險形者,我先居之,必居高陽以待敵;若敵先居之,引而去之,勿從也。é å½¢è€…,勢å‡é›£ä»¥æŒ‘戰,戰而ä¸åˆ©ã€‚凡此六者,地之é“也,將之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡兵有走者ã€æœ‰é¦³è€…ã€æœ‰é™·è€…ã€æœ‰å´©è€…ã€æœ‰äº‚者ã€æœ‰åŒ—者。凡此六者,éžå¤©åœ°ä¹‹ç½ï¼Œå°‡ä¹‹éŽä¹Ÿã€‚夫勢å‡ï¼Œä»¥ä¸€æ“Šå,曰走;å’å¼·å弱,曰馳;åå¼·å’弱,曰陷;大å怒而ä¸æœï¼Œé‡æ•µæ‡Ÿè€Œè‡ªæˆ°ï¼Œå°‡ä¸çŸ¥å…¶èƒ½ï¼Œæ›°å´©ï¼›å°‡å¼±ä¸åš´ï¼Œæ•™é“ä¸æ˜Žï¼Œåå’無常,陳兵縱橫,曰亂;將ä¸èƒ½æ–™æ•µï¼Œä»¥å°‘åˆçœ¾ï¼Œä»¥å¼±æ“Šå¼·ï¼Œå…µç„¡é¸é‹’,曰北。凡此六者,敗之é“也,將之至任,ä¸å¯ä¸å¯Ÿä¹Ÿã€‚夫地形者,兵之助也。料敵制å‹ï¼Œè¨ˆéšªéš˜é è¿‘,上將之é“也。知此而用戰者必å‹ï¼Œä¸çŸ¥æ­¤è€Œç”¨æˆ°è€…必敗。故戰é“å¿…å‹ï¼Œä¸»æ›°ç„¡æˆ°ï¼Œå¿…戰å¯ä¹Ÿï¼›æˆ°é“ä¸å‹ï¼Œä¸»æ›°å¿…戰,無戰å¯ä¹Ÿã€‚故進ä¸æ±‚å,退ä¸é¿ç½ªï¼Œå”¯æ°‘是ä¿ï¼Œè€Œåˆ©æ–¼ä¸»ï¼Œåœ‹ä¹‹å¯¶ä¹Ÿã€‚視å’如嬰兒,故å¯ä»¥èˆ‡ä¹‹èµ´æ·±æºªï¼›è¦–å’如愛å­ï¼Œæ•…å¯èˆ‡ä¹‹ä¿±æ­»ã€‚厚而ä¸èƒ½ä½¿ï¼Œæ„›è€Œä¸èƒ½ä»¤ï¼Œäº‚而ä¸èƒ½æ²»ï¼Œè­¬è‹¥é©•å­ï¼Œä¸å¯ç”¨ä¹Ÿã€‚知å¾å’之å¯ä»¥æ“Šï¼Œè€Œä¸çŸ¥æ•µä¹‹ä¸å¯æ“Šï¼Œå‹ä¹‹åŠä¹Ÿï¼›çŸ¥æ•µä¹‹å¯æ“Šï¼Œè€Œä¸çŸ¥å¾å’之ä¸å¯ä»¥æ“Šï¼Œå‹ä¹‹åŠä¹Ÿï¼›çŸ¥æ•µä¹‹å¯æ“Šï¼ŒçŸ¥å¾å’之å¯ä»¥æ“Šï¼Œè€Œä¸çŸ¥åœ°å½¢ä¹‹ä¸å¯ä»¥æˆ°ï¼Œå‹ä¹‹åŠä¹Ÿã€‚故知兵者,動而ä¸è¿·ï¼Œèˆ‰è€Œä¸çª®ã€‚故曰:知彼知己,å‹ä¹ƒä¸æ®†ï¼›çŸ¥å¤©çŸ¥åœ°ï¼Œå‹ä¹ƒå¯å…¨ã€‚ + +ä¹åœ°ç¬¬å一 + +å­«å­æ›°ï¼šç”¨å…µä¹‹æ³•ï¼Œæœ‰æ•£åœ°ï¼Œæœ‰è¼•åœ°ï¼Œæœ‰çˆ­åœ°ï¼Œæœ‰äº¤åœ°ï¼Œæœ‰è¡¢åœ°ï¼Œæœ‰é‡åœ°ï¼Œæœ‰æ³›åœ°ï¼Œæœ‰åœåœ°ï¼Œæœ‰æ­»åœ°ã€‚諸侯自戰其地者,為散地;入人之地ä¸æ·±è€…,為輕地;我得亦利,彼得亦利者,為爭地;我å¯ä»¥å¾€ï¼Œå½¼å¯ä»¥ä¾†è€…,為交地;諸侯之地三屬,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為é‡åœ°ï¼›å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ï¼Œå‡¡é›£è¡Œä¹‹é“者,為泛地;所由入者隘,所從歸者迂,彼寡å¯ä»¥æ“Šå¾ä¹‹çœ¾è€…,為åœåœ°ï¼›ç–¾æˆ°å‰‡å­˜ï¼Œä¸ç–¾æˆ°å‰‡äº¡è€…,為死地。是故散地則無戰,輕地則無止,爭地則無攻,交地則無絕,衢地則åˆäº¤ï¼Œé‡åœ°å‰‡æŽ ï¼Œæ³›åœ°å‰‡è¡Œï¼Œåœåœ°å‰‡è¬€ï¼Œæ­»åœ°å‰‡æˆ°ã€‚å¤ä¹‹å–„用兵者,能使敵人å‰å¾Œä¸ç›¸åŠï¼Œçœ¾å¯¡ä¸ç›¸æƒï¼Œè²´è³¤ä¸ç›¸æ•‘,上下ä¸ç›¸æ”¶ï¼Œå’離而ä¸é›†ï¼Œå…µåˆè€Œä¸é½Šã€‚åˆæ–¼åˆ©è€Œå‹•ï¼Œä¸åˆæ–¼åˆ©è€Œæ­¢ã€‚æ•¢å•æ•µçœ¾è€Œæ•´å°‡ä¾†ï¼Œå¾…之若何曰:先奪其所愛則è½çŸ£ã€‚兵之情主速,乘人之ä¸åŠã€‚ç”±ä¸è™žä¹‹é“,攻其所ä¸æˆ’也。凡為客之é“,深入則專。主人ä¸å…‹ï¼ŒæŽ æ–¼é¥’野,三è»è¶³é£Ÿã€‚謹養而勿勞,並氣ç©åŠ›ï¼Œé‹å…µè¨ˆè¬€ï¼Œç‚ºä¸å¯æ¸¬ã€‚投之無所往,死且ä¸åŒ—。死焉ä¸å¾—,士人盡力。兵士甚陷則ä¸æ‡¼ï¼Œç„¡æ‰€å¾€å‰‡å›ºï¼Œæ·±å…¥å‰‡æ‹˜ï¼Œä¸å¾—已則鬥。是故其兵ä¸ä¿®è€Œæˆ’,ä¸æ±‚而得,ä¸ç´„而親,ä¸ä»¤è€Œä¿¡ï¼Œç¦ç¥¥åŽ»ç–‘,至死無所之。å¾å£«ç„¡é¤˜è²¡ï¼Œéžæƒ¡è²¨ä¹Ÿï¼›ç„¡é¤˜å‘½ï¼Œéžæƒ¡å£½ä¹Ÿã€‚令發之日,士å’å者涕沾襟,åƒè‡¥è€…涕交頤,投之無所往,諸ã€åŠŒä¹‹å‹‡ä¹Ÿã€‚故善用兵者,譬如率然。率然者,常山之蛇也。擊其首則尾至,擊其尾則首至,擊其中則首尾俱至。敢å•å…µå¯ä½¿å¦‚率然乎?曰å¯ã€‚夫å³äººèˆ‡è¶Šäººç›¸æƒ¡ä¹Ÿï¼Œç•¶å…¶åŒèˆŸè€Œæ¿Ÿè€Œé‡é¢¨ï¼Œå…¶ç›¸æ•‘也如左å³æ‰‹ã€‚是故方馬埋輪,未足æƒä¹Ÿï¼›é½Šå‹‡å¦‚一,政之é“也;剛柔皆得,地之ç†ä¹Ÿã€‚故善用兵者,攜手若使一人,ä¸å¾—已也。將è»ä¹‹äº‹ï¼Œéœä»¥å¹½ï¼Œæ­£ä»¥æ²»ï¼Œèƒ½æ„šå£«å’之耳目,使之無知;易其事,é©å…¶è¬€ï¼Œä½¿äººç„¡è­˜ï¼›æ˜“其居,迂其途,使民ä¸å¾—慮。帥與之期,如登高而去其梯;帥與之深入諸侯之地,而發其機。若驅群羊,驅而往,驅而來,莫知所之。èšä¸‰è»ä¹‹çœ¾ï¼ŒæŠ•ä¹‹æ–¼éšªï¼Œæ­¤è¬‚å°‡è»ä¹‹äº‹ä¹Ÿã€‚ä¹åœ°ä¹‹è®Šï¼Œå±ˆä¼¸ä¹‹åŠ›ï¼Œäººæƒ…之ç†ï¼Œä¸å¯ä¸å¯Ÿä¹Ÿã€‚凡為客之é“,深則專,淺則散。去國越境而師者,絕地也;四徹者,衢地也;入深者,é‡åœ°ä¹Ÿï¼›å…¥æ·ºè€…,輕地也;背固å‰éš˜è€…,åœåœ°ä¹Ÿï¼›ç„¡æ‰€å¾€è€…,死地也。是故散地å¾å°‡ä¸€å…¶å¿—,輕地å¾å°‡ä½¿ä¹‹å±¬ï¼Œçˆ­åœ°å¾å°‡è¶¨å…¶å¾Œï¼Œäº¤åœ°å¾å°‡è¬¹å…¶å®ˆï¼Œäº¤åœ°å¾å°‡å›ºå…¶çµï¼Œè¡¢åœ°å¾å°‡è¬¹å…¶æƒï¼Œé‡åœ°å¾å°‡ç¹¼å…¶é£Ÿï¼Œæ³›åœ°å¾å°‡é€²å…¶é€”,åœåœ°å¾å°‡å¡žå…¶é—•ï¼Œæ­»åœ°å¾å°‡ç¤ºä¹‹ä»¥ä¸æ´»ã€‚故兵之情:åœå‰‡ç¦¦ï¼Œä¸å¾—已則鬥,éŽå‰‡å¾žã€‚是故ä¸çŸ¥è«¸ä¾¯ä¹‹è¬€è€…,ä¸èƒ½é äº¤ï¼›ä¸çŸ¥å±±æž—ã€éšªé˜»ã€æ²®æ¾¤ä¹‹å½¢è€…,ä¸èƒ½è¡Œè»ï¼›ä¸ç”¨é„‰å°Žï¼Œä¸èƒ½å¾—地利。四五者,一ä¸çŸ¥ï¼Œéžéœ¸çŽ‹ä¹‹å…µä¹Ÿã€‚夫霸王之兵,ä¼å¤§åœ‹ï¼Œå‰‡å…¶çœ¾ä¸å¾—èšï¼›å¨åŠ æ–¼æ•µï¼Œå‰‡å…¶äº¤ä¸å¾—åˆã€‚是故ä¸çˆ­å¤©ä¸‹ä¹‹äº¤ï¼Œä¸é¤Šå¤©ä¸‹ä¹‹æ¬Šï¼Œä¿¡å·±ä¹‹ç§ï¼Œå¨åŠ æ–¼æ•µï¼Œå‰‡å…¶åŸŽå¯æ‹”,其國å¯éš³ã€‚施無法之賞,懸無政之令。犯三è»ä¹‹çœ¾ï¼Œè‹¥ä½¿ä¸€äººã€‚犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然後存,陷之死地然後生。夫眾陷於害,然後能為å‹æ•—。故為兵之事,在順詳敵之æ„,並敵一å‘,åƒé‡Œæ®ºå°‡ï¼Œæ˜¯è¬‚巧能æˆäº‹ã€‚是故政舉之日,夷關折符,無通其使,厲於廊廟之上,以誅其事。敵人開闔,必亟入之,先其所愛,微與之期,è¸å¢¨éš¨æ•µï¼Œä»¥æ±ºæˆ°äº‹ã€‚是故始如處女,敵人開戶;後如脫兔,敵ä¸åŠæ‹’。 + +ç«æ”»ç¬¬å二 + +å­«å­æ›°ï¼šå‡¡ç«æ”»æœ‰äº”:一曰ç«äººï¼ŒäºŒæ›°ç«ç©ï¼Œä¸‰æ›°ç«è¼œï¼Œå››æ›°ç«åº«ï¼Œäº”æ›°ç«éšŠã€‚è¡Œç«å¿…有因,因必素具。發ç«æœ‰æ™‚,起ç«æœ‰æ—¥ã€‚時者,天之燥也。日者,月在箕ã€å£ã€ç¿¼ã€è»«ä¹Ÿã€‚凡此四宿者,風起之日也。凡ç«æ”»ï¼Œå¿…因五ç«ä¹‹è®Šè€Œæ‡‰ä¹‹ï¼šç«ç™¼æ–¼å…§ï¼Œå‰‡æ—©æ‡‰ä¹‹æ–¼å¤–ï¼›ç«ç™¼è€Œå…¶å…µéœè€…,待而勿攻,極其ç«åŠ›ï¼Œå¯å¾žè€Œå¾žä¹‹ï¼Œä¸å¯å¾žå‰‡ä¸Šã€‚ç«å¯ç™¼æ–¼å¤–,無待於內,以時發之,ç«ç™¼ä¸Šé¢¨ï¼Œç„¡æ”»ä¸‹é¢¨ï¼Œæ™é¢¨ä¹…,夜風止。凡è»å¿…知五ç«ä¹‹è®Šï¼Œä»¥æ•¸å®ˆä¹‹ã€‚故以ç«ä½æ”»è€…明,以水ä½æ”»è€…強。水å¯ä»¥çµ•ï¼Œä¸å¯ä»¥å¥ªã€‚夫戰å‹æ”»å–而ä¸æƒ°å…¶åŠŸè€…凶,命曰“費留â€ã€‚故曰:明主慮之,良將惰之,éžåˆ©ä¸å‹•ï¼Œéžå¾—ä¸ç”¨ï¼Œéžå±ä¸æˆ°ã€‚主ä¸å¯ä»¥æ€’而興師,將ä¸å¯ä»¥æ…而攻戰。åˆæ–¼åˆ©è€Œå‹•ï¼Œä¸åˆæ–¼åˆ©è€Œä¸Šã€‚怒å¯ä»¥è¤‡å–œï¼Œæ…å¯ä»¥è¤‡èªªï¼Œäº¡åœ‹ä¸å¯ä»¥è¤‡å­˜ï¼Œæ­»è€…ä¸å¯ä»¥è¤‡ç”Ÿã€‚故明主慎之,良將警之。此安國全è»ä¹‹é“也。 + +用間第å三 + +å­«å­æ›°ï¼š 凡興師åè¬ï¼Œå‡ºå¾åƒé‡Œï¼Œç™¾å§“之費,公家之奉,日費åƒé‡‘,內外騷動,怠於é“路,ä¸å¾—æ“事者,七åè¬å®¶ã€‚相守數年,以爭一日之å‹ï¼Œè€Œæ„›çˆµç¥¿ç™¾é‡‘,ä¸çŸ¥æ•µä¹‹æƒ…者,ä¸ä»ä¹‹è‡³ä¹Ÿï¼Œéžæ°‘之將也,éžä¸»ä¹‹ä½ä¹Ÿï¼Œéžå‹ä¹‹ä¸»ä¹Ÿã€‚故明å›è³¢å°‡æ‰€ä»¥å‹•è€Œå‹äººï¼ŒæˆåŠŸå‡ºæ–¼çœ¾è€…,先知也。先知者,ä¸å¯å–於鬼神,ä¸å¯è±¡æ–¼äº‹ï¼Œä¸å¯é©—於度,必å–於人,知敵之情者也。故用間有五:有因間,有內間,有å間,有死間,有生間。五間俱起,莫知其é“,是謂神紀,人å›ä¹‹å¯¶ä¹Ÿã€‚鄉間者,因其鄉人而用之;內間者,因其官人而用之;å間者,因其敵間而用之;死間者,為誑事於外,令å¾èžçŸ¥ä¹‹è€Œå‚³æ–¼æ•µé–“也;生間者,å報也。故三è»ä¹‹äº‹ï¼ŒèŽ«è¦ªæ–¼é–“,賞莫厚於間,事莫密於間,éžè–è³¢ä¸èƒ½ç”¨é–“,éžä»ç¾©ä¸èƒ½ä½¿é–“,éžå¾®å¦™ä¸èƒ½å¾—間之實。微哉微哉ï¼ç„¡æ‰€ä¸ç”¨é–“也。間事未發而先èžè€…,間與所告者兼死。凡è»ä¹‹æ‰€æ¬²æ“Šï¼ŒåŸŽä¹‹æ‰€æ¬²æ”»ï¼Œäººä¹‹æ‰€æ¬²æ®ºï¼Œå¿…先知其守將ã€å·¦å³ã€è¬è€…ã€é–€è€…ã€èˆäººä¹‹å§“å,令å¾é–“必索知之。敵間之來間我者,因而利之,導而èˆä¹‹ï¼Œæ•…åé–“å¯å¾—而用也;因是而知之,故鄉間ã€å…§é–“å¯å¾—而使也;因是而知之,故死間為誑事,å¯ä½¿å‘Šæ•µï¼›å› æ˜¯è€ŒçŸ¥ä¹‹ï¼Œæ•…生間å¯ä½¿å¦‚期。五間之事,主必知之,知之必在於å間,故åé–“ä¸å¯ä¸åŽšä¹Ÿã€‚昔殷之興也,伊摯在å¤ï¼›å‘¨ä¹‹èˆˆä¹Ÿï¼Œå‘‚牙在殷。故明å›è³¢å°‡ï¼Œèƒ½ä»¥ä¸Šæ™ºç‚ºé–“者,必æˆå¤§åŠŸã€‚此兵之è¦ï¼Œä¸‰è»ä¹‹æ‰€æƒè€Œå‹•ä¹Ÿã€‚ diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt new file mode 100644 index 00000000..c9ba04c4 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt @@ -0,0 +1,175 @@ +This file was derived from +http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 +-------- +[¼Ò°³] +ÀÜÀÎÇÑ ¿î¸íÀº ÀÌ·¸°Ô Àΰ£À» Á¶·ÕÇÏ°ï ÇÑ´Ù. ¿ì¸®°¡ Æò¼Ò ¸¶À½ ¼Ó Àú ±íÀº °÷¿¡ ¿òÄÑÁã°í ÀÖ´ø ÀÚÁ¸½É µûÀ§´Â ¾î´À ÇÑ ¼ø°£ ÀüÇô ¹«¿ëÁö¹°À̶õ °ÍÀÌ µå·¯³ª°í ¸¸´Ù. Çϱâ¾ß ÀÌ·¸°Ô »îÀÇ ÇÑ ¼ø°£, ´« ±ô¦ÇÒ »õ¿¡ ¿ì¸®¸¦ ÈÄ·Á °¥±â°í Áö³ª°¡´Â ±× Áø½ÇÀÌ ¹Ì·¡ÀÇ ¾î´À³¯¿¡´Â ¶Ç ³²±è¾øÀÌ ¿ì¸® ´« ¾Õ¿¡ ÆîÃÄÁúÁöµµ ¸ð¸¥´Ù. Á×À½À» ¾ÕµÐ »ç¶÷µé¿¡°Ô´Â ÀÚ½ÅÀÇ »î Àüü°¡ ÇÑ ¼ø°£¿¡ ´Ù½Ã º¸Àδٴ ±×·± ¾ê±âµµ ÀÖ´øµ¥... + +´Ù½Ã Àо´Ï ²ûÂïÇÑ »ý°¢µµ µç´Ù. ½Ä¹ÎÁö ½Ã´ëÀÇ ¾Ï¿ïÇÑ »î, ±× ²ö²öÇÑ ³¿»õ¸¦ ÇÇÇÒ ¼ö ¾ø´Ù. 21¼¼±â¸¦ »ç´Â ¿ì¸®µé¿¡°Õ ±×·± ³¿»õ´Â ¾Æ¿¹ Àο¬ÀÌ ¾ø´Â °Íó·³ ´À²¸Áú ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª °ú¿¬ ±×·²±î? ÀÌ·± ³¿»õ¸¦ ¸ð¸£°í Æò»ý »ç´Â »ç¶÷µµ ÀÖ°ÚÁö¸¸, ÀüÇô °ü·ÃÀÌ ¾ø´Â °ÍÀº ¾Æ´Ò °ÍÀÌ´Ù. ±×Àú ¿ì¿¬ÀÏ »ÓÀÌ´Ù. ¾Æ³»¸¦ ¹Ú´ëÇÏ´Â ±è ÷ÁöÀÇ ¸ð½À... ¿ä»õ °°À¸¸é °£ÀÌ ¹è ¹ÛÀ¸·Î Æ¢¾î³ª¿Â ³²ÀÚ°ÚÁö¸¸, ±×·¡µµ ±× ¾ÖÁ¤Àº ´õ ÁøÇÑ °ÍÀÏ ¼öµµ ÀÖ´Ù. + +[ÀÛ°¡ ¼Ò°³] +Çö Áø °Ç(úÜòåËí, 1900-1943) : ¼Ò¼³°¡. Çѱ¹ »ç½ÇÁÖÀÇ ´ÜÆí¼Ò¼³ÀÇ ±âƲÀ» ´ÙÁø ÀÛ°¡ÀÌ´Ù. º»°üÀº ¿¬ÁÖ(æÅñ¶). ¾ÆÈ£´Â ºùÇã(Þ»úÈ). 1920³â´ë Àü¹Ý±â¿¡´Â ÀÚÀüÀû ¿ä¼Ò°¡ °­ÇÑ °³ÀÎÀû üÇè¼Ò¼³ÀÎ <ºóó> <¼ú ±ÇÇÏ´Â »çȸ>, ¼º(àõ)ÀÇ ¹®Á¦¿Í ¾ÖÁ¤¹®Á¦¸¦ ´Ù·é <»õ»¡°£ ¿ôÀ½> µîÀÌ ÀÖÀ¸¸ç 1920³â´ë Áß¹Ý ÀÌÈÄ¿¡´Â <ÇǾƳë> <¿ìÆí±¹¿¡¼­> <ºÒ> <°íÇâ> µî ¼¼Å¿¡ÀÇ °ü½É°ú ½Ä¹ÎÁö »óȲÇÏÀÇ Çö½ÇÀνÄÀÌ µÎµå·¯Áø ÀÛÇ°À» ¸¹ÀÌ ¹ßÇ¥Çß´Ù. <¿î¼ö ÁÁÀº ³¯>µµ ÀÌ·¯ÇÑ °è¿­¿¡ ¼ÓÇÏ´Â ÀÛÇ°ÀÌ´Ù. 1930³â´ë ÀÌÈÄ¿¡´Â ¿ª»çÀǽİú ¿¹¾ðÁÖÀÇÀû ¹®Çаü¿¡ ±Ù°ÅÇÑ ¿ª»ç¼Ò¼³ Áß½ÉÀÇ <¹«¿µÅ¾> <ÈæÄ¡»óÁö(ýÙöÍßÈñý)> <¼±È­°øÁÖ> µî ÀåÆí¼Ò¼³À» ¹ßÇ¥Çß´Ù. + +»õħÇÏ°Ô È帰 Ç°ÀÌ ´«ÀÌ ¿Ã µíÇÏ´õ´Ï ´«Àº ¾Æ´Ï ¿À°í ¾ó´Ù°¡ ¸¸ ºñ°¡ ÃßÀûÃßÀû ³»¸®¾ú´Ù. + +À̳¯À̾߸»·Î µ¿¼Ò¹® ¾È¿¡¼­ ÀÎ·Â°Å²Û ³ë¸©À» ÇÏ´Â ±è ÷Áö¿¡°Ô´Â ¿À·¡°£¸¸¿¡µµ ´ÚÄ£ ¿î¼ö ÁÁÀº ³¯À̾ú´Ù. ¹®¾È¿¡(°Å±âµµ ¹®¹ÛÀº ¾Æ´ÏÁö¸¸) µé¾î°£´ä½Ã´Â ¾ÕÁý ¸¶³ª´ÔÀ» ÀüÂþ±æ±îÁö ¸ð¼Å´Ù µå¸° °ÍÀ» ºñ·ÔÀ¸·Î Çà¿©³ª ¼Õ´ÔÀÌ ÀÖÀ»±î ÇÏ°í Á¤·ùÀå¿¡¼­ ¾îÁ¤¾îÁ¤ÇÏ¸ç ³»¸®´Â »ç¶÷ ÇϳªÇϳª¿¡°Ô °ÅÀÇ ºñ´Â µíÇÑ ´«°áÀ» º¸³»°í ÀÖ´Ù°¡ ¸¶Ä§³» ±³¿øÀÎ µíÇÑ ¾çº¹ÀåÀ̸¦ µ¿±¤Çб³(ÔÔÎÃùÊÎè)±îÁö Å¿ö´Ù ÁÖ±â·Î µÇ¾ú´Ù. + +ù¹ø¿¡ »ï½Ê Àü, µÑ° ¹ø¿¡ ¿À½Ê Àü - ¾Æħ ´ñ¹Ù¶÷¿¡ ±×¸® ÈçÄ¡ ¾ÊÀº ÀÏÀ̾ú´Ù. ±×¾ß¸»·Î Àç¼ö°¡ ¿ÈºÙ¾î¼­ ±Ù ¿­Èê µ¿¾È µ· ±¸°æµµ ¸øÇÑ ±è ÷Áö´Â ½Ê ÀüÂ¥¸® ¹éÅëÈ­ ¼­ Ǭ, ¶Ç´Â ´Ù¼¸ ǬÀÌ Âû±ïÇÏ°í ¼Õ¹Ù´Ú¿¡ ¶³¾îÁú Á¦ °ÅÀÇ ´«¹°À» È긱 ¸¸Å­ ±â»¼¾ú´Ù. ´õ±¸³ª À̳¯ À̶§¿¡ ÀÌ ÆÈ½Ê ÀüÀ̶ó´Â µ·ÀÌ ±×¿¡°Ô ¾ó¸¶³ª À¯¿ëÇÑÁö ¸ô¶ú´Ù. ÄÃÄÃÇÑ ¸ñ¿¡ ¸ðÁÖ ÇÑ Àܵµ Àû½Ç ¼ö ÀÖ°Å´Ï¿Í ±×º¸´Ùµµ ¾Î´Â ¾Æ³»¿¡°Ô ¼³··ÅÁ ÇÑ ±×¸©µµ »ç´ÙÁÙ ¼ö ÀÖÀ½ÀÌ´Ù. + +±×ÀÇ ¾Æ³»°¡ ±âħÀ¸·Î Ä𷰰Ÿ®±â´Â ¹ú½á ´ÞÆ÷°¡ ³Ñ¾ú´Ù. Á¶¹äµµ ±¾±â¸¦ ¸Ô´Ù½ÃÇÇ ÇÏ´Â ÇüÆíÀÌ´Ï ¹°·Ð ¾à ÇÑ Ã¸ ½á º» ÀÏÀÌ ¾ø´Ù. ±¸Å¿© ¾²·Á¸é ¸ø ¾µ ¹Ùµµ ¾Æ´Ï·ÎµÇ ±×´Â º´À̶õ ³ð¿¡°Ô ¾àÀ» ÁÖ¾î º¸³»¸é Àç¹Ì¸¦ ºÙ¿©¼­ ÀÚ²Ù ¿Â´Ù´Â ÀÚ±âÀÇ ½ÅÁ¶(ãáðÉ)¿¡ ¾îµð±îÁö Ãæ½ÇÇÏ¿´´Ù. µû¶ó¼­ Àǻ翡°Ô º¸ÀÎ ÀûÀÌ ¾øÀ¸´Ï ¹«½¼ º´ÀÎÁö´Â ¾Ë ¼ö ¾øÀ¸µÇ ¹ÝµíÀÌ ´©¿ö °¡Áö°í, ÀϾ±â´Â »õ·Î ¸ð·Îµµ ¸ø ´¯´Â°É º¸¸é ÁßÁõÀº ÁßÁõÀÎ µí. º´ÀÌ ÀÌ´ëµµ·Ï ½ÉÇØÁö±â´Â ¿­Èê Àü¿¡ Á¶¹äÀ» ¸Ô°í üÇÑ ¶§¹®ÀÌ´Ù. + +±×¶§µµ ±è ÷Áö°¡ ¿À·¡°£¸¸¿¡ µ·À» ¾ò¾î¼­ Á¼½Ò ÇÑ µÇ¿Í ½Ê ÀüÂ¥¸® ³ª¹« ÇÑ ´ÜÀ» »ç´Ù ÁÖ¾ú´õ´Ï ±è ÷ÁöÀÇ ¸»¿¡ ÀÇÁöÇÏ¸é ±× ¿À¶óÁú ³âÀÌ Ãµ¹æÁöÃà(ô¸Û°ò¢õî)À¸·Î ³²ºñ¿¡ ´ë°í ²ú¿´´Ù. ¸¶À½Àº ±ÞÇÏ°í ºÒ±æÀº ´ÞÁö ¾Ê¾Æ ä ÀÍÁöµµ ¾ÊÀº °ÍÀ» ±× ¿À¶óÁú ³âÀÌ ¼ù°¡¶ôÀº °í¸¸µÎ°í ¼ÕÀ¸·Î ¿òÄѼ­ µÎ »´¿¡ ÁÖ¸Ôµ¢ÀÌ °°Àº ȤÀÌ ºÒ°ÅÁöµµ·Ï ´©°¡ »©¾ÑÀ» µíÀÌ Ã³¹ÚÁú ÇÏ´õ´Ï¸¸ ±×³¯ Àú³áºÎÅÍ °¡½¿ÀÌ ¶¥±ä´Ù, ¹è°¡ Äбä´Ù°í ´«À» È©¶ß°í Áö¶öº´À» ÇÏ¿´´Ù. ±×¶§ ±è ÷Áö´Â ¿­È­¿Í °°ÀÌ ¼ºÀ» ³»¸ç, + +¡°¿¡ÀÌ, ¿À¶óÁú ³â, Á¶·Õº¹Àº ÇÒ ¼ö°¡ ¾ø¾î, ¸ø ¸Ô¾î º´, ¸Ô¾î¼­ º´, ¾î¼¶õ ¸»À̾ß! ¿Ö ´«À» ¹Ù·ç ¶ßÁö ¸øÇØ!¡±ÇÏ°í ±è ÷Áö´Â ¾Î´Â ÀÌÀÇ »´À» ÇÑ ¹ø ÈÄ·Á°¥°å´Ù. È©¶á ´«Àº Á¶±Ý ¹Ù·ç¾îÁ³°Ç¸¸ À̽½ÀÌ ¸ÎÈ÷¾ú´Ù. ±è ÷ÁöÀÇ ´«½Ã¿ïµµ ¶ß²ö¶ß²öÇÏ¿´´Ù. + +ÀÌ È¯ÀÚ°¡ ±×·¯°íµµ ¸Ô´Â µ¥´Â ¹°¸®Áö ¾Ê¾Ò´Ù. »çÈê ÀüºÎÅÍ ¼³··ÅÁ ±¹¹°ÀÌ ¸¶½Ã°í ½Í´Ù°í ³²ÆíÀ» Á¹¶ú´Ù. + +¡°ÀÌ·± ¿À¶óÁú ³â! Á¶¹äµµ ¸ø ¸Ô´Â ³âÀÌ ¼³··ÅÁÀº, ¶Ç ó¸Ô°í Áö¶öº´À» ÇÏ°Ô.¡±¶ó°í, ¾ß´ÜÀ» Ãĺ¸¾Ò°Ç¸¸, ¸ø »çÁÖ´Â ¸¶À½ÀÌ ½Ã¿øÄ¡´Â ¾Ê¾Ò´Ù. + +ÀÎÁ¦ ¼³··ÅÁÀ» »çÁÙ ¼öµµ ÀÖ´Ù. ¾Î´Â ¾î¹Ì °ç¿¡¼­ ¹è°íÆÄ º¸Ã¤´Â °³¶ËÀÌ(¼¼ »ì¸ÔÀÌ)¿¡°Ô Á×À» »çÁÙ ¼öµµ ÀÖ´Ù. - ÆÈ½Ê ÀüÀ» ¼Õ¿¡ Áå ±è ÷ÁöÀÇ ¸¶À½Àº ǬǬÇÏ¿´´Ù. ±×·¯³ª ±×ÀÇ Çà¿îÀº ±×°É·Î ±×Ä¡Áö ¾Ê¾Ò´Ù. ¶¡°ú ºø¹°ÀÌ ¼¯¿© È帣´Â ¸ñ´ú¹Ì¸¦ ±â¸§ÁÖ¸Ó´Ï°¡ ´Ù µÈ ¿Ö¸ñ ¼ö°ÇÀ¸·Î ´ÛÀ¸¸ç, ±× Çб³ ¹®À» µ¹¾Æ³ª¿Ã ¶§¿´´Ù. µÚ¿¡¼­ <Àη°Å!> ÇÏ°í ºÎ¸£´Â ¼Ò¸®°¡ ³­´Ù. Àڱ⸦ ºÒ·¯ ¸ØÃá »ç¶÷ÀÌ ±× Çб³ ÇлýÀÎ ÁÙ ±è ÷Áö´Â ÇÑ ¹ø º¸°í ÁüÀÛÇÒ ¼ö ÀÖ¾ú´Ù. ±× ÇлýÀº ´ÙÂ¥°íÂ¥·Î, ¡°³²´ë¹® Á¤°ÅÀå±îÁö ¾ó¸¶¿ä?¡±¶ó°í, ¹°¾ú´Ù. + +¾Æ¸¶µµ ±× Çб³ ±â¼÷»ç¿¡ ÀÖ´Â ÀÌ·Î µ¿±â¹æÇÐÀ» ÀÌ¿ëÇÏ¿© ±ÍÇâÇÏ·Á ÇÔÀ̸®¶ó. ¿À´Ã °¡±â·Î ÀÛÁ¤Àº ÇÏ¿´°Ç¸¸ ºñ´Â ¿À°í, ÁüÀº ÀÖ°í Çؼ­ ¾îÂîÇÒ ÁÙ ¸ð¸£´Ù°¡ ¸¶Ä§ ±è ÷Áö¸¦ º¸°í ¶Ù¾î³ª¿ÔÀ½À̸®¶ó. ±×·¸Áö ¾ÊÀ¸¸é ¿Ö ±¸µÎ¸¦ ä ½ÅÁö ¸øÇؼ­ ÁúÁú ²ø°í, ºñ·Ï <°í±¸¶ó> ¾çº¹ÀϸÁÁ¤ ³ë¹ÚÀÌ·Î ºñ¸¦ ¸ÂÀ¸¸ç ±è÷Áö¸¦ µÚÂÑ¾Æ ³ª¿ÔÀ¸·ª. + +¡°³²´ë¹® Á¤°ÅÀå±îÁö ¸»¾¸ÀԴϱî.¡±ÇÏ°í ±è ÷Áö´Â Àá±ñ ÁÖÀúÇÏ¿´´Ù. ±×´Â ÀÌ ¿ìÁß¿¡ ¿ìÀåµµ ¾øÀÌ ±× ¸Õ °÷À» ö¹÷°Å¸®°í °¡±â°¡ ½È¾úÀ½Àϱî? óÀ½ °Í, µÑ° °ÍÀ¸·Î ±×¸¸ ¸¸Á·ÇÏ¿´À½Àϱî? ¾Æ´Ï´Ù, °áÄÚ ¾Æ´Ï´Ù. ÀÌ»óÇÏ°Ôµµ ²¿¸®¸¦ ¸Â¹°°í ´ýºñ´Â ÀÌ Çà¿î ¾Õ¿¡ Á¶±Ý °ÌÀÌ ³µÀ½ÀÌ´Ù.±×¸®°í ÁýÀ» ³ª¿Ã Á¦ ¾Æ³»ÀÇ ºÎŹÀÌ ¸¶À½¿¡ Äбâ¾ú´Ù. - ¾ÕÁý ¸¶³ª´ÔÇÑÅ×¼­ ºÎ¸£·¯ ¿ÔÀ» Á¦ º´ÀÎÀº ±× »À¸¸ ³²Àº ¾ó±¼¿¡ À¯ÀÏÀÇ »ý¹° °°Àº À¯´Þ¸® Å©°í ¿òÆøÇÑ ´«¿¡ ¾Ö°ÉÇÏ´Â ºûÀ» ¶ì¿ì¸ç, ¡°¿À´ÃÀº ³ª°¡Áö ¸»¾Æ¿ä. Á¦¹ß ´öºÐ¿¡ Áý¿¡ ºÙ¾îÀÖ¾î¿ä. ³»°¡ ÀÌ·¸°Ô ¾Æǵ¥¡¦¡¦¡±¶ó°í, ¸ð±â ¼Ò¸®°°ÀÌ Áß¾ó°Å¸®°í ¼ûÀ» °É±×··°É±×·· ÇÏ¿´´Ù. + +±×¶§¿¡ ±è ÷Áö´Â ´ë¼ö·ÓÁö ¾ÊÀº µíÀÌ, ¡°¾Ð´Ù, Á¨Àå¸ÂÀ» ³â, º° ºô¾î¸ÔÀ» ¼Ò¸®¸¦ ´Ù Çϳ×. ¸ÂºÙµé°í ¾É¾ÒÀ¸¸é ´©°¡ ¸Ô¿© »ì¸± ÁÙ ¾Ë¾Æ.¡±ÇÏ°í, Èǽ ¶Ù¾î³ª¿À·Á´Ï±î ȯÀÚ´Â ºÙÀâÀ» µíÀÌ ÆÈÀ» ³»ÀúÀ¸¸ç, ¡°³ª°¡Áö ¸»¶óµµ ±×·¡, ±×·¯¸é ÀÏÂî±â µé¾î¿Í¿ä.¡±ÇÏ°í, ¸ñ¸ÞÀÎ ¼Ò¸®°¡ µÚ¸¦ µû¶ú´Ù. + +Á¤°ÅÀå±îÁö °¡ÀÜ ¸»À» µéÀº ¼ø°£¿¡ °æ·ÃÀûÀ¸·Î ¶°´Â ¼Õ, À¯´Þ¸® Å­Á÷ÇÑ ´«, ¿ï µíÇÑ ¾Æ³»ÀÇ ¾ó±¼ÀÌ ±è ÷ÁöÀÇ ´«¾Õ¿¡ ¾î¸¥¾î¸¥ÇÏ¿´´Ù. ¡°±×·¡ ³²´ë¹® Á¤°ÅÀå±îÁö ¾ó¸¶¶õ ¸»ÀÌ¿ä?¡±ÇÏ°í ÇлýÀº ÃÊÁ¶ÇÑ µíÀÌ Àη°ŲÛÀÇ ¾ó±¼À» ¹Ù¶óº¸¸ç È¥À㸻°°ÀÌ, ¡°ÀÎõ Â÷°¡ ¿­ ÇÑ Á¡¿¡ ÀÖ°í, ±× ´ÙÀ½¿¡´Â »õ·Î µÎ Á¡À̵簡.¡±¶ó°í, Áß¾ó°Å¸°´Ù. + +¡°ÀÏ ¿ø ¿À½Ê Àü¸¸ Áݽÿä.¡± ÀÌ ¸»ÀÌ Àúµµ ¸ð¸¦ »çÀÌ¿¡ ºÒ¾¦ ±è ÷ÁöÀÇ ÀÔ¿¡¼­ ¶³¾îÁ³´Ù. Á¦ ÀÔÀ¸·Î ºÎ¸£°íµµ ½º½º·Î ±× ¾öû³­ µ· ¾×¼ö¿¡ ³î·¡¾ú´Ù. ÇѲ¨¹ø¿¡ ÀÌ·± ±Ý¾×À» ºÒ·¯¶óµµ º» Áö°¡ ±× ¾ó¸¶¸¸Àΰ¡! ±×·¯ÀÚ ±× µ· ¹ú ¿ë±â°¡ º´ÀÚ¿¡ ´ëÇÑ ¿°·Á¸¦ »ç¸£°í ¸»¾Ò´Ù. ¼³¸¶ ¿À´Ã ³»·Î ¾î¶°·ª ½Í¾ú´Ù. ¹«½¼ ÀÏÀÌ ÀÖ´õ¶óµµ Á¦ÀÏ Á¦ÀÌÀÇ Çà¿îÀ» °öÄ£ °Íº¸´Ùµµ ¿ÀÈ÷·Á °©ÀýÀÌ ¸¹Àº ÀÌ Çà¿îÀ» ³õÄ¥ ¼ö ¾ø´Ù ÇÏ¿´´Ù. + +¡°ÀÏ ¿ø ¿À½Ê ÀüÀº ³Ê¹« °úÇѵ¥.¡± ÀÌ·± ¸»À» Çϸç ÇлýÀº °í°³¸¦ ±â¿ôÇÏ¿´´Ù. + +¡°¾Æ´Ï¿Ã½Ã´Ù. ÀÕ¼ö·Î Ä¡¸é ¿©±â¼­ °Å±â°¡ ½Ã¿À¸®°¡ ³Ñ´Â´ä´Ï´Ù. ¶Ç ÀÌ·± Áø ³¯¿¡ Á»´õ ÁּžßÁö¿ä.¡±ÇÏ°í ºù±Ûºù±Û ¿ô´Â Â÷ºÎÀÇ ¾ó±¼¿¡´Â ¼û±æ ¼ö ¾ø´Â ±â»ÝÀÌ ³ÑÃÄ Èê·¶´Ù. + +¡°±×·¯¸é ´Þ¶ó´Â ´ë·Î ÁÙ ÅÍÀÌ´Ï »¡¸® °¡¿ä.¡± °ü´ëÇÑ ¾î¸° ¼Õ´ÔÀº ±×·± ¸»À» ³²±â°í ÃÑÃÑÈ÷ ¿Êµµ ÀÔ°í Áüµµ ì±â·¯ °¥ µ¥·Î °¬´Ù. + +±× ÇлýÀ» Å¿ì°í ³ª¼± ±è ÷ÁöÀÇ ´Ù¸®´Â ÀÌ»óÇÏ°Ô °Å»ÓÇÏ¿´´Ù. ´ÞÀ½ÁúÀ» ÇÑ´Ù´À´Ïº¸´Ù °ÅÀÇ ³ª´Â µíÇÏ¿´´Ù. ¹ÙÄûµµ ¾î¶»°Ô ¼ÓÈ÷ µµ´ÂÁö ±º´Ù´À´Ïº¸´Ù ¸¶Ä¡ ¾óÀ½À» ÁöÃijª°¡´Â <½ºÄÉÀÌÆ®> ¸ð¾çÀ¸·Î ¹Ì²ô·¯Á® °¡´Â µíÇÏ¿´´Ù. ¾óÀº ¶¥¿¡ ºñ°¡ ³»·Á ¹Ì²ô·´±âµµ ÇÏ¿´Áö¸¸. + +ÀÌÀ¹°í ²ô´Â ÀÌÀÇ ´Ù¸®´Â ¹«°Å¿öÁ³´Ù. ÀÚ±â Áý °¡±îÀÌ ´Ù´Ù¸¥ ±î´ßÀÌ´Ù. »õ»ï½º·¯¿î ¿°·Á°¡ ±×ÀÇ °¡½¿À» ´­·¶´Ù. <¿À´ÃÀº ³ª°¡Áö ¸»¾Æ¿ä. ³»°¡ ÀÌ·¸°Ô ¾Æǵ¥!> ÀÌ·± ¸»ÀÌ À×À× ±×ÀÇ ±Í¿¡ ¿ï·È´Ù. ±×¸®°í º´ÀÚÀÇ ¿ò¾¦ µé¾î°£ ´«ÀÌ ¿ø¸ÁÇÏ´Â µíÀÌ Àڱ⸦ ³ë¸®´Â µíÇÏ¿´´Ù. ±×·¯ÀÚ ¾û¾ûÇÏ°í ¿ì´Â °³¶ËÀÌÀÇ °î¼ºÀ» µéÀº µí½Í´Ù. µþ±¹µþ±¹ ÇÏ°í ¼û ¸ðÀ¸´Â ¼Ò¸®µµ ³ª´Â µí½Í´Ù.¡°¿Ö À̸®¿ì, ±âÂ÷ ³õÄ¡°Ú±¸¸Õ.¡±ÇÏ°í ź ÀÌÀÇ ÃÊÁ¶ÇÑ ºÎ¸£Â¢À½ÀÌ °£½ÅÈ÷ ±×ÀÇ ±Í¿¡ µé¾î¿Ô´Ù. ¾ð¶æ ±ú´ÞÀ¸´Ï ±è ÷Áö´Â Àη°Ÿ¦ Áå ä ±æ ÇѺ¹ÆÇ¿¡ ¾û°ÅÁÖÃã ¸ØÃçÀÖÁö ¾ÊÀº°¡. + +¡°¿¹, ¿¹.¡±ÇÏ°í, ±è ÷Áö´Â ¶Ç´Ù½Ã ´ÞÀ½ÁúÇÏ¿´´Ù. ÁýÀÌ Â÷Â÷ ¸Ö¾î°¥¼ö·Ï ±è ÷ÁöÀÇ °ÉÀ½¿¡´Â ´Ù½Ã±Ý ½ÅÀÌ ³ª±â ½ÃÀÛÇÏ¿´´Ù. ´Ù¸®¸¦ Àç°Ô ³î·Á¾ß¸¸ ½¯»õ¾øÀÌ ÀÚ±âÀÇ ¸Ó¸®¿¡ ¶°¿À¸£´Â ¸ðµç ±Ù½É°ú °ÆÁ¤À» ÀØÀ» µíÀÌ. + +Á¤°ÅÀå±îÁö ²ø¾î´ÙÁÖ°í ±× ±ô¦ ³î¶õ ÀÏ ¿ø ¿À½Ê ÀüÀ» Á¤¸» Á¦ ¼Õ¿¡ Áç¿¡, Á¦ ¸»¸¶µû³ª ½Ê ¸®³ª µÇ´Â ±æÀ» ºñ¸¦ ¸Â¾Æ °¡¸ç ÁúÆܰŸ®°í ¿Â »ý°¢Àº ¾Æ´ÏÇÏ°í, °ÅÀú³ª ¾òÀº µíÀÌ °í¸¶¿Ô´Ù. Á¹ºÎ³ª µÈ µíÀÌ ±â»¼´Ù. Á¦ÀÚ½Ä »¹¹Û¿¡ ¾ÈµÇ´Â ¾î¸° ¼Õ´Ô¿¡°Ô ¸î ¹ø Ç㸮¸¦ ±ÁÈ÷¸ç, ¡°¾È³çÈ÷ ´Ù³à¿É½Ã¿ä.¡±¶ó°í ±ïµíÀÌ Àç¿ìÃÆ´Ù. + +±×·¯³ª ºó Àη°Ÿ¦ ÅÐÅаŸ®¸ç ÀÌ ¿ìÁß¿¡ µ¹¾Æ°¥ ÀÏÀÌ ²Þ¹ÛÀ̾ú´Ù. ³ëµ¿À¸·Î ÇÏ¿© È帥 ¶¡ÀÌ ½Ä¾îÁöÀÚ ±¾ÁÖ¸° âÀÚ¿¡¼­, ¹° È帣´Â ¿Ê¿¡¼­ ¾î½½¾î½½ ÇѱⰡ ¼Ú¾Æ³ª±â ºñ·ÔÇϸŠÀÏ ¿ø ¿À½Ê ÀüÀ̶õ µ·ÀÌ ¾ó¸¶³ª ±¦Âú°í ±«·Î¿î °ÍÀÎ ÁÙ ÀýÀýÈ÷ ´À³¢¾ú´Ù. Á¤°ÅÀåÀ» ¶°³ª´Â ±×ÀÇ ¹ß±æÀº Èû Çϳª ¾ø¾ú´Ù. ¿Â¸öÀÌ ¿Ë¼Û±×·ÁÁö¸ç ´çÀå ±× ÀÚ¸®¿¡ ¾þ¾îÁ® ¸ø ÀϾ °Í °°¾Ò´Ù. + +¡°Á¨Àå¸ÂÀ» °Í! ÀÌ ºñ¸¦ ¸ÂÀ¸¸ç ºó Àη°Ÿ¦ ÅÐÅаŸ®°í µ¹¾Æ¸¦ °£´ã. ÀÌ·± ºô¾î¸ÔÀ», Á¦ Çҹ̸¦ ºÙÀ» ºñ°¡ ¿Ö ³²ÀÇ »óÆÇÀ» µüµü ¶§·Á!¡± + +±×´Â ¸÷½Ã ȱÁõÀ» ³»¸ç ´©±¸¿¡°Ô ¹ÝÇ×À̳ª ÇÏ´Â µíÀÌ °Ô°É°Å·È´Ù. ±×·² ÁîÀ½¿¡ ±×ÀÇ ¸Ó¸®¿£ ¶Ç »õ·Î¿î ±¤¸íÀÌ ºñÃƳª´Ï ±×°ÍÀº <ÀÌ·¯±¸ °¥ °Ô ¾Æ´Ï¶ó ÀÌ ±Ùó¸¦ ºùºù µ¹¸ç Â÷ ¿À±â¸¦ ±â´Ù¸®¸é ¶Ç ¼Õ´ÔÀ» Å¿ì°Ô µÉ´ÂÁöµµ ¸ô¶ó>¶õ »ý°¢À̾ú´Ù. ¿À´Ã ¿î¼ö°¡ ±«»óÇÏ°Ôµµ ÁÁÀ¸´Ï±î ±×·± ¿äÇàÀÌ ¶ÇÇѹø ¾øÀ¸¸®¶ó°í ´©°¡ º¸ÁõÇÏ·ª. ²¿¸®¸¦ ±¼¸®´Â Çà¿îÀÌ ²À Àڱ⸦ ±â´Ù¸®°í ÀÖ´Ù°í ³»±â¸¦ Çصµ ÁÁÀ» ¸¸ÇÑ ¹ÏÀ½À» ¾ò°Ô µÇ¾ú´Ù. ±×·¸´Ù°í Á¤°ÅÀå Àη°ŲÛÀÇ µî»ìÀÌ ¹«¼­¿ì´Ï Á¤°ÅÀå ¾Õ¿¡ ¼¹À» ¼ö´Â ¾ø¾ú´Ù. + +±×·¡ ±×´Â ÀÌÀü¿¡µµ ¿©·¯ ¹ø Çغ» ÀÏÀ̶ó ¹Ù·Î Á¤°ÅÀå ¾Õ ÀüÂ÷ Á¤·ùÀå¿¡¼­ Á¶±Ý ¶³¾îÁö°Ô, »ç¶÷ ´Ù´Ï´Â ±æ°ú ÀüÂþ±æ Æ´¿¡ Àη°Ÿ¦ ¼¼¿ö³õ°í ÀÚ±â´Â ±× ±Ùó¸¦ ºùºù µ¹¸ç Çü¼¼¸¦ °ü¸ÁÇϱâ·Î ÇÏ¿´´Ù. ¾ó¸¶¸¸¿¡ ±âÂ÷´Â ¿Ô°í, ¼ö½Ê ¸íÀ̳ª µÇ´Â ¼ÕÀÌ Á¤·ùÀåÀ¸·Î ½ñ¾ÆÁ® ³ª¿Ô´Ù. ±× Áß¿¡¼­ ¼Õ´ÔÀ» ¹°»öÇÏ´Â ±è ÷ÁöÀÇ ´«¿£ ¾ç¸Ó¸®¿¡ µÚÃà ³ôÀº ±¸µÎ¸¦ ½Å°í <¸ÁÅä>±îÁö µÎ¸¥ ±â»ý Åð¹°ÀÎ µí, ³­ºÀ ¿©ÇлýÀÎ µíÇÑ ¿©Æí³×ÀÇ ¸ð¾çÀÌ ¶ç¾ú´Ù. ±×´Â ½½±Ù½½±Ù ±× ¿©ÀÚÀÇ °çÀ¸·Î ´Ù°¡µé¾ú´Ù. + +¡°¾Æ¾¾, Àη°Š¾Æ´Ï Ÿ½Ã¶ø½Ã¿ä?¡± + +±× ¿©ÇлýÀÎÁö ¹ºÁö°¡ ÇÑÂüÀº ¸Å¿ì ÅÈ°¥À» »©¸ç ÀÔ¼úÀ» ²À ´Ù¹® ä ±è ÷Áö¸¦ °Åµé¶°º¸Áöµµ ¾Ê¾Ò´Ù. ±è ÷Áö´Â ±¸°ÉÇÏ´Â °ÅÁö³ª ¹«¾ù°°ÀÌ ¿¬ÇØ¿¬¹æ ±×ÀÇ ±â»öÀ» »ìÇǸç, ¡°¾Æ¾¾, Á¤°ÅÀå ¾Öµéº¸´ã ¾ÆÁÖ ½Î°Ô ¸ð¼Å´Ù µå¸®°ÚÀ¾´Ï´Ù. ´ìÀÌ ¾îµð½Å°¡¿ä.¡±ÇÏ°í, Ãß±ÙÃß±ÙÇÏ°Ôµµ ±× ¿©ÀÚÀÇ µé°í ÀÖ´Â ÀϺ»½Ä ¹öµé°í¸®Â¦¿¡ Á¦ ¼ÕÀ» ´ë¾ú´Ù. + +¡°¿Ö ÀÌ·¡, ³² ±ÍÄ¡¾Ê°Ô.¡± ¼Ò¸®¸¦ º®·Â°°ÀÌ Áö¸£°í´Â µ¹¾Æ¼±´Ù. ±è ÷Áö´Â ¾î¶ø½Ã¿ä ÇÏ°í ¹°·¯¼¹´Ù. + +ÀüÂ÷´Â ¿Ô´Ù. ±è ÷Áö´Â ¿ø¸Á½º·´°Ô ÀüÂ÷ Ÿ´Â À̸¦ ³ë¸®°í ÀÖ¾ú´Ù. ±×·¯³ª ±×ÀÇ ¿¹°¨(çãÊï)Àº Ʋ¸®Áö ¾Ê¾Ò´Ù. ÀüÂ÷°¡ ºýºýÇÏ°Ô »ç¶÷À» ½Æ°í ¿òÁ÷À̱⠽ÃÀÛÇÏ¿´À» ¶§ Ÿ°í ³²Àº ¼Õ ÇϳªÀÌ ÀÖ¾ú´Ù. ±²ÀåÇÏ°Ô Å« °¡¹æÀ» µé°í ÀÖ´Â°É º¸¸é ¾Æ¸¶ ºÕºñ´Â Â÷ ¾È¿¡ ÁüÀÌ Å©´Ù ÇÏ¿© Â÷Àå¿¡°Ô ¹Ð·Á³»·Á¿Â ´«Ä¡¿´´Ù. ±è ÷Áö´Â ´ë¾î¼¹´Ù. + +¡°Àη°Ÿ¦ Ÿ½Ã¶ø½Ã¿ä.¡± + +Çѵ¿¾È °ªÀ¸·Î ½Â°­À̸¦ ÇÏ´Ù°¡ À°½Ê Àü¿¡ Àλ絿±îÁö Å¿ö´ÙÁÖ±â·Î ÇÏ¿´´Ù. Àη°Ű¡ ¹«°Å¿öÁö¸Å ±×ÀÇ ¸öÀº ÀÌ»óÇÏ°Ôµµ °¡º­¿öÁ³°í ±×¸®°í ¶Ç Àη°Ű¡ °¡º­¿öÁö´Ï ¸öÀº ´Ù½Ã±Ý ¹«°Å¿öÁ³°Ç¸¸ À̹ø¿¡´Â ¸¶À½Á¶Â÷ ÃÊÁ¶ÇØ ¿Â´Ù. ÁýÀÇ ±¤°æÀÌ ÀÚ²Ù ´«¾Õ¿¡ ¾î¸¥°Å¸®¾î ÀÎÁ¦ ¿äÇàÀ» ¹Ù¶ö ¿©À¯µµ ¾ø¾ú´Ù. ³ª¹« µî°ÉÀ̳ª ¹«¾ù °°°í Á¦ °Í °°Áöµµ ¾ÊÀº ´Ù¸®¸¦ ¿¬ÇØ ²Ù¢À¸¸ç °¥ÆÎÁúÆÎ ¶Ù´Â ¼ö¹Û¿¡ ¾ø¾ú´Ù. + +Àú³ðÀÇ Àη°űºÀÌ Àú·¸°Ô ¼úÀÌ ÃëÇØ°¡Áö°í ÀÌ Áø ¶¥¿¡ ¾îÂî °¡³ë, ¶ó°í ±æ °¡´Â »ç¶÷ÀÌ °ÆÁ¤À» Çϸ®¸¸Å­ ±×ÀÇ °ÉÀ½Àº Ȳ±ÞÇÏ¿´´Ù. È帮°í ºñ¿À´Â ÇÏ´ÃÀº ¾îµÒħħÇÏ°Ô ¹ú½á Ȳȥ¿¡ °¡±î¿î µíÇÏ´Ù. â°æ¿ø ¾Õ±îÁö ´Ù´Þ¾Æ¼­¾ß ±×´Â Åο¡ ´êÀº ¼ûÀ» µ¹¸®°í °ÉÀ½µµ ´ÊÃßÀâ¾Ò´Ù. ÇÑ °ÉÀ½ µÎ °ÉÀ½ ÁýÀÌ °¡±î¿Í¿Ã¼ö·Ï ±×ÀÇ ¸¶À½Á¶Â÷ ±«»óÇÏ°Ô ´©±×·¯¿ü´Ù. ±×·±µ¥ ÀÌ ´©±×·¯¿òÀº ¾È½É¿¡¼­ ¿À´Â °Ô ¾Æ´Ï¿ä, Àڱ⸦ µ¤Ä£ ¹«¼­¿î ºÒÇàÀ» ºóÆ´¾øÀÌ ¾Ë°Ô µÉ ¶§°¡ ¹ÚµÎÇÑ °ÍÀ» µÎ·Á¿öÇÏ´Â ¸¶À½¿¡¼­ ¿À´Â °ÍÀÌ´Ù. + +±×´Â ºÒÇà¿¡ ´Ù´ÚÄ¡±â Àü ½Ã°£À» ¾ó¸¶ÂëÀÌ¶óµµ ´Ã¸®·Á°í ¹ö¸£Àû°Å·È´Ù. ±âÀû(Ðôîç)¿¡ °¡±î¿î ¹úÀ̸¦ ÇÏ¿´´Ù´Â ±â»ÝÀ» ÇÒ ¼ö ÀÖÀ¸¸é ¿À·¡ Áö´Ï°í ½Í¾ú´Ù. ±×´Â µÎ¸®¹øµÎ¸®¹ø »ç¸éÀ» »ìÇǾú´Ù. ±× ¸ð¾çÀº ¸¶Ä¡ ÀÚ±â Áý - °ð ºÒÇàÀ» ÇâÇÏ°í ´Þ·Á°¡´Â Á¦ ´Ù¸®¸¦ Á¦ ÈûÀ¸·Î´Â µµÀúÈ÷ ¾îÂîÇÒ ¼ö ¾øÀ¸´Ï ´©±¸µçÁö ³ª¸¦ Á» Àâ¾Æ ´Ù°í, ±¸ÇØ ´Ù°í ÇÏ´Â µíÇÏ¿´´Ù. + +±×·² ÁîÀ½¿¡ ¸¶Ä§ ±æ°¡ ¼±¼úÁý¿¡¼­ ±×ÀÇ Ä£±¸ Ä¡»ïÀÌ°¡ ³ª¿Â´Ù. ±×ÀÇ ¿ì±Û¿ì±Û »ìÂð ¾ó±¼¿¡ ÁÖÈ«ÀÌ µ¸´Â µí, ¿Â Åΰú »´À» ½ÃÄ¿¸Ý°Ô ±¸·¹³ª·íÀÌ µ¤¿´°Å´Ã, ³ë¸£ÅÊÅÊÇÑ ¾ó±¼ÀÌ ¹Ù¦ ¸»¶ó¼­ ¿©±âÀú±â °í¶ûÀÌ Æаí, ¼ö¿°µµ ÀÖ´ë¾ß Åιؿ¡¸¸ ¸¶Ä¡ ¼ÖÀÙ ¼ÛÀ̸¦ °Å²Ù·Î ºÙ¿©³õÀº µíÇÑ ±è ÷ÁöÀÇ Ç³Ã¤ÇÏ°í´Â ±âÀÌÇÑ ´ë»óÀ» Áþ°í ÀÖ¾ú´Ù. + +¡°¿©º¸°Ô ±è ÷Áö, ÀÚ³× ¹®¾È µé¾î°¬´Ù ¿À´Â ¸ð¾çÀϼ¼±×·Á. µ· ¸¹ÀÌ ¹ú¾úÀ» Å×´Ï ÇÑ ÀÜ »¡¸®°Ô.¡± + +¶×¶×º¸´Â ¸»¶ó²¤À̸¦ º¸µç ¸Ã¿¡ ºÎ¸£Â¢¾ú´Ù. ±× ¸ñ¼Ò¸®´Â ¸öÁþ°ú µýÆÇÀ¸·Î ¿¬ÇÏ°í ½Ï½ÏÇÏ¿´´Ù. ±è ÷Áö´Â ÀÌ Ä£±¸¸¦ ¸¸³­ °Ô ¾î¶»°Ô ¹Ý°¡¿îÁö ¸ô¶ú´Ù. Àڱ⸦ »ì·ÁÁØ ÀºÀÎÀ̳ª ¹«¾ù°°ÀÌ °í¸¿±âµµ ÇÏ¿´´Ù. + +¡°ÀÚ³×´Â ¹ú½á ÇÑÀÜ ÇÑ ¸ð¾çÀϼ¼±×·Á. ÀÚ³×µµ ¿À´Ã Àç¹Ì°¡ ÁÁ¾Æº¸ÀÌ.¡±ÇÏ°í, ±è ÷Áö´Â ¾ó±¼À» Æì¼­ ¿ô¾ú´Ù. + +¡°¾Ð´Ù, Àç¹Ì ¾È ÁÁ´Ù°í ¼ú ¸ø ¸ÔÀ» ³½°¡. ±×·±µ¥ ¿©º¸°Ô, ÀÚ³× ¿Þ¸öÀÌ ¾î° ¹°µ¶¿¡ ºüÁø »õ¾ÓÁã °°Àº°¡? ¾î¼­ À̸® µé¾î¿Í ¸»¸®°Ô.¡± + +¼±¼úÁýÀº ÈÆÈÆÇÏ°í ¶ß¶æÇÏ¿´´Ù. Ãß¾îÅÁÀ» ²úÀÌ´Â ¼Ü¶Ñ²±À» ¿­ Àû¸¶´Ù ¹¶°Ô¹¶°Ô ¶°¿À¸£´Â Èò ±è, ¼®¼è¿¡¼­ »µÁöÁþ»µÁöÁþ ±¸¿öÁö´Â ³Êºñ¾Æ´Ï ±¸À̸ç Á¦À°ÀÌ¸ç °£À̸ç ÄáÆÏÀÌ¸ç ºÏ¾î¸ç ºó´ë¶±¡¦¡¦ÀÌ ³ÊÀúºÐÇÏ°Ô ´Ã¾î³õÀÎ ¾ÈÁÖ Å¹ÀÚ¿¡ ±è ÷Áö´Â °©Àڱ⠼ÓÀÌ ¾²·Á¼­ °ßµô ¼ö ¾ø¾ú´Ù. ¸¶À½´ë·Î ÇÒ ¾çÀÌ¸é °Å±â ÀÖ´Â ¸ðµç ¸ÔÀ½ ¸ÔÀ̸¦ ¸ðÁ¶¸® ±ø±×¸® Áý¾î»ïÄѵµ ½Ã¿øÄ¡ ¾Ê¾Ò´Ù. Ç쵂 ¹è°íÇ ÀÌ´Â À§¼± ºÐ·® ¸¹Àº ºó´ë¶± µÎ °³¸¦ ÂÉÀ̱⵵ ÇÏ°í Ãß¾îÅÁÀ» ÇÑ ±×¸© ûÇÏ¿´´Ù. + +ÁÖ¸° âÀÚ´Â À½½Ä¸ÀÀ» º¸´õ´Ï ´õ¿í´õ¿í ºñ¾îÁö¸ç ÀÚ²ÙÀÚ²Ù µéÀ̶óµéÀ̶ó ÇÏ¿´´Ù. ¼ø½Ä°£¿¡ µÎºÎ¿Í ¹Ì²Ù¸® µç ±¹ ÇÑ ±×¸©À» ±×³É ¹°°°ÀÌ µéÀÌÅ°°í ¸»¾Ò´Ù. ¼¼Â° ±×¸©À» ¹Þ¾Æµé¾úÀ» Á¦ µ¥¿ì´ø ¸·°ÉÀÌ °ö¹è±â µÎ ÀÜÀÌ ´õ¿ü´Ù. Ä¡»ïÀÌ¿Í °°ÀÌ ¸¶½ÃÀÚ ¿ø¿øÈ÷ ºñ¾ú´ø ¼ÓÀ̶ó Â¸£ÇÏ°í âÀÚ¿¡ ÆÛÁö¸ç ¾ó±¼ÀÌ È­²öÇÏ¿´´Ù. ´­·¯ °ö¹è±â ÇÑ ÀÜÀ» ¶Ç ¸¶¼Ì´Ù. + +±è ÷ÁöÀÇ ´«Àº ¹ú½á °³°³ Ç®¸®±â ½ÃÀÛÇÏ¿´´Ù. ¼®¼è¿¡ ¾ñÈù ¶± µÎ °³¸¦ ¼þµ¢¼þµ¢ ½ä¾î¼­ º¼À» ºÒ·è°Å¸®¸ç ¶Ç °ö¹è±â µÎ ÀÜÀ» ºÎ¾î¶ó ÇÏ¿´´Ù. + +Ä¡»ïÀº ÀǾÆÇÑ µíÀÌ ±è ÷Áö¸¦ º¸¸ç, ¡°¿©º¸°Ô ¶Ç º×´Ù´Ï, ¹ú½á ¿ì¸®°¡ ³Ë Àܾ¿ ¸Ô¾ú³×, µ·ÀÌ »ç½Ê ÀüÀϼ¼.¡±¶ó°í ÁÖÀǽÃÄ×´Ù. + +¡°¾Æµû À̳ð¾Æ, »ç½Ê ÀüÀÌ ±×¸® ²ûÂïÇϳÄ. ¿À´Ã ³»°¡ µ·À» ¸· ¹ú¾ú¾î. Âü ¿À´Ã ¿î¼ö°¡ ÁÁ¾Ò´À´Ï.¡± + +¡°±×·¡ ¾ó¸¶¸¦ ¹ú¾ú´Ü ¸»Àΰ¡?¡± + +¡°»ï½Ê ¿øÀ» ¹ú¾ú¾î, »ï½Ê ¿øÀ»! ÀÌ·± Á¨Àå¸ÂÀ» ¼úÀ» ¿Ö ¾ÈºÎ¾î¡¦¡¦±¦Âú´Ù ±¦Âú´Ù, ¸· ¸Ô¾îµµ »ó°üÀÌ ¾ø¾î. ¿À´Ã µ· »ê´õ¹Ì°°ÀÌ ¹ú¾ú´Âµ¥.¡± + +¡°¾î, ÀÌ »ç¶÷ ÃëÇß±º, ±×¸¸µÎ¼¼.¡± + +¡°À̳ð¾Æ, ÀÌ°É ¸Ô°í ÃëÇÒ ³»³Ä, ¾î¼­ ´õ ¸Ô¾î.¡±ÇÏ°í´Â Ä¡»ïÀÇ ±Í¸¦ Àâ¾Æä¸ç ÃëÇÑ ÀÌ´Â ºÎ¸£Â¢¾ú´Ù. ±×¸®°í ¼úÀ» º×´Â ¿­ ´Ù¼¸ »ì µÊÁ÷ÇÑ Áß´ë°¡¸®¿¡°Ô·Î ´Þ·Áµé¸ç, ¡°À̳ð, ¿À¶óÁú ³ð, ¿Ö ¼úÀ» º×Áö ¾Ê¾î.¡±¶ó°í ¾ß´ÜÀ» ÃÆ´Ù. Áß´ë°¡¸®´Â È÷È÷ ¿ô°í Ä¡»ïÀ» º¸¸ç ¹®ÀÇÇÏ´Â µíÀÌ ´«ÁþÀ» ÇÏ¿´´Ù. ÁÖÁ¤²ÛÀÌ ´«Ä¡¸¦ ¾Ë¾Æº¸°í È­¸¦ ¹ö·°³»¸ç, ¡°¿¡¹Ì¸¦ ºÙÀ» ÀÌ ¿À¶óÁú ³ðµé °°À¸´Ï, À̳𠳻°¡ µ·ÀÌ ¾øÀ» ÁÙ ¾Ë°í.¡±ÇÏÀÚ¸¶ÀÚ Ç㸮ÃãÀ» ÈÉÄ©ÈÉÄ© ÇÏ´õ´Ï ÀÏ ¿øÂ¥¸® ÇÑ ÀåÀ» ²¨³»¾î Áß´ë°¡¸® ¾Õ¿¡ ÆÞ½ Áý¾î´øÁ³´Ù. ±× »çÇ°¿¡ ¸î Ǭ ÀºÀüÀÌ À߱׶û ÇÏ¸ç ¶³¾îÁø´Ù. + +¡°¿©º¸°Ô µ· ¶³¾îÁ³³×, ¿Ö µ·À» ¸· ³¢¾ñ³ª.¡± ÀÌ·± ¸»À» Çϸç ÀϺ¯ µ·À» Áݴ´Ù. ±è ÷Áö´Â ÃëÇÑ Áß¿¡µµ µ·ÀÇ °Åó¸¦ »ìÇÇ´Â µíÀÌ ´«À» Å©°Ô ¶°¼­ ¶¥À» ³»·Á´Ùº¸´Ù°¡ ºÒ½Ã¿¡ Á¦ ÇÏ´Â ÁþÀÌ ³Ê¹« ´õ·´´Ù´Â µíÀÌ °í°³¸¦ ¼Ò½º¶óÄ¡ÀÚ ´õ¿í ¼ºÀ» ³»¸ç, ¡°ºÁ¶ó ºÁ! ÀÌ ´õ·¯¿î ³ðµé¾Æ, ³»°¡ µ·ÀÌ ¾ø³ª, ´Ù¸®»Á´Ù±¸¸¦ ²ª¾î³õÀ» ³ðµé °°À¸´Ï.¡±ÇÏ°í Ä¡»ïÀÇ ÁÖ¿öÁÖ´Â µ·À» ¹Þ¾Æ, ¡°ÀÌ ¿ø¼ö¿§ µ·! ÀÌ À°½Ã¸¦ ÇÒ µ·!¡±Çϸ鼭, Ç®¸ÅÁúÀ» Ä£´Ù. º®¿¡ ¸Â¾Æ ¶³¾îÁø µ·Àº ´Ù½Ã ¼ú ²úÀÌ´Â ¾çǬ¿¡ ¶³¾îÁö¸ç Á¤´çÇÑ ¸Å¸¦ ¸Â´Â´Ù´Â µíÀÌ Â¸ÇÏ°í ¿ï¾ú´Ù. + +°ö¹è±â µÎ ÀÜÀº ¶Ç ºÎ¾îÁú °Ü¸¦µµ ¾øÀÌ ¸»·Á°¡°í ¸»¾Ò´Ù. ±è ÷Áö´Â ÀÔ¼ú°ú ¼ö¿°¿¡ ºÙÀº ¼úÀ» »¡¾ÆµéÀÌ°í ³ª¼­ ¸Å¿ì ¸¸Á·ÇÑ µíÀÌ ±× ¼ÖÀÙ ¼ÛÀÌ ¼ö¿°À» ¾²´ÙµëÀ¸¸ç, ¡°¶Ç ºÎ¾î, ¶Ç ºÎ¾î.¡±¶ó°í, ¿ÜÃÆ´Ù. + +¶Ç ÇÑ ÀÜ ¸Ô°í ³ª¼­ ±è ÷Áö´Â Ä¡»ïÀÇ ¾î±ú¸¦ Ä¡¸ç ¹®µæ ²¬²¬ ¿ô´Â´Ù. ±× ¿ôÀ½ ¼Ò¸®°¡ ¾î¶»°Ô ÄÇ´ÂÁö ¼úÁý¿¡ ÀÖ´Â ÀÌÀÇ ´«Àº ¸ðµÎ ±è ÷Áö¿¡°Ô·Î ¸ô¸®¾ú´Ù. ¿ô´Â ÀÌ´Â ´õ¿í ¿ôÀ¸¸ç, ¡°¿©º¸°Ô Ä¡»ïÀÌ, ³» ¿ì½º¿î À̾߱â Çϳª ÇÒ±î. ¿À´Ã ¼ÕÀ» Å°í Á¤°ÅÀå¿¡±îÁö °¡Áö ¾Ê¾Ò°Ú³ª.¡± + +¡°±×·¡¼­.¡± + +¡°°¬´Ù°¡ ±×Àú ¿À±â°¡ ¾È µÆµ¥±×·Á. ±×·¡ ÀüÂ÷ Á¤·ùÀå¿¡¼­ ¾î¸§¾î¸§ÇÏ¸ç ¼Õ´Ô Çϳª¸¦ ÅÂ¿ï ±Ã¸®¸¦ ÇÏÁö ¾Ê¾Ò³ª. °Å±â ¸¶Ä§ ¸¶³ª´ÔÀ̽ÅÁö ¿©Çлý´ÔÀ̽ÅÁö - ¿ä»õ¾ß ¾îµð ³í´Ù´Ï¿Í ¾Æ°¡¾¾¸¦ ±¸º°ÇÒ ¼ö°¡ ÀÖ´ø°¡ - <¸ÁÅä>¸¦ µÎ¸£°í ºñ¸¦ ¸Â°í ¼­ ÀÖ°ÚÁö. ½½±Ù½½±Ù °¡±îÀÌ °¡¼­ Àη°ŠŸ½Ã¶ø½Ã¿ä ÇÏ°í ¼Õ°¡¹æÀ» ¹ÞÀ¸·ª´Ï±î ³» ¼ÕÀ» Ź »Ñ¸®Ä¡°í È´ µ¹¾Æ¼­´õ´Ï¸¸ <¿Ö ³²À» ÀÌ·¸°Ô ±ÍÂú°Ô ±¼¾î!> ±× ¼Ò¸®¾ß¸»·Î ²Ò²¿¸® ¼Ò¸®Áö, ÇãÇã!¡± + +±è ÷Áö´Â ±³¹¦ÇÏ°Ôµµ Á¤¸» ²Ò²¿¸® °°Àº ¼Ò¸®¸¦ ³»¾ú´Ù. ¸ðµç »ç¶÷Àº ÀϽÿ¡ ¿ô¾ú´Ù. + +¡°ºô¾î¸ÔÀ» ±ïÀïÀÌ °°Àº ³â, ´©°¡ Àú¸¦ ¾î¼³ª, <¿Ö ³²À» ±ÍÂú°Ô ±¼¾î!> ¾îÀ̱¸ ¼Ò¸®°¡ ó½Åµµ ¾øÁö, ÇãÇã.¡± + +¿ôÀ½ ¼Ò¸®µéÀº ³ô¾ÆÁ³´Ù. ±×·¯³ª ±× ¿ôÀ½ ¼Ò¸®µéÀÌ »ç¶óÁö±â Àü¿¡ ±è ÷Áö´Â ÈǽÈǽ ¿ï±â ½ÃÀÛÇÏ¿´´Ù. + +Ä¡»ïÀº ¾îÀ̾øÀÌ ÁÖÁ¤¹ðÀ̸¦ ¹Ù¶óº¸¸ç, ¡°±Ý¹æ ¿ô°í Áö¶öÀ» ÇÏ´õ´Ï ¿ì´Â °Ç ¶Ç ¹«½¼ ÀÏÀΰ¡.¡± + +±è ÷Áö´Â ¿¬ÇØ ÄÚ¸¦ µé¿©¸¶½Ã¸ç, ¡°¿ì¸® ¸¶´©¶ó°¡ Á×¾ú´Ù³×.¡± + +¡°¹¹, ¸¶´©¶ó°¡ Á×´Ù´Ï, ¾ðÁ¦?¡± + +¡°À̳ð¾Æ ¾ðÁ¦´Â. ¿À´ÃÀÌÁö.¡± + +¡°¿¢±â ¹ÌÄ£ ³ð, °ÅÁþ¸» ¸»¾Æ.¡± + +¡°°ÅÁþ¸»Àº ¿Ö, Âü¸»·Î Á×¾ú¾î, Âü¸»·Î... ¸¶´©¶ó ½Ãü¸¦ Áý¾î »µµéÃijõ°í ³»°¡ ¼úÀ» ¸Ô´Ù´Ï, ³»°¡ Á×ÀÏ ³ðÀ̾ß, Á×ÀÏ ³ðÀ̾ß.¡±ÇÏ°í ±è ÷Áö´Â ¾û¾û ¼Ò¸®¸¦ ³»¾î ¿î´Ù. + +Ä¡»ïÀº ÈïÀÌ Á¶±Ý ±ú¾îÁö´Â ¾ó±¼·Î, ¡°¿ø ÀÌ »ç¶÷ÀÌ, Âü¸»À» Çϳª °ÅÁþ¸»À» Çϳª. ±×·¯¸é ÁýÀ¸·Î °¡¼¼, °¡.¡±ÇÏ°í ¿ì´Â ÀÌÀÇ ÆÈÀ» Àâ¾Æ´ç±â¾ú´Ù. + +Ä¡»ïÀÇ ²ô´Â ¼ÕÀ» »Ñ¸®Ä¡´õ´Ï ±è ÷Áö´Â ´«¹°ÀÌ ±Û½é±Û½éÇÑ ´«À¸·Î ½Ì±×·¹ ¿ô´Â´Ù. + +¡°Á×±â´Â ´©°¡ Á×¾î.¡±ÇÏ°í µæÀÇ°¡ ¾ç¾ç. + +¡°Á×±â´Â ¿Ö Á×¾î, »ý¶§°°ÀÌ »ì¾Æ¸¸ ÀÖ´Ü´Ù. ±× ¿À¶óÁú ³âÀÌ ¹äÀ» Á×ÀÌÁö. ÀÎÁ¦ ³ªÇÑÅ× ¼Ó¾Ò´Ù.¡±ÇÏ°í ¾î¸°¾Ö ¸ð¾çÀ¸·Î ¼Õ»ÁÀ» Ä¡¸ç ¿ô´Â´Ù. + +¡°ÀÌ »ç¶÷ÀÌ Á¤¸» ¹ÌÃÆ´Ü ¸»Àΰ¡. ³ªµµ ¾ÆÁÖ¸Õ³×°¡ ¾Î´Â´Ü ¸»Àº µé¾ú´Âµ¥.¡±ÇÏ°í, Ä¡»ïÀ̵µ ¾î´À ºÒ¾ÈÀ» ´À³¢´Â µíÀÌ ±è ÷Áö¿¡°Ô ¶Ç µ¹¾Æ°¡¶ó°í ±ÇÇÏ¿´´Ù. + +¡°¾È Á×¾ú¾î, ¾È Á×¾ú´ëµµ±×·¡.¡± + +±è ÷Áö´Â ȱÁõÀ» ³»¸ç È®½ÅÀÖ°Ô ¼Ò¸®¸¦ Áú·¶À¸µÇ ±× ¼Ò¸®¿£ ¾È Á×Àº °ÍÀ» ¹ÏÀ¸·Á°í ¾Ö¾²´Â °¡¶ôÀÌ ÀÖ¾ú´Ù. ±â¾îÀÌ ÀÏ ¿ø¾îÄ¡¸¦ ä¿ö¼­ °ö¹è±â ÇÑ Àܾ¿ ´õ ¸Ô°í ³ª¿Ô´Ù. ±ÄÀº ºñ´Â ÀÇ¿¬È÷ ÃßÀûÃßÀû ³»¸°´Ù. + +±è ÷Áö´Â ÃëÁß¿¡µµ ¼³··ÅÁÀ» »ç°¡Áö°í Áý¿¡ ´Ù´Þ¾Ò´Ù. ÁýÀ̶ó Çصµ ¹°·Ð ¼ÂÁýÀÌ¿ä, ¶Ç Áý Àüü¸¦ ¼¼µç °Ô ¾Æ´Ï¶ó ¾È°ú ¶Ò¶³¾îÁø Çà¶û¹æ ÇÑ °£À» ºô·Á µç °ÍÀε¥ ¹°À» ±æ¾î´ë°í ÇÑ ´Þ¿¡ ÀÏ ¿ø¾¿ ³»´Â ÅÍÀÌ´Ù. ¸¸ÀÏ ±è ÷Áö°¡ Áֱ⸦ ¶ìÁö ¾Ê¾Ò´øµé ÇÑ ¹ßÀ» ´ë¹®¿¡ µé¿©³õ¾ÒÀ» Á¦ ±×°÷À» Áö¹èÇÏ´Â ¹«½Ã¹«½ÃÇÑ Á¤Àû(ð¡îÖ) - Æødz¿ì°¡ Áö³ª°£ µÚÀÇ ¹Ù´Ù °°Àº Á¤Àû¿¡ ´Ù¸®°¡ ¶³·ÈÀ¸¸®¶ó. + +Äð·è°Å¸®´Â ±âħ ¼Ò¸®µµ µéÀ» ¼ö ¾ø´Ù. ±×¸£··°Å¸®´Â ¼û¼Ò¸®Á¶Â÷ µéÀ» ¼ö ¾ø´Ù. ´Ù¸¸ ÀÌ ¹«´ý°°Àº ħ¹¬À» ±ú¶ß¸®´Â - ±ú¶ß¸°´Ù´À´Ïº¸´Ù ÇÑÃþ ´õ ħ¹¬À» ±í°Ô ÇÏ°í ºÒ±æÇÏ°Ô ÇÏ´Â ºýºýÇÏ´Â ±×À¹ÇÑ ¼Ò¸®, ¾î¸°¾ÖÀÇ Á¥ ºü´Â ¼Ò¸®°¡ ³¯ »ÓÀÌ´Ù. ¸¸ÀÏ Ã»°¢(ôéÊÆ)ÀÌ ¿¹¹ÎÇÑ ÀÌ °°À¸¸é ±× ºýºý ¼Ò¸®´Â »¡ µû¸§ÀÌ¿ä, ²Ü¶±²Ü¶± ÇÏ°í Á¥ ³Ñ¾î°¡´Â ¼Ò¸®°¡ ¾øÀ¸´Ï ºó Á¥À» ºþ´Ù´Â °Íµµ ÁüÀÛÇÒ´ÂÁö ¸ð¸£¸®¶ó. + +ȤÀº ±è ÷Áöµµ ÀÌ ºÒ±æÇÑ Ä§¹¬À» ÁüÀÛÇß´ÂÁöµµ ¸ð¸¥´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ë¹®¿¡ µé¾î¼­ÀÚ¸¶ÀÚ Àü¿¡ ¾øÀÌ, ¡°ÀÌ ³­Àå ¸ÂÀ» ³â, ³²ÆíÀÌ µé¾î¿À´Âµ¥ ³ª¿Íº¸Áöµµ ¾Ê¾Æ, ÀÌ ¿À¶óÁú ³â.¡±À̶ó°í °íÇÔÀ» Ä£ °Ô ¼ö»óÇÏ´Ù. ÀÌ °íÇÔÀ̾߸»·Î Á¦ ¸öÀ» ¾ö½ÀÇØ¿À´Â ¹«½Ã¹«½ÃÇÑ ÁõÀ» ÂѾƹö¸®·Á´Â ÇãÀ强¼¼(úÈíåá¢á§)ÀÎ ±î´ßÀÌ´Ù. + +ÇÏ¿©°£ ±è ÷Áö´Â ¹æ¹®À» ¿ÐĬ ¿­¾ú´Ù. ±¸¿ªÀ» ³ª°Ô ÇÏ´Â Ãß±â - ¶³¾îÁø »ñÀÚ¸® ¹Ø¿¡¼­ ³ª¿Â ¸ÕÁö³», »¡Áö ¾ÊÀº ±âÀú±Í¿¡¼­ ³ª´Â ¶Ë³»¿Í ¿ÀÁܳ», °¡Áö°¢»ö ¶§°¡ ÄÉÄÉÈ÷ ¾ÉÀº ¿Ê³», º´ÀÎÀÇ ¶¡ ½âÀº ³»°¡ ¼¯ÀÎ Ã߱Ⱑ ¹«µò ±è ÷ÁöÀÇ ÄÚ¸¦ Âñ·¶´Ù. + +¹æ¾È¿¡ µé¾î¼­¸ç ¼³··ÅÁÀ» Çѱ¸¼®¿¡ ³õÀ» »çÀ̵µ ¾øÀÌ ÁÖÁ¤±ºÀº ¸ñûÀ» ÀÖ´Â ´ë·Î ´Ù ³»¾î È£ÅëÀ» ÃÆ´Ù. + +¡°ÀÌ·± ¿À¶óÁú ³â, ÁÖ¾ßÀåõ(ñ¸å¨íþô¹) ´©¿ö¸¸ ÀÖÀ¸¸é Á¦ÀÏÀ̾ß! ³²ÆíÀÌ ¿Íµµ ÀϾÁö¸¦ ¸øÇØ.¡±¶ó´Â ¼Ò¸®¿Í ÇÔ²² ¹ß±æ·Î ´©¿î ÀÌÀÇ ´Ù¸®¸¦ ¸÷½Ã á´Ù. ±×·¯³ª ¹ß±æ¿¡ äÀÌ´Â °Ç »ç¶÷ÀÇ »ìÀÌ ¾Æ´Ï°í ³ª¹«µî°É°ú °°Àº ´À³¦ÀÌ ÀÖ¾ú´Ù. À̶§¿¡ »ª»ª ¼Ò¸®°¡ ÀÀ¾Æ ¼Ò¸®·Î º¯ÇÏ¿´´Ù. °³¶ËÀÌ°¡ ¹°¾ú´ø Á¥À» »©¾î³õ°í ¿î´Ù. ¿î´ëµµ ¿Â ¾ó±¼À» Âô±×·Á ºÙ¿©¼­, ¿î´Ù´Â Ç¥Á¤À» ÇÒ »ÓÀÌ´Ù. ÀÀ¾Æ ¼Ò¸®µµ ÀÔ¿¡¼­ ³ª´Â °Ô ¾Æ´Ï°í ¸¶Ä¡ ¹î¼Ó¿¡¼­ ³ª´Â µíÇÏ¿´´Ù. ¿ï´Ù°¡ ¿ï´Ù°¡ ¸ñµµ Àá°å°í ¶Ç ¿ï ±â¿îÁ¶Â÷ ½ÃÁøÇÑ °Í °°´Ù. + +¹ß·Î Â÷µµ ±× º¸¶÷ÀÌ ¾ø´Â °É º¸ÀÚ ³²ÆíÀº ¾Æ³»ÀÇ ¸Ó¸®¸ÃÀ¸·Î ´Þ·Áµé¾î ±×¾ß¸»·Î ±îÄ¡Áý °°Àº ȯÀÚÀÇ ¸Ó¸®¸¦ ²¨µé¾î Èçµé¸ç, ¡°ÀÌ ³â¾Æ, ¸»À» ÇØ, ¸»À»! ÀÔÀÌ ºÙ¾ú¾î, ÀÌ ¿À¶óÁú ³â!¡± + +¡°¡¦¡± + +¡°À¸ÀÀ, ÀÌ°Í ºÁ, ¾Æ¹« ¸»ÀÌ ¾ø³×.¡± +¡°¡¦¡± + +¡°À̳â¾Æ, Á×¾ú´Ü ¸»À̳Ä, ¿Ö ¸»ÀÌ ¾ø¾î.¡± + +¡°¡¦¡± + +¡°À¸ÀÀ. ¶Ç ´ë´äÀÌ ¾ø³×, Á¤¸» Á×¾ú³ª¹öÀÌ.¡± + +ÀÌ·¯´Ù°¡ ´©¿î ÀÌÀÇ Èò âÀ» µ¤Àº, À§·Î Ä¡¶á ´«À» ¾Ë¾Æº¸ÀÚ¸¶ÀÚ, ¡°ÀÌ ´«±ò! ÀÌ ´«±ò! ¿Ö ³ª¸¦ ¹Ù¶óº¸Áö ¸øÇÏ°í õÁ¤¸¸ º¸´À³Ä, ÀÀ.¡±ÇÏ´Â ¸» ³¡¿£ ¸ñÀÌ ¸Þ¾ú´Ù. ±×·¯ÀÚ »ê »ç¶÷ÀÇ ´«¿¡¼­ ¶³¾îÁø ´ßÀÇ ¶Ë °°Àº ´«¹°ÀÌ Á×Àº ÀÌÀÇ »»»»ÇÑ ¾ó±¼À» ¾î·î¾î·î Àû½Ã¾ú´Ù. ¹®µæ ±è ÷Áö´Â ¹ÌÄ¥ µíÀÌ Á¦ ¾ó±¼À» Á×Àº ÀÌÀÇ ¾ó±¼¿¡ ÇÑÅ× ºñºñ´ë¸ç Áß¾ó°Å·È´Ù. + +¡°¼³··ÅÁÀ» »ç´Ù³õ¾Ò´Âµ¥ ¿Ö ¸ÔÁö¸¦ ¸øÇÏ´Ï, ¿Ö ¸ÔÁö¸¦ ¸øÇÏ´Ï... ±«»óÇÏ°Ôµµ ¿À´ÃÀº! ¿î¼ö°¡ ÁÁ´õ´Ï¸¸... ¡± diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt new file mode 100644 index 00000000..e10a3d46 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt @@ -0,0 +1,175 @@ +This file was derived from +http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32 +-------- +[소개] +ìž”ì¸í•œ ìš´ëª…ì€ ì´ë ‡ê²Œ ì¸ê°„ì„ ì¡°ë¡±í•˜ê³¤ 한다. 우리가 í‰ì†Œ ë§ˆìŒ ì† ì € ê¹Šì€ ê³³ì— ì›€ì¼œì¥ê³  ìžˆë˜ ìžì¡´ì‹¬ 따위는 ì–´ëŠ í•œ 순간 전혀 무용지물ì´ëž€ ê²ƒì´ ë“œëŸ¬ë‚˜ê³  만다. 하기야 ì´ë ‡ê²Œ ì‚¶ì˜ í•œ 순간, 눈 깜ì§í•  ìƒˆì— ìš°ë¦¬ë¥¼ 후려 갈기고 지나가는 ê·¸ ì§„ì‹¤ì´ ë¯¸ëž˜ì˜ ì–´ëŠë‚ ì—는 ë˜ ë‚¨ê¹€ì—†ì´ ìš°ë¦¬ 눈 ì•žì— íŽ¼ì³ì§ˆì§€ë„ 모른다. 죽ìŒì„ ì•žë‘” 사람들ì—게는 ìžì‹ ì˜ 삶 ì „ì²´ê°€ í•œ ìˆœê°„ì— ë‹¤ì‹œ ë³´ì¸ë‹¤ëŠ” 그런 ì–˜ê¸°ë„ ìžˆë˜ë°... + +다시 ì½ì–´ë³´ë‹ˆ ë”ì°í•œ ìƒê°ë„ 든다. ì‹ë¯¼ì§€ ì‹œëŒ€ì˜ ì•”ìš¸í•œ 삶, ê·¸ ëˆëˆí•œ 냄새를 피할 수 없다. 21세기를 사는 우리들ì—ê² ê·¸ëŸ° 냄새는 아예 ì¸ì—°ì´ 없는 것처럼 ëŠê»´ì§ˆ ìˆ˜ë„ ìžˆì„ ê²ƒì´ë‹¤. 그러나 과연 그럴까? ì´ëŸ° 냄새를 모르고 í‰ìƒ 사는 ì‚¬ëžŒë„ ìžˆê² ì§€ë§Œ, 전혀 ê´€ë ¨ì´ ì—†ëŠ” ê²ƒì€ ì•„ë‹ ê²ƒì´ë‹¤. 그저 ìš°ì—°ì¼ ë¿ì´ë‹¤. 아내를 박대하는 ê¹€ ì²¨ì§€ì˜ ëª¨ìŠµ... 요새 같으면 ê°„ì´ ë°° 밖으로 튀어나온 남ìžê² ì§€ë§Œ, ê·¸ëž˜ë„ ê·¸ ì• ì •ì€ ë” ì§„í•œ ê²ƒì¼ ìˆ˜ë„ ìžˆë‹¤. + +[ìž‘ê°€ 소개] +현 진 ê±´(玄鎭å¥, 1900-1943) : 소설가. 한국 ì‚¬ì‹¤ì£¼ì˜ ë‹¨íŽ¸ì†Œì„¤ì˜ ê¸°í‹€ì„ ë‹¤ì§„ ìž‘ê°€ì´ë‹¤. ë³¸ê´€ì€ ì—°ì£¼(延州). 아호는 빙허(憑虛). 1920년대 전반기ì—는 ìžì „ì  ìš”ì†Œê°€ ê°•í•œ ê°œì¸ì  ì²´í—˜ì†Œì„¤ì¸ <빈처> <술 권하는 사회>, 성(性)ì˜ ë¬¸ì œì™€ 애정문제를 다룬 <새빨간 웃ìŒ> ë“±ì´ ìžˆìœ¼ë©° 1920년대 중반 ì´í›„ì—는 <피아노> <우편국ì—ì„œ> <불> <ê³ í–¥> 등 세태ì—ì˜ ê´€ì‹¬ê³¼ ì‹ë¯¼ì§€ ìƒí™©í•˜ì˜ 현실ì¸ì‹ì´ ë‘드러진 ìž‘í’ˆì„ ë§Žì´ ë°œí‘œí–ˆë‹¤. <운수 ì¢‹ì€ ë‚ >ë„ ì´ëŸ¬í•œ ê³„ì—´ì— ì†í•˜ëŠ” ìž‘í’ˆì´ë‹¤. 1930년대 ì´í›„ì—는 역사ì˜ì‹ê³¼ 예언주ì˜ì  ë¬¸í•™ê´€ì— ê·¼ê±°í•œ 역사소설 ì¤‘ì‹¬ì˜ <무ì˜íƒ‘> <í‘치ìƒì§€(黑齒常之)> <선화공주> 등 ìž¥íŽ¸ì†Œì„¤ì„ ë°œí‘œí–ˆë‹¤. + +새침하게 í린 í’ˆì´ ëˆˆì´ ì˜¬ 듯하ë”니 ëˆˆì€ ì•„ë‹ˆ 오고 얼다가 만 비가 추ì ì¶”ì  ë‚´ë¦¬ì—ˆë‹¤. + +ì´ë‚ ì´ì•¼ë§ë¡œ ë™ì†Œë¬¸ 안ì—ì„œ ì¸ë ¥ê±°ê¾¼ ë…¸ë¦‡ì„ í•˜ëŠ” ê¹€ 첨지ì—게는 오래간만ì—ë„ ë‹¥ì¹œ 운수 ì¢‹ì€ ë‚ ì´ì—ˆë‹¤. 문안ì—(ê±°ê¸°ë„ ë¬¸ë°–ì€ ì•„ë‹ˆì§€ë§Œ) 들어간답시는 앞집 ë§ˆë‚˜ë‹˜ì„ ì „ì°»ê¸¸ê¹Œì§€ 모셔다 드린 ê²ƒì„ ë¹„ë¡¯ìœ¼ë¡œ 행여나 ì†ë‹˜ì´ 있ì„까 하고 정류장ì—ì„œ 어정어정하며 내리는 사람 하나하나ì—게 ê±°ì˜ ë¹„ëŠ” 듯한 ëˆˆê²°ì„ ë³´ë‚´ê³  있다가 마침내 êµì›ì¸ 듯한 양복장ì´ë¥¼ ë™ê´‘í•™êµ(æ±å…‰å­¸æ ¡)까지 태워다 주기로 ë˜ì—ˆë‹¤. + +ì²«ë²ˆì— ì‚¼ì‹­ ì „, 둘째 ë²ˆì— ì˜¤ì‹­ ì „ - 아침 ëŒ“ë°”ëžŒì— ê·¸ë¦¬ í”치 ì•Šì€ ì¼ì´ì—ˆë‹¤. 그야ë§ë¡œ 재수가 옴붙어서 ê·¼ ì—´í˜ ë™ì•ˆ ëˆ êµ¬ê²½ë„ ëª»í•œ ê¹€ 첨지는 ì‹­ 전짜리 백통화 ì„œ 푼, ë˜ëŠ” 다섯 í‘¼ì´ ì°°ê¹í•˜ê³  ì†ë°”ë‹¥ì— ë–¨ì–´ì§ˆ ì œ ê±°ì˜ ëˆˆë¬¼ì„ í˜ë¦´ ë§Œí¼ ê¸°ë»¤ì—ˆë‹¤. ë”구나 ì´ë‚  ì´ë•Œì— ì´ íŒ”ì‹­ ì „ì´ë¼ëŠ” ëˆì´ ê·¸ì—게 얼마나 유용한지 몰ëžë‹¤. 컬컬한 ëª©ì— ëª¨ì£¼ í•œ ìž”ë„ ì ì‹¤ 수 있거니와 ê·¸ë³´ë‹¤ë„ ì•“ëŠ” ì•„ë‚´ì—게 설ë íƒ• í•œ ê·¸ë¦‡ë„ ì‚¬ë‹¤ì¤„ 수 있ìŒì´ë‹¤. + +ê·¸ì˜ ì•„ë‚´ê°€ 기침으로 쿨럭거리기는 ë²Œì¨ ë‹¬í¬ê°€ 넘었다. ì¡°ë°¥ë„ êµ¶ê¸°ë¥¼ 먹다시피 하는 형편ì´ë‹ˆ 물론 약 í•œ 첩 ì¨ ë³¸ ì¼ì´ 없다. 구태여 쓰려면 못 쓸 ë°”ë„ ì•„ë‹ˆë¡œë˜ ê·¸ëŠ” 병ì´ëž€ 놈ì—게 ì•½ì„ ì£¼ì–´ ë³´ë‚´ë©´ 재미를 붙여서 ìžê¾¸ 온다는 ìžê¸°ì˜ ì‹ ì¡°(ä¿¡æ¢)ì— ì–´ë””ê¹Œì§€ 충실하였다. ë”°ë¼ì„œ ì˜ì‚¬ì—게 ë³´ì¸ ì ì´ 없으니 무슨 병ì¸ì§€ëŠ” ì•Œ 수 ì—†ìœ¼ë˜ ë°˜ë“¯ì´ ëˆ„ì›Œ 가지고, ì¼ì–´ë‚˜ê¸°ëŠ” 새로 ëª¨ë¡œë„ ëª» 눕는걸 ë³´ë©´ 중ì¦ì€ 중ì¦ì¸ 듯. ë³‘ì´ ì´ëŒ€ë„ë¡ ì‹¬í•´ì§€ê¸°ëŠ” ì—´í˜ ì „ì— ì¡°ë°¥ì„ ë¨¹ê³  ì²´í•œ 때문ì´ë‹¤. + +ê·¸ë•Œë„ ê¹€ 첨지가 ì˜¤ëž˜ê°„ë§Œì— ëˆì„ 얻어서 ì¢ìŒ€ í•œ ë˜ì™€ ì‹­ 전짜리 나무 í•œ ë‹¨ì„ ì‚¬ë‹¤ 주었ë”니 ê¹€ ì²¨ì§€ì˜ ë§ì— ì˜ì§€í•˜ë©´ ê·¸ 오ë¼ì§ˆ ë…„ì´ ì²œë°©ì§€ì¶•(天方地軸)으로 ë‚¨ë¹„ì— ëŒ€ê³  ë“였다. 마ìŒì€ 급하고 ë¶ˆê¸¸ì€ ë‹¬ì§€ ì•Šì•„ 채 ìµì§€ë„ ì•Šì€ ê²ƒì„ ê·¸ 오ë¼ì§ˆ ë…„ì´ ìˆŸê°€ë½ì€ 고만ë‘ê³  ì†ìœ¼ë¡œ 움켜서 ë‘ ëº¨ì— ì£¼ë¨¹ë©ì´ ê°™ì€ í˜¹ì´ ë¶ˆê±°ì§€ë„ë¡ ëˆ„ê°€ ë¹¼ì•—ì„ ë“¯ì´ ì²˜ë°•ì§ˆ 하ë”니만 그날 ì €ë…부터 ê°€ìŠ´ì´ ë•…ê¸´ë‹¤, ë°°ê°€ 켕긴다고 ëˆˆì„ í™‰ëœ¨ê³  ì§€ëž„ë³‘ì„ í•˜ì˜€ë‹¤. 그때 ê¹€ 첨지는 열화와 ê°™ì´ ì„±ì„ ë‚´ë©°, + +“ì—ì´, 오ë¼ì§ˆ ë…„, ì¡°ë¡±ë³µì€ í•  수가 없어, 못 먹어 병, 먹어서 병, 어쩌란 ë§ì´ì•¼! 왜 ëˆˆì„ ë°”ë£¨ 뜨지 못해!â€í•˜ê³  ê¹€ 첨지는 앓는 ì´ì˜ ëº¨ì„ í•œ 번 후려갈겼다. 홉뜬 ëˆˆì€ ì¡°ê¸ˆ 바루어졌건만 ì´ìŠ¬ì´ 맺히었다. ê¹€ ì²¨ì§€ì˜ ëˆˆì‹œìš¸ë„ ëœ¨ëˆëœ¨ëˆí•˜ì˜€ë‹¤. + +ì´ í™˜ìžê°€ ê·¸ëŸ¬ê³ ë„ ë¨¹ëŠ” ë°ëŠ” 물리지 않았다. ì‚¬í˜ ì „ë¶€í„° 설ë íƒ• êµ­ë¬¼ì´ ë§ˆì‹œê³  싶다고 ë‚¨íŽ¸ì„ ì¡¸ëžë‹¤. + +“ì´ëŸ° 오ë¼ì§ˆ ë…„! ì¡°ë°¥ë„ ëª» 먹는 ë…„ì´ ì„¤ë íƒ•ì€, ë˜ ì²˜ë¨¹ê³  ì§€ëž„ë³‘ì„ í•˜ê²Œ.â€ë¼ê³ , ì•¼ë‹¨ì„ ì³ë³´ì•˜ê±´ë§Œ, 못 사주는 마ìŒì´ ì‹œì›ì¹˜ëŠ” 않았다. + +ì¸ì œ 설ë íƒ•ì„ 사줄 ìˆ˜ë„ ìžˆë‹¤. 앓는 어미 ê³ì—ì„œ 배고파 보채는 개똥ì´(세 살먹ì´)ì—게 ì£½ì„ ì‚¬ì¤„ ìˆ˜ë„ ìžˆë‹¤. - 팔십 ì „ì„ ì†ì— 쥔 ê¹€ ì²¨ì§€ì˜ ë§ˆìŒì€ 푼푼하였다. 그러나 ê·¸ì˜ í–‰ìš´ì€ ê·¸ê±¸ë¡œ 그치지 않았다. 땀과 ë¹—ë¬¼ì´ ì„žì—¬ í르는 목ëœë¯¸ë¥¼ 기름주머니가 다 ëœ ì™œëª© 수건으로 닦으며, ê·¸ í•™êµ ë¬¸ì„ ëŒì•„나올 때였다. ë’¤ì—ì„œ <ì¸ë ¥ê±°!> 하고 부르는 소리가 난다. ìžê¸°ë¥¼ 불러 멈춘 ì‚¬ëžŒì´ ê·¸ í•™êµ í•™ìƒì¸ 줄 ê¹€ 첨지는 í•œ 번 ë³´ê³  ì§ìž‘í•  수 있었다. ê·¸ í•™ìƒì€ 다짜고짜로, “남대문 정거장까지 얼마요?â€ë¼ê³ , 물었다. + +ì•„ë§ˆë„ ê·¸ í•™êµ ê¸°ìˆ™ì‚¬ì— ìžˆëŠ” ì´ë¡œ ë™ê¸°ë°©í•™ì„ ì´ìš©í•˜ì—¬ 귀향하려 함ì´ë¦¬ë¼. 오늘 가기로 ìž‘ì •ì€ í•˜ì˜€ê±´ë§Œ 비는 오고, ì§ì€ 있고 í•´ì„œ 어찌할 줄 모르다가 마침 ê¹€ 첨지를 ë³´ê³  뛰어나왔ìŒì´ë¦¬ë¼. 그렇지 않으면 왜 구ë‘를 채 신지 못해서 질질 ëŒê³ , ë¹„ë¡ <고구ë¼> ì–‘ë³µì¼ë§ì • 노박ì´ë¡œ 비를 맞으며 김첨지를 뒤쫓아 나왔으랴. + +“남대문 정거장까지 ë§ì”€ìž…니까.â€í•˜ê³  ê¹€ 첨지는 ìž ê¹ ì£¼ì €í•˜ì˜€ë‹¤. 그는 ì´ ìš°ì¤‘ì— ìš°ìž¥ë„ ì—†ì´ ê·¸ 먼 ê³³ì„ ì² ë²…ê±°ë¦¬ê³  가기가 ì‹«ì—ˆìŒì¼ê¹Œ? ì²˜ìŒ ê²ƒ, 둘째 것으로 그만 만족하였ìŒì¼ê¹Œ? 아니다, ê²°ì½” 아니다. ì´ìƒí•˜ê²Œë„ 꼬리를 맞물고 ë¤ë¹„는 ì´ í–‰ìš´ ì•žì— ì¡°ê¸ˆ ê²ì´ 났ìŒì´ë‹¤.그리고 ì§‘ì„ ë‚˜ì˜¬ ì œ ì•„ë‚´ì˜ ë¶€íƒì´ 마ìŒì— 켕기었다. - 앞집 마나님한테서 부르러 ì™”ì„ ì œ 병ì¸ì€ ê·¸ 뼈만 ë‚¨ì€ ì–¼êµ´ì— ìœ ì¼ì˜ ìƒë¬¼ ê°™ì€ ìœ ë‹¬ë¦¬ í¬ê³  움í­í•œ ëˆˆì— ì• ê±¸í•˜ëŠ” ë¹›ì„ ë ìš°ë©°, â€œì˜¤ëŠ˜ì€ ë‚˜ê°€ì§€ ë§ì•„ìš”. 제발 ë•ë¶„ì— ì§‘ì— ë¶™ì–´ìžˆì–´ìš”. ë‚´ê°€ ì´ë ‡ê²Œ 아픈ë°â€¦â€¦â€ë¼ê³ , 모기 ì†Œë¦¬ê°™ì´ ì¤‘ì–¼ê±°ë¦¬ê³  ìˆ¨ì„ ê±¸ê·¸ë ê±¸ê·¸ë  하였다. + +ê·¸ë•Œì— ê¹€ 첨지는 대수롭지 ì•Šì€ ë“¯ì´, “압다, ì  ìž¥ë§žì„ ë…„, 별 ë¹Œì–´ë¨¹ì„ ì†Œë¦¬ë¥¼ 다 하네. 맞붙들고 앉았으면 누가 먹여 살릴 줄 알아.â€í•˜ê³ , í›Œì© ë›°ì–´ë‚˜ì˜¤ë ¤ë‹ˆê¹Œ 환ìžëŠ” ë¶™ìž¡ì„ ë“¯ì´ íŒ”ì„ ë‚´ì €ìœ¼ë©°, “나가지 ë§ë¼ë„ 그래, 그러면 ì¼ì°Œê¸° 들어와요.â€í•˜ê³ , ëª©ë©”ì¸ ì†Œë¦¬ê°€ 뒤를 ë”°ëžë‹¤. + +정거장까지 가잔 ë§ì„ ë“¤ì€ ìˆœê°„ì— ê²½ë ¨ì ìœ¼ë¡œ 떠는 ì†, 유달리 í¼ì§í•œ 눈, 울 듯한 ì•„ë‚´ì˜ ì–¼êµ´ì´ ê¹€ ì²¨ì§€ì˜ ëˆˆì•žì— ì–´ë¥¸ì–´ë¥¸í•˜ì˜€ë‹¤. “그래 남대문 정거장까지 얼마란 ë§ì´ìš”?â€í•˜ê³  í•™ìƒì€ 초조한 ë“¯ì´ ì¸ë ¥ê±°ê¾¼ì˜ ì–¼êµ´ì„ ë°”ë¼ë³´ë©° 혼잣ë§ê°™ì´, “ì¸ì²œ 차가 ì—´ í•œ ì ì— 있고, ê·¸ 다ìŒì—는 새로 ë‘ ì ì´ë“ ê°€.â€ë¼ê³ , 중얼거린다. + +â€œì¼ ì› ì˜¤ì‹­ 전만 ì¤ì‹œìš”.â€ ì´ ë§ì´ ì €ë„ ëª¨ë¥¼ 사ì´ì— 불쑥 ê¹€ ì²¨ì§€ì˜ ìž…ì—ì„œ 떨어졌다. ì œ 입으로 ë¶€ë¥´ê³ ë„ ìŠ¤ìŠ¤ë¡œ ê·¸ ì—„ì²­ë‚œ ëˆ ì•¡ìˆ˜ì— ë†€ëž˜ì—ˆë‹¤. í•œêº¼ë²ˆì— ì´ëŸ° ê¸ˆì•¡ì„ ë¶ˆëŸ¬ë¼ë„ 본 지가 ê·¸ 얼마만ì¸ê°€! ê·¸ëŸ¬ìž ê·¸ ëˆ ë²Œ 용기가 병ìžì— 대한 염려를 사르고 ë§ì•˜ë‹¤. 설마 오늘 ë‚´ë¡œ ì–´ë– ëž´ 싶었다. 무슨 ì¼ì´ 있ë”ë¼ë„ ì œì¼ ì œì´ì˜ í–‰ìš´ì„ ê³±ì¹œ ê²ƒë³´ë‹¤ë„ ì˜¤ížˆë ¤ ê°‘ì ˆì´ ë§Žì€ ì´ í–‰ìš´ì„ ë†“ì¹  수 없다 하였다. + +â€œì¼ ì› ì˜¤ì‹­ ì „ì€ ë„ˆë¬´ 과한ë°.†ì´ëŸ° ë§ì„ 하며 í•™ìƒì€ 고개를 기웃하였다. + +“아니올시다. 잇수로 치면 여기서 거기가 시오리가 넘는답니다. ë˜ ì´ëŸ° 진 ë‚ ì— ì¢€ë” ì£¼ì…”ì•¼ì§€ìš”.â€í•˜ê³  빙글빙글 웃는 ì°¨ë¶€ì˜ ì–¼êµ´ì—는 숨길 수 없는 기ì¨ì´ ë„˜ì³ í˜ë €ë‹¤. + +“그러면 달ë¼ëŠ” 대로 줄 í„°ì´ë‹ˆ 빨리 가요.†관대한 어린 ì†ë‹˜ì€ 그런 ë§ì„ 남기고 ì´ì´ížˆ ì˜·ë„ ìž…ê³  ì§ë„ 챙기러 ê°ˆ ë°ë¡œ 갔다. + +ê·¸ í•™ìƒì„ 태우고 나선 ê¹€ ì²¨ì§€ì˜ ë‹¤ë¦¬ëŠ” ì´ìƒí•˜ê²Œ ê±°ë¿í•˜ì˜€ë‹¤. 달ìŒì§ˆì„ 한다ëŠë‹ˆë³´ë‹¤ ê±°ì˜ ë‚˜ëŠ” 듯하였다. ë°”í€´ë„ ì–´ë–»ê²Œ ì†ížˆ ë„는지 군다ëŠë‹ˆë³´ë‹¤ 마치 ì–¼ìŒì„ 지ì³ë‚˜ê°€ëŠ” <스케ì´íŠ¸> 모양으로 미ë„러져 가는 듯하였다. ì–¼ì€ ë•…ì— ë¹„ê°€ ë‚´ë ¤ 미ë„ëŸ½ê¸°ë„ í•˜ì˜€ì§€ë§Œ. + +ì´ìœ½ê³  ë„는 ì´ì˜ 다리는 무거워졌다. ìžê¸° 집 ê°€ê¹Œì´ ë‹¤ë‹¤ë¥¸ 까닭ì´ë‹¤. 새삼스러운 염려가 ê·¸ì˜ ê°€ìŠ´ì„ ëˆŒë €ë‹¤. <ì˜¤ëŠ˜ì€ ë‚˜ê°€ì§€ ë§ì•„ìš”. ë‚´ê°€ ì´ë ‡ê²Œ 아픈ë°!> ì´ëŸ° ë§ì´ 잉잉 ê·¸ì˜ ê·€ì— ìš¸ë ¸ë‹¤. 그리고 병ìžì˜ 움쑥 들어간 ëˆˆì´ ì›ë§í•˜ëŠ” ë“¯ì´ ìžê¸°ë¥¼ 노리는 듯하였다. ê·¸ëŸ¬ìž ì—‰ì—‰í•˜ê³  우는 개똥ì´ì˜ ê³¡ì„±ì„ ë“¤ì€ ë“¯ì‹¶ë‹¤. 딸국딸국 하고 숨 모으는 ì†Œë¦¬ë„ ë‚˜ëŠ” 듯싶다.“왜 ì´ë¦¬ìš°, 기차 놓치겠구먼.â€í•˜ê³  탄 ì´ì˜ 초조한 부르짖ìŒì´ 간신히 ê·¸ì˜ ê·€ì— ë“¤ì–´ì™”ë‹¤. 언뜻 깨달으니 ê¹€ 첨지는 ì¸ë ¥ê±°ë¥¼ 쥔 채 길 한복íŒì— 엉거주춤 멈춰있지 ì•Šì€ê°€. + +“예, 예.â€í•˜ê³ , ê¹€ 첨지는 ë˜ë‹¤ì‹œ 달ìŒì§ˆí•˜ì˜€ë‹¤. ì§‘ì´ ì°¨ì°¨ ë©€ì–´ê°ˆìˆ˜ë¡ ê¹€ ì²¨ì§€ì˜ ê±¸ìŒì—는 다시금 ì‹ ì´ ë‚˜ê¸° 시작하였다. 다리를 재게 놀려야만 ì‰´ìƒˆì—†ì´ ìžê¸°ì˜ ë¨¸ë¦¬ì— ë– ì˜¤ë¥´ëŠ” 모든 근심과 ê±±ì •ì„ ìžŠì„ ë“¯ì´. + +정거장까지 ëŒì–´ë‹¤ì£¼ê³  ê·¸ ê¹œì§ ë†€ëž€ ì¼ ì› ì˜¤ì‹­ ì „ì„ ì •ë§ ì œ ì†ì— 쥠ì—, ì œ ë§ë§ˆë”°ë‚˜ ì‹­ 리나 ë˜ëŠ” ê¸¸ì„ ë¹„ë¥¼ 맞아 가며 질í½ê±°ë¦¬ê³  온 ìƒê°ì€ 아니하고, 거저나 ì–»ì€ ë“¯ì´ ê³ ë§ˆì™”ë‹¤. 졸부나 ëœ ë“¯ì´ ê¸°ë»¤ë‹¤. ì œìžì‹ ë»˜ë°–ì— ì•ˆë˜ëŠ” 어린 ì†ë‹˜ì—게 몇 번 허리를 굽히며, “안녕히 다녀옵시요.â€ë¼ê³  ê¹ë“¯ì´ 재우쳤다. + +그러나 빈 ì¸ë ¥ê±°ë¥¼ 털털거리며 ì´ ìš°ì¤‘ì— ëŒì•„ê°ˆ ì¼ì´ 꿈밖ì´ì—ˆë‹¤. ë…¸ë™ìœ¼ë¡œ 하여 í른 ë•€ì´ ì‹ì–´ì§€ìž 굶주린 ì°½ìžì—ì„œ, 물 í르는 옷ì—ì„œ 어슬어슬 한기가 솟아나기 비롯하매 ì¼ ì› ì˜¤ì‹­ ì „ì´ëž€ ëˆì´ 얼마나 괜찮고 괴로운 ê²ƒì¸ ì¤„ 절절히 ëŠë¼ì—ˆë‹¤. ì •ê±°ìž¥ì„ ë– ë‚˜ëŠ” ê·¸ì˜ ë°œê¸¸ì€ íž˜ 하나 없었다. ì˜¨ëª¸ì´ ì˜¹ì†¡ê·¸ë ¤ì§€ë©° 당장 ê·¸ ìžë¦¬ì— ì—Žì–´ì ¸ 못 ì¼ì–´ë‚  것 같았다. + +â€œì  ìž¥ë§žì„ ê²ƒ! ì´ ë¹„ë¥¼ 맞으며 빈 ì¸ë ¥ê±°ë¥¼ 털털거리고 ëŒì•„를 ê°„ë‹´. ì´ëŸ° 빌어먹ì„, ì œ 할미를 ë¶™ì„ ë¹„ê°€ 왜 ë‚¨ì˜ ìƒíŒì„ 딱딱 때려!†+ +그는 몹시 홧ì¦ì„ ë‚´ë©° 누구ì—게 반항ì´ë‚˜ 하는 ë“¯ì´ ê²Œê±¸ê±°ë ¸ë‹¤. 그럴 즈ìŒì— ê·¸ì˜ ë¨¸ë¦¬ì—” ë˜ ìƒˆë¡œìš´ ê´‘ëª…ì´ ë¹„ì³¤ë‚˜ë‹ˆ ê·¸ê²ƒì€ <ì´ëŸ¬êµ¬ ê°ˆ 게 ì•„ë‹ˆë¼ ì´ ê·¼ì²˜ë¥¼ 빙빙 ëŒë©° ì°¨ 오기를 기다리면 ë˜ ì†ë‹˜ì„ 태우게 ë ëŠ”ì§€ë„ ëª°ë¼>란 ìƒê°ì´ì—ˆë‹¤. 오늘 운수가 ê´´ìƒí•˜ê²Œë„ 좋으니까 그런 ìš”í–‰ì´ ë˜í•œë²ˆ 없으리ë¼ê³  누가 ë³´ì¦í•˜ëž´. 꼬리를 굴리는 í–‰ìš´ì´ ê¼­ ìžê¸°ë¥¼ 기다리고 있다고 내기를 í•´ë„ ì¢‹ì„ ë§Œí•œ 믿ìŒì„ 얻게 ë˜ì—ˆë‹¤. 그렇다고 정거장 ì¸ë ¥ê±°ê¾¼ì˜ ë“±ì‚´ì´ ë¬´ì„œìš°ë‹ˆ 정거장 ì•žì— ì„°ì„ ìˆ˜ëŠ” 없었다. + +그래 그는 ì´ì „ì—ë„ ì—¬ëŸ¬ 번 해본 ì¼ì´ë¼ 바로 정거장 ì•ž ì „ì°¨ 정류장ì—ì„œ 조금 떨어지게, 사람 다니는 길과 전찻길 í‹ˆì— ì¸ë ¥ê±°ë¥¼ 세워놓고 ìžê¸°ëŠ” ê·¸ 근처를 빙빙 ëŒë©° 형세를 ê´€ë§í•˜ê¸°ë¡œ 하였다. ì–¼ë§ˆë§Œì— ê¸°ì°¨ëŠ” 왔고, 수십 명ì´ë‚˜ ë˜ëŠ” ì†ì´ 정류장으로 ìŸì•„ì ¸ 나왔다. ê·¸ 중ì—ì„œ ì†ë‹˜ì„ 물색하는 ê¹€ ì²¨ì§€ì˜ ëˆˆì—” ì–‘ë¨¸ë¦¬ì— ë’¤ì¶• ë†’ì€ êµ¬ë‘를 ì‹ ê³  <ë§í† >까지 ë‘른 ê¸°ìƒ í‡´ë¬¼ì¸ ë“¯, 난봉 여학ìƒì¸ 듯한 ì—¬íŽ¸ë„¤ì˜ ëª¨ì–‘ì´ ë„었다. 그는 슬근슬근 ê·¸ ì—¬ìžì˜ ê³ìœ¼ë¡œ 다가들었다. + +“아씨, ì¸ë ¥ê±° 아니 타시ëžì‹œìš”?†+ +ê·¸ 여학ìƒì¸ì§€ 뭔지가 í•œì°¸ì€ ë§¤ìš° íƒ¯ê°ˆì„ ë¹¼ë©° ìž…ìˆ ì„ ê¼­ 다문 채 ê¹€ 첨지를 ê±°ë“¤ë– ë³´ì§€ë„ ì•Šì•˜ë‹¤. ê¹€ 첨지는 구걸하는 거지나 ë¬´ì—‡ê°™ì´ ì—°í•´ì—°ë°© ê·¸ì˜ ê¸°ìƒ‰ì„ ì‚´í”¼ë©°, “아씨, 정거장 애들보담 아주 싸게 모셔다 드리겠ì니다. ëŒì´ 어디신가요.â€í•˜ê³ , ì¶”ê·¼ì¶”ê·¼í•˜ê²Œë„ ê·¸ ì—¬ìžì˜ 들고 있는 ì¼ë³¸ì‹ 버들고리ì§ì— ì œ ì†ì„ 대었다. + +“왜 ì´ëž˜, 남 귀치않게.†소리를 ë²½ë ¥ê°™ì´ ì§€ë¥´ê³ ëŠ” ëŒì•„선다. ê¹€ 첨지는 ì–´ëžì‹œìš” 하고 물러섰다. + +전차는 왔다. ê¹€ 첨지는 ì›ë§ìŠ¤ëŸ½ê²Œ ì „ì°¨ 타는 ì´ë¥¼ 노리고 있었다. 그러나 ê·¸ì˜ ì˜ˆê°(豫感)ì€ í‹€ë¦¬ì§€ 않았다. 전차가 빡빡하게 ì‚¬ëžŒì„ ì‹£ê³  움ì§ì´ê¸° ì‹œìž‘í•˜ì˜€ì„ ë•Œ 타고 ë‚¨ì€ ì† í•˜ë‚˜ì´ ìžˆì—ˆë‹¤. 굉장하게 í° ê°€ë°©ì„ ë“¤ê³  있는걸 ë³´ë©´ 아마 ë¶ë¹„는 ì°¨ ì•ˆì— ì§ì´ í¬ë‹¤ 하여 차장ì—게 밀려내려온 눈치였다. ê¹€ 첨지는 대어섰다. + +“ì¸ë ¥ê±°ë¥¼ 타시ëžì‹œìš”.†+ +í•œë™ì•ˆ 값으로 승강ì´ë¥¼ 하다가 육십 ì „ì— ì¸ì‚¬ë™ê¹Œì§€ 태워다주기로 하였다. ì¸ë ¥ê±°ê°€ 무거워지매 ê·¸ì˜ ëª¸ì€ ì´ìƒí•˜ê²Œë„ 가벼워졌고 그리고 ë˜ ì¸ë ¥ê±°ê°€ 가벼워지니 ëª¸ì€ ë‹¤ì‹œê¸ˆ 무거워졌건만 ì´ë²ˆì—는 마ìŒì¡°ì°¨ 초조해 온다. ì§‘ì˜ ê´‘ê²½ì´ ìžê¾¸ ëˆˆì•žì— ì–´ë¥¸ê±°ë¦¬ì–´ ì¸ì œ ìš”í–‰ì„ ë°”ëž„ ì—¬ìœ ë„ ì—†ì—ˆë‹¤. 나무 등걸ì´ë‚˜ 무엇 같고 ì œ 것 ê°™ì§€ë„ ì•Šì€ ë‹¤ë¦¬ë¥¼ ì—°í•´ 꾸짖으며 갈팡질팡 뛰는 ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. + +ì €ë†ˆì˜ ì¸ë ¥ê±°êµ°ì´ 저렇게 ìˆ ì´ ì·¨í•´ê°€ì§€ê³  ì´ ì§„ ë•…ì— ì–´ì°Œ 가노, ë¼ê³  길 가는 ì‚¬ëžŒì´ ê±±ì •ì„ í•˜ë¦¬ë§Œí¼ ê·¸ì˜ ê±¸ìŒì€ 황급하였다. í리고 비오는 í•˜ëŠ˜ì€ ì–´ë‘ ì¹¨ì¹¨í•˜ê²Œ ë²Œì¨ í™©í˜¼ì— ê°€ê¹Œìš´ 듯하다. ì°½ê²½ì› ì•žê¹Œì§€ 다달아서야 그는 í„±ì— ë‹¿ì€ ìˆ¨ì„ ëŒë¦¬ê³  걸ìŒë„ 늦추잡았다. í•œ ê±¸ìŒ ë‘ ê±¸ìŒ ì§‘ì´ ê°€ê¹Œì™€ì˜¬ìˆ˜ë¡ ê·¸ì˜ ë§ˆìŒì¡°ì°¨ ê´´ìƒí•˜ê²Œ 누그러웠다. ê·¸ëŸ°ë° ì´ ëˆ„ê·¸ëŸ¬ì›€ì€ ì•ˆì‹¬ì—ì„œ 오는 게 아니요, ìžê¸°ë¥¼ ë®ì¹œ 무서운 ë¶ˆí–‰ì„ ë¹ˆí‹ˆì—†ì´ ì•Œê²Œ ë  ë•Œê°€ ë°•ë‘í•œ ê²ƒì„ ë‘려워하는 마ìŒì—ì„œ 오는 것ì´ë‹¤. + +그는 ë¶ˆí–‰ì— ë‹¤ë‹¥ì¹˜ê¸° ì „ ì‹œê°„ì„ ì–¼ë§ˆì¯¤ì´ë¼ë„ 늘리려고 버르ì ê±°ë ¸ë‹¤. 기ì (奇蹟)ì— ê°€ê¹Œìš´ 벌ì´ë¥¼ 하였다는 기ì¨ì„ í•  수 있으면 오래 지니고 싶었다. 그는 ë‘리번ë‘리번 ì‚¬ë©´ì„ ì‚´í”¼ì—ˆë‹¤. ê·¸ ëª¨ì–‘ì€ ë§ˆì¹˜ ìžê¸° 집 - 곧 ë¶ˆí–‰ì„ í–¥í•˜ê³  달려가는 ì œ 다리를 ì œ 힘으로는 ë„저히 어찌할 수 없으니 누구든지 나를 좀 ìž¡ì•„ 다고, 구해 다고 하는 듯하였다. + +그럴 즈ìŒì— 마침 길가 선술집ì—ì„œ ê·¸ì˜ ì¹œêµ¬ 치삼ì´ê°€ 나온다. ê·¸ì˜ ìš°ê¸€ìš°ê¸€ ì‚´ì° ì–¼êµ´ì— ì£¼í™ì´ ë‹ëŠ” 듯, 온 턱과 ëº¨ì„ ì‹œì»¤ë©“ê²Œ êµ¬ë ˆë‚˜ë£»ì´ ë®ì˜€ê±°ëŠ˜, 노르탱탱한 ì–¼êµ´ì´ ë°”ì§ ë§ë¼ì„œ 여기저기 ê³ ëž‘ì´ íŒ¨ê³ , ìˆ˜ì—¼ë„ ìžˆëŒ€ì•¼ 턱밑ì—만 마치 솔잎 송ì´ë¥¼ 거꾸로 ë¶™ì—¬ë†“ì€ ë“¯í•œ ê¹€ ì²¨ì§€ì˜ í’채하고는 기ì´í•œ 대ìƒì„ 짓고 있었다. + +“여보게 ê¹€ 첨지, ìžë„¤ 문안 들어갔다 오는 모양ì¼ì„¸ê·¸ë ¤. ëˆ ë§Žì´ ë²Œì—ˆì„ í…Œë‹ˆ í•œ ìž” 빨리게.†+ +뚱뚱보는 ë§ë¼ê¹½ì´ë¥¼ ë³´ë“  ë§¡ì— ë¶€ë¥´ì§–ì—ˆë‹¤. ê·¸ 목소리는 몸짓과 ë”´íŒìœ¼ë¡œ 연하고 싹싹하였다. ê¹€ 첨지는 ì´ ì¹œêµ¬ë¥¼ 만난 게 어떻게 반가운지 몰ëžë‹¤. ìžê¸°ë¥¼ 살려준 ì€ì¸ì´ë‚˜ ë¬´ì—‡ê°™ì´ ê³ ë§™ê¸°ë„ í•˜ì˜€ë‹¤. + +“ìžë„¤ëŠ” ë²Œì¨ í•œìž” í•œ 모양ì¼ì„¸ê·¸ë ¤. ìžë„¤ë„ 오늘 재미가 좋아보ì´.â€í•˜ê³ , ê¹€ 첨지는 ì–¼êµ´ì„ íŽ´ì„œ 웃었다. + +“압다, 재미 안 좋다고 술 못 ë¨¹ì„ ë‚¸ê°€. ê·¸ëŸ°ë° ì—¬ë³´ê²Œ, ìžë„¤ ì™¼ëª¸ì´ ì–´ì§¸ 물ë…ì— ë¹ ì§„ ìƒˆì•™ì¥ ê°™ì€ê°€? ì–´ì„œ ì´ë¦¬ 들어와 ë§ë¦¬ê²Œ.†+ +ì„ ìˆ ì§‘ì€ í›ˆí›ˆí•˜ê³  뜨뜻하였다. ì¶”ì–´íƒ•ì„ ë“ì´ëŠ” ì†¥ëšœê»‘ì„ ì—´ ì ë§ˆë‹¤ 뭉게뭉게 떠오르는 í° ê¹€, ì„쇠ì—ì„œ ë»ì§€ì§“ë»ì§€ì§“ 구워지는 너비아니 구ì´ë©° 제육ì´ë©° ê°„ì´ë©° 콩팥ì´ë©° ë¶ì–´ë©° ë¹ˆëŒ€ë–¡â€¦â€¦ì´ ë„ˆì €ë¶„í•˜ê²Œ ëŠ˜ì–´ë†“ì¸ ì•ˆì£¼ íƒìžì— ê¹€ 첨지는 ê°‘ìžê¸° ì†ì´ 쓰려서 견딜 수 없었다. 마ìŒëŒ€ë¡œ í•  ì–‘ì´ë©´ 거기 있는 모든 ë¨¹ìŒ ë¨¹ì´ë¥¼ 모조리 깡그리 ì§‘ì–´ì‚¼ì¼œë„ ì‹œì›ì¹˜ 않았다. í•˜ë˜ ë°°ê³ í”ˆ ì´ëŠ” 위선 분량 ë§Žì€ ë¹ˆëŒ€ë–¡ ë‘ ê°œë¥¼ 쪼ì´ê¸°ë„ 하고 ì¶”ì–´íƒ•ì„ í•œ 그릇 청하였다. + +주린 ì°½ìžëŠ” ìŒì‹ë§›ì„ ë³´ë”니 ë”ìš±ë”ìš± 비어지며 ìžê¾¸ìžê¾¸ 들ì´ë¼ë“¤ì´ë¼ 하였다. 순ì‹ê°„ì— ë‘부와 미꾸리 ë“  êµ­ í•œ ê·¸ë¦‡ì„ ê·¸ëƒ¥ ë¬¼ê°™ì´ ë“¤ì´í‚¤ê³  ë§ì•˜ë‹¤. 세째 ê·¸ë¦‡ì„ ë°›ì•„ë“¤ì—ˆì„ ì œ ë°ìš°ë˜ ë§‰ê±¸ì´ ê³±ë°°ê¸° ë‘ ìž”ì´ ë”웠다. 치삼ì´ì™€ ê°™ì´ ë§ˆì‹œìž ì›ì›ížˆ ë¹„ì—ˆë˜ ì†ì´ë¼ 찌르르하고 ì°½ìžì— í¼ì§€ë©° ì–¼êµ´ì´ í™”ëˆí•˜ì˜€ë‹¤. 눌러 곱배기 í•œ ìž”ì„ ë˜ ë§ˆì…¨ë‹¤. + +ê¹€ ì²¨ì§€ì˜ ëˆˆì€ ë²Œì¨ ê°œê°œ 풀리기 시작하였다. ì„ì‡ ì— ì–¹ížŒ ë–¡ ë‘ ê°œë¥¼ 숭ë©ìˆ­ë© ì°ì–´ì„œ ë³¼ì„ ë¶ˆë£©ê±°ë¦¬ë©° ë˜ ê³±ë°°ê¸° ë‘ ìž”ì„ ë¶€ì–´ë¼ í•˜ì˜€ë‹¤. + +ì¹˜ì‚¼ì€ ì˜ì•„í•œ ë“¯ì´ ê¹€ 첨지를 ë³´ë©°, “여보게 ë˜ ë¶“ë‹¤ë‹ˆ, ë²Œì¨ ìš°ë¦¬ê°€ 넉 잔씩 먹었네, ëˆì´ 사십 ì „ì¼ì„¸.â€ë¼ê³  주ì˜ì‹œì¼°ë‹¤. + +“아따 ì´ë†ˆì•„, 사십 ì „ì´ ê·¸ë¦¬ ë”ì°í•˜ëƒ. 오늘 ë‚´ê°€ ëˆì„ 막 벌었어. ì°¸ 오늘 운수가 좋았ëŠë‹ˆ.†+ +“그래 얼마를 벌었단 ë§ì¸ê°€?†+ +“삼십 ì›ì„ 벌었어, 삼십 ì›ì„! ì´ëŸ° ì  ìž¥ë§žì„ ìˆ ì„ ì™œ 안부어……괜찮다 괜찮다, 막 ë¨¹ì–´ë„ ìƒê´€ì´ 없어. 오늘 ëˆ ì‚°ë”ë¯¸ê°™ì´ ë²Œì—ˆëŠ”ë°.†+ +“어, ì´ ì‚¬ëžŒ 취했군, 그만ë‘세.†+ +“ì´ë†ˆì•„, ì´ê±¸ 먹고 취할 ë‚´ëƒ, ì–´ì„œ ë” ë¨¹ì–´.â€í•˜ê³ ëŠ” ì¹˜ì‚¼ì˜ ê·€ë¥¼ 잡아채며 취한 ì´ëŠ” 부르짖었다. 그리고 ìˆ ì„ ë¶“ëŠ” ì—´ 다섯 ì‚´ ë¨ì§í•œ 중대가리ì—게로 달려들며, “ì´ë†ˆ, 오ë¼ì§ˆ 놈, 왜 ìˆ ì„ ë¶“ì§€ ì•Šì–´.â€ë¼ê³  ì•¼ë‹¨ì„ ì³¤ë‹¤. 중대가리는 히히 웃고 ì¹˜ì‚¼ì„ ë³´ë©° 문ì˜í•˜ëŠ” ë“¯ì´ ëˆˆì§“ì„ í•˜ì˜€ë‹¤. ì£¼ì •ê¾¼ì´ ëˆˆì¹˜ë¥¼ 알아보고 화를 버럭내며, “ì—미를 ë¶™ì„ ì´ ì˜¤ë¼ì§ˆ 놈들 같으니, ì´ë†ˆ ë‚´ê°€ ëˆì´ ì—†ì„ ì¤„ 알고.â€í•˜ìžë§ˆìž í—ˆë¦¬ì¶¤ì„ í›”ì¹«í›”ì¹« 하ë”니 ì¼ ì›ì§œë¦¬ í•œ ìž¥ì„ êº¼ë‚´ì–´ 중대가리 ì•žì— íŽ„ì© ì§‘ì–´ë˜ì¡Œë‹¤. ê·¸ ì‚¬í’ˆì— ëª‡ 푼 ì€ì „ì´ ìž˜ê·¸ëž‘ 하며 떨어진다. + +“여보게 ëˆ ë–¨ì–´ì¡Œë„¤, 왜 ëˆì„ 막 ë¼ì–¹ë‚˜.†ì´ëŸ° ë§ì„ 하며 ì¼ë³€ ëˆì„ ì¤ëŠ”다. ê¹€ 첨지는 취한 중ì—ë„ ëˆì˜ 거처를 살피는 ë“¯ì´ ëˆˆì„ í¬ê²Œ ë– ì„œ ë•…ì„ ë‚´ë ¤ë‹¤ë³´ë‹¤ê°€ ë¶ˆì‹œì— ì œ 하는 ì§“ì´ ë„ˆë¬´ ë”럽다는 ë“¯ì´ ê³ ê°œë¥¼ 소스ë¼ì¹˜ìž ë”ìš± ì„±ì„ ë‚´ë©°, “ë´ë¼ ë´! ì´ ë”러운 놈들아, ë‚´ê°€ ëˆì´ 없나, 다리뼉다구를 êº¾ì–´ë†“ì„ ë†ˆë“¤ 같으니.â€í•˜ê³  ì¹˜ì‚¼ì˜ ì£¼ì›Œì£¼ëŠ” ëˆì„ 받아, â€œì´ ì›ìˆ˜ì—£ ëˆ! ì´ ìœ¡ì‹œë¥¼ í•  ëˆ!â€í•˜ë©´ì„œ, í’€ë§¤ì§ˆì„ ì¹œë‹¤. ë²½ì— ë§žì•„ 떨어진 ëˆì€ 다시 술 ë“ì´ëŠ” ì–‘í‘¼ì— ë–¨ì–´ì§€ë©° 정당한 매를 맞는다는 ë“¯ì´ ì¨í•˜ê³  울었다. + +곱배기 ë‘ ìž”ì€ ë˜ ë¶€ì–´ì§ˆ ê²¨ë¥¼ë„ ì—†ì´ ë§ë ¤ê°€ê³  ë§ì•˜ë‹¤. ê¹€ 첨지는 입술과 ìˆ˜ì—¼ì— ë¶™ì€ ìˆ ì„ ë¹¨ì•„ë“¤ì´ê³  나서 매우 만족한 ë“¯ì´ ê·¸ 솔잎 ì†¡ì´ ìˆ˜ì—¼ì„ ì“°ë‹¤ë“¬ìœ¼ë©°, â€œë˜ ë¶€ì–´, ë˜ ë¶€ì–´.â€ë¼ê³ , 외쳤다. + +ë˜ í•œ ìž” 먹고 나서 ê¹€ 첨지는 ì¹˜ì‚¼ì˜ ì–´ê¹¨ë¥¼ 치며 ë¬¸ë“ ê»„ê»„ 웃는다. ê·¸ ì›ƒìŒ ì†Œë¦¬ê°€ 어떻게 컸는지 ìˆ ì§‘ì— ìžˆëŠ” ì´ì˜ ëˆˆì€ ëª¨ë‘ ê¹€ 첨지ì—게로 몰리었다. 웃는 ì´ëŠ” ë”ìš± 웃으며, “여보게 치삼ì´, ë‚´ 우스운 ì´ì•¼ê¸° 하나 할까. 오늘 ì†ì„ 태고 정거장ì—까지 가지 않았겠나.†+ +“그래서.†+ +“갔다가 그저 오기가 안 ëë°ê·¸ë ¤. 그래 ì „ì°¨ 정류장ì—ì„œ 어름어름하며 ì†ë‹˜ 하나를 태울 ê¶ë¦¬ë¥¼ 하지 않았나. 거기 마침 마나님ì´ì‹ ì§€ 여학ìƒë‹˜ì´ì‹ ì§€ - 요새야 ì–´ë”” 논다니와 아가씨를 구별할 수가 있ë˜ê°€ - <ë§í† >를 ë‘르고 비를 맞고 ì„œ 있겠지. 슬근슬근 ê°€ê¹Œì´ ê°€ì„œ ì¸ë ¥ê±° 타시ëžì‹œìš” 하고 ì†ê°€ë°©ì„ 받으랴니까 ë‚´ ì†ì„ íƒ ë¿Œë¦¬ì¹˜ê³  í™± ëŒì•„ì„œë”니만 <왜 ë‚¨ì„ ì´ë ‡ê²Œ 귀찮게 êµ´ì–´!> ê·¸ 소리야ë§ë¡œ 꾀꼬리 소리지, 허허!†+ +ê¹€ 첨지는 êµë¬˜í•˜ê²Œë„ ì •ë§ ê¾€ê¼¬ë¦¬ ê°™ì€ ì†Œë¦¬ë¥¼ 내었다. 모든 ì‚¬ëžŒì€ ì¼ì‹œì— 웃었다. + +â€œë¹Œì–´ë¨¹ì„ ê¹ìŸì´ ê°™ì€ ë…„, 누가 저를 어쩌나, <왜 ë‚¨ì„ ê·€ì°®ê²Œ êµ´ì–´!> ì–´ì´êµ¬ 소리가 ì²˜ì‹ ë„ ì—†ì§€, 허허.†+ +ì›ƒìŒ ì†Œë¦¬ë“¤ì€ ë†’ì•„ì¡Œë‹¤. 그러나 ê·¸ ì›ƒìŒ ì†Œë¦¬ë“¤ì´ ì‚¬ë¼ì§€ê¸° ì „ì— ê¹€ 첨지는 훌ì©í›Œì© 울기 시작하였다. + +ì¹˜ì‚¼ì€ ì–´ì´ì—†ì´ 주정뱅ì´ë¥¼ ë°”ë¼ë³´ë©°, “금방 웃고 ì§€ëž„ì„ í•˜ë”니 우는 ê±´ ë˜ ë¬´ìŠ¨ ì¼ì¸ê°€.†+ +ê¹€ 첨지는 ì—°í•´ 코를 들여마시며, “우리 마누ë¼ê°€ 죽었다네.†+ +“ë­, 마누ë¼ê°€ 죽다니, 언제?†+ +“ì´ë†ˆì•„ 언제는. 오늘ì´ì§€.†+ +“엑기 미친 놈, ê±°ì§“ë§ ë§ì•„.†+ +“거짓ë§ì€ 왜, ì°¸ë§ë¡œ 죽었어, ì°¸ë§ë¡œ... ë§ˆëˆ„ë¼ ì‹œì²´ë¥¼ 집어 ë»ë“¤ì³ë†“ê³  ë‚´ê°€ ìˆ ì„ ë¨¹ë‹¤ë‹ˆ, ë‚´ê°€ ì£½ì¼ ë†ˆì´ì•¼, ì£½ì¼ ë†ˆì´ì•¼.â€í•˜ê³  ê¹€ 첨지는 엉엉 소리를 ë‚´ì–´ 운다. + +ì¹˜ì‚¼ì€ í¥ì´ 조금 깨어지는 얼굴로, â€œì› ì´ ì‚¬ëžŒì´, ì°¸ë§ì„ 하나 거짓ë§ì„ 하나. 그러면 집으로 가세, ê°€.â€í•˜ê³  우는 ì´ì˜ íŒ”ì„ ìž¡ì•„ë‹¹ê¸°ì—ˆë‹¤. + +ì¹˜ì‚¼ì˜ ë„는 ì†ì„ 뿌리치ë”니 ê¹€ 첨지는 ëˆˆë¬¼ì´ ê¸€ì½ê¸€ì½í•œ 눈으로 싱그레 웃는다. + +“죽기는 누가 죽어.â€í•˜ê³  ë“ì˜ê°€ ì–‘ì–‘. + +“죽기는 왜 죽어, ìƒë•Œê°™ì´ 살아만 있단다. ê·¸ 오ë¼ì§ˆ ë…„ì´ ë°¥ì„ ì£½ì´ì§€. ì¸ì œ 나한테 ì†ì•˜ë‹¤.â€í•˜ê³  어린애 모양으로 ì†ë¼‰ì„ 치며 웃는다. + +â€œì´ ì‚¬ëžŒì´ ì •ë§ ë¯¸ì³¤ë‹¨ ë§ì¸ê°€. ë‚˜ë„ ì•„ì£¼ë¨¼ë„¤ê°€ 앓는단 ë§ì€ 들었는ë°.â€í•˜ê³ , 치삼ì´ë„ ì–´ëŠ ë¶ˆì•ˆì„ ëŠë¼ëŠ” ë“¯ì´ ê¹€ 첨지ì—게 ë˜ ëŒì•„ê°€ë¼ê³  권하였다. + +“안 죽었어, 안 죽었대ë„그래.†+ +ê¹€ 첨지는 홧ì¦ì„ ë‚´ë©° 확신있게 소리를 ì§ˆë €ìœ¼ë˜ ê·¸ 소리엔 안 ì£½ì€ ê²ƒì„ ë¯¿ìœ¼ë ¤ê³  애쓰는 ê°€ë½ì´ 있었다. ê¸°ì–´ì´ ì¼ ì›ì–´ì¹˜ë¥¼ 채워서 곱배기 í•œ 잔씩 ë” ë¨¹ê³  나왔다. ê¶‚ì€ ë¹„ëŠ” ì˜ì—°ížˆ 추ì ì¶”ì  ë‚´ë¦°ë‹¤. + +ê¹€ 첨지는 취중ì—ë„ ì„¤ë íƒ•ì„ 사가지고 ì§‘ì— ë‹¤ë‹¬ì•˜ë‹¤. 집ì´ë¼ í•´ë„ ë¬¼ë¡  셋집ì´ìš”, ë˜ ì§‘ 전체를 세든 게 ì•„ë‹ˆë¼ ì•ˆê³¼ ëšë–¨ì–´ì§„ 행랑방 í•œ ê°„ì„ ë¹Œë ¤ ë“  것ì¸ë° ë¬¼ì„ ê¸¸ì–´ëŒ€ê³  í•œ ë‹¬ì— ì¼ ì›ì”© 내는 í„°ì´ë‹¤. ë§Œì¼ ê¹€ 첨지가 주기를 ë ì§€ 않았ë˜ë“¤ í•œ ë°œì„ ëŒ€ë¬¸ì— ë“¤ì—¬ë†“ì•˜ì„ ì œ ê·¸ê³³ì„ ì§€ë°°í•˜ëŠ” 무시무시한 ì •ì (éœå¯‚) - í­í’ìš°ê°€ 지나간 ë’¤ì˜ ë°”ë‹¤ ê°™ì€ ì •ì ì— 다리가 떨렸으리ë¼. + +쿨룩거리는 기침 ì†Œë¦¬ë„ ë“¤ì„ ìˆ˜ 없다. 그르ë ê±°ë¦¬ëŠ” 숨소리조차 ë“¤ì„ ìˆ˜ 없다. 다만 ì´ ë¬´ë¤ê°™ì€ ì¹¨ë¬µì„ ê¹¨ëœ¨ë¦¬ëŠ” - 깨뜨린다ëŠë‹ˆë³´ë‹¤ 한층 ë” ì¹¨ë¬µì„ ê¹Šê²Œ 하고 불길하게 하는 빡빡하는 그윽한 소리, ì–´ë¦°ì• ì˜ ì – 빠는 소리가 ë‚  ë¿ì´ë‹¤. ë§Œì¼ ì²­ê°(è½è¦º)ì´ ì˜ˆë¯¼í•œ ì´ ê°™ìœ¼ë©´ ê·¸ 빡빡 소리는 빨 따름ì´ìš”, 꿀떡꿀떡 하고 ì – 넘어가는 소리가 없으니 빈 ì –ì„ ë¹¤ë‹¤ëŠ” ê²ƒë„ ì§ìž‘할는지 모르리ë¼. + +í˜¹ì€ ê¹€ ì²¨ì§€ë„ ì´ ë¶ˆê¸¸í•œ ì¹¨ë¬µì„ ì§ìž‘í–ˆëŠ”ì§€ë„ ëª¨ë¥¸ë‹¤. 그렇지 않으면 ëŒ€ë¬¸ì— ë“¤ì–´ì„œìžë§ˆìž ì „ì— ì—†ì´, â€œì´ ë‚œìž¥ ë§žì„ ë…„, ë‚¨íŽ¸ì´ ë“¤ì–´ì˜¤ëŠ”ë° ë‚˜ì™€ë³´ì§€ë„ ì•Šì•„, ì´ ì˜¤ë¼ì§ˆ ë…„.â€ì´ë¼ê³  ê³ í•¨ì„ ì¹œ 게 수ìƒí•˜ë‹¤. ì´ ê³ í•¨ì´ì•¼ë§ë¡œ ì œ ëª¸ì„ ì—„ìŠµí•´ì˜¤ëŠ” 무시무시한 ì¦ì„ 쫓아버리려는 허장성세(虛張è²å‹¢)ì¸ ê¹Œë‹­ì´ë‹¤. + +하여간 ê¹€ 첨지는 ë°©ë¬¸ì„ ì™ˆì¹µ 열었다. êµ¬ì—­ì„ ë‚˜ê²Œ 하는 추기 - 떨어진 ì‚¿ìžë¦¬ ë°‘ì—ì„œ 나온 먼지내, 빨지 ì•Šì€ ê¸°ì €ê·€ì—ì„œ 나는 똥내와 오줌내, 가지ê°ìƒ‰ 때가 케케히 ì•‰ì€ ì˜·ë‚´, 병ì¸ì˜ ë•€ ì©ì€ ë‚´ê°€ ì„žì¸ ì¶”ê¸°ê°€ 무딘 ê¹€ ì²¨ì§€ì˜ ì½”ë¥¼ 찔렀다. + +ë°©ì•ˆì— ë“¤ì–´ì„œë©° 설ë íƒ•ì„ 한구ì„ì— ë†“ì„ ì‚¬ì´ë„ ì—†ì´ ì£¼ì •êµ°ì€ ëª©ì²­ì„ ìžˆëŠ” 대로 다 ë‚´ì–´ í˜¸í†µì„ ì³¤ë‹¤. + +“ì´ëŸ° 오ë¼ì§ˆ ë…„, 주야장천(æ™å¤œé•·å·) 누워만 있으면 ì œì¼ì´ì•¼! ë‚¨íŽ¸ì´ ì™€ë„ ì¼ì–´ë‚˜ì§€ë¥¼ 못해.â€ë¼ëŠ” 소리와 함께 발길로 누운 ì´ì˜ 다리를 몹시 찼다. 그러나 ë°œê¸¸ì— ì±„ì´ëŠ” ê±´ ì‚¬ëžŒì˜ ì‚´ì´ ì•„ë‹ˆê³  나무등걸과 ê°™ì€ ëŠë‚Œì´ 있었다. ì´ë•Œì— 빽빽 소리가 ì‘ì•„ 소리로 변하였다. 개똥ì´ê°€ ë¬¼ì—ˆë˜ ì –ì„ ë¹¼ì–´ë†“ê³  운다. ìš´ëŒ€ë„ ì˜¨ ì–¼êµ´ì„ ì°¡ê·¸ë ¤ 붙여서, 운다는 í‘œì •ì„ í•  ë¿ì´ë‹¤. ì‘ì•„ ì†Œë¦¬ë„ ìž…ì—ì„œ 나는 게 아니고 마치 뱃ì†ì—ì„œ 나는 듯하였다. 울다가 울다가 ëª©ë„ ìž ê²¼ê³  ë˜ ìš¸ 기운조차 시진한 것 같다. + +발로 ì°¨ë„ ê·¸ ë³´ëžŒì´ ì—†ëŠ” 걸 ë³´ìž ë‚¨íŽ¸ì€ ì•„ë‚´ì˜ ë¨¸ë¦¬ë§¡ìœ¼ë¡œ 달려들어 그야ë§ë¡œ 까치집 ê°™ì€ í™˜ìžì˜ 머리를 꺼들어 í”들며, â€œì´ ë…„ì•„, ë§ì„ í•´, ë§ì„! ìž…ì´ ë¶™ì—ˆì–´, ì´ ì˜¤ë¼ì§ˆ ë…„!†+ +“…†+ +“으ì‘, ì´ê²ƒ ë´, 아무 ë§ì´ 없네.†+“…†+ +“ì´ë…„ì•„, 죽었단 ë§ì´ëƒ, 왜 ë§ì´ 없어.†+ +“…†+ +“으ì‘. ë˜ ëŒ€ë‹µì´ ì—†ë„¤, ì •ë§ ì£½ì—ˆë‚˜ë²„ì´.†+ +ì´ëŸ¬ë‹¤ê°€ 누운 ì´ì˜ í° ì°½ì„ ë®ì€, 위로 치뜬 ëˆˆì„ ì•Œì•„ë³´ìžë§ˆìž, â€œì´ ëˆˆê¹”! ì´ ëˆˆê¹”! 왜 나를 ë°”ë¼ë³´ì§€ 못하고 천정만 ë³´ëŠëƒ, ì‘.â€í•˜ëŠ” ë§ ëì—” ëª©ì´ ë©”ì—ˆë‹¤. ê·¸ëŸ¬ìž ì‚° ì‚¬ëžŒì˜ ëˆˆì—ì„œ 떨어진 ë‹­ì˜ ë˜¥ ê°™ì€ ëˆˆë¬¼ì´ ì£½ì€ ì´ì˜ 뻣뻣한 ì–¼êµ´ì„ ì–´ë£½ì–´ë£½ ì ì‹œì—ˆë‹¤. ë¬¸ë“ ê¹€ 첨지는 미칠 ë“¯ì´ ì œ ì–¼êµ´ì„ ì£½ì€ ì´ì˜ ì–¼êµ´ì— í•œí…Œ 비비대며 중얼거렸다. + +“설ë íƒ•ì„ ì‚¬ë‹¤ë†“ì•˜ëŠ”ë° ì™œ 먹지를 못하니, 왜 먹지를 못하니... ê´´ìƒí•˜ê²Œë„ 오늘ì€! 운수가 좋ë”니만... †diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go b/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go new file mode 100644 index 00000000..e779b691 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/traditionalchinese/all_test.go @@ -0,0 +1,45 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package traditionalchinese + +import ( + "testing" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal" + "golang.org/x/text/transform" +) + +func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) { + return "Decode", e.NewDecoder(), nil +} +func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) { + return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement +} + +func TestNonRepertoire(t *testing.T) { + testCases := []struct { + init func(e encoding.Encoding) (string, transform.Transformer, error) + e encoding.Encoding + src, want string + }{ + {dec, Big5, "\x81\x40", "\ufffd"}, + + {enc, Big5, "ê°‚", ""}, + {enc, Big5, "aê°‚", "a"}, + {enc, Big5, "\u43f0ê°‚", "\x87@"}, + } + for _, tc := range testCases { + dir, tr, wantErr := tc.init(tc.e) + + dst, _, err := transform.String(tr, tc.src) + if err != wantErr { + t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr) + } + if got := string(dst); got != tc.want { + t.Errorf("%s %v(%q):\ngot %q\nwant %q", dir, tc.e, tc.src, got, tc.want) + } + } +} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go new file mode 100644 index 00000000..275821f5 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go @@ -0,0 +1,198 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package traditionalchinese + +import ( + "errors" + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal" + "golang.org/x/text/encoding/internal/identifier" + "golang.org/x/text/transform" +) + +// All is a list of all defined encodings in this package. +var All = []encoding.Encoding{Big5} + +// Big5 is the Big5 encoding, also known as Code Page 950. +var Big5 encoding.Encoding = &big5 + +var big5 = internal.Encoding{ + &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}}, + "Big5", + identifier.Big5, +} + +var errInvalidBig5 = errors.New("traditionalchinese: invalid Big5 encoding") + +type big5Decoder struct{ transform.NopResetter } + +func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + r, size, s := rune(0), 0, "" +loop: + for ; nSrc < len(src); nSrc += size { + switch c0 := src[nSrc]; { + case c0 < utf8.RuneSelf: + r, size = rune(c0), 1 + + case 0x81 <= c0 && c0 < 0xff: + if nSrc+1 >= len(src) { + err = transform.ErrShortSrc + break loop + } + c1 := src[nSrc+1] + switch { + case 0x40 <= c1 && c1 < 0x7f: + c1 -= 0x40 + case 0xa1 <= c1 && c1 < 0xff: + c1 -= 0x62 + default: + err = errInvalidBig5 + break loop + } + r, size = '\ufffd', 2 + if i := int(c0-0x81)*157 + int(c1); i < len(decode) { + if 1133 <= i && i < 1167 { + // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX + // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5 + switch i { + case 1133: + s = "\u00CA\u0304" + goto writeStr + case 1135: + s = "\u00CA\u030C" + goto writeStr + case 1164: + s = "\u00EA\u0304" + goto writeStr + case 1166: + s = "\u00EA\u030C" + goto writeStr + } + } + r = rune(decode[i]) + if r == 0 { + r = '\ufffd' + } + } + + default: + err = errInvalidBig5 + break loop + } + + if nDst+utf8.RuneLen(r) > len(dst) { + err = transform.ErrShortDst + break loop + } + nDst += utf8.EncodeRune(dst[nDst:], r) + continue loop + + writeStr: + if nDst+len(s) > len(dst) { + err = transform.ErrShortDst + break loop + } + nDst += copy(dst[nDst:], s) + continue loop + } + if atEOF && err == transform.ErrShortSrc { + err = errInvalidBig5 + } + return nDst, nSrc, err +} + +type big5Encoder struct{ transform.NopResetter } + +func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + r, size := rune(0), 0 + for ; nSrc < len(src); nSrc += size { + r = rune(src[nSrc]) + + // Decode a 1-byte rune. + if r < utf8.RuneSelf { + size = 1 + if nDst >= len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst] = uint8(r) + nDst++ + continue + + } else { + // Decode a multi-byte rune. + r, size = utf8.DecodeRune(src[nSrc:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + } + } + + if r >= utf8.RuneSelf { + // func init checks that the switch covers all tables. + switch { + case encode0Low <= r && r < encode0High: + if r = rune(encode0[r-encode0Low]); r != 0 { + goto write2 + } + case encode1Low <= r && r < encode1High: + if r = rune(encode1[r-encode1Low]); r != 0 { + goto write2 + } + case encode2Low <= r && r < encode2High: + if r = rune(encode2[r-encode2Low]); r != 0 { + goto write2 + } + case encode3Low <= r && r < encode3High: + if r = rune(encode3[r-encode3Low]); r != 0 { + goto write2 + } + case encode4Low <= r && r < encode4High: + if r = rune(encode4[r-encode4Low]); r != 0 { + goto write2 + } + case encode5Low <= r && r < encode5High: + if r = rune(encode5[r-encode5Low]); r != 0 { + goto write2 + } + case encode6Low <= r && r < encode6High: + if r = rune(encode6[r-encode6Low]); r != 0 { + goto write2 + } + case encode7Low <= r && r < encode7High: + if r = rune(encode7[r-encode7Low]); r != 0 { + goto write2 + } + } + err = internal.ErrASCIIReplacement + break + } + + write2: + if nDst+2 > len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst+0] = uint8(r >> 8) + dst[nDst+1] = uint8(r) + nDst += 2 + continue + } + return nDst, nSrc, err +} + +func init() { + // Check that the hard-coded encode switch covers all tables. + if numEncodeTables != 8 { + panic("bad numEncodeTables") + } +} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go new file mode 100644 index 00000000..cf7fdb31 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go @@ -0,0 +1,140 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// This program generates tables.go: +// go run maketables.go | gofmt > tables.go + +import ( + "bufio" + "fmt" + "log" + "net/http" + "sort" + "strings" +) + +func main() { + fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n") + fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n") + fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n") + + res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt") + if err != nil { + log.Fatalf("Get: %v", err) + } + defer res.Body.Close() + + mapping := [65536]uint32{} + reverse := [65536 * 4]uint16{} + + scanner := bufio.NewScanner(res.Body) + for scanner.Scan() { + s := strings.TrimSpace(scanner.Text()) + if s == "" || s[0] == '#' { + continue + } + x, y := uint16(0), uint32(0) + if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil { + log.Fatalf("could not parse %q", s) + } + if x < 0 || 126*157 <= x { + log.Fatalf("Big5 code %d is out of range", x) + } + mapping[x] = y + + // The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that + // "The index pointer for code point in index is the first pointer + // corresponding to code point in index", which would normally mean + // that the code below should be guarded by "if reverse[y] == 0", but + // last instead of first seems to match the behavior of + // "iconv -f UTF-8 -t BIG5". For example, U+8005 者 occurs twice in + // http://encoding.spec.whatwg.org/index-big5.txt, as index 2148 + // (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc") + // and "echo 者 | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc". + c0, c1 := x/157, x%157 + if c1 < 0x3f { + c1 += 0x40 + } else { + c1 += 0x62 + } + reverse[y] = (0x81+c0)<<8 | c1 + } + if err := scanner.Err(); err != nil { + log.Fatalf("scanner error: %v", err) + } + + fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n") + fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n") + fmt.Printf("var decode = [...]uint32{\n") + for i, v := range mapping { + if v != 0 { + fmt.Printf("\t%d: 0x%08X,\n", i, v) + } + } + fmt.Printf("}\n\n") + + // Any run of at least separation continuous zero entries in the reverse map will + // be a separate encode table. + const separation = 1024 + + intervals := []interval(nil) + low, high := -1, -1 + for i, v := range reverse { + if v == 0 { + continue + } + if low < 0 { + low = i + } else if i-high >= separation { + if high >= 0 { + intervals = append(intervals, interval{low, high}) + } + low = i + } + high = i + 1 + } + if high >= 0 { + intervals = append(intervals, interval{low, high}) + } + sort.Sort(byDecreasingLength(intervals)) + + fmt.Printf("const numEncodeTables = %d\n\n", len(intervals)) + fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n") + fmt.Printf("// sorted by decreasing length.\n") + for i, v := range intervals { + fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high) + } + fmt.Printf("\n") + + for i, v := range intervals { + fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high) + fmt.Printf("var encode%d = [...]uint16{\n", i) + for j := v.low; j < v.high; j++ { + x := reverse[j] + if x == 0 { + continue + } + fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x) + } + fmt.Printf("}\n\n") + } +} + +// interval is a half-open interval [low, high). +type interval struct { + low, high int +} + +func (i interval) len() int { return i.high - i.low } + +// byDecreasingLength sorts intervals by decreasing length. +type byDecreasingLength []interval + +func (b byDecreasingLength) Len() int { return len(b) } +func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() } +func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go new file mode 100644 index 00000000..d909e38e --- /dev/null +++ b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go @@ -0,0 +1,37142 @@ +// generated by go run maketables.go; DO NOT EDIT + +// Package traditionalchinese provides Traditional Chinese encodings such as Big5. +package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese" + +// decode is the decoding table from Big5 code to Unicode. +// It is defined at http://encoding.spec.whatwg.org/index-big5.txt +var decode = [...]uint32{ + 942: 0x000043F0, + 943: 0x00004C32, + 944: 0x00004603, + 945: 0x000045A6, + 946: 0x00004578, + 947: 0x00027267, + 948: 0x00004D77, + 949: 0x000045B3, + 950: 0x00027CB1, + 951: 0x00004CE2, + 952: 0x00027CC5, + 953: 0x00003B95, + 954: 0x00004736, + 955: 0x00004744, + 956: 0x00004C47, + 957: 0x00004C40, + 958: 0x000242BF, + 959: 0x00023617, + 960: 0x00027352, + 961: 0x00026E8B, + 962: 0x000270D2, + 963: 0x00004C57, + 964: 0x0002A351, + 965: 0x0000474F, + 966: 0x000045DA, + 967: 0x00004C85, + 968: 0x00027C6C, + 969: 0x00004D07, + 970: 0x00004AA4, + 971: 0x000046A1, + 972: 0x00026B23, + 973: 0x00007225, + 974: 0x00025A54, + 975: 0x00021A63, + 976: 0x00023E06, + 977: 0x00023F61, + 978: 0x0000664D, + 979: 0x000056FB, + 981: 0x00007D95, + 982: 0x0000591D, + 983: 0x00028BB9, + 984: 0x00003DF4, + 985: 0x00009734, + 986: 0x00027BEF, + 987: 0x00005BDB, + 988: 0x00021D5E, + 989: 0x00005AA4, + 990: 0x00003625, + 991: 0x00029EB0, + 992: 0x00005AD1, + 993: 0x00005BB7, + 994: 0x00005CFC, + 995: 0x0000676E, + 996: 0x00008593, + 997: 0x00029945, + 998: 0x00007461, + 999: 0x0000749D, + 1000: 0x00003875, + 1001: 0x00021D53, + 1002: 0x0002369E, + 1003: 0x00026021, + 1004: 0x00003EEC, + 1005: 0x000258DE, + 1006: 0x00003AF5, + 1007: 0x00007AFC, + 1008: 0x00009F97, + 1009: 0x00024161, + 1010: 0x0002890D, + 1011: 0x000231EA, + 1012: 0x00020A8A, + 1013: 0x0002325E, + 1014: 0x0000430A, + 1015: 0x00008484, + 1016: 0x00009F96, + 1017: 0x0000942F, + 1018: 0x00004930, + 1019: 0x00008613, + 1020: 0x00005896, + 1021: 0x0000974A, + 1022: 0x00009218, + 1023: 0x000079D0, + 1024: 0x00007A32, + 1025: 0x00006660, + 1026: 0x00006A29, + 1027: 0x0000889D, + 1028: 0x0000744C, + 1029: 0x00007BC5, + 1030: 0x00006782, + 1031: 0x00007A2C, + 1032: 0x0000524F, + 1033: 0x00009046, + 1034: 0x000034E6, + 1035: 0x000073C4, + 1036: 0x00025DB9, + 1037: 0x000074C6, + 1038: 0x00009FC7, + 1039: 0x000057B3, + 1040: 0x0000492F, + 1041: 0x0000544C, + 1042: 0x00004131, + 1043: 0x0002368E, + 1044: 0x00005818, + 1045: 0x00007A72, + 1046: 0x00027B65, + 1047: 0x00008B8F, + 1048: 0x000046AE, + 1049: 0x00026E88, + 1050: 0x00004181, + 1051: 0x00025D99, + 1052: 0x00007BAE, + 1053: 0x000224BC, + 1054: 0x00009FC8, + 1055: 0x000224C1, + 1056: 0x000224C9, + 1057: 0x000224CC, + 1058: 0x00009FC9, + 1059: 0x00008504, + 1060: 0x000235BB, + 1061: 0x000040B4, + 1062: 0x00009FCA, + 1063: 0x000044E1, + 1064: 0x0002ADFF, + 1065: 0x000062C1, + 1066: 0x0000706E, + 1067: 0x00009FCB, + 1099: 0x000031C0, + 1100: 0x000031C1, + 1101: 0x000031C2, + 1102: 0x000031C3, + 1103: 0x000031C4, + 1104: 0x0002010C, + 1105: 0x000031C5, + 1106: 0x000200D1, + 1107: 0x000200CD, + 1108: 0x000031C6, + 1109: 0x000031C7, + 1110: 0x000200CB, + 1111: 0x00021FE8, + 1112: 0x000031C8, + 1113: 0x000200CA, + 1114: 0x000031C9, + 1115: 0x000031CA, + 1116: 0x000031CB, + 1117: 0x000031CC, + 1118: 0x0002010E, + 1119: 0x000031CD, + 1120: 0x000031CE, + 1121: 0x00000100, + 1122: 0x000000C1, + 1123: 0x000001CD, + 1124: 0x000000C0, + 1125: 0x00000112, + 1126: 0x000000C9, + 1127: 0x0000011A, + 1128: 0x000000C8, + 1129: 0x0000014C, + 1130: 0x000000D3, + 1131: 0x000001D1, + 1132: 0x000000D2, + 1134: 0x00001EBE, + 1136: 0x00001EC0, + 1137: 0x000000CA, + 1138: 0x00000101, + 1139: 0x000000E1, + 1140: 0x000001CE, + 1141: 0x000000E0, + 1142: 0x00000251, + 1143: 0x00000113, + 1144: 0x000000E9, + 1145: 0x0000011B, + 1146: 0x000000E8, + 1147: 0x0000012B, + 1148: 0x000000ED, + 1149: 0x000001D0, + 1150: 0x000000EC, + 1151: 0x0000014D, + 1152: 0x000000F3, + 1153: 0x000001D2, + 1154: 0x000000F2, + 1155: 0x0000016B, + 1156: 0x000000FA, + 1157: 0x000001D4, + 1158: 0x000000F9, + 1159: 0x000001D6, + 1160: 0x000001D8, + 1161: 0x000001DA, + 1162: 0x000001DC, + 1163: 0x000000FC, + 1165: 0x00001EBF, + 1167: 0x00001EC1, + 1168: 0x000000EA, + 1169: 0x00000261, + 1170: 0x000023DA, + 1171: 0x000023DB, + 1256: 0x0002A3A9, + 1257: 0x00021145, + 1259: 0x0000650A, + 1262: 0x00004E3D, + 1263: 0x00006EDD, + 1264: 0x00009D4E, + 1265: 0x000091DF, + 1268: 0x00027735, + 1269: 0x00006491, + 1270: 0x00004F1A, + 1271: 0x00004F28, + 1272: 0x00004FA8, + 1273: 0x00005156, + 1274: 0x00005174, + 1275: 0x0000519C, + 1276: 0x000051E4, + 1277: 0x000052A1, + 1278: 0x000052A8, + 1279: 0x0000533B, + 1280: 0x0000534E, + 1281: 0x000053D1, + 1282: 0x000053D8, + 1283: 0x000056E2, + 1284: 0x000058F0, + 1285: 0x00005904, + 1286: 0x00005907, + 1287: 0x00005932, + 1288: 0x00005934, + 1289: 0x00005B66, + 1290: 0x00005B9E, + 1291: 0x00005B9F, + 1292: 0x00005C9A, + 1293: 0x00005E86, + 1294: 0x0000603B, + 1295: 0x00006589, + 1296: 0x000067FE, + 1297: 0x00006804, + 1298: 0x00006865, + 1299: 0x00006D4E, + 1300: 0x000070BC, + 1301: 0x00007535, + 1302: 0x00007EA4, + 1303: 0x00007EAC, + 1304: 0x00007EBA, + 1305: 0x00007EC7, + 1306: 0x00007ECF, + 1307: 0x00007EDF, + 1308: 0x00007F06, + 1309: 0x00007F37, + 1310: 0x0000827A, + 1311: 0x000082CF, + 1312: 0x0000836F, + 1313: 0x000089C6, + 1314: 0x00008BBE, + 1315: 0x00008BE2, + 1316: 0x00008F66, + 1317: 0x00008F67, + 1318: 0x00008F6E, + 1319: 0x00007411, + 1320: 0x00007CFC, + 1321: 0x00007DCD, + 1322: 0x00006946, + 1323: 0x00007AC9, + 1324: 0x00005227, + 1329: 0x0000918C, + 1330: 0x000078B8, + 1331: 0x0000915E, + 1332: 0x000080BC, + 1334: 0x00008D0B, + 1335: 0x000080F6, + 1336: 0x000209E7, + 1339: 0x0000809F, + 1340: 0x00009EC7, + 1341: 0x00004CCD, + 1342: 0x00009DC9, + 1343: 0x00009E0C, + 1344: 0x00004C3E, + 1345: 0x00029DF6, + 1346: 0x0002700E, + 1347: 0x00009E0A, + 1348: 0x0002A133, + 1349: 0x000035C1, + 1351: 0x00006E9A, + 1352: 0x0000823E, + 1353: 0x00007519, + 1355: 0x00004911, + 1356: 0x00009A6C, + 1357: 0x00009A8F, + 1358: 0x00009F99, + 1359: 0x00007987, + 1360: 0x0002846C, + 1361: 0x00021DCA, + 1362: 0x000205D0, + 1363: 0x00022AE6, + 1364: 0x00004E24, + 1365: 0x00004E81, + 1366: 0x00004E80, + 1367: 0x00004E87, + 1368: 0x00004EBF, + 1369: 0x00004EEB, + 1370: 0x00004F37, + 1371: 0x0000344C, + 1372: 0x00004FBD, + 1373: 0x00003E48, + 1374: 0x00005003, + 1375: 0x00005088, + 1376: 0x0000347D, + 1377: 0x00003493, + 1378: 0x000034A5, + 1379: 0x00005186, + 1380: 0x00005905, + 1381: 0x000051DB, + 1382: 0x000051FC, + 1383: 0x00005205, + 1384: 0x00004E89, + 1385: 0x00005279, + 1386: 0x00005290, + 1387: 0x00005327, + 1388: 0x000035C7, + 1389: 0x000053A9, + 1390: 0x00003551, + 1391: 0x000053B0, + 1392: 0x00003553, + 1393: 0x000053C2, + 1394: 0x00005423, + 1395: 0x0000356D, + 1396: 0x00003572, + 1397: 0x00003681, + 1398: 0x00005493, + 1399: 0x000054A3, + 1400: 0x000054B4, + 1401: 0x000054B9, + 1402: 0x000054D0, + 1403: 0x000054EF, + 1404: 0x00005518, + 1405: 0x00005523, + 1406: 0x00005528, + 1407: 0x00003598, + 1408: 0x0000553F, + 1409: 0x000035A5, + 1410: 0x000035BF, + 1411: 0x000055D7, + 1412: 0x000035C5, + 1413: 0x00027D84, + 1414: 0x00005525, + 1416: 0x00020C42, + 1417: 0x00020D15, + 1418: 0x0002512B, + 1419: 0x00005590, + 1420: 0x00022CC6, + 1421: 0x000039EC, + 1422: 0x00020341, + 1423: 0x00008E46, + 1424: 0x00024DB8, + 1425: 0x000294E5, + 1426: 0x00004053, + 1427: 0x000280BE, + 1428: 0x0000777A, + 1429: 0x00022C38, + 1430: 0x00003A34, + 1431: 0x000047D5, + 1432: 0x0002815D, + 1433: 0x000269F2, + 1434: 0x00024DEA, + 1435: 0x000064DD, + 1436: 0x00020D7C, + 1437: 0x00020FB4, + 1438: 0x00020CD5, + 1439: 0x000210F4, + 1440: 0x0000648D, + 1441: 0x00008E7E, + 1442: 0x00020E96, + 1443: 0x00020C0B, + 1444: 0x00020F64, + 1445: 0x00022CA9, + 1446: 0x00028256, + 1447: 0x000244D3, + 1449: 0x00020D46, + 1450: 0x00029A4D, + 1451: 0x000280E9, + 1452: 0x000047F4, + 1453: 0x00024EA7, + 1454: 0x00022CC2, + 1455: 0x00009AB2, + 1456: 0x00003A67, + 1457: 0x000295F4, + 1458: 0x00003FED, + 1459: 0x00003506, + 1460: 0x000252C7, + 1461: 0x000297D4, + 1462: 0x000278C8, + 1463: 0x00022D44, + 1464: 0x00009D6E, + 1465: 0x00009815, + 1467: 0x000043D9, + 1468: 0x000260A5, + 1469: 0x000064B4, + 1470: 0x000054E3, + 1471: 0x00022D4C, + 1472: 0x00022BCA, + 1473: 0x00021077, + 1474: 0x000039FB, + 1475: 0x0002106F, + 1476: 0x000266DA, + 1477: 0x00026716, + 1478: 0x000279A0, + 1479: 0x000064EA, + 1480: 0x00025052, + 1481: 0x00020C43, + 1482: 0x00008E68, + 1483: 0x000221A1, + 1484: 0x00028B4C, + 1485: 0x00020731, + 1487: 0x0000480B, + 1488: 0x000201A9, + 1489: 0x00003FFA, + 1490: 0x00005873, + 1491: 0x00022D8D, + 1493: 0x000245C8, + 1494: 0x000204FC, + 1495: 0x00026097, + 1496: 0x00020F4C, + 1497: 0x00020D96, + 1498: 0x00005579, + 1499: 0x000040BB, + 1500: 0x000043BA, + 1502: 0x00004AB4, + 1503: 0x00022A66, + 1504: 0x0002109D, + 1505: 0x000081AA, + 1506: 0x000098F5, + 1507: 0x00020D9C, + 1508: 0x00006379, + 1509: 0x000039FE, + 1510: 0x00022775, + 1511: 0x00008DC0, + 1512: 0x000056A1, + 1513: 0x0000647C, + 1514: 0x00003E43, + 1516: 0x0002A601, + 1517: 0x00020E09, + 1518: 0x00022ACF, + 1519: 0x00022CC9, + 1521: 0x000210C8, + 1522: 0x000239C2, + 1523: 0x00003992, + 1524: 0x00003A06, + 1525: 0x0002829B, + 1526: 0x00003578, + 1527: 0x00025E49, + 1528: 0x000220C7, + 1529: 0x00005652, + 1530: 0x00020F31, + 1531: 0x00022CB2, + 1532: 0x00029720, + 1533: 0x000034BC, + 1534: 0x00006C3D, + 1535: 0x00024E3B, + 1538: 0x00027574, + 1539: 0x00022E8B, + 1540: 0x00022208, + 1541: 0x0002A65B, + 1542: 0x00028CCD, + 1543: 0x00020E7A, + 1544: 0x00020C34, + 1545: 0x0002681C, + 1546: 0x00007F93, + 1547: 0x000210CF, + 1548: 0x00022803, + 1549: 0x00022939, + 1550: 0x000035FB, + 1551: 0x000251E3, + 1552: 0x00020E8C, + 1553: 0x00020F8D, + 1554: 0x00020EAA, + 1555: 0x00003F93, + 1556: 0x00020F30, + 1557: 0x00020D47, + 1558: 0x0002114F, + 1559: 0x00020E4C, + 1561: 0x00020EAB, + 1562: 0x00020BA9, + 1563: 0x00020D48, + 1564: 0x000210C0, + 1565: 0x0002113D, + 1566: 0x00003FF9, + 1567: 0x00022696, + 1568: 0x00006432, + 1569: 0x00020FAD, + 1570: 0x000233F4, + 1571: 0x00027639, + 1572: 0x00022BCE, + 1573: 0x00020D7E, + 1574: 0x00020D7F, + 1575: 0x00022C51, + 1576: 0x00022C55, + 1577: 0x00003A18, + 1578: 0x00020E98, + 1579: 0x000210C7, + 1580: 0x00020F2E, + 1581: 0x0002A632, + 1582: 0x00026B50, + 1583: 0x00028CD2, + 1584: 0x00028D99, + 1585: 0x00028CCA, + 1586: 0x000095AA, + 1587: 0x000054CC, + 1588: 0x000082C4, + 1589: 0x000055B9, + 1591: 0x00029EC3, + 1592: 0x00009C26, + 1593: 0x00009AB6, + 1594: 0x0002775E, + 1595: 0x00022DEE, + 1596: 0x00007140, + 1597: 0x0000816D, + 1598: 0x000080EC, + 1599: 0x00005C1C, + 1600: 0x00026572, + 1601: 0x00008134, + 1602: 0x00003797, + 1603: 0x0000535F, + 1604: 0x000280BD, + 1605: 0x000091B6, + 1606: 0x00020EFA, + 1607: 0x00020E0F, + 1608: 0x00020E77, + 1609: 0x00020EFB, + 1610: 0x000035DD, + 1611: 0x00024DEB, + 1612: 0x00003609, + 1613: 0x00020CD6, + 1614: 0x000056AF, + 1615: 0x000227B5, + 1616: 0x000210C9, + 1617: 0x00020E10, + 1618: 0x00020E78, + 1619: 0x00021078, + 1620: 0x00021148, + 1621: 0x00028207, + 1622: 0x00021455, + 1623: 0x00020E79, + 1624: 0x00024E50, + 1625: 0x00022DA4, + 1626: 0x00005A54, + 1627: 0x0002101D, + 1628: 0x0002101E, + 1629: 0x000210F5, + 1630: 0x000210F6, + 1631: 0x0000579C, + 1632: 0x00020E11, + 1633: 0x00027694, + 1634: 0x000282CD, + 1635: 0x00020FB5, + 1636: 0x00020E7B, + 1637: 0x0002517E, + 1638: 0x00003703, + 1639: 0x00020FB6, + 1640: 0x00021180, + 1641: 0x000252D8, + 1642: 0x0002A2BD, + 1643: 0x000249DA, + 1644: 0x0002183A, + 1645: 0x00024177, + 1646: 0x0002827C, + 1647: 0x00005899, + 1648: 0x00005268, + 1649: 0x0000361A, + 1650: 0x0002573D, + 1651: 0x00007BB2, + 1652: 0x00005B68, + 1653: 0x00004800, + 1654: 0x00004B2C, + 1655: 0x00009F27, + 1656: 0x000049E7, + 1657: 0x00009C1F, + 1658: 0x00009B8D, + 1659: 0x00025B74, + 1660: 0x0002313D, + 1661: 0x000055FB, + 1662: 0x000035F2, + 1663: 0x00005689, + 1664: 0x00004E28, + 1665: 0x00005902, + 1666: 0x00021BC1, + 1667: 0x0002F878, + 1668: 0x00009751, + 1669: 0x00020086, + 1670: 0x00004E5B, + 1671: 0x00004EBB, + 1672: 0x0000353E, + 1673: 0x00005C23, + 1674: 0x00005F51, + 1675: 0x00005FC4, + 1676: 0x000038FA, + 1677: 0x0000624C, + 1678: 0x00006535, + 1679: 0x00006B7A, + 1680: 0x00006C35, + 1681: 0x00006C3A, + 1682: 0x0000706C, + 1683: 0x0000722B, + 1684: 0x00004E2C, + 1685: 0x000072AD, + 1686: 0x000248E9, + 1687: 0x00007F52, + 1688: 0x0000793B, + 1689: 0x00007CF9, + 1690: 0x00007F53, + 1691: 0x0002626A, + 1692: 0x000034C1, + 1694: 0x0002634B, + 1695: 0x00008002, + 1696: 0x00008080, + 1697: 0x00026612, + 1698: 0x00026951, + 1699: 0x0000535D, + 1700: 0x00008864, + 1701: 0x000089C1, + 1702: 0x000278B2, + 1703: 0x00008BA0, + 1704: 0x00008D1D, + 1705: 0x00009485, + 1706: 0x00009578, + 1707: 0x0000957F, + 1708: 0x000095E8, + 1709: 0x00028E0F, + 1710: 0x000097E6, + 1711: 0x00009875, + 1712: 0x000098CE, + 1713: 0x000098DE, + 1714: 0x00009963, + 1715: 0x00029810, + 1716: 0x00009C7C, + 1717: 0x00009E1F, + 1718: 0x00009EC4, + 1719: 0x00006B6F, + 1720: 0x0000F907, + 1721: 0x00004E37, + 1722: 0x00020087, + 1723: 0x0000961D, + 1724: 0x00006237, + 1725: 0x000094A2, + 1727: 0x0000503B, + 1728: 0x00006DFE, + 1729: 0x00029C73, + 1730: 0x00009FA6, + 1731: 0x00003DC9, + 1732: 0x0000888F, + 1733: 0x0002414E, + 1734: 0x00007077, + 1735: 0x00005CF5, + 1736: 0x00004B20, + 1737: 0x000251CD, + 1738: 0x00003559, + 1739: 0x00025D30, + 1740: 0x00006122, + 1741: 0x00028A32, + 1742: 0x00008FA7, + 1743: 0x000091F6, + 1744: 0x00007191, + 1745: 0x00006719, + 1746: 0x000073BA, + 1747: 0x00023281, + 1748: 0x0002A107, + 1749: 0x00003C8B, + 1750: 0x00021980, + 1751: 0x00004B10, + 1752: 0x000078E4, + 1753: 0x00007402, + 1754: 0x000051AE, + 1755: 0x0002870F, + 1756: 0x00004009, + 1757: 0x00006A63, + 1758: 0x0002A2BA, + 1759: 0x00004223, + 1760: 0x0000860F, + 1761: 0x00020A6F, + 1762: 0x00007A2A, + 1763: 0x00029947, + 1764: 0x00028AEA, + 1765: 0x00009755, + 1766: 0x0000704D, + 1767: 0x00005324, + 1768: 0x0002207E, + 1769: 0x000093F4, + 1770: 0x000076D9, + 1771: 0x000289E3, + 1772: 0x00009FA7, + 1773: 0x000077DD, + 1774: 0x00004EA3, + 1775: 0x00004FF0, + 1776: 0x000050BC, + 1777: 0x00004E2F, + 1778: 0x00004F17, + 1779: 0x00009FA8, + 1780: 0x00005434, + 1781: 0x00007D8B, + 1782: 0x00005892, + 1783: 0x000058D0, + 1784: 0x00021DB6, + 1785: 0x00005E92, + 1786: 0x00005E99, + 1787: 0x00005FC2, + 1788: 0x00022712, + 1789: 0x0000658B, + 1790: 0x000233F9, + 1791: 0x00006919, + 1792: 0x00006A43, + 1793: 0x00023C63, + 1794: 0x00006CFF, + 1796: 0x00007200, + 1797: 0x00024505, + 1798: 0x0000738C, + 1799: 0x00003EDB, + 1800: 0x00024A13, + 1801: 0x00005B15, + 1802: 0x000074B9, + 1803: 0x00008B83, + 1804: 0x00025CA4, + 1805: 0x00025695, + 1806: 0x00007A93, + 1807: 0x00007BEC, + 1808: 0x00007CC3, + 1809: 0x00007E6C, + 1810: 0x000082F8, + 1811: 0x00008597, + 1812: 0x00009FA9, + 1813: 0x00008890, + 1814: 0x00009FAA, + 1815: 0x00008EB9, + 1816: 0x00009FAB, + 1817: 0x00008FCF, + 1818: 0x0000855F, + 1819: 0x000099E0, + 1820: 0x00009221, + 1821: 0x00009FAC, + 1822: 0x00028DB9, + 1823: 0x0002143F, + 1824: 0x00004071, + 1825: 0x000042A2, + 1826: 0x00005A1A, + 1830: 0x00009868, + 1831: 0x0000676B, + 1832: 0x00004276, + 1833: 0x0000573D, + 1835: 0x000085D6, + 1836: 0x0002497B, + 1837: 0x000082BF, + 1838: 0x0002710D, + 1839: 0x00004C81, + 1840: 0x00026D74, + 1841: 0x00005D7B, + 1842: 0x00026B15, + 1843: 0x00026FBE, + 1844: 0x00009FAD, + 1845: 0x00009FAE, + 1846: 0x00005B96, + 1847: 0x00009FAF, + 1848: 0x000066E7, + 1849: 0x00007E5B, + 1850: 0x00006E57, + 1851: 0x000079CA, + 1852: 0x00003D88, + 1853: 0x000044C3, + 1854: 0x00023256, + 1855: 0x00022796, + 1856: 0x0000439A, + 1857: 0x00004536, + 1859: 0x00005CD5, + 1860: 0x00023B1A, + 1861: 0x00008AF9, + 1862: 0x00005C78, + 1863: 0x00003D12, + 1864: 0x00023551, + 1865: 0x00005D78, + 1866: 0x00009FB2, + 1867: 0x00007157, + 1868: 0x00004558, + 1869: 0x000240EC, + 1870: 0x00021E23, + 1871: 0x00004C77, + 1872: 0x00003978, + 1873: 0x0000344A, + 1874: 0x000201A4, + 1875: 0x00026C41, + 1876: 0x00008ACC, + 1877: 0x00004FB4, + 1878: 0x00020239, + 1879: 0x000059BF, + 1880: 0x0000816C, + 1881: 0x00009856, + 1882: 0x000298FA, + 1883: 0x00005F3B, + 1884: 0x00020B9F, + 1886: 0x000221C1, + 1887: 0x0002896D, + 1888: 0x00004102, + 1889: 0x000046BB, + 1890: 0x00029079, + 1891: 0x00003F07, + 1892: 0x00009FB3, + 1893: 0x0002A1B5, + 1894: 0x000040F8, + 1895: 0x000037D6, + 1896: 0x000046F7, + 1897: 0x00026C46, + 1898: 0x0000417C, + 1899: 0x000286B2, + 1900: 0x000273FF, + 1901: 0x0000456D, + 1902: 0x000038D4, + 1903: 0x0002549A, + 1904: 0x00004561, + 1905: 0x0000451B, + 1906: 0x00004D89, + 1907: 0x00004C7B, + 1908: 0x00004D76, + 1909: 0x000045EA, + 1910: 0x00003FC8, + 1911: 0x00024B0F, + 1912: 0x00003661, + 1913: 0x000044DE, + 1914: 0x000044BD, + 1915: 0x000041ED, + 1916: 0x00005D3E, + 1917: 0x00005D48, + 1918: 0x00005D56, + 1919: 0x00003DFC, + 1920: 0x0000380F, + 1921: 0x00005DA4, + 1922: 0x00005DB9, + 1923: 0x00003820, + 1924: 0x00003838, + 1925: 0x00005E42, + 1926: 0x00005EBD, + 1927: 0x00005F25, + 1928: 0x00005F83, + 1929: 0x00003908, + 1930: 0x00003914, + 1931: 0x0000393F, + 1932: 0x0000394D, + 1933: 0x000060D7, + 1934: 0x0000613D, + 1935: 0x00005CE5, + 1936: 0x00003989, + 1937: 0x000061B7, + 1938: 0x000061B9, + 1939: 0x000061CF, + 1940: 0x000039B8, + 1941: 0x0000622C, + 1942: 0x00006290, + 1943: 0x000062E5, + 1944: 0x00006318, + 1945: 0x000039F8, + 1946: 0x000056B1, + 1947: 0x00003A03, + 1948: 0x000063E2, + 1949: 0x000063FB, + 1950: 0x00006407, + 1951: 0x0000645A, + 1952: 0x00003A4B, + 1953: 0x000064C0, + 1954: 0x00005D15, + 1955: 0x00005621, + 1956: 0x00009F9F, + 1957: 0x00003A97, + 1958: 0x00006586, + 1959: 0x00003ABD, + 1960: 0x000065FF, + 1961: 0x00006653, + 1962: 0x00003AF2, + 1963: 0x00006692, + 1964: 0x00003B22, + 1965: 0x00006716, + 1966: 0x00003B42, + 1967: 0x000067A4, + 1968: 0x00006800, + 1969: 0x00003B58, + 1970: 0x0000684A, + 1971: 0x00006884, + 1972: 0x00003B72, + 1973: 0x00003B71, + 1974: 0x00003B7B, + 1975: 0x00006909, + 1976: 0x00006943, + 1977: 0x0000725C, + 1978: 0x00006964, + 1979: 0x0000699F, + 1980: 0x00006985, + 1981: 0x00003BBC, + 1982: 0x000069D6, + 1983: 0x00003BDD, + 1984: 0x00006A65, + 1985: 0x00006A74, + 1986: 0x00006A71, + 1987: 0x00006A82, + 1988: 0x00003BEC, + 1989: 0x00006A99, + 1990: 0x00003BF2, + 1991: 0x00006AAB, + 1992: 0x00006AB5, + 1993: 0x00006AD4, + 1994: 0x00006AF6, + 1995: 0x00006B81, + 1996: 0x00006BC1, + 1997: 0x00006BEA, + 1998: 0x00006C75, + 1999: 0x00006CAA, + 2000: 0x00003CCB, + 2001: 0x00006D02, + 2002: 0x00006D06, + 2003: 0x00006D26, + 2004: 0x00006D81, + 2005: 0x00003CEF, + 2006: 0x00006DA4, + 2007: 0x00006DB1, + 2008: 0x00006E15, + 2009: 0x00006E18, + 2010: 0x00006E29, + 2011: 0x00006E86, + 2012: 0x000289C0, + 2013: 0x00006EBB, + 2014: 0x00006EE2, + 2015: 0x00006EDA, + 2016: 0x00009F7F, + 2017: 0x00006EE8, + 2018: 0x00006EE9, + 2019: 0x00006F24, + 2020: 0x00006F34, + 2021: 0x00003D46, + 2022: 0x00023F41, + 2023: 0x00006F81, + 2024: 0x00006FBE, + 2025: 0x00003D6A, + 2026: 0x00003D75, + 2027: 0x000071B7, + 2028: 0x00005C99, + 2029: 0x00003D8A, + 2030: 0x0000702C, + 2031: 0x00003D91, + 2032: 0x00007050, + 2033: 0x00007054, + 2034: 0x0000706F, + 2035: 0x0000707F, + 2036: 0x00007089, + 2037: 0x00020325, + 2038: 0x000043C1, + 2039: 0x000035F1, + 2040: 0x00020ED8, + 2041: 0x00023ED7, + 2042: 0x000057BE, + 2043: 0x00026ED3, + 2044: 0x0000713E, + 2045: 0x000257E0, + 2046: 0x0000364E, + 2047: 0x000069A2, + 2048: 0x00028BE9, + 2049: 0x00005B74, + 2050: 0x00007A49, + 2051: 0x000258E1, + 2052: 0x000294D9, + 2053: 0x00007A65, + 2054: 0x00007A7D, + 2055: 0x000259AC, + 2056: 0x00007ABB, + 2057: 0x00007AB0, + 2058: 0x00007AC2, + 2059: 0x00007AC3, + 2060: 0x000071D1, + 2061: 0x0002648D, + 2062: 0x000041CA, + 2063: 0x00007ADA, + 2064: 0x00007ADD, + 2065: 0x00007AEA, + 2066: 0x000041EF, + 2067: 0x000054B2, + 2068: 0x00025C01, + 2069: 0x00007B0B, + 2070: 0x00007B55, + 2071: 0x00007B29, + 2072: 0x0002530E, + 2073: 0x00025CFE, + 2074: 0x00007BA2, + 2075: 0x00007B6F, + 2076: 0x0000839C, + 2077: 0x00025BB4, + 2078: 0x00026C7F, + 2079: 0x00007BD0, + 2080: 0x00008421, + 2081: 0x00007B92, + 2082: 0x00007BB8, + 2083: 0x00025D20, + 2084: 0x00003DAD, + 2085: 0x00025C65, + 2086: 0x00008492, + 2087: 0x00007BFA, + 2088: 0x00007C06, + 2089: 0x00007C35, + 2090: 0x00025CC1, + 2091: 0x00007C44, + 2092: 0x00007C83, + 2093: 0x00024882, + 2094: 0x00007CA6, + 2095: 0x0000667D, + 2096: 0x00024578, + 2097: 0x00007CC9, + 2098: 0x00007CC7, + 2099: 0x00007CE6, + 2100: 0x00007C74, + 2101: 0x00007CF3, + 2102: 0x00007CF5, + 2103: 0x00007CCE, + 2104: 0x00007E67, + 2105: 0x0000451D, + 2106: 0x00026E44, + 2107: 0x00007D5D, + 2108: 0x00026ED6, + 2109: 0x0000748D, + 2110: 0x00007D89, + 2111: 0x00007DAB, + 2112: 0x00007135, + 2113: 0x00007DB3, + 2114: 0x00007DD2, + 2115: 0x00024057, + 2116: 0x00026029, + 2117: 0x00007DE4, + 2118: 0x00003D13, + 2119: 0x00007DF5, + 2120: 0x000217F9, + 2121: 0x00007DE5, + 2122: 0x0002836D, + 2123: 0x00007E1D, + 2124: 0x00026121, + 2125: 0x0002615A, + 2126: 0x00007E6E, + 2127: 0x00007E92, + 2128: 0x0000432B, + 2129: 0x0000946C, + 2130: 0x00007E27, + 2131: 0x00007F40, + 2132: 0x00007F41, + 2133: 0x00007F47, + 2134: 0x00007936, + 2135: 0x000262D0, + 2136: 0x000099E1, + 2137: 0x00007F97, + 2138: 0x00026351, + 2139: 0x00007FA3, + 2140: 0x00021661, + 2141: 0x00020068, + 2142: 0x0000455C, + 2143: 0x00023766, + 2144: 0x00004503, + 2145: 0x0002833A, + 2146: 0x00007FFA, + 2147: 0x00026489, + 2148: 0x00008005, + 2149: 0x00008008, + 2150: 0x0000801D, + 2151: 0x00008028, + 2152: 0x0000802F, + 2153: 0x0002A087, + 2154: 0x00026CC3, + 2155: 0x0000803B, + 2156: 0x0000803C, + 2157: 0x00008061, + 2158: 0x00022714, + 2159: 0x00004989, + 2160: 0x00026626, + 2161: 0x00023DE3, + 2162: 0x000266E8, + 2163: 0x00006725, + 2164: 0x000080A7, + 2165: 0x00028A48, + 2166: 0x00008107, + 2167: 0x0000811A, + 2168: 0x000058B0, + 2169: 0x000226F6, + 2170: 0x00006C7F, + 2171: 0x00026498, + 2172: 0x00024FB8, + 2173: 0x000064E7, + 2174: 0x0002148A, + 2175: 0x00008218, + 2176: 0x0002185E, + 2177: 0x00006A53, + 2178: 0x00024A65, + 2179: 0x00024A95, + 2180: 0x0000447A, + 2181: 0x00008229, + 2182: 0x00020B0D, + 2183: 0x00026A52, + 2184: 0x00023D7E, + 2185: 0x00004FF9, + 2186: 0x000214FD, + 2187: 0x000084E2, + 2188: 0x00008362, + 2189: 0x00026B0A, + 2190: 0x000249A7, + 2191: 0x00023530, + 2192: 0x00021773, + 2193: 0x00023DF8, + 2194: 0x000082AA, + 2195: 0x0000691B, + 2196: 0x0002F994, + 2197: 0x000041DB, + 2198: 0x0000854B, + 2199: 0x000082D0, + 2200: 0x0000831A, + 2201: 0x00020E16, + 2202: 0x000217B4, + 2203: 0x000036C1, + 2204: 0x0002317D, + 2205: 0x0002355A, + 2206: 0x0000827B, + 2207: 0x000082E2, + 2208: 0x00008318, + 2209: 0x00023E8B, + 2210: 0x00026DA3, + 2211: 0x00026B05, + 2212: 0x00026B97, + 2213: 0x000235CE, + 2214: 0x00003DBF, + 2215: 0x0000831D, + 2216: 0x000055EC, + 2217: 0x00008385, + 2218: 0x0000450B, + 2219: 0x00026DA5, + 2220: 0x000083AC, + 2221: 0x000083C1, + 2222: 0x000083D3, + 2223: 0x0000347E, + 2224: 0x00026ED4, + 2225: 0x00006A57, + 2226: 0x0000855A, + 2227: 0x00003496, + 2228: 0x00026E42, + 2229: 0x00022EEF, + 2230: 0x00008458, + 2231: 0x00025BE4, + 2232: 0x00008471, + 2233: 0x00003DD3, + 2234: 0x000044E4, + 2235: 0x00006AA7, + 2236: 0x0000844A, + 2237: 0x00023CB5, + 2238: 0x00007958, + 2239: 0x000084A8, + 2240: 0x00026B96, + 2241: 0x00026E77, + 2242: 0x00026E43, + 2243: 0x000084DE, + 2244: 0x0000840F, + 2245: 0x00008391, + 2246: 0x000044A0, + 2247: 0x00008493, + 2248: 0x000084E4, + 2249: 0x00025C91, + 2250: 0x00004240, + 2251: 0x00025CC0, + 2252: 0x00004543, + 2253: 0x00008534, + 2254: 0x00005AF2, + 2255: 0x00026E99, + 2256: 0x00004527, + 2257: 0x00008573, + 2258: 0x00004516, + 2259: 0x000067BF, + 2260: 0x00008616, + 2261: 0x00028625, + 2262: 0x0002863B, + 2263: 0x000085C1, + 2264: 0x00027088, + 2265: 0x00008602, + 2266: 0x00021582, + 2267: 0x000270CD, + 2268: 0x0002F9B2, + 2269: 0x0000456A, + 2270: 0x00008628, + 2271: 0x00003648, + 2272: 0x000218A2, + 2273: 0x000053F7, + 2274: 0x0002739A, + 2275: 0x0000867E, + 2276: 0x00008771, + 2277: 0x0002A0F8, + 2278: 0x000087EE, + 2279: 0x00022C27, + 2280: 0x000087B1, + 2281: 0x000087DA, + 2282: 0x0000880F, + 2283: 0x00005661, + 2284: 0x0000866C, + 2285: 0x00006856, + 2286: 0x0000460F, + 2287: 0x00008845, + 2288: 0x00008846, + 2289: 0x000275E0, + 2290: 0x00023DB9, + 2291: 0x000275E4, + 2292: 0x0000885E, + 2293: 0x0000889C, + 2294: 0x0000465B, + 2295: 0x000088B4, + 2296: 0x000088B5, + 2297: 0x000063C1, + 2298: 0x000088C5, + 2299: 0x00007777, + 2300: 0x0002770F, + 2301: 0x00008987, + 2302: 0x0000898A, + 2303: 0x000089A6, + 2304: 0x000089A9, + 2305: 0x000089A7, + 2306: 0x000089BC, + 2307: 0x00028A25, + 2308: 0x000089E7, + 2309: 0x00027924, + 2310: 0x00027ABD, + 2311: 0x00008A9C, + 2312: 0x00007793, + 2313: 0x000091FE, + 2314: 0x00008A90, + 2315: 0x00027A59, + 2316: 0x00007AE9, + 2317: 0x00027B3A, + 2318: 0x00023F8F, + 2319: 0x00004713, + 2320: 0x00027B38, + 2321: 0x0000717C, + 2322: 0x00008B0C, + 2323: 0x00008B1F, + 2324: 0x00025430, + 2325: 0x00025565, + 2326: 0x00008B3F, + 2327: 0x00008B4C, + 2328: 0x00008B4D, + 2329: 0x00008AA9, + 2330: 0x00024A7A, + 2331: 0x00008B90, + 2332: 0x00008B9B, + 2333: 0x00008AAF, + 2334: 0x000216DF, + 2335: 0x00004615, + 2336: 0x0000884F, + 2337: 0x00008C9B, + 2338: 0x00027D54, + 2339: 0x00027D8F, + 2340: 0x0002F9D4, + 2341: 0x00003725, + 2342: 0x00027D53, + 2343: 0x00008CD6, + 2344: 0x00027D98, + 2345: 0x00027DBD, + 2346: 0x00008D12, + 2347: 0x00008D03, + 2348: 0x00021910, + 2349: 0x00008CDB, + 2350: 0x0000705C, + 2351: 0x00008D11, + 2352: 0x00024CC9, + 2353: 0x00003ED0, + 2354: 0x00008D77, + 2355: 0x00008DA9, + 2356: 0x00028002, + 2357: 0x00021014, + 2358: 0x0002498A, + 2359: 0x00003B7C, + 2360: 0x000281BC, + 2361: 0x0002710C, + 2362: 0x00007AE7, + 2363: 0x00008EAD, + 2364: 0x00008EB6, + 2365: 0x00008EC3, + 2366: 0x000092D4, + 2367: 0x00008F19, + 2368: 0x00008F2D, + 2369: 0x00028365, + 2370: 0x00028412, + 2371: 0x00008FA5, + 2372: 0x00009303, + 2373: 0x0002A29F, + 2374: 0x00020A50, + 2375: 0x00008FB3, + 2376: 0x0000492A, + 2377: 0x000289DE, + 2378: 0x0002853D, + 2379: 0x00023DBB, + 2380: 0x00005EF8, + 2381: 0x00023262, + 2382: 0x00008FF9, + 2383: 0x0002A014, + 2384: 0x000286BC, + 2385: 0x00028501, + 2386: 0x00022325, + 2387: 0x00003980, + 2388: 0x00026ED7, + 2389: 0x00009037, + 2390: 0x0002853C, + 2391: 0x00027ABE, + 2392: 0x00009061, + 2393: 0x0002856C, + 2394: 0x0002860B, + 2395: 0x000090A8, + 2396: 0x00028713, + 2397: 0x000090C4, + 2398: 0x000286E6, + 2399: 0x000090AE, + 2400: 0x000090FD, + 2401: 0x00009167, + 2402: 0x00003AF0, + 2403: 0x000091A9, + 2404: 0x000091C4, + 2405: 0x00007CAC, + 2406: 0x00028933, + 2407: 0x00021E89, + 2408: 0x0000920E, + 2409: 0x00006C9F, + 2410: 0x00009241, + 2411: 0x00009262, + 2412: 0x000255B9, + 2413: 0x000092B9, + 2414: 0x00028AC6, + 2415: 0x00023C9B, + 2416: 0x00028B0C, + 2417: 0x000255DB, + 2418: 0x00020D31, + 2419: 0x0000932C, + 2420: 0x0000936B, + 2421: 0x00028AE1, + 2422: 0x00028BEB, + 2423: 0x0000708F, + 2424: 0x00005AC3, + 2425: 0x00028AE2, + 2426: 0x00028AE5, + 2427: 0x00004965, + 2428: 0x00009244, + 2429: 0x00028BEC, + 2430: 0x00028C39, + 2431: 0x00028BFF, + 2432: 0x00009373, + 2433: 0x0000945B, + 2434: 0x00008EBC, + 2435: 0x00009585, + 2436: 0x000095A6, + 2437: 0x00009426, + 2438: 0x000095A0, + 2439: 0x00006FF6, + 2440: 0x000042B9, + 2441: 0x0002267A, + 2442: 0x000286D8, + 2443: 0x0002127C, + 2444: 0x00023E2E, + 2445: 0x000049DF, + 2446: 0x00006C1C, + 2447: 0x0000967B, + 2448: 0x00009696, + 2449: 0x0000416C, + 2450: 0x000096A3, + 2451: 0x00026ED5, + 2452: 0x000061DA, + 2453: 0x000096B6, + 2454: 0x000078F5, + 2455: 0x00028AE0, + 2456: 0x000096BD, + 2457: 0x000053CC, + 2458: 0x000049A1, + 2459: 0x00026CB8, + 2460: 0x00020274, + 2461: 0x00026410, + 2462: 0x000290AF, + 2463: 0x000290E5, + 2464: 0x00024AD1, + 2465: 0x00021915, + 2466: 0x0002330A, + 2467: 0x00009731, + 2468: 0x00008642, + 2469: 0x00009736, + 2470: 0x00004A0F, + 2471: 0x0000453D, + 2472: 0x00004585, + 2473: 0x00024AE9, + 2474: 0x00007075, + 2475: 0x00005B41, + 2476: 0x0000971B, + 2477: 0x0000975C, + 2478: 0x000291D5, + 2479: 0x00009757, + 2480: 0x00005B4A, + 2481: 0x000291EB, + 2482: 0x0000975F, + 2483: 0x00009425, + 2484: 0x000050D0, + 2485: 0x000230B7, + 2486: 0x000230BC, + 2487: 0x00009789, + 2488: 0x0000979F, + 2489: 0x000097B1, + 2490: 0x000097BE, + 2491: 0x000097C0, + 2492: 0x000097D2, + 2493: 0x000097E0, + 2494: 0x0002546C, + 2495: 0x000097EE, + 2496: 0x0000741C, + 2497: 0x00029433, + 2498: 0x000097FF, + 2499: 0x000097F5, + 2500: 0x0002941D, + 2501: 0x0002797A, + 2502: 0x00004AD1, + 2503: 0x00009834, + 2504: 0x00009833, + 2505: 0x0000984B, + 2506: 0x00009866, + 2507: 0x00003B0E, + 2508: 0x00027175, + 2509: 0x00003D51, + 2510: 0x00020630, + 2511: 0x0002415C, + 2512: 0x00025706, + 2513: 0x000098CA, + 2514: 0x000098B7, + 2515: 0x000098C8, + 2516: 0x000098C7, + 2517: 0x00004AFF, + 2518: 0x00026D27, + 2519: 0x000216D3, + 2520: 0x000055B0, + 2521: 0x000098E1, + 2522: 0x000098E6, + 2523: 0x000098EC, + 2524: 0x00009378, + 2525: 0x00009939, + 2526: 0x00024A29, + 2527: 0x00004B72, + 2528: 0x00029857, + 2529: 0x00029905, + 2530: 0x000099F5, + 2531: 0x00009A0C, + 2532: 0x00009A3B, + 2533: 0x00009A10, + 2534: 0x00009A58, + 2535: 0x00025725, + 2536: 0x000036C4, + 2537: 0x000290B1, + 2538: 0x00029BD5, + 2539: 0x00009AE0, + 2540: 0x00009AE2, + 2541: 0x00029B05, + 2542: 0x00009AF4, + 2543: 0x00004C0E, + 2544: 0x00009B14, + 2545: 0x00009B2D, + 2546: 0x00028600, + 2547: 0x00005034, + 2548: 0x00009B34, + 2549: 0x000269A8, + 2550: 0x000038C3, + 2551: 0x0002307D, + 2552: 0x00009B50, + 2553: 0x00009B40, + 2554: 0x00029D3E, + 2555: 0x00005A45, + 2556: 0x00021863, + 2557: 0x00009B8E, + 2558: 0x0002424B, + 2559: 0x00009C02, + 2560: 0x00009BFF, + 2561: 0x00009C0C, + 2562: 0x00029E68, + 2563: 0x00009DD4, + 2564: 0x00029FB7, + 2565: 0x0002A192, + 2566: 0x0002A1AB, + 2567: 0x0002A0E1, + 2568: 0x0002A123, + 2569: 0x0002A1DF, + 2570: 0x00009D7E, + 2571: 0x00009D83, + 2572: 0x0002A134, + 2573: 0x00009E0E, + 2574: 0x00006888, + 2575: 0x00009DC4, + 2576: 0x0002215B, + 2577: 0x0002A193, + 2578: 0x0002A220, + 2579: 0x0002193B, + 2580: 0x0002A233, + 2581: 0x00009D39, + 2582: 0x0002A0B9, + 2583: 0x0002A2B4, + 2584: 0x00009E90, + 2585: 0x00009E95, + 2586: 0x00009E9E, + 2587: 0x00009EA2, + 2588: 0x00004D34, + 2589: 0x00009EAA, + 2590: 0x00009EAF, + 2591: 0x00024364, + 2592: 0x00009EC1, + 2593: 0x00003B60, + 2594: 0x000039E5, + 2595: 0x00003D1D, + 2596: 0x00004F32, + 2597: 0x000037BE, + 2598: 0x00028C2B, + 2599: 0x00009F02, + 2600: 0x00009F08, + 2601: 0x00004B96, + 2602: 0x00009424, + 2603: 0x00026DA2, + 2604: 0x00009F17, + 2605: 0x00009F16, + 2606: 0x00009F39, + 2607: 0x0000569F, + 2608: 0x0000568A, + 2609: 0x00009F45, + 2610: 0x000099B8, + 2611: 0x0002908B, + 2612: 0x000097F2, + 2613: 0x0000847F, + 2614: 0x00009F62, + 2615: 0x00009F69, + 2616: 0x00007ADC, + 2617: 0x00009F8E, + 2618: 0x00007216, + 2619: 0x00004BBE, + 2620: 0x00024975, + 2621: 0x000249BB, + 2622: 0x00007177, + 2623: 0x000249F8, + 2624: 0x00024348, + 2625: 0x00024A51, + 2626: 0x0000739E, + 2627: 0x00028BDA, + 2628: 0x000218FA, + 2629: 0x0000799F, + 2630: 0x0002897E, + 2631: 0x00028E36, + 2632: 0x00009369, + 2633: 0x000093F3, + 2634: 0x00028A44, + 2635: 0x000092EC, + 2636: 0x00009381, + 2637: 0x000093CB, + 2638: 0x0002896C, + 2639: 0x000244B9, + 2640: 0x00007217, + 2641: 0x00003EEB, + 2642: 0x00007772, + 2643: 0x00007A43, + 2644: 0x000070D0, + 2645: 0x00024473, + 2646: 0x000243F8, + 2647: 0x0000717E, + 2648: 0x000217EF, + 2649: 0x000070A3, + 2650: 0x000218BE, + 2651: 0x00023599, + 2652: 0x00003EC7, + 2653: 0x00021885, + 2654: 0x0002542F, + 2655: 0x000217F8, + 2656: 0x00003722, + 2657: 0x000216FB, + 2658: 0x00021839, + 2659: 0x000036E1, + 2660: 0x00021774, + 2661: 0x000218D1, + 2662: 0x00025F4B, + 2663: 0x00003723, + 2664: 0x000216C0, + 2665: 0x0000575B, + 2666: 0x00024A25, + 2667: 0x000213FE, + 2668: 0x000212A8, + 2669: 0x000213C6, + 2670: 0x000214B6, + 2671: 0x00008503, + 2672: 0x000236A6, + 2673: 0x00008503, + 2674: 0x00008455, + 2675: 0x00024994, + 2676: 0x00027165, + 2677: 0x00023E31, + 2678: 0x0002555C, + 2679: 0x00023EFB, + 2680: 0x00027052, + 2681: 0x000044F4, + 2682: 0x000236EE, + 2683: 0x0002999D, + 2684: 0x00026F26, + 2685: 0x000067F9, + 2686: 0x00003733, + 2687: 0x00003C15, + 2688: 0x00003DE7, + 2689: 0x0000586C, + 2690: 0x00021922, + 2691: 0x00006810, + 2692: 0x00004057, + 2693: 0x0002373F, + 2694: 0x000240E1, + 2695: 0x0002408B, + 2696: 0x0002410F, + 2697: 0x00026C21, + 2698: 0x000054CB, + 2699: 0x0000569E, + 2700: 0x000266B1, + 2701: 0x00005692, + 2702: 0x00020FDF, + 2703: 0x00020BA8, + 2704: 0x00020E0D, + 2705: 0x000093C6, + 2706: 0x00028B13, + 2707: 0x0000939C, + 2708: 0x00004EF8, + 2709: 0x0000512B, + 2710: 0x00003819, + 2711: 0x00024436, + 2712: 0x00004EBC, + 2713: 0x00020465, + 2714: 0x0002037F, + 2715: 0x00004F4B, + 2716: 0x00004F8A, + 2717: 0x00025651, + 2718: 0x00005A68, + 2719: 0x000201AB, + 2720: 0x000203CB, + 2721: 0x00003999, + 2722: 0x0002030A, + 2723: 0x00020414, + 2724: 0x00003435, + 2725: 0x00004F29, + 2726: 0x000202C0, + 2727: 0x00028EB3, + 2728: 0x00020275, + 2729: 0x00008ADA, + 2730: 0x0002020C, + 2731: 0x00004E98, + 2732: 0x000050CD, + 2733: 0x0000510D, + 2734: 0x00004FA2, + 2735: 0x00004F03, + 2736: 0x00024A0E, + 2737: 0x00023E8A, + 2738: 0x00004F42, + 2739: 0x0000502E, + 2740: 0x0000506C, + 2741: 0x00005081, + 2742: 0x00004FCC, + 2743: 0x00004FE5, + 2744: 0x00005058, + 2745: 0x000050FC, + 2746: 0x00005159, + 2747: 0x0000515B, + 2748: 0x0000515D, + 2749: 0x0000515E, + 2750: 0x00006E76, + 2751: 0x00023595, + 2752: 0x00023E39, + 2753: 0x00023EBF, + 2754: 0x00006D72, + 2755: 0x00021884, + 2756: 0x00023E89, + 2757: 0x000051A8, + 2758: 0x000051C3, + 2759: 0x000205E0, + 2760: 0x000044DD, + 2761: 0x000204A3, + 2762: 0x00020492, + 2763: 0x00020491, + 2764: 0x00008D7A, + 2765: 0x00028A9C, + 2766: 0x0002070E, + 2767: 0x00005259, + 2768: 0x000052A4, + 2769: 0x00020873, + 2770: 0x000052E1, + 2771: 0x0000936E, + 2772: 0x0000467A, + 2773: 0x0000718C, + 2774: 0x0002438C, + 2775: 0x00020C20, + 2776: 0x000249AC, + 2777: 0x000210E4, + 2778: 0x000069D1, + 2779: 0x00020E1D, + 2780: 0x00007479, + 2781: 0x00003EDE, + 2782: 0x00007499, + 2783: 0x00007414, + 2784: 0x00007456, + 2785: 0x00007398, + 2786: 0x00004B8E, + 2787: 0x00024ABC, + 2788: 0x0002408D, + 2789: 0x000053D0, + 2790: 0x00003584, + 2791: 0x0000720F, + 2792: 0x000240C9, + 2793: 0x000055B4, + 2794: 0x00020345, + 2795: 0x000054CD, + 2796: 0x00020BC6, + 2797: 0x0000571D, + 2798: 0x0000925D, + 2799: 0x000096F4, + 2800: 0x00009366, + 2801: 0x000057DD, + 2802: 0x0000578D, + 2803: 0x0000577F, + 2804: 0x0000363E, + 2805: 0x000058CB, + 2806: 0x00005A99, + 2807: 0x00028A46, + 2808: 0x000216FA, + 2809: 0x0002176F, + 2810: 0x00021710, + 2811: 0x00005A2C, + 2812: 0x000059B8, + 2813: 0x0000928F, + 2814: 0x00005A7E, + 2815: 0x00005ACF, + 2816: 0x00005A12, + 2817: 0x00025946, + 2818: 0x000219F3, + 2819: 0x00021861, + 2820: 0x00024295, + 2821: 0x000036F5, + 2822: 0x00006D05, + 2823: 0x00007443, + 2824: 0x00005A21, + 2825: 0x00025E83, + 2826: 0x00005A81, + 2827: 0x00028BD7, + 2828: 0x00020413, + 2829: 0x000093E0, + 2830: 0x0000748C, + 2831: 0x00021303, + 2832: 0x00007105, + 2833: 0x00004972, + 2834: 0x00009408, + 2835: 0x000289FB, + 2836: 0x000093BD, + 2837: 0x000037A0, + 2838: 0x00005C1E, + 2839: 0x00005C9E, + 2840: 0x00005E5E, + 2841: 0x00005E48, + 2842: 0x00021996, + 2843: 0x0002197C, + 2844: 0x00023AEE, + 2845: 0x00005ECD, + 2846: 0x00005B4F, + 2847: 0x00021903, + 2848: 0x00021904, + 2849: 0x00003701, + 2850: 0x000218A0, + 2851: 0x000036DD, + 2852: 0x000216FE, + 2853: 0x000036D3, + 2854: 0x0000812A, + 2855: 0x00028A47, + 2856: 0x00021DBA, + 2857: 0x00023472, + 2858: 0x000289A8, + 2859: 0x00005F0C, + 2860: 0x00005F0E, + 2861: 0x00021927, + 2862: 0x000217AB, + 2863: 0x00005A6B, + 2864: 0x0002173B, + 2865: 0x00005B44, + 2866: 0x00008614, + 2867: 0x000275FD, + 2868: 0x00008860, + 2869: 0x0000607E, + 2870: 0x00022860, + 2871: 0x0002262B, + 2872: 0x00005FDB, + 2873: 0x00003EB8, + 2874: 0x000225AF, + 2875: 0x000225BE, + 2876: 0x00029088, + 2877: 0x00026F73, + 2878: 0x000061C0, + 2879: 0x0002003E, + 2880: 0x00020046, + 2881: 0x0002261B, + 2882: 0x00006199, + 2883: 0x00006198, + 2884: 0x00006075, + 2885: 0x00022C9B, + 2886: 0x00022D07, + 2887: 0x000246D4, + 2888: 0x0002914D, + 2889: 0x00006471, + 2890: 0x00024665, + 2891: 0x00022B6A, + 2892: 0x00003A29, + 2893: 0x00022B22, + 2894: 0x00023450, + 2895: 0x000298EA, + 2896: 0x00022E78, + 2897: 0x00006337, + 2898: 0x0002A45B, + 2899: 0x000064B6, + 2900: 0x00006331, + 2901: 0x000063D1, + 2902: 0x000249E3, + 2903: 0x00022D67, + 2904: 0x000062A4, + 2905: 0x00022CA1, + 2906: 0x0000643B, + 2907: 0x0000656B, + 2908: 0x00006972, + 2909: 0x00003BF4, + 2910: 0x0002308E, + 2911: 0x000232AD, + 2912: 0x00024989, + 2913: 0x000232AB, + 2914: 0x0000550D, + 2915: 0x000232E0, + 2916: 0x000218D9, + 2917: 0x0002943F, + 2918: 0x000066CE, + 2919: 0x00023289, + 2920: 0x000231B3, + 2921: 0x00003AE0, + 2922: 0x00004190, + 2923: 0x00025584, + 2924: 0x00028B22, + 2925: 0x0002558F, + 2926: 0x000216FC, + 2927: 0x0002555B, + 2928: 0x00025425, + 2929: 0x000078EE, + 2930: 0x00023103, + 2931: 0x0002182A, + 2932: 0x00023234, + 2933: 0x00003464, + 2934: 0x0002320F, + 2935: 0x00023182, + 2936: 0x000242C9, + 2937: 0x0000668E, + 2938: 0x00026D24, + 2939: 0x0000666B, + 2940: 0x00004B93, + 2941: 0x00006630, + 2942: 0x00027870, + 2943: 0x00021DEB, + 2944: 0x00006663, + 2945: 0x000232D2, + 2946: 0x000232E1, + 2947: 0x0000661E, + 2948: 0x00025872, + 2949: 0x000038D1, + 2950: 0x0002383A, + 2951: 0x000237BC, + 2952: 0x00003B99, + 2953: 0x000237A2, + 2954: 0x000233FE, + 2955: 0x000074D0, + 2956: 0x00003B96, + 2957: 0x0000678F, + 2958: 0x0002462A, + 2959: 0x000068B6, + 2960: 0x0000681E, + 2961: 0x00003BC4, + 2962: 0x00006ABE, + 2963: 0x00003863, + 2964: 0x000237D5, + 2965: 0x00024487, + 2966: 0x00006A33, + 2967: 0x00006A52, + 2968: 0x00006AC9, + 2969: 0x00006B05, + 2970: 0x00021912, + 2971: 0x00006511, + 2972: 0x00006898, + 2973: 0x00006A4C, + 2974: 0x00003BD7, + 2975: 0x00006A7A, + 2976: 0x00006B57, + 2977: 0x00023FC0, + 2978: 0x00023C9A, + 2979: 0x000093A0, + 2980: 0x000092F2, + 2981: 0x00028BEA, + 2982: 0x00028ACB, + 2983: 0x00009289, + 2984: 0x0002801E, + 2985: 0x000289DC, + 2986: 0x00009467, + 2987: 0x00006DA5, + 2988: 0x00006F0B, + 2989: 0x000249EC, + 2990: 0x00006D67, + 2991: 0x00023F7F, + 2992: 0x00003D8F, + 2993: 0x00006E04, + 2994: 0x0002403C, + 2995: 0x00005A3D, + 2996: 0x00006E0A, + 2997: 0x00005847, + 2998: 0x00006D24, + 2999: 0x00007842, + 3000: 0x0000713B, + 3001: 0x0002431A, + 3002: 0x00024276, + 3003: 0x000070F1, + 3004: 0x00007250, + 3005: 0x00007287, + 3006: 0x00007294, + 3007: 0x0002478F, + 3008: 0x00024725, + 3009: 0x00005179, + 3010: 0x00024AA4, + 3011: 0x000205EB, + 3012: 0x0000747A, + 3013: 0x00023EF8, + 3014: 0x0002365F, + 3015: 0x00024A4A, + 3016: 0x00024917, + 3017: 0x00025FE1, + 3018: 0x00003F06, + 3019: 0x00003EB1, + 3020: 0x00024ADF, + 3021: 0x00028C23, + 3022: 0x00023F35, + 3023: 0x000060A7, + 3024: 0x00003EF3, + 3025: 0x000074CC, + 3026: 0x0000743C, + 3027: 0x00009387, + 3028: 0x00007437, + 3029: 0x0000449F, + 3030: 0x00026DEA, + 3031: 0x00004551, + 3032: 0x00007583, + 3033: 0x00003F63, + 3034: 0x00024CD9, + 3035: 0x00024D06, + 3036: 0x00003F58, + 3037: 0x00007555, + 3038: 0x00007673, + 3039: 0x0002A5C6, + 3040: 0x00003B19, + 3041: 0x00007468, + 3042: 0x00028ACC, + 3043: 0x000249AB, + 3044: 0x0002498E, + 3045: 0x00003AFB, + 3046: 0x00003DCD, + 3047: 0x00024A4E, + 3048: 0x00003EFF, + 3049: 0x000249C5, + 3050: 0x000248F3, + 3051: 0x000091FA, + 3052: 0x00005732, + 3053: 0x00009342, + 3054: 0x00028AE3, + 3055: 0x00021864, + 3056: 0x000050DF, + 3057: 0x00025221, + 3058: 0x000251E7, + 3059: 0x00007778, + 3060: 0x00023232, + 3061: 0x0000770E, + 3062: 0x0000770F, + 3063: 0x0000777B, + 3064: 0x00024697, + 3065: 0x00023781, + 3066: 0x00003A5E, + 3067: 0x000248F0, + 3068: 0x00007438, + 3069: 0x0000749B, + 3070: 0x00003EBF, + 3071: 0x00024ABA, + 3072: 0x00024AC7, + 3073: 0x000040C8, + 3074: 0x00024A96, + 3075: 0x000261AE, + 3076: 0x00009307, + 3077: 0x00025581, + 3078: 0x0000781E, + 3079: 0x0000788D, + 3080: 0x00007888, + 3081: 0x000078D2, + 3082: 0x000073D0, + 3083: 0x00007959, + 3084: 0x00027741, + 3085: 0x000256E3, + 3086: 0x0000410E, + 3087: 0x0000799B, + 3088: 0x00008496, + 3089: 0x000079A5, + 3090: 0x00006A2D, + 3091: 0x00023EFA, + 3092: 0x00007A3A, + 3093: 0x000079F4, + 3094: 0x0000416E, + 3095: 0x000216E6, + 3096: 0x00004132, + 3097: 0x00009235, + 3098: 0x000079F1, + 3099: 0x00020D4C, + 3100: 0x0002498C, + 3101: 0x00020299, + 3102: 0x00023DBA, + 3103: 0x0002176E, + 3104: 0x00003597, + 3105: 0x0000556B, + 3106: 0x00003570, + 3107: 0x000036AA, + 3108: 0x000201D4, + 3109: 0x00020C0D, + 3110: 0x00007AE2, + 3111: 0x00005A59, + 3112: 0x000226F5, + 3113: 0x00025AAF, + 3114: 0x00025A9C, + 3115: 0x00005A0D, + 3116: 0x0002025B, + 3117: 0x000078F0, + 3118: 0x00005A2A, + 3119: 0x00025BC6, + 3120: 0x00007AFE, + 3121: 0x000041F9, + 3122: 0x00007C5D, + 3123: 0x00007C6D, + 3124: 0x00004211, + 3125: 0x00025BB3, + 3126: 0x00025EBC, + 3127: 0x00025EA6, + 3128: 0x00007CCD, + 3129: 0x000249F9, + 3130: 0x000217B0, + 3131: 0x00007C8E, + 3132: 0x00007C7C, + 3133: 0x00007CAE, + 3134: 0x00006AB2, + 3135: 0x00007DDC, + 3136: 0x00007E07, + 3137: 0x00007DD3, + 3138: 0x00007F4E, + 3139: 0x00026261, + 3140: 0x0002615C, + 3141: 0x00027B48, + 3142: 0x00007D97, + 3143: 0x00025E82, + 3144: 0x0000426A, + 3145: 0x00026B75, + 3146: 0x00020916, + 3147: 0x000067D6, + 3148: 0x0002004E, + 3149: 0x000235CF, + 3150: 0x000057C4, + 3151: 0x00026412, + 3152: 0x000263F8, + 3153: 0x00024962, + 3154: 0x00007FDD, + 3155: 0x00007B27, + 3156: 0x0002082C, + 3157: 0x00025AE9, + 3158: 0x00025D43, + 3159: 0x00007B0C, + 3160: 0x00025E0E, + 3161: 0x000099E6, + 3162: 0x00008645, + 3163: 0x00009A63, + 3164: 0x00006A1C, + 3165: 0x0002343F, + 3166: 0x000039E2, + 3167: 0x000249F7, + 3168: 0x000265AD, + 3169: 0x00009A1F, + 3170: 0x000265A0, + 3171: 0x00008480, + 3172: 0x00027127, + 3173: 0x00026CD1, + 3174: 0x000044EA, + 3175: 0x00008137, + 3176: 0x00004402, + 3177: 0x000080C6, + 3178: 0x00008109, + 3179: 0x00008142, + 3180: 0x000267B4, + 3181: 0x000098C3, + 3182: 0x00026A42, + 3183: 0x00008262, + 3184: 0x00008265, + 3185: 0x00026A51, + 3186: 0x00008453, + 3187: 0x00026DA7, + 3188: 0x00008610, + 3189: 0x0002721B, + 3190: 0x00005A86, + 3191: 0x0000417F, + 3192: 0x00021840, + 3193: 0x00005B2B, + 3194: 0x000218A1, + 3195: 0x00005AE4, + 3196: 0x000218D8, + 3197: 0x000086A0, + 3198: 0x0002F9BC, + 3199: 0x00023D8F, + 3200: 0x0000882D, + 3201: 0x00027422, + 3202: 0x00005A02, + 3203: 0x0000886E, + 3204: 0x00004F45, + 3205: 0x00008887, + 3206: 0x000088BF, + 3207: 0x000088E6, + 3208: 0x00008965, + 3209: 0x0000894D, + 3210: 0x00025683, + 3211: 0x00008954, + 3212: 0x00027785, + 3213: 0x00027784, + 3214: 0x00028BF5, + 3215: 0x00028BD9, + 3216: 0x00028B9C, + 3217: 0x000289F9, + 3218: 0x00003EAD, + 3219: 0x000084A3, + 3220: 0x000046F5, + 3221: 0x000046CF, + 3222: 0x000037F2, + 3223: 0x00008A3D, + 3224: 0x00008A1C, + 3225: 0x00029448, + 3226: 0x00005F4D, + 3227: 0x0000922B, + 3228: 0x00024284, + 3229: 0x000065D4, + 3230: 0x00007129, + 3231: 0x000070C4, + 3232: 0x00021845, + 3233: 0x00009D6D, + 3234: 0x00008C9F, + 3235: 0x00008CE9, + 3236: 0x00027DDC, + 3237: 0x0000599A, + 3238: 0x000077C3, + 3239: 0x000059F0, + 3240: 0x0000436E, + 3241: 0x000036D4, + 3242: 0x00008E2A, + 3243: 0x00008EA7, + 3244: 0x00024C09, + 3245: 0x00008F30, + 3246: 0x00008F4A, + 3247: 0x000042F4, + 3248: 0x00006C58, + 3249: 0x00006FBB, + 3250: 0x00022321, + 3251: 0x0000489B, + 3252: 0x00006F79, + 3253: 0x00006E8B, + 3254: 0x000217DA, + 3255: 0x00009BE9, + 3256: 0x000036B5, + 3257: 0x0002492F, + 3258: 0x000090BB, + 3259: 0x00009097, + 3260: 0x00005571, + 3261: 0x00004906, + 3262: 0x000091BB, + 3263: 0x00009404, + 3264: 0x00028A4B, + 3265: 0x00004062, + 3266: 0x00028AFC, + 3267: 0x00009427, + 3268: 0x00028C1D, + 3269: 0x00028C3B, + 3270: 0x000084E5, + 3271: 0x00008A2B, + 3272: 0x00009599, + 3273: 0x000095A7, + 3274: 0x00009597, + 3275: 0x00009596, + 3276: 0x00028D34, + 3277: 0x00007445, + 3278: 0x00003EC2, + 3279: 0x000248FF, + 3280: 0x00024A42, + 3281: 0x000243EA, + 3282: 0x00003EE7, + 3283: 0x00023225, + 3284: 0x0000968F, + 3285: 0x00028EE7, + 3286: 0x00028E66, + 3287: 0x00028E65, + 3288: 0x00003ECC, + 3289: 0x000249ED, + 3290: 0x00024A78, + 3291: 0x00023FEE, + 3292: 0x00007412, + 3293: 0x0000746B, + 3294: 0x00003EFC, + 3295: 0x00009741, + 3296: 0x000290B0, + 3297: 0x00006847, + 3298: 0x00004A1D, + 3299: 0x00029093, + 3300: 0x000257DF, + 3301: 0x0000975D, + 3302: 0x00009368, + 3303: 0x00028989, + 3304: 0x00028C26, + 3305: 0x00028B2F, + 3306: 0x000263BE, + 3307: 0x000092BA, + 3308: 0x00005B11, + 3309: 0x00008B69, + 3310: 0x0000493C, + 3311: 0x000073F9, + 3312: 0x0002421B, + 3313: 0x0000979B, + 3314: 0x00009771, + 3315: 0x00009938, + 3316: 0x00020F26, + 3317: 0x00005DC1, + 3318: 0x00028BC5, + 3319: 0x00024AB2, + 3320: 0x0000981F, + 3321: 0x000294DA, + 3322: 0x000092F6, + 3323: 0x000295D7, + 3324: 0x000091E5, + 3325: 0x000044C0, + 3326: 0x00028B50, + 3327: 0x00024A67, + 3328: 0x00028B64, + 3329: 0x000098DC, + 3330: 0x00028A45, + 3331: 0x00003F00, + 3332: 0x0000922A, + 3333: 0x00004925, + 3334: 0x00008414, + 3335: 0x0000993B, + 3336: 0x0000994D, + 3337: 0x00027B06, + 3338: 0x00003DFD, + 3339: 0x0000999B, + 3340: 0x00004B6F, + 3341: 0x000099AA, + 3342: 0x00009A5C, + 3343: 0x00028B65, + 3344: 0x000258C8, + 3345: 0x00006A8F, + 3346: 0x00009A21, + 3347: 0x00005AFE, + 3348: 0x00009A2F, + 3349: 0x000298F1, + 3350: 0x00004B90, + 3351: 0x00029948, + 3352: 0x000099BC, + 3353: 0x00004BBD, + 3354: 0x00004B97, + 3355: 0x0000937D, + 3356: 0x00005872, + 3357: 0x00021302, + 3358: 0x00005822, + 3359: 0x000249B8, + 3360: 0x000214E8, + 3361: 0x00007844, + 3362: 0x0002271F, + 3363: 0x00023DB8, + 3364: 0x000068C5, + 3365: 0x00003D7D, + 3366: 0x00009458, + 3367: 0x00003927, + 3368: 0x00006150, + 3369: 0x00022781, + 3370: 0x0002296B, + 3371: 0x00006107, + 3372: 0x00009C4F, + 3373: 0x00009C53, + 3374: 0x00009C7B, + 3375: 0x00009C35, + 3376: 0x00009C10, + 3377: 0x00009B7F, + 3378: 0x00009BCF, + 3379: 0x00029E2D, + 3380: 0x00009B9F, + 3381: 0x0002A1F5, + 3382: 0x0002A0FE, + 3383: 0x00009D21, + 3384: 0x00004CAE, + 3385: 0x00024104, + 3386: 0x00009E18, + 3387: 0x00004CB0, + 3388: 0x00009D0C, + 3389: 0x0002A1B4, + 3390: 0x0002A0ED, + 3391: 0x0002A0F3, + 3392: 0x0002992F, + 3393: 0x00009DA5, + 3394: 0x000084BD, + 3395: 0x00026E12, + 3396: 0x00026FDF, + 3397: 0x00026B82, + 3398: 0x000085FC, + 3399: 0x00004533, + 3400: 0x00026DA4, + 3401: 0x00026E84, + 3402: 0x00026DF0, + 3403: 0x00008420, + 3404: 0x000085EE, + 3405: 0x00026E00, + 3406: 0x000237D7, + 3407: 0x00026064, + 3408: 0x000079E2, + 3409: 0x0002359C, + 3410: 0x00023640, + 3411: 0x0000492D, + 3412: 0x000249DE, + 3413: 0x00003D62, + 3414: 0x000093DB, + 3415: 0x000092BE, + 3416: 0x00009348, + 3417: 0x000202BF, + 3418: 0x000078B9, + 3419: 0x00009277, + 3420: 0x0000944D, + 3421: 0x00004FE4, + 3422: 0x00003440, + 3423: 0x00009064, + 3424: 0x0002555D, + 3425: 0x0000783D, + 3426: 0x00007854, + 3427: 0x000078B6, + 3428: 0x0000784B, + 3429: 0x00021757, + 3430: 0x000231C9, + 3431: 0x00024941, + 3432: 0x0000369A, + 3433: 0x00004F72, + 3434: 0x00006FDA, + 3435: 0x00006FD9, + 3436: 0x0000701E, + 3437: 0x0000701E, + 3438: 0x00005414, + 3439: 0x000241B5, + 3440: 0x000057BB, + 3441: 0x000058F3, + 3442: 0x0000578A, + 3443: 0x00009D16, + 3444: 0x000057D7, + 3445: 0x00007134, + 3446: 0x000034AF, + 3447: 0x000241AC, + 3448: 0x000071EB, + 3449: 0x00026C40, + 3450: 0x00024F97, + 3451: 0x00005B28, + 3452: 0x000217B5, + 3453: 0x00028A49, + 3454: 0x0000610C, + 3455: 0x00005ACE, + 3456: 0x00005A0B, + 3457: 0x000042BC, + 3458: 0x00024488, + 3459: 0x0000372C, + 3460: 0x00004B7B, + 3461: 0x000289FC, + 3462: 0x000093BB, + 3463: 0x000093B8, + 3464: 0x000218D6, + 3465: 0x00020F1D, + 3466: 0x00008472, + 3467: 0x00026CC0, + 3468: 0x00021413, + 3469: 0x000242FA, + 3470: 0x00022C26, + 3471: 0x000243C1, + 3472: 0x00005994, + 3473: 0x00023DB7, + 3474: 0x00026741, + 3475: 0x00007DA8, + 3476: 0x0002615B, + 3477: 0x000260A4, + 3478: 0x000249B9, + 3479: 0x0002498B, + 3480: 0x000289FA, + 3481: 0x000092E5, + 3482: 0x000073E2, + 3483: 0x00003EE9, + 3484: 0x000074B4, + 3485: 0x00028B63, + 3486: 0x0002189F, + 3487: 0x00003EE1, + 3488: 0x00024AB3, + 3489: 0x00006AD8, + 3490: 0x000073F3, + 3491: 0x000073FB, + 3492: 0x00003ED6, + 3493: 0x00024A3E, + 3494: 0x00024A94, + 3495: 0x000217D9, + 3496: 0x00024A66, + 3497: 0x000203A7, + 3498: 0x00021424, + 3499: 0x000249E5, + 3500: 0x00007448, + 3501: 0x00024916, + 3502: 0x000070A5, + 3503: 0x00024976, + 3504: 0x00009284, + 3505: 0x000073E6, + 3506: 0x0000935F, + 3507: 0x000204FE, + 3508: 0x00009331, + 3509: 0x00028ACE, + 3510: 0x00028A16, + 3511: 0x00009386, + 3512: 0x00028BE7, + 3513: 0x000255D5, + 3514: 0x00004935, + 3515: 0x00028A82, + 3516: 0x0000716B, + 3517: 0x00024943, + 3518: 0x00020CFF, + 3519: 0x000056A4, + 3520: 0x0002061A, + 3521: 0x00020BEB, + 3522: 0x00020CB8, + 3523: 0x00005502, + 3524: 0x000079C4, + 3525: 0x000217FA, + 3526: 0x00007DFE, + 3527: 0x000216C2, + 3528: 0x00024A50, + 3529: 0x00021852, + 3530: 0x0000452E, + 3531: 0x00009401, + 3532: 0x0000370A, + 3533: 0x00028AC0, + 3534: 0x000249AD, + 3535: 0x000059B0, + 3536: 0x000218BF, + 3537: 0x00021883, + 3538: 0x00027484, + 3539: 0x00005AA1, + 3540: 0x000036E2, + 3541: 0x00023D5B, + 3542: 0x000036B0, + 3543: 0x0000925F, + 3544: 0x00005A79, + 3545: 0x00028A81, + 3546: 0x00021862, + 3547: 0x00009374, + 3548: 0x00003CCD, + 3549: 0x00020AB4, + 3550: 0x00004A96, + 3551: 0x0000398A, + 3552: 0x000050F4, + 3553: 0x00003D69, + 3554: 0x00003D4C, + 3555: 0x0002139C, + 3556: 0x00007175, + 3557: 0x000042FB, + 3558: 0x00028218, + 3559: 0x00006E0F, + 3560: 0x000290E4, + 3561: 0x000044EB, + 3562: 0x00006D57, + 3563: 0x00027E4F, + 3564: 0x00007067, + 3565: 0x00006CAF, + 3566: 0x00003CD6, + 3567: 0x00023FED, + 3568: 0x00023E2D, + 3569: 0x00006E02, + 3570: 0x00006F0C, + 3571: 0x00003D6F, + 3572: 0x000203F5, + 3573: 0x00007551, + 3574: 0x000036BC, + 3575: 0x000034C8, + 3576: 0x00004680, + 3577: 0x00003EDA, + 3578: 0x00004871, + 3579: 0x000059C4, + 3580: 0x0000926E, + 3581: 0x0000493E, + 3582: 0x00008F41, + 3583: 0x00028C1C, + 3584: 0x00026BC0, + 3585: 0x00005812, + 3586: 0x000057C8, + 3587: 0x000036D6, + 3588: 0x00021452, + 3589: 0x000070FE, + 3590: 0x00024362, + 3591: 0x00024A71, + 3592: 0x00022FE3, + 3593: 0x000212B0, + 3594: 0x000223BD, + 3595: 0x000068B9, + 3596: 0x00006967, + 3597: 0x00021398, + 3598: 0x000234E5, + 3599: 0x00027BF4, + 3600: 0x000236DF, + 3601: 0x00028A83, + 3602: 0x000237D6, + 3603: 0x000233FA, + 3604: 0x00024C9F, + 3605: 0x00006A1A, + 3606: 0x000236AD, + 3607: 0x00026CB7, + 3608: 0x0000843E, + 3609: 0x000044DF, + 3610: 0x000044CE, + 3611: 0x00026D26, + 3612: 0x00026D51, + 3613: 0x00026C82, + 3614: 0x00026FDE, + 3615: 0x00006F17, + 3616: 0x00027109, + 3617: 0x0000833D, + 3618: 0x0002173A, + 3619: 0x000083ED, + 3620: 0x00026C80, + 3621: 0x00027053, + 3622: 0x000217DB, + 3623: 0x00005989, + 3624: 0x00005A82, + 3625: 0x000217B3, + 3626: 0x00005A61, + 3627: 0x00005A71, + 3628: 0x00021905, + 3629: 0x000241FC, + 3630: 0x0000372D, + 3631: 0x000059EF, + 3632: 0x0002173C, + 3633: 0x000036C7, + 3634: 0x0000718E, + 3635: 0x00009390, + 3636: 0x0000669A, + 3637: 0x000242A5, + 3638: 0x00005A6E, + 3639: 0x00005A2B, + 3640: 0x00024293, + 3641: 0x00006A2B, + 3642: 0x00023EF9, + 3643: 0x00027736, + 3644: 0x0002445B, + 3645: 0x000242CA, + 3646: 0x0000711D, + 3647: 0x00024259, + 3648: 0x000289E1, + 3649: 0x00004FB0, + 3650: 0x00026D28, + 3651: 0x00005CC2, + 3652: 0x000244CE, + 3653: 0x00027E4D, + 3654: 0x000243BD, + 3655: 0x00006A0C, + 3656: 0x00024256, + 3657: 0x00021304, + 3658: 0x000070A6, + 3659: 0x00007133, + 3660: 0x000243E9, + 3661: 0x00003DA5, + 3662: 0x00006CDF, + 3663: 0x0002F825, + 3664: 0x00024A4F, + 3665: 0x00007E65, + 3666: 0x000059EB, + 3667: 0x00005D2F, + 3668: 0x00003DF3, + 3669: 0x00005F5C, + 3670: 0x00024A5D, + 3671: 0x000217DF, + 3672: 0x00007DA4, + 3673: 0x00008426, + 3674: 0x00005485, + 3675: 0x00023AFA, + 3676: 0x00023300, + 3677: 0x00020214, + 3678: 0x0000577E, + 3679: 0x000208D5, + 3680: 0x00020619, + 3681: 0x00003FE5, + 3682: 0x00021F9E, + 3683: 0x0002A2B6, + 3684: 0x00007003, + 3685: 0x0002915B, + 3686: 0x00005D70, + 3687: 0x0000738F, + 3688: 0x00007CD3, + 3689: 0x00028A59, + 3690: 0x00029420, + 3691: 0x00004FC8, + 3692: 0x00007FE7, + 3693: 0x000072CD, + 3694: 0x00007310, + 3695: 0x00027AF4, + 3696: 0x00007338, + 3697: 0x00007339, + 3698: 0x000256F6, + 3699: 0x00007341, + 3700: 0x00007348, + 3701: 0x00003EA9, + 3702: 0x00027B18, + 3703: 0x0000906C, + 3704: 0x000071F5, + 3705: 0x000248F2, + 3706: 0x000073E1, + 3707: 0x000081F6, + 3708: 0x00003ECA, + 3709: 0x0000770C, + 3710: 0x00003ED1, + 3711: 0x00006CA2, + 3712: 0x000056FD, + 3713: 0x00007419, + 3714: 0x0000741E, + 3715: 0x0000741F, + 3716: 0x00003EE2, + 3717: 0x00003EF0, + 3718: 0x00003EF4, + 3719: 0x00003EFA, + 3720: 0x000074D3, + 3721: 0x00003F0E, + 3722: 0x00003F53, + 3723: 0x00007542, + 3724: 0x0000756D, + 3725: 0x00007572, + 3726: 0x0000758D, + 3727: 0x00003F7C, + 3728: 0x000075C8, + 3729: 0x000075DC, + 3730: 0x00003FC0, + 3731: 0x0000764D, + 3732: 0x00003FD7, + 3733: 0x00007674, + 3734: 0x00003FDC, + 3735: 0x0000767A, + 3736: 0x00024F5C, + 3737: 0x00007188, + 3738: 0x00005623, + 3739: 0x00008980, + 3740: 0x00005869, + 3741: 0x0000401D, + 3742: 0x00007743, + 3743: 0x00004039, + 3744: 0x00006761, + 3745: 0x00004045, + 3746: 0x000035DB, + 3747: 0x00007798, + 3748: 0x0000406A, + 3749: 0x0000406F, + 3750: 0x00005C5E, + 3751: 0x000077BE, + 3752: 0x000077CB, + 3753: 0x000058F2, + 3754: 0x00007818, + 3755: 0x000070B9, + 3756: 0x0000781C, + 3757: 0x000040A8, + 3758: 0x00007839, + 3759: 0x00007847, + 3760: 0x00007851, + 3761: 0x00007866, + 3762: 0x00008448, + 3763: 0x00025535, + 3764: 0x00007933, + 3765: 0x00006803, + 3766: 0x00007932, + 3767: 0x00004103, + 3768: 0x00004109, + 3769: 0x00007991, + 3770: 0x00007999, + 3771: 0x00008FBB, + 3772: 0x00007A06, + 3773: 0x00008FBC, + 3774: 0x00004167, + 3775: 0x00007A91, + 3776: 0x000041B2, + 3777: 0x00007ABC, + 3778: 0x00008279, + 3779: 0x000041C4, + 3780: 0x00007ACF, + 3781: 0x00007ADB, + 3782: 0x000041CF, + 3783: 0x00004E21, + 3784: 0x00007B62, + 3785: 0x00007B6C, + 3786: 0x00007B7B, + 3787: 0x00007C12, + 3788: 0x00007C1B, + 3789: 0x00004260, + 3790: 0x0000427A, + 3791: 0x00007C7B, + 3792: 0x00007C9C, + 3793: 0x0000428C, + 3794: 0x00007CB8, + 3795: 0x00004294, + 3796: 0x00007CED, + 3797: 0x00008F93, + 3798: 0x000070C0, + 3799: 0x00020CCF, + 3800: 0x00007DCF, + 3801: 0x00007DD4, + 3802: 0x00007DD0, + 3803: 0x00007DFD, + 3804: 0x00007FAE, + 3805: 0x00007FB4, + 3806: 0x0000729F, + 3807: 0x00004397, + 3808: 0x00008020, + 3809: 0x00008025, + 3810: 0x00007B39, + 3811: 0x0000802E, + 3812: 0x00008031, + 3813: 0x00008054, + 3814: 0x00003DCC, + 3815: 0x000057B4, + 3816: 0x000070A0, + 3817: 0x000080B7, + 3818: 0x000080E9, + 3819: 0x000043ED, + 3820: 0x0000810C, + 3821: 0x0000732A, + 3822: 0x0000810E, + 3823: 0x00008112, + 3824: 0x00007560, + 3825: 0x00008114, + 3826: 0x00004401, + 3827: 0x00003B39, + 3828: 0x00008156, + 3829: 0x00008159, + 3830: 0x0000815A, + 3831: 0x00004413, + 3832: 0x0000583A, + 3833: 0x0000817C, + 3834: 0x00008184, + 3835: 0x00004425, + 3836: 0x00008193, + 3837: 0x0000442D, + 3838: 0x000081A5, + 3839: 0x000057EF, + 3840: 0x000081C1, + 3841: 0x000081E4, + 3842: 0x00008254, + 3843: 0x0000448F, + 3844: 0x000082A6, + 3845: 0x00008276, + 3846: 0x000082CA, + 3847: 0x000082D8, + 3848: 0x000082FF, + 3849: 0x000044B0, + 3850: 0x00008357, + 3851: 0x00009669, + 3852: 0x0000698A, + 3853: 0x00008405, + 3854: 0x000070F5, + 3855: 0x00008464, + 3856: 0x000060E3, + 3857: 0x00008488, + 3858: 0x00004504, + 3859: 0x000084BE, + 3860: 0x000084E1, + 3861: 0x000084F8, + 3862: 0x00008510, + 3863: 0x00008538, + 3864: 0x00008552, + 3865: 0x0000453B, + 3866: 0x0000856F, + 3867: 0x00008570, + 3868: 0x000085E0, + 3869: 0x00004577, + 3870: 0x00008672, + 3871: 0x00008692, + 3872: 0x000086B2, + 3873: 0x000086EF, + 3874: 0x00009645, + 3875: 0x0000878B, + 3876: 0x00004606, + 3877: 0x00004617, + 3878: 0x000088AE, + 3879: 0x000088FF, + 3880: 0x00008924, + 3881: 0x00008947, + 3882: 0x00008991, + 3883: 0x00027967, + 3884: 0x00008A29, + 3885: 0x00008A38, + 3886: 0x00008A94, + 3887: 0x00008AB4, + 3888: 0x00008C51, + 3889: 0x00008CD4, + 3890: 0x00008CF2, + 3891: 0x00008D1C, + 3892: 0x00004798, + 3893: 0x0000585F, + 3894: 0x00008DC3, + 3895: 0x000047ED, + 3896: 0x00004EEE, + 3897: 0x00008E3A, + 3898: 0x000055D8, + 3899: 0x00005754, + 3900: 0x00008E71, + 3901: 0x000055F5, + 3902: 0x00008EB0, + 3903: 0x00004837, + 3904: 0x00008ECE, + 3905: 0x00008EE2, + 3906: 0x00008EE4, + 3907: 0x00008EED, + 3908: 0x00008EF2, + 3909: 0x00008FB7, + 3910: 0x00008FC1, + 3911: 0x00008FCA, + 3912: 0x00008FCC, + 3913: 0x00009033, + 3914: 0x000099C4, + 3915: 0x000048AD, + 3916: 0x000098E0, + 3917: 0x00009213, + 3918: 0x0000491E, + 3919: 0x00009228, + 3920: 0x00009258, + 3921: 0x0000926B, + 3922: 0x000092B1, + 3923: 0x000092AE, + 3924: 0x000092BF, + 3925: 0x000092E3, + 3926: 0x000092EB, + 3927: 0x000092F3, + 3928: 0x000092F4, + 3929: 0x000092FD, + 3930: 0x00009343, + 3931: 0x00009384, + 3932: 0x000093AD, + 3933: 0x00004945, + 3934: 0x00004951, + 3935: 0x00009EBF, + 3936: 0x00009417, + 3937: 0x00005301, + 3938: 0x0000941D, + 3939: 0x0000942D, + 3940: 0x0000943E, + 3941: 0x0000496A, + 3942: 0x00009454, + 3943: 0x00009479, + 3944: 0x0000952D, + 3945: 0x000095A2, + 3946: 0x000049A7, + 3947: 0x000095F4, + 3948: 0x00009633, + 3949: 0x000049E5, + 3950: 0x000067A0, + 3951: 0x00004A24, + 3952: 0x00009740, + 3953: 0x00004A35, + 3954: 0x000097B2, + 3955: 0x000097C2, + 3956: 0x00005654, + 3957: 0x00004AE4, + 3958: 0x000060E8, + 3959: 0x000098B9, + 3960: 0x00004B19, + 3961: 0x000098F1, + 3962: 0x00005844, + 3963: 0x0000990E, + 3964: 0x00009919, + 3965: 0x000051B4, + 3966: 0x0000991C, + 3967: 0x00009937, + 3968: 0x00009942, + 3969: 0x0000995D, + 3970: 0x00009962, + 3971: 0x00004B70, + 3972: 0x000099C5, + 3973: 0x00004B9D, + 3974: 0x00009A3C, + 3975: 0x00009B0F, + 3976: 0x00007A83, + 3977: 0x00009B69, + 3978: 0x00009B81, + 3979: 0x00009BDD, + 3980: 0x00009BF1, + 3981: 0x00009BF4, + 3982: 0x00004C6D, + 3983: 0x00009C20, + 3984: 0x0000376F, + 3985: 0x00021BC2, + 3986: 0x00009D49, + 3987: 0x00009C3A, + 3988: 0x00009EFE, + 3989: 0x00005650, + 3990: 0x00009D93, + 3991: 0x00009DBD, + 3992: 0x00009DC0, + 3993: 0x00009DFC, + 3994: 0x000094F6, + 3995: 0x00008FB6, + 3996: 0x00009E7B, + 3997: 0x00009EAC, + 3998: 0x00009EB1, + 3999: 0x00009EBD, + 4000: 0x00009EC6, + 4001: 0x000094DC, + 4002: 0x00009EE2, + 4003: 0x00009EF1, + 4004: 0x00009EF8, + 4005: 0x00007AC8, + 4006: 0x00009F44, + 4007: 0x00020094, + 4008: 0x000202B7, + 4009: 0x000203A0, + 4010: 0x0000691A, + 4011: 0x000094C3, + 4012: 0x000059AC, + 4013: 0x000204D7, + 4014: 0x00005840, + 4015: 0x000094C1, + 4016: 0x000037B9, + 4017: 0x000205D5, + 4018: 0x00020615, + 4019: 0x00020676, + 4020: 0x000216BA, + 4021: 0x00005757, + 4022: 0x00007173, + 4023: 0x00020AC2, + 4024: 0x00020ACD, + 4025: 0x00020BBF, + 4026: 0x0000546A, + 4027: 0x0002F83B, + 4028: 0x00020BCB, + 4029: 0x0000549E, + 4030: 0x00020BFB, + 4031: 0x00020C3B, + 4032: 0x00020C53, + 4033: 0x00020C65, + 4034: 0x00020C7C, + 4035: 0x000060E7, + 4036: 0x00020C8D, + 4037: 0x0000567A, + 4038: 0x00020CB5, + 4039: 0x00020CDD, + 4040: 0x00020CED, + 4041: 0x00020D6F, + 4042: 0x00020DB2, + 4043: 0x00020DC8, + 4044: 0x00006955, + 4045: 0x00009C2F, + 4046: 0x000087A5, + 4047: 0x00020E04, + 4048: 0x00020E0E, + 4049: 0x00020ED7, + 4050: 0x00020F90, + 4051: 0x00020F2D, + 4052: 0x00020E73, + 4053: 0x00005C20, + 4054: 0x00020FBC, + 4055: 0x00005E0B, + 4056: 0x0002105C, + 4057: 0x0002104F, + 4058: 0x00021076, + 4059: 0x0000671E, + 4060: 0x0002107B, + 4061: 0x00021088, + 4062: 0x00021096, + 4063: 0x00003647, + 4064: 0x000210BF, + 4065: 0x000210D3, + 4066: 0x0002112F, + 4067: 0x0002113B, + 4068: 0x00005364, + 4069: 0x000084AD, + 4070: 0x000212E3, + 4071: 0x00021375, + 4072: 0x00021336, + 4073: 0x00008B81, + 4074: 0x00021577, + 4075: 0x00021619, + 4076: 0x000217C3, + 4077: 0x000217C7, + 4078: 0x00004E78, + 4079: 0x000070BB, + 4080: 0x0002182D, + 4081: 0x0002196A, + 4082: 0x00021A2D, + 4083: 0x00021A45, + 4084: 0x00021C2A, + 4085: 0x00021C70, + 4086: 0x00021CAC, + 4087: 0x00021EC8, + 4088: 0x000062C3, + 4089: 0x00021ED5, + 4090: 0x00021F15, + 4091: 0x00007198, + 4092: 0x00006855, + 4093: 0x00022045, + 4094: 0x000069E9, + 4095: 0x000036C8, + 4096: 0x0002227C, + 4097: 0x000223D7, + 4098: 0x000223FA, + 4099: 0x0002272A, + 4100: 0x00022871, + 4101: 0x0002294F, + 4102: 0x000082FD, + 4103: 0x00022967, + 4104: 0x00022993, + 4105: 0x00022AD5, + 4106: 0x000089A5, + 4107: 0x00022AE8, + 4108: 0x00008FA0, + 4109: 0x00022B0E, + 4110: 0x000097B8, + 4111: 0x00022B3F, + 4112: 0x00009847, + 4113: 0x00009ABD, + 4114: 0x00022C4C, + 4116: 0x00022C88, + 4117: 0x00022CB7, + 4118: 0x00025BE8, + 4119: 0x00022D08, + 4120: 0x00022D12, + 4121: 0x00022DB7, + 4122: 0x00022D95, + 4123: 0x00022E42, + 4124: 0x00022F74, + 4125: 0x00022FCC, + 4126: 0x00023033, + 4127: 0x00023066, + 4128: 0x0002331F, + 4129: 0x000233DE, + 4130: 0x00005FB1, + 4131: 0x00006648, + 4132: 0x000066BF, + 4133: 0x00027A79, + 4134: 0x00023567, + 4135: 0x000235F3, + 4136: 0x00007201, + 4137: 0x000249BA, + 4138: 0x000077D7, + 4139: 0x0002361A, + 4140: 0x00023716, + 4141: 0x00007E87, + 4142: 0x00020346, + 4143: 0x000058B5, + 4144: 0x0000670E, + 4145: 0x00006918, + 4146: 0x00023AA7, + 4147: 0x00027657, + 4148: 0x00025FE2, + 4149: 0x00023E11, + 4150: 0x00023EB9, + 4151: 0x000275FE, + 4152: 0x0002209A, + 4153: 0x000048D0, + 4154: 0x00004AB8, + 4155: 0x00024119, + 4156: 0x00028A9A, + 4157: 0x000242EE, + 4158: 0x0002430D, + 4159: 0x0002403B, + 4160: 0x00024334, + 4161: 0x00024396, + 4162: 0x00024A45, + 4163: 0x000205CA, + 4164: 0x000051D2, + 4165: 0x00020611, + 4166: 0x0000599F, + 4167: 0x00021EA8, + 4168: 0x00003BBE, + 4169: 0x00023CFF, + 4170: 0x00024404, + 4171: 0x000244D6, + 4172: 0x00005788, + 4173: 0x00024674, + 4174: 0x0000399B, + 4175: 0x0002472F, + 4176: 0x000285E8, + 4177: 0x000299C9, + 4178: 0x00003762, + 4179: 0x000221C3, + 4180: 0x00008B5E, + 4181: 0x00028B4E, + 4182: 0x000099D6, + 4183: 0x00024812, + 4184: 0x000248FB, + 4185: 0x00024A15, + 4186: 0x00007209, + 4187: 0x00024AC0, + 4188: 0x00020C78, + 4189: 0x00005965, + 4190: 0x00024EA5, + 4191: 0x00024F86, + 4192: 0x00020779, + 4193: 0x00008EDA, + 4194: 0x0002502C, + 4195: 0x0000528F, + 4196: 0x0000573F, + 4197: 0x00007171, + 4198: 0x00025299, + 4199: 0x00025419, + 4200: 0x00023F4A, + 4201: 0x00024AA7, + 4202: 0x000055BC, + 4203: 0x00025446, + 4204: 0x0002546E, + 4205: 0x00026B52, + 4206: 0x000091D4, + 4207: 0x00003473, + 4208: 0x0002553F, + 4209: 0x00027632, + 4210: 0x0002555E, + 4211: 0x00004718, + 4212: 0x00025562, + 4213: 0x00025566, + 4214: 0x000257C7, + 4215: 0x0002493F, + 4216: 0x0002585D, + 4217: 0x00005066, + 4218: 0x000034FB, + 4219: 0x000233CC, + 4220: 0x000060DE, + 4221: 0x00025903, + 4222: 0x0000477C, + 4223: 0x00028948, + 4224: 0x00025AAE, + 4225: 0x00025B89, + 4226: 0x00025C06, + 4227: 0x00021D90, + 4228: 0x000057A1, + 4229: 0x00007151, + 4230: 0x00006FB6, + 4231: 0x00026102, + 4232: 0x00027C12, + 4233: 0x00009056, + 4234: 0x000261B2, + 4235: 0x00024F9A, + 4236: 0x00008B62, + 4237: 0x00026402, + 4238: 0x0002644A, + 4239: 0x00005D5B, + 4240: 0x00026BF7, + 4241: 0x00008F36, + 4242: 0x00026484, + 4243: 0x0002191C, + 4244: 0x00008AEA, + 4245: 0x000249F6, + 4246: 0x00026488, + 4247: 0x00023FEF, + 4248: 0x00026512, + 4249: 0x00004BC0, + 4250: 0x000265BF, + 4251: 0x000266B5, + 4252: 0x0002271B, + 4253: 0x00009465, + 4254: 0x000257E1, + 4255: 0x00006195, + 4256: 0x00005A27, + 4257: 0x0002F8CD, + 4258: 0x00004FBB, + 4259: 0x000056B9, + 4260: 0x00024521, + 4261: 0x000266FC, + 4262: 0x00004E6A, + 4263: 0x00024934, + 4264: 0x00009656, + 4265: 0x00006D8F, + 4266: 0x00026CBD, + 4267: 0x00003618, + 4268: 0x00008977, + 4269: 0x00026799, + 4270: 0x0002686E, + 4271: 0x00026411, + 4272: 0x0002685E, + 4273: 0x000071DF, + 4274: 0x000268C7, + 4275: 0x00007B42, + 4276: 0x000290C0, + 4277: 0x00020A11, + 4278: 0x00026926, + 4279: 0x00009104, + 4280: 0x00026939, + 4281: 0x00007A45, + 4282: 0x00009DF0, + 4283: 0x000269FA, + 4284: 0x00009A26, + 4285: 0x00026A2D, + 4286: 0x0000365F, + 4287: 0x00026469, + 4288: 0x00020021, + 4289: 0x00007983, + 4290: 0x00026A34, + 4291: 0x00026B5B, + 4292: 0x00005D2C, + 4293: 0x00023519, + 4294: 0x000083CF, + 4295: 0x00026B9D, + 4296: 0x000046D0, + 4297: 0x00026CA4, + 4298: 0x0000753B, + 4299: 0x00008865, + 4300: 0x00026DAE, + 4301: 0x000058B6, + 4302: 0x0000371C, + 4303: 0x0002258D, + 4304: 0x0002704B, + 4305: 0x000271CD, + 4306: 0x00003C54, + 4307: 0x00027280, + 4308: 0x00027285, + 4309: 0x00009281, + 4310: 0x0002217A, + 4311: 0x0002728B, + 4312: 0x00009330, + 4313: 0x000272E6, + 4314: 0x000249D0, + 4315: 0x00006C39, + 4316: 0x0000949F, + 4317: 0x00027450, + 4318: 0x00020EF8, + 4319: 0x00008827, + 4320: 0x000088F5, + 4321: 0x00022926, + 4322: 0x00028473, + 4323: 0x000217B1, + 4324: 0x00006EB8, + 4325: 0x00024A2A, + 4326: 0x00021820, + 4327: 0x000039A4, + 4328: 0x000036B9, + 4329: 0x00005C10, + 4330: 0x000079E3, + 4331: 0x0000453F, + 4332: 0x000066B6, + 4333: 0x00029CAD, + 4334: 0x000298A4, + 4335: 0x00008943, + 4336: 0x000277CC, + 4337: 0x00027858, + 4338: 0x000056D6, + 4339: 0x000040DF, + 4340: 0x0002160A, + 4341: 0x000039A1, + 4342: 0x0002372F, + 4343: 0x000280E8, + 4344: 0x000213C5, + 4345: 0x000071AD, + 4346: 0x00008366, + 4347: 0x000279DD, + 4348: 0x000291A8, + 4349: 0x00005A67, + 4350: 0x00004CB7, + 4351: 0x000270AF, + 4352: 0x000289AB, + 4353: 0x000279FD, + 4354: 0x00027A0A, + 4355: 0x00027B0B, + 4356: 0x00027D66, + 4357: 0x0002417A, + 4358: 0x00007B43, + 4359: 0x0000797E, + 4360: 0x00028009, + 4361: 0x00006FB5, + 4362: 0x0002A2DF, + 4363: 0x00006A03, + 4364: 0x00028318, + 4365: 0x000053A2, + 4366: 0x00026E07, + 4367: 0x000093BF, + 4368: 0x00006836, + 4369: 0x0000975D, + 4370: 0x0002816F, + 4371: 0x00028023, + 4372: 0x000269B5, + 4373: 0x000213ED, + 4374: 0x0002322F, + 4375: 0x00028048, + 4376: 0x00005D85, + 4377: 0x00028C30, + 4378: 0x00028083, + 4379: 0x00005715, + 4380: 0x00009823, + 4381: 0x00028949, + 4382: 0x00005DAB, + 4383: 0x00024988, + 4384: 0x000065BE, + 4385: 0x000069D5, + 4386: 0x000053D2, + 4387: 0x00024AA5, + 4388: 0x00023F81, + 4389: 0x00003C11, + 4390: 0x00006736, + 4391: 0x00028090, + 4392: 0x000280F4, + 4393: 0x0002812E, + 4394: 0x00021FA1, + 4395: 0x0002814F, + 4396: 0x00028189, + 4397: 0x000281AF, + 4398: 0x0002821A, + 4399: 0x00028306, + 4400: 0x0002832F, + 4401: 0x0002838A, + 4402: 0x000035CA, + 4403: 0x00028468, + 4404: 0x000286AA, + 4405: 0x000048FA, + 4406: 0x000063E6, + 4407: 0x00028956, + 4408: 0x00007808, + 4409: 0x00009255, + 4410: 0x000289B8, + 4411: 0x000043F2, + 4412: 0x000289E7, + 4413: 0x000043DF, + 4414: 0x000289E8, + 4415: 0x00028B46, + 4416: 0x00028BD4, + 4417: 0x000059F8, + 4418: 0x00028C09, + 4419: 0x00008F0B, + 4420: 0x00028FC5, + 4421: 0x000290EC, + 4422: 0x00007B51, + 4423: 0x00029110, + 4424: 0x0002913C, + 4425: 0x00003DF7, + 4426: 0x0002915E, + 4427: 0x00024ACA, + 4428: 0x00008FD0, + 4429: 0x0000728F, + 4430: 0x0000568B, + 4431: 0x000294E7, + 4432: 0x000295E9, + 4433: 0x000295B0, + 4434: 0x000295B8, + 4435: 0x00029732, + 4436: 0x000298D1, + 4437: 0x00029949, + 4438: 0x0002996A, + 4439: 0x000299C3, + 4440: 0x00029A28, + 4441: 0x00029B0E, + 4442: 0x00029D5A, + 4443: 0x00029D9B, + 4444: 0x00007E9F, + 4445: 0x00029EF8, + 4446: 0x00029F23, + 4447: 0x00004CA4, + 4448: 0x00009547, + 4449: 0x0002A293, + 4450: 0x000071A2, + 4451: 0x0002A2FF, + 4452: 0x00004D91, + 4453: 0x00009012, + 4454: 0x0002A5CB, + 4455: 0x00004D9C, + 4456: 0x00020C9C, + 4457: 0x00008FBE, + 4458: 0x000055C1, + 4459: 0x00008FBA, + 4460: 0x000224B0, + 4461: 0x00008FB9, + 4462: 0x00024A93, + 4463: 0x00004509, + 4464: 0x00007E7F, + 4465: 0x00006F56, + 4466: 0x00006AB1, + 4467: 0x00004EEA, + 4468: 0x000034E4, + 4469: 0x00028B2C, + 4470: 0x0002789D, + 4471: 0x0000373A, + 4472: 0x00008E80, + 4473: 0x000217F5, + 4474: 0x00028024, + 4475: 0x00028B6C, + 4476: 0x00028B99, + 4477: 0x00027A3E, + 4478: 0x000266AF, + 4479: 0x00003DEB, + 4480: 0x00027655, + 4481: 0x00023CB7, + 4482: 0x00025635, + 4483: 0x00025956, + 4484: 0x00004E9A, + 4485: 0x00025E81, + 4486: 0x00026258, + 4487: 0x000056BF, + 4488: 0x00020E6D, + 4489: 0x00008E0E, + 4490: 0x00005B6D, + 4491: 0x00023E88, + 4492: 0x00024C9E, + 4493: 0x000063DE, + 4494: 0x000062D0, + 4495: 0x000217F6, + 4496: 0x0002187B, + 4497: 0x00006530, + 4498: 0x0000562D, + 4499: 0x00025C4A, + 4500: 0x0000541A, + 4501: 0x00025311, + 4502: 0x00003DC6, + 4503: 0x00029D98, + 4504: 0x00004C7D, + 4505: 0x00005622, + 4506: 0x0000561E, + 4507: 0x00007F49, + 4508: 0x00025ED8, + 4509: 0x00005975, + 4510: 0x00023D40, + 4511: 0x00008770, + 4512: 0x00004E1C, + 4513: 0x00020FEA, + 4514: 0x00020D49, + 4515: 0x000236BA, + 4516: 0x00008117, + 4517: 0x00009D5E, + 4518: 0x00008D18, + 4519: 0x0000763B, + 4520: 0x00009C45, + 4521: 0x0000764E, + 4522: 0x000077B9, + 4523: 0x00009345, + 4524: 0x00005432, + 4525: 0x00008148, + 4526: 0x000082F7, + 4527: 0x00005625, + 4528: 0x00008132, + 4529: 0x00008418, + 4530: 0x000080BD, + 4531: 0x000055EA, + 4532: 0x00007962, + 4533: 0x00005643, + 4534: 0x00005416, + 4535: 0x00020E9D, + 4536: 0x000035CE, + 4537: 0x00005605, + 4538: 0x000055F1, + 4539: 0x000066F1, + 4540: 0x000282E2, + 4541: 0x0000362D, + 4542: 0x00007534, + 4543: 0x000055F0, + 4544: 0x000055BA, + 4545: 0x00005497, + 4546: 0x00005572, + 4547: 0x00020C41, + 4548: 0x00020C96, + 4549: 0x00005ED0, + 4550: 0x00025148, + 4551: 0x00020E76, + 4552: 0x00022C62, + 4553: 0x00020EA2, + 4554: 0x00009EAB, + 4555: 0x00007D5A, + 4556: 0x000055DE, + 4557: 0x00021075, + 4558: 0x0000629D, + 4559: 0x0000976D, + 4560: 0x00005494, + 4561: 0x00008CCD, + 4562: 0x000071F6, + 4563: 0x00009176, + 4564: 0x000063FC, + 4565: 0x000063B9, + 4566: 0x000063FE, + 4567: 0x00005569, + 4568: 0x00022B43, + 4569: 0x00009C72, + 4570: 0x00022EB3, + 4571: 0x0000519A, + 4572: 0x000034DF, + 4573: 0x00020DA7, + 4574: 0x000051A7, + 4575: 0x0000544D, + 4576: 0x0000551E, + 4577: 0x00005513, + 4578: 0x00007666, + 4579: 0x00008E2D, + 4580: 0x0002688A, + 4581: 0x000075B1, + 4582: 0x000080B6, + 4583: 0x00008804, + 4584: 0x00008786, + 4585: 0x000088C7, + 4586: 0x000081B6, + 4587: 0x0000841C, + 4588: 0x000210C1, + 4589: 0x000044EC, + 4590: 0x00007304, + 4591: 0x00024706, + 4592: 0x00005B90, + 4593: 0x0000830B, + 4594: 0x00026893, + 4595: 0x0000567B, + 4596: 0x000226F4, + 4597: 0x00027D2F, + 4598: 0x000241A3, + 4599: 0x00027D73, + 4600: 0x00026ED0, + 4601: 0x000272B6, + 4602: 0x00009170, + 4603: 0x000211D9, + 4604: 0x00009208, + 4605: 0x00023CFC, + 4606: 0x0002A6A9, + 4607: 0x00020EAC, + 4608: 0x00020EF9, + 4609: 0x00007266, + 4610: 0x00021CA2, + 4611: 0x0000474E, + 4612: 0x00024FC2, + 4613: 0x00027FF9, + 4614: 0x00020FEB, + 4615: 0x000040FA, + 4616: 0x00009C5D, + 4617: 0x0000651F, + 4618: 0x00022DA0, + 4619: 0x000048F3, + 4620: 0x000247E0, + 4621: 0x00029D7C, + 4622: 0x00020FEC, + 4623: 0x00020E0A, + 4624: 0x00006062, + 4625: 0x000275A3, + 4626: 0x00020FED, + 4628: 0x00026048, + 4629: 0x00021187, + 4630: 0x000071A3, + 4631: 0x00007E8E, + 4632: 0x00009D50, + 4633: 0x00004E1A, + 4634: 0x00004E04, + 4635: 0x00003577, + 4636: 0x00005B0D, + 4637: 0x00006CB2, + 4638: 0x00005367, + 4639: 0x000036AC, + 4640: 0x000039DC, + 4641: 0x0000537D, + 4642: 0x000036A5, + 4643: 0x00024618, + 4644: 0x0000589A, + 4645: 0x00024B6E, + 4646: 0x0000822D, + 4647: 0x0000544B, + 4648: 0x000057AA, + 4649: 0x00025A95, + 4650: 0x00020979, + 4652: 0x00003A52, + 4653: 0x00022465, + 4654: 0x00007374, + 4655: 0x00029EAC, + 4656: 0x00004D09, + 4657: 0x00009BED, + 4658: 0x00023CFE, + 4659: 0x00029F30, + 4660: 0x00004C5B, + 4661: 0x00024FA9, + 4662: 0x0002959E, + 4663: 0x00029FDE, + 4664: 0x0000845C, + 4665: 0x00023DB6, + 4666: 0x000272B2, + 4667: 0x000267B3, + 4668: 0x00023720, + 4669: 0x0000632E, + 4670: 0x00007D25, + 4671: 0x00023EF7, + 4672: 0x00023E2C, + 4673: 0x00003A2A, + 4674: 0x00009008, + 4675: 0x000052CC, + 4676: 0x00003E74, + 4677: 0x0000367A, + 4678: 0x000045E9, + 4679: 0x0002048E, + 4680: 0x00007640, + 4681: 0x00005AF0, + 4682: 0x00020EB6, + 4683: 0x0000787A, + 4684: 0x00027F2E, + 4685: 0x000058A7, + 4686: 0x000040BF, + 4687: 0x0000567C, + 4688: 0x00009B8B, + 4689: 0x00005D74, + 4690: 0x00007654, + 4691: 0x0002A434, + 4692: 0x00009E85, + 4693: 0x00004CE1, + 4694: 0x000075F9, + 4695: 0x000037FB, + 4696: 0x00006119, + 4697: 0x000230DA, + 4698: 0x000243F2, + 4700: 0x0000565D, + 4701: 0x000212A9, + 4702: 0x000057A7, + 4703: 0x00024963, + 4704: 0x00029E06, + 4705: 0x00005234, + 4706: 0x000270AE, + 4707: 0x000035AD, + 4708: 0x00006C4A, + 4709: 0x00009D7C, + 4710: 0x00007C56, + 4711: 0x00009B39, + 4712: 0x000057DE, + 4713: 0x0002176C, + 4714: 0x00005C53, + 4715: 0x000064D3, + 4716: 0x000294D0, + 4717: 0x00026335, + 4718: 0x00027164, + 4719: 0x000086AD, + 4720: 0x00020D28, + 4721: 0x00026D22, + 4722: 0x00024AE2, + 4723: 0x00020D71, + 4725: 0x000051FE, + 4726: 0x00021F0F, + 4727: 0x00005D8E, + 4728: 0x00009703, + 4729: 0x00021DD1, + 4730: 0x00009E81, + 4731: 0x0000904C, + 4732: 0x00007B1F, + 4733: 0x00009B02, + 4734: 0x00005CD1, + 4735: 0x00007BA3, + 4736: 0x00006268, + 4737: 0x00006335, + 4738: 0x00009AFF, + 4739: 0x00007BCF, + 4740: 0x00009B2A, + 4741: 0x00007C7E, + 4742: 0x00009B2E, + 4743: 0x00007C42, + 4744: 0x00007C86, + 4745: 0x00009C15, + 4746: 0x00007BFC, + 4747: 0x00009B09, + 4748: 0x00009F17, + 4749: 0x00009C1B, + 4750: 0x0002493E, + 4751: 0x00009F5A, + 4752: 0x00005573, + 4753: 0x00005BC3, + 4754: 0x00004FFD, + 4755: 0x00009E98, + 4756: 0x00004FF2, + 4757: 0x00005260, + 4758: 0x00003E06, + 4759: 0x000052D1, + 4760: 0x00005767, + 4761: 0x00005056, + 4762: 0x000059B7, + 4763: 0x00005E12, + 4764: 0x000097C8, + 4765: 0x00009DAB, + 4766: 0x00008F5C, + 4767: 0x00005469, + 4768: 0x000097B4, + 4769: 0x00009940, + 4770: 0x000097BA, + 4771: 0x0000532C, + 4772: 0x00006130, + 4773: 0x0000692C, + 4774: 0x000053DA, + 4775: 0x00009C0A, + 4776: 0x00009D02, + 4777: 0x00004C3B, + 4778: 0x00009641, + 4779: 0x00006980, + 4780: 0x000050A6, + 4781: 0x00007546, + 4782: 0x0002176D, + 4783: 0x000099DA, + 4784: 0x00005273, + 4786: 0x00009159, + 4787: 0x00009681, + 4788: 0x0000915C, + 4790: 0x00009151, + 4791: 0x00028E97, + 4792: 0x0000637F, + 4793: 0x00026D23, + 4794: 0x00006ACA, + 4795: 0x00005611, + 4796: 0x0000918E, + 4797: 0x0000757A, + 4798: 0x00006285, + 4799: 0x000203FC, + 4800: 0x0000734F, + 4801: 0x00007C70, + 4802: 0x00025C21, + 4803: 0x00023CFD, + 4805: 0x00024919, + 4806: 0x000076D6, + 4807: 0x00009B9D, + 4808: 0x00004E2A, + 4809: 0x00020CD4, + 4810: 0x000083BE, + 4811: 0x00008842, + 4813: 0x00005C4A, + 4814: 0x000069C0, + 4815: 0x000050ED, + 4816: 0x0000577A, + 4817: 0x0000521F, + 4818: 0x00005DF5, + 4819: 0x00004ECE, + 4820: 0x00006C31, + 4821: 0x000201F2, + 4822: 0x00004F39, + 4823: 0x0000549C, + 4824: 0x000054DA, + 4825: 0x0000529A, + 4826: 0x00008D82, + 4827: 0x000035FE, + 4828: 0x00005F0C, + 4829: 0x000035F3, + 4831: 0x00006B52, + 4832: 0x0000917C, + 4833: 0x00009FA5, + 4834: 0x00009B97, + 4835: 0x0000982E, + 4836: 0x000098B4, + 4837: 0x00009ABA, + 4838: 0x00009EA8, + 4839: 0x00009E84, + 4840: 0x0000717A, + 4841: 0x00007B14, + 4843: 0x00006BFA, + 4844: 0x00008818, + 4845: 0x00007F78, + 4847: 0x00005620, + 4848: 0x0002A64A, + 4849: 0x00008E77, + 4850: 0x00009F53, + 4852: 0x00008DD4, + 4853: 0x00008E4F, + 4854: 0x00009E1C, + 4855: 0x00008E01, + 4856: 0x00006282, + 4857: 0x0002837D, + 4858: 0x00008E28, + 4859: 0x00008E75, + 4860: 0x00007AD3, + 4861: 0x00024A77, + 4862: 0x00007A3E, + 4863: 0x000078D8, + 4864: 0x00006CEA, + 4865: 0x00008A67, + 4866: 0x00007607, + 4867: 0x00028A5A, + 4868: 0x00009F26, + 4869: 0x00006CCE, + 4870: 0x000087D6, + 4871: 0x000075C3, + 4872: 0x0002A2B2, + 4873: 0x00007853, + 4874: 0x0002F840, + 4875: 0x00008D0C, + 4876: 0x000072E2, + 4877: 0x00007371, + 4878: 0x00008B2D, + 4879: 0x00007302, + 4880: 0x000074F1, + 4881: 0x00008CEB, + 4882: 0x00024ABB, + 4883: 0x0000862F, + 4884: 0x00005FBA, + 4885: 0x000088A0, + 4886: 0x000044B7, + 4888: 0x0002183B, + 4889: 0x00026E05, + 4891: 0x00008A7E, + 4892: 0x0002251B, + 4894: 0x000060FD, + 4895: 0x00007667, + 4896: 0x00009AD7, + 4897: 0x00009D44, + 4898: 0x0000936E, + 4899: 0x00009B8F, + 4900: 0x000087F5, + 4902: 0x0000880F, + 4903: 0x00008CF7, + 4904: 0x0000732C, + 4905: 0x00009721, + 4906: 0x00009BB0, + 4907: 0x000035D6, + 4908: 0x000072B2, + 4909: 0x00004C07, + 4910: 0x00007C51, + 4911: 0x0000994A, + 4912: 0x00026159, + 4913: 0x00006159, + 4914: 0x00004C04, + 4915: 0x00009E96, + 4916: 0x0000617D, + 4918: 0x0000575F, + 4919: 0x0000616F, + 4920: 0x000062A6, + 4921: 0x00006239, + 4922: 0x000062CE, + 4923: 0x00003A5C, + 4924: 0x000061E2, + 4925: 0x000053AA, + 4926: 0x000233F5, + 4927: 0x00006364, + 4928: 0x00006802, + 4929: 0x000035D2, + 4930: 0x00005D57, + 4931: 0x00028BC2, + 4932: 0x00008FDA, + 4933: 0x00028E39, + 4935: 0x000050D9, + 4936: 0x00021D46, + 4937: 0x00007906, + 4938: 0x00005332, + 4939: 0x00009638, + 4940: 0x00020F3B, + 4941: 0x00004065, + 4943: 0x000077FE, + 4945: 0x00007CC2, + 4946: 0x00025F1A, + 4947: 0x00007CDA, + 4948: 0x00007A2D, + 4949: 0x00008066, + 4950: 0x00008063, + 4951: 0x00007D4D, + 4952: 0x00007505, + 4953: 0x000074F2, + 4954: 0x00008994, + 4955: 0x0000821A, + 4956: 0x0000670C, + 4957: 0x00008062, + 4958: 0x00027486, + 4959: 0x0000805B, + 4960: 0x000074F0, + 4961: 0x00008103, + 4962: 0x00007724, + 4963: 0x00008989, + 4964: 0x000267CC, + 4965: 0x00007553, + 4966: 0x00026ED1, + 4967: 0x000087A9, + 4968: 0x000087CE, + 4969: 0x000081C8, + 4970: 0x0000878C, + 4971: 0x00008A49, + 4972: 0x00008CAD, + 4973: 0x00008B43, + 4974: 0x0000772B, + 4975: 0x000074F8, + 4976: 0x000084DA, + 4977: 0x00003635, + 4978: 0x000069B2, + 4979: 0x00008DA6, + 4981: 0x000089A9, + 4982: 0x00007468, + 4983: 0x00006DB9, + 4984: 0x000087C1, + 4985: 0x00024011, + 4986: 0x000074E7, + 4987: 0x00003DDB, + 4988: 0x00007176, + 4989: 0x000060A4, + 4990: 0x0000619C, + 4991: 0x00003CD1, + 4992: 0x00007162, + 4993: 0x00006077, + 4995: 0x00007F71, + 4996: 0x00028B2D, + 4997: 0x00007250, + 4998: 0x000060E9, + 4999: 0x00004B7E, + 5000: 0x00005220, + 5001: 0x00003C18, + 5002: 0x00023CC7, + 5003: 0x00025ED7, + 5004: 0x00027656, + 5005: 0x00025531, + 5006: 0x00021944, + 5007: 0x000212FE, + 5008: 0x00029903, + 5009: 0x00026DDC, + 5010: 0x000270AD, + 5011: 0x00005CC1, + 5012: 0x000261AD, + 5013: 0x00028A0F, + 5014: 0x00023677, + 5015: 0x000200EE, + 5016: 0x00026846, + 5017: 0x00024F0E, + 5018: 0x00004562, + 5019: 0x00005B1F, + 5020: 0x0002634C, + 5021: 0x00009F50, + 5022: 0x00009EA6, + 5023: 0x0002626B, + 5024: 0x00003000, + 5025: 0x0000FF0C, + 5026: 0x00003001, + 5027: 0x00003002, + 5028: 0x0000FF0E, + 5029: 0x00002027, + 5030: 0x0000FF1B, + 5031: 0x0000FF1A, + 5032: 0x0000FF1F, + 5033: 0x0000FF01, + 5034: 0x0000FE30, + 5035: 0x00002026, + 5036: 0x00002025, + 5037: 0x0000FE50, + 5038: 0x0000FE51, + 5039: 0x0000FE52, + 5040: 0x000000B7, + 5041: 0x0000FE54, + 5042: 0x0000FE55, + 5043: 0x0000FE56, + 5044: 0x0000FE57, + 5045: 0x0000FF5C, + 5046: 0x00002013, + 5047: 0x0000FE31, + 5048: 0x00002014, + 5049: 0x0000FE33, + 5050: 0x00002574, + 5051: 0x0000FE34, + 5052: 0x0000FE4F, + 5053: 0x0000FF08, + 5054: 0x0000FF09, + 5055: 0x0000FE35, + 5056: 0x0000FE36, + 5057: 0x0000FF5B, + 5058: 0x0000FF5D, + 5059: 0x0000FE37, + 5060: 0x0000FE38, + 5061: 0x00003014, + 5062: 0x00003015, + 5063: 0x0000FE39, + 5064: 0x0000FE3A, + 5065: 0x00003010, + 5066: 0x00003011, + 5067: 0x0000FE3B, + 5068: 0x0000FE3C, + 5069: 0x0000300A, + 5070: 0x0000300B, + 5071: 0x0000FE3D, + 5072: 0x0000FE3E, + 5073: 0x00003008, + 5074: 0x00003009, + 5075: 0x0000FE3F, + 5076: 0x0000FE40, + 5077: 0x0000300C, + 5078: 0x0000300D, + 5079: 0x0000FE41, + 5080: 0x0000FE42, + 5081: 0x0000300E, + 5082: 0x0000300F, + 5083: 0x0000FE43, + 5084: 0x0000FE44, + 5085: 0x0000FE59, + 5086: 0x0000FE5A, + 5087: 0x0000FE5B, + 5088: 0x0000FE5C, + 5089: 0x0000FE5D, + 5090: 0x0000FE5E, + 5091: 0x00002018, + 5092: 0x00002019, + 5093: 0x0000201C, + 5094: 0x0000201D, + 5095: 0x0000301D, + 5096: 0x0000301E, + 5097: 0x00002035, + 5098: 0x00002032, + 5099: 0x0000FF03, + 5100: 0x0000FF06, + 5101: 0x0000FF0A, + 5102: 0x0000203B, + 5103: 0x000000A7, + 5104: 0x00003003, + 5105: 0x000025CB, + 5106: 0x000025CF, + 5107: 0x000025B3, + 5108: 0x000025B2, + 5109: 0x000025CE, + 5110: 0x00002606, + 5111: 0x00002605, + 5112: 0x000025C7, + 5113: 0x000025C6, + 5114: 0x000025A1, + 5115: 0x000025A0, + 5116: 0x000025BD, + 5117: 0x000025BC, + 5118: 0x000032A3, + 5119: 0x00002105, + 5120: 0x000000AF, + 5121: 0x0000FFE3, + 5122: 0x0000FF3F, + 5123: 0x000002CD, + 5124: 0x0000FE49, + 5125: 0x0000FE4A, + 5126: 0x0000FE4D, + 5127: 0x0000FE4E, + 5128: 0x0000FE4B, + 5129: 0x0000FE4C, + 5130: 0x0000FE5F, + 5131: 0x0000FE60, + 5132: 0x0000FE61, + 5133: 0x0000FF0B, + 5134: 0x0000FF0D, + 5135: 0x000000D7, + 5136: 0x000000F7, + 5137: 0x000000B1, + 5138: 0x0000221A, + 5139: 0x0000FF1C, + 5140: 0x0000FF1E, + 5141: 0x0000FF1D, + 5142: 0x00002266, + 5143: 0x00002267, + 5144: 0x00002260, + 5145: 0x0000221E, + 5146: 0x00002252, + 5147: 0x00002261, + 5148: 0x0000FE62, + 5149: 0x0000FE63, + 5150: 0x0000FE64, + 5151: 0x0000FE65, + 5152: 0x0000FE66, + 5153: 0x0000FF5E, + 5154: 0x00002229, + 5155: 0x0000222A, + 5156: 0x000022A5, + 5157: 0x00002220, + 5158: 0x0000221F, + 5159: 0x000022BF, + 5160: 0x000033D2, + 5161: 0x000033D1, + 5162: 0x0000222B, + 5163: 0x0000222E, + 5164: 0x00002235, + 5165: 0x00002234, + 5166: 0x00002640, + 5167: 0x00002642, + 5168: 0x00002295, + 5169: 0x00002299, + 5170: 0x00002191, + 5171: 0x00002193, + 5172: 0x00002190, + 5173: 0x00002192, + 5174: 0x00002196, + 5175: 0x00002197, + 5176: 0x00002199, + 5177: 0x00002198, + 5178: 0x00002225, + 5179: 0x00002223, + 5180: 0x0000FF0F, + 5181: 0x0000FF3C, + 5182: 0x00002215, + 5183: 0x0000FE68, + 5184: 0x0000FF04, + 5185: 0x0000FFE5, + 5186: 0x00003012, + 5187: 0x0000FFE0, + 5188: 0x0000FFE1, + 5189: 0x0000FF05, + 5190: 0x0000FF20, + 5191: 0x00002103, + 5192: 0x00002109, + 5193: 0x0000FE69, + 5194: 0x0000FE6A, + 5195: 0x0000FE6B, + 5196: 0x000033D5, + 5197: 0x0000339C, + 5198: 0x0000339D, + 5199: 0x0000339E, + 5200: 0x000033CE, + 5201: 0x000033A1, + 5202: 0x0000338E, + 5203: 0x0000338F, + 5204: 0x000033C4, + 5205: 0x000000B0, + 5206: 0x00005159, + 5207: 0x0000515B, + 5208: 0x0000515E, + 5209: 0x0000515D, + 5210: 0x00005161, + 5211: 0x00005163, + 5212: 0x000055E7, + 5213: 0x000074E9, + 5214: 0x00007CCE, + 5215: 0x00002581, + 5216: 0x00002582, + 5217: 0x00002583, + 5218: 0x00002584, + 5219: 0x00002585, + 5220: 0x00002586, + 5221: 0x00002587, + 5222: 0x00002588, + 5223: 0x0000258F, + 5224: 0x0000258E, + 5225: 0x0000258D, + 5226: 0x0000258C, + 5227: 0x0000258B, + 5228: 0x0000258A, + 5229: 0x00002589, + 5230: 0x0000253C, + 5231: 0x00002534, + 5232: 0x0000252C, + 5233: 0x00002524, + 5234: 0x0000251C, + 5235: 0x00002594, + 5236: 0x00002500, + 5237: 0x00002502, + 5238: 0x00002595, + 5239: 0x0000250C, + 5240: 0x00002510, + 5241: 0x00002514, + 5242: 0x00002518, + 5243: 0x0000256D, + 5244: 0x0000256E, + 5245: 0x00002570, + 5246: 0x0000256F, + 5247: 0x00002550, + 5248: 0x0000255E, + 5249: 0x0000256A, + 5250: 0x00002561, + 5251: 0x000025E2, + 5252: 0x000025E3, + 5253: 0x000025E5, + 5254: 0x000025E4, + 5255: 0x00002571, + 5256: 0x00002572, + 5257: 0x00002573, + 5258: 0x0000FF10, + 5259: 0x0000FF11, + 5260: 0x0000FF12, + 5261: 0x0000FF13, + 5262: 0x0000FF14, + 5263: 0x0000FF15, + 5264: 0x0000FF16, + 5265: 0x0000FF17, + 5266: 0x0000FF18, + 5267: 0x0000FF19, + 5268: 0x00002160, + 5269: 0x00002161, + 5270: 0x00002162, + 5271: 0x00002163, + 5272: 0x00002164, + 5273: 0x00002165, + 5274: 0x00002166, + 5275: 0x00002167, + 5276: 0x00002168, + 5277: 0x00002169, + 5278: 0x00003021, + 5279: 0x00003022, + 5280: 0x00003023, + 5281: 0x00003024, + 5282: 0x00003025, + 5283: 0x00003026, + 5284: 0x00003027, + 5285: 0x00003028, + 5286: 0x00003029, + 5287: 0x00005341, + 5288: 0x00005344, + 5289: 0x00005345, + 5290: 0x0000FF21, + 5291: 0x0000FF22, + 5292: 0x0000FF23, + 5293: 0x0000FF24, + 5294: 0x0000FF25, + 5295: 0x0000FF26, + 5296: 0x0000FF27, + 5297: 0x0000FF28, + 5298: 0x0000FF29, + 5299: 0x0000FF2A, + 5300: 0x0000FF2B, + 5301: 0x0000FF2C, + 5302: 0x0000FF2D, + 5303: 0x0000FF2E, + 5304: 0x0000FF2F, + 5305: 0x0000FF30, + 5306: 0x0000FF31, + 5307: 0x0000FF32, + 5308: 0x0000FF33, + 5309: 0x0000FF34, + 5310: 0x0000FF35, + 5311: 0x0000FF36, + 5312: 0x0000FF37, + 5313: 0x0000FF38, + 5314: 0x0000FF39, + 5315: 0x0000FF3A, + 5316: 0x0000FF41, + 5317: 0x0000FF42, + 5318: 0x0000FF43, + 5319: 0x0000FF44, + 5320: 0x0000FF45, + 5321: 0x0000FF46, + 5322: 0x0000FF47, + 5323: 0x0000FF48, + 5324: 0x0000FF49, + 5325: 0x0000FF4A, + 5326: 0x0000FF4B, + 5327: 0x0000FF4C, + 5328: 0x0000FF4D, + 5329: 0x0000FF4E, + 5330: 0x0000FF4F, + 5331: 0x0000FF50, + 5332: 0x0000FF51, + 5333: 0x0000FF52, + 5334: 0x0000FF53, + 5335: 0x0000FF54, + 5336: 0x0000FF55, + 5337: 0x0000FF56, + 5338: 0x0000FF57, + 5339: 0x0000FF58, + 5340: 0x0000FF59, + 5341: 0x0000FF5A, + 5342: 0x00000391, + 5343: 0x00000392, + 5344: 0x00000393, + 5345: 0x00000394, + 5346: 0x00000395, + 5347: 0x00000396, + 5348: 0x00000397, + 5349: 0x00000398, + 5350: 0x00000399, + 5351: 0x0000039A, + 5352: 0x0000039B, + 5353: 0x0000039C, + 5354: 0x0000039D, + 5355: 0x0000039E, + 5356: 0x0000039F, + 5357: 0x000003A0, + 5358: 0x000003A1, + 5359: 0x000003A3, + 5360: 0x000003A4, + 5361: 0x000003A5, + 5362: 0x000003A6, + 5363: 0x000003A7, + 5364: 0x000003A8, + 5365: 0x000003A9, + 5366: 0x000003B1, + 5367: 0x000003B2, + 5368: 0x000003B3, + 5369: 0x000003B4, + 5370: 0x000003B5, + 5371: 0x000003B6, + 5372: 0x000003B7, + 5373: 0x000003B8, + 5374: 0x000003B9, + 5375: 0x000003BA, + 5376: 0x000003BB, + 5377: 0x000003BC, + 5378: 0x000003BD, + 5379: 0x000003BE, + 5380: 0x000003BF, + 5381: 0x000003C0, + 5382: 0x000003C1, + 5383: 0x000003C3, + 5384: 0x000003C4, + 5385: 0x000003C5, + 5386: 0x000003C6, + 5387: 0x000003C7, + 5388: 0x000003C8, + 5389: 0x000003C9, + 5390: 0x00003105, + 5391: 0x00003106, + 5392: 0x00003107, + 5393: 0x00003108, + 5394: 0x00003109, + 5395: 0x0000310A, + 5396: 0x0000310B, + 5397: 0x0000310C, + 5398: 0x0000310D, + 5399: 0x0000310E, + 5400: 0x0000310F, + 5401: 0x00003110, + 5402: 0x00003111, + 5403: 0x00003112, + 5404: 0x00003113, + 5405: 0x00003114, + 5406: 0x00003115, + 5407: 0x00003116, + 5408: 0x00003117, + 5409: 0x00003118, + 5410: 0x00003119, + 5411: 0x0000311A, + 5412: 0x0000311B, + 5413: 0x0000311C, + 5414: 0x0000311D, + 5415: 0x0000311E, + 5416: 0x0000311F, + 5417: 0x00003120, + 5418: 0x00003121, + 5419: 0x00003122, + 5420: 0x00003123, + 5421: 0x00003124, + 5422: 0x00003125, + 5423: 0x00003126, + 5424: 0x00003127, + 5425: 0x00003128, + 5426: 0x00003129, + 5427: 0x000002D9, + 5428: 0x000002C9, + 5429: 0x000002CA, + 5430: 0x000002C7, + 5431: 0x000002CB, + 5432: 0x00002400, + 5433: 0x00002401, + 5434: 0x00002402, + 5435: 0x00002403, + 5436: 0x00002404, + 5437: 0x00002405, + 5438: 0x00002406, + 5439: 0x00002407, + 5440: 0x00002408, + 5441: 0x00002409, + 5442: 0x0000240A, + 5443: 0x0000240B, + 5444: 0x0000240C, + 5445: 0x0000240D, + 5446: 0x0000240E, + 5447: 0x0000240F, + 5448: 0x00002410, + 5449: 0x00002411, + 5450: 0x00002412, + 5451: 0x00002413, + 5452: 0x00002414, + 5453: 0x00002415, + 5454: 0x00002416, + 5455: 0x00002417, + 5456: 0x00002418, + 5457: 0x00002419, + 5458: 0x0000241A, + 5459: 0x0000241B, + 5460: 0x0000241C, + 5461: 0x0000241D, + 5462: 0x0000241E, + 5463: 0x0000241F, + 5464: 0x00002421, + 5465: 0x000020AC, + 5495: 0x00004E00, + 5496: 0x00004E59, + 5497: 0x00004E01, + 5498: 0x00004E03, + 5499: 0x00004E43, + 5500: 0x00004E5D, + 5501: 0x00004E86, + 5502: 0x00004E8C, + 5503: 0x00004EBA, + 5504: 0x0000513F, + 5505: 0x00005165, + 5506: 0x0000516B, + 5507: 0x000051E0, + 5508: 0x00005200, + 5509: 0x00005201, + 5510: 0x0000529B, + 5511: 0x00005315, + 5512: 0x00005341, + 5513: 0x0000535C, + 5514: 0x000053C8, + 5515: 0x00004E09, + 5516: 0x00004E0B, + 5517: 0x00004E08, + 5518: 0x00004E0A, + 5519: 0x00004E2B, + 5520: 0x00004E38, + 5521: 0x000051E1, + 5522: 0x00004E45, + 5523: 0x00004E48, + 5524: 0x00004E5F, + 5525: 0x00004E5E, + 5526: 0x00004E8E, + 5527: 0x00004EA1, + 5528: 0x00005140, + 5529: 0x00005203, + 5530: 0x000052FA, + 5531: 0x00005343, + 5532: 0x000053C9, + 5533: 0x000053E3, + 5534: 0x0000571F, + 5535: 0x000058EB, + 5536: 0x00005915, + 5537: 0x00005927, + 5538: 0x00005973, + 5539: 0x00005B50, + 5540: 0x00005B51, + 5541: 0x00005B53, + 5542: 0x00005BF8, + 5543: 0x00005C0F, + 5544: 0x00005C22, + 5545: 0x00005C38, + 5546: 0x00005C71, + 5547: 0x00005DDD, + 5548: 0x00005DE5, + 5549: 0x00005DF1, + 5550: 0x00005DF2, + 5551: 0x00005DF3, + 5552: 0x00005DFE, + 5553: 0x00005E72, + 5554: 0x00005EFE, + 5555: 0x00005F0B, + 5556: 0x00005F13, + 5557: 0x0000624D, + 5558: 0x00004E11, + 5559: 0x00004E10, + 5560: 0x00004E0D, + 5561: 0x00004E2D, + 5562: 0x00004E30, + 5563: 0x00004E39, + 5564: 0x00004E4B, + 5565: 0x00005C39, + 5566: 0x00004E88, + 5567: 0x00004E91, + 5568: 0x00004E95, + 5569: 0x00004E92, + 5570: 0x00004E94, + 5571: 0x00004EA2, + 5572: 0x00004EC1, + 5573: 0x00004EC0, + 5574: 0x00004EC3, + 5575: 0x00004EC6, + 5576: 0x00004EC7, + 5577: 0x00004ECD, + 5578: 0x00004ECA, + 5579: 0x00004ECB, + 5580: 0x00004EC4, + 5581: 0x00005143, + 5582: 0x00005141, + 5583: 0x00005167, + 5584: 0x0000516D, + 5585: 0x0000516E, + 5586: 0x0000516C, + 5587: 0x00005197, + 5588: 0x000051F6, + 5589: 0x00005206, + 5590: 0x00005207, + 5591: 0x00005208, + 5592: 0x000052FB, + 5593: 0x000052FE, + 5594: 0x000052FF, + 5595: 0x00005316, + 5596: 0x00005339, + 5597: 0x00005348, + 5598: 0x00005347, + 5599: 0x00005345, + 5600: 0x0000535E, + 5601: 0x00005384, + 5602: 0x000053CB, + 5603: 0x000053CA, + 5604: 0x000053CD, + 5605: 0x000058EC, + 5606: 0x00005929, + 5607: 0x0000592B, + 5608: 0x0000592A, + 5609: 0x0000592D, + 5610: 0x00005B54, + 5611: 0x00005C11, + 5612: 0x00005C24, + 5613: 0x00005C3A, + 5614: 0x00005C6F, + 5615: 0x00005DF4, + 5616: 0x00005E7B, + 5617: 0x00005EFF, + 5618: 0x00005F14, + 5619: 0x00005F15, + 5620: 0x00005FC3, + 5621: 0x00006208, + 5622: 0x00006236, + 5623: 0x0000624B, + 5624: 0x0000624E, + 5625: 0x0000652F, + 5626: 0x00006587, + 5627: 0x00006597, + 5628: 0x000065A4, + 5629: 0x000065B9, + 5630: 0x000065E5, + 5631: 0x000066F0, + 5632: 0x00006708, + 5633: 0x00006728, + 5634: 0x00006B20, + 5635: 0x00006B62, + 5636: 0x00006B79, + 5637: 0x00006BCB, + 5638: 0x00006BD4, + 5639: 0x00006BDB, + 5640: 0x00006C0F, + 5641: 0x00006C34, + 5642: 0x0000706B, + 5643: 0x0000722A, + 5644: 0x00007236, + 5645: 0x0000723B, + 5646: 0x00007247, + 5647: 0x00007259, + 5648: 0x0000725B, + 5649: 0x000072AC, + 5650: 0x0000738B, + 5651: 0x00004E19, + 5652: 0x00004E16, + 5653: 0x00004E15, + 5654: 0x00004E14, + 5655: 0x00004E18, + 5656: 0x00004E3B, + 5657: 0x00004E4D, + 5658: 0x00004E4F, + 5659: 0x00004E4E, + 5660: 0x00004EE5, + 5661: 0x00004ED8, + 5662: 0x00004ED4, + 5663: 0x00004ED5, + 5664: 0x00004ED6, + 5665: 0x00004ED7, + 5666: 0x00004EE3, + 5667: 0x00004EE4, + 5668: 0x00004ED9, + 5669: 0x00004EDE, + 5670: 0x00005145, + 5671: 0x00005144, + 5672: 0x00005189, + 5673: 0x0000518A, + 5674: 0x000051AC, + 5675: 0x000051F9, + 5676: 0x000051FA, + 5677: 0x000051F8, + 5678: 0x0000520A, + 5679: 0x000052A0, + 5680: 0x0000529F, + 5681: 0x00005305, + 5682: 0x00005306, + 5683: 0x00005317, + 5684: 0x0000531D, + 5685: 0x00004EDF, + 5686: 0x0000534A, + 5687: 0x00005349, + 5688: 0x00005361, + 5689: 0x00005360, + 5690: 0x0000536F, + 5691: 0x0000536E, + 5692: 0x000053BB, + 5693: 0x000053EF, + 5694: 0x000053E4, + 5695: 0x000053F3, + 5696: 0x000053EC, + 5697: 0x000053EE, + 5698: 0x000053E9, + 5699: 0x000053E8, + 5700: 0x000053FC, + 5701: 0x000053F8, + 5702: 0x000053F5, + 5703: 0x000053EB, + 5704: 0x000053E6, + 5705: 0x000053EA, + 5706: 0x000053F2, + 5707: 0x000053F1, + 5708: 0x000053F0, + 5709: 0x000053E5, + 5710: 0x000053ED, + 5711: 0x000053FB, + 5712: 0x000056DB, + 5713: 0x000056DA, + 5714: 0x00005916, + 5715: 0x0000592E, + 5716: 0x00005931, + 5717: 0x00005974, + 5718: 0x00005976, + 5719: 0x00005B55, + 5720: 0x00005B83, + 5721: 0x00005C3C, + 5722: 0x00005DE8, + 5723: 0x00005DE7, + 5724: 0x00005DE6, + 5725: 0x00005E02, + 5726: 0x00005E03, + 5727: 0x00005E73, + 5728: 0x00005E7C, + 5729: 0x00005F01, + 5730: 0x00005F18, + 5731: 0x00005F17, + 5732: 0x00005FC5, + 5733: 0x0000620A, + 5734: 0x00006253, + 5735: 0x00006254, + 5736: 0x00006252, + 5737: 0x00006251, + 5738: 0x000065A5, + 5739: 0x000065E6, + 5740: 0x0000672E, + 5741: 0x0000672C, + 5742: 0x0000672A, + 5743: 0x0000672B, + 5744: 0x0000672D, + 5745: 0x00006B63, + 5746: 0x00006BCD, + 5747: 0x00006C11, + 5748: 0x00006C10, + 5749: 0x00006C38, + 5750: 0x00006C41, + 5751: 0x00006C40, + 5752: 0x00006C3E, + 5753: 0x000072AF, + 5754: 0x00007384, + 5755: 0x00007389, + 5756: 0x000074DC, + 5757: 0x000074E6, + 5758: 0x00007518, + 5759: 0x0000751F, + 5760: 0x00007528, + 5761: 0x00007529, + 5762: 0x00007530, + 5763: 0x00007531, + 5764: 0x00007532, + 5765: 0x00007533, + 5766: 0x0000758B, + 5767: 0x0000767D, + 5768: 0x000076AE, + 5769: 0x000076BF, + 5770: 0x000076EE, + 5771: 0x000077DB, + 5772: 0x000077E2, + 5773: 0x000077F3, + 5774: 0x0000793A, + 5775: 0x000079BE, + 5776: 0x00007A74, + 5777: 0x00007ACB, + 5778: 0x00004E1E, + 5779: 0x00004E1F, + 5780: 0x00004E52, + 5781: 0x00004E53, + 5782: 0x00004E69, + 5783: 0x00004E99, + 5784: 0x00004EA4, + 5785: 0x00004EA6, + 5786: 0x00004EA5, + 5787: 0x00004EFF, + 5788: 0x00004F09, + 5789: 0x00004F19, + 5790: 0x00004F0A, + 5791: 0x00004F15, + 5792: 0x00004F0D, + 5793: 0x00004F10, + 5794: 0x00004F11, + 5795: 0x00004F0F, + 5796: 0x00004EF2, + 5797: 0x00004EF6, + 5798: 0x00004EFB, + 5799: 0x00004EF0, + 5800: 0x00004EF3, + 5801: 0x00004EFD, + 5802: 0x00004F01, + 5803: 0x00004F0B, + 5804: 0x00005149, + 5805: 0x00005147, + 5806: 0x00005146, + 5807: 0x00005148, + 5808: 0x00005168, + 5809: 0x00005171, + 5810: 0x0000518D, + 5811: 0x000051B0, + 5812: 0x00005217, + 5813: 0x00005211, + 5814: 0x00005212, + 5815: 0x0000520E, + 5816: 0x00005216, + 5817: 0x000052A3, + 5818: 0x00005308, + 5819: 0x00005321, + 5820: 0x00005320, + 5821: 0x00005370, + 5822: 0x00005371, + 5823: 0x00005409, + 5824: 0x0000540F, + 5825: 0x0000540C, + 5826: 0x0000540A, + 5827: 0x00005410, + 5828: 0x00005401, + 5829: 0x0000540B, + 5830: 0x00005404, + 5831: 0x00005411, + 5832: 0x0000540D, + 5833: 0x00005408, + 5834: 0x00005403, + 5835: 0x0000540E, + 5836: 0x00005406, + 5837: 0x00005412, + 5838: 0x000056E0, + 5839: 0x000056DE, + 5840: 0x000056DD, + 5841: 0x00005733, + 5842: 0x00005730, + 5843: 0x00005728, + 5844: 0x0000572D, + 5845: 0x0000572C, + 5846: 0x0000572F, + 5847: 0x00005729, + 5848: 0x00005919, + 5849: 0x0000591A, + 5850: 0x00005937, + 5851: 0x00005938, + 5852: 0x00005984, + 5853: 0x00005978, + 5854: 0x00005983, + 5855: 0x0000597D, + 5856: 0x00005979, + 5857: 0x00005982, + 5858: 0x00005981, + 5859: 0x00005B57, + 5860: 0x00005B58, + 5861: 0x00005B87, + 5862: 0x00005B88, + 5863: 0x00005B85, + 5864: 0x00005B89, + 5865: 0x00005BFA, + 5866: 0x00005C16, + 5867: 0x00005C79, + 5868: 0x00005DDE, + 5869: 0x00005E06, + 5870: 0x00005E76, + 5871: 0x00005E74, + 5872: 0x00005F0F, + 5873: 0x00005F1B, + 5874: 0x00005FD9, + 5875: 0x00005FD6, + 5876: 0x0000620E, + 5877: 0x0000620C, + 5878: 0x0000620D, + 5879: 0x00006210, + 5880: 0x00006263, + 5881: 0x0000625B, + 5882: 0x00006258, + 5883: 0x00006536, + 5884: 0x000065E9, + 5885: 0x000065E8, + 5886: 0x000065EC, + 5887: 0x000065ED, + 5888: 0x000066F2, + 5889: 0x000066F3, + 5890: 0x00006709, + 5891: 0x0000673D, + 5892: 0x00006734, + 5893: 0x00006731, + 5894: 0x00006735, + 5895: 0x00006B21, + 5896: 0x00006B64, + 5897: 0x00006B7B, + 5898: 0x00006C16, + 5899: 0x00006C5D, + 5900: 0x00006C57, + 5901: 0x00006C59, + 5902: 0x00006C5F, + 5903: 0x00006C60, + 5904: 0x00006C50, + 5905: 0x00006C55, + 5906: 0x00006C61, + 5907: 0x00006C5B, + 5908: 0x00006C4D, + 5909: 0x00006C4E, + 5910: 0x00007070, + 5911: 0x0000725F, + 5912: 0x0000725D, + 5913: 0x0000767E, + 5914: 0x00007AF9, + 5915: 0x00007C73, + 5916: 0x00007CF8, + 5917: 0x00007F36, + 5918: 0x00007F8A, + 5919: 0x00007FBD, + 5920: 0x00008001, + 5921: 0x00008003, + 5922: 0x0000800C, + 5923: 0x00008012, + 5924: 0x00008033, + 5925: 0x0000807F, + 5926: 0x00008089, + 5927: 0x0000808B, + 5928: 0x0000808C, + 5929: 0x000081E3, + 5930: 0x000081EA, + 5931: 0x000081F3, + 5932: 0x000081FC, + 5933: 0x0000820C, + 5934: 0x0000821B, + 5935: 0x0000821F, + 5936: 0x0000826E, + 5937: 0x00008272, + 5938: 0x0000827E, + 5939: 0x0000866B, + 5940: 0x00008840, + 5941: 0x0000884C, + 5942: 0x00008863, + 5943: 0x0000897F, + 5944: 0x00009621, + 5945: 0x00004E32, + 5946: 0x00004EA8, + 5947: 0x00004F4D, + 5948: 0x00004F4F, + 5949: 0x00004F47, + 5950: 0x00004F57, + 5951: 0x00004F5E, + 5952: 0x00004F34, + 5953: 0x00004F5B, + 5954: 0x00004F55, + 5955: 0x00004F30, + 5956: 0x00004F50, + 5957: 0x00004F51, + 5958: 0x00004F3D, + 5959: 0x00004F3A, + 5960: 0x00004F38, + 5961: 0x00004F43, + 5962: 0x00004F54, + 5963: 0x00004F3C, + 5964: 0x00004F46, + 5965: 0x00004F63, + 5966: 0x00004F5C, + 5967: 0x00004F60, + 5968: 0x00004F2F, + 5969: 0x00004F4E, + 5970: 0x00004F36, + 5971: 0x00004F59, + 5972: 0x00004F5D, + 5973: 0x00004F48, + 5974: 0x00004F5A, + 5975: 0x0000514C, + 5976: 0x0000514B, + 5977: 0x0000514D, + 5978: 0x00005175, + 5979: 0x000051B6, + 5980: 0x000051B7, + 5981: 0x00005225, + 5982: 0x00005224, + 5983: 0x00005229, + 5984: 0x0000522A, + 5985: 0x00005228, + 5986: 0x000052AB, + 5987: 0x000052A9, + 5988: 0x000052AA, + 5989: 0x000052AC, + 5990: 0x00005323, + 5991: 0x00005373, + 5992: 0x00005375, + 5993: 0x0000541D, + 5994: 0x0000542D, + 5995: 0x0000541E, + 5996: 0x0000543E, + 5997: 0x00005426, + 5998: 0x0000544E, + 5999: 0x00005427, + 6000: 0x00005446, + 6001: 0x00005443, + 6002: 0x00005433, + 6003: 0x00005448, + 6004: 0x00005442, + 6005: 0x0000541B, + 6006: 0x00005429, + 6007: 0x0000544A, + 6008: 0x00005439, + 6009: 0x0000543B, + 6010: 0x00005438, + 6011: 0x0000542E, + 6012: 0x00005435, + 6013: 0x00005436, + 6014: 0x00005420, + 6015: 0x0000543C, + 6016: 0x00005440, + 6017: 0x00005431, + 6018: 0x0000542B, + 6019: 0x0000541F, + 6020: 0x0000542C, + 6021: 0x000056EA, + 6022: 0x000056F0, + 6023: 0x000056E4, + 6024: 0x000056EB, + 6025: 0x0000574A, + 6026: 0x00005751, + 6027: 0x00005740, + 6028: 0x0000574D, + 6029: 0x00005747, + 6030: 0x0000574E, + 6031: 0x0000573E, + 6032: 0x00005750, + 6033: 0x0000574F, + 6034: 0x0000573B, + 6035: 0x000058EF, + 6036: 0x0000593E, + 6037: 0x0000599D, + 6038: 0x00005992, + 6039: 0x000059A8, + 6040: 0x0000599E, + 6041: 0x000059A3, + 6042: 0x00005999, + 6043: 0x00005996, + 6044: 0x0000598D, + 6045: 0x000059A4, + 6046: 0x00005993, + 6047: 0x0000598A, + 6048: 0x000059A5, + 6049: 0x00005B5D, + 6050: 0x00005B5C, + 6051: 0x00005B5A, + 6052: 0x00005B5B, + 6053: 0x00005B8C, + 6054: 0x00005B8B, + 6055: 0x00005B8F, + 6056: 0x00005C2C, + 6057: 0x00005C40, + 6058: 0x00005C41, + 6059: 0x00005C3F, + 6060: 0x00005C3E, + 6061: 0x00005C90, + 6062: 0x00005C91, + 6063: 0x00005C94, + 6064: 0x00005C8C, + 6065: 0x00005DEB, + 6066: 0x00005E0C, + 6067: 0x00005E8F, + 6068: 0x00005E87, + 6069: 0x00005E8A, + 6070: 0x00005EF7, + 6071: 0x00005F04, + 6072: 0x00005F1F, + 6073: 0x00005F64, + 6074: 0x00005F62, + 6075: 0x00005F77, + 6076: 0x00005F79, + 6077: 0x00005FD8, + 6078: 0x00005FCC, + 6079: 0x00005FD7, + 6080: 0x00005FCD, + 6081: 0x00005FF1, + 6082: 0x00005FEB, + 6083: 0x00005FF8, + 6084: 0x00005FEA, + 6085: 0x00006212, + 6086: 0x00006211, + 6087: 0x00006284, + 6088: 0x00006297, + 6089: 0x00006296, + 6090: 0x00006280, + 6091: 0x00006276, + 6092: 0x00006289, + 6093: 0x0000626D, + 6094: 0x0000628A, + 6095: 0x0000627C, + 6096: 0x0000627E, + 6097: 0x00006279, + 6098: 0x00006273, + 6099: 0x00006292, + 6100: 0x0000626F, + 6101: 0x00006298, + 6102: 0x0000626E, + 6103: 0x00006295, + 6104: 0x00006293, + 6105: 0x00006291, + 6106: 0x00006286, + 6107: 0x00006539, + 6108: 0x0000653B, + 6109: 0x00006538, + 6110: 0x000065F1, + 6111: 0x000066F4, + 6112: 0x0000675F, + 6113: 0x0000674E, + 6114: 0x0000674F, + 6115: 0x00006750, + 6116: 0x00006751, + 6117: 0x0000675C, + 6118: 0x00006756, + 6119: 0x0000675E, + 6120: 0x00006749, + 6121: 0x00006746, + 6122: 0x00006760, + 6123: 0x00006753, + 6124: 0x00006757, + 6125: 0x00006B65, + 6126: 0x00006BCF, + 6127: 0x00006C42, + 6128: 0x00006C5E, + 6129: 0x00006C99, + 6130: 0x00006C81, + 6131: 0x00006C88, + 6132: 0x00006C89, + 6133: 0x00006C85, + 6134: 0x00006C9B, + 6135: 0x00006C6A, + 6136: 0x00006C7A, + 6137: 0x00006C90, + 6138: 0x00006C70, + 6139: 0x00006C8C, + 6140: 0x00006C68, + 6141: 0x00006C96, + 6142: 0x00006C92, + 6143: 0x00006C7D, + 6144: 0x00006C83, + 6145: 0x00006C72, + 6146: 0x00006C7E, + 6147: 0x00006C74, + 6148: 0x00006C86, + 6149: 0x00006C76, + 6150: 0x00006C8D, + 6151: 0x00006C94, + 6152: 0x00006C98, + 6153: 0x00006C82, + 6154: 0x00007076, + 6155: 0x0000707C, + 6156: 0x0000707D, + 6157: 0x00007078, + 6158: 0x00007262, + 6159: 0x00007261, + 6160: 0x00007260, + 6161: 0x000072C4, + 6162: 0x000072C2, + 6163: 0x00007396, + 6164: 0x0000752C, + 6165: 0x0000752B, + 6166: 0x00007537, + 6167: 0x00007538, + 6168: 0x00007682, + 6169: 0x000076EF, + 6170: 0x000077E3, + 6171: 0x000079C1, + 6172: 0x000079C0, + 6173: 0x000079BF, + 6174: 0x00007A76, + 6175: 0x00007CFB, + 6176: 0x00007F55, + 6177: 0x00008096, + 6178: 0x00008093, + 6179: 0x0000809D, + 6180: 0x00008098, + 6181: 0x0000809B, + 6182: 0x0000809A, + 6183: 0x000080B2, + 6184: 0x0000826F, + 6185: 0x00008292, + 6186: 0x0000828B, + 6187: 0x0000828D, + 6188: 0x0000898B, + 6189: 0x000089D2, + 6190: 0x00008A00, + 6191: 0x00008C37, + 6192: 0x00008C46, + 6193: 0x00008C55, + 6194: 0x00008C9D, + 6195: 0x00008D64, + 6196: 0x00008D70, + 6197: 0x00008DB3, + 6198: 0x00008EAB, + 6199: 0x00008ECA, + 6200: 0x00008F9B, + 6201: 0x00008FB0, + 6202: 0x00008FC2, + 6203: 0x00008FC6, + 6204: 0x00008FC5, + 6205: 0x00008FC4, + 6206: 0x00005DE1, + 6207: 0x00009091, + 6208: 0x000090A2, + 6209: 0x000090AA, + 6210: 0x000090A6, + 6211: 0x000090A3, + 6212: 0x00009149, + 6213: 0x000091C6, + 6214: 0x000091CC, + 6215: 0x00009632, + 6216: 0x0000962E, + 6217: 0x00009631, + 6218: 0x0000962A, + 6219: 0x0000962C, + 6220: 0x00004E26, + 6221: 0x00004E56, + 6222: 0x00004E73, + 6223: 0x00004E8B, + 6224: 0x00004E9B, + 6225: 0x00004E9E, + 6226: 0x00004EAB, + 6227: 0x00004EAC, + 6228: 0x00004F6F, + 6229: 0x00004F9D, + 6230: 0x00004F8D, + 6231: 0x00004F73, + 6232: 0x00004F7F, + 6233: 0x00004F6C, + 6234: 0x00004F9B, + 6235: 0x00004F8B, + 6236: 0x00004F86, + 6237: 0x00004F83, + 6238: 0x00004F70, + 6239: 0x00004F75, + 6240: 0x00004F88, + 6241: 0x00004F69, + 6242: 0x00004F7B, + 6243: 0x00004F96, + 6244: 0x00004F7E, + 6245: 0x00004F8F, + 6246: 0x00004F91, + 6247: 0x00004F7A, + 6248: 0x00005154, + 6249: 0x00005152, + 6250: 0x00005155, + 6251: 0x00005169, + 6252: 0x00005177, + 6253: 0x00005176, + 6254: 0x00005178, + 6255: 0x000051BD, + 6256: 0x000051FD, + 6257: 0x0000523B, + 6258: 0x00005238, + 6259: 0x00005237, + 6260: 0x0000523A, + 6261: 0x00005230, + 6262: 0x0000522E, + 6263: 0x00005236, + 6264: 0x00005241, + 6265: 0x000052BE, + 6266: 0x000052BB, + 6267: 0x00005352, + 6268: 0x00005354, + 6269: 0x00005353, + 6270: 0x00005351, + 6271: 0x00005366, + 6272: 0x00005377, + 6273: 0x00005378, + 6274: 0x00005379, + 6275: 0x000053D6, + 6276: 0x000053D4, + 6277: 0x000053D7, + 6278: 0x00005473, + 6279: 0x00005475, + 6280: 0x00005496, + 6281: 0x00005478, + 6282: 0x00005495, + 6283: 0x00005480, + 6284: 0x0000547B, + 6285: 0x00005477, + 6286: 0x00005484, + 6287: 0x00005492, + 6288: 0x00005486, + 6289: 0x0000547C, + 6290: 0x00005490, + 6291: 0x00005471, + 6292: 0x00005476, + 6293: 0x0000548C, + 6294: 0x0000549A, + 6295: 0x00005462, + 6296: 0x00005468, + 6297: 0x0000548B, + 6298: 0x0000547D, + 6299: 0x0000548E, + 6300: 0x000056FA, + 6301: 0x00005783, + 6302: 0x00005777, + 6303: 0x0000576A, + 6304: 0x00005769, + 6305: 0x00005761, + 6306: 0x00005766, + 6307: 0x00005764, + 6308: 0x0000577C, + 6309: 0x0000591C, + 6310: 0x00005949, + 6311: 0x00005947, + 6312: 0x00005948, + 6313: 0x00005944, + 6314: 0x00005954, + 6315: 0x000059BE, + 6316: 0x000059BB, + 6317: 0x000059D4, + 6318: 0x000059B9, + 6319: 0x000059AE, + 6320: 0x000059D1, + 6321: 0x000059C6, + 6322: 0x000059D0, + 6323: 0x000059CD, + 6324: 0x000059CB, + 6325: 0x000059D3, + 6326: 0x000059CA, + 6327: 0x000059AF, + 6328: 0x000059B3, + 6329: 0x000059D2, + 6330: 0x000059C5, + 6331: 0x00005B5F, + 6332: 0x00005B64, + 6333: 0x00005B63, + 6334: 0x00005B97, + 6335: 0x00005B9A, + 6336: 0x00005B98, + 6337: 0x00005B9C, + 6338: 0x00005B99, + 6339: 0x00005B9B, + 6340: 0x00005C1A, + 6341: 0x00005C48, + 6342: 0x00005C45, + 6343: 0x00005C46, + 6344: 0x00005CB7, + 6345: 0x00005CA1, + 6346: 0x00005CB8, + 6347: 0x00005CA9, + 6348: 0x00005CAB, + 6349: 0x00005CB1, + 6350: 0x00005CB3, + 6351: 0x00005E18, + 6352: 0x00005E1A, + 6353: 0x00005E16, + 6354: 0x00005E15, + 6355: 0x00005E1B, + 6356: 0x00005E11, + 6357: 0x00005E78, + 6358: 0x00005E9A, + 6359: 0x00005E97, + 6360: 0x00005E9C, + 6361: 0x00005E95, + 6362: 0x00005E96, + 6363: 0x00005EF6, + 6364: 0x00005F26, + 6365: 0x00005F27, + 6366: 0x00005F29, + 6367: 0x00005F80, + 6368: 0x00005F81, + 6369: 0x00005F7F, + 6370: 0x00005F7C, + 6371: 0x00005FDD, + 6372: 0x00005FE0, + 6373: 0x00005FFD, + 6374: 0x00005FF5, + 6375: 0x00005FFF, + 6376: 0x0000600F, + 6377: 0x00006014, + 6378: 0x0000602F, + 6379: 0x00006035, + 6380: 0x00006016, + 6381: 0x0000602A, + 6382: 0x00006015, + 6383: 0x00006021, + 6384: 0x00006027, + 6385: 0x00006029, + 6386: 0x0000602B, + 6387: 0x0000601B, + 6388: 0x00006216, + 6389: 0x00006215, + 6390: 0x0000623F, + 6391: 0x0000623E, + 6392: 0x00006240, + 6393: 0x0000627F, + 6394: 0x000062C9, + 6395: 0x000062CC, + 6396: 0x000062C4, + 6397: 0x000062BF, + 6398: 0x000062C2, + 6399: 0x000062B9, + 6400: 0x000062D2, + 6401: 0x000062DB, + 6402: 0x000062AB, + 6403: 0x000062D3, + 6404: 0x000062D4, + 6405: 0x000062CB, + 6406: 0x000062C8, + 6407: 0x000062A8, + 6408: 0x000062BD, + 6409: 0x000062BC, + 6410: 0x000062D0, + 6411: 0x000062D9, + 6412: 0x000062C7, + 6413: 0x000062CD, + 6414: 0x000062B5, + 6415: 0x000062DA, + 6416: 0x000062B1, + 6417: 0x000062D8, + 6418: 0x000062D6, + 6419: 0x000062D7, + 6420: 0x000062C6, + 6421: 0x000062AC, + 6422: 0x000062CE, + 6423: 0x0000653E, + 6424: 0x000065A7, + 6425: 0x000065BC, + 6426: 0x000065FA, + 6427: 0x00006614, + 6428: 0x00006613, + 6429: 0x0000660C, + 6430: 0x00006606, + 6431: 0x00006602, + 6432: 0x0000660E, + 6433: 0x00006600, + 6434: 0x0000660F, + 6435: 0x00006615, + 6436: 0x0000660A, + 6437: 0x00006607, + 6438: 0x0000670D, + 6439: 0x0000670B, + 6440: 0x0000676D, + 6441: 0x0000678B, + 6442: 0x00006795, + 6443: 0x00006771, + 6444: 0x0000679C, + 6445: 0x00006773, + 6446: 0x00006777, + 6447: 0x00006787, + 6448: 0x0000679D, + 6449: 0x00006797, + 6450: 0x0000676F, + 6451: 0x00006770, + 6452: 0x0000677F, + 6453: 0x00006789, + 6454: 0x0000677E, + 6455: 0x00006790, + 6456: 0x00006775, + 6457: 0x0000679A, + 6458: 0x00006793, + 6459: 0x0000677C, + 6460: 0x0000676A, + 6461: 0x00006772, + 6462: 0x00006B23, + 6463: 0x00006B66, + 6464: 0x00006B67, + 6465: 0x00006B7F, + 6466: 0x00006C13, + 6467: 0x00006C1B, + 6468: 0x00006CE3, + 6469: 0x00006CE8, + 6470: 0x00006CF3, + 6471: 0x00006CB1, + 6472: 0x00006CCC, + 6473: 0x00006CE5, + 6474: 0x00006CB3, + 6475: 0x00006CBD, + 6476: 0x00006CBE, + 6477: 0x00006CBC, + 6478: 0x00006CE2, + 6479: 0x00006CAB, + 6480: 0x00006CD5, + 6481: 0x00006CD3, + 6482: 0x00006CB8, + 6483: 0x00006CC4, + 6484: 0x00006CB9, + 6485: 0x00006CC1, + 6486: 0x00006CAE, + 6487: 0x00006CD7, + 6488: 0x00006CC5, + 6489: 0x00006CF1, + 6490: 0x00006CBF, + 6491: 0x00006CBB, + 6492: 0x00006CE1, + 6493: 0x00006CDB, + 6494: 0x00006CCA, + 6495: 0x00006CAC, + 6496: 0x00006CEF, + 6497: 0x00006CDC, + 6498: 0x00006CD6, + 6499: 0x00006CE0, + 6500: 0x00007095, + 6501: 0x0000708E, + 6502: 0x00007092, + 6503: 0x0000708A, + 6504: 0x00007099, + 6505: 0x0000722C, + 6506: 0x0000722D, + 6507: 0x00007238, + 6508: 0x00007248, + 6509: 0x00007267, + 6510: 0x00007269, + 6511: 0x000072C0, + 6512: 0x000072CE, + 6513: 0x000072D9, + 6514: 0x000072D7, + 6515: 0x000072D0, + 6516: 0x000073A9, + 6517: 0x000073A8, + 6518: 0x0000739F, + 6519: 0x000073AB, + 6520: 0x000073A5, + 6521: 0x0000753D, + 6522: 0x0000759D, + 6523: 0x00007599, + 6524: 0x0000759A, + 6525: 0x00007684, + 6526: 0x000076C2, + 6527: 0x000076F2, + 6528: 0x000076F4, + 6529: 0x000077E5, + 6530: 0x000077FD, + 6531: 0x0000793E, + 6532: 0x00007940, + 6533: 0x00007941, + 6534: 0x000079C9, + 6535: 0x000079C8, + 6536: 0x00007A7A, + 6537: 0x00007A79, + 6538: 0x00007AFA, + 6539: 0x00007CFE, + 6540: 0x00007F54, + 6541: 0x00007F8C, + 6542: 0x00007F8B, + 6543: 0x00008005, + 6544: 0x000080BA, + 6545: 0x000080A5, + 6546: 0x000080A2, + 6547: 0x000080B1, + 6548: 0x000080A1, + 6549: 0x000080AB, + 6550: 0x000080A9, + 6551: 0x000080B4, + 6552: 0x000080AA, + 6553: 0x000080AF, + 6554: 0x000081E5, + 6555: 0x000081FE, + 6556: 0x0000820D, + 6557: 0x000082B3, + 6558: 0x0000829D, + 6559: 0x00008299, + 6560: 0x000082AD, + 6561: 0x000082BD, + 6562: 0x0000829F, + 6563: 0x000082B9, + 6564: 0x000082B1, + 6565: 0x000082AC, + 6566: 0x000082A5, + 6567: 0x000082AF, + 6568: 0x000082B8, + 6569: 0x000082A3, + 6570: 0x000082B0, + 6571: 0x000082BE, + 6572: 0x000082B7, + 6573: 0x0000864E, + 6574: 0x00008671, + 6575: 0x0000521D, + 6576: 0x00008868, + 6577: 0x00008ECB, + 6578: 0x00008FCE, + 6579: 0x00008FD4, + 6580: 0x00008FD1, + 6581: 0x000090B5, + 6582: 0x000090B8, + 6583: 0x000090B1, + 6584: 0x000090B6, + 6585: 0x000091C7, + 6586: 0x000091D1, + 6587: 0x00009577, + 6588: 0x00009580, + 6589: 0x0000961C, + 6590: 0x00009640, + 6591: 0x0000963F, + 6592: 0x0000963B, + 6593: 0x00009644, + 6594: 0x00009642, + 6595: 0x000096B9, + 6596: 0x000096E8, + 6597: 0x00009752, + 6598: 0x0000975E, + 6599: 0x00004E9F, + 6600: 0x00004EAD, + 6601: 0x00004EAE, + 6602: 0x00004FE1, + 6603: 0x00004FB5, + 6604: 0x00004FAF, + 6605: 0x00004FBF, + 6606: 0x00004FE0, + 6607: 0x00004FD1, + 6608: 0x00004FCF, + 6609: 0x00004FDD, + 6610: 0x00004FC3, + 6611: 0x00004FB6, + 6612: 0x00004FD8, + 6613: 0x00004FDF, + 6614: 0x00004FCA, + 6615: 0x00004FD7, + 6616: 0x00004FAE, + 6617: 0x00004FD0, + 6618: 0x00004FC4, + 6619: 0x00004FC2, + 6620: 0x00004FDA, + 6621: 0x00004FCE, + 6622: 0x00004FDE, + 6623: 0x00004FB7, + 6624: 0x00005157, + 6625: 0x00005192, + 6626: 0x00005191, + 6627: 0x000051A0, + 6628: 0x0000524E, + 6629: 0x00005243, + 6630: 0x0000524A, + 6631: 0x0000524D, + 6632: 0x0000524C, + 6633: 0x0000524B, + 6634: 0x00005247, + 6635: 0x000052C7, + 6636: 0x000052C9, + 6637: 0x000052C3, + 6638: 0x000052C1, + 6639: 0x0000530D, + 6640: 0x00005357, + 6641: 0x0000537B, + 6642: 0x0000539A, + 6643: 0x000053DB, + 6644: 0x000054AC, + 6645: 0x000054C0, + 6646: 0x000054A8, + 6647: 0x000054CE, + 6648: 0x000054C9, + 6649: 0x000054B8, + 6650: 0x000054A6, + 6651: 0x000054B3, + 6652: 0x000054C7, + 6653: 0x000054C2, + 6654: 0x000054BD, + 6655: 0x000054AA, + 6656: 0x000054C1, + 6657: 0x000054C4, + 6658: 0x000054C8, + 6659: 0x000054AF, + 6660: 0x000054AB, + 6661: 0x000054B1, + 6662: 0x000054BB, + 6663: 0x000054A9, + 6664: 0x000054A7, + 6665: 0x000054BF, + 6666: 0x000056FF, + 6667: 0x00005782, + 6668: 0x0000578B, + 6669: 0x000057A0, + 6670: 0x000057A3, + 6671: 0x000057A2, + 6672: 0x000057CE, + 6673: 0x000057AE, + 6674: 0x00005793, + 6675: 0x00005955, + 6676: 0x00005951, + 6677: 0x0000594F, + 6678: 0x0000594E, + 6679: 0x00005950, + 6680: 0x000059DC, + 6681: 0x000059D8, + 6682: 0x000059FF, + 6683: 0x000059E3, + 6684: 0x000059E8, + 6685: 0x00005A03, + 6686: 0x000059E5, + 6687: 0x000059EA, + 6688: 0x000059DA, + 6689: 0x000059E6, + 6690: 0x00005A01, + 6691: 0x000059FB, + 6692: 0x00005B69, + 6693: 0x00005BA3, + 6694: 0x00005BA6, + 6695: 0x00005BA4, + 6696: 0x00005BA2, + 6697: 0x00005BA5, + 6698: 0x00005C01, + 6699: 0x00005C4E, + 6700: 0x00005C4F, + 6701: 0x00005C4D, + 6702: 0x00005C4B, + 6703: 0x00005CD9, + 6704: 0x00005CD2, + 6705: 0x00005DF7, + 6706: 0x00005E1D, + 6707: 0x00005E25, + 6708: 0x00005E1F, + 6709: 0x00005E7D, + 6710: 0x00005EA0, + 6711: 0x00005EA6, + 6712: 0x00005EFA, + 6713: 0x00005F08, + 6714: 0x00005F2D, + 6715: 0x00005F65, + 6716: 0x00005F88, + 6717: 0x00005F85, + 6718: 0x00005F8A, + 6719: 0x00005F8B, + 6720: 0x00005F87, + 6721: 0x00005F8C, + 6722: 0x00005F89, + 6723: 0x00006012, + 6724: 0x0000601D, + 6725: 0x00006020, + 6726: 0x00006025, + 6727: 0x0000600E, + 6728: 0x00006028, + 6729: 0x0000604D, + 6730: 0x00006070, + 6731: 0x00006068, + 6732: 0x00006062, + 6733: 0x00006046, + 6734: 0x00006043, + 6735: 0x0000606C, + 6736: 0x0000606B, + 6737: 0x0000606A, + 6738: 0x00006064, + 6739: 0x00006241, + 6740: 0x000062DC, + 6741: 0x00006316, + 6742: 0x00006309, + 6743: 0x000062FC, + 6744: 0x000062ED, + 6745: 0x00006301, + 6746: 0x000062EE, + 6747: 0x000062FD, + 6748: 0x00006307, + 6749: 0x000062F1, + 6750: 0x000062F7, + 6751: 0x000062EF, + 6752: 0x000062EC, + 6753: 0x000062FE, + 6754: 0x000062F4, + 6755: 0x00006311, + 6756: 0x00006302, + 6757: 0x0000653F, + 6758: 0x00006545, + 6759: 0x000065AB, + 6760: 0x000065BD, + 6761: 0x000065E2, + 6762: 0x00006625, + 6763: 0x0000662D, + 6764: 0x00006620, + 6765: 0x00006627, + 6766: 0x0000662F, + 6767: 0x0000661F, + 6768: 0x00006628, + 6769: 0x00006631, + 6770: 0x00006624, + 6771: 0x000066F7, + 6772: 0x000067FF, + 6773: 0x000067D3, + 6774: 0x000067F1, + 6775: 0x000067D4, + 6776: 0x000067D0, + 6777: 0x000067EC, + 6778: 0x000067B6, + 6779: 0x000067AF, + 6780: 0x000067F5, + 6781: 0x000067E9, + 6782: 0x000067EF, + 6783: 0x000067C4, + 6784: 0x000067D1, + 6785: 0x000067B4, + 6786: 0x000067DA, + 6787: 0x000067E5, + 6788: 0x000067B8, + 6789: 0x000067CF, + 6790: 0x000067DE, + 6791: 0x000067F3, + 6792: 0x000067B0, + 6793: 0x000067D9, + 6794: 0x000067E2, + 6795: 0x000067DD, + 6796: 0x000067D2, + 6797: 0x00006B6A, + 6798: 0x00006B83, + 6799: 0x00006B86, + 6800: 0x00006BB5, + 6801: 0x00006BD2, + 6802: 0x00006BD7, + 6803: 0x00006C1F, + 6804: 0x00006CC9, + 6805: 0x00006D0B, + 6806: 0x00006D32, + 6807: 0x00006D2A, + 6808: 0x00006D41, + 6809: 0x00006D25, + 6810: 0x00006D0C, + 6811: 0x00006D31, + 6812: 0x00006D1E, + 6813: 0x00006D17, + 6814: 0x00006D3B, + 6815: 0x00006D3D, + 6816: 0x00006D3E, + 6817: 0x00006D36, + 6818: 0x00006D1B, + 6819: 0x00006CF5, + 6820: 0x00006D39, + 6821: 0x00006D27, + 6822: 0x00006D38, + 6823: 0x00006D29, + 6824: 0x00006D2E, + 6825: 0x00006D35, + 6826: 0x00006D0E, + 6827: 0x00006D2B, + 6828: 0x000070AB, + 6829: 0x000070BA, + 6830: 0x000070B3, + 6831: 0x000070AC, + 6832: 0x000070AF, + 6833: 0x000070AD, + 6834: 0x000070B8, + 6835: 0x000070AE, + 6836: 0x000070A4, + 6837: 0x00007230, + 6838: 0x00007272, + 6839: 0x0000726F, + 6840: 0x00007274, + 6841: 0x000072E9, + 6842: 0x000072E0, + 6843: 0x000072E1, + 6844: 0x000073B7, + 6845: 0x000073CA, + 6846: 0x000073BB, + 6847: 0x000073B2, + 6848: 0x000073CD, + 6849: 0x000073C0, + 6850: 0x000073B3, + 6851: 0x0000751A, + 6852: 0x0000752D, + 6853: 0x0000754F, + 6854: 0x0000754C, + 6855: 0x0000754E, + 6856: 0x0000754B, + 6857: 0x000075AB, + 6858: 0x000075A4, + 6859: 0x000075A5, + 6860: 0x000075A2, + 6861: 0x000075A3, + 6862: 0x00007678, + 6863: 0x00007686, + 6864: 0x00007687, + 6865: 0x00007688, + 6866: 0x000076C8, + 6867: 0x000076C6, + 6868: 0x000076C3, + 6869: 0x000076C5, + 6870: 0x00007701, + 6871: 0x000076F9, + 6872: 0x000076F8, + 6873: 0x00007709, + 6874: 0x0000770B, + 6875: 0x000076FE, + 6876: 0x000076FC, + 6877: 0x00007707, + 6878: 0x000077DC, + 6879: 0x00007802, + 6880: 0x00007814, + 6881: 0x0000780C, + 6882: 0x0000780D, + 6883: 0x00007946, + 6884: 0x00007949, + 6885: 0x00007948, + 6886: 0x00007947, + 6887: 0x000079B9, + 6888: 0x000079BA, + 6889: 0x000079D1, + 6890: 0x000079D2, + 6891: 0x000079CB, + 6892: 0x00007A7F, + 6893: 0x00007A81, + 6894: 0x00007AFF, + 6895: 0x00007AFD, + 6896: 0x00007C7D, + 6897: 0x00007D02, + 6898: 0x00007D05, + 6899: 0x00007D00, + 6900: 0x00007D09, + 6901: 0x00007D07, + 6902: 0x00007D04, + 6903: 0x00007D06, + 6904: 0x00007F38, + 6905: 0x00007F8E, + 6906: 0x00007FBF, + 6907: 0x00008004, + 6908: 0x00008010, + 6909: 0x0000800D, + 6910: 0x00008011, + 6911: 0x00008036, + 6912: 0x000080D6, + 6913: 0x000080E5, + 6914: 0x000080DA, + 6915: 0x000080C3, + 6916: 0x000080C4, + 6917: 0x000080CC, + 6918: 0x000080E1, + 6919: 0x000080DB, + 6920: 0x000080CE, + 6921: 0x000080DE, + 6922: 0x000080E4, + 6923: 0x000080DD, + 6924: 0x000081F4, + 6925: 0x00008222, + 6926: 0x000082E7, + 6927: 0x00008303, + 6928: 0x00008305, + 6929: 0x000082E3, + 6930: 0x000082DB, + 6931: 0x000082E6, + 6932: 0x00008304, + 6933: 0x000082E5, + 6934: 0x00008302, + 6935: 0x00008309, + 6936: 0x000082D2, + 6937: 0x000082D7, + 6938: 0x000082F1, + 6939: 0x00008301, + 6940: 0x000082DC, + 6941: 0x000082D4, + 6942: 0x000082D1, + 6943: 0x000082DE, + 6944: 0x000082D3, + 6945: 0x000082DF, + 6946: 0x000082EF, + 6947: 0x00008306, + 6948: 0x00008650, + 6949: 0x00008679, + 6950: 0x0000867B, + 6951: 0x0000867A, + 6952: 0x0000884D, + 6953: 0x0000886B, + 6954: 0x00008981, + 6955: 0x000089D4, + 6956: 0x00008A08, + 6957: 0x00008A02, + 6958: 0x00008A03, + 6959: 0x00008C9E, + 6960: 0x00008CA0, + 6961: 0x00008D74, + 6962: 0x00008D73, + 6963: 0x00008DB4, + 6964: 0x00008ECD, + 6965: 0x00008ECC, + 6966: 0x00008FF0, + 6967: 0x00008FE6, + 6968: 0x00008FE2, + 6969: 0x00008FEA, + 6970: 0x00008FE5, + 6971: 0x00008FED, + 6972: 0x00008FEB, + 6973: 0x00008FE4, + 6974: 0x00008FE8, + 6975: 0x000090CA, + 6976: 0x000090CE, + 6977: 0x000090C1, + 6978: 0x000090C3, + 6979: 0x0000914B, + 6980: 0x0000914A, + 6981: 0x000091CD, + 6982: 0x00009582, + 6983: 0x00009650, + 6984: 0x0000964B, + 6985: 0x0000964C, + 6986: 0x0000964D, + 6987: 0x00009762, + 6988: 0x00009769, + 6989: 0x000097CB, + 6990: 0x000097ED, + 6991: 0x000097F3, + 6992: 0x00009801, + 6993: 0x000098A8, + 6994: 0x000098DB, + 6995: 0x000098DF, + 6996: 0x00009996, + 6997: 0x00009999, + 6998: 0x00004E58, + 6999: 0x00004EB3, + 7000: 0x0000500C, + 7001: 0x0000500D, + 7002: 0x00005023, + 7003: 0x00004FEF, + 7004: 0x00005026, + 7005: 0x00005025, + 7006: 0x00004FF8, + 7007: 0x00005029, + 7008: 0x00005016, + 7009: 0x00005006, + 7010: 0x0000503C, + 7011: 0x0000501F, + 7012: 0x0000501A, + 7013: 0x00005012, + 7014: 0x00005011, + 7015: 0x00004FFA, + 7016: 0x00005000, + 7017: 0x00005014, + 7018: 0x00005028, + 7019: 0x00004FF1, + 7020: 0x00005021, + 7021: 0x0000500B, + 7022: 0x00005019, + 7023: 0x00005018, + 7024: 0x00004FF3, + 7025: 0x00004FEE, + 7026: 0x0000502D, + 7027: 0x0000502A, + 7028: 0x00004FFE, + 7029: 0x0000502B, + 7030: 0x00005009, + 7031: 0x0000517C, + 7032: 0x000051A4, + 7033: 0x000051A5, + 7034: 0x000051A2, + 7035: 0x000051CD, + 7036: 0x000051CC, + 7037: 0x000051C6, + 7038: 0x000051CB, + 7039: 0x00005256, + 7040: 0x0000525C, + 7041: 0x00005254, + 7042: 0x0000525B, + 7043: 0x0000525D, + 7044: 0x0000532A, + 7045: 0x0000537F, + 7046: 0x0000539F, + 7047: 0x0000539D, + 7048: 0x000053DF, + 7049: 0x000054E8, + 7050: 0x00005510, + 7051: 0x00005501, + 7052: 0x00005537, + 7053: 0x000054FC, + 7054: 0x000054E5, + 7055: 0x000054F2, + 7056: 0x00005506, + 7057: 0x000054FA, + 7058: 0x00005514, + 7059: 0x000054E9, + 7060: 0x000054ED, + 7061: 0x000054E1, + 7062: 0x00005509, + 7063: 0x000054EE, + 7064: 0x000054EA, + 7065: 0x000054E6, + 7066: 0x00005527, + 7067: 0x00005507, + 7068: 0x000054FD, + 7069: 0x0000550F, + 7070: 0x00005703, + 7071: 0x00005704, + 7072: 0x000057C2, + 7073: 0x000057D4, + 7074: 0x000057CB, + 7075: 0x000057C3, + 7076: 0x00005809, + 7077: 0x0000590F, + 7078: 0x00005957, + 7079: 0x00005958, + 7080: 0x0000595A, + 7081: 0x00005A11, + 7082: 0x00005A18, + 7083: 0x00005A1C, + 7084: 0x00005A1F, + 7085: 0x00005A1B, + 7086: 0x00005A13, + 7087: 0x000059EC, + 7088: 0x00005A20, + 7089: 0x00005A23, + 7090: 0x00005A29, + 7091: 0x00005A25, + 7092: 0x00005A0C, + 7093: 0x00005A09, + 7094: 0x00005B6B, + 7095: 0x00005C58, + 7096: 0x00005BB0, + 7097: 0x00005BB3, + 7098: 0x00005BB6, + 7099: 0x00005BB4, + 7100: 0x00005BAE, + 7101: 0x00005BB5, + 7102: 0x00005BB9, + 7103: 0x00005BB8, + 7104: 0x00005C04, + 7105: 0x00005C51, + 7106: 0x00005C55, + 7107: 0x00005C50, + 7108: 0x00005CED, + 7109: 0x00005CFD, + 7110: 0x00005CFB, + 7111: 0x00005CEA, + 7112: 0x00005CE8, + 7113: 0x00005CF0, + 7114: 0x00005CF6, + 7115: 0x00005D01, + 7116: 0x00005CF4, + 7117: 0x00005DEE, + 7118: 0x00005E2D, + 7119: 0x00005E2B, + 7120: 0x00005EAB, + 7121: 0x00005EAD, + 7122: 0x00005EA7, + 7123: 0x00005F31, + 7124: 0x00005F92, + 7125: 0x00005F91, + 7126: 0x00005F90, + 7127: 0x00006059, + 7128: 0x00006063, + 7129: 0x00006065, + 7130: 0x00006050, + 7131: 0x00006055, + 7132: 0x0000606D, + 7133: 0x00006069, + 7134: 0x0000606F, + 7135: 0x00006084, + 7136: 0x0000609F, + 7137: 0x0000609A, + 7138: 0x0000608D, + 7139: 0x00006094, + 7140: 0x0000608C, + 7141: 0x00006085, + 7142: 0x00006096, + 7143: 0x00006247, + 7144: 0x000062F3, + 7145: 0x00006308, + 7146: 0x000062FF, + 7147: 0x0000634E, + 7148: 0x0000633E, + 7149: 0x0000632F, + 7150: 0x00006355, + 7151: 0x00006342, + 7152: 0x00006346, + 7153: 0x0000634F, + 7154: 0x00006349, + 7155: 0x0000633A, + 7156: 0x00006350, + 7157: 0x0000633D, + 7158: 0x0000632A, + 7159: 0x0000632B, + 7160: 0x00006328, + 7161: 0x0000634D, + 7162: 0x0000634C, + 7163: 0x00006548, + 7164: 0x00006549, + 7165: 0x00006599, + 7166: 0x000065C1, + 7167: 0x000065C5, + 7168: 0x00006642, + 7169: 0x00006649, + 7170: 0x0000664F, + 7171: 0x00006643, + 7172: 0x00006652, + 7173: 0x0000664C, + 7174: 0x00006645, + 7175: 0x00006641, + 7176: 0x000066F8, + 7177: 0x00006714, + 7178: 0x00006715, + 7179: 0x00006717, + 7180: 0x00006821, + 7181: 0x00006838, + 7182: 0x00006848, + 7183: 0x00006846, + 7184: 0x00006853, + 7185: 0x00006839, + 7186: 0x00006842, + 7187: 0x00006854, + 7188: 0x00006829, + 7189: 0x000068B3, + 7190: 0x00006817, + 7191: 0x0000684C, + 7192: 0x00006851, + 7193: 0x0000683D, + 7194: 0x000067F4, + 7195: 0x00006850, + 7196: 0x00006840, + 7197: 0x0000683C, + 7198: 0x00006843, + 7199: 0x0000682A, + 7200: 0x00006845, + 7201: 0x00006813, + 7202: 0x00006818, + 7203: 0x00006841, + 7204: 0x00006B8A, + 7205: 0x00006B89, + 7206: 0x00006BB7, + 7207: 0x00006C23, + 7208: 0x00006C27, + 7209: 0x00006C28, + 7210: 0x00006C26, + 7211: 0x00006C24, + 7212: 0x00006CF0, + 7213: 0x00006D6A, + 7214: 0x00006D95, + 7215: 0x00006D88, + 7216: 0x00006D87, + 7217: 0x00006D66, + 7218: 0x00006D78, + 7219: 0x00006D77, + 7220: 0x00006D59, + 7221: 0x00006D93, + 7222: 0x00006D6C, + 7223: 0x00006D89, + 7224: 0x00006D6E, + 7225: 0x00006D5A, + 7226: 0x00006D74, + 7227: 0x00006D69, + 7228: 0x00006D8C, + 7229: 0x00006D8A, + 7230: 0x00006D79, + 7231: 0x00006D85, + 7232: 0x00006D65, + 7233: 0x00006D94, + 7234: 0x000070CA, + 7235: 0x000070D8, + 7236: 0x000070E4, + 7237: 0x000070D9, + 7238: 0x000070C8, + 7239: 0x000070CF, + 7240: 0x00007239, + 7241: 0x00007279, + 7242: 0x000072FC, + 7243: 0x000072F9, + 7244: 0x000072FD, + 7245: 0x000072F8, + 7246: 0x000072F7, + 7247: 0x00007386, + 7248: 0x000073ED, + 7249: 0x00007409, + 7250: 0x000073EE, + 7251: 0x000073E0, + 7252: 0x000073EA, + 7253: 0x000073DE, + 7254: 0x00007554, + 7255: 0x0000755D, + 7256: 0x0000755C, + 7257: 0x0000755A, + 7258: 0x00007559, + 7259: 0x000075BE, + 7260: 0x000075C5, + 7261: 0x000075C7, + 7262: 0x000075B2, + 7263: 0x000075B3, + 7264: 0x000075BD, + 7265: 0x000075BC, + 7266: 0x000075B9, + 7267: 0x000075C2, + 7268: 0x000075B8, + 7269: 0x0000768B, + 7270: 0x000076B0, + 7271: 0x000076CA, + 7272: 0x000076CD, + 7273: 0x000076CE, + 7274: 0x00007729, + 7275: 0x0000771F, + 7276: 0x00007720, + 7277: 0x00007728, + 7278: 0x000077E9, + 7279: 0x00007830, + 7280: 0x00007827, + 7281: 0x00007838, + 7282: 0x0000781D, + 7283: 0x00007834, + 7284: 0x00007837, + 7285: 0x00007825, + 7286: 0x0000782D, + 7287: 0x00007820, + 7288: 0x0000781F, + 7289: 0x00007832, + 7290: 0x00007955, + 7291: 0x00007950, + 7292: 0x00007960, + 7293: 0x0000795F, + 7294: 0x00007956, + 7295: 0x0000795E, + 7296: 0x0000795D, + 7297: 0x00007957, + 7298: 0x0000795A, + 7299: 0x000079E4, + 7300: 0x000079E3, + 7301: 0x000079E7, + 7302: 0x000079DF, + 7303: 0x000079E6, + 7304: 0x000079E9, + 7305: 0x000079D8, + 7306: 0x00007A84, + 7307: 0x00007A88, + 7308: 0x00007AD9, + 7309: 0x00007B06, + 7310: 0x00007B11, + 7311: 0x00007C89, + 7312: 0x00007D21, + 7313: 0x00007D17, + 7314: 0x00007D0B, + 7315: 0x00007D0A, + 7316: 0x00007D20, + 7317: 0x00007D22, + 7318: 0x00007D14, + 7319: 0x00007D10, + 7320: 0x00007D15, + 7321: 0x00007D1A, + 7322: 0x00007D1C, + 7323: 0x00007D0D, + 7324: 0x00007D19, + 7325: 0x00007D1B, + 7326: 0x00007F3A, + 7327: 0x00007F5F, + 7328: 0x00007F94, + 7329: 0x00007FC5, + 7330: 0x00007FC1, + 7331: 0x00008006, + 7332: 0x00008018, + 7333: 0x00008015, + 7334: 0x00008019, + 7335: 0x00008017, + 7336: 0x0000803D, + 7337: 0x0000803F, + 7338: 0x000080F1, + 7339: 0x00008102, + 7340: 0x000080F0, + 7341: 0x00008105, + 7342: 0x000080ED, + 7343: 0x000080F4, + 7344: 0x00008106, + 7345: 0x000080F8, + 7346: 0x000080F3, + 7347: 0x00008108, + 7348: 0x000080FD, + 7349: 0x0000810A, + 7350: 0x000080FC, + 7351: 0x000080EF, + 7352: 0x000081ED, + 7353: 0x000081EC, + 7354: 0x00008200, + 7355: 0x00008210, + 7356: 0x0000822A, + 7357: 0x0000822B, + 7358: 0x00008228, + 7359: 0x0000822C, + 7360: 0x000082BB, + 7361: 0x0000832B, + 7362: 0x00008352, + 7363: 0x00008354, + 7364: 0x0000834A, + 7365: 0x00008338, + 7366: 0x00008350, + 7367: 0x00008349, + 7368: 0x00008335, + 7369: 0x00008334, + 7370: 0x0000834F, + 7371: 0x00008332, + 7372: 0x00008339, + 7373: 0x00008336, + 7374: 0x00008317, + 7375: 0x00008340, + 7376: 0x00008331, + 7377: 0x00008328, + 7378: 0x00008343, + 7379: 0x00008654, + 7380: 0x0000868A, + 7381: 0x000086AA, + 7382: 0x00008693, + 7383: 0x000086A4, + 7384: 0x000086A9, + 7385: 0x0000868C, + 7386: 0x000086A3, + 7387: 0x0000869C, + 7388: 0x00008870, + 7389: 0x00008877, + 7390: 0x00008881, + 7391: 0x00008882, + 7392: 0x0000887D, + 7393: 0x00008879, + 7394: 0x00008A18, + 7395: 0x00008A10, + 7396: 0x00008A0E, + 7397: 0x00008A0C, + 7398: 0x00008A15, + 7399: 0x00008A0A, + 7400: 0x00008A17, + 7401: 0x00008A13, + 7402: 0x00008A16, + 7403: 0x00008A0F, + 7404: 0x00008A11, + 7405: 0x00008C48, + 7406: 0x00008C7A, + 7407: 0x00008C79, + 7408: 0x00008CA1, + 7409: 0x00008CA2, + 7410: 0x00008D77, + 7411: 0x00008EAC, + 7412: 0x00008ED2, + 7413: 0x00008ED4, + 7414: 0x00008ECF, + 7415: 0x00008FB1, + 7416: 0x00009001, + 7417: 0x00009006, + 7418: 0x00008FF7, + 7419: 0x00009000, + 7420: 0x00008FFA, + 7421: 0x00008FF4, + 7422: 0x00009003, + 7423: 0x00008FFD, + 7424: 0x00009005, + 7425: 0x00008FF8, + 7426: 0x00009095, + 7427: 0x000090E1, + 7428: 0x000090DD, + 7429: 0x000090E2, + 7430: 0x00009152, + 7431: 0x0000914D, + 7432: 0x0000914C, + 7433: 0x000091D8, + 7434: 0x000091DD, + 7435: 0x000091D7, + 7436: 0x000091DC, + 7437: 0x000091D9, + 7438: 0x00009583, + 7439: 0x00009662, + 7440: 0x00009663, + 7441: 0x00009661, + 7442: 0x0000965B, + 7443: 0x0000965D, + 7444: 0x00009664, + 7445: 0x00009658, + 7446: 0x0000965E, + 7447: 0x000096BB, + 7448: 0x000098E2, + 7449: 0x000099AC, + 7450: 0x00009AA8, + 7451: 0x00009AD8, + 7452: 0x00009B25, + 7453: 0x00009B32, + 7454: 0x00009B3C, + 7455: 0x00004E7E, + 7456: 0x0000507A, + 7457: 0x0000507D, + 7458: 0x0000505C, + 7459: 0x00005047, + 7460: 0x00005043, + 7461: 0x0000504C, + 7462: 0x0000505A, + 7463: 0x00005049, + 7464: 0x00005065, + 7465: 0x00005076, + 7466: 0x0000504E, + 7467: 0x00005055, + 7468: 0x00005075, + 7469: 0x00005074, + 7470: 0x00005077, + 7471: 0x0000504F, + 7472: 0x0000500F, + 7473: 0x0000506F, + 7474: 0x0000506D, + 7475: 0x0000515C, + 7476: 0x00005195, + 7477: 0x000051F0, + 7478: 0x0000526A, + 7479: 0x0000526F, + 7480: 0x000052D2, + 7481: 0x000052D9, + 7482: 0x000052D8, + 7483: 0x000052D5, + 7484: 0x00005310, + 7485: 0x0000530F, + 7486: 0x00005319, + 7487: 0x0000533F, + 7488: 0x00005340, + 7489: 0x0000533E, + 7490: 0x000053C3, + 7491: 0x000066FC, + 7492: 0x00005546, + 7493: 0x0000556A, + 7494: 0x00005566, + 7495: 0x00005544, + 7496: 0x0000555E, + 7497: 0x00005561, + 7498: 0x00005543, + 7499: 0x0000554A, + 7500: 0x00005531, + 7501: 0x00005556, + 7502: 0x0000554F, + 7503: 0x00005555, + 7504: 0x0000552F, + 7505: 0x00005564, + 7506: 0x00005538, + 7507: 0x0000552E, + 7508: 0x0000555C, + 7509: 0x0000552C, + 7510: 0x00005563, + 7511: 0x00005533, + 7512: 0x00005541, + 7513: 0x00005557, + 7514: 0x00005708, + 7515: 0x0000570B, + 7516: 0x00005709, + 7517: 0x000057DF, + 7518: 0x00005805, + 7519: 0x0000580A, + 7520: 0x00005806, + 7521: 0x000057E0, + 7522: 0x000057E4, + 7523: 0x000057FA, + 7524: 0x00005802, + 7525: 0x00005835, + 7526: 0x000057F7, + 7527: 0x000057F9, + 7528: 0x00005920, + 7529: 0x00005962, + 7530: 0x00005A36, + 7531: 0x00005A41, + 7532: 0x00005A49, + 7533: 0x00005A66, + 7534: 0x00005A6A, + 7535: 0x00005A40, + 7536: 0x00005A3C, + 7537: 0x00005A62, + 7538: 0x00005A5A, + 7539: 0x00005A46, + 7540: 0x00005A4A, + 7541: 0x00005B70, + 7542: 0x00005BC7, + 7543: 0x00005BC5, + 7544: 0x00005BC4, + 7545: 0x00005BC2, + 7546: 0x00005BBF, + 7547: 0x00005BC6, + 7548: 0x00005C09, + 7549: 0x00005C08, + 7550: 0x00005C07, + 7551: 0x00005C60, + 7552: 0x00005C5C, + 7553: 0x00005C5D, + 7554: 0x00005D07, + 7555: 0x00005D06, + 7556: 0x00005D0E, + 7557: 0x00005D1B, + 7558: 0x00005D16, + 7559: 0x00005D22, + 7560: 0x00005D11, + 7561: 0x00005D29, + 7562: 0x00005D14, + 7563: 0x00005D19, + 7564: 0x00005D24, + 7565: 0x00005D27, + 7566: 0x00005D17, + 7567: 0x00005DE2, + 7568: 0x00005E38, + 7569: 0x00005E36, + 7570: 0x00005E33, + 7571: 0x00005E37, + 7572: 0x00005EB7, + 7573: 0x00005EB8, + 7574: 0x00005EB6, + 7575: 0x00005EB5, + 7576: 0x00005EBE, + 7577: 0x00005F35, + 7578: 0x00005F37, + 7579: 0x00005F57, + 7580: 0x00005F6C, + 7581: 0x00005F69, + 7582: 0x00005F6B, + 7583: 0x00005F97, + 7584: 0x00005F99, + 7585: 0x00005F9E, + 7586: 0x00005F98, + 7587: 0x00005FA1, + 7588: 0x00005FA0, + 7589: 0x00005F9C, + 7590: 0x0000607F, + 7591: 0x000060A3, + 7592: 0x00006089, + 7593: 0x000060A0, + 7594: 0x000060A8, + 7595: 0x000060CB, + 7596: 0x000060B4, + 7597: 0x000060E6, + 7598: 0x000060BD, + 7599: 0x000060C5, + 7600: 0x000060BB, + 7601: 0x000060B5, + 7602: 0x000060DC, + 7603: 0x000060BC, + 7604: 0x000060D8, + 7605: 0x000060D5, + 7606: 0x000060C6, + 7607: 0x000060DF, + 7608: 0x000060B8, + 7609: 0x000060DA, + 7610: 0x000060C7, + 7611: 0x0000621A, + 7612: 0x0000621B, + 7613: 0x00006248, + 7614: 0x000063A0, + 7615: 0x000063A7, + 7616: 0x00006372, + 7617: 0x00006396, + 7618: 0x000063A2, + 7619: 0x000063A5, + 7620: 0x00006377, + 7621: 0x00006367, + 7622: 0x00006398, + 7623: 0x000063AA, + 7624: 0x00006371, + 7625: 0x000063A9, + 7626: 0x00006389, + 7627: 0x00006383, + 7628: 0x0000639B, + 7629: 0x0000636B, + 7630: 0x000063A8, + 7631: 0x00006384, + 7632: 0x00006388, + 7633: 0x00006399, + 7634: 0x000063A1, + 7635: 0x000063AC, + 7636: 0x00006392, + 7637: 0x0000638F, + 7638: 0x00006380, + 7639: 0x0000637B, + 7640: 0x00006369, + 7641: 0x00006368, + 7642: 0x0000637A, + 7643: 0x0000655D, + 7644: 0x00006556, + 7645: 0x00006551, + 7646: 0x00006559, + 7647: 0x00006557, + 7648: 0x0000555F, + 7649: 0x0000654F, + 7650: 0x00006558, + 7651: 0x00006555, + 7652: 0x00006554, + 7653: 0x0000659C, + 7654: 0x0000659B, + 7655: 0x000065AC, + 7656: 0x000065CF, + 7657: 0x000065CB, + 7658: 0x000065CC, + 7659: 0x000065CE, + 7660: 0x0000665D, + 7661: 0x0000665A, + 7662: 0x00006664, + 7663: 0x00006668, + 7664: 0x00006666, + 7665: 0x0000665E, + 7666: 0x000066F9, + 7667: 0x000052D7, + 7668: 0x0000671B, + 7669: 0x00006881, + 7670: 0x000068AF, + 7671: 0x000068A2, + 7672: 0x00006893, + 7673: 0x000068B5, + 7674: 0x0000687F, + 7675: 0x00006876, + 7676: 0x000068B1, + 7677: 0x000068A7, + 7678: 0x00006897, + 7679: 0x000068B0, + 7680: 0x00006883, + 7681: 0x000068C4, + 7682: 0x000068AD, + 7683: 0x00006886, + 7684: 0x00006885, + 7685: 0x00006894, + 7686: 0x0000689D, + 7687: 0x000068A8, + 7688: 0x0000689F, + 7689: 0x000068A1, + 7690: 0x00006882, + 7691: 0x00006B32, + 7692: 0x00006BBA, + 7693: 0x00006BEB, + 7694: 0x00006BEC, + 7695: 0x00006C2B, + 7696: 0x00006D8E, + 7697: 0x00006DBC, + 7698: 0x00006DF3, + 7699: 0x00006DD9, + 7700: 0x00006DB2, + 7701: 0x00006DE1, + 7702: 0x00006DCC, + 7703: 0x00006DE4, + 7704: 0x00006DFB, + 7705: 0x00006DFA, + 7706: 0x00006E05, + 7707: 0x00006DC7, + 7708: 0x00006DCB, + 7709: 0x00006DAF, + 7710: 0x00006DD1, + 7711: 0x00006DAE, + 7712: 0x00006DDE, + 7713: 0x00006DF9, + 7714: 0x00006DB8, + 7715: 0x00006DF7, + 7716: 0x00006DF5, + 7717: 0x00006DC5, + 7718: 0x00006DD2, + 7719: 0x00006E1A, + 7720: 0x00006DB5, + 7721: 0x00006DDA, + 7722: 0x00006DEB, + 7723: 0x00006DD8, + 7724: 0x00006DEA, + 7725: 0x00006DF1, + 7726: 0x00006DEE, + 7727: 0x00006DE8, + 7728: 0x00006DC6, + 7729: 0x00006DC4, + 7730: 0x00006DAA, + 7731: 0x00006DEC, + 7732: 0x00006DBF, + 7733: 0x00006DE6, + 7734: 0x000070F9, + 7735: 0x00007109, + 7736: 0x0000710A, + 7737: 0x000070FD, + 7738: 0x000070EF, + 7739: 0x0000723D, + 7740: 0x0000727D, + 7741: 0x00007281, + 7742: 0x0000731C, + 7743: 0x0000731B, + 7744: 0x00007316, + 7745: 0x00007313, + 7746: 0x00007319, + 7747: 0x00007387, + 7748: 0x00007405, + 7749: 0x0000740A, + 7750: 0x00007403, + 7751: 0x00007406, + 7752: 0x000073FE, + 7753: 0x0000740D, + 7754: 0x000074E0, + 7755: 0x000074F6, + 7756: 0x000074F7, + 7757: 0x0000751C, + 7758: 0x00007522, + 7759: 0x00007565, + 7760: 0x00007566, + 7761: 0x00007562, + 7762: 0x00007570, + 7763: 0x0000758F, + 7764: 0x000075D4, + 7765: 0x000075D5, + 7766: 0x000075B5, + 7767: 0x000075CA, + 7768: 0x000075CD, + 7769: 0x0000768E, + 7770: 0x000076D4, + 7771: 0x000076D2, + 7772: 0x000076DB, + 7773: 0x00007737, + 7774: 0x0000773E, + 7775: 0x0000773C, + 7776: 0x00007736, + 7777: 0x00007738, + 7778: 0x0000773A, + 7779: 0x0000786B, + 7780: 0x00007843, + 7781: 0x0000784E, + 7782: 0x00007965, + 7783: 0x00007968, + 7784: 0x0000796D, + 7785: 0x000079FB, + 7786: 0x00007A92, + 7787: 0x00007A95, + 7788: 0x00007B20, + 7789: 0x00007B28, + 7790: 0x00007B1B, + 7791: 0x00007B2C, + 7792: 0x00007B26, + 7793: 0x00007B19, + 7794: 0x00007B1E, + 7795: 0x00007B2E, + 7796: 0x00007C92, + 7797: 0x00007C97, + 7798: 0x00007C95, + 7799: 0x00007D46, + 7800: 0x00007D43, + 7801: 0x00007D71, + 7802: 0x00007D2E, + 7803: 0x00007D39, + 7804: 0x00007D3C, + 7805: 0x00007D40, + 7806: 0x00007D30, + 7807: 0x00007D33, + 7808: 0x00007D44, + 7809: 0x00007D2F, + 7810: 0x00007D42, + 7811: 0x00007D32, + 7812: 0x00007D31, + 7813: 0x00007F3D, + 7814: 0x00007F9E, + 7815: 0x00007F9A, + 7816: 0x00007FCC, + 7817: 0x00007FCE, + 7818: 0x00007FD2, + 7819: 0x0000801C, + 7820: 0x0000804A, + 7821: 0x00008046, + 7822: 0x0000812F, + 7823: 0x00008116, + 7824: 0x00008123, + 7825: 0x0000812B, + 7826: 0x00008129, + 7827: 0x00008130, + 7828: 0x00008124, + 7829: 0x00008202, + 7830: 0x00008235, + 7831: 0x00008237, + 7832: 0x00008236, + 7833: 0x00008239, + 7834: 0x0000838E, + 7835: 0x0000839E, + 7836: 0x00008398, + 7837: 0x00008378, + 7838: 0x000083A2, + 7839: 0x00008396, + 7840: 0x000083BD, + 7841: 0x000083AB, + 7842: 0x00008392, + 7843: 0x0000838A, + 7844: 0x00008393, + 7845: 0x00008389, + 7846: 0x000083A0, + 7847: 0x00008377, + 7848: 0x0000837B, + 7849: 0x0000837C, + 7850: 0x00008386, + 7851: 0x000083A7, + 7852: 0x00008655, + 7853: 0x00005F6A, + 7854: 0x000086C7, + 7855: 0x000086C0, + 7856: 0x000086B6, + 7857: 0x000086C4, + 7858: 0x000086B5, + 7859: 0x000086C6, + 7860: 0x000086CB, + 7861: 0x000086B1, + 7862: 0x000086AF, + 7863: 0x000086C9, + 7864: 0x00008853, + 7865: 0x0000889E, + 7866: 0x00008888, + 7867: 0x000088AB, + 7868: 0x00008892, + 7869: 0x00008896, + 7870: 0x0000888D, + 7871: 0x0000888B, + 7872: 0x00008993, + 7873: 0x0000898F, + 7874: 0x00008A2A, + 7875: 0x00008A1D, + 7876: 0x00008A23, + 7877: 0x00008A25, + 7878: 0x00008A31, + 7879: 0x00008A2D, + 7880: 0x00008A1F, + 7881: 0x00008A1B, + 7882: 0x00008A22, + 7883: 0x00008C49, + 7884: 0x00008C5A, + 7885: 0x00008CA9, + 7886: 0x00008CAC, + 7887: 0x00008CAB, + 7888: 0x00008CA8, + 7889: 0x00008CAA, + 7890: 0x00008CA7, + 7891: 0x00008D67, + 7892: 0x00008D66, + 7893: 0x00008DBE, + 7894: 0x00008DBA, + 7895: 0x00008EDB, + 7896: 0x00008EDF, + 7897: 0x00009019, + 7898: 0x0000900D, + 7899: 0x0000901A, + 7900: 0x00009017, + 7901: 0x00009023, + 7902: 0x0000901F, + 7903: 0x0000901D, + 7904: 0x00009010, + 7905: 0x00009015, + 7906: 0x0000901E, + 7907: 0x00009020, + 7908: 0x0000900F, + 7909: 0x00009022, + 7910: 0x00009016, + 7911: 0x0000901B, + 7912: 0x00009014, + 7913: 0x000090E8, + 7914: 0x000090ED, + 7915: 0x000090FD, + 7916: 0x00009157, + 7917: 0x000091CE, + 7918: 0x000091F5, + 7919: 0x000091E6, + 7920: 0x000091E3, + 7921: 0x000091E7, + 7922: 0x000091ED, + 7923: 0x000091E9, + 7924: 0x00009589, + 7925: 0x0000966A, + 7926: 0x00009675, + 7927: 0x00009673, + 7928: 0x00009678, + 7929: 0x00009670, + 7930: 0x00009674, + 7931: 0x00009676, + 7932: 0x00009677, + 7933: 0x0000966C, + 7934: 0x000096C0, + 7935: 0x000096EA, + 7936: 0x000096E9, + 7937: 0x00007AE0, + 7938: 0x00007ADF, + 7939: 0x00009802, + 7940: 0x00009803, + 7941: 0x00009B5A, + 7942: 0x00009CE5, + 7943: 0x00009E75, + 7944: 0x00009E7F, + 7945: 0x00009EA5, + 7946: 0x00009EBB, + 7947: 0x000050A2, + 7948: 0x0000508D, + 7949: 0x00005085, + 7950: 0x00005099, + 7951: 0x00005091, + 7952: 0x00005080, + 7953: 0x00005096, + 7954: 0x00005098, + 7955: 0x0000509A, + 7956: 0x00006700, + 7957: 0x000051F1, + 7958: 0x00005272, + 7959: 0x00005274, + 7960: 0x00005275, + 7961: 0x00005269, + 7962: 0x000052DE, + 7963: 0x000052DD, + 7964: 0x000052DB, + 7965: 0x0000535A, + 7966: 0x000053A5, + 7967: 0x0000557B, + 7968: 0x00005580, + 7969: 0x000055A7, + 7970: 0x0000557C, + 7971: 0x0000558A, + 7972: 0x0000559D, + 7973: 0x00005598, + 7974: 0x00005582, + 7975: 0x0000559C, + 7976: 0x000055AA, + 7977: 0x00005594, + 7978: 0x00005587, + 7979: 0x0000558B, + 7980: 0x00005583, + 7981: 0x000055B3, + 7982: 0x000055AE, + 7983: 0x0000559F, + 7984: 0x0000553E, + 7985: 0x000055B2, + 7986: 0x0000559A, + 7987: 0x000055BB, + 7988: 0x000055AC, + 7989: 0x000055B1, + 7990: 0x0000557E, + 7991: 0x00005589, + 7992: 0x000055AB, + 7993: 0x00005599, + 7994: 0x0000570D, + 7995: 0x0000582F, + 7996: 0x0000582A, + 7997: 0x00005834, + 7998: 0x00005824, + 7999: 0x00005830, + 8000: 0x00005831, + 8001: 0x00005821, + 8002: 0x0000581D, + 8003: 0x00005820, + 8004: 0x000058F9, + 8005: 0x000058FA, + 8006: 0x00005960, + 8007: 0x00005A77, + 8008: 0x00005A9A, + 8009: 0x00005A7F, + 8010: 0x00005A92, + 8011: 0x00005A9B, + 8012: 0x00005AA7, + 8013: 0x00005B73, + 8014: 0x00005B71, + 8015: 0x00005BD2, + 8016: 0x00005BCC, + 8017: 0x00005BD3, + 8018: 0x00005BD0, + 8019: 0x00005C0A, + 8020: 0x00005C0B, + 8021: 0x00005C31, + 8022: 0x00005D4C, + 8023: 0x00005D50, + 8024: 0x00005D34, + 8025: 0x00005D47, + 8026: 0x00005DFD, + 8027: 0x00005E45, + 8028: 0x00005E3D, + 8029: 0x00005E40, + 8030: 0x00005E43, + 8031: 0x00005E7E, + 8032: 0x00005ECA, + 8033: 0x00005EC1, + 8034: 0x00005EC2, + 8035: 0x00005EC4, + 8036: 0x00005F3C, + 8037: 0x00005F6D, + 8038: 0x00005FA9, + 8039: 0x00005FAA, + 8040: 0x00005FA8, + 8041: 0x000060D1, + 8042: 0x000060E1, + 8043: 0x000060B2, + 8044: 0x000060B6, + 8045: 0x000060E0, + 8046: 0x0000611C, + 8047: 0x00006123, + 8048: 0x000060FA, + 8049: 0x00006115, + 8050: 0x000060F0, + 8051: 0x000060FB, + 8052: 0x000060F4, + 8053: 0x00006168, + 8054: 0x000060F1, + 8055: 0x0000610E, + 8056: 0x000060F6, + 8057: 0x00006109, + 8058: 0x00006100, + 8059: 0x00006112, + 8060: 0x0000621F, + 8061: 0x00006249, + 8062: 0x000063A3, + 8063: 0x0000638C, + 8064: 0x000063CF, + 8065: 0x000063C0, + 8066: 0x000063E9, + 8067: 0x000063C9, + 8068: 0x000063C6, + 8069: 0x000063CD, + 8070: 0x000063D2, + 8071: 0x000063E3, + 8072: 0x000063D0, + 8073: 0x000063E1, + 8074: 0x000063D6, + 8075: 0x000063ED, + 8076: 0x000063EE, + 8077: 0x00006376, + 8078: 0x000063F4, + 8079: 0x000063EA, + 8080: 0x000063DB, + 8081: 0x00006452, + 8082: 0x000063DA, + 8083: 0x000063F9, + 8084: 0x0000655E, + 8085: 0x00006566, + 8086: 0x00006562, + 8087: 0x00006563, + 8088: 0x00006591, + 8089: 0x00006590, + 8090: 0x000065AF, + 8091: 0x0000666E, + 8092: 0x00006670, + 8093: 0x00006674, + 8094: 0x00006676, + 8095: 0x0000666F, + 8096: 0x00006691, + 8097: 0x0000667A, + 8098: 0x0000667E, + 8099: 0x00006677, + 8100: 0x000066FE, + 8101: 0x000066FF, + 8102: 0x0000671F, + 8103: 0x0000671D, + 8104: 0x000068FA, + 8105: 0x000068D5, + 8106: 0x000068E0, + 8107: 0x000068D8, + 8108: 0x000068D7, + 8109: 0x00006905, + 8110: 0x000068DF, + 8111: 0x000068F5, + 8112: 0x000068EE, + 8113: 0x000068E7, + 8114: 0x000068F9, + 8115: 0x000068D2, + 8116: 0x000068F2, + 8117: 0x000068E3, + 8118: 0x000068CB, + 8119: 0x000068CD, + 8120: 0x0000690D, + 8121: 0x00006912, + 8122: 0x0000690E, + 8123: 0x000068C9, + 8124: 0x000068DA, + 8125: 0x0000696E, + 8126: 0x000068FB, + 8127: 0x00006B3E, + 8128: 0x00006B3A, + 8129: 0x00006B3D, + 8130: 0x00006B98, + 8131: 0x00006B96, + 8132: 0x00006BBC, + 8133: 0x00006BEF, + 8134: 0x00006C2E, + 8135: 0x00006C2F, + 8136: 0x00006C2C, + 8137: 0x00006E2F, + 8138: 0x00006E38, + 8139: 0x00006E54, + 8140: 0x00006E21, + 8141: 0x00006E32, + 8142: 0x00006E67, + 8143: 0x00006E4A, + 8144: 0x00006E20, + 8145: 0x00006E25, + 8146: 0x00006E23, + 8147: 0x00006E1B, + 8148: 0x00006E5B, + 8149: 0x00006E58, + 8150: 0x00006E24, + 8151: 0x00006E56, + 8152: 0x00006E6E, + 8153: 0x00006E2D, + 8154: 0x00006E26, + 8155: 0x00006E6F, + 8156: 0x00006E34, + 8157: 0x00006E4D, + 8158: 0x00006E3A, + 8159: 0x00006E2C, + 8160: 0x00006E43, + 8161: 0x00006E1D, + 8162: 0x00006E3E, + 8163: 0x00006ECB, + 8164: 0x00006E89, + 8165: 0x00006E19, + 8166: 0x00006E4E, + 8167: 0x00006E63, + 8168: 0x00006E44, + 8169: 0x00006E72, + 8170: 0x00006E69, + 8171: 0x00006E5F, + 8172: 0x00007119, + 8173: 0x0000711A, + 8174: 0x00007126, + 8175: 0x00007130, + 8176: 0x00007121, + 8177: 0x00007136, + 8178: 0x0000716E, + 8179: 0x0000711C, + 8180: 0x0000724C, + 8181: 0x00007284, + 8182: 0x00007280, + 8183: 0x00007336, + 8184: 0x00007325, + 8185: 0x00007334, + 8186: 0x00007329, + 8187: 0x0000743A, + 8188: 0x0000742A, + 8189: 0x00007433, + 8190: 0x00007422, + 8191: 0x00007425, + 8192: 0x00007435, + 8193: 0x00007436, + 8194: 0x00007434, + 8195: 0x0000742F, + 8196: 0x0000741B, + 8197: 0x00007426, + 8198: 0x00007428, + 8199: 0x00007525, + 8200: 0x00007526, + 8201: 0x0000756B, + 8202: 0x0000756A, + 8203: 0x000075E2, + 8204: 0x000075DB, + 8205: 0x000075E3, + 8206: 0x000075D9, + 8207: 0x000075D8, + 8208: 0x000075DE, + 8209: 0x000075E0, + 8210: 0x0000767B, + 8211: 0x0000767C, + 8212: 0x00007696, + 8213: 0x00007693, + 8214: 0x000076B4, + 8215: 0x000076DC, + 8216: 0x0000774F, + 8217: 0x000077ED, + 8218: 0x0000785D, + 8219: 0x0000786C, + 8220: 0x0000786F, + 8221: 0x00007A0D, + 8222: 0x00007A08, + 8223: 0x00007A0B, + 8224: 0x00007A05, + 8225: 0x00007A00, + 8226: 0x00007A98, + 8227: 0x00007A97, + 8228: 0x00007A96, + 8229: 0x00007AE5, + 8230: 0x00007AE3, + 8231: 0x00007B49, + 8232: 0x00007B56, + 8233: 0x00007B46, + 8234: 0x00007B50, + 8235: 0x00007B52, + 8236: 0x00007B54, + 8237: 0x00007B4D, + 8238: 0x00007B4B, + 8239: 0x00007B4F, + 8240: 0x00007B51, + 8241: 0x00007C9F, + 8242: 0x00007CA5, + 8243: 0x00007D5E, + 8244: 0x00007D50, + 8245: 0x00007D68, + 8246: 0x00007D55, + 8247: 0x00007D2B, + 8248: 0x00007D6E, + 8249: 0x00007D72, + 8250: 0x00007D61, + 8251: 0x00007D66, + 8252: 0x00007D62, + 8253: 0x00007D70, + 8254: 0x00007D73, + 8255: 0x00005584, + 8256: 0x00007FD4, + 8257: 0x00007FD5, + 8258: 0x0000800B, + 8259: 0x00008052, + 8260: 0x00008085, + 8261: 0x00008155, + 8262: 0x00008154, + 8263: 0x0000814B, + 8264: 0x00008151, + 8265: 0x0000814E, + 8266: 0x00008139, + 8267: 0x00008146, + 8268: 0x0000813E, + 8269: 0x0000814C, + 8270: 0x00008153, + 8271: 0x00008174, + 8272: 0x00008212, + 8273: 0x0000821C, + 8274: 0x000083E9, + 8275: 0x00008403, + 8276: 0x000083F8, + 8277: 0x0000840D, + 8278: 0x000083E0, + 8279: 0x000083C5, + 8280: 0x0000840B, + 8281: 0x000083C1, + 8282: 0x000083EF, + 8283: 0x000083F1, + 8284: 0x000083F4, + 8285: 0x00008457, + 8286: 0x0000840A, + 8287: 0x000083F0, + 8288: 0x0000840C, + 8289: 0x000083CC, + 8290: 0x000083FD, + 8291: 0x000083F2, + 8292: 0x000083CA, + 8293: 0x00008438, + 8294: 0x0000840E, + 8295: 0x00008404, + 8296: 0x000083DC, + 8297: 0x00008407, + 8298: 0x000083D4, + 8299: 0x000083DF, + 8300: 0x0000865B, + 8301: 0x000086DF, + 8302: 0x000086D9, + 8303: 0x000086ED, + 8304: 0x000086D4, + 8305: 0x000086DB, + 8306: 0x000086E4, + 8307: 0x000086D0, + 8308: 0x000086DE, + 8309: 0x00008857, + 8310: 0x000088C1, + 8311: 0x000088C2, + 8312: 0x000088B1, + 8313: 0x00008983, + 8314: 0x00008996, + 8315: 0x00008A3B, + 8316: 0x00008A60, + 8317: 0x00008A55, + 8318: 0x00008A5E, + 8319: 0x00008A3C, + 8320: 0x00008A41, + 8321: 0x00008A54, + 8322: 0x00008A5B, + 8323: 0x00008A50, + 8324: 0x00008A46, + 8325: 0x00008A34, + 8326: 0x00008A3A, + 8327: 0x00008A36, + 8328: 0x00008A56, + 8329: 0x00008C61, + 8330: 0x00008C82, + 8331: 0x00008CAF, + 8332: 0x00008CBC, + 8333: 0x00008CB3, + 8334: 0x00008CBD, + 8335: 0x00008CC1, + 8336: 0x00008CBB, + 8337: 0x00008CC0, + 8338: 0x00008CB4, + 8339: 0x00008CB7, + 8340: 0x00008CB6, + 8341: 0x00008CBF, + 8342: 0x00008CB8, + 8343: 0x00008D8A, + 8344: 0x00008D85, + 8345: 0x00008D81, + 8346: 0x00008DCE, + 8347: 0x00008DDD, + 8348: 0x00008DCB, + 8349: 0x00008DDA, + 8350: 0x00008DD1, + 8351: 0x00008DCC, + 8352: 0x00008DDB, + 8353: 0x00008DC6, + 8354: 0x00008EFB, + 8355: 0x00008EF8, + 8356: 0x00008EFC, + 8357: 0x00008F9C, + 8358: 0x0000902E, + 8359: 0x00009035, + 8360: 0x00009031, + 8361: 0x00009038, + 8362: 0x00009032, + 8363: 0x00009036, + 8364: 0x00009102, + 8365: 0x000090F5, + 8366: 0x00009109, + 8367: 0x000090FE, + 8368: 0x00009163, + 8369: 0x00009165, + 8370: 0x000091CF, + 8371: 0x00009214, + 8372: 0x00009215, + 8373: 0x00009223, + 8374: 0x00009209, + 8375: 0x0000921E, + 8376: 0x0000920D, + 8377: 0x00009210, + 8378: 0x00009207, + 8379: 0x00009211, + 8380: 0x00009594, + 8381: 0x0000958F, + 8382: 0x0000958B, + 8383: 0x00009591, + 8384: 0x00009593, + 8385: 0x00009592, + 8386: 0x0000958E, + 8387: 0x0000968A, + 8388: 0x0000968E, + 8389: 0x0000968B, + 8390: 0x0000967D, + 8391: 0x00009685, + 8392: 0x00009686, + 8393: 0x0000968D, + 8394: 0x00009672, + 8395: 0x00009684, + 8396: 0x000096C1, + 8397: 0x000096C5, + 8398: 0x000096C4, + 8399: 0x000096C6, + 8400: 0x000096C7, + 8401: 0x000096EF, + 8402: 0x000096F2, + 8403: 0x000097CC, + 8404: 0x00009805, + 8405: 0x00009806, + 8406: 0x00009808, + 8407: 0x000098E7, + 8408: 0x000098EA, + 8409: 0x000098EF, + 8410: 0x000098E9, + 8411: 0x000098F2, + 8412: 0x000098ED, + 8413: 0x000099AE, + 8414: 0x000099AD, + 8415: 0x00009EC3, + 8416: 0x00009ECD, + 8417: 0x00009ED1, + 8418: 0x00004E82, + 8419: 0x000050AD, + 8420: 0x000050B5, + 8421: 0x000050B2, + 8422: 0x000050B3, + 8423: 0x000050C5, + 8424: 0x000050BE, + 8425: 0x000050AC, + 8426: 0x000050B7, + 8427: 0x000050BB, + 8428: 0x000050AF, + 8429: 0x000050C7, + 8430: 0x0000527F, + 8431: 0x00005277, + 8432: 0x0000527D, + 8433: 0x000052DF, + 8434: 0x000052E6, + 8435: 0x000052E4, + 8436: 0x000052E2, + 8437: 0x000052E3, + 8438: 0x0000532F, + 8439: 0x000055DF, + 8440: 0x000055E8, + 8441: 0x000055D3, + 8442: 0x000055E6, + 8443: 0x000055CE, + 8444: 0x000055DC, + 8445: 0x000055C7, + 8446: 0x000055D1, + 8447: 0x000055E3, + 8448: 0x000055E4, + 8449: 0x000055EF, + 8450: 0x000055DA, + 8451: 0x000055E1, + 8452: 0x000055C5, + 8453: 0x000055C6, + 8454: 0x000055E5, + 8455: 0x000055C9, + 8456: 0x00005712, + 8457: 0x00005713, + 8458: 0x0000585E, + 8459: 0x00005851, + 8460: 0x00005858, + 8461: 0x00005857, + 8462: 0x0000585A, + 8463: 0x00005854, + 8464: 0x0000586B, + 8465: 0x0000584C, + 8466: 0x0000586D, + 8467: 0x0000584A, + 8468: 0x00005862, + 8469: 0x00005852, + 8470: 0x0000584B, + 8471: 0x00005967, + 8472: 0x00005AC1, + 8473: 0x00005AC9, + 8474: 0x00005ACC, + 8475: 0x00005ABE, + 8476: 0x00005ABD, + 8477: 0x00005ABC, + 8478: 0x00005AB3, + 8479: 0x00005AC2, + 8480: 0x00005AB2, + 8481: 0x00005D69, + 8482: 0x00005D6F, + 8483: 0x00005E4C, + 8484: 0x00005E79, + 8485: 0x00005EC9, + 8486: 0x00005EC8, + 8487: 0x00005F12, + 8488: 0x00005F59, + 8489: 0x00005FAC, + 8490: 0x00005FAE, + 8491: 0x0000611A, + 8492: 0x0000610F, + 8493: 0x00006148, + 8494: 0x0000611F, + 8495: 0x000060F3, + 8496: 0x0000611B, + 8497: 0x000060F9, + 8498: 0x00006101, + 8499: 0x00006108, + 8500: 0x0000614E, + 8501: 0x0000614C, + 8502: 0x00006144, + 8503: 0x0000614D, + 8504: 0x0000613E, + 8505: 0x00006134, + 8506: 0x00006127, + 8507: 0x0000610D, + 8508: 0x00006106, + 8509: 0x00006137, + 8510: 0x00006221, + 8511: 0x00006222, + 8512: 0x00006413, + 8513: 0x0000643E, + 8514: 0x0000641E, + 8515: 0x0000642A, + 8516: 0x0000642D, + 8517: 0x0000643D, + 8518: 0x0000642C, + 8519: 0x0000640F, + 8520: 0x0000641C, + 8521: 0x00006414, + 8522: 0x0000640D, + 8523: 0x00006436, + 8524: 0x00006416, + 8525: 0x00006417, + 8526: 0x00006406, + 8527: 0x0000656C, + 8528: 0x0000659F, + 8529: 0x000065B0, + 8530: 0x00006697, + 8531: 0x00006689, + 8532: 0x00006687, + 8533: 0x00006688, + 8534: 0x00006696, + 8535: 0x00006684, + 8536: 0x00006698, + 8537: 0x0000668D, + 8538: 0x00006703, + 8539: 0x00006994, + 8540: 0x0000696D, + 8541: 0x0000695A, + 8542: 0x00006977, + 8543: 0x00006960, + 8544: 0x00006954, + 8545: 0x00006975, + 8546: 0x00006930, + 8547: 0x00006982, + 8548: 0x0000694A, + 8549: 0x00006968, + 8550: 0x0000696B, + 8551: 0x0000695E, + 8552: 0x00006953, + 8553: 0x00006979, + 8554: 0x00006986, + 8555: 0x0000695D, + 8556: 0x00006963, + 8557: 0x0000695B, + 8558: 0x00006B47, + 8559: 0x00006B72, + 8560: 0x00006BC0, + 8561: 0x00006BBF, + 8562: 0x00006BD3, + 8563: 0x00006BFD, + 8564: 0x00006EA2, + 8565: 0x00006EAF, + 8566: 0x00006ED3, + 8567: 0x00006EB6, + 8568: 0x00006EC2, + 8569: 0x00006E90, + 8570: 0x00006E9D, + 8571: 0x00006EC7, + 8572: 0x00006EC5, + 8573: 0x00006EA5, + 8574: 0x00006E98, + 8575: 0x00006EBC, + 8576: 0x00006EBA, + 8577: 0x00006EAB, + 8578: 0x00006ED1, + 8579: 0x00006E96, + 8580: 0x00006E9C, + 8581: 0x00006EC4, + 8582: 0x00006ED4, + 8583: 0x00006EAA, + 8584: 0x00006EA7, + 8585: 0x00006EB4, + 8586: 0x0000714E, + 8587: 0x00007159, + 8588: 0x00007169, + 8589: 0x00007164, + 8590: 0x00007149, + 8591: 0x00007167, + 8592: 0x0000715C, + 8593: 0x0000716C, + 8594: 0x00007166, + 8595: 0x0000714C, + 8596: 0x00007165, + 8597: 0x0000715E, + 8598: 0x00007146, + 8599: 0x00007168, + 8600: 0x00007156, + 8601: 0x0000723A, + 8602: 0x00007252, + 8603: 0x00007337, + 8604: 0x00007345, + 8605: 0x0000733F, + 8606: 0x0000733E, + 8607: 0x0000746F, + 8608: 0x0000745A, + 8609: 0x00007455, + 8610: 0x0000745F, + 8611: 0x0000745E, + 8612: 0x00007441, + 8613: 0x0000743F, + 8614: 0x00007459, + 8615: 0x0000745B, + 8616: 0x0000745C, + 8617: 0x00007576, + 8618: 0x00007578, + 8619: 0x00007600, + 8620: 0x000075F0, + 8621: 0x00007601, + 8622: 0x000075F2, + 8623: 0x000075F1, + 8624: 0x000075FA, + 8625: 0x000075FF, + 8626: 0x000075F4, + 8627: 0x000075F3, + 8628: 0x000076DE, + 8629: 0x000076DF, + 8630: 0x0000775B, + 8631: 0x0000776B, + 8632: 0x00007766, + 8633: 0x0000775E, + 8634: 0x00007763, + 8635: 0x00007779, + 8636: 0x0000776A, + 8637: 0x0000776C, + 8638: 0x0000775C, + 8639: 0x00007765, + 8640: 0x00007768, + 8641: 0x00007762, + 8642: 0x000077EE, + 8643: 0x0000788E, + 8644: 0x000078B0, + 8645: 0x00007897, + 8646: 0x00007898, + 8647: 0x0000788C, + 8648: 0x00007889, + 8649: 0x0000787C, + 8650: 0x00007891, + 8651: 0x00007893, + 8652: 0x0000787F, + 8653: 0x0000797A, + 8654: 0x0000797F, + 8655: 0x00007981, + 8656: 0x0000842C, + 8657: 0x000079BD, + 8658: 0x00007A1C, + 8659: 0x00007A1A, + 8660: 0x00007A20, + 8661: 0x00007A14, + 8662: 0x00007A1F, + 8663: 0x00007A1E, + 8664: 0x00007A9F, + 8665: 0x00007AA0, + 8666: 0x00007B77, + 8667: 0x00007BC0, + 8668: 0x00007B60, + 8669: 0x00007B6E, + 8670: 0x00007B67, + 8671: 0x00007CB1, + 8672: 0x00007CB3, + 8673: 0x00007CB5, + 8674: 0x00007D93, + 8675: 0x00007D79, + 8676: 0x00007D91, + 8677: 0x00007D81, + 8678: 0x00007D8F, + 8679: 0x00007D5B, + 8680: 0x00007F6E, + 8681: 0x00007F69, + 8682: 0x00007F6A, + 8683: 0x00007F72, + 8684: 0x00007FA9, + 8685: 0x00007FA8, + 8686: 0x00007FA4, + 8687: 0x00008056, + 8688: 0x00008058, + 8689: 0x00008086, + 8690: 0x00008084, + 8691: 0x00008171, + 8692: 0x00008170, + 8693: 0x00008178, + 8694: 0x00008165, + 8695: 0x0000816E, + 8696: 0x00008173, + 8697: 0x0000816B, + 8698: 0x00008179, + 8699: 0x0000817A, + 8700: 0x00008166, + 8701: 0x00008205, + 8702: 0x00008247, + 8703: 0x00008482, + 8704: 0x00008477, + 8705: 0x0000843D, + 8706: 0x00008431, + 8707: 0x00008475, + 8708: 0x00008466, + 8709: 0x0000846B, + 8710: 0x00008449, + 8711: 0x0000846C, + 8712: 0x0000845B, + 8713: 0x0000843C, + 8714: 0x00008435, + 8715: 0x00008461, + 8716: 0x00008463, + 8717: 0x00008469, + 8718: 0x0000846D, + 8719: 0x00008446, + 8720: 0x0000865E, + 8721: 0x0000865C, + 8722: 0x0000865F, + 8723: 0x000086F9, + 8724: 0x00008713, + 8725: 0x00008708, + 8726: 0x00008707, + 8727: 0x00008700, + 8728: 0x000086FE, + 8729: 0x000086FB, + 8730: 0x00008702, + 8731: 0x00008703, + 8732: 0x00008706, + 8733: 0x0000870A, + 8734: 0x00008859, + 8735: 0x000088DF, + 8736: 0x000088D4, + 8737: 0x000088D9, + 8738: 0x000088DC, + 8739: 0x000088D8, + 8740: 0x000088DD, + 8741: 0x000088E1, + 8742: 0x000088CA, + 8743: 0x000088D5, + 8744: 0x000088D2, + 8745: 0x0000899C, + 8746: 0x000089E3, + 8747: 0x00008A6B, + 8748: 0x00008A72, + 8749: 0x00008A73, + 8750: 0x00008A66, + 8751: 0x00008A69, + 8752: 0x00008A70, + 8753: 0x00008A87, + 8754: 0x00008A7C, + 8755: 0x00008A63, + 8756: 0x00008AA0, + 8757: 0x00008A71, + 8758: 0x00008A85, + 8759: 0x00008A6D, + 8760: 0x00008A62, + 8761: 0x00008A6E, + 8762: 0x00008A6C, + 8763: 0x00008A79, + 8764: 0x00008A7B, + 8765: 0x00008A3E, + 8766: 0x00008A68, + 8767: 0x00008C62, + 8768: 0x00008C8A, + 8769: 0x00008C89, + 8770: 0x00008CCA, + 8771: 0x00008CC7, + 8772: 0x00008CC8, + 8773: 0x00008CC4, + 8774: 0x00008CB2, + 8775: 0x00008CC3, + 8776: 0x00008CC2, + 8777: 0x00008CC5, + 8778: 0x00008DE1, + 8779: 0x00008DDF, + 8780: 0x00008DE8, + 8781: 0x00008DEF, + 8782: 0x00008DF3, + 8783: 0x00008DFA, + 8784: 0x00008DEA, + 8785: 0x00008DE4, + 8786: 0x00008DE6, + 8787: 0x00008EB2, + 8788: 0x00008F03, + 8789: 0x00008F09, + 8790: 0x00008EFE, + 8791: 0x00008F0A, + 8792: 0x00008F9F, + 8793: 0x00008FB2, + 8794: 0x0000904B, + 8795: 0x0000904A, + 8796: 0x00009053, + 8797: 0x00009042, + 8798: 0x00009054, + 8799: 0x0000903C, + 8800: 0x00009055, + 8801: 0x00009050, + 8802: 0x00009047, + 8803: 0x0000904F, + 8804: 0x0000904E, + 8805: 0x0000904D, + 8806: 0x00009051, + 8807: 0x0000903E, + 8808: 0x00009041, + 8809: 0x00009112, + 8810: 0x00009117, + 8811: 0x0000916C, + 8812: 0x0000916A, + 8813: 0x00009169, + 8814: 0x000091C9, + 8815: 0x00009237, + 8816: 0x00009257, + 8817: 0x00009238, + 8818: 0x0000923D, + 8819: 0x00009240, + 8820: 0x0000923E, + 8821: 0x0000925B, + 8822: 0x0000924B, + 8823: 0x00009264, + 8824: 0x00009251, + 8825: 0x00009234, + 8826: 0x00009249, + 8827: 0x0000924D, + 8828: 0x00009245, + 8829: 0x00009239, + 8830: 0x0000923F, + 8831: 0x0000925A, + 8832: 0x00009598, + 8833: 0x00009698, + 8834: 0x00009694, + 8835: 0x00009695, + 8836: 0x000096CD, + 8837: 0x000096CB, + 8838: 0x000096C9, + 8839: 0x000096CA, + 8840: 0x000096F7, + 8841: 0x000096FB, + 8842: 0x000096F9, + 8843: 0x000096F6, + 8844: 0x00009756, + 8845: 0x00009774, + 8846: 0x00009776, + 8847: 0x00009810, + 8848: 0x00009811, + 8849: 0x00009813, + 8850: 0x0000980A, + 8851: 0x00009812, + 8852: 0x0000980C, + 8853: 0x000098FC, + 8854: 0x000098F4, + 8855: 0x000098FD, + 8856: 0x000098FE, + 8857: 0x000099B3, + 8858: 0x000099B1, + 8859: 0x000099B4, + 8860: 0x00009AE1, + 8861: 0x00009CE9, + 8862: 0x00009E82, + 8863: 0x00009F0E, + 8864: 0x00009F13, + 8865: 0x00009F20, + 8866: 0x000050E7, + 8867: 0x000050EE, + 8868: 0x000050E5, + 8869: 0x000050D6, + 8870: 0x000050ED, + 8871: 0x000050DA, + 8872: 0x000050D5, + 8873: 0x000050CF, + 8874: 0x000050D1, + 8875: 0x000050F1, + 8876: 0x000050CE, + 8877: 0x000050E9, + 8878: 0x00005162, + 8879: 0x000051F3, + 8880: 0x00005283, + 8881: 0x00005282, + 8882: 0x00005331, + 8883: 0x000053AD, + 8884: 0x000055FE, + 8885: 0x00005600, + 8886: 0x0000561B, + 8887: 0x00005617, + 8888: 0x000055FD, + 8889: 0x00005614, + 8890: 0x00005606, + 8891: 0x00005609, + 8892: 0x0000560D, + 8893: 0x0000560E, + 8894: 0x000055F7, + 8895: 0x00005616, + 8896: 0x0000561F, + 8897: 0x00005608, + 8898: 0x00005610, + 8899: 0x000055F6, + 8900: 0x00005718, + 8901: 0x00005716, + 8902: 0x00005875, + 8903: 0x0000587E, + 8904: 0x00005883, + 8905: 0x00005893, + 8906: 0x0000588A, + 8907: 0x00005879, + 8908: 0x00005885, + 8909: 0x0000587D, + 8910: 0x000058FD, + 8911: 0x00005925, + 8912: 0x00005922, + 8913: 0x00005924, + 8914: 0x0000596A, + 8915: 0x00005969, + 8916: 0x00005AE1, + 8917: 0x00005AE6, + 8918: 0x00005AE9, + 8919: 0x00005AD7, + 8920: 0x00005AD6, + 8921: 0x00005AD8, + 8922: 0x00005AE3, + 8923: 0x00005B75, + 8924: 0x00005BDE, + 8925: 0x00005BE7, + 8926: 0x00005BE1, + 8927: 0x00005BE5, + 8928: 0x00005BE6, + 8929: 0x00005BE8, + 8930: 0x00005BE2, + 8931: 0x00005BE4, + 8932: 0x00005BDF, + 8933: 0x00005C0D, + 8934: 0x00005C62, + 8935: 0x00005D84, + 8936: 0x00005D87, + 8937: 0x00005E5B, + 8938: 0x00005E63, + 8939: 0x00005E55, + 8940: 0x00005E57, + 8941: 0x00005E54, + 8942: 0x00005ED3, + 8943: 0x00005ED6, + 8944: 0x00005F0A, + 8945: 0x00005F46, + 8946: 0x00005F70, + 8947: 0x00005FB9, + 8948: 0x00006147, + 8949: 0x0000613F, + 8950: 0x0000614B, + 8951: 0x00006177, + 8952: 0x00006162, + 8953: 0x00006163, + 8954: 0x0000615F, + 8955: 0x0000615A, + 8956: 0x00006158, + 8957: 0x00006175, + 8958: 0x0000622A, + 8959: 0x00006487, + 8960: 0x00006458, + 8961: 0x00006454, + 8962: 0x000064A4, + 8963: 0x00006478, + 8964: 0x0000645F, + 8965: 0x0000647A, + 8966: 0x00006451, + 8967: 0x00006467, + 8968: 0x00006434, + 8969: 0x0000646D, + 8970: 0x0000647B, + 8971: 0x00006572, + 8972: 0x000065A1, + 8973: 0x000065D7, + 8974: 0x000065D6, + 8975: 0x000066A2, + 8976: 0x000066A8, + 8977: 0x0000669D, + 8978: 0x0000699C, + 8979: 0x000069A8, + 8980: 0x00006995, + 8981: 0x000069C1, + 8982: 0x000069AE, + 8983: 0x000069D3, + 8984: 0x000069CB, + 8985: 0x0000699B, + 8986: 0x000069B7, + 8987: 0x000069BB, + 8988: 0x000069AB, + 8989: 0x000069B4, + 8990: 0x000069D0, + 8991: 0x000069CD, + 8992: 0x000069AD, + 8993: 0x000069CC, + 8994: 0x000069A6, + 8995: 0x000069C3, + 8996: 0x000069A3, + 8997: 0x00006B49, + 8998: 0x00006B4C, + 8999: 0x00006C33, + 9000: 0x00006F33, + 9001: 0x00006F14, + 9002: 0x00006EFE, + 9003: 0x00006F13, + 9004: 0x00006EF4, + 9005: 0x00006F29, + 9006: 0x00006F3E, + 9007: 0x00006F20, + 9008: 0x00006F2C, + 9009: 0x00006F0F, + 9010: 0x00006F02, + 9011: 0x00006F22, + 9012: 0x00006EFF, + 9013: 0x00006EEF, + 9014: 0x00006F06, + 9015: 0x00006F31, + 9016: 0x00006F38, + 9017: 0x00006F32, + 9018: 0x00006F23, + 9019: 0x00006F15, + 9020: 0x00006F2B, + 9021: 0x00006F2F, + 9022: 0x00006F88, + 9023: 0x00006F2A, + 9024: 0x00006EEC, + 9025: 0x00006F01, + 9026: 0x00006EF2, + 9027: 0x00006ECC, + 9028: 0x00006EF7, + 9029: 0x00007194, + 9030: 0x00007199, + 9031: 0x0000717D, + 9032: 0x0000718A, + 9033: 0x00007184, + 9034: 0x00007192, + 9035: 0x0000723E, + 9036: 0x00007292, + 9037: 0x00007296, + 9038: 0x00007344, + 9039: 0x00007350, + 9040: 0x00007464, + 9041: 0x00007463, + 9042: 0x0000746A, + 9043: 0x00007470, + 9044: 0x0000746D, + 9045: 0x00007504, + 9046: 0x00007591, + 9047: 0x00007627, + 9048: 0x0000760D, + 9049: 0x0000760B, + 9050: 0x00007609, + 9051: 0x00007613, + 9052: 0x000076E1, + 9053: 0x000076E3, + 9054: 0x00007784, + 9055: 0x0000777D, + 9056: 0x0000777F, + 9057: 0x00007761, + 9058: 0x000078C1, + 9059: 0x0000789F, + 9060: 0x000078A7, + 9061: 0x000078B3, + 9062: 0x000078A9, + 9063: 0x000078A3, + 9064: 0x0000798E, + 9065: 0x0000798F, + 9066: 0x0000798D, + 9067: 0x00007A2E, + 9068: 0x00007A31, + 9069: 0x00007AAA, + 9070: 0x00007AA9, + 9071: 0x00007AED, + 9072: 0x00007AEF, + 9073: 0x00007BA1, + 9074: 0x00007B95, + 9075: 0x00007B8B, + 9076: 0x00007B75, + 9077: 0x00007B97, + 9078: 0x00007B9D, + 9079: 0x00007B94, + 9080: 0x00007B8F, + 9081: 0x00007BB8, + 9082: 0x00007B87, + 9083: 0x00007B84, + 9084: 0x00007CB9, + 9085: 0x00007CBD, + 9086: 0x00007CBE, + 9087: 0x00007DBB, + 9088: 0x00007DB0, + 9089: 0x00007D9C, + 9090: 0x00007DBD, + 9091: 0x00007DBE, + 9092: 0x00007DA0, + 9093: 0x00007DCA, + 9094: 0x00007DB4, + 9095: 0x00007DB2, + 9096: 0x00007DB1, + 9097: 0x00007DBA, + 9098: 0x00007DA2, + 9099: 0x00007DBF, + 9100: 0x00007DB5, + 9101: 0x00007DB8, + 9102: 0x00007DAD, + 9103: 0x00007DD2, + 9104: 0x00007DC7, + 9105: 0x00007DAC, + 9106: 0x00007F70, + 9107: 0x00007FE0, + 9108: 0x00007FE1, + 9109: 0x00007FDF, + 9110: 0x0000805E, + 9111: 0x0000805A, + 9112: 0x00008087, + 9113: 0x00008150, + 9114: 0x00008180, + 9115: 0x0000818F, + 9116: 0x00008188, + 9117: 0x0000818A, + 9118: 0x0000817F, + 9119: 0x00008182, + 9120: 0x000081E7, + 9121: 0x000081FA, + 9122: 0x00008207, + 9123: 0x00008214, + 9124: 0x0000821E, + 9125: 0x0000824B, + 9126: 0x000084C9, + 9127: 0x000084BF, + 9128: 0x000084C6, + 9129: 0x000084C4, + 9130: 0x00008499, + 9131: 0x0000849E, + 9132: 0x000084B2, + 9133: 0x0000849C, + 9134: 0x000084CB, + 9135: 0x000084B8, + 9136: 0x000084C0, + 9137: 0x000084D3, + 9138: 0x00008490, + 9139: 0x000084BC, + 9140: 0x000084D1, + 9141: 0x000084CA, + 9142: 0x0000873F, + 9143: 0x0000871C, + 9144: 0x0000873B, + 9145: 0x00008722, + 9146: 0x00008725, + 9147: 0x00008734, + 9148: 0x00008718, + 9149: 0x00008755, + 9150: 0x00008737, + 9151: 0x00008729, + 9152: 0x000088F3, + 9153: 0x00008902, + 9154: 0x000088F4, + 9155: 0x000088F9, + 9156: 0x000088F8, + 9157: 0x000088FD, + 9158: 0x000088E8, + 9159: 0x0000891A, + 9160: 0x000088EF, + 9161: 0x00008AA6, + 9162: 0x00008A8C, + 9163: 0x00008A9E, + 9164: 0x00008AA3, + 9165: 0x00008A8D, + 9166: 0x00008AA1, + 9167: 0x00008A93, + 9168: 0x00008AA4, + 9169: 0x00008AAA, + 9170: 0x00008AA5, + 9171: 0x00008AA8, + 9172: 0x00008A98, + 9173: 0x00008A91, + 9174: 0x00008A9A, + 9175: 0x00008AA7, + 9176: 0x00008C6A, + 9177: 0x00008C8D, + 9178: 0x00008C8C, + 9179: 0x00008CD3, + 9180: 0x00008CD1, + 9181: 0x00008CD2, + 9182: 0x00008D6B, + 9183: 0x00008D99, + 9184: 0x00008D95, + 9185: 0x00008DFC, + 9186: 0x00008F14, + 9187: 0x00008F12, + 9188: 0x00008F15, + 9189: 0x00008F13, + 9190: 0x00008FA3, + 9191: 0x00009060, + 9192: 0x00009058, + 9193: 0x0000905C, + 9194: 0x00009063, + 9195: 0x00009059, + 9196: 0x0000905E, + 9197: 0x00009062, + 9198: 0x0000905D, + 9199: 0x0000905B, + 9200: 0x00009119, + 9201: 0x00009118, + 9202: 0x0000911E, + 9203: 0x00009175, + 9204: 0x00009178, + 9205: 0x00009177, + 9206: 0x00009174, + 9207: 0x00009278, + 9208: 0x00009280, + 9209: 0x00009285, + 9210: 0x00009298, + 9211: 0x00009296, + 9212: 0x0000927B, + 9213: 0x00009293, + 9214: 0x0000929C, + 9215: 0x000092A8, + 9216: 0x0000927C, + 9217: 0x00009291, + 9218: 0x000095A1, + 9219: 0x000095A8, + 9220: 0x000095A9, + 9221: 0x000095A3, + 9222: 0x000095A5, + 9223: 0x000095A4, + 9224: 0x00009699, + 9225: 0x0000969C, + 9226: 0x0000969B, + 9227: 0x000096CC, + 9228: 0x000096D2, + 9229: 0x00009700, + 9230: 0x0000977C, + 9231: 0x00009785, + 9232: 0x000097F6, + 9233: 0x00009817, + 9234: 0x00009818, + 9235: 0x000098AF, + 9236: 0x000098B1, + 9237: 0x00009903, + 9238: 0x00009905, + 9239: 0x0000990C, + 9240: 0x00009909, + 9241: 0x000099C1, + 9242: 0x00009AAF, + 9243: 0x00009AB0, + 9244: 0x00009AE6, + 9245: 0x00009B41, + 9246: 0x00009B42, + 9247: 0x00009CF4, + 9248: 0x00009CF6, + 9249: 0x00009CF3, + 9250: 0x00009EBC, + 9251: 0x00009F3B, + 9252: 0x00009F4A, + 9253: 0x00005104, + 9254: 0x00005100, + 9255: 0x000050FB, + 9256: 0x000050F5, + 9257: 0x000050F9, + 9258: 0x00005102, + 9259: 0x00005108, + 9260: 0x00005109, + 9261: 0x00005105, + 9262: 0x000051DC, + 9263: 0x00005287, + 9264: 0x00005288, + 9265: 0x00005289, + 9266: 0x0000528D, + 9267: 0x0000528A, + 9268: 0x000052F0, + 9269: 0x000053B2, + 9270: 0x0000562E, + 9271: 0x0000563B, + 9272: 0x00005639, + 9273: 0x00005632, + 9274: 0x0000563F, + 9275: 0x00005634, + 9276: 0x00005629, + 9277: 0x00005653, + 9278: 0x0000564E, + 9279: 0x00005657, + 9280: 0x00005674, + 9281: 0x00005636, + 9282: 0x0000562F, + 9283: 0x00005630, + 9284: 0x00005880, + 9285: 0x0000589F, + 9286: 0x0000589E, + 9287: 0x000058B3, + 9288: 0x0000589C, + 9289: 0x000058AE, + 9290: 0x000058A9, + 9291: 0x000058A6, + 9292: 0x0000596D, + 9293: 0x00005B09, + 9294: 0x00005AFB, + 9295: 0x00005B0B, + 9296: 0x00005AF5, + 9297: 0x00005B0C, + 9298: 0x00005B08, + 9299: 0x00005BEE, + 9300: 0x00005BEC, + 9301: 0x00005BE9, + 9302: 0x00005BEB, + 9303: 0x00005C64, + 9304: 0x00005C65, + 9305: 0x00005D9D, + 9306: 0x00005D94, + 9307: 0x00005E62, + 9308: 0x00005E5F, + 9309: 0x00005E61, + 9310: 0x00005EE2, + 9311: 0x00005EDA, + 9312: 0x00005EDF, + 9313: 0x00005EDD, + 9314: 0x00005EE3, + 9315: 0x00005EE0, + 9316: 0x00005F48, + 9317: 0x00005F71, + 9318: 0x00005FB7, + 9319: 0x00005FB5, + 9320: 0x00006176, + 9321: 0x00006167, + 9322: 0x0000616E, + 9323: 0x0000615D, + 9324: 0x00006155, + 9325: 0x00006182, + 9326: 0x0000617C, + 9327: 0x00006170, + 9328: 0x0000616B, + 9329: 0x0000617E, + 9330: 0x000061A7, + 9331: 0x00006190, + 9332: 0x000061AB, + 9333: 0x0000618E, + 9334: 0x000061AC, + 9335: 0x0000619A, + 9336: 0x000061A4, + 9337: 0x00006194, + 9338: 0x000061AE, + 9339: 0x0000622E, + 9340: 0x00006469, + 9341: 0x0000646F, + 9342: 0x00006479, + 9343: 0x0000649E, + 9344: 0x000064B2, + 9345: 0x00006488, + 9346: 0x00006490, + 9347: 0x000064B0, + 9348: 0x000064A5, + 9349: 0x00006493, + 9350: 0x00006495, + 9351: 0x000064A9, + 9352: 0x00006492, + 9353: 0x000064AE, + 9354: 0x000064AD, + 9355: 0x000064AB, + 9356: 0x0000649A, + 9357: 0x000064AC, + 9358: 0x00006499, + 9359: 0x000064A2, + 9360: 0x000064B3, + 9361: 0x00006575, + 9362: 0x00006577, + 9363: 0x00006578, + 9364: 0x000066AE, + 9365: 0x000066AB, + 9366: 0x000066B4, + 9367: 0x000066B1, + 9368: 0x00006A23, + 9369: 0x00006A1F, + 9370: 0x000069E8, + 9371: 0x00006A01, + 9372: 0x00006A1E, + 9373: 0x00006A19, + 9374: 0x000069FD, + 9375: 0x00006A21, + 9376: 0x00006A13, + 9377: 0x00006A0A, + 9378: 0x000069F3, + 9379: 0x00006A02, + 9380: 0x00006A05, + 9381: 0x000069ED, + 9382: 0x00006A11, + 9383: 0x00006B50, + 9384: 0x00006B4E, + 9385: 0x00006BA4, + 9386: 0x00006BC5, + 9387: 0x00006BC6, + 9388: 0x00006F3F, + 9389: 0x00006F7C, + 9390: 0x00006F84, + 9391: 0x00006F51, + 9392: 0x00006F66, + 9393: 0x00006F54, + 9394: 0x00006F86, + 9395: 0x00006F6D, + 9396: 0x00006F5B, + 9397: 0x00006F78, + 9398: 0x00006F6E, + 9399: 0x00006F8E, + 9400: 0x00006F7A, + 9401: 0x00006F70, + 9402: 0x00006F64, + 9403: 0x00006F97, + 9404: 0x00006F58, + 9405: 0x00006ED5, + 9406: 0x00006F6F, + 9407: 0x00006F60, + 9408: 0x00006F5F, + 9409: 0x0000719F, + 9410: 0x000071AC, + 9411: 0x000071B1, + 9412: 0x000071A8, + 9413: 0x00007256, + 9414: 0x0000729B, + 9415: 0x0000734E, + 9416: 0x00007357, + 9417: 0x00007469, + 9418: 0x0000748B, + 9419: 0x00007483, + 9420: 0x0000747E, + 9421: 0x00007480, + 9422: 0x0000757F, + 9423: 0x00007620, + 9424: 0x00007629, + 9425: 0x0000761F, + 9426: 0x00007624, + 9427: 0x00007626, + 9428: 0x00007621, + 9429: 0x00007622, + 9430: 0x0000769A, + 9431: 0x000076BA, + 9432: 0x000076E4, + 9433: 0x0000778E, + 9434: 0x00007787, + 9435: 0x0000778C, + 9436: 0x00007791, + 9437: 0x0000778B, + 9438: 0x000078CB, + 9439: 0x000078C5, + 9440: 0x000078BA, + 9441: 0x000078CA, + 9442: 0x000078BE, + 9443: 0x000078D5, + 9444: 0x000078BC, + 9445: 0x000078D0, + 9446: 0x00007A3F, + 9447: 0x00007A3C, + 9448: 0x00007A40, + 9449: 0x00007A3D, + 9450: 0x00007A37, + 9451: 0x00007A3B, + 9452: 0x00007AAF, + 9453: 0x00007AAE, + 9454: 0x00007BAD, + 9455: 0x00007BB1, + 9456: 0x00007BC4, + 9457: 0x00007BB4, + 9458: 0x00007BC6, + 9459: 0x00007BC7, + 9460: 0x00007BC1, + 9461: 0x00007BA0, + 9462: 0x00007BCC, + 9463: 0x00007CCA, + 9464: 0x00007DE0, + 9465: 0x00007DF4, + 9466: 0x00007DEF, + 9467: 0x00007DFB, + 9468: 0x00007DD8, + 9469: 0x00007DEC, + 9470: 0x00007DDD, + 9471: 0x00007DE8, + 9472: 0x00007DE3, + 9473: 0x00007DDA, + 9474: 0x00007DDE, + 9475: 0x00007DE9, + 9476: 0x00007D9E, + 9477: 0x00007DD9, + 9478: 0x00007DF2, + 9479: 0x00007DF9, + 9480: 0x00007F75, + 9481: 0x00007F77, + 9482: 0x00007FAF, + 9483: 0x00007FE9, + 9484: 0x00008026, + 9485: 0x0000819B, + 9486: 0x0000819C, + 9487: 0x0000819D, + 9488: 0x000081A0, + 9489: 0x0000819A, + 9490: 0x00008198, + 9491: 0x00008517, + 9492: 0x0000853D, + 9493: 0x0000851A, + 9494: 0x000084EE, + 9495: 0x0000852C, + 9496: 0x0000852D, + 9497: 0x00008513, + 9498: 0x00008511, + 9499: 0x00008523, + 9500: 0x00008521, + 9501: 0x00008514, + 9502: 0x000084EC, + 9503: 0x00008525, + 9504: 0x000084FF, + 9505: 0x00008506, + 9506: 0x00008782, + 9507: 0x00008774, + 9508: 0x00008776, + 9509: 0x00008760, + 9510: 0x00008766, + 9511: 0x00008778, + 9512: 0x00008768, + 9513: 0x00008759, + 9514: 0x00008757, + 9515: 0x0000874C, + 9516: 0x00008753, + 9517: 0x0000885B, + 9518: 0x0000885D, + 9519: 0x00008910, + 9520: 0x00008907, + 9521: 0x00008912, + 9522: 0x00008913, + 9523: 0x00008915, + 9524: 0x0000890A, + 9525: 0x00008ABC, + 9526: 0x00008AD2, + 9527: 0x00008AC7, + 9528: 0x00008AC4, + 9529: 0x00008A95, + 9530: 0x00008ACB, + 9531: 0x00008AF8, + 9532: 0x00008AB2, + 9533: 0x00008AC9, + 9534: 0x00008AC2, + 9535: 0x00008ABF, + 9536: 0x00008AB0, + 9537: 0x00008AD6, + 9538: 0x00008ACD, + 9539: 0x00008AB6, + 9540: 0x00008AB9, + 9541: 0x00008ADB, + 9542: 0x00008C4C, + 9543: 0x00008C4E, + 9544: 0x00008C6C, + 9545: 0x00008CE0, + 9546: 0x00008CDE, + 9547: 0x00008CE6, + 9548: 0x00008CE4, + 9549: 0x00008CEC, + 9550: 0x00008CED, + 9551: 0x00008CE2, + 9552: 0x00008CE3, + 9553: 0x00008CDC, + 9554: 0x00008CEA, + 9555: 0x00008CE1, + 9556: 0x00008D6D, + 9557: 0x00008D9F, + 9558: 0x00008DA3, + 9559: 0x00008E2B, + 9560: 0x00008E10, + 9561: 0x00008E1D, + 9562: 0x00008E22, + 9563: 0x00008E0F, + 9564: 0x00008E29, + 9565: 0x00008E1F, + 9566: 0x00008E21, + 9567: 0x00008E1E, + 9568: 0x00008EBA, + 9569: 0x00008F1D, + 9570: 0x00008F1B, + 9571: 0x00008F1F, + 9572: 0x00008F29, + 9573: 0x00008F26, + 9574: 0x00008F2A, + 9575: 0x00008F1C, + 9576: 0x00008F1E, + 9577: 0x00008F25, + 9578: 0x00009069, + 9579: 0x0000906E, + 9580: 0x00009068, + 9581: 0x0000906D, + 9582: 0x00009077, + 9583: 0x00009130, + 9584: 0x0000912D, + 9585: 0x00009127, + 9586: 0x00009131, + 9587: 0x00009187, + 9588: 0x00009189, + 9589: 0x0000918B, + 9590: 0x00009183, + 9591: 0x000092C5, + 9592: 0x000092BB, + 9593: 0x000092B7, + 9594: 0x000092EA, + 9595: 0x000092AC, + 9596: 0x000092E4, + 9597: 0x000092C1, + 9598: 0x000092B3, + 9599: 0x000092BC, + 9600: 0x000092D2, + 9601: 0x000092C7, + 9602: 0x000092F0, + 9603: 0x000092B2, + 9604: 0x000095AD, + 9605: 0x000095B1, + 9606: 0x00009704, + 9607: 0x00009706, + 9608: 0x00009707, + 9609: 0x00009709, + 9610: 0x00009760, + 9611: 0x0000978D, + 9612: 0x0000978B, + 9613: 0x0000978F, + 9614: 0x00009821, + 9615: 0x0000982B, + 9616: 0x0000981C, + 9617: 0x000098B3, + 9618: 0x0000990A, + 9619: 0x00009913, + 9620: 0x00009912, + 9621: 0x00009918, + 9622: 0x000099DD, + 9623: 0x000099D0, + 9624: 0x000099DF, + 9625: 0x000099DB, + 9626: 0x000099D1, + 9627: 0x000099D5, + 9628: 0x000099D2, + 9629: 0x000099D9, + 9630: 0x00009AB7, + 9631: 0x00009AEE, + 9632: 0x00009AEF, + 9633: 0x00009B27, + 9634: 0x00009B45, + 9635: 0x00009B44, + 9636: 0x00009B77, + 9637: 0x00009B6F, + 9638: 0x00009D06, + 9639: 0x00009D09, + 9640: 0x00009D03, + 9641: 0x00009EA9, + 9642: 0x00009EBE, + 9643: 0x00009ECE, + 9644: 0x000058A8, + 9645: 0x00009F52, + 9646: 0x00005112, + 9647: 0x00005118, + 9648: 0x00005114, + 9649: 0x00005110, + 9650: 0x00005115, + 9651: 0x00005180, + 9652: 0x000051AA, + 9653: 0x000051DD, + 9654: 0x00005291, + 9655: 0x00005293, + 9656: 0x000052F3, + 9657: 0x00005659, + 9658: 0x0000566B, + 9659: 0x00005679, + 9660: 0x00005669, + 9661: 0x00005664, + 9662: 0x00005678, + 9663: 0x0000566A, + 9664: 0x00005668, + 9665: 0x00005665, + 9666: 0x00005671, + 9667: 0x0000566F, + 9668: 0x0000566C, + 9669: 0x00005662, + 9670: 0x00005676, + 9671: 0x000058C1, + 9672: 0x000058BE, + 9673: 0x000058C7, + 9674: 0x000058C5, + 9675: 0x0000596E, + 9676: 0x00005B1D, + 9677: 0x00005B34, + 9678: 0x00005B78, + 9679: 0x00005BF0, + 9680: 0x00005C0E, + 9681: 0x00005F4A, + 9682: 0x000061B2, + 9683: 0x00006191, + 9684: 0x000061A9, + 9685: 0x0000618A, + 9686: 0x000061CD, + 9687: 0x000061B6, + 9688: 0x000061BE, + 9689: 0x000061CA, + 9690: 0x000061C8, + 9691: 0x00006230, + 9692: 0x000064C5, + 9693: 0x000064C1, + 9694: 0x000064CB, + 9695: 0x000064BB, + 9696: 0x000064BC, + 9697: 0x000064DA, + 9698: 0x000064C4, + 9699: 0x000064C7, + 9700: 0x000064C2, + 9701: 0x000064CD, + 9702: 0x000064BF, + 9703: 0x000064D2, + 9704: 0x000064D4, + 9705: 0x000064BE, + 9706: 0x00006574, + 9707: 0x000066C6, + 9708: 0x000066C9, + 9709: 0x000066B9, + 9710: 0x000066C4, + 9711: 0x000066C7, + 9712: 0x000066B8, + 9713: 0x00006A3D, + 9714: 0x00006A38, + 9715: 0x00006A3A, + 9716: 0x00006A59, + 9717: 0x00006A6B, + 9718: 0x00006A58, + 9719: 0x00006A39, + 9720: 0x00006A44, + 9721: 0x00006A62, + 9722: 0x00006A61, + 9723: 0x00006A4B, + 9724: 0x00006A47, + 9725: 0x00006A35, + 9726: 0x00006A5F, + 9727: 0x00006A48, + 9728: 0x00006B59, + 9729: 0x00006B77, + 9730: 0x00006C05, + 9731: 0x00006FC2, + 9732: 0x00006FB1, + 9733: 0x00006FA1, + 9734: 0x00006FC3, + 9735: 0x00006FA4, + 9736: 0x00006FC1, + 9737: 0x00006FA7, + 9738: 0x00006FB3, + 9739: 0x00006FC0, + 9740: 0x00006FB9, + 9741: 0x00006FB6, + 9742: 0x00006FA6, + 9743: 0x00006FA0, + 9744: 0x00006FB4, + 9745: 0x000071BE, + 9746: 0x000071C9, + 9747: 0x000071D0, + 9748: 0x000071D2, + 9749: 0x000071C8, + 9750: 0x000071D5, + 9751: 0x000071B9, + 9752: 0x000071CE, + 9753: 0x000071D9, + 9754: 0x000071DC, + 9755: 0x000071C3, + 9756: 0x000071C4, + 9757: 0x00007368, + 9758: 0x0000749C, + 9759: 0x000074A3, + 9760: 0x00007498, + 9761: 0x0000749F, + 9762: 0x0000749E, + 9763: 0x000074E2, + 9764: 0x0000750C, + 9765: 0x0000750D, + 9766: 0x00007634, + 9767: 0x00007638, + 9768: 0x0000763A, + 9769: 0x000076E7, + 9770: 0x000076E5, + 9771: 0x000077A0, + 9772: 0x0000779E, + 9773: 0x0000779F, + 9774: 0x000077A5, + 9775: 0x000078E8, + 9776: 0x000078DA, + 9777: 0x000078EC, + 9778: 0x000078E7, + 9779: 0x000079A6, + 9780: 0x00007A4D, + 9781: 0x00007A4E, + 9782: 0x00007A46, + 9783: 0x00007A4C, + 9784: 0x00007A4B, + 9785: 0x00007ABA, + 9786: 0x00007BD9, + 9787: 0x00007C11, + 9788: 0x00007BC9, + 9789: 0x00007BE4, + 9790: 0x00007BDB, + 9791: 0x00007BE1, + 9792: 0x00007BE9, + 9793: 0x00007BE6, + 9794: 0x00007CD5, + 9795: 0x00007CD6, + 9796: 0x00007E0A, + 9797: 0x00007E11, + 9798: 0x00007E08, + 9799: 0x00007E1B, + 9800: 0x00007E23, + 9801: 0x00007E1E, + 9802: 0x00007E1D, + 9803: 0x00007E09, + 9804: 0x00007E10, + 9805: 0x00007F79, + 9806: 0x00007FB2, + 9807: 0x00007FF0, + 9808: 0x00007FF1, + 9809: 0x00007FEE, + 9810: 0x00008028, + 9811: 0x000081B3, + 9812: 0x000081A9, + 9813: 0x000081A8, + 9814: 0x000081FB, + 9815: 0x00008208, + 9816: 0x00008258, + 9817: 0x00008259, + 9818: 0x0000854A, + 9819: 0x00008559, + 9820: 0x00008548, + 9821: 0x00008568, + 9822: 0x00008569, + 9823: 0x00008543, + 9824: 0x00008549, + 9825: 0x0000856D, + 9826: 0x0000856A, + 9827: 0x0000855E, + 9828: 0x00008783, + 9829: 0x0000879F, + 9830: 0x0000879E, + 9831: 0x000087A2, + 9832: 0x0000878D, + 9833: 0x00008861, + 9834: 0x0000892A, + 9835: 0x00008932, + 9836: 0x00008925, + 9837: 0x0000892B, + 9838: 0x00008921, + 9839: 0x000089AA, + 9840: 0x000089A6, + 9841: 0x00008AE6, + 9842: 0x00008AFA, + 9843: 0x00008AEB, + 9844: 0x00008AF1, + 9845: 0x00008B00, + 9846: 0x00008ADC, + 9847: 0x00008AE7, + 9848: 0x00008AEE, + 9849: 0x00008AFE, + 9850: 0x00008B01, + 9851: 0x00008B02, + 9852: 0x00008AF7, + 9853: 0x00008AED, + 9854: 0x00008AF3, + 9855: 0x00008AF6, + 9856: 0x00008AFC, + 9857: 0x00008C6B, + 9858: 0x00008C6D, + 9859: 0x00008C93, + 9860: 0x00008CF4, + 9861: 0x00008E44, + 9862: 0x00008E31, + 9863: 0x00008E34, + 9864: 0x00008E42, + 9865: 0x00008E39, + 9866: 0x00008E35, + 9867: 0x00008F3B, + 9868: 0x00008F2F, + 9869: 0x00008F38, + 9870: 0x00008F33, + 9871: 0x00008FA8, + 9872: 0x00008FA6, + 9873: 0x00009075, + 9874: 0x00009074, + 9875: 0x00009078, + 9876: 0x00009072, + 9877: 0x0000907C, + 9878: 0x0000907A, + 9879: 0x00009134, + 9880: 0x00009192, + 9881: 0x00009320, + 9882: 0x00009336, + 9883: 0x000092F8, + 9884: 0x00009333, + 9885: 0x0000932F, + 9886: 0x00009322, + 9887: 0x000092FC, + 9888: 0x0000932B, + 9889: 0x00009304, + 9890: 0x0000931A, + 9891: 0x00009310, + 9892: 0x00009326, + 9893: 0x00009321, + 9894: 0x00009315, + 9895: 0x0000932E, + 9896: 0x00009319, + 9897: 0x000095BB, + 9898: 0x000096A7, + 9899: 0x000096A8, + 9900: 0x000096AA, + 9901: 0x000096D5, + 9902: 0x0000970E, + 9903: 0x00009711, + 9904: 0x00009716, + 9905: 0x0000970D, + 9906: 0x00009713, + 9907: 0x0000970F, + 9908: 0x0000975B, + 9909: 0x0000975C, + 9910: 0x00009766, + 9911: 0x00009798, + 9912: 0x00009830, + 9913: 0x00009838, + 9914: 0x0000983B, + 9915: 0x00009837, + 9916: 0x0000982D, + 9917: 0x00009839, + 9918: 0x00009824, + 9919: 0x00009910, + 9920: 0x00009928, + 9921: 0x0000991E, + 9922: 0x0000991B, + 9923: 0x00009921, + 9924: 0x0000991A, + 9925: 0x000099ED, + 9926: 0x000099E2, + 9927: 0x000099F1, + 9928: 0x00009AB8, + 9929: 0x00009ABC, + 9930: 0x00009AFB, + 9931: 0x00009AED, + 9932: 0x00009B28, + 9933: 0x00009B91, + 9934: 0x00009D15, + 9935: 0x00009D23, + 9936: 0x00009D26, + 9937: 0x00009D28, + 9938: 0x00009D12, + 9939: 0x00009D1B, + 9940: 0x00009ED8, + 9941: 0x00009ED4, + 9942: 0x00009F8D, + 9943: 0x00009F9C, + 9944: 0x0000512A, + 9945: 0x0000511F, + 9946: 0x00005121, + 9947: 0x00005132, + 9948: 0x000052F5, + 9949: 0x0000568E, + 9950: 0x00005680, + 9951: 0x00005690, + 9952: 0x00005685, + 9953: 0x00005687, + 9954: 0x0000568F, + 9955: 0x000058D5, + 9956: 0x000058D3, + 9957: 0x000058D1, + 9958: 0x000058CE, + 9959: 0x00005B30, + 9960: 0x00005B2A, + 9961: 0x00005B24, + 9962: 0x00005B7A, + 9963: 0x00005C37, + 9964: 0x00005C68, + 9965: 0x00005DBC, + 9966: 0x00005DBA, + 9967: 0x00005DBD, + 9968: 0x00005DB8, + 9969: 0x00005E6B, + 9970: 0x00005F4C, + 9971: 0x00005FBD, + 9972: 0x000061C9, + 9973: 0x000061C2, + 9974: 0x000061C7, + 9975: 0x000061E6, + 9976: 0x000061CB, + 9977: 0x00006232, + 9978: 0x00006234, + 9979: 0x000064CE, + 9980: 0x000064CA, + 9981: 0x000064D8, + 9982: 0x000064E0, + 9983: 0x000064F0, + 9984: 0x000064E6, + 9985: 0x000064EC, + 9986: 0x000064F1, + 9987: 0x000064E2, + 9988: 0x000064ED, + 9989: 0x00006582, + 9990: 0x00006583, + 9991: 0x000066D9, + 9992: 0x000066D6, + 9993: 0x00006A80, + 9994: 0x00006A94, + 9995: 0x00006A84, + 9996: 0x00006AA2, + 9997: 0x00006A9C, + 9998: 0x00006ADB, + 9999: 0x00006AA3, + 10000: 0x00006A7E, + 10001: 0x00006A97, + 10002: 0x00006A90, + 10003: 0x00006AA0, + 10004: 0x00006B5C, + 10005: 0x00006BAE, + 10006: 0x00006BDA, + 10007: 0x00006C08, + 10008: 0x00006FD8, + 10009: 0x00006FF1, + 10010: 0x00006FDF, + 10011: 0x00006FE0, + 10012: 0x00006FDB, + 10013: 0x00006FE4, + 10014: 0x00006FEB, + 10015: 0x00006FEF, + 10016: 0x00006F80, + 10017: 0x00006FEC, + 10018: 0x00006FE1, + 10019: 0x00006FE9, + 10020: 0x00006FD5, + 10021: 0x00006FEE, + 10022: 0x00006FF0, + 10023: 0x000071E7, + 10024: 0x000071DF, + 10025: 0x000071EE, + 10026: 0x000071E6, + 10027: 0x000071E5, + 10028: 0x000071ED, + 10029: 0x000071EC, + 10030: 0x000071F4, + 10031: 0x000071E0, + 10032: 0x00007235, + 10033: 0x00007246, + 10034: 0x00007370, + 10035: 0x00007372, + 10036: 0x000074A9, + 10037: 0x000074B0, + 10038: 0x000074A6, + 10039: 0x000074A8, + 10040: 0x00007646, + 10041: 0x00007642, + 10042: 0x0000764C, + 10043: 0x000076EA, + 10044: 0x000077B3, + 10045: 0x000077AA, + 10046: 0x000077B0, + 10047: 0x000077AC, + 10048: 0x000077A7, + 10049: 0x000077AD, + 10050: 0x000077EF, + 10051: 0x000078F7, + 10052: 0x000078FA, + 10053: 0x000078F4, + 10054: 0x000078EF, + 10055: 0x00007901, + 10056: 0x000079A7, + 10057: 0x000079AA, + 10058: 0x00007A57, + 10059: 0x00007ABF, + 10060: 0x00007C07, + 10061: 0x00007C0D, + 10062: 0x00007BFE, + 10063: 0x00007BF7, + 10064: 0x00007C0C, + 10065: 0x00007BE0, + 10066: 0x00007CE0, + 10067: 0x00007CDC, + 10068: 0x00007CDE, + 10069: 0x00007CE2, + 10070: 0x00007CDF, + 10071: 0x00007CD9, + 10072: 0x00007CDD, + 10073: 0x00007E2E, + 10074: 0x00007E3E, + 10075: 0x00007E46, + 10076: 0x00007E37, + 10077: 0x00007E32, + 10078: 0x00007E43, + 10079: 0x00007E2B, + 10080: 0x00007E3D, + 10081: 0x00007E31, + 10082: 0x00007E45, + 10083: 0x00007E41, + 10084: 0x00007E34, + 10085: 0x00007E39, + 10086: 0x00007E48, + 10087: 0x00007E35, + 10088: 0x00007E3F, + 10089: 0x00007E2F, + 10090: 0x00007F44, + 10091: 0x00007FF3, + 10092: 0x00007FFC, + 10093: 0x00008071, + 10094: 0x00008072, + 10095: 0x00008070, + 10096: 0x0000806F, + 10097: 0x00008073, + 10098: 0x000081C6, + 10099: 0x000081C3, + 10100: 0x000081BA, + 10101: 0x000081C2, + 10102: 0x000081C0, + 10103: 0x000081BF, + 10104: 0x000081BD, + 10105: 0x000081C9, + 10106: 0x000081BE, + 10107: 0x000081E8, + 10108: 0x00008209, + 10109: 0x00008271, + 10110: 0x000085AA, + 10111: 0x00008584, + 10112: 0x0000857E, + 10113: 0x0000859C, + 10114: 0x00008591, + 10115: 0x00008594, + 10116: 0x000085AF, + 10117: 0x0000859B, + 10118: 0x00008587, + 10119: 0x000085A8, + 10120: 0x0000858A, + 10121: 0x00008667, + 10122: 0x000087C0, + 10123: 0x000087D1, + 10124: 0x000087B3, + 10125: 0x000087D2, + 10126: 0x000087C6, + 10127: 0x000087AB, + 10128: 0x000087BB, + 10129: 0x000087BA, + 10130: 0x000087C8, + 10131: 0x000087CB, + 10132: 0x0000893B, + 10133: 0x00008936, + 10134: 0x00008944, + 10135: 0x00008938, + 10136: 0x0000893D, + 10137: 0x000089AC, + 10138: 0x00008B0E, + 10139: 0x00008B17, + 10140: 0x00008B19, + 10141: 0x00008B1B, + 10142: 0x00008B0A, + 10143: 0x00008B20, + 10144: 0x00008B1D, + 10145: 0x00008B04, + 10146: 0x00008B10, + 10147: 0x00008C41, + 10148: 0x00008C3F, + 10149: 0x00008C73, + 10150: 0x00008CFA, + 10151: 0x00008CFD, + 10152: 0x00008CFC, + 10153: 0x00008CF8, + 10154: 0x00008CFB, + 10155: 0x00008DA8, + 10156: 0x00008E49, + 10157: 0x00008E4B, + 10158: 0x00008E48, + 10159: 0x00008E4A, + 10160: 0x00008F44, + 10161: 0x00008F3E, + 10162: 0x00008F42, + 10163: 0x00008F45, + 10164: 0x00008F3F, + 10165: 0x0000907F, + 10166: 0x0000907D, + 10167: 0x00009084, + 10168: 0x00009081, + 10169: 0x00009082, + 10170: 0x00009080, + 10171: 0x00009139, + 10172: 0x000091A3, + 10173: 0x0000919E, + 10174: 0x0000919C, + 10175: 0x0000934D, + 10176: 0x00009382, + 10177: 0x00009328, + 10178: 0x00009375, + 10179: 0x0000934A, + 10180: 0x00009365, + 10181: 0x0000934B, + 10182: 0x00009318, + 10183: 0x0000937E, + 10184: 0x0000936C, + 10185: 0x0000935B, + 10186: 0x00009370, + 10187: 0x0000935A, + 10188: 0x00009354, + 10189: 0x000095CA, + 10190: 0x000095CB, + 10191: 0x000095CC, + 10192: 0x000095C8, + 10193: 0x000095C6, + 10194: 0x000096B1, + 10195: 0x000096B8, + 10196: 0x000096D6, + 10197: 0x0000971C, + 10198: 0x0000971E, + 10199: 0x000097A0, + 10200: 0x000097D3, + 10201: 0x00009846, + 10202: 0x000098B6, + 10203: 0x00009935, + 10204: 0x00009A01, + 10205: 0x000099FF, + 10206: 0x00009BAE, + 10207: 0x00009BAB, + 10208: 0x00009BAA, + 10209: 0x00009BAD, + 10210: 0x00009D3B, + 10211: 0x00009D3F, + 10212: 0x00009E8B, + 10213: 0x00009ECF, + 10214: 0x00009EDE, + 10215: 0x00009EDC, + 10216: 0x00009EDD, + 10217: 0x00009EDB, + 10218: 0x00009F3E, + 10219: 0x00009F4B, + 10220: 0x000053E2, + 10221: 0x00005695, + 10222: 0x000056AE, + 10223: 0x000058D9, + 10224: 0x000058D8, + 10225: 0x00005B38, + 10226: 0x00005F5D, + 10227: 0x000061E3, + 10228: 0x00006233, + 10229: 0x000064F4, + 10230: 0x000064F2, + 10231: 0x000064FE, + 10232: 0x00006506, + 10233: 0x000064FA, + 10234: 0x000064FB, + 10235: 0x000064F7, + 10236: 0x000065B7, + 10237: 0x000066DC, + 10238: 0x00006726, + 10239: 0x00006AB3, + 10240: 0x00006AAC, + 10241: 0x00006AC3, + 10242: 0x00006ABB, + 10243: 0x00006AB8, + 10244: 0x00006AC2, + 10245: 0x00006AAE, + 10246: 0x00006AAF, + 10247: 0x00006B5F, + 10248: 0x00006B78, + 10249: 0x00006BAF, + 10250: 0x00007009, + 10251: 0x0000700B, + 10252: 0x00006FFE, + 10253: 0x00007006, + 10254: 0x00006FFA, + 10255: 0x00007011, + 10256: 0x0000700F, + 10257: 0x000071FB, + 10258: 0x000071FC, + 10259: 0x000071FE, + 10260: 0x000071F8, + 10261: 0x00007377, + 10262: 0x00007375, + 10263: 0x000074A7, + 10264: 0x000074BF, + 10265: 0x00007515, + 10266: 0x00007656, + 10267: 0x00007658, + 10268: 0x00007652, + 10269: 0x000077BD, + 10270: 0x000077BF, + 10271: 0x000077BB, + 10272: 0x000077BC, + 10273: 0x0000790E, + 10274: 0x000079AE, + 10275: 0x00007A61, + 10276: 0x00007A62, + 10277: 0x00007A60, + 10278: 0x00007AC4, + 10279: 0x00007AC5, + 10280: 0x00007C2B, + 10281: 0x00007C27, + 10282: 0x00007C2A, + 10283: 0x00007C1E, + 10284: 0x00007C23, + 10285: 0x00007C21, + 10286: 0x00007CE7, + 10287: 0x00007E54, + 10288: 0x00007E55, + 10289: 0x00007E5E, + 10290: 0x00007E5A, + 10291: 0x00007E61, + 10292: 0x00007E52, + 10293: 0x00007E59, + 10294: 0x00007F48, + 10295: 0x00007FF9, + 10296: 0x00007FFB, + 10297: 0x00008077, + 10298: 0x00008076, + 10299: 0x000081CD, + 10300: 0x000081CF, + 10301: 0x0000820A, + 10302: 0x000085CF, + 10303: 0x000085A9, + 10304: 0x000085CD, + 10305: 0x000085D0, + 10306: 0x000085C9, + 10307: 0x000085B0, + 10308: 0x000085BA, + 10309: 0x000085B9, + 10310: 0x000085A6, + 10311: 0x000087EF, + 10312: 0x000087EC, + 10313: 0x000087F2, + 10314: 0x000087E0, + 10315: 0x00008986, + 10316: 0x000089B2, + 10317: 0x000089F4, + 10318: 0x00008B28, + 10319: 0x00008B39, + 10320: 0x00008B2C, + 10321: 0x00008B2B, + 10322: 0x00008C50, + 10323: 0x00008D05, + 10324: 0x00008E59, + 10325: 0x00008E63, + 10326: 0x00008E66, + 10327: 0x00008E64, + 10328: 0x00008E5F, + 10329: 0x00008E55, + 10330: 0x00008EC0, + 10331: 0x00008F49, + 10332: 0x00008F4D, + 10333: 0x00009087, + 10334: 0x00009083, + 10335: 0x00009088, + 10336: 0x000091AB, + 10337: 0x000091AC, + 10338: 0x000091D0, + 10339: 0x00009394, + 10340: 0x0000938A, + 10341: 0x00009396, + 10342: 0x000093A2, + 10343: 0x000093B3, + 10344: 0x000093AE, + 10345: 0x000093AC, + 10346: 0x000093B0, + 10347: 0x00009398, + 10348: 0x0000939A, + 10349: 0x00009397, + 10350: 0x000095D4, + 10351: 0x000095D6, + 10352: 0x000095D0, + 10353: 0x000095D5, + 10354: 0x000096E2, + 10355: 0x000096DC, + 10356: 0x000096D9, + 10357: 0x000096DB, + 10358: 0x000096DE, + 10359: 0x00009724, + 10360: 0x000097A3, + 10361: 0x000097A6, + 10362: 0x000097AD, + 10363: 0x000097F9, + 10364: 0x0000984D, + 10365: 0x0000984F, + 10366: 0x0000984C, + 10367: 0x0000984E, + 10368: 0x00009853, + 10369: 0x000098BA, + 10370: 0x0000993E, + 10371: 0x0000993F, + 10372: 0x0000993D, + 10373: 0x0000992E, + 10374: 0x000099A5, + 10375: 0x00009A0E, + 10376: 0x00009AC1, + 10377: 0x00009B03, + 10378: 0x00009B06, + 10379: 0x00009B4F, + 10380: 0x00009B4E, + 10381: 0x00009B4D, + 10382: 0x00009BCA, + 10383: 0x00009BC9, + 10384: 0x00009BFD, + 10385: 0x00009BC8, + 10386: 0x00009BC0, + 10387: 0x00009D51, + 10388: 0x00009D5D, + 10389: 0x00009D60, + 10390: 0x00009EE0, + 10391: 0x00009F15, + 10392: 0x00009F2C, + 10393: 0x00005133, + 10394: 0x000056A5, + 10395: 0x000058DE, + 10396: 0x000058DF, + 10397: 0x000058E2, + 10398: 0x00005BF5, + 10399: 0x00009F90, + 10400: 0x00005EEC, + 10401: 0x000061F2, + 10402: 0x000061F7, + 10403: 0x000061F6, + 10404: 0x000061F5, + 10405: 0x00006500, + 10406: 0x0000650F, + 10407: 0x000066E0, + 10408: 0x000066DD, + 10409: 0x00006AE5, + 10410: 0x00006ADD, + 10411: 0x00006ADA, + 10412: 0x00006AD3, + 10413: 0x0000701B, + 10414: 0x0000701F, + 10415: 0x00007028, + 10416: 0x0000701A, + 10417: 0x0000701D, + 10418: 0x00007015, + 10419: 0x00007018, + 10420: 0x00007206, + 10421: 0x0000720D, + 10422: 0x00007258, + 10423: 0x000072A2, + 10424: 0x00007378, + 10425: 0x0000737A, + 10426: 0x000074BD, + 10427: 0x000074CA, + 10428: 0x000074E3, + 10429: 0x00007587, + 10430: 0x00007586, + 10431: 0x0000765F, + 10432: 0x00007661, + 10433: 0x000077C7, + 10434: 0x00007919, + 10435: 0x000079B1, + 10436: 0x00007A6B, + 10437: 0x00007A69, + 10438: 0x00007C3E, + 10439: 0x00007C3F, + 10440: 0x00007C38, + 10441: 0x00007C3D, + 10442: 0x00007C37, + 10443: 0x00007C40, + 10444: 0x00007E6B, + 10445: 0x00007E6D, + 10446: 0x00007E79, + 10447: 0x00007E69, + 10448: 0x00007E6A, + 10449: 0x00007F85, + 10450: 0x00007E73, + 10451: 0x00007FB6, + 10452: 0x00007FB9, + 10453: 0x00007FB8, + 10454: 0x000081D8, + 10455: 0x000085E9, + 10456: 0x000085DD, + 10457: 0x000085EA, + 10458: 0x000085D5, + 10459: 0x000085E4, + 10460: 0x000085E5, + 10461: 0x000085F7, + 10462: 0x000087FB, + 10463: 0x00008805, + 10464: 0x0000880D, + 10465: 0x000087F9, + 10466: 0x000087FE, + 10467: 0x00008960, + 10468: 0x0000895F, + 10469: 0x00008956, + 10470: 0x0000895E, + 10471: 0x00008B41, + 10472: 0x00008B5C, + 10473: 0x00008B58, + 10474: 0x00008B49, + 10475: 0x00008B5A, + 10476: 0x00008B4E, + 10477: 0x00008B4F, + 10478: 0x00008B46, + 10479: 0x00008B59, + 10480: 0x00008D08, + 10481: 0x00008D0A, + 10482: 0x00008E7C, + 10483: 0x00008E72, + 10484: 0x00008E87, + 10485: 0x00008E76, + 10486: 0x00008E6C, + 10487: 0x00008E7A, + 10488: 0x00008E74, + 10489: 0x00008F54, + 10490: 0x00008F4E, + 10491: 0x00008FAD, + 10492: 0x0000908A, + 10493: 0x0000908B, + 10494: 0x000091B1, + 10495: 0x000091AE, + 10496: 0x000093E1, + 10497: 0x000093D1, + 10498: 0x000093DF, + 10499: 0x000093C3, + 10500: 0x000093C8, + 10501: 0x000093DC, + 10502: 0x000093DD, + 10503: 0x000093D6, + 10504: 0x000093E2, + 10505: 0x000093CD, + 10506: 0x000093D8, + 10507: 0x000093E4, + 10508: 0x000093D7, + 10509: 0x000093E8, + 10510: 0x000095DC, + 10511: 0x000096B4, + 10512: 0x000096E3, + 10513: 0x0000972A, + 10514: 0x00009727, + 10515: 0x00009761, + 10516: 0x000097DC, + 10517: 0x000097FB, + 10518: 0x0000985E, + 10519: 0x00009858, + 10520: 0x0000985B, + 10521: 0x000098BC, + 10522: 0x00009945, + 10523: 0x00009949, + 10524: 0x00009A16, + 10525: 0x00009A19, + 10526: 0x00009B0D, + 10527: 0x00009BE8, + 10528: 0x00009BE7, + 10529: 0x00009BD6, + 10530: 0x00009BDB, + 10531: 0x00009D89, + 10532: 0x00009D61, + 10533: 0x00009D72, + 10534: 0x00009D6A, + 10535: 0x00009D6C, + 10536: 0x00009E92, + 10537: 0x00009E97, + 10538: 0x00009E93, + 10539: 0x00009EB4, + 10540: 0x000052F8, + 10541: 0x000056A8, + 10542: 0x000056B7, + 10543: 0x000056B6, + 10544: 0x000056B4, + 10545: 0x000056BC, + 10546: 0x000058E4, + 10547: 0x00005B40, + 10548: 0x00005B43, + 10549: 0x00005B7D, + 10550: 0x00005BF6, + 10551: 0x00005DC9, + 10552: 0x000061F8, + 10553: 0x000061FA, + 10554: 0x00006518, + 10555: 0x00006514, + 10556: 0x00006519, + 10557: 0x000066E6, + 10558: 0x00006727, + 10559: 0x00006AEC, + 10560: 0x0000703E, + 10561: 0x00007030, + 10562: 0x00007032, + 10563: 0x00007210, + 10564: 0x0000737B, + 10565: 0x000074CF, + 10566: 0x00007662, + 10567: 0x00007665, + 10568: 0x00007926, + 10569: 0x0000792A, + 10570: 0x0000792C, + 10571: 0x0000792B, + 10572: 0x00007AC7, + 10573: 0x00007AF6, + 10574: 0x00007C4C, + 10575: 0x00007C43, + 10576: 0x00007C4D, + 10577: 0x00007CEF, + 10578: 0x00007CF0, + 10579: 0x00008FAE, + 10580: 0x00007E7D, + 10581: 0x00007E7C, + 10582: 0x00007E82, + 10583: 0x00007F4C, + 10584: 0x00008000, + 10585: 0x000081DA, + 10586: 0x00008266, + 10587: 0x000085FB, + 10588: 0x000085F9, + 10589: 0x00008611, + 10590: 0x000085FA, + 10591: 0x00008606, + 10592: 0x0000860B, + 10593: 0x00008607, + 10594: 0x0000860A, + 10595: 0x00008814, + 10596: 0x00008815, + 10597: 0x00008964, + 10598: 0x000089BA, + 10599: 0x000089F8, + 10600: 0x00008B70, + 10601: 0x00008B6C, + 10602: 0x00008B66, + 10603: 0x00008B6F, + 10604: 0x00008B5F, + 10605: 0x00008B6B, + 10606: 0x00008D0F, + 10607: 0x00008D0D, + 10608: 0x00008E89, + 10609: 0x00008E81, + 10610: 0x00008E85, + 10611: 0x00008E82, + 10612: 0x000091B4, + 10613: 0x000091CB, + 10614: 0x00009418, + 10615: 0x00009403, + 10616: 0x000093FD, + 10617: 0x000095E1, + 10618: 0x00009730, + 10619: 0x000098C4, + 10620: 0x00009952, + 10621: 0x00009951, + 10622: 0x000099A8, + 10623: 0x00009A2B, + 10624: 0x00009A30, + 10625: 0x00009A37, + 10626: 0x00009A35, + 10627: 0x00009C13, + 10628: 0x00009C0D, + 10629: 0x00009E79, + 10630: 0x00009EB5, + 10631: 0x00009EE8, + 10632: 0x00009F2F, + 10633: 0x00009F5F, + 10634: 0x00009F63, + 10635: 0x00009F61, + 10636: 0x00005137, + 10637: 0x00005138, + 10638: 0x000056C1, + 10639: 0x000056C0, + 10640: 0x000056C2, + 10641: 0x00005914, + 10642: 0x00005C6C, + 10643: 0x00005DCD, + 10644: 0x000061FC, + 10645: 0x000061FE, + 10646: 0x0000651D, + 10647: 0x0000651C, + 10648: 0x00006595, + 10649: 0x000066E9, + 10650: 0x00006AFB, + 10651: 0x00006B04, + 10652: 0x00006AFA, + 10653: 0x00006BB2, + 10654: 0x0000704C, + 10655: 0x0000721B, + 10656: 0x000072A7, + 10657: 0x000074D6, + 10658: 0x000074D4, + 10659: 0x00007669, + 10660: 0x000077D3, + 10661: 0x00007C50, + 10662: 0x00007E8F, + 10663: 0x00007E8C, + 10664: 0x00007FBC, + 10665: 0x00008617, + 10666: 0x0000862D, + 10667: 0x0000861A, + 10668: 0x00008823, + 10669: 0x00008822, + 10670: 0x00008821, + 10671: 0x0000881F, + 10672: 0x0000896A, + 10673: 0x0000896C, + 10674: 0x000089BD, + 10675: 0x00008B74, + 10676: 0x00008B77, + 10677: 0x00008B7D, + 10678: 0x00008D13, + 10679: 0x00008E8A, + 10680: 0x00008E8D, + 10681: 0x00008E8B, + 10682: 0x00008F5F, + 10683: 0x00008FAF, + 10684: 0x000091BA, + 10685: 0x0000942E, + 10686: 0x00009433, + 10687: 0x00009435, + 10688: 0x0000943A, + 10689: 0x00009438, + 10690: 0x00009432, + 10691: 0x0000942B, + 10692: 0x000095E2, + 10693: 0x00009738, + 10694: 0x00009739, + 10695: 0x00009732, + 10696: 0x000097FF, + 10697: 0x00009867, + 10698: 0x00009865, + 10699: 0x00009957, + 10700: 0x00009A45, + 10701: 0x00009A43, + 10702: 0x00009A40, + 10703: 0x00009A3E, + 10704: 0x00009ACF, + 10705: 0x00009B54, + 10706: 0x00009B51, + 10707: 0x00009C2D, + 10708: 0x00009C25, + 10709: 0x00009DAF, + 10710: 0x00009DB4, + 10711: 0x00009DC2, + 10712: 0x00009DB8, + 10713: 0x00009E9D, + 10714: 0x00009EEF, + 10715: 0x00009F19, + 10716: 0x00009F5C, + 10717: 0x00009F66, + 10718: 0x00009F67, + 10719: 0x0000513C, + 10720: 0x0000513B, + 10721: 0x000056C8, + 10722: 0x000056CA, + 10723: 0x000056C9, + 10724: 0x00005B7F, + 10725: 0x00005DD4, + 10726: 0x00005DD2, + 10727: 0x00005F4E, + 10728: 0x000061FF, + 10729: 0x00006524, + 10730: 0x00006B0A, + 10731: 0x00006B61, + 10732: 0x00007051, + 10733: 0x00007058, + 10734: 0x00007380, + 10735: 0x000074E4, + 10736: 0x0000758A, + 10737: 0x0000766E, + 10738: 0x0000766C, + 10739: 0x000079B3, + 10740: 0x00007C60, + 10741: 0x00007C5F, + 10742: 0x0000807E, + 10743: 0x0000807D, + 10744: 0x000081DF, + 10745: 0x00008972, + 10746: 0x0000896F, + 10747: 0x000089FC, + 10748: 0x00008B80, + 10749: 0x00008D16, + 10750: 0x00008D17, + 10751: 0x00008E91, + 10752: 0x00008E93, + 10753: 0x00008F61, + 10754: 0x00009148, + 10755: 0x00009444, + 10756: 0x00009451, + 10757: 0x00009452, + 10758: 0x0000973D, + 10759: 0x0000973E, + 10760: 0x000097C3, + 10761: 0x000097C1, + 10762: 0x0000986B, + 10763: 0x00009955, + 10764: 0x00009A55, + 10765: 0x00009A4D, + 10766: 0x00009AD2, + 10767: 0x00009B1A, + 10768: 0x00009C49, + 10769: 0x00009C31, + 10770: 0x00009C3E, + 10771: 0x00009C3B, + 10772: 0x00009DD3, + 10773: 0x00009DD7, + 10774: 0x00009F34, + 10775: 0x00009F6C, + 10776: 0x00009F6A, + 10777: 0x00009F94, + 10778: 0x000056CC, + 10779: 0x00005DD6, + 10780: 0x00006200, + 10781: 0x00006523, + 10782: 0x0000652B, + 10783: 0x0000652A, + 10784: 0x000066EC, + 10785: 0x00006B10, + 10786: 0x000074DA, + 10787: 0x00007ACA, + 10788: 0x00007C64, + 10789: 0x00007C63, + 10790: 0x00007C65, + 10791: 0x00007E93, + 10792: 0x00007E96, + 10793: 0x00007E94, + 10794: 0x000081E2, + 10795: 0x00008638, + 10796: 0x0000863F, + 10797: 0x00008831, + 10798: 0x00008B8A, + 10799: 0x00009090, + 10800: 0x0000908F, + 10801: 0x00009463, + 10802: 0x00009460, + 10803: 0x00009464, + 10804: 0x00009768, + 10805: 0x0000986F, + 10806: 0x0000995C, + 10807: 0x00009A5A, + 10808: 0x00009A5B, + 10809: 0x00009A57, + 10810: 0x00009AD3, + 10811: 0x00009AD4, + 10812: 0x00009AD1, + 10813: 0x00009C54, + 10814: 0x00009C57, + 10815: 0x00009C56, + 10816: 0x00009DE5, + 10817: 0x00009E9F, + 10818: 0x00009EF4, + 10819: 0x000056D1, + 10820: 0x000058E9, + 10821: 0x0000652C, + 10822: 0x0000705E, + 10823: 0x00007671, + 10824: 0x00007672, + 10825: 0x000077D7, + 10826: 0x00007F50, + 10827: 0x00007F88, + 10828: 0x00008836, + 10829: 0x00008839, + 10830: 0x00008862, + 10831: 0x00008B93, + 10832: 0x00008B92, + 10833: 0x00008B96, + 10834: 0x00008277, + 10835: 0x00008D1B, + 10836: 0x000091C0, + 10837: 0x0000946A, + 10838: 0x00009742, + 10839: 0x00009748, + 10840: 0x00009744, + 10841: 0x000097C6, + 10842: 0x00009870, + 10843: 0x00009A5F, + 10844: 0x00009B22, + 10845: 0x00009B58, + 10846: 0x00009C5F, + 10847: 0x00009DF9, + 10848: 0x00009DFA, + 10849: 0x00009E7C, + 10850: 0x00009E7D, + 10851: 0x00009F07, + 10852: 0x00009F77, + 10853: 0x00009F72, + 10854: 0x00005EF3, + 10855: 0x00006B16, + 10856: 0x00007063, + 10857: 0x00007C6C, + 10858: 0x00007C6E, + 10859: 0x0000883B, + 10860: 0x000089C0, + 10861: 0x00008EA1, + 10862: 0x000091C1, + 10863: 0x00009472, + 10864: 0x00009470, + 10865: 0x00009871, + 10866: 0x0000995E, + 10867: 0x00009AD6, + 10868: 0x00009B23, + 10869: 0x00009ECC, + 10870: 0x00007064, + 10871: 0x000077DA, + 10872: 0x00008B9A, + 10873: 0x00009477, + 10874: 0x000097C9, + 10875: 0x00009A62, + 10876: 0x00009A65, + 10877: 0x00007E9C, + 10878: 0x00008B9C, + 10879: 0x00008EAA, + 10880: 0x000091C5, + 10881: 0x0000947D, + 10882: 0x0000947E, + 10883: 0x0000947C, + 10884: 0x00009C77, + 10885: 0x00009C78, + 10886: 0x00009EF7, + 10887: 0x00008C54, + 10888: 0x0000947F, + 10889: 0x00009E1A, + 10890: 0x00007228, + 10891: 0x00009A6A, + 10892: 0x00009B31, + 10893: 0x00009E1B, + 10894: 0x00009E1E, + 10895: 0x00007C72, + 10896: 0x00002460, + 10897: 0x00002461, + 10898: 0x00002462, + 10899: 0x00002463, + 10900: 0x00002464, + 10901: 0x00002465, + 10902: 0x00002466, + 10903: 0x00002467, + 10904: 0x00002468, + 10905: 0x00002469, + 10906: 0x00002474, + 10907: 0x00002475, + 10908: 0x00002476, + 10909: 0x00002477, + 10910: 0x00002478, + 10911: 0x00002479, + 10912: 0x0000247A, + 10913: 0x0000247B, + 10914: 0x0000247C, + 10915: 0x0000247D, + 10916: 0x00002170, + 10917: 0x00002171, + 10918: 0x00002172, + 10919: 0x00002173, + 10920: 0x00002174, + 10921: 0x00002175, + 10922: 0x00002176, + 10923: 0x00002177, + 10924: 0x00002178, + 10925: 0x00002179, + 10926: 0x00004E36, + 10927: 0x00004E3F, + 10928: 0x00004E85, + 10929: 0x00004EA0, + 10930: 0x00005182, + 10931: 0x00005196, + 10932: 0x000051AB, + 10933: 0x000052F9, + 10934: 0x00005338, + 10935: 0x00005369, + 10936: 0x000053B6, + 10937: 0x0000590A, + 10938: 0x00005B80, + 10939: 0x00005DDB, + 10940: 0x00002F33, + 10941: 0x00005E7F, + 10942: 0x00005EF4, + 10943: 0x00005F50, + 10944: 0x00005F61, + 10945: 0x00006534, + 10946: 0x000065E0, + 10947: 0x00007592, + 10948: 0x00007676, + 10949: 0x00008FB5, + 10950: 0x000096B6, + 10951: 0x000000A8, + 10952: 0x000002C6, + 10953: 0x000030FD, + 10954: 0x000030FE, + 10955: 0x0000309D, + 10956: 0x0000309E, + 10957: 0x00003003, + 10958: 0x00004EDD, + 10959: 0x00003005, + 10960: 0x00003006, + 10961: 0x00003007, + 10962: 0x000030FC, + 10963: 0x0000FF3B, + 10964: 0x0000FF3D, + 10965: 0x0000273D, + 10966: 0x00003041, + 10967: 0x00003042, + 10968: 0x00003043, + 10969: 0x00003044, + 10970: 0x00003045, + 10971: 0x00003046, + 10972: 0x00003047, + 10973: 0x00003048, + 10974: 0x00003049, + 10975: 0x0000304A, + 10976: 0x0000304B, + 10977: 0x0000304C, + 10978: 0x0000304D, + 10979: 0x0000304E, + 10980: 0x0000304F, + 10981: 0x00003050, + 10982: 0x00003051, + 10983: 0x00003052, + 10984: 0x00003053, + 10985: 0x00003054, + 10986: 0x00003055, + 10987: 0x00003056, + 10988: 0x00003057, + 10989: 0x00003058, + 10990: 0x00003059, + 10991: 0x0000305A, + 10992: 0x0000305B, + 10993: 0x0000305C, + 10994: 0x0000305D, + 10995: 0x0000305E, + 10996: 0x0000305F, + 10997: 0x00003060, + 10998: 0x00003061, + 10999: 0x00003062, + 11000: 0x00003063, + 11001: 0x00003064, + 11002: 0x00003065, + 11003: 0x00003066, + 11004: 0x00003067, + 11005: 0x00003068, + 11006: 0x00003069, + 11007: 0x0000306A, + 11008: 0x0000306B, + 11009: 0x0000306C, + 11010: 0x0000306D, + 11011: 0x0000306E, + 11012: 0x0000306F, + 11013: 0x00003070, + 11014: 0x00003071, + 11015: 0x00003072, + 11016: 0x00003073, + 11017: 0x00003074, + 11018: 0x00003075, + 11019: 0x00003076, + 11020: 0x00003077, + 11021: 0x00003078, + 11022: 0x00003079, + 11023: 0x0000307A, + 11024: 0x0000307B, + 11025: 0x0000307C, + 11026: 0x0000307D, + 11027: 0x0000307E, + 11028: 0x0000307F, + 11029: 0x00003080, + 11030: 0x00003081, + 11031: 0x00003082, + 11032: 0x00003083, + 11033: 0x00003084, + 11034: 0x00003085, + 11035: 0x00003086, + 11036: 0x00003087, + 11037: 0x00003088, + 11038: 0x00003089, + 11039: 0x0000308A, + 11040: 0x0000308B, + 11041: 0x0000308C, + 11042: 0x0000308D, + 11043: 0x0000308E, + 11044: 0x0000308F, + 11045: 0x00003090, + 11046: 0x00003091, + 11047: 0x00003092, + 11048: 0x00003093, + 11049: 0x000030A1, + 11050: 0x000030A2, + 11051: 0x000030A3, + 11052: 0x000030A4, + 11053: 0x000030A5, + 11054: 0x000030A6, + 11055: 0x000030A7, + 11056: 0x000030A8, + 11057: 0x000030A9, + 11058: 0x000030AA, + 11059: 0x000030AB, + 11060: 0x000030AC, + 11061: 0x000030AD, + 11062: 0x000030AE, + 11063: 0x000030AF, + 11064: 0x000030B0, + 11065: 0x000030B1, + 11066: 0x000030B2, + 11067: 0x000030B3, + 11068: 0x000030B4, + 11069: 0x000030B5, + 11070: 0x000030B6, + 11071: 0x000030B7, + 11072: 0x000030B8, + 11073: 0x000030B9, + 11074: 0x000030BA, + 11075: 0x000030BB, + 11076: 0x000030BC, + 11077: 0x000030BD, + 11078: 0x000030BE, + 11079: 0x000030BF, + 11080: 0x000030C0, + 11081: 0x000030C1, + 11082: 0x000030C2, + 11083: 0x000030C3, + 11084: 0x000030C4, + 11085: 0x000030C5, + 11086: 0x000030C6, + 11087: 0x000030C7, + 11088: 0x000030C8, + 11089: 0x000030C9, + 11090: 0x000030CA, + 11091: 0x000030CB, + 11092: 0x000030CC, + 11093: 0x000030CD, + 11094: 0x000030CE, + 11095: 0x000030CF, + 11096: 0x000030D0, + 11097: 0x000030D1, + 11098: 0x000030D2, + 11099: 0x000030D3, + 11100: 0x000030D4, + 11101: 0x000030D5, + 11102: 0x000030D6, + 11103: 0x000030D7, + 11104: 0x000030D8, + 11105: 0x000030D9, + 11106: 0x000030DA, + 11107: 0x000030DB, + 11108: 0x000030DC, + 11109: 0x000030DD, + 11110: 0x000030DE, + 11111: 0x000030DF, + 11112: 0x000030E0, + 11113: 0x000030E1, + 11114: 0x000030E2, + 11115: 0x000030E3, + 11116: 0x000030E4, + 11117: 0x000030E5, + 11118: 0x000030E6, + 11119: 0x000030E7, + 11120: 0x000030E8, + 11121: 0x000030E9, + 11122: 0x000030EA, + 11123: 0x000030EB, + 11124: 0x000030EC, + 11125: 0x000030ED, + 11126: 0x000030EE, + 11127: 0x000030EF, + 11128: 0x000030F0, + 11129: 0x000030F1, + 11130: 0x000030F2, + 11131: 0x000030F3, + 11132: 0x000030F4, + 11133: 0x000030F5, + 11134: 0x000030F6, + 11135: 0x00000410, + 11136: 0x00000411, + 11137: 0x00000412, + 11138: 0x00000413, + 11139: 0x00000414, + 11140: 0x00000415, + 11141: 0x00000401, + 11142: 0x00000416, + 11143: 0x00000417, + 11144: 0x00000418, + 11145: 0x00000419, + 11146: 0x0000041A, + 11147: 0x0000041B, + 11148: 0x0000041C, + 11149: 0x0000041D, + 11150: 0x0000041E, + 11151: 0x0000041F, + 11152: 0x00000420, + 11153: 0x00000421, + 11154: 0x00000422, + 11155: 0x00000423, + 11156: 0x00000424, + 11157: 0x00000425, + 11158: 0x00000426, + 11159: 0x00000427, + 11160: 0x00000428, + 11161: 0x00000429, + 11162: 0x0000042A, + 11163: 0x0000042B, + 11164: 0x0000042C, + 11165: 0x0000042D, + 11166: 0x0000042E, + 11167: 0x0000042F, + 11168: 0x00000430, + 11169: 0x00000431, + 11170: 0x00000432, + 11171: 0x00000433, + 11172: 0x00000434, + 11173: 0x00000435, + 11174: 0x00000451, + 11175: 0x00000436, + 11176: 0x00000437, + 11177: 0x00000438, + 11178: 0x00000439, + 11179: 0x0000043A, + 11180: 0x0000043B, + 11181: 0x0000043C, + 11182: 0x0000043D, + 11183: 0x0000043E, + 11184: 0x0000043F, + 11185: 0x00000440, + 11186: 0x00000441, + 11187: 0x00000442, + 11188: 0x00000443, + 11189: 0x00000444, + 11190: 0x00000445, + 11191: 0x00000446, + 11192: 0x00000447, + 11193: 0x00000448, + 11194: 0x00000449, + 11195: 0x0000044A, + 11196: 0x0000044B, + 11197: 0x0000044C, + 11198: 0x0000044D, + 11199: 0x0000044E, + 11200: 0x0000044F, + 11201: 0x000021E7, + 11202: 0x000021B8, + 11203: 0x000021B9, + 11204: 0x000031CF, + 11205: 0x000200CC, + 11206: 0x00004E5A, + 11207: 0x0002008A, + 11208: 0x00005202, + 11209: 0x00004491, + 11210: 0x00009FB0, + 11211: 0x00005188, + 11212: 0x00009FB1, + 11213: 0x00027607, + 11254: 0x0000FFE2, + 11255: 0x0000FFE4, + 11256: 0x0000FF07, + 11257: 0x0000FF02, + 11258: 0x00003231, + 11259: 0x00002116, + 11260: 0x00002121, + 11261: 0x0000309B, + 11262: 0x0000309C, + 11263: 0x00002E80, + 11264: 0x00002E84, + 11265: 0x00002E86, + 11266: 0x00002E87, + 11267: 0x00002E88, + 11268: 0x00002E8A, + 11269: 0x00002E8C, + 11270: 0x00002E8D, + 11271: 0x00002E95, + 11272: 0x00002E9C, + 11273: 0x00002E9D, + 11274: 0x00002EA5, + 11275: 0x00002EA7, + 11276: 0x00002EAA, + 11277: 0x00002EAC, + 11278: 0x00002EAE, + 11279: 0x00002EB6, + 11280: 0x00002EBC, + 11281: 0x00002EBE, + 11282: 0x00002EC6, + 11283: 0x00002ECA, + 11284: 0x00002ECC, + 11285: 0x00002ECD, + 11286: 0x00002ECF, + 11287: 0x00002ED6, + 11288: 0x00002ED7, + 11289: 0x00002EDE, + 11290: 0x00002EE3, + 11294: 0x00000283, + 11295: 0x00000250, + 11296: 0x0000025B, + 11297: 0x00000254, + 11298: 0x00000275, + 11299: 0x00000153, + 11300: 0x000000F8, + 11301: 0x0000014B, + 11302: 0x0000028A, + 11303: 0x0000026A, + 11304: 0x00004E42, + 11305: 0x00004E5C, + 11306: 0x000051F5, + 11307: 0x0000531A, + 11308: 0x00005382, + 11309: 0x00004E07, + 11310: 0x00004E0C, + 11311: 0x00004E47, + 11312: 0x00004E8D, + 11313: 0x000056D7, + 11314: 0x0000FA0C, + 11315: 0x00005C6E, + 11316: 0x00005F73, + 11317: 0x00004E0F, + 11318: 0x00005187, + 11319: 0x00004E0E, + 11320: 0x00004E2E, + 11321: 0x00004E93, + 11322: 0x00004EC2, + 11323: 0x00004EC9, + 11324: 0x00004EC8, + 11325: 0x00005198, + 11326: 0x000052FC, + 11327: 0x0000536C, + 11328: 0x000053B9, + 11329: 0x00005720, + 11330: 0x00005903, + 11331: 0x0000592C, + 11332: 0x00005C10, + 11333: 0x00005DFF, + 11334: 0x000065E1, + 11335: 0x00006BB3, + 11336: 0x00006BCC, + 11337: 0x00006C14, + 11338: 0x0000723F, + 11339: 0x00004E31, + 11340: 0x00004E3C, + 11341: 0x00004EE8, + 11342: 0x00004EDC, + 11343: 0x00004EE9, + 11344: 0x00004EE1, + 11345: 0x00004EDD, + 11346: 0x00004EDA, + 11347: 0x0000520C, + 11348: 0x0000531C, + 11349: 0x0000534C, + 11350: 0x00005722, + 11351: 0x00005723, + 11352: 0x00005917, + 11353: 0x0000592F, + 11354: 0x00005B81, + 11355: 0x00005B84, + 11356: 0x00005C12, + 11357: 0x00005C3B, + 11358: 0x00005C74, + 11359: 0x00005C73, + 11360: 0x00005E04, + 11361: 0x00005E80, + 11362: 0x00005E82, + 11363: 0x00005FC9, + 11364: 0x00006209, + 11365: 0x00006250, + 11366: 0x00006C15, + 11367: 0x00006C36, + 11368: 0x00006C43, + 11369: 0x00006C3F, + 11370: 0x00006C3B, + 11371: 0x000072AE, + 11372: 0x000072B0, + 11373: 0x0000738A, + 11374: 0x000079B8, + 11375: 0x0000808A, + 11376: 0x0000961E, + 11377: 0x00004F0E, + 11378: 0x00004F18, + 11379: 0x00004F2C, + 11380: 0x00004EF5, + 11381: 0x00004F14, + 11382: 0x00004EF1, + 11383: 0x00004F00, + 11384: 0x00004EF7, + 11385: 0x00004F08, + 11386: 0x00004F1D, + 11387: 0x00004F02, + 11388: 0x00004F05, + 11389: 0x00004F22, + 11390: 0x00004F13, + 11391: 0x00004F04, + 11392: 0x00004EF4, + 11393: 0x00004F12, + 11394: 0x000051B1, + 11395: 0x00005213, + 11396: 0x00005209, + 11397: 0x00005210, + 11398: 0x000052A6, + 11399: 0x00005322, + 11400: 0x0000531F, + 11401: 0x0000534D, + 11402: 0x0000538A, + 11403: 0x00005407, + 11404: 0x000056E1, + 11405: 0x000056DF, + 11406: 0x0000572E, + 11407: 0x0000572A, + 11408: 0x00005734, + 11409: 0x0000593C, + 11410: 0x00005980, + 11411: 0x0000597C, + 11412: 0x00005985, + 11413: 0x0000597B, + 11414: 0x0000597E, + 11415: 0x00005977, + 11416: 0x0000597F, + 11417: 0x00005B56, + 11418: 0x00005C15, + 11419: 0x00005C25, + 11420: 0x00005C7C, + 11421: 0x00005C7A, + 11422: 0x00005C7B, + 11423: 0x00005C7E, + 11424: 0x00005DDF, + 11425: 0x00005E75, + 11426: 0x00005E84, + 11427: 0x00005F02, + 11428: 0x00005F1A, + 11429: 0x00005F74, + 11430: 0x00005FD5, + 11431: 0x00005FD4, + 11432: 0x00005FCF, + 11433: 0x0000625C, + 11434: 0x0000625E, + 11435: 0x00006264, + 11436: 0x00006261, + 11437: 0x00006266, + 11438: 0x00006262, + 11439: 0x00006259, + 11440: 0x00006260, + 11441: 0x0000625A, + 11442: 0x00006265, + 11443: 0x000065EF, + 11444: 0x000065EE, + 11445: 0x0000673E, + 11446: 0x00006739, + 11447: 0x00006738, + 11448: 0x0000673B, + 11449: 0x0000673A, + 11450: 0x0000673F, + 11451: 0x0000673C, + 11452: 0x00006733, + 11453: 0x00006C18, + 11454: 0x00006C46, + 11455: 0x00006C52, + 11456: 0x00006C5C, + 11457: 0x00006C4F, + 11458: 0x00006C4A, + 11459: 0x00006C54, + 11460: 0x00006C4B, + 11461: 0x00006C4C, + 11462: 0x00007071, + 11463: 0x0000725E, + 11464: 0x000072B4, + 11465: 0x000072B5, + 11466: 0x0000738E, + 11467: 0x0000752A, + 11468: 0x0000767F, + 11469: 0x00007A75, + 11470: 0x00007F51, + 11471: 0x00008278, + 11472: 0x0000827C, + 11473: 0x00008280, + 11474: 0x0000827D, + 11475: 0x0000827F, + 11476: 0x0000864D, + 11477: 0x0000897E, + 11478: 0x00009099, + 11479: 0x00009097, + 11480: 0x00009098, + 11481: 0x0000909B, + 11482: 0x00009094, + 11483: 0x00009622, + 11484: 0x00009624, + 11485: 0x00009620, + 11486: 0x00009623, + 11487: 0x00004F56, + 11488: 0x00004F3B, + 11489: 0x00004F62, + 11490: 0x00004F49, + 11491: 0x00004F53, + 11492: 0x00004F64, + 11493: 0x00004F3E, + 11494: 0x00004F67, + 11495: 0x00004F52, + 11496: 0x00004F5F, + 11497: 0x00004F41, + 11498: 0x00004F58, + 11499: 0x00004F2D, + 11500: 0x00004F33, + 11501: 0x00004F3F, + 11502: 0x00004F61, + 11503: 0x0000518F, + 11504: 0x000051B9, + 11505: 0x0000521C, + 11506: 0x0000521E, + 11507: 0x00005221, + 11508: 0x000052AD, + 11509: 0x000052AE, + 11510: 0x00005309, + 11511: 0x00005363, + 11512: 0x00005372, + 11513: 0x0000538E, + 11514: 0x0000538F, + 11515: 0x00005430, + 11516: 0x00005437, + 11517: 0x0000542A, + 11518: 0x00005454, + 11519: 0x00005445, + 11520: 0x00005419, + 11521: 0x0000541C, + 11522: 0x00005425, + 11523: 0x00005418, + 11524: 0x0000543D, + 11525: 0x0000544F, + 11526: 0x00005441, + 11527: 0x00005428, + 11528: 0x00005424, + 11529: 0x00005447, + 11530: 0x000056EE, + 11531: 0x000056E7, + 11532: 0x000056E5, + 11533: 0x00005741, + 11534: 0x00005745, + 11535: 0x0000574C, + 11536: 0x00005749, + 11537: 0x0000574B, + 11538: 0x00005752, + 11539: 0x00005906, + 11540: 0x00005940, + 11541: 0x000059A6, + 11542: 0x00005998, + 11543: 0x000059A0, + 11544: 0x00005997, + 11545: 0x0000598E, + 11546: 0x000059A2, + 11547: 0x00005990, + 11548: 0x0000598F, + 11549: 0x000059A7, + 11550: 0x000059A1, + 11551: 0x00005B8E, + 11552: 0x00005B92, + 11553: 0x00005C28, + 11554: 0x00005C2A, + 11555: 0x00005C8D, + 11556: 0x00005C8F, + 11557: 0x00005C88, + 11558: 0x00005C8B, + 11559: 0x00005C89, + 11560: 0x00005C92, + 11561: 0x00005C8A, + 11562: 0x00005C86, + 11563: 0x00005C93, + 11564: 0x00005C95, + 11565: 0x00005DE0, + 11566: 0x00005E0A, + 11567: 0x00005E0E, + 11568: 0x00005E8B, + 11569: 0x00005E89, + 11570: 0x00005E8C, + 11571: 0x00005E88, + 11572: 0x00005E8D, + 11573: 0x00005F05, + 11574: 0x00005F1D, + 11575: 0x00005F78, + 11576: 0x00005F76, + 11577: 0x00005FD2, + 11578: 0x00005FD1, + 11579: 0x00005FD0, + 11580: 0x00005FED, + 11581: 0x00005FE8, + 11582: 0x00005FEE, + 11583: 0x00005FF3, + 11584: 0x00005FE1, + 11585: 0x00005FE4, + 11586: 0x00005FE3, + 11587: 0x00005FFA, + 11588: 0x00005FEF, + 11589: 0x00005FF7, + 11590: 0x00005FFB, + 11591: 0x00006000, + 11592: 0x00005FF4, + 11593: 0x0000623A, + 11594: 0x00006283, + 11595: 0x0000628C, + 11596: 0x0000628E, + 11597: 0x0000628F, + 11598: 0x00006294, + 11599: 0x00006287, + 11600: 0x00006271, + 11601: 0x0000627B, + 11602: 0x0000627A, + 11603: 0x00006270, + 11604: 0x00006281, + 11605: 0x00006288, + 11606: 0x00006277, + 11607: 0x0000627D, + 11608: 0x00006272, + 11609: 0x00006274, + 11610: 0x00006537, + 11611: 0x000065F0, + 11612: 0x000065F4, + 11613: 0x000065F3, + 11614: 0x000065F2, + 11615: 0x000065F5, + 11616: 0x00006745, + 11617: 0x00006747, + 11618: 0x00006759, + 11619: 0x00006755, + 11620: 0x0000674C, + 11621: 0x00006748, + 11622: 0x0000675D, + 11623: 0x0000674D, + 11624: 0x0000675A, + 11625: 0x0000674B, + 11626: 0x00006BD0, + 11627: 0x00006C19, + 11628: 0x00006C1A, + 11629: 0x00006C78, + 11630: 0x00006C67, + 11631: 0x00006C6B, + 11632: 0x00006C84, + 11633: 0x00006C8B, + 11634: 0x00006C8F, + 11635: 0x00006C71, + 11636: 0x00006C6F, + 11637: 0x00006C69, + 11638: 0x00006C9A, + 11639: 0x00006C6D, + 11640: 0x00006C87, + 11641: 0x00006C95, + 11642: 0x00006C9C, + 11643: 0x00006C66, + 11644: 0x00006C73, + 11645: 0x00006C65, + 11646: 0x00006C7B, + 11647: 0x00006C8E, + 11648: 0x00007074, + 11649: 0x0000707A, + 11650: 0x00007263, + 11651: 0x000072BF, + 11652: 0x000072BD, + 11653: 0x000072C3, + 11654: 0x000072C6, + 11655: 0x000072C1, + 11656: 0x000072BA, + 11657: 0x000072C5, + 11658: 0x00007395, + 11659: 0x00007397, + 11660: 0x00007393, + 11661: 0x00007394, + 11662: 0x00007392, + 11663: 0x0000753A, + 11664: 0x00007539, + 11665: 0x00007594, + 11666: 0x00007595, + 11667: 0x00007681, + 11668: 0x0000793D, + 11669: 0x00008034, + 11670: 0x00008095, + 11671: 0x00008099, + 11672: 0x00008090, + 11673: 0x00008092, + 11674: 0x0000809C, + 11675: 0x00008290, + 11676: 0x0000828F, + 11677: 0x00008285, + 11678: 0x0000828E, + 11679: 0x00008291, + 11680: 0x00008293, + 11681: 0x0000828A, + 11682: 0x00008283, + 11683: 0x00008284, + 11684: 0x00008C78, + 11685: 0x00008FC9, + 11686: 0x00008FBF, + 11687: 0x0000909F, + 11688: 0x000090A1, + 11689: 0x000090A5, + 11690: 0x0000909E, + 11691: 0x000090A7, + 11692: 0x000090A0, + 11693: 0x00009630, + 11694: 0x00009628, + 11695: 0x0000962F, + 11696: 0x0000962D, + 11697: 0x00004E33, + 11698: 0x00004F98, + 11699: 0x00004F7C, + 11700: 0x00004F85, + 11701: 0x00004F7D, + 11702: 0x00004F80, + 11703: 0x00004F87, + 11704: 0x00004F76, + 11705: 0x00004F74, + 11706: 0x00004F89, + 11707: 0x00004F84, + 11708: 0x00004F77, + 11709: 0x00004F4C, + 11710: 0x00004F97, + 11711: 0x00004F6A, + 11712: 0x00004F9A, + 11713: 0x00004F79, + 11714: 0x00004F81, + 11715: 0x00004F78, + 11716: 0x00004F90, + 11717: 0x00004F9C, + 11718: 0x00004F94, + 11719: 0x00004F9E, + 11720: 0x00004F92, + 11721: 0x00004F82, + 11722: 0x00004F95, + 11723: 0x00004F6B, + 11724: 0x00004F6E, + 11725: 0x0000519E, + 11726: 0x000051BC, + 11727: 0x000051BE, + 11728: 0x00005235, + 11729: 0x00005232, + 11730: 0x00005233, + 11731: 0x00005246, + 11732: 0x00005231, + 11733: 0x000052BC, + 11734: 0x0000530A, + 11735: 0x0000530B, + 11736: 0x0000533C, + 11737: 0x00005392, + 11738: 0x00005394, + 11739: 0x00005487, + 11740: 0x0000547F, + 11741: 0x00005481, + 11742: 0x00005491, + 11743: 0x00005482, + 11744: 0x00005488, + 11745: 0x0000546B, + 11746: 0x0000547A, + 11747: 0x0000547E, + 11748: 0x00005465, + 11749: 0x0000546C, + 11750: 0x00005474, + 11751: 0x00005466, + 11752: 0x0000548D, + 11753: 0x0000546F, + 11754: 0x00005461, + 11755: 0x00005460, + 11756: 0x00005498, + 11757: 0x00005463, + 11758: 0x00005467, + 11759: 0x00005464, + 11760: 0x000056F7, + 11761: 0x000056F9, + 11762: 0x0000576F, + 11763: 0x00005772, + 11764: 0x0000576D, + 11765: 0x0000576B, + 11766: 0x00005771, + 11767: 0x00005770, + 11768: 0x00005776, + 11769: 0x00005780, + 11770: 0x00005775, + 11771: 0x0000577B, + 11772: 0x00005773, + 11773: 0x00005774, + 11774: 0x00005762, + 11775: 0x00005768, + 11776: 0x0000577D, + 11777: 0x0000590C, + 11778: 0x00005945, + 11779: 0x000059B5, + 11780: 0x000059BA, + 11781: 0x000059CF, + 11782: 0x000059CE, + 11783: 0x000059B2, + 11784: 0x000059CC, + 11785: 0x000059C1, + 11786: 0x000059B6, + 11787: 0x000059BC, + 11788: 0x000059C3, + 11789: 0x000059D6, + 11790: 0x000059B1, + 11791: 0x000059BD, + 11792: 0x000059C0, + 11793: 0x000059C8, + 11794: 0x000059B4, + 11795: 0x000059C7, + 11796: 0x00005B62, + 11797: 0x00005B65, + 11798: 0x00005B93, + 11799: 0x00005B95, + 11800: 0x00005C44, + 11801: 0x00005C47, + 11802: 0x00005CAE, + 11803: 0x00005CA4, + 11804: 0x00005CA0, + 11805: 0x00005CB5, + 11806: 0x00005CAF, + 11807: 0x00005CA8, + 11808: 0x00005CAC, + 11809: 0x00005C9F, + 11810: 0x00005CA3, + 11811: 0x00005CAD, + 11812: 0x00005CA2, + 11813: 0x00005CAA, + 11814: 0x00005CA7, + 11815: 0x00005C9D, + 11816: 0x00005CA5, + 11817: 0x00005CB6, + 11818: 0x00005CB0, + 11819: 0x00005CA6, + 11820: 0x00005E17, + 11821: 0x00005E14, + 11822: 0x00005E19, + 11823: 0x00005F28, + 11824: 0x00005F22, + 11825: 0x00005F23, + 11826: 0x00005F24, + 11827: 0x00005F54, + 11828: 0x00005F82, + 11829: 0x00005F7E, + 11830: 0x00005F7D, + 11831: 0x00005FDE, + 11832: 0x00005FE5, + 11833: 0x0000602D, + 11834: 0x00006026, + 11835: 0x00006019, + 11836: 0x00006032, + 11837: 0x0000600B, + 11838: 0x00006034, + 11839: 0x0000600A, + 11840: 0x00006017, + 11841: 0x00006033, + 11842: 0x0000601A, + 11843: 0x0000601E, + 11844: 0x0000602C, + 11845: 0x00006022, + 11846: 0x0000600D, + 11847: 0x00006010, + 11848: 0x0000602E, + 11849: 0x00006013, + 11850: 0x00006011, + 11851: 0x0000600C, + 11852: 0x00006009, + 11853: 0x0000601C, + 11854: 0x00006214, + 11855: 0x0000623D, + 11856: 0x000062AD, + 11857: 0x000062B4, + 11858: 0x000062D1, + 11859: 0x000062BE, + 11860: 0x000062AA, + 11861: 0x000062B6, + 11862: 0x000062CA, + 11863: 0x000062AE, + 11864: 0x000062B3, + 11865: 0x000062AF, + 11866: 0x000062BB, + 11867: 0x000062A9, + 11868: 0x000062B0, + 11869: 0x000062B8, + 11870: 0x0000653D, + 11871: 0x000065A8, + 11872: 0x000065BB, + 11873: 0x00006609, + 11874: 0x000065FC, + 11875: 0x00006604, + 11876: 0x00006612, + 11877: 0x00006608, + 11878: 0x000065FB, + 11879: 0x00006603, + 11880: 0x0000660B, + 11881: 0x0000660D, + 11882: 0x00006605, + 11883: 0x000065FD, + 11884: 0x00006611, + 11885: 0x00006610, + 11886: 0x000066F6, + 11887: 0x0000670A, + 11888: 0x00006785, + 11889: 0x0000676C, + 11890: 0x0000678E, + 11891: 0x00006792, + 11892: 0x00006776, + 11893: 0x0000677B, + 11894: 0x00006798, + 11895: 0x00006786, + 11896: 0x00006784, + 11897: 0x00006774, + 11898: 0x0000678D, + 11899: 0x0000678C, + 11900: 0x0000677A, + 11901: 0x0000679F, + 11902: 0x00006791, + 11903: 0x00006799, + 11904: 0x00006783, + 11905: 0x0000677D, + 11906: 0x00006781, + 11907: 0x00006778, + 11908: 0x00006779, + 11909: 0x00006794, + 11910: 0x00006B25, + 11911: 0x00006B80, + 11912: 0x00006B7E, + 11913: 0x00006BDE, + 11914: 0x00006C1D, + 11915: 0x00006C93, + 11916: 0x00006CEC, + 11917: 0x00006CEB, + 11918: 0x00006CEE, + 11919: 0x00006CD9, + 11920: 0x00006CB6, + 11921: 0x00006CD4, + 11922: 0x00006CAD, + 11923: 0x00006CE7, + 11924: 0x00006CB7, + 11925: 0x00006CD0, + 11926: 0x00006CC2, + 11927: 0x00006CBA, + 11928: 0x00006CC3, + 11929: 0x00006CC6, + 11930: 0x00006CED, + 11931: 0x00006CF2, + 11932: 0x00006CD2, + 11933: 0x00006CDD, + 11934: 0x00006CB4, + 11935: 0x00006C8A, + 11936: 0x00006C9D, + 11937: 0x00006C80, + 11938: 0x00006CDE, + 11939: 0x00006CC0, + 11940: 0x00006D30, + 11941: 0x00006CCD, + 11942: 0x00006CC7, + 11943: 0x00006CB0, + 11944: 0x00006CF9, + 11945: 0x00006CCF, + 11946: 0x00006CE9, + 11947: 0x00006CD1, + 11948: 0x00007094, + 11949: 0x00007098, + 11950: 0x00007085, + 11951: 0x00007093, + 11952: 0x00007086, + 11953: 0x00007084, + 11954: 0x00007091, + 11955: 0x00007096, + 11956: 0x00007082, + 11957: 0x0000709A, + 11958: 0x00007083, + 11959: 0x0000726A, + 11960: 0x000072D6, + 11961: 0x000072CB, + 11962: 0x000072D8, + 11963: 0x000072C9, + 11964: 0x000072DC, + 11965: 0x000072D2, + 11966: 0x000072D4, + 11967: 0x000072DA, + 11968: 0x000072CC, + 11969: 0x000072D1, + 11970: 0x000073A4, + 11971: 0x000073A1, + 11972: 0x000073AD, + 11973: 0x000073A6, + 11974: 0x000073A2, + 11975: 0x000073A0, + 11976: 0x000073AC, + 11977: 0x0000739D, + 11978: 0x000074DD, + 11979: 0x000074E8, + 11980: 0x0000753F, + 11981: 0x00007540, + 11982: 0x0000753E, + 11983: 0x0000758C, + 11984: 0x00007598, + 11985: 0x000076AF, + 11986: 0x000076F3, + 11987: 0x000076F1, + 11988: 0x000076F0, + 11989: 0x000076F5, + 11990: 0x000077F8, + 11991: 0x000077FC, + 11992: 0x000077F9, + 11993: 0x000077FB, + 11994: 0x000077FA, + 11995: 0x000077F7, + 11996: 0x00007942, + 11997: 0x0000793F, + 11998: 0x000079C5, + 11999: 0x00007A78, + 12000: 0x00007A7B, + 12001: 0x00007AFB, + 12002: 0x00007C75, + 12003: 0x00007CFD, + 12004: 0x00008035, + 12005: 0x0000808F, + 12006: 0x000080AE, + 12007: 0x000080A3, + 12008: 0x000080B8, + 12009: 0x000080B5, + 12010: 0x000080AD, + 12011: 0x00008220, + 12012: 0x000082A0, + 12013: 0x000082C0, + 12014: 0x000082AB, + 12015: 0x0000829A, + 12016: 0x00008298, + 12017: 0x0000829B, + 12018: 0x000082B5, + 12019: 0x000082A7, + 12020: 0x000082AE, + 12021: 0x000082BC, + 12022: 0x0000829E, + 12023: 0x000082BA, + 12024: 0x000082B4, + 12025: 0x000082A8, + 12026: 0x000082A1, + 12027: 0x000082A9, + 12028: 0x000082C2, + 12029: 0x000082A4, + 12030: 0x000082C3, + 12031: 0x000082B6, + 12032: 0x000082A2, + 12033: 0x00008670, + 12034: 0x0000866F, + 12035: 0x0000866D, + 12036: 0x0000866E, + 12037: 0x00008C56, + 12038: 0x00008FD2, + 12039: 0x00008FCB, + 12040: 0x00008FD3, + 12041: 0x00008FCD, + 12042: 0x00008FD6, + 12043: 0x00008FD5, + 12044: 0x00008FD7, + 12045: 0x000090B2, + 12046: 0x000090B4, + 12047: 0x000090AF, + 12048: 0x000090B3, + 12049: 0x000090B0, + 12050: 0x00009639, + 12051: 0x0000963D, + 12052: 0x0000963C, + 12053: 0x0000963A, + 12054: 0x00009643, + 12055: 0x00004FCD, + 12056: 0x00004FC5, + 12057: 0x00004FD3, + 12058: 0x00004FB2, + 12059: 0x00004FC9, + 12060: 0x00004FCB, + 12061: 0x00004FC1, + 12062: 0x00004FD4, + 12063: 0x00004FDC, + 12064: 0x00004FD9, + 12065: 0x00004FBB, + 12066: 0x00004FB3, + 12067: 0x00004FDB, + 12068: 0x00004FC7, + 12069: 0x00004FD6, + 12070: 0x00004FBA, + 12071: 0x00004FC0, + 12072: 0x00004FB9, + 12073: 0x00004FEC, + 12074: 0x00005244, + 12075: 0x00005249, + 12076: 0x000052C0, + 12077: 0x000052C2, + 12078: 0x0000533D, + 12079: 0x0000537C, + 12080: 0x00005397, + 12081: 0x00005396, + 12082: 0x00005399, + 12083: 0x00005398, + 12084: 0x000054BA, + 12085: 0x000054A1, + 12086: 0x000054AD, + 12087: 0x000054A5, + 12088: 0x000054CF, + 12089: 0x000054C3, + 12090: 0x0000830D, + 12091: 0x000054B7, + 12092: 0x000054AE, + 12093: 0x000054D6, + 12094: 0x000054B6, + 12095: 0x000054C5, + 12096: 0x000054C6, + 12097: 0x000054A0, + 12098: 0x00005470, + 12099: 0x000054BC, + 12100: 0x000054A2, + 12101: 0x000054BE, + 12102: 0x00005472, + 12103: 0x000054DE, + 12104: 0x000054B0, + 12105: 0x000057B5, + 12106: 0x0000579E, + 12107: 0x0000579F, + 12108: 0x000057A4, + 12109: 0x0000578C, + 12110: 0x00005797, + 12111: 0x0000579D, + 12112: 0x0000579B, + 12113: 0x00005794, + 12114: 0x00005798, + 12115: 0x0000578F, + 12116: 0x00005799, + 12117: 0x000057A5, + 12118: 0x0000579A, + 12119: 0x00005795, + 12120: 0x000058F4, + 12121: 0x0000590D, + 12122: 0x00005953, + 12123: 0x000059E1, + 12124: 0x000059DE, + 12125: 0x000059EE, + 12126: 0x00005A00, + 12127: 0x000059F1, + 12128: 0x000059DD, + 12129: 0x000059FA, + 12130: 0x000059FD, + 12131: 0x000059FC, + 12132: 0x000059F6, + 12133: 0x000059E4, + 12134: 0x000059F2, + 12135: 0x000059F7, + 12136: 0x000059DB, + 12137: 0x000059E9, + 12138: 0x000059F3, + 12139: 0x000059F5, + 12140: 0x000059E0, + 12141: 0x000059FE, + 12142: 0x000059F4, + 12143: 0x000059ED, + 12144: 0x00005BA8, + 12145: 0x00005C4C, + 12146: 0x00005CD0, + 12147: 0x00005CD8, + 12148: 0x00005CCC, + 12149: 0x00005CD7, + 12150: 0x00005CCB, + 12151: 0x00005CDB, + 12152: 0x00005CDE, + 12153: 0x00005CDA, + 12154: 0x00005CC9, + 12155: 0x00005CC7, + 12156: 0x00005CCA, + 12157: 0x00005CD6, + 12158: 0x00005CD3, + 12159: 0x00005CD4, + 12160: 0x00005CCF, + 12161: 0x00005CC8, + 12162: 0x00005CC6, + 12163: 0x00005CCE, + 12164: 0x00005CDF, + 12165: 0x00005CF8, + 12166: 0x00005DF9, + 12167: 0x00005E21, + 12168: 0x00005E22, + 12169: 0x00005E23, + 12170: 0x00005E20, + 12171: 0x00005E24, + 12172: 0x00005EB0, + 12173: 0x00005EA4, + 12174: 0x00005EA2, + 12175: 0x00005E9B, + 12176: 0x00005EA3, + 12177: 0x00005EA5, + 12178: 0x00005F07, + 12179: 0x00005F2E, + 12180: 0x00005F56, + 12181: 0x00005F86, + 12182: 0x00006037, + 12183: 0x00006039, + 12184: 0x00006054, + 12185: 0x00006072, + 12186: 0x0000605E, + 12187: 0x00006045, + 12188: 0x00006053, + 12189: 0x00006047, + 12190: 0x00006049, + 12191: 0x0000605B, + 12192: 0x0000604C, + 12193: 0x00006040, + 12194: 0x00006042, + 12195: 0x0000605F, + 12196: 0x00006024, + 12197: 0x00006044, + 12198: 0x00006058, + 12199: 0x00006066, + 12200: 0x0000606E, + 12201: 0x00006242, + 12202: 0x00006243, + 12203: 0x000062CF, + 12204: 0x0000630D, + 12205: 0x0000630B, + 12206: 0x000062F5, + 12207: 0x0000630E, + 12208: 0x00006303, + 12209: 0x000062EB, + 12210: 0x000062F9, + 12211: 0x0000630F, + 12212: 0x0000630C, + 12213: 0x000062F8, + 12214: 0x000062F6, + 12215: 0x00006300, + 12216: 0x00006313, + 12217: 0x00006314, + 12218: 0x000062FA, + 12219: 0x00006315, + 12220: 0x000062FB, + 12221: 0x000062F0, + 12222: 0x00006541, + 12223: 0x00006543, + 12224: 0x000065AA, + 12225: 0x000065BF, + 12226: 0x00006636, + 12227: 0x00006621, + 12228: 0x00006632, + 12229: 0x00006635, + 12230: 0x0000661C, + 12231: 0x00006626, + 12232: 0x00006622, + 12233: 0x00006633, + 12234: 0x0000662B, + 12235: 0x0000663A, + 12236: 0x0000661D, + 12237: 0x00006634, + 12238: 0x00006639, + 12239: 0x0000662E, + 12240: 0x0000670F, + 12241: 0x00006710, + 12242: 0x000067C1, + 12243: 0x000067F2, + 12244: 0x000067C8, + 12245: 0x000067BA, + 12246: 0x000067DC, + 12247: 0x000067BB, + 12248: 0x000067F8, + 12249: 0x000067D8, + 12250: 0x000067C0, + 12251: 0x000067B7, + 12252: 0x000067C5, + 12253: 0x000067EB, + 12254: 0x000067E4, + 12255: 0x000067DF, + 12256: 0x000067B5, + 12257: 0x000067CD, + 12258: 0x000067B3, + 12259: 0x000067F7, + 12260: 0x000067F6, + 12261: 0x000067EE, + 12262: 0x000067E3, + 12263: 0x000067C2, + 12264: 0x000067B9, + 12265: 0x000067CE, + 12266: 0x000067E7, + 12267: 0x000067F0, + 12268: 0x000067B2, + 12269: 0x000067FC, + 12270: 0x000067C6, + 12271: 0x000067ED, + 12272: 0x000067CC, + 12273: 0x000067AE, + 12274: 0x000067E6, + 12275: 0x000067DB, + 12276: 0x000067FA, + 12277: 0x000067C9, + 12278: 0x000067CA, + 12279: 0x000067C3, + 12280: 0x000067EA, + 12281: 0x000067CB, + 12282: 0x00006B28, + 12283: 0x00006B82, + 12284: 0x00006B84, + 12285: 0x00006BB6, + 12286: 0x00006BD6, + 12287: 0x00006BD8, + 12288: 0x00006BE0, + 12289: 0x00006C20, + 12290: 0x00006C21, + 12291: 0x00006D28, + 12292: 0x00006D34, + 12293: 0x00006D2D, + 12294: 0x00006D1F, + 12295: 0x00006D3C, + 12296: 0x00006D3F, + 12297: 0x00006D12, + 12298: 0x00006D0A, + 12299: 0x00006CDA, + 12300: 0x00006D33, + 12301: 0x00006D04, + 12302: 0x00006D19, + 12303: 0x00006D3A, + 12304: 0x00006D1A, + 12305: 0x00006D11, + 12306: 0x00006D00, + 12307: 0x00006D1D, + 12308: 0x00006D42, + 12309: 0x00006D01, + 12310: 0x00006D18, + 12311: 0x00006D37, + 12312: 0x00006D03, + 12313: 0x00006D0F, + 12314: 0x00006D40, + 12315: 0x00006D07, + 12316: 0x00006D20, + 12317: 0x00006D2C, + 12318: 0x00006D08, + 12319: 0x00006D22, + 12320: 0x00006D09, + 12321: 0x00006D10, + 12322: 0x000070B7, + 12323: 0x0000709F, + 12324: 0x000070BE, + 12325: 0x000070B1, + 12326: 0x000070B0, + 12327: 0x000070A1, + 12328: 0x000070B4, + 12329: 0x000070B5, + 12330: 0x000070A9, + 12331: 0x00007241, + 12332: 0x00007249, + 12333: 0x0000724A, + 12334: 0x0000726C, + 12335: 0x00007270, + 12336: 0x00007273, + 12337: 0x0000726E, + 12338: 0x000072CA, + 12339: 0x000072E4, + 12340: 0x000072E8, + 12341: 0x000072EB, + 12342: 0x000072DF, + 12343: 0x000072EA, + 12344: 0x000072E6, + 12345: 0x000072E3, + 12346: 0x00007385, + 12347: 0x000073CC, + 12348: 0x000073C2, + 12349: 0x000073C8, + 12350: 0x000073C5, + 12351: 0x000073B9, + 12352: 0x000073B6, + 12353: 0x000073B5, + 12354: 0x000073B4, + 12355: 0x000073EB, + 12356: 0x000073BF, + 12357: 0x000073C7, + 12358: 0x000073BE, + 12359: 0x000073C3, + 12360: 0x000073C6, + 12361: 0x000073B8, + 12362: 0x000073CB, + 12363: 0x000074EC, + 12364: 0x000074EE, + 12365: 0x0000752E, + 12366: 0x00007547, + 12367: 0x00007548, + 12368: 0x000075A7, + 12369: 0x000075AA, + 12370: 0x00007679, + 12371: 0x000076C4, + 12372: 0x00007708, + 12373: 0x00007703, + 12374: 0x00007704, + 12375: 0x00007705, + 12376: 0x0000770A, + 12377: 0x000076F7, + 12378: 0x000076FB, + 12379: 0x000076FA, + 12380: 0x000077E7, + 12381: 0x000077E8, + 12382: 0x00007806, + 12383: 0x00007811, + 12384: 0x00007812, + 12385: 0x00007805, + 12386: 0x00007810, + 12387: 0x0000780F, + 12388: 0x0000780E, + 12389: 0x00007809, + 12390: 0x00007803, + 12391: 0x00007813, + 12392: 0x0000794A, + 12393: 0x0000794C, + 12394: 0x0000794B, + 12395: 0x00007945, + 12396: 0x00007944, + 12397: 0x000079D5, + 12398: 0x000079CD, + 12399: 0x000079CF, + 12400: 0x000079D6, + 12401: 0x000079CE, + 12402: 0x00007A80, + 12403: 0x00007A7E, + 12404: 0x00007AD1, + 12405: 0x00007B00, + 12406: 0x00007B01, + 12407: 0x00007C7A, + 12408: 0x00007C78, + 12409: 0x00007C79, + 12410: 0x00007C7F, + 12411: 0x00007C80, + 12412: 0x00007C81, + 12413: 0x00007D03, + 12414: 0x00007D08, + 12415: 0x00007D01, + 12416: 0x00007F58, + 12417: 0x00007F91, + 12418: 0x00007F8D, + 12419: 0x00007FBE, + 12420: 0x00008007, + 12421: 0x0000800E, + 12422: 0x0000800F, + 12423: 0x00008014, + 12424: 0x00008037, + 12425: 0x000080D8, + 12426: 0x000080C7, + 12427: 0x000080E0, + 12428: 0x000080D1, + 12429: 0x000080C8, + 12430: 0x000080C2, + 12431: 0x000080D0, + 12432: 0x000080C5, + 12433: 0x000080E3, + 12434: 0x000080D9, + 12435: 0x000080DC, + 12436: 0x000080CA, + 12437: 0x000080D5, + 12438: 0x000080C9, + 12439: 0x000080CF, + 12440: 0x000080D7, + 12441: 0x000080E6, + 12442: 0x000080CD, + 12443: 0x000081FF, + 12444: 0x00008221, + 12445: 0x00008294, + 12446: 0x000082D9, + 12447: 0x000082FE, + 12448: 0x000082F9, + 12449: 0x00008307, + 12450: 0x000082E8, + 12451: 0x00008300, + 12452: 0x000082D5, + 12453: 0x0000833A, + 12454: 0x000082EB, + 12455: 0x000082D6, + 12456: 0x000082F4, + 12457: 0x000082EC, + 12458: 0x000082E1, + 12459: 0x000082F2, + 12460: 0x000082F5, + 12461: 0x0000830C, + 12462: 0x000082FB, + 12463: 0x000082F6, + 12464: 0x000082F0, + 12465: 0x000082EA, + 12466: 0x000082E4, + 12467: 0x000082E0, + 12468: 0x000082FA, + 12469: 0x000082F3, + 12470: 0x000082ED, + 12471: 0x00008677, + 12472: 0x00008674, + 12473: 0x0000867C, + 12474: 0x00008673, + 12475: 0x00008841, + 12476: 0x0000884E, + 12477: 0x00008867, + 12478: 0x0000886A, + 12479: 0x00008869, + 12480: 0x000089D3, + 12481: 0x00008A04, + 12482: 0x00008A07, + 12483: 0x00008D72, + 12484: 0x00008FE3, + 12485: 0x00008FE1, + 12486: 0x00008FEE, + 12487: 0x00008FE0, + 12488: 0x000090F1, + 12489: 0x000090BD, + 12490: 0x000090BF, + 12491: 0x000090D5, + 12492: 0x000090C5, + 12493: 0x000090BE, + 12494: 0x000090C7, + 12495: 0x000090CB, + 12496: 0x000090C8, + 12497: 0x000091D4, + 12498: 0x000091D3, + 12499: 0x00009654, + 12500: 0x0000964F, + 12501: 0x00009651, + 12502: 0x00009653, + 12503: 0x0000964A, + 12504: 0x0000964E, + 12505: 0x0000501E, + 12506: 0x00005005, + 12507: 0x00005007, + 12508: 0x00005013, + 12509: 0x00005022, + 12510: 0x00005030, + 12511: 0x0000501B, + 12512: 0x00004FF5, + 12513: 0x00004FF4, + 12514: 0x00005033, + 12515: 0x00005037, + 12516: 0x0000502C, + 12517: 0x00004FF6, + 12518: 0x00004FF7, + 12519: 0x00005017, + 12520: 0x0000501C, + 12521: 0x00005020, + 12522: 0x00005027, + 12523: 0x00005035, + 12524: 0x0000502F, + 12525: 0x00005031, + 12526: 0x0000500E, + 12527: 0x0000515A, + 12528: 0x00005194, + 12529: 0x00005193, + 12530: 0x000051CA, + 12531: 0x000051C4, + 12532: 0x000051C5, + 12533: 0x000051C8, + 12534: 0x000051CE, + 12535: 0x00005261, + 12536: 0x0000525A, + 12537: 0x00005252, + 12538: 0x0000525E, + 12539: 0x0000525F, + 12540: 0x00005255, + 12541: 0x00005262, + 12542: 0x000052CD, + 12543: 0x0000530E, + 12544: 0x0000539E, + 12545: 0x00005526, + 12546: 0x000054E2, + 12547: 0x00005517, + 12548: 0x00005512, + 12549: 0x000054E7, + 12550: 0x000054F3, + 12551: 0x000054E4, + 12552: 0x0000551A, + 12553: 0x000054FF, + 12554: 0x00005504, + 12555: 0x00005508, + 12556: 0x000054EB, + 12557: 0x00005511, + 12558: 0x00005505, + 12559: 0x000054F1, + 12560: 0x0000550A, + 12561: 0x000054FB, + 12562: 0x000054F7, + 12563: 0x000054F8, + 12564: 0x000054E0, + 12565: 0x0000550E, + 12566: 0x00005503, + 12567: 0x0000550B, + 12568: 0x00005701, + 12569: 0x00005702, + 12570: 0x000057CC, + 12571: 0x00005832, + 12572: 0x000057D5, + 12573: 0x000057D2, + 12574: 0x000057BA, + 12575: 0x000057C6, + 12576: 0x000057BD, + 12577: 0x000057BC, + 12578: 0x000057B8, + 12579: 0x000057B6, + 12580: 0x000057BF, + 12581: 0x000057C7, + 12582: 0x000057D0, + 12583: 0x000057B9, + 12584: 0x000057C1, + 12585: 0x0000590E, + 12586: 0x0000594A, + 12587: 0x00005A19, + 12588: 0x00005A16, + 12589: 0x00005A2D, + 12590: 0x00005A2E, + 12591: 0x00005A15, + 12592: 0x00005A0F, + 12593: 0x00005A17, + 12594: 0x00005A0A, + 12595: 0x00005A1E, + 12596: 0x00005A33, + 12597: 0x00005B6C, + 12598: 0x00005BA7, + 12599: 0x00005BAD, + 12600: 0x00005BAC, + 12601: 0x00005C03, + 12602: 0x00005C56, + 12603: 0x00005C54, + 12604: 0x00005CEC, + 12605: 0x00005CFF, + 12606: 0x00005CEE, + 12607: 0x00005CF1, + 12608: 0x00005CF7, + 12609: 0x00005D00, + 12610: 0x00005CF9, + 12611: 0x00005E29, + 12612: 0x00005E28, + 12613: 0x00005EA8, + 12614: 0x00005EAE, + 12615: 0x00005EAA, + 12616: 0x00005EAC, + 12617: 0x00005F33, + 12618: 0x00005F30, + 12619: 0x00005F67, + 12620: 0x0000605D, + 12621: 0x0000605A, + 12622: 0x00006067, + 12623: 0x00006041, + 12624: 0x000060A2, + 12625: 0x00006088, + 12626: 0x00006080, + 12627: 0x00006092, + 12628: 0x00006081, + 12629: 0x0000609D, + 12630: 0x00006083, + 12631: 0x00006095, + 12632: 0x0000609B, + 12633: 0x00006097, + 12634: 0x00006087, + 12635: 0x0000609C, + 12636: 0x0000608E, + 12637: 0x00006219, + 12638: 0x00006246, + 12639: 0x000062F2, + 12640: 0x00006310, + 12641: 0x00006356, + 12642: 0x0000632C, + 12643: 0x00006344, + 12644: 0x00006345, + 12645: 0x00006336, + 12646: 0x00006343, + 12647: 0x000063E4, + 12648: 0x00006339, + 12649: 0x0000634B, + 12650: 0x0000634A, + 12651: 0x0000633C, + 12652: 0x00006329, + 12653: 0x00006341, + 12654: 0x00006334, + 12655: 0x00006358, + 12656: 0x00006354, + 12657: 0x00006359, + 12658: 0x0000632D, + 12659: 0x00006347, + 12660: 0x00006333, + 12661: 0x0000635A, + 12662: 0x00006351, + 12663: 0x00006338, + 12664: 0x00006357, + 12665: 0x00006340, + 12666: 0x00006348, + 12667: 0x0000654A, + 12668: 0x00006546, + 12669: 0x000065C6, + 12670: 0x000065C3, + 12671: 0x000065C4, + 12672: 0x000065C2, + 12673: 0x0000664A, + 12674: 0x0000665F, + 12675: 0x00006647, + 12676: 0x00006651, + 12677: 0x00006712, + 12678: 0x00006713, + 12679: 0x0000681F, + 12680: 0x0000681A, + 12681: 0x00006849, + 12682: 0x00006832, + 12683: 0x00006833, + 12684: 0x0000683B, + 12685: 0x0000684B, + 12686: 0x0000684F, + 12687: 0x00006816, + 12688: 0x00006831, + 12689: 0x0000681C, + 12690: 0x00006835, + 12691: 0x0000682B, + 12692: 0x0000682D, + 12693: 0x0000682F, + 12694: 0x0000684E, + 12695: 0x00006844, + 12696: 0x00006834, + 12697: 0x0000681D, + 12698: 0x00006812, + 12699: 0x00006814, + 12700: 0x00006826, + 12701: 0x00006828, + 12702: 0x0000682E, + 12703: 0x0000684D, + 12704: 0x0000683A, + 12705: 0x00006825, + 12706: 0x00006820, + 12707: 0x00006B2C, + 12708: 0x00006B2F, + 12709: 0x00006B2D, + 12710: 0x00006B31, + 12711: 0x00006B34, + 12712: 0x00006B6D, + 12713: 0x00008082, + 12714: 0x00006B88, + 12715: 0x00006BE6, + 12716: 0x00006BE4, + 12717: 0x00006BE8, + 12718: 0x00006BE3, + 12719: 0x00006BE2, + 12720: 0x00006BE7, + 12721: 0x00006C25, + 12722: 0x00006D7A, + 12723: 0x00006D63, + 12724: 0x00006D64, + 12725: 0x00006D76, + 12726: 0x00006D0D, + 12727: 0x00006D61, + 12728: 0x00006D92, + 12729: 0x00006D58, + 12730: 0x00006D62, + 12731: 0x00006D6D, + 12732: 0x00006D6F, + 12733: 0x00006D91, + 12734: 0x00006D8D, + 12735: 0x00006DEF, + 12736: 0x00006D7F, + 12737: 0x00006D86, + 12738: 0x00006D5E, + 12739: 0x00006D67, + 12740: 0x00006D60, + 12741: 0x00006D97, + 12742: 0x00006D70, + 12743: 0x00006D7C, + 12744: 0x00006D5F, + 12745: 0x00006D82, + 12746: 0x00006D98, + 12747: 0x00006D2F, + 12748: 0x00006D68, + 12749: 0x00006D8B, + 12750: 0x00006D7E, + 12751: 0x00006D80, + 12752: 0x00006D84, + 12753: 0x00006D16, + 12754: 0x00006D83, + 12755: 0x00006D7B, + 12756: 0x00006D7D, + 12757: 0x00006D75, + 12758: 0x00006D90, + 12759: 0x000070DC, + 12760: 0x000070D3, + 12761: 0x000070D1, + 12762: 0x000070DD, + 12763: 0x000070CB, + 12764: 0x00007F39, + 12765: 0x000070E2, + 12766: 0x000070D7, + 12767: 0x000070D2, + 12768: 0x000070DE, + 12769: 0x000070E0, + 12770: 0x000070D4, + 12771: 0x000070CD, + 12772: 0x000070C5, + 12773: 0x000070C6, + 12774: 0x000070C7, + 12775: 0x000070DA, + 12776: 0x000070CE, + 12777: 0x000070E1, + 12778: 0x00007242, + 12779: 0x00007278, + 12780: 0x00007277, + 12781: 0x00007276, + 12782: 0x00007300, + 12783: 0x000072FA, + 12784: 0x000072F4, + 12785: 0x000072FE, + 12786: 0x000072F6, + 12787: 0x000072F3, + 12788: 0x000072FB, + 12789: 0x00007301, + 12790: 0x000073D3, + 12791: 0x000073D9, + 12792: 0x000073E5, + 12793: 0x000073D6, + 12794: 0x000073BC, + 12795: 0x000073E7, + 12796: 0x000073E3, + 12797: 0x000073E9, + 12798: 0x000073DC, + 12799: 0x000073D2, + 12800: 0x000073DB, + 12801: 0x000073D4, + 12802: 0x000073DD, + 12803: 0x000073DA, + 12804: 0x000073D7, + 12805: 0x000073D8, + 12806: 0x000073E8, + 12807: 0x000074DE, + 12808: 0x000074DF, + 12809: 0x000074F4, + 12810: 0x000074F5, + 12811: 0x00007521, + 12812: 0x0000755B, + 12813: 0x0000755F, + 12814: 0x000075B0, + 12815: 0x000075C1, + 12816: 0x000075BB, + 12817: 0x000075C4, + 12818: 0x000075C0, + 12819: 0x000075BF, + 12820: 0x000075B6, + 12821: 0x000075BA, + 12822: 0x0000768A, + 12823: 0x000076C9, + 12824: 0x0000771D, + 12825: 0x0000771B, + 12826: 0x00007710, + 12827: 0x00007713, + 12828: 0x00007712, + 12829: 0x00007723, + 12830: 0x00007711, + 12831: 0x00007715, + 12832: 0x00007719, + 12833: 0x0000771A, + 12834: 0x00007722, + 12835: 0x00007727, + 12836: 0x00007823, + 12837: 0x0000782C, + 12838: 0x00007822, + 12839: 0x00007835, + 12840: 0x0000782F, + 12841: 0x00007828, + 12842: 0x0000782E, + 12843: 0x0000782B, + 12844: 0x00007821, + 12845: 0x00007829, + 12846: 0x00007833, + 12847: 0x0000782A, + 12848: 0x00007831, + 12849: 0x00007954, + 12850: 0x0000795B, + 12851: 0x0000794F, + 12852: 0x0000795C, + 12853: 0x00007953, + 12854: 0x00007952, + 12855: 0x00007951, + 12856: 0x000079EB, + 12857: 0x000079EC, + 12858: 0x000079E0, + 12859: 0x000079EE, + 12860: 0x000079ED, + 12861: 0x000079EA, + 12862: 0x000079DC, + 12863: 0x000079DE, + 12864: 0x000079DD, + 12865: 0x00007A86, + 12866: 0x00007A89, + 12867: 0x00007A85, + 12868: 0x00007A8B, + 12869: 0x00007A8C, + 12870: 0x00007A8A, + 12871: 0x00007A87, + 12872: 0x00007AD8, + 12873: 0x00007B10, + 12874: 0x00007B04, + 12875: 0x00007B13, + 12876: 0x00007B05, + 12877: 0x00007B0F, + 12878: 0x00007B08, + 12879: 0x00007B0A, + 12880: 0x00007B0E, + 12881: 0x00007B09, + 12882: 0x00007B12, + 12883: 0x00007C84, + 12884: 0x00007C91, + 12885: 0x00007C8A, + 12886: 0x00007C8C, + 12887: 0x00007C88, + 12888: 0x00007C8D, + 12889: 0x00007C85, + 12890: 0x00007D1E, + 12891: 0x00007D1D, + 12892: 0x00007D11, + 12893: 0x00007D0E, + 12894: 0x00007D18, + 12895: 0x00007D16, + 12896: 0x00007D13, + 12897: 0x00007D1F, + 12898: 0x00007D12, + 12899: 0x00007D0F, + 12900: 0x00007D0C, + 12901: 0x00007F5C, + 12902: 0x00007F61, + 12903: 0x00007F5E, + 12904: 0x00007F60, + 12905: 0x00007F5D, + 12906: 0x00007F5B, + 12907: 0x00007F96, + 12908: 0x00007F92, + 12909: 0x00007FC3, + 12910: 0x00007FC2, + 12911: 0x00007FC0, + 12912: 0x00008016, + 12913: 0x0000803E, + 12914: 0x00008039, + 12915: 0x000080FA, + 12916: 0x000080F2, + 12917: 0x000080F9, + 12918: 0x000080F5, + 12919: 0x00008101, + 12920: 0x000080FB, + 12921: 0x00008100, + 12922: 0x00008201, + 12923: 0x0000822F, + 12924: 0x00008225, + 12925: 0x00008333, + 12926: 0x0000832D, + 12927: 0x00008344, + 12928: 0x00008319, + 12929: 0x00008351, + 12930: 0x00008325, + 12931: 0x00008356, + 12932: 0x0000833F, + 12933: 0x00008341, + 12934: 0x00008326, + 12935: 0x0000831C, + 12936: 0x00008322, + 12937: 0x00008342, + 12938: 0x0000834E, + 12939: 0x0000831B, + 12940: 0x0000832A, + 12941: 0x00008308, + 12942: 0x0000833C, + 12943: 0x0000834D, + 12944: 0x00008316, + 12945: 0x00008324, + 12946: 0x00008320, + 12947: 0x00008337, + 12948: 0x0000832F, + 12949: 0x00008329, + 12950: 0x00008347, + 12951: 0x00008345, + 12952: 0x0000834C, + 12953: 0x00008353, + 12954: 0x0000831E, + 12955: 0x0000832C, + 12956: 0x0000834B, + 12957: 0x00008327, + 12958: 0x00008348, + 12959: 0x00008653, + 12960: 0x00008652, + 12961: 0x000086A2, + 12962: 0x000086A8, + 12963: 0x00008696, + 12964: 0x0000868D, + 12965: 0x00008691, + 12966: 0x0000869E, + 12967: 0x00008687, + 12968: 0x00008697, + 12969: 0x00008686, + 12970: 0x0000868B, + 12971: 0x0000869A, + 12972: 0x00008685, + 12973: 0x000086A5, + 12974: 0x00008699, + 12975: 0x000086A1, + 12976: 0x000086A7, + 12977: 0x00008695, + 12978: 0x00008698, + 12979: 0x0000868E, + 12980: 0x0000869D, + 12981: 0x00008690, + 12982: 0x00008694, + 12983: 0x00008843, + 12984: 0x00008844, + 12985: 0x0000886D, + 12986: 0x00008875, + 12987: 0x00008876, + 12988: 0x00008872, + 12989: 0x00008880, + 12990: 0x00008871, + 12991: 0x0000887F, + 12992: 0x0000886F, + 12993: 0x00008883, + 12994: 0x0000887E, + 12995: 0x00008874, + 12996: 0x0000887C, + 12997: 0x00008A12, + 12998: 0x00008C47, + 12999: 0x00008C57, + 13000: 0x00008C7B, + 13001: 0x00008CA4, + 13002: 0x00008CA3, + 13003: 0x00008D76, + 13004: 0x00008D78, + 13005: 0x00008DB5, + 13006: 0x00008DB7, + 13007: 0x00008DB6, + 13008: 0x00008ED1, + 13009: 0x00008ED3, + 13010: 0x00008FFE, + 13011: 0x00008FF5, + 13012: 0x00009002, + 13013: 0x00008FFF, + 13014: 0x00008FFB, + 13015: 0x00009004, + 13016: 0x00008FFC, + 13017: 0x00008FF6, + 13018: 0x000090D6, + 13019: 0x000090E0, + 13020: 0x000090D9, + 13021: 0x000090DA, + 13022: 0x000090E3, + 13023: 0x000090DF, + 13024: 0x000090E5, + 13025: 0x000090D8, + 13026: 0x000090DB, + 13027: 0x000090D7, + 13028: 0x000090DC, + 13029: 0x000090E4, + 13030: 0x00009150, + 13031: 0x0000914E, + 13032: 0x0000914F, + 13033: 0x000091D5, + 13034: 0x000091E2, + 13035: 0x000091DA, + 13036: 0x0000965C, + 13037: 0x0000965F, + 13038: 0x000096BC, + 13039: 0x000098E3, + 13040: 0x00009ADF, + 13041: 0x00009B2F, + 13042: 0x00004E7F, + 13043: 0x00005070, + 13044: 0x0000506A, + 13045: 0x00005061, + 13046: 0x0000505E, + 13047: 0x00005060, + 13048: 0x00005053, + 13049: 0x0000504B, + 13050: 0x0000505D, + 13051: 0x00005072, + 13052: 0x00005048, + 13053: 0x0000504D, + 13054: 0x00005041, + 13055: 0x0000505B, + 13056: 0x0000504A, + 13057: 0x00005062, + 13058: 0x00005015, + 13059: 0x00005045, + 13060: 0x0000505F, + 13061: 0x00005069, + 13062: 0x0000506B, + 13063: 0x00005063, + 13064: 0x00005064, + 13065: 0x00005046, + 13066: 0x00005040, + 13067: 0x0000506E, + 13068: 0x00005073, + 13069: 0x00005057, + 13070: 0x00005051, + 13071: 0x000051D0, + 13072: 0x0000526B, + 13073: 0x0000526D, + 13074: 0x0000526C, + 13075: 0x0000526E, + 13076: 0x000052D6, + 13077: 0x000052D3, + 13078: 0x0000532D, + 13079: 0x0000539C, + 13080: 0x00005575, + 13081: 0x00005576, + 13082: 0x0000553C, + 13083: 0x0000554D, + 13084: 0x00005550, + 13085: 0x00005534, + 13086: 0x0000552A, + 13087: 0x00005551, + 13088: 0x00005562, + 13089: 0x00005536, + 13090: 0x00005535, + 13091: 0x00005530, + 13092: 0x00005552, + 13093: 0x00005545, + 13094: 0x0000550C, + 13095: 0x00005532, + 13096: 0x00005565, + 13097: 0x0000554E, + 13098: 0x00005539, + 13099: 0x00005548, + 13100: 0x0000552D, + 13101: 0x0000553B, + 13102: 0x00005540, + 13103: 0x0000554B, + 13104: 0x0000570A, + 13105: 0x00005707, + 13106: 0x000057FB, + 13107: 0x00005814, + 13108: 0x000057E2, + 13109: 0x000057F6, + 13110: 0x000057DC, + 13111: 0x000057F4, + 13112: 0x00005800, + 13113: 0x000057ED, + 13114: 0x000057FD, + 13115: 0x00005808, + 13116: 0x000057F8, + 13117: 0x0000580B, + 13118: 0x000057F3, + 13119: 0x000057CF, + 13120: 0x00005807, + 13121: 0x000057EE, + 13122: 0x000057E3, + 13123: 0x000057F2, + 13124: 0x000057E5, + 13125: 0x000057EC, + 13126: 0x000057E1, + 13127: 0x0000580E, + 13128: 0x000057FC, + 13129: 0x00005810, + 13130: 0x000057E7, + 13131: 0x00005801, + 13132: 0x0000580C, + 13133: 0x000057F1, + 13134: 0x000057E9, + 13135: 0x000057F0, + 13136: 0x0000580D, + 13137: 0x00005804, + 13138: 0x0000595C, + 13139: 0x00005A60, + 13140: 0x00005A58, + 13141: 0x00005A55, + 13142: 0x00005A67, + 13143: 0x00005A5E, + 13144: 0x00005A38, + 13145: 0x00005A35, + 13146: 0x00005A6D, + 13147: 0x00005A50, + 13148: 0x00005A5F, + 13149: 0x00005A65, + 13150: 0x00005A6C, + 13151: 0x00005A53, + 13152: 0x00005A64, + 13153: 0x00005A57, + 13154: 0x00005A43, + 13155: 0x00005A5D, + 13156: 0x00005A52, + 13157: 0x00005A44, + 13158: 0x00005A5B, + 13159: 0x00005A48, + 13160: 0x00005A8E, + 13161: 0x00005A3E, + 13162: 0x00005A4D, + 13163: 0x00005A39, + 13164: 0x00005A4C, + 13165: 0x00005A70, + 13166: 0x00005A69, + 13167: 0x00005A47, + 13168: 0x00005A51, + 13169: 0x00005A56, + 13170: 0x00005A42, + 13171: 0x00005A5C, + 13172: 0x00005B72, + 13173: 0x00005B6E, + 13174: 0x00005BC1, + 13175: 0x00005BC0, + 13176: 0x00005C59, + 13177: 0x00005D1E, + 13178: 0x00005D0B, + 13179: 0x00005D1D, + 13180: 0x00005D1A, + 13181: 0x00005D20, + 13182: 0x00005D0C, + 13183: 0x00005D28, + 13184: 0x00005D0D, + 13185: 0x00005D26, + 13186: 0x00005D25, + 13187: 0x00005D0F, + 13188: 0x00005D30, + 13189: 0x00005D12, + 13190: 0x00005D23, + 13191: 0x00005D1F, + 13192: 0x00005D2E, + 13193: 0x00005E3E, + 13194: 0x00005E34, + 13195: 0x00005EB1, + 13196: 0x00005EB4, + 13197: 0x00005EB9, + 13198: 0x00005EB2, + 13199: 0x00005EB3, + 13200: 0x00005F36, + 13201: 0x00005F38, + 13202: 0x00005F9B, + 13203: 0x00005F96, + 13204: 0x00005F9F, + 13205: 0x0000608A, + 13206: 0x00006090, + 13207: 0x00006086, + 13208: 0x000060BE, + 13209: 0x000060B0, + 13210: 0x000060BA, + 13211: 0x000060D3, + 13212: 0x000060D4, + 13213: 0x000060CF, + 13214: 0x000060E4, + 13215: 0x000060D9, + 13216: 0x000060DD, + 13217: 0x000060C8, + 13218: 0x000060B1, + 13219: 0x000060DB, + 13220: 0x000060B7, + 13221: 0x000060CA, + 13222: 0x000060BF, + 13223: 0x000060C3, + 13224: 0x000060CD, + 13225: 0x000060C0, + 13226: 0x00006332, + 13227: 0x00006365, + 13228: 0x0000638A, + 13229: 0x00006382, + 13230: 0x0000637D, + 13231: 0x000063BD, + 13232: 0x0000639E, + 13233: 0x000063AD, + 13234: 0x0000639D, + 13235: 0x00006397, + 13236: 0x000063AB, + 13237: 0x0000638E, + 13238: 0x0000636F, + 13239: 0x00006387, + 13240: 0x00006390, + 13241: 0x0000636E, + 13242: 0x000063AF, + 13243: 0x00006375, + 13244: 0x0000639C, + 13245: 0x0000636D, + 13246: 0x000063AE, + 13247: 0x0000637C, + 13248: 0x000063A4, + 13249: 0x0000633B, + 13250: 0x0000639F, + 13251: 0x00006378, + 13252: 0x00006385, + 13253: 0x00006381, + 13254: 0x00006391, + 13255: 0x0000638D, + 13256: 0x00006370, + 13257: 0x00006553, + 13258: 0x000065CD, + 13259: 0x00006665, + 13260: 0x00006661, + 13261: 0x0000665B, + 13262: 0x00006659, + 13263: 0x0000665C, + 13264: 0x00006662, + 13265: 0x00006718, + 13266: 0x00006879, + 13267: 0x00006887, + 13268: 0x00006890, + 13269: 0x0000689C, + 13270: 0x0000686D, + 13271: 0x0000686E, + 13272: 0x000068AE, + 13273: 0x000068AB, + 13274: 0x00006956, + 13275: 0x0000686F, + 13276: 0x000068A3, + 13277: 0x000068AC, + 13278: 0x000068A9, + 13279: 0x00006875, + 13280: 0x00006874, + 13281: 0x000068B2, + 13282: 0x0000688F, + 13283: 0x00006877, + 13284: 0x00006892, + 13285: 0x0000687C, + 13286: 0x0000686B, + 13287: 0x00006872, + 13288: 0x000068AA, + 13289: 0x00006880, + 13290: 0x00006871, + 13291: 0x0000687E, + 13292: 0x0000689B, + 13293: 0x00006896, + 13294: 0x0000688B, + 13295: 0x000068A0, + 13296: 0x00006889, + 13297: 0x000068A4, + 13298: 0x00006878, + 13299: 0x0000687B, + 13300: 0x00006891, + 13301: 0x0000688C, + 13302: 0x0000688A, + 13303: 0x0000687D, + 13304: 0x00006B36, + 13305: 0x00006B33, + 13306: 0x00006B37, + 13307: 0x00006B38, + 13308: 0x00006B91, + 13309: 0x00006B8F, + 13310: 0x00006B8D, + 13311: 0x00006B8E, + 13312: 0x00006B8C, + 13313: 0x00006C2A, + 13314: 0x00006DC0, + 13315: 0x00006DAB, + 13316: 0x00006DB4, + 13317: 0x00006DB3, + 13318: 0x00006E74, + 13319: 0x00006DAC, + 13320: 0x00006DE9, + 13321: 0x00006DE2, + 13322: 0x00006DB7, + 13323: 0x00006DF6, + 13324: 0x00006DD4, + 13325: 0x00006E00, + 13326: 0x00006DC8, + 13327: 0x00006DE0, + 13328: 0x00006DDF, + 13329: 0x00006DD6, + 13330: 0x00006DBE, + 13331: 0x00006DE5, + 13332: 0x00006DDC, + 13333: 0x00006DDD, + 13334: 0x00006DDB, + 13335: 0x00006DF4, + 13336: 0x00006DCA, + 13337: 0x00006DBD, + 13338: 0x00006DED, + 13339: 0x00006DF0, + 13340: 0x00006DBA, + 13341: 0x00006DD5, + 13342: 0x00006DC2, + 13343: 0x00006DCF, + 13344: 0x00006DC9, + 13345: 0x00006DD0, + 13346: 0x00006DF2, + 13347: 0x00006DD3, + 13348: 0x00006DFD, + 13349: 0x00006DD7, + 13350: 0x00006DCD, + 13351: 0x00006DE3, + 13352: 0x00006DBB, + 13353: 0x000070FA, + 13354: 0x0000710D, + 13355: 0x000070F7, + 13356: 0x00007117, + 13357: 0x000070F4, + 13358: 0x0000710C, + 13359: 0x000070F0, + 13360: 0x00007104, + 13361: 0x000070F3, + 13362: 0x00007110, + 13363: 0x000070FC, + 13364: 0x000070FF, + 13365: 0x00007106, + 13366: 0x00007113, + 13367: 0x00007100, + 13368: 0x000070F8, + 13369: 0x000070F6, + 13370: 0x0000710B, + 13371: 0x00007102, + 13372: 0x0000710E, + 13373: 0x0000727E, + 13374: 0x0000727B, + 13375: 0x0000727C, + 13376: 0x0000727F, + 13377: 0x0000731D, + 13378: 0x00007317, + 13379: 0x00007307, + 13380: 0x00007311, + 13381: 0x00007318, + 13382: 0x0000730A, + 13383: 0x00007308, + 13384: 0x000072FF, + 13385: 0x0000730F, + 13386: 0x0000731E, + 13387: 0x00007388, + 13388: 0x000073F6, + 13389: 0x000073F8, + 13390: 0x000073F5, + 13391: 0x00007404, + 13392: 0x00007401, + 13393: 0x000073FD, + 13394: 0x00007407, + 13395: 0x00007400, + 13396: 0x000073FA, + 13397: 0x000073FC, + 13398: 0x000073FF, + 13399: 0x0000740C, + 13400: 0x0000740B, + 13401: 0x000073F4, + 13402: 0x00007408, + 13403: 0x00007564, + 13404: 0x00007563, + 13405: 0x000075CE, + 13406: 0x000075D2, + 13407: 0x000075CF, + 13408: 0x000075CB, + 13409: 0x000075CC, + 13410: 0x000075D1, + 13411: 0x000075D0, + 13412: 0x0000768F, + 13413: 0x00007689, + 13414: 0x000076D3, + 13415: 0x00007739, + 13416: 0x0000772F, + 13417: 0x0000772D, + 13418: 0x00007731, + 13419: 0x00007732, + 13420: 0x00007734, + 13421: 0x00007733, + 13422: 0x0000773D, + 13423: 0x00007725, + 13424: 0x0000773B, + 13425: 0x00007735, + 13426: 0x00007848, + 13427: 0x00007852, + 13428: 0x00007849, + 13429: 0x0000784D, + 13430: 0x0000784A, + 13431: 0x0000784C, + 13432: 0x00007826, + 13433: 0x00007845, + 13434: 0x00007850, + 13435: 0x00007964, + 13436: 0x00007967, + 13437: 0x00007969, + 13438: 0x0000796A, + 13439: 0x00007963, + 13440: 0x0000796B, + 13441: 0x00007961, + 13442: 0x000079BB, + 13443: 0x000079FA, + 13444: 0x000079F8, + 13445: 0x000079F6, + 13446: 0x000079F7, + 13447: 0x00007A8F, + 13448: 0x00007A94, + 13449: 0x00007A90, + 13450: 0x00007B35, + 13451: 0x00007B47, + 13452: 0x00007B34, + 13453: 0x00007B25, + 13454: 0x00007B30, + 13455: 0x00007B22, + 13456: 0x00007B24, + 13457: 0x00007B33, + 13458: 0x00007B18, + 13459: 0x00007B2A, + 13460: 0x00007B1D, + 13461: 0x00007B31, + 13462: 0x00007B2B, + 13463: 0x00007B2D, + 13464: 0x00007B2F, + 13465: 0x00007B32, + 13466: 0x00007B38, + 13467: 0x00007B1A, + 13468: 0x00007B23, + 13469: 0x00007C94, + 13470: 0x00007C98, + 13471: 0x00007C96, + 13472: 0x00007CA3, + 13473: 0x00007D35, + 13474: 0x00007D3D, + 13475: 0x00007D38, + 13476: 0x00007D36, + 13477: 0x00007D3A, + 13478: 0x00007D45, + 13479: 0x00007D2C, + 13480: 0x00007D29, + 13481: 0x00007D41, + 13482: 0x00007D47, + 13483: 0x00007D3E, + 13484: 0x00007D3F, + 13485: 0x00007D4A, + 13486: 0x00007D3B, + 13487: 0x00007D28, + 13488: 0x00007F63, + 13489: 0x00007F95, + 13490: 0x00007F9C, + 13491: 0x00007F9D, + 13492: 0x00007F9B, + 13493: 0x00007FCA, + 13494: 0x00007FCB, + 13495: 0x00007FCD, + 13496: 0x00007FD0, + 13497: 0x00007FD1, + 13498: 0x00007FC7, + 13499: 0x00007FCF, + 13500: 0x00007FC9, + 13501: 0x0000801F, + 13502: 0x0000801E, + 13503: 0x0000801B, + 13504: 0x00008047, + 13505: 0x00008043, + 13506: 0x00008048, + 13507: 0x00008118, + 13508: 0x00008125, + 13509: 0x00008119, + 13510: 0x0000811B, + 13511: 0x0000812D, + 13512: 0x0000811F, + 13513: 0x0000812C, + 13514: 0x0000811E, + 13515: 0x00008121, + 13516: 0x00008115, + 13517: 0x00008127, + 13518: 0x0000811D, + 13519: 0x00008122, + 13520: 0x00008211, + 13521: 0x00008238, + 13522: 0x00008233, + 13523: 0x0000823A, + 13524: 0x00008234, + 13525: 0x00008232, + 13526: 0x00008274, + 13527: 0x00008390, + 13528: 0x000083A3, + 13529: 0x000083A8, + 13530: 0x0000838D, + 13531: 0x0000837A, + 13532: 0x00008373, + 13533: 0x000083A4, + 13534: 0x00008374, + 13535: 0x0000838F, + 13536: 0x00008381, + 13537: 0x00008395, + 13538: 0x00008399, + 13539: 0x00008375, + 13540: 0x00008394, + 13541: 0x000083A9, + 13542: 0x0000837D, + 13543: 0x00008383, + 13544: 0x0000838C, + 13545: 0x0000839D, + 13546: 0x0000839B, + 13547: 0x000083AA, + 13548: 0x0000838B, + 13549: 0x0000837E, + 13550: 0x000083A5, + 13551: 0x000083AF, + 13552: 0x00008388, + 13553: 0x00008397, + 13554: 0x000083B0, + 13555: 0x0000837F, + 13556: 0x000083A6, + 13557: 0x00008387, + 13558: 0x000083AE, + 13559: 0x00008376, + 13560: 0x0000839A, + 13561: 0x00008659, + 13562: 0x00008656, + 13563: 0x000086BF, + 13564: 0x000086B7, + 13565: 0x000086C2, + 13566: 0x000086C1, + 13567: 0x000086C5, + 13568: 0x000086BA, + 13569: 0x000086B0, + 13570: 0x000086C8, + 13571: 0x000086B9, + 13572: 0x000086B3, + 13573: 0x000086B8, + 13574: 0x000086CC, + 13575: 0x000086B4, + 13576: 0x000086BB, + 13577: 0x000086BC, + 13578: 0x000086C3, + 13579: 0x000086BD, + 13580: 0x000086BE, + 13581: 0x00008852, + 13582: 0x00008889, + 13583: 0x00008895, + 13584: 0x000088A8, + 13585: 0x000088A2, + 13586: 0x000088AA, + 13587: 0x0000889A, + 13588: 0x00008891, + 13589: 0x000088A1, + 13590: 0x0000889F, + 13591: 0x00008898, + 13592: 0x000088A7, + 13593: 0x00008899, + 13594: 0x0000889B, + 13595: 0x00008897, + 13596: 0x000088A4, + 13597: 0x000088AC, + 13598: 0x0000888C, + 13599: 0x00008893, + 13600: 0x0000888E, + 13601: 0x00008982, + 13602: 0x000089D6, + 13603: 0x000089D9, + 13604: 0x000089D5, + 13605: 0x00008A30, + 13606: 0x00008A27, + 13607: 0x00008A2C, + 13608: 0x00008A1E, + 13609: 0x00008C39, + 13610: 0x00008C3B, + 13611: 0x00008C5C, + 13612: 0x00008C5D, + 13613: 0x00008C7D, + 13614: 0x00008CA5, + 13615: 0x00008D7D, + 13616: 0x00008D7B, + 13617: 0x00008D79, + 13618: 0x00008DBC, + 13619: 0x00008DC2, + 13620: 0x00008DB9, + 13621: 0x00008DBF, + 13622: 0x00008DC1, + 13623: 0x00008ED8, + 13624: 0x00008EDE, + 13625: 0x00008EDD, + 13626: 0x00008EDC, + 13627: 0x00008ED7, + 13628: 0x00008EE0, + 13629: 0x00008EE1, + 13630: 0x00009024, + 13631: 0x0000900B, + 13632: 0x00009011, + 13633: 0x0000901C, + 13634: 0x0000900C, + 13635: 0x00009021, + 13636: 0x000090EF, + 13637: 0x000090EA, + 13638: 0x000090F0, + 13639: 0x000090F4, + 13640: 0x000090F2, + 13641: 0x000090F3, + 13642: 0x000090D4, + 13643: 0x000090EB, + 13644: 0x000090EC, + 13645: 0x000090E9, + 13646: 0x00009156, + 13647: 0x00009158, + 13648: 0x0000915A, + 13649: 0x00009153, + 13650: 0x00009155, + 13651: 0x000091EC, + 13652: 0x000091F4, + 13653: 0x000091F1, + 13654: 0x000091F3, + 13655: 0x000091F8, + 13656: 0x000091E4, + 13657: 0x000091F9, + 13658: 0x000091EA, + 13659: 0x000091EB, + 13660: 0x000091F7, + 13661: 0x000091E8, + 13662: 0x000091EE, + 13663: 0x0000957A, + 13664: 0x00009586, + 13665: 0x00009588, + 13666: 0x0000967C, + 13667: 0x0000966D, + 13668: 0x0000966B, + 13669: 0x00009671, + 13670: 0x0000966F, + 13671: 0x000096BF, + 13672: 0x0000976A, + 13673: 0x00009804, + 13674: 0x000098E5, + 13675: 0x00009997, + 13676: 0x0000509B, + 13677: 0x00005095, + 13678: 0x00005094, + 13679: 0x0000509E, + 13680: 0x0000508B, + 13681: 0x000050A3, + 13682: 0x00005083, + 13683: 0x0000508C, + 13684: 0x0000508E, + 13685: 0x0000509D, + 13686: 0x00005068, + 13687: 0x0000509C, + 13688: 0x00005092, + 13689: 0x00005082, + 13690: 0x00005087, + 13691: 0x0000515F, + 13692: 0x000051D4, + 13693: 0x00005312, + 13694: 0x00005311, + 13695: 0x000053A4, + 13696: 0x000053A7, + 13697: 0x00005591, + 13698: 0x000055A8, + 13699: 0x000055A5, + 13700: 0x000055AD, + 13701: 0x00005577, + 13702: 0x00005645, + 13703: 0x000055A2, + 13704: 0x00005593, + 13705: 0x00005588, + 13706: 0x0000558F, + 13707: 0x000055B5, + 13708: 0x00005581, + 13709: 0x000055A3, + 13710: 0x00005592, + 13711: 0x000055A4, + 13712: 0x0000557D, + 13713: 0x0000558C, + 13714: 0x000055A6, + 13715: 0x0000557F, + 13716: 0x00005595, + 13717: 0x000055A1, + 13718: 0x0000558E, + 13719: 0x0000570C, + 13720: 0x00005829, + 13721: 0x00005837, + 13722: 0x00005819, + 13723: 0x0000581E, + 13724: 0x00005827, + 13725: 0x00005823, + 13726: 0x00005828, + 13727: 0x000057F5, + 13728: 0x00005848, + 13729: 0x00005825, + 13730: 0x0000581C, + 13731: 0x0000581B, + 13732: 0x00005833, + 13733: 0x0000583F, + 13734: 0x00005836, + 13735: 0x0000582E, + 13736: 0x00005839, + 13737: 0x00005838, + 13738: 0x0000582D, + 13739: 0x0000582C, + 13740: 0x0000583B, + 13741: 0x00005961, + 13742: 0x00005AAF, + 13743: 0x00005A94, + 13744: 0x00005A9F, + 13745: 0x00005A7A, + 13746: 0x00005AA2, + 13747: 0x00005A9E, + 13748: 0x00005A78, + 13749: 0x00005AA6, + 13750: 0x00005A7C, + 13751: 0x00005AA5, + 13752: 0x00005AAC, + 13753: 0x00005A95, + 13754: 0x00005AAE, + 13755: 0x00005A37, + 13756: 0x00005A84, + 13757: 0x00005A8A, + 13758: 0x00005A97, + 13759: 0x00005A83, + 13760: 0x00005A8B, + 13761: 0x00005AA9, + 13762: 0x00005A7B, + 13763: 0x00005A7D, + 13764: 0x00005A8C, + 13765: 0x00005A9C, + 13766: 0x00005A8F, + 13767: 0x00005A93, + 13768: 0x00005A9D, + 13769: 0x00005BEA, + 13770: 0x00005BCD, + 13771: 0x00005BCB, + 13772: 0x00005BD4, + 13773: 0x00005BD1, + 13774: 0x00005BCA, + 13775: 0x00005BCE, + 13776: 0x00005C0C, + 13777: 0x00005C30, + 13778: 0x00005D37, + 13779: 0x00005D43, + 13780: 0x00005D6B, + 13781: 0x00005D41, + 13782: 0x00005D4B, + 13783: 0x00005D3F, + 13784: 0x00005D35, + 13785: 0x00005D51, + 13786: 0x00005D4E, + 13787: 0x00005D55, + 13788: 0x00005D33, + 13789: 0x00005D3A, + 13790: 0x00005D52, + 13791: 0x00005D3D, + 13792: 0x00005D31, + 13793: 0x00005D59, + 13794: 0x00005D42, + 13795: 0x00005D39, + 13796: 0x00005D49, + 13797: 0x00005D38, + 13798: 0x00005D3C, + 13799: 0x00005D32, + 13800: 0x00005D36, + 13801: 0x00005D40, + 13802: 0x00005D45, + 13803: 0x00005E44, + 13804: 0x00005E41, + 13805: 0x00005F58, + 13806: 0x00005FA6, + 13807: 0x00005FA5, + 13808: 0x00005FAB, + 13809: 0x000060C9, + 13810: 0x000060B9, + 13811: 0x000060CC, + 13812: 0x000060E2, + 13813: 0x000060CE, + 13814: 0x000060C4, + 13815: 0x00006114, + 13816: 0x000060F2, + 13817: 0x0000610A, + 13818: 0x00006116, + 13819: 0x00006105, + 13820: 0x000060F5, + 13821: 0x00006113, + 13822: 0x000060F8, + 13823: 0x000060FC, + 13824: 0x000060FE, + 13825: 0x000060C1, + 13826: 0x00006103, + 13827: 0x00006118, + 13828: 0x0000611D, + 13829: 0x00006110, + 13830: 0x000060FF, + 13831: 0x00006104, + 13832: 0x0000610B, + 13833: 0x0000624A, + 13834: 0x00006394, + 13835: 0x000063B1, + 13836: 0x000063B0, + 13837: 0x000063CE, + 13838: 0x000063E5, + 13839: 0x000063E8, + 13840: 0x000063EF, + 13841: 0x000063C3, + 13842: 0x0000649D, + 13843: 0x000063F3, + 13844: 0x000063CA, + 13845: 0x000063E0, + 13846: 0x000063F6, + 13847: 0x000063D5, + 13848: 0x000063F2, + 13849: 0x000063F5, + 13850: 0x00006461, + 13851: 0x000063DF, + 13852: 0x000063BE, + 13853: 0x000063DD, + 13854: 0x000063DC, + 13855: 0x000063C4, + 13856: 0x000063D8, + 13857: 0x000063D3, + 13858: 0x000063C2, + 13859: 0x000063C7, + 13860: 0x000063CC, + 13861: 0x000063CB, + 13862: 0x000063C8, + 13863: 0x000063F0, + 13864: 0x000063D7, + 13865: 0x000063D9, + 13866: 0x00006532, + 13867: 0x00006567, + 13868: 0x0000656A, + 13869: 0x00006564, + 13870: 0x0000655C, + 13871: 0x00006568, + 13872: 0x00006565, + 13873: 0x0000658C, + 13874: 0x0000659D, + 13875: 0x0000659E, + 13876: 0x000065AE, + 13877: 0x000065D0, + 13878: 0x000065D2, + 13879: 0x0000667C, + 13880: 0x0000666C, + 13881: 0x0000667B, + 13882: 0x00006680, + 13883: 0x00006671, + 13884: 0x00006679, + 13885: 0x0000666A, + 13886: 0x00006672, + 13887: 0x00006701, + 13888: 0x0000690C, + 13889: 0x000068D3, + 13890: 0x00006904, + 13891: 0x000068DC, + 13892: 0x0000692A, + 13893: 0x000068EC, + 13894: 0x000068EA, + 13895: 0x000068F1, + 13896: 0x0000690F, + 13897: 0x000068D6, + 13898: 0x000068F7, + 13899: 0x000068EB, + 13900: 0x000068E4, + 13901: 0x000068F6, + 13902: 0x00006913, + 13903: 0x00006910, + 13904: 0x000068F3, + 13905: 0x000068E1, + 13906: 0x00006907, + 13907: 0x000068CC, + 13908: 0x00006908, + 13909: 0x00006970, + 13910: 0x000068B4, + 13911: 0x00006911, + 13912: 0x000068EF, + 13913: 0x000068C6, + 13914: 0x00006914, + 13915: 0x000068F8, + 13916: 0x000068D0, + 13917: 0x000068FD, + 13918: 0x000068FC, + 13919: 0x000068E8, + 13920: 0x0000690B, + 13921: 0x0000690A, + 13922: 0x00006917, + 13923: 0x000068CE, + 13924: 0x000068C8, + 13925: 0x000068DD, + 13926: 0x000068DE, + 13927: 0x000068E6, + 13928: 0x000068F4, + 13929: 0x000068D1, + 13930: 0x00006906, + 13931: 0x000068D4, + 13932: 0x000068E9, + 13933: 0x00006915, + 13934: 0x00006925, + 13935: 0x000068C7, + 13936: 0x00006B39, + 13937: 0x00006B3B, + 13938: 0x00006B3F, + 13939: 0x00006B3C, + 13940: 0x00006B94, + 13941: 0x00006B97, + 13942: 0x00006B99, + 13943: 0x00006B95, + 13944: 0x00006BBD, + 13945: 0x00006BF0, + 13946: 0x00006BF2, + 13947: 0x00006BF3, + 13948: 0x00006C30, + 13949: 0x00006DFC, + 13950: 0x00006E46, + 13951: 0x00006E47, + 13952: 0x00006E1F, + 13953: 0x00006E49, + 13954: 0x00006E88, + 13955: 0x00006E3C, + 13956: 0x00006E3D, + 13957: 0x00006E45, + 13958: 0x00006E62, + 13959: 0x00006E2B, + 13960: 0x00006E3F, + 13961: 0x00006E41, + 13962: 0x00006E5D, + 13963: 0x00006E73, + 13964: 0x00006E1C, + 13965: 0x00006E33, + 13966: 0x00006E4B, + 13967: 0x00006E40, + 13968: 0x00006E51, + 13969: 0x00006E3B, + 13970: 0x00006E03, + 13971: 0x00006E2E, + 13972: 0x00006E5E, + 13973: 0x00006E68, + 13974: 0x00006E5C, + 13975: 0x00006E61, + 13976: 0x00006E31, + 13977: 0x00006E28, + 13978: 0x00006E60, + 13979: 0x00006E71, + 13980: 0x00006E6B, + 13981: 0x00006E39, + 13982: 0x00006E22, + 13983: 0x00006E30, + 13984: 0x00006E53, + 13985: 0x00006E65, + 13986: 0x00006E27, + 13987: 0x00006E78, + 13988: 0x00006E64, + 13989: 0x00006E77, + 13990: 0x00006E55, + 13991: 0x00006E79, + 13992: 0x00006E52, + 13993: 0x00006E66, + 13994: 0x00006E35, + 13995: 0x00006E36, + 13996: 0x00006E5A, + 13997: 0x00007120, + 13998: 0x0000711E, + 13999: 0x0000712F, + 14000: 0x000070FB, + 14001: 0x0000712E, + 14002: 0x00007131, + 14003: 0x00007123, + 14004: 0x00007125, + 14005: 0x00007122, + 14006: 0x00007132, + 14007: 0x0000711F, + 14008: 0x00007128, + 14009: 0x0000713A, + 14010: 0x0000711B, + 14011: 0x0000724B, + 14012: 0x0000725A, + 14013: 0x00007288, + 14014: 0x00007289, + 14015: 0x00007286, + 14016: 0x00007285, + 14017: 0x0000728B, + 14018: 0x00007312, + 14019: 0x0000730B, + 14020: 0x00007330, + 14021: 0x00007322, + 14022: 0x00007331, + 14023: 0x00007333, + 14024: 0x00007327, + 14025: 0x00007332, + 14026: 0x0000732D, + 14027: 0x00007326, + 14028: 0x00007323, + 14029: 0x00007335, + 14030: 0x0000730C, + 14031: 0x0000742E, + 14032: 0x0000742C, + 14033: 0x00007430, + 14034: 0x0000742B, + 14035: 0x00007416, + 14036: 0x0000741A, + 14037: 0x00007421, + 14038: 0x0000742D, + 14039: 0x00007431, + 14040: 0x00007424, + 14041: 0x00007423, + 14042: 0x0000741D, + 14043: 0x00007429, + 14044: 0x00007420, + 14045: 0x00007432, + 14046: 0x000074FB, + 14047: 0x0000752F, + 14048: 0x0000756F, + 14049: 0x0000756C, + 14050: 0x000075E7, + 14051: 0x000075DA, + 14052: 0x000075E1, + 14053: 0x000075E6, + 14054: 0x000075DD, + 14055: 0x000075DF, + 14056: 0x000075E4, + 14057: 0x000075D7, + 14058: 0x00007695, + 14059: 0x00007692, + 14060: 0x000076DA, + 14061: 0x00007746, + 14062: 0x00007747, + 14063: 0x00007744, + 14064: 0x0000774D, + 14065: 0x00007745, + 14066: 0x0000774A, + 14067: 0x0000774E, + 14068: 0x0000774B, + 14069: 0x0000774C, + 14070: 0x000077DE, + 14071: 0x000077EC, + 14072: 0x00007860, + 14073: 0x00007864, + 14074: 0x00007865, + 14075: 0x0000785C, + 14076: 0x0000786D, + 14077: 0x00007871, + 14078: 0x0000786A, + 14079: 0x0000786E, + 14080: 0x00007870, + 14081: 0x00007869, + 14082: 0x00007868, + 14083: 0x0000785E, + 14084: 0x00007862, + 14085: 0x00007974, + 14086: 0x00007973, + 14087: 0x00007972, + 14088: 0x00007970, + 14089: 0x00007A02, + 14090: 0x00007A0A, + 14091: 0x00007A03, + 14092: 0x00007A0C, + 14093: 0x00007A04, + 14094: 0x00007A99, + 14095: 0x00007AE6, + 14096: 0x00007AE4, + 14097: 0x00007B4A, + 14098: 0x00007B3B, + 14099: 0x00007B44, + 14100: 0x00007B48, + 14101: 0x00007B4C, + 14102: 0x00007B4E, + 14103: 0x00007B40, + 14104: 0x00007B58, + 14105: 0x00007B45, + 14106: 0x00007CA2, + 14107: 0x00007C9E, + 14108: 0x00007CA8, + 14109: 0x00007CA1, + 14110: 0x00007D58, + 14111: 0x00007D6F, + 14112: 0x00007D63, + 14113: 0x00007D53, + 14114: 0x00007D56, + 14115: 0x00007D67, + 14116: 0x00007D6A, + 14117: 0x00007D4F, + 14118: 0x00007D6D, + 14119: 0x00007D5C, + 14120: 0x00007D6B, + 14121: 0x00007D52, + 14122: 0x00007D54, + 14123: 0x00007D69, + 14124: 0x00007D51, + 14125: 0x00007D5F, + 14126: 0x00007D4E, + 14127: 0x00007F3E, + 14128: 0x00007F3F, + 14129: 0x00007F65, + 14130: 0x00007F66, + 14131: 0x00007FA2, + 14132: 0x00007FA0, + 14133: 0x00007FA1, + 14134: 0x00007FD7, + 14135: 0x00008051, + 14136: 0x0000804F, + 14137: 0x00008050, + 14138: 0x000080FE, + 14139: 0x000080D4, + 14140: 0x00008143, + 14141: 0x0000814A, + 14142: 0x00008152, + 14143: 0x0000814F, + 14144: 0x00008147, + 14145: 0x0000813D, + 14146: 0x0000814D, + 14147: 0x0000813A, + 14148: 0x000081E6, + 14149: 0x000081EE, + 14150: 0x000081F7, + 14151: 0x000081F8, + 14152: 0x000081F9, + 14153: 0x00008204, + 14154: 0x0000823C, + 14155: 0x0000823D, + 14156: 0x0000823F, + 14157: 0x00008275, + 14158: 0x0000833B, + 14159: 0x000083CF, + 14160: 0x000083F9, + 14161: 0x00008423, + 14162: 0x000083C0, + 14163: 0x000083E8, + 14164: 0x00008412, + 14165: 0x000083E7, + 14166: 0x000083E4, + 14167: 0x000083FC, + 14168: 0x000083F6, + 14169: 0x00008410, + 14170: 0x000083C6, + 14171: 0x000083C8, + 14172: 0x000083EB, + 14173: 0x000083E3, + 14174: 0x000083BF, + 14175: 0x00008401, + 14176: 0x000083DD, + 14177: 0x000083E5, + 14178: 0x000083D8, + 14179: 0x000083FF, + 14180: 0x000083E1, + 14181: 0x000083CB, + 14182: 0x000083CE, + 14183: 0x000083D6, + 14184: 0x000083F5, + 14185: 0x000083C9, + 14186: 0x00008409, + 14187: 0x0000840F, + 14188: 0x000083DE, + 14189: 0x00008411, + 14190: 0x00008406, + 14191: 0x000083C2, + 14192: 0x000083F3, + 14193: 0x000083D5, + 14194: 0x000083FA, + 14195: 0x000083C7, + 14196: 0x000083D1, + 14197: 0x000083EA, + 14198: 0x00008413, + 14199: 0x000083C3, + 14200: 0x000083EC, + 14201: 0x000083EE, + 14202: 0x000083C4, + 14203: 0x000083FB, + 14204: 0x000083D7, + 14205: 0x000083E2, + 14206: 0x0000841B, + 14207: 0x000083DB, + 14208: 0x000083FE, + 14209: 0x000086D8, + 14210: 0x000086E2, + 14211: 0x000086E6, + 14212: 0x000086D3, + 14213: 0x000086E3, + 14214: 0x000086DA, + 14215: 0x000086EA, + 14216: 0x000086DD, + 14217: 0x000086EB, + 14218: 0x000086DC, + 14219: 0x000086EC, + 14220: 0x000086E9, + 14221: 0x000086D7, + 14222: 0x000086E8, + 14223: 0x000086D1, + 14224: 0x00008848, + 14225: 0x00008856, + 14226: 0x00008855, + 14227: 0x000088BA, + 14228: 0x000088D7, + 14229: 0x000088B9, + 14230: 0x000088B8, + 14231: 0x000088C0, + 14232: 0x000088BE, + 14233: 0x000088B6, + 14234: 0x000088BC, + 14235: 0x000088B7, + 14236: 0x000088BD, + 14237: 0x000088B2, + 14238: 0x00008901, + 14239: 0x000088C9, + 14240: 0x00008995, + 14241: 0x00008998, + 14242: 0x00008997, + 14243: 0x000089DD, + 14244: 0x000089DA, + 14245: 0x000089DB, + 14246: 0x00008A4E, + 14247: 0x00008A4D, + 14248: 0x00008A39, + 14249: 0x00008A59, + 14250: 0x00008A40, + 14251: 0x00008A57, + 14252: 0x00008A58, + 14253: 0x00008A44, + 14254: 0x00008A45, + 14255: 0x00008A52, + 14256: 0x00008A48, + 14257: 0x00008A51, + 14258: 0x00008A4A, + 14259: 0x00008A4C, + 14260: 0x00008A4F, + 14261: 0x00008C5F, + 14262: 0x00008C81, + 14263: 0x00008C80, + 14264: 0x00008CBA, + 14265: 0x00008CBE, + 14266: 0x00008CB0, + 14267: 0x00008CB9, + 14268: 0x00008CB5, + 14269: 0x00008D84, + 14270: 0x00008D80, + 14271: 0x00008D89, + 14272: 0x00008DD8, + 14273: 0x00008DD3, + 14274: 0x00008DCD, + 14275: 0x00008DC7, + 14276: 0x00008DD6, + 14277: 0x00008DDC, + 14278: 0x00008DCF, + 14279: 0x00008DD5, + 14280: 0x00008DD9, + 14281: 0x00008DC8, + 14282: 0x00008DD7, + 14283: 0x00008DC5, + 14284: 0x00008EEF, + 14285: 0x00008EF7, + 14286: 0x00008EFA, + 14287: 0x00008EF9, + 14288: 0x00008EE6, + 14289: 0x00008EEE, + 14290: 0x00008EE5, + 14291: 0x00008EF5, + 14292: 0x00008EE7, + 14293: 0x00008EE8, + 14294: 0x00008EF6, + 14295: 0x00008EEB, + 14296: 0x00008EF1, + 14297: 0x00008EEC, + 14298: 0x00008EF4, + 14299: 0x00008EE9, + 14300: 0x0000902D, + 14301: 0x00009034, + 14302: 0x0000902F, + 14303: 0x00009106, + 14304: 0x0000912C, + 14305: 0x00009104, + 14306: 0x000090FF, + 14307: 0x000090FC, + 14308: 0x00009108, + 14309: 0x000090F9, + 14310: 0x000090FB, + 14311: 0x00009101, + 14312: 0x00009100, + 14313: 0x00009107, + 14314: 0x00009105, + 14315: 0x00009103, + 14316: 0x00009161, + 14317: 0x00009164, + 14318: 0x0000915F, + 14319: 0x00009162, + 14320: 0x00009160, + 14321: 0x00009201, + 14322: 0x0000920A, + 14323: 0x00009225, + 14324: 0x00009203, + 14325: 0x0000921A, + 14326: 0x00009226, + 14327: 0x0000920F, + 14328: 0x0000920C, + 14329: 0x00009200, + 14330: 0x00009212, + 14331: 0x000091FF, + 14332: 0x000091FD, + 14333: 0x00009206, + 14334: 0x00009204, + 14335: 0x00009227, + 14336: 0x00009202, + 14337: 0x0000921C, + 14338: 0x00009224, + 14339: 0x00009219, + 14340: 0x00009217, + 14341: 0x00009205, + 14342: 0x00009216, + 14343: 0x0000957B, + 14344: 0x0000958D, + 14345: 0x0000958C, + 14346: 0x00009590, + 14347: 0x00009687, + 14348: 0x0000967E, + 14349: 0x00009688, + 14350: 0x00009689, + 14351: 0x00009683, + 14352: 0x00009680, + 14353: 0x000096C2, + 14354: 0x000096C8, + 14355: 0x000096C3, + 14356: 0x000096F1, + 14357: 0x000096F0, + 14358: 0x0000976C, + 14359: 0x00009770, + 14360: 0x0000976E, + 14361: 0x00009807, + 14362: 0x000098A9, + 14363: 0x000098EB, + 14364: 0x00009CE6, + 14365: 0x00009EF9, + 14366: 0x00004E83, + 14367: 0x00004E84, + 14368: 0x00004EB6, + 14369: 0x000050BD, + 14370: 0x000050BF, + 14371: 0x000050C6, + 14372: 0x000050AE, + 14373: 0x000050C4, + 14374: 0x000050CA, + 14375: 0x000050B4, + 14376: 0x000050C8, + 14377: 0x000050C2, + 14378: 0x000050B0, + 14379: 0x000050C1, + 14380: 0x000050BA, + 14381: 0x000050B1, + 14382: 0x000050CB, + 14383: 0x000050C9, + 14384: 0x000050B6, + 14385: 0x000050B8, + 14386: 0x000051D7, + 14387: 0x0000527A, + 14388: 0x00005278, + 14389: 0x0000527B, + 14390: 0x0000527C, + 14391: 0x000055C3, + 14392: 0x000055DB, + 14393: 0x000055CC, + 14394: 0x000055D0, + 14395: 0x000055CB, + 14396: 0x000055CA, + 14397: 0x000055DD, + 14398: 0x000055C0, + 14399: 0x000055D4, + 14400: 0x000055C4, + 14401: 0x000055E9, + 14402: 0x000055BF, + 14403: 0x000055D2, + 14404: 0x0000558D, + 14405: 0x000055CF, + 14406: 0x000055D5, + 14407: 0x000055E2, + 14408: 0x000055D6, + 14409: 0x000055C8, + 14410: 0x000055F2, + 14411: 0x000055CD, + 14412: 0x000055D9, + 14413: 0x000055C2, + 14414: 0x00005714, + 14415: 0x00005853, + 14416: 0x00005868, + 14417: 0x00005864, + 14418: 0x0000584F, + 14419: 0x0000584D, + 14420: 0x00005849, + 14421: 0x0000586F, + 14422: 0x00005855, + 14423: 0x0000584E, + 14424: 0x0000585D, + 14425: 0x00005859, + 14426: 0x00005865, + 14427: 0x0000585B, + 14428: 0x0000583D, + 14429: 0x00005863, + 14430: 0x00005871, + 14431: 0x000058FC, + 14432: 0x00005AC7, + 14433: 0x00005AC4, + 14434: 0x00005ACB, + 14435: 0x00005ABA, + 14436: 0x00005AB8, + 14437: 0x00005AB1, + 14438: 0x00005AB5, + 14439: 0x00005AB0, + 14440: 0x00005ABF, + 14441: 0x00005AC8, + 14442: 0x00005ABB, + 14443: 0x00005AC6, + 14444: 0x00005AB7, + 14445: 0x00005AC0, + 14446: 0x00005ACA, + 14447: 0x00005AB4, + 14448: 0x00005AB6, + 14449: 0x00005ACD, + 14450: 0x00005AB9, + 14451: 0x00005A90, + 14452: 0x00005BD6, + 14453: 0x00005BD8, + 14454: 0x00005BD9, + 14455: 0x00005C1F, + 14456: 0x00005C33, + 14457: 0x00005D71, + 14458: 0x00005D63, + 14459: 0x00005D4A, + 14460: 0x00005D65, + 14461: 0x00005D72, + 14462: 0x00005D6C, + 14463: 0x00005D5E, + 14464: 0x00005D68, + 14465: 0x00005D67, + 14466: 0x00005D62, + 14467: 0x00005DF0, + 14468: 0x00005E4F, + 14469: 0x00005E4E, + 14470: 0x00005E4A, + 14471: 0x00005E4D, + 14472: 0x00005E4B, + 14473: 0x00005EC5, + 14474: 0x00005ECC, + 14475: 0x00005EC6, + 14476: 0x00005ECB, + 14477: 0x00005EC7, + 14478: 0x00005F40, + 14479: 0x00005FAF, + 14480: 0x00005FAD, + 14481: 0x000060F7, + 14482: 0x00006149, + 14483: 0x0000614A, + 14484: 0x0000612B, + 14485: 0x00006145, + 14486: 0x00006136, + 14487: 0x00006132, + 14488: 0x0000612E, + 14489: 0x00006146, + 14490: 0x0000612F, + 14491: 0x0000614F, + 14492: 0x00006129, + 14493: 0x00006140, + 14494: 0x00006220, + 14495: 0x00009168, + 14496: 0x00006223, + 14497: 0x00006225, + 14498: 0x00006224, + 14499: 0x000063C5, + 14500: 0x000063F1, + 14501: 0x000063EB, + 14502: 0x00006410, + 14503: 0x00006412, + 14504: 0x00006409, + 14505: 0x00006420, + 14506: 0x00006424, + 14507: 0x00006433, + 14508: 0x00006443, + 14509: 0x0000641F, + 14510: 0x00006415, + 14511: 0x00006418, + 14512: 0x00006439, + 14513: 0x00006437, + 14514: 0x00006422, + 14515: 0x00006423, + 14516: 0x0000640C, + 14517: 0x00006426, + 14518: 0x00006430, + 14519: 0x00006428, + 14520: 0x00006441, + 14521: 0x00006435, + 14522: 0x0000642F, + 14523: 0x0000640A, + 14524: 0x0000641A, + 14525: 0x00006440, + 14526: 0x00006425, + 14527: 0x00006427, + 14528: 0x0000640B, + 14529: 0x000063E7, + 14530: 0x0000641B, + 14531: 0x0000642E, + 14532: 0x00006421, + 14533: 0x0000640E, + 14534: 0x0000656F, + 14535: 0x00006592, + 14536: 0x000065D3, + 14537: 0x00006686, + 14538: 0x0000668C, + 14539: 0x00006695, + 14540: 0x00006690, + 14541: 0x0000668B, + 14542: 0x0000668A, + 14543: 0x00006699, + 14544: 0x00006694, + 14545: 0x00006678, + 14546: 0x00006720, + 14547: 0x00006966, + 14548: 0x0000695F, + 14549: 0x00006938, + 14550: 0x0000694E, + 14551: 0x00006962, + 14552: 0x00006971, + 14553: 0x0000693F, + 14554: 0x00006945, + 14555: 0x0000696A, + 14556: 0x00006939, + 14557: 0x00006942, + 14558: 0x00006957, + 14559: 0x00006959, + 14560: 0x0000697A, + 14561: 0x00006948, + 14562: 0x00006949, + 14563: 0x00006935, + 14564: 0x0000696C, + 14565: 0x00006933, + 14566: 0x0000693D, + 14567: 0x00006965, + 14568: 0x000068F0, + 14569: 0x00006978, + 14570: 0x00006934, + 14571: 0x00006969, + 14572: 0x00006940, + 14573: 0x0000696F, + 14574: 0x00006944, + 14575: 0x00006976, + 14576: 0x00006958, + 14577: 0x00006941, + 14578: 0x00006974, + 14579: 0x0000694C, + 14580: 0x0000693B, + 14581: 0x0000694B, + 14582: 0x00006937, + 14583: 0x0000695C, + 14584: 0x0000694F, + 14585: 0x00006951, + 14586: 0x00006932, + 14587: 0x00006952, + 14588: 0x0000692F, + 14589: 0x0000697B, + 14590: 0x0000693C, + 14591: 0x00006B46, + 14592: 0x00006B45, + 14593: 0x00006B43, + 14594: 0x00006B42, + 14595: 0x00006B48, + 14596: 0x00006B41, + 14597: 0x00006B9B, + 14598: 0x0000FA0D, + 14599: 0x00006BFB, + 14600: 0x00006BFC, + 14601: 0x00006BF9, + 14602: 0x00006BF7, + 14603: 0x00006BF8, + 14604: 0x00006E9B, + 14605: 0x00006ED6, + 14606: 0x00006EC8, + 14607: 0x00006E8F, + 14608: 0x00006EC0, + 14609: 0x00006E9F, + 14610: 0x00006E93, + 14611: 0x00006E94, + 14612: 0x00006EA0, + 14613: 0x00006EB1, + 14614: 0x00006EB9, + 14615: 0x00006EC6, + 14616: 0x00006ED2, + 14617: 0x00006EBD, + 14618: 0x00006EC1, + 14619: 0x00006E9E, + 14620: 0x00006EC9, + 14621: 0x00006EB7, + 14622: 0x00006EB0, + 14623: 0x00006ECD, + 14624: 0x00006EA6, + 14625: 0x00006ECF, + 14626: 0x00006EB2, + 14627: 0x00006EBE, + 14628: 0x00006EC3, + 14629: 0x00006EDC, + 14630: 0x00006ED8, + 14631: 0x00006E99, + 14632: 0x00006E92, + 14633: 0x00006E8E, + 14634: 0x00006E8D, + 14635: 0x00006EA4, + 14636: 0x00006EA1, + 14637: 0x00006EBF, + 14638: 0x00006EB3, + 14639: 0x00006ED0, + 14640: 0x00006ECA, + 14641: 0x00006E97, + 14642: 0x00006EAE, + 14643: 0x00006EA3, + 14644: 0x00007147, + 14645: 0x00007154, + 14646: 0x00007152, + 14647: 0x00007163, + 14648: 0x00007160, + 14649: 0x00007141, + 14650: 0x0000715D, + 14651: 0x00007162, + 14652: 0x00007172, + 14653: 0x00007178, + 14654: 0x0000716A, + 14655: 0x00007161, + 14656: 0x00007142, + 14657: 0x00007158, + 14658: 0x00007143, + 14659: 0x0000714B, + 14660: 0x00007170, + 14661: 0x0000715F, + 14662: 0x00007150, + 14663: 0x00007153, + 14664: 0x00007144, + 14665: 0x0000714D, + 14666: 0x0000715A, + 14667: 0x0000724F, + 14668: 0x0000728D, + 14669: 0x0000728C, + 14670: 0x00007291, + 14671: 0x00007290, + 14672: 0x0000728E, + 14673: 0x0000733C, + 14674: 0x00007342, + 14675: 0x0000733B, + 14676: 0x0000733A, + 14677: 0x00007340, + 14678: 0x0000734A, + 14679: 0x00007349, + 14680: 0x00007444, + 14681: 0x0000744A, + 14682: 0x0000744B, + 14683: 0x00007452, + 14684: 0x00007451, + 14685: 0x00007457, + 14686: 0x00007440, + 14687: 0x0000744F, + 14688: 0x00007450, + 14689: 0x0000744E, + 14690: 0x00007442, + 14691: 0x00007446, + 14692: 0x0000744D, + 14693: 0x00007454, + 14694: 0x000074E1, + 14695: 0x000074FF, + 14696: 0x000074FE, + 14697: 0x000074FD, + 14698: 0x0000751D, + 14699: 0x00007579, + 14700: 0x00007577, + 14701: 0x00006983, + 14702: 0x000075EF, + 14703: 0x0000760F, + 14704: 0x00007603, + 14705: 0x000075F7, + 14706: 0x000075FE, + 14707: 0x000075FC, + 14708: 0x000075F9, + 14709: 0x000075F8, + 14710: 0x00007610, + 14711: 0x000075FB, + 14712: 0x000075F6, + 14713: 0x000075ED, + 14714: 0x000075F5, + 14715: 0x000075FD, + 14716: 0x00007699, + 14717: 0x000076B5, + 14718: 0x000076DD, + 14719: 0x00007755, + 14720: 0x0000775F, + 14721: 0x00007760, + 14722: 0x00007752, + 14723: 0x00007756, + 14724: 0x0000775A, + 14725: 0x00007769, + 14726: 0x00007767, + 14727: 0x00007754, + 14728: 0x00007759, + 14729: 0x0000776D, + 14730: 0x000077E0, + 14731: 0x00007887, + 14732: 0x0000789A, + 14733: 0x00007894, + 14734: 0x0000788F, + 14735: 0x00007884, + 14736: 0x00007895, + 14737: 0x00007885, + 14738: 0x00007886, + 14739: 0x000078A1, + 14740: 0x00007883, + 14741: 0x00007879, + 14742: 0x00007899, + 14743: 0x00007880, + 14744: 0x00007896, + 14745: 0x0000787B, + 14746: 0x0000797C, + 14747: 0x00007982, + 14748: 0x0000797D, + 14749: 0x00007979, + 14750: 0x00007A11, + 14751: 0x00007A18, + 14752: 0x00007A19, + 14753: 0x00007A12, + 14754: 0x00007A17, + 14755: 0x00007A15, + 14756: 0x00007A22, + 14757: 0x00007A13, + 14758: 0x00007A1B, + 14759: 0x00007A10, + 14760: 0x00007AA3, + 14761: 0x00007AA2, + 14762: 0x00007A9E, + 14763: 0x00007AEB, + 14764: 0x00007B66, + 14765: 0x00007B64, + 14766: 0x00007B6D, + 14767: 0x00007B74, + 14768: 0x00007B69, + 14769: 0x00007B72, + 14770: 0x00007B65, + 14771: 0x00007B73, + 14772: 0x00007B71, + 14773: 0x00007B70, + 14774: 0x00007B61, + 14775: 0x00007B78, + 14776: 0x00007B76, + 14777: 0x00007B63, + 14778: 0x00007CB2, + 14779: 0x00007CB4, + 14780: 0x00007CAF, + 14781: 0x00007D88, + 14782: 0x00007D86, + 14783: 0x00007D80, + 14784: 0x00007D8D, + 14785: 0x00007D7F, + 14786: 0x00007D85, + 14787: 0x00007D7A, + 14788: 0x00007D8E, + 14789: 0x00007D7B, + 14790: 0x00007D83, + 14791: 0x00007D7C, + 14792: 0x00007D8C, + 14793: 0x00007D94, + 14794: 0x00007D84, + 14795: 0x00007D7D, + 14796: 0x00007D92, + 14797: 0x00007F6D, + 14798: 0x00007F6B, + 14799: 0x00007F67, + 14800: 0x00007F68, + 14801: 0x00007F6C, + 14802: 0x00007FA6, + 14803: 0x00007FA5, + 14804: 0x00007FA7, + 14805: 0x00007FDB, + 14806: 0x00007FDC, + 14807: 0x00008021, + 14808: 0x00008164, + 14809: 0x00008160, + 14810: 0x00008177, + 14811: 0x0000815C, + 14812: 0x00008169, + 14813: 0x0000815B, + 14814: 0x00008162, + 14815: 0x00008172, + 14816: 0x00006721, + 14817: 0x0000815E, + 14818: 0x00008176, + 14819: 0x00008167, + 14820: 0x0000816F, + 14821: 0x00008144, + 14822: 0x00008161, + 14823: 0x0000821D, + 14824: 0x00008249, + 14825: 0x00008244, + 14826: 0x00008240, + 14827: 0x00008242, + 14828: 0x00008245, + 14829: 0x000084F1, + 14830: 0x0000843F, + 14831: 0x00008456, + 14832: 0x00008476, + 14833: 0x00008479, + 14834: 0x0000848F, + 14835: 0x0000848D, + 14836: 0x00008465, + 14837: 0x00008451, + 14838: 0x00008440, + 14839: 0x00008486, + 14840: 0x00008467, + 14841: 0x00008430, + 14842: 0x0000844D, + 14843: 0x0000847D, + 14844: 0x0000845A, + 14845: 0x00008459, + 14846: 0x00008474, + 14847: 0x00008473, + 14848: 0x0000845D, + 14849: 0x00008507, + 14850: 0x0000845E, + 14851: 0x00008437, + 14852: 0x0000843A, + 14853: 0x00008434, + 14854: 0x0000847A, + 14855: 0x00008443, + 14856: 0x00008478, + 14857: 0x00008432, + 14858: 0x00008445, + 14859: 0x00008429, + 14860: 0x000083D9, + 14861: 0x0000844B, + 14862: 0x0000842F, + 14863: 0x00008442, + 14864: 0x0000842D, + 14865: 0x0000845F, + 14866: 0x00008470, + 14867: 0x00008439, + 14868: 0x0000844E, + 14869: 0x0000844C, + 14870: 0x00008452, + 14871: 0x0000846F, + 14872: 0x000084C5, + 14873: 0x0000848E, + 14874: 0x0000843B, + 14875: 0x00008447, + 14876: 0x00008436, + 14877: 0x00008433, + 14878: 0x00008468, + 14879: 0x0000847E, + 14880: 0x00008444, + 14881: 0x0000842B, + 14882: 0x00008460, + 14883: 0x00008454, + 14884: 0x0000846E, + 14885: 0x00008450, + 14886: 0x0000870B, + 14887: 0x00008704, + 14888: 0x000086F7, + 14889: 0x0000870C, + 14890: 0x000086FA, + 14891: 0x000086D6, + 14892: 0x000086F5, + 14893: 0x0000874D, + 14894: 0x000086F8, + 14895: 0x0000870E, + 14896: 0x00008709, + 14897: 0x00008701, + 14898: 0x000086F6, + 14899: 0x0000870D, + 14900: 0x00008705, + 14901: 0x000088D6, + 14902: 0x000088CB, + 14903: 0x000088CD, + 14904: 0x000088CE, + 14905: 0x000088DE, + 14906: 0x000088DB, + 14907: 0x000088DA, + 14908: 0x000088CC, + 14909: 0x000088D0, + 14910: 0x00008985, + 14911: 0x0000899B, + 14912: 0x000089DF, + 14913: 0x000089E5, + 14914: 0x000089E4, + 14915: 0x000089E1, + 14916: 0x000089E0, + 14917: 0x000089E2, + 14918: 0x000089DC, + 14919: 0x000089E6, + 14920: 0x00008A76, + 14921: 0x00008A86, + 14922: 0x00008A7F, + 14923: 0x00008A61, + 14924: 0x00008A3F, + 14925: 0x00008A77, + 14926: 0x00008A82, + 14927: 0x00008A84, + 14928: 0x00008A75, + 14929: 0x00008A83, + 14930: 0x00008A81, + 14931: 0x00008A74, + 14932: 0x00008A7A, + 14933: 0x00008C3C, + 14934: 0x00008C4B, + 14935: 0x00008C4A, + 14936: 0x00008C65, + 14937: 0x00008C64, + 14938: 0x00008C66, + 14939: 0x00008C86, + 14940: 0x00008C84, + 14941: 0x00008C85, + 14942: 0x00008CCC, + 14943: 0x00008D68, + 14944: 0x00008D69, + 14945: 0x00008D91, + 14946: 0x00008D8C, + 14947: 0x00008D8E, + 14948: 0x00008D8F, + 14949: 0x00008D8D, + 14950: 0x00008D93, + 14951: 0x00008D94, + 14952: 0x00008D90, + 14953: 0x00008D92, + 14954: 0x00008DF0, + 14955: 0x00008DE0, + 14956: 0x00008DEC, + 14957: 0x00008DF1, + 14958: 0x00008DEE, + 14959: 0x00008DD0, + 14960: 0x00008DE9, + 14961: 0x00008DE3, + 14962: 0x00008DE2, + 14963: 0x00008DE7, + 14964: 0x00008DF2, + 14965: 0x00008DEB, + 14966: 0x00008DF4, + 14967: 0x00008F06, + 14968: 0x00008EFF, + 14969: 0x00008F01, + 14970: 0x00008F00, + 14971: 0x00008F05, + 14972: 0x00008F07, + 14973: 0x00008F08, + 14974: 0x00008F02, + 14975: 0x00008F0B, + 14976: 0x00009052, + 14977: 0x0000903F, + 14978: 0x00009044, + 14979: 0x00009049, + 14980: 0x0000903D, + 14981: 0x00009110, + 14982: 0x0000910D, + 14983: 0x0000910F, + 14984: 0x00009111, + 14985: 0x00009116, + 14986: 0x00009114, + 14987: 0x0000910B, + 14988: 0x0000910E, + 14989: 0x0000916E, + 14990: 0x0000916F, + 14991: 0x00009248, + 14992: 0x00009252, + 14993: 0x00009230, + 14994: 0x0000923A, + 14995: 0x00009266, + 14996: 0x00009233, + 14997: 0x00009265, + 14998: 0x0000925E, + 14999: 0x00009283, + 15000: 0x0000922E, + 15001: 0x0000924A, + 15002: 0x00009246, + 15003: 0x0000926D, + 15004: 0x0000926C, + 15005: 0x0000924F, + 15006: 0x00009260, + 15007: 0x00009267, + 15008: 0x0000926F, + 15009: 0x00009236, + 15010: 0x00009261, + 15011: 0x00009270, + 15012: 0x00009231, + 15013: 0x00009254, + 15014: 0x00009263, + 15015: 0x00009250, + 15016: 0x00009272, + 15017: 0x0000924E, + 15018: 0x00009253, + 15019: 0x0000924C, + 15020: 0x00009256, + 15021: 0x00009232, + 15022: 0x0000959F, + 15023: 0x0000959C, + 15024: 0x0000959E, + 15025: 0x0000959B, + 15026: 0x00009692, + 15027: 0x00009693, + 15028: 0x00009691, + 15029: 0x00009697, + 15030: 0x000096CE, + 15031: 0x000096FA, + 15032: 0x000096FD, + 15033: 0x000096F8, + 15034: 0x000096F5, + 15035: 0x00009773, + 15036: 0x00009777, + 15037: 0x00009778, + 15038: 0x00009772, + 15039: 0x0000980F, + 15040: 0x0000980D, + 15041: 0x0000980E, + 15042: 0x000098AC, + 15043: 0x000098F6, + 15044: 0x000098F9, + 15045: 0x000099AF, + 15046: 0x000099B2, + 15047: 0x000099B0, + 15048: 0x000099B5, + 15049: 0x00009AAD, + 15050: 0x00009AAB, + 15051: 0x00009B5B, + 15052: 0x00009CEA, + 15053: 0x00009CED, + 15054: 0x00009CE7, + 15055: 0x00009E80, + 15056: 0x00009EFD, + 15057: 0x000050E6, + 15058: 0x000050D4, + 15059: 0x000050D7, + 15060: 0x000050E8, + 15061: 0x000050F3, + 15062: 0x000050DB, + 15063: 0x000050EA, + 15064: 0x000050DD, + 15065: 0x000050E4, + 15066: 0x000050D3, + 15067: 0x000050EC, + 15068: 0x000050F0, + 15069: 0x000050EF, + 15070: 0x000050E3, + 15071: 0x000050E0, + 15072: 0x000051D8, + 15073: 0x00005280, + 15074: 0x00005281, + 15075: 0x000052E9, + 15076: 0x000052EB, + 15077: 0x00005330, + 15078: 0x000053AC, + 15079: 0x00005627, + 15080: 0x00005615, + 15081: 0x0000560C, + 15082: 0x00005612, + 15083: 0x000055FC, + 15084: 0x0000560F, + 15085: 0x0000561C, + 15086: 0x00005601, + 15087: 0x00005613, + 15088: 0x00005602, + 15089: 0x000055FA, + 15090: 0x0000561D, + 15091: 0x00005604, + 15092: 0x000055FF, + 15093: 0x000055F9, + 15094: 0x00005889, + 15095: 0x0000587C, + 15096: 0x00005890, + 15097: 0x00005898, + 15098: 0x00005886, + 15099: 0x00005881, + 15100: 0x0000587F, + 15101: 0x00005874, + 15102: 0x0000588B, + 15103: 0x0000587A, + 15104: 0x00005887, + 15105: 0x00005891, + 15106: 0x0000588E, + 15107: 0x00005876, + 15108: 0x00005882, + 15109: 0x00005888, + 15110: 0x0000587B, + 15111: 0x00005894, + 15112: 0x0000588F, + 15113: 0x000058FE, + 15114: 0x0000596B, + 15115: 0x00005ADC, + 15116: 0x00005AEE, + 15117: 0x00005AE5, + 15118: 0x00005AD5, + 15119: 0x00005AEA, + 15120: 0x00005ADA, + 15121: 0x00005AED, + 15122: 0x00005AEB, + 15123: 0x00005AF3, + 15124: 0x00005AE2, + 15125: 0x00005AE0, + 15126: 0x00005ADB, + 15127: 0x00005AEC, + 15128: 0x00005ADE, + 15129: 0x00005ADD, + 15130: 0x00005AD9, + 15131: 0x00005AE8, + 15132: 0x00005ADF, + 15133: 0x00005B77, + 15134: 0x00005BE0, + 15135: 0x00005BE3, + 15136: 0x00005C63, + 15137: 0x00005D82, + 15138: 0x00005D80, + 15139: 0x00005D7D, + 15140: 0x00005D86, + 15141: 0x00005D7A, + 15142: 0x00005D81, + 15143: 0x00005D77, + 15144: 0x00005D8A, + 15145: 0x00005D89, + 15146: 0x00005D88, + 15147: 0x00005D7E, + 15148: 0x00005D7C, + 15149: 0x00005D8D, + 15150: 0x00005D79, + 15151: 0x00005D7F, + 15152: 0x00005E58, + 15153: 0x00005E59, + 15154: 0x00005E53, + 15155: 0x00005ED8, + 15156: 0x00005ED1, + 15157: 0x00005ED7, + 15158: 0x00005ECE, + 15159: 0x00005EDC, + 15160: 0x00005ED5, + 15161: 0x00005ED9, + 15162: 0x00005ED2, + 15163: 0x00005ED4, + 15164: 0x00005F44, + 15165: 0x00005F43, + 15166: 0x00005F6F, + 15167: 0x00005FB6, + 15168: 0x0000612C, + 15169: 0x00006128, + 15170: 0x00006141, + 15171: 0x0000615E, + 15172: 0x00006171, + 15173: 0x00006173, + 15174: 0x00006152, + 15175: 0x00006153, + 15176: 0x00006172, + 15177: 0x0000616C, + 15178: 0x00006180, + 15179: 0x00006174, + 15180: 0x00006154, + 15181: 0x0000617A, + 15182: 0x0000615B, + 15183: 0x00006165, + 15184: 0x0000613B, + 15185: 0x0000616A, + 15186: 0x00006161, + 15187: 0x00006156, + 15188: 0x00006229, + 15189: 0x00006227, + 15190: 0x0000622B, + 15191: 0x0000642B, + 15192: 0x0000644D, + 15193: 0x0000645B, + 15194: 0x0000645D, + 15195: 0x00006474, + 15196: 0x00006476, + 15197: 0x00006472, + 15198: 0x00006473, + 15199: 0x0000647D, + 15200: 0x00006475, + 15201: 0x00006466, + 15202: 0x000064A6, + 15203: 0x0000644E, + 15204: 0x00006482, + 15205: 0x0000645E, + 15206: 0x0000645C, + 15207: 0x0000644B, + 15208: 0x00006453, + 15209: 0x00006460, + 15210: 0x00006450, + 15211: 0x0000647F, + 15212: 0x0000643F, + 15213: 0x0000646C, + 15214: 0x0000646B, + 15215: 0x00006459, + 15216: 0x00006465, + 15217: 0x00006477, + 15218: 0x00006573, + 15219: 0x000065A0, + 15220: 0x000066A1, + 15221: 0x000066A0, + 15222: 0x0000669F, + 15223: 0x00006705, + 15224: 0x00006704, + 15225: 0x00006722, + 15226: 0x000069B1, + 15227: 0x000069B6, + 15228: 0x000069C9, + 15229: 0x000069A0, + 15230: 0x000069CE, + 15231: 0x00006996, + 15232: 0x000069B0, + 15233: 0x000069AC, + 15234: 0x000069BC, + 15235: 0x00006991, + 15236: 0x00006999, + 15237: 0x0000698E, + 15238: 0x000069A7, + 15239: 0x0000698D, + 15240: 0x000069A9, + 15241: 0x000069BE, + 15242: 0x000069AF, + 15243: 0x000069BF, + 15244: 0x000069C4, + 15245: 0x000069BD, + 15246: 0x000069A4, + 15247: 0x000069D4, + 15248: 0x000069B9, + 15249: 0x000069CA, + 15250: 0x0000699A, + 15251: 0x000069CF, + 15252: 0x000069B3, + 15253: 0x00006993, + 15254: 0x000069AA, + 15255: 0x000069A1, + 15256: 0x0000699E, + 15257: 0x000069D9, + 15258: 0x00006997, + 15259: 0x00006990, + 15260: 0x000069C2, + 15261: 0x000069B5, + 15262: 0x000069A5, + 15263: 0x000069C6, + 15264: 0x00006B4A, + 15265: 0x00006B4D, + 15266: 0x00006B4B, + 15267: 0x00006B9E, + 15268: 0x00006B9F, + 15269: 0x00006BA0, + 15270: 0x00006BC3, + 15271: 0x00006BC4, + 15272: 0x00006BFE, + 15273: 0x00006ECE, + 15274: 0x00006EF5, + 15275: 0x00006EF1, + 15276: 0x00006F03, + 15277: 0x00006F25, + 15278: 0x00006EF8, + 15279: 0x00006F37, + 15280: 0x00006EFB, + 15281: 0x00006F2E, + 15282: 0x00006F09, + 15283: 0x00006F4E, + 15284: 0x00006F19, + 15285: 0x00006F1A, + 15286: 0x00006F27, + 15287: 0x00006F18, + 15288: 0x00006F3B, + 15289: 0x00006F12, + 15290: 0x00006EED, + 15291: 0x00006F0A, + 15292: 0x00006F36, + 15293: 0x00006F73, + 15294: 0x00006EF9, + 15295: 0x00006EEE, + 15296: 0x00006F2D, + 15297: 0x00006F40, + 15298: 0x00006F30, + 15299: 0x00006F3C, + 15300: 0x00006F35, + 15301: 0x00006EEB, + 15302: 0x00006F07, + 15303: 0x00006F0E, + 15304: 0x00006F43, + 15305: 0x00006F05, + 15306: 0x00006EFD, + 15307: 0x00006EF6, + 15308: 0x00006F39, + 15309: 0x00006F1C, + 15310: 0x00006EFC, + 15311: 0x00006F3A, + 15312: 0x00006F1F, + 15313: 0x00006F0D, + 15314: 0x00006F1E, + 15315: 0x00006F08, + 15316: 0x00006F21, + 15317: 0x00007187, + 15318: 0x00007190, + 15319: 0x00007189, + 15320: 0x00007180, + 15321: 0x00007185, + 15322: 0x00007182, + 15323: 0x0000718F, + 15324: 0x0000717B, + 15325: 0x00007186, + 15326: 0x00007181, + 15327: 0x00007197, + 15328: 0x00007244, + 15329: 0x00007253, + 15330: 0x00007297, + 15331: 0x00007295, + 15332: 0x00007293, + 15333: 0x00007343, + 15334: 0x0000734D, + 15335: 0x00007351, + 15336: 0x0000734C, + 15337: 0x00007462, + 15338: 0x00007473, + 15339: 0x00007471, + 15340: 0x00007475, + 15341: 0x00007472, + 15342: 0x00007467, + 15343: 0x0000746E, + 15344: 0x00007500, + 15345: 0x00007502, + 15346: 0x00007503, + 15347: 0x0000757D, + 15348: 0x00007590, + 15349: 0x00007616, + 15350: 0x00007608, + 15351: 0x0000760C, + 15352: 0x00007615, + 15353: 0x00007611, + 15354: 0x0000760A, + 15355: 0x00007614, + 15356: 0x000076B8, + 15357: 0x00007781, + 15358: 0x0000777C, + 15359: 0x00007785, + 15360: 0x00007782, + 15361: 0x0000776E, + 15362: 0x00007780, + 15363: 0x0000776F, + 15364: 0x0000777E, + 15365: 0x00007783, + 15366: 0x000078B2, + 15367: 0x000078AA, + 15368: 0x000078B4, + 15369: 0x000078AD, + 15370: 0x000078A8, + 15371: 0x0000787E, + 15372: 0x000078AB, + 15373: 0x0000789E, + 15374: 0x000078A5, + 15375: 0x000078A0, + 15376: 0x000078AC, + 15377: 0x000078A2, + 15378: 0x000078A4, + 15379: 0x00007998, + 15380: 0x0000798A, + 15381: 0x0000798B, + 15382: 0x00007996, + 15383: 0x00007995, + 15384: 0x00007994, + 15385: 0x00007993, + 15386: 0x00007997, + 15387: 0x00007988, + 15388: 0x00007992, + 15389: 0x00007990, + 15390: 0x00007A2B, + 15391: 0x00007A4A, + 15392: 0x00007A30, + 15393: 0x00007A2F, + 15394: 0x00007A28, + 15395: 0x00007A26, + 15396: 0x00007AA8, + 15397: 0x00007AAB, + 15398: 0x00007AAC, + 15399: 0x00007AEE, + 15400: 0x00007B88, + 15401: 0x00007B9C, + 15402: 0x00007B8A, + 15403: 0x00007B91, + 15404: 0x00007B90, + 15405: 0x00007B96, + 15406: 0x00007B8D, + 15407: 0x00007B8C, + 15408: 0x00007B9B, + 15409: 0x00007B8E, + 15410: 0x00007B85, + 15411: 0x00007B98, + 15412: 0x00005284, + 15413: 0x00007B99, + 15414: 0x00007BA4, + 15415: 0x00007B82, + 15416: 0x00007CBB, + 15417: 0x00007CBF, + 15418: 0x00007CBC, + 15419: 0x00007CBA, + 15420: 0x00007DA7, + 15421: 0x00007DB7, + 15422: 0x00007DC2, + 15423: 0x00007DA3, + 15424: 0x00007DAA, + 15425: 0x00007DC1, + 15426: 0x00007DC0, + 15427: 0x00007DC5, + 15428: 0x00007D9D, + 15429: 0x00007DCE, + 15430: 0x00007DC4, + 15431: 0x00007DC6, + 15432: 0x00007DCB, + 15433: 0x00007DCC, + 15434: 0x00007DAF, + 15435: 0x00007DB9, + 15436: 0x00007D96, + 15437: 0x00007DBC, + 15438: 0x00007D9F, + 15439: 0x00007DA6, + 15440: 0x00007DAE, + 15441: 0x00007DA9, + 15442: 0x00007DA1, + 15443: 0x00007DC9, + 15444: 0x00007F73, + 15445: 0x00007FE2, + 15446: 0x00007FE3, + 15447: 0x00007FE5, + 15448: 0x00007FDE, + 15449: 0x00008024, + 15450: 0x0000805D, + 15451: 0x0000805C, + 15452: 0x00008189, + 15453: 0x00008186, + 15454: 0x00008183, + 15455: 0x00008187, + 15456: 0x0000818D, + 15457: 0x0000818C, + 15458: 0x0000818B, + 15459: 0x00008215, + 15460: 0x00008497, + 15461: 0x000084A4, + 15462: 0x000084A1, + 15463: 0x0000849F, + 15464: 0x000084BA, + 15465: 0x000084CE, + 15466: 0x000084C2, + 15467: 0x000084AC, + 15468: 0x000084AE, + 15469: 0x000084AB, + 15470: 0x000084B9, + 15471: 0x000084B4, + 15472: 0x000084C1, + 15473: 0x000084CD, + 15474: 0x000084AA, + 15475: 0x0000849A, + 15476: 0x000084B1, + 15477: 0x000084D0, + 15478: 0x0000849D, + 15479: 0x000084A7, + 15480: 0x000084BB, + 15481: 0x000084A2, + 15482: 0x00008494, + 15483: 0x000084C7, + 15484: 0x000084CC, + 15485: 0x0000849B, + 15486: 0x000084A9, + 15487: 0x000084AF, + 15488: 0x000084A8, + 15489: 0x000084D6, + 15490: 0x00008498, + 15491: 0x000084B6, + 15492: 0x000084CF, + 15493: 0x000084A0, + 15494: 0x000084D7, + 15495: 0x000084D4, + 15496: 0x000084D2, + 15497: 0x000084DB, + 15498: 0x000084B0, + 15499: 0x00008491, + 15500: 0x00008661, + 15501: 0x00008733, + 15502: 0x00008723, + 15503: 0x00008728, + 15504: 0x0000876B, + 15505: 0x00008740, + 15506: 0x0000872E, + 15507: 0x0000871E, + 15508: 0x00008721, + 15509: 0x00008719, + 15510: 0x0000871B, + 15511: 0x00008743, + 15512: 0x0000872C, + 15513: 0x00008741, + 15514: 0x0000873E, + 15515: 0x00008746, + 15516: 0x00008720, + 15517: 0x00008732, + 15518: 0x0000872A, + 15519: 0x0000872D, + 15520: 0x0000873C, + 15521: 0x00008712, + 15522: 0x0000873A, + 15523: 0x00008731, + 15524: 0x00008735, + 15525: 0x00008742, + 15526: 0x00008726, + 15527: 0x00008727, + 15528: 0x00008738, + 15529: 0x00008724, + 15530: 0x0000871A, + 15531: 0x00008730, + 15532: 0x00008711, + 15533: 0x000088F7, + 15534: 0x000088E7, + 15535: 0x000088F1, + 15536: 0x000088F2, + 15537: 0x000088FA, + 15538: 0x000088FE, + 15539: 0x000088EE, + 15540: 0x000088FC, + 15541: 0x000088F6, + 15542: 0x000088FB, + 15543: 0x000088F0, + 15544: 0x000088EC, + 15545: 0x000088EB, + 15546: 0x0000899D, + 15547: 0x000089A1, + 15548: 0x0000899F, + 15549: 0x0000899E, + 15550: 0x000089E9, + 15551: 0x000089EB, + 15552: 0x000089E8, + 15553: 0x00008AAB, + 15554: 0x00008A99, + 15555: 0x00008A8B, + 15556: 0x00008A92, + 15557: 0x00008A8F, + 15558: 0x00008A96, + 15559: 0x00008C3D, + 15560: 0x00008C68, + 15561: 0x00008C69, + 15562: 0x00008CD5, + 15563: 0x00008CCF, + 15564: 0x00008CD7, + 15565: 0x00008D96, + 15566: 0x00008E09, + 15567: 0x00008E02, + 15568: 0x00008DFF, + 15569: 0x00008E0D, + 15570: 0x00008DFD, + 15571: 0x00008E0A, + 15572: 0x00008E03, + 15573: 0x00008E07, + 15574: 0x00008E06, + 15575: 0x00008E05, + 15576: 0x00008DFE, + 15577: 0x00008E00, + 15578: 0x00008E04, + 15579: 0x00008F10, + 15580: 0x00008F11, + 15581: 0x00008F0E, + 15582: 0x00008F0D, + 15583: 0x00009123, + 15584: 0x0000911C, + 15585: 0x00009120, + 15586: 0x00009122, + 15587: 0x0000911F, + 15588: 0x0000911D, + 15589: 0x0000911A, + 15590: 0x00009124, + 15591: 0x00009121, + 15592: 0x0000911B, + 15593: 0x0000917A, + 15594: 0x00009172, + 15595: 0x00009179, + 15596: 0x00009173, + 15597: 0x000092A5, + 15598: 0x000092A4, + 15599: 0x00009276, + 15600: 0x0000929B, + 15601: 0x0000927A, + 15602: 0x000092A0, + 15603: 0x00009294, + 15604: 0x000092AA, + 15605: 0x0000928D, + 15606: 0x000092A6, + 15607: 0x0000929A, + 15608: 0x000092AB, + 15609: 0x00009279, + 15610: 0x00009297, + 15611: 0x0000927F, + 15612: 0x000092A3, + 15613: 0x000092EE, + 15614: 0x0000928E, + 15615: 0x00009282, + 15616: 0x00009295, + 15617: 0x000092A2, + 15618: 0x0000927D, + 15619: 0x00009288, + 15620: 0x000092A1, + 15621: 0x0000928A, + 15622: 0x00009286, + 15623: 0x0000928C, + 15624: 0x00009299, + 15625: 0x000092A7, + 15626: 0x0000927E, + 15627: 0x00009287, + 15628: 0x000092A9, + 15629: 0x0000929D, + 15630: 0x0000928B, + 15631: 0x0000922D, + 15632: 0x0000969E, + 15633: 0x000096A1, + 15634: 0x000096FF, + 15635: 0x00009758, + 15636: 0x0000977D, + 15637: 0x0000977A, + 15638: 0x0000977E, + 15639: 0x00009783, + 15640: 0x00009780, + 15641: 0x00009782, + 15642: 0x0000977B, + 15643: 0x00009784, + 15644: 0x00009781, + 15645: 0x0000977F, + 15646: 0x000097CE, + 15647: 0x000097CD, + 15648: 0x00009816, + 15649: 0x000098AD, + 15650: 0x000098AE, + 15651: 0x00009902, + 15652: 0x00009900, + 15653: 0x00009907, + 15654: 0x0000999D, + 15655: 0x0000999C, + 15656: 0x000099C3, + 15657: 0x000099B9, + 15658: 0x000099BB, + 15659: 0x000099BA, + 15660: 0x000099C2, + 15661: 0x000099BD, + 15662: 0x000099C7, + 15663: 0x00009AB1, + 15664: 0x00009AE3, + 15665: 0x00009AE7, + 15666: 0x00009B3E, + 15667: 0x00009B3F, + 15668: 0x00009B60, + 15669: 0x00009B61, + 15670: 0x00009B5F, + 15671: 0x00009CF1, + 15672: 0x00009CF2, + 15673: 0x00009CF5, + 15674: 0x00009EA7, + 15675: 0x000050FF, + 15676: 0x00005103, + 15677: 0x00005130, + 15678: 0x000050F8, + 15679: 0x00005106, + 15680: 0x00005107, + 15681: 0x000050F6, + 15682: 0x000050FE, + 15683: 0x0000510B, + 15684: 0x0000510C, + 15685: 0x000050FD, + 15686: 0x0000510A, + 15687: 0x0000528B, + 15688: 0x0000528C, + 15689: 0x000052F1, + 15690: 0x000052EF, + 15691: 0x00005648, + 15692: 0x00005642, + 15693: 0x0000564C, + 15694: 0x00005635, + 15695: 0x00005641, + 15696: 0x0000564A, + 15697: 0x00005649, + 15698: 0x00005646, + 15699: 0x00005658, + 15700: 0x0000565A, + 15701: 0x00005640, + 15702: 0x00005633, + 15703: 0x0000563D, + 15704: 0x0000562C, + 15705: 0x0000563E, + 15706: 0x00005638, + 15707: 0x0000562A, + 15708: 0x0000563A, + 15709: 0x0000571A, + 15710: 0x000058AB, + 15711: 0x0000589D, + 15712: 0x000058B1, + 15713: 0x000058A0, + 15714: 0x000058A3, + 15715: 0x000058AF, + 15716: 0x000058AC, + 15717: 0x000058A5, + 15718: 0x000058A1, + 15719: 0x000058FF, + 15720: 0x00005AFF, + 15721: 0x00005AF4, + 15722: 0x00005AFD, + 15723: 0x00005AF7, + 15724: 0x00005AF6, + 15725: 0x00005B03, + 15726: 0x00005AF8, + 15727: 0x00005B02, + 15728: 0x00005AF9, + 15729: 0x00005B01, + 15730: 0x00005B07, + 15731: 0x00005B05, + 15732: 0x00005B0F, + 15733: 0x00005C67, + 15734: 0x00005D99, + 15735: 0x00005D97, + 15736: 0x00005D9F, + 15737: 0x00005D92, + 15738: 0x00005DA2, + 15739: 0x00005D93, + 15740: 0x00005D95, + 15741: 0x00005DA0, + 15742: 0x00005D9C, + 15743: 0x00005DA1, + 15744: 0x00005D9A, + 15745: 0x00005D9E, + 15746: 0x00005E69, + 15747: 0x00005E5D, + 15748: 0x00005E60, + 15749: 0x00005E5C, + 15750: 0x00007DF3, + 15751: 0x00005EDB, + 15752: 0x00005EDE, + 15753: 0x00005EE1, + 15754: 0x00005F49, + 15755: 0x00005FB2, + 15756: 0x0000618B, + 15757: 0x00006183, + 15758: 0x00006179, + 15759: 0x000061B1, + 15760: 0x000061B0, + 15761: 0x000061A2, + 15762: 0x00006189, + 15763: 0x0000619B, + 15764: 0x00006193, + 15765: 0x000061AF, + 15766: 0x000061AD, + 15767: 0x0000619F, + 15768: 0x00006192, + 15769: 0x000061AA, + 15770: 0x000061A1, + 15771: 0x0000618D, + 15772: 0x00006166, + 15773: 0x000061B3, + 15774: 0x0000622D, + 15775: 0x0000646E, + 15776: 0x00006470, + 15777: 0x00006496, + 15778: 0x000064A0, + 15779: 0x00006485, + 15780: 0x00006497, + 15781: 0x0000649C, + 15782: 0x0000648F, + 15783: 0x0000648B, + 15784: 0x0000648A, + 15785: 0x0000648C, + 15786: 0x000064A3, + 15787: 0x0000649F, + 15788: 0x00006468, + 15789: 0x000064B1, + 15790: 0x00006498, + 15791: 0x00006576, + 15792: 0x0000657A, + 15793: 0x00006579, + 15794: 0x0000657B, + 15795: 0x000065B2, + 15796: 0x000065B3, + 15797: 0x000066B5, + 15798: 0x000066B0, + 15799: 0x000066A9, + 15800: 0x000066B2, + 15801: 0x000066B7, + 15802: 0x000066AA, + 15803: 0x000066AF, + 15804: 0x00006A00, + 15805: 0x00006A06, + 15806: 0x00006A17, + 15807: 0x000069E5, + 15808: 0x000069F8, + 15809: 0x00006A15, + 15810: 0x000069F1, + 15811: 0x000069E4, + 15812: 0x00006A20, + 15813: 0x000069FF, + 15814: 0x000069EC, + 15815: 0x000069E2, + 15816: 0x00006A1B, + 15817: 0x00006A1D, + 15818: 0x000069FE, + 15819: 0x00006A27, + 15820: 0x000069F2, + 15821: 0x000069EE, + 15822: 0x00006A14, + 15823: 0x000069F7, + 15824: 0x000069E7, + 15825: 0x00006A40, + 15826: 0x00006A08, + 15827: 0x000069E6, + 15828: 0x000069FB, + 15829: 0x00006A0D, + 15830: 0x000069FC, + 15831: 0x000069EB, + 15832: 0x00006A09, + 15833: 0x00006A04, + 15834: 0x00006A18, + 15835: 0x00006A25, + 15836: 0x00006A0F, + 15837: 0x000069F6, + 15838: 0x00006A26, + 15839: 0x00006A07, + 15840: 0x000069F4, + 15841: 0x00006A16, + 15842: 0x00006B51, + 15843: 0x00006BA5, + 15844: 0x00006BA3, + 15845: 0x00006BA2, + 15846: 0x00006BA6, + 15847: 0x00006C01, + 15848: 0x00006C00, + 15849: 0x00006BFF, + 15850: 0x00006C02, + 15851: 0x00006F41, + 15852: 0x00006F26, + 15853: 0x00006F7E, + 15854: 0x00006F87, + 15855: 0x00006FC6, + 15856: 0x00006F92, + 15857: 0x00006F8D, + 15858: 0x00006F89, + 15859: 0x00006F8C, + 15860: 0x00006F62, + 15861: 0x00006F4F, + 15862: 0x00006F85, + 15863: 0x00006F5A, + 15864: 0x00006F96, + 15865: 0x00006F76, + 15866: 0x00006F6C, + 15867: 0x00006F82, + 15868: 0x00006F55, + 15869: 0x00006F72, + 15870: 0x00006F52, + 15871: 0x00006F50, + 15872: 0x00006F57, + 15873: 0x00006F94, + 15874: 0x00006F93, + 15875: 0x00006F5D, + 15876: 0x00006F00, + 15877: 0x00006F61, + 15878: 0x00006F6B, + 15879: 0x00006F7D, + 15880: 0x00006F67, + 15881: 0x00006F90, + 15882: 0x00006F53, + 15883: 0x00006F8B, + 15884: 0x00006F69, + 15885: 0x00006F7F, + 15886: 0x00006F95, + 15887: 0x00006F63, + 15888: 0x00006F77, + 15889: 0x00006F6A, + 15890: 0x00006F7B, + 15891: 0x000071B2, + 15892: 0x000071AF, + 15893: 0x0000719B, + 15894: 0x000071B0, + 15895: 0x000071A0, + 15896: 0x0000719A, + 15897: 0x000071A9, + 15898: 0x000071B5, + 15899: 0x0000719D, + 15900: 0x000071A5, + 15901: 0x0000719E, + 15902: 0x000071A4, + 15903: 0x000071A1, + 15904: 0x000071AA, + 15905: 0x0000719C, + 15906: 0x000071A7, + 15907: 0x000071B3, + 15908: 0x00007298, + 15909: 0x0000729A, + 15910: 0x00007358, + 15911: 0x00007352, + 15912: 0x0000735E, + 15913: 0x0000735F, + 15914: 0x00007360, + 15915: 0x0000735D, + 15916: 0x0000735B, + 15917: 0x00007361, + 15918: 0x0000735A, + 15919: 0x00007359, + 15920: 0x00007362, + 15921: 0x00007487, + 15922: 0x00007489, + 15923: 0x0000748A, + 15924: 0x00007486, + 15925: 0x00007481, + 15926: 0x0000747D, + 15927: 0x00007485, + 15928: 0x00007488, + 15929: 0x0000747C, + 15930: 0x00007479, + 15931: 0x00007508, + 15932: 0x00007507, + 15933: 0x0000757E, + 15934: 0x00007625, + 15935: 0x0000761E, + 15936: 0x00007619, + 15937: 0x0000761D, + 15938: 0x0000761C, + 15939: 0x00007623, + 15940: 0x0000761A, + 15941: 0x00007628, + 15942: 0x0000761B, + 15943: 0x0000769C, + 15944: 0x0000769D, + 15945: 0x0000769E, + 15946: 0x0000769B, + 15947: 0x0000778D, + 15948: 0x0000778F, + 15949: 0x00007789, + 15950: 0x00007788, + 15951: 0x000078CD, + 15952: 0x000078BB, + 15953: 0x000078CF, + 15954: 0x000078CC, + 15955: 0x000078D1, + 15956: 0x000078CE, + 15957: 0x000078D4, + 15958: 0x000078C8, + 15959: 0x000078C3, + 15960: 0x000078C4, + 15961: 0x000078C9, + 15962: 0x0000799A, + 15963: 0x000079A1, + 15964: 0x000079A0, + 15965: 0x0000799C, + 15966: 0x000079A2, + 15967: 0x0000799B, + 15968: 0x00006B76, + 15969: 0x00007A39, + 15970: 0x00007AB2, + 15971: 0x00007AB4, + 15972: 0x00007AB3, + 15973: 0x00007BB7, + 15974: 0x00007BCB, + 15975: 0x00007BBE, + 15976: 0x00007BAC, + 15977: 0x00007BCE, + 15978: 0x00007BAF, + 15979: 0x00007BB9, + 15980: 0x00007BCA, + 15981: 0x00007BB5, + 15982: 0x00007CC5, + 15983: 0x00007CC8, + 15984: 0x00007CCC, + 15985: 0x00007CCB, + 15986: 0x00007DF7, + 15987: 0x00007DDB, + 15988: 0x00007DEA, + 15989: 0x00007DE7, + 15990: 0x00007DD7, + 15991: 0x00007DE1, + 15992: 0x00007E03, + 15993: 0x00007DFA, + 15994: 0x00007DE6, + 15995: 0x00007DF6, + 15996: 0x00007DF1, + 15997: 0x00007DF0, + 15998: 0x00007DEE, + 15999: 0x00007DDF, + 16000: 0x00007F76, + 16001: 0x00007FAC, + 16002: 0x00007FB0, + 16003: 0x00007FAD, + 16004: 0x00007FED, + 16005: 0x00007FEB, + 16006: 0x00007FEA, + 16007: 0x00007FEC, + 16008: 0x00007FE6, + 16009: 0x00007FE8, + 16010: 0x00008064, + 16011: 0x00008067, + 16012: 0x000081A3, + 16013: 0x0000819F, + 16014: 0x0000819E, + 16015: 0x00008195, + 16016: 0x000081A2, + 16017: 0x00008199, + 16018: 0x00008197, + 16019: 0x00008216, + 16020: 0x0000824F, + 16021: 0x00008253, + 16022: 0x00008252, + 16023: 0x00008250, + 16024: 0x0000824E, + 16025: 0x00008251, + 16026: 0x00008524, + 16027: 0x0000853B, + 16028: 0x0000850F, + 16029: 0x00008500, + 16030: 0x00008529, + 16031: 0x0000850E, + 16032: 0x00008509, + 16033: 0x0000850D, + 16034: 0x0000851F, + 16035: 0x0000850A, + 16036: 0x00008527, + 16037: 0x0000851C, + 16038: 0x000084FB, + 16039: 0x0000852B, + 16040: 0x000084FA, + 16041: 0x00008508, + 16042: 0x0000850C, + 16043: 0x000084F4, + 16044: 0x0000852A, + 16045: 0x000084F2, + 16046: 0x00008515, + 16047: 0x000084F7, + 16048: 0x000084EB, + 16049: 0x000084F3, + 16050: 0x000084FC, + 16051: 0x00008512, + 16052: 0x000084EA, + 16053: 0x000084E9, + 16054: 0x00008516, + 16055: 0x000084FE, + 16056: 0x00008528, + 16057: 0x0000851D, + 16058: 0x0000852E, + 16059: 0x00008502, + 16060: 0x000084FD, + 16061: 0x0000851E, + 16062: 0x000084F6, + 16063: 0x00008531, + 16064: 0x00008526, + 16065: 0x000084E7, + 16066: 0x000084E8, + 16067: 0x000084F0, + 16068: 0x000084EF, + 16069: 0x000084F9, + 16070: 0x00008518, + 16071: 0x00008520, + 16072: 0x00008530, + 16073: 0x0000850B, + 16074: 0x00008519, + 16075: 0x0000852F, + 16076: 0x00008662, + 16077: 0x00008756, + 16078: 0x00008763, + 16079: 0x00008764, + 16080: 0x00008777, + 16081: 0x000087E1, + 16082: 0x00008773, + 16083: 0x00008758, + 16084: 0x00008754, + 16085: 0x0000875B, + 16086: 0x00008752, + 16087: 0x00008761, + 16088: 0x0000875A, + 16089: 0x00008751, + 16090: 0x0000875E, + 16091: 0x0000876D, + 16092: 0x0000876A, + 16093: 0x00008750, + 16094: 0x0000874E, + 16095: 0x0000875F, + 16096: 0x0000875D, + 16097: 0x0000876F, + 16098: 0x0000876C, + 16099: 0x0000877A, + 16100: 0x0000876E, + 16101: 0x0000875C, + 16102: 0x00008765, + 16103: 0x0000874F, + 16104: 0x0000877B, + 16105: 0x00008775, + 16106: 0x00008762, + 16107: 0x00008767, + 16108: 0x00008769, + 16109: 0x0000885A, + 16110: 0x00008905, + 16111: 0x0000890C, + 16112: 0x00008914, + 16113: 0x0000890B, + 16114: 0x00008917, + 16115: 0x00008918, + 16116: 0x00008919, + 16117: 0x00008906, + 16118: 0x00008916, + 16119: 0x00008911, + 16120: 0x0000890E, + 16121: 0x00008909, + 16122: 0x000089A2, + 16123: 0x000089A4, + 16124: 0x000089A3, + 16125: 0x000089ED, + 16126: 0x000089F0, + 16127: 0x000089EC, + 16128: 0x00008ACF, + 16129: 0x00008AC6, + 16130: 0x00008AB8, + 16131: 0x00008AD3, + 16132: 0x00008AD1, + 16133: 0x00008AD4, + 16134: 0x00008AD5, + 16135: 0x00008ABB, + 16136: 0x00008AD7, + 16137: 0x00008ABE, + 16138: 0x00008AC0, + 16139: 0x00008AC5, + 16140: 0x00008AD8, + 16141: 0x00008AC3, + 16142: 0x00008ABA, + 16143: 0x00008ABD, + 16144: 0x00008AD9, + 16145: 0x00008C3E, + 16146: 0x00008C4D, + 16147: 0x00008C8F, + 16148: 0x00008CE5, + 16149: 0x00008CDF, + 16150: 0x00008CD9, + 16151: 0x00008CE8, + 16152: 0x00008CDA, + 16153: 0x00008CDD, + 16154: 0x00008CE7, + 16155: 0x00008DA0, + 16156: 0x00008D9C, + 16157: 0x00008DA1, + 16158: 0x00008D9B, + 16159: 0x00008E20, + 16160: 0x00008E23, + 16161: 0x00008E25, + 16162: 0x00008E24, + 16163: 0x00008E2E, + 16164: 0x00008E15, + 16165: 0x00008E1B, + 16166: 0x00008E16, + 16167: 0x00008E11, + 16168: 0x00008E19, + 16169: 0x00008E26, + 16170: 0x00008E27, + 16171: 0x00008E14, + 16172: 0x00008E12, + 16173: 0x00008E18, + 16174: 0x00008E13, + 16175: 0x00008E1C, + 16176: 0x00008E17, + 16177: 0x00008E1A, + 16178: 0x00008F2C, + 16179: 0x00008F24, + 16180: 0x00008F18, + 16181: 0x00008F1A, + 16182: 0x00008F20, + 16183: 0x00008F23, + 16184: 0x00008F16, + 16185: 0x00008F17, + 16186: 0x00009073, + 16187: 0x00009070, + 16188: 0x0000906F, + 16189: 0x00009067, + 16190: 0x0000906B, + 16191: 0x0000912F, + 16192: 0x0000912B, + 16193: 0x00009129, + 16194: 0x0000912A, + 16195: 0x00009132, + 16196: 0x00009126, + 16197: 0x0000912E, + 16198: 0x00009185, + 16199: 0x00009186, + 16200: 0x0000918A, + 16201: 0x00009181, + 16202: 0x00009182, + 16203: 0x00009184, + 16204: 0x00009180, + 16205: 0x000092D0, + 16206: 0x000092C3, + 16207: 0x000092C4, + 16208: 0x000092C0, + 16209: 0x000092D9, + 16210: 0x000092B6, + 16211: 0x000092CF, + 16212: 0x000092F1, + 16213: 0x000092DF, + 16214: 0x000092D8, + 16215: 0x000092E9, + 16216: 0x000092D7, + 16217: 0x000092DD, + 16218: 0x000092CC, + 16219: 0x000092EF, + 16220: 0x000092C2, + 16221: 0x000092E8, + 16222: 0x000092CA, + 16223: 0x000092C8, + 16224: 0x000092CE, + 16225: 0x000092E6, + 16226: 0x000092CD, + 16227: 0x000092D5, + 16228: 0x000092C9, + 16229: 0x000092E0, + 16230: 0x000092DE, + 16231: 0x000092E7, + 16232: 0x000092D1, + 16233: 0x000092D3, + 16234: 0x000092B5, + 16235: 0x000092E1, + 16236: 0x000092C6, + 16237: 0x000092B4, + 16238: 0x0000957C, + 16239: 0x000095AC, + 16240: 0x000095AB, + 16241: 0x000095AE, + 16242: 0x000095B0, + 16243: 0x000096A4, + 16244: 0x000096A2, + 16245: 0x000096D3, + 16246: 0x00009705, + 16247: 0x00009708, + 16248: 0x00009702, + 16249: 0x0000975A, + 16250: 0x0000978A, + 16251: 0x0000978E, + 16252: 0x00009788, + 16253: 0x000097D0, + 16254: 0x000097CF, + 16255: 0x0000981E, + 16256: 0x0000981D, + 16257: 0x00009826, + 16258: 0x00009829, + 16259: 0x00009828, + 16260: 0x00009820, + 16261: 0x0000981B, + 16262: 0x00009827, + 16263: 0x000098B2, + 16264: 0x00009908, + 16265: 0x000098FA, + 16266: 0x00009911, + 16267: 0x00009914, + 16268: 0x00009916, + 16269: 0x00009917, + 16270: 0x00009915, + 16271: 0x000099DC, + 16272: 0x000099CD, + 16273: 0x000099CF, + 16274: 0x000099D3, + 16275: 0x000099D4, + 16276: 0x000099CE, + 16277: 0x000099C9, + 16278: 0x000099D6, + 16279: 0x000099D8, + 16280: 0x000099CB, + 16281: 0x000099D7, + 16282: 0x000099CC, + 16283: 0x00009AB3, + 16284: 0x00009AEC, + 16285: 0x00009AEB, + 16286: 0x00009AF3, + 16287: 0x00009AF2, + 16288: 0x00009AF1, + 16289: 0x00009B46, + 16290: 0x00009B43, + 16291: 0x00009B67, + 16292: 0x00009B74, + 16293: 0x00009B71, + 16294: 0x00009B66, + 16295: 0x00009B76, + 16296: 0x00009B75, + 16297: 0x00009B70, + 16298: 0x00009B68, + 16299: 0x00009B64, + 16300: 0x00009B6C, + 16301: 0x00009CFC, + 16302: 0x00009CFA, + 16303: 0x00009CFD, + 16304: 0x00009CFF, + 16305: 0x00009CF7, + 16306: 0x00009D07, + 16307: 0x00009D00, + 16308: 0x00009CF9, + 16309: 0x00009CFB, + 16310: 0x00009D08, + 16311: 0x00009D05, + 16312: 0x00009D04, + 16313: 0x00009E83, + 16314: 0x00009ED3, + 16315: 0x00009F0F, + 16316: 0x00009F10, + 16317: 0x0000511C, + 16318: 0x00005113, + 16319: 0x00005117, + 16320: 0x0000511A, + 16321: 0x00005111, + 16322: 0x000051DE, + 16323: 0x00005334, + 16324: 0x000053E1, + 16325: 0x00005670, + 16326: 0x00005660, + 16327: 0x0000566E, + 16328: 0x00005673, + 16329: 0x00005666, + 16330: 0x00005663, + 16331: 0x0000566D, + 16332: 0x00005672, + 16333: 0x0000565E, + 16334: 0x00005677, + 16335: 0x0000571C, + 16336: 0x0000571B, + 16337: 0x000058C8, + 16338: 0x000058BD, + 16339: 0x000058C9, + 16340: 0x000058BF, + 16341: 0x000058BA, + 16342: 0x000058C2, + 16343: 0x000058BC, + 16344: 0x000058C6, + 16345: 0x00005B17, + 16346: 0x00005B19, + 16347: 0x00005B1B, + 16348: 0x00005B21, + 16349: 0x00005B14, + 16350: 0x00005B13, + 16351: 0x00005B10, + 16352: 0x00005B16, + 16353: 0x00005B28, + 16354: 0x00005B1A, + 16355: 0x00005B20, + 16356: 0x00005B1E, + 16357: 0x00005BEF, + 16358: 0x00005DAC, + 16359: 0x00005DB1, + 16360: 0x00005DA9, + 16361: 0x00005DA7, + 16362: 0x00005DB5, + 16363: 0x00005DB0, + 16364: 0x00005DAE, + 16365: 0x00005DAA, + 16366: 0x00005DA8, + 16367: 0x00005DB2, + 16368: 0x00005DAD, + 16369: 0x00005DAF, + 16370: 0x00005DB4, + 16371: 0x00005E67, + 16372: 0x00005E68, + 16373: 0x00005E66, + 16374: 0x00005E6F, + 16375: 0x00005EE9, + 16376: 0x00005EE7, + 16377: 0x00005EE6, + 16378: 0x00005EE8, + 16379: 0x00005EE5, + 16380: 0x00005F4B, + 16381: 0x00005FBC, + 16382: 0x0000619D, + 16383: 0x000061A8, + 16384: 0x00006196, + 16385: 0x000061C5, + 16386: 0x000061B4, + 16387: 0x000061C6, + 16388: 0x000061C1, + 16389: 0x000061CC, + 16390: 0x000061BA, + 16391: 0x000061BF, + 16392: 0x000061B8, + 16393: 0x0000618C, + 16394: 0x000064D7, + 16395: 0x000064D6, + 16396: 0x000064D0, + 16397: 0x000064CF, + 16398: 0x000064C9, + 16399: 0x000064BD, + 16400: 0x00006489, + 16401: 0x000064C3, + 16402: 0x000064DB, + 16403: 0x000064F3, + 16404: 0x000064D9, + 16405: 0x00006533, + 16406: 0x0000657F, + 16407: 0x0000657C, + 16408: 0x000065A2, + 16409: 0x000066C8, + 16410: 0x000066BE, + 16411: 0x000066C0, + 16412: 0x000066CA, + 16413: 0x000066CB, + 16414: 0x000066CF, + 16415: 0x000066BD, + 16416: 0x000066BB, + 16417: 0x000066BA, + 16418: 0x000066CC, + 16419: 0x00006723, + 16420: 0x00006A34, + 16421: 0x00006A66, + 16422: 0x00006A49, + 16423: 0x00006A67, + 16424: 0x00006A32, + 16425: 0x00006A68, + 16426: 0x00006A3E, + 16427: 0x00006A5D, + 16428: 0x00006A6D, + 16429: 0x00006A76, + 16430: 0x00006A5B, + 16431: 0x00006A51, + 16432: 0x00006A28, + 16433: 0x00006A5A, + 16434: 0x00006A3B, + 16435: 0x00006A3F, + 16436: 0x00006A41, + 16437: 0x00006A6A, + 16438: 0x00006A64, + 16439: 0x00006A50, + 16440: 0x00006A4F, + 16441: 0x00006A54, + 16442: 0x00006A6F, + 16443: 0x00006A69, + 16444: 0x00006A60, + 16445: 0x00006A3C, + 16446: 0x00006A5E, + 16447: 0x00006A56, + 16448: 0x00006A55, + 16449: 0x00006A4D, + 16450: 0x00006A4E, + 16451: 0x00006A46, + 16452: 0x00006B55, + 16453: 0x00006B54, + 16454: 0x00006B56, + 16455: 0x00006BA7, + 16456: 0x00006BAA, + 16457: 0x00006BAB, + 16458: 0x00006BC8, + 16459: 0x00006BC7, + 16460: 0x00006C04, + 16461: 0x00006C03, + 16462: 0x00006C06, + 16463: 0x00006FAD, + 16464: 0x00006FCB, + 16465: 0x00006FA3, + 16466: 0x00006FC7, + 16467: 0x00006FBC, + 16468: 0x00006FCE, + 16469: 0x00006FC8, + 16470: 0x00006F5E, + 16471: 0x00006FC4, + 16472: 0x00006FBD, + 16473: 0x00006F9E, + 16474: 0x00006FCA, + 16475: 0x00006FA8, + 16476: 0x00007004, + 16477: 0x00006FA5, + 16478: 0x00006FAE, + 16479: 0x00006FBA, + 16480: 0x00006FAC, + 16481: 0x00006FAA, + 16482: 0x00006FCF, + 16483: 0x00006FBF, + 16484: 0x00006FB8, + 16485: 0x00006FA2, + 16486: 0x00006FC9, + 16487: 0x00006FAB, + 16488: 0x00006FCD, + 16489: 0x00006FAF, + 16490: 0x00006FB2, + 16491: 0x00006FB0, + 16492: 0x000071C5, + 16493: 0x000071C2, + 16494: 0x000071BF, + 16495: 0x000071B8, + 16496: 0x000071D6, + 16497: 0x000071C0, + 16498: 0x000071C1, + 16499: 0x000071CB, + 16500: 0x000071D4, + 16501: 0x000071CA, + 16502: 0x000071C7, + 16503: 0x000071CF, + 16504: 0x000071BD, + 16505: 0x000071D8, + 16506: 0x000071BC, + 16507: 0x000071C6, + 16508: 0x000071DA, + 16509: 0x000071DB, + 16510: 0x0000729D, + 16511: 0x0000729E, + 16512: 0x00007369, + 16513: 0x00007366, + 16514: 0x00007367, + 16515: 0x0000736C, + 16516: 0x00007365, + 16517: 0x0000736B, + 16518: 0x0000736A, + 16519: 0x0000747F, + 16520: 0x0000749A, + 16521: 0x000074A0, + 16522: 0x00007494, + 16523: 0x00007492, + 16524: 0x00007495, + 16525: 0x000074A1, + 16526: 0x0000750B, + 16527: 0x00007580, + 16528: 0x0000762F, + 16529: 0x0000762D, + 16530: 0x00007631, + 16531: 0x0000763D, + 16532: 0x00007633, + 16533: 0x0000763C, + 16534: 0x00007635, + 16535: 0x00007632, + 16536: 0x00007630, + 16537: 0x000076BB, + 16538: 0x000076E6, + 16539: 0x0000779A, + 16540: 0x0000779D, + 16541: 0x000077A1, + 16542: 0x0000779C, + 16543: 0x0000779B, + 16544: 0x000077A2, + 16545: 0x000077A3, + 16546: 0x00007795, + 16547: 0x00007799, + 16548: 0x00007797, + 16549: 0x000078DD, + 16550: 0x000078E9, + 16551: 0x000078E5, + 16552: 0x000078EA, + 16553: 0x000078DE, + 16554: 0x000078E3, + 16555: 0x000078DB, + 16556: 0x000078E1, + 16557: 0x000078E2, + 16558: 0x000078ED, + 16559: 0x000078DF, + 16560: 0x000078E0, + 16561: 0x000079A4, + 16562: 0x00007A44, + 16563: 0x00007A48, + 16564: 0x00007A47, + 16565: 0x00007AB6, + 16566: 0x00007AB8, + 16567: 0x00007AB5, + 16568: 0x00007AB1, + 16569: 0x00007AB7, + 16570: 0x00007BDE, + 16571: 0x00007BE3, + 16572: 0x00007BE7, + 16573: 0x00007BDD, + 16574: 0x00007BD5, + 16575: 0x00007BE5, + 16576: 0x00007BDA, + 16577: 0x00007BE8, + 16578: 0x00007BF9, + 16579: 0x00007BD4, + 16580: 0x00007BEA, + 16581: 0x00007BE2, + 16582: 0x00007BDC, + 16583: 0x00007BEB, + 16584: 0x00007BD8, + 16585: 0x00007BDF, + 16586: 0x00007CD2, + 16587: 0x00007CD4, + 16588: 0x00007CD7, + 16589: 0x00007CD0, + 16590: 0x00007CD1, + 16591: 0x00007E12, + 16592: 0x00007E21, + 16593: 0x00007E17, + 16594: 0x00007E0C, + 16595: 0x00007E1F, + 16596: 0x00007E20, + 16597: 0x00007E13, + 16598: 0x00007E0E, + 16599: 0x00007E1C, + 16600: 0x00007E15, + 16601: 0x00007E1A, + 16602: 0x00007E22, + 16603: 0x00007E0B, + 16604: 0x00007E0F, + 16605: 0x00007E16, + 16606: 0x00007E0D, + 16607: 0x00007E14, + 16608: 0x00007E25, + 16609: 0x00007E24, + 16610: 0x00007F43, + 16611: 0x00007F7B, + 16612: 0x00007F7C, + 16613: 0x00007F7A, + 16614: 0x00007FB1, + 16615: 0x00007FEF, + 16616: 0x0000802A, + 16617: 0x00008029, + 16618: 0x0000806C, + 16619: 0x000081B1, + 16620: 0x000081A6, + 16621: 0x000081AE, + 16622: 0x000081B9, + 16623: 0x000081B5, + 16624: 0x000081AB, + 16625: 0x000081B0, + 16626: 0x000081AC, + 16627: 0x000081B4, + 16628: 0x000081B2, + 16629: 0x000081B7, + 16630: 0x000081A7, + 16631: 0x000081F2, + 16632: 0x00008255, + 16633: 0x00008256, + 16634: 0x00008257, + 16635: 0x00008556, + 16636: 0x00008545, + 16637: 0x0000856B, + 16638: 0x0000854D, + 16639: 0x00008553, + 16640: 0x00008561, + 16641: 0x00008558, + 16642: 0x00008540, + 16643: 0x00008546, + 16644: 0x00008564, + 16645: 0x00008541, + 16646: 0x00008562, + 16647: 0x00008544, + 16648: 0x00008551, + 16649: 0x00008547, + 16650: 0x00008563, + 16651: 0x0000853E, + 16652: 0x0000855B, + 16653: 0x00008571, + 16654: 0x0000854E, + 16655: 0x0000856E, + 16656: 0x00008575, + 16657: 0x00008555, + 16658: 0x00008567, + 16659: 0x00008560, + 16660: 0x0000858C, + 16661: 0x00008566, + 16662: 0x0000855D, + 16663: 0x00008554, + 16664: 0x00008565, + 16665: 0x0000856C, + 16666: 0x00008663, + 16667: 0x00008665, + 16668: 0x00008664, + 16669: 0x0000879B, + 16670: 0x0000878F, + 16671: 0x00008797, + 16672: 0x00008793, + 16673: 0x00008792, + 16674: 0x00008788, + 16675: 0x00008781, + 16676: 0x00008796, + 16677: 0x00008798, + 16678: 0x00008779, + 16679: 0x00008787, + 16680: 0x000087A3, + 16681: 0x00008785, + 16682: 0x00008790, + 16683: 0x00008791, + 16684: 0x0000879D, + 16685: 0x00008784, + 16686: 0x00008794, + 16687: 0x0000879C, + 16688: 0x0000879A, + 16689: 0x00008789, + 16690: 0x0000891E, + 16691: 0x00008926, + 16692: 0x00008930, + 16693: 0x0000892D, + 16694: 0x0000892E, + 16695: 0x00008927, + 16696: 0x00008931, + 16697: 0x00008922, + 16698: 0x00008929, + 16699: 0x00008923, + 16700: 0x0000892F, + 16701: 0x0000892C, + 16702: 0x0000891F, + 16703: 0x000089F1, + 16704: 0x00008AE0, + 16705: 0x00008AE2, + 16706: 0x00008AF2, + 16707: 0x00008AF4, + 16708: 0x00008AF5, + 16709: 0x00008ADD, + 16710: 0x00008B14, + 16711: 0x00008AE4, + 16712: 0x00008ADF, + 16713: 0x00008AF0, + 16714: 0x00008AC8, + 16715: 0x00008ADE, + 16716: 0x00008AE1, + 16717: 0x00008AE8, + 16718: 0x00008AFF, + 16719: 0x00008AEF, + 16720: 0x00008AFB, + 16721: 0x00008C91, + 16722: 0x00008C92, + 16723: 0x00008C90, + 16724: 0x00008CF5, + 16725: 0x00008CEE, + 16726: 0x00008CF1, + 16727: 0x00008CF0, + 16728: 0x00008CF3, + 16729: 0x00008D6C, + 16730: 0x00008D6E, + 16731: 0x00008DA5, + 16732: 0x00008DA7, + 16733: 0x00008E33, + 16734: 0x00008E3E, + 16735: 0x00008E38, + 16736: 0x00008E40, + 16737: 0x00008E45, + 16738: 0x00008E36, + 16739: 0x00008E3C, + 16740: 0x00008E3D, + 16741: 0x00008E41, + 16742: 0x00008E30, + 16743: 0x00008E3F, + 16744: 0x00008EBD, + 16745: 0x00008F36, + 16746: 0x00008F2E, + 16747: 0x00008F35, + 16748: 0x00008F32, + 16749: 0x00008F39, + 16750: 0x00008F37, + 16751: 0x00008F34, + 16752: 0x00009076, + 16753: 0x00009079, + 16754: 0x0000907B, + 16755: 0x00009086, + 16756: 0x000090FA, + 16757: 0x00009133, + 16758: 0x00009135, + 16759: 0x00009136, + 16760: 0x00009193, + 16761: 0x00009190, + 16762: 0x00009191, + 16763: 0x0000918D, + 16764: 0x0000918F, + 16765: 0x00009327, + 16766: 0x0000931E, + 16767: 0x00009308, + 16768: 0x0000931F, + 16769: 0x00009306, + 16770: 0x0000930F, + 16771: 0x0000937A, + 16772: 0x00009338, + 16773: 0x0000933C, + 16774: 0x0000931B, + 16775: 0x00009323, + 16776: 0x00009312, + 16777: 0x00009301, + 16778: 0x00009346, + 16779: 0x0000932D, + 16780: 0x0000930E, + 16781: 0x0000930D, + 16782: 0x000092CB, + 16783: 0x0000931D, + 16784: 0x000092FA, + 16785: 0x00009325, + 16786: 0x00009313, + 16787: 0x000092F9, + 16788: 0x000092F7, + 16789: 0x00009334, + 16790: 0x00009302, + 16791: 0x00009324, + 16792: 0x000092FF, + 16793: 0x00009329, + 16794: 0x00009339, + 16795: 0x00009335, + 16796: 0x0000932A, + 16797: 0x00009314, + 16798: 0x0000930C, + 16799: 0x0000930B, + 16800: 0x000092FE, + 16801: 0x00009309, + 16802: 0x00009300, + 16803: 0x000092FB, + 16804: 0x00009316, + 16805: 0x000095BC, + 16806: 0x000095CD, + 16807: 0x000095BE, + 16808: 0x000095B9, + 16809: 0x000095BA, + 16810: 0x000095B6, + 16811: 0x000095BF, + 16812: 0x000095B5, + 16813: 0x000095BD, + 16814: 0x000096A9, + 16815: 0x000096D4, + 16816: 0x0000970B, + 16817: 0x00009712, + 16818: 0x00009710, + 16819: 0x00009799, + 16820: 0x00009797, + 16821: 0x00009794, + 16822: 0x000097F0, + 16823: 0x000097F8, + 16824: 0x00009835, + 16825: 0x0000982F, + 16826: 0x00009832, + 16827: 0x00009924, + 16828: 0x0000991F, + 16829: 0x00009927, + 16830: 0x00009929, + 16831: 0x0000999E, + 16832: 0x000099EE, + 16833: 0x000099EC, + 16834: 0x000099E5, + 16835: 0x000099E4, + 16836: 0x000099F0, + 16837: 0x000099E3, + 16838: 0x000099EA, + 16839: 0x000099E9, + 16840: 0x000099E7, + 16841: 0x00009AB9, + 16842: 0x00009ABF, + 16843: 0x00009AB4, + 16844: 0x00009ABB, + 16845: 0x00009AF6, + 16846: 0x00009AFA, + 16847: 0x00009AF9, + 16848: 0x00009AF7, + 16849: 0x00009B33, + 16850: 0x00009B80, + 16851: 0x00009B85, + 16852: 0x00009B87, + 16853: 0x00009B7C, + 16854: 0x00009B7E, + 16855: 0x00009B7B, + 16856: 0x00009B82, + 16857: 0x00009B93, + 16858: 0x00009B92, + 16859: 0x00009B90, + 16860: 0x00009B7A, + 16861: 0x00009B95, + 16862: 0x00009B7D, + 16863: 0x00009B88, + 16864: 0x00009D25, + 16865: 0x00009D17, + 16866: 0x00009D20, + 16867: 0x00009D1E, + 16868: 0x00009D14, + 16869: 0x00009D29, + 16870: 0x00009D1D, + 16871: 0x00009D18, + 16872: 0x00009D22, + 16873: 0x00009D10, + 16874: 0x00009D19, + 16875: 0x00009D1F, + 16876: 0x00009E88, + 16877: 0x00009E86, + 16878: 0x00009E87, + 16879: 0x00009EAE, + 16880: 0x00009EAD, + 16881: 0x00009ED5, + 16882: 0x00009ED6, + 16883: 0x00009EFA, + 16884: 0x00009F12, + 16885: 0x00009F3D, + 16886: 0x00005126, + 16887: 0x00005125, + 16888: 0x00005122, + 16889: 0x00005124, + 16890: 0x00005120, + 16891: 0x00005129, + 16892: 0x000052F4, + 16893: 0x00005693, + 16894: 0x0000568C, + 16895: 0x0000568D, + 16896: 0x00005686, + 16897: 0x00005684, + 16898: 0x00005683, + 16899: 0x0000567E, + 16900: 0x00005682, + 16901: 0x0000567F, + 16902: 0x00005681, + 16903: 0x000058D6, + 16904: 0x000058D4, + 16905: 0x000058CF, + 16906: 0x000058D2, + 16907: 0x00005B2D, + 16908: 0x00005B25, + 16909: 0x00005B32, + 16910: 0x00005B23, + 16911: 0x00005B2C, + 16912: 0x00005B27, + 16913: 0x00005B26, + 16914: 0x00005B2F, + 16915: 0x00005B2E, + 16916: 0x00005B7B, + 16917: 0x00005BF1, + 16918: 0x00005BF2, + 16919: 0x00005DB7, + 16920: 0x00005E6C, + 16921: 0x00005E6A, + 16922: 0x00005FBE, + 16923: 0x00005FBB, + 16924: 0x000061C3, + 16925: 0x000061B5, + 16926: 0x000061BC, + 16927: 0x000061E7, + 16928: 0x000061E0, + 16929: 0x000061E5, + 16930: 0x000061E4, + 16931: 0x000061E8, + 16932: 0x000061DE, + 16933: 0x000064EF, + 16934: 0x000064E9, + 16935: 0x000064E3, + 16936: 0x000064EB, + 16937: 0x000064E4, + 16938: 0x000064E8, + 16939: 0x00006581, + 16940: 0x00006580, + 16941: 0x000065B6, + 16942: 0x000065DA, + 16943: 0x000066D2, + 16944: 0x00006A8D, + 16945: 0x00006A96, + 16946: 0x00006A81, + 16947: 0x00006AA5, + 16948: 0x00006A89, + 16949: 0x00006A9F, + 16950: 0x00006A9B, + 16951: 0x00006AA1, + 16952: 0x00006A9E, + 16953: 0x00006A87, + 16954: 0x00006A93, + 16955: 0x00006A8E, + 16956: 0x00006A95, + 16957: 0x00006A83, + 16958: 0x00006AA8, + 16959: 0x00006AA4, + 16960: 0x00006A91, + 16961: 0x00006A7F, + 16962: 0x00006AA6, + 16963: 0x00006A9A, + 16964: 0x00006A85, + 16965: 0x00006A8C, + 16966: 0x00006A92, + 16967: 0x00006B5B, + 16968: 0x00006BAD, + 16969: 0x00006C09, + 16970: 0x00006FCC, + 16971: 0x00006FA9, + 16972: 0x00006FF4, + 16973: 0x00006FD4, + 16974: 0x00006FE3, + 16975: 0x00006FDC, + 16976: 0x00006FED, + 16977: 0x00006FE7, + 16978: 0x00006FE6, + 16979: 0x00006FDE, + 16980: 0x00006FF2, + 16981: 0x00006FDD, + 16982: 0x00006FE2, + 16983: 0x00006FE8, + 16984: 0x000071E1, + 16985: 0x000071F1, + 16986: 0x000071E8, + 16987: 0x000071F2, + 16988: 0x000071E4, + 16989: 0x000071F0, + 16990: 0x000071E2, + 16991: 0x00007373, + 16992: 0x0000736E, + 16993: 0x0000736F, + 16994: 0x00007497, + 16995: 0x000074B2, + 16996: 0x000074AB, + 16997: 0x00007490, + 16998: 0x000074AA, + 16999: 0x000074AD, + 17000: 0x000074B1, + 17001: 0x000074A5, + 17002: 0x000074AF, + 17003: 0x00007510, + 17004: 0x00007511, + 17005: 0x00007512, + 17006: 0x0000750F, + 17007: 0x00007584, + 17008: 0x00007643, + 17009: 0x00007648, + 17010: 0x00007649, + 17011: 0x00007647, + 17012: 0x000076A4, + 17013: 0x000076E9, + 17014: 0x000077B5, + 17015: 0x000077AB, + 17016: 0x000077B2, + 17017: 0x000077B7, + 17018: 0x000077B6, + 17019: 0x000077B4, + 17020: 0x000077B1, + 17021: 0x000077A8, + 17022: 0x000077F0, + 17023: 0x000078F3, + 17024: 0x000078FD, + 17025: 0x00007902, + 17026: 0x000078FB, + 17027: 0x000078FC, + 17028: 0x000078F2, + 17029: 0x00007905, + 17030: 0x000078F9, + 17031: 0x000078FE, + 17032: 0x00007904, + 17033: 0x000079AB, + 17034: 0x000079A8, + 17035: 0x00007A5C, + 17036: 0x00007A5B, + 17037: 0x00007A56, + 17038: 0x00007A58, + 17039: 0x00007A54, + 17040: 0x00007A5A, + 17041: 0x00007ABE, + 17042: 0x00007AC0, + 17043: 0x00007AC1, + 17044: 0x00007C05, + 17045: 0x00007C0F, + 17046: 0x00007BF2, + 17047: 0x00007C00, + 17048: 0x00007BFF, + 17049: 0x00007BFB, + 17050: 0x00007C0E, + 17051: 0x00007BF4, + 17052: 0x00007C0B, + 17053: 0x00007BF3, + 17054: 0x00007C02, + 17055: 0x00007C09, + 17056: 0x00007C03, + 17057: 0x00007C01, + 17058: 0x00007BF8, + 17059: 0x00007BFD, + 17060: 0x00007C06, + 17061: 0x00007BF0, + 17062: 0x00007BF1, + 17063: 0x00007C10, + 17064: 0x00007C0A, + 17065: 0x00007CE8, + 17066: 0x00007E2D, + 17067: 0x00007E3C, + 17068: 0x00007E42, + 17069: 0x00007E33, + 17070: 0x00009848, + 17071: 0x00007E38, + 17072: 0x00007E2A, + 17073: 0x00007E49, + 17074: 0x00007E40, + 17075: 0x00007E47, + 17076: 0x00007E29, + 17077: 0x00007E4C, + 17078: 0x00007E30, + 17079: 0x00007E3B, + 17080: 0x00007E36, + 17081: 0x00007E44, + 17082: 0x00007E3A, + 17083: 0x00007F45, + 17084: 0x00007F7F, + 17085: 0x00007F7E, + 17086: 0x00007F7D, + 17087: 0x00007FF4, + 17088: 0x00007FF2, + 17089: 0x0000802C, + 17090: 0x000081BB, + 17091: 0x000081C4, + 17092: 0x000081CC, + 17093: 0x000081CA, + 17094: 0x000081C5, + 17095: 0x000081C7, + 17096: 0x000081BC, + 17097: 0x000081E9, + 17098: 0x0000825B, + 17099: 0x0000825A, + 17100: 0x0000825C, + 17101: 0x00008583, + 17102: 0x00008580, + 17103: 0x0000858F, + 17104: 0x000085A7, + 17105: 0x00008595, + 17106: 0x000085A0, + 17107: 0x0000858B, + 17108: 0x000085A3, + 17109: 0x0000857B, + 17110: 0x000085A4, + 17111: 0x0000859A, + 17112: 0x0000859E, + 17113: 0x00008577, + 17114: 0x0000857C, + 17115: 0x00008589, + 17116: 0x000085A1, + 17117: 0x0000857A, + 17118: 0x00008578, + 17119: 0x00008557, + 17120: 0x0000858E, + 17121: 0x00008596, + 17122: 0x00008586, + 17123: 0x0000858D, + 17124: 0x00008599, + 17125: 0x0000859D, + 17126: 0x00008581, + 17127: 0x000085A2, + 17128: 0x00008582, + 17129: 0x00008588, + 17130: 0x00008585, + 17131: 0x00008579, + 17132: 0x00008576, + 17133: 0x00008598, + 17134: 0x00008590, + 17135: 0x0000859F, + 17136: 0x00008668, + 17137: 0x000087BE, + 17138: 0x000087AA, + 17139: 0x000087AD, + 17140: 0x000087C5, + 17141: 0x000087B0, + 17142: 0x000087AC, + 17143: 0x000087B9, + 17144: 0x000087B5, + 17145: 0x000087BC, + 17146: 0x000087AE, + 17147: 0x000087C9, + 17148: 0x000087C3, + 17149: 0x000087C2, + 17150: 0x000087CC, + 17151: 0x000087B7, + 17152: 0x000087AF, + 17153: 0x000087C4, + 17154: 0x000087CA, + 17155: 0x000087B4, + 17156: 0x000087B6, + 17157: 0x000087BF, + 17158: 0x000087B8, + 17159: 0x000087BD, + 17160: 0x000087DE, + 17161: 0x000087B2, + 17162: 0x00008935, + 17163: 0x00008933, + 17164: 0x0000893C, + 17165: 0x0000893E, + 17166: 0x00008941, + 17167: 0x00008952, + 17168: 0x00008937, + 17169: 0x00008942, + 17170: 0x000089AD, + 17171: 0x000089AF, + 17172: 0x000089AE, + 17173: 0x000089F2, + 17174: 0x000089F3, + 17175: 0x00008B1E, + 17176: 0x00008B18, + 17177: 0x00008B16, + 17178: 0x00008B11, + 17179: 0x00008B05, + 17180: 0x00008B0B, + 17181: 0x00008B22, + 17182: 0x00008B0F, + 17183: 0x00008B12, + 17184: 0x00008B15, + 17185: 0x00008B07, + 17186: 0x00008B0D, + 17187: 0x00008B08, + 17188: 0x00008B06, + 17189: 0x00008B1C, + 17190: 0x00008B13, + 17191: 0x00008B1A, + 17192: 0x00008C4F, + 17193: 0x00008C70, + 17194: 0x00008C72, + 17195: 0x00008C71, + 17196: 0x00008C6F, + 17197: 0x00008C95, + 17198: 0x00008C94, + 17199: 0x00008CF9, + 17200: 0x00008D6F, + 17201: 0x00008E4E, + 17202: 0x00008E4D, + 17203: 0x00008E53, + 17204: 0x00008E50, + 17205: 0x00008E4C, + 17206: 0x00008E47, + 17207: 0x00008F43, + 17208: 0x00008F40, + 17209: 0x00009085, + 17210: 0x0000907E, + 17211: 0x00009138, + 17212: 0x0000919A, + 17213: 0x000091A2, + 17214: 0x0000919B, + 17215: 0x00009199, + 17216: 0x0000919F, + 17217: 0x000091A1, + 17218: 0x0000919D, + 17219: 0x000091A0, + 17220: 0x000093A1, + 17221: 0x00009383, + 17222: 0x000093AF, + 17223: 0x00009364, + 17224: 0x00009356, + 17225: 0x00009347, + 17226: 0x0000937C, + 17227: 0x00009358, + 17228: 0x0000935C, + 17229: 0x00009376, + 17230: 0x00009349, + 17231: 0x00009350, + 17232: 0x00009351, + 17233: 0x00009360, + 17234: 0x0000936D, + 17235: 0x0000938F, + 17236: 0x0000934C, + 17237: 0x0000936A, + 17238: 0x00009379, + 17239: 0x00009357, + 17240: 0x00009355, + 17241: 0x00009352, + 17242: 0x0000934F, + 17243: 0x00009371, + 17244: 0x00009377, + 17245: 0x0000937B, + 17246: 0x00009361, + 17247: 0x0000935E, + 17248: 0x00009363, + 17249: 0x00009367, + 17250: 0x00009380, + 17251: 0x0000934E, + 17252: 0x00009359, + 17253: 0x000095C7, + 17254: 0x000095C0, + 17255: 0x000095C9, + 17256: 0x000095C3, + 17257: 0x000095C5, + 17258: 0x000095B7, + 17259: 0x000096AE, + 17260: 0x000096B0, + 17261: 0x000096AC, + 17262: 0x00009720, + 17263: 0x0000971F, + 17264: 0x00009718, + 17265: 0x0000971D, + 17266: 0x00009719, + 17267: 0x0000979A, + 17268: 0x000097A1, + 17269: 0x0000979C, + 17270: 0x0000979E, + 17271: 0x0000979D, + 17272: 0x000097D5, + 17273: 0x000097D4, + 17274: 0x000097F1, + 17275: 0x00009841, + 17276: 0x00009844, + 17277: 0x0000984A, + 17278: 0x00009849, + 17279: 0x00009845, + 17280: 0x00009843, + 17281: 0x00009925, + 17282: 0x0000992B, + 17283: 0x0000992C, + 17284: 0x0000992A, + 17285: 0x00009933, + 17286: 0x00009932, + 17287: 0x0000992F, + 17288: 0x0000992D, + 17289: 0x00009931, + 17290: 0x00009930, + 17291: 0x00009998, + 17292: 0x000099A3, + 17293: 0x000099A1, + 17294: 0x00009A02, + 17295: 0x000099FA, + 17296: 0x000099F4, + 17297: 0x000099F7, + 17298: 0x000099F9, + 17299: 0x000099F8, + 17300: 0x000099F6, + 17301: 0x000099FB, + 17302: 0x000099FD, + 17303: 0x000099FE, + 17304: 0x000099FC, + 17305: 0x00009A03, + 17306: 0x00009ABE, + 17307: 0x00009AFE, + 17308: 0x00009AFD, + 17309: 0x00009B01, + 17310: 0x00009AFC, + 17311: 0x00009B48, + 17312: 0x00009B9A, + 17313: 0x00009BA8, + 17314: 0x00009B9E, + 17315: 0x00009B9B, + 17316: 0x00009BA6, + 17317: 0x00009BA1, + 17318: 0x00009BA5, + 17319: 0x00009BA4, + 17320: 0x00009B86, + 17321: 0x00009BA2, + 17322: 0x00009BA0, + 17323: 0x00009BAF, + 17324: 0x00009D33, + 17325: 0x00009D41, + 17326: 0x00009D67, + 17327: 0x00009D36, + 17328: 0x00009D2E, + 17329: 0x00009D2F, + 17330: 0x00009D31, + 17331: 0x00009D38, + 17332: 0x00009D30, + 17333: 0x00009D45, + 17334: 0x00009D42, + 17335: 0x00009D43, + 17336: 0x00009D3E, + 17337: 0x00009D37, + 17338: 0x00009D40, + 17339: 0x00009D3D, + 17340: 0x00007FF5, + 17341: 0x00009D2D, + 17342: 0x00009E8A, + 17343: 0x00009E89, + 17344: 0x00009E8D, + 17345: 0x00009EB0, + 17346: 0x00009EC8, + 17347: 0x00009EDA, + 17348: 0x00009EFB, + 17349: 0x00009EFF, + 17350: 0x00009F24, + 17351: 0x00009F23, + 17352: 0x00009F22, + 17353: 0x00009F54, + 17354: 0x00009FA0, + 17355: 0x00005131, + 17356: 0x0000512D, + 17357: 0x0000512E, + 17358: 0x00005698, + 17359: 0x0000569C, + 17360: 0x00005697, + 17361: 0x0000569A, + 17362: 0x0000569D, + 17363: 0x00005699, + 17364: 0x00005970, + 17365: 0x00005B3C, + 17366: 0x00005C69, + 17367: 0x00005C6A, + 17368: 0x00005DC0, + 17369: 0x00005E6D, + 17370: 0x00005E6E, + 17371: 0x000061D8, + 17372: 0x000061DF, + 17373: 0x000061ED, + 17374: 0x000061EE, + 17375: 0x000061F1, + 17376: 0x000061EA, + 17377: 0x000061F0, + 17378: 0x000061EB, + 17379: 0x000061D6, + 17380: 0x000061E9, + 17381: 0x000064FF, + 17382: 0x00006504, + 17383: 0x000064FD, + 17384: 0x000064F8, + 17385: 0x00006501, + 17386: 0x00006503, + 17387: 0x000064FC, + 17388: 0x00006594, + 17389: 0x000065DB, + 17390: 0x000066DA, + 17391: 0x000066DB, + 17392: 0x000066D8, + 17393: 0x00006AC5, + 17394: 0x00006AB9, + 17395: 0x00006ABD, + 17396: 0x00006AE1, + 17397: 0x00006AC6, + 17398: 0x00006ABA, + 17399: 0x00006AB6, + 17400: 0x00006AB7, + 17401: 0x00006AC7, + 17402: 0x00006AB4, + 17403: 0x00006AAD, + 17404: 0x00006B5E, + 17405: 0x00006BC9, + 17406: 0x00006C0B, + 17407: 0x00007007, + 17408: 0x0000700C, + 17409: 0x0000700D, + 17410: 0x00007001, + 17411: 0x00007005, + 17412: 0x00007014, + 17413: 0x0000700E, + 17414: 0x00006FFF, + 17415: 0x00007000, + 17416: 0x00006FFB, + 17417: 0x00007026, + 17418: 0x00006FFC, + 17419: 0x00006FF7, + 17420: 0x0000700A, + 17421: 0x00007201, + 17422: 0x000071FF, + 17423: 0x000071F9, + 17424: 0x00007203, + 17425: 0x000071FD, + 17426: 0x00007376, + 17427: 0x000074B8, + 17428: 0x000074C0, + 17429: 0x000074B5, + 17430: 0x000074C1, + 17431: 0x000074BE, + 17432: 0x000074B6, + 17433: 0x000074BB, + 17434: 0x000074C2, + 17435: 0x00007514, + 17436: 0x00007513, + 17437: 0x0000765C, + 17438: 0x00007664, + 17439: 0x00007659, + 17440: 0x00007650, + 17441: 0x00007653, + 17442: 0x00007657, + 17443: 0x0000765A, + 17444: 0x000076A6, + 17445: 0x000076BD, + 17446: 0x000076EC, + 17447: 0x000077C2, + 17448: 0x000077BA, + 17449: 0x000078FF, + 17450: 0x0000790C, + 17451: 0x00007913, + 17452: 0x00007914, + 17453: 0x00007909, + 17454: 0x00007910, + 17455: 0x00007912, + 17456: 0x00007911, + 17457: 0x000079AD, + 17458: 0x000079AC, + 17459: 0x00007A5F, + 17460: 0x00007C1C, + 17461: 0x00007C29, + 17462: 0x00007C19, + 17463: 0x00007C20, + 17464: 0x00007C1F, + 17465: 0x00007C2D, + 17466: 0x00007C1D, + 17467: 0x00007C26, + 17468: 0x00007C28, + 17469: 0x00007C22, + 17470: 0x00007C25, + 17471: 0x00007C30, + 17472: 0x00007E5C, + 17473: 0x00007E50, + 17474: 0x00007E56, + 17475: 0x00007E63, + 17476: 0x00007E58, + 17477: 0x00007E62, + 17478: 0x00007E5F, + 17479: 0x00007E51, + 17480: 0x00007E60, + 17481: 0x00007E57, + 17482: 0x00007E53, + 17483: 0x00007FB5, + 17484: 0x00007FB3, + 17485: 0x00007FF7, + 17486: 0x00007FF8, + 17487: 0x00008075, + 17488: 0x000081D1, + 17489: 0x000081D2, + 17490: 0x000081D0, + 17491: 0x0000825F, + 17492: 0x0000825E, + 17493: 0x000085B4, + 17494: 0x000085C6, + 17495: 0x000085C0, + 17496: 0x000085C3, + 17497: 0x000085C2, + 17498: 0x000085B3, + 17499: 0x000085B5, + 17500: 0x000085BD, + 17501: 0x000085C7, + 17502: 0x000085C4, + 17503: 0x000085BF, + 17504: 0x000085CB, + 17505: 0x000085CE, + 17506: 0x000085C8, + 17507: 0x000085C5, + 17508: 0x000085B1, + 17509: 0x000085B6, + 17510: 0x000085D2, + 17511: 0x00008624, + 17512: 0x000085B8, + 17513: 0x000085B7, + 17514: 0x000085BE, + 17515: 0x00008669, + 17516: 0x000087E7, + 17517: 0x000087E6, + 17518: 0x000087E2, + 17519: 0x000087DB, + 17520: 0x000087EB, + 17521: 0x000087EA, + 17522: 0x000087E5, + 17523: 0x000087DF, + 17524: 0x000087F3, + 17525: 0x000087E4, + 17526: 0x000087D4, + 17527: 0x000087DC, + 17528: 0x000087D3, + 17529: 0x000087ED, + 17530: 0x000087D8, + 17531: 0x000087E3, + 17532: 0x000087A4, + 17533: 0x000087D7, + 17534: 0x000087D9, + 17535: 0x00008801, + 17536: 0x000087F4, + 17537: 0x000087E8, + 17538: 0x000087DD, + 17539: 0x00008953, + 17540: 0x0000894B, + 17541: 0x0000894F, + 17542: 0x0000894C, + 17543: 0x00008946, + 17544: 0x00008950, + 17545: 0x00008951, + 17546: 0x00008949, + 17547: 0x00008B2A, + 17548: 0x00008B27, + 17549: 0x00008B23, + 17550: 0x00008B33, + 17551: 0x00008B30, + 17552: 0x00008B35, + 17553: 0x00008B47, + 17554: 0x00008B2F, + 17555: 0x00008B3C, + 17556: 0x00008B3E, + 17557: 0x00008B31, + 17558: 0x00008B25, + 17559: 0x00008B37, + 17560: 0x00008B26, + 17561: 0x00008B36, + 17562: 0x00008B2E, + 17563: 0x00008B24, + 17564: 0x00008B3B, + 17565: 0x00008B3D, + 17566: 0x00008B3A, + 17567: 0x00008C42, + 17568: 0x00008C75, + 17569: 0x00008C99, + 17570: 0x00008C98, + 17571: 0x00008C97, + 17572: 0x00008CFE, + 17573: 0x00008D04, + 17574: 0x00008D02, + 17575: 0x00008D00, + 17576: 0x00008E5C, + 17577: 0x00008E62, + 17578: 0x00008E60, + 17579: 0x00008E57, + 17580: 0x00008E56, + 17581: 0x00008E5E, + 17582: 0x00008E65, + 17583: 0x00008E67, + 17584: 0x00008E5B, + 17585: 0x00008E5A, + 17586: 0x00008E61, + 17587: 0x00008E5D, + 17588: 0x00008E69, + 17589: 0x00008E54, + 17590: 0x00008F46, + 17591: 0x00008F47, + 17592: 0x00008F48, + 17593: 0x00008F4B, + 17594: 0x00009128, + 17595: 0x0000913A, + 17596: 0x0000913B, + 17597: 0x0000913E, + 17598: 0x000091A8, + 17599: 0x000091A5, + 17600: 0x000091A7, + 17601: 0x000091AF, + 17602: 0x000091AA, + 17603: 0x000093B5, + 17604: 0x0000938C, + 17605: 0x00009392, + 17606: 0x000093B7, + 17607: 0x0000939B, + 17608: 0x0000939D, + 17609: 0x00009389, + 17610: 0x000093A7, + 17611: 0x0000938E, + 17612: 0x000093AA, + 17613: 0x0000939E, + 17614: 0x000093A6, + 17615: 0x00009395, + 17616: 0x00009388, + 17617: 0x00009399, + 17618: 0x0000939F, + 17619: 0x0000938D, + 17620: 0x000093B1, + 17621: 0x00009391, + 17622: 0x000093B2, + 17623: 0x000093A4, + 17624: 0x000093A8, + 17625: 0x000093B4, + 17626: 0x000093A3, + 17627: 0x000093A5, + 17628: 0x000095D2, + 17629: 0x000095D3, + 17630: 0x000095D1, + 17631: 0x000096B3, + 17632: 0x000096D7, + 17633: 0x000096DA, + 17634: 0x00005DC2, + 17635: 0x000096DF, + 17636: 0x000096D8, + 17637: 0x000096DD, + 17638: 0x00009723, + 17639: 0x00009722, + 17640: 0x00009725, + 17641: 0x000097AC, + 17642: 0x000097AE, + 17643: 0x000097A8, + 17644: 0x000097AB, + 17645: 0x000097A4, + 17646: 0x000097AA, + 17647: 0x000097A2, + 17648: 0x000097A5, + 17649: 0x000097D7, + 17650: 0x000097D9, + 17651: 0x000097D6, + 17652: 0x000097D8, + 17653: 0x000097FA, + 17654: 0x00009850, + 17655: 0x00009851, + 17656: 0x00009852, + 17657: 0x000098B8, + 17658: 0x00009941, + 17659: 0x0000993C, + 17660: 0x0000993A, + 17661: 0x00009A0F, + 17662: 0x00009A0B, + 17663: 0x00009A09, + 17664: 0x00009A0D, + 17665: 0x00009A04, + 17666: 0x00009A11, + 17667: 0x00009A0A, + 17668: 0x00009A05, + 17669: 0x00009A07, + 17670: 0x00009A06, + 17671: 0x00009AC0, + 17672: 0x00009ADC, + 17673: 0x00009B08, + 17674: 0x00009B04, + 17675: 0x00009B05, + 17676: 0x00009B29, + 17677: 0x00009B35, + 17678: 0x00009B4A, + 17679: 0x00009B4C, + 17680: 0x00009B4B, + 17681: 0x00009BC7, + 17682: 0x00009BC6, + 17683: 0x00009BC3, + 17684: 0x00009BBF, + 17685: 0x00009BC1, + 17686: 0x00009BB5, + 17687: 0x00009BB8, + 17688: 0x00009BD3, + 17689: 0x00009BB6, + 17690: 0x00009BC4, + 17691: 0x00009BB9, + 17692: 0x00009BBD, + 17693: 0x00009D5C, + 17694: 0x00009D53, + 17695: 0x00009D4F, + 17696: 0x00009D4A, + 17697: 0x00009D5B, + 17698: 0x00009D4B, + 17699: 0x00009D59, + 17700: 0x00009D56, + 17701: 0x00009D4C, + 17702: 0x00009D57, + 17703: 0x00009D52, + 17704: 0x00009D54, + 17705: 0x00009D5F, + 17706: 0x00009D58, + 17707: 0x00009D5A, + 17708: 0x00009E8E, + 17709: 0x00009E8C, + 17710: 0x00009EDF, + 17711: 0x00009F01, + 17712: 0x00009F00, + 17713: 0x00009F16, + 17714: 0x00009F25, + 17715: 0x00009F2B, + 17716: 0x00009F2A, + 17717: 0x00009F29, + 17718: 0x00009F28, + 17719: 0x00009F4C, + 17720: 0x00009F55, + 17721: 0x00005134, + 17722: 0x00005135, + 17723: 0x00005296, + 17724: 0x000052F7, + 17725: 0x000053B4, + 17726: 0x000056AB, + 17727: 0x000056AD, + 17728: 0x000056A6, + 17729: 0x000056A7, + 17730: 0x000056AA, + 17731: 0x000056AC, + 17732: 0x000058DA, + 17733: 0x000058DD, + 17734: 0x000058DB, + 17735: 0x00005912, + 17736: 0x00005B3D, + 17737: 0x00005B3E, + 17738: 0x00005B3F, + 17739: 0x00005DC3, + 17740: 0x00005E70, + 17741: 0x00005FBF, + 17742: 0x000061FB, + 17743: 0x00006507, + 17744: 0x00006510, + 17745: 0x0000650D, + 17746: 0x00006509, + 17747: 0x0000650C, + 17748: 0x0000650E, + 17749: 0x00006584, + 17750: 0x000065DE, + 17751: 0x000065DD, + 17752: 0x000066DE, + 17753: 0x00006AE7, + 17754: 0x00006AE0, + 17755: 0x00006ACC, + 17756: 0x00006AD1, + 17757: 0x00006AD9, + 17758: 0x00006ACB, + 17759: 0x00006ADF, + 17760: 0x00006ADC, + 17761: 0x00006AD0, + 17762: 0x00006AEB, + 17763: 0x00006ACF, + 17764: 0x00006ACD, + 17765: 0x00006ADE, + 17766: 0x00006B60, + 17767: 0x00006BB0, + 17768: 0x00006C0C, + 17769: 0x00007019, + 17770: 0x00007027, + 17771: 0x00007020, + 17772: 0x00007016, + 17773: 0x0000702B, + 17774: 0x00007021, + 17775: 0x00007022, + 17776: 0x00007023, + 17777: 0x00007029, + 17778: 0x00007017, + 17779: 0x00007024, + 17780: 0x0000701C, + 17781: 0x0000702A, + 17782: 0x0000720C, + 17783: 0x0000720A, + 17784: 0x00007207, + 17785: 0x00007202, + 17786: 0x00007205, + 17787: 0x000072A5, + 17788: 0x000072A6, + 17789: 0x000072A4, + 17790: 0x000072A3, + 17791: 0x000072A1, + 17792: 0x000074CB, + 17793: 0x000074C5, + 17794: 0x000074B7, + 17795: 0x000074C3, + 17796: 0x00007516, + 17797: 0x00007660, + 17798: 0x000077C9, + 17799: 0x000077CA, + 17800: 0x000077C4, + 17801: 0x000077F1, + 17802: 0x0000791D, + 17803: 0x0000791B, + 17804: 0x00007921, + 17805: 0x0000791C, + 17806: 0x00007917, + 17807: 0x0000791E, + 17808: 0x000079B0, + 17809: 0x00007A67, + 17810: 0x00007A68, + 17811: 0x00007C33, + 17812: 0x00007C3C, + 17813: 0x00007C39, + 17814: 0x00007C2C, + 17815: 0x00007C3B, + 17816: 0x00007CEC, + 17817: 0x00007CEA, + 17818: 0x00007E76, + 17819: 0x00007E75, + 17820: 0x00007E78, + 17821: 0x00007E70, + 17822: 0x00007E77, + 17823: 0x00007E6F, + 17824: 0x00007E7A, + 17825: 0x00007E72, + 17826: 0x00007E74, + 17827: 0x00007E68, + 17828: 0x00007F4B, + 17829: 0x00007F4A, + 17830: 0x00007F83, + 17831: 0x00007F86, + 17832: 0x00007FB7, + 17833: 0x00007FFD, + 17834: 0x00007FFE, + 17835: 0x00008078, + 17836: 0x000081D7, + 17837: 0x000081D5, + 17838: 0x00008264, + 17839: 0x00008261, + 17840: 0x00008263, + 17841: 0x000085EB, + 17842: 0x000085F1, + 17843: 0x000085ED, + 17844: 0x000085D9, + 17845: 0x000085E1, + 17846: 0x000085E8, + 17847: 0x000085DA, + 17848: 0x000085D7, + 17849: 0x000085EC, + 17850: 0x000085F2, + 17851: 0x000085F8, + 17852: 0x000085D8, + 17853: 0x000085DF, + 17854: 0x000085E3, + 17855: 0x000085DC, + 17856: 0x000085D1, + 17857: 0x000085F0, + 17858: 0x000085E6, + 17859: 0x000085EF, + 17860: 0x000085DE, + 17861: 0x000085E2, + 17862: 0x00008800, + 17863: 0x000087FA, + 17864: 0x00008803, + 17865: 0x000087F6, + 17866: 0x000087F7, + 17867: 0x00008809, + 17868: 0x0000880C, + 17869: 0x0000880B, + 17870: 0x00008806, + 17871: 0x000087FC, + 17872: 0x00008808, + 17873: 0x000087FF, + 17874: 0x0000880A, + 17875: 0x00008802, + 17876: 0x00008962, + 17877: 0x0000895A, + 17878: 0x0000895B, + 17879: 0x00008957, + 17880: 0x00008961, + 17881: 0x0000895C, + 17882: 0x00008958, + 17883: 0x0000895D, + 17884: 0x00008959, + 17885: 0x00008988, + 17886: 0x000089B7, + 17887: 0x000089B6, + 17888: 0x000089F6, + 17889: 0x00008B50, + 17890: 0x00008B48, + 17891: 0x00008B4A, + 17892: 0x00008B40, + 17893: 0x00008B53, + 17894: 0x00008B56, + 17895: 0x00008B54, + 17896: 0x00008B4B, + 17897: 0x00008B55, + 17898: 0x00008B51, + 17899: 0x00008B42, + 17900: 0x00008B52, + 17901: 0x00008B57, + 17902: 0x00008C43, + 17903: 0x00008C77, + 17904: 0x00008C76, + 17905: 0x00008C9A, + 17906: 0x00008D06, + 17907: 0x00008D07, + 17908: 0x00008D09, + 17909: 0x00008DAC, + 17910: 0x00008DAA, + 17911: 0x00008DAD, + 17912: 0x00008DAB, + 17913: 0x00008E6D, + 17914: 0x00008E78, + 17915: 0x00008E73, + 17916: 0x00008E6A, + 17917: 0x00008E6F, + 17918: 0x00008E7B, + 17919: 0x00008EC2, + 17920: 0x00008F52, + 17921: 0x00008F51, + 17922: 0x00008F4F, + 17923: 0x00008F50, + 17924: 0x00008F53, + 17925: 0x00008FB4, + 17926: 0x00009140, + 17927: 0x0000913F, + 17928: 0x000091B0, + 17929: 0x000091AD, + 17930: 0x000093DE, + 17931: 0x000093C7, + 17932: 0x000093CF, + 17933: 0x000093C2, + 17934: 0x000093DA, + 17935: 0x000093D0, + 17936: 0x000093F9, + 17937: 0x000093EC, + 17938: 0x000093CC, + 17939: 0x000093D9, + 17940: 0x000093A9, + 17941: 0x000093E6, + 17942: 0x000093CA, + 17943: 0x000093D4, + 17944: 0x000093EE, + 17945: 0x000093E3, + 17946: 0x000093D5, + 17947: 0x000093C4, + 17948: 0x000093CE, + 17949: 0x000093C0, + 17950: 0x000093D2, + 17951: 0x000093E7, + 17952: 0x0000957D, + 17953: 0x000095DA, + 17954: 0x000095DB, + 17955: 0x000096E1, + 17956: 0x00009729, + 17957: 0x0000972B, + 17958: 0x0000972C, + 17959: 0x00009728, + 17960: 0x00009726, + 17961: 0x000097B3, + 17962: 0x000097B7, + 17963: 0x000097B6, + 17964: 0x000097DD, + 17965: 0x000097DE, + 17966: 0x000097DF, + 17967: 0x0000985C, + 17968: 0x00009859, + 17969: 0x0000985D, + 17970: 0x00009857, + 17971: 0x000098BF, + 17972: 0x000098BD, + 17973: 0x000098BB, + 17974: 0x000098BE, + 17975: 0x00009948, + 17976: 0x00009947, + 17977: 0x00009943, + 17978: 0x000099A6, + 17979: 0x000099A7, + 17980: 0x00009A1A, + 17981: 0x00009A15, + 17982: 0x00009A25, + 17983: 0x00009A1D, + 17984: 0x00009A24, + 17985: 0x00009A1B, + 17986: 0x00009A22, + 17987: 0x00009A20, + 17988: 0x00009A27, + 17989: 0x00009A23, + 17990: 0x00009A1E, + 17991: 0x00009A1C, + 17992: 0x00009A14, + 17993: 0x00009AC2, + 17994: 0x00009B0B, + 17995: 0x00009B0A, + 17996: 0x00009B0E, + 17997: 0x00009B0C, + 17998: 0x00009B37, + 17999: 0x00009BEA, + 18000: 0x00009BEB, + 18001: 0x00009BE0, + 18002: 0x00009BDE, + 18003: 0x00009BE4, + 18004: 0x00009BE6, + 18005: 0x00009BE2, + 18006: 0x00009BF0, + 18007: 0x00009BD4, + 18008: 0x00009BD7, + 18009: 0x00009BEC, + 18010: 0x00009BDC, + 18011: 0x00009BD9, + 18012: 0x00009BE5, + 18013: 0x00009BD5, + 18014: 0x00009BE1, + 18015: 0x00009BDA, + 18016: 0x00009D77, + 18017: 0x00009D81, + 18018: 0x00009D8A, + 18019: 0x00009D84, + 18020: 0x00009D88, + 18021: 0x00009D71, + 18022: 0x00009D80, + 18023: 0x00009D78, + 18024: 0x00009D86, + 18025: 0x00009D8B, + 18026: 0x00009D8C, + 18027: 0x00009D7D, + 18028: 0x00009D6B, + 18029: 0x00009D74, + 18030: 0x00009D75, + 18031: 0x00009D70, + 18032: 0x00009D69, + 18033: 0x00009D85, + 18034: 0x00009D73, + 18035: 0x00009D7B, + 18036: 0x00009D82, + 18037: 0x00009D6F, + 18038: 0x00009D79, + 18039: 0x00009D7F, + 18040: 0x00009D87, + 18041: 0x00009D68, + 18042: 0x00009E94, + 18043: 0x00009E91, + 18044: 0x00009EC0, + 18045: 0x00009EFC, + 18046: 0x00009F2D, + 18047: 0x00009F40, + 18048: 0x00009F41, + 18049: 0x00009F4D, + 18050: 0x00009F56, + 18051: 0x00009F57, + 18052: 0x00009F58, + 18053: 0x00005337, + 18054: 0x000056B2, + 18055: 0x000056B5, + 18056: 0x000056B3, + 18057: 0x000058E3, + 18058: 0x00005B45, + 18059: 0x00005DC6, + 18060: 0x00005DC7, + 18061: 0x00005EEE, + 18062: 0x00005EEF, + 18063: 0x00005FC0, + 18064: 0x00005FC1, + 18065: 0x000061F9, + 18066: 0x00006517, + 18067: 0x00006516, + 18068: 0x00006515, + 18069: 0x00006513, + 18070: 0x000065DF, + 18071: 0x000066E8, + 18072: 0x000066E3, + 18073: 0x000066E4, + 18074: 0x00006AF3, + 18075: 0x00006AF0, + 18076: 0x00006AEA, + 18077: 0x00006AE8, + 18078: 0x00006AF9, + 18079: 0x00006AF1, + 18080: 0x00006AEE, + 18081: 0x00006AEF, + 18082: 0x0000703C, + 18083: 0x00007035, + 18084: 0x0000702F, + 18085: 0x00007037, + 18086: 0x00007034, + 18087: 0x00007031, + 18088: 0x00007042, + 18089: 0x00007038, + 18090: 0x0000703F, + 18091: 0x0000703A, + 18092: 0x00007039, + 18093: 0x00007040, + 18094: 0x0000703B, + 18095: 0x00007033, + 18096: 0x00007041, + 18097: 0x00007213, + 18098: 0x00007214, + 18099: 0x000072A8, + 18100: 0x0000737D, + 18101: 0x0000737C, + 18102: 0x000074BA, + 18103: 0x000076AB, + 18104: 0x000076AA, + 18105: 0x000076BE, + 18106: 0x000076ED, + 18107: 0x000077CC, + 18108: 0x000077CE, + 18109: 0x000077CF, + 18110: 0x000077CD, + 18111: 0x000077F2, + 18112: 0x00007925, + 18113: 0x00007923, + 18114: 0x00007927, + 18115: 0x00007928, + 18116: 0x00007924, + 18117: 0x00007929, + 18118: 0x000079B2, + 18119: 0x00007A6E, + 18120: 0x00007A6C, + 18121: 0x00007A6D, + 18122: 0x00007AF7, + 18123: 0x00007C49, + 18124: 0x00007C48, + 18125: 0x00007C4A, + 18126: 0x00007C47, + 18127: 0x00007C45, + 18128: 0x00007CEE, + 18129: 0x00007E7B, + 18130: 0x00007E7E, + 18131: 0x00007E81, + 18132: 0x00007E80, + 18133: 0x00007FBA, + 18134: 0x00007FFF, + 18135: 0x00008079, + 18136: 0x000081DB, + 18137: 0x000081D9, + 18138: 0x0000820B, + 18139: 0x00008268, + 18140: 0x00008269, + 18141: 0x00008622, + 18142: 0x000085FF, + 18143: 0x00008601, + 18144: 0x000085FE, + 18145: 0x0000861B, + 18146: 0x00008600, + 18147: 0x000085F6, + 18148: 0x00008604, + 18149: 0x00008609, + 18150: 0x00008605, + 18151: 0x0000860C, + 18152: 0x000085FD, + 18153: 0x00008819, + 18154: 0x00008810, + 18155: 0x00008811, + 18156: 0x00008817, + 18157: 0x00008813, + 18158: 0x00008816, + 18159: 0x00008963, + 18160: 0x00008966, + 18161: 0x000089B9, + 18162: 0x000089F7, + 18163: 0x00008B60, + 18164: 0x00008B6A, + 18165: 0x00008B5D, + 18166: 0x00008B68, + 18167: 0x00008B63, + 18168: 0x00008B65, + 18169: 0x00008B67, + 18170: 0x00008B6D, + 18171: 0x00008DAE, + 18172: 0x00008E86, + 18173: 0x00008E88, + 18174: 0x00008E84, + 18175: 0x00008F59, + 18176: 0x00008F56, + 18177: 0x00008F57, + 18178: 0x00008F55, + 18179: 0x00008F58, + 18180: 0x00008F5A, + 18181: 0x0000908D, + 18182: 0x00009143, + 18183: 0x00009141, + 18184: 0x000091B7, + 18185: 0x000091B5, + 18186: 0x000091B2, + 18187: 0x000091B3, + 18188: 0x0000940B, + 18189: 0x00009413, + 18190: 0x000093FB, + 18191: 0x00009420, + 18192: 0x0000940F, + 18193: 0x00009414, + 18194: 0x000093FE, + 18195: 0x00009415, + 18196: 0x00009410, + 18197: 0x00009428, + 18198: 0x00009419, + 18199: 0x0000940D, + 18200: 0x000093F5, + 18201: 0x00009400, + 18202: 0x000093F7, + 18203: 0x00009407, + 18204: 0x0000940E, + 18205: 0x00009416, + 18206: 0x00009412, + 18207: 0x000093FA, + 18208: 0x00009409, + 18209: 0x000093F8, + 18210: 0x0000940A, + 18211: 0x000093FF, + 18212: 0x000093FC, + 18213: 0x0000940C, + 18214: 0x000093F6, + 18215: 0x00009411, + 18216: 0x00009406, + 18217: 0x000095DE, + 18218: 0x000095E0, + 18219: 0x000095DF, + 18220: 0x0000972E, + 18221: 0x0000972F, + 18222: 0x000097B9, + 18223: 0x000097BB, + 18224: 0x000097FD, + 18225: 0x000097FE, + 18226: 0x00009860, + 18227: 0x00009862, + 18228: 0x00009863, + 18229: 0x0000985F, + 18230: 0x000098C1, + 18231: 0x000098C2, + 18232: 0x00009950, + 18233: 0x0000994E, + 18234: 0x00009959, + 18235: 0x0000994C, + 18236: 0x0000994B, + 18237: 0x00009953, + 18238: 0x00009A32, + 18239: 0x00009A34, + 18240: 0x00009A31, + 18241: 0x00009A2C, + 18242: 0x00009A2A, + 18243: 0x00009A36, + 18244: 0x00009A29, + 18245: 0x00009A2E, + 18246: 0x00009A38, + 18247: 0x00009A2D, + 18248: 0x00009AC7, + 18249: 0x00009ACA, + 18250: 0x00009AC6, + 18251: 0x00009B10, + 18252: 0x00009B12, + 18253: 0x00009B11, + 18254: 0x00009C0B, + 18255: 0x00009C08, + 18256: 0x00009BF7, + 18257: 0x00009C05, + 18258: 0x00009C12, + 18259: 0x00009BF8, + 18260: 0x00009C40, + 18261: 0x00009C07, + 18262: 0x00009C0E, + 18263: 0x00009C06, + 18264: 0x00009C17, + 18265: 0x00009C14, + 18266: 0x00009C09, + 18267: 0x00009D9F, + 18268: 0x00009D99, + 18269: 0x00009DA4, + 18270: 0x00009D9D, + 18271: 0x00009D92, + 18272: 0x00009D98, + 18273: 0x00009D90, + 18274: 0x00009D9B, + 18275: 0x00009DA0, + 18276: 0x00009D94, + 18277: 0x00009D9C, + 18278: 0x00009DAA, + 18279: 0x00009D97, + 18280: 0x00009DA1, + 18281: 0x00009D9A, + 18282: 0x00009DA2, + 18283: 0x00009DA8, + 18284: 0x00009D9E, + 18285: 0x00009DA3, + 18286: 0x00009DBF, + 18287: 0x00009DA9, + 18288: 0x00009D96, + 18289: 0x00009DA6, + 18290: 0x00009DA7, + 18291: 0x00009E99, + 18292: 0x00009E9B, + 18293: 0x00009E9A, + 18294: 0x00009EE5, + 18295: 0x00009EE4, + 18296: 0x00009EE7, + 18297: 0x00009EE6, + 18298: 0x00009F30, + 18299: 0x00009F2E, + 18300: 0x00009F5B, + 18301: 0x00009F60, + 18302: 0x00009F5E, + 18303: 0x00009F5D, + 18304: 0x00009F59, + 18305: 0x00009F91, + 18306: 0x0000513A, + 18307: 0x00005139, + 18308: 0x00005298, + 18309: 0x00005297, + 18310: 0x000056C3, + 18311: 0x000056BD, + 18312: 0x000056BE, + 18313: 0x00005B48, + 18314: 0x00005B47, + 18315: 0x00005DCB, + 18316: 0x00005DCF, + 18317: 0x00005EF1, + 18318: 0x000061FD, + 18319: 0x0000651B, + 18320: 0x00006B02, + 18321: 0x00006AFC, + 18322: 0x00006B03, + 18323: 0x00006AF8, + 18324: 0x00006B00, + 18325: 0x00007043, + 18326: 0x00007044, + 18327: 0x0000704A, + 18328: 0x00007048, + 18329: 0x00007049, + 18330: 0x00007045, + 18331: 0x00007046, + 18332: 0x0000721D, + 18333: 0x0000721A, + 18334: 0x00007219, + 18335: 0x0000737E, + 18336: 0x00007517, + 18337: 0x0000766A, + 18338: 0x000077D0, + 18339: 0x0000792D, + 18340: 0x00007931, + 18341: 0x0000792F, + 18342: 0x00007C54, + 18343: 0x00007C53, + 18344: 0x00007CF2, + 18345: 0x00007E8A, + 18346: 0x00007E87, + 18347: 0x00007E88, + 18348: 0x00007E8B, + 18349: 0x00007E86, + 18350: 0x00007E8D, + 18351: 0x00007F4D, + 18352: 0x00007FBB, + 18353: 0x00008030, + 18354: 0x000081DD, + 18355: 0x00008618, + 18356: 0x0000862A, + 18357: 0x00008626, + 18358: 0x0000861F, + 18359: 0x00008623, + 18360: 0x0000861C, + 18361: 0x00008619, + 18362: 0x00008627, + 18363: 0x0000862E, + 18364: 0x00008621, + 18365: 0x00008620, + 18366: 0x00008629, + 18367: 0x0000861E, + 18368: 0x00008625, + 18369: 0x00008829, + 18370: 0x0000881D, + 18371: 0x0000881B, + 18372: 0x00008820, + 18373: 0x00008824, + 18374: 0x0000881C, + 18375: 0x0000882B, + 18376: 0x0000884A, + 18377: 0x0000896D, + 18378: 0x00008969, + 18379: 0x0000896E, + 18380: 0x0000896B, + 18381: 0x000089FA, + 18382: 0x00008B79, + 18383: 0x00008B78, + 18384: 0x00008B45, + 18385: 0x00008B7A, + 18386: 0x00008B7B, + 18387: 0x00008D10, + 18388: 0x00008D14, + 18389: 0x00008DAF, + 18390: 0x00008E8E, + 18391: 0x00008E8C, + 18392: 0x00008F5E, + 18393: 0x00008F5B, + 18394: 0x00008F5D, + 18395: 0x00009146, + 18396: 0x00009144, + 18397: 0x00009145, + 18398: 0x000091B9, + 18399: 0x0000943F, + 18400: 0x0000943B, + 18401: 0x00009436, + 18402: 0x00009429, + 18403: 0x0000943D, + 18404: 0x0000943C, + 18405: 0x00009430, + 18406: 0x00009439, + 18407: 0x0000942A, + 18408: 0x00009437, + 18409: 0x0000942C, + 18410: 0x00009440, + 18411: 0x00009431, + 18412: 0x000095E5, + 18413: 0x000095E4, + 18414: 0x000095E3, + 18415: 0x00009735, + 18416: 0x0000973A, + 18417: 0x000097BF, + 18418: 0x000097E1, + 18419: 0x00009864, + 18420: 0x000098C9, + 18421: 0x000098C6, + 18422: 0x000098C0, + 18423: 0x00009958, + 18424: 0x00009956, + 18425: 0x00009A39, + 18426: 0x00009A3D, + 18427: 0x00009A46, + 18428: 0x00009A44, + 18429: 0x00009A42, + 18430: 0x00009A41, + 18431: 0x00009A3A, + 18432: 0x00009A3F, + 18433: 0x00009ACD, + 18434: 0x00009B15, + 18435: 0x00009B17, + 18436: 0x00009B18, + 18437: 0x00009B16, + 18438: 0x00009B3A, + 18439: 0x00009B52, + 18440: 0x00009C2B, + 18441: 0x00009C1D, + 18442: 0x00009C1C, + 18443: 0x00009C2C, + 18444: 0x00009C23, + 18445: 0x00009C28, + 18446: 0x00009C29, + 18447: 0x00009C24, + 18448: 0x00009C21, + 18449: 0x00009DB7, + 18450: 0x00009DB6, + 18451: 0x00009DBC, + 18452: 0x00009DC1, + 18453: 0x00009DC7, + 18454: 0x00009DCA, + 18455: 0x00009DCF, + 18456: 0x00009DBE, + 18457: 0x00009DC5, + 18458: 0x00009DC3, + 18459: 0x00009DBB, + 18460: 0x00009DB5, + 18461: 0x00009DCE, + 18462: 0x00009DB9, + 18463: 0x00009DBA, + 18464: 0x00009DAC, + 18465: 0x00009DC8, + 18466: 0x00009DB1, + 18467: 0x00009DAD, + 18468: 0x00009DCC, + 18469: 0x00009DB3, + 18470: 0x00009DCD, + 18471: 0x00009DB2, + 18472: 0x00009E7A, + 18473: 0x00009E9C, + 18474: 0x00009EEB, + 18475: 0x00009EEE, + 18476: 0x00009EED, + 18477: 0x00009F1B, + 18478: 0x00009F18, + 18479: 0x00009F1A, + 18480: 0x00009F31, + 18481: 0x00009F4E, + 18482: 0x00009F65, + 18483: 0x00009F64, + 18484: 0x00009F92, + 18485: 0x00004EB9, + 18486: 0x000056C6, + 18487: 0x000056C5, + 18488: 0x000056CB, + 18489: 0x00005971, + 18490: 0x00005B4B, + 18491: 0x00005B4C, + 18492: 0x00005DD5, + 18493: 0x00005DD1, + 18494: 0x00005EF2, + 18495: 0x00006521, + 18496: 0x00006520, + 18497: 0x00006526, + 18498: 0x00006522, + 18499: 0x00006B0B, + 18500: 0x00006B08, + 18501: 0x00006B09, + 18502: 0x00006C0D, + 18503: 0x00007055, + 18504: 0x00007056, + 18505: 0x00007057, + 18506: 0x00007052, + 18507: 0x0000721E, + 18508: 0x0000721F, + 18509: 0x000072A9, + 18510: 0x0000737F, + 18511: 0x000074D8, + 18512: 0x000074D5, + 18513: 0x000074D9, + 18514: 0x000074D7, + 18515: 0x0000766D, + 18516: 0x000076AD, + 18517: 0x00007935, + 18518: 0x000079B4, + 18519: 0x00007A70, + 18520: 0x00007A71, + 18521: 0x00007C57, + 18522: 0x00007C5C, + 18523: 0x00007C59, + 18524: 0x00007C5B, + 18525: 0x00007C5A, + 18526: 0x00007CF4, + 18527: 0x00007CF1, + 18528: 0x00007E91, + 18529: 0x00007F4F, + 18530: 0x00007F87, + 18531: 0x000081DE, + 18532: 0x0000826B, + 18533: 0x00008634, + 18534: 0x00008635, + 18535: 0x00008633, + 18536: 0x0000862C, + 18537: 0x00008632, + 18538: 0x00008636, + 18539: 0x0000882C, + 18540: 0x00008828, + 18541: 0x00008826, + 18542: 0x0000882A, + 18543: 0x00008825, + 18544: 0x00008971, + 18545: 0x000089BF, + 18546: 0x000089BE, + 18547: 0x000089FB, + 18548: 0x00008B7E, + 18549: 0x00008B84, + 18550: 0x00008B82, + 18551: 0x00008B86, + 18552: 0x00008B85, + 18553: 0x00008B7F, + 18554: 0x00008D15, + 18555: 0x00008E95, + 18556: 0x00008E94, + 18557: 0x00008E9A, + 18558: 0x00008E92, + 18559: 0x00008E90, + 18560: 0x00008E96, + 18561: 0x00008E97, + 18562: 0x00008F60, + 18563: 0x00008F62, + 18564: 0x00009147, + 18565: 0x0000944C, + 18566: 0x00009450, + 18567: 0x0000944A, + 18568: 0x0000944B, + 18569: 0x0000944F, + 18570: 0x00009447, + 18571: 0x00009445, + 18572: 0x00009448, + 18573: 0x00009449, + 18574: 0x00009446, + 18575: 0x0000973F, + 18576: 0x000097E3, + 18577: 0x0000986A, + 18578: 0x00009869, + 18579: 0x000098CB, + 18580: 0x00009954, + 18581: 0x0000995B, + 18582: 0x00009A4E, + 18583: 0x00009A53, + 18584: 0x00009A54, + 18585: 0x00009A4C, + 18586: 0x00009A4F, + 18587: 0x00009A48, + 18588: 0x00009A4A, + 18589: 0x00009A49, + 18590: 0x00009A52, + 18591: 0x00009A50, + 18592: 0x00009AD0, + 18593: 0x00009B19, + 18594: 0x00009B2B, + 18595: 0x00009B3B, + 18596: 0x00009B56, + 18597: 0x00009B55, + 18598: 0x00009C46, + 18599: 0x00009C48, + 18600: 0x00009C3F, + 18601: 0x00009C44, + 18602: 0x00009C39, + 18603: 0x00009C33, + 18604: 0x00009C41, + 18605: 0x00009C3C, + 18606: 0x00009C37, + 18607: 0x00009C34, + 18608: 0x00009C32, + 18609: 0x00009C3D, + 18610: 0x00009C36, + 18611: 0x00009DDB, + 18612: 0x00009DD2, + 18613: 0x00009DDE, + 18614: 0x00009DDA, + 18615: 0x00009DCB, + 18616: 0x00009DD0, + 18617: 0x00009DDC, + 18618: 0x00009DD1, + 18619: 0x00009DDF, + 18620: 0x00009DE9, + 18621: 0x00009DD9, + 18622: 0x00009DD8, + 18623: 0x00009DD6, + 18624: 0x00009DF5, + 18625: 0x00009DD5, + 18626: 0x00009DDD, + 18627: 0x00009EB6, + 18628: 0x00009EF0, + 18629: 0x00009F35, + 18630: 0x00009F33, + 18631: 0x00009F32, + 18632: 0x00009F42, + 18633: 0x00009F6B, + 18634: 0x00009F95, + 18635: 0x00009FA2, + 18636: 0x0000513D, + 18637: 0x00005299, + 18638: 0x000058E8, + 18639: 0x000058E7, + 18640: 0x00005972, + 18641: 0x00005B4D, + 18642: 0x00005DD8, + 18643: 0x0000882F, + 18644: 0x00005F4F, + 18645: 0x00006201, + 18646: 0x00006203, + 18647: 0x00006204, + 18648: 0x00006529, + 18649: 0x00006525, + 18650: 0x00006596, + 18651: 0x000066EB, + 18652: 0x00006B11, + 18653: 0x00006B12, + 18654: 0x00006B0F, + 18655: 0x00006BCA, + 18656: 0x0000705B, + 18657: 0x0000705A, + 18658: 0x00007222, + 18659: 0x00007382, + 18660: 0x00007381, + 18661: 0x00007383, + 18662: 0x00007670, + 18663: 0x000077D4, + 18664: 0x00007C67, + 18665: 0x00007C66, + 18666: 0x00007E95, + 18667: 0x0000826C, + 18668: 0x0000863A, + 18669: 0x00008640, + 18670: 0x00008639, + 18671: 0x0000863C, + 18672: 0x00008631, + 18673: 0x0000863B, + 18674: 0x0000863E, + 18675: 0x00008830, + 18676: 0x00008832, + 18677: 0x0000882E, + 18678: 0x00008833, + 18679: 0x00008976, + 18680: 0x00008974, + 18681: 0x00008973, + 18682: 0x000089FE, + 18683: 0x00008B8C, + 18684: 0x00008B8E, + 18685: 0x00008B8B, + 18686: 0x00008B88, + 18687: 0x00008C45, + 18688: 0x00008D19, + 18689: 0x00008E98, + 18690: 0x00008F64, + 18691: 0x00008F63, + 18692: 0x000091BC, + 18693: 0x00009462, + 18694: 0x00009455, + 18695: 0x0000945D, + 18696: 0x00009457, + 18697: 0x0000945E, + 18698: 0x000097C4, + 18699: 0x000097C5, + 18700: 0x00009800, + 18701: 0x00009A56, + 18702: 0x00009A59, + 18703: 0x00009B1E, + 18704: 0x00009B1F, + 18705: 0x00009B20, + 18706: 0x00009C52, + 18707: 0x00009C58, + 18708: 0x00009C50, + 18709: 0x00009C4A, + 18710: 0x00009C4D, + 18711: 0x00009C4B, + 18712: 0x00009C55, + 18713: 0x00009C59, + 18714: 0x00009C4C, + 18715: 0x00009C4E, + 18716: 0x00009DFB, + 18717: 0x00009DF7, + 18718: 0x00009DEF, + 18719: 0x00009DE3, + 18720: 0x00009DEB, + 18721: 0x00009DF8, + 18722: 0x00009DE4, + 18723: 0x00009DF6, + 18724: 0x00009DE1, + 18725: 0x00009DEE, + 18726: 0x00009DE6, + 18727: 0x00009DF2, + 18728: 0x00009DF0, + 18729: 0x00009DE2, + 18730: 0x00009DEC, + 18731: 0x00009DF4, + 18732: 0x00009DF3, + 18733: 0x00009DE8, + 18734: 0x00009DED, + 18735: 0x00009EC2, + 18736: 0x00009ED0, + 18737: 0x00009EF2, + 18738: 0x00009EF3, + 18739: 0x00009F06, + 18740: 0x00009F1C, + 18741: 0x00009F38, + 18742: 0x00009F37, + 18743: 0x00009F36, + 18744: 0x00009F43, + 18745: 0x00009F4F, + 18746: 0x00009F71, + 18747: 0x00009F70, + 18748: 0x00009F6E, + 18749: 0x00009F6F, + 18750: 0x000056D3, + 18751: 0x000056CD, + 18752: 0x00005B4E, + 18753: 0x00005C6D, + 18754: 0x0000652D, + 18755: 0x000066ED, + 18756: 0x000066EE, + 18757: 0x00006B13, + 18758: 0x0000705F, + 18759: 0x00007061, + 18760: 0x0000705D, + 18761: 0x00007060, + 18762: 0x00007223, + 18763: 0x000074DB, + 18764: 0x000074E5, + 18765: 0x000077D5, + 18766: 0x00007938, + 18767: 0x000079B7, + 18768: 0x000079B6, + 18769: 0x00007C6A, + 18770: 0x00007E97, + 18771: 0x00007F89, + 18772: 0x0000826D, + 18773: 0x00008643, + 18774: 0x00008838, + 18775: 0x00008837, + 18776: 0x00008835, + 18777: 0x0000884B, + 18778: 0x00008B94, + 18779: 0x00008B95, + 18780: 0x00008E9E, + 18781: 0x00008E9F, + 18782: 0x00008EA0, + 18783: 0x00008E9D, + 18784: 0x000091BE, + 18785: 0x000091BD, + 18786: 0x000091C2, + 18787: 0x0000946B, + 18788: 0x00009468, + 18789: 0x00009469, + 18790: 0x000096E5, + 18791: 0x00009746, + 18792: 0x00009743, + 18793: 0x00009747, + 18794: 0x000097C7, + 18795: 0x000097E5, + 18796: 0x00009A5E, + 18797: 0x00009AD5, + 18798: 0x00009B59, + 18799: 0x00009C63, + 18800: 0x00009C67, + 18801: 0x00009C66, + 18802: 0x00009C62, + 18803: 0x00009C5E, + 18804: 0x00009C60, + 18805: 0x00009E02, + 18806: 0x00009DFE, + 18807: 0x00009E07, + 18808: 0x00009E03, + 18809: 0x00009E06, + 18810: 0x00009E05, + 18811: 0x00009E00, + 18812: 0x00009E01, + 18813: 0x00009E09, + 18814: 0x00009DFF, + 18815: 0x00009DFD, + 18816: 0x00009E04, + 18817: 0x00009EA0, + 18818: 0x00009F1E, + 18819: 0x00009F46, + 18820: 0x00009F74, + 18821: 0x00009F75, + 18822: 0x00009F76, + 18823: 0x000056D4, + 18824: 0x0000652E, + 18825: 0x000065B8, + 18826: 0x00006B18, + 18827: 0x00006B19, + 18828: 0x00006B17, + 18829: 0x00006B1A, + 18830: 0x00007062, + 18831: 0x00007226, + 18832: 0x000072AA, + 18833: 0x000077D8, + 18834: 0x000077D9, + 18835: 0x00007939, + 18836: 0x00007C69, + 18837: 0x00007C6B, + 18838: 0x00007CF6, + 18839: 0x00007E9A, + 18840: 0x00007E98, + 18841: 0x00007E9B, + 18842: 0x00007E99, + 18843: 0x000081E0, + 18844: 0x000081E1, + 18845: 0x00008646, + 18846: 0x00008647, + 18847: 0x00008648, + 18848: 0x00008979, + 18849: 0x0000897A, + 18850: 0x0000897C, + 18851: 0x0000897B, + 18852: 0x000089FF, + 18853: 0x00008B98, + 18854: 0x00008B99, + 18855: 0x00008EA5, + 18856: 0x00008EA4, + 18857: 0x00008EA3, + 18858: 0x0000946E, + 18859: 0x0000946D, + 18860: 0x0000946F, + 18861: 0x00009471, + 18862: 0x00009473, + 18863: 0x00009749, + 18864: 0x00009872, + 18865: 0x0000995F, + 18866: 0x00009C68, + 18867: 0x00009C6E, + 18868: 0x00009C6D, + 18869: 0x00009E0B, + 18870: 0x00009E0D, + 18871: 0x00009E10, + 18872: 0x00009E0F, + 18873: 0x00009E12, + 18874: 0x00009E11, + 18875: 0x00009EA1, + 18876: 0x00009EF5, + 18877: 0x00009F09, + 18878: 0x00009F47, + 18879: 0x00009F78, + 18880: 0x00009F7B, + 18881: 0x00009F7A, + 18882: 0x00009F79, + 18883: 0x0000571E, + 18884: 0x00007066, + 18885: 0x00007C6F, + 18886: 0x0000883C, + 18887: 0x00008DB2, + 18888: 0x00008EA6, + 18889: 0x000091C3, + 18890: 0x00009474, + 18891: 0x00009478, + 18892: 0x00009476, + 18893: 0x00009475, + 18894: 0x00009A60, + 18895: 0x00009C74, + 18896: 0x00009C73, + 18897: 0x00009C71, + 18898: 0x00009C75, + 18899: 0x00009E14, + 18900: 0x00009E13, + 18901: 0x00009EF6, + 18902: 0x00009F0A, + 18903: 0x00009FA4, + 18904: 0x00007068, + 18905: 0x00007065, + 18906: 0x00007CF7, + 18907: 0x0000866A, + 18908: 0x0000883E, + 18909: 0x0000883D, + 18910: 0x0000883F, + 18911: 0x00008B9E, + 18912: 0x00008C9C, + 18913: 0x00008EA9, + 18914: 0x00008EC9, + 18915: 0x0000974B, + 18916: 0x00009873, + 18917: 0x00009874, + 18918: 0x000098CC, + 18919: 0x00009961, + 18920: 0x000099AB, + 18921: 0x00009A64, + 18922: 0x00009A66, + 18923: 0x00009A67, + 18924: 0x00009B24, + 18925: 0x00009E15, + 18926: 0x00009E17, + 18927: 0x00009F48, + 18928: 0x00006207, + 18929: 0x00006B1E, + 18930: 0x00007227, + 18931: 0x0000864C, + 18932: 0x00008EA8, + 18933: 0x00009482, + 18934: 0x00009480, + 18935: 0x00009481, + 18936: 0x00009A69, + 18937: 0x00009A68, + 18938: 0x00009B2E, + 18939: 0x00009E19, + 18940: 0x00007229, + 18941: 0x0000864B, + 18942: 0x00008B9F, + 18943: 0x00009483, + 18944: 0x00009C79, + 18945: 0x00009EB7, + 18946: 0x00007675, + 18947: 0x00009A6B, + 18948: 0x00009C7A, + 18949: 0x00009E1D, + 18950: 0x00007069, + 18951: 0x0000706A, + 18952: 0x00009EA4, + 18953: 0x00009F7E, + 18954: 0x00009F49, + 18955: 0x00009F98, + 18956: 0x00007881, + 18957: 0x000092B9, + 18958: 0x000088CF, + 18959: 0x000058BB, + 18960: 0x00006052, + 18961: 0x00007CA7, + 18962: 0x00005AFA, + 18963: 0x00002554, + 18964: 0x00002566, + 18965: 0x00002557, + 18966: 0x00002560, + 18967: 0x0000256C, + 18968: 0x00002563, + 18969: 0x0000255A, + 18970: 0x00002569, + 18971: 0x0000255D, + 18972: 0x00002552, + 18973: 0x00002564, + 18974: 0x00002555, + 18975: 0x0000255E, + 18976: 0x0000256A, + 18977: 0x00002561, + 18978: 0x00002558, + 18979: 0x00002567, + 18980: 0x0000255B, + 18981: 0x00002553, + 18982: 0x00002565, + 18983: 0x00002556, + 18984: 0x0000255F, + 18985: 0x0000256B, + 18986: 0x00002562, + 18987: 0x00002559, + 18988: 0x00002568, + 18989: 0x0000255C, + 18990: 0x00002551, + 18991: 0x00002550, + 18992: 0x0000256D, + 18993: 0x0000256E, + 18994: 0x00002570, + 18995: 0x0000256F, + 18996: 0x0000FFED, + 18997: 0x00020547, + 18998: 0x000092DB, + 18999: 0x000205DF, + 19000: 0x00023FC5, + 19001: 0x0000854C, + 19002: 0x000042B5, + 19003: 0x000073EF, + 19004: 0x000051B5, + 19005: 0x00003649, + 19006: 0x00024942, + 19007: 0x000289E4, + 19008: 0x00009344, + 19009: 0x000219DB, + 19010: 0x000082EE, + 19011: 0x00023CC8, + 19012: 0x0000783C, + 19013: 0x00006744, + 19014: 0x000062DF, + 19015: 0x00024933, + 19016: 0x000289AA, + 19017: 0x000202A0, + 19018: 0x00026BB3, + 19019: 0x00021305, + 19020: 0x00004FAB, + 19021: 0x000224ED, + 19022: 0x00005008, + 19023: 0x00026D29, + 19024: 0x00027A84, + 19025: 0x00023600, + 19026: 0x00024AB1, + 19027: 0x00022513, + 19028: 0x00005029, + 19029: 0x0002037E, + 19030: 0x00005FA4, + 19031: 0x00020380, + 19032: 0x00020347, + 19033: 0x00006EDB, + 19034: 0x0002041F, + 19035: 0x0000507D, + 19036: 0x00005101, + 19037: 0x0000347A, + 19038: 0x0000510E, + 19039: 0x0000986C, + 19040: 0x00003743, + 19041: 0x00008416, + 19042: 0x000249A4, + 19043: 0x00020487, + 19044: 0x00005160, + 19045: 0x000233B4, + 19046: 0x0000516A, + 19047: 0x00020BFF, + 19048: 0x000220FC, + 19049: 0x000202E5, + 19050: 0x00022530, + 19051: 0x0002058E, + 19052: 0x00023233, + 19053: 0x00021983, + 19054: 0x00005B82, + 19055: 0x0000877D, + 19056: 0x000205B3, + 19057: 0x00023C99, + 19058: 0x000051B2, + 19059: 0x000051B8, + 19060: 0x00009D34, + 19061: 0x000051C9, + 19062: 0x000051CF, + 19063: 0x000051D1, + 19064: 0x00003CDC, + 19065: 0x000051D3, + 19066: 0x00024AA6, + 19067: 0x000051B3, + 19068: 0x000051E2, + 19069: 0x00005342, + 19070: 0x000051ED, + 19071: 0x000083CD, + 19072: 0x0000693E, + 19073: 0x0002372D, + 19074: 0x00005F7B, + 19075: 0x0000520B, + 19076: 0x00005226, + 19077: 0x0000523C, + 19078: 0x000052B5, + 19079: 0x00005257, + 19080: 0x00005294, + 19081: 0x000052B9, + 19082: 0x000052C5, + 19083: 0x00007C15, + 19084: 0x00008542, + 19085: 0x000052E0, + 19086: 0x0000860D, + 19087: 0x00026B13, + 19088: 0x00005305, + 19089: 0x00028ADE, + 19090: 0x00005549, + 19091: 0x00006ED9, + 19092: 0x00023F80, + 19093: 0x00020954, + 19094: 0x00023FEC, + 19095: 0x00005333, + 19096: 0x00005344, + 19097: 0x00020BE2, + 19098: 0x00006CCB, + 19099: 0x00021726, + 19100: 0x0000681B, + 19101: 0x000073D5, + 19102: 0x0000604A, + 19103: 0x00003EAA, + 19104: 0x000038CC, + 19105: 0x000216E8, + 19106: 0x000071DD, + 19107: 0x000044A2, + 19108: 0x0000536D, + 19109: 0x00005374, + 19110: 0x000286AB, + 19111: 0x0000537E, + 19112: 0x0000537F, + 19113: 0x00021596, + 19114: 0x00021613, + 19115: 0x000077E6, + 19116: 0x00005393, + 19117: 0x00028A9B, + 19118: 0x000053A0, + 19119: 0x000053AB, + 19120: 0x000053AE, + 19121: 0x000073A7, + 19122: 0x00025772, + 19123: 0x00003F59, + 19124: 0x0000739C, + 19125: 0x000053C1, + 19126: 0x000053C5, + 19127: 0x00006C49, + 19128: 0x00004E49, + 19129: 0x000057FE, + 19130: 0x000053D9, + 19131: 0x00003AAB, + 19132: 0x00020B8F, + 19133: 0x000053E0, + 19134: 0x00023FEB, + 19135: 0x00022DA3, + 19136: 0x000053F6, + 19137: 0x00020C77, + 19138: 0x00005413, + 19139: 0x00007079, + 19140: 0x0000552B, + 19141: 0x00006657, + 19142: 0x00006D5B, + 19143: 0x0000546D, + 19144: 0x00026B53, + 19145: 0x00020D74, + 19146: 0x0000555D, + 19147: 0x0000548F, + 19148: 0x000054A4, + 19149: 0x000047A6, + 19150: 0x0002170D, + 19151: 0x00020EDD, + 19152: 0x00003DB4, + 19153: 0x00020D4D, + 19154: 0x000289BC, + 19155: 0x00022698, + 19156: 0x00005547, + 19157: 0x00004CED, + 19158: 0x0000542F, + 19159: 0x00007417, + 19160: 0x00005586, + 19161: 0x000055A9, + 19162: 0x00005605, + 19163: 0x000218D7, + 19164: 0x0002403A, + 19165: 0x00004552, + 19166: 0x00024435, + 19167: 0x000066B3, + 19168: 0x000210B4, + 19169: 0x00005637, + 19170: 0x000066CD, + 19171: 0x0002328A, + 19172: 0x000066A4, + 19173: 0x000066AD, + 19174: 0x0000564D, + 19175: 0x0000564F, + 19176: 0x000078F1, + 19177: 0x000056F1, + 19178: 0x00009787, + 19179: 0x000053FE, + 19180: 0x00005700, + 19181: 0x000056EF, + 19182: 0x000056ED, + 19183: 0x00028B66, + 19184: 0x00003623, + 19185: 0x0002124F, + 19186: 0x00005746, + 19187: 0x000241A5, + 19188: 0x00006C6E, + 19189: 0x0000708B, + 19190: 0x00005742, + 19191: 0x000036B1, + 19192: 0x00026C7E, + 19193: 0x000057E6, + 19194: 0x00021416, + 19195: 0x00005803, + 19196: 0x00021454, + 19197: 0x00024363, + 19198: 0x00005826, + 19199: 0x00024BF5, + 19200: 0x0000585C, + 19201: 0x000058AA, + 19202: 0x00003561, + 19203: 0x000058E0, + 19204: 0x000058DC, + 19205: 0x0002123C, + 19206: 0x000058FB, + 19207: 0x00005BFF, + 19208: 0x00005743, + 19209: 0x0002A150, + 19210: 0x00024278, + 19211: 0x000093D3, + 19212: 0x000035A1, + 19213: 0x0000591F, + 19214: 0x000068A6, + 19215: 0x000036C3, + 19216: 0x00006E59, + 19217: 0x0002163E, + 19218: 0x00005A24, + 19219: 0x00005553, + 19220: 0x00021692, + 19221: 0x00008505, + 19222: 0x000059C9, + 19223: 0x00020D4E, + 19224: 0x00026C81, + 19225: 0x00026D2A, + 19226: 0x000217DC, + 19227: 0x000059D9, + 19228: 0x000217FB, + 19229: 0x000217B2, + 19230: 0x00026DA6, + 19231: 0x00006D71, + 19232: 0x00021828, + 19233: 0x000216D5, + 19234: 0x000059F9, + 19235: 0x00026E45, + 19236: 0x00005AAB, + 19237: 0x00005A63, + 19238: 0x000036E6, + 19239: 0x000249A9, + 19240: 0x00005A77, + 19241: 0x00003708, + 19242: 0x00005A96, + 19243: 0x00007465, + 19244: 0x00005AD3, + 19245: 0x00026FA1, + 19246: 0x00022554, + 19247: 0x00003D85, + 19248: 0x00021911, + 19249: 0x00003732, + 19250: 0x000216B8, + 19251: 0x00005E83, + 19252: 0x000052D0, + 19253: 0x00005B76, + 19254: 0x00006588, + 19255: 0x00005B7C, + 19256: 0x00027A0E, + 19257: 0x00004004, + 19258: 0x0000485D, + 19259: 0x00020204, + 19260: 0x00005BD5, + 19261: 0x00006160, + 19262: 0x00021A34, + 19263: 0x000259CC, + 19264: 0x000205A5, + 19265: 0x00005BF3, + 19266: 0x00005B9D, + 19267: 0x00004D10, + 19268: 0x00005C05, + 19269: 0x00021B44, + 19270: 0x00005C13, + 19271: 0x000073CE, + 19272: 0x00005C14, + 19273: 0x00021CA5, + 19274: 0x00026B28, + 19275: 0x00005C49, + 19276: 0x000048DD, + 19277: 0x00005C85, + 19278: 0x00005CE9, + 19279: 0x00005CEF, + 19280: 0x00005D8B, + 19281: 0x00021DF9, + 19282: 0x00021E37, + 19283: 0x00005D10, + 19284: 0x00005D18, + 19285: 0x00005D46, + 19286: 0x00021EA4, + 19287: 0x00005CBA, + 19288: 0x00005DD7, + 19289: 0x000082FC, + 19290: 0x0000382D, + 19291: 0x00024901, + 19292: 0x00022049, + 19293: 0x00022173, + 19294: 0x00008287, + 19295: 0x00003836, + 19296: 0x00003BC2, + 19297: 0x00005E2E, + 19298: 0x00006A8A, + 19299: 0x00005E75, + 19300: 0x00005E7A, + 19301: 0x000244BC, + 19302: 0x00020CD3, + 19303: 0x000053A6, + 19304: 0x00004EB7, + 19305: 0x00005ED0, + 19306: 0x000053A8, + 19307: 0x00021771, + 19308: 0x00005E09, + 19309: 0x00005EF4, + 19310: 0x00028482, + 19311: 0x00005EF9, + 19312: 0x00005EFB, + 19313: 0x000038A0, + 19314: 0x00005EFC, + 19315: 0x0000683E, + 19316: 0x0000941B, + 19317: 0x00005F0D, + 19318: 0x000201C1, + 19319: 0x0002F894, + 19320: 0x00003ADE, + 19321: 0x000048AE, + 19322: 0x0002133A, + 19323: 0x00005F3A, + 19324: 0x00026888, + 19325: 0x000223D0, + 19326: 0x00005F58, + 19327: 0x00022471, + 19328: 0x00005F63, + 19329: 0x000097BD, + 19330: 0x00026E6E, + 19331: 0x00005F72, + 19332: 0x00009340, + 19333: 0x00028A36, + 19334: 0x00005FA7, + 19335: 0x00005DB6, + 19336: 0x00003D5F, + 19337: 0x00025250, + 19338: 0x00021F6A, + 19339: 0x000270F8, + 19340: 0x00022668, + 19341: 0x000091D6, + 19342: 0x0002029E, + 19343: 0x00028A29, + 19344: 0x00006031, + 19345: 0x00006685, + 19346: 0x00021877, + 19347: 0x00003963, + 19348: 0x00003DC7, + 19349: 0x00003639, + 19350: 0x00005790, + 19351: 0x000227B4, + 19352: 0x00007971, + 19353: 0x00003E40, + 19354: 0x0000609E, + 19355: 0x000060A4, + 19356: 0x000060B3, + 19357: 0x00024982, + 19358: 0x0002498F, + 19359: 0x00027A53, + 19360: 0x000074A4, + 19361: 0x000050E1, + 19362: 0x00005AA0, + 19363: 0x00006164, + 19364: 0x00008424, + 19365: 0x00006142, + 19366: 0x0002F8A6, + 19367: 0x00026ED2, + 19368: 0x00006181, + 19369: 0x000051F4, + 19370: 0x00020656, + 19371: 0x00006187, + 19372: 0x00005BAA, + 19373: 0x00023FB7, + 19374: 0x0002285F, + 19375: 0x000061D3, + 19376: 0x00028B9D, + 19377: 0x0002995D, + 19378: 0x000061D0, + 19379: 0x00003932, + 19380: 0x00022980, + 19381: 0x000228C1, + 19382: 0x00006023, + 19383: 0x0000615C, + 19384: 0x0000651E, + 19385: 0x0000638B, + 19386: 0x00020118, + 19387: 0x000062C5, + 19388: 0x00021770, + 19389: 0x000062D5, + 19390: 0x00022E0D, + 19391: 0x0000636C, + 19392: 0x000249DF, + 19393: 0x00003A17, + 19394: 0x00006438, + 19395: 0x000063F8, + 19396: 0x0002138E, + 19397: 0x000217FC, + 19398: 0x00006490, + 19399: 0x00006F8A, + 19400: 0x00022E36, + 19401: 0x00009814, + 19402: 0x0002408C, + 19403: 0x0002571D, + 19404: 0x000064E1, + 19405: 0x000064E5, + 19406: 0x0000947B, + 19407: 0x00003A66, + 19408: 0x0000643A, + 19409: 0x00003A57, + 19410: 0x0000654D, + 19411: 0x00006F16, + 19412: 0x00024A28, + 19413: 0x00024A23, + 19414: 0x00006585, + 19415: 0x0000656D, + 19416: 0x0000655F, + 19417: 0x0002307E, + 19418: 0x000065B5, + 19419: 0x00024940, + 19420: 0x00004B37, + 19421: 0x000065D1, + 19422: 0x000040D8, + 19423: 0x00021829, + 19424: 0x000065E0, + 19425: 0x000065E3, + 19426: 0x00005FDF, + 19427: 0x00023400, + 19428: 0x00006618, + 19429: 0x000231F7, + 19430: 0x000231F8, + 19431: 0x00006644, + 19432: 0x000231A4, + 19433: 0x000231A5, + 19434: 0x0000664B, + 19435: 0x00020E75, + 19436: 0x00006667, + 19437: 0x000251E6, + 19438: 0x00006673, + 19439: 0x00006674, + 19440: 0x00021E3D, + 19441: 0x00023231, + 19442: 0x000285F4, + 19443: 0x000231C8, + 19444: 0x00025313, + 19445: 0x000077C5, + 19446: 0x000228F7, + 19447: 0x000099A4, + 19448: 0x00006702, + 19449: 0x0002439C, + 19450: 0x00024A21, + 19451: 0x00003B2B, + 19452: 0x000069FA, + 19453: 0x000237C2, + 19454: 0x0000675E, + 19455: 0x00006767, + 19456: 0x00006762, + 19457: 0x000241CD, + 19458: 0x000290ED, + 19459: 0x000067D7, + 19460: 0x000044E9, + 19461: 0x00006822, + 19462: 0x00006E50, + 19463: 0x0000923C, + 19464: 0x00006801, + 19465: 0x000233E6, + 19466: 0x00026DA0, + 19467: 0x0000685D, + 19468: 0x0002346F, + 19469: 0x000069E1, + 19470: 0x00006A0B, + 19471: 0x00028ADF, + 19472: 0x00006973, + 19473: 0x000068C3, + 19474: 0x000235CD, + 19475: 0x00006901, + 19476: 0x00006900, + 19477: 0x00003D32, + 19478: 0x00003A01, + 19479: 0x0002363C, + 19480: 0x00003B80, + 19481: 0x000067AC, + 19482: 0x00006961, + 19483: 0x00028A4A, + 19484: 0x000042FC, + 19485: 0x00006936, + 19486: 0x00006998, + 19487: 0x00003BA1, + 19488: 0x000203C9, + 19489: 0x00008363, + 19490: 0x00005090, + 19491: 0x000069F9, + 19492: 0x00023659, + 19493: 0x0002212A, + 19494: 0x00006A45, + 19495: 0x00023703, + 19496: 0x00006A9D, + 19497: 0x00003BF3, + 19498: 0x000067B1, + 19499: 0x00006AC8, + 19500: 0x0002919C, + 19501: 0x00003C0D, + 19502: 0x00006B1D, + 19503: 0x00020923, + 19504: 0x000060DE, + 19505: 0x00006B35, + 19506: 0x00006B74, + 19507: 0x000227CD, + 19508: 0x00006EB5, + 19509: 0x00023ADB, + 19510: 0x000203B5, + 19511: 0x00021958, + 19512: 0x00003740, + 19513: 0x00005421, + 19514: 0x00023B5A, + 19515: 0x00006BE1, + 19516: 0x00023EFC, + 19517: 0x00006BDC, + 19518: 0x00006C37, + 19519: 0x0002248B, + 19520: 0x000248F1, + 19521: 0x00026B51, + 19522: 0x00006C5A, + 19523: 0x00008226, + 19524: 0x00006C79, + 19525: 0x00023DBC, + 19526: 0x000044C5, + 19527: 0x00023DBD, + 19528: 0x000241A4, + 19529: 0x0002490C, + 19530: 0x00024900, + 19531: 0x00023CC9, + 19532: 0x000036E5, + 19533: 0x00003CEB, + 19534: 0x00020D32, + 19535: 0x00009B83, + 19536: 0x000231F9, + 19537: 0x00022491, + 19538: 0x00007F8F, + 19539: 0x00006837, + 19540: 0x00026D25, + 19541: 0x00026DA1, + 19542: 0x00026DEB, + 19543: 0x00006D96, + 19544: 0x00006D5C, + 19545: 0x00006E7C, + 19546: 0x00006F04, + 19547: 0x0002497F, + 19548: 0x00024085, + 19549: 0x00026E72, + 19550: 0x00008533, + 19551: 0x00026F74, + 19552: 0x000051C7, + 19553: 0x00006C9C, + 19554: 0x00006E1D, + 19555: 0x0000842E, + 19556: 0x00028B21, + 19557: 0x00006E2F, + 19558: 0x00023E2F, + 19559: 0x00007453, + 19560: 0x00023F82, + 19561: 0x000079CC, + 19562: 0x00006E4F, + 19563: 0x00005A91, + 19564: 0x0002304B, + 19565: 0x00006FF8, + 19566: 0x0000370D, + 19567: 0x00006F9D, + 19568: 0x00023E30, + 19569: 0x00006EFA, + 19570: 0x00021497, + 19571: 0x0002403D, + 19572: 0x00004555, + 19573: 0x000093F0, + 19574: 0x00006F44, + 19575: 0x00006F5C, + 19576: 0x00003D4E, + 19577: 0x00006F74, + 19578: 0x00029170, + 19579: 0x00003D3B, + 19580: 0x00006F9F, + 19581: 0x00024144, + 19582: 0x00006FD3, + 19583: 0x00024091, + 19584: 0x00024155, + 19585: 0x00024039, + 19586: 0x00023FF0, + 19587: 0x00023FB4, + 19588: 0x0002413F, + 19589: 0x000051DF, + 19590: 0x00024156, + 19591: 0x00024157, + 19592: 0x00024140, + 19593: 0x000261DD, + 19594: 0x0000704B, + 19595: 0x0000707E, + 19596: 0x000070A7, + 19597: 0x00007081, + 19598: 0x000070CC, + 19599: 0x000070D5, + 19600: 0x000070D6, + 19601: 0x000070DF, + 19602: 0x00004104, + 19603: 0x00003DE8, + 19604: 0x000071B4, + 19605: 0x00007196, + 19606: 0x00024277, + 19607: 0x0000712B, + 19608: 0x00007145, + 19609: 0x00005A88, + 19610: 0x0000714A, + 19611: 0x0000716E, + 19612: 0x00005C9C, + 19613: 0x00024365, + 19614: 0x0000714F, + 19615: 0x00009362, + 19616: 0x000242C1, + 19617: 0x0000712C, + 19618: 0x0002445A, + 19619: 0x00024A27, + 19620: 0x00024A22, + 19621: 0x000071BA, + 19622: 0x00028BE8, + 19623: 0x000070BD, + 19624: 0x0000720E, + 19625: 0x00009442, + 19626: 0x00007215, + 19627: 0x00005911, + 19628: 0x00009443, + 19629: 0x00007224, + 19630: 0x00009341, + 19631: 0x00025605, + 19632: 0x0000722E, + 19633: 0x00007240, + 19634: 0x00024974, + 19635: 0x000068BD, + 19636: 0x00007255, + 19637: 0x00007257, + 19638: 0x00003E55, + 19639: 0x00023044, + 19640: 0x0000680D, + 19641: 0x00006F3D, + 19642: 0x00007282, + 19643: 0x0000732A, + 19644: 0x0000732B, + 19645: 0x00024823, + 19646: 0x0002882B, + 19647: 0x000048ED, + 19648: 0x00028804, + 19649: 0x00007328, + 19650: 0x0000732E, + 19651: 0x000073CF, + 19652: 0x000073AA, + 19653: 0x00020C3A, + 19654: 0x00026A2E, + 19655: 0x000073C9, + 19656: 0x00007449, + 19657: 0x000241E2, + 19658: 0x000216E7, + 19659: 0x00024A24, + 19660: 0x00006623, + 19661: 0x000036C5, + 19662: 0x000249B7, + 19663: 0x0002498D, + 19664: 0x000249FB, + 19665: 0x000073F7, + 19666: 0x00007415, + 19667: 0x00006903, + 19668: 0x00024A26, + 19669: 0x00007439, + 19670: 0x000205C3, + 19671: 0x00003ED7, + 19672: 0x0000745C, + 19673: 0x000228AD, + 19674: 0x00007460, + 19675: 0x00028EB2, + 19676: 0x00007447, + 19677: 0x000073E4, + 19678: 0x00007476, + 19679: 0x000083B9, + 19680: 0x0000746C, + 19681: 0x00003730, + 19682: 0x00007474, + 19683: 0x000093F1, + 19684: 0x00006A2C, + 19685: 0x00007482, + 19686: 0x00004953, + 19687: 0x00024A8C, + 19688: 0x0002415F, + 19689: 0x00024A79, + 19690: 0x00028B8F, + 19691: 0x00005B46, + 19692: 0x00028C03, + 19693: 0x0002189E, + 19694: 0x000074C8, + 19695: 0x00021988, + 19696: 0x0000750E, + 19697: 0x000074E9, + 19698: 0x0000751E, + 19699: 0x00028ED9, + 19700: 0x00021A4B, + 19701: 0x00005BD7, + 19702: 0x00028EAC, + 19703: 0x00009385, + 19704: 0x0000754D, + 19705: 0x0000754A, + 19706: 0x00007567, + 19707: 0x0000756E, + 19708: 0x00024F82, + 19709: 0x00003F04, + 19710: 0x00024D13, + 19711: 0x0000758E, + 19712: 0x0000745D, + 19713: 0x0000759E, + 19714: 0x000075B4, + 19715: 0x00007602, + 19716: 0x0000762C, + 19717: 0x00007651, + 19718: 0x0000764F, + 19719: 0x0000766F, + 19720: 0x00007676, + 19721: 0x000263F5, + 19722: 0x00007690, + 19723: 0x000081EF, + 19724: 0x000037F8, + 19725: 0x00026911, + 19726: 0x0002690E, + 19727: 0x000076A1, + 19728: 0x000076A5, + 19729: 0x000076B7, + 19730: 0x000076CC, + 19731: 0x00026F9F, + 19732: 0x00008462, + 19733: 0x0002509D, + 19734: 0x0002517D, + 19735: 0x00021E1C, + 19736: 0x0000771E, + 19737: 0x00007726, + 19738: 0x00007740, + 19739: 0x000064AF, + 19740: 0x00025220, + 19741: 0x00007758, + 19742: 0x000232AC, + 19743: 0x000077AF, + 19744: 0x00028964, + 19745: 0x00028968, + 19746: 0x000216C1, + 19747: 0x000077F4, + 19748: 0x00007809, + 19749: 0x00021376, + 19750: 0x00024A12, + 19751: 0x000068CA, + 19752: 0x000078AF, + 19753: 0x000078C7, + 19754: 0x000078D3, + 19755: 0x000096A5, + 19756: 0x0000792E, + 19757: 0x000255E0, + 19758: 0x000078D7, + 19759: 0x00007934, + 19760: 0x000078B1, + 19761: 0x0002760C, + 19762: 0x00008FB8, + 19763: 0x00008884, + 19764: 0x00028B2B, + 19765: 0x00026083, + 19766: 0x0002261C, + 19767: 0x00007986, + 19768: 0x00008900, + 19769: 0x00006902, + 19770: 0x00007980, + 19771: 0x00025857, + 19772: 0x0000799D, + 19773: 0x00027B39, + 19774: 0x0000793C, + 19775: 0x000079A9, + 19776: 0x00006E2A, + 19777: 0x00027126, + 19778: 0x00003EA8, + 19779: 0x000079C6, + 19780: 0x0002910D, + 19781: 0x000079D4, +} + +const numEncodeTables = 8 + +// encodeX are the encoding tables from Unicode to Big5 code, +// sorted by decreasing length. +// encode0: 42633 entries for runes in [131105, 173738). +// encode1: 29004 entries for runes in [ 11904, 40908). +// encode2: 2176 entries for runes in [ 7870, 10046). +// encode3: 939 entries for runes in [ 167, 1106). +// encode4: 446 entries for runes in [ 65072, 65518). +// encode5: 432 entries for runes in [194597, 195029). +// encode6: 263 entries for runes in [ 63751, 64014). +// encode7: 1 entries for runes in [175615, 175616). + +const encode0Low, encode0High = 131105, 173738 + +var encode0 = [...]uint16{ + 131105 - 131105: 0x9C71, + 131134 - 131105: 0x9375, + 131142 - 131105: 0x9376, + 131150 - 131105: 0x9548, + 131176 - 131105: 0x8EC6, + 131206 - 131105: 0x8BC5, + 131207 - 131105: 0x8BFA, + 131210 - 131105: 0xC87C, + 131220 - 131105: 0x9AB4, + 131274 - 131105: 0x884E, + 131275 - 131105: 0x884B, + 131276 - 131105: 0xC87A, + 131277 - 131105: 0x8848, + 131281 - 131105: 0x8847, + 131310 - 131105: 0xA0F6, + 131340 - 131105: 0x8845, + 131342 - 131105: 0x8853, + 131352 - 131105: 0xFCAD, + 131492 - 131105: 0x8CF5, + 131497 - 131105: 0x8AAD, + 131499 - 131105: 0x9272, + 131521 - 131105: 0xFC47, + 131540 - 131105: 0x94DF, + 131570 - 131105: 0x9FD1, + 131588 - 131105: 0xFBCB, + 131596 - 131105: 0x927D, + 131604 - 131105: 0x98A4, + 131641 - 131105: 0x8CF9, + 131675 - 131105: 0x94E7, + 131700 - 131105: 0x90CB, + 131701 - 131105: 0x927B, + 131737 - 131105: 0x94D8, + 131742 - 131105: 0xFC5F, + 131744 - 131105: 0xFA54, + 131767 - 131105: 0x9AB5, + 131775 - 131105: 0x96DA, + 131776 - 131105: 0x9279, + 131813 - 131105: 0xFA74, + 131850 - 131105: 0x9275, + 131877 - 131105: 0x8DFB, + 131905 - 131105: 0x8A49, + 131909 - 131105: 0x92DF, + 131910 - 131105: 0x9B7C, + 131911 - 131105: 0xFA63, + 131966 - 131105: 0xFA60, + 131967 - 131105: 0x926D, + 131968 - 131105: 0xFA62, + 132000 - 131105: 0x9AB6, + 132007 - 131105: 0x976B, + 132021 - 131105: 0xFD6A, + 132041 - 131105: 0xFD54, + 132043 - 131105: 0x9273, + 132085 - 131105: 0x97D8, + 132092 - 131105: 0x9FBB, + 132115 - 131105: 0x9342, + 132116 - 131105: 0x9276, + 132127 - 131105: 0xFA65, + 132197 - 131105: 0x926C, + 132231 - 131105: 0xFA6E, + 132238 - 131105: 0x9EE0, + 132241 - 131105: 0x92C0, + 132242 - 131105: 0x92BF, + 132259 - 131105: 0x92BE, + 132311 - 131105: 0x9ABA, + 132348 - 131105: 0x8AB3, + 132350 - 131105: 0x9775, + 132423 - 131105: 0xFA40, + 132494 - 131105: 0xFA76, + 132517 - 131105: 0xFBD0, + 132531 - 131105: 0xFA7B, + 132547 - 131105: 0xFE6D, + 132554 - 131105: 0x9BB3, + 132560 - 131105: 0x89CC, + 132565 - 131105: 0x9ABE, + 132575 - 131105: 0xFA42, + 132576 - 131105: 0x92BC, + 132587 - 131105: 0x945C, + 132625 - 131105: 0x9BB5, + 132629 - 131105: 0x9ABF, + 132633 - 131105: 0x98A7, + 132634 - 131105: 0x97A4, + 132656 - 131105: 0x90FD, + 132694 - 131105: 0xFC7B, + 132726 - 131105: 0x9AC0, + 132878 - 131105: 0x92C3, + 132913 - 131105: 0x8AAA, + 132985 - 131105: 0x9BD0, + 133164 - 131105: 0x9550, + 133235 - 131105: 0x92C6, + 133333 - 131105: 0x98A6, + 133398 - 131105: 0x9546, + 133411 - 131105: 0xFD63, + 133460 - 131105: 0xFAC2, + 133497 - 131105: 0x9EC3, + 133607 - 131105: 0x89B2, + 133649 - 131105: 0x9C66, + 133712 - 131105: 0x9053, + 133743 - 131105: 0x8C62, + 133770 - 131105: 0x87A8, + 133812 - 131105: 0x97C1, + 133826 - 131105: 0x9AC4, + 133837 - 131105: 0x9AC5, + 133901 - 131105: 0x8EEF, + 134031 - 131105: 0xFAE9, + 134047 - 131105: 0x8D40, + 134056 - 131105: 0x9262, + 134057 - 131105: 0x8AF7, + 134079 - 131105: 0x9AC6, + 134086 - 131105: 0x92E1, + 134091 - 131105: 0x9AC9, + 134114 - 131105: 0xFAC6, + 134123 - 131105: 0x97A5, + 134139 - 131105: 0x9ACB, + 134143 - 131105: 0xFA72, + 134155 - 131105: 0x8A5E, + 134157 - 131105: 0x94E0, + 134176 - 131105: 0x92CC, + 134196 - 131105: 0x8AE5, + 134202 - 131105: 0xFE5C, + 134203 - 131105: 0x9ACC, + 134209 - 131105: 0x9DF9, + 134210 - 131105: 0x8A43, + 134211 - 131105: 0x8AA6, + 134227 - 131105: 0x9ACD, + 134245 - 131105: 0x9ACE, + 134263 - 131105: 0xFAEE, + 134264 - 131105: 0x9BCC, + 134268 - 131105: 0x9ACF, + 134285 - 131105: 0x9AD1, + 134294 - 131105: 0x9DFA, + 134300 - 131105: 0x9D7C, + 134325 - 131105: 0x9AD3, + 134328 - 131105: 0x97A6, + 134351 - 131105: 0x995F, + 134355 - 131105: 0xFBF6, + 134356 - 131105: 0x9FC5, + 134357 - 131105: 0x8A59, + 134358 - 131105: 0x8B6B, + 134365 - 131105: 0x9AD4, + 134381 - 131105: 0x9AD5, + 134399 - 131105: 0x97A2, + 134421 - 131105: 0x8A44, + 134440 - 131105: 0x9F4A, + 134449 - 131105: 0x90A1, + 134450 - 131105: 0xFDA4, + 134470 - 131105: 0x8A64, + 134471 - 131105: 0x8AF2, + 134472 - 131105: 0x8AF8, + 134473 - 131105: 0x9DD8, + 134476 - 131105: 0x94D6, + 134477 - 131105: 0xFAFE, + 134478 - 131105: 0xFBA7, + 134511 - 131105: 0x9AD6, + 134513 - 131105: 0x9F4D, + 134516 - 131105: 0xFAF6, + 134524 - 131105: 0x8A57, + 134526 - 131105: 0x8B43, + 134527 - 131105: 0x8B44, + 134550 - 131105: 0x8AB6, + 134556 - 131105: 0x8AC0, + 134567 - 131105: 0x9E54, + 134578 - 131105: 0x9AD7, + 134600 - 131105: 0x9AD8, + 134660 - 131105: 0x9ADC, + 134665 - 131105: 0x8ACA, + 134666 - 131105: 0x9EA8, + 134669 - 131105: 0x9263, + 134670 - 131105: 0x9ADD, + 134671 - 131105: 0x8B65, + 134672 - 131105: 0x8B6F, + 134673 - 131105: 0x8B7E, + 134678 - 131105: 0x8F43, + 134685 - 131105: 0x92D0, + 134732 - 131105: 0x8AF4, + 134765 - 131105: 0x9DBE, + 134771 - 131105: 0x9AE1, + 134773 - 131105: 0xFCDE, + 134774 - 131105: 0x9DFD, + 134775 - 131105: 0x8B66, + 134776 - 131105: 0x8B70, + 134777 - 131105: 0x8B75, + 134778 - 131105: 0x8AE4, + 134779 - 131105: 0x8BA4, + 134796 - 131105: 0x8AED, + 134806 - 131105: 0x8A5D, + 134808 - 131105: 0x8B48, + 134813 - 131105: 0x9DED, + 134818 - 131105: 0x9E40, + 134826 - 131105: 0x8AEF, + 134827 - 131105: 0x8AF6, + 134828 - 131105: 0x9E76, + 134838 - 131105: 0x9EE3, + 134871 - 131105: 0x9ADE, + 134872 - 131105: 0x8DFE, + 134877 - 131105: 0xFAFC, + 134904 - 131105: 0x9CB1, + 134905 - 131105: 0x9E77, + 134906 - 131105: 0x8B64, + 134907 - 131105: 0x8B67, + 134941 - 131105: 0x974B, + 134950 - 131105: 0x9653, + 134957 - 131105: 0x9AE0, + 134958 - 131105: 0x8B4A, + 134960 - 131105: 0x8AF1, + 134961 - 131105: 0x8AD7, + 134971 - 131105: 0xA0AB, + 134988 - 131105: 0x8AB5, + 135012 - 131105: 0x8A5F, + 135053 - 131105: 0x8AEE, + 135056 - 131105: 0x9ADF, + 135085 - 131105: 0x8AFE, + 135092 - 131105: 0x8A58, + 135093 - 131105: 0x8BA3, + 135094 - 131105: 0x8BA7, + 135100 - 131105: 0x9AE3, + 135135 - 131105: 0x9261, + 135146 - 131105: 0x9DD7, + 135147 - 131105: 0x9E7D, + 135148 - 131105: 0x9EA7, + 135149 - 131105: 0x9EAB, + 135188 - 131105: 0x9042, + 135197 - 131105: 0x8B79, + 135198 - 131105: 0x8B7A, + 135247 - 131105: 0x9AE6, + 135260 - 131105: 0x9AE5, + 135279 - 131105: 0x8A7E, + 135285 - 131105: 0x9E44, + 135286 - 131105: 0x9AE7, + 135287 - 131105: 0x8A7C, + 135288 - 131105: 0x8B71, + 135291 - 131105: 0x9AE9, + 135304 - 131105: 0x9AEA, + 135318 - 131105: 0x9AEB, + 135325 - 131105: 0x8ABD, + 135348 - 131105: 0xFB4E, + 135359 - 131105: 0x9AED, + 135360 - 131105: 0x8AF9, + 135361 - 131105: 0x9E63, + 135367 - 131105: 0x8B49, + 135368 - 131105: 0x8ACE, + 135369 - 131105: 0x8B6E, + 135375 - 131105: 0x8AE8, + 135379 - 131105: 0x9AEE, + 135396 - 131105: 0x92CE, + 135412 - 131105: 0x8A5A, + 135413 - 131105: 0x8B7B, + 135414 - 131105: 0x8B7C, + 135471 - 131105: 0x9AEF, + 135483 - 131105: 0x9AF0, + 135485 - 131105: 0x8AFA, + 135493 - 131105: 0x8941, + 135496 - 131105: 0x8B72, + 135503 - 131105: 0x8AF3, + 135552 - 131105: 0x8BA8, + 135559 - 131105: 0x9EAE, + 135641 - 131105: 0x9E72, + 135740 - 131105: 0xFB73, + 135759 - 131105: 0xFB5F, + 135804 - 131105: 0x90BA, + 135848 - 131105: 0x91FE, + 135849 - 131105: 0x9EF6, + 135856 - 131105: 0x97ED, + 135907 - 131105: 0x9AF3, + 135934 - 131105: 0xA0EE, + 135938 - 131105: 0x967C, + 135939 - 131105: 0x9345, + 135940 - 131105: 0x986E, + 135941 - 131105: 0xFA56, + 135990 - 131105: 0x9AF5, + 135994 - 131105: 0xFC4B, + 136053 - 131105: 0x9AF4, + 136054 - 131105: 0xFEDE, + 136078 - 131105: 0xFCB7, + 136088 - 131105: 0x97F1, + 136092 - 131105: 0x97C7, + 136133 - 131105: 0x9CCB, + 136134 - 131105: 0x9240, + 136173 - 131105: 0x9CE8, + 136190 - 131105: 0x91FD, + 136211 - 131105: 0x974E, + 136214 - 131105: 0xFB68, + 136228 - 131105: 0x976C, + 136255 - 131105: 0x8CC2, + 136274 - 131105: 0x97E8, + 136276 - 131105: 0xFB6A, + 136277 - 131105: 0x8B74, + 136330 - 131105: 0x8EE7, + 136343 - 131105: 0xFDC8, + 136374 - 131105: 0x9241, + 136424 - 131105: 0x96A1, + 136445 - 131105: 0x8EF3, + 136567 - 131105: 0x9AF7, + 136578 - 131105: 0x8FA6, + 136598 - 131105: 0xFAD6, + 136714 - 131105: 0x9CC7, + 136723 - 131105: 0xFAD7, + 136729 - 131105: 0x9AF8, + 136766 - 131105: 0xFBA1, + 136801 - 131105: 0x8EC5, + 136850 - 131105: 0xFBA4, + 136888 - 131105: 0xFBC2, + 136890 - 131105: 0x9AC1, + 136896 - 131105: 0x91FA, + 136897 - 131105: 0xFEDB, + 136898 - 131105: 0x97AB, + 136915 - 131105: 0x9147, + 136917 - 131105: 0xFBB1, + 136927 - 131105: 0x8FEA, + 136934 - 131105: 0x94D2, + 136935 - 131105: 0xFE61, + 136936 - 131105: 0xFACE, + 136954 - 131105: 0x92ED, + 136955 - 131105: 0x91F3, + 136956 - 131105: 0x93C6, + 136958 - 131105: 0x935A, + 136973 - 131105: 0xFAFB, + 136976 - 131105: 0x92EF, + 136998 - 131105: 0xFAC8, + 137018 - 131105: 0x9847, + 137019 - 131105: 0x9366, + 137020 - 131105: 0x9855, + 137047 - 131105: 0x96E6, + 137068 - 131105: 0x9F43, + 137069 - 131105: 0x9FAA, + 137070 - 131105: 0x94DA, + 137071 - 131105: 0x92EE, + 137072 - 131105: 0xFCAF, + 137073 - 131105: 0xFBFB, + 137075 - 131105: 0x8EF9, + 137076 - 131105: 0x91F6, + 137131 - 131105: 0x9364, + 137136 - 131105: 0x94F5, + 137137 - 131105: 0x9CB6, + 137138 - 131105: 0xFBAD, + 137139 - 131105: 0x984E, + 137140 - 131105: 0x8F44, + 137141 - 131105: 0x96FD, + 137155 - 131105: 0x9AF9, + 137159 - 131105: 0x9AFA, + 137177 - 131105: 0x9769, + 137178 - 131105: 0x95D4, + 137179 - 131105: 0x984B, + 137180 - 131105: 0xFBAA, + 137183 - 131105: 0x987C, + 137199 - 131105: 0x91EA, + 137205 - 131105: 0x9DAF, + 137206 - 131105: 0x9DC5, + 137208 - 131105: 0x91F1, + 137209 - 131105: 0x8EB1, + 137210 - 131105: 0x97A9, + 137211 - 131105: 0xFBAC, + 137212 - 131105: 0xFCB8, + 137248 - 131105: 0x9CB9, + 137256 - 131105: 0xFBB0, + 137257 - 131105: 0xFCD2, + 137258 - 131105: 0x93CB, + 137261 - 131105: 0x9AFD, + 137273 - 131105: 0x91F4, + 137274 - 131105: 0x8BAC, + 137275 - 131105: 0xA055, + 137280 - 131105: 0x9574, + 137285 - 131105: 0x95BE, + 137298 - 131105: 0x97AD, + 137310 - 131105: 0x8EE9, + 137313 - 131105: 0x92F8, + 137314 - 131105: 0x97BE, + 137315 - 131105: 0x916C, + 137316 - 131105: 0x94AA, + 137335 - 131105: 0xFC63, + 137339 - 131105: 0x9DC6, + 137347 - 131105: 0x97B5, + 137348 - 131105: 0x92B8, + 137349 - 131105: 0x91EF, + 137374 - 131105: 0xFEA6, + 137375 - 131105: 0x9760, + 137376 - 131105: 0x9358, + 137377 - 131105: 0x9576, + 137378 - 131105: 0x8FAC, + 137406 - 131105: 0x91EC, + 137407 - 131105: 0x97B4, + 137425 - 131105: 0x91F7, + 137430 - 131105: 0x974A, + 137431 - 131105: 0xFB49, + 137432 - 131105: 0x9578, + 137433 - 131105: 0x93BC, + 137466 - 131105: 0x91D6, + 137475 - 131105: 0x9355, + 137476 - 131105: 0x9356, + 137477 - 131105: 0x9851, + 137488 - 131105: 0x8FF8, + 137489 - 131105: 0xFBC0, + 137490 - 131105: 0x93F2, + 137493 - 131105: 0x90D0, + 137500 - 131105: 0x9C44, + 137506 - 131105: 0x9255, + 137511 - 131105: 0x9363, + 137531 - 131105: 0x91A5, + 137540 - 131105: 0xA0ED, + 137560 - 131105: 0xFD6B, + 137578 - 131105: 0x9AFE, + 137596 - 131105: 0x9351, + 137600 - 131105: 0x8C57, + 137603 - 131105: 0xFA78, + 137608 - 131105: 0xFEA8, + 137622 - 131105: 0x9350, + 137691 - 131105: 0xFA4C, + 137715 - 131105: 0x92F7, + 137773 - 131105: 0x9B40, + 137780 - 131105: 0xFBCE, + 137797 - 131105: 0x9B41, + 137803 - 131105: 0xFEAD, + 137827 - 131105: 0x8761, + 138052 - 131105: 0xFBD5, + 138177 - 131105: 0x8BC2, + 138178 - 131105: 0x9A7C, + 138282 - 131105: 0x9B42, + 138352 - 131105: 0x9B43, + 138402 - 131105: 0x9E79, + 138405 - 131105: 0xFBD9, + 138412 - 131105: 0x9B44, + 138566 - 131105: 0xA0A7, + 138579 - 131105: 0x877B, + 138590 - 131105: 0x876E, + 138640 - 131105: 0x9BF3, + 138678 - 131105: 0x8C79, + 138682 - 131105: 0x935E, + 138698 - 131105: 0x89CB, + 138705 - 131105: 0x9F53, + 138731 - 131105: 0x93D7, + 138745 - 131105: 0xFBE1, + 138780 - 131105: 0xFED0, + 138787 - 131105: 0x8CF1, + 138807 - 131105: 0xFBE2, + 138813 - 131105: 0xFCE3, + 138889 - 131105: 0x9074, + 138916 - 131105: 0xFBE6, + 138920 - 131105: 0x9BB7, + 138952 - 131105: 0x9B45, + 138965 - 131105: 0x9B47, + 139023 - 131105: 0x9F50, + 139029 - 131105: 0x9B48, + 139114 - 131105: 0xFC5B, + 139166 - 131105: 0x98A9, + 139169 - 131105: 0x9CFD, + 139240 - 131105: 0x884C, + 139333 - 131105: 0x9B4B, + 139337 - 131105: 0xFBEC, + 139390 - 131105: 0x8C69, + 139418 - 131105: 0x9BA8, + 139463 - 131105: 0x8AD5, + 139516 - 131105: 0xFA73, + 139562 - 131105: 0xFD59, + 139611 - 131105: 0x91A2, + 139635 - 131105: 0xFBED, + 139642 - 131105: 0x9CA9, + 139681 - 131105: 0x8AA8, + 139713 - 131105: 0x8D42, + 139715 - 131105: 0x9BC3, + 139784 - 131105: 0x8AE1, + 139900 - 131105: 0x9B4E, + 140065 - 131105: 0x95D0, + 140069 - 131105: 0x905F, + 140221 - 131105: 0x97EE, + 140240 - 131105: 0xFC4E, + 140247 - 131105: 0x9B4F, + 140282 - 131105: 0x9B50, + 140389 - 131105: 0x9EC6, + 140401 - 131105: 0xFC50, + 140427 - 131105: 0xFD73, + 140433 - 131105: 0xFDA7, + 140464 - 131105: 0x9DA2, + 140476 - 131105: 0x87D1, + 140481 - 131105: 0x87D3, + 140489 - 131105: 0x87D4, + 140492 - 131105: 0x87D5, + 140525 - 131105: 0xFA58, + 140563 - 131105: 0xFA5E, + 140571 - 131105: 0xA059, + 140592 - 131105: 0xFA75, + 140628 - 131105: 0xFBBE, + 140685 - 131105: 0x9CA2, + 140719 - 131105: 0x9370, + 140734 - 131105: 0x9371, + 140827 - 131105: 0x9377, + 140828 - 131105: 0xFEEF, + 140843 - 131105: 0x936D, + 140904 - 131105: 0xFC5D, + 140922 - 131105: 0x90B8, + 140950 - 131105: 0x8AFC, + 140952 - 131105: 0xFB41, + 141044 - 131105: 0x9E6B, + 141045 - 131105: 0x94E3, + 141046 - 131105: 0x8EE2, + 141074 - 131105: 0x8C7D, + 141076 - 131105: 0x8ED7, + 141083 - 131105: 0x9C4D, + 141087 - 131105: 0x96A3, + 141098 - 131105: 0x9B51, + 141173 - 131105: 0x8AC3, + 141185 - 131105: 0x96AA, + 141206 - 131105: 0x8CE2, + 141236 - 131105: 0xFC68, + 141237 - 131105: 0x8B6D, + 141261 - 131105: 0xFD67, + 141315 - 131105: 0x8AE9, + 141407 - 131105: 0xFCA1, + 141408 - 131105: 0x936C, + 141425 - 131105: 0x9B52, + 141485 - 131105: 0xFE70, + 141505 - 131105: 0xFCA8, + 141559 - 131105: 0xFCE9, + 141606 - 131105: 0x9CB4, + 141625 - 131105: 0x8AEA, + 141647 - 131105: 0x9B53, + 141671 - 131105: 0x9B55, + 141675 - 131105: 0x96AB, + 141696 - 131105: 0xFCA7, + 141715 - 131105: 0x9B56, + 141926 - 131105: 0x8ABC, + 142031 - 131105: 0x8ACB, + 142037 - 131105: 0x9B57, + 142054 - 131105: 0x89CD, + 142056 - 131105: 0x9B59, + 142094 - 131105: 0x9B5B, + 142114 - 131105: 0x93A5, + 142143 - 131105: 0x9B5D, + 142147 - 131105: 0x9E4F, + 142186 - 131105: 0x93A3, + 142282 - 131105: 0x8A7B, + 142286 - 131105: 0x8B42, + 142374 - 131105: 0x9750, + 142375 - 131105: 0x8FB3, + 142392 - 131105: 0x8A50, + 142412 - 131105: 0x9B60, + 142417 - 131105: 0x8B45, + 142421 - 131105: 0x8B46, + 142434 - 131105: 0x9DFE, + 142472 - 131105: 0x9B62, + 142491 - 131105: 0x937B, + 142497 - 131105: 0x93B1, + 142505 - 131105: 0x8A60, + 142514 - 131105: 0x8AD8, + 142519 - 131105: 0x9B63, + 142530 - 131105: 0x8A69, + 142534 - 131105: 0x8A47, + 142537 - 131105: 0x8ACC, + 142599 - 131105: 0x937C, + 142600 - 131105: 0x9B65, + 142610 - 131105: 0x9B66, + 142660 - 131105: 0x8A72, + 142668 - 131105: 0x8A7A, + 142695 - 131105: 0x93AF, + 142733 - 131105: 0x8AB0, + 142741 - 131105: 0x9B68, + 142752 - 131105: 0x9EA3, + 142755 - 131105: 0xFAEC, + 142756 - 131105: 0x8B77, + 142775 - 131105: 0x9B67, + 142830 - 131105: 0x8B59, + 142861 - 131105: 0xFCB1, + 142902 - 131105: 0xFCBB, + 142914 - 131105: 0x9B69, + 142968 - 131105: 0x93A8, + 142987 - 131105: 0x8AE0, + 143027 - 131105: 0x9E51, + 143087 - 131105: 0x8F5F, + 143220 - 131105: 0x9B6A, + 143308 - 131105: 0x9B6B, + 143331 - 131105: 0x97EC, + 143411 - 131105: 0x9B6C, + 143428 - 131105: 0xFE4E, + 143435 - 131105: 0xFDC2, + 143462 - 131105: 0x9B6D, + 143485 - 131105: 0x9167, + 143486 - 131105: 0xFCCC, + 143502 - 131105: 0x93B6, + 143543 - 131105: 0x90E4, + 143548 - 131105: 0x90E5, + 143578 - 131105: 0x9EF2, + 143619 - 131105: 0x93CA, + 143677 - 131105: 0x8BBC, + 143741 - 131105: 0x8F46, + 143746 - 131105: 0x93CF, + 143780 - 131105: 0xFCDB, + 143781 - 131105: 0xFCDC, + 143795 - 131105: 0x93C0, + 143816 - 131105: 0xFCE6, + 143817 - 131105: 0x96E7, + 143850 - 131105: 0x87A7, + 143863 - 131105: 0xFCD8, + 143864 - 131105: 0xFCD9, + 143865 - 131105: 0xFDA6, + 143887 - 131105: 0x93CE, + 143909 - 131105: 0x95F1, + 143919 - 131105: 0x9CE9, + 143921 - 131105: 0xFCE4, + 143922 - 131105: 0x94AF, + 143923 - 131105: 0xFA77, + 143924 - 131105: 0x93CC, + 143958 - 131105: 0x8CE1, + 143966 - 131105: 0x87A9, + 143970 - 131105: 0x905A, + 144001 - 131105: 0x8C54, + 144009 - 131105: 0x93BF, + 144010 - 131105: 0xFB51, + 144043 - 131105: 0x93B9, + 144044 - 131105: 0xFED7, + 144045 - 131105: 0x93B7, + 144082 - 131105: 0x93D9, + 144096 - 131105: 0x93BB, + 144097 - 131105: 0x93DA, + 144128 - 131105: 0x98A3, + 144138 - 131105: 0x90D1, + 144159 - 131105: 0x9B6E, + 144308 - 131105: 0xFA70, + 144332 - 131105: 0x9BEB, + 144350 - 131105: 0x9B6F, + 144358 - 131105: 0xFCFC, + 144372 - 131105: 0x8B40, + 144373 - 131105: 0xA07B, + 144377 - 131105: 0x8CA1, + 144378 - 131105: 0x97F7, + 144382 - 131105: 0x93E2, + 144384 - 131105: 0xFCD6, + 144447 - 131105: 0x9559, + 144464 - 131105: 0x93A6, + 144495 - 131105: 0xFD40, + 144498 - 131105: 0x935F, + 144613 - 131105: 0x97F2, + 144665 - 131105: 0x9C76, + 144688 - 131105: 0x8EF8, + 144721 - 131105: 0x8CEB, + 144730 - 131105: 0x8F47, + 144743 - 131105: 0x9B74, + 144789 - 131105: 0x92B4, + 144793 - 131105: 0x91ED, + 144796 - 131105: 0x96D2, + 144827 - 131105: 0x87D8, + 144845 - 131105: 0xFD46, + 144846 - 131105: 0x8F4F, + 144847 - 131105: 0x9549, + 144883 - 131105: 0x9B75, + 144896 - 131105: 0xFA5C, + 144919 - 131105: 0x8751, + 144922 - 131105: 0x9B79, + 144956 - 131105: 0xFD4B, + 144960 - 131105: 0x96D3, + 144985 - 131105: 0xFD58, + 144991 - 131105: 0x945F, + 145015 - 131105: 0xA0F5, + 145038 - 131105: 0x87C7, + 145054 - 131105: 0x877C, + 145062 - 131105: 0x9243, + 145069 - 131105: 0x97FA, + 145082 - 131105: 0x9DD9, + 145119 - 131105: 0x97F4, + 145134 - 131105: 0x924D, + 145155 - 131105: 0xFD5B, + 145174 - 131105: 0x9B7A, + 145184 - 131105: 0x9ED5, + 145197 - 131105: 0xFAAE, + 145199 - 131105: 0x9CC9, + 145215 - 131105: 0x9258, + 145254 - 131105: 0x8EC8, + 145281 - 131105: 0x94B4, + 145314 - 131105: 0x93E1, + 145340 - 131105: 0x93DF, + 145346 - 131105: 0xFCF0, + 145365 - 131105: 0x93EC, + 145366 - 131105: 0x97F6, + 145367 - 131105: 0x96CF, + 145466 - 131105: 0x93DE, + 145858 - 131105: 0x8ACF, + 146087 - 131105: 0x9BA2, + 146139 - 131105: 0xFD69, + 146158 - 131105: 0x9352, + 146170 - 131105: 0x98A2, + 146202 - 131105: 0x8CE7, + 146266 - 131105: 0xFD6E, + 146531 - 131105: 0x8CA4, + 146585 - 131105: 0xFA7C, + 146586 - 131105: 0x93FA, + 146587 - 131105: 0x907C, + 146613 - 131105: 0x8F67, + 146615 - 131105: 0x9DB7, + 146631 - 131105: 0xA0E9, + 146632 - 131105: 0xFA4E, + 146633 - 131105: 0xFDA1, + 146684 - 131105: 0x9E74, + 146685 - 131105: 0x9FBF, + 146686 - 131105: 0x9ECB, + 146687 - 131105: 0x9BB9, + 146752 - 131105: 0x9DD4, + 146779 - 131105: 0x97B9, + 146814 - 131105: 0x8EF1, + 146831 - 131105: 0x957B, + 146870 - 131105: 0x9ED2, + 146871 - 131105: 0x9753, + 146872 - 131105: 0x96A4, + 146873 - 131105: 0x8FBE, + 146874 - 131105: 0x94D9, + 146875 - 131105: 0x9058, + 146876 - 131105: 0xFD79, + 146877 - 131105: 0xFD7B, + 146915 - 131105: 0x8EDA, + 146936 - 131105: 0x8EFA, + 146950 - 131105: 0x8762, + 146961 - 131105: 0x9BA5, + 146988 - 131105: 0x9ED9, + 146989 - 131105: 0x97D4, + 146990 - 131105: 0x90BB, + 146991 - 131105: 0xFDBC, + 146992 - 131105: 0xFDC6, + 146993 - 131105: 0x9248, + 147001 - 131105: 0x92B5, + 147080 - 131105: 0x9DC1, + 147081 - 131105: 0x92B9, + 147082 - 131105: 0x92A6, + 147083 - 131105: 0x8F4B, + 147129 - 131105: 0x9BA6, + 147135 - 131105: 0x92B6, + 147159 - 131105: 0x8E40, + 147191 - 131105: 0x9ED8, + 147192 - 131105: 0x945E, + 147193 - 131105: 0x985F, + 147194 - 131105: 0x94CE, + 147195 - 131105: 0x924A, + 147196 - 131105: 0xFD70, + 147253 - 131105: 0x9467, + 147265 - 131105: 0x8DEC, + 147274 - 131105: 0x9BD8, + 147297 - 131105: 0x8763, + 147327 - 131105: 0x9448, + 147328 - 131105: 0xFAC1, + 147329 - 131105: 0x9CF7, + 147330 - 131105: 0xFDBE, + 147343 - 131105: 0x8FDA, + 147380 - 131105: 0xFDD9, + 147383 - 131105: 0xFC7E, + 147392 - 131105: 0x93F9, + 147397 - 131105: 0xFA43, + 147435 - 131105: 0xFAEB, + 147436 - 131105: 0xFAC3, + 147437 - 131105: 0x97D3, + 147438 - 131105: 0x95F9, + 147439 - 131105: 0x9C48, + 147440 - 131105: 0xFDD8, + 147473 - 131105: 0xA0D8, + 147513 - 131105: 0xFDD7, + 147514 - 131105: 0xFB4A, + 147515 - 131105: 0x9BAF, + 147516 - 131105: 0x944B, + 147517 - 131105: 0xFDC9, + 147543 - 131105: 0x8EAC, + 147589 - 131105: 0xFDB2, + 147595 - 131105: 0x925A, + 147596 - 131105: 0xFCBD, + 147597 - 131105: 0x92D9, + 147601 - 131105: 0xFDD5, + 147657 - 131105: 0x92DD, + 147681 - 131105: 0x9259, + 147692 - 131105: 0x8CF0, + 147716 - 131105: 0x96BA, + 147727 - 131105: 0x925B, + 147737 - 131105: 0x9BAB, + 147775 - 131105: 0xFDDA, + 147776 - 131105: 0xFDDE, + 147780 - 131105: 0xFDD3, + 147790 - 131105: 0x8C46, + 147797 - 131105: 0xFDD6, + 147798 - 131105: 0xFDDC, + 147799 - 131105: 0xFDDD, + 147804 - 131105: 0x90FE, + 147807 - 131105: 0xFEA1, + 147809 - 131105: 0x87A5, + 147831 - 131105: 0x8BAD, + 147834 - 131105: 0x9CD8, + 147875 - 131105: 0x9E6D, + 147876 - 131105: 0xFD7C, + 147877 - 131105: 0xFB61, + 147884 - 131105: 0x96F8, + 147893 - 131105: 0x96F0, + 147917 - 131105: 0xFCF4, + 147938 - 131105: 0xFE60, + 147964 - 131105: 0x9852, + 147995 - 131105: 0x964F, + 148043 - 131105: 0x916E, + 148054 - 131105: 0x986D, + 148057 - 131105: 0x9864, + 148086 - 131105: 0x9453, + 148087 - 131105: 0xFDEC, + 148088 - 131105: 0xFB78, + 148100 - 131105: 0x95BA, + 148115 - 131105: 0x985D, + 148117 - 131105: 0x92F9, + 148133 - 131105: 0x985A, + 148159 - 131105: 0x8750, + 148161 - 131105: 0xFDF6, + 148169 - 131105: 0x93D0, + 148170 - 131105: 0x9862, + 148206 - 131105: 0x9BAD, + 148218 - 131105: 0x974F, + 148237 - 131105: 0x9BAE, + 148250 - 131105: 0x9452, + 148276 - 131105: 0x9BB0, + 148296 - 131105: 0x91D2, + 148322 - 131105: 0x97EA, + 148323 - 131105: 0xFB6B, + 148324 - 131105: 0x91B1, + 148325 - 131105: 0xFDF3, + 148364 - 131105: 0x92CB, + 148374 - 131105: 0x9BB1, + 148380 - 131105: 0xFCEC, + 148413 - 131105: 0x986B, + 148417 - 131105: 0x9751, + 148457 - 131105: 0x9871, + 148458 - 131105: 0x95EF, + 148466 - 131105: 0x9EF3, + 148472 - 131105: 0x91E8, + 148484 - 131105: 0x9BBA, + 148533 - 131105: 0xFB4C, + 148534 - 131105: 0x926A, + 148570 - 131105: 0xFDF8, + 148571 - 131105: 0x9861, + 148595 - 131105: 0x91E7, + 148615 - 131105: 0x93ED, + 148616 - 131105: 0x9744, + 148665 - 131105: 0x91E1, + 148668 - 131105: 0xFBF5, + 148686 - 131105: 0x9869, + 148691 - 131105: 0x8A62, + 148694 - 131105: 0x9BBB, + 148741 - 131105: 0x8CA8, + 148769 - 131105: 0x9C55, + 148856 - 131105: 0x8E77, + 148936 - 131105: 0x8AB2, + 149016 - 131105: 0x9EBC, + 149034 - 131105: 0x93E6, + 149093 - 131105: 0x93A2, + 149108 - 131105: 0x9BBD, + 149143 - 131105: 0x94B3, + 149204 - 131105: 0x937D, + 149254 - 131105: 0x9E66, + 149285 - 131105: 0x9459, + 149295 - 131105: 0x9BBF, + 149391 - 131105: 0x9458, + 149472 - 131105: 0x9EA5, + 149522 - 131105: 0x9BC7, + 149539 - 131105: 0xFE54, + 149634 - 131105: 0x8E74, + 149737 - 131105: 0x8BD6, + 149744 - 131105: 0x94B6, + 149745 - 131105: 0xFD74, + 149746 - 131105: 0x98C0, + 149747 - 131105: 0x94A5, + 149755 - 131105: 0x9BC8, + 149759 - 131105: 0x95ED, + 149760 - 131105: 0xFD7E, + 149761 - 131105: 0xFBEB, + 149772 - 131105: 0xFD7D, + 149782 - 131105: 0x976F, + 149783 - 131105: 0x9461, + 149785 - 131105: 0x9FC1, + 149807 - 131105: 0x95D7, + 149811 - 131105: 0xFA52, + 149812 - 131105: 0x9C58, + 149822 - 131105: 0x9F68, + 149823 - 131105: 0x9BE7, + 149824 - 131105: 0xFCCE, + 149825 - 131105: 0x96E8, + 149826 - 131105: 0xFA49, + 149827 - 131105: 0x97A1, + 149858 - 131105: 0x954D, + 149859 - 131105: 0x9EF8, + 149876 - 131105: 0xFE49, + 149877 - 131105: 0x91CE, + 149878 - 131105: 0x9771, + 149883 - 131105: 0x8CCF, + 149887 - 131105: 0xFDB1, + 149890 - 131105: 0xFC6E, + 149896 - 131105: 0x9CF2, + 149897 - 131105: 0x93B8, + 149898 - 131105: 0x9043, + 149899 - 131105: 0x9759, + 149900 - 131105: 0x94D7, + 149901 - 131105: 0xFE66, + 149902 - 131105: 0x947D, + 149903 - 131105: 0xFC6F, + 149908 - 131105: 0x9246, + 149924 - 131105: 0xFA6D, + 149927 - 131105: 0x8EF7, + 149929 - 131105: 0xFBB7, + 149931 - 131105: 0x947C, + 149932 - 131105: 0x92CD, + 149933 - 131105: 0x97B2, + 149943 - 131105: 0xFE65, + 149944 - 131105: 0x967E, + 149945 - 131105: 0x9758, + 149946 - 131105: 0x9B77, + 149947 - 131105: 0x91CF, + 149957 - 131105: 0x94A4, + 149968 - 131105: 0x9CAD, + 149978 - 131105: 0x8BAB, + 149982 - 131105: 0x96D5, + 149983 - 131105: 0xFCB3, + 149987 - 131105: 0x93AE, + 149989 - 131105: 0x976D, + 149996 - 131105: 0x9446, + 149997 - 131105: 0x95F7, + 150006 - 131105: 0x9C46, + 150007 - 131105: 0x955B, + 150008 - 131105: 0x91D1, + 150009 - 131105: 0x94F4, + 150011 - 131105: 0xFE67, + 150030 - 131105: 0x92A5, + 150034 - 131105: 0xFEDF, + 150035 - 131105: 0x8CAB, + 150037 - 131105: 0x9BC9, + 150049 - 131105: 0xFCED, + 150050 - 131105: 0xFDFA, + 150051 - 131105: 0xFCC8, + 150052 - 131105: 0xFE62, + 150053 - 131105: 0x91FC, + 150054 - 131105: 0xFE6B, + 150055 - 131105: 0xFDF9, + 150056 - 131105: 0xFCC7, + 150057 - 131105: 0x914E, + 150058 - 131105: 0x9CB8, + 150078 - 131105: 0x9767, + 150082 - 131105: 0x95EE, + 150085 - 131105: 0x9BB2, + 150090 - 131105: 0x9460, + 150094 - 131105: 0x94A2, + 150095 - 131105: 0x9875, + 150096 - 131105: 0x97AC, + 150097 - 131105: 0x91D3, + 150109 - 131105: 0x987B, + 150117 - 131105: 0x8EEB, + 150118 - 131105: 0x976A, + 150119 - 131105: 0x965E, + 150129 - 131105: 0x97EB, + 150135 - 131105: 0x9FF9, + 150136 - 131105: 0x95F8, + 150137 - 131105: 0xFEA2, + 150138 - 131105: 0x8FE6, + 150156 - 131105: 0xFE7E, + 150163 - 131105: 0x9DA4, + 150164 - 131105: 0x9768, + 150165 - 131105: 0x8EEC, + 150166 - 131105: 0x94BD, + 150180 - 131105: 0x945B, + 150181 - 131105: 0x9CF6, + 150182 - 131105: 0xFAA7, + 150183 - 131105: 0x9BD9, + 150193 - 131105: 0xFA5D, + 150194 - 131105: 0x9656, + 150195 - 131105: 0x9762, + 150202 - 131105: 0x94BA, + 150203 - 131105: 0xA04F, + 150204 - 131105: 0x92D8, + 150208 - 131105: 0x9BCB, + 150215 - 131105: 0x94BB, + 150218 - 131105: 0x9D5F, + 150225 - 131105: 0x90CF, + 150239 - 131105: 0x9465, + 150242 - 131105: 0x9F4C, + 150249 - 131105: 0x90D8, + 150287 - 131105: 0x8D5B, + 150382 - 131105: 0x9EBE, + 150517 - 131105: 0xFB6D, + 150537 - 131105: 0x95CA, + 150686 - 131105: 0x9DC2, + 150687 - 131105: 0x97F8, + 150729 - 131105: 0x8FFC, + 150745 - 131105: 0x9473, + 150790 - 131105: 0x9474, + 150803 - 131105: 0xFEB7, + 150968 - 131105: 0x8A4B, + 151018 - 131105: 0x8A55, + 151019 - 131105: 0x8B69, + 151099 - 131105: 0x8ADC, + 151120 - 131105: 0x8B76, + 151205 - 131105: 0x9BCE, + 151207 - 131105: 0x8A68, + 151310 - 131105: 0xA0F8, + 151388 - 131105: 0x98DF, + 151426 - 131105: 0xFEB5, + 151430 - 131105: 0x9BCF, + 151447 - 131105: 0x96FB, + 151450 - 131105: 0x9BFB, + 151465 - 131105: 0x9ECE, + 151480 - 131105: 0x8EE5, + 151490 - 131105: 0x9E7B, + 151596 - 131105: 0x9BD2, + 151634 - 131105: 0x8AA5, + 151709 - 131105: 0xFECE, + 151851 - 131105: 0x8A45, + 151880 - 131105: 0x9DFC, + 151933 - 131105: 0xFECF, + 151934 - 131105: 0x8BA5, + 152013 - 131105: 0x8C4A, + 152035 - 131105: 0x8AEC, + 152038 - 131105: 0xFCE0, + 152039 - 131105: 0x94AD, + 152096 - 131105: 0xFED5, + 152097 - 131105: 0x94AC, + 152144 - 131105: 0xFC5A, + 152217 - 131105: 0x9BD6, + 152263 - 131105: 0x8A6F, + 152280 - 131105: 0x8BA9, + 152334 - 131105: 0x8E5F, + 152337 - 131105: 0x9DCB, + 152339 - 131105: 0xFCE7, + 152601 - 131105: 0x9BD7, + 152613 - 131105: 0x93C8, + 152623 - 131105: 0x91F0, + 152624 - 131105: 0x8FE0, + 152646 - 131105: 0x9BDB, + 152684 - 131105: 0x90ED, + 152686 - 131105: 0x9BDC, + 152730 - 131105: 0x8D53, + 152881 - 131105: 0xA0EC, + 152885 - 131105: 0x98FA, + 152895 - 131105: 0x9BE0, + 152923 - 131105: 0x93C7, + 152924 - 131105: 0x9249, + 152925 - 131105: 0x96E1, + 152926 - 131105: 0x9BE2, + 152930 - 131105: 0x9BE4, + 152933 - 131105: 0x8FE1, + 152934 - 131105: 0x9BE5, + 152961 - 131105: 0x94C0, + 152964 - 131105: 0x93C3, + 152975 - 131105: 0x93C5, + 153017 - 131105: 0x9079, + 153045 - 131105: 0x977B, + 153051 - 131105: 0x907E, + 153056 - 131105: 0xFEE6, + 153093 - 131105: 0xFE46, + 153141 - 131105: 0x9DB8, + 153169 - 131105: 0x9270, + 153219 - 131105: 0x95A8, + 153237 - 131105: 0x8CB0, + 153315 - 131105: 0x94C8, + 153334 - 131105: 0x98B9, + 153350 - 131105: 0x9140, + 153373 - 131105: 0xFCBE, + 153381 - 131105: 0x9157, + 153405 - 131105: 0x8BB2, + 153458 - 131105: 0xFADF, + 153543 - 131105: 0x9BE6, + 153567 - 131105: 0x9643, + 153568 - 131105: 0x8E44, + 153569 - 131105: 0x9C4F, + 153687 - 131105: 0xFEF4, + 153693 - 131105: 0x9BE8, + 153714 - 131105: 0x93DC, + 153800 - 131105: 0x966F, + 153822 - 131105: 0x87A1, + 153825 - 131105: 0x8E4A, + 153859 - 131105: 0x9BED, + 153926 - 131105: 0x92F6, + 153942 - 131105: 0x9DB9, + 154028 - 131105: 0x8E4E, + 154060 - 131105: 0xFBCF, + 154196 - 131105: 0x8760, + 154261 - 131105: 0x9EC2, + 154268 - 131105: 0x94E5, + 154286 - 131105: 0x9BF0, + 154287 - 131105: 0x94E4, + 154345 - 131105: 0x9551, + 154484 - 131105: 0x8BBB, + 154505 - 131105: 0x9BF1, + 154547 - 131105: 0x94F0, + 154548 - 131105: 0x8E64, + 154566 - 131105: 0x94EA, + 154596 - 131105: 0x8F61, + 154600 - 131105: 0x9B64, + 154625 - 131105: 0x8E5B, + 154630 - 131105: 0x9BF2, + 154657 - 131105: 0x9FBE, + 154698 - 131105: 0x9DC9, + 154725 - 131105: 0x8E6C, + 154769 - 131105: 0x8F73, + 154788 - 131105: 0x8CAF, + 154816 - 131105: 0x8F75, + 154817 - 131105: 0x8E71, + 154878 - 131105: 0x8E60, + 154912 - 131105: 0x8E6A, + 154928 - 131105: 0x8C4C, + 154947 - 131105: 0x9552, + 155033 - 131105: 0x87CF, + 155065 - 131105: 0x87C0, + 155150 - 131105: 0x9554, + 155209 - 131105: 0x8AD4, + 155265 - 131105: 0x9DBB, + 155266 - 131105: 0x9543, + 155267 - 131105: 0x92FE, + 155302 - 131105: 0x94F2, + 155324 - 131105: 0x94F1, + 155351 - 131105: 0xA0EA, + 155352 - 131105: 0x9DD2, + 155418 - 131105: 0xA0B1, + 155467 - 131105: 0x91F8, + 155617 - 131105: 0x9462, + 155618 - 131105: 0x9BA4, + 155681 - 131105: 0x877D, + 155689 - 131105: 0x8EAD, + 155720 - 131105: 0x9EAD, + 155748 - 131105: 0x96D0, + 155779 - 131105: 0xFEEE, + 155799 - 131105: 0x8AB4, + 155812 - 131105: 0x9757, + 155813 - 131105: 0x8A77, + 155906 - 131105: 0x9BF7, + 155937 - 131105: 0x8EB5, + 155993 - 131105: 0xA06D, + 155994 - 131105: 0x8EB6, + 155995 - 131105: 0x9756, + 155996 - 131105: 0x9540, + 156077 - 131105: 0xA0F3, + 156078 - 131105: 0x94BE, + 156082 - 131105: 0x9BFA, + 156125 - 131105: 0xFDDF, + 156248 - 131105: 0x9DBC, + 156257 - 131105: 0x94FE, + 156266 - 131105: 0x8BDB, + 156267 - 131105: 0xA0FE, + 156368 - 131105: 0x8EC0, + 156469 - 131105: 0x9F47, + 156491 - 131105: 0x8BDE, + 156492 - 131105: 0xA0FB, + 156497 - 131105: 0x8EC3, + 156606 - 131105: 0x9649, + 156661 - 131105: 0xFEC2, + 156664 - 131105: 0x954C, + 156674 - 131105: 0x9BFD, + 156688 - 131105: 0x90CC, + 156689 - 131105: 0x9C60, + 156690 - 131105: 0x954B, + 156746 - 131105: 0x9BFE, + 156777 - 131105: 0x9C70, + 156804 - 131105: 0x9C43, + 156808 - 131105: 0x9C47, + 156809 - 131105: 0x8ECC, + 156813 - 131105: 0x8E54, + 156824 - 131105: 0x8EE4, + 156946 - 131105: 0x9C49, + 157042 - 131105: 0x8B5E, + 157088 - 131105: 0x955E, + 157101 - 131105: 0x955C, + 157119 - 131105: 0x9C4B, + 157202 - 131105: 0x8BE1, + 157222 - 131105: 0x8ED9, + 157359 - 131105: 0x9DB4, + 157361 - 131105: 0x925F, + 157365 - 131105: 0x9C4C, + 157402 - 131105: 0x8AA1, + 157416 - 131105: 0x8EDB, + 157436 - 131105: 0x9C56, + 157462 - 131105: 0x8AA2, + 157505 - 131105: 0x9754, + 157593 - 131105: 0x9C5E, + 157619 - 131105: 0x9ED4, + 157620 - 131105: 0x9568, + 157644 - 131105: 0xA0C3, + 157724 - 131105: 0x8AE6, + 157766 - 131105: 0xA0F7, + 157790 - 131105: 0x9C61, + 157806 - 131105: 0x9C5F, + 157832 - 131105: 0xFC4D, + 157834 - 131105: 0x9E5B, + 157843 - 131105: 0x9E69, + 157895 - 131105: 0x9C63, + 157966 - 131105: 0xFEC7, + 157969 - 131105: 0xFEC6, + 157990 - 131105: 0x9C67, + 158009 - 131105: 0x9C69, + 158033 - 131105: 0x8BE2, + 158120 - 131105: 0x9165, + 158133 - 131105: 0x9CE7, + 158194 - 131105: 0x8A54, + 158202 - 131105: 0x9C6C, + 158253 - 131105: 0x9C6E, + 158254 - 131105: 0xFE5D, + 158260 - 131105: 0x9C73, + 158274 - 131105: 0x956A, + 158289 - 131105: 0x956D, + 158290 - 131105: 0x8EF0, + 158469 - 131105: 0x8F4D, + 158474 - 131105: 0x8EF6, + 158483 - 131105: 0xFABC, + 158485 - 131105: 0x8CD5, + 158499 - 131105: 0x875E, + 158504 - 131105: 0xFBDA, + 158544 - 131105: 0x8B4C, + 158545 - 131105: 0xFD75, + 158546 - 131105: 0x9BDD, + 158547 - 131105: 0xFAF5, + 158555 - 131105: 0x9C74, + 158581 - 131105: 0x9545, + 158594 - 131105: 0x96C6, + 158614 - 131105: 0x8F6A, + 158615 - 131105: 0x8F4E, + 158621 - 131105: 0x9C78, + 158643 - 131105: 0xFA55, + 158656 - 131105: 0x97E4, + 158711 - 131105: 0x9C41, + 158753 - 131105: 0x925C, + 158784 - 131105: 0x96FA, + 158785 - 131105: 0x8CF6, + 158790 - 131105: 0x8D4D, + 158846 - 131105: 0xFB66, + 158847 - 131105: 0x8E65, + 158848 - 131105: 0x9849, + 158849 - 131105: 0xFBA8, + 158850 - 131105: 0x9842, + 158884 - 131105: 0x9C7A, + 158903 - 131105: 0x97FB, + 158904 - 131105: 0x90CA, + 158909 - 131105: 0x9C5B, + 158912 - 131105: 0x974D, + 158915 - 131105: 0x8ED3, + 158929 - 131105: 0x9561, + 159010 - 131105: 0x9F4B, + 159011 - 131105: 0x9FB5, + 159012 - 131105: 0x93D2, + 159013 - 131105: 0xFDAA, + 159014 - 131105: 0x9840, + 159015 - 131105: 0x9146, + 159016 - 131105: 0x9867, + 159017 - 131105: 0xFA5A, + 159018 - 131105: 0xFBA9, + 159057 - 131105: 0x9841, + 159092 - 131105: 0x8CD3, + 159136 - 131105: 0xFCFD, + 159137 - 131105: 0xFDAB, + 159138 - 131105: 0x91BD, + 159139 - 131105: 0x8F4C, + 159140 - 131105: 0x96C9, + 159141 - 131105: 0x8F55, + 159142 - 131105: 0xFBAE, + 159143 - 131105: 0x956F, + 159150 - 131105: 0x9C7D, + 159196 - 131105: 0xA0F0, + 159210 - 131105: 0x946F, + 159211 - 131105: 0xFDAC, + 159216 - 131105: 0x96CB, + 159232 - 131105: 0x96CE, + 159237 - 131105: 0xA056, + 159239 - 131105: 0x9CE1, + 159250 - 131105: 0x96C4, + 159298 - 131105: 0x8F5E, + 159299 - 131105: 0x8F6C, + 159300 - 131105: 0x8EA3, + 159301 - 131105: 0xFBB3, + 159342 - 131105: 0xFC53, + 159346 - 131105: 0xFDB3, + 159351 - 131105: 0x8F6B, + 159364 - 131105: 0x96CA, + 159368 - 131105: 0x87CD, + 159371 - 131105: 0x8753, + 159385 - 131105: 0x8F79, + 159440 - 131105: 0x9E6F, + 159441 - 131105: 0xA0C5, + 159442 - 131105: 0xFC78, + 159443 - 131105: 0x8E42, + 159444 - 131105: 0x8F5A, + 159445 - 131105: 0x90C2, + 159446 - 131105: 0x8EA5, + 159447 - 131105: 0x9061, + 159526 - 131105: 0x924F, + 159603 - 131105: 0x9373, + 159604 - 131105: 0xFDB5, + 159647 - 131105: 0xFECC, + 159649 - 131105: 0xFBBD, + 159678 - 131105: 0x8CD6, + 159710 - 131105: 0x9843, + 159711 - 131105: 0x96C5, + 159758 - 131105: 0x89BC, + 159819 - 131105: 0x9CA3, + 159826 - 131105: 0x924B, + 159827 - 131105: 0x984A, + 159880 - 131105: 0x8FA4, + 159917 - 131105: 0xA0F1, + 159918 - 131105: 0x9EFB, + 159919 - 131105: 0x9CD2, + 159949 - 131105: 0x8FA7, + 159954 - 131105: 0x8754, + 159992 - 131105: 0xFC5C, + 160009 - 131105: 0x9845, + 160012 - 131105: 0x9046, + 160013 - 131105: 0x8CD1, + 160038 - 131105: 0xFEFA, + 160039 - 131105: 0x9560, + 160100 - 131105: 0x9F48, + 160101 - 131105: 0x9247, + 160117 - 131105: 0x90FB, + 160205 - 131105: 0x9CA4, + 160283 - 131105: 0x9571, + 160359 - 131105: 0x8745, + 160384 - 131105: 0x9CA6, + 160389 - 131105: 0x9CA7, + 160395 - 131105: 0x9CAA, + 160434 - 131105: 0x9ED3, + 160438 - 131105: 0x9E70, + 160486 - 131105: 0x9CAC, + 160594 - 131105: 0x8752, + 160666 - 131105: 0x8FAE, + 160767 - 131105: 0x8D50, + 160802 - 131105: 0x957D, + 160848 - 131105: 0x9CB0, + 160900 - 131105: 0x97B6, + 160902 - 131105: 0xA0BD, + 161140 - 131105: 0x8ADF, + 161187 - 131105: 0x9EAA, + 161248 - 131105: 0x8FBD, + 161252 - 131105: 0x8FBF, + 161277 - 131105: 0x9369, + 161278 - 131105: 0x9BA7, + 161287 - 131105: 0xC8A4, + 161292 - 131105: 0xFEEA, + 161330 - 131105: 0x9BE1, + 161337 - 131105: 0x8B41, + 161365 - 131105: 0x9DB6, + 161366 - 131105: 0xA0EB, + 161367 - 131105: 0x9BA3, + 161428 - 131105: 0x8BA1, + 161551 - 131105: 0x8FC8, + 161589 - 131105: 0x894C, + 161590 - 131105: 0x9860, + 161601 - 131105: 0x94C7, + 161630 - 131105: 0x8B58, + 161668 - 131105: 0x95AB, + 161669 - 131105: 0x95AA, + 161740 - 131105: 0x9CC3, + 161880 - 131105: 0x9CC4, + 161904 - 131105: 0x93D6, + 161949 - 131105: 0x9DAC, + 161970 - 131105: 0x8BE6, + 161992 - 131105: 0x8A71, + 162084 - 131105: 0x8FD1, + 162151 - 131105: 0x99D5, + 162170 - 131105: 0x90F4, + 162208 - 131105: 0x8AA3, + 162269 - 131105: 0x9CCE, + 162301 - 131105: 0x9CD4, + 162314 - 131105: 0x9CD5, + 162318 - 131105: 0xFBC8, + 162366 - 131105: 0x9DB3, + 162387 - 131105: 0xFC70, + 162393 - 131105: 0x8FD7, + 162425 - 131105: 0x9B73, + 162436 - 131105: 0xFA5B, + 162493 - 131105: 0x8FD2, + 162494 - 131105: 0x9064, + 162548 - 131105: 0x98B6, + 162566 - 131105: 0x9668, + 162571 - 131105: 0x9CD6, + 162584 - 131105: 0x98BD, + 162616 - 131105: 0x8FDC, + 162617 - 131105: 0xFEF6, + 162618 - 131105: 0x8FD9, + 162632 - 131105: 0x9541, + 162661 - 131105: 0x87CA, + 162799 - 131105: 0x876C, + 162804 - 131105: 0x97F3, + 162834 - 131105: 0x9BF8, + 162924 - 131105: 0x875A, + 162993 - 131105: 0x8748, + 163013 - 131105: 0x874A, + 163119 - 131105: 0x9E6C, + 163155 - 131105: 0x8FF2, + 163156 - 131105: 0x8FEE, + 163174 - 131105: 0x9CD7, + 163187 - 131105: 0x9E6E, + 163204 - 131105: 0x8A40, + 163215 - 131105: 0x8FEF, + 163224 - 131105: 0x8FF4, + 163261 - 131105: 0x8FF5, + 163292 - 131105: 0x95C2, + 163405 - 131105: 0x986A, + 163407 - 131105: 0x97CF, + 163630 - 131105: 0x9EE5, + 163833 - 131105: 0x9E7C, + 163842 - 131105: 0x9041, + 163849 - 131105: 0x9CDB, + 163870 - 131105: 0x9441, + 163875 - 131105: 0x9CE6, + 163876 - 131105: 0x9DB0, + 163912 - 131105: 0x9CEA, + 163971 - 131105: 0x9CED, + 163984 - 131105: 0x9CFA, + 164029 - 131105: 0x8B62, + 164030 - 131105: 0x8A4E, + 164072 - 131105: 0x9CCA, + 164073 - 131105: 0x8A66, + 164084 - 131105: 0x9CFB, + 164142 - 131105: 0x9CFC, + 164175 - 131105: 0x9CFE, + 164189 - 131105: 0x8A53, + 164207 - 131105: 0x9CE5, + 164233 - 131105: 0x9D40, + 164271 - 131105: 0x9D41, + 164284 - 131105: 0x9045, + 164359 - 131105: 0x8B73, + 164376 - 131105: 0x97CA, + 164378 - 131105: 0x9D42, + 164438 - 131105: 0x8A61, + 164476 - 131105: 0x8BAE, + 164507 - 131105: 0x8AD2, + 164557 - 131105: 0x8BA2, + 164578 - 131105: 0x9DF2, + 164614 - 131105: 0x9D43, + 164632 - 131105: 0x9CDF, + 164655 - 131105: 0x9D44, + 164666 - 131105: 0x8ECA, + 164709 - 131105: 0x904E, + 164717 - 131105: 0x8EB3, + 164733 - 131105: 0x9FF5, + 164746 - 131105: 0x9D45, + 164882 - 131105: 0x904F, + 164968 - 131105: 0x9D47, + 164972 - 131105: 0x89CA, + 164979 - 131105: 0x9CB5, + 164994 - 131105: 0xFBFE, + 165121 - 131105: 0x905E, + 165180 - 131105: 0x9063, + 165181 - 131105: 0x9057, + 165228 - 131105: 0x9066, + 165352 - 131105: 0x9BC0, + 165364 - 131105: 0xFCE5, + 165376 - 131105: 0x9162, + 165387 - 131105: 0x9067, + 165413 - 131105: 0x8FA1, + 165435 - 131105: 0x8FA2, + 165546 - 131105: 0x9D48, + 165547 - 131105: 0xFAD3, + 165554 - 131105: 0x8D4F, + 165564 - 131105: 0x905D, + 165592 - 131105: 0x90B9, + 165606 - 131105: 0x906B, + 165647 - 131105: 0x8C5C, + 165651 - 131105: 0x9069, + 165892 - 131105: 0xFE57, + 165931 - 131105: 0xFE55, + 166157 - 131105: 0x87A6, + 166195 - 131105: 0x9073, + 166216 - 131105: 0x9BEF, + 166217 - 131105: 0x9CF0, + 166230 - 131105: 0x9D4B, + 166244 - 131105: 0xFED9, + 166248 - 131105: 0xFEDA, + 166252 - 131105: 0x91E0, + 166253 - 131105: 0x8D43, + 166270 - 131105: 0x91D8, + 166281 - 131105: 0x9646, + 166312 - 131105: 0x9360, + 166314 - 131105: 0xFA53, + 166315 - 131105: 0x9CD3, + 166328 - 131105: 0x9D4E, + 166332 - 131105: 0xFB40, + 166336 - 131105: 0x8DE2, + 166364 - 131105: 0x9442, + 166366 - 131105: 0x9056, + 166369 - 131105: 0x9865, + 166371 - 131105: 0x8C6C, + 166372 - 131105: 0xFA4A, + 166375 - 131105: 0x9D50, + 166376 - 131105: 0x9D52, + 166393 - 131105: 0x95AF, + 166394 - 131105: 0x975A, + 166395 - 131105: 0x9349, + 166396 - 131105: 0x9747, + 166415 - 131105: 0xA0F4, + 166422 - 131105: 0x9778, + 166437 - 131105: 0x8FCF, + 166441 - 131105: 0xFC60, + 166450 - 131105: 0x8C4E, + 166454 - 131105: 0xFC56, + 166468 - 131105: 0x91DC, + 166469 - 131105: 0x9661, + 166470 - 131105: 0x92EC, + 166471 - 131105: 0x935D, + 166472 - 131105: 0x8EDE, + 166473 - 131105: 0x96FE, + 166474 - 131105: 0xFD4F, + 166475 - 131105: 0x95DE, + 166489 - 131105: 0x98B0, + 166490 - 131105: 0xA040, + 166529 - 131105: 0x97BD, + 166530 - 131105: 0x977D, + 166531 - 131105: 0x97F5, + 166554 - 131105: 0x9BAC, + 166555 - 131105: 0xFADA, + 166556 - 131105: 0x92C2, + 166592 - 131105: 0x97B1, + 166598 - 131105: 0x907B, + 166603 - 131105: 0x93FE, + 166604 - 131105: 0x947B, + 166606 - 131105: 0x9777, + 166622 - 131105: 0xFABE, + 166623 - 131105: 0xFD43, + 166624 - 131105: 0x90C6, + 166625 - 131105: 0x90A4, + 166626 - 131105: 0x90A8, + 166627 - 131105: 0x94A9, + 166629 - 131105: 0x90A9, + 166634 - 131105: 0x8C65, + 166652 - 131105: 0x95E0, + 166668 - 131105: 0x907D, + 166675 - 131105: 0x9265, + 166689 - 131105: 0xFDBA, + 166690 - 131105: 0x93C4, + 166699 - 131105: 0xFEED, + 166700 - 131105: 0x9DAB, + 166701 - 131105: 0xA0E3, + 166703 - 131105: 0x9648, + 166726 - 131105: 0x9D53, + 166732 - 131105: 0x8AA9, + 166734 - 131105: 0x9BC5, + 166736 - 131105: 0x965D, + 166755 - 131105: 0x975F, + 166756 - 131105: 0x965F, + 166757 - 131105: 0x966E, + 166758 - 131105: 0xFB5D, + 166764 - 131105: 0x9DB1, + 166799 - 131105: 0xFEA3, + 166809 - 131105: 0x9DB2, + 166812 - 131105: 0x95AE, + 166813 - 131105: 0xFCA3, + 166841 - 131105: 0x8769, + 166850 - 131105: 0xA0A2, + 166853 - 131105: 0x9655, + 166868 - 131105: 0x9D54, + 166871 - 131105: 0x9341, + 166873 - 131105: 0x95AD, + 166874 - 131105: 0x91D5, + 166887 - 131105: 0x977A, + 166888 - 131105: 0xFDFC, + 166889 - 131105: 0x8E47, + 166890 - 131105: 0x93FD, + 166891 - 131105: 0x90A5, + 166892 - 131105: 0x90AC, + 166901 - 131105: 0x95AC, + 166911 - 131105: 0x90AE, + 166915 - 131105: 0xFEA5, + 166921 - 131105: 0x9D56, + 166940 - 131105: 0x97E3, + 166941 - 131105: 0x95E2, + 166947 - 131105: 0x9466, + 166950 - 131105: 0x9647, + 166955 - 131105: 0x91B8, + 166960 - 131105: 0x9CEC, + 166969 - 131105: 0x90AD, + 166971 - 131105: 0x95E3, + 167114 - 131105: 0x8B4F, + 167117 - 131105: 0x8AE3, + 167122 - 131105: 0x8B4D, + 167220 - 131105: 0x95EA, + 167321 - 131105: 0x8B4E, + 167353 - 131105: 0x8CC1, + 167439 - 131105: 0x8BED, + 167478 - 131105: 0x91D9, + 167481 - 131105: 0xA0A4, + 167525 - 131105: 0x95F5, + 167526 - 131105: 0x95F4, + 167575 - 131105: 0x9FB3, + 167596 - 131105: 0xFEAF, + 167602 - 131105: 0xFE72, + 167603 - 131105: 0x927A, + 167641 - 131105: 0xFEAC, + 167655 - 131105: 0x95F3, + 167877 - 131105: 0x9D58, + 168057 - 131105: 0x8D46, + 168072 - 131105: 0x9372, + 168075 - 131105: 0x91C5, + 168083 - 131105: 0x9642, + 168111 - 131105: 0x90CD, + 168112 - 131105: 0x95FE, + 168113 - 131105: 0x9159, + 168128 - 131105: 0x9C65, + 168164 - 131105: 0x97CC, + 168165 - 131105: 0x90CE, + 168172 - 131105: 0x9D59, + 168173 - 131105: 0xFCF5, + 168205 - 131105: 0xFEFD, + 168208 - 131105: 0x9D5B, + 168252 - 131105: 0x9D5C, + 168269 - 131105: 0x937E, + 168283 - 131105: 0x98AC, + 168286 - 131105: 0x9D5E, + 168304 - 131105: 0xFDD0, + 168348 - 131105: 0xFD60, + 168360 - 131105: 0x9CCF, + 168405 - 131105: 0x90DD, + 168427 - 131105: 0x90E0, + 168989 - 131105: 0x90F3, + 168992 - 131105: 0x98B1, + 169011 - 131105: 0x90F0, + 169023 - 131105: 0x93BD, + 169032 - 131105: 0x95B7, + 169168 - 131105: 0x9F46, + 169177 - 131105: 0x8E4B, + 169178 - 131105: 0x9658, + 169189 - 131105: 0x8A4C, + 169191 - 131105: 0x9D63, + 169374 - 131105: 0x9ECF, + 169392 - 131105: 0x9D65, + 169400 - 131105: 0x9D66, + 169431 - 131105: 0x965A, + 169449 - 131105: 0x9D64, + 169460 - 131105: 0x8A6C, + 169760 - 131105: 0x8AD9, + 169778 - 131105: 0x9D67, + 169940 - 131105: 0x8A70, + 170000 - 131105: 0x8BF3, + 170071 - 131105: 0x9150, + 170148 - 131105: 0x9CC1, + 170193 - 131105: 0x9D68, + 170218 - 131105: 0x93A7, + 170225 - 131105: 0x9674, + 170234 - 131105: 0x8CFD, + 170243 - 131105: 0xA0EF, + 170245 - 131105: 0x9151, + 170287 - 131105: 0x96C1, + 170309 - 131105: 0x8777, + 170311 - 131105: 0x8C64, + 170312 - 131105: 0x9676, + 170313 - 131105: 0x9D69, + 170333 - 131105: 0xFCA4, + 170346 - 131105: 0x9D6A, + 170397 - 131105: 0x924E, + 170435 - 131105: 0x9D6B, + 170441 - 131105: 0x9BC1, + 170536 - 131105: 0x9D6C, + 170573 - 131105: 0x8A65, + 170757 - 131105: 0x915D, + 170766 - 131105: 0x9D6D, + 170965 - 131105: 0x915A, + 171123 - 131105: 0x8C42, + 171181 - 131105: 0x9CC0, + 171326 - 131105: 0x916A, + 171354 - 131105: 0x9D6E, + 171388 - 131105: 0x9EA6, + 171416 - 131105: 0x9DCD, + 171419 - 131105: 0x9D6F, + 171510 - 131105: 0x89BB, + 171526 - 131105: 0x9EF9, + 171565 - 131105: 0x96B4, + 171624 - 131105: 0x9172, + 171692 - 131105: 0x9EC8, + 171696 - 131105: 0x8771, + 171715 - 131105: 0x8B55, + 171768 - 131105: 0x9D71, + 171811 - 131105: 0x9D72, + 171824 - 131105: 0x9ECC, + 171959 - 131105: 0x9174, + 171998 - 131105: 0x9ED0, + 172052 - 131105: 0x905C, + 172167 - 131105: 0x8ED2, + 172217 - 131105: 0x91A8, + 172257 - 131105: 0x9177, + 172269 - 131105: 0x96BF, + 172275 - 131105: 0x96C0, + 172280 - 131105: 0x8FB1, + 172286 - 131105: 0x96B7, + 172295 - 131105: 0x8C55, + 172323 - 131105: 0x9178, + 172339 - 131105: 0x89BE, + 172340 - 131105: 0x917C, + 172368 - 131105: 0xFB77, + 172434 - 131105: 0x9175, + 172435 - 131105: 0x91A3, + 172459 - 131105: 0x9176, + 172468 - 131105: 0x96BE, + 172469 - 131105: 0x8D49, + 172511 - 131105: 0x9179, + 172533 - 131105: 0x96B6, + 172576 - 131105: 0x91A4, + 172595 - 131105: 0x91A6, + 172691 - 131105: 0x9D75, + 172703 - 131105: 0x9052, + 172722 - 131105: 0xA045, + 172724 - 131105: 0x91A9, + 172726 - 131105: 0x98AA, + 172730 - 131105: 0x8C5F, + 172733 - 131105: 0x8BAA, + 172767 - 131105: 0x9CDD, + 172799 - 131105: 0x9D77, + 172881 - 131105: 0x8756, + 172969 - 131105: 0x8940, + 173108 - 131105: 0x9EEC, + 173147 - 131105: 0x93AA, + 173510 - 131105: 0x9478, + 173515 - 131105: 0x9D7A, + 173569 - 131105: 0x8AC9, + 173618 - 131105: 0x8B4B, + 173642 - 131105: 0x9FEC, + 173659 - 131105: 0x8AE2, + 173737 - 131105: 0x9E75, +} + +const encode1Low, encode1High = 11904, 40908 + +var encode1 = [...]uint16{ + 11904 - 11904: 0xC8D6, + 11908 - 11904: 0xC8D7, + 11910 - 11904: 0xC8D8, + 11911 - 11904: 0xC8D9, + 11912 - 11904: 0xC8DA, + 11914 - 11904: 0xC8DB, + 11916 - 11904: 0xC8DC, + 11917 - 11904: 0xC8DD, + 11925 - 11904: 0xC8DE, + 11932 - 11904: 0xC8DF, + 11933 - 11904: 0xC8E0, + 11941 - 11904: 0xC8E1, + 11943 - 11904: 0xC8E2, + 11946 - 11904: 0xC8E3, + 11948 - 11904: 0xC8E4, + 11950 - 11904: 0xC8E5, + 11958 - 11904: 0xC8E6, + 11964 - 11904: 0xC8E7, + 11966 - 11904: 0xC8E8, + 11974 - 11904: 0xC8E9, + 11978 - 11904: 0xC8EA, + 11980 - 11904: 0xC8EB, + 11981 - 11904: 0xC8EC, + 11983 - 11904: 0xC8ED, + 11990 - 11904: 0xC8EE, + 11991 - 11904: 0xC8EF, + 11998 - 11904: 0xC8F0, + 12003 - 11904: 0xC8F1, + 12083 - 11904: 0xC6CD, + 12288 - 11904: 0xA140, + 12289 - 11904: 0xA142, + 12290 - 11904: 0xA143, + 12291 - 11904: 0xC6DE, + 12293 - 11904: 0xC6E0, + 12294 - 11904: 0xC6E1, + 12295 - 11904: 0xC6E2, + 12296 - 11904: 0xA171, + 12297 - 11904: 0xA172, + 12298 - 11904: 0xA16D, + 12299 - 11904: 0xA16E, + 12300 - 11904: 0xA175, + 12301 - 11904: 0xA176, + 12302 - 11904: 0xA179, + 12303 - 11904: 0xA17A, + 12304 - 11904: 0xA169, + 12305 - 11904: 0xA16A, + 12306 - 11904: 0xA245, + 12308 - 11904: 0xA165, + 12309 - 11904: 0xA166, + 12317 - 11904: 0xA1A9, + 12318 - 11904: 0xA1AA, + 12321 - 11904: 0xA2C3, + 12322 - 11904: 0xA2C4, + 12323 - 11904: 0xA2C5, + 12324 - 11904: 0xA2C6, + 12325 - 11904: 0xA2C7, + 12326 - 11904: 0xA2C8, + 12327 - 11904: 0xA2C9, + 12328 - 11904: 0xA2CA, + 12329 - 11904: 0xA2CB, + 12353 - 11904: 0xC6E7, + 12354 - 11904: 0xC6E8, + 12355 - 11904: 0xC6E9, + 12356 - 11904: 0xC6EA, + 12357 - 11904: 0xC6EB, + 12358 - 11904: 0xC6EC, + 12359 - 11904: 0xC6ED, + 12360 - 11904: 0xC6EE, + 12361 - 11904: 0xC6EF, + 12362 - 11904: 0xC6F0, + 12363 - 11904: 0xC6F1, + 12364 - 11904: 0xC6F2, + 12365 - 11904: 0xC6F3, + 12366 - 11904: 0xC6F4, + 12367 - 11904: 0xC6F5, + 12368 - 11904: 0xC6F6, + 12369 - 11904: 0xC6F7, + 12370 - 11904: 0xC6F8, + 12371 - 11904: 0xC6F9, + 12372 - 11904: 0xC6FA, + 12373 - 11904: 0xC6FB, + 12374 - 11904: 0xC6FC, + 12375 - 11904: 0xC6FD, + 12376 - 11904: 0xC6FE, + 12377 - 11904: 0xC740, + 12378 - 11904: 0xC741, + 12379 - 11904: 0xC742, + 12380 - 11904: 0xC743, + 12381 - 11904: 0xC744, + 12382 - 11904: 0xC745, + 12383 - 11904: 0xC746, + 12384 - 11904: 0xC747, + 12385 - 11904: 0xC748, + 12386 - 11904: 0xC749, + 12387 - 11904: 0xC74A, + 12388 - 11904: 0xC74B, + 12389 - 11904: 0xC74C, + 12390 - 11904: 0xC74D, + 12391 - 11904: 0xC74E, + 12392 - 11904: 0xC74F, + 12393 - 11904: 0xC750, + 12394 - 11904: 0xC751, + 12395 - 11904: 0xC752, + 12396 - 11904: 0xC753, + 12397 - 11904: 0xC754, + 12398 - 11904: 0xC755, + 12399 - 11904: 0xC756, + 12400 - 11904: 0xC757, + 12401 - 11904: 0xC758, + 12402 - 11904: 0xC759, + 12403 - 11904: 0xC75A, + 12404 - 11904: 0xC75B, + 12405 - 11904: 0xC75C, + 12406 - 11904: 0xC75D, + 12407 - 11904: 0xC75E, + 12408 - 11904: 0xC75F, + 12409 - 11904: 0xC760, + 12410 - 11904: 0xC761, + 12411 - 11904: 0xC762, + 12412 - 11904: 0xC763, + 12413 - 11904: 0xC764, + 12414 - 11904: 0xC765, + 12415 - 11904: 0xC766, + 12416 - 11904: 0xC767, + 12417 - 11904: 0xC768, + 12418 - 11904: 0xC769, + 12419 - 11904: 0xC76A, + 12420 - 11904: 0xC76B, + 12421 - 11904: 0xC76C, + 12422 - 11904: 0xC76D, + 12423 - 11904: 0xC76E, + 12424 - 11904: 0xC76F, + 12425 - 11904: 0xC770, + 12426 - 11904: 0xC771, + 12427 - 11904: 0xC772, + 12428 - 11904: 0xC773, + 12429 - 11904: 0xC774, + 12430 - 11904: 0xC775, + 12431 - 11904: 0xC776, + 12432 - 11904: 0xC777, + 12433 - 11904: 0xC778, + 12434 - 11904: 0xC779, + 12435 - 11904: 0xC77A, + 12443 - 11904: 0xC8D4, + 12444 - 11904: 0xC8D5, + 12445 - 11904: 0xC6DC, + 12446 - 11904: 0xC6DD, + 12449 - 11904: 0xC77B, + 12450 - 11904: 0xC77C, + 12451 - 11904: 0xC77D, + 12452 - 11904: 0xC77E, + 12453 - 11904: 0xC7A1, + 12454 - 11904: 0xC7A2, + 12455 - 11904: 0xC7A3, + 12456 - 11904: 0xC7A4, + 12457 - 11904: 0xC7A5, + 12458 - 11904: 0xC7A6, + 12459 - 11904: 0xC7A7, + 12460 - 11904: 0xC7A8, + 12461 - 11904: 0xC7A9, + 12462 - 11904: 0xC7AA, + 12463 - 11904: 0xC7AB, + 12464 - 11904: 0xC7AC, + 12465 - 11904: 0xC7AD, + 12466 - 11904: 0xC7AE, + 12467 - 11904: 0xC7AF, + 12468 - 11904: 0xC7B0, + 12469 - 11904: 0xC7B1, + 12470 - 11904: 0xC7B2, + 12471 - 11904: 0xC7B3, + 12472 - 11904: 0xC7B4, + 12473 - 11904: 0xC7B5, + 12474 - 11904: 0xC7B6, + 12475 - 11904: 0xC7B7, + 12476 - 11904: 0xC7B8, + 12477 - 11904: 0xC7B9, + 12478 - 11904: 0xC7BA, + 12479 - 11904: 0xC7BB, + 12480 - 11904: 0xC7BC, + 12481 - 11904: 0xC7BD, + 12482 - 11904: 0xC7BE, + 12483 - 11904: 0xC7BF, + 12484 - 11904: 0xC7C0, + 12485 - 11904: 0xC7C1, + 12486 - 11904: 0xC7C2, + 12487 - 11904: 0xC7C3, + 12488 - 11904: 0xC7C4, + 12489 - 11904: 0xC7C5, + 12490 - 11904: 0xC7C6, + 12491 - 11904: 0xC7C7, + 12492 - 11904: 0xC7C8, + 12493 - 11904: 0xC7C9, + 12494 - 11904: 0xC7CA, + 12495 - 11904: 0xC7CB, + 12496 - 11904: 0xC7CC, + 12497 - 11904: 0xC7CD, + 12498 - 11904: 0xC7CE, + 12499 - 11904: 0xC7CF, + 12500 - 11904: 0xC7D0, + 12501 - 11904: 0xC7D1, + 12502 - 11904: 0xC7D2, + 12503 - 11904: 0xC7D3, + 12504 - 11904: 0xC7D4, + 12505 - 11904: 0xC7D5, + 12506 - 11904: 0xC7D6, + 12507 - 11904: 0xC7D7, + 12508 - 11904: 0xC7D8, + 12509 - 11904: 0xC7D9, + 12510 - 11904: 0xC7DA, + 12511 - 11904: 0xC7DB, + 12512 - 11904: 0xC7DC, + 12513 - 11904: 0xC7DD, + 12514 - 11904: 0xC7DE, + 12515 - 11904: 0xC7DF, + 12516 - 11904: 0xC7E0, + 12517 - 11904: 0xC7E1, + 12518 - 11904: 0xC7E2, + 12519 - 11904: 0xC7E3, + 12520 - 11904: 0xC7E4, + 12521 - 11904: 0xC7E5, + 12522 - 11904: 0xC7E6, + 12523 - 11904: 0xC7E7, + 12524 - 11904: 0xC7E8, + 12525 - 11904: 0xC7E9, + 12526 - 11904: 0xC7EA, + 12527 - 11904: 0xC7EB, + 12528 - 11904: 0xC7EC, + 12529 - 11904: 0xC7ED, + 12530 - 11904: 0xC7EE, + 12531 - 11904: 0xC7EF, + 12532 - 11904: 0xC7F0, + 12533 - 11904: 0xC7F1, + 12534 - 11904: 0xC7F2, + 12540 - 11904: 0xC6E3, + 12541 - 11904: 0xC6DA, + 12542 - 11904: 0xC6DB, + 12549 - 11904: 0xA374, + 12550 - 11904: 0xA375, + 12551 - 11904: 0xA376, + 12552 - 11904: 0xA377, + 12553 - 11904: 0xA378, + 12554 - 11904: 0xA379, + 12555 - 11904: 0xA37A, + 12556 - 11904: 0xA37B, + 12557 - 11904: 0xA37C, + 12558 - 11904: 0xA37D, + 12559 - 11904: 0xA37E, + 12560 - 11904: 0xA3A1, + 12561 - 11904: 0xA3A2, + 12562 - 11904: 0xA3A3, + 12563 - 11904: 0xA3A4, + 12564 - 11904: 0xA3A5, + 12565 - 11904: 0xA3A6, + 12566 - 11904: 0xA3A7, + 12567 - 11904: 0xA3A8, + 12568 - 11904: 0xA3A9, + 12569 - 11904: 0xA3AA, + 12570 - 11904: 0xA3AB, + 12571 - 11904: 0xA3AC, + 12572 - 11904: 0xA3AD, + 12573 - 11904: 0xA3AE, + 12574 - 11904: 0xA3AF, + 12575 - 11904: 0xA3B0, + 12576 - 11904: 0xA3B1, + 12577 - 11904: 0xA3B2, + 12578 - 11904: 0xA3B3, + 12579 - 11904: 0xA3B4, + 12580 - 11904: 0xA3B5, + 12581 - 11904: 0xA3B6, + 12582 - 11904: 0xA3B7, + 12583 - 11904: 0xA3B8, + 12584 - 11904: 0xA3B9, + 12585 - 11904: 0xA3BA, + 12736 - 11904: 0x8840, + 12737 - 11904: 0x8841, + 12738 - 11904: 0x8842, + 12739 - 11904: 0x8843, + 12740 - 11904: 0x8844, + 12741 - 11904: 0x8846, + 12742 - 11904: 0x8849, + 12743 - 11904: 0x884A, + 12744 - 11904: 0x884D, + 12745 - 11904: 0x884F, + 12746 - 11904: 0x8850, + 12747 - 11904: 0x8851, + 12748 - 11904: 0x8852, + 12749 - 11904: 0x8854, + 12750 - 11904: 0x8855, + 12751 - 11904: 0xC879, + 12849 - 11904: 0xC8D1, + 12963 - 11904: 0xA1C0, + 13198 - 11904: 0xA255, + 13199 - 11904: 0xA256, + 13212 - 11904: 0xA250, + 13213 - 11904: 0xA251, + 13214 - 11904: 0xA252, + 13217 - 11904: 0xA254, + 13252 - 11904: 0xA257, + 13262 - 11904: 0xA253, + 13265 - 11904: 0xA1EB, + 13266 - 11904: 0xA1EA, + 13269 - 11904: 0xA24F, + 13365 - 11904: 0x9277, + 13376 - 11904: 0x96DF, + 13386 - 11904: 0x8CF4, + 13388 - 11904: 0x89D5, + 13412 - 11904: 0x93CD, + 13427 - 11904: 0x9BDF, + 13434 - 11904: 0xFA68, + 13437 - 11904: 0x89DA, + 13438 - 11904: 0x8F59, + 13459 - 11904: 0x89DB, + 13462 - 11904: 0x8F5D, + 13477 - 11904: 0x89DC, + 13487 - 11904: 0x96F7, + 13500 - 11904: 0x8ADA, + 13505 - 11904: 0x8BDC, + 13512 - 11904: 0x97DB, + 13535 - 11904: 0x9E53, + 13540 - 11904: 0x9DAA, + 13542 - 11904: 0x87BE, + 13563 - 11904: 0x9BEA, + 13574 - 11904: 0x8A6E, + 13630 - 11904: 0x8BC8, + 13649 - 11904: 0x89E8, + 13651 - 11904: 0x89EA, + 13657 - 11904: 0x8C4B, + 13665 - 11904: 0xFB70, + 13677 - 11904: 0x89ED, + 13680 - 11904: 0x94DD, + 13682 - 11904: 0x89EE, + 13687 - 11904: 0x9EB4, + 13688 - 11904: 0x8AD3, + 13700 - 11904: 0x92DB, + 13719 - 11904: 0x94DB, + 13720 - 11904: 0x89F9, + 13729 - 11904: 0xFB7A, + 13733 - 11904: 0x89FB, + 13741 - 11904: 0x9EFC, + 13759 - 11904: 0x89FC, + 13761 - 11904: 0x89BF, + 13765 - 11904: 0x89FE, + 13767 - 11904: 0x89E6, + 13770 - 11904: 0x9D46, + 13774 - 11904: 0x9DEE, + 13778 - 11904: 0xA07E, + 13782 - 11904: 0xA068, + 13787 - 11904: 0x98E9, + 13789 - 11904: 0x8B68, + 13809 - 11904: 0x8DFD, + 13810 - 11904: 0x8BBE, + 13811 - 11904: 0x9FD9, + 13819 - 11904: 0x8AEB, + 13822 - 11904: 0x9FD7, + 13833 - 11904: 0x8B6A, + 13848 - 11904: 0x9C5C, + 13850 - 11904: 0x8BB1, + 13859 - 11904: 0xFB5E, + 13861 - 11904: 0x8770, + 13869 - 11904: 0x9DF3, + 13877 - 11904: 0xA0D0, + 13881 - 11904: 0xFC66, + 13886 - 11904: 0x92E9, + 13895 - 11904: 0x9AEC, + 13896 - 11904: 0x8FAB, + 13897 - 11904: 0xFA48, + 13902 - 11904: 0x8E45, + 13919 - 11904: 0x9C6F, + 13921 - 11904: 0x8D5C, + 13946 - 11904: 0x9EDE, + 13953 - 11904: 0x89EF, + 13978 - 11904: 0x96E9, + 13989 - 11904: 0x9EBB, + 13994 - 11904: 0x94DE, + 13996 - 11904: 0x9EB8, + 14000 - 11904: 0x97BA, + 14001 - 11904: 0xFB65, + 14005 - 11904: 0x95D6, + 14009 - 11904: 0x9CBB, + 14012 - 11904: 0x97DA, + 14017 - 11904: 0x8F45, + 14019 - 11904: 0xFB7D, + 14020 - 11904: 0x9158, + 14021 - 11904: 0xFE64, + 14023 - 11904: 0x9856, + 14024 - 11904: 0x9B4D, + 14035 - 11904: 0x935B, + 14036 - 11904: 0x95C7, + 14038 - 11904: 0x97E7, + 14045 - 11904: 0x9359, + 14049 - 11904: 0x91F5, + 14050 - 11904: 0x97B8, + 14053 - 11904: 0xFDA2, + 14054 - 11904: 0xFBB6, + 14069 - 11904: 0x92FA, + 14081 - 11904: 0x9357, + 14083 - 11904: 0x8BA6, + 14088 - 11904: 0xFBB9, + 14090 - 11904: 0x97B0, + 14093 - 11904: 0xFDC4, + 14108 - 11904: 0x9CA1, + 14114 - 11904: 0x91F2, + 14115 - 11904: 0x91F9, + 14117 - 11904: 0x8FF1, + 14124 - 11904: 0x9745, + 14125 - 11904: 0x9853, + 14128 - 11904: 0xFE78, + 14130 - 11904: 0xFBC1, + 14131 - 11904: 0x9251, + 14138 - 11904: 0x9DAD, + 14144 - 11904: 0xFD6C, + 14147 - 11904: 0xFA6B, + 14178 - 11904: 0x9BC2, + 14191 - 11904: 0x9A7B, + 14231 - 11904: 0x8B60, + 14240 - 11904: 0x934B, + 14265 - 11904: 0x9ABD, + 14270 - 11904: 0x91B7, + 14294 - 11904: 0x8D4B, + 14322 - 11904: 0x95B4, + 14328 - 11904: 0xFEC5, + 14331 - 11904: 0x9EF0, + 14351 - 11904: 0x8D64, + 14361 - 11904: 0x9269, + 14368 - 11904: 0x8D67, + 14381 - 11904: 0xFBEA, + 14390 - 11904: 0xFBEF, + 14392 - 11904: 0x8D68, + 14435 - 11904: 0x93EB, + 14453 - 11904: 0x877A, + 14496 - 11904: 0xFC42, + 14531 - 11904: 0x9166, + 14540 - 11904: 0xFACD, + 14545 - 11904: 0x93DD, + 14548 - 11904: 0x8D52, + 14586 - 11904: 0x8BCC, + 14600 - 11904: 0x8D6D, + 14612 - 11904: 0x8D6E, + 14631 - 11904: 0x96A8, + 14642 - 11904: 0xFCA6, + 14655 - 11904: 0x8D6F, + 14669 - 11904: 0x8D70, + 14691 - 11904: 0xFC64, + 14712 - 11904: 0x8CF3, + 14720 - 11904: 0x9060, + 14729 - 11904: 0x8D74, + 14730 - 11904: 0x97C3, + 14738 - 11904: 0x8AD0, + 14745 - 11904: 0x9274, + 14747 - 11904: 0x9BBE, + 14753 - 11904: 0x9CC8, + 14756 - 11904: 0x9CBA, + 14776 - 11904: 0x8D78, + 14812 - 11904: 0x9EB9, + 14818 - 11904: 0x955A, + 14821 - 11904: 0x91B4, + 14828 - 11904: 0x8A48, + 14840 - 11904: 0x8D7D, + 14843 - 11904: 0x8A7D, + 14846 - 11904: 0x8AC2, + 14849 - 11904: 0xFD4A, + 14851 - 11904: 0x8DA1, + 14854 - 11904: 0x8AD1, + 14871 - 11904: 0xFCB4, + 14872 - 11904: 0x8B47, + 14889 - 11904: 0x93A4, + 14890 - 11904: 0x9EDA, + 14900 - 11904: 0x8A51, + 14923 - 11904: 0x8DA6, + 14930 - 11904: 0x9EC5, + 14935 - 11904: 0xFCC4, + 14940 - 11904: 0xA078, + 14942 - 11904: 0x94B5, + 14950 - 11904: 0xFCC2, + 14951 - 11904: 0x8A6B, + 14999 - 11904: 0x8DAB, + 15019 - 11904: 0xFAE8, + 15037 - 11904: 0x8DAD, + 15070 - 11904: 0xFC49, + 15072 - 11904: 0x93C1, + 15088 - 11904: 0x906F, + 15090 - 11904: 0x8DB0, + 15093 - 11904: 0x87A2, + 15099 - 11904: 0x947E, + 15118 - 11904: 0x90FA, + 15129 - 11904: 0x9479, + 15138 - 11904: 0x8DB2, + 15147 - 11904: 0xFCEE, + 15161 - 11904: 0x997B, + 15170 - 11904: 0x8DB4, + 15192 - 11904: 0x8DB7, + 15200 - 11904: 0x91B3, + 15217 - 11904: 0x8DBB, + 15218 - 11904: 0x8DBA, + 15227 - 11904: 0x8DBC, + 15228 - 11904: 0x9044, + 15232 - 11904: 0xFD4C, + 15253 - 11904: 0x874B, + 15254 - 11904: 0x93E4, + 15257 - 11904: 0x93E0, + 15265 - 11904: 0xFD53, + 15292 - 11904: 0x8DC3, + 15294 - 11904: 0x9BB8, + 15298 - 11904: 0xFBF0, + 15300 - 11904: 0x93E9, + 15319 - 11904: 0x93F6, + 15325 - 11904: 0x8DC5, + 15340 - 11904: 0x8DCA, + 15346 - 11904: 0x8DCC, + 15347 - 11904: 0xFD5D, + 15348 - 11904: 0x93B5, + 15373 - 11904: 0xFD61, + 15377 - 11904: 0x9CF8, + 15381 - 11904: 0x9252, + 15384 - 11904: 0xA0E8, + 15444 - 11904: 0x9CA5, + 15499 - 11904: 0x8C56, + 15563 - 11904: 0x8DD6, + 15565 - 11904: 0x97C0, + 15569 - 11904: 0xA0DE, + 15574 - 11904: 0x97D2, + 15580 - 11904: 0xFAA5, + 15595 - 11904: 0xFDA3, + 15599 - 11904: 0x8DDB, + 15634 - 11904: 0x8CEA, + 15635 - 11904: 0x8EAF, + 15645 - 11904: 0x91B5, + 15666 - 11904: 0xFD49, + 15675 - 11904: 0xFDD1, + 15686 - 11904: 0x8DEB, + 15692 - 11904: 0x97C6, + 15694 - 11904: 0xFDCE, + 15697 - 11904: 0x90FC, + 15711 - 11904: 0xFC59, + 15714 - 11904: 0x96D6, + 15721 - 11904: 0x97C5, + 15722 - 11904: 0x8DEF, + 15727 - 11904: 0x97D7, + 15733 - 11904: 0x8DF0, + 15741 - 11904: 0x96A6, + 15749 - 11904: 0xFBBF, + 15752 - 11904: 0x8CDF, + 15754 - 11904: 0x8DF3, + 15759 - 11904: 0x9449, + 15761 - 11904: 0x8DF5, + 15781 - 11904: 0x9872, + 15789 - 11904: 0x8E6B, + 15796 - 11904: 0xFAFD, + 15807 - 11904: 0x8F50, + 15814 - 11904: 0x9DCC, + 15815 - 11904: 0xFC65, + 15817 - 11904: 0x8C44, + 15820 - 11904: 0x996E, + 15821 - 11904: 0x94A1, + 15827 - 11904: 0x8F63, + 15835 - 11904: 0xA0DA, + 15847 - 11904: 0x9253, + 15848 - 11904: 0xFDE9, + 15851 - 11904: 0x9DB5, + 15859 - 11904: 0x9879, + 15860 - 11904: 0x876A, + 15863 - 11904: 0x9D5D, + 15868 - 11904: 0x8D63, + 15869 - 11904: 0x9669, + 15878 - 11904: 0x9F70, + 15936 - 11904: 0xFC6A, + 15939 - 11904: 0x8AC7, + 15944 - 11904: 0x89D7, + 15957 - 11904: 0xFE4D, + 15988 - 11904: 0x9EDD, + 16040 - 11904: 0xFEFB, + 16041 - 11904: 0x98BC, + 16042 - 11904: 0xFACC, + 16045 - 11904: 0x95B0, + 16049 - 11904: 0x9464, + 16056 - 11904: 0x936F, + 16063 - 11904: 0x94B9, + 16066 - 11904: 0x95EC, + 16071 - 11904: 0x91EE, + 16074 - 11904: 0x98C3, + 16076 - 11904: 0x95F6, + 16080 - 11904: 0x8FFD, + 16081 - 11904: 0x98C5, + 16086 - 11904: 0x9766, + 16087 - 11904: 0xFE6E, + 16090 - 11904: 0x97DD, + 16091 - 11904: 0x8CAA, + 16094 - 11904: 0x92D2, + 16097 - 11904: 0x9761, + 16098 - 11904: 0x98CB, + 16103 - 11904: 0x95F0, + 16105 - 11904: 0x975D, + 16107 - 11904: 0x91E3, + 16108 - 11904: 0x877E, + 16112 - 11904: 0x98CC, + 16115 - 11904: 0x9469, + 16116 - 11904: 0x98CD, + 16122 - 11904: 0x98CE, + 16124 - 11904: 0x95FC, + 16127 - 11904: 0x94A3, + 16128 - 11904: 0x9662, + 16132 - 11904: 0xFEB6, + 16134 - 11904: 0x9463, + 16135 - 11904: 0x8D47, + 16142 - 11904: 0x98D0, + 16211 - 11904: 0x98D1, + 16216 - 11904: 0x9475, + 16217 - 11904: 0xFAE0, + 16227 - 11904: 0x9472, + 16252 - 11904: 0x98D6, + 16275 - 11904: 0x8AF0, + 16320 - 11904: 0x98D9, + 16328 - 11904: 0x8D5A, + 16343 - 11904: 0x98DB, + 16348 - 11904: 0x98DD, + 16357 - 11904: 0x98A8, + 16365 - 11904: 0x8A6D, + 16377 - 11904: 0x8AFB, + 16378 - 11904: 0x8AAE, + 16388 - 11904: 0xFBC9, + 16393 - 11904: 0x8C5D, + 16413 - 11904: 0x98E4, + 16441 - 11904: 0x98E6, + 16453 - 11904: 0x98E8, + 16467 - 11904: 0x8A4D, + 16471 - 11904: 0x9257, + 16482 - 11904: 0x95DF, + 16485 - 11904: 0xA0AC, + 16490 - 11904: 0x98EB, + 16495 - 11904: 0x98EC, + 16497 - 11904: 0x8CC3, + 16552 - 11904: 0x98F4, + 16564 - 11904: 0x87D9, + 16571 - 11904: 0x8AB8, + 16575 - 11904: 0x9EE7, + 16584 - 11904: 0x94BC, + 16600 - 11904: 0xFCD1, + 16607 - 11904: 0x9CC6, + 16632 - 11904: 0x8D4A, + 16634 - 11904: 0x9E7E, + 16642 - 11904: 0x8D44, + 16643 - 11904: 0x98FE, + 16644 - 11904: 0xFDE8, + 16649 - 11904: 0x9940, + 16654 - 11904: 0x94C9, + 16689 - 11904: 0x87C6, + 16690 - 11904: 0x94D3, + 16743 - 11904: 0x9946, + 16748 - 11904: 0x90C0, + 16750 - 11904: 0x94D1, + 16764 - 11904: 0x8D4E, + 16767 - 11904: 0x9573, + 16769 - 11904: 0x87CE, + 16784 - 11904: 0x93C2, + 16818 - 11904: 0x9948, + 16836 - 11904: 0x994B, + 16842 - 11904: 0x8E55, + 16847 - 11904: 0x994E, + 16859 - 11904: 0x8EFE, + 16877 - 11904: 0x8D5F, + 16879 - 11904: 0x8E59, + 16889 - 11904: 0x94EC, + 16913 - 11904: 0x94EF, + 16931 - 11904: 0x8C60, + 16960 - 11904: 0x8F74, + 16992 - 11904: 0x9955, + 17002 - 11904: 0x9544, + 17014 - 11904: 0x8CCB, + 17018 - 11904: 0x9956, + 17036 - 11904: 0x9959, + 17044 - 11904: 0x995B, + 17058 - 11904: 0x8CC4, + 17077 - 11904: 0xFA45, + 17081 - 11904: 0x90B7, + 17084 - 11904: 0x9743, + 17140 - 11904: 0x95CD, + 17147 - 11904: 0x97C9, + 17148 - 11904: 0xFD50, + 17162 - 11904: 0x87AA, + 17195 - 11904: 0x8EB9, + 17262 - 11904: 0x95C6, + 17303 - 11904: 0x9967, + 17306 - 11904: 0x8CE3, + 17338 - 11904: 0x8AB9, + 17345 - 11904: 0x8DFC, + 17369 - 11904: 0x8A76, + 17375 - 11904: 0x9D51, + 17389 - 11904: 0x9973, + 17392 - 11904: 0x8740, + 17394 - 11904: 0x9D4F, + 17409 - 11904: 0x997A, + 17410 - 11904: 0x9564, + 17427 - 11904: 0x99A1, + 17445 - 11904: 0x99A5, + 17453 - 11904: 0x99A7, + 17530 - 11904: 0x8EED, + 17551 - 11904: 0x99AD, + 17553 - 11904: 0xC87E, + 17567 - 11904: 0x946E, + 17568 - 11904: 0x8F70, + 17570 - 11904: 0xFAD0, + 17584 - 11904: 0x99B3, + 17591 - 11904: 0xA053, + 17597 - 11904: 0x8D5E, + 17600 - 11904: 0x965C, + 17603 - 11904: 0x8CE0, + 17605 - 11904: 0xFD7A, + 17614 - 11904: 0x97FE, + 17629 - 11904: 0x92BD, + 17630 - 11904: 0x8D5D, + 17631 - 11904: 0x97FD, + 17633 - 11904: 0x87DB, + 17636 - 11904: 0x8F64, + 17641 - 11904: 0xFCF7, + 17642 - 11904: 0x9562, + 17643 - 11904: 0x97CD, + 17644 - 11904: 0x9E64, + 17652 - 11904: 0x924C, + 17667 - 11904: 0x8EC9, + 17668 - 11904: 0x99BC, + 17673 - 11904: 0x9DA5, + 17675 - 11904: 0x8F54, + 17686 - 11904: 0x8F7C, + 17691 - 11904: 0x8D55, + 17693 - 11904: 0x8EA2, + 17703 - 11904: 0x8F7A, + 17710 - 11904: 0x97AE, + 17715 - 11904: 0x96C8, + 17718 - 11904: 0x8CE4, + 17723 - 11904: 0x99C3, + 17725 - 11904: 0x90D6, + 17727 - 11904: 0x9CBE, + 17731 - 11904: 0x8F76, + 17745 - 11904: 0x9470, + 17746 - 11904: 0xFB4B, + 17749 - 11904: 0xFDCA, + 17752 - 11904: 0x8CEF, + 17756 - 11904: 0x8EC7, + 17761 - 11904: 0x8D54, + 17762 - 11904: 0xA0F9, + 17770 - 11904: 0x8FA9, + 17773 - 11904: 0x8D51, + 17783 - 11904: 0x99C7, + 17784 - 11904: 0x8744, + 17797 - 11904: 0x90D7, + 17830 - 11904: 0x8743, + 17843 - 11904: 0x8747, + 17882 - 11904: 0x8758, + 17897 - 11904: 0x9EDF, + 17898 - 11904: 0x8D59, + 17923 - 11904: 0x8742, + 17926 - 11904: 0x99CE, + 17935 - 11904: 0x8FBA, + 17941 - 11904: 0x8FEB, + 17943 - 11904: 0x99CF, + 18011 - 11904: 0x8FC2, + 18042 - 11904: 0x92C9, + 18048 - 11904: 0x97DC, + 18081 - 11904: 0x875D, + 18094 - 11904: 0x87CC, + 18107 - 11904: 0x8D45, + 18127 - 11904: 0x95B3, + 18128 - 11904: 0x9C79, + 18165 - 11904: 0x95B2, + 18167 - 11904: 0x8D4C, + 18195 - 11904: 0x8FDB, + 18200 - 11904: 0x9BE3, + 18230 - 11904: 0x874C, + 18244 - 11904: 0x874D, + 18254 - 11904: 0x9E7A, + 18255 - 11904: 0x8757, + 18300 - 11904: 0x9BEE, + 18328 - 11904: 0x99DE, + 18342 - 11904: 0xFAFA, + 18389 - 11904: 0x8A52, + 18413 - 11904: 0x99E1, + 18420 - 11904: 0x8A67, + 18432 - 11904: 0x8BB5, + 18443 - 11904: 0x8AAC, + 18487 - 11904: 0x99E9, + 18525 - 11904: 0xFBCA, + 18545 - 11904: 0x97DE, + 18587 - 11904: 0x95D1, + 18605 - 11904: 0x99F5, + 18606 - 11904: 0xFC4A, + 18640 - 11904: 0x9BA9, + 18653 - 11904: 0xFBDC, + 18669 - 11904: 0xFE56, + 18675 - 11904: 0x9EA4, + 18682 - 11904: 0x9D49, + 18694 - 11904: 0x95DB, + 18705 - 11904: 0x89C5, + 18718 - 11904: 0x99F8, + 18725 - 11904: 0x9664, + 18730 - 11904: 0x9055, + 18733 - 11904: 0x96D4, + 18735 - 11904: 0x87C4, + 18736 - 11904: 0x87AE, + 18741 - 11904: 0x977C, + 18748 - 11904: 0x964D, + 18750 - 11904: 0x97E1, + 18757 - 11904: 0x9A48, + 18769 - 11904: 0x9A49, + 18771 - 11904: 0xFE7D, + 18789 - 11904: 0x90AA, + 18794 - 11904: 0x9A50, + 18802 - 11904: 0x9347, + 18825 - 11904: 0x8ED8, + 18849 - 11904: 0x90C9, + 18855 - 11904: 0x9A55, + 18911 - 11904: 0x90BC, + 18917 - 11904: 0x9A58, + 18919 - 11904: 0x8BB8, + 18959 - 11904: 0x90D5, + 18973 - 11904: 0x9641, + 18980 - 11904: 0x9A5A, + 18997 - 11904: 0x9A5C, + 19094 - 11904: 0x97C2, + 19108 - 11904: 0x875C, + 19124 - 11904: 0x8ABB, + 19128 - 11904: 0x9BAA, + 19153 - 11904: 0x90F5, + 19172 - 11904: 0x9A60, + 19199 - 11904: 0x9145, + 19216 - 11904: 0x8C58, + 19225 - 11904: 0x9A63, + 19232 - 11904: 0x8C49, + 19244 - 11904: 0x8BB6, + 19255 - 11904: 0xFCCF, + 19311 - 11904: 0x966B, + 19312 - 11904: 0x9A6E, + 19314 - 11904: 0x914F, + 19323 - 11904: 0x9746, + 19326 - 11904: 0xA0E6, + 19342 - 11904: 0x92D7, + 19344 - 11904: 0x9675, + 19347 - 11904: 0x93D4, + 19350 - 11904: 0x91BB, + 19351 - 11904: 0x9679, + 19357 - 11904: 0x9A70, + 19389 - 11904: 0x9678, + 19390 - 11904: 0x91CD, + 19392 - 11904: 0x9C4A, + 19460 - 11904: 0xA06F, + 19463 - 11904: 0xA06A, + 19470 - 11904: 0x915F, + 19506 - 11904: 0x8741, + 19515 - 11904: 0x9FA5, + 19518 - 11904: 0x89BA, + 19520 - 11904: 0x874F, + 19527 - 11904: 0x874E, + 19543 - 11904: 0x8755, + 19547 - 11904: 0x9ECD, + 19565 - 11904: 0x9A79, + 19575 - 11904: 0x8CF2, + 19579 - 11904: 0x8D57, + 19581 - 11904: 0x9DCE, + 19585 - 11904: 0x8CD2, + 19589 - 11904: 0x8759, + 19620 - 11904: 0x9D73, + 19630 - 11904: 0x96B9, + 19632 - 11904: 0x96BC, + 19639 - 11904: 0x9CD1, + 19661 - 11904: 0x89B7, + 19681 - 11904: 0x9EEE, + 19682 - 11904: 0x8749, + 19693 - 11904: 0xFB43, + 19719 - 11904: 0x875B, + 19721 - 11904: 0x9EC9, + 19728 - 11904: 0xFBD3, + 19764 - 11904: 0x91AE, + 19830 - 11904: 0x8D58, + 19831 - 11904: 0x8746, + 19849 - 11904: 0x8D56, + 19857 - 11904: 0x9D78, + 19868 - 11904: 0x9D7B, + 19968 - 11904: 0xA440, + 19969 - 11904: 0xA442, + 19971 - 11904: 0xA443, + 19972 - 11904: 0x9EB3, + 19975 - 11904: 0xC945, + 19976 - 11904: 0xA456, + 19977 - 11904: 0xA454, + 19978 - 11904: 0xA457, + 19979 - 11904: 0xA455, + 19980 - 11904: 0xC946, + 19981 - 11904: 0xA4A3, + 19982 - 11904: 0xC94F, + 19983 - 11904: 0xC94D, + 19984 - 11904: 0xA4A2, + 19985 - 11904: 0xA4A1, + 19988 - 11904: 0xA542, + 19989 - 11904: 0xA541, + 19990 - 11904: 0xA540, + 19992 - 11904: 0xA543, + 19993 - 11904: 0xA4FE, + 19994 - 11904: 0x9EB2, + 19996 - 11904: 0x9DD6, + 19998 - 11904: 0xA5E0, + 19999 - 11904: 0xA5E1, + 20001 - 11904: 0x994F, + 20004 - 11904: 0x89CE, + 20006 - 11904: 0xA8C3, + 20008 - 11904: 0x8BC0, + 20010 - 11904: 0x9FC4, + 20011 - 11904: 0xA458, + 20012 - 11904: 0x8BD4, + 20013 - 11904: 0xA4A4, + 20014 - 11904: 0xC950, + 20015 - 11904: 0x8C72, + 20016 - 11904: 0xA4A5, + 20017 - 11904: 0xC963, + 20018 - 11904: 0xA6EA, + 20019 - 11904: 0xCBB1, + 20022 - 11904: 0xC6BF, + 20023 - 11904: 0x8BF9, + 20024 - 11904: 0xA459, + 20025 - 11904: 0xA4A6, + 20027 - 11904: 0xA544, + 20028 - 11904: 0xC964, + 20029 - 11904: 0x8946, + 20031 - 11904: 0xC6C0, + 20034 - 11904: 0xC940, + 20035 - 11904: 0xA444, + 20037 - 11904: 0xA45B, + 20039 - 11904: 0xC947, + 20040 - 11904: 0xA45C, + 20041 - 11904: 0xFAE5, + 20043 - 11904: 0xA4A7, + 20045 - 11904: 0xA545, + 20046 - 11904: 0xA547, + 20047 - 11904: 0xA546, + 20050 - 11904: 0xA5E2, + 20051 - 11904: 0xA5E3, + 20054 - 11904: 0xA8C4, + 20056 - 11904: 0xADBC, + 20057 - 11904: 0xA441, + 20058 - 11904: 0xC87B, + 20059 - 11904: 0x8BC6, + 20060 - 11904: 0xC941, + 20061 - 11904: 0xA445, + 20062 - 11904: 0xA45E, + 20063 - 11904: 0xA45D, + 20073 - 11904: 0xA5E4, + 20074 - 11904: 0x9C57, + 20083 - 11904: 0xA8C5, + 20088 - 11904: 0x9AFB, + 20094 - 11904: 0xB0AE, + 20095 - 11904: 0xD44B, + 20096 - 11904: 0x89D0, + 20097 - 11904: 0x89CF, + 20098 - 11904: 0xB6C3, + 20099 - 11904: 0xDCB1, + 20100 - 11904: 0xDCB2, + 20101 - 11904: 0xC6C1, + 20102 - 11904: 0xA446, + 20103 - 11904: 0x89D1, + 20104 - 11904: 0xA4A9, + 20105 - 11904: 0x89E2, + 20107 - 11904: 0xA8C6, + 20108 - 11904: 0xA447, + 20109 - 11904: 0xC948, + 20110 - 11904: 0xA45F, + 20113 - 11904: 0xA4AA, + 20114 - 11904: 0xA4AC, + 20115 - 11904: 0xC951, + 20116 - 11904: 0xA4AD, + 20117 - 11904: 0xA4AB, + 20120 - 11904: 0x927E, + 20121 - 11904: 0xA5E5, + 20122 - 11904: 0x9DBA, + 20123 - 11904: 0xA8C7, + 20126 - 11904: 0xA8C8, + 20127 - 11904: 0xAB45, + 20128 - 11904: 0xC6C2, + 20129 - 11904: 0xA460, + 20130 - 11904: 0xA4AE, + 20131 - 11904: 0x8C6F, + 20132 - 11904: 0xA5E6, + 20133 - 11904: 0xA5E8, + 20134 - 11904: 0xA5E7, + 20136 - 11904: 0xA6EB, + 20139 - 11904: 0xA8C9, + 20140 - 11904: 0xA8CA, + 20141 - 11904: 0xAB46, + 20142 - 11904: 0xAB47, + 20147 - 11904: 0xADBD, + 20150 - 11904: 0xDCB3, + 20151 - 11904: 0xFBF8, + 20153 - 11904: 0xF6D6, + 20154 - 11904: 0xA448, + 20155 - 11904: 0x8BC7, + 20156 - 11904: 0x926B, + 20159 - 11904: 0x89D2, + 20160 - 11904: 0xA4B0, + 20161 - 11904: 0xA4AF, + 20162 - 11904: 0xC952, + 20163 - 11904: 0xA4B1, + 20164 - 11904: 0xA4B7, + 20166 - 11904: 0xA4B2, + 20167 - 11904: 0xA4B3, + 20168 - 11904: 0xC954, + 20169 - 11904: 0xC953, + 20170 - 11904: 0xA4B5, + 20171 - 11904: 0xA4B6, + 20173 - 11904: 0xA4B4, + 20174 - 11904: 0x9FCF, + 20180 - 11904: 0xA54A, + 20181 - 11904: 0xA54B, + 20182 - 11904: 0xA54C, + 20183 - 11904: 0xA54D, + 20184 - 11904: 0xA549, + 20185 - 11904: 0xA550, + 20186 - 11904: 0xC96A, + 20188 - 11904: 0xC966, + 20189 - 11904: 0xC969, + 20190 - 11904: 0xA551, + 20191 - 11904: 0xA561, + 20193 - 11904: 0xC968, + 20195 - 11904: 0xA54E, + 20196 - 11904: 0xA54F, + 20197 - 11904: 0xA548, + 20200 - 11904: 0xC965, + 20201 - 11904: 0xC967, + 20202 - 11904: 0x9DA9, + 20203 - 11904: 0x89D3, + 20206 - 11904: 0x99E2, + 20208 - 11904: 0xA5F5, + 20209 - 11904: 0xC9B0, + 20210 - 11904: 0xA5F2, + 20211 - 11904: 0xA5F6, + 20212 - 11904: 0xC9BA, + 20213 - 11904: 0xC9AE, + 20214 - 11904: 0xA5F3, + 20215 - 11904: 0xC9B2, + 20216 - 11904: 0x9267, + 20219 - 11904: 0xA5F4, + 20221 - 11904: 0xA5F7, + 20223 - 11904: 0xA5E9, + 20224 - 11904: 0xC9B1, + 20225 - 11904: 0xA5F8, + 20226 - 11904: 0xC9B5, + 20227 - 11904: 0x92A4, + 20228 - 11904: 0xC9B9, + 20229 - 11904: 0xC9B6, + 20232 - 11904: 0xC9B3, + 20233 - 11904: 0xA5EA, + 20234 - 11904: 0xA5EC, + 20235 - 11904: 0xA5F9, + 20237 - 11904: 0xA5EE, + 20238 - 11904: 0xC9AB, + 20239 - 11904: 0xA5F1, + 20240 - 11904: 0xA5EF, + 20241 - 11904: 0xA5F0, + 20242 - 11904: 0xC9BB, + 20243 - 11904: 0xC9B8, + 20244 - 11904: 0xC9AF, + 20245 - 11904: 0xA5ED, + 20247 - 11904: 0x8C73, + 20248 - 11904: 0xC9AC, + 20249 - 11904: 0xA5EB, + 20250 - 11904: 0x894E, + 20253 - 11904: 0xC9B4, + 20258 - 11904: 0xC9B7, + 20264 - 11904: 0x894F, + 20265 - 11904: 0x9278, + 20268 - 11904: 0xC9AD, + 20269 - 11904: 0xCA66, + 20271 - 11904: 0xA742, + 20272 - 11904: 0xA6F4, + 20274 - 11904: 0x91B6, + 20275 - 11904: 0xCA67, + 20276 - 11904: 0xA6F1, + 20278 - 11904: 0xA744, + 20279 - 11904: 0x89D4, + 20280 - 11904: 0xA6F9, + 20281 - 11904: 0x9FD2, + 20282 - 11904: 0xA6F8, + 20283 - 11904: 0xCA5B, + 20284 - 11904: 0xA6FC, + 20285 - 11904: 0xA6F7, + 20286 - 11904: 0xCA60, + 20287 - 11904: 0xCA68, + 20289 - 11904: 0xCA64, + 20290 - 11904: 0x92A7, + 20291 - 11904: 0xA6FA, + 20293 - 11904: 0x95A2, + 20294 - 11904: 0xA6FD, + 20295 - 11904: 0xA6EE, + 20296 - 11904: 0xA747, + 20297 - 11904: 0xCA5D, + 20299 - 11904: 0x926E, + 20300 - 11904: 0xCBBD, + 20301 - 11904: 0xA6EC, + 20302 - 11904: 0xA743, + 20303 - 11904: 0xA6ED, + 20304 - 11904: 0xA6F5, + 20305 - 11904: 0xA6F6, + 20306 - 11904: 0xCA62, + 20307 - 11904: 0xCA5E, + 20308 - 11904: 0xA6FB, + 20309 - 11904: 0xA6F3, + 20310 - 11904: 0xCA5A, + 20311 - 11904: 0xA6EF, + 20312 - 11904: 0xCA65, + 20313 - 11904: 0xA745, + 20314 - 11904: 0xA748, + 20315 - 11904: 0xA6F2, + 20316 - 11904: 0xA740, + 20317 - 11904: 0xA746, + 20318 - 11904: 0xA6F0, + 20319 - 11904: 0xCA63, + 20320 - 11904: 0xA741, + 20321 - 11904: 0xCA69, + 20322 - 11904: 0xCA5C, + 20323 - 11904: 0xA6FE, + 20324 - 11904: 0xCA5F, + 20327 - 11904: 0xCA61, + 20329 - 11904: 0xA8D8, + 20330 - 11904: 0xCBBF, + 20331 - 11904: 0xCBCB, + 20332 - 11904: 0xA8D0, + 20334 - 11904: 0xCBCC, + 20335 - 11904: 0xA8CB, + 20336 - 11904: 0xA8D5, + 20338 - 11904: 0x96EA, + 20339 - 11904: 0xA8CE, + 20340 - 11904: 0xCBB9, + 20341 - 11904: 0xA8D6, + 20342 - 11904: 0xCBB8, + 20343 - 11904: 0xCBBC, + 20344 - 11904: 0xCBC3, + 20345 - 11904: 0xCBC1, + 20346 - 11904: 0xA8DE, + 20347 - 11904: 0xA8D9, + 20348 - 11904: 0xCBB3, + 20349 - 11904: 0xCBB5, + 20350 - 11904: 0xA8DB, + 20351 - 11904: 0xA8CF, + 20352 - 11904: 0xCBB6, + 20353 - 11904: 0xCBC2, + 20354 - 11904: 0xCBC9, + 20355 - 11904: 0xA8D4, + 20356 - 11904: 0xCBBB, + 20357 - 11904: 0xCBB4, + 20358 - 11904: 0xA8D3, + 20359 - 11904: 0xCBB7, + 20360 - 11904: 0xA8D7, + 20361 - 11904: 0xCBBA, + 20362 - 11904: 0x926F, + 20363 - 11904: 0xA8D2, + 20365 - 11904: 0xA8CD, + 20367 - 11904: 0xA8DC, + 20368 - 11904: 0xCBC4, + 20369 - 11904: 0xA8DD, + 20370 - 11904: 0xCBC8, + 20372 - 11904: 0xCBC6, + 20373 - 11904: 0xCBCA, + 20374 - 11904: 0xA8DA, + 20375 - 11904: 0xCBBE, + 20376 - 11904: 0xCBB2, + 20378 - 11904: 0xCBC0, + 20379 - 11904: 0xA8D1, + 20380 - 11904: 0xCBC5, + 20381 - 11904: 0xA8CC, + 20382 - 11904: 0xCBC7, + 20386 - 11904: 0x92A3, + 20392 - 11904: 0x8950, + 20395 - 11904: 0xFA57, + 20398 - 11904: 0xAB56, + 20399 - 11904: 0xAB4A, + 20400 - 11904: 0x9866, + 20402 - 11904: 0xCDE0, + 20403 - 11904: 0xCDE8, + 20404 - 11904: 0x8CF8, + 20405 - 11904: 0xAB49, + 20406 - 11904: 0xAB51, + 20407 - 11904: 0xAB5D, + 20409 - 11904: 0xCDEE, + 20410 - 11904: 0xCDEC, + 20411 - 11904: 0xCDE7, + 20413 - 11904: 0x89D6, + 20415 - 11904: 0xAB4B, + 20416 - 11904: 0xCDED, + 20417 - 11904: 0xCDE3, + 20418 - 11904: 0xAB59, + 20419 - 11904: 0xAB50, + 20420 - 11904: 0xAB58, + 20421 - 11904: 0xCDDE, + 20423 - 11904: 0xCDEA, + 20424 - 11904: 0x98B2, + 20425 - 11904: 0xCDE1, + 20426 - 11904: 0xAB54, + 20427 - 11904: 0xCDE2, + 20428 - 11904: 0x92AB, + 20429 - 11904: 0xCDDD, + 20430 - 11904: 0xAB5B, + 20431 - 11904: 0xAB4E, + 20432 - 11904: 0xAB57, + 20433 - 11904: 0xAB4D, + 20435 - 11904: 0xCDDF, + 20436 - 11904: 0xCDE4, + 20438 - 11904: 0xCDEB, + 20439 - 11904: 0xAB55, + 20440 - 11904: 0xAB52, + 20441 - 11904: 0xCDE6, + 20442 - 11904: 0xAB5A, + 20443 - 11904: 0xCDE9, + 20444 - 11904: 0xCDE5, + 20445 - 11904: 0xAB4F, + 20446 - 11904: 0xAB5C, + 20447 - 11904: 0xAB53, + 20448 - 11904: 0xAB4C, + 20449 - 11904: 0xAB48, + 20452 - 11904: 0x96DE, + 20453 - 11904: 0x92AC, + 20460 - 11904: 0xCDEF, + 20462 - 11904: 0xADD7, + 20463 - 11904: 0xADC1, + 20464 - 11904: 0x8C70, + 20465 - 11904: 0xADD1, + 20466 - 11904: 0x9F6E, + 20467 - 11904: 0xADD6, + 20468 - 11904: 0xD0D0, + 20469 - 11904: 0xD0CF, + 20470 - 11904: 0xD0D4, + 20471 - 11904: 0xD0D5, + 20472 - 11904: 0xADC4, + 20473 - 11904: 0x8EF2, + 20474 - 11904: 0xADCD, + 20477 - 11904: 0x9F6C, + 20478 - 11904: 0xADDA, + 20480 - 11904: 0xADCE, + 20483 - 11904: 0x89D8, + 20485 - 11904: 0xD0C9, + 20486 - 11904: 0xADC7, + 20487 - 11904: 0xD0CA, + 20488 - 11904: 0xFA59, + 20489 - 11904: 0xADDC, + 20491 - 11904: 0xADD3, + 20492 - 11904: 0xADBE, + 20493 - 11904: 0xADBF, + 20494 - 11904: 0xD0DD, + 20495 - 11904: 0xB0BF, + 20497 - 11904: 0xADCC, + 20498 - 11904: 0xADCB, + 20499 - 11904: 0xD0CB, + 20500 - 11904: 0xADCF, + 20501 - 11904: 0xD45B, + 20502 - 11904: 0xADC6, + 20503 - 11904: 0xD0D6, + 20504 - 11904: 0xADD5, + 20505 - 11904: 0xADD4, + 20506 - 11904: 0xADCA, + 20507 - 11904: 0xD0CE, + 20508 - 11904: 0xD0D7, + 20510 - 11904: 0xD0C8, + 20511 - 11904: 0xADC9, + 20512 - 11904: 0xD0D8, + 20513 - 11904: 0xADD2, + 20514 - 11904: 0xD0CC, + 20515 - 11904: 0xADC0, + 20517 - 11904: 0xADC3, + 20518 - 11904: 0xADC2, + 20519 - 11904: 0xD0D9, + 20520 - 11904: 0xADD0, + 20521 - 11904: 0xFA5F, + 20522 - 11904: 0xADD9, + 20523 - 11904: 0xADDB, + 20524 - 11904: 0xD0D3, + 20525 - 11904: 0xADD8, + 20526 - 11904: 0x92A8, + 20527 - 11904: 0xD0DB, + 20528 - 11904: 0xD0CD, + 20529 - 11904: 0xD0DC, + 20531 - 11904: 0xD0D1, + 20532 - 11904: 0x9163, + 20533 - 11904: 0xD0DA, + 20535 - 11904: 0xD0D2, + 20539 - 11904: 0x8C40, + 20540 - 11904: 0xADC8, + 20544 - 11904: 0xD463, + 20545 - 11904: 0xD457, + 20547 - 11904: 0xB0B3, + 20549 - 11904: 0xD45C, + 20550 - 11904: 0xD462, + 20551 - 11904: 0xB0B2, + 20552 - 11904: 0xD455, + 20553 - 11904: 0xB0B6, + 20554 - 11904: 0xD459, + 20555 - 11904: 0xD452, + 20556 - 11904: 0xB0B4, + 20557 - 11904: 0xD456, + 20558 - 11904: 0xB0B9, + 20559 - 11904: 0xB0BE, + 20561 - 11904: 0xD467, + 20563 - 11904: 0xD451, + 20565 - 11904: 0xB0BA, + 20566 - 11904: 0x9F73, + 20567 - 11904: 0xD466, + 20568 - 11904: 0x92AD, + 20570 - 11904: 0xB0B5, + 20571 - 11904: 0xD458, + 20572 - 11904: 0xB0B1, + 20573 - 11904: 0xD453, + 20574 - 11904: 0xD44F, + 20575 - 11904: 0xD45D, + 20576 - 11904: 0xD450, + 20577 - 11904: 0xD44E, + 20578 - 11904: 0xD45A, + 20579 - 11904: 0xD460, + 20580 - 11904: 0xD461, + 20581 - 11904: 0xB0B7, + 20582 - 11904: 0x9BE9, + 20584 - 11904: 0xD85B, + 20585 - 11904: 0xD45E, + 20586 - 11904: 0xD44D, + 20587 - 11904: 0xD45F, + 20588 - 11904: 0x92A9, + 20589 - 11904: 0xB0C1, + 20590 - 11904: 0xD464, + 20591 - 11904: 0xB0C0, + 20592 - 11904: 0xD44C, + 20594 - 11904: 0xD454, + 20595 - 11904: 0xD465, + 20596 - 11904: 0xB0BC, + 20597 - 11904: 0xB0BB, + 20598 - 11904: 0xB0B8, + 20599 - 11904: 0xB0BD, + 20602 - 11904: 0xB0AF, + 20605 - 11904: 0xFA66, + 20608 - 11904: 0xB3C8, + 20609 - 11904: 0x92AA, + 20610 - 11904: 0xD85E, + 20611 - 11904: 0xD857, + 20613 - 11904: 0xB3C5, + 20615 - 11904: 0xD85F, + 20616 - 11904: 0x89D9, + 20619 - 11904: 0xD855, + 20620 - 11904: 0xD858, + 20621 - 11904: 0xB3C4, + 20622 - 11904: 0xD859, + 20624 - 11904: 0xFD56, + 20625 - 11904: 0xB3C7, + 20626 - 11904: 0xD85D, + 20628 - 11904: 0xD853, + 20629 - 11904: 0xD852, + 20630 - 11904: 0xB3C9, + 20632 - 11904: 0xB3CA, + 20633 - 11904: 0xB3C6, + 20634 - 11904: 0xB3CB, + 20635 - 11904: 0xD851, + 20636 - 11904: 0xD85C, + 20637 - 11904: 0xD85A, + 20638 - 11904: 0xD854, + 20642 - 11904: 0xB3C3, + 20643 - 11904: 0xD856, + 20646 - 11904: 0x9FA8, + 20652 - 11904: 0xB6CA, + 20653 - 11904: 0xB6C4, + 20654 - 11904: 0xDCB7, + 20655 - 11904: 0xB6CD, + 20656 - 11904: 0xDCBD, + 20657 - 11904: 0xDCC0, + 20658 - 11904: 0xB6C6, + 20659 - 11904: 0xB6C7, + 20660 - 11904: 0xDCBA, + 20661 - 11904: 0xB6C5, + 20662 - 11904: 0xDCC3, + 20663 - 11904: 0xB6CB, + 20664 - 11904: 0xDCC4, + 20666 - 11904: 0xDCBF, + 20667 - 11904: 0xB6CC, + 20668 - 11904: 0x8C71, + 20669 - 11904: 0xDCB4, + 20670 - 11904: 0xB6C9, + 20671 - 11904: 0xDCB5, + 20673 - 11904: 0xDCBE, + 20674 - 11904: 0xDCBC, + 20676 - 11904: 0xDCB8, + 20677 - 11904: 0xB6C8, + 20678 - 11904: 0xDCB6, + 20679 - 11904: 0xB6CE, + 20680 - 11904: 0xDCBB, + 20681 - 11904: 0xDCC2, + 20682 - 11904: 0xDCB9, + 20683 - 11904: 0xDCC1, + 20685 - 11904: 0x92A1, + 20686 - 11904: 0xB9B6, + 20687 - 11904: 0xB9B3, + 20688 - 11904: 0x90E3, + 20689 - 11904: 0xB9B4, + 20691 - 11904: 0xE0F9, + 20692 - 11904: 0xE0F1, + 20693 - 11904: 0xB9B2, + 20694 - 11904: 0xB9AF, + 20695 - 11904: 0xE0F2, + 20697 - 11904: 0xA0A6, + 20698 - 11904: 0xB9B1, + 20699 - 11904: 0xE0F5, + 20701 - 11904: 0xE0F7, + 20703 - 11904: 0x94AB, + 20704 - 11904: 0xE0FE, + 20705 - 11904: 0xFC72, + 20707 - 11904: 0xE0FD, + 20708 - 11904: 0xE0F8, + 20709 - 11904: 0xB9AE, + 20710 - 11904: 0xE0F0, + 20711 - 11904: 0xB9AC, + 20712 - 11904: 0xE0F3, + 20713 - 11904: 0xB9B7, + 20714 - 11904: 0xE0F6, + 20716 - 11904: 0xE0FA, + 20717 - 11904: 0xB9B0, + 20718 - 11904: 0xB9AD, + 20719 - 11904: 0xE0FC, + 20720 - 11904: 0xE0FB, + 20721 - 11904: 0xB9B5, + 20723 - 11904: 0xE0F4, + 20724 - 11904: 0x97C4, + 20725 - 11904: 0xBBF8, + 20726 - 11904: 0xE4EC, + 20728 - 11904: 0xE4E9, + 20729 - 11904: 0xBBF9, + 20731 - 11904: 0xBBF7, + 20732 - 11904: 0x92AE, + 20733 - 11904: 0xE4F0, + 20734 - 11904: 0xE4ED, + 20735 - 11904: 0xE4E6, + 20736 - 11904: 0xBBF6, + 20737 - 11904: 0xFA67, + 20738 - 11904: 0xBBFA, + 20739 - 11904: 0xE4E7, + 20740 - 11904: 0xBBF5, + 20741 - 11904: 0xBBFD, + 20742 - 11904: 0xE4EA, + 20743 - 11904: 0xE4EB, + 20744 - 11904: 0xBBFB, + 20745 - 11904: 0xBBFC, + 20746 - 11904: 0xE4F1, + 20747 - 11904: 0xE4EE, + 20748 - 11904: 0xE4EF, + 20749 - 11904: 0x92A2, + 20750 - 11904: 0xFA69, + 20752 - 11904: 0xBEAA, + 20753 - 11904: 0xE8F8, + 20754 - 11904: 0xBEA7, + 20755 - 11904: 0xE8F5, + 20756 - 11904: 0xBEA9, + 20757 - 11904: 0xBEAB, + 20759 - 11904: 0xE8F6, + 20760 - 11904: 0xBEA8, + 20762 - 11904: 0xE8F7, + 20764 - 11904: 0xE8F4, + 20767 - 11904: 0xC076, + 20768 - 11904: 0xECBD, + 20769 - 11904: 0xC077, + 20770 - 11904: 0xECBB, + 20772 - 11904: 0xECBC, + 20773 - 11904: 0xECBA, + 20774 - 11904: 0xECB9, + 20777 - 11904: 0xECBE, + 20778 - 11904: 0xC075, + 20779 - 11904: 0x9268, + 20781 - 11904: 0xEFB8, + 20782 - 11904: 0xEFB9, + 20784 - 11904: 0xE4E8, + 20785 - 11904: 0xEFB7, + 20786 - 11904: 0xC078, + 20787 - 11904: 0xC35F, + 20788 - 11904: 0xF1EB, + 20789 - 11904: 0xF1EC, + 20791 - 11904: 0xC4D7, + 20792 - 11904: 0xC4D8, + 20793 - 11904: 0xF5C1, + 20794 - 11904: 0xF5C0, + 20795 - 11904: 0xC56C, + 20796 - 11904: 0xC56B, + 20797 - 11904: 0xF7D0, + 20799 - 11904: 0xA449, + 20800 - 11904: 0xA461, + 20801 - 11904: 0xA4B9, + 20803 - 11904: 0xA4B8, + 20804 - 11904: 0xA553, + 20805 - 11904: 0xA552, + 20806 - 11904: 0xA5FC, + 20807 - 11904: 0xA5FB, + 20808 - 11904: 0xA5FD, + 20809 - 11904: 0xA5FA, + 20811 - 11904: 0xA74A, + 20812 - 11904: 0xA749, + 20813 - 11904: 0xA74B, + 20818 - 11904: 0xA8E0, + 20820 - 11904: 0xA8DF, + 20821 - 11904: 0xA8E1, + 20822 - 11904: 0x8951, + 20823 - 11904: 0xAB5E, + 20825 - 11904: 0xA259, + 20826 - 11904: 0xD0DE, + 20827 - 11904: 0xA25A, + 20828 - 11904: 0xB0C2, + 20829 - 11904: 0xA25C, + 20830 - 11904: 0xA25B, + 20831 - 11904: 0xD860, + 20832 - 11904: 0xFA6F, + 20833 - 11904: 0xA25D, + 20834 - 11904: 0xB9B8, + 20835 - 11904: 0xA25E, + 20837 - 11904: 0xA44A, + 20839 - 11904: 0xA4BA, + 20840 - 11904: 0xA5FE, + 20841 - 11904: 0xA8E2, + 20842 - 11904: 0xFA71, + 20843 - 11904: 0xA44B, + 20844 - 11904: 0xA4BD, + 20845 - 11904: 0xA4BB, + 20846 - 11904: 0xA4BC, + 20849 - 11904: 0xA640, + 20852 - 11904: 0x8952, + 20853 - 11904: 0xA74C, + 20854 - 11904: 0xA8E4, + 20855 - 11904: 0xA8E3, + 20856 - 11904: 0xA8E5, + 20857 - 11904: 0x945A, + 20860 - 11904: 0xADDD, + 20864 - 11904: 0xBEAC, + 20866 - 11904: 0xC6C3, + 20870 - 11904: 0x89DD, + 20871 - 11904: 0xC94E, + 20872 - 11904: 0xC8A2, + 20873 - 11904: 0xA554, + 20874 - 11904: 0xA555, + 20877 - 11904: 0xA641, + 20879 - 11904: 0xCA6A, + 20881 - 11904: 0xAB60, + 20882 - 11904: 0xAB5F, + 20883 - 11904: 0xD0E0, + 20884 - 11904: 0xD0DF, + 20885 - 11904: 0xB0C3, + 20886 - 11904: 0xC6C4, + 20887 - 11904: 0xA4BE, + 20888 - 11904: 0xC955, + 20890 - 11904: 0x9E52, + 20892 - 11904: 0x8953, + 20894 - 11904: 0xCBCD, + 20896 - 11904: 0xAB61, + 20898 - 11904: 0xADE0, + 20900 - 11904: 0xADDE, + 20901 - 11904: 0xADDF, + 20903 - 11904: 0x9E55, + 20904 - 11904: 0x92BA, + 20906 - 11904: 0xBEAD, + 20907 - 11904: 0xC6C5, + 20908 - 11904: 0xA556, + 20910 - 11904: 0x8C5B, + 20912 - 11904: 0xA642, + 20913 - 11904: 0xC9BC, + 20914 - 11904: 0xFA7D, + 20915 - 11904: 0xFAA8, + 20916 - 11904: 0x9A68, + 20917 - 11904: 0xFA47, + 20918 - 11904: 0xA74D, + 20919 - 11904: 0xA74E, + 20920 - 11904: 0xFA7E, + 20921 - 11904: 0xCA6B, + 20924 - 11904: 0xCBCE, + 20925 - 11904: 0xA8E6, + 20926 - 11904: 0xCBCF, + 20931 - 11904: 0x92BB, + 20932 - 11904: 0xD0E2, + 20933 - 11904: 0xD0E3, + 20934 - 11904: 0xADE3, + 20935 - 11904: 0xFDB6, + 20936 - 11904: 0xD0E4, + 20937 - 11904: 0xFAA2, + 20938 - 11904: 0xD0E1, + 20939 - 11904: 0xADE4, + 20940 - 11904: 0xADE2, + 20941 - 11904: 0xADE1, + 20942 - 11904: 0xD0E5, + 20943 - 11904: 0xFAA3, + 20944 - 11904: 0xD468, + 20945 - 11904: 0xFAA4, + 20946 - 11904: 0x9BB4, + 20947 - 11904: 0xFAA6, + 20948 - 11904: 0xD861, + 20951 - 11904: 0xDCC5, + 20952 - 11904: 0xE140, + 20955 - 11904: 0x89DF, + 20956 - 11904: 0xBBFE, + 20957 - 11904: 0xBEAE, + 20958 - 11904: 0xE8F9, + 20959 - 11904: 0xFDDB, + 20960 - 11904: 0xA44C, + 20961 - 11904: 0xA45A, + 20962 - 11904: 0xFAA9, + 20964 - 11904: 0x8954, + 20973 - 11904: 0xFAAB, + 20976 - 11904: 0xB0C4, + 20977 - 11904: 0xB3CD, + 20979 - 11904: 0xB9B9, + 20980 - 11904: 0xFC7A, + 20981 - 11904: 0xC942, + 20982 - 11904: 0xA4BF, + 20984 - 11904: 0xA559, + 20985 - 11904: 0xA557, + 20986 - 11904: 0xA558, + 20988 - 11904: 0x89E0, + 20989 - 11904: 0xA8E7, + 20990 - 11904: 0x9F4F, + 20992 - 11904: 0xA44D, + 20993 - 11904: 0xA44E, + 20994 - 11904: 0xC87D, + 20995 - 11904: 0xA462, + 20997 - 11904: 0x89E1, + 20998 - 11904: 0xA4C0, + 20999 - 11904: 0xA4C1, + 21000 - 11904: 0xA4C2, + 21001 - 11904: 0xC9BE, + 21002 - 11904: 0xA55A, + 21003 - 11904: 0xFAB0, + 21004 - 11904: 0xC96B, + 21006 - 11904: 0xA646, + 21008 - 11904: 0xC9BF, + 21009 - 11904: 0xA644, + 21010 - 11904: 0xA645, + 21011 - 11904: 0xC9BD, + 21014 - 11904: 0xA647, + 21015 - 11904: 0xA643, + 21020 - 11904: 0xCA6C, + 21021 - 11904: 0xAAEC, + 21022 - 11904: 0xCA6D, + 21023 - 11904: 0x9FCD, + 21024 - 11904: 0xA0E7, + 21025 - 11904: 0xCA6E, + 21028 - 11904: 0xA750, + 21029 - 11904: 0xA74F, + 21030 - 11904: 0xFAB1, + 21031 - 11904: 0x89A6, + 21032 - 11904: 0xA753, + 21033 - 11904: 0xA751, + 21034 - 11904: 0xA752, + 21038 - 11904: 0xA8ED, + 21040 - 11904: 0xA8EC, + 21041 - 11904: 0xCBD4, + 21042 - 11904: 0xCBD1, + 21043 - 11904: 0xCBD2, + 21044 - 11904: 0x9EFA, + 21045 - 11904: 0xCBD0, + 21046 - 11904: 0xA8EE, + 21047 - 11904: 0xA8EA, + 21048 - 11904: 0xA8E9, + 21050 - 11904: 0xA8EB, + 21051 - 11904: 0xA8E8, + 21052 - 11904: 0xFAB2, + 21057 - 11904: 0xA8EF, + 21059 - 11904: 0xAB63, + 21060 - 11904: 0xCDF0, + 21062 - 11904: 0xCBD3, + 21063 - 11904: 0xAB68, + 21065 - 11904: 0xCDF1, + 21066 - 11904: 0xAB64, + 21067 - 11904: 0xAB67, + 21068 - 11904: 0xAB66, + 21069 - 11904: 0xAB65, + 21070 - 11904: 0xAB62, + 21071 - 11904: 0x87BC, + 21074 - 11904: 0xD0E8, + 21076 - 11904: 0xADE7, + 21077 - 11904: 0xD0EB, + 21078 - 11904: 0xADE5, + 21079 - 11904: 0xFAB4, + 21081 - 11904: 0x92C4, + 21082 - 11904: 0xD0E7, + 21083 - 11904: 0xADE8, + 21084 - 11904: 0xADE6, + 21085 - 11904: 0xADE9, + 21086 - 11904: 0xD0E9, + 21087 - 11904: 0xD0EA, + 21088 - 11904: 0x9F6F, + 21089 - 11904: 0xD0E6, + 21090 - 11904: 0xD0EC, + 21096 - 11904: 0x8BB0, + 21097 - 11904: 0xB3D1, + 21098 - 11904: 0xB0C5, + 21099 - 11904: 0xD469, + 21100 - 11904: 0xD46B, + 21101 - 11904: 0xD46A, + 21102 - 11904: 0xD46C, + 21103 - 11904: 0xB0C6, + 21106 - 11904: 0xB3CE, + 21107 - 11904: 0x9FAC, + 21108 - 11904: 0xB3CF, + 21109 - 11904: 0xB3D0, + 21111 - 11904: 0xB6D0, + 21112 - 11904: 0xDCC7, + 21113 - 11904: 0x89E3, + 21114 - 11904: 0xDCC6, + 21115 - 11904: 0xDCC8, + 21116 - 11904: 0xDCC9, + 21117 - 11904: 0xB6D1, + 21119 - 11904: 0xB6CF, + 21120 - 11904: 0xE141, + 21121 - 11904: 0xE142, + 21122 - 11904: 0xB9BB, + 21123 - 11904: 0xB9BA, + 21124 - 11904: 0xE35A, + 21127 - 11904: 0xBC40, + 21128 - 11904: 0xBC41, + 21129 - 11904: 0xBC42, + 21130 - 11904: 0xBC44, + 21131 - 11904: 0xE4F2, + 21132 - 11904: 0xE4F3, + 21133 - 11904: 0xBC43, + 21135 - 11904: 0x9BD3, + 21136 - 11904: 0x89E4, + 21137 - 11904: 0xBEAF, + 21139 - 11904: 0xBEB0, + 21140 - 11904: 0xFAB5, + 21142 - 11904: 0xF1ED, + 21143 - 11904: 0xF5C3, + 21144 - 11904: 0xF5C2, + 21145 - 11904: 0xF7D1, + 21146 - 11904: 0x9FD5, + 21147 - 11904: 0xA44F, + 21151 - 11904: 0xA55C, + 21152 - 11904: 0xA55B, + 21153 - 11904: 0x8955, + 21155 - 11904: 0xA648, + 21156 - 11904: 0x92C5, + 21158 - 11904: 0xC9C0, + 21160 - 11904: 0x8956, + 21161 - 11904: 0xA755, + 21162 - 11904: 0xA756, + 21163 - 11904: 0xA754, + 21164 - 11904: 0xA757, + 21165 - 11904: 0xCA6F, + 21166 - 11904: 0xCA70, + 21173 - 11904: 0xFAB3, + 21177 - 11904: 0xFAB6, + 21179 - 11904: 0xA8F1, + 21180 - 11904: 0xCBD5, + 21182 - 11904: 0xA8F0, + 21184 - 11904: 0xCDF2, + 21185 - 11904: 0xAB6C, + 21186 - 11904: 0xCDF3, + 21187 - 11904: 0xAB6B, + 21189 - 11904: 0xFAB7, + 21191 - 11904: 0xAB69, + 21193 - 11904: 0xAB6A, + 21196 - 11904: 0x9EDC, + 21197 - 11904: 0xD0ED, + 21200 - 11904: 0xFBC4, + 21201 - 11904: 0x9F71, + 21202 - 11904: 0xB0C7, + 21203 - 11904: 0xD46E, + 21205 - 11904: 0xB0CA, + 21206 - 11904: 0xD46D, + 21207 - 11904: 0xB1E5, + 21208 - 11904: 0xB0C9, + 21209 - 11904: 0xB0C8, + 21211 - 11904: 0xB3D4, + 21213 - 11904: 0xB3D3, + 21214 - 11904: 0xB3D2, + 21215 - 11904: 0xB6D2, + 21216 - 11904: 0xFABA, + 21217 - 11904: 0x92C7, + 21218 - 11904: 0xB6D5, + 21219 - 11904: 0xB6D6, + 21220 - 11904: 0xB6D4, + 21222 - 11904: 0xB6D3, + 21225 - 11904: 0xE143, + 21227 - 11904: 0xE144, + 21231 - 11904: 0xE4F5, + 21232 - 11904: 0xBC45, + 21233 - 11904: 0xE4F4, + 21235 - 11904: 0xBEB1, + 21236 - 11904: 0xECBF, + 21237 - 11904: 0xC079, + 21239 - 11904: 0xF1EE, + 21240 - 11904: 0xC455, + 21241 - 11904: 0xC6C6, + 21242 - 11904: 0xA463, + 21243 - 11904: 0xA4C3, + 21244 - 11904: 0xC956, + 21246 - 11904: 0xA4C4, + 21247 - 11904: 0xA4C5, + 21249 - 11904: 0x9A4C, + 21253 - 11904: 0xFABD, + 21254 - 11904: 0xA55E, + 21256 - 11904: 0xA649, + 21257 - 11904: 0xCA71, + 21258 - 11904: 0xCBD6, + 21259 - 11904: 0xCBD7, + 21261 - 11904: 0xAB6D, + 21262 - 11904: 0xD0EE, + 21263 - 11904: 0xB0CC, + 21264 - 11904: 0xB0CB, + 21265 - 11904: 0xD863, + 21266 - 11904: 0xD862, + 21269 - 11904: 0xA450, + 21270 - 11904: 0xA4C6, + 21271 - 11904: 0xA55F, + 21273 - 11904: 0xB0CD, + 21274 - 11904: 0xC943, + 21276 - 11904: 0xC96C, + 21277 - 11904: 0xA560, + 21279 - 11904: 0xC9C2, + 21280 - 11904: 0xA64B, + 21281 - 11904: 0xA64A, + 21282 - 11904: 0xC9C1, + 21283 - 11904: 0xA758, + 21284 - 11904: 0x8C68, + 21287 - 11904: 0x89E5, + 21290 - 11904: 0xADEA, + 21292 - 11904: 0x9F7D, + 21293 - 11904: 0xD46F, + 21295 - 11904: 0xB6D7, + 21296 - 11904: 0xE145, + 21297 - 11904: 0xB9BC, + 21298 - 11904: 0xA0A9, + 21299 - 11904: 0xFAC4, + 21300 - 11904: 0xE8FA, + 21303 - 11904: 0xF3FD, + 21304 - 11904: 0xC6C7, + 21305 - 11904: 0xA4C7, + 21307 - 11904: 0x8957, + 21308 - 11904: 0xCBD8, + 21309 - 11904: 0xCDF4, + 21310 - 11904: 0xB0D0, + 21311 - 11904: 0xB0CE, + 21312 - 11904: 0xB0CF, + 21313 - 11904: 0xA451, + 21314 - 11904: 0xFAAA, + 21315 - 11904: 0xA464, + 21316 - 11904: 0xFAC5, + 21317 - 11904: 0xA4CA, + 21319 - 11904: 0xA4C9, + 21320 - 11904: 0xA4C8, + 21321 - 11904: 0xA563, + 21322 - 11904: 0xA562, + 21324 - 11904: 0xC96D, + 21325 - 11904: 0xC9C3, + 21326 - 11904: 0x8958, + 21329 - 11904: 0xA8F5, + 21330 - 11904: 0xA8F2, + 21331 - 11904: 0xA8F4, + 21332 - 11904: 0xA8F3, + 21335 - 11904: 0xAB6E, + 21338 - 11904: 0xB3D5, + 21340 - 11904: 0xA452, + 21341 - 11904: 0x8BE3, + 21342 - 11904: 0xA4CB, + 21343 - 11904: 0x8B61, + 21344 - 11904: 0xA565, + 21345 - 11904: 0xA564, + 21347 - 11904: 0xCA72, + 21348 - 11904: 0x9AF1, + 21350 - 11904: 0xA8F6, + 21351 - 11904: 0x9EB7, + 21353 - 11904: 0xC6C8, + 21356 - 11904: 0xC957, + 21357 - 11904: 0xFAD1, + 21358 - 11904: 0xA567, + 21359 - 11904: 0xA566, + 21360 - 11904: 0xA64C, + 21361 - 11904: 0xA64D, + 21362 - 11904: 0xCA73, + 21363 - 11904: 0xA759, + 21364 - 11904: 0xFAD2, + 21365 - 11904: 0xA75A, + 21367 - 11904: 0xA8F7, + 21368 - 11904: 0xA8F8, + 21369 - 11904: 0xA8F9, + 21371 - 11904: 0xAB6F, + 21372 - 11904: 0xCDF5, + 21373 - 11904: 0x9EBA, + 21374 - 11904: 0xFAD4, + 21375 - 11904: 0xFAD5, + 21378 - 11904: 0xC944, + 21380 - 11904: 0xA4CC, + 21386 - 11904: 0xC9C4, + 21390 - 11904: 0xCA74, + 21391 - 11904: 0xCA75, + 21394 - 11904: 0xCBD9, + 21395 - 11904: 0xFAD9, + 21396 - 11904: 0xCBDA, + 21398 - 11904: 0xCDF7, + 21399 - 11904: 0xCDF6, + 21400 - 11904: 0xCDF9, + 21401 - 11904: 0xCDF8, + 21402 - 11904: 0xAB70, + 21404 - 11904: 0xD470, + 21405 - 11904: 0xADED, + 21406 - 11904: 0xD0EF, + 21407 - 11904: 0xADEC, + 21408 - 11904: 0xFADB, + 21410 - 11904: 0x9CE0, + 21412 - 11904: 0xD864, + 21413 - 11904: 0xB3D6, + 21414 - 11904: 0xFBF7, + 21415 - 11904: 0xD865, + 21416 - 11904: 0xFBFA, + 21417 - 11904: 0x89E7, + 21418 - 11904: 0xA07A, + 21419 - 11904: 0xFADC, + 21420 - 11904: 0xE146, + 21421 - 11904: 0xB9BD, + 21422 - 11904: 0xFADD, + 21424 - 11904: 0x89E9, + 21426 - 11904: 0xBC46, + 21428 - 11904: 0xF1EF, + 21430 - 11904: 0xC6C9, + 21433 - 11904: 0xC958, + 21435 - 11904: 0xA568, + 21441 - 11904: 0xFAE2, + 21442 - 11904: 0x89EB, + 21443 - 11904: 0xB0D1, + 21445 - 11904: 0xFAE3, + 21448 - 11904: 0xA453, + 21449 - 11904: 0xA465, + 21450 - 11904: 0xA4CE, + 21451 - 11904: 0xA4CD, + 21452 - 11904: 0x90C8, + 21453 - 11904: 0xA4CF, + 21456 - 11904: 0x92DA, + 21457 - 11904: 0x8959, + 21458 - 11904: 0x9CF5, + 21460 - 11904: 0xA8FB, + 21462 - 11904: 0xA8FA, + 21463 - 11904: 0xA8FC, + 21464 - 11904: 0x895A, + 21465 - 11904: 0xFAE7, + 21466 - 11904: 0x9FA2, + 21467 - 11904: 0xAB71, + 21471 - 11904: 0xADEE, + 21472 - 11904: 0xFAEA, + 21473 - 11904: 0xE8FB, + 21474 - 11904: 0xC24F, + 21475 - 11904: 0xA466, + 21476 - 11904: 0xA56A, + 21477 - 11904: 0xA579, + 21478 - 11904: 0xA574, + 21480 - 11904: 0xA56F, + 21481 - 11904: 0xA56E, + 21482 - 11904: 0xA575, + 21483 - 11904: 0xA573, + 21484 - 11904: 0xA56C, + 21485 - 11904: 0xA57A, + 21486 - 11904: 0xA56D, + 21487 - 11904: 0xA569, + 21488 - 11904: 0xA578, + 21489 - 11904: 0xA577, + 21490 - 11904: 0xA576, + 21491 - 11904: 0xA56B, + 21493 - 11904: 0xA572, + 21494 - 11904: 0xFAED, + 21495 - 11904: 0x8FAD, + 21496 - 11904: 0xA571, + 21499 - 11904: 0xA57B, + 21500 - 11904: 0xA570, + 21502 - 11904: 0xFB59, + 21505 - 11904: 0xA653, + 21507 - 11904: 0xA659, + 21508 - 11904: 0xA655, + 21510 - 11904: 0xA65B, + 21511 - 11904: 0xC9C5, + 21512 - 11904: 0xA658, + 21513 - 11904: 0xA64E, + 21514 - 11904: 0xA651, + 21515 - 11904: 0xA654, + 21516 - 11904: 0xA650, + 21517 - 11904: 0xA657, + 21518 - 11904: 0xA65A, + 21519 - 11904: 0xA64F, + 21520 - 11904: 0xA652, + 21521 - 11904: 0xA656, + 21522 - 11904: 0xA65C, + 21523 - 11904: 0xFAEF, + 21524 - 11904: 0x96EF, + 21526 - 11904: 0x9DEC, + 21528 - 11904: 0xCA7E, + 21529 - 11904: 0xCA7B, + 21530 - 11904: 0x9DCA, + 21531 - 11904: 0xA767, + 21532 - 11904: 0xCA7C, + 21533 - 11904: 0xA75B, + 21534 - 11904: 0xA75D, + 21535 - 11904: 0xA775, + 21536 - 11904: 0xA770, + 21537 - 11904: 0xFD6D, + 21539 - 11904: 0x89EC, + 21540 - 11904: 0xCAA5, + 21541 - 11904: 0xCA7D, + 21542 - 11904: 0xA75F, + 21543 - 11904: 0xA761, + 21544 - 11904: 0xCAA4, + 21545 - 11904: 0xA768, + 21546 - 11904: 0xCA78, + 21547 - 11904: 0xA774, + 21548 - 11904: 0xA776, + 21549 - 11904: 0xA75C, + 21550 - 11904: 0xA76D, + 21551 - 11904: 0xFB44, + 21552 - 11904: 0xCA76, + 21553 - 11904: 0xA773, + 21554 - 11904: 0x9DE2, + 21555 - 11904: 0xA764, + 21556 - 11904: 0x8C75, + 21557 - 11904: 0xA76E, + 21558 - 11904: 0xA76F, + 21559 - 11904: 0xCA77, + 21560 - 11904: 0xA76C, + 21561 - 11904: 0xA76A, + 21563 - 11904: 0xA76B, + 21564 - 11904: 0xA771, + 21565 - 11904: 0xCAA1, + 21566 - 11904: 0xA75E, + 21568 - 11904: 0xA772, + 21569 - 11904: 0xCAA3, + 21570 - 11904: 0xA766, + 21571 - 11904: 0xA763, + 21573 - 11904: 0xCA7A, + 21574 - 11904: 0xA762, + 21575 - 11904: 0xCAA6, + 21576 - 11904: 0xA765, + 21578 - 11904: 0xA769, + 21579 - 11904: 0x9EC0, + 21580 - 11904: 0x87C5, + 21581 - 11904: 0x9E56, + 21582 - 11904: 0xA760, + 21583 - 11904: 0xCAA2, + 21588 - 11904: 0xCA79, + 21600 - 11904: 0xCBEB, + 21601 - 11904: 0xCBEA, + 21602 - 11904: 0xA94F, + 21603 - 11904: 0xCBED, + 21604 - 11904: 0xCBEF, + 21605 - 11904: 0xCBE4, + 21606 - 11904: 0xCBE7, + 21607 - 11904: 0xCBEE, + 21608 - 11904: 0xA950, + 21609 - 11904: 0x9F79, + 21610 - 11904: 0x9AC7, + 21611 - 11904: 0xCBE1, + 21612 - 11904: 0xCBE5, + 21613 - 11904: 0xFAF4, + 21615 - 11904: 0xCBE9, + 21616 - 11904: 0xCE49, + 21617 - 11904: 0xA94B, + 21618 - 11904: 0xCE4D, + 21619 - 11904: 0xA8FD, + 21620 - 11904: 0xCBE6, + 21621 - 11904: 0xA8FE, + 21622 - 11904: 0xA94C, + 21623 - 11904: 0xA945, + 21624 - 11904: 0xA941, + 21626 - 11904: 0xCBE2, + 21627 - 11904: 0xA944, + 21628 - 11904: 0xA949, + 21629 - 11904: 0xA952, + 21630 - 11904: 0xCBE3, + 21631 - 11904: 0xCBDC, + 21632 - 11904: 0xA943, + 21633 - 11904: 0xCBDD, + 21634 - 11904: 0xCBDF, + 21636 - 11904: 0xA946, + 21637 - 11904: 0x98A1, + 21638 - 11904: 0xA948, + 21639 - 11904: 0xCBDB, + 21640 - 11904: 0xCBE0, + 21643 - 11904: 0xA951, + 21644 - 11904: 0xA94D, + 21645 - 11904: 0xCBE8, + 21646 - 11904: 0xA953, + 21647 - 11904: 0xFAF8, + 21648 - 11904: 0xA94A, + 21649 - 11904: 0xCBDE, + 21650 - 11904: 0xA947, + 21651 - 11904: 0x89F0, + 21652 - 11904: 0x9E47, + 21653 - 11904: 0xA942, + 21654 - 11904: 0xA940, + 21655 - 11904: 0x9DF7, + 21656 - 11904: 0xCBEC, + 21658 - 11904: 0xA94E, + 21660 - 11904: 0x9FD3, + 21662 - 11904: 0x9ACA, + 21664 - 11904: 0xCE48, + 21665 - 11904: 0xCDFB, + 21666 - 11904: 0xCE4B, + 21667 - 11904: 0x89F1, + 21668 - 11904: 0xFAF9, + 21669 - 11904: 0xCDFD, + 21670 - 11904: 0xAB78, + 21671 - 11904: 0xABA8, + 21672 - 11904: 0xAB74, + 21673 - 11904: 0xABA7, + 21674 - 11904: 0xAB7D, + 21675 - 11904: 0xABA4, + 21676 - 11904: 0xAB72, + 21677 - 11904: 0xCDFC, + 21678 - 11904: 0xCE43, + 21679 - 11904: 0xABA3, + 21680 - 11904: 0xCE4F, + 21681 - 11904: 0xABA5, + 21682 - 11904: 0x8E5A, + 21683 - 11904: 0xAB79, + 21684 - 11904: 0x89F2, + 21686 - 11904: 0xCE45, + 21687 - 11904: 0xCE42, + 21688 - 11904: 0xAB77, + 21689 - 11904: 0x89F3, + 21690 - 11904: 0xCDFA, + 21691 - 11904: 0xABA6, + 21692 - 11904: 0xCE4A, + 21693 - 11904: 0xAB7C, + 21694 - 11904: 0xCE4C, + 21695 - 11904: 0xABA9, + 21696 - 11904: 0xAB73, + 21697 - 11904: 0xAB7E, + 21698 - 11904: 0xAB7B, + 21699 - 11904: 0xCE40, + 21700 - 11904: 0xABA1, + 21701 - 11904: 0xCE46, + 21702 - 11904: 0xCE47, + 21703 - 11904: 0xAB7A, + 21704 - 11904: 0xABA2, + 21705 - 11904: 0xAB76, + 21707 - 11904: 0x925D, + 21708 - 11904: 0x8B51, + 21709 - 11904: 0x92E0, + 21710 - 11904: 0xAB75, + 21711 - 11904: 0xCDFE, + 21712 - 11904: 0x89F4, + 21718 - 11904: 0xCE44, + 21722 - 11904: 0x9FD4, + 21726 - 11904: 0xCE4E, + 21728 - 11904: 0xD144, + 21729 - 11904: 0xADFB, + 21730 - 11904: 0xD0F1, + 21731 - 11904: 0x8A79, + 21732 - 11904: 0xD0F6, + 21733 - 11904: 0xADF4, + 21734 - 11904: 0xAE40, + 21735 - 11904: 0xD0F4, + 21736 - 11904: 0xADEF, + 21737 - 11904: 0xADF9, + 21738 - 11904: 0xADFE, + 21739 - 11904: 0xD0FB, + 21741 - 11904: 0xADFA, + 21742 - 11904: 0xADFD, + 21743 - 11904: 0x89F5, + 21745 - 11904: 0xD0FE, + 21746 - 11904: 0xADF5, + 21747 - 11904: 0xD0F5, + 21751 - 11904: 0xD142, + 21752 - 11904: 0xD143, + 21754 - 11904: 0xADF7, + 21755 - 11904: 0xD141, + 21756 - 11904: 0xADF3, + 21757 - 11904: 0xAE43, + 21759 - 11904: 0xD0F8, + 21761 - 11904: 0xADF1, + 21762 - 11904: 0x97A7, + 21763 - 11904: 0xD146, + 21764 - 11904: 0xD0F9, + 21765 - 11904: 0xD0FD, + 21766 - 11904: 0xADF6, + 21767 - 11904: 0xAE42, + 21768 - 11904: 0xD0FA, + 21769 - 11904: 0xADFC, + 21770 - 11904: 0xD140, + 21771 - 11904: 0xD147, + 21772 - 11904: 0xD4A1, + 21773 - 11904: 0x93BA, + 21774 - 11904: 0xD145, + 21775 - 11904: 0xAE44, + 21776 - 11904: 0xADF0, + 21777 - 11904: 0xD0FC, + 21778 - 11904: 0xD0F3, + 21779 - 11904: 0x9E58, + 21780 - 11904: 0xADF8, + 21783 - 11904: 0xD0F2, + 21784 - 11904: 0x89F6, + 21786 - 11904: 0xD0F7, + 21790 - 11904: 0x9E57, + 21795 - 11904: 0x89F7, + 21797 - 11904: 0x8A41, + 21798 - 11904: 0xD0F0, + 21799 - 11904: 0xAE41, + 21800 - 11904: 0x89F8, + 21802 - 11904: 0xD477, + 21803 - 11904: 0xFAF1, + 21804 - 11904: 0xB0E4, + 21805 - 11904: 0xD4A7, + 21806 - 11904: 0xB0E2, + 21807 - 11904: 0xB0DF, + 21808 - 11904: 0xD47C, + 21809 - 11904: 0xB0DB, + 21810 - 11904: 0xD4A2, + 21811 - 11904: 0xB0E6, + 21812 - 11904: 0xD476, + 21813 - 11904: 0xD47B, + 21814 - 11904: 0xD47A, + 21815 - 11904: 0xADF2, + 21816 - 11904: 0xB0E1, + 21817 - 11904: 0xD4A5, + 21819 - 11904: 0xD4A8, + 21820 - 11904: 0xD473, + 21822 - 11904: 0xB3E8, + 21823 - 11904: 0x89FA, + 21824 - 11904: 0xD4A9, + 21825 - 11904: 0xB0E7, + 21827 - 11904: 0xB0D9, + 21828 - 11904: 0xB0D6, + 21829 - 11904: 0xD47E, + 21830 - 11904: 0xB0D3, + 21831 - 11904: 0xFB42, + 21832 - 11904: 0xD4A6, + 21833 - 11904: 0xFABF, + 21834 - 11904: 0xB0DA, + 21835 - 11904: 0xD4AA, + 21837 - 11904: 0xD474, + 21838 - 11904: 0xD4A4, + 21839 - 11904: 0xB0DD, + 21840 - 11904: 0xD475, + 21841 - 11904: 0xD478, + 21842 - 11904: 0xD47D, + 21843 - 11904: 0xFBA3, + 21845 - 11904: 0xB0DE, + 21846 - 11904: 0xB0DC, + 21847 - 11904: 0xB0E8, + 21852 - 11904: 0xB0E3, + 21853 - 11904: 0xFAF7, + 21854 - 11904: 0xB0D7, + 21855 - 11904: 0xB1D2, + 21857 - 11904: 0xB0D8, + 21858 - 11904: 0xD479, + 21859 - 11904: 0xB0E5, + 21860 - 11904: 0xB0E0, + 21861 - 11904: 0xD4A3, + 21862 - 11904: 0xB0D5, + 21865 - 11904: 0x9E4E, + 21866 - 11904: 0xB0D4, + 21867 - 11904: 0x94DC, + 21873 - 11904: 0x95DA, + 21874 - 11904: 0x9DF8, + 21875 - 11904: 0x9F6A, + 21877 - 11904: 0xD471, + 21878 - 11904: 0xD472, + 21879 - 11904: 0xD86A, + 21881 - 11904: 0x8AB7, + 21883 - 11904: 0xB3D7, + 21884 - 11904: 0xB3DA, + 21885 - 11904: 0xD875, + 21886 - 11904: 0xB3EE, + 21887 - 11904: 0xD878, + 21888 - 11904: 0xB3D8, + 21889 - 11904: 0xD871, + 21890 - 11904: 0xB3DE, + 21891 - 11904: 0xB3E4, + 21892 - 11904: 0xB5BD, + 21894 - 11904: 0xFB46, + 21895 - 11904: 0xB3E2, + 21896 - 11904: 0xD86E, + 21897 - 11904: 0xB3EF, + 21898 - 11904: 0xB3DB, + 21899 - 11904: 0xB3E3, + 21900 - 11904: 0xD876, + 21901 - 11904: 0xDCD7, + 21902 - 11904: 0xD87B, + 21903 - 11904: 0xD86F, + 21904 - 11904: 0x8A46, + 21905 - 11904: 0xD866, + 21906 - 11904: 0xD873, + 21907 - 11904: 0xD86D, + 21908 - 11904: 0xB3E1, + 21909 - 11904: 0xD879, + 21912 - 11904: 0xB3DD, + 21913 - 11904: 0xB3F1, + 21914 - 11904: 0xB3EA, + 21916 - 11904: 0xB3DF, + 21917 - 11904: 0xB3DC, + 21919 - 11904: 0xB3E7, + 21921 - 11904: 0xD87A, + 21922 - 11904: 0xD86C, + 21923 - 11904: 0xD872, + 21924 - 11904: 0xD874, + 21925 - 11904: 0xD868, + 21926 - 11904: 0xD877, + 21927 - 11904: 0xB3D9, + 21928 - 11904: 0xD867, + 21929 - 11904: 0xFB47, + 21930 - 11904: 0xB3E0, + 21931 - 11904: 0xB3F0, + 21932 - 11904: 0xB3EC, + 21933 - 11904: 0xD869, + 21934 - 11904: 0xB3E6, + 21936 - 11904: 0x9148, + 21937 - 11904: 0xB3ED, + 21938 - 11904: 0xB3E9, + 21939 - 11904: 0xB3E5, + 21940 - 11904: 0x92DE, + 21941 - 11904: 0xD870, + 21945 - 11904: 0x8B53, + 21946 - 11904: 0x9DF6, + 21947 - 11904: 0xB3EB, + 21948 - 11904: 0x9BDA, + 21951 - 11904: 0xDCD5, + 21952 - 11904: 0xDCD1, + 21953 - 11904: 0x9D7E, + 21954 - 11904: 0xDCE0, + 21955 - 11904: 0xDCCA, + 21956 - 11904: 0xDCD3, + 21957 - 11904: 0xB6E5, + 21958 - 11904: 0xB6E6, + 21959 - 11904: 0xB6DE, + 21960 - 11904: 0xDCDC, + 21961 - 11904: 0xB6E8, + 21962 - 11904: 0xDCCF, + 21963 - 11904: 0xDCCE, + 21964 - 11904: 0xDCCC, + 21965 - 11904: 0xDCDE, + 21966 - 11904: 0xB6DC, + 21967 - 11904: 0xDCD8, + 21968 - 11904: 0xDCCD, + 21969 - 11904: 0xB6DF, + 21970 - 11904: 0xDCD6, + 21971 - 11904: 0xB6DA, + 21972 - 11904: 0xDCD2, + 21973 - 11904: 0xDCD9, + 21974 - 11904: 0xDCDB, + 21975 - 11904: 0x89FD, + 21976 - 11904: 0x99E4, + 21977 - 11904: 0xDCDF, + 21978 - 11904: 0xB6E3, + 21979 - 11904: 0xDCCB, + 21980 - 11904: 0xB6DD, + 21981 - 11904: 0xDCD0, + 21982 - 11904: 0x9E43, + 21983 - 11904: 0xB6D8, + 21985 - 11904: 0xB6E4, + 21986 - 11904: 0xDCDA, + 21987 - 11904: 0xB6E0, + 21988 - 11904: 0xB6E1, + 21989 - 11904: 0xB6E7, + 21990 - 11904: 0xB6DB, + 21991 - 11904: 0xA25F, + 21992 - 11904: 0xB6D9, + 21993 - 11904: 0xDCD4, + 21994 - 11904: 0x9DE9, + 21996 - 11904: 0x8F52, + 21999 - 11904: 0xB6E2, + 22000 - 11904: 0x9DF5, + 22001 - 11904: 0x9DF0, + 22002 - 11904: 0xDCDD, + 22005 - 11904: 0x99E7, + 22006 - 11904: 0xB9CD, + 22007 - 11904: 0xB9C8, + 22009 - 11904: 0xE155, + 22010 - 11904: 0xE151, + 22011 - 11904: 0x8BBD, + 22012 - 11904: 0xE14B, + 22013 - 11904: 0xB9C2, + 22014 - 11904: 0xB9BE, + 22015 - 11904: 0xE154, + 22016 - 11904: 0xB9BF, + 22017 - 11904: 0xE14E, + 22018 - 11904: 0xE150, + 22020 - 11904: 0xE153, + 22021 - 11904: 0xFB48, + 22022 - 11904: 0xB9C4, + 22024 - 11904: 0xB9CB, + 22025 - 11904: 0xB9C5, + 22028 - 11904: 0xE149, + 22029 - 11904: 0xB9C6, + 22030 - 11904: 0xB9C7, + 22031 - 11904: 0xE14C, + 22032 - 11904: 0xB9CC, + 22033 - 11904: 0x9FB7, + 22034 - 11904: 0xE14A, + 22035 - 11904: 0xE14F, + 22036 - 11904: 0xB9C3, + 22037 - 11904: 0xE148, + 22038 - 11904: 0xB9C9, + 22039 - 11904: 0xB9C1, + 22043 - 11904: 0xB9C0, + 22044 - 11904: 0xE14D, + 22045 - 11904: 0xE152, + 22046 - 11904: 0x9DD0, + 22047 - 11904: 0xB9CA, + 22048 - 11904: 0x9FEB, + 22049 - 11904: 0x8DA9, + 22050 - 11904: 0x9DCF, + 22051 - 11904: 0x98E1, + 22053 - 11904: 0x9DE5, + 22055 - 11904: 0xE147, + 22057 - 11904: 0xBC4D, + 22058 - 11904: 0xE547, + 22060 - 11904: 0xE544, + 22061 - 11904: 0x9DC8, + 22062 - 11904: 0xBC47, + 22063 - 11904: 0xBC53, + 22064 - 11904: 0xBC54, + 22066 - 11904: 0xBC4A, + 22067 - 11904: 0xE542, + 22068 - 11904: 0xBC4C, + 22069 - 11904: 0xE4F9, + 22070 - 11904: 0xBC52, + 22071 - 11904: 0xFB4F, + 22072 - 11904: 0xE546, + 22073 - 11904: 0xBC49, + 22074 - 11904: 0xE548, + 22075 - 11904: 0xBC48, + 22077 - 11904: 0xE543, + 22078 - 11904: 0xE545, + 22079 - 11904: 0xBC4B, + 22080 - 11904: 0xE541, + 22081 - 11904: 0xE4FA, + 22082 - 11904: 0xE4F7, + 22083 - 11904: 0x9DEB, + 22085 - 11904: 0xD86B, + 22086 - 11904: 0xE4FD, + 22088 - 11904: 0xE4F6, + 22089 - 11904: 0xE4FC, + 22090 - 11904: 0xE4FB, + 22092 - 11904: 0xE4F8, + 22093 - 11904: 0xFB54, + 22094 - 11904: 0xBC4F, + 22095 - 11904: 0xFB55, + 22096 - 11904: 0x9AA2, + 22098 - 11904: 0x8AD6, + 22099 - 11904: 0xBC4E, + 22100 - 11904: 0x9A5F, + 22103 - 11904: 0xBC50, + 22104 - 11904: 0xE4FE, + 22105 - 11904: 0xBEB2, + 22106 - 11904: 0xE540, + 22109 - 11904: 0x9EF5, + 22110 - 11904: 0xE945, + 22112 - 11904: 0xE8FD, + 22113 - 11904: 0x8FB7, + 22114 - 11904: 0xBEBE, + 22115 - 11904: 0xE942, + 22116 - 11904: 0xBEB6, + 22117 - 11904: 0xBEBA, + 22118 - 11904: 0xE941, + 22120 - 11904: 0xBEB9, + 22121 - 11904: 0xBEB5, + 22122 - 11904: 0xBEB8, + 22123 - 11904: 0xBEB3, + 22124 - 11904: 0xBEBD, + 22125 - 11904: 0xE943, + 22126 - 11904: 0xE8FE, + 22127 - 11904: 0xBEBC, + 22128 - 11904: 0xE8FC, + 22129 - 11904: 0xBEBB, + 22130 - 11904: 0xE944, + 22131 - 11904: 0xE940, + 22132 - 11904: 0xBC51, + 22134 - 11904: 0xBEBF, + 22135 - 11904: 0xE946, + 22136 - 11904: 0xBEB7, + 22137 - 11904: 0xBEB4, + 22138 - 11904: 0x9AD2, + 22139 - 11904: 0x9E6A, + 22140 - 11904: 0x9EE8, + 22142 - 11904: 0xECC6, + 22143 - 11904: 0xECC8, + 22144 - 11904: 0xC07B, + 22145 - 11904: 0xECC9, + 22146 - 11904: 0xECC7, + 22147 - 11904: 0xECC5, + 22148 - 11904: 0xECC4, + 22149 - 11904: 0xC07D, + 22150 - 11904: 0xECC3, + 22151 - 11904: 0xC07E, + 22153 - 11904: 0x8BBF, + 22154 - 11904: 0x91C2, + 22155 - 11904: 0x9D62, + 22156 - 11904: 0xECC1, + 22157 - 11904: 0xECC2, + 22158 - 11904: 0xC07A, + 22159 - 11904: 0xC0A1, + 22160 - 11904: 0xC07C, + 22162 - 11904: 0x9260, + 22163 - 11904: 0xECC0, + 22165 - 11904: 0xC250, + 22167 - 11904: 0xEFBC, + 22168 - 11904: 0xEFBA, + 22169 - 11904: 0xEFBF, + 22170 - 11904: 0xEFBD, + 22172 - 11904: 0xEFBB, + 22173 - 11904: 0xEFBE, + 22174 - 11904: 0x925E, + 22175 - 11904: 0x91C1, + 22177 - 11904: 0x8AC5, + 22180 - 11904: 0x97A3, + 22181 - 11904: 0xC360, + 22182 - 11904: 0xF1F2, + 22183 - 11904: 0xF1F3, + 22184 - 11904: 0xC456, + 22186 - 11904: 0xF1F4, + 22187 - 11904: 0xF1F0, + 22188 - 11904: 0xF1F5, + 22189 - 11904: 0xF1F1, + 22190 - 11904: 0xC251, + 22191 - 11904: 0x8B6C, + 22193 - 11904: 0x8D7E, + 22194 - 11904: 0xF3FE, + 22195 - 11904: 0xF441, + 22196 - 11904: 0xC459, + 22197 - 11904: 0xF440, + 22198 - 11904: 0xC458, + 22199 - 11904: 0xC457, + 22201 - 11904: 0x9C54, + 22204 - 11904: 0xC45A, + 22205 - 11904: 0xF5C5, + 22206 - 11904: 0xF5C6, + 22207 - 11904: 0x9DBD, + 22208 - 11904: 0xC4DA, + 22209 - 11904: 0xC4D9, + 22210 - 11904: 0xC4DB, + 22211 - 11904: 0xF5C4, + 22213 - 11904: 0xF6D8, + 22214 - 11904: 0xF6D7, + 22216 - 11904: 0xC56D, + 22217 - 11904: 0xC56F, + 22218 - 11904: 0xC56E, + 22219 - 11904: 0xF6D9, + 22220 - 11904: 0xC5C8, + 22221 - 11904: 0xF8A6, + 22225 - 11904: 0xC5F1, + 22227 - 11904: 0xF8A5, + 22228 - 11904: 0xF8EE, + 22230 - 11904: 0x9CC5, + 22231 - 11904: 0xC949, + 22234 - 11904: 0xA57D, + 22235 - 11904: 0xA57C, + 22237 - 11904: 0xA65F, + 22238 - 11904: 0xA65E, + 22239 - 11904: 0xC9C7, + 22240 - 11904: 0xA65D, + 22241 - 11904: 0xC9C6, + 22242 - 11904: 0x895B, + 22244 - 11904: 0xA779, + 22245 - 11904: 0xCAA9, + 22247 - 11904: 0xCAA8, + 22250 - 11904: 0xA777, + 22251 - 11904: 0xA77A, + 22253 - 11904: 0xFB5C, + 22254 - 11904: 0xCAA7, + 22255 - 11904: 0xFB5B, + 22256 - 11904: 0xA778, + 22257 - 11904: 0xFB57, + 22263 - 11904: 0xCBF0, + 22265 - 11904: 0xCBF1, + 22266 - 11904: 0xA954, + 22267 - 11904: 0x8765, + 22269 - 11904: 0x98C7, + 22271 - 11904: 0xABAA, + 22272 - 11904: 0xFB5A, + 22273 - 11904: 0xD148, + 22274 - 11904: 0xD149, + 22275 - 11904: 0xAE45, + 22276 - 11904: 0xAE46, + 22279 - 11904: 0xD4AC, + 22280 - 11904: 0xB0E9, + 22281 - 11904: 0xB0EB, + 22282 - 11904: 0xD4AB, + 22283 - 11904: 0xB0EA, + 22284 - 11904: 0xD87C, + 22285 - 11904: 0xB3F2, + 22290 - 11904: 0xB6E9, + 22291 - 11904: 0xB6EA, + 22292 - 11904: 0xDCE1, + 22293 - 11904: 0x9CEE, + 22294 - 11904: 0xB9CF, + 22296 - 11904: 0xB9CE, + 22298 - 11904: 0xE549, + 22299 - 11904: 0xE948, + 22300 - 11904: 0xE947, + 22301 - 11904: 0x92E2, + 22302 - 11904: 0xF96B, + 22303 - 11904: 0xA467, + 22304 - 11904: 0xC959, + 22306 - 11904: 0xC96E, + 22307 - 11904: 0xC96F, + 22312 - 11904: 0xA662, + 22313 - 11904: 0xA666, + 22314 - 11904: 0xC9C9, + 22316 - 11904: 0xA664, + 22317 - 11904: 0xA663, + 22318 - 11904: 0xC9C8, + 22319 - 11904: 0xA665, + 22320 - 11904: 0xA661, + 22322 - 11904: 0x94A7, + 22323 - 11904: 0xA660, + 22324 - 11904: 0xC9CA, + 22331 - 11904: 0xA7A6, + 22333 - 11904: 0x8CCC, + 22334 - 11904: 0xA7A3, + 22335 - 11904: 0x9BD4, + 22336 - 11904: 0xA77D, + 22337 - 11904: 0xCAAA, + 22338 - 11904: 0xFB64, + 22339 - 11904: 0xFB76, + 22341 - 11904: 0xCAAB, + 22342 - 11904: 0xFB60, + 22343 - 11904: 0xA7A1, + 22345 - 11904: 0xCAAD, + 22346 - 11904: 0xA77B, + 22347 - 11904: 0xCAAE, + 22348 - 11904: 0xCAAC, + 22349 - 11904: 0xA77E, + 22350 - 11904: 0xA7A2, + 22351 - 11904: 0xA7A5, + 22352 - 11904: 0xA7A4, + 22353 - 11904: 0xA77C, + 22354 - 11904: 0xCAAF, + 22356 - 11904: 0x99E5, + 22359 - 11904: 0x9AC2, + 22363 - 11904: 0x91FB, + 22367 - 11904: 0xA073, + 22369 - 11904: 0xA959, + 22370 - 11904: 0xCBFE, + 22372 - 11904: 0xA95B, + 22374 - 11904: 0xA95A, + 22375 - 11904: 0x9F72, + 22376 - 11904: 0xCC40, + 22377 - 11904: 0xA958, + 22378 - 11904: 0xA957, + 22379 - 11904: 0xCBF5, + 22381 - 11904: 0xCBF4, + 22383 - 11904: 0xCBF2, + 22384 - 11904: 0xCBF7, + 22385 - 11904: 0xCBF6, + 22386 - 11904: 0xCBF3, + 22387 - 11904: 0xCBFC, + 22388 - 11904: 0xCBFD, + 22389 - 11904: 0xCBFA, + 22390 - 11904: 0xCBF8, + 22391 - 11904: 0xA956, + 22394 - 11904: 0x9FCC, + 22395 - 11904: 0xCBFB, + 22396 - 11904: 0xA95C, + 22397 - 11904: 0xCC41, + 22398 - 11904: 0x98A5, + 22399 - 11904: 0x92E8, + 22400 - 11904: 0xCBF9, + 22402 - 11904: 0xABAB, + 22403 - 11904: 0xA955, + 22408 - 11904: 0x9BBC, + 22410 - 11904: 0x96F3, + 22411 - 11904: 0xABAC, + 22412 - 11904: 0xCE54, + 22413 - 11904: 0x92E7, + 22415 - 11904: 0xCE5A, + 22416 - 11904: 0xFC67, + 22419 - 11904: 0xABB2, + 22420 - 11904: 0xCE58, + 22421 - 11904: 0xCE5E, + 22423 - 11904: 0xCE55, + 22424 - 11904: 0xCE59, + 22425 - 11904: 0xCE5B, + 22426 - 11904: 0xCE5D, + 22427 - 11904: 0xCE57, + 22428 - 11904: 0x8B7D, + 22429 - 11904: 0xCE56, + 22430 - 11904: 0xCE51, + 22431 - 11904: 0xCE52, + 22432 - 11904: 0xABAD, + 22433 - 11904: 0x9BF4, + 22434 - 11904: 0xABAF, + 22435 - 11904: 0xABAE, + 22436 - 11904: 0xCE53, + 22437 - 11904: 0xCE5C, + 22439 - 11904: 0x9EF7, + 22442 - 11904: 0x9EC1, + 22446 - 11904: 0xABB1, + 22451 - 11904: 0x87C3, + 22452 - 11904: 0x996F, + 22453 - 11904: 0xCE50, + 22454 - 11904: 0xD153, + 22456 - 11904: 0xD152, + 22457 - 11904: 0xD157, + 22458 - 11904: 0xD14E, + 22459 - 11904: 0x96F1, + 22460 - 11904: 0xD151, + 22461 - 11904: 0xD150, + 22462 - 11904: 0x8E41, + 22463 - 11904: 0xD154, + 22465 - 11904: 0xD158, + 22466 - 11904: 0xAE47, + 22467 - 11904: 0xAE4A, + 22468 - 11904: 0x954A, + 22470 - 11904: 0xD14F, + 22471 - 11904: 0xD155, + 22472 - 11904: 0x97E6, + 22475 - 11904: 0xAE49, + 22476 - 11904: 0xD14A, + 22478 - 11904: 0xABB0, + 22479 - 11904: 0xD4BA, + 22480 - 11904: 0xD156, + 22482 - 11904: 0xD14D, + 22484 - 11904: 0xAE48, + 22485 - 11904: 0xD14C, + 22487 - 11904: 0x96F5, + 22492 - 11904: 0xD4B1, + 22493 - 11904: 0x92E6, + 22494 - 11904: 0x9F42, + 22495 - 11904: 0xB0EC, + 22496 - 11904: 0xB0F0, + 22497 - 11904: 0xD4C1, + 22498 - 11904: 0xD4AF, + 22499 - 11904: 0xD4BD, + 22500 - 11904: 0xB0F1, + 22501 - 11904: 0xD4BF, + 22502 - 11904: 0xFB67, + 22503 - 11904: 0xD4C5, + 22505 - 11904: 0xD4C9, + 22508 - 11904: 0xD4C0, + 22509 - 11904: 0xD4B4, + 22510 - 11904: 0xD4BC, + 22511 - 11904: 0x99A9, + 22512 - 11904: 0xD4CA, + 22513 - 11904: 0xD4C8, + 22514 - 11904: 0xD4BE, + 22515 - 11904: 0xD4B9, + 22516 - 11904: 0xD4B2, + 22517 - 11904: 0xD8A6, + 22518 - 11904: 0xD4B0, + 22519 - 11904: 0xB0F5, + 22520 - 11904: 0xD4B7, + 22521 - 11904: 0xB0F6, + 22522 - 11904: 0xB0F2, + 22523 - 11904: 0xD4AD, + 22524 - 11904: 0xD4C3, + 22525 - 11904: 0xD4B5, + 22526 - 11904: 0xFAE6, + 22528 - 11904: 0xD4B3, + 22529 - 11904: 0xD4C6, + 22530 - 11904: 0xB0F3, + 22531 - 11904: 0xFB69, + 22532 - 11904: 0xD4CC, + 22533 - 11904: 0xB0ED, + 22534 - 11904: 0xB0EF, + 22535 - 11904: 0xD4BB, + 22536 - 11904: 0xD4B6, + 22537 - 11904: 0xAE4B, + 22538 - 11904: 0xB0EE, + 22539 - 11904: 0xD4B8, + 22540 - 11904: 0xD4C7, + 22541 - 11904: 0xD4CB, + 22542 - 11904: 0xD4C2, + 22544 - 11904: 0xD4C4, + 22546 - 11904: 0x97E5, + 22548 - 11904: 0xD4AE, + 22552 - 11904: 0x87C8, + 22553 - 11904: 0xD8A1, + 22555 - 11904: 0xD8AA, + 22556 - 11904: 0xD8A9, + 22557 - 11904: 0xB3FA, + 22558 - 11904: 0xD8A2, + 22560 - 11904: 0xB3FB, + 22561 - 11904: 0xB3F9, + 22562 - 11904: 0x967D, + 22563 - 11904: 0xD8A4, + 22564 - 11904: 0xB3F6, + 22565 - 11904: 0xD8A8, + 22566 - 11904: 0xFB6C, + 22567 - 11904: 0xD8A3, + 22568 - 11904: 0xD8A5, + 22569 - 11904: 0xD87D, + 22570 - 11904: 0xB3F4, + 22572 - 11904: 0xD8B2, + 22573 - 11904: 0xD8B1, + 22574 - 11904: 0xD8AE, + 22575 - 11904: 0xB3F3, + 22576 - 11904: 0xB3F7, + 22577 - 11904: 0xB3F8, + 22578 - 11904: 0xD14B, + 22579 - 11904: 0xD8AB, + 22580 - 11904: 0xB3F5, + 22581 - 11904: 0xB0F4, + 22582 - 11904: 0xD8AD, + 22583 - 11904: 0xD87E, + 22584 - 11904: 0xD8B0, + 22585 - 11904: 0xD8AF, + 22586 - 11904: 0x99A2, + 22587 - 11904: 0xD8B3, + 22589 - 11904: 0xDCEF, + 22591 - 11904: 0xD8AC, + 22592 - 11904: 0x9ABB, + 22596 - 11904: 0x9A65, + 22599 - 11904: 0x944E, + 22600 - 11904: 0xD8A7, + 22601 - 11904: 0xDCE7, + 22602 - 11904: 0xB6F4, + 22603 - 11904: 0xB6F7, + 22604 - 11904: 0xB6F2, + 22605 - 11904: 0xDCE6, + 22606 - 11904: 0xDCEA, + 22607 - 11904: 0xDCE5, + 22609 - 11904: 0xB6EC, + 22610 - 11904: 0xB6F6, + 22611 - 11904: 0xDCE2, + 22612 - 11904: 0xB6F0, + 22613 - 11904: 0xDCE9, + 22615 - 11904: 0xB6EE, + 22616 - 11904: 0xB6ED, + 22617 - 11904: 0xDCEC, + 22618 - 11904: 0xB6EF, + 22619 - 11904: 0xDCEE, + 22620 - 11904: 0xFB6E, + 22621 - 11904: 0xDCEB, + 22622 - 11904: 0xB6EB, + 22623 - 11904: 0x99DF, + 22626 - 11904: 0xB6F5, + 22627 - 11904: 0xDCF0, + 22628 - 11904: 0xDCE4, + 22629 - 11904: 0xDCED, + 22632 - 11904: 0xDCE3, + 22633 - 11904: 0x98E3, + 22635 - 11904: 0xB6F1, + 22636 - 11904: 0x9254, + 22637 - 11904: 0xB6F3, + 22639 - 11904: 0xDCE8, + 22641 - 11904: 0xDCF1, + 22642 - 11904: 0x967B, + 22643 - 11904: 0x8AAF, + 22644 - 11904: 0xE15D, + 22645 - 11904: 0xB9D0, + 22646 - 11904: 0xE163, + 22649 - 11904: 0xB9D5, + 22650 - 11904: 0xE15F, + 22651 - 11904: 0xE166, + 22652 - 11904: 0xE157, + 22653 - 11904: 0xB9D7, + 22654 - 11904: 0xB9D1, + 22655 - 11904: 0xE15C, + 22656 - 11904: 0xBC55, + 22657 - 11904: 0xE15B, + 22658 - 11904: 0xE164, + 22659 - 11904: 0xB9D2, + 22661 - 11904: 0xB9D6, + 22662 - 11904: 0xE15A, + 22663 - 11904: 0xE160, + 22664 - 11904: 0xE165, + 22665 - 11904: 0xE156, + 22666 - 11904: 0xB9D4, + 22667 - 11904: 0xE15E, + 22670 - 11904: 0xE162, + 22671 - 11904: 0xE168, + 22672 - 11904: 0xE158, + 22673 - 11904: 0xE161, + 22674 - 11904: 0x8C77, + 22675 - 11904: 0xB9D3, + 22676 - 11904: 0xE167, + 22678 - 11904: 0x87B0, + 22680 - 11904: 0xE159, + 22681 - 11904: 0x8BAF, + 22682 - 11904: 0x9EBD, + 22684 - 11904: 0xBC59, + 22685 - 11904: 0xE54B, + 22686 - 11904: 0xBC57, + 22687 - 11904: 0xBC56, + 22688 - 11904: 0xE54D, + 22689 - 11904: 0xE552, + 22691 - 11904: 0xE54E, + 22693 - 11904: 0xE551, + 22694 - 11904: 0xBC5C, + 22695 - 11904: 0x9EE6, + 22696 - 11904: 0xBEA5, + 22697 - 11904: 0xBC5B, + 22698 - 11904: 0xFB6F, + 22699 - 11904: 0xE54A, + 22700 - 11904: 0xE550, + 22702 - 11904: 0xBC5A, + 22703 - 11904: 0xE54F, + 22704 - 11904: 0x8EE1, + 22705 - 11904: 0xE54C, + 22707 - 11904: 0xBC58, + 22709 - 11904: 0x9B7D, + 22710 - 11904: 0x9C7E, + 22714 - 11904: 0xE94D, + 22715 - 11904: 0xF9D9, + 22716 - 11904: 0xE94F, + 22717 - 11904: 0xE94A, + 22718 - 11904: 0xBEC1, + 22719 - 11904: 0xE94C, + 22721 - 11904: 0xBEC0, + 22722 - 11904: 0xE94E, + 22725 - 11904: 0xBEC3, + 22726 - 11904: 0xE950, + 22727 - 11904: 0xBEC2, + 22728 - 11904: 0xE949, + 22729 - 11904: 0xE94B, + 22731 - 11904: 0x92EA, + 22734 - 11904: 0xC0A5, + 22735 - 11904: 0xECCC, + 22736 - 11904: 0x8C78, + 22737 - 11904: 0xC0A4, + 22738 - 11904: 0xECCD, + 22739 - 11904: 0xC0A3, + 22740 - 11904: 0xECCB, + 22741 - 11904: 0xC0A2, + 22742 - 11904: 0xECCA, + 22744 - 11904: 0xC253, + 22745 - 11904: 0xC252, + 22746 - 11904: 0xF1F6, + 22747 - 11904: 0xF1F8, + 22748 - 11904: 0xFB72, + 22749 - 11904: 0xF1F7, + 22750 - 11904: 0xC361, + 22751 - 11904: 0xC362, + 22752 - 11904: 0xFB71, + 22754 - 11904: 0xC363, + 22755 - 11904: 0xF442, + 22756 - 11904: 0xC45B, + 22759 - 11904: 0xF7D3, + 22760 - 11904: 0xF7D2, + 22761 - 11904: 0xC5F2, + 22763 - 11904: 0xA468, + 22764 - 11904: 0xA4D0, + 22767 - 11904: 0xA7A7, + 22768 - 11904: 0x895C, + 22770 - 11904: 0x98F0, + 22771 - 11904: 0x96F2, + 22772 - 11904: 0xCE5F, + 22777 - 11904: 0xB3FC, + 22778 - 11904: 0xB3FD, + 22779 - 11904: 0xFB74, + 22780 - 11904: 0xDCF2, + 22781 - 11904: 0xB9D8, + 22782 - 11904: 0xE169, + 22783 - 11904: 0xE553, + 22786 - 11904: 0x8BC1, + 22787 - 11904: 0xC95A, + 22788 - 11904: 0x895D, + 22789 - 11904: 0x89DE, + 22790 - 11904: 0xCAB0, + 22791 - 11904: 0x895E, + 22794 - 11904: 0xC6CA, + 22796 - 11904: 0xCC42, + 22797 - 11904: 0xCE60, + 22798 - 11904: 0xD159, + 22799 - 11904: 0xAE4C, + 22801 - 11904: 0xFE42, + 22802 - 11904: 0xF1F9, + 22804 - 11904: 0xC4DC, + 22805 - 11904: 0xA469, + 22806 - 11904: 0xA57E, + 22807 - 11904: 0xC970, + 22809 - 11904: 0xA667, + 22810 - 11904: 0xA668, + 22812 - 11904: 0xA95D, + 22813 - 11904: 0x8768, + 22815 - 11904: 0xFB7B, + 22816 - 11904: 0xB0F7, + 22818 - 11904: 0xB9DA, + 22820 - 11904: 0xB9DB, + 22821 - 11904: 0xB9D9, + 22823 - 11904: 0xA46A, + 22825 - 11904: 0xA4D1, + 22826 - 11904: 0xA4D3, + 22827 - 11904: 0xA4D2, + 22828 - 11904: 0xC95B, + 22829 - 11904: 0xA4D4, + 22830 - 11904: 0xA5A1, + 22831 - 11904: 0xC971, + 22833 - 11904: 0xA5A2, + 22834 - 11904: 0x895F, + 22836 - 11904: 0x8960, + 22839 - 11904: 0xA669, + 22840 - 11904: 0xA66A, + 22844 - 11904: 0xC9CB, + 22846 - 11904: 0xA7A8, + 22848 - 11904: 0xCAB1, + 22852 - 11904: 0xA961, + 22853 - 11904: 0xCC43, + 22855 - 11904: 0xA95F, + 22856 - 11904: 0xA960, + 22857 - 11904: 0xA95E, + 22858 - 11904: 0xD15A, + 22862 - 11904: 0xABB6, + 22863 - 11904: 0xABB5, + 22864 - 11904: 0xABB7, + 22865 - 11904: 0xABB4, + 22867 - 11904: 0xCE61, + 22868 - 11904: 0xA962, + 22869 - 11904: 0xABB3, + 22871 - 11904: 0xAE4D, + 22872 - 11904: 0xAE4E, + 22874 - 11904: 0xAE4F, + 22876 - 11904: 0xD4CD, + 22880 - 11904: 0xB3FE, + 22881 - 11904: 0xD8B4, + 22882 - 11904: 0xB0F8, + 22885 - 11904: 0x9BCD, + 22887 - 11904: 0xB6F8, + 22889 - 11904: 0xB9DD, + 22890 - 11904: 0xB9DC, + 22891 - 11904: 0xE16A, + 22893 - 11904: 0xBC5D, + 22894 - 11904: 0xBEC4, + 22896 - 11904: 0xEFC0, + 22897 - 11904: 0xF6DA, + 22898 - 11904: 0xF7D4, + 22899 - 11904: 0xA46B, + 22900 - 11904: 0xA5A3, + 22901 - 11904: 0x9DD3, + 22902 - 11904: 0xA5A4, + 22903 - 11904: 0xC9D1, + 22904 - 11904: 0xA66C, + 22905 - 11904: 0xA66F, + 22907 - 11904: 0xC9CF, + 22908 - 11904: 0xC9CD, + 22909 - 11904: 0xA66E, + 22910 - 11904: 0xC9D0, + 22911 - 11904: 0xC9D2, + 22912 - 11904: 0xC9CC, + 22913 - 11904: 0xA671, + 22914 - 11904: 0xA670, + 22915 - 11904: 0xA66D, + 22916 - 11904: 0xA66B, + 22917 - 11904: 0xC9CE, + 22921 - 11904: 0x984C, + 22922 - 11904: 0xA7B3, + 22925 - 11904: 0xA7B0, + 22926 - 11904: 0xCAB6, + 22927 - 11904: 0xCAB9, + 22928 - 11904: 0xCAB8, + 22930 - 11904: 0xA7AA, + 22931 - 11904: 0xA7B2, + 22932 - 11904: 0x9752, + 22934 - 11904: 0xA7AF, + 22935 - 11904: 0xCAB5, + 22936 - 11904: 0xCAB3, + 22937 - 11904: 0xA7AE, + 22938 - 11904: 0x95C3, + 22941 - 11904: 0xA7A9, + 22942 - 11904: 0xA7AC, + 22943 - 11904: 0x9BB6, + 22944 - 11904: 0xCAB4, + 22945 - 11904: 0xCABB, + 22946 - 11904: 0xCAB7, + 22947 - 11904: 0xA7AD, + 22948 - 11904: 0xA7B1, + 22949 - 11904: 0xA7B4, + 22950 - 11904: 0xCAB2, + 22951 - 11904: 0xCABA, + 22952 - 11904: 0xA7AB, + 22956 - 11904: 0x9AB9, + 22958 - 11904: 0xA967, + 22959 - 11904: 0xA96F, + 22960 - 11904: 0x97B3, + 22961 - 11904: 0xCC4F, + 22962 - 11904: 0xCC48, + 22963 - 11904: 0xA970, + 22964 - 11904: 0xCC53, + 22965 - 11904: 0xCC44, + 22966 - 11904: 0xCC4B, + 22967 - 11904: 0x9F74, + 22968 - 11904: 0x92F1, + 22969 - 11904: 0xA966, + 22970 - 11904: 0xCC45, + 22971 - 11904: 0xA964, + 22972 - 11904: 0xCC4C, + 22973 - 11904: 0xCC50, + 22974 - 11904: 0xA963, + 22975 - 11904: 0x8CFA, + 22976 - 11904: 0xCC51, + 22977 - 11904: 0xCC4A, + 22979 - 11904: 0xCC4D, + 22980 - 11904: 0x97DF, + 22981 - 11904: 0xA972, + 22982 - 11904: 0xA969, + 22983 - 11904: 0xCC54, + 22984 - 11904: 0xCC52, + 22985 - 11904: 0xFBA6, + 22986 - 11904: 0xA96E, + 22987 - 11904: 0xA96C, + 22988 - 11904: 0xCC49, + 22989 - 11904: 0xA96B, + 22990 - 11904: 0xCC47, + 22991 - 11904: 0xCC46, + 22992 - 11904: 0xA96A, + 22993 - 11904: 0xA968, + 22994 - 11904: 0xA971, + 22995 - 11904: 0xA96D, + 22996 - 11904: 0xA965, + 22998 - 11904: 0xCC4E, + 23000 - 11904: 0xABB9, + 23001 - 11904: 0xFBAB, + 23002 - 11904: 0xABC0, + 23003 - 11904: 0xCE6F, + 23004 - 11904: 0xABB8, + 23005 - 11904: 0xCE67, + 23006 - 11904: 0xCE63, + 23008 - 11904: 0xCE73, + 23009 - 11904: 0xCE62, + 23011 - 11904: 0xABBB, + 23012 - 11904: 0xCE6C, + 23013 - 11904: 0xABBE, + 23014 - 11904: 0xABC1, + 23016 - 11904: 0xABBC, + 23017 - 11904: 0xCE70, + 23018 - 11904: 0xABBF, + 23019 - 11904: 0x9877, + 23020 - 11904: 0xAE56, + 23021 - 11904: 0xCE76, + 23022 - 11904: 0xCE64, + 23023 - 11904: 0x9854, + 23024 - 11904: 0x95C5, + 23025 - 11904: 0xCE66, + 23026 - 11904: 0xCE6D, + 23027 - 11904: 0xCE71, + 23028 - 11904: 0xCE75, + 23029 - 11904: 0xCE72, + 23030 - 11904: 0xCE6B, + 23031 - 11904: 0xCE6E, + 23032 - 11904: 0x9D55, + 23033 - 11904: 0xFBB2, + 23034 - 11904: 0xCE68, + 23035 - 11904: 0xABC3, + 23036 - 11904: 0xCE6A, + 23037 - 11904: 0xCE69, + 23038 - 11904: 0xCE74, + 23039 - 11904: 0xABBA, + 23040 - 11904: 0xCE65, + 23041 - 11904: 0xABC2, + 23042 - 11904: 0x957E, + 23043 - 11904: 0xABBD, + 23049 - 11904: 0xAE5C, + 23050 - 11904: 0xD162, + 23051 - 11904: 0x9742, + 23052 - 11904: 0xAE5B, + 23053 - 11904: 0x94E6, + 23055 - 11904: 0xD160, + 23057 - 11904: 0xAE50, + 23058 - 11904: 0x92F5, + 23059 - 11904: 0xAE55, + 23061 - 11904: 0xD15F, + 23062 - 11904: 0xD15C, + 23063 - 11904: 0xD161, + 23064 - 11904: 0xAE51, + 23065 - 11904: 0xD15B, + 23066 - 11904: 0x8CC5, + 23067 - 11904: 0xAE54, + 23068 - 11904: 0xAE52, + 23070 - 11904: 0xD163, + 23071 - 11904: 0xAE53, + 23072 - 11904: 0xAE57, + 23073 - 11904: 0x92FD, + 23075 - 11904: 0xAE58, + 23076 - 11904: 0xFBA2, + 23077 - 11904: 0xAE5A, + 23079 - 11904: 0x9C51, + 23081 - 11904: 0xAE59, + 23082 - 11904: 0x94E9, + 23083 - 11904: 0x985C, + 23084 - 11904: 0x92F0, + 23085 - 11904: 0xD15D, + 23086 - 11904: 0xD15E, + 23091 - 11904: 0xD164, + 23093 - 11904: 0xD4D4, + 23094 - 11904: 0xB0F9, + 23095 - 11904: 0xD8C2, + 23096 - 11904: 0xD4D3, + 23097 - 11904: 0xD4E6, + 23100 - 11904: 0xB140, + 23101 - 11904: 0x944C, + 23102 - 11904: 0xD4E4, + 23104 - 11904: 0xB0FE, + 23105 - 11904: 0xB0FA, + 23106 - 11904: 0xD4ED, + 23107 - 11904: 0xD4DD, + 23108 - 11904: 0xD4E0, + 23109 - 11904: 0x916B, + 23110 - 11904: 0xB143, + 23111 - 11904: 0xD4EA, + 23112 - 11904: 0xD4E2, + 23113 - 11904: 0xB0FB, + 23114 - 11904: 0xB144, + 23116 - 11904: 0xD4E7, + 23117 - 11904: 0xD4E5, + 23120 - 11904: 0xD4D6, + 23121 - 11904: 0xD4EB, + 23122 - 11904: 0xD4DF, + 23123 - 11904: 0xD4DA, + 23124 - 11904: 0x8B78, + 23125 - 11904: 0xD4D0, + 23126 - 11904: 0xD4EC, + 23127 - 11904: 0xD4DC, + 23128 - 11904: 0xD4CF, + 23129 - 11904: 0x94E2, + 23130 - 11904: 0xB142, + 23131 - 11904: 0xD4E1, + 23132 - 11904: 0xD4EE, + 23133 - 11904: 0xD4DE, + 23134 - 11904: 0xD4D2, + 23135 - 11904: 0xD4D7, + 23136 - 11904: 0xD4CE, + 23137 - 11904: 0x984F, + 23138 - 11904: 0xB141, + 23139 - 11904: 0xFBB5, + 23140 - 11904: 0xD4DB, + 23141 - 11904: 0xD4D8, + 23142 - 11904: 0xB0FC, + 23143 - 11904: 0xD4D1, + 23144 - 11904: 0x9271, + 23145 - 11904: 0xD4E9, + 23146 - 11904: 0xB0FD, + 23147 - 11904: 0x9365, + 23148 - 11904: 0xD4D9, + 23149 - 11904: 0xD4D5, + 23150 - 11904: 0x985B, + 23152 - 11904: 0xD4E8, + 23153 - 11904: 0x9850, + 23159 - 11904: 0xFBB8, + 23160 - 11904: 0xD8BB, + 23161 - 11904: 0x97BC, + 23162 - 11904: 0xD8B8, + 23163 - 11904: 0xD8C9, + 23164 - 11904: 0xD8BD, + 23165 - 11904: 0xD8CA, + 23166 - 11904: 0x92F3, + 23167 - 11904: 0xB442, + 23169 - 11904: 0x9340, + 23170 - 11904: 0x984D, + 23171 - 11904: 0xD8C6, + 23172 - 11904: 0xD8C3, + 23174 - 11904: 0x9572, + 23176 - 11904: 0xFDEF, + 23178 - 11904: 0xD8C4, + 23179 - 11904: 0xD8C7, + 23180 - 11904: 0xD8CB, + 23182 - 11904: 0xD4E3, + 23183 - 11904: 0xD8CD, + 23184 - 11904: 0xDD47, + 23185 - 11904: 0xFDC1, + 23186 - 11904: 0xB443, + 23187 - 11904: 0xD8CE, + 23188 - 11904: 0xD8B6, + 23189 - 11904: 0xD8C0, + 23190 - 11904: 0xFBBA, + 23191 - 11904: 0xD8C5, + 23193 - 11904: 0x92EB, + 23194 - 11904: 0xB441, + 23195 - 11904: 0xB444, + 23196 - 11904: 0xD8CC, + 23197 - 11904: 0xD8CF, + 23198 - 11904: 0xD8BA, + 23199 - 11904: 0xD8B7, + 23200 - 11904: 0xFC73, + 23201 - 11904: 0x97B7, + 23202 - 11904: 0xD8B9, + 23204 - 11904: 0x876F, + 23205 - 11904: 0xD8BE, + 23206 - 11904: 0xD8BC, + 23207 - 11904: 0xB445, + 23209 - 11904: 0xD8C8, + 23211 - 11904: 0xFBB4, + 23212 - 11904: 0xD8BF, + 23214 - 11904: 0xD8C1, + 23215 - 11904: 0xD8B5, + 23216 - 11904: 0xDCFA, + 23217 - 11904: 0xDCF8, + 23218 - 11904: 0xB742, + 23219 - 11904: 0xB740, + 23220 - 11904: 0xDD43, + 23221 - 11904: 0xDCF9, + 23222 - 11904: 0xDD44, + 23223 - 11904: 0xDD40, + 23224 - 11904: 0xDCF7, + 23225 - 11904: 0xDD46, + 23226 - 11904: 0xDCF6, + 23227 - 11904: 0xDCFD, + 23228 - 11904: 0xB6FE, + 23229 - 11904: 0xB6FD, + 23230 - 11904: 0xB6FC, + 23231 - 11904: 0xDCFB, + 23232 - 11904: 0xDD41, + 23233 - 11904: 0xB6F9, + 23234 - 11904: 0xB741, + 23235 - 11904: 0x90A7, + 23236 - 11904: 0xDCF4, + 23238 - 11904: 0xDCFE, + 23239 - 11904: 0xDCF3, + 23240 - 11904: 0xDCFC, + 23241 - 11904: 0xB6FA, + 23242 - 11904: 0xDD42, + 23243 - 11904: 0xDCF5, + 23244 - 11904: 0xB6FB, + 23245 - 11904: 0xDD45, + 23246 - 11904: 0x9741, + 23247 - 11904: 0x92F4, + 23249 - 11904: 0x8772, + 23251 - 11904: 0xFBBC, + 23253 - 11904: 0xE16E, + 23254 - 11904: 0xB9E2, + 23255 - 11904: 0xB9E1, + 23256 - 11904: 0xB9E3, + 23257 - 11904: 0xE17A, + 23258 - 11904: 0xE170, + 23259 - 11904: 0xE176, + 23260 - 11904: 0xE16B, + 23261 - 11904: 0xE179, + 23262 - 11904: 0xE178, + 23263 - 11904: 0xE17C, + 23264 - 11904: 0xE175, + 23265 - 11904: 0xB9DE, + 23266 - 11904: 0xE174, + 23267 - 11904: 0xB9E4, + 23268 - 11904: 0x9577, + 23269 - 11904: 0xE16D, + 23270 - 11904: 0xB9DF, + 23272 - 11904: 0xE17B, + 23273 - 11904: 0xB9E0, + 23274 - 11904: 0xE16F, + 23275 - 11904: 0xE172, + 23276 - 11904: 0xE177, + 23277 - 11904: 0xE171, + 23278 - 11904: 0xE16C, + 23280 - 11904: 0x9EE2, + 23282 - 11904: 0x8F78, + 23283 - 11904: 0xE173, + 23284 - 11904: 0xE555, + 23285 - 11904: 0xBC61, + 23286 - 11904: 0xE558, + 23287 - 11904: 0xE557, + 23288 - 11904: 0xE55A, + 23289 - 11904: 0xE55C, + 23290 - 11904: 0xF9DC, + 23291 - 11904: 0xBC5F, + 23293 - 11904: 0xE556, + 23294 - 11904: 0x9672, + 23295 - 11904: 0xE554, + 23297 - 11904: 0xE55D, + 23298 - 11904: 0xE55B, + 23299 - 11904: 0xE559, + 23301 - 11904: 0xE55F, + 23303 - 11904: 0xE55E, + 23304 - 11904: 0xBC63, + 23305 - 11904: 0xBC5E, + 23307 - 11904: 0xBC60, + 23308 - 11904: 0xBC62, + 23309 - 11904: 0x9EB5, + 23311 - 11904: 0xE560, + 23312 - 11904: 0xE957, + 23313 - 11904: 0x964B, + 23315 - 11904: 0xE956, + 23316 - 11904: 0xE955, + 23317 - 11904: 0x8CAC, + 23318 - 11904: 0xE958, + 23319 - 11904: 0xE951, + 23321 - 11904: 0xE952, + 23322 - 11904: 0xE95A, + 23323 - 11904: 0xE953, + 23325 - 11904: 0xBEC5, + 23326 - 11904: 0xE95C, + 23327 - 11904: 0xA0FA, + 23328 - 11904: 0xE95B, + 23329 - 11904: 0xE954, + 23331 - 11904: 0xECD1, + 23332 - 11904: 0xC0A8, + 23333 - 11904: 0xECCF, + 23334 - 11904: 0xECD4, + 23335 - 11904: 0xECD3, + 23336 - 11904: 0xE959, + 23338 - 11904: 0xC0A7, + 23339 - 11904: 0x9575, + 23340 - 11904: 0xECD2, + 23341 - 11904: 0xECCE, + 23342 - 11904: 0xECD6, + 23343 - 11904: 0xECD5, + 23344 - 11904: 0xC0A6, + 23346 - 11904: 0xECD0, + 23348 - 11904: 0xBEC6, + 23352 - 11904: 0xC254, + 23356 - 11904: 0xEFC1, + 23357 - 11904: 0xF1FA, + 23358 - 11904: 0xF1FB, + 23359 - 11904: 0xF1FC, + 23360 - 11904: 0xC45C, + 23361 - 11904: 0x90DA, + 23363 - 11904: 0xC45D, + 23364 - 11904: 0x9367, + 23365 - 11904: 0xF443, + 23366 - 11904: 0xFEA4, + 23367 - 11904: 0xF5C8, + 23368 - 11904: 0xF5C7, + 23370 - 11904: 0x90DF, + 23371 - 11904: 0xF6DB, + 23372 - 11904: 0xF6DC, + 23373 - 11904: 0xF7D5, + 23374 - 11904: 0xF8A7, + 23375 - 11904: 0x9354, + 23376 - 11904: 0xA46C, + 23377 - 11904: 0xA46D, + 23379 - 11904: 0xA46E, + 23380 - 11904: 0xA4D5, + 23381 - 11904: 0xA5A5, + 23382 - 11904: 0xC9D3, + 23383 - 11904: 0xA672, + 23384 - 11904: 0xA673, + 23386 - 11904: 0xA7B7, + 23387 - 11904: 0xA7B8, + 23388 - 11904: 0xA7B6, + 23389 - 11904: 0xA7B5, + 23391 - 11904: 0xA973, + 23394 - 11904: 0xCC55, + 23395 - 11904: 0xA975, + 23396 - 11904: 0xA974, + 23397 - 11904: 0xCC56, + 23398 - 11904: 0x8961, + 23400 - 11904: 0x8BB4, + 23401 - 11904: 0xABC4, + 23403 - 11904: 0xAE5D, + 23404 - 11904: 0xD165, + 23405 - 11904: 0x9DC0, + 23406 - 11904: 0xD4F0, + 23408 - 11904: 0xB145, + 23409 - 11904: 0xB447, + 23410 - 11904: 0xD4EF, + 23411 - 11904: 0xB446, + 23412 - 11904: 0x8E48, + 23413 - 11904: 0xB9E5, + 23414 - 11904: 0xFBC5, + 23415 - 11904: 0xE17D, + 23416 - 11904: 0xBEC7, + 23418 - 11904: 0xC0A9, + 23419 - 11904: 0xECD7, + 23420 - 11904: 0xFBC7, + 23421 - 11904: 0xC45E, + 23423 - 11904: 0xC570, + 23424 - 11904: 0xC6CB, + 23425 - 11904: 0xC972, + 23426 - 11904: 0xFA79, + 23427 - 11904: 0xA5A6, + 23428 - 11904: 0xC973, + 23429 - 11904: 0xA676, + 23431 - 11904: 0xA674, + 23432 - 11904: 0xA675, + 23433 - 11904: 0xA677, + 23435 - 11904: 0xA7BA, + 23436 - 11904: 0xA7B9, + 23438 - 11904: 0xCABC, + 23439 - 11904: 0xA7BB, + 23440 - 11904: 0x9E67, + 23442 - 11904: 0xCABD, + 23443 - 11904: 0xCC57, + 23445 - 11904: 0xCC58, + 23446 - 11904: 0x8CD9, + 23447 - 11904: 0xA976, + 23448 - 11904: 0xA978, + 23449 - 11904: 0xA97A, + 23450 - 11904: 0xA977, + 23451 - 11904: 0xA97B, + 23452 - 11904: 0xA979, + 23453 - 11904: 0xFBD2, + 23454 - 11904: 0x8962, + 23455 - 11904: 0x8963, + 23458 - 11904: 0xABC8, + 23459 - 11904: 0xABC5, + 23460 - 11904: 0xABC7, + 23461 - 11904: 0xABC9, + 23462 - 11904: 0xABC6, + 23463 - 11904: 0xD166, + 23464 - 11904: 0xCE77, + 23466 - 11904: 0xFC7D, + 23468 - 11904: 0xD168, + 23469 - 11904: 0xD167, + 23470 - 11904: 0xAE63, + 23472 - 11904: 0xAE5F, + 23475 - 11904: 0xAE60, + 23476 - 11904: 0xAE62, + 23477 - 11904: 0xAE64, + 23478 - 11904: 0xAE61, + 23479 - 11904: 0x8773, + 23480 - 11904: 0xAE66, + 23481 - 11904: 0xAE65, + 23487 - 11904: 0xB14A, + 23488 - 11904: 0xD4F2, + 23489 - 11904: 0xD4F1, + 23490 - 11904: 0xB149, + 23491 - 11904: 0x9F6B, + 23492 - 11904: 0xB148, + 23493 - 11904: 0xB147, + 23494 - 11904: 0xB14B, + 23495 - 11904: 0xB146, + 23498 - 11904: 0xD8D5, + 23499 - 11904: 0xD8D2, + 23500 - 11904: 0xB449, + 23501 - 11904: 0xD8D1, + 23502 - 11904: 0xD8D6, + 23504 - 11904: 0xB44B, + 23505 - 11904: 0xD8D4, + 23506 - 11904: 0xB448, + 23507 - 11904: 0xB44A, + 23508 - 11904: 0xD8D3, + 23509 - 11904: 0xFBCC, + 23510 - 11904: 0xDD48, + 23511 - 11904: 0xFEAE, + 23512 - 11904: 0xDD49, + 23513 - 11904: 0xDD4A, + 23515 - 11904: 0x876D, + 23518 - 11904: 0xB9E6, + 23519 - 11904: 0xB9EE, + 23520 - 11904: 0xE17E, + 23521 - 11904: 0xB9E8, + 23522 - 11904: 0xB9EC, + 23523 - 11904: 0xE1A1, + 23524 - 11904: 0xB9ED, + 23525 - 11904: 0xB9E9, + 23526 - 11904: 0xB9EA, + 23527 - 11904: 0xB9E7, + 23528 - 11904: 0xB9EB, + 23529 - 11904: 0xBC66, + 23530 - 11904: 0xD8D0, + 23531 - 11904: 0xBC67, + 23532 - 11904: 0xBC65, + 23534 - 11904: 0xBC64, + 23535 - 11904: 0xE95D, + 23536 - 11904: 0xBEC8, + 23537 - 11904: 0xECD8, + 23538 - 11904: 0xECD9, + 23539 - 11904: 0xFBD1, + 23541 - 11904: 0xC364, + 23542 - 11904: 0xC45F, + 23544 - 11904: 0xA46F, + 23546 - 11904: 0xA678, + 23551 - 11904: 0xFB75, + 23553 - 11904: 0xABCA, + 23555 - 11904: 0xD169, + 23556 - 11904: 0xAE67, + 23557 - 11904: 0xFBD4, + 23559 - 11904: 0xB14E, + 23560 - 11904: 0xB14D, + 23561 - 11904: 0xB14C, + 23562 - 11904: 0xB44C, + 23563 - 11904: 0xB44D, + 23564 - 11904: 0xD8D7, + 23565 - 11904: 0xB9EF, + 23566 - 11904: 0xBEC9, + 23567 - 11904: 0xA470, + 23568 - 11904: 0xC95C, + 23569 - 11904: 0xA4D6, + 23570 - 11904: 0xC974, + 23571 - 11904: 0xFBD6, + 23572 - 11904: 0xFBD8, + 23573 - 11904: 0xC9D4, + 23574 - 11904: 0xA679, + 23578 - 11904: 0xA97C, + 23580 - 11904: 0x8B5D, + 23582 - 11904: 0x934C, + 23583 - 11904: 0xDD4B, + 23584 - 11904: 0x9AE2, + 23586 - 11904: 0xA471, + 23587 - 11904: 0x8BC9, + 23588 - 11904: 0xA4D7, + 23589 - 11904: 0xC9D5, + 23592 - 11904: 0xCABE, + 23594 - 11904: 0xCABF, + 23596 - 11904: 0xA7BC, + 23600 - 11904: 0xD8D8, + 23601 - 11904: 0xB44E, + 23603 - 11904: 0xDD4C, + 23607 - 11904: 0xC0AA, + 23608 - 11904: 0xA472, + 23609 - 11904: 0xA4A8, + 23610 - 11904: 0xA4D8, + 23611 - 11904: 0xC975, + 23612 - 11904: 0xA5A7, + 23614 - 11904: 0xA7C0, + 23615 - 11904: 0xA7BF, + 23616 - 11904: 0xA7BD, + 23617 - 11904: 0xA7BE, + 23620 - 11904: 0xCC59, + 23621 - 11904: 0xA97E, + 23622 - 11904: 0xA9A1, + 23623 - 11904: 0xCC5A, + 23624 - 11904: 0xA97D, + 23625 - 11904: 0xFBDB, + 23626 - 11904: 0x9FC9, + 23627 - 11904: 0xABCE, + 23628 - 11904: 0xCE78, + 23629 - 11904: 0xABCD, + 23630 - 11904: 0xABCB, + 23631 - 11904: 0xABCC, + 23632 - 11904: 0xAE6A, + 23633 - 11904: 0xAE68, + 23635 - 11904: 0x9F44, + 23636 - 11904: 0xD16B, + 23637 - 11904: 0xAE69, + 23638 - 11904: 0xD16A, + 23640 - 11904: 0xAE5E, + 23641 - 11904: 0xD4F3, + 23644 - 11904: 0xB150, + 23645 - 11904: 0xB151, + 23646 - 11904: 0x98ED, + 23648 - 11904: 0xB14F, + 23650 - 11904: 0xB9F0, + 23651 - 11904: 0xE1A2, + 23652 - 11904: 0xBC68, + 23653 - 11904: 0xBC69, + 23655 - 11904: 0xE561, + 23656 - 11904: 0xC0AB, + 23657 - 11904: 0xEFC2, + 23658 - 11904: 0xEFC3, + 23660 - 11904: 0xC4DD, + 23661 - 11904: 0xF8A8, + 23662 - 11904: 0xC94B, + 23663 - 11904: 0xA4D9, + 23665 - 11904: 0xA473, + 23667 - 11904: 0xC977, + 23668 - 11904: 0xC976, + 23672 - 11904: 0x8CE9, + 23673 - 11904: 0xA67A, + 23674 - 11904: 0xC9D7, + 23675 - 11904: 0xC9D8, + 23676 - 11904: 0xC9D6, + 23678 - 11904: 0xC9D9, + 23685 - 11904: 0xFBDD, + 23686 - 11904: 0xCAC7, + 23688 - 11904: 0xCAC2, + 23689 - 11904: 0xCAC4, + 23690 - 11904: 0xCAC6, + 23691 - 11904: 0xCAC3, + 23692 - 11904: 0xA7C4, + 23693 - 11904: 0xCAC0, + 23695 - 11904: 0xCAC1, + 23696 - 11904: 0xA7C1, + 23697 - 11904: 0xA7C2, + 23698 - 11904: 0xCAC5, + 23699 - 11904: 0xCAC8, + 23700 - 11904: 0xA7C3, + 23701 - 11904: 0xCAC9, + 23705 - 11904: 0x8DF2, + 23706 - 11904: 0x8964, + 23708 - 11904: 0xFDF2, + 23709 - 11904: 0xCC68, + 23710 - 11904: 0x934D, + 23711 - 11904: 0xCC62, + 23712 - 11904: 0xCC5D, + 23713 - 11904: 0xA9A3, + 23714 - 11904: 0xCC65, + 23715 - 11904: 0xCC63, + 23716 - 11904: 0xCC5C, + 23717 - 11904: 0xCC69, + 23718 - 11904: 0xCC6C, + 23719 - 11904: 0xCC67, + 23720 - 11904: 0xCC60, + 23721 - 11904: 0xA9A5, + 23722 - 11904: 0xCC66, + 23723 - 11904: 0xA9A6, + 23724 - 11904: 0xCC61, + 23725 - 11904: 0xCC64, + 23726 - 11904: 0xCC5B, + 23727 - 11904: 0xCC5F, + 23728 - 11904: 0xCC6B, + 23729 - 11904: 0xA9A7, + 23731 - 11904: 0xA9A8, + 23733 - 11904: 0xCC5E, + 23734 - 11904: 0xCC6A, + 23735 - 11904: 0xA9A2, + 23736 - 11904: 0xA9A4, + 23738 - 11904: 0xFBE7, + 23745 - 11904: 0xA0F2, + 23746 - 11904: 0x9868, + 23750 - 11904: 0xCEAB, + 23751 - 11904: 0xCEA4, + 23752 - 11904: 0xCEAA, + 23753 - 11904: 0xCEA3, + 23754 - 11904: 0xCEA5, + 23755 - 11904: 0xCE7D, + 23756 - 11904: 0xCE7B, + 23758 - 11904: 0xCEAC, + 23759 - 11904: 0xCEA9, + 23760 - 11904: 0xCE79, + 23761 - 11904: 0x9F58, + 23762 - 11904: 0xABD0, + 23763 - 11904: 0xCEA7, + 23764 - 11904: 0xCEA8, + 23765 - 11904: 0x8CE6, + 23766 - 11904: 0xCEA6, + 23767 - 11904: 0xCE7C, + 23768 - 11904: 0xCE7A, + 23769 - 11904: 0xABCF, + 23770 - 11904: 0xCEA2, + 23771 - 11904: 0xCE7E, + 23774 - 11904: 0xCEA1, + 23775 - 11904: 0xCEAD, + 23781 - 11904: 0x8D73, + 23784 - 11904: 0xAE6F, + 23785 - 11904: 0xFBDE, + 23786 - 11904: 0xAE6E, + 23788 - 11904: 0xD16C, + 23789 - 11904: 0xAE6B, + 23790 - 11904: 0xD16E, + 23791 - 11904: 0xFBDF, + 23792 - 11904: 0xAE70, + 23793 - 11904: 0xD16F, + 23796 - 11904: 0xAE73, + 23797 - 11904: 0x8C48, + 23798 - 11904: 0xAE71, + 23799 - 11904: 0xD170, + 23800 - 11904: 0xCEAE, + 23801 - 11904: 0xD172, + 23803 - 11904: 0xAE6D, + 23804 - 11904: 0x8774, + 23805 - 11904: 0xAE6C, + 23807 - 11904: 0xD16D, + 23808 - 11904: 0xD171, + 23809 - 11904: 0xAE72, + 23814 - 11904: 0xB153, + 23815 - 11904: 0xB152, + 23819 - 11904: 0xD4F5, + 23820 - 11904: 0xD4F9, + 23821 - 11904: 0xD4FB, + 23822 - 11904: 0xB154, + 23823 - 11904: 0xD4FE, + 23824 - 11904: 0xFBE3, + 23825 - 11904: 0xB158, + 23826 - 11904: 0xD541, + 23828 - 11904: 0xB15A, + 23829 - 11904: 0x8DA8, + 23830 - 11904: 0xB156, + 23831 - 11904: 0xB15E, + 23832 - 11904: 0xFBE4, + 23833 - 11904: 0xB15B, + 23834 - 11904: 0xD4F7, + 23835 - 11904: 0xB155, + 23837 - 11904: 0xD4F6, + 23838 - 11904: 0xD4F4, + 23839 - 11904: 0xD543, + 23840 - 11904: 0xD4F8, + 23842 - 11904: 0xB157, + 23843 - 11904: 0xD542, + 23844 - 11904: 0xB15C, + 23845 - 11904: 0xD4FD, + 23846 - 11904: 0xD4FC, + 23847 - 11904: 0xB15D, + 23848 - 11904: 0xD4FA, + 23849 - 11904: 0xB159, + 23852 - 11904: 0x9C75, + 23854 - 11904: 0xD544, + 23855 - 11904: 0x9878, + 23856 - 11904: 0xD540, + 23857 - 11904: 0xD8E7, + 23858 - 11904: 0xD8EE, + 23859 - 11904: 0xD8E3, + 23860 - 11904: 0xB451, + 23861 - 11904: 0xD8DF, + 23862 - 11904: 0xD8EF, + 23863 - 11904: 0xD8D9, + 23864 - 11904: 0xD8EC, + 23865 - 11904: 0xD8EA, + 23866 - 11904: 0xD8E4, + 23868 - 11904: 0xD8ED, + 23869 - 11904: 0xD8E6, + 23870 - 11904: 0x8D60, + 23871 - 11904: 0xD8DE, + 23872 - 11904: 0xD8F0, + 23873 - 11904: 0xD8DC, + 23874 - 11904: 0xD8E9, + 23875 - 11904: 0xD8DA, + 23877 - 11904: 0xD8F1, + 23878 - 11904: 0xFBE5, + 23879 - 11904: 0xB452, + 23880 - 11904: 0x8D61, + 23881 - 11904: 0xD8EB, + 23882 - 11904: 0xDD4F, + 23883 - 11904: 0xD8DD, + 23884 - 11904: 0xB44F, + 23886 - 11904: 0xD8E1, + 23888 - 11904: 0xB450, + 23889 - 11904: 0xD8E0, + 23890 - 11904: 0xD8E5, + 23893 - 11904: 0xD8E2, + 23894 - 11904: 0x8D62, + 23895 - 11904: 0xA0A1, + 23897 - 11904: 0xD8E8, + 23899 - 11904: 0x9C40, + 23902 - 11904: 0xDD53, + 23906 - 11904: 0xDD56, + 23907 - 11904: 0xDD4E, + 23909 - 11904: 0xDD50, + 23911 - 11904: 0xDD55, + 23912 - 11904: 0xDD54, + 23913 - 11904: 0xB743, + 23915 - 11904: 0xD8DB, + 23916 - 11904: 0xDD52, + 23919 - 11904: 0xB744, + 23920 - 11904: 0x98AD, + 23921 - 11904: 0xDD4D, + 23922 - 11904: 0xDD51, + 23924 - 11904: 0x9EEA, + 23927 - 11904: 0xE1A9, + 23928 - 11904: 0x8CEC, + 23929 - 11904: 0xE1B0, + 23930 - 11904: 0xE1A7, + 23931 - 11904: 0x8CD4, + 23932 - 11904: 0xE1AE, + 23933 - 11904: 0xE1A5, + 23934 - 11904: 0xE1AD, + 23935 - 11904: 0xE1B1, + 23936 - 11904: 0xE1A4, + 23937 - 11904: 0xE1A8, + 23938 - 11904: 0xE1A3, + 23940 - 11904: 0xB9F1, + 23941 - 11904: 0x9CEB, + 23942 - 11904: 0xE1A6, + 23943 - 11904: 0xB9F2, + 23944 - 11904: 0xE1AC, + 23945 - 11904: 0xE1AB, + 23946 - 11904: 0xE1AA, + 23947 - 11904: 0xFBE0, + 23949 - 11904: 0xE1AF, + 23950 - 11904: 0x9F51, + 23954 - 11904: 0xE565, + 23955 - 11904: 0xE567, + 23956 - 11904: 0xBC6B, + 23957 - 11904: 0xE568, + 23959 - 11904: 0xE563, + 23961 - 11904: 0xE562, + 23962 - 11904: 0xE56C, + 23964 - 11904: 0xE56A, + 23965 - 11904: 0xBC6A, + 23966 - 11904: 0xE56D, + 23967 - 11904: 0xE564, + 23968 - 11904: 0xE569, + 23969 - 11904: 0xE56B, + 23970 - 11904: 0xE566, + 23972 - 11904: 0x8D65, + 23975 - 11904: 0xE961, + 23976 - 11904: 0xE966, + 23977 - 11904: 0xE960, + 23978 - 11904: 0xE965, + 23979 - 11904: 0x9CF1, + 23980 - 11904: 0xE95E, + 23981 - 11904: 0xE968, + 23982 - 11904: 0xE964, + 23983 - 11904: 0xE969, + 23984 - 11904: 0xE963, + 23985 - 11904: 0xE95F, + 23986 - 11904: 0xE967, + 23988 - 11904: 0xE96A, + 23989 - 11904: 0xE962, + 23990 - 11904: 0xFC58, + 23991 - 11904: 0xECDA, + 23992 - 11904: 0xC0AF, + 23993 - 11904: 0x8D66, + 23994 - 11904: 0xC0AD, + 23996 - 11904: 0xC0AC, + 23997 - 11904: 0xC0AE, + 24000 - 11904: 0xEFC4, + 24001 - 11904: 0x9654, + 24002 - 11904: 0xF172, + 24003 - 11904: 0xF1FD, + 24006 - 11904: 0xF444, + 24007 - 11904: 0xF445, + 24009 - 11904: 0xC460, + 24011 - 11904: 0xF5C9, + 24013 - 11904: 0xC4DE, + 24015 - 11904: 0xF5CA, + 24017 - 11904: 0xF6DE, + 24018 - 11904: 0xC572, + 24020 - 11904: 0xC571, + 24021 - 11904: 0xF6DD, + 24022 - 11904: 0xC5C9, + 24023 - 11904: 0xFBE8, + 24024 - 11904: 0xF7D6, + 24027 - 11904: 0xC6CC, + 24029 - 11904: 0xA474, + 24030 - 11904: 0xA67B, + 24031 - 11904: 0xC9DA, + 24032 - 11904: 0xCACA, + 24033 - 11904: 0xA8B5, + 24034 - 11904: 0xB15F, + 24037 - 11904: 0xA475, + 24038 - 11904: 0xA5AA, + 24039 - 11904: 0xA5A9, + 24040 - 11904: 0xA5A8, + 24043 - 11904: 0xA7C5, + 24046 - 11904: 0xAE74, + 24048 - 11904: 0xDD57, + 24049 - 11904: 0xA476, + 24050 - 11904: 0xA477, + 24051 - 11904: 0xA478, + 24052 - 11904: 0xA4DA, + 24053 - 11904: 0x9FCE, + 24055 - 11904: 0xABD1, + 24057 - 11904: 0xCEAF, + 24061 - 11904: 0xB453, + 24062 - 11904: 0xA479, + 24063 - 11904: 0xC95D, + 24066 - 11904: 0xA5AB, + 24067 - 11904: 0xA5AC, + 24068 - 11904: 0xC978, + 24070 - 11904: 0xA67C, + 24073 - 11904: 0xFBFC, + 24074 - 11904: 0xCACB, + 24075 - 11904: 0x9AE4, + 24076 - 11904: 0xA7C6, + 24078 - 11904: 0xCACC, + 24081 - 11904: 0xA9AE, + 24082 - 11904: 0x9F75, + 24084 - 11904: 0xCC6E, + 24085 - 11904: 0xA9AC, + 24086 - 11904: 0xA9AB, + 24087 - 11904: 0xCC6D, + 24088 - 11904: 0xA9A9, + 24089 - 11904: 0xCC6F, + 24090 - 11904: 0xA9AA, + 24091 - 11904: 0xA9AD, + 24093 - 11904: 0xABD2, + 24095 - 11904: 0xABD4, + 24096 - 11904: 0xCEB3, + 24097 - 11904: 0xCEB0, + 24098 - 11904: 0xCEB1, + 24099 - 11904: 0xCEB2, + 24100 - 11904: 0xCEB4, + 24101 - 11904: 0xABD3, + 24104 - 11904: 0xD174, + 24105 - 11904: 0xD173, + 24107 - 11904: 0xAE76, + 24109 - 11904: 0xAE75, + 24110 - 11904: 0xFBF1, + 24115 - 11904: 0xB162, + 24116 - 11904: 0xD546, + 24118 - 11904: 0xB161, + 24119 - 11904: 0xB163, + 24120 - 11904: 0xB160, + 24125 - 11904: 0xB455, + 24126 - 11904: 0xD545, + 24128 - 11904: 0xB456, + 24129 - 11904: 0xD8F3, + 24130 - 11904: 0x8D69, + 24131 - 11904: 0xB457, + 24132 - 11904: 0xD8F2, + 24133 - 11904: 0xB454, + 24136 - 11904: 0x934F, + 24138 - 11904: 0xDD5A, + 24139 - 11904: 0xDD5C, + 24140 - 11904: 0xB745, + 24141 - 11904: 0xDD5B, + 24142 - 11904: 0xDD59, + 24143 - 11904: 0xDD58, + 24147 - 11904: 0xE1B4, + 24148 - 11904: 0xB9F7, + 24149 - 11904: 0xB9F5, + 24151 - 11904: 0xB9F6, + 24152 - 11904: 0xE1B2, + 24153 - 11904: 0xE1B3, + 24155 - 11904: 0xB9F3, + 24156 - 11904: 0xE571, + 24157 - 11904: 0xE56F, + 24158 - 11904: 0x934E, + 24159 - 11904: 0xBC6D, + 24160 - 11904: 0xE570, + 24161 - 11904: 0xBC6E, + 24162 - 11904: 0xBC6C, + 24163 - 11904: 0xB9F4, + 24166 - 11904: 0xE96D, + 24167 - 11904: 0xE96B, + 24168 - 11904: 0xE96C, + 24169 - 11904: 0xE56E, + 24170 - 11904: 0xECDC, + 24171 - 11904: 0xC0B0, + 24172 - 11904: 0xECDB, + 24173 - 11904: 0xEFC5, + 24174 - 11904: 0xEFC6, + 24175 - 11904: 0xE96E, + 24176 - 11904: 0xF1FE, + 24178 - 11904: 0xA47A, + 24179 - 11904: 0xA5AD, + 24180 - 11904: 0xA67E, + 24181 - 11904: 0xFBF3, + 24182 - 11904: 0xA67D, + 24184 - 11904: 0xA9AF, + 24185 - 11904: 0xB746, + 24186 - 11904: 0xFBF4, + 24187 - 11904: 0xA4DB, + 24188 - 11904: 0xA5AE, + 24189 - 11904: 0xABD5, + 24190 - 11904: 0xB458, + 24191 - 11904: 0xC6CE, + 24192 - 11904: 0xC979, + 24194 - 11904: 0xC97A, + 24195 - 11904: 0xFBC3, + 24196 - 11904: 0xC9DC, + 24198 - 11904: 0x8965, + 24199 - 11904: 0xA7C8, + 24200 - 11904: 0xCAD0, + 24201 - 11904: 0xCACE, + 24202 - 11904: 0xA7C9, + 24203 - 11904: 0xCACD, + 24204 - 11904: 0xCACF, + 24205 - 11904: 0xCAD1, + 24207 - 11904: 0xA7C7, + 24210 - 11904: 0x8C7A, + 24213 - 11904: 0xA9B3, + 24214 - 11904: 0xA9B4, + 24215 - 11904: 0xA9B1, + 24217 - 11904: 0x8C7B, + 24218 - 11904: 0xA9B0, + 24219 - 11904: 0xCEB8, + 24220 - 11904: 0xA9B2, + 24224 - 11904: 0xABD6, + 24226 - 11904: 0xCEB7, + 24227 - 11904: 0xCEB9, + 24228 - 11904: 0xCEB6, + 24229 - 11904: 0xCEBA, + 24230 - 11904: 0xABD7, + 24231 - 11904: 0xAE79, + 24232 - 11904: 0xD175, + 24234 - 11904: 0xD177, + 24235 - 11904: 0xAE77, + 24236 - 11904: 0xD178, + 24237 - 11904: 0xAE78, + 24238 - 11904: 0xD176, + 24240 - 11904: 0xCEB5, + 24241 - 11904: 0xD547, + 24242 - 11904: 0xD54A, + 24243 - 11904: 0xD54B, + 24244 - 11904: 0xD548, + 24245 - 11904: 0xB167, + 24246 - 11904: 0xB166, + 24247 - 11904: 0xB164, + 24248 - 11904: 0xB165, + 24249 - 11904: 0xD549, + 24253 - 11904: 0x8D6A, + 24254 - 11904: 0xB168, + 24257 - 11904: 0xB45A, + 24258 - 11904: 0xB45B, + 24260 - 11904: 0xB45C, + 24261 - 11904: 0xDD5D, + 24262 - 11904: 0xDD5F, + 24263 - 11904: 0xDD61, + 24264 - 11904: 0xB748, + 24265 - 11904: 0xB747, + 24266 - 11904: 0xB459, + 24267 - 11904: 0xDD60, + 24268 - 11904: 0xDD5E, + 24269 - 11904: 0x9353, + 24270 - 11904: 0xE1B8, + 24272 - 11904: 0xFBF9, + 24273 - 11904: 0xE1B6, + 24274 - 11904: 0xE1BC, + 24275 - 11904: 0xB9F8, + 24276 - 11904: 0xE1BD, + 24277 - 11904: 0xE1BA, + 24278 - 11904: 0xB9F9, + 24279 - 11904: 0xE1B7, + 24280 - 11904: 0xE1B5, + 24281 - 11904: 0xE1BB, + 24282 - 11904: 0xBC70, + 24283 - 11904: 0xE573, + 24284 - 11904: 0xE1B9, + 24285 - 11904: 0xBC72, + 24286 - 11904: 0xE574, + 24287 - 11904: 0xBC71, + 24288 - 11904: 0xBC74, + 24289 - 11904: 0xE575, + 24290 - 11904: 0xBC6F, + 24291 - 11904: 0xBC73, + 24293 - 11904: 0xE973, + 24294 - 11904: 0xE971, + 24295 - 11904: 0xE970, + 24296 - 11904: 0xE972, + 24297 - 11904: 0xE96F, + 24300 - 11904: 0xC366, + 24302 - 11904: 0xF446, + 24303 - 11904: 0xF447, + 24305 - 11904: 0xF5CB, + 24306 - 11904: 0xF6DF, + 24307 - 11904: 0xC655, + 24308 - 11904: 0xFBFD, + 24310 - 11904: 0xA9B5, + 24311 - 11904: 0xA7CA, + 24312 - 11904: 0x9059, + 24313 - 11904: 0xFC40, + 24314 - 11904: 0xABD8, + 24315 - 11904: 0xFC41, + 24316 - 11904: 0xFC43, + 24318 - 11904: 0xA47B, + 24319 - 11904: 0xA4DC, + 24321 - 11904: 0xA5AF, + 24322 - 11904: 0xC9DD, + 24324 - 11904: 0xA7CB, + 24325 - 11904: 0xCAD2, + 24327 - 11904: 0xCEBB, + 24328 - 11904: 0xABD9, + 24330 - 11904: 0xB9FA, + 24331 - 11904: 0xA47C, + 24332 - 11904: 0x9FD8, + 24333 - 11904: 0xFC46, + 24334 - 11904: 0x9362, + 24335 - 11904: 0xA6A1, + 24338 - 11904: 0xB749, + 24339 - 11904: 0xA47D, + 24340 - 11904: 0xA4DD, + 24341 - 11904: 0xA4DE, + 24343 - 11904: 0xA5B1, + 24344 - 11904: 0xA5B0, + 24346 - 11904: 0xC9DE, + 24347 - 11904: 0xA6A2, + 24349 - 11904: 0xCAD3, + 24351 - 11904: 0xA7CC, + 24354 - 11904: 0xCC71, + 24355 - 11904: 0xCC72, + 24356 - 11904: 0xCC73, + 24357 - 11904: 0x8D6B, + 24358 - 11904: 0xA9B6, + 24359 - 11904: 0xA9B7, + 24360 - 11904: 0xCC70, + 24361 - 11904: 0xA9B8, + 24365 - 11904: 0xABDA, + 24366 - 11904: 0xCEBC, + 24368 - 11904: 0xD17A, + 24369 - 11904: 0xAE7A, + 24371 - 11904: 0xD179, + 24373 - 11904: 0xB169, + 24374 - 11904: 0xD54C, + 24375 - 11904: 0xB16A, + 24376 - 11904: 0xD54D, + 24378 - 11904: 0xFC4C, + 24379 - 11904: 0x8CFE, + 24380 - 11904: 0xB45D, + 24384 - 11904: 0xDD62, + 24387 - 11904: 0xE1BF, + 24388 - 11904: 0xE1BE, + 24390 - 11904: 0xB9FB, + 24392 - 11904: 0xBC75, + 24393 - 11904: 0xE576, + 24394 - 11904: 0xBECA, + 24395 - 11904: 0xE974, + 24396 - 11904: 0xC0B1, + 24397 - 11904: 0x95B8, + 24398 - 11904: 0xC573, + 24399 - 11904: 0xF7D8, + 24400 - 11904: 0xC6D0, + 24401 - 11904: 0x8BCA, + 24404 - 11904: 0xCC74, + 24406 - 11904: 0xCEBD, + 24407 - 11904: 0xB16B, + 24408 - 11904: 0xFC4F, + 24409 - 11904: 0xB74A, + 24412 - 11904: 0x987A, + 24413 - 11904: 0xC255, + 24417 - 11904: 0xC6D1, + 24418 - 11904: 0xA7CE, + 24419 - 11904: 0xFC51, + 24420 - 11904: 0xA7CD, + 24421 - 11904: 0xABDB, + 24423 - 11904: 0xD17B, + 24425 - 11904: 0xB16D, + 24426 - 11904: 0xB343, + 24427 - 11904: 0xB16E, + 24428 - 11904: 0xB16C, + 24429 - 11904: 0xB45E, + 24431 - 11904: 0xE1C0, + 24432 - 11904: 0xB9FC, + 24433 - 11904: 0xBC76, + 24434 - 11904: 0xFC54, + 24435 - 11904: 0xC94C, + 24436 - 11904: 0xC9DF, + 24438 - 11904: 0xCAD5, + 24439 - 11904: 0xA7CF, + 24440 - 11904: 0xCAD4, + 24441 - 11904: 0xA7D0, + 24443 - 11904: 0xFAAF, + 24444 - 11904: 0xA9BC, + 24445 - 11904: 0xCC77, + 24446 - 11904: 0xCC76, + 24447 - 11904: 0xA9BB, + 24448 - 11904: 0xA9B9, + 24449 - 11904: 0xA9BA, + 24450 - 11904: 0xCC75, + 24451 - 11904: 0x8D6C, + 24453 - 11904: 0xABDD, + 24454 - 11904: 0xCEBE, + 24455 - 11904: 0xABE0, + 24456 - 11904: 0xABDC, + 24457 - 11904: 0xABE2, + 24458 - 11904: 0xABDE, + 24459 - 11904: 0xABDF, + 24460 - 11904: 0xABE1, + 24464 - 11904: 0xAE7D, + 24465 - 11904: 0xAE7C, + 24466 - 11904: 0xAE7B, + 24470 - 11904: 0xD54F, + 24471 - 11904: 0xB16F, + 24472 - 11904: 0xB172, + 24473 - 11904: 0xB170, + 24475 - 11904: 0xD54E, + 24476 - 11904: 0xB175, + 24478 - 11904: 0xB171, + 24479 - 11904: 0xD550, + 24480 - 11904: 0xB174, + 24481 - 11904: 0xB173, + 24484 - 11904: 0xFA61, + 24485 - 11904: 0xD8F6, + 24486 - 11904: 0xD8F5, + 24487 - 11904: 0xFC57, + 24488 - 11904: 0xB461, + 24489 - 11904: 0xB45F, + 24490 - 11904: 0xB460, + 24491 - 11904: 0xD8F7, + 24492 - 11904: 0xB74B, + 24493 - 11904: 0xDD64, + 24494 - 11904: 0xB74C, + 24495 - 11904: 0xDD63, + 24497 - 11904: 0x9B70, + 24498 - 11904: 0xE577, + 24501 - 11904: 0xBC78, + 24502 - 11904: 0xE1C1, + 24503 - 11904: 0xBC77, + 24505 - 11904: 0xB9FD, + 24506 - 11904: 0xA051, + 24507 - 11904: 0xECDE, + 24508 - 11904: 0xE975, + 24509 - 11904: 0xC0B2, + 24510 - 11904: 0xECDD, + 24511 - 11904: 0xF240, + 24512 - 11904: 0xF448, + 24513 - 11904: 0xF449, + 24514 - 11904: 0x8C7C, + 24515 - 11904: 0xA4DF, + 24516 - 11904: 0x8BCB, + 24517 - 11904: 0xA5B2, + 24521 - 11904: 0xC97B, + 24524 - 11904: 0xA7D2, + 24525 - 11904: 0xA7D4, + 24527 - 11904: 0xC9E2, + 24528 - 11904: 0xCAD8, + 24529 - 11904: 0xCAD7, + 24530 - 11904: 0xCAD6, + 24532 - 11904: 0xC9E1, + 24533 - 11904: 0xC9E0, + 24534 - 11904: 0xA6A4, + 24535 - 11904: 0xA7D3, + 24536 - 11904: 0xA7D1, + 24537 - 11904: 0xA6A3, + 24539 - 11904: 0x936E, + 24541 - 11904: 0xA9BD, + 24542 - 11904: 0xCC78, + 24543 - 11904: 0xFCD5, + 24544 - 11904: 0xA9BE, + 24545 - 11904: 0xCADD, + 24547 - 11904: 0xCADF, + 24548 - 11904: 0xCADE, + 24549 - 11904: 0xCC79, + 24552 - 11904: 0xCADA, + 24554 - 11904: 0xA7D8, + 24555 - 11904: 0xA7D6, + 24557 - 11904: 0xCAD9, + 24558 - 11904: 0xCADB, + 24559 - 11904: 0xCAE1, + 24561 - 11904: 0xA7D5, + 24563 - 11904: 0xCADC, + 24564 - 11904: 0xCAE5, + 24565 - 11904: 0xA9C0, + 24567 - 11904: 0xCAE2, + 24568 - 11904: 0xA7D7, + 24570 - 11904: 0xCAE0, + 24571 - 11904: 0xCAE3, + 24573 - 11904: 0xA9BF, + 24575 - 11904: 0xA9C1, + 24576 - 11904: 0xCAE4, + 24585 - 11904: 0xCCAF, + 24586 - 11904: 0xCCA2, + 24587 - 11904: 0xCC7E, + 24588 - 11904: 0xCCAE, + 24589 - 11904: 0xCCA9, + 24590 - 11904: 0xABE7, + 24591 - 11904: 0xA9C2, + 24592 - 11904: 0xCCAA, + 24593 - 11904: 0xCCAD, + 24594 - 11904: 0xABE3, + 24595 - 11904: 0xCCAC, + 24596 - 11904: 0xA9C3, + 24597 - 11904: 0xA9C8, + 24598 - 11904: 0xA9C6, + 24599 - 11904: 0xCCA3, + 24601 - 11904: 0xCC7C, + 24602 - 11904: 0xCCA5, + 24603 - 11904: 0xA9CD, + 24604 - 11904: 0xCCB0, + 24605 - 11904: 0xABE4, + 24606 - 11904: 0xCCA6, + 24608 - 11904: 0xABE5, + 24609 - 11904: 0xA9C9, + 24610 - 11904: 0xCCA8, + 24611 - 11904: 0xFCA9, + 24612 - 11904: 0xCECD, + 24613 - 11904: 0xABE6, + 24614 - 11904: 0xCC7B, + 24615 - 11904: 0xA9CA, + 24616 - 11904: 0xABE8, + 24617 - 11904: 0xA9CB, + 24618 - 11904: 0xA9C7, + 24619 - 11904: 0xA9CC, + 24620 - 11904: 0xCCA7, + 24621 - 11904: 0xCC7A, + 24622 - 11904: 0xCCAB, + 24623 - 11904: 0xA9C4, + 24625 - 11904: 0xFC61, + 24626 - 11904: 0xCC7D, + 24627 - 11904: 0xCCA4, + 24628 - 11904: 0xCCA1, + 24629 - 11904: 0xA9C5, + 24631 - 11904: 0xCEBF, + 24633 - 11904: 0xCEC0, + 24635 - 11904: 0x8966, + 24640 - 11904: 0xCECA, + 24641 - 11904: 0xD1A1, + 24642 - 11904: 0xCECB, + 24643 - 11904: 0xABEE, + 24644 - 11904: 0xCECE, + 24645 - 11904: 0xCEC4, + 24646 - 11904: 0xABED, + 24647 - 11904: 0xCEC6, + 24649 - 11904: 0xCEC7, + 24650 - 11904: 0xFACB, + 24652 - 11904: 0xCEC9, + 24653 - 11904: 0xABE9, + 24656 - 11904: 0xAEA3, + 24658 - 11904: 0xF9DA, + 24659 - 11904: 0xCEC5, + 24660 - 11904: 0xCEC1, + 24661 - 11904: 0xAEA4, + 24664 - 11904: 0xCECF, + 24665 - 11904: 0xAE7E, + 24666 - 11904: 0xD17D, + 24667 - 11904: 0xCEC8, + 24669 - 11904: 0xD17C, + 24670 - 11904: 0xCEC3, + 24671 - 11904: 0xCECC, + 24674 - 11904: 0xABEC, + 24675 - 11904: 0xAEA1, + 24676 - 11904: 0xABF2, + 24677 - 11904: 0xAEA2, + 24678 - 11904: 0xCED0, + 24679 - 11904: 0xD17E, + 24680 - 11904: 0xABEB, + 24681 - 11904: 0xAEA6, + 24682 - 11904: 0xABF1, + 24683 - 11904: 0xABF0, + 24684 - 11904: 0xABEF, + 24685 - 11904: 0xAEA5, + 24686 - 11904: 0xCED1, + 24687 - 11904: 0xAEA7, + 24688 - 11904: 0xABEA, + 24690 - 11904: 0xCEC2, + 24693 - 11904: 0x937A, + 24695 - 11904: 0xA0E0, + 24702 - 11904: 0x936B, + 24703 - 11904: 0xB176, + 24704 - 11904: 0xD1A4, + 24705 - 11904: 0xD1A6, + 24707 - 11904: 0xD1A8, + 24708 - 11904: 0xAEA8, + 24709 - 11904: 0xAEAE, + 24710 - 11904: 0xD553, + 24711 - 11904: 0xD1AC, + 24712 - 11904: 0xD1A3, + 24713 - 11904: 0xB178, + 24714 - 11904: 0xD551, + 24716 - 11904: 0xAEAD, + 24717 - 11904: 0xAEAB, + 24718 - 11904: 0xD1AE, + 24720 - 11904: 0xD552, + 24722 - 11904: 0xD1A5, + 24724 - 11904: 0xAEAC, + 24725 - 11904: 0xD1A9, + 24726 - 11904: 0xAEAF, + 24727 - 11904: 0xD1AB, + 24730 - 11904: 0xAEAA, + 24731 - 11904: 0xD1AA, + 24732 - 11904: 0xD1AD, + 24733 - 11904: 0xD1A7, + 24734 - 11904: 0xFC6B, + 24735 - 11904: 0xAEA9, + 24736 - 11904: 0xB179, + 24738 - 11904: 0xD1A2, + 24739 - 11904: 0xB177, + 24740 - 11904: 0xFC6C, + 24743 - 11904: 0x9468, + 24744 - 11904: 0xB17A, + 24752 - 11904: 0xD555, + 24753 - 11904: 0xD55E, + 24754 - 11904: 0xB464, + 24755 - 11904: 0xFC6D, + 24756 - 11904: 0xB17C, + 24757 - 11904: 0xB1A3, + 24758 - 11904: 0xB465, + 24759 - 11904: 0xD560, + 24760 - 11904: 0xB1AA, + 24761 - 11904: 0xD8F9, + 24762 - 11904: 0xD556, + 24763 - 11904: 0xB1A2, + 24764 - 11904: 0xB1A5, + 24765 - 11904: 0xB17E, + 24766 - 11904: 0xD554, + 24767 - 11904: 0xD562, + 24768 - 11904: 0xD565, + 24769 - 11904: 0xD949, + 24771 - 11904: 0xD563, + 24772 - 11904: 0xD8FD, + 24773 - 11904: 0xB1A1, + 24774 - 11904: 0xB1A8, + 24775 - 11904: 0xB1AC, + 24776 - 11904: 0xD55D, + 24777 - 11904: 0xD8F8, + 24778 - 11904: 0xD561, + 24779 - 11904: 0xB17B, + 24780 - 11904: 0xD8FA, + 24781 - 11904: 0xD564, + 24782 - 11904: 0xD8FC, + 24783 - 11904: 0xD559, + 24785 - 11904: 0xB462, + 24787 - 11904: 0xD557, + 24788 - 11904: 0xD558, + 24789 - 11904: 0xB1A7, + 24791 - 11904: 0x8D71, + 24792 - 11904: 0xB1A6, + 24793 - 11904: 0xD55B, + 24794 - 11904: 0xB1AB, + 24795 - 11904: 0xD55F, + 24796 - 11904: 0xB1A4, + 24797 - 11904: 0xD55C, + 24798 - 11904: 0xFD64, + 24799 - 11904: 0xB1A9, + 24800 - 11904: 0xB466, + 24801 - 11904: 0xB463, + 24802 - 11904: 0xD8FB, + 24803 - 11904: 0x99BA, + 24804 - 11904: 0xD55A, + 24806 - 11904: 0xB17D, + 24807 - 11904: 0x9AD0, + 24808 - 11904: 0x9A61, + 24809 - 11904: 0xA0E5, + 24816 - 11904: 0xB46B, + 24817 - 11904: 0xB46F, + 24818 - 11904: 0xD940, + 24819 - 11904: 0xB751, + 24820 - 11904: 0xB46D, + 24821 - 11904: 0xD944, + 24822 - 11904: 0xB471, + 24823 - 11904: 0xDD65, + 24824 - 11904: 0xD946, + 24825 - 11904: 0xB753, + 24826 - 11904: 0xB469, + 24827 - 11904: 0xB46C, + 24828 - 11904: 0xD947, + 24829 - 11904: 0xA05B, + 24830 - 11904: 0xD948, + 24831 - 11904: 0xD94E, + 24832 - 11904: 0xB473, + 24833 - 11904: 0xB754, + 24835 - 11904: 0xD94A, + 24836 - 11904: 0xD94F, + 24837 - 11904: 0xD943, + 24838 - 11904: 0xB75E, + 24839 - 11904: 0x96AC, + 24840 - 11904: 0xB755, + 24841 - 11904: 0xB472, + 24842 - 11904: 0xD941, + 24843 - 11904: 0xD950, + 24844 - 11904: 0x9740, + 24845 - 11904: 0xB75D, + 24846 - 11904: 0xB470, + 24847 - 11904: 0xB74E, + 24848 - 11904: 0xD94D, + 24850 - 11904: 0xB474, + 24851 - 11904: 0xD945, + 24852 - 11904: 0xD8FE, + 24853 - 11904: 0xB46A, + 24854 - 11904: 0xD942, + 24856 - 11904: 0xD94B, + 24857 - 11904: 0x9EF1, + 24858 - 11904: 0xB74D, + 24859 - 11904: 0xB752, + 24860 - 11904: 0xB467, + 24861 - 11904: 0xD94C, + 24863 - 11904: 0xB750, + 24866 - 11904: 0x8C4D, + 24867 - 11904: 0xB468, + 24871 - 11904: 0xB75C, + 24872 - 11904: 0xE1C3, + 24873 - 11904: 0xDD70, + 24875 - 11904: 0xDD68, + 24876 - 11904: 0xE1C2, + 24878 - 11904: 0xDD6C, + 24879 - 11904: 0xDD6E, + 24880 - 11904: 0x9F7E, + 24882 - 11904: 0xDD6B, + 24884 - 11904: 0xB75B, + 24886 - 11904: 0xDD6A, + 24887 - 11904: 0xB75F, + 24891 - 11904: 0xE1D2, + 24893 - 11904: 0x8D72, + 24894 - 11904: 0xB75A, + 24895 - 11904: 0xBA40, + 24896 - 11904: 0xDD71, + 24897 - 11904: 0xE1C4, + 24898 - 11904: 0xFC76, + 24900 - 11904: 0xB758, + 24901 - 11904: 0xDD69, + 24902 - 11904: 0xDD6D, + 24903 - 11904: 0xB9FE, + 24904 - 11904: 0xB74F, + 24905 - 11904: 0xDD66, + 24906 - 11904: 0xDD67, + 24907 - 11904: 0xBA41, + 24908 - 11904: 0xB757, + 24909 - 11904: 0xB759, + 24910 - 11904: 0xB756, + 24911 - 11904: 0xDD6F, + 24912 - 11904: 0x96A9, + 24914 - 11904: 0xE1C8, + 24915 - 11904: 0xE1C9, + 24916 - 11904: 0xE1CE, + 24917 - 11904: 0xBC7D, + 24918 - 11904: 0xE1D5, + 24920 - 11904: 0xBA47, + 24921 - 11904: 0xA06E, + 24922 - 11904: 0xBA46, + 24923 - 11904: 0xE1D0, + 24924 - 11904: 0xFCAA, + 24925 - 11904: 0xBC7C, + 24926 - 11904: 0xE1C5, + 24927 - 11904: 0xBA45, + 24928 - 11904: 0xFBCD, + 24929 - 11904: 0xE1D4, + 24930 - 11904: 0xBA43, + 24931 - 11904: 0xBA44, + 24932 - 11904: 0xFC74, + 24933 - 11904: 0xE1D1, + 24934 - 11904: 0xE5AA, + 24935 - 11904: 0xBC7A, + 24936 - 11904: 0xB46E, + 24938 - 11904: 0xE1D3, + 24939 - 11904: 0xBCA3, + 24940 - 11904: 0xE1CB, + 24942 - 11904: 0xBC7B, + 24943 - 11904: 0xA074, + 24944 - 11904: 0xBCA2, + 24945 - 11904: 0xE1C6, + 24946 - 11904: 0xE1CA, + 24947 - 11904: 0xE1C7, + 24948 - 11904: 0xE1CD, + 24949 - 11904: 0xBA48, + 24950 - 11904: 0xBC79, + 24951 - 11904: 0xBA42, + 24953 - 11904: 0xE57A, + 24954 - 11904: 0xE1CF, + 24956 - 11904: 0xBCA1, + 24957 - 11904: 0xA071, + 24958 - 11904: 0xBCA4, + 24960 - 11904: 0xE1CC, + 24961 - 11904: 0xFC79, + 24962 - 11904: 0xBC7E, + 24963 - 11904: 0xE579, + 24967 - 11904: 0xFC7C, + 24969 - 11904: 0xE57E, + 24970 - 11904: 0xBECE, + 24971 - 11904: 0xE578, + 24972 - 11904: 0xE9A3, + 24973 - 11904: 0xE5A9, + 24974 - 11904: 0xBCA8, + 24976 - 11904: 0xBCA6, + 24977 - 11904: 0xBECC, + 24978 - 11904: 0xE5A6, + 24979 - 11904: 0xE5A2, + 24980 - 11904: 0xBCAC, + 24981 - 11904: 0x9C50, + 24982 - 11904: 0xE978, + 24984 - 11904: 0x9379, + 24985 - 11904: 0x9378, + 24986 - 11904: 0xBCAA, + 24987 - 11904: 0xE5A1, + 24988 - 11904: 0xA0DD, + 24989 - 11904: 0xE976, + 24991 - 11904: 0xE5A5, + 24993 - 11904: 0xE5A8, + 24994 - 11904: 0xE57D, + 24996 - 11904: 0xBCAB, + 24999 - 11904: 0xBCA5, + 25000 - 11904: 0xE977, + 25001 - 11904: 0xBECD, + 25002 - 11904: 0xE5A7, + 25003 - 11904: 0xBCA7, + 25004 - 11904: 0xBCA9, + 25005 - 11904: 0xE5A4, + 25006 - 11904: 0xBCAD, + 25007 - 11904: 0xE5A3, + 25008 - 11904: 0xE57C, + 25009 - 11904: 0xE57B, + 25010 - 11904: 0xBECB, + 25011 - 11904: 0xE5AB, + 25012 - 11904: 0xE97A, + 25013 - 11904: 0xECE0, + 25014 - 11904: 0xBED0, + 25015 - 11904: 0x8D75, + 25016 - 11904: 0xE9A2, + 25017 - 11904: 0x8D76, + 25018 - 11904: 0xE97E, + 25020 - 11904: 0xECE1, + 25022 - 11904: 0xBED1, + 25023 - 11904: 0xE9A1, + 25024 - 11904: 0x9374, + 25025 - 11904: 0xE97C, + 25026 - 11904: 0xC0B4, + 25027 - 11904: 0xECDF, + 25029 - 11904: 0xE979, + 25030 - 11904: 0xE97B, + 25031 - 11904: 0xC0B5, + 25032 - 11904: 0xBED3, + 25033 - 11904: 0xC0B3, + 25034 - 11904: 0xBED2, + 25035 - 11904: 0xC0B7, + 25036 - 11904: 0xE97D, + 25037 - 11904: 0xBECF, + 25039 - 11904: 0x8D77, + 25040 - 11904: 0xFCA5, + 25043 - 11904: 0xFCA2, + 25046 - 11904: 0xEFCF, + 25048 - 11904: 0xEFC7, + 25050 - 11904: 0x90C3, + 25054 - 11904: 0xECE7, + 25055 - 11904: 0xEFC8, + 25056 - 11904: 0xECE3, + 25058 - 11904: 0xA079, + 25059 - 11904: 0xC256, + 25060 - 11904: 0xECE5, + 25061 - 11904: 0xECE4, + 25062 - 11904: 0xC0B6, + 25063 - 11904: 0xECE2, + 25064 - 11904: 0xECE6, + 25065 - 11904: 0xEFD0, + 25066 - 11904: 0xEFCC, + 25067 - 11904: 0xEFCE, + 25069 - 11904: 0xEFC9, + 25070 - 11904: 0xEFCA, + 25072 - 11904: 0xEFCD, + 25073 - 11904: 0xEFCB, + 25074 - 11904: 0xC367, + 25077 - 11904: 0xC36A, + 25078 - 11904: 0xC369, + 25079 - 11904: 0xC368, + 25080 - 11904: 0xC461, + 25081 - 11904: 0xF44A, + 25082 - 11904: 0xC462, + 25083 - 11904: 0xF241, + 25084 - 11904: 0xC4DF, + 25085 - 11904: 0xF5CC, + 25086 - 11904: 0xC4E0, + 25087 - 11904: 0xC574, + 25088 - 11904: 0xC5CA, + 25089 - 11904: 0xF7D9, + 25091 - 11904: 0xF7DA, + 25092 - 11904: 0xF7DB, + 25095 - 11904: 0xF9BA, + 25096 - 11904: 0xA4E0, + 25097 - 11904: 0xC97C, + 25098 - 11904: 0xA5B3, + 25100 - 11904: 0xA6A6, + 25101 - 11904: 0xA6A7, + 25102 - 11904: 0xA6A5, + 25104 - 11904: 0xA6A8, + 25105 - 11904: 0xA7DA, + 25106 - 11904: 0xA7D9, + 25108 - 11904: 0xCCB1, + 25109 - 11904: 0xA9CF, + 25110 - 11904: 0xA9CE, + 25113 - 11904: 0xD1AF, + 25114 - 11904: 0xB1AD, + 25115 - 11904: 0xB1AE, + 25119 - 11904: 0xB475, + 25120 - 11904: 0xDD72, + 25121 - 11904: 0xB760, + 25122 - 11904: 0xB761, + 25123 - 11904: 0xDD74, + 25124 - 11904: 0xDD76, + 25125 - 11904: 0xDD75, + 25127 - 11904: 0xE1D7, + 25129 - 11904: 0xE1D6, + 25130 - 11904: 0xBA49, + 25131 - 11904: 0xE1D8, + 25132 - 11904: 0x8D79, + 25133 - 11904: 0xE5AC, + 25134 - 11904: 0xBCAE, + 25136 - 11904: 0xBED4, + 25138 - 11904: 0xC0B8, + 25139 - 11904: 0xC257, + 25140 - 11904: 0xC0B9, + 25142 - 11904: 0xA4E1, + 25143 - 11904: 0x8BFC, + 25145 - 11904: 0xA076, + 25146 - 11904: 0xCAE6, + 25149 - 11904: 0xCCB2, + 25150 - 11904: 0xA9D1, + 25151 - 11904: 0xA9D0, + 25152 - 11904: 0xA9D2, + 25153 - 11904: 0xABF3, + 25154 - 11904: 0xCED2, + 25155 - 11904: 0xCED3, + 25158 - 11904: 0xD1B0, + 25159 - 11904: 0xAEB0, + 25160 - 11904: 0xB1AF, + 25161 - 11904: 0xB476, + 25162 - 11904: 0xD951, + 25163 - 11904: 0xA4E2, + 25164 - 11904: 0x8BCD, + 25165 - 11904: 0xA47E, + 25166 - 11904: 0xA4E3, + 25168 - 11904: 0xC97D, + 25169 - 11904: 0xA5B7, + 25170 - 11904: 0xA5B6, + 25171 - 11904: 0xA5B4, + 25172 - 11904: 0xA5B5, + 25176 - 11904: 0xA6AB, + 25177 - 11904: 0xC9E9, + 25178 - 11904: 0xC9EB, + 25179 - 11904: 0xA6AA, + 25180 - 11904: 0xC9E3, + 25182 - 11904: 0xC9E4, + 25184 - 11904: 0xC9EA, + 25185 - 11904: 0xC9E6, + 25186 - 11904: 0xC9E8, + 25187 - 11904: 0xA6A9, + 25188 - 11904: 0xC9E5, + 25189 - 11904: 0xC9EC, + 25190 - 11904: 0xC9E7, + 25192 - 11904: 0x9F5A, + 25197 - 11904: 0xA7E1, + 25198 - 11904: 0xA7EA, + 25199 - 11904: 0xA7E8, + 25200 - 11904: 0xCAF0, + 25201 - 11904: 0xCAED, + 25202 - 11904: 0xCAF5, + 25203 - 11904: 0xA7E6, + 25204 - 11904: 0xCAF6, + 25206 - 11904: 0xA7DF, + 25207 - 11904: 0xCAF3, + 25209 - 11904: 0xA7E5, + 25210 - 11904: 0xCAEF, + 25211 - 11904: 0xCAEE, + 25212 - 11904: 0xA7E3, + 25213 - 11904: 0xCAF4, + 25214 - 11904: 0xA7E4, + 25215 - 11904: 0xA9D3, + 25216 - 11904: 0xA7DE, + 25217 - 11904: 0xCAF1, + 25218 - 11904: 0x9FF4, + 25219 - 11904: 0xCAE7, + 25220 - 11904: 0xA7DB, + 25221 - 11904: 0x9FBA, + 25222 - 11904: 0xA7EE, + 25223 - 11904: 0xCAEC, + 25224 - 11904: 0xCAF2, + 25225 - 11904: 0xA7E0, + 25226 - 11904: 0xA7E2, + 25228 - 11904: 0xCAE8, + 25230 - 11904: 0xCAE9, + 25231 - 11904: 0xCAEA, + 25232 - 11904: 0x8D7A, + 25233 - 11904: 0xA7ED, + 25234 - 11904: 0xA7E7, + 25235 - 11904: 0xA7EC, + 25236 - 11904: 0xCAEB, + 25237 - 11904: 0xA7EB, + 25238 - 11904: 0xA7DD, + 25239 - 11904: 0xA7DC, + 25240 - 11904: 0xA7E9, + 25245 - 11904: 0x9E45, + 25252 - 11904: 0x93B0, + 25254 - 11904: 0xA075, + 25256 - 11904: 0xA9E1, + 25257 - 11904: 0xCCBE, + 25258 - 11904: 0xCCB7, + 25259 - 11904: 0xA9DC, + 25260 - 11904: 0xA9EF, + 25261 - 11904: 0xCCB3, + 25262 - 11904: 0xCCBA, + 25263 - 11904: 0xCCBC, + 25264 - 11904: 0xCCBF, + 25265 - 11904: 0xA9EA, + 25267 - 11904: 0xCCBB, + 25268 - 11904: 0xCCB4, + 25269 - 11904: 0xA9E8, + 25270 - 11904: 0xCCB8, + 25272 - 11904: 0xCCC0, + 25273 - 11904: 0xA9D9, + 25275 - 11904: 0xCCBD, + 25276 - 11904: 0xA9E3, + 25277 - 11904: 0xA9E2, + 25278 - 11904: 0xCCB6, + 25279 - 11904: 0xA9D7, + 25281 - 11904: 0x87DD, + 25282 - 11904: 0xA9D8, + 25283 - 11904: 0x9B46, + 25284 - 11904: 0xA9D6, + 25285 - 11904: 0xFCAE, + 25286 - 11904: 0xA9EE, + 25287 - 11904: 0xA9E6, + 25288 - 11904: 0xA9E0, + 25289 - 11904: 0xA9D4, + 25290 - 11904: 0xCCB9, + 25291 - 11904: 0xA9DF, + 25292 - 11904: 0xA9D5, + 25293 - 11904: 0xA9E7, + 25294 - 11904: 0xA9F0, + 25295 - 11904: 0xCED4, + 25296 - 11904: 0xA9E4, + 25297 - 11904: 0xCCB5, + 25298 - 11904: 0xA9DA, + 25299 - 11904: 0xA9DD, + 25300 - 11904: 0xA9DE, + 25301 - 11904: 0xFCB0, + 25302 - 11904: 0xA9EC, + 25303 - 11904: 0xA9ED, + 25304 - 11904: 0xA9EB, + 25305 - 11904: 0xA9E5, + 25306 - 11904: 0xA9E9, + 25307 - 11904: 0xA9DB, + 25308 - 11904: 0xABF4, + 25311 - 11904: 0xFA51, + 25317 - 11904: 0x8D7B, + 25323 - 11904: 0xCEDA, + 25324 - 11904: 0xAC41, + 25325 - 11904: 0xABF8, + 25326 - 11904: 0xABFA, + 25327 - 11904: 0xAC40, + 25328 - 11904: 0xCEE6, + 25329 - 11904: 0xABFD, + 25330 - 11904: 0xD1B1, + 25331 - 11904: 0xAEB1, + 25332 - 11904: 0xAC43, + 25333 - 11904: 0xCED7, + 25334 - 11904: 0xCEDF, + 25335 - 11904: 0xABFE, + 25336 - 11904: 0xCEDE, + 25337 - 11904: 0xCEDB, + 25338 - 11904: 0xCEE3, + 25339 - 11904: 0xCEE5, + 25340 - 11904: 0xABF7, + 25341 - 11904: 0xABFB, + 25342 - 11904: 0xAC42, + 25343 - 11904: 0xAEB3, + 25344 - 11904: 0xCEE0, + 25345 - 11904: 0xABF9, + 25346 - 11904: 0xAC45, + 25347 - 11904: 0xCED9, + 25351 - 11904: 0xABFC, + 25352 - 11904: 0xAEB2, + 25353 - 11904: 0xABF6, + 25355 - 11904: 0xCED6, + 25356 - 11904: 0xCEDD, + 25357 - 11904: 0xCED5, + 25358 - 11904: 0xCED8, + 25359 - 11904: 0xCEDC, + 25360 - 11904: 0xD1B2, + 25361 - 11904: 0xAC44, + 25363 - 11904: 0xCEE1, + 25364 - 11904: 0xCEE2, + 25365 - 11904: 0xCEE4, + 25366 - 11904: 0xABF5, + 25368 - 11904: 0x8D7C, + 25384 - 11904: 0xAEC1, + 25385 - 11904: 0xD1BE, + 25386 - 11904: 0xAEBF, + 25387 - 11904: 0xAEC0, + 25388 - 11904: 0xD1B4, + 25389 - 11904: 0xD1C4, + 25390 - 11904: 0x9ED6, + 25391 - 11904: 0xAEB6, + 25393 - 11904: 0x93AC, + 25394 - 11904: 0xD566, + 25395 - 11904: 0xD1C6, + 25396 - 11904: 0xD1C0, + 25397 - 11904: 0x9F5B, + 25398 - 11904: 0xD1B7, + 25399 - 11904: 0x93A9, + 25400 - 11904: 0xD1C9, + 25401 - 11904: 0xD1BA, + 25402 - 11904: 0xAEBC, + 25403 - 11904: 0xD57D, + 25404 - 11904: 0xD1BD, + 25405 - 11904: 0xAEBE, + 25406 - 11904: 0xAEB5, + 25408 - 11904: 0xD1CB, + 25409 - 11904: 0xD1BF, + 25410 - 11904: 0xAEB8, + 25411 - 11904: 0xD1B8, + 25412 - 11904: 0xD1B5, + 25413 - 11904: 0xD1B6, + 25414 - 11904: 0xAEB9, + 25415 - 11904: 0xD1C5, + 25416 - 11904: 0xD1CC, + 25417 - 11904: 0xAEBB, + 25418 - 11904: 0xD1BC, + 25419 - 11904: 0xD1BB, + 25420 - 11904: 0xAEC3, + 25421 - 11904: 0xAEC2, + 25422 - 11904: 0xAEB4, + 25423 - 11904: 0xAEBA, + 25424 - 11904: 0xAEBD, + 25425 - 11904: 0xD1C8, + 25428 - 11904: 0xD1C2, + 25429 - 11904: 0xAEB7, + 25430 - 11904: 0xD1B3, + 25431 - 11904: 0xD1CA, + 25432 - 11904: 0xD1C1, + 25433 - 11904: 0xD1C3, + 25434 - 11904: 0xD1C7, + 25444 - 11904: 0xA07C, + 25445 - 11904: 0xD567, + 25447 - 11904: 0xB1B7, + 25448 - 11904: 0xB1CB, + 25449 - 11904: 0xB1CA, + 25451 - 11904: 0xB1BF, + 25452 - 11904: 0xFCB2, + 25453 - 11904: 0xD579, + 25454 - 11904: 0xD575, + 25455 - 11904: 0xD572, + 25456 - 11904: 0xD5A6, + 25457 - 11904: 0xB1BA, + 25458 - 11904: 0xB1B2, + 25461 - 11904: 0xD577, + 25462 - 11904: 0xB4A8, + 25463 - 11904: 0xB1B6, + 25464 - 11904: 0xD5A1, + 25465 - 11904: 0x8AC1, + 25466 - 11904: 0xB1CC, + 25467 - 11904: 0xB1C9, + 25468 - 11904: 0xD57B, + 25469 - 11904: 0xD56A, + 25471 - 11904: 0x9FB4, + 25472 - 11904: 0xB1C8, + 25473 - 11904: 0xD5A3, + 25474 - 11904: 0xD569, + 25475 - 11904: 0xB1BD, + 25476 - 11904: 0xB1C1, + 25477 - 11904: 0xD5A2, + 25479 - 11904: 0xD573, + 25480 - 11904: 0xB1C2, + 25481 - 11904: 0xB1BC, + 25482 - 11904: 0xD568, + 25483 - 11904: 0xFCAC, + 25484 - 11904: 0xB478, + 25485 - 11904: 0xD5A5, + 25486 - 11904: 0xD571, + 25487 - 11904: 0xB1C7, + 25488 - 11904: 0xD574, + 25489 - 11904: 0xD5A4, + 25490 - 11904: 0xB1C6, + 25492 - 11904: 0xD952, + 25494 - 11904: 0xB1B3, + 25495 - 11904: 0xD56F, + 25496 - 11904: 0xB1B8, + 25497 - 11904: 0xB1C3, + 25499 - 11904: 0xB1BE, + 25500 - 11904: 0xD578, + 25501 - 11904: 0xD56E, + 25502 - 11904: 0xD56C, + 25503 - 11904: 0xD57E, + 25504 - 11904: 0xB1B0, + 25505 - 11904: 0xB1C4, + 25506 - 11904: 0xB1B4, + 25507 - 11904: 0xB477, + 25508 - 11904: 0xD57C, + 25509 - 11904: 0xB1B5, + 25511 - 11904: 0xB1B1, + 25512 - 11904: 0xB1C0, + 25513 - 11904: 0xB1BB, + 25514 - 11904: 0xB1B9, + 25515 - 11904: 0xD570, + 25516 - 11904: 0xB1C5, + 25517 - 11904: 0xD56D, + 25518 - 11904: 0xD57A, + 25519 - 11904: 0xD576, + 25520 - 11904: 0xD954, + 25521 - 11904: 0xD953, + 25529 - 11904: 0x9E4C, + 25533 - 11904: 0xD56B, + 25534 - 11904: 0xD964, + 25536 - 11904: 0xB47A, + 25537 - 11904: 0x8FC5, + 25538 - 11904: 0xD96A, + 25539 - 11904: 0xD959, + 25540 - 11904: 0xD967, + 25541 - 11904: 0xDD77, + 25542 - 11904: 0xB47D, + 25543 - 11904: 0xD96B, + 25544 - 11904: 0xD96E, + 25545 - 11904: 0xB47C, + 25546 - 11904: 0xD95C, + 25547 - 11904: 0xD96D, + 25548 - 11904: 0xD96C, + 25549 - 11904: 0xB47E, + 25550 - 11904: 0xD955, + 25551 - 11904: 0xB479, + 25552 - 11904: 0xB4A3, + 25553 - 11904: 0x93AD, + 25554 - 11904: 0xB4A1, + 25555 - 11904: 0xD969, + 25557 - 11904: 0xD95F, + 25558 - 11904: 0xB4A5, + 25559 - 11904: 0xD970, + 25560 - 11904: 0xD968, + 25561 - 11904: 0xD971, + 25562 - 11904: 0xB4AD, + 25563 - 11904: 0xB4AB, + 25564 - 11904: 0xD966, + 25565 - 11904: 0xD965, + 25566 - 11904: 0x9DC3, + 25567 - 11904: 0xD963, + 25568 - 11904: 0xD95D, + 25569 - 11904: 0xB4A4, + 25570 - 11904: 0x8DA2, + 25571 - 11904: 0xB4A2, + 25572 - 11904: 0xD1B9, + 25573 - 11904: 0xD956, + 25574 - 11904: 0x9D4A, + 25575 - 11904: 0xDDB7, + 25576 - 11904: 0xD957, + 25577 - 11904: 0xB47B, + 25578 - 11904: 0xB4AA, + 25579 - 11904: 0xDD79, + 25581 - 11904: 0xB4A6, + 25582 - 11904: 0xB4A7, + 25583 - 11904: 0xD958, + 25584 - 11904: 0xD96F, + 25585 - 11904: 0xDD78, + 25586 - 11904: 0xD960, + 25587 - 11904: 0xD95B, + 25588 - 11904: 0xB4A9, + 25589 - 11904: 0xD961, + 25590 - 11904: 0xD95E, + 25592 - 11904: 0xFCB6, + 25593 - 11904: 0xB4AE, + 25595 - 11904: 0x8DA3, + 25596 - 11904: 0x9E4B, + 25598 - 11904: 0x9E4D, + 25606 - 11904: 0xB770, + 25607 - 11904: 0x8DA4, + 25609 - 11904: 0xDD7C, + 25610 - 11904: 0xDDB1, + 25611 - 11904: 0xDDB6, + 25612 - 11904: 0xDDAA, + 25613 - 11904: 0xB76C, + 25614 - 11904: 0xDDBB, + 25615 - 11904: 0xB769, + 25616 - 11904: 0xDD7A, + 25618 - 11904: 0xDD7B, + 25619 - 11904: 0xB762, + 25620 - 11904: 0xB76B, + 25621 - 11904: 0xDDA4, + 25622 - 11904: 0xB76E, + 25623 - 11904: 0xB76F, + 25624 - 11904: 0xDDA5, + 25626 - 11904: 0xDDB2, + 25627 - 11904: 0xDDB8, + 25628 - 11904: 0xB76A, + 25630 - 11904: 0xB764, + 25631 - 11904: 0xDDA3, + 25632 - 11904: 0xDD7D, + 25633 - 11904: 0xDDBA, + 25634 - 11904: 0xDDA8, + 25635 - 11904: 0xDDA9, + 25636 - 11904: 0xDD7E, + 25637 - 11904: 0xDDB4, + 25638 - 11904: 0xDDAB, + 25639 - 11904: 0xDDB5, + 25640 - 11904: 0xDDAD, + 25642 - 11904: 0xB765, + 25643 - 11904: 0xE1D9, + 25644 - 11904: 0xB768, + 25645 - 11904: 0xB766, + 25646 - 11904: 0xDDB9, + 25647 - 11904: 0xDDB0, + 25648 - 11904: 0xDDAC, + 25650 - 11904: 0x8AFD, + 25651 - 11904: 0xDDA1, + 25652 - 11904: 0xBA53, + 25653 - 11904: 0xDDAF, + 25654 - 11904: 0xB76D, + 25655 - 11904: 0xDDA7, + 25656 - 11904: 0xFCB5, + 25657 - 11904: 0xDDA6, + 25658 - 11904: 0xFCC3, + 25659 - 11904: 0x93B2, + 25661 - 11904: 0xB767, + 25662 - 11904: 0xB763, + 25663 - 11904: 0xE1EE, + 25664 - 11904: 0xDDB3, + 25665 - 11904: 0xDDAE, + 25667 - 11904: 0xDDA2, + 25675 - 11904: 0xE1E9, + 25677 - 11904: 0xE1DA, + 25678 - 11904: 0xE1E5, + 25680 - 11904: 0xE1EC, + 25681 - 11904: 0xBA51, + 25682 - 11904: 0xB4AC, + 25683 - 11904: 0xE1EA, + 25684 - 11904: 0xBA4C, + 25688 - 11904: 0xBA4B, + 25689 - 11904: 0xE1F1, + 25690 - 11904: 0x8DA5, + 25691 - 11904: 0xE1DB, + 25692 - 11904: 0xE1E8, + 25693 - 11904: 0xE1DC, + 25694 - 11904: 0xE1E7, + 25695 - 11904: 0xBA4F, + 25696 - 11904: 0xE1EB, + 25697 - 11904: 0xD962, + 25701 - 11904: 0xE1F2, + 25702 - 11904: 0xE1E3, + 25703 - 11904: 0xBA52, + 25704 - 11904: 0xE5BA, + 25705 - 11904: 0xBCAF, + 25707 - 11904: 0xE1F0, + 25708 - 11904: 0xE1EF, + 25709 - 11904: 0xBA54, + 25710 - 11904: 0xE5AD, + 25711 - 11904: 0xBCB0, + 25712 - 11904: 0xE5AE, + 25713 - 11904: 0x93A1, + 25714 - 11904: 0xE1DF, + 25715 - 11904: 0xE1E0, + 25716 - 11904: 0xE1DD, + 25717 - 11904: 0xE1E2, + 25718 - 11904: 0xE1DE, + 25719 - 11904: 0xE1F3, + 25720 - 11904: 0xBA4E, + 25721 - 11904: 0xBCB1, + 25722 - 11904: 0xBA50, + 25723 - 11904: 0xBA55, + 25724 - 11904: 0x8AC6, + 25725 - 11904: 0xE1E1, + 25727 - 11904: 0xE1ED, + 25730 - 11904: 0xE1E6, + 25733 - 11904: 0xE5B1, + 25735 - 11904: 0xBA4A, + 25736 - 11904: 0xBCB4, + 25737 - 11904: 0xE9AA, + 25738 - 11904: 0xE5B6, + 25739 - 11904: 0xE5B5, + 25740 - 11904: 0xE5B7, + 25741 - 11904: 0x8A5B, + 25743 - 11904: 0xE5B4, + 25744 - 11904: 0xFCB9, + 25745 - 11904: 0x894D, + 25746 - 11904: 0xBCBB, + 25747 - 11904: 0xBCB8, + 25749 - 11904: 0xBCB9, + 25750 - 11904: 0xE5AF, + 25751 - 11904: 0xE5B2, + 25752 - 11904: 0xE5BC, + 25753 - 11904: 0xBCC1, + 25754 - 11904: 0xBCBF, + 25756 - 11904: 0xE5B3, + 25757 - 11904: 0xD95A, + 25758 - 11904: 0xBCB2, + 25759 - 11904: 0xE5B9, + 25760 - 11904: 0xE5B0, + 25762 - 11904: 0xBCC2, + 25763 - 11904: 0xE5B8, + 25764 - 11904: 0xBA4D, + 25765 - 11904: 0xBCB7, + 25766 - 11904: 0xE1E4, + 25769 - 11904: 0xBCBA, + 25771 - 11904: 0xBCBE, + 25772 - 11904: 0xBCC0, + 25773 - 11904: 0xBCBD, + 25774 - 11904: 0xBCBC, + 25775 - 11904: 0xFED4, + 25776 - 11904: 0xBCB6, + 25777 - 11904: 0xE5BB, + 25778 - 11904: 0xBCB3, + 25779 - 11904: 0xBCC3, + 25780 - 11904: 0x8A78, + 25782 - 11904: 0x93AB, + 25787 - 11904: 0xBED8, + 25788 - 11904: 0xBED9, + 25789 - 11904: 0xE9A9, + 25790 - 11904: 0xBEE2, + 25791 - 11904: 0xBEDF, + 25792 - 11904: 0x8DA7, + 25793 - 11904: 0xBED6, + 25794 - 11904: 0xBEDD, + 25795 - 11904: 0xE9AB, + 25796 - 11904: 0xBEDB, + 25797 - 11904: 0xBED5, + 25799 - 11904: 0xBEDC, + 25801 - 11904: 0xE9A8, + 25802 - 11904: 0xC0BB, + 25803 - 11904: 0xBED7, + 25805 - 11904: 0xBEDE, + 25806 - 11904: 0xC0BA, + 25807 - 11904: 0xE9A7, + 25808 - 11904: 0xE9A6, + 25810 - 11904: 0xBEE0, + 25811 - 11904: 0x9F45, + 25812 - 11904: 0xBEE1, + 25814 - 11904: 0xE9A5, + 25815 - 11904: 0xE9A4, + 25816 - 11904: 0xC0BC, + 25817 - 11904: 0xE9AE, + 25818 - 11904: 0xBEDA, + 25819 - 11904: 0xE9AC, + 25821 - 11904: 0x8A56, + 25824 - 11904: 0xC0BD, + 25825 - 11904: 0xFCBF, + 25826 - 11904: 0xC0C2, + 25827 - 11904: 0xECEA, + 25828 - 11904: 0xECEC, + 25829 - 11904: 0xFCC0, + 25830 - 11904: 0xC0BF, + 25831 - 11904: 0x8EE6, + 25832 - 11904: 0xECED, + 25833 - 11904: 0xECE9, + 25834 - 11904: 0x8AA4, + 25835 - 11904: 0xECEB, + 25836 - 11904: 0xC0C0, + 25837 - 11904: 0xC0C3, + 25839 - 11904: 0xECE8, + 25840 - 11904: 0xC0BE, + 25841 - 11904: 0xC0C1, + 25842 - 11904: 0xC259, + 25843 - 11904: 0xE9AD, + 25844 - 11904: 0xC258, + 25847 - 11904: 0xC25E, + 25848 - 11904: 0xEFD4, + 25850 - 11904: 0xC25C, + 25851 - 11904: 0xC25D, + 25852 - 11904: 0xEFD7, + 25853 - 11904: 0xEFD3, + 25854 - 11904: 0xC25A, + 25855 - 11904: 0xEFD1, + 25856 - 11904: 0xC36B, + 25857 - 11904: 0xEFD5, + 25859 - 11904: 0xEFD6, + 25860 - 11904: 0xEFD2, + 25862 - 11904: 0xC25B, + 25863 - 11904: 0xF242, + 25865 - 11904: 0xF245, + 25866 - 11904: 0x8943, + 25868 - 11904: 0xF246, + 25869 - 11904: 0xF244, + 25870 - 11904: 0xF247, + 25871 - 11904: 0xC36C, + 25872 - 11904: 0xF243, + 25873 - 11904: 0x93F3, + 25875 - 11904: 0xF44E, + 25876 - 11904: 0xC464, + 25877 - 11904: 0xF44D, + 25878 - 11904: 0xF44C, + 25879 - 11904: 0xF44B, + 25880 - 11904: 0xC463, + 25881 - 11904: 0xC465, + 25883 - 11904: 0xF5CD, + 25884 - 11904: 0xC4E2, + 25885 - 11904: 0xC4E1, + 25886 - 11904: 0xFCAB, + 25887 - 11904: 0x9EA2, + 25888 - 11904: 0xF6E1, + 25889 - 11904: 0xF6E0, + 25890 - 11904: 0xF6E3, + 25891 - 11904: 0xC5CB, + 25892 - 11904: 0xC575, + 25893 - 11904: 0xF7DD, + 25894 - 11904: 0xF6E2, + 25897 - 11904: 0xF7DC, + 25898 - 11904: 0xC5CD, + 25899 - 11904: 0xC5CC, + 25900 - 11904: 0xC5F3, + 25901 - 11904: 0xF8A9, + 25902 - 11904: 0xF8EF, + 25903 - 11904: 0xA4E4, + 25904 - 11904: 0x9DC7, + 25906 - 11904: 0xD972, + 25907 - 11904: 0xE9AF, + 25908 - 11904: 0xC6D2, + 25909 - 11904: 0x8BCE, + 25910 - 11904: 0xA6AC, + 25911 - 11904: 0xCAF7, + 25912 - 11904: 0xA7F1, + 25913 - 11904: 0xA7EF, + 25915 - 11904: 0xA7F0, + 25917 - 11904: 0xCCC1, + 25918 - 11904: 0xA9F1, + 25919 - 11904: 0xAC46, + 25921 - 11904: 0xCEE7, + 25923 - 11904: 0xCEE8, + 25925 - 11904: 0xAC47, + 25926 - 11904: 0xD1CE, + 25928 - 11904: 0xAEC4, + 25929 - 11904: 0xAEC5, + 25930 - 11904: 0xD1CD, + 25933 - 11904: 0xFCC5, + 25935 - 11904: 0xB1D3, + 25937 - 11904: 0xB1CF, + 25939 - 11904: 0xD5A7, + 25940 - 11904: 0xB1D6, + 25941 - 11904: 0xB1D5, + 25942 - 11904: 0xB1CE, + 25943 - 11904: 0xB1D1, + 25944 - 11904: 0xB1D4, + 25945 - 11904: 0xB1D0, + 25948 - 11904: 0xD976, + 25949 - 11904: 0xB1CD, + 25950 - 11904: 0xB4AF, + 25951 - 11904: 0xFCCB, + 25954 - 11904: 0xB4B1, + 25955 - 11904: 0xB4B2, + 25956 - 11904: 0xD975, + 25957 - 11904: 0xD978, + 25958 - 11904: 0xB4B0, + 25959 - 11904: 0xD973, + 25960 - 11904: 0xD977, + 25962 - 11904: 0xD974, + 25963 - 11904: 0x93B3, + 25964 - 11904: 0xB771, + 25965 - 11904: 0xFCCA, + 25967 - 11904: 0xDDBC, + 25970 - 11904: 0xBA56, + 25971 - 11904: 0xE1F4, + 25972 - 11904: 0xBEE3, + 25973 - 11904: 0xBCC4, + 25974 - 11904: 0xE5BD, + 25975 - 11904: 0xBCC5, + 25976 - 11904: 0xBCC6, + 25977 - 11904: 0xE5BF, + 25978 - 11904: 0xE5BE, + 25979 - 11904: 0xE5C0, + 25980 - 11904: 0xE9B1, + 25983 - 11904: 0xE9B0, + 25984 - 11904: 0xECEF, + 25985 - 11904: 0xECEE, + 25986 - 11904: 0xC0C4, + 25987 - 11904: 0xC0C5, + 25988 - 11904: 0xF248, + 25989 - 11904: 0xFCC9, + 25990 - 11904: 0x8DAC, + 25991 - 11904: 0xA4E5, + 25992 - 11904: 0xFBC6, + 25993 - 11904: 0x8967, + 25995 - 11904: 0x8C7E, + 25996 - 11904: 0xD979, + 26000 - 11904: 0xB4B4, + 26001 - 11904: 0xB4B3, + 26002 - 11904: 0xDDBD, + 26004 - 11904: 0xEFD8, + 26005 - 11904: 0xC4E3, + 26006 - 11904: 0xF7DE, + 26007 - 11904: 0xA4E6, + 26009 - 11904: 0xAEC6, + 26011 - 11904: 0xB1D8, + 26012 - 11904: 0xB1D7, + 26013 - 11904: 0xD97A, + 26014 - 11904: 0xD97B, + 26015 - 11904: 0xB772, + 26016 - 11904: 0xE1F5, + 26017 - 11904: 0xBA57, + 26018 - 11904: 0xE9B2, + 26020 - 11904: 0xA4E7, + 26021 - 11904: 0xA5B8, + 26023 - 11904: 0xA9F2, + 26024 - 11904: 0xCCC2, + 26026 - 11904: 0xCEE9, + 26027 - 11904: 0xAC48, + 26028 - 11904: 0xB1D9, + 26030 - 11904: 0xD97C, + 26031 - 11904: 0xB4B5, + 26032 - 11904: 0xB773, + 26034 - 11904: 0xE5C1, + 26035 - 11904: 0xE5C2, + 26037 - 11904: 0xFCCD, + 26038 - 11904: 0xECF0, + 26039 - 11904: 0xC25F, + 26040 - 11904: 0xF8F0, + 26041 - 11904: 0xA4E8, + 26043 - 11904: 0xCCC3, + 26044 - 11904: 0xA9F3, + 26045 - 11904: 0xAC49, + 26046 - 11904: 0x9CF3, + 26047 - 11904: 0xCEEA, + 26049 - 11904: 0xAEC7, + 26050 - 11904: 0xD1D2, + 26051 - 11904: 0xD1D0, + 26052 - 11904: 0xD1D1, + 26053 - 11904: 0xAEC8, + 26054 - 11904: 0xD1CF, + 26059 - 11904: 0xB1DB, + 26060 - 11904: 0xB1DC, + 26061 - 11904: 0xD5A8, + 26062 - 11904: 0xB1DD, + 26063 - 11904: 0xB1DA, + 26064 - 11904: 0xD97D, + 26065 - 11904: 0xFCD0, + 26066 - 11904: 0xD97E, + 26067 - 11904: 0xDDBE, + 26068 - 11904: 0x95BB, + 26070 - 11904: 0xBA59, + 26071 - 11904: 0xBA58, + 26074 - 11904: 0xECF1, + 26075 - 11904: 0xEFD9, + 26077 - 11904: 0xF24A, + 26078 - 11904: 0xF249, + 26079 - 11904: 0xF44F, + 26080 - 11904: 0xFCD3, + 26081 - 11904: 0xC95E, + 26082 - 11904: 0xAC4A, + 26083 - 11904: 0xFCD4, + 26085 - 11904: 0xA4E9, + 26086 - 11904: 0xA5B9, + 26088 - 11904: 0xA6AE, + 26089 - 11904: 0xA6AD, + 26092 - 11904: 0xA6AF, + 26093 - 11904: 0xA6B0, + 26094 - 11904: 0xC9EE, + 26095 - 11904: 0xC9ED, + 26096 - 11904: 0xCAF8, + 26097 - 11904: 0xA7F2, + 26098 - 11904: 0xCAFB, + 26099 - 11904: 0xCAFA, + 26100 - 11904: 0xCAF9, + 26101 - 11904: 0xCAFC, + 26106 - 11904: 0xA9F4, + 26107 - 11904: 0xCCC9, + 26108 - 11904: 0xCCC5, + 26109 - 11904: 0xCCCE, + 26111 - 11904: 0x8DAE, + 26112 - 11904: 0xA9FB, + 26114 - 11904: 0xA9F9, + 26115 - 11904: 0xCCCA, + 26116 - 11904: 0xCCC6, + 26117 - 11904: 0xCCCD, + 26118 - 11904: 0xA9F8, + 26119 - 11904: 0xAA40, + 26120 - 11904: 0xCCC8, + 26121 - 11904: 0xCCC4, + 26122 - 11904: 0xA9FE, + 26123 - 11904: 0xCCCB, + 26124 - 11904: 0xA9F7, + 26125 - 11904: 0xCCCC, + 26126 - 11904: 0xA9FA, + 26127 - 11904: 0xA9FC, + 26128 - 11904: 0xCCD0, + 26129 - 11904: 0xCCCF, + 26130 - 11904: 0xCCC7, + 26131 - 11904: 0xA9F6, + 26132 - 11904: 0xA9F5, + 26133 - 11904: 0xA9FD, + 26136 - 11904: 0xFCD7, + 26140 - 11904: 0xCEEF, + 26141 - 11904: 0xCEF5, + 26142 - 11904: 0x93DB, + 26143 - 11904: 0xAC50, + 26144 - 11904: 0xAC4D, + 26145 - 11904: 0xCEEC, + 26146 - 11904: 0xCEF1, + 26147 - 11904: 0xFE63, + 26148 - 11904: 0xAC53, + 26149 - 11904: 0xAC4B, + 26150 - 11904: 0xCEF0, + 26151 - 11904: 0xAC4E, + 26152 - 11904: 0xAC51, + 26155 - 11904: 0xCEF3, + 26157 - 11904: 0xAC4C, + 26158 - 11904: 0xCEF8, + 26159 - 11904: 0xAC4F, + 26160 - 11904: 0x93D5, + 26161 - 11904: 0xAC52, + 26162 - 11904: 0xCEED, + 26163 - 11904: 0xCEF2, + 26164 - 11904: 0xCEF6, + 26165 - 11904: 0xCEEE, + 26166 - 11904: 0xCEEB, + 26169 - 11904: 0xCEF7, + 26170 - 11904: 0xCEF4, + 26177 - 11904: 0xAED0, + 26178 - 11904: 0xAEC9, + 26179 - 11904: 0xAECC, + 26180 - 11904: 0xFCDA, + 26181 - 11904: 0xAECF, + 26183 - 11904: 0xD1D5, + 26184 - 11904: 0x9B71, + 26185 - 11904: 0xAECA, + 26186 - 11904: 0xD1D3, + 26187 - 11904: 0xFCDD, + 26188 - 11904: 0xAECE, + 26189 - 11904: 0x8764, + 26191 - 11904: 0xAECB, + 26193 - 11904: 0xD1D6, + 26194 - 11904: 0xAECD, + 26195 - 11904: 0x8DAF, + 26199 - 11904: 0xFAF2, + 26201 - 11904: 0xD5AC, + 26202 - 11904: 0xB1DF, + 26203 - 11904: 0xD5AB, + 26204 - 11904: 0xD5AD, + 26205 - 11904: 0xB1DE, + 26206 - 11904: 0xB1E3, + 26207 - 11904: 0xD1D4, + 26208 - 11904: 0x87B5, + 26209 - 11904: 0xD5AA, + 26210 - 11904: 0xD5AE, + 26211 - 11904: 0x93D8, + 26212 - 11904: 0xB1E0, + 26213 - 11904: 0xD5A9, + 26214 - 11904: 0xB1E2, + 26215 - 11904: 0xFCDF, + 26216 - 11904: 0xB1E1, + 26218 - 11904: 0xD9A7, + 26219 - 11904: 0x93D3, + 26220 - 11904: 0xD9A2, + 26222 - 11904: 0xB4B6, + 26223 - 11904: 0xB4BA, + 26224 - 11904: 0xB4B7, + 26225 - 11904: 0xD9A5, + 26226 - 11904: 0xD9A8, + 26227 - 11904: 0xFCE1, + 26228 - 11904: 0xFCE2, + 26230 - 11904: 0xB4B9, + 26231 - 11904: 0xB4BE, + 26232 - 11904: 0xDDC7, + 26233 - 11904: 0xD9A6, + 26234 - 11904: 0xB4BC, + 26235 - 11904: 0xD9A3, + 26236 - 11904: 0xD9A1, + 26237 - 11904: 0x8E76, + 26238 - 11904: 0xB4BD, + 26240 - 11904: 0xD9A4, + 26244 - 11904: 0xB779, + 26245 - 11904: 0xFC62, + 26246 - 11904: 0xDDBF, + 26247 - 11904: 0xB776, + 26248 - 11904: 0xB777, + 26249 - 11904: 0xB775, + 26250 - 11904: 0xDDC4, + 26251 - 11904: 0xDDC3, + 26252 - 11904: 0xDDC0, + 26253 - 11904: 0xB77B, + 26254 - 11904: 0x93D1, + 26256 - 11904: 0xDDC2, + 26257 - 11904: 0xB4BB, + 26258 - 11904: 0x8DB1, + 26260 - 11904: 0xDDC6, + 26261 - 11904: 0xDDC1, + 26262 - 11904: 0xB778, + 26263 - 11904: 0xB774, + 26264 - 11904: 0xB77A, + 26265 - 11904: 0xDDC5, + 26266 - 11904: 0x9859, + 26269 - 11904: 0xBA5C, + 26271 - 11904: 0xE1F8, + 26272 - 11904: 0xE1F7, + 26273 - 11904: 0xE1F6, + 26274 - 11904: 0xBA5A, + 26276 - 11904: 0xFB52, + 26280 - 11904: 0xBA5B, + 26281 - 11904: 0xE5C5, + 26282 - 11904: 0xE5C8, + 26283 - 11904: 0xBCC8, + 26285 - 11904: 0xFB53, + 26286 - 11904: 0xBCC7, + 26287 - 11904: 0xE5C9, + 26288 - 11904: 0xE5C4, + 26289 - 11904: 0xBCCA, + 26290 - 11904: 0xE5C6, + 26291 - 11904: 0xFB4D, + 26292 - 11904: 0xBCC9, + 26293 - 11904: 0xE5C3, + 26294 - 11904: 0x9CBF, + 26295 - 11904: 0xE5C7, + 26296 - 11904: 0xBEE9, + 26297 - 11904: 0xBEE6, + 26298 - 11904: 0xE9BB, + 26299 - 11904: 0xE9BA, + 26301 - 11904: 0xE9B9, + 26302 - 11904: 0xE9B4, + 26303 - 11904: 0x9B72, + 26304 - 11904: 0xE9B5, + 26308 - 11904: 0xBEE7, + 26310 - 11904: 0xBEE4, + 26311 - 11904: 0xBEE8, + 26312 - 11904: 0xE9B3, + 26313 - 11904: 0xBEE5, + 26314 - 11904: 0xE9B6, + 26315 - 11904: 0xE9B7, + 26316 - 11904: 0xE9BC, + 26317 - 11904: 0xFB50, + 26318 - 11904: 0x93BE, + 26319 - 11904: 0xE9B8, + 26322 - 11904: 0xECF2, + 26326 - 11904: 0xC0C7, + 26328 - 11904: 0xEFDC, + 26329 - 11904: 0xC0C6, + 26330 - 11904: 0xEFDA, + 26331 - 11904: 0xEFDB, + 26332 - 11904: 0xC260, + 26333 - 11904: 0xC36E, + 26334 - 11904: 0xF24B, + 26336 - 11904: 0xC36D, + 26339 - 11904: 0xF451, + 26340 - 11904: 0xF452, + 26342 - 11904: 0xC466, + 26343 - 11904: 0x8CDB, + 26344 - 11904: 0xF450, + 26345 - 11904: 0xC4E4, + 26347 - 11904: 0xF7DF, + 26348 - 11904: 0xC5CE, + 26349 - 11904: 0xF8AA, + 26350 - 11904: 0xF8AB, + 26352 - 11904: 0xA4EA, + 26353 - 11904: 0x9DF1, + 26354 - 11904: 0xA6B1, + 26355 - 11904: 0xA6B2, + 26356 - 11904: 0xA7F3, + 26358 - 11904: 0xCCD1, + 26359 - 11904: 0xAC54, + 26360 - 11904: 0xAED1, + 26361 - 11904: 0xB1E4, + 26364 - 11904: 0xB0D2, + 26366 - 11904: 0xB4BF, + 26367 - 11904: 0xB4C0, + 26368 - 11904: 0xB3CC, + 26369 - 11904: 0xD9A9, + 26370 - 11904: 0xFCEB, + 26371 - 11904: 0xB77C, + 26372 - 11904: 0xE1FA, + 26373 - 11904: 0xE1F9, + 26376 - 11904: 0xA4EB, + 26377 - 11904: 0xA6B3, + 26378 - 11904: 0xCCD2, + 26379 - 11904: 0xAA42, + 26380 - 11904: 0xA0BB, + 26381 - 11904: 0xAA41, + 26382 - 11904: 0x9B7E, + 26383 - 11904: 0xCEF9, + 26384 - 11904: 0xCEFA, + 26386 - 11904: 0xD1D7, + 26387 - 11904: 0xD1D8, + 26388 - 11904: 0xAED2, + 26389 - 11904: 0xAED3, + 26390 - 11904: 0x8DB3, + 26391 - 11904: 0xAED4, + 26392 - 11904: 0xD5AF, + 26393 - 11904: 0x8C52, + 26395 - 11904: 0xB1E6, + 26397 - 11904: 0xB4C2, + 26398 - 11904: 0x9AE8, + 26399 - 11904: 0xB4C1, + 26400 - 11904: 0xDDC8, + 26401 - 11904: 0xDF7A, + 26402 - 11904: 0xE1FB, + 26403 - 11904: 0xE9BD, + 26405 - 11904: 0x8EDC, + 26406 - 11904: 0xC261, + 26407 - 11904: 0xC467, + 26408 - 11904: 0xA4EC, + 26410 - 11904: 0xA5BC, + 26411 - 11904: 0xA5BD, + 26412 - 11904: 0xA5BB, + 26413 - 11904: 0xA5BE, + 26414 - 11904: 0xA5BA, + 26417 - 11904: 0xA6B6, + 26419 - 11904: 0xC9F6, + 26420 - 11904: 0xA6B5, + 26421 - 11904: 0xA6B7, + 26422 - 11904: 0x9CF9, + 26424 - 11904: 0xC9F1, + 26425 - 11904: 0xC9F0, + 26426 - 11904: 0xC9F3, + 26427 - 11904: 0xC9F2, + 26428 - 11904: 0xC9F5, + 26429 - 11904: 0xA6B4, + 26430 - 11904: 0xC9EF, + 26431 - 11904: 0xC9F4, + 26436 - 11904: 0xFA50, + 26437 - 11904: 0xCAFD, + 26438 - 11904: 0xA7FD, + 26439 - 11904: 0xCAFE, + 26440 - 11904: 0xCB43, + 26441 - 11904: 0xA7FC, + 26443 - 11904: 0xCB47, + 26444 - 11904: 0xCB42, + 26445 - 11904: 0xCB45, + 26446 - 11904: 0xA7F5, + 26447 - 11904: 0xA7F6, + 26448 - 11904: 0xA7F7, + 26449 - 11904: 0xA7F8, + 26451 - 11904: 0xA840, + 26453 - 11904: 0xCB41, + 26454 - 11904: 0xA7FA, + 26455 - 11904: 0xA841, + 26457 - 11904: 0xCB40, + 26458 - 11904: 0xCB46, + 26460 - 11904: 0xA7F9, + 26461 - 11904: 0xCB44, + 26462 - 11904: 0xFCF1, + 26463 - 11904: 0xA7F4, + 26464 - 11904: 0xA7FE, + 26465 - 11904: 0x98E7, + 26466 - 11904: 0xFCF3, + 26471 - 11904: 0xFCF2, + 26474 - 11904: 0xAA57, + 26475 - 11904: 0x8CCA, + 26476 - 11904: 0xCCD4, + 26477 - 11904: 0xAA43, + 26478 - 11904: 0x8775, + 26479 - 11904: 0xAA4D, + 26480 - 11904: 0xAA4E, + 26481 - 11904: 0xAA46, + 26482 - 11904: 0xAA58, + 26483 - 11904: 0xAA48, + 26484 - 11904: 0xCCDC, + 26485 - 11904: 0xAA53, + 26486 - 11904: 0xCCD7, + 26487 - 11904: 0xAA49, + 26488 - 11904: 0xCCE6, + 26489 - 11904: 0xCCE7, + 26490 - 11904: 0xCCDF, + 26491 - 11904: 0xCCD8, + 26492 - 11904: 0xAA56, + 26493 - 11904: 0xCCE4, + 26494 - 11904: 0xAA51, + 26495 - 11904: 0xAA4F, + 26497 - 11904: 0xCCE5, + 26498 - 11904: 0x87BA, + 26499 - 11904: 0xCCE3, + 26500 - 11904: 0xCCDB, + 26501 - 11904: 0xCCD3, + 26502 - 11904: 0xCCDA, + 26503 - 11904: 0xAA4A, + 26505 - 11904: 0xAA50, + 26507 - 11904: 0xAA44, + 26508 - 11904: 0xCCDE, + 26509 - 11904: 0xCCDD, + 26510 - 11904: 0xCCD5, + 26511 - 11904: 0x93E5, + 26512 - 11904: 0xAA52, + 26513 - 11904: 0xCCE1, + 26514 - 11904: 0xCCD6, + 26515 - 11904: 0xAA55, + 26516 - 11904: 0xCCE8, + 26517 - 11904: 0xAA45, + 26519 - 11904: 0xAA4C, + 26520 - 11904: 0xCCD9, + 26521 - 11904: 0xCCE2, + 26522 - 11904: 0xAA54, + 26524 - 11904: 0xAA47, + 26525 - 11904: 0xAA4B, + 26527 - 11904: 0xCCE0, + 26528 - 11904: 0x9A59, + 26532 - 11904: 0x8DB5, + 26540 - 11904: 0xFD4D, + 26542 - 11904: 0xCF5B, + 26543 - 11904: 0xAC5C, + 26544 - 11904: 0xAC69, + 26545 - 11904: 0xFD5E, + 26546 - 11904: 0xCF56, + 26547 - 11904: 0xCF4C, + 26548 - 11904: 0xAC62, + 26549 - 11904: 0xCF4A, + 26550 - 11904: 0xAC5B, + 26551 - 11904: 0xCF45, + 26552 - 11904: 0xAC65, + 26553 - 11904: 0xCF52, + 26554 - 11904: 0xCEFE, + 26555 - 11904: 0xCF41, + 26559 - 11904: 0x8F7D, + 26560 - 11904: 0xCF44, + 26561 - 11904: 0xCEFB, + 26562 - 11904: 0xCF51, + 26563 - 11904: 0xCF61, + 26564 - 11904: 0xAC60, + 26565 - 11904: 0xCF46, + 26566 - 11904: 0xCF58, + 26568 - 11904: 0xCEFD, + 26569 - 11904: 0xCF5F, + 26570 - 11904: 0xCF60, + 26571 - 11904: 0xCF63, + 26572 - 11904: 0xCF5A, + 26573 - 11904: 0xCF4B, + 26574 - 11904: 0xCF53, + 26575 - 11904: 0xAC66, + 26576 - 11904: 0xAC59, + 26577 - 11904: 0xAC61, + 26578 - 11904: 0xAC6D, + 26579 - 11904: 0xAC56, + 26580 - 11904: 0xAC58, + 26582 - 11904: 0x9547, + 26583 - 11904: 0xFCF6, + 26584 - 11904: 0xCF43, + 26585 - 11904: 0xAC6A, + 26586 - 11904: 0xAC63, + 26587 - 11904: 0xCF5D, + 26588 - 11904: 0xCF40, + 26589 - 11904: 0xAC6C, + 26590 - 11904: 0xAC67, + 26591 - 11904: 0xCF49, + 26594 - 11904: 0xAC6B, + 26595 - 11904: 0xCF50, + 26596 - 11904: 0xCF48, + 26597 - 11904: 0xAC64, + 26598 - 11904: 0xCF5C, + 26599 - 11904: 0xCF54, + 26601 - 11904: 0xAC5E, + 26602 - 11904: 0xCF62, + 26603 - 11904: 0xCF47, + 26604 - 11904: 0xAC5A, + 26605 - 11904: 0xCF59, + 26606 - 11904: 0xCF4F, + 26607 - 11904: 0xAC5F, + 26608 - 11904: 0xCF55, + 26609 - 11904: 0xAC57, + 26610 - 11904: 0xCEFC, + 26611 - 11904: 0xAC68, + 26612 - 11904: 0xAEE3, + 26613 - 11904: 0xAC5D, + 26614 - 11904: 0xCF4E, + 26615 - 11904: 0xCF4D, + 26616 - 11904: 0xCF42, + 26617 - 11904: 0x9250, + 26618 - 11904: 0xCF5E, + 26620 - 11904: 0xCF57, + 26622 - 11904: 0x8968, + 26623 - 11904: 0xAC55, + 26624 - 11904: 0x8DB6, + 26625 - 11904: 0xFCFB, + 26626 - 11904: 0xA07D, + 26627 - 11904: 0x98FC, + 26628 - 11904: 0x8969, + 26637 - 11904: 0xFE4F, + 26640 - 11904: 0x9256, + 26642 - 11904: 0xD1EC, + 26643 - 11904: 0xAEEA, + 26644 - 11904: 0xD1ED, + 26646 - 11904: 0xD1E1, + 26647 - 11904: 0xAEDF, + 26648 - 11904: 0xAEEB, + 26650 - 11904: 0xD1DA, + 26651 - 11904: 0xFAC9, + 26652 - 11904: 0xD1E3, + 26653 - 11904: 0xD1EB, + 26654 - 11904: 0x93E8, + 26655 - 11904: 0xD1D9, + 26656 - 11904: 0xD1F4, + 26657 - 11904: 0xAED5, + 26658 - 11904: 0xFCF8, + 26661 - 11904: 0xD1F3, + 26662 - 11904: 0xD1EE, + 26664 - 11904: 0xD1EF, + 26665 - 11904: 0xAEDD, + 26666 - 11904: 0xAEE8, + 26667 - 11904: 0xD1E5, + 26669 - 11904: 0xD1E6, + 26670 - 11904: 0xD1F0, + 26671 - 11904: 0xD1E7, + 26673 - 11904: 0xD1E2, + 26674 - 11904: 0xD1DC, + 26675 - 11904: 0xD1DD, + 26676 - 11904: 0xD1EA, + 26677 - 11904: 0xD1E4, + 26678 - 11904: 0x9CE3, + 26679 - 11904: 0xFDA9, + 26680 - 11904: 0xAED6, + 26681 - 11904: 0xAEDA, + 26682 - 11904: 0xD1F2, + 26683 - 11904: 0xD1DE, + 26684 - 11904: 0xAEE6, + 26685 - 11904: 0xAEE2, + 26686 - 11904: 0xFC44, + 26688 - 11904: 0xAEE5, + 26689 - 11904: 0xAEEC, + 26690 - 11904: 0xAEDB, + 26691 - 11904: 0xAEE7, + 26692 - 11904: 0xD1E9, + 26693 - 11904: 0xAEE9, + 26694 - 11904: 0xAED8, + 26695 - 11904: 0x9640, + 26696 - 11904: 0xAED7, + 26697 - 11904: 0xD1DB, + 26698 - 11904: 0x8DB8, + 26699 - 11904: 0xD1DF, + 26700 - 11904: 0xAEE0, + 26701 - 11904: 0xD1F1, + 26702 - 11904: 0xD1E8, + 26703 - 11904: 0xD1E0, + 26704 - 11904: 0xAEE4, + 26705 - 11904: 0xAEE1, + 26707 - 11904: 0xAED9, + 26708 - 11904: 0xAEDC, + 26709 - 11904: 0x9B4A, + 26710 - 11904: 0x8FB9, + 26717 - 11904: 0xFCFE, + 26725 - 11904: 0x896A, + 26731 - 11904: 0xD5C4, + 26733 - 11904: 0xD5B4, + 26734 - 11904: 0xD5B5, + 26735 - 11904: 0xD5B9, + 26737 - 11904: 0xD5C8, + 26738 - 11904: 0xD5C5, + 26740 - 11904: 0xD5BE, + 26741 - 11904: 0xD5BD, + 26742 - 11904: 0xB1ED, + 26743 - 11904: 0xD5C1, + 26744 - 11904: 0xD5D0, + 26745 - 11904: 0xD5B0, + 26747 - 11904: 0xD5D1, + 26748 - 11904: 0xD5C3, + 26749 - 11904: 0xD5D5, + 26750 - 11904: 0xD5C9, + 26751 - 11904: 0xB1EC, + 26752 - 11904: 0xD5C7, + 26753 - 11904: 0xB1E7, + 26754 - 11904: 0xB1FC, + 26755 - 11904: 0xB1F2, + 26756 - 11904: 0x8DB9, + 26757 - 11904: 0xB1F6, + 26758 - 11904: 0xB1F5, + 26759 - 11904: 0xD5B1, + 26760 - 11904: 0x917E, + 26761 - 11904: 0xD5CE, + 26762 - 11904: 0xD5D4, + 26763 - 11904: 0xD5CC, + 26764 - 11904: 0xD5D3, + 26767 - 11904: 0xD5C0, + 26768 - 11904: 0xD5B2, + 26769 - 11904: 0xD5D2, + 26770 - 11904: 0xD5C2, + 26771 - 11904: 0xB1EA, + 26772 - 11904: 0xB1F7, + 26774 - 11904: 0xD5CB, + 26775 - 11904: 0xB1F0, + 26776 - 11904: 0x93F4, + 26779 - 11904: 0xD5CA, + 26780 - 11904: 0xD5B3, + 26781 - 11904: 0xB1F8, + 26783 - 11904: 0xB1FA, + 26784 - 11904: 0xD5CD, + 26785 - 11904: 0xB1FB, + 26786 - 11904: 0xB1E9, + 26787 - 11904: 0xD5BA, + 26788 - 11904: 0xD5CF, + 26790 - 11904: 0xFB7C, + 26791 - 11904: 0xB1EF, + 26792 - 11904: 0xB1F9, + 26793 - 11904: 0xD5BC, + 26794 - 11904: 0xD5C6, + 26795 - 11904: 0xD5B7, + 26796 - 11904: 0xD5BB, + 26797 - 11904: 0xB1F4, + 26798 - 11904: 0xD5B6, + 26799 - 11904: 0xB1E8, + 26800 - 11904: 0xB1F1, + 26801 - 11904: 0xB1EE, + 26802 - 11904: 0xD5BF, + 26803 - 11904: 0xAEDE, + 26804 - 11904: 0xD9C0, + 26805 - 11904: 0xB1EB, + 26806 - 11904: 0x93E7, + 26809 - 11904: 0x97EF, + 26813 - 11904: 0xFE4A, + 26819 - 11904: 0xFD45, + 26820 - 11904: 0xB1F3, + 26821 - 11904: 0x96A5, + 26822 - 11904: 0xD9C3, + 26823 - 11904: 0xD9D9, + 26824 - 11904: 0xD9CE, + 26825 - 11904: 0xB4D6, + 26826 - 11904: 0xFEE0, + 26827 - 11904: 0xB4D1, + 26828 - 11904: 0xD9BD, + 26829 - 11904: 0xB4D2, + 26830 - 11904: 0xD9CD, + 26832 - 11904: 0xD9C6, + 26833 - 11904: 0xD9D3, + 26834 - 11904: 0xB4CE, + 26835 - 11904: 0xD9AB, + 26836 - 11904: 0xD9D5, + 26837 - 11904: 0xB4C4, + 26838 - 11904: 0xD9B3, + 26839 - 11904: 0xB4C7, + 26840 - 11904: 0xB4C6, + 26842 - 11904: 0xB4D7, + 26844 - 11904: 0xD9AD, + 26845 - 11904: 0xD9CF, + 26846 - 11904: 0xD9D0, + 26847 - 11904: 0xB4C9, + 26848 - 11904: 0xB4C5, + 26849 - 11904: 0xD9BB, + 26851 - 11904: 0xB4D0, + 26852 - 11904: 0xD9B6, + 26854 - 11904: 0xD9D1, + 26855 - 11904: 0xB4CC, + 26856 - 11904: 0xD9C9, + 26857 - 11904: 0xD9D6, + 26858 - 11904: 0xD9B0, + 26859 - 11904: 0xD9B5, + 26860 - 11904: 0xD9AF, + 26862 - 11904: 0xB4CB, + 26863 - 11904: 0xD9C2, + 26864 - 11904: 0xDDDE, + 26865 - 11904: 0xD9B1, + 26866 - 11904: 0xB4CF, + 26867 - 11904: 0xD9BA, + 26868 - 11904: 0xD9D2, + 26869 - 11904: 0xB4CA, + 26870 - 11904: 0xD9B7, + 26871 - 11904: 0xD9B4, + 26872 - 11904: 0xD9C5, + 26873 - 11904: 0xB4CD, + 26874 - 11904: 0xB4C3, + 26875 - 11904: 0xB4D9, + 26876 - 11904: 0xD9C8, + 26877 - 11904: 0xD9C7, + 26880 - 11904: 0xFD48, + 26881 - 11904: 0xFD47, + 26882 - 11904: 0xFEF2, + 26883 - 11904: 0xFE6A, + 26884 - 11904: 0xD9AC, + 26885 - 11904: 0xB4C8, + 26886 - 11904: 0xD9D4, + 26887 - 11904: 0xD9BC, + 26888 - 11904: 0xD9BE, + 26889 - 11904: 0x8DBD, + 26890 - 11904: 0xD9CB, + 26891 - 11904: 0xD9CA, + 26892 - 11904: 0xD9AA, + 26893 - 11904: 0xB4D3, + 26894 - 11904: 0xB4D5, + 26895 - 11904: 0xD9B2, + 26896 - 11904: 0xD9B9, + 26897 - 11904: 0xD9C1, + 26898 - 11904: 0xB4D4, + 26899 - 11904: 0xD9B8, + 26900 - 11904: 0xD9C4, + 26901 - 11904: 0xD9D7, + 26903 - 11904: 0xD9CC, + 26904 - 11904: 0x9BA1, + 26905 - 11904: 0x8CA2, + 26906 - 11904: 0x9AB7, + 26907 - 11904: 0x8EFC, + 26917 - 11904: 0xD9D8, + 26922 - 11904: 0xD9AE, + 26924 - 11904: 0x9FA1, + 26927 - 11904: 0xDDF2, + 26928 - 11904: 0xB7A6, + 26930 - 11904: 0xDDF0, + 26931 - 11904: 0xDDDB, + 26932 - 11904: 0xDDE0, + 26933 - 11904: 0xDDD9, + 26934 - 11904: 0xFD51, + 26935 - 11904: 0xDDEC, + 26936 - 11904: 0xDDCB, + 26937 - 11904: 0xDDD2, + 26939 - 11904: 0xDDEA, + 26940 - 11904: 0xDDF4, + 26941 - 11904: 0xDDDC, + 26942 - 11904: 0xFAAD, + 26943 - 11904: 0xDDCF, + 26944 - 11904: 0xDDE2, + 26945 - 11904: 0xDDE7, + 26946 - 11904: 0xDDD3, + 26947 - 11904: 0x8DBE, + 26948 - 11904: 0xDDE4, + 26949 - 11904: 0xDDD0, + 26950 - 11904: 0x89A4, + 26952 - 11904: 0xDDD7, + 26953 - 11904: 0xDDD8, + 26954 - 11904: 0xB7A8, + 26955 - 11904: 0xDDEB, + 26956 - 11904: 0xDDE9, + 26958 - 11904: 0xDDCC, + 26959 - 11904: 0xDDEE, + 26961 - 11904: 0xDDEF, + 26962 - 11904: 0xDDF1, + 26963 - 11904: 0xB7AC, + 26964 - 11904: 0xB7A4, + 26965 - 11904: 0x9AD9, + 26966 - 11904: 0xD5B8, + 26967 - 11904: 0xDDD4, + 26968 - 11904: 0xDDE6, + 26969 - 11904: 0xDDD5, + 26970 - 11904: 0xB7A1, + 26971 - 11904: 0xB7B1, + 26972 - 11904: 0xDDED, + 26973 - 11904: 0xB7AF, + 26974 - 11904: 0xB7AB, + 26975 - 11904: 0xDDCA, + 26976 - 11904: 0xB7A3, + 26977 - 11904: 0xFD4E, + 26978 - 11904: 0xDDCD, + 26979 - 11904: 0xB7B0, + 26980 - 11904: 0x8DC0, + 26981 - 11904: 0xDDDD, + 26982 - 11904: 0xDDC9, + 26983 - 11904: 0x97F0, + 26984 - 11904: 0xB7A9, + 26985 - 11904: 0xDDE1, + 26986 - 11904: 0xDDD1, + 26987 - 11904: 0xB7AA, + 26988 - 11904: 0xDDDA, + 26989 - 11904: 0xB77E, + 26990 - 11904: 0xB4D8, + 26991 - 11904: 0xDDE3, + 26992 - 11904: 0xD9BF, + 26993 - 11904: 0xDDCE, + 26994 - 11904: 0x93B4, + 26995 - 11904: 0xFD44, + 26996 - 11904: 0xDDE8, + 26997 - 11904: 0xB7A5, + 26998 - 11904: 0xDDE5, + 26999 - 11904: 0xB7A2, + 27000 - 11904: 0xDDDF, + 27001 - 11904: 0xB7AD, + 27002 - 11904: 0xDDD6, + 27003 - 11904: 0xDDF3, + 27008 - 11904: 0x9FA7, + 27010 - 11904: 0xB7A7, + 27011 - 11904: 0xDEC6, + 27013 - 11904: 0x8DC2, + 27014 - 11904: 0xB7AE, + 27018 - 11904: 0x99B6, + 27021 - 11904: 0xE24A, + 27022 - 11904: 0xE248, + 27024 - 11904: 0xE25E, + 27025 - 11904: 0xE246, + 27027 - 11904: 0xE258, + 27028 - 11904: 0xB77D, + 27029 - 11904: 0xBA5F, + 27030 - 11904: 0xE242, + 27031 - 11904: 0xE25D, + 27032 - 11904: 0xFD52, + 27033 - 11904: 0xE247, + 27034 - 11904: 0xE255, + 27035 - 11904: 0xBA64, + 27036 - 11904: 0xBA5D, + 27038 - 11904: 0xE25B, + 27039 - 11904: 0x8DC1, + 27040 - 11904: 0xE240, + 27041 - 11904: 0xE25A, + 27042 - 11904: 0x8E46, + 27043 - 11904: 0xBA6F, + 27044 - 11904: 0xE251, + 27045 - 11904: 0xE261, + 27046 - 11904: 0xBA6D, + 27047 - 11904: 0xE249, + 27048 - 11904: 0xBA5E, + 27049 - 11904: 0xE24B, + 27050 - 11904: 0xE259, + 27051 - 11904: 0xBA67, + 27052 - 11904: 0xE244, + 27053 - 11904: 0xBA6B, + 27054 - 11904: 0xBA61, + 27055 - 11904: 0xE24D, + 27056 - 11904: 0xE243, + 27057 - 11904: 0xE1FC, + 27058 - 11904: 0xA0D1, + 27059 - 11904: 0xE257, + 27060 - 11904: 0xBA68, + 27061 - 11904: 0xE260, + 27062 - 11904: 0xE1FD, + 27063 - 11904: 0xBA65, + 27065 - 11904: 0xE253, + 27067 - 11904: 0xBA66, + 27068 - 11904: 0xE245, + 27069 - 11904: 0xE250, + 27070 - 11904: 0xE24C, + 27071 - 11904: 0xE24E, + 27072 - 11904: 0x9FCA, + 27073 - 11904: 0xBA60, + 27074 - 11904: 0xE25F, + 27075 - 11904: 0xBA6E, + 27076 - 11904: 0xE24F, + 27078 - 11904: 0xE262, + 27081 - 11904: 0xE1FE, + 27082 - 11904: 0xE254, + 27083 - 11904: 0xBA63, + 27084 - 11904: 0xBA6C, + 27085 - 11904: 0xBA6A, + 27086 - 11904: 0xE241, + 27087 - 11904: 0xE256, + 27088 - 11904: 0xBA69, + 27089 - 11904: 0x92CF, + 27091 - 11904: 0xBA62, + 27092 - 11904: 0xE252, + 27093 - 11904: 0x9CF4, + 27094 - 11904: 0x8DC4, + 27097 - 11904: 0xE25C, + 27105 - 11904: 0xFD41, + 27106 - 11904: 0xE5D5, + 27108 - 11904: 0xE5D1, + 27109 - 11904: 0xE5CD, + 27110 - 11904: 0xE5E1, + 27111 - 11904: 0xE5DE, + 27112 - 11904: 0xBCCD, + 27113 - 11904: 0x9B4C, + 27115 - 11904: 0xE5E5, + 27116 - 11904: 0xE5D4, + 27117 - 11904: 0xBCD8, + 27118 - 11904: 0xE5DB, + 27121 - 11904: 0xE5D0, + 27122 - 11904: 0xE5DA, + 27123 - 11904: 0xBCD5, + 27124 - 11904: 0xE5EE, + 27126 - 11904: 0xE5EB, + 27127 - 11904: 0xE5DD, + 27128 - 11904: 0xE5CE, + 27129 - 11904: 0xFD57, + 27130 - 11904: 0xFCEF, + 27131 - 11904: 0xE5E2, + 27132 - 11904: 0xE5E4, + 27133 - 11904: 0xBCD1, + 27134 - 11904: 0xE5D8, + 27135 - 11904: 0xE5D3, + 27136 - 11904: 0xE5CA, + 27137 - 11904: 0xBCCE, + 27138 - 11904: 0xBCD6, + 27139 - 11904: 0x9CDE, + 27140 - 11904: 0xE5E7, + 27141 - 11904: 0xBCD7, + 27142 - 11904: 0xE5CB, + 27143 - 11904: 0xE5ED, + 27144 - 11904: 0xE5E0, + 27145 - 11904: 0xE5E6, + 27146 - 11904: 0xBCD4, + 27147 - 11904: 0xFD42, + 27148 - 11904: 0x986C, + 27149 - 11904: 0xE5E3, + 27151 - 11904: 0xE5EA, + 27153 - 11904: 0xBCD9, + 27155 - 11904: 0xBCD3, + 27156 - 11904: 0xE5DC, + 27157 - 11904: 0xE5CF, + 27158 - 11904: 0xE5EF, + 27159 - 11904: 0xE5CC, + 27160 - 11904: 0xE5E8, + 27161 - 11904: 0xBCD0, + 27162 - 11904: 0x97F9, + 27163 - 11904: 0xE5D6, + 27164 - 11904: 0x9558, + 27165 - 11904: 0xE5D7, + 27166 - 11904: 0xBCCF, + 27167 - 11904: 0xBCCC, + 27168 - 11904: 0xE5D2, + 27169 - 11904: 0xBCD2, + 27171 - 11904: 0xBCCB, + 27173 - 11904: 0xE5E9, + 27174 - 11904: 0xE5EC, + 27175 - 11904: 0xE5D9, + 27176 - 11904: 0xE9CA, + 27177 - 11904: 0x87B6, + 27179 - 11904: 0x985E, + 27180 - 11904: 0xFE7B, + 27181 - 11904: 0x94CD, + 27186 - 11904: 0xE9C2, + 27187 - 11904: 0x93EE, + 27188 - 11904: 0xE9BE, + 27189 - 11904: 0xBEF6, + 27192 - 11904: 0xBEEB, + 27193 - 11904: 0xBEF0, + 27194 - 11904: 0xBEEC, + 27195 - 11904: 0xE9CC, + 27196 - 11904: 0xE9D7, + 27197 - 11904: 0xBEEA, + 27198 - 11904: 0xE9C4, + 27199 - 11904: 0xE9CD, + 27200 - 11904: 0xE5DF, + 27201 - 11904: 0xE9CE, + 27203 - 11904: 0x8CA3, + 27204 - 11904: 0xBEF1, + 27205 - 11904: 0xFD5A, + 27206 - 11904: 0xE9DD, + 27207 - 11904: 0xBEF5, + 27208 - 11904: 0xBEF8, + 27209 - 11904: 0xE9C0, + 27211 - 11904: 0xBEF4, + 27212 - 11904: 0x93F5, + 27213 - 11904: 0xE9DB, + 27214 - 11904: 0xE9DC, + 27215 - 11904: 0xE9D2, + 27216 - 11904: 0xE9D1, + 27217 - 11904: 0xE9C9, + 27218 - 11904: 0x93EF, + 27219 - 11904: 0x8EEA, + 27220 - 11904: 0xE9D3, + 27221 - 11904: 0xE9DA, + 27222 - 11904: 0xE9D9, + 27223 - 11904: 0x8F5B, + 27224 - 11904: 0xBEEF, + 27225 - 11904: 0xBEED, + 27226 - 11904: 0xE9CB, + 27227 - 11904: 0xE9C8, + 27229 - 11904: 0xE9C5, + 27230 - 11904: 0xE9D8, + 27231 - 11904: 0xBEF7, + 27232 - 11904: 0xE9D6, + 27233 - 11904: 0xBEF3, + 27234 - 11904: 0xBEF2, + 27235 - 11904: 0x8C5E, + 27236 - 11904: 0xE9D0, + 27237 - 11904: 0x8DC6, + 27238 - 11904: 0xE9BF, + 27239 - 11904: 0xE9C1, + 27240 - 11904: 0xE9C3, + 27241 - 11904: 0xE9D5, + 27242 - 11904: 0xE9CF, + 27243 - 11904: 0xBEEE, + 27245 - 11904: 0xE9C6, + 27247 - 11904: 0xE9D4, + 27249 - 11904: 0x8DC8, + 27252 - 11904: 0x8DC7, + 27254 - 11904: 0xE9C7, + 27258 - 11904: 0x93F7, + 27262 - 11904: 0xC0CF, + 27263 - 11904: 0xED45, + 27264 - 11904: 0xC0C8, + 27265 - 11904: 0xECF5, + 27266 - 11904: 0x8DC9, + 27267 - 11904: 0xED41, + 27268 - 11904: 0xC0CA, + 27269 - 11904: 0xED48, + 27271 - 11904: 0xECFC, + 27273 - 11904: 0xECF7, + 27274 - 11904: 0xFBF2, + 27276 - 11904: 0xED49, + 27277 - 11904: 0xECF3, + 27278 - 11904: 0xECFE, + 27279 - 11904: 0x9670, + 27280 - 11904: 0xC0D1, + 27281 - 11904: 0xED44, + 27282 - 11904: 0xED4A, + 27283 - 11904: 0xECFD, + 27284 - 11904: 0xC0C9, + 27285 - 11904: 0xED40, + 27286 - 11904: 0xECF4, + 27287 - 11904: 0xC0D0, + 27289 - 11904: 0x8DCB, + 27290 - 11904: 0xED47, + 27291 - 11904: 0xECF9, + 27292 - 11904: 0xC0CC, + 27293 - 11904: 0xFD5C, + 27294 - 11904: 0xECFB, + 27295 - 11904: 0xECF8, + 27296 - 11904: 0xC0D2, + 27297 - 11904: 0xECFA, + 27298 - 11904: 0xC0CB, + 27299 - 11904: 0xC0CE, + 27300 - 11904: 0xED43, + 27301 - 11904: 0xECF6, + 27302 - 11904: 0xED46, + 27303 - 11904: 0x8F65, + 27304 - 11904: 0xED42, + 27307 - 11904: 0x8DCD, + 27308 - 11904: 0xC263, + 27309 - 11904: 0xEFE7, + 27310 - 11904: 0xC268, + 27311 - 11904: 0xC269, + 27313 - 11904: 0x9DA8, + 27314 - 11904: 0x94F9, + 27315 - 11904: 0xC262, + 27316 - 11904: 0xEFE6, + 27317 - 11904: 0x8DCE, + 27318 - 11904: 0xEFE3, + 27319 - 11904: 0xEFE4, + 27320 - 11904: 0xC266, + 27321 - 11904: 0xEFDE, + 27322 - 11904: 0xEFE2, + 27323 - 11904: 0xC265, + 27325 - 11904: 0xEFDF, + 27326 - 11904: 0x93EA, + 27330 - 11904: 0xC267, + 27331 - 11904: 0xC264, + 27333 - 11904: 0xEFDD, + 27334 - 11904: 0xEFE1, + 27335 - 11904: 0xEFE5, + 27336 - 11904: 0xFD5F, + 27337 - 11904: 0x93F0, + 27338 - 11904: 0x9FB6, + 27339 - 11904: 0xF251, + 27340 - 11904: 0xF24E, + 27341 - 11904: 0xF257, + 27343 - 11904: 0xF256, + 27344 - 11904: 0xF254, + 27345 - 11904: 0xF24F, + 27347 - 11904: 0xC372, + 27348 - 11904: 0x8DCF, + 27352 - 11904: 0x9763, + 27353 - 11904: 0xF250, + 27354 - 11904: 0xC371, + 27355 - 11904: 0xC0CD, + 27356 - 11904: 0xF253, + 27357 - 11904: 0xC370, + 27358 - 11904: 0xF258, + 27359 - 11904: 0xF252, + 27360 - 11904: 0xF24D, + 27361 - 11904: 0xEFE0, + 27365 - 11904: 0xC36F, + 27367 - 11904: 0xF24C, + 27368 - 11904: 0xF456, + 27370 - 11904: 0xF455, + 27371 - 11904: 0xF255, + 27372 - 11904: 0xC468, + 27374 - 11904: 0xF459, + 27375 - 11904: 0xF45A, + 27376 - 11904: 0xF454, + 27377 - 11904: 0xF458, + 27379 - 11904: 0xF453, + 27382 - 11904: 0x8DD0, + 27384 - 11904: 0xF5D1, + 27385 - 11904: 0xF457, + 27386 - 11904: 0xC4E7, + 27387 - 11904: 0xC4E5, + 27388 - 11904: 0xF5CF, + 27392 - 11904: 0xF5D2, + 27394 - 11904: 0xF5CE, + 27395 - 11904: 0xF5D0, + 27396 - 11904: 0xC4E6, + 27397 - 11904: 0x93F1, + 27400 - 11904: 0xF6E5, + 27401 - 11904: 0xF6E6, + 27402 - 11904: 0xC576, + 27403 - 11904: 0xF6E4, + 27407 - 11904: 0xF7E2, + 27408 - 11904: 0xC5CF, + 27409 - 11904: 0xF7E0, + 27410 - 11904: 0xF7E1, + 27411 - 11904: 0xF8AC, + 27414 - 11904: 0xC656, + 27415 - 11904: 0xF8F3, + 27416 - 11904: 0xF8F1, + 27417 - 11904: 0xF8F2, + 27418 - 11904: 0xF8F4, + 27421 - 11904: 0xFD62, + 27422 - 11904: 0xF9BB, + 27424 - 11904: 0xA4ED, + 27425 - 11904: 0xA6B8, + 27427 - 11904: 0xAA59, + 27429 - 11904: 0xCCE9, + 27432 - 11904: 0xCF64, + 27436 - 11904: 0xD1F5, + 27437 - 11904: 0xD1F7, + 27439 - 11904: 0xD1F6, + 27441 - 11904: 0xD1F8, + 27442 - 11904: 0xB1FD, + 27443 - 11904: 0xD5D7, + 27444 - 11904: 0xD1F9, + 27445 - 11904: 0xFD65, + 27446 - 11904: 0xD5D6, + 27447 - 11904: 0xD5D8, + 27448 - 11904: 0xD5D9, + 27449 - 11904: 0xD9DA, + 27450 - 11904: 0xB4DB, + 27451 - 11904: 0xD9DB, + 27452 - 11904: 0xD9DD, + 27453 - 11904: 0xB4DC, + 27454 - 11904: 0xB4DA, + 27455 - 11904: 0xD9DC, + 27457 - 11904: 0xDDFA, + 27458 - 11904: 0xDDF8, + 27459 - 11904: 0xDDF7, + 27461 - 11904: 0xDDF6, + 27462 - 11904: 0xDDF5, + 27463 - 11904: 0xB7B2, + 27464 - 11904: 0xDDF9, + 27465 - 11904: 0xBA70, + 27466 - 11904: 0xE263, + 27467 - 11904: 0xE265, + 27468 - 11904: 0xBA71, + 27469 - 11904: 0xE264, + 27470 - 11904: 0xBCDB, + 27472 - 11904: 0xBCDA, + 27473 - 11904: 0xE5F0, + 27474 - 11904: 0x9FDB, + 27476 - 11904: 0xE9DF, + 27477 - 11904: 0xE9DE, + 27478 - 11904: 0xE9E0, + 27479 - 11904: 0x93F8, + 27481 - 11904: 0xBEF9, + 27483 - 11904: 0xED4B, + 27484 - 11904: 0xC0D3, + 27486 - 11904: 0xEFE8, + 27487 - 11904: 0xC26A, + 27488 - 11904: 0xF259, + 27489 - 11904: 0xC577, + 27490 - 11904: 0xA4EE, + 27491 - 11904: 0xA5BF, + 27492 - 11904: 0xA6B9, + 27493 - 11904: 0xA842, + 27494 - 11904: 0xAA5A, + 27495 - 11904: 0xAA5B, + 27498 - 11904: 0xAC6E, + 27501 - 11904: 0xD1FA, + 27503 - 11904: 0x8BF7, + 27506 - 11904: 0xB7B3, + 27508 - 11904: 0xFD66, + 27510 - 11904: 0xE6D1, + 27511 - 11904: 0xBEFA, + 27512 - 11904: 0xC26B, + 27513 - 11904: 0xA4EF, + 27514 - 11904: 0x8BCF, + 27515 - 11904: 0xA6BA, + 27518 - 11904: 0xCCEB, + 27519 - 11904: 0xAA5C, + 27520 - 11904: 0xCCEA, + 27521 - 11904: 0x8DD1, + 27522 - 11904: 0xCF65, + 27523 - 11904: 0xAC6F, + 27524 - 11904: 0xCF66, + 27526 - 11904: 0xAC70, + 27528 - 11904: 0xD1FC, + 27529 - 11904: 0xAEEE, + 27530 - 11904: 0xAEED, + 27532 - 11904: 0xD5DE, + 27533 - 11904: 0xD5DC, + 27534 - 11904: 0xD5DD, + 27535 - 11904: 0xD5DB, + 27537 - 11904: 0xD5DA, + 27540 - 11904: 0xD9DE, + 27541 - 11904: 0xD9E1, + 27542 - 11904: 0xB4DE, + 27543 - 11904: 0xD9DF, + 27544 - 11904: 0xB4DD, + 27545 - 11904: 0xD9E0, + 27547 - 11904: 0xDDFB, + 27550 - 11904: 0xE266, + 27551 - 11904: 0xE267, + 27552 - 11904: 0xE268, + 27554 - 11904: 0xE5F3, + 27555 - 11904: 0xE5F2, + 27556 - 11904: 0xBCDC, + 27557 - 11904: 0xE5F1, + 27558 - 11904: 0xE5F4, + 27559 - 11904: 0xE9E1, + 27562 - 11904: 0xE9E2, + 27563 - 11904: 0xE9E3, + 27565 - 11904: 0xED4C, + 27566 - 11904: 0xC0D4, + 27567 - 11904: 0xC26C, + 27568 - 11904: 0xF25A, + 27570 - 11904: 0xC4E8, + 27571 - 11904: 0xC95F, + 27573 - 11904: 0xAC71, + 27574 - 11904: 0xCF67, + 27575 - 11904: 0xAEEF, + 27578 - 11904: 0xB1FE, + 27580 - 11904: 0xB4DF, + 27581 - 11904: 0xD9E2, + 27583 - 11904: 0xB7B5, + 27584 - 11904: 0xB7B4, + 27585 - 11904: 0x8DD2, + 27587 - 11904: 0xE269, + 27588 - 11904: 0xE26A, + 27589 - 11904: 0xBCDD, + 27590 - 11904: 0xBCDE, + 27591 - 11904: 0xE9E5, + 27592 - 11904: 0xE9E4, + 27593 - 11904: 0xEFE9, + 27594 - 11904: 0xF7E3, + 27595 - 11904: 0xA4F0, + 27596 - 11904: 0xC960, + 27597 - 11904: 0xA5C0, + 27599 - 11904: 0xA843, + 27600 - 11904: 0xCB48, + 27602 - 11904: 0xAC72, + 27603 - 11904: 0xB7B6, + 27604 - 11904: 0xA4F1, + 27606 - 11904: 0xCF68, + 27607 - 11904: 0xAC73, + 27608 - 11904: 0xCF69, + 27610 - 11904: 0xC0D5, + 27611 - 11904: 0xA4F2, + 27612 - 11904: 0xFD71, + 27614 - 11904: 0xCCEC, + 27616 - 11904: 0xCF6A, + 27617 - 11904: 0xFD6F, + 27618 - 11904: 0xD242, + 27619 - 11904: 0xD241, + 27620 - 11904: 0xD1FE, + 27622 - 11904: 0xD1FD, + 27623 - 11904: 0xD243, + 27624 - 11904: 0xD240, + 27626 - 11904: 0x8DD3, + 27627 - 11904: 0xB240, + 27628 - 11904: 0xB241, + 27631 - 11904: 0xB4E0, + 27632 - 11904: 0xD9E3, + 27634 - 11904: 0xD9E4, + 27635 - 11904: 0xD9E5, + 27639 - 11904: 0xDE41, + 27640 - 11904: 0xDE42, + 27641 - 11904: 0xDE40, + 27642 - 11904: 0x9FE7, + 27643 - 11904: 0xDDFD, + 27644 - 11904: 0xDDFE, + 27645 - 11904: 0xB7B7, + 27646 - 11904: 0xE26B, + 27647 - 11904: 0xE5F7, + 27648 - 11904: 0xE5F6, + 27649 - 11904: 0xE5F5, + 27650 - 11904: 0xE5F8, + 27651 - 11904: 0xE9E7, + 27652 - 11904: 0xE9E6, + 27653 - 11904: 0xBEFB, + 27654 - 11904: 0xE9E8, + 27656 - 11904: 0xC0D6, + 27657 - 11904: 0xED4D, + 27659 - 11904: 0xEFEA, + 27660 - 11904: 0xF25B, + 27661 - 11904: 0xF6E7, + 27663 - 11904: 0xA4F3, + 27664 - 11904: 0xA5C2, + 27665 - 11904: 0xA5C1, + 27667 - 11904: 0xAA5D, + 27668 - 11904: 0xC961, + 27669 - 11904: 0xC97E, + 27670 - 11904: 0xA6BB, + 27672 - 11904: 0xC9F7, + 27673 - 11904: 0xCB49, + 27674 - 11904: 0xCB4A, + 27675 - 11904: 0xAA5E, + 27676 - 11904: 0x90BD, + 27677 - 11904: 0xCCED, + 27679 - 11904: 0xAC74, + 27680 - 11904: 0xCF6B, + 27681 - 11904: 0xCF6C, + 27683 - 11904: 0xAEF0, + 27684 - 11904: 0xAEF4, + 27685 - 11904: 0xD244, + 27686 - 11904: 0xAEF3, + 27687 - 11904: 0xAEF1, + 27688 - 11904: 0xAEF2, + 27690 - 11904: 0xD5DF, + 27691 - 11904: 0xB242, + 27692 - 11904: 0xB4E3, + 27694 - 11904: 0xB4E1, + 27695 - 11904: 0xB4E2, + 27696 - 11904: 0xD9E6, + 27697 - 11904: 0x9FD0, + 27699 - 11904: 0xBA72, + 27700 - 11904: 0xA4F4, + 27701 - 11904: 0x8BD0, + 27702 - 11904: 0xC9A1, + 27703 - 11904: 0xFD72, + 27704 - 11904: 0xA5C3, + 27705 - 11904: 0x9CAE, + 27706 - 11904: 0x8BD1, + 27707 - 11904: 0xC9A4, + 27709 - 11904: 0x8ADB, + 27710 - 11904: 0xA5C6, + 27711 - 11904: 0xC9A3, + 27712 - 11904: 0xA5C5, + 27713 - 11904: 0xA5C4, + 27714 - 11904: 0xA844, + 27715 - 11904: 0xC9A2, + 27718 - 11904: 0xC9F8, + 27721 - 11904: 0xFAE4, + 27722 - 11904: 0xC9FC, + 27723 - 11904: 0xC9FE, + 27724 - 11904: 0xCA40, + 27725 - 11904: 0xA6C5, + 27726 - 11904: 0xA6C6, + 27727 - 11904: 0xC9FB, + 27728 - 11904: 0xA6C1, + 27730 - 11904: 0xC9F9, + 27732 - 11904: 0xC9FD, + 27733 - 11904: 0xA6C2, + 27735 - 11904: 0xA6BD, + 27736 - 11904: 0x95CE, + 27737 - 11904: 0xA6BE, + 27738 - 11904: 0xFD76, + 27739 - 11904: 0xA6C4, + 27740 - 11904: 0xC9FA, + 27741 - 11904: 0xA6BC, + 27742 - 11904: 0xA845, + 27743 - 11904: 0xA6BF, + 27744 - 11904: 0xA6C0, + 27745 - 11904: 0xA6C3, + 27749 - 11904: 0xCB5B, + 27750 - 11904: 0xCB59, + 27751 - 11904: 0xCB4C, + 27752 - 11904: 0xA851, + 27753 - 11904: 0xCB53, + 27754 - 11904: 0xA84C, + 27755 - 11904: 0xCB4D, + 27757 - 11904: 0xCB55, + 27758 - 11904: 0xFB62, + 27759 - 11904: 0xCB52, + 27760 - 11904: 0xA84F, + 27761 - 11904: 0xCB51, + 27762 - 11904: 0xA856, + 27763 - 11904: 0xCB5A, + 27764 - 11904: 0xA858, + 27765 - 11904: 0x8DD4, + 27766 - 11904: 0xA85A, + 27768 - 11904: 0xCB4B, + 27769 - 11904: 0xFD78, + 27770 - 11904: 0xA84D, + 27771 - 11904: 0xCB5C, + 27773 - 11904: 0xA854, + 27774 - 11904: 0xA857, + 27775 - 11904: 0x8EE3, + 27776 - 11904: 0xCD45, + 27777 - 11904: 0xA847, + 27778 - 11904: 0xA85E, + 27779 - 11904: 0xA855, + 27780 - 11904: 0xCB4E, + 27781 - 11904: 0xA84A, + 27782 - 11904: 0xA859, + 27783 - 11904: 0xCB56, + 27784 - 11904: 0xA848, + 27785 - 11904: 0xA849, + 27786 - 11904: 0xCD43, + 27787 - 11904: 0xCB4F, + 27788 - 11904: 0xA850, + 27789 - 11904: 0xA85B, + 27790 - 11904: 0xCB5D, + 27791 - 11904: 0xCB50, + 27792 - 11904: 0xA84E, + 27794 - 11904: 0xA853, + 27795 - 11904: 0xCCEE, + 27796 - 11904: 0xA85C, + 27797 - 11904: 0xCB57, + 27798 - 11904: 0xA852, + 27800 - 11904: 0xA85D, + 27801 - 11904: 0xA846, + 27802 - 11904: 0xCB54, + 27803 - 11904: 0xA84B, + 27804 - 11904: 0xFDB7, + 27805 - 11904: 0xCD44, + 27807 - 11904: 0x9076, + 27810 - 11904: 0x98C6, + 27818 - 11904: 0x8DD5, + 27819 - 11904: 0xAA6A, + 27820 - 11904: 0xAA7A, + 27821 - 11904: 0xCCF5, + 27822 - 11904: 0xAA71, + 27823 - 11904: 0x97D1, + 27824 - 11904: 0xCD4B, + 27825 - 11904: 0xAA62, + 27826 - 11904: 0x9EB6, + 27827 - 11904: 0xAA65, + 27828 - 11904: 0xCD42, + 27830 - 11904: 0xCCF3, + 27831 - 11904: 0xCCF7, + 27832 - 11904: 0xAA6D, + 27833 - 11904: 0xAA6F, + 27834 - 11904: 0xCCFA, + 27835 - 11904: 0xAA76, + 27836 - 11904: 0xAA68, + 27837 - 11904: 0xAA66, + 27838 - 11904: 0xAA67, + 27839 - 11904: 0xAA75, + 27840 - 11904: 0xCD47, + 27841 - 11904: 0xAA70, + 27842 - 11904: 0xCCF9, + 27843 - 11904: 0xCCFB, + 27844 - 11904: 0xAA6E, + 27845 - 11904: 0xAA73, + 27846 - 11904: 0xCCFC, + 27847 - 11904: 0xCD4A, + 27849 - 11904: 0xAC75, + 27850 - 11904: 0xAA79, + 27851 - 11904: 0xFAC7, + 27852 - 11904: 0xAA63, + 27853 - 11904: 0xCD49, + 27854 - 11904: 0xA042, + 27855 - 11904: 0xCD4D, + 27856 - 11904: 0xCCF8, + 27857 - 11904: 0xCD4F, + 27858 - 11904: 0xCD40, + 27859 - 11904: 0xAA6C, + 27860 - 11904: 0xCCF4, + 27861 - 11904: 0xAA6B, + 27862 - 11904: 0xAA7D, + 27863 - 11904: 0xAA72, + 27865 - 11904: 0xCCF2, + 27866 - 11904: 0xCF75, + 27867 - 11904: 0xAA78, + 27868 - 11904: 0xAA7C, + 27869 - 11904: 0xCD41, + 27870 - 11904: 0xCD46, + 27871 - 11904: 0x9873, + 27872 - 11904: 0xAA7E, + 27873 - 11904: 0xAA77, + 27874 - 11904: 0xAA69, + 27875 - 11904: 0xAA5F, + 27877 - 11904: 0xAA64, + 27879 - 11904: 0xCCF6, + 27880 - 11904: 0xAA60, + 27881 - 11904: 0xCD4E, + 27882 - 11904: 0x9FFC, + 27883 - 11904: 0xCCF0, + 27884 - 11904: 0xCCEF, + 27885 - 11904: 0xCCFD, + 27886 - 11904: 0xCCF1, + 27887 - 11904: 0xAA7B, + 27888 - 11904: 0xAEF5, + 27889 - 11904: 0xAA74, + 27890 - 11904: 0xCCFE, + 27891 - 11904: 0xAA61, + 27893 - 11904: 0xACA6, + 27897 - 11904: 0xCD4C, + 27903 - 11904: 0x8CA5, + 27904 - 11904: 0xCF7C, + 27905 - 11904: 0xCFA1, + 27906 - 11904: 0x8DD7, + 27907 - 11904: 0xCFA4, + 27908 - 11904: 0xCF77, + 27909 - 11904: 0x92FB, + 27910 - 11904: 0x8DD8, + 27911 - 11904: 0xCFA7, + 27912 - 11904: 0xCFAA, + 27913 - 11904: 0xCFAC, + 27914 - 11904: 0xCF74, + 27915 - 11904: 0xAC76, + 27916 - 11904: 0xAC7B, + 27917 - 11904: 0xD249, + 27918 - 11904: 0xACAD, + 27919 - 11904: 0xCFA5, + 27920 - 11904: 0xCFAD, + 27921 - 11904: 0xCF7B, + 27922 - 11904: 0xCF73, + 27926 - 11904: 0xD264, + 27927 - 11904: 0xAC7E, + 27928 - 11904: 0xCFA2, + 27929 - 11904: 0xCF78, + 27930 - 11904: 0xCF7A, + 27931 - 11904: 0xACA5, + 27933 - 11904: 0xCF7D, + 27934 - 11904: 0xAC7D, + 27935 - 11904: 0xCF70, + 27936 - 11904: 0xCFA8, + 27938 - 11904: 0xCFAB, + 27940 - 11904: 0x944F, + 27941 - 11904: 0xAC7A, + 27942 - 11904: 0x8DD9, + 27943 - 11904: 0xACA8, + 27944 - 11904: 0xCF6D, + 27945 - 11904: 0xACAA, + 27946 - 11904: 0xAC78, + 27947 - 11904: 0xACAE, + 27948 - 11904: 0xCFA9, + 27949 - 11904: 0xCF6F, + 27950 - 11904: 0xACAB, + 27951 - 11904: 0xD25E, + 27952 - 11904: 0xCD48, + 27953 - 11904: 0xAC7C, + 27954 - 11904: 0xAC77, + 27955 - 11904: 0xCF76, + 27956 - 11904: 0xCF6E, + 27957 - 11904: 0xACAC, + 27958 - 11904: 0xACA4, + 27959 - 11904: 0xCFA3, + 27960 - 11904: 0xACA9, + 27961 - 11904: 0xACA7, + 27962 - 11904: 0xCF79, + 27963 - 11904: 0xACA1, + 27964 - 11904: 0xCF71, + 27965 - 11904: 0xACA2, + 27966 - 11904: 0xACA3, + 27967 - 11904: 0xCF72, + 27968 - 11904: 0xCFA6, + 27969 - 11904: 0xAC79, + 27970 - 11904: 0xCF7E, + 27982 - 11904: 0x896B, + 27991 - 11904: 0x97CE, + 27992 - 11904: 0xD24C, + 27993 - 11904: 0xAEFD, + 27994 - 11904: 0xAF43, + 27995 - 11904: 0xFAF3, + 27996 - 11904: 0xFDAE, + 27998 - 11904: 0xD255, + 27999 - 11904: 0xD25B, + 28000 - 11904: 0xD257, + 28001 - 11904: 0xD24A, + 28002 - 11904: 0xD24D, + 28003 - 11904: 0xD246, + 28004 - 11904: 0xD247, + 28005 - 11904: 0xAF4A, + 28006 - 11904: 0xAEFA, + 28007 - 11904: 0xD256, + 28008 - 11904: 0xD25F, + 28009 - 11904: 0xAF45, + 28010 - 11904: 0xAEF6, + 28012 - 11904: 0xAF40, + 28013 - 11904: 0xD24E, + 28014 - 11904: 0xAF42, + 28015 - 11904: 0xD24F, + 28016 - 11904: 0xD259, + 28017 - 11904: 0xFBAF, + 28018 - 11904: 0x92B7, + 28020 - 11904: 0xAF44, + 28021 - 11904: 0xD268, + 28022 - 11904: 0xD248, + 28023 - 11904: 0xAEFC, + 28024 - 11904: 0xAEFB, + 28025 - 11904: 0xAF48, + 28026 - 11904: 0xD245, + 28027 - 11904: 0xD266, + 28028 - 11904: 0xD25A, + 28029 - 11904: 0xD267, + 28030 - 11904: 0xD261, + 28031 - 11904: 0xD253, + 28032 - 11904: 0xD262, + 28033 - 11904: 0x8DDA, + 28034 - 11904: 0xD25C, + 28035 - 11904: 0xD265, + 28036 - 11904: 0xD263, + 28037 - 11904: 0xAF49, + 28038 - 11904: 0xD254, + 28039 - 11904: 0xAEF9, + 28040 - 11904: 0xAEF8, + 28041 - 11904: 0xAF41, + 28042 - 11904: 0xAF47, + 28043 - 11904: 0xD260, + 28044 - 11904: 0xAF46, + 28045 - 11904: 0xD251, + 28046 - 11904: 0xB243, + 28047 - 11904: 0x9C5A, + 28048 - 11904: 0xD269, + 28049 - 11904: 0xD250, + 28050 - 11904: 0xD24B, + 28051 - 11904: 0xAEFE, + 28052 - 11904: 0xAF4B, + 28053 - 11904: 0xAEF7, + 28054 - 11904: 0xFDAD, + 28055 - 11904: 0xD258, + 28056 - 11904: 0xD25D, + 28068 - 11904: 0x8DDC, + 28069 - 11904: 0x9444, + 28074 - 11904: 0xB265, + 28075 - 11904: 0xD5E1, + 28076 - 11904: 0xD5E5, + 28078 - 11904: 0xB252, + 28079 - 11904: 0xB250, + 28081 - 11904: 0x8DDD, + 28082 - 11904: 0xB247, + 28083 - 11904: 0xD5E3, + 28084 - 11904: 0xD5E2, + 28085 - 11904: 0xB25B, + 28087 - 11904: 0xD5E8, + 28088 - 11904: 0xB255, + 28089 - 11904: 0xA0D6, + 28090 - 11904: 0xD5FA, + 28091 - 11904: 0xD647, + 28092 - 11904: 0xB244, + 28093 - 11904: 0xD5F7, + 28094 - 11904: 0xD5F0, + 28095 - 11904: 0xB267, + 28096 - 11904: 0xD5E0, + 28098 - 11904: 0xD5FC, + 28100 - 11904: 0xB264, + 28101 - 11904: 0xB258, + 28102 - 11904: 0xB263, + 28103 - 11904: 0xB24E, + 28104 - 11904: 0xD5EC, + 28105 - 11904: 0xD5FE, + 28106 - 11904: 0xD5F6, + 28107 - 11904: 0xB24F, + 28108 - 11904: 0xB249, + 28109 - 11904: 0xD645, + 28111 - 11904: 0xD5FD, + 28112 - 11904: 0xD640, + 28113 - 11904: 0xB251, + 28114 - 11904: 0xB259, + 28115 - 11904: 0xD642, + 28116 - 11904: 0xD5EA, + 28117 - 11904: 0xD5FB, + 28118 - 11904: 0xD5EF, + 28119 - 11904: 0xD644, + 28120 - 11904: 0xB25E, + 28121 - 11904: 0xB246, + 28122 - 11904: 0xB25C, + 28123 - 11904: 0xD5F4, + 28124 - 11904: 0xD5F2, + 28125 - 11904: 0xD5F3, + 28126 - 11904: 0xB253, + 28127 - 11904: 0xD5EE, + 28128 - 11904: 0xD5ED, + 28129 - 11904: 0xB248, + 28130 - 11904: 0xD5E7, + 28131 - 11904: 0xD646, + 28132 - 11904: 0xB24A, + 28133 - 11904: 0xD5F1, + 28134 - 11904: 0xB268, + 28136 - 11904: 0xB262, + 28137 - 11904: 0xD5E6, + 28138 - 11904: 0xB25F, + 28139 - 11904: 0xB25D, + 28140 - 11904: 0xB266, + 28141 - 11904: 0xD5F8, + 28142 - 11904: 0xB261, + 28143 - 11904: 0xD252, + 28144 - 11904: 0xD5F9, + 28145 - 11904: 0xB260, + 28146 - 11904: 0xD641, + 28147 - 11904: 0xB245, + 28148 - 11904: 0xD5F5, + 28149 - 11904: 0xB257, + 28150 - 11904: 0xD5E9, + 28151 - 11904: 0xB256, + 28153 - 11904: 0xB254, + 28154 - 11904: 0xB24C, + 28155 - 11904: 0xB24B, + 28156 - 11904: 0xD9E7, + 28157 - 11904: 0xD643, + 28158 - 11904: 0x8C41, + 28160 - 11904: 0xD5EB, + 28162 - 11904: 0x97D5, + 28163 - 11904: 0xD9FC, + 28164 - 11904: 0x944A, + 28165 - 11904: 0xB24D, + 28170 - 11904: 0x944D, + 28175 - 11904: 0x97CB, + 28181 - 11904: 0x8DDE, + 28184 - 11904: 0x8DDF, + 28185 - 11904: 0xB541, + 28186 - 11904: 0xB25A, + 28187 - 11904: 0xB4EE, + 28188 - 11904: 0xD9F6, + 28189 - 11904: 0xFDB8, + 28191 - 11904: 0xD9EA, + 28192 - 11904: 0xB4EB, + 28193 - 11904: 0xB4E7, + 28194 - 11904: 0xDA49, + 28195 - 11904: 0xB4ED, + 28196 - 11904: 0xB4F1, + 28197 - 11904: 0xB4EC, + 28198 - 11904: 0xB4F5, + 28199 - 11904: 0xDA4D, + 28200 - 11904: 0xDA44, + 28201 - 11904: 0x8DE0, + 28202 - 11904: 0xFEF9, + 28203 - 11904: 0xD9F1, + 28204 - 11904: 0xB4FA, + 28205 - 11904: 0xB4F4, + 28206 - 11904: 0xD9FD, + 28207 - 11904: 0xFDBB, + 28208 - 11904: 0xDA4A, + 28209 - 11904: 0xDA43, + 28210 - 11904: 0xB4E8, + 28211 - 11904: 0xD9F7, + 28212 - 11904: 0xB4F7, + 28213 - 11904: 0xDA55, + 28214 - 11904: 0xDA56, + 28216 - 11904: 0xB4E5, + 28217 - 11904: 0xDA48, + 28218 - 11904: 0xB4F9, + 28219 - 11904: 0xD9FB, + 28220 - 11904: 0xD9ED, + 28221 - 11904: 0xD9EE, + 28222 - 11904: 0xB4FD, + 28223 - 11904: 0xD9F2, + 28224 - 11904: 0xD9F9, + 28225 - 11904: 0xD9F3, + 28227 - 11904: 0xB4FB, + 28228 - 11904: 0xB544, + 28229 - 11904: 0xD9EF, + 28230 - 11904: 0xD9E8, + 28231 - 11904: 0xD9E9, + 28233 - 11904: 0xD9EB, + 28234 - 11904: 0xB4EA, + 28235 - 11904: 0xD9F8, + 28237 - 11904: 0xB4F8, + 28238 - 11904: 0xB542, + 28239 - 11904: 0xFDC0, + 28240 - 11904: 0xFCF9, + 28241 - 11904: 0xD9FA, + 28242 - 11904: 0xDA53, + 28243 - 11904: 0xDA4B, + 28244 - 11904: 0xB4E6, + 28245 - 11904: 0xDA51, + 28246 - 11904: 0xB4F2, + 28247 - 11904: 0x8CDD, + 28248 - 11904: 0xB4F0, + 28249 - 11904: 0xFB7E, + 28250 - 11904: 0xDA57, + 28251 - 11904: 0xB4EF, + 28252 - 11904: 0xDA41, + 28253 - 11904: 0xD9F4, + 28254 - 11904: 0xD9FE, + 28255 - 11904: 0xB547, + 28256 - 11904: 0xDA45, + 28257 - 11904: 0xDA42, + 28258 - 11904: 0xD9F0, + 28259 - 11904: 0xB543, + 28260 - 11904: 0xDA4F, + 28261 - 11904: 0xDA4C, + 28262 - 11904: 0xDA54, + 28263 - 11904: 0xB4E9, + 28264 - 11904: 0xDA40, + 28265 - 11904: 0xB546, + 28267 - 11904: 0xDA47, + 28270 - 11904: 0xB4F3, + 28271 - 11904: 0xB4F6, + 28273 - 11904: 0xDA46, + 28274 - 11904: 0xB545, + 28275 - 11904: 0xD9F5, + 28276 - 11904: 0xD5E4, + 28278 - 11904: 0x92B3, + 28279 - 11904: 0xDA50, + 28280 - 11904: 0xDA4E, + 28281 - 11904: 0xDA52, + 28284 - 11904: 0xFDAF, + 28294 - 11904: 0x8DE1, + 28296 - 11904: 0xD9EC, + 28297 - 11904: 0xB540, + 28299 - 11904: 0x95D3, + 28301 - 11904: 0xDE61, + 28302 - 11904: 0xDE60, + 28303 - 11904: 0xDE46, + 28304 - 11904: 0xB7BD, + 28306 - 11904: 0xDE5F, + 28307 - 11904: 0xDE49, + 28308 - 11904: 0xDE4A, + 28310 - 11904: 0xB7C7, + 28311 - 11904: 0xDE68, + 28312 - 11904: 0xB7C2, + 28313 - 11904: 0xDE5E, + 28314 - 11904: 0x89C1, + 28315 - 11904: 0xDE43, + 28316 - 11904: 0xB7C8, + 28317 - 11904: 0xB7BE, + 28318 - 11904: 0xDE52, + 28319 - 11904: 0xDE48, + 28320 - 11904: 0xDE4B, + 28321 - 11904: 0xDE63, + 28322 - 11904: 0xB7B8, + 28323 - 11904: 0xDE6A, + 28324 - 11904: 0xDE62, + 28325 - 11904: 0xB7C1, + 28326 - 11904: 0xDE57, + 28327 - 11904: 0xB7CC, + 28330 - 11904: 0xB7CB, + 28331 - 11904: 0xB7C5, + 28334 - 11904: 0xDE69, + 28335 - 11904: 0xB7B9, + 28336 - 11904: 0xDE55, + 28337 - 11904: 0xDE4C, + 28338 - 11904: 0xDE59, + 28339 - 11904: 0xDE65, + 28340 - 11904: 0xB7CD, + 28341 - 11904: 0xFD68, + 28342 - 11904: 0xB7BB, + 28343 - 11904: 0xDE54, + 28344 - 11904: 0x9CB7, + 28345 - 11904: 0xDE4D, + 28346 - 11904: 0xB7C4, + 28347 - 11904: 0x8DE3, + 28348 - 11904: 0xB7C3, + 28349 - 11904: 0xDE50, + 28350 - 11904: 0xDE5A, + 28351 - 11904: 0xDE64, + 28352 - 11904: 0xDE47, + 28353 - 11904: 0xDE51, + 28354 - 11904: 0xB7BC, + 28355 - 11904: 0xDE5B, + 28356 - 11904: 0xB7C9, + 28357 - 11904: 0xB7C0, + 28358 - 11904: 0xDE4E, + 28359 - 11904: 0xB7BF, + 28360 - 11904: 0xDE45, + 28361 - 11904: 0xDE53, + 28362 - 11904: 0xDE67, + 28363 - 11904: 0xB4FE, + 28364 - 11904: 0xBAB0, + 28365 - 11904: 0xDE56, + 28366 - 11904: 0xE26C, + 28367 - 11904: 0xDE58, + 28368 - 11904: 0xDE66, + 28369 - 11904: 0xB7C6, + 28370 - 11904: 0xDE4F, + 28371 - 11904: 0xB7BA, + 28372 - 11904: 0xB7CA, + 28373 - 11904: 0xBCF0, + 28374 - 11904: 0xDE44, + 28376 - 11904: 0xDE5D, + 28377 - 11904: 0xFAC0, + 28378 - 11904: 0x8DE5, + 28379 - 11904: 0xFA64, + 28380 - 11904: 0xDE5C, + 28381 - 11904: 0x8947, + 28386 - 11904: 0x8DE4, + 28392 - 11904: 0x8DE7, + 28393 - 11904: 0x8DE8, + 28395 - 11904: 0xE2AA, + 28396 - 11904: 0xBAAD, + 28397 - 11904: 0xE27D, + 28398 - 11904: 0xE2A4, + 28399 - 11904: 0xBAA2, + 28401 - 11904: 0xE26E, + 28402 - 11904: 0xBAAF, + 28404 - 11904: 0xBA77, + 28405 - 11904: 0xE26D, + 28406 - 11904: 0xE2B0, + 28407 - 11904: 0xBAB1, + 28408 - 11904: 0xE271, + 28409 - 11904: 0xE2A3, + 28410 - 11904: 0xFDC7, + 28411 - 11904: 0xE273, + 28412 - 11904: 0xE2B3, + 28413 - 11904: 0xE2AF, + 28414 - 11904: 0xBA75, + 28415 - 11904: 0xBAA1, + 28416 - 11904: 0xE653, + 28417 - 11904: 0xBAAE, + 28418 - 11904: 0xBA7D, + 28419 - 11904: 0xE26F, + 28420 - 11904: 0xFDB0, + 28421 - 11904: 0xE2AE, + 28422 - 11904: 0xBAA3, + 28423 - 11904: 0xE2AB, + 28424 - 11904: 0xE2B8, + 28425 - 11904: 0xE275, + 28426 - 11904: 0xE27E, + 28427 - 11904: 0x9445, + 28428 - 11904: 0x97D6, + 28429 - 11904: 0xE2B6, + 28430 - 11904: 0xE2AC, + 28431 - 11904: 0xBA7C, + 28434 - 11904: 0xE27C, + 28435 - 11904: 0xBA76, + 28436 - 11904: 0xBA74, + 28437 - 11904: 0xBAA8, + 28438 - 11904: 0xFCC6, + 28439 - 11904: 0x9844, + 28440 - 11904: 0xE27A, + 28441 - 11904: 0xE277, + 28442 - 11904: 0xE278, + 28444 - 11904: 0xE2B2, + 28446 - 11904: 0xE2B7, + 28447 - 11904: 0xE2B5, + 28448 - 11904: 0xBA7A, + 28449 - 11904: 0xE2B9, + 28450 - 11904: 0xBA7E, + 28451 - 11904: 0xBAA7, + 28452 - 11904: 0x8DE9, + 28453 - 11904: 0xE270, + 28454 - 11904: 0xE5FA, + 28455 - 11904: 0xE279, + 28457 - 11904: 0xBA78, + 28458 - 11904: 0xBAAC, + 28459 - 11904: 0xBAA9, + 28460 - 11904: 0xBA7B, + 28461 - 11904: 0xE2A5, + 28462 - 11904: 0xE274, + 28463 - 11904: 0xBAAA, + 28464 - 11904: 0xE2A7, + 28465 - 11904: 0xBAA4, + 28466 - 11904: 0xBAA6, + 28467 - 11904: 0xBA73, + 28468 - 11904: 0x8DEA, + 28469 - 11904: 0xE2A9, + 28470 - 11904: 0xE2A1, + 28471 - 11904: 0xE272, + 28472 - 11904: 0xBAA5, + 28473 - 11904: 0xE2B1, + 28474 - 11904: 0xE2B4, + 28475 - 11904: 0xE27B, + 28476 - 11904: 0xE2A8, + 28477 - 11904: 0xFE50, + 28478 - 11904: 0xBA79, + 28479 - 11904: 0xBCDF, + 28480 - 11904: 0xE2A6, + 28481 - 11904: 0xE5F9, + 28483 - 11904: 0xE2AD, + 28484 - 11904: 0xFDCC, + 28494 - 11904: 0xE276, + 28495 - 11904: 0xE644, + 28496 - 11904: 0xE64E, + 28497 - 11904: 0xBCE2, + 28498 - 11904: 0xE64D, + 28499 - 11904: 0xE659, + 28500 - 11904: 0xBCE4, + 28501 - 11904: 0xE64B, + 28502 - 11904: 0x9DA7, + 28503 - 11904: 0xE64F, + 28504 - 11904: 0xBCEF, + 28506 - 11904: 0xE646, + 28507 - 11904: 0xBCE7, + 28508 - 11904: 0xFDCD, + 28509 - 11904: 0xE652, + 28510 - 11904: 0xE9F0, + 28511 - 11904: 0xBCF3, + 28512 - 11904: 0xBCF2, + 28513 - 11904: 0xE654, + 28514 - 11904: 0xE643, + 28515 - 11904: 0xE65E, + 28516 - 11904: 0xBCED, + 28518 - 11904: 0xBCE3, + 28519 - 11904: 0xE657, + 28521 - 11904: 0xE65B, + 28522 - 11904: 0xE660, + 28523 - 11904: 0xE655, + 28524 - 11904: 0xE649, + 28525 - 11904: 0xBCE6, + 28526 - 11904: 0xBCE9, + 28527 - 11904: 0xBCF1, + 28528 - 11904: 0xBCEC, + 28530 - 11904: 0xE64C, + 28531 - 11904: 0xE2A2, + 28532 - 11904: 0xFDCF, + 28534 - 11904: 0xE648, + 28535 - 11904: 0xE65F, + 28536 - 11904: 0xBCE8, + 28537 - 11904: 0x95D2, + 28538 - 11904: 0xBCEB, + 28539 - 11904: 0xE661, + 28540 - 11904: 0xBCE0, + 28541 - 11904: 0xE656, + 28542 - 11904: 0xE5FB, + 28543 - 11904: 0xE65C, + 28544 - 11904: 0xC0DF, + 28545 - 11904: 0x8DED, + 28546 - 11904: 0xE64A, + 28548 - 11904: 0xBCE1, + 28549 - 11904: 0xE645, + 28550 - 11904: 0xBCE5, + 28551 - 11904: 0xE5FC, + 28552 - 11904: 0xBAAB, + 28553 - 11904: 0xE641, + 28554 - 11904: 0xFCBA, + 28555 - 11904: 0xE65A, + 28556 - 11904: 0xE642, + 28557 - 11904: 0xE640, + 28558 - 11904: 0xBCEA, + 28560 - 11904: 0xE658, + 28562 - 11904: 0xE5FE, + 28563 - 11904: 0xE651, + 28564 - 11904: 0xE650, + 28565 - 11904: 0xE65D, + 28566 - 11904: 0xE647, + 28567 - 11904: 0xBCEE, + 28573 - 11904: 0xFDC5, + 28574 - 11904: 0xE9F3, + 28575 - 11904: 0xFDD2, + 28576 - 11904: 0xBF49, + 28577 - 11904: 0xBEFE, + 28578 - 11904: 0xEA40, + 28579 - 11904: 0xE9EB, + 28580 - 11904: 0xBF41, + 28581 - 11904: 0xE9F7, + 28582 - 11904: 0xBF48, + 28583 - 11904: 0xBF43, + 28584 - 11904: 0xE9F5, + 28585 - 11904: 0xED4F, + 28586 - 11904: 0xE9FB, + 28587 - 11904: 0xEA42, + 28588 - 11904: 0xE9FA, + 28589 - 11904: 0xE9E9, + 28590 - 11904: 0xE9F8, + 28591 - 11904: 0xEA44, + 28592 - 11904: 0xEA46, + 28593 - 11904: 0xBEFD, + 28594 - 11904: 0xEA45, + 28595 - 11904: 0xBF44, + 28596 - 11904: 0xBF4A, + 28597 - 11904: 0x9CDC, + 28598 - 11904: 0xBF47, + 28600 - 11904: 0xE9FE, + 28601 - 11904: 0xBF46, + 28602 - 11904: 0xE9F9, + 28603 - 11904: 0x95CF, + 28604 - 11904: 0xE9ED, + 28605 - 11904: 0xE9F2, + 28606 - 11904: 0x8DEE, + 28607 - 11904: 0xE9FD, + 28608 - 11904: 0xBF45, + 28609 - 11904: 0xBF42, + 28610 - 11904: 0xBEFC, + 28611 - 11904: 0xBF40, + 28612 - 11904: 0xE9F1, + 28614 - 11904: 0xE5FD, + 28615 - 11904: 0xE9EC, + 28616 - 11904: 0xE9EF, + 28617 - 11904: 0xEA41, + 28618 - 11904: 0xE9F4, + 28619 - 11904: 0xE9EA, + 28620 - 11904: 0xED4E, + 28621 - 11904: 0xEA43, + 28622 - 11904: 0xE9EE, + 28623 - 11904: 0xE9FC, + 28627 - 11904: 0xFDD4, + 28628 - 11904: 0xED51, + 28629 - 11904: 0xC0E3, + 28632 - 11904: 0xC0D7, + 28633 - 11904: 0x96EC, + 28634 - 11904: 0x96EB, + 28635 - 11904: 0xC0DB, + 28636 - 11904: 0xED53, + 28637 - 11904: 0xED59, + 28638 - 11904: 0xED57, + 28639 - 11904: 0xC0D9, + 28640 - 11904: 0xC0DA, + 28641 - 11904: 0xC0E1, + 28642 - 11904: 0xED5A, + 28643 - 11904: 0xED52, + 28644 - 11904: 0xC0DC, + 28646 - 11904: 0xED56, + 28647 - 11904: 0xED55, + 28648 - 11904: 0xED5B, + 28649 - 11904: 0xC0E2, + 28651 - 11904: 0xC0DD, + 28652 - 11904: 0xC0E0, + 28653 - 11904: 0xED54, + 28654 - 11904: 0xC0E4, + 28655 - 11904: 0xC0DE, + 28656 - 11904: 0xC0E5, + 28657 - 11904: 0xC0D8, + 28658 - 11904: 0xED58, + 28660 - 11904: 0xED50, + 28662 - 11904: 0x90B6, + 28663 - 11904: 0xEFF7, + 28664 - 11904: 0xFDC3, + 28666 - 11904: 0xC271, + 28667 - 11904: 0xEFF4, + 28668 - 11904: 0xEFF6, + 28670 - 11904: 0xC26F, + 28671 - 11904: 0xEFF2, + 28672 - 11904: 0xEFF3, + 28673 - 11904: 0xEFEE, + 28675 - 11904: 0x98AB, + 28676 - 11904: 0xE9F6, + 28677 - 11904: 0xEFEF, + 28678 - 11904: 0xC270, + 28679 - 11904: 0xEFEB, + 28681 - 11904: 0xC26D, + 28682 - 11904: 0xEFF8, + 28683 - 11904: 0xC26E, + 28684 - 11904: 0xEFEC, + 28685 - 11904: 0xEFED, + 28686 - 11904: 0xEFF1, + 28687 - 11904: 0xC273, + 28689 - 11904: 0xC272, + 28692 - 11904: 0xEFF0, + 28693 - 11904: 0xC378, + 28694 - 11904: 0xF25F, + 28695 - 11904: 0xF265, + 28696 - 11904: 0xC379, + 28697 - 11904: 0xF25C, + 28698 - 11904: 0xC376, + 28699 - 11904: 0xC373, + 28700 - 11904: 0xF267, + 28701 - 11904: 0xC377, + 28702 - 11904: 0x96EE, + 28703 - 11904: 0xC374, + 28704 - 11904: 0xF25E, + 28705 - 11904: 0xF261, + 28706 - 11904: 0xF262, + 28707 - 11904: 0xF263, + 28708 - 11904: 0xF266, + 28710 - 11904: 0xEFF5, + 28711 - 11904: 0xF25D, + 28712 - 11904: 0xC375, + 28713 - 11904: 0xF264, + 28714 - 11904: 0xF268, + 28715 - 11904: 0xF260, + 28716 - 11904: 0x8DF4, + 28719 - 11904: 0xF45D, + 28720 - 11904: 0xC46A, + 28721 - 11904: 0xF460, + 28722 - 11904: 0xC46B, + 28723 - 11904: 0xF468, + 28724 - 11904: 0xF45F, + 28725 - 11904: 0xF45C, + 28727 - 11904: 0xF45E, + 28728 - 11904: 0xF462, + 28729 - 11904: 0xF465, + 28730 - 11904: 0xF464, + 28731 - 11904: 0xF467, + 28732 - 11904: 0xF45B, + 28734 - 11904: 0xC469, + 28735 - 11904: 0xF463, + 28736 - 11904: 0xF466, + 28737 - 11904: 0xF469, + 28738 - 11904: 0xF461, + 28739 - 11904: 0xF5D3, + 28740 - 11904: 0xF5D4, + 28741 - 11904: 0xF5D8, + 28742 - 11904: 0xF5D9, + 28744 - 11904: 0xF5D6, + 28745 - 11904: 0xF5D7, + 28746 - 11904: 0xF5D5, + 28747 - 11904: 0xFDE0, + 28748 - 11904: 0xC4E9, + 28749 - 11904: 0x8C67, + 28752 - 11904: 0x8DF6, + 28753 - 11904: 0xC578, + 28754 - 11904: 0xF6EB, + 28756 - 11904: 0x8DF7, + 28757 - 11904: 0xF6E8, + 28758 - 11904: 0xF6E9, + 28759 - 11904: 0xF6EA, + 28760 - 11904: 0xC579, + 28762 - 11904: 0xF7E5, + 28763 - 11904: 0xF7E4, + 28764 - 11904: 0x8FFA, + 28765 - 11904: 0xF8AF, + 28766 - 11904: 0xC5F4, + 28767 - 11904: 0xF8AD, + 28768 - 11904: 0xF8B0, + 28769 - 11904: 0xF8AE, + 28770 - 11904: 0xF8F5, + 28771 - 11904: 0xC657, + 28772 - 11904: 0xC665, + 28773 - 11904: 0xF9A3, + 28774 - 11904: 0xF96C, + 28775 - 11904: 0x97D0, + 28776 - 11904: 0xF9A2, + 28777 - 11904: 0xF9D0, + 28778 - 11904: 0xF9D1, + 28779 - 11904: 0xA4F5, + 28780 - 11904: 0x8BD2, + 28782 - 11904: 0x87DE, + 28783 - 11904: 0x8DF8, + 28784 - 11904: 0xA6C7, + 28785 - 11904: 0xCA41, + 28788 - 11904: 0xCB5E, + 28789 - 11904: 0x90D9, + 28790 - 11904: 0xA85F, + 28791 - 11904: 0x8C47, + 28792 - 11904: 0xA862, + 28793 - 11904: 0xFAF0, + 28794 - 11904: 0xCB5F, + 28796 - 11904: 0xA860, + 28797 - 11904: 0xA861, + 28798 - 11904: 0xFDE1, + 28799 - 11904: 0x8DF9, + 28801 - 11904: 0xFDE3, + 28802 - 11904: 0xCD58, + 28803 - 11904: 0xCD5A, + 28804 - 11904: 0xCD55, + 28805 - 11904: 0xCD52, + 28806 - 11904: 0xCD54, + 28809 - 11904: 0x8DFA, + 28810 - 11904: 0xAAA4, + 28811 - 11904: 0xFB63, + 28814 - 11904: 0xAAA2, + 28815 - 11904: 0x90A6, + 28817 - 11904: 0xCD56, + 28818 - 11904: 0xAAA3, + 28819 - 11904: 0xCD53, + 28820 - 11904: 0xCD50, + 28821 - 11904: 0xAAA1, + 28822 - 11904: 0xCD57, + 28824 - 11904: 0xCD51, + 28825 - 11904: 0xAAA5, + 28826 - 11904: 0xCD59, + 28831 - 11904: 0xCFAF, + 28832 - 11904: 0x9970, + 28833 - 11904: 0xCFB3, + 28835 - 11904: 0x91EB, + 28836 - 11904: 0xACB7, + 28837 - 11904: 0x9770, + 28838 - 11904: 0x986F, + 28839 - 11904: 0xFDE2, + 28841 - 11904: 0xCFB6, + 28843 - 11904: 0xACAF, + 28844 - 11904: 0xACB2, + 28845 - 11904: 0xACB4, + 28846 - 11904: 0xACB6, + 28847 - 11904: 0xACB3, + 28848 - 11904: 0xCFB2, + 28849 - 11904: 0xCFB1, + 28851 - 11904: 0xACB1, + 28852 - 11904: 0xCFB4, + 28853 - 11904: 0xCFB5, + 28855 - 11904: 0xCFAE, + 28856 - 11904: 0xACB5, + 28857 - 11904: 0x98F2, + 28858 - 11904: 0xACB0, + 28859 - 11904: 0x9AFC, + 28860 - 11904: 0x896C, + 28861 - 11904: 0xFDFD, + 28862 - 11904: 0xCFB0, + 28864 - 11904: 0x995E, + 28868 - 11904: 0x95BD, + 28869 - 11904: 0xD277, + 28870 - 11904: 0xD278, + 28871 - 11904: 0xD279, + 28872 - 11904: 0xAF50, + 28874 - 11904: 0xAF4C, + 28875 - 11904: 0xD26E, + 28876 - 11904: 0xFDE4, + 28877 - 11904: 0xD276, + 28878 - 11904: 0xD27B, + 28879 - 11904: 0xAF51, + 28880 - 11904: 0x91E6, + 28881 - 11904: 0xD26C, + 28882 - 11904: 0xD272, + 28883 - 11904: 0xD26B, + 28884 - 11904: 0xD275, + 28885 - 11904: 0xFDE5, + 28886 - 11904: 0xFDE6, + 28887 - 11904: 0xD271, + 28888 - 11904: 0xAF4D, + 28889 - 11904: 0xAF4F, + 28890 - 11904: 0xD27A, + 28892 - 11904: 0xD26A, + 28893 - 11904: 0xD26D, + 28894 - 11904: 0xD273, + 28895 - 11904: 0xFDE7, + 28896 - 11904: 0xD274, + 28897 - 11904: 0xD27C, + 28898 - 11904: 0xD270, + 28900 - 11904: 0xAF4E, + 28911 - 11904: 0xB26D, + 28912 - 11904: 0xD64E, + 28913 - 11904: 0x9454, + 28915 - 11904: 0xD650, + 28916 - 11904: 0xD64C, + 28917 - 11904: 0x99B8, + 28918 - 11904: 0xD658, + 28919 - 11904: 0xD64A, + 28920 - 11904: 0xD657, + 28921 - 11904: 0xB269, + 28922 - 11904: 0xD648, + 28923 - 11904: 0xDA5B, + 28924 - 11904: 0xD652, + 28925 - 11904: 0xB26C, + 28926 - 11904: 0x97E9, + 28927 - 11904: 0xD653, + 28928 - 11904: 0xD656, + 28930 - 11904: 0xD65A, + 28932 - 11904: 0xD64F, + 28933 - 11904: 0x9346, + 28934 - 11904: 0xD654, + 28937 - 11904: 0xB26A, + 28938 - 11904: 0xB26B, + 28939 - 11904: 0xD659, + 28940 - 11904: 0xD64D, + 28941 - 11904: 0xD649, + 28942 - 11904: 0xD65B, + 28944 - 11904: 0xD651, + 28947 - 11904: 0xD655, + 28951 - 11904: 0xD64B, + 28953 - 11904: 0xB548, + 28954 - 11904: 0xB549, + 28955 - 11904: 0xDA65, + 28956 - 11904: 0xB54F, + 28957 - 11904: 0x9863, + 28958 - 11904: 0xDA59, + 28959 - 11904: 0xDA62, + 28960 - 11904: 0xDA58, + 28961 - 11904: 0xB54C, + 28962 - 11904: 0xDA60, + 28963 - 11904: 0xDA5E, + 28965 - 11904: 0xDA5F, + 28966 - 11904: 0xB54A, + 28968 - 11904: 0xDA63, + 28969 - 11904: 0x95BC, + 28971 - 11904: 0xFDED, + 28972 - 11904: 0xFDF7, + 28974 - 11904: 0xDA5C, + 28975 - 11904: 0xDA5A, + 28976 - 11904: 0xB54B, + 28977 - 11904: 0xDA5D, + 28978 - 11904: 0xDA61, + 28979 - 11904: 0x9870, + 28980 - 11904: 0x96F6, + 28981 - 11904: 0x8EA9, + 28982 - 11904: 0xB54D, + 28986 - 11904: 0xDA64, + 28987 - 11904: 0x9451, + 28990 - 11904: 0x8E43, + 28992 - 11904: 0x8B5A, + 28993 - 11904: 0xDE70, + 28994 - 11904: 0xDE77, + 28995 - 11904: 0xDE79, + 28996 - 11904: 0xDEA1, + 28997 - 11904: 0xFDEE, + 28998 - 11904: 0xB7DA, + 28999 - 11904: 0xDE6B, + 29001 - 11904: 0xB7D2, + 29002 - 11904: 0xFDF0, + 29003 - 11904: 0xDE7A, + 29004 - 11904: 0xB7D7, + 29005 - 11904: 0xDEA2, + 29006 - 11904: 0xB7CE, + 29007 - 11904: 0xFDF4, + 29008 - 11904: 0xDE7D, + 29009 - 11904: 0x9BF5, + 29010 - 11904: 0xDE6D, + 29011 - 11904: 0xDE7E, + 29012 - 11904: 0xDE6C, + 29014 - 11904: 0xB7DC, + 29015 - 11904: 0x8CEE, + 29016 - 11904: 0xDE78, + 29017 - 11904: 0xB7CF, + 29018 - 11904: 0xDEA3, + 29020 - 11904: 0xB7D4, + 29021 - 11904: 0xDE71, + 29022 - 11904: 0xB7D9, + 29023 - 11904: 0xDE7C, + 29024 - 11904: 0xDE6F, + 29025 - 11904: 0xDE76, + 29026 - 11904: 0xDE72, + 29027 - 11904: 0xDE6E, + 29028 - 11904: 0xB7D1, + 29029 - 11904: 0xB7D8, + 29030 - 11904: 0xB7D6, + 29031 - 11904: 0xB7D3, + 29032 - 11904: 0xB7DB, + 29033 - 11904: 0xB7D0, + 29034 - 11904: 0xDE75, + 29035 - 11904: 0x977E, + 29036 - 11904: 0xB7D5, + 29038 - 11904: 0xFDF1, + 29040 - 11904: 0xDE7B, + 29041 - 11904: 0x9BD5, + 29042 - 11904: 0xDE73, + 29043 - 11904: 0x9AC3, + 29045 - 11904: 0x97C8, + 29046 - 11904: 0xA0DB, + 29047 - 11904: 0x91D0, + 29048 - 11904: 0xDE74, + 29050 - 11904: 0x9FE4, + 29051 - 11904: 0xE2C1, + 29052 - 11904: 0x8FDD, + 29053 - 11904: 0xBAB4, + 29054 - 11904: 0x91E9, + 29056 - 11904: 0xE2BD, + 29057 - 11904: 0xE2C3, + 29058 - 11904: 0xE2BF, + 29060 - 11904: 0xBAB6, + 29061 - 11904: 0xE2BE, + 29062 - 11904: 0xE2C2, + 29063 - 11904: 0xE2BA, + 29064 - 11904: 0x98E0, + 29065 - 11904: 0xE2BC, + 29066 - 11904: 0xBAB5, + 29068 - 11904: 0x92CA, + 29070 - 11904: 0x9857, + 29071 - 11904: 0xE2C0, + 29072 - 11904: 0xE2BB, + 29073 - 11904: 0x8C51, + 29074 - 11904: 0xBAB7, + 29076 - 11904: 0xBAB2, + 29078 - 11904: 0xFDEB, + 29079 - 11904: 0xE2C4, + 29080 - 11904: 0x9B49, + 29081 - 11904: 0xBAB3, + 29082 - 11904: 0xE667, + 29083 - 11904: 0xE664, + 29084 - 11904: 0xE670, + 29085 - 11904: 0xE66A, + 29086 - 11904: 0xE66C, + 29087 - 11904: 0xBCF4, + 29088 - 11904: 0xE666, + 29089 - 11904: 0xE66E, + 29090 - 11904: 0x9D76, + 29091 - 11904: 0x9EAF, + 29092 - 11904: 0xE66D, + 29093 - 11904: 0xE66B, + 29095 - 11904: 0xE671, + 29096 - 11904: 0xBCF7, + 29097 - 11904: 0xE668, + 29098 - 11904: 0xE66F, + 29100 - 11904: 0xBCF5, + 29101 - 11904: 0x9CCC, + 29103 - 11904: 0xE663, + 29104 - 11904: 0xE665, + 29105 - 11904: 0xBCF6, + 29106 - 11904: 0xE662, + 29107 - 11904: 0xE672, + 29108 - 11904: 0xFDEA, + 29109 - 11904: 0xE669, + 29111 - 11904: 0x8DF1, + 29112 - 11904: 0xEA4A, + 29113 - 11904: 0xBF51, + 29114 - 11904: 0xFDFB, + 29116 - 11904: 0xEA55, + 29117 - 11904: 0xEA53, + 29118 - 11904: 0xBF4B, + 29119 - 11904: 0xEA49, + 29120 - 11904: 0xEA4C, + 29121 - 11904: 0xEA4D, + 29122 - 11904: 0xEA48, + 29123 - 11904: 0xBF55, + 29124 - 11904: 0xBF56, + 29125 - 11904: 0xEA47, + 29126 - 11904: 0xEA56, + 29127 - 11904: 0xEA51, + 29128 - 11904: 0xBF4F, + 29129 - 11904: 0xBF4C, + 29130 - 11904: 0xEA50, + 29131 - 11904: 0xEA4E, + 29134 - 11904: 0xBF52, + 29135 - 11904: 0xEA52, + 29136 - 11904: 0xBF4D, + 29137 - 11904: 0x8E53, + 29138 - 11904: 0xBF4E, + 29140 - 11904: 0xEA4F, + 29141 - 11904: 0xBF50, + 29142 - 11904: 0xEA4B, + 29144 - 11904: 0xEA54, + 29145 - 11904: 0xBF53, + 29146 - 11904: 0xEA57, + 29147 - 11904: 0xEA58, + 29148 - 11904: 0xBF54, + 29149 - 11904: 0xFACF, + 29151 - 11904: 0xC0E7, + 29152 - 11904: 0xC0EE, + 29153 - 11904: 0xED5C, + 29154 - 11904: 0xED62, + 29156 - 11904: 0xED60, + 29157 - 11904: 0xC0EA, + 29158 - 11904: 0xC0E9, + 29159 - 11904: 0xC0E6, + 29160 - 11904: 0xED5E, + 29163 - 11904: 0x96F9, + 29164 - 11904: 0xC0EC, + 29165 - 11904: 0xC0EB, + 29166 - 11904: 0xC0E8, + 29168 - 11904: 0xED61, + 29169 - 11904: 0xED5D, + 29170 - 11904: 0xED5F, + 29172 - 11904: 0xC0ED, + 29173 - 11904: 0x98BF, + 29174 - 11904: 0x9E49, + 29176 - 11904: 0xC277, + 29177 - 11904: 0xEFFB, + 29179 - 11904: 0xC274, + 29180 - 11904: 0xC275, + 29181 - 11904: 0xEFFD, + 29182 - 11904: 0xC276, + 29183 - 11904: 0xEFFA, + 29184 - 11904: 0x8CA7, + 29185 - 11904: 0xEFF9, + 29186 - 11904: 0xF26C, + 29187 - 11904: 0xEFFC, + 29189 - 11904: 0xF26D, + 29190 - 11904: 0xC37A, + 29191 - 11904: 0xF26B, + 29193 - 11904: 0x9BCA, + 29194 - 11904: 0xF26A, + 29196 - 11904: 0xF269, + 29197 - 11904: 0xC37B, + 29198 - 11904: 0xFDFE, + 29199 - 11904: 0x92DC, + 29200 - 11904: 0xC46C, + 29203 - 11904: 0xF46A, + 29204 - 11904: 0xF46B, + 29205 - 11904: 0xFE41, + 29206 - 11904: 0x91CC, + 29207 - 11904: 0x91E2, + 29209 - 11904: 0xF5DC, + 29210 - 11904: 0xF5DB, + 29211 - 11904: 0xC4EA, + 29213 - 11904: 0xF5DA, + 29214 - 11904: 0xF6EC, + 29215 - 11904: 0xF6ED, + 29218 - 11904: 0xF7E6, + 29219 - 11904: 0xF8B1, + 29220 - 11904: 0xFE44, + 29221 - 11904: 0x875F, + 29222 - 11904: 0xF8F6, + 29223 - 11904: 0xF9BC, + 29224 - 11904: 0xC679, + 29225 - 11904: 0xF9C6, + 29226 - 11904: 0xA4F6, + 29227 - 11904: 0x8BD3, + 29228 - 11904: 0xAAA6, + 29229 - 11904: 0xAAA7, + 29230 - 11904: 0xFE47, + 29232 - 11904: 0xACB8, + 29237 - 11904: 0xC0EF, + 29238 - 11904: 0xA4F7, + 29240 - 11904: 0xAAA8, + 29241 - 11904: 0xAF52, + 29242 - 11904: 0xB7DD, + 29243 - 11904: 0xA4F8, + 29245 - 11904: 0xB26E, + 29246 - 11904: 0xBAB8, + 29247 - 11904: 0xC962, + 29248 - 11904: 0xFE48, + 29249 - 11904: 0xCFB7, + 29250 - 11904: 0xD27D, + 29252 - 11904: 0xE2C5, + 29254 - 11904: 0xC0F0, + 29255 - 11904: 0xA4F9, + 29256 - 11904: 0xAAA9, + 29257 - 11904: 0xCFB8, + 29258 - 11904: 0xCFB9, + 29259 - 11904: 0xDA66, + 29260 - 11904: 0xB550, + 29263 - 11904: 0xDEA4, + 29264 - 11904: 0xA0E4, + 29266 - 11904: 0xB7DE, + 29267 - 11904: 0xE2C6, + 29269 - 11904: 0xFE4B, + 29270 - 11904: 0xBCF8, + 29271 - 11904: 0xFE4C, + 29272 - 11904: 0xC37C, + 29273 - 11904: 0xA4FA, + 29274 - 11904: 0xDA67, + 29275 - 11904: 0xA4FB, + 29276 - 11904: 0x8DBF, + 29277 - 11904: 0xA6C9, + 29278 - 11904: 0xCA42, + 29279 - 11904: 0xA6C8, + 29280 - 11904: 0xA865, + 29281 - 11904: 0xA864, + 29282 - 11904: 0xA863, + 29283 - 11904: 0xCB60, + 29286 - 11904: 0x9E78, + 29287 - 11904: 0xAAAA, + 29289 - 11904: 0xAAAB, + 29290 - 11904: 0xCD5B, + 29292 - 11904: 0xCFBA, + 29294 - 11904: 0xCFBD, + 29295 - 11904: 0xACBA, + 29296 - 11904: 0xCFBB, + 29298 - 11904: 0xACB9, + 29299 - 11904: 0xCFBC, + 29300 - 11904: 0xACBB, + 29302 - 11904: 0xD2A2, + 29303 - 11904: 0xD2A1, + 29304 - 11904: 0xD27E, + 29305 - 11904: 0xAF53, + 29307 - 11904: 0xD65D, + 29308 - 11904: 0xD65E, + 29309 - 11904: 0xB26F, + 29310 - 11904: 0xD65C, + 29311 - 11904: 0xD65F, + 29312 - 11904: 0xB552, + 29313 - 11904: 0xB270, + 29314 - 11904: 0xFE51, + 29316 - 11904: 0xB551, + 29317 - 11904: 0xDA6B, + 29318 - 11904: 0xDA6A, + 29319 - 11904: 0x9456, + 29320 - 11904: 0xDA68, + 29321 - 11904: 0xDA69, + 29323 - 11904: 0xDA6C, + 29324 - 11904: 0xDEA6, + 29325 - 11904: 0xDEA5, + 29326 - 11904: 0xDEA9, + 29327 - 11904: 0x9D61, + 29328 - 11904: 0xDEA8, + 29329 - 11904: 0xDEA7, + 29330 - 11904: 0xBAB9, + 29331 - 11904: 0xE2C9, + 29332 - 11904: 0x9457, + 29333 - 11904: 0xE2C8, + 29334 - 11904: 0xBABA, + 29335 - 11904: 0xE2C7, + 29336 - 11904: 0xE673, + 29338 - 11904: 0xE674, + 29339 - 11904: 0xBCF9, + 29341 - 11904: 0xEA59, + 29342 - 11904: 0xEA5A, + 29343 - 11904: 0x9966, + 29345 - 11904: 0xF272, + 29346 - 11904: 0xC37D, + 29347 - 11904: 0xF271, + 29348 - 11904: 0xF270, + 29349 - 11904: 0xF26E, + 29350 - 11904: 0xF26F, + 29351 - 11904: 0xC4EB, + 29352 - 11904: 0xF46C, + 29353 - 11904: 0xF6EE, + 29354 - 11904: 0xF8F7, + 29356 - 11904: 0xA4FC, + 29357 - 11904: 0x8BD5, + 29358 - 11904: 0xC9A5, + 29359 - 11904: 0xA5C7, + 29360 - 11904: 0xC9A6, + 29362 - 11904: 0xA069, + 29364 - 11904: 0xCA43, + 29365 - 11904: 0xCA44, + 29370 - 11904: 0xCB66, + 29373 - 11904: 0xCB62, + 29375 - 11904: 0xCB61, + 29376 - 11904: 0xAAAC, + 29377 - 11904: 0xCB65, + 29378 - 11904: 0xA867, + 29379 - 11904: 0xCB63, + 29380 - 11904: 0xA866, + 29381 - 11904: 0xCB67, + 29382 - 11904: 0xCB64, + 29385 - 11904: 0xCD5F, + 29386 - 11904: 0xCFBE, + 29387 - 11904: 0xCD5D, + 29388 - 11904: 0xCD64, + 29389 - 11904: 0x98B4, + 29390 - 11904: 0xAAAD, + 29392 - 11904: 0xAAB0, + 29393 - 11904: 0xCD65, + 29394 - 11904: 0xCD61, + 29396 - 11904: 0xCD62, + 29398 - 11904: 0xCD5C, + 29399 - 11904: 0xAAAF, + 29400 - 11904: 0xCD5E, + 29401 - 11904: 0xAAAE, + 29402 - 11904: 0xCD63, + 29404 - 11904: 0xCD60, + 29407 - 11904: 0xCFC2, + 29408 - 11904: 0xACBD, + 29409 - 11904: 0xACBE, + 29410 - 11904: 0xA049, + 29411 - 11904: 0xCFC5, + 29412 - 11904: 0xCFBF, + 29414 - 11904: 0xCFC4, + 29416 - 11904: 0xCFC0, + 29417 - 11904: 0xACBC, + 29418 - 11904: 0xCFC3, + 29419 - 11904: 0xCFC1, + 29427 - 11904: 0xD2A8, + 29428 - 11904: 0xD2A5, + 29430 - 11904: 0xD2A7, + 29431 - 11904: 0xAF58, + 29432 - 11904: 0xAF57, + 29433 - 11904: 0xAF55, + 29434 - 11904: 0xD2A4, + 29435 - 11904: 0xD2A9, + 29436 - 11904: 0xAF54, + 29437 - 11904: 0xAF56, + 29438 - 11904: 0xD2A6, + 29439 - 11904: 0xD667, + 29440 - 11904: 0xD2A3, + 29441 - 11904: 0xD2AA, + 29442 - 11904: 0xA04C, + 29444 - 11904: 0x9E65, + 29447 - 11904: 0xD662, + 29448 - 11904: 0xD666, + 29450 - 11904: 0xD665, + 29451 - 11904: 0xDA6E, + 29452 - 11904: 0xDA79, + 29455 - 11904: 0xD668, + 29456 - 11904: 0x98B5, + 29457 - 11904: 0xD663, + 29458 - 11904: 0xDA6D, + 29459 - 11904: 0xB274, + 29462 - 11904: 0xB273, + 29463 - 11904: 0xD661, + 29464 - 11904: 0xD664, + 29465 - 11904: 0xB275, + 29467 - 11904: 0xB272, + 29468 - 11904: 0xB271, + 29469 - 11904: 0xD660, + 29470 - 11904: 0xD669, + 29474 - 11904: 0xDA70, + 29475 - 11904: 0xDA77, + 29477 - 11904: 0xB554, + 29478 - 11904: 0xDA76, + 29479 - 11904: 0xDA73, + 29480 - 11904: 0xFE58, + 29481 - 11904: 0xB556, + 29482 - 11904: 0xFE52, + 29483 - 11904: 0xFE53, + 29484 - 11904: 0xA065, + 29485 - 11904: 0xDA75, + 29486 - 11904: 0xFE59, + 29488 - 11904: 0xDA6F, + 29489 - 11904: 0xDA71, + 29490 - 11904: 0xDA74, + 29491 - 11904: 0xDA72, + 29492 - 11904: 0xB555, + 29493 - 11904: 0xDA78, + 29494 - 11904: 0xB553, + 29495 - 11904: 0xB7DF, + 29496 - 11904: 0x98B7, + 29497 - 11904: 0x98B8, + 29498 - 11904: 0xDEAD, + 29499 - 11904: 0xDEAC, + 29500 - 11904: 0xDEAA, + 29502 - 11904: 0xB7E2, + 29503 - 11904: 0xB7E1, + 29504 - 11904: 0xDEAE, + 29505 - 11904: 0x98BA, + 29506 - 11904: 0xDEAB, + 29507 - 11904: 0xE2CA, + 29508 - 11904: 0xBABB, + 29509 - 11904: 0xB7E0, + 29512 - 11904: 0x98BB, + 29513 - 11904: 0xDEB0, + 29514 - 11904: 0xDEAF, + 29516 - 11904: 0xE2CD, + 29517 - 11904: 0xE2CB, + 29518 - 11904: 0xBCFA, + 29519 - 11904: 0x9FBC, + 29520 - 11904: 0xBABC, + 29521 - 11904: 0xE2CC, + 29522 - 11904: 0xE676, + 29527 - 11904: 0xBCFB, + 29528 - 11904: 0xE675, + 29529 - 11904: 0xE67E, + 29530 - 11904: 0xE67D, + 29531 - 11904: 0xE67B, + 29533 - 11904: 0xE67A, + 29534 - 11904: 0xE677, + 29535 - 11904: 0xE678, + 29536 - 11904: 0xE679, + 29537 - 11904: 0xE67C, + 29538 - 11904: 0xE6A1, + 29541 - 11904: 0xEA5F, + 29542 - 11904: 0xEA5C, + 29543 - 11904: 0xEA5D, + 29544 - 11904: 0xBF57, + 29545 - 11904: 0xEA5B, + 29546 - 11904: 0xEA61, + 29547 - 11904: 0xEA60, + 29548 - 11904: 0xEA5E, + 29550 - 11904: 0xED64, + 29551 - 11904: 0xED65, + 29552 - 11904: 0xC0F1, + 29553 - 11904: 0xA04A, + 29554 - 11904: 0xC0F2, + 29555 - 11904: 0xED63, + 29556 - 11904: 0x9EC7, + 29557 - 11904: 0xC279, + 29558 - 11904: 0xEFFE, + 29559 - 11904: 0xC278, + 29560 - 11904: 0xC37E, + 29562 - 11904: 0xC3A1, + 29563 - 11904: 0xC46D, + 29564 - 11904: 0xF46E, + 29565 - 11904: 0xF46D, + 29566 - 11904: 0xF5DD, + 29567 - 11904: 0xF6EF, + 29568 - 11904: 0xC57A, + 29569 - 11904: 0xF7E8, + 29570 - 11904: 0xF7E7, + 29571 - 11904: 0xF7E9, + 29572 - 11904: 0xA5C8, + 29573 - 11904: 0xCFC6, + 29574 - 11904: 0xAF59, + 29575 - 11904: 0xB276, + 29576 - 11904: 0xD66A, + 29577 - 11904: 0xA5C9, + 29578 - 11904: 0xC9A7, + 29579 - 11904: 0xA4FD, + 29580 - 11904: 0x8CA9, + 29582 - 11904: 0xCA45, + 29583 - 11904: 0x98AE, + 29586 - 11904: 0xCB6C, + 29587 - 11904: 0xCB6A, + 29588 - 11904: 0xCB6B, + 29589 - 11904: 0xCB68, + 29590 - 11904: 0xA868, + 29591 - 11904: 0xCB69, + 29592 - 11904: 0x92D6, + 29596 - 11904: 0xFAE1, + 29597 - 11904: 0xCD6D, + 29598 - 11904: 0x91D4, + 29599 - 11904: 0xAAB3, + 29600 - 11904: 0xCD6B, + 29601 - 11904: 0xCD67, + 29602 - 11904: 0xCD6A, + 29604 - 11904: 0xCD66, + 29605 - 11904: 0xAAB5, + 29606 - 11904: 0xCD69, + 29607 - 11904: 0xFADE, + 29608 - 11904: 0xAAB2, + 29609 - 11904: 0xAAB1, + 29610 - 11904: 0xFE5B, + 29611 - 11904: 0xAAB4, + 29612 - 11904: 0xCD6C, + 29613 - 11904: 0xCD68, + 29618 - 11904: 0xACC2, + 29619 - 11904: 0xACC5, + 29620 - 11904: 0xCFCE, + 29621 - 11904: 0xCFCD, + 29622 - 11904: 0xCFCC, + 29623 - 11904: 0xACBF, + 29624 - 11904: 0xCFD5, + 29625 - 11904: 0xCFCB, + 29626 - 11904: 0x8C53, + 29627 - 11904: 0xACC1, + 29628 - 11904: 0xD2AF, + 29630 - 11904: 0xCFD2, + 29631 - 11904: 0xCFD0, + 29632 - 11904: 0xACC4, + 29634 - 11904: 0xCFC8, + 29635 - 11904: 0xCFD3, + 29636 - 11904: 0x87BF, + 29637 - 11904: 0xCFCA, + 29638 - 11904: 0xCFD4, + 29639 - 11904: 0xCFD1, + 29640 - 11904: 0xCFC9, + 29641 - 11904: 0xFE5E, + 29642 - 11904: 0xACC0, + 29643 - 11904: 0xCFD6, + 29644 - 11904: 0xCFC7, + 29645 - 11904: 0xACC3, + 29646 - 11904: 0xFBD7, + 29647 - 11904: 0xFE5A, + 29648 - 11904: 0x94C5, + 29650 - 11904: 0xD2B4, + 29651 - 11904: 0xD2AB, + 29652 - 11904: 0xD2B6, + 29653 - 11904: 0xFACA, + 29654 - 11904: 0xD2AE, + 29655 - 11904: 0xD2B9, + 29656 - 11904: 0xD2BA, + 29657 - 11904: 0xD2AC, + 29658 - 11904: 0xD2B8, + 29659 - 11904: 0xD2B5, + 29660 - 11904: 0xD2B3, + 29661 - 11904: 0xD2B7, + 29662 - 11904: 0xAF5F, + 29664 - 11904: 0xAF5D, + 29665 - 11904: 0x98C1, + 29666 - 11904: 0x975C, + 29667 - 11904: 0xD2B1, + 29668 - 11904: 0xFE74, + 29669 - 11904: 0xD2AD, + 29670 - 11904: 0x9773, + 29671 - 11904: 0xD2B0, + 29672 - 11904: 0xD2BB, + 29673 - 11904: 0xD2B2, + 29674 - 11904: 0xAF5E, + 29675 - 11904: 0xCFCF, + 29677 - 11904: 0xAF5A, + 29678 - 11904: 0xAF5C, + 29679 - 11904: 0xFA46, + 29683 - 11904: 0x9764, + 29684 - 11904: 0xD678, + 29685 - 11904: 0xD66D, + 29686 - 11904: 0xD66B, + 29687 - 11904: 0xFE68, + 29688 - 11904: 0xD66C, + 29689 - 11904: 0x964E, + 29690 - 11904: 0xD673, + 29691 - 11904: 0x9765, + 29692 - 11904: 0xD674, + 29693 - 11904: 0xD670, + 29694 - 11904: 0xB27B, + 29695 - 11904: 0xD675, + 29696 - 11904: 0xD672, + 29697 - 11904: 0xD66F, + 29698 - 11904: 0x8C5A, + 29699 - 11904: 0xB279, + 29700 - 11904: 0xD66E, + 29701 - 11904: 0xB277, + 29702 - 11904: 0xB27A, + 29703 - 11904: 0xD671, + 29704 - 11904: 0xD679, + 29705 - 11904: 0xAF5B, + 29706 - 11904: 0xB278, + 29707 - 11904: 0xD677, + 29708 - 11904: 0xD676, + 29709 - 11904: 0xB27C, + 29713 - 11904: 0x89A1, + 29714 - 11904: 0x95FA, + 29716 - 11904: 0x92D4, + 29717 - 11904: 0xFE69, + 29718 - 11904: 0xDA7E, + 29719 - 11904: 0xFB45, + 29721 - 11904: 0x98C8, + 29722 - 11904: 0xDAA1, + 29723 - 11904: 0xB560, + 29724 - 11904: 0x90EF, + 29725 - 11904: 0xDAA7, + 29726 - 11904: 0x98C9, + 29727 - 11904: 0x98CA, + 29728 - 11904: 0xDAA9, + 29729 - 11904: 0xDAA2, + 29730 - 11904: 0xB55A, + 29731 - 11904: 0xDAA6, + 29732 - 11904: 0xDAA5, + 29733 - 11904: 0xB55B, + 29734 - 11904: 0xB561, + 29736 - 11904: 0xB562, + 29737 - 11904: 0xDAA8, + 29738 - 11904: 0xB558, + 29739 - 11904: 0xDA7D, + 29740 - 11904: 0xDA7B, + 29741 - 11904: 0xDAA3, + 29742 - 11904: 0xDA7A, + 29743 - 11904: 0xB55F, + 29744 - 11904: 0xDA7C, + 29745 - 11904: 0xDAA4, + 29746 - 11904: 0xDAAA, + 29747 - 11904: 0xB559, + 29748 - 11904: 0xB55E, + 29749 - 11904: 0xB55C, + 29750 - 11904: 0xB55D, + 29751 - 11904: 0x946D, + 29752 - 11904: 0x94B7, + 29753 - 11904: 0xFE6C, + 29754 - 11904: 0xB557, + 29756 - 11904: 0x946B, + 29759 - 11904: 0xB7E9, + 29760 - 11904: 0xDEB7, + 29761 - 11904: 0xB7E8, + 29762 - 11904: 0xDEBB, + 29763 - 11904: 0x92FC, + 29764 - 11904: 0xDEB1, + 29765 - 11904: 0x95EB, + 29766 - 11904: 0xDEBC, + 29767 - 11904: 0xFE73, + 29768 - 11904: 0x976E, + 29769 - 11904: 0xFE5F, + 29770 - 11904: 0xDEB2, + 29771 - 11904: 0xDEB3, + 29772 - 11904: 0x87B8, + 29773 - 11904: 0xDEBD, + 29774 - 11904: 0xDEBA, + 29775 - 11904: 0xDEB8, + 29776 - 11904: 0xDEB9, + 29777 - 11904: 0xDEB5, + 29778 - 11904: 0xDEB4, + 29779 - 11904: 0xFDBD, + 29780 - 11904: 0xDEBE, + 29781 - 11904: 0xB7E5, + 29782 - 11904: 0x92D5, + 29783 - 11904: 0xDEB6, + 29785 - 11904: 0xB7EA, + 29786 - 11904: 0xB7E4, + 29787 - 11904: 0xB7EB, + 29788 - 11904: 0xFE6F, + 29789 - 11904: 0xFEB9, + 29790 - 11904: 0xB7E7, + 29791 - 11904: 0xB7E6, + 29792 - 11904: 0xFE71, + 29793 - 11904: 0x8778, + 29794 - 11904: 0xE2CE, + 29795 - 11904: 0xBABE, + 29796 - 11904: 0xBABD, + 29797 - 11904: 0xFBBB, + 29799 - 11904: 0xE2D3, + 29800 - 11904: 0xA0D5, + 29801 - 11904: 0xBCFC, + 29802 - 11904: 0xBABF, + 29803 - 11904: 0x95FB, + 29804 - 11904: 0xFE77, + 29805 - 11904: 0xBAC1, + 29806 - 11904: 0xE2D4, + 29807 - 11904: 0xB7E3, + 29808 - 11904: 0xBAC0, + 29809 - 11904: 0xE2D0, + 29810 - 11904: 0xE2D2, + 29811 - 11904: 0xE2CF, + 29812 - 11904: 0xFE79, + 29813 - 11904: 0xE2D1, + 29814 - 11904: 0xFE75, + 29817 - 11904: 0xE6AB, + 29818 - 11904: 0x945D, + 29820 - 11904: 0xE6AA, + 29821 - 11904: 0xE6A7, + 29822 - 11904: 0xBD40, + 29823 - 11904: 0xEA62, + 29824 - 11904: 0xBD41, + 29825 - 11904: 0xE6A6, + 29826 - 11904: 0xFE7C, + 29827 - 11904: 0xBCFE, + 29829 - 11904: 0xE6A8, + 29830 - 11904: 0xE6A5, + 29831 - 11904: 0xE6A2, + 29832 - 11904: 0xE6A9, + 29833 - 11904: 0xE6A3, + 29834 - 11904: 0xE6A4, + 29835 - 11904: 0xBCFD, + 29836 - 11904: 0x9344, + 29837 - 11904: 0x8EA6, + 29840 - 11904: 0xED69, + 29842 - 11904: 0xEA66, + 29844 - 11904: 0xEA65, + 29845 - 11904: 0xEA67, + 29847 - 11904: 0xED66, + 29848 - 11904: 0xBF5A, + 29849 - 11904: 0x92D3, + 29850 - 11904: 0xEA63, + 29851 - 11904: 0x94B8, + 29852 - 11904: 0xBF58, + 29853 - 11904: 0x8779, + 29854 - 11904: 0xBF5C, + 29855 - 11904: 0xBF5B, + 29856 - 11904: 0xEA64, + 29857 - 11904: 0xEA68, + 29859 - 11904: 0xBF59, + 29860 - 11904: 0xFC71, + 29861 - 11904: 0xED6D, + 29862 - 11904: 0xC0F5, + 29863 - 11904: 0xC27A, + 29864 - 11904: 0xC0F6, + 29865 - 11904: 0xC0F3, + 29866 - 11904: 0xED6A, + 29867 - 11904: 0xED68, + 29869 - 11904: 0xED6B, + 29871 - 11904: 0xED6E, + 29872 - 11904: 0xC0F4, + 29873 - 11904: 0xED6C, + 29874 - 11904: 0xED67, + 29876 - 11904: 0x975E, + 29877 - 11904: 0xF042, + 29878 - 11904: 0xF045, + 29879 - 11904: 0xF275, + 29880 - 11904: 0xF040, + 29881 - 11904: 0x8CAD, + 29882 - 11904: 0xF46F, + 29883 - 11904: 0xF046, + 29885 - 11904: 0xC3A2, + 29886 - 11904: 0xF044, + 29887 - 11904: 0xC27B, + 29888 - 11904: 0xF041, + 29889 - 11904: 0xF043, + 29890 - 11904: 0xF047, + 29891 - 11904: 0xF276, + 29893 - 11904: 0xF274, + 29894 - 11904: 0x87C1, + 29896 - 11904: 0xFEA7, + 29898 - 11904: 0xC3A3, + 29899 - 11904: 0xF273, + 29900 - 11904: 0x946A, + 29903 - 11904: 0xC46E, + 29904 - 11904: 0x93E3, + 29907 - 11904: 0x98CF, + 29908 - 11904: 0xC4ED, + 29909 - 11904: 0xF6F1, + 29910 - 11904: 0xC4EC, + 29911 - 11904: 0xF6F3, + 29912 - 11904: 0xF6F0, + 29913 - 11904: 0xF6F2, + 29914 - 11904: 0xC5D0, + 29915 - 11904: 0xF8B2, + 29916 - 11904: 0xA5CA, + 29917 - 11904: 0xCD6E, + 29918 - 11904: 0xD2BC, + 29919 - 11904: 0xD2BD, + 29920 - 11904: 0xB27D, + 29921 - 11904: 0xDEBF, + 29922 - 11904: 0xBF5D, + 29923 - 11904: 0xC3A4, + 29924 - 11904: 0xC57B, + 29925 - 11904: 0xF8B3, + 29926 - 11904: 0xA5CB, + 29927 - 11904: 0xA0D9, + 29928 - 11904: 0xCD6F, + 29929 - 11904: 0xFEAA, + 29932 - 11904: 0xCFD7, + 29934 - 11904: 0xCFD8, + 29936 - 11904: 0xA0BF, + 29937 - 11904: 0xA04D, + 29938 - 11904: 0xA0B8, + 29940 - 11904: 0xD2BE, + 29941 - 11904: 0xD2BF, + 29942 - 11904: 0xB27E, + 29943 - 11904: 0xB2A1, + 29944 - 11904: 0xA0CE, + 29947 - 11904: 0xDAAB, + 29949 - 11904: 0xDEC2, + 29950 - 11904: 0xDEC1, + 29951 - 11904: 0xDEC0, + 29952 - 11904: 0xE2D5, + 29954 - 11904: 0xE2D6, + 29955 - 11904: 0xE2D7, + 29956 - 11904: 0xBAC2, + 29957 - 11904: 0xA0B7, + 29959 - 11904: 0xE6AD, + 29960 - 11904: 0xE6AC, + 29963 - 11904: 0xEA69, + 29964 - 11904: 0xBF5E, + 29965 - 11904: 0xBF5F, + 29966 - 11904: 0xFEA9, + 29967 - 11904: 0xED72, + 29968 - 11904: 0xED6F, + 29969 - 11904: 0xED70, + 29970 - 11904: 0xED71, + 29971 - 11904: 0xF049, + 29972 - 11904: 0xF048, + 29973 - 11904: 0xC27C, + 29974 - 11904: 0xF277, + 29975 - 11904: 0xF5DE, + 29976 - 11904: 0xA5CC, + 29977 - 11904: 0x89C3, + 29978 - 11904: 0xACC6, + 29980 - 11904: 0xB2A2, + 29981 - 11904: 0xDEC3, + 29982 - 11904: 0xFEAB, + 29983 - 11904: 0xA5CD, + 29985 - 11904: 0xD2C0, + 29986 - 11904: 0xB2A3, + 29989 - 11904: 0xB563, + 29990 - 11904: 0xB564, + 29992 - 11904: 0xA5CE, + 29993 - 11904: 0xA5CF, + 29994 - 11904: 0xCA46, + 29995 - 11904: 0xA86A, + 29996 - 11904: 0xA869, + 29997 - 11904: 0xACC7, + 29998 - 11904: 0xCFD9, + 29999 - 11904: 0xDAAC, + 30000 - 11904: 0xA5D0, + 30001 - 11904: 0xA5D1, + 30002 - 11904: 0xA5D2, + 30003 - 11904: 0xA5D3, + 30004 - 11904: 0x9DF4, + 30005 - 11904: 0x896D, + 30007 - 11904: 0xA86B, + 30008 - 11904: 0xA86C, + 30009 - 11904: 0xCB6E, + 30010 - 11904: 0xCB6D, + 30011 - 11904: 0x9C7B, + 30013 - 11904: 0xAAB6, + 30014 - 11904: 0xCD72, + 30015 - 11904: 0xCD70, + 30016 - 11904: 0xCD71, + 30018 - 11904: 0x98D2, + 30022 - 11904: 0x9FA9, + 30023 - 11904: 0xCFDA, + 30024 - 11904: 0xCFDB, + 30026 - 11904: 0xFEB2, + 30027 - 11904: 0xACCB, + 30028 - 11904: 0xACC9, + 30029 - 11904: 0xFEB1, + 30030 - 11904: 0xACCA, + 30031 - 11904: 0xACC8, + 30033 - 11904: 0x97D9, + 30035 - 11904: 0xA0C4, + 30036 - 11904: 0xAF60, + 30037 - 11904: 0x9476, + 30041 - 11904: 0xAF64, + 30042 - 11904: 0xAF63, + 30043 - 11904: 0xD2C1, + 30044 - 11904: 0xAF62, + 30045 - 11904: 0xAF61, + 30047 - 11904: 0xD2C2, + 30048 - 11904: 0x9978, + 30050 - 11904: 0xB2A6, + 30051 - 11904: 0xD67B, + 30052 - 11904: 0xD67A, + 30053 - 11904: 0xB2A4, + 30054 - 11904: 0xB2A5, + 30055 - 11904: 0xFEB3, + 30058 - 11904: 0xB566, + 30059 - 11904: 0xB565, + 30060 - 11904: 0xDAAE, + 30061 - 11904: 0x98D3, + 30062 - 11904: 0xFEB4, + 30063 - 11904: 0xDAAD, + 30064 - 11904: 0xB2A7, + 30066 - 11904: 0x98D4, + 30070 - 11904: 0xB7ED, + 30071 - 11904: 0xDEC5, + 30072 - 11904: 0xB7EE, + 30073 - 11904: 0xDEC4, + 30074 - 11904: 0x9FB9, + 30077 - 11904: 0xE2D8, + 30078 - 11904: 0xE6AE, + 30079 - 11904: 0xBD42, + 30080 - 11904: 0xEA6A, + 30083 - 11904: 0x9471, + 30084 - 11904: 0xED73, + 30086 - 11904: 0xC3A6, + 30087 - 11904: 0xC3A5, + 30090 - 11904: 0xC57C, + 30091 - 11904: 0xA5D4, + 30092 - 11904: 0xCD73, + 30093 - 11904: 0x98D5, + 30094 - 11904: 0xFEB8, + 30095 - 11904: 0xB2A8, + 30096 - 11904: 0xE2D9, + 30097 - 11904: 0xBAC3, + 30098 - 11904: 0xC6D4, + 30100 - 11904: 0xCB6F, + 30101 - 11904: 0xCB70, + 30104 - 11904: 0xCD74, + 30105 - 11904: 0xAAB8, + 30106 - 11904: 0xAAB9, + 30109 - 11904: 0xAAB7, + 30110 - 11904: 0xFEBA, + 30114 - 11904: 0xACCF, + 30115 - 11904: 0xACD0, + 30116 - 11904: 0xACCD, + 30117 - 11904: 0xACCE, + 30119 - 11904: 0xCFDC, + 30122 - 11904: 0xCFDD, + 30123 - 11904: 0xACCC, + 30128 - 11904: 0xD2C3, + 30129 - 11904: 0x9E5C, + 30130 - 11904: 0xAF68, + 30131 - 11904: 0xAF69, + 30132 - 11904: 0xFEBB, + 30133 - 11904: 0xB2AB, + 30134 - 11904: 0xD2C9, + 30136 - 11904: 0xAF6E, + 30137 - 11904: 0xAF6C, + 30138 - 11904: 0xD2CA, + 30139 - 11904: 0xD2C5, + 30140 - 11904: 0xAF6B, + 30141 - 11904: 0xAF6A, + 30142 - 11904: 0xAF65, + 30143 - 11904: 0xD2C8, + 30144 - 11904: 0xD2C7, + 30145 - 11904: 0xD2C4, + 30146 - 11904: 0xAF6D, + 30147 - 11904: 0xA044, + 30148 - 11904: 0xD2C6, + 30149 - 11904: 0xAF66, + 30151 - 11904: 0xAF67, + 30152 - 11904: 0x98D7, + 30154 - 11904: 0xB2AC, + 30155 - 11904: 0xD6A1, + 30156 - 11904: 0xD6A2, + 30157 - 11904: 0xB2AD, + 30158 - 11904: 0xD67C, + 30159 - 11904: 0xD67E, + 30160 - 11904: 0xD6A4, + 30161 - 11904: 0xD6A3, + 30162 - 11904: 0xD67D, + 30164 - 11904: 0xB2A9, + 30165 - 11904: 0xB2AA, + 30167 - 11904: 0xDAB6, + 30168 - 11904: 0xB56B, + 30169 - 11904: 0xB56A, + 30170 - 11904: 0xDAB0, + 30171 - 11904: 0xB568, + 30172 - 11904: 0x98D8, + 30173 - 11904: 0xDAB3, + 30174 - 11904: 0xB56C, + 30175 - 11904: 0xDAB4, + 30176 - 11904: 0xB56D, + 30177 - 11904: 0xDAB1, + 30178 - 11904: 0xB567, + 30179 - 11904: 0xB569, + 30180 - 11904: 0xDAB5, + 30182 - 11904: 0xDAB2, + 30183 - 11904: 0xDAAF, + 30189 - 11904: 0xDED2, + 30191 - 11904: 0xDEC7, + 30192 - 11904: 0xB7F0, + 30193 - 11904: 0xB7F3, + 30194 - 11904: 0xB7F2, + 30195 - 11904: 0xB7F7, + 30196 - 11904: 0xB7F6, + 30197 - 11904: 0xDED3, + 30198 - 11904: 0xDED1, + 30199 - 11904: 0xDECA, + 30200 - 11904: 0xDECE, + 30201 - 11904: 0xDECD, + 30202 - 11904: 0xB7F4, + 30203 - 11904: 0xDED0, + 30204 - 11904: 0xDECC, + 30205 - 11904: 0xDED4, + 30206 - 11904: 0xDECB, + 30207 - 11904: 0xB7F5, + 30208 - 11904: 0xB7EF, + 30209 - 11904: 0xB7F1, + 30210 - 11904: 0xFEBC, + 30211 - 11904: 0xDEC9, + 30215 - 11904: 0x9FFE, + 30216 - 11904: 0xE2DB, + 30217 - 11904: 0xBAC7, + 30218 - 11904: 0xE2DF, + 30219 - 11904: 0xBAC6, + 30220 - 11904: 0xE2DC, + 30221 - 11904: 0xBAC5, + 30223 - 11904: 0xDEC8, + 30224 - 11904: 0xDECF, + 30225 - 11904: 0xE2DE, + 30227 - 11904: 0xBAC8, + 30228 - 11904: 0xE2E0, + 30229 - 11904: 0xE2DD, + 30230 - 11904: 0xE2DA, + 30233 - 11904: 0xE6B1, + 30234 - 11904: 0xE6B5, + 30235 - 11904: 0xE6B7, + 30236 - 11904: 0xE6B3, + 30237 - 11904: 0xE6B2, + 30238 - 11904: 0xE6B0, + 30239 - 11904: 0xBD45, + 30240 - 11904: 0xBD43, + 30241 - 11904: 0xBD48, + 30242 - 11904: 0xBD49, + 30243 - 11904: 0xE6B4, + 30244 - 11904: 0xBD46, + 30245 - 11904: 0xE6AF, + 30246 - 11904: 0xBD47, + 30247 - 11904: 0xBAC4, + 30248 - 11904: 0xE6B6, + 30249 - 11904: 0xBD44, + 30252 - 11904: 0xFEBD, + 30253 - 11904: 0xEA6C, + 30255 - 11904: 0xEA6B, + 30256 - 11904: 0xEA73, + 30257 - 11904: 0xEA6D, + 30258 - 11904: 0xEA72, + 30259 - 11904: 0xEA6F, + 30260 - 11904: 0xBF60, + 30261 - 11904: 0xEA71, + 30264 - 11904: 0xBF61, + 30266 - 11904: 0xBF62, + 30267 - 11904: 0x9DDD, + 30268 - 11904: 0xEA70, + 30269 - 11904: 0xEA6E, + 30272 - 11904: 0x9EE1, + 30274 - 11904: 0xC0F8, + 30275 - 11904: 0xED74, + 30278 - 11904: 0xC0F7, + 30279 - 11904: 0xED77, + 30280 - 11904: 0xED75, + 30281 - 11904: 0xED76, + 30284 - 11904: 0xC0F9, + 30285 - 11904: 0x98DA, + 30286 - 11904: 0x9DDF, + 30287 - 11904: 0xFEBF, + 30288 - 11904: 0xF04D, + 30289 - 11904: 0xFEBE, + 30290 - 11904: 0xC2A1, + 30291 - 11904: 0xF04E, + 30292 - 11904: 0x9EEB, + 30294 - 11904: 0xC27D, + 30295 - 11904: 0xF04F, + 30296 - 11904: 0xC27E, + 30297 - 11904: 0xF04C, + 30298 - 11904: 0xF050, + 30300 - 11904: 0xF04A, + 30303 - 11904: 0xC3A7, + 30304 - 11904: 0xF278, + 30305 - 11904: 0xC3A8, + 30306 - 11904: 0xC46F, + 30308 - 11904: 0xF04B, + 30309 - 11904: 0xC470, + 30310 - 11904: 0x9E59, + 30311 - 11904: 0xA05C, + 30313 - 11904: 0xC4EE, + 30314 - 11904: 0xF5DF, + 30316 - 11904: 0xC57E, + 30317 - 11904: 0xF6F4, + 30318 - 11904: 0xC57D, + 30319 - 11904: 0xFEC0, + 30320 - 11904: 0xF7EA, + 30321 - 11904: 0xC5F5, + 30322 - 11904: 0xC5F6, + 30323 - 11904: 0x9477, + 30324 - 11904: 0x98DC, + 30325 - 11904: 0xF9CC, + 30326 - 11904: 0xFEC1, + 30328 - 11904: 0xACD1, + 30329 - 11904: 0xCFDE, + 30330 - 11904: 0x98DE, + 30331 - 11904: 0xB56E, + 30332 - 11904: 0xB56F, + 30333 - 11904: 0xA5D5, + 30334 - 11904: 0xA6CA, + 30335 - 11904: 0xCA47, + 30337 - 11904: 0xCB71, + 30338 - 11904: 0xA86D, + 30340 - 11904: 0xAABA, + 30342 - 11904: 0xACD2, + 30343 - 11904: 0xACD3, + 30344 - 11904: 0xACD4, + 30345 - 11904: 0xD6A6, + 30346 - 11904: 0xD2CB, + 30347 - 11904: 0xAF6F, + 30350 - 11904: 0xB2AE, + 30351 - 11904: 0xD6A5, + 30352 - 11904: 0xFEC3, + 30354 - 11904: 0xDAB8, + 30355 - 11904: 0xB571, + 30357 - 11904: 0xDAB7, + 30358 - 11904: 0xB570, + 30361 - 11904: 0xDED5, + 30362 - 11904: 0xBD4A, + 30363 - 11904: 0xE6BB, + 30364 - 11904: 0xE6B8, + 30365 - 11904: 0xE6B9, + 30366 - 11904: 0xE6BA, + 30369 - 11904: 0xFEC8, + 30372 - 11904: 0xED78, + 30373 - 11904: 0xFEC9, + 30374 - 11904: 0xF051, + 30378 - 11904: 0xF471, + 30379 - 11904: 0xF470, + 30381 - 11904: 0xF6F5, + 30382 - 11904: 0xA5D6, + 30383 - 11904: 0xCD75, + 30384 - 11904: 0xAF70, + 30388 - 11904: 0xB572, + 30389 - 11904: 0xDED6, + 30391 - 11904: 0xFECA, + 30392 - 11904: 0xE2E1, + 30394 - 11904: 0xBD4B, + 30395 - 11904: 0xEA74, + 30397 - 11904: 0xF052, + 30398 - 11904: 0xF472, + 30399 - 11904: 0xA5D7, + 30402 - 11904: 0xAABB, + 30403 - 11904: 0xACD7, + 30404 - 11904: 0xCFDF, + 30405 - 11904: 0xACD8, + 30406 - 11904: 0xACD6, + 30408 - 11904: 0xACD5, + 30409 - 11904: 0xD2CC, + 30410 - 11904: 0xAF71, + 30412 - 11904: 0xFECB, + 30413 - 11904: 0xAF72, + 30414 - 11904: 0xAF73, + 30418 - 11904: 0xB2B0, + 30419 - 11904: 0xD6A7, + 30420 - 11904: 0xB2AF, + 30422 - 11904: 0x9FC2, + 30425 - 11904: 0x8C6B, + 30426 - 11904: 0xDAB9, + 30427 - 11904: 0xB2B1, + 30428 - 11904: 0xB573, + 30429 - 11904: 0xDED7, + 30430 - 11904: 0xB7F8, + 30431 - 11904: 0xB7F9, + 30433 - 11904: 0xBAC9, + 30435 - 11904: 0xBACA, + 30436 - 11904: 0xBD4C, + 30437 - 11904: 0xBF64, + 30438 - 11904: 0xEA75, + 30439 - 11904: 0xBF63, + 30441 - 11904: 0xED79, + 30442 - 11904: 0xC0FA, + 30444 - 11904: 0xF053, + 30445 - 11904: 0xF473, + 30446 - 11904: 0xA5D8, + 30447 - 11904: 0xA86E, + 30448 - 11904: 0xCD78, + 30449 - 11904: 0xCD77, + 30450 - 11904: 0xAABC, + 30451 - 11904: 0xCD76, + 30452 - 11904: 0xAABD, + 30453 - 11904: 0xCD79, + 30455 - 11904: 0xCFE5, + 30456 - 11904: 0xACDB, + 30457 - 11904: 0xACDA, + 30458 - 11904: 0xCFE7, + 30459 - 11904: 0xCFE6, + 30460 - 11904: 0xACDF, + 30462 - 11904: 0xACDE, + 30465 - 11904: 0xACD9, + 30467 - 11904: 0xCFE1, + 30468 - 11904: 0xCFE2, + 30469 - 11904: 0xCFE3, + 30471 - 11904: 0xACE0, + 30472 - 11904: 0xCFE0, + 30473 - 11904: 0xACDC, + 30474 - 11904: 0xCFE4, + 30475 - 11904: 0xACDD, + 30476 - 11904: 0x98C4, + 30478 - 11904: 0x94B0, + 30479 - 11904: 0x94B1, + 30480 - 11904: 0xD2CF, + 30481 - 11904: 0xD2D3, + 30482 - 11904: 0xD2D1, + 30483 - 11904: 0xD2D0, + 30485 - 11904: 0xD2D4, + 30489 - 11904: 0xD2D5, + 30490 - 11904: 0xD2D6, + 30491 - 11904: 0xD2CE, + 30493 - 11904: 0xD2CD, + 30494 - 11904: 0xFED1, + 30495 - 11904: 0xAF75, + 30496 - 11904: 0xAF76, + 30498 - 11904: 0xD2D7, + 30499 - 11904: 0xD2D2, + 30500 - 11904: 0xA0C1, + 30501 - 11904: 0xD6B0, + 30502 - 11904: 0xFED2, + 30503 - 11904: 0xD2D8, + 30504 - 11904: 0xAF77, + 30505 - 11904: 0xAF74, + 30507 - 11904: 0xA0CD, + 30509 - 11904: 0xD6AA, + 30511 - 11904: 0xD6A9, + 30513 - 11904: 0xD6AB, + 30514 - 11904: 0xD6AC, + 30515 - 11904: 0xD6AE, + 30516 - 11904: 0xD6AD, + 30517 - 11904: 0xD6B2, + 30518 - 11904: 0xB2B5, + 30519 - 11904: 0xB2B2, + 30520 - 11904: 0xB2B6, + 30521 - 11904: 0xD6A8, + 30522 - 11904: 0xB2B7, + 30523 - 11904: 0xD6B1, + 30524 - 11904: 0xB2B4, + 30525 - 11904: 0xD6AF, + 30526 - 11904: 0xB2B3, + 30528 - 11904: 0xFED3, + 30531 - 11904: 0x98E5, + 30532 - 11904: 0xDABC, + 30533 - 11904: 0xDABE, + 30534 - 11904: 0xDABA, + 30535 - 11904: 0xDABB, + 30538 - 11904: 0xDABF, + 30539 - 11904: 0xDAC1, + 30540 - 11904: 0xDAC2, + 30541 - 11904: 0xDABD, + 30542 - 11904: 0xDAC0, + 30543 - 11904: 0xB574, + 30546 - 11904: 0xDEDB, + 30548 - 11904: 0xDEE0, + 30549 - 11904: 0xDED8, + 30550 - 11904: 0xDEDC, + 30552 - 11904: 0xFED6, + 30553 - 11904: 0xDEE1, + 30554 - 11904: 0xDEDD, + 30555 - 11904: 0xB7FA, + 30556 - 11904: 0xB843, + 30558 - 11904: 0xB7FD, + 30559 - 11904: 0xDED9, + 30560 - 11904: 0xDEDA, + 30561 - 11904: 0xBACE, + 30562 - 11904: 0xB846, + 30563 - 11904: 0xB7FE, + 30565 - 11904: 0xB844, + 30566 - 11904: 0xB7FC, + 30567 - 11904: 0xDEDF, + 30568 - 11904: 0xB845, + 30569 - 11904: 0xDEDE, + 30570 - 11904: 0xB841, + 30571 - 11904: 0xB7FB, + 30572 - 11904: 0xB842, + 30573 - 11904: 0xDEE2, + 30574 - 11904: 0xE2E6, + 30575 - 11904: 0xE2E8, + 30578 - 11904: 0x91E4, + 30583 - 11904: 0x8FC7, + 30584 - 11904: 0x94AE, + 30585 - 11904: 0xB840, + 30586 - 11904: 0x8A4F, + 30587 - 11904: 0x94B2, + 30588 - 11904: 0xE2E3, + 30589 - 11904: 0xBACC, + 30590 - 11904: 0xE2E9, + 30591 - 11904: 0xBACD, + 30592 - 11904: 0xE2E7, + 30593 - 11904: 0xE2E2, + 30594 - 11904: 0xE2E5, + 30595 - 11904: 0xE2EA, + 30596 - 11904: 0xBACB, + 30597 - 11904: 0xE2E4, + 30599 - 11904: 0xBD4E, + 30600 - 11904: 0xE6BF, + 30601 - 11904: 0xE6BE, + 30603 - 11904: 0xBD51, + 30604 - 11904: 0xBD4F, + 30605 - 11904: 0xE6BC, + 30606 - 11904: 0xBD4D, + 30607 - 11904: 0xE6BD, + 30609 - 11904: 0xBD50, + 30611 - 11904: 0x8FD4, + 30613 - 11904: 0xEA7D, + 30615 - 11904: 0xEAA1, + 30616 - 11904: 0x98EA, + 30617 - 11904: 0xEA7E, + 30618 - 11904: 0xEA76, + 30619 - 11904: 0xEA7A, + 30620 - 11904: 0xEA79, + 30621 - 11904: 0xEA77, + 30622 - 11904: 0xBF66, + 30623 - 11904: 0xBF67, + 30624 - 11904: 0xBF65, + 30625 - 11904: 0xEA78, + 30626 - 11904: 0xEA7B, + 30627 - 11904: 0xEA7C, + 30629 - 11904: 0xBF68, + 30631 - 11904: 0xC140, + 30632 - 11904: 0xEDA3, + 30634 - 11904: 0xC0FC, + 30635 - 11904: 0xED7B, + 30636 - 11904: 0xC0FE, + 30637 - 11904: 0xC141, + 30639 - 11904: 0xFED8, + 30640 - 11904: 0xC0FD, + 30641 - 11904: 0xEDA2, + 30642 - 11904: 0xED7C, + 30643 - 11904: 0xC0FB, + 30644 - 11904: 0xEDA1, + 30645 - 11904: 0xED7A, + 30646 - 11904: 0xED7E, + 30647 - 11904: 0xED7D, + 30649 - 11904: 0x9DE0, + 30650 - 11904: 0xF055, + 30651 - 11904: 0xC2A4, + 30652 - 11904: 0xC2A5, + 30653 - 11904: 0xC2A2, + 30654 - 11904: 0x98EE, + 30655 - 11904: 0xC2A3, + 30658 - 11904: 0xF054, + 30659 - 11904: 0x95C4, + 30660 - 11904: 0xF27B, + 30661 - 11904: 0xFCE8, + 30663 - 11904: 0xC3A9, + 30665 - 11904: 0xF279, + 30666 - 11904: 0xF27A, + 30667 - 11904: 0x98EF, + 30668 - 11904: 0xF474, + 30669 - 11904: 0xF477, + 30670 - 11904: 0xF475, + 30671 - 11904: 0xF476, + 30672 - 11904: 0xF5E0, + 30675 - 11904: 0xC4EF, + 30676 - 11904: 0xF7EB, + 30677 - 11904: 0xF8B4, + 30679 - 11904: 0xC5F7, + 30680 - 11904: 0xF8F8, + 30681 - 11904: 0xF8F9, + 30682 - 11904: 0xC666, + 30683 - 11904: 0xA5D9, + 30684 - 11904: 0xACE1, + 30685 - 11904: 0x8C6E, + 30686 - 11904: 0xDAC3, + 30688 - 11904: 0xDEE3, + 30690 - 11904: 0xA5DA, + 30691 - 11904: 0xA86F, + 30693 - 11904: 0xAABE, + 30694 - 11904: 0xFAD8, + 30695 - 11904: 0xCFE8, + 30696 - 11904: 0xCFE9, + 30697 - 11904: 0xAF78, + 30700 - 11904: 0xDAC4, + 30701 - 11904: 0xB575, + 30702 - 11904: 0xB847, + 30703 - 11904: 0xC142, + 30704 - 11904: 0xEDA4, + 30705 - 11904: 0xF27C, + 30706 - 11904: 0xF478, + 30707 - 11904: 0xA5DB, + 30708 - 11904: 0xFEDC, + 30711 - 11904: 0xCDA1, + 30712 - 11904: 0xCD7A, + 30713 - 11904: 0xCD7C, + 30714 - 11904: 0xCD7E, + 30715 - 11904: 0xCD7D, + 30716 - 11904: 0xCD7B, + 30717 - 11904: 0xAABF, + 30718 - 11904: 0xA0AE, + 30722 - 11904: 0xACE2, + 30723 - 11904: 0xCFF2, + 30725 - 11904: 0xCFED, + 30726 - 11904: 0xCFEA, + 30728 - 11904: 0x9D4C, + 30729 - 11904: 0xFEDD, + 30732 - 11904: 0xACE4, + 30733 - 11904: 0xACE5, + 30734 - 11904: 0xCFF0, + 30735 - 11904: 0xCFEF, + 30736 - 11904: 0xCFEE, + 30737 - 11904: 0xCFEB, + 30738 - 11904: 0xCFEC, + 30739 - 11904: 0xCFF3, + 30740 - 11904: 0xACE3, + 30744 - 11904: 0x98F1, + 30748 - 11904: 0x98F3, + 30749 - 11904: 0xAF7C, + 30750 - 11904: 0x94C1, + 30751 - 11904: 0xAFA4, + 30752 - 11904: 0xAFA3, + 30753 - 11904: 0xD2E1, + 30754 - 11904: 0xD2DB, + 30755 - 11904: 0xD2D9, + 30757 - 11904: 0xAFA1, + 30758 - 11904: 0xD6B9, + 30759 - 11904: 0xAF7A, + 30760 - 11904: 0xD2DE, + 30761 - 11904: 0xD2E2, + 30762 - 11904: 0xD2E4, + 30763 - 11904: 0xD2E0, + 30764 - 11904: 0xD2DA, + 30765 - 11904: 0xAFA2, + 30766 - 11904: 0xD2DF, + 30767 - 11904: 0xD2DD, + 30768 - 11904: 0xAF79, + 30769 - 11904: 0xD2E5, + 30770 - 11904: 0xAFA5, + 30771 - 11904: 0xD2E3, + 30772 - 11904: 0xAF7D, + 30773 - 11904: 0xD2DC, + 30775 - 11904: 0xAF7E, + 30776 - 11904: 0xAF7B, + 30777 - 11904: 0x98F5, + 30780 - 11904: 0xFA4F, + 30781 - 11904: 0x96E2, + 30786 - 11904: 0x9450, + 30787 - 11904: 0xB2B9, + 30788 - 11904: 0x96A2, + 30789 - 11904: 0xD6BA, + 30791 - 11904: 0x98F6, + 30792 - 11904: 0xD6B3, + 30793 - 11904: 0xD6B5, + 30794 - 11904: 0xD6B7, + 30795 - 11904: 0x96E5, + 30796 - 11904: 0xD6B8, + 30797 - 11904: 0xD6B6, + 30798 - 11904: 0xB2BA, + 30800 - 11904: 0xD6BB, + 30801 - 11904: 0x98F7, + 30802 - 11904: 0xD6B4, + 30803 - 11904: 0xA046, + 30804 - 11904: 0x96E3, + 30812 - 11904: 0xDAC8, + 30813 - 11904: 0xB576, + 30814 - 11904: 0xDAD0, + 30816 - 11904: 0xDAC5, + 30818 - 11904: 0xDAD1, + 30820 - 11904: 0xDAC6, + 30821 - 11904: 0xDAC7, + 30822 - 11904: 0x98F8, + 30824 - 11904: 0xDACF, + 30825 - 11904: 0xDACE, + 30826 - 11904: 0xDACB, + 30827 - 11904: 0xB2B8, + 30828 - 11904: 0xB577, + 30829 - 11904: 0xDAC9, + 30830 - 11904: 0xDACC, + 30831 - 11904: 0xB578, + 30832 - 11904: 0xDACD, + 30833 - 11904: 0xDACA, + 30841 - 11904: 0xDEEE, + 30842 - 11904: 0x9EE4, + 30843 - 11904: 0xDEF2, + 30844 - 11904: 0xB84E, + 30846 - 11904: 0xE2F0, + 30847 - 11904: 0xB851, + 30848 - 11904: 0xDEF0, + 30849 - 11904: 0xF9D6, + 30851 - 11904: 0xDEED, + 30852 - 11904: 0xDEE8, + 30853 - 11904: 0xDEEA, + 30854 - 11904: 0xDEEB, + 30855 - 11904: 0xDEE4, + 30856 - 11904: 0x94C3, + 30857 - 11904: 0xB84D, + 30860 - 11904: 0xB84C, + 30861 - 11904: 0x94C2, + 30862 - 11904: 0xB848, + 30863 - 11904: 0xDEE7, + 30865 - 11904: 0xB84F, + 30867 - 11904: 0xB850, + 30868 - 11904: 0xDEE6, + 30869 - 11904: 0xDEE9, + 30870 - 11904: 0xDEF1, + 30871 - 11904: 0xB84A, + 30872 - 11904: 0xB84B, + 30873 - 11904: 0xDEEF, + 30874 - 11904: 0xDEE5, + 30878 - 11904: 0xE2F2, + 30879 - 11904: 0xBAD0, + 30880 - 11904: 0xE2F4, + 30881 - 11904: 0xDEEC, + 30882 - 11904: 0xE2F6, + 30883 - 11904: 0xBAD4, + 30884 - 11904: 0xE2F7, + 30885 - 11904: 0xE2F3, + 30887 - 11904: 0xBAD1, + 30888 - 11904: 0xE2EF, + 30889 - 11904: 0xBAD3, + 30890 - 11904: 0xE2EC, + 30891 - 11904: 0xE2F1, + 30892 - 11904: 0xE2F5, + 30893 - 11904: 0xE2EE, + 30895 - 11904: 0xFEE1, + 30896 - 11904: 0xB849, + 30897 - 11904: 0xFEE9, + 30898 - 11904: 0xE2EB, + 30899 - 11904: 0xBAD2, + 30900 - 11904: 0xE2ED, + 30902 - 11904: 0x96E4, + 30904 - 11904: 0x89AC, + 30905 - 11904: 0x96DB, + 30906 - 11904: 0xBD54, + 30907 - 11904: 0xE6C1, + 30908 - 11904: 0xBD58, + 30910 - 11904: 0xBD56, + 30913 - 11904: 0xBACF, + 30915 - 11904: 0xE6C8, + 30916 - 11904: 0xE6C9, + 30917 - 11904: 0xBD53, + 30919 - 11904: 0xFEE2, + 30920 - 11904: 0xE6C7, + 30921 - 11904: 0xE6CA, + 30922 - 11904: 0xBD55, + 30923 - 11904: 0xBD52, + 30924 - 11904: 0xE6C3, + 30925 - 11904: 0xE6C0, + 30926 - 11904: 0xE6C5, + 30927 - 11904: 0xE6C2, + 30928 - 11904: 0xBD59, + 30929 - 11904: 0xE6C4, + 30930 - 11904: 0x94C4, + 30931 - 11904: 0xFEE3, + 30932 - 11904: 0xE6C6, + 30933 - 11904: 0xBD57, + 30935 - 11904: 0xFEE7, + 30936 - 11904: 0x9FFB, + 30938 - 11904: 0xBF6A, + 30939 - 11904: 0xEAA8, + 30941 - 11904: 0xEAA2, + 30942 - 11904: 0xEAA6, + 30943 - 11904: 0xEAAC, + 30944 - 11904: 0xEAAD, + 30945 - 11904: 0xEAA9, + 30946 - 11904: 0xEAAA, + 30947 - 11904: 0xEAA7, + 30948 - 11904: 0x8C59, + 30949 - 11904: 0xEAA4, + 30951 - 11904: 0xBF6C, + 30952 - 11904: 0xBF69, + 30953 - 11904: 0xEAA3, + 30954 - 11904: 0xEAA5, + 30956 - 11904: 0xBF6B, + 30957 - 11904: 0xEAAB, + 30958 - 11904: 0x93C9, + 30959 - 11904: 0xC146, + 30960 - 11904: 0x94E8, + 30961 - 11904: 0xFB56, + 30962 - 11904: 0xEDAA, + 30963 - 11904: 0xEDA5, + 30964 - 11904: 0xC145, + 30965 - 11904: 0x90C5, + 30967 - 11904: 0xC143, + 30969 - 11904: 0xEDAC, + 30970 - 11904: 0xC144, + 30971 - 11904: 0xEDA8, + 30972 - 11904: 0xEDA9, + 30973 - 11904: 0xEDA6, + 30974 - 11904: 0xEDAD, + 30975 - 11904: 0xF056, + 30977 - 11904: 0xC147, + 30978 - 11904: 0xEDA7, + 30980 - 11904: 0xEDAE, + 30981 - 11904: 0xEDAB, + 30982 - 11904: 0xA0A8, + 30985 - 11904: 0xF05A, + 30988 - 11904: 0xF057, + 30990 - 11904: 0xC2A6, + 30992 - 11904: 0xF05B, + 30993 - 11904: 0xF05D, + 30994 - 11904: 0xF05C, + 30995 - 11904: 0xF058, + 30996 - 11904: 0xF059, + 30999 - 11904: 0xF2A3, + 31001 - 11904: 0xC3AA, + 31003 - 11904: 0xF27E, + 31004 - 11904: 0xF2A2, + 31005 - 11904: 0xF27D, + 31006 - 11904: 0xF2A4, + 31009 - 11904: 0xF2A1, + 31011 - 11904: 0xF47A, + 31012 - 11904: 0xF47D, + 31013 - 11904: 0xF479, + 31014 - 11904: 0xC471, + 31015 - 11904: 0xF47B, + 31016 - 11904: 0xF47C, + 31017 - 11904: 0xF47E, + 31018 - 11904: 0xC472, + 31019 - 11904: 0xC474, + 31020 - 11904: 0xC473, + 31021 - 11904: 0xF5E1, + 31022 - 11904: 0xFEE5, + 31023 - 11904: 0xF5E3, + 31025 - 11904: 0xF5E2, + 31026 - 11904: 0x98FD, + 31027 - 11904: 0x98FB, + 31028 - 11904: 0xFEE8, + 31029 - 11904: 0xF6F6, + 31030 - 11904: 0x8EBF, + 31032 - 11904: 0xF8B5, + 31033 - 11904: 0xF8FA, + 31034 - 11904: 0xA5DC, + 31035 - 11904: 0x8BD8, + 31036 - 11904: 0xFEF7, + 31037 - 11904: 0xCB72, + 31038 - 11904: 0xAAC0, + 31039 - 11904: 0xCDA3, + 31040 - 11904: 0xAAC1, + 31041 - 11904: 0xAAC2, + 31042 - 11904: 0xCDA2, + 31044 - 11904: 0xCFF8, + 31045 - 11904: 0xCFF7, + 31046 - 11904: 0xACE6, + 31047 - 11904: 0xACE9, + 31048 - 11904: 0xACE8, + 31049 - 11904: 0xACE7, + 31050 - 11904: 0xCFF4, + 31051 - 11904: 0xCFF6, + 31052 - 11904: 0xCFF5, + 31055 - 11904: 0xD2E8, + 31056 - 11904: 0xAFA7, + 31057 - 11904: 0xD2EC, + 31058 - 11904: 0xD2EB, + 31059 - 11904: 0xD2EA, + 31060 - 11904: 0xD2E6, + 31061 - 11904: 0xAFA6, + 31062 - 11904: 0xAFAA, + 31063 - 11904: 0xAFAD, + 31064 - 11904: 0x8F68, + 31065 - 11904: 0x94C6, + 31066 - 11904: 0xAFAE, + 31067 - 11904: 0xD2E7, + 31068 - 11904: 0xD2E9, + 31069 - 11904: 0xAFAC, + 31070 - 11904: 0xAFAB, + 31071 - 11904: 0xAFA9, + 31072 - 11904: 0xAFA8, + 31073 - 11904: 0xD6C2, + 31074 - 11904: 0x9DEA, + 31075 - 11904: 0xD6C0, + 31076 - 11904: 0xD6BC, + 31077 - 11904: 0xB2BB, + 31079 - 11904: 0xD6BD, + 31080 - 11904: 0xB2BC, + 31081 - 11904: 0xD6BE, + 31082 - 11904: 0xD6BF, + 31083 - 11904: 0xD6C1, + 31085 - 11904: 0xB2BD, + 31088 - 11904: 0xDAD5, + 31089 - 11904: 0xFC69, + 31090 - 11904: 0xDAD4, + 31091 - 11904: 0xDAD3, + 31092 - 11904: 0xDAD2, + 31097 - 11904: 0xDEF6, + 31098 - 11904: 0xB852, + 31100 - 11904: 0xDEF3, + 31101 - 11904: 0xDEF5, + 31102 - 11904: 0x9CDA, + 31103 - 11904: 0xB853, + 31104 - 11904: 0xFEF3, + 31105 - 11904: 0xB854, + 31106 - 11904: 0xDEF4, + 31107 - 11904: 0x9C72, + 31110 - 11904: 0xFEF0, + 31111 - 11904: 0x89C9, + 31112 - 11904: 0xE341, + 31114 - 11904: 0xE2F9, + 31115 - 11904: 0xE2FA, + 31117 - 11904: 0xBAD7, + 31118 - 11904: 0xBAD5, + 31119 - 11904: 0xBAD6, + 31120 - 11904: 0xE343, + 31121 - 11904: 0x9941, + 31122 - 11904: 0xE342, + 31123 - 11904: 0xE2FE, + 31124 - 11904: 0xE2FD, + 31125 - 11904: 0xE2FC, + 31126 - 11904: 0xE2FB, + 31127 - 11904: 0xE340, + 31128 - 11904: 0xE2F8, + 31129 - 11904: 0x9942, + 31130 - 11904: 0xE6CB, + 31131 - 11904: 0xE6D0, + 31132 - 11904: 0xE6CE, + 31133 - 11904: 0xFEF5, + 31135 - 11904: 0x91D7, + 31136 - 11904: 0xE6CD, + 31137 - 11904: 0xE6CC, + 31138 - 11904: 0xE6CF, + 31140 - 11904: 0xEAAE, + 31141 - 11904: 0x94CC, + 31142 - 11904: 0xBF6D, + 31143 - 11904: 0xC148, + 31144 - 11904: 0xEDB0, + 31145 - 11904: 0xFEF8, + 31146 - 11904: 0xC149, + 31147 - 11904: 0xEDAF, + 31148 - 11904: 0xF05F, + 31149 - 11904: 0xF05E, + 31150 - 11904: 0xC2A7, + 31152 - 11904: 0xF2A5, + 31153 - 11904: 0xC3AB, + 31154 - 11904: 0xF4A1, + 31155 - 11904: 0xC5A1, + 31156 - 11904: 0xF6F7, + 31158 - 11904: 0xF8B7, + 31159 - 11904: 0xF8B6, + 31160 - 11904: 0xC9A8, + 31161 - 11904: 0xACEA, + 31162 - 11904: 0xACEB, + 31163 - 11904: 0xD6C3, + 31165 - 11904: 0xB856, + 31166 - 11904: 0xA5DD, + 31167 - 11904: 0xA872, + 31168 - 11904: 0xA871, + 31169 - 11904: 0xA870, + 31172 - 11904: 0x97A8, + 31173 - 11904: 0xCDA4, + 31174 - 11904: 0xFEFC, + 31176 - 11904: 0xAAC4, + 31177 - 11904: 0xAAC3, + 31178 - 11904: 0x8CDE, + 31179 - 11904: 0xACEE, + 31180 - 11904: 0xFDBF, + 31181 - 11904: 0xCFFA, + 31182 - 11904: 0xCFFD, + 31183 - 11904: 0xCFFB, + 31184 - 11904: 0x87B3, + 31185 - 11904: 0xACEC, + 31186 - 11904: 0xACED, + 31188 - 11904: 0xFEFE, + 31189 - 11904: 0xCFF9, + 31190 - 11904: 0xCFFC, + 31192 - 11904: 0xAFB5, + 31196 - 11904: 0xD2F3, + 31197 - 11904: 0xD2F5, + 31198 - 11904: 0xD2F4, + 31199 - 11904: 0xAFB2, + 31200 - 11904: 0xD2EF, + 31202 - 11904: 0x96D1, + 31203 - 11904: 0xAFB0, + 31204 - 11904: 0xAFAF, + 31206 - 11904: 0xAFB3, + 31207 - 11904: 0xAFB1, + 31209 - 11904: 0xAFB4, + 31210 - 11904: 0xD2F2, + 31211 - 11904: 0xD2ED, + 31212 - 11904: 0xD2EE, + 31213 - 11904: 0xD2F1, + 31214 - 11904: 0xD2F0, + 31217 - 11904: 0x94D5, + 31220 - 11904: 0x94D0, + 31222 - 11904: 0xD6C6, + 31223 - 11904: 0xD6C7, + 31224 - 11904: 0xD6C5, + 31226 - 11904: 0xD6C4, + 31227 - 11904: 0xB2BE, + 31232 - 11904: 0xB57D, + 31234 - 11904: 0xDAD6, + 31235 - 11904: 0xDAD8, + 31236 - 11904: 0xDADA, + 31237 - 11904: 0xB57C, + 31238 - 11904: 0x9944, + 31240 - 11904: 0xB57A, + 31242 - 11904: 0xDAD7, + 31243 - 11904: 0xB57B, + 31244 - 11904: 0xDAD9, + 31245 - 11904: 0xB579, + 31248 - 11904: 0xDF41, + 31249 - 11904: 0xDEF7, + 31250 - 11904: 0xDEFA, + 31251 - 11904: 0xDEFE, + 31252 - 11904: 0xB85A, + 31253 - 11904: 0xDEFC, + 31255 - 11904: 0xDEFB, + 31256 - 11904: 0xDEF8, + 31257 - 11904: 0xDEF9, + 31258 - 11904: 0xB858, + 31259 - 11904: 0xDF40, + 31260 - 11904: 0xB857, + 31262 - 11904: 0xB85C, + 31263 - 11904: 0xB85B, + 31264 - 11904: 0xB859, + 31266 - 11904: 0xDEFD, + 31270 - 11904: 0xE349, + 31272 - 11904: 0xE348, + 31274 - 11904: 0x8C63, + 31275 - 11904: 0xE344, + 31276 - 11904: 0x87BB, + 31277 - 11904: 0xA0B3, + 31278 - 11904: 0xBAD8, + 31279 - 11904: 0xE347, + 31280 - 11904: 0xE346, + 31281 - 11904: 0xBAD9, + 31282 - 11904: 0x87B4, + 31287 - 11904: 0xBD5E, + 31289 - 11904: 0xE6D2, + 31290 - 11904: 0x94CF, + 31291 - 11904: 0xBD5F, + 31292 - 11904: 0xBD5B, + 31293 - 11904: 0xBD5D, + 31294 - 11904: 0x9FFA, + 31295 - 11904: 0xBD5A, + 31296 - 11904: 0xBD5C, + 31299 - 11904: 0x91E5, + 31300 - 11904: 0xEAAF, + 31301 - 11904: 0x9C6A, + 31302 - 11904: 0xBF70, + 31303 - 11904: 0xEAB1, + 31304 - 11904: 0xEAB0, + 31305 - 11904: 0x8E49, + 31306 - 11904: 0xE345, + 31307 - 11904: 0xBF72, + 31308 - 11904: 0xBF71, + 31309 - 11904: 0xBF6E, + 31310 - 11904: 0xBF6F, + 31316 - 11904: 0xEDB5, + 31318 - 11904: 0xEDB3, + 31319 - 11904: 0xC14A, + 31320 - 11904: 0xEDB4, + 31322 - 11904: 0xEDB6, + 31323 - 11904: 0xEDB2, + 31324 - 11904: 0xEDB1, + 31327 - 11904: 0xF060, + 31328 - 11904: 0xC2AA, + 31329 - 11904: 0xC2A8, + 31330 - 11904: 0xC2A9, + 31333 - 11904: 0x8E4C, + 31335 - 11904: 0xF2A6, + 31336 - 11904: 0xF2A7, + 31337 - 11904: 0xC3AD, + 31339 - 11904: 0xC3AC, + 31340 - 11904: 0xF4A3, + 31341 - 11904: 0xF4A4, + 31342 - 11904: 0xF4A2, + 31344 - 11904: 0xF6F8, + 31345 - 11904: 0xF6F9, + 31346 - 11904: 0x87C9, + 31348 - 11904: 0xA5DE, + 31349 - 11904: 0xCA48, + 31350 - 11904: 0xA873, + 31352 - 11904: 0xCDA5, + 31353 - 11904: 0xAAC6, + 31354 - 11904: 0xAAC5, + 31355 - 11904: 0xCDA6, + 31357 - 11904: 0x8E4D, + 31358 - 11904: 0xD040, + 31359 - 11904: 0xACEF, + 31360 - 11904: 0xCFFE, + 31361 - 11904: 0xACF0, + 31363 - 11904: 0x9A73, + 31364 - 11904: 0xAFB6, + 31365 - 11904: 0xD2F8, + 31366 - 11904: 0xD2F6, + 31367 - 11904: 0xD2FC, + 31368 - 11904: 0xAFB7, + 31369 - 11904: 0xD2F7, + 31370 - 11904: 0xD2FB, + 31371 - 11904: 0xD2F9, + 31372 - 11904: 0xD2FA, + 31375 - 11904: 0xD6C8, + 31376 - 11904: 0xD6CA, + 31377 - 11904: 0x9947, + 31378 - 11904: 0xB2BF, + 31379 - 11904: 0x8CB1, + 31380 - 11904: 0xD6C9, + 31381 - 11904: 0xB2C0, + 31382 - 11904: 0xB5A2, + 31383 - 11904: 0xB5A1, + 31384 - 11904: 0xB57E, + 31385 - 11904: 0xDADB, + 31390 - 11904: 0xDF44, + 31391 - 11904: 0xB85D, + 31392 - 11904: 0xB85E, + 31394 - 11904: 0xDF43, + 31395 - 11904: 0xDF42, + 31400 - 11904: 0xE34A, + 31401 - 11904: 0xBADB, + 31402 - 11904: 0xBADA, + 31403 - 11904: 0xE34B, + 31404 - 11904: 0xE34C, + 31406 - 11904: 0xBD61, + 31407 - 11904: 0xBD60, + 31408 - 11904: 0x8E50, + 31409 - 11904: 0xEAB5, + 31410 - 11904: 0xE6D3, + 31411 - 11904: 0xE6D5, + 31412 - 11904: 0xE6D4, + 31413 - 11904: 0xEAB4, + 31414 - 11904: 0xEAB2, + 31415 - 11904: 0xEAB6, + 31416 - 11904: 0xEAB3, + 31418 - 11904: 0xBF73, + 31419 - 11904: 0x8E4F, + 31420 - 11904: 0x9949, + 31422 - 11904: 0xEDB7, + 31423 - 11904: 0xC14B, + 31424 - 11904: 0xEDB8, + 31425 - 11904: 0xEDB9, + 31426 - 11904: 0x8E51, + 31427 - 11904: 0x8E52, + 31428 - 11904: 0xC2AB, + 31429 - 11904: 0xC2AC, + 31431 - 11904: 0xC475, + 31432 - 11904: 0x9AB2, + 31433 - 11904: 0x89A5, + 31434 - 11904: 0xC5D1, + 31435 - 11904: 0xA5DF, + 31439 - 11904: 0x994C, + 31441 - 11904: 0xD041, + 31443 - 11904: 0x9FF8, + 31448 - 11904: 0xD2FD, + 31449 - 11904: 0xAFB8, + 31450 - 11904: 0x8E56, + 31451 - 11904: 0x994D, + 31452 - 11904: 0x91CA, + 31453 - 11904: 0x8E57, + 31455 - 11904: 0xB3BA, + 31456 - 11904: 0xB3B9, + 31458 - 11904: 0x94E1, + 31459 - 11904: 0xB5A4, + 31460 - 11904: 0xDADD, + 31461 - 11904: 0xB5A3, + 31462 - 11904: 0xDADC, + 31463 - 11904: 0x9047, + 31465 - 11904: 0x8FD8, + 31466 - 11904: 0x8E58, + 31467 - 11904: 0xDF45, + 31469 - 11904: 0xBADC, + 31470 - 11904: 0xE34D, + 31471 - 11904: 0xBADD, + 31478 - 11904: 0xC476, + 31479 - 11904: 0xF4A5, + 31481 - 11904: 0xA6CB, + 31482 - 11904: 0xAAC7, + 31483 - 11904: 0xCDA7, + 31484 - 11904: 0x87A3, + 31485 - 11904: 0xACF2, + 31486 - 11904: 0x94EB, + 31487 - 11904: 0xACF1, + 31488 - 11904: 0xD042, + 31489 - 11904: 0xD043, + 31492 - 11904: 0xD340, + 31493 - 11904: 0xD342, + 31494 - 11904: 0xAFB9, + 31496 - 11904: 0xD344, + 31497 - 11904: 0xD347, + 31498 - 11904: 0xD345, + 31499 - 11904: 0x8E5C, + 31500 - 11904: 0x9553, + 31502 - 11904: 0xD346, + 31503 - 11904: 0xD343, + 31504 - 11904: 0xD2FE, + 31505 - 11904: 0xAFBA, + 31506 - 11904: 0xD348, + 31507 - 11904: 0xD341, + 31508 - 11904: 0x9FE5, + 31512 - 11904: 0xD6D3, + 31513 - 11904: 0xB2C6, + 31514 - 11904: 0xD6DC, + 31515 - 11904: 0xB2C3, + 31517 - 11904: 0xD6D5, + 31518 - 11904: 0xB2C7, + 31519 - 11904: 0x9F56, + 31520 - 11904: 0xB2C1, + 31522 - 11904: 0xD6D0, + 31523 - 11904: 0xD6DD, + 31524 - 11904: 0xD6D1, + 31525 - 11904: 0xD6CE, + 31526 - 11904: 0xB2C5, + 31527 - 11904: 0x954F, + 31528 - 11904: 0xB2C2, + 31529 - 11904: 0x8E5E, + 31530 - 11904: 0xD6D4, + 31531 - 11904: 0xD6D7, + 31532 - 11904: 0xB2C4, + 31533 - 11904: 0xD6D8, + 31534 - 11904: 0xB2C8, + 31535 - 11904: 0xD6D9, + 31536 - 11904: 0xD6CF, + 31537 - 11904: 0xD6D6, + 31538 - 11904: 0xD6DA, + 31539 - 11904: 0xD6D2, + 31540 - 11904: 0xD6CD, + 31541 - 11904: 0xD6CB, + 31544 - 11904: 0xD6DB, + 31545 - 11904: 0x996A, + 31547 - 11904: 0xDADF, + 31552 - 11904: 0xDAE4, + 31554 - 11904: 0x9C64, + 31555 - 11904: 0x9CD9, + 31556 - 11904: 0xDAE0, + 31557 - 11904: 0xDAE6, + 31558 - 11904: 0xB5A7, + 31559 - 11904: 0xD6CC, + 31560 - 11904: 0xDAE1, + 31561 - 11904: 0xB5A5, + 31562 - 11904: 0xDADE, + 31563 - 11904: 0xB5AC, + 31564 - 11904: 0xDAE2, + 31565 - 11904: 0xB5AB, + 31566 - 11904: 0xDAE3, + 31567 - 11904: 0xB5AD, + 31568 - 11904: 0xB5A8, + 31569 - 11904: 0xB5AE, + 31570 - 11904: 0xB5A9, + 31572 - 11904: 0xB5AA, + 31573 - 11904: 0x8E5D, + 31574 - 11904: 0xB5A6, + 31576 - 11904: 0xDAE5, + 31584 - 11904: 0xB861, + 31585 - 11904: 0xDF50, + 31586 - 11904: 0x9950, + 31587 - 11904: 0xDF53, + 31588 - 11904: 0xDF47, + 31589 - 11904: 0xDF4C, + 31590 - 11904: 0xDF46, + 31591 - 11904: 0xB863, + 31593 - 11904: 0xDF4A, + 31596 - 11904: 0x9951, + 31597 - 11904: 0xDF48, + 31598 - 11904: 0xB862, + 31599 - 11904: 0x8E62, + 31600 - 11904: 0xDF4F, + 31601 - 11904: 0xDF4E, + 31602 - 11904: 0xDF4B, + 31603 - 11904: 0xDF4D, + 31604 - 11904: 0xDF49, + 31605 - 11904: 0xBAE1, + 31606 - 11904: 0xDF52, + 31607 - 11904: 0xB85F, + 31608 - 11904: 0xDF51, + 31611 - 11904: 0x9952, + 31618 - 11904: 0xE35D, + 31620 - 11904: 0xBAE8, + 31621 - 11904: 0xE358, + 31623 - 11904: 0xBAE7, + 31624 - 11904: 0xE34E, + 31626 - 11904: 0xE350, + 31627 - 11904: 0xBAE0, + 31628 - 11904: 0xE355, + 31629 - 11904: 0xE354, + 31630 - 11904: 0xE357, + 31631 - 11904: 0xBAE5, + 31632 - 11904: 0xE352, + 31633 - 11904: 0xE351, + 31634 - 11904: 0x8E68, + 31636 - 11904: 0xBAE4, + 31637 - 11904: 0xBADF, + 31638 - 11904: 0xE353, + 31639 - 11904: 0xBAE2, + 31640 - 11904: 0xE359, + 31641 - 11904: 0xE35B, + 31643 - 11904: 0xE356, + 31644 - 11904: 0xE34F, + 31645 - 11904: 0xBAE3, + 31648 - 11904: 0xBD69, + 31649 - 11904: 0xBADE, + 31650 - 11904: 0x8E61, + 31651 - 11904: 0x9F59, + 31652 - 11904: 0xE35C, + 31660 - 11904: 0xE6D9, + 31661 - 11904: 0xBD62, + 31662 - 11904: 0x87D0, + 31663 - 11904: 0xE6DB, + 31665 - 11904: 0xBD63, + 31666 - 11904: 0x8BB3, + 31668 - 11904: 0xBD65, + 31669 - 11904: 0xE6DE, + 31671 - 11904: 0xE6D6, + 31672 - 11904: 0xBAE6, + 31673 - 11904: 0xE6DC, + 31678 - 11904: 0xE6D8, + 31680 - 11904: 0xB860, + 31681 - 11904: 0xBD68, + 31684 - 11904: 0xBD64, + 31685 - 11904: 0x87B9, + 31686 - 11904: 0xBD66, + 31687 - 11904: 0xBD67, + 31689 - 11904: 0xBF76, + 31690 - 11904: 0xE6DD, + 31691 - 11904: 0xE6D7, + 31692 - 11904: 0xBD6A, + 31694 - 11904: 0xE6DA, + 31695 - 11904: 0x9F5D, + 31696 - 11904: 0x8E66, + 31700 - 11904: 0xEAC0, + 31701 - 11904: 0xEABB, + 31704 - 11904: 0xEAC5, + 31705 - 11904: 0xBF74, + 31706 - 11904: 0xEABD, + 31707 - 11904: 0xBF78, + 31708 - 11904: 0xEAC3, + 31709 - 11904: 0xEABA, + 31710 - 11904: 0xEAB7, + 31711 - 11904: 0xEAC6, + 31712 - 11904: 0xC151, + 31713 - 11904: 0xBF79, + 31714 - 11904: 0xEAC2, + 31715 - 11904: 0xEAB8, + 31716 - 11904: 0xBF77, + 31717 - 11904: 0xEABC, + 31718 - 11904: 0xBF7B, + 31719 - 11904: 0xEAB9, + 31720 - 11904: 0xEABE, + 31721 - 11904: 0xBF7A, + 31722 - 11904: 0xEAC1, + 31723 - 11904: 0xEAC4, + 31724 - 11904: 0x8CB2, + 31728 - 11904: 0xEDCB, + 31729 - 11904: 0xEDCC, + 31730 - 11904: 0xEDBC, + 31731 - 11904: 0xEDC3, + 31732 - 11904: 0xEDC1, + 31735 - 11904: 0xC14F, + 31736 - 11904: 0xEDC8, + 31737 - 11904: 0xEABF, + 31738 - 11904: 0x8E6E, + 31739 - 11904: 0xEDBF, + 31740 - 11904: 0x9F64, + 31741 - 11904: 0xEDC9, + 31742 - 11904: 0xC14E, + 31743 - 11904: 0xEDBE, + 31744 - 11904: 0xEDBD, + 31745 - 11904: 0xEDC7, + 31746 - 11904: 0xEDC4, + 31747 - 11904: 0xEDC6, + 31749 - 11904: 0xEDBA, + 31750 - 11904: 0xEDCA, + 31751 - 11904: 0xC14C, + 31753 - 11904: 0xEDC5, + 31754 - 11904: 0xEDCE, + 31755 - 11904: 0xEDC2, + 31756 - 11904: 0xC150, + 31757 - 11904: 0xC14D, + 31758 - 11904: 0xEDC0, + 31759 - 11904: 0xEDBB, + 31760 - 11904: 0xEDCD, + 31761 - 11904: 0xBF75, + 31762 - 11904: 0x9953, + 31765 - 11904: 0xFAB8, + 31769 - 11904: 0xF063, + 31771 - 11904: 0x9954, + 31772 - 11904: 0xF061, + 31773 - 11904: 0xF067, + 31774 - 11904: 0xC2B0, + 31775 - 11904: 0xF065, + 31776 - 11904: 0xF064, + 31777 - 11904: 0xC2B2, + 31778 - 11904: 0xF06A, + 31779 - 11904: 0xC2B1, + 31781 - 11904: 0xF06B, + 31782 - 11904: 0xF068, + 31783 - 11904: 0xC2AE, + 31784 - 11904: 0xF069, + 31785 - 11904: 0xF062, + 31786 - 11904: 0xC2AF, + 31787 - 11904: 0xC2AD, + 31788 - 11904: 0xF2AB, + 31789 - 11904: 0xF066, + 31792 - 11904: 0xF06C, + 31795 - 11904: 0xF2A8, + 31797 - 11904: 0x8E70, + 31799 - 11904: 0xC3B2, + 31800 - 11904: 0xC3B0, + 31801 - 11904: 0xF2AA, + 31803 - 11904: 0xF2AC, + 31804 - 11904: 0xF2A9, + 31805 - 11904: 0xC3B1, + 31806 - 11904: 0xC3AE, + 31807 - 11904: 0xC3AF, + 31808 - 11904: 0xC3B3, + 31810 - 11904: 0x9F61, + 31811 - 11904: 0xC478, + 31812 - 11904: 0x8E72, + 31813 - 11904: 0xF4AA, + 31815 - 11904: 0xF4A9, + 31816 - 11904: 0xF4A7, + 31817 - 11904: 0xF4A6, + 31818 - 11904: 0xF4A8, + 31820 - 11904: 0xC477, + 31821 - 11904: 0xC479, + 31824 - 11904: 0xC4F0, + 31825 - 11904: 0xA06B, + 31827 - 11904: 0xF5E5, + 31828 - 11904: 0xF5E4, + 31830 - 11904: 0x9F40, + 31831 - 11904: 0xF6FA, + 31833 - 11904: 0xF6FC, + 31834 - 11904: 0xF6FE, + 31835 - 11904: 0xF6FD, + 31836 - 11904: 0xF6FB, + 31837 - 11904: 0x94ED, + 31839 - 11904: 0xC5A3, + 31840 - 11904: 0xC5A2, + 31843 - 11904: 0xC5D3, + 31844 - 11904: 0xC5D2, + 31845 - 11904: 0xC5D4, + 31846 - 11904: 0xF7ED, + 31847 - 11904: 0xF7EC, + 31849 - 11904: 0xF8FB, + 31850 - 11904: 0xF8B8, + 31851 - 11904: 0xF8FC, + 31852 - 11904: 0xC658, + 31853 - 11904: 0x94EE, + 31854 - 11904: 0xC659, + 31855 - 11904: 0xF96D, + 31856 - 11904: 0x9FBD, + 31858 - 11904: 0xC67E, + 31859 - 11904: 0xA6CC, + 31860 - 11904: 0x8E7B, + 31861 - 11904: 0xCDA8, + 31864 - 11904: 0xD045, + 31865 - 11904: 0xD046, + 31866 - 11904: 0xD044, + 31867 - 11904: 0x9957, + 31868 - 11904: 0x94F7, + 31869 - 11904: 0xACF3, + 31870 - 11904: 0x9F5F, + 31871 - 11904: 0xD047, + 31872 - 11904: 0xD048, + 31873 - 11904: 0xD049, + 31875 - 11904: 0x8E73, + 31876 - 11904: 0xD349, + 31877 - 11904: 0xD34F, + 31878 - 11904: 0x9F62, + 31880 - 11904: 0xD34D, + 31881 - 11904: 0xAFBB, + 31882 - 11904: 0xD34B, + 31884 - 11904: 0xD34C, + 31885 - 11904: 0xD34E, + 31886 - 11904: 0x94F6, + 31889 - 11904: 0xD34A, + 31890 - 11904: 0xB2C9, + 31892 - 11904: 0xD6DE, + 31893 - 11904: 0xB2CB, + 31894 - 11904: 0xD6E0, + 31895 - 11904: 0xB2CA, + 31896 - 11904: 0xD6DF, + 31900 - 11904: 0x9958, + 31902 - 11904: 0xDAE8, + 31903 - 11904: 0xB5AF, + 31905 - 11904: 0xDAEA, + 31906 - 11904: 0xDAE7, + 31907 - 11904: 0xD6E1, + 31909 - 11904: 0xB5B0, + 31910 - 11904: 0x8E75, + 31911 - 11904: 0xF9DB, + 31912 - 11904: 0xDAE9, + 31916 - 11904: 0x9072, + 31918 - 11904: 0x94F8, + 31919 - 11904: 0xDF56, + 31921 - 11904: 0xB864, + 31922 - 11904: 0xDF54, + 31923 - 11904: 0xB865, + 31924 - 11904: 0xDF55, + 31925 - 11904: 0xB866, + 31928 - 11904: 0x995A, + 31929 - 11904: 0xBAE9, + 31930 - 11904: 0xE361, + 31931 - 11904: 0xE35E, + 31932 - 11904: 0xE360, + 31933 - 11904: 0xBAEA, + 31934 - 11904: 0xBAEB, + 31935 - 11904: 0xE35F, + 31938 - 11904: 0xA0B0, + 31939 - 11904: 0x8CB3, + 31941 - 11904: 0xE6DF, + 31943 - 11904: 0x8E79, + 31944 - 11904: 0xE6E0, + 31945 - 11904: 0x8E78, + 31946 - 11904: 0xBD6B, + 31947 - 11904: 0xE6E2, + 31948 - 11904: 0xE6E1, + 31949 - 11904: 0x94F3, + 31950 - 11904: 0xA261, + 31952 - 11904: 0xEACA, + 31953 - 11904: 0xEACB, + 31954 - 11904: 0xEAC7, + 31955 - 11904: 0x98AF, + 31956 - 11904: 0xEAC8, + 31957 - 11904: 0xBF7C, + 31958 - 11904: 0xBF7D, + 31959 - 11904: 0xEAC9, + 31961 - 11904: 0xC157, + 31962 - 11904: 0xA0B2, + 31964 - 11904: 0xC153, + 31965 - 11904: 0xC158, + 31966 - 11904: 0xC154, + 31967 - 11904: 0xC156, + 31968 - 11904: 0xC152, + 31970 - 11904: 0xC155, + 31974 - 11904: 0x8E7A, + 31975 - 11904: 0xC2B3, + 31976 - 11904: 0xEDCF, + 31978 - 11904: 0xF2AE, + 31980 - 11904: 0xF2AD, + 31981 - 11904: 0x995C, + 31982 - 11904: 0xF4AB, + 31983 - 11904: 0xC47A, + 31984 - 11904: 0xC47B, + 31985 - 11904: 0xF741, + 31986 - 11904: 0xF5E6, + 31987 - 11904: 0x8E7C, + 31988 - 11904: 0xF740, + 31989 - 11904: 0x8E7D, + 31990 - 11904: 0xF8FD, + 31991 - 11904: 0xF9A4, + 31992 - 11904: 0xA6CD, + 31993 - 11904: 0x8BD9, + 31995 - 11904: 0xA874, + 31996 - 11904: 0x89A2, + 31997 - 11904: 0xCDA9, + 31998 - 11904: 0xAAC8, + 32000 - 11904: 0xACF6, + 32001 - 11904: 0xD04C, + 32002 - 11904: 0xACF4, + 32003 - 11904: 0xD04A, + 32004 - 11904: 0xACF9, + 32005 - 11904: 0xACF5, + 32006 - 11904: 0xACFA, + 32007 - 11904: 0xACF8, + 32008 - 11904: 0xD04B, + 32009 - 11904: 0xACF7, + 32010 - 11904: 0xAFBF, + 32011 - 11904: 0xAFBE, + 32012 - 11904: 0xD35A, + 32013 - 11904: 0xAFC7, + 32014 - 11904: 0xD353, + 32015 - 11904: 0xD359, + 32016 - 11904: 0xAFC3, + 32017 - 11904: 0xD352, + 32018 - 11904: 0xD358, + 32019 - 11904: 0xD356, + 32020 - 11904: 0xAFC2, + 32021 - 11904: 0xAFC4, + 32022 - 11904: 0xD355, + 32023 - 11904: 0xAFBD, + 32024 - 11904: 0xD354, + 32025 - 11904: 0xAFC8, + 32026 - 11904: 0xAFC5, + 32027 - 11904: 0xAFC9, + 32028 - 11904: 0xAFC6, + 32029 - 11904: 0xD351, + 32030 - 11904: 0xD350, + 32031 - 11904: 0xD357, + 32032 - 11904: 0xAFC0, + 32033 - 11904: 0xAFBC, + 32034 - 11904: 0xAFC1, + 32037 - 11904: 0x9ED7, + 32040 - 11904: 0xD6F0, + 32041 - 11904: 0xD6E9, + 32043 - 11904: 0xB5B5, + 32044 - 11904: 0xD6E8, + 32046 - 11904: 0xB2CF, + 32047 - 11904: 0xB2D6, + 32048 - 11904: 0xB2D3, + 32049 - 11904: 0xB2D9, + 32050 - 11904: 0xB2D8, + 32051 - 11904: 0xB2D4, + 32053 - 11904: 0xD6E2, + 32054 - 11904: 0xD6E5, + 32056 - 11904: 0xD6E4, + 32057 - 11904: 0xB2D0, + 32058 - 11904: 0xD6E6, + 32059 - 11904: 0xD6EF, + 32060 - 11904: 0xB2D1, + 32061 - 11904: 0xD6E3, + 32062 - 11904: 0xD6EC, + 32063 - 11904: 0xD6ED, + 32064 - 11904: 0xB2D2, + 32065 - 11904: 0xD6EA, + 32066 - 11904: 0xB2D7, + 32067 - 11904: 0xB2CD, + 32068 - 11904: 0xB2D5, + 32069 - 11904: 0xD6E7, + 32070 - 11904: 0xB2CC, + 32071 - 11904: 0xD6EB, + 32074 - 11904: 0xD6EE, + 32077 - 11904: 0xA0B6, + 32078 - 11904: 0xDAFB, + 32079 - 11904: 0xDAF2, + 32080 - 11904: 0xB5B2, + 32081 - 11904: 0xDAF9, + 32082 - 11904: 0xDAF6, + 32083 - 11904: 0xDAEE, + 32084 - 11904: 0xDAF7, + 32085 - 11904: 0xB5B4, + 32086 - 11904: 0xDAEF, + 32088 - 11904: 0xDAEB, + 32090 - 11904: 0x9E42, + 32091 - 11904: 0xB86C, + 32092 - 11904: 0xDAF4, + 32093 - 11904: 0x8EA4, + 32094 - 11904: 0xB5B1, + 32095 - 11904: 0xDAFA, + 32097 - 11904: 0xB5B8, + 32098 - 11904: 0xB5BA, + 32099 - 11904: 0xDAED, + 32102 - 11904: 0xB5B9, + 32103 - 11904: 0xDAF0, + 32104 - 11904: 0xB5B3, + 32105 - 11904: 0xDAF8, + 32106 - 11904: 0xDAF1, + 32107 - 11904: 0xDAF5, + 32109 - 11904: 0xDAF3, + 32110 - 11904: 0xB5B6, + 32111 - 11904: 0xDAEC, + 32112 - 11904: 0xB5BB, + 32113 - 11904: 0xB2CE, + 32114 - 11904: 0xB5B7, + 32115 - 11904: 0xB5BC, + 32121 - 11904: 0xB868, + 32122 - 11904: 0xDF5D, + 32123 - 11904: 0xDF5F, + 32124 - 11904: 0xDF61, + 32125 - 11904: 0xDF65, + 32127 - 11904: 0xDF5B, + 32128 - 11904: 0xDF59, + 32129 - 11904: 0xB86A, + 32131 - 11904: 0xDF60, + 32132 - 11904: 0xDF64, + 32133 - 11904: 0xDF5C, + 32134 - 11904: 0xDF58, + 32136 - 11904: 0xDF57, + 32137 - 11904: 0x8EA7, + 32139 - 11904: 0x8C76, + 32140 - 11904: 0xDF62, + 32141 - 11904: 0xDF5A, + 32142 - 11904: 0xDF5E, + 32143 - 11904: 0xB86B, + 32145 - 11904: 0xB869, + 32146 - 11904: 0xDF66, + 32147 - 11904: 0xB867, + 32148 - 11904: 0xDF63, + 32149 - 11904: 0x8767, + 32150 - 11904: 0xE372, + 32151 - 11904: 0x9542, + 32156 - 11904: 0xBAEE, + 32157 - 11904: 0xE36A, + 32158 - 11904: 0xBD78, + 32159 - 11904: 0xE374, + 32160 - 11904: 0xBAF1, + 32161 - 11904: 0xE378, + 32162 - 11904: 0xBAF7, + 32163 - 11904: 0xE365, + 32164 - 11904: 0x987D, + 32166 - 11904: 0xE375, + 32167 - 11904: 0xE362, + 32168 - 11904: 0x9755, + 32169 - 11904: 0xE377, + 32170 - 11904: 0xE366, + 32171 - 11904: 0x8EA8, + 32172 - 11904: 0xBAFE, + 32173 - 11904: 0xBAFB, + 32174 - 11904: 0xE376, + 32175 - 11904: 0xE370, + 32176 - 11904: 0xBAED, + 32177 - 11904: 0xBAF5, + 32178 - 11904: 0xBAF4, + 32179 - 11904: 0x8EAA, + 32180 - 11904: 0xBAF3, + 32181 - 11904: 0xBAF9, + 32183 - 11904: 0xE363, + 32184 - 11904: 0xBAFA, + 32185 - 11904: 0xE371, + 32186 - 11904: 0xBAF6, + 32187 - 11904: 0xBAEC, + 32188 - 11904: 0xE373, + 32189 - 11904: 0xBAEF, + 32190 - 11904: 0xBAF0, + 32191 - 11904: 0xBAF8, + 32192 - 11904: 0xE368, + 32193 - 11904: 0xE367, + 32194 - 11904: 0xE364, + 32196 - 11904: 0xE36C, + 32197 - 11904: 0xE369, + 32198 - 11904: 0xE36D, + 32199 - 11904: 0xBAFD, + 32201 - 11904: 0xE379, + 32202 - 11904: 0xBAF2, + 32203 - 11904: 0xE36E, + 32204 - 11904: 0xE36F, + 32205 - 11904: 0x89A3, + 32206 - 11904: 0xE36B, + 32207 - 11904: 0x9960, + 32208 - 11904: 0x9962, + 32210 - 11904: 0xBAFC, + 32211 - 11904: 0x94FC, + 32212 - 11904: 0x9961, + 32215 - 11904: 0xE6E7, + 32216 - 11904: 0xBD70, + 32217 - 11904: 0xBD79, + 32218 - 11904: 0xBD75, + 32219 - 11904: 0xE6E4, + 32220 - 11904: 0x94FA, + 32221 - 11904: 0xBD72, + 32222 - 11904: 0xBD76, + 32223 - 11904: 0xE6F0, + 32224 - 11904: 0xBD6C, + 32225 - 11904: 0xE6E8, + 32227 - 11904: 0xBD74, + 32228 - 11904: 0x8EAE, + 32229 - 11904: 0x8EB2, + 32230 - 11904: 0xE6EB, + 32231 - 11904: 0xE6E6, + 32232 - 11904: 0xBD73, + 32233 - 11904: 0xBD77, + 32234 - 11904: 0xE6E5, + 32236 - 11904: 0xBD71, + 32238 - 11904: 0xE6EF, + 32239 - 11904: 0xBD6E, + 32240 - 11904: 0xE6EE, + 32241 - 11904: 0xE6ED, + 32242 - 11904: 0xBD7A, + 32243 - 11904: 0xE572, + 32244 - 11904: 0xBD6D, + 32245 - 11904: 0x8EB0, + 32246 - 11904: 0xE6EC, + 32247 - 11904: 0xE6E3, + 32249 - 11904: 0xBD7B, + 32250 - 11904: 0xE6EA, + 32251 - 11904: 0xBD6F, + 32253 - 11904: 0x9963, + 32254 - 11904: 0x97AA, + 32259 - 11904: 0xE6E9, + 32263 - 11904: 0x94FB, + 32264 - 11904: 0xBFA2, + 32265 - 11904: 0xBFA7, + 32266 - 11904: 0xBF7E, + 32267 - 11904: 0xEAD8, + 32268 - 11904: 0xEACF, + 32269 - 11904: 0xEADB, + 32270 - 11904: 0xEAD3, + 32271 - 11904: 0xEAD9, + 32272 - 11904: 0xBFA8, + 32273 - 11904: 0xBFA1, + 32274 - 11904: 0xEACC, + 32275 - 11904: 0xEAD2, + 32276 - 11904: 0xEADC, + 32277 - 11904: 0xEAD5, + 32278 - 11904: 0xEADA, + 32279 - 11904: 0xEACE, + 32282 - 11904: 0xEAD6, + 32283 - 11904: 0xBFA3, + 32284 - 11904: 0xEAD4, + 32285 - 11904: 0xBFA6, + 32286 - 11904: 0xBFA5, + 32287 - 11904: 0xEAD0, + 32288 - 11904: 0xEAD1, + 32289 - 11904: 0xEACD, + 32290 - 11904: 0xEAD7, + 32291 - 11904: 0xBFA4, + 32292 - 11904: 0xEADE, + 32293 - 11904: 0xEADD, + 32295 - 11904: 0x8EBB, + 32297 - 11904: 0xEDDA, + 32298 - 11904: 0xEDD6, + 32299 - 11904: 0xC15F, + 32301 - 11904: 0xEDD0, + 32302 - 11904: 0xC159, + 32303 - 11904: 0xC169, + 32304 - 11904: 0xEDDC, + 32305 - 11904: 0xC161, + 32306 - 11904: 0xC15D, + 32307 - 11904: 0xEDD3, + 32308 - 11904: 0xC164, + 32309 - 11904: 0xC167, + 32310 - 11904: 0xEDDE, + 32311 - 11904: 0xC15C, + 32312 - 11904: 0xEDD5, + 32313 - 11904: 0xC165, + 32314 - 11904: 0xEDE0, + 32315 - 11904: 0xEDDD, + 32316 - 11904: 0xEDD1, + 32317 - 11904: 0xC160, + 32318 - 11904: 0xC15A, + 32319 - 11904: 0xC168, + 32320 - 11904: 0xEDD8, + 32321 - 11904: 0xC163, + 32322 - 11904: 0xEDD2, + 32323 - 11904: 0xC15E, + 32324 - 11904: 0xEDDF, + 32325 - 11904: 0xC162, + 32326 - 11904: 0xC15B, + 32327 - 11904: 0xEDD9, + 32328 - 11904: 0xC166, + 32329 - 11904: 0xEDD7, + 32332 - 11904: 0xEDDB, + 32336 - 11904: 0xF06E, + 32337 - 11904: 0xF074, + 32338 - 11904: 0xC2B9, + 32339 - 11904: 0xF077, + 32340 - 11904: 0xC2B4, + 32341 - 11904: 0xC2B5, + 32342 - 11904: 0xF06F, + 32343 - 11904: 0xF076, + 32344 - 11904: 0xF071, + 32345 - 11904: 0xC2BA, + 32346 - 11904: 0xC2B7, + 32347 - 11904: 0x8CDC, + 32348 - 11904: 0xF06D, + 32350 - 11904: 0xC2B6, + 32351 - 11904: 0xF073, + 32352 - 11904: 0xF075, + 32353 - 11904: 0xC2B8, + 32354 - 11904: 0xF072, + 32355 - 11904: 0xF070, + 32357 - 11904: 0x9876, + 32359 - 11904: 0x8EA1, + 32360 - 11904: 0xF2B8, + 32361 - 11904: 0xC3B7, + 32362 - 11904: 0xC3B8, + 32363 - 11904: 0xC3B4, + 32364 - 11904: 0x8CB4, + 32365 - 11904: 0xC3B5, + 32366 - 11904: 0x8EB7, + 32367 - 11904: 0xF2B4, + 32368 - 11904: 0xF2B2, + 32370 - 11904: 0xF2B6, + 32371 - 11904: 0xC3BA, + 32372 - 11904: 0xF2B7, + 32373 - 11904: 0xF2B0, + 32374 - 11904: 0xF2AF, + 32375 - 11904: 0xF2B3, + 32376 - 11904: 0xF2B1, + 32377 - 11904: 0xC3B6, + 32378 - 11904: 0xF2B5, + 32379 - 11904: 0xF4AC, + 32380 - 11904: 0xC47E, + 32381 - 11904: 0xC47D, + 32382 - 11904: 0xF4AD, + 32383 - 11904: 0x9DA6, + 32384 - 11904: 0xF4AF, + 32385 - 11904: 0xF4AE, + 32386 - 11904: 0xC4A1, + 32390 - 11904: 0xF5EB, + 32391 - 11904: 0xF5E8, + 32392 - 11904: 0xF5E9, + 32394 - 11904: 0xF5E7, + 32395 - 11904: 0xF5EA, + 32396 - 11904: 0xC4F2, + 32397 - 11904: 0xF5EC, + 32398 - 11904: 0x9EB0, + 32399 - 11904: 0xC4F1, + 32401 - 11904: 0xF742, + 32402 - 11904: 0x8EB8, + 32403 - 11904: 0xC5D5, + 32404 - 11904: 0xC5D7, + 32405 - 11904: 0xF7EE, + 32406 - 11904: 0xC5D6, + 32407 - 11904: 0xF8B9, + 32408 - 11904: 0xF940, + 32409 - 11904: 0xF942, + 32410 - 11904: 0xF8FE, + 32411 - 11904: 0xF941, + 32412 - 11904: 0xC66C, + 32415 - 11904: 0x9D70, + 32420 - 11904: 0x896E, + 32428 - 11904: 0x896F, + 32442 - 11904: 0x8970, + 32455 - 11904: 0x8971, + 32463 - 11904: 0x8972, + 32479 - 11904: 0x8973, + 32518 - 11904: 0x8974, + 32566 - 11904: 0xA6CE, + 32567 - 11904: 0x8975, + 32568 - 11904: 0xACFB, + 32569 - 11904: 0xD26F, + 32570 - 11904: 0xAFCA, + 32573 - 11904: 0xB2DA, + 32574 - 11904: 0xDAFC, + 32575 - 11904: 0xDAFD, + 32576 - 11904: 0x8EBC, + 32577 - 11904: 0x8EBD, + 32579 - 11904: 0xEADF, + 32580 - 11904: 0xC16A, + 32581 - 11904: 0xEDE1, + 32583 - 11904: 0x8EBE, + 32584 - 11904: 0xC2BB, + 32585 - 11904: 0x9DD1, + 32586 - 11904: 0xF2BA, + 32587 - 11904: 0xF2B9, + 32588 - 11904: 0xC4A2, + 32589 - 11904: 0xF5ED, + 32590 - 11904: 0x94FD, + 32591 - 11904: 0xF743, + 32592 - 11904: 0xC5F8, + 32593 - 11904: 0xCA49, + 32594 - 11904: 0x8BD7, + 32595 - 11904: 0x8BDA, + 32596 - 11904: 0xAAC9, + 32597 - 11904: 0xA875, + 32600 - 11904: 0xD04D, + 32603 - 11904: 0xD360, + 32604 - 11904: 0xD35B, + 32605 - 11904: 0xD35F, + 32606 - 11904: 0xD35D, + 32607 - 11904: 0xAFCB, + 32608 - 11904: 0xD35E, + 32609 - 11904: 0xD35C, + 32611 - 11904: 0xD6F1, + 32613 - 11904: 0xDAFE, + 32614 - 11904: 0xDB40, + 32615 - 11904: 0xDF69, + 32616 - 11904: 0xDF6A, + 32617 - 11904: 0xB86E, + 32618 - 11904: 0xB86F, + 32619 - 11904: 0xDF68, + 32620 - 11904: 0xDF6B, + 32621 - 11904: 0xDF67, + 32622 - 11904: 0xB86D, + 32624 - 11904: 0xBB40, + 32625 - 11904: 0xA0E2, + 32626 - 11904: 0xB870, + 32627 - 11904: 0xE37A, + 32629 - 11904: 0xBD7C, + 32630 - 11904: 0xE6F1, + 32631 - 11904: 0xBD7D, + 32632 - 11904: 0x9FE9, + 32633 - 11904: 0xBFA9, + 32634 - 11904: 0xEAE2, + 32635 - 11904: 0xEAE0, + 32636 - 11904: 0xEAE1, + 32637 - 11904: 0xEDE4, + 32638 - 11904: 0xEDE3, + 32639 - 11904: 0xEDE2, + 32643 - 11904: 0xF2BB, + 32645 - 11904: 0xC3B9, + 32646 - 11904: 0xF2BC, + 32647 - 11904: 0xF744, + 32648 - 11904: 0xC5F9, + 32649 - 11904: 0xF8BA, + 32650 - 11904: 0xA6CF, + 32651 - 11904: 0xAACB, + 32652 - 11904: 0xAACA, + 32653 - 11904: 0xD04F, + 32654 - 11904: 0xACFC, + 32655 - 11904: 0xFDA8, + 32657 - 11904: 0xD04E, + 32658 - 11904: 0xD362, + 32659 - 11904: 0x8AE7, + 32660 - 11904: 0xAFCC, + 32661 - 11904: 0xD6F2, + 32662 - 11904: 0xD361, + 32663 - 11904: 0x8EC2, + 32666 - 11904: 0xB2DC, + 32667 - 11904: 0xD6F5, + 32668 - 11904: 0xD6F3, + 32669 - 11904: 0xD6F4, + 32670 - 11904: 0xB2DB, + 32672 - 11904: 0xDB42, + 32673 - 11904: 0xDB43, + 32674 - 11904: 0xDB41, + 32675 - 11904: 0x8EC4, + 32676 - 11904: 0xB873, + 32677 - 11904: 0xDF6D, + 32678 - 11904: 0xDF6C, + 32679 - 11904: 0xDF6E, + 32680 - 11904: 0xB872, + 32681 - 11904: 0xB871, + 32684 - 11904: 0xE6F2, + 32685 - 11904: 0xE6F4, + 32686 - 11904: 0x9964, + 32687 - 11904: 0xBD7E, + 32688 - 11904: 0xE6F3, + 32689 - 11904: 0xEAE3, + 32690 - 11904: 0xBFAA, + 32691 - 11904: 0xF079, + 32692 - 11904: 0x9965, + 32693 - 11904: 0xF078, + 32694 - 11904: 0xC3BB, + 32695 - 11904: 0xF2BD, + 32696 - 11904: 0xC3BD, + 32697 - 11904: 0xC3BC, + 32698 - 11904: 0xF4B0, + 32699 - 11904: 0xF5EE, + 32700 - 11904: 0xC4F3, + 32701 - 11904: 0xA6D0, + 32702 - 11904: 0xD050, + 32703 - 11904: 0xACFD, + 32704 - 11904: 0xD365, + 32705 - 11904: 0xAFCE, + 32706 - 11904: 0xD364, + 32707 - 11904: 0xD363, + 32709 - 11904: 0xAFCD, + 32711 - 11904: 0xD6FB, + 32713 - 11904: 0xD6FD, + 32714 - 11904: 0xD6F6, + 32715 - 11904: 0xD6F7, + 32716 - 11904: 0xB2DD, + 32717 - 11904: 0xD6F8, + 32718 - 11904: 0xB2DE, + 32719 - 11904: 0xD6FC, + 32720 - 11904: 0xD6F9, + 32721 - 11904: 0xD6FA, + 32722 - 11904: 0xB2DF, + 32724 - 11904: 0xB5BE, + 32725 - 11904: 0xB5BF, + 32727 - 11904: 0xDB44, + 32731 - 11904: 0xDF6F, + 32732 - 11904: 0xDF70, + 32733 - 11904: 0x954E, + 32734 - 11904: 0xE37E, + 32735 - 11904: 0xBB43, + 32736 - 11904: 0xBB41, + 32737 - 11904: 0xBB42, + 32738 - 11904: 0xE37B, + 32739 - 11904: 0xE37C, + 32741 - 11904: 0xE37D, + 32742 - 11904: 0xE6F9, + 32743 - 11904: 0x98B3, + 32744 - 11904: 0xE6FA, + 32745 - 11904: 0xBDA1, + 32746 - 11904: 0xE6F7, + 32747 - 11904: 0xE6F6, + 32748 - 11904: 0xE6F8, + 32749 - 11904: 0xE6F5, + 32750 - 11904: 0xBFAD, + 32751 - 11904: 0xEAE4, + 32752 - 11904: 0xBFAB, + 32753 - 11904: 0xBFAC, + 32754 - 11904: 0xEDE6, + 32755 - 11904: 0xC16B, + 32756 - 11904: 0xEDE5, + 32757 - 11904: 0xEFA8, + 32759 - 11904: 0xF07A, + 32760 - 11904: 0xF07B, + 32761 - 11904: 0xC2BC, + 32762 - 11904: 0x8ECB, + 32763 - 11904: 0xC2BD, + 32764 - 11904: 0xC16C, + 32765 - 11904: 0xF2BE, + 32766 - 11904: 0xF2BF, + 32767 - 11904: 0xF4B1, + 32768 - 11904: 0xC4A3, + 32769 - 11904: 0xA6D1, + 32770 - 11904: 0x8BDF, + 32771 - 11904: 0xA6D2, + 32772 - 11904: 0xACFE, + 32773 - 11904: 0xAACC, + 32774 - 11904: 0xAFCF, + 32775 - 11904: 0xD051, + 32776 - 11904: 0x8ECE, + 32779 - 11904: 0xB5C0, + 32780 - 11904: 0xA6D3, + 32781 - 11904: 0xAD41, + 32782 - 11904: 0xD052, + 32783 - 11904: 0xD053, + 32784 - 11904: 0xAD40, + 32785 - 11904: 0xAD42, + 32786 - 11904: 0xA6D4, + 32788 - 11904: 0xD054, + 32789 - 11904: 0xAFD1, + 32790 - 11904: 0xD366, + 32791 - 11904: 0xAFD3, + 32792 - 11904: 0xAFD0, + 32793 - 11904: 0xAFD2, + 32795 - 11904: 0xD741, + 32796 - 11904: 0xB2E0, + 32797 - 11904: 0x8ECF, + 32798 - 11904: 0xD740, + 32799 - 11904: 0xD6FE, + 32800 - 11904: 0x9968, + 32801 - 11904: 0xDF71, + 32804 - 11904: 0xE3A1, + 32805 - 11904: 0x9969, + 32806 - 11904: 0xBDA2, + 32808 - 11904: 0xBFAE, + 32809 - 11904: 0xEAE6, + 32810 - 11904: 0xEAE5, + 32812 - 11904: 0xEDE7, + 32814 - 11904: 0x996B, + 32815 - 11904: 0x8ED1, + 32816 - 11904: 0xF5EF, + 32817 - 11904: 0x996C, + 32819 - 11904: 0xA6D5, + 32820 - 11904: 0xCB73, + 32821 - 11904: 0xCDAA, + 32822 - 11904: 0xAD43, + 32823 - 11904: 0xD055, + 32825 - 11904: 0xD368, + 32827 - 11904: 0x8ED4, + 32828 - 11904: 0x8ED5, + 32829 - 11904: 0xAFD4, + 32830 - 11904: 0xD367, + 32831 - 11904: 0xAFD5, + 32835 - 11904: 0xD743, + 32838 - 11904: 0xB2E2, + 32839 - 11904: 0xD742, + 32840 - 11904: 0xD744, + 32842 - 11904: 0xB2E1, + 32847 - 11904: 0xDB46, + 32848 - 11904: 0xDB47, + 32849 - 11904: 0xDB45, + 32850 - 11904: 0xB5C1, + 32852 - 11904: 0x996D, + 32854 - 11904: 0xB874, + 32856 - 11904: 0xB875, + 32858 - 11904: 0xBB45, + 32859 - 11904: 0xA0BE, + 32860 - 11904: 0xE3A3, + 32861 - 11904: 0xE3A2, + 32862 - 11904: 0xBB44, + 32865 - 11904: 0x8ED6, + 32866 - 11904: 0xA0BC, + 32867 - 11904: 0xA0B5, + 32868 - 11904: 0xE6FB, + 32870 - 11904: 0xA0B4, + 32871 - 11904: 0xE6FC, + 32876 - 11904: 0xEAE7, + 32879 - 11904: 0xC170, + 32880 - 11904: 0xC16F, + 32881 - 11904: 0xC16D, + 32882 - 11904: 0xC16E, + 32883 - 11904: 0xC171, + 32885 - 11904: 0xF07C, + 32886 - 11904: 0xC2BF, + 32887 - 11904: 0xC2BE, + 32888 - 11904: 0xF2C0, + 32889 - 11904: 0xF4B2, + 32893 - 11904: 0xC5A5, + 32894 - 11904: 0xC5A4, + 32895 - 11904: 0xA6D6, + 32896 - 11904: 0x8BE0, + 32898 - 11904: 0xD1FB, + 32900 - 11904: 0xB877, + 32901 - 11904: 0xB5C2, + 32902 - 11904: 0xB876, + 32903 - 11904: 0xBB46, + 32905 - 11904: 0xA6D7, + 32906 - 11904: 0xC9A9, + 32907 - 11904: 0xA6D8, + 32908 - 11904: 0xA6D9, + 32911 - 11904: 0xCDAB, + 32912 - 11904: 0xCB76, + 32914 - 11904: 0xCB77, + 32915 - 11904: 0xA877, + 32917 - 11904: 0xCB74, + 32918 - 11904: 0xA876, + 32920 - 11904: 0xA879, + 32921 - 11904: 0xCB75, + 32922 - 11904: 0xA87B, + 32923 - 11904: 0xA87A, + 32924 - 11904: 0xCB78, + 32925 - 11904: 0xA878, + 32927 - 11904: 0x89B5, + 32929 - 11904: 0xAAD1, + 32930 - 11904: 0xAACF, + 32931 - 11904: 0xCDAD, + 32933 - 11904: 0xAACE, + 32935 - 11904: 0x8EDD, + 32937 - 11904: 0xAAD3, + 32938 - 11904: 0xAAD5, + 32939 - 11904: 0xAAD2, + 32941 - 11904: 0xCDB0, + 32942 - 11904: 0xCDAC, + 32943 - 11904: 0xAAD6, + 32945 - 11904: 0xAAD0, + 32946 - 11904: 0xA87C, + 32948 - 11904: 0xAAD4, + 32949 - 11904: 0xCDAF, + 32950 - 11904: 0x9E5D, + 32951 - 11904: 0x9971, + 32952 - 11904: 0xCDAE, + 32954 - 11904: 0xAACD, + 32956 - 11904: 0x89AE, + 32957 - 11904: 0x9DE8, + 32962 - 11904: 0xD05B, + 32963 - 11904: 0xAD47, + 32964 - 11904: 0xAD48, + 32965 - 11904: 0xD05D, + 32966 - 11904: 0x9565, + 32967 - 11904: 0xD057, + 32968 - 11904: 0xD05A, + 32969 - 11904: 0xD063, + 32970 - 11904: 0xD061, + 32972 - 11904: 0xAD49, + 32973 - 11904: 0xD067, + 32974 - 11904: 0xAD4C, + 32975 - 11904: 0xD064, + 32976 - 11904: 0xD05C, + 32977 - 11904: 0xD059, + 32980 - 11904: 0xDB49, + 32981 - 11904: 0xD062, + 32982 - 11904: 0xAD44, + 32983 - 11904: 0xD065, + 32984 - 11904: 0xD056, + 32985 - 11904: 0xD05F, + 32986 - 11904: 0xAD46, + 32987 - 11904: 0xAD4B, + 32988 - 11904: 0xD060, + 32989 - 11904: 0xAD4F, + 32990 - 11904: 0xAD4D, + 32992 - 11904: 0xD058, + 32993 - 11904: 0xAD4A, + 32995 - 11904: 0xD05E, + 32996 - 11904: 0xAD4E, + 32997 - 11904: 0xAD45, + 32998 - 11904: 0xD066, + 33001 - 11904: 0x9972, + 33004 - 11904: 0x8B5C, + 33005 - 11904: 0xAFDA, + 33007 - 11904: 0xAFE3, + 33008 - 11904: 0xAFD8, + 33009 - 11904: 0xAFD6, + 33010 - 11904: 0xD36A, + 33011 - 11904: 0xAFDE, + 33012 - 11904: 0xAFDB, + 33013 - 11904: 0xD36C, + 33014 - 11904: 0x89B1, + 33016 - 11904: 0xAFDD, + 33017 - 11904: 0xD36B, + 33018 - 11904: 0xD369, + 33019 - 11904: 0xD36E, + 33020 - 11904: 0xAFE2, + 33021 - 11904: 0xAFE0, + 33022 - 11904: 0xDB48, + 33024 - 11904: 0xD36F, + 33025 - 11904: 0xD36D, + 33026 - 11904: 0xAFD7, + 33027 - 11904: 0xA0C0, + 33029 - 11904: 0xAFD9, + 33030 - 11904: 0xAFDC, + 33031 - 11904: 0x8EDF, + 33032 - 11904: 0xAFDF, + 33033 - 11904: 0x9566, + 33034 - 11904: 0xAFE1, + 33036 - 11904: 0x9974, + 33038 - 11904: 0x9976, + 33042 - 11904: 0x9977, + 33044 - 11904: 0x9979, + 33045 - 11904: 0xD74E, + 33046 - 11904: 0xB2E4, + 33047 - 11904: 0x9DDA, + 33048 - 11904: 0xD745, + 33049 - 11904: 0xD747, + 33050 - 11904: 0x8EE0, + 33051 - 11904: 0xD748, + 33053 - 11904: 0xD750, + 33054 - 11904: 0xD74C, + 33055 - 11904: 0xD74A, + 33057 - 11904: 0xD74D, + 33058 - 11904: 0xD751, + 33059 - 11904: 0xB2E5, + 33060 - 11904: 0xB2E9, + 33061 - 11904: 0xD746, + 33063 - 11904: 0xD74F, + 33065 - 11904: 0xB2E7, + 33066 - 11904: 0x935C, + 33067 - 11904: 0xB2E6, + 33068 - 11904: 0xD74B, + 33069 - 11904: 0xD749, + 33071 - 11904: 0xB2E3, + 33072 - 11904: 0xB2E8, + 33074 - 11904: 0x9DE6, + 33076 - 11904: 0x8B5F, + 33079 - 11904: 0x9563, + 33081 - 11904: 0xB5C8, + 33082 - 11904: 0xDB51, + 33085 - 11904: 0xDB4F, + 33086 - 11904: 0xB5CA, + 33090 - 11904: 0x9567, + 33091 - 11904: 0xDB4A, + 33092 - 11904: 0xDFA1, + 33094 - 11904: 0xB5C9, + 33095 - 11904: 0xDB4E, + 33096 - 11904: 0x9DE3, + 33098 - 11904: 0xDB4B, + 33099 - 11904: 0xB5C5, + 33100 - 11904: 0xB5CB, + 33101 - 11904: 0xDB50, + 33102 - 11904: 0xB5C7, + 33103 - 11904: 0xDB4D, + 33104 - 11904: 0xBB47, + 33105 - 11904: 0xB5C6, + 33106 - 11904: 0xDB4C, + 33107 - 11904: 0xB5CC, + 33108 - 11904: 0xB5C4, + 33109 - 11904: 0xB5C3, + 33110 - 11904: 0x997C, + 33113 - 11904: 0x997D, + 33114 - 11904: 0x997E, + 33115 - 11904: 0xDF77, + 33116 - 11904: 0xDF75, + 33118 - 11904: 0xDF7B, + 33120 - 11904: 0xDF73, + 33121 - 11904: 0xDFA2, + 33122 - 11904: 0xDF78, + 33124 - 11904: 0xDF72, + 33125 - 11904: 0xB87B, + 33126 - 11904: 0xB8A3, + 33127 - 11904: 0xDF7D, + 33129 - 11904: 0xDF76, + 33131 - 11904: 0xB87E, + 33132 - 11904: 0x8CFB, + 33133 - 11904: 0x8B5B, + 33134 - 11904: 0xB87C, + 33135 - 11904: 0xDF7E, + 33136 - 11904: 0xB879, + 33137 - 11904: 0xB878, + 33138 - 11904: 0xDF79, + 33139 - 11904: 0xB87D, + 33140 - 11904: 0xB5CD, + 33142 - 11904: 0xDF7C, + 33143 - 11904: 0xDF74, + 33144 - 11904: 0xB87A, + 33145 - 11904: 0xB8A1, + 33146 - 11904: 0xB8A2, + 33148 - 11904: 0x99A3, + 33151 - 11904: 0xBB4C, + 33152 - 11904: 0xBB48, + 33154 - 11904: 0xBB4D, + 33155 - 11904: 0xE3A6, + 33156 - 11904: 0x99A4, + 33158 - 11904: 0xE3A5, + 33159 - 11904: 0xE3A7, + 33160 - 11904: 0xBB4A, + 33161 - 11904: 0xE3A4, + 33162 - 11904: 0xBB4B, + 33163 - 11904: 0xE3AA, + 33164 - 11904: 0xE3A9, + 33165 - 11904: 0xE3A8, + 33167 - 11904: 0xBB49, + 33171 - 11904: 0x99A6, + 33173 - 11904: 0xE741, + 33175 - 11904: 0xE744, + 33176 - 11904: 0xBDA8, + 33177 - 11904: 0xE743, + 33178 - 11904: 0xBDA7, + 33179 - 11904: 0xBDA3, + 33180 - 11904: 0xBDA4, + 33181 - 11904: 0xBDA5, + 33182 - 11904: 0xE740, + 33183 - 11904: 0xE6FE, + 33184 - 11904: 0xBDA6, + 33186 - 11904: 0xE742, + 33187 - 11904: 0xE6FD, + 33189 - 11904: 0x99A8, + 33190 - 11904: 0xEAE9, + 33191 - 11904: 0xEAF3, + 33192 - 11904: 0xBFB1, + 33193 - 11904: 0xBFB0, + 33194 - 11904: 0x8ABE, + 33195 - 11904: 0xEAED, + 33196 - 11904: 0xEAEF, + 33198 - 11904: 0xEAEA, + 33200 - 11904: 0xEAEE, + 33201 - 11904: 0xEAE8, + 33202 - 11904: 0xEAF1, + 33203 - 11904: 0xBFAF, + 33204 - 11904: 0xEAF0, + 33205 - 11904: 0xEAEC, + 33206 - 11904: 0x9E61, + 33207 - 11904: 0xEAF2, + 33209 - 11904: 0xEAEB, + 33210 - 11904: 0xC174, + 33211 - 11904: 0xEDE8, + 33212 - 11904: 0xEDEE, + 33213 - 11904: 0xC178, + 33214 - 11904: 0xC17A, + 33215 - 11904: 0xC177, + 33216 - 11904: 0xC176, + 33217 - 11904: 0x99AA, + 33218 - 11904: 0xC175, + 33219 - 11904: 0xC173, + 33220 - 11904: 0xEDE9, + 33221 - 11904: 0xEDEC, + 33222 - 11904: 0xC172, + 33223 - 11904: 0xEDED, + 33224 - 11904: 0xA0C8, + 33225 - 11904: 0xC179, + 33226 - 11904: 0xEDEB, + 33228 - 11904: 0xEDEA, + 33229 - 11904: 0xC2C0, + 33231 - 11904: 0xC2C1, + 33232 - 11904: 0xF0A1, + 33233 - 11904: 0xF07D, + 33234 - 11904: 0xF07E, + 33237 - 11904: 0xF2C2, + 33239 - 11904: 0xF2C1, + 33240 - 11904: 0xC3BE, + 33241 - 11904: 0xF4B4, + 33242 - 11904: 0xC4A4, + 33243 - 11904: 0xF4B3, + 33245 - 11904: 0xF5F0, + 33246 - 11904: 0xF745, + 33247 - 11904: 0xC5A6, + 33248 - 11904: 0xF943, + 33249 - 11904: 0xF944, + 33250 - 11904: 0xC5D8, + 33251 - 11904: 0xA6DA, + 33252 - 11904: 0x99AB, + 33253 - 11904: 0xAAD7, + 33254 - 11904: 0xDB52, + 33255 - 11904: 0xBB4E, + 33256 - 11904: 0xC17B, + 33257 - 11904: 0xEDEF, + 33258 - 11904: 0xA6DB, + 33260 - 11904: 0xAFE5, + 33261 - 11904: 0xAFE4, + 33262 - 11904: 0xDB53, + 33263 - 11904: 0xFEC4, + 33266 - 11904: 0xEAF4, + 33267 - 11904: 0xA6DC, + 33268 - 11904: 0xAD50, + 33270 - 11904: 0x98C2, + 33271 - 11904: 0xDB54, + 33272 - 11904: 0xDB55, + 33273 - 11904: 0xDB56, + 33274 - 11904: 0xBB4F, + 33275 - 11904: 0xBFB2, + 33276 - 11904: 0xA6DD, + 33278 - 11904: 0xAAD8, + 33279 - 11904: 0xD068, + 33280 - 11904: 0xAFE6, + 33281 - 11904: 0xD370, + 33282 - 11904: 0xB2EA, + 33284 - 11904: 0xDB57, + 33285 - 11904: 0xB8A4, + 33287 - 11904: 0xBB50, + 33288 - 11904: 0xBFB3, + 33289 - 11904: 0xC17C, + 33290 - 11904: 0xC2C2, + 33291 - 11904: 0xF4B5, + 33292 - 11904: 0xA6DE, + 33293 - 11904: 0xAAD9, + 33296 - 11904: 0xAFE7, + 33297 - 11904: 0xD752, + 33298 - 11904: 0xB5CE, + 33300 - 11904: 0xBB51, + 33301 - 11904: 0xE3AB, + 33302 - 11904: 0xE745, + 33304 - 11904: 0x8EE8, + 33306 - 11904: 0xA0BA, + 33307 - 11904: 0xA6DF, + 33308 - 11904: 0xB5CF, + 33309 - 11904: 0xDFA3, + 33310 - 11904: 0xBB52, + 33311 - 11904: 0xA6E0, + 33312 - 11904: 0xCDB1, + 33313 - 11904: 0xD069, + 33314 - 11904: 0xAD51, + 33317 - 11904: 0xD372, + 33318 - 11904: 0xFD77, + 33320 - 11904: 0xAFEA, + 33321 - 11904: 0x8EEE, + 33322 - 11904: 0xAFE8, + 33323 - 11904: 0xAFE9, + 33324 - 11904: 0xAFEB, + 33325 - 11904: 0x9EBF, + 33327 - 11904: 0xD371, + 33330 - 11904: 0xD757, + 33331 - 11904: 0xD754, + 33332 - 11904: 0xD756, + 33333 - 11904: 0xB2EB, + 33334 - 11904: 0xB2ED, + 33335 - 11904: 0xB2EC, + 33336 - 11904: 0xD753, + 33337 - 11904: 0xB2EE, + 33338 - 11904: 0xD755, + 33340 - 11904: 0xDB58, + 33341 - 11904: 0xDB59, + 33342 - 11904: 0x89C2, + 33343 - 11904: 0xDB5A, + 33344 - 11904: 0xDFA6, + 33346 - 11904: 0xDFA7, + 33348 - 11904: 0xDFA5, + 33349 - 11904: 0xDFA8, + 33351 - 11904: 0xB8A5, + 33353 - 11904: 0xDFA4, + 33355 - 11904: 0xBB53, + 33358 - 11904: 0xE74A, + 33359 - 11904: 0xE746, + 33360 - 11904: 0xE749, + 33361 - 11904: 0xE74B, + 33362 - 11904: 0xE748, + 33363 - 11904: 0xE747, + 33364 - 11904: 0x99AC, + 33365 - 11904: 0xEAF5, + 33366 - 11904: 0xEAF6, + 33367 - 11904: 0xEAF7, + 33368 - 11904: 0xBFB4, + 33369 - 11904: 0xBFB5, + 33370 - 11904: 0xEDF1, + 33371 - 11904: 0xEDF0, + 33372 - 11904: 0xEDF2, + 33374 - 11904: 0xF0A3, + 33375 - 11904: 0xF0A2, + 33377 - 11904: 0xF2C4, + 33378 - 11904: 0x956B, + 33379 - 11904: 0xF2C5, + 33380 - 11904: 0xF2C3, + 33381 - 11904: 0x956C, + 33382 - 11904: 0xC4A5, + 33384 - 11904: 0xF4B6, + 33385 - 11904: 0xF4B7, + 33387 - 11904: 0xF746, + 33388 - 11904: 0xF7EF, + 33389 - 11904: 0xF8BB, + 33390 - 11904: 0xA6E1, + 33391 - 11904: 0xA87D, + 33393 - 11904: 0xC17D, + 33394 - 11904: 0xA6E2, + 33396 - 11904: 0xD758, + 33397 - 11904: 0xDB5B, + 33398 - 11904: 0x99AF, + 33399 - 11904: 0xC641, + 33400 - 11904: 0xCA4A, + 33401 - 11904: 0x994A, + 33402 - 11904: 0x8976, + 33403 - 11904: 0x8F48, + 33404 - 11904: 0xCA4B, + 33405 - 11904: 0xCA4D, + 33406 - 11904: 0xA6E3, + 33407 - 11904: 0xCA4E, + 33408 - 11904: 0xCA4C, + 33411 - 11904: 0xCBA2, + 33412 - 11904: 0xCBA3, + 33413 - 11904: 0xCB7B, + 33415 - 11904: 0xFBEE, + 33418 - 11904: 0xCBA1, + 33419 - 11904: 0xA8A1, + 33421 - 11904: 0xA8A2, + 33422 - 11904: 0xCB7C, + 33423 - 11904: 0xCB7A, + 33424 - 11904: 0xCB79, + 33425 - 11904: 0xCB7D, + 33426 - 11904: 0xA87E, + 33427 - 11904: 0xCB7E, + 33428 - 11904: 0xD06A, + 33432 - 11904: 0xCDB6, + 33433 - 11904: 0xAADC, + 33434 - 11904: 0xCDB5, + 33435 - 11904: 0xCDB7, + 33437 - 11904: 0xAADB, + 33438 - 11904: 0xCDBC, + 33439 - 11904: 0xAADF, + 33440 - 11904: 0xCDB2, + 33441 - 11904: 0xCDC0, + 33442 - 11904: 0xCDC6, + 33443 - 11904: 0xAAE6, + 33444 - 11904: 0xCDC3, + 33445 - 11904: 0xAAE3, + 33446 - 11904: 0x99AE, + 33447 - 11904: 0xCDB9, + 33448 - 11904: 0xCDBF, + 33449 - 11904: 0xCDC1, + 33450 - 11904: 0x8EFB, + 33451 - 11904: 0xCDB4, + 33452 - 11904: 0xAAE2, + 33453 - 11904: 0xAADD, + 33454 - 11904: 0xCDBA, + 33455 - 11904: 0xAAE4, + 33456 - 11904: 0xAAE7, + 33457 - 11904: 0xAAE1, + 33459 - 11904: 0xAADA, + 33460 - 11904: 0xCDBE, + 33461 - 11904: 0xCDB8, + 33462 - 11904: 0xCDC5, + 33463 - 11904: 0xAAE9, + 33464 - 11904: 0xAAE5, + 33465 - 11904: 0xAAE0, + 33466 - 11904: 0xCDBD, + 33467 - 11904: 0xAFEC, + 33468 - 11904: 0xCDBB, + 33469 - 11904: 0xAADE, + 33470 - 11904: 0xAAE8, + 33471 - 11904: 0x8CD0, + 33472 - 11904: 0xCDB3, + 33474 - 11904: 0xCDC2, + 33475 - 11904: 0xCDC4, + 33476 - 11904: 0x8B52, + 33482 - 11904: 0x99B0, + 33487 - 11904: 0x8977, + 33488 - 11904: 0x8F41, + 33489 - 11904: 0xAD62, + 33490 - 11904: 0xAD5C, + 33491 - 11904: 0xAD64, + 33492 - 11904: 0xAD61, + 33493 - 11904: 0xD071, + 33494 - 11904: 0xD074, + 33495 - 11904: 0xAD5D, + 33496 - 11904: 0x99B1, + 33497 - 11904: 0xD06B, + 33499 - 11904: 0xAD56, + 33500 - 11904: 0xAD60, + 33502 - 11904: 0xAD63, + 33503 - 11904: 0xAD65, + 33504 - 11904: 0xD0A2, + 33505 - 11904: 0xD077, + 33506 - 11904: 0x8F49, + 33507 - 11904: 0xAD55, + 33508 - 11904: 0xD0A1, + 33509 - 11904: 0xAD59, + 33510 - 11904: 0xAD57, + 33511 - 11904: 0xAD52, + 33512 - 11904: 0xD06F, + 33514 - 11904: 0xD07E, + 33515 - 11904: 0xD073, + 33516 - 11904: 0xD076, + 33517 - 11904: 0xD0A5, + 33518 - 11904: 0xFA4D, + 33519 - 11904: 0xAD66, + 33520 - 11904: 0xD07D, + 33521 - 11904: 0xAD5E, + 33522 - 11904: 0xD078, + 33523 - 11904: 0xD0A4, + 33524 - 11904: 0xD075, + 33525 - 11904: 0xD079, + 33526 - 11904: 0xD07C, + 33527 - 11904: 0x9DE4, + 33528 - 11904: 0x8CB5, + 33529 - 11904: 0xD06D, + 33530 - 11904: 0xD0A3, + 33531 - 11904: 0xD07B, + 33532 - 11904: 0xFBE9, + 33533 - 11904: 0x9B54, + 33534 - 11904: 0xD06C, + 33535 - 11904: 0x99B2, + 33536 - 11904: 0xD070, + 33537 - 11904: 0xAD5F, + 33538 - 11904: 0xAD5A, + 33539 - 11904: 0xAD53, + 33540 - 11904: 0xAD58, + 33541 - 11904: 0xAD54, + 33542 - 11904: 0xAD67, + 33543 - 11904: 0xD06E, + 33544 - 11904: 0xD3A5, + 33545 - 11904: 0xAD5B, + 33547 - 11904: 0x9E68, + 33548 - 11904: 0xD07A, + 33549 - 11904: 0xCE41, + 33558 - 11904: 0xD3A8, + 33559 - 11904: 0xAFFA, + 33560 - 11904: 0x8F4A, + 33561 - 11904: 0xD376, + 33562 - 11904: 0x8F42, + 33563 - 11904: 0xD3A3, + 33564 - 11904: 0xD37D, + 33565 - 11904: 0x8F51, + 33566 - 11904: 0xD3B2, + 33568 - 11904: 0xD3AA, + 33570 - 11904: 0xD37E, + 33572 - 11904: 0xD3A9, + 33573 - 11904: 0xD378, + 33574 - 11904: 0xD37C, + 33575 - 11904: 0xD3B5, + 33576 - 11904: 0xAFFD, + 33577 - 11904: 0xD3AD, + 33578 - 11904: 0xD3A4, + 33579 - 11904: 0xAFED, + 33580 - 11904: 0xD3B3, + 33581 - 11904: 0xD374, + 33583 - 11904: 0xD3AC, + 33585 - 11904: 0xAFFC, + 33586 - 11904: 0xAFF7, + 33587 - 11904: 0xD373, + 33588 - 11904: 0xAFF5, + 33589 - 11904: 0xAFF4, + 33590 - 11904: 0xAFF9, + 33591 - 11904: 0xD3AB, + 33592 - 11904: 0xAFF1, + 33593 - 11904: 0xAFF8, + 33594 - 11904: 0xD072, + 33595 - 11904: 0xDB5C, + 33596 - 11904: 0xD3A6, + 33597 - 11904: 0x9846, + 33599 - 11904: 0xD37A, + 33600 - 11904: 0xAFFB, + 33601 - 11904: 0xD37B, + 33602 - 11904: 0xD3A1, + 33603 - 11904: 0xAFFE, + 33604 - 11904: 0xD375, + 33605 - 11904: 0xD3AF, + 33607 - 11904: 0xD3AE, + 33608 - 11904: 0xD3B6, + 33609 - 11904: 0xAFF3, + 33610 - 11904: 0xAFF0, + 33611 - 11904: 0xD3B4, + 33612 - 11904: 0xD3B0, + 33613 - 11904: 0xD3A7, + 33614 - 11904: 0xD3A2, + 33615 - 11904: 0xAFF6, + 33616 - 11904: 0xAFF2, + 33617 - 11904: 0xD377, + 33618 - 11904: 0xAFEE, + 33619 - 11904: 0xD3B1, + 33620 - 11904: 0xAFEF, + 33622 - 11904: 0xD379, + 33623 - 11904: 0x99B4, + 33634 - 11904: 0x8EF5, + 33635 - 11904: 0xFD55, + 33638 - 11904: 0x9CCD, + 33647 - 11904: 0x8978, + 33651 - 11904: 0xD75E, + 33652 - 11904: 0xD760, + 33653 - 11904: 0xD765, + 33654 - 11904: 0xD779, + 33655 - 11904: 0xB2FC, + 33656 - 11904: 0xB2F2, + 33658 - 11904: 0xD75D, + 33659 - 11904: 0xB2FD, + 33660 - 11904: 0xB2FE, + 33661 - 11904: 0xD768, + 33662 - 11904: 0xD76F, + 33663 - 11904: 0xD775, + 33665 - 11904: 0xD762, + 33667 - 11904: 0xD769, + 33669 - 11904: 0x8F53, + 33670 - 11904: 0xB340, + 33671 - 11904: 0xD777, + 33672 - 11904: 0xD772, + 33673 - 11904: 0xB2FA, + 33674 - 11904: 0xB2F8, + 33675 - 11904: 0xD76E, + 33676 - 11904: 0xD76A, + 33677 - 11904: 0xD75C, + 33678 - 11904: 0xB2EF, + 33679 - 11904: 0xD761, + 33680 - 11904: 0xD759, + 33681 - 11904: 0x8F6F, + 33682 - 11904: 0xB2F7, + 33683 - 11904: 0xB2F9, + 33684 - 11904: 0xD766, + 33685 - 11904: 0xD763, + 33686 - 11904: 0xB2F4, + 33687 - 11904: 0xD773, + 33688 - 11904: 0xB2F1, + 33689 - 11904: 0xD764, + 33690 - 11904: 0xD77A, + 33691 - 11904: 0xD76C, + 33692 - 11904: 0x8E63, + 33693 - 11904: 0xD76B, + 33694 - 11904: 0xB2F0, + 33696 - 11904: 0xB2FB, + 33698 - 11904: 0xB2F3, + 33699 - 11904: 0xD75A, + 33700 - 11904: 0xD75F, + 33701 - 11904: 0xD770, + 33702 - 11904: 0xD776, + 33703 - 11904: 0xB341, + 33704 - 11904: 0xD75B, + 33705 - 11904: 0xD767, + 33706 - 11904: 0xD76D, + 33707 - 11904: 0xB2F6, + 33708 - 11904: 0x8F56, + 33710 - 11904: 0xD778, + 33711 - 11904: 0xD771, + 33712 - 11904: 0xD774, + 33721 - 11904: 0xFE76, + 33725 - 11904: 0xB2F5, + 33726 - 11904: 0x9FC6, + 33727 - 11904: 0xDB6C, + 33728 - 11904: 0xDB60, + 33729 - 11904: 0xB5D7, + 33730 - 11904: 0xDB7D, + 33731 - 11904: 0xDBA7, + 33732 - 11904: 0xDBAA, + 33733 - 11904: 0xB5D5, + 33734 - 11904: 0xDB68, + 33735 - 11904: 0xDBA3, + 33736 - 11904: 0xDB69, + 33737 - 11904: 0xDB77, + 33738 - 11904: 0xB5E2, + 33739 - 11904: 0xDB73, + 33740 - 11904: 0xB5DF, + 33741 - 11904: 0xFAAC, + 33742 - 11904: 0xDB74, + 33743 - 11904: 0xDB5D, + 33745 - 11904: 0xDBA4, + 33747 - 11904: 0x8F58, + 33748 - 11904: 0xB5E8, + 33749 - 11904: 0xDBA1, + 33750 - 11904: 0xDB75, + 33751 - 11904: 0xDBAC, + 33752 - 11904: 0xDB70, + 33753 - 11904: 0xDFC8, + 33755 - 11904: 0xDBAF, + 33756 - 11904: 0xB5E6, + 33757 - 11904: 0xDB6E, + 33758 - 11904: 0xDB7A, + 33759 - 11904: 0xB5E9, + 33760 - 11904: 0xB5D4, + 33761 - 11904: 0xDB72, + 33762 - 11904: 0xDBAD, + 33763 - 11904: 0xDB6B, + 33764 - 11904: 0xDB64, + 33765 - 11904: 0xDB6F, + 33767 - 11904: 0xDB63, + 33768 - 11904: 0xDB61, + 33769 - 11904: 0xB5D0, + 33770 - 11904: 0xDBA5, + 33771 - 11904: 0xDB6A, + 33772 - 11904: 0xDBA8, + 33773 - 11904: 0x9848, + 33774 - 11904: 0xDBA9, + 33775 - 11904: 0xB5D8, + 33776 - 11904: 0xB5DD, + 33777 - 11904: 0xB5D9, + 33778 - 11904: 0xB5E1, + 33779 - 11904: 0xDB7E, + 33780 - 11904: 0xB5DA, + 33781 - 11904: 0xDB76, + 33782 - 11904: 0xDB66, + 33784 - 11904: 0xB5D2, + 33785 - 11904: 0xDB5E, + 33786 - 11904: 0xDBA2, + 33787 - 11904: 0xDBAB, + 33788 - 11904: 0xDB65, + 33789 - 11904: 0xB5E0, + 33790 - 11904: 0xDBB0, + 33791 - 11904: 0xDB71, + 33793 - 11904: 0xDB6D, + 33795 - 11904: 0xB5D1, + 33796 - 11904: 0xB5E5, + 33797 - 11904: 0x99B7, + 33798 - 11904: 0xDB7C, + 33799 - 11904: 0xB5E7, + 33801 - 11904: 0xDB78, + 33802 - 11904: 0xB5DC, + 33803 - 11904: 0xB5D6, + 33804 - 11904: 0xB5DE, + 33805 - 11904: 0xB5D3, + 33806 - 11904: 0xB5E4, + 33807 - 11904: 0xDB79, + 33808 - 11904: 0xDB67, + 33809 - 11904: 0xDB7B, + 33810 - 11904: 0xDB62, + 33811 - 11904: 0xDBA6, + 33812 - 11904: 0x9665, + 33814 - 11904: 0xFA6C, + 33816 - 11904: 0x9DE7, + 33819 - 11904: 0xDBAE, + 33820 - 11904: 0x9E62, + 33824 - 11904: 0x96CC, + 33825 - 11904: 0x8E67, + 33827 - 11904: 0xDB5F, + 33828 - 11904: 0xFC75, + 33830 - 11904: 0x987E, + 33833 - 11904: 0xDFC7, + 33835 - 11904: 0xDFDD, + 33836 - 11904: 0xB855, + 33837 - 11904: 0xDFCC, + 33838 - 11904: 0xFDB9, + 33839 - 11904: 0xDFCA, + 33840 - 11904: 0xDFB5, + 33841 - 11904: 0xB8A9, + 33842 - 11904: 0xDFC5, + 33843 - 11904: 0xDFD9, + 33844 - 11904: 0xDFC1, + 33845 - 11904: 0xB8B1, + 33846 - 11904: 0xDFD8, + 33847 - 11904: 0xDFBF, + 33848 - 11904: 0xB5E3, + 33849 - 11904: 0xDFCF, + 33850 - 11904: 0xDFC0, + 33851 - 11904: 0xDFD6, + 33852 - 11904: 0xB8B0, + 33853 - 11904: 0xB8A8, + 33854 - 11904: 0x97FC, + 33855 - 11904: 0xDFAA, + 33856 - 11904: 0xDFB2, + 33858 - 11904: 0xDFCB, + 33859 - 11904: 0xDFC3, + 33860 - 11904: 0xDFDC, + 33861 - 11904: 0xDFC6, + 33862 - 11904: 0xB8B6, + 33863 - 11904: 0xDFD7, + 33864 - 11904: 0x98F9, + 33865 - 11904: 0xB8AD, + 33866 - 11904: 0x8F66, + 33867 - 11904: 0xDFC9, + 33868 - 11904: 0xDFD1, + 33869 - 11904: 0xDFB6, + 33870 - 11904: 0xDFD0, + 33872 - 11904: 0xDFE1, + 33873 - 11904: 0xDFB1, + 33874 - 11904: 0xDFD2, + 33875 - 11904: 0x956E, + 33876 - 11904: 0xDFDF, + 33877 - 11904: 0x9245, + 33878 - 11904: 0xDFAB, + 33879 - 11904: 0xB5DB, + 33880 - 11904: 0x8F60, + 33881 - 11904: 0xDFB9, + 33882 - 11904: 0xDFB8, + 33883 - 11904: 0xB8AF, + 33884 - 11904: 0x9ED1, + 33885 - 11904: 0xDFBC, + 33886 - 11904: 0xDFBE, + 33887 - 11904: 0xDFCD, + 33888 - 11904: 0xDFDE, + 33889 - 11904: 0xB8B2, + 33890 - 11904: 0xFECD, + 33891 - 11904: 0xB8B3, + 33892 - 11904: 0x99B9, + 33893 - 11904: 0xDFB0, + 33894 - 11904: 0xB8AB, + 33895 - 11904: 0xDFB4, + 33896 - 11904: 0xDFDA, + 33897 - 11904: 0xB8B4, + 33899 - 11904: 0xB8AC, + 33900 - 11904: 0xB8AE, + 33901 - 11904: 0xB8B5, + 33902 - 11904: 0xDFE0, + 33903 - 11904: 0xDFD3, + 33904 - 11904: 0xDFCE, + 33905 - 11904: 0x8F62, + 33906 - 11904: 0x974C, + 33907 - 11904: 0xDFBB, + 33908 - 11904: 0xDFBA, + 33909 - 11904: 0xB8AA, + 33910 - 11904: 0xDFAC, + 33911 - 11904: 0xB8A7, + 33912 - 11904: 0xDFC4, + 33913 - 11904: 0xDFAD, + 33914 - 11904: 0xDFC2, + 33917 - 11904: 0xDFB7, + 33918 - 11904: 0xDFDB, + 33919 - 11904: 0x91C7, + 33920 - 11904: 0x955F, + 33922 - 11904: 0xB8A6, + 33924 - 11904: 0x87AB, + 33926 - 11904: 0xDFB3, + 33928 - 11904: 0x99BB, + 33933 - 11904: 0xDFAF, + 33934 - 11904: 0xDFD5, + 33935 - 11904: 0xDFAE, + 33936 - 11904: 0xBB60, + 33937 - 11904: 0xE3D3, + 33938 - 11904: 0x8E6D, + 33939 - 11904: 0x8F71, + 33940 - 11904: 0xE3C2, + 33942 - 11904: 0x94CB, + 33943 - 11904: 0xE3AC, + 33944 - 11904: 0xE3CA, + 33945 - 11904: 0xBB58, + 33946 - 11904: 0xE3BB, + 33947 - 11904: 0xE3C5, + 33948 - 11904: 0xBB5B, + 33949 - 11904: 0xE3BE, + 33950 - 11904: 0xBB59, + 33951 - 11904: 0xE3AF, + 33952 - 11904: 0xE3CD, + 33953 - 11904: 0xE3AE, + 33954 - 11904: 0xE3C1, + 33955 - 11904: 0x95B1, + 33956 - 11904: 0xE3AD, + 33959 - 11904: 0xE3BF, + 33960 - 11904: 0xE3C8, + 33961 - 11904: 0xE3C6, + 33962 - 11904: 0xE3BA, + 33963 - 11904: 0xE3B5, + 33964 - 11904: 0xE3B3, + 33965 - 11904: 0x9AF2, + 33966 - 11904: 0xE3B4, + 33967 - 11904: 0xE3C7, + 33968 - 11904: 0xE3D2, + 33969 - 11904: 0xE3BC, + 33970 - 11904: 0xBB5A, + 33972 - 11904: 0xE3B7, + 33974 - 11904: 0xE3CB, + 33976 - 11904: 0xBB5D, + 33977 - 11904: 0xE3B6, + 33978 - 11904: 0xE3B0, + 33979 - 11904: 0xE3C0, + 33980 - 11904: 0xBB61, + 33981 - 11904: 0x96C3, + 33982 - 11904: 0x99BD, + 33983 - 11904: 0xBB55, + 33984 - 11904: 0xBB5E, + 33985 - 11904: 0xE3B8, + 33986 - 11904: 0xE3B2, + 33988 - 11904: 0xBB57, + 33989 - 11904: 0xDFD4, + 33990 - 11904: 0xBB56, + 33991 - 11904: 0xE3C3, + 33993 - 11904: 0xBB54, + 33994 - 11904: 0xBB63, + 33995 - 11904: 0xBB5C, + 33996 - 11904: 0xE3C4, + 33997 - 11904: 0xE3B9, + 33998 - 11904: 0xE3B1, + 33999 - 11904: 0xE3CC, + 34000 - 11904: 0xE3BD, + 34001 - 11904: 0xBB62, + 34002 - 11904: 0xE3D0, + 34003 - 11904: 0xBB5F, + 34004 - 11904: 0xE3CF, + 34006 - 11904: 0xE3C9, + 34007 - 11904: 0xE3CE, + 34010 - 11904: 0xA0CF, + 34011 - 11904: 0xE3D1, + 34014 - 11904: 0x8F6D, + 34017 - 11904: 0x99BE, + 34018 - 11904: 0x8EF4, + 34020 - 11904: 0x8F72, + 34021 - 11904: 0x95E4, + 34023 - 11904: 0xE773, + 34024 - 11904: 0xE774, + 34025 - 11904: 0xE767, + 34026 - 11904: 0xE766, + 34027 - 11904: 0xE762, + 34028 - 11904: 0xBDB4, + 34030 - 11904: 0xBDAC, + 34031 - 11904: 0xE776, + 34032 - 11904: 0xE775, + 34033 - 11904: 0xDFA9, + 34034 - 11904: 0xE75F, + 34035 - 11904: 0xE763, + 34036 - 11904: 0xE75D, + 34038 - 11904: 0xE770, + 34039 - 11904: 0xE761, + 34040 - 11904: 0x99BF, + 34041 - 11904: 0xE777, + 34042 - 11904: 0xE75A, + 34043 - 11904: 0xE758, + 34044 - 11904: 0xE764, + 34045 - 11904: 0xE76E, + 34046 - 11904: 0xE769, + 34047 - 11904: 0xBDB6, + 34048 - 11904: 0xE74F, + 34050 - 11904: 0xE76D, + 34051 - 11904: 0x9244, + 34052 - 11904: 0x87D7, + 34053 - 11904: 0xFBA5, + 34054 - 11904: 0xBDB7, + 34055 - 11904: 0xDFBD, + 34056 - 11904: 0xE75B, + 34057 - 11904: 0xE752, + 34058 - 11904: 0xE755, + 34059 - 11904: 0xE77B, + 34060 - 11904: 0xE75C, + 34061 - 11904: 0xE753, + 34062 - 11904: 0xE751, + 34063 - 11904: 0xE74E, + 34064 - 11904: 0x99C0, + 34065 - 11904: 0xBDB0, + 34066 - 11904: 0xE765, + 34067 - 11904: 0xBDAF, + 34068 - 11904: 0xBDB3, + 34069 - 11904: 0xE760, + 34070 - 11904: 0xE768, + 34071 - 11904: 0xBDA9, + 34072 - 11904: 0xE778, + 34073 - 11904: 0xE77C, + 34074 - 11904: 0xBDAB, + 34076 - 11904: 0xE757, + 34077 - 11904: 0xE76B, + 34078 - 11904: 0xE76F, + 34079 - 11904: 0xE754, + 34080 - 11904: 0xE779, + 34081 - 11904: 0xBDB2, + 34083 - 11904: 0xBDB1, + 34084 - 11904: 0xE74C, + 34085 - 11904: 0xBDB5, + 34086 - 11904: 0xE772, + 34087 - 11904: 0xE756, + 34088 - 11904: 0xE76A, + 34089 - 11904: 0xE750, + 34090 - 11904: 0xE75E, + 34091 - 11904: 0xE759, + 34092 - 11904: 0xBDAD, + 34093 - 11904: 0xBDAE, + 34094 - 11904: 0xE76C, + 34095 - 11904: 0xE77D, + 34096 - 11904: 0xE77A, + 34097 - 11904: 0xE771, + 34099 - 11904: 0xFDB4, + 34100 - 11904: 0x8F77, + 34104 - 11904: 0x99C1, + 34107 - 11904: 0xE74D, + 34109 - 11904: 0xBDAA, + 34110 - 11904: 0xEB49, + 34112 - 11904: 0xEB40, + 34113 - 11904: 0xEB43, + 34114 - 11904: 0xFAB9, + 34115 - 11904: 0xBFBB, + 34116 - 11904: 0xEB45, + 34117 - 11904: 0xEAF9, + 34118 - 11904: 0xEB41, + 34119 - 11904: 0xEB47, + 34120 - 11904: 0xBFB8, + 34121 - 11904: 0xBFBC, + 34122 - 11904: 0xBFB6, + 34123 - 11904: 0x8F40, + 34124 - 11904: 0xFA44, + 34125 - 11904: 0xEAFB, + 34126 - 11904: 0xEB4C, + 34129 - 11904: 0xEB46, + 34130 - 11904: 0x99C2, + 34131 - 11904: 0xEAFC, + 34132 - 11904: 0xEB55, + 34133 - 11904: 0xEB4F, + 34134 - 11904: 0xEAF8, + 34135 - 11904: 0xEE46, + 34136 - 11904: 0xEAFE, + 34137 - 11904: 0xBFB7, + 34138 - 11904: 0x8F5C, + 34139 - 11904: 0xEB4A, + 34141 - 11904: 0xEB54, + 34142 - 11904: 0xBFBF, + 34143 - 11904: 0x8CBD, + 34144 - 11904: 0xEB51, + 34145 - 11904: 0xEAFD, + 34146 - 11904: 0xEB44, + 34147 - 11904: 0xEB48, + 34148 - 11904: 0xEB42, + 34149 - 11904: 0xEB56, + 34150 - 11904: 0xEB53, + 34151 - 11904: 0xEB50, + 34152 - 11904: 0xBFB9, + 34153 - 11904: 0xBFBA, + 34154 - 11904: 0xBFBE, + 34155 - 11904: 0xEAFA, + 34156 - 11904: 0xEB57, + 34157 - 11904: 0xBFBD, + 34158 - 11904: 0xEB4D, + 34159 - 11904: 0x99C4, + 34160 - 11904: 0x99C5, + 34161 - 11904: 0xEB4B, + 34163 - 11904: 0x8F7B, + 34165 - 11904: 0xEB4E, + 34166 - 11904: 0xEE53, + 34167 - 11904: 0xEE40, + 34168 - 11904: 0xEE45, + 34169 - 11904: 0xEE52, + 34170 - 11904: 0xEE44, + 34171 - 11904: 0xEDFB, + 34172 - 11904: 0xEE41, + 34174 - 11904: 0xC1A2, + 34176 - 11904: 0xEDF4, + 34177 - 11904: 0xEE4D, + 34178 - 11904: 0xEE4F, + 34179 - 11904: 0xEDF3, + 34180 - 11904: 0xC1A1, + 34181 - 11904: 0xEE51, + 34182 - 11904: 0xEE49, + 34183 - 11904: 0xC1A8, + 34184 - 11904: 0xEE50, + 34185 - 11904: 0xEE42, + 34186 - 11904: 0xC1AA, + 34187 - 11904: 0xEDF9, + 34188 - 11904: 0xEB52, + 34189 - 11904: 0xEE4A, + 34190 - 11904: 0xEE47, + 34191 - 11904: 0xEDF5, + 34192 - 11904: 0xEE55, + 34193 - 11904: 0xC1A4, + 34195 - 11904: 0x8776, + 34196 - 11904: 0xC1A5, + 34197 - 11904: 0xEDF7, + 34198 - 11904: 0xEE48, + 34199 - 11904: 0x8CB6, + 34200 - 11904: 0xEE54, + 34201 - 11904: 0xEE4B, + 34202 - 11904: 0xEDFD, + 34203 - 11904: 0xC1A7, + 34204 - 11904: 0xC1A3, + 34205 - 11904: 0xEE4C, + 34206 - 11904: 0xEDFE, + 34207 - 11904: 0xEE56, + 34208 - 11904: 0xEDF8, + 34209 - 11904: 0xEE43, + 34210 - 11904: 0xEE4E, + 34211 - 11904: 0xEDFA, + 34212 - 11904: 0xEDFC, + 34214 - 11904: 0xC2CB, + 34215 - 11904: 0xEDF6, + 34216 - 11904: 0xC1A9, + 34217 - 11904: 0xC2C4, + 34218 - 11904: 0xC17E, + 34223 - 11904: 0xC1A6, + 34224 - 11904: 0xC2C8, + 34225 - 11904: 0xF0B3, + 34227 - 11904: 0xF0A9, + 34228 - 11904: 0xF0A4, + 34229 - 11904: 0xF0AA, + 34230 - 11904: 0xF0B4, + 34231 - 11904: 0xF0B8, + 34232 - 11904: 0xF0B7, + 34233 - 11904: 0xC2CA, + 34234 - 11904: 0xC2C9, + 34237 - 11904: 0xF0AB, + 34238 - 11904: 0xF0B9, + 34239 - 11904: 0xF0AE, + 34240 - 11904: 0xF0A6, + 34241 - 11904: 0x8FA3, + 34242 - 11904: 0xF0A8, + 34243 - 11904: 0xF0A7, + 34244 - 11904: 0xF0AD, + 34245 - 11904: 0xF0B2, + 34246 - 11904: 0xF0A5, + 34247 - 11904: 0xF0AC, + 34248 - 11904: 0xF0B1, + 34249 - 11904: 0xC2C7, + 34251 - 11904: 0xF0AF, + 34253 - 11904: 0xC2C5, + 34254 - 11904: 0xF0B0, + 34255 - 11904: 0xC2C3, + 34256 - 11904: 0xC2C6, + 34257 - 11904: 0xF2D5, + 34258 - 11904: 0xF0B5, + 34261 - 11904: 0xC3C2, + 34262 - 11904: 0x8CCE, + 34263 - 11904: 0xF2CD, + 34264 - 11904: 0xF2D1, + 34265 - 11904: 0xF2C9, + 34266 - 11904: 0xF2CC, + 34268 - 11904: 0xF2D4, + 34269 - 11904: 0xC3C0, + 34270 - 11904: 0xF2D9, + 34271 - 11904: 0xF2D2, + 34272 - 11904: 0x99C6, + 34273 - 11904: 0xF2CA, + 34274 - 11904: 0xF2DA, + 34275 - 11904: 0xF2D3, + 34276 - 11904: 0xC3C3, + 34277 - 11904: 0xC3C4, + 34278 - 11904: 0xF2D7, + 34280 - 11904: 0xF2CB, + 34281 - 11904: 0xC3BF, + 34282 - 11904: 0xC3C1, + 34283 - 11904: 0xF2C6, + 34284 - 11904: 0xF2CE, + 34285 - 11904: 0xF2C8, + 34286 - 11904: 0x96CD, + 34287 - 11904: 0xF2D8, + 34288 - 11904: 0xF2D6, + 34289 - 11904: 0xF2C7, + 34290 - 11904: 0xF2CF, + 34294 - 11904: 0xF4BE, + 34295 - 11904: 0xC3C5, + 34296 - 11904: 0xF2D0, + 34297 - 11904: 0xC4A7, + 34298 - 11904: 0xC4A9, + 34299 - 11904: 0xC4A6, + 34300 - 11904: 0x96C7, + 34301 - 11904: 0xF4C3, + 34302 - 11904: 0xF4BB, + 34303 - 11904: 0xF4B9, + 34304 - 11904: 0xF4BD, + 34305 - 11904: 0xF4BA, + 34306 - 11904: 0x8FA5, + 34308 - 11904: 0xF4BF, + 34309 - 11904: 0xF4C1, + 34310 - 11904: 0xC4AA, + 34311 - 11904: 0xC4AC, + 34313 - 11904: 0xF4C0, + 34314 - 11904: 0xC4AD, + 34315 - 11904: 0xC4AB, + 34316 - 11904: 0xF4C2, + 34317 - 11904: 0xFABB, + 34319 - 11904: 0x8C61, + 34320 - 11904: 0x9570, + 34321 - 11904: 0xC4A8, + 34323 - 11904: 0x87AF, + 34324 - 11904: 0x9368, + 34326 - 11904: 0x8F7E, + 34327 - 11904: 0xC4F4, + 34328 - 11904: 0xF5F1, + 34329 - 11904: 0xF5F7, + 34330 - 11904: 0xC4F6, + 34331 - 11904: 0xF4BC, + 34332 - 11904: 0xF5F6, + 34334 - 11904: 0xF5FD, + 34335 - 11904: 0xF5F4, + 34336 - 11904: 0xF5FB, + 34337 - 11904: 0xF5FA, + 34338 - 11904: 0xF4B8, + 34339 - 11904: 0xF5F5, + 34340 - 11904: 0xF0B6, + 34341 - 11904: 0xF5FE, + 34342 - 11904: 0xF5F3, + 34343 - 11904: 0xF5F8, + 34344 - 11904: 0x8FAA, + 34345 - 11904: 0xF5FC, + 34346 - 11904: 0xF5F2, + 34348 - 11904: 0xF74A, + 34349 - 11904: 0xC4F5, + 34350 - 11904: 0xF5F9, + 34351 - 11904: 0xA050, + 34353 - 11904: 0xF7F4, + 34354 - 11904: 0xF74B, + 34355 - 11904: 0xF749, + 34356 - 11904: 0xF747, + 34357 - 11904: 0xF748, + 34358 - 11904: 0xF74C, + 34360 - 11904: 0xC5D9, + 34361 - 11904: 0xF7F2, + 34362 - 11904: 0xF7F0, + 34363 - 11904: 0xF7F5, + 34364 - 11904: 0xF7F3, + 34366 - 11904: 0xF7F6, + 34367 - 11904: 0xC5DA, + 34368 - 11904: 0xF7F1, + 34370 - 11904: 0x90D3, + 34371 - 11904: 0xF8BC, + 34373 - 11904: 0x9556, + 34374 - 11904: 0xF945, + 34375 - 11904: 0xF946, + 34376 - 11904: 0xF947, + 34379 - 11904: 0xF9C7, + 34380 - 11904: 0xF9BD, + 34381 - 11904: 0xCA4F, + 34382 - 11904: 0xAAEA, + 34384 - 11904: 0xAD68, + 34386 - 11904: 0xD3B8, + 34387 - 11904: 0xD3B7, + 34388 - 11904: 0xB040, + 34389 - 11904: 0xB342, + 34390 - 11904: 0xD77C, + 34393 - 11904: 0xD77B, + 34395 - 11904: 0xB5EA, + 34396 - 11904: 0xB8B8, + 34398 - 11904: 0xB8B7, + 34399 - 11904: 0xB8B9, + 34401 - 11904: 0xE3D4, + 34402 - 11904: 0xE77E, + 34403 - 11904: 0xEB58, + 34404 - 11904: 0xEB5A, + 34405 - 11904: 0xEB59, + 34407 - 11904: 0xC1AB, + 34408 - 11904: 0xEE57, + 34409 - 11904: 0xF0BA, + 34410 - 11904: 0xF9A5, + 34411 - 11904: 0xA6E4, + 34412 - 11904: 0x8FB8, + 34413 - 11904: 0xCDC9, + 34414 - 11904: 0xCDCA, + 34415 - 11904: 0xCDC8, + 34416 - 11904: 0xCDC7, + 34417 - 11904: 0xAAEB, + 34418 - 11904: 0x99C8, + 34419 - 11904: 0xD0A9, + 34420 - 11904: 0xD0A7, + 34423 - 11904: 0xD0A6, + 34425 - 11904: 0xAD69, + 34426 - 11904: 0xAD6B, + 34427 - 11904: 0xAD6A, + 34428 - 11904: 0xD0A8, + 34430 - 11904: 0x8FAF, + 34437 - 11904: 0xD3C4, + 34438 - 11904: 0xD3C1, + 34439 - 11904: 0xD3BF, + 34442 - 11904: 0xB041, + 34443 - 11904: 0xD3C2, + 34444 - 11904: 0xB046, + 34445 - 11904: 0xD3BC, + 34446 - 11904: 0xD3CB, + 34448 - 11904: 0xD3CD, + 34449 - 11904: 0xD3BD, + 34450 - 11904: 0x99C9, + 34451 - 11904: 0xB043, + 34452 - 11904: 0xD3CE, + 34453 - 11904: 0xD3C9, + 34454 - 11904: 0xD3BB, + 34455 - 11904: 0xD3C0, + 34456 - 11904: 0xD3CA, + 34457 - 11904: 0xD3C6, + 34458 - 11904: 0xD3C3, + 34460 - 11904: 0xB048, + 34461 - 11904: 0xD3CC, + 34462 - 11904: 0xD3BE, + 34464 - 11904: 0x9579, + 34465 - 11904: 0xD3C7, + 34466 - 11904: 0xD3B9, + 34467 - 11904: 0xB047, + 34468 - 11904: 0xB044, + 34469 - 11904: 0xD3C5, + 34471 - 11904: 0xD3C8, + 34472 - 11904: 0xD3BA, + 34473 - 11904: 0xB045, + 34474 - 11904: 0xB042, + 34477 - 11904: 0x9F49, + 34479 - 11904: 0xB34C, + 34480 - 11904: 0xD7A5, + 34481 - 11904: 0xB34B, + 34482 - 11904: 0x99CA, + 34483 - 11904: 0xD7A8, + 34484 - 11904: 0xD7AB, + 34485 - 11904: 0xB348, + 34486 - 11904: 0xB346, + 34487 - 11904: 0xD77E, + 34488 - 11904: 0xD7A9, + 34489 - 11904: 0xD7A7, + 34490 - 11904: 0xD7A4, + 34491 - 11904: 0xD7AC, + 34492 - 11904: 0xD7AD, + 34493 - 11904: 0xD7AF, + 34494 - 11904: 0xD7B0, + 34495 - 11904: 0xD77D, + 34496 - 11904: 0xB345, + 34497 - 11904: 0xD7A2, + 34498 - 11904: 0xD7A1, + 34499 - 11904: 0xD7AE, + 34500 - 11904: 0xB347, + 34501 - 11904: 0xD7A3, + 34502 - 11904: 0xB349, + 34503 - 11904: 0xB344, + 34504 - 11904: 0xD7A6, + 34505 - 11904: 0xB34D, + 34507 - 11904: 0xB34A, + 34508 - 11904: 0xD7AA, + 34512 - 11904: 0xB5F1, + 34513 - 11904: 0xDBBF, + 34515 - 11904: 0xDBB4, + 34516 - 11904: 0xB5EE, + 34518 - 11904: 0xDFE7, + 34519 - 11904: 0xDBBD, + 34520 - 11904: 0xDBB1, + 34521 - 11904: 0xB5EC, + 34522 - 11904: 0xDBB6, + 34523 - 11904: 0xB5EF, + 34524 - 11904: 0xDBBA, + 34525 - 11904: 0xDBB8, + 34526 - 11904: 0xB5F2, + 34527 - 11904: 0xB5EB, + 34530 - 11904: 0xDBB2, + 34531 - 11904: 0xDBB5, + 34532 - 11904: 0xB5F0, + 34534 - 11904: 0xDBB3, + 34536 - 11904: 0xDBBE, + 34537 - 11904: 0xDBBC, + 34538 - 11904: 0xDBB7, + 34539 - 11904: 0xDBB9, + 34540 - 11904: 0xDBBB, + 34541 - 11904: 0xB5ED, + 34543 - 11904: 0x99CB, + 34549 - 11904: 0xDFE8, + 34550 - 11904: 0xDFEE, + 34551 - 11904: 0xDFE4, + 34552 - 11904: 0xDFEA, + 34553 - 11904: 0xB8BA, + 34554 - 11904: 0xDFE6, + 34555 - 11904: 0xB8C0, + 34558 - 11904: 0xB8BF, + 34560 - 11904: 0xB8BE, + 34561 - 11904: 0xDFED, + 34562 - 11904: 0xB8C1, + 34563 - 11904: 0xB8C2, + 34564 - 11904: 0xDFE3, + 34565 - 11904: 0xDFF0, + 34566 - 11904: 0xB8C3, + 34567 - 11904: 0xB8BD, + 34568 - 11904: 0xB8BC, + 34569 - 11904: 0xDFEC, + 34570 - 11904: 0xB8C4, + 34571 - 11904: 0xDFE2, + 34572 - 11904: 0xDFE5, + 34573 - 11904: 0xDFEF, + 34574 - 11904: 0xDFEB, + 34577 - 11904: 0xE3F4, + 34578 - 11904: 0xE3E9, + 34579 - 11904: 0xB8BB, + 34584 - 11904: 0xBB6A, + 34585 - 11904: 0xE3DD, + 34586 - 11904: 0xE3F2, + 34587 - 11904: 0xE3DE, + 34588 - 11904: 0xBB65, + 34590 - 11904: 0xE3DB, + 34592 - 11904: 0xE3E4, + 34593 - 11904: 0xE3DC, + 34594 - 11904: 0xBB67, + 34595 - 11904: 0xE3D6, + 34596 - 11904: 0xE3F1, + 34597 - 11904: 0xBB68, + 34598 - 11904: 0xE3EE, + 34599 - 11904: 0xE3EF, + 34600 - 11904: 0xE3D7, + 34601 - 11904: 0xBB6D, + 34602 - 11904: 0xE3E6, + 34604 - 11904: 0xE3E0, + 34605 - 11904: 0xE3E7, + 34606 - 11904: 0xE3DA, + 34608 - 11904: 0xE3F3, + 34609 - 11904: 0xE3EB, + 34610 - 11904: 0xE3E5, + 34611 - 11904: 0xE3D5, + 34612 - 11904: 0xBB69, + 34613 - 11904: 0xE3EC, + 34615 - 11904: 0xBB6C, + 34616 - 11904: 0xE3F0, + 34618 - 11904: 0xE3EA, + 34619 - 11904: 0xBB66, + 34620 - 11904: 0xE3E8, + 34622 - 11904: 0xE3E2, + 34623 - 11904: 0xBB64, + 34624 - 11904: 0xE3D9, + 34625 - 11904: 0xE3E1, + 34626 - 11904: 0xE3ED, + 34627 - 11904: 0xE3DF, + 34630 - 11904: 0xE3E3, + 34636 - 11904: 0xBDC1, + 34637 - 11904: 0xDFE9, + 34638 - 11904: 0xE7B2, + 34639 - 11904: 0xE7BB, + 34640 - 11904: 0xE7B1, + 34641 - 11904: 0xE7AD, + 34642 - 11904: 0xE7AA, + 34643 - 11904: 0xBDC2, + 34644 - 11904: 0xE7A8, + 34645 - 11904: 0xBB6B, + 34646 - 11904: 0xE7A1, + 34647 - 11904: 0xBDC0, + 34648 - 11904: 0xE7A7, + 34649 - 11904: 0xBDBF, + 34650 - 11904: 0xE7AC, + 34651 - 11904: 0xE7A9, + 34652 - 11904: 0xE7B9, + 34653 - 11904: 0xE7B4, + 34654 - 11904: 0xE7AE, + 34655 - 11904: 0xE7B3, + 34656 - 11904: 0xBDBB, + 34657 - 11904: 0xE7AB, + 34658 - 11904: 0xE7BE, + 34659 - 11904: 0xE7A2, + 34660 - 11904: 0xE7A3, + 34661 - 11904: 0xE7BA, + 34662 - 11904: 0xBDBC, + 34663 - 11904: 0xE7BF, + 34664 - 11904: 0xBDBE, + 34665 - 11904: 0xE7C0, + 34666 - 11904: 0xE7B0, + 34667 - 11904: 0xE3D8, + 34668 - 11904: 0xE7B6, + 34669 - 11904: 0xE7AF, + 34670 - 11904: 0xE7B8, + 34671 - 11904: 0xE7B5, + 34672 - 11904: 0x9DD5, + 34673 - 11904: 0x8FB0, + 34675 - 11904: 0xE7A6, + 34676 - 11904: 0xBDB9, + 34677 - 11904: 0xE7BD, + 34678 - 11904: 0xBDBA, + 34679 - 11904: 0xE7A4, + 34680 - 11904: 0xBDBD, + 34681 - 11904: 0xEB64, + 34682 - 11904: 0xE7B7, + 34683 - 11904: 0xE7BC, + 34685 - 11904: 0xFA7A, + 34689 - 11904: 0xEB61, + 34690 - 11904: 0xBDB8, + 34691 - 11904: 0xBFC0, + 34692 - 11904: 0xEB6B, + 34693 - 11904: 0xEB67, + 34694 - 11904: 0x9E5F, + 34695 - 11904: 0xEB65, + 34696 - 11904: 0xEB60, + 34697 - 11904: 0xEB6F, + 34699 - 11904: 0x99CD, + 34700 - 11904: 0xA0C9, + 34701 - 11904: 0xBFC4, + 34703 - 11904: 0xEB5C, + 34704 - 11904: 0xEB68, + 34705 - 11904: 0xEB69, + 34706 - 11904: 0xEB5F, + 34707 - 11904: 0xEB5E, + 34708 - 11904: 0xEB6C, + 34710 - 11904: 0xEB62, + 34711 - 11904: 0xEB5D, + 34712 - 11904: 0xEB63, + 34714 - 11904: 0xEB6E, + 34715 - 11904: 0xEB5B, + 34716 - 11904: 0xEB6D, + 34717 - 11904: 0xEB6A, + 34718 - 11904: 0xBFC2, + 34719 - 11904: 0xBFC1, + 34722 - 11904: 0xBFC3, + 34723 - 11904: 0xEB66, + 34724 - 11904: 0xF0CB, + 34725 - 11904: 0x9ADB, + 34729 - 11904: 0xA0C6, + 34730 - 11904: 0xEE59, + 34731 - 11904: 0xC1B1, + 34732 - 11904: 0xEE5D, + 34733 - 11904: 0xEE5A, + 34734 - 11904: 0xEE61, + 34735 - 11904: 0xEE67, + 34736 - 11904: 0xEE5C, + 34737 - 11904: 0x8FB4, + 34738 - 11904: 0xEE70, + 34739 - 11904: 0xC1AE, + 34740 - 11904: 0xEE6A, + 34741 - 11904: 0xEE5F, + 34742 - 11904: 0xEE6B, + 34743 - 11904: 0xEE66, + 34744 - 11904: 0xEE6D, + 34745 - 11904: 0xEE5E, + 34746 - 11904: 0xC1B3, + 34747 - 11904: 0xC1B2, + 34748 - 11904: 0xEE60, + 34749 - 11904: 0xEE6E, + 34750 - 11904: 0xEE58, + 34751 - 11904: 0xEE6C, + 34752 - 11904: 0xC1AC, + 34753 - 11904: 0xA0D7, + 34754 - 11904: 0xEE64, + 34755 - 11904: 0xEE63, + 34756 - 11904: 0xEE68, + 34757 - 11904: 0xEE5B, + 34758 - 11904: 0xC1B0, + 34760 - 11904: 0xC1B4, + 34761 - 11904: 0xEE62, + 34762 - 11904: 0xEE69, + 34763 - 11904: 0xC1B5, + 34764 - 11904: 0xEE65, + 34766 - 11904: 0xA0C7, + 34769 - 11904: 0xC1AD, + 34770 - 11904: 0xC1AF, + 34771 - 11904: 0xF0C7, + 34772 - 11904: 0xF0C5, + 34774 - 11904: 0xA043, + 34775 - 11904: 0xF0CC, + 34776 - 11904: 0xF0C9, + 34777 - 11904: 0xF0CD, + 34778 - 11904: 0x8FB5, + 34779 - 11904: 0xF0BE, + 34780 - 11904: 0xF0C6, + 34781 - 11904: 0xF0D1, + 34782 - 11904: 0xEE6F, + 34783 - 11904: 0xF0C2, + 34784 - 11904: 0xC2CF, + 34785 - 11904: 0xE7A5, + 34786 - 11904: 0xF0BD, + 34787 - 11904: 0xF0CA, + 34788 - 11904: 0xF0C4, + 34789 - 11904: 0xF0C1, + 34790 - 11904: 0xF0BC, + 34791 - 11904: 0xF0BB, + 34792 - 11904: 0xF0D0, + 34794 - 11904: 0xF0C0, + 34795 - 11904: 0xF0BF, + 34796 - 11904: 0xC2CD, + 34797 - 11904: 0xF0C8, + 34798 - 11904: 0x8FB2, + 34799 - 11904: 0xC2CC, + 34802 - 11904: 0xC2CE, + 34803 - 11904: 0xF0C3, + 34804 - 11904: 0xF0CF, + 34805 - 11904: 0xA061, + 34806 - 11904: 0xF2DE, + 34807 - 11904: 0xF2DF, + 34809 - 11904: 0xC3C9, + 34810 - 11904: 0xF2DC, + 34811 - 11904: 0xC3C6, + 34812 - 11904: 0xF2E4, + 34814 - 11904: 0xC3CA, + 34815 - 11904: 0xF2E6, + 34816 - 11904: 0xF2DB, + 34817 - 11904: 0xF0CE, + 34818 - 11904: 0xF2E8, + 34819 - 11904: 0xF2DD, + 34820 - 11904: 0x9E5E, + 34821 - 11904: 0xC3C7, + 34822 - 11904: 0xF2E3, + 34824 - 11904: 0xF2E5, + 34825 - 11904: 0xF2E0, + 34826 - 11904: 0xF2E7, + 34827 - 11904: 0xF2E2, + 34828 - 11904: 0xF2E1, + 34829 - 11904: 0xC3C8, + 34831 - 11904: 0xA063, + 34832 - 11904: 0xF4C5, + 34833 - 11904: 0xF4C6, + 34835 - 11904: 0xF4C8, + 34836 - 11904: 0xC4AE, + 34837 - 11904: 0xC4AF, + 34838 - 11904: 0xF4C9, + 34839 - 11904: 0xF4C7, + 34840 - 11904: 0x9FE8, + 34841 - 11904: 0xF4C4, + 34843 - 11904: 0xF642, + 34844 - 11904: 0xF645, + 34845 - 11904: 0xF641, + 34847 - 11904: 0xC4FA, + 34848 - 11904: 0xF643, + 34849 - 11904: 0xC4F9, + 34850 - 11904: 0xC4F8, + 34851 - 11904: 0xC4F7, + 34852 - 11904: 0xF644, + 34853 - 11904: 0xF751, + 34854 - 11904: 0xF74F, + 34855 - 11904: 0x9CB2, + 34856 - 11904: 0xF74E, + 34857 - 11904: 0xF640, + 34858 - 11904: 0xF750, + 34859 - 11904: 0xF646, + 34860 - 11904: 0xF74D, + 34861 - 11904: 0x957C, + 34862 - 11904: 0xF7F9, + 34863 - 11904: 0xF7D7, + 34864 - 11904: 0xF7F7, + 34865 - 11904: 0xC5DB, + 34866 - 11904: 0xF7F8, + 34867 - 11904: 0xF7FA, + 34869 - 11904: 0xF8BF, + 34870 - 11904: 0xC5FA, + 34871 - 11904: 0xF8BE, + 34872 - 11904: 0xF8BD, + 34873 - 11904: 0xC5FB, + 34875 - 11904: 0xC65A, + 34876 - 11904: 0xF96E, + 34877 - 11904: 0xF9A7, + 34878 - 11904: 0xF9A6, + 34879 - 11904: 0xF9A8, + 34880 - 11904: 0xA6E5, + 34881 - 11904: 0xD0AA, + 34882 - 11904: 0x9FC7, + 34883 - 11904: 0xD3CF, + 34884 - 11904: 0xD3D0, + 34885 - 11904: 0x8FBB, + 34886 - 11904: 0x8FBC, + 34888 - 11904: 0xDBC0, + 34890 - 11904: 0xF647, + 34891 - 11904: 0xF8C0, + 34892 - 11904: 0xA6E6, + 34893 - 11904: 0xAD6C, + 34894 - 11904: 0xD0AB, + 34895 - 11904: 0x8FEC, + 34898 - 11904: 0xD7B1, + 34899 - 11904: 0xB34E, + 34901 - 11904: 0xDBC2, + 34902 - 11904: 0xDBC1, + 34903 - 11904: 0xB5F3, + 34905 - 11904: 0xB8C5, + 34906 - 11904: 0xE7C1, + 34907 - 11904: 0xBDC3, + 34909 - 11904: 0xBDC4, + 34910 - 11904: 0x8FC0, + 34912 - 11904: 0x936A, + 34913 - 11904: 0xBFC5, + 34914 - 11904: 0xC5FC, + 34915 - 11904: 0xA6E7, + 34916 - 11904: 0x8BE4, + 34917 - 11904: 0x9C7C, + 34919 - 11904: 0xD0AC, + 34920 - 11904: 0xAAED, + 34921 - 11904: 0xD0AE, + 34922 - 11904: 0xD0AD, + 34923 - 11904: 0xAD6D, + 34925 - 11904: 0xD3D1, + 34926 - 11904: 0x95A1, + 34927 - 11904: 0xD3D8, + 34928 - 11904: 0xB049, + 34929 - 11904: 0xD3D6, + 34930 - 11904: 0xD3D4, + 34932 - 11904: 0xD3DB, + 34933 - 11904: 0xD3D2, + 34934 - 11904: 0xD3D3, + 34935 - 11904: 0xB04A, + 34937 - 11904: 0xB04E, + 34940 - 11904: 0xD3DC, + 34941 - 11904: 0xB04D, + 34942 - 11904: 0xD3DA, + 34943 - 11904: 0xD3D7, + 34944 - 11904: 0xD3D5, + 34945 - 11904: 0xB04B, + 34946 - 11904: 0xB04C, + 34947 - 11904: 0xD3D9, + 34948 - 11904: 0xFEEC, + 34951 - 11904: 0x95A3, + 34952 - 11904: 0xB350, + 34953 - 11904: 0xD7B2, + 34955 - 11904: 0xB355, + 34956 - 11904: 0xD7C2, + 34957 - 11904: 0xB354, + 34958 - 11904: 0xD7C4, + 34959 - 11904: 0x8C45, + 34960 - 11904: 0x8CB8, + 34961 - 11904: 0xD7B8, + 34962 - 11904: 0xB352, + 34963 - 11904: 0xD7C3, + 34965 - 11904: 0xD7B3, + 34966 - 11904: 0xB353, + 34967 - 11904: 0xD7BF, + 34968 - 11904: 0xD7BB, + 34969 - 11904: 0xD7BD, + 34970 - 11904: 0xD7B7, + 34971 - 11904: 0xD7BE, + 34972 - 11904: 0x8FC1, + 34973 - 11904: 0x87B7, + 34974 - 11904: 0xB34F, + 34975 - 11904: 0xD7BA, + 34976 - 11904: 0xA052, + 34977 - 11904: 0xD7B9, + 34978 - 11904: 0xD7B5, + 34980 - 11904: 0xD7C0, + 34983 - 11904: 0xD7BC, + 34984 - 11904: 0xD7B4, + 34986 - 11904: 0xD7B6, + 34987 - 11904: 0xB351, + 34988 - 11904: 0xD7C1, + 34990 - 11904: 0x99D0, + 34993 - 11904: 0xB5F6, + 34994 - 11904: 0xDBCD, + 34996 - 11904: 0x8FC3, + 34997 - 11904: 0x8FC4, + 34998 - 11904: 0xDBC9, + 34999 - 11904: 0xDBCB, + 35000 - 11904: 0xDBC6, + 35001 - 11904: 0xDBC5, + 35002 - 11904: 0xDBC3, + 35004 - 11904: 0xDBCA, + 35005 - 11904: 0xDBCC, + 35006 - 11904: 0xDBC8, + 35007 - 11904: 0x95A4, + 35008 - 11904: 0xDBC7, + 35009 - 11904: 0xB5F4, + 35010 - 11904: 0xB5F5, + 35013 - 11904: 0x8FC6, + 35015 - 11904: 0x9E60, + 35017 - 11904: 0xDBCF, + 35018 - 11904: 0xB8CD, + 35019 - 11904: 0xDFF2, + 35020 - 11904: 0xDFF8, + 35021 - 11904: 0xDFF3, + 35022 - 11904: 0xDFF4, + 35023 - 11904: 0xF9D8, + 35024 - 11904: 0xDFF9, + 35026 - 11904: 0xB8CF, + 35028 - 11904: 0xB8C7, + 35029 - 11904: 0xB8CE, + 35030 - 11904: 0xDFF1, + 35031 - 11904: 0xDBC4, + 35032 - 11904: 0xB8CA, + 35033 - 11904: 0xB8C8, + 35034 - 11904: 0xDFF7, + 35035 - 11904: 0xDFF6, + 35036 - 11904: 0xB8C9, + 35037 - 11904: 0xB8CB, + 35038 - 11904: 0xDFF5, + 35039 - 11904: 0xB8C6, + 35041 - 11904: 0xB8CC, + 35046 - 11904: 0x95A5, + 35047 - 11904: 0xE3F6, + 35048 - 11904: 0xBB74, + 35051 - 11904: 0xE442, + 35052 - 11904: 0xE441, + 35054 - 11904: 0xE3FB, + 35055 - 11904: 0xBB76, + 35056 - 11904: 0xE440, + 35057 - 11904: 0xE3F7, + 35058 - 11904: 0xE3F8, + 35059 - 11904: 0xBB6E, + 35060 - 11904: 0xBB70, + 35061 - 11904: 0x9CB3, + 35062 - 11904: 0xE3FD, + 35063 - 11904: 0xE3F5, + 35064 - 11904: 0xBB72, + 35065 - 11904: 0xBB71, + 35066 - 11904: 0xE3F9, + 35067 - 11904: 0xE3FE, + 35068 - 11904: 0xE3FC, + 35069 - 11904: 0xBB73, + 35070 - 11904: 0xE3FA, + 35071 - 11904: 0x99D1, + 35072 - 11904: 0xFEF1, + 35073 - 11904: 0xDBCE, + 35074 - 11904: 0xBB6F, + 35077 - 11904: 0xE7C2, + 35078 - 11904: 0xE7C9, + 35079 - 11904: 0xBDC6, + 35081 - 11904: 0xE7CD, + 35082 - 11904: 0xBDCA, + 35083 - 11904: 0xE7C5, + 35084 - 11904: 0xE7C3, + 35086 - 11904: 0xE7CC, + 35088 - 11904: 0xBDC5, + 35089 - 11904: 0xE7CB, + 35090 - 11904: 0xBDC7, + 35091 - 11904: 0xBDC8, + 35092 - 11904: 0xE7C4, + 35093 - 11904: 0xBDC9, + 35094 - 11904: 0xE7CA, + 35095 - 11904: 0xE7C6, + 35096 - 11904: 0xE7C7, + 35097 - 11904: 0xE7C8, + 35098 - 11904: 0xBB75, + 35102 - 11904: 0xEB70, + 35103 - 11904: 0xEB7C, + 35105 - 11904: 0xBFCA, + 35106 - 11904: 0xEB77, + 35107 - 11904: 0xEB79, + 35108 - 11904: 0x99D2, + 35109 - 11904: 0xBFC8, + 35110 - 11904: 0xEB71, + 35111 - 11904: 0xEB75, + 35113 - 11904: 0xEB78, + 35114 - 11904: 0xBFC6, + 35115 - 11904: 0xBFC9, + 35116 - 11904: 0xEB7B, + 35117 - 11904: 0xEB73, + 35118 - 11904: 0xEB74, + 35119 - 11904: 0xEB7A, + 35120 - 11904: 0xEB72, + 35121 - 11904: 0xEB76, + 35122 - 11904: 0xBFC7, + 35123 - 11904: 0xEE72, + 35125 - 11904: 0xEE71, + 35126 - 11904: 0xC1B7, + 35127 - 11904: 0xEE77, + 35128 - 11904: 0xC1B9, + 35131 - 11904: 0xC1B6, + 35132 - 11904: 0xEE73, + 35133 - 11904: 0xC1BA, + 35134 - 11904: 0xEE74, + 35137 - 11904: 0xEE75, + 35138 - 11904: 0xEE78, + 35139 - 11904: 0x9CC2, + 35140 - 11904: 0xC1B8, + 35142 - 11904: 0xF0D6, + 35143 - 11904: 0x99D3, + 35145 - 11904: 0xF0D9, + 35147 - 11904: 0xF0D3, + 35148 - 11904: 0xF0D5, + 35149 - 11904: 0x95A7, + 35151 - 11904: 0xF0D4, + 35152 - 11904: 0xF0D7, + 35153 - 11904: 0xF0D8, + 35154 - 11904: 0xEE76, + 35155 - 11904: 0xF0D2, + 35156 - 11904: 0x95A9, + 35158 - 11904: 0xC3CD, + 35159 - 11904: 0xF2EC, + 35160 - 11904: 0xF2EF, + 35161 - 11904: 0xF2F1, + 35162 - 11904: 0xF2EA, + 35163 - 11904: 0xF2EB, + 35164 - 11904: 0xF2EE, + 35165 - 11904: 0xF2F0, + 35166 - 11904: 0xC3CE, + 35167 - 11904: 0xC3CC, + 35168 - 11904: 0xC3CB, + 35169 - 11904: 0xF2ED, + 35170 - 11904: 0xF2E9, + 35171 - 11904: 0xF4CA, + 35172 - 11904: 0xC4B0, + 35173 - 11904: 0x95A6, + 35174 - 11904: 0xF4CB, + 35177 - 11904: 0xF649, + 35178 - 11904: 0xC4FB, + 35179 - 11904: 0xF64B, + 35180 - 11904: 0xC4FC, + 35181 - 11904: 0xF648, + 35182 - 11904: 0xF64A, + 35183 - 11904: 0xC5A8, + 35185 - 11904: 0xF752, + 35186 - 11904: 0xC5A7, + 35187 - 11904: 0xF7FD, + 35188 - 11904: 0xF7FC, + 35190 - 11904: 0xF7FB, + 35191 - 11904: 0x9C5D, + 35193 - 11904: 0xF948, + 35194 - 11904: 0xF949, + 35195 - 11904: 0xF94B, + 35196 - 11904: 0xF94A, + 35198 - 11904: 0xCA50, + 35199 - 11904: 0xA6E8, + 35200 - 11904: 0x98E2, + 35201 - 11904: 0xAD6E, + 35202 - 11904: 0xD7C5, + 35203 - 11904: 0xB5F7, + 35205 - 11904: 0xDFFA, + 35206 - 11904: 0xC2D0, + 35207 - 11904: 0x8FC9, + 35208 - 11904: 0xF2F2, + 35209 - 11904: 0xA0C2, + 35210 - 11904: 0x8FCA, + 35211 - 11904: 0xA8A3, + 35215 - 11904: 0xB357, + 35217 - 11904: 0x99D4, + 35219 - 11904: 0xB356, + 35220 - 11904: 0xA0B9, + 35221 - 11904: 0xDBD0, + 35222 - 11904: 0xB5F8, + 35223 - 11904: 0xDBD2, + 35224 - 11904: 0xDBD1, + 35227 - 11904: 0xDFFB, + 35228 - 11904: 0xB8D0, + 35229 - 11904: 0xE443, + 35230 - 11904: 0xE446, + 35231 - 11904: 0xE445, + 35233 - 11904: 0xE444, + 35234 - 11904: 0xE7CE, + 35235 - 11904: 0xE7D0, + 35236 - 11904: 0xE7CF, + 35237 - 11904: 0x9B58, + 35238 - 11904: 0xBFCC, + 35239 - 11904: 0x8FCD, + 35241 - 11904: 0xA0D4, + 35242 - 11904: 0xBFCB, + 35244 - 11904: 0xC1BB, + 35245 - 11904: 0xEE79, + 35246 - 11904: 0xEE7B, + 35247 - 11904: 0xEE7A, + 35250 - 11904: 0xC2D1, + 35254 - 11904: 0xF2F4, + 35255 - 11904: 0xF2F3, + 35257 - 11904: 0xF4CC, + 35258 - 11904: 0xC4B1, + 35260 - 11904: 0x8FCE, + 35261 - 11904: 0xC4FD, + 35262 - 11904: 0xF754, + 35263 - 11904: 0xF753, + 35264 - 11904: 0xC65B, + 35265 - 11904: 0x8BE5, + 35270 - 11904: 0x8979, + 35282 - 11904: 0xA8A4, + 35283 - 11904: 0xD0AF, + 35284 - 11904: 0xAD6F, + 35285 - 11904: 0xD7C8, + 35286 - 11904: 0xD7C6, + 35289 - 11904: 0xD7C7, + 35290 - 11904: 0xDBD4, + 35291 - 11904: 0xDBD5, + 35292 - 11904: 0xE043, + 35293 - 11904: 0xDBD3, + 35295 - 11904: 0xDFFC, + 35296 - 11904: 0xE041, + 35297 - 11904: 0xE040, + 35298 - 11904: 0xE042, + 35299 - 11904: 0xB8D1, + 35300 - 11904: 0xDFFE, + 35301 - 11904: 0xDFFD, + 35302 - 11904: 0xE044, + 35303 - 11904: 0x8FD0, + 35304 - 11904: 0xE449, + 35305 - 11904: 0xE447, + 35307 - 11904: 0xE448, + 35308 - 11904: 0xE7D3, + 35309 - 11904: 0xE7D1, + 35312 - 11904: 0xE7D2, + 35313 - 11904: 0xEB7D, + 35314 - 11904: 0xEE7C, + 35315 - 11904: 0xEE7D, + 35316 - 11904: 0xC2D2, + 35318 - 11904: 0xF2F5, + 35319 - 11904: 0xF4CD, + 35320 - 11904: 0xC4B2, + 35322 - 11904: 0xF64C, + 35323 - 11904: 0xF755, + 35324 - 11904: 0xC5A9, + 35326 - 11904: 0xF7FE, + 35327 - 11904: 0xF94C, + 35328 - 11904: 0xA8A5, + 35330 - 11904: 0xAD71, + 35331 - 11904: 0xAD72, + 35332 - 11904: 0xD0B0, + 35335 - 11904: 0xD0B1, + 35336 - 11904: 0xAD70, + 35338 - 11904: 0xB054, + 35340 - 11904: 0xB052, + 35342 - 11904: 0xB051, + 35343 - 11904: 0xB058, + 35344 - 11904: 0xB050, + 35345 - 11904: 0xB059, + 35346 - 11904: 0xD3DD, + 35347 - 11904: 0xB056, + 35349 - 11904: 0xB053, + 35350 - 11904: 0xB057, + 35351 - 11904: 0xB055, + 35352 - 11904: 0xB04F, + 35355 - 11904: 0xB35F, + 35356 - 11904: 0x95B6, + 35357 - 11904: 0xB359, + 35358 - 11904: 0xD7CC, + 35359 - 11904: 0xB35E, + 35362 - 11904: 0xB360, + 35363 - 11904: 0xB35A, + 35365 - 11904: 0xB35B, + 35367 - 11904: 0xD7CA, + 35369 - 11904: 0x99D6, + 35370 - 11904: 0xB358, + 35371 - 11904: 0x95E5, + 35372 - 11904: 0xD7CB, + 35373 - 11904: 0xB35D, + 35376 - 11904: 0xD7C9, + 35377 - 11904: 0xB35C, + 35380 - 11904: 0xB644, + 35382 - 11904: 0xB646, + 35384 - 11904: 0x99D7, + 35385 - 11904: 0xDBD8, + 35386 - 11904: 0xB645, + 35387 - 11904: 0xB5F9, + 35388 - 11904: 0xB5FD, + 35389 - 11904: 0x95B5, + 35390 - 11904: 0xB8E4, + 35391 - 11904: 0xE049, + 35392 - 11904: 0xDBDA, + 35393 - 11904: 0xB5FE, + 35396 - 11904: 0xDBDD, + 35397 - 11904: 0xDBDE, + 35398 - 11904: 0xB643, + 35400 - 11904: 0xDBE0, + 35401 - 11904: 0xA0CA, + 35402 - 11904: 0xDBE2, + 35404 - 11904: 0xDBE3, + 35405 - 11904: 0xDBD7, + 35406 - 11904: 0xDBD6, + 35407 - 11904: 0xDBE4, + 35408 - 11904: 0xB642, + 35409 - 11904: 0xDBE1, + 35410 - 11904: 0xDBDF, + 35412 - 11904: 0xB640, + 35413 - 11904: 0xB5FB, + 35414 - 11904: 0xB647, + 35415 - 11904: 0xDBDB, + 35416 - 11904: 0xDBDC, + 35417 - 11904: 0xDBD9, + 35419 - 11904: 0xB641, + 35422 - 11904: 0xB5FC, + 35424 - 11904: 0xB5FA, + 35425 - 11904: 0xE048, + 35426 - 11904: 0xB8DF, + 35427 - 11904: 0xB8DA, + 35430 - 11904: 0xB8D5, + 35431 - 11904: 0x9FFD, + 35432 - 11904: 0xB8E5, + 35433 - 11904: 0xB8D6, + 35435 - 11904: 0xB8D2, + 35436 - 11904: 0xB8E1, + 35437 - 11904: 0xB8DE, + 35438 - 11904: 0xB8E0, + 35440 - 11904: 0xB8D7, + 35441 - 11904: 0xB8DC, + 35442 - 11904: 0xB8D3, + 35443 - 11904: 0xB8D4, + 35444 - 11904: 0xE050, + 35445 - 11904: 0xE04D, + 35446 - 11904: 0xE045, + 35447 - 11904: 0xE04A, + 35449 - 11904: 0xB8E2, + 35450 - 11904: 0xE051, + 35451 - 11904: 0xB8E3, + 35452 - 11904: 0xB8D9, + 35454 - 11904: 0xA058, + 35455 - 11904: 0xE047, + 35457 - 11904: 0xE04F, + 35458 - 11904: 0xE04B, + 35459 - 11904: 0xE04E, + 35460 - 11904: 0xE04C, + 35461 - 11904: 0xB8DD, + 35462 - 11904: 0xE046, + 35463 - 11904: 0xB8D8, + 35467 - 11904: 0xE44C, + 35468 - 11904: 0xBB78, + 35469 - 11904: 0xBB7B, + 35471 - 11904: 0xE44E, + 35472 - 11904: 0x8FD6, + 35473 - 11904: 0xBBA5, + 35474 - 11904: 0xE44D, + 35475 - 11904: 0xBB7D, + 35476 - 11904: 0x99D8, + 35477 - 11904: 0xBDCF, + 35478 - 11904: 0xE44F, + 35480 - 11904: 0xBBA4, + 35481 - 11904: 0xE44B, + 35482 - 11904: 0xBBA6, + 35484 - 11904: 0x8FD3, + 35486 - 11904: 0xBB79, + 35488 - 11904: 0xB8DB, + 35489 - 11904: 0xBB7C, + 35491 - 11904: 0xBB7A, + 35492 - 11904: 0xBB7E, + 35493 - 11904: 0xBBA2, + 35494 - 11904: 0xBB77, + 35495 - 11904: 0xBBA7, + 35496 - 11904: 0xBBA3, + 35497 - 11904: 0x8FE5, + 35498 - 11904: 0xBBA1, + 35499 - 11904: 0xE44A, + 35503 - 11904: 0x8FE9, + 35504 - 11904: 0xBDD6, + 35506 - 11904: 0xBDD2, + 35508 - 11904: 0x99D9, + 35510 - 11904: 0xBDD9, + 35512 - 11904: 0xE7D6, + 35513 - 11904: 0xBDDA, + 35514 - 11904: 0xE7E2, + 35515 - 11904: 0xE7DB, + 35516 - 11904: 0xBDCB, + 35517 - 11904: 0xE7E3, + 35518 - 11904: 0xE7DD, + 35519 - 11904: 0xBDD5, + 35520 - 11904: 0xE7DE, + 35522 - 11904: 0xBDD4, + 35523 - 11904: 0xE7E1, + 35524 - 11904: 0xBDCE, + 35525 - 11904: 0xE7DF, + 35526 - 11904: 0xE7D5, + 35527 - 11904: 0xBDCD, + 35528 - 11904: 0xEBAA, + 35529 - 11904: 0xBDD3, + 35531 - 11904: 0xBDD0, + 35532 - 11904: 0x8CF7, + 35533 - 11904: 0xBDD8, + 35535 - 11904: 0xE7D4, + 35537 - 11904: 0xE7D8, + 35538 - 11904: 0xBDCC, + 35539 - 11904: 0xE7D7, + 35540 - 11904: 0xE7D9, + 35541 - 11904: 0xE7DA, + 35542 - 11904: 0xBDD7, + 35543 - 11904: 0xE7DC, + 35544 - 11904: 0xE7E0, + 35545 - 11904: 0xE7E4, + 35546 - 11904: 0x927C, + 35547 - 11904: 0xBDDB, + 35548 - 11904: 0xBFD2, + 35549 - 11904: 0xEBA5, + 35550 - 11904: 0xEBAB, + 35551 - 11904: 0xEBA8, + 35552 - 11904: 0xEB7E, + 35553 - 11904: 0xEBAC, + 35554 - 11904: 0xEBA1, + 35556 - 11904: 0xEBA7, + 35558 - 11904: 0xBFCD, + 35559 - 11904: 0xBFD3, + 35560 - 11904: 0xEBAD, + 35562 - 11904: 0x9C45, + 35563 - 11904: 0xBFCF, + 35565 - 11904: 0xBFD9, + 35566 - 11904: 0xBFD4, + 35567 - 11904: 0xEBAF, + 35568 - 11904: 0xEBA9, + 35569 - 11904: 0xBFD0, + 35570 - 11904: 0xEBA2, + 35571 - 11904: 0xBFDA, + 35572 - 11904: 0xEBA3, + 35573 - 11904: 0xEBA4, + 35574 - 11904: 0xBFDB, + 35575 - 11904: 0xBFD8, + 35576 - 11904: 0xBDD1, + 35577 - 11904: 0x8CE8, + 35578 - 11904: 0xBFCE, + 35579 - 11904: 0xEBB0, + 35580 - 11904: 0xBFDC, + 35582 - 11904: 0xBFD5, + 35583 - 11904: 0xEBAE, + 35584 - 11904: 0xBFD1, + 35585 - 11904: 0xBFD6, + 35586 - 11904: 0xBFD7, + 35588 - 11904: 0xC1C3, + 35589 - 11904: 0xEEA4, + 35590 - 11904: 0xEEAD, + 35591 - 11904: 0xEEAA, + 35592 - 11904: 0xEEAC, + 35594 - 11904: 0xC1C0, + 35595 - 11904: 0xEEA5, + 35596 - 11904: 0x8FDE, + 35597 - 11904: 0xEEAB, + 35598 - 11904: 0xC1BC, + 35599 - 11904: 0xEEA7, + 35600 - 11904: 0xC1C4, + 35601 - 11904: 0xEEA3, + 35602 - 11904: 0xEEA8, + 35603 - 11904: 0xEEAF, + 35604 - 11904: 0xEBA6, + 35605 - 11904: 0xEEA9, + 35606 - 11904: 0xEEA2, + 35607 - 11904: 0xC1BD, + 35608 - 11904: 0xEEA1, + 35609 - 11904: 0xC1BE, + 35610 - 11904: 0xEEB0, + 35611 - 11904: 0xC1BF, + 35612 - 11904: 0xEEAE, + 35613 - 11904: 0xC1C2, + 35614 - 11904: 0xEE7E, + 35615 - 11904: 0x8FDF, + 35616 - 11904: 0xC1C1, + 35618 - 11904: 0xEEA6, + 35619 - 11904: 0xF0DC, + 35620 - 11904: 0xF0EA, + 35621 - 11904: 0xF0E5, + 35622 - 11904: 0xF0E7, + 35623 - 11904: 0xF0DB, + 35624 - 11904: 0xC2D3, + 35626 - 11904: 0xF0DA, + 35627 - 11904: 0xC2D6, + 35628 - 11904: 0xC2D5, + 35629 - 11904: 0xA04B, + 35630 - 11904: 0xF0E9, + 35631 - 11904: 0xF0E1, + 35632 - 11904: 0xF0DE, + 35633 - 11904: 0xF0E4, + 35635 - 11904: 0xF0DD, + 35637 - 11904: 0xF0DF, + 35638 - 11904: 0xF0E8, + 35639 - 11904: 0xF0E6, + 35641 - 11904: 0xC2D4, + 35642 - 11904: 0xF0ED, + 35643 - 11904: 0xF0EB, + 35644 - 11904: 0xF0E2, + 35645 - 11904: 0xF0EC, + 35646 - 11904: 0xF0E3, + 35647 - 11904: 0x8FE2, + 35648 - 11904: 0xF2F9, + 35649 - 11904: 0xC3CF, + 35650 - 11904: 0xF341, + 35651 - 11904: 0xA0CC, + 35653 - 11904: 0xF64F, + 35654 - 11904: 0xC3D6, + 35655 - 11904: 0xF0E0, + 35656 - 11904: 0xF2F7, + 35657 - 11904: 0xC3D2, + 35658 - 11904: 0xF2F8, + 35659 - 11904: 0xF2FD, + 35660 - 11904: 0x8FE3, + 35661 - 11904: 0x8FE4, + 35662 - 11904: 0xC3D4, + 35663 - 11904: 0xC3D5, + 35664 - 11904: 0xF2F6, + 35665 - 11904: 0xF340, + 35666 - 11904: 0xF342, + 35667 - 11904: 0xF2FA, + 35668 - 11904: 0xF2FC, + 35669 - 11904: 0xF2FE, + 35670 - 11904: 0xF2FB, + 35671 - 11904: 0xF343, + 35672 - 11904: 0xC3D1, + 35673 - 11904: 0xC3D7, + 35674 - 11904: 0xC3D3, + 35676 - 11904: 0xC3D0, + 35677 - 11904: 0xF4D0, + 35678 - 11904: 0x9BC4, + 35679 - 11904: 0xC4B7, + 35680 - 11904: 0xF4CE, + 35682 - 11904: 0x9BFC, + 35683 - 11904: 0xF4D2, + 35685 - 11904: 0xF4D3, + 35686 - 11904: 0xC4B5, + 35687 - 11904: 0xF4D4, + 35688 - 11904: 0xF4D1, + 35689 - 11904: 0x964C, + 35690 - 11904: 0xF4CF, + 35691 - 11904: 0xC4B8, + 35692 - 11904: 0xC4B4, + 35693 - 11904: 0xF4D5, + 35695 - 11904: 0xC4B6, + 35696 - 11904: 0xC4B3, + 35700 - 11904: 0xC4FE, + 35703 - 11904: 0xC540, + 35704 - 11904: 0xF64E, + 35705 - 11904: 0xF64D, + 35706 - 11904: 0xF650, + 35707 - 11904: 0xF651, + 35709 - 11904: 0xC541, + 35710 - 11904: 0xF756, + 35711 - 11904: 0xF75B, + 35712 - 11904: 0xC5AA, + 35713 - 11904: 0x9AF6, + 35714 - 11904: 0xF758, + 35715 - 11904: 0x8CAE, + 35716 - 11904: 0xF757, + 35717 - 11904: 0xF75A, + 35718 - 11904: 0xF759, + 35720 - 11904: 0xF843, + 35722 - 11904: 0xC5DC, + 35723 - 11904: 0xF842, + 35724 - 11904: 0xF840, + 35726 - 11904: 0xF841, + 35727 - 11904: 0x87CB, + 35728 - 11904: 0x8FE7, + 35730 - 11904: 0xC5FE, + 35731 - 11904: 0xC5FD, + 35732 - 11904: 0xF8C1, + 35733 - 11904: 0xF8C2, + 35734 - 11904: 0xC640, + 35736 - 11904: 0xF94D, + 35737 - 11904: 0xF94E, + 35738 - 11904: 0xC667, + 35739 - 11904: 0x8FE8, + 35740 - 11904: 0xC66D, + 35742 - 11904: 0xF9A9, + 35743 - 11904: 0xF9C8, + 35744 - 11904: 0x8BE7, + 35774 - 11904: 0x897A, + 35810 - 11904: 0x897B, + 35895 - 11904: 0xA8A6, + 35897 - 11904: 0xD7CD, + 35899 - 11904: 0xD7CE, + 35900 - 11904: 0xE052, + 35901 - 11904: 0xE450, + 35902 - 11904: 0xE7E5, + 35903 - 11904: 0xC1C6, + 35905 - 11904: 0xC1C5, + 35906 - 11904: 0xF0EE, + 35907 - 11904: 0xF344, + 35909 - 11904: 0xF844, + 35910 - 11904: 0xA8A7, + 35911 - 11904: 0xD3DE, + 35912 - 11904: 0xB05A, + 35913 - 11904: 0xB361, + 35914 - 11904: 0xE054, + 35915 - 11904: 0xE053, + 35916 - 11904: 0xBDDC, + 35917 - 11904: 0xE7E6, + 35918 - 11904: 0xBDDD, + 35919 - 11904: 0xEEB1, + 35920 - 11904: 0xC2D7, + 35921 - 11904: 0x99DA, + 35924 - 11904: 0xC676, + 35925 - 11904: 0xA8A8, + 35926 - 11904: 0xCDCB, + 35927 - 11904: 0xD3DF, + 35930 - 11904: 0xB362, + 35932 - 11904: 0xD7CF, + 35933 - 11904: 0xD7D0, + 35935 - 11904: 0xDBE5, + 35937 - 11904: 0xB648, + 35938 - 11904: 0xB8E6, + 35940 - 11904: 0xE056, + 35941 - 11904: 0xE055, + 35942 - 11904: 0xE057, + 35944 - 11904: 0xE451, + 35945 - 11904: 0xE452, + 35946 - 11904: 0xBBA8, + 35947 - 11904: 0xBFDD, + 35948 - 11904: 0xBDDE, + 35949 - 11904: 0xBFDE, + 35951 - 11904: 0xEEB5, + 35952 - 11904: 0xEEB2, + 35953 - 11904: 0xEEB4, + 35954 - 11904: 0xEEB3, + 35955 - 11904: 0xC1C7, + 35957 - 11904: 0xF0EF, + 35958 - 11904: 0xF346, + 35959 - 11904: 0xF345, + 35960 - 11904: 0xCBA4, + 35961 - 11904: 0xB05C, + 35962 - 11904: 0xB05B, + 35963 - 11904: 0xD3E0, + 35965 - 11904: 0xD7D1, + 35968 - 11904: 0xDBE7, + 35969 - 11904: 0xDBE6, + 35970 - 11904: 0xB649, + 35972 - 11904: 0xE059, + 35973 - 11904: 0xE05A, + 35974 - 11904: 0xE058, + 35977 - 11904: 0xB8E8, + 35978 - 11904: 0xB8E7, + 35980 - 11904: 0xBBAA, + 35981 - 11904: 0xBBA9, + 35983 - 11904: 0xE7E7, + 35984 - 11904: 0xEBB3, + 35985 - 11904: 0xEBB1, + 35986 - 11904: 0xEBB2, + 35987 - 11904: 0xBFDF, + 35988 - 11904: 0xEEB7, + 35989 - 11904: 0xEEB6, + 35991 - 11904: 0xF0F2, + 35992 - 11904: 0xF0F1, + 35993 - 11904: 0xF0F0, + 35994 - 11904: 0xF347, + 35995 - 11904: 0x8FED, + 35996 - 11904: 0xF9AA, + 35997 - 11904: 0xA8A9, + 35998 - 11904: 0xAD73, + 35999 - 11904: 0x95C0, + 36000 - 11904: 0xAD74, + 36001 - 11904: 0xB05D, + 36002 - 11904: 0xB05E, + 36003 - 11904: 0xD3E2, + 36004 - 11904: 0xD3E1, + 36005 - 11904: 0xD7D2, + 36007 - 11904: 0xB368, + 36008 - 11904: 0xB366, + 36009 - 11904: 0xB363, + 36010 - 11904: 0xB367, + 36011 - 11904: 0xB365, + 36012 - 11904: 0xB364, + 36013 - 11904: 0xA0CB, + 36015 - 11904: 0xB64A, + 36016 - 11904: 0xDBEA, + 36018 - 11904: 0xB8ED, + 36019 - 11904: 0xB64C, + 36020 - 11904: 0xB651, + 36021 - 11904: 0xDBEC, + 36022 - 11904: 0xB653, + 36023 - 11904: 0xB652, + 36024 - 11904: 0xB655, + 36025 - 11904: 0xDBEB, + 36026 - 11904: 0xDBE8, + 36027 - 11904: 0xB64F, + 36028 - 11904: 0xB64B, + 36029 - 11904: 0xB64D, + 36030 - 11904: 0xDBE9, + 36031 - 11904: 0xB654, + 36032 - 11904: 0xB650, + 36033 - 11904: 0xB64E, + 36034 - 11904: 0xB8EF, + 36035 - 11904: 0xB8EE, + 36036 - 11904: 0xB8EC, + 36037 - 11904: 0xB8F0, + 36039 - 11904: 0xB8EA, + 36040 - 11904: 0xB8EB, + 36042 - 11904: 0xB8E9, + 36044 - 11904: 0xE05B, + 36045 - 11904: 0x9E48, + 36047 - 11904: 0xE454, + 36049 - 11904: 0xBBAC, + 36050 - 11904: 0xBBAD, + 36051 - 11904: 0xBBAB, + 36052 - 11904: 0x99DB, + 36053 - 11904: 0xE453, + 36054 - 11904: 0x8FF3, + 36055 - 11904: 0xE455, + 36057 - 11904: 0xE7EA, + 36058 - 11904: 0xE7EC, + 36059 - 11904: 0x8FF9, + 36060 - 11904: 0xBDE7, + 36061 - 11904: 0xE7ED, + 36062 - 11904: 0xBDE0, + 36063 - 11904: 0xE7E9, + 36064 - 11904: 0xBDDF, + 36065 - 11904: 0xBDE9, + 36066 - 11904: 0xBDE5, + 36067 - 11904: 0xBDE6, + 36068 - 11904: 0xBDE2, + 36069 - 11904: 0xE7E8, + 36070 - 11904: 0xBDE1, + 36071 - 11904: 0xE7EE, + 36072 - 11904: 0xE7EB, + 36073 - 11904: 0x95C1, + 36074 - 11904: 0xBDE8, + 36075 - 11904: 0xA04E, + 36076 - 11904: 0xBDE3, + 36077 - 11904: 0xBDE4, + 36078 - 11904: 0xEBB5, + 36080 - 11904: 0xEBB7, + 36081 - 11904: 0xEBB6, + 36082 - 11904: 0x99DC, + 36083 - 11904: 0xEBB8, + 36084 - 11904: 0xBFE0, + 36085 - 11904: 0xEBB4, + 36087 - 11904: 0xA064, + 36088 - 11904: 0xC1CB, + 36089 - 11904: 0xEEB8, + 36090 - 11904: 0xC1C8, + 36091 - 11904: 0xC1CC, + 36092 - 11904: 0xC1CA, + 36093 - 11904: 0xC1C9, + 36094 - 11904: 0xF0F3, + 36096 - 11904: 0xF0F6, + 36098 - 11904: 0xF0F5, + 36099 - 11904: 0x8FF7, + 36100 - 11904: 0xF0F4, + 36101 - 11904: 0xC2D8, + 36102 - 11904: 0xF348, + 36103 - 11904: 0xF349, + 36104 - 11904: 0xC3D8, + 36105 - 11904: 0xF34A, + 36106 - 11904: 0xC3D9, + 36107 - 11904: 0x89B0, + 36108 - 11904: 0xA048, + 36109 - 11904: 0xC4BA, + 36111 - 11904: 0xC4B9, + 36112 - 11904: 0xF652, + 36113 - 11904: 0x8FFB, + 36114 - 11904: 0x8FF6, + 36115 - 11904: 0xC542, + 36116 - 11904: 0xF653, + 36117 - 11904: 0xF75C, + 36118 - 11904: 0xC5AB, + 36119 - 11904: 0xC5AC, + 36120 - 11904: 0x9DDC, + 36121 - 11904: 0xF845, + 36123 - 11904: 0xC642, + 36124 - 11904: 0x99DD, + 36125 - 11904: 0x8BE8, + 36196 - 11904: 0xA8AA, + 36198 - 11904: 0xB36A, + 36199 - 11904: 0xB369, + 36200 - 11904: 0xE05C, + 36201 - 11904: 0xE05D, + 36203 - 11904: 0xBBAE, + 36204 - 11904: 0xEBB9, + 36205 - 11904: 0xBDEA, + 36206 - 11904: 0xEBBA, + 36207 - 11904: 0xEEB9, + 36208 - 11904: 0xA8AB, + 36210 - 11904: 0xD0B2, + 36211 - 11904: 0xAD76, + 36212 - 11904: 0xAD75, + 36214 - 11904: 0xD3E3, + 36215 - 11904: 0xB05F, + 36216 - 11904: 0xD3E4, + 36217 - 11904: 0xD7D5, + 36218 - 11904: 0x92C1, + 36219 - 11904: 0xD7D4, + 36221 - 11904: 0xD7D3, + 36224 - 11904: 0xDBEE, + 36225 - 11904: 0xB658, + 36226 - 11904: 0x9FD6, + 36228 - 11904: 0xDBED, + 36229 - 11904: 0xB657, + 36233 - 11904: 0xDBEF, + 36234 - 11904: 0xB656, + 36236 - 11904: 0xE05F, + 36237 - 11904: 0xE062, + 36238 - 11904: 0xE060, + 36239 - 11904: 0xE061, + 36240 - 11904: 0xE065, + 36241 - 11904: 0xE05E, + 36242 - 11904: 0xE066, + 36243 - 11904: 0xE063, + 36244 - 11904: 0xE064, + 36245 - 11904: 0xBBB0, + 36246 - 11904: 0xE456, + 36249 - 11904: 0xBBAF, + 36251 - 11904: 0xE7F2, + 36252 - 11904: 0xE7F0, + 36255 - 11904: 0xBDEB, + 36256 - 11904: 0xE7EF, + 36257 - 11904: 0xE7F1, + 36259 - 11904: 0xBDEC, + 36261 - 11904: 0xEBBB, + 36262 - 11904: 0xA0D2, + 36263 - 11904: 0xEBBC, + 36264 - 11904: 0xC1CD, + 36265 - 11904: 0x9040, + 36266 - 11904: 0xF34C, + 36267 - 11904: 0xF34E, + 36268 - 11904: 0xF34B, + 36269 - 11904: 0xF34D, + 36270 - 11904: 0xF4D6, + 36271 - 11904: 0xF654, + 36274 - 11904: 0xF96F, + 36275 - 11904: 0xA8AC, + 36276 - 11904: 0xAD77, + 36277 - 11904: 0xD3E5, + 36278 - 11904: 0xD3E7, + 36279 - 11904: 0xD3E6, + 36281 - 11904: 0xD7D8, + 36282 - 11904: 0xB36C, + 36284 - 11904: 0xD7D6, + 36286 - 11904: 0xB36B, + 36287 - 11904: 0xD7D9, + 36288 - 11904: 0x8AC4, + 36289 - 11904: 0xD7DA, + 36290 - 11904: 0xD7D7, + 36291 - 11904: 0x99E0, + 36293 - 11904: 0xDBFB, + 36294 - 11904: 0xB660, + 36295 - 11904: 0xDBF3, + 36296 - 11904: 0xDBF9, + 36299 - 11904: 0xB65B, + 36300 - 11904: 0xB65E, + 36301 - 11904: 0xDBF2, + 36302 - 11904: 0xB659, + 36303 - 11904: 0xDBF6, + 36304 - 11904: 0xE06C, + 36305 - 11904: 0xB65D, + 36307 - 11904: 0xDBF1, + 36308 - 11904: 0x9FF0, + 36309 - 11904: 0xDBF7, + 36310 - 11904: 0xDBF4, + 36311 - 11904: 0xDBFA, + 36312 - 11904: 0xDBF0, + 36313 - 11904: 0xDBF8, + 36314 - 11904: 0xB65C, + 36315 - 11904: 0xB65F, + 36316 - 11904: 0xDBF5, + 36317 - 11904: 0xB65A, + 36319 - 11904: 0xB8F2, + 36320 - 11904: 0xE068, + 36321 - 11904: 0xB8F1, + 36322 - 11904: 0xE06F, + 36323 - 11904: 0xE06E, + 36324 - 11904: 0xB8F8, + 36326 - 11904: 0xB8F9, + 36327 - 11904: 0xE070, + 36328 - 11904: 0xB8F3, + 36329 - 11904: 0xE06D, + 36330 - 11904: 0xB8F7, + 36331 - 11904: 0xE072, + 36332 - 11904: 0xE069, + 36334 - 11904: 0xE06B, + 36335 - 11904: 0xB8F4, + 36336 - 11904: 0xE067, + 36337 - 11904: 0xE06A, + 36338 - 11904: 0xE071, + 36339 - 11904: 0xB8F5, + 36340 - 11904: 0xE073, + 36346 - 11904: 0xB8F6, + 36348 - 11904: 0xBBB1, + 36349 - 11904: 0xE45B, + 36350 - 11904: 0xE461, + 36351 - 11904: 0xE459, + 36352 - 11904: 0xE462, + 36353 - 11904: 0x9FF3, + 36354 - 11904: 0xE458, + 36355 - 11904: 0xE45D, + 36356 - 11904: 0xE463, + 36357 - 11904: 0xE460, + 36358 - 11904: 0xE45F, + 36359 - 11904: 0xE45E, + 36361 - 11904: 0xE457, + 36362 - 11904: 0xE45C, + 36365 - 11904: 0xE45A, + 36366 - 11904: 0x9DBF, + 36367 - 11904: 0xBDF1, + 36368 - 11904: 0xBDEE, + 36369 - 11904: 0xE7FB, + 36370 - 11904: 0xE841, + 36371 - 11904: 0xE843, + 36372 - 11904: 0xE840, + 36373 - 11904: 0xE7F8, + 36374 - 11904: 0xE7FA, + 36375 - 11904: 0xE845, + 36376 - 11904: 0xE842, + 36377 - 11904: 0xE7FC, + 36378 - 11904: 0xE846, + 36379 - 11904: 0xE7F9, + 36380 - 11904: 0xE844, + 36381 - 11904: 0xBDEF, + 36382 - 11904: 0xBDF5, + 36383 - 11904: 0xBDF3, + 36384 - 11904: 0xE7F3, + 36385 - 11904: 0xBDF4, + 36386 - 11904: 0xBDF0, + 36387 - 11904: 0xE7F4, + 36388 - 11904: 0xE7F6, + 36389 - 11904: 0xE7F5, + 36390 - 11904: 0xE7FD, + 36391 - 11904: 0xE7FE, + 36392 - 11904: 0x9FF6, + 36393 - 11904: 0xBDF2, + 36394 - 11904: 0x95C8, + 36395 - 11904: 0xBDED, + 36397 - 11904: 0x9E5A, + 36398 - 11904: 0xE7F7, + 36400 - 11904: 0xEBC6, + 36401 - 11904: 0xBFE2, + 36403 - 11904: 0xEBBD, + 36404 - 11904: 0xBFE3, + 36405 - 11904: 0xBFE6, + 36406 - 11904: 0xEBC2, + 36408 - 11904: 0xEBBF, + 36409 - 11904: 0xBFE5, + 36410 - 11904: 0x99E3, + 36412 - 11904: 0xEBC3, + 36413 - 11904: 0xEBC4, + 36414 - 11904: 0xEBBE, + 36415 - 11904: 0xEBC7, + 36416 - 11904: 0xEBC0, + 36417 - 11904: 0xEBC5, + 36418 - 11904: 0xBFE4, + 36420 - 11904: 0xBFE1, + 36421 - 11904: 0xEBC1, + 36422 - 11904: 0x8A4A, + 36423 - 11904: 0xEEBF, + 36424 - 11904: 0xC1D0, + 36425 - 11904: 0xC1CE, + 36426 - 11904: 0xC1D1, + 36427 - 11904: 0xC1CF, + 36428 - 11904: 0xEEBE, + 36429 - 11904: 0xEEBB, + 36430 - 11904: 0xEEBA, + 36431 - 11904: 0x9FF1, + 36432 - 11904: 0xEEBD, + 36435 - 11904: 0xEEBC, + 36436 - 11904: 0xF145, + 36437 - 11904: 0xC2DE, + 36438 - 11904: 0xF0FB, + 36439 - 11904: 0xF0FA, + 36441 - 11904: 0xC2D9, + 36442 - 11904: 0xF141, + 36443 - 11904: 0xF140, + 36444 - 11904: 0xF0F7, + 36445 - 11904: 0xF143, + 36446 - 11904: 0xF0FC, + 36447 - 11904: 0xC2DD, + 36448 - 11904: 0xF0F9, + 36449 - 11904: 0xF142, + 36450 - 11904: 0xF0F8, + 36451 - 11904: 0xC2DA, + 36452 - 11904: 0xC2DC, + 36453 - 11904: 0xF0FD, + 36454 - 11904: 0xC2DB, + 36455 - 11904: 0xF0FE, + 36456 - 11904: 0x8AA7, + 36457 - 11904: 0xF144, + 36458 - 11904: 0xF352, + 36460 - 11904: 0xC3DE, + 36461 - 11904: 0xF34F, + 36463 - 11904: 0xF353, + 36465 - 11904: 0x99E6, + 36466 - 11904: 0xC3DB, + 36467 - 11904: 0xF351, + 36468 - 11904: 0xC3E0, + 36469 - 11904: 0x9FF7, + 36470 - 11904: 0xC3DD, + 36471 - 11904: 0x9FED, + 36472 - 11904: 0xF350, + 36474 - 11904: 0xC3DF, + 36475 - 11904: 0xF354, + 36476 - 11904: 0xC3DA, + 36478 - 11904: 0x8A5C, + 36480 - 11904: 0x9DAE, + 36481 - 11904: 0xC4BC, + 36482 - 11904: 0xC4BE, + 36484 - 11904: 0xF4D9, + 36485 - 11904: 0xC4BD, + 36486 - 11904: 0xF4D7, + 36487 - 11904: 0xC3DC, + 36488 - 11904: 0xF4D8, + 36489 - 11904: 0xC4BB, + 36490 - 11904: 0xC543, + 36491 - 11904: 0xC545, + 36492 - 11904: 0xF656, + 36493 - 11904: 0xC544, + 36494 - 11904: 0xF655, + 36496 - 11904: 0xF761, + 36497 - 11904: 0xC5AD, + 36498 - 11904: 0xF760, + 36499 - 11904: 0xC5AE, + 36500 - 11904: 0xF75E, + 36501 - 11904: 0xF75D, + 36502 - 11904: 0xF762, + 36503 - 11904: 0xF763, + 36504 - 11904: 0xF846, + 36506 - 11904: 0xF75F, + 36509 - 11904: 0xF8C6, + 36510 - 11904: 0xF8C3, + 36511 - 11904: 0xF8C4, + 36512 - 11904: 0xF8C5, + 36513 - 11904: 0xC65C, + 36515 - 11904: 0xF951, + 36516 - 11904: 0xF950, + 36517 - 11904: 0xF94F, + 36518 - 11904: 0xF970, + 36519 - 11904: 0x95C9, + 36520 - 11904: 0xF9BE, + 36521 - 11904: 0xF9AB, + 36522 - 11904: 0xC66E, + 36523 - 11904: 0xA8AD, + 36524 - 11904: 0xB060, + 36525 - 11904: 0x9048, + 36528 - 11904: 0x99E8, + 36530 - 11904: 0xB8FA, + 36534 - 11904: 0x9049, + 36537 - 11904: 0x8CBA, + 36538 - 11904: 0xBDF6, + 36540 - 11904: 0x90B1, + 36541 - 11904: 0xEBC8, + 36544 - 11904: 0xC2DF, + 36546 - 11904: 0xF355, + 36547 - 11904: 0x904A, + 36553 - 11904: 0xF9AC, + 36554 - 11904: 0xA8AE, + 36555 - 11904: 0xAAEE, + 36556 - 11904: 0xAD79, + 36557 - 11904: 0xAD78, + 36558 - 11904: 0x99EA, + 36559 - 11904: 0xB063, + 36561 - 11904: 0xD3E8, + 36562 - 11904: 0xB061, + 36563 - 11904: 0xD3E9, + 36564 - 11904: 0xB062, + 36567 - 11904: 0xD7DF, + 36568 - 11904: 0xD7DB, + 36570 - 11904: 0x9BD1, + 36571 - 11904: 0xB36D, + 36572 - 11904: 0xD7DE, + 36573 - 11904: 0xD7DD, + 36574 - 11904: 0xD7DC, + 36575 - 11904: 0xB36E, + 36576 - 11904: 0xD7E0, + 36577 - 11904: 0xD7E1, + 36578 - 11904: 0x99EB, + 36580 - 11904: 0x99EC, + 36581 - 11904: 0xDC43, + 36582 - 11904: 0xDC41, + 36583 - 11904: 0xDC45, + 36584 - 11904: 0xDC46, + 36585 - 11904: 0xDC4C, + 36587 - 11904: 0xDC48, + 36588 - 11904: 0xDC4A, + 36589 - 11904: 0x99ED, + 36590 - 11904: 0xDC42, + 36591 - 11904: 0xDBFC, + 36593 - 11904: 0xDC49, + 36594 - 11904: 0x99EE, + 36596 - 11904: 0xDC4B, + 36597 - 11904: 0xDC44, + 36598 - 11904: 0xDC47, + 36599 - 11904: 0xDBFD, + 36600 - 11904: 0xB662, + 36601 - 11904: 0xDC40, + 36602 - 11904: 0xDBFE, + 36603 - 11904: 0xB661, + 36604 - 11904: 0xB663, + 36606 - 11904: 0xB8FD, + 36607 - 11904: 0xE075, + 36608 - 11904: 0xE077, + 36609 - 11904: 0xE076, + 36610 - 11904: 0xE07B, + 36611 - 11904: 0xB8FB, + 36613 - 11904: 0xE078, + 36614 - 11904: 0xE074, + 36615 - 11904: 0xE079, + 36616 - 11904: 0xE07A, + 36617 - 11904: 0xB8FC, + 36618 - 11904: 0xB8FE, + 36619 - 11904: 0xE07C, + 36621 - 11904: 0xE467, + 36622 - 11904: 0xE466, + 36624 - 11904: 0xE464, + 36625 - 11904: 0xE465, + 36626 - 11904: 0xBBB3, + 36627 - 11904: 0xBBB5, + 36628 - 11904: 0xBBB2, + 36629 - 11904: 0xBBB4, + 36630 - 11904: 0xE84D, + 36631 - 11904: 0xE84E, + 36632 - 11904: 0xE849, + 36633 - 11904: 0x904C, + 36634 - 11904: 0xE84A, + 36635 - 11904: 0xBDF8, + 36636 - 11904: 0xBDFD, + 36637 - 11904: 0xBDF7, + 36638 - 11904: 0xBDFE, + 36639 - 11904: 0xBDF9, + 36640 - 11904: 0xE84B, + 36643 - 11904: 0xE84C, + 36644 - 11904: 0xE848, + 36645 - 11904: 0xBE40, + 36646 - 11904: 0xBDFB, + 36649 - 11904: 0xBDFA, + 36650 - 11904: 0xBDFC, + 36652 - 11904: 0xE847, + 36653 - 11904: 0x904D, + 36654 - 11904: 0xEBCA, + 36655 - 11904: 0xBFE8, + 36656 - 11904: 0x95CB, + 36658 - 11904: 0xEBCC, + 36659 - 11904: 0xBFEA, + 36660 - 11904: 0xEBCF, + 36661 - 11904: 0xEBCB, + 36662 - 11904: 0xEBC9, + 36663 - 11904: 0xEBCE, + 36664 - 11904: 0xBFE9, + 36665 - 11904: 0xEBCD, + 36667 - 11904: 0xBFE7, + 36670 - 11904: 0xC1D3, + 36671 - 11904: 0xC1D6, + 36672 - 11904: 0xEEC1, + 36673 - 11904: 0x97E2, + 36674 - 11904: 0xC1D4, + 36675 - 11904: 0xEEC0, + 36676 - 11904: 0xC1D2, + 36677 - 11904: 0xC1D5, + 36678 - 11904: 0xF146, + 36679 - 11904: 0xF147, + 36680 - 11904: 0xF148, + 36681 - 11904: 0xC2E0, + 36682 - 11904: 0x95CC, + 36683 - 11904: 0xF149, + 36685 - 11904: 0xC2E1, + 36686 - 11904: 0xC3E2, + 36687 - 11904: 0xF358, + 36688 - 11904: 0xF359, + 36689 - 11904: 0xF357, + 36690 - 11904: 0xF356, + 36691 - 11904: 0xF35A, + 36692 - 11904: 0xC3E1, + 36693 - 11904: 0xF4DD, + 36694 - 11904: 0xF4DB, + 36695 - 11904: 0xF4DC, + 36696 - 11904: 0xF4DE, + 36697 - 11904: 0xF4DA, + 36698 - 11904: 0xF4DF, + 36699 - 11904: 0xF658, + 36700 - 11904: 0x9F78, + 36701 - 11904: 0xF659, + 36702 - 11904: 0xF657, + 36703 - 11904: 0xC546, + 36704 - 11904: 0xF764, + 36705 - 11904: 0xC5AF, + 36706 - 11904: 0xF765, + 36707 - 11904: 0xF848, + 36708 - 11904: 0xF847, + 36710 - 11904: 0x897C, + 36711 - 11904: 0x897D, + 36718 - 11904: 0x897E, + 36755 - 11904: 0x995D, + 36763 - 11904: 0xA8AF, + 36764 - 11904: 0xB664, + 36767 - 11904: 0xB940, + 36768 - 11904: 0x9B5A, + 36771 - 11904: 0xBBB6, + 36773 - 11904: 0x9050, + 36774 - 11904: 0xBFEC, + 36775 - 11904: 0x8C4F, + 36776 - 11904: 0xBFEB, + 36781 - 11904: 0xC3E3, + 36782 - 11904: 0xC47C, + 36783 - 11904: 0xC547, + 36784 - 11904: 0xA8B0, + 36785 - 11904: 0xB064, + 36786 - 11904: 0xB941, + 36787 - 11904: 0x9054, + 36788 - 11904: 0xF35B, + 36789 - 11904: 0xC6D6, + 36790 - 11904: 0x9AA8, + 36791 - 11904: 0x99EF, + 36792 - 11904: 0xFEEB, + 36793 - 11904: 0x9DA3, + 36794 - 11904: 0x9DA1, + 36795 - 11904: 0x9943, + 36796 - 11904: 0x9945, + 36798 - 11904: 0x9D7D, + 36799 - 11904: 0xCBA6, + 36801 - 11904: 0x99F0, + 36802 - 11904: 0xA8B1, + 36804 - 11904: 0xA8B4, + 36805 - 11904: 0xA8B3, + 36806 - 11904: 0xA8B2, + 36809 - 11904: 0xCBA5, + 36810 - 11904: 0x99F1, + 36811 - 11904: 0xCDCD, + 36812 - 11904: 0x99F2, + 36813 - 11904: 0xCDCF, + 36814 - 11904: 0xAAEF, + 36815 - 11904: 0x8CBC, + 36816 - 11904: 0x9D60, + 36817 - 11904: 0xAAF1, + 36818 - 11904: 0xCDCC, + 36819 - 11904: 0xCDCE, + 36820 - 11904: 0xAAF0, + 36821 - 11904: 0xCDD1, + 36822 - 11904: 0xCDD0, + 36823 - 11904: 0xCDD2, + 36826 - 11904: 0xA0A3, + 36832 - 11904: 0xD0B6, + 36833 - 11904: 0xD0B4, + 36834 - 11904: 0xAD7C, + 36835 - 11904: 0xD0B3, + 36836 - 11904: 0xADA3, + 36837 - 11904: 0xAD7E, + 36838 - 11904: 0xAD7B, + 36840 - 11904: 0xADA4, + 36842 - 11904: 0xAD7D, + 36843 - 11904: 0xADA2, + 36845 - 11904: 0xADA1, + 36846 - 11904: 0xD0B5, + 36848 - 11904: 0xAD7A, + 36852 - 11904: 0xB06A, + 36853 - 11904: 0xD3EB, + 36854 - 11904: 0xD3F1, + 36855 - 11904: 0xB067, + 36856 - 11904: 0xB06E, + 36857 - 11904: 0x905B, + 36858 - 11904: 0xB069, + 36859 - 11904: 0xD3EE, + 36860 - 11904: 0xD3F0, + 36861 - 11904: 0xB06C, + 36862 - 11904: 0xD3EA, + 36863 - 11904: 0xD3ED, + 36864 - 11904: 0xB068, + 36865 - 11904: 0xB065, + 36866 - 11904: 0xD3EC, + 36867 - 11904: 0xB06B, + 36868 - 11904: 0xD3EF, + 36869 - 11904: 0xB06D, + 36870 - 11904: 0xB066, + 36872 - 11904: 0x9EDB, + 36875 - 11904: 0xD7E3, + 36876 - 11904: 0xD7E6, + 36877 - 11904: 0xB370, + 36879 - 11904: 0xB37A, + 36880 - 11904: 0xB376, + 36881 - 11904: 0xD7E4, + 36882 - 11904: 0x9D79, + 36884 - 11904: 0xB37E, + 36885 - 11904: 0xB377, + 36886 - 11904: 0xB37C, + 36887 - 11904: 0xB372, + 36889 - 11904: 0xB36F, + 36890 - 11904: 0xB371, + 36891 - 11904: 0xB37D, + 36892 - 11904: 0xD7E5, + 36893 - 11904: 0xB375, + 36894 - 11904: 0xB378, + 36895 - 11904: 0xB374, + 36896 - 11904: 0xB379, + 36897 - 11904: 0xD7E7, + 36898 - 11904: 0xB37B, + 36899 - 11904: 0xB373, + 36900 - 11904: 0xD7E2, + 36909 - 11904: 0xDC4D, + 36910 - 11904: 0xB665, + 36911 - 11904: 0xDC4F, + 36913 - 11904: 0xB667, + 36914 - 11904: 0xB669, + 36915 - 11904: 0x99F3, + 36916 - 11904: 0xDC4E, + 36917 - 11904: 0xB666, + 36918 - 11904: 0xB66A, + 36919 - 11904: 0x9062, + 36920 - 11904: 0xB668, + 36924 - 11904: 0xB947, + 36925 - 11904: 0xE0A3, + 36926 - 11904: 0xB94F, + 36927 - 11904: 0xE07E, + 36929 - 11904: 0xB950, + 36930 - 11904: 0xB945, + 36932 - 11904: 0xE0A1, + 36934 - 11904: 0x87BD, + 36935 - 11904: 0xB94A, + 36937 - 11904: 0xE0A2, + 36938 - 11904: 0xB943, + 36939 - 11904: 0xB942, + 36940 - 11904: 0x9F55, + 36941 - 11904: 0xB94D, + 36942 - 11904: 0xB94C, + 36943 - 11904: 0xB94B, + 36944 - 11904: 0xB949, + 36945 - 11904: 0xB94E, + 36946 - 11904: 0xE07D, + 36947 - 11904: 0xB944, + 36948 - 11904: 0xB946, + 36949 - 11904: 0xB948, + 36950 - 11904: 0x9BF9, + 36952 - 11904: 0xBBB8, + 36953 - 11904: 0xBBBB, + 36955 - 11904: 0xBBBF, + 36956 - 11904: 0xBBB9, + 36957 - 11904: 0xBBBE, + 36958 - 11904: 0xBBBC, + 36960 - 11904: 0xBBB7, + 36961 - 11904: 0x9065, + 36962 - 11904: 0xBBBD, + 36963 - 11904: 0xBBBA, + 36964 - 11904: 0x96E0, + 36967 - 11904: 0xE852, + 36968 - 11904: 0xBE43, + 36969 - 11904: 0xBE41, + 36971 - 11904: 0xE853, + 36972 - 11904: 0x98BE, + 36973 - 11904: 0xBE44, + 36974 - 11904: 0xBE42, + 36975 - 11904: 0xE851, + 36976 - 11904: 0xE850, + 36978 - 11904: 0xBFF0, + 36979 - 11904: 0xE84F, + 36980 - 11904: 0xBFEE, + 36981 - 11904: 0xBFED, + 36982 - 11904: 0xEBD0, + 36983 - 11904: 0xBE45, + 36984 - 11904: 0xBFEF, + 36985 - 11904: 0xEBD1, + 36986 - 11904: 0xBFF2, + 36987 - 11904: 0xEBD2, + 36988 - 11904: 0xBFF1, + 36989 - 11904: 0xC1D8, + 36990 - 11904: 0xEEC3, + 36991 - 11904: 0xC1D7, + 36992 - 11904: 0xC1DC, + 36993 - 11904: 0xC1DA, + 36994 - 11904: 0xC1DB, + 36995 - 11904: 0xC2E3, + 36996 - 11904: 0xC1D9, + 36997 - 11904: 0xEEC2, + 36998 - 11904: 0xEBD3, + 36999 - 11904: 0xC2E2, + 37000 - 11904: 0xC2E4, + 37002 - 11904: 0xC3E4, + 37003 - 11904: 0xC3E5, + 37005 - 11904: 0xF4E0, + 37007 - 11904: 0xC5DE, + 37008 - 11904: 0xC5DD, + 37009 - 11904: 0xA8B6, + 37012 - 11904: 0xCA55, + 37013 - 11904: 0xB06F, + 37015 - 11904: 0xCA52, + 37016 - 11904: 0xCA53, + 37017 - 11904: 0xCA51, + 37019 - 11904: 0xCA54, + 37022 - 11904: 0xCBAA, + 37023 - 11904: 0xCBA7, + 37024 - 11904: 0xCBAC, + 37025 - 11904: 0xCBA8, + 37026 - 11904: 0xA8B7, + 37027 - 11904: 0xA8BA, + 37029 - 11904: 0xCBA9, + 37030 - 11904: 0xA8B9, + 37031 - 11904: 0xCBAB, + 37032 - 11904: 0x9068, + 37034 - 11904: 0xA8B8, + 37038 - 11904: 0x906C, + 37039 - 11904: 0xCDD5, + 37040 - 11904: 0xCDD7, + 37041 - 11904: 0xAAF4, + 37042 - 11904: 0xCDD3, + 37043 - 11904: 0xCDD6, + 37044 - 11904: 0xCDD4, + 37045 - 11904: 0xAAF2, + 37046 - 11904: 0xAAF5, + 37048 - 11904: 0xAAF3, + 37051 - 11904: 0x95D8, + 37053 - 11904: 0xD0B8, + 37054 - 11904: 0xD0BC, + 37055 - 11904: 0xD0B9, + 37057 - 11904: 0xADA7, + 37059 - 11904: 0xADA8, + 37060 - 11904: 0x906A, + 37061 - 11904: 0xD0BB, + 37063 - 11904: 0xD0BD, + 37064 - 11904: 0xD0BF, + 37066 - 11904: 0xADA5, + 37067 - 11904: 0xD0BE, + 37070 - 11904: 0xADA6, + 37076 - 11904: 0xD7EE, + 37077 - 11904: 0xD0BA, + 37078 - 11904: 0xD3F2, + 37079 - 11904: 0xD3FB, + 37080 - 11904: 0xD3F9, + 37081 - 11904: 0xD3F4, + 37082 - 11904: 0xD3F5, + 37083 - 11904: 0xD3FA, + 37084 - 11904: 0xD3FC, + 37085 - 11904: 0xB071, + 37087 - 11904: 0xD3F7, + 37088 - 11904: 0xD3F3, + 37089 - 11904: 0xB070, + 37090 - 11904: 0xB072, + 37091 - 11904: 0xD3F6, + 37092 - 11904: 0xD3FD, + 37093 - 11904: 0xD3F8, + 37096 - 11904: 0xB3A1, + 37097 - 11904: 0xD7F1, + 37098 - 11904: 0xD7E9, + 37099 - 11904: 0xD7EF, + 37100 - 11904: 0xD7F0, + 37101 - 11904: 0xB3A2, + 37103 - 11904: 0xD7E8, + 37104 - 11904: 0xD7EA, + 37105 - 11904: 0xD0B7, + 37106 - 11904: 0xD7EC, + 37107 - 11904: 0xD7ED, + 37108 - 11904: 0xD7EB, + 37109 - 11904: 0xB66C, + 37113 - 11904: 0xDC56, + 37114 - 11904: 0xEBD4, + 37115 - 11904: 0xDC57, + 37116 - 11904: 0xDC54, + 37117 - 11904: 0xB3A3, + 37118 - 11904: 0xB66E, + 37119 - 11904: 0xDC53, + 37120 - 11904: 0xDC59, + 37121 - 11904: 0xDC58, + 37122 - 11904: 0xB66B, + 37123 - 11904: 0xDC5C, + 37124 - 11904: 0xDC52, + 37125 - 11904: 0xDC5B, + 37126 - 11904: 0xDC50, + 37127 - 11904: 0xDC5A, + 37128 - 11904: 0xDC55, + 37129 - 11904: 0xB66D, + 37131 - 11904: 0xE0AA, + 37133 - 11904: 0xE0A5, + 37134 - 11904: 0xE0AB, + 37135 - 11904: 0xE0A6, + 37136 - 11904: 0xE0A4, + 37137 - 11904: 0xE0A7, + 37138 - 11904: 0xB951, + 37140 - 11904: 0xE0A9, + 37142 - 11904: 0xE0A8, + 37143 - 11904: 0xB952, + 37144 - 11904: 0xBBC1, + 37145 - 11904: 0xBBC0, + 37146 - 11904: 0xE46E, + 37147 - 11904: 0xE471, + 37148 - 11904: 0xE469, + 37149 - 11904: 0xE46D, + 37150 - 11904: 0xBBC2, + 37151 - 11904: 0xE46C, + 37152 - 11904: 0xE46A, + 37153 - 11904: 0xE470, + 37154 - 11904: 0xE46B, + 37155 - 11904: 0xE468, + 37156 - 11904: 0xE46F, + 37158 - 11904: 0xE859, + 37159 - 11904: 0xBE48, + 37160 - 11904: 0xF14A, + 37161 - 11904: 0xE856, + 37162 - 11904: 0xE857, + 37163 - 11904: 0xE855, + 37164 - 11904: 0xDC51, + 37165 - 11904: 0xBE47, + 37166 - 11904: 0xE85A, + 37167 - 11904: 0xE854, + 37168 - 11904: 0xBE46, + 37169 - 11904: 0xBE49, + 37170 - 11904: 0xE858, + 37171 - 11904: 0xEBD5, + 37172 - 11904: 0xBFF3, + 37173 - 11904: 0xEBD6, + 37174 - 11904: 0xEBD7, + 37176 - 11904: 0xEEC4, + 37177 - 11904: 0xC1DD, + 37178 - 11904: 0xF14B, + 37179 - 11904: 0xF14C, + 37182 - 11904: 0xF14D, + 37183 - 11904: 0xF35D, + 37184 - 11904: 0xF35C, + 37185 - 11904: 0xF4E2, + 37187 - 11904: 0xF4E1, + 37188 - 11904: 0xF65B, + 37189 - 11904: 0xF65C, + 37190 - 11904: 0xF65A, + 37191 - 11904: 0xF766, + 37192 - 11904: 0xC5B0, + 37193 - 11904: 0xA8BB, + 37194 - 11904: 0xADAA, + 37195 - 11904: 0xADA9, + 37196 - 11904: 0xB075, + 37197 - 11904: 0xB074, + 37198 - 11904: 0xD440, + 37199 - 11904: 0xD441, + 37200 - 11904: 0xD3FE, + 37201 - 11904: 0x9FB2, + 37202 - 11904: 0xB073, + 37203 - 11904: 0xD7F5, + 37205 - 11904: 0xD7F6, + 37206 - 11904: 0xD7F2, + 37207 - 11904: 0xB3A4, + 37208 - 11904: 0xD7F3, + 37209 - 11904: 0x9FAE, + 37210 - 11904: 0xD7F4, + 37212 - 11904: 0x9FB0, + 37214 - 11904: 0x89AD, + 37215 - 11904: 0xDC5F, + 37216 - 11904: 0xDC61, + 37217 - 11904: 0xDC5D, + 37218 - 11904: 0xDC60, + 37219 - 11904: 0xB66F, + 37220 - 11904: 0xDC5E, + 37221 - 11904: 0xB670, + 37223 - 11904: 0x906E, + 37224 - 11904: 0xDD73, + 37225 - 11904: 0xB955, + 37226 - 11904: 0xB954, + 37228 - 11904: 0xB953, + 37230 - 11904: 0xE0AC, + 37231 - 11904: 0xE0AD, + 37232 - 11904: 0x9E71, + 37234 - 11904: 0xE473, + 37235 - 11904: 0xE475, + 37236 - 11904: 0xBBC6, + 37237 - 11904: 0xBBC3, + 37238 - 11904: 0x9E4A, + 37239 - 11904: 0xBBC5, + 37240 - 11904: 0xBBC4, + 37241 - 11904: 0xE474, + 37242 - 11904: 0xE472, + 37244 - 11904: 0x9FDC, + 37248 - 11904: 0xE861, + 37249 - 11904: 0xE85E, + 37250 - 11904: 0xE85F, + 37251 - 11904: 0xBE4D, + 37252 - 11904: 0xE860, + 37253 - 11904: 0xE85B, + 37254 - 11904: 0xE85C, + 37255 - 11904: 0xBE4A, + 37257 - 11904: 0xBE4B, + 37258 - 11904: 0xE85D, + 37259 - 11904: 0xBE4C, + 37260 - 11904: 0x89AB, + 37261 - 11904: 0xEBDB, + 37262 - 11904: 0x9FB8, + 37263 - 11904: 0xEBDC, + 37264 - 11904: 0xEBD9, + 37265 - 11904: 0xEBDA, + 37266 - 11904: 0xBFF4, + 37267 - 11904: 0xEBD8, + 37273 - 11904: 0xEEC8, + 37274 - 11904: 0xEEC5, + 37275 - 11904: 0xEEC7, + 37276 - 11904: 0xC1E0, + 37277 - 11904: 0xEECB, + 37278 - 11904: 0xC1DF, + 37279 - 11904: 0xEEC9, + 37280 - 11904: 0xEECC, + 37281 - 11904: 0xEECA, + 37282 - 11904: 0xEEC6, + 37283 - 11904: 0xC1DE, + 37285 - 11904: 0xF14F, + 37287 - 11904: 0xF150, + 37288 - 11904: 0xF14E, + 37289 - 11904: 0x9070, + 37290 - 11904: 0xF152, + 37291 - 11904: 0xC2E5, + 37292 - 11904: 0xC2E6, + 37293 - 11904: 0xF35F, + 37294 - 11904: 0xC3E7, + 37295 - 11904: 0xF151, + 37296 - 11904: 0xF35E, + 37297 - 11904: 0xC3E6, + 37298 - 11904: 0xF4E5, + 37299 - 11904: 0xF4E6, + 37300 - 11904: 0xC4BF, + 37301 - 11904: 0xF4E4, + 37302 - 11904: 0x8B63, + 37303 - 11904: 0xF4E3, + 37305 - 11904: 0xF65D, + 37306 - 11904: 0xC548, + 37307 - 11904: 0x95DC, + 37308 - 11904: 0xF849, + 37309 - 11904: 0xF8C8, + 37310 - 11904: 0xF8C7, + 37312 - 11904: 0xC643, + 37313 - 11904: 0xC65D, + 37314 - 11904: 0xF8C9, + 37315 - 11904: 0xF971, + 37316 - 11904: 0x9071, + 37317 - 11904: 0xC66F, + 37318 - 11904: 0xA8BC, + 37319 - 11904: 0xAAF6, + 37321 - 11904: 0xB956, + 37323 - 11904: 0xC4C0, + 37324 - 11904: 0xA8BD, + 37325 - 11904: 0xADAB, + 37326 - 11904: 0xB3A5, + 37327 - 11904: 0xB671, + 37328 - 11904: 0xC2E7, + 37329 - 11904: 0xAAF7, + 37331 - 11904: 0xD0C1, + 37332 - 11904: 0xD0C0, + 37333 - 11904: 0xD442, + 37334 - 11904: 0xFC5E, + 37335 - 11904: 0xB078, + 37336 - 11904: 0xB076, + 37337 - 11904: 0xB07A, + 37338 - 11904: 0xD444, + 37340 - 11904: 0xB079, + 37341 - 11904: 0xB077, + 37343 - 11904: 0x8949, + 37346 - 11904: 0xD443, + 37347 - 11904: 0xB3A8, + 37348 - 11904: 0xD7FC, + 37349 - 11904: 0x965B, + 37350 - 11904: 0xB3A7, + 37351 - 11904: 0xB3A9, + 37352 - 11904: 0xD842, + 37353 - 11904: 0xB3AB, + 37354 - 11904: 0xD7FE, + 37355 - 11904: 0xD840, + 37356 - 11904: 0xD7F7, + 37357 - 11904: 0xB3AA, + 37358 - 11904: 0xD843, + 37361 - 11904: 0xD7F9, + 37363 - 11904: 0xD7FA, + 37364 - 11904: 0xD7F8, + 37365 - 11904: 0xB3A6, + 37366 - 11904: 0x8C50, + 37367 - 11904: 0xD841, + 37368 - 11904: 0xD7FB, + 37369 - 11904: 0xD7FD, + 37370 - 11904: 0x94A6, + 37373 - 11904: 0xDC6D, + 37374 - 11904: 0x8FD5, + 37375 - 11904: 0xDC6C, + 37376 - 11904: 0xDC6A, + 37377 - 11904: 0xDC62, + 37378 - 11904: 0xDC71, + 37379 - 11904: 0xDC65, + 37380 - 11904: 0xDC6F, + 37381 - 11904: 0xDC76, + 37382 - 11904: 0xDC6E, + 37383 - 11904: 0xB679, + 37384 - 11904: 0x9E73, + 37385 - 11904: 0xB675, + 37386 - 11904: 0xDC63, + 37388 - 11904: 0xDC69, + 37389 - 11904: 0xB677, + 37390 - 11904: 0x9075, + 37391 - 11904: 0xDC68, + 37392 - 11904: 0xB678, + 37393 - 11904: 0xB67A, + 37394 - 11904: 0xDC6B, + 37395 - 11904: 0x99F7, + 37396 - 11904: 0xB672, + 37397 - 11904: 0xB673, + 37398 - 11904: 0xDC77, + 37399 - 11904: 0xDC75, + 37400 - 11904: 0x87B2, + 37401 - 11904: 0xDC74, + 37402 - 11904: 0xDC66, + 37404 - 11904: 0xDC72, + 37406 - 11904: 0xB676, + 37409 - 11904: 0x8CBF, + 37411 - 11904: 0xB674, + 37412 - 11904: 0xDC73, + 37413 - 11904: 0xDC64, + 37414 - 11904: 0xDC67, + 37415 - 11904: 0xDC70, + 37416 - 11904: 0x99F9, + 37418 - 11904: 0x9663, + 37419 - 11904: 0x95B9, + 37421 - 11904: 0xE4BA, + 37422 - 11904: 0xE0B7, + 37424 - 11904: 0xE0B0, + 37425 - 11904: 0xE0C3, + 37426 - 11904: 0xE0CC, + 37427 - 11904: 0xE0B3, + 37428 - 11904: 0xB961, + 37429 - 11904: 0x94D4, + 37430 - 11904: 0xE0C0, + 37431 - 11904: 0xB957, + 37432 - 11904: 0xB959, + 37433 - 11904: 0xB965, + 37434 - 11904: 0xE0B1, + 37436 - 11904: 0xFCFA, + 37437 - 11904: 0xB95A, + 37438 - 11904: 0xB95C, + 37439 - 11904: 0xB966, + 37440 - 11904: 0xB95B, + 37441 - 11904: 0x9077, + 37444 - 11904: 0x90AB, + 37445 - 11904: 0xB964, + 37446 - 11904: 0xE0B9, + 37448 - 11904: 0xE0AE, + 37449 - 11904: 0xB962, + 37450 - 11904: 0xE0B8, + 37451 - 11904: 0xB95E, + 37452 - 11904: 0xE0CA, + 37453 - 11904: 0xB963, + 37454 - 11904: 0xE0C8, + 37455 - 11904: 0xE0BC, + 37456 - 11904: 0xE0C6, + 37457 - 11904: 0xB960, + 37458 - 11904: 0xE0AF, + 37459 - 11904: 0xE0C9, + 37460 - 11904: 0xE0C4, + 37461 - 11904: 0x9D4D, + 37462 - 11904: 0xE0CB, + 37463 - 11904: 0xB958, + 37464 - 11904: 0x99FA, + 37466 - 11904: 0xB967, + 37467 - 11904: 0xB95D, + 37469 - 11904: 0x92E3, + 37470 - 11904: 0xE0B5, + 37471 - 11904: 0x97BB, + 37472 - 11904: 0xE0BD, + 37473 - 11904: 0xE0C1, + 37474 - 11904: 0x9078, + 37475 - 11904: 0xE0C5, + 37476 - 11904: 0xB95F, + 37477 - 11904: 0xE0B4, + 37478 - 11904: 0xE0B2, + 37479 - 11904: 0xE0BE, + 37483 - 11904: 0x99FB, + 37484 - 11904: 0xE0BB, + 37485 - 11904: 0xE0BA, + 37486 - 11904: 0x97E0, + 37487 - 11904: 0xE0BF, + 37488 - 11904: 0xE0C2, + 37490 - 11904: 0xE0C7, + 37494 - 11904: 0xE478, + 37495 - 11904: 0x96DC, + 37496 - 11904: 0xBBC7, + 37497 - 11904: 0xE4A4, + 37498 - 11904: 0xE47A, + 37499 - 11904: 0xBBCC, + 37500 - 11904: 0xBBD0, + 37501 - 11904: 0xE4AD, + 37502 - 11904: 0xE4B5, + 37503 - 11904: 0xE4A6, + 37504 - 11904: 0xBBC8, + 37505 - 11904: 0x9CA8, + 37506 - 11904: 0xE4AA, + 37507 - 11904: 0xE0B6, + 37508 - 11904: 0x9772, + 37509 - 11904: 0xBBC9, + 37510 - 11904: 0xE4B1, + 37511 - 11904: 0xE4B6, + 37512 - 11904: 0xE4AE, + 37513 - 11904: 0x9440, + 37514 - 11904: 0xE4B0, + 37515 - 11904: 0xE4B9, + 37516 - 11904: 0xE4B2, + 37517 - 11904: 0xE47E, + 37518 - 11904: 0xE4A9, + 37519 - 11904: 0x92F2, + 37521 - 11904: 0xBBD1, + 37523 - 11904: 0xBBCD, + 37524 - 11904: 0xE47C, + 37525 - 11904: 0xE4AB, + 37526 - 11904: 0xBBCB, + 37527 - 11904: 0xE4A5, + 37528 - 11904: 0xBBCA, + 37529 - 11904: 0xE4B3, + 37530 - 11904: 0xE4A2, + 37531 - 11904: 0xE479, + 37532 - 11904: 0xBBCE, + 37533 - 11904: 0xE4B8, + 37536 - 11904: 0xE47B, + 37537 - 11904: 0xE4AF, + 37538 - 11904: 0xE4AC, + 37539 - 11904: 0xE4A7, + 37540 - 11904: 0xE477, + 37541 - 11904: 0xE476, + 37542 - 11904: 0xE4A1, + 37543 - 11904: 0xE4B4, + 37544 - 11904: 0xBBCF, + 37545 - 11904: 0xE4B7, + 37546 - 11904: 0xE47D, + 37547 - 11904: 0xE4A3, + 37548 - 11904: 0xBE52, + 37550 - 11904: 0x99FD, + 37553 - 11904: 0x99FC, + 37554 - 11904: 0xBE5A, + 37555 - 11904: 0xBE55, + 37556 - 11904: 0xE8A4, + 37557 - 11904: 0xE8A1, + 37558 - 11904: 0xE867, + 37559 - 11904: 0xBE50, + 37561 - 11904: 0xF9D7, + 37562 - 11904: 0x964A, + 37563 - 11904: 0xBE4F, + 37564 - 11904: 0xBE56, + 37566 - 11904: 0x96D8, + 37567 - 11904: 0x99FE, + 37568 - 11904: 0xE865, + 37569 - 11904: 0xBE54, + 37570 - 11904: 0xE871, + 37571 - 11904: 0xE863, + 37572 - 11904: 0xE864, + 37573 - 11904: 0xBE4E, + 37574 - 11904: 0xE8A3, + 37575 - 11904: 0xBE58, + 37576 - 11904: 0xE874, + 37577 - 11904: 0xE879, + 37578 - 11904: 0xE873, + 37579 - 11904: 0xEBEE, + 37580 - 11904: 0xE86F, + 37581 - 11904: 0xE877, + 37582 - 11904: 0xE875, + 37583 - 11904: 0xE868, + 37584 - 11904: 0xE862, + 37585 - 11904: 0xE87D, + 37586 - 11904: 0xBE57, + 37587 - 11904: 0xE87E, + 37588 - 11904: 0x904B, + 37589 - 11904: 0xE878, + 37591 - 11904: 0xE86D, + 37592 - 11904: 0xE86B, + 37593 - 11904: 0xE866, + 37595 - 11904: 0xFA41, + 37597 - 11904: 0xE86E, + 37598 - 11904: 0xE87B, + 37599 - 11904: 0xE86A, + 37600 - 11904: 0xE87A, + 37601 - 11904: 0xE8A2, + 37603 - 11904: 0x9A40, + 37604 - 11904: 0xBE53, + 37605 - 11904: 0x975B, + 37606 - 11904: 0xE876, + 37607 - 11904: 0xE87C, + 37608 - 11904: 0xE872, + 37609 - 11904: 0xE86C, + 37610 - 11904: 0xBE51, + 37611 - 11904: 0x9A41, + 37612 - 11904: 0x91DD, + 37614 - 11904: 0xE4A8, + 37615 - 11904: 0xE870, + 37616 - 11904: 0xBE59, + 37617 - 11904: 0xE869, + 37618 - 11904: 0x93FC, + 37619 - 11904: 0x9A42, + 37620 - 11904: 0x9A43, + 37622 - 11904: 0x9659, + 37623 - 11904: 0xEBF4, + 37624 - 11904: 0xBFF7, + 37625 - 11904: 0xEBF3, + 37626 - 11904: 0xEBF0, + 37627 - 11904: 0xEC44, + 37628 - 11904: 0xBFFB, + 37629 - 11904: 0x9A44, + 37630 - 11904: 0xEC41, + 37631 - 11904: 0xEBF8, + 37632 - 11904: 0xEC43, + 37633 - 11904: 0xEBE9, + 37634 - 11904: 0xEBF6, + 37635 - 11904: 0x9051, + 37636 - 11904: 0xBFFD, + 37638 - 11904: 0xEBE1, + 37639 - 11904: 0x94BF, + 37640 - 11904: 0xEBDF, + 37641 - 11904: 0xEC42, + 37643 - 11904: 0xEC40, + 37644 - 11904: 0xEBFE, + 37645 - 11904: 0xEBED, + 37646 - 11904: 0xEBEC, + 37647 - 11904: 0xEBE2, + 37648 - 11904: 0xC040, + 37650 - 11904: 0xEBE8, + 37651 - 11904: 0xEBF2, + 37652 - 11904: 0xEBFD, + 37653 - 11904: 0xC043, + 37654 - 11904: 0xEC45, + 37656 - 11904: 0xC1E8, + 37657 - 11904: 0xC045, + 37658 - 11904: 0xBFFE, + 37659 - 11904: 0xEBE6, + 37661 - 11904: 0xEBEF, + 37662 - 11904: 0xEBDE, + 37663 - 11904: 0xEBE0, + 37664 - 11904: 0xBFF5, + 37665 - 11904: 0xC042, + 37666 - 11904: 0xBFFA, + 37667 - 11904: 0xEBE7, + 37668 - 11904: 0xEBF7, + 37669 - 11904: 0xEBF1, + 37670 - 11904: 0xC041, + 37671 - 11904: 0xEBDD, + 37672 - 11904: 0xC1E3, + 37673 - 11904: 0xEBF9, + 37674 - 11904: 0xEBFC, + 37675 - 11904: 0xBFFC, + 37676 - 11904: 0x90A2, + 37677 - 11904: 0xEBEB, + 37678 - 11904: 0xC044, + 37679 - 11904: 0xBFF9, + 37680 - 11904: 0x9CAB, + 37681 - 11904: 0x9776, + 37683 - 11904: 0xBFF8, + 37684 - 11904: 0xEBF5, + 37685 - 11904: 0xEBFB, + 37686 - 11904: 0xBFF6, + 37688 - 11904: 0xEBE4, + 37689 - 11904: 0xEBFA, + 37692 - 11904: 0xEBE5, + 37696 - 11904: 0xFC55, + 37697 - 11904: 0xFE45, + 37698 - 11904: 0x94A8, + 37699 - 11904: 0x9A45, + 37700 - 11904: 0xFA4B, + 37701 - 11904: 0x9DE1, + 37702 - 11904: 0xEBEA, + 37703 - 11904: 0xEED2, + 37704 - 11904: 0x96D9, + 37705 - 11904: 0xEED7, + 37706 - 11904: 0xC1E5, + 37707 - 11904: 0xC1E7, + 37708 - 11904: 0xEEDD, + 37709 - 11904: 0xC1E1, + 37710 - 11904: 0xEEEC, + 37711 - 11904: 0xEEE3, + 37712 - 11904: 0xEED8, + 37713 - 11904: 0xEED9, + 37714 - 11904: 0xEEE2, + 37716 - 11904: 0xC1EE, + 37717 - 11904: 0xEEE1, + 37718 - 11904: 0xEED1, + 37719 - 11904: 0xEEE0, + 37720 - 11904: 0xEED4, + 37721 - 11904: 0xEEED, + 37722 - 11904: 0xC1ED, + 37723 - 11904: 0xC1EB, + 37724 - 11904: 0xEED5, + 37726 - 11904: 0xEEE8, + 37727 - 11904: 0x9774, + 37728 - 11904: 0xEEDA, + 37729 - 11904: 0xEEE7, + 37730 - 11904: 0xFDF5, + 37731 - 11904: 0xEEE9, + 37732 - 11904: 0xEED0, + 37733 - 11904: 0xC1E6, + 37734 - 11904: 0x92E5, + 37735 - 11904: 0xEEEA, + 37736 - 11904: 0x9645, + 37737 - 11904: 0x91DA, + 37738 - 11904: 0xEEDE, + 37739 - 11904: 0x90A3, + 37740 - 11904: 0xC1EA, + 37741 - 11904: 0xEEDB, + 37742 - 11904: 0xA05F, + 37744 - 11904: 0xC1EC, + 37745 - 11904: 0xEEE4, + 37747 - 11904: 0x90AF, + 37748 - 11904: 0x97BF, + 37749 - 11904: 0xC1E4, + 37750 - 11904: 0xEED6, + 37751 - 11904: 0xEEE5, + 37752 - 11904: 0x914C, + 37753 - 11904: 0xEEDF, + 37754 - 11904: 0xEBE3, + 37755 - 11904: 0xEEE6, + 37756 - 11904: 0xEED3, + 37757 - 11904: 0x967A, + 37758 - 11904: 0xC1E9, + 37760 - 11904: 0xEEEB, + 37761 - 11904: 0x91DE, + 37762 - 11904: 0xC1E2, + 37763 - 11904: 0xEECE, + 37764 - 11904: 0x9A46, + 37765 - 11904: 0xFEB0, + 37766 - 11904: 0x9779, + 37767 - 11904: 0x946C, + 37768 - 11904: 0xF160, + 37769 - 11904: 0xF159, + 37770 - 11904: 0xC2E9, + 37772 - 11904: 0xF154, + 37773 - 11904: 0xF163, + 37774 - 11904: 0xF15B, + 37775 - 11904: 0xEEDC, + 37776 - 11904: 0x9858, + 37777 - 11904: 0xF165, + 37778 - 11904: 0xF155, + 37780 - 11904: 0xC2E8, + 37781 - 11904: 0xF15F, + 37782 - 11904: 0xC2EA, + 37783 - 11904: 0xC2F2, + 37784 - 11904: 0xC2F0, + 37785 - 11904: 0xF161, + 37786 - 11904: 0xC2F1, + 37787 - 11904: 0xF157, + 37788 - 11904: 0x9266, + 37789 - 11904: 0xF158, + 37790 - 11904: 0xF15D, + 37791 - 11904: 0xF162, + 37792 - 11904: 0x93FB, + 37793 - 11904: 0xEECD, + 37794 - 11904: 0xC2EB, + 37795 - 11904: 0xF16A, + 37796 - 11904: 0xF167, + 37797 - 11904: 0xF16B, + 37798 - 11904: 0xF15E, + 37799 - 11904: 0xF15A, + 37800 - 11904: 0xF168, + 37801 - 11904: 0xF36A, + 37802 - 11904: 0xF15C, + 37804 - 11904: 0xC2EE, + 37805 - 11904: 0x9A47, + 37806 - 11904: 0xC2ED, + 37807 - 11904: 0xEECF, + 37808 - 11904: 0xC2EF, + 37809 - 11904: 0xF164, + 37810 - 11904: 0xF166, + 37811 - 11904: 0xC2EC, + 37812 - 11904: 0xF169, + 37813 - 11904: 0xF153, + 37815 - 11904: 0xF156, + 37816 - 11904: 0x9749, + 37819 - 11904: 0x9748, + 37821 - 11904: 0x934A, + 37823 - 11904: 0x9CE2, + 37824 - 11904: 0xF373, + 37826 - 11904: 0xF363, + 37827 - 11904: 0xC3EB, + 37828 - 11904: 0xF371, + 37830 - 11904: 0x9264, + 37831 - 11904: 0xF361, + 37832 - 11904: 0xC3EC, + 37834 - 11904: 0xF36C, + 37835 - 11904: 0x91DF, + 37836 - 11904: 0xF368, + 37837 - 11904: 0xC3F1, + 37838 - 11904: 0xF372, + 37839 - 11904: 0xF362, + 37840 - 11904: 0xF365, + 37841 - 11904: 0xC3E9, + 37842 - 11904: 0xF374, + 37843 - 11904: 0xFB79, + 37844 - 11904: 0xF36D, + 37845 - 11904: 0xF370, + 37846 - 11904: 0xC3EF, + 37847 - 11904: 0xC3F4, + 37848 - 11904: 0xC3F2, + 37849 - 11904: 0xF369, + 37850 - 11904: 0xF364, + 37851 - 11904: 0x96D7, + 37852 - 11904: 0xC3ED, + 37853 - 11904: 0xC3EE, + 37854 - 11904: 0xF360, + 37855 - 11904: 0xC3EA, + 37856 - 11904: 0x9343, + 37857 - 11904: 0xC3E8, + 37858 - 11904: 0xC3F0, + 37859 - 11904: 0xF36F, + 37860 - 11904: 0xC3F3, + 37862 - 11904: 0xF36B, + 37863 - 11904: 0xF375, + 37864 - 11904: 0xC3F5, + 37868 - 11904: 0xF367, + 37870 - 11904: 0xF36E, + 37872 - 11904: 0xFDCB, + 37873 - 11904: 0xFE7A, + 37875 - 11904: 0x91DB, + 37876 - 11904: 0x8C6A, + 37877 - 11904: 0xF4F3, + 37878 - 11904: 0xF542, + 37879 - 11904: 0xF4F5, + 37880 - 11904: 0xF4FC, + 37881 - 11904: 0xF366, + 37882 - 11904: 0xF4FA, + 37883 - 11904: 0xF4E9, + 37884 - 11904: 0xF540, + 37885 - 11904: 0xC4C3, + 37886 - 11904: 0xF4ED, + 37887 - 11904: 0xF4FE, + 37888 - 11904: 0xF4F4, + 37889 - 11904: 0x97AF, + 37891 - 11904: 0xC4C2, + 37892 - 11904: 0x95DD, + 37894 - 11904: 0xF544, + 37895 - 11904: 0xF4F6, + 37896 - 11904: 0x9348, + 37897 - 11904: 0xF4FB, + 37898 - 11904: 0xF4FD, + 37899 - 11904: 0xF4E7, + 37900 - 11904: 0xF541, + 37901 - 11904: 0xF4F2, + 37902 - 11904: 0xF4F7, + 37903 - 11904: 0xF4EB, + 37904 - 11904: 0xF4EF, + 37905 - 11904: 0xF543, + 37906 - 11904: 0xF4F9, + 37907 - 11904: 0xF4E8, + 37908 - 11904: 0xF4EC, + 37909 - 11904: 0xF4EE, + 37910 - 11904: 0xF4F8, + 37911 - 11904: 0x9A4B, + 37912 - 11904: 0xC4C1, + 37913 - 11904: 0xF4F1, + 37915 - 11904: 0xFC45, + 37917 - 11904: 0x9A4D, + 37920 - 11904: 0xF4EA, + 37924 - 11904: 0x91BC, + 37925 - 11904: 0x90E2, + 37926 - 11904: 0x90B4, + 37927 - 11904: 0x95E1, + 37928 - 11904: 0xF4F0, + 37929 - 11904: 0xF661, + 37930 - 11904: 0xF666, + 37931 - 11904: 0xC54F, + 37932 - 11904: 0xF668, + 37933 - 11904: 0x9A4E, + 37934 - 11904: 0xC549, + 37935 - 11904: 0x87AD, + 37936 - 11904: 0xF664, + 37937 - 11904: 0xF66A, + 37938 - 11904: 0xC54E, + 37939 - 11904: 0xC54A, + 37941 - 11904: 0xC54B, + 37942 - 11904: 0xF660, + 37943 - 11904: 0xF667, + 37944 - 11904: 0xC54D, + 37945 - 11904: 0xF665, + 37946 - 11904: 0xC54C, + 37947 - 11904: 0xF65F, + 37948 - 11904: 0xF663, + 37949 - 11904: 0xF662, + 37950 - 11904: 0x9A4F, + 37951 - 11904: 0xF65E, + 37952 - 11904: 0xF669, + 37954 - 11904: 0xFE40, + 37955 - 11904: 0xFE43, + 37956 - 11904: 0xC5B1, + 37957 - 11904: 0xF76D, + 37958 - 11904: 0xF770, + 37959 - 11904: 0xF76C, + 37960 - 11904: 0xF76E, + 37961 - 11904: 0xF76F, + 37962 - 11904: 0xF769, + 37963 - 11904: 0xF76A, + 37964 - 11904: 0xF767, + 37965 - 11904: 0x96DD, + 37967 - 11904: 0xF76B, + 37968 - 11904: 0xF768, + 37969 - 11904: 0xC5B2, + 37970 - 11904: 0xC5B3, + 37972 - 11904: 0x9A51, + 37973 - 11904: 0xF84B, + 37975 - 11904: 0xF84D, + 37976 - 11904: 0x96A7, + 37979 - 11904: 0x90B0, + 37981 - 11904: 0xF84C, + 37982 - 11904: 0xF84E, + 37984 - 11904: 0xC5E0, + 37986 - 11904: 0xF84A, + 37987 - 11904: 0xC5DF, + 37988 - 11904: 0xC5E1, + 37989 - 11904: 0x9C4E, + 37991 - 11904: 0x9443, + 37992 - 11904: 0xF8CB, + 37993 - 11904: 0xF8CC, + 37994 - 11904: 0xC644, + 37995 - 11904: 0xF8CA, + 37996 - 11904: 0x8EBA, + 37997 - 11904: 0xF953, + 37998 - 11904: 0xF952, + 37999 - 11904: 0xF954, + 38000 - 11904: 0xC65F, + 38001 - 11904: 0xF955, + 38002 - 11904: 0xC65E, + 38003 - 11904: 0xF956, + 38004 - 11904: 0xF972, + 38005 - 11904: 0xF975, + 38006 - 11904: 0xF974, + 38007 - 11904: 0xC668, + 38008 - 11904: 0xF973, + 38009 - 11904: 0x9A52, + 38011 - 11904: 0xFCC1, + 38012 - 11904: 0xC672, + 38013 - 11904: 0xC670, + 38014 - 11904: 0xC671, + 38015 - 11904: 0xC677, + 38016 - 11904: 0xF9C0, + 38017 - 11904: 0xF9C1, + 38018 - 11904: 0xF9BF, + 38019 - 11904: 0xF9C9, + 38021 - 11904: 0x8BE9, + 38047 - 11904: 0x9CAF, + 38050 - 11904: 0x8BFD, + 38081 - 11904: 0x9ABC, + 38083 - 11904: 0x9AB8, + 38108 - 11904: 0x9AAE, + 38134 - 11904: 0x9AA7, + 38189 - 11904: 0x9A53, + 38215 - 11904: 0x9D74, + 38263 - 11904: 0xAAF8, + 38264 - 11904: 0x8BEA, + 38266 - 11904: 0xD844, + 38267 - 11904: 0xDC78, + 38268 - 11904: 0xE8A5, + 38269 - 11904: 0xF376, + 38271 - 11904: 0x8BEB, + 38272 - 11904: 0xAAF9, + 38274 - 11904: 0xADAC, + 38275 - 11904: 0xB07B, + 38277 - 11904: 0x90B2, + 38278 - 11904: 0xD845, + 38280 - 11904: 0xD846, + 38281 - 11904: 0xB3AC, + 38283 - 11904: 0xB67D, + 38284 - 11904: 0xDC7A, + 38285 - 11904: 0xDC79, + 38286 - 11904: 0xB6A3, + 38287 - 11904: 0xB67C, + 38288 - 11904: 0xDC7B, + 38289 - 11904: 0xB67E, + 38290 - 11904: 0xB6A2, + 38291 - 11904: 0xB6A1, + 38292 - 11904: 0xB67B, + 38294 - 11904: 0x95E9, + 38295 - 11904: 0x95E8, + 38296 - 11904: 0xB968, + 38297 - 11904: 0x95E6, + 38299 - 11904: 0xE0D0, + 38300 - 11904: 0xE0CE, + 38302 - 11904: 0xE0CF, + 38303 - 11904: 0xE0CD, + 38304 - 11904: 0x90B5, + 38305 - 11904: 0xBBD2, + 38306 - 11904: 0x9A54, + 38307 - 11904: 0xBBD5, + 38308 - 11904: 0xBBD7, + 38309 - 11904: 0xBBD6, + 38310 - 11904: 0x90B3, + 38311 - 11904: 0x95E7, + 38312 - 11904: 0xBBD3, + 38313 - 11904: 0xBBD4, + 38314 - 11904: 0x8B50, + 38315 - 11904: 0xE8A7, + 38316 - 11904: 0xE8A6, + 38317 - 11904: 0xBE5B, + 38318 - 11904: 0xE8A8, + 38320 - 11904: 0xE8A9, + 38321 - 11904: 0xBE5C, + 38325 - 11904: 0xEC4D, + 38326 - 11904: 0xEC4B, + 38327 - 11904: 0xEEF3, + 38329 - 11904: 0xEC49, + 38330 - 11904: 0xEC4A, + 38331 - 11904: 0xC046, + 38332 - 11904: 0xEC46, + 38333 - 11904: 0xEC4E, + 38334 - 11904: 0xEC48, + 38335 - 11904: 0xEC4C, + 38336 - 11904: 0xEEEF, + 38339 - 11904: 0xEEF1, + 38341 - 11904: 0xEEF2, + 38342 - 11904: 0xC1F3, + 38343 - 11904: 0xEEEE, + 38344 - 11904: 0xC1F2, + 38345 - 11904: 0xEEF0, + 38346 - 11904: 0xC1EF, + 38347 - 11904: 0xC1F0, + 38348 - 11904: 0xC1F1, + 38349 - 11904: 0xEC47, + 38352 - 11904: 0xC2F5, + 38353 - 11904: 0xF16E, + 38354 - 11904: 0xF16C, + 38355 - 11904: 0xF16D, + 38356 - 11904: 0xC2F3, + 38357 - 11904: 0xC2F6, + 38358 - 11904: 0xC2F4, + 38362 - 11904: 0xF377, + 38363 - 11904: 0xF378, + 38364 - 11904: 0xC3F6, + 38366 - 11904: 0xF545, + 38367 - 11904: 0xF547, + 38368 - 11904: 0xF546, + 38369 - 11904: 0xC4C4, + 38370 - 11904: 0xC550, + 38371 - 11904: 0xF66D, + 38372 - 11904: 0xF66C, + 38373 - 11904: 0xF66B, + 38376 - 11904: 0x8BEC, + 38388 - 11904: 0x9A56, + 38428 - 11904: 0xAAFA, + 38429 - 11904: 0x8BFB, + 38430 - 11904: 0xC9AA, + 38432 - 11904: 0xCA58, + 38433 - 11904: 0xA6E9, + 38434 - 11904: 0xCA56, + 38435 - 11904: 0xCA59, + 38436 - 11904: 0xCA57, + 38440 - 11904: 0xCBAE, + 38442 - 11904: 0xA8C1, + 38444 - 11904: 0xA8C2, + 38445 - 11904: 0xCBB0, + 38446 - 11904: 0xA8BF, + 38447 - 11904: 0xCBAF, + 38448 - 11904: 0xCBAD, + 38449 - 11904: 0xA8C0, + 38450 - 11904: 0xA8BE, + 38451 - 11904: 0x9A57, + 38456 - 11904: 0xA0AA, + 38457 - 11904: 0xCDD8, + 38458 - 11904: 0xCDDB, + 38459 - 11904: 0xAAFD, + 38460 - 11904: 0xCDDA, + 38461 - 11904: 0xCDD9, + 38463 - 11904: 0xAAFC, + 38464 - 11904: 0xAAFB, + 38465 - 11904: 0x9FA6, + 38466 - 11904: 0xAB40, + 38467 - 11904: 0xCDDC, + 38468 - 11904: 0xAAFE, + 38469 - 11904: 0x99CC, + 38474 - 11904: 0xD0C6, + 38475 - 11904: 0xADAE, + 38476 - 11904: 0xADAF, + 38477 - 11904: 0xADB0, + 38478 - 11904: 0xD0C7, + 38479 - 11904: 0xD0C3, + 38480 - 11904: 0xADAD, + 38481 - 11904: 0xD0C4, + 38483 - 11904: 0xD0C5, + 38484 - 11904: 0xD0C2, + 38486 - 11904: 0x9C59, + 38488 - 11904: 0xB0A4, + 38491 - 11904: 0xB0A1, + 38492 - 11904: 0xD445, + 38493 - 11904: 0xB0A2, + 38494 - 11904: 0xB0A5, + 38495 - 11904: 0xD446, + 38497 - 11904: 0xB07E, + 38498 - 11904: 0xB07C, + 38499 - 11904: 0xB07D, + 38500 - 11904: 0xB0A3, + 38505 - 11904: 0x99B5, + 38506 - 11904: 0xB3AD, + 38507 - 11904: 0xD849, + 38508 - 11904: 0xB3B5, + 38509 - 11904: 0xD848, + 38511 - 11904: 0xD84B, + 38512 - 11904: 0xB3B1, + 38513 - 11904: 0xD84A, + 38514 - 11904: 0xB6AB, + 38515 - 11904: 0xB3AF, + 38516 - 11904: 0xB3B2, + 38517 - 11904: 0xB3AE, + 38518 - 11904: 0xB3B3, + 38519 - 11904: 0xB3B4, + 38520 - 11904: 0xB3B0, + 38523 - 11904: 0x90BE, + 38524 - 11904: 0xD847, + 38525 - 11904: 0xB6A7, + 38526 - 11904: 0xDC7D, + 38528 - 11904: 0xDCA3, + 38529 - 11904: 0x9FAF, + 38531 - 11904: 0xDCA2, + 38532 - 11904: 0xB6AC, + 38533 - 11904: 0xB6A8, + 38534 - 11904: 0xB6A9, + 38535 - 11904: 0xDC7C, + 38536 - 11904: 0xDC7E, + 38537 - 11904: 0xDCA1, + 38538 - 11904: 0xB6A4, + 38539 - 11904: 0xB6A6, + 38541 - 11904: 0xB6AA, + 38542 - 11904: 0xB6A5, + 38543 - 11904: 0x95F2, + 38545 - 11904: 0xE0D3, + 38546 - 11904: 0xE0D1, + 38547 - 11904: 0xE0D2, + 38548 - 11904: 0xB96A, + 38549 - 11904: 0xB96B, + 38550 - 11904: 0x90BF, + 38551 - 11904: 0xE0D4, + 38552 - 11904: 0xB969, + 38553 - 11904: 0xBBD8, + 38555 - 11904: 0xBBDA, + 38556 - 11904: 0xBBD9, + 38558 - 11904: 0xE4BB, + 38561 - 11904: 0xE4BC, + 38562 - 11904: 0xE8AB, + 38563 - 11904: 0x90C1, + 38564 - 11904: 0xE8AA, + 38565 - 11904: 0xFEE4, + 38567 - 11904: 0xC047, + 38568 - 11904: 0xC048, + 38569 - 11904: 0xEC4F, + 38570 - 11904: 0xC049, + 38572 - 11904: 0xEEF6, + 38574 - 11904: 0xEEF4, + 38576 - 11904: 0xEEF5, + 38577 - 11904: 0xC1F4, + 38579 - 11904: 0xF16F, + 38580 - 11904: 0xC3F7, + 38582 - 11904: 0xC6D7, + 38584 - 11904: 0xC1F5, + 38585 - 11904: 0xAB41, + 38587 - 11904: 0xB0A6, + 38588 - 11904: 0xD447, + 38589 - 11904: 0x90C7, + 38591 - 11904: 0xD84C, + 38592 - 11904: 0xB3B6, + 38593 - 11904: 0xB6AD, + 38594 - 11904: 0xDCA4, + 38595 - 11904: 0xDCA6, + 38596 - 11904: 0xB6AF, + 38597 - 11904: 0xB6AE, + 38598 - 11904: 0xB6B0, + 38599 - 11904: 0xB6B1, + 38600 - 11904: 0xDCA5, + 38601 - 11904: 0xB96E, + 38602 - 11904: 0xB96F, + 38603 - 11904: 0xB96D, + 38604 - 11904: 0xBBDB, + 38605 - 11904: 0xB96C, + 38606 - 11904: 0xE0D5, + 38610 - 11904: 0xBBDC, + 38611 - 11904: 0xE8AC, + 38612 - 11904: 0xEC50, + 38613 - 11904: 0xC04A, + 38614 - 11904: 0xC1F6, + 38615 - 11904: 0xF170, + 38616 - 11904: 0xF174, + 38617 - 11904: 0xC2F9, + 38618 - 11904: 0xF171, + 38619 - 11904: 0xC2FA, + 38620 - 11904: 0xC2F8, + 38621 - 11904: 0xF175, + 38622 - 11904: 0xC2FB, + 38623 - 11904: 0xF173, + 38625 - 11904: 0xF379, + 38626 - 11904: 0xC2F7, + 38627 - 11904: 0xC3F8, + 38629 - 11904: 0xF8CD, + 38632 - 11904: 0xAB42, + 38633 - 11904: 0xB3B8, + 38634 - 11904: 0xB3B7, + 38639 - 11904: 0xB6B2, + 38640 - 11904: 0xDCA8, + 38641 - 11904: 0xDCA7, + 38642 - 11904: 0xB6B3, + 38644 - 11904: 0x92E4, + 38645 - 11904: 0xE0D9, + 38646 - 11904: 0xB973, + 38647 - 11904: 0xB970, + 38648 - 11904: 0xE0D8, + 38649 - 11904: 0xB972, + 38650 - 11904: 0xE0D6, + 38651 - 11904: 0xB971, + 38653 - 11904: 0xE0D7, + 38655 - 11904: 0xE4BD, + 38656 - 11904: 0xBBDD, + 38658 - 11904: 0xE8AF, + 38659 - 11904: 0x9F52, + 38660 - 11904: 0xBE5D, + 38661 - 11904: 0xE8AD, + 38662 - 11904: 0xBE5E, + 38663 - 11904: 0xBE5F, + 38664 - 11904: 0xE8AE, + 38665 - 11904: 0xBE60, + 38667 - 11904: 0xEC51, + 38669 - 11904: 0xC04E, + 38670 - 11904: 0xC04B, + 38671 - 11904: 0xC050, + 38672 - 11904: 0xEC53, + 38673 - 11904: 0xC04C, + 38674 - 11904: 0xEC52, + 38675 - 11904: 0xC04F, + 38678 - 11904: 0xC04D, + 38680 - 11904: 0xEEF9, + 38681 - 11904: 0xEEFB, + 38683 - 11904: 0x90DB, + 38684 - 11904: 0xC1F7, + 38685 - 11904: 0xEEFA, + 38686 - 11904: 0xC1F8, + 38687 - 11904: 0xEEF8, + 38688 - 11904: 0xEEF7, + 38689 - 11904: 0xA066, + 38690 - 11904: 0xF177, + 38691 - 11904: 0xF176, + 38692 - 11904: 0xC2FC, + 38693 - 11904: 0xF178, + 38694 - 11904: 0xF37E, + 38695 - 11904: 0xC3FA, + 38696 - 11904: 0xF37D, + 38697 - 11904: 0xF37A, + 38698 - 11904: 0xC3F9, + 38699 - 11904: 0xF37B, + 38700 - 11904: 0xF37C, + 38702 - 11904: 0xF548, + 38703 - 11904: 0xF549, + 38704 - 11904: 0xC4C5, + 38705 - 11904: 0x90D2, + 38706 - 11904: 0xC553, + 38708 - 11904: 0x876B, + 38709 - 11904: 0xF66E, + 38710 - 11904: 0x90D4, + 38712 - 11904: 0xC551, + 38713 - 11904: 0xC552, + 38714 - 11904: 0xF66F, + 38717 - 11904: 0xC5B4, + 38718 - 11904: 0xC5B5, + 38719 - 11904: 0xF771, + 38720 - 11904: 0x9A5B, + 38721 - 11904: 0x95FD, + 38722 - 11904: 0xC645, + 38723 - 11904: 0xF8CF, + 38724 - 11904: 0xC647, + 38726 - 11904: 0xF8CE, + 38727 - 11904: 0xF8D0, + 38728 - 11904: 0xC646, + 38729 - 11904: 0xF957, + 38730 - 11904: 0x87B1, + 38731 - 11904: 0xF9AD, + 38737 - 11904: 0x8BC4, + 38738 - 11904: 0xAB43, + 38741 - 11904: 0x8C66, + 38742 - 11904: 0xB974, + 38743 - 11904: 0x90DE, + 38744 - 11904: 0xE4BE, + 38746 - 11904: 0xE8B0, + 38747 - 11904: 0xC051, + 38748 - 11904: 0xC052, + 38749 - 11904: 0x9CE4, + 38750 - 11904: 0xAB44, + 38751 - 11904: 0x90E1, + 38752 - 11904: 0xBE61, + 38753 - 11904: 0xC3FB, + 38754 - 11904: 0xADB1, + 38758 - 11904: 0xC053, + 38760 - 11904: 0xC5E2, + 38761 - 11904: 0xADB2, + 38762 - 11904: 0xD84D, + 38764 - 11904: 0xDCA9, + 38765 - 11904: 0x9E46, + 38766 - 11904: 0xDCAB, + 38768 - 11904: 0xDCAA, + 38769 - 11904: 0x9651, + 38770 - 11904: 0xE0DD, + 38771 - 11904: 0xE0DA, + 38772 - 11904: 0xB975, + 38774 - 11904: 0xB976, + 38775 - 11904: 0xE0DB, + 38776 - 11904: 0xE0DC, + 38778 - 11904: 0xE4C0, + 38779 - 11904: 0xE4C5, + 38780 - 11904: 0xBBDE, + 38781 - 11904: 0xE4BF, + 38782 - 11904: 0xE4C1, + 38783 - 11904: 0xE4C8, + 38784 - 11904: 0xE4C3, + 38785 - 11904: 0xE4C7, + 38786 - 11904: 0xE4C4, + 38787 - 11904: 0xE4C2, + 38788 - 11904: 0xE4C6, + 38789 - 11904: 0xBBDF, + 38791 - 11904: 0xFB58, + 38792 - 11904: 0xE8B3, + 38793 - 11904: 0x90E6, + 38794 - 11904: 0xE8B1, + 38795 - 11904: 0xBE63, + 38797 - 11904: 0xBE62, + 38798 - 11904: 0xE8B2, + 38799 - 11904: 0xBE64, + 38804 - 11904: 0xEC56, + 38807 - 11904: 0xEC55, + 38808 - 11904: 0xC054, + 38809 - 11904: 0xEC54, + 38810 - 11904: 0xEEFC, + 38811 - 11904: 0x9650, + 38812 - 11904: 0xEEFE, + 38813 - 11904: 0xEF41, + 38814 - 11904: 0xEF40, + 38815 - 11904: 0x90E7, + 38816 - 11904: 0xC1F9, + 38817 - 11904: 0xEEFD, + 38818 - 11904: 0xF1A1, + 38819 - 11904: 0xC2FD, + 38820 - 11904: 0xF17D, + 38821 - 11904: 0xF1A2, + 38822 - 11904: 0xC2FE, + 38824 - 11904: 0xF17B, + 38826 - 11904: 0xF17E, + 38827 - 11904: 0xF17C, + 38828 - 11904: 0xF179, + 38829 - 11904: 0xC340, + 38830 - 11904: 0xF17A, + 38833 - 11904: 0x90E8, + 38834 - 11904: 0x9A5D, + 38835 - 11904: 0xF3A1, + 38836 - 11904: 0x9F7A, + 38838 - 11904: 0xF3A3, + 38839 - 11904: 0xF3A2, + 38840 - 11904: 0x9B5C, + 38841 - 11904: 0xF54A, + 38842 - 11904: 0x9F7C, + 38843 - 11904: 0xF54B, + 38845 - 11904: 0xFC52, + 38846 - 11904: 0x90E9, + 38847 - 11904: 0xF670, + 38848 - 11904: 0x90EA, + 38849 - 11904: 0xC5B7, + 38850 - 11904: 0x9A5E, + 38851 - 11904: 0xC5B6, + 38852 - 11904: 0xF84F, + 38853 - 11904: 0xF850, + 38854 - 11904: 0xC648, + 38855 - 11904: 0xF8D1, + 38856 - 11904: 0x9F76, + 38857 - 11904: 0xC669, + 38859 - 11904: 0xADB3, + 38860 - 11904: 0xB6B4, + 38861 - 11904: 0xE4CA, + 38862 - 11904: 0xE4C9, + 38863 - 11904: 0xE8B5, + 38864 - 11904: 0xE8B4, + 38866 - 11904: 0x90EB, + 38867 - 11904: 0xC1FA, + 38868 - 11904: 0xEF43, + 38869 - 11904: 0xEF42, + 38870 - 11904: 0xF1A5, + 38871 - 11904: 0xF1A3, + 38872 - 11904: 0xF1A6, + 38873 - 11904: 0xF1A4, + 38876 - 11904: 0xC3FC, + 38877 - 11904: 0xF3A4, + 38878 - 11904: 0xF3A5, + 38879 - 11904: 0xF3A6, + 38880 - 11904: 0x90EC, + 38881 - 11904: 0xF671, + 38883 - 11904: 0xF772, + 38885 - 11904: 0xF8D2, + 38886 - 11904: 0x8BEE, + 38893 - 11904: 0xADB4, + 38894 - 11904: 0x90EE, + 38896 - 11904: 0xEC57, + 38897 - 11904: 0xEF44, + 38898 - 11904: 0x91C6, + 38899 - 11904: 0xADB5, + 38901 - 11904: 0x90F2, + 38902 - 11904: 0xBBE0, + 38904 - 11904: 0xEC58, + 38905 - 11904: 0xC341, + 38906 - 11904: 0xF1A7, + 38907 - 11904: 0xC3FD, + 38909 - 11904: 0xF54C, + 38910 - 11904: 0xF54D, + 38911 - 11904: 0xC554, + 38912 - 11904: 0xF851, + 38913 - 11904: 0xADB6, + 38914 - 11904: 0xB3BB, + 38915 - 11904: 0xB3BC, + 38916 - 11904: 0xD84E, + 38917 - 11904: 0xB6B5, + 38918 - 11904: 0xB6B6, + 38919 - 11904: 0xDCAC, + 38920 - 11904: 0xB6B7, + 38922 - 11904: 0xB97A, + 38924 - 11904: 0xB97C, + 38925 - 11904: 0xE0DF, + 38926 - 11904: 0xE0E0, + 38927 - 11904: 0xE0DE, + 38928 - 11904: 0xB977, + 38929 - 11904: 0xB978, + 38930 - 11904: 0xB97B, + 38931 - 11904: 0xB979, + 38932 - 11904: 0xFCBC, + 38933 - 11904: 0x8A74, + 38934 - 11904: 0xE4CB, + 38935 - 11904: 0xBBE1, + 38936 - 11904: 0xBBE2, + 38939 - 11904: 0xE8BC, + 38940 - 11904: 0xBE67, + 38941 - 11904: 0xE8B7, + 38942 - 11904: 0xE8B6, + 38943 - 11904: 0x9657, + 38944 - 11904: 0xE8BB, + 38945 - 11904: 0xBE65, + 38947 - 11904: 0x9CEF, + 38948 - 11904: 0xC05B, + 38950 - 11904: 0xE8B8, + 38951 - 11904: 0xE8BD, + 38952 - 11904: 0xE8BA, + 38953 - 11904: 0xE8B9, + 38955 - 11904: 0xBE66, + 38957 - 11904: 0xC059, + 38958 - 11904: 0x9FDF, + 38959 - 11904: 0xEC5A, + 38960 - 11904: 0xC055, + 38962 - 11904: 0xEC5B, + 38963 - 11904: 0x90F7, + 38964 - 11904: 0x90F6, + 38965 - 11904: 0xEC59, + 38967 - 11904: 0xC058, + 38968 - 11904: 0xC056, + 38969 - 11904: 0xC05A, + 38971 - 11904: 0xC057, + 38977 - 11904: 0xEF45, + 38979 - 11904: 0xEF4A, + 38980 - 11904: 0xEF46, + 38981 - 11904: 0xEF49, + 38982 - 11904: 0xC1FB, + 38983 - 11904: 0x9B5E, + 38984 - 11904: 0xEDD4, + 38985 - 11904: 0xEF48, + 38986 - 11904: 0xEF47, + 38987 - 11904: 0x90F8, + 38988 - 11904: 0xC344, + 38989 - 11904: 0xC342, + 38990 - 11904: 0xC345, + 38991 - 11904: 0xC343, + 38992 - 11904: 0xF1A8, + 38993 - 11904: 0xF1A9, + 38994 - 11904: 0xF1AA, + 38995 - 11904: 0xC346, + 38998 - 11904: 0x8CFC, + 38999 - 11904: 0xF3AA, + 39000 - 11904: 0xC440, + 39001 - 11904: 0xF3A8, + 39003 - 11904: 0xC441, + 39004 - 11904: 0xF3A7, + 39005 - 11904: 0xF3A9, + 39006 - 11904: 0xC3FE, + 39007 - 11904: 0xF551, + 39008 - 11904: 0xF54E, + 39010 - 11904: 0xF54F, + 39011 - 11904: 0xF550, + 39012 - 11904: 0xF672, + 39013 - 11904: 0xC556, + 39014 - 11904: 0x90F9, + 39015 - 11904: 0xC555, + 39016 - 11904: 0x8CC9, + 39017 - 11904: 0xF774, + 39018 - 11904: 0xF773, + 39019 - 11904: 0xC5B8, + 39020 - 11904: 0xFA6A, + 39023 - 11904: 0xC5E3, + 39024 - 11904: 0xC649, + 39025 - 11904: 0xC660, + 39026 - 11904: 0xF958, + 39027 - 11904: 0xF9AE, + 39028 - 11904: 0xF9AF, + 39029 - 11904: 0x8BEF, + 39080 - 11904: 0xADB7, + 39081 - 11904: 0xDCAD, + 39084 - 11904: 0xE0E1, + 39085 - 11904: 0xE4CC, + 39086 - 11904: 0xE4CD, + 39087 - 11904: 0xBBE3, + 39089 - 11904: 0xBBE4, + 39090 - 11904: 0xE8BE, + 39091 - 11904: 0xBE68, + 39092 - 11904: 0x9FE0, + 39094 - 11904: 0xC1FC, + 39095 - 11904: 0x9142, + 39096 - 11904: 0xF1AB, + 39097 - 11904: 0x9A62, + 39098 - 11904: 0xC347, + 39099 - 11904: 0xF3AD, + 39100 - 11904: 0xC442, + 39101 - 11904: 0xF3AC, + 39102 - 11904: 0xF3AE, + 39103 - 11904: 0xF3AB, + 39104 - 11904: 0xF675, + 39105 - 11904: 0xF552, + 39106 - 11904: 0xF553, + 39107 - 11904: 0x9569, + 39108 - 11904: 0xC4C6, + 39110 - 11904: 0xF674, + 39111 - 11904: 0x9144, + 39112 - 11904: 0x9143, + 39113 - 11904: 0xF673, + 39114 - 11904: 0x9141, + 39115 - 11904: 0xF775, + 39116 - 11904: 0xF9B0, + 39118 - 11904: 0x8BF0, + 39131 - 11904: 0xADB8, + 39132 - 11904: 0x9660, + 39134 - 11904: 0x8BF1, + 39135 - 11904: 0xADB9, + 39136 - 11904: 0x99F6, + 39137 - 11904: 0x9149, + 39138 - 11904: 0xB0A7, + 39139 - 11904: 0xD448, + 39141 - 11904: 0xD84F, + 39142 - 11904: 0x914A, + 39143 - 11904: 0xB6B8, + 39145 - 11904: 0xB6BB, + 39146 - 11904: 0xB6B9, + 39147 - 11904: 0xDCAE, + 39148 - 11904: 0x914B, + 39149 - 11904: 0xB6BD, + 39151 - 11904: 0xB6BA, + 39153 - 11904: 0x9A64, + 39154 - 11904: 0xB6BC, + 39156 - 11904: 0xB97E, + 39157 - 11904: 0x8ABF, + 39158 - 11904: 0xE0E2, + 39161 - 11904: 0xE0E3, + 39162 - 11904: 0xE8C0, + 39164 - 11904: 0xB97D, + 39165 - 11904: 0xB9A1, + 39166 - 11904: 0xB9A2, + 39168 - 11904: 0xE4CF, + 39170 - 11904: 0xE4CE, + 39171 - 11904: 0xBBE5, + 39173 - 11904: 0xBBE6, + 39175 - 11904: 0xE4D0, + 39176 - 11904: 0xE8BF, + 39177 - 11904: 0xBBE8, + 39178 - 11904: 0xBE69, + 39180 - 11904: 0xBBE7, + 39182 - 11904: 0x9A66, + 39184 - 11904: 0xC05C, + 39185 - 11904: 0xE8C1, + 39186 - 11904: 0xBE6B, + 39187 - 11904: 0xBE6A, + 39188 - 11904: 0xE8C2, + 39189 - 11904: 0xE8C5, + 39190 - 11904: 0xE8C3, + 39191 - 11904: 0xE8C4, + 39192 - 11904: 0xBE6C, + 39193 - 11904: 0x9A67, + 39194 - 11904: 0xC061, + 39195 - 11904: 0xC05F, + 39196 - 11904: 0x9A69, + 39198 - 11904: 0xC05E, + 39199 - 11904: 0xEC5D, + 39201 - 11904: 0xC060, + 39204 - 11904: 0xEC5C, + 39205 - 11904: 0xEF4B, + 39207 - 11904: 0xEC5E, + 39208 - 11904: 0xC05D, + 39209 - 11904: 0xEC5F, + 39210 - 11904: 0xEF4E, + 39211 - 11904: 0xEF4C, + 39212 - 11904: 0xEF4D, + 39213 - 11904: 0xEF52, + 39214 - 11904: 0xC34B, + 39215 - 11904: 0xEF51, + 39216 - 11904: 0xEF54, + 39217 - 11904: 0xEF53, + 39218 - 11904: 0xEF50, + 39219 - 11904: 0xEF4F, + 39221 - 11904: 0xC1FD, + 39223 - 11904: 0x9A6A, + 39224 - 11904: 0x9652, + 39225 - 11904: 0x914D, + 39226 - 11904: 0xF1AE, + 39227 - 11904: 0x9666, + 39228 - 11904: 0xF1AD, + 39229 - 11904: 0xC34A, + 39230 - 11904: 0xC348, + 39231 - 11904: 0xC349, + 39232 - 11904: 0x9F7B, + 39233 - 11904: 0xF1AC, + 39234 - 11904: 0x9A6B, + 39235 - 11904: 0xF3B1, + 39237 - 11904: 0xC443, + 39239 - 11904: 0xF3B0, + 39240 - 11904: 0xF3AF, + 39241 - 11904: 0xC444, + 39242 - 11904: 0xA06C, + 39243 - 11904: 0xF558, + 39244 - 11904: 0xF557, + 39245 - 11904: 0x9667, + 39246 - 11904: 0xF555, + 39248 - 11904: 0xF554, + 39249 - 11904: 0xC4C8, + 39250 - 11904: 0xC4C7, + 39251 - 11904: 0xF559, + 39252 - 11904: 0xF776, + 39253 - 11904: 0xC5B9, + 39254 - 11904: 0xF677, + 39255 - 11904: 0xC557, + 39256 - 11904: 0xF676, + 39257 - 11904: 0xF556, + 39259 - 11904: 0xF777, + 39260 - 11904: 0xC5E4, + 39261 - 11904: 0x9A6C, + 39262 - 11904: 0xC661, + 39263 - 11904: 0xF959, + 39265 - 11904: 0xF9B1, + 39266 - 11904: 0x9A6D, + 39267 - 11904: 0x8BF2, + 39318 - 11904: 0xADBA, + 39319 - 11904: 0xD850, + 39320 - 11904: 0xEF55, + 39321 - 11904: 0xADBB, + 39323 - 11904: 0x966A, + 39324 - 11904: 0xE4D2, + 39325 - 11904: 0xE4D1, + 39326 - 11904: 0xEC60, + 39329 - 11904: 0xEF57, + 39331 - 11904: 0xEF56, + 39332 - 11904: 0xFCEA, + 39333 - 11904: 0xC34C, + 39334 - 11904: 0xF3B2, + 39335 - 11904: 0xF3B3, + 39336 - 11904: 0xC4C9, + 39338 - 11904: 0x966C, + 39339 - 11904: 0xF9B2, + 39340 - 11904: 0xB0A8, + 39341 - 11904: 0xB6BF, + 39342 - 11904: 0xB6BE, + 39343 - 11904: 0xE0E4, + 39344 - 11904: 0xE0E6, + 39345 - 11904: 0xB9A4, + 39346 - 11904: 0xE0E5, + 39347 - 11904: 0xB9A3, + 39348 - 11904: 0xB9A5, + 39349 - 11904: 0xE0E7, + 39352 - 11904: 0x91C4, + 39353 - 11904: 0xE4D4, + 39354 - 11904: 0xE4D6, + 39355 - 11904: 0xE4D5, + 39356 - 11904: 0x9677, + 39357 - 11904: 0xE4D8, + 39361 - 11904: 0xBBE9, + 39362 - 11904: 0xE4D7, + 39363 - 11904: 0xE4D3, + 39364 - 11904: 0x99F4, + 39365 - 11904: 0x9A6F, + 39367 - 11904: 0xE4D9, + 39369 - 11904: 0xE8CC, + 39371 - 11904: 0xE8CF, + 39372 - 11904: 0xE8D1, + 39373 - 11904: 0xE8C7, + 39374 - 11904: 0xE8CB, + 39375 - 11904: 0xE8C8, + 39376 - 11904: 0xBE6E, + 39377 - 11904: 0xBE71, + 39378 - 11904: 0xBE73, + 39379 - 11904: 0xE8C9, + 39380 - 11904: 0xE8CA, + 39381 - 11904: 0xBE72, + 39382 - 11904: 0xE8CD, + 39383 - 11904: 0xE8D0, + 39384 - 11904: 0xE8CE, + 39385 - 11904: 0xBE74, + 39386 - 11904: 0x9FAB, + 39387 - 11904: 0xBE70, + 39388 - 11904: 0xE8C6, + 39389 - 11904: 0xBE6D, + 39391 - 11904: 0xBE6F, + 39392 - 11904: 0x8CBE, + 39393 - 11904: 0x8EC1, + 39394 - 11904: 0xC063, + 39395 - 11904: 0xEC66, + 39396 - 11904: 0xEC64, + 39397 - 11904: 0xEC63, + 39398 - 11904: 0x9555, + 39399 - 11904: 0xEC69, + 39401 - 11904: 0xEC68, + 39402 - 11904: 0xEC67, + 39404 - 11904: 0xEC62, + 39405 - 11904: 0xC062, + 39406 - 11904: 0xEC61, + 39408 - 11904: 0xEC65, + 39409 - 11904: 0xC064, + 39412 - 11904: 0xEF5A, + 39413 - 11904: 0x9152, + 39414 - 11904: 0xEF5E, + 39415 - 11904: 0xEF5B, + 39416 - 11904: 0xEF5D, + 39417 - 11904: 0xEF5C, + 39418 - 11904: 0xEF59, + 39419 - 11904: 0xEF5F, + 39420 - 11904: 0xEF62, + 39421 - 11904: 0xEF60, + 39422 - 11904: 0xEF61, + 39423 - 11904: 0xC240, + 39425 - 11904: 0xC1FE, + 39426 - 11904: 0xEF58, + 39427 - 11904: 0xEF63, + 39428 - 11904: 0xF1B3, + 39429 - 11904: 0xF1B6, + 39430 - 11904: 0xF1B8, + 39431 - 11904: 0xF1B7, + 39433 - 11904: 0xF1B1, + 39434 - 11904: 0xF1B5, + 39435 - 11904: 0xF1B0, + 39436 - 11904: 0x9153, + 39437 - 11904: 0xF1B2, + 39438 - 11904: 0xC34D, + 39439 - 11904: 0xF1AF, + 39440 - 11904: 0x9155, + 39441 - 11904: 0xF1B4, + 39444 - 11904: 0xF3C0, + 39445 - 11904: 0xF3B5, + 39446 - 11904: 0xC445, + 39449 - 11904: 0xC446, + 39450 - 11904: 0xF3B4, + 39451 - 11904: 0xF3B9, + 39452 - 11904: 0xF3BF, + 39453 - 11904: 0xF3B7, + 39454 - 11904: 0xF3BE, + 39455 - 11904: 0x955D, + 39456 - 11904: 0xF3BB, + 39457 - 11904: 0x9671, + 39458 - 11904: 0xF3BA, + 39459 - 11904: 0xF3BD, + 39460 - 11904: 0xF3B8, + 39461 - 11904: 0xF3B6, + 39462 - 11904: 0x9C6D, + 39463 - 11904: 0xF3BC, + 39465 - 11904: 0xF560, + 39466 - 11904: 0xF55E, + 39467 - 11904: 0xC4CA, + 39468 - 11904: 0xF55D, + 39469 - 11904: 0xF563, + 39470 - 11904: 0xF561, + 39471 - 11904: 0x9673, + 39472 - 11904: 0xC4CB, + 39473 - 11904: 0xF55C, + 39474 - 11904: 0xF55A, + 39476 - 11904: 0xF55B, + 39477 - 11904: 0xC4CD, + 39478 - 11904: 0xF55F, + 39479 - 11904: 0xC4CC, + 39480 - 11904: 0xF562, + 39481 - 11904: 0xF678, + 39482 - 11904: 0xF67E, + 39483 - 11904: 0x9154, + 39484 - 11904: 0x9A71, + 39485 - 11904: 0xF679, + 39486 - 11904: 0xC55B, + 39487 - 11904: 0xF6A1, + 39488 - 11904: 0xC55A, + 39489 - 11904: 0xF67D, + 39490 - 11904: 0xF67C, + 39491 - 11904: 0xC559, + 39492 - 11904: 0xF67B, + 39493 - 11904: 0xC558, + 39494 - 11904: 0xF67A, + 39496 - 11904: 0xF77D, + 39497 - 11904: 0xF7A1, + 39498 - 11904: 0xF77E, + 39500 - 11904: 0xF77B, + 39501 - 11904: 0xC5BB, + 39502 - 11904: 0xF778, + 39503 - 11904: 0xF77C, + 39504 - 11904: 0xF7A3, + 39506 - 11904: 0xF7A2, + 39507 - 11904: 0xF779, + 39508 - 11904: 0xF77A, + 39509 - 11904: 0xC5BA, + 39510 - 11904: 0xF852, + 39511 - 11904: 0xC5E7, + 39512 - 11904: 0x9156, + 39513 - 11904: 0xF853, + 39514 - 11904: 0xC5E5, + 39515 - 11904: 0xC5E6, + 39516 - 11904: 0x966D, + 39518 - 11904: 0xF8D3, + 39519 - 11904: 0xC64A, + 39520 - 11904: 0xF976, + 39522 - 11904: 0xC66A, + 39523 - 11904: 0x9557, + 39524 - 11904: 0xF9B3, + 39525 - 11904: 0xC66B, + 39526 - 11904: 0xF9B4, + 39527 - 11904: 0xF9B5, + 39528 - 11904: 0xF9C3, + 39529 - 11904: 0xF9C2, + 39530 - 11904: 0xC67A, + 39531 - 11904: 0xF9CD, + 39532 - 11904: 0x89C6, + 39567 - 11904: 0x89C7, + 39592 - 11904: 0xB0A9, + 39595 - 11904: 0xE0E9, + 39597 - 11904: 0xE0E8, + 39599 - 11904: 0xBBEA, + 39600 - 11904: 0xBBEB, + 39601 - 11904: 0xE4DA, + 39602 - 11904: 0x8A6A, + 39603 - 11904: 0xE8D2, + 39604 - 11904: 0xEC6C, + 39606 - 11904: 0x8B57, + 39607 - 11904: 0xBE75, + 39608 - 11904: 0xC065, + 39609 - 11904: 0xEC6A, + 39610 - 11904: 0x9FE1, + 39611 - 11904: 0xEC6D, + 39612 - 11904: 0xC066, + 39613 - 11904: 0x9B5F, + 39614 - 11904: 0xEF64, + 39615 - 11904: 0xEC6B, + 39616 - 11904: 0xF1B9, + 39617 - 11904: 0xC34E, + 39618 - 11904: 0xF3C1, + 39622 - 11904: 0xF566, + 39623 - 11904: 0xF564, + 39626 - 11904: 0xF565, + 39629 - 11904: 0xF6A2, + 39631 - 11904: 0xC55C, + 39632 - 11904: 0xF7A4, + 39633 - 11904: 0xC5EA, + 39634 - 11904: 0xC5BC, + 39635 - 11904: 0xC5E8, + 39636 - 11904: 0xC5E9, + 39637 - 11904: 0xF8D4, + 39638 - 11904: 0xC662, + 39639 - 11904: 0xA05D, + 39640 - 11904: 0xB0AA, + 39644 - 11904: 0xF1BA, + 39647 - 11904: 0xD449, + 39648 - 11904: 0x915B, + 39649 - 11904: 0xB9A6, + 39650 - 11904: 0x915C, + 39651 - 11904: 0xE4DB, + 39654 - 11904: 0xBBEC, + 39655 - 11904: 0xE4DC, + 39659 - 11904: 0xE8D4, + 39660 - 11904: 0xE8D3, + 39661 - 11904: 0xC068, + 39662 - 11904: 0xBE76, + 39663 - 11904: 0xBE77, + 39665 - 11904: 0xE8D7, + 39666 - 11904: 0xE8D6, + 39667 - 11904: 0xE8D5, + 39668 - 11904: 0x915E, + 39670 - 11904: 0xEC6E, + 39671 - 11904: 0xEC71, + 39673 - 11904: 0xEC70, + 39674 - 11904: 0xEC6F, + 39675 - 11904: 0xC067, + 39676 - 11904: 0xEF68, + 39677 - 11904: 0xEF66, + 39678 - 11904: 0xEF65, + 39679 - 11904: 0x9F5C, + 39681 - 11904: 0xEF67, + 39682 - 11904: 0x9F57, + 39683 - 11904: 0xC34F, + 39684 - 11904: 0xF1BC, + 39685 - 11904: 0xF1BD, + 39686 - 11904: 0xC350, + 39688 - 11904: 0xF1BB, + 39689 - 11904: 0x9F65, + 39690 - 11904: 0xF3C3, + 39691 - 11904: 0xF3C2, + 39692 - 11904: 0xF3C5, + 39693 - 11904: 0xC447, + 39694 - 11904: 0xF3C4, + 39695 - 11904: 0x9A72, + 39696 - 11904: 0xF567, + 39697 - 11904: 0xF569, + 39698 - 11904: 0xF568, + 39700 - 11904: 0x9160, + 39701 - 11904: 0xF6A3, + 39702 - 11904: 0xF6A6, + 39703 - 11904: 0xF6A4, + 39704 - 11904: 0xF6A5, + 39705 - 11904: 0xF7A5, + 39706 - 11904: 0xC5BD, + 39710 - 11904: 0xF854, + 39711 - 11904: 0xF855, + 39712 - 11904: 0xF856, + 39714 - 11904: 0xC64B, + 39715 - 11904: 0xC663, + 39716 - 11904: 0xF9B6, + 39717 - 11904: 0xB0AB, + 39719 - 11904: 0xBE78, + 39720 - 11904: 0xC069, + 39721 - 11904: 0xF1BE, + 39722 - 11904: 0x9F5E, + 39723 - 11904: 0xF7A6, + 39725 - 11904: 0x9161, + 39726 - 11904: 0xF9C4, + 39727 - 11904: 0xD44A, + 39729 - 11904: 0xC67B, + 39730 - 11904: 0xB0AC, + 39731 - 11904: 0xEC72, + 39732 - 11904: 0x9164, + 39733 - 11904: 0xF1BF, + 39735 - 11904: 0xF3C6, + 39737 - 11904: 0x9F41, + 39738 - 11904: 0xF6A7, + 39739 - 11904: 0xF7A7, + 39740 - 11904: 0xB0AD, + 39742 - 11904: 0xE4DD, + 39743 - 11904: 0xE4DE, + 39744 - 11904: 0x9169, + 39745 - 11904: 0xBBED, + 39746 - 11904: 0xBBEE, + 39747 - 11904: 0xE8D9, + 39748 - 11904: 0xBE7A, + 39749 - 11904: 0xBE79, + 39750 - 11904: 0xE8D8, + 39752 - 11904: 0xEF69, + 39754 - 11904: 0xF1C0, + 39755 - 11904: 0xF1C2, + 39756 - 11904: 0xF1C1, + 39757 - 11904: 0xC353, + 39758 - 11904: 0xC352, + 39759 - 11904: 0xC351, + 39760 - 11904: 0x9168, + 39761 - 11904: 0xC55E, + 39762 - 11904: 0xF6A8, + 39764 - 11904: 0xC55D, + 39765 - 11904: 0xF7A9, + 39766 - 11904: 0xF7A8, + 39768 - 11904: 0xC64C, + 39769 - 11904: 0xF8D5, + 39770 - 11904: 0xB3BD, + 39771 - 11904: 0xE0EA, + 39775 - 11904: 0xE4E1, + 39776 - 11904: 0xE4DF, + 39777 - 11904: 0xE4E0, + 39780 - 11904: 0xE8E2, + 39782 - 11904: 0xE8DD, + 39783 - 11904: 0xE8DA, + 39784 - 11904: 0xE8E1, + 39785 - 11904: 0x9A74, + 39788 - 11904: 0xE8E3, + 39791 - 11904: 0xBE7C, + 39792 - 11904: 0xE8E0, + 39793 - 11904: 0xE8DC, + 39796 - 11904: 0xE8DB, + 39797 - 11904: 0xE8DF, + 39798 - 11904: 0xE8DE, + 39799 - 11904: 0xBE7B, + 39802 - 11904: 0xEC7D, + 39803 - 11904: 0xEC78, + 39804 - 11904: 0xEC76, + 39805 - 11904: 0xECA1, + 39806 - 11904: 0xEC77, + 39807 - 11904: 0x96B2, + 39808 - 11904: 0xEC73, + 39809 - 11904: 0x9A75, + 39810 - 11904: 0xEC79, + 39811 - 11904: 0xFDA5, + 39813 - 11904: 0xEC74, + 39814 - 11904: 0xEF72, + 39815 - 11904: 0xEC75, + 39816 - 11904: 0xECA2, + 39819 - 11904: 0x9EE9, + 39821 - 11904: 0x8BBA, + 39822 - 11904: 0x916D, + 39823 - 11904: 0xA060, + 39824 - 11904: 0xEC7C, + 39825 - 11904: 0xC06A, + 39826 - 11904: 0xEC7B, + 39827 - 11904: 0xEC7A, + 39829 - 11904: 0xEC7E, + 39831 - 11904: 0x9FDE, + 39834 - 11904: 0xEF6A, + 39835 - 11904: 0xEF6D, + 39837 - 11904: 0x9FC3, + 39838 - 11904: 0xEF6C, + 39839 - 11904: 0x96B5, + 39840 - 11904: 0xEF74, + 39841 - 11904: 0xEF6F, + 39842 - 11904: 0xEF73, + 39844 - 11904: 0xEF71, + 39845 - 11904: 0xEF70, + 39846 - 11904: 0xEF6E, + 39848 - 11904: 0xEF6B, + 39850 - 11904: 0xC243, + 39851 - 11904: 0xC242, + 39853 - 11904: 0xC244, + 39854 - 11904: 0xC241, + 39855 - 11904: 0xEF75, + 39856 - 11904: 0xA067, + 39861 - 11904: 0xF1C8, + 39862 - 11904: 0xF1CB, + 39864 - 11904: 0xF1C9, + 39865 - 11904: 0xF1CD, + 39869 - 11904: 0xF1CE, + 39871 - 11904: 0xF1C6, + 39872 - 11904: 0xC358, + 39873 - 11904: 0xF1C7, + 39875 - 11904: 0xF1C5, + 39876 - 11904: 0xF1CC, + 39878 - 11904: 0xF1C4, + 39879 - 11904: 0xF1C3, + 39880 - 11904: 0xC357, + 39881 - 11904: 0xC355, + 39882 - 11904: 0xC354, + 39887 - 11904: 0x96B3, + 39891 - 11904: 0xF1CA, + 39892 - 11904: 0xF3CF, + 39893 - 11904: 0xF3D5, + 39894 - 11904: 0xC44A, + 39895 - 11904: 0xF3D0, + 39897 - 11904: 0xF3D3, + 39898 - 11904: 0xF3D7, + 39899 - 11904: 0xC44B, + 39900 - 11904: 0xF3D2, + 39901 - 11904: 0x9A76, + 39902 - 11904: 0xF3CA, + 39904 - 11904: 0xF3C9, + 39905 - 11904: 0xF3D6, + 39906 - 11904: 0xF3CD, + 39908 - 11904: 0xF3CB, + 39909 - 11904: 0xF3D4, + 39910 - 11904: 0xF3CC, + 39911 - 11904: 0xC449, + 39912 - 11904: 0xC448, + 39913 - 11904: 0x95D5, + 39914 - 11904: 0xF3C7, + 39915 - 11904: 0xF3C8, + 39916 - 11904: 0xF3D1, + 39917 - 11904: 0x9ECA, + 39920 - 11904: 0xF3CE, + 39921 - 11904: 0x9A77, + 39924 - 11904: 0x9A78, + 39927 - 11904: 0xF56C, + 39928 - 11904: 0xF56F, + 39933 - 11904: 0xC356, + 39935 - 11904: 0x9170, + 39938 - 11904: 0x916F, + 39941 - 11904: 0xF56D, + 39942 - 11904: 0xF573, + 39943 - 11904: 0xF571, + 39944 - 11904: 0xF56B, + 39945 - 11904: 0xF576, + 39946 - 11904: 0x9FA3, + 39947 - 11904: 0xF56A, + 39948 - 11904: 0x9171, + 39949 - 11904: 0xC4CF, + 39950 - 11904: 0xF572, + 39952 - 11904: 0x96B1, + 39954 - 11904: 0xF56E, + 39955 - 11904: 0xC4CE, + 39956 - 11904: 0xF575, + 39957 - 11904: 0x9F63, + 39959 - 11904: 0xF574, + 39963 - 11904: 0x9F67, + 39964 - 11904: 0xF6AB, + 39965 - 11904: 0xF6AA, + 39967 - 11904: 0x8BB9, + 39968 - 11904: 0x9A7A, + 39969 - 11904: 0xF6B1, + 39971 - 11904: 0xF6AD, + 39972 - 11904: 0xF6B0, + 39973 - 11904: 0xC560, + 39974 - 11904: 0x8B56, + 39976 - 11904: 0xF6AE, + 39977 - 11904: 0xF6AF, + 39979 - 11904: 0xF6A9, + 39980 - 11904: 0xF6AC, + 39981 - 11904: 0xC55F, + 39983 - 11904: 0x9ADA, + 39985 - 11904: 0xC5BF, + 39986 - 11904: 0xF7B4, + 39987 - 11904: 0xF7AF, + 39988 - 11904: 0xF7B3, + 39989 - 11904: 0x96B0, + 39990 - 11904: 0xF7B6, + 39991 - 11904: 0xF7B2, + 39993 - 11904: 0xF7AE, + 39994 - 11904: 0x9A7E, + 39995 - 11904: 0xC5C1, + 39996 - 11904: 0xF7B1, + 39997 - 11904: 0xF7B5, + 39998 - 11904: 0xC5C0, + 39999 - 11904: 0xF7AC, + 40000 - 11904: 0xF570, + 40001 - 11904: 0xF7B0, + 40004 - 11904: 0xF7AD, + 40005 - 11904: 0x9DDE, + 40006 - 11904: 0xF7AA, + 40008 - 11904: 0xF7AB, + 40009 - 11904: 0xC5BE, + 40010 - 11904: 0xF85A, + 40011 - 11904: 0xF85C, + 40012 - 11904: 0xF85F, + 40013 - 11904: 0xF85B, + 40014 - 11904: 0xF860, + 40015 - 11904: 0x96AD, + 40016 - 11904: 0xF859, + 40018 - 11904: 0xF857, + 40019 - 11904: 0x96AE, + 40020 - 11904: 0xC5EB, + 40021 - 11904: 0xF85D, + 40022 - 11904: 0xC5ED, + 40023 - 11904: 0xC5EC, + 40024 - 11904: 0xF858, + 40025 - 11904: 0xF85E, + 40029 - 11904: 0x9EA1, + 40030 - 11904: 0xF8DA, + 40031 - 11904: 0xC64D, + 40032 - 11904: 0xF8DB, + 40034 - 11904: 0xF8D9, + 40035 - 11904: 0xF8D6, + 40038 - 11904: 0xF8D8, + 40039 - 11904: 0xF8D7, + 40040 - 11904: 0xF95A, + 40045 - 11904: 0xF95C, + 40046 - 11904: 0xF95B, + 40049 - 11904: 0xF979, + 40050 - 11904: 0x9E50, + 40051 - 11904: 0xF978, + 40052 - 11904: 0xF977, + 40053 - 11904: 0xF97A, + 40055 - 11904: 0xC673, + 40056 - 11904: 0xC674, + 40057 - 11904: 0xF9CA, + 40058 - 11904: 0xF9CE, + 40059 - 11904: 0x96AF, + 40060 - 11904: 0x8BF4, + 40165 - 11904: 0xB3BE, + 40166 - 11904: 0xDCAF, + 40167 - 11904: 0xE0ED, + 40169 - 11904: 0xB9A7, + 40170 - 11904: 0xE0EB, + 40173 - 11904: 0xE0EC, + 40177 - 11904: 0xE4E2, + 40178 - 11904: 0xE4E3, + 40179 - 11904: 0xBBF1, + 40180 - 11904: 0xBBEF, + 40181 - 11904: 0xE4E4, + 40182 - 11904: 0xBBF0, + 40183 - 11904: 0xE8E8, + 40185 - 11904: 0xE8EB, + 40186 - 11904: 0xE8E5, + 40187 - 11904: 0xE8EC, + 40188 - 11904: 0xE8E4, + 40189 - 11904: 0xE8E6, + 40191 - 11904: 0xE8E7, + 40192 - 11904: 0xE8EA, + 40194 - 11904: 0x9FA4, + 40195 - 11904: 0xBEA1, + 40196 - 11904: 0xE8EF, + 40197 - 11904: 0xE8EE, + 40198 - 11904: 0xBE7D, + 40199 - 11904: 0xE8E9, + 40200 - 11904: 0xE8ED, + 40201 - 11904: 0xBE7E, + 40204 - 11904: 0x96BD, + 40208 - 11904: 0xECAC, + 40210 - 11904: 0xC06F, + 40212 - 11904: 0xECA7, + 40213 - 11904: 0xC06B, + 40214 - 11904: 0x96F4, + 40215 - 11904: 0xECA4, + 40216 - 11904: 0xECAA, + 40217 - 11904: 0xECAD, + 40219 - 11904: 0xC070, + 40221 - 11904: 0xECA9, + 40222 - 11904: 0xECA6, + 40223 - 11904: 0xECAE, + 40224 - 11904: 0xECA5, + 40225 - 11904: 0x96B8, + 40226 - 11904: 0xECAB, + 40227 - 11904: 0xC06C, + 40229 - 11904: 0xECA3, + 40230 - 11904: 0xC06D, + 40232 - 11904: 0xC06E, + 40233 - 11904: 0xECA8, + 40237 - 11904: 0xEFA9, + 40238 - 11904: 0xEF7A, + 40239 - 11904: 0xEF7B, + 40240 - 11904: 0xEF7E, + 40241 - 11904: 0xEF7C, + 40243 - 11904: 0xEF76, + 40244 - 11904: 0xFAA1, + 40246 - 11904: 0xEF79, + 40247 - 11904: 0xEFA5, + 40248 - 11904: 0xEF7D, + 40249 - 11904: 0x91A7, + 40251 - 11904: 0xC245, + 40253 - 11904: 0xEFA7, + 40254 - 11904: 0xEFA4, + 40255 - 11904: 0xC246, + 40256 - 11904: 0xEFA6, + 40257 - 11904: 0xEF77, + 40258 - 11904: 0xEFA2, + 40259 - 11904: 0xEFA3, + 40260 - 11904: 0xA05E, + 40261 - 11904: 0xEFA1, + 40265 - 11904: 0x9A7D, + 40266 - 11904: 0xF1D2, + 40267 - 11904: 0xF1D4, + 40268 - 11904: 0xF1D7, + 40270 - 11904: 0x8948, + 40271 - 11904: 0xF1D1, + 40272 - 11904: 0x9EB1, + 40273 - 11904: 0xC359, + 40274 - 11904: 0xF1D9, + 40275 - 11904: 0xF1D0, + 40276 - 11904: 0xF1DA, + 40278 - 11904: 0xF1D6, + 40279 - 11904: 0xF1D8, + 40280 - 11904: 0xF1DC, + 40281 - 11904: 0xF1D5, + 40282 - 11904: 0xF1DD, + 40283 - 11904: 0xF1D3, + 40284 - 11904: 0xF1CF, + 40285 - 11904: 0xC35A, + 40286 - 11904: 0x9DDB, + 40287 - 11904: 0xF1DB, + 40288 - 11904: 0xC35B, + 40289 - 11904: 0xC44D, + 40295 - 11904: 0xEF78, + 40296 - 11904: 0xF3F1, + 40297 - 11904: 0xF3E8, + 40298 - 11904: 0xC44F, + 40299 - 11904: 0xF3E4, + 40300 - 11904: 0xC450, + 40301 - 11904: 0x95BF, + 40302 - 11904: 0x8A73, + 40303 - 11904: 0xF3ED, + 40304 - 11904: 0xF3E7, + 40305 - 11904: 0xF3DD, + 40306 - 11904: 0xC44E, + 40307 - 11904: 0xF3EA, + 40308 - 11904: 0xF3E5, + 40309 - 11904: 0xF3E6, + 40311 - 11904: 0xF3D8, + 40312 - 11904: 0xF3DF, + 40313 - 11904: 0xF3EE, + 40315 - 11904: 0xF3EB, + 40316 - 11904: 0x9EFE, + 40317 - 11904: 0xF3E3, + 40318 - 11904: 0x917A, + 40319 - 11904: 0xF3EF, + 40320 - 11904: 0xF3DE, + 40321 - 11904: 0xF3D9, + 40322 - 11904: 0xF3EC, + 40323 - 11904: 0x917B, + 40324 - 11904: 0xF3DB, + 40325 - 11904: 0xF3E9, + 40326 - 11904: 0xF3E0, + 40327 - 11904: 0xF3F0, + 40328 - 11904: 0xF3DC, + 40329 - 11904: 0xC44C, + 40330 - 11904: 0xF3DA, + 40331 - 11904: 0xF3E1, + 40332 - 11904: 0xF3E2, + 40336 - 11904: 0xF57D, + 40338 - 11904: 0xF57B, + 40339 - 11904: 0x9AA3, + 40340 - 11904: 0xF5A2, + 40342 - 11904: 0xF5AE, + 40343 - 11904: 0xF5A5, + 40344 - 11904: 0xF57C, + 40345 - 11904: 0xF578, + 40346 - 11904: 0xF5A7, + 40347 - 11904: 0xF57E, + 40348 - 11904: 0xF5A3, + 40349 - 11904: 0xF57A, + 40350 - 11904: 0xF5AA, + 40351 - 11904: 0xF577, + 40352 - 11904: 0xF5A1, + 40353 - 11904: 0xF5A6, + 40354 - 11904: 0xF5A8, + 40355 - 11904: 0xF5AB, + 40356 - 11904: 0xF579, + 40357 - 11904: 0x96C2, + 40358 - 11904: 0xF5AF, + 40359 - 11904: 0xF5B0, + 40360 - 11904: 0xF5A9, + 40361 - 11904: 0xF5AD, + 40362 - 11904: 0xF5A4, + 40363 - 11904: 0x9F77, + 40364 - 11904: 0xF6C1, + 40365 - 11904: 0xF6C4, + 40367 - 11904: 0xC561, + 40369 - 11904: 0xF6C3, + 40370 - 11904: 0xF6C8, + 40371 - 11904: 0xF6C6, + 40372 - 11904: 0xC562, + 40373 - 11904: 0xF6BD, + 40374 - 11904: 0xF6B3, + 40375 - 11904: 0xF6B2, + 40376 - 11904: 0xC564, + 40377 - 11904: 0xF6BF, + 40378 - 11904: 0xF6C0, + 40379 - 11904: 0xF6BC, + 40380 - 11904: 0xF6B4, + 40381 - 11904: 0x9AA4, + 40382 - 11904: 0xF6B9, + 40383 - 11904: 0xF5AC, + 40384 - 11904: 0x9AA5, + 40385 - 11904: 0xF6B5, + 40386 - 11904: 0xC563, + 40387 - 11904: 0xF6BB, + 40388 - 11904: 0x91A1, + 40389 - 11904: 0xF6BA, + 40391 - 11904: 0xF6B6, + 40392 - 11904: 0xF6C2, + 40393 - 11904: 0x89B8, + 40394 - 11904: 0xF6B7, + 40395 - 11904: 0xF7BB, + 40396 - 11904: 0xF6C5, + 40397 - 11904: 0xF6C7, + 40398 - 11904: 0xF6BE, + 40399 - 11904: 0xF6B8, + 40400 - 11904: 0xF7BC, + 40401 - 11904: 0xF7BE, + 40402 - 11904: 0xF7B8, + 40403 - 11904: 0xC5C2, + 40404 - 11904: 0x9173, + 40405 - 11904: 0xF7C5, + 40406 - 11904: 0xF7C3, + 40407 - 11904: 0xC5C3, + 40408 - 11904: 0xF7C2, + 40409 - 11904: 0xF7C1, + 40410 - 11904: 0xF7BA, + 40411 - 11904: 0xF7B7, + 40412 - 11904: 0xF7BD, + 40413 - 11904: 0xF7C6, + 40414 - 11904: 0xF7B9, + 40415 - 11904: 0xF7BF, + 40417 - 11904: 0xF869, + 40418 - 11904: 0xF86E, + 40419 - 11904: 0xF864, + 40420 - 11904: 0xF867, + 40421 - 11904: 0xC5EE, + 40422 - 11904: 0xF86B, + 40424 - 11904: 0xF872, + 40425 - 11904: 0xF7C0, + 40427 - 11904: 0xF865, + 40428 - 11904: 0xF86F, + 40429 - 11904: 0xF873, + 40430 - 11904: 0xF86A, + 40431 - 11904: 0xF863, + 40432 - 11904: 0xF86D, + 40434 - 11904: 0xF86C, + 40435 - 11904: 0xF871, + 40436 - 11904: 0xF870, + 40437 - 11904: 0xF7C4, + 40438 - 11904: 0xF868, + 40439 - 11904: 0xF862, + 40440 - 11904: 0xF866, + 40441 - 11904: 0xC64E, + 40442 - 11904: 0xC64F, + 40443 - 11904: 0xF861, + 40444 - 11904: 0x9AA6, + 40445 - 11904: 0xF8E6, + 40446 - 11904: 0xF8DD, + 40447 - 11904: 0xF8E5, + 40448 - 11904: 0xF8E2, + 40449 - 11904: 0xF8E3, + 40450 - 11904: 0xF8DC, + 40451 - 11904: 0xF8DF, + 40452 - 11904: 0xF8E7, + 40453 - 11904: 0xF8E1, + 40454 - 11904: 0xF8E0, + 40455 - 11904: 0xF8DE, + 40457 - 11904: 0xF8E4, + 40458 - 11904: 0x89BD, + 40459 - 11904: 0xF95D, + 40460 - 11904: 0x89B9, + 40461 - 11904: 0xF95E, + 40462 - 11904: 0x917D, + 40463 - 11904: 0xF960, + 40464 - 11904: 0xF95F, + 40465 - 11904: 0xF962, + 40466 - 11904: 0xF961, + 40467 - 11904: 0xF97C, + 40468 - 11904: 0xF97B, + 40469 - 11904: 0xF9B7, + 40471 - 11904: 0xF9B8, + 40472 - 11904: 0x96BB, + 40473 - 11904: 0xF9C5, + 40474 - 11904: 0xC678, + 40475 - 11904: 0xC67C, + 40476 - 11904: 0x9FF2, + 40477 - 11904: 0xF9CF, + 40478 - 11904: 0xC67D, + 40479 - 11904: 0x8BF5, + 40565 - 11904: 0xB3BF, + 40569 - 11904: 0xC4D0, + 40570 - 11904: 0xF6C9, + 40571 - 11904: 0x9AA9, + 40572 - 11904: 0xC650, + 40573 - 11904: 0xC651, + 40575 - 11904: 0xB3C0, + 40576 - 11904: 0xE0EE, + 40577 - 11904: 0x9F54, + 40578 - 11904: 0xB9A8, + 40579 - 11904: 0xE8F0, + 40580 - 11904: 0x9FE3, + 40581 - 11904: 0x9EED, + 40582 - 11904: 0xECB0, + 40583 - 11904: 0xECB1, + 40584 - 11904: 0xECAF, + 40585 - 11904: 0xEFAB, + 40586 - 11904: 0xEFAA, + 40587 - 11904: 0xC247, + 40588 - 11904: 0xF1DF, + 40589 - 11904: 0xEFAC, + 40590 - 11904: 0xF1DE, + 40592 - 11904: 0x91AA, + 40593 - 11904: 0xF3F3, + 40594 - 11904: 0xC451, + 40595 - 11904: 0xC453, + 40596 - 11904: 0xF3F2, + 40597 - 11904: 0x91AB, + 40598 - 11904: 0xA070, + 40599 - 11904: 0xC452, + 40600 - 11904: 0x9F6D, + 40601 - 11904: 0xF5B1, + 40602 - 11904: 0xF5B3, + 40603 - 11904: 0xF5B2, + 40604 - 11904: 0xF6CA, + 40605 - 11904: 0xC565, + 40606 - 11904: 0x91AC, + 40607 - 11904: 0xC5EF, + 40608 - 11904: 0xF8E8, + 40609 - 11904: 0xF963, + 40610 - 11904: 0x91AD, + 40612 - 11904: 0xF9D2, + 40613 - 11904: 0xB3C1, + 40614 - 11904: 0xA0FD, + 40615 - 11904: 0xE4E5, + 40616 - 11904: 0x9FE2, + 40617 - 11904: 0xBEA2, + 40618 - 11904: 0x91AF, + 40619 - 11904: 0x9E41, + 40620 - 11904: 0x9AAA, + 40621 - 11904: 0xECB3, + 40622 - 11904: 0xECB2, + 40623 - 11904: 0x91B0, + 40624 - 11904: 0xEFAD, + 40625 - 11904: 0x9AAB, + 40628 - 11904: 0xC454, + 40629 - 11904: 0xC4D1, + 40630 - 11904: 0xF7C7, + 40631 - 11904: 0xF9CB, + 40635 - 11904: 0xB3C2, + 40636 - 11904: 0xBBF2, + 40637 - 11904: 0x9AAC, + 40638 - 11904: 0xBEA3, + 40639 - 11904: 0x9A4A, + 40640 - 11904: 0xF3F4, + 40641 - 11904: 0x91B2, + 40642 - 11904: 0xF874, + 40643 - 11904: 0xB6C0, + 40644 - 11904: 0x8BF6, + 40646 - 11904: 0x9AAD, + 40647 - 11904: 0x89B6, + 40648 - 11904: 0xEFAE, + 40652 - 11904: 0xC664, + 40653 - 11904: 0xB6C1, + 40654 - 11904: 0xBEA4, + 40655 - 11904: 0xC248, + 40656 - 11904: 0xF875, + 40657 - 11904: 0xB6C2, + 40659 - 11904: 0xE8F1, + 40660 - 11904: 0xC072, + 40661 - 11904: 0xECB4, + 40662 - 11904: 0xECB5, + 40664 - 11904: 0xC071, + 40666 - 11904: 0xEFAF, + 40667 - 11904: 0xC24C, + 40668 - 11904: 0xC24A, + 40669 - 11904: 0xC24B, + 40670 - 11904: 0xC249, + 40671 - 11904: 0xF1E0, + 40672 - 11904: 0xC35C, + 40674 - 11904: 0x9AAF, + 40676 - 11904: 0xF5B5, + 40677 - 11904: 0xF5B4, + 40678 - 11904: 0xF5B7, + 40679 - 11904: 0xF5B6, + 40680 - 11904: 0xC4D2, + 40683 - 11904: 0xF6CB, + 40685 - 11904: 0xF6CD, + 40686 - 11904: 0xF6CC, + 40687 - 11904: 0xC566, + 40688 - 11904: 0xF7C8, + 40689 - 11904: 0x9AB0, + 40690 - 11904: 0xF876, + 40691 - 11904: 0xF877, + 40692 - 11904: 0xC5F0, + 40693 - 11904: 0xF964, + 40694 - 11904: 0xF97D, + 40695 - 11904: 0xC675, + 40696 - 11904: 0x9AB1, + 40697 - 11904: 0xDCB0, + 40698 - 11904: 0xECB6, + 40699 - 11904: 0xEFB0, + 40700 - 11904: 0xF3F5, + 40701 - 11904: 0xE0EF, + 40702 - 11904: 0x9AA1, + 40703 - 11904: 0xEFB1, + 40704 - 11904: 0xF1E2, + 40705 - 11904: 0xF1E1, + 40706 - 11904: 0x91B9, + 40710 - 11904: 0xF878, + 40711 - 11904: 0xC652, + 40712 - 11904: 0x91BA, + 40713 - 11904: 0xF965, + 40714 - 11904: 0xF97E, + 40718 - 11904: 0xB9A9, + 40719 - 11904: 0xE8F2, + 40720 - 11904: 0xE8F3, + 40722 - 11904: 0xECB7, + 40723 - 11904: 0xB9AA, + 40725 - 11904: 0xC35D, + 40726 - 11904: 0xF1E3, + 40727 - 11904: 0x9F66, + 40728 - 11904: 0xF6CF, + 40729 - 11904: 0xC567, + 40730 - 11904: 0xF6D0, + 40731 - 11904: 0xF6CE, + 40732 - 11904: 0xF879, + 40734 - 11904: 0xF8E9, + 40736 - 11904: 0xB9AB, + 40738 - 11904: 0xEFB4, + 40739 - 11904: 0xEFB3, + 40740 - 11904: 0xEFB2, + 40741 - 11904: 0xF1E4, + 40742 - 11904: 0xA041, + 40743 - 11904: 0x8BB7, + 40744 - 11904: 0xF1E8, + 40745 - 11904: 0xF1E7, + 40746 - 11904: 0xF1E6, + 40747 - 11904: 0xF1E5, + 40748 - 11904: 0xC35E, + 40749 - 11904: 0xF3F6, + 40750 - 11904: 0xF5B9, + 40751 - 11904: 0xC4D3, + 40752 - 11904: 0xF5B8, + 40753 - 11904: 0xF6D1, + 40754 - 11904: 0xF7CB, + 40755 - 11904: 0xF7CA, + 40756 - 11904: 0xC5C4, + 40757 - 11904: 0xF7C9, + 40758 - 11904: 0xF87C, + 40759 - 11904: 0xF87B, + 40760 - 11904: 0xF87A, + 40761 - 11904: 0x91C0, + 40763 - 11904: 0xBBF3, + 40765 - 11904: 0xECB8, + 40766 - 11904: 0xC24D, + 40768 - 11904: 0xF3F7, + 40769 - 11904: 0xF3F8, + 40770 - 11904: 0xF7CC, + 40771 - 11904: 0xF87D, + 40772 - 11904: 0x9AB3, + 40773 - 11904: 0x91C3, + 40774 - 11904: 0xF8EA, + 40775 - 11904: 0xF966, + 40776 - 11904: 0xF9B9, + 40777 - 11904: 0xF9D4, + 40778 - 11904: 0xBBF4, + 40779 - 11904: 0xC24E, + 40780 - 11904: 0xF1E9, + 40781 - 11904: 0xF3F9, + 40782 - 11904: 0xF6D2, + 40783 - 11904: 0xF87E, + 40784 - 11904: 0xA0FC, + 40786 - 11904: 0xBEA6, + 40787 - 11904: 0x9FEE, + 40788 - 11904: 0xEFB5, + 40789 - 11904: 0xF1EA, + 40790 - 11904: 0xF3FA, + 40791 - 11904: 0xF3FB, + 40792 - 11904: 0xF3FC, + 40793 - 11904: 0xF5BE, + 40794 - 11904: 0x9F69, + 40795 - 11904: 0xF5BA, + 40796 - 11904: 0xC568, + 40797 - 11904: 0xF5BD, + 40798 - 11904: 0xF5BC, + 40799 - 11904: 0xC4D4, + 40800 - 11904: 0xF5BB, + 40801 - 11904: 0xC4D6, + 40802 - 11904: 0x91C8, + 40803 - 11904: 0xC4D5, + 40804 - 11904: 0xF6D4, + 40805 - 11904: 0xF6D3, + 40806 - 11904: 0xC569, + 40807 - 11904: 0xC56A, + 40809 - 11904: 0x91C9, + 40810 - 11904: 0xC5C6, + 40811 - 11904: 0xF7CD, + 40812 - 11904: 0xC5C5, + 40814 - 11904: 0xF8A3, + 40815 - 11904: 0xF8A4, + 40816 - 11904: 0xF8A2, + 40817 - 11904: 0xF8A1, + 40818 - 11904: 0xC654, + 40820 - 11904: 0xF8EB, + 40821 - 11904: 0xF8EC, + 40822 - 11904: 0xF8ED, + 40823 - 11904: 0xC653, + 40824 - 11904: 0xF967, + 40825 - 11904: 0xF96A, + 40826 - 11904: 0xF969, + 40827 - 11904: 0xF968, + 40830 - 11904: 0xF9D3, + 40831 - 11904: 0x8DE6, + 40845 - 11904: 0xC073, + 40846 - 11904: 0x91CB, + 40848 - 11904: 0xC365, + 40849 - 11904: 0xF5BF, + 40850 - 11904: 0xF6D5, + 40852 - 11904: 0xC5C7, + 40853 - 11904: 0xF7CE, + 40854 - 11904: 0x87AC, + 40855 - 11904: 0x87A4, + 40856 - 11904: 0xF9D5, + 40857 - 11904: 0x89C8, + 40860 - 11904: 0xC074, + 40863 - 11904: 0x8DAA, + 40864 - 11904: 0xEFB6, + 40866 - 11904: 0xF7CF, + 40868 - 11904: 0xF9A1, + 40869 - 11904: 0x9FDD, + 40870 - 11904: 0x8C43, + 40871 - 11904: 0x8C6D, + 40872 - 11904: 0x8C74, + 40873 - 11904: 0x8CB7, + 40874 - 11904: 0x8CB9, + 40875 - 11904: 0x8CBB, + 40876 - 11904: 0x8CC0, + 40877 - 11904: 0x8CD7, + 40878 - 11904: 0x8CD8, + 40879 - 11904: 0x8CDA, + 40880 - 11904: 0xC8A1, + 40881 - 11904: 0xC8A3, + 40882 - 11904: 0x8CED, + 40883 - 11904: 0x8D48, + 40903 - 11904: 0x87C2, + 40904 - 11904: 0x87D2, + 40905 - 11904: 0x87D6, + 40906 - 11904: 0x87DA, + 40907 - 11904: 0x87DF, +} + +const encode2Low, encode2High = 7870, 10046 + +var encode2 = [...]uint16{ + 7870 - 7870: 0x8863, + 7871 - 7870: 0x88A4, + 7872 - 7870: 0x8865, + 7873 - 7870: 0x88A6, + 8211 - 7870: 0xA156, + 8212 - 7870: 0xA158, + 8216 - 7870: 0xA1A5, + 8217 - 7870: 0xA1A6, + 8220 - 7870: 0xA1A7, + 8221 - 7870: 0xA1A8, + 8229 - 7870: 0xA14C, + 8230 - 7870: 0xA14B, + 8231 - 7870: 0xA145, + 8242 - 7870: 0xA1AC, + 8245 - 7870: 0xA1AB, + 8251 - 7870: 0xA1B0, + 8364 - 7870: 0xA3E1, + 8451 - 7870: 0xA24A, + 8453 - 7870: 0xA1C1, + 8457 - 7870: 0xA24B, + 8470 - 7870: 0xC8D2, + 8481 - 7870: 0xC8D3, + 8544 - 7870: 0xA2B9, + 8545 - 7870: 0xA2BA, + 8546 - 7870: 0xA2BB, + 8547 - 7870: 0xA2BC, + 8548 - 7870: 0xA2BD, + 8549 - 7870: 0xA2BE, + 8550 - 7870: 0xA2BF, + 8551 - 7870: 0xA2C0, + 8552 - 7870: 0xA2C1, + 8553 - 7870: 0xA2C2, + 8560 - 7870: 0xC6B5, + 8561 - 7870: 0xC6B6, + 8562 - 7870: 0xC6B7, + 8563 - 7870: 0xC6B8, + 8564 - 7870: 0xC6B9, + 8565 - 7870: 0xC6BA, + 8566 - 7870: 0xC6BB, + 8567 - 7870: 0xC6BC, + 8568 - 7870: 0xC6BD, + 8569 - 7870: 0xC6BE, + 8592 - 7870: 0xA1F6, + 8593 - 7870: 0xA1F4, + 8594 - 7870: 0xA1F7, + 8595 - 7870: 0xA1F5, + 8598 - 7870: 0xA1F8, + 8599 - 7870: 0xA1F9, + 8600 - 7870: 0xA1FB, + 8601 - 7870: 0xA1FA, + 8632 - 7870: 0xC877, + 8633 - 7870: 0xC878, + 8679 - 7870: 0xC876, + 8725 - 7870: 0xA241, + 8730 - 7870: 0xA1D4, + 8734 - 7870: 0xA1DB, + 8735 - 7870: 0xA1E8, + 8736 - 7870: 0xA1E7, + 8739 - 7870: 0xA1FD, + 8741 - 7870: 0xA1FC, + 8745 - 7870: 0xA1E4, + 8746 - 7870: 0xA1E5, + 8747 - 7870: 0xA1EC, + 8750 - 7870: 0xA1ED, + 8756 - 7870: 0xA1EF, + 8757 - 7870: 0xA1EE, + 8786 - 7870: 0xA1DC, + 8800 - 7870: 0xA1DA, + 8801 - 7870: 0xA1DD, + 8806 - 7870: 0xA1D8, + 8807 - 7870: 0xA1D9, + 8853 - 7870: 0xA1F2, + 8857 - 7870: 0xA1F3, + 8869 - 7870: 0xA1E6, + 8895 - 7870: 0xA1E9, + 9178 - 7870: 0x88A9, + 9179 - 7870: 0x88AA, + 9216 - 7870: 0xA3C0, + 9217 - 7870: 0xA3C1, + 9218 - 7870: 0xA3C2, + 9219 - 7870: 0xA3C3, + 9220 - 7870: 0xA3C4, + 9221 - 7870: 0xA3C5, + 9222 - 7870: 0xA3C6, + 9223 - 7870: 0xA3C7, + 9224 - 7870: 0xA3C8, + 9225 - 7870: 0xA3C9, + 9226 - 7870: 0xA3CA, + 9227 - 7870: 0xA3CB, + 9228 - 7870: 0xA3CC, + 9229 - 7870: 0xA3CD, + 9230 - 7870: 0xA3CE, + 9231 - 7870: 0xA3CF, + 9232 - 7870: 0xA3D0, + 9233 - 7870: 0xA3D1, + 9234 - 7870: 0xA3D2, + 9235 - 7870: 0xA3D3, + 9236 - 7870: 0xA3D4, + 9237 - 7870: 0xA3D5, + 9238 - 7870: 0xA3D6, + 9239 - 7870: 0xA3D7, + 9240 - 7870: 0xA3D8, + 9241 - 7870: 0xA3D9, + 9242 - 7870: 0xA3DA, + 9243 - 7870: 0xA3DB, + 9244 - 7870: 0xA3DC, + 9245 - 7870: 0xA3DD, + 9246 - 7870: 0xA3DE, + 9247 - 7870: 0xA3DF, + 9249 - 7870: 0xA3E0, + 9312 - 7870: 0xC6A1, + 9313 - 7870: 0xC6A2, + 9314 - 7870: 0xC6A3, + 9315 - 7870: 0xC6A4, + 9316 - 7870: 0xC6A5, + 9317 - 7870: 0xC6A6, + 9318 - 7870: 0xC6A7, + 9319 - 7870: 0xC6A8, + 9320 - 7870: 0xC6A9, + 9321 - 7870: 0xC6AA, + 9332 - 7870: 0xC6AB, + 9333 - 7870: 0xC6AC, + 9334 - 7870: 0xC6AD, + 9335 - 7870: 0xC6AE, + 9336 - 7870: 0xC6AF, + 9337 - 7870: 0xC6B0, + 9338 - 7870: 0xC6B1, + 9339 - 7870: 0xC6B2, + 9340 - 7870: 0xC6B3, + 9341 - 7870: 0xC6B4, + 9472 - 7870: 0xA277, + 9474 - 7870: 0xA278, + 9484 - 7870: 0xA27A, + 9488 - 7870: 0xA27B, + 9492 - 7870: 0xA27C, + 9496 - 7870: 0xA27D, + 9500 - 7870: 0xA275, + 9508 - 7870: 0xA274, + 9516 - 7870: 0xA273, + 9524 - 7870: 0xA272, + 9532 - 7870: 0xA271, + 9552 - 7870: 0xF9F9, + 9553 - 7870: 0xF9F8, + 9554 - 7870: 0xF9E6, + 9555 - 7870: 0xF9EF, + 9556 - 7870: 0xF9DD, + 9557 - 7870: 0xF9E8, + 9558 - 7870: 0xF9F1, + 9559 - 7870: 0xF9DF, + 9560 - 7870: 0xF9EC, + 9561 - 7870: 0xF9F5, + 9562 - 7870: 0xF9E3, + 9563 - 7870: 0xF9EE, + 9564 - 7870: 0xF9F7, + 9565 - 7870: 0xF9E5, + 9566 - 7870: 0xF9E9, + 9567 - 7870: 0xF9F2, + 9568 - 7870: 0xF9E0, + 9569 - 7870: 0xF9EB, + 9570 - 7870: 0xF9F4, + 9571 - 7870: 0xF9E2, + 9572 - 7870: 0xF9E7, + 9573 - 7870: 0xF9F0, + 9574 - 7870: 0xF9DE, + 9575 - 7870: 0xF9ED, + 9576 - 7870: 0xF9F6, + 9577 - 7870: 0xF9E4, + 9578 - 7870: 0xF9EA, + 9579 - 7870: 0xF9F3, + 9580 - 7870: 0xF9E1, + 9581 - 7870: 0xF9FA, + 9582 - 7870: 0xF9FB, + 9583 - 7870: 0xF9FD, + 9584 - 7870: 0xF9FC, + 9585 - 7870: 0xA2AC, + 9586 - 7870: 0xA2AD, + 9587 - 7870: 0xA2AE, + 9588 - 7870: 0xA15A, + 9601 - 7870: 0xA262, + 9602 - 7870: 0xA263, + 9603 - 7870: 0xA264, + 9604 - 7870: 0xA265, + 9605 - 7870: 0xA266, + 9606 - 7870: 0xA267, + 9607 - 7870: 0xA268, + 9608 - 7870: 0xA269, + 9609 - 7870: 0xA270, + 9610 - 7870: 0xA26F, + 9611 - 7870: 0xA26E, + 9612 - 7870: 0xA26D, + 9613 - 7870: 0xA26C, + 9614 - 7870: 0xA26B, + 9615 - 7870: 0xA26A, + 9620 - 7870: 0xA276, + 9621 - 7870: 0xA279, + 9632 - 7870: 0xA1BD, + 9633 - 7870: 0xA1BC, + 9650 - 7870: 0xA1B6, + 9651 - 7870: 0xA1B5, + 9660 - 7870: 0xA1BF, + 9661 - 7870: 0xA1BE, + 9670 - 7870: 0xA1BB, + 9671 - 7870: 0xA1BA, + 9675 - 7870: 0xA1B3, + 9678 - 7870: 0xA1B7, + 9679 - 7870: 0xA1B4, + 9698 - 7870: 0xA2A8, + 9699 - 7870: 0xA2A9, + 9700 - 7870: 0xA2AB, + 9701 - 7870: 0xA2AA, + 9733 - 7870: 0xA1B9, + 9734 - 7870: 0xA1B8, + 9792 - 7870: 0xA1F0, + 9794 - 7870: 0xA1F1, + 10045 - 7870: 0xC6E6, +} + +const encode3Low, encode3High = 167, 1106 + +var encode3 = [...]uint16{ + 167 - 167: 0xA1B1, + 168 - 167: 0xC6D8, + 175 - 167: 0xA1C2, + 176 - 167: 0xA258, + 177 - 167: 0xA1D3, + 183 - 167: 0xA150, + 192 - 167: 0x8859, + 193 - 167: 0x8857, + 200 - 167: 0x885D, + 201 - 167: 0x885B, + 202 - 167: 0x8866, + 210 - 167: 0x8861, + 211 - 167: 0x885F, + 215 - 167: 0xA1D1, + 224 - 167: 0x886A, + 225 - 167: 0x8868, + 232 - 167: 0x886F, + 233 - 167: 0x886D, + 234 - 167: 0x88A7, + 236 - 167: 0x8873, + 237 - 167: 0x8871, + 242 - 167: 0x8877, + 243 - 167: 0x8875, + 247 - 167: 0xA1D2, + 248 - 167: 0xC8FB, + 249 - 167: 0x887B, + 250 - 167: 0x8879, + 252 - 167: 0x88A2, + 256 - 167: 0x8856, + 257 - 167: 0x8867, + 274 - 167: 0x885A, + 275 - 167: 0x886C, + 282 - 167: 0x885C, + 283 - 167: 0x886E, + 299 - 167: 0x8870, + 331 - 167: 0xC8FC, + 332 - 167: 0x885E, + 333 - 167: 0x8874, + 339 - 167: 0xC8FA, + 363 - 167: 0x8878, + 461 - 167: 0x8858, + 462 - 167: 0x8869, + 464 - 167: 0x8872, + 465 - 167: 0x8860, + 466 - 167: 0x8876, + 468 - 167: 0x887A, + 470 - 167: 0x887C, + 472 - 167: 0x887D, + 474 - 167: 0x887E, + 476 - 167: 0x88A1, + 592 - 167: 0xC8F6, + 593 - 167: 0x886B, + 596 - 167: 0xC8F8, + 603 - 167: 0xC8F7, + 609 - 167: 0x88A8, + 618 - 167: 0xC8FE, + 629 - 167: 0xC8F9, + 643 - 167: 0xC8F5, + 650 - 167: 0xC8FD, + 710 - 167: 0xC6D9, + 711 - 167: 0xA3BE, + 713 - 167: 0xA3BC, + 714 - 167: 0xA3BD, + 715 - 167: 0xA3BF, + 717 - 167: 0xA1C5, + 729 - 167: 0xA3BB, + 913 - 167: 0xA344, + 914 - 167: 0xA345, + 915 - 167: 0xA346, + 916 - 167: 0xA347, + 917 - 167: 0xA348, + 918 - 167: 0xA349, + 919 - 167: 0xA34A, + 920 - 167: 0xA34B, + 921 - 167: 0xA34C, + 922 - 167: 0xA34D, + 923 - 167: 0xA34E, + 924 - 167: 0xA34F, + 925 - 167: 0xA350, + 926 - 167: 0xA351, + 927 - 167: 0xA352, + 928 - 167: 0xA353, + 929 - 167: 0xA354, + 931 - 167: 0xA355, + 932 - 167: 0xA356, + 933 - 167: 0xA357, + 934 - 167: 0xA358, + 935 - 167: 0xA359, + 936 - 167: 0xA35A, + 937 - 167: 0xA35B, + 945 - 167: 0xA35C, + 946 - 167: 0xA35D, + 947 - 167: 0xA35E, + 948 - 167: 0xA35F, + 949 - 167: 0xA360, + 950 - 167: 0xA361, + 951 - 167: 0xA362, + 952 - 167: 0xA363, + 953 - 167: 0xA364, + 954 - 167: 0xA365, + 955 - 167: 0xA366, + 956 - 167: 0xA367, + 957 - 167: 0xA368, + 958 - 167: 0xA369, + 959 - 167: 0xA36A, + 960 - 167: 0xA36B, + 961 - 167: 0xA36C, + 963 - 167: 0xA36D, + 964 - 167: 0xA36E, + 965 - 167: 0xA36F, + 966 - 167: 0xA370, + 967 - 167: 0xA371, + 968 - 167: 0xA372, + 969 - 167: 0xA373, + 1025 - 167: 0xC7F9, + 1040 - 167: 0xC7F3, + 1041 - 167: 0xC7F4, + 1042 - 167: 0xC7F5, + 1043 - 167: 0xC7F6, + 1044 - 167: 0xC7F7, + 1045 - 167: 0xC7F8, + 1046 - 167: 0xC7FA, + 1047 - 167: 0xC7FB, + 1048 - 167: 0xC7FC, + 1049 - 167: 0xC7FD, + 1050 - 167: 0xC7FE, + 1051 - 167: 0xC840, + 1052 - 167: 0xC841, + 1053 - 167: 0xC842, + 1054 - 167: 0xC843, + 1055 - 167: 0xC844, + 1056 - 167: 0xC845, + 1057 - 167: 0xC846, + 1058 - 167: 0xC847, + 1059 - 167: 0xC848, + 1060 - 167: 0xC849, + 1061 - 167: 0xC84A, + 1062 - 167: 0xC84B, + 1063 - 167: 0xC84C, + 1064 - 167: 0xC84D, + 1065 - 167: 0xC84E, + 1066 - 167: 0xC84F, + 1067 - 167: 0xC850, + 1068 - 167: 0xC851, + 1069 - 167: 0xC852, + 1070 - 167: 0xC853, + 1071 - 167: 0xC854, + 1072 - 167: 0xC855, + 1073 - 167: 0xC856, + 1074 - 167: 0xC857, + 1075 - 167: 0xC858, + 1076 - 167: 0xC859, + 1077 - 167: 0xC85A, + 1078 - 167: 0xC85C, + 1079 - 167: 0xC85D, + 1080 - 167: 0xC85E, + 1081 - 167: 0xC85F, + 1082 - 167: 0xC860, + 1083 - 167: 0xC861, + 1084 - 167: 0xC862, + 1085 - 167: 0xC863, + 1086 - 167: 0xC864, + 1087 - 167: 0xC865, + 1088 - 167: 0xC866, + 1089 - 167: 0xC867, + 1090 - 167: 0xC868, + 1091 - 167: 0xC869, + 1092 - 167: 0xC86A, + 1093 - 167: 0xC86B, + 1094 - 167: 0xC86C, + 1095 - 167: 0xC86D, + 1096 - 167: 0xC86E, + 1097 - 167: 0xC86F, + 1098 - 167: 0xC870, + 1099 - 167: 0xC871, + 1100 - 167: 0xC872, + 1101 - 167: 0xC873, + 1102 - 167: 0xC874, + 1103 - 167: 0xC875, + 1105 - 167: 0xC85B, +} + +const encode4Low, encode4High = 65072, 65518 + +var encode4 = [...]uint16{ + 65072 - 65072: 0xA14A, + 65073 - 65072: 0xA157, + 65075 - 65072: 0xA159, + 65076 - 65072: 0xA15B, + 65077 - 65072: 0xA15F, + 65078 - 65072: 0xA160, + 65079 - 65072: 0xA163, + 65080 - 65072: 0xA164, + 65081 - 65072: 0xA167, + 65082 - 65072: 0xA168, + 65083 - 65072: 0xA16B, + 65084 - 65072: 0xA16C, + 65085 - 65072: 0xA16F, + 65086 - 65072: 0xA170, + 65087 - 65072: 0xA173, + 65088 - 65072: 0xA174, + 65089 - 65072: 0xA177, + 65090 - 65072: 0xA178, + 65091 - 65072: 0xA17B, + 65092 - 65072: 0xA17C, + 65097 - 65072: 0xA1C6, + 65098 - 65072: 0xA1C7, + 65099 - 65072: 0xA1CA, + 65100 - 65072: 0xA1CB, + 65101 - 65072: 0xA1C8, + 65102 - 65072: 0xA1C9, + 65103 - 65072: 0xA15C, + 65104 - 65072: 0xA14D, + 65105 - 65072: 0xA14E, + 65106 - 65072: 0xA14F, + 65108 - 65072: 0xA151, + 65109 - 65072: 0xA152, + 65110 - 65072: 0xA153, + 65111 - 65072: 0xA154, + 65113 - 65072: 0xA17D, + 65114 - 65072: 0xA17E, + 65115 - 65072: 0xA1A1, + 65116 - 65072: 0xA1A2, + 65117 - 65072: 0xA1A3, + 65118 - 65072: 0xA1A4, + 65119 - 65072: 0xA1CC, + 65120 - 65072: 0xA1CD, + 65121 - 65072: 0xA1CE, + 65122 - 65072: 0xA1DE, + 65123 - 65072: 0xA1DF, + 65124 - 65072: 0xA1E0, + 65125 - 65072: 0xA1E1, + 65126 - 65072: 0xA1E2, + 65128 - 65072: 0xA242, + 65129 - 65072: 0xA24C, + 65130 - 65072: 0xA24D, + 65131 - 65072: 0xA24E, + 65281 - 65072: 0xA149, + 65282 - 65072: 0xC8D0, + 65283 - 65072: 0xA1AD, + 65284 - 65072: 0xA243, + 65285 - 65072: 0xA248, + 65286 - 65072: 0xA1AE, + 65287 - 65072: 0xC8CF, + 65288 - 65072: 0xA15D, + 65289 - 65072: 0xA15E, + 65290 - 65072: 0xA1AF, + 65291 - 65072: 0xA1CF, + 65292 - 65072: 0xA141, + 65293 - 65072: 0xA1D0, + 65294 - 65072: 0xA144, + 65295 - 65072: 0xA1FE, + 65296 - 65072: 0xA2AF, + 65297 - 65072: 0xA2B0, + 65298 - 65072: 0xA2B1, + 65299 - 65072: 0xA2B2, + 65300 - 65072: 0xA2B3, + 65301 - 65072: 0xA2B4, + 65302 - 65072: 0xA2B5, + 65303 - 65072: 0xA2B6, + 65304 - 65072: 0xA2B7, + 65305 - 65072: 0xA2B8, + 65306 - 65072: 0xA147, + 65307 - 65072: 0xA146, + 65308 - 65072: 0xA1D5, + 65309 - 65072: 0xA1D7, + 65310 - 65072: 0xA1D6, + 65311 - 65072: 0xA148, + 65312 - 65072: 0xA249, + 65313 - 65072: 0xA2CF, + 65314 - 65072: 0xA2D0, + 65315 - 65072: 0xA2D1, + 65316 - 65072: 0xA2D2, + 65317 - 65072: 0xA2D3, + 65318 - 65072: 0xA2D4, + 65319 - 65072: 0xA2D5, + 65320 - 65072: 0xA2D6, + 65321 - 65072: 0xA2D7, + 65322 - 65072: 0xA2D8, + 65323 - 65072: 0xA2D9, + 65324 - 65072: 0xA2DA, + 65325 - 65072: 0xA2DB, + 65326 - 65072: 0xA2DC, + 65327 - 65072: 0xA2DD, + 65328 - 65072: 0xA2DE, + 65329 - 65072: 0xA2DF, + 65330 - 65072: 0xA2E0, + 65331 - 65072: 0xA2E1, + 65332 - 65072: 0xA2E2, + 65333 - 65072: 0xA2E3, + 65334 - 65072: 0xA2E4, + 65335 - 65072: 0xA2E5, + 65336 - 65072: 0xA2E6, + 65337 - 65072: 0xA2E7, + 65338 - 65072: 0xA2E8, + 65339 - 65072: 0xC6E4, + 65340 - 65072: 0xA240, + 65341 - 65072: 0xC6E5, + 65343 - 65072: 0xA1C4, + 65345 - 65072: 0xA2E9, + 65346 - 65072: 0xA2EA, + 65347 - 65072: 0xA2EB, + 65348 - 65072: 0xA2EC, + 65349 - 65072: 0xA2ED, + 65350 - 65072: 0xA2EE, + 65351 - 65072: 0xA2EF, + 65352 - 65072: 0xA2F0, + 65353 - 65072: 0xA2F1, + 65354 - 65072: 0xA2F2, + 65355 - 65072: 0xA2F3, + 65356 - 65072: 0xA2F4, + 65357 - 65072: 0xA2F5, + 65358 - 65072: 0xA2F6, + 65359 - 65072: 0xA2F7, + 65360 - 65072: 0xA2F8, + 65361 - 65072: 0xA2F9, + 65362 - 65072: 0xA2FA, + 65363 - 65072: 0xA2FB, + 65364 - 65072: 0xA2FC, + 65365 - 65072: 0xA2FD, + 65366 - 65072: 0xA2FE, + 65367 - 65072: 0xA340, + 65368 - 65072: 0xA341, + 65369 - 65072: 0xA342, + 65370 - 65072: 0xA343, + 65371 - 65072: 0xA161, + 65372 - 65072: 0xA155, + 65373 - 65072: 0xA162, + 65374 - 65072: 0xA1E3, + 65504 - 65072: 0xA246, + 65505 - 65072: 0xA247, + 65506 - 65072: 0xC8CD, + 65507 - 65072: 0xA1C3, + 65508 - 65072: 0xC8CE, + 65509 - 65072: 0xA244, + 65517 - 65072: 0xF9FE, +} + +const encode5Low, encode5High = 194597, 195029 + +var encode5 = [...]uint16{ + 194597 - 194597: 0x9874, + 194619 - 194597: 0x9AC8, + 194624 - 194597: 0xA047, + 194680 - 194597: 0x8BC3, + 194708 - 194597: 0xFC48, + 194726 - 194597: 0xFC77, + 194765 - 194597: 0x9C52, + 194964 - 194597: 0x8EFD, + 194994 - 194597: 0x8FA8, + 195004 - 194597: 0x957A, + 195028 - 194597: 0x8FF0, +} + +const encode6Low, encode6High = 63751, 64014 + +var encode6 = [...]uint16{ + 63751 - 63751: 0x8BF8, + 64012 - 63751: 0xC94A, + 64013 - 63751: 0xDDFC, +} + +const encode7Low, encode7High = 175615, 175616 + +var encode7 = [...]uint16{ + 175615 - 175615: 0x87DC, +} diff --git a/vendor/golang.org/x/text/encoding/unicode/override.go b/vendor/golang.org/x/text/encoding/unicode/override.go new file mode 100644 index 00000000..35d62fcc --- /dev/null +++ b/vendor/golang.org/x/text/encoding/unicode/override.go @@ -0,0 +1,82 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unicode + +import ( + "golang.org/x/text/transform" +) + +// BOMOverride returns a new decoder transformer that is identical to fallback, +// except that the presence of a Byte Order Mark at the start of the input +// causes it to switch to the corresponding Unicode decoding. It will only +// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE. +// +// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not +// just UTF-16 variants, and allowing falling back to any encoding scheme. +// +// This technique is recommended by the W3C for use in HTML 5: "For +// compatibility with deployed content, the byte order mark (also known as BOM) +// is considered more authoritative than anything else." +// http://www.w3.org/TR/encoding/#specification-hooks +// +// Using BOMOverride is mostly intended for use cases where the first characters +// of a fallback encoding are known to not be a BOM, for example, for valid HTML +// and most encodings. +func BOMOverride(fallback transform.Transformer) transform.Transformer { + // TODO: possibly allow a variadic argument of unicode encodings to allow + // specifying details of which fallbacks are supported as well as + // specifying the details of the implementations. This would also allow for + // support for UTF-32, which should not be supported by default. + return &bomOverride{fallback: fallback} +} + +type bomOverride struct { + fallback transform.Transformer + current transform.Transformer +} + +func (d *bomOverride) Reset() { + d.current = nil + d.fallback.Reset() +} + +var ( + // TODO: we could use decode functions here, instead of allocating a new + // decoder on every NewDecoder as IgnoreBOM decoders can be stateless. + utf16le = UTF16(LittleEndian, IgnoreBOM) + utf16be = UTF16(BigEndian, IgnoreBOM) +) + +const utf8BOM = "\ufeff" + +func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if d.current != nil { + return d.current.Transform(dst, src, atEOF) + } + if len(src) < 3 && !atEOF { + return 0, 0, transform.ErrShortSrc + } + d.current = d.fallback + bomSize := 0 + if len(src) >= 2 { + if src[0] == 0xFF && src[1] == 0xFE { + d.current = utf16le.NewDecoder() + bomSize = 2 + } else if src[0] == 0xFE && src[1] == 0xFF { + d.current = utf16be.NewDecoder() + bomSize = 2 + } else if len(src) >= 3 && + src[0] == utf8BOM[0] && + src[1] == utf8BOM[1] && + src[2] == utf8BOM[2] { + d.current = transform.Nop + bomSize = 3 + } + } + if bomSize < len(src) { + nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF) + } + return nDst, nSrc + bomSize, err +} diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/golang.org/x/text/encoding/unicode/unicode.go new file mode 100644 index 00000000..579cadfb --- /dev/null +++ b/vendor/golang.org/x/text/encoding/unicode/unicode.go @@ -0,0 +1,434 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package unicode provides Unicode encodings such as UTF-16. +package unicode // import "golang.org/x/text/encoding/unicode" + +import ( + "errors" + "unicode/utf16" + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal" + "golang.org/x/text/encoding/internal/identifier" + "golang.org/x/text/internal/utf8internal" + "golang.org/x/text/runes" + "golang.org/x/text/transform" +) + +// TODO: I think the Transformers really should return errors on unmatched +// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781, +// which leaves it open, but is suggested by WhatWG. It will allow for all error +// modes as defined by WhatWG: fatal, HTML and Replacement. This would require +// the introduction of some kind of error type for conveying the erroneous code +// point. + +// UTF8 is the UTF-8 encoding. +var UTF8 encoding.Encoding = utf8enc + +var utf8enc = &internal.Encoding{ + &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()}, + "UTF-8", + identifier.UTF8, +} + +type utf8Decoder struct{ transform.NopResetter } + +func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + var pSrc int // point from which to start copy in src + var accept utf8internal.AcceptRange + + // The decoder can only make the input larger, not smaller. + n := len(src) + if len(dst) < n { + err = transform.ErrShortDst + n = len(dst) + atEOF = false + } + for nSrc < n { + c := src[nSrc] + if c < utf8.RuneSelf { + nSrc++ + continue + } + first := utf8internal.First[c] + size := int(first & utf8internal.SizeMask) + if first == utf8internal.FirstInvalid { + goto handleInvalid // invalid starter byte + } + accept = utf8internal.AcceptRanges[first>>utf8internal.AcceptShift] + if nSrc+size > n { + if !atEOF { + // We may stop earlier than necessary here if the short sequence + // has invalid bytes. Not checking for this simplifies the code + // and may avoid duplicate computations in certain conditions. + if err == nil { + err = transform.ErrShortSrc + } + break + } + // Determine the maximal subpart of an ill-formed subsequence. + switch { + case nSrc+1 >= n || src[nSrc+1] < accept.Lo || accept.Hi < src[nSrc+1]: + size = 1 + case nSrc+2 >= n || src[nSrc+2] < utf8internal.LoCB || utf8internal.HiCB < src[nSrc+2]: + size = 2 + default: + size = 3 // As we are short, the maximum is 3. + } + goto handleInvalid + } + if c = src[nSrc+1]; c < accept.Lo || accept.Hi < c { + size = 1 + goto handleInvalid // invalid continuation byte + } else if size == 2 { + } else if c = src[nSrc+2]; c < utf8internal.LoCB || utf8internal.HiCB < c { + size = 2 + goto handleInvalid // invalid continuation byte + } else if size == 3 { + } else if c = src[nSrc+3]; c < utf8internal.LoCB || utf8internal.HiCB < c { + size = 3 + goto handleInvalid // invalid continuation byte + } + nSrc += size + continue + + handleInvalid: + // Copy the scanned input so far. + nDst += copy(dst[nDst:], src[pSrc:nSrc]) + + // Append RuneError to the destination. + const runeError = "\ufffd" + if nDst+len(runeError) > len(dst) { + return nDst, nSrc, transform.ErrShortDst + } + nDst += copy(dst[nDst:], runeError) + + // Skip the maximal subpart of an ill-formed subsequence according to + // the W3C standard way instead of the Go way. This Transform is + // probably the only place in the text repo where it is warranted. + nSrc += size + pSrc = nSrc + + // Recompute the maximum source length. + if sz := len(dst) - nDst; sz < len(src)-nSrc { + err = transform.ErrShortDst + n = nSrc + sz + atEOF = false + } + } + return nDst + copy(dst[nDst:], src[pSrc:nSrc]), nSrc, err +} + +// UTF16 returns a UTF-16 Encoding for the given default endianness and byte +// order mark (BOM) policy. +// +// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then +// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect +// the endianness used for decoding, and will instead be output as their +// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy +// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output. +// Instead, it overrides the default endianness e for the remainder of the +// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not +// affect the endianness used, and will instead be output as their standard +// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed +// with the default Endianness. For ExpectBOM, in that case, the transformation +// will return early with an ErrMissingBOM error. +// +// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of +// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not +// be inserted. The UTF-8 input does not need to contain a BOM. +// +// There is no concept of a 'native' endianness. If the UTF-16 data is produced +// and consumed in a greater context that implies a certain endianness, use +// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. +// +// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM +// corresponds to "Where the precise type of the data stream is known... the +// BOM should not be used" and ExpectBOM corresponds to "A particular +// protocol... may require use of the BOM". +func UTF16(e Endianness, b BOMPolicy) encoding.Encoding { + return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]} +} + +// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that +// some configurations map to the same MIB identifier. RFC 2781 has requirements +// and recommendations. Some of the "configurations" are merely recommendations, +// so multiple configurations could match. +var mibValue = map[Endianness][numBOMValues]identifier.MIB{ + BigEndian: [numBOMValues]identifier.MIB{ + IgnoreBOM: identifier.UTF16BE, + UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781. + // TODO: acceptBOM | strictBOM would map to UTF16BE as well. + }, + LittleEndian: [numBOMValues]identifier.MIB{ + IgnoreBOM: identifier.UTF16LE, + UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows. + // TODO: acceptBOM | strictBOM would map to UTF16LE as well. + }, + // ExpectBOM is not widely used and has no valid MIB identifier. +} + +// All lists a configuration for each IANA-defined UTF-16 variant. +var All = []encoding.Encoding{ + UTF8, + UTF16(BigEndian, UseBOM), + UTF16(BigEndian, IgnoreBOM), + UTF16(LittleEndian, IgnoreBOM), +} + +// BOMPolicy is a UTF-16 encoding's byte order mark policy. +type BOMPolicy uint8 + +const ( + writeBOM BOMPolicy = 0x01 + acceptBOM BOMPolicy = 0x02 + requireBOM BOMPolicy = 0x04 + bomMask BOMPolicy = 0x07 + + // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a + // map of an array of length 8 of a type that is also used as a key or value + // in another map). See golang.org/issue/11354. + // TODO: consider changing this value back to 8 if the use of 1.4.* has + // been minimized. + numBOMValues = 8 + 1 + + // IgnoreBOM means to ignore any byte order marks. + IgnoreBOM BOMPolicy = 0 + // Common and RFC 2781-compliant interpretation for UTF-16BE/LE. + + // UseBOM means that the UTF-16 form may start with a byte order mark, which + // will be used to override the default encoding. + UseBOM BOMPolicy = writeBOM | acceptBOM + // Common and RFC 2781-compliant interpretation for UTF-16. + + // ExpectBOM means that the UTF-16 form must start with a byte order mark, + // which will be used to override the default encoding. + ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM + // Used in Java as Unicode (not to be confused with Java's UTF-16) and + // ICU's UTF-16,version=1. Not compliant with RFC 2781. + + // TODO (maybe): strictBOM: BOM must match Endianness. This would allow: + // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM + // (UnicodeBig and UnicodeLittle in Java) + // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E: + // acceptBOM | strictBOM (e.g. assigned to CheckBOM). + // This addition would be consistent with supporting ExpectBOM. +) + +// Endianness is a UTF-16 encoding's default endianness. +type Endianness bool + +const ( + // BigEndian is UTF-16BE. + BigEndian Endianness = false + // LittleEndian is UTF-16LE. + LittleEndian Endianness = true +) + +// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a +// starting byte order mark. +var ErrMissingBOM = errors.New("encoding: missing byte order mark") + +type utf16Encoding struct { + config + mib identifier.MIB +} + +type config struct { + endianness Endianness + bomPolicy BOMPolicy +} + +func (u utf16Encoding) NewDecoder() *encoding.Decoder { + return &encoding.Decoder{Transformer: &utf16Decoder{ + initial: u.config, + current: u.config, + }} +} + +func (u utf16Encoding) NewEncoder() *encoding.Encoder { + return &encoding.Encoder{Transformer: &utf16Encoder{ + endianness: u.endianness, + initialBOMPolicy: u.bomPolicy, + currentBOMPolicy: u.bomPolicy, + }} +} + +func (u utf16Encoding) ID() (mib identifier.MIB, other string) { + return u.mib, "" +} + +func (u utf16Encoding) String() string { + e, b := "B", "" + if u.endianness == LittleEndian { + e = "L" + } + switch u.bomPolicy { + case ExpectBOM: + b = "Expect" + case UseBOM: + b = "Use" + case IgnoreBOM: + b = "Ignore" + } + return "UTF-16" + e + "E (" + b + " BOM)" +} + +type utf16Decoder struct { + initial config + current config +} + +func (u *utf16Decoder) Reset() { + u.current = u.initial +} + +func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if len(src) == 0 { + if atEOF && u.current.bomPolicy&requireBOM != 0 { + return 0, 0, ErrMissingBOM + } + return 0, 0, nil + } + if u.current.bomPolicy&acceptBOM != 0 { + if len(src) < 2 { + return 0, 0, transform.ErrShortSrc + } + switch { + case src[0] == 0xfe && src[1] == 0xff: + u.current.endianness = BigEndian + nSrc = 2 + case src[0] == 0xff && src[1] == 0xfe: + u.current.endianness = LittleEndian + nSrc = 2 + default: + if u.current.bomPolicy&requireBOM != 0 { + return 0, 0, ErrMissingBOM + } + } + u.current.bomPolicy = IgnoreBOM + } + + var r rune + var dSize, sSize int + for nSrc < len(src) { + if nSrc+1 < len(src) { + x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1]) + if u.current.endianness == LittleEndian { + x = x>>8 | x<<8 + } + r, sSize = rune(x), 2 + if utf16.IsSurrogate(r) { + if nSrc+3 < len(src) { + x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3]) + if u.current.endianness == LittleEndian { + x = x>>8 | x<<8 + } + // Save for next iteration if it is not a high surrogate. + if isHighSurrogate(rune(x)) { + r, sSize = utf16.DecodeRune(r, rune(x)), 4 + } + } else if !atEOF { + err = transform.ErrShortSrc + break + } + } + if dSize = utf8.RuneLen(r); dSize < 0 { + r, dSize = utf8.RuneError, 3 + } + } else if atEOF { + // Single trailing byte. + r, dSize, sSize = utf8.RuneError, 3, 1 + } else { + err = transform.ErrShortSrc + break + } + if nDst+dSize > len(dst) { + err = transform.ErrShortDst + break + } + nDst += utf8.EncodeRune(dst[nDst:], r) + nSrc += sSize + } + return nDst, nSrc, err +} + +func isHighSurrogate(r rune) bool { + return 0xDC00 <= r && r <= 0xDFFF +} + +type utf16Encoder struct { + endianness Endianness + initialBOMPolicy BOMPolicy + currentBOMPolicy BOMPolicy +} + +func (u *utf16Encoder) Reset() { + u.currentBOMPolicy = u.initialBOMPolicy +} + +func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if u.currentBOMPolicy&writeBOM != 0 { + if len(dst) < 2 { + return 0, 0, transform.ErrShortDst + } + dst[0], dst[1] = 0xfe, 0xff + u.currentBOMPolicy = IgnoreBOM + nDst = 2 + } + + r, size := rune(0), 0 + for nSrc < len(src) { + r = rune(src[nSrc]) + + // Decode a 1-byte rune. + if r < utf8.RuneSelf { + size = 1 + + } else { + // Decode a multi-byte rune. + r, size = utf8.DecodeRune(src[nSrc:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + } + } + + if r <= 0xffff { + if nDst+2 > len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst+0] = uint8(r >> 8) + dst[nDst+1] = uint8(r) + nDst += 2 + } else { + if nDst+4 > len(dst) { + err = transform.ErrShortDst + break + } + r1, r2 := utf16.EncodeRune(r) + dst[nDst+0] = uint8(r1 >> 8) + dst[nDst+1] = uint8(r1) + dst[nDst+2] = uint8(r2 >> 8) + dst[nDst+3] = uint8(r2) + nDst += 4 + } + nSrc += size + } + + if u.endianness == LittleEndian { + for i := 0; i < nDst; i += 2 { + dst[i], dst[i+1] = dst[i+1], dst[i] + } + } + return nDst, nSrc, err +} diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode_test.go b/vendor/golang.org/x/text/encoding/unicode/unicode_test.go new file mode 100644 index 00000000..2bc96156 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/unicode/unicode_test.go @@ -0,0 +1,178 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unicode + +import ( + "testing" + + "golang.org/x/text/transform" +) + +func TestUTF8Decoder(t *testing.T) { + testCases := []struct { + desc string + src string + notEOF bool // the inverse of atEOF + sizeDst int + want string + nSrc int + err error + }{{ + desc: "empty string, empty dest buffer", + }, { + desc: "empty string", + sizeDst: 8, + }, { + desc: "empty string, streaming", + notEOF: true, + sizeDst: 8, + }, { + desc: "ascii", + src: "abcde", + sizeDst: 8, + want: "abcde", + nSrc: 5, + }, { + desc: "ascii and error", + src: "ab\x80de", + sizeDst: 7, + want: "ab\ufffdde", + nSrc: 5, + }, { + desc: "valid two-byte sequence", + src: "a\u0300bc", + sizeDst: 7, + want: "a\u0300bc", + nSrc: 5, + }, { + desc: "valid three-byte sequence", + src: "a\u0300中", + sizeDst: 7, + want: "a\u0300中", + nSrc: 6, + }, { + desc: "valid four-byte sequence", + src: "a中\U00016F50", + sizeDst: 8, + want: "a中\U00016F50", + nSrc: 8, + }, { + desc: "short source buffer", + src: "abc\xf0\x90", + notEOF: true, + sizeDst: 10, + want: "abc", + nSrc: 3, + err: transform.ErrShortSrc, + }, { + // We don't check for the maximal subpart of an ill-formed subsequence + // at the end of an open segment. + desc: "complete invalid that looks like short at end", + src: "abc\xf0\x80", + notEOF: true, + sizeDst: 10, + want: "abc", // instead of "abc\ufffd\ufffd", + nSrc: 3, + err: transform.ErrShortSrc, + }, { + desc: "incomplete sequence at end", + src: "a\x80bc\xf0\x90", + sizeDst: 9, + want: "a\ufffdbc\ufffd", + nSrc: 6, + }, { + desc: "invalid second byte", + src: "abc\xf0dddd", + sizeDst: 10, + want: "abc\ufffddddd", + nSrc: 8, + }, { + desc: "invalid second byte at end", + src: "abc\xf0d", + sizeDst: 10, + want: "abc\ufffdd", + nSrc: 5, + }, { + desc: "invalid third byte", + src: "a\u0300bc\xf0\x90dddd", + sizeDst: 12, + want: "a\u0300bc\ufffddddd", + nSrc: 11, + }, { + desc: "invalid third byte at end", + src: "a\u0300bc\xf0\x90d", + sizeDst: 12, + want: "a\u0300bc\ufffdd", + nSrc: 8, + }, { + desc: "invalid fourth byte, tight buffer", + src: "a\u0300bc\xf0\x90\x80d", + sizeDst: 9, + want: "a\u0300bc\ufffdd", + nSrc: 9, + }, { + desc: "invalid fourth byte at end", + src: "a\u0300bc\xf0\x90\x80", + sizeDst: 8, + want: "a\u0300bc\ufffd", + nSrc: 8, + }, { + desc: "invalid fourth byte and short four byte sequence", + src: "a\u0300bc\xf0\x90\x80\xf0\x90\x80", + notEOF: true, + sizeDst: 20, + want: "a\u0300bc\ufffd", + nSrc: 8, + err: transform.ErrShortSrc, + }, { + desc: "valid four-byte sequence overflowing short buffer", + src: "a\u0300bc\xf0\x90\x80\x80", + notEOF: true, + sizeDst: 8, + want: "a\u0300bc", + nSrc: 5, + err: transform.ErrShortDst, + }, { + desc: "invalid fourth byte at end short, but short dst", + src: "a\u0300bc\xf0\x90\x80\xf0\x90\x80", + notEOF: true, + sizeDst: 8, + // More bytes would fit in the buffer, but this seems to require a more + // complicated and slower algorithm. + want: "a\u0300bc", // instead of "a\u0300bc" + nSrc: 5, + err: transform.ErrShortDst, + }, { + desc: "short dst for error", + src: "abc\x80", + notEOF: true, + sizeDst: 5, + want: "abc", + nSrc: 3, + err: transform.ErrShortDst, + }, { + desc: "adjusting short dst buffer", + src: "abc\x80ef", + notEOF: true, + sizeDst: 6, + want: "abc\ufffd", + nSrc: 4, + err: transform.ErrShortDst, + }} + tr := UTF8.NewDecoder() + for i, tc := range testCases { + b := make([]byte, tc.sizeDst) + nDst, nSrc, err := tr.Transform(b, []byte(tc.src), !tc.notEOF) + if err != tc.err { + t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) + } + if got := string(b[:nDst]); got != tc.want { + t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) + } + if nSrc != tc.nSrc { + t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) + } + } +} diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go new file mode 100644 index 00000000..48b21521 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go @@ -0,0 +1,296 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package utf32 provides the UTF-32 Unicode encoding. +// +// Please note that support for UTF-32 is discouraged as it is a rare and +// inefficient encoding, unfit for use as an interchange format. For use +// on the web, the W3C strongly discourages its use +// (https://www.w3.org/TR/html5/document-metadata.html#charset) +// while WHATWG directly prohibits supporting it +// (https://html.spec.whatwg.org/multipage/syntax.html#character-encodings). +package utf32 // import "golang.org/x/text/encoding/unicode/utf32" + +import ( + "errors" + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal/identifier" + "golang.org/x/text/transform" +) + +// All lists a configuration for each IANA-defined UTF-32 variant. +var All = []encoding.Encoding{ + UTF32(BigEndian, UseBOM), + UTF32(BigEndian, IgnoreBOM), + UTF32(LittleEndian, IgnoreBOM), +} + +// ErrMissingBOM means that decoding UTF-32 input with ExpectBOM did not +// find a starting byte order mark. +var ErrMissingBOM = errors.New("encoding: missing byte order mark") + +// UTF32 returns a UTF-32 Encoding for the given default endianness and +// byte order mark (BOM) policy. +// +// When decoding from UTF-32 to UTF-8, if the BOMPolicy is IgnoreBOM then +// neither BOMs U+FEFF nor ill-formed code units 0xFFFE0000 in the input +// stream will affect the endianness used for decoding. Instead BOMs will +// be output as their standard UTF-8 encoding "\xef\xbb\xbf" while +// 0xFFFE0000 code units will be output as "\xef\xbf\xbd", the standard +// UTF-8 encoding for the Unicode replacement character. If the BOMPolicy +// is UseBOM or ExpectBOM a starting BOM is not written to the UTF-8 +// output. Instead, it overrides the default endianness e for the remainder +// of the transformation. Any subsequent BOMs U+FEFF or ill-formed code +// units 0xFFFE0000 will not affect the endianness used, and will instead +// be output as their standard UTF-8 (replacement) encodings. For UseBOM, +// if there is no starting BOM, it will proceed with the default +// Endianness. For ExpectBOM, in that case, the transformation will return +// early with an ErrMissingBOM error. +// +// When encoding from UTF-8 to UTF-32, a BOM will be inserted at the start +// of the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM +// will not be inserted. The UTF-8 input does not need to contain a BOM. +// +// There is no concept of a 'native' endianness. If the UTF-32 data is +// produced and consumed in a greater context that implies a certain +// endianness, use IgnoreBOM. Otherwise, use ExpectBOM and always produce +// and consume a BOM. +// +// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, +// IgnoreBOM corresponds to "Where the precise type of the data stream is +// known... the BOM should not be used" and ExpectBOM corresponds to "A +// particular protocol... may require use of the BOM". +func UTF32(e Endianness, b BOMPolicy) encoding.Encoding { + return utf32Encoding{config{e, b}, mibValue[e][b&bomMask]} +} + +// mibValue maps Endianness and BOMPolicy settings to MIB constants for UTF-32. +// Note that some configurations map to the same MIB identifier. +var mibValue = map[Endianness][numBOMValues]identifier.MIB{ + BigEndian: [numBOMValues]identifier.MIB{ + IgnoreBOM: identifier.UTF32BE, + UseBOM: identifier.UTF32, + }, + LittleEndian: [numBOMValues]identifier.MIB{ + IgnoreBOM: identifier.UTF32LE, + UseBOM: identifier.UTF32, + }, + // ExpectBOM is not widely used and has no valid MIB identifier. +} + +// BOMPolicy is a UTF-32 encodings's byte order mark policy. +type BOMPolicy uint8 + +const ( + writeBOM BOMPolicy = 0x01 + acceptBOM BOMPolicy = 0x02 + requireBOM BOMPolicy = 0x04 + bomMask BOMPolicy = 0x07 + + // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a + // map of an array of length 8 of a type that is also used as a key or value + // in another map). See golang.org/issue/11354. + // TODO: consider changing this value back to 8 if the use of 1.4.* has + // been minimized. + numBOMValues = 8 + 1 + + // IgnoreBOM means to ignore any byte order marks. + IgnoreBOM BOMPolicy = 0 + // Unicode-compliant interpretation for UTF-32BE/LE. + + // UseBOM means that the UTF-32 form may start with a byte order mark, + // which will be used to override the default encoding. + UseBOM BOMPolicy = writeBOM | acceptBOM + // Unicode-compliant interpretation for UTF-32. + + // ExpectBOM means that the UTF-32 form must start with a byte order mark, + // which will be used to override the default encoding. + ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM + // Consistent with BOMPolicy definition in golang.org/x/text/encoding/unicode +) + +// Endianness is a UTF-32 encoding's default endianness. +type Endianness bool + +const ( + // BigEndian is UTF-32BE. + BigEndian Endianness = false + // LittleEndian is UTF-32LE. + LittleEndian Endianness = true +) + +type config struct { + endianness Endianness + bomPolicy BOMPolicy +} + +type utf32Encoding struct { + config + mib identifier.MIB +} + +func (u utf32Encoding) NewDecoder() *encoding.Decoder { + return &encoding.Decoder{Transformer: &utf32Decoder{ + initial: u.config, + current: u.config, + }} +} + +func (u utf32Encoding) NewEncoder() *encoding.Encoder { + return &encoding.Encoder{Transformer: &utf32Encoder{ + endianness: u.endianness, + initialBOMPolicy: u.bomPolicy, + currentBOMPolicy: u.bomPolicy, + }} +} + +func (u utf32Encoding) ID() (mib identifier.MIB, other string) { + return u.mib, "" +} + +func (u utf32Encoding) String() string { + e, b := "B", "" + if u.endianness == LittleEndian { + e = "L" + } + switch u.bomPolicy { + case ExpectBOM: + b = "Expect" + case UseBOM: + b = "Use" + case IgnoreBOM: + b = "Ignore" + } + return "UTF-32" + e + "E (" + b + " BOM)" +} + +type utf32Decoder struct { + initial config + current config +} + +func (u *utf32Decoder) Reset() { + u.current = u.initial +} + +func (u *utf32Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if len(src) == 0 { + if atEOF && u.current.bomPolicy&requireBOM != 0 { + return 0, 0, ErrMissingBOM + } + return 0, 0, nil + } + if u.current.bomPolicy&acceptBOM != 0 { + if len(src) < 4 { + return 0, 0, transform.ErrShortSrc + } + switch { + case src[0] == 0x00 && src[1] == 0x00 && src[2] == 0xfe && src[3] == 0xff: + u.current.endianness = BigEndian + nSrc = 4 + case src[0] == 0xff && src[1] == 0xfe && src[2] == 0x00 && src[3] == 0x00: + u.current.endianness = LittleEndian + nSrc = 4 + default: + if u.current.bomPolicy&requireBOM != 0 { + return 0, 0, ErrMissingBOM + } + } + u.current.bomPolicy = IgnoreBOM + } + + var r rune + var dSize, sSize int + for nSrc < len(src) { + if nSrc+3 < len(src) { + x := uint32(src[nSrc+0])<<24 | uint32(src[nSrc+1])<<16 | + uint32(src[nSrc+2])<<8 | uint32(src[nSrc+3]) + if u.current.endianness == LittleEndian { + x = x>>24 | (x >> 8 & 0x0000FF00) | (x << 8 & 0x00FF0000) | x<<24 + } + r, sSize = rune(x), 4 + if dSize = utf8.RuneLen(r); dSize < 0 { + r, dSize = utf8.RuneError, 3 + } + } else if atEOF { + // 1..3 trailing bytes. + r, dSize, sSize = utf8.RuneError, 3, len(src)-nSrc + } else { + err = transform.ErrShortSrc + break + } + if nDst+dSize > len(dst) { + err = transform.ErrShortDst + break + } + nDst += utf8.EncodeRune(dst[nDst:], r) + nSrc += sSize + } + return nDst, nSrc, err +} + +type utf32Encoder struct { + endianness Endianness + initialBOMPolicy BOMPolicy + currentBOMPolicy BOMPolicy +} + +func (u *utf32Encoder) Reset() { + u.currentBOMPolicy = u.initialBOMPolicy +} + +func (u *utf32Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if u.currentBOMPolicy&writeBOM != 0 { + if len(dst) < 4 { + return 0, 0, transform.ErrShortDst + } + dst[0], dst[1], dst[2], dst[3] = 0x00, 0x00, 0xfe, 0xff + u.currentBOMPolicy = IgnoreBOM + nDst = 4 + } + + r, size := rune(0), 0 + for nSrc < len(src) { + r = rune(src[nSrc]) + + // Decode a 1-byte rune. + if r < utf8.RuneSelf { + size = 1 + + } else { + // Decode a multi-byte rune. + r, size = utf8.DecodeRune(src[nSrc:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + } + } + + if nDst+4 > len(dst) { + err = transform.ErrShortDst + break + } + + dst[nDst+0] = uint8(r >> 24) + dst[nDst+1] = uint8(r >> 16) + dst[nDst+2] = uint8(r >> 8) + dst[nDst+3] = uint8(r) + nDst += 4 + nSrc += size + } + + if u.endianness == LittleEndian { + for i := 0; i < nDst; i += 4 { + dst[i], dst[i+1], dst[i+2], dst[i+3] = dst[i+3], dst[i+2], dst[i+1], dst[i] + } + } + return nDst, nSrc, err +} diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go new file mode 100644 index 00000000..6de88cbb --- /dev/null +++ b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go @@ -0,0 +1,210 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package utf32 + +import ( + "testing" + + "golang.org/x/text/transform" +) + +var ( + utf32LEIB = UTF32(LittleEndian, IgnoreBOM) // UTF-32LE (atypical interpretation) + utf32LEUB = UTF32(LittleEndian, UseBOM) // UTF-32, LE + // utf32LEEB = UTF32(LittleEndian, ExpectBOM) // UTF-32, LE, Expect - covered in encoding_test.go + utf32BEIB = UTF32(BigEndian, IgnoreBOM) // UTF-32BE (atypical interpretation) + utf32BEUB = UTF32(BigEndian, UseBOM) // UTF-32 default + utf32BEEB = UTF32(BigEndian, ExpectBOM) // UTF-32 Expect +) + +func TestUTF32(t *testing.T) { + testCases := []struct { + desc string + src string + notEOF bool // the inverse of atEOF + sizeDst int + want string + nSrc int + err error + t transform.Transformer + }{{ + desc: "utf-32 IgnoreBOM dec: empty string", + t: utf32BEIB.NewDecoder(), + }, { + desc: "utf-32 UseBOM dec: empty string", + t: utf32BEUB.NewDecoder(), + }, { + desc: "utf-32 ExpectBOM dec: empty string", + err: ErrMissingBOM, + t: utf32BEEB.NewDecoder(), + }, { + desc: "utf-32be dec: Doesn't interpret U+FEFF as BOM", + src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\uFEFF\U00012345=Ra", + nSrc: 20, + t: utf32BEIB.NewDecoder(), + }, { + desc: "utf-32be dec: Interprets little endian U+FEFF as invalid", + src: "\xFF\xFE\x00\x00\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\uFFFD\U00012345=Ra", + nSrc: 20, + t: utf32BEIB.NewDecoder(), + }, { + desc: "utf-32le dec: Doesn't interpret U+FEFF as BOM", + src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\uFEFF\U00012345=Ra", + nSrc: 20, + t: utf32LEIB.NewDecoder(), + }, { + desc: "utf-32le dec: Interprets big endian U+FEFF as invalid", + src: "\x00\x00\xFE\xFF\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\uFFFD\U00012345=Ra", + nSrc: 20, + t: utf32LEIB.NewDecoder(), + }, { + desc: "utf-32 enc: Writes big-endian BOM", + src: "\U00012345=Ra", + sizeDst: 100, + want: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + nSrc: 7, + t: utf32BEUB.NewEncoder(), + }, { + desc: "utf-32 enc: Writes little-endian BOM", + src: "\U00012345=Ra", + sizeDst: 100, + want: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + nSrc: 7, + t: utf32LEUB.NewEncoder(), + }, { + desc: "utf-32 dec: Interprets text using big-endian default when BOM not present", + src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 16, + t: utf32BEUB.NewDecoder(), + }, { + desc: "utf-32 dec: Interprets text using little-endian default when BOM not present", + src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 16, + t: utf32LEUB.NewDecoder(), + }, { + desc: "utf-32 dec: BOM determines encoding BE", + src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 20, + t: utf32BEUB.NewDecoder(), + }, { + desc: "utf-32 dec: BOM determines encoding LE", + src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 20, + t: utf32LEUB.NewDecoder(), + }, { + desc: "utf-32 dec: BOM determines encoding LE, change default", + src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 20, + t: utf32BEUB.NewDecoder(), + }, { + desc: "utf-32 dec: BOM determines encoding BE, change default", + src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\U00012345=Ra", + nSrc: 20, + t: utf32LEUB.NewDecoder(), + }, { + desc: "utf-32 dec: Don't change big-endian byte order mid-stream", + src: "\x00\x01\x23\x45\x00\x00\x00\x3D\xFF\xFE\x00\x00\x00\x00\xFE\xFF\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "\U00012345=\uFFFD\uFEFFRa", + nSrc: 24, + t: utf32BEUB.NewDecoder(), + }, { + desc: "utf-32 dec: Don't change little-endian byte order mid-stream", + src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x00\x00\xFE\xFF\xFF\xFE\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00", + sizeDst: 100, + want: "\U00012345=\uFFFD\uFEFFRa", + nSrc: 24, + t: utf32LEUB.NewDecoder(), + }, { + desc: "utf-32 dec: Fail on missing BOM when required", + src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + sizeDst: 100, + want: "", + nSrc: 0, + err: ErrMissingBOM, + t: utf32BEEB.NewDecoder(), + }, { + desc: "utf-32 enc: Short dst", + src: "\U00012345=Ra", + sizeDst: 15, + want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52", + nSrc: 6, + err: transform.ErrShortDst, + t: utf32BEIB.NewEncoder(), + }, { + desc: "utf-32 enc: Short src", + src: "\U00012345=Ra\xC2", + notEOF: true, + sizeDst: 100, + want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61", + nSrc: 7, + err: transform.ErrShortSrc, + t: utf32BEIB.NewEncoder(), + }, { + desc: "utf-32 enc: Invalid input", + src: "\x80\xC1\xC2\x7F\xC2", + sizeDst: 100, + want: "\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\x00\x7F\x00\x00\xFF\xFD", + nSrc: 5, + t: utf32BEIB.NewEncoder(), + }, { + desc: "utf-32 dec: Short dst", + src: "\x00\x00\x00\x41", + sizeDst: 0, + want: "", + nSrc: 0, + err: transform.ErrShortDst, + t: utf32BEIB.NewDecoder(), + }, { + desc: "utf-32 dec: Short src", + src: "\x00\x00\x00", + notEOF: true, + sizeDst: 4, + want: "", + nSrc: 0, + err: transform.ErrShortSrc, + t: utf32BEIB.NewDecoder(), + }, { + desc: "utf-32 dec: Invalid input", + src: "\x00\x00\xD8\x00\x00\x00\xDF\xFF\x00\x11\x00\x00\x00\x00\x00", + sizeDst: 100, + want: "\uFFFD\uFFFD\uFFFD\uFFFD", + nSrc: 15, + t: utf32BEIB.NewDecoder(), + }} + for i, tc := range testCases { + b := make([]byte, tc.sizeDst) + nDst, nSrc, err := tc.t.Transform(b, []byte(tc.src), !tc.notEOF) + if err != tc.err { + t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err) + } + if got := string(b[:nDst]); got != tc.want { + t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want) + } + if nSrc != tc.nSrc { + t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc) + } + } +} diff --git a/vendor/golang.org/x/text/gen.go b/vendor/golang.org/x/text/gen.go new file mode 100644 index 00000000..4ed42b81 --- /dev/null +++ b/vendor/golang.org/x/text/gen.go @@ -0,0 +1,177 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// gen runs go generate on Unicode- and CLDR-related package in the text +// repositories, taking into account dependencies and versions. +package main + +import ( + "bytes" + "flag" + "fmt" + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "sync" + "unicode" + + "golang.org/x/text/internal/gen" +) + +var ( + verbose = flag.Bool("v", false, "verbose output") + force = flag.Bool("force", false, "ignore failing dependencies") + excludeList = flag.String("exclude", "", + "comma-separated list of packages to exclude") + + // The user can specify a selection of packages to build on the command line. + args []string +) + +func exclude(pkg string) bool { + if len(args) > 0 { + return !contains(args, pkg) + } + return contains(strings.Split(*excludeList, ","), pkg) +} + +// TODO: +// - Better version handling. +// - Generate tables for the core unicode package? +// - Add generation for encodings. This requires some retooling here and there. +// - Running repo-wide "long" tests. + +var vprintf = fmt.Printf + +func main() { + gen.Init() + args = flag.Args() + if !*verbose { + // Set vprintf to a no-op. + vprintf = func(string, ...interface{}) (int, error) { return 0, nil } + } + + // TODO: create temporary cache directory to load files and create and set + // a "cache" option if the user did not specify the UNICODE_DIR environment + // variable. This will prevent duplicate downloads and also will enable long + // tests, which really need to be run after each generated package. + + if gen.UnicodeVersion() != unicode.Version { + fmt.Printf("Requested Unicode version %s; core unicode version is %s.\n", + gen.UnicodeVersion(), + unicode.Version) + // TODO: use collate to compare. Simple comparison will work, though, + // until Unicode reaches version 10. To avoid circular dependencies, we + // could use the NumericWeighter without using package collate using a + // trivial Weighter implementation. + if gen.UnicodeVersion() < unicode.Version && !*force { + os.Exit(2) + } + } + var ( + cldr = generate("unicode/cldr") + language = generate("language", cldr) + internal = generate("internal", language) + norm = generate("unicode/norm") + rangetable = generate("unicode/rangetable") + cases = generate("cases", norm, language, rangetable) + width = generate("width") + bidi = generate("unicode/bidi", norm, rangetable) + _ = generate("secure/precis", norm, rangetable, cases, width, bidi) + _ = generate("encoding/htmlindex", language) + _ = generate("currency", cldr, language, internal) + _ = generate("internal/number", cldr, language, internal) + _ = generate("language/display", cldr, language) + _ = generate("collate", norm, cldr, language, rangetable) + _ = generate("search", norm, cldr, language, rangetable) + ) + all.Wait() + + if hasErrors { + fmt.Println("FAIL") + os.Exit(1) + } + vprintf("SUCCESS\n") +} + +var ( + all sync.WaitGroup + hasErrors bool +) + +type dependency struct { + sync.WaitGroup + hasErrors bool +} + +func generate(pkg string, deps ...*dependency) *dependency { + var wg dependency + if exclude(pkg) { + return &wg + } + wg.Add(1) + all.Add(1) + go func() { + defer wg.Done() + defer all.Done() + // Wait for dependencies to finish. + for _, d := range deps { + d.Wait() + if d.hasErrors && !*force { + fmt.Printf("--- ABORT: %s\n", pkg) + wg.hasErrors = true + return + } + } + vprintf("=== GENERATE %s\n", pkg) + args := []string{"generate"} + if *verbose { + args = append(args, "-v") + } + args = append(args, "./"+pkg) + cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), args...) + w := &bytes.Buffer{} + cmd.Stderr = w + cmd.Stdout = w + if err := cmd.Run(); err != nil { + fmt.Printf("--- FAIL: %s:\n\t%v\n\tError: %v\n", pkg, indent(w), err) + hasErrors = true + wg.hasErrors = true + return + } + + vprintf("=== TEST %s\n", pkg) + args[0] = "test" + cmd = exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), args...) + wt := &bytes.Buffer{} + cmd.Stderr = wt + cmd.Stdout = wt + if err := cmd.Run(); err != nil { + fmt.Printf("--- FAIL: %s:\n\t%v\n\tError: %v\n", pkg, indent(wt), err) + hasErrors = true + wg.hasErrors = true + return + } + vprintf("--- SUCCESS: %s\n\t%v\n", pkg, indent(w)) + fmt.Print(wt.String()) + }() + return &wg +} + +func contains(a []string, s string) bool { + for _, e := range a { + if s == e { + return true + } + } + return false +} + +func indent(b *bytes.Buffer) string { + return strings.Replace(strings.TrimSpace(b.String()), "\n", "\n\t", -1) +} diff --git a/vendor/golang.org/x/text/internal/colltab/colltab.go b/vendor/golang.org/x/text/internal/colltab/colltab.go new file mode 100644 index 00000000..02f22477 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/colltab.go @@ -0,0 +1,105 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package colltab contains functionality related to collation tables. +// It is only to be used by the collate and search packages. +package colltab // import "golang.org/x/text/internal/colltab" + +import ( + "sort" + + "golang.org/x/text/language" +) + +// MatchLang finds the index of t in tags, using a matching algorithm used for +// collation and search. tags[0] must be language.Und, the remaining tags should +// be sorted alphabetically. +// +// Language matching for collation and search is different from the matching +// defined by language.Matcher: the (inferred) base language must be an exact +// match for the relevant fields. For example, "gsw" should not match "de". +// Also the parent relation is different, as a parent may have a different +// script. So usually the parent of zh-Hant is und, whereas for MatchLang it is +// zh. +func MatchLang(t language.Tag, tags []language.Tag) int { + // Canonicalize the values, including collapsing macro languages. + t, _ = language.All.Canonicalize(t) + + base, conf := t.Base() + // Estimate the base language, but only use high-confidence values. + if conf < language.High { + // The root locale supports "search" and "standard". We assume that any + // implementation will only use one of both. + return 0 + } + + // Maximize base and script and normalize the tag. + if _, s, r := t.Raw(); (r != language.Region{}) { + p, _ := language.Raw.Compose(base, s, r) + // Taking the parent forces the script to be maximized. + p = p.Parent() + // Add back region and extensions. + t, _ = language.Raw.Compose(p, r, t.Extensions()) + } else { + // Set the maximized base language. + t, _ = language.Raw.Compose(base, s, t.Extensions()) + } + + // Find start index of the language tag. + start := 1 + sort.Search(len(tags)-1, func(i int) bool { + b, _, _ := tags[i+1].Raw() + return base.String() <= b.String() + }) + if start < len(tags) { + if b, _, _ := tags[start].Raw(); b != base { + return 0 + } + } + + // Besides the base language, script and region, only the collation type and + // the custom variant defined in the 'u' extension are used to distinguish a + // locale. + // Strip all variants and extensions and add back the custom variant. + tdef, _ := language.Raw.Compose(t.Raw()) + tdef, _ = tdef.SetTypeForKey("va", t.TypeForKey("va")) + + // First search for a specialized collation type, if present. + try := []language.Tag{tdef} + if co := t.TypeForKey("co"); co != "" { + tco, _ := tdef.SetTypeForKey("co", co) + try = []language.Tag{tco, tdef} + } + + for _, tx := range try { + for ; tx != language.Und; tx = parent(tx) { + for i, t := range tags[start:] { + if b, _, _ := t.Raw(); b != base { + break + } + if tx == t { + return start + i + } + } + } + } + return 0 +} + +// parent computes the structural parent. This means inheritance may change +// script. So, unlike the CLDR parent, parent(zh-Hant) == zh. +func parent(t language.Tag) language.Tag { + if t.TypeForKey("va") != "" { + t, _ = t.SetTypeForKey("va", "") + return t + } + result := language.Und + if b, s, r := t.Raw(); (r != language.Region{}) { + result, _ = language.Raw.Compose(b, s, t.Extensions()) + } else if (s != language.Script{}) { + result, _ = language.Raw.Compose(b, t.Extensions()) + } else if (b != language.Base{}) { + result, _ = language.Raw.Compose(t.Extensions()) + } + return result +} diff --git a/vendor/golang.org/x/text/internal/colltab/colltab_test.go b/vendor/golang.org/x/text/internal/colltab/colltab_test.go new file mode 100644 index 00000000..c403ac34 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/colltab_test.go @@ -0,0 +1,64 @@ +package colltab + +import ( + "testing" + + "golang.org/x/text/language" +) + +func TestMatchLang(t *testing.T) { + tags := []language.Tag{ + 0: language.Und, + 1: language.MustParse("bs"), + 2: language.German, + 3: language.English, + 4: language.AmericanEnglish, + 5: language.MustParse("en-US-u-va-posix"), + 6: language.Portuguese, + 7: language.Serbian, + 8: language.MustParse("sr-Latn"), + 9: language.Chinese, + 10: language.MustParse("zh-u-co-stroke"), + 11: language.MustParse("zh-Hant-u-co-pinyin"), + 12: language.TraditionalChinese, + } + for i, tc := range []struct { + x int + t language.Tag + }{ + {0, language.Und}, + {0, language.Persian}, // Default to first element when no match. + {3, language.English}, + {4, language.AmericanEnglish}, + {5, language.MustParse("en-US-u-va-posix")}, // Ext. variant match. + {4, language.MustParse("en-US-u-va-noposix")}, // Ext. variant mismatch. + {3, language.MustParse("en-UK-u-va-noposix")}, // Ext. variant mismatch. + {7, language.Serbian}, + {0, language.Croatian}, // Don't match to close language! + {0, language.MustParse("gsw")}, // Don't match to close language! + {1, language.MustParse("bs-Cyrl")}, // Odd, but correct. + {1, language.MustParse("bs-Latn")}, // Estimated script drops. + {8, language.MustParse("sr-Latn")}, + {9, language.Chinese}, + {9, language.SimplifiedChinese}, + {12, language.TraditionalChinese}, + {11, language.MustParse("zh-Hant-u-co-pinyin")}, + // TODO: should this be 12? Either inherited value (10) or default is + // fine in this case, though. Other locales are not affected. + {10, language.MustParse("zh-Hant-u-co-stroke")}, + // There is no "phonebk" sorting order for zh-Hant, so use default. + {12, language.MustParse("zh-Hant-u-co-phonebk")}, + {10, language.MustParse("zh-u-co-stroke")}, + {12, language.MustParse("und-TW")}, // Infer script and language. + {12, language.MustParse("und-HK")}, // Infer script and language. + {6, language.MustParse("und-BR")}, // Infer script and language. + {6, language.MustParse("und-PT")}, // Infer script and language. + {2, language.MustParse("und-Latn-DE")}, // Infer language. + {0, language.MustParse("und-Jpan-BR")}, // Infers "ja", so no match. + {0, language.MustParse("zu")}, // No match past index. + } { + if x := MatchLang(tc.t, tags); x != tc.x { + t.Errorf("%d: MatchLang(%q, tags) = %d; want %d", i, tc.t, x, tc.x) + } + } +} diff --git a/vendor/golang.org/x/text/internal/colltab/contract.go b/vendor/golang.org/x/text/internal/colltab/contract.go new file mode 100644 index 00000000..54b9795d --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/contract.go @@ -0,0 +1,145 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import "unicode/utf8" + +// For a description of contractTrieSet, see text/collate/build/contract.go. + +type contractTrieSet []struct{ l, h, n, i uint8 } + +// ctScanner is used to match a trie to an input sequence. +// A contraction may match a non-contiguous sequence of bytes in an input string. +// For example, if there is a contraction for , it should match +// the sequence , as combining_cedilla does +// not block combining_ring. +// ctScanner does not automatically skip over non-blocking non-starters, but rather +// retains the state of the last match and leaves it up to the user to continue +// the match at the appropriate points. +type ctScanner struct { + states contractTrieSet + s []byte + n int + index int + pindex int + done bool +} + +type ctScannerString struct { + states contractTrieSet + s string + n int + index int + pindex int + done bool +} + +func (t contractTrieSet) scanner(index, n int, b []byte) ctScanner { + return ctScanner{s: b, states: t[index:], n: n} +} + +func (t contractTrieSet) scannerString(index, n int, str string) ctScannerString { + return ctScannerString{s: str, states: t[index:], n: n} +} + +// result returns the offset i and bytes consumed p so far. If no suffix +// matched, i and p will be 0. +func (s *ctScanner) result() (i, p int) { + return s.index, s.pindex +} + +func (s *ctScannerString) result() (i, p int) { + return s.index, s.pindex +} + +const ( + final = 0 + noIndex = 0xFF +) + +// scan matches the longest suffix at the current location in the input +// and returns the number of bytes consumed. +func (s *ctScanner) scan(p int) int { + pr := p // the p at the rune start + str := s.s + states, n := s.states, s.n + for i := 0; i < n && p < len(str); { + e := states[i] + c := str[p] + // TODO: a significant number of contractions are of a form that + // cannot match discontiguous UTF-8 in a normalized string. We could let + // a negative value of e.n mean that we can set s.done = true and avoid + // the need for additional matches. + if c >= e.l { + if e.l == c { + p++ + if e.i != noIndex { + s.index = int(e.i) + s.pindex = p + } + if e.n != final { + i, states, n = 0, states[int(e.h)+n:], int(e.n) + if p >= len(str) || utf8.RuneStart(str[p]) { + s.states, s.n, pr = states, n, p + } + } else { + s.done = true + return p + } + continue + } else if e.n == final && c <= e.h { + p++ + s.done = true + s.index = int(c-e.l) + int(e.i) + s.pindex = p + return p + } + } + i++ + } + return pr +} + +// scan is a verbatim copy of ctScanner.scan. +func (s *ctScannerString) scan(p int) int { + pr := p // the p at the rune start + str := s.s + states, n := s.states, s.n + for i := 0; i < n && p < len(str); { + e := states[i] + c := str[p] + // TODO: a significant number of contractions are of a form that + // cannot match discontiguous UTF-8 in a normalized string. We could let + // a negative value of e.n mean that we can set s.done = true and avoid + // the need for additional matches. + if c >= e.l { + if e.l == c { + p++ + if e.i != noIndex { + s.index = int(e.i) + s.pindex = p + } + if e.n != final { + i, states, n = 0, states[int(e.h)+n:], int(e.n) + if p >= len(str) || utf8.RuneStart(str[p]) { + s.states, s.n, pr = states, n, p + } + } else { + s.done = true + return p + } + continue + } else if e.n == final && c <= e.h { + p++ + s.done = true + s.index = int(c-e.l) + int(e.i) + s.pindex = p + return p + } + } + i++ + } + return pr +} diff --git a/vendor/golang.org/x/text/internal/colltab/contract_test.go b/vendor/golang.org/x/text/internal/colltab/contract_test.go new file mode 100644 index 00000000..c37c020e --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/contract_test.go @@ -0,0 +1,135 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import ( + "testing" +) + +type lookupStrings struct { + str string + offset int + n int // bytes consumed from input +} + +var lookupTests = []struct { + lookup []lookupStrings + n int + tries contractTrieSet +}{ + { + []lookupStrings{ + {"abc", 1, 3}, + {"a", 0, 0}, + {"b", 0, 0}, + {"c", 0, 0}, + {"d", 0, 0}, + }, + 1, + contractTrieSet{ + {'a', 0, 1, 0xFF}, + {'b', 0, 1, 0xFF}, + {'c', 'c', 0, 1}, + }, + }, + { + []lookupStrings{ + {"abc", 1, 3}, + {"abd", 2, 3}, + {"abe", 3, 3}, + {"a", 0, 0}, + {"ab", 0, 0}, + {"d", 0, 0}, + {"f", 0, 0}, + }, + 1, + contractTrieSet{ + {'a', 0, 1, 0xFF}, + {'b', 0, 1, 0xFF}, + {'c', 'e', 0, 1}, + }, + }, + { + []lookupStrings{ + {"abc", 1, 3}, + {"ab", 2, 2}, + {"a", 3, 1}, + {"abcd", 1, 3}, + {"abe", 2, 2}, + }, + 1, + contractTrieSet{ + {'a', 0, 1, 3}, + {'b', 0, 1, 2}, + {'c', 'c', 0, 1}, + }, + }, + { + []lookupStrings{ + {"abc", 1, 3}, + {"abd", 2, 3}, + {"ab", 3, 2}, + {"ac", 4, 2}, + {"a", 5, 1}, + {"b", 6, 1}, + {"ba", 6, 1}, + }, + 2, + contractTrieSet{ + {'b', 'b', 0, 6}, + {'a', 0, 2, 5}, + {'c', 'c', 0, 4}, + {'b', 0, 1, 3}, + {'c', 'd', 0, 1}, + }, + }, + { + []lookupStrings{ + {"bcde", 2, 4}, + {"bc", 7, 2}, + {"ab", 6, 2}, + {"bcd", 5, 3}, + {"abcd", 1, 4}, + {"abc", 4, 3}, + {"bcdf", 3, 4}, + }, + 2, + contractTrieSet{ + {'b', 3, 1, 0xFF}, + {'a', 0, 1, 0xFF}, + {'b', 0, 1, 6}, + {'c', 0, 1, 4}, + {'d', 'd', 0, 1}, + {'c', 0, 1, 7}, + {'d', 0, 1, 5}, + {'e', 'f', 0, 2}, + }, + }, +} + +func lookup(c *contractTrieSet, nnode int, s []uint8) (i, n int) { + scan := c.scanner(0, nnode, s) + scan.scan(0) + return scan.result() +} + +func TestLookupContraction(t *testing.T) { + for i, tt := range lookupTests { + cts := contractTrieSet(tt.tries) + for j, lu := range tt.lookup { + str := lu.str + for _, s := range []string{str, str + "X"} { + const msg = "%d:%d: %s of %q %v; want %v" + offset, n := lookup(&cts, tt.n, []byte(s)) + if offset != lu.offset { + t.Errorf(msg, i, j, "offset", s, offset, lu.offset) + } + if n != lu.n { + t.Errorf(msg, i, j, "bytes consumed", s, n, len(str)) + } + } + } + } +} diff --git a/vendor/golang.org/x/text/internal/colltab/iter.go b/vendor/golang.org/x/text/internal/colltab/iter.go new file mode 100644 index 00000000..92046b98 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/iter.go @@ -0,0 +1,182 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import ( + "golang.org/x/text/collate/colltab" +) + +// An Iter incrementally converts chunks of the input text to collation +// elements, while ensuring that the collation elements are in normalized order +// (that is, they are in the order as if the input text were normalized first). +type Iter struct { + Weighter colltab.Weighter + Elems []colltab.Elem + // N is the number of elements in Elems that will not be reordered on + // subsequent iterations, N <= len(Elems). + N int + + bytes []byte + str string + // Because the Elems buffer may contain collation elements that are needed + // for look-ahead, we need two positions in the text (bytes or str): one for + // the end position in the text for the current iteration and one for the + // start of the next call to appendNext. + pEnd int // end position in text corresponding to N. + pNext int // pEnd <= pNext. +} + +// Reset sets the position in the current input text to p and discards any +// results obtained so far. +func (i *Iter) Reset(p int) { + i.Elems = i.Elems[:0] + i.N = 0 + i.pEnd = p + i.pNext = p +} + +// Len returns the length of the input text. +func (i *Iter) Len() int { + if i.bytes != nil { + return len(i.bytes) + } + return len(i.str) +} + +// Discard removes the collation elements up to N. +func (i *Iter) Discard() { + // TODO: change this such that only modifiers following starters will have + // to be copied. + i.Elems = i.Elems[:copy(i.Elems, i.Elems[i.N:])] + i.N = 0 +} + +// End returns the end position of the input text for which Next has returned +// results. +func (i *Iter) End() int { + return i.pEnd +} + +// SetInput resets i to input s. +func (i *Iter) SetInput(s []byte) { + i.bytes = s + i.str = "" + i.Reset(0) +} + +// SetInputString resets i to input s. +func (i *Iter) SetInputString(s string) { + i.str = s + i.bytes = nil + i.Reset(0) +} + +func (i *Iter) done() bool { + return i.pNext >= len(i.str) && i.pNext >= len(i.bytes) +} + +func (i *Iter) appendNext() bool { + if i.done() { + return false + } + var sz int + if i.bytes == nil { + i.Elems, sz = i.Weighter.AppendNextString(i.Elems, i.str[i.pNext:]) + } else { + i.Elems, sz = i.Weighter.AppendNext(i.Elems, i.bytes[i.pNext:]) + } + if sz == 0 { + sz = 1 + } + i.pNext += sz + return true +} + +// Next appends Elems to the internal array. On each iteration, it will either +// add starters or modifiers. In the majority of cases, an Elem with a primary +// value > 0 will have a CCC of 0. The CCC values of collation elements are also +// used to detect if the input string was not normalized and to adjust the +// result accordingly. +func (i *Iter) Next() bool { + if i.N == len(i.Elems) && !i.appendNext() { + return false + } + + // Check if the current segment starts with a starter. + prevCCC := i.Elems[len(i.Elems)-1].CCC() + if prevCCC == 0 { + i.N = len(i.Elems) + i.pEnd = i.pNext + return true + } else if i.Elems[i.N].CCC() == 0 { + // set i.N to only cover part of i.Elems for which prevCCC == 0 and + // use rest for the next call to next. + for i.N++; i.N < len(i.Elems) && i.Elems[i.N].CCC() == 0; i.N++ { + } + i.pEnd = i.pNext + return true + } + + // The current (partial) segment starts with modifiers. We need to collect + // all successive modifiers to ensure that they are normalized. + for { + p := len(i.Elems) + i.pEnd = i.pNext + if !i.appendNext() { + break + } + + if ccc := i.Elems[p].CCC(); ccc == 0 || len(i.Elems)-i.N > maxCombiningCharacters { + // Leave the starter for the next iteration. This ensures that we + // do not return sequences of collation elements that cross two + // segments. + // + // TODO: handle large number of combining characters by fully + // normalizing the input segment before iteration. This ensures + // results are consistent across the text repo. + i.N = p + return true + } else if ccc < prevCCC { + i.doNorm(p, ccc) // should be rare, never occurs for NFD and FCC. + } else { + prevCCC = ccc + } + } + + done := len(i.Elems) != i.N + i.N = len(i.Elems) + return done +} + +// nextNoNorm is the same as next, but does not "normalize" the collation +// elements. +func (i *Iter) nextNoNorm() bool { + // TODO: remove this function. Using this instead of next does not seem + // to improve performance in any significant way. We retain this until + // later for evaluation purposes. + if i.done() { + return false + } + i.appendNext() + i.N = len(i.Elems) + return true +} + +const maxCombiningCharacters = 30 + +// doNorm reorders the collation elements in i.Elems. +// It assumes that blocks of collation elements added with appendNext +// either start and end with the same CCC or start with CCC == 0. +// This allows for a single insertion point for the entire block. +// The correctness of this assumption is verified in builder.go. +func (i *Iter) doNorm(p int, ccc uint8) { + n := len(i.Elems) + k := p + for p--; p > i.N && ccc < i.Elems[p-1].CCC(); p-- { + } + i.Elems = append(i.Elems, i.Elems[p:k]...) + copy(i.Elems[p:], i.Elems[k:]) + i.Elems = i.Elems[:n] +} diff --git a/vendor/golang.org/x/text/internal/colltab/iter_test.go b/vendor/golang.org/x/text/internal/colltab/iter_test.go new file mode 100644 index 00000000..05164ab7 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/iter_test.go @@ -0,0 +1,77 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import ( + "testing" + + "golang.org/x/text/collate/colltab" +) + +const ( + defaultSecondary = 0x20 +) + +func makeCE(w []int) colltab.Elem { + ce, err := colltab.MakeElem(w[0], w[1], w[2], uint8(w[3])) + if err != nil { + panic(err) + } + return ce +} + +func TestDoNorm(t *testing.T) { + const div = -1 // The insertion point of the next block. + tests := []struct { + in, out []int + }{{ + in: []int{4, div, 3}, + out: []int{3, 4}, + }, { + in: []int{4, div, 3, 3, 3}, + out: []int{3, 3, 3, 4}, + }, { + in: []int{0, 4, div, 3}, + out: []int{0, 3, 4}, + }, { + in: []int{0, 0, 4, 5, div, 3, 3}, + out: []int{0, 0, 3, 3, 4, 5}, + }, { + in: []int{0, 0, 1, 4, 5, div, 3, 3}, + out: []int{0, 0, 1, 3, 3, 4, 5}, + }, { + in: []int{0, 0, 1, 4, 5, div, 4, 4}, + out: []int{0, 0, 1, 4, 4, 4, 5}, + }, + } + for j, tt := range tests { + i := Iter{} + var w, p int + for k, cc := range tt.in { + + if cc == div { + w = 100 + p = k + continue + } + i.Elems = append(i.Elems, makeCE([]int{w, defaultSecondary, 2, cc})) + } + i.doNorm(p, i.Elems[p].CCC()) + if len(i.Elems) != len(tt.out) { + t.Errorf("%d: length was %d; want %d", j, len(i.Elems), len(tt.out)) + } + prevCCC := uint8(0) + for k, ce := range i.Elems { + if int(ce.CCC()) != tt.out[k] { + t.Errorf("%d:%d: unexpected CCC. Was %d; want %d", j, k, ce.CCC(), tt.out[k]) + } + if k > 0 && ce.CCC() == prevCCC && i.Elems[k-1].Primary() > ce.Primary() { + t.Errorf("%d:%d: normalization crossed across CCC boundary.", j, k) + } + } + } + + // Combining rune overflow is tested in search/pattern_test.go. +} diff --git a/vendor/golang.org/x/text/internal/format/format.go b/vendor/golang.org/x/text/internal/format/format.go new file mode 100644 index 00000000..c70bc0fe --- /dev/null +++ b/vendor/golang.org/x/text/internal/format/format.go @@ -0,0 +1,43 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package format contains types for defining language-specific formatting of +// values. +// +// This package is internal now, but will eventually be exposed after the API +// settles. +package format // import "golang.org/x/text/internal/format" + +import ( + "fmt" + + "golang.org/x/text/language" +) + +// State represents the printer state passed to custom formatters. It provides +// access to the fmt.State interface and the sentence and language-related +// context. +type State interface { + fmt.State + + // Language reports the requested language in which to render a message. + Language() language.Tag + + // TODO: more info: + // - sentence context + // - user preferences, like measurement systems + // - options +} + +// A Statement is a Var or an Expression. +type Statement interface { + statement() +} + +// A String a literal string format. +type String string + +func (String) statement() {} + +// TODO: Select, Var, Case, StatementSequence diff --git a/vendor/golang.org/x/text/internal/format/plural/plural.go b/vendor/golang.org/x/text/internal/format/plural/plural.go new file mode 100644 index 00000000..524d6aaf --- /dev/null +++ b/vendor/golang.org/x/text/internal/format/plural/plural.go @@ -0,0 +1,38 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package plural defines the grammatical plural feature. +// +// The definitions in this package are based on the plural rule handling defined +// in CLDR. See +// http://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules for +// details. +package plural + +import "golang.org/x/text/internal/format" + +// Form defines a plural form. The meaning of plural forms, as well as which +// forms are supported, vary per language. Each language must at least support +// the form "other". +type Form byte + +const ( + Other Form = iota + Zero + One + Two + Few + Many +) + +// Interface is implemented by values that have a plural feature. +type Interface interface { + // PluralForm reports the plural form of a value, depending on the + // language declared by the given state. + PluralForm(s format.State) Form +} + +// TODO +// - Select function +// - Definition for message package. diff --git a/vendor/golang.org/x/text/internal/gen.go b/vendor/golang.org/x/text/internal/gen.go new file mode 100644 index 00000000..1d678af5 --- /dev/null +++ b/vendor/golang.org/x/text/internal/gen.go @@ -0,0 +1,52 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "log" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +func main() { + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + data, err := d.DecodeZip(r) + if err != nil { + log.Fatalf("DecodeZip: %v", err) + } + + w := gen.NewCodeWriter() + defer w.WriteGoFile("tables.go", "internal") + + // Create parents table. + parents := make([]uint16, language.NumCompactTags) + for _, loc := range data.Locales() { + tag := language.MustParse(loc) + index, ok := language.CompactIndex(tag) + if !ok { + continue + } + parentIndex := 0 // und + for p := tag.Parent(); p != language.Und; p = p.Parent() { + if x, ok := language.CompactIndex(p); ok { + parentIndex = x + break + } + } + parents[index] = uint16(parentIndex) + } + + w.WriteComment(` + Parent maps a compact index of a tag to the compact index of the parent of + this tag.`) + w.WriteVar("Parent", parents) +} diff --git a/vendor/golang.org/x/text/internal/gen/code.go b/vendor/golang.org/x/text/internal/gen/code.go new file mode 100644 index 00000000..ca917d28 --- /dev/null +++ b/vendor/golang.org/x/text/internal/gen/code.go @@ -0,0 +1,338 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gen + +import ( + "bytes" + "encoding/gob" + "fmt" + "hash" + "hash/fnv" + "io" + "log" + "os" + "reflect" + "strings" + "unicode" + "unicode/utf8" +) + +// This file contains utilities for generating code. + +// TODO: other write methods like: +// - slices, maps, types, etc. + +// CodeWriter is a utility for writing structured code. It computes the content +// hash and size of written content. It ensures there are newlines between +// written code blocks. +type CodeWriter struct { + buf bytes.Buffer + Size int + Hash hash.Hash32 // content hash + gob *gob.Encoder + // For comments we skip the usual one-line separator if they are followed by + // a code block. + skipSep bool +} + +func (w *CodeWriter) Write(p []byte) (n int, err error) { + return w.buf.Write(p) +} + +// NewCodeWriter returns a new CodeWriter. +func NewCodeWriter() *CodeWriter { + h := fnv.New32() + return &CodeWriter{Hash: h, gob: gob.NewEncoder(h)} +} + +// WriteGoFile appends the buffer with the total size of all created structures +// and writes it as a Go file to the the given file with the given package name. +func (w *CodeWriter) WriteGoFile(filename, pkg string) { + f, err := os.Create(filename) + if err != nil { + log.Fatalf("Could not create file %s: %v", filename, err) + } + defer f.Close() + if _, err = w.WriteGo(f, pkg); err != nil { + log.Fatalf("Error writing file %s: %v", filename, err) + } +} + +// WriteGo appends the buffer with the total size of all created structures and +// writes it as a Go file to the the given writer with the given package name. +func (w *CodeWriter) WriteGo(out io.Writer, pkg string) (n int, err error) { + sz := w.Size + w.WriteComment("Total table size %d bytes (%dKiB); checksum: %X\n", sz, sz/1024, w.Hash.Sum32()) + defer w.buf.Reset() + return WriteGo(out, pkg, w.buf.Bytes()) +} + +func (w *CodeWriter) printf(f string, x ...interface{}) { + fmt.Fprintf(w, f, x...) +} + +func (w *CodeWriter) insertSep() { + if w.skipSep { + w.skipSep = false + return + } + // Use at least two newlines to ensure a blank space between the previous + // block. WriteGoFile will remove extraneous newlines. + w.printf("\n\n") +} + +// WriteComment writes a comment block. All line starts are prefixed with "//". +// Initial empty lines are gobbled. The indentation for the first line is +// stripped from consecutive lines. +func (w *CodeWriter) WriteComment(comment string, args ...interface{}) { + s := fmt.Sprintf(comment, args...) + s = strings.Trim(s, "\n") + + // Use at least two newlines to ensure a blank space between the previous + // block. WriteGoFile will remove extraneous newlines. + w.printf("\n\n// ") + w.skipSep = true + + // strip first indent level. + sep := "\n" + for ; len(s) > 0 && (s[0] == '\t' || s[0] == ' '); s = s[1:] { + sep += s[:1] + } + + strings.NewReplacer(sep, "\n// ", "\n", "\n// ").WriteString(w, s) + + w.printf("\n") +} + +func (w *CodeWriter) writeSizeInfo(size int) { + w.printf("// Size: %d bytes\n", size) +} + +// WriteConst writes a constant of the given name and value. +func (w *CodeWriter) WriteConst(name string, x interface{}) { + w.insertSep() + v := reflect.ValueOf(x) + + switch v.Type().Kind() { + case reflect.String: + // See golang.org/issue/13145. + const arbitraryCutoff = 16 + if v.Len() > arbitraryCutoff { + w.printf("var %s %s = ", name, typeName(x)) + } else { + w.printf("const %s %s = ", name, typeName(x)) + } + w.WriteString(v.String()) + w.printf("\n") + default: + w.printf("const %s = %#v\n", name, x) + } +} + +// WriteVar writes a variable of the given name and value. +func (w *CodeWriter) WriteVar(name string, x interface{}) { + w.insertSep() + v := reflect.ValueOf(x) + oldSize := w.Size + sz := int(v.Type().Size()) + w.Size += sz + + switch v.Type().Kind() { + case reflect.String: + w.printf("var %s %s = ", name, typeName(x)) + w.WriteString(v.String()) + case reflect.Struct: + w.gob.Encode(x) + fallthrough + case reflect.Slice, reflect.Array: + w.printf("var %s = ", name) + w.writeValue(v) + w.writeSizeInfo(w.Size - oldSize) + default: + w.printf("var %s %s = ", name, typeName(x)) + w.gob.Encode(x) + w.writeValue(v) + w.writeSizeInfo(w.Size - oldSize) + } + w.printf("\n") +} + +func (w *CodeWriter) writeValue(v reflect.Value) { + x := v.Interface() + switch v.Kind() { + case reflect.String: + w.WriteString(v.String()) + case reflect.Array: + // Don't double count: callers of WriteArray count on the size being + // added, so we need to discount it here. + w.Size -= int(v.Type().Size()) + w.writeSlice(x, true) + case reflect.Slice: + w.writeSlice(x, false) + case reflect.Struct: + w.printf("%s{\n", typeName(v.Interface())) + t := v.Type() + for i := 0; i < v.NumField(); i++ { + w.printf("%s: ", t.Field(i).Name) + w.writeValue(v.Field(i)) + w.printf(",\n") + } + w.printf("}") + default: + w.printf("%#v", x) + } +} + +// WriteString writes a string literal. +func (w *CodeWriter) WriteString(s string) { + io.WriteString(w.Hash, s) // content hash + w.Size += len(s) + + const maxInline = 40 + if len(s) <= maxInline { + w.printf("%q", s) + return + } + + // We will render the string as a multi-line string. + const maxWidth = 80 - 4 - len(`"`) - len(`" +`) + + // When starting on its own line, go fmt indents line 2+ an extra level. + n, max := maxWidth, maxWidth-4 + + // Print "" +\n, if a string does not start on its own line. + b := w.buf.Bytes() + if p := len(bytes.TrimRight(b, " \t")); p > 0 && b[p-1] != '\n' { + w.printf("\"\" + // Size: %d bytes\n", len(s)) + n, max = maxWidth, maxWidth + } + + w.printf(`"`) + + for sz, p := 0, 0; p < len(s); { + var r rune + r, sz = utf8.DecodeRuneInString(s[p:]) + out := s[p : p+sz] + chars := 1 + if !unicode.IsPrint(r) || r == utf8.RuneError || r == '"' { + switch sz { + case 1: + out = fmt.Sprintf("\\x%02x", s[p]) + case 2, 3: + out = fmt.Sprintf("\\u%04x", r) + case 4: + out = fmt.Sprintf("\\U%08x", r) + } + chars = len(out) + } + if n -= chars; n < 0 { + w.printf("\" +\n\"") + n = max - len(out) + } + w.printf("%s", out) + p += sz + } + w.printf(`"`) +} + +// WriteSlice writes a slice value. +func (w *CodeWriter) WriteSlice(x interface{}) { + w.writeSlice(x, false) +} + +// WriteArray writes an array value. +func (w *CodeWriter) WriteArray(x interface{}) { + w.writeSlice(x, true) +} + +func (w *CodeWriter) writeSlice(x interface{}, isArray bool) { + v := reflect.ValueOf(x) + w.gob.Encode(v.Len()) + w.Size += v.Len() * int(v.Type().Elem().Size()) + name := typeName(x) + if isArray { + name = fmt.Sprintf("[%d]%s", v.Len(), name[strings.Index(name, "]")+1:]) + } + if isArray { + w.printf("%s{\n", name) + } else { + w.printf("%s{ // %d elements\n", name, v.Len()) + } + + switch kind := v.Type().Elem().Kind(); kind { + case reflect.String: + for _, s := range x.([]string) { + w.WriteString(s) + w.printf(",\n") + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + // nLine and nBlock are the number of elements per line and block. + nLine, nBlock, format := 8, 64, "%d," + switch kind { + case reflect.Uint8: + format = "%#02x," + case reflect.Uint16: + format = "%#04x," + case reflect.Uint32: + nLine, nBlock, format = 4, 32, "%#08x," + case reflect.Uint, reflect.Uint64: + nLine, nBlock, format = 4, 32, "%#016x," + case reflect.Int8: + nLine = 16 + } + n := nLine + for i := 0; i < v.Len(); i++ { + if i%nBlock == 0 && v.Len() > nBlock { + w.printf("// Entry %X - %X\n", i, i+nBlock-1) + } + x := v.Index(i).Interface() + w.gob.Encode(x) + w.printf(format, x) + if n--; n == 0 { + n = nLine + w.printf("\n") + } + } + w.printf("\n") + case reflect.Struct: + zero := reflect.Zero(v.Type().Elem()).Interface() + for i := 0; i < v.Len(); i++ { + x := v.Index(i).Interface() + w.gob.EncodeValue(v) + if !reflect.DeepEqual(zero, x) { + line := fmt.Sprintf("%#v,\n", x) + line = line[strings.IndexByte(line, '{'):] + w.printf("%d: ", i) + w.printf(line) + } + } + case reflect.Array: + for i := 0; i < v.Len(); i++ { + w.printf("%d: %#v,\n", i, v.Index(i).Interface()) + } + default: + panic("gen: slice elem type not supported") + } + w.printf("}") +} + +// WriteType writes a definition of the type of the given value and returns the +// type name. +func (w *CodeWriter) WriteType(x interface{}) string { + t := reflect.TypeOf(x) + w.printf("type %s struct {\n", t.Name()) + for i := 0; i < t.NumField(); i++ { + w.printf("\t%s %s\n", t.Field(i).Name, t.Field(i).Type) + } + w.printf("}\n") + return t.Name() +} + +// typeName returns the name of the go type of x. +func typeName(x interface{}) string { + t := reflect.ValueOf(x).Type() + return strings.Replace(fmt.Sprint(t), "main.", "", 1) +} diff --git a/vendor/golang.org/x/text/internal/gen/gen.go b/vendor/golang.org/x/text/internal/gen/gen.go new file mode 100644 index 00000000..dfaa278a --- /dev/null +++ b/vendor/golang.org/x/text/internal/gen/gen.go @@ -0,0 +1,226 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package gen contains common code for the various code generation tools in the +// text repository. Its usage ensures consistency between tools. +// +// This package defines command line flags that are common to most generation +// tools. The flags allow for specifying specific Unicode and CLDR versions +// in the public Unicode data repository (http://www.unicode.org/Public). +// +// A local Unicode data mirror can be set through the flag -local or the +// environment variable UNICODE_DIR. The former takes precedence. The local +// directory should follow the same structure as the public repository. +// +// IANA data can also optionally be mirrored by putting it in the iana directory +// rooted at the top of the local mirror. Beware, though, that IANA data is not +// versioned. So it is up to the developer to use the right version. +package gen // import "golang.org/x/text/internal/gen" + +import ( + "bytes" + "flag" + "fmt" + "go/format" + "io" + "io/ioutil" + "log" + "net/http" + "os" + "path" + "path/filepath" + "unicode" + + "golang.org/x/text/unicode/cldr" +) + +var ( + url = flag.String("url", + "http://www.unicode.org/Public", + "URL of Unicode database directory") + iana = flag.String("iana", + "http://www.iana.org", + "URL of the IANA repository") + unicodeVersion = flag.String("unicode", + getEnv("UNICODE_VERSION", unicode.Version), + "unicode version to use") + cldrVersion = flag.String("cldr", + getEnv("CLDR_VERSION", cldr.Version), + "cldr version to use") + // Allow an environment variable to specify the local directory. + // go generate doesn't allow specifying arguments; this is a useful + // alternative to specifying a local mirror. + localDir = flag.String("local", + os.Getenv("UNICODE_DIR"), + "directory containing local data files; for debugging only.") +) + +func getEnv(name, def string) string { + if v := os.Getenv(name); v != "" { + return v + } + return def +} + +// Init performs common initialization for a gen command. It parses the flags +// and sets up the standard logging parameters. +func Init() { + log.SetPrefix("") + log.SetFlags(log.Lshortfile) + flag.Parse() +} + +const header = `// This file was generated by go generate; DO NOT EDIT + +package %s + +` + +// UnicodeVersion reports the requested Unicode version. +func UnicodeVersion() string { + return *unicodeVersion +} + +// UnicodeVersion reports the requested CLDR version. +func CLDRVersion() string { + return *cldrVersion +} + +// IsLocal reports whether the user specified a local directory. +func IsLocal() bool { + return *localDir != "" +} + +// OpenUCDFile opens the requested UCD file. The file is specified relative to +// the public Unicode root directory. It will call log.Fatal if there are any +// errors. +func OpenUCDFile(file string) io.ReadCloser { + return openUnicode(path.Join(*unicodeVersion, "ucd", file)) +} + +// OpenCLDRCoreZip opens the CLDR core zip file. It will call log.Fatal if there +// are any errors. +func OpenCLDRCoreZip() io.ReadCloser { + return OpenUnicodeFile("cldr", *cldrVersion, "core.zip") +} + +// OpenUnicodeFile opens the requested file of the requested category from the +// root of the Unicode data archive. The file is specified relative to the +// public Unicode root directory. If version is "", it will use the default +// Unicode version. It will call log.Fatal if there are any errors. +func OpenUnicodeFile(category, version, file string) io.ReadCloser { + if version == "" { + version = UnicodeVersion() + } + return openUnicode(path.Join(category, version, file)) +} + +// OpenIANAFile opens the requested IANA file. The file is specified relative +// to the IANA root, which is typically either http://www.iana.org or the +// iana directory in the local mirror. It will call log.Fatal if there are any +// errors. +func OpenIANAFile(path string) io.ReadCloser { + return Open(*iana, "iana", path) +} + +// Open opens subdir/path if a local directory is specified and the file exists, +// where subdir is a directory relative to the local root, or fetches it from +// urlRoot/path otherwise. It will call log.Fatal if there are any errors. +func Open(urlRoot, subdir, path string) io.ReadCloser { + if *localDir != "" { + path = filepath.FromSlash(path) + if f, err := os.Open(filepath.Join(*localDir, subdir, path)); err == nil { + return f + } + } + return get(urlRoot, path) +} + +func openUnicode(path string) io.ReadCloser { + if *localDir != "" { + path = filepath.FromSlash(path) + f, err := os.Open(filepath.Join(*localDir, path)) + if err != nil { + log.Fatal(err) + } + return f + } + return get(*url, path) +} + +func get(root, path string) io.ReadCloser { + url := root + "/" + path + fmt.Printf("Fetching %s...", url) + defer fmt.Println(" done.") + resp, err := http.Get(url) + if err != nil { + log.Fatalf("HTTP GET: %v", err) + } + if resp.StatusCode != 200 { + log.Fatalf("Bad GET status for %q: %q", url, resp.Status) + } + return resp.Body +} + +// TODO: use Write*Version in all applicable packages. + +// WriteUnicodeVersion writes a constant for the Unicode version from which the +// tables are generated. +func WriteUnicodeVersion(w io.Writer) { + fmt.Fprintf(w, "// UnicodeVersion is the Unicode version from which the tables in this package are derived.\n") + fmt.Fprintf(w, "const UnicodeVersion = %q\n\n", UnicodeVersion()) +} + +// WriteCLDRVersion writes a constant for the CLDR version from which the +// tables are generated. +func WriteCLDRVersion(w io.Writer) { + fmt.Fprintf(w, "// CLDRVersion is the CLDR version from which the tables in this package are derived.\n") + fmt.Fprintf(w, "const CLDRVersion = %q\n\n", CLDRVersion()) +} + +// WriteGoFile prepends a standard file comment and package statement to the +// given bytes, applies gofmt, and writes them to a file with the given name. +// It will call log.Fatal if there are any errors. +func WriteGoFile(filename, pkg string, b []byte) { + w, err := os.Create(filename) + if err != nil { + log.Fatalf("Could not create file %s: %v", filename, err) + } + defer w.Close() + if _, err = WriteGo(w, pkg, b); err != nil { + log.Fatalf("Error writing file %s: %v", filename, err) + } +} + +// WriteGo prepends a standard file comment and package statement to the given +// bytes, applies gofmt, and writes them to w. +func WriteGo(w io.Writer, pkg string, b []byte) (n int, err error) { + src := []byte(fmt.Sprintf(header, pkg)) + src = append(src, b...) + formatted, err := format.Source(src) + if err != nil { + // Print the generated code even in case of an error so that the + // returned error can be meaningfully interpreted. + n, _ = w.Write(src) + return n, err + } + return w.Write(formatted) +} + +// Repackage rewrites a Go file from belonging to package main to belonging to +// the given package. +func Repackage(inFile, outFile, pkg string) { + src, err := ioutil.ReadFile(inFile) + if err != nil { + log.Fatalf("reading %s: %v", inFile, err) + } + const toDelete = "package main\n\n" + i := bytes.Index(src, []byte(toDelete)) + if i < 0 { + log.Fatalf("Could not find %q in %s.", toDelete, inFile) + } + w := &bytes.Buffer{} + w.Write(src[i+len(toDelete):]) + WriteGoFile(outFile, pkg, w.Bytes()) +} diff --git a/vendor/golang.org/x/text/internal/gen_test.go b/vendor/golang.org/x/text/internal/gen_test.go new file mode 100644 index 00000000..a2e1981a --- /dev/null +++ b/vendor/golang.org/x/text/internal/gen_test.go @@ -0,0 +1,38 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +import ( + "testing" + + "golang.org/x/text/language" +) + +func TestParents(t *testing.T) { + testCases := []struct { + tag, parent string + }{ + {"af", "und"}, + {"en", "und"}, + {"en-001", "en"}, + {"en-AU", "en-001"}, + {"en-US", "en"}, + {"en-US-u-va-posix", "en-US"}, + {"ca-ES-valencia", "ca-ES"}, + } + for _, tc := range testCases { + tag, ok := language.CompactIndex(language.MustParse(tc.tag)) + if !ok { + t.Fatalf("Could not get index of flag %s", tc.tag) + } + want, ok := language.CompactIndex(language.MustParse(tc.parent)) + if !ok { + t.Fatalf("Could not get index of parent %s of tag %s", tc.parent, tc.tag) + } + if got := int(Parent[tag]); got != want { + t.Errorf("Parent[%s] = %d; want %d (%s)", tc.tag, got, want, tc.parent) + } + } +} diff --git a/vendor/golang.org/x/text/internal/internal.go b/vendor/golang.org/x/text/internal/internal.go new file mode 100644 index 00000000..eac83285 --- /dev/null +++ b/vendor/golang.org/x/text/internal/internal.go @@ -0,0 +1,51 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go + +// Package internal contains non-exported functionality that are used by +// packages in the text repository. +package internal // import "golang.org/x/text/internal" + +import ( + "sort" + + "golang.org/x/text/language" +) + +// SortTags sorts tags in place. +func SortTags(tags []language.Tag) { + sort.Sort(sorter(tags)) +} + +type sorter []language.Tag + +func (s sorter) Len() int { + return len(s) +} + +func (s sorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s sorter) Less(i, j int) bool { + return s[i].String() < s[j].String() +} + +// UniqueTags sorts and filters duplicate tags in place and returns a slice with +// only unique tags. +func UniqueTags(tags []language.Tag) []language.Tag { + if len(tags) <= 1 { + return tags + } + SortTags(tags) + k := 0 + for i := 1; i < len(tags); i++ { + if tags[k].String() < tags[i].String() { + k++ + tags[k] = tags[i] + } + } + return tags[:k+1] +} diff --git a/vendor/golang.org/x/text/internal/internal_test.go b/vendor/golang.org/x/text/internal/internal_test.go new file mode 100644 index 00000000..ce1b9a38 --- /dev/null +++ b/vendor/golang.org/x/text/internal/internal_test.go @@ -0,0 +1,38 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +import ( + "fmt" + "strings" + "testing" + + "golang.org/x/text/language" +) + +func TestUnique(t *testing.T) { + testCases := []struct { + in, want string + }{ + {"", "[]"}, + {"en", "[en]"}, + {"en en", "[en]"}, + {"en en en", "[en]"}, + {"en-u-cu-eur en", "[en en-u-cu-eur]"}, + {"nl en", "[en nl]"}, + {"pt-Pt pt", "[pt pt-PT]"}, + } + for _, tc := range testCases { + tags := []language.Tag{} + for _, s := range strings.Split(tc.in, " ") { + if s != "" { + tags = append(tags, language.MustParse(s)) + } + } + if got := fmt.Sprint(UniqueTags(tags)); got != tc.want { + t.Errorf("Unique(%s) = %s; want %s", tc.in, got, tc.want) + } + } +} diff --git a/vendor/golang.org/x/text/internal/match.go b/vendor/golang.org/x/text/internal/match.go new file mode 100644 index 00000000..03190b90 --- /dev/null +++ b/vendor/golang.org/x/text/internal/match.go @@ -0,0 +1,65 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +// This file contains matchers that implement CLDR inheritance. +// +// See http://unicode.org/reports/tr35/#Locale_Inheritance. +// +// Some of the inheritance described in this document is already handled by +// the cldr package. + +import ( + "golang.org/x/text/language" +) + +// TODO: consider if (some of the) matching algorithm needs to be public after +// getting some feel about what is generic and what is specific. + +// NewInheritanceMatcher returns a matcher that matches based on the inheritance +// chain. +// +// The matcher uses canonicalization and the parent relationship to find a +// match. The resulting match will always be either Und or a language with the +// same language and script as the requested language. It will not match +// languages for which there is understood to be mutual or one-directional +// intelligibility. +// +// A Match will indicate an Exact match if the language matches after +// canonicalization and High if the matched tag is a parent. +func NewInheritanceMatcher(t []language.Tag) language.Matcher { + tags := make(inheritanceMatcher) + for i, tag := range t { + ct, err := language.All.Canonicalize(tag) + if err != nil { + ct = tag + } + tags[ct] = i + } + return tags +} + +type inheritanceMatcher map[language.Tag]int + +func (m inheritanceMatcher) Match(want ...language.Tag) (language.Tag, int, language.Confidence) { + for _, t := range want { + ct, err := language.All.Canonicalize(t) + if err != nil { + ct = t + } + conf := language.Exact + for { + if index, ok := m[ct]; ok { + return ct, index, conf + } + if ct == language.Und { + break + } + ct = ct.Parent() + conf = language.High + } + } + return language.Und, 0, language.No +} diff --git a/vendor/golang.org/x/text/internal/match_test.go b/vendor/golang.org/x/text/internal/match_test.go new file mode 100644 index 00000000..8a3fe657 --- /dev/null +++ b/vendor/golang.org/x/text/internal/match_test.go @@ -0,0 +1,56 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +import ( + "strings" + "testing" + + "golang.org/x/text/language" +) + +func TestInheritanceMatcher(t *testing.T) { + for i, tt := range []struct { + haveTags string + wantTags string + match string + conf language.Confidence + }{ + {"und,en,en-US", "en-US", "en-US", language.Exact}, // most specific match + {"zh-Hant,zh", "zh-TW", "zh-Hant", language.High}, // zh-TW implies Hant. + {"und,zh", "zh-TW", "und", language.High}, // zh-TW does not match zh. + {"zh", "zh-TW", "und", language.No}, // zh-TW does not match zh. + {"iw,en,nl", "he", "he", language.Exact}, // matches after canonicalization + {"he,en,nl", "iw", "he", language.Exact}, // matches after canonicalization + // Prefer first match over more specific match for various reasons: + // a) consistency of user interface is more important than an exact match, + // b) _if_ und is specified, it should be considered a correct and useful match, + // Note that a call to this Match will almost always be with a single tag. + {"und,en,en-US", "he,en-US", "und", language.High}, + } { + have := parseTags(tt.haveTags) + m := NewInheritanceMatcher(have) + tag, index, conf := m.Match(parseTags(tt.wantTags)...) + want := language.Raw.Make(tt.match) + if tag != want { + t.Errorf("%d:tag: got %q; want %q", i, tag, want) + } + if conf != language.No { + if got, _ := language.All.Canonicalize(have[index]); got != want { + t.Errorf("%d:index: got %q; want %q ", i, got, want) + } + } + if conf != tt.conf { + t.Errorf("%d:conf: got %v; want %v", i, conf, tt.conf) + } + } +} + +func parseTags(list string) (out []language.Tag) { + for _, s := range strings.Split(list, ",") { + out = append(out, language.Raw.Make(strings.TrimSpace(s))) + } + return out +} diff --git a/vendor/golang.org/x/text/internal/number/common.go b/vendor/golang.org/x/text/internal/number/common.go new file mode 100644 index 00000000..a29abe49 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/common.go @@ -0,0 +1,92 @@ +// This file was generated by go generate; DO NOT EDIT + +package number + +import ( + "unicode/utf8" + + "golang.org/x/text/internal/format/plural" +) + +// A system identifies a CLDR numbering system. +type system byte + +type systemData struct { + id system + digitSize byte // number of UTF-8 bytes per digit + zero [utf8.UTFMax]byte // UTF-8 sequence of zero digit. +} + +// A SymbolType identifies a symbol of a specific kind. +type SymbolType int + +const ( + SymDecimal SymbolType = iota + SymGroup + SymList + SymPercentSign + SymPlusSign + SymMinusSign + SymExponential + SymSuperscriptingExponent + SymPerMille + SymInfinity + SymNan + SymTimeSeparator + + NumSymbolTypes +) + +type altSymData struct { + compactTag uint16 + system system + symIndex byte +} + +var countMap = map[string]plural.Form{ + "other": plural.Other, + "zero": plural.Zero, + "one": plural.One, + "two": plural.Two, + "few": plural.Few, + "many": plural.Many, +} + +type pluralCheck struct { + // category: + // 3..7: opID + // 0..2: category + cat byte + setID byte +} + +// opID identifies the type of operand in the plural rule, being i, n or f. +// (v, w, and t are treated as filters in our implementation.) +type opID byte + +const ( + opMod opID = 0x1 // is '%' used? + opNotEqual opID = 0x2 // using "!=" to compare + opI opID = 0 << 2 // integers after taking the absolute value + opN opID = 1 << 2 // full number (must be integer) + opF opID = 2 << 2 // fraction + opV opID = 3 << 2 // number of visible digits + opW opID = 4 << 2 // number of visible digits without trailing zeros + opBretonM opID = 5 << 2 // hard-wired rule for Breton + opItalian800 opID = 6 << 2 // hard-wired rule for Italian + opAzerbaijan00s opID = 7 << 2 // hard-wired rule for Azerbaijan +) +const ( + // Use this plural form to indicate the next rule needs to match as well. + // The last condition in the list will have the correct plural form. + andNext = 0x7 + formMask = 0x7 + + opShift = 3 + + // numN indicates the maximum integer, or maximum mod value, for which we + // have inclusion masks. + numN = 100 + // The common denominator of the modulo that is taken. + maxMod = 100 +) diff --git a/vendor/golang.org/x/text/internal/number/data_test.go b/vendor/golang.org/x/text/internal/number/data_test.go new file mode 100644 index 00000000..5a0b90f0 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/data_test.go @@ -0,0 +1,194 @@ +// This file was generated by go generate; DO NOT EDIT + +package number + +import "golang.org/x/text/internal/format/plural" + +type pluralTest struct { + locales string + form plural.Form + integer []string + decimal []string +} + +var ordinalTests = []pluralTest{ // 59 elements + 0: {locales: "af am ar bg bs ce cs da de dsb el es et eu fa fi fy gl he hr hsb id in is iw ja km kn ko ky lt lv ml mn my nb nl pa pl prg pt root ru sh si sk sl sr sw ta te th tr ur uz zh zu", form: 0x0, integer: []string{"0~15", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 1: {locales: "sv", form: 0x2, integer: []string{"1", "2", "21", "22", "31", "32", "41", "42", "51", "52", "61", "62", "71", "72", "81", "82", "101", "1001"}, decimal: []string(nil)}, + 2: {locales: "sv", form: 0x0, integer: []string{"0", "3~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 3: {locales: "fil fr ga hy lo mo ms ro tl vi", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 4: {locales: "fil fr ga hy lo mo ms ro tl vi", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 5: {locales: "hu", form: 0x2, integer: []string{"1", "5"}, decimal: []string(nil)}, + 6: {locales: "hu", form: 0x0, integer: []string{"0", "2~4", "6~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 7: {locales: "ne", form: 0x2, integer: []string{"1~4"}, decimal: []string(nil)}, + 8: {locales: "ne", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 9: {locales: "be", form: 0x4, integer: []string{"2", "3", "22", "23", "32", "33", "42", "43", "52", "53", "62", "63", "72", "73", "82", "83", "102", "1002"}, decimal: []string(nil)}, + 10: {locales: "be", form: 0x0, integer: []string{"0", "1", "4~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 11: {locales: "uk", form: 0x4, integer: []string{"3", "23", "33", "43", "53", "63", "73", "83", "103", "1003"}, decimal: []string(nil)}, + 12: {locales: "uk", form: 0x0, integer: []string{"0~2", "4~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 13: {locales: "kk", form: 0x5, integer: []string{"6", "9", "10", "16", "19", "20", "26", "29", "30", "36", "39", "40", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 14: {locales: "kk", form: 0x0, integer: []string{"0~5", "7", "8", "11~15", "17", "18", "21", "101", "1001"}, decimal: []string(nil)}, + 15: {locales: "it", form: 0x5, integer: []string{"8", "11", "80", "800"}, decimal: []string(nil)}, + 16: {locales: "it", form: 0x0, integer: []string{"0~7", "9", "10", "12~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 17: {locales: "ka", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 18: {locales: "ka", form: 0x5, integer: []string{"0", "2~16", "102", "1002"}, decimal: []string(nil)}, + 19: {locales: "ka", form: 0x0, integer: []string{"21~36", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 20: {locales: "sq", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 21: {locales: "sq", form: 0x5, integer: []string{"4", "24", "34", "44", "54", "64", "74", "84", "104", "1004"}, decimal: []string(nil)}, + 22: {locales: "sq", form: 0x0, integer: []string{"0", "2", "3", "5~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 23: {locales: "en", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string(nil)}, + 24: {locales: "en", form: 0x3, integer: []string{"2", "22", "32", "42", "52", "62", "72", "82", "102", "1002"}, decimal: []string(nil)}, + 25: {locales: "en", form: 0x4, integer: []string{"3", "23", "33", "43", "53", "63", "73", "83", "103", "1003"}, decimal: []string(nil)}, + 26: {locales: "en", form: 0x0, integer: []string{"0", "4~18", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 27: {locales: "mr", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 28: {locales: "mr", form: 0x3, integer: []string{"2", "3"}, decimal: []string(nil)}, + 29: {locales: "mr", form: 0x4, integer: []string{"4"}, decimal: []string(nil)}, + 30: {locales: "mr", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 31: {locales: "ca", form: 0x2, integer: []string{"1", "3"}, decimal: []string(nil)}, + 32: {locales: "ca", form: 0x3, integer: []string{"2"}, decimal: []string(nil)}, + 33: {locales: "ca", form: 0x4, integer: []string{"4"}, decimal: []string(nil)}, + 34: {locales: "ca", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 35: {locales: "mk", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string(nil)}, + 36: {locales: "mk", form: 0x3, integer: []string{"2", "22", "32", "42", "52", "62", "72", "82", "102", "1002"}, decimal: []string(nil)}, + 37: {locales: "mk", form: 0x5, integer: []string{"7", "8", "27", "28", "37", "38", "47", "48", "57", "58", "67", "68", "77", "78", "87", "88", "107", "1007"}, decimal: []string(nil)}, + 38: {locales: "mk", form: 0x0, integer: []string{"0", "3~6", "9~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 39: {locales: "az", form: 0x2, integer: []string{"1", "2", "5", "7", "8", "11", "12", "15", "17", "18", "20~22", "25", "101", "1001"}, decimal: []string(nil)}, + 40: {locales: "az", form: 0x4, integer: []string{"3", "4", "13", "14", "23", "24", "33", "34", "43", "44", "53", "54", "63", "64", "73", "74", "100", "1003"}, decimal: []string(nil)}, + 41: {locales: "az", form: 0x5, integer: []string{"0", "6", "16", "26", "36", "40", "46", "56", "106", "1006"}, decimal: []string(nil)}, + 42: {locales: "az", form: 0x0, integer: []string{"9", "10", "19", "29", "30", "39", "49", "59", "69", "79", "109", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 43: {locales: "gu hi", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 44: {locales: "gu hi", form: 0x3, integer: []string{"2", "3"}, decimal: []string(nil)}, + 45: {locales: "gu hi", form: 0x4, integer: []string{"4"}, decimal: []string(nil)}, + 46: {locales: "gu hi", form: 0x5, integer: []string{"6"}, decimal: []string(nil)}, + 47: {locales: "gu hi", form: 0x0, integer: []string{"0", "5", "7~20", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 48: {locales: "as bn", form: 0x2, integer: []string{"1", "5", "7~10"}, decimal: []string(nil)}, + 49: {locales: "as bn", form: 0x3, integer: []string{"2", "3"}, decimal: []string(nil)}, + 50: {locales: "as bn", form: 0x4, integer: []string{"4"}, decimal: []string(nil)}, + 51: {locales: "as bn", form: 0x5, integer: []string{"6"}, decimal: []string(nil)}, + 52: {locales: "as bn", form: 0x0, integer: []string{"0", "11~25", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 53: {locales: "cy", form: 0x1, integer: []string{"0", "7~9"}, decimal: []string(nil)}, + 54: {locales: "cy", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 55: {locales: "cy", form: 0x3, integer: []string{"2"}, decimal: []string(nil)}, + 56: {locales: "cy", form: 0x4, integer: []string{"3", "4"}, decimal: []string(nil)}, + 57: {locales: "cy", form: 0x5, integer: []string{"5", "6"}, decimal: []string(nil)}, + 58: {locales: "cy", form: 0x0, integer: []string{"10~25", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, +} // Size: 4272 bytes + +var cardinalTests = []pluralTest{ // 115 elements + 0: {locales: "bm bo dz id ig ii in ja jbo jv jw kde kea km ko lkt lo ms my nqo root sah ses sg th to vi wo yo zh", form: 0x0, integer: []string{"0~15", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 1: {locales: "am as bn fa gu hi kn mr zu", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0~1.0", "0.00~0.04"}}, + 2: {locales: "am as bn fa gu hi kn mr zu", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"1.1~2.6", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 3: {locales: "ff fr hy kab", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0~1.5"}}, + 4: {locales: "ff fr hy kab", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"2.0~3.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 5: {locales: "ast ca de en et fi fy gl it ji nl sv sw ur yi", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 6: {locales: "ast ca de en et fi fy gl it ji nl sv sw ur yi", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 7: {locales: "si", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0", "0.1", "1.0", "0.00", "0.01", "1.00", "0.000", "0.001", "1.000", "0.0000", "0.0001", "1.0000"}}, + 8: {locales: "si", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.2~0.9", "1.1~1.8", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 9: {locales: "ak bh guw ln mg nso pa ti wa", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0", "1.0", "0.00", "1.00", "0.000", "1.000", "0.0000", "1.0000"}}, + 10: {locales: "ak bh guw ln mg nso pa ti wa", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 11: {locales: "tzm", form: 0x2, integer: []string{"0", "1", "11~24"}, decimal: []string{"0.0", "1.0", "11.0", "12.0", "13.0", "14.0", "15.0", "16.0", "17.0", "18.0", "19.0", "20.0", "21.0", "22.0", "23.0", "24.0"}}, + 12: {locales: "tzm", form: 0x0, integer: []string{"2~10", "100~106", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 13: {locales: "pt", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0", "1.0", "0.00", "1.00", "0.000", "1.000", "0.0000", "1.0000"}}, + 14: {locales: "pt", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 15: {locales: "af asa az bem bez bg brx ce cgg chr ckb dv ee el eo es eu fo fur gsw ha haw hu jgo jmc ka kaj kcg kk kkj kl ks ksb ku ky lb lg mas mgo ml mn nah nb nd ne nn nnh no nr ny nyn om or os pap ps rm rof rwk saq sdh seh sn so sq ss ssy st syr ta te teo tig tk tn tr ts ug uz ve vo vun wae xh xog", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 16: {locales: "af asa az bem bez bg brx ce cgg chr ckb dv ee el eo es eu fo fur gsw ha haw hu jgo jmc ka kaj kcg kk kkj kl ks ksb ku ky lb lg mas mgo ml mn nah nb nd ne nn nnh no nr ny nyn om or os pap ps rm rof rwk saq sdh seh sn so sq ss ssy st syr ta te teo tig tk tn tr ts ug uz ve vo vun wae xh xog", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~0.9", "1.1~1.6", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 17: {locales: "pt_PT", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 18: {locales: "pt_PT", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 19: {locales: "da", form: 0x2, integer: []string{"1"}, decimal: []string{"0.1~1.6"}}, + 20: {locales: "da", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "2.0~3.4", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 21: {locales: "is", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string{"0.1~1.6", "10.1", "100.1", "1000.1"}}, + 22: {locales: "is", form: 0x0, integer: []string{"0", "2~16", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "2.0", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 23: {locales: "mk", form: 0x2, integer: []string{"1", "11", "21", "31", "41", "51", "61", "71", "101", "1001"}, decimal: []string{"0.1", "1.1", "2.1", "3.1", "4.1", "5.1", "6.1", "7.1", "10.1", "100.1", "1000.1"}}, + 24: {locales: "mk", form: 0x0, integer: []string{"0", "2~10", "12~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "0.2~1.0", "1.2~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 25: {locales: "fil tl", form: 0x2, integer: []string{"0~3", "5", "7", "8", "10~13", "15", "17", "18", "20", "21", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~0.3", "0.5", "0.7", "0.8", "1.0~1.3", "1.5", "1.7", "1.8", "2.0", "2.1", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 26: {locales: "fil tl", form: 0x0, integer: []string{"4", "6", "9", "14", "16", "19", "24", "26", "104", "1004"}, decimal: []string{"0.4", "0.6", "0.9", "1.4", "1.6", "1.9", "2.4", "2.6", "10.4", "100.4", "1000.4"}}, + 27: {locales: "lv prg", form: 0x1, integer: []string{"0", "10~20", "30", "40", "50", "60", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0", "16.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 28: {locales: "lv prg", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string{"0.1", "1.0", "1.1", "2.1", "3.1", "4.1", "5.1", "6.1", "7.1", "10.1", "100.1", "1000.1"}}, + 29: {locales: "lv prg", form: 0x0, integer: []string{"2~9", "22~29", "102", "1002"}, decimal: []string{"0.2~0.9", "1.2~1.9", "10.2", "100.2", "1000.2"}}, + 30: {locales: "lag", form: 0x1, integer: []string{"0"}, decimal: []string{"0.0", "0.00", "0.000", "0.0000"}}, + 31: {locales: "lag", form: 0x2, integer: []string{"1"}, decimal: []string{"0.1~1.6"}}, + 32: {locales: "lag", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"2.0~3.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 33: {locales: "ksh", form: 0x1, integer: []string{"0"}, decimal: []string{"0.0", "0.00", "0.000", "0.0000"}}, + 34: {locales: "ksh", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 35: {locales: "ksh", form: 0x0, integer: []string{"2~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 36: {locales: "iu kw naq se sma smi smj smn sms", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 37: {locales: "iu kw naq se sma smi smj smn sms", form: 0x3, integer: []string{"2"}, decimal: []string{"2.0", "2.00", "2.000", "2.0000"}}, + 38: {locales: "iu kw naq se sma smi smj smn sms", form: 0x0, integer: []string{"0", "3~17", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~0.9", "1.1~1.6", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 39: {locales: "shi", form: 0x2, integer: []string{"0", "1"}, decimal: []string{"0.0~1.0", "0.00~0.04"}}, + 40: {locales: "shi", form: 0x4, integer: []string{"2~10"}, decimal: []string{"2.0", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "9.0", "10.0", "2.00", "3.00", "4.00", "5.00", "6.00", "7.00", "8.00"}}, + 41: {locales: "shi", form: 0x0, integer: []string{"11~26", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"1.1~1.9", "2.1~2.7", "10.1", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 42: {locales: "mo ro", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 43: {locales: "mo ro", form: 0x4, integer: []string{"0", "2~16", "101", "1001"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 44: {locales: "mo ro", form: 0x0, integer: []string{"20~35", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 45: {locales: "bs hr sh sr", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string{"0.1", "1.1", "2.1", "3.1", "4.1", "5.1", "6.1", "7.1", "10.1", "100.1", "1000.1"}}, + 46: {locales: "bs hr sh sr", form: 0x4, integer: []string{"2~4", "22~24", "32~34", "42~44", "52~54", "62", "102", "1002"}, decimal: []string{"0.2~0.4", "1.2~1.4", "2.2~2.4", "3.2~3.4", "4.2~4.4", "5.2", "10.2", "100.2", "1000.2"}}, + 47: {locales: "bs hr sh sr", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "0.5~1.0", "1.5~2.0", "2.5~2.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 48: {locales: "gd", form: 0x2, integer: []string{"1", "11"}, decimal: []string{"1.0", "11.0", "1.00", "11.00", "1.000", "11.000", "1.0000"}}, + 49: {locales: "gd", form: 0x3, integer: []string{"2", "12"}, decimal: []string{"2.0", "12.0", "2.00", "12.00", "2.000", "12.000", "2.0000"}}, + 50: {locales: "gd", form: 0x4, integer: []string{"3~10", "13~19"}, decimal: []string{"3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "9.0", "10.0", "13.0", "14.0", "15.0", "16.0", "17.0", "18.0", "19.0", "3.00"}}, + 51: {locales: "gd", form: 0x0, integer: []string{"0", "20~34", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~0.9", "1.1~1.6", "10.1", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 52: {locales: "sl", form: 0x2, integer: []string{"1", "101", "201", "301", "401", "501", "601", "701", "1001"}, decimal: []string(nil)}, + 53: {locales: "sl", form: 0x3, integer: []string{"2", "102", "202", "302", "402", "502", "602", "702", "1002"}, decimal: []string(nil)}, + 54: {locales: "sl", form: 0x4, integer: []string{"3", "4", "103", "104", "203", "204", "303", "304", "403", "404", "503", "504", "603", "604", "703", "704", "1003"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 55: {locales: "sl", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 56: {locales: "dsb hsb", form: 0x2, integer: []string{"1", "101", "201", "301", "401", "501", "601", "701", "1001"}, decimal: []string{"0.1", "1.1", "2.1", "3.1", "4.1", "5.1", "6.1", "7.1", "10.1", "100.1", "1000.1"}}, + 57: {locales: "dsb hsb", form: 0x3, integer: []string{"2", "102", "202", "302", "402", "502", "602", "702", "1002"}, decimal: []string{"0.2", "1.2", "2.2", "3.2", "4.2", "5.2", "6.2", "7.2", "10.2", "100.2", "1000.2"}}, + 58: {locales: "dsb hsb", form: 0x4, integer: []string{"3", "4", "103", "104", "203", "204", "303", "304", "403", "404", "503", "504", "603", "604", "703", "704", "1003"}, decimal: []string{"0.3", "0.4", "1.3", "1.4", "2.3", "2.4", "3.3", "3.4", "4.3", "4.4", "5.3", "5.4", "6.3", "6.4", "7.3", "7.4", "10.3", "100.3", "1000.3"}}, + 59: {locales: "dsb hsb", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "0.5~1.0", "1.5~2.0", "2.5~2.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 60: {locales: "he iw", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 61: {locales: "he iw", form: 0x3, integer: []string{"2"}, decimal: []string(nil)}, + 62: {locales: "he iw", form: 0x5, integer: []string{"20", "30", "40", "50", "60", "70", "80", "90", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 63: {locales: "he iw", form: 0x0, integer: []string{"0", "3~17", "101", "1001"}, decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 64: {locales: "cs sk", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 65: {locales: "cs sk", form: 0x4, integer: []string{"2~4"}, decimal: []string(nil)}, + 66: {locales: "cs sk", form: 0x5, integer: []string(nil), decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 67: {locales: "cs sk", form: 0x0, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 68: {locales: "pl", form: 0x2, integer: []string{"1"}, decimal: []string(nil)}, + 69: {locales: "pl", form: 0x4, integer: []string{"2~4", "22~24", "32~34", "42~44", "52~54", "62", "102", "1002"}, decimal: []string(nil)}, + 70: {locales: "pl", form: 0x5, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 71: {locales: "pl", form: 0x0, integer: []string(nil), decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 72: {locales: "be", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string{"1.0", "21.0", "31.0", "41.0", "51.0", "61.0", "71.0", "81.0", "101.0", "1001.0"}}, + 73: {locales: "be", form: 0x4, integer: []string{"2~4", "22~24", "32~34", "42~44", "52~54", "62", "102", "1002"}, decimal: []string{"2.0", "3.0", "4.0", "22.0", "23.0", "24.0", "32.0", "33.0", "102.0", "1002.0"}}, + 74: {locales: "be", form: 0x5, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "5.0", "6.0", "7.0", "8.0", "9.0", "10.0", "11.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 75: {locales: "be", form: 0x0, integer: []string(nil), decimal: []string{"0.1~0.9", "1.1~1.7", "10.1", "100.1", "1000.1"}}, + 76: {locales: "lt", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string{"1.0", "21.0", "31.0", "41.0", "51.0", "61.0", "71.0", "81.0", "101.0", "1001.0"}}, + 77: {locales: "lt", form: 0x4, integer: []string{"2~9", "22~29", "102", "1002"}, decimal: []string{"2.0", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "9.0", "22.0", "102.0", "1002.0"}}, + 78: {locales: "lt", form: 0x5, integer: []string(nil), decimal: []string{"0.1~0.9", "1.1~1.7", "10.1", "100.1", "1000.1"}}, + 79: {locales: "lt", form: 0x0, integer: []string{"0", "10~20", "30", "40", "50", "60", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0", "16.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 80: {locales: "mt", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 81: {locales: "mt", form: 0x4, integer: []string{"0", "2~10", "102~107", "1002"}, decimal: []string{"0.0", "2.0", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "10.0", "102.0", "1002.0"}}, + 82: {locales: "mt", form: 0x5, integer: []string{"11~19", "111~117", "1011"}, decimal: []string{"11.0", "12.0", "13.0", "14.0", "15.0", "16.0", "17.0", "18.0", "111.0", "1011.0"}}, + 83: {locales: "mt", form: 0x0, integer: []string{"20~35", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.1", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 84: {locales: "ru uk", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "71", "81", "101", "1001"}, decimal: []string(nil)}, + 85: {locales: "ru uk", form: 0x4, integer: []string{"2~4", "22~24", "32~34", "42~44", "52~54", "62", "102", "1002"}, decimal: []string(nil)}, + 86: {locales: "ru uk", form: 0x5, integer: []string{"0", "5~19", "100", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 87: {locales: "ru uk", form: 0x0, integer: []string(nil), decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 88: {locales: "br", form: 0x2, integer: []string{"1", "21", "31", "41", "51", "61", "81", "101", "1001"}, decimal: []string{"1.0", "21.0", "31.0", "41.0", "51.0", "61.0", "81.0", "101.0", "1001.0"}}, + 89: {locales: "br", form: 0x3, integer: []string{"2", "22", "32", "42", "52", "62", "82", "102", "1002"}, decimal: []string{"2.0", "22.0", "32.0", "42.0", "52.0", "62.0", "82.0", "102.0", "1002.0"}}, + 90: {locales: "br", form: 0x4, integer: []string{"3", "4", "9", "23", "24", "29", "33", "34", "39", "43", "44", "49", "103", "1003"}, decimal: []string{"3.0", "4.0", "9.0", "23.0", "24.0", "29.0", "33.0", "34.0", "103.0", "1003.0"}}, + 91: {locales: "br", form: 0x5, integer: []string{"1000000"}, decimal: []string{"1000000.0", "1000000.00", "1000000.000"}}, + 92: {locales: "br", form: 0x0, integer: []string{"0", "5~8", "10~20", "100", "1000", "10000", "100000"}, decimal: []string{"0.0~0.9", "1.1~1.6", "10.0", "100.0", "1000.0", "10000.0", "100000.0"}}, + 93: {locales: "ga", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 94: {locales: "ga", form: 0x3, integer: []string{"2"}, decimal: []string{"2.0", "2.00", "2.000", "2.0000"}}, + 95: {locales: "ga", form: 0x4, integer: []string{"3~6"}, decimal: []string{"3.0", "4.0", "5.0", "6.0", "3.00", "4.00", "5.00", "6.00", "3.000", "4.000", "5.000", "6.000", "3.0000", "4.0000", "5.0000", "6.0000"}}, + 96: {locales: "ga", form: 0x5, integer: []string{"7~10"}, decimal: []string{"7.0", "8.0", "9.0", "10.0", "7.00", "8.00", "9.00", "10.00", "7.000", "8.000", "9.000", "10.000", "7.0000", "8.0000", "9.0000", "10.0000"}}, + 97: {locales: "ga", form: 0x0, integer: []string{"0", "11~25", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.0~0.9", "1.1~1.6", "10.1", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 98: {locales: "gv", form: 0x2, integer: []string{"1", "11", "21", "31", "41", "51", "61", "71", "101", "1001"}, decimal: []string(nil)}, + 99: {locales: "gv", form: 0x3, integer: []string{"2", "12", "22", "32", "42", "52", "62", "72", "102", "1002"}, decimal: []string(nil)}, + 100: {locales: "gv", form: 0x4, integer: []string{"0", "20", "40", "60", "80", "100", "120", "140", "1000", "10000", "100000", "1000000"}, decimal: []string(nil)}, + 101: {locales: "gv", form: 0x5, integer: []string(nil), decimal: []string{"0.0~1.5", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 102: {locales: "gv", form: 0x0, integer: []string{"3~10", "13~19", "23", "103", "1003"}, decimal: []string(nil)}, + 103: {locales: "ar", form: 0x1, integer: []string{"0"}, decimal: []string{"0.0", "0.00", "0.000", "0.0000"}}, + 104: {locales: "ar", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 105: {locales: "ar", form: 0x3, integer: []string{"2"}, decimal: []string{"2.0", "2.00", "2.000", "2.0000"}}, + 106: {locales: "ar", form: 0x4, integer: []string{"3~10", "103~110", "1003"}, decimal: []string{"3.0", "4.0", "5.0", "6.0", "7.0", "8.0", "9.0", "10.0", "103.0", "1003.0"}}, + 107: {locales: "ar", form: 0x5, integer: []string{"11~26", "111", "1011"}, decimal: []string{"11.0", "12.0", "13.0", "14.0", "15.0", "16.0", "17.0", "18.0", "111.0", "1011.0"}}, + 108: {locales: "ar", form: 0x0, integer: []string{"100~102", "200~202", "300~302", "400~402", "500~502", "600", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.1", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, + 109: {locales: "cy", form: 0x1, integer: []string{"0"}, decimal: []string{"0.0", "0.00", "0.000", "0.0000"}}, + 110: {locales: "cy", form: 0x2, integer: []string{"1"}, decimal: []string{"1.0", "1.00", "1.000", "1.0000"}}, + 111: {locales: "cy", form: 0x3, integer: []string{"2"}, decimal: []string{"2.0", "2.00", "2.000", "2.0000"}}, + 112: {locales: "cy", form: 0x4, integer: []string{"3"}, decimal: []string{"3.0", "3.00", "3.000", "3.0000"}}, + 113: {locales: "cy", form: 0x5, integer: []string{"6"}, decimal: []string{"6.0", "6.00", "6.000", "6.0000"}}, + 114: {locales: "cy", form: 0x0, integer: []string{"4", "5", "7~20", "100", "1000", "10000", "100000", "1000000"}, decimal: []string{"0.1~0.9", "1.1~1.7", "10.0", "100.0", "1000.0", "10000.0", "100000.0", "1000000.0"}}, +} // Size: 8304 bytes + +// Total table size 12576 bytes (12KiB); checksum: 35F73741 diff --git a/vendor/golang.org/x/text/internal/number/decimal.go b/vendor/golang.org/x/text/internal/number/decimal.go new file mode 100644 index 00000000..9c36865d --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/decimal.go @@ -0,0 +1,416 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: use build tags once a low-level public API has been established in +// package strconv. + +// Multiprecision decimal numbers. +// For floating-point formatting only; not general purpose. +// Only operations are assign and (binary) left/right shift. +// Can do binary floating point in multiprecision decimal precisely +// because 2 divides 10; cannot do decimal floating point +// in multiprecision binary precisely. + +package number + +type decimal struct { + d [800]byte // digits, big-endian representation + nd int // number of digits used + dp int // decimal point + neg bool + trunc bool // discarded nonzero digits beyond d[:nd] +} + +func (a *decimal) String() string { + n := 10 + a.nd + if a.dp > 0 { + n += a.dp + } + if a.dp < 0 { + n += -a.dp + } + + buf := make([]byte, n) + w := 0 + switch { + case a.nd == 0: + return "0" + + case a.dp <= 0: + // zeros fill space between decimal point and digits + buf[w] = '0' + w++ + buf[w] = '.' + w++ + w += digitZero(buf[w : w+-a.dp]) + w += copy(buf[w:], a.d[0:a.nd]) + + case a.dp < a.nd: + // decimal point in middle of digits + w += copy(buf[w:], a.d[0:a.dp]) + buf[w] = '.' + w++ + w += copy(buf[w:], a.d[a.dp:a.nd]) + + default: + // zeros fill space between digits and decimal point + w += copy(buf[w:], a.d[0:a.nd]) + w += digitZero(buf[w : w+a.dp-a.nd]) + } + return string(buf[0:w]) +} + +func digitZero(dst []byte) int { + for i := range dst { + dst[i] = '0' + } + return len(dst) +} + +// trim trailing zeros from number. +// (They are meaningless; the decimal point is tracked +// independent of the number of digits.) +func trim(a *decimal) { + for a.nd > 0 && a.d[a.nd-1] == '0' { + a.nd-- + } + if a.nd == 0 { + a.dp = 0 + } +} + +// Assign v to a. +func (a *decimal) Assign(v uint64) { + var buf [24]byte + + // Write reversed decimal in buf. + n := 0 + for v > 0 { + v1 := v / 10 + v -= 10 * v1 + buf[n] = byte(v + '0') + n++ + v = v1 + } + + // Reverse again to produce forward decimal in a.d. + a.nd = 0 + for n--; n >= 0; n-- { + a.d[a.nd] = buf[n] + a.nd++ + } + a.dp = a.nd + trim(a) +} + +// Maximum shift that we can do in one pass without overflow. +// A uint has 32 or 64 bits, and we have to be able to accommodate 9<> 63) +const maxShift = uintSize - 4 + +// Binary shift right (/ 2) by k bits. k <= maxShift to avoid overflow. +func rightShift(a *decimal, k uint) { + r := 0 // read pointer + w := 0 // write pointer + + // Pick up enough leading digits to cover first shift. + var n uint + for ; n>>k == 0; r++ { + if r >= a.nd { + if n == 0 { + // a == 0; shouldn't get here, but handle anyway. + a.nd = 0 + return + } + for n>>k == 0 { + n = n * 10 + r++ + } + break + } + c := uint(a.d[r]) + n = n*10 + c - '0' + } + a.dp -= r - 1 + + // Pick up a digit, put down a digit. + for ; r < a.nd; r++ { + c := uint(a.d[r]) + dig := n >> k + n -= dig << k + a.d[w] = byte(dig + '0') + w++ + n = n*10 + c - '0' + } + + // Put down extra digits. + for n > 0 { + dig := n >> k + n -= dig << k + if w < len(a.d) { + a.d[w] = byte(dig + '0') + w++ + } else if dig > 0 { + a.trunc = true + } + n = n * 10 + } + + a.nd = w + trim(a) +} + +// Cheat sheet for left shift: table indexed by shift count giving +// number of new digits that will be introduced by that shift. +// +// For example, leftcheats[4] = {2, "625"}. That means that +// if we are shifting by 4 (multiplying by 16), it will add 2 digits +// when the string prefix is "625" through "999", and one fewer digit +// if the string prefix is "000" through "624". +// +// Credit for this trick goes to Ken. + +type leftCheat struct { + delta int // number of new digits + cutoff string // minus one digit if original < a. +} + +var leftcheats = []leftCheat{ + // Leading digits of 1/2^i = 5^i. + // 5^23 is not an exact 64-bit floating point number, + // so have to use bc for the math. + // Go up to 60 to be large enough for 32bit and 64bit platforms. + /* + seq 60 | sed 's/^/5^/' | bc | + awk 'BEGIN{ print "\t{ 0, \"\" }," } + { + log2 = log(2)/log(10) + printf("\t{ %d, \"%s\" },\t// * %d\n", + int(log2*NR+1), $0, 2**NR) + }' + */ + {0, ""}, + {1, "5"}, // * 2 + {1, "25"}, // * 4 + {1, "125"}, // * 8 + {2, "625"}, // * 16 + {2, "3125"}, // * 32 + {2, "15625"}, // * 64 + {3, "78125"}, // * 128 + {3, "390625"}, // * 256 + {3, "1953125"}, // * 512 + {4, "9765625"}, // * 1024 + {4, "48828125"}, // * 2048 + {4, "244140625"}, // * 4096 + {4, "1220703125"}, // * 8192 + {5, "6103515625"}, // * 16384 + {5, "30517578125"}, // * 32768 + {5, "152587890625"}, // * 65536 + {6, "762939453125"}, // * 131072 + {6, "3814697265625"}, // * 262144 + {6, "19073486328125"}, // * 524288 + {7, "95367431640625"}, // * 1048576 + {7, "476837158203125"}, // * 2097152 + {7, "2384185791015625"}, // * 4194304 + {7, "11920928955078125"}, // * 8388608 + {8, "59604644775390625"}, // * 16777216 + {8, "298023223876953125"}, // * 33554432 + {8, "1490116119384765625"}, // * 67108864 + {9, "7450580596923828125"}, // * 134217728 + {9, "37252902984619140625"}, // * 268435456 + {9, "186264514923095703125"}, // * 536870912 + {10, "931322574615478515625"}, // * 1073741824 + {10, "4656612873077392578125"}, // * 2147483648 + {10, "23283064365386962890625"}, // * 4294967296 + {10, "116415321826934814453125"}, // * 8589934592 + {11, "582076609134674072265625"}, // * 17179869184 + {11, "2910383045673370361328125"}, // * 34359738368 + {11, "14551915228366851806640625"}, // * 68719476736 + {12, "72759576141834259033203125"}, // * 137438953472 + {12, "363797880709171295166015625"}, // * 274877906944 + {12, "1818989403545856475830078125"}, // * 549755813888 + {13, "9094947017729282379150390625"}, // * 1099511627776 + {13, "45474735088646411895751953125"}, // * 2199023255552 + {13, "227373675443232059478759765625"}, // * 4398046511104 + {13, "1136868377216160297393798828125"}, // * 8796093022208 + {14, "5684341886080801486968994140625"}, // * 17592186044416 + {14, "28421709430404007434844970703125"}, // * 35184372088832 + {14, "142108547152020037174224853515625"}, // * 70368744177664 + {15, "710542735760100185871124267578125"}, // * 140737488355328 + {15, "3552713678800500929355621337890625"}, // * 281474976710656 + {15, "17763568394002504646778106689453125"}, // * 562949953421312 + {16, "88817841970012523233890533447265625"}, // * 1125899906842624 + {16, "444089209850062616169452667236328125"}, // * 2251799813685248 + {16, "2220446049250313080847263336181640625"}, // * 4503599627370496 + {16, "11102230246251565404236316680908203125"}, // * 9007199254740992 + {17, "55511151231257827021181583404541015625"}, // * 18014398509481984 + {17, "277555756156289135105907917022705078125"}, // * 36028797018963968 + {17, "1387778780781445675529539585113525390625"}, // * 72057594037927936 + {18, "6938893903907228377647697925567626953125"}, // * 144115188075855872 + {18, "34694469519536141888238489627838134765625"}, // * 288230376151711744 + {18, "173472347597680709441192448139190673828125"}, // * 576460752303423488 + {19, "867361737988403547205962240695953369140625"}, // * 1152921504606846976 +} + +// Is the leading prefix of b lexicographically less than s? +func prefixIsLessThan(b []byte, s string) bool { + for i := 0; i < len(s); i++ { + if i >= len(b) { + return true + } + if b[i] != s[i] { + return b[i] < s[i] + } + } + return false +} + +// Binary shift left (* 2) by k bits. k <= maxShift to avoid overflow. +func leftShift(a *decimal, k uint) { + delta := leftcheats[k].delta + if prefixIsLessThan(a.d[0:a.nd], leftcheats[k].cutoff) { + delta-- + } + + r := a.nd // read index + w := a.nd + delta // write index + + // Pick up a digit, put down a digit. + var n uint + for r--; r >= 0; r-- { + n += (uint(a.d[r]) - '0') << k + quo := n / 10 + rem := n - 10*quo + w-- + if w < len(a.d) { + a.d[w] = byte(rem + '0') + } else if rem != 0 { + a.trunc = true + } + n = quo + } + + // Put down extra digits. + for n > 0 { + quo := n / 10 + rem := n - 10*quo + w-- + if w < len(a.d) { + a.d[w] = byte(rem + '0') + } else if rem != 0 { + a.trunc = true + } + n = quo + } + + a.nd += delta + if a.nd >= len(a.d) { + a.nd = len(a.d) + } + a.dp += delta + trim(a) +} + +// Binary shift left (k > 0) or right (k < 0). +func (a *decimal) Shift(k int) { + switch { + case a.nd == 0: + // nothing to do: a == 0 + case k > 0: + for k > maxShift { + leftShift(a, maxShift) + k -= maxShift + } + leftShift(a, uint(k)) + case k < 0: + for k < -maxShift { + rightShift(a, maxShift) + k += maxShift + } + rightShift(a, uint(-k)) + } +} + +// If we chop a at nd digits, should we round up? +func shouldRoundUp(a *decimal, nd int) bool { + if nd < 0 || nd >= a.nd { + return false + } + if a.d[nd] == '5' && nd+1 == a.nd { // exactly halfway - round to even + // if we truncated, a little higher than what's recorded - always round up + if a.trunc { + return true + } + return nd > 0 && (a.d[nd-1]-'0')%2 != 0 + } + // not halfway - digit tells all + return a.d[nd] >= '5' +} + +// Round a to nd digits (or fewer). +// If nd is zero, it means we're rounding +// just to the left of the digits, as in +// 0.09 -> 0.1. +func (a *decimal) Round(nd int) { + if nd < 0 || nd >= a.nd { + return + } + if shouldRoundUp(a, nd) { + a.RoundUp(nd) + } else { + a.RoundDown(nd) + } +} + +// Round a down to nd digits (or fewer). +func (a *decimal) RoundDown(nd int) { + if nd < 0 || nd >= a.nd { + return + } + a.nd = nd + trim(a) +} + +// Round a up to nd digits (or fewer). +func (a *decimal) RoundUp(nd int) { + if nd < 0 || nd >= a.nd { + return + } + + // round up + for i := nd - 1; i >= 0; i-- { + c := a.d[i] + if c < '9' { // can stop after this digit + a.d[i]++ + a.nd = i + 1 + return + } + } + + // Number is all 9s. + // Change to single 1 with adjusted decimal point. + a.d[0] = '1' + a.nd = 1 + a.dp++ +} + +// Extract integer part, rounded appropriately. +// No guarantees about overflow. +func (a *decimal) RoundedInteger() uint64 { + if a.dp > 20 { + return 0xFFFFFFFFFFFFFFFF + } + var i int + n := uint64(0) + for i = 0; i < a.dp && i < a.nd; i++ { + n = n*10 + uint64(a.d[i]-'0') + } + for ; i < a.dp; i++ { + n *= 10 + } + if shouldRoundUp(a, a.dp) { + n++ + } + return n +} diff --git a/vendor/golang.org/x/text/internal/number/extfloat.go b/vendor/golang.org/x/text/internal/number/extfloat.go new file mode 100644 index 00000000..97138e2b --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/extfloat.go @@ -0,0 +1,671 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: use build tags once a low-level public API has been established in +// package strconv. + +package number + +// An extFloat represents an extended floating-point number, with more +// precision than a float64. It does not try to save bits: the +// number represented by the structure is mant*(2^exp), with a negative +// sign if neg is true. +type extFloat struct { + mant uint64 + exp int + neg bool +} + +// Powers of ten taken from double-conversion library. +// http://code.google.com/p/double-conversion/ +const ( + firstPowerOfTen = -348 + stepPowerOfTen = 8 +) + +var smallPowersOfTen = [...]extFloat{ + {1 << 63, -63, false}, // 1 + {0xa << 60, -60, false}, // 1e1 + {0x64 << 57, -57, false}, // 1e2 + {0x3e8 << 54, -54, false}, // 1e3 + {0x2710 << 50, -50, false}, // 1e4 + {0x186a0 << 47, -47, false}, // 1e5 + {0xf4240 << 44, -44, false}, // 1e6 + {0x989680 << 40, -40, false}, // 1e7 +} + +var powersOfTen = [...]extFloat{ + {0xfa8fd5a0081c0288, -1220, false}, // 10^-348 + {0xbaaee17fa23ebf76, -1193, false}, // 10^-340 + {0x8b16fb203055ac76, -1166, false}, // 10^-332 + {0xcf42894a5dce35ea, -1140, false}, // 10^-324 + {0x9a6bb0aa55653b2d, -1113, false}, // 10^-316 + {0xe61acf033d1a45df, -1087, false}, // 10^-308 + {0xab70fe17c79ac6ca, -1060, false}, // 10^-300 + {0xff77b1fcbebcdc4f, -1034, false}, // 10^-292 + {0xbe5691ef416bd60c, -1007, false}, // 10^-284 + {0x8dd01fad907ffc3c, -980, false}, // 10^-276 + {0xd3515c2831559a83, -954, false}, // 10^-268 + {0x9d71ac8fada6c9b5, -927, false}, // 10^-260 + {0xea9c227723ee8bcb, -901, false}, // 10^-252 + {0xaecc49914078536d, -874, false}, // 10^-244 + {0x823c12795db6ce57, -847, false}, // 10^-236 + {0xc21094364dfb5637, -821, false}, // 10^-228 + {0x9096ea6f3848984f, -794, false}, // 10^-220 + {0xd77485cb25823ac7, -768, false}, // 10^-212 + {0xa086cfcd97bf97f4, -741, false}, // 10^-204 + {0xef340a98172aace5, -715, false}, // 10^-196 + {0xb23867fb2a35b28e, -688, false}, // 10^-188 + {0x84c8d4dfd2c63f3b, -661, false}, // 10^-180 + {0xc5dd44271ad3cdba, -635, false}, // 10^-172 + {0x936b9fcebb25c996, -608, false}, // 10^-164 + {0xdbac6c247d62a584, -582, false}, // 10^-156 + {0xa3ab66580d5fdaf6, -555, false}, // 10^-148 + {0xf3e2f893dec3f126, -529, false}, // 10^-140 + {0xb5b5ada8aaff80b8, -502, false}, // 10^-132 + {0x87625f056c7c4a8b, -475, false}, // 10^-124 + {0xc9bcff6034c13053, -449, false}, // 10^-116 + {0x964e858c91ba2655, -422, false}, // 10^-108 + {0xdff9772470297ebd, -396, false}, // 10^-100 + {0xa6dfbd9fb8e5b88f, -369, false}, // 10^-92 + {0xf8a95fcf88747d94, -343, false}, // 10^-84 + {0xb94470938fa89bcf, -316, false}, // 10^-76 + {0x8a08f0f8bf0f156b, -289, false}, // 10^-68 + {0xcdb02555653131b6, -263, false}, // 10^-60 + {0x993fe2c6d07b7fac, -236, false}, // 10^-52 + {0xe45c10c42a2b3b06, -210, false}, // 10^-44 + {0xaa242499697392d3, -183, false}, // 10^-36 + {0xfd87b5f28300ca0e, -157, false}, // 10^-28 + {0xbce5086492111aeb, -130, false}, // 10^-20 + {0x8cbccc096f5088cc, -103, false}, // 10^-12 + {0xd1b71758e219652c, -77, false}, // 10^-4 + {0x9c40000000000000, -50, false}, // 10^4 + {0xe8d4a51000000000, -24, false}, // 10^12 + {0xad78ebc5ac620000, 3, false}, // 10^20 + {0x813f3978f8940984, 30, false}, // 10^28 + {0xc097ce7bc90715b3, 56, false}, // 10^36 + {0x8f7e32ce7bea5c70, 83, false}, // 10^44 + {0xd5d238a4abe98068, 109, false}, // 10^52 + {0x9f4f2726179a2245, 136, false}, // 10^60 + {0xed63a231d4c4fb27, 162, false}, // 10^68 + {0xb0de65388cc8ada8, 189, false}, // 10^76 + {0x83c7088e1aab65db, 216, false}, // 10^84 + {0xc45d1df942711d9a, 242, false}, // 10^92 + {0x924d692ca61be758, 269, false}, // 10^100 + {0xda01ee641a708dea, 295, false}, // 10^108 + {0xa26da3999aef774a, 322, false}, // 10^116 + {0xf209787bb47d6b85, 348, false}, // 10^124 + {0xb454e4a179dd1877, 375, false}, // 10^132 + {0x865b86925b9bc5c2, 402, false}, // 10^140 + {0xc83553c5c8965d3d, 428, false}, // 10^148 + {0x952ab45cfa97a0b3, 455, false}, // 10^156 + {0xde469fbd99a05fe3, 481, false}, // 10^164 + {0xa59bc234db398c25, 508, false}, // 10^172 + {0xf6c69a72a3989f5c, 534, false}, // 10^180 + {0xb7dcbf5354e9bece, 561, false}, // 10^188 + {0x88fcf317f22241e2, 588, false}, // 10^196 + {0xcc20ce9bd35c78a5, 614, false}, // 10^204 + {0x98165af37b2153df, 641, false}, // 10^212 + {0xe2a0b5dc971f303a, 667, false}, // 10^220 + {0xa8d9d1535ce3b396, 694, false}, // 10^228 + {0xfb9b7cd9a4a7443c, 720, false}, // 10^236 + {0xbb764c4ca7a44410, 747, false}, // 10^244 + {0x8bab8eefb6409c1a, 774, false}, // 10^252 + {0xd01fef10a657842c, 800, false}, // 10^260 + {0x9b10a4e5e9913129, 827, false}, // 10^268 + {0xe7109bfba19c0c9d, 853, false}, // 10^276 + {0xac2820d9623bf429, 880, false}, // 10^284 + {0x80444b5e7aa7cf85, 907, false}, // 10^292 + {0xbf21e44003acdd2d, 933, false}, // 10^300 + {0x8e679c2f5e44ff8f, 960, false}, // 10^308 + {0xd433179d9c8cb841, 986, false}, // 10^316 + {0x9e19db92b4e31ba9, 1013, false}, // 10^324 + {0xeb96bf6ebadf77d9, 1039, false}, // 10^332 + {0xaf87023b9bf0ee6b, 1066, false}, // 10^340 +} + +// floatBits returns the bits of the float64 that best approximates +// the extFloat passed as receiver. Overflow is set to true if +// the resulting float64 is ±Inf. +func (f *extFloat) floatBits(flt *floatInfo) (bits uint64, overflow bool) { + f.Normalize() + + exp := f.exp + 63 + + // Exponent too small. + if exp < flt.bias+1 { + n := flt.bias + 1 - exp + f.mant >>= uint(n) + exp += n + } + + // Extract 1+flt.mantbits bits from the 64-bit mantissa. + mant := f.mant >> (63 - flt.mantbits) + if f.mant&(1<<(62-flt.mantbits)) != 0 { + // Round up. + mant += 1 + } + + // Rounding might have added a bit; shift down. + if mant == 2<>= 1 + exp++ + } + + // Infinities. + if exp-flt.bias >= 1<>uint(-f.exp))<>= uint(-f.exp) + f.exp = 0 + return *f, *f + } + expBiased := exp - flt.bias + + upper = extFloat{mant: 2*f.mant + 1, exp: f.exp - 1, neg: f.neg} + if mant != 1<>(64-32) == 0 { + mant <<= 32 + exp -= 32 + } + if mant>>(64-16) == 0 { + mant <<= 16 + exp -= 16 + } + if mant>>(64-8) == 0 { + mant <<= 8 + exp -= 8 + } + if mant>>(64-4) == 0 { + mant <<= 4 + exp -= 4 + } + if mant>>(64-2) == 0 { + mant <<= 2 + exp -= 2 + } + if mant>>(64-1) == 0 { + mant <<= 1 + exp -= 1 + } + shift = uint(f.exp - exp) + f.mant, f.exp = mant, exp + return +} + +// Multiply sets f to the product f*g: the result is correctly rounded, +// but not normalized. +func (f *extFloat) Multiply(g extFloat) { + fhi, flo := f.mant>>32, uint64(uint32(f.mant)) + ghi, glo := g.mant>>32, uint64(uint32(g.mant)) + + // Cross products. + cross1 := fhi * glo + cross2 := flo * ghi + + // f.mant*g.mant is fhi*ghi << 64 + (cross1+cross2) << 32 + flo*glo + f.mant = fhi*ghi + (cross1 >> 32) + (cross2 >> 32) + rem := uint64(uint32(cross1)) + uint64(uint32(cross2)) + ((flo * glo) >> 32) + // Round up. + rem += (1 << 31) + + f.mant += (rem >> 32) + f.exp = f.exp + g.exp + 64 +} + +var uint64pow10 = [...]uint64{ + 1, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, +} + +// AssignDecimal sets f to an approximate value mantissa*10^exp. It +// reports whether the value represented by f is guaranteed to be the +// best approximation of d after being rounded to a float64 or +// float32 depending on flt. +func (f *extFloat) AssignDecimal(mantissa uint64, exp10 int, neg bool, trunc bool, flt *floatInfo) (ok bool) { + const uint64digits = 19 + const errorscale = 8 + errors := 0 // An upper bound for error, computed in errorscale*ulp. + if trunc { + // the decimal number was truncated. + errors += errorscale / 2 + } + + f.mant = mantissa + f.exp = 0 + f.neg = neg + + // Multiply by powers of ten. + i := (exp10 - firstPowerOfTen) / stepPowerOfTen + if exp10 < firstPowerOfTen || i >= len(powersOfTen) { + return false + } + adjExp := (exp10 - firstPowerOfTen) % stepPowerOfTen + + // We multiply by exp%step + if adjExp < uint64digits && mantissa < uint64pow10[uint64digits-adjExp] { + // We can multiply the mantissa exactly. + f.mant *= uint64pow10[adjExp] + f.Normalize() + } else { + f.Normalize() + f.Multiply(smallPowersOfTen[adjExp]) + errors += errorscale / 2 + } + + // We multiply by 10 to the exp - exp%step. + f.Multiply(powersOfTen[i]) + if errors > 0 { + errors += 1 + } + errors += errorscale / 2 + + // Normalize + shift := f.Normalize() + errors <<= shift + + // Now f is a good approximation of the decimal. + // Check whether the error is too large: that is, if the mantissa + // is perturbated by the error, the resulting float64 will change. + // The 64 bits mantissa is 1 + 52 bits for float64 + 11 extra bits. + // + // In many cases the approximation will be good enough. + denormalExp := flt.bias - 63 + var extrabits uint + if f.exp <= denormalExp { + // f.mant * 2^f.exp is smaller than 2^(flt.bias+1). + extrabits = 63 - flt.mantbits + 1 + uint(denormalExp-f.exp) + } else { + extrabits = 63 - flt.mantbits + } + + halfway := uint64(1) << (extrabits - 1) + mant_extra := f.mant & (1< expMax: + i-- + default: + break Loop + } + } + // Apply the desired decimal shift on f. It will have exponent + // in the desired range. This is multiplication by 10^-exp10. + f.Multiply(powersOfTen[i]) + + return -(firstPowerOfTen + i*stepPowerOfTen), i +} + +// frexp10Many applies a common shift by a power of ten to a, b, c. +func frexp10Many(a, b, c *extFloat) (exp10 int) { + exp10, i := c.frexp10() + a.Multiply(powersOfTen[i]) + b.Multiply(powersOfTen[i]) + return +} + +// FixedDecimal stores in d the first n significant digits +// of the decimal representation of f. It returns false +// if it cannot be sure of the answer. +func (f *extFloat) FixedDecimal(d *decimalSlice, n int) bool { + if f.mant == 0 { + d.nd = 0 + d.dp = 0 + d.neg = f.neg + return true + } + if n == 0 { + panic("strconv: internal error: extFloat.FixedDecimal called with n == 0") + } + // Multiply by an appropriate power of ten to have a reasonable + // number to process. + f.Normalize() + exp10, _ := f.frexp10() + + shift := uint(-f.exp) + integer := uint32(f.mant >> shift) + fraction := f.mant - (uint64(integer) << shift) + ε := uint64(1) // ε is the uncertainty we have on the mantissa of f. + + // Write exactly n digits to d. + needed := n // how many digits are left to write. + integerDigits := 0 // the number of decimal digits of integer. + pow10 := uint64(1) // the power of ten by which f was scaled. + for i, pow := 0, uint64(1); i < 20; i++ { + if pow > uint64(integer) { + integerDigits = i + break + } + pow *= 10 + } + rest := integer + if integerDigits > needed { + // the integral part is already large, trim the last digits. + pow10 = uint64pow10[integerDigits-needed] + integer /= uint32(pow10) + rest -= integer * uint32(pow10) + } else { + rest = 0 + } + + // Write the digits of integer: the digits of rest are omitted. + var buf [32]byte + pos := len(buf) + for v := integer; v > 0; { + v1 := v / 10 + v -= 10 * v1 + pos-- + buf[pos] = byte(v + '0') + v = v1 + } + for i := pos; i < len(buf); i++ { + d.d[i-pos] = buf[i] + } + nd := len(buf) - pos + d.nd = nd + d.dp = integerDigits + exp10 + needed -= nd + + if needed > 0 { + if rest != 0 || pow10 != 1 { + panic("strconv: internal error, rest != 0 but needed > 0") + } + // Emit digits for the fractional part. Each time, 10*fraction + // fits in a uint64 without overflow. + for needed > 0 { + fraction *= 10 + ε *= 10 // the uncertainty scales as we multiply by ten. + if 2*ε > 1<> shift + d.d[nd] = byte(digit + '0') + fraction -= digit << shift + nd++ + needed-- + } + d.nd = nd + } + + // We have written a truncation of f (a numerator / 10^d.dp). The remaining part + // can be interpreted as a small number (< 1) to be added to the last digit of the + // numerator. + // + // If rest > 0, the amount is: + // (rest< 0 guarantees that pow10 << shift does not overflow a uint64. + // + // If rest = 0, pow10 == 1 and the amount is + // fraction / (1 << shift) + // fraction being known with a ±ε uncertainty. + // + // We pass this information to the rounding routine for adjustment. + + ok := adjustLastDigitFixed(d, uint64(rest)<= 0; i-- { + if d.d[i] != '0' { + d.nd = i + 1 + break + } + } + return true +} + +// adjustLastDigitFixed assumes d contains the representation of the integral part +// of some number, whose fractional part is num / (den << shift). The numerator +// num is only known up to an uncertainty of size ε, assumed to be less than +// (den << shift)/2. +// +// It will increase the last digit by one to account for correct rounding, typically +// when the fractional part is greater than 1/2, and will return false if ε is such +// that no correct answer can be given. +func adjustLastDigitFixed(d *decimalSlice, num, den uint64, shift uint, ε uint64) bool { + if num > den< den< den< (den< den<= 0; i-- { + if d.d[i] == '9' { + d.nd-- + } else { + break + } + } + if i < 0 { + d.d[0] = '1' + d.nd = 1 + d.dp++ + } else { + d.d[i]++ + } + return true + } + return false +} + +// ShortestDecimal stores in d the shortest decimal representation of f +// which belongs to the open interval (lower, upper), where f is supposed +// to lie. It returns false whenever the result is unsure. The implementation +// uses the Grisu3 algorithm. +func (f *extFloat) ShortestDecimal(d *decimalSlice, lower, upper *extFloat) bool { + if f.mant == 0 { + d.nd = 0 + d.dp = 0 + d.neg = f.neg + return true + } + if f.exp == 0 && *lower == *f && *lower == *upper { + // an exact integer. + var buf [24]byte + n := len(buf) - 1 + for v := f.mant; v > 0; { + v1 := v / 10 + v -= 10 * v1 + buf[n] = byte(v + '0') + n-- + v = v1 + } + nd := len(buf) - n - 1 + for i := 0; i < nd; i++ { + d.d[i] = buf[n+1+i] + } + d.nd, d.dp = nd, nd + for d.nd > 0 && d.d[d.nd-1] == '0' { + d.nd-- + } + if d.nd == 0 { + d.dp = 0 + } + d.neg = f.neg + return true + } + upper.Normalize() + // Uniformize exponents. + if f.exp > upper.exp { + f.mant <<= uint(f.exp - upper.exp) + f.exp = upper.exp + } + if lower.exp > upper.exp { + lower.mant <<= uint(lower.exp - upper.exp) + lower.exp = upper.exp + } + + exp10 := frexp10Many(lower, f, upper) + // Take a safety margin due to rounding in frexp10Many, but we lose precision. + upper.mant++ + lower.mant-- + + // The shortest representation of f is either rounded up or down, but + // in any case, it is a truncation of upper. + shift := uint(-upper.exp) + integer := uint32(upper.mant >> shift) + fraction := upper.mant - (uint64(integer) << shift) + + // How far we can go down from upper until the result is wrong. + allowance := upper.mant - lower.mant + // How far we should go to get a very precise result. + targetDiff := upper.mant - f.mant + + // Count integral digits: there are at most 10. + var integerDigits int + for i, pow := 0, uint64(1); i < 20; i++ { + if pow > uint64(integer) { + integerDigits = i + break + } + pow *= 10 + } + for i := 0; i < integerDigits; i++ { + pow := uint64pow10[integerDigits-i-1] + digit := integer / uint32(pow) + d.d[i] = byte(digit + '0') + integer -= digit * uint32(pow) + // evaluate whether we should stop. + if currentDiff := uint64(integer)<> shift) + d.d[d.nd] = byte(digit + '0') + d.nd++ + fraction -= uint64(digit) << shift + if fraction < allowance*multiplier { + // We are in the admissible range. Note that if allowance is about to + // overflow, that is, allowance > 2^64/10, the condition is automatically + // true due to the limited range of fraction. + return adjustLastDigit(d, + fraction, targetDiff*multiplier, allowance*multiplier, + 1< maxDiff-ulpBinary { + // we went too far + return false + } + if d.nd == 1 && d.d[0] == '0' { + // the number has actually reached zero. + d.nd = 0 + d.dp = 0 + } + return true +} diff --git a/vendor/golang.org/x/text/internal/number/ftoa.go b/vendor/golang.org/x/text/internal/number/ftoa.go new file mode 100644 index 00000000..073182ec --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/ftoa.go @@ -0,0 +1,448 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: use build tags once a low-level public API has been established in +// package strconv. + +// Binary to decimal floating point conversion. +// Algorithm: +// 1) store mantissa in multiprecision decimal +// 2) shift decimal by exponent +// 3) read digits out & format + +package number + +import "math" + +var optimize = true + +// TODO: move elsewhere? +type floatInfo struct { + mantbits uint + expbits uint + bias int +} + +var float32info = floatInfo{23, 8, -127} +var float64info = floatInfo{52, 11, -1023} + +// genericFtoa converts the floating-point number f to a string, +// according to the format fmt and precision prec. It rounds the +// result assuming that the original was obtained from a floating-point +// value of bitSize bits (32 for float32, 64 for float64). +// +// The format fmt is one of +// 'b' (-ddddp±ddd, a binary exponent), +// 'e' (-d.dddde±dd, a decimal exponent), +// 'E' (-d.ddddE±dd, a decimal exponent), +// 'f' (-ddd.dddd, no exponent), +// 'g' ('e' for large exponents, 'f' otherwise), or +// 'G' ('E' for large exponents, 'f' otherwise). +// +// The precision prec controls the number of digits +// (excluding the exponent) printed by the 'e', 'E', 'f', 'g', and 'G' formats. +// For 'e', 'E', and 'f' it is the number of digits after the decimal point. +// For 'g' and 'G' it is the total number of digits. +// The special precision -1 uses the smallest number of digits +// necessary such that ParseFloat will return f exactly. +func genericFtoa(dst []byte, val float64, fmt byte, prec, bitSize int) []byte { + var bits uint64 + var flt *floatInfo + switch bitSize { + case 32: + bits = uint64(math.Float32bits(float32(val))) + flt = &float32info + case 64: + bits = math.Float64bits(val) + flt = &float64info + default: + panic("strconv: illegal AppendFloat/FormatFloat bitSize") + } + + neg := bits>>(flt.expbits+flt.mantbits) != 0 + exp := int(bits>>flt.mantbits) & (1< digs.nd && digs.nd >= digs.dp { + eprec = digs.nd + } + // %e is used if the exponent from the conversion + // is less than -4 or greater than or equal to the precision. + // if precision was the shortest possible, use precision 6 for this decision. + if shortest { + eprec = 6 + } + exp := digs.dp - 1 + if exp < -4 || exp >= eprec { + if prec > digs.nd { + prec = digs.nd + } + return fmtE(dst, neg, digs, prec-1, fmt+'e'-'g') + } + if prec > digs.dp { + prec = digs.nd + } + return fmtF(dst, neg, digs, max(prec-digs.dp, 0)) + } + + // unknown format + return append(dst, '%', fmt) +} + +// roundShortest rounds d (= mant * 2^exp) to the shortest number of digits +// that will let the original floating point value be precisely reconstructed. +func roundShortest(d *decimal, mant uint64, exp int, flt *floatInfo) { + // If mantissa is zero, the number is zero; stop now. + if mant == 0 { + d.nd = 0 + return + } + + // Compute upper and lower such that any decimal number + // between upper and lower (possibly inclusive) + // will round to the original floating point number. + + // We may see at once that the number is already shortest. + // + // Suppose d is not denormal, so that 2^exp <= d < 10^dp. + // The closest shorter number is at least 10^(dp-nd) away. + // The lower/upper bounds computed below are at distance + // at most 2^(exp-mantbits). + // + // So the number is already shortest if 10^(dp-nd) > 2^(exp-mantbits), + // or equivalently log2(10)*(dp-nd) > exp-mantbits. + // It is true if 332/100*(dp-nd) >= exp-mantbits (log2(10) > 3.32). + minexp := flt.bias + 1 // minimum possible exponent + if exp > minexp && 332*(d.dp-d.nd) >= 100*(exp-int(flt.mantbits)) { + // The number is already shortest. + return + } + + // d = mant << (exp - mantbits) + // Next highest floating point number is mant+1 << exp-mantbits. + // Our upper bound is halfway between, mant*2+1 << exp-mantbits-1. + upper := new(decimal) + upper.Assign(mant*2 + 1) + upper.Shift(exp - int(flt.mantbits) - 1) + + // d = mant << (exp - mantbits) + // Next lowest floating point number is mant-1 << exp-mantbits, + // unless mant-1 drops the significant bit and exp is not the minimum exp, + // in which case the next lowest is mant*2-1 << exp-mantbits-1. + // Either way, call it mantlo << explo-mantbits. + // Our lower bound is halfway between, mantlo*2+1 << explo-mantbits-1. + var mantlo uint64 + var explo int + if mant > 1< 0 { + dst = append(dst, '.') + i := 1 + m := min(d.nd, prec+1) + if i < m { + dst = append(dst, d.d[i:m]...) + i = m + } + for ; i <= prec; i++ { + dst = append(dst, '0') + } + } + + // e± + dst = append(dst, fmt) + exp := d.dp - 1 + if d.nd == 0 { // special case: 0 has exponent 0 + exp = 0 + } + if exp < 0 { + ch = '-' + exp = -exp + } else { + ch = '+' + } + dst = append(dst, ch) + + // dd or ddd + switch { + case exp < 10: + dst = append(dst, '0', byte(exp)+'0') + case exp < 100: + dst = append(dst, byte(exp/10)+'0', byte(exp%10)+'0') + default: + dst = append(dst, byte(exp/100)+'0', byte(exp/10)%10+'0', byte(exp%10)+'0') + } + + return dst +} + +// %f: -ddddddd.ddddd +func fmtF(dst []byte, neg bool, d decimalSlice, prec int) []byte { + // sign + if neg { + dst = append(dst, '-') + } + + // integer, padded with zeros as needed. + if d.dp > 0 { + m := min(d.nd, d.dp) + dst = append(dst, d.d[:m]...) + for ; m < d.dp; m++ { + dst = append(dst, '0') + } + } else { + dst = append(dst, '0') + } + + // fraction + if prec > 0 { + dst = append(dst, '.') + for i := 0; i < prec; i++ { + ch := byte('0') + if j := d.dp + i; 0 <= j && j < d.nd { + ch = d.d[j] + } + dst = append(dst, ch) + } + } + + return dst +} + +// %b: -ddddddddp±ddd +func fmtB(dst []byte, neg bool, mant uint64, exp int, flt *floatInfo) []byte { + // sign + if neg { + dst = append(dst, '-') + } + + // mantissa + dst, _ = formatBits(dst, mant, 10, false, true) + + // p + dst = append(dst, 'p') + + // ±exponent + exp -= int(flt.mantbits) + if exp >= 0 { + dst = append(dst, '+') + } + dst, _ = formatBits(dst, uint64(exp), 10, exp < 0, true) + + return dst +} + +func min(a, b int) int { + if a < b { + return a + } + return b +} + +func max(a, b int) int { + if a > b { + return a + } + return b +} diff --git a/vendor/golang.org/x/text/internal/number/gen.go b/vendor/golang.org/x/text/internal/number/gen.go new file mode 100644 index 00000000..59a982bb --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/gen.go @@ -0,0 +1,466 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "flag" + "fmt" + "log" + "reflect" + "strings" + "unicode/utf8" + + "golang.org/x/text/internal" + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/number" + "golang.org/x/text/internal/stringset" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +var ( + test = flag.Bool("test", false, + "test existing tables; can be used to compare web data with package data.") + outputFile = flag.String("output", "tables.go", "output file") + outputTestFile = flag.String("testoutput", "data_test.go", "output file") + + draft = flag.String("draft", + "contributed", + `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) +) + +func main() { + gen.Init() + + const pkg = "number" + + gen.Repackage("gen_common.go", "common.go", pkg) + // Read the CLDR zip file. + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + d.SetDirFilter("supplemental", "main") + d.SetSectionFilter("numbers", "numberingSystem", "plurals") + data, err := d.DecodeZip(r) + if err != nil { + log.Fatalf("DecodeZip: %v", err) + } + + w := gen.NewCodeWriter() + defer w.WriteGoFile(*outputFile, pkg) + + fmt.Fprintln(w, `import "golang.org/x/text/internal/stringset"`) + + gen.WriteCLDRVersion(w) + + genNumSystem(w, data) + genSymbols(w, data) + genPlurals(w, data) + genFormats(w, data) + + w = gen.NewCodeWriter() + defer w.WriteGoFile(*outputTestFile, pkg) + + fmt.Fprintln(w, `import "golang.org/x/text/internal/format/plural"`) + + genPluralsTests(w, data) +} + +var systemMap = map[string]system{"latn": 0} + +func getNumberSystem(str string) system { + ns, ok := systemMap[str] + if !ok { + log.Fatalf("No index for numbering system %q", str) + } + return ns +} + +func genNumSystem(w *gen.CodeWriter, data *cldr.CLDR) { + numSysData := []systemData{ + {digitSize: 1, zero: [4]byte{'0'}}, + } + + for _, ns := range data.Supplemental().NumberingSystems.NumberingSystem { + if len(ns.Digits) == 0 { + continue + } + switch ns.Id { + case "latn": + // hard-wired + continue + case "hanidec": + // non-consecutive digits: treat as "algorithmic" + continue + } + + zero, sz := utf8.DecodeRuneInString(ns.Digits) + if ns.Digits[sz-1]+9 > 0xBF { // 1011 1111: highest continuation byte + log.Fatalf("Last byte of zero value overflows for %s", ns.Id) + } + + i := rune(0) + for _, r := range ns.Digits { + // Verify that we can do simple math on the UTF-8 byte sequence + // of zero to get the digit. + if zero+i != r { + // Runes not consecutive. + log.Fatalf("Digit %d of %s (%U) is not offset correctly from zero value", i, ns.Id, r) + } + i++ + } + var x [utf8.UTFMax]byte + utf8.EncodeRune(x[:], zero) + id := system(len(numSysData)) + systemMap[ns.Id] = id + numSysData = append(numSysData, systemData{ + id: id, + digitSize: byte(sz), + zero: x, + }) + } + w.WriteVar("numSysData", numSysData) + + algoID := system(len(numSysData)) + fmt.Fprintln(w, "const (") + for _, ns := range data.Supplemental().NumberingSystems.NumberingSystem { + id, ok := systemMap[ns.Id] + if !ok { + id = algoID + systemMap[ns.Id] = id + algoID++ + } + fmt.Fprintf(w, "num%s = %#x\n", strings.Title(ns.Id), id) + } + fmt.Fprintln(w, "numNumberSystems") + fmt.Fprintln(w, ")") + + fmt.Fprintln(w, "var systemMap = map[string]system{") + for _, ns := range data.Supplemental().NumberingSystems.NumberingSystem { + fmt.Fprintf(w, "%q: num%s,\n", ns.Id, strings.Title(ns.Id)) + w.Size += len(ns.Id) + 16 + 1 // very coarse approximation + } + fmt.Fprintln(w, "}") +} + +func genSymbols(w *gen.CodeWriter, data *cldr.CLDR) { + d, err := cldr.ParseDraft(*draft) + if err != nil { + log.Fatalf("invalid draft level: %v", err) + } + + nNumberSystems := system(len(systemMap)) + + type symbols [NumSymbolTypes]string + + type key struct { + tag int // from language.CompactIndex + system system + } + symbolMap := map[key]*symbols{} + + defaults := map[int]system{} + + for _, lang := range data.Locales() { + ldml := data.RawLDML(lang) + if ldml.Numbers == nil { + continue + } + langIndex, ok := language.CompactIndex(language.MustParse(lang)) + if !ok { + log.Fatalf("No compact index for language %s", lang) + } + if d := ldml.Numbers.DefaultNumberingSystem; len(d) > 0 { + defaults[langIndex] = getNumberSystem(d[0].Data()) + } + + syms := cldr.MakeSlice(&ldml.Numbers.Symbols) + syms.SelectDraft(d) + + getFirst := func(name string, x interface{}) string { + v := reflect.ValueOf(x) + slice := cldr.MakeSlice(x) + slice.SelectAnyOf("alt", "", "alt") + if reflect.Indirect(v).Len() == 0 { + return "" + } else if reflect.Indirect(v).Len() > 1 { + log.Fatalf("%s: multiple values of %q within single symbol not supported.", lang, name) + } + return reflect.Indirect(v).Index(0).MethodByName("Data").Call(nil)[0].String() + } + + for _, sym := range ldml.Numbers.Symbols { + if sym.NumberSystem == "" { + // This is just linking the default of root to "latn". + continue + } + symbolMap[key{langIndex, getNumberSystem(sym.NumberSystem)}] = &symbols{ + SymDecimal: getFirst("decimal", &sym.Decimal), + SymGroup: getFirst("group", &sym.Group), + SymList: getFirst("list", &sym.List), + SymPercentSign: getFirst("percentSign", &sym.PercentSign), + SymPlusSign: getFirst("plusSign", &sym.PlusSign), + SymMinusSign: getFirst("minusSign", &sym.MinusSign), + SymExponential: getFirst("exponential", &sym.Exponential), + SymSuperscriptingExponent: getFirst("superscriptingExponent", &sym.SuperscriptingExponent), + SymPerMille: getFirst("perMille", &sym.PerMille), + SymInfinity: getFirst("infinity", &sym.Infinity), + SymNan: getFirst("nan", &sym.Nan), + SymTimeSeparator: getFirst("timeSeparator", &sym.TimeSeparator), + } + } + } + + // Expand all values. + for k, syms := range symbolMap { + for t := SymDecimal; t < NumSymbolTypes; t++ { + p := k.tag + for syms[t] == "" { + p = int(internal.Parent[p]) + if pSyms, ok := symbolMap[key{p, k.system}]; ok && (*pSyms)[t] != "" { + syms[t] = (*pSyms)[t] + break + } + if p == 0 /* und */ { + // Default to root, latn. + syms[t] = (*symbolMap[key{}])[t] + } + } + } + } + + // Unique the symbol sets and write the string data. + m := map[symbols]int{} + sb := stringset.NewBuilder() + + symIndex := [][NumSymbolTypes]byte{} + + for ns := system(0); ns < nNumberSystems; ns++ { + for _, l := range data.Locales() { + langIndex, _ := language.CompactIndex(language.MustParse(l)) + s := symbolMap[key{langIndex, ns}] + if s == nil { + continue + } + if _, ok := m[*s]; !ok { + m[*s] = len(symIndex) + sb.Add(s[:]...) + var x [NumSymbolTypes]byte + for i := SymDecimal; i < NumSymbolTypes; i++ { + x[i] = byte(sb.Index((*s)[i])) + } + symIndex = append(symIndex, x) + } + } + } + w.WriteVar("symIndex", symIndex) + w.WriteVar("symData", sb.Set()) + + // resolveSymbolIndex gets the index from the closest matching locale, + // including the locale itself. + resolveSymbolIndex := func(langIndex int, ns system) byte { + for { + if sym := symbolMap[key{langIndex, ns}]; sym != nil { + return byte(m[*sym]) + } + if langIndex == 0 { + return 0 // und, latn + } + langIndex = int(internal.Parent[langIndex]) + } + } + + // Create an index with the symbols for each locale for the latn numbering + // system. If this is not the default, or the only one, for a locale, we + // will overwrite the value later. + var langToDefaults [language.NumCompactTags]byte + for _, l := range data.Locales() { + langIndex, _ := language.CompactIndex(language.MustParse(l)) + langToDefaults[langIndex] = resolveSymbolIndex(langIndex, 0) + } + + // Delete redundant entries. + for _, l := range data.Locales() { + langIndex, _ := language.CompactIndex(language.MustParse(l)) + def := defaults[langIndex] + syms := symbolMap[key{langIndex, def}] + if syms == nil { + continue + } + for ns := system(0); ns < nNumberSystems; ns++ { + if ns == def { + continue + } + if altSyms, ok := symbolMap[key{langIndex, ns}]; ok && *altSyms == *syms { + delete(symbolMap, key{langIndex, ns}) + } + } + } + + // Create a sorted list of alternatives per language. This will only need to + // be referenced if a user specified an alternative numbering system. + var langToAlt []altSymData + for _, l := range data.Locales() { + langIndex, _ := language.CompactIndex(language.MustParse(l)) + start := len(langToAlt) + if start > 0x7F { + log.Fatal("Number of alternative assignments > 0x7F") + } + // Create the entry for the default value. + def := defaults[langIndex] + langToAlt = append(langToAlt, altSymData{ + compactTag: uint16(langIndex), + system: def, + symIndex: resolveSymbolIndex(langIndex, def), + }) + + for ns := system(0); ns < nNumberSystems; ns++ { + if def == ns { + continue + } + if sym := symbolMap[key{langIndex, ns}]; sym != nil { + langToAlt = append(langToAlt, altSymData{ + compactTag: uint16(langIndex), + system: ns, + symIndex: resolveSymbolIndex(langIndex, ns), + }) + } + } + if def == 0 && len(langToAlt) == start+1 { + // No additional data: erase the entry. + langToAlt = langToAlt[:start] + } else { + // Overwrite the entry in langToDefaults. + langToDefaults[langIndex] = 0x80 | byte(start) + } + } + w.WriteComment(` +langToDefaults maps a compact language index to the default numbering system +and default symbol set`) + w.WriteVar("langToDefaults", langToDefaults) + + w.WriteComment(` +langToAlt is a list of numbering system and symbol set pairs, sorted and +marked by compact language index.`) + w.WriteVar("langToAlt", langToAlt) +} + +// genFormats generates the lookup table for decimal, scientific and percent +// patterns. +// +// CLDR allows for patterns to be different per language for different numbering +// systems. In practice the patterns are set to be consistent for a language +// independent of the numbering system. genFormats verifies that no language +// deviates from this. +func genFormats(w *gen.CodeWriter, data *cldr.CLDR) { + d, err := cldr.ParseDraft(*draft) + if err != nil { + log.Fatalf("invalid draft level: %v", err) + } + + // Fill the first slot with a dummy so we can identify unspecified tags. + formats := []number.Format{{}} + patterns := map[string]int{} + + // TODO: It would be possible to eliminate two of these slices by having + // another indirection and store a reference to the combination of patterns. + decimal := make([]byte, language.NumCompactTags) + scientific := make([]byte, language.NumCompactTags) + percent := make([]byte, language.NumCompactTags) + + for _, lang := range data.Locales() { + ldml := data.RawLDML(lang) + if ldml.Numbers == nil { + continue + } + langIndex, ok := language.CompactIndex(language.MustParse(lang)) + if !ok { + log.Fatalf("No compact index for language %s", lang) + } + type patternSlice []*struct { + cldr.Common + Numbers string `xml:"numbers,attr"` + Count string `xml:"count,attr"` + } + + add := func(name string, tags []byte, ps patternSlice) { + sl := cldr.MakeSlice(&ps) + sl.SelectDraft(d) + if len(ps) == 0 { + return + } + if len(ps) > 2 || len(ps) == 2 && ps[0] != ps[1] { + log.Fatalf("Inconsistent %d patterns for language %s", name, lang) + } + s := ps[0].Data() + + index, ok := patterns[s] + if !ok { + nf, err := number.ParsePattern(s) + if err != nil { + log.Fatal(err) + } + index = len(formats) + patterns[s] = index + formats = append(formats, *nf) + } + tags[langIndex] = byte(index) + } + + for _, df := range ldml.Numbers.DecimalFormats { + for _, l := range df.DecimalFormatLength { + if l.Type != "" { + continue + } + for _, f := range l.DecimalFormat { + add("decimal", decimal, f.Pattern) + } + } + } + for _, df := range ldml.Numbers.ScientificFormats { + for _, l := range df.ScientificFormatLength { + if l.Type != "" { + continue + } + for _, f := range l.ScientificFormat { + add("scientific", scientific, f.Pattern) + } + } + } + for _, df := range ldml.Numbers.PercentFormats { + for _, l := range df.PercentFormatLength { + if l.Type != "" { + continue + } + for _, f := range l.PercentFormat { + add("percent", percent, f.Pattern) + } + } + } + } + + // Complete the parent tag array to reflect inheritance. An index of 0 + // indicates an unspecified value. + for _, data := range [][]byte{decimal, scientific, percent} { + for i := range data { + p := uint16(i) + for ; data[p] == 0; p = internal.Parent[p] { + } + data[i] = data[p] + } + } + w.WriteVar("tagToDecimal", decimal) + w.WriteVar("tagToScientific", scientific) + w.WriteVar("tagToPercent", percent) + + value := strings.Replace(fmt.Sprintf("%#v", formats), "number.", "", -1) + // Break up the lines. This won't give ideal perfect formatting, but it is + // better than one huge line. + value = strings.Replace(value, ", ", ",\n", -1) + fmt.Fprintf(w, "var formats = %s\n", value) +} diff --git a/vendor/golang.org/x/text/internal/number/gen_common.go b/vendor/golang.org/x/text/internal/number/gen_common.go new file mode 100644 index 00000000..b0c71c5e --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/gen_common.go @@ -0,0 +1,96 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "unicode/utf8" + + "golang.org/x/text/internal/format/plural" +) + +// A system identifies a CLDR numbering system. +type system byte + +type systemData struct { + id system + digitSize byte // number of UTF-8 bytes per digit + zero [utf8.UTFMax]byte // UTF-8 sequence of zero digit. +} + +// A SymbolType identifies a symbol of a specific kind. +type SymbolType int + +const ( + SymDecimal SymbolType = iota + SymGroup + SymList + SymPercentSign + SymPlusSign + SymMinusSign + SymExponential + SymSuperscriptingExponent + SymPerMille + SymInfinity + SymNan + SymTimeSeparator + + NumSymbolTypes +) + +type altSymData struct { + compactTag uint16 + system system + symIndex byte +} + +var countMap = map[string]plural.Form{ + "other": plural.Other, + "zero": plural.Zero, + "one": plural.One, + "two": plural.Two, + "few": plural.Few, + "many": plural.Many, +} + +type pluralCheck struct { + // category: + // 3..7: opID + // 0..2: category + cat byte + setID byte +} + +// opID identifies the type of operand in the plural rule, being i, n or f. +// (v, w, and t are treated as filters in our implementation.) +type opID byte + +const ( + opMod opID = 0x1 // is '%' used? + opNotEqual opID = 0x2 // using "!=" to compare + opI opID = 0 << 2 // integers after taking the absolute value + opN opID = 1 << 2 // full number (must be integer) + opF opID = 2 << 2 // fraction + opV opID = 3 << 2 // number of visible digits + opW opID = 4 << 2 // number of visible digits without trailing zeros + opBretonM opID = 5 << 2 // hard-wired rule for Breton + opItalian800 opID = 6 << 2 // hard-wired rule for Italian + opAzerbaijan00s opID = 7 << 2 // hard-wired rule for Azerbaijan +) +const ( + // Use this plural form to indicate the next rule needs to match as well. + // The last condition in the list will have the correct plural form. + andNext = 0x7 + formMask = 0x7 + + opShift = 3 + + // numN indicates the maximum integer, or maximum mod value, for which we + // have inclusion masks. + numN = 100 + // The common denominator of the modulo that is taken. + maxMod = 100 +) diff --git a/vendor/golang.org/x/text/internal/number/gen_plural.go b/vendor/golang.org/x/text/internal/number/gen_plural.go new file mode 100644 index 00000000..05a67224 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/gen_plural.go @@ -0,0 +1,471 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// This file generates data for the CLDR plural rules, as defined in +// http://unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules +// +// We assume a slightly simplified grammar: +// +// condition = and_condition ('or' and_condition)* samples +// and_condition = relation ('and' relation)* +// relation = expr ('=' | '!=') range_list +// expr = operand ('%' '10' '0'* )? +// operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' +// range_list = (range | value) (',' range_list)* +// range = value'..'value +// value = digit+ +// digit = 0|1|2|3|4|5|6|7|8|9 +// +// samples = ('@integer' sampleList)? +// ('@decimal' sampleList)? +// sampleList = sampleRange (',' sampleRange)* (',' ('…'|'...'))? +// sampleRange = decimalValue ('~' decimalValue)? +// decimalValue = value ('.' value)? +// +// Symbol Value +// n absolute value of the source number (integer and decimals). +// i integer digits of n. +// v number of visible fraction digits in n, with trailing zeros. +// w number of visible fraction digits in n, without trailing zeros. +// f visible fractional digits in n, with trailing zeros. +// t visible fractional digits in n, without trailing zeros. +// +// The algorithm for which the data is generated is based on the following +// observations +// +// - the number of different sets of numbers which the plural rules use to +// test inclusion is limited, +// - most numbers that are tested on are < 100 +// +// This allows us to define a bitmap for each number < 100 where a bit i +// indicates whether this number is included in some defined set i. +// The function matchPlural in plural.go defines how we can subsequently use +// this data to determine inclusion. +// +// There are a few languages for which this doesn't work. For one Italian and +// Azerbaijan, which both test against numbers > 100 for ordinals and Breton, +// which considers whether numbers are multiples of hundreds. The model here +// could be extended to handle Italian and Azerbaijan fairly easily (by +// considering the numbers 100, 200, 300, ..., 800, 900 in addition to the first +// 100), but for now it seems easier to just hard-code these cases. + +import ( + "bufio" + "bytes" + "fmt" + "log" + "strconv" + "strings" + + "golang.org/x/text/internal" + "golang.org/x/text/internal/format/plural" + "golang.org/x/text/internal/gen" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +type pluralTest struct { + locales string // space-separated list of locales for this test + form plural.Form + integer []string // Entries of the form \d+ or \d+~\d+ + decimal []string // Entries of the form \f+ or \f+ +~\f+, where f is \d+\.\d+ +} + +func genPluralsTests(w *gen.CodeWriter, data *cldr.CLDR) { + w.WriteType(pluralTest{}) + + for _, plurals := range data.Supplemental().Plurals { + if plurals.Type == "" { + // The empty type is reserved for plural ranges. + continue + } + tests := []pluralTest{} + + for _, pRules := range plurals.PluralRules { + for _, rule := range pRules.PluralRule { + test := pluralTest{ + locales: pRules.Locales, + form: countMap[rule.Count], + } + scan := bufio.NewScanner(strings.NewReader(rule.Data())) + scan.Split(splitTokens) + var p *[]string + for scan.Scan() { + switch t := scan.Text(); t { + case "@integer": + p = &test.integer + case "@decimal": + p = &test.decimal + case ",", "…": + default: + if p != nil { + *p = append(*p, t) + } + } + } + tests = append(tests, test) + } + } + w.WriteVar(plurals.Type+"Tests", tests) + } +} + +func genPlurals(w *gen.CodeWriter, data *cldr.CLDR) { + for _, plurals := range data.Supplemental().Plurals { + if plurals.Type == "" { + continue + } + // Initialize setMap and inclusionMasks. They are already populated with + // a few entries to serve as an example and to assign nice numbers to + // common cases. + + // setMap contains sets of numbers represented by boolean arrays where + // a true value for element i means that the number i is included. + setMap := map[[numN]bool]int{ + // The above init func adds an entry for including all numbers. + [numN]bool{1: true}: 1, // fix {1} to a nice value + [numN]bool{2: true}: 2, // fix {2} to a nice value + [numN]bool{0: true}: 3, // fix {0} to a nice value + } + + // inclusionMasks contains bit masks for every number under numN to + // indicate in which set the number is included. Bit 1 << x will be set + // if it is included in set x. + inclusionMasks := [numN]uint64{ + // Note: these entries are not complete: more bits will be set along the way. + 0: 1 << 3, + 1: 1 << 1, + 2: 1 << 2, + } + + // Create set {0..99}. We will assign this set the identifier 0. + var all [numN]bool + for i := range all { + // Mark number i as being included in the set (which has identifier 0). + inclusionMasks[i] |= 1 << 0 + // Mark number i as included in the set. + all[i] = true + } + // Register the identifier for the set. + setMap[all] = 0 + + rules := []pluralCheck{} + index := []byte{0} + langMap := map[int]byte{0: 0} // From compact language index to index + + for _, pRules := range plurals.PluralRules { + // Parse the rules. + var conds []orCondition + for _, rule := range pRules.PluralRule { + form := countMap[rule.Count] + conds = parsePluralCondition(conds, rule.Data(), form) + } + // Encode the rules. + for _, c := range conds { + // If an or condition only has filters, we create an entry for + // this filter and the set that contains all values. + empty := true + for _, b := range c.used { + empty = empty && !b + } + if empty { + rules = append(rules, pluralCheck{ + cat: byte(opMod< 0xFF { + log.Fatalf("Too many entries for rules: %#x", len(rules)) + } + if len(index) > 0xFF { + log.Fatalf("Too many entries for index: %#x", len(index)) + } + if len(setMap) > 64 { // maximum number of bits. + log.Fatalf("Too many entries for setMap: %d", len(setMap)) + } + w.WriteComment( + "Slots used for %s: %X of 0xFF rules; %X of 0xFF indexes; %d of 64 sets", + plurals.Type, len(rules), len(index), len(setMap)) + // Prevent comment from attaching to the next entry. + fmt.Fprint(w, "\n\n") + } +} + +type orCondition struct { + original string // for debugging + + form plural.Form + used [32]bool + set [32][numN]bool +} + +func (o *orCondition) add(op opID, mod int, v []int) (ok bool) { + ok = true + for _, x := range v { + if x >= maxMod { + ok = false + break + } + } + for i := 0; i < numN; i++ { + m := i + if mod != 0 { + m = i % mod + } + if !intIn(m, v) { + o.set[op][i] = false + } + } + if ok { + o.used[op] = true + } + return ok +} + +func intIn(x int, a []int) bool { + for _, y := range a { + if x == y { + return true + } + } + return false +} + +var operandIndex = map[string]opID{ + "i": opI, + "n": opN, + "f": opF, + "v": opV, + "w": opW, +} + +// parsePluralCondition parses the condition of a single pluralRule and appends +// the resulting or conditions to conds. +// +// Example rules: +// // Category "one" in English: only allow 1 with no visible fraction +// i = 1 and v = 0 @integer 1 +// +// // Category "few" in Czech: all numbers with visible fractions +// v != 0 @decimal ... +// +// // Category "zero" in Latvian: all multiples of 10 or the numbers 11-19 or +// // numbers with a fraction 11..19 and no trailing zeros. +// n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19 @integer ... +// +// @integer and @decimal are followed by examples and are not relevant for the +// rule itself. The are used here to signal the termination of the rule. +func parsePluralCondition(conds []orCondition, s string, f plural.Form) []orCondition { + scan := bufio.NewScanner(strings.NewReader(s)) + scan.Split(splitTokens) + for { + cond := orCondition{original: s, form: f} + // Set all numbers to be allowed for all number classes and restrict + // from here on. + for i := range cond.set { + for j := range cond.set[i] { + cond.set[i][j] = true + } + } + andLoop: + for { + var token string + scan.Scan() // Must exist. + switch class := scan.Text(); class { + case "t": + class = "w" // equal to w for t == 0 + fallthrough + case "n", "i", "f", "v", "w": + op := scanToken(scan) + opCode := operandIndex[class] + mod := 0 + if op == "%" { + opCode |= opMod + + switch v := scanUint(scan); v { + case 10, 100: + mod = v + case 1000: + // A more general solution would be to allow checking + // against multiples of 100 and include entries for the + // numbers 100..900 in the inclusion masks. At the + // moment this would only help Azerbaijan and Italian. + + // Italian doesn't use '%', so this must be Azerbaijan. + cond.used[opAzerbaijan00s] = true + return append(conds, cond) + + case 1000000: + cond.used[opBretonM] = true + return append(conds, cond) + + default: + log.Fatalf("Modulo value not supported %d", v) + } + op = scanToken(scan) + } + if op != "=" && op != "!=" { + log.Fatalf("Unexpected op %q", op) + } + if op == "!=" { + opCode |= opNotEqual + } + a := []int{} + v := scanUint(scan) + if class == "w" && v != 0 { + log.Fatalf("Must compare against zero for operand type %q", class) + } + token = scanToken(scan) + for { + switch token { + case "..": + end := scanUint(scan) + for ; v <= end; v++ { + a = append(a, v) + } + token = scanToken(scan) + default: // ",", "or", "and", "@..." + a = append(a, v) + } + if token != "," { + break + } + v = scanUint(scan) + token = scanToken(scan) + } + if !cond.add(opCode, mod, a) { + // Detected large numbers. As we ruled out Azerbaijan, this + // must be the many rule for Italian ordinals. + cond.set[opItalian800] = cond.set[opN] + cond.used[opItalian800] = true + } + + case "@integer", "@decimal": // "other" entry: tests only. + return conds + default: + log.Fatalf("Unexpected operand class %q (%s)", class, s) + } + switch token { + case "or": + conds = append(conds, cond) + break andLoop + case "@integer", "@decimal": // examples + // There is always an example in practice, so we always terminate here. + if err := scan.Err(); err != nil { + log.Fatal(err) + } + return append(conds, cond) + case "and": + // keep accumulating + default: + log.Fatalf("Unexpected token %q", token) + } + } + } +} + +func scanToken(scan *bufio.Scanner) string { + scan.Scan() + return scan.Text() +} + +func scanUint(scan *bufio.Scanner) int { + scan.Scan() + val, err := strconv.ParseUint(scan.Text(), 10, 32) + if err != nil { + log.Fatal(err) + } + return int(val) +} + +// splitTokens can be used with bufio.Scanner to tokenize CLDR plural rules. +func splitTokens(data []byte, atEOF bool) (advance int, token []byte, err error) { + condTokens := [][]byte{ + []byte(".."), + []byte(","), + []byte("!="), + []byte("="), + } + advance, token, err = bufio.ScanWords(data, atEOF) + for _, t := range condTokens { + if len(t) >= len(token) { + continue + } + switch p := bytes.Index(token, t); { + case p == -1: + case p == 0: + advance = len(t) + token = token[:len(t)] + return advance - len(token) + len(t), token[:len(t)], err + case p < advance: + // Don't split when "=" overlaps "!=". + if t[0] == '=' && token[p-1] == '!' { + continue + } + advance = p + token = token[:p] + } + } + return advance, token, err +} diff --git a/vendor/golang.org/x/text/internal/number/itoa.go b/vendor/golang.org/x/text/internal/number/itoa.go new file mode 100644 index 00000000..a459a6b7 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/itoa.go @@ -0,0 +1,111 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: use build tags once a low-level public API has been established in +// package strconv. + +package number + +const ( + digits = "0123456789abcdefghijklmnopqrstuvwxyz" +) + +var shifts = [len(digits) + 1]uint{ + 1 << 1: 1, + 1 << 2: 2, + 1 << 3: 3, + 1 << 4: 4, + 1 << 5: 5, +} + +// formatBits computes the string representation of u in the given base. +// If neg is set, u is treated as negative int64 value. If append_ is +// set, the string is appended to dst and the resulting byte slice is +// returned as the first result value; otherwise the string is returned +// as the second result value. +// +func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s string) { + if base < 2 || base > len(digits) { + panic("strconv: illegal AppendInt/FormatInt base") + } + // 2 <= base && base <= len(digits) + + var a [64 + 1]byte // +1 for sign of 64bit value in base 2 + i := len(a) + + if neg { + u = -u + } + + // convert bits + if base == 10 { + // common case: use constants for / because + // the compiler can optimize it into a multiply+shift + + if ^uintptr(0)>>32 == 0 { + for u > uint64(^uintptr(0)) { + q := u / 1e9 + us := uintptr(u - q*1e9) // us % 1e9 fits into a uintptr + for j := 9; j > 0; j-- { + i-- + qs := us / 10 + a[i] = byte(us - qs*10 + '0') + us = qs + } + u = q + } + } + + // u guaranteed to fit into a uintptr + us := uintptr(u) + for us >= 10 { + i-- + q := us / 10 + a[i] = byte(us - q*10 + '0') + us = q + } + // u < 10 + i-- + a[i] = byte(us + '0') + + } else if s := shifts[base]; s > 0 { + // base is power of 2: use shifts and masks instead of / and % + b := uint64(base) + m := uintptr(b) - 1 // == 1<= b { + i-- + a[i] = digits[uintptr(u)&m] + u >>= s + } + // u < base + i-- + a[i] = digits[uintptr(u)] + + } else { + // general case + b := uint64(base) + for u >= b { + i-- + q := u / b + a[i] = digits[uintptr(u-q*b)] + u = q + } + // u < base + i-- + a[i] = digits[uintptr(u)] + } + + // add sign, if any + if neg { + i-- + a[i] = '-' + } + + if append_ { + d = append(dst, a[i:]...) + return + } + s = string(a[i:]) + return +} diff --git a/vendor/golang.org/x/text/internal/number/number.go b/vendor/golang.org/x/text/internal/number/number.go new file mode 100644 index 00000000..db8ad67d --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/number.go @@ -0,0 +1,145 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go gen_common.go gen_plural.go + +// Package number contains tools and data for formatting numbers. +package number + +import ( + "unicode/utf8" + + "golang.org/x/text/internal" + "golang.org/x/text/language" +) + +// Info holds number formatting configuration data. +type Info struct { + system systemData // numbering system information + symIndex byte // index to symbols +} + +// InfoFromLangID returns a Info for the given compact language identifier and +// numbering system identifier. If system is the empty string, the default +// numbering system will be taken for that language. +func InfoFromLangID(compactIndex int, numberSystem string) Info { + p := langToDefaults[compactIndex] + // Lookup the entry for the language. + pSymIndex := byte(0) // Default: Latin, default symbols + system, ok := systemMap[numberSystem] + if !ok { + // Take the value for the default numbering system. This is by far the + // most common case as an alternative numbering system is hardly used. + if p&0x80 == 0 { + pSymIndex = p + } else { + // Take the first entry from the alternatives list. + data := langToAlt[p&^0x80] + pSymIndex = data.symIndex + system = data.system + } + } else { + langIndex := compactIndex + ns := system + outerLoop: + for { + if p&0x80 == 0 { + if ns == 0 { + // The index directly points to the symbol data. + pSymIndex = p + break + } + // Move to the parent and retry. + langIndex = int(internal.Parent[langIndex]) + } + // The index points to a list of symbol data indexes. + for _, e := range langToAlt[p&^0x80:] { + if int(e.compactTag) != langIndex { + if langIndex == 0 { + // The CLDR root defines full symbol information for all + // numbering systems (even though mostly by means of + // aliases). This means that we will never fall back to + // the default of the language. Also, the loop is + // guaranteed to terminate as a consequence. + ns = numLatn + // Fall back to Latin and start from the original + // language. See + // http://unicode.org/reports/tr35/#Locale_Inheritance. + langIndex = compactIndex + } else { + // Fall back to parent. + langIndex = int(internal.Parent[langIndex]) + } + break + } + if e.system == ns { + pSymIndex = e.symIndex + break outerLoop + } + } + } + } + if int(system) >= len(numSysData) { // algorithmic + // Will generate ASCII digits in case the user inadvertently calls + // WriteDigit or Digit on it. + d := numSysData[0] + d.id = system + return Info{ + system: d, + symIndex: pSymIndex, + } + } + return Info{ + system: numSysData[system], + symIndex: pSymIndex, + } +} + +// InfoFromTag returns a Info for the given language tag. +func InfoFromTag(t language.Tag) Info { + for { + if index, ok := language.CompactIndex(t); ok { + return InfoFromLangID(index, t.TypeForKey("nu")) + } + t = t.Parent() + } +} + +// IsDecimal reports if the numbering system can convert decimal to native +// symbols one-to-one. +func (n Info) IsDecimal() bool { + return int(n.system.id) < len(numSysData) +} + +// WriteDigit writes the UTF-8 sequence for n corresponding to the given ASCII +// digit to dst and reports the number of bytes written. dst must be large +// enough to hold the rune (can be up to utf8.UTFMax bytes). +func (n Info) WriteDigit(dst []byte, asciiDigit rune) int { + copy(dst, n.system.zero[:n.system.digitSize]) + dst[n.system.digitSize-1] += byte(asciiDigit - '0') + return int(n.system.digitSize) +} + +// Digit returns the digit for the numbering system for the corresponding ASCII +// value. For example, ni.Digit('3') could return '三'. Note that the argument +// is the rune constant '3', which equals 51, not the integer constant 3. +func (n Info) Digit(asciiDigit rune) rune { + var x [utf8.UTFMax]byte + n.WriteDigit(x[:], asciiDigit) + r, _ := utf8.DecodeRune(x[:]) + return r +} + +// Symbol returns the string for the given symbol type. +func (n Info) Symbol(t SymbolType) string { + return symData.Elem(int(symIndex[n.symIndex][t])) +} + +func formatForLang(t language.Tag, index []byte) *Format { + for ; ; t = t.Parent() { + if x, ok := language.CompactIndex(t); ok { + return &formats[index[x]] + } + } +} diff --git a/vendor/golang.org/x/text/internal/number/number_test.go b/vendor/golang.org/x/text/internal/number/number_test.go new file mode 100644 index 00000000..fc04887c --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/number_test.go @@ -0,0 +1,90 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import ( + "testing" + + "golang.org/x/text/internal/testtext" + "golang.org/x/text/language" +) + +func TestInfo(t *testing.T) { + testCases := []struct { + lang string + sym SymbolType + wantSym string + wantNine rune + }{ + {"und", SymDecimal, ".", '9'}, + {"de", SymGroup, ".", '9'}, + {"de-BE", SymGroup, ".", '9'}, // inherits from de (no number data in CLDR) + {"de-BE-oxendict", SymGroup, ".", '9'}, // inherits from de (no compact index) + + // U+096F DEVANAGARI DIGIT NINE ('९') + {"de-BE-u-nu-deva", SymGroup, ".", '\u096f'}, // miss -> latn -> de + {"de-Cyrl-BE", SymGroup, ",", '9'}, // inherits from root + {"de-CH", SymGroup, "'", '9'}, // overrides values in de + {"de-CH-oxendict", SymGroup, "'", '9'}, // inherits from de-CH (no compact index) + {"de-CH-u-nu-deva", SymGroup, "'", '\u096f'}, // miss -> latn -> de-CH + + {"pa", SymExponential, "E", '9'}, + + // "×۱۰^" -> U+00d7 U+06f1 U+06f0^" + // U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO + // U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE + // U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE + {"pa-u-nu-arabext", SymExponential, "\u00d7\u06f1\u06f0^", '\u06f9'}, + + // "གྲངས་མེད" - > U+0f42 U+0fb2 U+0f44 U+0f66 U+0f0b U+0f58 U+0f7a U+0f51 + // Examples: + // U+0F29 TIBETAN DIGIT NINE (༩) + {"dz", SymInfinity, "\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51", '\u0f29'}, // defaults to tibt + {"dz-u-nu-latn", SymInfinity, "∞", '9'}, // select alternative + {"dz-u-nu-tibt", SymInfinity, "\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51", '\u0f29'}, + {"en-u-nu-tibt", SymInfinity, "∞", '\u0f29'}, + + // algorithmic number systems fall back to ASCII if Digits is used. + {"en-u-nu-hanidec", SymPlusSign, "+", '9'}, + {"en-u-nu-roman", SymPlusSign, "+", '9'}, + } + for _, tc := range testCases { + info := InfoFromTag(language.MustParse(tc.lang)) + if got := info.Symbol(tc.sym); got != tc.wantSym { + t.Errorf("%s:%v:sym: got %q; want %q", tc.lang, tc.sym, got, tc.wantSym) + } + if got := info.Digit('9'); got != tc.wantNine { + t.Errorf("%s:%v:nine: got %q; want %q", tc.lang, tc.sym, got, tc.wantNine) + } + } +} + +func TestFormats(t *testing.T) { + testCases := []struct { + lang string + pattern string + index []byte + }{ + {"en", "#,##0.###", tagToDecimal}, + {"de", "#,##0.###", tagToDecimal}, + {"de-CH", "#,##0.###", tagToDecimal}, + {"pa", "#,##,##0.###", tagToDecimal}, + {"pa-Arab", "#,##0.###", tagToDecimal}, // Does NOT inherit from pa! + {"mr", "#,##,##0.###", tagToDecimal}, + {"mr-IN", "#,##,##0.###", tagToDecimal}, // Inherits from mr. + {"nl", "#E0", tagToScientific}, + {"nl-MX", "#E0", tagToScientific}, // Inherits through Tag.Parent. + {"zgh", "#,##0 %", tagToPercent}, + } + for _, tc := range testCases { + testtext.Run(t, tc.lang, func(t *testing.T) { + got := formatForLang(language.MustParse(tc.lang), tc.index) + want, _ := ParsePattern(tc.pattern) + if *got != *want { + t.Errorf("\ngot %#v;\nwant %#v", got, want) + } + }) + } +} diff --git a/vendor/golang.org/x/text/internal/number/pattern.go b/vendor/golang.org/x/text/internal/number/pattern.go new file mode 100644 index 00000000..2714b731 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/pattern.go @@ -0,0 +1,386 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import ( + "errors" + "unicode/utf8" +) + +// This file contains a parser for the CLDR number patterns as described in +// http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns. +// +// The following BNF is derived from this standard. +// +// pattern := subpattern (';' subpattern)? +// subpattern := affix? number exponent? affix? +// number := decimal | sigDigits +// decimal := '#'* '0'* ('.' fraction)? | '#' | '0' +// fraction := '0'* '#'* +// sigDigits := '#'* '@' '@'* '#'* +// exponent := 'E' '+'? '0'* '0' +// padSpec := '*' \L +// +// Notes: +// - An affix pattern may contain any runes, but runes with special meaning +// should be escaped. +// - Sequences of digits, '#', and '@' in decimal and sigDigits may have +// interstitial commas. + +// TODO: replace special characters in affixes (-, +, ¤) with control codes. + +// Format holds information for formatting numbers. It is designed to hold +// information from CLDR number patterns. +// +// This pattern is precompiled for all patterns for all languages. Even though +// the number of patterns is not very large, we want to keep this small. +// +// This type is only intended for internal use. +type Format struct { + // TODO: this struct can be packed a lot better than it is now. Should be + // possible to make it 32 bytes. + + Affix string // includes prefix and suffix. First byte is prefix length. + Offset uint16 // Offset into Affix for prefix and suffix + NegOffset uint16 // Offset into Affix for negative prefix and suffix or 0. + + Multiplier uint32 + RoundIncrement uint32 // Use Min*Digits to determine scale + PadRune rune + + FormatWidth uint16 + + GroupingSize [2]uint8 + Flags FormatFlag + + // Number of digits. + MinIntegerDigits uint8 + MaxIntegerDigits uint8 + MinFractionDigits uint8 + MaxFractionDigits uint8 + MinSignificantDigits uint8 + MaxSignificantDigits uint8 + MinExponentDigits uint8 +} + +// A FormatFlag is a bit mask for the flag field of a Format. +type FormatFlag uint8 + +const ( + AlwaysSign FormatFlag = 1 << iota + AlwaysExpSign + AlwaysDecimalSeparator + ParenthesisForNegative // Common pattern. Saves space. + + PadAfterNumber + PadAfterAffix + + PadBeforePrefix = 0 // Default + PadAfterPrefix = PadAfterAffix + PadBeforeSuffix = PadAfterNumber + PadAfterSuffix = PadAfterNumber | PadAfterAffix + PadMask = PadAfterNumber | PadAfterAffix +) + +type parser struct { + *Format + + leadingSharps int + + pos int + err error + doNotTerminate bool + groupingCount uint + hasGroup bool + buf []byte +} + +func (p *parser) setError(err error) { + if p.err == nil { + p.err = err + } +} + +func (p *parser) updateGrouping() { + if p.hasGroup && p.groupingCount < 255 { + p.GroupingSize[1] = p.GroupingSize[0] + p.GroupingSize[0] = uint8(p.groupingCount) + } + p.groupingCount = 0 + p.hasGroup = true +} + +var ( + // TODO: more sensible and localizeable error messages. + errMultiplePadSpecifiers = errors.New("format: pattern has multiple pad specifiers") + errInvalidPadSpecifier = errors.New("format: invalid pad specifier") + errInvalidQuote = errors.New("format: invalid quote") + errAffixTooLarge = errors.New("format: prefix or suffix exceeds maximum UTF-8 length of 256 bytes") + errDuplicatePercentSign = errors.New("format: duplicate percent sign") + errDuplicatePermilleSign = errors.New("format: duplicate permille sign") + errUnexpectedEnd = errors.New("format: unexpected end of pattern") +) + +// ParsePattern extracts formatting information from a CLDR number pattern. +// +// See http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns. +func ParsePattern(s string) (f *Format, err error) { + p := parser{Format: &Format{}} + + s = p.parseSubPattern(s) + + if s != "" { + // Parse negative sub pattern. + if s[0] != ';' { + p.setError(errors.New("format: error parsing first sub pattern")) + return nil, p.err + } + neg := parser{Format: &Format{}} // just for extracting the affixes. + s = neg.parseSubPattern(s[len(";"):]) + p.NegOffset = uint16(len(p.buf)) + p.buf = append(p.buf, neg.buf...) + } + if s != "" { + p.setError(errors.New("format: spurious characters at end of pattern")) + } + if p.err != nil { + return nil, p.err + } + if affix := string(p.buf); affix == "\x00\x00" || affix == "\x00\x00\x00\x00" { + // No prefix or suffixes. + p.NegOffset = 0 + } else { + p.Affix = affix + } + return p.Format, nil +} + +func (p *parser) parseSubPattern(s string) string { + s = p.parsePad(s, PadBeforePrefix) + s = p.parseAffix(s) + s = p.parsePad(s, PadAfterPrefix) + + s = p.parse(p.number, s) + + s = p.parsePad(s, PadBeforeSuffix) + s = p.parseAffix(s) + s = p.parsePad(s, PadAfterSuffix) + return s +} + +func (p *parser) parsePad(s string, f FormatFlag) (tail string) { + if len(s) >= 2 && s[0] == '*' { + r, sz := utf8.DecodeRuneInString(s[1:]) + if p.PadRune != 0 { + p.err = errMultiplePadSpecifiers + } else { + p.Flags |= f + p.PadRune = r + } + return s[1+sz:] + } + return s +} + +func (p *parser) parseAffix(s string) string { + x := len(p.buf) + p.buf = append(p.buf, 0) // placeholder for affix length + + s = p.parse(p.affix, s) + + n := len(p.buf) - x - 1 + if n > 0xFF { + p.setError(errAffixTooLarge) + } + p.buf[x] = uint8(n) + return s +} + +// state implements a state transition. It returns the new state. A state +// function may set an error on the parser or may simply return on an incorrect +// token and let the next phase fail. +type state func(r rune) state + +// parse repeatedly applies a state function on the given string until a +// termination condition is reached. +func (p *parser) parse(fn state, s string) (tail string) { + for i, r := range s { + p.doNotTerminate = false + if fn = fn(r); fn == nil || p.err != nil { + return s[i:] + } + p.FormatWidth++ + } + if p.doNotTerminate { + p.setError(errUnexpectedEnd) + } + return "" +} + +func (p *parser) affix(r rune) state { + switch r { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '#', '@', '.', '*', ',', ';': + return nil + case '\'': + return p.escape + case '%': + if p.Multiplier != 0 { + p.setError(errDuplicatePercentSign) + } + p.Multiplier = 100 + case '\u2030': // ‰ Per mille + if p.Multiplier != 0 { + p.setError(errDuplicatePermilleSign) + } + p.Multiplier = 1000 + // TODO: handle currency somehow: ¤, ¤¤, ¤¤¤, ¤¤¤¤ + } + p.buf = append(p.buf, string(r)...) + return p.affix +} + +func (p *parser) escape(r rune) state { + switch r { + case '\'': + return p.affix + default: + p.buf = append(p.buf, string(r)...) + } + return p.escape +} + +// number parses a number. The BNF says the integer part should always have +// a '0', but that does not appear to be the case according to the rest of the +// documentation. We will allow having only '#' numbers. +func (p *parser) number(r rune) state { + switch r { + case '#': + p.groupingCount++ + p.leadingSharps++ + case '@': + p.groupingCount++ + p.leadingSharps = 0 + return p.sigDigits(r) + case ',': + if p.leadingSharps == 0 { // no leading commas + return nil + } + p.updateGrouping() + case 'E': + p.MaxIntegerDigits = uint8(p.leadingSharps) + return p.exponent + case '.': // allow ".##" etc. + p.updateGrouping() + return p.fraction + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + return p.integer(r) + default: + return nil + } + return p.number +} + +func (p *parser) integer(r rune) state { + if !('0' <= r && r <= '9') { + var next state + switch r { + case 'E': + if p.leadingSharps > 0 { + p.MaxIntegerDigits = uint8(p.leadingSharps) + p.MinIntegerDigits + } + next = p.exponent + case '.': + next = p.fraction + } + p.updateGrouping() + return next + } + p.RoundIncrement = p.RoundIncrement*10 + uint32(r-'0') + p.groupingCount++ + p.MinIntegerDigits++ + return p.integer +} + +func (p *parser) sigDigits(r rune) state { + switch r { + case '@': + p.groupingCount++ + p.MaxSignificantDigits++ + p.MinSignificantDigits++ + case '#': + return p.sigDigitsFinal(r) + case 'E': + p.updateGrouping() + return p.normalizeSigDigitsWithExponent() + default: + p.updateGrouping() + return nil + } + return p.sigDigits +} + +func (p *parser) sigDigitsFinal(r rune) state { + switch r { + case '#': + p.groupingCount++ + p.MaxSignificantDigits++ + case 'E': + p.updateGrouping() + return p.normalizeSigDigitsWithExponent() + default: + p.updateGrouping() + return nil + } + return p.sigDigitsFinal +} + +func (p *parser) normalizeSigDigitsWithExponent() state { + p.MinIntegerDigits, p.MaxIntegerDigits = 1, 1 + p.MinFractionDigits = p.MinSignificantDigits - 1 + p.MaxFractionDigits = p.MaxSignificantDigits - 1 + p.MinSignificantDigits, p.MaxSignificantDigits = 0, 0 + return p.exponent +} + +func (p *parser) fraction(r rune) state { + switch r { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + p.RoundIncrement = p.RoundIncrement*10 + uint32(r-'0') + p.MinFractionDigits++ + p.MaxFractionDigits++ + case '#': + p.MaxFractionDigits++ + case 'E': + if p.leadingSharps > 0 { + p.MaxIntegerDigits = uint8(p.leadingSharps) + p.MinIntegerDigits + } + return p.exponent + default: + return nil + } + return p.fraction +} + +func (p *parser) exponent(r rune) state { + switch r { + case '+': + // Set mode and check it wasn't already set. + if p.Flags&AlwaysExpSign != 0 || p.MinExponentDigits > 0 { + break + } + p.Flags |= AlwaysExpSign + p.doNotTerminate = true + return p.exponent + case '0': + p.MinExponentDigits++ + return p.exponent + } + // termination condition + if p.MinExponentDigits == 0 { + p.setError(errors.New("format: need at least one digit")) + } + return nil +} diff --git a/vendor/golang.org/x/text/internal/number/pattern_test.go b/vendor/golang.org/x/text/internal/number/pattern_test.go new file mode 100644 index 00000000..f2ad55db --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/pattern_test.go @@ -0,0 +1,300 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import ( + "reflect" + "testing" + "unsafe" +) + +var testCases = []struct { + pat string + want *Format +}{{ + "#", + &Format{ + FormatWidth: 1, + // TODO: Should MinIntegerDigits be 1? + }, +}, { + "0", + &Format{ + FormatWidth: 1, + MinIntegerDigits: 1, + }, +}, { + "0000", + &Format{ + FormatWidth: 4, + MinIntegerDigits: 4, + }, +}, { + ".#", + &Format{ + FormatWidth: 2, + MaxFractionDigits: 1, + }, +}, { + "#0.###", + &Format{ + FormatWidth: 6, + MinIntegerDigits: 1, + MaxFractionDigits: 3, + }, +}, { + "#0.######", + &Format{ + FormatWidth: 9, + MinIntegerDigits: 1, + MaxFractionDigits: 6, + }, +}, { + "#,##0.###", + &Format{ + FormatWidth: 9, + GroupingSize: [2]uint8{3, 0}, + MinIntegerDigits: 1, + MaxFractionDigits: 3, + }, +}, { + "#,##,##0.###", + &Format{ + FormatWidth: 12, + GroupingSize: [2]uint8{3, 2}, + MinIntegerDigits: 1, + MaxFractionDigits: 3, + }, +}, { + // Ignore additional separators. + "#,####,##,##0.###", + &Format{ + FormatWidth: 17, + GroupingSize: [2]uint8{3, 2}, + MinIntegerDigits: 1, + MaxFractionDigits: 3, + }, +}, { + "#E0", + &Format{ + FormatWidth: 3, + MaxIntegerDigits: 1, + MinExponentDigits: 1, + }, +}, { + "0E0", + &Format{ + FormatWidth: 3, + MinIntegerDigits: 1, + MinExponentDigits: 1, + }, +}, { + "##00.0#E0", + &Format{ + FormatWidth: 9, + MinIntegerDigits: 2, + MaxIntegerDigits: 4, + MinFractionDigits: 1, + MaxFractionDigits: 2, + MinExponentDigits: 1, + }, +}, { + "#00.0E+0", + &Format{ + FormatWidth: 8, + Flags: AlwaysExpSign, + MinIntegerDigits: 2, + MaxIntegerDigits: 3, + MinFractionDigits: 1, + MaxFractionDigits: 1, + MinExponentDigits: 1, + }, +}, { + "0.0E++0", + nil, +}, { + "#0E+", + nil, +}, { + // significant digits + "@", + &Format{ + FormatWidth: 1, + MinSignificantDigits: 1, + MaxSignificantDigits: 1, + }, +}, { + // significant digits + "@@@@", + &Format{ + FormatWidth: 4, + MinSignificantDigits: 4, + MaxSignificantDigits: 4, + }, +}, { + "@###", + &Format{ + FormatWidth: 4, + MinSignificantDigits: 1, + MaxSignificantDigits: 4, + }, +}, { + // Exponents in significant digits mode gets normalized. + "@@E0", + &Format{ + FormatWidth: 4, + MinIntegerDigits: 1, + MaxIntegerDigits: 1, + MinFractionDigits: 1, + MaxFractionDigits: 1, + MinExponentDigits: 1, + }, +}, { + "@###E00", + &Format{ + FormatWidth: 7, + MinIntegerDigits: 1, + MaxIntegerDigits: 1, + MinFractionDigits: 0, + MaxFractionDigits: 3, + MinExponentDigits: 2, + }, +}, { + // The significant digits mode does not allow fractions. + "@###.#E0", + nil, +}, { + //alternative negative pattern + "#0.###;(#0.###)", + &Format{ + Affix: "\x00\x00\x01(\x01)", + NegOffset: 2, + FormatWidth: 6, + MinIntegerDigits: 1, + MaxFractionDigits: 3, + }, +}, { + // Rounding increments + "1.05", + &Format{ + RoundIncrement: 105, + FormatWidth: 4, + MinIntegerDigits: 1, + MinFractionDigits: 2, + MaxFractionDigits: 2, + }, +}, { + "0.0%", + &Format{ + Affix: "\x00\x01%", + Multiplier: 100, + FormatWidth: 4, + MinIntegerDigits: 1, + MinFractionDigits: 1, + MaxFractionDigits: 1, + }, +}, { + "0.0‰", + &Format{ + Affix: "\x00\x03‰", + Multiplier: 1000, + FormatWidth: 4, + MinIntegerDigits: 1, + MinFractionDigits: 1, + MaxFractionDigits: 1, + }, +}, { + "#,##0.00¤", + &Format{ + Affix: "\x00\x02¤", + FormatWidth: 9, + GroupingSize: [2]uint8{3, 0}, + MinIntegerDigits: 1, + MinFractionDigits: 2, + MaxFractionDigits: 2, + }, +}, { + "#,##0.00 ¤;(#,##0.00 ¤)", + &Format{Affix: "\x00\x04\u00a0¤\x01(\x05\u00a0¤)", + NegOffset: 6, + Multiplier: 0, + FormatWidth: 10, + GroupingSize: [2]uint8{3, 0}, + MinIntegerDigits: 1, + MinFractionDigits: 2, + MaxFractionDigits: 2, + }, +}, { + // padding + "*x#", + &Format{ + PadRune: 'x', + FormatWidth: 1, + }, +}, { + // padding + "#*x", + &Format{ + PadRune: 'x', + FormatWidth: 1, + Flags: PadBeforeSuffix, + }, +}, { + "*xpre#suf", + &Format{ + Affix: "\x03pre\x03suf", + PadRune: 'x', + FormatWidth: 7, + }, +}, { + "pre*x#suf", + &Format{ + Affix: "\x03pre\x03suf", + PadRune: 'x', + FormatWidth: 7, + Flags: PadAfterPrefix, + }, +}, { + "pre#*xsuf", + &Format{ + Affix: "\x03pre\x03suf", + PadRune: 'x', + FormatWidth: 7, + Flags: PadBeforeSuffix, + }, +}, { + "pre#suf*x", + &Format{ + Affix: "\x03pre\x03suf", + PadRune: 'x', + FormatWidth: 7, + Flags: PadAfterSuffix, + }, +}, { + // no duplicate padding + "*xpre#suf*x", nil, +}, { + // no duplicate padding + "*xpre#suf*x", nil, +}} + +func TestParsePattern(t *testing.T) { + for i, tc := range testCases { + f, err := ParsePattern(tc.pat) + if !reflect.DeepEqual(f, tc.want) { + t.Errorf("%d:%s:\ngot %#v;\nwant %#v", i, tc.pat, f, tc.want) + } + if got, want := err != nil, tc.want == nil; got != want { + t.Errorf("%d:%s:error: got %v; want %v", i, tc.pat, err, want) + } + } +} + +func TestPatternSize(t *testing.T) { + if sz := unsafe.Sizeof(Format{}); sz > 48 { + t.Errorf("got %d; want 48", sz) + } + +} diff --git a/vendor/golang.org/x/text/internal/number/plural.go b/vendor/golang.org/x/text/internal/number/plural.go new file mode 100644 index 00000000..5714e112 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/plural.go @@ -0,0 +1,119 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import "golang.org/x/text/internal/format/plural" + +type pluralRules struct { + rules []pluralCheck + index []byte + langToIndex []byte + inclusionMasks []uint64 +} + +var ( + ordinalData = pluralRules{ + ordinalRules, + ordinalIndex, + ordinalLangToIndex, + ordinalInclusionMasks[:], + } + cardinalData = pluralRules{ + cardinalRules, + cardinalIndex, + cardinalLangToIndex, + cardinalInclusionMasks[:], + } +) + +// See gen_plural.go for an explanation of the algorithm. + +func matchPlural(p *pluralRules, index int, n, f, v int) plural.Form { + nMask := p.inclusionMasks[n%maxMod] + // Compute the fMask inline in the rules below, as it is relatively rare. + // fMask := p.inclusionMasks[f%maxMod] + vMask := p.inclusionMasks[v%maxMod] + + // Do the matching + offset := p.langToIndex[index] + rules := p.rules[p.index[offset]:p.index[offset+1]] + for i := 0; i < len(rules); i++ { + rule := rules[i] + setBit := uint64(1 << rule.setID) + var skip bool + switch op := opID(rule.cat >> opShift); op { + case opI: // i = x + skip = n >= numN || nMask&setBit == 0 + + case opI | opNotEqual: // i != x + skip = n < numN && nMask&setBit != 0 + + case opI | opMod: // i % m = x + skip = nMask&setBit == 0 + + case opI | opMod | opNotEqual: // i % m != x + skip = nMask&setBit != 0 + + case opN: // n = x + skip = f != 0 || n >= numN || nMask&setBit == 0 + + case opN | opNotEqual: // n != x + skip = f == 0 && n < numN && nMask&setBit != 0 + + case opN | opMod: // n % m = x + skip = f != 0 || nMask&setBit == 0 + + case opN | opMod | opNotEqual: // n % m != x + skip = f == 0 && nMask&setBit != 0 + + case opF: // f = x + skip = f >= numN || p.inclusionMasks[f%maxMod]&setBit == 0 + + case opF | opNotEqual: // f != x + skip = f < numN && p.inclusionMasks[f%maxMod]&setBit != 0 + + case opF | opMod: // f % m = x + skip = p.inclusionMasks[f%maxMod]&setBit == 0 + + case opF | opMod | opNotEqual: // f % m != x + skip = p.inclusionMasks[f%maxMod]&setBit != 0 + + case opV: // v = x + skip = v < numN && vMask&setBit == 0 + + case opV | opNotEqual: // v != x + skip = v < numN && vMask&setBit != 0 + + case opW: // w == 0 + skip = f != 0 + + case opW | opNotEqual: // w != 0 + skip = f == 0 + + // Hard-wired rules that cannot be handled by our algorithm. + + case opBretonM: + skip = f != 0 || n == 0 || n%1000000 != 0 + + case opAzerbaijan00s: + // 100,200,300,400,500,600,700,800,900 + skip = n == 0 || n >= 1000 || n%100 != 0 + + case opItalian800: + skip = (f != 0 || n >= numN || nMask&setBit == 0) && n != 800 + } + if skip { + // advance over AND entries. + for ; i < len(rules) && rules[i].cat&formMask == andNext; i++ { + } + continue + } + // return if we have a final entry. + if cat := rule.cat & formMask; cat != andNext { + return plural.Form(cat) + } + } + return plural.Other +} diff --git a/vendor/golang.org/x/text/internal/number/plural_test.go b/vendor/golang.org/x/text/internal/number/plural_test.go new file mode 100644 index 00000000..3383d8c3 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/plural_test.go @@ -0,0 +1,110 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import ( + "strconv" + "strings" + "testing" + + "golang.org/x/text/language" +) + +func TestOrdinal(t *testing.T) { + testPlurals(t, &ordinalData, ordinalTests) +} + +func TestCardinal(t *testing.T) { + testPlurals(t, &cardinalData, cardinalTests) +} + +func testPlurals(t *testing.T, p *pluralRules, testCases []pluralTest) { + for _, tc := range testCases { + for _, loc := range strings.Split(tc.locales, " ") { + langIndex, _ := language.CompactIndex(language.MustParse(loc)) + // Test integers + for _, s := range tc.integer { + a := strings.Split(s, "~") + from := parseUint(t, a[0]) + to := from + if len(a) > 1 { + to = parseUint(t, a[1]) + } + for n := from; n <= to; n++ { + if f := matchPlural(p, langIndex, n, 0, 0); f != tc.form { + t.Errorf("%s:int(%d) = %v; want %v", loc, n, f, tc.form) + } + } + } + // Test decimals + for _, s := range tc.decimal { + a := strings.Split(s, "~") + from, scale := parseFixedPoint(t, a[0]) + to := from + if len(a) > 1 { + var toScale int + if to, toScale = parseFixedPoint(t, a[1]); toScale != scale { + t.Fatalf("%s:%s: non-matching scales %d versus %d", loc, s, scale, toScale) + } + } + m := 1 + for i := 0; i < scale; i++ { + m *= 10 + } + for n := from; n <= to; n++ { + if f := matchPlural(p, langIndex, n/m, n%m, scale); f != tc.form { + t.Errorf("%[1]s:dec(%[2]d.%0[4]*[3]d) = %[5]v; want %[6]v", loc, n/m, n%m, scale, f, tc.form) + } + } + } + } + } +} + +func parseUint(t *testing.T, s string) int { + val, err := strconv.ParseUint(s, 10, 32) + if err != nil { + t.Fatal(err) + } + return int(val) +} + +func parseFixedPoint(t *testing.T, s string) (val, scale int) { + p := strings.Index(s, ".") + s = strings.Replace(s, ".", "", 1) + v, err := strconv.ParseUint(s, 10, 32) + if err != nil { + t.Fatal(err) + } + return int(v), len(s) - p +} + +func BenchmarkPluralSimpleCases(b *testing.B) { + p := &cardinalData + en, _ := language.CompactIndex(language.English) + zh, _ := language.CompactIndex(language.Chinese) + for i := 0; i < b.N; i++ { + matchPlural(p, en, 0, 0, 0) // 0 + matchPlural(p, en, 1, 0, 0) // 1 + matchPlural(p, en, 2, 12, 3) // 2.120 + matchPlural(p, zh, 0, 0, 0) // 0 + matchPlural(p, zh, 1, 0, 0) // 1 + matchPlural(p, zh, 2, 12, 3) // 2.120 + } +} + +func BenchmarkPluralComplexCases(b *testing.B) { + p := &cardinalData + ar, _ := language.CompactIndex(language.Arabic) + lv, _ := language.CompactIndex(language.Latvian) + for i := 0; i < b.N; i++ { + matchPlural(p, lv, 0, 19, 2) // 0.19 + matchPlural(p, lv, 11, 0, 3) // 11.000 + matchPlural(p, lv, 100, 123, 4) // 0.1230 + matchPlural(p, ar, 0, 0, 0) // 0 + matchPlural(p, ar, 110, 0, 0) // 110 + matchPlural(p, ar, 99, 99, 2) // 99.99 + } +} diff --git a/vendor/golang.org/x/text/internal/number/tables.go b/vendor/golang.org/x/text/internal/number/tables.go new file mode 100644 index 00000000..c17c9a63 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/tables.go @@ -0,0 +1,1633 @@ +// This file was generated by go generate; DO NOT EDIT + +package number + +import "golang.org/x/text/internal/stringset" + +// CLDRVersion is the CLDR version from which the tables in this package are derived. +const CLDRVersion = "29" + +var numSysData = []systemData{ // 55 elements + 0: {id: 0x0, digitSize: 0x1, zero: [4]uint8{0x30, 0x0, 0x0, 0x0}}, + 1: {id: 0x1, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x9c, 0xb0}}, + 2: {id: 0x2, digitSize: 0x2, zero: [4]uint8{0xd9, 0xa0, 0x0, 0x0}}, + 3: {id: 0x3, digitSize: 0x2, zero: [4]uint8{0xdb, 0xb0, 0x0, 0x0}}, + 4: {id: 0x4, digitSize: 0x3, zero: [4]uint8{0xe1, 0xad, 0x90, 0x0}}, + 5: {id: 0x5, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa7, 0xa6, 0x0}}, + 6: {id: 0x6, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x81, 0xa6}}, + 7: {id: 0x7, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x84, 0xb6}}, + 8: {id: 0x8, digitSize: 0x3, zero: [4]uint8{0xea, 0xa9, 0x90, 0x0}}, + 9: {id: 0x9, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa5, 0xa6, 0x0}}, + 10: {id: 0xa, digitSize: 0x3, zero: [4]uint8{0xef, 0xbc, 0x90, 0x0}}, + 11: {id: 0xb, digitSize: 0x3, zero: [4]uint8{0xe0, 0xab, 0xa6, 0x0}}, + 12: {id: 0xc, digitSize: 0x3, zero: [4]uint8{0xe0, 0xa9, 0xa6, 0x0}}, + 13: {id: 0xd, digitSize: 0x4, zero: [4]uint8{0xf0, 0x96, 0xad, 0x90}}, + 14: {id: 0xe, digitSize: 0x3, zero: [4]uint8{0xea, 0xa7, 0x90, 0x0}}, + 15: {id: 0xf, digitSize: 0x3, zero: [4]uint8{0xea, 0xa4, 0x80, 0x0}}, + 16: {id: 0x10, digitSize: 0x3, zero: [4]uint8{0xe1, 0x9f, 0xa0, 0x0}}, + 17: {id: 0x11, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb3, 0xa6, 0x0}}, + 18: {id: 0x12, digitSize: 0x3, zero: [4]uint8{0xe1, 0xaa, 0x80, 0x0}}, + 19: {id: 0x13, digitSize: 0x3, zero: [4]uint8{0xe1, 0xaa, 0x90, 0x0}}, + 20: {id: 0x14, digitSize: 0x3, zero: [4]uint8{0xe0, 0xbb, 0x90, 0x0}}, + 21: {id: 0x15, digitSize: 0x3, zero: [4]uint8{0xe1, 0xb1, 0x80, 0x0}}, + 22: {id: 0x16, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa5, 0x86, 0x0}}, + 23: {id: 0x17, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0x8e}}, + 24: {id: 0x18, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0x98}}, + 25: {id: 0x19, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xb6}}, + 26: {id: 0x1a, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xac}}, + 27: {id: 0x1b, digitSize: 0x4, zero: [4]uint8{0xf0, 0x9d, 0x9f, 0xa2}}, + 28: {id: 0x1c, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb5, 0xa6, 0x0}}, + 29: {id: 0x1d, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x99, 0x90}}, + 30: {id: 0x1e, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa0, 0x90, 0x0}}, + 31: {id: 0x1f, digitSize: 0x4, zero: [4]uint8{0xf0, 0x96, 0xa9, 0xa0}}, + 32: {id: 0x20, digitSize: 0x3, zero: [4]uint8{0xea, 0xaf, 0xb0, 0x0}}, + 33: {id: 0x21, digitSize: 0x3, zero: [4]uint8{0xe1, 0x81, 0x80, 0x0}}, + 34: {id: 0x22, digitSize: 0x3, zero: [4]uint8{0xe1, 0x82, 0x90, 0x0}}, + 35: {id: 0x23, digitSize: 0x3, zero: [4]uint8{0xea, 0xa7, 0xb0, 0x0}}, + 36: {id: 0x24, digitSize: 0x2, zero: [4]uint8{0xdf, 0x80, 0x0, 0x0}}, + 37: {id: 0x25, digitSize: 0x3, zero: [4]uint8{0xe1, 0xb1, 0x90, 0x0}}, + 38: {id: 0x26, digitSize: 0x3, zero: [4]uint8{0xe0, 0xad, 0xa6, 0x0}}, + 39: {id: 0x27, digitSize: 0x4, zero: [4]uint8{0xf0, 0x90, 0x92, 0xa0}}, + 40: {id: 0x28, digitSize: 0x3, zero: [4]uint8{0xea, 0xa3, 0x90, 0x0}}, + 41: {id: 0x29, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x87, 0x90}}, + 42: {id: 0x2a, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x8b, 0xb0}}, + 43: {id: 0x2b, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb7, 0xa6, 0x0}}, + 44: {id: 0x2c, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x83, 0xb0}}, + 45: {id: 0x2d, digitSize: 0x3, zero: [4]uint8{0xe1, 0xae, 0xb0, 0x0}}, + 46: {id: 0x2e, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x9b, 0x80}}, + 47: {id: 0x2f, digitSize: 0x3, zero: [4]uint8{0xe1, 0xa7, 0x90, 0x0}}, + 48: {id: 0x30, digitSize: 0x3, zero: [4]uint8{0xe0, 0xaf, 0xa6, 0x0}}, + 49: {id: 0x31, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb1, 0xa6, 0x0}}, + 50: {id: 0x32, digitSize: 0x3, zero: [4]uint8{0xe0, 0xb9, 0x90, 0x0}}, + 51: {id: 0x33, digitSize: 0x3, zero: [4]uint8{0xe0, 0xbc, 0xa0, 0x0}}, + 52: {id: 0x34, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0x93, 0x90}}, + 53: {id: 0x35, digitSize: 0x3, zero: [4]uint8{0xea, 0x98, 0xa0, 0x0}}, + 54: {id: 0x36, digitSize: 0x4, zero: [4]uint8{0xf0, 0x91, 0xa3, 0xa0}}, +} // Size: 354 bytes + +const ( + numAhom = 0x1 + numArab = 0x2 + numArabext = 0x3 + numArmn = 0x37 + numArmnlow = 0x38 + numBali = 0x4 + numBeng = 0x5 + numBrah = 0x6 + numCakm = 0x7 + numCham = 0x8 + numCyrl = 0x39 + numDeva = 0x9 + numEthi = 0x3a + numFullwide = 0xa + numGeor = 0x3b + numGrek = 0x3c + numGreklow = 0x3d + numGujr = 0xb + numGuru = 0xc + numHanidays = 0x3e + numHanidec = 0x3f + numHans = 0x40 + numHansfin = 0x41 + numHant = 0x42 + numHantfin = 0x43 + numHebr = 0x44 + numHmng = 0xd + numJava = 0xe + numJpan = 0x45 + numJpanfin = 0x46 + numKali = 0xf + numKhmr = 0x10 + numKnda = 0x11 + numLana = 0x12 + numLanatham = 0x13 + numLaoo = 0x14 + numLatn = 0x0 + numLepc = 0x15 + numLimb = 0x16 + numMathbold = 0x17 + numMathdbl = 0x18 + numMathmono = 0x19 + numMathsanb = 0x1a + numMathsans = 0x1b + numMlym = 0x1c + numModi = 0x1d + numMong = 0x1e + numMroo = 0x1f + numMtei = 0x20 + numMymr = 0x21 + numMymrshan = 0x22 + numMymrtlng = 0x23 + numNkoo = 0x24 + numOlck = 0x25 + numOrya = 0x26 + numOsma = 0x27 + numRoman = 0x47 + numRomanlow = 0x48 + numSaur = 0x28 + numShrd = 0x29 + numSind = 0x2a + numSinh = 0x2b + numSora = 0x2c + numSund = 0x2d + numTakr = 0x2e + numTalu = 0x2f + numTaml = 0x49 + numTamldec = 0x30 + numTelu = 0x31 + numThai = 0x32 + numTibt = 0x33 + numTirh = 0x34 + numVaii = 0x35 + numWara = 0x36 + numNumberSystems +) + +var systemMap = map[string]system{ + "ahom": numAhom, + "arab": numArab, + "arabext": numArabext, + "armn": numArmn, + "armnlow": numArmnlow, + "bali": numBali, + "beng": numBeng, + "brah": numBrah, + "cakm": numCakm, + "cham": numCham, + "cyrl": numCyrl, + "deva": numDeva, + "ethi": numEthi, + "fullwide": numFullwide, + "geor": numGeor, + "grek": numGrek, + "greklow": numGreklow, + "gujr": numGujr, + "guru": numGuru, + "hanidays": numHanidays, + "hanidec": numHanidec, + "hans": numHans, + "hansfin": numHansfin, + "hant": numHant, + "hantfin": numHantfin, + "hebr": numHebr, + "hmng": numHmng, + "java": numJava, + "jpan": numJpan, + "jpanfin": numJpanfin, + "kali": numKali, + "khmr": numKhmr, + "knda": numKnda, + "lana": numLana, + "lanatham": numLanatham, + "laoo": numLaoo, + "latn": numLatn, + "lepc": numLepc, + "limb": numLimb, + "mathbold": numMathbold, + "mathdbl": numMathdbl, + "mathmono": numMathmono, + "mathsanb": numMathsanb, + "mathsans": numMathsans, + "mlym": numMlym, + "modi": numModi, + "mong": numMong, + "mroo": numMroo, + "mtei": numMtei, + "mymr": numMymr, + "mymrshan": numMymrshan, + "mymrtlng": numMymrtlng, + "nkoo": numNkoo, + "olck": numOlck, + "orya": numOrya, + "osma": numOsma, + "roman": numRoman, + "romanlow": numRomanlow, + "saur": numSaur, + "shrd": numShrd, + "sind": numSind, + "sinh": numSinh, + "sora": numSora, + "sund": numSund, + "takr": numTakr, + "talu": numTalu, + "taml": numTaml, + "tamldec": numTamldec, + "telu": numTelu, + "thai": numThai, + "tibt": numTibt, + "tirh": numTirh, + "vaii": numVaii, + "wara": numWara, +} + +var symIndex = [][12]uint8{ // 68 elements + 0: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 1: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 2: [12]uint8{0x0, 0x1, 0x2, 0xd, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0x10, 0xb}, + 3: [12]uint8{0x1, 0x0, 0x2, 0xd, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0x10, 0xb}, + 4: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x11, 0xb}, + 5: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 6: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0}, + 7: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x0, 0x8, 0x9, 0xa, 0xb}, + 8: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x12, 0xb}, + 9: [12]uint8{0x0, 0x1, 0x2, 0xd, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 10: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x13, 0x8, 0x9, 0xa, 0xb}, + 11: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0}, + 12: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb}, + 13: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb}, + 14: [12]uint8{0x0, 0x15, 0x2, 0x3, 0x4, 0x5, 0x6, 0x14, 0x8, 0x9, 0xa, 0xb}, + 15: [12]uint8{0x0, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 16: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x16, 0xb}, + 17: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb}, + 18: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x17, 0x7, 0x8, 0x9, 0xa, 0xb}, + 19: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x18, 0x7, 0x8, 0x9, 0xa, 0xb}, + 20: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x19, 0x1a, 0xa, 0xb}, + 21: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 22: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x7, 0x8, 0x9, 0xa, 0xb}, + 23: [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0x1c, 0x6, 0x7, 0x8, 0x9, 0x1d, 0xb}, + 24: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0x1e, 0x0}, + 25: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 26: [12]uint8{0x0, 0x1f, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 27: [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 28: [12]uint8{0x0, 0x15, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 29: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x20, 0xb}, + 30: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x18, 0x14, 0x8, 0x9, 0x21, 0xb}, + 31: [12]uint8{0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x6, 0x7, 0x8, 0x22, 0xa, 0xb}, + 32: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x7, 0x8, 0x9, 0x21, 0xb}, + 33: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x23, 0xb}, + 34: [12]uint8{0x1, 0x0, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x24, 0xb}, + 35: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x25, 0xb}, + 36: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x26, 0xb}, + 37: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0}, + 38: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x27, 0xb}, + 39: [12]uint8{0x1, 0x0, 0x2, 0x3, 0xe, 0x1c, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 40: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x28, 0xb}, + 41: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x1b, 0x18, 0x14, 0x8, 0x9, 0x21, 0xb}, + 42: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x0}, + 43: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x29, 0xb}, + 44: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2a, 0xb}, + 45: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2b, 0xb}, + 46: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x2c, 0x7, 0x8, 0x9, 0xa, 0xb}, + 47: [12]uint8{0x1, 0xc, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2d, 0xb}, + 48: [12]uint8{0x1, 0x1f, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 49: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x2e, 0xb}, + 50: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x32, 0x33, 0x34, 0x7, 0x35, 0x9, 0xa, 0xb}, + 51: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x32, 0x33, 0x34, 0x7, 0x35, 0x9, 0x36, 0xb}, + 52: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x32, 0x37, 0x34, 0x7, 0x35, 0x9, 0xa, 0xb}, + 53: [12]uint8{0x2f, 0xc, 0x31, 0xd, 0x4, 0x1b, 0x34, 0x7, 0x35, 0x9, 0xa, 0x0}, + 54: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x38, 0x39, 0x3a, 0x7, 0x35, 0x9, 0xa, 0x2f}, + 55: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x38, 0x1c, 0x3a, 0x7, 0x35, 0x9, 0x1d, 0xb}, + 56: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0xe, 0x1c, 0x3a, 0x7, 0x35, 0x9, 0xa, 0x2f}, + 57: [12]uint8{0x1, 0xc, 0x31, 0xd, 0x4, 0x1b, 0x3a, 0x7, 0x35, 0x9, 0xa, 0x0}, + 58: [12]uint8{0x2f, 0x1, 0x31, 0xd, 0x4, 0x5, 0x3a, 0x7, 0x35, 0x9, 0xa, 0x2f}, + 59: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x38, 0x37, 0x3a, 0x7, 0x35, 0x9, 0xa, 0xb}, + 60: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x38, 0x39, 0x3b, 0x7, 0x8, 0x9, 0x3c, 0x2f}, + 61: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x4, 0x5, 0x3a, 0x7, 0x35, 0x9, 0x2d, 0x2f}, + 62: [12]uint8{0x2f, 0x30, 0x31, 0xd, 0x4, 0x5, 0x3a, 0x7, 0x35, 0x9, 0xa, 0x2f}, + 63: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x3d, 0xb}, + 64: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x3e, 0xb}, + 65: [12]uint8{0x0, 0x1, 0x3f, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb}, + 66: [12]uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x40, 0xb}, + 67: [12]uint8{0x0, 0x1, 0x41, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x42, 0x43, 0xb}, +} // Size: 840 bytes + +var symData = stringset.Set{ + Data: "" + // Size: 560 bytes + ".,;%+-E׉∞NaN:\u00a0Ùª\u200e+\u200e-ليس\u00a0رقمًاNDТерхьаш\u00a0дацx·'mn" + + "ne×10^0/00INF−\u200e−ناعددepäluku’áƒáƒ \u00a0áƒáƒ áƒ˜áƒ¡\u00a0რიცხვი¤¤¤?Ñан\u00a0Ñ" + + "меÑບà»à»ˆ\u200bà»àº¡à»ˆàº™\u200bໂຕ\u200bເລàºnav\u00a0skaitlisဂá€á€”်းမဟုá€á€ºá€žá€±á€¬ÐÐне" + + "\u00a0чиÑлоepilohosan\u00a0dälTFЕhaqiqiy\u00a0son\u00a0emaséžæ•¸å€¼Ù«Ù¬Ø›\u200f+" + + "\u200f-اس؉ليس\u00a0رقم\u200f−\u200e+\u200e\u200e-\u200e×۱۰^Ù‚ÛŒÛ\u00a0عدد" + + "\u00a0Ù†Ûیںসংখà§à¦¯à¦¾\u00a0নাസംഖàµà´¯à´¯à´²àµà´²áŠà½¨à½„་མེན་དང་གྲངས་མེདཨང་མད", + Index: []uint16{ // 69 elements + // Entry 0 - 3F + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, + 0x0009, 0x000c, 0x000f, 0x0012, 0x0013, 0x0015, 0x0017, 0x001b, + 0x001f, 0x0031, 0x0033, 0x0049, 0x004a, 0x004c, 0x004d, 0x0050, + 0x0051, 0x0056, 0x005a, 0x005d, 0x0060, 0x0066, 0x0070, 0x0078, + 0x007b, 0x00a3, 0x00a9, 0x00aa, 0x00ba, 0x00e7, 0x00f4, 0x011b, + 0x011f, 0x012f, 0x0136, 0x013f, 0x0141, 0x0143, 0x0155, 0x015e, + 0x0160, 0x0162, 0x0164, 0x0168, 0x016c, 0x0170, 0x0172, 0x0180, + 0x0186, 0x018d, 0x0194, 0x019b, 0x019d, 0x01b3, 0x01cd, 0x01e8, + // Entry 40 - 7F + 0x01eb, 0x0200, 0x0209, 0x0221, 0x0230, + }, +} // Size: 738 bytes + +// langToDefaults maps a compact language index to the default numbering system +// and default symbol set +var langToDefaults = [747]uint8{ + // Entry 0 - 3F + 0x80, 0x05, 0x14, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x83, 0x02, 0x02, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, + 0x02, 0x85, 0x00, 0x00, 0x00, 0x86, 0x04, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x01, 0x01, 0x06, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, + // Entry 40 - 7F + 0x00, 0x89, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x8d, + 0x01, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x8f, 0x09, 0x09, 0x91, 0x01, + 0x01, 0x01, 0x93, 0x0a, 0x0b, 0x0b, 0x0b, 0x00, + 0x00, 0x0c, 0x0d, 0x0c, 0x0e, 0x0c, 0x0e, 0x0c, + 0x0f, 0x0f, 0x0c, 0x0c, 0x01, 0x01, 0x00, 0x01, + 0x01, 0x95, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, + // Entry 80 - BF + 0x11, 0x11, 0x11, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x0c, 0x12, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x0b, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry C0 - FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x15, 0x15, 0x05, 0x00, + 0x05, 0x05, 0x00, 0x05, 0x05, 0x01, 0x00, 0x00, + 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05, 0x00, + // Entry 100 - 13F + 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, + 0x05, 0x05, 0x16, 0x16, 0x05, 0x05, 0x01, 0x01, + 0x97, 0x17, 0x17, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x18, 0x18, 0x00, 0x00, 0x19, 0x19, 0x19, 0x9a, + 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x0f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05, 0x05, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 140 - 17F + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x05, 0x05, + 0x05, 0x05, 0x00, 0x00, 0x9d, 0x00, 0x05, 0x05, + 0x1a, 0x1a, 0x1a, 0x1a, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1b, 0x1b, 0x00, 0x00, 0x05, 0x05, 0x05, + 0x0c, 0x0c, 0x01, 0x01, 0x05, 0x05, 0x0b, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x1c, + // Entry 180 - 1BF + 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, + 0x00, 0x00, 0x00, 0x1d, 0x1d, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0f, + 0x0f, 0x00, 0x00, 0x01, 0x01, 0x05, 0x05, 0x1e, + 0x1e, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xa2, 0x1f, 0x00, 0x00, + 0x01, 0x01, 0x20, 0x20, 0x00, 0x00, 0x00, 0x21, + 0x21, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x22, 0x22, + 0xa4, 0x00, 0x00, 0x16, 0x16, 0x05, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x23, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x05, 0x05, + 0x00, 0x00, 0x05, 0x05, 0xa6, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x05, 0xa9, 0x24, 0xab, 0x00, 0x00, 0x00, + 0x00, 0xac, 0x25, 0x25, 0x00, 0x00, 0xaf, 0x00, + // Entry 200 - 23F + 0x00, 0xb0, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x01, 0x01, 0x25, 0x25, 0x05, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26, 0x26, + 0xb2, 0xb4, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x01, 0xb6, 0x27, 0x05, 0x01, 0x05, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x05, 0x00, 0x00, 0x1a, 0x1a, 0x05, + // Entry 240 - 27F + 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x28, 0x28, + 0x28, 0x28, 0x28, 0x28, 0x28, 0x05, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x29, 0x29, 0x29, 0x29, 0x05, 0x05, 0x0f, 0x0f, + 0x05, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2a, + 0x2a, 0x01, 0x01, 0x11, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x0b, + // Entry 280 - 2BF + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x00, 0x00, 0x00, 0xb8, 0x20, 0x20, 0x20, + 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c, + 0x00, 0x2d, 0x2d, 0x05, 0x05, 0x05, 0x00, 0x0f, + 0x0f, 0x01, 0x01, 0x00, 0x00, 0x2e, 0x2e, 0xbb, + 0xbd, 0x1b, 0xbe, 0xc0, 0x27, 0xc2, 0x01, 0x2f, + // Entry 2C0 - 2FF + 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x31, 0x31, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x31, 0x31, + 0x31, 0x00, 0x00, +} // Size: 747 bytes + +// langToAlt is a list of numbering system and symbol set pairs, sorted and +// marked by compact language index. +var langToAlt = []altSymData{ // 68 elements + 1: {compactTag: 0x0, system: 0x2, symIndex: 0x32}, + 2: {compactTag: 0x0, system: 0x3, symIndex: 0x36}, + 3: {compactTag: 0xc, system: 0x2, symIndex: 0x33}, + 4: {compactTag: 0xc, system: 0x0, symIndex: 0x2}, + 5: {compactTag: 0x29, system: 0x5, symIndex: 0x0}, + 6: {compactTag: 0x2d, system: 0x0, symIndex: 0x4}, + 7: {compactTag: 0x2d, system: 0x2, symIndex: 0x32}, + 8: {compactTag: 0x2d, system: 0x3, symIndex: 0x36}, + 9: {compactTag: 0x41, system: 0x5, symIndex: 0x3f}, + 10: {compactTag: 0x41, system: 0x0, symIndex: 0x0}, + 11: {compactTag: 0x44, system: 0x0, symIndex: 0x0}, + 12: {compactTag: 0x44, system: 0x33, symIndex: 0x42}, + 13: {compactTag: 0x47, system: 0x0, symIndex: 0x1}, + 14: {compactTag: 0x47, system: 0x2, symIndex: 0x32}, + 15: {compactTag: 0x5b, system: 0x2, symIndex: 0x32}, + 16: {compactTag: 0x5b, system: 0x0, symIndex: 0x9}, + 17: {compactTag: 0x5e, system: 0x0, symIndex: 0x1}, + 18: {compactTag: 0x5e, system: 0x2, symIndex: 0x32}, + 19: {compactTag: 0x62, system: 0x0, symIndex: 0xa}, + 20: {compactTag: 0x62, system: 0x2, symIndex: 0x32}, + 21: {compactTag: 0x79, system: 0x33, symIndex: 0x43}, + 22: {compactTag: 0x79, system: 0x0, symIndex: 0x0}, + 23: {compactTag: 0x110, system: 0x3, symIndex: 0x37}, + 24: {compactTag: 0x110, system: 0x0, symIndex: 0x17}, + 25: {compactTag: 0x110, system: 0x2, symIndex: 0x32}, + 26: {compactTag: 0x11f, system: 0x0, symIndex: 0x1}, + 27: {compactTag: 0x11f, system: 0x2, symIndex: 0x34}, + 28: {compactTag: 0x11f, system: 0x3, symIndex: 0x38}, + 29: {compactTag: 0x154, system: 0x0, symIndex: 0x0}, + 30: {compactTag: 0x154, system: 0x2, symIndex: 0x32}, + 31: {compactTag: 0x154, system: 0x3, symIndex: 0x36}, + 32: {compactTag: 0x15c, system: 0x0, symIndex: 0x0}, + 33: {compactTag: 0x15c, system: 0x2, symIndex: 0x32}, + 34: {compactTag: 0x1ac, system: 0x3, symIndex: 0x36}, + 35: {compactTag: 0x1ac, system: 0x0, symIndex: 0x1f}, + 36: {compactTag: 0x1c8, system: 0x3, symIndex: 0x36}, + 37: {compactTag: 0x1c8, system: 0x0, symIndex: 0x0}, + 38: {compactTag: 0x1e4, system: 0x0, symIndex: 0x0}, + 39: {compactTag: 0x1e4, system: 0x1c, symIndex: 0x40}, + 40: {compactTag: 0x1e8, system: 0x9, symIndex: 0x0}, + 41: {compactTag: 0x1f2, system: 0x21, symIndex: 0x41}, + 42: {compactTag: 0x1f2, system: 0x0, symIndex: 0x24}, + 43: {compactTag: 0x1f4, system: 0x3, symIndex: 0x36}, + 44: {compactTag: 0x1f9, system: 0x0, symIndex: 0x25}, + 45: {compactTag: 0x1f9, system: 0x2, symIndex: 0x35}, + 46: {compactTag: 0x1f9, system: 0x3, symIndex: 0x39}, + 47: {compactTag: 0x1fe, system: 0x9, symIndex: 0x0}, + 48: {compactTag: 0x201, system: 0x0, symIndex: 0x5}, + 49: {compactTag: 0x201, system: 0x2, symIndex: 0x32}, + 50: {compactTag: 0x220, system: 0x0, symIndex: 0x0}, + 51: {compactTag: 0x220, system: 0x3, symIndex: 0x3a}, + 52: {compactTag: 0x221, system: 0x3, symIndex: 0x36}, + 53: {compactTag: 0x221, system: 0x0, symIndex: 0x1b}, + 54: {compactTag: 0x22a, system: 0x3, symIndex: 0x36}, + 55: {compactTag: 0x22a, system: 0x0, symIndex: 0x27}, + 56: {compactTag: 0x28c, system: 0x0, symIndex: 0x20}, + 57: {compactTag: 0x28c, system: 0x2, symIndex: 0x34}, + 58: {compactTag: 0x28c, system: 0x3, symIndex: 0x3b}, + 59: {compactTag: 0x2b7, system: 0x0, symIndex: 0x1b}, + 60: {compactTag: 0x2b7, system: 0x3, symIndex: 0x3c}, + 61: {compactTag: 0x2b8, system: 0x3, symIndex: 0x3c}, + 62: {compactTag: 0x2ba, system: 0x0, symIndex: 0x2f}, + 63: {compactTag: 0x2ba, system: 0x3, symIndex: 0x3d}, + 64: {compactTag: 0x2bb, system: 0x3, symIndex: 0x36}, + 65: {compactTag: 0x2bb, system: 0x0, symIndex: 0x27}, + 66: {compactTag: 0x2bd, system: 0x0, symIndex: 0x1}, + 67: {compactTag: 0x2bd, system: 0x3, symIndex: 0x3e}, +} // Size: 296 bytes + +var ordinalRules = []pluralCheck{ // 58 elements + 0: {cat: 0x2f, setID: 0x4}, + 1: {cat: 0x3a, setID: 0x5}, + 2: {cat: 0x22, setID: 0x1}, + 3: {cat: 0x22, setID: 0x6}, + 4: {cat: 0x22, setID: 0x7}, + 5: {cat: 0x2f, setID: 0x8}, + 6: {cat: 0x3c, setID: 0x9}, + 7: {cat: 0x2f, setID: 0xa}, + 8: {cat: 0x3c, setID: 0xb}, + 9: {cat: 0x2d, setID: 0xc}, + 10: {cat: 0x2d, setID: 0xd}, + 11: {cat: 0x2f, setID: 0xe}, + 12: {cat: 0x35, setID: 0x3}, + 13: {cat: 0xc5, setID: 0xf}, + 14: {cat: 0x2, setID: 0x1}, + 15: {cat: 0x5, setID: 0x3}, + 16: {cat: 0xd, setID: 0x10}, + 17: {cat: 0x22, setID: 0x1}, + 18: {cat: 0x2f, setID: 0x11}, + 19: {cat: 0x3d, setID: 0x12}, + 20: {cat: 0x2f, setID: 0x13}, + 21: {cat: 0x3a, setID: 0x14}, + 22: {cat: 0x2f, setID: 0x15}, + 23: {cat: 0x3b, setID: 0x16}, + 24: {cat: 0x2f, setID: 0xa}, + 25: {cat: 0x3c, setID: 0xb}, + 26: {cat: 0x22, setID: 0x1}, + 27: {cat: 0x23, setID: 0x17}, + 28: {cat: 0x24, setID: 0x18}, + 29: {cat: 0x22, setID: 0x19}, + 30: {cat: 0x23, setID: 0x2}, + 31: {cat: 0x24, setID: 0x18}, + 32: {cat: 0xf, setID: 0x13}, + 33: {cat: 0x1a, setID: 0x14}, + 34: {cat: 0xf, setID: 0x15}, + 35: {cat: 0x1b, setID: 0x16}, + 36: {cat: 0xf, setID: 0x1a}, + 37: {cat: 0x1d, setID: 0x1b}, + 38: {cat: 0xa, setID: 0x1c}, + 39: {cat: 0xa, setID: 0x1d}, + 40: {cat: 0xc, setID: 0x1e}, + 41: {cat: 0xe4, setID: 0x0}, + 42: {cat: 0x5, setID: 0x3}, + 43: {cat: 0xd, setID: 0xc}, + 44: {cat: 0xd, setID: 0x1f}, + 45: {cat: 0x22, setID: 0x1}, + 46: {cat: 0x23, setID: 0x17}, + 47: {cat: 0x24, setID: 0x18}, + 48: {cat: 0x25, setID: 0x20}, + 49: {cat: 0x22, setID: 0x21}, + 50: {cat: 0x23, setID: 0x17}, + 51: {cat: 0x24, setID: 0x18}, + 52: {cat: 0x25, setID: 0x20}, + 53: {cat: 0x21, setID: 0x22}, + 54: {cat: 0x22, setID: 0x1}, + 55: {cat: 0x23, setID: 0x2}, + 56: {cat: 0x24, setID: 0x23}, + 57: {cat: 0x25, setID: 0x24}, +} // Size: 140 bytes + +var ordinalIndex = []uint8{ // 20 elements + 0x00, 0x00, 0x02, 0x03, 0x04, 0x05, 0x07, 0x09, + 0x0d, 0x0e, 0x11, 0x14, 0x1a, 0x1d, 0x20, 0x26, + 0x2d, 0x31, 0x35, 0x3a, +} // Size: 44 bytes + +var ordinalLangToIndex = []uint8{ // 747 elements + // Entry 0 - 3F + 0x00, 0x0d, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x05, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 40 - 7F + 0x00, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 80 - BF + 0x00, 0x00, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + // Entry C0 - FF + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 100 - 13F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 140 - 17F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, + // Entry 180 - 1BF + 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x0c, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, + // Entry 200 - 23F + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 240 - 27F + 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00, + // Entry 280 - 2BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 2C0 - 2FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, +} // Size: 771 bytes + +var ordinalInclusionMasks = []uint64{ // 100 elements + // Entry 0 - 1F + 0x0000000400004009, 0x00000002120800d3, 0x0000000010a10195, 0x0000000842810581, + 0x0000000841030081, 0x0000001210010041, 0x0000001100011001, 0x0000000614010001, + 0x0000000614018001, 0x0000000600012001, 0x0000000200014001, 0x0000000010198031, + 0x0000000010610331, 0x0000000040010f01, 0x0000000040070001, 0x0000000010010001, + 0x0000000000011001, 0x000000001c010001, 0x000000001c010001, 0x0000000000012001, + 0x0000000020014001, 0x0000000010080011, 0x0000000010200111, 0x0000000040000501, + 0x0000000040020001, 0x0000000010000001, 0x0000000000001001, 0x0000000014000001, + 0x0000000014000001, 0x0000000000002001, 0x0000000000004001, 0x0000000010080011, + // Entry 20 - 3F + 0x0000000010200111, 0x0000000040000501, 0x0000000040020001, 0x0000000010000001, + 0x0000000000001001, 0x0000000014000001, 0x0000000014000001, 0x0000000000002001, + 0x0000000080014001, 0x0000000010080011, 0x0000000010200111, 0x0000000040000501, + 0x0000000040020001, 0x0000000010000001, 0x0000000000001001, 0x0000000014000001, + 0x0000000014000001, 0x0000000000002001, 0x0000000020004001, 0x0000000010080011, + 0x0000000010200111, 0x0000000040000501, 0x0000000040020001, 0x0000000010000001, + 0x0000000000001001, 0x0000000014000001, 0x0000000014000001, 0x0000000000002001, + 0x0000000080014001, 0x0000000010080011, 0x0000000010200111, 0x0000000040000501, + // Entry 40 - 5F + 0x0000000040020001, 0x0000000010000001, 0x0000000000001001, 0x0000000014000001, + 0x0000000014000001, 0x0000000000002001, 0x0000000020004001, 0x0000000010080011, + 0x0000000010200111, 0x0000000040000501, 0x0000000040020001, 0x0000000010000001, + 0x0000000000001001, 0x0000000014000001, 0x0000000014000001, 0x0000000000002001, + 0x000000002001c001, 0x0000000010080011, 0x0000000010200111, 0x0000000040000501, + 0x0000000040020001, 0x0000000010000001, 0x0000000000001001, 0x0000000014000001, + 0x0000000014000001, 0x0000000000002001, 0x0000000080004001, 0x0000000010080011, + 0x0000000010200111, 0x0000000040000501, 0x0000000040020001, 0x0000000010000001, + // Entry 60 - 7F + 0x0000000000001001, 0x0000000014000001, 0x0000000014000001, 0x0000000000002001, +} // Size: 824 bytes + +// Slots used for ordinal: 3A of 0xFF rules; 14 of 0xFF indexes; 37 of 64 sets + +var cardinalRules = []pluralCheck{ // 169 elements + 0: {cat: 0x2, setID: 0x3}, + 1: {cat: 0x22, setID: 0x1}, + 2: {cat: 0x2, setID: 0x4}, + 3: {cat: 0x7, setID: 0x1}, + 4: {cat: 0x62, setID: 0x3}, + 5: {cat: 0x22, setID: 0x4}, + 6: {cat: 0x7, setID: 0x3}, + 7: {cat: 0x42, setID: 0x1}, + 8: {cat: 0x22, setID: 0x4}, + 9: {cat: 0x22, setID: 0x4}, + 10: {cat: 0x22, setID: 0x5}, + 11: {cat: 0x27, setID: 0x6}, + 12: {cat: 0x32, setID: 0x2}, + 13: {cat: 0x22, setID: 0x1}, + 14: {cat: 0x27, setID: 0x1}, + 15: {cat: 0x62, setID: 0x3}, + 16: {cat: 0x22, setID: 0x1}, + 17: {cat: 0x7, setID: 0x4}, + 18: {cat: 0x92, setID: 0x3}, + 19: {cat: 0xf, setID: 0x7}, + 20: {cat: 0x1f, setID: 0x8}, + 21: {cat: 0x82, setID: 0x3}, + 22: {cat: 0x92, setID: 0x3}, + 23: {cat: 0xf, setID: 0x7}, + 24: {cat: 0x62, setID: 0x3}, + 25: {cat: 0x4a, setID: 0x7}, + 26: {cat: 0x7, setID: 0x9}, + 27: {cat: 0x62, setID: 0x3}, + 28: {cat: 0x1f, setID: 0xa}, + 29: {cat: 0x62, setID: 0x3}, + 30: {cat: 0x5f, setID: 0xa}, + 31: {cat: 0x72, setID: 0x3}, + 32: {cat: 0x29, setID: 0xb}, + 33: {cat: 0x29, setID: 0xc}, + 34: {cat: 0x4f, setID: 0xc}, + 35: {cat: 0x61, setID: 0x2}, + 36: {cat: 0x2f, setID: 0x7}, + 37: {cat: 0x3a, setID: 0x8}, + 38: {cat: 0x4f, setID: 0x7}, + 39: {cat: 0x5f, setID: 0x8}, + 40: {cat: 0x62, setID: 0x2}, + 41: {cat: 0x4f, setID: 0x7}, + 42: {cat: 0x72, setID: 0x2}, + 43: {cat: 0x21, setID: 0x3}, + 44: {cat: 0x7, setID: 0x4}, + 45: {cat: 0x32, setID: 0x3}, + 46: {cat: 0x21, setID: 0x3}, + 47: {cat: 0x22, setID: 0x1}, + 48: {cat: 0x22, setID: 0x1}, + 49: {cat: 0x23, setID: 0x2}, + 50: {cat: 0x2, setID: 0x3}, + 51: {cat: 0x22, setID: 0x1}, + 52: {cat: 0x24, setID: 0xd}, + 53: {cat: 0x7, setID: 0x1}, + 54: {cat: 0x62, setID: 0x3}, + 55: {cat: 0x74, setID: 0x3}, + 56: {cat: 0x24, setID: 0x3}, + 57: {cat: 0x2f, setID: 0xe}, + 58: {cat: 0x34, setID: 0x1}, + 59: {cat: 0xf, setID: 0x7}, + 60: {cat: 0x1f, setID: 0x8}, + 61: {cat: 0x62, setID: 0x3}, + 62: {cat: 0x4f, setID: 0x7}, + 63: {cat: 0x5a, setID: 0x8}, + 64: {cat: 0xf, setID: 0xf}, + 65: {cat: 0x1f, setID: 0x10}, + 66: {cat: 0x64, setID: 0x3}, + 67: {cat: 0x4f, setID: 0xf}, + 68: {cat: 0x5c, setID: 0x10}, + 69: {cat: 0x22, setID: 0x11}, + 70: {cat: 0x23, setID: 0x12}, + 71: {cat: 0x24, setID: 0x13}, + 72: {cat: 0xf, setID: 0x1}, + 73: {cat: 0x62, setID: 0x3}, + 74: {cat: 0xf, setID: 0x2}, + 75: {cat: 0x63, setID: 0x3}, + 76: {cat: 0xf, setID: 0x14}, + 77: {cat: 0x64, setID: 0x3}, + 78: {cat: 0x74, setID: 0x3}, + 79: {cat: 0xf, setID: 0x1}, + 80: {cat: 0x62, setID: 0x3}, + 81: {cat: 0x4a, setID: 0x1}, + 82: {cat: 0xf, setID: 0x2}, + 83: {cat: 0x63, setID: 0x3}, + 84: {cat: 0x4b, setID: 0x2}, + 85: {cat: 0xf, setID: 0x14}, + 86: {cat: 0x64, setID: 0x3}, + 87: {cat: 0x4c, setID: 0x14}, + 88: {cat: 0x7, setID: 0x1}, + 89: {cat: 0x62, setID: 0x3}, + 90: {cat: 0x7, setID: 0x2}, + 91: {cat: 0x63, setID: 0x3}, + 92: {cat: 0x2f, setID: 0xb}, + 93: {cat: 0x37, setID: 0x15}, + 94: {cat: 0x65, setID: 0x3}, + 95: {cat: 0x7, setID: 0x1}, + 96: {cat: 0x62, setID: 0x3}, + 97: {cat: 0x7, setID: 0x16}, + 98: {cat: 0x64, setID: 0x3}, + 99: {cat: 0x75, setID: 0x3}, + 100: {cat: 0x7, setID: 0x1}, + 101: {cat: 0x62, setID: 0x3}, + 102: {cat: 0xf, setID: 0xf}, + 103: {cat: 0x1f, setID: 0x10}, + 104: {cat: 0x64, setID: 0x3}, + 105: {cat: 0xf, setID: 0x17}, + 106: {cat: 0x17, setID: 0x1}, + 107: {cat: 0x65, setID: 0x3}, + 108: {cat: 0xf, setID: 0x18}, + 109: {cat: 0x65, setID: 0x3}, + 110: {cat: 0xf, setID: 0x10}, + 111: {cat: 0x65, setID: 0x3}, + 112: {cat: 0x2f, setID: 0x7}, + 113: {cat: 0x3a, setID: 0x8}, + 114: {cat: 0x2f, setID: 0xf}, + 115: {cat: 0x3c, setID: 0x10}, + 116: {cat: 0x2d, setID: 0xb}, + 117: {cat: 0x2d, setID: 0x18}, + 118: {cat: 0x2d, setID: 0x19}, + 119: {cat: 0x2f, setID: 0x7}, + 120: {cat: 0x3a, setID: 0xc}, + 121: {cat: 0x2f, setID: 0x1a}, + 122: {cat: 0x3c, setID: 0xc}, + 123: {cat: 0x55, setID: 0x3}, + 124: {cat: 0x22, setID: 0x1}, + 125: {cat: 0x24, setID: 0x3}, + 126: {cat: 0x2c, setID: 0xd}, + 127: {cat: 0x2d, setID: 0xc}, + 128: {cat: 0xf, setID: 0x7}, + 129: {cat: 0x1f, setID: 0x8}, + 130: {cat: 0x62, setID: 0x3}, + 131: {cat: 0xf, setID: 0xf}, + 132: {cat: 0x1f, setID: 0x10}, + 133: {cat: 0x64, setID: 0x3}, + 134: {cat: 0xf, setID: 0xb}, + 135: {cat: 0x65, setID: 0x3}, + 136: {cat: 0xf, setID: 0x18}, + 137: {cat: 0x65, setID: 0x3}, + 138: {cat: 0xf, setID: 0x19}, + 139: {cat: 0x65, setID: 0x3}, + 140: {cat: 0x2f, setID: 0x7}, + 141: {cat: 0x3a, setID: 0x1b}, + 142: {cat: 0x2f, setID: 0x1c}, + 143: {cat: 0x3b, setID: 0x1d}, + 144: {cat: 0x2f, setID: 0x1e}, + 145: {cat: 0x3c, setID: 0x1f}, + 146: {cat: 0x37, setID: 0x3}, + 147: {cat: 0xa5, setID: 0x0}, + 148: {cat: 0x22, setID: 0x1}, + 149: {cat: 0x23, setID: 0x2}, + 150: {cat: 0x24, setID: 0x20}, + 151: {cat: 0x25, setID: 0x21}, + 152: {cat: 0xf, setID: 0x7}, + 153: {cat: 0x62, setID: 0x3}, + 154: {cat: 0xf, setID: 0x1c}, + 155: {cat: 0x63, setID: 0x3}, + 156: {cat: 0xf, setID: 0x22}, + 157: {cat: 0x64, setID: 0x3}, + 158: {cat: 0x75, setID: 0x3}, + 159: {cat: 0x21, setID: 0x3}, + 160: {cat: 0x22, setID: 0x1}, + 161: {cat: 0x23, setID: 0x2}, + 162: {cat: 0x2c, setID: 0x23}, + 163: {cat: 0x2d, setID: 0x5}, + 164: {cat: 0x21, setID: 0x3}, + 165: {cat: 0x22, setID: 0x1}, + 166: {cat: 0x23, setID: 0x2}, + 167: {cat: 0x24, setID: 0x24}, + 168: {cat: 0x25, setID: 0x25}, +} // Size: 362 bytes + +var cardinalIndex = []uint8{ // 37 elements + 0x00, 0x00, 0x02, 0x03, 0x05, 0x08, 0x09, 0x0b, + 0x0d, 0x0e, 0x10, 0x13, 0x17, 0x1a, 0x20, 0x2b, + 0x2e, 0x30, 0x32, 0x35, 0x3b, 0x45, 0x48, 0x4f, + 0x58, 0x5f, 0x64, 0x70, 0x77, 0x7c, 0x80, 0x8c, + 0x94, 0x98, 0x9f, 0xa4, 0xa9, +} // Size: 61 bytes + +var cardinalLangToIndex = []uint8{ // 747 elements + // Entry 0 - 3F + 0x00, 0x03, 0x03, 0x08, 0x08, 0x08, 0x00, 0x00, + 0x05, 0x05, 0x01, 0x01, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x01, 0x01, 0x08, 0x08, 0x03, 0x03, 0x08, + 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x1b, 0x1b, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x05, 0x00, + // Entry 40 - 7F + 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1f, + 0x1f, 0x08, 0x08, 0x14, 0x00, 0x00, 0x14, 0x14, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x19, 0x19, + 0x00, 0x00, 0x23, 0x23, 0x0a, 0x0a, 0x0a, 0x00, + 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x17, 0x17, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, + // Entry 80 - BF + 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry C0 - FF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + // Entry 100 - 13F + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x03, 0x03, 0x08, 0x08, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x03, 0x03, 0x0d, 0x0d, 0x08, 0x08, 0x08, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 140 - 17F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x08, 0x08, + 0x03, 0x03, 0x20, 0x20, 0x15, 0x15, 0x03, 0x03, + 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x05, 0x00, + 0x00, 0x21, 0x21, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x18, 0x18, 0x01, 0x01, 0x14, 0x14, 0x14, + 0x17, 0x17, 0x08, 0x08, 0x02, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0b, 0x0b, 0x03, 0x03, + // Entry 180 - 1BF + 0x03, 0x03, 0x11, 0x00, 0x00, 0x00, 0x08, 0x08, + 0x08, 0x08, 0x00, 0x08, 0x08, 0x02, 0x02, 0x08, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x00, 0x10, 0x10, 0x08, 0x11, 0x11, 0x08, + 0x08, 0x0f, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x08, 0x08, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, + 0x08, 0x08, 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x08, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, + 0x11, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + // Entry 200 - 23F + 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x08, 0x05, 0x00, 0x00, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x05, 0x00, 0x00, 0x05, 0x05, 0x08, 0x1a, 0x1a, + 0x0e, 0x0e, 0x08, 0x08, 0x07, 0x09, 0x07, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, + // Entry 240 - 27F + 0x00, 0x13, 0x13, 0x13, 0x08, 0x08, 0x1e, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, + 0x11, 0x11, 0x11, 0x11, 0x08, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x12, 0x00, 0x00, 0x12, 0x12, 0x04, + 0x04, 0x19, 0x19, 0x16, 0x16, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x14, 0x14, + // Entry 280 - 2BF + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x00, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, + 0x08, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x06, 0x06, 0x08, 0x08, 0x1e, 0x1e, 0x03, + 0x03, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, + // Entry 2C0 - 2FF + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x08, 0x08, 0x08, 0x08, 0x05, 0x08, 0x08, + 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, +} // Size: 771 bytes + +var cardinalInclusionMasks = []uint64{ // 100 elements + // Entry 0 - 1F + 0x0000000400a00859, 0x0000000000a242d3, 0x000000001464e245, 0x000000194478e201, + 0x000000094478e401, 0x0000000905286001, 0x0000002905286401, 0x0000000a05286001, + 0x0000000a05286001, 0x0000000a45286401, 0x0000000a80a86801, 0x000000008a8251a1, + 0x00000000b605d021, 0x00000000c609d021, 0x00000000c609d421, 0x0000000085085021, + 0x0000000085085421, 0x0000000085085021, 0x0000000085085021, 0x00000000c5085421, + 0x0000000400800821, 0x00000000008000a1, 0x0000000014008021, 0x0000000044008021, + 0x0000000044008421, 0x0000000005000021, 0x0000000005000421, 0x0000000005000021, + 0x0000000005000021, 0x0000000045000421, 0x0000000000800821, 0x00000000008000a1, + // Entry 20 - 3F + 0x0000000014008021, 0x0000000044008021, 0x0000000044008421, 0x0000000005000021, + 0x0000000005000421, 0x0000000005000021, 0x0000000005000021, 0x0000000045000421, + 0x0000000400800821, 0x00000000008000a1, 0x0000000014008021, 0x0000000044008021, + 0x0000000044008421, 0x0000000005000021, 0x0000000005000421, 0x0000000005000021, + 0x0000000005000021, 0x0000000045000421, 0x0000000000800821, 0x00000000008000a1, + 0x0000000014008021, 0x0000000044008021, 0x0000000044008421, 0x0000000005000021, + 0x0000000005000421, 0x0000000005000021, 0x0000000005000021, 0x0000000045000421, + 0x0000000400800821, 0x00000000008000a1, 0x0000000014008021, 0x0000000044008021, + // Entry 40 - 5F + 0x0000000044008421, 0x0000000005000021, 0x0000000005000421, 0x0000000005000021, + 0x0000000005000021, 0x0000000045000421, 0x0000000080800821, 0x00000000888000a1, + 0x00000000b4008021, 0x00000000c4008021, 0x00000000c4008421, 0x0000000085000021, + 0x0000000085000421, 0x0000000085000021, 0x0000000085000021, 0x00000000c5000421, + 0x0000000400800821, 0x00000000008000a1, 0x0000000014008021, 0x0000000044008021, + 0x0000000044008421, 0x0000000005000021, 0x0000000005000421, 0x0000000005000021, + 0x0000000005000021, 0x0000000045000421, 0x0000000080800821, 0x00000000888000a1, + 0x00000000b4008021, 0x00000000c4008021, 0x00000000c4008421, 0x0000000085000021, + // Entry 60 - 7F + 0x0000000085000421, 0x0000000085000021, 0x0000000085000021, 0x00000000c5000421, +} // Size: 824 bytes + +// Slots used for cardinal: A9 of 0xFF rules; 25 of 0xFF indexes; 38 of 64 sets + +var tagToDecimal = []uint8{ // 747 elements + // Entry 0 - 3F + 0x01, 0x01, 0x08, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 40 - 7F + 0x01, 0x04, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 80 - BF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry C0 - FF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 100 - 13F + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 140 - 17F + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x0d, 0x0d, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 180 - 1BF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x04, 0x04, 0x04, 0x04, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 1C0 - 1FF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, + 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 200 - 23F + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, + 0x04, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 240 - 27F + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 280 - 2BF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, + 0x04, 0x01, 0x01, 0x04, 0x04, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + // Entry 2C0 - 2FF + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, +} // Size: 771 bytes + +var tagToScientific = []uint8{ // 747 elements + // Entry 0 - 3F + 0x02, 0x02, 0x09, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 40 - 7F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 80 - BF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry C0 - FF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 100 - 13F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 140 - 17F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x0c, 0x0c, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x0c, 0x0c, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 180 - 1BF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 1C0 - 1FF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0e, 0x0e, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x0c, 0x0c, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 200 - 23F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x0c, 0x02, 0x02, 0x0c, 0x0c, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 240 - 27F + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0e, + 0x0e, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 280 - 2BF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + // Entry 2C0 - 2FF + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x02, 0x02, 0x02, +} // Size: 771 bytes + +var tagToPercent = []uint8{ // 747 elements + // Entry 0 - 3F + 0x03, 0x03, 0x0a, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x05, 0x05, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry 40 - 7F + 0x03, 0x05, 0x05, 0x05, 0x03, 0x03, 0x03, 0x06, + 0x06, 0x05, 0x05, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, + 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x03, + 0x03, 0x06, 0x06, 0x06, 0x03, 0x06, 0x03, 0x06, + 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, + 0x03, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry 80 - BF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x06, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x06, 0x03, 0x06, 0x03, 0x03, 0x06, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x05, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry C0 - FF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x06, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x03, 0x06, 0x06, 0x03, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, + // Entry 100 - 13F + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x03, 0x03, 0x0b, 0x0b, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x06, 0x06, 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 140 - 17F + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x06, 0x06, 0x06, 0x06, 0x05, 0x05, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x05, 0x05, 0x03, 0x03, 0x03, + 0x06, 0x06, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry 180 - 1BF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, + 0x06, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, + 0x03, 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, + // Entry 1C0 - 1FF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x06, 0x06, 0x06, 0x03, 0x03, 0x03, 0x03, + // Entry 200 - 23F + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x05, 0x05, 0x03, 0x03, 0x03, + 0x05, 0x03, 0x03, 0x05, 0x05, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 240 - 27F + 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x06, 0x06, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry 280 - 2BF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, + 0x05, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, + 0x03, 0x03, 0x03, 0x0f, 0x0f, 0x0f, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x05, + 0x05, 0x05, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + // Entry 2C0 - 2FF + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, +} // Size: 771 bytes + +var formats = []Format{Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x0, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x0, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x9, + GroupingSize: [2]uint8{0x3, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x3, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x3, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x0, + MaxIntegerDigits: 0x1, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x1}, + Format{Affix: "\x00\x01%", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x6, + GroupingSize: [2]uint8{0x3, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0xc, + GroupingSize: [2]uint8{0x3, + 0x2}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x3, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x00\x01%", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x9, + GroupingSize: [2]uint8{0x3, + 0x2}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x00\x03\u00a0%", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x7, + GroupingSize: [2]uint8{0x3, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x00\x03\u00a0%", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0xa, + GroupingSize: [2]uint8{0x3, + 0x2}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x9, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x6, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0xd, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x2, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x6, + MaxFractionDigits: 0x6, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x3}, + Format{Affix: "\x00\x01%", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x3, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x03%\u00a0\x00", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x7, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x01[\x01]", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x5, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x0, + MaxIntegerDigits: 0x1, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x1}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x6, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x3, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x0, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x1, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x0, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}, + Format{Affix: "\x01%\x00", + Offset: 0x0, + NegOffset: 0x0, + Multiplier: 0x64, + RoundIncrement: 0x0, + PadRune: 0, + FormatWidth: 0x6, + GroupingSize: [2]uint8{0x0, + 0x0}, + Flags: 0x0, + MinIntegerDigits: 0x1, + MaxIntegerDigits: 0x0, + MinFractionDigits: 0x0, + MaxFractionDigits: 0x0, + MinSignificantDigits: 0x0, + MaxSignificantDigits: 0x0, + MinExponentDigits: 0x0}} + +// Total table size 10707 bytes (10KiB); checksum: D6653B23 diff --git a/vendor/golang.org/x/text/internal/number/tables_test.go b/vendor/golang.org/x/text/internal/number/tables_test.go new file mode 100644 index 00000000..054e23d2 --- /dev/null +++ b/vendor/golang.org/x/text/internal/number/tables_test.go @@ -0,0 +1,125 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package number + +import ( + "flag" + "log" + "reflect" + "testing" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/testtext" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +var draft = flag.String("draft", + "contributed", + `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) + +func TestNumberSystems(t *testing.T) { + testtext.SkipIfNotLong(t) + + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + d.SetDirFilter("supplemental") + d.SetSectionFilter("numberingSystem") + data, err := d.DecodeZip(r) + if err != nil { + t.Fatalf("DecodeZip: %v", err) + } + + for _, ns := range data.Supplemental().NumberingSystems.NumberingSystem { + n := systemMap[ns.Id] + if int(n) >= len(numSysData) { + continue + } + info := InfoFromLangID(0, ns.Id) + val := '0' + for _, rWant := range ns.Digits { + if rGot := info.Digit(val); rGot != rWant { + t.Errorf("%s:%d: got %U; want %U", ns.Id, val, rGot, rWant) + } + val++ + } + } +} + +func TestSymbols(t *testing.T) { + testtext.SkipIfNotLong(t) + + draft, err := cldr.ParseDraft(*draft) + if err != nil { + log.Fatalf("invalid draft level: %v", err) + } + + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + d.SetDirFilter("main") + d.SetSectionFilter("numbers") + data, err := d.DecodeZip(r) + if err != nil { + t.Fatalf("DecodeZip: %v", err) + } + + for _, lang := range data.Locales() { + ldml := data.RawLDML(lang) + if ldml.Numbers == nil { + continue + } + langIndex, ok := language.CompactIndex(language.MustParse(lang)) + if !ok { + t.Fatalf("No compact index for language %s", lang) + } + + syms := cldr.MakeSlice(&ldml.Numbers.Symbols) + syms.SelectDraft(draft) + + for _, sym := range ldml.Numbers.Symbols { + if sym.NumberSystem == "" { + continue + } + testCases := []struct { + name string + st SymbolType + x interface{} + }{ + {"Decimal", SymDecimal, sym.Decimal}, + {"Group", SymGroup, sym.Group}, + {"List", SymList, sym.List}, + {"PercentSign", SymPercentSign, sym.PercentSign}, + {"PlusSign", SymPlusSign, sym.PlusSign}, + {"MinusSign", SymMinusSign, sym.MinusSign}, + {"Exponential", SymExponential, sym.Exponential}, + {"SuperscriptingExponent", SymSuperscriptingExponent, sym.SuperscriptingExponent}, + {"PerMille", SymPerMille, sym.PerMille}, + {"Infinity", SymInfinity, sym.Infinity}, + {"NaN", SymNan, sym.Nan}, + {"TimeSeparator", SymTimeSeparator, sym.TimeSeparator}, + } + info := InfoFromLangID(langIndex, sym.NumberSystem) + for _, tc := range testCases { + // Extract the wanted value. + v := reflect.ValueOf(tc.x) + if v.Len() == 0 { + return + } + if v.Len() > 1 { + t.Fatalf("Multiple values of %q within single symbol not supported.", tc.name) + } + want := v.Index(0).MethodByName("Data").Call(nil)[0].String() + got := info.Symbol(tc.st) + if got != want { + t.Errorf("%s:%s:%s: got %q; want %q", lang, sym.NumberSystem, tc.name, got, want) + } + } + } + } +} diff --git a/vendor/golang.org/x/text/internal/stringset/set.go b/vendor/golang.org/x/text/internal/stringset/set.go new file mode 100644 index 00000000..bb2fffbc --- /dev/null +++ b/vendor/golang.org/x/text/internal/stringset/set.go @@ -0,0 +1,86 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package stringset provides a way to represent a collection of strings +// compactly. +package stringset + +import "sort" + +// A Set holds a collection of strings that can be looked up by an index number. +type Set struct { + // These fields are exported to allow for code generation. + + Data string + Index []uint16 +} + +// Elem returns the string with index i. It panics if i is out of range. +func (s *Set) Elem(i int) string { + return s.Data[s.Index[i]:s.Index[i+1]] +} + +// Len returns the number of strings in the set. +func (s *Set) Len() int { + return len(s.Index) - 1 +} + +// Search returns the index of the given string or -1 if it is not in the set. +// The Set must have been created with strings in sorted order. +func Search(s *Set, str string) int { + // TODO: optimize this if it gets used a lot. + n := len(s.Index) - 1 + p := sort.Search(n, func(i int) bool { + return s.Elem(i) >= str + }) + if p == n || str != s.Elem(p) { + return -1 + } + return p +} + +// A Builder constructs Sets. +type Builder struct { + set Set + index map[string]int +} + +// NewBuilder returns a new and initialized Builder. +func NewBuilder() *Builder { + return &Builder{ + set: Set{ + Index: []uint16{0}, + }, + index: map[string]int{}, + } +} + +// Set creates the set created so far. +func (b *Builder) Set() Set { + return b.set +} + +// Index returns the index for the given string, which must have been added +// before. +func (b *Builder) Index(s string) int { + return b.index[s] +} + +// Add adds a string to the index. Strings that are added by a single Add will +// be stored together, unless they match an existing string. +func (b *Builder) Add(ss ...string) { + // First check if the string already exists. + for _, s := range ss { + if _, ok := b.index[s]; ok { + continue + } + b.index[s] = len(b.set.Index) - 1 + b.set.Data += s + x := len(b.set.Data) + if x > 0xFFFF { + panic("Index too > 0xFFFF") + } + b.set.Index = append(b.set.Index, uint16(x)) + } +} diff --git a/vendor/golang.org/x/text/internal/stringset/set_test.go b/vendor/golang.org/x/text/internal/stringset/set_test.go new file mode 100644 index 00000000..97b9e58b --- /dev/null +++ b/vendor/golang.org/x/text/internal/stringset/set_test.go @@ -0,0 +1,53 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package stringset + +import "testing" + +func TestStringSet(t *testing.T) { + testCases := [][]string{ + {""}, + {"∫"}, + {"a", "b", "c"}, + {"", "a", "bb", "ccc"}, + {" ", "aaa", "bb", "c"}, + } + test := func(tc int, b *Builder) { + set := b.Set() + if set.Len() != len(testCases[tc]) { + t.Errorf("%d:Len() = %d; want %d", tc, set.Len(), len(testCases[tc])) + } + for i, s := range testCases[tc] { + if x := b.Index(s); x != i { + t.Errorf("%d:Index(%q) = %d; want %d", tc, s, x, i) + } + if p := Search(&set, s); p != i { + t.Errorf("%d:Search(%q) = %d; want %d", tc, s, p, i) + } + if set.Elem(i) != s { + t.Errorf("%d:Elem(%d) = %s; want %s", tc, i, set.Elem(i), s) + } + } + if p := Search(&set, "apple"); p != -1 { + t.Errorf(`%d:Search("apple") = %d; want -1`, tc, p) + } + } + for i, tc := range testCases { + b := NewBuilder() + for _, s := range tc { + b.Add(s) + } + b.Add(tc...) + test(i, b) + } + for i, tc := range testCases { + b := NewBuilder() + b.Add(tc...) + for _, s := range tc { + b.Add(s) + } + test(i, b) + } +} diff --git a/vendor/golang.org/x/text/internal/tables.go b/vendor/golang.org/x/text/internal/tables.go new file mode 100644 index 00000000..4f9d96f8 --- /dev/null +++ b/vendor/golang.org/x/text/internal/tables.go @@ -0,0 +1,116 @@ +// This file was generated by go generate; DO NOT EDIT + +package internal + +// Parent maps a compact index of a tag to the compact index of the parent of +// this tag. +var Parent = []uint16{ // 747 elements + // Entry 0 - 3F + 0x0000, 0x0052, 0x00e3, 0x0000, 0x0003, 0x0003, 0x0000, 0x0006, + 0x0000, 0x0008, 0x0000, 0x000a, 0x0000, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x0000, 0x0029, 0x0000, 0x002b, 0x0000, 0x002d, 0x0000, + 0x0000, 0x0030, 0x002f, 0x002f, 0x0000, 0x0034, 0x0000, 0x0036, + 0x0000, 0x0038, 0x0000, 0x003a, 0x0000, 0x003c, 0x0000, 0x0000, + // Entry 40 - 7F + 0x003f, 0x0000, 0x0041, 0x0041, 0x0000, 0x0044, 0x0044, 0x0000, + 0x0047, 0x0000, 0x0049, 0x0000, 0x0000, 0x004c, 0x004b, 0x004b, + 0x0000, 0x0050, 0x0050, 0x0050, 0x0050, 0x0000, 0x0055, 0x0000, + 0x0057, 0x0000, 0x0059, 0x0000, 0x005b, 0x005b, 0x0000, 0x005e, + 0x0000, 0x0060, 0x0000, 0x0062, 0x0000, 0x0064, 0x0064, 0x0000, + 0x0067, 0x0000, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0000, 0x0070, 0x0000, 0x0072, 0x0000, 0x0074, 0x0000, 0x0000, + 0x0077, 0x0000, 0x0079, 0x0000, 0x007b, 0x0000, 0x007d, 0x007d, + // Entry 80 - BF + 0x0000, 0x0080, 0x0080, 0x0000, 0x0083, 0x0084, 0x0084, 0x0084, + 0x0083, 0x0085, 0x0084, 0x0084, 0x0084, 0x0083, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0085, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0085, 0x0084, 0x0085, 0x0084, 0x0084, 0x0085, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0083, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0083, 0x0084, 0x0083, 0x0084, 0x0084, 0x0084, + // Entry C0 - FF + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0085, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0083, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0085, 0x0084, 0x0084, 0x0085, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0083, 0x0083, 0x0084, 0x0084, 0x0083, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0000, 0x00ec, 0x0000, 0x00ee, + 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, + 0x00ee, 0x00ef, 0x00ee, 0x00ee, 0x00ef, 0x00ef, 0x00ee, 0x00ef, + // Entry 100 - 13F + 0x00ef, 0x00ef, 0x00ef, 0x00ee, 0x00ef, 0x00ef, 0x00ef, 0x00ef, + 0x00ef, 0x00ef, 0x0000, 0x010a, 0x0000, 0x010c, 0x0000, 0x010e, + 0x0000, 0x0110, 0x0110, 0x0000, 0x0113, 0x0113, 0x0113, 0x0113, + 0x0000, 0x0118, 0x0000, 0x011a, 0x0000, 0x011c, 0x011c, 0x0000, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, + // Entry 140 - 17F + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x0000, 0x014e, + 0x0000, 0x0150, 0x0000, 0x0152, 0x0000, 0x0154, 0x0000, 0x0156, + 0x0000, 0x0158, 0x0158, 0x0158, 0x0000, 0x015c, 0x0000, 0x0000, + 0x015f, 0x0000, 0x0161, 0x0000, 0x0163, 0x0163, 0x0163, 0x0000, + 0x0167, 0x0000, 0x0169, 0x0000, 0x016b, 0x0000, 0x016d, 0x016d, + 0x0000, 0x0170, 0x0000, 0x0172, 0x0000, 0x0174, 0x0000, 0x0176, + 0x0000, 0x0178, 0x0000, 0x017a, 0x0000, 0x017c, 0x0000, 0x017e, + // Entry 180 - 1BF + 0x017e, 0x017e, 0x0000, 0x0000, 0x0183, 0x0000, 0x0000, 0x0186, + 0x0000, 0x0188, 0x0000, 0x0000, 0x018b, 0x0000, 0x018d, 0x0000, + 0x0000, 0x0190, 0x0000, 0x0000, 0x0193, 0x0000, 0x0195, 0x0000, + 0x0197, 0x0000, 0x0199, 0x0000, 0x019b, 0x0000, 0x019d, 0x0000, + 0x019f, 0x0000, 0x01a1, 0x0000, 0x01a3, 0x0000, 0x01a5, 0x0000, + 0x01a7, 0x01a7, 0x0000, 0x01aa, 0x0000, 0x01ac, 0x0000, 0x01ae, + 0x0000, 0x01b0, 0x0000, 0x01b2, 0x0000, 0x0000, 0x01b5, 0x0000, + 0x01b7, 0x0000, 0x01b9, 0x0000, 0x01bb, 0x0000, 0x01bd, 0x0000, + // Entry 1C0 - 1FF + 0x01bf, 0x0000, 0x01c1, 0x01c1, 0x01c1, 0x01c1, 0x0000, 0x01c6, + 0x0000, 0x01c8, 0x01c8, 0x0000, 0x01cb, 0x0000, 0x01cd, 0x0000, + 0x01cf, 0x0000, 0x01d1, 0x0000, 0x01d3, 0x0000, 0x01d5, 0x01d5, + 0x0000, 0x01d8, 0x0000, 0x01da, 0x0000, 0x01dc, 0x0000, 0x01de, + 0x0000, 0x01e0, 0x0000, 0x01e2, 0x0000, 0x01e4, 0x0000, 0x01e6, + 0x0000, 0x01e8, 0x0000, 0x01ea, 0x01ea, 0x01ea, 0x0000, 0x01ee, + 0x0000, 0x01f0, 0x0000, 0x01f2, 0x0000, 0x01f4, 0x0000, 0x0000, + 0x01f7, 0x0000, 0x01f9, 0x01f9, 0x0000, 0x01fc, 0x0000, 0x01fe, + // Entry 200 - 23F + 0x01fe, 0x0000, 0x0201, 0x0201, 0x0201, 0x0201, 0x0201, 0x0201, + 0x0201, 0x0000, 0x0209, 0x0000, 0x020b, 0x0000, 0x020d, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0213, 0x0000, 0x0000, 0x0216, + 0x0000, 0x0218, 0x0218, 0x0000, 0x021b, 0x0000, 0x021d, 0x021d, + 0x0000, 0x0000, 0x0221, 0x0220, 0x0220, 0x0000, 0x0000, 0x0226, + 0x0000, 0x0228, 0x0000, 0x022a, 0x0000, 0x0236, 0x022c, 0x0236, + 0x0236, 0x0236, 0x0236, 0x0236, 0x0236, 0x0236, 0x022c, 0x0236, + 0x0236, 0x0000, 0x0239, 0x0239, 0x0239, 0x0000, 0x023d, 0x0000, + // Entry 240 - 27F + 0x023f, 0x0000, 0x0241, 0x0241, 0x0000, 0x0244, 0x0000, 0x0246, + 0x0246, 0x0246, 0x0246, 0x0246, 0x0246, 0x0000, 0x024d, 0x0000, + 0x024f, 0x0000, 0x0251, 0x0000, 0x0253, 0x0000, 0x0255, 0x0000, + 0x0000, 0x0258, 0x0258, 0x0258, 0x0000, 0x025c, 0x0000, 0x025e, + 0x0000, 0x0260, 0x0000, 0x0000, 0x0263, 0x0262, 0x0262, 0x0000, + 0x0267, 0x0000, 0x0269, 0x0000, 0x026b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0270, 0x0000, 0x0000, 0x0273, 0x0000, 0x0275, 0x0275, + 0x0275, 0x0275, 0x0000, 0x027a, 0x027a, 0x027a, 0x0000, 0x027e, + // Entry 280 - 2BF + 0x027e, 0x027e, 0x027e, 0x027e, 0x0000, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0000, 0x0000, 0x0000, 0x0000, 0x028c, 0x028c, 0x028c, + 0x0000, 0x0290, 0x0290, 0x0290, 0x0290, 0x0000, 0x0000, 0x0296, + 0x0296, 0x0296, 0x0296, 0x0000, 0x029b, 0x0000, 0x029d, 0x029d, + 0x0000, 0x02a0, 0x0000, 0x02a2, 0x02a2, 0x0000, 0x0000, 0x02a6, + 0x0000, 0x0000, 0x02a9, 0x0000, 0x02ab, 0x02ab, 0x0000, 0x0000, + 0x02af, 0x0000, 0x02b1, 0x0000, 0x02b3, 0x0000, 0x02b5, 0x0000, + 0x02b7, 0x02b7, 0x0000, 0x0000, 0x02bb, 0x0000, 0x02bd, 0x02ba, + // Entry 2C0 - 2FF + 0x02ba, 0x0000, 0x0000, 0x02c2, 0x02c1, 0x02c1, 0x0000, 0x0000, + 0x02c7, 0x0000, 0x02c9, 0x0000, 0x02cb, 0x0000, 0x0000, 0x02ce, + 0x0000, 0x0000, 0x0000, 0x02d2, 0x0000, 0x02d4, 0x0000, 0x02d6, + 0x0000, 0x02d8, 0x02d8, 0x0000, 0x02db, 0x0000, 0x02dd, 0x0000, + 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x0000, 0x02e5, 0x02e6, + 0x02e5, 0x0000, 0x02e9, +} // Size: 1518 bytes + +// Total table size 1518 bytes (1KiB); checksum: 836CD65C diff --git a/vendor/golang.org/x/text/internal/tag/tag.go b/vendor/golang.org/x/text/internal/tag/tag.go new file mode 100644 index 00000000..b5d34889 --- /dev/null +++ b/vendor/golang.org/x/text/internal/tag/tag.go @@ -0,0 +1,100 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package tag contains functionality handling tags and related data. +package tag // import "golang.org/x/text/internal/tag" + +import "sort" + +// An Index converts tags to a compact numeric value. +// +// All elements are of size 4. Tags may be up to 4 bytes long. Excess bytes can +// be used to store additional information about the tag. +type Index string + +// Elem returns the element data at the given index. +func (s Index) Elem(x int) string { + return string(s[x*4 : x*4+4]) +} + +// Index reports the index of the given key or -1 if it could not be found. +// Only the first len(key) bytes from the start of the 4-byte entries will be +// considered for the search and the first match in Index will be returned. +func (s Index) Index(key []byte) int { + n := len(key) + // search the index of the first entry with an equal or higher value than + // key in s. + index := sort.Search(len(s)/4, func(i int) bool { + return cmp(s[i*4:i*4+n], key) != -1 + }) + i := index * 4 + if cmp(s[i:i+len(key)], key) != 0 { + return -1 + } + return index +} + +// Next finds the next occurrence of key after index x, which must have been +// obtained from a call to Index using the same key. It returns x+1 or -1. +func (s Index) Next(key []byte, x int) int { + if x++; x*4 < len(s) && cmp(s[x*4:x*4+len(key)], key) == 0 { + return x + } + return -1 +} + +// cmp returns an integer comparing a and b lexicographically. +func cmp(a Index, b []byte) int { + n := len(a) + if len(b) < n { + n = len(b) + } + for i, c := range b[:n] { + switch { + case a[i] > c: + return 1 + case a[i] < c: + return -1 + } + } + switch { + case len(a) < len(b): + return -1 + case len(a) > len(b): + return 1 + } + return 0 +} + +// Compare returns an integer comparing a and b lexicographically. +func Compare(a string, b []byte) int { + return cmp(Index(a), b) +} + +// FixCase reformats b to the same pattern of cases as form. +// If returns false if string b is malformed. +func FixCase(form string, b []byte) bool { + if len(form) != len(b) { + return false + } + for i, c := range b { + if form[i] <= 'Z' { + if c >= 'a' { + c -= 'z' - 'Z' + } + if c < 'A' || 'Z' < c { + return false + } + } else { + if c <= 'Z' { + c += 'z' - 'Z' + } + if c < 'a' || 'z' < c { + return false + } + } + b[i] = c + } + return true +} diff --git a/vendor/golang.org/x/text/internal/tag/tag_test.go b/vendor/golang.org/x/text/internal/tag/tag_test.go new file mode 100644 index 00000000..da174a24 --- /dev/null +++ b/vendor/golang.org/x/text/internal/tag/tag_test.go @@ -0,0 +1,67 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tag + +import ( + "strings" + "testing" +) + +var strdata = []string{ + "aa ", + "aaa ", + "aaaa", + "aaab", + "aab ", + "ab ", + "ba ", + "xxxx", + "\xff\xff\xff\xff", +} + +var testCases = map[string]int{ + "a": 0, + "aa": 0, + "aaa": 1, + "aa ": 0, + "aaaa": 2, + "aaab": 3, + "b": 6, + "ba": 6, + " ": -1, + "aaax": -1, + "bbbb": -1, + "zzzz": -1, +} + +func TestIndex(t *testing.T) { + index := Index(strings.Join(strdata, "")) + for k, v := range testCases { + if i := index.Index([]byte(k)); i != v { + t.Errorf("%s: got %d; want %d", k, i, v) + } + } +} + +func TestFixCase(t *testing.T) { + tests := []string{ + "aaaa", "AbCD", "abcd", + "Zzzz", "AbCD", "Abcd", + "Zzzz", "AbC", "", + "XXX", "ab ", "", + "XXX", "usd", "USD", + "cmn", "AB ", "", + "gsw", "CMN", "cmn", + } + for tc := tests; len(tc) > 0; tc = tc[3:] { + b := []byte(tc[1]) + if !FixCase(tc[0], b) { + b = nil + } + if string(b) != tc[2] { + t.Errorf("FixCase(%q, %q) = %q; want %q", tc[0], tc[1], b, tc[2]) + } + } +} diff --git a/vendor/golang.org/x/text/internal/testtext/codesize.go b/vendor/golang.org/x/text/internal/testtext/codesize.go new file mode 100644 index 00000000..5fc5eaec --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/codesize.go @@ -0,0 +1,53 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package testtext + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "runtime" +) + +// CodeSize builds the given code sample and returns the binary size or en error +// if an error occurred. The code sample typically will look like this: +// package main +// import "golang.org/x/text/somepackage" +// func main() { +// somepackage.Func() // reference Func to cause it to be linked in. +// } +// See dict_test.go in the display package for an example. +func CodeSize(s string) (int, error) { + // Write the file. + tmpdir, err := ioutil.TempDir(os.TempDir(), "testtext") + if err != nil { + return 0, fmt.Errorf("testtext: failed to create tmpdir: %v", err) + } + defer os.RemoveAll(tmpdir) + filename := filepath.Join(tmpdir, "main.go") + if err := ioutil.WriteFile(filename, []byte(s), 0644); err != nil { + return 0, fmt.Errorf("testtext: failed to write main.go: %v", err) + } + + // Build the binary. + w := &bytes.Buffer{} + cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), "build", "-o", "main") + cmd.Dir = tmpdir + cmd.Stderr = w + cmd.Stdout = w + if err := cmd.Run(); err != nil { + return 0, fmt.Errorf("testtext: failed to execute command: %v\nmain.go:\n%vErrors:%s", err, s, w) + } + + // Determine the size. + fi, err := os.Stat(filepath.Join(tmpdir, "main")) + if err != nil { + return 0, fmt.Errorf("testtext: failed to get file info: %v", err) + } + return int(fi.Size()), nil +} diff --git a/vendor/golang.org/x/text/internal/testtext/flag.go b/vendor/golang.org/x/text/internal/testtext/flag.go new file mode 100644 index 00000000..1884f34d --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/flag.go @@ -0,0 +1,22 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package testtext + +import ( + "flag" + "testing" + + "golang.org/x/text/internal/gen" +) + +var long = flag.Bool("long", false, + "run tests that require fetching data online") + +// SkipIfNotLong returns whether long tests should be performed. +func SkipIfNotLong(t *testing.T) { + if !gen.IsLocal() && !*long { + t.Skip("skipping test to prevent downloading; to run use -long or use -local or UNICODE_DIR to specify a local source") + } +} diff --git a/vendor/golang.org/x/text/internal/testtext/gc.go b/vendor/golang.org/x/text/internal/testtext/gc.go new file mode 100644 index 00000000..a54e1bcb --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/gc.go @@ -0,0 +1,14 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + +package testtext + +import "testing" + +// AllocsPerRun wraps testing.AllocsPerRun. +func AllocsPerRun(runs int, f func()) (avg float64) { + return testing.AllocsPerRun(runs, f) +} diff --git a/vendor/golang.org/x/text/internal/testtext/gccgo.go b/vendor/golang.org/x/text/internal/testtext/gccgo.go new file mode 100644 index 00000000..30e98eff --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/gccgo.go @@ -0,0 +1,11 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build gccgo + +package testtext + +// AllocsPerRun always returns 0 for gccgo until gccgo implements escape +// analysis equal or better to that of gc. +func AllocsPerRun(runs int, f func()) (avg float64) { return 0 } diff --git a/vendor/golang.org/x/text/internal/testtext/go1_6.go b/vendor/golang.org/x/text/internal/testtext/go1_6.go new file mode 100644 index 00000000..7a147915 --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/go1_6.go @@ -0,0 +1,14 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.7 + +package testtext + +import "testing" + +func Run(t *testing.T, name string, fn func(t *testing.T)) { + t.Logf("Running %s...", name) + fn(t) +} diff --git a/vendor/golang.org/x/text/internal/testtext/go1_7.go b/vendor/golang.org/x/text/internal/testtext/go1_7.go new file mode 100644 index 00000000..ccb5f36f --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/go1_7.go @@ -0,0 +1,13 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.7 + +package testtext + +import "testing" + +func Run(t *testing.T, name string, fn func(t *testing.T)) { + t.Run(name, fn) +} diff --git a/vendor/golang.org/x/text/internal/testtext/text.go b/vendor/golang.org/x/text/internal/testtext/text.go new file mode 100644 index 00000000..ce40d7e7 --- /dev/null +++ b/vendor/golang.org/x/text/internal/testtext/text.go @@ -0,0 +1,105 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package testtext contains test data that is of common use to the text +// repository. +package testtext // import "golang.org/x/text/internal/testtext" + +const ( + + // ASCII is an ASCII string containing all letters in the English alphabet. + ASCII = "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + "The quick brown fox jumps over the lazy dog. " + + // Vietnamese is a snippet from http://creativecommons.org/licenses/by-sa/3.0/vn/ + Vietnamese = `Vá»›i các Ä‘iá»u kiện sau: Ghi nhận công của tác giả. +Nếu bạn sá»­ dụng, chuyển đổi, hoặc xây dá»±ng dá»± án từ +ná»™i dung được chia sẻ này, bạn phải áp dụng giấy phép này hoặc +má»™t giấy phép khác có các Ä‘iá»u khoản tÆ°Æ¡ng tá»± nhÆ° giấy phép này +cho dá»± án của bạn. Hiểu rằng: Miá»…n — Bất kỳ các Ä‘iá»u kiện nào +trên đây cÅ©ng có thể được miá»…n bá» nếu bạn được sá»± cho phép của +ngÆ°á»i sở hữu bản quyá»n. Phạm vi công chúng — Khi tác phẩm hoặc +bất kỳ chÆ°Æ¡ng nào của tác phẩm đã trong vùng dành cho công +chúng theo quy định của pháp luật thì tình trạng của nó không +bị ảnh hưởng bởi giấy phép trong bất kỳ trÆ°á»ng hợp nào.` + + // Russian is a snippet from http://creativecommons.org/licenses/by-sa/1.0/deed.ru + Russian = `При обÑзательном Ñоблюдении Ñледующих уÑловий: +Attribution — Ð’Ñ‹ должны атрибутировать произведение (указывать +автора и иÑточник) в порÑдке, предуÑмотренном автором или +лицензиаром (но только так, чтобы никоим образом не подразумевалоÑÑŒ, +что они поддерживают Ð²Ð°Ñ Ð¸Ð»Ð¸ иÑпользование вами данного произведениÑ). +Υπό τις ακόλουθες Ï€Ïοϋποθέσεις:` + + // Greek is a snippet from http://creativecommons.org/licenses/by-sa/3.0/gr/ + Greek = `ΑναφοÏά ΔημιουÏÎ³Î¿Ï â€” Θα Ï€Ïέπει να κάνετε την αναφοÏά στο έÏγο με τον +Ï„Ïόπο που έχει οÏιστεί από το δημιουÏγό ή το χοÏηγοÏντο την άδεια +(χωÏίς όμως να εννοείται με οποιονδήποτε Ï„Ïόπο ότι εγκÏίνουν εσάς ή +τη χÏήση του έÏγου από εσάς). ΠαÏόμοια Διανομή — Εάν αλλοιώσετε, +Ï„Ïοποποιήσετε ή δημιουÏγήσετε πεÏαιτέÏω βασισμένοι στο έÏγο θα +μποÏείτε να διανέμετε το έÏγο που θα Ï€ÏοκÏψει μόνο με την ίδια ή +παÏόμοια άδεια.` + + // Arabic is a snippet from http://creativecommons.org/licenses/by-sa/3.0/deed.ar + Arabic = `بموجب الشروط التالية نسب المصن٠— يجب عليك أن +تنسب العمل بالطريقة التي تحددها المؤل٠أو المرخص (ولكن ليس بأي حال من +الأحوال أن توحي وتقترح بتحول أو استخدامك للعمل). +المشاركة على قدم المساواة — إذا كنت يعدل ØŒ والتغيير ØŒ أو الاستÙادة +من هذا العمل ØŒ قد ينتج عن توزيع العمل إلا ÙÙŠ ظل تشابه او تطابق ÙÙ‰ واحد +لهذا الترخيص.` + + // Hebrew is a snippet from http://creativecommons.org/licenses/by-sa/1.0/il/ + Hebrew = `בכפוף לתנ××™× ×”×‘××™×: ייחוס — עליך לייחס ×ת היצירה (לתת קרדיט) ב×ופן +המצויין על-ידי היוצר ×ו מעניק הרישיון (×ך ×œ× ×‘×©×•× ×ופן המרמז על כך +×©×”× ×ª×•×ž×›×™× ×‘×š ×ו בשימוש שלך ביצירה). שיתוף ×–×”×” — ×× ×ª×—×œ×™×˜/×™ לשנות, +לעבד ×ו ליצור יצירה נגזרת בהסתמך על יצירה זו, תוכל/×™ להפיץ ×ת יצירתך +החדשה רק תחת ×ותו הרישיון ×ו רישיון דומה לרישיון ×–×”.` + + TwoByteUTF8 = Russian + Greek + Arabic + Hebrew + + // Thai is a snippet from http://creativecommons.org/licenses/by-sa/3.0/th/ + Thai = `ภายใต้เงื่อนไข ดังต่อไปนี้ : à¹à¸ªà¸”งที่มา — คุณต้องà¹à¸ªà¸”งที่ +มาของงานดังà¸à¸¥à¹ˆà¸²à¸§ ตามรูปà¹à¸šà¸šà¸—ี่ผู้สร้างสรรค์หรือผู้อนุà¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ +ไม่ใช่ในลัà¸à¸©à¸“ะที่ว่า พวà¸à¹€à¸‚าสนับสนุนคุณหรือสนับสนุนà¸à¸²à¸£à¸—ี่ +คุณนำงานไปใช้) อนุà¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™ — หาà¸à¸„ุณดัดà¹à¸›à¸¥à¸‡ เปลี่ยนรูป หรื +อต่อเติมงานนี้ คุณต้องใช้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—ี่เหมื +อนà¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—ี่ใช้à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—่านั้น` + + ThreeByteUTF8 = Thai + + // Japanese is a snippet from http://creativecommons.org/licenses/by-sa/2.0/jp/ + Japanese = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ +表示 — ã‚ãªãŸã¯åŽŸè‘—作者ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’表示ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 +継承 — ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“を改変ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€ +ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿ +頒布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚` + + // Chinese is a snippet from http://creativecommons.org/licenses/by-sa/2.5/cn/ + Chinese = `您å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€ +广播或通过信æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“ +对本作å“进行商业性使用 惟须éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š +ç½²å — 您必须按照作者或者许å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“进行署å。 +相åŒæ–¹å¼å…±äº« — 如果您改å˜ã€è½¬æ¢æœ¬ä½œå“或者以本作å“为基础进行创作, +您åªèƒ½é‡‡ç”¨ä¸Žæœ¬å议相åŒçš„许å¯åè®®å‘布基于本作å“的演绎作å“。` + + // Korean is a snippet from http://creativecommons.org/licenses/by-sa/2.0/kr/ + Korean = `다ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ 합니다: 저작ìží‘œì‹œ +— 저작ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ 방법으로 ì €ìž‘ë¬¼ì˜ +ì›ì €ìž‘ìžë¥¼ 표시하여야 합니다(그러나 ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜ +ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ 추천한다는 ì˜ë¯¸ë¡œ 표시해서는 안ë©ë‹ˆë‹¤). +ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ — ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ 만든 ì´ì°¨ì  저작물ì—는 본 +ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ 합니다.` + + CJK = Chinese + Japanese + Korean + + All = ASCII + Vietnamese + TwoByteUTF8 + ThreeByteUTF8 + CJK +) diff --git a/vendor/golang.org/x/text/internal/triegen/compact.go b/vendor/golang.org/x/text/internal/triegen/compact.go new file mode 100644 index 00000000..397b975c --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/compact.go @@ -0,0 +1,58 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package triegen + +// This file defines Compacter and its implementations. + +import "io" + +// A Compacter generates an alternative, more space-efficient way to store a +// trie value block. A trie value block holds all possible values for the last +// byte of a UTF-8 encoded rune. Excluding ASCII characters, a trie value block +// always has 64 values, as a UTF-8 encoding ends with a byte in [0x80, 0xC0). +type Compacter interface { + // Size returns whether the Compacter could encode the given block as well + // as its size in case it can. len(v) is always 64. + Size(v []uint64) (sz int, ok bool) + + // Store stores the block using the Compacter's compression method. + // It returns a handle with which the block can be retrieved. + // len(v) is always 64. + Store(v []uint64) uint32 + + // Print writes the data structures associated to the given store to w. + Print(w io.Writer) error + + // Handler returns the name of a function that gets called during trie + // lookup for blocks generated by the Compacter. The function should be of + // the form func (n uint32, b byte) uint64, where n is the index returned by + // the Compacter's Store method and b is the last byte of the UTF-8 + // encoding, where 0x80 <= b < 0xC0, for which to do the lookup in the + // block. + Handler() string +} + +// simpleCompacter is the default Compacter used by builder. It implements a +// normal trie block. +type simpleCompacter builder + +func (b *simpleCompacter) Size([]uint64) (sz int, ok bool) { + return blockSize * b.ValueSize, true +} + +func (b *simpleCompacter) Store(v []uint64) uint32 { + h := uint32(len(b.ValueBlocks) - blockOffset) + b.ValueBlocks = append(b.ValueBlocks, v) + return h +} + +func (b *simpleCompacter) Print(io.Writer) error { + // Structures are printed in print.go. + return nil +} + +func (b *simpleCompacter) Handler() string { + panic("Handler should be special-cased for this Compacter") +} diff --git a/vendor/golang.org/x/text/internal/triegen/data_test.go b/vendor/golang.org/x/text/internal/triegen/data_test.go new file mode 100644 index 00000000..91de547a --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/data_test.go @@ -0,0 +1,875 @@ +// This file is generated with "go test -tags generate". DO NOT EDIT! +// +build !generate + +package triegen_test + +// 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 *randTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return randValues[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 := randIndex[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 := randIndex[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 = randIndex[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 := randIndex[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 = randIndex[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 = randIndex[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 *randTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return randValues[c0] + } + i := randIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = randIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = randIndex[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 *randTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return randValues[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 := randIndex[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 := randIndex[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 = randIndex[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 := randIndex[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 = randIndex[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 = randIndex[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 *randTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return randValues[c0] + } + i := randIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = randIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = randIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// randTrie. Total size: 9280 bytes (9.06 KiB). Checksum: 6debd324a8debb8f. +type randTrie struct{} + +func newRandTrie(i int) *randTrie { + return &randTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *randTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(randValues[n<<6+uint32(b)]) + } +} + +// randValues: 56 blocks, 3584 entries, 3584 bytes +// The third block is the zero block. +var randValues = [3584]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc9: 0x0001, + // Block 0x4, offset 0x100 + 0x100: 0x0001, + // Block 0x5, offset 0x140 + 0x155: 0x0001, + // Block 0x6, offset 0x180 + 0x196: 0x0001, + // Block 0x7, offset 0x1c0 + 0x1ef: 0x0001, + // Block 0x8, offset 0x200 + 0x206: 0x0001, + // Block 0x9, offset 0x240 + 0x258: 0x0001, + // Block 0xa, offset 0x280 + 0x288: 0x0001, + // Block 0xb, offset 0x2c0 + 0x2f2: 0x0001, + // Block 0xc, offset 0x300 + 0x304: 0x0001, + // Block 0xd, offset 0x340 + 0x34b: 0x0001, + // Block 0xe, offset 0x380 + 0x3ba: 0x0001, + // Block 0xf, offset 0x3c0 + 0x3f5: 0x0001, + // Block 0x10, offset 0x400 + 0x41d: 0x0001, + // Block 0x11, offset 0x440 + 0x442: 0x0001, + // Block 0x12, offset 0x480 + 0x4bb: 0x0001, + // Block 0x13, offset 0x4c0 + 0x4e9: 0x0001, + // Block 0x14, offset 0x500 + 0x53e: 0x0001, + // Block 0x15, offset 0x540 + 0x55f: 0x0001, + // Block 0x16, offset 0x580 + 0x5b7: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5d9: 0x0001, + // Block 0x18, offset 0x600 + 0x60e: 0x0001, + // Block 0x19, offset 0x640 + 0x652: 0x0001, + // Block 0x1a, offset 0x680 + 0x68f: 0x0001, + // Block 0x1b, offset 0x6c0 + 0x6dc: 0x0001, + // Block 0x1c, offset 0x700 + 0x703: 0x0001, + // Block 0x1d, offset 0x740 + 0x741: 0x0001, + // Block 0x1e, offset 0x780 + 0x79b: 0x0001, + // Block 0x1f, offset 0x7c0 + 0x7f1: 0x0001, + // Block 0x20, offset 0x800 + 0x833: 0x0001, + // Block 0x21, offset 0x840 + 0x853: 0x0001, + // Block 0x22, offset 0x880 + 0x8a2: 0x0001, + // Block 0x23, offset 0x8c0 + 0x8f8: 0x0001, + // Block 0x24, offset 0x900 + 0x917: 0x0001, + // Block 0x25, offset 0x940 + 0x945: 0x0001, + // Block 0x26, offset 0x980 + 0x99e: 0x0001, + // Block 0x27, offset 0x9c0 + 0x9fd: 0x0001, + // Block 0x28, offset 0xa00 + 0xa0d: 0x0001, + // Block 0x29, offset 0xa40 + 0xa66: 0x0001, + // Block 0x2a, offset 0xa80 + 0xaab: 0x0001, + // Block 0x2b, offset 0xac0 + 0xaea: 0x0001, + // Block 0x2c, offset 0xb00 + 0xb2d: 0x0001, + // Block 0x2d, offset 0xb40 + 0xb54: 0x0001, + // Block 0x2e, offset 0xb80 + 0xb90: 0x0001, + // Block 0x2f, offset 0xbc0 + 0xbe5: 0x0001, + // Block 0x30, offset 0xc00 + 0xc28: 0x0001, + // Block 0x31, offset 0xc40 + 0xc7c: 0x0001, + // Block 0x32, offset 0xc80 + 0xcbf: 0x0001, + // Block 0x33, offset 0xcc0 + 0xcc7: 0x0001, + // Block 0x34, offset 0xd00 + 0xd34: 0x0001, + // Block 0x35, offset 0xd40 + 0xd61: 0x0001, + // Block 0x36, offset 0xd80 + 0xdb9: 0x0001, + // Block 0x37, offset 0xdc0 + 0xdda: 0x0001, +} + +// randIndex: 89 blocks, 5696 entries, 5696 bytes +// Block 0 is the zero block. +var randIndex = [5696]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xe1: 0x02, 0xe3: 0x03, 0xe4: 0x04, + 0xea: 0x05, 0xeb: 0x06, 0xec: 0x07, + 0xf0: 0x10, 0xf1: 0x24, 0xf2: 0x3d, 0xf3: 0x4f, 0xf4: 0x56, + // Block 0x4, offset 0x100 + 0x107: 0x01, + // Block 0x5, offset 0x140 + 0x16c: 0x02, + // Block 0x6, offset 0x180 + 0x19c: 0x03, + 0x1ae: 0x04, + // Block 0x7, offset 0x1c0 + 0x1d8: 0x05, + 0x1f7: 0x06, + // Block 0x8, offset 0x200 + 0x20c: 0x07, + // Block 0x9, offset 0x240 + 0x24a: 0x08, + // Block 0xa, offset 0x280 + 0x2b6: 0x09, + // Block 0xb, offset 0x2c0 + 0x2d5: 0x0a, + // Block 0xc, offset 0x300 + 0x31a: 0x0b, + // Block 0xd, offset 0x340 + 0x373: 0x0c, + // Block 0xe, offset 0x380 + 0x38b: 0x0d, + // Block 0xf, offset 0x3c0 + 0x3f0: 0x0e, + // Block 0x10, offset 0x400 + 0x433: 0x0f, + // Block 0x11, offset 0x440 + 0x45d: 0x10, + // Block 0x12, offset 0x480 + 0x491: 0x08, 0x494: 0x09, 0x497: 0x0a, + 0x49b: 0x0b, 0x49c: 0x0c, + 0x4a1: 0x0d, + 0x4ad: 0x0e, + 0x4ba: 0x0f, + // Block 0x13, offset 0x4c0 + 0x4c1: 0x11, + // Block 0x14, offset 0x500 + 0x531: 0x12, + // Block 0x15, offset 0x540 + 0x546: 0x13, + // Block 0x16, offset 0x580 + 0x5ab: 0x14, + // Block 0x17, offset 0x5c0 + 0x5d4: 0x11, + 0x5fe: 0x11, + // Block 0x18, offset 0x600 + 0x618: 0x0a, + // Block 0x19, offset 0x640 + 0x65b: 0x15, + // Block 0x1a, offset 0x680 + 0x6a0: 0x16, + // Block 0x1b, offset 0x6c0 + 0x6d2: 0x17, + 0x6f6: 0x18, + // Block 0x1c, offset 0x700 + 0x711: 0x19, + // Block 0x1d, offset 0x740 + 0x768: 0x1a, + // Block 0x1e, offset 0x780 + 0x783: 0x1b, + // Block 0x1f, offset 0x7c0 + 0x7f9: 0x1c, + // Block 0x20, offset 0x800 + 0x831: 0x1d, + // Block 0x21, offset 0x840 + 0x85e: 0x1e, + // Block 0x22, offset 0x880 + 0x898: 0x1f, + // Block 0x23, offset 0x8c0 + 0x8c7: 0x18, + 0x8d5: 0x14, + 0x8f7: 0x20, + 0x8fe: 0x1f, + // Block 0x24, offset 0x900 + 0x905: 0x21, + // Block 0x25, offset 0x940 + 0x966: 0x03, + // Block 0x26, offset 0x980 + 0x981: 0x07, 0x983: 0x11, + 0x989: 0x12, 0x98a: 0x13, 0x98e: 0x14, 0x98f: 0x15, + 0x992: 0x16, 0x995: 0x17, 0x996: 0x18, + 0x998: 0x19, 0x999: 0x1a, 0x99b: 0x1b, 0x99f: 0x1c, + 0x9a3: 0x1d, + 0x9ad: 0x1e, 0x9af: 0x1f, + 0x9b0: 0x20, 0x9b1: 0x21, + 0x9b8: 0x22, 0x9bd: 0x23, + // Block 0x27, offset 0x9c0 + 0x9cd: 0x22, + // Block 0x28, offset 0xa00 + 0xa0c: 0x08, + // Block 0x29, offset 0xa40 + 0xa6f: 0x1c, + // Block 0x2a, offset 0xa80 + 0xa90: 0x1a, + 0xaaf: 0x23, + // Block 0x2b, offset 0xac0 + 0xae3: 0x19, + 0xae8: 0x24, + 0xafc: 0x25, + // Block 0x2c, offset 0xb00 + 0xb13: 0x26, + // Block 0x2d, offset 0xb40 + 0xb67: 0x1c, + // Block 0x2e, offset 0xb80 + 0xb8f: 0x0b, + // Block 0x2f, offset 0xbc0 + 0xbcb: 0x27, + 0xbe7: 0x26, + // Block 0x30, offset 0xc00 + 0xc34: 0x16, + // Block 0x31, offset 0xc40 + 0xc62: 0x03, + // Block 0x32, offset 0xc80 + 0xcbb: 0x12, + // Block 0x33, offset 0xcc0 + 0xcdf: 0x09, + // Block 0x34, offset 0xd00 + 0xd34: 0x0a, + // Block 0x35, offset 0xd40 + 0xd41: 0x1e, + // Block 0x36, offset 0xd80 + 0xd83: 0x28, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x15, + // Block 0x38, offset 0xe00 + 0xe1a: 0x15, + // Block 0x39, offset 0xe40 + 0xe65: 0x29, + // Block 0x3a, offset 0xe80 + 0xe86: 0x1f, + // Block 0x3b, offset 0xec0 + 0xeec: 0x18, + // Block 0x3c, offset 0xf00 + 0xf28: 0x2a, + // Block 0x3d, offset 0xf40 + 0xf53: 0x08, + // Block 0x3e, offset 0xf80 + 0xfa2: 0x2b, + 0xfaa: 0x17, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x25, 0xfc2: 0x26, + 0xfc9: 0x27, 0xfcd: 0x28, 0xfce: 0x29, + 0xfd5: 0x2a, + 0xfd8: 0x2b, 0xfd9: 0x2c, 0xfdf: 0x2d, + 0xfe1: 0x2e, 0xfe2: 0x2f, 0xfe3: 0x30, 0xfe6: 0x31, + 0xfe9: 0x32, 0xfec: 0x33, 0xfed: 0x34, 0xfef: 0x35, + 0xff1: 0x36, 0xff2: 0x37, 0xff3: 0x38, 0xff4: 0x39, + 0xffa: 0x3a, 0xffc: 0x3b, 0xffe: 0x3c, + // Block 0x40, offset 0x1000 + 0x102c: 0x2c, + // Block 0x41, offset 0x1040 + 0x1074: 0x2c, + // Block 0x42, offset 0x1080 + 0x108c: 0x08, + 0x10a0: 0x2d, + // Block 0x43, offset 0x10c0 + 0x10e8: 0x10, + // Block 0x44, offset 0x1100 + 0x110f: 0x13, + // Block 0x45, offset 0x1140 + 0x114b: 0x2e, + // Block 0x46, offset 0x1180 + 0x118b: 0x23, + 0x119d: 0x0c, + // Block 0x47, offset 0x11c0 + 0x11c3: 0x12, + 0x11f9: 0x0f, + // Block 0x48, offset 0x1200 + 0x121e: 0x1b, + // Block 0x49, offset 0x1240 + 0x1270: 0x2f, + // Block 0x4a, offset 0x1280 + 0x128a: 0x1b, + 0x12a7: 0x02, + // Block 0x4b, offset 0x12c0 + 0x12fb: 0x14, + // Block 0x4c, offset 0x1300 + 0x1333: 0x30, + // Block 0x4d, offset 0x1340 + 0x134d: 0x31, + // Block 0x4e, offset 0x1380 + 0x138e: 0x15, + // Block 0x4f, offset 0x13c0 + 0x13f4: 0x32, + // Block 0x50, offset 0x1400 + 0x141b: 0x33, + // Block 0x51, offset 0x1440 + 0x1448: 0x3e, 0x1449: 0x3f, 0x144a: 0x40, 0x144f: 0x41, + 0x1459: 0x42, 0x145c: 0x43, 0x145e: 0x44, 0x145f: 0x45, + 0x1468: 0x46, 0x1469: 0x47, 0x146c: 0x48, 0x146d: 0x49, 0x146e: 0x4a, + 0x1472: 0x4b, 0x1473: 0x4c, + 0x1479: 0x4d, 0x147b: 0x4e, + // Block 0x52, offset 0x1480 + 0x1480: 0x34, + 0x1499: 0x11, + 0x14b6: 0x2c, + // Block 0x53, offset 0x14c0 + 0x14e4: 0x0d, + // Block 0x54, offset 0x1500 + 0x1527: 0x08, + // Block 0x55, offset 0x1540 + 0x1555: 0x2b, + // Block 0x56, offset 0x1580 + 0x15b2: 0x35, + // Block 0x57, offset 0x15c0 + 0x15f2: 0x1c, 0x15f4: 0x29, + // Block 0x58, offset 0x1600 + 0x1600: 0x50, 0x1603: 0x51, + 0x1608: 0x52, 0x160a: 0x53, 0x160d: 0x54, 0x160e: 0x55, +} + +// 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 *multiTrie) lookup(s []byte) (v uint64, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return t.ascii[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 := t.utf8Start[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 := t.utf8Start[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 = multiIndex[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 := t.utf8Start[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 = multiIndex[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 = multiIndex[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 *multiTrie) lookupUnsafe(s []byte) uint64 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return t.ascii[c0] + } + i := t.utf8Start[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = multiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = multiIndex[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 *multiTrie) lookupString(s string) (v uint64, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return t.ascii[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 := t.utf8Start[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 := t.utf8Start[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 = multiIndex[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 := t.utf8Start[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 = multiIndex[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 = multiIndex[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 *multiTrie) lookupStringUnsafe(s string) uint64 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return t.ascii[c0] + } + i := t.utf8Start[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = multiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = multiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// multiTrie. Total size: 18250 bytes (17.82 KiB). Checksum: a69a609d8696aa5e. +type multiTrie struct { + ascii []uint64 // index for ASCII bytes + utf8Start []uint8 // index for UTF-8 bytes >= 0xC0 +} + +func newMultiTrie(i int) *multiTrie { + h := multiTrieHandles[i] + return &multiTrie{multiValues[uint32(h.ascii)<<6:], multiIndex[uint32(h.multi)<<6:]} +} + +type multiTrieHandle struct { + ascii, multi uint8 +} + +// multiTrieHandles: 5 handles, 10 bytes +var multiTrieHandles = [5]multiTrieHandle{ + {0, 0}, // 8c1e77823143d35c: all + {0, 23}, // 8fb58ff8243b45b0: ASCII only + {0, 23}, // 8fb58ff8243b45b0: ASCII only 2 + {0, 24}, // 2ccc43994f11046f: BMP only + {30, 25}, // ce448591bdcb4733: No BMP +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *multiTrie) lookupValue(n uint32, b byte) uint64 { + switch { + default: + return uint64(multiValues[n<<6+uint32(b)]) + } +} + +// multiValues: 32 blocks, 2048 entries, 16384 bytes +// The third block is the zero block. +var multiValues = [2048]uint64{ + // Block 0x0, offset 0x0 + 0x03: 0x6e361699800b9fb8, 0x04: 0x52d3935a34f6f0b, 0x05: 0x2948319393e7ef10, + 0x07: 0x20f03b006704f663, 0x08: 0x6c15c0732bb2495f, 0x09: 0xe54e2c59d953551, + 0x0f: 0x33d8a825807d8037, 0x10: 0x6ecd93cb12168b92, 0x11: 0x6a81c9c0ce86e884, + 0x1f: 0xa03e77aac8be79b, 0x20: 0x28591d0e7e486efa, 0x21: 0x716fa3bc398dec8, + 0x3f: 0x4fd3bcfa72bce8b0, + // Block 0x1, offset 0x40 + 0x40: 0x3cbaef3db8ba5f12, 0x41: 0x2d262347c1f56357, + 0x7f: 0x782caa2d25a418a9, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x6bbd1f937b1ff5d2, 0xc1: 0x732e23088d2eb8a4, + // Block 0x4, offset 0x100 + 0x13f: 0x56f8c4c82f5962dc, + // Block 0x5, offset 0x140 + 0x140: 0x57dc4544729a5da2, 0x141: 0x2f62f9cd307ffa0d, + // Block 0x6, offset 0x180 + 0x1bf: 0x7bf4d0ebf302a088, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x1f0d67f249e59931, 0x1c1: 0x3011def73aa550c7, + // Block 0x8, offset 0x200 + 0x23f: 0x5de81c1dff6bf29d, + // Block 0x9, offset 0x240 + 0x240: 0x752c035737b825e8, 0x241: 0x1e793399081e3bb3, + // Block 0xa, offset 0x280 + 0x2bf: 0x6a28f01979cbf059, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x373a4b0f2cbd4c74, 0x2c1: 0x4fd2c288683b767c, + // Block 0xc, offset 0x300 + 0x33f: 0x5a10ffa9e29184fb, + // Block 0xd, offset 0x340 + 0x340: 0x700f9bdb53fff6a5, 0x341: 0xcde93df0427eb79, + // Block 0xe, offset 0x380 + 0x3bf: 0x74071288fff39c76, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x481fc2f510e5268a, 0x3c1: 0x7565c28164204849, + // Block 0x10, offset 0x400 + 0x43f: 0x5676a62fd49c6bec, + // Block 0x11, offset 0x440 + 0x440: 0x2f2d15776cbafc6b, 0x441: 0x4c55e8dc0ff11a3f, + // Block 0x12, offset 0x480 + 0x4bf: 0x69d6f0fe711fafc9, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x33181de28cfb062d, 0x4c1: 0x2ef3adc6bb2f2d02, + // Block 0x14, offset 0x500 + 0x53f: 0xe03b31814c95f8b, + // Block 0x15, offset 0x540 + 0x540: 0x3bf6dc9a1c115603, 0x541: 0x6984ec9b7f51f7fc, + // Block 0x16, offset 0x580 + 0x5bf: 0x3c02ea92fb168559, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x1badfe42e7629494, 0x5c1: 0x6dc4a554005f7645, + // Block 0x18, offset 0x600 + 0x63f: 0x3bb2ed2a72748f4b, + // Block 0x19, offset 0x640 + 0x640: 0x291354cd6767ec10, 0x641: 0x2c3a4715e3c070d6, + // Block 0x1a, offset 0x680 + 0x6bf: 0x352711cfb7236418, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3a59d34fb8bceda, 0x6c1: 0x5e90d8ebedd64fa1, + // Block 0x1c, offset 0x700 + 0x73f: 0x7191a77b28d23110, + // Block 0x1d, offset 0x740 + 0x740: 0x4ca7f0c1623423d8, 0x741: 0x4f7156d996e2d0de, + // Block 0x1e, offset 0x780 + // Block 0x1f, offset 0x7c0 +} + +// multiIndex: 29 blocks, 1856 entries, 1856 bytes +// Block 0 is the zero block. +var multiIndex = [1856]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc7: 0x04, + 0xc8: 0x05, 0xcf: 0x06, + 0xd0: 0x07, + 0xdf: 0x08, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe7: 0x07, + 0xe8: 0x08, 0xef: 0x09, + 0xf0: 0x0e, 0xf1: 0x11, 0xf2: 0x13, 0xf3: 0x15, 0xf4: 0x17, + // Block 0x4, offset 0x100 + 0x120: 0x09, + 0x13f: 0x0a, + // Block 0x5, offset 0x140 + 0x140: 0x0b, + 0x17f: 0x0c, + // Block 0x6, offset 0x180 + 0x180: 0x0d, + // Block 0x7, offset 0x1c0 + 0x1ff: 0x0e, + // Block 0x8, offset 0x200 + 0x200: 0x0f, + // Block 0x9, offset 0x240 + 0x27f: 0x10, + // Block 0xa, offset 0x280 + 0x280: 0x11, + // Block 0xb, offset 0x2c0 + 0x2ff: 0x12, + // Block 0xc, offset 0x300 + 0x300: 0x13, + // Block 0xd, offset 0x340 + 0x37f: 0x14, + // Block 0xe, offset 0x380 + 0x380: 0x15, + // Block 0xf, offset 0x3c0 + 0x3ff: 0x16, + // Block 0x10, offset 0x400 + 0x410: 0x0a, + 0x41f: 0x0b, + 0x420: 0x0c, + 0x43f: 0x0d, + // Block 0x11, offset 0x440 + 0x440: 0x17, + // Block 0x12, offset 0x480 + 0x4bf: 0x18, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0f, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x500: 0x19, + // Block 0x15, offset 0x540 + 0x540: 0x12, + // Block 0x16, offset 0x580 + 0x5bf: 0x1a, + // Block 0x17, offset 0x5c0 + 0x5ff: 0x14, + // Block 0x18, offset 0x600 + 0x600: 0x1b, + // Block 0x19, offset 0x640 + 0x640: 0x16, + // Block 0x1a, offset 0x680 + // Block 0x1b, offset 0x6c0 + 0x6c2: 0x01, 0x6c3: 0x02, 0x6c4: 0x03, 0x6c7: 0x04, + 0x6c8: 0x05, 0x6cf: 0x06, + 0x6d0: 0x07, + 0x6df: 0x08, + 0x6e0: 0x02, 0x6e1: 0x03, 0x6e2: 0x04, 0x6e3: 0x05, 0x6e4: 0x06, 0x6e7: 0x07, + 0x6e8: 0x08, 0x6ef: 0x09, + // Block 0x1c, offset 0x700 + 0x730: 0x0e, 0x731: 0x11, 0x732: 0x13, 0x733: 0x15, 0x734: 0x17, +} diff --git a/vendor/golang.org/x/text/internal/triegen/example_compact_test.go b/vendor/golang.org/x/text/internal/triegen/example_compact_test.go new file mode 100644 index 00000000..7cf604ca --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/example_compact_test.go @@ -0,0 +1,71 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package triegen_test + +import ( + "fmt" + "io" + "io/ioutil" + + "golang.org/x/text/internal/triegen" +) + +func ExampleCompacter() { + t := triegen.NewTrie("root") + for r := rune(0); r < 10000; r += 64 { + t.Insert(r, 0x9015BADA55^uint64(r)) + } + sz, _ := t.Gen(ioutil.Discard) + + fmt.Printf("Size normal: %5d\n", sz) + + var c myCompacter + sz, _ = t.Gen(ioutil.Discard, triegen.Compact(&c)) + + fmt.Printf("Size compacted: %5d\n", sz) + + // Output: + // Size normal: 81344 + // Size compacted: 3224 +} + +// A myCompacter accepts a block if only the first value is given. +type myCompacter []uint64 + +func (c *myCompacter) Size(values []uint64) (sz int, ok bool) { + for _, v := range values[1:] { + if v != 0 { + return 0, false + } + } + return 8, true // the size of a uint64 +} + +func (c *myCompacter) Store(v []uint64) uint32 { + x := uint32(len(*c)) + *c = append(*c, v[0]) + return x +} + +func (c *myCompacter) Print(w io.Writer) error { + fmt.Fprintln(w, "var firstValue = []uint64{") + for _, v := range *c { + fmt.Fprintf(w, "\t%#x,\n", v) + } + fmt.Fprintln(w, "}") + return nil +} + +func (c *myCompacter) Handler() string { + return "getFirstValue" + + // Where getFirstValue is included along with the generated code: + // func getFirstValue(n uint32, b byte) uint64 { + // if b == 0x80 { // the first continuation byte + // return firstValue[n] + // } + // return 0 + // } +} diff --git a/vendor/golang.org/x/text/internal/triegen/example_test.go b/vendor/golang.org/x/text/internal/triegen/example_test.go new file mode 100644 index 00000000..557a152e --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/example_test.go @@ -0,0 +1,148 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package triegen_test + +import ( + "fmt" + "io/ioutil" + "math/rand" + "unicode" + + "golang.org/x/text/internal/triegen" +) + +const seed = 0x12345 + +var genWriter = ioutil.Discard + +func randomRunes() map[rune]uint8 { + rnd := rand.New(rand.NewSource(seed)) + m := map[rune]uint8{} + for len(m) < 100 { + // Only set our random rune if it is a valid Unicode code point. + if r := rune(rnd.Int31n(unicode.MaxRune + 1)); []rune(string(r))[0] == r { + m[r] = 1 + } + } + return m +} + +// Example_build shows how to build a simple trie. It assigns the value 1 to +// 100 random runes generated by randomRunes. +func Example_build() { + t := triegen.NewTrie("rand") + + for r, _ := range randomRunes() { + t.Insert(r, 1) + } + sz, err := t.Gen(genWriter) + + fmt.Printf("Trie size: %d bytes\n", sz) + fmt.Printf("Error: %v\n", err) + + // Output: + // Trie size: 9280 bytes + // Error: +} + +// Example_lookup demonstrates how to use the trie generated by Example_build. +func Example_lookup() { + trie := newRandTrie(0) + + // The same set of runes used by Example_build. + runes := randomRunes() + + // Verify the right value is returned for all runes. + for r := rune(0); r <= unicode.MaxRune; r++ { + // Note that the return type of lookup is uint8. + if v, _ := trie.lookupString(string(r)); v != runes[r] { + fmt.Println("FAILURE") + return + } + } + fmt.Println("SUCCESS") + + // Output: + // SUCCESS +} + +// runeValues generates some random values for a set of interesting runes. +func runeValues() map[rune]uint64 { + rnd := rand.New(rand.NewSource(seed)) + m := map[rune]uint64{} + for p := 4; p <= unicode.MaxRune; p <<= 1 { + for d := -1; d <= 1; d++ { + m[rune(p+d)] = uint64(rnd.Int63()) + } + } + return m +} + +// ExampleGen_build demonstrates the creation of multiple tries sharing common +// blocks. ExampleGen_lookup demonstrates how to use the generated tries. +func ExampleGen_build() { + var tries []*triegen.Trie + + rv := runeValues() + for _, c := range []struct { + include func(rune) bool + name string + }{ + {func(r rune) bool { return true }, "all"}, + {func(r rune) bool { return r < 0x80 }, "ASCII only"}, + {func(r rune) bool { return r < 0x80 }, "ASCII only 2"}, + {func(r rune) bool { return r <= 0xFFFF }, "BMP only"}, + {func(r rune) bool { return r > 0xFFFF }, "No BMP"}, + } { + t := triegen.NewTrie(c.name) + tries = append(tries, t) + + for r, v := range rv { + if c.include(r) { + t.Insert(r, v) + } + } + } + sz, err := triegen.Gen(genWriter, "multi", tries) + + fmt.Printf("Trie size: %d bytes\n", sz) + fmt.Printf("Error: %v\n", err) + + // Output: + // Trie size: 18250 bytes + // Error: +} + +// ExampleGen_lookup shows how to look up values in the trie generated by +// ExampleGen_build. +func ExampleGen_lookup() { + rv := runeValues() + for i, include := range []func(rune) bool{ + func(r rune) bool { return true }, // all + func(r rune) bool { return r < 0x80 }, // ASCII only + func(r rune) bool { return r < 0x80 }, // ASCII only 2 + func(r rune) bool { return r <= 0xFFFF }, // BMP only + func(r rune) bool { return r > 0xFFFF }, // No BMP + } { + t := newMultiTrie(i) + + for r := rune(0); r <= unicode.MaxRune; r++ { + x := uint64(0) + if include(r) { + x = rv[r] + } + // As we convert from a valid rune, we know it is safe to use + // lookupStringUnsafe. + if v := t.lookupStringUnsafe(string(r)); x != v { + fmt.Println("FAILURE") + return + } + } + } + fmt.Println("SUCCESS") + + // Output: + // SUCCESS +} diff --git a/vendor/golang.org/x/text/internal/triegen/gen_test.go b/vendor/golang.org/x/text/internal/triegen/gen_test.go new file mode 100644 index 00000000..831627d7 --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/gen_test.go @@ -0,0 +1,68 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build generate + +package triegen_test + +// The code in this file generates captures and writes the tries generated in +// the examples to data_test.go. To invoke it, run: +// go test -tags=generate +// +// Making the generation code a "test" allows us to link in the necessary test +// code. + +import ( + "log" + "os" + "os/exec" +) + +func init() { + const tmpfile = "tmpout" + const dstfile = "data_test.go" + + f, err := os.Create(tmpfile) + if err != nil { + log.Fatalf("Could not create output file: %v", err) + } + defer os.Remove(tmpfile) + defer f.Close() + + // We exit before this function returns, regardless of success or failure, + // so there's no need to save (and later restore) the existing genWriter + // value. + genWriter = f + + f.Write([]byte(header)) + + Example_build() + ExampleGen_build() + + if err := exec.Command("gofmt", "-w", tmpfile).Run(); err != nil { + log.Fatal(err) + } + os.Remove(dstfile) + os.Rename(tmpfile, dstfile) + + os.Exit(0) +} + +const header = `// This file is generated with "go test -tags generate". DO NOT EDIT! +// +build !generate + +package triegen_test +` + +// Stubs for generated tries. These are needed as we exclude data_test.go if +// the generate flag is set. This will clearly make the tests fail, but that +// is okay. It allows us to bootstrap. + +type trie struct{} + +func (t *trie) lookupString(string) (uint8, int) { return 0, 1 } +func (t *trie) lookupStringUnsafe(string) uint64 { return 0 } + +func newRandTrie(i int) *trie { return &trie{} } +func newMultiTrie(i int) *trie { return &trie{} } diff --git a/vendor/golang.org/x/text/internal/triegen/print.go b/vendor/golang.org/x/text/internal/triegen/print.go new file mode 100644 index 00000000..8d9f120b --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/print.go @@ -0,0 +1,251 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package triegen + +import ( + "bytes" + "fmt" + "io" + "strings" + "text/template" +) + +// print writes all the data structures as well as the code necessary to use the +// trie to w. +func (b *builder) print(w io.Writer) error { + b.Stats.NValueEntries = len(b.ValueBlocks) * blockSize + b.Stats.NValueBytes = len(b.ValueBlocks) * blockSize * b.ValueSize + b.Stats.NIndexEntries = len(b.IndexBlocks) * blockSize + b.Stats.NIndexBytes = len(b.IndexBlocks) * blockSize * b.IndexSize + b.Stats.NHandleBytes = len(b.Trie) * 2 * b.IndexSize + + // If we only have one root trie, all starter blocks are at position 0 and + // we can access the arrays directly. + if len(b.Trie) == 1 { + // At this point we cannot refer to the generated tables directly. + b.ASCIIBlock = b.Name + "Values" + b.StarterBlock = b.Name + "Index" + } else { + // Otherwise we need to have explicit starter indexes in the trie + // structure. + b.ASCIIBlock = "t.ascii" + b.StarterBlock = "t.utf8Start" + } + + b.SourceType = "[]byte" + if err := lookupGen.Execute(w, b); err != nil { + return err + } + + b.SourceType = "string" + if err := lookupGen.Execute(w, b); err != nil { + return err + } + + if err := trieGen.Execute(w, b); err != nil { + return err + } + + for _, c := range b.Compactions { + if err := c.c.Print(w); err != nil { + return err + } + } + + return nil +} + +func printValues(n int, values []uint64) string { + w := &bytes.Buffer{} + boff := n * blockSize + fmt.Fprintf(w, "\t// Block %#x, offset %#x", n, boff) + var newline bool + for i, v := range values { + if i%6 == 0 { + newline = true + } + if v != 0 { + if newline { + fmt.Fprintf(w, "\n") + newline = false + } + fmt.Fprintf(w, "\t%#02x:%#04x, ", boff+i, v) + } + } + return w.String() +} + +func printIndex(b *builder, nr int, n *node) string { + w := &bytes.Buffer{} + boff := nr * blockSize + fmt.Fprintf(w, "\t// Block %#x, offset %#x", nr, boff) + var newline bool + for i, c := range n.children { + if i%8 == 0 { + newline = true + } + if c != nil { + v := b.Compactions[c.index.compaction].Offset + uint32(c.index.index) + if v != 0 { + if newline { + fmt.Fprintf(w, "\n") + newline = false + } + fmt.Fprintf(w, "\t%#02x:%#02x, ", boff+i, v) + } + } + } + return w.String() +} + +var ( + trieGen = template.Must(template.New("trie").Funcs(template.FuncMap{ + "printValues": printValues, + "printIndex": printIndex, + "title": strings.Title, + "dec": func(x int) int { return x - 1 }, + "psize": func(n int) string { + return fmt.Sprintf("%d bytes (%.2f KiB)", n, float64(n)/1024) + }, + }).Parse(trieTemplate)) + lookupGen = template.Must(template.New("lookup").Parse(lookupTemplate)) +) + +// TODO: consider the return type of lookup. It could be uint64, even if the +// internal value type is smaller. We will have to verify this with the +// performance of unicode/norm, which is very sensitive to such changes. +const trieTemplate = `{{$b := .}}{{$multi := gt (len .Trie) 1}} +// {{.Name}}Trie. Total size: {{psize .Size}}. Checksum: {{printf "%08x" .Checksum}}. +type {{.Name}}Trie struct { {{if $multi}} + ascii []{{.ValueType}} // index for ASCII bytes + utf8Start []{{.IndexType}} // index for UTF-8 bytes >= 0xC0 +{{end}}} + +func new{{title .Name}}Trie(i int) *{{.Name}}Trie { {{if $multi}} + h := {{.Name}}TrieHandles[i] + return &{{.Name}}Trie{ {{.Name}}Values[uint32(h.ascii)<<6:], {{.Name}}Index[uint32(h.multi)<<6:] } +} + +type {{.Name}}TrieHandle struct { + ascii, multi {{.IndexType}} +} + +// {{.Name}}TrieHandles: {{len .Trie}} handles, {{.Stats.NHandleBytes}} bytes +var {{.Name}}TrieHandles = [{{len .Trie}}]{{.Name}}TrieHandle{ +{{range .Trie}} { {{.ASCIIIndex}}, {{.StarterIndex}} }, // {{printf "%08x" .Checksum}}: {{.Name}} +{{end}}}{{else}} + return &{{.Name}}Trie{} +} +{{end}} +// lookupValue determines the type of block n and looks up the value for b. +func (t *{{.Name}}Trie) lookupValue(n uint32, b byte) {{.ValueType}}{{$last := dec (len .Compactions)}} { + switch { {{range $i, $c := .Compactions}} + {{if eq $i $last}}default{{else}}case n < {{$c.Cutoff}}{{end}}:{{if ne $i 0}} + n -= {{$c.Offset}}{{end}} + return {{print $b.ValueType}}({{$c.Handler}}){{end}} + } +} + +// {{.Name}}Values: {{len .ValueBlocks}} blocks, {{.Stats.NValueEntries}} entries, {{.Stats.NValueBytes}} bytes +// The third block is the zero block. +var {{.Name}}Values = [{{.Stats.NValueEntries}}]{{.ValueType}} { +{{range $i, $v := .ValueBlocks}}{{printValues $i $v}} +{{end}}} + +// {{.Name}}Index: {{len .IndexBlocks}} blocks, {{.Stats.NIndexEntries}} entries, {{.Stats.NIndexBytes}} bytes +// Block 0 is the zero block. +var {{.Name}}Index = [{{.Stats.NIndexEntries}}]{{.IndexType}} { +{{range $i, $v := .IndexBlocks}}{{printIndex $b $i $v}} +{{end}}} +` + +// TODO: consider allowing zero-length strings after evaluating performance with +// unicode/norm. +const lookupTemplate = ` +// lookup{{if eq .SourceType "string"}}String{{end}} 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 *{{.Name}}Trie) lookup{{if eq .SourceType "string"}}String{{end}}(s {{.SourceType}}) (v {{.ValueType}}, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return {{.ASCIIBlock}}[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 := {{.StarterBlock}}[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 := {{.StarterBlock}}[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 = {{.Name}}Index[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 := {{.StarterBlock}}[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 = {{.Name}}Index[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 = {{.Name}}Index[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 +} + +// lookup{{if eq .SourceType "string"}}String{{end}}Unsafe 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 *{{.Name}}Trie) lookup{{if eq .SourceType "string"}}String{{end}}Unsafe(s {{.SourceType}}) {{.ValueType}} { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return {{.ASCIIBlock}}[c0] + } + i := {{.StarterBlock}}[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = {{.Name}}Index[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = {{.Name}}Index[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} +` diff --git a/vendor/golang.org/x/text/internal/triegen/triegen.go b/vendor/golang.org/x/text/internal/triegen/triegen.go new file mode 100644 index 00000000..adb01081 --- /dev/null +++ b/vendor/golang.org/x/text/internal/triegen/triegen.go @@ -0,0 +1,494 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package triegen implements a code generator for a trie for associating +// unsigned integer values with UTF-8 encoded runes. +// +// Many of the go.text packages use tries for storing per-rune information. A +// trie is especially useful if many of the runes have the same value. If this +// is the case, many blocks can be expected to be shared allowing for +// information on many runes to be stored in little space. +// +// As most of the lookups are done directly on []byte slices, the tries use the +// UTF-8 bytes directly for the lookup. This saves a conversion from UTF-8 to +// runes and contributes a little bit to better performance. It also naturally +// provides a fast path for ASCII. +// +// Space is also an issue. There are many code points defined in Unicode and as +// a result tables can get quite large. So every byte counts. The triegen +// package automatically chooses the smallest integer values to represent the +// tables. Compacters allow further compression of the trie by allowing for +// alternative representations of individual trie blocks. +// +// triegen allows generating multiple tries as a single structure. This is +// useful when, for example, one wants to generate tries for several languages +// that have a lot of values in common. Some existing libraries for +// internationalization store all per-language data as a dynamically loadable +// chunk. The go.text packages are designed with the assumption that the user +// typically wants to compile in support for all supported languages, in line +// with the approach common to Go to create a single standalone binary. The +// multi-root trie approach can give significant storage savings in this +// scenario. +// +// triegen generates both tables and code. The code is optimized to use the +// automatically chosen data types. The following code is generated for a Trie +// or multiple Tries named "foo": +// - type fooTrie +// The trie type. +// +// - func newFooTrie(x int) *fooTrie +// Trie constructor, where x is the index of the trie passed to Gen. +// +// - func (t *fooTrie) lookup(s []byte) (v uintX, sz int) +// The lookup method, where uintX is automatically chosen. +// +// - func lookupString, lookupUnsafe and lookupStringUnsafe +// Variants of the above. +// +// - var fooValues and fooIndex and any tables generated by Compacters. +// The core trie data. +// +// - var fooTrieHandles +// Indexes of starter blocks in case of multiple trie roots. +// +// It is recommended that users test the generated trie by checking the returned +// value for every rune. Such exhaustive tests are possible as the the number of +// runes in Unicode is limited. +package triegen // import "golang.org/x/text/internal/triegen" + +// TODO: Arguably, the internally optimized data types would not have to be +// exposed in the generated API. We could also investigate not generating the +// code, but using it through a package. We would have to investigate the impact +// on performance of making such change, though. For packages like unicode/norm, +// small changes like this could tank performance. + +import ( + "encoding/binary" + "fmt" + "hash/crc64" + "io" + "log" + "unicode/utf8" +) + +// builder builds a set of tries for associating values with runes. The set of +// tries can share common index and value blocks. +type builder struct { + Name string + + // ValueType is the type of the trie values looked up. + ValueType string + + // ValueSize is the byte size of the ValueType. + ValueSize int + + // IndexType is the type of trie index values used for all UTF-8 bytes of + // a rune except the last one. + IndexType string + + // IndexSize is the byte size of the IndexType. + IndexSize int + + // SourceType is used when generating the lookup functions. If the user + // requests StringSupport, all lookup functions will be generated for + // string input as well. + SourceType string + + Trie []*Trie + + IndexBlocks []*node + ValueBlocks [][]uint64 + Compactions []compaction + Checksum uint64 + + ASCIIBlock string + StarterBlock string + + indexBlockIdx map[uint64]int + valueBlockIdx map[uint64]nodeIndex + asciiBlockIdx map[uint64]int + + // Stats are used to fill out the template. + Stats struct { + NValueEntries int + NValueBytes int + NIndexEntries int + NIndexBytes int + NHandleBytes int + } + + err error +} + +// A nodeIndex encodes the index of a node, which is defined by the compaction +// which stores it and an index within the compaction. For internal nodes, the +// compaction is always 0. +type nodeIndex struct { + compaction int + index int +} + +// compaction keeps track of stats used for the compaction. +type compaction struct { + c Compacter + blocks []*node + maxHandle uint32 + totalSize int + + // Used by template-based generator and thus exported. + Cutoff uint32 + Offset uint32 + Handler string +} + +func (b *builder) setError(err error) { + if b.err == nil { + b.err = err + } +} + +// An Option can be passed to Gen. +type Option func(b *builder) error + +// Compact configures the trie generator to use the given Compacter. +func Compact(c Compacter) Option { + return func(b *builder) error { + b.Compactions = append(b.Compactions, compaction{ + c: c, + Handler: c.Handler() + "(n, b)"}) + return nil + } +} + +// Gen writes Go code for a shared trie lookup structure to w for the given +// Tries. The generated trie type will be called nameTrie. newNameTrie(x) will +// return the *nameTrie for tries[x]. A value can be looked up by using one of +// the various lookup methods defined on nameTrie. It returns the table size of +// the generated trie. +func Gen(w io.Writer, name string, tries []*Trie, opts ...Option) (sz int, err error) { + // The index contains two dummy blocks, followed by the zero block. The zero + // block is at offset 0x80, so that the offset for the zero block for + // continuation bytes is 0. + b := &builder{ + Name: name, + Trie: tries, + IndexBlocks: []*node{{}, {}, {}}, + Compactions: []compaction{{ + Handler: name + "Values[n<<6+uint32(b)]", + }}, + // The 0 key in indexBlockIdx and valueBlockIdx is the hash of the zero + // block. + indexBlockIdx: map[uint64]int{0: 0}, + valueBlockIdx: map[uint64]nodeIndex{0: {}}, + asciiBlockIdx: map[uint64]int{}, + } + b.Compactions[0].c = (*simpleCompacter)(b) + + for _, f := range opts { + if err := f(b); err != nil { + return 0, err + } + } + b.build() + if b.err != nil { + return 0, b.err + } + if err = b.print(w); err != nil { + return 0, err + } + return b.Size(), nil +} + +// A Trie represents a single root node of a trie. A builder may build several +// overlapping tries at once. +type Trie struct { + root *node + + hiddenTrie +} + +// hiddenTrie contains values we want to be visible to the template generator, +// but hidden from the API documentation. +type hiddenTrie struct { + Name string + Checksum uint64 + ASCIIIndex int + StarterIndex int +} + +// NewTrie returns a new trie root. +func NewTrie(name string) *Trie { + return &Trie{ + &node{ + children: make([]*node, blockSize), + values: make([]uint64, utf8.RuneSelf), + }, + hiddenTrie{Name: name}, + } +} + +// Gen is a convenience wrapper around the Gen func passing t as the only trie +// and uses the name passed to NewTrie. It returns the size of the generated +// tables. +func (t *Trie) Gen(w io.Writer, opts ...Option) (sz int, err error) { + return Gen(w, t.Name, []*Trie{t}, opts...) +} + +// node is a node of the intermediate trie structure. +type node struct { + // children holds this node's children. It is always of length 64. + // A child node may be nil. + children []*node + + // values contains the values of this node. If it is non-nil, this node is + // either a root or leaf node: + // For root nodes, len(values) == 128 and it maps the bytes in [0x00, 0x7F]. + // For leaf nodes, len(values) == 64 and it maps the bytes in [0x80, 0xBF]. + values []uint64 + + index nodeIndex +} + +// Insert associates value with the given rune. Insert will panic if a non-zero +// value is passed for an invalid rune. +func (t *Trie) Insert(r rune, value uint64) { + if value == 0 { + return + } + s := string(r) + if []rune(s)[0] != r && value != 0 { + // Note: The UCD tables will always assign what amounts to a zero value + // to a surrogate. Allowing a zero value for an illegal rune allows + // users to iterate over [0..MaxRune] without having to explicitly + // exclude surrogates, which would be tedious. + panic(fmt.Sprintf("triegen: non-zero value for invalid rune %U", r)) + } + if len(s) == 1 { + // It is a root node value (ASCII). + t.root.values[s[0]] = value + return + } + + n := t.root + for ; len(s) > 1; s = s[1:] { + if n.children == nil { + n.children = make([]*node, blockSize) + } + p := s[0] % blockSize + c := n.children[p] + if c == nil { + c = &node{} + n.children[p] = c + } + if len(s) > 2 && c.values != nil { + log.Fatalf("triegen: insert(%U): found internal node with values", r) + } + n = c + } + if n.values == nil { + n.values = make([]uint64, blockSize) + } + if n.children != nil { + log.Fatalf("triegen: insert(%U): found leaf node that also has child nodes", r) + } + n.values[s[0]-0x80] = value +} + +// Size returns the number of bytes the generated trie will take to store. It +// needs to be exported as it is used in the templates. +func (b *builder) Size() int { + // Index blocks. + sz := len(b.IndexBlocks) * blockSize * b.IndexSize + + // Skip the first compaction, which represents the normal value blocks, as + // its totalSize does not account for the ASCII blocks, which are managed + // separately. + sz += len(b.ValueBlocks) * blockSize * b.ValueSize + for _, c := range b.Compactions[1:] { + sz += c.totalSize + } + + // TODO: this computation does not account for the fixed overhead of a using + // a compaction, either code or data. As for data, though, the typical + // overhead of data is in the order of bytes (2 bytes for cases). Further, + // the savings of using a compaction should anyway be substantial for it to + // be worth it. + + // For multi-root tries, we also need to account for the handles. + if len(b.Trie) > 1 { + sz += 2 * b.IndexSize * len(b.Trie) + } + return sz +} + +func (b *builder) build() { + // Compute the sizes of the values. + var vmax uint64 + for _, t := range b.Trie { + vmax = maxValue(t.root, vmax) + } + b.ValueType, b.ValueSize = getIntType(vmax) + + // Compute all block allocations. + // TODO: first compute the ASCII blocks for all tries and then the other + // nodes. ASCII blocks are more restricted in placement, as they require two + // blocks to be placed consecutively. Processing them first may improve + // sharing (at least one zero block can be expected to be saved.) + for _, t := range b.Trie { + b.Checksum += b.buildTrie(t) + } + + // Compute the offsets for all the Compacters. + offset := uint32(0) + for i := range b.Compactions { + c := &b.Compactions[i] + c.Offset = offset + offset += c.maxHandle + 1 + c.Cutoff = offset + } + + // Compute the sizes of indexes. + // TODO: different byte positions could have different sizes. So far we have + // not found a case where this is beneficial. + imax := uint64(b.Compactions[len(b.Compactions)-1].Cutoff) + for _, ib := range b.IndexBlocks { + if x := uint64(ib.index.index); x > imax { + imax = x + } + } + b.IndexType, b.IndexSize = getIntType(imax) +} + +func maxValue(n *node, max uint64) uint64 { + if n == nil { + return max + } + for _, c := range n.children { + max = maxValue(c, max) + } + for _, v := range n.values { + if max < v { + max = v + } + } + return max +} + +func getIntType(v uint64) (string, int) { + switch { + case v < 1<<8: + return "uint8", 1 + case v < 1<<16: + return "uint16", 2 + case v < 1<<32: + return "uint32", 4 + } + return "uint64", 8 +} + +const ( + blockSize = 64 + + // Subtract two blocks to offset 0x80, the first continuation byte. + blockOffset = 2 + + // Subtract three blocks to offset 0xC0, the first non-ASCII starter. + rootBlockOffset = 3 +) + +var crcTable = crc64.MakeTable(crc64.ISO) + +func (b *builder) buildTrie(t *Trie) uint64 { + n := t.root + + // Get the ASCII offset. For the first trie, the ASCII block will be at + // position 0. + hasher := crc64.New(crcTable) + binary.Write(hasher, binary.BigEndian, n.values) + hash := hasher.Sum64() + + v, ok := b.asciiBlockIdx[hash] + if !ok { + v = len(b.ValueBlocks) + b.asciiBlockIdx[hash] = v + + b.ValueBlocks = append(b.ValueBlocks, n.values[:blockSize], n.values[blockSize:]) + if v == 0 { + // Add the zero block at position 2 so that it will be assigned a + // zero reference in the lookup blocks. + // TODO: always do this? This would allow us to remove a check from + // the trie lookup, but at the expense of extra space. Analyze + // performance for unicode/norm. + b.ValueBlocks = append(b.ValueBlocks, make([]uint64, blockSize)) + } + } + t.ASCIIIndex = v + + // Compute remaining offsets. + t.Checksum = b.computeOffsets(n, true) + // We already subtracted the normal blockOffset from the index. Subtract the + // difference for starter bytes. + t.StarterIndex = n.index.index - (rootBlockOffset - blockOffset) + return t.Checksum +} + +func (b *builder) computeOffsets(n *node, root bool) uint64 { + // For the first trie, the root lookup block will be at position 3, which is + // the offset for UTF-8 non-ASCII starter bytes. + first := len(b.IndexBlocks) == rootBlockOffset + if first { + b.IndexBlocks = append(b.IndexBlocks, n) + } + + // We special-case the cases where all values recursively are 0. This allows + // for the use of a zero block to which all such values can be directed. + hash := uint64(0) + if n.children != nil || n.values != nil { + hasher := crc64.New(crcTable) + for _, c := range n.children { + var v uint64 + if c != nil { + v = b.computeOffsets(c, false) + } + binary.Write(hasher, binary.BigEndian, v) + } + binary.Write(hasher, binary.BigEndian, n.values) + hash = hasher.Sum64() + } + + if first { + b.indexBlockIdx[hash] = rootBlockOffset - blockOffset + } + + // Compacters don't apply to internal nodes. + if n.children != nil { + v, ok := b.indexBlockIdx[hash] + if !ok { + v = len(b.IndexBlocks) - blockOffset + b.IndexBlocks = append(b.IndexBlocks, n) + b.indexBlockIdx[hash] = v + } + n.index = nodeIndex{0, v} + } else { + h, ok := b.valueBlockIdx[hash] + if !ok { + bestI, bestSize := 0, blockSize*b.ValueSize + for i, c := range b.Compactions[1:] { + if sz, ok := c.c.Size(n.values); ok && bestSize > sz { + bestI, bestSize = i+1, sz + } + } + c := &b.Compactions[bestI] + c.totalSize += bestSize + v := c.c.Store(n.values) + if c.maxHandle < v { + c.maxHandle = v + } + h = nodeIndex{bestI, int(v)} + b.valueBlockIdx[hash] = h + } + n.index = h + } + return hash +} diff --git a/vendor/golang.org/x/text/internal/ucd/example_test.go b/vendor/golang.org/x/text/internal/ucd/example_test.go new file mode 100644 index 00000000..338a50d1 --- /dev/null +++ b/vendor/golang.org/x/text/internal/ucd/example_test.go @@ -0,0 +1,81 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ucd_test + +import ( + "fmt" + "strings" + + "golang.org/x/text/internal/ucd" +) + +func Example() { + // Read rune-by-rune from UnicodeData. + var count int + p := ucd.New(strings.NewReader(unicodeData)) + for p.Next() { + count++ + if lower := p.Runes(ucd.SimpleLowercaseMapping); lower != nil { + fmt.Printf("lower(%U) -> %U\n", p.Rune(0), lower[0]) + } + } + if err := p.Err(); err != nil { + fmt.Println(err) + } + fmt.Println("Number of runes visited:", count) + + // Read raw ranges from Scripts. + p = ucd.New(strings.NewReader(scripts), ucd.KeepRanges) + for p.Next() { + start, end := p.Range(0) + fmt.Printf("%04X..%04X: %s\n", start, end, p.String(1)) + } + if err := p.Err(); err != nil { + fmt.Println(err) + } + + // Output: + // lower(U+00C0) -> U+00E0 + // lower(U+00C1) -> U+00E1 + // lower(U+00C2) -> U+00E2 + // lower(U+00C3) -> U+00E3 + // lower(U+00C4) -> U+00E4 + // Number of runes visited: 6594 + // 0000..001F: Common + // 0020..0020: Common + // 0021..0023: Common + // 0024..0024: Common +} + +// Excerpt from UnicodeData.txt +const unicodeData = ` +00B9;SUPERSCRIPT ONE;No;0;EN; 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;; +00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L; 006F;;;;N;;;;; +00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;; +00BC;VULGAR FRACTION ONE QUARTER;No;0;ON; 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; +00BD;VULGAR FRACTION ONE HALF;No;0;ON; 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; +00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON; 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; +00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; +00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; +00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; +00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; +00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; +00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; + +# A legacy rune range. +3400;;Lo;0;L;;;;;N;;;;; +4DB5;;Lo;0;L;;;;;N;;;;; +` + +// Excerpt from Scripts.txt +const scripts = ` +# Property: Script +# ================================================ + +0000..001F ; Common # Cc [32] .. +0020 ; Common # Zs SPACE +0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN +0024 ; Common # Sc DOLLAR SIGN +` diff --git a/vendor/golang.org/x/text/internal/ucd/ucd.go b/vendor/golang.org/x/text/internal/ucd/ucd.go new file mode 100644 index 00000000..2b0d1a1c --- /dev/null +++ b/vendor/golang.org/x/text/internal/ucd/ucd.go @@ -0,0 +1,363 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ucd provides a parser for Unicode Character Database files, the +// format of which is defined in http://www.unicode.org/reports/tr44/. See +// http://www.unicode.org/Public/UCD/latest/ucd/ for example files. +// +// It currently does not support substitutions of missing fields. +package ucd // import "golang.org/x/text/internal/ucd" + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "io" + "log" + "regexp" + "strconv" + "strings" +) + +// UnicodeData.txt fields. +const ( + CodePoint = iota + Name + GeneralCategory + CanonicalCombiningClass + BidiClass + DecompMapping + DecimalValue + DigitValue + NumericValue + BidiMirrored + Unicode1Name + ISOComment + SimpleUppercaseMapping + SimpleLowercaseMapping + SimpleTitlecaseMapping +) + +// Parse calls f for each entry in the given reader of a UCD file. It will close +// the reader upon return. It will call log.Fatal if any error occurred. +// +// This implements the most common usage pattern of using Parser. +func Parse(r io.ReadCloser, f func(p *Parser)) { + defer r.Close() + + p := New(r) + for p.Next() { + f(p) + } + if err := p.Err(); err != nil { + r.Close() // os.Exit will cause defers not to be called. + log.Fatal(err) + } +} + +// An Option is used to configure a Parser. +type Option func(p *Parser) + +func keepRanges(p *Parser) { + p.keepRanges = true +} + +var ( + // KeepRanges prevents the expansion of ranges. The raw ranges can be + // obtained by calling Range(0) on the parser. + KeepRanges Option = keepRanges +) + +// The Part option register a handler for lines starting with a '@'. The text +// after a '@' is available as the first field. Comments are handled as usual. +func Part(f func(p *Parser)) Option { + return func(p *Parser) { + p.partHandler = f + } +} + +// A Parser parses Unicode Character Database (UCD) files. +type Parser struct { + scanner *bufio.Scanner + + keepRanges bool // Don't expand rune ranges in field 0. + + err error + comment []byte + field [][]byte + // parsedRange is needed in case Range(0) is called more than once for one + // field. In some cases this requires scanning ahead. + parsedRange bool + rangeStart, rangeEnd rune + + partHandler func(p *Parser) +} + +func (p *Parser) setError(err error) { + if p.err == nil { + p.err = err + } +} + +func (p *Parser) getField(i int) []byte { + if i >= len(p.field) { + p.setError(fmt.Errorf("ucd: index of field %d out of bounds", i)) + return nil + } + return p.field[i] +} + +// Err returns a non-nil error if any error occurred during parsing. +func (p *Parser) Err() error { + return p.err +} + +// New returns a Parser for the given Reader. +func New(r io.Reader, o ...Option) *Parser { + p := &Parser{ + scanner: bufio.NewScanner(r), + } + for _, f := range o { + f(p) + } + return p +} + +// Next parses the next line in the file. It returns true if a line was parsed +// and false if it reached the end of the file. +func (p *Parser) Next() bool { + if !p.keepRanges && p.rangeStart < p.rangeEnd { + p.rangeStart++ + return true + } + p.comment = nil + p.field = p.field[:0] + p.parsedRange = false + + for p.scanner.Scan() { + b := p.scanner.Bytes() + if len(b) == 0 || b[0] == '#' { + continue + } + + // Parse line + if i := bytes.IndexByte(b, '#'); i != -1 { + p.comment = bytes.TrimSpace(b[i+1:]) + b = b[:i] + } + if b[0] == '@' { + if p.partHandler != nil { + p.field = append(p.field, bytes.TrimSpace(b[1:])) + p.partHandler(p) + p.field = p.field[:0] + } + p.comment = nil + continue + } + for { + i := bytes.IndexByte(b, ';') + if i == -1 { + p.field = append(p.field, bytes.TrimSpace(b)) + break + } + p.field = append(p.field, bytes.TrimSpace(b[:i])) + b = b[i+1:] + } + if !p.keepRanges { + p.rangeStart, p.rangeEnd = p.getRange(0) + } + return true + } + p.setError(p.scanner.Err()) + return false +} + +func parseRune(b []byte) (rune, error) { + if len(b) > 2 && b[0] == 'U' && b[1] == '+' { + b = b[2:] + } + x, err := strconv.ParseUint(string(b), 16, 32) + return rune(x), err +} + +func (p *Parser) parseRune(b []byte) rune { + x, err := parseRune(b) + p.setError(err) + return x +} + +// Rune parses and returns field i as a rune. +func (p *Parser) Rune(i int) rune { + if i > 0 || p.keepRanges { + return p.parseRune(p.getField(i)) + } + return p.rangeStart +} + +// Runes interprets and returns field i as a sequence of runes. +func (p *Parser) Runes(i int) (runes []rune) { + add := func(b []byte) { + if b = bytes.TrimSpace(b); len(b) > 0 { + runes = append(runes, p.parseRune(b)) + } + } + for b := p.getField(i); ; { + i := bytes.IndexByte(b, ' ') + if i == -1 { + add(b) + break + } + add(b[:i]) + b = b[i+1:] + } + return +} + +var ( + errIncorrectLegacyRange = errors.New("ucd: unmatched <* First>") + + // reRange matches one line of a legacy rune range. + reRange = regexp.MustCompile("^([0-9A-F]*);<([^,]*), ([^>]*)>(.*)$") +) + +// Range parses and returns field i as a rune range. A range is inclusive at +// both ends. If the field only has one rune, first and last will be identical. +// It supports the legacy format for ranges used in UnicodeData.txt. +func (p *Parser) Range(i int) (first, last rune) { + if !p.keepRanges { + return p.rangeStart, p.rangeStart + } + return p.getRange(i) +} + +func (p *Parser) getRange(i int) (first, last rune) { + b := p.getField(i) + if k := bytes.Index(b, []byte("..")); k != -1 { + return p.parseRune(b[:k]), p.parseRune(b[k+2:]) + } + // The first field may not be a rune, in which case we may ignore any error + // and set the range as 0..0. + x, err := parseRune(b) + if err != nil { + // Disable range parsing henceforth. This ensures that an error will be + // returned if the user subsequently will try to parse this field as + // a Rune. + p.keepRanges = true + } + // Special case for UnicodeData that was retained for backwards compatibility. + if i == 0 && len(p.field) > 1 && bytes.HasSuffix(p.field[1], []byte("First>")) { + if p.parsedRange { + return p.rangeStart, p.rangeEnd + } + mf := reRange.FindStringSubmatch(p.scanner.Text()) + if mf == nil || !p.scanner.Scan() { + p.setError(errIncorrectLegacyRange) + return x, x + } + // Using Bytes would be more efficient here, but Text is a lot easier + // and this is not a frequent case. + ml := reRange.FindStringSubmatch(p.scanner.Text()) + if ml == nil || mf[2] != ml[2] || ml[3] != "Last" || mf[4] != ml[4] { + p.setError(errIncorrectLegacyRange) + return x, x + } + p.rangeStart, p.rangeEnd = x, p.parseRune(p.scanner.Bytes()[:len(ml[1])]) + p.parsedRange = true + return p.rangeStart, p.rangeEnd + } + return x, x +} + +// bools recognizes all valid UCD boolean values. +var bools = map[string]bool{ + "": false, + "N": false, + "No": false, + "F": false, + "False": false, + "Y": true, + "Yes": true, + "T": true, + "True": true, +} + +// Bool parses and returns field i as a boolean value. +func (p *Parser) Bool(i int) bool { + b := p.getField(i) + for s, v := range bools { + if bstrEq(b, s) { + return v + } + } + p.setError(strconv.ErrSyntax) + return false +} + +// Int parses and returns field i as an integer value. +func (p *Parser) Int(i int) int { + x, err := strconv.ParseInt(string(p.getField(i)), 10, 64) + p.setError(err) + return int(x) +} + +// Uint parses and returns field i as an unsigned integer value. +func (p *Parser) Uint(i int) uint { + x, err := strconv.ParseUint(string(p.getField(i)), 10, 64) + p.setError(err) + return uint(x) +} + +// Float parses and returns field i as a decimal value. +func (p *Parser) Float(i int) float64 { + x, err := strconv.ParseFloat(string(p.getField(i)), 64) + p.setError(err) + return x +} + +// String parses and returns field i as a string value. +func (p *Parser) String(i int) string { + return string(p.getField(i)) +} + +// Strings parses and returns field i as a space-separated list of strings. +func (p *Parser) Strings(i int) []string { + ss := strings.Split(string(p.getField(i)), " ") + for i, s := range ss { + ss[i] = strings.TrimSpace(s) + } + return ss +} + +// Comment returns the comments for the current line. +func (p *Parser) Comment() string { + return string(p.comment) +} + +var errUndefinedEnum = errors.New("ucd: undefined enum value") + +// Enum interprets and returns field i as a value that must be one of the values +// in enum. +func (p *Parser) Enum(i int, enum ...string) string { + b := p.getField(i) + for _, s := range enum { + if bstrEq(b, s) { + return s + } + } + p.setError(errUndefinedEnum) + return "" +} + +func bstrEq(b []byte, s string) bool { + if len(b) != len(s) { + return false + } + for i, c := range b { + if c != s[i] { + return false + } + } + return true +} diff --git a/vendor/golang.org/x/text/internal/ucd/ucd_test.go b/vendor/golang.org/x/text/internal/ucd/ucd_test.go new file mode 100644 index 00000000..11a6542e --- /dev/null +++ b/vendor/golang.org/x/text/internal/ucd/ucd_test.go @@ -0,0 +1,105 @@ +package ucd + +import ( + "strings" + "testing" +) + +const file = ` +# Comments should be skipped +# rune; bool; uint; int; float; runes; # Y +0..0005; Y; 0; 2; -5.25 ; 0 1 2 3 4 5; +6..0007; Yes ; 6; 1; -4.25 ; 0006 0007; +8; T ; 8 ; 0 ;-3.25 ;;# T +9; True ;9 ; -1;-2.25 ; 0009; + +# more comments to be ignored +@Part0 + +A; N; 10 ; -2; -1.25; ;# N +B; No; 11 ; -3; -0.25; +C; False;12; -4; 0.75; +D; ;13;-5;1.75; + +@Part1 # Another part. +# We test part comments get removed by not commenting the the next line. +E..10FFFF; F; 14 ; -6; 2.75; +` + +var want = []struct { + start, end rune +}{ + {0x00, 0x05}, + {0x06, 0x07}, + {0x08, 0x08}, + {0x09, 0x09}, + {0x0A, 0x0A}, + {0x0B, 0x0B}, + {0x0C, 0x0C}, + {0x0D, 0x0D}, + {0x0E, 0x10FFFF}, +} + +func TestGetters(t *testing.T) { + parts := [][2]string{ + {"Part0", ""}, + {"Part1", "Another part."}, + } + handler := func(p *Parser) { + if len(parts) == 0 { + t.Error("Part handler invoked too many times.") + return + } + want := parts[0] + parts = parts[1:] + if got0, got1 := p.String(0), p.Comment(); got0 != want[0] || got1 != want[1] { + t.Errorf(`part: got %q, %q; want %q"`, got0, got1, want) + } + } + + p := New(strings.NewReader(file), KeepRanges, Part(handler)) + for i := 0; p.Next(); i++ { + start, end := p.Range(0) + w := want[i] + if start != w.start || end != w.end { + t.Fatalf("%d:Range(0); got %#x..%#x; want %#x..%#x", i, start, end, w.start, w.end) + } + if w.start == w.end && p.Rune(0) != w.start { + t.Errorf("%d:Range(0).start: got %U; want %U", i, p.Rune(0), w.start) + } + if got, want := p.Bool(1), w.start <= 9; got != want { + t.Errorf("%d:Bool(1): got %v; want %v", i, got, want) + } + if got := p.Rune(4); got != 0 || p.Err() == nil { + t.Errorf("%d:Rune(%q): got no error; want error", i, p.String(1)) + } + p.err = nil + if got := p.Uint(2); rune(got) != start { + t.Errorf("%d:Uint(2): got %v; want %v", i, got, start) + } + if got, want := p.Int(3), 2-i; got != want { + t.Errorf("%d:Int(3): got %v; want %v", i, got, want) + } + if got, want := p.Float(4), -5.25+float64(i); got != want { + t.Errorf("%d:Int(3): got %v; want %v", i, got, want) + } + if got := p.Runes(5); got == nil { + if p.String(5) != "" { + t.Errorf("%d:Runes(5): expected non-empty list", i) + } + } else { + if got[0] != start || got[len(got)-1] != end { + t.Errorf("%d:Runes(5): got %#x; want %#x..%#x", i, got, start, end) + } + } + if got := p.Comment(); got != "" && got != p.String(1) { + t.Errorf("%d:Comment(): got %v; want %v", i, got, p.String(1)) + } + } + if err := p.Err(); err != nil { + t.Errorf("Parser error: %v", err) + } + if len(parts) != 0 { + t.Errorf("expected %d more invocations of part handler", len(parts)) + } +} diff --git a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go new file mode 100644 index 00000000..575cea87 --- /dev/null +++ b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go @@ -0,0 +1,87 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package utf8internal contains low-level utf8-related constants, tables, etc. +// that are used internally by the text package. +package utf8internal + +// The default lowest and highest continuation byte. +const ( + LoCB = 0x80 // 1000 0000 + HiCB = 0xBF // 1011 1111 +) + +// Constants related to getting information of first bytes of UTF-8 sequences. +const ( + // ASCII identifies a UTF-8 byte as ASCII. + ASCII = as + + // FirstInvalid indicates a byte is invalid as a first byte of a UTF-8 + // sequence. + FirstInvalid = xx + + // SizeMask is a mask for the size bits. Use use x&SizeMask to get the size. + SizeMask = 7 + + // AcceptShift is the right-shift count for the first byte info byte to get + // the index into the AcceptRanges table. See AcceptRanges. + AcceptShift = 4 + + // The names of these constants are chosen to give nice alignment in the + // table below. The first nibble is an index into acceptRanges or F for + // special one-byte cases. The second nibble is the Rune length or the + // Status for the special one-byte case. + xx = 0xF1 // invalid: size 1 + as = 0xF0 // ASCII: size 1 + s1 = 0x02 // accept 0, size 2 + s2 = 0x13 // accept 1, size 3 + s3 = 0x03 // accept 0, size 3 + s4 = 0x23 // accept 2, size 3 + s5 = 0x34 // accept 3, size 4 + s6 = 0x04 // accept 0, size 4 + s7 = 0x44 // accept 4, size 4 +) + +// First is information about the first byte in a UTF-8 sequence. +var First = [256]uint8{ + // 1 2 3 4 5 6 7 8 9 A B C D E F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x00-0x0F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x10-0x1F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x20-0x2F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x30-0x3F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x40-0x4F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x50-0x5F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x60-0x6F + as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x70-0x7F + // 1 2 3 4 5 6 7 8 9 A B C D E F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x80-0x8F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x90-0x9F + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xA0-0xAF + xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xB0-0xBF + xx, xx, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xC0-0xCF + s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xD0-0xDF + s2, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s4, s3, s3, // 0xE0-0xEF + s5, s6, s6, s6, s7, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xF0-0xFF +} + +// AcceptRange gives the range of valid values for the second byte in a UTF-8 +// sequence for any value for First that is not ASCII or FirstInvalid. +type AcceptRange struct { + Lo uint8 // lowest value for second byte. + Hi uint8 // highest value for second byte. +} + +// AcceptRanges is a slice of AcceptRange values. For a given byte sequence b +// +// AcceptRanges[First[b[0]]>>AcceptShift] +// +// will give the value of AcceptRange for the multi-byte UTF-8 sequence starting +// at b[0]. +var AcceptRanges = [...]AcceptRange{ + 0: {LoCB, HiCB}, + 1: {0xA0, HiCB}, + 2: {LoCB, 0x9F}, + 3: {0x90, HiCB}, + 4: {LoCB, 0x8F}, +} diff --git a/vendor/golang.org/x/text/language/Makefile b/vendor/golang.org/x/text/language/Makefile new file mode 100644 index 00000000..79f00578 --- /dev/null +++ b/vendor/golang.org/x/text/language/Makefile @@ -0,0 +1,16 @@ +# Copyright 2013 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +CLEANFILES+=maketables + +maketables: maketables.go + go build $^ + +tables: maketables + ./maketables > tables.go + gofmt -w -s tables.go + +# Build (but do not run) maketables during testing, +# just to make sure it still compiles. +testshort: maketables diff --git a/vendor/golang.org/x/text/language/common.go b/vendor/golang.org/x/text/language/common.go new file mode 100644 index 00000000..a255bb0a --- /dev/null +++ b/vendor/golang.org/x/text/language/common.go @@ -0,0 +1,16 @@ +// This file was generated by go generate; DO NOT EDIT + +package language + +// This file contains code common to the maketables.go and the package code. + +// langAliasType is the type of an alias in langAliasMap. +type langAliasType int8 + +const ( + langDeprecated langAliasType = iota + langMacro + langLegacy + + langAliasTypeUnknown langAliasType = -1 +) diff --git a/vendor/golang.org/x/text/language/coverage.go b/vendor/golang.org/x/text/language/coverage.go new file mode 100644 index 00000000..101fd23c --- /dev/null +++ b/vendor/golang.org/x/text/language/coverage.go @@ -0,0 +1,197 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "fmt" + "sort" +) + +// The Coverage interface is used to define the level of coverage of an +// internationalization service. Note that not all types are supported by all +// services. As lists may be generated on the fly, it is recommended that users +// of a Coverage cache the results. +type Coverage interface { + // Tags returns the list of supported tags. + Tags() []Tag + + // BaseLanguages returns the list of supported base languages. + BaseLanguages() []Base + + // Scripts returns the list of supported scripts. + Scripts() []Script + + // Regions returns the list of supported regions. + Regions() []Region +} + +var ( + // Supported defines a Coverage that lists all supported subtags. Tags + // always returns nil. + Supported Coverage = allSubtags{} +) + +// TODO: +// - Support Variants, numbering systems. +// - CLDR coverage levels. +// - Set of common tags defined in this package. + +type allSubtags struct{} + +// Regions returns the list of supported regions. As all regions are in a +// consecutive range, it simply returns a slice of numbers in increasing order. +// The "undefined" region is not returned. +func (s allSubtags) Regions() []Region { + reg := make([]Region, numRegions) + for i := range reg { + reg[i] = Region{regionID(i + 1)} + } + return reg +} + +// Scripts returns the list of supported scripts. As all scripts are in a +// consecutive range, it simply returns a slice of numbers in increasing order. +// The "undefined" script is not returned. +func (s allSubtags) Scripts() []Script { + scr := make([]Script, numScripts) + for i := range scr { + scr[i] = Script{scriptID(i + 1)} + } + return scr +} + +// BaseLanguages returns the list of all supported base languages. It generates +// the list by traversing the internal structures. +func (s allSubtags) BaseLanguages() []Base { + base := make([]Base, 0, numLanguages) + for i := 0; i < langNoIndexOffset; i++ { + // We included "und" already for the value 0. + if i != nonCanonicalUnd { + base = append(base, Base{langID(i)}) + } + } + i := langNoIndexOffset + for _, v := range langNoIndex { + for k := 0; k < 8; k++ { + if v&1 == 1 { + base = append(base, Base{langID(i)}) + } + v >>= 1 + i++ + } + } + return base +} + +// Tags always returns nil. +func (s allSubtags) Tags() []Tag { + return nil +} + +// coverage is used used by NewCoverage which is used as a convenient way for +// creating Coverage implementations for partially defined data. Very often a +// package will only need to define a subset of slices. coverage provides a +// convenient way to do this. Moreover, packages using NewCoverage, instead of +// their own implementation, will not break if later new slice types are added. +type coverage struct { + tags func() []Tag + bases func() []Base + scripts func() []Script + regions func() []Region +} + +func (s *coverage) Tags() []Tag { + if s.tags == nil { + return nil + } + return s.tags() +} + +// bases implements sort.Interface and is used to sort base languages. +type bases []Base + +func (b bases) Len() int { + return len(b) +} + +func (b bases) Swap(i, j int) { + b[i], b[j] = b[j], b[i] +} + +func (b bases) Less(i, j int) bool { + return b[i].langID < b[j].langID +} + +// BaseLanguages returns the result from calling s.bases if it is specified or +// otherwise derives the set of supported base languages from tags. +func (s *coverage) BaseLanguages() []Base { + if s.bases == nil { + tags := s.Tags() + if len(tags) == 0 { + return nil + } + a := make([]Base, len(tags)) + for i, t := range tags { + a[i] = Base{langID(t.lang)} + } + sort.Sort(bases(a)) + k := 0 + for i := 1; i < len(a); i++ { + if a[k] != a[i] { + k++ + a[k] = a[i] + } + } + return a[:k+1] + } + return s.bases() +} + +func (s *coverage) Scripts() []Script { + if s.scripts == nil { + return nil + } + return s.scripts() +} + +func (s *coverage) Regions() []Region { + if s.regions == nil { + return nil + } + return s.regions() +} + +// NewCoverage returns a Coverage for the given lists. It is typically used by +// packages providing internationalization services to define their level of +// coverage. A list may be of type []T or func() []T, where T is either Tag, +// Base, Script or Region. The returned Coverage derives the value for Bases +// from Tags if no func or slice for []Base is specified. For other unspecified +// types the returned Coverage will return nil for the respective methods. +func NewCoverage(list ...interface{}) Coverage { + s := &coverage{} + for _, x := range list { + switch v := x.(type) { + case func() []Base: + s.bases = v + case func() []Script: + s.scripts = v + case func() []Region: + s.regions = v + case func() []Tag: + s.tags = v + case []Base: + s.bases = func() []Base { return v } + case []Script: + s.scripts = func() []Script { return v } + case []Region: + s.regions = func() []Region { return v } + case []Tag: + s.tags = func() []Tag { return v } + default: + panic(fmt.Sprintf("language: unsupported set type %T", v)) + } + } + return s +} diff --git a/vendor/golang.org/x/text/language/coverage_test.go b/vendor/golang.org/x/text/language/coverage_test.go new file mode 100644 index 00000000..8e08e5ca --- /dev/null +++ b/vendor/golang.org/x/text/language/coverage_test.go @@ -0,0 +1,154 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "fmt" + "reflect" + "testing" +) + +func TestSupported(t *testing.T) { + // To prove the results are correct for a type, we test that the number of + // results is identical to the number of results on record, that all results + // are distinct and that all results are valid. + tests := map[string]int{ + "BaseLanguages": numLanguages, + "Scripts": numScripts, + "Regions": numRegions, + "Tags": 0, + } + sup := reflect.ValueOf(Supported) + for name, num := range tests { + v := sup.MethodByName(name).Call(nil)[0] + if n := v.Len(); n != num { + t.Errorf("len(%s()) was %d; want %d", name, n, num) + } + dup := make(map[string]bool) + for i := 0; i < v.Len(); i++ { + x := v.Index(i).Interface() + // An invalid value will either cause a crash or result in a + // duplicate when passed to Sprint. + s := fmt.Sprint(x) + if dup[s] { + t.Errorf("%s: duplicate entry %q", name, s) + } + dup[s] = true + } + if len(dup) != v.Len() { + t.Errorf("%s: # unique entries was %d; want %d", name, len(dup), v.Len()) + } + } +} + +func TestNewCoverage(t *testing.T) { + bases := []Base{Base{0}, Base{3}, Base{7}} + scripts := []Script{Script{11}, Script{17}, Script{23}} + regions := []Region{Region{101}, Region{103}, Region{107}} + tags := []Tag{Make("pt"), Make("en"), Make("en-GB"), Make("en-US"), Make("pt-PT")} + fbases := func() []Base { return bases } + fscripts := func() []Script { return scripts } + fregions := func() []Region { return regions } + ftags := func() []Tag { return tags } + + tests := []struct { + desc string + list []interface{} + bases []Base + scripts []Script + regions []Region + tags []Tag + }{ + { + desc: "empty", + }, + { + desc: "bases", + list: []interface{}{bases}, + bases: bases, + }, + { + desc: "scripts", + list: []interface{}{scripts}, + scripts: scripts, + }, + { + desc: "regions", + list: []interface{}{regions}, + regions: regions, + }, + { + desc: "bases derives from tags", + list: []interface{}{tags}, + bases: []Base{Base{_en}, Base{_pt}}, + tags: tags, + }, + { + desc: "tags and bases", + list: []interface{}{tags, bases}, + bases: bases, + tags: tags, + }, + { + desc: "fully specified", + list: []interface{}{tags, bases, scripts, regions}, + bases: bases, + scripts: scripts, + regions: regions, + tags: tags, + }, + { + desc: "bases func", + list: []interface{}{fbases}, + bases: bases, + }, + { + desc: "scripts func", + list: []interface{}{fscripts}, + scripts: scripts, + }, + { + desc: "regions func", + list: []interface{}{fregions}, + regions: regions, + }, + { + desc: "tags func", + list: []interface{}{ftags}, + bases: []Base{Base{_en}, Base{_pt}}, + tags: tags, + }, + { + desc: "tags and bases", + list: []interface{}{ftags, fbases}, + bases: bases, + tags: tags, + }, + { + desc: "fully specified", + list: []interface{}{ftags, fbases, fscripts, fregions}, + bases: bases, + scripts: scripts, + regions: regions, + tags: tags, + }, + } + + for i, tt := range tests { + l := NewCoverage(tt.list...) + if a := l.BaseLanguages(); !reflect.DeepEqual(a, tt.bases) { + t.Errorf("%d:%s: BaseLanguages was %v; want %v", i, tt.desc, a, tt.bases) + } + if a := l.Scripts(); !reflect.DeepEqual(a, tt.scripts) { + t.Errorf("%d:%s: Scripts was %v; want %v", i, tt.desc, a, tt.scripts) + } + if a := l.Regions(); !reflect.DeepEqual(a, tt.regions) { + t.Errorf("%d:%s: Regions was %v; want %v", i, tt.desc, a, tt.regions) + } + if a := l.Tags(); !reflect.DeepEqual(a, tt.tags) { + t.Errorf("%d:%s: Tags was %v; want %v", i, tt.desc, a, tt.tags) + } + } +} diff --git a/vendor/golang.org/x/text/language/data_test.go b/vendor/golang.org/x/text/language/data_test.go new file mode 100644 index 00000000..738df467 --- /dev/null +++ b/vendor/golang.org/x/text/language/data_test.go @@ -0,0 +1,416 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +type matchTest struct { + comment string + supported string + test []struct{ match, desired string } +} + +var matchTests = []matchTest{ + { + "basics", + "fr, en-GB, en", + []struct{ match, desired string }{ + {"en-GB", "en-GB"}, + {"en", "en-US"}, + {"fr", "fr-FR"}, + {"fr", "ja-JP"}, + }, + }, + { + "script fallbacks", + "zh-CN, zh-TW, iw", + []struct{ match, desired string }{ + {"zh-TW", "zh-Hant"}, + {"zh-CN", "zh"}, + {"zh-CN", "zh-Hans-CN"}, + {"zh-TW", "zh-Hant-HK"}, + {"iw", "he-IT"}, + }, + }, + { + "language-specific script fallbacks 1", + "en, sr, nl", + []struct{ match, desired string }{ + {"sr", "sr-Latn"}, + {"en", "sh"}, + {"en", "hr"}, + {"en", "bs"}, + {"en", "nl-Cyrl"}, + }, + }, + { + "language-specific script fallbacks 2", + "en, sh", + []struct{ match, desired string }{ + {"sh", "sr"}, + {"sh", "sr-Cyrl"}, + {"sh", "hr"}, + }, + }, + { + "both deprecated and not", + "fil, tl, iw, he", + []struct{ match, desired string }{ + {"he", "he-IT"}, + {"he", "he"}, + {"iw", "iw"}, + {"fil", "fil-IT"}, + {"fil", "fil"}, + {"tl", "tl"}, + }, + }, + { + "nearby languages", + "en, fil, ro, nn", + []struct{ match, desired string }{ + {"fil", "tl"}, + {"ro", "mo"}, + {"nn", "nb"}, + {"en", "ja"}, // make sure default works + }, + }, + { + "nearby languages: Nynorsk to BokmÃ¥l", + "en, nb", + []struct{ match, desired string }{ + {"nb", "nn"}, + }, + }, + { + "nearby languages: Danish does not match nn", + "en, nn", + []struct{ match, desired string }{ + {"en", "da"}, + }, + }, + { + "nearby languages: Danish matches no", + "en, no", + []struct{ match, desired string }{ + {"no", "da"}, + }, + }, + { + "nearby languages: Danish matches nb", + "en, nb", + []struct{ match, desired string }{ + {"nb", "da"}, + }, + }, + { + "prefer matching languages over language variants.", + "nn, en-GB", + []struct{ match, desired string }{ + {"en-GB", "no, en-US"}, + {"en-GB", "nb, en-US"}, + }, + }, + { + "deprecated version is closer than same language with other differences", + "nl, he, en-GB", + []struct{ match, desired string }{ + {"he", "iw, en-US"}, + }, + }, + { + "macro equivalent is closer than same language with other differences", + "nl, zh, en-GB, no", + []struct{ match, desired string }{ + {"zh", "cmn, en-US"}, + {"no", "nb, en-US"}, + }, + }, + { + "legacy equivalent is closer than same language with other differences", + "nl, fil, en-GB", + []struct{ match, desired string }{ + {"fil", "tl, en-US"}, + }, + }, + { + "exact over equivalent", + "en, ro, mo, ro-MD", + []struct{ match, desired string }{ + {"ro", "ro"}, + {"mo", "mo"}, + {"ro-MD", "ro-MD"}, + }, + }, + { + "maximization of legacy", + "sr-Cyrl, sr-Latn, ro, ro-MD", + []struct{ match, desired string }{ + {"sr-Latn", "sh"}, + {"ro-MD", "mo"}, + }, + }, + { + "empty", + "", + []struct{ match, desired string }{ + {"und", "fr"}, + {"und", "en"}, + }, + }, + { + "private use subtags", + "fr, en-GB, x-bork, es-ES, es-419", + []struct{ match, desired string }{ + {"fr", "x-piglatin"}, + {"x-bork", "x-bork"}, + }, + }, + { + "grandfathered codes", + "fr, i-klingon, en-Latn-US", + []struct{ match, desired string }{ + {"en-Latn-US", "en-GB-oed"}, + {"tlh", "i-klingon"}, + }, + }, + { + "exact match", + "fr, en-GB, ja, es-ES, es-MX", + []struct{ match, desired string }{ + {"ja", "ja, de"}, + }, + }, + { + "simple variant match", + "fr, en-GB, ja, es-ES, es-MX", + []struct{ match, desired string }{ + // Intentionally avoiding a perfect-match or two candidates for variant matches. + {"en-GB", "de, en-US"}, + // Fall back. + {"fr", "de, zh"}, + }, + }, + { + "best match for traditional Chinese", + // Scenario: An application that only supports Simplified Chinese (and some + // other languages), but does not support Traditional Chinese. zh-Hans-CN + // could be replaced with zh-CN, zh, or zh-Hans, it wouldn't make much of + // a difference. + "fr, zh-Hans-CN, en-US", + []struct{ match, desired string }{ + {"zh-Hans-CN", "zh-TW"}, + {"zh-Hans-CN", "zh-Hant"}, + // One can avoid a zh-Hant to zh-Hans match by including a second language + // preference which is a better match. + {"en-US", "zh-TW, en"}, + {"en-US", "zh-Hant-CN, en"}, + {"zh-Hans-CN", "zh-Hans, en"}, + }, + }, + // More specific region and script tie-breakers. + { + "more specific script should win in case regions are identical", + "af, af-Latn, af-Arab", + []struct{ match, desired string }{ + {"af", "af"}, + {"af", "af-ZA"}, + {"af-Latn", "af-Latn-ZA"}, + {"af-Latn", "af-Latn"}, + }, + }, + { + "more specific region should win", + "nl, nl-NL, nl-BE", + []struct{ match, desired string }{ + {"nl", "nl"}, + {"nl", "nl-Latn"}, + {"nl-NL", "nl-Latn-NL"}, + {"nl-NL", "nl-NL"}, + }, + }, + { + "more specific region wins over more specific script", + "nl, nl-Latn, nl-NL, nl-BE", + []struct{ match, desired string }{ + {"nl", "nl"}, + {"nl-Latn", "nl-Latn"}, + {"nl-NL", "nl-NL"}, + {"nl-NL", "nl-Latn-NL"}, + }, + }, + // Region distance tie-breakers. + { + "region distance Portuguese", + "pt, pt-PT", + []struct{ match, desired string }{ + {"pt-PT", "pt-ES"}, + }, + }, + { + "region distance French", + "en, fr, fr-CA, fr-CH", + []struct{ match, desired string }{ + {"fr-CA", "fr-US"}, + }, + }, + { + "region distance German", + "de-AT, de-DE, de-CH", + []struct{ match, desired string }{ + {"de-DE", "de"}, + }, + }, + { + "en-AU is closer to en-GB than to en (which is en-US)", + "en, en-GB, es-ES, es-419", + []struct{ match, desired string }{ + {"en-GB", "en-AU"}, + {"es-419", "es-MX"}, + {"es-ES", "es-PT"}, + }, + }, + // Test exceptions with "und". + // When the undefined language doesn't match anything in the list, return the default, as usual. + // max("und") = "en-Latn-US", and since matching is based on maximized tags, the undefined + // language would normally match English. But that would produce the counterintuitive results. + // Matching "und" to "it,en" would be "en" matching "en" to "it,und" would be "und". + // To avoid this max("und") is defined as "und" + { + "undefined", + "it, fr", + []struct{ match, desired string }{ + {"it", "und"}, + }, + }, + { + "und does not match en", + "it, en", + []struct{ match, desired string }{ + {"it", "und"}, + }, + }, + { + "undefined in priority list", + "it, und", + []struct{ match, desired string }{ + {"und", "und"}, + {"it", "en"}, + }, + }, + // Undefined scripts and regions. + { + "undefined", + "it, fr, zh", + []struct{ match, desired string }{ + {"fr", "und-FR"}, + {"zh", "und-CN"}, + {"zh", "und-Hans"}, + {"zh", "und-Hant"}, + {"it", "und-Latn"}, + }, + }, + // Early termination conditions: do not consider all desired strings if + // a match is good enough. + { + "match on maximized tag", + "fr, en-GB, ja, es-ES, es-MX", + []struct{ match, desired string }{ + // ja-JP matches ja on likely subtags, and it's listed first, + // thus it wins over the second preference en-GB. + {"ja", "ja-JP, en-GB"}, + {"ja", "ja-Jpan-JP, en-GB"}, + }, + }, + { + "pick best maximized tag", + "ja, ja-Jpan-US, ja-JP, en, ru", + []struct{ match, desired string }{ + {"ja", "ja-Jpan, ru"}, + {"ja-JP", "ja-JP, ru"}, + {"ja-Jpan-US", "ja-US, ru"}, + }, + }, + { + "termination: pick best maximized match", + "ja, ja-Jpan, ja-JP, en, ru", + []struct{ match, desired string }{ + {"ja-JP", "ja-Jpan-JP, ru"}, + {"ja-Jpan", "ja-Jpan, ru"}, + }, + }, + { + "no match on maximized", + "en, de, fr, ja", + []struct{ match, desired string }{ + // de maximizes to de-DE. + // Pick the exact match for the secondary language instead. + {"fr", "de-CH, fr"}, + }, + }, + + // Test that the CLDR parent relations are correctly preserved by the matcher. + // These matches may change for different CLDR versions. + { + "parent relation preserved", + "en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK", + []struct{ match, desired string }{ + {"en-GB", "en-150"}, + {"en-GB", "en-AU"}, + {"en-GB", "en-BE"}, + {"en-GB", "en-GG"}, + {"en-GB", "en-GI"}, + {"en-GB", "en-HK"}, + {"en-GB", "en-IE"}, + {"en-GB", "en-IM"}, + {"en-GB", "en-IN"}, + {"en-GB", "en-JE"}, + {"en-GB", "en-MT"}, + {"en-GB", "en-NZ"}, + {"en-GB", "en-PK"}, + {"en-GB", "en-SG"}, + {"en-GB", "en-DE"}, + {"en-GB", "en-MT"}, + {"es-419", "es-AR"}, + {"es-419", "es-BO"}, + {"es-419", "es-CL"}, + {"es-419", "es-CO"}, + {"es-419", "es-CR"}, + {"es-419", "es-CU"}, + {"es-419", "es-DO"}, + {"es-419", "es-EC"}, + {"es-419", "es-GT"}, + {"es-419", "es-HN"}, + {"es-419", "es-MX"}, + {"es-419", "es-NI"}, + {"es-419", "es-PA"}, + {"es-419", "es-PE"}, + {"es-419", "es-PR"}, + {"es-419", "es-PY"}, + {"es-419", "es-SV"}, + {"es-419", "es-US"}, + {"es-419", "es-UY"}, + {"es-419", "es-VE"}, + {"pt-PT", "pt-AO"}, + {"pt-PT", "pt-CV"}, + {"pt-PT", "pt-GW"}, + {"pt-PT", "pt-MO"}, + {"pt-PT", "pt-MZ"}, + {"pt-PT", "pt-ST"}, + {"pt-PT", "pt-TL"}, + // TODO for CLDR 24+ + // - en-001 + // - {"zh-Hant-HK", "zh-Hant-MO"}, + }, + }, + // Options and variants are inherited from user-defined settings. + { + "preserve Unicode extension", + "en, de, sl-nedis", + []struct{ match, desired string }{ + {"de-u-co-phonebk", "de-FR-u-co-phonebk"}, + {"sl-nedis-u-cu-eur", "sl-nedis-u-cu-eur"}, + {"sl-nedis-u-cu-eur", "sl-u-cu-eur"}, + {"sl-nedis-u-cu-eur", "sl-HR-nedis-u-cu-eur"}, + }, + }, +} diff --git a/vendor/golang.org/x/text/language/display/dict.go b/vendor/golang.org/x/text/language/display/dict.go new file mode 100644 index 00000000..52c11a93 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/dict.go @@ -0,0 +1,92 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package display + +// This file contains sets of data for specific languages. Users can use these +// to create smaller collections of supported languages and reduce total table +// size. + +// The variable names defined here correspond to those in package language. + +var ( + Afrikaans *Dictionary = &af // af + Amharic *Dictionary = &am // am + Arabic *Dictionary = &ar // ar + ModernStandardArabic *Dictionary = Arabic // ar-001 + Azerbaijani *Dictionary = &az // az + Bulgarian *Dictionary = &bg // bg + Bengali *Dictionary = &bn // bn + Catalan *Dictionary = &ca // ca + Czech *Dictionary = &cs // cs + Danish *Dictionary = &da // da + German *Dictionary = &de // de + Greek *Dictionary = &el // el + English *Dictionary = &en // en + AmericanEnglish *Dictionary = English // en-US + BritishEnglish *Dictionary = English // en-GB + Spanish *Dictionary = &es // es + EuropeanSpanish *Dictionary = Spanish // es-ES + LatinAmericanSpanish *Dictionary = Spanish // es-419 + Estonian *Dictionary = &et // et + Persian *Dictionary = &fa // fa + Finnish *Dictionary = &fi // fi + Filipino *Dictionary = &fil // fil + French *Dictionary = &fr // fr + Gujarati *Dictionary = &gu // gu + Hebrew *Dictionary = &he // he + Hindi *Dictionary = &hi // hi + Croatian *Dictionary = &hr // hr + Hungarian *Dictionary = &hu // hu + Armenian *Dictionary = &hy // hy + Indonesian *Dictionary = &id // id + Icelandic *Dictionary = &is // is + Italian *Dictionary = &it // it + Japanese *Dictionary = &ja // ja + Georgian *Dictionary = &ka // ka + Kazakh *Dictionary = &kk // kk + Khmer *Dictionary = &km // km + Kannada *Dictionary = &kn // kn + Korean *Dictionary = &ko // ko + Kirghiz *Dictionary = &ky // ky + Lao *Dictionary = &lo // lo + Lithuanian *Dictionary = < // lt + Latvian *Dictionary = &lv // lv + Macedonian *Dictionary = &mk // mk + Malayalam *Dictionary = &ml // ml + Mongolian *Dictionary = &mn // mn + Marathi *Dictionary = &mr // mr + Malay *Dictionary = &ms // ms + Burmese *Dictionary = &my // my + Nepali *Dictionary = &ne // ne + Dutch *Dictionary = &nl // nl + Norwegian *Dictionary = &no // no + Punjabi *Dictionary = &pa // pa + Polish *Dictionary = &pl // pl + Portuguese *Dictionary = &pt // pt + BrazilianPortuguese *Dictionary = Portuguese // pt-BR + EuropeanPortuguese *Dictionary = &ptPT // pt-PT + Romanian *Dictionary = &ro // ro + Russian *Dictionary = &ru // ru + Sinhala *Dictionary = &si // si + Slovak *Dictionary = &sk // sk + Slovenian *Dictionary = &sl // sl + Albanian *Dictionary = &sq // sq + Serbian *Dictionary = &sr // sr + SerbianLatin *Dictionary = &srLatn // sr + Swedish *Dictionary = &sv // sv + Swahili *Dictionary = &sw // sw + Tamil *Dictionary = &ta // ta + Telugu *Dictionary = &te // te + Thai *Dictionary = &th // th + Turkish *Dictionary = &tr // tr + Ukrainian *Dictionary = &uk // uk + Urdu *Dictionary = &ur // ur + Uzbek *Dictionary = &uz // uz + Vietnamese *Dictionary = &vi // vi + Chinese *Dictionary = &zh // zh + SimplifiedChinese *Dictionary = Chinese // zh-Hans + TraditionalChinese *Dictionary = &zhHant // zh-Hant + Zulu *Dictionary = &zu // zu +) diff --git a/vendor/golang.org/x/text/language/display/dict_test.go b/vendor/golang.org/x/text/language/display/dict_test.go new file mode 100644 index 00000000..f0b1f783 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/dict_test.go @@ -0,0 +1,39 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package display + +import ( + "fmt" + "testing" + + "golang.org/x/text/internal/testtext" +) + +func TestLinking(t *testing.T) { + base := getSize(t, `display.Tags(language.English).Name(language.English)`) + compact := getSize(t, `display.English.Languages().Name(language.English)`) + + if d := base - compact; d < 1.5*1024*1024 { + t.Errorf("size(base)-size(compact) was %d; want > 1.5MB", base, compact) + } +} + +func getSize(t *testing.T, main string) int { + size, err := testtext.CodeSize(fmt.Sprintf(body, main)) + if err != nil { + t.Skipf("skipping link size test; binary size could not be determined: %v", err) + } + return size +} + +const body = `package main +import ( + "golang.org/x/text/language" + "golang.org/x/text/language/display" +) +func main() { + %s +} +` diff --git a/vendor/golang.org/x/text/language/display/display.go b/vendor/golang.org/x/text/language/display/display.go new file mode 100644 index 00000000..738afa49 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/display.go @@ -0,0 +1,343 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run maketables.go -output tables.go + +// Package display provides display names for languages, scripts and regions in +// a requested language. +// +// The data is based on CLDR's localeDisplayNames. It includes the names of the +// draft level "contributed" or "approved". The resulting tables are quite +// large. The display package is designed so that users can reduce the linked-in +// table sizes by cherry picking the languages one wishes to support. There is a +// Dictionary defined for a selected set of common languages for this purpose. +package display // import "golang.org/x/text/language/display" + +import ( + "strings" + + "golang.org/x/text/language" +) + +/* +TODO: +All fairly low priority at the moment: + - Include alternative and variants as an option (using func options). + - Option for returning the empty string for undefined values. + - Support variants, currencies, time zones, option names and other data + provided in CLDR. + - Do various optimizations: + - Reduce size of offset tables. + - Consider compressing infrequently used languages and decompress on demand. +*/ + +// A Namer is used to get the name for a given value, such as a Tag, Language, +// Script or Region. +type Namer interface { + // Name returns a display string for the given value. A Namer returns an + // empty string for values it does not support. A Namer may support naming + // an unspecified value. For example, when getting the name for a region for + // a tag that does not have a defined Region, it may return the name for an + // unknown region. It is up to the user to filter calls to Name for values + // for which one does not want to have a name string. + Name(x interface{}) string +} + +var ( + // Supported lists the languages for which names are defined. + Supported language.Coverage + + // The set of all possible values for which names are defined. Note that not + // all Namer implementations will cover all the values of a given type. + // A Namer will return the empty string for unsupported values. + Values language.Coverage + + matcher language.Matcher +) + +func init() { + tags := make([]language.Tag, numSupported) + s := supported + for i := range tags { + p := strings.IndexByte(s, '|') + tags[i] = language.Raw.Make(s[:p]) + s = s[p+1:] + } + matcher = language.NewMatcher(tags) + Supported = language.NewCoverage(tags) + + Values = language.NewCoverage(langTagSet.Tags, supportedScripts, supportedRegions) +} + +// Languages returns a Namer for naming languages. It returns nil if there is no +// data for the given tag. The type passed to Name must be either language.Base +// or language.Tag. Note that the result may differ between passing a tag or its +// base language. For example, for English, passing "nl-BE" would return Flemish +// whereas passing "nl" returns "Dutch". +func Languages(t language.Tag) Namer { + if _, index, conf := matcher.Match(t); conf != language.No { + return languageNamer(index) + } + return nil +} + +type languageNamer int + +func (n languageNamer) name(i int) string { + return lookup(langHeaders[:], int(n), i) +} + +// Name implements the Namer interface for language names. +func (n languageNamer) Name(x interface{}) string { + return nameLanguage(n, x) +} + +// nonEmptyIndex walks up the parent chain until a non-empty header is found. +// It returns -1 if no index could be found. +func nonEmptyIndex(h []header, index int) int { + for ; index != -1 && h[index].data == ""; index = int(parents[index]) { + } + return index +} + +// Scripts returns a Namer for naming scripts. It returns nil if there is no +// data for the given tag. The type passed to Name must be either a +// language.Script or a language.Tag. It will not attempt to infer a script for +// tags with an unspecified script. +func Scripts(t language.Tag) Namer { + if _, index, conf := matcher.Match(t); conf != language.No { + if index = nonEmptyIndex(scriptHeaders[:], index); index != -1 { + return scriptNamer(index) + } + } + return nil +} + +type scriptNamer int + +func (n scriptNamer) name(i int) string { + return lookup(scriptHeaders[:], int(n), i) +} + +// Name implements the Namer interface for script names. +func (n scriptNamer) Name(x interface{}) string { + return nameScript(n, x) +} + +// Regions returns a Namer for naming regions. It returns nil if there is no +// data for the given tag. The type passed to Name must be either a +// language.Region or a language.Tag. It will not attempt to infer a region for +// tags with an unspecified region. +func Regions(t language.Tag) Namer { + if _, index, conf := matcher.Match(t); conf != language.No { + if index = nonEmptyIndex(regionHeaders[:], index); index != -1 { + return regionNamer(index) + } + } + return nil +} + +type regionNamer int + +func (n regionNamer) name(i int) string { + return lookup(regionHeaders[:], int(n), i) +} + +// Name implements the Namer interface for region names. +func (n regionNamer) Name(x interface{}) string { + return nameRegion(n, x) +} + +// Tags returns a Namer for giving a full description of a tag. The names of +// scripts and regions that are not already implied by the language name will +// in appended within parentheses. It returns nil if there is not data for the +// given tag. The type passed to Name must be a tag. +func Tags(t language.Tag) Namer { + if _, index, conf := matcher.Match(t); conf != language.No { + return tagNamer(index) + } + return nil +} + +type tagNamer int + +// Name implements the Namer interface for tag names. +func (n tagNamer) Name(x interface{}) string { + return nameTag(languageNamer(n), scriptNamer(n), regionNamer(n), x) +} + +// lookup finds the name for an entry in a global table, traversing the +// inheritance hierarchy if needed. +func lookup(table []header, dict, want int) string { + for dict != -1 { + if s := table[dict].name(want); s != "" { + return s + } + dict = int(parents[dict]) + } + return "" +} + +// A Dictionary holds a collection of Namers for a single language. One can +// reduce the amount of data linked in to a binary by only referencing +// Dictionaries for the languages one needs to support instead of using the +// generic Namer factories. +type Dictionary struct { + parent *Dictionary + lang header + script header + region header +} + +// Tags returns a Namer for giving a full description of a tag. The names of +// scripts and regions that are not already implied by the language name will +// in appended within parentheses. It returns nil if there is not data for the +// given tag. The type passed to Name must be a tag. +func (d *Dictionary) Tags() Namer { + return dictTags{d} +} + +type dictTags struct { + d *Dictionary +} + +// Name implements the Namer interface for tag names. +func (n dictTags) Name(x interface{}) string { + return nameTag(dictLanguages{n.d}, dictScripts{n.d}, dictRegions{n.d}, x) +} + +// Languages returns a Namer for naming languages. It returns nil if there is no +// data for the given tag. The type passed to Name must be either language.Base +// or language.Tag. Note that the result may differ between passing a tag or its +// base language. For example, for English, passing "nl-BE" would return Flemish +// whereas passing "nl" returns "Dutch". +func (d *Dictionary) Languages() Namer { + return dictLanguages{d} +} + +type dictLanguages struct { + d *Dictionary +} + +func (n dictLanguages) name(i int) string { + for d := n.d; d != nil; d = d.parent { + if s := d.lang.name(i); s != "" { + return s + } + } + return "" +} + +// Name implements the Namer interface for language names. +func (n dictLanguages) Name(x interface{}) string { + return nameLanguage(n, x) +} + +// Scripts returns a Namer for naming scripts. It returns nil if there is no +// data for the given tag. The type passed to Name must be either a +// language.Script or a language.Tag. It will not attempt to infer a script for +// tags with an unspecified script. +func (d *Dictionary) Scripts() Namer { + return dictScripts{d} +} + +type dictScripts struct { + d *Dictionary +} + +func (n dictScripts) name(i int) string { + for d := n.d; d != nil; d = d.parent { + if s := d.script.name(i); s != "" { + return s + } + } + return "" +} + +// Name implements the Namer interface for script names. +func (n dictScripts) Name(x interface{}) string { + return nameScript(n, x) +} + +// Regions returns a Namer for naming regions. It returns nil if there is no +// data for the given tag. The type passed to Name must be either a +// language.Region or a language.Tag. It will not attempt to infer a region for +// tags with an unspecified region. +func (d *Dictionary) Regions() Namer { + return dictRegions{d} +} + +type dictRegions struct { + d *Dictionary +} + +func (n dictRegions) name(i int) string { + for d := n.d; d != nil; d = d.parent { + if s := d.region.name(i); s != "" { + return s + } + } + return "" +} + +// Name implements the Namer interface for region names. +func (n dictRegions) Name(x interface{}) string { + return nameRegion(n, x) +} + +// A SelfNamer implements a Namer that returns the name of language in this same +// language. It provides a very compact mechanism to provide a comprehensive +// list of languages to users in their native language. +type SelfNamer struct { + // Supported defines the values supported by this Namer. + Supported language.Coverage +} + +var ( + // Self is a shared instance of a SelfNamer. + Self *SelfNamer = &self + + self = SelfNamer{language.NewCoverage(selfTagSet.Tags)} +) + +// Name returns the name of a given language tag in the language identified by +// this tag. It supports both the language.Base and language.Tag types. +func (n SelfNamer) Name(x interface{}) string { + t, _ := language.All.Compose(x) + base, scr, reg := t.Raw() + baseScript := language.Script{} + if (scr == language.Script{} && reg != language.Region{}) { + // For looking up in the self dictionary, we need to select the + // maximized script. This is even the case if the script isn't + // specified. + s1, _ := t.Script() + if baseScript = getScript(base); baseScript != s1 { + scr = s1 + } + } + + i, scr, reg := selfTagSet.index(base, scr, reg) + if i == -1 { + return "" + } + + // Only return the display name if the script matches the expected script. + if (scr != language.Script{}) { + if (baseScript == language.Script{}) { + baseScript = getScript(base) + } + if baseScript != scr { + return "" + } + } + + return selfHeaders[0].name(i) +} + +// getScript returns the maximized script for a base language. +func getScript(b language.Base) language.Script { + tag, _ := language.Raw.Compose(b) + scr, _ := tag.Script() + return scr +} diff --git a/vendor/golang.org/x/text/language/display/display_test.go b/vendor/golang.org/x/text/language/display/display_test.go new file mode 100644 index 00000000..3edbca44 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/display_test.go @@ -0,0 +1,632 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package display + +import ( + "fmt" + "reflect" + "testing" + "unicode" + + "golang.org/x/text/language" +) + +// TODO: test that tables are properly dropped by the linker for various use +// cases. + +var ( + firstLang2aa = language.MustParseBase("aa") + lastLang2zu = language.MustParseBase("zu") + firstLang3ace = language.MustParseBase("ace") + lastLang3zza = language.MustParseBase("zza") + firstTagAr001 = language.MustParse("ar-001") + lastTagZhHant = language.MustParse("zh-Hant") +) + +// TestValues tests that for all languages, regions, and scripts in Values, at +// least one language has a name defined for it by checking it exists in +// English, which is assumed to be the most comprehensive. It is also tested +// that a Namer returns "" for unsupported values. +func TestValues(t *testing.T) { + type testcase struct { + kind string + n Namer + } + // checkDefined checks that a value exists in a Namer. + checkDefined := func(x interface{}, namers []testcase) { + for _, n := range namers { + if n.n.Name(x) == "" { + // As of version 28 there is no data for az-Arab in English, + // although there is useful data in other languages. + if x.(fmt.Stringer).String() == "az-Arab" { + continue + } + t.Errorf("%s.Name(%s): supported but no result", n.kind, x) + } + } + } + // checkUnsupported checks that a value does not exist in a Namer. + checkUnsupported := func(x interface{}, namers []testcase) { + for _, n := range namers { + if got := n.n.Name(x); got != "" { + t.Fatalf("%s.Name(%s): unsupported tag gave non-empty result: %q", n.kind, x, got) + } + } + } + + tags := map[language.Tag]bool{} + namers := []testcase{ + {"Languages(en)", Languages(language.English)}, + {"Tags(en)", Tags(language.English)}, + {"English.Languages()", English.Languages()}, + {"English.Tags()", English.Tags()}, + } + for _, tag := range Values.Tags() { + checkDefined(tag, namers) + tags[tag] = true + } + for _, base := range language.Supported.BaseLanguages() { + tag, _ := language.All.Compose(base) + if !tags[tag] { + checkUnsupported(tag, namers) + } + } + + regions := map[language.Region]bool{} + namers = []testcase{ + {"Regions(en)", Regions(language.English)}, + {"English.Regions()", English.Regions()}, + } + for _, r := range Values.Regions() { + checkDefined(r, namers) + regions[r] = true + } + for _, r := range language.Supported.Regions() { + if r = r.Canonicalize(); !regions[r] { + checkUnsupported(r, namers) + } + } + + scripts := map[language.Script]bool{} + namers = []testcase{ + {"Scripts(en)", Scripts(language.English)}, + {"English.Scripts()", English.Scripts()}, + } + for _, s := range Values.Scripts() { + checkDefined(s, namers) + scripts[s] = true + } + for _, s := range language.Supported.Scripts() { + // Canonicalize the script. + tag, _ := language.DeprecatedScript.Compose(s) + if _, s, _ = tag.Raw(); !scripts[s] { + checkUnsupported(s, namers) + } + } +} + +// TestSupported tests that we have at least some Namers for languages that we +// claim to support. To test the claims in the documentation, it also verifies +// that if a Namer is returned, it will have at least some data. +func TestSupported(t *testing.T) { + supportedTags := Supported.Tags() + if len(supportedTags) != numSupported { + t.Errorf("number of supported was %d; want %d", len(supportedTags), numSupported) + } + + namerFuncs := []struct { + kind string + fn func(language.Tag) Namer + }{ + {"Tags", Tags}, + {"Languages", Languages}, + {"Regions", Regions}, + {"Scripts", Scripts}, + } + + // Verify that we have at least one Namer for all tags we claim to support. + tags := make(map[language.Tag]bool) + for _, tag := range supportedTags { + // Test we have at least one Namer for this supported Tag. + found := false + for _, kind := range namerFuncs { + if defined(t, kind.kind, kind.fn(tag), tag) { + found = true + } + } + if !found { + t.Errorf("%s: supported, but no data available", tag) + } + if tags[tag] { + t.Errorf("%s: included in Supported.Tags more than once", tag) + } + tags[tag] = true + } + + // Verify that we have no Namers for tags we don't claim to support. + for _, base := range language.Supported.BaseLanguages() { + tag, _ := language.All.Compose(base) + // Skip tags that are supported after matching. + if _, _, conf := matcher.Match(tag); conf != language.No { + continue + } + // Test there are no Namers for this tag. + for _, kind := range namerFuncs { + if defined(t, kind.kind, kind.fn(tag), tag) { + t.Errorf("%[1]s(%[2]s) returns a Namer, but %[2]s is not in the set of supported Tags.", kind.kind, tag) + } + } + } +} + +// defined reports whether n is a proper Namer, which means it is non-nil and +// must have at least one non-empty value. +func defined(t *testing.T, kind string, n Namer, tag language.Tag) bool { + if n == nil { + return false + } + switch kind { + case "Tags": + for _, t := range Values.Tags() { + if n.Name(t) != "" { + return true + } + } + case "Languages": + for _, t := range Values.BaseLanguages() { + if n.Name(t) != "" { + return true + } + } + case "Regions": + for _, t := range Values.Regions() { + if n.Name(t) != "" { + return true + } + } + case "Scripts": + for _, t := range Values.Scripts() { + if n.Name(t) != "" { + return true + } + } + } + t.Errorf("%s(%s) returns non-nil Namer without content", kind, tag) + return false +} + +func TestCoverage(t *testing.T) { + en := language.English + tests := []struct { + n Namer + x interface{} + }{ + {Languages(en), Values.Tags()}, + {Scripts(en), Values.Scripts()}, + {Regions(en), Values.Regions()}, + } + for i, tt := range tests { + uniq := make(map[string]interface{}) + + v := reflect.ValueOf(tt.x) + for j := 0; j < v.Len(); j++ { + x := v.Index(j).Interface() + // As of version 28 there is no data for az-Arab in English, + // although there is useful data in other languages. + if x.(fmt.Stringer).String() == "az-Arab" { + continue + } + s := tt.n.Name(x) + if s == "" { + t.Errorf("%d:%d:%s: missing content", i, j, x) + } else if uniq[s] != nil { + t.Errorf("%d:%d:%s: identical return value %q for %v and %v", i, j, x, s, x, uniq[s]) + } + uniq[s] = x + } + } +} + +// TestUpdate tests whether dictionary entries for certain languages need to be +// updated. For some languages, some of the headers may be empty or they may be +// identical to the parent. This code detects if such entries need to be updated +// after a table update. +func TestUpdate(t *testing.T) { + tests := []struct { + d *Dictionary + tag string + }{ + {ModernStandardArabic, "ar-001"}, + {AmericanEnglish, "en-US"}, + {EuropeanSpanish, "es-ES"}, + {BrazilianPortuguese, "pt-BR"}, + {SimplifiedChinese, "zh-Hans"}, + } + + for _, tt := range tests { + _, i, _ := matcher.Match(language.MustParse(tt.tag)) + if !reflect.DeepEqual(tt.d.lang, langHeaders[i]) { + t.Errorf("%s: lang table update needed", tt.tag) + } + if !reflect.DeepEqual(tt.d.script, scriptHeaders[i]) { + t.Errorf("%s: script table update needed", tt.tag) + } + if !reflect.DeepEqual(tt.d.region, regionHeaders[i]) { + t.Errorf("%s: region table update needed", tt.tag) + } + } +} + +func TestIndex(t *testing.T) { + notIn := []string{"aa", "xx", "zz", "aaa", "xxx", "zzz", "Aaaa", "Xxxx", "Zzzz"} + tests := []tagIndex{ + { + "", + "", + "", + }, + { + "bb", + "", + "", + }, + { + "", + "bbb", + "", + }, + { + "", + "", + "Bbbb", + }, + { + "bb", + "bbb", + "Bbbb", + }, + { + "bbccddyy", + "bbbcccdddyyy", + "BbbbCcccDdddYyyy", + }, + } + for i, tt := range tests { + // Create the test set from the tagIndex. + cnt := 0 + for sz := 2; sz <= 4; sz++ { + a := tt[sz-2] + for j := 0; j < len(a); j += sz { + s := a[j : j+sz] + if idx := tt.index(s); idx != cnt { + t.Errorf("%d:%s: index was %d; want %d", i, s, idx, cnt) + } + cnt++ + } + } + if n := tt.len(); n != cnt { + t.Errorf("%d: len was %d; want %d", i, n, cnt) + } + for _, x := range notIn { + if idx := tt.index(x); idx != -1 { + t.Errorf("%d:%s: index was %d; want -1", i, x, idx) + } + } + } +} + +func TestTag(t *testing.T) { + tests := []struct { + dict string + tag string + name string + }{ + {"agq", "sr", ""}, // sr is in Value.Languages(), but is not supported by agq. + {"nl", "nl", "Nederlands"}, + {"nl", "nl-BE", "Vlaams"}, + {"en", "en", "English"}, + {"en", "en-GB", "British English"}, + {"en", "en-US", "American English"}, // American English in CLDR 24+ + {"ru", "ru", "руÑÑкий"}, + {"ru", "ru-RU", "руÑÑкий (РоÑÑиÑ)"}, + {"ru", "ru-Cyrl", "руÑÑкий (кириллица)"}, + {"en", lastLang2zu.String(), "Zulu"}, + {"en", firstLang2aa.String(), "Afar"}, + {"en", lastLang3zza.String(), "Zaza"}, + {"en", firstLang3ace.String(), "Achinese"}, + {"en", firstTagAr001.String(), "Modern Standard Arabic"}, + {"en", lastTagZhHant.String(), "Traditional Chinese"}, + {"en", "aaa", ""}, + {"en", "zzj", ""}, + // If full tag doesn't match, try without script or region. + {"en", "aa-Hans", "Afar (Simplified Han)"}, + {"en", "af-Arab", "Afrikaans (Arabic)"}, + {"en", "zu-Cyrl", "Zulu (Cyrillic)"}, + {"en", "aa-GB", "Afar (United Kingdom)"}, + {"en", "af-NA", "Afrikaans (Namibia)"}, + {"en", "zu-BR", "Zulu (Brazil)"}, + // Correct inheritance and language selection. + {"zh", "zh-TW", "中文 (å°æ¹¾)"}, + {"zh", "zh-Hant-TW", "ç¹ä½“中文 (å°æ¹¾)"}, + {"zh-Hant", "zh-TW", "中文 (å°ç£)"}, + {"zh-Hant", "zh-Hant-TW", "ç¹é«”中文 (å°ç£)"}, + // Some rather arbitrary interpretations for Serbian. This is arguably + // correct and consistent with the way zh-[Hant-]TW is handled. It will + // also give results more in line with the expectations if users + // explicitly use "sh". + {"sr-Latn", "sr-ME", "srpski (Crna Gora)"}, + {"sr-Latn", "sr-Latn-ME", "Srpskohrvatski (Crna Gora)"}, + // Double script and region + {"nl", "en-Cyrl-BE", "Engels (Cyrillisch, België)"}, + // Canonical equivalents. + {"ro", "ro-MD", "moldovenească"}, + {"ro", "mo", "moldovenească"}, + } + for i, tt := range tests { + d := Tags(language.MustParse(tt.dict)) + if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { + // There are inconsistencies w.r.t. capitalization in the tests + // due to CLDR's update procedure which treats modern and other + // languages differently. + // See http://unicode.org/cldr/trac/ticket/8051. + // TODO: use language capitalization to sanitize the strings. + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.tag, n, tt.name) + } + } +} + +func TestLanguage(t *testing.T) { + tests := []struct { + dict string + tag string + name string + }{ + {"agq", "sr", ""}, // sr is in Value.Languages(), but is not supported by agq. + {"nl", "nl", "Nederlands"}, + {"nl", "nl-BE", "Vlaams"}, + {"en", "pt", "Portuguese"}, + {"en", "pt-PT", "European Portuguese"}, + {"en", "pt-BR", "Brazilian Portuguese"}, + {"en", "en", "English"}, + {"en", "en-GB", "British English"}, + {"en", "en-US", "American English"}, // American English in CLDR 24+ + {"en", lastLang2zu.String(), "Zulu"}, + {"en", firstLang2aa.String(), "Afar"}, + {"en", lastLang3zza.String(), "Zaza"}, + {"en", firstLang3ace.String(), "Achinese"}, + {"en", firstTagAr001.String(), "Modern Standard Arabic"}, + {"en", lastTagZhHant.String(), "Traditional Chinese"}, + {"en", "aaa", ""}, + {"en", "zzj", ""}, + // If full tag doesn't match, try without script or region. + {"en", "aa-Hans", "Afar"}, + {"en", "af-Arab", "Afrikaans"}, + {"en", "zu-Cyrl", "Zulu"}, + {"en", "aa-GB", "Afar"}, + {"en", "af-NA", "Afrikaans"}, + {"en", "zu-BR", "Zulu"}, + {"agq", "zh-Hant", ""}, + // Canonical equivalents. + {"ro", "ro-MD", "moldovenească"}, + {"ro", "mo", "moldovenească"}, + {"en", "sh", "Serbo-Croatian"}, + {"en", "sr-Latn", "Serbo-Croatian"}, + {"en", "sr", "Serbian"}, + {"en", "sr-ME", "Serbian"}, + {"en", "sr-Latn-ME", "Serbo-Croatian"}, // See comments in TestTag. + } + for i, tt := range tests { + d := Languages(language.Raw.MustParse(tt.dict)) + if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.tag, n, tt.name) + } + if len(tt.tag) <= 3 { + if n := d.Name(language.MustParseBase(tt.tag)); n != tt.name { + t.Errorf("%d:%s:base(%s): was %q; want %q", i, tt.dict, tt.tag, n, tt.name) + } + } + } +} + +func TestScript(t *testing.T) { + tests := []struct { + dict string + scr string + name string + }{ + {"nl", "Arab", "Arabisch"}, + {"en", "Arab", "Arabic"}, + {"en", "Zzzz", "Unknown Script"}, + {"zh-Hant", "Hang", "韓文字"}, + {"zh-Hant-HK", "Hang", "韓文字æ¯"}, + {"zh", "Arab", "阿拉伯文"}, + {"zh-Hans-HK", "Arab", "阿拉伯文"}, // same as zh + {"zh-Hant", "Arab", "阿拉伯文"}, + {"zh-Hant-HK", "Arab", "阿拉伯文"}, // same as zh + // Canonicalized form + {"en", "Qaai", "Inherited"}, // deprecated script, now is Zinh + {"en", "sh", "Unknown Script"}, // sh canonicalizes to sr-Latn + {"en", "en", "Unknown Script"}, + // Don't introduce scripts with canonicalization. + {"en", "sh", "Unknown Script"}, // sh canonicalizes to sr-Latn + } + for i, tt := range tests { + d := Scripts(language.MustParse(tt.dict)) + var x interface{} + if unicode.IsUpper(rune(tt.scr[0])) { + x = language.MustParseScript(tt.scr) + tag, _ := language.Raw.Compose(x) + if n := d.Name(tag); n != tt.name { + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.scr, n, tt.name) + } + } else { + x = language.Raw.MustParse(tt.scr) + } + if n := d.Name(x); n != tt.name { + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.scr, n, tt.name) + } + } +} + +func TestRegion(t *testing.T) { + tests := []struct { + dict string + reg string + name string + }{ + {"nl", "NL", "Nederland"}, + {"en", "US", "United States"}, + {"en", "ZZ", "Unknown Region"}, + {"en", "UM", "U.S. Outlying Islands"}, + {"en-GB", "UM", "U.S. Outlying Islands"}, + {"en-GB", "NL", "Netherlands"}, + // Canonical equivalents + {"en", "UK", "United Kingdom"}, + // No region + {"en", "pt", "Unknown Region"}, + {"en", "und", "Unknown Region"}, + // Don't introduce regions with canonicalization. + {"en", "mo", "Unknown Region"}, + } + for i, tt := range tests { + d := Regions(language.MustParse(tt.dict)) + var x interface{} + if unicode.IsUpper(rune(tt.reg[0])) { + // Region + x = language.MustParseRegion(tt.reg) + tag, _ := language.Raw.Compose(x) + if n := d.Name(tag); n != tt.name { + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.reg, n, tt.name) + } + } else { + // Tag + x = language.Raw.MustParse(tt.reg) + } + if n := d.Name(x); n != tt.name { + t.Errorf("%d:%s:%s: was %q; want %q", i, tt.dict, tt.reg, n, tt.name) + } + } +} + +func TestSelf(t *testing.T) { + tests := []struct { + tag string + name string + }{ + {"nl", "Nederlands"}, + {"nl-BE", "Vlaams"}, + {"en-GB", "British English"}, + {lastLang2zu.String(), "isiZulu"}, + {firstLang2aa.String(), ""}, // not defined + {lastLang3zza.String(), ""}, // not defined + {firstLang3ace.String(), ""}, // not defined + {firstTagAr001.String(), "العربية الرسمية الحديثة"}, + {"ar", "العربية"}, + {lastTagZhHant.String(), "ç¹é«”中文"}, + {"aaa", ""}, + {"zzj", ""}, + // Drop entries that are not in the requested script, even if there is + // an entry for the language. + {"aa-Hans", ""}, + {"af-Arab", ""}, + {"zu-Cyrl", ""}, + // Append the country name in the language of the matching language. + {"af-NA", "Afrikaans"}, + {"zh", "中文"}, + // zh-TW should match zh-Hant instead of zh! + {"zh-TW", "ç¹é«”中文"}, + {"zh-Hant", "ç¹é«”中文"}, + {"zh-Hans", "简体中文"}, + {"zh-Hant-TW", "ç¹é«”中文"}, + {"zh-Hans-TW", "简体中文"}, + // Take the entry for sr which has the matching script. + // TODO: Capitalization changed as of CLDR 26, but change seems + // arbitrary. Revisit capitalization with revision 27. See + // http://unicode.org/cldr/trac/ticket/8051. + {"sr", "ÑрпÑки"}, + // TODO: sr-ME should show up as Serbian or Montenegrin, not Serbo- + // Croatian. This is an artifact of the current algorithm, which is the + // way it is to have the preferred behavior for other languages such as + // Chinese. We can hardwire this case in the table generator or package + // code, but we first check if CLDR can be updated. + // {"sr-ME", "Srpski"}, // Is Srpskohrvatski + {"sr-Latn-ME", "Srpskohrvatski"}, + {"sr-Cyrl-ME", "ÑрпÑки"}, + {"sr-NL", "ÑрпÑки"}, + // Canonical equivalents. + {"ro-MD", "moldovenească"}, + {"mo", "moldovenească"}, + // NOTE: kk is defined, but in Cyrillic script. For China, Arab is the + // dominant script. We do not have data for kk-Arab and we chose to not + // fall back in such cases. + {"kk-CN", ""}, + } + for i, tt := range tests { + d := Self + if n := d.Name(language.Raw.MustParse(tt.tag)); n != tt.name { + t.Errorf("%d:%s: was %q; want %q", i, tt.tag, n, tt.name) + } + } +} + +func TestDictionaryLang(t *testing.T) { + tests := []struct { + d *Dictionary + tag string + name string + }{ + {English, "en", "English"}, + {Portuguese, "af", "africâner"}, + {EuropeanPortuguese, "af", "africânder"}, + {English, "nl-BE", "Flemish"}, + } + for i, test := range tests { + tag := language.MustParse(test.tag) + if got := test.d.Tags().Name(tag); got != test.name { + t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) + } + if base, _ := language.Compose(tag.Base()); base == tag { + if got := test.d.Languages().Name(base); got != test.name { + t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) + } + } + } +} + +func TestDictionaryRegion(t *testing.T) { + tests := []struct { + d *Dictionary + region string + name string + }{ + {English, "FR", "France"}, + {Portuguese, "009", "Oceania"}, + {EuropeanPortuguese, "009", "Oceânia"}, + } + for i, test := range tests { + tag := language.MustParseRegion(test.region) + if got := test.d.Regions().Name(tag); got != test.name { + t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) + } + } +} + +func TestDictionaryScript(t *testing.T) { + tests := []struct { + d *Dictionary + script string + name string + }{ + {English, "Cyrl", "Cyrillic"}, + {Portuguese, "Gujr", "gujerati"}, + {EuropeanPortuguese, "Gujr", "guzerate"}, + } + for i, test := range tests { + tag := language.MustParseScript(test.script) + if got := test.d.Scripts().Name(tag); got != test.name { + t.Errorf("%d:%v: got %s; want %s", i, tag, got, test.name) + } + } +} diff --git a/vendor/golang.org/x/text/language/display/examples_test.go b/vendor/golang.org/x/text/language/display/examples_test.go new file mode 100644 index 00000000..f392f210 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/examples_test.go @@ -0,0 +1,98 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package display_test + +import ( + "fmt" + + "golang.org/x/text/language" + "golang.org/x/text/language/display" +) + +func ExampleNamer() { + supported := []string{ + "en-US", "en-GB", "ja", "zh", "zh-Hans", "zh-Hant", "pt", "pt-PT", "ko", "ar", "el", "ru", "uk", "pa", + } + + en := display.English.Languages() + + for _, s := range supported { + t := language.MustParse(s) + fmt.Printf("%-20s (%s)\n", en.Name(t), display.Self.Name(t)) + } + + // Output: + // American English (American English) + // British English (British English) + // Japanese (日本語) + // Chinese (中文) + // Simplified Chinese (简体中文) + // Traditional Chinese (ç¹é«”中文) + // Portuguese (português) + // European Portuguese (português europeu) + // Korean (한국어) + // Arabic (العربية) + // Greek (Ελληνικά) + // Russian (руÑÑкий) + // Ukrainian (українÑька) + // Punjabi (ਪੰਜਾਬੀ) +} + +func ExampleTags() { + n := display.Tags(language.English) + fmt.Println(n.Name(language.Make("nl"))) + fmt.Println(n.Name(language.Make("nl-BE"))) + fmt.Println(n.Name(language.Make("nl-CW"))) + fmt.Println(n.Name(language.Make("nl-Arab"))) + fmt.Println(n.Name(language.Make("nl-Cyrl-RU"))) + + // Output: + // Dutch + // Flemish + // Dutch (Curaçao) + // Dutch (Arabic) + // Dutch (Cyrillic, Russia) +} + +// ExampleDictionary shows how to reduce the amount of data linked into your +// binary by only using the predefined Dictionary variables of the languages you +// wish to support. +func ExampleDictionary() { + tags := []language.Tag{ + language.English, + language.German, + language.Japanese, + language.Russian, + } + dicts := []*display.Dictionary{ + display.English, + display.German, + display.Japanese, + display.Russian, + } + + m := language.NewMatcher(tags) + + getDict := func(t language.Tag) *display.Dictionary { + _, i, confidence := m.Match(t) + // Skip this check if you want to support a fall-back language, which + // will be the first one passed to NewMatcher. + if confidence == language.No { + return nil + } + return dicts[i] + } + + // The matcher will match Swiss German to German. + n := getDict(language.Make("gsw")).Languages() + fmt.Println(n.Name(language.German)) + fmt.Println(n.Name(language.Make("de-CH"))) + fmt.Println(n.Name(language.Make("gsw"))) + + // Output: + // Deutsch + // Schweizer Hochdeutsch + // Schweizerdeutsch +} diff --git a/vendor/golang.org/x/text/language/display/lookup.go b/vendor/golang.org/x/text/language/display/lookup.go new file mode 100644 index 00000000..794098ad --- /dev/null +++ b/vendor/golang.org/x/text/language/display/lookup.go @@ -0,0 +1,238 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package display + +// This file contains common lookup code that is shared between the various +// implementations of Namer and Dictionaries. + +import ( + "fmt" + "sort" + "strings" + + "golang.org/x/text/language" +) + +type namer interface { + // name gets the string for the given index. It should walk the + // inheritance chain if a value is not present in the base index. + name(idx int) string +} + +func nameLanguage(n namer, x interface{}) string { + t, _ := language.All.Compose(x) + i, _, _ := langTagSet.index(t.Raw()) + return n.name(i) +} + +func nameScript(n namer, x interface{}) string { + t, _ := language.DeprecatedScript.Compose(x) + _, s, _ := t.Raw() + return n.name(scriptIndex.index(s.String())) +} + +func nameRegion(n namer, x interface{}) string { + t, _ := language.DeprecatedRegion.Compose(x) + _, _, r := t.Raw() + return n.name(regionIndex.index(r.String())) +} + +func nameTag(langN, scrN, regN namer, x interface{}) string { + t, ok := x.(language.Tag) + if !ok { + return "" + } + const form = language.All &^ language.SuppressScript + if c, err := form.Canonicalize(t); err == nil { + t = c + } + i, scr, reg := langTagSet.index(t.Raw()) + if i == -1 { + return "" + } + + str := langN.name(i) + if hasS, hasR := (scr != language.Script{}), (reg != language.Region{}); hasS || hasR { + ss, sr := "", "" + if hasS { + ss = scrN.name(scriptIndex.index(scr.String())) + } + if hasR { + sr = regN.name(regionIndex.index(reg.String())) + } + // TODO: use patterns in CLDR or at least confirm they are the same for + // all languages. + if ss != "" && sr != "" { + return fmt.Sprintf("%s (%s, %s)", str, ss, sr) + } + if ss != "" || sr != "" { + return fmt.Sprintf("%s (%s%s)", str, ss, sr) + } + } + return str +} + +// header contains the data and indexes for a single namer. +// data contains a series of strings concatenated into one. index contains the +// offsets for a string in data. For example, consider a header that defines +// strings for the languages de, el, en, fi, and nl: +// +// header{ +// data: "GermanGreekEnglishDutch", +// index: []uint16{ 0, 6, 11, 18, 18, 23 }, +// } +// +// For a language with index i, the string is defined by +// data[index[i]:index[i+1]]. So the number of elements in index is always one +// greater than the number of languages for which header defines a value. +// A string for a language may be empty, which means the name is undefined. In +// the above example, the name for fi (Finnish) is undefined. +type header struct { + data string + index []uint16 +} + +// name looks up the name for a tag in the dictionary, given its index. +func (h *header) name(i int) string { + if 0 <= i && i < len(h.index)-1 { + return h.data[h.index[i]:h.index[i+1]] + } + return "" +} + +// tagSet is used to find the index of a language in a set of tags. +type tagSet struct { + single tagIndex + long []string +} + +var ( + langTagSet = tagSet{ + single: langIndex, + long: langTagsLong, + } + + // selfTagSet is used for indexing the language strings in their own + // language. + selfTagSet = tagSet{ + single: selfIndex, + long: selfTagsLong, + } + + zzzz = language.MustParseScript("Zzzz") + zz = language.MustParseRegion("ZZ") +) + +// index returns the index of the tag for the given base, script and region or +// its parent if the tag is not available. If the match is for a parent entry, +// the excess script and region are returned. +func (ts *tagSet) index(base language.Base, scr language.Script, reg language.Region) (int, language.Script, language.Region) { + lang := base.String() + index := -1 + if (scr != language.Script{} || reg != language.Region{}) { + if scr == zzzz { + scr = language.Script{} + } + if reg == zz { + reg = language.Region{} + } + + i := sort.SearchStrings(ts.long, lang) + // All entries have either a script or a region and not both. + scrStr, regStr := scr.String(), reg.String() + for ; i < len(ts.long) && strings.HasPrefix(ts.long[i], lang); i++ { + if s := ts.long[i][len(lang)+1:]; s == scrStr { + scr = language.Script{} + index = i + ts.single.len() + break + } else if s == regStr { + reg = language.Region{} + index = i + ts.single.len() + break + } + } + } + if index == -1 { + index = ts.single.index(lang) + } + return index, scr, reg +} + +func (ts *tagSet) Tags() []language.Tag { + tags := make([]language.Tag, 0, ts.single.len()+len(ts.long)) + ts.single.keys(func(s string) { + tags = append(tags, language.Raw.MustParse(s)) + }) + for _, s := range ts.long { + tags = append(tags, language.Raw.MustParse(s)) + } + return tags +} + +func supportedScripts() []language.Script { + scr := make([]language.Script, 0, scriptIndex.len()) + scriptIndex.keys(func(s string) { + scr = append(scr, language.MustParseScript(s)) + }) + return scr +} + +func supportedRegions() []language.Region { + reg := make([]language.Region, 0, regionIndex.len()) + regionIndex.keys(func(s string) { + reg = append(reg, language.MustParseRegion(s)) + }) + return reg +} + +// tagIndex holds a concatenated lists of subtags of length 2 to 4, one string +// for each length, which can be used in combination with binary search to get +// the index associated with a tag. +// For example, a tagIndex{ +// "arenesfrruzh", // 6 2-byte tags. +// "barwae", // 2 3-byte tags. +// "", +// } +// would mean that the 2-byte tag "fr" had an index of 3, and the 3-byte tag +// "wae" had an index of 7. +type tagIndex [3]string + +func (t *tagIndex) index(s string) int { + sz := len(s) + if sz < 2 || 4 < sz { + return -1 + } + a := t[sz-2] + index := sort.Search(len(a)/sz, func(i int) bool { + p := i * sz + return a[p:p+sz] >= s + }) + p := index * sz + if end := p + sz; end > len(a) || a[p:end] != s { + return -1 + } + // Add the number of tags for smaller sizes. + for i := 0; i < sz-2; i++ { + index += len(t[i]) / (i + 2) + } + return index +} + +// len returns the number of tags that are contained in the tagIndex. +func (t *tagIndex) len() (n int) { + for i, s := range t { + n += len(s) / (i + 2) + } + return n +} + +// keys calls f for each tag. +func (t *tagIndex) keys(f func(key string)) { + for i, s := range *t { + for ; s != ""; s = s[i+2:] { + f(s[:i+2]) + } + } +} diff --git a/vendor/golang.org/x/text/language/display/maketables.go b/vendor/golang.org/x/text/language/display/maketables.go new file mode 100644 index 00000000..3fcd9c87 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/maketables.go @@ -0,0 +1,596 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// Generator for display name tables. + +package main + +import ( + "bytes" + "flag" + "fmt" + "log" + "reflect" + "sort" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +var ( + test = flag.Bool("test", false, + "test existing tables; can be used to compare web data with package data.") + outputFile = flag.String("output", "tables.go", "output file") + + stats = flag.Bool("stats", false, "prints statistics to stderr") + + short = flag.Bool("short", false, `Use "short" alternatives, when available.`) + draft = flag.String("draft", + "contributed", + `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) + pkg = flag.String("package", + "display", + "the name of the package in which the generated file is to be included") + + tags = newTagSet("tags", + []language.Tag{}, + "space-separated list of tags to include or empty for all") + dict = newTagSet("dict", + dictTags(), + "space-separated list or tags for which to include a Dictionary. "+ + `"" means the common list from go.text/language.`) +) + +func dictTags() (tag []language.Tag) { + // TODO: replace with language.Common.Tags() once supported. + const str = "af am ar ar-001 az bg bn ca cs da de el en en-US en-GB " + + "es es-ES es-419 et fa fi fil fr fr-CA gu he hi hr hu hy id is it ja " + + "ka kk km kn ko ky lo lt lv mk ml mn mr ms my ne nl no pa pl pt pt-BR " + + "pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz vi " + + "zh zh-Hans zh-Hant zu" + + for _, s := range strings.Split(str, " ") { + tag = append(tag, language.MustParse(s)) + } + return tag +} + +func main() { + gen.Init() + + // Read the CLDR zip file. + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + d.SetDirFilter("main", "supplemental") + d.SetSectionFilter("localeDisplayNames") + data, err := d.DecodeZip(r) + if err != nil { + log.Fatalf("DecodeZip: %v", err) + } + + w := gen.NewCodeWriter() + defer w.WriteGoFile(*outputFile, "display") + + gen.WriteCLDRVersion(w) + + b := builder{ + w: w, + data: data, + group: make(map[string]*group), + } + b.generate() +} + +const tagForm = language.All + +// tagSet is used to parse command line flags of tags. It implements the +// flag.Value interface. +type tagSet map[language.Tag]bool + +func newTagSet(name string, tags []language.Tag, usage string) tagSet { + f := tagSet(make(map[language.Tag]bool)) + for _, t := range tags { + f[t] = true + } + flag.Var(f, name, usage) + return f +} + +// String implements the String method of the flag.Value interface. +func (f tagSet) String() string { + tags := []string{} + for t := range f { + tags = append(tags, t.String()) + } + sort.Strings(tags) + return strings.Join(tags, " ") +} + +// Set implements Set from the flag.Value interface. +func (f tagSet) Set(s string) error { + if s != "" { + for _, s := range strings.Split(s, " ") { + if s != "" { + tag, err := tagForm.Parse(s) + if err != nil { + return err + } + f[tag] = true + } + } + } + return nil +} + +func (f tagSet) contains(t language.Tag) bool { + if len(f) == 0 { + return true + } + return f[t] +} + +// builder is used to create all tables with display name information. +type builder struct { + w *gen.CodeWriter + + data *cldr.CLDR + + fromLocs []string + + // destination tags for the current locale. + toTags []string + toTagIndex map[string]int + + // list of supported tags + supported []language.Tag + + // key-value pairs per group + group map[string]*group + + // statistics + sizeIndex int // total size of all indexes of headers + sizeData int // total size of all data of headers + totalSize int +} + +type group struct { + // Maps from a given language to the Namer data for this language. + lang map[language.Tag]keyValues + headers []header + + toTags []string + threeStart int + fourPlusStart int +} + +// set sets the typ to the name for locale loc. +func (g *group) set(t language.Tag, typ, name string) { + kv := g.lang[t] + if kv == nil { + kv = make(keyValues) + g.lang[t] = kv + } + if kv[typ] == "" { + kv[typ] = name + } +} + +type keyValues map[string]string + +type header struct { + tag language.Tag + data string + index []uint16 +} + +var versionInfo = `// Version is deprecated. Use CLDRVersion. +const Version = %#v + +` + +var self = language.MustParse("mul") + +// generate builds and writes all tables. +func (b *builder) generate() { + fmt.Fprintf(b.w, versionInfo, cldr.Version) + + b.filter() + b.setData("lang", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { + if ldn.Languages != nil { + for _, v := range ldn.Languages.Language { + tag := tagForm.MustParse(v.Type) + if tags.contains(tag) { + g.set(loc, tag.String(), v.Data()) + } + } + } + }) + b.setData("script", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { + if ldn.Scripts != nil { + for _, v := range ldn.Scripts.Script { + code := language.MustParseScript(v.Type) + if code.IsPrivateUse() { // Qaaa..Qabx + // TODO: data currently appears to be very meager. + // Reconsider if we have data for English. + if loc == language.English { + log.Fatal("Consider including data for private use scripts.") + } + continue + } + g.set(loc, code.String(), v.Data()) + } + } + }) + b.setData("region", func(g *group, loc language.Tag, ldn *cldr.LocaleDisplayNames) { + if ldn.Territories != nil { + for _, v := range ldn.Territories.Territory { + g.set(loc, language.MustParseRegion(v.Type).String(), v.Data()) + } + } + }) + + b.makeSupported() + + b.writeParents() + + b.writeGroup("lang") + b.writeGroup("script") + b.writeGroup("region") + + b.w.WriteConst("numSupported", len(b.supported)) + buf := bytes.Buffer{} + for _, tag := range b.supported { + fmt.Fprint(&buf, tag.String(), "|") + } + b.w.WriteConst("supported", buf.String()) + + b.writeDictionaries() + + b.supported = []language.Tag{self} + + // Compute the names of locales in their own language. Some of these names + // may be specified in their parent locales. We iterate the maximum depth + // of the parent three times to match successive parents of tags until a + // possible match is found. + for i := 0; i < 4; i++ { + b.setData("self", func(g *group, tag language.Tag, ldn *cldr.LocaleDisplayNames) { + parent := tag + if b, s, r := tag.Raw(); i > 0 && (s != language.Script{} && r == language.Region{}) { + parent, _ = language.Raw.Compose(b) + } + if ldn.Languages != nil { + for _, v := range ldn.Languages.Language { + key := tagForm.MustParse(v.Type) + saved := key + if key == parent { + g.set(self, tag.String(), v.Data()) + } + for k := 0; k < i; k++ { + key = key.Parent() + } + if key == tag { + g.set(self, saved.String(), v.Data()) // set does not overwrite a value. + } + } + } + }) + } + + b.writeGroup("self") +} + +func (b *builder) setData(name string, f func(*group, language.Tag, *cldr.LocaleDisplayNames)) { + b.sizeIndex = 0 + b.sizeData = 0 + b.toTags = nil + b.fromLocs = nil + b.toTagIndex = make(map[string]int) + + g := b.group[name] + if g == nil { + g = &group{lang: make(map[language.Tag]keyValues)} + b.group[name] = g + } + for _, loc := range b.data.Locales() { + // We use RawLDML instead of LDML as we are managing our own inheritance + // in this implementation. + ldml := b.data.RawLDML(loc) + + // We do not support the POSIX variant (it is not a supported BCP 47 + // variant). This locale also doesn't happen to contain any data, so + // we'll skip it by checking for this. + tag, err := tagForm.Parse(loc) + if err != nil { + if ldml.LocaleDisplayNames != nil { + log.Fatalf("setData: %v", err) + } + continue + } + if ldml.LocaleDisplayNames != nil && tags.contains(tag) { + f(g, tag, ldml.LocaleDisplayNames) + } + } +} + +func (b *builder) filter() { + filter := func(s *cldr.Slice) { + if *short { + s.SelectOnePerGroup("alt", []string{"short", ""}) + } else { + s.SelectOnePerGroup("alt", []string{"stand-alone", ""}) + } + d, err := cldr.ParseDraft(*draft) + if err != nil { + log.Fatalf("filter: %v", err) + } + s.SelectDraft(d) + } + for _, loc := range b.data.Locales() { + if ldn := b.data.RawLDML(loc).LocaleDisplayNames; ldn != nil { + if ldn.Languages != nil { + s := cldr.MakeSlice(&ldn.Languages.Language) + if filter(&s); len(ldn.Languages.Language) == 0 { + ldn.Languages = nil + } + } + if ldn.Scripts != nil { + s := cldr.MakeSlice(&ldn.Scripts.Script) + if filter(&s); len(ldn.Scripts.Script) == 0 { + ldn.Scripts = nil + } + } + if ldn.Territories != nil { + s := cldr.MakeSlice(&ldn.Territories.Territory) + if filter(&s); len(ldn.Territories.Territory) == 0 { + ldn.Territories = nil + } + } + } + } +} + +// makeSupported creates a list of all supported locales. +func (b *builder) makeSupported() { + // tags across groups + for _, g := range b.group { + for t, _ := range g.lang { + b.supported = append(b.supported, t) + } + } + b.supported = b.supported[:unique(tagsSorter(b.supported))] + +} + +type tagsSorter []language.Tag + +func (a tagsSorter) Len() int { return len(a) } +func (a tagsSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a tagsSorter) Less(i, j int) bool { return a[i].String() < a[j].String() } + +func (b *builder) writeGroup(name string) { + g := b.group[name] + + for _, kv := range g.lang { + for t, _ := range kv { + g.toTags = append(g.toTags, t) + } + } + g.toTags = g.toTags[:unique(tagsBySize(g.toTags))] + + // Allocate header per supported value. + g.headers = make([]header, len(b.supported)) + for i, sup := range b.supported { + kv, ok := g.lang[sup] + if !ok { + g.headers[i].tag = sup + continue + } + data := []byte{} + index := make([]uint16, len(g.toTags), len(g.toTags)+1) + for j, t := range g.toTags { + index[j] = uint16(len(data)) + data = append(data, kv[t]...) + } + index = append(index, uint16(len(data))) + + // Trim the tail of the index. + // TODO: indexes can be reduced in size quite a bit more. + n := len(index) + for ; n >= 2 && index[n-2] == index[n-1]; n-- { + } + index = index[:n] + + // Workaround for a bug in CLDR 26. + // See http://unicode.org/cldr/trac/ticket/8042. + if cldr.Version == "26" && sup.String() == "hsb" { + data = bytes.Replace(data, []byte{'"'}, nil, 1) + } + g.headers[i] = header{sup, string(data), index} + } + g.writeTable(b.w, name) +} + +type tagsBySize []string + +func (l tagsBySize) Len() int { return len(l) } +func (l tagsBySize) Swap(i, j int) { l[i], l[j] = l[j], l[i] } +func (l tagsBySize) Less(i, j int) bool { + a, b := l[i], l[j] + // Sort single-tag entries based on size first. Otherwise alphabetic. + if len(a) != len(b) && (len(a) <= 4 || len(b) <= 4) { + return len(a) < len(b) + } + return a < b +} + +// parentIndices returns slice a of len(tags) where tags[a[i]] is the parent +// of tags[i]. +func parentIndices(tags []language.Tag) []int16 { + index := make(map[language.Tag]int16) + for i, t := range tags { + index[t] = int16(i) + } + + // Construct default parents. + parents := make([]int16, len(tags)) + for i, t := range tags { + parents[i] = -1 + for t = t.Parent(); t != language.Und; t = t.Parent() { + if j, ok := index[t]; ok { + parents[i] = j + break + } + } + } + return parents +} + +func (b *builder) writeParents() { + parents := parentIndices(b.supported) + fmt.Fprintf(b.w, "var parents = ") + b.w.WriteArray(parents) +} + +// writeKeys writes keys to a special index used by the display package. +// tags are assumed to be sorted by length. +func writeKeys(w *gen.CodeWriter, name string, keys []string) { + w.Size += int(3 * reflect.TypeOf("").Size()) + w.WriteComment("Number of keys: %d", len(keys)) + fmt.Fprintf(w, "var (\n\t%sIndex = tagIndex{\n", name) + for i := 2; i <= 4; i++ { + sub := []string{} + for _, t := range keys { + if len(t) != i { + break + } + sub = append(sub, t) + } + s := strings.Join(sub, "") + w.WriteString(s) + fmt.Fprintf(w, ",\n") + keys = keys[len(sub):] + } + fmt.Fprintln(w, "\t}") + if len(keys) > 0 { + w.Size += int(reflect.TypeOf([]string{}).Size()) + fmt.Fprintf(w, "\t%sTagsLong = ", name) + w.WriteSlice(keys) + } + fmt.Fprintln(w, ")\n") +} + +// identifier creates an identifier from the given tag. +func identifier(t language.Tag) string { + return strings.Replace(t.String(), "-", "", -1) +} + +func (h *header) writeEntry(w *gen.CodeWriter, name string) { + if len(dict) > 0 && dict.contains(h.tag) { + fmt.Fprintf(w, "\t{ // %s\n", h.tag) + fmt.Fprintf(w, "\t\t%[1]s%[2]sStr,\n\t\t%[1]s%[2]sIdx,\n", identifier(h.tag), name) + fmt.Fprintln(w, "\t},") + } else if len(h.data) == 0 { + fmt.Fprintln(w, "\t\t{}, //", h.tag) + } else { + fmt.Fprintf(w, "\t{ // %s\n", h.tag) + w.WriteString(h.data) + fmt.Fprintln(w, ",") + w.WriteSlice(h.index) + fmt.Fprintln(w, ",\n\t},") + } +} + +// write the data for the given header as single entries. The size for this data +// was already accounted for in writeEntry. +func (h *header) writeSingle(w *gen.CodeWriter, name string) { + if len(dict) > 0 && dict.contains(h.tag) { + tag := identifier(h.tag) + w.WriteConst(tag+name+"Str", h.data) + + // Note that we create a slice instead of an array. If we use an array + // we need to refer to it as a[:] in other tables, which will cause the + // array to always be included by the linker. See Issue 7651. + w.WriteVar(tag+name+"Idx", h.index) + } +} + +// WriteTable writes an entry for a single Namer. +func (g *group) writeTable(w *gen.CodeWriter, name string) { + start := w.Size + writeKeys(w, name, g.toTags) + w.Size += len(g.headers) * int(reflect.ValueOf(g.headers[0]).Type().Size()) + + fmt.Fprintf(w, "var %sHeaders = [%d]header{\n", name, len(g.headers)) + + title := strings.Title(name) + for _, h := range g.headers { + h.writeEntry(w, title) + } + fmt.Fprintln(w, "}\n") + + for _, h := range g.headers { + h.writeSingle(w, title) + } + n := w.Size - start + fmt.Fprintf(w, "// Total size for %s: %d bytes (%d KB)\n\n", name, n, n/1000) +} + +func (b *builder) writeDictionaries() { + fmt.Fprintln(b.w, "// Dictionary entries of frequent languages") + fmt.Fprintln(b.w, "var (") + parents := parentIndices(b.supported) + + for i, t := range b.supported { + if dict.contains(t) { + ident := identifier(t) + fmt.Fprintf(b.w, "\t%s = Dictionary{ // %s\n", ident, t) + if p := parents[i]; p == -1 { + fmt.Fprintln(b.w, "\t\tnil,") + } else { + fmt.Fprintf(b.w, "\t\t&%s,\n", identifier(b.supported[p])) + } + fmt.Fprintf(b.w, "\t\theader{%[1]sLangStr, %[1]sLangIdx},\n", ident) + fmt.Fprintf(b.w, "\t\theader{%[1]sScriptStr, %[1]sScriptIdx},\n", ident) + fmt.Fprintf(b.w, "\t\theader{%[1]sRegionStr, %[1]sRegionIdx},\n", ident) + fmt.Fprintln(b.w, "\t}") + } + } + fmt.Fprintln(b.w, ")") + + var s string + var a []uint16 + sz := reflect.TypeOf(s).Size() + sz += reflect.TypeOf(a).Size() + sz *= 3 + sz += reflect.TypeOf(&a).Size() + n := int(sz) * len(dict) + fmt.Fprintf(b.w, "// Total size for %d entries: %d bytes (%d KB)\n\n", len(dict), n, n/1000) + + b.w.Size += n +} + +// unique sorts the given lists and removes duplicate entries by swapping them +// past position k, where k is the number of unique values. It returns k. +func unique(a sort.Interface) int { + if a.Len() == 0 { + return 0 + } + sort.Sort(a) + k := 1 + for i := 1; i < a.Len(); i++ { + if a.Less(k-1, i) { + if k != i { + a.Swap(k, i) + } + k++ + } + } + return k +} diff --git a/vendor/golang.org/x/text/language/display/tables.go b/vendor/golang.org/x/text/language/display/tables.go new file mode 100644 index 00000000..04777df1 --- /dev/null +++ b/vendor/golang.org/x/text/language/display/tables.go @@ -0,0 +1,45235 @@ +// This file was generated by go generate; DO NOT EDIT + +package display + +// CLDRVersion is the CLDR version from which the tables in this package are derived. +const CLDRVersion = "29" + +// Version is deprecated. Use CLDRVersion. +const Version = "29" + +var parents = [220]int16{ + // Entry 0 - 3F + -1, -1, -1, -1, -1, 4, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 18, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 43, 43, 43, -1, + -1, 48, 49, 49, -1, -1, -1, -1, + 55, -1, -1, -1, -1, -1, 61, 61, + // Entry 40 - 7F + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + // Entry 80 - BF + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 155, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 168, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 184, -1, 186, -1, -1, -1, -1, + // Entry C0 - FF + -1, -1, -1, -1, -1, -1, -1, -1, + 199, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 212, -1, -1, + -1, -1, 217, -1, +} + +// Number of keys: 609 +var ( + langIndex = tagIndex{ + "aaabaeafakamanarasavayazbabebgbibmbnbobrbscacechcocrcscucvcydadedvdzeeel" + + "eneoeseteufafffifjfofrfygagdglgngugvhahehihohrhthuhyhziaidieigiiikio" + + "isitiujajvkakgkikjkkklkmknkokrkskukvkwkylalblglilnloltlulvmgmhmimkml" + + "mnmrmsmtmynandnengnlnnnonrnvnyocojomorospapiplpsptqurmrnrorurwsascsd" + + "sesgsiskslsmsnsosqsrssstsusvswtatetgthtitktntotrtstttyugukuruzvevivo" + + "wawoxhyiyozazhzu", + "aceachadaadyaebafhagqainakkakzalealnaltanganparcarnaroarparqarwaryarzasa" + + "aseastavkawabalbanbarbasbaxbbcbbjbejbembewbezbfdbfqbgnbhobikbinbjnbk" + + "mblabpybqibrabrhbrxbssbuabugbumbynbyvcadcarcaycchcebcggchbchgchkchmc" + + "hnchochpchrchyckbcopcpscrhcsbdakdardavdeldendgrdindjedoidsbdtpduadum" + + "dyodyudzgebuefieglegyekaelxenmesuewoextfanfilfitfonfrcfrmfrofrpfrrfr" + + "sfurgaagaggangaygbagbzgezgilglkgmhgohgomgongorgotgrbgrcgswgucgurguzg" + + "wihaihakhawhifhilhithmnhsbhsnhupibaibbiloinhizhjamjbojgojmcjprjrbjut" + + "kaakabkackajkamkawkbdkblkcgkdekeakenkfokgpkhakhokhqkhwkiukkjklnkmbko" + + "ikokkoskpekrckrikrjkrlkruksbksfkshkumkutladlaglahlamlezlfnlijlivlktl" + + "molollozlrcltglualuilunluolusluylzhlzzmadmafmagmaimakmanmasmdemdfmdr" + + "menmermfemgamghmgomicminmncmnimohmosmrjmuamulmusmwlmwrmwvmyemyvmznna" + + "nnapnaqndsnewnianiunjonmgnnhnognonnovnqonsonusnwcnymnynnyonziosaotap" + + "agpalpampappaupcdpdcpdtpeopflphnpmspntponprgproqucqugrajraprarrgnrif" + + "rofromrtmruerugruprwksadsahsamsaqsassatsazsbasbpscnscosdcsdhseesehse" + + "iselsessgasgsshishnshusidslislysmasmjsmnsmssnksogsrnsrrssystqsuksuss" + + "uxswbsycsyrszltcytemteotertettigtivtkltkrtlhtlitlytmhtogtpitrutrvtsd" + + "tsittttumtvltwqtyvtzmudmugaumbundvaivecvepvlsvmfvotvrovunwaewalwarwa" + + "swbpwuuxalxmfxogyaoyapyavybbyrlyuezapzblzeazenzghzunzxxzza", + "", + } + langTagsLong = []string{ // 23 elements + "ar-001", + "az-Arab", + "de-AT", + "de-CH", + "en-AU", + "en-CA", + "en-GB", + "en-US", + "es-419", + "es-ES", + "es-MX", + "fa-AF", + "fr-CA", + "fr-CH", + "nds-NL", + "nl-BE", + "pt-BR", + "pt-PT", + "ro-MD", + "sr-Latn", + "sw-CD", + "zh-Hans", + "zh-Hant", + } +) + +var langHeaders = [220]header{ + { // af + afLangStr, + afLangIdx, + }, + { // agq + "AkanÀmalìÀlabìBɛ̀làlusànBùugɨlìaBɨ̀ŋgalìChɛ̂Dzamɛ̀Gɨ̀lêʔKɨŋgeleSɨ̀kpanìs" + + "KpɛɛshìaKɨ̀fàlàŋsiKɨtsɔŋkaÅ‹EndìHɔŋgalìaÈndònÉ›shìaEgbòÈtalìaDzàkpànêD" + + "zàbvànêKɨmɛ̀kùulîaMàlaeBùumÉ›sɛ̀Nɛ̀kpalìDɔ̂sKpuwndzabìKpÉ”lìsKpotùwgîi" + + "LùmanyìaLushìaLùwandàSòmalìSuedìsTamìTàeTʉʉkìsÙkÉ›lÉ›nìaUudùwVìyÉ›tnàmê" + + "YulùbaChàenêZulùAghem", + []uint16{ // 188 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0020, 0x002b, + 0x002b, 0x002b, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, + 0x0045, 0x0045, 0x0045, 0x0045, 0x004f, 0x0058, 0x0058, 0x0064, + 0x0064, 0x0064, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x007e, + 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x008b, + 0x008b, 0x0090, 0x0090, 0x0090, 0x0090, 0x009b, 0x009b, 0x009b, + // Entry 40 - 7F + 0x009b, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00b6, 0x00b6, 0x00c1, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, + 0x00cc, 0x00cc, 0x00d4, 0x00d4, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00e2, 0x00e2, 0x00ee, 0x00ee, 0x00ee, + 0x00f9, 0x00f9, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x010a, 0x010a, 0x0112, + // Entry 80 - BF + 0x0112, 0x011d, 0x011d, 0x011d, 0x011d, 0x0127, 0x012e, 0x0137, + 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, + 0x0137, 0x0137, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0146, 0x0146, 0x014b, 0x014b, 0x014b, 0x014f, 0x014f, 0x014f, + 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0164, + 0x016a, 0x016a, 0x016a, 0x0177, 0x0177, 0x0177, 0x0177, 0x0177, + 0x0177, 0x017e, 0x017e, 0x0186, 0x018b, 0x018b, 0x018b, 0x018b, + 0x018b, 0x018b, 0x018b, 0x0190, + }, + }, + { // ak + "AkanAmarikArabikBelarus kasaBÉ”lgeria kasaBengali kasaKyÉ›k kasaGyaamanGre" + + "ek kasaBorÉ”foSpain kasaPɛɛhyia kasaFrÉ›nkyeHausaHindiHangri kasaIndon" + + "ihyia kasaIgboItaly kasaGyapan kasaGyabanis kasaKambodia kasaKorea k" + + "asaMalay kasaBɛɛmis kasaNÉ›pal kasaDɛɛkyePungyabi kasaPÉ”land kasaPɔɔt" + + "ugal kasaRomenia kasaRahyia kasaRewanda kasaSomalia kasaSweden kasaT" + + "amil kasaTaeland kasaTɛɛki kasaUkren kasaUrdu kasaViÉ›tnam kasaYoruba" + + "Kyaena kasaZulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x001c, 0x002a, + 0x002a, 0x002a, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0051, 0x0058, 0x0058, 0x0062, + 0x0062, 0x0062, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x007d, + 0x007d, 0x0082, 0x0082, 0x0082, 0x0082, 0x008d, 0x008d, 0x008d, + // Entry 40 - 7F + 0x008d, 0x009c, 0x009c, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00aa, 0x00aa, 0x00b5, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00cf, 0x00cf, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00f0, 0x00f0, 0x00f0, + 0x00fb, 0x00fb, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0110, 0x0110, 0x011c, + // Entry 80 - BF + 0x011c, 0x012b, 0x012b, 0x012b, 0x012b, 0x0137, 0x0142, 0x014e, + 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, + 0x014e, 0x014e, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, + 0x0165, 0x0165, 0x016f, 0x016f, 0x016f, 0x017b, 0x017b, 0x017b, + 0x017b, 0x017b, 0x0187, 0x0187, 0x0187, 0x0187, 0x0187, 0x0191, + 0x019a, 0x019a, 0x019a, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01ad, 0x01ad, 0x01b8, 0x01bc, + }, + }, + { // am + amLangStr, + amLangIdx, + }, + { // ar + arLangStr, + arLangIdx, + }, + { // ar-EG + "الدنماركية", + []uint16{ // 32 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, + }, + }, + { // as + "অসমীয়া", + []uint16{ // 10 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0015, + }, + }, + { // asa + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKichekiKijerumaniKigiri" + + "kiKiingeredhaKihithpaniaKiajemiKifaranthaKihauthaKihindiKihungariKii" + + "ndonethiaKiigboKiitaliaanoKijapaniKijavaKikambodiaKikoreaKimalesiaKi" + + "burmaKinepaliKiholandhiKipunjabiKipolandiKirenoKiromaniaKiruthiKinya" + + "randwaKithomaliKithwidiKitamilKitailandiKiturukiKiukraniaKiurduKivie" + + "tinamuKiyorubaKichinaKidhuluKipare", + []uint16{ // 205 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0042, 0x0042, 0x0042, 0x0042, 0x004a, 0x0055, 0x0055, 0x0060, + 0x0060, 0x0060, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0079, + 0x0079, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, 0x0089, 0x0089, + // Entry 40 - 7F + 0x0089, 0x0095, 0x0095, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x00a6, 0x00a6, 0x00ae, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00be, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00c5, 0x00ce, 0x00ce, 0x00d5, 0x00d5, 0x00d5, + 0x00dd, 0x00dd, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f9, + // Entry 80 - BF + 0x00f9, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x0108, 0x010f, 0x011a, + 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x011a, 0x011a, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, + 0x012b, 0x012b, 0x0132, 0x0132, 0x0132, 0x013c, 0x013c, 0x013c, + 0x013c, 0x013c, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x014d, + 0x0153, 0x0153, 0x0153, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, + 0x015e, 0x0166, 0x0166, 0x016d, 0x0174, 0x0174, 0x0174, 0x0174, + 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, + // Entry C0 - FF + 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, + 0x0174, 0x0174, 0x0174, 0x0174, 0x017a, + }, + }, + { // ast + "afarabkhazianuavestanínafrikaansakanamháricuaragonésárabeasamésaváricuay" + + "maraazerbaixanubashkirbielorrusubúlgarubislamabambarabengalíntibetan" + + "ubretónbosniucatalánchechenuchamorrocorsucreechecueslávicu eclesiást" + + "icuchuvashgalésdanésalemándivehidzongkhaewegrieguinglésesperantoespa" + + "ñolestoniuvascupersafulahfinlandésfixanuferoésfrancésfrisón occiden" + + "talirlandésgaélicu escocésgalleguguaraníguyaratímanésḥausahebréuhind" + + "ihiri motucroatahaitianuhúngaruarmeniuhererointerlinguaindonesiuinte" + + "rlingueigboyi de Sichuáninupiaqidoislandésitalianuinuktitutxaponésxa" + + "vanésxeorxanukongokikuyukuanyamakazaquistanínkalaallisutḥemercanarés" + + "coreanukanuricachemiréscurdukomicórnicukirguistanínllatínluxemburgué" + + "sgandalimburguéslingalalaosianulituanuluba-katangaletónmalgaxemarsha" + + "llésmaorímacedoniumalayalammongolmarathimalayumaltésbirmanunaurundeb" + + "ele del nortenepalésndonganeerlandésnoruegu Nynorsknoruegu BokmÃ¥lnde" + + "bele del surnavajonyanjaoccitanuojibwaoromooriyaoséticupunyabípalipo" + + "lacupashtuportuguésquechuaromancherundirumanurusukinyarwandasánscrit" + + "usardusindhisami del nortesangocingaléseslovacueslovenusamoanushonas" + + "omalínalbanuserbiuswatisotho del sursondanéssuecusuaḥilitamiltelugut" + + "axiquistaníntailandéstigrinyaturcomanutswanatonganuturcutsongatártar" + + "utahitianuuigurucraínurduuzbequistanínvendavietnamínvolapükvalónwolo" + + "fxhosayiddishyorubazhuangchinuzulúachinésacoliadangmeadygheárabe de " + + "Túnezafrihiliaghemainuacadianualabamaaleutgheg d’Albaniaaltai del su" + + "ringlés antiguuangikaaraméumapuchearaonaarapahoárabe d’Arxeliaarawak" + + "árabe de Marruecosárabe d’Exiptuasullingua de signos americanaastur" + + "ianukotavaawadhibaluchibalinésbávarubasaabamunbatak tobaghomalabejab" + + "embabetawibenabafutbadagabalochi occidentalbhojpuribikolbinibanjarko" + + "msiksikabishnupriyabakhtiaribrajbrahuibodoakooseburiatbuginésbulubli" + + "nmedumbacaddocaribecayugaatsamcebuanuchigachibchachagataichuukésmari" + + "xíriga chinookchoctawchipewyanucheroquicheyennekurdu centralcópticuc" + + "apiznonturcu de Crimeakashubianudakotadargwataitadelawareslavedogrib" + + "dinkazarmadogribaxu sorbiudusun centraldualaneerlandés mediujola-fon" + + "yidyuladazagaembúefikemilianuexipciu antiguuekajukelamitainglés medi" + + "uyupik centralewondoestremeñufangfilipínfinlandés de Tornedalenfonfr" + + "ancés cajunfrancés mediufrancés antiguuarpitanufrisón del nortefrisó" + + "n orientalfriulianugagagauzchinu gangayogbayadari zoroastrianugeezgi" + + "lbertésgilakialtualemán mediualtualemán antiguugoan konkanigondigoro" + + "ntalogóticugrebogriegu antiguualemán de Suizawayuufrafragusiigwichʼi" + + "nhaidachinu hakkahawaianuhindi de Fijihiligaynonhititahmongaltu sorb" + + "iuchinu xianghupaibanibibioilokoingushingrianuinglés criollu xamaica" + + "nulojbanngombamachamexudeo-persaxudeo-árabejutlandéskara-kalpakkabil" + + "eñukachinjjukambakawikabardianukanembutyapmakondecabuverdianukenyang" + + "korokaingangkhasikhotanéskoyra chiinikhowarkirmanjkikakokalenjinkimb" + + "undukomi-permyakkonkanikosraeanukpellekarachay-balkarkriokinaray-aka" + + "relianukurukhshambalabafiacolonianukumykkutenailadinolangilahndalamb" + + "alezghianulingua franca novaligurianulivonianulakotalombardumongoloz" + + "iluri del nortelatgalianuluba-lulualuisenolundaluomizoluyiachinu lli" + + "terariulazmadurésmafamagahimaithilimakasarmandingomasáimabamokshaman" + + "darmendemerumorisyenírlandés mediumakhuwa-meettometa’micmacminangkab" + + "aumanchúmanipurimohawkmossimari occidentalmundangmúltiples llingüesc" + + "reekmirandésmarwarimentawaimyeneerzyamazanderanichinu min nannapolit" + + "anunamabaxu alemánnewariniasniueanuao nagakwasiongiemboonnogainorueg" + + "u antiguunovialn’kosotho del nortenuernewari clásicunyamwezinyankole" + + "nyoronzimaOsageturcu otomanupangasinanpahlavipampangapapiamentopalau" + + "anupícarualemán de Pennsylvaniaplautdietschpersa antiguualemán palat" + + "inufeniciupiamontéspónticupohnpeianuprusianuprovenzal antiguukʼicheʼ" + + "quichua del altiplanu de Chimborazorajasthanínrapanuirarotonganuroma" + + "ñolrifianuromboromanírotumanurusynrovianaaromanianurwasandavéssakha" + + "araméu samaritanusamburusasaksantalisaurashtrangambaysangusicilianus" + + "cotssardu sassarésKurdu del sursénecasenaseriselkupkoyraboro senniir" + + "landés antiguusamogitianutachelhitshanárabe chadianusidamobaxu siles" + + "ianuselayaréssami del surlule samiinari samiskolt samisoninkesogdian" + + "usranan tongoserersahofrisón de Saterlandsukumasususumeriucomorianus" + + "iriacu clásicusiriacusilesianutulutimnetesoterenatetumtigretivtokela" + + "utsakhurklingontlingittalixíntamashektonga nyasatok pisinturoyotarok" + + "otsakoniutsimshiantati musulmántumbukatuvalutasawaqtuvinianutamazigh" + + "t del Atles centraludmurtugaríticuumbundurootvaivenecianuvepsiuflame" + + "ncu occidentalfranconianu del Mainvóticuvorovunjowalserwolayttawaray" + + "washowarlpirichinu wucalmucomingrelianusogayaoyapésyangbenyembanheen" + + "gatucantonészapotecasimbólicu Blisszeelandészenagatamazight estándar" + + " de Marruecoszuniensin conteníu llingüísticuzazaárabe estándar moder" + + "nualemán d’Austriaaltualemán de Suizainglés d’Australiainglés de Can" + + "adáinglés de Gran Bretañainglés d’Estaos Xuníosespañol d’América Lla" + + "tinaespañol européuespañol de Méxicufrancés de Canadáfrancés de Suiz" + + "abaxu saxónflamencuportugués del Brasilportugués européumoldavuserbo" + + "-croataswahili del Conguchinu simplificáuchinu tradicional", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0018, 0x0021, 0x0025, 0x002e, 0x0037, + 0x003d, 0x0044, 0x004c, 0x0052, 0x005d, 0x0064, 0x006e, 0x0076, + 0x007d, 0x0084, 0x008d, 0x0095, 0x009c, 0x00a2, 0x00aa, 0x00b2, + 0x00ba, 0x00bf, 0x00c3, 0x00c8, 0x00df, 0x00e6, 0x00ec, 0x00f2, + 0x00f9, 0x00ff, 0x0107, 0x010a, 0x0110, 0x0117, 0x0120, 0x0128, + 0x012f, 0x0134, 0x0139, 0x013e, 0x0148, 0x014e, 0x0155, 0x015d, + 0x016f, 0x0178, 0x0189, 0x0190, 0x0198, 0x01a1, 0x01a7, 0x01ae, + 0x01b5, 0x01ba, 0x01c3, 0x01c9, 0x01d1, 0x01d9, 0x01e0, 0x01e6, + // Entry 40 - 7F + 0x01f1, 0x01fa, 0x0205, 0x0209, 0x0217, 0x021e, 0x0221, 0x022a, + 0x0232, 0x023b, 0x0243, 0x024b, 0x0253, 0x0258, 0x025e, 0x0266, + 0x0274, 0x027f, 0x0286, 0x028e, 0x0295, 0x029b, 0x02a6, 0x02ab, + 0x02af, 0x02b7, 0x02c4, 0x02cb, 0x02d8, 0x02dd, 0x02e8, 0x02ef, + 0x02f7, 0x02fe, 0x030a, 0x0310, 0x0317, 0x0322, 0x0328, 0x0331, + 0x033a, 0x0340, 0x0347, 0x034d, 0x0354, 0x035b, 0x0360, 0x0371, + 0x0379, 0x037f, 0x038a, 0x0399, 0x03a8, 0x03b7, 0x03bd, 0x03c3, + 0x03cb, 0x03d1, 0x03d6, 0x03db, 0x03e3, 0x03eb, 0x03ef, 0x03f5, + // Entry 80 - BF + 0x03fb, 0x0405, 0x040c, 0x0414, 0x0419, 0x041f, 0x0423, 0x042e, + 0x0438, 0x043d, 0x0443, 0x0451, 0x0456, 0x045f, 0x0467, 0x046f, + 0x0476, 0x047b, 0x0483, 0x0489, 0x048f, 0x0494, 0x04a1, 0x04aa, + 0x04af, 0x04b8, 0x04bd, 0x04c3, 0x04d1, 0x04db, 0x04e3, 0x04ec, + 0x04f2, 0x04f9, 0x04fe, 0x0504, 0x050c, 0x0515, 0x051a, 0x0521, + 0x0525, 0x0533, 0x0538, 0x0542, 0x054a, 0x0550, 0x0555, 0x055a, + 0x0561, 0x0567, 0x056d, 0x0572, 0x0577, 0x057f, 0x0584, 0x058b, + 0x0591, 0x05a1, 0x05a9, 0x05ae, 0x05b2, 0x05ba, 0x05c1, 0x05c6, + // Entry C0 - FF + 0x05d6, 0x05e3, 0x05f2, 0x05f8, 0x05ff, 0x0606, 0x060c, 0x0613, + 0x0625, 0x062b, 0x063e, 0x064f, 0x0652, 0x066d, 0x0676, 0x067c, + 0x0682, 0x0689, 0x0691, 0x0698, 0x069d, 0x06a2, 0x06ac, 0x06b3, + 0x06b7, 0x06bc, 0x06c2, 0x06c6, 0x06cb, 0x06d1, 0x06e3, 0x06eb, + 0x06f0, 0x06f4, 0x06fa, 0x06fd, 0x0704, 0x070f, 0x0718, 0x071c, + 0x0722, 0x0726, 0x072c, 0x0732, 0x073a, 0x073e, 0x0742, 0x0749, + 0x074e, 0x0754, 0x075a, 0x075f, 0x0766, 0x076b, 0x0772, 0x077a, + 0x0782, 0x0786, 0x0795, 0x079c, 0x07a6, 0x07ae, 0x07b6, 0x07c3, + // Entry 100 - 13F + 0x07cb, 0x07d3, 0x07e2, 0x07ec, 0x07f2, 0x07f8, 0x07fd, 0x0805, + 0x080a, 0x0810, 0x0815, 0x081a, 0x081f, 0x082a, 0x0837, 0x083c, + 0x084d, 0x0857, 0x085c, 0x0862, 0x0867, 0x086b, 0x0873, 0x0882, + 0x0888, 0x088f, 0x089c, 0x08a9, 0x08af, 0x08b9, 0x08bd, 0x08c5, + 0x08dd, 0x08e0, 0x08ee, 0x08fc, 0x090c, 0x0914, 0x0925, 0x0935, + 0x093e, 0x0940, 0x0946, 0x094f, 0x0953, 0x0958, 0x0969, 0x096d, + 0x0977, 0x097d, 0x098e, 0x09a1, 0x09ad, 0x09b2, 0x09bb, 0x09c2, + 0x09c7, 0x09d5, 0x09e5, 0x09ea, 0x09f0, 0x09f5, 0x09fe, 0x0a03, + // Entry 140 - 17F + 0x0a0e, 0x0a16, 0x0a23, 0x0a2d, 0x0a33, 0x0a38, 0x0a43, 0x0a4e, + 0x0a52, 0x0a56, 0x0a5c, 0x0a61, 0x0a67, 0x0a6f, 0x0a88, 0x0a8e, + 0x0a94, 0x0a9b, 0x0aa6, 0x0ab2, 0x0abc, 0x0ac7, 0x0ad0, 0x0ad6, + 0x0ad9, 0x0ade, 0x0ae2, 0x0aec, 0x0af3, 0x0af7, 0x0afe, 0x0b0a, + 0x0b11, 0x0b15, 0x0b1d, 0x0b22, 0x0b2b, 0x0b37, 0x0b3d, 0x0b46, + 0x0b4a, 0x0b52, 0x0b5a, 0x0b66, 0x0b6d, 0x0b76, 0x0b7c, 0x0b8b, + 0x0b8f, 0x0b98, 0x0ba1, 0x0ba7, 0x0baf, 0x0bb4, 0x0bbd, 0x0bc2, + 0x0bc9, 0x0bcf, 0x0bd4, 0x0bda, 0x0bdf, 0x0be8, 0x0bfa, 0x0c03, + // Entry 180 - 1BF + 0x0c0c, 0x0c12, 0x0c1a, 0x0c1f, 0x0c23, 0x0c31, 0x0c3b, 0x0c45, + 0x0c4c, 0x0c51, 0x0c54, 0x0c58, 0x0c5d, 0x0c6d, 0x0c70, 0x0c78, + 0x0c7c, 0x0c82, 0x0c8a, 0x0c91, 0x0c99, 0x0c9f, 0x0ca3, 0x0ca9, + 0x0caf, 0x0cb4, 0x0cb8, 0x0cc0, 0x0cd0, 0x0cde, 0x0ce5, 0x0ceb, + 0x0cf6, 0x0cfd, 0x0d05, 0x0d0b, 0x0d10, 0x0d1f, 0x0d26, 0x0d3a, + 0x0d3f, 0x0d48, 0x0d4f, 0x0d57, 0x0d5c, 0x0d61, 0x0d6c, 0x0d79, + 0x0d83, 0x0d87, 0x0d93, 0x0d99, 0x0d9d, 0x0da4, 0x0dab, 0x0db1, + 0x0dba, 0x0dbf, 0x0dce, 0x0dd4, 0x0dda, 0x0de9, 0x0ded, 0x0dfc, + // Entry 1C0 - 1FF + 0x0e04, 0x0e0c, 0x0e11, 0x0e16, 0x0e1b, 0x0e28, 0x0e32, 0x0e39, + 0x0e41, 0x0e4b, 0x0e53, 0x0e5a, 0x0e71, 0x0e7d, 0x0e8a, 0x0e9a, + 0x0ea1, 0x0eab, 0x0eb3, 0x0ebd, 0x0ec5, 0x0ed6, 0x0edf, 0x0f02, + 0x0f0e, 0x0f15, 0x0f20, 0x0f28, 0x0f2f, 0x0f34, 0x0f3b, 0x0f43, + 0x0f48, 0x0f4f, 0x0f59, 0x0f5c, 0x0f65, 0x0f6a, 0x0f7c, 0x0f83, + 0x0f88, 0x0f8f, 0x0f99, 0x0fa0, 0x0fa5, 0x0fae, 0x0fb3, 0x0fc2, + 0x0fcf, 0x0fd6, 0x0fda, 0x0fde, 0x0fe4, 0x0ff3, 0x1004, 0x100f, + 0x1018, 0x101c, 0x102b, 0x1031, 0x103f, 0x1049, 0x1055, 0x105e, + // Entry 200 - 23F + 0x1068, 0x1072, 0x1079, 0x1081, 0x108d, 0x1092, 0x1096, 0x10aa, + 0x10b0, 0x10b4, 0x10bb, 0x10c4, 0x10d4, 0x10db, 0x10e4, 0x10e8, + 0x10ed, 0x10f1, 0x10f7, 0x10fc, 0x1101, 0x1104, 0x110b, 0x1112, + 0x1119, 0x1120, 0x1128, 0x1130, 0x113b, 0x1144, 0x114a, 0x1150, + 0x1158, 0x1161, 0x116f, 0x1176, 0x117c, 0x1183, 0x118c, 0x11a7, + 0x11ad, 0x11b7, 0x11be, 0x11c2, 0x11c5, 0x11ce, 0x11d4, 0x11e7, + 0x11fb, 0x1202, 0x1206, 0x120b, 0x1211, 0x1219, 0x121e, 0x1223, + 0x122b, 0x1233, 0x123a, 0x1245, 0x1249, 0x124c, 0x1252, 0x1259, + // Entry 240 - 27F + 0x125e, 0x1267, 0x1270, 0x1278, 0x1288, 0x1292, 0x1298, 0x12b8, + 0x12bc, 0x12da, 0x12de, 0x12f6, 0x12f6, 0x1309, 0x131d, 0x1332, + 0x1344, 0x135c, 0x1376, 0x1393, 0x13a4, 0x13b7, 0x13b7, 0x13ca, + 0x13db, 0x13e6, 0x13ee, 0x1403, 0x1416, 0x141d, 0x1429, 0x143a, + 0x144c, 0x145d, + }, + }, + { // az + azLangStr, + azLangIdx, + }, + { // az-Cyrl + "азәрбајҹан дилиалман дилиинÒÐ¸Ð»Ð¸Ñ Ð´Ð¸Ð»Ð¸Ð¸Ñпан дилифранÑыз дилииталјан дилиј" + + "апон дилипортугал Ð´Ð¸Ð»Ð¸Ñ€ÑƒÑ Ð´Ð¸Ð»Ð¸Ñ‡Ð¸Ð½ дили", + []uint16{ // 180 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0047, 0x0047, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + // Entry 40 - 7F + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0088, 0x0088, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + // Entry 80 - BF + 0x009b, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00d2, + }, + }, + { // bas + "HÉ”p u akanHÉ”p u amhÄrìkHÉ”p u arâbHÉ”p u bièlòrûsHÉ”p u bûlgârHÉ”p u bɛŋgàli" + + "HÉ”p u cɛ̂kHÉ”p u jamânHÉ”p u gri á·‡kyàHÉ”p u Å‹gisìHÉ”p u panyÄHÉ”p u pÉ›rsì" + + "àHÉ”p u pulàsiHÉ”p u É“ausaHÉ”p u hindìHÉ”p u hɔŋgrìiHÉ”p u indònesìàHÉ”p " + + "u iɓòHÉ”p u italìàHÉ”p u yapànHÉ”p u yavàHÉ”p u kmɛ̂rHÉ”p u kÉ”rēàHÉ”p u ma" + + "kɛ᷆HÉ”p u birmànHÉ”p u nepaá·†lHÉ”p u nlɛ̀ndiHÉ”p u pÉ›njàbiHÉ”p u pÉ”lɔ̄nàHÉ”" + + "p u pÉ”tɔ̄kìHÉ”p u rùmanìàHÉ”p u ruslàndHÉ”p u ruÄndàHÉ”p u somàlîHÉ”p u s" + + "uɛ᷆dHÉ”p u tamuá·†lHÉ”p u tâyHÉ”p u tûrkHÉ”p u ukrÇŽnìàHÉ”p u urdùHÉ”p u vyɛ̄" + + "dnàmHÉ”p u yorÅ«bàHÉ”p u kinàHÉ”p u zulùÆàsàa", + []uint16{ // 213 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x001b, 0x001b, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0039, 0x0048, + 0x0048, 0x0048, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0073, 0x0073, 0x0073, 0x0073, 0x0085, 0x0093, 0x0093, 0x00a0, + 0x00a0, 0x00a0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00be, + 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00cb, + 0x00cb, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00e9, 0x00e9, 0x00e9, + // Entry 40 - 7F + 0x00e9, 0x00fc, 0x00fc, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, + 0x0117, 0x0117, 0x0124, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, + 0x0130, 0x0130, 0x013e, 0x013e, 0x014d, 0x014d, 0x014d, 0x014d, + 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, + 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, + 0x014d, 0x014d, 0x014d, 0x015c, 0x015c, 0x016a, 0x016a, 0x016a, + 0x0179, 0x0179, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0199, 0x0199, 0x01ab, + // Entry 80 - BF + 0x01ab, 0x01bd, 0x01bd, 0x01bd, 0x01bd, 0x01ce, 0x01dd, 0x01ec, + 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, + 0x01ec, 0x01ec, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x020a, 0x020a, 0x0219, 0x0219, 0x0219, 0x0224, 0x0224, 0x0224, + 0x0224, 0x0224, 0x0230, 0x0230, 0x0230, 0x0230, 0x0230, 0x0241, + 0x024d, 0x024d, 0x024d, 0x025f, 0x025f, 0x025f, 0x025f, 0x025f, + 0x025f, 0x026e, 0x026e, 0x027a, 0x0286, 0x0286, 0x0286, 0x0286, + 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, + // Entry C0 - FF + 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, + 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, 0x0286, + 0x0286, 0x0286, 0x0286, 0x0286, 0x028e, + }, + }, + { // be + "абхазÑкаÑафрыкаанÑаканамхарÑкаÑарагонÑкаÑарабÑкаÑаÑамÑкаÑаварÑкаÑаймараа" + + "зербайджанÑкаÑбашкірÑкаÑбеларуÑкаÑбалгарÑкаÑбамбарабенгальÑкаÑтыбец" + + "каÑбрÑтонÑкаÑбаÑнійÑкаÑкаталанÑкаÑчачÑнÑкаÑкарÑіканÑкаÑчÑшÑкаÑчуваш" + + "ÑкаÑвалійÑкаÑдацкаÑнÑмецкаÑдзонгкхаÑвегрÑчаÑкаÑанглійÑкаÑÑÑперантаі" + + "ÑпанÑкаÑÑÑтонÑкаÑбаÑкÑкаÑфарÑіфінÑкаÑфіджыйÑкаÑфарÑÑ€ÑкаÑфранцузÑкаÑ" + + "фрызÑкаÑірландÑкаÑшатландÑÐºÐ°Ñ Ð³ÑльÑкаÑгаліÑійÑкаÑгуаранігуджарацімÑ" + + "нÑкаÑхаўÑаіўрытхіндзіхарвацкаÑгаіцÑнÑкаÑвенгерÑкаÑармÑнÑкаÑінтÑрлін" + + "гваінданезійÑкаÑінтÑрлінгвеігбаСычуань ІіÑландÑкаÑітальÑнÑкаÑінукты" + + "тутÑпонÑкаÑÑванÑкаÑгрузінÑкаÑкікуюказахÑкаÑгрÑнландÑкаÑкхмерÑкаÑкан" + + "адакарÑйÑкаÑкашмірÑкаÑкурдÑкаÑкорнÑкаÑкіргізÑкаÑлацінÑкаÑлюкÑембург" + + "ÑкаÑгандалінгалалаоÑкаÑлітоўÑкаÑлуба-катангалатышÑкаÑмалагаÑійÑкаÑм" + + "аарымакедонÑкаÑмалаÑламмангольÑкаÑмаратхімалайÑкаÑмальтыйÑкаÑбірман" + + "ÑкаÑÐ¿Ð°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ Ð½Ð´ÑбеленепальÑкаÑгаландÑкаÑнарвежÑÐºÐ°Ñ (нюнорÑк)нарвеж" + + "ÑÐºÐ°Ñ (букмал)праванÑальÑкаÑаромаорыÑпанджабіпольÑкаÑпуштупартугальÑ" + + "каÑкечуарÑтараманÑкаÑрундзірумынÑкаÑруÑкаÑкіньÑруандаÑанÑкрытÑіндхі" + + "паўночнаÑаамÑкаÑÑангаÑінгальÑкаÑÑлавацкаÑÑлавенÑкаÑшонаÑамалійÑкаÑа" + + "лбанÑкаÑÑербÑкаÑÑундÑкаÑшведÑкаÑÑуахілітамільÑкаÑÑ‚ÑлугутаджыкÑкаÑта" + + "йÑкаÑтыгрыньÑтуркменÑкаÑтанганÑкаÑтурÑцкаÑтатарÑкаÑуйгурÑкаÑукраінÑ" + + "каÑурдуузбекÑкаÑв’етнамÑкаÑвалофкоÑаідышёрубакітайÑкаÑзулуадыгейÑка" + + "ÑагемакадзкаÑалеуцкаÑÑтараанглійÑкаÑарамейÑкаÑмапучÑаÑуаÑтурыйÑкаÑб" + + "ембабеназаходнÑÑ Ð±ÐµÐ»ÑƒÐ´Ð¶ÑкаÑбодабурацкаÑчыгачÑрокіцÑнтральнакурдÑкаÑ" + + "копцкаÑтайтазарманіжнелужыцкаÑдуаладыёла-фон’іÑмбуÑтараÑгіпецкаÑтаг" + + "альÑкаÑÑтарафранцузÑкаÑгагаузÑкаÑÑтарагрÑцкаÑшвейцарÑÐºÐ°Ñ Ð½ÑмецкаÑгу" + + "ÑіігавайÑкаÑверхнелужыцкаÑнгомбÑмачамÑкабільÑкаÑкамбамакондÑкабувер" + + "дзьÑнукойра чыінікаленджынкомі-пÑрмÑцкаÑконканішамбалабафіÑлангалак" + + "отапаўночны лурылуалуÑмаÑаімерумаўрыкійÑкаÑмакуа-меетаметамагаўкÑка" + + "ÑмундангмазандÑранÑкаÑнаманіжненÑмецкаÑкваÑіанконуÑрньÑнколекічÑром" + + "барваÑкуцкаÑÑамбуруÑангупаўднёвакурдÑкаÑÑенакойрабара Ñеннітачалхіт" + + "паўднёваÑаамÑкаÑлуле-ÑаамÑкаÑінары-ÑаамÑкаÑколта-ÑаамÑкаÑÑ‚ÑÑоклінго" + + "нтаÑавакмовы тамазігхтаўневÑÐ´Ð¾Ð¼Ð°Ñ Ð¼Ð¾Ð²Ð°Ð²Ð°Ñ–Ð²ÑƒÐ½ÑŒÑ‘Ð²Ð°Ð»ÑŒÐ±Ñ–Ñ€Ñ‹ÑогаÑтандартн" + + "Ñ‹ мараканÑкі тамазігхтнÑма моўнага матÑрыÑлуÑучаÑÐ½Ð°Ñ ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð°Ñ€" + + "абÑкаÑнÑÐ¼ÐµÑ†ÐºÐ°Ñ (аўÑÑ‚Ñ€.)нÑÐ¼ÐµÑ†ÐºÐ°Ñ (швейц.)англійÑÐºÐ°Ñ (аўÑтрал.)англій" + + "ÑÐºÐ°Ñ (канад.)англійÑÐºÐ°Ñ (ЗШÐ)Ñ–ÑпанÑÐºÐ°Ñ (лацінаамер.)Ñ–ÑпанÑÐºÐ°Ñ (еўра" + + "п.)Ñ–ÑпанÑÐºÐ°Ñ (мекÑікан.)французÑÐºÐ°Ñ (канад.)французÑÐºÐ°Ñ (швейц.)ніж" + + "неÑакÑонÑкаÑфламандÑкаÑпартугальÑÐºÐ°Ñ (бразіл.)партугальÑÐºÐ°Ñ (еўрап." + + ")малдаўÑкаÑÑербÑка-харвацкаÑÑуахілі КонгаÑÐ¿Ñ€Ð¾ÑˆÑ‡Ð°Ð½Ð°Ñ ÐºÑ–Ñ‚Ð°Ð¹ÑкаÑтрадыцы" + + "Ð¹Ð½Ð°Ñ ÐºÑ–Ñ‚Ð°Ð¹ÑкаÑ", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0012, 0x0012, 0x0024, 0x002c, 0x003e, 0x0052, + 0x0062, 0x0072, 0x0082, 0x008e, 0x00ac, 0x00c0, 0x00d4, 0x00e8, + 0x00e8, 0x00f6, 0x010c, 0x011c, 0x0130, 0x0144, 0x015a, 0x016c, + 0x016c, 0x0184, 0x0184, 0x0192, 0x0192, 0x01a4, 0x01b6, 0x01c2, + 0x01d2, 0x01d2, 0x01e2, 0x01e8, 0x01fa, 0x020e, 0x0220, 0x0232, + 0x0244, 0x0254, 0x025e, 0x025e, 0x026c, 0x0280, 0x0292, 0x02a8, + 0x02b8, 0x02cc, 0x02f3, 0x0309, 0x0317, 0x0329, 0x0337, 0x0341, + 0x034b, 0x0357, 0x0357, 0x0369, 0x037d, 0x0391, 0x03a3, 0x03a3, + // Entry 40 - 7F + 0x03b9, 0x03d3, 0x03e9, 0x03f1, 0x0402, 0x0402, 0x0402, 0x0416, + 0x042c, 0x043e, 0x044e, 0x045e, 0x0472, 0x0472, 0x047c, 0x047c, + 0x048e, 0x04a6, 0x04b8, 0x04c4, 0x04d6, 0x04d6, 0x04ea, 0x04fa, + 0x04fa, 0x050a, 0x051e, 0x0530, 0x054c, 0x0556, 0x0556, 0x0564, + 0x0572, 0x0584, 0x059b, 0x05ad, 0x05c7, 0x05c7, 0x05d1, 0x05e7, + 0x05f7, 0x060d, 0x061b, 0x062d, 0x0643, 0x0657, 0x0657, 0x0678, + 0x068c, 0x068c, 0x06a0, 0x06c5, 0x06e8, 0x06e8, 0x06e8, 0x06e8, + 0x0704, 0x0704, 0x070e, 0x0716, 0x0716, 0x0726, 0x0726, 0x0736, + // Entry 80 - BF + 0x0740, 0x075a, 0x0764, 0x077e, 0x078a, 0x079c, 0x07a8, 0x07be, + 0x07ce, 0x07ce, 0x07da, 0x07fa, 0x0804, 0x081a, 0x082c, 0x0840, + 0x0840, 0x0848, 0x085e, 0x0870, 0x0880, 0x0880, 0x0880, 0x0890, + 0x08a0, 0x08ae, 0x08c2, 0x08ce, 0x08e2, 0x08f0, 0x0900, 0x0916, + 0x0916, 0x092a, 0x093a, 0x093a, 0x094c, 0x094c, 0x095e, 0x0972, + 0x097a, 0x098c, 0x098c, 0x09a3, 0x09a3, 0x09a3, 0x09ad, 0x09b5, + 0x09bd, 0x09c7, 0x09c7, 0x09d9, 0x09e1, 0x09e1, 0x09e1, 0x09e1, + 0x09f5, 0x09f5, 0x09f5, 0x09fd, 0x09fd, 0x0a0d, 0x0a0d, 0x0a1d, + // Entry C0 - FF + 0x0a1d, 0x0a1d, 0x0a3b, 0x0a3b, 0x0a4f, 0x0a5b, 0x0a5b, 0x0a5b, + 0x0a5b, 0x0a5b, 0x0a5b, 0x0a5b, 0x0a61, 0x0a61, 0x0a77, 0x0a77, + 0x0a77, 0x0a77, 0x0a77, 0x0a77, 0x0a77, 0x0a77, 0x0a77, 0x0a77, + 0x0a77, 0x0a81, 0x0a81, 0x0a89, 0x0a89, 0x0a89, 0x0aae, 0x0aae, + 0x0aae, 0x0aae, 0x0aae, 0x0aae, 0x0aae, 0x0aae, 0x0aae, 0x0aae, + 0x0aae, 0x0ab6, 0x0ab6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, + 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ace, 0x0ace, 0x0ace, + 0x0ace, 0x0ace, 0x0ace, 0x0ace, 0x0ace, 0x0ada, 0x0ada, 0x0afe, + // Entry 100 - 13F + 0x0b0c, 0x0b0c, 0x0b0c, 0x0b0c, 0x0b0c, 0x0b0c, 0x0b16, 0x0b16, + 0x0b16, 0x0b16, 0x0b16, 0x0b20, 0x0b20, 0x0b3a, 0x0b3a, 0x0b44, + 0x0b44, 0x0b5a, 0x0b5a, 0x0b5a, 0x0b62, 0x0b62, 0x0b62, 0x0b7e, + 0x0b7e, 0x0b7e, 0x0b7e, 0x0b7e, 0x0b7e, 0x0b7e, 0x0b7e, 0x0b92, + 0x0b92, 0x0b92, 0x0b92, 0x0b92, 0x0bb2, 0x0bb2, 0x0bb2, 0x0bb2, + 0x0bb2, 0x0bb2, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, + 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, 0x0bc6, + 0x0bc6, 0x0bde, 0x0c05, 0x0c05, 0x0c05, 0x0c0f, 0x0c0f, 0x0c0f, + // Entry 140 - 17F + 0x0c0f, 0x0c21, 0x0c21, 0x0c21, 0x0c21, 0x0c21, 0x0c3d, 0x0c3d, + 0x0c3d, 0x0c3d, 0x0c3d, 0x0c3d, 0x0c3d, 0x0c3d, 0x0c3d, 0x0c3d, + 0x0c49, 0x0c55, 0x0c55, 0x0c55, 0x0c55, 0x0c55, 0x0c69, 0x0c69, + 0x0c69, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c73, 0x0c81, 0x0c9b, + 0x0c9b, 0x0c9b, 0x0c9b, 0x0c9b, 0x0c9b, 0x0cb0, 0x0cb0, 0x0cb0, + 0x0cb0, 0x0cc2, 0x0cc2, 0x0cdd, 0x0ceb, 0x0ceb, 0x0ceb, 0x0ceb, + 0x0ceb, 0x0ceb, 0x0ceb, 0x0ceb, 0x0cf9, 0x0d03, 0x0d03, 0x0d03, + 0x0d03, 0x0d03, 0x0d0d, 0x0d0d, 0x0d0d, 0x0d0d, 0x0d0d, 0x0d0d, + // Entry 180 - 1BF + 0x0d0d, 0x0d19, 0x0d19, 0x0d19, 0x0d19, 0x0d32, 0x0d32, 0x0d32, + 0x0d32, 0x0d32, 0x0d38, 0x0d38, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d3e, + 0x0d3e, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d48, 0x0d48, 0x0d48, + 0x0d48, 0x0d48, 0x0d50, 0x0d68, 0x0d68, 0x0d7d, 0x0d85, 0x0d85, + 0x0d85, 0x0d85, 0x0d85, 0x0d99, 0x0d99, 0x0d99, 0x0da7, 0x0da7, + 0x0da7, 0x0da7, 0x0da7, 0x0da7, 0x0da7, 0x0da7, 0x0dc3, 0x0dc3, + 0x0dc3, 0x0dcb, 0x0de5, 0x0de5, 0x0de5, 0x0de5, 0x0de5, 0x0df1, + 0x0df1, 0x0df1, 0x0df1, 0x0df1, 0x0df7, 0x0df7, 0x0dff, 0x0dff, + // Entry 1C0 - 1FF + 0x0dff, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, + 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, + 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e0f, 0x0e17, 0x0e17, + 0x0e17, 0x0e17, 0x0e17, 0x0e17, 0x0e17, 0x0e21, 0x0e21, 0x0e21, + 0x0e21, 0x0e21, 0x0e21, 0x0e27, 0x0e27, 0x0e35, 0x0e35, 0x0e43, + 0x0e43, 0x0e43, 0x0e43, 0x0e43, 0x0e4d, 0x0e4d, 0x0e4d, 0x0e4d, + 0x0e6d, 0x0e6d, 0x0e75, 0x0e75, 0x0e75, 0x0e92, 0x0e92, 0x0e92, + 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, 0x0ec2, 0x0edb, + // Entry 200 - 23F + 0x0ef6, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, + 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, 0x0f11, + 0x0f11, 0x0f19, 0x0f19, 0x0f19, 0x0f19, 0x0f19, 0x0f19, 0x0f19, + 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f27, + 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f27, 0x0f35, 0x0f35, 0x0f54, + 0x0f54, 0x0f54, 0x0f54, 0x0f6f, 0x0f75, 0x0f75, 0x0f75, 0x0f75, + 0x0f75, 0x0f75, 0x0f75, 0x0f7f, 0x0f7f, 0x0f7f, 0x0f7f, 0x0f7f, + 0x0f8f, 0x0f8f, 0x0f8f, 0x0f8f, 0x0f97, 0x0f97, 0x0f97, 0x0f97, + // Entry 240 - 27F + 0x0f97, 0x0f97, 0x0f97, 0x0f97, 0x0f97, 0x0f97, 0x0f97, 0x0fd3, + 0x0fd3, 0x0ffd, 0x0ffd, 0x1035, 0x1035, 0x1053, 0x1071, 0x1097, + 0x10b9, 0x10b9, 0x10d6, 0x1100, 0x1120, 0x1146, 0x1146, 0x116a, + 0x118e, 0x11ac, 0x11c2, 0x11ec, 0x1214, 0x1228, 0x1249, 0x1262, + 0x1289, 0x12b2, + }, + }, + { // bem + "Ichi AkanIchi AmhariIchi ArabIchi BelarusIchi BulgarianiIchi BengaliIchi" + + " ChekiIchi JemaniIchi GrikiIchi SunguIchi SpanishiIchi PesiaIchi Fre" + + "nchiIchi HausaIchi HinduIchi HangarianIchi IndonesianiIchi IboIchi I" + + "talianiIchi JapanisiIchi JavanisiIchi KhmerIchi KorianiIchi Maleshan" + + "iIchi BurmaIchi NepaliIchi DachiIchi PunjabiIchi PolishiIchi Potogis" + + "iIchi RomanianiIchi RusianiIchi RwandaIchi SomaliaIchi SwideniIchi T" + + "amilIchi ThaiIchi TakishiIchi UkranianiIchi UruduIchi VietinamuIchi " + + "YorubaIchi ChainisiIchi ZuluIchibemba", + []uint16{ // 218 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0029, 0x0038, + 0x0038, 0x0038, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0063, 0x006d, 0x006d, 0x007a, + 0x007a, 0x007a, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x009a, + 0x009a, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00b2, 0x00b2, 0x00b2, + // Entry 40 - 7F + 0x00b2, 0x00c2, 0x00c2, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, + 0x00d7, 0x00d7, 0x00e4, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, + 0x00f1, 0x00f1, 0x00fb, 0x00fb, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0115, 0x0115, 0x011f, 0x011f, 0x011f, + 0x012a, 0x012a, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0140, 0x0140, 0x014c, + // Entry 80 - BF + 0x014c, 0x0159, 0x0159, 0x0159, 0x0159, 0x0167, 0x0173, 0x017e, + 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, 0x017e, + 0x017e, 0x017e, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, + 0x0196, 0x0196, 0x01a0, 0x01a0, 0x01a0, 0x01a9, 0x01a9, 0x01a9, + 0x01a9, 0x01a9, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01c3, + 0x01cd, 0x01cd, 0x01cd, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, + 0x01db, 0x01e6, 0x01e6, 0x01f3, 0x01fc, 0x01fc, 0x01fc, 0x01fc, + 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, + // Entry C0 - FF + 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, + 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, + 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, + 0x01fc, 0x0205, + }, + }, + { // bez + "HiakanHiamhariHiharabuHibelarusiHibulgariaHibanglaHichekiHijerumaniHigir" + + "ikiHiingerezaHihispaniaHiajemiHifaransaHihausaHihindiHihungariHiindo" + + "nesiaHiiboHiitalianoHijapaniHijavaHikambodiaHikoreaHimalesiaHiburmaH" + + "inepaliHiholanziHipunjabiHipolandiHilenoHilomaniaHilusiHinyarwandaHi" + + "somaliHiswidiHitamilHitailandHitulukiHiukraniaHiurduHivietinamuHiyor" + + "ubaHichinaHizuluHibena", + []uint16{ // 220 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0055, 0x0055, 0x005f, + 0x005f, 0x005f, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x006f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0076, + 0x0076, 0x007d, 0x007d, 0x007d, 0x007d, 0x0086, 0x0086, 0x0086, + // Entry 40 - 7F + 0x0086, 0x0091, 0x0091, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0142, + 0x0148, 0x0148, 0x0148, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, + 0x0153, 0x015b, 0x015b, 0x0162, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + // Entry C0 - FF + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x016e, + }, + }, + { // bg + bgLangStr, + bgLangIdx, + }, + { // bm + "akankanamarikikanlarabukanbiyelorisikanbuligarikanbamanakanbÉ›ngalikancÉ›k" + + "ikanalimaɲikangÉ›rÉ›sikanangilÉ›kanesipaɲolkanperisanikantubabukanawusa" + + "kaninidikanoÅ‹irikanÆndonezikanigibokanitalikanzapÉ”nekanjavanekankamb" + + "ojikankorekanmalÉ›zikanbirimanikannepalekanolandekanpÉ›nijabikanpolone" + + "kanpÉ”ritigalikanrumanikanirisikanruwandakansomalikansuwÉ›dikantamulik" + + "antayikanturikikanukÉ›rÉ›nikanurudukanwiyÉ›tinamukanyorubakansiniwakanz" + + "ulukan", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0011, 0x0011, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x0027, 0x0032, + 0x0032, 0x003b, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, + 0x0046, 0x0046, 0x0046, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0064, 0x006e, 0x006e, 0x007a, + 0x007a, 0x007a, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x0096, + 0x0096, 0x009e, 0x009e, 0x009e, 0x009e, 0x00a7, 0x00a7, 0x00a7, + // Entry 40 - 7F + 0x00a7, 0x00b3, 0x00b3, 0x00bb, 0x00bb, 0x00bb, 0x00bb, 0x00bb, + 0x00c3, 0x00c3, 0x00cd, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00f1, 0x00f1, 0x00fc, 0x00fc, 0x00fc, + 0x0105, 0x0105, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, + 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x011a, 0x011a, 0x0123, + // Entry 80 - BF + 0x0123, 0x0131, 0x0131, 0x0131, 0x0131, 0x013a, 0x0142, 0x014c, + 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, + 0x014c, 0x014c, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, + 0x015f, 0x015f, 0x0168, 0x0168, 0x0168, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0184, + 0x018c, 0x018c, 0x018c, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, + 0x019a, 0x01a3, 0x01a3, 0x01ac, 0x01b3, + }, + }, + { // bn + bnLangStr, + bnLangIdx, + }, + { // bo + "བོད་སà¾à½‘་རྫོང་à½à½‘བྱིན་ཇིའི་སà¾à½‘à¼à½§à½²à½“་དིཉི་ཧོང་སà¾à½‘་ནེ་པ་ལིཨུ་རུ་སུ་སà¾à½‘་རྒྱ་སà¾" + + "ད་ཟ་ཟའ་སà¾à½‘à¼à½‘བྱིན་ཇིའི་སà¾à½‘༠(à½à½ºà¼‹à½“་ཌ་)དབྱིན་ཇིའི་སà¾à½‘༠(དབྱིན་ལན་)དབྱ" + + "ིན་ཇིའི་སà¾à½‘༠(ཨ་རི་)", + []uint16{ // 595 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x002a, 0x002a, 0x002a, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + // Entry 40 - 7F + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, + 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, + // Entry 80 - BF + 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry C0 - FF + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 100 - 13F + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 140 - 17F + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 180 - 1BF + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 1C0 - 1FF + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 200 - 23F + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 240 - 27F + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, + 0x013e, 0x0189, 0x01c8, + }, + }, + {}, // bo-IN + { // br + "afarabkhazegavestegafrikaansakanamharegaragonegarabegasamegavaraymaraaze" + + "rbaidjanegbachkirbelarusegbulgaregbislamabambarabengalitibetanegbrez" + + "honegbosnegkatalanegtchetchenegchamorrukorsegkritchekegslavoneg iliz" + + "tchouvatchkembraegdanegalamanegdivehidzongkhaewegresianegsaoznegespe" + + "rantegspagnolegestonegeuskaregpersegfinnegfidjiegfaeroeggallegfrizeg" + + " ar Cʼhornôgiwerzhonegskoseggalizegguaranigujaratimanaveghaousahebra" + + "eghindihiri motukroateghaitieghungaregarmenianeghererointerlinguaind" + + "onezeginterlingueigboyieg Sichuaninupiaqidoislandegitalianeginuktitu" + + "tjapanegjavanegjorjianegkongokikuyukwanyamakazakkhmerkanaregkoreaneg" + + "kanourikashmirikurdegkerneveuregkirgizlatinluksembourgeggandalimbour" + + "geglingalalaoseglituanegluba-katangalatviegmalgachegmarshallmaorimak" + + "edonegmalayalammongolegmarathimalaysegmaltegbirmanegnauruegndebele a" + + "n Norzhnepalegndonganederlandegnorvegeg nynorsknorvegeg bokmÃ¥lndebel" + + "e ar Sunavacʼhonyanjaokitanegojibwaoriyaosetegpunjabipalipolonegpach" + + "toportugalegkechuaegromañchegrundiroumanegrusianegkinyarwandasanskri" + + "tegsardegsindhisámi an Norzhsangosinghalegslovakegslovenegsamoanshon" + + "asomalialbanegserbegswatisotho ar Susundanegsvedegswahilitamilegtelo" + + "ugoutadjikthaitigrignaturkmenegtswanatongaturkegtsongatatartahitiane" + + "gouigouregukrainegourdououzbekegvendavietnamegvolapükwallonegwolofxh" + + "osayiddishyoroubazhuangsinaegzoulouegachinegacoliadangmeadygeiegarab" + + "eg Tuniziaafrihiliaghemainouegakadegalabamaegaleouteggegegaltaieg ar" + + " Suhensaoznegangikaarameegaraoukanegaraonaarapahoarabeg Aljeriaarawa" + + "kegarabeg Marokoarabeg Egiptasuyezh sinoù Amerikaasturianegawadhibal" + + "outchibalinegbavariegbasaabedawiegbembabenabaloutchi ar Cʼhornôgbhoj" + + "puribikolbinibrajbrahwegbodoakoosebouriatbugiblincaddokaribegatsamce" + + "buanochibchamariegchoktawchipewyancherokeecheyennekurdeg soranikopte" + + "gturkeg Krimeakachoubegdakotadargwadelawaredogribdinkadogriizelsorab" + + "egnederlandeg krenndyulaembuefikhenegiptegekajukelamegkrennsaoznegew" + + "ondofangfilipinegfinneg traoñienn an Tornefongalleg cajunkrenncʼhall" + + "eghencʼhallegarpitanegfrizeg an Norzhfrizeg ar Reterfrioulaneggagaga" + + "ouzegsinaeg Gangayogbayagezeggilbertegkrennalamaneg uhelhenalamaneg " + + "uhelgorontalogoteggrebohencʼhresianegalamaneg Suishaidasinaeg Hakkah" + + "awaieghiligaynonhmonguhelsorabegsinaeg Xianhupaibanibibioingouchegkr" + + "eoleg Jamaikayuzev-persegyuzev-arabegkarakalpakkabilegkachinkambakab" + + "ardegkabuverdianukhasikhotanegkimbundukonkanikosraekpellekaratchay-b" + + "alkarkareliegkurukhkolunegkutenailadinolahndalambalezgilingua franca" + + " novaliguriegmongoloziluba-lulualuisenolundaluolushailuyiasinaeg len" + + "negelmagahimaithilimasaimokshamandarmendemorisegkrenniwerzhonegmanch" + + "oumanipurimohawkmarieg ar Cʼhornôgyezhoù liesmuskogimirandegerzasina" + + "eg Min Nannapolitanegalamaneg izelnewariniasniueaoegnogayhennorsegno" + + "vialsotho an Norzhnewari klaselnyamwezinyankolenyoroosageturkeg otom" + + "anpangasinanpahlavipampangapapiamentopalaupikardegalamaneg Pennsylva" + + "niahenbersegfenikianegpiemontegpontegpohnpeihenbruseghenbrovañsegkic" + + "huaeg Chimborazorajasthanirapanuirarotongaromagnolegromboromaniegaro" + + "umanegrwasandaweyakoutegarameeg ar Samaritanedsasaksantalisikiliegsk" + + "otegsasaresegheniwerzhonegtachelitegshanarabeg Tchadsidamosámi ar Su" + + "sámi LuleÃ¥sámi Inarisámi Skoltsoninkesogdiegserersumeregkomoregsirie" + + "g klaselsiriegsileziegtoulouegterenotetumtigreanegtivtokelauklingont" + + "inglittamachegnyasa tongatok pisinturoyoegtsimshiantumbukatuvalutouv" + + "atamazigteg Kreizatlasoudmourtegougaritegumbunduyezh dianavvaivenezi" + + "egvepsegflandrezeg ar c’hornôgvotyakegvoroegwalserwalamowaraywashosi" + + "naeg WukalmoukmegrelegyaoyapegkantonegzapotegBlisszelandegzenagatama" + + "cheg Maroko standartzunidiyezharabeg modernalamaneg Aostriaalamaneg " + + "uhel Suissaozneg Aostraliasaozneg Kanadasaozneg Breizh-Veursaozneg A" + + "merikaspagnoleg Amerika latinspagnoleg Europaspagnoleg Mecʼhikogalle" + + "g Kanadagalleg Suissaksoneg izelflandrezegportugaleg Brazilportugale" + + "g Europamoldovegserb-kroategswahili Kongosinaeg eeunaetsinaeg hengou" + + "nel", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000c, 0x0013, 0x001c, 0x0020, 0x0027, 0x002f, + 0x0035, 0x003b, 0x003f, 0x0045, 0x0052, 0x0059, 0x0062, 0x006a, + 0x0071, 0x0078, 0x007f, 0x0088, 0x0091, 0x0097, 0x00a0, 0x00ab, + 0x00b3, 0x00b9, 0x00bc, 0x00c3, 0x00d0, 0x00da, 0x00e2, 0x00e7, + 0x00ef, 0x00f5, 0x00fd, 0x0100, 0x0109, 0x0110, 0x011a, 0x0123, + 0x012a, 0x0132, 0x0138, 0x0138, 0x013e, 0x0145, 0x014c, 0x0152, + 0x0166, 0x0170, 0x0176, 0x017d, 0x0184, 0x018c, 0x0193, 0x0199, + 0x01a0, 0x01a5, 0x01ae, 0x01b5, 0x01bc, 0x01c4, 0x01ce, 0x01d4, + // Entry 40 - 7F + 0x01df, 0x01e8, 0x01f3, 0x01f7, 0x0203, 0x020a, 0x020d, 0x0215, + 0x021e, 0x0227, 0x022e, 0x0235, 0x023e, 0x0243, 0x0249, 0x0251, + 0x0256, 0x0256, 0x025b, 0x0262, 0x026a, 0x0271, 0x0279, 0x027f, + 0x027f, 0x028a, 0x0290, 0x0295, 0x02a2, 0x02a7, 0x02b1, 0x02b8, + 0x02be, 0x02c6, 0x02d2, 0x02d9, 0x02e2, 0x02ea, 0x02ef, 0x02f8, + 0x0301, 0x0309, 0x0310, 0x0318, 0x031e, 0x0326, 0x032d, 0x033d, + 0x0344, 0x034a, 0x0355, 0x0365, 0x0375, 0x0382, 0x038b, 0x0391, + 0x0399, 0x039f, 0x039f, 0x03a4, 0x03aa, 0x03b1, 0x03b5, 0x03bc, + // Entry 80 - BF + 0x03c2, 0x03cc, 0x03d4, 0x03de, 0x03e3, 0x03eb, 0x03f3, 0x03fe, + 0x0408, 0x040e, 0x0414, 0x0422, 0x0427, 0x0430, 0x0438, 0x0440, + 0x0446, 0x044b, 0x0451, 0x0458, 0x045e, 0x0463, 0x046e, 0x0476, + 0x047c, 0x0483, 0x048a, 0x0492, 0x0498, 0x049c, 0x04a4, 0x04ad, + 0x04b3, 0x04b8, 0x04be, 0x04c4, 0x04c9, 0x04d3, 0x04dc, 0x04e4, + 0x04ea, 0x04f2, 0x04f7, 0x0500, 0x0508, 0x0510, 0x0515, 0x051a, + 0x0521, 0x0528, 0x052e, 0x0534, 0x053c, 0x0543, 0x0548, 0x054f, + 0x0557, 0x0565, 0x056d, 0x0572, 0x0579, 0x057f, 0x0588, 0x0590, + // Entry C0 - FF + 0x0595, 0x05a2, 0x05ac, 0x05b2, 0x05b9, 0x05c3, 0x05c9, 0x05d0, + 0x05de, 0x05e6, 0x05f3, 0x05ff, 0x0602, 0x0615, 0x061f, 0x061f, + 0x0625, 0x062e, 0x0635, 0x063d, 0x0642, 0x0642, 0x0642, 0x0642, + 0x064a, 0x064f, 0x064f, 0x0653, 0x0653, 0x0653, 0x066a, 0x0672, + 0x0677, 0x067b, 0x067b, 0x067b, 0x067b, 0x067b, 0x067b, 0x067f, + 0x0686, 0x068a, 0x0690, 0x0697, 0x069b, 0x069b, 0x069f, 0x069f, + 0x06a4, 0x06ab, 0x06ab, 0x06b0, 0x06b7, 0x06b7, 0x06be, 0x06be, + 0x06be, 0x06c4, 0x06c4, 0x06cb, 0x06d4, 0x06dc, 0x06e4, 0x06f1, + // Entry 100 - 13F + 0x06f7, 0x06f7, 0x0704, 0x070d, 0x0713, 0x0719, 0x0719, 0x0721, + 0x0721, 0x0727, 0x072c, 0x072c, 0x0731, 0x073c, 0x073c, 0x073c, + 0x074d, 0x074d, 0x0752, 0x0752, 0x0756, 0x075a, 0x075a, 0x0764, + 0x076a, 0x0770, 0x077c, 0x077c, 0x0782, 0x0782, 0x0786, 0x078f, + 0x07a9, 0x07ac, 0x07b8, 0x07c6, 0x07d2, 0x07db, 0x07ea, 0x07f9, + 0x0803, 0x0805, 0x080e, 0x0818, 0x081c, 0x0821, 0x0821, 0x0826, + 0x082f, 0x082f, 0x0841, 0x0851, 0x0851, 0x0851, 0x085a, 0x085f, + 0x0864, 0x0873, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0885, + // Entry 140 - 17F + 0x0891, 0x0898, 0x0898, 0x08a2, 0x08a2, 0x08a7, 0x08b2, 0x08bd, + 0x08c1, 0x08c5, 0x08cb, 0x08cb, 0x08d4, 0x08d4, 0x08e3, 0x08e3, + 0x08e3, 0x08e3, 0x08ef, 0x08fb, 0x08fb, 0x0905, 0x090c, 0x0912, + 0x0912, 0x0917, 0x0917, 0x091f, 0x091f, 0x091f, 0x091f, 0x092b, + 0x092b, 0x092b, 0x092b, 0x0930, 0x0938, 0x0938, 0x0938, 0x0938, + 0x0938, 0x0938, 0x0940, 0x0940, 0x0947, 0x094d, 0x0953, 0x0963, + 0x0963, 0x0963, 0x096b, 0x0971, 0x0971, 0x0971, 0x0978, 0x0978, + 0x097f, 0x0985, 0x0985, 0x098b, 0x0990, 0x0995, 0x09a7, 0x09af, + // Entry 180 - 1BF + 0x09af, 0x09af, 0x09af, 0x09b4, 0x09b8, 0x09b8, 0x09b8, 0x09c2, + 0x09c9, 0x09ce, 0x09d1, 0x09d7, 0x09dc, 0x09eb, 0x09eb, 0x09eb, + 0x09eb, 0x09f1, 0x09f9, 0x09f9, 0x09f9, 0x09fe, 0x09fe, 0x0a04, + 0x0a0a, 0x0a0f, 0x0a0f, 0x0a16, 0x0a25, 0x0a25, 0x0a25, 0x0a25, + 0x0a25, 0x0a2c, 0x0a34, 0x0a3a, 0x0a3a, 0x0a4e, 0x0a4e, 0x0a5a, + 0x0a61, 0x0a69, 0x0a69, 0x0a69, 0x0a69, 0x0a6d, 0x0a6d, 0x0a7b, + 0x0a86, 0x0a86, 0x0a93, 0x0a99, 0x0a9d, 0x0aa1, 0x0aa5, 0x0aa5, + 0x0aa5, 0x0aaa, 0x0ab3, 0x0ab9, 0x0ab9, 0x0ac7, 0x0ac7, 0x0ad4, + // Entry 1C0 - 1FF + 0x0adc, 0x0ae4, 0x0ae9, 0x0ae9, 0x0aee, 0x0afb, 0x0b05, 0x0b0c, + 0x0b14, 0x0b1e, 0x0b23, 0x0b2b, 0x0b40, 0x0b40, 0x0b49, 0x0b49, + 0x0b53, 0x0b5c, 0x0b62, 0x0b69, 0x0b72, 0x0b7f, 0x0b7f, 0x0b92, + 0x0b9c, 0x0ba3, 0x0bac, 0x0bb6, 0x0bb6, 0x0bbb, 0x0bc3, 0x0bc3, + 0x0bc3, 0x0bc3, 0x0bcc, 0x0bcf, 0x0bd6, 0x0bde, 0x0bf4, 0x0bf4, + 0x0bf9, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c08, 0x0c0e, 0x0c17, + 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c17, 0x0c24, 0x0c24, + 0x0c2e, 0x0c32, 0x0c3e, 0x0c44, 0x0c44, 0x0c44, 0x0c4f, 0x0c5b, + // Entry 200 - 23F + 0x0c66, 0x0c71, 0x0c78, 0x0c7f, 0x0c7f, 0x0c84, 0x0c84, 0x0c84, + 0x0c84, 0x0c84, 0x0c8b, 0x0c92, 0x0c9f, 0x0ca5, 0x0cad, 0x0cb5, + 0x0cb5, 0x0cb5, 0x0cbb, 0x0cc0, 0x0cc9, 0x0ccc, 0x0cd3, 0x0cd3, + 0x0cda, 0x0ce1, 0x0ce1, 0x0ce9, 0x0cf4, 0x0cfd, 0x0d05, 0x0d05, + 0x0d05, 0x0d0e, 0x0d0e, 0x0d15, 0x0d1b, 0x0d1b, 0x0d20, 0x0d35, + 0x0d3f, 0x0d48, 0x0d4f, 0x0d5a, 0x0d5d, 0x0d65, 0x0d6b, 0x0d84, + 0x0d84, 0x0d8c, 0x0d92, 0x0d92, 0x0d98, 0x0d9e, 0x0da3, 0x0da8, + 0x0da8, 0x0db1, 0x0db8, 0x0dc0, 0x0dc0, 0x0dc3, 0x0dc8, 0x0dc8, + // Entry 240 - 27F + 0x0dc8, 0x0dc8, 0x0dd0, 0x0dd7, 0x0ddc, 0x0de4, 0x0dea, 0x0e02, + 0x0e06, 0x0e0c, 0x0e0c, 0x0e19, 0x0e19, 0x0e29, 0x0e3b, 0x0e4c, + 0x0e5a, 0x0e6d, 0x0e7c, 0x0e93, 0x0ea3, 0x0eb6, 0x0eb6, 0x0ec3, + 0x0ece, 0x0edb, 0x0ee5, 0x0ef6, 0x0f07, 0x0f0f, 0x0f1b, 0x0f28, + 0x0f36, 0x0f46, + }, + }, + { // brx + "अबà¥à¤–ाज़ियनà¥à¤…वसà¥à¤¤à¤¨à¥à¤…फà¥à¤°à¥€à¤•à¥€à¤…कनअमà¥à¤¹à¤¾à¤°à¤¿à¤•à¥à¤†à¤°à¥à¤—ोनीअरबीअसामीअवारिकà¥à¤†à¤¯à¤®à¤¾à¤°à¤¾à¤…ज़रबै" + + "जानीबशख़िरà¥à¤¬à¥ˆà¤²à¥‹à¤°à¥‚सियनà¥à¤¬à¤²à¥à¤—ैरियनà¥à¤¬à¤¿à¤¸à¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤‚बाराबंगलातिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¤Ÿà¥‹à¤‚ब" + + "ोसà¥à¤¨à¤¿à¤¯à¤¾à¤ˆà¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¥à¤šà¥‡à¤šà¥‡à¤¨à¥à¤šà¤¾à¤®à¥‹à¤°à¥‹à¤•à¥‹à¤°à¥à¤¸à¥€à¤•à¤¨à¥à¤•à¥à¤°à¥€à¤šà¥‡à¤•à¥à¤šà¤°à¥à¤š सà¥à¤²à¤¾à¤µà¤¿à¤•à¥à¤šà¥à¤µà¤¾à¤¶à¥à¤µà¥ˆ" + + "लà¥à¤¶à¥à¤¡à¥ˆà¤¨à¥€à¤¶à¥à¤œà¤¼à¤°à¥à¤®à¤¨à¤¦à¥€à¤µà¥‡à¤¹à¥€à¤­à¥à¤Ÿà¤¾à¤¨à¥€à¤à¤µà¥‡à¤—à¥à¤°à¥€à¤•à¤…ंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¤¾à¤¨à¥à¤¤à¥‹à¤¸à¥à¤ªà¥ˆà¤¨à¤¿à¤¶à¤à¤¸à¥" + + "टोनियनà¥à¤¬à¤¾à¤¸à¥à¤•à¥à¤«à¤¾à¤°à¥à¤¸à¥€à¤«à¥à¤²à¤¾à¤¹à¥à¤«à¤¿à¤¨à¤¿à¤¶à¥à¤«à¤¼à¥€à¤œà¥€à¤«à¤¿à¤°à¥‹à¤œà¤¼à¥€à¤«à¥à¤°à¤¾à¤‚सीसीपशà¥à¤šà¥€à¤®à¥€ फà¥à¤°à¥€à¤œà¤¼" + + "ियनà¥à¤†à¤ˆà¤°à¤¿à¤¶à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸à¥ गैलिकà¥à¤—ैलिशियनà¥à¤—à¥à¤†à¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¥ˆà¤‚कà¥à¤¸à¤¹à¤‰à¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥à¤¹à¤¿à¤‚" + + "दीहीरी मोटà¥à¤•à¥à¤°à¥‹à¤à¤¶à¤¨à¥à¤¹à¤¾à¤ˆà¤¶à¥€à¤¯à¤¨à¥à¤¹à¤‚गैरीयनà¥à¤…रमेनियनà¥à¤¹à¥‡à¤°à¥‡à¤°à¥‹à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¤¾à¤‡à¤¨à¥" + + "डोनेशियनà¥à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¥‡à¤ˆà¤—à¥à¤¬à¥‹à¤¸à¥€à¤šà¥à¤†à¤¨à¥ यीइनà¥à¤ªà¤¿à¤¯à¤¾à¤•à¤¼à¥à¤ˆà¤¡à¥‹à¤†à¤ˆà¤¸à¥à¤²à¥ˆà¤‚डिकà¥à¤ˆà¤Ÿà¤¾à¤²à¤¿à¤¯" + + "नà¥à¤‡à¤¨à¥‚कà¥à¤Ÿà¥€à¤Ÿà¥‚तà¥à¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤¸à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¥à¤•à¥‰à¤‚गोकिकà¥à¤¯à¥à¤•à¥à¤†à¤¨à¤¯à¤¾à¤®à¤¾à¤•à¤¼à¤œà¤¼à¤¾à¤–़à¥à¤•à¤²à¤¾à¤²" + + "ीसà¥à¤¤à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¥à¤•à¥‹à¤°à¥€à¤¯à¤¨à¥à¤•à¤¨à¥à¤°à¥€à¤•à¤¶à¥à¤®à¤¿à¤°à¥€à¤•à¥à¤°à¥à¤¦à¥€à¤•à¥‹à¤®à¥€à¤•à¥Œà¤°à¥à¤¨à¤µà¥‰à¤²à¥€à¤•à¤¿à¤°à¤—़ीज़à¥à¤²à¥ˆà¤Ÿà¥€" + + "नà¥à¤²à¥à¤•à¥à¤¸à¤®à¤¬à¥à¤°à¥à¤—ीगांडालींबà¥à¤°à¥à¤—ीलिंगालालाओसीयनà¥à¤²à¤¿à¤¥à¥à¤†à¤¨à¤¿à¤¯à¤¨à¥à¤²à¥à¤¬à¤¾ कटांगाला" + + "टवियनॠ(लैटà¥à¤Ÿà¥€à¤¶)मालागासीमारà¥à¤¶à¤²à¥€à¤®à¤¾à¤“रीमैसेडोनियनà¥à¤®à¤²à¤¯à¤¾à¤²à¤®à¤®à¥‹à¤‚गोलियनमराठ" + + "ीमलायमालटीज़à¥à¤¬à¤°à¥à¤®à¥€à¤¨à¤¾à¤Šà¤°à¥‚उतà¥à¤¤à¤° नà¥à¤¦à¤¬à¥‡à¤²à¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¥€à¤¨à¥à¤¡à¥‹à¤‚गाडचà¥à¤¨à¥‰à¤°à¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨à¥ नी" + + "नॉरà¥à¤¸à¥à¤•à¥à¤¨à¥‹à¤°à¥à¤µà¥‡à¤—ी बोकमालदकà¥à¤·à¤¿à¤£à¥€ नà¥à¤¦à¤¬à¥‡à¤²à¥‡à¤¨à¤¾à¤µà¤¾à¤¹à¥‹à¤¨à¥à¤¯à¤¾à¤¨à¤œà¤¾à¤“कà¥à¤¸à¥€à¤¤à¤¾à¤¨à¤“हीबवाओ" + + "रोमो (अफ़ान)उड़ियाओसà¥à¤¸à¥‡à¤Ÿà¥€à¤ªà¤‚जाबीपालीपोलिशपख़à¥à¤¤à¥à¤ªà¥à¤°à¥à¤¤à¤—ालीकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‡à¤¹à¥" + + "टो-रोमानà¥à¤¸à¤•à¤¿à¤°à¥‚नà¥à¤¦à¥€à¤°à¥‚मानीयनà¥à¤°à¥à¤¸à¥€à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤†à¤£à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¥à¤¸à¤¾à¤°à¥à¤¦à¥€à¤¨à¥€à¤¸à¤¿à¤‚धीउ" + + "तà¥à¤¤à¤°à¥€ सामीसांगà¥à¤°à¥‹à¤¸à¥€à¤‚हालासà¥à¤²à¥‹à¤µà¤¾à¤•à¥à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸à¤¾à¤®à¥‹à¤…नशोनासोमालीआलà¥à¤¬à¥‡à¤¨à¤¿" + + "यनà¥à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¨à¥à¤¸à¥à¤µà¤¾à¤Ÿà¤¿à¤¸à¥à¤¨à¥à¤¦à¤¾à¤¨à¥€à¤¸à¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤³à¤¤à¥‡à¤²à¥à¤—à¥à¤¤à¤¾à¤œà¤¿à¤•à¥à¤¥à¤¾à¤ˆà¤¤à¤¿à¤—à¥à¤°à¥€à¤¨" + + "à¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‰à¤‚गातà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गाटाटरà¥à¤Ÿà¤¾à¤¹à¤¿à¤Ÿà¤¿à¤‰à¤ˆà¤—़à¥à¤°à¤¯à¥‚कà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤Šà¤°à¥" + + "दà¥à¤‰à¤œà¤¼à¤¬à¥‡à¤•à¥à¤µà¥‡à¤‚डावियेतनामीवोलापोकवालà¥à¤¨à¤µà¥‹à¤²à¥‹à¤«à¤–़ोसायीदà¥à¤¦à¥€à¤¶à¤¯à¥‹à¤°à¥‚बाज़à¥à¤†à¤‚गची" + + "नीज़à¥à¤²à¥‚अचेहनीअकोलीअडांगमेअडीगेअफà¥à¤°à¥€à¤¹à¥€à¤²à¥€à¤à¤¨à¥‚अकाडिनीअलà¥à¤Ÿà¤ªà¥à¤°à¤¾à¤¨à¥€ अंगà¥à¤°à¥‡" + + "ज़ीअंगीकाअरामाईकअरापाहोअरावाकअवधीबलूचीबालिनीबासà¥à¤•à¤¼à¥à¤¬à¥‡à¤œà¤¾à¤¬à¥‡à¤‚बाभोजपà¥à¤°" + + "ीबिकोलà¥à¤¬à¤¿à¤¨à¥€à¤¸à¥€à¤•à¤¸à¥€à¤•à¤¾à¤¬à¥à¤°à¤œà¤¬à¤¡à¤¼à¥‹à¤¬à¥à¤°à¤¿à¤¯à¤¾à¤¤à¤¬à¥à¤—ीनीबà¥à¤²à¥€à¤¨à¤•à¤¾à¤¦à¥à¤¦à¥Œà¤•à¤¾à¤°à¥€à¤¬à¥à¤†à¤¤à¥à¤¸à¤®à¤šà¥‡à¤¬à¥à¤†" + + "नोचीबचाचगताईचà¥à¤•à¥‡à¤¸à¥‡à¤®à¤¾à¤°à¥€à¤šà¥€à¤¨à¥‚कॠजारà¥à¤—नà¥à¤šà¥Œà¤•à¥à¤Ÿà¥‹à¤šà¤¿à¤ªà¥‡à¤µà¤¿à¤¯à¤¾à¤¨à¥à¤šà¥€à¤°à¥‹à¤•à¥€à¤¶à¤¾à¤¯à¤¾à¤¨à¥à¤•à¥‰" + + "पà¥à¤Ÿà¥€à¤•à¥à¤¤à¥à¤°à¥à¤•à¥€ कà¥à¤°à¤¿à¤®à¤¿à¤¯à¤¾à¤•à¤¾à¤¶à¥à¤¬à¤¿à¤¯à¤¾à¤¨à¥à¤¡à¤•à¥Œà¤Ÿà¤¾à¤¦à¤°à¥à¤—वादलावारà¥à¤¸à¥à¤²à¥‡à¤µà¥à¤¡à¥‹à¤—रीबà¥à¤¡à¥€à¤‚ग" + + "काडोगरीसोरà¥à¤¬à¤¿à¤¯à¤¨à¥à¤¡à¥à¤†à¤²à¤¾à¤®à¤§à¥à¤¯ डचदà¥à¤¯à¥à¤†à¤²à¤¾à¤à¤«à¥€à¤•à¥à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ मिसà¥à¤°à¥€à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¥€à¤®" + + "धà¥à¤¯ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤µà¥Œà¤‚डोफाà¤à¤—à¥à¤«à¤¿à¤²à¤¿à¤ªà¤¿à¤¨à¥‹à¤«à¥‹à¤¨à¤®à¤§à¥à¤¯ फà¥à¤°à¤¾à¤‚सीसीपà¥à¤°à¤¾à¤¨à¥€ फà¥à¤°à¤¾à¤‚सीसीउ" + + "तà¥à¤¤à¤°à¥€ फà¥à¤°à¥€à¤œà¤¼à¤¿à¤¯à¤¨à¥à¤ªà¥‚रà¥à¤µà¥€ फà¥à¤°à¥€à¤œà¤¼à¤¿à¤¯à¤¨à¥à¤«à¥à¤°à¥€à¤‰à¤²à¥€à¤…नà¥à¤—ागायोगà¥à¤¬à¤¾à¤¯à¤¾à¤—ीज़à¥à¤—ीलबरà¥" + + "टीमधà¥à¤¯ उचà¥à¤šà¤¸à¥à¤¤à¤°à¥€ जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¨à¥€ उचà¥à¤šà¤¸à¥à¤¤à¤°à¥€ जरà¥à¤®à¤¨à¤—ाà¤à¤¡à¥€à¤—ोरंटालोगॉथिकगà¥à¤°à¥‡" + + "बोपà¥à¤°à¤¾à¤šà¥€à¤¨ यूनानीसà¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤—à¥à¤µà¥€à¤šà¤²à¥€à¤¨à¤¹à¤ˆà¤¡à¤¾à¤¹à¤µà¤¾à¤ˆà¤…नहीलीगैनोनहीतà¥à¤¤à¥€à¤¹à¥à¤®à¥Œà¤‚ग" + + "ऊपरी सौरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाईबानà¥à¤ˆà¤²à¥‹à¤•à¥‹à¤ˆà¤‚गà¥à¤·à¤²à¥‹à¤œà¤¬à¤¾à¤¨à¤¯à¤¹à¥à¤¦à¥€ फ़ारसीयहà¥à¤¦à¥€ अरबीकारा क" + + "लपककाबीलà¥à¤•à¤šà¥€à¤¨à¥à¤œà¥à¤•à¤‚बाकावीकबारà¥à¤¡à¥€ भाषातà¥à¤¯à¤¾à¤ªà¥à¤•à¥‹à¤°à¥‹à¤–़ासीख़ोतानीकींबà¥à¤‚डà¥" + + "कोंकणीकोसà¥à¤°à¤¾à¤ˆà¤¯à¤¨à¥à¤•à¥à¤ªà¥‡à¤²à¥‡à¤•à¤°à¤¾à¤šà¤¯à¥ बलकारà¥à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¥à¤•à¥à¤°à¥à¤–़à¥à¤•à¥à¤®à¥€à¤•à¥à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤ˆà¤²à¤¾à¤¡" + + "़ीनोलाहà¥à¤¡à¤¾à¤‚लांबालेज़गीयानमोंगोलोज़ीलà¥à¤¬à¤¾ लà¥à¤²à¥à¤†à¤²à¥à¤ˆà¤¸à¥‡à¤¨à¥‹à¤²à¥à¤‚डालà¥à¤“लà¥à¤¶à¤¾à¤ˆà¤®" + + "ादà¥à¤°à¥€à¤®à¤˜à¥€à¤®à¥ˆà¤¥à¥€à¤²à¥€à¤®à¤•à¥à¤¸à¤°à¤®à¤¾à¤‚डींगोमसाईमोकà¥à¤·à¤¾à¤®à¤‚दारमेंदेमधà¥à¤¯ आईरीश भाषामीकम" + + "ाकमिनंगकाबाउमांचà¥à¤®à¤£à¥€à¤ªà¥à¤°à¥€à¤®à¥‹à¤¹à¥‹à¤•à¤®à¥‹à¤¸à¥à¤¸à¥€à¤•à¥à¤°à¥€à¤•à¤®à¥€à¤°à¤¾à¤‚डीमारवाड़ीà¤à¤°à¥à¤œà¤¼à¤¿à¤¯à¤¾à¤¨à¥‡à¤†" + + "पोलिटननीजी सà¥à¤¤à¤°à¤¿à¤¯ जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤°à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨à¤¿à¤¯à¥à¤‡à¤†à¤¨à¤¨à¥‹à¤—ाईपà¥à¤°à¤¾à¤¨à¥€ नॉरà¥à¤¸à¥à¤¨à¥à¤—कोपà¥" + + "रानी नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¤¼à¥€à¤¨à¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¥‡à¤¨à¥à¤¯à¥Œà¤°à¥‹à¤¨à¥à¤œà¤¼à¥€à¤®à¤¾à¤“सेजतà¥à¤°à¥à¤•à¥€ ओटोमानपांगास" + + "ीननपहलवीपंपंगापापीआमेनà¥à¤¤à¥‹à¤ªà¤¾à¤²à¤¾à¤Šà¤ªà¥à¤°à¤¾à¤¨à¥€ फ़ारसीफीनीसीपोहनपीपà¥à¤°à¤¾à¤¨à¥€ पà¥à¤°à¥‹" + + "वाà¤à¤¸à¤¾à¤²à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¤¾à¤ªà¤¾à¤¨à¥à¤ˆà¤°à¤¾à¤°à¥‹à¤Ÿà¥‹à¤‚गारà¥à¤®à¤¾à¤¨à¥€à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤¸à¤‚डावेयकà¥à¤Ÿà¥à¤¸à¤®à¤¾à¤°à¥€à¤¤à¥€ आरा" + + "माईक़सासकसंतालीसीसीलीअनसà¥à¤•à¥‰à¤Ÿà¤¸à¥‡à¤²à¤•à¥à¤ªà¤ªà¥à¤°à¤¾à¤¨à¥€ आईरीशशानसीदामोपशà¥à¤šà¥€à¤®à¥€ साम" + + "ीलà¥à¤²à¥‡ सामीईनारी सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿà¥ सामीसोनिंगकेसोगडीयनसà¥à¤°à¤¨à¤¾à¤¨à¥ टॉंगोसेरेर" + + "सà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤…नपारंपरीक सिरिआकसिरिआकतीमनेतेरेनोतेतà¥à¤®à¤Ÿà¥€à¤—à¥à¤°à¥‡à¤Ÿà¥€à¤µà¥à¤Ÿ" + + "ोकेलौकà¥à¤²à¥€à¤‚गदनटà¥à¤²à¤¿à¤‚गीततमाशेकनà¥à¤¯à¤¾à¤¸à¤¾ टॉंगातोक पिसीनतà¥à¤¸à¥€à¤®à¤¶à¥€à¤†à¤¨à¥à¤Ÿà¥à¤à¤¬à¥à¤•à¤¾à¤Ÿ" + + "à¥à¤µà¤¾à¤²à¥à¤Ÿà¥à¤µà¥€à¤‰à¤¡à¤¼à¤®à¥à¤°à¥à¤¤à¤‰à¤—ारितीउंबà¥à¤‚डà¥à¤°à¥à¤Ÿà¤µà¤¾à¤ˆà¤µà¥‹à¤Ÿà¥€à¤•à¤µà¤¾à¤²à¤¾à¤®à¥‹à¤µà¤¾à¤°à¤¯à¤µà¤¾à¤¶à¥‹à¤•à¤¾à¤²à¤®à¥€à¤•à¤¯à¤¾à¤“य" + + "ापीज़ज़ापोतेकबà¥à¤²à¥€à¤¸ चिनà¥à¤¹à¤œà¤¼à¥‡à¤¨à¤¾à¤—ाज़à¥à¤¨à¥€à¤°à¤¿à¤•à¥à¤¤à¤œà¤¼à¤¾à¤œà¤¼à¤¾à¤œà¤°à¥à¤®à¤¨ (ऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾)उच" + + "à¥à¤š सà¥à¤¤à¤°à¤¿à¤¯ सà¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤…ंगà¥à¤°à¥‡à¤œà¤¼à¥€ (ऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾ का)अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (कनाडाई)अ" + + "ंगà¥à¤°à¥‡à¤œà¥€ (बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶)अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (अमरिकी)लैटिन अमरिकी सà¥à¤ªà¥ˆà¤¨à¤¿à¤¶à¤ˆà¤µà¥‡à¤°à¤¿à¤¯à¤¾à¤ˆ सà¥" + + "पैनिशफà¥à¤°à¤¾à¤‚सीसी (कनाडाई)फà¥à¤°à¤¾à¤‚सीसी (सà¥à¤µà¥€à¤¸)फà¥à¤²à¥‡à¤®à¥€à¤®à¥‹à¤²à¥à¤¡à¥‡à¤µà¤¿à¤¯à¤¨à¥à¤¸à¤°à¥à¤¬à¥‹-कà¥à¤°" + + "ोà¤à¤¶à¤¨à¥à¤šà¥€à¤¨à¥€ (सरलीकृत)चीनी (पारमà¥à¤ªà¤°à¤¿à¤•)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0021, 0x0036, 0x004b, 0x0054, 0x006f, 0x0084, + 0x0090, 0x009f, 0x00b4, 0x00c6, 0x00e4, 0x00f9, 0x011a, 0x0138, + 0x0150, 0x0165, 0x0174, 0x0189, 0x019b, 0x01b6, 0x01ce, 0x01e0, + 0x01f2, 0x020d, 0x0219, 0x0225, 0x024a, 0x025c, 0x026e, 0x0280, + 0x0292, 0x02a4, 0x02b6, 0x02bf, 0x02ce, 0x02e9, 0x030a, 0x031f, + 0x033d, 0x034f, 0x0361, 0x0373, 0x0385, 0x0394, 0x03a9, 0x03c4, + 0x03f8, 0x0407, 0x0432, 0x044d, 0x0462, 0x0477, 0x0489, 0x0495, + 0x04a7, 0x04b6, 0x04cf, 0x04e7, 0x04ff, 0x051a, 0x0535, 0x0547, + // Entry 40 - 7F + 0x056b, 0x058f, 0x05b3, 0x05c2, 0x05de, 0x05fc, 0x0605, 0x0626, + 0x063e, 0x065f, 0x0671, 0x0686, 0x06a1, 0x06b0, 0x06c2, 0x06da, + 0x06f2, 0x070a, 0x0719, 0x072b, 0x0740, 0x074f, 0x0764, 0x0776, + 0x0782, 0x079d, 0x07b8, 0x07ca, 0x07ee, 0x07fd, 0x0818, 0x082d, + 0x0845, 0x0863, 0x0882, 0x08b2, 0x08ca, 0x08df, 0x08ee, 0x090f, + 0x0921, 0x093c, 0x094b, 0x0957, 0x096f, 0x097e, 0x098d, 0x09b2, + 0x09c4, 0x09d9, 0x09e2, 0x0a22, 0x0a4d, 0x0a78, 0x0a8a, 0x0a9f, + 0x0ab7, 0x0ac9, 0x0aea, 0x0afc, 0x0b11, 0x0b23, 0x0b2f, 0x0b3e, + // Entry 80 - BF + 0x0b50, 0x0b6b, 0x0b80, 0x0ba8, 0x0bc0, 0x0bdb, 0x0be7, 0x0c0e, + 0x0c26, 0x0c3e, 0x0c4d, 0x0c6c, 0x0c81, 0x0c96, 0x0cae, 0x0ccf, + 0x0ce1, 0x0ced, 0x0cff, 0x0d1d, 0x0d35, 0x0d47, 0x0d47, 0x0d5f, + 0x0d74, 0x0d8c, 0x0d98, 0x0daa, 0x0dbc, 0x0dc5, 0x0de3, 0x0dfb, + 0x0e13, 0x0e22, 0x0e34, 0x0e43, 0x0e52, 0x0e64, 0x0e76, 0x0e97, + 0x0ea6, 0x0ebb, 0x0eca, 0x0ee5, 0x0efa, 0x0f09, 0x0f18, 0x0f27, + 0x0f3c, 0x0f4e, 0x0f60, 0x0f6c, 0x0f7b, 0x0f8d, 0x0f9c, 0x0fb1, + 0x0fc0, 0x0fc0, 0x0fdb, 0x0fdb, 0x0fe4, 0x0ff9, 0x0ff9, 0x1005, + // Entry C0 - FF + 0x1005, 0x1005, 0x1033, 0x1045, 0x105a, 0x105a, 0x105a, 0x106f, + 0x106f, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, 0x1081, + 0x108d, 0x109c, 0x10ae, 0x10ae, 0x10c3, 0x10c3, 0x10c3, 0x10c3, + 0x10cf, 0x10de, 0x10de, 0x10de, 0x10de, 0x10de, 0x10de, 0x10f3, + 0x1105, 0x1111, 0x1111, 0x1111, 0x1126, 0x1126, 0x1126, 0x1132, + 0x1132, 0x113e, 0x113e, 0x1153, 0x1165, 0x1165, 0x1174, 0x1174, + 0x1186, 0x1198, 0x1198, 0x11a7, 0x11bc, 0x11bc, 0x11cb, 0x11da, + 0x11ec, 0x11f8, 0x1220, 0x1232, 0x1250, 0x1262, 0x1274, 0x1274, + // Entry 100 - 13F + 0x128c, 0x128c, 0x12b7, 0x12d5, 0x12e4, 0x12f6, 0x12f6, 0x130b, + 0x131d, 0x1332, 0x1344, 0x1344, 0x1353, 0x136e, 0x136e, 0x137d, + 0x1390, 0x1390, 0x13a5, 0x13a5, 0x13a5, 0x13b4, 0x13b4, 0x13dc, + 0x13ee, 0x13fd, 0x1425, 0x1425, 0x1437, 0x1437, 0x1446, 0x145e, + 0x145e, 0x1467, 0x1467, 0x148f, 0x14bd, 0x14bd, 0x14ee, 0x151f, + 0x153d, 0x1543, 0x1543, 0x1543, 0x154f, 0x1561, 0x1561, 0x1570, + 0x1588, 0x1588, 0x15c0, 0x15fe, 0x15fe, 0x160d, 0x1625, 0x1634, + 0x1646, 0x166e, 0x168d, 0x168d, 0x168d, 0x168d, 0x16a5, 0x16b1, + // Entry 140 - 17F + 0x16b1, 0x16c3, 0x16c3, 0x16de, 0x16f0, 0x1702, 0x1727, 0x1727, + 0x1733, 0x1742, 0x1742, 0x1751, 0x1760, 0x1760, 0x1760, 0x1772, + 0x1772, 0x1772, 0x1794, 0x17b0, 0x17b0, 0x17c9, 0x17db, 0x17ea, + 0x17f0, 0x17fc, 0x1808, 0x182a, 0x182a, 0x183c, 0x183c, 0x183c, + 0x183c, 0x1848, 0x1848, 0x1857, 0x186c, 0x186c, 0x186c, 0x186c, + 0x186c, 0x186c, 0x1884, 0x1884, 0x1896, 0x18b4, 0x18c6, 0x18eb, + 0x18eb, 0x18eb, 0x1903, 0x1918, 0x1918, 0x1918, 0x1918, 0x192a, + 0x193f, 0x1954, 0x1954, 0x1969, 0x1978, 0x1993, 0x1993, 0x1993, + // Entry 180 - 1BF + 0x1993, 0x1993, 0x1993, 0x19a2, 0x19b1, 0x19b1, 0x19b1, 0x19cd, + 0x19e2, 0x19f1, 0x19fa, 0x1a09, 0x1a09, 0x1a09, 0x1a09, 0x1a1b, + 0x1a1b, 0x1a24, 0x1a36, 0x1a45, 0x1a5d, 0x1a69, 0x1a69, 0x1a7b, + 0x1a8a, 0x1a99, 0x1a99, 0x1a99, 0x1ac2, 0x1ac2, 0x1ac2, 0x1ad4, + 0x1af2, 0x1b01, 0x1b16, 0x1b25, 0x1b37, 0x1b37, 0x1b37, 0x1b37, + 0x1b46, 0x1b5b, 0x1b73, 0x1b73, 0x1b73, 0x1b8b, 0x1b8b, 0x1b8b, + 0x1ba6, 0x1ba6, 0x1bd5, 0x1be7, 0x1bf6, 0x1c0b, 0x1c0b, 0x1c0b, + 0x1c0b, 0x1c1a, 0x1c3f, 0x1c3f, 0x1c4e, 0x1c4e, 0x1c4e, 0x1c73, + // Entry 1C0 - 1FF + 0x1c91, 0x1cac, 0x1cbe, 0x1cd3, 0x1cdf, 0x1d04, 0x1d1f, 0x1d2e, + 0x1d40, 0x1d61, 0x1d70, 0x1d70, 0x1d70, 0x1d70, 0x1d95, 0x1d95, + 0x1da7, 0x1da7, 0x1da7, 0x1db9, 0x1db9, 0x1dea, 0x1dea, 0x1dea, + 0x1e05, 0x1e1a, 0x1e35, 0x1e35, 0x1e35, 0x1e35, 0x1e47, 0x1e47, + 0x1e47, 0x1e47, 0x1e5c, 0x1e5c, 0x1e6e, 0x1e7d, 0x1eab, 0x1eab, + 0x1eb7, 0x1ec9, 0x1ec9, 0x1ec9, 0x1ec9, 0x1ee1, 0x1ef0, 0x1ef0, + 0x1ef0, 0x1ef0, 0x1ef0, 0x1ef0, 0x1f02, 0x1f02, 0x1f24, 0x1f24, + 0x1f24, 0x1f2d, 0x1f2d, 0x1f3f, 0x1f3f, 0x1f3f, 0x1f61, 0x1f7a, + // Entry 200 - 23F + 0x1f96, 0x1fbb, 0x1fd3, 0x1fe8, 0x200d, 0x201c, 0x201c, 0x201c, + 0x202e, 0x203a, 0x2052, 0x2052, 0x207d, 0x208f, 0x208f, 0x208f, + 0x209e, 0x209e, 0x20b0, 0x20bf, 0x20d1, 0x20dd, 0x20ef, 0x20ef, + 0x2107, 0x211f, 0x211f, 0x2131, 0x2153, 0x216c, 0x216c, 0x216c, + 0x216c, 0x218a, 0x218a, 0x219f, 0x21b1, 0x21b1, 0x21bd, 0x21bd, + 0x21d5, 0x21ea, 0x21ff, 0x2208, 0x2211, 0x2211, 0x2211, 0x2211, + 0x2211, 0x2220, 0x2220, 0x2220, 0x2220, 0x2232, 0x223e, 0x224a, + 0x224a, 0x224a, 0x225c, 0x225c, 0x225c, 0x2265, 0x2277, 0x2277, + // Entry 240 - 27F + 0x2277, 0x2277, 0x2277, 0x228f, 0x22ae, 0x22ae, 0x22c3, 0x22c3, + 0x22d2, 0x22e1, 0x22f3, 0x22f3, 0x22f3, 0x2320, 0x235f, 0x23a5, + 0x23d5, 0x2405, 0x2435, 0x246d, 0x249b, 0x249b, 0x249b, 0x24cb, + 0x24f8, 0x24f8, 0x250a, 0x250a, 0x250a, 0x252b, 0x2553, 0x2553, + 0x2577, 0x25a1, + }, + }, + { // bs + "afarskiabhazijskiavestanskiafrikanerskiakanamharskiaragonežanskiarapskia" + + "semijskiavarskiajmaraazerbejdžanskibaÅ¡kirskibjeloruskibugarskibislam" + + "abambarabengalskitibetanskibretonskibosanskikatalonskiÄeÄenskiÄamoro" + + "korzikanskikriÄeÅ¡kistaroslovenskiÄuvaÅ¡kivelÅ¡kidanskinjemaÄkidivehijs" + + "kidžongaevegrÄkiengleskiesperantoÅ¡panskiestonskibaskijskiperzijskifu" + + "lahfinskifidžijskifarskifrancuskifrizijskiirskiÅ¡kotski galskigalskig" + + "varanigudžaratimankshausahebrejskihindihiri motuhrvatskihaićanskimaÄ‘" + + "arskijermenskihererointerlingvaindonezijskiinterlingveigbosiÄuan jii" + + "nupiakidoislandskiitalijanskiinuktitutjapanskijavanskigruzijskikongo" + + "kikujukuanjamakazaÄkikalalisutskikmerskikanadakorejskikanurikaÅ¡mirik" + + "urdskikomikorniÅ¡kikirgiskilatinskiluksemburÅ¡kigandalimburgiÅ¡lingalal" + + "aoÅ¡kilitvanskiluba-katangaletonskimalagazijskimarÅ¡alskimaorskimakedo" + + "nskimalajalammongolskimaratimalajskimalteÅ¡kiburmanskinaurusjeverni n" + + "debelenepalskindongaholandskinorveÅ¡ki njorsknorveÅ¡ki bokmaljužni nde" + + "belenavahonjanjaprovansalskiojibvaoromoorijskiosetskipandžabskipalip" + + "oljskipaÅ¡tunskiportugalskikvenÄareto-romanskirundirumunskiruskikinja" + + "rvandasanskritsardinijskisindisjeverni samisangosingaleskislovaÄkisl" + + "ovenaÄkisamoanskiÅ¡onasomalskialbanskisrpskisvatisesotosundanskiÅ¡veds" + + "kisvahilitamilskitelugutadžiÄkitajlandskitigrinjaturkmenskitsvanaton" + + "ganskiturskitsongatatarskitahićanskiujgurskiukrajinskiurduuzbeÄkiven" + + "davijetnamskivolapükvalunvolofkosajidiÅ¡jorubanskizuangkineskizuluaÄi" + + "neskiakoliadangmejskiadigejskiafrihiliaghemainuakadijskialjutjužni a" + + "ltaistaroengleskiangikaarmajskiaraukanskiarapahoaravakasuasturijskia" + + "vadhibaluÄibalinezijskibasabejabembabenazapadni beluÄkibojpuribikolb" + + "inisiksikabrajbodoburiatbuginežanskiiblinkadokaripskiatsamcebuanoÄig" + + "aÄibÄaÄagataiÄukeskimariÄinukskiÄoktavskiÄipvijanskiÄirokiÄejenskiso" + + "ranski kurdskikoptskikrimeanski turskikaÅ¡ubijanskidakotadargvataitad" + + "elaverslavskidogribdinkazarmadogridonjolužiÄkosrpskidualasrednji hol" + + "andskijola-fonyiÄ‘ulaembuefikskistaroegipatskiekajukelamitskisrednji " + + "engleskievondofangfilipinskifonsrednji francuskistarofrancuskisevern" + + "o-frizijskiistoÄni frizijskifriulijskigagagauÅ¡kigajogbajadžizgilbert" + + "Å¡kisrednji visoki nemaÄkistaronemaÄkigondigorontalogotskigrebostaro" + + "grÄkiÅ¡vajcarski njemaÄkigusiihaidahavajskihiligajnonhititehmonggornj" + + "olužiÄkosrpskihupaibanilokoinguÅ¡etskilojbanngombamachamejudeo-persij" + + "skijudeo-arapskikara-kalpaÅ¡kikabilekaÄinžjukambakavikabardijskitjapm" + + "akondezelenortskikorokasikotanizijskikoyra chiinikalenjinkimbundukom" + + "i-permjaÄkikonkanikosreanskikpelekaraÄaj-balkarkarelijskikurukhshamb" + + "alabafiakumikkutenailadinolangilandalambalezgianlakotamongolozisjeve" + + "rni luriluba-lulualuisenolundaluoluÅ¡ailuyiamadureÅ¡kimagahimaitilimak" + + "asarmandingomasaimokÅ¡amandarmendemerumauricijski kreolskisrednji irs" + + "kimakhuwa-meettometa’mikmakminangkabaumanÄumanipurimahavskimosimunda" + + "ngviÅ¡e jezikakriÅ¡kimirandeÅ¡kimarvarierzijamazanderanskineapolitanski" + + "namaniski nemaÄkinevariniasniueankwasionogaistari norskinkoseverni s" + + "otonuerklasiÄni nevarinjamvezinjankolenjoronzimaosageotomanski tursk" + + "ipangasinskipahlavipampangapapiamentopalauanskistaropersijskifeniÄan" + + "skiponpejskistaroprovansalskikiÄeraÄ‘astanirapanuirarotonganromboroma" + + "niaromanijskiruasandavejakutsamaritanski aramejskisamburusasaksantal" + + "isangusicilijanskiÅ¡kotskijužnokurdskisenaselkapkojraboro senistaroir" + + "skitahelhitÅ¡ansidamojužni samilule samiinari samiskoltski jeziksonin" + + "kesodžijenskisrananski tongoserersukumasususumerskiklasiÄni sirijski" + + "sirijskitimnetesoterenotetumtigretivtokelauklingonskitlingittamaÅ¡ekn" + + "jasa tongatok pisintsimÅ¡iantumbukatuvalutasavaktuvinijskimarokanski " + + "tamazigtudmurtugaritskiumbundurunvaivotskivunjovalamovarejvaÅ¡ovarlpi" + + "rikalmiksogajaojapeÅ¡kizapoteÄkiblisimbolizenagastandardni marokanski" + + " tamazigtzunibez lingvistiÄkog sadržajazazamoderni standardni arapsk" + + "iaustrijski njemaÄkigornjonjemaÄki (Å¡vicarski)australski engleskikan" + + "adski engleskibritanski engleskiameriÄki engleskilatinoameriÄki Å¡pan" + + "skievropski Å¡panskimeksiÄki Å¡panskikanadski francuskiÅ¡vajcarski fran" + + "cuskiniskosaksonskiflamanskimoldavskisrpskohrvatskikongoanski swahil" + + "ikineski (pojednostavljeni)kineski (tradicionalni)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0007, 0x0011, 0x001b, 0x0027, 0x002b, 0x0033, 0x0041, + 0x0048, 0x0051, 0x0058, 0x005e, 0x006d, 0x0077, 0x0081, 0x0089, + 0x0090, 0x0097, 0x00a0, 0x00aa, 0x00b3, 0x00bb, 0x00c5, 0x00cf, + 0x00d6, 0x00e1, 0x00e4, 0x00eb, 0x00f9, 0x0102, 0x0109, 0x010f, + 0x0118, 0x0122, 0x0129, 0x012c, 0x0132, 0x013a, 0x0143, 0x014b, + 0x0153, 0x015c, 0x0165, 0x016a, 0x0170, 0x017a, 0x0180, 0x0189, + 0x0192, 0x0197, 0x01a6, 0x01ac, 0x01b3, 0x01bd, 0x01c2, 0x01c7, + 0x01d0, 0x01d5, 0x01de, 0x01e6, 0x01f0, 0x01f9, 0x0202, 0x0208, + // Entry 40 - 7F + 0x0213, 0x021f, 0x022a, 0x022e, 0x0238, 0x023f, 0x0242, 0x024b, + 0x0256, 0x025f, 0x0267, 0x026f, 0x0278, 0x027d, 0x0283, 0x028b, + 0x0293, 0x029f, 0x02a6, 0x02ac, 0x02b4, 0x02ba, 0x02c2, 0x02c9, + 0x02cd, 0x02d6, 0x02de, 0x02e6, 0x02f3, 0x02f8, 0x0302, 0x0309, + 0x0310, 0x0319, 0x0325, 0x032d, 0x0339, 0x0343, 0x034a, 0x0354, + 0x035d, 0x0366, 0x036c, 0x0374, 0x037d, 0x0386, 0x038b, 0x039b, + 0x03a3, 0x03a9, 0x03b2, 0x03c2, 0x03d2, 0x03e0, 0x03e6, 0x03ec, + 0x03f8, 0x03fe, 0x0403, 0x040a, 0x0411, 0x041c, 0x0420, 0x0427, + // Entry 80 - BF + 0x0431, 0x043c, 0x0443, 0x0450, 0x0455, 0x045d, 0x0462, 0x046d, + 0x0475, 0x0480, 0x0485, 0x0492, 0x0497, 0x04a1, 0x04aa, 0x04b5, + 0x04be, 0x04c3, 0x04cb, 0x04d3, 0x04d9, 0x04de, 0x04e4, 0x04ed, + 0x04f5, 0x04fc, 0x0504, 0x050a, 0x0514, 0x051e, 0x0526, 0x0530, + 0x0536, 0x053f, 0x0545, 0x054b, 0x0553, 0x055e, 0x0566, 0x0570, + 0x0574, 0x057c, 0x0581, 0x058c, 0x0594, 0x0599, 0x059e, 0x05a2, + 0x05a8, 0x05b2, 0x05b7, 0x05be, 0x05c2, 0x05cb, 0x05d0, 0x05db, + 0x05e4, 0x05e4, 0x05ec, 0x05f1, 0x05f5, 0x05fe, 0x05fe, 0x0603, + // Entry C0 - FF + 0x0603, 0x060f, 0x061c, 0x0622, 0x062a, 0x0634, 0x0634, 0x063b, + 0x063b, 0x0641, 0x0641, 0x0641, 0x0644, 0x0644, 0x064e, 0x064e, + 0x0654, 0x065b, 0x0667, 0x0667, 0x066b, 0x066b, 0x066b, 0x066b, + 0x066f, 0x0674, 0x0674, 0x0678, 0x0678, 0x0678, 0x0688, 0x068f, + 0x0694, 0x0698, 0x0698, 0x0698, 0x069f, 0x069f, 0x069f, 0x06a3, + 0x06a3, 0x06a7, 0x06a7, 0x06ad, 0x06bb, 0x06bb, 0x06bf, 0x06bf, + 0x06c3, 0x06cb, 0x06cb, 0x06d0, 0x06d7, 0x06dc, 0x06e3, 0x06eb, + 0x06f3, 0x06f7, 0x0700, 0x070a, 0x0716, 0x071d, 0x0726, 0x0736, + // Entry 100 - 13F + 0x073d, 0x073d, 0x074e, 0x075b, 0x0761, 0x0767, 0x076c, 0x0773, + 0x077a, 0x0780, 0x0785, 0x078a, 0x078f, 0x07a3, 0x07a3, 0x07a8, + 0x07b9, 0x07c3, 0x07c8, 0x07c8, 0x07cc, 0x07d3, 0x07d3, 0x07e1, + 0x07e7, 0x07f0, 0x0800, 0x0800, 0x0806, 0x0806, 0x080a, 0x0814, + 0x0814, 0x0817, 0x0817, 0x0828, 0x0836, 0x0836, 0x0847, 0x0859, + 0x0863, 0x0865, 0x086e, 0x086e, 0x0872, 0x0877, 0x0877, 0x087c, + 0x0887, 0x0887, 0x089e, 0x08ab, 0x08ab, 0x08b0, 0x08b9, 0x08bf, + 0x08c4, 0x08cf, 0x08e4, 0x08e4, 0x08e4, 0x08e9, 0x08e9, 0x08ee, + // Entry 140 - 17F + 0x08ee, 0x08f6, 0x08f6, 0x0900, 0x0906, 0x090b, 0x0920, 0x0920, + 0x0924, 0x0928, 0x0928, 0x092d, 0x0938, 0x0938, 0x0938, 0x093e, + 0x0944, 0x094b, 0x095a, 0x0967, 0x0967, 0x0975, 0x097b, 0x0981, + 0x0985, 0x098a, 0x098e, 0x0999, 0x0999, 0x099d, 0x09a4, 0x09af, + 0x09af, 0x09b3, 0x09b3, 0x09b7, 0x09c3, 0x09cf, 0x09cf, 0x09cf, + 0x09cf, 0x09d7, 0x09df, 0x09ee, 0x09f5, 0x09ff, 0x0a04, 0x0a13, + 0x0a13, 0x0a13, 0x0a1d, 0x0a23, 0x0a2b, 0x0a30, 0x0a30, 0x0a35, + 0x0a3c, 0x0a42, 0x0a47, 0x0a4c, 0x0a51, 0x0a58, 0x0a58, 0x0a58, + // Entry 180 - 1BF + 0x0a58, 0x0a5e, 0x0a5e, 0x0a63, 0x0a67, 0x0a74, 0x0a74, 0x0a7e, + 0x0a85, 0x0a8a, 0x0a8d, 0x0a93, 0x0a98, 0x0a98, 0x0a98, 0x0aa2, + 0x0aa2, 0x0aa8, 0x0aaf, 0x0ab6, 0x0abe, 0x0ac3, 0x0ac3, 0x0ac9, + 0x0acf, 0x0ad4, 0x0ad8, 0x0aec, 0x0af9, 0x0b07, 0x0b0e, 0x0b14, + 0x0b1f, 0x0b25, 0x0b2d, 0x0b35, 0x0b39, 0x0b39, 0x0b40, 0x0b4c, + 0x0b53, 0x0b5e, 0x0b65, 0x0b65, 0x0b65, 0x0b6b, 0x0b78, 0x0b78, + 0x0b85, 0x0b89, 0x0b97, 0x0b9d, 0x0ba1, 0x0ba7, 0x0ba7, 0x0bad, + 0x0bad, 0x0bb2, 0x0bbe, 0x0bbe, 0x0bc1, 0x0bcd, 0x0bd1, 0x0be1, + // Entry 1C0 - 1FF + 0x0be9, 0x0bf1, 0x0bf6, 0x0bfb, 0x0c00, 0x0c10, 0x0c1b, 0x0c22, + 0x0c2a, 0x0c34, 0x0c3e, 0x0c3e, 0x0c3e, 0x0c3e, 0x0c4c, 0x0c4c, + 0x0c57, 0x0c57, 0x0c57, 0x0c60, 0x0c60, 0x0c71, 0x0c76, 0x0c76, + 0x0c80, 0x0c87, 0x0c91, 0x0c91, 0x0c91, 0x0c96, 0x0c9c, 0x0c9c, + 0x0c9c, 0x0c9c, 0x0ca7, 0x0caa, 0x0cb1, 0x0cb6, 0x0ccc, 0x0cd3, + 0x0cd8, 0x0cdf, 0x0cdf, 0x0cdf, 0x0ce4, 0x0cf0, 0x0cf8, 0x0cf8, + 0x0d05, 0x0d05, 0x0d09, 0x0d09, 0x0d0f, 0x0d1d, 0x0d27, 0x0d27, + 0x0d2f, 0x0d33, 0x0d33, 0x0d39, 0x0d39, 0x0d39, 0x0d44, 0x0d4d, + // Entry 200 - 23F + 0x0d57, 0x0d65, 0x0d6c, 0x0d78, 0x0d87, 0x0d8c, 0x0d8c, 0x0d8c, + 0x0d92, 0x0d96, 0x0d9e, 0x0d9e, 0x0db0, 0x0db8, 0x0db8, 0x0db8, + 0x0dbd, 0x0dc1, 0x0dc7, 0x0dcc, 0x0dd1, 0x0dd4, 0x0ddb, 0x0ddb, + 0x0de5, 0x0dec, 0x0dec, 0x0df4, 0x0dff, 0x0e08, 0x0e08, 0x0e08, + 0x0e08, 0x0e11, 0x0e11, 0x0e18, 0x0e1e, 0x0e25, 0x0e2f, 0x0e42, + 0x0e48, 0x0e51, 0x0e58, 0x0e5b, 0x0e5e, 0x0e5e, 0x0e5e, 0x0e5e, + 0x0e5e, 0x0e64, 0x0e64, 0x0e69, 0x0e69, 0x0e6f, 0x0e74, 0x0e79, + 0x0e81, 0x0e81, 0x0e87, 0x0e87, 0x0e8b, 0x0e8e, 0x0e96, 0x0e96, + // Entry 240 - 27F + 0x0e96, 0x0e96, 0x0e96, 0x0ea0, 0x0eaa, 0x0eaa, 0x0eb0, 0x0ece, + 0x0ed2, 0x0eee, 0x0ef2, 0x0f0c, 0x0f0c, 0x0f20, 0x0f3c, 0x0f4f, + 0x0f60, 0x0f72, 0x0f84, 0x0f9c, 0x0fad, 0x0fbf, 0x0fbf, 0x0fd1, + 0x0fe6, 0x0ff4, 0x0ffd, 0x0ffd, 0x0ffd, 0x1006, 0x1014, 0x1026, + 0x1040, 0x1057, + }, + }, + { // bs-Cyrl + "афарÑкиабказијÑкиавеÑтанÑкиафриканерÑкиаканамхарÑкиарагонежанÑкиарапÑкиа" + + "ÑемијÑкиаварÑкиајмараазербејџанÑкибашкирбелоруÑкибугарÑкибиÑламабам" + + "барабенглаÑкитибетанÑкибретонÑкибоÑанÑкикаталонÑкичеченÑкичаморокор" + + "зиканÑкикричешкиÑтароÑловенÑкичувашкивелшкиданÑкинемачкидивехијÑкиџ" + + "онгаевегрчкиенглеÑкиеÑперантошпанÑкиеÑтонÑкибаÑкијÑкиперÑијÑкифулах" + + "финÑкифиджијÑкифарÑкифранцуÑкифризијÑкиирÑкишкотÑки галÑкигалÑкигва" + + "ранигуџаратиманкÑхауÑахебрејÑкихиндихири мотухрватÑкихаитÑкимађарÑк" + + "ијерменÑкихерероинтерлингваиндонежанÑкимеђујезичкиигбоÑичуан јиунуп" + + "иакидоиÑландÑкииталијанÑкиинуктитутјапанÑкијаванÑкигрузијÑкиконгоки" + + "кујукуањамакозачкикалалиÑуткмерÑкиканадакорејÑкиканурикашмирÑкикурд" + + "ÑкикомикорнишкикиргиÑкилатинÑкилукÑембуршкигандалимбургишлингалалао" + + "ÑкилитванÑкилуба-катангалетонÑкималагаÑијÑкимаршалÑкимаорÑкимакедон" + + "ÑкималајаламмонголÑкимаратималајÑкимелтешкибурманÑкинауруÑеверни нд" + + "ебеленепалÑкиндонгахоландÑкинорвешки њорÑкнорвешки бокмалјужни ндеб" + + "еленавахоњањапрованÑалÑкиојибваоромооријÑкиоÑетÑкипанџабÑкипалипољÑ" + + "кипаштунÑкипортугалÑкиквенчарето-романÑкирундирумунÑкируÑкикинјаруа" + + "ндаÑанÑкритÑардињаÑкиÑиндиÑеверни ÑамиÑангоÑингалеÑкиÑловачкиÑловен" + + "ачкиÑамоанÑкишонаÑомалÑкиалбанÑкиÑрпÑкиÑватиÑеÑотоÑунданÑкишведÑкиÑ" + + "вахилитамилÑкителугутађиктајландÑкитигрињатуркменÑкитÑванатонгатурÑ" + + "китÑонгататарÑкитахићанÑкиујгурÑкиукрајинÑкиурдуузбечкивендавијетна" + + "мÑкиволапуквалунволофкÑхоÑајидишјорубажуангкинеÑкизулуачинеÑкиаколи" + + "адангмејÑкиадигејÑкиафрихилиаинуакадијÑкиаљутјужни алтаиÑтароенглеÑ" + + "киангикаармајÑкиароканијÑкиарапахоаравакаÑтуријÑкиавадхибалучибалин" + + "езијÑкибаÑабејабембабојпурибиколбиниÑиÑикабрајбуриатбугинежанÑкибли" + + "нкадокарипÑкиатÑамÑкицебуаночибчачагатаичукеÑкимаричинукÑкичоктавÑк" + + "ичипвијанÑкичерокичејенÑкикоптÑкикримеанÑки турÑкикашубијанÑкидакот" + + "адаргваделаверÑлавÑкидогрибдинкадогриниÑки ÑорбијанÑкидуалаÑредњи Ñ…" + + "оландÑкиђулаефикÑкиÑтароегипатÑкиекајукеламитÑкиÑредњи енглеÑкиевон" + + "дофангтагалогфонÑредњи француÑкиÑтарофранцуÑкиÑеверно-фризијÑкииÑто" + + "чни фризијÑкифриулијÑкигагајогбајаџизгилбертшкиÑредњи виÑоки немачк" + + "иÑтаронемачкигондигоронталоготÑкигребоÑтарогрчкишвајцарÑки немачкиг" + + "вич’инхаидахавајÑкихилигајнонхититехмонггорњи ÑорбијÑкихупаибанилок" + + "оингвишкилојбанјудео-перÑијÑкијудео-арапÑкикара-калпашкикабилекачин" + + "ђукамбакавикабардијÑкитјапкорокаÑикотанешкикимбундуконканикоÑреанÑк" + + "икпелекарачај-балкаркарелијÑкикурукхкумиккутенаиладиноландаламбалез" + + "гианмонголозилуба-лулуалуиÑенолундалуолушаимадурешкимагахимаитилима" + + "каÑармандингомаÑаимокшамандармендеÑредњи ирÑкимикмакминангкабауманч" + + "уманипуримахавÑкимоÑивише језикакришкимирандешкимарвариерзијанеапол" + + "итанÑкиниÑки немачкиневариниаÑниуеанногаиÑтари норÑкин’коÑеверни Ñо" + + "токлаÑични неварињамвезињанколењоронзимаоÑагеотоманÑки турÑкипангаÑ" + + "инÑкипахлавипампангапапиаментопалауанÑкиÑтароперÑијÑкифеничанÑкипон" + + "пејÑкиÑтаропрованÑалÑкирађаÑтанирапануираротонганроманиароманијÑкиÑ" + + "андавејакутÑамаританÑки арамејÑкиÑаÑакÑанталиÑицилијанÑкишкотÑкиÑел" + + "капÑтароирÑкишанÑидамојужни Ñамилуле Ñамиинари ÑамиÑколтÑки језикÑо" + + "нинкеÑоџијенÑкиÑрананÑки тонгоÑерерÑукумаÑуÑуÑумерÑкикоморÑкиклаÑич" + + "ни ÑиријÑкиÑиријÑкитимнетеренотетумтигретивтокелауклингонÑкитлингит" + + "тамашекњаÑа тонгаток пиÑинтÑимшиантумбукатувалутувинијÑкиудмуртугар" + + "итÑкиумбундурутваивотÑкиваламоварајвашокалмикјаојапешкикантонÑкизап" + + "отечкиблиÑимболизенагазунибез лингвиÑтичког ÑадржајазазаÐуÑтријÑки " + + "немачкиШвајцарÑки виÑоки немачкиÐуÑтралијÑки енглеÑкиКанадÑки енгле" + + "ÑкиБританÑки енглеÑкиСÐД енглеÑкиЛатино-амерички шпанÑкиИберијÑки ш" + + "панÑкиКанадÑки француÑкиШвајцарÑки француÑкифламанÑкиБразилÑки порт" + + "угалÑкиИберијÑки португалÑкимолдавÑкиÑрпÑкохрватÑкикинеÑки (поједно" + + "Ñтављен)кинеÑки (традиционални)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0022, 0x0036, 0x004e, 0x0056, 0x0066, 0x0080, + 0x008e, 0x00a0, 0x00ae, 0x00ba, 0x00d4, 0x00e0, 0x00f2, 0x0102, + 0x0110, 0x011e, 0x0130, 0x0144, 0x0156, 0x0166, 0x017a, 0x018a, + 0x0196, 0x01ac, 0x01b2, 0x01bc, 0x01d8, 0x01e6, 0x01f2, 0x01fe, + 0x020c, 0x0220, 0x022a, 0x0230, 0x023a, 0x024a, 0x025c, 0x026a, + 0x027a, 0x028c, 0x029e, 0x02a8, 0x02b4, 0x02c6, 0x02d2, 0x02e4, + 0x02f6, 0x0300, 0x031b, 0x0327, 0x0335, 0x0345, 0x034f, 0x0359, + 0x036b, 0x0375, 0x0386, 0x0396, 0x03a4, 0x03b4, 0x03c6, 0x03d2, + // Entry 40 - 7F + 0x03e8, 0x0400, 0x0416, 0x041e, 0x042f, 0x043d, 0x0443, 0x0455, + 0x046b, 0x047d, 0x048d, 0x049d, 0x04af, 0x04b9, 0x04c5, 0x04d3, + 0x04e1, 0x04f3, 0x0501, 0x050d, 0x051d, 0x0529, 0x053b, 0x0549, + 0x0551, 0x0561, 0x0571, 0x0581, 0x0599, 0x05a3, 0x05b5, 0x05c3, + 0x05cf, 0x05e1, 0x05f8, 0x0608, 0x0620, 0x0632, 0x0640, 0x0654, + 0x0666, 0x0678, 0x0684, 0x0694, 0x06a4, 0x06b6, 0x06c0, 0x06dd, + 0x06ed, 0x06f9, 0x070b, 0x0726, 0x0743, 0x075c, 0x0768, 0x0770, + 0x0788, 0x0794, 0x079e, 0x07ac, 0x07ba, 0x07cc, 0x07d4, 0x07e0, + // Entry 80 - BF + 0x07f2, 0x0808, 0x0814, 0x082d, 0x0837, 0x0847, 0x0851, 0x0867, + 0x0877, 0x088b, 0x0895, 0x08ac, 0x08b6, 0x08ca, 0x08da, 0x08ee, + 0x0900, 0x0908, 0x0918, 0x0928, 0x0934, 0x093e, 0x094a, 0x095c, + 0x096a, 0x0978, 0x0988, 0x0994, 0x099e, 0x09b2, 0x09c0, 0x09d4, + 0x09e0, 0x09ea, 0x09f6, 0x0a02, 0x0a12, 0x0a26, 0x0a36, 0x0a4a, + 0x0a52, 0x0a60, 0x0a6a, 0x0a80, 0x0a8e, 0x0a98, 0x0aa2, 0x0aae, + 0x0ab8, 0x0ac4, 0x0ace, 0x0adc, 0x0ae4, 0x0af4, 0x0afe, 0x0b14, + 0x0b26, 0x0b26, 0x0b36, 0x0b36, 0x0b3e, 0x0b50, 0x0b50, 0x0b58, + // Entry C0 - FF + 0x0b58, 0x0b6d, 0x0b87, 0x0b93, 0x0ba3, 0x0bb9, 0x0bb9, 0x0bc7, + 0x0bc7, 0x0bd3, 0x0bd3, 0x0bd3, 0x0bd3, 0x0bd3, 0x0be7, 0x0be7, + 0x0bf3, 0x0bff, 0x0c17, 0x0c17, 0x0c1f, 0x0c1f, 0x0c1f, 0x0c1f, + 0x0c27, 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c31, 0x0c3f, + 0x0c49, 0x0c51, 0x0c51, 0x0c51, 0x0c5d, 0x0c5d, 0x0c5d, 0x0c65, + 0x0c65, 0x0c65, 0x0c65, 0x0c71, 0x0c89, 0x0c89, 0x0c91, 0x0c91, + 0x0c99, 0x0ca9, 0x0ca9, 0x0cb9, 0x0cc7, 0x0cc7, 0x0cd1, 0x0cdf, + 0x0ced, 0x0cf5, 0x0d05, 0x0d17, 0x0d2d, 0x0d39, 0x0d49, 0x0d49, + // Entry 100 - 13F + 0x0d57, 0x0d57, 0x0d78, 0x0d90, 0x0d9c, 0x0da8, 0x0da8, 0x0db6, + 0x0dc4, 0x0dd0, 0x0dda, 0x0dda, 0x0de4, 0x0e05, 0x0e05, 0x0e0f, + 0x0e2e, 0x0e2e, 0x0e36, 0x0e36, 0x0e36, 0x0e44, 0x0e44, 0x0e60, + 0x0e6c, 0x0e7e, 0x0e9b, 0x0e9b, 0x0ea7, 0x0ea7, 0x0eaf, 0x0ebd, + 0x0ebd, 0x0ec3, 0x0ec3, 0x0ee2, 0x0efe, 0x0efe, 0x0f1f, 0x0f40, + 0x0f54, 0x0f58, 0x0f58, 0x0f58, 0x0f60, 0x0f6a, 0x0f6a, 0x0f70, + 0x0f84, 0x0f84, 0x0fac, 0x0fc4, 0x0fc4, 0x0fce, 0x0fe0, 0x0fec, + 0x0ff6, 0x100a, 0x102d, 0x102d, 0x102d, 0x102d, 0x103c, 0x1046, + // Entry 140 - 17F + 0x1046, 0x1056, 0x1056, 0x106a, 0x1076, 0x1080, 0x109d, 0x109d, + 0x10a5, 0x10ad, 0x10ad, 0x10b7, 0x10c7, 0x10c7, 0x10c7, 0x10d3, + 0x10d3, 0x10d3, 0x10f0, 0x1109, 0x1109, 0x1122, 0x112e, 0x1138, + 0x113c, 0x1146, 0x114e, 0x1164, 0x1164, 0x116c, 0x116c, 0x116c, + 0x116c, 0x1174, 0x1174, 0x117c, 0x118e, 0x118e, 0x118e, 0x118e, + 0x118e, 0x118e, 0x119e, 0x119e, 0x11ac, 0x11c0, 0x11ca, 0x11e5, + 0x11e5, 0x11e5, 0x11f9, 0x1205, 0x1205, 0x1205, 0x1205, 0x120f, + 0x121d, 0x1229, 0x1229, 0x1233, 0x123d, 0x124b, 0x124b, 0x124b, + // Entry 180 - 1BF + 0x124b, 0x124b, 0x124b, 0x1255, 0x125d, 0x125d, 0x125d, 0x1270, + 0x127e, 0x1288, 0x128e, 0x1298, 0x1298, 0x1298, 0x1298, 0x12aa, + 0x12aa, 0x12b6, 0x12c4, 0x12d2, 0x12e2, 0x12ec, 0x12ec, 0x12f6, + 0x1302, 0x130c, 0x130c, 0x130c, 0x1323, 0x1323, 0x1323, 0x132f, + 0x1345, 0x134f, 0x135f, 0x136f, 0x1377, 0x1377, 0x1377, 0x138c, + 0x1398, 0x13ac, 0x13ba, 0x13ba, 0x13ba, 0x13c6, 0x13c6, 0x13c6, + 0x13e0, 0x13e0, 0x13f9, 0x1405, 0x140d, 0x1419, 0x1419, 0x1419, + 0x1419, 0x1423, 0x143a, 0x143a, 0x1443, 0x145a, 0x145a, 0x1477, + // Entry 1C0 - 1FF + 0x1485, 0x1493, 0x149b, 0x14a5, 0x14af, 0x14ce, 0x14e4, 0x14f2, + 0x1502, 0x1516, 0x152a, 0x152a, 0x152a, 0x152a, 0x1546, 0x1546, + 0x155a, 0x155a, 0x155a, 0x156c, 0x156c, 0x158e, 0x158e, 0x158e, + 0x15a0, 0x15ae, 0x15c2, 0x15c2, 0x15c2, 0x15c2, 0x15ce, 0x15ce, + 0x15ce, 0x15ce, 0x15e4, 0x15e4, 0x15f2, 0x15fc, 0x1627, 0x1627, + 0x1631, 0x163f, 0x163f, 0x163f, 0x163f, 0x1657, 0x1665, 0x1665, + 0x1665, 0x1665, 0x1665, 0x1665, 0x1671, 0x1671, 0x1685, 0x1685, + 0x1685, 0x168b, 0x168b, 0x1697, 0x1697, 0x1697, 0x16aa, 0x16bb, + // Entry 200 - 23F + 0x16ce, 0x16e9, 0x16f7, 0x170b, 0x1728, 0x1732, 0x1732, 0x1732, + 0x173e, 0x1746, 0x1756, 0x1766, 0x1787, 0x1797, 0x1797, 0x1797, + 0x17a1, 0x17a1, 0x17ad, 0x17b7, 0x17c1, 0x17c7, 0x17d5, 0x17d5, + 0x17e9, 0x17f7, 0x17f7, 0x1805, 0x1818, 0x1829, 0x1829, 0x1829, + 0x1829, 0x1839, 0x1839, 0x1847, 0x1853, 0x1853, 0x1867, 0x1867, + 0x1873, 0x1885, 0x1893, 0x1899, 0x189f, 0x189f, 0x189f, 0x189f, + 0x189f, 0x18ab, 0x18ab, 0x18ab, 0x18ab, 0x18b7, 0x18c1, 0x18c9, + 0x18c9, 0x18c9, 0x18d5, 0x18d5, 0x18d5, 0x18db, 0x18e9, 0x18e9, + // Entry 240 - 27F + 0x18e9, 0x18e9, 0x18fb, 0x190d, 0x1921, 0x1921, 0x192d, 0x192d, + 0x1935, 0x1967, 0x196f, 0x196f, 0x196f, 0x1992, 0x19c2, 0x19eb, + 0x1a0c, 0x1a2f, 0x1a46, 0x1a72, 0x1a93, 0x1a93, 0x1a93, 0x1ab6, + 0x1add, 0x1add, 0x1aef, 0x1b18, 0x1b41, 0x1b53, 0x1b6f, 0x1b6f, + 0x1b9c, 0x1bc7, + }, + }, + { // ca + caLangStr, + caLangIdx, + }, + { // ce + "абхазхойнафрикаанÑаканамхаройнӀаьрбийнаÑÑамийназербайджанийнбашкирийнбел" + + "оруÑийнболгарийнбамбарабенгалийнтибетхойнбретонийнбоÑнийнкаталонийн" + + "нохчийнкорÑиканийнчехийнчувашийнваллийндатхойннемцойндзонг-кÑÑвегре" + + "кийнингалÑанÑÑперантоиÑпанхойнÑÑтонийнбаÑкийнгӀажарийнфиннийнфиджиф" + + "арерийнфранцузийнмалхбузен-фризийнирландхойнгалиÑийнгуаранигуджарат" + + "имÑнийнхауÑажугтийнхиндихорватийнгаитийнвенгрийнÑрмалойниндонезихой" + + "нигбоÑычуаньиÑландхойнитальÑнийнинуктитутÑпонийнÑванийнгуьржийнкику" + + "йюказахийнгренландхойнкхмерийнканнадакорейнкашмирикурдийнкорнуоллий" + + "нгӀиргӀизойнлатинанлюкÑембургхойнгандалингалалаоÑÑийнлитвахойнлуба-" + + "катангалатышийнмалагаÑийнмаоримакедонхойнмалаÑламмонголийнмаратхима" + + "лайнмальтойнбирманийнкъилбаÑеда ндебелинепалхойнголландхойннорвегий" + + "н нюнорÑкнорвегийн букмолоромоорипанджабиполÑкийнпуштупортугалихойн" + + "кечуароманшийнрундирумынийноьрÑийнкиньÑруандаÑанÑкритÑиндхикъилбаÑе" + + "да ÑаамийнÑангоÑингалхойнÑловакийнÑловенийншонаÑомалиалбанойнÑербий" + + "нÑунданхойншведийнÑуахилитамилхойнтелугутаджикийнтайнтигриньÑтуркме" + + "нийнтонганийнтуркойнгӀезалойнуйгурийнукраинийнурдуузбекийнвьетнамхо" + + "йнволофкоÑайорубакитайнзулуагхӀемарауканхойнаÑубембабенамалхбузен-б" + + "елуджийнбодочигачерокиюккъерчу курдийнтаитазармаÑорбийндуаладьола-Ñ„" + + "оньиÑмбуфилиппинийнгагаузийншвейцарин немцойнгуÑиигавайнлакхара Ñер" + + "бийннгомбамачамекабилийнкамбамакондекабувердьÑнукойра чииникаленджи" + + "нкоми-пермÑкийнконканишамбалабафиалангилакотакъилбаÑеда лурилуо (Ке" + + "ни а, Танзани а)лухьÑмаÑаимерумаврикин креолийнмакуа-мееттометамоха" + + "укмундангмазандеранхойннамалахара германхойнкваÑионконуÑрньÑнколеки" + + "черомборуандаÑамбуруÑангуÑенакойраборо ÑеннитахелхитÑаамийн (къилба" + + ")луле-Ñаамийнинари-ÑаамийнÑкольт-ÑаамийнтеÑотаÑавактамазигхтийнбоьвз" + + "уш боцу моттваивунджоварлпириÑогамороккон Ñтандартан тамазигхтийнме" + + "ттан чулацам боцушХӀинца болу Ñтандартан ӀаьрбийнавÑтрин немцойншве" + + "йцарин лакхара немцойнÐвÑтралин ингалÑанканадан ингалÑанбританин ин" + + "галÑанамерикан ингалÑанлатинан американ иÑпанхойневропан иÑпанхойнм" + + "екÑикан иÑпанхойнканадан французийншвейцарин французийнлахара ÑакÑо" + + "нийнфламандийнбразилин португалихойневропан португалихойнмолдавийнÑ" + + "уахили (Конго)атта китайнламаÑтан китайн", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0012, 0x0012, 0x0024, 0x002c, 0x003c, 0x003c, + 0x004c, 0x005c, 0x005c, 0x005c, 0x0078, 0x008a, 0x009e, 0x00b0, + 0x00b0, 0x00be, 0x00d0, 0x00e2, 0x00f4, 0x0102, 0x0116, 0x0124, + 0x0124, 0x013a, 0x013a, 0x0146, 0x0146, 0x0156, 0x0164, 0x0172, + 0x0180, 0x0180, 0x018f, 0x0195, 0x01a3, 0x01b3, 0x01c5, 0x01d7, + 0x01e7, 0x01f5, 0x0207, 0x0207, 0x0215, 0x021f, 0x022f, 0x0243, + 0x0264, 0x0278, 0x0278, 0x0288, 0x0296, 0x02a8, 0x02b4, 0x02be, + 0x02cc, 0x02d6, 0x02d6, 0x02e8, 0x02f6, 0x0306, 0x0316, 0x0316, + // Entry 40 - 7F + 0x0316, 0x032e, 0x032e, 0x0336, 0x0344, 0x0344, 0x0344, 0x0358, + 0x036c, 0x037e, 0x038c, 0x039a, 0x03aa, 0x03aa, 0x03b6, 0x03b6, + 0x03c6, 0x03de, 0x03ee, 0x03fc, 0x0408, 0x0408, 0x0416, 0x0424, + 0x0424, 0x043a, 0x0450, 0x045e, 0x047a, 0x0484, 0x0484, 0x0492, + 0x04a2, 0x04b4, 0x04cb, 0x04db, 0x04ef, 0x04ef, 0x04f9, 0x050f, + 0x051f, 0x0531, 0x053f, 0x054b, 0x055b, 0x056d, 0x056d, 0x0590, + 0x05a2, 0x05a2, 0x05b8, 0x05d9, 0x05f8, 0x05f8, 0x05f8, 0x05f8, + 0x05f8, 0x05f8, 0x0602, 0x0608, 0x0608, 0x0618, 0x0618, 0x0628, + // Entry 80 - BF + 0x0632, 0x064c, 0x0656, 0x0668, 0x0672, 0x0682, 0x0690, 0x06a6, + 0x06b6, 0x06b6, 0x06c2, 0x06e5, 0x06ef, 0x0703, 0x0715, 0x0727, + 0x0727, 0x072f, 0x073b, 0x074b, 0x0759, 0x0759, 0x0759, 0x076d, + 0x077b, 0x0789, 0x079b, 0x07a7, 0x07b9, 0x07c1, 0x07d1, 0x07e5, + 0x07e5, 0x07f7, 0x0805, 0x0805, 0x0817, 0x0817, 0x0827, 0x0839, + 0x0841, 0x0851, 0x0851, 0x0867, 0x0867, 0x0867, 0x0871, 0x0879, + 0x0879, 0x0885, 0x0885, 0x0891, 0x0899, 0x0899, 0x0899, 0x0899, + 0x0899, 0x0899, 0x0899, 0x08a5, 0x08a5, 0x08a5, 0x08a5, 0x08a5, + // Entry C0 - FF + 0x08a5, 0x08a5, 0x08a5, 0x08a5, 0x08a5, 0x08bb, 0x08bb, 0x08bb, + 0x08bb, 0x08bb, 0x08bb, 0x08bb, 0x08c1, 0x08c1, 0x08c1, 0x08c1, + 0x08c1, 0x08c1, 0x08c1, 0x08c1, 0x08c1, 0x08c1, 0x08c1, 0x08c1, + 0x08c1, 0x08cb, 0x08cb, 0x08d3, 0x08d3, 0x08d3, 0x08f8, 0x08f8, + 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x08f8, + 0x08f8, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, + 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0908, 0x0908, 0x0908, + 0x0908, 0x0908, 0x0908, 0x0908, 0x0908, 0x0914, 0x0914, 0x0933, + // Entry 100 - 13F + 0x0933, 0x0933, 0x0933, 0x0933, 0x0933, 0x0933, 0x093d, 0x093d, + 0x093d, 0x093d, 0x093d, 0x0947, 0x0947, 0x0955, 0x0955, 0x095f, + 0x095f, 0x0974, 0x0974, 0x0974, 0x097c, 0x097c, 0x097c, 0x097c, + 0x097c, 0x097c, 0x097c, 0x097c, 0x097c, 0x097c, 0x097c, 0x0992, + 0x0992, 0x0992, 0x0992, 0x0992, 0x0992, 0x0992, 0x0992, 0x0992, + 0x0992, 0x0992, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, + 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, 0x09a4, + 0x09a4, 0x09a4, 0x09c5, 0x09c5, 0x09c5, 0x09cf, 0x09cf, 0x09cf, + // Entry 140 - 17F + 0x09cf, 0x09db, 0x09db, 0x09db, 0x09db, 0x09db, 0x09f8, 0x09f8, + 0x09f8, 0x09f8, 0x09f8, 0x09f8, 0x09f8, 0x09f8, 0x09f8, 0x09f8, + 0x0a04, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a10, 0x0a20, 0x0a20, + 0x0a20, 0x0a2a, 0x0a2a, 0x0a2a, 0x0a2a, 0x0a2a, 0x0a38, 0x0a50, + 0x0a50, 0x0a50, 0x0a50, 0x0a50, 0x0a50, 0x0a65, 0x0a65, 0x0a65, + 0x0a65, 0x0a77, 0x0a77, 0x0a92, 0x0aa0, 0x0aa0, 0x0aa0, 0x0aa0, + 0x0aa0, 0x0aa0, 0x0aa0, 0x0aa0, 0x0aae, 0x0ab8, 0x0ab8, 0x0ab8, + 0x0ab8, 0x0ab8, 0x0ac2, 0x0ac2, 0x0ac2, 0x0ac2, 0x0ac2, 0x0ac2, + // Entry 180 - 1BF + 0x0ac2, 0x0ace, 0x0ace, 0x0ace, 0x0ace, 0x0aeb, 0x0aeb, 0x0aeb, + 0x0aeb, 0x0aeb, 0x0b12, 0x0b12, 0x0b1c, 0x0b1c, 0x0b1c, 0x0b1c, + 0x0b1c, 0x0b1c, 0x0b1c, 0x0b1c, 0x0b1c, 0x0b26, 0x0b26, 0x0b26, + 0x0b26, 0x0b26, 0x0b2e, 0x0b4f, 0x0b4f, 0x0b66, 0x0b6e, 0x0b6e, + 0x0b6e, 0x0b6e, 0x0b6e, 0x0b7a, 0x0b7a, 0x0b7a, 0x0b88, 0x0b88, + 0x0b88, 0x0b88, 0x0b88, 0x0b88, 0x0b88, 0x0b88, 0x0ba4, 0x0ba4, + 0x0ba4, 0x0bac, 0x0bcd, 0x0bcd, 0x0bcd, 0x0bcd, 0x0bcd, 0x0bd9, + 0x0bd9, 0x0bd9, 0x0bd9, 0x0bd9, 0x0bdf, 0x0bdf, 0x0be7, 0x0be7, + // Entry 1C0 - 1FF + 0x0be7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, + 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, + 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bf7, 0x0bff, 0x0bff, + 0x0bff, 0x0bff, 0x0bff, 0x0bff, 0x0bff, 0x0c09, 0x0c09, 0x0c09, + 0x0c09, 0x0c09, 0x0c09, 0x0c15, 0x0c15, 0x0c15, 0x0c15, 0x0c23, + 0x0c23, 0x0c23, 0x0c23, 0x0c23, 0x0c2d, 0x0c2d, 0x0c2d, 0x0c2d, + 0x0c2d, 0x0c2d, 0x0c35, 0x0c35, 0x0c35, 0x0c52, 0x0c52, 0x0c52, + 0x0c62, 0x0c62, 0x0c62, 0x0c62, 0x0c62, 0x0c62, 0x0c7f, 0x0c96, + // Entry 200 - 23F + 0x0caf, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, + 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, 0x0cca, + 0x0cca, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, + 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, + 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0cd2, 0x0ce0, 0x0ce0, 0x0cf8, + 0x0cf8, 0x0cf8, 0x0cf8, 0x0d18, 0x0d1e, 0x0d1e, 0x0d1e, 0x0d1e, + 0x0d1e, 0x0d1e, 0x0d1e, 0x0d2a, 0x0d2a, 0x0d2a, 0x0d2a, 0x0d2a, + 0x0d3a, 0x0d3a, 0x0d3a, 0x0d3a, 0x0d42, 0x0d42, 0x0d42, 0x0d42, + // Entry 240 - 27F + 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d80, + 0x0d80, 0x0da6, 0x0da6, 0x0de1, 0x0de1, 0x0dfe, 0x0e2e, 0x0e51, + 0x0e70, 0x0e91, 0x0eb2, 0x0ee4, 0x0f05, 0x0f28, 0x0f28, 0x0f4b, + 0x0f72, 0x0f91, 0x0fa5, 0x0fd0, 0x0ff9, 0x100b, 0x100b, 0x1026, + 0x103b, 0x1058, + }, + }, + { // cgg + "OrukaniOrumarikiOruharabuOruberarusiOruburugariyaOrubengariOruceekiOrugi" + + "rimaaniOruguriikiOrungyerezaOrusupaaniOrupaasiyaOrufaransaOruhausaOr" + + "uhindiOruhangareOruindoneziaOruiboOruyitareOrujapaaniOrujavaOrukambo" + + "diyaOrukoreyaOrumalesiyaOruburumaOrunepaliOrudaakiOrupungyabiOrupoor" + + "iOrupocugoOruromaniaOrurrashaOrunyarwandaOrusomaariOruswidiOrutamiri" + + "OrutailandiOrukurukiOrukurainiOru-UruduOruviyetinaamuOruyorubaOrucha" + + "inaOruzuruRukiga", + []uint16{ // 246 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0031, + 0x0031, 0x0031, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0064, 0x0064, 0x006e, + 0x006e, 0x006e, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x008a, + 0x008a, 0x0092, 0x0092, 0x0092, 0x0092, 0x009c, 0x009c, 0x009c, + // Entry 40 - 7F + 0x009c, 0x00a8, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00b7, 0x00b7, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, + 0x00c8, 0x00c8, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00e8, 0x00f1, 0x00f1, 0x00f1, + 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x010d, 0x010d, 0x0115, + // Entry 80 - BF + 0x0115, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013d, + 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, + 0x013d, 0x013d, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0163, 0x0163, 0x0163, + 0x0163, 0x0163, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x0176, + 0x017f, 0x017f, 0x017f, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, + 0x018d, 0x0196, 0x0196, 0x019f, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry C0 - FF + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01ac, + }, + }, + { // chr + "Ꭰá‚á“á¥áŽ©áŽµááá†á‚ᎦᎸá¥áŽ¬á©áŽµá²á¥áŽ¢á£á©á‚áá‰á§áŽ¦áŽµá²á‚Ꭲá“Ꮆá‚ᎨᎦá³áŽ¦áŽ á£á—á£áŽ³áŽ©áŽ¼áŽ»áŽ¦áŽ áŽ«áŒáá‚Ꭶá„á¬áŽµáá›áŽ¾ Ꭶá¬á‚Ꭿáá—", + []uint16{ // 556 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, 0x0015, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + // Entry 40 - 7F + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0039, 0x0039, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + // Entry 80 - BF + 0x0045, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + // Entry C0 - FF + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, + 0x006f, 0x006f, 0x006f, 0x0078, 0x0078, 0x0081, 0x0081, 0x0081, + // Entry 100 - 13F + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + // Entry 140 - 17F + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + // Entry 180 - 1BF + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + // Entry 1C0 - 1FF + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + // Entry 200 - 23F + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x00c1, + }, + }, + { // ckb + "ئەمهەرینجیعەرەبیئاسامیئازەربایجانیبێلاڕووسیبۆلگاریبەنگلادێشیبرێتونیبۆسنی" + + "كاتالۆنیچەكیوێلزیدانماركیئاڵمانییۆنانیئینگلیزیئێسپیرانتۆئیسپانیئیست" + + "ۆنیباسکیÙارسیÙینلەندیÙەرانسیÙریسیی ڕۆژاوائیرلەندیگالیسیگووارانیگوجا" + + "راتیهیبرێهیندیكرواتیهەنگاری (مەجاری)ئەرمەنیئێەندونیزیئیسلەندیئیتالی" + + "ژاپۆنیجاڤانیگۆرجستانیکوردیكرگیزیلاتینیلينگالالاویلیتوانیلێتۆنیماكێد" + + "ۆنیمەنگۆلیماراتینیپالیهۆڵەندیئۆرییاپەنجابیپۆڵۆنیایی (لەهستانی)پەشتو" + + "وپورتوگالیڕۆمانیڕووسیسانسکريتسيندیسینهەلیسلۆڤاكیسلۆڤێنیسۆمالیئاڵبان" + + "یسەربیسودانیسویدیتامیلیتەلۆگویتاجیکیتایلەندیتیگرینیایتورکمانیتورکیئ" + + "ويخووریئۆكراینیئۆردووئوزبەکیڤیەتنامیچینیزولوکوردیی ناوەندیمازەندەرا" + + "نیکوردیی باشووریسامی باشووریزمانی نەناسراوئازەربایجانی باشووریئینگل" + + "یزیی ئۆسترالیاییئینگلیزیی کەنەداییئینگلیزیی بریتانیاییئینگلیزیی ئەم" + + "ەریکاییپورتوگاڵی برازیلپورتوگاڵی (پورتوگاڵ)", + []uint16{ // 605 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, 0x0014, + 0x0020, 0x002c, 0x002c, 0x002c, 0x0044, 0x0044, 0x0056, 0x0064, + 0x0064, 0x0064, 0x0078, 0x0078, 0x0086, 0x0090, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a8, 0x00a8, 0x00a8, 0x00b2, 0x00c2, + 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00dc, 0x00ec, 0x0100, 0x010e, + 0x011c, 0x0126, 0x0130, 0x0130, 0x0140, 0x0140, 0x0140, 0x014e, + 0x0167, 0x0177, 0x0177, 0x0183, 0x0193, 0x01a3, 0x01a3, 0x01a3, + 0x01ad, 0x01b7, 0x01b7, 0x01c3, 0x01c3, 0x01e0, 0x01ee, 0x01ee, + // Entry 40 - 7F + 0x01ee, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0212, + 0x021e, 0x021e, 0x022a, 0x0236, 0x0248, 0x0248, 0x0248, 0x0248, + 0x0248, 0x0248, 0x0248, 0x0248, 0x0248, 0x0248, 0x0248, 0x0252, + 0x0252, 0x0252, 0x025e, 0x026a, 0x026a, 0x026a, 0x026a, 0x0278, + 0x0280, 0x028e, 0x028e, 0x029a, 0x029a, 0x029a, 0x029a, 0x02aa, + 0x02aa, 0x02b8, 0x02c4, 0x02c4, 0x02c4, 0x02c4, 0x02c4, 0x02c4, + 0x02d0, 0x02d0, 0x02de, 0x02de, 0x02de, 0x02de, 0x02de, 0x02de, + 0x02de, 0x02de, 0x02de, 0x02ea, 0x02ea, 0x02f8, 0x02f8, 0x031d, + // Entry 80 - BF + 0x0329, 0x033b, 0x033b, 0x033b, 0x033b, 0x0347, 0x0351, 0x0351, + 0x0361, 0x0361, 0x036b, 0x036b, 0x036b, 0x0379, 0x0387, 0x0395, + 0x0395, 0x0395, 0x03a1, 0x03af, 0x03b9, 0x03b9, 0x03b9, 0x03c5, + 0x03cf, 0x03cf, 0x03db, 0x03e9, 0x03f5, 0x0405, 0x0417, 0x0427, + 0x0427, 0x0427, 0x0431, 0x0431, 0x0431, 0x0431, 0x0441, 0x0451, + 0x045d, 0x046b, 0x046b, 0x047b, 0x047b, 0x047b, 0x047b, 0x047b, + 0x047b, 0x047b, 0x047b, 0x0483, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + // Entry C0 - FF + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, 0x04a6, + // Entry 100 - 13F + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + // Entry 140 - 17F + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + // Entry 180 - 1BF + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, + 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04a6, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + // Entry 1C0 - 1FF + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, 0x04bc, + 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, + 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04ee, 0x04ee, + // Entry 200 - 23F + 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, 0x04ee, + 0x04ee, 0x04ee, 0x04ee, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + // Entry 240 - 27F + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0530, 0x0530, 0x0530, 0x0559, + 0x057c, 0x05a3, 0x05ca, 0x05ca, 0x05ca, 0x05ca, 0x05ca, 0x05ca, + 0x05ca, 0x05ca, 0x05ca, 0x05e9, 0x060e, + }, + }, + { // cs + csLangStr, + csLangIdx, + }, + { // cy + "AffaregAbchasegAfestanegAffricânegAcanegAmharegAragonegArabegAsamegAfare" + + "gAymaregAserbaijanegBashcortegBelarwsegBwlgaregBislamaBambaregBengal" + + "egTibetegLlydawegBosniegCatalanegTsietsienegTsiamorroCorsegCriTsiece" + + "gHen SlafonegTshwfashegCymraegDanegAlmaenegDifehiDzongkhaEweGroegSae" + + "snegEsperantoSbaenegEstonegBasgegPersegFfwlaFfinnegFfijïegFfaröegFfr" + + "angegFfriseg y GorllewinGwyddelegGaeleg yr AlbanGalisiegGuaraníGwjar" + + "atiManawegHawsaHebraegHindiCroategCreol HaitiHwngaregArmenegHereroIn" + + "terlinguaIndonesegInterlingueIgboNwoswInwpiacegIslandegEidalegInwcti" + + "twtJapaneegJafanaegGeorgegCongoKikuyuCasachegKalaallisutChmeregKanna" + + "daCoreegCanwriCashmiregCwrdegComiCernywegCirgisegLladinLwcsembwrgegG" + + "andaLimbwrgegLingalaLaoegLithwanegLuba-KatangaLatfiegMalagasegMarsia" + + "legMaoriMacedonegMalayalamMongolegMarathiMaleiegMaltegByrmanegNawrŵe" + + "gNdebele GogleddolNepalegNdongaIseldiregNorwyeg NynorskNorwyeg BokmÃ¥" + + "lNdebele DeheuolNafahoNianjaOcsitanegOjibwaOromoOriyaOsetegPwnjabegP" + + "aliPwylegPashtoPortiwgeegQuechuaRománshRwndiRwmanegRwsegCiniarŵandeg" + + "SansgritSardegSindhiSami GogleddolSangoSinhalegSlofacegSlofenegSamöe" + + "gShonaSomalegAlbanegSerbegSwatiSesothegSwndanegSwedegSwahiliTamilegT" + + "eluguTajicegThaiTigrinyaTwrcmenegTswanaTongegTyrcegTsongaegTataregUi" + + "ghurWcreinegWrdwWsbecegFendegFietnamegWalwnegWoloffXhosaIddew-Almaen" + + "egIorwbaTsieineegSwlwAcehnegAcoliAdangmegCircaseg GorllewinolArabeg " + + "TunisiaAffrihiliAghemegAinŵegAcadegAlabamäegAlewtegGhegeg AlbaniaAlt" + + "äeg DeheuolHen SaesnegAngikaAramaegArawcanegAraonaegArapahoArabeg A" + + "lgeriaArawacegArabeg MorocoArabeg yr AifftAswIaith Arwyddion America" + + "AstwrianegAwadhiBalwtsiBalïegBasâegBamwmegBejäegBembegBenaBaffwtegBa" + + "dagaBalochi GorllewinolComegSiksikaBrahuiBodoAcwsegBwriategBwlwCadoC" + + "aribegAtsamegTsigaMariegSioctoTsierocîCheyenneCwrdeg SoraniCoptegTyr" + + "ceg y CrimeaDacotaegDargwaTaitaDincaZarmaegDogriSorbeg IsafDiwalegIs" + + "eldireg CanolJola-FonyiEmbwHen EifftegElamegSaesneg CanolEwondoExtre" + + "maduregFfilipinegFfinneg TornedalFfrangeg CajwnFfrangeg CanolHen Ffr" + + "angegArpitanegFfriseg y GogleddFfriseg y DwyrainFfriwlegGagauzGaioGb" + + "aiaDareg y ZoroastriaidGilbertegUchel Almaeneg CanolHen Uchel Almaen" + + "egGothegHen RoegAlmaeneg y SwistirGusiiHaidaHawäiegHethegHmongegSorb" + + "eg UchafIbanegIbibioIlocanegIngwsiegNgombaMatsiameIddew-BersiegIddew" + + "-ArabegCara-CalpacegCabilegCambaCircaseg DwyreiniolTyapegMacondegCab" + + "oferdianegCàsegKoyra ChiiniChowaregKalenjinKomi-PermyakConcaniCarele" + + "gShambalaBaffiaCwlenegCwmicegIddew-SbaenegLangiLahndaLambaLezghegLak" + + "otaLombardegMongoLoziLuri GogleddolLatgalegLwndaLŵoLwshaiegLwyiaMadw" + + "regMagahiMaithiliMacasaregMandingoMasaiMocsiaMandaregMendegMêrwMoris" + + "yenGwyddeleg CanolMakhuwa-MeettoMetaMicmacegManshwManipwriMohocegMos" + + "iMari GorllewinolMundangmwy nag un iaithMirandegMarwariMasanderaniNa" + + "pliegNamaIsel AlmaenegNewaegAo NagaKwasioHen NorsegN’KoSotho Gogledd" + + "olNŵeregHen NewariNiamweziNiancoleNioroNzimegOsagegTyrceg OtomanPang" + + "asinegPahlafiPampangaPicardegAlmaeneg PensylfaniaHen BersiegAlmaeneg" + + " PalatinPhoenicegPiedmontegPontegPohnpeianegPrwsegHen BrofensalegK’i" + + "che’RajasthanegRapanŵiRaratongegRomboRomaniRotumanegAromanegRwaSandä" + + "wegAramaeg SamariaSambŵrwSasacegSantaliNgambeiegSangwSisilegSgotegSa" + + "sareseg SardiniaCwrdeg DeheuolSenecaSenaSeriSelcypegKoyraboro SenniH" + + "en WyddelegSamogitegTachelhitArabeg ChadSidamoIs-silesiegSami Deheuo" + + "lSami LwleSami InariSami ScoltSonincegSogdegSereregFfriseg Saterland" + + "SwcwmaSwsŵegSwmeregComoregHen SyriegSyriegSilesiegTuluTimnegTesoTere" + + "naTetumegTigregTifegTocelawegTsakhuregKlingonLlingitTalyshegTamashec" + + "egTok PisinTarokoTsaconegTwmbwcaTwfalwegTasawaqTamaseit Canolbarth M" + + "orocoFotiacegWgaritegUmbunduy GwraiddFaiegFenisegFepsFflemeg Gorllew" + + "inolFotegFunjoWalseregWalamoWinarayegWashoWarlpiriCalmycegSogaIembae" + + "gCantoneegZapotecegBlisssymbolsZêlandegTamaseit SafonolZuniDim cynnw" + + "ys ieithyddolZazäegArabeg Modern SafonolAserbaijaneg DeheuolAlmaeneg" + + " AwstriaAlmaeneg Safonol y SwistirSaesneg AwstraliaSaesneg CanadaSae" + + "sneg PrydainSaesneg AmericaSbaeneg America LadinSbaeneg EwropSbaeneg" + + " MecsicoFfrangeg CanadaFfrangeg y SwistirSacsoneg IselFflemegPortiwg" + + "eeg BrasilPortiwgeeg EwropMoldofegSerbo-CroategSwahili’r CongoTsiein" + + "eeg SymledigTsieineeg Traddodiadol", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0007, 0x000f, 0x0018, 0x0023, 0x0029, 0x0030, 0x0038, + 0x003e, 0x0044, 0x004a, 0x0051, 0x005d, 0x0067, 0x0070, 0x0078, + 0x007f, 0x0087, 0x008f, 0x0096, 0x009e, 0x00a5, 0x00ae, 0x00b9, + 0x00c2, 0x00c8, 0x00cb, 0x00d2, 0x00de, 0x00e8, 0x00ef, 0x00f4, + 0x00fc, 0x0102, 0x010a, 0x010d, 0x0112, 0x0119, 0x0122, 0x0129, + 0x0130, 0x0136, 0x013c, 0x0141, 0x0148, 0x0150, 0x0158, 0x0160, + 0x0173, 0x017c, 0x018b, 0x0193, 0x019b, 0x01a3, 0x01aa, 0x01af, + 0x01b6, 0x01bb, 0x01bb, 0x01c2, 0x01cd, 0x01d5, 0x01dc, 0x01e2, + // Entry 40 - 7F + 0x01ed, 0x01f6, 0x0201, 0x0205, 0x020a, 0x0213, 0x0213, 0x021b, + 0x0222, 0x022b, 0x0233, 0x023b, 0x0242, 0x0247, 0x024d, 0x024d, + 0x0255, 0x0260, 0x0267, 0x026e, 0x0274, 0x027a, 0x0283, 0x0289, + 0x028d, 0x0295, 0x029d, 0x02a3, 0x02af, 0x02b4, 0x02bd, 0x02c4, + 0x02c9, 0x02d2, 0x02de, 0x02e5, 0x02ee, 0x02f7, 0x02fc, 0x0305, + 0x030e, 0x0316, 0x031d, 0x0324, 0x032a, 0x0332, 0x033a, 0x034b, + 0x0352, 0x0358, 0x0361, 0x0370, 0x037f, 0x038e, 0x0394, 0x039a, + 0x03a3, 0x03a9, 0x03ae, 0x03b3, 0x03b9, 0x03c1, 0x03c5, 0x03cb, + // Entry 80 - BF + 0x03d1, 0x03db, 0x03e2, 0x03ea, 0x03ef, 0x03f6, 0x03fb, 0x0408, + 0x0410, 0x0416, 0x041c, 0x042a, 0x042f, 0x0437, 0x043f, 0x0447, + 0x044e, 0x0453, 0x045a, 0x0461, 0x0467, 0x046c, 0x0474, 0x047c, + 0x0482, 0x0489, 0x0490, 0x0496, 0x049d, 0x04a1, 0x04a9, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cc, 0x04d3, 0x04d3, 0x04d9, 0x04e1, + 0x04e5, 0x04ec, 0x04f2, 0x04fb, 0x04fb, 0x0502, 0x0508, 0x050d, + 0x051b, 0x0521, 0x0521, 0x052a, 0x052e, 0x0535, 0x053a, 0x0542, + 0x0556, 0x0564, 0x056d, 0x0574, 0x057b, 0x0581, 0x058b, 0x0592, + // Entry C0 - FF + 0x05a0, 0x05af, 0x05ba, 0x05c0, 0x05c7, 0x05d0, 0x05d8, 0x05df, + 0x05ed, 0x05f5, 0x0602, 0x0611, 0x0614, 0x062b, 0x0635, 0x0635, + 0x063b, 0x0642, 0x0649, 0x0649, 0x0650, 0x0657, 0x0657, 0x0657, + 0x065e, 0x0664, 0x0664, 0x0668, 0x0670, 0x0676, 0x0689, 0x0689, + 0x0689, 0x0689, 0x0689, 0x068e, 0x0695, 0x0695, 0x0695, 0x0695, + 0x069b, 0x069f, 0x06a5, 0x06ad, 0x06ad, 0x06b1, 0x06b1, 0x06b1, + 0x06b5, 0x06bc, 0x06bc, 0x06c3, 0x06c3, 0x06c8, 0x06c8, 0x06c8, + 0x06c8, 0x06ce, 0x06ce, 0x06d4, 0x06d4, 0x06dd, 0x06e5, 0x06f2, + // Entry 100 - 13F + 0x06f8, 0x06f8, 0x0707, 0x0707, 0x070f, 0x0715, 0x071a, 0x071a, + 0x071a, 0x071a, 0x071f, 0x0726, 0x072b, 0x0736, 0x0736, 0x073d, + 0x074c, 0x0756, 0x0756, 0x0756, 0x075a, 0x075a, 0x075a, 0x0765, + 0x0765, 0x076b, 0x0778, 0x0778, 0x077e, 0x078a, 0x078a, 0x0794, + 0x07a4, 0x07a4, 0x07b2, 0x07c0, 0x07cc, 0x07d5, 0x07e6, 0x07f7, + 0x07ff, 0x07ff, 0x0805, 0x0805, 0x0809, 0x080e, 0x0822, 0x0822, + 0x082b, 0x082b, 0x083f, 0x0851, 0x0851, 0x0851, 0x0851, 0x0857, + 0x0857, 0x085f, 0x0871, 0x0871, 0x0871, 0x0876, 0x0876, 0x087b, + // Entry 140 - 17F + 0x087b, 0x0883, 0x0883, 0x0883, 0x0889, 0x0890, 0x089c, 0x089c, + 0x089c, 0x08a2, 0x08a8, 0x08b0, 0x08b8, 0x08b8, 0x08b8, 0x08b8, + 0x08be, 0x08c6, 0x08d3, 0x08df, 0x08df, 0x08ec, 0x08f3, 0x08f3, + 0x08f3, 0x08f8, 0x08f8, 0x090b, 0x090b, 0x0911, 0x0919, 0x0926, + 0x0926, 0x0926, 0x0926, 0x092c, 0x092c, 0x0938, 0x0940, 0x0940, + 0x0940, 0x0948, 0x0948, 0x0954, 0x095b, 0x095b, 0x095b, 0x095b, + 0x095b, 0x095b, 0x0962, 0x0962, 0x096a, 0x0970, 0x0977, 0x097e, + 0x097e, 0x098b, 0x0990, 0x0996, 0x099b, 0x09a2, 0x09a2, 0x09a2, + // Entry 180 - 1BF + 0x09a2, 0x09a8, 0x09b1, 0x09b6, 0x09ba, 0x09c8, 0x09d0, 0x09d0, + 0x09d0, 0x09d5, 0x09d9, 0x09e1, 0x09e6, 0x09e6, 0x09e6, 0x09ed, + 0x09ed, 0x09f3, 0x09fb, 0x0a04, 0x0a0c, 0x0a11, 0x0a11, 0x0a17, + 0x0a1f, 0x0a25, 0x0a2a, 0x0a32, 0x0a41, 0x0a4f, 0x0a53, 0x0a5b, + 0x0a5b, 0x0a61, 0x0a69, 0x0a70, 0x0a74, 0x0a84, 0x0a8b, 0x0a9b, + 0x0a9b, 0x0aa3, 0x0aaa, 0x0aaa, 0x0aaa, 0x0aaa, 0x0ab5, 0x0ab5, + 0x0abc, 0x0ac0, 0x0acd, 0x0ad3, 0x0ad3, 0x0ad3, 0x0ada, 0x0ae0, + 0x0ae0, 0x0ae0, 0x0aea, 0x0aea, 0x0af0, 0x0aff, 0x0b06, 0x0b10, + // Entry 1C0 - 1FF + 0x0b18, 0x0b20, 0x0b25, 0x0b2b, 0x0b31, 0x0b3e, 0x0b48, 0x0b4f, + 0x0b57, 0x0b57, 0x0b57, 0x0b5f, 0x0b73, 0x0b73, 0x0b7e, 0x0b8e, + 0x0b97, 0x0ba1, 0x0ba7, 0x0bb2, 0x0bb8, 0x0bc7, 0x0bd2, 0x0bd2, + 0x0bdd, 0x0be5, 0x0bef, 0x0bef, 0x0bef, 0x0bf4, 0x0bfa, 0x0c03, + 0x0c03, 0x0c03, 0x0c0b, 0x0c0e, 0x0c17, 0x0c17, 0x0c26, 0x0c2e, + 0x0c35, 0x0c3c, 0x0c3c, 0x0c45, 0x0c4a, 0x0c51, 0x0c57, 0x0c69, + 0x0c77, 0x0c7d, 0x0c81, 0x0c85, 0x0c8d, 0x0c9c, 0x0ca8, 0x0cb1, + 0x0cba, 0x0cba, 0x0cc5, 0x0ccb, 0x0cd6, 0x0cd6, 0x0ce2, 0x0ceb, + // Entry 200 - 23F + 0x0cf5, 0x0cff, 0x0d07, 0x0d0d, 0x0d0d, 0x0d14, 0x0d14, 0x0d25, + 0x0d2b, 0x0d32, 0x0d39, 0x0d40, 0x0d4a, 0x0d50, 0x0d58, 0x0d5c, + 0x0d62, 0x0d66, 0x0d6c, 0x0d73, 0x0d79, 0x0d7e, 0x0d87, 0x0d90, + 0x0d97, 0x0d9e, 0x0da6, 0x0db0, 0x0db0, 0x0db9, 0x0db9, 0x0dbf, + 0x0dc7, 0x0dc7, 0x0dc7, 0x0dce, 0x0dd6, 0x0ddd, 0x0ddd, 0x0df7, + 0x0dff, 0x0e07, 0x0e0e, 0x0e17, 0x0e1c, 0x0e23, 0x0e27, 0x0e3a, + 0x0e3a, 0x0e3f, 0x0e3f, 0x0e44, 0x0e4c, 0x0e52, 0x0e5b, 0x0e60, + 0x0e68, 0x0e68, 0x0e70, 0x0e70, 0x0e74, 0x0e74, 0x0e74, 0x0e74, + // Entry 240 - 27F + 0x0e7b, 0x0e7b, 0x0e84, 0x0e8d, 0x0e99, 0x0ea2, 0x0ea2, 0x0eb2, + 0x0eb6, 0x0ecc, 0x0ed3, 0x0ee8, 0x0efc, 0x0f0c, 0x0f26, 0x0f37, + 0x0f45, 0x0f54, 0x0f63, 0x0f78, 0x0f85, 0x0f94, 0x0f94, 0x0fa3, + 0x0fb5, 0x0fc2, 0x0fc9, 0x0fda, 0x0fea, 0x0ff2, 0x0fff, 0x1010, + 0x1022, 0x1038, + }, + }, + { // da + daLangStr, + daLangIdx, + }, + { // dav + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluKitaita", + []uint16{ // 263 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0170, + }, + }, + { // de + deLangStr, + deLangIdx, + }, + { // de-CH + "WeissrussischAltpreussisch", + []uint16{ // 469 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 40 - 7F + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 80 - BF + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry C0 - FF + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 100 - 13F + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 140 - 17F + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 180 - 1BF + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 1C0 - 1FF + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x001a, + }, + }, + { // dje + "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + + " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + + "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + + "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senniKoree" + + " senniMaleezi senniBurme senniNeepal senniHolandee senniPunjaabi sen" + + "niiPolonee senniPortugee senniRumaani senniRuusi senniRwanda senniSo" + + "maali senniSuweede senniTamil senniTaailandu senniTurku senniUkreen " + + "senniUrdu senniVietnaam senniYorbance senniSinuwa senniZulu senniZar" + + "maciine", + []uint16{ // 268 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, + 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, + 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, + 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, + // Entry 40 - 7F + 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0111, 0x0111, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, + 0x0140, 0x0140, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, + 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x015d, 0x015d, 0x016a, + // Entry 80 - BF + 0x016a, 0x0178, 0x0178, 0x0178, 0x0178, 0x0185, 0x0190, 0x019c, + 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, + 0x019c, 0x019c, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, + 0x01b6, 0x01b6, 0x01c1, 0x01c1, 0x01c1, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, 0x01e7, + 0x01f1, 0x01f1, 0x01f1, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, + 0x01ff, 0x020d, 0x020d, 0x0219, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + // Entry C0 - FF + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + // Entry 100 - 13F + 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, 0x0223, + 0x0223, 0x0223, 0x0223, 0x022d, + }, + }, + { // dsb + "afaršćinaabchazšćinaafrikansakanšćinaamharšćinaaragonšćinaarabšćinaasamÅ¡" + + "ćinaawaršćinaaymaršćinaazerbajdžanšćinabaÅ¡kiršćinaběłorušćinabulgar" + + "šćinabislamšćinabambarabengalšćinatibetšćinabretonšćinabosnišćinaka" + + "tanlanšćinaÄamoršćinakorsišćinakriÄešćinawalizišćinadanšćinanimšćina" + + "divehidzongkhaewegrichišćinaengelšćinaesperantoÅ¡pańšćinaestišćinabas" + + "kišćinapersišćinafinšćinafidžišćinaferejšćinafrancojšćinafrizišćinai" + + "ršćinaÅ¡otišćinagalicišćinaguaranigudžaratšćinamanšćinahausahebrejšći" + + "nahindišćinachorwatšćinahaitišćinahungoršćinaarmeńšćinainterlinguain" + + "donešćinaigbosichuan yiinupiakidoislandšćinaitalšćinainuitšćinajapaÅ„" + + "šćinajavašćinageorgišćinakikuyukazachšćinagrönlandšćinakambodžanšći" + + "nakannadšćinakorejańšćinakaÅ¡miršćinakurdišćinakornišćinakirgišćinaÅ‚a" + + "tyńšćinaluxemburgšćinagandšćinalimburšćinalingalalaošćinalitawšćinal" + + "uba-katangaletišćinamalgašćinamaorišćinamakedońšćinamalajamšćinamong" + + "olšćinamaratišćinamalajšćinamaltašćinaburmašćinanaurušćinapódpoÅ‚nocn" + + "e ndebelenepalšćinanižozemšćinanorwegske nynorsknorwegske bokmÃ¥lnava" + + "hookcitanšćinaoromoorojišćinapandžabšćinapólšćinapaÅ¡tunšćinaportugal" + + "šćinakeÄuaretoromańšćinakirundišćinarumunšćinarušćinakinjarwandasan" + + "skritsardinšćinasindšćinalapšćinasangosingalšćinasÅ‚owakšćinasÅ‚owjeÅ„Å¡" + + "ćinasamošćinaÅ¡onšćinasomališćinaalbanšćinaserbišćinasiswatipódpoÅ‚dn" + + "jowa sotšćina (Sesotho)sundanšćinaÅ¡wedšćinaswahilišćinatamilšćinatel" + + "ugšćinatadžikišćinathailandšćinatigrinjaturkmeńšćinatswanatonganšćin" + + "aturkojšćinatsongatataršćinatahitišćinaujguršćinaukrainšćinaurdušćin" + + "ausbekšćinavietnamšćinavolapükwalonšćinawolofxhosajidišćinajorubšćin" + + "azhuangchinšćinazuluaghemanglosaksojšćinaarawkašćinapareasturšćinabe" + + "mbabenabodobugišćinachigachoctawšćinacherokeesoranitaitazarmadolnose" + + "rbšćinadualajola-fonyiembufilipinšćinagagauzšćinagotišćinaÅ¡wicarska " + + "nimšćinagusiihawaiišćinagórnoserbšćinangombamachamekabylšćinakambama" + + "kondekapverdšćinakoyra chiinikalenjinkomi-permyakkonkaniÅ¡ambalabafia" + + "langilakotšćinaluoluhyamasaišćinamerumauriciska kreolšćinamakhuwa-me" + + "ettometa’mohawkšćinamundangkriknamadolnonimšćinakwasion’konuernyanko" + + "leprusÄinakʼicheʼromborwasamburusangusicilianišćinasenakoyra sennita" + + "Å¡elhitpódpoÅ‚dnjowa samišćinalule-samišćinainari-samišćinaskolt-sami" + + "šćinasaterfrizišćinatesotasawaqcentralnoatlaski tamazightnjeznata r" + + "Ä›cvaivunjosogastandardny marokkaÅ„ski tamazightžedno rÄ›cne wopÅ›imjeÅ›" + + "emoderna wusokoarabšćinaawstriska nimšćinaÅ¡wicarska wusokonimšćinaaw" + + "stralska engelšćinakanadiska engelšćinabritiska engelšćinaameriska e" + + "ngelšćinaÅ‚atyÅ„skoamerikaÅ„ska Å¡pańšćinaeuropejska Å¡pańšćinamexikaÅ„ska" + + " Å¡pańšćinakanadiska francojšćinaÅ¡wicarska francojšćinaflamšćinabrazi" + + "lska portugalšćinaeuropejska portugalšćinamoldawišćinaserbochorwatšć" + + "inakongojska swahilišćinachinšćina (zjadnorjona)chinšćina (tradicion" + + "alna)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000b, 0x0018, 0x0018, 0x0020, 0x002b, 0x0037, 0x0044, + 0x004f, 0x005a, 0x0065, 0x0071, 0x0084, 0x0092, 0x00a1, 0x00ae, + 0x00bb, 0x00c2, 0x00cf, 0x00db, 0x00e8, 0x00f4, 0x0103, 0x0103, + 0x0110, 0x011c, 0x011f, 0x0129, 0x0129, 0x0129, 0x0136, 0x0140, + 0x014a, 0x0150, 0x0158, 0x015b, 0x0168, 0x0174, 0x017d, 0x018a, + 0x0195, 0x01a1, 0x01ad, 0x01ad, 0x01b7, 0x01c4, 0x01d0, 0x01de, + 0x01ea, 0x01f3, 0x01ff, 0x020c, 0x0213, 0x0223, 0x022d, 0x0232, + 0x023f, 0x024b, 0x024b, 0x0259, 0x0265, 0x0272, 0x027f, 0x027f, + // Entry 40 - 7F + 0x028a, 0x0297, 0x0297, 0x029b, 0x02a5, 0x02ac, 0x02af, 0x02bc, + 0x02c7, 0x02d3, 0x02e0, 0x02eb, 0x02f8, 0x02f8, 0x02fe, 0x02fe, + 0x030b, 0x031b, 0x032c, 0x0339, 0x0348, 0x0348, 0x0356, 0x0362, + 0x0362, 0x036e, 0x037a, 0x0388, 0x0398, 0x03a3, 0x03b0, 0x03b7, + 0x03c1, 0x03cd, 0x03d9, 0x03e4, 0x03f0, 0x03f0, 0x03fc, 0x040b, + 0x0419, 0x0426, 0x0433, 0x043f, 0x044b, 0x0457, 0x0463, 0x0478, + 0x0484, 0x0484, 0x0493, 0x04a4, 0x04b5, 0x04b5, 0x04bb, 0x04bb, + 0x04c9, 0x04c9, 0x04ce, 0x04da, 0x04da, 0x04e9, 0x04e9, 0x04f4, + // Entry 80 - BF + 0x0502, 0x0511, 0x0517, 0x0528, 0x0536, 0x0542, 0x054b, 0x0556, + 0x055e, 0x056b, 0x0576, 0x0580, 0x0585, 0x0592, 0x05a0, 0x05b0, + 0x05bb, 0x05c6, 0x05d3, 0x05df, 0x05eb, 0x05f2, 0x0615, 0x0622, + 0x062e, 0x063c, 0x0648, 0x0654, 0x0663, 0x0672, 0x067a, 0x0689, + 0x068f, 0x069c, 0x06a9, 0x06af, 0x06bb, 0x06c8, 0x06d4, 0x06e1, + 0x06ec, 0x06f8, 0x06f8, 0x0706, 0x070e, 0x071a, 0x071f, 0x0724, + 0x072f, 0x073b, 0x0741, 0x074c, 0x0750, 0x0750, 0x0750, 0x0750, + 0x0750, 0x0750, 0x0750, 0x0755, 0x0755, 0x0755, 0x0755, 0x0755, + // Entry C0 - FF + 0x0755, 0x0755, 0x0767, 0x0767, 0x0767, 0x0774, 0x0774, 0x0774, + 0x0774, 0x0774, 0x0774, 0x0774, 0x0778, 0x0778, 0x0784, 0x0784, + 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, 0x0784, + 0x0784, 0x0789, 0x0789, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, + 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, 0x078d, + 0x078d, 0x0791, 0x0791, 0x0791, 0x079c, 0x079c, 0x079c, 0x079c, + 0x079c, 0x079c, 0x079c, 0x079c, 0x079c, 0x07a1, 0x07a1, 0x07a1, + 0x07a1, 0x07a1, 0x07a1, 0x07af, 0x07af, 0x07b7, 0x07b7, 0x07bd, + // Entry 100 - 13F + 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07bd, 0x07c2, 0x07c2, + 0x07c2, 0x07c2, 0x07c2, 0x07c7, 0x07c7, 0x07d7, 0x07d7, 0x07dc, + 0x07dc, 0x07e6, 0x07e6, 0x07e6, 0x07ea, 0x07ea, 0x07ea, 0x07ea, + 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07ea, 0x07f8, + 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f8, + 0x07f8, 0x07f8, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, + 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0805, 0x0810, + 0x0810, 0x0810, 0x0825, 0x0825, 0x0825, 0x082a, 0x082a, 0x082a, + // Entry 140 - 17F + 0x082a, 0x0837, 0x0837, 0x0837, 0x0837, 0x0837, 0x0848, 0x0848, + 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, 0x0848, + 0x084e, 0x0855, 0x0855, 0x0855, 0x0855, 0x0855, 0x0861, 0x0861, + 0x0861, 0x0866, 0x0866, 0x0866, 0x0866, 0x0866, 0x086d, 0x087b, + 0x087b, 0x087b, 0x087b, 0x087b, 0x087b, 0x0887, 0x0887, 0x0887, + 0x0887, 0x088f, 0x088f, 0x089b, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08aa, 0x08af, 0x08af, 0x08af, + 0x08af, 0x08af, 0x08b4, 0x08b4, 0x08b4, 0x08b4, 0x08b4, 0x08b4, + // Entry 180 - 1BF + 0x08b4, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, + 0x08c0, 0x08c0, 0x08c3, 0x08c3, 0x08c8, 0x08c8, 0x08c8, 0x08c8, + 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08d4, 0x08d4, 0x08d4, + 0x08d4, 0x08d4, 0x08d8, 0x08ef, 0x08ef, 0x08fd, 0x0904, 0x0904, + 0x0904, 0x0904, 0x0904, 0x0911, 0x0911, 0x0911, 0x0918, 0x0918, + 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, 0x091c, + 0x091c, 0x0920, 0x092f, 0x092f, 0x092f, 0x092f, 0x092f, 0x0935, + 0x0935, 0x0935, 0x0935, 0x0935, 0x093b, 0x093b, 0x093f, 0x093f, + // Entry 1C0 - 1FF + 0x093f, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, + 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, + 0x0947, 0x0947, 0x0947, 0x0947, 0x0950, 0x0950, 0x0959, 0x0959, + 0x0959, 0x0959, 0x0959, 0x0959, 0x0959, 0x095e, 0x095e, 0x095e, + 0x095e, 0x095e, 0x095e, 0x0961, 0x0961, 0x0961, 0x0961, 0x0968, + 0x0968, 0x0968, 0x0968, 0x0968, 0x096d, 0x097d, 0x097d, 0x097d, + 0x097d, 0x097d, 0x0981, 0x0981, 0x0981, 0x098c, 0x098c, 0x098c, + 0x0995, 0x0995, 0x0995, 0x0995, 0x0995, 0x0995, 0x09af, 0x09bf, + // Entry 200 - 23F + 0x09d0, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09f2, + 0x09f2, 0x09f2, 0x09f2, 0x09f2, 0x09f2, 0x09f2, 0x09f2, 0x09f2, + 0x09f2, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, + 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, + 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09f6, 0x09fd, 0x09fd, 0x0a17, + 0x0a17, 0x0a17, 0x0a17, 0x0a24, 0x0a27, 0x0a27, 0x0a27, 0x0a27, + 0x0a27, 0x0a27, 0x0a27, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, + 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a30, 0x0a30, 0x0a30, 0x0a30, + // Entry 240 - 27F + 0x0a30, 0x0a30, 0x0a30, 0x0a30, 0x0a30, 0x0a30, 0x0a30, 0x0a51, + 0x0a51, 0x0a6b, 0x0a6b, 0x0a84, 0x0a84, 0x0a98, 0x0ab3, 0x0aca, + 0x0ae0, 0x0af5, 0x0b0a, 0x0b2e, 0x0b46, 0x0b5f, 0x0b5f, 0x0b77, + 0x0b90, 0x0b90, 0x0b9b, 0x0bb4, 0x0bce, 0x0bdc, 0x0bef, 0x0c07, + 0x0c20, 0x0c3b, + }, + }, + { // dua + "duálá", + []uint16{ // 272 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, + }, + }, + { // dyo + "akanamharikarabbelarusbulgaaribengalisekalmangreekangleespañolpersanfran" + + "sehausaenduongruaindoneesiigboitaliensaponeesavaneekmeerkoreemaleesi" + + "birmaninepaleesneerlandepenjabipoloneesportugeesrumeenrusruandasomal" + + "isueditamiltayturkiukrainurduvietnamyorubasinuasulujoola", + []uint16{ // 274 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x0016, 0x001e, + 0x001e, 0x001e, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x002d, 0x002d, 0x002d, 0x002d, 0x0032, 0x0037, 0x0037, 0x003f, + 0x003f, 0x003f, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x004b, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x0050, + 0x0050, 0x0054, 0x0054, 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, + // Entry 40 - 7F + 0x005a, 0x0063, 0x0063, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, + 0x006e, 0x006e, 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, + 0x007c, 0x007c, 0x0081, 0x0081, 0x0086, 0x0086, 0x0086, 0x0086, + 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, + 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, 0x0086, + 0x0086, 0x0086, 0x0086, 0x008d, 0x008d, 0x0094, 0x0094, 0x0094, + 0x009c, 0x009c, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, + 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00ac, 0x00ac, 0x00b4, + // Entry 80 - BF + 0x00b4, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00c3, 0x00c6, 0x00cc, + 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, + 0x00cc, 0x00cc, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, + 0x00d7, 0x00d7, 0x00dc, 0x00dc, 0x00dc, 0x00df, 0x00df, 0x00df, + 0x00df, 0x00df, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00ea, + 0x00ee, 0x00ee, 0x00ee, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, + 0x00f5, 0x00fb, 0x00fb, 0x0100, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + // Entry C0 - FF + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + // Entry 100 - 13F + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0109, + }, + }, + { // dz + "ཨ་ཕར་à½à½¨à½±à½–་à½à¼‹à½Ÿà½²à¼‹à½¡à¼‹à½à½¨à½•à¼‹à½¢à½²à¼‹à½€à½±à½“ས་à½à½¨à½˜à¼‹à½§à¼‹à½¢à½²à½€à¼‹à½à½¨à½ºà¼‹à½¢à¼‹à½–ིཀ་à½à½¨à¼‹à½¦à¼‹à½˜à½²à½¦à¼‹à½à½¨à¼‹à½›à½¢à¼‹à½–ྷའི་ཇཱན" + + "་à½à½–ེལ་ཨ་རུས་à½à½–ཱལ་གེ་རི་ཡཱན་à½à½–ངྒ་ལ་à½à½–ོད་à½à½–ྷོས་ནི་ཡཱན་à½à½€à½ºà¼‹à½Šà¼‹à½£à½±à½“་à½à½…ེཀ" + + "་à½à½à½ºà½£à½¤à¼‹à½à½Œà½ºà¼‹à½“ིཤ་à½à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½‘ི་བེ་ཧི་à½à½¢à¾«à½¼à½„་à½à½‚ྲིཀ་à½à½¨à½²à½„་ལིཤ་à½à½¨à½ºà½¦à¼‹à½”་རཱན་" + + "à½à½¼à¼‹à½à½¨à½²à½¦à¼‹à½”ེ་ནིཤ་à½à½¨à½ºà½¦à¼‹à½Šà½¼à¼‹à½“ི་ཡཱན་à½à½–ཱསཀ་à½à½”ར་ཤི་ཡཱན་à½à½•à½²à¼‹à½“ིཤ་à½à½•à½²à¼‹à½‡à½²à¼‹à½¡à½±à½“་" + + "à½à½•à½±à¼‹à½¢à½¼à¼‹à½¨à½²à½¦à¼‹à½à½•à¾²à½“ཅ་à½à½“ུབ་ཕྼི་སི་ཡན་à½à½¨à½±à½ à½²à¼‹à½¢à½²à½¤à¼‹à½à½‚ལ་ཨིས་ཨི་ཡན་à½à½‚ུ་à½à¼‹à½¢à¼‹à½“ི" + + "་à½à½‚ུ་ཇ་ར་à½à½²à¼‹à½à½§à½à¼‹à½¦à¼‹à½à½§à½ºà¼‹à½–ྲུ་à½à½§à½²à½“་དི་à½à½€à¾²à½¼à¼‹à½¨à½ºà¼‹à½¤à½²à¼‹à½¡à½±à½“་à½à½§à½ºà¼‹à½à½²à¼‹à½¡à½±à½“་à½à½§à½±à½„་ག" + + "ྷ་རི་ཡཱན་à½à½¨à½¢à¼‹à½˜à½²à¼‹à½“ི་ཡཱན་à½à½¨à½²à½“་ཌོ་ནེ་ཤི་ཡཱན་à½à½¨à½²à½‚་བོ་à½à½¨à¼‹à½¡à½²à½¦à¼‹à½£à½ºà½“་ཌིཀ་à½à½¨" + + "ི་ཊ་ལི་ཡཱན་à½à½‡à½±à¼‹à½”ཱ་ནིས་à½à½‡à½±à¼‹à½–་ནིས་à½à½‡à½½à¼‹à½‡à½²à¼‹à½¡à½±à½“་à½à½€à¼‹à½›à½‚ས་à½à½à½ºà¼‹à½˜à½ºà½¢à¼‹à½à½€à¼‹à½“་ཌ་à½" + + "ཀོ་རི་ཡཱན་à½à½€à½±à½¤à¼‹à½˜à½²à¼‹à½¢à½²à¼‹à½à½€à½¢à¼‹à½Œà½²à½¤à¼‹à½à½€à½²à½¢à¼‹à½‚ིས་à½à½£à½ºà¼‹à½Šà½²à½“་à½à½£à½‚་ཛམ་བོརྒ་à½à½£à½±à¼‹à½à½¼à½¦à¼‹" + + "à½à½£à½²à¼‹à½à½´à¼‹à½à½ºà¼‹à½“ི་ཡཱན་à½à½£à½Šà¼‹à½–ི་ཡཱན་à½à½˜à¼‹à½£à¼‹à½‚་སི་à½à½˜à¼‹à½¨à½¼à¼‹à½¢à½²à¼‹à½à½˜à¼‹à½¦à½ºà¼‹à½Œà½¼à¼‹à½“ི་ཡཱན་à½à½˜à¼‹" + + "ལ་ཡ་ལམ་à½à½˜à¼‹à½¢à¼‹à½à½²à¼‹à½à½˜à¼‹à½£à½ºà¼‹à½à½˜à½±à½£à¼‹à½Šà¼‹à½à½–ར་མིས་à½à½“ེ་པཱལི་à½à½Œà½†à¼‹à½à½“ོར་à½à½ºà¼‹à½‡à½²à¼‹à½¡à½±à½“་ནོ" + + "རསཀ་à½à½“ོར་à½à½ºà¼‹à½‡à½²à¼‹à½¡à½±à½“་བོཀ་མཱལ་à½à½¨à½¼à¼‹à½¢à½²à¼‹à½¡à¼‹à½à½”ཱན་ཇ་བི་à½à½”ོ་ལིཤ་à½à½”ཱཤ་à½à½¼à¼‹à½à½”ོར" + + "་ཅུ་གིས་à½à½€à¾­à½ºà¼‹à½†à½´à¼‹à½¨à¼‹à½à½¢à½¼à¼‹à½˜à½ºà¼‹à½“ིཤ་à½à½¢à½¼à¼‹à½˜à½ºà¼‹à½“ི་ཡཱན་à½à½¨à½´à¼‹à½¢à½´à¼‹à½¦à½´à½ à½²à¼‹à½à½¦à½¾à½¦à¾à¾²à¾€à½à¼‹à½à½¦" + + "ིན་དཱི་à½à½¦à½²à½„་ཧ་ལ་à½à½¦à½´à¼‹à½£à½¼à¼‹à½–ཱཀ་à½à½¦à½´à¼‹à½£à½¼à¼‹à½–ི་ནི་ཡཱན་à½à½¦à½¼à¼‹à½˜à¼‹à½£à½²à¼‹à½à½¨à½±à½£à¼‹à½–ེ་ནི་ཡཱ" + + "ན་à½à½¦à½±à½¢à¼‹à½–ྷི་ཡཱན་à½à½¦à½±à½´à½“་ད་ནིས་à½à½¦à½´à½ à½²à¼‹à½Œà½²à½¤à¼‹à½à½¦à¾­à½±à¼‹à½§à½²à¼‹à½£à½²à¼‹à½à½à¼‹à½˜à½²à½£à¼‹à½à½à½ºà¼‹à½£à½´à¼‹à½‚ུ་à½" + + "à½à¼‹à½‡à½²à½€à¼‹à½à½à½±à½ à½²à¼‹à½à½à½²à½‚་རི་ཉ་à½à½Šà½±à½¢à½€à¼‹à½˜à½ºà½“་à½à½Šà½¼à½„་གྷན་à½à½Šà½±à½¢à¼‹à½€à½²à½¤à¼‹à½à½Šà¼‹à½Šà½¢à¼‹à½à½à½²à¼‹à½‚ུར་à½à½¡" + + "ུ་ཀེ་རེ་ནི་ཡཱན་à½à½¨à½´à½¢à¼‹à½‘ུ་à½à½¨à½´à½¦à¼‹à½–ེཀ་à½à½–ེཊ་ནཱ་མིས་à½à½à½¼à¼‹à½£à½¼à½•à¼‹à½à½žà½¼à¼‹à½¦à¼‹à½à½¡à½¼à¼‹à½¢à½´à¼‹à½–" + + "་à½à½¢à¾’ྱ་མི་à½à½Ÿà½´à¼‹à½£à½´à¼‹à½à½‘་ཀོ་à½à¼‹à½à½•à½²à¼‹à½£à½²à¼‹à½”ི་ནོ་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½§à¼‹à½à¼‹à½¡à½²à½ à½²à¼‹à½à½€à¼‹" + + "ཆིན་à½à½€à½¼à¼‹à½¢à½¼à¼‹à½à½˜à½“་ཇུ་à½à½¤à½±à½“་à½à½à¼‹à½„ོ་མ་ཤེསཔསà¾à½‘་རིག་ནང་དོན་མེདཔཨཱོས་ཊྲི་ཡཱན" + + "་ཇཱར་མཱན་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹à½‚ི་མà½à½¼à¼‹à½¦à½ à½²à¼‹à½‡à½±à½¢à¼‹à½˜à½±à½“་à½à½¨à½±à½¼à½¦à¼‹à½Šà¾²à½ºà¼‹à½£à½²à¼‹à½¡à½±à½“་ཨིང་ལིཤ་à½à½€à½ºà¼‹à½“" + + "་ཌི་ཡཱན་ཨིང་ལིཤ་à½à½–ྲི་ཊིཤ་ཨིང་ལིཤ་à½à½¡à½´à¼‹à½¨à½ºà½¦à¼‹à½¨à½²à½„་ལིཤ་à½à½£à½ºà¼‹à½Šà½²à½“་ཨ་མེ་རི་ཀ" + + "ཱན་གི་ཨིས་པེ་ནིཤ་à½à½¡à½´à¼‹à½¢à½¼à½–་ཀྱི་ཨིས་པེ་ནིཤ་à½à½€à½ºà¼‹à½“་ཌི་ཡཱན་ཕྲནཅ་à½à½¦à½´à¼‹à½¡à½²à½¦à¼‹" + + "ཕྲནཅ་à½à½•à¾·à½ºà½£à½ºà¼‹à½˜à½²à½¤à¼‹à½à½–ྲ་ཛི་ལི་ཡཱན་པོར་ཅུ་གིས་à½à½¨à½²à¼‹à½–ེ་རི་ཡཱན་པོར་ཅུ་གིས་" + + "à½à½¢à¾’ྱ་མི་à½à¼‹à½ à½‡à½˜à¼‹à½¦à½„མསྔ་དུས་ཀྱི་རྒྱ་མི་à½", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0036, 0x0036, 0x005a, 0x005a, 0x0078, 0x0078, + 0x0096, 0x00b1, 0x00b1, 0x00b1, 0x00de, 0x00de, 0x00ff, 0x012c, + 0x012c, 0x012c, 0x0141, 0x0150, 0x0150, 0x0177, 0x0195, 0x0195, + 0x0195, 0x0195, 0x0195, 0x01a4, 0x01a4, 0x01a4, 0x01b6, 0x01ce, + 0x01e9, 0x0207, 0x0219, 0x0219, 0x022b, 0x0246, 0x0270, 0x0294, + 0x02c1, 0x02d3, 0x02f4, 0x02f4, 0x030c, 0x032d, 0x034e, 0x0360, + 0x038d, 0x03ab, 0x03ab, 0x03d5, 0x03f6, 0x0417, 0x0417, 0x0429, + 0x0441, 0x0459, 0x0459, 0x0486, 0x04a7, 0x04d4, 0x04fe, 0x04fe, + // Entry 40 - 7F + 0x04fe, 0x0534, 0x0534, 0x054c, 0x054c, 0x054c, 0x054c, 0x0579, + 0x05a0, 0x05a0, 0x05c1, 0x05df, 0x0600, 0x0600, 0x0600, 0x0600, + 0x0615, 0x0615, 0x062d, 0x0642, 0x0663, 0x0663, 0x0684, 0x069c, + 0x069c, 0x069c, 0x06b7, 0x06cf, 0x06f3, 0x06f3, 0x06f3, 0x06f3, + 0x070b, 0x073e, 0x073e, 0x075f, 0x077d, 0x077d, 0x0798, 0x07c8, + 0x07e6, 0x07e6, 0x07fe, 0x0810, 0x0825, 0x083d, 0x083d, 0x083d, + 0x0858, 0x0858, 0x0864, 0x08a3, 0x08e8, 0x08e8, 0x08e8, 0x08e8, + 0x08e8, 0x08e8, 0x08e8, 0x0903, 0x0903, 0x0921, 0x0921, 0x0939, + // Entry 80 - BF + 0x0951, 0x0975, 0x0993, 0x09b4, 0x09b4, 0x09de, 0x0a02, 0x0a02, + 0x0a1d, 0x0a1d, 0x0a38, 0x0a38, 0x0a38, 0x0a53, 0x0a74, 0x0aa7, + 0x0aa7, 0x0aa7, 0x0ac2, 0x0aef, 0x0b16, 0x0b16, 0x0b16, 0x0b3a, + 0x0b58, 0x0b79, 0x0b8e, 0x0bac, 0x0bc1, 0x0bd3, 0x0bf1, 0x0c0f, + 0x0c0f, 0x0c2a, 0x0c45, 0x0c45, 0x0c57, 0x0c57, 0x0c6f, 0x0ca2, + 0x0cba, 0x0cd5, 0x0cd5, 0x0cf9, 0x0cf9, 0x0cf9, 0x0d11, 0x0d23, + 0x0d23, 0x0d3e, 0x0d3e, 0x0d56, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + // Entry C0 - FF + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, + // Entry 100 - 13F + 0x0d6b, 0x0d6b, 0x0d6b, 0x0d6b, 0x0d83, 0x0d83, 0x0d83, 0x0d83, + 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, + 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, + 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0d83, 0x0daa, + 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, + 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, + 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, 0x0daa, + 0x0daa, 0x0daa, 0x0dda, 0x0dda, 0x0dda, 0x0dda, 0x0dda, 0x0dda, + // Entry 140 - 17F + 0x0dda, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, + 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, + 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0df8, 0x0e0d, + 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, 0x0e0d, + 0x0e0d, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + // Entry 180 - 1BF + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, 0x0e22, + 0x0e22, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + // Entry 1C0 - 1FF + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + // Entry 200 - 23F + 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, 0x0e46, + 0x0e46, 0x0e46, 0x0e46, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, + 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, + 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, + // Entry 240 - 27F + 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, 0x0e67, + 0x0e67, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ee2, 0x0f33, 0x0f7e, + 0x0fbd, 0x0ff0, 0x1020, 0x1086, 0x10cb, 0x10cb, 0x10cb, 0x1101, + 0x1128, 0x1128, 0x1149, 0x1194, 0x11df, 0x11df, 0x11df, 0x11df, + 0x120f, 0x1248, + }, + }, + { // ebu + "KÄ©akanKÄ©amhariKÄ©arabuKÄ©mbelarusiKÄ©bulgariaKÄ©banglaKÄ©chekiKÄ©njeremaniKÄ©ng" + + "rikiKÄ©thunguKÄ©hispaniaKÄ©anjemiKÄ©faransaKÄ©hausaKÄ©hindÄ©KÄ©hungariKÄ©indo" + + "nesiaKÄ©igboKÄ©italianoKÄ©njapaniKÄ©javaKÄ©kambodiaKÄ©koreaKÄ©malesiaKÄ©burm" + + "aKÄ©nepaliKÄ©holanziKÄ©punjabiKÄ©polandiKÄ©renoKÄ©romaniaKÄ©rusiKÄ©nyarwanda" + + "KÄ©somaliKÄ©swidiKÄ©tamilKÄ©tailandiKÄ©turukiKÄ©ukraniaKÄ©urduKÄ©vietinamuKÄ©" + + "yorubaKÄ©chinaKÄ©zuluKÄ©embu", + []uint16{ // 277 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0024, 0x002f, + 0x002f, 0x002f, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x004c, 0x004c, 0x004c, 0x004c, 0x0055, 0x005e, 0x005e, 0x0069, + 0x0069, 0x0069, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x007c, + 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x0084, + 0x0084, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00b5, 0x00b5, 0x00bf, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00d1, 0x00d1, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00eb, 0x00eb, 0x00eb, + 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, + 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0112, + // Entry 80 - BF + 0x0112, 0x0119, 0x0119, 0x0119, 0x0119, 0x0123, 0x012a, 0x0136, + 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, + 0x0136, 0x0136, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0163, 0x0163, 0x0163, 0x0163, 0x0163, 0x016d, + 0x0174, 0x0174, 0x0174, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0189, 0x0189, 0x0191, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + // Entry C0 - FF + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + // Entry 100 - 13F + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x0198, 0x0198, 0x019f, + }, + }, + { // ee + "abkhaziagbeafrikaangbeblugbeamhariagbeArabiagbeassamegbeaymargbeazerbaij" + + "angbebelarusiagbebulgariagbebambaragbeBengaligbetibetagbebretongbebo" + + "sniagbekatalagbetsÉ›kgbewalesgbedenmarkgbeGermaniagbedivehgbedzongkha" + + "gbeEÊ‹egbegrisigbeYevugbeesperantogbeSpanishgbeestoniagbebasqugbepers" + + "iagbefinlanÉ–gbefidzigbeFransegbeirelanÉ–gbegalatagbeguarangbegujarati" + + "hausagbehebrigbeHindigbekroatiagbehaitigbehungarigbearmeniagbeIndone" + + "siagbeigbogbeicelanÉ–gbeItaliagbeJapangbedzavangbegÉ”giagbekazakhstang" + + "bekhmergbekannadagbeKoreagbekashmirgbekurdiagbekirghistangbelatinlak" + + "sembÉ”ggbelingalalaogbelithuaniagbelatviagbemalagasegbemaorgbemakedon" + + "iagbemalayagbemongoliagbemarathiagbemalaygbemaltagbeburmagbedziehe n" + + "debelegbenepalgbeHollandgbenÉ”weigbe ninÉ”sknÉ”weigbe bokmÃ¥lnyanjagbeor" + + "iyagbeossetiagbepundzabgbePolishgbepashtogbePortuguesegbekwetsuagber" + + "omanshgberundigberomaniagbeRussiagberuwandagbesanskrigbesindhgbedzie" + + "he samigbesangogbesinhalgbeslovakiagbesloveniagbesamoagbeshonagbesom" + + "aliagbealbaniagbeserbiagbeswatgbeanyiehe sothogbeswedengbeswahilitam" + + "ilgbetelegugbetadzikistangbeThailandgbetigrinyagbetÉ›kmengbetswanagbe" + + "tongagbeTurkishgbetsongagbetahitigbeuighurgbeukraingbeurdugbeuzbekis" + + "tangbevendagbevietnamgbewolofgbexhosagbeyorubagbeChinagbezulugbeaghe" + + "mgbeasagbebembagbebenagbebodogbeembugbeefigbefilipingbeswizerlanÉ–tÉ”w" + + "o Æ’e germaniagbehawaigbecape verdegbelahndagbeluyiagbegbegbÉ”gblÉ” sÉ”g" + + "bÉ”wodziehe sothogberombogberwagbesakagbekomorogbetetumgbetok pisigbe" + + "gbegbÉ”gblÉ” manyawalsegbecantongbegbegbÉ”gblÉ” manÉ”meeGermaniagbe (Aust" + + "ria)Germaniagbe (Switzerland)Yevugbe (Australia)Yevugbe (Canada)Yevu" + + "gbe (Britain)Yevugbe (America)Spanishgbe (Latin America)Spanishgbe (" + + "Europe)Spanishgbe (Mexico)Fransegbe (Canada)Fransegbe (Switzerland)F" + + "lemishgbePortuguesegbe (Brazil)Portuguesegbe (Europe)serbo-croatiagb" + + "etsainagbeblema tsainagbe", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000b, 0x000b, 0x0016, 0x001c, 0x0026, 0x0026, + 0x002f, 0x0038, 0x0038, 0x0040, 0x004d, 0x004d, 0x0059, 0x0064, + 0x0064, 0x006e, 0x0078, 0x0081, 0x008a, 0x0093, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x00a4, 0x00a4, 0x00a4, 0x00ac, 0x00b6, + 0x00c1, 0x00c9, 0x00d4, 0x00db, 0x00e3, 0x00ea, 0x00f6, 0x0100, + 0x010a, 0x0112, 0x011b, 0x011b, 0x0126, 0x012e, 0x012e, 0x0137, + 0x0137, 0x0142, 0x0142, 0x014b, 0x0154, 0x015c, 0x015c, 0x0164, + 0x016c, 0x0174, 0x0174, 0x017e, 0x0186, 0x0190, 0x019a, 0x019a, + // Entry 40 - 7F + 0x019a, 0x01a6, 0x01a6, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01b8, + 0x01c1, 0x01c1, 0x01c9, 0x01d2, 0x01db, 0x01db, 0x01db, 0x01db, + 0x01e8, 0x01e8, 0x01f0, 0x01fa, 0x0202, 0x0202, 0x020c, 0x0215, + 0x0215, 0x0215, 0x0222, 0x0227, 0x0234, 0x0234, 0x0234, 0x023b, + 0x0241, 0x024d, 0x024d, 0x0256, 0x0261, 0x0261, 0x0268, 0x0274, + 0x027d, 0x0288, 0x0293, 0x029b, 0x02a3, 0x02ab, 0x02ab, 0x02bc, + 0x02c4, 0x02c4, 0x02ce, 0x02df, 0x02f0, 0x02f0, 0x02f0, 0x02f9, + 0x02f9, 0x02f9, 0x02f9, 0x0301, 0x030b, 0x0315, 0x0315, 0x031e, + // Entry 80 - BF + 0x0327, 0x0334, 0x033e, 0x0348, 0x0350, 0x035a, 0x0363, 0x036d, + 0x0377, 0x0377, 0x037f, 0x038d, 0x0395, 0x039e, 0x03a9, 0x03b4, + 0x03bc, 0x03c4, 0x03ce, 0x03d8, 0x03e1, 0x03e8, 0x03f8, 0x03f8, + 0x0401, 0x0408, 0x0410, 0x0419, 0x0427, 0x0432, 0x043d, 0x0447, + 0x0450, 0x0458, 0x0462, 0x046b, 0x046b, 0x0474, 0x047d, 0x0486, + 0x048d, 0x049a, 0x04a2, 0x04ac, 0x04ac, 0x04ac, 0x04b4, 0x04bc, + 0x04bc, 0x04c5, 0x04c5, 0x04cd, 0x04d4, 0x04d4, 0x04d4, 0x04d4, + 0x04d4, 0x04d4, 0x04d4, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, + // Entry C0 - FF + 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, + 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04e2, 0x04e2, 0x04e2, 0x04e2, + 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e2, 0x04e2, + 0x04e2, 0x04ea, 0x04ea, 0x04f1, 0x04f1, 0x04f1, 0x04f1, 0x04f1, + 0x04f1, 0x04f1, 0x04f1, 0x04f1, 0x04f1, 0x04f1, 0x04f1, 0x04f1, + 0x04f1, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, + // Entry 100 - 13F + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04ff, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x050f, + 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, + 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, + 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, 0x050f, + 0x050f, 0x050f, 0x052f, 0x052f, 0x052f, 0x052f, 0x052f, 0x052f, + // Entry 140 - 17F + 0x052f, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, + 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, + 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, + 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0537, 0x0544, + 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, + 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, + 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, 0x0544, + 0x0544, 0x0544, 0x0544, 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, + // Entry 180 - 1BF + 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, 0x054d, + 0x054d, 0x054d, 0x054d, 0x054d, 0x0555, 0x0555, 0x0555, 0x0555, + 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, + 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, + 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x056b, + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x057a, 0x057a, 0x057a, + // Entry 1C0 - 1FF + 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, + 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, + 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, + 0x057a, 0x057a, 0x057a, 0x057a, 0x057a, 0x0582, 0x0582, 0x0582, + 0x0582, 0x0582, 0x0582, 0x0588, 0x0588, 0x058f, 0x058f, 0x058f, + 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, + 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, + 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, + // Entry 200 - 23F + 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, 0x058f, + 0x058f, 0x058f, 0x058f, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, + 0x0598, 0x0598, 0x0598, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05ab, 0x05ab, 0x05ab, + 0x05ab, 0x05ab, 0x05ab, 0x05ab, 0x05ab, 0x05ab, 0x05ab, 0x05ab, + 0x05ab, 0x05ab, 0x05ab, 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05bd, + 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05c5, 0x05c5, 0x05c5, 0x05c5, + 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05c5, + // Entry 240 - 27F + 0x05c5, 0x05c5, 0x05ce, 0x05ce, 0x05ce, 0x05ce, 0x05ce, 0x05ce, + 0x05ce, 0x05e3, 0x05e3, 0x05e3, 0x05e3, 0x05f8, 0x0611, 0x0624, + 0x0634, 0x0645, 0x0656, 0x0670, 0x0683, 0x0696, 0x0696, 0x06a8, + 0x06bf, 0x06bf, 0x06c9, 0x06df, 0x06f5, 0x06f5, 0x0705, 0x0705, + 0x070e, 0x071d, + }, + }, + { // el + elLangStr, + elLangIdx, + }, + { // en + enLangStr, + enLangIdx, + }, + { // en-AU + "BamumUnited States EnglishMoldovan", + []uint16{ // 606 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 100 - 13F + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 140 - 17F + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 180 - 1BF + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 1C0 - 1FF + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 200 - 23F + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 240 - 27F + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x0022, + }, + }, + { // en-GB + enGBLangStr, + enGBLangIdx, + }, + { // en-NZ + "MÄori", + []uint16{ // 103 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, + }, + }, + { // eo + "afaraabÄ¥azaafrikansatwamharaarabaasamaajmaraazerbajÄanabaÅkirabelorusabu" + + "lgarabislamobengalatibetabretonabosniakatalunakorsikaĉeÄ¥akimradanage" + + "rmanamahladzonkogrekaanglaesperantohispanaestonaeÅ­skapersafinnafiÄia" + + "feroafrancafrisairlandagaelagalegagvaraniaguÄaratahaÅ­sahebreahindakr" + + "oatahaitia kreolahungaraarmenainterlingvaoindoneziaokcidentaloeskima" + + "islandaitalainuitajapanajavakartvelakazaÄ¥agronlandakmerakanarakoreak" + + "aÅmirakurdakirgizalatinoluksemburgalingalalaÅ­alitovalatvamalagasamao" + + "riamakedonamalajalamamongolamaratamalajamaltabirmanauranepalanederla" + + "ndanovnorvegadannorvegaokcitanaoromaorijopanÄabapolapaÅtoaportugalak" + + "eĉuaromanĉaburundarumanarusaruandasanskritosindasangoasinhalaslovaka" + + "slovenasamoaÅonasomalaalbanaserbasvaziasotasundasvedasvahilatamilate" + + "luguataÄikatajatigrajaturkmenacvanatongaaturkacongatataraujguraukrai" + + "naurduouzbekavjetnamavolapukovolofaksosajidajorubaÄuangaĉinazuluaibi" + + "bioefikafilipinahavajaklingonanekonata lingvonelingvaĵobrazilportuga" + + "laeÅ­ropportugalaserbo-Kroataĉina simpligitaĉina tradicia", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x000c, 0x000c, 0x0015, 0x0017, 0x001d, 0x001d, + 0x0022, 0x0027, 0x0027, 0x002d, 0x0039, 0x0041, 0x0049, 0x0050, + 0x0057, 0x0057, 0x005e, 0x0064, 0x006b, 0x0071, 0x0079, 0x0079, + 0x0079, 0x0080, 0x0080, 0x0086, 0x0086, 0x0086, 0x008b, 0x008f, + 0x0096, 0x009b, 0x00a1, 0x00a1, 0x00a6, 0x00ab, 0x00b4, 0x00bb, + 0x00c1, 0x00c7, 0x00cc, 0x00cc, 0x00d1, 0x00d7, 0x00dc, 0x00e2, + 0x00e7, 0x00ee, 0x00f3, 0x00f9, 0x0101, 0x010a, 0x010a, 0x0110, + 0x0116, 0x011b, 0x011b, 0x0121, 0x012e, 0x0135, 0x013b, 0x013b, + // Entry 40 - 7F + 0x0147, 0x0150, 0x015b, 0x015b, 0x015b, 0x0161, 0x0161, 0x0168, + 0x016d, 0x0173, 0x0179, 0x017d, 0x0185, 0x0185, 0x0185, 0x0185, + 0x018c, 0x0195, 0x019a, 0x01a0, 0x01a5, 0x01a5, 0x01ad, 0x01b2, + 0x01b2, 0x01b2, 0x01b9, 0x01bf, 0x01ca, 0x01ca, 0x01ca, 0x01d1, + 0x01d6, 0x01dc, 0x01dc, 0x01e1, 0x01e9, 0x01e9, 0x01ef, 0x01f7, + 0x0201, 0x0208, 0x020e, 0x0214, 0x0219, 0x021e, 0x0223, 0x0223, + 0x0229, 0x0229, 0x0233, 0x023d, 0x0247, 0x0247, 0x0247, 0x0247, + 0x024f, 0x024f, 0x0254, 0x0259, 0x0259, 0x0261, 0x0261, 0x0265, + // Entry 80 - BF + 0x026c, 0x0275, 0x027b, 0x0283, 0x028a, 0x0290, 0x0294, 0x029a, + 0x02a3, 0x02a3, 0x02a8, 0x02a8, 0x02ae, 0x02b5, 0x02bc, 0x02c3, + 0x02c8, 0x02cd, 0x02d3, 0x02d9, 0x02de, 0x02e4, 0x02e8, 0x02ed, + 0x02f2, 0x02f9, 0x02ff, 0x0306, 0x030d, 0x0311, 0x0318, 0x0320, + 0x0325, 0x032b, 0x0330, 0x0335, 0x033b, 0x033b, 0x0341, 0x0348, + 0x034d, 0x0353, 0x0353, 0x035b, 0x0363, 0x0363, 0x0369, 0x036e, + 0x0372, 0x0378, 0x037f, 0x0384, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + // Entry C0 - FF + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + // Entry 100 - 13F + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0394, 0x0394, 0x0394, + 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x0394, 0x039c, + 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, + 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, + 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, + 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, + // Entry 140 - 17F + 0x039c, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + // Entry 180 - 1BF + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + // Entry 1C0 - 1FF + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + // Entry 200 - 23F + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, 0x03a2, + 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, + 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, 0x03aa, + 0x03aa, 0x03aa, 0x03aa, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, + 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, + 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, + // Entry 240 - 27F + 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, 0x03b9, + 0x03b9, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, + 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, 0x03c4, + 0x03c4, 0x03c4, 0x03c4, 0x03d3, 0x03e2, 0x03e2, 0x03ee, 0x03ee, + 0x03fe, 0x040c, + }, + }, + { // es + esLangStr, + esLangIdx, + }, + { // es-419 + es419LangStr, + es419LangIdx, + }, + {}, // es-CL + { // es-MX + "bashkir", + []uint16{ // 14 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, + }, + }, + { // et + etLangStr, + etLangIdx, + }, + { // eu + "abkhazeraafrikaansaakaneraamhareraarabieraassameraaimaraazerbaijanerabas" + + "hkirrerabielorrusierabulgarierabambarerabengaleratibeterabretoierabo" + + "snierakatalanakorsikeratxekieragaleseradanieraalemanadivehieradzongk" + + "haeweeragrezieraingelesaesperantoaespainieraestonieraeuskarapersiera" + + "finlandierafijierafaroerafrantsesafrisieragaelikoaeskoziako gaelikoa" + + "galizieraguaranieragujarateramanxerahausahebreerahindiakroazierahait" + + "ierahungarieraarmenieraInterlinguaindonesierainterlingueigboerasichu" + + "an yiaislandieraitalierainuiterajaponierajaverageorgieraKikongoakiku" + + "yuerakazakherakalaallisuterakhemererakannaderakoreerakashmirerakurdu" + + "erakornubierakirgizeralatinaluxenburgeraganderalingalalaoseralituani" + + "eraluba-katangeraletonieramalagasyeramaorieramazedonieramalayalamera" + + "mongolieramaratheramalaysieramalteraburmatarraiparraldeko ndebeleera" + + "nepaleranederlanderanynorsk norvegierabokmala (Norvegia)nyanjaOkzita" + + "nieraoromoeraoriyeraosetierapunjaberapolonierapaxtueraportugesaquech" + + "ueraerromantxerarundieraerrumanieraerrusierakinyaruandasanskritoasin" + + "dhiaiparraldeko samierasangoerasinhalaeslovakieraeslovenierasamoeras" + + "honerasomalieraalbanieraserbieraswatierahegoaldeko sothoerasundanera" + + "suedieraswahilitamileratelugueratajikistanerathailandieratigriñeratu" + + "rkmenieratswaneratongeraturkieratsongeratatareratahitierauigurrerauk" + + "raineraurduauzbekeravenderavietnamerawoloferaxhoseraJiddishayorubera" + + "txinerazulueraAcholieraaghemeramaputxeaasuabemberabenerabodoerachige" + + "ratxerokierasoranierataiterazarmerabehe-sorabieradualerafonyi jolera" + + "embuaefikeratagalogaGagagauzeraalemana (Suitza)gusiierahawaiieragoi-" + + "sorabierangombamachamerakabilerakamberamakonderaCabo Verdeko kreolak" + + "oyra chiinierakalenjinerakomi-permyakerakonkanierashambalerabafieral" + + "angieralakoteraLozieraLuba-lulualuoeraluhyeramasaieramerueraMauritan" + + "iako kreoleramakhuwa-meettoerameteramohawkeramudangerahizkuntza anit" + + "zaknamerakwasieran’koerapedieranuereraankolerak’iche’raromboerarwaer" + + "asamburuerasanguerasenerakoyraboro senniatachelhitahegoaldeko samier" + + "aLule samieraInari samieraSkolt samieratesoeratetumaKlingoneratok pi" + + "sinaTumbukeratasawaqaMaroko erdialdeko tamazightahizkuntza ezezaguna" + + "vaieravunjoasogeratamazight estandarraez dago eduki linguistikorikar" + + "abiera moderno estandarraaleman garaia (Suitza)ingelesa (AEB)espaini" + + "era (Europa)flandrieraportugesa (Europa)serbokroazieraKongoko swahil" + + "iatxinera soilduatxinera tradizionala", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x001a, 0x0022, 0x0022, + 0x002a, 0x0032, 0x0032, 0x0038, 0x0045, 0x0050, 0x005d, 0x0067, + 0x0067, 0x0070, 0x0079, 0x0081, 0x008a, 0x0092, 0x009a, 0x009a, + 0x009a, 0x00a3, 0x00a3, 0x00ab, 0x00ab, 0x00ab, 0x00b3, 0x00ba, + 0x00c1, 0x00ca, 0x00d2, 0x00d8, 0x00e0, 0x00e8, 0x00f2, 0x00fc, + 0x0105, 0x010c, 0x0114, 0x0114, 0x011f, 0x0126, 0x012d, 0x0136, + 0x013e, 0x0146, 0x0158, 0x0161, 0x016b, 0x0175, 0x017c, 0x0181, + 0x0189, 0x018f, 0x018f, 0x0198, 0x01a0, 0x01aa, 0x01b3, 0x01b3, + // Entry 40 - 7F + 0x01be, 0x01c9, 0x01d4, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01f0, + 0x01f8, 0x0200, 0x0209, 0x020f, 0x0218, 0x0220, 0x0229, 0x0229, + 0x0232, 0x0240, 0x0249, 0x0252, 0x0259, 0x0259, 0x0263, 0x026b, + 0x026b, 0x0275, 0x027e, 0x0284, 0x0290, 0x0297, 0x0297, 0x029e, + 0x02a5, 0x02af, 0x02bd, 0x02c6, 0x02d1, 0x02d1, 0x02d9, 0x02e4, + 0x02f0, 0x02fa, 0x0303, 0x030d, 0x0314, 0x031e, 0x031e, 0x0334, + 0x033c, 0x033c, 0x0348, 0x035a, 0x036c, 0x036c, 0x036c, 0x0372, + 0x037d, 0x037d, 0x0385, 0x038c, 0x0394, 0x039d, 0x039d, 0x03a6, + // Entry 80 - BF + 0x03ae, 0x03b7, 0x03c0, 0x03cc, 0x03d4, 0x03df, 0x03e8, 0x03f3, + 0x03fd, 0x03fd, 0x0404, 0x0417, 0x041f, 0x0426, 0x0431, 0x043c, + 0x0443, 0x044a, 0x0453, 0x045c, 0x0464, 0x046c, 0x047f, 0x0488, + 0x0490, 0x0497, 0x049f, 0x04a8, 0x04b5, 0x04c1, 0x04cb, 0x04d6, + 0x04de, 0x04e5, 0x04ed, 0x04f5, 0x04fd, 0x0506, 0x050f, 0x0518, + 0x051d, 0x0525, 0x052c, 0x0536, 0x0536, 0x0536, 0x053e, 0x0545, + 0x054d, 0x0555, 0x0555, 0x055c, 0x0563, 0x0563, 0x056c, 0x056c, + 0x056c, 0x056c, 0x056c, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, + // Entry C0 - FF + 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x057c, 0x057c, 0x057c, + 0x057c, 0x057c, 0x057c, 0x057c, 0x0580, 0x0580, 0x0580, 0x0580, + 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, 0x0580, + 0x0580, 0x0587, 0x0587, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, + 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, 0x058d, + 0x058d, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, + 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x059b, 0x059b, 0x059b, + 0x059b, 0x059b, 0x059b, 0x059b, 0x059b, 0x05a5, 0x05a5, 0x05ae, + // Entry 100 - 13F + 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05b5, 0x05b5, + 0x05b5, 0x05b5, 0x05b5, 0x05bc, 0x05bc, 0x05ca, 0x05ca, 0x05d1, + 0x05d1, 0x05dd, 0x05dd, 0x05dd, 0x05e2, 0x05e9, 0x05e9, 0x05e9, + 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05f1, + 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, 0x05f1, + 0x05f1, 0x05f3, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, + 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, 0x05fc, + 0x05fc, 0x05fc, 0x060c, 0x060c, 0x060c, 0x0614, 0x0614, 0x0614, + // Entry 140 - 17F + 0x0614, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x062a, 0x062a, + 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, 0x062a, + 0x0630, 0x0639, 0x0639, 0x0639, 0x0639, 0x0639, 0x0641, 0x0641, + 0x0641, 0x0648, 0x0648, 0x0648, 0x0648, 0x0648, 0x0651, 0x0664, + 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0673, 0x0673, 0x0673, + 0x0673, 0x067e, 0x067e, 0x068d, 0x0697, 0x0697, 0x0697, 0x0697, + 0x0697, 0x0697, 0x0697, 0x0697, 0x06a1, 0x06a8, 0x06a8, 0x06a8, + 0x06a8, 0x06a8, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, 0x06b0, + // Entry 180 - 1BF + 0x06b0, 0x06b8, 0x06b8, 0x06b8, 0x06bf, 0x06bf, 0x06bf, 0x06c9, + 0x06c9, 0x06c9, 0x06cf, 0x06cf, 0x06d6, 0x06d6, 0x06d6, 0x06d6, + 0x06d6, 0x06d6, 0x06d6, 0x06d6, 0x06d6, 0x06de, 0x06de, 0x06de, + 0x06de, 0x06de, 0x06e5, 0x06fa, 0x06fa, 0x070b, 0x0711, 0x0711, + 0x0711, 0x0711, 0x0711, 0x071a, 0x071a, 0x071a, 0x0723, 0x0734, + 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, 0x0734, + 0x0734, 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, 0x0742, + 0x0742, 0x0742, 0x0742, 0x0742, 0x074b, 0x0752, 0x0759, 0x0759, + // Entry 1C0 - 1FF + 0x0759, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, + 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, + 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x0761, 0x076e, 0x076e, + 0x076e, 0x076e, 0x076e, 0x076e, 0x076e, 0x0776, 0x0776, 0x0776, + 0x0776, 0x0776, 0x0776, 0x077c, 0x077c, 0x077c, 0x077c, 0x0786, + 0x0786, 0x0786, 0x0786, 0x0786, 0x078e, 0x078e, 0x078e, 0x078e, + 0x078e, 0x078e, 0x0794, 0x0794, 0x0794, 0x07a4, 0x07a4, 0x07a4, + 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07c0, 0x07cc, + // Entry 200 - 23F + 0x07d9, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, + 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, 0x07e6, + 0x07e6, 0x07ed, 0x07ed, 0x07f3, 0x07f3, 0x07f3, 0x07f3, 0x07f3, + 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x0807, 0x0807, 0x0807, + 0x0807, 0x0807, 0x0807, 0x0810, 0x0810, 0x0818, 0x0818, 0x0834, + 0x0834, 0x0834, 0x0834, 0x0847, 0x084d, 0x084d, 0x084d, 0x084d, + 0x084d, 0x084d, 0x084d, 0x0853, 0x0853, 0x0853, 0x0853, 0x0853, + 0x0853, 0x0853, 0x0853, 0x0853, 0x0859, 0x0859, 0x0859, 0x0859, + // Entry 240 - 27F + 0x0859, 0x0859, 0x0859, 0x0859, 0x0859, 0x0859, 0x0859, 0x086d, + 0x086d, 0x0889, 0x0889, 0x08a4, 0x08a4, 0x08a4, 0x08ba, 0x08ba, + 0x08ba, 0x08ba, 0x08c8, 0x08c8, 0x08db, 0x08db, 0x08db, 0x08db, + 0x08db, 0x08db, 0x08e5, 0x08e5, 0x08f7, 0x08f7, 0x0905, 0x0915, + 0x0924, 0x0938, + }, + }, + { // ewo + "ǸkÉ”ÌbÉ” akánǸkÉ”ÌbÉ” amáriaǸkÉ”ÌbÉ” arábiaǸkÉ”ÌbÉ” belarúsianǸkÉ”ÌbÉ” bulÉ™gárianǸ" + + "kÉ”ÌbÉ” bÉ›ngalíǸkÉ”ÌbÉ” tsÉ›ÌgǸkÉ”ÌbÉ” ndzámanǸkÉ”ÌbÉ” gÉ™lÉ›ÌgǸkÉ”ÌbÉ” éngÉ™lísǹk" + + "É”ÌbÉ” kpÉ™nyáǹkÉ”ÌbÉ” fÉ›ÌrÉ™sianǸkÉ”ÌbÉ” fulÉ›nsíǸkÉ”ÌbÉ” aúsáǸkÉ”ÌbÉ” hindíǸkÉ”" + + "ÌbÉ” ungáríanǸkÉ”ÌbÉ” É›ndonésianǸkÉ”ÌbÉ” ibóǸkÉ”ÌbÉ” etáliÉ›nǸkÉ”ÌbÉ” hapÉ”ÌnǸ" + + "kÉ”ÌbÉ” havanísǸkÉ”ÌbÉ” kÉ™mÉ›ÌrǸkÉ”ÌbÉ” koréanǸkÉ”ÌbÉ” malÉ›ÌsianǸkÉ”ÌbÉ” birÉ™má" + + "nǹkÉ”ÌbÉ” nefálianǸkÉ”ÌbÉ” nÉ›rÉ™lándíaǹkÉ”ÌbÉ” funÉ™hábiaǹkÉ”ÌbÉ” fólisǹkÉ”ÌbÉ” " + + "fÉ”tugÉ›ÌsÅ„kÉ”ÌbÉ” románíaǹkÉ”ÌbÉ” rúsianǹkÉ”ÌbÉ” ruwandáǹkÉ”ÌbÉ” somáliaǹkÉ”Ìb" + + "É” suwÉ›ÌdǹkÉ”ÌbÉ” tamílǹkÉ”ÌbÉ” táilanǹkÉ”ÌbÉ” túrÉ™kiǹkÉ”ÌbÉ” ukeléniaǹkÉ”ÌbÉ”" + + " urudúǹkÉ”ÌbÉ” hiÉ›dÉ™námǹkÉ”ÌbÉ” yorúbaǸkÉ”ÌbÉ” tsainísǹkÉ”ÌbÉ” zulúewondo", + []uint16{ // 285 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0022, 0x0022, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x004a, 0x0061, + 0x0061, 0x0061, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, + 0x009a, 0x009a, 0x009a, 0x009a, 0x00ae, 0x00c3, 0x00c3, 0x00d6, + 0x00d6, 0x00d6, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x0101, + 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0112, + 0x0112, 0x0123, 0x0123, 0x0123, 0x0123, 0x0138, 0x0138, 0x0138, + // Entry 40 - 7F + 0x0138, 0x014f, 0x014f, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, + 0x0172, 0x0172, 0x0185, 0x0198, 0x0198, 0x0198, 0x0198, 0x0198, + 0x0198, 0x0198, 0x01ac, 0x01ac, 0x01be, 0x01be, 0x01be, 0x01be, + 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, + 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, 0x01be, + 0x01be, 0x01be, 0x01be, 0x01d4, 0x01d4, 0x01e8, 0x01e8, 0x01e8, + 0x01fc, 0x01fc, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x022b, 0x022b, 0x023c, + // Entry 80 - BF + 0x023c, 0x0252, 0x0252, 0x0252, 0x0252, 0x0266, 0x0278, 0x028b, + 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, + 0x028b, 0x028b, 0x029e, 0x029e, 0x029e, 0x029e, 0x029e, 0x029e, + 0x02b1, 0x02b1, 0x02c2, 0x02c2, 0x02c2, 0x02d4, 0x02d4, 0x02d4, + 0x02d4, 0x02d4, 0x02e7, 0x02e7, 0x02e7, 0x02e7, 0x02e7, 0x02fb, + 0x030c, 0x030c, 0x030c, 0x0322, 0x0322, 0x0322, 0x0322, 0x0322, + 0x0322, 0x0334, 0x0334, 0x0347, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + // Entry C0 - FF + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + // Entry 100 - 13F + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, 0x0357, + 0x0357, 0x0357, 0x0357, 0x0357, 0x035d, + }, + }, + { // fa + faLangStr, + faLangIdx, + }, + { // fa-AF + "هسپانویÙنلندیآیرلندیکروشیاییاندونیزیاییآیسلندیایتالویجاپانیکوریاییقرغزیم" + + "غلینیپالیهالندینارویژیپولندیپرتگالیسویدنیتاجکی", + []uint16{ // 157 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + // Entry 40 - 7F + 0x0038, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x005c, + 0x006a, 0x006a, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, + 0x0076, 0x0076, 0x0076, 0x0076, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a2, 0x00a2, 0x00ae, 0x00ae, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c8, + // Entry 80 - BF + 0x00c8, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00ec, + }, + }, + { // ff + "AkaanAmarikAarabeereBelaruuseBulgariireBengaliCekkereDocceereGerkeEngele" + + "ereEspañolPerseerePulaarFarayseereHawsaÅ‹kooreHinndiHongariireEndones" + + "iireIgibooreItaliyeereSaponeereSawaneereKemeereKoreereMalayeereBurme" + + "eseNepaaleereDacceerePunjabeerePoloneerePurtugeereRomaneereRiisRuwaa" + + "nndeereSomaliiSweedeereTamilTaayTurkeereUkereneereUrduWiyetnameereYo" + + "rrubaaSinuwaareSuluÅ‹koore", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000b, 0x000b, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x001d, 0x0027, + 0x0027, 0x0027, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x003d, 0x003d, 0x003d, 0x003d, 0x0042, 0x004b, 0x004b, 0x0053, + 0x0053, 0x0053, 0x005b, 0x0061, 0x0061, 0x0061, 0x0061, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0077, + 0x0077, 0x007d, 0x007d, 0x007d, 0x007d, 0x0087, 0x0087, 0x0087, + // Entry 40 - 7F + 0x0087, 0x0092, 0x0092, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x00a4, 0x00a4, 0x00ad, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, + 0x00b6, 0x00b6, 0x00bd, 0x00bd, 0x00c4, 0x00c4, 0x00c4, 0x00c4, + 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, + 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, + 0x00c4, 0x00c4, 0x00c4, 0x00cd, 0x00cd, 0x00d5, 0x00d5, 0x00d5, + 0x00df, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f1, 0x00f1, 0x00fa, + // Entry 80 - BF + 0x00fa, 0x0104, 0x0104, 0x0104, 0x0104, 0x010d, 0x0111, 0x011d, + 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, + 0x011d, 0x011d, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, + 0x012d, 0x012d, 0x0132, 0x0132, 0x0132, 0x0136, 0x0136, 0x0136, + 0x0136, 0x0136, 0x013e, 0x013e, 0x013e, 0x013e, 0x013e, 0x0148, + 0x014c, 0x014c, 0x014c, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0158, 0x0160, 0x0160, 0x0169, 0x0174, + }, + }, + { // fi + fiLangStr, + fiLangIdx, + }, + { // fil + filLangStr, + filLangIdx, + }, + { // fo + "abkhasisktafrikaansakanamharisktarabisktassamesisktaymaraaserbajdsjanskt" + + "bashkirhvitarussisktbulgarsktbambarabengalskttibetsktbretonsktbosnis" + + "ktkatalanitjetjensktkorsikansktkekkisktchuvashwalisisktdanskttýsktdi" + + "vehidzongkhaewegriksktensktesperantospansktestisktbaskisktpersisktfi" + + "nsktfijimálføroysktfransktvestur frísisktírsktskotskt gælisktgalisis" + + "ktguaranigujaratimanxhausahebraiskthindikroatiskthaitisktungarsktarm" + + "ensktinterlinguaindonesisktinterlingueigbosichuan yiíslendsktitalskt" + + "inuktitutjapansktjavansktgeorgisktkikuyukazakhkalaallisutkhmerkannad" + + "akoreansktkashmirikurdisktcornisktkyrgyzlatínluksemborgsktgandalinga" + + "lalaosktlitavisktluba-katangalettisktmalagassisktmaorimakedónsktmala" + + "yalammongolsktmarathimalaiisktmaltisktburmesisktnorður ndebelenepals" + + "kthálendsktnýnorsktnorskt bókmálnyanjaoccitanoromooriyaossetisktpunj" + + "abipólsktpashtoportugiskisktquechuaretoromansktrundirumensktrussiskt" + + "kinyarwandasanskritsindhinorður sámisktsangosingalesisktslovakisktsl" + + "ovensktsamoisktshonasomalisktalbansktserbisktswatisktsesothosundanes" + + "isktsvensktswahilitamilskttelugutajiktailendskttigrinyaturkmenskttsw" + + "anatongansktturkiskttsongatatartahitisktuyghurukrainskturduusbekiskt" + + "vendavjetnamesisktwolofxhosajiddisktyorubakinesisktsuluaghemmapuchea" + + "subembabenavestur balochibodobakossichigacherokeemiðkurdiskttaitasar" + + "malágt sorbiandualajola-fonyiembuefikfilipinisktgagauztýskt (Sveis)g" + + "usiihawaiiansktovara sorbianngombamachamekabylekambamakondegrønhøvda" + + "oyggjarsktkoyra chiinikalenjinkomi-permyakkonkanishambalabafialangil" + + "ahndalakotanorður luriluoluyiamasaimerumorisyenmakhuwa-meettometaʼmo" + + "hawkmundangmazanderaninamalágt týsktkwasionʼkonuernyankolekʼicheʼrom" + + "borwasamburusangusuður kurdisktsenakoyraboro sennitachelhitsuður sám" + + "isktlule sámisktinari samiskolt sámisktshimaorétesotetumklingonsktto" + + "k pisintasawaqmiðatlasfjøll tamazightókent málvaivunjowarlpirisogaka" + + "ntonesísktvanligt marokanskt tamazighteinki málsligt innihaldhøgt tý" + + "skt (Sveis)lágt saksisktflamsktportugiskiskt (Brasilia)portugiskiskt" + + " (Evropa)moldavisktserbokroatisktkongo svahilieinkult kinesisktvanli" + + "gt kinesiskt", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000a, 0x000a, 0x0013, 0x0017, 0x0020, 0x0020, + 0x0028, 0x0033, 0x0033, 0x0039, 0x0048, 0x004f, 0x005c, 0x0065, + 0x0065, 0x006c, 0x0075, 0x007d, 0x0086, 0x008e, 0x0096, 0x00a0, + 0x00a0, 0x00ab, 0x00ab, 0x00b3, 0x00b3, 0x00ba, 0x00c3, 0x00c9, + 0x00cf, 0x00d5, 0x00dd, 0x00e0, 0x00e7, 0x00ec, 0x00f5, 0x00fc, + 0x0103, 0x010b, 0x0113, 0x0113, 0x0119, 0x0121, 0x012a, 0x0131, + 0x0141, 0x0147, 0x0157, 0x0160, 0x0167, 0x016f, 0x0173, 0x0178, + 0x0181, 0x0186, 0x0186, 0x018f, 0x0197, 0x019f, 0x01a7, 0x01a7, + // Entry 40 - 7F + 0x01b2, 0x01bd, 0x01c8, 0x01cc, 0x01d6, 0x01d6, 0x01d6, 0x01e0, + 0x01e7, 0x01f0, 0x01f8, 0x0200, 0x0209, 0x0209, 0x020f, 0x020f, + 0x0215, 0x0220, 0x0225, 0x022c, 0x0235, 0x0235, 0x023d, 0x0245, + 0x0245, 0x024d, 0x0253, 0x0259, 0x0266, 0x026b, 0x026b, 0x0272, + 0x0278, 0x0281, 0x028d, 0x0295, 0x02a1, 0x02a1, 0x02a6, 0x02b1, + 0x02ba, 0x02c3, 0x02ca, 0x02d3, 0x02db, 0x02e5, 0x02e5, 0x02f4, + 0x02fc, 0x02fc, 0x0306, 0x030f, 0x031e, 0x031e, 0x031e, 0x0324, + 0x032b, 0x032b, 0x0330, 0x0335, 0x033e, 0x0345, 0x0345, 0x034c, + // Entry 80 - BF + 0x0352, 0x035f, 0x0366, 0x0372, 0x0377, 0x037f, 0x0387, 0x0392, + 0x039a, 0x039a, 0x03a0, 0x03b0, 0x03b5, 0x03c1, 0x03cb, 0x03d4, + 0x03dc, 0x03e1, 0x03ea, 0x03f2, 0x03fa, 0x0402, 0x0409, 0x0415, + 0x041c, 0x0423, 0x042b, 0x0431, 0x0436, 0x0440, 0x0448, 0x0452, + 0x0458, 0x0461, 0x0469, 0x046f, 0x0474, 0x047d, 0x0483, 0x048c, + 0x0490, 0x0499, 0x049e, 0x04ab, 0x04ab, 0x04ab, 0x04b0, 0x04b5, + 0x04bd, 0x04c3, 0x04c3, 0x04cc, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, + // Entry C0 - FF + 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04dc, 0x04dc, 0x04dc, + 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04df, 0x04df, 0x04df, 0x04df, + 0x04df, 0x04df, 0x04df, 0x04df, 0x04df, 0x04df, 0x04df, 0x04df, + 0x04df, 0x04e4, 0x04e4, 0x04e8, 0x04e8, 0x04e8, 0x04f6, 0x04f6, + 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x04f6, + 0x04f6, 0x04fa, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, + 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0506, 0x0506, 0x0506, + 0x0506, 0x0506, 0x0506, 0x0506, 0x0506, 0x050e, 0x050e, 0x051a, + // Entry 100 - 13F + 0x051a, 0x051a, 0x051a, 0x051a, 0x051a, 0x051a, 0x051f, 0x051f, + 0x051f, 0x051f, 0x051f, 0x0524, 0x0524, 0x0531, 0x0531, 0x0536, + 0x0536, 0x0540, 0x0540, 0x0540, 0x0544, 0x0548, 0x0548, 0x0548, + 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0548, 0x0553, + 0x0553, 0x0553, 0x0553, 0x0553, 0x0553, 0x0553, 0x0553, 0x0553, + 0x0553, 0x0553, 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, + 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, 0x0559, + 0x0559, 0x0559, 0x0567, 0x0567, 0x0567, 0x056c, 0x056c, 0x056c, + // Entry 140 - 17F + 0x056c, 0x0577, 0x0577, 0x0577, 0x0577, 0x0577, 0x0584, 0x0584, + 0x0584, 0x0584, 0x0584, 0x0584, 0x0584, 0x0584, 0x0584, 0x0584, + 0x058a, 0x0591, 0x0591, 0x0591, 0x0591, 0x0591, 0x0597, 0x0597, + 0x0597, 0x059c, 0x059c, 0x059c, 0x059c, 0x059c, 0x05a3, 0x05b8, + 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05c4, 0x05c4, 0x05c4, + 0x05c4, 0x05cc, 0x05cc, 0x05d8, 0x05df, 0x05df, 0x05df, 0x05df, + 0x05df, 0x05df, 0x05df, 0x05df, 0x05e7, 0x05ec, 0x05ec, 0x05ec, + 0x05ec, 0x05ec, 0x05f1, 0x05f7, 0x05f7, 0x05f7, 0x05f7, 0x05f7, + // Entry 180 - 1BF + 0x05f7, 0x05fd, 0x05fd, 0x05fd, 0x05fd, 0x0609, 0x0609, 0x0609, + 0x0609, 0x0609, 0x060c, 0x060c, 0x0611, 0x0611, 0x0611, 0x0611, + 0x0611, 0x0611, 0x0611, 0x0611, 0x0611, 0x0616, 0x0616, 0x0616, + 0x0616, 0x0616, 0x061a, 0x0622, 0x0622, 0x0630, 0x0636, 0x0636, + 0x0636, 0x0636, 0x0636, 0x063c, 0x063c, 0x063c, 0x0643, 0x0643, + 0x0643, 0x0643, 0x0643, 0x0643, 0x0643, 0x0643, 0x064e, 0x064e, + 0x064e, 0x0652, 0x065e, 0x065e, 0x065e, 0x065e, 0x065e, 0x0664, + 0x0664, 0x0664, 0x0664, 0x0664, 0x0669, 0x0669, 0x066d, 0x066d, + // Entry 1C0 - 1FF + 0x066d, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, + 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, + 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x0675, 0x067e, 0x067e, + 0x067e, 0x067e, 0x067e, 0x067e, 0x067e, 0x0683, 0x0683, 0x0683, + 0x0683, 0x0683, 0x0683, 0x0686, 0x0686, 0x0686, 0x0686, 0x068d, + 0x068d, 0x068d, 0x068d, 0x068d, 0x0692, 0x0692, 0x0692, 0x0692, + 0x06a1, 0x06a1, 0x06a5, 0x06a5, 0x06a5, 0x06b4, 0x06b4, 0x06b4, + 0x06bd, 0x06bd, 0x06bd, 0x06bd, 0x06bd, 0x06bd, 0x06cc, 0x06d9, + // Entry 200 - 23F + 0x06e3, 0x06f1, 0x06f1, 0x06f1, 0x06f1, 0x06f1, 0x06f1, 0x06f1, + 0x06f1, 0x06f1, 0x06f1, 0x06fa, 0x06fa, 0x06fa, 0x06fa, 0x06fa, + 0x06fa, 0x06fe, 0x06fe, 0x0703, 0x0703, 0x0703, 0x0703, 0x0703, + 0x070d, 0x070d, 0x070d, 0x070d, 0x070d, 0x0716, 0x0716, 0x0716, + 0x0716, 0x0716, 0x0716, 0x0716, 0x0716, 0x071d, 0x071d, 0x0736, + 0x0736, 0x0736, 0x0736, 0x0741, 0x0744, 0x0744, 0x0744, 0x0744, + 0x0744, 0x0744, 0x0744, 0x0749, 0x0749, 0x0749, 0x0749, 0x0749, + 0x0751, 0x0751, 0x0751, 0x0751, 0x0755, 0x0755, 0x0755, 0x0755, + // Entry 240 - 27F + 0x0755, 0x0755, 0x0762, 0x0762, 0x0762, 0x0762, 0x0762, 0x077e, + 0x077e, 0x0796, 0x0796, 0x0796, 0x0796, 0x0796, 0x07aa, 0x07aa, + 0x07aa, 0x07aa, 0x07aa, 0x07aa, 0x07aa, 0x07aa, 0x07aa, 0x07aa, + 0x07aa, 0x07b8, 0x07bf, 0x07d7, 0x07ed, 0x07f7, 0x0805, 0x0812, + 0x0823, 0x0834, + }, + }, + { // fr + frLangStr, + frLangIdx, + }, + { // fr-CA + frCALangStr, + frCALangIdx, + }, + { // fr-CH + "kurde méridional", + []uint16{ // 497 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 140 - 17F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 180 - 1BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 1C0 - 1FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0011, + }, + }, + { // fur + "afarabcazianavestanafrikaansamaricaragonêsarapassamêsavaraymaràazerbaija" + + "nibielorùsbulgarbengalêstibetanbretonbosniaccatalancecenchamorrocors" + + "creececsclâf de glesiegalêsdanêstodescgrêcinglêsesperantospagnûlesto" + + "nbascpersianfulahfinlandêsfizianfaroêsfrancêsfrisiangaelic irlandêsg" + + "aelic scozêsgalizianguaranìgujaratimanxebraichindicravuathaitianongj" + + "arêsarmenindonesianigboinupiaqidoislandêstalianinuktitutgjaponêsgjeo" + + "rgjiankazackalaallisutkhmerkannadacoreancurdcornualiêslatinlussembur" + + "ghêslimburghêslingalalaolituanletonmalagasymaorimacedonmalayalammong" + + "ulmarathimalêsmaltêsndebele setentrionâlnepalêsolandêsnorvegjês nyno" + + "rsknorvegjês bokmÃ¥lnavajoocitanoriyaoseticpunjabipolacpashtoportughê" + + "squechuarumançromenrussanscritsardegnûlsindhisami setentrionâlsangos" + + "inalêsslovacslovensamoansomalalbanêsserpswatisotho meridionâlsundanê" + + "ssvedêsswahilitamiltelegutagicthaiturcmenturctartartahitianuigurucra" + + "inurduuzbecvendavietnamitevalonwolofxhosayiddishyorubacinêszuluvieri" + + " inglêsaramaicasturiancopticsclâfvieri egjizianfilipinvieri francêsf" + + "urlangoticvieri grêcladinlenghis multiplismirandêsnapoletanbas todes" + + "cvieri norvegjêssotho setentrionâlturc otomanpapiamentovieri persian" + + "vieri provenzâlsicilianscozêsvieri irlandêssumerictetumindeterminade" + + "todesc de Austriealt todesc de Svuizareinglês australianinglês canad" + + "êsinglês britanicingles merecanspagnûl de Americhe Latinespagnûl ib" + + "ericfrancês dal Canadefrancês de Svuizareflamantportughês brasilianp" + + "ortughês ibericmoldâfcinês semplificâtcinês tradizionâl", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000c, 0x0013, 0x001c, 0x001c, 0x0022, 0x002b, + 0x002f, 0x0037, 0x003b, 0x0042, 0x004d, 0x004d, 0x0056, 0x005c, + 0x005c, 0x005c, 0x0065, 0x006c, 0x0072, 0x0079, 0x0080, 0x0085, + 0x008d, 0x0091, 0x0095, 0x0098, 0x00a8, 0x00a8, 0x00ae, 0x00b4, + 0x00ba, 0x00ba, 0x00ba, 0x00ba, 0x00bf, 0x00c6, 0x00cf, 0x00d7, + 0x00dc, 0x00e0, 0x00e7, 0x00ec, 0x00f6, 0x00fc, 0x0103, 0x010b, + 0x0112, 0x0122, 0x0130, 0x0138, 0x0140, 0x0148, 0x014c, 0x014c, + 0x0152, 0x0157, 0x0157, 0x015e, 0x0165, 0x016e, 0x0173, 0x0173, + // Entry 40 - 7F + 0x0173, 0x017d, 0x017d, 0x0181, 0x0181, 0x0188, 0x018b, 0x0194, + 0x019a, 0x01a3, 0x01ac, 0x01ac, 0x01b6, 0x01b6, 0x01b6, 0x01b6, + 0x01bb, 0x01c6, 0x01cb, 0x01d2, 0x01d8, 0x01d8, 0x01d8, 0x01dc, + 0x01dc, 0x01e7, 0x01e7, 0x01ec, 0x01fa, 0x01fa, 0x0205, 0x020c, + 0x020f, 0x0215, 0x0215, 0x021a, 0x0222, 0x0222, 0x0227, 0x022e, + 0x0237, 0x023d, 0x0244, 0x024a, 0x0251, 0x0251, 0x0251, 0x0266, + 0x026e, 0x026e, 0x0276, 0x0288, 0x029a, 0x029a, 0x02a0, 0x02a0, + 0x02a6, 0x02a6, 0x02a6, 0x02ab, 0x02b1, 0x02b8, 0x02b8, 0x02bd, + // Entry 80 - BF + 0x02c3, 0x02cd, 0x02d4, 0x02db, 0x02db, 0x02e0, 0x02e3, 0x02e3, + 0x02eb, 0x02f5, 0x02fb, 0x030d, 0x0312, 0x031a, 0x0320, 0x0326, + 0x032c, 0x032c, 0x0331, 0x0339, 0x033d, 0x0342, 0x0353, 0x035c, + 0x0363, 0x036a, 0x036f, 0x0375, 0x037a, 0x037e, 0x037e, 0x0385, + 0x0385, 0x0385, 0x0389, 0x0389, 0x038f, 0x0397, 0x039c, 0x03a2, + 0x03a6, 0x03ab, 0x03b0, 0x03ba, 0x03ba, 0x03bf, 0x03c4, 0x03c9, + 0x03d0, 0x03d6, 0x03d6, 0x03dc, 0x03e0, 0x03e0, 0x03e0, 0x03e0, + 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, 0x03e0, + // Entry C0 - FF + 0x03e0, 0x03e0, 0x03ed, 0x03ed, 0x03f4, 0x03f4, 0x03f4, 0x03f4, + 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03f4, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, 0x03fc, + // Entry 100 - 13F + 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, + 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, + 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0416, + 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x0416, 0x041d, + 0x041d, 0x041d, 0x041d, 0x041d, 0x042b, 0x042b, 0x042b, 0x042b, + 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, + 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0436, + 0x0436, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + // Entry 140 - 17F + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, 0x0441, + 0x0441, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + // Entry 180 - 1BF + 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, 0x0457, + 0x0457, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, + 0x0469, 0x0469, 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, + 0x0473, 0x0473, 0x0483, 0x0483, 0x0483, 0x0496, 0x0496, 0x0496, + // Entry 1C0 - 1FF + 0x0496, 0x0496, 0x0496, 0x0496, 0x0496, 0x04a1, 0x04a1, 0x04a1, + 0x04a1, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04b8, 0x04b8, + 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04b8, 0x04c8, 0x04c8, 0x04c8, + 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, + 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, + 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04c8, 0x04d0, 0x04d7, 0x04d7, + 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04d7, 0x04e6, 0x04e6, + 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, + // Entry 200 - 23F + 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, 0x04e6, + 0x04e6, 0x04e6, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, 0x04ed, + 0x04ed, 0x04ed, 0x04ed, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, + 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, + 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, 0x04f2, + 0x04f2, 0x04f2, 0x04f2, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, + 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, + 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, + // Entry 240 - 27F + 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, + 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x0510, 0x0526, 0x0538, + 0x0548, 0x0558, 0x0566, 0x0581, 0x0590, 0x0590, 0x0590, 0x05a3, + 0x05b7, 0x05b7, 0x05be, 0x05d2, 0x05e3, 0x05ea, 0x05ea, 0x05ea, + 0x05fd, 0x0610, + }, + }, + { // fy + "AfarAbchazyskAvestyskAfrikaanskAkanAmhaarskAragoneeskArabyskAssameeskAva" + + "ryskAymaraAzerbeidzjaanskBasjkierskWyt-RussyskBulgaarskBislamaBambar" + + "aBengaalskTibetaanskBretonskBosnyskKatalaanskTsjetsjeenskChamorroKor" + + "sikaanskCreeTsjechyskKerkslavyskTsjoevasjyskWelskDeenskDútskDivehiDz" + + "ongkhaEweGryksIngelskEsperantoSpaanskEstlânskBaskyskPerzyskFulahFins" + + "kFijyskFaeröerskFrânskWest-FryskIerskSchotsk GaelicGalisyskGuaraníGu" + + "jaratiManksHausaHebreeuwskHindiHiri MotuKroatyskHaïtiaanskHongaarskA" + + "rmeenskHereroInterlinguaYndonezyskInterlingueIgboSichuan YiInupiaqId" + + "oYslânsItaliaanskInuktitutJapansJavaanskGeorgyskKongoKikuyuKuanyamaK" + + "azachsGrienlânsKhmerKannadaKoreaanskKanuriKasjmiriKoerdyskKomiCornis" + + "hKirgizyskLatynLuxemburgsGandaLimburgsLingalaLaotiaanskLitouwsLuba-K" + + "atangaLetlânsMalagasyskMarshalleesMaoriMacedonyskMalayalamMongoolsMa" + + "rathiMaleisMalteesBirmeesNauruaanskNoard-NdbeleNepaleesNdongaNederlâ" + + "nskNoors - NynorskNoors - BokmÃ¥lSûd-NdbeleNavajoNyanjaOccitaanskOjib" + + "waOromoOdiaOssetyskPunjabiPaliPoalskPasjtoePortugeeskQuechuaReto-Rom" + + "aanskKirundiRoemeenskRussyskKinyarwandaSanskrietSardinyskSindhiNoard" + + "-SamyskSangoSingaleesSlowaaksSloveenskSamoaanskShonaSomalyskAlbanees" + + "kServyskSwaziSûd-SothoSoendaneeskZweedsSwahiliTamilTeluguTadzjieksTh" + + "aisTigrinyaTurkmeensTswanaTongaanskTurksTsongaTataarsTahityskOeigoer" + + "sOekraïensUrduOezbeeksVendaVietnameesVolapükWaalsWolofXhosaJiddyskYo" + + "rubaZhuangSineeskZuluAtjeeskAkoliAdangmeAdygheAfrihiliAghemAinuAkkad" + + "yskAleutSûd-AltaïskâldingelskAngikaArameeskAraukaanskArapahoArawakAs" + + "uAsturyskAwadhiBaloetsjyskBalineeskBasaBamounGhomala’BejaBembaBenaBa" + + "futBhojpuriBikolBiniKomSiksikaBrajBodoAkooseBuriatBugineeskBuluBlinM" + + "edumbaKaddoKaribyskCayugaAtsamCebuanoChigaChibchaChagataiChuukeeskMa" + + "riChinook-jargonChoctawChipewyanCherokeeCheyenneSoranîKoptyskKrim-Ta" + + "taarskKasjoebyskDakotaDargwaTaitaDelawareSlaveDogribDinkaZarmaDogriN" + + "edersorbyskDualaMiddelnederlânskJola-FonyiDyulaDazagaEmbuEfikAldegyp" + + "tyskEkajukElamityskMiddelingelskEwondoFangFilipynskFonMiddelfrânskAl" + + "dfrânskNoard-FryskEast-FryskFriulyskGaGayoGbayaGeezGilberteeskMiddel" + + "heechdútskAlsheechdútskGondiGorontaloGothyskGreboAldgryksSwitsers Dú" + + "tskGusiiGwichʼinHaidaHawaïaanskHiligaynonHettityskHmongOppersorbyskH" + + "upaIbanIbibioIlokoIngoesjLojbanNgombaMachameJudeo-PerzyskJudeo-Araby" + + "skKarakalpaksKabyleKachinJjuKambaKawiKabardyskKanembuTyapMakondeKaap" + + "verdysk CreoolsKoroKhasiKhotaneeskKoyra ChiiniKakoKalenjinKimbunduKo" + + "nkaniKosraeaanskKpelleKarachay-BalkarKarelyskKurukhShambalaBafiaKöls" + + "chKoemuksKutenaiLadinoLangiLahndaLambaLezgyskLakotaMongoLoziLuba-Lul" + + "uaLuisenoLundaLuoLushaiLuyiaMadureesMafaMagahiMaithiliMakassaarsMand" + + "ingoMasaiMabaMokshaMandarMendeMeruMorisyenMiddeliersMakhuwa-MeettoMe" + + "ta’Mi’kmaqMinangkabauMantsjoeManipoeriMohawkMossiMundangMeardere tal" + + "enCreekMirandeesMarwariMyeneErzjaNapolitaanskNamaLaagduitsNewariNias" + + "NiueaanskNgumbaNgiemboonNogaiAldnoarskN’koNoard-SothoNuerKlassiek Ne" + + "wariNyamweziNyankoleNyoroNzimaOsageOttomaansk-TurksPangasinanPahlavi" + + "PampangaPapiamentsPalauaanskAldperzyskFoenisyskPohnpeiaanskAldproven" + + "çaalsRajasthaniRapanuiRarotonganRomboRomaniAromaniaanskRwaSandaweJa" + + "koetsSamaritaansk-ArameeskSamburuSasakSantaliNgambaySanguSiciliaansk" + + "SchotsSenecaSenaSelkupKoyraboro SenniAldyrskTashelhiytShanTsjadysk A" + + "rabyskSidamoSûd-SamyskLule SamiInari SamiSkolt SamiSoninkeSogdyskSra" + + "nantongoSererSahoSukumaSoesoeSoemeryskShimaoreKlassiek SyryskSyryskT" + + "imneTesoTerenoTetunTigreTivTokelausKlingonTlingitTamashekNyasa Tonga" + + "Tok PisinTarokoTsimshianToemboekaTuvaluaanskTasawaqTuvinyskTamazight" + + " (Sintraal-Marokko)OedmoertsOegarityskUmbunduRootVaiVotyskVunjoWalse" + + "rWalamoWarayWashoKalmykSogaYaoYapeesYangbenYembaKantoneeskZapotecBli" + + "ssymbolenZenagaStandert Marokkaanske TamazightZuniGjin linguïstyske " + + "ynhâldZazaModern standert ArabyskEastenryks DútskSwitsersk Heechdúts" + + "kAustralysk IngelskKanadeesk IngelskBritsk IngelskAmerikaansk Ingels" + + "kLatynsk-Amerikaansk SpaanskEuropeesk SpaanskMeksikaansk SpaanskKana" + + "deesk FrânskSwitserse FrânskVlaamsBrazyljaansk PortugeesEuropees Por" + + "tugeesMoldavyskServokroatyskCongo SwahiliFerienfâldich SineeskTradis" + + "joneel Sineesk", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0015, 0x001f, 0x0023, 0x002b, 0x0035, + 0x003c, 0x0045, 0x004c, 0x0052, 0x0061, 0x006b, 0x0076, 0x007f, + 0x0086, 0x008d, 0x0096, 0x00a0, 0x00a8, 0x00af, 0x00b9, 0x00c5, + 0x00cd, 0x00d8, 0x00dc, 0x00e5, 0x00f0, 0x00fc, 0x0101, 0x0107, + 0x010d, 0x0113, 0x011b, 0x011e, 0x0123, 0x012a, 0x0133, 0x013a, + 0x0143, 0x014a, 0x0151, 0x0156, 0x015b, 0x0161, 0x016b, 0x0172, + 0x017c, 0x0181, 0x018f, 0x0197, 0x019f, 0x01a7, 0x01ac, 0x01b1, + 0x01bb, 0x01c0, 0x01c9, 0x01d1, 0x01dc, 0x01e5, 0x01ed, 0x01f3, + // Entry 40 - 7F + 0x01fe, 0x0208, 0x0213, 0x0217, 0x0221, 0x0228, 0x022b, 0x0232, + 0x023c, 0x0245, 0x024b, 0x0253, 0x025b, 0x0260, 0x0266, 0x026e, + 0x0275, 0x027f, 0x0284, 0x028b, 0x0294, 0x029a, 0x02a2, 0x02aa, + 0x02ae, 0x02b5, 0x02be, 0x02c3, 0x02cd, 0x02d2, 0x02da, 0x02e1, + 0x02eb, 0x02f2, 0x02fe, 0x0306, 0x0310, 0x031b, 0x0320, 0x032a, + 0x0333, 0x033b, 0x0342, 0x0348, 0x034f, 0x0356, 0x0360, 0x036c, + 0x0374, 0x037a, 0x0385, 0x0394, 0x03a3, 0x03ae, 0x03b4, 0x03ba, + 0x03c4, 0x03ca, 0x03cf, 0x03d3, 0x03db, 0x03e2, 0x03e6, 0x03ec, + // Entry 80 - BF + 0x03f3, 0x03fd, 0x0404, 0x0411, 0x0418, 0x0421, 0x0428, 0x0433, + 0x043c, 0x0445, 0x044b, 0x0457, 0x045c, 0x0465, 0x046d, 0x0476, + 0x047f, 0x0484, 0x048c, 0x0495, 0x049c, 0x04a1, 0x04ab, 0x04b6, + 0x04bc, 0x04c3, 0x04c8, 0x04ce, 0x04d7, 0x04dc, 0x04e4, 0x04ed, + 0x04f3, 0x04fc, 0x0501, 0x0507, 0x050e, 0x0516, 0x051e, 0x0528, + 0x052c, 0x0534, 0x0539, 0x0543, 0x054b, 0x0550, 0x0555, 0x055a, + 0x0561, 0x0567, 0x056d, 0x0574, 0x0578, 0x057f, 0x0584, 0x058b, + 0x0591, 0x0591, 0x0599, 0x059e, 0x05a2, 0x05aa, 0x05aa, 0x05af, + // Entry C0 - FF + 0x05af, 0x05bc, 0x05c7, 0x05cd, 0x05d5, 0x05df, 0x05df, 0x05e6, + 0x05e6, 0x05ec, 0x05ec, 0x05ec, 0x05ef, 0x05ef, 0x05f7, 0x05f7, + 0x05fd, 0x0608, 0x0611, 0x0611, 0x0615, 0x061b, 0x061b, 0x0625, + 0x0629, 0x062e, 0x062e, 0x0632, 0x0637, 0x0637, 0x0637, 0x063f, + 0x0644, 0x0648, 0x0648, 0x064b, 0x0652, 0x0652, 0x0652, 0x0656, + 0x0656, 0x065a, 0x0660, 0x0666, 0x066f, 0x0673, 0x0677, 0x067e, + 0x0683, 0x068b, 0x0691, 0x0696, 0x069d, 0x06a2, 0x06a9, 0x06b1, + 0x06ba, 0x06be, 0x06cc, 0x06d3, 0x06dc, 0x06e4, 0x06ec, 0x06f3, + // Entry 100 - 13F + 0x06fa, 0x06fa, 0x0707, 0x0711, 0x0717, 0x071d, 0x0722, 0x072a, + 0x072f, 0x0735, 0x073a, 0x073f, 0x0744, 0x0750, 0x0750, 0x0755, + 0x0766, 0x0770, 0x0775, 0x077b, 0x077f, 0x0783, 0x0783, 0x078e, + 0x0794, 0x079d, 0x07aa, 0x07aa, 0x07b0, 0x07b0, 0x07b4, 0x07bd, + 0x07bd, 0x07c0, 0x07c0, 0x07cd, 0x07d7, 0x07d7, 0x07e2, 0x07ec, + 0x07f4, 0x07f6, 0x07f6, 0x07f6, 0x07fa, 0x07ff, 0x07ff, 0x0803, + 0x080e, 0x080e, 0x081f, 0x082d, 0x082d, 0x0832, 0x083b, 0x0842, + 0x0847, 0x084f, 0x085e, 0x085e, 0x085e, 0x0863, 0x086c, 0x0871, + // Entry 140 - 17F + 0x0871, 0x087c, 0x087c, 0x0886, 0x088f, 0x0894, 0x08a0, 0x08a0, + 0x08a4, 0x08a8, 0x08ae, 0x08b3, 0x08ba, 0x08ba, 0x08ba, 0x08c0, + 0x08c6, 0x08cd, 0x08da, 0x08e7, 0x08e7, 0x08f2, 0x08f8, 0x08fe, + 0x0901, 0x0906, 0x090a, 0x0913, 0x091a, 0x091e, 0x0925, 0x0938, + 0x0938, 0x093c, 0x093c, 0x0941, 0x094b, 0x0957, 0x0957, 0x0957, + 0x095b, 0x0963, 0x096b, 0x096b, 0x0972, 0x097d, 0x0983, 0x0992, + 0x0992, 0x0992, 0x099a, 0x09a0, 0x09a8, 0x09ad, 0x09b4, 0x09bb, + 0x09c2, 0x09c8, 0x09cd, 0x09d3, 0x09d8, 0x09df, 0x09df, 0x09df, + // Entry 180 - 1BF + 0x09df, 0x09e5, 0x09e5, 0x09ea, 0x09ee, 0x09ee, 0x09ee, 0x09f8, + 0x09ff, 0x0a04, 0x0a07, 0x0a0d, 0x0a12, 0x0a12, 0x0a12, 0x0a1a, + 0x0a1e, 0x0a24, 0x0a2c, 0x0a36, 0x0a3e, 0x0a43, 0x0a47, 0x0a4d, + 0x0a53, 0x0a58, 0x0a5c, 0x0a64, 0x0a6e, 0x0a7c, 0x0a83, 0x0a8c, + 0x0a97, 0x0a9f, 0x0aa8, 0x0aae, 0x0ab3, 0x0ab3, 0x0aba, 0x0ac8, + 0x0acd, 0x0ad6, 0x0add, 0x0add, 0x0ae2, 0x0ae7, 0x0ae7, 0x0ae7, + 0x0af3, 0x0af7, 0x0b00, 0x0b06, 0x0b0a, 0x0b13, 0x0b13, 0x0b19, + 0x0b22, 0x0b27, 0x0b30, 0x0b30, 0x0b36, 0x0b41, 0x0b45, 0x0b54, + // Entry 1C0 - 1FF + 0x0b5c, 0x0b64, 0x0b69, 0x0b6e, 0x0b73, 0x0b83, 0x0b8d, 0x0b94, + 0x0b9c, 0x0ba6, 0x0bb0, 0x0bb0, 0x0bb0, 0x0bb0, 0x0bba, 0x0bba, + 0x0bc3, 0x0bc3, 0x0bc3, 0x0bcf, 0x0bcf, 0x0bde, 0x0bde, 0x0bde, + 0x0be8, 0x0bef, 0x0bf9, 0x0bf9, 0x0bf9, 0x0bfe, 0x0c04, 0x0c04, + 0x0c04, 0x0c04, 0x0c10, 0x0c13, 0x0c1a, 0x0c21, 0x0c36, 0x0c3d, + 0x0c42, 0x0c49, 0x0c49, 0x0c50, 0x0c55, 0x0c60, 0x0c66, 0x0c66, + 0x0c66, 0x0c6c, 0x0c70, 0x0c70, 0x0c76, 0x0c85, 0x0c8c, 0x0c8c, + 0x0c96, 0x0c9a, 0x0caa, 0x0cb0, 0x0cb0, 0x0cb0, 0x0cbb, 0x0cc4, + // Entry 200 - 23F + 0x0cce, 0x0cd8, 0x0cdf, 0x0ce6, 0x0cf1, 0x0cf6, 0x0cfa, 0x0cfa, + 0x0d00, 0x0d06, 0x0d0f, 0x0d17, 0x0d26, 0x0d2c, 0x0d2c, 0x0d2c, + 0x0d31, 0x0d35, 0x0d3b, 0x0d40, 0x0d45, 0x0d48, 0x0d50, 0x0d50, + 0x0d57, 0x0d5e, 0x0d5e, 0x0d66, 0x0d71, 0x0d7a, 0x0d7a, 0x0d80, + 0x0d80, 0x0d89, 0x0d89, 0x0d92, 0x0d9d, 0x0da4, 0x0dac, 0x0dc8, + 0x0dd1, 0x0ddb, 0x0de2, 0x0de6, 0x0de9, 0x0de9, 0x0de9, 0x0de9, + 0x0de9, 0x0def, 0x0def, 0x0df4, 0x0dfa, 0x0e00, 0x0e05, 0x0e0a, + 0x0e0a, 0x0e0a, 0x0e10, 0x0e10, 0x0e14, 0x0e17, 0x0e1d, 0x0e24, + // Entry 240 - 27F + 0x0e29, 0x0e29, 0x0e33, 0x0e3a, 0x0e46, 0x0e46, 0x0e4c, 0x0e6b, + 0x0e6f, 0x0e89, 0x0e8d, 0x0ea4, 0x0ea4, 0x0eb5, 0x0eca, 0x0edc, + 0x0eed, 0x0efb, 0x0f0e, 0x0f29, 0x0f3a, 0x0f4d, 0x0f4d, 0x0f5e, + 0x0f6f, 0x0f6f, 0x0f75, 0x0f8b, 0x0f9d, 0x0fa6, 0x0fb3, 0x0fc0, + 0x0fd6, 0x0fea, + }, + }, + { // ga + "AfáirisAbcáisisAivéistisAfracáinisAcáinisAmáirisAragóinisAraibisAsaimisA" + + "váirisAidhmirisAsarbaiseáinisBaiscírisBealarúisisBulgáirisBioslaimis" + + "BeangáilisTibéidisBriotáinisBoisnisCatalóinisSeisnisSeamóirisCorsaic" + + "isCraísSeicisSlavais na hEaglaiseSuvaisisBreatnaisDanmhairgisGearmái" + + "nisDivéihisSeoinicisGréigisBéarlaEsperantoSpáinnisEastóinisBascaisPe" + + "irsisFuláinisFionlainnisFidsisFaróisFraincisFreaslainnis IartharachG" + + "aeilgeGaeilge na hAlbanGailísisGuaráinisGúisearáitisManainnisHásaisE" + + "abhraisHiondúisMotúis HíríCróitisCriól HáítíochUngáirisAirméinisHeir" + + "éirisInterlinguaIndinéisisInterlingueÃogbóisIniúipiaicisIdoÃoslainn" + + "isIodáilisIonúitisSeapáinisIáivisSeoirsisCongóisCiocúisCuainiáimisCa" + + "saicisKalaallisutCiméirisCannadaisCóiréisCanúirisCaismírisCoirdisCoi" + + "misCoirnisCirgisisLaidinLucsambuirgisLugandaisLiongáilisLaoisisLiotu" + + "áinisLúba-CataingisLaitvisMalagáisisMairsillisMaoraisMacadóinisMail" + + "éalaimisMongóilisMaraitisMalaeisMáltaisBurmaisNárúisNdeibéilis an T" + + "uaiscirtNeipeailisNdongaisOllainnisNua-IoruaisIoruais BokmÃ¥lNdeibéil" + + "is an DeiscirtNavachóisSiséivisOcsatáinisÓisibisOraimisOirísisOiséit" + + "isPuinseáibisPáilisPolainnisPaistisPortaingéilisCeatsuaisRómainisRúi" + + "ndisRómáinisRúisisCiniaruaindisSanscraitSairdínisSindisSáimis Thuaid" + + "hSangóisSiolóinisSlóvaicisSlóivéinisSamóisSeoinisSomáilisAlbáinisSei" + + "rbisSuaisisSeasóitisSundaisSualainnisSvahaílisTamailisTeileagúisTáid" + + "sícisTéalainnisTigrinisTuircméinisSuáinisTongaisTuircisSongaisTatair" + + "isTaihítisUigiúirisÚcráinisUrdúisÚisbéiceastáinisVeindisVítneaimisVo" + + "lapükVallúnaisVolaifisCóisisGiúdaisIarúibisSiuáingisSínisSúlúisAidhn" + + "iúisAcáidisSean-BhéarlaAramaisMapúitsisAstúirisBailísBaváirisBeimbis" + + "BuiriáitisBuiginisSeabúáinisMairisSeiricisCoptaisCaisiúibisZarmaisSo" + + "rbais ÃochtarachMeán-OllainnisSean-ÉigiptisMeán-BhéarlaFilipínisMeán" + + "-FhraincisSean-FhraincisFreaslainnis an TuaiscirtFriúilisAetóipisMeá" + + "n-Ard-GhearmáinisSean-Ard-GhearmáinisSean-GhréigisGearmáinis Eilvéis" + + "eachUaúisHaicéisHaváisHiondúis FhidsíHilgeanóinisHitisMongaisSorbais" + + " UachtarachHúipisIbibisIongúisIútlainnisCara-ChalpáisConcáinisCairéi" + + "lisCurúicisLaidínisPuinseáibis IartharachLiogúirisLiovóinisLombairdi" + + "sMeindisMeán-GhaeilgeManapúirisMóháicisMairis IartharachMioraindéisM" + + "armhairisGearmáinis ÃochtarachNíobhaisSean-LochlainnisSútúis an Tuai" + + "scirtSean-PheirsisPrúisisRomainisArómáinisSachaisAramais ShamárachSa" + + "ntáilisSicilisAlbainisSean-GhaeilgeSáimis LuleSogdánaisSuiméirisSiri" + + "cisSiléisisKlingonUdmairtisTeanga AnaithnidVeinéisisPléimeannais Iar" + + "tharachCailmícisCantainisSéalainnisZúinisGan ábhar teangeolaíochArai" + + "bis ChaighdeánachGearmáinis OstarachArd-Ghearmáinis EilvéiseachBéarl" + + "a AstrálachBéarla CeanadachBéarla BriotanachBéarla MeiriceánachSpáin" + + "nis Mheiriceá LaidinighSpáinnis EorpachSpáinnis MheicsiceachFraincis" + + " CheanadachFraincis EilvéiseachSacsainis ÃochtarachPléimeannaisPorta" + + "ingéilis na BrasaílePortaingéilis IbéarachMoldáivisSeirbea-ChróitisS" + + "vahaílis an ChongóSínis ShimplitheSínis Thraidisiúnta", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0008, 0x0011, 0x001b, 0x0026, 0x002e, 0x0036, 0x0040, + 0x0047, 0x004e, 0x0056, 0x005f, 0x006e, 0x0078, 0x0084, 0x008e, + 0x0098, 0x0098, 0x00a3, 0x00ac, 0x00b7, 0x00be, 0x00c9, 0x00d0, + 0x00da, 0x00e3, 0x00e9, 0x00ef, 0x0103, 0x010b, 0x0114, 0x011f, + 0x012a, 0x0133, 0x013c, 0x013c, 0x0144, 0x014b, 0x0154, 0x015d, + 0x0167, 0x016e, 0x0175, 0x017e, 0x0189, 0x018f, 0x0196, 0x019e, + 0x01b5, 0x01bc, 0x01cd, 0x01d6, 0x01e0, 0x01ee, 0x01f7, 0x01fe, + 0x0206, 0x020f, 0x021d, 0x0225, 0x0237, 0x0240, 0x024a, 0x0254, + // Entry 40 - 7F + 0x025f, 0x026a, 0x0275, 0x027e, 0x027e, 0x028b, 0x028e, 0x0299, + 0x02a2, 0x02ab, 0x02b5, 0x02bc, 0x02c4, 0x02cc, 0x02d4, 0x02e0, + 0x02e8, 0x02f3, 0x02fc, 0x0305, 0x030e, 0x0317, 0x0321, 0x0328, + 0x032e, 0x0335, 0x033d, 0x0343, 0x0350, 0x0359, 0x0359, 0x0364, + 0x036b, 0x0376, 0x0385, 0x038c, 0x0397, 0x03a1, 0x03a8, 0x03b3, + 0x03c0, 0x03ca, 0x03d2, 0x03d9, 0x03e1, 0x03e8, 0x03f0, 0x0408, + 0x0412, 0x041a, 0x0423, 0x042e, 0x043d, 0x0454, 0x045e, 0x0467, + 0x0472, 0x047a, 0x0481, 0x0489, 0x0492, 0x049e, 0x04a5, 0x04ae, + // Entry 80 - BF + 0x04b5, 0x04c3, 0x04cc, 0x04d5, 0x04dd, 0x04e7, 0x04ee, 0x04fb, + 0x0504, 0x050e, 0x0514, 0x0523, 0x052b, 0x0535, 0x053f, 0x054b, + 0x0552, 0x0559, 0x0562, 0x056b, 0x0572, 0x0579, 0x0583, 0x058a, + 0x0594, 0x059e, 0x05a6, 0x05b1, 0x05bc, 0x05c7, 0x05cf, 0x05db, + 0x05e3, 0x05ea, 0x05f1, 0x05f8, 0x0600, 0x0609, 0x0613, 0x061d, + 0x0624, 0x0637, 0x063e, 0x0649, 0x0651, 0x065b, 0x0663, 0x066a, + 0x0672, 0x067b, 0x0685, 0x068b, 0x0693, 0x0693, 0x0693, 0x0693, + 0x0693, 0x0693, 0x0693, 0x0693, 0x069d, 0x06a5, 0x06a5, 0x06a5, + // Entry C0 - FF + 0x06a5, 0x06a5, 0x06b2, 0x06b2, 0x06b9, 0x06c3, 0x06c3, 0x06c3, + 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06c3, 0x06cc, 0x06cc, + 0x06cc, 0x06cc, 0x06d3, 0x06dc, 0x06dc, 0x06dc, 0x06dc, 0x06dc, + 0x06dc, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, + 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, 0x06e3, + 0x06e3, 0x06e3, 0x06e3, 0x06ee, 0x06f6, 0x06f6, 0x06f6, 0x06f6, + 0x06f6, 0x06f6, 0x06f6, 0x06f6, 0x0702, 0x0702, 0x0702, 0x0702, + 0x0702, 0x0708, 0x0708, 0x0708, 0x0708, 0x0710, 0x0710, 0x0710, + // Entry 100 - 13F + 0x0717, 0x0717, 0x0717, 0x0722, 0x0722, 0x0722, 0x0722, 0x0722, + 0x0722, 0x0722, 0x0722, 0x0729, 0x0729, 0x073c, 0x073c, 0x073c, + 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x074b, 0x0759, + 0x0759, 0x0759, 0x0767, 0x0767, 0x0767, 0x0767, 0x0767, 0x0771, + 0x0771, 0x0771, 0x0771, 0x0780, 0x078e, 0x078e, 0x07a7, 0x07a7, + 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b9, + 0x07b9, 0x07b9, 0x07cf, 0x07e4, 0x07e4, 0x07e4, 0x07e4, 0x07e4, + 0x07e4, 0x07f2, 0x080a, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, + // Entry 140 - 17F + 0x0818, 0x081f, 0x0830, 0x083d, 0x0842, 0x0849, 0x085b, 0x085b, + 0x0862, 0x0862, 0x0868, 0x0868, 0x0870, 0x0870, 0x0870, 0x0870, + 0x0870, 0x0870, 0x0870, 0x0870, 0x087b, 0x0889, 0x0889, 0x0889, + 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, + 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, + 0x0889, 0x0889, 0x0889, 0x0889, 0x0893, 0x0893, 0x0893, 0x0893, + 0x0893, 0x0893, 0x089d, 0x08a6, 0x08a6, 0x08a6, 0x08a6, 0x08a6, + 0x08a6, 0x08af, 0x08af, 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08d0, + // Entry 180 - 1BF + 0x08da, 0x08da, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, + 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, + 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08e4, + 0x08e4, 0x08eb, 0x08eb, 0x08eb, 0x08f9, 0x08f9, 0x08f9, 0x08f9, + 0x08f9, 0x08f9, 0x0904, 0x090e, 0x090e, 0x091f, 0x091f, 0x091f, + 0x091f, 0x092b, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, 0x0935, + 0x0935, 0x0935, 0x094c, 0x094c, 0x094c, 0x0955, 0x0955, 0x0955, + 0x0955, 0x0955, 0x0965, 0x0965, 0x0965, 0x097a, 0x097a, 0x097a, + // Entry 1C0 - 1FF + 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, + 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x097a, 0x0987, 0x0987, + 0x0987, 0x0987, 0x0987, 0x0987, 0x098f, 0x098f, 0x098f, 0x098f, + 0x098f, 0x098f, 0x098f, 0x098f, 0x098f, 0x098f, 0x0997, 0x0997, + 0x0997, 0x0997, 0x09a2, 0x09a2, 0x09a2, 0x09a9, 0x09bb, 0x09bb, + 0x09bb, 0x09c5, 0x09c5, 0x09c5, 0x09c5, 0x09cc, 0x09d4, 0x09d4, + 0x09d4, 0x09d4, 0x09d4, 0x09d4, 0x09d4, 0x09d4, 0x09e1, 0x09e1, + 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09e1, 0x09ed, + // Entry 200 - 23F + 0x09ed, 0x09ed, 0x09ed, 0x09f7, 0x09f7, 0x09f7, 0x09f7, 0x09f7, + 0x09f7, 0x09f7, 0x0a01, 0x0a01, 0x0a01, 0x0a08, 0x0a11, 0x0a11, + 0x0a11, 0x0a11, 0x0a11, 0x0a11, 0x0a11, 0x0a11, 0x0a11, 0x0a11, + 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, + 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, 0x0a18, + 0x0a21, 0x0a21, 0x0a21, 0x0a31, 0x0a31, 0x0a3b, 0x0a3b, 0x0a53, + 0x0a53, 0x0a53, 0x0a53, 0x0a53, 0x0a53, 0x0a53, 0x0a53, 0x0a53, + 0x0a53, 0x0a53, 0x0a5d, 0x0a5d, 0x0a5d, 0x0a5d, 0x0a5d, 0x0a5d, + // Entry 240 - 27F + 0x0a5d, 0x0a5d, 0x0a66, 0x0a66, 0x0a66, 0x0a71, 0x0a71, 0x0a71, + 0x0a78, 0x0a91, 0x0a91, 0x0aa7, 0x0aa7, 0x0abb, 0x0ad8, 0x0aea, + 0x0afb, 0x0b0d, 0x0b22, 0x0b40, 0x0b51, 0x0b67, 0x0b67, 0x0b7a, + 0x0b8f, 0x0ba4, 0x0bb1, 0x0bcc, 0x0be4, 0x0bee, 0x0bff, 0x0c14, + 0x0c25, 0x0c3a, + }, + }, + { // gd + "AfarAbchasaisAvestanaisAfraganaisAkanAmtharaisAragonaisArabaisAsamaisAva" + + "raisAymaraAsarbaideànaisBashkirBealaruisisBulgaraisBislamaBambaraBea" + + "ngailisTibeitisBreatnaisBosnaisCatalanaisDeideanaisChamorroCorsaisCr" + + "eeSeacaisSlàbhais na h-EaglaiseChuvashCuimrisDanmhairgisGearmailtisD" + + "ivehiDzongkhaEweGreugaisBeurlaEsperantoSpàinntisEastoinisBasgaisPeir" + + "sisFulahFionnlannaisFìdisFàrothaisFraingisFrìoslannais ShiarachGaeil" + + "geGàidhligGailìsisGuaraníGujaratiGaelgHausaEabhraHindisHiri MotuCròt" + + "haisisCrìtheol HaidhtiUngairisAirmeinisHereroInterlinguaInnd-InnsisI" + + "nterlingueIgboYi SichuanInupiaqIdoInnis TìlisEadailtisInuktitutSeapa" + + "naisDeàbhanaisCairtbheilisKongoKikuyuKuanyamaCasachaisKalaallisutCmè" + + "arKannadaCoirèanaisKanuriCaismirisCùrdaisKomiCòrnaisCìorgasaisLaidea" + + "nnLugsamburgaisGandaCànan LimburgLingalaLàthoLiotuainisLuba-KatangaL" + + "aitbheisMalagasaisMarshallaisMÄoriMasadonaisMalayalamMongolaisMarath" + + "iMalaidhisMaltaisBurmaisNabhruNdebele ThuathachNeapàlaisNdongaDuitsi" + + "sNynorsk na NirribhidhBokmÃ¥l na NirribhidhNdebele DheasachNavajoChic" + + "hewaOgsatanaisOjibwaOromoOdiaOsseticPanjabiPaliPòlainnisPashtoPortag" + + "ailisCeatsuaRumainsKirundiRomàinisRuisisKinyarwandaSanskritSàrdaisSi" + + "ndhiSàmais ThuathachSangoSinhalaSlòbhacaisSlòbhainisSamothaisShonaSo" + + "màilisAlbàinisSèirbisSwatiLeasotach DheasachCànan SundaSuainisKiswah" + + "iliTaimilisTeluguTaidigisTàidhTigrinyaTurcmanaisTswanaTongaisTurcais" + + "TsongaTataraisCànan TahitiÙigiuraisUcràinisÙrduUsbagaisVendaBhiet-Na" + + "maisVolapükWalloonWolofXhosaIùdhaisIorubaZhuangSìnisZuluBasa AcèhAco" + + "liAdangmeAdygheArabais ThuiniseachAfrihiliAghemAinuAcadaisAlabamaAle" + + "utaisAlbàinis GhegeachSeann-BheurlaAngikaAramaisMapucheAraonaArapaho" + + "Arabais AildireachArawakArabais MhorocachArabais ÈipheiteachAsuCainn" + + "t-shanais na h-AimeireagaAstùraisKotavaAwadhiBaluchìCànan BaliBasaaB" + + "amunBatak TobaGhomalaBejaBembaBetawiBenaBafutBadagaBalochi ShiarachB" + + "hojpuriBikolBiniBanjarKomSiksikaBishnupriyaBakhtiariBrajBrahuiBodoAk" + + "ooseBuriatCànan nam BugisBuluBlinMedumbaCaddoCaribCayugaAtsamCebuano" + + "ChigaChibchaChagataiCànan ChuukMariChinuk WawaChoctawChipewyanCherok" + + "eeCheyenneCùrdais SoranîCoptaisCapiznonTurcais ChriomachCaisiubaisDa" + + "kotaDargwaTaitaDelawareSlaveyDogribDinkaZarmaDogriSòrbais ÃŒochdarach" + + "Dusun MheadhanachDualaMeadhan-DhuitsisJola-FonyiDyulaDazagaEmbuEfikÈ" + + "ipheitis ÀrsaidhEkajukElamaisMeadhan-BheurlaYupik MheadhanachEwondoC" + + "ànan na h-ExtremaduraFangFilipinisMeänkieliFonFraingis nan CajunMea" + + "dhan-FhraingisSeann-FhraingisArpitanFrìoslannais ThuathachFrìoslanna" + + "is EarachFriùilisGaGagauzGanGayoGbayaDari ZoroastrachGe’ezCiribeasai" + + "sGilakiMeadhan-Àrd-GearmailtisSeann-Àrd-GearmailtisKonkani GoaGondiG" + + "orontaloGotaisGreboGreugais ÀrsaidhGearmailtis EilbheiseachWayuuFraf" + + "raGusiiGwichʼinHaidaHakkaCànan Hawai’iHindis FhìditheachHiligaynonCà" + + "nan HetHmongSòrbais UachdarachXiangHupaIbanIbibioIlokoIngushBeurla C" + + "rìtheolach DiameugaLojbanNgombaMachamePeirsis IùdhachArabais Iùdhach" + + "Kara-KalpakKabyleKachinJjuKambaKawiKanembuTyapMakondeKabuverdianuKen" + + "yangKoroKaingangKhasiCànan KhotanKoyra ChiiniKhowarKirmanjkiKakoKale" + + "njinKimbunduKomi-PermyakKonkaniKpelleKarachay-BalkarKrioKinaray-aKur" + + "ukhShambalaBafiaKumykKutenaiLadinoLangiLahndaLambaLingua Franca Nova" + + "LiogùraisLakhótaLombardaisMongoLoziLuri ThuathachLuba-LuluaLuiseñoLu" + + "ndaLuoMizoLuyiaSìnis an LitreachaisLazCànan MadhuraMafaMagahiMaithil" + + "iMakasarMandingoMaasaiMabaMokshaMandarMendeMeruMorisyenMeadhan-Ghaei" + + "lgeMakhuwa-MeettoMeta’Mi’kmaqMinangkabauManchuManipuriMohawkMossiMar" + + "i ShiarachMundangIomadh cànanCreekMarwariMentawaiMyeneErzyaMazandera" + + "niMin NanNamaGearmailtis ÃŒochdarachNewariNiasCànan NiueAo NagaKwasio" + + "NgiemboonNogaiSeann-LochlannaisNovialN’KoLeasotais ThuathachNuerNewa" + + "ri ChlasaigeachNyamweziNyankoleNyoroNzimaOsageTurcais OtomanachPanga" + + "sinanPahlaviPampangaPapiamentoPalabhaisPicardGearmailtis Phennsylvan" + + "iaPlautdietschSeann-PheirsisPhenicisPiedmonteseCànan PohnpeiPruisisS" + + "eann-PhrovençalK’iche’Quichua Àrd-tìr ChimborazoRajasthaniRapa NuiCà" + + "nan RarotongaRomagnolRomboRomanaisRusynRovianaRwaSandaweSachaisArama" + + "is ShamaritanachSamburuSasakSantaliSaurashtraNgambaySanguSisilisAlba" + + "isSassareseCùrdais DheasachSenecaSenaSeriSelkupKoyraboro SenniSeann-" + + "GhaeilgeTachelhitShanArabais SeàdachSidamoSelayarSàmais DheasachSàma" + + "is LuleSàmais InariSàmais SkoltSoninkeSranan TongoSererSahoSukumaSus" + + "uCànan SumerComoraisSuraidheac ChlasaigeachSuraidheacTuluTimneTesoTe" + + "rênaTetumTigreTivTokelauTsakhurKlingonTlingitTalyshTamashekNyasa Ton" + + "gaTok PisinTuroyoTarokoTsimshianTatiTumbukaTubhaluTasawaqCànan TuvaT" + + "amazight Meadhan na h-AtlasUdmurtUmbunduRootVaiVepsFlannrais Siarach" + + "VõroVunjoGearmailtis WallisWolayttaWarayWashoWarlpiriWuKalmykSogaYao" + + "Cànan YapYangbenYembaNheengatuCantonaisZapotecComharran BlissCànan Z" + + "eelandZenagaTamazight Stannardach MorocoZuñiSusbaint nach eil ’na ch" + + "ànanZazakiNuadh-Arabais StannardachGearmailtis na h-OstaireÀrd-Ghea" + + "rmailtis na h-EilbheiseBeurla AstràiliaBeurla ChanadaBeurla Bhreatai" + + "nnBeurla na h-AimeireagaSpàinntis na h-Aimeireaga LaidinneachSpàinnt" + + "is EòrpachSpàinntis MheagsagachFraingis ChanadaFraingis Eilbheiseach" + + "Sagsannais ÃŒochdarachFlannraisPortagailis BhraisileachPortagailis Eò" + + "rpachMoldobhaisSèirb-ChròthaisisKiswahili na CongoSìnis ShimplichteS" + + "ìnis Thradaiseanta", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0017, 0x0021, 0x0025, 0x002e, 0x0037, + 0x003e, 0x0045, 0x004c, 0x0052, 0x0061, 0x0068, 0x0073, 0x007c, + 0x0083, 0x008a, 0x0094, 0x009c, 0x00a5, 0x00ac, 0x00b6, 0x00c0, + 0x00c8, 0x00cf, 0x00d3, 0x00da, 0x00f1, 0x00f8, 0x00ff, 0x010a, + 0x0115, 0x011b, 0x0123, 0x0126, 0x012e, 0x0134, 0x013d, 0x0147, + 0x0150, 0x0157, 0x015e, 0x0163, 0x016f, 0x0175, 0x017f, 0x0187, + 0x019d, 0x01a4, 0x01ad, 0x01b6, 0x01be, 0x01c6, 0x01cb, 0x01d0, + 0x01d6, 0x01dc, 0x01e5, 0x01f0, 0x0201, 0x0209, 0x0212, 0x0218, + // Entry 40 - 7F + 0x0223, 0x022e, 0x0239, 0x023d, 0x0247, 0x024e, 0x0251, 0x025d, + 0x0266, 0x026f, 0x0278, 0x0283, 0x028f, 0x0294, 0x029a, 0x02a2, + 0x02ab, 0x02b6, 0x02bc, 0x02c3, 0x02ce, 0x02d4, 0x02dd, 0x02e5, + 0x02e9, 0x02f1, 0x02fc, 0x0304, 0x0311, 0x0316, 0x0324, 0x032b, + 0x0331, 0x033b, 0x0347, 0x0350, 0x035a, 0x0365, 0x036b, 0x0375, + 0x037e, 0x0387, 0x038e, 0x0397, 0x039e, 0x03a5, 0x03ab, 0x03bc, + 0x03c6, 0x03cc, 0x03d3, 0x03e8, 0x03fd, 0x040d, 0x0413, 0x041b, + 0x0425, 0x042b, 0x0430, 0x0434, 0x043b, 0x0442, 0x0446, 0x0450, + // Entry 80 - BF + 0x0456, 0x0461, 0x0468, 0x046f, 0x0476, 0x047f, 0x0485, 0x0490, + 0x0498, 0x04a0, 0x04a6, 0x04b7, 0x04bc, 0x04c3, 0x04ce, 0x04d9, + 0x04e2, 0x04e7, 0x04f0, 0x04f9, 0x0501, 0x0506, 0x0518, 0x0524, + 0x052b, 0x0534, 0x053c, 0x0542, 0x054a, 0x0550, 0x0558, 0x0562, + 0x0568, 0x056f, 0x0576, 0x057c, 0x0584, 0x0591, 0x059b, 0x05a4, + 0x05a9, 0x05b1, 0x05b6, 0x05c2, 0x05ca, 0x05d1, 0x05d6, 0x05db, + 0x05e3, 0x05e9, 0x05ef, 0x05f5, 0x05f9, 0x0603, 0x0608, 0x060f, + 0x0615, 0x0628, 0x0630, 0x0635, 0x0639, 0x0640, 0x0647, 0x064f, + // Entry C0 - FF + 0x0661, 0x0661, 0x066e, 0x0674, 0x067b, 0x0682, 0x0688, 0x068f, + 0x06a1, 0x06a7, 0x06b8, 0x06cc, 0x06cf, 0x06ed, 0x06f6, 0x06fc, + 0x0702, 0x070a, 0x0715, 0x0715, 0x071a, 0x071f, 0x0729, 0x0730, + 0x0734, 0x0739, 0x073f, 0x0743, 0x0748, 0x074e, 0x075e, 0x0766, + 0x076b, 0x076f, 0x0775, 0x0778, 0x077f, 0x078a, 0x0793, 0x0797, + 0x079d, 0x07a1, 0x07a7, 0x07ad, 0x07bd, 0x07c1, 0x07c5, 0x07cc, + 0x07d1, 0x07d6, 0x07dc, 0x07e1, 0x07e8, 0x07ed, 0x07f4, 0x07fc, + 0x0808, 0x080c, 0x0817, 0x081e, 0x0827, 0x082f, 0x0837, 0x0847, + // Entry 100 - 13F + 0x084e, 0x0856, 0x0867, 0x0871, 0x0877, 0x087d, 0x0882, 0x088a, + 0x0890, 0x0896, 0x089b, 0x08a0, 0x08a5, 0x08b9, 0x08ca, 0x08cf, + 0x08df, 0x08e9, 0x08ee, 0x08f4, 0x08f8, 0x08fc, 0x08fc, 0x090f, + 0x0915, 0x091c, 0x092b, 0x093c, 0x0942, 0x0959, 0x095d, 0x0966, + 0x0970, 0x0973, 0x0985, 0x0996, 0x09a5, 0x09ac, 0x09c3, 0x09d7, + 0x09e0, 0x09e2, 0x09e8, 0x09eb, 0x09ef, 0x09f4, 0x0a04, 0x0a0b, + 0x0a16, 0x0a1c, 0x0a34, 0x0a4a, 0x0a55, 0x0a5a, 0x0a63, 0x0a69, + 0x0a6e, 0x0a7f, 0x0a97, 0x0a9c, 0x0aa2, 0x0aa7, 0x0ab0, 0x0ab5, + // Entry 140 - 17F + 0x0aba, 0x0aca, 0x0add, 0x0ae7, 0x0af1, 0x0af6, 0x0b09, 0x0b0e, + 0x0b12, 0x0b16, 0x0b1c, 0x0b21, 0x0b27, 0x0b27, 0x0b43, 0x0b49, + 0x0b4f, 0x0b56, 0x0b66, 0x0b76, 0x0b76, 0x0b81, 0x0b87, 0x0b8d, + 0x0b90, 0x0b95, 0x0b99, 0x0b99, 0x0ba0, 0x0ba4, 0x0bab, 0x0bb7, + 0x0bbe, 0x0bc2, 0x0bca, 0x0bcf, 0x0bdc, 0x0be8, 0x0bee, 0x0bf7, + 0x0bfb, 0x0c03, 0x0c0b, 0x0c17, 0x0c1e, 0x0c1e, 0x0c24, 0x0c33, + 0x0c37, 0x0c40, 0x0c40, 0x0c46, 0x0c4e, 0x0c53, 0x0c53, 0x0c58, + 0x0c5f, 0x0c65, 0x0c6a, 0x0c70, 0x0c75, 0x0c75, 0x0c87, 0x0c91, + // Entry 180 - 1BF + 0x0c91, 0x0c99, 0x0ca3, 0x0ca8, 0x0cac, 0x0cba, 0x0cba, 0x0cc4, + 0x0ccc, 0x0cd1, 0x0cd4, 0x0cd8, 0x0cdd, 0x0cf2, 0x0cf5, 0x0d03, + 0x0d07, 0x0d0d, 0x0d15, 0x0d1c, 0x0d24, 0x0d2a, 0x0d2e, 0x0d34, + 0x0d3a, 0x0d3f, 0x0d43, 0x0d4b, 0x0d5b, 0x0d69, 0x0d70, 0x0d79, + 0x0d84, 0x0d8a, 0x0d92, 0x0d98, 0x0d9d, 0x0daa, 0x0db1, 0x0dbe, + 0x0dc3, 0x0dc3, 0x0dca, 0x0dd2, 0x0dd7, 0x0ddc, 0x0de7, 0x0dee, + 0x0dee, 0x0df2, 0x0e09, 0x0e0f, 0x0e13, 0x0e1e, 0x0e25, 0x0e2b, + 0x0e34, 0x0e39, 0x0e4a, 0x0e50, 0x0e56, 0x0e69, 0x0e6d, 0x0e80, + // Entry 1C0 - 1FF + 0x0e88, 0x0e90, 0x0e95, 0x0e9a, 0x0e9f, 0x0eb0, 0x0eba, 0x0ec1, + 0x0ec9, 0x0ed3, 0x0edc, 0x0ee2, 0x0efb, 0x0f07, 0x0f15, 0x0f15, + 0x0f1d, 0x0f28, 0x0f28, 0x0f36, 0x0f3d, 0x0f4e, 0x0f59, 0x0f75, + 0x0f7f, 0x0f87, 0x0f97, 0x0f9f, 0x0f9f, 0x0fa4, 0x0fac, 0x0fac, + 0x0fb1, 0x0fb8, 0x0fb8, 0x0fbb, 0x0fc2, 0x0fc9, 0x0fde, 0x0fe5, + 0x0fea, 0x0ff1, 0x0ffb, 0x1002, 0x1007, 0x100e, 0x1014, 0x101d, + 0x102e, 0x1034, 0x1038, 0x103c, 0x1042, 0x1051, 0x105f, 0x105f, + 0x1068, 0x106c, 0x107c, 0x1082, 0x1082, 0x1089, 0x1099, 0x10a5, + // Entry 200 - 23F + 0x10b2, 0x10bf, 0x10c6, 0x10c6, 0x10d2, 0x10d7, 0x10db, 0x10db, + 0x10e1, 0x10e5, 0x10f1, 0x10f9, 0x1110, 0x111a, 0x111a, 0x111e, + 0x1123, 0x1127, 0x112e, 0x1133, 0x1138, 0x113b, 0x1142, 0x1149, + 0x1150, 0x1157, 0x115d, 0x1165, 0x1170, 0x1179, 0x117f, 0x1185, + 0x1185, 0x118e, 0x1192, 0x1199, 0x11a0, 0x11a7, 0x11b2, 0x11ce, + 0x11d4, 0x11d4, 0x11db, 0x11df, 0x11e2, 0x11e2, 0x11e6, 0x11f7, + 0x11f7, 0x11f7, 0x11fc, 0x1201, 0x1213, 0x121b, 0x1220, 0x1225, + 0x122d, 0x122f, 0x1235, 0x1235, 0x1239, 0x123c, 0x1246, 0x124d, + // Entry 240 - 27F + 0x1252, 0x125b, 0x1264, 0x126b, 0x127a, 0x1288, 0x128e, 0x12aa, + 0x12af, 0x12ce, 0x12d4, 0x12ed, 0x12ed, 0x1305, 0x1325, 0x1336, + 0x1344, 0x1355, 0x136b, 0x1391, 0x13a4, 0x13ba, 0x13ba, 0x13ca, + 0x13df, 0x13f5, 0x13fe, 0x1416, 0x142a, 0x1434, 0x1447, 0x1459, + 0x146b, 0x147f, + }, + }, + { // gl + "abkhazoafrikaansakánamáricoaragonésárabeassamésaimaráacerbaixanobaskirbi" + + "elorrusobúlgarobmbengalítibetanobretónbosniocatalánChechenocorsochec" + + "oeslavo eclesiásticoChuvashgalésdinamarquésalemándivehidzongkhaewégr" + + "egoinglésesperantoespañolestonianoéuscaropersafinésfixianofaroésfran" + + "césfrisónirlandésgaélico escocésgalegoguaraníguxaratianomanxhausaheb" + + "reohindicroatahaitianohúngaroarmeniointerlinguaindonesioiboyi sichua" + + "nésislandésitalianoiuxaponésxavanésxeorxianokongokikuyucasacoklcambo" + + "dianokannadacoreanocachemirkurdokwquirguizlatínluxemburguésgandaling" + + "alalaotianolituanoluba-Katangaletónmalgaxemaorímacedoniomalabarmongo" + + "lmarathimalaiomaltésbirmanondebele do nortenepalíholandésnoruegués n" + + "ynorsknoruegués bokmalchewaoccitanooromooriyaosetiopunjabipolacopaxt" + + "únportuguésquechuaromancherundiromanésrusoruandéssánscritosindhisam" + + "i do nortesangocingaléseslovacoeslovenosamoanoshonasomalíalbanésserb" + + "ioswatisesotosondanéssuecoswahilitamiltelugutaxicotailandéstigriñatu" + + "rcomanotswanatonganésturcoxitsongatártarotahitianouigurucraínourdúuz" + + "becovendavietnamitawólofxhosayiddishiorubachinészulúacoliagqarameoma" + + "pucheasuasturianobembabezBaluchi occidentalbrxkigacheroquicurdo sora" + + "nítaitazarmadsbdualajola-fonyiembuibibioexipcio antigofilipinogagaga" + + "uzgrego antigoalemán suízogusiihawaianohsbngombamapachekabilekambama" + + "kondecaboverdianokoyra Chiiniklnkomi permiokonkanishambalabafiaLangi" + + "LakotaloziLurí do norteluba-lulualuoluyiamasaimerucrioulo mauritanom" + + "ghmgomohawkmundangvarias linguasMazandaranínaqBaixo alemánnmgnqoseso" + + "tho sa leboanusnyankolequichéromborwksaqsbpKurdo meridionalsenasesta" + + "chelhitsmasmjsmnsmstesotetúnklingontok pisintumbukatwqtzmLingua desc" + + "oñecidavaivunjoWarlpirisogatamazight de Marrocos estándarsen contido" + + " lingüísticoárabe estándar modernoalemán de austriaalto alemán suízo" + + "inglés australianoinglés canadianoinglés británicoinglés dos Estados" + + " Unidosespañol latinoamericanocastelánespañol de Méxicofrancés canad" + + "ianofrancés suízoBaixo saxónflamencoportugués brasileiroportugués eu" + + "ropeoserbocroataswcchinés simplificadochinés tradicional", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0015, 0x001d, 0x0026, + 0x002c, 0x0034, 0x0034, 0x003b, 0x0046, 0x004c, 0x0056, 0x005e, + 0x005e, 0x0060, 0x0068, 0x0070, 0x0077, 0x007d, 0x0085, 0x008d, + 0x008d, 0x0092, 0x0092, 0x0097, 0x00ab, 0x00b2, 0x00b8, 0x00c4, + 0x00cb, 0x00d1, 0x00d9, 0x00dd, 0x00e2, 0x00e9, 0x00f2, 0x00fa, + 0x0103, 0x010b, 0x0110, 0x0110, 0x0116, 0x011d, 0x0124, 0x012c, + 0x0133, 0x013c, 0x014d, 0x0153, 0x015b, 0x0166, 0x016a, 0x016f, + 0x0175, 0x017a, 0x017a, 0x0180, 0x0188, 0x0190, 0x0197, 0x0197, + // Entry 40 - 7F + 0x01a2, 0x01ab, 0x01ab, 0x01ae, 0x01bb, 0x01bb, 0x01bb, 0x01c4, + 0x01cc, 0x01ce, 0x01d6, 0x01de, 0x01e7, 0x01ec, 0x01f2, 0x01f2, + 0x01f8, 0x01fa, 0x0204, 0x020b, 0x0212, 0x0212, 0x021a, 0x021f, + 0x021f, 0x0221, 0x0229, 0x022f, 0x023c, 0x0241, 0x0241, 0x0248, + 0x0250, 0x0257, 0x0263, 0x0269, 0x0270, 0x0270, 0x0276, 0x027f, + 0x0286, 0x028c, 0x0293, 0x0299, 0x02a0, 0x02a7, 0x02a7, 0x02b7, + 0x02be, 0x02be, 0x02c7, 0x02d9, 0x02ea, 0x02ea, 0x02ea, 0x02ef, + 0x02f7, 0x02f7, 0x02fc, 0x0301, 0x0307, 0x030e, 0x030e, 0x0314, + // Entry 80 - BF + 0x031b, 0x0325, 0x032c, 0x0334, 0x0339, 0x0341, 0x0345, 0x034d, + 0x0357, 0x0357, 0x035d, 0x036a, 0x036f, 0x0378, 0x0380, 0x0388, + 0x038f, 0x0394, 0x039b, 0x03a3, 0x03a9, 0x03ae, 0x03b4, 0x03bd, + 0x03c2, 0x03c9, 0x03ce, 0x03d4, 0x03da, 0x03e4, 0x03ec, 0x03f5, + 0x03fb, 0x0404, 0x0409, 0x0411, 0x0419, 0x0422, 0x0427, 0x042f, + 0x0434, 0x043a, 0x043f, 0x0449, 0x0449, 0x0449, 0x044f, 0x0454, + 0x045b, 0x0461, 0x0461, 0x0468, 0x046d, 0x046d, 0x0472, 0x0472, + 0x0472, 0x0472, 0x0472, 0x0475, 0x0475, 0x0475, 0x0475, 0x0475, + // Entry C0 - FF + 0x0475, 0x0475, 0x0475, 0x0475, 0x047b, 0x0482, 0x0482, 0x0482, + 0x0482, 0x0482, 0x0482, 0x0482, 0x0485, 0x0485, 0x048e, 0x048e, + 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, 0x048e, + 0x048e, 0x0493, 0x0493, 0x0496, 0x0496, 0x0496, 0x04a8, 0x04a8, + 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, + 0x04a8, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, + 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04ab, 0x04af, 0x04af, 0x04af, + 0x04af, 0x04af, 0x04af, 0x04af, 0x04af, 0x04b7, 0x04b7, 0x04c4, + // Entry 100 - 13F + 0x04c4, 0x04c4, 0x04c4, 0x04c4, 0x04c4, 0x04c4, 0x04c9, 0x04c9, + 0x04c9, 0x04c9, 0x04c9, 0x04ce, 0x04ce, 0x04d1, 0x04d1, 0x04d6, + 0x04d6, 0x04e0, 0x04e0, 0x04e0, 0x04e4, 0x04ea, 0x04ea, 0x04f8, + 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x04f8, 0x0500, + 0x0500, 0x0500, 0x0500, 0x0500, 0x0500, 0x0500, 0x0500, 0x0500, + 0x0500, 0x0502, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, + 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, 0x0508, + 0x0508, 0x0514, 0x0522, 0x0522, 0x0522, 0x0527, 0x0527, 0x0527, + // Entry 140 - 17F + 0x0527, 0x052f, 0x052f, 0x052f, 0x052f, 0x052f, 0x0532, 0x0532, + 0x0532, 0x0532, 0x0532, 0x0532, 0x0532, 0x0532, 0x0532, 0x0532, + 0x0538, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x0545, 0x0545, + 0x0545, 0x054a, 0x054a, 0x054a, 0x054a, 0x054a, 0x0551, 0x055d, + 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x0569, 0x0569, 0x0569, + 0x0569, 0x056c, 0x056c, 0x0577, 0x057e, 0x057e, 0x057e, 0x057e, + 0x057e, 0x057e, 0x057e, 0x057e, 0x0586, 0x058b, 0x058b, 0x058b, + 0x058b, 0x058b, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, + // Entry 180 - 1BF + 0x0590, 0x0596, 0x0596, 0x0596, 0x059a, 0x05a8, 0x05a8, 0x05b2, + 0x05b2, 0x05b2, 0x05b5, 0x05b5, 0x05ba, 0x05ba, 0x05ba, 0x05ba, + 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05ba, 0x05bf, 0x05bf, 0x05bf, + 0x05bf, 0x05bf, 0x05c3, 0x05d4, 0x05d4, 0x05d7, 0x05da, 0x05da, + 0x05da, 0x05da, 0x05da, 0x05e0, 0x05e0, 0x05e0, 0x05e7, 0x05f5, + 0x05f5, 0x05f5, 0x05f5, 0x05f5, 0x05f5, 0x05f5, 0x0601, 0x0601, + 0x0601, 0x0604, 0x0611, 0x0611, 0x0611, 0x0611, 0x0611, 0x0614, + 0x0614, 0x0614, 0x0614, 0x0614, 0x0617, 0x0627, 0x062a, 0x062a, + // Entry 1C0 - 1FF + 0x062a, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, + 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, + 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0632, 0x0639, 0x0639, + 0x0639, 0x0639, 0x0639, 0x0639, 0x0639, 0x063e, 0x063e, 0x063e, + 0x063e, 0x063e, 0x063e, 0x0641, 0x0641, 0x0641, 0x0641, 0x0644, + 0x0644, 0x0644, 0x0644, 0x0644, 0x0647, 0x0647, 0x0647, 0x0647, + 0x0657, 0x0657, 0x065b, 0x065b, 0x065b, 0x065e, 0x065e, 0x065e, + 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x066a, 0x066d, + // Entry 200 - 23F + 0x0670, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, + 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, 0x0673, + 0x0673, 0x0677, 0x0677, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x068d, 0x068d, 0x068d, + 0x068d, 0x068d, 0x068d, 0x0694, 0x0694, 0x0697, 0x0697, 0x069a, + 0x069a, 0x069a, 0x069a, 0x06ad, 0x06b0, 0x06b0, 0x06b0, 0x06b0, + 0x06b0, 0x06b0, 0x06b0, 0x06b5, 0x06b5, 0x06b5, 0x06b5, 0x06b5, + 0x06bd, 0x06bd, 0x06bd, 0x06bd, 0x06c1, 0x06c1, 0x06c1, 0x06c1, + // Entry 240 - 27F + 0x06c1, 0x06c1, 0x06c1, 0x06c1, 0x06c1, 0x06c1, 0x06c1, 0x06e0, + 0x06e0, 0x06f9, 0x06f9, 0x0711, 0x0711, 0x0723, 0x0736, 0x0749, + 0x075a, 0x076c, 0x0786, 0x079e, 0x07a7, 0x07ba, 0x07ba, 0x07cc, + 0x07db, 0x07e7, 0x07ef, 0x0804, 0x0816, 0x0816, 0x0821, 0x0824, + 0x0838, 0x084b, + }, + }, + { // gsw + "AfarAbchasischAvestischAfrikaansAkanAmharischAragonesischArabischAssames" + + "ischAwarischAymaraAserbaidschanischBaschkirischWiissrussischBulgaari" + + "schBislamaBambaraBengalischTibeetischBrötoonischBosnischKatalaanisch" + + "TschetscheenischChamorroKorsischCreeTschechischChileslawischTschuwas" + + "chischWalisischTänischTüütschMalediivischDschongkhaEweGriechischÄngl" + + "ischEschperantoSchpanischEestnischBaskischPersischFulFinnischFidschi" + + "anischFäröischFranzösischFriesischIirischSchottisch-GäälischGalizisc" + + "hGuaraniGujaratiManx-GäälischHaussaHebräischHindiHiri-MotuKroazischH" + + "aitischUngarischArmenischHereroInterlinguaIndonesischInterlingueIgbo" + + "Sezuanischs YiInupiakIdoIisländischItaliänischInukitutJapanischJavan" + + "ischGeorgischKongolesischKikuyu-SchpraachKwanyamaKasachischGröönländ" + + "ischKambodschanischKannadaKoreaanischKanuri-SchpraachKaschmirischKur" + + "dischKomi-SchpraachKornischKirgiisischLatiinLuxemburgischGanda-Schpr" + + "aachLimburgischLingalaLaozischLitauischLubaLettischMadagassischMarsc" + + "hallesischMaoriMazedonischMalayalamMongolischMarathiMalaiischMaltesi" + + "schBirmanischNauruischNord-Ndebele-SchpraachNepalesischNdongaNiderlä" + + "ndischNorwegisch NynorskNorwegisch BokmÃ¥lSüüd-Ndebele-SchpraachNavaj" + + "o-SchpraachChewa-SchpraachOkzitanischOjibwa-SchpraachOromoOrijaOssez" + + "ischPandschabischPaliPolnischPaschtuPortugiisischQuechuaRätoromanisc" + + "hRundi-SchpraachRumänischRussischRuandischSanschkritSardischSindhiNo" + + "rd-SamischSangoSinghalesischSlowakischSlowenischSamoanischSchhonaSom" + + "aliAlbanischSerbischSwaziSüüd-Sotho-SchpraachSundanesischSchwedischS" + + "uaheliTamilischTeluguTadschikischThailändischTigrinjaTurkmenischTswa" + + "na-SchpraachTongaischTürkischTsongaTatarischTahitischUigurischUkrain" + + "ischUrduUsbekischVenda-SchpraachVietnamesischVolapükWallonischWolofX" + + "hosaJiddischYorubaZhuangChineesischZuluAcehAcholiAdangmeAdygaiAfrihi" + + "liAinuAkkadischAleutischSüüd-AltaischAltänglischAngikaAramääischArau" + + "kanischArapahoArawakAschturianischAwadhiBelutschischBalinesischBasaa" + + "BedauyeBembaBhodschpuriBikolischBiniBlackfoot-SchpraachBraj-BhakhaBu" + + "rjatischBugineesischBlinCaddoKariibischAtsamCebuanoTschibtschaTschag" + + "ataischTrukesischTscheremissischChinookChoctawChipewyanCherokeeCheye" + + "nneKoptischKrimtatarischKaschubischTakotaTargiinischDelaware-Schpraa" + + "chSlaveyTogribTinkaTogriNidersorbischTualaMittelniderländischTiulaEf" + + "ikischAltägyptischEkajukElamischMittelänglischEwondoPangwe-Schpraach" + + "FilipinoFonMittelfranzösischAltfranzösischNordfriesischOschtfriesisc" + + "hFriulischGaGayoGbayaGeezGilbertesischMittelhochtüütschAlthochtüütsc" + + "hGondiMongondouGotischGreboAltgriechischSchwiizertüütschKutchinischH" + + "aidaHawaiianischHiligaynonischHethitischMiaoObersorbischHupaIbanisch" + + "IlokanoInguschischLojbanischJüüdisch-PersischJüüdisch-ArabischKaraka" + + "lpakischKabylischKachin-SchpraachJjuKambaKawiKabardinischTyapKoroKha" + + "sischSakischKimbundu-SchpraachKonkaniKosraeanischKpelle-SchpraachKar" + + "atschaiisch-BalkarischKarelischOraon-SchpraachKumükischKutenai-Schpr" + + "aachLadinoLahndanischLambanischLesgischMongoRotse-SchpraachLuba-Lulu" + + "aLuiseno-SchpraachLunda-SchpraachLuo-SchpraachLushai-SchpraachMadure" + + "sischKhottaMaithiliMakassarischManding-SchpraachMassai-SchpraachMoks" + + "chamordwinischMandaresischMende-SchpraachMittelirischMicmac-Schpraac" + + "hMinangkabau-SchpraachMandschurischMeithei-SchpraachMohawk-Schpraach" + + "Mossi-SchpraachMehrschpraachigMuskogee-SchpraachMirandesischMarwaris" + + "chErzyaNeapolitanischNidertüütschNewarischNias-SchpraachNiue-Schpraa" + + "chNogaischAltnordischN’KoNord-Sotho-SchpraachAlt-NewariNyamwezi-Schp" + + "raachNyankoleNyoroNzimaOsage-SchpraachOsmanischPangasinanischMittelp" + + "ersischPampanggan-SchpraachPapiamentoPalauAltpersischPhönikischPonap" + + "eanischAltprovenzalischRajasthaniOschterinsel-SchpraachRarotonganisc" + + "hZigüünerschpraachAromunischSandawe-SchpraachJakutischSamaritanischS" + + "asakSantaliSizilianischSchottischSelkupischAltirischSchan-SchpraachS" + + "idamoSüüd-SamischLule-SamischInari-SamischSkolt-SamischSoninke-Schpr" + + "aachSogdischSrananischSerer-SchpraachSukuma-SchpraachSusuSumerischAl" + + "tsyrischSyrischTemneTereno-SchpraachTetum-SchpraachTigreTiv-Schpraac" + + "hTokelauanischKlingonischTlingit-SchpraachTamaseqTsonga-SchpraachNeu" + + "melanesischTsimshian-SchpraachTumbuka-SchpraachElliceanischTuwinisch" + + "UdmurtischUgaritischMbundu-SchpraachRootVai-SchpraachWotischWalamo-S" + + "chpraachWarayWasho-SchpraachKalmückischYao-SchpraachYapesischZapotek" + + "ischBliss-SymboolZenagaZuni-SchpraachKän schpraachliche InhaltZazaÖs" + + "chtriichischs TüütschSchwiizer HochtüütschAuschtralischs ÄnglischKan" + + "adischs ÄnglischBritischs ÄnglischAmerikanischs ÄnglischLatiinamerik" + + "anischs SchpanischIbeerischs SchpanischKanadischs FranzösischSchwiiz" + + "er FranzösischFläämischBrasilianischs PortugiisischIberischs Portugi" + + "isischMoldawischSerbo-KroatischVeräifachts ChineesischTradizionells " + + "Chineesisch", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, + 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0084, 0x008f, + 0x0096, 0x009d, 0x00a7, 0x00b1, 0x00bd, 0x00c5, 0x00d1, 0x00e1, + 0x00e9, 0x00f1, 0x00f5, 0x0100, 0x010d, 0x011b, 0x0124, 0x012c, + 0x0135, 0x0141, 0x014b, 0x014e, 0x0158, 0x0161, 0x016c, 0x0176, + 0x017f, 0x0187, 0x018f, 0x0192, 0x019a, 0x01a7, 0x01b1, 0x01bd, + 0x01c6, 0x01cd, 0x01e2, 0x01eb, 0x01f2, 0x01fa, 0x0209, 0x020f, + 0x0219, 0x021e, 0x0227, 0x0230, 0x0238, 0x0241, 0x024a, 0x0250, + // Entry 40 - 7F + 0x025b, 0x0266, 0x0271, 0x0275, 0x0283, 0x028a, 0x028d, 0x0299, + 0x02a5, 0x02ad, 0x02b6, 0x02bf, 0x02c8, 0x02d4, 0x02e4, 0x02ec, + 0x02f6, 0x0306, 0x0315, 0x031c, 0x0327, 0x0337, 0x0343, 0x034b, + 0x0359, 0x0361, 0x036c, 0x0372, 0x037f, 0x038e, 0x0399, 0x03a0, + 0x03a8, 0x03b1, 0x03b5, 0x03bd, 0x03c9, 0x03d8, 0x03dd, 0x03e8, + 0x03f1, 0x03fb, 0x0402, 0x040b, 0x0415, 0x041f, 0x0428, 0x043e, + 0x0449, 0x044f, 0x045d, 0x046f, 0x0481, 0x0499, 0x04a9, 0x04b8, + 0x04c3, 0x04d3, 0x04d8, 0x04dd, 0x04e6, 0x04f3, 0x04f7, 0x04ff, + // Entry 80 - BF + 0x0506, 0x0513, 0x051a, 0x0528, 0x0537, 0x0541, 0x0549, 0x0552, + 0x055c, 0x0564, 0x056a, 0x0576, 0x057b, 0x0588, 0x0592, 0x059c, + 0x05a6, 0x05ad, 0x05b3, 0x05bc, 0x05c4, 0x05c9, 0x05df, 0x05eb, + 0x05f5, 0x05fc, 0x0605, 0x060b, 0x0617, 0x0624, 0x062c, 0x0637, + 0x0647, 0x0650, 0x0659, 0x065f, 0x0668, 0x0671, 0x067a, 0x0684, + 0x0688, 0x0691, 0x06a0, 0x06ad, 0x06b5, 0x06bf, 0x06c4, 0x06c9, + 0x06d1, 0x06d7, 0x06dd, 0x06e8, 0x06ec, 0x06f0, 0x06f6, 0x06fd, + 0x0703, 0x0703, 0x070b, 0x070b, 0x070f, 0x0718, 0x0718, 0x0721, + // Entry C0 - FF + 0x0721, 0x0730, 0x073c, 0x0742, 0x074e, 0x0759, 0x0759, 0x0760, + 0x0760, 0x0766, 0x0766, 0x0766, 0x0766, 0x0766, 0x0774, 0x0774, + 0x077a, 0x0786, 0x0791, 0x0791, 0x0796, 0x0796, 0x0796, 0x0796, + 0x079d, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07ad, + 0x07b6, 0x07ba, 0x07ba, 0x07ba, 0x07cd, 0x07cd, 0x07cd, 0x07d8, + 0x07d8, 0x07d8, 0x07d8, 0x07e2, 0x07ee, 0x07ee, 0x07f2, 0x07f2, + 0x07f7, 0x0801, 0x0801, 0x0806, 0x080d, 0x080d, 0x0818, 0x0825, + 0x082f, 0x083e, 0x0845, 0x084c, 0x0855, 0x085d, 0x0865, 0x0865, + // Entry 100 - 13F + 0x086d, 0x086d, 0x087a, 0x0885, 0x088b, 0x0896, 0x0896, 0x08a8, + 0x08ae, 0x08b4, 0x08b9, 0x08b9, 0x08be, 0x08cb, 0x08cb, 0x08d0, + 0x08e4, 0x08e4, 0x08e9, 0x08e9, 0x08e9, 0x08f1, 0x08f1, 0x08fe, + 0x0904, 0x090c, 0x091b, 0x091b, 0x0921, 0x0921, 0x0931, 0x0939, + 0x0939, 0x093c, 0x093c, 0x094e, 0x095d, 0x095d, 0x096a, 0x0978, + 0x0981, 0x0983, 0x0983, 0x0983, 0x0987, 0x098c, 0x098c, 0x0990, + 0x099d, 0x099d, 0x09b0, 0x09c0, 0x09c0, 0x09c5, 0x09ce, 0x09d5, + 0x09da, 0x09e7, 0x09f9, 0x09f9, 0x09f9, 0x09f9, 0x0a04, 0x0a09, + // Entry 140 - 17F + 0x0a09, 0x0a15, 0x0a15, 0x0a23, 0x0a2d, 0x0a31, 0x0a3d, 0x0a3d, + 0x0a41, 0x0a49, 0x0a49, 0x0a50, 0x0a5b, 0x0a5b, 0x0a5b, 0x0a65, + 0x0a65, 0x0a65, 0x0a78, 0x0a8b, 0x0a8b, 0x0a99, 0x0aa2, 0x0ab2, + 0x0ab5, 0x0aba, 0x0abe, 0x0aca, 0x0aca, 0x0ace, 0x0ace, 0x0ace, + 0x0ace, 0x0ad2, 0x0ad2, 0x0ada, 0x0ae1, 0x0ae1, 0x0ae1, 0x0ae1, + 0x0ae1, 0x0ae1, 0x0af3, 0x0af3, 0x0afa, 0x0b06, 0x0b16, 0x0b2f, + 0x0b2f, 0x0b2f, 0x0b38, 0x0b47, 0x0b47, 0x0b47, 0x0b47, 0x0b51, + 0x0b62, 0x0b68, 0x0b68, 0x0b73, 0x0b7d, 0x0b85, 0x0b85, 0x0b85, + // Entry 180 - 1BF + 0x0b85, 0x0b85, 0x0b85, 0x0b8a, 0x0b99, 0x0b99, 0x0b99, 0x0ba3, + 0x0bb4, 0x0bc3, 0x0bd0, 0x0be0, 0x0be0, 0x0be0, 0x0be0, 0x0beb, + 0x0beb, 0x0bf1, 0x0bf9, 0x0c05, 0x0c16, 0x0c26, 0x0c26, 0x0c38, + 0x0c44, 0x0c53, 0x0c53, 0x0c53, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c6f, + 0x0c84, 0x0c91, 0x0ca2, 0x0cb2, 0x0cc1, 0x0cc1, 0x0cc1, 0x0cd0, + 0x0ce2, 0x0cee, 0x0cf8, 0x0cf8, 0x0cf8, 0x0cfd, 0x0cfd, 0x0cfd, + 0x0d0b, 0x0d0b, 0x0d19, 0x0d22, 0x0d30, 0x0d3e, 0x0d3e, 0x0d3e, + 0x0d3e, 0x0d46, 0x0d51, 0x0d51, 0x0d57, 0x0d6b, 0x0d6b, 0x0d75, + // Entry 1C0 - 1FF + 0x0d87, 0x0d8f, 0x0d94, 0x0d99, 0x0da8, 0x0db1, 0x0dbf, 0x0dcd, + 0x0de1, 0x0deb, 0x0df0, 0x0df0, 0x0df0, 0x0df0, 0x0dfb, 0x0dfb, + 0x0e06, 0x0e06, 0x0e06, 0x0e12, 0x0e12, 0x0e22, 0x0e22, 0x0e22, + 0x0e2c, 0x0e42, 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e63, 0x0e63, + 0x0e63, 0x0e63, 0x0e6d, 0x0e6d, 0x0e7e, 0x0e87, 0x0e94, 0x0e94, + 0x0e99, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0eac, 0x0eb6, 0x0eb6, + 0x0eb6, 0x0eb6, 0x0eb6, 0x0eb6, 0x0ec0, 0x0ec0, 0x0ec9, 0x0ec9, + 0x0ec9, 0x0ed8, 0x0ed8, 0x0ede, 0x0ede, 0x0ede, 0x0eec, 0x0ef8, + // Entry 200 - 23F + 0x0f05, 0x0f12, 0x0f23, 0x0f2b, 0x0f35, 0x0f44, 0x0f44, 0x0f44, + 0x0f54, 0x0f58, 0x0f61, 0x0f61, 0x0f6b, 0x0f72, 0x0f72, 0x0f72, + 0x0f77, 0x0f77, 0x0f87, 0x0f96, 0x0f9b, 0x0fa8, 0x0fb5, 0x0fb5, + 0x0fc0, 0x0fd1, 0x0fd1, 0x0fd8, 0x0fe8, 0x0ff6, 0x0ff6, 0x0ff6, + 0x0ff6, 0x1009, 0x1009, 0x101a, 0x1026, 0x1026, 0x102f, 0x102f, + 0x1039, 0x1043, 0x1053, 0x1057, 0x1064, 0x1064, 0x1064, 0x1064, + 0x1064, 0x106b, 0x106b, 0x106b, 0x106b, 0x107b, 0x1080, 0x108f, + 0x108f, 0x108f, 0x109b, 0x109b, 0x109b, 0x10a8, 0x10b1, 0x10b1, + // Entry 240 - 27F + 0x10b1, 0x10b1, 0x10b1, 0x10bc, 0x10c9, 0x10c9, 0x10cf, 0x10cf, + 0x10dd, 0x10f7, 0x10fb, 0x10fb, 0x10fb, 0x1115, 0x112c, 0x1144, + 0x1158, 0x116b, 0x1182, 0x11a0, 0x11b5, 0x11b5, 0x11b5, 0x11cc, + 0x11e2, 0x11e2, 0x11ed, 0x1209, 0x1220, 0x122a, 0x1239, 0x1239, + 0x1251, 0x126a, + }, + }, + { // gu + guLangStr, + guLangIdx, + }, + { // guz + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluEkegusii", + []uint16{ // 318 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0171, + }, + }, + { // gv + "Gaelg", + []uint16{ // 55 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, + }, + }, + { // ha + "AkanAmharikLarabciBelarusanciBulgaranciBengaliHarshen CakJamusanciGirkan" + + "ciTuranciIspaniyanciParisanciFaransanciHausaHarshen HindiHarshen Hun" + + "gariHarshen IndunusiyaInyamuranciItaliyanciJapananciJabananciHarshen" + + " KimarHarshen KoreyaHarshen MalaiBurmanciNepaliHolanciPunjabiHarshen" + + " PolanHarshen PortugalRomaniyanciRashanciKiniyaruwandaSomaliHarshen " + + "SuwedanTamilThaiHarshen TurkiyyaHarshen YukurenHarshen UrduHarshen B" + + "iyetinamYarbanciHarshen SinHarshen Zulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x001d, 0x0027, + 0x0027, 0x0027, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0042, 0x0042, 0x0042, 0x0042, 0x004a, 0x0051, 0x0051, 0x005c, + 0x005c, 0x005c, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0074, + 0x0074, 0x0081, 0x0081, 0x0081, 0x0081, 0x0090, 0x0090, 0x0090, + // Entry 40 - 7F + 0x0090, 0x00a2, 0x00a2, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00b7, 0x00b7, 0x00c0, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, + 0x00c9, 0x00c9, 0x00d6, 0x00d6, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + 0x00e4, 0x00e4, 0x00e4, 0x00f1, 0x00f1, 0x00f9, 0x00f9, 0x00f9, + 0x00ff, 0x00ff, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x010d, 0x010d, 0x011a, + // Entry 80 - BF + 0x011a, 0x012a, 0x012a, 0x012a, 0x012a, 0x0135, 0x013d, 0x014a, + 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, + 0x014a, 0x014a, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, 0x0150, + 0x015f, 0x015f, 0x0164, 0x0164, 0x0164, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0187, + 0x0193, 0x0193, 0x0193, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, + 0x01a4, 0x01ac, 0x01ac, 0x01b7, 0x01c3, + }, + }, + { // haw + "Ê»AlapiaWaleKenemakaKelemÄniaHelenePelekÄniaPanioloPÄ«kÄ«PalaniÊ»AilikiHeber" + + "aʻĪkÄliaKepanÄ«KÅleaLÄkinaMÄoriHÅlaniPukikÄ«LÅ«kiaKÄmoaKuekeneTongaPola" + + "polaWiekanamaPÄkÄ“Kuikilani KelemÄniaʻŌlelo HawaiÊ»iÊ»Ike Ê»ole ‘ia a kÅ«" + + "pono Ê»ole paha ka Ê»ÅleloPelekÄne NÅ« HÅlaniPelekÄne KanakÄPelekÄnia P" + + "ekekÄnePelekÄnia Ê»AmelikaPalani KanakÄKuikilaniPukikÄ« PalakilaPÄkÄ“ H" + + "oÊ»omaÊ»alahi Ê»iaPÄkÄ“ KuÊ»una", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x000c, 0x0014, + 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x002e, 0x002e, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x003b, 0x003b, 0x0041, + 0x0041, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, + 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, + // Entry 40 - 7F + 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, + 0x0059, 0x0059, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, + 0x0060, 0x0060, 0x0060, 0x0060, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x0073, 0x0073, + 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, + 0x0073, 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, + // Entry 80 - BF + 0x007a, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0087, 0x0087, + 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, + 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, + 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, + 0x0094, 0x0099, 0x0099, 0x0099, 0x0099, 0x00a1, 0x00a1, 0x00a1, + 0x00a1, 0x00a1, 0x00a1, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00aa, 0x00aa, 0x00aa, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + // Entry C0 - FF + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + // Entry 100 - 13F + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, 0x00c4, + // Entry 140 - 17F + 0x00c4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + // Entry 180 - 1BF + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + // Entry 1C0 - 1FF + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + // Entry 200 - 23F + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, + 0x00d5, 0x00d5, 0x00d5, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + // Entry 240 - 27F + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x011c, + 0x012d, 0x0141, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0163, + 0x016c, 0x016c, 0x016c, 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, + 0x0196, 0x01a4, + }, + }, + { // he + heLangStr, + heLangIdx, + }, + { // hi + hiLangStr, + hiLangIdx, + }, + { // hr + hrLangStr, + hrLangIdx, + }, + { // hsb + "afaršćinaabchazišćinaafrikaanšćinaakanšćinaamharšćinaaragonšćinaarabšćin" + + "aasamšćinaawaršćinaaymaršćinaazerbajdźanšćinabaÅ¡kiršćinaběłorušćinab" + + "oÅ‚haršćinabislamšćinabambarabengalšćinatibetšćinabretonšćinabosnišći" + + "nakatalanšćinaÄamoršćinakorsišćinakriÄěšćinawalizišćinadanšćinanÄ›mÄi" + + "nadivehidzongkhaewegrjekšćinajendźelšćinaesperantoÅ¡panišćinaestišćin" + + "abaskišćinapersišćinafinšćinafidźišćinafäröšćinafrancošćinafrizišćin" + + "airšćinaÅ¡otiska gelšćinagalicišćinaguaranigujaratimanšćinahausahebre" + + "jšćinahindišćinachorwatšćinahaitišćinamadźaršćinaarmenšćinainterling" + + "uaindonešćinaigbosichuan yiinupiakidoislandšćinaitalšćinainuitšćinaj" + + "apanšćinajavašćinageorgišćinakikuyukazachšćinagröndlandšćinakhmeršći" + + "nakannadšćinakorejšćinakaÅ¡miršćinakurdišćinakornišćinakirgišćinaÅ‚aćo" + + "nšćinaluxemburgšćinagandšćinalimburšćinalingalalaošćinalitawšćinalub" + + "a-katangaletišćinamalagassišćinamaoršćinamakedonšćinamalajamšćinamon" + + "golšćinamaratišćinamalajšćinamaltašćinaburmašćinanaurušćinasewjero-n" + + "debelenepalšćinanižozemšćinanorwegšćina (nynorsk)norwegšćina (bokmÃ¥l" + + ")navahookcitanšćinaoromoorijšćinapandźabšćinapólšćinapaÅ¡tunšćinaport" + + "ugalšćinakeÄuaretoromanšćinakirundišćinarumunšćinarušćinakinjarwanda" + + "sanskritsardinšćinasindhišćinasewjerosamišćinasangosinghalšćinasÅ‚owa" + + "kšćinasÅ‚owjenšćinasamoašćinaÅ¡onašćinasomališćinaalbanšćinaserbišćina" + + "siswatijužnosotšćina (Sesotho)sundanezišćinaÅ¡wedšćinasuahelšćinatami" + + "lšćinatelugutadźikšćinathailandšćinatigrinšćinaturkmenšćinatswanaton" + + "gašćinaturkowšćinatsongatataršćinatahitišćinaujguršćinaukrainšćinaur" + + "dušćinauzbekšćinavietnamšćinavolapükwalonšćinawolofxhosajidišćinajor" + + "ubašćinazhuangchinšćinazulušćinaaghemšćinaanglosakšćinaarawkanšćinap" + + "areasturšćinabembabenabodobuginezišćinachigachoctawšćinacherokeesora" + + "nitaitazarmadelnjoserbšćinadualajola-fonyiembufilipinšćinagagauzišći" + + "nagotšćinaÅ¡wicarska nÄ›mÄinagusiihawaiišćinahornjoserbšćinangombamach" + + "amekabylšćinakambamakondekapverdšćinakoyra chiinikalenjinpermska kom" + + "išćinakonkaniÅ¡ambalabafialangilakotaluoluhyamasaišćinamerumauriciska" + + " kreolšćinamakhuwa-meettometa’mohawkšćinamundangkriknamadelnjonÄ›mÄin" + + "akwasion’konuernyankoleprušćinakʼicheʼromborwasamburusangusicilšćina" + + "senakoyra sennitaÅ¡elhitjužnosamišćinalule-samišćinainari-samišćinask" + + "olt-samišćinasaterfrizišćinatesotasawaqtamazight (srjedźny Marokko)n" + + "jeznata rÄ›Ävaivunjosogatamazightžadyn rÄ›Äny wobsahmoderna wysokoarab" + + "šćinaawstriska nÄ›mÄinaÅ¡wicarska wysokonÄ›mÄinaawstralska jendźelšćin" + + "akanadiska jendźelšćinabritiska jendźelšćinaameriska jendźelšćinaÅ‚ać" + + "onskoameriska Å¡panišćinaeuropska Å¡panišćinamexiska Å¡panišćinakanadis" + + "ka francošćinaÅ¡wicarska francošćinaflamšćinabrazilska portugalšćinae" + + "uropska portugalšćinamoldawšćinaserbochorwatšćinakongoska suahelšćin" + + "achinšćina (zjednorjena)chinšćina (tradicionalna)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000b, 0x0019, 0x0019, 0x0028, 0x0033, 0x003f, 0x004c, + 0x0057, 0x0062, 0x006d, 0x0079, 0x008c, 0x009a, 0x00a9, 0x00b7, + 0x00c4, 0x00cb, 0x00d8, 0x00e4, 0x00f1, 0x00fd, 0x010b, 0x010b, + 0x0118, 0x0124, 0x0127, 0x0132, 0x0132, 0x0132, 0x013f, 0x0149, + 0x0152, 0x0158, 0x0160, 0x0163, 0x016f, 0x017e, 0x0187, 0x0194, + 0x019f, 0x01ab, 0x01b7, 0x01b7, 0x01c1, 0x01ce, 0x01db, 0x01e8, + 0x01f4, 0x01fd, 0x0210, 0x021d, 0x0224, 0x022c, 0x0236, 0x023b, + 0x0248, 0x0254, 0x0254, 0x0262, 0x026e, 0x027c, 0x0288, 0x0288, + // Entry 40 - 7F + 0x0293, 0x02a0, 0x02a0, 0x02a4, 0x02ae, 0x02b5, 0x02b8, 0x02c5, + 0x02d0, 0x02dc, 0x02e8, 0x02f3, 0x0300, 0x0300, 0x0306, 0x0306, + 0x0313, 0x0324, 0x0330, 0x033d, 0x0349, 0x0349, 0x0357, 0x0363, + 0x0363, 0x036f, 0x037b, 0x0389, 0x0399, 0x03a4, 0x03b1, 0x03b8, + 0x03c2, 0x03ce, 0x03da, 0x03e5, 0x03f5, 0x03f5, 0x0400, 0x040e, + 0x041c, 0x0429, 0x0436, 0x0442, 0x044e, 0x045a, 0x0466, 0x0475, + 0x0481, 0x0481, 0x0490, 0x04a7, 0x04be, 0x04be, 0x04c4, 0x04c4, + 0x04d2, 0x04d2, 0x04d7, 0x04e2, 0x04e2, 0x04f1, 0x04f1, 0x04fc, + // Entry 80 - BF + 0x050a, 0x0519, 0x051f, 0x052f, 0x053d, 0x0549, 0x0552, 0x055d, + 0x0565, 0x0572, 0x057f, 0x0591, 0x0596, 0x05a4, 0x05b2, 0x05c1, + 0x05cd, 0x05d9, 0x05e6, 0x05f2, 0x05fe, 0x0605, 0x061f, 0x062f, + 0x063b, 0x0648, 0x0654, 0x065a, 0x0668, 0x0677, 0x0684, 0x0692, + 0x0698, 0x06a4, 0x06b1, 0x06b7, 0x06c3, 0x06d0, 0x06dc, 0x06e9, + 0x06f4, 0x0700, 0x0700, 0x070e, 0x0716, 0x0722, 0x0727, 0x072c, + 0x0737, 0x0744, 0x074a, 0x0755, 0x0760, 0x0760, 0x0760, 0x0760, + 0x0760, 0x0760, 0x0760, 0x076c, 0x076c, 0x076c, 0x076c, 0x076c, + // Entry C0 - FF + 0x076c, 0x076c, 0x077b, 0x077b, 0x077b, 0x0789, 0x0789, 0x0789, + 0x0789, 0x0789, 0x0789, 0x0789, 0x078d, 0x078d, 0x0799, 0x0799, + 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, + 0x0799, 0x079e, 0x079e, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, + 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07a2, + 0x07a2, 0x07a6, 0x07a6, 0x07a6, 0x07b5, 0x07b5, 0x07b5, 0x07b5, + 0x07b5, 0x07b5, 0x07b5, 0x07b5, 0x07b5, 0x07ba, 0x07ba, 0x07ba, + 0x07ba, 0x07ba, 0x07ba, 0x07c8, 0x07c8, 0x07d0, 0x07d0, 0x07d6, + // Entry 100 - 13F + 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07d6, 0x07db, 0x07db, + 0x07db, 0x07db, 0x07db, 0x07e0, 0x07e0, 0x07f1, 0x07f1, 0x07f6, + 0x07f6, 0x0800, 0x0800, 0x0800, 0x0804, 0x0804, 0x0804, 0x0804, + 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0812, + 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, 0x0812, + 0x0812, 0x0812, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, + 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x0820, 0x082a, + 0x082a, 0x082a, 0x083e, 0x083e, 0x083e, 0x0843, 0x0843, 0x0843, + // Entry 140 - 17F + 0x0843, 0x0850, 0x0850, 0x0850, 0x0850, 0x0850, 0x0861, 0x0861, + 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, + 0x0867, 0x086e, 0x086e, 0x086e, 0x086e, 0x086e, 0x087a, 0x087a, + 0x087a, 0x087f, 0x087f, 0x087f, 0x087f, 0x087f, 0x0886, 0x0894, + 0x0894, 0x0894, 0x0894, 0x0894, 0x0894, 0x08a0, 0x08a0, 0x08a0, + 0x08a0, 0x08a8, 0x08a8, 0x08bb, 0x08c2, 0x08c2, 0x08c2, 0x08c2, + 0x08c2, 0x08c2, 0x08c2, 0x08c2, 0x08ca, 0x08cf, 0x08cf, 0x08cf, + 0x08cf, 0x08cf, 0x08d4, 0x08d4, 0x08d4, 0x08d4, 0x08d4, 0x08d4, + // Entry 180 - 1BF + 0x08d4, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, + 0x08da, 0x08da, 0x08dd, 0x08dd, 0x08e2, 0x08e2, 0x08e2, 0x08e2, + 0x08e2, 0x08e2, 0x08e2, 0x08e2, 0x08e2, 0x08ee, 0x08ee, 0x08ee, + 0x08ee, 0x08ee, 0x08f2, 0x0909, 0x0909, 0x0917, 0x091e, 0x091e, + 0x091e, 0x091e, 0x091e, 0x092b, 0x092b, 0x092b, 0x0932, 0x0932, + 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, 0x0936, + 0x0936, 0x093a, 0x0949, 0x0949, 0x0949, 0x0949, 0x0949, 0x094f, + 0x094f, 0x094f, 0x094f, 0x094f, 0x0955, 0x0955, 0x0959, 0x0959, + // Entry 1C0 - 1FF + 0x0959, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, + 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, 0x0961, + 0x0961, 0x0961, 0x0961, 0x0961, 0x096b, 0x096b, 0x0974, 0x0974, + 0x0974, 0x0974, 0x0974, 0x0974, 0x0974, 0x0979, 0x0979, 0x0979, + 0x0979, 0x0979, 0x0979, 0x097c, 0x097c, 0x097c, 0x097c, 0x0983, + 0x0983, 0x0983, 0x0983, 0x0983, 0x0988, 0x0994, 0x0994, 0x0994, + 0x0994, 0x0994, 0x0998, 0x0998, 0x0998, 0x09a3, 0x09a3, 0x09a3, + 0x09ac, 0x09ac, 0x09ac, 0x09ac, 0x09ac, 0x09ac, 0x09bd, 0x09cd, + // Entry 200 - 23F + 0x09de, 0x09ef, 0x09ef, 0x09ef, 0x09ef, 0x09ef, 0x09ef, 0x0a00, + 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, 0x0a00, + 0x0a00, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, + 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, + 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a0b, 0x0a0b, 0x0a28, + 0x0a28, 0x0a28, 0x0a28, 0x0a36, 0x0a39, 0x0a39, 0x0a39, 0x0a39, + 0x0a39, 0x0a39, 0x0a39, 0x0a3e, 0x0a3e, 0x0a3e, 0x0a3e, 0x0a3e, + 0x0a3e, 0x0a3e, 0x0a3e, 0x0a3e, 0x0a42, 0x0a42, 0x0a42, 0x0a42, + // Entry 240 - 27F + 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a4b, + 0x0a4b, 0x0a60, 0x0a60, 0x0a79, 0x0a79, 0x0a8c, 0x0aa6, 0x0ac0, + 0x0ad9, 0x0af1, 0x0b09, 0x0b29, 0x0b3f, 0x0b54, 0x0b54, 0x0b6b, + 0x0b83, 0x0b83, 0x0b8e, 0x0ba7, 0x0bbf, 0x0bcc, 0x0bdf, 0x0bf5, + 0x0c0e, 0x0c29, + }, + }, + { // hu + huLangStr, + huLangIdx, + }, + { // hy + hyLangStr, + hyLangIdx, + }, + { // id + idLangStr, + idLangIdx, + }, + { // ig + "AkanAmariikịArabiikịBelaruusuBá»lụgarịaBengaliCheekịJamaanGiriikịOyiboPan" + + "yaPeshanFụrenchAwụsaHindiMagịyaIndonisiaIgboItaloJapaneseJavaKeme, E" + + "titiKoriaMaleyiMịanmaNepaliDá»á»chPunjabiPoliishiPotokiRumeniaRá»shanRụ" + + "wandaSomaliSụwidiishiTamụlụTaịTá»kiishiUkureenịUruduViyetịnaamụYoruba" + + "MandarịịnịZulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000e, 0x000e, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0021, 0x0030, + 0x0030, 0x0030, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x0045, 0x0045, 0x0045, 0x0045, 0x004e, 0x0053, 0x0053, 0x0058, + 0x0058, 0x0058, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0067, + 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x006e, + 0x006e, 0x0073, 0x0073, 0x0073, 0x0073, 0x007b, 0x007b, 0x007b, + // Entry 40 - 7F + 0x007b, 0x0084, 0x0084, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, + 0x008d, 0x008d, 0x0095, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, + 0x0099, 0x0099, 0x00a4, 0x00a4, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00a9, 0x00a9, 0x00a9, 0x00af, 0x00af, 0x00b7, 0x00b7, 0x00b7, + 0x00bd, 0x00bd, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00d5, + // Entry 80 - BF + 0x00d5, 0x00db, 0x00db, 0x00db, 0x00db, 0x00e2, 0x00ea, 0x00f3, + 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, + 0x00f3, 0x00f3, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, + 0x0105, 0x0105, 0x010f, 0x010f, 0x010f, 0x0114, 0x0114, 0x0114, + 0x0114, 0x0114, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, + 0x012d, 0x012d, 0x012d, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, + 0x013c, 0x0142, 0x0142, 0x0152, 0x0156, + }, + }, + { // ii + "ꄓꇩꉙꑱꇩꉙꑭꀠꑸꉙꃔꇩꉙꆈꌠꉙꑴꄊꆺꉙêꀪꉙêꄨꑸꉙꊉꇩꉙêꇩꉙꅉꀋꌠꅇꂷꀠꑟêꄨꑸꉙêˆê¯êꇩꉙꀎê‹êꇩꉙ", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0012, 0x0012, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + // Entry 40 - 7F + 0x0027, 0x0027, 0x0027, 0x0027, 0x0030, 0x0030, 0x0030, 0x0030, + 0x003c, 0x003c, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + // Entry 80 - BF + 0x0045, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry C0 - FF + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 100 - 13F + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 140 - 17F + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 180 - 1BF + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 1C0 - 1FF + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 200 - 23F + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + // Entry 240 - 27F + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0093, 0x00a2, + }, + }, + { // is + isLangStr, + isLangIdx, + }, + { // it + itLangStr, + itLangIdx, + }, + { // ja + jaLangStr, + jaLangIdx, + }, + { // jgo + "AlâbÉ›NjámanÅŠgÉ›lɛ̂kAÅ‹gÉ›lúshiFÉ›lánciShinwâNdaꞌacú-pʉɔ yi pÉ›Ì ká kÉ›Ì jí", + []uint16{ // 556 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x000e, 0x000e, 0x000e, 0x000e, 0x0019, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + // Entry 40 - 7F + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + // Entry 80 - BF + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + // Entry C0 - FF + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + // Entry 100 - 13F + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + // Entry 140 - 17F + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + // Entry 180 - 1BF + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + // Entry 1C0 - 1FF + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + // Entry 200 - 23F + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x005c, + }, + }, + { // jmc + "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + + "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + + "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + + "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + + "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + + "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKim" + + "achame", + []uint16{ // 338 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, + 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, + 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, + 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, + 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, + 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, + 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, + // Entry 80 - BF + 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, + 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, + 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, + 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, + 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry C0 - FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 100 - 13F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 140 - 17F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x01a2, + }, + }, + { // ka + kaLangStr, + kaLangIdx, + }, + { // kab + "TakanitTamahrictTaÉ›rabtTabilarusitTabulgaritTabengalitTaÄikitTalmantTagr" + + "ikitTaglizitTaspenyulitTafarisitTafransistTahwasitTahenditTahungarit" + + "TandunisitTigbutTaá¹­alyanitTajapunitTajavanitTakemritTakuritTamalawit" + + "TaburmisitTanipalitTaduÄitTapunjabitTapulunitTapurtugalitTarumanitTa" + + "rusitTaruwanditTaá¹£umalitTaswiditTaá¹­amulitTaá¹­aylunditTaá¹­urkitTukranit" + + "TurdutTabyiá¹­namitTayurubitTacinwat, TamundarintTazulutTaqbaylit", + []uint16{ // 343 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0023, 0x002d, + 0x002d, 0x002d, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x0046, 0x0046, 0x0046, 0x0046, 0x004e, 0x0056, 0x0056, 0x0061, + 0x0061, 0x0061, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x0074, + 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x0074, 0x007c, + 0x007c, 0x0084, 0x0084, 0x0084, 0x0084, 0x008e, 0x008e, 0x008e, + // Entry 40 - 7F + 0x008e, 0x0098, 0x0098, 0x009e, 0x009e, 0x009e, 0x009e, 0x009e, + 0x00aa, 0x00aa, 0x00b3, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00d4, 0x00d4, 0x00de, 0x00de, 0x00de, + 0x00e7, 0x00e7, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, + 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00f9, 0x00f9, 0x0102, + // Entry 80 - BF + 0x0102, 0x010e, 0x010e, 0x010e, 0x010e, 0x0117, 0x011e, 0x0128, + 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, 0x0128, + 0x0128, 0x0128, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, 0x0133, + 0x013b, 0x013b, 0x0146, 0x0146, 0x0146, 0x0153, 0x0153, 0x0153, + 0x0153, 0x0153, 0x015d, 0x015d, 0x015d, 0x015d, 0x015d, 0x0165, + 0x016b, 0x016b, 0x016b, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, + 0x0178, 0x0181, 0x0181, 0x0196, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + // Entry C0 - FF + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + // Entry 100 - 13F + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + // Entry 140 - 17F + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x01a6, + }, + }, + { // kam + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluKikamba", + []uint16{ // 346 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 140 - 17F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0170, + }, + }, + { // kde + "ChakanChamhaliChalabuChibelalusiChibulgaliaChibanglaChichechiChidyeluman" + + "iChigilichiChiingelezaChihispaniaChiajemiChifalansaChihausaChihindiC" + + "hihungaliChiiongonesiaChiigboChiitalianoChidyapaniChidyavaChikambodi" + + "aChikoleaChimalesiaChibulmaChinepaliChiholanziChipunjabiChipolandiCh" + + "ilenoChilomaniaChilusiChinyalwandaChisomaliChiswidiChitamilChitailan" + + "diChituluchiChiuklaniaChiulduChivietinamuChiyolubaChichinaChizuluChi" + + "makonde", + []uint16{ // 351 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0020, 0x002b, + 0x002b, 0x002b, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, + 0x0049, 0x0049, 0x0049, 0x0049, 0x0053, 0x005e, 0x005e, 0x0069, + 0x0069, 0x0069, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x007b, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x0083, + 0x0083, 0x008b, 0x008b, 0x008b, 0x008b, 0x0095, 0x0095, 0x0095, + // Entry 40 - 7F + 0x0095, 0x00a2, 0x00a2, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00b4, 0x00b4, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00d1, 0x00d1, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00e3, 0x00e3, 0x00eb, 0x00eb, 0x00eb, + 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, + 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0112, + // Entry 80 - BF + 0x0112, 0x0119, 0x0119, 0x0119, 0x0119, 0x0123, 0x012a, 0x0136, + 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, + 0x0136, 0x0136, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, + 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, + 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry C0 - FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 100 - 13F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 140 - 17F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x01a3, + }, + }, + { // kea + "abkaziuafrikanerakanamarikuarabiasamesaimaraazerbaijanubaxkirbielorusubú" + + "lgarubambarabengalitibetanubretãubosniukatalãutxetxenukórsikutxekutx" + + "uvaxigalesdinamarkesalimãudzonkaevegreguinglessperantuspanholstonian" + + "ubaskupersafinlandesfijianufaroesfransesfrisiu osidentalirlandesgale" + + "guguaranigujaratimanksauzaebraikuindikroataaitianuúngaruarméniuindon" + + "éziuibonuosuislandesitalianuinuktitutjaponesjavanesjorjianukikuiuka" + + "zakgroenlandeskmerkanareskorianukaxmirakurdukórnikukirgizlatinluxemb" + + "urgeslugandalausianulituanesletãumalgaximaorimasedoniumalaialammarat" + + "imalaiumaltesbirmanesnepalesolandesnorueges nynorsknorueges bokmÃ¥lor" + + "omooriyapandjabipulakupaxtopurtugeskexuaromanxirumenurusukiniaruanda" + + "sanskritusindisingalesslovakusloveniusomalialbanessérviusundanessuek" + + "usuaílitamiltelugutajiktailandestigriniaturkmenutonganesturkutatarui" + + "gurukranianuurduuzbekivietnamitauolofkozaiorubaxineszuluaghemaraukan" + + "uasubembabenabodoxigaxerokikurdu sentraltaitazarmasórbiu baxudualajo" + + "la-fonyiembufilipinugagauzalimãu di Suisagusiiavaianusórbiu altuñomb" + + "amatxamekabilakambakabuverdianukoira txiinikalenjinkomi-permiakkonka" + + "nibafiakuaziokitxekoiraboro seniinari samitamazait di Atlas Sentrall" + + "ingua diskonxedusem konteudo linguistikuarabi mudernualimãu austriak" + + "ualtu alimãu suisuingles australianuingles kanadianuingles britaniku" + + "ingles merkanuspanhol latinu-merkanuspanhol europeuspanhol mexikanuf" + + "ranses kanadianufranses suisuflamengupurtuges brazilerupurtuges euro" + + "peusuaíli kongolesxines simplifikaduxines tradisional", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0014, 0x001b, 0x001b, + 0x0020, 0x0026, 0x0026, 0x002c, 0x0037, 0x003d, 0x0046, 0x004e, + 0x004e, 0x0055, 0x005c, 0x0064, 0x006b, 0x0071, 0x0079, 0x0081, + 0x0081, 0x0089, 0x0089, 0x008e, 0x008e, 0x0095, 0x009a, 0x00a4, + 0x00ab, 0x00ab, 0x00b1, 0x00b4, 0x00b9, 0x00bf, 0x00c7, 0x00ce, + 0x00d6, 0x00db, 0x00e0, 0x00e0, 0x00e9, 0x00f0, 0x00f6, 0x00fd, + 0x010d, 0x0115, 0x0115, 0x011b, 0x0122, 0x012a, 0x012f, 0x0133, + 0x013a, 0x013e, 0x013e, 0x0144, 0x014b, 0x0152, 0x015a, 0x015a, + // Entry 40 - 7F + 0x015a, 0x0164, 0x0164, 0x0167, 0x016c, 0x016c, 0x016c, 0x0174, + 0x017c, 0x0185, 0x018c, 0x0193, 0x019b, 0x019b, 0x01a1, 0x01a1, + 0x01a6, 0x01b1, 0x01b5, 0x01bc, 0x01c3, 0x01c3, 0x01ca, 0x01cf, + 0x01cf, 0x01d7, 0x01dd, 0x01e2, 0x01ed, 0x01f4, 0x01f4, 0x01f4, + 0x01fc, 0x0204, 0x0204, 0x020a, 0x0211, 0x0211, 0x0216, 0x021f, + 0x0228, 0x0228, 0x022e, 0x0234, 0x023a, 0x0242, 0x0242, 0x0242, + 0x0249, 0x0249, 0x0250, 0x0260, 0x0270, 0x0270, 0x0270, 0x0270, + 0x0270, 0x0270, 0x0275, 0x027a, 0x027a, 0x0282, 0x0282, 0x0288, + // Entry 80 - BF + 0x028d, 0x0295, 0x029a, 0x02a1, 0x02a1, 0x02a7, 0x02ab, 0x02b6, + 0x02bf, 0x02bf, 0x02c4, 0x02c4, 0x02c4, 0x02cc, 0x02d3, 0x02db, + 0x02db, 0x02db, 0x02e1, 0x02e8, 0x02ef, 0x02ef, 0x02ef, 0x02f7, + 0x02fc, 0x0303, 0x0308, 0x030e, 0x0313, 0x031c, 0x0324, 0x032c, + 0x032c, 0x0334, 0x0339, 0x0339, 0x033e, 0x033e, 0x0343, 0x034c, + 0x0350, 0x0356, 0x0356, 0x0360, 0x0360, 0x0360, 0x0365, 0x0369, + 0x0369, 0x036f, 0x036f, 0x0374, 0x0378, 0x0378, 0x0378, 0x0378, + 0x0378, 0x0378, 0x0378, 0x037d, 0x037d, 0x037d, 0x037d, 0x037d, + // Entry C0 - FF + 0x037d, 0x037d, 0x037d, 0x037d, 0x037d, 0x0385, 0x0385, 0x0385, + 0x0385, 0x0385, 0x0385, 0x0385, 0x0388, 0x0388, 0x0388, 0x0388, + 0x0388, 0x0388, 0x0388, 0x0388, 0x0388, 0x0388, 0x0388, 0x0388, + 0x0388, 0x038d, 0x038d, 0x0391, 0x0391, 0x0391, 0x0391, 0x0391, + 0x0391, 0x0391, 0x0391, 0x0391, 0x0391, 0x0391, 0x0391, 0x0391, + 0x0391, 0x0395, 0x0395, 0x0395, 0x0395, 0x0395, 0x0395, 0x0395, + 0x0395, 0x0395, 0x0395, 0x0395, 0x0395, 0x0399, 0x0399, 0x0399, + 0x0399, 0x0399, 0x0399, 0x0399, 0x0399, 0x039f, 0x039f, 0x03ac, + // Entry 100 - 13F + 0x03ac, 0x03ac, 0x03ac, 0x03ac, 0x03ac, 0x03ac, 0x03b1, 0x03b1, + 0x03b1, 0x03b1, 0x03b1, 0x03b6, 0x03b6, 0x03c2, 0x03c2, 0x03c7, + 0x03c7, 0x03d1, 0x03d1, 0x03d1, 0x03d5, 0x03d5, 0x03d5, 0x03d5, + 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03dd, + 0x03dd, 0x03dd, 0x03dd, 0x03dd, 0x03dd, 0x03dd, 0x03dd, 0x03dd, + 0x03dd, 0x03dd, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, + 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, + 0x03e3, 0x03e3, 0x03f3, 0x03f3, 0x03f3, 0x03f8, 0x03f8, 0x03f8, + // Entry 140 - 17F + 0x03f8, 0x03ff, 0x03ff, 0x03ff, 0x03ff, 0x03ff, 0x040b, 0x040b, + 0x040b, 0x040b, 0x040b, 0x040b, 0x040b, 0x040b, 0x040b, 0x040b, + 0x0411, 0x0418, 0x0418, 0x0418, 0x0418, 0x0418, 0x041e, 0x041e, + 0x041e, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x042f, + 0x042f, 0x042f, 0x042f, 0x042f, 0x042f, 0x043b, 0x043b, 0x043b, + 0x043b, 0x0443, 0x0443, 0x044f, 0x0456, 0x0456, 0x0456, 0x0456, + 0x0456, 0x0456, 0x0456, 0x0456, 0x0456, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + // Entry 180 - 1BF + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x0461, + 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, + // Entry 1C0 - 1FF + 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, + 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, + 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0461, 0x0466, 0x0466, + 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, + 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, + 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, + 0x0466, 0x0466, 0x0466, 0x0466, 0x0466, 0x0474, 0x0474, 0x0474, + 0x0474, 0x0474, 0x0474, 0x0474, 0x0474, 0x0474, 0x0474, 0x0474, + // Entry 200 - 23F + 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, + 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, + 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, + 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, + 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x047e, 0x0497, + 0x0497, 0x0497, 0x0497, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, + 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, + 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, + // Entry 240 - 27F + 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, 0x04a8, + 0x04a8, 0x04c0, 0x04c0, 0x04cd, 0x04cd, 0x04de, 0x04f0, 0x0502, + 0x0512, 0x0522, 0x0530, 0x0546, 0x0555, 0x0565, 0x0565, 0x0576, + 0x0583, 0x0583, 0x058b, 0x059d, 0x05ad, 0x05ad, 0x05ad, 0x05bd, + 0x05cf, 0x05e0, + }, + }, + { // khq + "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + + " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + + "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + + "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senni, Gam" + + "e hereKoree senniMaleezi senniBurme senniNeepal senniHolandee senniP" + + "unjaabi senniiPolonee senniPortugee senniRumaani senniRuusi senniRwa" + + "nda senniSomaali senniSuweede senniTamil senniTaailandu senniTurku s" + + "enniUkreen senniUrdu senniVietnaam senniYorbance senniSinuwa senni, " + + "MandareÅ‹Julu senniKoyra ciini", + []uint16{ // 358 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, + 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, + 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, + 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, + // Entry 40 - 7F + 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0134, 0x0134, 0x013f, 0x013f, 0x013f, + 0x014b, 0x014b, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, + 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0168, 0x0168, 0x0175, + // Entry 80 - BF + 0x0175, 0x0183, 0x0183, 0x0183, 0x0183, 0x0190, 0x019b, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, + 0x01c1, 0x01c1, 0x01cc, 0x01cc, 0x01cc, 0x01db, 0x01db, 0x01db, + 0x01db, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01f2, + 0x01fc, 0x01fc, 0x01fc, 0x020a, 0x020a, 0x020a, 0x020a, 0x020a, + 0x020a, 0x0218, 0x0218, 0x022f, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry C0 - FF + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 100 - 13F + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 140 - 17F + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0244, + }, + }, + { // ki + "KiakanKiamhariKÄ©arabuKibelarusiKibulgariaKibanglaKicheckiKÄ©njeremaniKigi" + + "rikiGÄ©thungÅ©KihispaniaKiajemiKÄ©baranjaKihausaKÄ©hÄ©ndÄ©KihungariKiindon" + + "esiaKiigboKÄ©talianoKÄ©njabaniKijavaGikuyuKikambodiaKikoreaKimalesiaKi" + + "burmaKinepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKÄ©raciaKinyar" + + "wandaKÄ©cumarÄ©KiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietin" + + "amuKiyorubaKÄ©cainaKizulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x0046, 0x0046, 0x0046, 0x0046, 0x004e, 0x0058, 0x0058, 0x0062, + 0x0062, 0x0062, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0073, + 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007a, + 0x007a, 0x0084, 0x0084, 0x0084, 0x0084, 0x008d, 0x008d, 0x008d, + // Entry 40 - 7F + 0x008d, 0x0098, 0x0098, 0x009e, 0x009e, 0x009e, 0x009e, 0x009e, + 0x00a8, 0x00a8, 0x00b2, 0x00b8, 0x00b8, 0x00b8, 0x00be, 0x00be, + 0x00be, 0x00be, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x00cf, 0x00d8, 0x00d8, 0x00df, 0x00df, 0x00df, + 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, + 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00f9, 0x00f9, 0x0102, + // Entry 80 - BF + 0x0102, 0x0108, 0x0108, 0x0108, 0x0108, 0x0111, 0x0119, 0x0124, + 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, + 0x0124, 0x0124, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x0135, 0x0135, 0x013c, 0x013c, 0x013c, 0x0146, 0x0146, 0x0146, + 0x0146, 0x0146, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x0157, + 0x015d, 0x015d, 0x015d, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0170, 0x0170, 0x0178, 0x017e, + }, + }, + { // kk + kkLangStr, + kkLangIdx, + }, + { // kkj + "yamannumbu buykakÉ”", + []uint16{ // 361 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + // Entry 40 - 7F + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + // Entry 80 - BF + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + // Entry C0 - FF + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + // Entry 100 - 13F + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + // Entry 140 - 17F + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x0013, + }, + }, + { // kl + "kalaallisut", + []uint16{ // 82 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x000b, + }, + }, + { // kln + "kutitab Akakutitab Amariekkutitab Arabukkutitab Belarusakutitab Bulgaria" + + "kutitab Bengalikutitab Chekkutitab Chermanikutitab Greecekutitab Uin" + + "geresakutitab Espianikkutitab Persiakutitab Kifaransakutitab Hausaku" + + "titab Maindiikkutitab Hangarikutitab Indonesiakutitab Igbokutitab Ta" + + "lianekkutitap Japankutitap Javanesekutitab Kher nebo Kwenkutitab Kor" + + "eakutitab Malaykutitab Burmakutitab Nepalikutitab Boakutitab Punjabk" + + "utitap Polandkutitab Portugalkutitab Romaniekkutitab Russiakutitab K" + + "inyarwandakutitab Somaliekkutitab Swedenkutitab Tamilkutitab Thailan" + + "dkutitab Turkeykutitab Ukrainekutitab Urdukutitab Vietnamkutitab Yor" + + "ubakutitab Chinakutitab ZuluKalenjin", + []uint16{ // 362 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x001a, 0x001a, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0038, 0x0048, + 0x0048, 0x0048, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0073, 0x0073, 0x0073, 0x0073, 0x0081, 0x0092, 0x0092, 0x00a2, + 0x00a2, 0x00a2, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00c1, + 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00ce, + 0x00ce, 0x00de, 0x00de, 0x00de, 0x00de, 0x00ed, 0x00ed, 0x00ed, + // Entry 40 - 7F + 0x00ed, 0x00fe, 0x00fe, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, + 0x011a, 0x011a, 0x0127, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, + 0x0137, 0x0137, 0x014d, 0x014d, 0x015a, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x015a, 0x0167, 0x0167, 0x0174, 0x0174, 0x0174, + 0x0182, 0x0182, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, + 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, 0x019b, 0x019b, 0x01a9, + // Entry 80 - BF + 0x01a9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01c9, 0x01d7, 0x01ea, + 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, + 0x01ea, 0x01ea, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, + 0x0208, 0x0208, 0x0215, 0x0215, 0x0215, 0x0225, 0x0225, 0x0225, + 0x0225, 0x0225, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0242, + 0x024e, 0x024e, 0x024e, 0x025d, 0x025d, 0x025d, 0x025d, 0x025d, + 0x025d, 0x026b, 0x026b, 0x0278, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + // Entry C0 - FF + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + // Entry 100 - 13F + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + // Entry 140 - 17F + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x028c, + }, + }, + { // km + kmLangStr, + kmLangIdx, + }, + { // kn + knLangStr, + knLangIdx, + }, + { // ko + koLangStr, + koLangIdx, + }, + { // kok + "अफारअबखेज़ियनअफà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤¤à¥à¤µà¤¿à¤…महारिकà¥à¤…रेबिकà¥à¤…सामीà¤à¤®à¤°à¤¾à¤…ज़रबैजानीबषà¥à¤•à¤¿à¤°à¤¬à¥ˆà¤²à¥‹à¤°" + + "à¥à¤¸à¤¿à¤¯à¤¨à¥à¤¬à¤²à¥à¤—ेरियनबिसलमाबंगालीतिबेतियनबà¥à¤°à¥‡à¤Ÿà¤¨à¤•à¤Ÿà¤²à¤¾à¤¨à¤•à¥‹à¤°à¥à¤¶à¤¿à¤¯à¤¨à¤œà¤¼à¥‡à¤•à¥à¤µà¥‡à¤³à¥à¤·à¥à¤¡" + + "ानिषजरà¥à¤®à¤¨à¤­à¥‚टानीगà¥à¤°à¥€à¤•à¥à¤†à¤‚गà¥à¤²à¤‡à¤¸à¥à¤ªà¤°à¤¾à¤¨à¥à¤Ÿà¥‹à¤¸à¥à¤ªà¤¾à¤¨à¤¿à¤·à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨à¥à¤¬à¤¾à¤¸à¥à¤•à¤ªà¤°à¥à¤·à¤¿à¤¯à¤¨à¥" + + "फिनà¥à¤¨à¤¿à¤·à¥à¤«à¤¿à¤œà¥€à¤«à¥‡à¤°à¥‹à¤¸à¥à¤«à¥à¤°à¥‡à¤¨à¥à¤šà¤«à¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¥à¤à¤°à¤¿à¤·à¤¸à¥à¤•à¤¾à¤Ÿà¤¸à¥ गेलिकà¥à¤—ेलीशियनगौरानी" + + "गà¥à¤œà¤°à¤¾à¤¤à¥€à¤¹à¥Œà¤¸à¤¾à¤¹à¥‡à¤¬à¥à¤°à¥à¤¹à¤¿à¤¨à¥à¤¦à¥€à¤•à¥à¤°à¥‹à¤¯à¥‡à¤·à¤¿à¤¯à¤¨à¥à¤¹à¤‚गेरियनà¥à¤†à¤°à¥à¤®à¥€à¤¨à¤¿à¤¯à¤¨à¥à¤‡à¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤µà¤¾à¤‡" + + "नà¥à¤¡à¥‹à¤¨à¥‡à¤·à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤‡à¤¨à¥‚पेयाकà¥à¤†à¤ˆà¤¸à¥à¤²à¤¾à¤¨à¥à¤¡à¤¿à¤•à¤‡à¤Ÿà¤¾à¤²à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤¯à¥à¤•à¤Ÿà¥à¤Ÿà¤œà¤¾à¤ªà¤¨à¥€à¤¸à¥à¤œà¤¾à¤µ" + + "नीसà¥à¤œà¤¾à¤°à¥à¤œà¤¿à¤¯à¤¨à¥à¤•à¤œà¤¼à¤–à¥à¤—à¥à¤°à¥€à¤¨à¤²à¤¾à¤¨à¥à¤¡à¤¿à¤•à¤•à¤‚बोडियनकनà¥à¤¨à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¥à¤•à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤·à¤•" + + "िरà¥à¤—िज़लाटिनलिंगालालाओतियनà¥à¤²à¤¿à¤¥à¥à¤†à¤¨à¤¿à¤¯à¤¨à¥à¤²à¤¾à¤Ÿà¥à¤µà¤¿à¤¯à¤¨à¥ (लेटà¥à¤Ÿà¤¿à¤·à¥)मलागसीमाओ" + + "रीमसीडोनियनà¥à¤®à¤³à¤¿à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनà¥à¤®à¤°à¤¾à¤ à¥€à¤®à¤²à¤¯à¤®à¤¾à¤²à¤¤à¥€à¤¸à¥à¤¬à¤°à¥à¤®à¥€à¤œà¤¼à¥à¤¨à¥Œà¤°à¥‹à¤¨à¥‡à¤ªà¤¾à¤³à¥€à¤¡à¤šà¥à¤¨à¥‹" + + "रà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨à¤“सिटानà¥à¤“रोमो (अफान)ओरियापंजाबीपोलिषपाषà¥à¤Ÿà¥‹ (पà¥à¤·à¥à¤Ÿà¥‹)पोरà¥à¤šà¥à¤—ी" + + "ज़à¥à¤•à¥à¤µà¥‡à¤šà¥à¤µà¤¾à¤°à¤¹à¤Ÿà¥‹-रोमानà¥à¤¸à¥à¤•à¤¿à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¨à¥à¤°à¤·à¥à¤¯à¤¨à¥à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•" + + "ृतसिंधीसांगà¥à¤°à¥‹à¤¸à¤¿à¤¨à¥à¤¹à¤²à¥€à¤¸à¥à¤¸à¥à¤²à¥‹à¤µà¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸à¤®à¥‹à¤¨à¤¶à¥‹à¤¨à¤¾à¤¸à¥‹à¤®à¤¾à¤³à¥€à¤†à¤²à¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤¸" + + "ेरà¥à¤¬à¤¿à¤¯à¤¨à¥à¤¸à¤¿à¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚दनीससà¥à¤µà¥€à¤¦à¥€à¤·à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤³à¤¤à¥‡à¤²à¥à¤—ूतजिकथाईतिगà¥à¤°" + + "िनà¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¤¨à¤¸à¥‡à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¤à¥‹à¤‚गातà¥à¤°à¥à¤•à¤¿à¤·à¤¤à¥à¤¸à¥‹à¤—ातटारउधूरयà¥à¤•à¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¥à¤‰à¤°à¥à¤¦à¥‚उज" + + "़बेकवियतà¥à¤¨à¤¾à¤®à¥€à¤œà¤¼à¤“लापà¥à¤•à¤‰à¤²à¥‹à¤«à¤¼à¤à¤¼à¥Œà¤¸à¤¾à¤‡à¤¦à¥à¤¦à¤¿à¤·à¥à¤¯à¥‚रà¥à¤¬à¤¾à¤à¥à¤¹à¥à¤¨à¥à¤—चीनीसà¥à¤œà¥à¤²à¥‚तगालो" + + "गकोंकणीमोलà¥à¤¡à¤¾à¤µà¤¿à¤¯à¤¨à¥à¤¸à¥‡à¤°à¥à¤¬à¥‹-कà¥à¤°à¥‹à¤¯à¥‡à¤·à¤¿à¤¯à¤¨à¥", + []uint16{ // 607 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0027, 0x0027, 0x0045, 0x0051, 0x0069, 0x0069, + 0x007e, 0x008d, 0x008d, 0x0099, 0x00b7, 0x00c9, 0x00ea, 0x0105, + 0x0117, 0x0117, 0x0129, 0x0141, 0x0153, 0x0153, 0x0162, 0x0162, + 0x0162, 0x017a, 0x017a, 0x0189, 0x0189, 0x0189, 0x019b, 0x01aa, + 0x01b9, 0x01b9, 0x01cb, 0x01cb, 0x01dd, 0x01ec, 0x020a, 0x021f, + 0x023d, 0x024c, 0x0264, 0x0264, 0x027c, 0x0288, 0x029a, 0x02af, + 0x02ca, 0x02d6, 0x02fe, 0x0316, 0x0328, 0x033d, 0x033d, 0x0349, + 0x035b, 0x036d, 0x036d, 0x038e, 0x038e, 0x03a9, 0x03c7, 0x03c7, + // Entry 40 - 7F + 0x03eb, 0x040c, 0x042a, 0x042a, 0x042a, 0x0445, 0x0445, 0x0466, + 0x047b, 0x0496, 0x04ab, 0x04c0, 0x04db, 0x04db, 0x04db, 0x04db, + 0x04ea, 0x050e, 0x0526, 0x0538, 0x054d, 0x054d, 0x0562, 0x0577, + 0x0577, 0x0577, 0x058f, 0x059e, 0x059e, 0x059e, 0x059e, 0x05b3, + 0x05cb, 0x05e9, 0x05e9, 0x061f, 0x0631, 0x0631, 0x0640, 0x065e, + 0x0673, 0x068e, 0x069d, 0x06a6, 0x06bb, 0x06d3, 0x06df, 0x06df, + 0x06f1, 0x06f1, 0x06fa, 0x06fa, 0x0718, 0x0718, 0x0718, 0x0718, + 0x072d, 0x072d, 0x074b, 0x075a, 0x075a, 0x076c, 0x076c, 0x077b, + // Entry 80 - BF + 0x07a2, 0x07c3, 0x07db, 0x0800, 0x0818, 0x0833, 0x0845, 0x086f, + 0x0884, 0x0884, 0x0893, 0x0893, 0x08a8, 0x08c3, 0x08d8, 0x08f9, + 0x0905, 0x0911, 0x0923, 0x0941, 0x095c, 0x0974, 0x0986, 0x099b, + 0x09b0, 0x09c8, 0x09d4, 0x09e6, 0x09f2, 0x09fb, 0x0a19, 0x0a2e, + 0x0a4c, 0x0a5b, 0x0a70, 0x0a82, 0x0a8e, 0x0a8e, 0x0a9a, 0x0abb, + 0x0aca, 0x0adc, 0x0adc, 0x0afd, 0x0b0f, 0x0b0f, 0x0b1e, 0x0b2d, + 0x0b42, 0x0b54, 0x0b69, 0x0b7b, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + // Entry C0 - FF + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + // Entry 100 - 13F + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, + 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b87, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + // Entry 140 - 17F + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0b99, + 0x0b99, 0x0b99, 0x0b99, 0x0b99, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + // Entry 180 - 1BF + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + // Entry 1C0 - 1FF + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + // Entry 200 - 23F + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + // Entry 240 - 27F + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, + 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bab, 0x0bcc, 0x0c00, + }, + }, + { // ks + "اَÙاراَبخازÙیاناَویستَناَÙریٖکانٛزاَکاناَمÛاریاَراگونیعربیاسٲمÛاَوارÙکای" + + "مارااَزَربیجانیبَشکیٖربیلَروٗشیَنبینابÙسلامابَمبارابَنٛگٲلÛتÙبتیبری" + + "ٹَنبوسنÙیَنکَتلانچیچَنکَموروکارسÙکَنکریچیٚکچٔرچ سلاوÙÚ©Ú†Ùواشویٚلشڈین" + + "ÙشجٔرمَندÙÙˆÛŒÛیزونٛگکھاایٖویوٗنٲنیاَنٛگیٖزÛایٚسپَرینٹوسپینÙشایٚسٹونی" + + "َنباسکÙارسیÙÙلاÛÙÙÙ†ÙØ´ÙÙجیَنÙَروسÙریٚنچمغربی ÙرÙشیَناَیرÙشسکوٹÙØ´ گیے" + + "Ù„ÙکگیلÙØ´ÙیَنگÙوارَنیگÙجرٲتیمینٛکسÛاوساعبرٲنÛÛÙندیÛÙری موتوٗکروشÙیَن" + + "ÛیتÙیاںÛَنٛگیریَناَرمینیَنÛیٚریٖرواÙنٹَرلÙنٛگوااÙنڈونیشیااÙنٹَر Ù„ÙÙ†" + + "ٛنگویےاÙگبوسÙچوان یٖیاÙÙ†ÙÙ¾ÙیاکاÙڈوآیÙسلینڈÙکاÙٹیلیَناÙÙ†ÙکتÙتوٗجاپٲن" + + "ÛجَوَنیٖزجارجÙیَنکونٛگوکÙÚ©ÙیوٗکÙوانیاماکازَخکَلالÙسÙتخَمیرکَنَڑکوری" + + "َنکَنوٗریکٲشÙرکÙردÙشکومیکورنÙØ´Ú©ÙرگÙزلاتیٖنیلÙکھزیمبورگÙشگاندالÙمبٔر" + + "Ú¯ÙشلÙنگالالاولÙتھوانÙیَنلوÙبا کَتَنٛگالَتوÙیَنمَلاگَسیمارشَلیٖزماور" + + "یمیکَڈونیَنمٔلیالَممَنٛگولیمَرٲٹھÛمَلَےمَلتیٖسبٔمیٖزناورÙØ´Ùمال ڈَبی" + + "لنیٚپٲلÛڈونٛگاڈَچناروییَن Ù†ÙŽÛ’ نورسکناروییَن بوکمالجنوب ڈیٚبیلنَواجو" + + "Ù†ÙیَنجااوکسیٖٹَناوجÙبوااوٚرومواوٚرÙیااوٚسیٚٹÙکپَنجٲبÛپالیپالÙشپَشتو" + + "ٗپÙرتَگیٖزکÙویشÙوارومانشرÙندیرومٲنیروٗسیکÙنیاوÙنداسَنسکرٕتسراڈیٖنیس" + + "ÙندیشÙمٲلی سَمیسَنگوسÙÙ†ÛالاسلووَکسلووینیَنسَمواَنشوناسومٲلیالبانÙیَ" + + "نسٔربÙیَنسواتیجنوبی ستھوسَنڈَنیٖزسویٖڈÙشسواÛÙلیتَمÙلتیلگوٗتاجÙکتھاے" + + "Ù¹ÙگرÙنیاتÙرکمینسواناٹونٛگاتÙرکÙشژونٛگاتَتارتاÛیشÙیَنیوٗکرینیٲییاÙرد" + + "وٗاÙزبیکوینداوÙیَتنَمیٖزوولَپÙکوَلوٗنوولوÙکھوسایÙدÙشیورÙبازÙÛانٛگچی" + + "ٖنیزÙلوٗاَچَےنیٖزاَکولیاَدَنٛگمیےاَدَیٖگیےاَÙرÙÛÙلیاینوٗاَکادÙیَناَ" + + "لویتیجنوٗبی اَلتاییپرون اَنٛگریٖزیاَنٛگÙکااَرَمیکایرو کونÙیَناَراپا" + + "ÛواَراوَکایسٹوٗریَناَوَدیبَلوٗچیبالÙنیٖزباسابیجابیٚمبابوجپوٗریبÙکول" + + "بÙنیسÙکسÙکابرٛجبÙرÙیَتبَگنیٖزبٕلÙنکاڈوکارÙباتسَمسیباونوچیٖبچاچھَگتا" + + "Û’Ú†ÙکیٖزماریچÙنوٗک جارگَنچوکتَوشیپویانچیٚروکیشییونکاپٹÙککرٕمیٖن تÙرک" + + "یکَشوٗبÙیَنڈکوٹادَرگواڈیٚلوییَرسلیوڈاگرÙبڈÙنکاڈوگریبوٚنÙÙ… ساربÙیَند" + + "Ùوالاوَستی Ù¾ÙرتÙگالیڈÙیوٗلاایٚÙÙکقدیٖمی Ù…ÙصریایٚکاجÙکایٚلامایÙٹوَسط" + + "ÛŒ اَنٛگریٖزÛایٚوونڈوÙینٛگÙÙÙ„ÙپیٖنوÙونوسطی Ùریٚنچپرون ÙریٚنچشÙمٲلی Ù" + + "رÙشیَنمشرÙÙ‚ÛŒ ÙرÙشیَنÙروٗلÙیَنگاگیےیوگبایاگیٖزگÙلبٔرٹیٖزوَسطی Ûاے جٔ" + + "رمَنپرون Ûاے جٔرمَنگوندیگورینٹیلوگوتھÙکگرÙبوقدیٖم یوٗنٲنیسٕوÙس جٔرم" + + "ÙŽÙ†Ú¯ÙÙˆÙÚ† اÙÙ†ÛَیداÛوایÙیَنÛÙلیٖگینَنÛÙتایÙتÛمونٛگÛیٚرÙÙ… ساربÙیَنÛÙپاا" + + "ÙباناÙلوکواÙÙ†Ù›Ú¯Ùشلوجبانجوڈیو Ùارسیجوڈیو عربیکارا کَلپَککَبایÙلکاچÙÙ†" + + "جÙوٗکامباکَویکَبارڈÙیَنتَیَپکوروکھاسیکھوتَنیٖزکÙمبÙندوٗکونکَنیکوسری" + + "یَنکَپیلیکراچیے بَلکارکَریلÙیَنکÙرÙÚ©Ú¾Ú©ÙÙ…ÙÚ©Ú©ÙتینَےلیڈÙنولَÛَندالَمبا" + + "لیزگÙیَنمونٛگولوزیلوٗبا لوٗلÙوالویÙسینولÙندالÙوولÙسÛاےمَدÙریٖزمَگاے" + + "میتَھلیمَکَسارمَندÙنٛگومَساےموکشامَندَرمیندیےوَستی ایرÙشمÙکمیکمÙÙ†ÙŽÙ†" + + "ٛگکَباومانٛچوٗمَنیپوٗریموÛØ§Ú©Ù…ÙˆØ³ÛŒÙˆØ§Ø±ÛŒØ§Û Ø²Ø¨Ø§Ù†Ú©Ø±ÛŒÙ–Ú©Ù…Ùراندیٖزمارواڑیایٚ" + + "رزÙیانیٖپالیٹَنبوٚنÙÙ… جٔرمَننیٚوارینÙیاسنÙیویَننوگاےپرون نارسیایٚن " + + "کوشمالی ستھوکلاسÙÚ©ÙŽÙ„ نیوارینÙیَمویٚزینÙیَنکولنÙیورونَظیٖمااوٚسیجاوٹ" + + "ومَن تÙرکÙشپَنٛگاسÙنَنپَÛلَویپَمپَنٛگاپَپÙیامیٚنٹوپَلااÙواںپرون Ùار" + + "سیÙونیٖشیَنپانپیٚیَنپرون پروویٚنچَلراجÙستھٲنÛرَپانویرَروٹونٛگَنرومَ" + + "نیاَرومانیسَندَویےیاکÙتسَمارÙتَن اَرامیکسَسَکسَنتالیسÙÚ†ÙÙ„Ùیَنسکاٹسس" + + "یٚلکÙپپرون ایرÙششانسÙداموجنوٗبی سَمیلولیے سَمیاÙناری سَمیسکولٹ سَمی" + + "سونÙنکیےسوگڈÙیَنسرٛانَن ٹونٛگوسیٚریرسÙÚ©ÙماسÙسوٗسÙمیریَنسیٖریٲییٹÙمن" + + "یےٹیٚریٚنوٹیٹَمٹاےگریےتیٖوٹوکیٖلاوکÙÙ„ÙنگونٹÙÙ„ÙÙ†Ú¯Ùتتاماشیکنیاسا ٹونٛ" + + "گاٹاک Ù¾ÙسÙÙ†Ú˜Ú¾ÙمشÙیانتÙمبÙکاتÙوالوٗتÙویٖنیَناÙدمÙرتاÙگارتÙÚ©ÛŒÙمبÙندوٗ" + + "روٗٹواےووتÙکوالامووَریےواشوکالمÙکیاویَپیٖززَپوتیٚکزیناگازوٗنیکانٛÛÛ" + + " تÛÙ Ù„Ùسانیاتی مواد Ù†ÛٕزازاآسٹرÙیَن جٔرمَنسٕوÙس Ûاےجٔرمَنآسٹریلیَن ا" + + "َنٛگریٖزÛکینَڈÙیٲیی اَنٛگریٖزÛبَرطانوی اَنٛگریٖزÛیوٗ ایٚس اَنٛگریٖز" + + "Ûلیٹٕن امریٖکی سپینÙشلÙبیریَن سپینÙشکَنیڈیَن Ùریٚنچسٕوٕس ÙریٚنچÙلیٚ" + + "Ù…Ùشبرازیٖلی Ù¾ÙتَگیٖزلÙبیریَن Ù¾ÙرتَگیٖزمولداوÙیَنسیٚربو کروشÙیَنسیٚو" + + "د چیٖنیرÙوٲجی چیٖنی", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x001e, 0x002e, 0x0044, 0x004e, 0x005c, 0x006c, + 0x0074, 0x007e, 0x008c, 0x0098, 0x00ae, 0x00bc, 0x00d2, 0x00da, + 0x00e8, 0x00f6, 0x0106, 0x0110, 0x011c, 0x012c, 0x0138, 0x0142, + 0x014e, 0x015e, 0x0164, 0x016c, 0x0181, 0x018b, 0x0195, 0x019f, + 0x01ab, 0x01b7, 0x01c7, 0x01cf, 0x01dd, 0x01ef, 0x0205, 0x0211, + 0x0225, 0x022d, 0x0237, 0x0241, 0x024b, 0x0257, 0x0261, 0x026d, + 0x0286, 0x0292, 0x02ab, 0x02bd, 0x02cd, 0x02db, 0x02e7, 0x02f1, + 0x02fd, 0x0307, 0x031a, 0x032a, 0x0338, 0x034c, 0x035e, 0x036e, + // Entry 40 - 7F + 0x0388, 0x039c, 0x03bb, 0x03c5, 0x03d8, 0x03ea, 0x03f2, 0x0406, + 0x0416, 0x042a, 0x0436, 0x0446, 0x0456, 0x0462, 0x0470, 0x0482, + 0x048c, 0x049e, 0x04a8, 0x04b2, 0x04be, 0x04cc, 0x04d6, 0x04e2, + 0x04ea, 0x04f6, 0x0502, 0x0510, 0x052a, 0x0534, 0x0546, 0x0554, + 0x055a, 0x0570, 0x058b, 0x059b, 0x05ab, 0x05bd, 0x05c7, 0x05db, + 0x05eb, 0x05fb, 0x0609, 0x0613, 0x0621, 0x062d, 0x0637, 0x064c, + 0x065a, 0x0666, 0x066c, 0x068e, 0x06ab, 0x06c0, 0x06cc, 0x06da, + 0x06ec, 0x06fa, 0x0708, 0x0716, 0x0728, 0x0736, 0x073e, 0x0748, + // Entry 80 - BF + 0x0754, 0x0766, 0x0776, 0x0782, 0x078c, 0x0798, 0x07a2, 0x07b6, + 0x07c6, 0x07d6, 0x07e0, 0x07f5, 0x07ff, 0x080d, 0x0819, 0x082b, + 0x0839, 0x0841, 0x084d, 0x085f, 0x086f, 0x0879, 0x088c, 0x089e, + 0x08ac, 0x08ba, 0x08c4, 0x08d0, 0x08da, 0x08e2, 0x08f2, 0x0900, + 0x090a, 0x0916, 0x0922, 0x092e, 0x0938, 0x094a, 0x094a, 0x0960, + 0x096c, 0x0978, 0x0982, 0x0998, 0x09a6, 0x09b2, 0x09bc, 0x09c6, + 0x09d0, 0x09dc, 0x09ea, 0x09f4, 0x09fe, 0x0a10, 0x0a1c, 0x0a30, + 0x0a42, 0x0a42, 0x0a54, 0x0a54, 0x0a5e, 0x0a70, 0x0a70, 0x0a7e, + // Entry C0 - FF + 0x0a7e, 0x0a99, 0x0ab6, 0x0ac6, 0x0ad4, 0x0aeb, 0x0aeb, 0x0afb, + 0x0afb, 0x0b09, 0x0b09, 0x0b09, 0x0b09, 0x0b09, 0x0b1d, 0x0b1d, + 0x0b29, 0x0b37, 0x0b47, 0x0b47, 0x0b4f, 0x0b4f, 0x0b4f, 0x0b4f, + 0x0b57, 0x0b63, 0x0b63, 0x0b63, 0x0b63, 0x0b63, 0x0b63, 0x0b73, + 0x0b7d, 0x0b85, 0x0b85, 0x0b85, 0x0b93, 0x0b93, 0x0b93, 0x0b9b, + 0x0b9b, 0x0b9b, 0x0b9b, 0x0ba9, 0x0bb7, 0x0bb7, 0x0bc1, 0x0bc1, + 0x0bc9, 0x0bd3, 0x0bd3, 0x0bdd, 0x0beb, 0x0beb, 0x0bf7, 0x0c05, + 0x0c11, 0x0c19, 0x0c32, 0x0c3e, 0x0c4c, 0x0c5a, 0x0c64, 0x0c64, + // Entry 100 - 13F + 0x0c70, 0x0c70, 0x0c89, 0x0c9d, 0x0ca7, 0x0cb3, 0x0cb3, 0x0cc5, + 0x0ccd, 0x0cd9, 0x0ce3, 0x0ce3, 0x0ced, 0x0d0a, 0x0d0a, 0x0d16, + 0x0d33, 0x0d33, 0x0d41, 0x0d41, 0x0d41, 0x0d4d, 0x0d4d, 0x0d64, + 0x0d74, 0x0d88, 0x0da7, 0x0da7, 0x0db7, 0x0db7, 0x0dc1, 0x0dd3, + 0x0dd3, 0x0dd9, 0x0dd9, 0x0dee, 0x0e03, 0x0e03, 0x0e1e, 0x0e39, + 0x0e4b, 0x0e4f, 0x0e4f, 0x0e4f, 0x0e59, 0x0e63, 0x0e63, 0x0e6b, + 0x0e7f, 0x0e7f, 0x0e9d, 0x0eb9, 0x0eb9, 0x0ec3, 0x0ed5, 0x0ee1, + 0x0eeb, 0x0f04, 0x0f1b, 0x0f1b, 0x0f1b, 0x0f1b, 0x0f2c, 0x0f36, + // Entry 140 - 17F + 0x0f36, 0x0f46, 0x0f46, 0x0f5a, 0x0f68, 0x0f74, 0x0f91, 0x0f91, + 0x0f99, 0x0fa3, 0x0fa3, 0x0faf, 0x0fbd, 0x0fbd, 0x0fbd, 0x0fc9, + 0x0fc9, 0x0fc9, 0x0fde, 0x0ff1, 0x0ff1, 0x1006, 0x1014, 0x101e, + 0x1026, 0x1030, 0x1038, 0x104c, 0x104c, 0x1056, 0x1056, 0x1056, + 0x1056, 0x105e, 0x105e, 0x1068, 0x107a, 0x107a, 0x107a, 0x107a, + 0x107a, 0x107a, 0x108c, 0x108c, 0x109a, 0x10aa, 0x10b6, 0x10cf, + 0x10cf, 0x10cf, 0x10e1, 0x10ed, 0x10ed, 0x10ed, 0x10ed, 0x10f7, + 0x1105, 0x1111, 0x1111, 0x111f, 0x1129, 0x1139, 0x1139, 0x1139, + // Entry 180 - 1BF + 0x1139, 0x1139, 0x1139, 0x1145, 0x114d, 0x114d, 0x114d, 0x1166, + 0x1176, 0x1180, 0x1188, 0x1194, 0x1194, 0x1194, 0x1194, 0x11a4, + 0x11a4, 0x11ae, 0x11bc, 0x11ca, 0x11dc, 0x11e6, 0x11e6, 0x11f0, + 0x11fc, 0x1208, 0x1208, 0x1208, 0x121d, 0x121d, 0x121d, 0x1229, + 0x1241, 0x124f, 0x1261, 0x126b, 0x1273, 0x1273, 0x1273, 0x1288, + 0x1292, 0x12a4, 0x12b2, 0x12b2, 0x12b2, 0x12c2, 0x12c2, 0x12c2, + 0x12d6, 0x12d6, 0x12ef, 0x12fd, 0x1307, 0x1315, 0x1315, 0x1315, + 0x1315, 0x131f, 0x1332, 0x1332, 0x133f, 0x1352, 0x1352, 0x136f, + // Entry 1C0 - 1FF + 0x1383, 0x1393, 0x139f, 0x13ad, 0x13b9, 0x13d4, 0x13ea, 0x13f8, + 0x140a, 0x1422, 0x1434, 0x1434, 0x1434, 0x1434, 0x1447, 0x1447, + 0x1459, 0x1459, 0x1459, 0x146b, 0x146b, 0x1488, 0x1488, 0x1488, + 0x149c, 0x14aa, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14cc, 0x14cc, + 0x14cc, 0x14cc, 0x14dc, 0x14dc, 0x14ec, 0x14f6, 0x1517, 0x1517, + 0x1521, 0x152f, 0x152f, 0x152f, 0x152f, 0x1541, 0x154b, 0x154b, + 0x154b, 0x154b, 0x154b, 0x154b, 0x1559, 0x1559, 0x156c, 0x156c, + 0x156c, 0x1572, 0x1572, 0x157e, 0x157e, 0x157e, 0x1593, 0x15a6, + // Entry 200 - 23F + 0x15bb, 0x15ce, 0x15de, 0x15ee, 0x1609, 0x1615, 0x1615, 0x1615, + 0x1621, 0x162b, 0x163b, 0x163b, 0x163b, 0x164b, 0x164b, 0x164b, + 0x1657, 0x1657, 0x1667, 0x1671, 0x167f, 0x1687, 0x1697, 0x1697, + 0x16a7, 0x16b7, 0x16b7, 0x16c5, 0x16dc, 0x16ed, 0x16ed, 0x16ed, + 0x16ed, 0x16ff, 0x16ff, 0x170d, 0x171b, 0x171b, 0x172d, 0x172d, + 0x173b, 0x174b, 0x175d, 0x1765, 0x176b, 0x176b, 0x176b, 0x176b, + 0x176b, 0x1775, 0x1775, 0x1775, 0x1775, 0x1781, 0x178b, 0x1793, + 0x1793, 0x1793, 0x179f, 0x179f, 0x179f, 0x17a5, 0x17b1, 0x17b1, + // Entry 240 - 27F + 0x17b1, 0x17b1, 0x17b1, 0x17c1, 0x17c1, 0x17c1, 0x17cd, 0x17cd, + 0x17d7, 0x180d, 0x1815, 0x1815, 0x1815, 0x1832, 0x184f, 0x1876, + 0x189f, 0x18c4, 0x18e8, 0x190e, 0x192b, 0x192b, 0x192b, 0x1948, + 0x195f, 0x195f, 0x196d, 0x198e, 0x19b1, 0x19c5, 0x19e2, 0x19e2, + 0x19f7, 0x1a0e, + }, + }, + { // ksb + "KiakanKiamhaliKialabuKibelaausiKibulgaliaKibanglaKicheckiKijeumaniKigiik" + + "iKiingeezaKihispaniaKiajemiKifalansaKihausaKihindiKihungaiKiindonesi" + + "aKiigboKiitalianoKijapaniKijavaKikambodiaKikoleaKimalesiaKibulmaKine" + + "paliKiholanziKipunjabiKipolandiKilenoKiomaniaKilusiKinyalwandaKisoma" + + "liKiswidiKitamilKitailandiKituukiKiuklaniaKiulduKivietinamuKiyolubaK" + + "ichinaKizuluKishambaa", + []uint16{ // 373 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0049, 0x0052, 0x0052, 0x005c, + 0x005c, 0x005c, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0073, + 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x0082, 0x0082, 0x0082, + // Entry 40 - 7F + 0x0082, 0x008d, 0x008d, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x009d, 0x009d, 0x00a5, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + 0x00ab, 0x00ab, 0x00b5, 0x00b5, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00bc, 0x00c5, 0x00c5, 0x00cc, 0x00cc, 0x00cc, + 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00e6, 0x00e6, 0x00ef, + // Entry 80 - BF + 0x00ef, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00fd, 0x0103, 0x010e, + 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, + 0x010e, 0x010e, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, + 0x011d, 0x011d, 0x0124, 0x0124, 0x0124, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x013e, + 0x0144, 0x0144, 0x0144, 0x014f, 0x014f, 0x014f, 0x014f, 0x014f, + 0x014f, 0x0157, 0x0157, 0x015e, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + // Entry C0 - FF + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + // Entry 100 - 13F + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + // Entry 140 - 17F + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x0164, 0x016d, + }, + }, + { // ksf + "riakanriamarikriarabribÉ›lÉ”rísribulgaríribÉ›ngáliricÉ›ÌkridjÉ›rmanrigrÉ›Ìkrii" + + "ngÉ›rísrikpanyáripÉ›rsánripÉ›rÉ›sÇÌrikaksariíndíriÉ”ngrɔáriindonÉ›síriigbo" + + "riitalyÉ›ÌnrijapÉ”ÌÅ‹rijawanÉ›ÌrikmÉ›rrikÉ”rɛɛÌrimalaíribirmánrinepalÉ›ÌriÉ”" + + "lándÉ›ÌripÉ›njabíripÉ”lÉ”ÌnripÉ”rtugÉ›ÌrirÉ”mánrirísrirwandarisomalíriswÉ›Ìd" + + "ÇritamúlritaíriturkriukrÉ›ÌnriurdúriwyÉ›tnámriyúubaricinɔárizúlurikpa", + []uint16{ // 374 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0050, 0x005b, 0x005b, 0x0064, + 0x0064, 0x0064, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x007b, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x0082, + 0x0082, 0x008a, 0x008a, 0x008a, 0x008a, 0x0095, 0x0095, 0x0095, + // Entry 40 - 7F + 0x0095, 0x00a1, 0x00a1, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, + 0x00b3, 0x00b3, 0x00be, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, + 0x00c9, 0x00c9, 0x00d0, 0x00d0, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00e4, 0x00e4, 0x00ed, 0x00ed, 0x00ed, + 0x00f8, 0x00f8, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, + 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0110, 0x0110, 0x011b, + // Entry 80 - BF + 0x011b, 0x0128, 0x0128, 0x0128, 0x0128, 0x0131, 0x0137, 0x013f, + 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x013f, 0x013f, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, + 0x0153, 0x0153, 0x015b, 0x015b, 0x015b, 0x0161, 0x0161, 0x0161, + 0x0161, 0x0161, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0171, + 0x0178, 0x0178, 0x0178, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, + 0x0183, 0x018b, 0x018b, 0x0194, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + // Entry C0 - FF + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + // Entry 100 - 13F + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + // Entry 140 - 17F + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, + 0x019b, 0x019b, 0x019b, 0x019b, 0x019b, 0x01a0, + }, + }, + { // ksh + "AfahreschAbchahseschAvästahneschAfrikaansAkahneschAmhahreschArrajonehses" + + "chArahbeschAßamehseschAvahreschAimahreschAsserbaidschahneschBaschkih" + + "reschWiißrußeschBulljaareschBambaraBängjaaleschTibehteschBettohnesch" + + "BoßneschKattalahneschKorseschTschäscheschKerscheßlahweschTschowasche" + + "schWallihseschDähneschDeutschDivehjeschButahneschEweJrihscheschÄngle" + + "schEsperantoSchpahneschÄßneschBaskeschPärseschFinneschFidscheschFärr" + + "öereschFranzüüseschWäßfriiseschIereschJalliizeschJuwaraaneschGutsch" + + "arateschHaußaHebräjeschHindiKrowateschHa’iiteschUnjarreschArmeenesch" + + "IndoneeseschIgboIdoIßländeschEtalljäneschInuktitutJapaaneschJavahnes" + + "chJe’orjeschKassakeschKhmerKannadaKorrejaaneschKaschmiereschKurdesch" + + "KirjihseschLateijneschLuxemborjeschLingjallaLahooteschLittoueschLätt" + + "eschMadajaßkeschMaahoriMazedooneschMallajalamMongjoleschMarraateschM" + + "allaijeschMalteeseschBurmesseschNood-NdebeleNepallesseschHolländesch" + + "Neu-NorrweejeschNorrweejesch BokmÃ¥lSchi-SchewaOriijaOßeeteschPanscha" + + "abeschPollneschPaschtuuneschPochtojeseschKättschowaRätoromaaneschK-R" + + "undeschRumäneschRußßeschKinja-RuandeschSanskritSinndiNood-Lappländes" + + "chSangjoSingjaleeseschẞlovakeschẞloveeneschSammohaneschSchi-SchonaSo" + + "maaleschAlbaaneschSärbeschSi-SwateschSöd-SootoSindaneeseschSchweedes" + + "chSuaheeleschTamiileschTelluujuTadschiikeschTailändeschTijrenejaanes" + + "chTörkmeeneschSe-ZwaaneschTongjaaneschTörkeschXi-ZongjaneschTattaare" + + "schTahiteschUj’juuerschUkraineschUrdu/HindiUßbeekeschWendaVijätnamme" + + "eseschWoloffIsi-KhoosaJoruubaSchineeseschSuuluAschenehseschTonehsesc" + + "h ArahbeschAfrehihleschAkahdeschAle’uhteschAhl ÄngleschAljehresch Ar" + + "ahbeschMarokahnesch ArahbeschÄjiptesch ArahbeschPareAmärrekahnesche " + + "BlendeschprohchAstuhrejahneschBeluhtscheschBalinehseschBaireschBemba" + + "BenaBischnuprejahneschBrajeschBrahuijeschBoddoBurejahteschBujinehses" + + "chKopteschKaschuhbeschNiddersorbeschMeddelnehderlängschDassajahnesch" + + "EmbuEfikEmilijahneschAhl ÄjipteschMeddelängleschZätrahl-JupikfilSchw" + + "itzerdütschHauajaaneschEngjuscheschIngjrijahneschJamaikahnesch-Ängle" + + "schLodschbahnJühdesch-PärseschJüteschKapvärdeschKölschde Landa-Schpr" + + "oocheLuyjanesch-ongerscheidlijje Schprooche-Nood-SootoKiromboJackute" + + "schKommooreschTetumschTook Pisin-onbikannte-Schprooch-WalserdütschKa" + + "nton-Schineeseschkein SchproochSchtandatt ArahbeschSödasserbaidschah" + + "neschDeutsch uß ÖßterichDeutsch uß de SchweijzÄnglesch uß Außtraalij" + + "eÄnglesch uß KanadaÄnglesch uß JruußbrettannijeAmärrekaanesch Ängles" + + "chSchpaanesch uß Latting-AmmärrikaSchpahnesch en SchpahnejeSchpahnes" + + "ch en MäxikohFranzüüsesch uß KanadaFranzüüsesch uß de SchweijzFlämes" + + "chBrasilljaanesch PochtojeseschPochtojesesch uß PochtojallSärbokowat" + + "eschSchineesesch en de eijfacher SchreffSchineesesch en de tradizjon" + + "älle Schreff", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0014, 0x0021, 0x002a, 0x0033, 0x003d, 0x004b, + 0x0054, 0x0060, 0x0069, 0x0073, 0x0086, 0x0093, 0x00a0, 0x00ac, + 0x00ac, 0x00b3, 0x00c0, 0x00ca, 0x00d5, 0x00de, 0x00eb, 0x00eb, + 0x00eb, 0x00f3, 0x00f3, 0x0100, 0x0111, 0x011f, 0x012a, 0x0133, + 0x013a, 0x0144, 0x014e, 0x0151, 0x015c, 0x0165, 0x016e, 0x0179, + 0x0182, 0x018a, 0x0193, 0x0193, 0x019b, 0x01a5, 0x01b2, 0x01c0, + 0x01ce, 0x01d5, 0x01d5, 0x01e0, 0x01ec, 0x01fa, 0x01fa, 0x0200, + 0x020b, 0x0210, 0x0210, 0x021a, 0x0226, 0x0230, 0x023a, 0x023a, + // Entry 40 - 7F + 0x023a, 0x0246, 0x0246, 0x024a, 0x024a, 0x024a, 0x024d, 0x0259, + 0x0266, 0x026f, 0x0279, 0x0283, 0x028f, 0x028f, 0x028f, 0x028f, + 0x0299, 0x0299, 0x029e, 0x02a5, 0x02b2, 0x02b2, 0x02bf, 0x02c7, + 0x02c7, 0x02c7, 0x02d2, 0x02dd, 0x02ea, 0x02ea, 0x02ea, 0x02f3, + 0x02fd, 0x0307, 0x0307, 0x0310, 0x031d, 0x031d, 0x0324, 0x0330, + 0x033a, 0x0345, 0x0350, 0x035b, 0x0366, 0x0371, 0x0371, 0x037d, + 0x038a, 0x038a, 0x0396, 0x03a6, 0x03ba, 0x03ba, 0x03ba, 0x03c5, + 0x03c5, 0x03c5, 0x03c5, 0x03cb, 0x03d5, 0x03e2, 0x03e2, 0x03eb, + // Entry 80 - BF + 0x03f8, 0x0405, 0x0410, 0x041f, 0x0429, 0x0433, 0x043d, 0x044c, + 0x0454, 0x0454, 0x045a, 0x046c, 0x0472, 0x0480, 0x048c, 0x0499, + 0x04a5, 0x04b0, 0x04ba, 0x04c4, 0x04cd, 0x04d8, 0x04e2, 0x04ef, + 0x04fa, 0x0505, 0x050f, 0x0517, 0x0524, 0x0530, 0x053f, 0x054c, + 0x0558, 0x0564, 0x056d, 0x057b, 0x0586, 0x058f, 0x059c, 0x05a6, + 0x05b0, 0x05bb, 0x05c0, 0x05d1, 0x05d1, 0x05d1, 0x05d7, 0x05e1, + 0x05e1, 0x05e8, 0x05e8, 0x05f4, 0x05f9, 0x0606, 0x0606, 0x0606, + 0x0606, 0x061a, 0x0626, 0x0626, 0x0626, 0x062f, 0x062f, 0x063c, + // Entry C0 - FF + 0x063c, 0x063c, 0x0649, 0x0649, 0x0649, 0x0649, 0x0649, 0x0649, + 0x065d, 0x065d, 0x0673, 0x0687, 0x068b, 0x06ab, 0x06ba, 0x06ba, + 0x06ba, 0x06c7, 0x06d3, 0x06db, 0x06db, 0x06db, 0x06db, 0x06db, + 0x06db, 0x06e0, 0x06e0, 0x06e4, 0x06e4, 0x06e4, 0x06e4, 0x06e4, + 0x06e4, 0x06e4, 0x06e4, 0x06e4, 0x06e4, 0x06f6, 0x06f6, 0x06fe, + 0x0709, 0x070e, 0x070e, 0x071a, 0x0726, 0x0726, 0x0726, 0x0726, + 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, + 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, 0x0726, + // Entry 100 - 13F + 0x072e, 0x072e, 0x072e, 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, + 0x073a, 0x073a, 0x073a, 0x073a, 0x073a, 0x0748, 0x0748, 0x0748, + 0x075c, 0x075c, 0x075c, 0x0769, 0x076d, 0x0771, 0x077e, 0x078c, + 0x078c, 0x078c, 0x079b, 0x07a9, 0x07a9, 0x07a9, 0x07a9, 0x07ac, + 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, + 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, + 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07ac, + 0x07ac, 0x07ac, 0x07bc, 0x07bc, 0x07bc, 0x07bc, 0x07bc, 0x07bc, + // Entry 140 - 17F + 0x07bc, 0x07c8, 0x07c8, 0x07c8, 0x07c8, 0x07c8, 0x07c8, 0x07c8, + 0x07c8, 0x07c8, 0x07c8, 0x07c8, 0x07d4, 0x07e2, 0x07f9, 0x0803, + 0x0803, 0x0803, 0x0816, 0x0816, 0x081e, 0x081e, 0x081e, 0x081e, + 0x081e, 0x081e, 0x081e, 0x081e, 0x081e, 0x081e, 0x081e, 0x082a, + 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, + 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, + 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x082a, 0x0831, 0x0831, + 0x0831, 0x0831, 0x0831, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, + // Entry 180 - 1BF + 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, 0x0844, + 0x0844, 0x0844, 0x0844, 0x0844, 0x084e, 0x084e, 0x084e, 0x084e, + 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, + 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, + 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x084e, 0x086b, + 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, + 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, + 0x086b, 0x086b, 0x086b, 0x086b, 0x086b, 0x0875, 0x0875, 0x0875, + // Entry 1C0 - 1FF + 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, + 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, + 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, + 0x0875, 0x0875, 0x0875, 0x0875, 0x0875, 0x087c, 0x087c, 0x087c, + 0x087c, 0x087c, 0x087c, 0x087c, 0x087c, 0x0886, 0x0886, 0x0886, + 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, + 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, + 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, + // Entry 200 - 23F + 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, 0x0886, + 0x0886, 0x0886, 0x0886, 0x0891, 0x0891, 0x0891, 0x0891, 0x0891, + 0x0891, 0x0891, 0x0891, 0x0899, 0x0899, 0x0899, 0x0899, 0x0899, + 0x0899, 0x0899, 0x0899, 0x0899, 0x0899, 0x08a3, 0x08a3, 0x08a3, + 0x08a3, 0x08a3, 0x08a3, 0x08a3, 0x08a3, 0x08a3, 0x08a3, 0x08a3, + 0x08a3, 0x08a3, 0x08a3, 0x08b9, 0x08b9, 0x08b9, 0x08b9, 0x08b9, + 0x08b9, 0x08b9, 0x08b9, 0x08b9, 0x08c6, 0x08c6, 0x08c6, 0x08c6, + 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08c6, 0x08c6, + // Entry 240 - 27F + 0x08c6, 0x08c6, 0x08d9, 0x08d9, 0x08d9, 0x08d9, 0x08d9, 0x08d9, + 0x08d9, 0x08e7, 0x08e7, 0x08fb, 0x0912, 0x0928, 0x093f, 0x0959, + 0x096d, 0x098c, 0x09a5, 0x09c7, 0x09e0, 0x09f7, 0x09f7, 0x0a10, + 0x0a2e, 0x0a2e, 0x0a37, 0x0a54, 0x0a70, 0x0a70, 0x0a7f, 0x0a7f, + 0x0aa3, 0x0acc, + }, + }, + { // kw + "kernewek", + []uint16{ // 90 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0008, + }, + }, + { // ky + kyLangStr, + kyLangIdx, + }, + { // lag + "KɨakáaniKɨmʉháariKɨaráabuKɨberalúusiKɨbulugáriaKɨbangálaKɨchéekiKɨjerʉmá" + + "aniKɨgiríkiKɨɨngeréesaKɨhispániaKɨajéemiKɨfaráansaKɨhaúusaKɨhíindiKɨ" + + "hungáriKɨɨndonésiaKiígiboKɨtaliáanoKɨjapáaniKɨjáavaKɨkambódiaKɨkoréa" + + "KɨmelésiaKɨbáamaKɨnepáaliKɨholáanziKɨpúnjabiKɨpólandiKɨréenoKɨromaní" + + "aKɨrúusiKɨnyarwáandaKɨsómáaliKɨswíidiKɨtamíiliKɨtáilandiKɨturúukiKɨu" + + "kɨraníaKɨúrduKɨvietináamuKɨyorúubaKɨchíinaKɨzúuluKɨlaangi", + []uint16{ // 379 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x002d, 0x003a, + 0x003a, 0x003a, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, + 0x005d, 0x005d, 0x005d, 0x005d, 0x0067, 0x0075, 0x0075, 0x0081, + 0x0081, 0x0081, 0x008b, 0x008b, 0x008b, 0x008b, 0x008b, 0x0097, + 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x00a1, + 0x00a1, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00b6, 0x00b6, 0x00b6, + // Entry 40 - 7F + 0x00b6, 0x00c4, 0x00c4, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, + 0x00d8, 0x00d8, 0x00e3, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, + 0x00ec, 0x00ec, 0x00f8, 0x00f8, 0x0101, 0x0101, 0x0101, 0x0101, + 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, + 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, + 0x0101, 0x0101, 0x0101, 0x010c, 0x010c, 0x0115, 0x0115, 0x0115, + 0x0120, 0x0120, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, + 0x012c, 0x012c, 0x012c, 0x012c, 0x012c, 0x0137, 0x0137, 0x0142, + // Entry 80 - BF + 0x0142, 0x014b, 0x014b, 0x014b, 0x014b, 0x0156, 0x015f, 0x016d, + 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, 0x016d, + 0x016d, 0x016d, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, + 0x0183, 0x0183, 0x018e, 0x018e, 0x018e, 0x019a, 0x019a, 0x019a, + 0x019a, 0x019a, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01b2, + 0x01ba, 0x01ba, 0x01ba, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, + 0x01c8, 0x01d3, 0x01d3, 0x01dd, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + // Entry C0 - FF + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + // Entry 100 - 13F + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + // Entry 140 - 17F + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01ef, + }, + }, + { // lb + "AfarAbchaseschAvesteschAfrikaansAkanAmhareschAragoneseschArabeschAssames" + + "eschAwareschAymaraAserbaidschaneschBaschkireschWäissrusseschBulgares" + + "chBislamaBambara-SproochBengaleschTibeteschBretoneschBosneschKatalan" + + "eschTschetscheneschChamorro-SproochKorseschCreeTschecheschKierchesla" + + "weschTschuwascheschWaliseschDäneschDäitschMaldiveschBhutaneschEwe-Sp" + + "roochGriicheschEngleschEsperantoSpueneschEstneschBaskeschPerseschFul" + + "FinneschFidschianeschFäröeschFranséischWestfrieseschIreschSchottesch" + + "t GälleschGalizeschGuaraniGujaratiManxHausaHebräeschHindiHiri-MotuKr" + + "oateschHaitianeschUngareschArmeneschHerero-SproochInterlinguaIndones" + + "eschInterlingueIgbo-SproochSichuan YiInupiakIdo-SproochIslänneschIta" + + "lieneschInukitutJapaneschJavaneschGeorgeschKongoleseschKikuyu-Sprooc" + + "hKwanyamaKasacheschGrönlänneschKambodschaneschKannadaKoreaneschKanur" + + "i-SproochKaschmireschKurdeschKomi-SproochKorneschKirgiseschLatäinLët" + + "zebuergeschGanda-SproochLimburgeschLingalaLaoteschLitaueschLuba-Kata" + + "ngaLetteschMalagassi-SproochMarschalleseschMaoriMazedoneschMalayalam" + + "MongoleschMarathiMalaieschMalteseschBirmaneschNaurueschNord-Ndebele-" + + "SproochNepaleseschNdongaHollänneschNorwegesch NynorskNorwegesch Bokm" + + "Ã¥lSüd-Ndebele-SproochNavajoNyanja-SproochOkzitaneschOjibwa-SproochO" + + "romoOrijaOsseteschPandschabeschPaliPolneschPaschtuPortugiseschQuechu" + + "aRätoromaneschRundi-SproochRumäneschRusseschRuandeschSanskritSardesc" + + "hSindhiNordsameschSangoSinghaleseschSlowakeschSloweneschSamoaneschSh" + + "onaSomaliAlbaneschSerbeschSwaziSüd-Sotho-SproochSundaneseschSchwedes" + + "chSuaheliTamileschTeluguTadschikeschThailänneschTigrinjaTurkmeneschT" + + "swana-SproochTongaeschTierkeschTsongaTatareschTahiteschUigureschUkra" + + "ineschUrduUsbekeschVenda-SproochVietnameseschVolapükWallouneschWolof" + + "XhosaJiddeschYorubaZhuangChineseschZuluAceh-SproochAcholi-SproochAda" + + "ngmeAdygéieschTunesescht ArabeschAfrihiliAghemAinu-SproochAkkadeschA" + + "labamaAleuteschGegeschSüd-AlaeschAlengleschAngikaAramäeschMapudungun" + + "AraonaArapaho-SproochAlgerescht ArabeschArawak-SproochMarokkanescht " + + "ArabeschEgyptescht ArabeschAsu (Tanzania)Amerikanesch ZeechesproochA" + + "sturianeschKotavaAwadhiBelutscheschBalineseschBaireschBasaa-SproochB" + + "amunBatak TobaGhomálá’BedauyeBemba-SproochBetawiBenaBafutBadagaBhods" + + "chpuriBikol-SproochBini-SproochBanjareseschKomBlackfoot-SproochBishn" + + "upriyaBachtiareschBraj-BhakhaBrahuiBodoAkooseBurjateschBugineseschBu" + + "luBlinMedumbaCaddoKaribeschCayugaAtsamCebuanoKigaChibcha-SproochTsch" + + "agataeschTrukeseschMariChinookChoctawChipewyanCherokeeCheyenneSorani" + + "KopteschCapiznonKrimtatareschKaschubeschDakota-SproochDargineschTait" + + "aDelaware-SproochSlaveDogribDinka-SproochZarmaDogriNiddersorbeschZen" + + "tral-DusunDualaMëttelhollänneschJola-FonyiDyula-SproochDazagaKiembuE" + + "fikEmilianeschEgypteschEkajukElameschMëttelengleschYup’ikEwondoExtre" + + "madureschPangwe-SproochFilipinoMeänkieliFon-SproochCajunMëttelfransé" + + "ischAlfranséischFrankoprovenzaleschNordfrieseschOstfrieseschFriulesc" + + "hGa-SproochGagauseschGan-ChineseschGayoGbaya-SproochZoroastrianescht" + + " DariGeezGilberteseschGilakiMëttelhéichdäitschAlhéichdäitschGoan-Kon" + + "kaniGondi-SproochMongondouGoteschGrebo-SproochAlgriicheschSchwäizerd" + + "äitschWayuuFarefareGusii-SproochKutchin-SproochHaida-SproochHakka-C" + + "hineseschHawaieschFidschi-HindiHiligaynon-SproochHethiteschMiao-Spro" + + "ochUewersorbeschXiang-ChineseschHupaIbanIbibioIlokano-SproochIngusch" + + "eschIschoreschJamaikanesch-KreoleschLojbanNgombaMachameJiddesch-Pers" + + "eschJiddesch-ArabeschJüteschKarakalpakeschKabyleschKachin-SproochJju" + + "KambaKawiKabardineschKanembuTyapMakondeKabuverdianuKenyangKoroKainga" + + "ngKhasi-SproochSakeschKoyra ChiiniKhowarKirmanjkiKakoKalenjinKimbund" + + "u-SproochKomi-PermiakKonkaniKosraeaneschKpelle-SproochKaratschaiesch" + + "-BalkareschKrioKinaray-aKareleschOraon-SproochShambalaBafiaKölschKum" + + "ükeschKutenai-SproochLadinoLangiLahndaLamba-SproochLesgeschLingua F" + + "ranca NovaLigureschLiveschLakota-SproochLombardeschMongoRotse-Sprooc" + + "hLettgalleschLuba-LuluaLuiseno-SproochLunda-SproochLuo-SproochLushai" + + "-SproochOlulujiaKlassescht ChineseschLasesch SproochMadureseschMafaK" + + "hottaMaithiliMakassareschManding-SproochMassai-SproochMabaMokshaMand" + + "areseschMende-SproochMeru-SproochMorisyenMëttelireschMakhuwa-MeettoM" + + "eta’Micmac-SproochMinangkabau-SproochMandschureschMeithei-SproochMoh" + + "awk-SproochMossi-SproochWest-MariMundangMéisproochegMuskogee-Sprooch" + + "MirandeseschMarwariMentawaiMyeneErsja-MordwineschMazandaraniMin-Nan-" + + "ChineseschNeapolitaneschNamaNidderdäitschNewariNias-SproochNiue-Spro" + + "ochAo NagaKwasioNgiemboonNogaiAlnordeschNovialN’KoNord-Sotho-Sprooch" + + "NuerAl-NewariNyamwezi-SproochNyankoleNyoroNzimaOsage-SproochOsmanesc" + + "hPangasinan-SproochMëttelperseschPampanggan-SproochPapiamentoPalauPi" + + "cardeschPennsylvaniadäitschPlattdäitschAlperseschPfälzesch DäitschPh" + + "önikeschPiemonteseschPonteschPonapeaneschPreiseschAlprovenzaleschQu" + + "iché-SproochKichwa (Chimborazo-Gebidder)RajasthaniOuschterinsel-Spro" + + "ochRarotonganeschRomagnolTarifitRomboRomaniRotumaneschRussineschRovi" + + "anaAromuneschRwaSandawe-SproochJakuteschSamaritaneschSamburuSasakSan" + + "taliSaurashtraNgambaySanguSizilianeschSchotteschSassareseschSenecaSe" + + "naSeriSelkupeschKoyra SenniAlireschSamogiteschTaschelhitSchan-Sprooc" + + "hTschadesch-ArabeschSidamoNidderschleseschSelayarSüdsameschLule-Lapp" + + "eschInari-LappeschSkolt-LappeschSoninke-SproochSogdeschSrananeschSer" + + "er-SproochSahoSaterfrieseschSukuma-SproochSusuSumereschKomoreschAlsy" + + "reschSyreschSchleseschTuluTemneTesoTereno-SproochTetum-SproochTigreT" + + "iv-SproochTokelauaneschTsachureschKlingoneschTlingit-SproochTaleschT" + + "amaseqTsonga-SproochNeimelaneseschTuroyoSeediqTsakoneschTsimshian-Sp" + + "roochTateschTumbuka-SproochElliceaneschTasawaqTuwineschMëttlert-Atla" + + "s-TamazightUdmurteschUgariteschMbundu-SproochRootVai-SproochVenezesc" + + "hWepseschWestflämeschMainfränkeschWoteschVoroVunjoWalliserdäitschWal" + + "amo-SproochWarayWasho-SproochWu-ChineseschKalmückeschMingrelesch Spr" + + "oochSogaYao-SproochYapeseschYangbenYembaNheengatuKantoneseschZapotek" + + "eschBliss-SymbolerSeelänneschZenagaMarokkanescht Standard-TamazightZ" + + "uni-SproochKeng SproochinhalterZazaModernt HéicharabeschÉisträichesc" + + "ht DäitschSchwäizer HéichdäitschAustralescht EngleschKanadescht Engl" + + "eschBritescht EngleschAmerikanescht EngleschLatäinamerikanescht Spue" + + "neschEuropäescht SpueneschMexikanescht SpueneschKanadescht Franséisc" + + "hSchwäizer FranséischFlämeschBrasilianescht PortugiseschEuropäescht " + + "PortugiseschMoldaweschSerbo-KroateschKongo-SwahiliChinesesch (verein" + + "facht)Chinesesch (traditionell)", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, + 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0085, 0x008f, + 0x0096, 0x00a5, 0x00af, 0x00b8, 0x00c2, 0x00ca, 0x00d5, 0x00e4, + 0x00f4, 0x00fc, 0x0100, 0x010b, 0x011a, 0x0128, 0x0131, 0x0139, + 0x0141, 0x014b, 0x0155, 0x0160, 0x016a, 0x0172, 0x017b, 0x0184, + 0x018c, 0x0194, 0x019c, 0x019f, 0x01a7, 0x01b4, 0x01be, 0x01c9, + 0x01d6, 0x01dc, 0x01f1, 0x01fa, 0x0201, 0x0209, 0x020d, 0x0212, + 0x021c, 0x0221, 0x022a, 0x0233, 0x023e, 0x0247, 0x0250, 0x025e, + // Entry 40 - 7F + 0x0269, 0x0274, 0x027f, 0x028b, 0x0295, 0x029c, 0x02a7, 0x02b2, + 0x02bd, 0x02c5, 0x02ce, 0x02d7, 0x02e0, 0x02ec, 0x02fa, 0x0302, + 0x030c, 0x031a, 0x0329, 0x0330, 0x033a, 0x0348, 0x0354, 0x035c, + 0x0368, 0x0370, 0x037a, 0x0381, 0x0390, 0x039d, 0x03a8, 0x03af, + 0x03b7, 0x03c0, 0x03cc, 0x03d4, 0x03e5, 0x03f4, 0x03f9, 0x0404, + 0x040d, 0x0417, 0x041e, 0x0427, 0x0431, 0x043b, 0x0444, 0x0458, + 0x0463, 0x0469, 0x0475, 0x0487, 0x0499, 0x04ad, 0x04b3, 0x04c1, + 0x04cc, 0x04da, 0x04df, 0x04e4, 0x04ed, 0x04fa, 0x04fe, 0x0506, + // Entry 80 - BF + 0x050d, 0x0519, 0x0520, 0x052e, 0x053b, 0x0545, 0x054d, 0x0556, + 0x055e, 0x0566, 0x056c, 0x0577, 0x057c, 0x0589, 0x0593, 0x059d, + 0x05a7, 0x05ac, 0x05b2, 0x05bb, 0x05c3, 0x05c8, 0x05da, 0x05e6, + 0x05f0, 0x05f7, 0x0600, 0x0606, 0x0612, 0x061f, 0x0627, 0x0632, + 0x0640, 0x0649, 0x0652, 0x0658, 0x0661, 0x066a, 0x0673, 0x067d, + 0x0681, 0x068a, 0x0697, 0x06a4, 0x06ac, 0x06b7, 0x06bc, 0x06c1, + 0x06c9, 0x06cf, 0x06d5, 0x06df, 0x06e3, 0x06ef, 0x06fd, 0x0704, + 0x070f, 0x0722, 0x072a, 0x072f, 0x073b, 0x0744, 0x074b, 0x0754, + // Entry C0 - FF + 0x075b, 0x0767, 0x0771, 0x0777, 0x0781, 0x078b, 0x0791, 0x07a0, + 0x07b3, 0x07c1, 0x07d7, 0x07ea, 0x07f8, 0x0812, 0x081e, 0x0824, + 0x082a, 0x0836, 0x0841, 0x0849, 0x0856, 0x085b, 0x0865, 0x0871, + 0x0878, 0x0885, 0x088b, 0x088f, 0x0894, 0x089a, 0x089a, 0x08a5, + 0x08b2, 0x08be, 0x08ca, 0x08cd, 0x08de, 0x08e9, 0x08f5, 0x0900, + 0x0906, 0x090a, 0x0910, 0x091a, 0x0925, 0x0929, 0x092d, 0x0934, + 0x0939, 0x0942, 0x0948, 0x094d, 0x0954, 0x0958, 0x0967, 0x0974, + 0x097e, 0x0982, 0x0989, 0x0990, 0x0999, 0x09a1, 0x09a9, 0x09af, + // Entry 100 - 13F + 0x09b7, 0x09bf, 0x09cc, 0x09d7, 0x09e5, 0x09ef, 0x09f4, 0x0a04, + 0x0a09, 0x0a0f, 0x0a1c, 0x0a21, 0x0a26, 0x0a34, 0x0a41, 0x0a46, + 0x0a59, 0x0a63, 0x0a70, 0x0a76, 0x0a7c, 0x0a80, 0x0a8b, 0x0a94, + 0x0a9a, 0x0aa2, 0x0ab1, 0x0ab9, 0x0abf, 0x0acd, 0x0adb, 0x0ae3, + 0x0aed, 0x0af8, 0x0afd, 0x0b0f, 0x0b1c, 0x0b2f, 0x0b3c, 0x0b48, + 0x0b51, 0x0b5b, 0x0b65, 0x0b73, 0x0b77, 0x0b84, 0x0b99, 0x0b9d, + 0x0baa, 0x0bb0, 0x0bc5, 0x0bd5, 0x0be1, 0x0bee, 0x0bf7, 0x0bfe, + 0x0c0b, 0x0c17, 0x0c29, 0x0c2e, 0x0c36, 0x0c43, 0x0c52, 0x0c5f, + // Entry 140 - 17F + 0x0c6f, 0x0c78, 0x0c85, 0x0c97, 0x0ca1, 0x0cad, 0x0cba, 0x0cca, + 0x0cce, 0x0cd2, 0x0cd8, 0x0ce7, 0x0cf2, 0x0cfc, 0x0d12, 0x0d18, + 0x0d1e, 0x0d25, 0x0d36, 0x0d47, 0x0d4f, 0x0d5d, 0x0d66, 0x0d74, + 0x0d77, 0x0d7c, 0x0d80, 0x0d8c, 0x0d93, 0x0d97, 0x0d9e, 0x0daa, + 0x0db1, 0x0db5, 0x0dbd, 0x0dca, 0x0dd1, 0x0ddd, 0x0de3, 0x0dec, + 0x0df0, 0x0df8, 0x0e08, 0x0e14, 0x0e1b, 0x0e27, 0x0e35, 0x0e4e, + 0x0e52, 0x0e5b, 0x0e64, 0x0e71, 0x0e79, 0x0e7e, 0x0e85, 0x0e8f, + 0x0e9e, 0x0ea4, 0x0ea9, 0x0eaf, 0x0ebc, 0x0ec4, 0x0ed6, 0x0edf, + // Entry 180 - 1BF + 0x0ee6, 0x0ef4, 0x0eff, 0x0f04, 0x0f11, 0x0f11, 0x0f1d, 0x0f27, + 0x0f36, 0x0f43, 0x0f4e, 0x0f5c, 0x0f64, 0x0f79, 0x0f88, 0x0f93, + 0x0f97, 0x0f9d, 0x0fa5, 0x0fb1, 0x0fc0, 0x0fce, 0x0fd2, 0x0fd8, + 0x0fe4, 0x0ff1, 0x0ffd, 0x1005, 0x1012, 0x1020, 0x1027, 0x1035, + 0x1048, 0x1055, 0x1064, 0x1072, 0x107f, 0x1088, 0x108f, 0x109c, + 0x10ac, 0x10b8, 0x10bf, 0x10c7, 0x10cc, 0x10dd, 0x10e8, 0x10fa, + 0x1108, 0x110c, 0x111a, 0x1120, 0x112c, 0x1138, 0x113f, 0x1145, + 0x114e, 0x1153, 0x115d, 0x1163, 0x1169, 0x117b, 0x117f, 0x1188, + // Entry 1C0 - 1FF + 0x1198, 0x11a0, 0x11a5, 0x11aa, 0x11b7, 0x11c0, 0x11d2, 0x11e1, + 0x11f3, 0x11fd, 0x1202, 0x120c, 0x1220, 0x122d, 0x1237, 0x124a, + 0x1255, 0x1262, 0x126a, 0x1276, 0x127f, 0x128e, 0x129d, 0x12b9, + 0x12c3, 0x12d8, 0x12e6, 0x12ee, 0x12f5, 0x12fa, 0x1300, 0x130b, + 0x1315, 0x131c, 0x1326, 0x1329, 0x1338, 0x1341, 0x134e, 0x1355, + 0x135a, 0x1361, 0x136b, 0x1372, 0x1377, 0x1383, 0x138d, 0x1399, + 0x1399, 0x139f, 0x13a3, 0x13a7, 0x13b1, 0x13bc, 0x13c4, 0x13cf, + 0x13d9, 0x13e6, 0x13f9, 0x13ff, 0x140f, 0x1416, 0x1421, 0x142e, + // Entry 200 - 23F + 0x143c, 0x144a, 0x1459, 0x1461, 0x146b, 0x1478, 0x147c, 0x148a, + 0x1498, 0x149c, 0x14a5, 0x14ae, 0x14b7, 0x14be, 0x14c8, 0x14cc, + 0x14d1, 0x14d5, 0x14e3, 0x14f0, 0x14f5, 0x1500, 0x150d, 0x1518, + 0x1523, 0x1532, 0x1539, 0x1540, 0x154e, 0x155c, 0x1562, 0x1568, + 0x1572, 0x1583, 0x158a, 0x1599, 0x15a5, 0x15ac, 0x15b5, 0x15ce, + 0x15d8, 0x15e2, 0x15f0, 0x15f4, 0x15ff, 0x1608, 0x1610, 0x161d, + 0x162b, 0x1632, 0x1636, 0x163b, 0x164b, 0x1659, 0x165e, 0x166b, + 0x166b, 0x1678, 0x1684, 0x1697, 0x169b, 0x16a6, 0x16af, 0x16b6, + // Entry 240 - 27F + 0x16bb, 0x16c4, 0x16d0, 0x16db, 0x16e9, 0x16f5, 0x16fb, 0x171b, + 0x1727, 0x173b, 0x173f, 0x1755, 0x1755, 0x176e, 0x1787, 0x179c, + 0x17af, 0x17c1, 0x17d7, 0x17f5, 0x180b, 0x1821, 0x1821, 0x1837, + 0x184d, 0x184d, 0x1856, 0x1871, 0x188a, 0x1894, 0x18a3, 0x18b0, + 0x18c8, 0x18e1, + }, + }, + { // lg + "Lu-akaaniLu-amharikiLuwarabuLubelarusiLubulugariyaLubengaliLuceekeLudaak" + + "iLugereeki/LuyonaaniLungerezaLusipanyaLuperusiLufalansaLuhawuzaLuhin" + + "duLuhangareLuyindonezyaLuyiboLuyitaleLujapaniLunnajjavaLukmeLukoreya" + + "LugandaLumalayiLubbamaLunepaliLuholandiLupunjabiLupolandiLupotugiizi" + + "LulomaniyaLulasaLunarwandaLusomaliyaLuswideniLutamiiruLuttaayiLutake" + + "LuyukurayineLu-uruduLuvyetinaamuLuyorubaLucayinaLuzzulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x0026, 0x0032, + 0x0032, 0x0032, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0049, 0x0049, 0x0049, 0x0049, 0x005c, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x007f, + 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x007f, 0x0087, + 0x0087, 0x008e, 0x008e, 0x008e, 0x008e, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00b1, 0x00b1, 0x00b9, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c8, 0x00c8, 0x00d0, 0x00d0, 0x00d0, 0x00d0, + 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d0, 0x00d7, 0x00d7, 0x00d7, + 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, + 0x00d7, 0x00d7, 0x00d7, 0x00df, 0x00df, 0x00e6, 0x00e6, 0x00e6, + 0x00ee, 0x00ee, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x0100, 0x0100, 0x0109, + // Entry 80 - BF + 0x0109, 0x0114, 0x0114, 0x0114, 0x0114, 0x011e, 0x0124, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, + 0x0141, 0x0141, 0x014a, 0x014a, 0x014a, 0x0152, 0x0152, 0x0152, + 0x0152, 0x0152, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0164, + 0x016c, 0x016c, 0x016c, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, + 0x0178, 0x0180, 0x0180, 0x0188, 0x018f, + }, + }, + { // lkt + "Abkhaz IyápiAvestan IyápiAfrikaans IyápiAmharic IyápiArab IyápiAssamese " + + "IyápiAvaric IyápiAzerbaijani IyápiBashkir IyápiBelarus IyápiBulgar I" + + "yápiBengali IyápiTibetan IyápiBosnia IyápiCatalan IyápiChechen Iyápi" + + "MaÅ¡tíŋÄa Oyáte IyápiCzech IyápiChuvash IyápiWales IyápiDane IyápiIyá" + + "Å¡iÄa IyápiGreece IyápiWašíÄuiyapiEsperanto IyápiSpayóla IyápiEstoni" + + "a IyápiBasque IyápiPersian IyápiFinnish IyápiFiji IyápiFaroese Iyápi" + + "WašíÄu IkÄéka IyápiIrish IyápiGalician IyápiGuarani IyápiGujarati Iy" + + "ápiHausa IyápiHebrew IyápiHindi IyápiCroatian IyápiHaiti IyápiHunga" + + "ry IyápiArmenia IyápiIndonesia IyápiIgbo IyápiIceland IyápiItalia Iy" + + "ápiKisúŋla IyápiJava IyápiGeoria IyápiKazakh IyápiKhmer IyápiKannad" + + "a IyápiKorea IyápiKashmir IyápiKurd IyápiKirghiz IyápiLatin IyápiLux" + + "embourg IyápiLao IyápiLithuania IyápiltLatvia IyápiMalagasy IyápiMao" + + "ri IyápiMacedonia IyápiMalayalam IyápiMarathi IyápiMalay IyápiMaltes" + + "e IyápiBurmese IyápiNepal IyápiDutch IyápiÅ ináglegleǧa IyápiÈžaȟátÈŸuÅ‹" + + "waÅ‹ IyápiOriya IyápiPunjabi IyápiPolish IyápiPashto IyápiPortuguese " + + "IyápiQuechua IyápiRomansh IyápiRomanian IyápiRussia IyápiSanskrit Iy" + + "ápiSindhi IyápiSinhala IyápiSlovak IyápiSlovenian IyápiSomali Iyápi" + + "Albanian IyápiSerbia IyápiSundanese IyápiSwedish IyápiSwahili IyápiT" + + "amil IyápiTelugu IyápiTajik IyápiThai IyápiTigrinya IyápiTurkmen Iyá" + + "piTongan IyápiTurkish IyápiTatar IyápiUyghur IyápiUkrain IyápiUrdu I" + + "yápiUzbek IyápiVietnamese IyápiWolof IyápiXhosa IyápiYoruba IyápiPÈŸe" + + "ÄhókaÅ‹ Háŋska IyápiZulu IyápiAdyghe IyápiItóǧata Altai IyápiMaÈŸpíya" + + " Tȟó IyápiBaluchi IyápiBamun IyápiBeja IyápiBuriat IyápiMari IyápiCh" + + "erokee IyápiÅ ahíyela IyápiCoptic IyápiCrimean Turkish IyápiDakȟótiya" + + "piDargwa IyápiDogri IyápiFilipino IyápiGbaya IyápiHawaiian IyápiIngu" + + "sh IyápiKara-Kalpak IyápiKabardian IyápiLahnda IyápiLakȟólʼiyapiMizo" + + " IyápiNamipuri IyápiComonian IyápiTukté iyápi tÈŸaŋíŋ Å¡niZaza IyápiÅ a" + + "gláša WašíÄuiyapiMílahaÅ‹ska WašíÄuiyapiWiyóȟpeyata Spayóla IyápiSpay" + + "ólaÈŸÄa IyápiFlemish IyápiPÈŸeÄhókaÅ‹ Háŋska Iyápi IkÄékaPÈŸeÄhókaÅ‹ Háŋ" + + "ska Iyápi ÈžÄe", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000d, 0x001b, 0x002b, 0x002b, 0x0039, 0x0039, + 0x0044, 0x0053, 0x0060, 0x0060, 0x0072, 0x0080, 0x008e, 0x009b, + 0x009b, 0x009b, 0x00a9, 0x00b7, 0x00b7, 0x00c4, 0x00d2, 0x00e0, + 0x00e0, 0x00e0, 0x00fa, 0x0106, 0x0106, 0x0114, 0x0120, 0x012b, + 0x013c, 0x013c, 0x013c, 0x013c, 0x0149, 0x0157, 0x0167, 0x0176, + 0x0184, 0x0191, 0x019f, 0x019f, 0x01ad, 0x01b8, 0x01c6, 0x01df, + 0x01df, 0x01eb, 0x01eb, 0x01fa, 0x0208, 0x0217, 0x0217, 0x0223, + 0x0230, 0x023c, 0x023c, 0x024b, 0x0257, 0x0265, 0x0273, 0x0273, + // Entry 40 - 7F + 0x0273, 0x0283, 0x0283, 0x028e, 0x028e, 0x028e, 0x028e, 0x029c, + 0x02a9, 0x02a9, 0x02b9, 0x02c4, 0x02d1, 0x02d1, 0x02d1, 0x02d1, + 0x02de, 0x02de, 0x02ea, 0x02f8, 0x0304, 0x0304, 0x0312, 0x031d, + 0x031d, 0x031d, 0x032b, 0x0337, 0x0348, 0x0348, 0x0348, 0x0348, + 0x0352, 0x0364, 0x0364, 0x0371, 0x0380, 0x0380, 0x038c, 0x039c, + 0x03ac, 0x03ac, 0x03ba, 0x03c6, 0x03d4, 0x03e2, 0x03e2, 0x03e2, + 0x03ee, 0x03ee, 0x03fa, 0x03fa, 0x03fa, 0x03fa, 0x0410, 0x0410, + 0x0410, 0x0428, 0x0428, 0x0434, 0x0434, 0x0442, 0x0442, 0x044f, + // Entry 80 - BF + 0x045c, 0x046d, 0x047b, 0x0489, 0x0489, 0x0498, 0x04a5, 0x04a5, + 0x04b4, 0x04b4, 0x04c1, 0x04c1, 0x04c1, 0x04cf, 0x04dc, 0x04ec, + 0x04ec, 0x04ec, 0x04f9, 0x0508, 0x0515, 0x0515, 0x0515, 0x0525, + 0x0533, 0x0541, 0x054d, 0x055a, 0x0566, 0x0571, 0x0580, 0x058e, + 0x058e, 0x059b, 0x05a9, 0x05a9, 0x05b5, 0x05b5, 0x05c2, 0x05cf, + 0x05da, 0x05e6, 0x05e6, 0x05f7, 0x05f7, 0x05f7, 0x0603, 0x060f, + 0x060f, 0x061c, 0x061c, 0x0639, 0x0644, 0x0644, 0x0644, 0x0644, + 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, + // Entry C0 - FF + 0x0651, 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x0667, 0x067d, + 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, 0x067d, + 0x067d, 0x068b, 0x068b, 0x068b, 0x068b, 0x0697, 0x0697, 0x0697, + 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, + 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a2, + 0x06a2, 0x06a2, 0x06a2, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, + 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, 0x06af, + 0x06af, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06c9, 0x06da, 0x06da, + // Entry 100 - 13F + 0x06e7, 0x06e7, 0x06fd, 0x06fd, 0x070a, 0x0717, 0x0717, 0x0717, + 0x0717, 0x0717, 0x0717, 0x0717, 0x0723, 0x0723, 0x0723, 0x0723, + 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, + 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0723, 0x0732, + 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, + 0x0732, 0x0732, 0x0732, 0x0732, 0x0732, 0x073e, 0x073e, 0x073e, + 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, + 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, 0x073e, + // Entry 140 - 17F + 0x073e, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, 0x074d, + 0x074d, 0x074d, 0x074d, 0x074d, 0x075a, 0x075a, 0x075a, 0x075a, + 0x075a, 0x075a, 0x075a, 0x075a, 0x075a, 0x076c, 0x076c, 0x076c, + 0x076c, 0x076c, 0x076c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, + 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, + 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, + 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, 0x077c, + 0x077c, 0x077c, 0x077c, 0x0789, 0x0789, 0x0789, 0x0789, 0x0789, + // Entry 180 - 1BF + 0x0789, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, 0x0798, + 0x0798, 0x0798, 0x0798, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, + 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, + 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a3, + 0x07a3, 0x07a3, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + // Entry 1C0 - 1FF + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + // Entry 200 - 23F + 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, 0x07b2, + 0x07b2, 0x07b2, 0x07b2, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, + 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, + 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, + 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, + 0x07c1, 0x07c1, 0x07c1, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, + 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, + 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, + // Entry 240 - 27F + 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, 0x07de, + 0x07de, 0x07de, 0x07e9, 0x07e9, 0x07e9, 0x07e9, 0x07e9, 0x07e9, + 0x07e9, 0x0802, 0x081d, 0x083a, 0x084e, 0x084e, 0x084e, 0x084e, + 0x084e, 0x084e, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, 0x085c, + 0x0882, 0x08a5, + }, + }, + { // ln + "akanliamarikilialabolibyelorisílibiligalilibengalilitshekÉ›lialemáligelek" + + "ilingÉ›lÉ›ÌsalisipanyelipelésanÉ›lifalansÉ›Ìhausalihindiliongililindonez" + + "iigbolitalianolizapÉ”lizavalikambodzalikoreyalingálalimalezilibilimál" + + "inepalÉ›lifalamálipendzabilipolonÉ›lipulutugÉ›Ìsiliromanilirisíkinyarwa" + + "ndalisomalilisuwedÉ›litamulilitayelitilikilikrÉ›niliurduliviyetinámiyo" + + "rubalisinwazulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000d, 0x000d, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0059, 0x0059, 0x0062, + 0x0062, 0x0062, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x007a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007f, + 0x007f, 0x0086, 0x0086, 0x0086, 0x0086, 0x008e, 0x008e, 0x008e, + // Entry 40 - 7F + 0x008e, 0x0097, 0x0097, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x00a4, 0x00a4, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00d3, 0x00d3, 0x00dc, 0x00dc, 0x00dc, + 0x00e5, 0x00e5, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, + 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00f8, 0x00f8, 0x0101, + // Entry 80 - BF + 0x0101, 0x0110, 0x0110, 0x0110, 0x0110, 0x0118, 0x011f, 0x012a, + 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, + 0x012a, 0x012a, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, + 0x013b, 0x013b, 0x0143, 0x0143, 0x0143, 0x0149, 0x0149, 0x0149, + 0x0149, 0x0149, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0159, + 0x015f, 0x015f, 0x015f, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x0172, 0x0172, 0x0179, 0x017d, + }, + }, + { // lo + loLangStr, + loLangIdx, + }, + { // lrc + "آذأربایئجانیآÙریکانسآکانأمھأریأرأڤیآسامیآذأربایئجانی ھارگەباشکیریبئلاروٙ" + + "سیبولغاریبامبارابأنگالیتأبأتیبئرئتونبوسنیاییکاتالانچئچئنیکوریسکانچو" + + "اشیڤئلزیدانمارکیآلمانیزوٙنگخائڤئیوٙنانیئینگیلیسیئسپئرانتوئسپانیاییئ" + + "ستونیاییباسکیÙارسیÙأنلاندیÙیجیÙاروٙسیÙآرانسئ ئیÙئریسی Ø£Ùتونئشینئیرل" + + "أندیگالیسیگوٙآرانیگوجأراتیمانکسھائوساعئبریھئنیکوروڤاتیھاییتیمأجاریأ" + + "رمأنیأندونئزیاییئیگبوسی چوان ییئیسلأندیئیتالیاییئینوکتیتوٙتجاپوٙنیج" + + "اڤئ ییگورجیکیکیوٙقأزاقکالالیسوٙتخئمئرکانادکورئ ییکأشمیریکوردی کورما" + + "نجیکورنیشقئرقیزیلاتینلوٙکزامبوٙرگیگاندالینگالالاولیتوڤانیاییلوٙبا Ú©" + + "اتانگالاتوڤیاییمالاگاشیمائوریمأقدوٙنیمالایامموغولیمأراتیمالاییمالتی" + + "بئرمئ یینئدئبئلئ شومالینئپالیھولأندینورڤئجی نینورسکنورڤئجی بوٙکمالئ" + + "وروموٙئوریاپأنجابیلأھئستانیپأشتوٙپورتئغالیکوچوٙارومانشراندیرومانیای" + + "یروٙسیکینیاروآنداسانسکئریتسئندیسامی شومالیسانگوسینھالائسلوڤاکیئسلوڤ" + + "ئنیاییشوناسوٙمالیآلبانیسئربیسوٙدانیسوٙئدیسأڤاحیلیتامیلتئلئگوتاجیکیت" + + "ایلأندیتیگرینیاتورکأمأنیتوٙنگانتورکیتاتارئویغوٙرئوکراینیئوردوٙئوزبأ" + + "کیڤییئتنامیڤولوÙخوٙسایوروباچینیزولوآقئمماپوٙچئآسوٙبیمابئنابألوٙچی Ø£" + + "قتوٙنئشینبودوچیگاچوروٙکیکوردی سوٙرانیتایتازارماسوربی ھاریدوٙالاجولا" + + " ÙوٙنییئمبوÙیلیپینیگاگائوزآلمانی سوٙئیسیگوٙسیھاڤاییسوربی ڤارونئگوٙمب" + + "اماچامئکابیلئکامباماکوٙندئکاباردینوکی یورا چینیکالئجینکومی پئرمیاکک" + + "وٙنکانیشامبالاباÙیالانگیلاکوٙتالۊری شومالیلوٙلوٙئیاماساییمئروموٙریس" + + "یماخوڤا میتومئتاٛموٙھاڤکموٙندانگمازأندأرانیناماآلمانی ھاریکئڤاسیوٙن" + + "ئکوٙنیوٙئرنیان کوٙلئکیچیرومبورئڤاسامبوٙروٙسانگوٙکوردی ھارگەسئناکیار" + + "ابورو سئنیتاچئلھیتسامی ھارگەلۉلئ سامیئیناری سامیئسکولت سامیتئسوتاسا" + + "ڤاقتامازیغ مینجاییزوٙن نادیارڤایڤوٙنجوٙڤارلپیریسوٙگاتامازیغ مأراکئش" + + "یبی نئشوٙعروی مدرنآذأری ھارگەآلمانی ئوتریشیآلمانی سوٙییسیئینگیلیسی " + + "ئوستارالیاییئینگیلیسی کاناداییئینگیلیسی بئریتانیاییئینگیلیسی ئمریکا" + + "ییئسپانیایی ئمریکا لاتینئسپانیایی ئوروٙپائسپانیایی مئکزیکÙآرانسئ ئی" + + " کاناداÙآرانسئ ئی سوٙییسآلمانی ھارگە جاÙئلاماندیپورتئغالی بئرئزیلپور" + + "تئغالی ئوروٙپاییرومانیایی مولداڤیسأڤاحیلی کونگوچینی سادە بیەچینی سو" + + "نأتی", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0018, 0x0018, 0x0028, 0x0030, 0x003c, 0x003c, + 0x0046, 0x0050, 0x0050, 0x0050, 0x0073, 0x0081, 0x0093, 0x00a1, + 0x00a1, 0x00af, 0x00bd, 0x00c9, 0x00d7, 0x00e7, 0x00f5, 0x0101, + 0x0101, 0x0111, 0x0111, 0x0111, 0x0111, 0x011b, 0x0125, 0x0135, + 0x0141, 0x0141, 0x014f, 0x0155, 0x0163, 0x0175, 0x0187, 0x0199, + 0x01ab, 0x01b5, 0x01bf, 0x01bf, 0x01cf, 0x01d7, 0x01e5, 0x01f8, + 0x0217, 0x0227, 0x0227, 0x0233, 0x0243, 0x0253, 0x025d, 0x0269, + 0x0273, 0x027b, 0x027b, 0x028b, 0x0297, 0x02a3, 0x02af, 0x02af, + // Entry 40 - 7F + 0x02af, 0x02c5, 0x02c5, 0x02cf, 0x02e1, 0x02e1, 0x02e1, 0x02f1, + 0x0303, 0x0319, 0x0327, 0x0334, 0x033e, 0x033e, 0x034a, 0x034a, + 0x0354, 0x0368, 0x0372, 0x037c, 0x0389, 0x0389, 0x0397, 0x03b2, + 0x03b2, 0x03be, 0x03cc, 0x03d6, 0x03f0, 0x03fa, 0x03fa, 0x0408, + 0x040e, 0x0424, 0x043d, 0x044f, 0x045f, 0x045f, 0x046b, 0x047b, + 0x0489, 0x0495, 0x04a1, 0x04ad, 0x04b7, 0x04c6, 0x04c6, 0x04e3, + 0x04ef, 0x04ef, 0x04fd, 0x051a, 0x0537, 0x0537, 0x0537, 0x0537, + 0x0537, 0x0537, 0x0545, 0x054f, 0x054f, 0x055d, 0x055d, 0x056f, + // Entry 80 - BF + 0x057b, 0x058d, 0x0599, 0x05a5, 0x05af, 0x05c1, 0x05cb, 0x05e1, + 0x05f3, 0x05f3, 0x05fd, 0x0612, 0x061c, 0x062a, 0x063a, 0x0650, + 0x0650, 0x0658, 0x0666, 0x0672, 0x067c, 0x067c, 0x067c, 0x068a, + 0x0696, 0x06a6, 0x06b0, 0x06bc, 0x06c8, 0x06d8, 0x06e8, 0x06fa, + 0x06fa, 0x0708, 0x0712, 0x0712, 0x071c, 0x071c, 0x072a, 0x073a, + 0x0746, 0x0754, 0x0754, 0x0766, 0x0766, 0x0766, 0x0770, 0x077a, + 0x077a, 0x0786, 0x0786, 0x078e, 0x0796, 0x0796, 0x0796, 0x0796, + 0x0796, 0x0796, 0x0796, 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, + // Entry C0 - FF + 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, 0x07ac, 0x07ac, 0x07ac, + 0x07ac, 0x07ac, 0x07ac, 0x07ac, 0x07b4, 0x07b4, 0x07b4, 0x07b4, + 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07b4, 0x07b4, + 0x07b4, 0x07bc, 0x07bc, 0x07c4, 0x07c4, 0x07c4, 0x07e7, 0x07e7, + 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, + 0x07e7, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, + 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07f7, 0x07f7, 0x07f7, + 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x0805, 0x0805, 0x081e, + // Entry 100 - 13F + 0x081e, 0x081e, 0x081e, 0x081e, 0x081e, 0x081e, 0x0828, 0x0828, + 0x0828, 0x0828, 0x0828, 0x0832, 0x0832, 0x0845, 0x0845, 0x0851, + 0x0851, 0x0866, 0x0866, 0x0866, 0x086e, 0x086e, 0x086e, 0x086e, + 0x086e, 0x086e, 0x086e, 0x086e, 0x086e, 0x086e, 0x086e, 0x087e, + 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, + 0x087e, 0x087e, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, + 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, 0x088c, + 0x088c, 0x088c, 0x08a7, 0x08a7, 0x08a7, 0x08b1, 0x08b1, 0x08b1, + // Entry 140 - 17F + 0x08b1, 0x08bd, 0x08bd, 0x08bd, 0x08bd, 0x08bd, 0x08d0, 0x08d0, + 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, + 0x08e0, 0x08ec, 0x08ec, 0x08ec, 0x08ec, 0x08ec, 0x08f8, 0x08f8, + 0x08f8, 0x0902, 0x0902, 0x0902, 0x0902, 0x0902, 0x0912, 0x0924, + 0x0924, 0x0924, 0x0924, 0x0924, 0x0924, 0x093a, 0x093a, 0x093a, + 0x093a, 0x0948, 0x0948, 0x095f, 0x096f, 0x096f, 0x096f, 0x096f, + 0x096f, 0x096f, 0x096f, 0x096f, 0x097d, 0x0987, 0x0987, 0x0987, + 0x0987, 0x0987, 0x0991, 0x0991, 0x0991, 0x0991, 0x0991, 0x0991, + // Entry 180 - 1BF + 0x0991, 0x099f, 0x099f, 0x099f, 0x099f, 0x09b4, 0x09b4, 0x09b4, + 0x09b4, 0x09b4, 0x09ba, 0x09ba, 0x09c6, 0x09c6, 0x09c6, 0x09c6, + 0x09c6, 0x09c6, 0x09c6, 0x09c6, 0x09c6, 0x09d2, 0x09d2, 0x09d2, + 0x09d2, 0x09d2, 0x09da, 0x09e8, 0x09e8, 0x09fd, 0x0a07, 0x0a07, + 0x0a07, 0x0a07, 0x0a07, 0x0a15, 0x0a15, 0x0a15, 0x0a25, 0x0a25, + 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a25, 0x0a3b, 0x0a3b, + 0x0a3b, 0x0a43, 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a58, 0x0a68, + 0x0a68, 0x0a68, 0x0a68, 0x0a68, 0x0a72, 0x0a72, 0x0a7e, 0x0a7e, + // Entry 1C0 - 1FF + 0x0a7e, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, + 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, + 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a91, 0x0a99, 0x0a99, + 0x0a99, 0x0a99, 0x0a99, 0x0a99, 0x0a99, 0x0aa3, 0x0aa3, 0x0aa3, + 0x0aa3, 0x0aa3, 0x0aa3, 0x0aab, 0x0aab, 0x0aab, 0x0aab, 0x0abd, + 0x0abd, 0x0abd, 0x0abd, 0x0abd, 0x0ac9, 0x0ac9, 0x0ac9, 0x0ac9, + 0x0ade, 0x0ade, 0x0ae6, 0x0ae6, 0x0ae6, 0x0b01, 0x0b01, 0x0b01, + 0x0b11, 0x0b11, 0x0b11, 0x0b11, 0x0b11, 0x0b11, 0x0b24, 0x0b35, + // Entry 200 - 23F + 0x0b4a, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, + 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, 0x0b5f, + 0x0b5f, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, + 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, + 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b67, 0x0b75, 0x0b75, 0x0b92, + 0x0b92, 0x0b92, 0x0b92, 0x0ba7, 0x0bad, 0x0bad, 0x0bad, 0x0bad, + 0x0bad, 0x0bad, 0x0bad, 0x0bbb, 0x0bbb, 0x0bbb, 0x0bbb, 0x0bbb, + 0x0bcb, 0x0bcb, 0x0bcb, 0x0bcb, 0x0bd5, 0x0bd5, 0x0bd5, 0x0bd5, + // Entry 240 - 27F + 0x0bd5, 0x0bd5, 0x0bd5, 0x0bd5, 0x0bd5, 0x0bd5, 0x0bd5, 0x0bf4, + 0x0bf4, 0x0c03, 0x0c03, 0x0c14, 0x0c29, 0x0c44, 0x0c5f, 0x0c8a, + 0x0cad, 0x0cd6, 0x0cf9, 0x0d23, 0x0d44, 0x0d63, 0x0d63, 0x0d83, + 0x0da3, 0x0dbf, 0x0dd1, 0x0df2, 0x0e17, 0x0e38, 0x0e38, 0x0e53, + 0x0e6b, 0x0e80, + }, + }, + { // lt + ltLangStr, + ltLangIdx, + }, + { // lu + "LiakanLiamharikiArabiBelarusiBulegariBengaliTshekiLizelumaniGilikiLingel" + + "esaLihispaniaMpepajemiMfwàlànsaHausaHindiHongiliLindoneziaIgboLitali" + + "LiyapaniJavaLikoreyaTshilubaLimalezianepaliolandiLipunjabiMpoloniMpu" + + "tulugÉ›siLiromaniLirisikinyarwandaLisomaliLisuwidiMtamuiliNtailandiNt" + + "ulukiNkraniUrduLiviyetinamuNyorubashinÉ›Nzulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0010, 0x0010, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, 0x0025, + 0x0025, 0x0025, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x003c, 0x003c, 0x003c, 0x003c, 0x0042, 0x004b, 0x004b, 0x0055, + 0x0055, 0x0055, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x006e, + 0x006e, 0x0073, 0x0073, 0x0073, 0x0073, 0x007a, 0x007a, 0x007a, + // Entry 40 - 7F + 0x007a, 0x0084, 0x0084, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, + 0x008e, 0x008e, 0x0096, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x00a2, 0x00a2, 0x00a2, 0x00a2, + 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, + 0x00a2, 0x00a2, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00aa, 0x00aa, 0x00aa, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, + 0x00b9, 0x00b9, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, + // Entry 80 - BF + 0x00cf, 0x00db, 0x00db, 0x00db, 0x00db, 0x00e3, 0x00e9, 0x00f4, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, + 0x00f4, 0x00f4, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x0104, 0x0104, 0x010c, 0x010c, 0x010c, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x0122, + 0x0126, 0x0126, 0x0126, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0139, 0x0139, 0x013f, 0x0144, + }, + }, + { // luo + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluDholuo", + []uint16{ // 395 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 140 - 17F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 180 - 1BF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x016f, + }, + }, + { // luy + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiLusunguKihispaniaKiajemiKifaransaKihausaLuhindiKihungariKiindones" + + "iaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaKin" + + "epaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKiso" + + "maliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyoru" + + "baKichinaKizuluLuluhia", + []uint16{ // 397 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0052, 0x0052, 0x005c, + 0x005c, 0x005c, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0073, + 0x0073, 0x007a, 0x007a, 0x007a, 0x007a, 0x0083, 0x0083, 0x0083, + // Entry 40 - 7F + 0x0083, 0x008e, 0x008e, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, + 0x009e, 0x009e, 0x00a6, 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x00ac, + 0x00ac, 0x00ac, 0x00b6, 0x00b6, 0x00bd, 0x00bd, 0x00bd, 0x00bd, + 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, + 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, 0x00bd, + 0x00bd, 0x00bd, 0x00bd, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00cd, + 0x00d5, 0x00d5, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00e7, 0x00e7, 0x00f0, + // Entry 80 - BF + 0x00f0, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00ff, 0x0105, 0x0110, + 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, + 0x0110, 0x0110, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, + 0x011f, 0x011f, 0x0126, 0x0126, 0x0126, 0x0130, 0x0130, 0x0130, + 0x0130, 0x0130, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0141, + 0x0147, 0x0147, 0x0147, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, + 0x0152, 0x015a, 0x015a, 0x0161, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + // Entry C0 - FF + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + // Entry 100 - 13F + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + // Entry 140 - 17F + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + // Entry 180 - 1BF + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x016e, + }, + }, + { // lv + lvLangStr, + lvLangIdx, + }, + { // mas + "nkʉtʉÌk É”Ìɔ̄ lAkannkʉtʉÌk É”Ìɔ̄ lAmharinkʉtʉÌk É”Ìɔ̄ lmarabunkʉtʉÌk É”Ìɔ̄ l" + + "BelarusinkʉtʉÌk É”Ìɔ̄ lBulgarialnkʉtʉÌk É”Ìɔ̄ lBengalinkʉtʉÌk É”Ìɔ̄ lch" + + "ekinkʉtʉÌk É”Ìɔ̄ ljerumaninkʉtʉÌk É”Ìɔ̄ lgirikinkʉtʉÌk É”Ìɔ̄ nkɨÌresank" + + "ʉtʉÌk É”Ìɔ̄ lspaniankʉtʉÌk É”Ìɔ̄ lpersiankʉtʉÌk É”Ìɔ̄ faransankʉtʉÌk É”" + + "Ìɔ̄ hausankʉtʉÌk É”Ìɔ̄ lmoindinkʉtʉÌk É”Ìɔ̄ lhungarinkʉtʉÌk É”Ìɔ̄ Indo" + + "nesiankʉtʉÌk É”Ìɔ̄ IgbonkʉtʉÌk É”Ìɔ̄ ltaliannkʉtʉÌk É”Ìɔ̄ japaninkʉtʉÌk" + + " É”Ìɔ̄ ljanankʉtʉÌk É”Ìɔ̄ lkambodiankʉtʉÌk É”Ìɔ̄ lkoreankʉtʉÌk É”Ìɔ̄ mal" + + "aynkʉtʉÌk É”Ìɔ̄ lBurmankʉtʉÌk É”Ìɔ̄ lnepalinkʉtʉÌk É”Ìɔ̄ lduchinkʉtʉÌk " + + "É”Ìɔ̄ lpunjabinkʉtʉÌk É”Ìɔ̄ lpolandnkʉtʉÌk É”Ìɔ̄ lportuguesenkʉtʉÌk É”Ì" + + "ɔ̄ lromaniankʉtʉÌk É”Ìɔ̄ lrusinkʉtʉÌk É”Ìɔ̄ lruwandankʉtʉÌk É”Ìɔ̄ lchu" + + "marinkʉtʉÌk É”Ìɔ̄ lswidinkʉtʉÌk É”Ìɔ̄ ltamilnkʉtʉÌk É”Ìɔ̄ ltainkʉtʉÌk É”" + + "Ìɔ̄ lturukinkʉtʉÌk É”Ìɔ̄ lkraniankʉtʉÌk É”Ìɔ̄ lurdunkʉtʉÌk É”Ìɔ̄ lviet" + + "inamunkʉtʉÌk É”Ìɔ̄ lyorubankʉtʉÌk É”Ìɔ̄ lchinankʉtʉÌk É”Ìɔ̄ lzuluMaa", + []uint16{ // 406 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0019, 0x0034, 0x0034, + 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x006c, 0x0089, + 0x0089, 0x0089, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, + 0x00a6, 0x00a6, 0x00a6, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00f8, 0x0116, 0x0116, 0x0131, + 0x0131, 0x0131, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0180, + 0x0180, 0x019b, 0x019b, 0x019b, 0x019b, 0x01b7, 0x01b7, 0x01b7, + // Entry 40 - 7F + 0x01b7, 0x01d4, 0x01d4, 0x01ec, 0x01ec, 0x01ec, 0x01ec, 0x01ec, + 0x0207, 0x0207, 0x0221, 0x023a, 0x023a, 0x023a, 0x023a, 0x023a, + 0x023a, 0x023a, 0x0257, 0x0257, 0x0271, 0x0271, 0x0271, 0x0271, + 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, + 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, 0x0271, + 0x0271, 0x0271, 0x0271, 0x028a, 0x028a, 0x02a4, 0x02a4, 0x02a4, + 0x02bf, 0x02bf, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, + 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02f5, 0x02f5, 0x0310, + // Entry 80 - BF + 0x0310, 0x032f, 0x032f, 0x032f, 0x032f, 0x034b, 0x0364, 0x0380, + 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, 0x0380, + 0x0380, 0x0380, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, 0x039c, + 0x03b6, 0x03b6, 0x03d0, 0x03d0, 0x03d0, 0x03e8, 0x03e8, 0x03e8, + 0x03e8, 0x03e8, 0x0403, 0x0403, 0x0403, 0x0403, 0x0403, 0x041e, + 0x0437, 0x0437, 0x0437, 0x0455, 0x0455, 0x0455, 0x0455, 0x0455, + 0x0455, 0x0470, 0x0470, 0x048a, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + // Entry C0 - FF + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + // Entry 100 - 13F + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + // Entry 140 - 17F + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + // Entry 180 - 1BF + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04a6, + }, + }, + { // mer + "KÄ©akaniKÄ©amarÄ©kiKÄ©arabuKÄ©belarusiKÄ©bulugÄ©riaKÄ©bangiraKÄ©chekiKÄ©njamanÄ©KÄ©n" + + "girikiKÄ©ngerethaKÄ©spÄ©niKÄ©pasiaKÄ©furansiKÄ©hausaKÄ©hÄ©ndiKÄ©hangarÄ©KÄ©indo" + + "nesiaKÄ©igboKÄ©italÄ©KÄ©japaniKÄ©javaKÄ©kambodiaKÄ©koreaKÄ©malesiaKÄ©burmaKÄ©n" + + "epaliKÄ©holandiKÄ©punjabuKÄ©polandiKÄ©pochogoKÄ©romaniaKÄ©rashiaKÄ©rwandaKÄ©" + + "somaliKÄ©swideniKÄ©tamiluKÄ©thailandiKÄ©takÄ©KÄ©ukirÄ©niKÄ©urduKÄ©vietinamuKÄ©" + + "yorubaKÄ©chinaKÄ©zuluKÄ©mÄ©rÅ©", + []uint16{ // 411 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0013, 0x0013, + 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x001b, 0x0026, 0x0033, + 0x0033, 0x0033, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, + 0x003d, 0x003d, 0x003d, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0050, 0x0050, 0x0050, 0x0050, 0x005a, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0088, + 0x0088, 0x0091, 0x0091, 0x0091, 0x0091, 0x009c, 0x009c, 0x009c, + // Entry 40 - 7F + 0x009c, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, + 0x00b8, 0x00b8, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, + 0x00c8, 0x00c8, 0x00d3, 0x00d3, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00e5, 0x00e5, 0x00ed, 0x00ed, 0x00ed, + 0x00f6, 0x00f6, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x010a, 0x010a, 0x0114, + // Entry 80 - BF + 0x0114, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013a, + 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, + 0x013a, 0x013a, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, + 0x014d, 0x014d, 0x0156, 0x0156, 0x0156, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x0175, + 0x017c, 0x017c, 0x017c, 0x0188, 0x0188, 0x0188, 0x0188, 0x0188, + 0x0188, 0x0191, 0x0191, 0x0199, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + // Entry C0 - FF + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + // Entry 100 - 13F + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + // Entry 140 - 17F + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + // Entry 180 - 1BF + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x01a9, + }, + }, + { // mfe + "akanamarikarabbielorisbilgarbengalitchekalmangrekangleespagnolpersanfran" + + "sehaoussahindihongrwaindonezienigboitalienzaponezavanekhmer, santral" + + "koreenmalebirmannepaleolandepenjabipoloneportigerouminrisrwandasomal" + + "iswedwatamoulthaïtirkikrenienourdouvietnamienyorubasinwa, mandarinzo" + + "uloukreol morisien", + []uint16{ // 412 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x0016, 0x001c, + 0x001c, 0x001c, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x002d, 0x002d, 0x002d, 0x002d, 0x0031, 0x0036, 0x0036, 0x003e, + 0x003e, 0x003e, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004a, + 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x0051, + 0x0051, 0x0056, 0x0056, 0x0056, 0x0056, 0x005d, 0x005d, 0x005d, + // Entry 40 - 7F + 0x005d, 0x0067, 0x0067, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x0072, 0x0072, 0x0078, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, + 0x007e, 0x007e, 0x008c, 0x008c, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0096, 0x0096, 0x009c, 0x009c, 0x009c, + 0x00a2, 0x00a2, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, + 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00b5, + // Entry 80 - BF + 0x00b5, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c2, 0x00c5, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, + 0x00d7, 0x00d7, 0x00dd, 0x00dd, 0x00dd, 0x00e2, 0x00e2, 0x00e2, + 0x00e2, 0x00e2, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00ee, + 0x00f4, 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x00fe, + 0x00fe, 0x0104, 0x0104, 0x0113, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + // Entry C0 - FF + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + // Entry 100 - 13F + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + // Entry 140 - 17F + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + // Entry 180 - 1BF + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0127, + }, + }, + { // mg + "AkanAmharikaAraboBielorosyBiolgaraBengaliTsekyAlemaninaGrikaAnglisyEspan" + + "iolaPersaFrantsayhaoussahindihongroàIndonezianinaigboItalianinaJapon" + + "eyJavaneykhmerKoreaninaMalagasyMalayBirmanaNepaleHolandeyPenjabiPolo" + + "neyPortiogeyRomanianinaRosianinaRoandeSomalianinaSoisaTamoilaTaioane" + + "yTiorkaOkrainianinaOrdòVietnamianinaYôrobàSinoa, MandarinZolò", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000c, 0x000c, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001a, 0x0022, + 0x0022, 0x0022, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x0037, 0x0037, 0x0037, 0x0037, 0x003c, 0x0043, 0x0043, 0x004c, + 0x004c, 0x004c, 0x0051, 0x0051, 0x0051, 0x0051, 0x0051, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0060, + 0x0060, 0x0065, 0x0065, 0x0065, 0x0065, 0x006d, 0x006d, 0x006d, + // Entry 40 - 7F + 0x006d, 0x007a, 0x007a, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, + 0x0088, 0x0088, 0x008f, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x0096, 0x0096, 0x009b, 0x009b, 0x00a4, 0x00a4, 0x00a4, 0x00a4, + 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, + 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00ac, 0x00ac, 0x00ac, 0x00ac, + 0x00ac, 0x00ac, 0x00ac, 0x00b1, 0x00b1, 0x00b8, 0x00b8, 0x00b8, + 0x00be, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00d4, + // Entry 80 - BF + 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00f1, 0x00f7, + 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + 0x0107, 0x0107, 0x010e, 0x010e, 0x010e, 0x0116, 0x0116, 0x0116, + 0x0116, 0x0116, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x0128, + 0x012d, 0x012d, 0x012d, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, + 0x013a, 0x0142, 0x0142, 0x0151, 0x0156, + }, + }, + { // mgh + "IkanImhariIarabuIbelausiIbulgariaIbanglaIchekiIjerimaniIgirikiIngilishiI" + + "hispaniolaIajemiIfaransaIhausaIhindiIhungariIgboItalianoIjapaniIjava" + + "IkambodiaIkoreaImalesiaIburmaInepaliIholanziIpunjabiIpolandiNrenoIro" + + "maniaIrisiInyarandaIsomaliIswidiItamilItailandiIturukiIukranIhurduIv" + + "yetinamuIyorubaIchinaIzuluMakua", + []uint16{ // 414 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000a, 0x000a, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0018, 0x0021, + 0x0021, 0x0021, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x0037, 0x0037, 0x0037, 0x0037, 0x003e, 0x0047, 0x0047, 0x0052, + 0x0052, 0x0052, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0060, + 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0066, + 0x0066, 0x006c, 0x006c, 0x006c, 0x006c, 0x0074, 0x0074, 0x0074, + // Entry 40 - 7F + 0x0074, 0x0074, 0x0074, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0080, 0x0080, 0x0087, 0x008c, 0x008c, 0x008c, 0x008c, 0x008c, + 0x008c, 0x008c, 0x0095, 0x0095, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x00a3, 0x00a3, 0x00a9, 0x00a9, 0x00a9, + 0x00b0, 0x00b0, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, + 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00c0, 0x00c0, 0x00c8, + // Entry 80 - BF + 0x00c8, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d5, 0x00da, 0x00e3, + 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, + 0x00e3, 0x00e3, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00f0, 0x00f0, 0x00f6, 0x00f6, 0x00f6, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x010c, + 0x0112, 0x0112, 0x0112, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x0123, 0x0123, 0x0129, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + // Entry C0 - FF + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + // Entry 100 - 13F + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + // Entry 140 - 17F + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + // Entry 180 - 1BF + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x0133, + }, + }, + { // mgo + "metaʼngam tisɔʼ", + []uint16{ // 556 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 140 - 17F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 180 - 1BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + // Entry 1C0 - 1FF + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + // Entry 200 - 23F + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0012, + }, + }, + { // mk + mkLangStr, + mkLangIdx, + }, + { // ml + mlLangStr, + mlLangIdx, + }, + { // mn + mnLangStr, + mnLangIdx, + }, + { // mr + mrLangStr, + mrLangIdx, + }, + { // ms + msLangStr, + msLangIdx, + }, + { // mt + "AfarAbkażjanAvestanAfrikansAkanAmħarikuAragoneseGħarbiAssameseAvarikAjma" + + "raAżerbajÄ¡aniBaxkirBelarussuBulgaruBislamaBambaraBengaliTibetjanBren" + + "tonBosnijanKatalanÄŠeÄ‹enÄŠamorroKorsikuKrijÄŠekSlaviku tal-KnisjaÄŠuvaxW" + + "elxDaniżĠermaniżDiveħiDżongkaEweGriegIngliżEsperantoSpanjolEstonjanB" + + "askPersjanFulaħFinlandiżFiÄ¡iFawriżFranÄ‹iżFriżjanIrlandiżGalliku SkoÄ‹" + + "Ä‹iżGallegjanGwaraniGuÄ¡aratiManksĦawsaEbrajkĦindiĦiri MotuKroatHaiti" + + "anUngeriżArmenjanĦereroInterlinguaIndoneżjanInterlingueIgboSichuan Y" + + "iInupjakIdoIżlandiżTaljanInukitutÄ appuniżĠavaniżĠorÄ¡janKongoKikujuKu" + + "anyamaKażakKalallisutKmerKannadaKorejanKanuriKaxmiriKurdiżKomiKornik" + + "uKirgiżLatinLetżburgiżGandaLimburgishLingaljanLaoLitwanjanLuba-Katan" + + "gaLatvjanMalagażiMarxallMaoriMaÄ‹edonjanMalajalamMongoljanMaratiMalaj" + + "anMaltiBurmiżNawuruNdebele, ta’ FuqNepaliżNdongaOlandiżNinorsk Norve" + + "Ä¡iżBokmahal NorveÄ¡iżNdebele, t’IsfelNavaħoÄŠiÄ‹ewa; NjanÄ¡aOÄ‹Ä‹itanOÄ¡ib" + + "waOromo (Afan)OrijaOssettikuPunÄ¡abiPaliPollakkPaxtunPortugiżKeÄ‹waRet" + + "o-RomanzRundiRumenRussuKinjarwandaSanskritSardinjanSindiSami ta’ Fuq" + + "SangoSinħaliżSlovakkSlovenSamojanXonaSomaliAlbaniżSerbSwatiSoto, t’I" + + "sfelSundaniżSvediżSwaħiliTamilTeluguTaÄ¡ikTajlandiżTigrinjaTurkmeniZw" + + "anaTonganTorkTsongaTatarTaħitjanWigurUkranjanUrduUżbekVendaVjetnamiż" + + "VolapukWalloonWolofĦożaJiddixJorubaÅ»wangÄŠiniżŻuluAÄ‹iniżAkoliAdangmeA" + + "dygheAfriħiliAjnuAkkadjenAleutIngliż, AntikAngikaAramajkArawkanjanAr" + + "apaħoArawakAsturianAwadħiBaluÄ‹iBaliniżBasaBejaBembaBojpuriBikolBiniS" + + "iksikaBrajBurjatBuginiżBlinKaddoKaribAtsamSibwanoÄŠibÄ‹aÄŠagatajÄŠukeseM" + + "ariÄ argon taÄ‹-ÄŠinukÄŠostawÄŠipewjanÄŠerokijXajennKoptikuCrimean Turkish" + + "; Crimean TatarKashubianDakotaDargwaDelawerjanSlavDogribDinkaDogriLo" + + "wer SorbianDwalaOlandiż, MedjevaliDjulaEfikEÄ¡izzjan (Antik)EkajukEla" + + "mitIngliż, MedjevaliEwondoFangFilippinoFonFranÄ‹iż, MedjevaliFranÄ‹iż," + + " AntikFrijuljanGaGajoGbajaGeezGilbertjanÄ ermaniku, Medjevali PulitÄ e" + + "rmaniku, Antik PulitGondiGorontaloGotikuÄ erboGrieg, AntikGwiÄ‹inĦajda" + + "ĦawajjanHiligaynonĦittitĦmongUpper SorbianĦupaIbanIlokoIngushLojban" + + "Lhudi-PersjanLhudi-GħarbiKara-KalpakKabuljanKaÄ‹inKambaKawiKabardianK" + + "asiKotaniżKimbunduKonkaniKosrejanKpelleKarachay-BalkarKuruskKumikuKu" + + "tenajLadinoLandaLambaLeżgjanMongoLożiLuba-LuluwaLuwisinużLundaLuwaLu" + + "xajMaduriżMagaħiMajtiliMakasarMandingwanMasajMokshaMandarMendeIrland" + + "iż, MedjevaliMikmekMinangkabawManÄ‹urjanManipuriMoħakMossiLingwi Dive" + + "rsiKriekMirandiżMarwariErzyaNeapolitanÄ ermaniż Komuni; Sassonu Komun" + + "iNewariNijasNijuwejanNogaiSkandinav, AntikSoto, ta’ FuqClassical New" + + "ariNjamweżiNyankoleNjoroNżimaOsaÄ¡janTork (Imperu Ottoman)Pangasinjan" + + "PaħlaviPampamgaPapjamentoPalawjanPersjan AntikFeniÄ‹juPonpejanProvenz" + + "al, AntikRaÄ¡astaniRapanwiRarotonganiÅ»ingaruAromanijanSandaweJakutSam" + + "ritanSaskaSantaliSkoÄ‹Ä‹iżSelkupIrlandiż, AntikXanSidamoSouthern SamiL" + + "ule SamiInari SamiSkolt SamiSoninkeSogdienSererSukumaSusuSumerjanSir" + + "janTimneTerenoTetumTigreTivTokelauKlingonTlingitTamaxekTonga (Njasa)" + + "Tok PisinZimxjanTumbukaTuvaluTuvinjanUdmurtUgaritikuUmbunduGħerqVaiV" + + "otikWalamoWarajWaxoKalmykJaoJapeseÅ»apotekÅ»enagaÅ»uniGħarbi Standard M" + + "odernIngliż AwstraljanIngliż BrittanikuIngliż AmerikanFranÄ‹iż Kanadi" + + "żFranÄ‹iż Å»vizzeruMoldavjanSerbo-KroatÄŠiniż Simplifikat", + []uint16{ // 609 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0014, 0x001c, 0x0020, 0x0029, 0x0032, + 0x0039, 0x0041, 0x0047, 0x004d, 0x005a, 0x0060, 0x0069, 0x0070, + 0x0077, 0x007e, 0x0085, 0x008d, 0x0094, 0x009c, 0x00a3, 0x00aa, + 0x00b2, 0x00b9, 0x00bd, 0x00c1, 0x00d3, 0x00d9, 0x00dd, 0x00e3, + 0x00ed, 0x00f4, 0x00fc, 0x00ff, 0x0104, 0x010b, 0x0114, 0x011b, + 0x0123, 0x0127, 0x012e, 0x0134, 0x013e, 0x0143, 0x014a, 0x0153, + 0x015b, 0x0164, 0x0176, 0x017f, 0x0186, 0x018f, 0x0194, 0x019a, + 0x01a0, 0x01a6, 0x01b0, 0x01b5, 0x01bc, 0x01c4, 0x01cc, 0x01d3, + // Entry 40 - 7F + 0x01de, 0x01e9, 0x01f4, 0x01f8, 0x0202, 0x0209, 0x020c, 0x0216, + 0x021c, 0x0224, 0x022e, 0x0237, 0x0240, 0x0245, 0x024b, 0x0253, + 0x0259, 0x0263, 0x0267, 0x026e, 0x0275, 0x027b, 0x0282, 0x0289, + 0x028d, 0x0294, 0x029b, 0x02a0, 0x02ac, 0x02b1, 0x02bb, 0x02c4, + 0x02c7, 0x02d0, 0x02dc, 0x02e3, 0x02ec, 0x02f3, 0x02f8, 0x0303, + 0x030c, 0x0315, 0x031b, 0x0322, 0x0327, 0x032e, 0x0334, 0x0346, + 0x034e, 0x0354, 0x035c, 0x036e, 0x0381, 0x0393, 0x039a, 0x03ab, + 0x03b4, 0x03bb, 0x03c7, 0x03cc, 0x03d5, 0x03dd, 0x03e1, 0x03e8, + // Entry 80 - BF + 0x03ee, 0x03f7, 0x03fd, 0x0408, 0x040d, 0x0412, 0x0417, 0x0422, + 0x042a, 0x0433, 0x0438, 0x0446, 0x044b, 0x0455, 0x045c, 0x0462, + 0x0469, 0x046d, 0x0473, 0x047b, 0x047f, 0x0484, 0x0493, 0x049c, + 0x04a3, 0x04ab, 0x04b0, 0x04b6, 0x04bc, 0x04c6, 0x04ce, 0x04d6, + 0x04db, 0x04e1, 0x04e5, 0x04eb, 0x04f0, 0x04f9, 0x04fe, 0x0506, + 0x050a, 0x0510, 0x0515, 0x051f, 0x0526, 0x052d, 0x0532, 0x0538, + 0x053e, 0x0544, 0x054a, 0x0551, 0x0556, 0x055e, 0x0563, 0x056a, + 0x0570, 0x0570, 0x0579, 0x0579, 0x057d, 0x0585, 0x0585, 0x058a, + // Entry C0 - FF + 0x058a, 0x058a, 0x0598, 0x059e, 0x05a5, 0x05af, 0x05af, 0x05b7, + 0x05b7, 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05bd, 0x05c5, 0x05c5, + 0x05cc, 0x05d3, 0x05db, 0x05db, 0x05df, 0x05df, 0x05df, 0x05df, + 0x05e3, 0x05e8, 0x05e8, 0x05e8, 0x05e8, 0x05e8, 0x05e8, 0x05ef, + 0x05f4, 0x05f8, 0x05f8, 0x05f8, 0x05ff, 0x05ff, 0x05ff, 0x0603, + 0x0603, 0x0603, 0x0603, 0x0609, 0x0611, 0x0611, 0x0615, 0x0615, + 0x061a, 0x061f, 0x061f, 0x0624, 0x062b, 0x062b, 0x0632, 0x063a, + 0x0641, 0x0645, 0x0658, 0x065f, 0x0668, 0x0670, 0x0676, 0x0676, + // Entry 100 - 13F + 0x067d, 0x067d, 0x069b, 0x06a4, 0x06aa, 0x06b0, 0x06b0, 0x06ba, + 0x06be, 0x06c4, 0x06c9, 0x06c9, 0x06ce, 0x06db, 0x06db, 0x06e0, + 0x06f3, 0x06f3, 0x06f8, 0x06f8, 0x06f8, 0x06fc, 0x06fc, 0x070d, + 0x0713, 0x0719, 0x072b, 0x072b, 0x0731, 0x0731, 0x0735, 0x073e, + 0x073e, 0x0741, 0x0741, 0x0755, 0x0765, 0x0765, 0x0765, 0x0765, + 0x076e, 0x0770, 0x0770, 0x0770, 0x0774, 0x0779, 0x0779, 0x077d, + 0x0787, 0x0787, 0x07a2, 0x07b9, 0x07b9, 0x07be, 0x07c7, 0x07cd, + 0x07d3, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07e6, 0x07ec, + // Entry 140 - 17F + 0x07ec, 0x07f5, 0x07f5, 0x07ff, 0x0806, 0x080c, 0x0819, 0x0819, + 0x081e, 0x0822, 0x0822, 0x0827, 0x082d, 0x082d, 0x082d, 0x0833, + 0x0833, 0x0833, 0x0840, 0x084d, 0x084d, 0x0858, 0x0860, 0x0866, + 0x0866, 0x086b, 0x086f, 0x0878, 0x0878, 0x0878, 0x0878, 0x0878, + 0x0878, 0x0878, 0x0878, 0x087c, 0x0884, 0x0884, 0x0884, 0x0884, + 0x0884, 0x0884, 0x088c, 0x088c, 0x0893, 0x089b, 0x08a1, 0x08b0, + 0x08b0, 0x08b0, 0x08b0, 0x08b6, 0x08b6, 0x08b6, 0x08b6, 0x08bc, + 0x08c3, 0x08c9, 0x08c9, 0x08ce, 0x08d3, 0x08db, 0x08db, 0x08db, + // Entry 180 - 1BF + 0x08db, 0x08db, 0x08db, 0x08e0, 0x08e5, 0x08e5, 0x08e5, 0x08f0, + 0x08fa, 0x08ff, 0x0903, 0x0908, 0x0908, 0x0908, 0x0908, 0x0910, + 0x0910, 0x0917, 0x091e, 0x0925, 0x092f, 0x0934, 0x0934, 0x093a, + 0x0940, 0x0945, 0x0945, 0x0945, 0x0959, 0x0959, 0x0959, 0x095f, + 0x096a, 0x0974, 0x097c, 0x0982, 0x0987, 0x0987, 0x0987, 0x0995, + 0x099a, 0x09a3, 0x09aa, 0x09aa, 0x09aa, 0x09af, 0x09af, 0x09af, + 0x09b9, 0x09b9, 0x09da, 0x09e0, 0x09e5, 0x09ee, 0x09ee, 0x09ee, + 0x09ee, 0x09f3, 0x0a03, 0x0a03, 0x0a03, 0x0a12, 0x0a12, 0x0a22, + // Entry 1C0 - 1FF + 0x0a2b, 0x0a33, 0x0a38, 0x0a3e, 0x0a46, 0x0a5b, 0x0a66, 0x0a6e, + 0x0a76, 0x0a80, 0x0a88, 0x0a88, 0x0a88, 0x0a88, 0x0a95, 0x0a95, + 0x0a9d, 0x0a9d, 0x0a9d, 0x0aa5, 0x0aa5, 0x0ab5, 0x0ab5, 0x0ab5, + 0x0abf, 0x0ac6, 0x0ad1, 0x0ad1, 0x0ad1, 0x0ad1, 0x0ad9, 0x0ad9, + 0x0ad9, 0x0ad9, 0x0ae3, 0x0ae3, 0x0aea, 0x0aef, 0x0af7, 0x0af7, + 0x0afc, 0x0b03, 0x0b03, 0x0b03, 0x0b03, 0x0b03, 0x0b0d, 0x0b0d, + 0x0b0d, 0x0b0d, 0x0b0d, 0x0b0d, 0x0b13, 0x0b13, 0x0b23, 0x0b23, + 0x0b23, 0x0b26, 0x0b26, 0x0b2c, 0x0b2c, 0x0b2c, 0x0b39, 0x0b42, + // Entry 200 - 23F + 0x0b4c, 0x0b56, 0x0b5d, 0x0b64, 0x0b64, 0x0b69, 0x0b69, 0x0b69, + 0x0b6f, 0x0b73, 0x0b7b, 0x0b7b, 0x0b7b, 0x0b81, 0x0b81, 0x0b81, + 0x0b86, 0x0b86, 0x0b8c, 0x0b91, 0x0b96, 0x0b99, 0x0ba0, 0x0ba0, + 0x0ba7, 0x0bae, 0x0bae, 0x0bb5, 0x0bc2, 0x0bcb, 0x0bcb, 0x0bcb, + 0x0bcb, 0x0bd2, 0x0bd2, 0x0bd9, 0x0bdf, 0x0bdf, 0x0be7, 0x0be7, + 0x0bed, 0x0bf6, 0x0bfd, 0x0c03, 0x0c06, 0x0c06, 0x0c06, 0x0c06, + 0x0c06, 0x0c0b, 0x0c0b, 0x0c0b, 0x0c0b, 0x0c11, 0x0c16, 0x0c1a, + 0x0c1a, 0x0c1a, 0x0c20, 0x0c20, 0x0c20, 0x0c23, 0x0c29, 0x0c29, + // Entry 240 - 27F + 0x0c29, 0x0c29, 0x0c29, 0x0c31, 0x0c31, 0x0c31, 0x0c38, 0x0c38, + 0x0c3d, 0x0c3d, 0x0c3d, 0x0c54, 0x0c54, 0x0c54, 0x0c54, 0x0c66, + 0x0c66, 0x0c78, 0x0c88, 0x0c88, 0x0c88, 0x0c88, 0x0c88, 0x0c9a, + 0x0cad, 0x0cad, 0x0cad, 0x0cad, 0x0cad, 0x0cb6, 0x0cc1, 0x0cc1, + 0x0cd4, + }, + }, + { // mua + "akaÅ‹amharikarabiyabelarussiyabulgariabengaliasyekyagermaÅ‹grekzah Anglofo" + + "Å‹EspaniyaPersiazah sÇr FranssÇhaussahindihungariyaindonesiyaigboita" + + "liyazah sÇr JapoÅ‹javaniyakmerkoreamalasiyabirmaniaNepaliyazah sÇr ma" + + " kasÇÅ‹PÇnjabiPoloniyaZah sÇr PortugalRomaniyaRussiyaZah sÇr RwandaSo" + + "maliyaSwediaTamulthTurkUkrainiaUrduVietnamiyaYorubazah SyiÅ‹ZuluMUNDA" + + "ÅŠ", + []uint16{ // 423 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000c, 0x000c, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x001e, 0x0026, + 0x0026, 0x0026, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003f, 0x004c, 0x004c, 0x0054, + 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0071, + 0x0071, 0x0076, 0x0076, 0x0076, 0x0076, 0x007f, 0x007f, 0x007f, + // Entry 40 - 7F + 0x007f, 0x0089, 0x0089, 0x008d, 0x008d, 0x008d, 0x008d, 0x008d, + 0x0094, 0x0094, 0x00a3, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + 0x00ab, 0x00ab, 0x00af, 0x00af, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00bc, 0x00bc, 0x00c4, 0x00c4, 0x00c4, + 0x00cc, 0x00cc, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, + 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00e7, 0x00e7, 0x00ef, + // Entry 80 - BF + 0x00ef, 0x0100, 0x0100, 0x0100, 0x0100, 0x0108, 0x010f, 0x011e, + 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, + 0x011e, 0x011e, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, + 0x012c, 0x012c, 0x0131, 0x0131, 0x0131, 0x0133, 0x0133, 0x0133, + 0x0133, 0x0133, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x013f, + 0x0143, 0x0143, 0x0143, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, + 0x014d, 0x0153, 0x0153, 0x015c, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + // Entry C0 - FF + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + // Entry 100 - 13F + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + // Entry 140 - 17F + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + // Entry 180 - 1BF + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0167, + }, + }, + { // my + myLangStr, + myLangIdx, + }, + { // mzn + "آبخازیآÙریکانسآکانامهریعربیآسامیآذری Ùترکیباشقیریبلاروسیبلغاریبامباراییب" + + "نگالیتبتیبرÙتونیبوسنیاییکاتالونیچچنیکورسیکانچکیچوواشیولزیدانمارکیآل" + + "مانیدزونگخااوه\u200cیییونانیانگلیسیاسپرانتوایسپانیولیاستونیاییباسکی" + + "ÙارسیÙینیشÙیجیاییÙاروییÙرانسویغربی Ùیریزیایریشگالیکگورانیگجراتیمانک" + + "سهوساعبریهندیکرواتیهائتیاییمجاریارمنیاندونزیاییایگبوسیچوئان ییایسلن" + + "دیایتالیاییانوکتیتوتجاپونیجاواییگرجیکیکویوقزاقیکالائلیسوتخمریکانّاد" + + "اکÙره\u200cییکشمیریکوردیکورنیشقرقیزیلاتینلوکزامبورگیگاندالینگالالائ" + + "وییلتونیاییلوبا-کاتانگالاتویاییمالاگاسیمائوریمقدونیمالایالاممغولیما" + + "راتیمالاییمالتیبرمه\u200cییشمالی ندبلهنپالیهلندینروژی نینورسکنروژی " + + "بوکمالاورومواوریاپنجابیلهستونیپشتوپرتغالیقوئچوئارومانشروندیرومانیای" + + "یروسیکنیاروآنداییسانسکریتسندیشمالی سامیسانگوسینهالااسلواکیاسلوونیای" + + "یشوناسومالیاییآلبانیاییصربیسوندانسیسوئدیسواحیلیتامیلیتلوگوییتاجیکیت" + + "اییتیگرینیاییترکمونیتونگانیترکیتاتاریئوغوریاوکراینیاردوازبکیویتنامی" + + "وولÙیخوسایوروباچینیزولوآقمماپوچهآسوبمباییبناییغربی بلوچیبدوییچیگاچر" + + "وکیاییمیونی کوردیتایتازارماییپایین صربیدوئالاییجولا-ÙونیامبوÙیلیپین" + + "وگاگائوزیسوییس آلمانیگوسیهاواییاییبالایی صربینگومباماچامهقبایلیکامب" + + "اییماکوندهکیپ ÙˆÙردیکویرا چیینیکالنجینکومی-پرمیاککونکانیشامبالاباÙیا" + + "ییلانگیلاکوتاشمالی Ù„ÙریلوئولوییاماساییمÙروییموریسینماخوئا-میتومÙتاء" + + "موهاکموندانگمازرونیناماپایین آلمانیکوئاسیونئکونوئرنیانکولهکئیچه" + + "\u200cئیرومبوروآییسامبوروسانگووجنوبی کردیسÙناییکویرابورا سنیتاچلهیتج" + + "نوبی سامیلوله سامیایناری سامیسکولت سامیتسوییتاساواقیمیونی اطلس تامز" + + "یقینشناسی\u200cیه زوونواییوونجوییوالرپیریسوگامراکش Ùاستاندارد Ùتاما" + + "زیقتیاین زوون بشناسی\u200cیه نیّهمدرن استاندارد عربیجنوبی آذری ترکی" + + "اتریش Ùآلمانیسوییس Ùآلمانیاسترالیای Ùانگلیسیکانادای Ùانگلیسیبریتیش " + + "انگلیسیامریکن انگلیسیجنوبی آمریکای Ùایسپانیولیاروپای Ùایسپانیولیمکز" + + "یک Ùایسپانیولیکانادای ÙÙرانسویسوییس ÙÙرانسویپایین ساکسونیÙلمیشبرزیل" + + " Ùپرتغالیاروپای Ùپرتغالیمولداویکنگو سواحیلیساده چینیسنتی چینی", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000c, 0x000c, 0x001c, 0x0024, 0x002e, 0x002e, + 0x0036, 0x0040, 0x0040, 0x0040, 0x0053, 0x0061, 0x006f, 0x007b, + 0x007b, 0x008d, 0x0099, 0x00a1, 0x00af, 0x00bf, 0x00cf, 0x00d7, + 0x00d7, 0x00e7, 0x00e7, 0x00ed, 0x00ed, 0x00f9, 0x0101, 0x0111, + 0x011d, 0x011d, 0x012b, 0x0138, 0x0144, 0x0152, 0x0162, 0x0176, + 0x0188, 0x0192, 0x019c, 0x019c, 0x01a6, 0x01b4, 0x01c0, 0x01ce, + 0x01e3, 0x01ed, 0x01ed, 0x01f7, 0x0203, 0x020f, 0x0219, 0x0221, + 0x0229, 0x0231, 0x0231, 0x023d, 0x024d, 0x0257, 0x0261, 0x0261, + // Entry 40 - 7F + 0x0261, 0x0275, 0x0275, 0x027f, 0x0292, 0x0292, 0x0292, 0x02a0, + 0x02b2, 0x02c4, 0x02d0, 0x02dc, 0x02e4, 0x02e4, 0x02f0, 0x02f0, + 0x02fa, 0x030e, 0x0316, 0x0324, 0x0333, 0x0333, 0x033f, 0x0349, + 0x0349, 0x0355, 0x0361, 0x036b, 0x0381, 0x038b, 0x038b, 0x0399, + 0x03a5, 0x03b5, 0x03cc, 0x03dc, 0x03ec, 0x03ec, 0x03f8, 0x0404, + 0x0416, 0x0420, 0x042c, 0x0438, 0x0442, 0x0451, 0x0451, 0x0466, + 0x0470, 0x0470, 0x047a, 0x0493, 0x04aa, 0x04aa, 0x04aa, 0x04aa, + 0x04aa, 0x04aa, 0x04b6, 0x04c0, 0x04c0, 0x04cc, 0x04cc, 0x04da, + // Entry 80 - BF + 0x04e2, 0x04f0, 0x04fe, 0x050a, 0x0514, 0x0526, 0x052e, 0x0546, + 0x0556, 0x0556, 0x055e, 0x0571, 0x057b, 0x0589, 0x0597, 0x05ab, + 0x05ab, 0x05b3, 0x05c5, 0x05d7, 0x05df, 0x05df, 0x05df, 0x05ef, + 0x05f9, 0x0607, 0x0613, 0x0621, 0x062d, 0x0635, 0x0649, 0x0657, + 0x0657, 0x0665, 0x066d, 0x066d, 0x0679, 0x0679, 0x0685, 0x0695, + 0x069d, 0x06a7, 0x06a7, 0x06b5, 0x06b5, 0x06b5, 0x06bf, 0x06c7, + 0x06c7, 0x06d3, 0x06d3, 0x06db, 0x06e3, 0x06e3, 0x06e3, 0x06e3, + 0x06e3, 0x06e3, 0x06e3, 0x06e9, 0x06e9, 0x06e9, 0x06e9, 0x06e9, + // Entry C0 - FF + 0x06e9, 0x06e9, 0x06e9, 0x06e9, 0x06e9, 0x06f5, 0x06f5, 0x06f5, + 0x06f5, 0x06f5, 0x06f5, 0x06f5, 0x06fb, 0x06fb, 0x06fb, 0x06fb, + 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x06fb, 0x06fb, + 0x06fb, 0x0707, 0x0707, 0x0711, 0x0711, 0x0711, 0x0724, 0x0724, + 0x0724, 0x0724, 0x0724, 0x0724, 0x0724, 0x0724, 0x0724, 0x0724, + 0x0724, 0x072e, 0x072e, 0x072e, 0x072e, 0x072e, 0x072e, 0x072e, + 0x072e, 0x072e, 0x072e, 0x072e, 0x072e, 0x0736, 0x0736, 0x0736, + 0x0736, 0x0736, 0x0736, 0x0736, 0x0736, 0x0746, 0x0746, 0x075b, + // Entry 100 - 13F + 0x075b, 0x075b, 0x075b, 0x075b, 0x075b, 0x075b, 0x0765, 0x0765, + 0x0765, 0x0765, 0x0765, 0x0773, 0x0773, 0x0786, 0x0786, 0x0796, + 0x0796, 0x07a7, 0x07a7, 0x07a7, 0x07af, 0x07af, 0x07af, 0x07af, + 0x07af, 0x07af, 0x07af, 0x07af, 0x07af, 0x07af, 0x07af, 0x07bf, + 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, + 0x07bf, 0x07bf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, + 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, 0x07cf, + 0x07cf, 0x07cf, 0x07e6, 0x07e6, 0x07e6, 0x07ee, 0x07ee, 0x07ee, + // Entry 140 - 17F + 0x07ee, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0815, 0x0815, + 0x0815, 0x0815, 0x0815, 0x0815, 0x0815, 0x0815, 0x0815, 0x0815, + 0x0821, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x0839, 0x0839, + 0x0839, 0x0847, 0x0847, 0x0847, 0x0847, 0x0847, 0x0855, 0x0866, + 0x0866, 0x0866, 0x0866, 0x0866, 0x0866, 0x087b, 0x087b, 0x087b, + 0x087b, 0x0889, 0x0889, 0x089e, 0x08ac, 0x08ac, 0x08ac, 0x08ac, + 0x08ac, 0x08ac, 0x08ac, 0x08ac, 0x08ba, 0x08c8, 0x08c8, 0x08c8, + 0x08c8, 0x08c8, 0x08d2, 0x08d2, 0x08d2, 0x08d2, 0x08d2, 0x08d2, + // Entry 180 - 1BF + 0x08d2, 0x08de, 0x08de, 0x08de, 0x08de, 0x08f1, 0x08f1, 0x08f1, + 0x08f1, 0x08f1, 0x08f9, 0x08f9, 0x0903, 0x0903, 0x0903, 0x0903, + 0x0903, 0x0903, 0x0903, 0x0903, 0x0903, 0x090f, 0x090f, 0x090f, + 0x090f, 0x090f, 0x091b, 0x0929, 0x0929, 0x093e, 0x0948, 0x0948, + 0x0948, 0x0948, 0x0948, 0x0952, 0x0952, 0x0952, 0x0960, 0x0960, + 0x0960, 0x0960, 0x0960, 0x0960, 0x0960, 0x0960, 0x096e, 0x096e, + 0x096e, 0x0976, 0x098d, 0x098d, 0x098d, 0x098d, 0x098d, 0x099b, + 0x099b, 0x099b, 0x099b, 0x099b, 0x09a3, 0x09a3, 0x09ab, 0x09ab, + // Entry 1C0 - 1FF + 0x09ab, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, + 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, + 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09bb, 0x09cc, 0x09cc, + 0x09cc, 0x09cc, 0x09cc, 0x09cc, 0x09cc, 0x09d6, 0x09d6, 0x09d6, + 0x09d6, 0x09d6, 0x09d6, 0x09e0, 0x09e0, 0x09e0, 0x09e0, 0x09ee, + 0x09ee, 0x09ee, 0x09ee, 0x09ee, 0x09fa, 0x09fa, 0x09fa, 0x09fa, + 0x0a0d, 0x0a0d, 0x0a19, 0x0a19, 0x0a19, 0x0a32, 0x0a32, 0x0a32, + 0x0a40, 0x0a40, 0x0a40, 0x0a40, 0x0a40, 0x0a40, 0x0a53, 0x0a64, + // Entry 200 - 23F + 0x0a79, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, + 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, 0x0a8c, + 0x0a8c, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, + 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, + 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0a96, 0x0aa6, 0x0aa6, 0x0ac8, + 0x0ac8, 0x0ac8, 0x0ac8, 0x0ae4, 0x0aec, 0x0aec, 0x0aec, 0x0aec, + 0x0aec, 0x0aec, 0x0aec, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, + 0x0b0a, 0x0b0a, 0x0b0a, 0x0b0a, 0x0b12, 0x0b12, 0x0b12, 0x0b12, + // Entry 240 - 27F + 0x0b12, 0x0b12, 0x0b12, 0x0b12, 0x0b12, 0x0b12, 0x0b12, 0x0b46, + 0x0b46, 0x0b72, 0x0b72, 0x0b96, 0x0bb2, 0x0bcb, 0x0be4, 0x0c07, + 0x0c26, 0x0c41, 0x0c5c, 0x0c8c, 0x0caf, 0x0cd0, 0x0cd0, 0x0cef, + 0x0d0a, 0x0d23, 0x0d2d, 0x0d48, 0x0d65, 0x0d73, 0x0d73, 0x0d8a, + 0x0d9b, 0x0dac, + }, + }, + { // naq + "AkangowabAmharicgowabArabiÇî gowabBelarusanÇî gowabBulgariaÇî gowabBenga" + + "liÇî gowabCzechÇî gowabDuitsXriksEngelsSpaansPersiaÇî gowabFransHaus" + + "agowabHindigowabHungariaÇî gowabIndonesiaÇî gowabIgbogowabItaliansJa" + + "paneesJavaneseKhmerÇî gowab, CentralKoreaÇî gowabMalayÇî gowabBurmes" + + "Çî gowabNepalÇî gowabHollandsPunjabigowabPoleÇî gowabPortugeesRoman" + + "iaÇî gowabRussiaÇî gowabRwandaÇî gowabSomaliÇî gowabSwedeÇî gowabTam" + + "ilÇî gowabThaiÇî gowabTurkeÇî gowabUkrainiaÇî gowabUrduÇî gowabVietn" + + "amÇî gowabYorubabChineesÇî gowab, MandarinniZulubKhoekhoegowab", + []uint16{ // 434 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0015, 0x0015, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0037, 0x0049, + 0x0049, 0x0049, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x006e, 0x006e, 0x006e, 0x006e, 0x0073, 0x0079, 0x0079, 0x007f, + 0x007f, 0x007f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0094, + 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x0094, 0x009e, + 0x009e, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00ba, 0x00ba, 0x00ba, + // Entry 40 - 7F + 0x00ba, 0x00cd, 0x00cd, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00de, 0x00de, 0x00e6, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, + 0x00ee, 0x00ee, 0x0106, 0x0106, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0124, 0x0124, 0x0134, 0x0134, 0x0134, + 0x0143, 0x0143, 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, + 0x014b, 0x014b, 0x014b, 0x014b, 0x014b, 0x0157, 0x0157, 0x0165, + // Entry 80 - BF + 0x0165, 0x016e, 0x016e, 0x016e, 0x016e, 0x017f, 0x018f, 0x019f, + 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, 0x019f, + 0x019f, 0x019f, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, + 0x01be, 0x01be, 0x01cd, 0x01cd, 0x01cd, 0x01db, 0x01db, 0x01db, + 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01fc, + 0x020a, 0x020a, 0x020a, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, + 0x021b, 0x0222, 0x0222, 0x023f, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + // Entry C0 - FF + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + // Entry 100 - 13F + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + // Entry 140 - 17F + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + // Entry 180 - 1BF + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, 0x0244, + 0x0244, 0x0251, + }, + }, + { // nd + "isi-Akhaniisi-Amaharikhiisi-Alabhuisi-Bhelarashiyaniisi-Bulgariaisi-Bhen" + + "galiisi-Czechisi-Jalimaniisi-Gilikiisi-Ngisiisi-Sipeyiniisi-Pheshiya" + + "niisi-Fulentshiisi-Hausaisi-Hindiisi-Hangariisi-Indonesiaisi-Igboisi" + + "-Italianoisi-Japhaniisi-Javaisi-Khambodiyaisi-Koriyaisi-Malayiisi-Bu" + + "rmaisiNdebeleisi-Nepaliisi-Dutchisi-Phunjabiisi-Pholoshiisi-Potukezi" + + "isi-Romaniisi-Rashiyaisi-Ruwandaisi-Somaliisi-Swidishiisi-Thamilisi-" + + "Thayiisi-Thekishiisi-Ukrainisi-Uduisi-Vietnameseisi-Yorubhaisi-China" + + "isi-Zulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0034, 0x0040, + 0x0040, 0x0040, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0061, 0x0061, 0x0061, 0x0061, 0x006b, 0x0074, 0x0074, 0x0080, + 0x0080, 0x0080, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x009b, 0x00a4, + 0x00a4, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00b8, 0x00b8, 0x00b8, + // Entry 40 - 7F + 0x00b8, 0x00c5, 0x00c5, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00d9, 0x00d9, 0x00e4, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, + 0x00ec, 0x00ec, 0x00fa, 0x00fa, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, + 0x0104, 0x0104, 0x0104, 0x010e, 0x010e, 0x0117, 0x0117, 0x0121, + 0x012b, 0x012b, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0140, 0x0140, 0x014c, + // Entry 80 - BF + 0x014c, 0x0158, 0x0158, 0x0158, 0x0158, 0x0162, 0x016d, 0x0178, + 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, + 0x0178, 0x0178, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, + 0x018e, 0x018e, 0x0198, 0x0198, 0x0198, 0x01a1, 0x01a1, 0x01a1, + 0x01a1, 0x01a1, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01b7, + 0x01be, 0x01be, 0x01be, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, + 0x01cc, 0x01d7, 0x01d7, 0x01e0, 0x01e8, + }, + }, + { // ne + neLangStr, + neLangIdx, + }, + { // nl + nlLangStr, + nlLangIdx, + }, + { // nmg + "KiÉ›l akanKiÉ›l amariaKiÉ›l b’árabeKiÉ›l belarussieKiÉ›l bulgariaKiÉ›l bengali" + + "aKiÉ›l bó tchÉ›kJámanKiÉ›l bó grÉ›kNgɛ̄lɛ̄nPaŋáKiÉ›l pÉ›rsiaFalaKiÉ›l máwús" + + "áKiÉ›l b’indienKiÉ›l b’ɔÌngroisKiÉ›l indonesieKiÉ›l ikboKiÉ›l italiaKiÉ›l" + + " bó japonɛ̌KiÉ›l bó javanɛ̌KiÉ›l bó mÉ›rKiÉ›l koréKiÉ›l Malɛ̌siÄKiÉ›l birm" + + "aniaKiÉ›l nepalKiÉ›l bóllandaisKiÉ›l pÉ›ndjabiKiÉ›l pÉ”lɔŋeKiÉ›l bó pɔ̄rtug" + + "ɛ̂KiÉ›l bó rumɛ̂nKiÉ›l russiaKiÉ›l rwandÄKiÉ›l somaliÄKiÉ›l bó suedoisKi" + + "É›l tamulKiÉ›l thaïKiÉ›l bó turkKiÉ›l b’ukrɛ̄nienKiÉ›l úrduKiÉ›l viÉ›tnamY" + + "orúbâKiÉ›l bó chinoisZulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0036, 0x0044, + 0x0044, 0x0044, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0068, 0x0068, 0x0068, 0x0068, 0x0077, 0x0083, 0x0083, 0x0089, + 0x0089, 0x0089, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x00a9, + 0x00a9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00cd, 0x00cd, 0x00cd, + // Entry 40 - 7F + 0x00cd, 0x00dc, 0x00dc, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, + 0x00f2, 0x00f2, 0x0105, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, + 0x0118, 0x0118, 0x0126, 0x0126, 0x0131, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x0131, 0x0142, 0x0142, 0x0150, 0x0150, 0x0150, + 0x015b, 0x015b, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x017b, 0x017b, 0x018a, + // Entry 80 - BF + 0x018a, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01b3, 0x01bf, 0x01cc, + 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, + 0x01cc, 0x01cc, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01eb, 0x01eb, 0x01f6, 0x01f6, 0x01f6, 0x0201, 0x0201, 0x0201, + 0x0201, 0x0201, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x0224, + 0x022f, 0x022f, 0x022f, 0x023d, 0x023d, 0x023d, 0x023d, 0x023d, + 0x023d, 0x0245, 0x0245, 0x0256, 0x025a, + }, + }, + { // nn + "afarabkhasiskavestiskafrikaansakanamhariskaragonskarabiskassamiskavarisk" + + "aymaraaserbajdsjanskbasjkirskkviterussiskbulgarskbislamabambarabenga" + + "litibetanskbretonskbosniskkatalansktsjetsjenskchamorrokorsikanskcree" + + "tsjekkiskkyrkjeslavisktsjuvanskwalisiskdansktyskdivehidzongkhaewegre" + + "skengelskesperantospanskestiskbaskiskpersiskfulanifinskfijianskfærøy" + + "skfranskvestfrisiskirskskotsk-gæliskgaliciskguaranigujaratimanxhausa" + + "hebraiskhindihiri motukroatiskhaitiskungarskarmenskhererointerlingua" + + "indonesiskinterlingueibosichuan-yiinupiakidoislandskitalienskinuktit" + + "utjapanskjavanesiskgeorgiskkikongokikuyukuanyamakasakhiskkalaallisut" + + "; grønlandskkhmerkannadakoreanskkanurikasjmirikurdiskkomikorniskkirg" + + "isisklatinluxemburgskgandalimburgisklingalalaotisklitauiskluba-katan" + + "galatviskmadagassiskmarshallesiskmaorimakedonskmalayalammongolskmara" + + "thimalayiskmaltesiskburmesisknaurunord-ndebelenepalskndonganederland" + + "sknynorskbokmÃ¥lsør-ndebelenavajonyanjaoksitanskojibwaoromooriyaosset" + + "iskpanjabipalipolskpashtoportugisiskquechuaretoromanskrundirumenskru" + + "ssiskkinjarwandasanskritsardinsksindhinordsamisksangosingalesiskslov" + + "akiskslovensksamoanskshonasomalialbanskserbiskswatisørsothosundanesi" + + "sksvenskswahilitamiltelugutatsjikiskthaitigrinjaturkmensktswanatonga" + + " (Tonga-øyane)tyrkisktsongatatarisktahitiskuiguriskukrainskurduusbek" + + "iskvendavietnamesiskvolapykvallonskwolofxhosajiddiskjorubazhuangkine" + + "siskzuluachinesiskacoliadangmeadygheafrihiliaghemainuakkadiskaleutis" + + "ksør-altaigammalengelskangikaarameiskaraukanskarapahoarawakasu (Tanz" + + "ania)asturiskawadhibaluchibalinesiskbasabejabembabena (Tanzania)bhoj" + + "puribikolbinisiksikabrajbodoburjatiskbuginesiskblincaddokaribiskatsa" + + "mcebuanskchibchachagataichuukesiskmarichinookchoctawchipewianskchero" + + "keecheyennekoptiskkrimtatariskkasjubiskdakotadargwadelawareslavejdog" + + "ribdinkazarmadogrilÃ¥gsorbiskdualamellumnederlandskjola-fonyidyulakie" + + "mbuefikgammalegyptiskekajukelamittiskmellomengelskewondofangfilippin" + + "skfonmellomfranskgammalfransknordfrisiskaustfrisiskfriulianskgagayog" + + "bayageskiribatiskmellomhøgtyskgammalhøgtyskgondigorontalogotiskgrebo" + + "gammalgresksveitsertyskgwichinhaidahawaiiskhiligaynonhettittiskhmong" + + "høgsorbiskhupaibanilokoingusjisklojbanjødepersiskjødearabiskkarakalp" + + "akiskkabylskkachinjjukambakawikabardisktyapkapverdiskkorokhasikhotan" + + "esiskkimbundukonkanikosraeanskkpellekarachay-balkarkarelskkurukhbafi" + + "akumykkutenailadinsklahndalambalezghianmongoloziluba-lulualuisenolun" + + "daluolushaimaduresiskmagahimaithilimakasarmandingomasaimokshamandarm" + + "endemellomirskmicmacminangkabaumandsjumanipurimohawkmossimundangflei" + + "re sprÃ¥kcreekmirandesiskmarwarierzyanapolitansklÃ¥gtysknewariniasniue" + + "anskkwasionogaigammalnorskn’konordsothonuerklassisk newarisknyamwezi" + + "nyankolenyoronzimaosageottomansk tyrkiskpangasinanpahlavipampangapap" + + "iamentopalauiskgammalpersiskfønikiskponapiskgammalprovençalskrajasth" + + "anirapanuirarotonganskromboromaniaromanskrwasandawejakutsksamaritans" + + "k arameisksasaksantalisangusicilianskskotskselkupiskgammalirskshansi" + + "damosørsamisklulesamiskenaresamiskskoltesamisksoninkesogdisksranan t" + + "ongoserersukumasususumeriskshimaoreklassisk syrisksyrisktemneterenot" + + "etumtigrétivitokelauklingontlingittamasjektonga (Nyasa)tok pisintsim" + + "shiantumbukatuvalutasawaqtuviniskudmurtugaritiskumbundurotvaivotiskw" + + "alamowaraywashokalmykyaoyapesiskyangbenkantonesiskzapotecblissymbolz" + + "enagazuniutan sprÃ¥kleg innhaldzazaausterriksk tysksveitsisk høgtyska" + + "ustralisk engelskkanadisk engelskbritisk engelskengelsk (amerikansk)" + + "latinamerikansk spanskiberisk spanskkanadisk fransksveitsisk franskf" + + "lamskbrasiliansk portugisiskeuropeisk portugisiskmoldaviskserbokroat" + + "iskforenkla kinesisktradisjonell kinesisk", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0015, 0x001e, 0x0022, 0x002a, 0x0032, + 0x0039, 0x0041, 0x0048, 0x004e, 0x005c, 0x0065, 0x0071, 0x0079, + 0x0080, 0x0087, 0x008e, 0x0097, 0x009f, 0x00a6, 0x00af, 0x00ba, + 0x00c2, 0x00cc, 0x00d0, 0x00d9, 0x00e6, 0x00ef, 0x00f7, 0x00fc, + 0x0100, 0x0106, 0x010e, 0x0111, 0x0116, 0x011d, 0x0126, 0x012c, + 0x0132, 0x0139, 0x0140, 0x0146, 0x014b, 0x0153, 0x015c, 0x0162, + 0x016d, 0x0171, 0x017f, 0x0187, 0x018e, 0x0196, 0x019a, 0x019f, + 0x01a7, 0x01ac, 0x01b5, 0x01bd, 0x01c4, 0x01cb, 0x01d2, 0x01d8, + // Entry 40 - 7F + 0x01e3, 0x01ed, 0x01f8, 0x01fb, 0x0205, 0x020c, 0x020f, 0x0217, + 0x0220, 0x0229, 0x0230, 0x023a, 0x0242, 0x0249, 0x024f, 0x0257, + 0x0260, 0x0278, 0x027d, 0x0284, 0x028c, 0x0292, 0x029a, 0x02a1, + 0x02a5, 0x02ac, 0x02b5, 0x02ba, 0x02c5, 0x02ca, 0x02d4, 0x02db, + 0x02e2, 0x02ea, 0x02f6, 0x02fd, 0x0308, 0x0315, 0x031a, 0x0323, + 0x032c, 0x0334, 0x033b, 0x0343, 0x034c, 0x0355, 0x035a, 0x0366, + 0x036d, 0x0373, 0x037e, 0x0385, 0x038c, 0x0398, 0x039e, 0x03a4, + 0x03ad, 0x03b3, 0x03b8, 0x03bd, 0x03c5, 0x03cc, 0x03d0, 0x03d5, + // Entry 80 - BF + 0x03db, 0x03e6, 0x03ed, 0x03f8, 0x03fd, 0x0404, 0x040b, 0x0416, + 0x041e, 0x0426, 0x042c, 0x0436, 0x043b, 0x0446, 0x044f, 0x0457, + 0x045f, 0x0464, 0x046a, 0x0471, 0x0478, 0x047d, 0x0486, 0x0491, + 0x0497, 0x049e, 0x04a3, 0x04a9, 0x04b3, 0x04b7, 0x04bf, 0x04c8, + 0x04ce, 0x04e2, 0x04e9, 0x04ef, 0x04f7, 0x04ff, 0x0507, 0x050f, + 0x0513, 0x051b, 0x0520, 0x052c, 0x0533, 0x053b, 0x0540, 0x0545, + 0x054c, 0x0552, 0x0558, 0x0560, 0x0564, 0x056e, 0x0573, 0x057a, + 0x0580, 0x0580, 0x0588, 0x058d, 0x0591, 0x0599, 0x0599, 0x05a1, + // Entry C0 - FF + 0x05a1, 0x05ab, 0x05b8, 0x05be, 0x05c6, 0x05cf, 0x05cf, 0x05d6, + 0x05d6, 0x05dc, 0x05dc, 0x05dc, 0x05ea, 0x05ea, 0x05f2, 0x05f2, + 0x05f8, 0x05ff, 0x0609, 0x0609, 0x060d, 0x060d, 0x060d, 0x060d, + 0x0611, 0x0616, 0x0616, 0x0625, 0x0625, 0x0625, 0x0625, 0x062d, + 0x0632, 0x0636, 0x0636, 0x0636, 0x063d, 0x063d, 0x063d, 0x0641, + 0x0641, 0x0645, 0x0645, 0x064e, 0x0658, 0x0658, 0x065c, 0x065c, + 0x0661, 0x0669, 0x0669, 0x066e, 0x0676, 0x0676, 0x067d, 0x0685, + 0x068f, 0x0693, 0x069a, 0x06a1, 0x06ac, 0x06b4, 0x06bc, 0x06bc, + // Entry 100 - 13F + 0x06c3, 0x06c3, 0x06cf, 0x06d8, 0x06de, 0x06e4, 0x06e4, 0x06ec, + 0x06f2, 0x06f8, 0x06fd, 0x0702, 0x0707, 0x0712, 0x0712, 0x0717, + 0x0728, 0x0732, 0x0737, 0x0737, 0x073d, 0x0741, 0x0741, 0x074f, + 0x0755, 0x075f, 0x076c, 0x076c, 0x0772, 0x0772, 0x0776, 0x0780, + 0x0780, 0x0783, 0x0783, 0x078f, 0x079b, 0x079b, 0x07a6, 0x07b1, + 0x07bb, 0x07bd, 0x07bd, 0x07bd, 0x07c1, 0x07c6, 0x07c6, 0x07c9, + 0x07d3, 0x07d3, 0x07e1, 0x07ef, 0x07ef, 0x07f4, 0x07fd, 0x0803, + 0x0808, 0x0813, 0x081f, 0x081f, 0x081f, 0x081f, 0x0826, 0x082b, + // Entry 140 - 17F + 0x082b, 0x0833, 0x0833, 0x083d, 0x0847, 0x084c, 0x0857, 0x0857, + 0x085b, 0x085f, 0x085f, 0x0864, 0x086d, 0x086d, 0x086d, 0x0873, + 0x0873, 0x0873, 0x087f, 0x088b, 0x088b, 0x0898, 0x089f, 0x08a5, + 0x08a8, 0x08ad, 0x08b1, 0x08ba, 0x08ba, 0x08be, 0x08be, 0x08c8, + 0x08c8, 0x08cc, 0x08cc, 0x08d1, 0x08dc, 0x08dc, 0x08dc, 0x08dc, + 0x08dc, 0x08dc, 0x08e4, 0x08e4, 0x08eb, 0x08f5, 0x08fb, 0x090a, + 0x090a, 0x090a, 0x0911, 0x0917, 0x0917, 0x091c, 0x091c, 0x0921, + 0x0928, 0x092f, 0x092f, 0x0935, 0x093a, 0x0942, 0x0942, 0x0942, + // Entry 180 - 1BF + 0x0942, 0x0942, 0x0942, 0x0947, 0x094b, 0x094b, 0x094b, 0x0955, + 0x095c, 0x0961, 0x0964, 0x096a, 0x096a, 0x096a, 0x096a, 0x0974, + 0x0974, 0x097a, 0x0982, 0x0989, 0x0991, 0x0996, 0x0996, 0x099c, + 0x09a2, 0x09a7, 0x09a7, 0x09a7, 0x09b1, 0x09b1, 0x09b1, 0x09b7, + 0x09c2, 0x09c9, 0x09d1, 0x09d7, 0x09dc, 0x09dc, 0x09e3, 0x09f0, + 0x09f5, 0x0a00, 0x0a07, 0x0a07, 0x0a07, 0x0a0c, 0x0a0c, 0x0a0c, + 0x0a17, 0x0a17, 0x0a1f, 0x0a25, 0x0a29, 0x0a31, 0x0a31, 0x0a37, + 0x0a37, 0x0a3c, 0x0a47, 0x0a47, 0x0a4d, 0x0a56, 0x0a5a, 0x0a6b, + // Entry 1C0 - 1FF + 0x0a73, 0x0a7b, 0x0a80, 0x0a85, 0x0a8a, 0x0a9b, 0x0aa5, 0x0aac, + 0x0ab4, 0x0abe, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ac6, 0x0ad3, 0x0ad3, + 0x0adc, 0x0adc, 0x0adc, 0x0ae4, 0x0ae4, 0x0af6, 0x0af6, 0x0af6, + 0x0b00, 0x0b07, 0x0b13, 0x0b13, 0x0b13, 0x0b18, 0x0b1e, 0x0b1e, + 0x0b1e, 0x0b1e, 0x0b26, 0x0b29, 0x0b30, 0x0b37, 0x0b4b, 0x0b4b, + 0x0b50, 0x0b57, 0x0b57, 0x0b57, 0x0b5c, 0x0b66, 0x0b6c, 0x0b6c, + 0x0b6c, 0x0b6c, 0x0b6c, 0x0b6c, 0x0b75, 0x0b75, 0x0b7f, 0x0b7f, + 0x0b7f, 0x0b83, 0x0b83, 0x0b89, 0x0b89, 0x0b89, 0x0b93, 0x0b9d, + // Entry 200 - 23F + 0x0ba8, 0x0bb4, 0x0bbb, 0x0bc2, 0x0bce, 0x0bd3, 0x0bd3, 0x0bd3, + 0x0bd9, 0x0bdd, 0x0be5, 0x0bed, 0x0bfc, 0x0c02, 0x0c02, 0x0c02, + 0x0c07, 0x0c07, 0x0c0d, 0x0c12, 0x0c18, 0x0c1c, 0x0c23, 0x0c23, + 0x0c2a, 0x0c31, 0x0c31, 0x0c39, 0x0c46, 0x0c4f, 0x0c4f, 0x0c4f, + 0x0c4f, 0x0c58, 0x0c58, 0x0c5f, 0x0c65, 0x0c6c, 0x0c74, 0x0c74, + 0x0c7a, 0x0c83, 0x0c8a, 0x0c8d, 0x0c90, 0x0c90, 0x0c90, 0x0c90, + 0x0c90, 0x0c96, 0x0c96, 0x0c96, 0x0c96, 0x0c9c, 0x0ca1, 0x0ca6, + 0x0ca6, 0x0ca6, 0x0cac, 0x0cac, 0x0cac, 0x0caf, 0x0cb7, 0x0cbe, + // Entry 240 - 27F + 0x0cbe, 0x0cbe, 0x0cc9, 0x0cd0, 0x0cda, 0x0cda, 0x0ce0, 0x0ce0, + 0x0ce4, 0x0cfa, 0x0cfe, 0x0cfe, 0x0cfe, 0x0d0e, 0x0d20, 0x0d32, + 0x0d42, 0x0d51, 0x0d65, 0x0d7b, 0x0d89, 0x0d89, 0x0d89, 0x0d98, + 0x0da8, 0x0da8, 0x0dae, 0x0dc5, 0x0dda, 0x0de3, 0x0df0, 0x0df0, + 0x0e01, 0x0e16, + }, + }, + { // nnh + "nzÇŽmɔ̂ɔnngilísèShwóŋò menkesaÅ‹felaÅ‹séeShwóŋò pʉa mbasÇŽShwóŋò pamomShwóŋò" + + " pʉa nzsekàʼaShwóŋò pafudShwóŋò pʉ̀a njinikomShwóŋò pakÉ”siShwóŋò mbu" + + "luShwóŋò ngáŋtÿɔʼShwóŋò pʉa YɔɔnmendiShwóŋò pʉa shÿó BÉ›gtùaShwóŋò ng" + + "iembɔɔnShwóŋò pʉa shÿó MbafìaShwóŋò TsaÅ‹", + []uint16{ // 577 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0028, 0x0028, 0x0028, 0x0028, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + // Entry 40 - 7F + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + // Entry 80 - BF + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + // Entry C0 - FF + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0032, 0x0047, 0x0056, 0x0056, 0x006f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x007e, 0x007e, 0x007e, 0x007e, + 0x007e, 0x007e, 0x007e, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, + 0x0097, 0x0097, 0x00a8, 0x00a8, 0x00a8, 0x00b7, 0x00b7, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + // Entry 100 - 13F + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + // Entry 140 - 17F + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + // Entry 180 - 1BF + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + // Entry 1C0 - 1FF + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + // Entry 200 - 23F + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x0138, + // Entry 240 - 27F + 0x0147, + }, + }, + { // no + noLangStr, + noLangIdx, + }, + { // nus + "Thok aka̱niThok bunyniThok JalabniThok bäläruthaThok bälga̱a̱rianiThok b" + + "ängaliThok cikThok jarmaniThok girikniThok liÅ‹li̱thniThok i̱thpaani" + + "aniThok perthianiThok pÉ”rÉ”thaniThok É£owthaniThok ɣändiniThok ɣänga̱a" + + "̱riÉ›niThok indunithianiThok i̱gboniThok i̱talianiThok japanniThok j" + + "abanithniThok kameeriThok kurianiThok mayÉ›yniThok bormi̱thniThok nap" + + "alniThok da̱cThok puÉ”njabaniThok pölicniThok puÉ”tigaliThok ji̱ römTh" + + "ok ra̱ciaaniThok ruaandaniThok thomaalianiThok i̱thwidicniThok tamil" + + "niThok tayniThok turkicniThok ukeraaniniThok udoniThok betnaamniThok" + + " yurubaniThok caynaThok dhuluniThok Nath", + []uint16{ // 447 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0017, 0x0017, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0033, 0x0048, + 0x0048, 0x0048, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0055, 0x0055, 0x0055, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0075, 0x0086, 0x0086, 0x0098, + 0x0098, 0x0098, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00b6, + 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00c4, + 0x00c4, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00e9, 0x00e9, 0x00e9, + // Entry 40 - 7F + 0x00e9, 0x00fa, 0x00fa, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0116, 0x0116, 0x0122, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x013d, 0x013d, 0x0149, 0x0149, 0x0149, 0x0149, + 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, + 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, 0x0149, + 0x0149, 0x0149, 0x0149, 0x0156, 0x0156, 0x0166, 0x0166, 0x0166, + 0x0172, 0x0172, 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, + 0x017c, 0x017c, 0x017c, 0x017c, 0x017c, 0x018c, 0x018c, 0x0199, + // Entry 80 - BF + 0x0199, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01b6, 0x01c5, 0x01d3, + 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, 0x01d3, + 0x01d3, 0x01d3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, 0x01e3, + 0x01f4, 0x01f4, 0x0200, 0x0200, 0x0200, 0x020a, 0x020a, 0x020a, + 0x020a, 0x020a, 0x0217, 0x0217, 0x0217, 0x0217, 0x0217, 0x0226, + 0x0230, 0x0230, 0x0230, 0x023e, 0x023e, 0x023e, 0x023e, 0x023e, + 0x023e, 0x024b, 0x024b, 0x0255, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + // Entry C0 - FF + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + // Entry 100 - 13F + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + // Entry 140 - 17F + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + // Entry 180 - 1BF + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, + 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x0261, 0x026a, + }, + }, + { // nyn + "OrukaniOrumarikiOruharabuOruberarusiOruburugariyaOrubengariOruceekiOrugi" + + "rimaaniOruguriikiOrungyerezaOrusupaaniOrupaasiyaOrufaransaOruhausaOr" + + "uhindiOruhangareOruindoneziaOruiboOruyitareOrujapaaniOrujavaOrukambo" + + "diyaOrukoreyaOrumalesiyaOruburumaOrunepaliOrudaakiOrupungyabiOrupoor" + + "iOrupocugoOruromaniaOrurrashaOrunyarwandaOrusomaariOruswidiOrutamiri" + + "OrutailandiOrukurukiOrukurainiOru-UruduOruviyetinaamuOruyorubaOrucha" + + "inaOruzuruRunyankore", + []uint16{ // 450 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0010, 0x0010, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0031, + 0x0031, 0x0031, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0064, 0x0064, 0x006e, + 0x006e, 0x006e, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x008a, + 0x008a, 0x0092, 0x0092, 0x0092, 0x0092, 0x009c, 0x009c, 0x009c, + // Entry 40 - 7F + 0x009c, 0x00a8, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00b7, 0x00b7, 0x00c1, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, + 0x00c8, 0x00c8, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00e8, 0x00f1, 0x00f1, 0x00f1, + 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x010d, 0x010d, 0x0115, + // Entry 80 - BF + 0x0115, 0x011e, 0x011e, 0x011e, 0x011e, 0x0128, 0x0131, 0x013d, + 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, + 0x013d, 0x013d, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0163, 0x0163, 0x0163, + 0x0163, 0x0163, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x0176, + 0x017f, 0x017f, 0x017f, 0x018d, 0x018d, 0x018d, 0x018d, 0x018d, + 0x018d, 0x0196, 0x0196, 0x019f, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry C0 - FF + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry 100 - 13F + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry 140 - 17F + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry 180 - 1BF + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry 1C0 - 1FF + 0x01a6, 0x01b0, + }, + }, + { // om + "AfrikootaAfaan SidaamaaArabiffaaAfaan AzerbaijaniAfaan BelarusiaAfaan Bu" + + "lgariyaAfaan BaangladeshiAfaan BosniyaaAfaan KatalaaAfaan CzechWelis" + + "hiffaaAfaan DeenmaarkAfaan JarmaniiAfaan GiriikiIngliffaAfaan Espera" + + "ntooAfaan IspeenAfaan IstooniyaAfaan BaskuuAfaan PersiaAfaan Fiilaan" + + "diAfaan FaroeseAfaan FaransaayiiAfaan FirisiyaaniAfaan AyirishiiScot" + + "s GaelicAfaan GalishiiAfaan GuaraniAfaan GujaratiAfaan HebrewAfaan H" + + "indiiAfaan CroatianAfaan HangaariInterlinguaAfaan IndoneziyaAyiislan" + + "diffaaAfaan XaaliyaaniAfaan JapaniiAfaan JavaAfaan GeorgianAfaan Kan" + + "nadaAfaan KoreaAfaan LaatiniAfaan LiituniyaaAfaan LativiyaaAfaan Mac" + + "edooniyaaMalayaalamiffaaAfaan MaratiiMalaayiffaaAfaan MaltesiiAfaan " + + "NepaliiAfaan DachiiAfaan NorwegianAfaan NorweyiiAfaan OccitOromooAfa" + + "an PunjabiiAfaan PolandiiAfaan PorchugaalAfaan RomaniyaaAfaan Rushiy" + + "aaAfaan SinhaleseAfaan SlovakAfaan IslovaniyaaAfaan AlbaniyaaAfaan S" + + "erbiyaAfaan SudaaniiAfaan SuwidiinSuwahiliiAfaan TamiliiAfaan Telugu" + + "Afaan TayiiAfaan TigireeLammii TurkiiAfaan TurkiiAfaan UkreeniiAfaan" + + " UrduAfaan UzbekAfaan VeetinamAfaan XhosaChineseAfaan ZuuluAfaan Fil" + + "ippiniiAfaan KilingonAfaan Portugali (Braazil)Afaan Protuguese", + []uint16{ // 605 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0017, 0x0017, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0031, 0x0031, 0x0040, 0x004f, + 0x004f, 0x004f, 0x0061, 0x0061, 0x0061, 0x006f, 0x007c, 0x007c, + 0x007c, 0x007c, 0x007c, 0x0087, 0x0087, 0x0087, 0x0092, 0x00a1, + 0x00af, 0x00af, 0x00af, 0x00af, 0x00bc, 0x00c4, 0x00d4, 0x00e0, + 0x00ef, 0x00fb, 0x0107, 0x0107, 0x0116, 0x0116, 0x0123, 0x0134, + 0x0145, 0x0154, 0x0160, 0x016e, 0x017b, 0x0189, 0x0189, 0x0189, + 0x0195, 0x01a1, 0x01a1, 0x01af, 0x01af, 0x01bd, 0x01bd, 0x01bd, + // Entry 40 - 7F + 0x01c8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01d8, 0x01e6, + 0x01f6, 0x01f6, 0x0203, 0x020d, 0x021b, 0x021b, 0x021b, 0x021b, + 0x021b, 0x021b, 0x021b, 0x0228, 0x0233, 0x0233, 0x0233, 0x0233, + 0x0233, 0x0233, 0x0233, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0250, 0x0250, 0x025f, 0x025f, 0x025f, 0x025f, 0x0271, + 0x0280, 0x0280, 0x028d, 0x0298, 0x02a6, 0x02a6, 0x02a6, 0x02a6, + 0x02b3, 0x02b3, 0x02bf, 0x02ce, 0x02dc, 0x02dc, 0x02dc, 0x02dc, + 0x02e7, 0x02e7, 0x02ed, 0x02ed, 0x02ed, 0x02fb, 0x02fb, 0x0309, + // Entry 80 - BF + 0x0309, 0x0319, 0x0319, 0x0319, 0x0319, 0x0328, 0x0336, 0x0336, + 0x0336, 0x0336, 0x0336, 0x0336, 0x0336, 0x0345, 0x0351, 0x0362, + 0x0362, 0x0362, 0x0362, 0x0371, 0x037e, 0x037e, 0x037e, 0x038c, + 0x039a, 0x03a3, 0x03b0, 0x03bc, 0x03bc, 0x03c7, 0x03d4, 0x03e1, + 0x03e1, 0x03e1, 0x03ed, 0x03ed, 0x03ed, 0x03ed, 0x03ed, 0x03fb, + 0x0405, 0x0410, 0x0410, 0x041e, 0x041e, 0x041e, 0x041e, 0x0429, + 0x0429, 0x0429, 0x0429, 0x0430, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + // Entry C0 - FF + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + // Entry 100 - 13F + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, + 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x043b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + // Entry 140 - 17F + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + // Entry 180 - 1BF + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + // Entry 1C0 - 1FF + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + // Entry 200 - 23F + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, 0x044b, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + // Entry 240 - 27F + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, 0x0459, + 0x0459, 0x0459, 0x0459, 0x0472, 0x0482, + }, + }, + { // or + "ଅଫାରà­à¬†à¬¬à­à¬–ାଜିଆନà­à¬…ବେସà­à¬¤à¬¨à¬†à¬«à­à¬°à¬¿à¬•à¬¾à¬¨à¬¸à­à¬…କନà­à¬†à¬®à¬¹à¬¾à¬°à¬•à¬¿à¬†à¬°à­à¬—ୋନୀଆରବିକà­à¬†à¬¸à¬¾à¬®à­€à¬†à¬­à¬¾à¬°à¬¿à¬•à­à¬†à­Ÿà¬®à¬¾" + + "ରାଆଜେରବାଇଜାନିବଶଖିରà­à¬¬à­‡à¬²à¬¾à¬°à­à¬·à¬¿à¬†à¬¨à­à¬¬à­à¬²à¬—େରିଆନà­à¬¬à¬¿à¬¸à¬²à¬¾à¬®à¬¾à¬¬à¬¾à¬®à­à¬¬à¬¾à¬°à¬¾à¬¬à¬™à­à¬—ାଳୀତିବେ" + + "ତାନà­à¬¬à­à¬°à­‡à¬Ÿà¬¨à­à¬•à¬¾à¬Ÿà¬²à¬¾à¬¨à­à¬•à¬¾à¬Ÿà¬¾à¬²à¬¾à¬¨à­à¬šà­‡à¬šà¬¨à­à¬šà¬¾à¬®à­‹à¬°à­‹à¬•à­‹à¬°à­à¬¸à¬¿à¬•à¬¾à¬¨à­à¬•à­à¬°à­€à¬šà­‡à¬•à­à¬šà¬°à­à¬šà­à¬š ସà­à¬²à¬¾" + + "ଭିକà­à¬šà­à¬­à¬¾à¬¶à­à­±à­‡à¬²à­à¬¸à¬¡à¬¾à¬¨à­à¬¨à¬¿à¬¸à­à¬œà¬°à­à¬®à¬¾à¬¨à­à¬¡à¬¿à¬­à­‡à¬¹à­€à¬­à­‚ଟାନୀଇୱେଗà­à¬°à­€à¬•à­à¬‡à¬‚ରାଜୀà¬à¬¸à­à¬ªà¬¾à¬°à­‡à¬£à­" + + "ଟୋସà­à¬ªà¬¾à¬¨à¬¿à¬¸à­à¬à¬¸à­à¬¤à­‹à¬¨à¬¿à¬†à¬¨à­à¬¬à¬¾à¬¸à­à¬•à­à­±à¬¿à¬ªà¬°à­à¬¸à¬¿à¬†à¬¨à­à¬«à­à¬²à¬¾à¬¹à¬«à¬¿à¬¨à­à¬¨à¬¿à¬¸à­à¬«à¬¿à¬œà¬¿à¬«à¬¾à¬°à­‹à¬à¬¸à­‡à¬«à­à¬°à­‡à¬žà­" + + "ଚପଶà­à¬šà¬¿à¬® ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¨à­à¬‡à¬°à¬¿à¬¸à­à¬¸à­à¬•à¬Ÿà¬¿à¬¸à­ ଗାà¬à¬²à¬¿à¬•à­à¬—ାଲସିଆନà­à¬—à­à¬†à¬°à¬¾à¬¨à­€à¬—à­à¬œà­à¬°à¬¾à¬Ÿà­€à¬®à¬¾à¬à¬•à­à¬¸" + + "ହୌସାହେବà­à¬°à­à­Ÿà­à¬¹à¬¿à¬¨à­à¬¦à­€à¬¹à¬¿à¬°à¬¿ ମୋଟà­à¬•à­à¬°à­‹à¬†à¬Ÿà¬¿à¬†à¬¨à­à¬¹à­ˆà¬¤à¬¾à­Ÿà¬¿à¬¨à­à¬¹à¬™à­à¬—େରିଆନà­à¬†à¬°à­à¬®à­‡à¬¨à¬¿à¬†à¬¨à­à¬¹" + + "େରେରୋଇରà­à¬£à­à¬Ÿà¬²à¬¿à¬™à­à¬—à­à¬†à¬‡à¬£à­à¬¡à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­à¬‡à¬°à­à¬£à­à¬Ÿà¬°à¬²à¬¿à¬™à­à¬—à­à¬‡à¬‡à¬—à­à¬¬à­‹à¬¸à¬¿à¬šà­à¬†à¬¨à­ ୟୀଇନà­à¬ªà¬¿à­Ÿà¬¾" + + "କà­à¬‡à¬¡à­‹à¬†à¬‡à¬¸à¬²à¬¾à¬£à­à¬¡à¬¿à¬•à­à¬‡à¬Ÿà¬¾à¬²à¬¿à¬†à¬¨à­à¬‡à¬¨à¬•à­€à¬Ÿà­à¬¤à­à¬œà¬¾à¬ªà¬¾à¬¨à­€à¬œà­à¬œà¬¾à¬­à¬¾à¬¨à­€à¬œà­à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­à¬•à¬™à­à¬—ୋକୀକà­à­Ÿ" + + "à­à¬•à­à­±à¬¾à¬¨à­à­Ÿà¬¾à¬®à­à¬•à¬¾à¬œà¬¾à¬•à­à¬—à­à¬°à­€à¬¨à¬²à¬¾à¬£à­à¬¡à¬¿à¬•à­à¬–à­à¬®à­‡à¬°à­à¬•à¬¨à­à¬¨à¬¡à¬•à­‹à¬°à¬¿à¬†à¬¨à­à¬•à¬¨à­à¬°à­€à¬•à¬¾à¬¶à­à¬®à¬¿à¬°à­€à¬•à­à¬°à­à¬¦" + + "à­à¬¦à¬¿à¬¶à­à¬•à­‹à¬®à¬¿à¬•à­‹à¬°à­à¬¨à¬¿à¬¸à­à¬•à¬¿à¬°à¬—ିଜà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­à¬²à¬•à­à¬¸à­‡à¬®à¬¬à¬°à­à¬—ିସà­à¬—ନà­à¬¦à¬¾à¬²à¬¿à¬®à­à¬¬à­à¬°à­à¬—ିସà­à¬²à¬¿à¬™à­à¬—ା" + + "ଲାଲାଓଲିଥà­à¬†à¬¨à¬¿à¬†à¬¨à­à¬²à­à­Ÿà­à¬¬à¬¾-କାଟାଙà­à¬—ାଲାଟଭିଆନà­à¬®à¬¾à¬²à¬¾à¬—ାସୀମାରà­à¬¶à¬¾à¬²à­€à¬œà­à¬®à¬¾à¬“ରୀମାକଡୋ" + + "ନିଆନà­à¬®à¬¾à¬²à¬¾à­Ÿà¬²à¬®à­à¬®à¬™à­à¬—ୋଲିଆନà­à¬®à¬°à¬¾à¬ à­€à¬®à¬¾à¬²à­Ÿà¬®à¬¾à¬²à¬Ÿà­€à¬œà­à¬¬à¬°à­à¬®à­€à¬œà­à¬¨à¬¾à¬‰à¬°à­à¬‰à¬¤à­à¬¤à¬° ନେଡବେଲେନେ" + + "ପାଳୀଡୋଙà­à¬—ାଡଚà­à¬¨à¬°à­±à­‡à¬œà¬¿à¬†à¬¨à­ ନିୟୋରà­à¬¸à­à¬•à¬¨à¬°à­±à­‡à¬œà¬¿à¬†à¬¨à­ ବୋକମଲà­à¬¦à¬•à­à¬·à¬¿à¬£ ନେଡବେଲେନାଭା" + + "ଜୋନିୟାଞà­à¬œà¬“ସିଟାନà­à¬“ଜିୱାଓରୋମୋଓଡ଼ିଆଓସେଟିକà­à¬ªà¬žà­à¬œà¬¾à¬¬à­€à¬ªà¬¾à¬²à¬¿à¬ªà­‹à¬²à¬¿à¬¶à­à¬ªà¬¾à¬¸à­à¬¤à­‹à¬ªà¬°à­à¬¤à­" + + "ତà­à¬—à­à¬°à­€à¬œà­à¬•à­à­±à­‡à¬šà­à¬†à¬°à­‡à¬¹à­‡à¬Ÿà­‹-ରୋମାନà­à¬¸à¬°à­à¬£à­à¬¡à¬¿à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¨à­à¬°à¬·à¬¿à¬†à¬¨à­à¬•à¬¿à¬¨à­à­Ÿà¬¾à¬°à­±à¬¾à¬£à­à¬¡à¬¾à¬¸à¬‚ସ" + + "à­à¬•à­ƒà¬¤à¬¸à¬°à­à¬¦à¬¿à¬¨à¬¿à¬†à¬¨à­à¬¸à¬¿à¬¨à­à¬§à­€à¬‰à¬¤à­à¬¤à¬° ସାମିସାଙà­à¬—ୋସିଂହଳସà­à¬²à­‹à¬­à¬¾à¬•à­à¬¸à­à¬²à­‹à¬­à­‡à¬¨à¬¿à¬†à¬¨à­à¬¸à¬¾à¬®à­‹à¬†à¬¨" + + "à­à¬¶à­‹à¬¨à¬¾à¬¸à­‹à¬®à¬¾à¬²à¬¿à¬†à¬†à¬²à¬¬à¬¾à¬¨à¬¿à¬†à¬¨à­à¬¸à¬°à­à¬¬à¬¿à¬†à¬¨à­à¬¸à­à¬¬à¬¾à¬¤à­€à¬¸à­‡à¬¸à­‹à¬¥à­‹à¬¸à­à¬¦à¬¾à¬¨à­€à¬œà­à¬¸à­à­±à­‡à¬¡à¬¿à¬¸à­à¬¸à­à­±à¬¾à¬¹à¬¿à¬²à­à¬¤" + + "ାମିଲà­à¬¤à­‡à¬²à­à¬—à­à¬¤à¬¾à¬œà¬¿à¬•à­à¬¥à¬¾à¬‡à¬Ÿà­à¬°à¬¿à¬—ିନିଆତà­à¬°à­à¬•à¬®à­‡à¬¨à­à¬¸à­‡à¬¸à­à¬¬à¬¾à¬¨à¬¾à¬Ÿà­‹à¬™à­à¬—ାତà­à¬°à­à¬•à¬¿à¬¸à­à¬¸à­‹à¬‚ଗାତ" + + "ାତାରà­à¬¤à¬¾à¬¹à¬¿à¬¤à¬¿à¬†à¬¨à­à­Ÿà­à¬˜à­à¬°à­à­Ÿà­à¬•à­à¬°à¬¾à¬¨à¬¿à¬†à¬¨à­à¬‰à¬°à­à¬¦à­à¬¦à­à¬‰à¬œà¬¬à­‡à¬•à­à¬­à­‡à¬£à­à¬¡à¬¾à¬­à¬¿à¬à¬¤à¬¨à¬¾à¬®à¬¿à¬œà­à¬¬à­‹à¬²à¬¾à¬ªà­" + + "କୱାଲà­à¬¨à­à­±à­‹à¬²à¬«à­à¬–ୋସାୟିଡିସà­à­Ÿà­‹à¬°à­à¬¬à¬¾à¬œà­à¬†à¬™à­à¬—ଚାଇନୀଜà­à¬œà­à¬²à­à¬†à¬šà¬¾à¬‡à¬¨à­€à¬œà­à¬†à¬•à­‹à¬²à¬¿à¬†à¬¦à¬¾à¬™à­à¬—େମ" + + "à­à¬…ଦà­à­Ÿà¬˜à­‡à¬†à¬«à­à¬°à¬¿à¬¹à¬¿à¬²à¬¿à¬†à¬‡à¬¨à­à¬†à¬•à¬¾à¬¡à¬¿à¬†à¬¨à­à¬†à¬²à­‡à¬‡à¬Ÿà­à¬¦à¬•à­à¬·à¬¿à¬£ ଆଲà­à¬Ÿà¬¾à¬‡à¬ªà­à¬°à­à¬£à¬¾ ଇà¬à¬°à¬¾à¬œà­€à¬…à¬à¬—ୀକା" + + "ଆରାମାଇକà­à¬†à¬°à¬¾à¬‰à¬•à¬¾à¬¨à¬¿à¬†à¬¨à­à¬†à¬°à¬¾à¬ªà¬¾à¬¹à­‹à¬†à¬°à­±à¬•à¬†à¬·à­à¬Ÿà­à¬°à¬¿à¬†à¬¨à­à¬†à­±à¬¾à¬§à¬¿à¬¬à¬¾à¬²à­à¬šà¬¿à¬¬à¬¾à¬²à¬¿à¬¨à­€à¬œà­à¬¬à¬¾à¬¸à¬¾à¬¬à­‡à¬œ" + + "ାବେମà­à¬¬à¬¾à¬­à­‹à¬œà¬ªà­à¬°à­€à¬¬à¬¿à¬•à­‹à¬²à­à¬¬à¬¿à¬¨à¬¿à¬¬à¬¿à¬•à­à¬¸à¬¿à¬•à¬¾à¬¬à­à¬°à¬¾à¬œà­à¬¬à­à¬°à¬¿à¬†à¬Ÿà­à¬¬à­à¬—ୀନୀଜà­à¬¬à­à¬²à¬¿à¬¨à­à¬•à¬¾à¬¡à­‹à¬•à¬¾à¬°" + + "ିବà­à¬†à¬¤à­à¬¸à¬®à­à¬¸à­€à¬¬à­à¬†à¬¨à­‹à¬šà¬¿à¬¬à­à¬šà¬¾à¬›à¬—ତାଇଚà­à¬•à­€à¬¸à­‡à¬®à¬¾à¬°à­€à¬šà¬¿à¬¨à­à¬•à­ ଜାରଗାà¬à¬¨à­à¬šà­‹à¬Ÿà­±à¬¾à¬šà¬¿à¬ªà­‡à­±à¬¾à¬¨à­à¬š" + + "େରୋକୀଚେଚେନାକପà­à¬Ÿà¬¿à¬•à­à¬•à­à¬°à­€à¬®à¬¿à¬¨à­ ତà­à¬°à­à¬•à­€à¬¸à­à¬•à¬¾à¬¶à­à¬¬à¬¿à¬†à¬¨à­à¬¡à¬¾à¬•à­‹à¬Ÿà¬¾à¬¡à¬¾à¬°à¬¾à¬—à­à­±à¬¾à¬¡à­‡à¬²à¬¾à­±à­‡à¬°à­" + + "ସà­à¬²à­‡à¬­à­à¬¡à­‹à¬—à­à¬°à¬¿à¬¬à­à¬¦à¬¿à¬™à­à¬•à¬¾à¬¡à­‹à¬—à­à¬°à­€à¬¨à¬¿à¬šà¬³à¬¾ ସରà­à¬¬à¬¿à¬†à¬¨à­à¬¡à­à¬†à¬¨à¬¾à¬®à¬§à­à­Ÿ ପରà­à¬¤à­à¬¤à­à¬—ାଲୀଡà­à¬†à¬²à¬¾" + + "à¬à¬«à¬¿à¬•à­à¬ªà­à¬°à¬¾à¬šà­€à¬¨à­ ମିଶିରିà¬à¬•à¬¾à¬œà­à¬•à­à¬à¬²à¬¾à¬®à¬¾à¬‡à¬Ÿà­à¬®à¬§à­à­Ÿ ଇà¬à¬°à¬¾à¬œà­€à¬‡à­±à­‹à¬£à­à¬¡à­‹à¬«à¬¾à¬™à­à¬—ଫିଲିପିନୋ" + + "ଫନà­à¬®à¬§à­à­Ÿ ଫà­à¬°à­‡à¬žà­à¬šà¬ªà­à¬°à­à¬£à¬¾ ଫà­à¬°à­‡à¬žà­à¬šà¬‰à¬¤à­à¬¤à¬° ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¾à¬¨à­à¬ªà­‚ରà­à¬¬ ଫà­à¬°à¬¿à¬¸à¬¿à­Ÿà¬¾à¬¨à­à¬«à­à¬°à¬¿à­Ÿ" + + "à­à¬²à­€à­Ÿà¬¾à¬¨à­à¬—ାଗାୟୋଗବାୟାଗୀଜà­à¬œà¬¿à¬¬à­à¬°à¬¾à¬Ÿà­€à¬œà­à¬®à¬¿à¬¡à¬¿à¬²à­ ହାଇ ଜରà­à¬®à¬¾à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ହାଇ ଜରà­à¬®à¬¾" + + "ନà­à¬—ୋଣà­à¬¡à¬¿à¬—ୋରୋଣà­à¬Ÿà¬¾à¬²à­‹à¬—ୋଥିକà­à¬—à­à¬°à­‡à¬¬à­‹à¬ªà­à¬°à¬¾à¬šà­€à¬¨à­ à­Ÿà­à¬¨à¬¾à¬¨à­€à¬¸à­à¬¬à¬¿à¬¸à­ ଜରà­à¬®à¬¾à¬¨à­à¬¸à­à¬¬à¬¿à¬šà­ " + + "ଇନà­à¬¹à¬¾à¬‡à¬¡à¬¾à¬¹à¬¾à­±à¬¾à¬‡à¬¨à­à¬¹à¬¿à¬²à¬¿à¬—ୈନନà­à¬¹à¬¿à¬¤à­€à¬¤à­‡à¬¹à¬à¬™à­à¬—ଉପର ସରà­à¬¬à¬¿à¬†à¬¨à­à¬¹à­à¬ªà¬¾à¬‡à¬¬à¬¾à¬¨à­à¬‡à¬²à­‹à¬•à­‹à¬‡à¬à¬™à­à¬—" + + "à­à¬¶à­à¬²à­‹à¬œà¬¬à¬¾à¬¨à­à¬œà­à¬¡à­‡à¬“-ପରà­à¬¸à¬¿à¬†à¬¨à­à¬œà­à¬¡à­‡à¬“-ଆରବୀକà­à¬•à¬¾à¬°à¬¾-କଲà­à¬ªà¬•à­à¬•à¬¬à¬¾à¬‡à¬²à­à¬•à¬šà¬¿à¬¨à­à¬œà­à¬œà­à¬•à¬®à­à¬¬" + + "ାକାୱିକାବାରà­à¬¡à¬¿à¬†à¬¨à­à¬¤à­à­Ÿà¬¾à¬ªà­à¬•à­‹à¬°à­‹à¬–ାସୀଖୋତାନୀଜà­à¬•à¬¿à¬®à­à¬¬à­à¬£à­à¬¡à­à¬•à­‹à¬¨à¬•à¬¾à¬¨à­€à¬•à­‹à¬¸à¬°à­ˆà¬¨à­à¬•à­ˆà¬ªà­‡" + + "ଲେକରାଚୟ-ବଲà­à¬•à¬¾à¬°à¬•à¬¾à¬°à­‡à¬²à¬¿à­Ÿà¬¾à¬¨à­à¬•à­à¬°à­à¬–କà­à¬®à­€à¬•à­à¬•à­à¬¤à­‡à¬¨à¬¾à¬‰à¬²à¬¾à¬¦à¬¿à¬¨à­‹à¬²à¬¾à¬¹à¬¾à¬£à­à¬¡à¬¾à¬²à¬¾à¬®à­à¬¬à¬¾à¬²à­‡à¬œà¬—" + + "ିୟାନà­à¬®à¬™à­à¬—ୋଲୋଜିଲà­à¬¬à¬¾-ଲà­à¬²à­à¬†à¬²à­à¬‡à¬¸à­‡à¬¨à­‹à¬²à­à¬£à­à¬¡à¬¾à¬²à­à¬“ଲà­à¬¸à¬¾à¬‰à¬®à¬¾à¬¦à­à¬°à­€à¬¸à­à¬®à¬¾à¬—ାହୀମୈଥିଳୀମ" + + "କାସରà­à¬®à¬¾à¬£à­à¬¡à¬¿à¬™à­à¬—ୋମାସାଇମୋକà­à¬·à¬®à¬¨à­à¬¦à¬¾à¬°à¬®à­‡à¬£à­à¬¡à­‡à¬®à¬§à­à­Ÿ ଇରିଶà­à¬®à¬¿à¬•à¬®à­Œà¬•à­à¬®à¬¿à¬¨à¬¾à¬™à­à¬—ାବାଉମ" + + "ାଞà­à¬šà­à¬®à¬£à¬¿à¬ªà­à¬°à­€à¬®à­‹à¬¹à­Œà¬•à¬®à­‹à¬¸à¬¿à¬¬à¬¿à¬¬à¬¿à¬§ ଭାଷାମାନକà­à¬°à­€à¬•à­à¬®à¬¿à¬°à¬¾à¬£à­à¬¡à¬¿à¬œà­à¬®à¬¾à¬°à­±à¬¾à¬°à­€à¬à¬°à­à¬œà­Ÿà¬¾à¬¨à­€à¬ª" + + "ୋଲିଟାନà­à¬²à­‹ ଜରà­à¬®à¬¾à¬¨à­à¬¨à­‡à­±à¬¾à¬°à­€à¬¨à­€à­Ÿà¬¾à¬¸à­à¬¨à¬¿à­Ÿà­à¬†à¬¨à­à¬¨à­‹à¬—ାଇପà­à¬°à­à¬£à¬¾ ନରà­à¬¸à¬à¬¨à­à¬•à­‹à¬‰à¬¤à­à¬¤à¬°à­€ ସୋ" + + "ଥୋପାରମà­à¬ªà¬°à¬¿à¬• ନେୱାରୀନà­à­Ÿà¬¾à¬®à­±à­‡à¬œà­€à¬¨à­à­Ÿà¬¾à¬¨à¬•à­‹à¬²à­à¬¨à­à­Ÿà¬¾à¬°à­‹à¬žà­à¬œà¬¿à¬®à¬¾à­±à­Œà¬¸à­‡à¬œà­à¬“ଟà­à¬Ÿà­‹à¬®à¬¨à­ ତà­à¬°" + + "à­à¬•à¬¿à¬¸à­à¬ªà¬¾à¬™à­à¬—ାସିନିଆନà­à¬ªà¬¾à¬¹à­à¬²à¬¾à¬­à¬¿à¬ªà¬¾à¬®à­à¬ªà¬¾à¬™à­à¬—ାପାପିୟାମିଣà­à¬Ÿà­‹à¬ªà¬¾à¬²à¬¾à¬‰à¬†à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ପରà­" + + "ସିଆନà­à¬«à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­à¬ªà­‹à¬¹à¬ªà¬¿à¬à¬¨à­à¬ªà­à¬°à­à¬£à¬¾ ପà­à¬°à­‡à¬­à­‡à¬¨à­‡à¬¸à¬¿à¬†à¬²à­à¬°à¬¾à¬œà¬¸à­à¬¥à¬¾à¬¨à­€à¬°à¬¾à¬ªà¬¾à¬¨à­à¬‡à¬°à¬¾à¬°à­‹à¬¤à­‹à¬™à­" + + "ଗନà­à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¨à­à¬¸à¬£à­à¬¡à¬¾à­±à­‡à­Ÿà¬¾à¬•à­à¬Ÿà­à¬¸à¬¾à¬®à­Œà¬°à¬¿à¬Ÿà¬¨à­ ଆରମାଇକà­à¬¸à¬¾à¬¸à¬¾à¬•à­à¬¸à¬¾à¬¨à­à¬¤à¬¾à¬³à¬¿à¬¸à¬¿à¬¶" + + "ିଲିଆନà­à¬¸à­à¬•à¬Ÿà¬¸à­à¬¸à­‡à¬²à­à¬•à¬ªà­à¬ªà­à¬°à­à¬£à¬¾ ଇରିଶà­à¬¶à¬¾à¬¨à­à¬¸à¬¿à¬¦à¬¾à¬®à­‹à¬¦à¬•à­à¬·à¬¿à¬£ ସାମିଲà­à¬²à­‡ ସାମିଇନାରୀ" + + " ସାମିସà­à¬•à­‹à¬²à­à¬Ÿ ସାମୀସୋନିଙà­à¬•à­‡à¬¸à­‹à¬—ଡିà¬à¬¨à­à¬¶à¬¾à¬°à¬¾à¬¨à¬¾ ଟୋଙà­à¬—ୋଶେରେରà­à¬¸à­à¬•à­à¬®à¬¾à¬¶à­à¬¶à­à¬¸à­à¬®à­‡à¬°à¬¿" + + "ଆନà­à¬•à­à¬²à¬¾à¬¸à¬¿à¬•à¬¾à¬²à­ ସିରିକà­à¬¸à¬¿à¬°à¬¿à¬•à­à¬¤à¬¿à¬®à¬¨à­‡à¬¤à­‡à¬°à­‡à¬¨à­‹à¬¤à­‡à¬¤à­à¬®à­à¬Ÿà¬¾à¬‡à¬—à­à¬°à­‡à¬¤à­€à¬­à­à¬Ÿà­‹à¬•à­‡à¬²à¬¾à¬‰à¬•à­à¬²à¬¿à¬™" + + "à­à¬—ନà­à¬¤à­à¬²à¬¿à¬™à­à¬—ିଟà­à¬¤à¬¾à¬®à¬¾à¬¶à­‡à¬•à­à¬¨à­à­Ÿà¬¾à¬¸à¬¾ ଟୋଙà­à¬—ୋଟୋକୠପିସିନà­à¬¤à¬¿à¬¸à¬¿à¬®à¬¿à¬¸à¬¿à¬†à¬¨à­à¬Ÿà­à¬®à­à¬¬à­à¬•à¬¾à¬¤" + + "à­à¬­à¬¾à¬²à­à¬¤à­à¬­à¬¿à¬¨à¬¿à¬†à¬¨à­à¬‰à¬¦à¬®à­‚ରà­à¬¤à­à¬¤à­Ÿà­à¬—ୋରଟିକà­à¬‰à¬®à­à¬¬à­à¬£à­à¬¡à­à¬®à­‚ଳଭାଇଭୋଟିକà­à­±à¬¾à¬²à¬®à­‹à­±à¬¾à¬°à­ˆà­±à¬¾à¬¸à­‹" + + "କାଲà­à¬®à­€à¬•à­à­Ÿà¬¾à¬“ୟାପୀସà­à¬œà¬¾à¬ªà­‹à¬Ÿà­‡à¬•à­à¬¬à­à¬²à¬¿à¬¸à¬¿à¬®à­à¬¬à¬²à¬¸à­à¬œà­‡à¬¨à¬¾à¬—ାଜà­à¬¨à­€à¬•à­Œà¬£à¬¸à¬¿ ଲିଙà­à¬—à­à¬‡à¬·à­à¬Ÿ ସା" + + "ମଗà­à¬°à­€ ନାହିà¬à¬œà¬¾à¬œà¬¾à¬…ଷà­à¬Ÿà­à¬°à¬¿à¬†à¬¨à­ ଜରà­à¬®à¬¾à¬¨à¬¸à­à¬¬à¬¿à¬¸à­ ହାଇ ଜରà­à¬®à¬¾à¬¨à­à¬…ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬†à¬¨à­ ଇà¬à¬°" + + "ାଜୀକାନାଡିଆନୠଇà¬à¬°à¬¾à¬œà­€à¬¬à­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଇà¬à¬°à¬¾à¬œà­€à­Ÿà­.à¬à¬¸à­. ଇà¬à¬°à¬¾à¬œà­€à¬²à¬¾à¬Ÿà¬¿à¬¨à­ ଆମେରିକାନୠସ" + + "à­à¬ªà¬¾à¬¨à¬¿à¬¶à­à¬²à­‡à¬¬à­‡à¬°à¬¿à¬†à¬¨à­ ସà­à¬ªà¬¾à¬¨à¬¿à¬¶à­à¬•à¬¾à¬¨à¬¾à¬¡à¬¿à¬†à¬¨à­ ଫà­à¬°à­‡à¬žà­à¬šà¬¸à­à¬¬à¬¿à¬¸à­ ଫà­à¬°à­‡à¬žà­à¬šà­à¬«à­à¬²à­‡à¬®à¬¿à¬¶à­à¬¬" + + "à­à¬°à¬¾à¬œà¬¿à¬²à¬¿à¬†à¬¨à­ ପରà­à¬¤à­à¬¤à­à¬—ୀଜà­à¬²à­‡à¬¬à­‡à¬°à¬¿à¬†à¬¨à­ ପରà­à¬¤à­à¬¤à­à¬—ୀଜà­à¬®à­‹à¬²à¬¡à­‹à¬­à¬¿à¬†à¬¨à­à¬¸à¬°à­à¬¬à­‹-କà­à¬°à­‹à¬†à¬Ÿà¬¿" + + "ଆନà­à¬¸à¬°à¬³à¬¿à¬•à¬°à¬£ ଚାଇନୀଜà­à¬ªà¬¾à¬°à¬®à­à¬ªà¬°à¬¿à¬• ଚାଇନୀଜà­", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x002d, 0x0042, 0x0060, 0x006c, 0x0081, 0x0096, + 0x00a8, 0x00b7, 0x00cc, 0x00de, 0x00ff, 0x0111, 0x0132, 0x0150, + 0x0165, 0x017d, 0x0192, 0x01aa, 0x01bf, 0x01d4, 0x01ec, 0x01fb, + 0x020d, 0x022b, 0x0237, 0x0243, 0x026e, 0x0280, 0x028f, 0x02a7, + 0x02bc, 0x02ce, 0x02e0, 0x02e9, 0x02fb, 0x030d, 0x032e, 0x0346, + 0x0364, 0x037c, 0x0394, 0x03a3, 0x03bb, 0x03c7, 0x03dc, 0x03f1, + 0x041f, 0x042e, 0x0459, 0x0471, 0x0486, 0x049e, 0x04b0, 0x04bc, + 0x04d4, 0x04e6, 0x04ff, 0x051d, 0x0535, 0x0553, 0x0571, 0x0583, + // Entry 40 - 7F + 0x05aa, 0x05ce, 0x05f8, 0x0607, 0x0623, 0x063e, 0x0647, 0x0668, + 0x0680, 0x0698, 0x06b0, 0x06c8, 0x06e0, 0x06ef, 0x0701, 0x071f, + 0x0731, 0x0758, 0x076a, 0x0779, 0x078e, 0x079d, 0x07b5, 0x07d3, + 0x07df, 0x07f7, 0x080c, 0x081e, 0x0845, 0x0854, 0x0878, 0x0890, + 0x0899, 0x08b7, 0x08e2, 0x08fa, 0x0912, 0x0930, 0x093f, 0x095d, + 0x0975, 0x0993, 0x09a2, 0x09ae, 0x09c3, 0x09d8, 0x09e7, 0x0a0c, + 0x0a1e, 0x0a30, 0x0a39, 0x0a70, 0x0a9e, 0x0ac6, 0x0ad8, 0x0aed, + 0x0b02, 0x0b11, 0x0b20, 0x0b2f, 0x0b44, 0x0b59, 0x0b65, 0x0b77, + // Entry 80 - BF + 0x0b89, 0x0bb0, 0x0bc5, 0x0bed, 0x0bff, 0x0c1a, 0x0c2c, 0x0c53, + 0x0c68, 0x0c86, 0x0c98, 0x0cb4, 0x0cc6, 0x0cd5, 0x0ced, 0x0d0e, + 0x0d23, 0x0d2f, 0x0d44, 0x0d5f, 0x0d77, 0x0d89, 0x0d9b, 0x0db3, + 0x0dcb, 0x0de3, 0x0df5, 0x0e07, 0x0e19, 0x0e22, 0x0e3d, 0x0e58, + 0x0e70, 0x0e82, 0x0e9a, 0x0ea9, 0x0ebb, 0x0ed6, 0x0ee8, 0x0f09, + 0x0f1e, 0x0f30, 0x0f42, 0x0f60, 0x0f75, 0x0f87, 0x0f96, 0x0fa2, + 0x0fb4, 0x0fc6, 0x0fd8, 0x0fed, 0x0ff9, 0x1011, 0x1020, 0x103b, + 0x104d, 0x104d, 0x1068, 0x1068, 0x1074, 0x108c, 0x108c, 0x109e, + // Entry C0 - FF + 0x109e, 0x10c3, 0x10e8, 0x10fa, 0x1112, 0x1133, 0x1133, 0x1148, + 0x1148, 0x1154, 0x1154, 0x1154, 0x1154, 0x1154, 0x1172, 0x1172, + 0x1181, 0x1193, 0x11ab, 0x11ab, 0x11b7, 0x11b7, 0x11b7, 0x11b7, + 0x11c3, 0x11d5, 0x11d5, 0x11d5, 0x11d5, 0x11d5, 0x11d5, 0x11ea, + 0x11fc, 0x1208, 0x1208, 0x1208, 0x1220, 0x1220, 0x1220, 0x1232, + 0x1232, 0x1232, 0x1232, 0x1247, 0x125f, 0x125f, 0x1271, 0x1271, + 0x127d, 0x128f, 0x128f, 0x12a1, 0x12b6, 0x12b6, 0x12c8, 0x12d7, + 0x12e9, 0x12f5, 0x1320, 0x132f, 0x1347, 0x1359, 0x136b, 0x136b, + // Entry 100 - 13F + 0x1380, 0x1380, 0x13b1, 0x13cc, 0x13de, 0x13f6, 0x13f6, 0x140e, + 0x1420, 0x1438, 0x144a, 0x144a, 0x145c, 0x1484, 0x1484, 0x1493, + 0x14c1, 0x14c1, 0x14d0, 0x14d0, 0x14d0, 0x14df, 0x14df, 0x150a, + 0x151f, 0x1537, 0x1556, 0x1556, 0x156b, 0x156b, 0x157a, 0x1592, + 0x1592, 0x159b, 0x159b, 0x15bd, 0x15e5, 0x15e5, 0x1613, 0x1641, + 0x1665, 0x166b, 0x166b, 0x166b, 0x1677, 0x1686, 0x1686, 0x1692, + 0x16b0, 0x16b0, 0x16e2, 0x1714, 0x1714, 0x1726, 0x1744, 0x1756, + 0x1768, 0x1793, 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17d7, 0x17e6, + // Entry 140 - 17F + 0x17e6, 0x17fb, 0x17fb, 0x1816, 0x1828, 0x1837, 0x1859, 0x1859, + 0x1865, 0x1874, 0x1874, 0x1883, 0x189b, 0x189b, 0x189b, 0x18b0, + 0x18b0, 0x18b0, 0x18d8, 0x18fa, 0x18fa, 0x1919, 0x192b, 0x193a, + 0x1946, 0x1955, 0x1961, 0x1982, 0x1982, 0x1994, 0x1994, 0x1994, + 0x1994, 0x19a0, 0x19a0, 0x19ac, 0x19c4, 0x19c4, 0x19c4, 0x19c4, + 0x19c4, 0x19c4, 0x19e2, 0x19e2, 0x19f7, 0x1a0c, 0x1a1e, 0x1a40, + 0x1a40, 0x1a40, 0x1a5e, 0x1a6d, 0x1a6d, 0x1a6d, 0x1a6d, 0x1a7f, + 0x1a94, 0x1aa6, 0x1aa6, 0x1abe, 0x1ad0, 0x1aeb, 0x1aeb, 0x1aeb, + // Entry 180 - 1BF + 0x1aeb, 0x1aeb, 0x1aeb, 0x1afa, 0x1b06, 0x1b06, 0x1b06, 0x1b22, + 0x1b37, 0x1b49, 0x1b52, 0x1b61, 0x1b61, 0x1b61, 0x1b61, 0x1b79, + 0x1b79, 0x1b8b, 0x1b9d, 0x1baf, 0x1bcd, 0x1bdc, 0x1bdc, 0x1beb, + 0x1bfd, 0x1c0f, 0x1c0f, 0x1c0f, 0x1c2b, 0x1c2b, 0x1c2b, 0x1c40, + 0x1c61, 0x1c73, 0x1c88, 0x1c97, 0x1ca3, 0x1ca3, 0x1ca3, 0x1cc8, + 0x1cda, 0x1cf8, 0x1d0d, 0x1d0d, 0x1d0d, 0x1d1f, 0x1d1f, 0x1d1f, + 0x1d3d, 0x1d3d, 0x1d59, 0x1d6b, 0x1d7d, 0x1d92, 0x1d92, 0x1d92, + 0x1d92, 0x1da1, 0x1dc0, 0x1dc0, 0x1dcf, 0x1dee, 0x1dee, 0x1e1c, + // Entry 1C0 - 1FF + 0x1e37, 0x1e52, 0x1e64, 0x1e76, 0x1e88, 0x1eb9, 0x1ee0, 0x1ef8, + 0x1f16, 0x1f3a, 0x1f52, 0x1f52, 0x1f52, 0x1f52, 0x1f7d, 0x1f7d, + 0x1f98, 0x1f98, 0x1f98, 0x1fb0, 0x1fb0, 0x1fea, 0x1fea, 0x1fea, + 0x2005, 0x201a, 0x203b, 0x203b, 0x203b, 0x203b, 0x204d, 0x204d, + 0x204d, 0x204d, 0x206b, 0x206b, 0x2080, 0x2092, 0x20c3, 0x20c3, + 0x20d5, 0x20ed, 0x20ed, 0x20ed, 0x20ed, 0x2108, 0x211a, 0x211a, + 0x211a, 0x211a, 0x211a, 0x211a, 0x212f, 0x212f, 0x2151, 0x2151, + 0x2151, 0x215d, 0x215d, 0x216f, 0x216f, 0x216f, 0x218e, 0x21a7, + // Entry 200 - 23F + 0x21c3, 0x21e5, 0x21fd, 0x2215, 0x223a, 0x224c, 0x224c, 0x224c, + 0x225e, 0x226a, 0x2285, 0x2285, 0x22b6, 0x22c8, 0x22c8, 0x22c8, + 0x22d7, 0x22d7, 0x22e9, 0x22fb, 0x2310, 0x231c, 0x2331, 0x2331, + 0x234c, 0x236a, 0x236a, 0x2382, 0x23a7, 0x23c6, 0x23c6, 0x23c6, + 0x23c6, 0x23e7, 0x23e7, 0x23ff, 0x2411, 0x2411, 0x242c, 0x242c, + 0x2447, 0x2462, 0x247d, 0x2486, 0x248f, 0x248f, 0x248f, 0x248f, + 0x248f, 0x24a1, 0x24a1, 0x24a1, 0x24a1, 0x24b0, 0x24bc, 0x24c8, + 0x24c8, 0x24c8, 0x24e0, 0x24e0, 0x24e0, 0x24e9, 0x24fb, 0x24fb, + // Entry 240 - 27F + 0x24fb, 0x24fb, 0x24fb, 0x2513, 0x2537, 0x2537, 0x2549, 0x2549, + 0x2555, 0x25a9, 0x25b5, 0x25b5, 0x25b5, 0x25e6, 0x2618, 0x264f, + 0x267d, 0x26a8, 0x26cc, 0x2713, 0x2747, 0x2747, 0x2747, 0x2778, + 0x27a3, 0x27a3, 0x27bb, 0x27fe, 0x283b, 0x2859, 0x2887, 0x2887, + 0x28b2, 0x28e3, + }, + }, + { // os + "абхазагавеÑтӕафрикаанÑараббагавайрагтӕтӕйрагбашкирагболгайрагбоÑниагката" + + "лайнагцӕцӕйнагчехагчувашагданиагнемыцагбердзейнаганглиÑагеÑперантои" + + "ÑпайнагеÑтойнагбаÑкагперÑайнагфиннагфиджифарерагфранцагирландиагуир" + + "агхорватагвенгериагÑомихагиталиагÑпойнаггуырдзиагкурдаглатинагмӕчъи" + + "дониронпортугалиагуырыÑÑагкитайагадыгейаграгон англиÑагбурÑтагкопта" + + "грагон египтагфилиппинаграгон францаграгон бердзейнагмӕхъӕлонкӕÑгон" + + "бӕлхъӕронхъуымыхъхъаглекъагцигайнагнӕзонгӕ ӕвзагавÑтралиаг немыцагш" + + "вйецариаг немыцагавÑтралиаг англиÑагканадӕйаг англиÑагбритайнаг анг" + + "лиÑагамерикаг англиÑаглатинаг америкаг англиÑагевропӕйаг англиÑагка" + + "надӕйаг францагшвейцариаг францагбразилиаг португалиагевропӕйаг пол" + + "тугалиагӕнцонгонд китайагтрадицион китайаг", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000e, 0x001a, 0x002c, 0x002c, 0x002c, 0x002c, + 0x003a, 0x003a, 0x0048, 0x0048, 0x0058, 0x0068, 0x0068, 0x007a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x0088, 0x009c, 0x00ac, + 0x00ac, 0x00ac, 0x00ac, 0x00b6, 0x00b6, 0x00c4, 0x00c4, 0x00d0, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00f2, 0x0102, 0x0114, 0x0124, + 0x0134, 0x0140, 0x0152, 0x0152, 0x015e, 0x0168, 0x0176, 0x0184, + 0x0184, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, + 0x01a0, 0x01a0, 0x01a0, 0x01b0, 0x01b0, 0x01c2, 0x01d0, 0x01d0, + // Entry 40 - 7F + 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, + 0x01de, 0x01de, 0x01ec, 0x01ec, 0x01fe, 0x01fe, 0x01fe, 0x01fe, + 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x020a, + 0x020a, 0x020a, 0x020a, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, + 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0228, + 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, + 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, + 0x0228, 0x0228, 0x0228, 0x0228, 0x0230, 0x0230, 0x0230, 0x0230, + // Entry 80 - BF + 0x0230, 0x0246, 0x0246, 0x0246, 0x0246, 0x0246, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x0264, 0x0264, 0x0264, 0x0264, 0x0264, + 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, + // Entry C0 - FF + 0x0274, 0x0274, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, + 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, + 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, + 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, + 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, 0x028f, + 0x028f, 0x028f, 0x028f, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + // Entry 100 - 13F + 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, + 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, + 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02c2, + 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02d6, + 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02ef, 0x02ef, 0x02ef, 0x02ef, + 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, + 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, 0x02ef, + 0x02ef, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, + // Entry 140 - 17F + 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, 0x030e, + 0x030e, 0x030e, 0x030e, 0x030e, 0x031e, 0x031e, 0x031e, 0x031e, + 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, 0x031e, + 0x031e, 0x031e, 0x031e, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, + 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, + 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x032a, 0x033c, + 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x0354, + 0x0354, 0x0354, 0x0354, 0x0354, 0x0354, 0x0360, 0x0360, 0x0360, + // Entry 180 - 1BF + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + // Entry 1C0 - 1FF + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + // Entry 200 - 23F + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + // Entry 240 - 27F + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, + 0x0389, 0x0389, 0x0389, 0x0389, 0x0389, 0x03ac, 0x03cf, 0x03f4, + 0x0417, 0x043a, 0x045b, 0x048b, 0x04ae, 0x04ae, 0x04ae, 0x04cf, + 0x04f2, 0x04f2, 0x04f2, 0x051b, 0x0544, 0x0544, 0x0544, 0x0544, + 0x0565, 0x0586, + }, + }, + { // pa + paLangStr, + paLangIdx, + }, + { // pa-Arab + "پنجابی", + []uint16{ // 126 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, + }, + }, + { // pl + plLangStr, + plLangIdx, + }, + { // prg + "prÅ«siskan", + []uint16{ // 469 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 140 - 17F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 180 - 1BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 1C0 - 1FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, + }, + }, + { // ps + "امهاريعربيآساميبÛلاروسيبلغاريبوسنيالمانيیونانيانګلیسيحبشيباسکيÙارسيÙینلن" + + "Ú‰ÙŠÙرانسويعبريهنديارمنيایټالويجاپانیکرديلاتینيملغاسيمقدونيمغوليملایا" + + "هالÛنډيپولنډيپښتوپورتګاليروسيسنسکریټالبانيسویډنیتاجکترکمنيتاتارازبک" + + "يچینيبلوڅي", + []uint16{ // 210 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, + 0x0014, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x002e, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0050, 0x0050, 0x0050, 0x0050, 0x005c, 0x006a, 0x006a, 0x006a, + 0x0072, 0x007c, 0x0086, 0x0086, 0x0094, 0x0094, 0x0094, 0x00a2, + 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00a2, + 0x00aa, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00bc, 0x00bc, + // Entry 40 - 7F + 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00ca, 0x00ca, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, + 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00d6, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00f6, 0x00f6, 0x00f6, 0x0102, + 0x0102, 0x010c, 0x010c, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, + 0x0116, 0x0116, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, + 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0130, + // Entry 80 - BF + 0x0138, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0150, 0x0150, + 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, + 0x015e, 0x015e, 0x015e, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, + 0x0176, 0x0176, 0x0176, 0x0176, 0x017e, 0x017e, 0x017e, 0x018a, + 0x018a, 0x018a, 0x018a, 0x018a, 0x0194, 0x0194, 0x0194, 0x0194, + 0x0194, 0x019e, 0x019e, 0x019e, 0x019e, 0x019e, 0x019e, 0x019e, + 0x019e, 0x019e, 0x019e, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + // Entry C0 - FF + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, 0x01a6, + 0x01a6, 0x01b0, + }, + }, + { // pt + ptLangStr, + ptLangIdx, + }, + { // pt-PT + ptPTLangStr, + ptPTLangIdx, + }, + { // qu + "Afrikaans SimiAmarico SimiArabe SimiAsames SimiAzerbaiyano SimiBaskir Si" + + "miBielorruso SimiBulgaro SimiBangla SimiTibetano SimiBreton SimiBosn" + + "io SimiCatalan SimiCorso SimiCheco SimiGales SimiDanes SimiAleman Si" + + "miDivehi SimiGriego SimiIngles SimiEspañol SimiEstonio SimiEuskera S" + + "imiPersa SimiFulah SimiFines SimiFeroes SimiFrances SimiFrison SimiI" + + "rlandes SimiGaelico Escoces SimiGallego SimiGujarati SimiHausa SimiH" + + "ebreo SimiHindi SimiCroata SimiHaitiano Criollo SimiHungaro SimiArme" + + "nio SimiIndonesio SimiIgbo SimiYi SimiIslandes SimiItaliano SimiInuk" + + "titut SimiJapones SimiGeorgiano SimiKazajo SimiGroenlandes SimiKhmer" + + " SimiKannada SimiCoreano SimiKirghiz SimiLuxemburgues SimiLao SimiLi" + + "tuano SimiLeton SimiMaori SimiMacedonio SimiMalayalam SimiMongol Sim" + + "iMarathi SimiMalayo SimiMaltes SimiNepali SimiNeerlandes SimiNoruego" + + " SimiOccitano SimiOdia SimiPunyabi SimiPolaco SimiPashto SimiPortugu" + + "es SimiRunasimiRomanche SimiRumano SimiRuso SimiKinyarwanda SimiSans" + + "crito SimiSindhi SimiChincha Sami SimiCingales SimiEslovaco SimiEslo" + + "veno SimiAlbanes SimiSerbio SimiSueco SimiSuajili SimiTamil SimiTelu" + + "gu SimiTayiko SimiTailandes SimiTigriña SimiTurcomano SimiSetsuana S" + + "imiTurco SimiTartaro SimiUigur SimiUcraniano SimiUrdu SimiUzbeko Sim" + + "iVietnamita SimiWolof SimiIsixhosa SimiYoruba SimiChino SimiIsizulu " + + "SimiMapuche SimiCheroqui SimiChawpi Kurdo SimiBajo Sorbio SimiFilipi" + + "no SimiAlsaciano SimiHmong Daw SimiAlto Sorbio SimiKonkani SimiMohaw" + + "k SimiSesotho Sa Leboa SimiPapiamento SimiKʼicheʼ SimiSakha SimiQull" + + "a Sami SimiSami Lule SimiSami Inari SimiSami Skolt SimiSiriaco Simi", + []uint16{ // 526 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x001a, 0x001a, + 0x0024, 0x002f, 0x002f, 0x002f, 0x003f, 0x004a, 0x0059, 0x0065, + 0x0065, 0x0065, 0x0070, 0x007d, 0x0088, 0x0093, 0x009f, 0x009f, + 0x009f, 0x00a9, 0x00a9, 0x00b3, 0x00b3, 0x00b3, 0x00bd, 0x00c7, + 0x00d2, 0x00dd, 0x00dd, 0x00dd, 0x00e8, 0x00f3, 0x00f3, 0x0100, + 0x010c, 0x0118, 0x0122, 0x012c, 0x0136, 0x0136, 0x0141, 0x014d, + 0x0158, 0x0165, 0x0179, 0x0185, 0x0185, 0x0192, 0x0192, 0x019c, + 0x01a7, 0x01b1, 0x01b1, 0x01bc, 0x01d1, 0x01dd, 0x01e9, 0x01e9, + // Entry 40 - 7F + 0x01e9, 0x01f7, 0x01f7, 0x0200, 0x0207, 0x0207, 0x0207, 0x0214, + 0x0221, 0x022f, 0x023b, 0x023b, 0x0249, 0x0249, 0x0249, 0x0249, + 0x0254, 0x0264, 0x026e, 0x027a, 0x0286, 0x0286, 0x0286, 0x0286, + 0x0286, 0x0286, 0x0292, 0x0292, 0x02a3, 0x02a3, 0x02a3, 0x02a3, + 0x02ab, 0x02b7, 0x02b7, 0x02c1, 0x02c1, 0x02c1, 0x02cb, 0x02d9, + 0x02e7, 0x02f2, 0x02fe, 0x0309, 0x0314, 0x0314, 0x0314, 0x0314, + 0x031f, 0x031f, 0x032e, 0x032e, 0x033a, 0x033a, 0x033a, 0x033a, + 0x0347, 0x0347, 0x0347, 0x0350, 0x0350, 0x035c, 0x035c, 0x0367, + // Entry 80 - BF + 0x0372, 0x0380, 0x0388, 0x0395, 0x0395, 0x03a0, 0x03a9, 0x03b9, + 0x03c7, 0x03c7, 0x03d2, 0x03e3, 0x03e3, 0x03f0, 0x03fd, 0x040a, + 0x040a, 0x040a, 0x040a, 0x0416, 0x0421, 0x0421, 0x0421, 0x0421, + 0x042b, 0x0437, 0x0441, 0x044c, 0x0457, 0x0465, 0x0472, 0x0480, + 0x048d, 0x048d, 0x0497, 0x0497, 0x04a3, 0x04a3, 0x04ad, 0x04bb, + 0x04c4, 0x04cf, 0x04cf, 0x04de, 0x04de, 0x04de, 0x04e8, 0x04f5, + 0x04f5, 0x0500, 0x0500, 0x050a, 0x0516, 0x0516, 0x0516, 0x0516, + 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, + // Entry C0 - FF + 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x052f, 0x052f, 0x0540, + // Entry 100 - 13F + 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, + 0x0540, 0x0540, 0x0540, 0x0540, 0x0540, 0x0550, 0x0550, 0x0550, + 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, + 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x0550, 0x055d, + 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, + 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, + 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, + 0x055d, 0x055d, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, + // Entry 140 - 17F + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x0579, 0x0589, 0x0589, + 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, + 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, + 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, + 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, 0x0589, + 0x0589, 0x0589, 0x0589, 0x0589, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + // Entry 180 - 1BF + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0595, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05b5, 0x05b5, 0x05b5, + // Entry 1C0 - 1FF + 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, 0x05b5, + 0x05b5, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, + 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05c4, 0x05d2, 0x05d2, + 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, + 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05d2, 0x05dc, 0x05dc, 0x05dc, + 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, + 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, + 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05eb, 0x05f9, + // Entry 200 - 23F + 0x0608, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, + 0x0617, 0x0617, 0x0617, 0x0617, 0x0617, 0x0623, + }, + }, + { // rm + "afarabchasianavesticafrikaansakanamaricaragonaisarabassamiavaricaymaraas" + + "erbeidschanicbaschkirbielorussbulgarbislamabambarabengaltibetanbreto" + + "nbosniaccatalantschetschenchamorrocorscreetschecslav da baselgiatsch" + + "uvaschkimricdanaistudestgmaledivicdzongkhaewegrecenglaisesperantospa" + + "gnolestonbascpersianfulahfinlandaisfidschianferraisfranzosfrisirland" + + "aisgaelic scotgalicianguaranigujaratimanxhaussaebraichindihiri motuc" + + "roathaitianungaraisarmenhererointerlinguaindonaisinterlingueigbosich" + + "uan yiinupiakidoislandaistalianinuktitutgiapunaisjavanaisgeorgiankon" + + "gokikuyukuanyamacasacgrönlandaiscambodschankannadacoreankanurikashmi" + + "ricurdkomicornickirghislatinluxemburgaisgandalimburgaislingalalaotli" + + "tuanluba-katangalettonmalagassimarschallaismaorimacedonmalayalammong" + + "olicmarathimalaicmaltaisbirmannaurundebele dal nordnepalaisndongaoll" + + "andaisnorvegiais nynorsknorvegais bokmÃ¥lndebele dal sidnavajonyanjao" + + "ccitanojibwaoromooriyaosseticpunjabipalipolacpaschtoportugaisquechua" + + "rumantschrundirumenrusskinyarwandasanscritsardsindhisami dal nordsan" + + "gosingalaisslovacslovensamoanshonasomalialbanaisserbswazisotho dal s" + + "idsundanaissvedaissuahilitamiltelugutadjiktailandaistigrinyaturkment" + + "swanatongatirctsongatatartahitianuiguricucranaisurduusbecvendavietna" + + "maisvolapukvallonwolofxhosajiddicyorubazhuangchinaiszuluacehacoliand" + + "angmeadygaiafrihiliainuaccadicaleuticaltaic dal sidenglais veglangik" + + "aarameicaraucanicarapahoarawakasturianawadhibelutschibalinaisbasaabe" + + "dschabembabhojpuribikolbinisiksikabrajburiatbugiblincaddocaribicatsa" + + "mcebuanochibchatschagataicchuukaismaripatuà chinookchoctawchipewyanc" + + "herokeecheyennecoptictirc crimeankaschubicdakotadargwadelawareslavey" + + "dogribdinkadogribass sorbdualaollandais mesaundiulaefikegipzian vegl" + + "ekajukelamiticenglais mesaunewondofangfilippinofonfranzos mesaunfran" + + "zos veglfris dal nordfris da l’ostfriulangagayogbayageezgilbertaistu" + + "destg mesaunvegl tudestg da scrittiragondigorontalogoticgrebogrec ve" + + "gltudestg svizzergwichʼinhaidahawaianhiligaynonettitichmongaut sorbh" + + "upaibanilocanoingushlojbangiudaic-persiangiudaic-arabkarakalpakkabyl" + + "ekachinjjukambakawikabardictyapkorokhasikhotanaiskimbundukonkanikosr" + + "aeankpellekarachay-balkarcareliankurukhkumukkutenailadinolahndalamba" + + "lezghianlomongoloziluba-lulualuisenolundaluolushaimaduraismagahimait" + + "hilimakassarmandingomasaimokshamandarmendeirlandais mesaunmicmacmina" + + "ngkabaumanchumanipurimohawkmossiplurilingcreekmirandaismarwarierzyan" + + "eapolitanbass tudestgnewariniasniuenogainordic vegln’kosotho dal nor" + + "dnewari classicnyamwezinyankolenyoronzimaosagetirc ottomanpangasinan" + + "pahlavipampangapapiamentopalaupersian veglfenizianponapeanprovenzal " + + "veglrajasthanirapanuirarotongaromaniaromunicsandawejakutarameic sama" + + "ritansasaksantalisicilianscotselkupirlandais veglshansidamosami dal " + + "sidsami lulesami inarisami skoltsoninkesogdiansranan tongoserersukum" + + "asususumericsiric classicsirictemneterenotetumtigretivtokelauklingon" + + "ictlingittamasheqlingua tsongatok pisintsimshiantumbukatuvalutuvinia" + + "nudmurtugariticmbundulinguas betg determinadasvaivoticwalamowaraywas" + + "hokalmukyaoyapaiszapotecsimbols da Blisszenagazuninagins cuntegns li" + + "nguisticszazatudestg austriacenglais australianenglais canadaisengla" + + "is britannicenglais americanspagnol latinamericanspagnol ibericfranz" + + "os canadaisfranzos svizzerflamportugais brasilianportugais iberianmo" + + "ldavserbo-croatchinais simplifitgàchinais tradiziunal", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0027, 0x0030, + 0x0034, 0x003a, 0x0040, 0x0046, 0x0055, 0x005d, 0x0066, 0x006c, + 0x0073, 0x007a, 0x0080, 0x0087, 0x008d, 0x0094, 0x009b, 0x00a6, + 0x00ae, 0x00b2, 0x00b6, 0x00bc, 0x00cc, 0x00d6, 0x00dc, 0x00e2, + 0x00e9, 0x00f2, 0x00fa, 0x00fd, 0x0101, 0x0108, 0x0111, 0x0118, + 0x011d, 0x0121, 0x0128, 0x012d, 0x0137, 0x0140, 0x0147, 0x014e, + 0x0152, 0x015b, 0x0166, 0x016e, 0x0175, 0x017d, 0x0181, 0x0187, + 0x018d, 0x0192, 0x019b, 0x01a0, 0x01a7, 0x01af, 0x01b4, 0x01ba, + // Entry 40 - 7F + 0x01c5, 0x01cd, 0x01d8, 0x01dc, 0x01e6, 0x01ed, 0x01f0, 0x01f9, + 0x01ff, 0x0208, 0x0211, 0x0219, 0x0221, 0x0226, 0x022c, 0x0234, + 0x0239, 0x0245, 0x0250, 0x0257, 0x025d, 0x0263, 0x026b, 0x026f, + 0x0273, 0x0279, 0x0280, 0x0285, 0x0291, 0x0296, 0x02a0, 0x02a7, + 0x02ab, 0x02b1, 0x02bd, 0x02c3, 0x02cc, 0x02d8, 0x02dd, 0x02e4, + 0x02ed, 0x02f5, 0x02fc, 0x0302, 0x0309, 0x030f, 0x0314, 0x0324, + 0x032c, 0x0332, 0x033b, 0x034d, 0x035e, 0x036d, 0x0373, 0x0379, + 0x0380, 0x0386, 0x038b, 0x0390, 0x0397, 0x039e, 0x03a2, 0x03a7, + // Entry 80 - BF + 0x03ae, 0x03b7, 0x03be, 0x03c7, 0x03cc, 0x03d1, 0x03d5, 0x03e0, + 0x03e8, 0x03ec, 0x03f2, 0x03ff, 0x0404, 0x040d, 0x0413, 0x0419, + 0x041f, 0x0424, 0x042a, 0x0432, 0x0436, 0x043b, 0x0448, 0x0451, + 0x0458, 0x045f, 0x0464, 0x046a, 0x0470, 0x047a, 0x0482, 0x0489, + 0x048f, 0x0494, 0x0498, 0x049e, 0x04a3, 0x04ab, 0x04b2, 0x04ba, + 0x04be, 0x04c3, 0x04c8, 0x04d2, 0x04d9, 0x04df, 0x04e4, 0x04e9, + 0x04ef, 0x04f5, 0x04fb, 0x0502, 0x0506, 0x050a, 0x050f, 0x0517, + 0x051d, 0x051d, 0x0525, 0x0525, 0x0529, 0x0530, 0x0530, 0x0537, + // Entry C0 - FF + 0x0537, 0x0545, 0x0551, 0x0557, 0x055e, 0x0567, 0x0567, 0x056e, + 0x056e, 0x0574, 0x0574, 0x0574, 0x0574, 0x0574, 0x057c, 0x057c, + 0x0582, 0x058b, 0x0593, 0x0593, 0x0598, 0x0598, 0x0598, 0x0598, + 0x059f, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05ac, + 0x05b1, 0x05b5, 0x05b5, 0x05b5, 0x05bc, 0x05bc, 0x05bc, 0x05c0, + 0x05c0, 0x05c0, 0x05c0, 0x05c6, 0x05ca, 0x05ca, 0x05ce, 0x05ce, + 0x05d3, 0x05da, 0x05da, 0x05df, 0x05e6, 0x05e6, 0x05ed, 0x05f8, + 0x0600, 0x0604, 0x0612, 0x0619, 0x0622, 0x062a, 0x0632, 0x0632, + // Entry 100 - 13F + 0x0638, 0x0638, 0x0644, 0x064d, 0x0653, 0x0659, 0x0659, 0x0661, + 0x0667, 0x066d, 0x0672, 0x0672, 0x0677, 0x0680, 0x0680, 0x0685, + 0x0695, 0x0695, 0x069a, 0x069a, 0x069a, 0x069e, 0x069e, 0x06ab, + 0x06b1, 0x06b9, 0x06c7, 0x06c7, 0x06cd, 0x06cd, 0x06d1, 0x06da, + 0x06da, 0x06dd, 0x06dd, 0x06eb, 0x06f7, 0x06f7, 0x0704, 0x0713, + 0x071a, 0x071c, 0x071c, 0x071c, 0x0720, 0x0725, 0x0725, 0x0729, + 0x0733, 0x0733, 0x0741, 0x075a, 0x075a, 0x075f, 0x0768, 0x076d, + 0x0772, 0x077b, 0x078a, 0x078a, 0x078a, 0x078a, 0x0793, 0x0798, + // Entry 140 - 17F + 0x0798, 0x079f, 0x079f, 0x07a9, 0x07b0, 0x07b5, 0x07bd, 0x07bd, + 0x07c1, 0x07c5, 0x07c5, 0x07cc, 0x07d2, 0x07d2, 0x07d2, 0x07d8, + 0x07d8, 0x07d8, 0x07e7, 0x07f3, 0x07f3, 0x07fd, 0x0803, 0x0809, + 0x080c, 0x0811, 0x0815, 0x081d, 0x081d, 0x0821, 0x0821, 0x0821, + 0x0821, 0x0825, 0x0825, 0x082a, 0x0833, 0x0833, 0x0833, 0x0833, + 0x0833, 0x0833, 0x083b, 0x083b, 0x0842, 0x084a, 0x0850, 0x085f, + 0x085f, 0x085f, 0x0867, 0x086d, 0x086d, 0x086d, 0x086d, 0x0872, + 0x0879, 0x087f, 0x087f, 0x0885, 0x088a, 0x0892, 0x0892, 0x0892, + // Entry 180 - 1BF + 0x0892, 0x0892, 0x0892, 0x0899, 0x089d, 0x089d, 0x089d, 0x08a7, + 0x08ae, 0x08b3, 0x08b6, 0x08bc, 0x08bc, 0x08bc, 0x08bc, 0x08c4, + 0x08c4, 0x08ca, 0x08d2, 0x08da, 0x08e2, 0x08e7, 0x08e7, 0x08ed, + 0x08f3, 0x08f8, 0x08f8, 0x08f8, 0x0908, 0x0908, 0x0908, 0x090e, + 0x0919, 0x091f, 0x0927, 0x092d, 0x0932, 0x0932, 0x0932, 0x093b, + 0x0940, 0x0949, 0x0950, 0x0950, 0x0950, 0x0955, 0x0955, 0x0955, + 0x095f, 0x095f, 0x096b, 0x0971, 0x0975, 0x0979, 0x0979, 0x0979, + 0x0979, 0x097e, 0x0989, 0x0989, 0x098f, 0x099d, 0x099d, 0x09ab, + // Entry 1C0 - 1FF + 0x09b3, 0x09bb, 0x09c0, 0x09c5, 0x09ca, 0x09d6, 0x09e0, 0x09e7, + 0x09ef, 0x09f9, 0x09fe, 0x09fe, 0x09fe, 0x09fe, 0x0a0a, 0x0a0a, + 0x0a12, 0x0a12, 0x0a12, 0x0a1a, 0x0a1a, 0x0a28, 0x0a28, 0x0a28, + 0x0a32, 0x0a39, 0x0a42, 0x0a42, 0x0a42, 0x0a42, 0x0a48, 0x0a48, + 0x0a48, 0x0a48, 0x0a50, 0x0a50, 0x0a57, 0x0a5c, 0x0a6d, 0x0a6d, + 0x0a72, 0x0a79, 0x0a79, 0x0a79, 0x0a79, 0x0a81, 0x0a85, 0x0a85, + 0x0a85, 0x0a85, 0x0a85, 0x0a85, 0x0a8b, 0x0a8b, 0x0a99, 0x0a99, + 0x0a99, 0x0a9d, 0x0a9d, 0x0aa3, 0x0aa3, 0x0aa3, 0x0aaf, 0x0ab8, + // Entry 200 - 23F + 0x0ac2, 0x0acc, 0x0ad3, 0x0ada, 0x0ae6, 0x0aeb, 0x0aeb, 0x0aeb, + 0x0af1, 0x0af5, 0x0afc, 0x0afc, 0x0b09, 0x0b0e, 0x0b0e, 0x0b0e, + 0x0b13, 0x0b13, 0x0b19, 0x0b1e, 0x0b23, 0x0b26, 0x0b2d, 0x0b2d, + 0x0b36, 0x0b3d, 0x0b3d, 0x0b45, 0x0b52, 0x0b5b, 0x0b5b, 0x0b5b, + 0x0b5b, 0x0b64, 0x0b64, 0x0b6b, 0x0b71, 0x0b71, 0x0b79, 0x0b79, + 0x0b7f, 0x0b87, 0x0b8d, 0x0ba6, 0x0ba9, 0x0ba9, 0x0ba9, 0x0ba9, + 0x0ba9, 0x0bae, 0x0bae, 0x0bae, 0x0bae, 0x0bb4, 0x0bb9, 0x0bbe, + 0x0bbe, 0x0bbe, 0x0bc4, 0x0bc4, 0x0bc4, 0x0bc7, 0x0bcd, 0x0bcd, + // Entry 240 - 27F + 0x0bcd, 0x0bcd, 0x0bcd, 0x0bd4, 0x0be4, 0x0be4, 0x0bea, 0x0bea, + 0x0bee, 0x0c09, 0x0c0d, 0x0c0d, 0x0c0d, 0x0c1d, 0x0c1d, 0x0c2f, + 0x0c3f, 0x0c50, 0x0c60, 0x0c75, 0x0c83, 0x0c83, 0x0c83, 0x0c93, + 0x0ca2, 0x0ca2, 0x0ca6, 0x0cb9, 0x0cca, 0x0cd0, 0x0cdb, 0x0cdb, + 0x0cef, 0x0d02, + }, + }, + { // rn + "IgikaniIkimuharikiIcarabuIkibelarusiyaIkinyabuligariyaIkibengaliIgicekeI" + + "kidageIkigerekiIcongerezaIcesipanyoloIgiperisiIgifaransaIgihawusaIgi" + + "hindiIkinyahongiriyaIkinyendoziyaIkiguboIgitaliyaniIkiyapaniIkinyeja" + + "vaIgikambodiyaIkinyakoreyaIkinyamaleziyaIkinyabirimaniyaIkinepaliIgi" + + "holandiIgipunjabiIkinyapolonyeIgiporutugariIkirundiIkinyarumaniyaIki" + + "rusiyaIkinyarwandaIgisomaliIgisuweduwaIgitamiliIkinyatayilandiIgitur" + + "ukiyaIkinyayukereniInyeyuruduIkinyaviyetinamuIkiyorubaIgishinwaIkizu" + + "lu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0012, 0x0012, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0026, 0x0036, + 0x0036, 0x0036, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x004e, 0x004e, 0x004e, 0x004e, 0x0057, 0x0061, 0x0061, 0x006d, + 0x006d, 0x006d, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, + 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x00a0, 0x00a0, 0x00a0, + // Entry 40 - 7F + 0x00a0, 0x00ad, 0x00ad, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00bf, 0x00bf, 0x00c8, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, + 0x00d2, 0x00d2, 0x00de, 0x00de, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00f8, 0x00f8, 0x0108, 0x0108, 0x0108, + 0x0111, 0x0111, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x0125, 0x0125, 0x0132, + // Entry 80 - BF + 0x0132, 0x013f, 0x013f, 0x013f, 0x0147, 0x0155, 0x015e, 0x016a, + 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, + 0x016a, 0x016a, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, + 0x017e, 0x017e, 0x0187, 0x0187, 0x0187, 0x0196, 0x0196, 0x0196, + 0x0196, 0x0196, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01af, + 0x01b9, 0x01b9, 0x01b9, 0x01c9, 0x01c9, 0x01c9, 0x01c9, 0x01c9, + 0x01c9, 0x01d2, 0x01d2, 0x01db, 0x01e2, + }, + }, + { // ro + roLangStr, + roLangIdx, + }, + { // rof + "KiakaniKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigi" + + "rikiKiingerezaKihispaniaKiajemiKyifaransaKihausaKihindiKihungariKiin" + + "donesiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKibur" + + "maKinepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwand" + + "aKisomaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuK" + + "iyorubaKichinaKizuluKihorombo", + []uint16{ // 478 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0056, 0x0056, 0x0060, + 0x0060, 0x0060, 0x0067, 0x0067, 0x0067, 0x0067, 0x0067, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0078, + 0x0078, 0x007f, 0x007f, 0x007f, 0x007f, 0x0088, 0x0088, 0x0088, + // Entry 40 - 7F + 0x0088, 0x0093, 0x0093, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, + 0x00a3, 0x00a3, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00d2, 0x00d2, 0x00d2, + 0x00da, 0x00da, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, + 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00ec, 0x00ec, 0x00f5, + // Entry 80 - BF + 0x00f5, 0x00fb, 0x00fb, 0x00fb, 0x00fb, 0x0104, 0x010a, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, 0x011d, + 0x0124, 0x0124, 0x012b, 0x012b, 0x012b, 0x0135, 0x0135, 0x0135, + 0x0135, 0x0135, 0x013d, 0x013d, 0x013d, 0x013d, 0x013d, 0x0146, + 0x014c, 0x014c, 0x014c, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, + 0x0157, 0x015f, 0x015f, 0x0166, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry C0 - FF + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry 100 - 13F + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry 140 - 17F + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry 180 - 1BF + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry 1C0 - 1FF + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x0175, + }, + }, + { // ru + ruLangStr, + ruLangIdx, + }, + { // rw + "IkinyafurikaneriInyetuwiInyamuharikiIcyarabuIcyasamiziInyazeribayijaniIk" + + "ibelarusiyaUrunyabuligariyaIkibengaliInyebiritoniInyebosiniyaIgikata" + + "laniIgicekeIkigaluwaIkidaninwaIkidageIkigerekiIcyongerezaIcyesiperan" + + "toIcyesipanyoloIcyesitoniyaIkibasikiInyeperisiIgifinilandeInyefaroyi" + + "ziIgifaransaIgifiriziyaniIkirilandiIkigaluwa cy’IgisweduwaIkigalisiy" + + "aInyaguwaraniInyegujaratiIgiheburayoIgihindiIgikorowasiyaIgihongiriy" + + "aIkinyarumeniyaUrurimi GahuzamiryangoIkinyendoziyaUruhuzandimiIgisil" + + "andeIgitaliyaniIkiyapaniInyejavaInyejeworujiyaIgikambodiyaIgikanadaI" + + "gikoreyaInyekuridishiInkerigiziIkilatiniIlingalaIkilawotiyaniIkilitu" + + "waniyaIkinyaletoviyaniIkimasedoniyaniIkimalayalamiIkimongoliIkimarat" + + "iIkimalayiIkimalitezeIkinepaliIkinerilandeInyenoruveji (Nyonorusiki)" + + "IkinoruvejiInyogusitaniInyoriyaIgipunjabiIgipoloneImpashitoIgiporutu" + + "galiIkinyarumaniyaIkirusiyaKinyarwandaIgisansikiriIgisindiInyesimpal" + + "ezeIgisilovakiIkinyasiloveniyaIgisomaliIcyalubaniyaIgiseribeInyeseso" + + "toInyesudaniIgisuweduwaIgiswahiliIgitamiliIgiteluguIgitayiInyatigiri" + + "nyaInyeturukimeniIgiturukiyaIkiwiguriIkinyayukereniInyeyuruduInyeyuz" + + "ubekiIkinyaviyetinamuInyehawusaInyeyidishiInyezuluIkinyafilipineInye" + + "kilingoniInyeporutigali (Brezili)Inyeporutigali (Igiporutigali)Inyes" + + "eribiya na Korowasiya", + []uint16{ // 607 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0018, 0x0024, 0x0024, + 0x002c, 0x0036, 0x0036, 0x0036, 0x0046, 0x0046, 0x0053, 0x0063, + 0x0063, 0x0063, 0x006d, 0x006d, 0x0079, 0x0085, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0097, 0x0097, 0x0097, 0x00a0, 0x00aa, + 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00ba, 0x00c5, 0x00d2, 0x00df, + 0x00eb, 0x00f4, 0x00fe, 0x00fe, 0x010a, 0x010a, 0x0116, 0x0120, + 0x012d, 0x0137, 0x0150, 0x015b, 0x0167, 0x0173, 0x0173, 0x0173, + 0x017e, 0x0186, 0x0186, 0x0193, 0x0193, 0x019f, 0x01ad, 0x01ad, + // Entry 40 - 7F + 0x01c3, 0x01d0, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01e6, + 0x01f1, 0x01f1, 0x01fa, 0x0202, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x021c, 0x0225, 0x022e, 0x022e, 0x022e, 0x023b, + 0x023b, 0x023b, 0x0245, 0x024e, 0x024e, 0x024e, 0x024e, 0x0256, + 0x0263, 0x0270, 0x0270, 0x0280, 0x0280, 0x0280, 0x0280, 0x028f, + 0x029c, 0x02a6, 0x02af, 0x02b8, 0x02c3, 0x02c3, 0x02c3, 0x02c3, + 0x02cc, 0x02cc, 0x02d8, 0x02f2, 0x02fd, 0x02fd, 0x02fd, 0x02fd, + 0x0309, 0x0309, 0x0309, 0x0311, 0x0311, 0x031b, 0x031b, 0x0324, + // Entry 80 - BF + 0x032d, 0x033a, 0x033a, 0x033a, 0x033a, 0x0348, 0x0351, 0x035c, + 0x0368, 0x0368, 0x0370, 0x0370, 0x0370, 0x037d, 0x0388, 0x0398, + 0x0398, 0x0398, 0x03a1, 0x03ad, 0x03b6, 0x03b6, 0x03c0, 0x03ca, + 0x03d5, 0x03df, 0x03e8, 0x03f1, 0x03f1, 0x03f8, 0x0405, 0x0413, + 0x0413, 0x0413, 0x041e, 0x041e, 0x041e, 0x041e, 0x0427, 0x0435, + 0x043f, 0x044b, 0x044b, 0x045b, 0x045b, 0x045b, 0x045b, 0x0465, + 0x0470, 0x0470, 0x0470, 0x0470, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + // Entry C0 - FF + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + // Entry 100 - 13F + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, + 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0478, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + // Entry 140 - 17F + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + // Entry 180 - 1BF + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + // Entry 1C0 - 1FF + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + // Entry 200 - 23F + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, 0x0486, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + // Entry 240 - 27F + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, 0x0493, + 0x0493, 0x0493, 0x0493, 0x04ab, 0x04c9, 0x04c9, 0x04e3, + }, + }, + { // rwk + "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + + "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + + "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + + "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + + "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + + "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKir" + + "uwa", + []uint16{ // 484 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, + 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, + 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, + 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, + 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, + 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, + 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, + // Entry 80 - BF + 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, + 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, + 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, + 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, + 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry C0 - FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 100 - 13F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 140 - 17F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 180 - 1BF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 1C0 - 1FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x019f, + }, + }, + { // sah + "ÐбхааÑÑ‚Ñ‹Ñ‹ÐппырыкааныÑÑ‚Ñ‹Ñ‹ÐраабтыыÐдьырбайдьаанныыБөлөрүүÑтүүБулҕаардыыБен" + + "галлыыТибиÑттииБоÑныйалыыКаталаанныыЧиÑÑкÑйдииДаатÑкайдыыÐиÑмÑÑтииГ" + + "ириÑктииÐҥылычаанныыЫÑпаанныыЭÑтиÑнийÑлииПиÑÑ€ÑийÑлииПииннииПыранÑуу" + + "ÑтууБÑҥгиÑрдииЭрмÑÑннииЫтаалыйалыыДьоппуоннууГуруÑууннууХаһаахтыыКÑ" + + "риÑйдииКыргыÑтыыЛатыынныыМоҕуоллууÐьыпааллыыПандьаабтыыПортугааллыы" + + "РумыынныыÐууччалыыСловаактыыÐлбаанÑкайдыыТамыллыыТөлүгүлүүТадьыыкты" + + "ыУйгуурдууУкрайыыньыÑтыыҮзбиÑктииКытайдыыЗуулулууПилипииннииÑаха Ñ‚Ñ‹" + + "ла", + []uint16{ // 486 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0012, 0x0012, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0060, 0x0060, 0x0076, 0x008a, + 0x008a, 0x008a, 0x009c, 0x00ae, 0x00ae, 0x00c2, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x0102, + 0x0114, 0x0114, 0x0114, 0x0114, 0x0126, 0x013e, 0x013e, 0x0150, + 0x0168, 0x0168, 0x017e, 0x017e, 0x018c, 0x018c, 0x018c, 0x01a4, + 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, + 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01b8, 0x01ca, 0x01ca, + // Entry 40 - 7F + 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, + 0x01e0, 0x01e0, 0x01f6, 0x01f6, 0x020c, 0x020c, 0x020c, 0x020c, + 0x021e, 0x021e, 0x021e, 0x021e, 0x0230, 0x0230, 0x0230, 0x0230, + 0x0230, 0x0230, 0x0242, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, + 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, 0x0254, + 0x0254, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, + 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, + 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x0290, 0x0290, 0x0290, + // Entry 80 - BF + 0x0290, 0x02a8, 0x02a8, 0x02a8, 0x02a8, 0x02ba, 0x02cc, 0x02cc, + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02e0, 0x02e0, + 0x02e0, 0x02e0, 0x02e0, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, + 0x02fa, 0x02fa, 0x030a, 0x031c, 0x0330, 0x0330, 0x0330, 0x0330, + 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0330, 0x0342, 0x035e, + 0x035e, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, 0x0370, + 0x0370, 0x0370, 0x0370, 0x0380, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + // Entry C0 - FF + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + // Entry 100 - 13F + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, + 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x0390, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + // Entry 140 - 17F + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + // Entry 180 - 1BF + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + // Entry 1C0 - 1FF + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, + 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03a6, 0x03b7, + }, + }, + { // saq + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluKisampur", + []uint16{ // 488 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 140 - 17F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 180 - 1BF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 1C0 - 1FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0171, + }, + }, + { // sbp + "IshiyakaniIshiyamuhaliIshiyalabuIshibelalusiIshibulugaliaIshibangilaIshi" + + "shekiIshijelumaniIshigilikiIshingelesaIshihisipaniyaIshiajemiIshifal" + + "ansaIshihawusaIshihindiIshihungaliIshihindonesiaIshihigiboIshihitali" + + "yanoIshijapaniIshijavaIshikambodiaIshikoleyaIshimalesiyaIshibulumaIs" + + "hinepaliIshiholansiIshipunjabiIshipolandiIshilenoIshilomaniyaIshilus" + + "iIshinyalwandaIshisomaliIshiswidiIshitamiliIshitayilandiIshitulukiIs" + + "hiyukilaniyaIshiwuludiIshivietinamuIshiyolubaIshishinaIshisuluIshisa" + + "ngu", + []uint16{ // 493 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0016, 0x0016, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x002c, 0x0039, + 0x0039, 0x0039, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0063, 0x006e, 0x006e, 0x007c, + 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, 0x0085, 0x0085, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x009a, + 0x009a, 0x00a3, 0x00a3, 0x00a3, 0x00a3, 0x00ae, 0x00ae, 0x00ae, + // Entry 40 - 7F + 0x00ae, 0x00bc, 0x00bc, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00d4, 0x00d4, 0x00de, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, + 0x00e6, 0x00e6, 0x00f2, 0x00f2, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x00fc, 0x00fc, 0x00fc, 0x0108, 0x0108, 0x0112, 0x0112, 0x0112, + 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0132, 0x0132, 0x013d, + // Entry 80 - BF + 0x013d, 0x0145, 0x0145, 0x0145, 0x0145, 0x0151, 0x0159, 0x0166, + 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, + 0x0166, 0x0166, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, + 0x0179, 0x0179, 0x0183, 0x0183, 0x0183, 0x0190, 0x0190, 0x0190, + 0x0190, 0x0190, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x01a8, + 0x01b2, 0x01b2, 0x01b2, 0x01bf, 0x01bf, 0x01bf, 0x01bf, 0x01bf, + 0x01bf, 0x01c9, 0x01c9, 0x01d2, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + // Entry C0 - FF + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + // Entry 100 - 13F + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + // Entry 140 - 17F + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + // Entry 180 - 1BF + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + // Entry 1C0 - 1FF + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, 0x01da, + 0x01da, 0x01da, 0x01da, 0x01da, 0x01e3, + }, + }, + { // se + "afrikánsagiellaaragoniagiellaarábagiellavilges-ruoÅ¡Å¡agiellabulgáriagiell" + + "abengalgiellatibetagiellabretonagiellabosniagiellakatalánagiellacors" + + "icagiellaÄeahkagiellakymragielladánskkagielladuiskkagielladivehigiel" + + "ladzongkhagiellagreikkagiellaeaÅ‹galsgiellaspánskkagiellaesttegiellap" + + "ersijagiellasuomagiellafidjigiellafearagiellafránskkagiellaoarjifrii" + + "sagiellaiirragiellagujaratagiellamanksgiellahaussagiellahindigiellak" + + "roátiagiellahaitigiellaungárgiellaarmeenagiellaindonesiagiellaislánd" + + "dagiellaitáliagiellajapánagiellajavagiellageorgiagiellakazakgiellaka" + + "mbodiagiellakoreagiellakurdigiellakomigiellakornagiellaláhtengiellal" + + "uxemburggagiellalaogiellaliettuvagiellalátviagiellamaorigiellamakedo" + + "niagiellamongoliagiellamaltagiellaburmagiellanepaligiellahollánddagi" + + "ellaoÄ‘Ä‘adárogiellagirjedárogiellaoksitánagiellapanjabigiellapolskkag" + + "iellaportugálagiellaromanÅ¡giellaromániagiellaruoÅ¡Å¡agiellasardigiella" + + "davvisámegiellaslovákiagiellaslovenagiellasamoagiellaalbánagiellaser" + + "biagiellaruoŧagiellaŧaigielladurkagiellatahitigiellaukrainagiellaurd" + + "ugiellavietnamgiellavallonagiellakiinnágiellaacehgiellaboares eaÅ‹gal" + + "asgiellaasturiagiellamarigiellafilippiinnagiellahawaiigiellagárjilgi" + + "ellamokÅ¡agiellaersagiellasisiliagiellaselkupagiellalullisámegiellaju" + + "levsámegiellaanáraÅ¡giellanuortalaÅ¡giellashimaorigiellaudmurtagiellad" + + "ovdameahttun giellakantongiellaserbokroatiagiellaálki kiinágiellaárb" + + "evirolaÅ¡ kiinnágiella", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x001e, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x003f, 0x004e, + 0x004e, 0x004e, 0x005a, 0x0066, 0x0073, 0x007f, 0x008e, 0x008e, + 0x008e, 0x009b, 0x009b, 0x00a8, 0x00a8, 0x00a8, 0x00b3, 0x00c1, + 0x00ce, 0x00da, 0x00e8, 0x00e8, 0x00f5, 0x0103, 0x0103, 0x0112, + 0x011d, 0x011d, 0x012a, 0x012a, 0x0135, 0x0140, 0x014b, 0x015a, + 0x016b, 0x0176, 0x0176, 0x0176, 0x0176, 0x0184, 0x018f, 0x019b, + 0x019b, 0x01a6, 0x01a6, 0x01b4, 0x01bf, 0x01cb, 0x01d8, 0x01d8, + // Entry 40 - 7F + 0x01d8, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01e7, 0x01f6, + 0x0203, 0x0203, 0x0210, 0x021a, 0x0227, 0x0227, 0x0227, 0x0227, + 0x0232, 0x0232, 0x0240, 0x0240, 0x024b, 0x024b, 0x024b, 0x0256, + 0x0260, 0x026b, 0x026b, 0x0278, 0x0289, 0x0289, 0x0289, 0x0289, + 0x0292, 0x02a0, 0x02a0, 0x02ad, 0x02ad, 0x02ad, 0x02b8, 0x02c7, + 0x02c7, 0x02d5, 0x02d5, 0x02d5, 0x02e0, 0x02eb, 0x02eb, 0x02eb, + 0x02f7, 0x02f7, 0x0307, 0x0318, 0x0328, 0x0328, 0x0328, 0x0328, + 0x0337, 0x0337, 0x0337, 0x0337, 0x0337, 0x0344, 0x0344, 0x0351, + // Entry 80 - BF + 0x0351, 0x0361, 0x0361, 0x036e, 0x036e, 0x037c, 0x038a, 0x038a, + 0x038a, 0x0395, 0x0395, 0x03a5, 0x03a5, 0x03a5, 0x03b4, 0x03c1, + 0x03cc, 0x03cc, 0x03cc, 0x03d9, 0x03e5, 0x03e5, 0x03e5, 0x03e5, + 0x03f1, 0x03f1, 0x03f1, 0x03f1, 0x03f1, 0x03fb, 0x03fb, 0x03fb, + 0x03fb, 0x03fb, 0x0406, 0x0406, 0x0406, 0x0412, 0x0412, 0x041f, + 0x0429, 0x0429, 0x0429, 0x0436, 0x0436, 0x0443, 0x0443, 0x0443, + 0x0443, 0x0443, 0x0443, 0x0450, 0x0450, 0x045a, 0x045a, 0x045a, + 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, 0x045a, + // Entry C0 - FF + 0x045a, 0x045a, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, + 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x0470, 0x047d, 0x047d, + 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, + 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, + 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, + 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, + 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, 0x047d, + 0x047d, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, + // Entry 100 - 13F + 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, + 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, + 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, + 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0487, 0x0498, + 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, + 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, + 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, + 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, 0x0498, + // Entry 140 - 17F + 0x0498, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, + 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, + // Entry 180 - 1BF + 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, + 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, + 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04b1, 0x04bd, + 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, + 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, + 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04bd, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + // Entry 1C0 - 1FF + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04d4, 0x04d4, 0x04d4, + 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04e1, 0x04e1, 0x04e1, 0x04e1, + 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04e1, 0x04f1, 0x0501, + // Entry 200 - 23F + 0x050f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, + 0x051f, 0x051f, 0x051f, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, + 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, + 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, + 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, 0x052d, + 0x053a, 0x053a, 0x053a, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, + 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, + 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, 0x054e, + // Entry 240 - 27F + 0x054e, 0x054e, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, + 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, + 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, + 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x055a, 0x056c, 0x056c, + 0x057e, 0x0599, + }, + }, + { // se-FI + "vilgesruoÅ¡Å¡agiellabengalagiellafižigiellaarmenagiellakazakhgiellakamboža" + + "giellanepalagiellapanjabagiellathaigiellavietnamagiellaaÄehgiellakom" + + "oragiellastandárda arábagiellanuortariikkalaÅ¡ duiskkagiellaÅ¡veicalaÅ¡" + + " duiskkagiellaaustrálialaÅ¡ eaÅ‹galsgiellakanádalaÅ¡ eaÅ‹galsgiellabriht" + + "talaÅ¡ eaÅ‹galsgiellaamerihkálaÅ¡ eaÅ‹galsgiellalatiinna-amerihkalaÅ¡ spá" + + "nskkagiellaespánjalaÅ¡ spánskkagiellameksikolaÅ¡ spánskkagiellakanádal" + + "aÅ¡ fránskkagiellaÅ¡veicalaÅ¡ fránskkagiellabelgialaÅ¡ hollánddagiellabr" + + "asilialaÅ¡ portugálagiellaportugálalaÅ¡ portugálagiellamoldávialaÅ¡ rom" + + "ániagiellaálkes kiinnágiella", + []uint16{ // 609 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, 0x0014, + 0x0014, 0x0014, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x0038, 0x0038, + // Entry 40 - 7F + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0044, 0x0044, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, + 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x006b, 0x006b, 0x006b, + // Entry 80 - BF + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, + 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry C0 - FF + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry 100 - 13F + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry 140 - 17F + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry 180 - 1BF + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry 1C0 - 1FF + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + // Entry 200 - 23F + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + // Entry 240 - 27F + 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x00b1, 0x00b1, 0x00cf, 0x00e8, 0x0105, + 0x011f, 0x0139, 0x0155, 0x017a, 0x0196, 0x01b1, 0x01b1, 0x01cc, + 0x01e7, 0x01e7, 0x0202, 0x021f, 0x023e, 0x025a, 0x025a, 0x025a, + 0x026e, + }, + }, + { // seh + "akanamáricoárabebielo-russobúlgarobengalitchecoalemãogregoinglêsespanhol" + + "persafrancêshausahindihúngaroindonésioiboitalianojaponêsjavanêscmerc" + + "oreanomalaiobirmanêsnepalêsholandêspanjabipolonêsportuguêsromenoruss" + + "okinyarwandasomalisuecotâmiltailandêsturcoucranianourduvietnamitaior" + + "ubáchinêszulusena", + []uint16{ // 499 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000c, 0x000c, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x001d, 0x0025, + 0x0025, 0x0025, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0039, 0x0039, 0x0039, 0x0039, 0x003e, 0x0045, 0x0045, 0x004d, + 0x004d, 0x004d, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005f, + 0x005f, 0x0064, 0x0064, 0x0064, 0x0064, 0x006c, 0x006c, 0x006c, + // Entry 40 - 7F + 0x006c, 0x0076, 0x0076, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, + 0x0081, 0x0081, 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, + 0x0091, 0x0091, 0x0095, 0x0095, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x00a2, 0x00a2, 0x00ab, 0x00ab, 0x00ab, + 0x00b3, 0x00b3, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, + 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00c3, 0x00c3, 0x00cb, + // Entry 80 - BF + 0x00cb, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00db, 0x00e0, 0x00eb, + 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, + 0x00eb, 0x00eb, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, + 0x00f6, 0x00f6, 0x00fc, 0x00fc, 0x00fc, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x010b, 0x010b, 0x010b, 0x010b, 0x010b, 0x0114, + 0x0118, 0x0118, 0x0118, 0x0122, 0x0122, 0x0122, 0x0122, 0x0122, + 0x0122, 0x0129, 0x0129, 0x0130, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + // Entry C0 - FF + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + // Entry 100 - 13F + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + // Entry 140 - 17F + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + // Entry 180 - 1BF + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + // Entry 1C0 - 1FF + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x0138, + }, + }, + { // ses + "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + + " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + + "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + + "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senniKoree" + + " senniMaleezi senniBurme senniNeepal senniHolandee senniPunjaabi sen" + + "niiPolonee senniPortugee senniRumaani senniRuusi senniRwanda senniSo" + + "maali senniSuweede senniTamil senniTaailandu senniTurku senniUkreen " + + "senniUrdu senniVietnaam senniYorbance senniSinuwa senni, MandareÅ‹Zul" + + "u senniKoyraboro senni", + []uint16{ // 502 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, + 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, + 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, + 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, + // Entry 40 - 7F + 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0111, 0x0111, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x011c, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, + 0x0140, 0x0140, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, + 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x015d, 0x015d, 0x016a, + // Entry 80 - BF + 0x016a, 0x0178, 0x0178, 0x0178, 0x0178, 0x0185, 0x0190, 0x019c, + 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, + 0x019c, 0x019c, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, 0x01a9, + 0x01b6, 0x01b6, 0x01c1, 0x01c1, 0x01c1, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01db, 0x01db, 0x01db, 0x01db, 0x01db, 0x01e7, + 0x01f1, 0x01f1, 0x01f1, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, + 0x01ff, 0x020d, 0x020d, 0x0224, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + // Entry C0 - FF + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + // Entry 100 - 13F + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + // Entry 140 - 17F + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + // Entry 180 - 1BF + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + // Entry 1C0 - 1FF + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, + 0x022e, 0x022e, 0x022e, 0x022e, 0x022e, 0x023d, + }, + }, + { // sg + "AkâanAmarîkiArâboBielörûsiBulugäriBengäliTyêkiZâmaniGerêkiAnglëeEspanyöl" + + "FarsîFarânziHaüsäHîndiHongruäaEnndonezïiÃgböÊnndeZaponëeZavanëeKmêre" + + "KoreyëenMalëeMiamära, BirimäniNepalëeHolandëePenzäbïPolonëePortugëe," + + " PûraRumëenRûsiRuandäaSängöSomalïiSueduäaTämûliThâiTûrûkuUkrêniÛrduV" + + "ietnämYorubaShinuäaZûlu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x001f, 0x0028, + 0x0028, 0x0028, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x003d, 0x003d, 0x003d, 0x003d, 0x0044, 0x004b, 0x004b, 0x0054, + 0x0054, 0x0054, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0069, + 0x0069, 0x006f, 0x006f, 0x006f, 0x006f, 0x0078, 0x0078, 0x0078, + // Entry 40 - 7F + 0x0078, 0x0083, 0x0083, 0x0089, 0x0089, 0x0089, 0x0089, 0x0089, + 0x008f, 0x008f, 0x0097, 0x009f, 0x009f, 0x009f, 0x009f, 0x009f, + 0x009f, 0x009f, 0x00a5, 0x00a5, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00b4, 0x00b4, 0x00c7, 0x00c7, 0x00c7, + 0x00cf, 0x00cf, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00e1, 0x00e1, 0x00e9, + // Entry 80 - BF + 0x00e9, 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x0100, 0x0105, 0x010d, + 0x010d, 0x010d, 0x010d, 0x010d, 0x0114, 0x0114, 0x0114, 0x0114, + 0x0114, 0x0114, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x0124, 0x0124, 0x012c, 0x012c, 0x012c, 0x0131, 0x0131, 0x0131, + 0x0131, 0x0131, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0140, + 0x0145, 0x0145, 0x0145, 0x014d, 0x014d, 0x014d, 0x014d, 0x014d, + 0x014d, 0x0153, 0x0153, 0x015b, 0x0160, + }, + }, + { // shi + "ⵜⴰⴽⴰâµâµœâµœâ´°âµŽâµ€â´°âµ”ⵉⵜⵜⴰⵄⵔⴰⴱⵜⵜⴰⴱⵉâµâ´°âµ”ⵓⵙⵜⵜⴰⴱâµâµ–ⴰⵔⵉⵜⵜⴰⴱâµâµ–â´°âµâµ‰âµœâµœâ´°âµœâµ›âµ‰â´½âµ‰âµœâµœâ´°âµâµ‰âµŽâ´°âµâµœâµœâ´°â´³âµ”ⵉⴳⵉ" + + "ⵜⵜⴰâµâ´³âµâµ‰âµ£âµœâµœâ´°âµ™â´±âµâµ¢âµ“âµâµ‰âµœâµœâ´°â´¼âµ“ⵔⵙⵉⵜⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµœâ´°âµ€â´°âµ¡âµ™â´°âµœâµœâ´°âµ€âµ‰âµâ´·âµ‰âµœâµœâ´°âµ€âµâµ–ⴰⵔⵉⵜⵜⴰâµâ´·" + + "ⵓâµâµ‰âµ™âµ‰âµœâµœâµ‰â´³â´±âµ“ⵜⵜⴰⵟⴰâµâµ¢â´°âµâµœâµœâ´°âµŠâ´°â´±â´±âµ“âµâµ‰âµœâµœâ´°âµŠâ´°â´¼â´°âµâµ‰âµœâµœâ´°âµ…ⵎⵉⵔⵜⵜⴰⴽⵓⵔⵉⵜⵜⴰⵎⴰâµâ´°âµ¡âµ‰âµœâµœâ´°â´±" + + "ⵉⵔⵎⴰâµâµ‰âµœâµœâ´°âµâµ‰â´±â´°âµâµ‰âµœâµœâ´°âµ€âµ“âµâ´°âµâ´·âµ‰âµœâµœâ´°â´±âµâµŠâ´°â´±âµ‰âµœâµœâ´°â´±âµ“âµâµ“âµâµ‰âµœâµœâ´°â´±âµ•âµŸâµ‡âµ‰âµ£âµœâµœâ´°âµ”ⵓⵎⴰâµâµ‰âµœâµœâ´°âµ”ⵓ" + + "ⵙⵉⵜⵜⴰⵔⵓⵡⴰâµâ´·âµ‰âµœâµœâ´°âµ™âµ“ⵎⴰâµâµ‰âµœâµœâ´°âµ™âµ¡âµ‰â´·âµ‰âµœâµœâ´°âµœâ´°âµŽâµ‰âµâµœâµœâ´°âµœâ´°âµ¢âµâ´°âµâ´·âµ‰âµœâµœâ´°âµœâµ“ⵔⴽⵉⵜⵜⵓⴽⵔⴰâµâµ‰âµœâµœ" + + "ⵓⵔⴷⵓⵜⵜⴰⴼⵉⵜâµâ´°âµŽâµ‰âµœâµœâ´°âµ¢âµ”ⵓⴱⴰⵜⵜⴰⵛⵉâµâµ¡âµ‰âµœâµœâ´°âµ£âµ“âµâµ“ⵜⵜⴰⵛâµâµƒâµ‰âµœ", + []uint16{ // 505 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x002a, 0x002a, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005d, 0x0078, + 0x0078, 0x0078, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00db, 0x00f3, 0x00f3, 0x0111, + 0x0111, 0x0111, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x015f, + 0x015f, 0x0177, 0x0177, 0x0177, 0x0177, 0x0192, 0x0192, 0x0192, + // Entry 40 - 7F + 0x0192, 0x01b0, 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01dd, 0x01dd, 0x01fb, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, + 0x0216, 0x0216, 0x022b, 0x022b, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x025b, 0x025b, 0x0279, 0x0279, 0x0279, + 0x0294, 0x0294, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, + 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02cd, 0x02cd, 0x02e8, + // Entry 80 - BF + 0x02e8, 0x0303, 0x0303, 0x0303, 0x0303, 0x031e, 0x0333, 0x0351, + 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, + 0x0351, 0x0351, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, + 0x0384, 0x0384, 0x039c, 0x039c, 0x039c, 0x03bd, 0x03bd, 0x03bd, + 0x03bd, 0x03bd, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03ed, + 0x03ff, 0x03ff, 0x03ff, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, + 0x041d, 0x0435, 0x0435, 0x044d, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry C0 - FF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 100 - 13F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 140 - 17F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 180 - 1BF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 1C0 - 1FF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0477, + }, + }, + { // shi-Latn + "TakantTamharitTaÉ›rabtTabilarustTablÉ£aritTabnÉ£alitTatcikitTalimantTagrigi" + + "tTangliztTasbnyulitTafursitTafransistTahawsatTahinditTahnÉ£aritTandun" + + "isitTigbutTaá¹­alyantTajabbunitTajavanitTaxmirtTakuritTamalawitTabirma" + + "nitTanibalitTahulanditTabnjabitTabulunitTabṛṭqiztTarumanitTarusitTar" + + "uwanditTasumalitTaswiditTatamiltTataylanditTaturkitTukranitTurdutTaf" + + "itnamitTayrubatTacinwitTazulutTashelḥiyt", + []uint16{ // 505 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0020, 0x002a, + 0x002a, 0x002a, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0078, + 0x0078, 0x0080, 0x0080, 0x0080, 0x0080, 0x008a, 0x008a, 0x008a, + // Entry 40 - 7F + 0x008a, 0x0094, 0x0094, 0x009a, 0x009a, 0x009a, 0x009a, 0x009a, + 0x00a5, 0x00a5, 0x00af, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, + 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00cf, 0x00cf, 0x00d9, 0x00d9, 0x00d9, + 0x00e2, 0x00e2, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, + 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00ec, 0x00f5, 0x00f5, 0x00fe, + // Entry 80 - BF + 0x00fe, 0x010b, 0x010b, 0x010b, 0x010b, 0x0114, 0x011b, 0x0125, + 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, 0x0125, + 0x0125, 0x0125, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x0136, 0x0136, 0x013e, 0x013e, 0x013e, 0x0149, 0x0149, 0x0149, + 0x0149, 0x0149, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0159, + 0x015f, 0x015f, 0x015f, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0171, 0x0171, 0x0179, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry C0 - FF + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 100 - 13F + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 140 - 17F + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 180 - 1BF + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 1C0 - 1FF + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x018c, + }, + }, + { // si + siLangStr, + siLangIdx, + }, + { // sk + skLangStr, + skLangIdx, + }, + { // sl + slLangStr, + slLangIdx, + }, + { // smn + "arabiakielâvielgisruošâkielâbulgariakielâtÅ¡eekikielâkirkkoslaavitanskaki" + + "elâsaksakielâkreikakielâengâlâskielâespanjakielâeestikielâsuomâkielâ" + + "ranskakielâiirikielâhepreakielâkroatiakielâuÅ‹garkielâarmeniakielâisl" + + "andkielâitaliakielâjaapaankielâkurdikielâkomikielâläättinkielâlatvia" + + "kielâmaorikielâmakedoniakielâmongoliakielâneepaalkielâhollandkielâtá" + + "rukielâ nynorsktárukielâpuolakielâportugalkielâromaniakielâruošâkiel" + + "âsanskritkielâtavesämikielâsloveniakielâserbiakielâruotâkielâturkki" + + "kielâukrainakielâvietnamkielâkiinakielâainukielâmarikielâtoovláškrei" + + "kakielâmokšâkielâviestârmarikielâtoovláštárukielâroomaankielâmaadâsä" + + "mikielâjuulevsämikielâanarâškielânuorttâlâškielâudmurtkielâvepsäkiel" + + "âkantonkiinakielâNuorttâriijkâ saksakielâAustralia engâlâskielâKana" + + "da engâlâskielâoovtâkiärdánis kiinakielâärbivuáválâš kiinakielâ", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0020, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x003b, 0x0047, 0x0047, 0x0047, 0x0053, + 0x005e, 0x005e, 0x005e, 0x005e, 0x006a, 0x0079, 0x0079, 0x0086, + 0x0091, 0x0091, 0x0091, 0x0091, 0x009d, 0x009d, 0x009d, 0x00a9, + 0x00a9, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, + 0x00bf, 0x00bf, 0x00bf, 0x00cc, 0x00cc, 0x00d8, 0x00e5, 0x00e5, + // Entry 40 - 7F + 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00f1, + 0x00fd, 0x00fd, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, + 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x0115, + 0x011f, 0x011f, 0x011f, 0x012e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x013a, 0x013a, 0x013a, 0x0145, 0x0154, + 0x0154, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x016f, 0x016f, 0x017c, 0x018f, 0x019a, 0x019a, 0x019a, 0x019a, + 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x019a, 0x01a5, + // Entry 80 - BF + 0x01a5, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01c0, 0x01cd, 0x01cd, + 0x01db, 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, 0x01ea, 0x01f8, + 0x01f8, 0x01f8, 0x01f8, 0x01f8, 0x0204, 0x0204, 0x0204, 0x0204, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x0229, + 0x0229, 0x0229, 0x0229, 0x0236, 0x0236, 0x0236, 0x0236, 0x0236, + 0x0236, 0x0236, 0x0236, 0x0241, 0x0241, 0x0241, 0x0241, 0x0241, + 0x0241, 0x0241, 0x0241, 0x0241, 0x024b, 0x024b, 0x024b, 0x024b, + // Entry C0 - FF + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, 0x024b, + 0x024b, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + // Entry 100 - 13F + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, + 0x0255, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + // Entry 140 - 17F + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + // Entry 180 - 1BF + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, + 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x0277, + 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, + 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0289, 0x0289, 0x0289, + 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, + 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, 0x0289, + 0x0289, 0x0289, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + // Entry 1C0 - 1FF + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x029d, 0x02aa, 0x02aa, + 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, + 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, + 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, + 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02aa, 0x02bb, 0x02cc, + // Entry 200 - 23F + 0x02da, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, + 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, + 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, + 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, + 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, 0x02ed, + 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x0305, 0x0305, + 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, + 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, 0x0305, + // Entry 240 - 27F + 0x0305, 0x0305, 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, + 0x0316, 0x0316, 0x0316, 0x0316, 0x0316, 0x0331, 0x0331, 0x034a, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, 0x0360, + 0x037d, 0x039a, + }, + }, + { // sn + "chiAkanichiAmaricchiArabuchiBelarusichiBulgarianchiBengalichiCzechchiJer" + + "imanichiGreekChirunguchiSpanishchiPeshiyachiFurenchichiHausachiHindi" + + "chiHungarichiIndonesiachiIgbochiTarianachiJapanichiJavachiKhemachiKo" + + "riachiMalaychiBurmachiNepalichiDutchchiPunjabichiPolishchiPutukezich" + + "iRomanianchiRashiyachiRwandachiShonachiSomalichiSwedishchiTamilchiTh" + + "aichiTurkishchiUkreniachiUrduchiVietnamchiYorubachiChinesechiZulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, + 0x0030, 0x0030, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x004d, 0x004d, 0x004d, 0x004d, 0x0055, 0x005d, 0x005d, 0x0067, + 0x0067, 0x0067, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x007c, + 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x0084, + 0x0084, 0x008c, 0x008c, 0x008c, 0x008c, 0x0096, 0x0096, 0x0096, + // Entry 40 - 7F + 0x0096, 0x00a2, 0x00a2, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00b3, 0x00b3, 0x00bc, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00cb, 0x00cb, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00db, 0x00db, 0x00e3, 0x00e3, 0x00e3, + 0x00ec, 0x00ec, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00fe, 0x00fe, 0x0107, + // Entry 80 - BF + 0x0107, 0x0112, 0x0112, 0x0112, 0x0112, 0x011d, 0x0127, 0x0130, + 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, + 0x0130, 0x0138, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, + 0x014b, 0x014b, 0x0153, 0x0153, 0x0153, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, + 0x0175, 0x0175, 0x0175, 0x017f, 0x017f, 0x017f, 0x017f, 0x017f, + 0x017f, 0x0188, 0x0188, 0x0192, 0x0199, + }, + }, + { // so + "AkanAxmaariCarabiBeleruusiyaanBulgeeriyaanBangaaliJeegJarmalGiriikIngiri" + + "isiIsbaanishFaarisiFaransiisFiriisiyan GalbeedHawsaHindiHangariyaanI" + + "ndunuusiyaanIgboTalyaaniJabbaaniisJafaaniisKamboodhianKuuriyaanMalaa" + + "yBurmeseNebaaliHolandaysBunjaabiBoolishBoortaqiisRomankaRuushRwandaS" + + "oomaaliSwiidhisTamiilTaaylandaysTurkishYukreeniyaanUrduuFiitnaamaysY" + + "oruubaJayniisZuulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x000b, 0x000b, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001e, 0x002a, + 0x002a, 0x002a, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, 0x0032, + 0x0032, 0x0032, 0x0032, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x003c, 0x003c, 0x003c, 0x003c, 0x0042, 0x004b, 0x004b, 0x0054, + 0x0054, 0x0054, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x0064, + 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x007b, + 0x007b, 0x0080, 0x0080, 0x0080, 0x0080, 0x008b, 0x008b, 0x008b, + // Entry 40 - 7F + 0x008b, 0x0098, 0x0098, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x00a4, 0x00a4, 0x00ae, 0x00b7, 0x00b7, 0x00b7, 0x00b7, 0x00b7, + 0x00b7, 0x00b7, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, 0x00cb, + 0x00cb, 0x00cb, 0x00cb, 0x00d1, 0x00d1, 0x00d8, 0x00d8, 0x00d8, + 0x00df, 0x00df, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00f0, 0x00f0, 0x00f7, + // Entry 80 - BF + 0x00f7, 0x0101, 0x0101, 0x0101, 0x0101, 0x0108, 0x010d, 0x0113, + 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, + 0x0113, 0x0113, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, 0x011b, + 0x0123, 0x0123, 0x0129, 0x0129, 0x0129, 0x0134, 0x0134, 0x0134, + 0x0134, 0x0134, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x0147, + 0x014c, 0x014c, 0x014c, 0x0157, 0x0157, 0x0157, 0x0157, 0x0157, + 0x0157, 0x015e, 0x015e, 0x0165, 0x016a, + }, + }, + { // sq + sqLangStr, + sqLangIdx, + }, + { // sr + srLangStr, + srLangIdx, + }, + { // sr-Latn + srLatnLangStr, + srLatnLangIdx, + }, + { // sv + svLangStr, + svLangIdx, + }, + { // sv-FI + "kirgiziska", + []uint16{ // 91 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000a, + }, + }, + { // sw + swLangStr, + swLangIdx, + }, + { // sw-CD + "KiakanKibanglaKicheckiKingerezaKiswahili ya Kongo", + []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 40 - 7F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 80 - BF + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry C0 - FF + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 100 - 13F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 140 - 17F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 180 - 1BF + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 1C0 - 1FF + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 200 - 23F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 240 - 27F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x0031, + }, + }, + { // ta + taLangStr, + taLangIdx, + }, + { // te + teLangStr, + teLangIdx, + }, + { // teo + "KiakanKiamhariKiarabuKibelarusiKibulgariaKibanglaKicheckiKijerumaniKigir" + + "ikiKingerezaKihispaniaKiajemiKifaransaKihausaKihindiKihungariKiindon" + + "esiaKiigboKiitalianoKijapaniKijavaKikambodiaKikoreaKimalesiaKiburmaK" + + "inepaliKiholanziKipunjabiKipolandiKirenoKiromaniaKirusiKinyarwandaKi" + + "somaliKiswidiKitamilKitailandiKiturukiKiukraniaKiurduKivietinamuKiyo" + + "rubaKichinaKizuluKiteso", + []uint16{ // 530 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000e, 0x000e, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001f, 0x0029, + 0x0029, 0x0029, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, 0x0054, 0x0054, 0x005e, + 0x005e, 0x005e, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0075, + 0x0075, 0x007c, 0x007c, 0x007c, 0x007c, 0x0085, 0x0085, 0x0085, + // Entry 40 - 7F + 0x0085, 0x0090, 0x0090, 0x0096, 0x0096, 0x0096, 0x0096, 0x0096, + 0x00a0, 0x00a0, 0x00a8, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00b8, 0x00b8, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00bf, 0x00c8, 0x00c8, 0x00cf, 0x00cf, 0x00cf, + 0x00d7, 0x00d7, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e9, 0x00e9, 0x00f2, + // Entry 80 - BF + 0x00f2, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0101, 0x0107, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x0121, 0x0121, 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x013a, 0x013a, 0x013a, 0x013a, 0x013a, 0x0143, + 0x0149, 0x0149, 0x0149, 0x0154, 0x0154, 0x0154, 0x0154, 0x0154, + 0x0154, 0x015c, 0x015c, 0x0163, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry C0 - FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 100 - 13F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 140 - 17F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 180 - 1BF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 1C0 - 1FF + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 200 - 23F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + 0x0169, 0x016f, + }, + }, + { // th + thLangStr, + thLangIdx, + }, + { // ti + "አáሪቃንሰኛትዊአáˆáˆáˆ¨áŠ›á‹“ረበኛአዜርባይጃንኛቤላራሻኛቡáˆáŒ‹áˆªáŠ›á‰ áŠ•áŒ‹áˆŠáŠ›á‰¥áˆ¬á‰¶áŠ•á‰¦áˆµáŠ’ያንካታላንቼክኛወáˆáˆ½á‹´áŠ’ሽጀርመንáŒáˆªáŠ¨áŠ›áŠ¥" + + "ንáŒáˆŠá‹áŠ›áŠ¤áˆµáራንቶስá“ኒሽኤስቶኒአንባስክኛáርሲያኛáŠáŠ’ሽá‹áˆ®áŠ›áˆáˆ¨áŠ•áˆ³á‹­áŠ›áሪሰኛአይሪሽእስኮትስ ጌáˆáŠ­áŠ›áŒ‹áˆˆá‰ªáŠ›áŒ“ራ" + + "ኒጉጃራቲኛዕብራስጥሕንደኛክሮሽያንኛሀንጋሪኛኢንቴር ቋንቋእንዶኑሲኛአይስላንደኛጣሊያንኛጃá“ንኛጃቫንኛጊዮርጊያኛ" + + "ካማደኛኮሪያኛኩርድሽኪሩጋዚላቲንኛሊቱአኒየንላቲቪያንማክዶኒኛማላያላáˆáŠ›áˆ›áˆ«á‰²áŠ›áˆ›áˆ‹á‹­áŠ›áˆ›áˆá‰²áˆµáŠ›áŠ”á–ሊኛደችኖርዌይኛ" + + " (ናይ áŠáŠ–ርስክ)ኖርዌጂያንኦኪታንኛኦሪያá‘ንጃቢኛá–ሊሽá“ሽቶá–ርቱጋሊኛሮማኒያንራሽኛስንሃáˆáŠ›áˆµáˆŽá‰¨áŠ­áŠ›áˆµá‰á‰ªáŠ›áŠ áˆá‰¤áŠ’" + + "ኛሰርቢኛሰሴቶሱዳንኛስዊድንኛሰዋሂሊኛታሚáˆáŠ›á‰°áˆ‰áŒ‰áŠ›á‰³á‹­áŠ›á‰µáŒáˆ­áŠ›áŠ“á‹­ ቱርኪ ሰብዓይ (ቱርካዊ)ቱርከኛዩክረኒኛኡር" + + "ዱኛኡá‹á‰ áŠ­áŠ›á‰ªá‰µáŠ“áˆáŠ›á‹žáˆ³áŠ›á‹ªá‹²áˆ½á‹™áˆ‰áŠ›á‰³áŒ‹áˆŽáŒˆáŠ›áŠ­áˆŠáŠ•áŒáŠ¦áŠ•áŠ›á–ርቱጋáˆáŠ› (ናይ ብራዚáˆ)á–ርቱጋáˆáŠ› (ናይ á–ርቱጋáˆ)" + + "ሰርቦ- ክሮዊታን", + []uint16{ // 607 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0015, 0x001b, 0x002a, 0x002a, + 0x0036, 0x0036, 0x0036, 0x0036, 0x004e, 0x004e, 0x005d, 0x006c, + 0x006c, 0x006c, 0x007b, 0x007b, 0x0087, 0x0096, 0x00a2, 0x00a2, + 0x00a2, 0x00a2, 0x00a2, 0x00ab, 0x00ab, 0x00ab, 0x00b4, 0x00bd, + 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00d5, 0x00e7, 0x00f9, 0x0105, + 0x0117, 0x0123, 0x0132, 0x0132, 0x013b, 0x013b, 0x0144, 0x0156, + 0x0162, 0x016e, 0x018a, 0x0196, 0x019f, 0x01ae, 0x01ae, 0x01ae, + 0x01bd, 0x01c9, 0x01c9, 0x01db, 0x01db, 0x01ea, 0x01ea, 0x01ea, + // Entry 40 - 7F + 0x0200, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0227, + 0x0236, 0x0236, 0x0242, 0x024e, 0x0260, 0x0260, 0x0260, 0x0260, + 0x0260, 0x0260, 0x0260, 0x026c, 0x0278, 0x0278, 0x0278, 0x0284, + 0x0284, 0x0284, 0x0290, 0x029c, 0x029c, 0x029c, 0x029c, 0x029c, + 0x029c, 0x02ae, 0x02ae, 0x02bd, 0x02bd, 0x02bd, 0x02bd, 0x02cc, + 0x02de, 0x02de, 0x02ea, 0x02f6, 0x0305, 0x0305, 0x0305, 0x0305, + 0x0311, 0x0311, 0x0317, 0x033f, 0x0351, 0x0351, 0x0351, 0x0351, + 0x0360, 0x0360, 0x0360, 0x0369, 0x0369, 0x0378, 0x0378, 0x0381, + // Entry 80 - BF + 0x038a, 0x039c, 0x039c, 0x039c, 0x039c, 0x03ab, 0x03b4, 0x03b4, + 0x03b4, 0x03b4, 0x03b4, 0x03b4, 0x03b4, 0x03c3, 0x03d2, 0x03de, + 0x03de, 0x03de, 0x03de, 0x03ed, 0x03f9, 0x03f9, 0x0402, 0x040e, + 0x041d, 0x042c, 0x0438, 0x0444, 0x0444, 0x044d, 0x0459, 0x0485, + 0x0485, 0x0485, 0x0491, 0x0491, 0x0491, 0x0491, 0x0491, 0x04a0, + 0x04ac, 0x04bb, 0x04bb, 0x04ca, 0x04ca, 0x04ca, 0x04ca, 0x04d3, + 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + // Entry C0 - FF + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + // Entry 100 - 13F + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, + 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04e5, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + // Entry 140 - 17F + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + // Entry 180 - 1BF + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + // Entry 1C0 - 1FF + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + // Entry 200 - 23F + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, 0x04f4, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + // Entry 240 - 27F + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0531, 0x055c, 0x055c, 0x0576, + }, + }, + { // to + "lea fakaÊ»afÄlalea fakaÊ»apakasialea fakaÊ»avesitanilea fakaÊ»afilikanalea f" + + "akaÊ»akanilea fakaÊ»amelikilea fakaÊ»alakonilea fakaÊ»alepealea fakaÊ»asa" + + "mialea fakaÊ»avalikilea fakaÊ»aimalalea fakaÊ»asapaisanilea fakapasikil" + + "ilea fakapelalusilea fakapulukalialea fakapisilamalea fakapamipalale" + + "a fakapengikalilea fakatipetilea fakapeletonilea fakaposinialea faka" + + "katalanilea fakaseselea fakakamololea fakakÅsikalea fakakelÄ«lea faka" + + "sekilea fakasilavia-fakasiasilea fakasuvasalea fakauÄ“lesilea fakaten" + + "imaÊ»akelea fakasiamanelea fakativehilea fakaputenilea fakaÊ»euelea fa" + + "kakalisilea fakapÄlangilea fakaÊ»esipulanitolea fakasipÄ“nisilea fakaÊ»" + + "esitÅnialea fakapÄsikilea fakapÄ“sialea fakafulÄlea fakafinilanilea f" + + "akafisilea fakafaloelea fakafalanisÄ“lea fakafilisia-hihifolea fakaÊ»a" + + "elanilea fakakaelikilea fakakalisialea fakakualanilea fakakutalatile" + + "a fakamangikÄ«lea fakahausalea fakahepelÅ«lea fakahinitÄ«lea fakahili-m" + + "otulea fakakuloisialea fakahaitilea fakahungakalialea fakaÊ»Ämenialea" + + " fakahelelolea fakavahaÊ»alealea fakaÊ»initÅnesialea fakavahaÊ»alingikÄ“" + + "lea fakaÊ»ikipÅlea fakasisiuani-Ä«lea fakaÊ»inupiakilea fakaÊ»itolea fak" + + "aÊ»aisilanilea fakaʻītalilea fakaÊ»inuketitutilea fakasiapanilea fakas" + + "avalea fakaseÅsialea fakakongikÅlea fakakikuiulea fakakuaniamalea fa" + + "kakasakilea fakakalaÊ»alisutilea fakakamipÅtialea fakakanatalea fakak" + + "Ålealea fakakanulilea fakakÄsimilalea fakakulitÄ«lea fakakomilea fak" + + "akoniualilea fakakÄ«sisilea fakalatinalea fakalakisimipekilea fakakan" + + "italea fakalimipÅ«likilea lingikalalea fakalaulea fakalituanialea fak" + + "alupa-katangalea fakalativialea fakamalakasilea fakamÄsololea fakama" + + "ulilea fakamasitÅnialea fakaÊ»initia-malÄialamilea fakamongokÅlialea " + + "fakamalatilea fakamaleilea fakamalitalea fakapemalea fakanaululea fa" + + "kanetepele-tokelaulea fakanepalilea fakanetongikÄlea fakahÅlanilea f" + + "akanoauÄ“-ninosikilea fakanouaÄ“-pokimalilea fakanetepele-tongalea fak" + + "anavaholea fakanianisalea fakaÊ»okitanelea fakaÊ»osipiuÄlea fakaÊ»olomo" + + "lea fakaÊ»initia-Ê»olÄealea fakaÊ»osetikilea fakapÅ«nusapilea fakapÄlile" + + "a fakapolanilea fakapasitÅlea fakapotukalilea fakakuetisalea fakalai" + + "to-lomÄ“nialea fakaluanitilea fakalÅmenialea fakalÅ«sialea fakakiniÄua" + + "nitalea fakasanisukulitilea fakasaletÄ«nialea fakasÄ«nitilea fakasami-" + + "tokelaulea fakasangikÅlea fakasingihalalea fakasolÄvakilea fakasolov" + + "enialea fakahaÊ»amoalea fakasionalea fakasomalilea fakaÊ»alapÄ“nialea f" + + "akasÄ“pialea fakasuatilea fakasoto-tongalea fakasunitÄlea fakasuÄ“teni" + + "lea fakasuahililea fakatamililea fakaÊ»initia-telukulea fakatÄsikilea" + + " fakatailanilea fakatikilinialea fakatÄ“kimenilea suanalea fakatongal" + + "ea fakatoakelea fakatisongalea fakatatalelea fakatahitilea fakaÊ»uikÅ«" + + "lilea fakaʻūkalaÊ»inelea fakaʻūtÅ«lea fakaÊ»usipekilea fakavenitÄlea fa" + + "kavietinamilea fakavolapikilea fakaÊ»ualonialea fakaÊ»uolofolea fakatÅ" + + "salea fakaÄ«tisilea fakaÊ»iÅlupalea fakasuangilea fakasiainalea fakasu" + + "lulea fakaÊ»atisÄ“lea fakaÊ»akolilea fakaÊ»atangimÄ“lea fakaÊ»atikÄ“lea fak" + + "aÊ»alepea-tunÄ«sialea fakaÊ»afilihililea fakaÊ»akihemilea fakaÊ»ainulea f" + + "akaÊ»akatialea fakaÊ»alapamalea fakaÊ»aleutilea fakaÊ»alapÄ“nia-kekilea f" + + "akaÊ»alitai-tongalea fakapÄlangi-motuÊ»alea fakaÊ»angikalea fakaÊ»alÄmit" + + "ilea fakamapuselea fakaÊ»alaonalea fakaÊ»alapaholea fakaÊ»alepea-Ê»aisil" + + "ialea fakaÊ»alauakilea fakaÊ»alepea-molokolea fakaÊ»alepea-Ê»isipitelea " + + "fakaÊ»asulea fakaÊ»ilonga-Ê»amelikalea fakaÊ»asitÅ«lialea fakakotavalea f" + + "akaÊ»auatilea fakapalusilea fakapalilea fakapavÄlialea fakapasaÊ»alea " + + "fakapamunilea fakatÅpe-pÄ“tekilea fakakomalalea fakapesalea fakapÄ“mip" + + "alea fakapetavilea fakapenalea fakapafutilea fakapatakalea fakapalus" + + "i-hihifolea fakaposipulilea fakapikolilea fakapinilea fakapanisalile" + + "a fakakomelea fakasikesikÄlea fakapisinupilialea fakapakitiÄlilea fa" + + "kapalailea fakapalahuilea fakapÅtolea fakaÊ»akÅselea fakapuliatilea f" + + "akapukisilea fakapululea fakapilinilea fakametÅ«mipalea fakakatolea f" + + "akakalipalea fakakaiukalea fakaÊ»atisamilea fakasepuanolea fakakikale" + + "a fakasÄ«pisalea fakasakatÄilea fakatÅ«kelea fakamalÄ«lea fakasinuki-ta" + + "kotelea fakasokitaulea fakasipeuianilea fakaselokÄ«lea fakaseienelea " + + "fakakÅ«tisi-lolotolea fakakopitikalea fakakapisenolea fakatoake-kilim" + + "ealea fakakasiupialea fakatakotalea fakatalakuÄlea fakataitalea faka" + + "telaualelea fakasilavelea fakatÅkelipilea fakatingikÄlea fakatisÄmal" + + "ea fakatokililea fakasÅpia-hifolea fakatusuni-lolotolea fakatualalea" + + " fakahÅlani-lotolotolea fakaiola-fonÄ«lea fakatiulalea fakatasakalea " + + "fakaÊ»emipÅ«lea fakaÊ»efikilea fakaÊ»emilialea fakaÊ»isipitemuÊ»alea fakaÊ»" + + "ekaiukilea fakaÊ»elamitelea fakapÄlangi-lotolotolea fakaiÅ«piki-loloto" + + "lea fakaÊ»euÅnitolea fakaÊ»ekisitematulalea fakafangilea fakafilipaini" + + "lea fakafinilani-tÅnetalelea fakafÅngilea fakafalanisÄ“-kasunilea fak" + + "afalanisÄ“-lotolotolea fakafalanisÄ“-motuÊ»alea fakaÊ»Äpitanolea fakafil" + + "isia-tokelaulea fakafilisia-hahakelea fakafulilÄnilea fakakÄlea faka" + + "kakausilea fakasiaina-kanilea fakakaiolea fakakapaialea fakateli-sol" + + "oasitelialea fakasiÊ»isilea fakakilipasilea fakakilakilea fakasiamane" + + "-hake-lotolotolea fakasiamane-hake-motuÊ»alea fakakonikanÄ«-koanilea f" + + "akakonitÄ«lea fakakolonitalolea fakakotikalea fakakÄ“polea fakakalisim" + + "uÊ»alea fakasiamane-suisilanilea fakaÊ»uaiÅ«lea fakafalefalelea fakakus" + + "Ä«lea fakaÊ»uÄ«sinilea fakahaitalea fakasiaina-hakalea fakahauaiÊ»ilea " + + "fakahinitÄ«-fisilea fakahilikainonilea fakahititelea fakamÅngilea fak" + + "asÅpia-hakelea fakasiaina-siangilea fakahupalea fakaÊ»ipanilea fakaÊ»i" + + "pipiolea fakaÊ»ilokolea fakaÊ»ingusilea fakaÊ»ingilianilea fakapÄlangi-" + + "samaikalea fakalosipanilea fakanikÅmipalea fakamasamelea fakaÊ»iuteo-" + + "pÄ“sialea fakaÊ»iuteo-Ê»alepealea fakaÊ»iutilanilea fakakala-kalipakilea" + + " fakakapilelea fakakasinilea fakasisÅ«lea fakakamipalea fakakavilea f" + + "akakapÄlitialea fakakanÄ“mipulea fakatiapilea fakamakÅnitelea fakakap" + + "uvelitianulea fakakeniangilea fakakololea fakakaingangilea fakakÄsil" + + "ea fakakÅtanilea fakakoila-sÄ«nilea fakakoualilea fakakilimanisikÄ«lea" + + " fakakakolea fakakalenisinilea fakakimipÅ«nitulea fakakomi-pelemiakil" + + "ea fakakonikanÄ«lea fakakosilaelea fakakepelelea fakakalate-palakilil" + + "ea fakakiliolea fakakinaraiÄlea fakakalelialea fakakulukilea fakasia" + + "mipalalea fakapafialea fakakolongialea fakakumikilea fakakutenailea " + + "fakalatinolea fakalangilea fakalÄnitalea fakalamipÄlea fakalesikiale" + + "a fakakavakava-foÊ»oulea fakalikulialea fakalivonialea fakalakotalea " + + "fakalomipÄtilea fakamongikÅlea fakalosilea fakaluli-tokelaulea fakal" + + "atakalelea fakalupa-lulualea fakaluisenolea fakalunitÄlea fakaluolea" + + " fakamisolea fakaluÄ«alea fakasiaina-faÊ»utohilea fakalasulea fakamatu" + + "lalea fakamafalea fakamakahilea fakamaitililea fakamakasalilea fakam" + + "anitÄ«ngikolea fakamasailea fakamapalea fakamokisiÄlea fakamanetalile" + + "a fakamenetÄ«lea fakamelulea fakamolisienilea fakaÊ»aelani-lotolotolea" + + " fakamakÅ«a-meÊ»etolea fakametalea fakamikemakilea fakaminangikapaulea" + + " fakamanisÅ«lea fakamanipulilea fakamohaukilea fakamosilea fakamali-h" + + "ihifolea fakamunitangilea tuifiolea fakakilekilea fakamilanitÄ“silea " + + "fakamaliwalilea fakamenitauailea fakamienelea fakaÊ»elisialea fakamas" + + "anitelanilea fakasiaina-mininanilea fakanapoletanolea fakanamalea fa" + + "kasiamane-hifolea fakaneualilea fakaniasilea fakaniuÄ“lea fakaÊ»aonasa" + + "lea fakakuasiolea fakangiemipÅnilea fakanokailea fakanoauÄ“-motuÊ»alea" + + " fakanovialelea fakanikÅlea fakasoto-tokelaulea fakanuelilea fakaneu" + + "ali-motuÊ»alea fakaniamiuesilea fakanianikolelea fakaniololea fakanes" + + "imalea fakaÊ»osÄ“selea fakatoake-Ê»otomanilea fakapangasinanilea fakapÄ" + + "lavilea fakapamipangalea fakapapiamÄ“nitolea fakapalaulea fakapikÄtil" + + "ea fakasiamane-penisilivanialea fakasiamane-lafalafalea fakapÄ“sia-mo" + + "tuÊ»alea fakasiamane-palatinelea fakafoinikialea fakapiemonitelea fak" + + "aponitikilea fakaponapÄ“lea fakapulÅ«sialea fakapolovenisi-motuÊ»alea f" + + "akakÄ«sÄ“lea fakakuitisa-simipolasolea fakalasasitanilea fakalapanuile" + + "a fakalalotongalea fakalomaniololea fakalifilea fakalomipÅlea fakalo" + + "manilea fakalotumalea fakalusinilea fakalovianalea fakaÊ»alomanialea " + + "fakaluÄlea fakasanitauelea fakasakalea fakasamalitani-Ê»alÄmitilea fa" + + "kasamipululea fakasasakilea fakasanitalilea fakasaulasitilÄlea fakan" + + "gÄmipailea fakasangulea fakasisÄ«lialea fakasikotilanilea fakasaletÄ«n" + + "ia-sasalesulea faka-tonga ‘o Ketesilea fakasenekalea fakasenalea fak" + + "aselilea fakaselikupilea fakakoilapolo-senilea fakaÊ»aelani-motuÊ»alea" + + " fakasamositialea fakataselihitilea fakasianilea fakaÊ»alepea-sÄtilea" + + " fakasitamolea fakasilesia-hifolea fakaselaiÄlea fakasami-tongalea f" + + "akasami-lulelea fakasami-Ê»inalilea fakasami-sikolitalea fakasoninekÄ“" + + "lea fakasokitianalea fakasuranane-tongikÅlea fakasÄ“lÄ“lelea fakasahol" + + "ea fakafilisia-satÄ“lanilea fakasukumalea fakasusÅ«lea fakasumelialea " + + "fakakomololea fakasuliÄiÄ-muÊ»alea fakasuliÄiÄlea fakasilesialea faka" + + "tululea fakatimenÄ“lea fakatesolea fakatelenolea fakatetumulea fakati" + + "kilÄ“lea fakativilea fakatokelaulea fakasÄkulilea fakakilingonilea fa" + + "katilingikÄ«telea fakatalisilea fakatamasiekilea fakaniasa-tongalea f" + + "akatoki-pisinilea fakatuloiolea fakatalokolea fakasakÅnialea fakatis" + + "Ä«misianilea fakatati-moselemilea fakatumepukalea fakatÅ«valulea faka" + + "tasauakilea fakatuvÄ«nialea fakatamasaiti-Ê»atilasi-lolotolea fakaÊ»uti" + + "mulitilea fakaʻūkalitilea fakaÊ»umipÅ«nitulea fakaÊ»ilonga-tefitolea fa" + + "kavailea fakavenÄ“sialea fakavepisilea fakavelamingi-hihifolea fakafa" + + "lanikoni-lolotolea fakavotikilea fakavÅlolea fakavÅ«nisolea fakaÊ»uali" + + "selilea fakaÊ»uolaitalea fakaÊ»ualailea fakaÊ»uasiÅlea fakaÊ»uÄlipililea" + + " fakasiaina-uÅ«lea fakakalimikilea fakamingilelialea fakasokalea faka" + + "Ê»iaolea fakaÊ»iapilea fakaÊ»iangipenilea fakaÊ»iÄ“mipalea fakaneʻēngatÅ«" + + "lea fakakuangitongilea fakasapotekilea fakaÊ»ilonga-pilisilea fakasÄ“l" + + "anilea fakasenakalea fakatamasaiti-molokolea fakasuniÊ»ikai ha lealea" + + " fakasÄsÄlea fakaÊ»alepea (mÄmani)lea fakasiamane-Ê»aositulialea fakas" + + "iamane-hake-suisilanilea fakapÄlangi-Ê»aositelÄ“lialea fakapÄlangi-kÄn" + + "atalea fakapilitÄnialea fakapÄlangi-Ê»amelikalea fakasipÄ“nisi lÄtini-" + + "Ê»amelikalea fakasipÄ“nisi-‘iulopelea fakasipÄ“nisi-mekisikoulea fakaf" + + "alanisÄ“-kÄnatalea fakafalanisÄ“-suisilanilea fakasakisoni-hifolea fak" + + "ahÅlani-pelesiumelea fakapotukali-palÄsililea fakapotukali-Ê»iulopele" + + "a fakamolitÄvialea fakakuloisia-sÄ“pialea fakasuahili-kongikÅlea faka" + + "siaina-fakafaingofualea fakasiaina-tukufakaholo", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0022, 0x0035, 0x0048, 0x0057, 0x0068, 0x0079, + 0x0089, 0x0099, 0x00aa, 0x00ba, 0x00ce, 0x00de, 0x00ee, 0x00ff, + 0x010f, 0x011f, 0x0130, 0x013e, 0x014e, 0x015d, 0x016d, 0x0179, + 0x0187, 0x0196, 0x01a3, 0x01af, 0x01c8, 0x01d6, 0x01e5, 0x01f8, + 0x0207, 0x0215, 0x0223, 0x0230, 0x023e, 0x024e, 0x0263, 0x0274, + 0x0287, 0x0296, 0x02a4, 0x02b1, 0x02c1, 0x02cd, 0x02da, 0x02eb, + 0x0301, 0x0311, 0x0320, 0x032f, 0x033e, 0x034e, 0x035e, 0x036b, + 0x037a, 0x0389, 0x039a, 0x03aa, 0x03b7, 0x03c9, 0x03da, 0x03e8, + // Entry 40 - 7F + 0x03fa, 0x040f, 0x0426, 0x0436, 0x0449, 0x045b, 0x0468, 0x047a, + 0x048a, 0x049f, 0x04ae, 0x04ba, 0x04c9, 0x04d9, 0x04e7, 0x04f7, + 0x0505, 0x051a, 0x052c, 0x053a, 0x0548, 0x0556, 0x0567, 0x0576, + 0x0582, 0x0592, 0x05a1, 0x05af, 0x05c3, 0x05d1, 0x05e4, 0x05f1, + 0x05fc, 0x060c, 0x0620, 0x062f, 0x063f, 0x064e, 0x065b, 0x066d, + 0x0689, 0x069c, 0x06aa, 0x06b7, 0x06c5, 0x06d1, 0x06de, 0x06f6, + 0x0704, 0x0716, 0x0725, 0x073c, 0x0753, 0x0769, 0x0777, 0x0786, + 0x0797, 0x07a9, 0x07b8, 0x07d1, 0x07e2, 0x07f3, 0x0800, 0x080e, + // Entry 80 - BF + 0x081d, 0x082d, 0x083c, 0x0852, 0x0861, 0x0871, 0x087f, 0x0893, + 0x08a7, 0x08b9, 0x08c8, 0x08dc, 0x08ec, 0x08fd, 0x090e, 0x091f, + 0x092f, 0x093c, 0x094a, 0x095d, 0x096b, 0x0978, 0x098a, 0x0999, + 0x09a9, 0x09b8, 0x09c6, 0x09dd, 0x09ec, 0x09fb, 0x0a0c, 0x0a1d, + 0x0a26, 0x0a33, 0x0a40, 0x0a4f, 0x0a5d, 0x0a6b, 0x0a7c, 0x0a91, + 0x0aa0, 0x0ab1, 0x0ac0, 0x0ad1, 0x0ae1, 0x0af2, 0x0b02, 0x0b0f, + 0x0b1d, 0x0b2e, 0x0b3c, 0x0b4a, 0x0b56, 0x0b66, 0x0b75, 0x0b88, + 0x0b98, 0x0bb1, 0x0bc4, 0x0bd5, 0x0be3, 0x0bf3, 0x0c04, 0x0c14, + // Entry C0 - FF + 0x0c2c, 0x0c42, 0x0c5a, 0x0c6a, 0x0c7c, 0x0c8a, 0x0c9a, 0x0cab, + 0x0cc5, 0x0cd6, 0x0ced, 0x0d07, 0x0d14, 0x0d2e, 0x0d41, 0x0d4f, + 0x0d5e, 0x0d6c, 0x0d78, 0x0d88, 0x0d97, 0x0da5, 0x0dba, 0x0dc8, + 0x0dd4, 0x0de3, 0x0df1, 0x0dfd, 0x0e0b, 0x0e19, 0x0e2e, 0x0e3e, + 0x0e4c, 0x0e58, 0x0e68, 0x0e74, 0x0e85, 0x0e98, 0x0eaa, 0x0eb7, + 0x0ec6, 0x0ed3, 0x0ee3, 0x0ef2, 0x0f00, 0x0f0c, 0x0f1a, 0x0f2b, + 0x0f37, 0x0f45, 0x0f53, 0x0f64, 0x0f73, 0x0f7f, 0x0f8e, 0x0f9e, + 0x0fab, 0x0fb8, 0x0fcd, 0x0fdc, 0x0fed, 0x0ffc, 0x100a, 0x1020, + // Entry 100 - 13F + 0x1030, 0x1040, 0x1055, 0x1065, 0x1073, 0x1083, 0x1090, 0x10a0, + 0x10ae, 0x10bf, 0x10cf, 0x10de, 0x10ec, 0x10ff, 0x1114, 0x1121, + 0x1139, 0x114b, 0x1158, 0x1166, 0x1176, 0x1185, 0x1195, 0x11ab, + 0x11bc, 0x11cd, 0x11e6, 0x11fc, 0x120e, 0x1225, 0x1232, 0x1243, + 0x125d, 0x126b, 0x1283, 0x129d, 0x12b6, 0x12c8, 0x12df, 0x12f5, + 0x1306, 0x1311, 0x1320, 0x1333, 0x133f, 0x134d, 0x1366, 0x1375, + 0x1385, 0x1393, 0x13b0, 0x13cc, 0x13e3, 0x13f2, 0x1404, 0x1412, + 0x141f, 0x1432, 0x144b, 0x145a, 0x146a, 0x1477, 0x1488, 0x1495, + // Entry 140 - 17F + 0x14a8, 0x14b8, 0x14cc, 0x14df, 0x14ed, 0x14fb, 0x150e, 0x1523, + 0x152f, 0x153e, 0x154e, 0x155d, 0x156d, 0x1580, 0x1598, 0x15a8, + 0x15b9, 0x15c7, 0x15dd, 0x15f5, 0x1607, 0x161c, 0x162a, 0x1638, + 0x1645, 0x1653, 0x165f, 0x1671, 0x1682, 0x168f, 0x16a0, 0x16b5, + 0x16c5, 0x16d1, 0x16e2, 0x16ef, 0x16fe, 0x1711, 0x171f, 0x1734, + 0x1740, 0x1752, 0x1765, 0x177b, 0x178c, 0x179b, 0x17a9, 0x17c0, + 0x17cd, 0x17de, 0x17ed, 0x17fb, 0x180c, 0x1819, 0x1829, 0x1837, + 0x1846, 0x1854, 0x1861, 0x1870, 0x187f, 0x188e, 0x18a5, 0x18b4, + // Entry 180 - 1BF + 0x18c3, 0x18d1, 0x18e2, 0x18f2, 0x18fe, 0x1912, 0x1922, 0x1934, + 0x1943, 0x1952, 0x195d, 0x1969, 0x1976, 0x198e, 0x199a, 0x19a8, + 0x19b4, 0x19c2, 0x19d1, 0x19e1, 0x19f5, 0x1a02, 0x1a0e, 0x1a1e, + 0x1a2e, 0x1a3d, 0x1a49, 0x1a5a, 0x1a73, 0x1a89, 0x1a95, 0x1aa5, + 0x1ab9, 0x1ac8, 0x1ad8, 0x1ae7, 0x1af3, 0x1b06, 0x1b17, 0x1b21, + 0x1b2f, 0x1b42, 0x1b52, 0x1b63, 0x1b70, 0x1b80, 0x1b94, 0x1bab, + 0x1bbd, 0x1bc9, 0x1bdd, 0x1beb, 0x1bf8, 0x1c05, 0x1c15, 0x1c23, + 0x1c36, 0x1c43, 0x1c59, 0x1c68, 0x1c75, 0x1c89, 0x1c96, 0x1cac, + // Entry 1C0 - 1FF + 0x1cbd, 0x1cce, 0x1cdb, 0x1ce9, 0x1cf9, 0x1d10, 0x1d23, 0x1d32, + 0x1d43, 0x1d57, 0x1d64, 0x1d73, 0x1d90, 0x1da8, 0x1dbe, 0x1dd6, + 0x1de6, 0x1df7, 0x1e07, 0x1e16, 0x1e26, 0x1e40, 0x1e4e, 0x1e68, + 0x1e7a, 0x1e89, 0x1e9a, 0x1eab, 0x1eb7, 0x1ec6, 0x1ed4, 0x1ee2, + 0x1ef0, 0x1eff, 0x1f11, 0x1f1d, 0x1f2d, 0x1f39, 0x1f56, 0x1f66, + 0x1f74, 0x1f84, 0x1f98, 0x1fa9, 0x1fb6, 0x1fc6, 0x1fd8, 0x1ff3, + 0x200d, 0x201b, 0x2027, 0x2033, 0x2043, 0x2059, 0x2071, 0x2082, + 0x2094, 0x20a1, 0x20b7, 0x20c5, 0x20d9, 0x20e8, 0x20fa, 0x210b, + // Entry 200 - 23F + 0x211f, 0x2134, 0x2145, 0x2156, 0x216f, 0x217f, 0x218b, 0x21a4, + 0x21b2, 0x21bf, 0x21ce, 0x21dc, 0x21f3, 0x2204, 0x2213, 0x221f, + 0x222e, 0x223a, 0x2248, 0x2256, 0x2265, 0x2271, 0x2280, 0x228f, + 0x22a0, 0x22b4, 0x22c2, 0x22d3, 0x22e6, 0x22f9, 0x2307, 0x2315, + 0x2325, 0x2339, 0x234e, 0x235e, 0x236d, 0x237d, 0x238d, 0x23af, + 0x23c2, 0x23d4, 0x23e8, 0x23ff, 0x240a, 0x241a, 0x2428, 0x2440, + 0x2459, 0x2467, 0x2474, 0x2483, 0x2495, 0x24a6, 0x24b5, 0x24c5, + 0x24d8, 0x24ea, 0x24fa, 0x250c, 0x2518, 0x2525, 0x2533, 0x2546, + // Entry 240 - 27F + 0x2557, 0x256b, 0x257e, 0x258e, 0x25a5, 0x25b4, 0x25c2, 0x25da, + 0x25e6, 0x25f3, 0x2601, 0x261b, 0x261b, 0x2636, 0x2654, 0x2673, + 0x268b, 0x269d, 0x26b7, 0x26da, 0x26f5, 0x2710, 0x2710, 0x2729, + 0x2744, 0x2759, 0x2772, 0x278c, 0x27a5, 0x27b7, 0x27ce, 0x27e6, + 0x2802, 0x281d, + }, + }, + { // tr + trLangStr, + trLangIdx, + }, + { // twq + "Akan senniAmhaarik senniLaaraw senniBelaruus senniBulagaari senniBengali" + + " senniCek senniAlmaÅ‹ senniGrek senniInglisi senniEspaaɲe senniFarsi " + + "senniFransee senniHawsance senniInduu senniHungaari senniIndoneesi s" + + "enniIboo senniItaali senniJaponee senniJavanee senniKmeer senni, Gam" + + "e hereKoree senniMaleezi senniBurme senniNeepal senniHolandee senniP" + + "unjaabi senniiPolonee senniPortugee senniRumaani senniRuusi senniRwa" + + "nda senniSomaali senniSuweede senniTamil senniTaailandu senniTurku s" + + "enniUkreen senniUrdu senniVietnaam senniYorbance senniSinuwa senni, " + + "MandareÅ‹Zulu senniTasawaq senni", + []uint16{ // 550 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x0018, 0x0018, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0032, 0x0041, + 0x0041, 0x0041, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x007a, 0x007a, 0x0088, + 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x00a0, + 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00ae, + 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c7, 0x00c7, 0x00c7, + // Entry 40 - 7F + 0x00c7, 0x00d6, 0x00d6, 0x00e0, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00ec, 0x00ec, 0x00f9, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x011c, 0x011c, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, + 0x0127, 0x0127, 0x0127, 0x0134, 0x0134, 0x013f, 0x013f, 0x013f, + 0x014b, 0x014b, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, + 0x0159, 0x0159, 0x0159, 0x0159, 0x0159, 0x0168, 0x0168, 0x0175, + // Entry 80 - BF + 0x0175, 0x0183, 0x0183, 0x0183, 0x0183, 0x0190, 0x019b, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, + 0x01c1, 0x01c1, 0x01cc, 0x01cc, 0x01cc, 0x01db, 0x01db, 0x01db, + 0x01db, 0x01db, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01f2, + 0x01fc, 0x01fc, 0x01fc, 0x020a, 0x020a, 0x020a, 0x020a, 0x020a, + 0x020a, 0x0218, 0x0218, 0x022f, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry C0 - FF + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 100 - 13F + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 140 - 17F + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 180 - 1BF + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 1C0 - 1FF + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + // Entry 200 - 23F + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0239, 0x0239, 0x0239, 0x0246, + }, + }, + { // tzm + "TakanitTamharitTaεrabtTabilarusitTabelÉ£aritTabinÉ£alitTaÄiktTalmanitTayun" + + "anitTanglizttasbelyunitTafarisitTafá¹›ansistTahawsatTahinditTahenÉ£arit" + + "TindunisitTigbutTaá¹­alyantTajappunitTajavanitTaxmert ,TalammastTakuri" + + "tTamalizitTaburmanitTanippalitTahulaná¸itTabenjabitTappulunitTaburtuÉ£" + + "alitTaá¹›umanitTarusitTarwanditTaá¹£umalitTaswiditTatamiltTaá¹­aytTaturkit" + + "TukranitTurdutTaviá¹­namitTayurubatTacinwit,MandarintazulutTamaziÉ£t n " + + "laá¹­laá¹£", + []uint16{ // 552 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, + 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0022, 0x002d, + 0x002d, 0x002d, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0050, 0x0058, 0x0058, 0x0063, + 0x0063, 0x0063, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0080, + 0x0080, 0x0088, 0x0088, 0x0088, 0x0088, 0x0093, 0x0093, 0x0093, + // Entry 40 - 7F + 0x0093, 0x009d, 0x009d, 0x00a3, 0x00a3, 0x00a3, 0x00a3, 0x00a3, + 0x00ae, 0x00ae, 0x00b8, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c1, + 0x00c1, 0x00c1, 0x00d3, 0x00d3, 0x00da, 0x00da, 0x00da, 0x00da, + 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, + 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, + 0x00da, 0x00da, 0x00da, 0x00e3, 0x00e3, 0x00ed, 0x00ed, 0x00ed, + 0x00f7, 0x00f7, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x010d, 0x010d, 0x0117, + // Entry 80 - BF + 0x0117, 0x0124, 0x0124, 0x0124, 0x0124, 0x012f, 0x0136, 0x013f, + 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x013f, 0x013f, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, + 0x0152, 0x0152, 0x015a, 0x015a, 0x015a, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x0172, + 0x0178, 0x0178, 0x0178, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, + 0x0184, 0x018d, 0x018d, 0x019e, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry C0 - FF + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry 100 - 13F + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry 140 - 17F + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry 180 - 1BF + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry 1C0 - 1FF + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + // Entry 200 - 23F + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, + 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01bb, + }, + }, + { // ug + "ئاÙارچەئابخازچەئاۋÛستاچەئاÙرىكانچەئاكانچەئامخاراچەئاراگونچەئەرەبچەئاسسام" + + "چەئاۋارچەئايماراچەئەزەرىچەباشقىرتچەبÛلارۇسچەبۇلغارچەبىسلاماچەبامبار" + + "اچەبÛنگالچەتىبەتچەبىرÛتونچەبوسنىيەچەكاتالانچەچÛچىنچەچامورروچەكورساچ" + + "ەكرىچەچÛخچەقەدىمكى سلاۋيانچەچۇۋاشچەۋÛلشچەدانىشچەگÛرمانچەدىۋەخىچەبۇت" + + "انچەئÛÛ‹ÛچەگىرÛكچەئىنگلىزچەدۇنيا تىلىئىسپانچەئÛستونچەباسكىچەپارسچەÙÛ‡" + + "لاچەÙىنچەÙىجىچەÙائÛروچەÙىرانسۇزچەغەربى ÙىرىزيەچەئىرÛلاندچەسكوتچەگال" + + "ىتسىيانچەگۇئارانىچەگۇجاراتچەمانچەخائۇساچەئىبرانىچەھىندىچەھىرى موتۇچ" + + "ەخورۋاتچەھايتىچەماجارچەئەرمەنچەخÛرÛروچەئارىلىق تىلھىندونÛزىيەچەئىنت" + + "ىرلىڭچەئىبوچەيىچە (سىچۈەن)ئىنۇپىكچەئىدوچەئىسلاندچەئىتاليانچەئىنۇكتى" + + "تۇتچەياپونچەياۋاچەگىرۇزىنچەكونگوچەكىكۇيۇچەكىۋانياماچەقازاقچەگىرÛنلا" + + "ندچەكىخمÛرچەكانناداچەكورÛيەچەكانۇرىچەكەشمىرچەكۇردچەكومىچەكورنىشچەقى" + + "رغىزچەلاتىنچەلىيۇكسÛمبۇرگچەگانداچەلىمبۇرگچەلىنگالاچەلائوسچەلىتۋاچەل" + + "ۇبا-كاتانگاچەلاتۋىيەچەماداغاسقارچەمارشالچەماۋرىچەماكÛدونچەمالايامچە" + + "موڭغۇلچەماراتچەمالايچەمالتاچەبىرماچەناۋرۇچەشىمالى ندەبەلەچەنÛپالچەن" + + "دونگاچەگوللاندىيەچەيÛÚ­Ù‰ نورۋÛگچەنورۋىگىيە بوكمالچەجەنۇبى ندەبەلەچەن" + + "اۋاخوچەنيانجاچەئوكسىتانچەئوجىبۋاچەئوروموچەئورىياچەئوسسÛتچەچەپەنجابچ" + + "ەپالىچەپولەكچەپۇشتۇچەپورتۇگالچەكÛچياچەرومانىشچەرۇندىچەرۇمىنىيەچەرۇس" + + "چەرىۋانداچەسانسكرىتچەساردىنىيەچەسىندىچەشىمالى سامىچەسانگوچەسىنگالچە" + + "سىلوۋاكچەسىلوۋÛنىيەچەساموئاچەشوناچەسومالىچەئالبانچەسÛربچەسىۋاتىچەجە" + + "نۇبى سوتوچەسۇنداچەشۋÛدچەسىۋالىچەتامىلچەتÛلۇگۇچەتاجىكچەتايلاندچەتىگر" + + "ىنياچەتۈركمەنچەسىۋاناچەتوڭانچەتۈركچەسونگاچەتاتارچەتاختىچەئۇيغۇرچەئۇ" + + "كرائىنچەئوردوچەئۆزبÛÙƒÚ†Û•Û‹ÛنداچەۋىيÛتنامچەۋولاپۇكچەۋاللۇنچەۋولوÙچەخوس" + + "اچەيىددىشچەيورۇباچەجۇاڭچەخەنچەزۇلۇچەئاتجÛچەئاچولىچەئاداڭمÛچەئادىگÛÙŠ" + + "چەئاÙرىخىلىچەئاگەمچەئاينۇچەئاككادچەئالÛيۇتچەجەنۇبى ئالتاي تىللىرىقە" + + "دىمكى ئىنگلىزچەئانگىكاچەئارامۇچەماپۇچەئاراپاخوچەئاراۋاكچەئاسۇچەئاست" + + "ۇرىيەچەئاۋادىچەبÛلۇجىچەبالىچەباساچەبامۇنچەگومالاچەبÛجاچەبÛمباچەبÛنا" + + "چەباÙۇتچەبوجپۇرىچەبىكولچەبىنىچەكومچەسىكسىكاچەبىراجچەبودوچەئاكۇسچەبۇ" + + "رىياتچەبۇگىچەبۇلۇچەبىلىنچەمÛدۇمباچەكاددوچەكارىبچەكايۇگاچەئاتسامچەسÛ" + + "بۇچەچىگاچەچىبچاچەچاغاتايچەچۇكچەمارىچەچىنۇك-ژارگونچەچوكتاۋچەچىپÛۋيان" + + "Ú†Û•Ú†ÛروكىچەچÛÙŠÛنچەسورانى كۇردچەكوپتىكچەقىرىم تۈركچەكاسزۇبىچەداكوتاچە" + + "دارگىۋاچەتايتاچەدÛلاۋارÛچەسلاۋچەدوگرىبچەدىنكاچەزارماچەدوگرىچەتوۋەن " + + "سÛربچەدۇئالاچەئوتتۇرا گوللاندىيەچەجولاچەدىيۇلاچەدازاگاچەئÛمبۇچەئÛÙÙ‰" + + "كچەقەدىمكى مىسىرچەئÛكاجۇكچەئÛلامىتچەئوتتۇرا ئەسىر ئىنگلىزچەئÛۋوندوچ" + + "Û•ÙاڭچەÙىلىپپىنچەÙونچەئوتتۇرا ئەسىر Ùىرانسۇزچەقەدىمكى Ùىرانسۇزچەشىما" + + "لى Ùىرىزيەچەشەرقى ÙىرىزيەچەÙىرىئۇلىچەگاچەگايوچەگىباياچەگىزچەگىلبÛرت" + + "چەئوتتۇرا ئەسىر ئÛگىزلىك Ú¯Ûرمانچەقەدىمكى ئÛگىزلىك Ú¯Ûرمانچەگوندىچەگو" + + "رونتالوچەگوتچەگرÛبوچەقەدىمكى گىرÛÙƒÚ†Û•Ú¯Ûرمانچە شىۋىتسارىيەگۇسىچەگىۋىچ" + + "ىنچەھەيدەچەھاۋايچەخىلىگاينونچەخىتتىتچەمۆڭچەيۇقىرىقى سÛربچەخۇپاچەئىب" + + "انچەئىبىبىئوچەئىلوكانوچەئىنگۇشچەلوجبانچەنگومباچەماچامچەئىبرانى پارس" + + "چەئىبرانى ئەرەبچەقارا-قالپاقچەكابىلÛچەكاچىنچەجۇچەكامباچەكاۋىچەكابار" + + "دەيچەكانÛمبۇچەتياپچەماكوندÛچەكابۇۋÛردىيانچەكوروچەكاسىچەخوتەنچەكويرا" + + " چىنىچەكاكوچەكالÛنجىنچەكىمبۇندۇچەكونكانىچەكوسرايÛچەكىپەللÛچەقاراچاي-" + + "بالقارچەكارەلچەكۇرۇكچەشامبالاچەباÙىياچەكولىشچەقۇمۇقچەكۇتەنايچەلادىن" + + "وچەلانگىچەلانداچەلامباچەلÛزگىنچەمونگوچەلوزىچەلۇبا-لۇئاچەلۇيسÛÙ†Ú¯ÙˆÚ†Û•Ù„" + + "ۇنداچەلۇئوچەمىزوچەلۇياچەمادۇرÛسچەماÙاچەماگاخىچەمايتىلىچەماكاسارچەما" + + "ندىنگوچەماسايچەماباچەموكشاچەماندارچەمÛندÛÚ†Û•Ù…ÛرۇچەمورىسيÛنچەئوتتۇرا " + + "ئەسىر ئىرÛلاندچەماكۇۋاچەمÛتاچە’مىكماكچەمىناڭكابائۇچەمانجۇچەمانىپۇرى" + + "چەموخوكچەموسسىچەمۇنداڭچەكۆپ تىللاركىرىكچەمىراندÛسچەمارۋارىچەميÛÙ†ÛÚ†Û•" + + "ئÛرزاچەناپولىچەناماچەتۆۋەن Ú¯ÛرمانچەنÛۋارىچەنىئاسچەنيۇئÛچەكۋاسىيوچەن" + + "Ú¯Ûمبۇنچەنوغايچەقەدىمكى نورۋÛگچەنىكوچەشىمالى سوتوچەمۇئÛرچەنÛۋارچەنيا" + + "Ù…Û‹ÛزىچەنىيانكولÛچەنىئوروچەنىزەماچەئوساگÛلارچەئوسمان تۈركچەپانگاسىنا" + + "نچەپەھلەۋىچەپامپانگاچەپاپىيامەنتۇچەپالاۋچەقەدىمكى پارىسچەÙىنىكىيەچە" + + "پوناپÛئانچەقەدىمكى پروۋÛنچالچەراجاستانچەراپانىيچەرومبوچەسىگانچەئارو" + + "مانچەرىۋاچەسانداۋÛچەياقۇتچەسامارىتانچەسامبۇرۇچەساساكچەسانتالىچەنگام" + + "بايچەسانگۇچەسىتسىلىيەچەشوتلاندىيەچەسÛكنÛكاچەسÛناچەسÛلكاپچەشەرقىي سو" + + "ڭخايچەقەدىمكى ئىرÛلاندچەشىلخاچەشانچەچاد ئەرەبچەسىداموچەجەنۇبى سامى " + + "ØªÙ‰Ù„Ù„Ù‰Ø±Ù‰Ù„Û‡Ù„Û Ø³Ø§Ù…Ù‰Ú†Û•Ø¦Ù‰Ù†Ø§Ø±Ù‰ سامىچەسىكولت سامىچەسونىنكەچەسوغدىچەسىرانان" + + "-توڭوچەسÛرÛرچەساخوچەسۇكۇماچەسۇسۇچەسۈمەرچەكومورىچەكلاسسىك سۈرىيەچەسۈر" + + "ىيەچەتÛمنÛچەتÛسوچەتÛرÛناچەتÛتۇمچەتىگرÛچەتىۋچەتوكÛلاۋچەكىلىنگونچەتىل" + + "ىنگىتچەتاماشÛكچەنياسا توڭانچەتوك-پىسىنچەتوروكوچەسىمشيانچەتۇمبۇكاچەت" + + "ۇۋالۇچەشىمالىي سوڭخايچەتوۋاچەمەركىزى ئاتلاس تاماچاگىتئۇدمۇرتچەئۇگار" + + "ىتىكچەئۇمبۇندۇچەغول تىلۋايچەۋوتÛچەۋۇنجوچەۋالسÛرچەۋولايتاچەۋارايچەۋا" + + "شوچەقالماقچەسوگاچەياۋچەياپچەياڭبەنچەيÛمباچەگۇاڭدوڭچەزاپوتÛكچەبىلىس " + + "بەلگىلىرىزÛناگاچەئۆلچەملىك ماراكەش تامازىتچەزۇنىچەتىل مەزمۇنى يوقزا" + + "زاچەھازىرقى زامان ئۆلچەملىك ئەرەبچەئاۋستىرىيە Ú¯Ûرمانچەشىۋىتسارىيە ئ" + + "Ûگىزلىك Ú¯Ûرمانچەئاۋسترالىيە ئىنگلىزچەكانادا ئىنگلىزچەئەنگلىيە ئىنگل" + + "ىزچەئامÛرىكا ئىنگلىزچەلاتىن ئامÛرىكا ئىسپانچەياۋروپا ئىسپانچەمÛكسىك" + + "ا ئىسپانچەكانادا Ùىرانسۇزچەشىۋىتسارىيە Ùىرانسۇزچەبىرازىلىيە پورتۇگا" + + "لچەياۋروپا پورتۇگالچەسÛرب-كرودىيەچەكونگو سىۋالىچەئاددىي خەنچەمۇرەكك" + + "Û•Ù¾ خەنچە", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x001e, 0x0030, 0x0044, 0x0052, 0x0064, 0x0076, + 0x0084, 0x0094, 0x00a2, 0x00b4, 0x00c4, 0x00d6, 0x00e8, 0x00f8, + 0x010a, 0x011c, 0x012c, 0x013a, 0x014c, 0x015e, 0x0170, 0x017e, + 0x0190, 0x019e, 0x01a8, 0x01b2, 0x01d3, 0x01e1, 0x01ed, 0x01fb, + 0x020b, 0x021b, 0x0229, 0x0235, 0x0243, 0x0255, 0x0268, 0x0278, + 0x0288, 0x0296, 0x02a2, 0x02ae, 0x02b8, 0x02c4, 0x02d4, 0x02e8, + 0x0305, 0x0319, 0x0325, 0x033d, 0x0351, 0x0363, 0x036d, 0x037d, + 0x038f, 0x039d, 0x03b2, 0x03c2, 0x03d0, 0x03de, 0x03ee, 0x03fe, + // Entry 40 - 7F + 0x0413, 0x042d, 0x0443, 0x044f, 0x0466, 0x0478, 0x0484, 0x0496, + 0x04aa, 0x04c2, 0x04d0, 0x04dc, 0x04ee, 0x04fc, 0x050c, 0x0522, + 0x0530, 0x0546, 0x0556, 0x0568, 0x0578, 0x0588, 0x0598, 0x05a4, + 0x05b0, 0x05c0, 0x05d0, 0x05de, 0x05fa, 0x0608, 0x061a, 0x062c, + 0x063a, 0x0648, 0x0663, 0x0675, 0x068d, 0x069d, 0x06ab, 0x06bd, + 0x06cf, 0x06df, 0x06ed, 0x06fb, 0x0709, 0x0717, 0x0725, 0x0744, + 0x0752, 0x0762, 0x077a, 0x0793, 0x07b6, 0x07d5, 0x07e5, 0x07f5, + 0x0809, 0x081b, 0x082b, 0x083b, 0x084f, 0x085f, 0x086b, 0x0879, + // Entry 80 - BF + 0x0887, 0x089b, 0x08a9, 0x08bb, 0x08c9, 0x08dd, 0x08e7, 0x08f9, + 0x090d, 0x0923, 0x0931, 0x094a, 0x0958, 0x0968, 0x097a, 0x0992, + 0x09a2, 0x09ae, 0x09be, 0x09ce, 0x09da, 0x09ea, 0x0a03, 0x0a11, + 0x0a1d, 0x0a2d, 0x0a3b, 0x0a4b, 0x0a59, 0x0a6b, 0x0a7f, 0x0a91, + 0x0aa1, 0x0aaf, 0x0abb, 0x0ac9, 0x0ad7, 0x0ae5, 0x0af5, 0x0b09, + 0x0b17, 0x0b27, 0x0b35, 0x0b49, 0x0b5b, 0x0b6b, 0x0b79, 0x0b85, + 0x0b95, 0x0ba5, 0x0bb1, 0x0bbb, 0x0bc7, 0x0bd5, 0x0be5, 0x0bf7, + 0x0c09, 0x0c09, 0x0c1f, 0x0c2d, 0x0c3b, 0x0c4b, 0x0c4b, 0x0c5d, + // Entry C0 - FF + 0x0c5d, 0x0c85, 0x0ca6, 0x0cb8, 0x0cc8, 0x0cd4, 0x0cd4, 0x0ce8, + 0x0ce8, 0x0cfa, 0x0cfa, 0x0cfa, 0x0d06, 0x0d06, 0x0d1c, 0x0d1c, + 0x0d2c, 0x0d3c, 0x0d48, 0x0d48, 0x0d54, 0x0d62, 0x0d62, 0x0d72, + 0x0d7e, 0x0d8c, 0x0d8c, 0x0d98, 0x0da6, 0x0da6, 0x0da6, 0x0db8, + 0x0dc6, 0x0dd2, 0x0dd2, 0x0ddc, 0x0dee, 0x0dee, 0x0dee, 0x0dfc, + 0x0dfc, 0x0e08, 0x0e16, 0x0e28, 0x0e34, 0x0e40, 0x0e4e, 0x0e60, + 0x0e6e, 0x0e7c, 0x0e8c, 0x0e9c, 0x0ea8, 0x0eb4, 0x0ec2, 0x0ed4, + 0x0ede, 0x0eea, 0x0f05, 0x0f15, 0x0f29, 0x0f39, 0x0f47, 0x0f60, + // Entry 100 - 13F + 0x0f70, 0x0f70, 0x0f87, 0x0f99, 0x0fa9, 0x0fbb, 0x0fc9, 0x0fdd, + 0x0fe9, 0x0ff9, 0x1007, 0x1015, 0x1023, 0x103a, 0x103a, 0x104a, + 0x1071, 0x107d, 0x108d, 0x109d, 0x10ab, 0x10b9, 0x10b9, 0x10d6, + 0x10e8, 0x10fa, 0x1126, 0x1126, 0x1138, 0x1138, 0x1142, 0x1156, + 0x1156, 0x1160, 0x1160, 0x118e, 0x11b1, 0x11b1, 0x11d0, 0x11ed, + 0x1201, 0x1209, 0x1209, 0x1209, 0x1215, 0x1225, 0x1225, 0x122f, + 0x1241, 0x1241, 0x127c, 0x12ac, 0x12ac, 0x12ba, 0x12d0, 0x12da, + 0x12e8, 0x1305, 0x132c, 0x132c, 0x132c, 0x1338, 0x134a, 0x1358, + // Entry 140 - 17F + 0x1358, 0x1366, 0x1366, 0x137e, 0x138e, 0x1398, 0x13b5, 0x13b5, + 0x13c1, 0x13cf, 0x13e3, 0x13f7, 0x1407, 0x1407, 0x1407, 0x1417, + 0x1427, 0x1435, 0x1450, 0x146d, 0x146d, 0x1486, 0x1496, 0x14a4, + 0x14ac, 0x14ba, 0x14c6, 0x14da, 0x14ec, 0x14f8, 0x150a, 0x1526, + 0x1526, 0x1532, 0x1532, 0x153e, 0x154c, 0x1563, 0x1563, 0x1563, + 0x156f, 0x1583, 0x1597, 0x1597, 0x15a9, 0x15bb, 0x15cd, 0x15ec, + 0x15ec, 0x15ec, 0x15fa, 0x1608, 0x161a, 0x162a, 0x1638, 0x1646, + 0x1658, 0x1668, 0x1676, 0x1684, 0x1692, 0x16a2, 0x16a2, 0x16a2, + // Entry 180 - 1BF + 0x16a2, 0x16a2, 0x16a2, 0x16b0, 0x16bc, 0x16bc, 0x16bc, 0x16d1, + 0x16e5, 0x16f3, 0x16ff, 0x170b, 0x1717, 0x1717, 0x1717, 0x1729, + 0x1735, 0x1745, 0x1757, 0x1769, 0x177d, 0x178b, 0x1797, 0x17a5, + 0x17b5, 0x17c3, 0x17cf, 0x17e3, 0x1811, 0x1821, 0x1830, 0x1840, + 0x185a, 0x1868, 0x187c, 0x188a, 0x1898, 0x1898, 0x18a8, 0x18bb, + 0x18c9, 0x18dd, 0x18ef, 0x18ef, 0x18fd, 0x190b, 0x190b, 0x190b, + 0x191b, 0x1927, 0x1942, 0x1952, 0x1960, 0x196e, 0x196e, 0x1980, + 0x1992, 0x19a0, 0x19bf, 0x19bf, 0x19cb, 0x19e4, 0x19f2, 0x1a00, + // Entry 1C0 - 1FF + 0x1a14, 0x1a2a, 0x1a3a, 0x1a4a, 0x1a60, 0x1a79, 0x1a91, 0x1aa3, + 0x1ab7, 0x1ad1, 0x1adf, 0x1adf, 0x1adf, 0x1adf, 0x1afc, 0x1afc, + 0x1b10, 0x1b10, 0x1b10, 0x1b26, 0x1b26, 0x1b4b, 0x1b4b, 0x1b4b, + 0x1b5f, 0x1b71, 0x1b71, 0x1b71, 0x1b71, 0x1b7f, 0x1b8d, 0x1b8d, + 0x1b8d, 0x1b8d, 0x1b9f, 0x1bab, 0x1bbd, 0x1bcb, 0x1be1, 0x1bf3, + 0x1c01, 0x1c13, 0x1c13, 0x1c25, 0x1c33, 0x1c49, 0x1c61, 0x1c61, + 0x1c61, 0x1c73, 0x1c7f, 0x1c7f, 0x1c8f, 0x1cac, 0x1ccf, 0x1ccf, + 0x1cdd, 0x1ce7, 0x1cfc, 0x1d0c, 0x1d0c, 0x1d0c, 0x1d30, 0x1d45, + // Entry 200 - 23F + 0x1d5e, 0x1d77, 0x1d89, 0x1d97, 0x1db2, 0x1dc0, 0x1dcc, 0x1dcc, + 0x1ddc, 0x1de8, 0x1df6, 0x1e06, 0x1e25, 0x1e35, 0x1e35, 0x1e35, + 0x1e43, 0x1e4f, 0x1e5f, 0x1e6d, 0x1e7b, 0x1e85, 0x1e97, 0x1e97, + 0x1eab, 0x1ebf, 0x1ebf, 0x1ed1, 0x1eea, 0x1eff, 0x1eff, 0x1f0f, + 0x1f0f, 0x1f21, 0x1f21, 0x1f33, 0x1f43, 0x1f62, 0x1f6e, 0x1f9c, + 0x1fae, 0x1fc4, 0x1fd8, 0x1fe5, 0x1fef, 0x1fef, 0x1fef, 0x1fef, + 0x1fef, 0x1ffb, 0x1ffb, 0x2009, 0x2019, 0x202b, 0x2039, 0x2045, + 0x2045, 0x2045, 0x2055, 0x2055, 0x2061, 0x206b, 0x2075, 0x2085, + // Entry 240 - 27F + 0x2093, 0x2093, 0x20a5, 0x20b7, 0x20d4, 0x20d4, 0x20e4, 0x2118, + 0x2124, 0x2140, 0x214c, 0x2187, 0x2187, 0x21ac, 0x21e4, 0x220d, + 0x222c, 0x224f, 0x2272, 0x229e, 0x22bd, 0x22dc, 0x22dc, 0x22fd, + 0x2328, 0x2328, 0x2328, 0x2351, 0x2374, 0x2374, 0x238f, 0x23aa, + 0x23c1, 0x23dc, + }, + }, + { // uk + ukLangStr, + ukLangIdx, + }, + { // ur + urLangStr, + urLangIdx, + }, + { // ur-IN + "اÙریقیکارسیکائیکنڑکردلٹويایزرمÛمعیاری مراقشی تمازیقیجدید معیاری عربیآسان" + + " چینی", + []uint16{ // 609 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + // Entry 40 - 7F + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + // Entry 80 - BF + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + // Entry C0 - FF + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + // Entry 100 - 13F + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + // Entry 140 - 17F + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + // Entry 180 - 1BF + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + // Entry 1C0 - 1FF + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + // Entry 200 - 23F + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + // Entry 240 - 27F + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0095, + }, + }, + { // uz + uzLangStr, + uzLangIdx, + }, + { // uz-Arab + "دریپشتواوزبیک", + []uint16{ // 170 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + // Entry 40 - 7F + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + // Entry 80 - BF + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x001a, + }, + }, + { // uz-Cyrl + "ÐбхазчаÐфриканчаÐмхарчаÐрабчаÐÑÑамчаОзарбайжончаБеларуÑчаБолгарчаБенгалч" + + "аТибетчаБоÑниÑчаКаталанчаЧехчаУÑлÑчаДаниÑчаОлмончаГрекчаИнглизчаЭÑп" + + "ерантоИÑпанчаЭÑтончаБаÑкчаФорÑчаФинчаФижичаФарÑрчаФранцузчаҒарбий Ñ„" + + "ризианчаИрландчаГалицийчаГуараниГужаратиХауÑаИбронийҲиндчаХорватчаГ" + + "аитианчаВенгрчаÐрманчаИндонезиÑчаИгбоИÑландчаИталÑнчаЯпончаЯванчаГр" + + "узинчаҚозоқчаХмерчаКаннадаКорейÑчаКашмирчаКурдчаҚирғизчаЛотинчаЛюкÑ" + + "ембургчаЛаоЛитвачаЛатишчаМалагаÑиМаориМакедончаМалайаламМаратиМалай" + + "чаМальтачаБирманчаÐепалчаГолландчаÐорвегча ÐинорÑкÐорвегча БокмалОр" + + "иÑПанжобчаПолÑкчаПуштуПортугалчаКвечуаРоманчаРуминчаРуÑчаСанÑкритча" + + "СиндхиСинхалаСловакчаСловенчаСомаличаÐлбанчаСербчаСунданчаШведчаСуа" + + "хилиТамилчаТелугуТожикчаТайчаТигриньÑТуркманчаТонгочаТуркчаТатарчаУ" + + "йғурчаУкраинчаУрдуЎзбекВьетнамчаВолофчаХоÑаЙорубаХитойчаЗулуФилипин" + + "Ð¾Ð¨Ð²ÐµÐ¹Ñ†Ð°Ñ€Ð¸Ñ Ð½ÐµÐ¼Ð¸ÑчаÑиГавайчаÐомаълум тилСтандарт Марокаш ТамазитТил " + + "таркиби йўқЛотин Ðмерика иÑпанчаÑиФламандча", + []uint16{ // 603 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000e, 0x000e, 0x0020, 0x0020, 0x002e, 0x002e, + 0x003a, 0x0048, 0x0048, 0x0048, 0x0060, 0x0060, 0x0072, 0x0082, + 0x0082, 0x0082, 0x0092, 0x00a0, 0x00a0, 0x00b0, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00cc, 0x00cc, 0x00cc, 0x00d8, 0x00e6, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x0100, 0x0110, 0x0122, 0x0130, + 0x013e, 0x014a, 0x0156, 0x0156, 0x0160, 0x016c, 0x017a, 0x018c, + 0x01ab, 0x01bb, 0x01bb, 0x01cd, 0x01db, 0x01eb, 0x01eb, 0x01f5, + 0x0203, 0x020f, 0x020f, 0x021f, 0x0231, 0x023f, 0x024d, 0x024d, + // Entry 40 - 7F + 0x024d, 0x0263, 0x0263, 0x026b, 0x026b, 0x026b, 0x026b, 0x027b, + 0x028b, 0x028b, 0x0297, 0x02a3, 0x02b3, 0x02b3, 0x02b3, 0x02b3, + 0x02c1, 0x02c1, 0x02cd, 0x02db, 0x02eb, 0x02eb, 0x02fb, 0x0307, + 0x0307, 0x0307, 0x0317, 0x0325, 0x033d, 0x033d, 0x033d, 0x033d, + 0x0343, 0x0351, 0x0351, 0x035f, 0x036f, 0x036f, 0x0379, 0x038b, + 0x039d, 0x039d, 0x03a9, 0x03b7, 0x03c7, 0x03d7, 0x03d7, 0x03d7, + 0x03e5, 0x03e5, 0x03f7, 0x0416, 0x0433, 0x0433, 0x0433, 0x0433, + 0x0433, 0x0433, 0x0433, 0x043b, 0x043b, 0x044b, 0x044b, 0x0459, + // Entry 80 - BF + 0x0463, 0x0477, 0x0483, 0x0491, 0x0491, 0x049f, 0x04a9, 0x04a9, + 0x04bd, 0x04bd, 0x04c9, 0x04c9, 0x04c9, 0x04d7, 0x04e7, 0x04f7, + 0x04f7, 0x04f7, 0x0507, 0x0515, 0x0521, 0x0521, 0x0521, 0x0531, + 0x053d, 0x054b, 0x0559, 0x0565, 0x0573, 0x057d, 0x058d, 0x059f, + 0x059f, 0x05ad, 0x05b9, 0x05b9, 0x05c7, 0x05c7, 0x05d5, 0x05e5, + 0x05ed, 0x05f7, 0x05f7, 0x0609, 0x0609, 0x0609, 0x0617, 0x061f, + 0x061f, 0x062b, 0x062b, 0x0639, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + // Entry C0 - FF + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + // Entry 100 - 13F + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, + 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0651, + 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, + 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, + 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, + 0x0651, 0x0651, 0x0676, 0x0676, 0x0676, 0x0676, 0x0676, 0x0676, + // Entry 140 - 17F + 0x0676, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + // Entry 180 - 1BF + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + // Entry 1C0 - 1FF + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + // Entry 200 - 23F + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, 0x0684, + 0x0684, 0x0684, 0x0684, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, + 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, + 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, + // Entry 240 - 27F + 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x069b, 0x06c9, + 0x06c9, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e5, + 0x06e5, 0x06e5, 0x06e5, 0x0711, 0x0711, 0x0711, 0x0711, 0x0711, + 0x0711, 0x0711, 0x0723, + }, + }, + { // vai + "ꕉꕪꘋꕉꕆꕌꔸꕞꕌê–ꔆꕞꖩꔻꗂꔠꗸꘋꗩꕭꔷꗿꗡꕧꕮꔧꗥꗷꘋꕶꕱê•ê˜Šê”§ê—¨ê—¡ê”»ê˜‚ꘋꗱꘋꔻꕌꖙꕢꔦꔺꖽꔟꗸꘋꔤꖆꕇꔻꘂꘋꔤꕼꔤꕚꔷꘂꘋꕧê•ê•‡ê”§ê•§ê•™ê•‡ê”§" + + "ꕃꘈꗢê–ꔸꘂꘋꕮꔒꔀꗩꕆꔻꕇê•ê”·ê—ꔿꖛꕨꔬê—ꔒꔻꕶꕿꕃꔤꖄꕆꕇꘂꘋê—ꖺꔻꘂꘋꕟꖙꕡꖇꕮꔷꖬꔨꗵꘋꕚꕆꔷꕚꔤꗋꕃꖳꖴꔓꕇꘂꘋꖺꖦꔲꕩꕯ" + + "ꕆꔧꖎꖄꕑꕦꕇꔧꖮꖨꕙꔤ", + []uint16{ // 557 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0015, 0x0015, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x002a, 0x0036, + 0x0036, 0x0036, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x004e, 0x004e, 0x004e, 0x004e, 0x0057, 0x005d, 0x005d, 0x0066, + 0x0066, 0x0066, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x007e, + 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x0087, + 0x0087, 0x008d, 0x008d, 0x008d, 0x008d, 0x0099, 0x0099, 0x0099, + // Entry 40 - 7F + 0x0099, 0x00ab, 0x00ab, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + 0x00c0, 0x00c0, 0x00cc, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00e1, 0x00e1, 0x00ed, 0x00ed, 0x00ed, 0x00ed, + 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, + 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, 0x00ed, + 0x00ed, 0x00ed, 0x00ed, 0x00f6, 0x00f6, 0x00ff, 0x00ff, 0x00ff, + 0x0108, 0x0108, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, + 0x010e, 0x010e, 0x010e, 0x010e, 0x010e, 0x0117, 0x0117, 0x0120, + // Entry 80 - BF + 0x0120, 0x012c, 0x012c, 0x012c, 0x012c, 0x013b, 0x014a, 0x0153, + 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, 0x0153, + 0x0153, 0x0153, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, + 0x0168, 0x0168, 0x0171, 0x0171, 0x0171, 0x0177, 0x0177, 0x0177, + 0x0177, 0x0177, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x018f, + 0x0195, 0x0195, 0x0195, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, + 0x01a4, 0x01ad, 0x01ad, 0x01b6, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry C0 - FF + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry 100 - 13F + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry 140 - 17F + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry 180 - 1BF + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry 1C0 - 1FF + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + // Entry 200 - 23F + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01bc, 0x01c2, + }, + }, + { // vai-Latn + "AkaÅ‹AmiháriLahabuBhelarusaÅ‹BhÉ”gerɛŋBhɛŋgáliChÉ›JamáĩHÉ›lɛŋPooPanyɛĩPɛɛsiyÉ›" + + "Å‹FɛŋsiHawusaHíiÅ‹diHɔŋgérɛŋÃndonisiyɛŋÃgboItáliyɛŋJapaníĩJavaníĩKimÉ›" + + "ɛ̃ tÉ›KoríyɛŋMaléeeBhÉ›mísiNipaliDÉ”chiPuÅ‹jabhiPÉ”ÌlésiPotokíiRomíniyɛŋ" + + "RÉ”shiyɛŋRawundaSomáliSúwídɛŋTamíliTáiTÉ”ÌkiYukureniyɛŋƆduViyamíĩYórób" + + "haChaniÄ©ZúluVai", + []uint16{ // 557 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x000d, 0x000d, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x001e, 0x0029, + 0x0029, 0x0029, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x003f, 0x003f, 0x003f, 0x003f, 0x0047, 0x004a, 0x004a, 0x0052, + 0x0052, 0x0052, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x006b, + 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0080, 0x0080, 0x0080, + // Entry 40 - 7F + 0x0080, 0x008e, 0x008e, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x009e, 0x009e, 0x00a7, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, + 0x00b0, 0x00b0, 0x00bd, 0x00bd, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00ce, 0x00ce, 0x00d7, 0x00d7, 0x00d7, + 0x00dd, 0x00dd, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, + 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00ec, 0x00ec, 0x00f6, + // Entry 80 - BF + 0x00f6, 0x00fe, 0x00fe, 0x00fe, 0x00fe, 0x010a, 0x0115, 0x011c, + 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, 0x011c, + 0x011c, 0x011c, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, + 0x012e, 0x012e, 0x0135, 0x0135, 0x0135, 0x0139, 0x0139, 0x0139, + 0x0139, 0x0139, 0x0140, 0x0140, 0x0140, 0x0140, 0x0140, 0x014d, + 0x0151, 0x0151, 0x0151, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, + 0x015a, 0x0163, 0x0163, 0x016a, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry C0 - FF + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry 100 - 13F + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry 140 - 17F + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry 180 - 1BF + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry 1C0 - 1FF + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + // Entry 200 - 23F + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, 0x016f, + 0x016f, 0x016f, 0x016f, 0x016f, 0x0172, + }, + }, + { // vi + viLangStr, + viLangIdx, + }, + { // vun + "KiakanyiKiamharyiKyiarabuKyibelarusiKyibulgaryiaKyibanglaKyicheckiKyijer" + + "umaniKyigirikiKyingerezaKyihispaniaKyiajemiKyifaransaKyihausaKyihind" + + "iKyihungariKyiindonesiaKyiigboKyiitalianoKyijapaniKyijavaKyikambodia" + + "KyikoreaKyimalesiaKyiburmaKyinepaliKyiholanziKyipunjabiKyipolandiKyi" + + "renoKyiromaniaKyirusiKyinyarwandaKyisomalyiKyiswidiKyitamilKyitailan" + + "diKyiturukyiKyiukraniaKyiurduKyivietinamuKyiyorubaKyichinaKyizuluKyi" + + "vunjo", + []uint16{ // 564 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0011, 0x0011, + 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0024, 0x0030, + 0x0030, 0x0030, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x004d, 0x004d, 0x004d, 0x004d, 0x0056, 0x0060, 0x0060, 0x006b, + 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x007d, + 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x007d, 0x0085, + 0x0085, 0x008d, 0x008d, 0x008d, 0x008d, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00aa, 0x00aa, 0x00aa, 0x00aa, 0x00aa, + 0x00b5, 0x00b5, 0x00be, 0x00c5, 0x00c5, 0x00c5, 0x00c5, 0x00c5, + 0x00c5, 0x00c5, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00e2, 0x00e2, 0x00ea, 0x00ea, 0x00ea, + 0x00f3, 0x00f3, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, + 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0107, 0x0107, 0x0111, + // Entry 80 - BF + 0x0111, 0x0118, 0x0118, 0x0118, 0x0118, 0x0122, 0x0129, 0x0135, + 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, + 0x0135, 0x0135, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x0147, 0x0147, 0x014f, 0x014f, 0x014f, 0x015a, 0x015a, 0x015a, + 0x015a, 0x015a, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x016e, + 0x0175, 0x0175, 0x0175, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, + 0x0181, 0x018a, 0x018a, 0x0192, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry C0 - FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 100 - 13F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 140 - 17F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 180 - 1BF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 1C0 - 1FF + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + // Entry 200 - 23F + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x0199, 0x01a1, + }, + }, + { // wae + "AbÄasiÅ¡AfrikánsAmhariÅ¡ArabiÅ¡AssamesiÅ¡AymaraSerbaidÅ¡aniÅ¡WísrussiÅ¡BulgariÅ¡" + + "BengaliÅ¡TibetiÅ¡BosniÅ¡KatalaniÅ¡TÅ¡eÄiÅ¡WalisiÅ¡DäniÅ¡TitÅ¡MalediwiÅ¡ButaniÅ¡" + + "GriÄiÅ¡EngliÅ¡SchpaniÅ¡EstniÅ¡BaskiÅ¡PersiÅ¡FiniÅ¡FidÅ¡ianiÅ¡WälÅ¡IriÅ¡GaliziÅ¡G" + + "uaraniGujaratiHausaHebräiÅ¡HindiKroatiÅ¡HaitianiÅ¡UngariÅ¡ArmeniÅ¡Indones" + + "iÅ¡IgboIisländiÅ¡ItalieniÅ¡JapaniÅ¡GeorgiÅ¡KazaÄiÅ¡KambodÅ¡aniÅ¡KannadaKorea" + + "niÅ¡KaÅ¡miriÅ¡KurdiÅ¡KirgisiÅ¡LatiniÅ¡LuxemburgiÅ¡LingalaLaotiÅ¡LitauiÅ¡Letti" + + "Å¡MalagásiMaoriMazedoniÅ¡MalayalamMongoliÅ¡MarathiMalaíšMaltesiÅ¡Burmes" + + "iÅ¡NordndebeleNepalesiÅ¡HoländiÅ¡NorwegiÅ¡ NynorskNorwegiÅ¡ BokmÃ¥lNyanjaO" + + "riyaOsétiÅ¡PandÅ¡abiÅ¡PolniÅ¡PaÅ¡tuPortugisiÅ¡QueÄuaRätromaniÅ¡RundiRumäniÅ¡" + + "RusiÅ¡RuandiÅ¡SanskritSindhiNordsamiÅ¡SangoSingalesiÅ¡SlowakiÅ¡SloweniÅ¡Sa" + + "moaniÅ¡ShonaSomaliÅ¡AlbaniÅ¡SerbiÅ¡SwaziSüdsothoSundanesiÅ¡SchwediÅ¡Suahel" + + "iÅ¡TamiliÅ¡TeluguTadÅ¡ikiÅ¡ThailändiÅ¡TigrinjaTurkmeniÅ¡TswanaTongaTürkiÅ¡T" + + "songaTaitiÅ¡UiguriÅ¡UkrainiÅ¡UrduUsbekiÅ¡VendaVietnamesiÅ¡WolofXhosaYorub" + + "aChinesiÅ¡ZuluEfikFilipiniÅ¡HawaíaniÅ¡NordsothoJakutiÅ¡TetumNiwmelanesiÅ¡" + + "Unbekannti SchpraÄWalserÖštriÄiÅ¡es TitÅ¡Schwizer HoÄtitÅ¡AuÅ¡traliÅ¡es E" + + "ngliÅ¡KanadiÅ¡es EngliÅ¡BritiÅ¡es EngliÅ¡AmerikaniÅ¡es EngliÅ¡Latiamerikani" + + "Å¡es SchpaniÅ¡IberiÅ¡es SchpaniÅ¡KanadiÅ¡es WälÅ¡Schwizer WälÅ¡FlämiÅ¡Brasi" + + "lianiÅ¡es PortugisiÅ¡IberiÅ¡es PortugisiÅ¡VereifaÄts ChinesiÅ¡Traditionel" + + "ls ChinesiÅ¡", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0009, 0x0012, 0x0012, 0x001a, 0x001a, + 0x0021, 0x002b, 0x002b, 0x0031, 0x003f, 0x003f, 0x004a, 0x0053, + 0x0053, 0x0053, 0x005c, 0x0064, 0x0064, 0x006b, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x007e, 0x007e, 0x007e, 0x0086, 0x008d, + 0x0092, 0x009c, 0x00a4, 0x00a4, 0x00ac, 0x00b3, 0x00b3, 0x00bc, + 0x00c3, 0x00ca, 0x00d1, 0x00d1, 0x00d7, 0x00e2, 0x00e2, 0x00e8, + 0x00e8, 0x00ed, 0x00ed, 0x00f5, 0x00fc, 0x0104, 0x0104, 0x0109, + 0x0112, 0x0117, 0x0117, 0x011f, 0x0129, 0x0131, 0x0139, 0x0139, + // Entry 40 - 7F + 0x0139, 0x0143, 0x0143, 0x0147, 0x0147, 0x0147, 0x0147, 0x0152, + 0x015c, 0x015c, 0x0164, 0x0164, 0x016c, 0x016c, 0x016c, 0x016c, + 0x0175, 0x0175, 0x0182, 0x0189, 0x0192, 0x0192, 0x019c, 0x01a3, + 0x01a3, 0x01a3, 0x01ac, 0x01b4, 0x01c0, 0x01c0, 0x01c0, 0x01c7, + 0x01ce, 0x01d6, 0x01d6, 0x01dd, 0x01e6, 0x01e6, 0x01eb, 0x01f5, + 0x01fe, 0x0207, 0x020e, 0x0216, 0x021f, 0x0228, 0x0228, 0x0233, + 0x023d, 0x023d, 0x0247, 0x0258, 0x0269, 0x0269, 0x0269, 0x026f, + 0x026f, 0x026f, 0x026f, 0x0274, 0x027c, 0x0287, 0x0287, 0x028e, + // Entry 80 - BF + 0x0294, 0x029f, 0x02a6, 0x02b2, 0x02b7, 0x02c0, 0x02c6, 0x02ce, + 0x02d6, 0x02d6, 0x02dc, 0x02e6, 0x02eb, 0x02f6, 0x02ff, 0x0308, + 0x0311, 0x0316, 0x031e, 0x0326, 0x032d, 0x0332, 0x033b, 0x0346, + 0x034f, 0x0358, 0x0360, 0x0366, 0x0370, 0x037c, 0x0384, 0x038e, + 0x0394, 0x0399, 0x03a1, 0x03a7, 0x03a7, 0x03ae, 0x03b6, 0x03bf, + 0x03c3, 0x03cb, 0x03d0, 0x03dc, 0x03dc, 0x03dc, 0x03e1, 0x03e6, + 0x03e6, 0x03ec, 0x03ec, 0x03f5, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + // Entry C0 - FF + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + // Entry 100 - 13F + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, + 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03f9, 0x03fd, 0x03fd, 0x03fd, + 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x03fd, 0x0407, + 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, + 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, + 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, + 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, 0x0407, + // Entry 140 - 17F + 0x0407, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + // Entry 180 - 1BF + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, + 0x0412, 0x0412, 0x0412, 0x0412, 0x0412, 0x041b, 0x041b, 0x041b, + // Entry 1C0 - 1FF + 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, + 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, + 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, + 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, + 0x041b, 0x041b, 0x041b, 0x041b, 0x041b, 0x0423, 0x0423, 0x0423, + 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, + 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, + 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, + // Entry 200 - 23F + 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, + 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, 0x0423, + 0x0423, 0x0423, 0x0423, 0x0428, 0x0428, 0x0428, 0x0428, 0x0428, + 0x0428, 0x0428, 0x0428, 0x0428, 0x0428, 0x0435, 0x0435, 0x0435, + 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, 0x0435, + 0x0435, 0x0435, 0x0435, 0x0448, 0x0448, 0x0448, 0x0448, 0x0448, + 0x0448, 0x0448, 0x0448, 0x0448, 0x044e, 0x044e, 0x044e, 0x044e, + 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, + // Entry 240 - 27F + 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, + 0x044e, 0x044e, 0x044e, 0x044e, 0x044e, 0x0462, 0x0474, 0x0489, + 0x049b, 0x04ac, 0x04c1, 0x04dc, 0x04ef, 0x04ef, 0x04ef, 0x0500, + 0x050f, 0x050f, 0x0517, 0x0531, 0x0546, 0x0546, 0x0546, 0x0546, + 0x055b, 0x0572, + }, + }, + { // xog + "OluakaaniOluamharikiOluwarabuOlubelarusiOlubulugariyaOlubengaliOluceekeO" + + "ludaakiOluyonaaniOlungerezaOlusipanyaOluperusiOlufalansaOluhawuzaOlu" + + "hinduOluhangareOluyindonezyaOluyiboOluyitaleOlujapaniOlunnajjavaOluk" + + "meOlukoreyaOlumalayiOlubbamaOlunepaliOluholandiOlupunjabiOlupolandiO" + + "lupotugiiziOlulomaniyaOlulasaOlunarwandaOlusomaliyaOluswideniOlutami" + + "iruOluttaayiOlutakeOluyukurayineOlu-uruduOluvyetinaamuOluyorubaOluca" + + "yinaOluzzuluOlusoga", + []uint16{ // 573 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0014, 0x0014, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0028, 0x0035, + 0x0035, 0x0035, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x004f, 0x004f, 0x004f, 0x004f, 0x0059, 0x0063, 0x0063, 0x006d, + 0x006d, 0x006d, 0x0076, 0x0076, 0x0076, 0x0076, 0x0076, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0089, + 0x0089, 0x0091, 0x0091, 0x0091, 0x0091, 0x009b, 0x009b, 0x009b, + // Entry 40 - 7F + 0x009b, 0x00a8, 0x00a8, 0x00af, 0x00af, 0x00af, 0x00af, 0x00af, + 0x00b8, 0x00b8, 0x00c1, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, + 0x00cc, 0x00cc, 0x00d2, 0x00d2, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x00e4, 0x00e4, 0x00ec, 0x00ec, 0x00ec, + 0x00f5, 0x00f5, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x0109, 0x0109, 0x0113, + // Entry 80 - BF + 0x0113, 0x011f, 0x011f, 0x011f, 0x011f, 0x012a, 0x0131, 0x013c, + 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, + 0x013c, 0x013c, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0151, 0x0151, 0x015b, 0x015b, 0x015b, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x016b, 0x016b, 0x016b, 0x016b, 0x016b, 0x0178, + 0x0181, 0x0181, 0x0181, 0x018e, 0x018e, 0x018e, 0x018e, 0x018e, + 0x018e, 0x0197, 0x0197, 0x01a0, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry C0 - FF + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry 100 - 13F + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry 140 - 17F + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry 180 - 1BF + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry 1C0 - 1FF + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + // Entry 200 - 23F + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01a8, + 0x01a8, 0x01a8, 0x01a8, 0x01a8, 0x01af, + }, + }, + { // yav + "akánÉ›amalíkeÌpakaspielúsebulgálÉ›pengálÉ›ÌÉ›cÉ›ÌkÉ›Ìɛŋndiámanyavánɛíŋgilísénu" + + "É›spanyÉ”ÌlÉ›nupÉ›ÌlisÉ›feleÅ‹sípakasíndíɔÌÅ‹gɛíndonísiɛíboitáliÉ›ndiámanyá" + + "vanÉ›kímɛɛkolíemáliÉ›bímanÉ›nunipálÉ›nilándÉ›nupunsapíɛÌnupolonÉ›ÌÉ›nupÉ”lit" + + "ukÉ›ÌÉ›nulumÉ›ÌÅ‹É›nulúsenuluándÉ›ÌÉ›nusomalíɛnusuetuanutámulenutáyÉ›nutúluk" + + "enukeleniÉ›ÌÅ‹É›nulutúnufiÉ›tnamíɛŋnuyolúpasinúɛnusulúnuasue", + []uint16{ // 576 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000f, 0x000f, + 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x001e, 0x0027, + 0x0027, 0x0027, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x004a, 0x004a, 0x004a, 0x004a, 0x0052, 0x005e, 0x005e, 0x006e, + 0x006e, 0x006e, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x0083, + 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0083, 0x0088, + 0x0088, 0x008e, 0x008e, 0x008e, 0x008e, 0x0097, 0x0097, 0x0097, + // Entry 40 - 7F + 0x0097, 0x00a3, 0x00a3, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, + 0x00af, 0x00af, 0x00b7, 0x00bf, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00bf, 0x00bf, 0x00c7, 0x00c7, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00d4, 0x00d4, 0x00dc, 0x00dc, 0x00dc, + 0x00e6, 0x00e6, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, + 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00ef, 0x00fd, 0x00fd, 0x010a, + // Entry 80 - BF + 0x010a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0127, 0x012e, 0x013c, + 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, + 0x013c, 0x013c, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x014f, 0x014f, 0x0158, 0x0158, 0x0158, 0x0160, 0x0160, 0x0160, + 0x0160, 0x0160, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0179, + 0x0180, 0x0180, 0x0180, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, + 0x0190, 0x0199, 0x0199, 0x01a0, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry C0 - FF + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry 100 - 13F + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry 140 - 17F + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry 180 - 1BF + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry 1C0 - 1FF + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + // Entry 200 - 23F + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, + 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01ad, + }, + }, + { // yi + "×ַפֿ×ַר×ַפֿריק×ַנס×ַמה×ַריש×ַר×Ö·×’×ניש×ַר×ַביש×ַס×ַמיש×ַזערביידזש×ַנישבעל" + + "×ַרוסישבולג×ַרישבענג×ַלישטיבעטישברעט×נישב×סנישק×ַט×ַל×נישטשעכישקלוי" + + "סטער־סל×ַווישוועלשישדענישדײַטשגריכישענגלישעספּער×ַנט×שפּ×ַנישעסטישב" + + "×ַסקישפּערסישפֿינישפֿידזשיפֿ×ַר×ישפֿר×ַנצויזישמערב־פֿריזיש×ירישסק×ט" + + "יש געלישג×ַלישישמ×ַנקסה×ַוס×ַהעברע×ישהינדיקר××ַטיש×ונגעריש×ַרמעניש×" + + "ינד×נעזיש×יד××יסל×ַנדיש×יט×ַליענישי×ַפּ×ַנישי×ַוו×ַנעזישגרוזינישק×Ö·" + + "×–×ַכישכמערק×Ö·× ×ַד×ַק×רע×ישקורדישק×רנישקירגיזישל×טיינישלוקסעמבורגישל" + + "×Ö·×ליטווישלעטישמ×Ö·×רישמ×ַקעד×נישמ×ַל×Ö·×™×ַל×Ö·×מ×× ×’×לישמ×ַלטעזישבירמ×" + + "ַנישנעפּ×ַלישה×לענדישנײַ־נ×רוועגישנ×רוועגיש×קסיט×ַניש×סעטישפּוילישפ" + + "Ö¼×ַשט×ָפּ×רטוגעזישרומענישרוסישס×ַנסקריטס×ַרדישסינדהינ×רדס×ַמישסינה×" + + "ַלישסל×וו×ַקישסל×ווענישס×ַמ××ַנישש×× ×ַס×מ×ַליש×ַלב×ַנישסערביששוועדי" + + "שסוו×ַהילישט×ַמילטורקמענישט×ָטעריש×וקר×Ö·×יניש×ורדו×וזבעקישוויעטנ×ַמ" + + "עזישוו×ל×ַפּוקייִדישכינעזישזולו×ַק×ַדיש×ַלט ענגליש×ַר×ַמישב×ַלינעזי" + + "שבײַערישסעבו×ַנישקרי×־טערקישק×ַשוביש×ונטער־ס×רבישזש×ל×־פֿ×נימיטל ×¢× " + + "גלישפֿיליפּינ××ַלט־פֿר×ַנצויזישדרו×־פֿריזישמזרח־פֿריזישמיטל הויכדוי" + + "טש×ַלט־ הויכדויטשג×טיש×ור×ַלט־גריכישפידזשי הינדי×ייבער־ס×רבישל×זשב×" + + "ָןיידיש־פערסישל×ַדינ×ליווישמיז×× ×ַפּ×ליטַנישנידערדײַטש×ַלט פּערסישפ" + + "ּרייסישרוסינישסיצילי×ַנישסק×טס×ַלט־×יריש×ונטער שלעזישslyסומערישק×מ×" + + "ריששלעזישטיגרע×ומב×ַוו×וסטע שפּר×ַךמערב פֿלעמישפֿלעמישסערב×־קר××ַטי" + + "שק×× ×’×־סוו×ַהיליש", + []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x000e, 0x000e, 0x0024, 0x0024, 0x0036, 0x004a, + 0x005a, 0x006a, 0x006a, 0x006a, 0x008a, 0x008a, 0x009e, 0x00b0, + 0x00b0, 0x00b0, 0x00c2, 0x00d0, 0x00e0, 0x00ec, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x010e, 0x0130, 0x0130, 0x013e, 0x0148, + 0x0152, 0x0152, 0x0152, 0x0152, 0x015e, 0x016a, 0x0180, 0x0190, + 0x019a, 0x01a8, 0x01b6, 0x01b6, 0x01c2, 0x01d0, 0x01e0, 0x01f8, + 0x0210, 0x021a, 0x0231, 0x0241, 0x0241, 0x0241, 0x024d, 0x025b, + 0x026b, 0x0275, 0x0275, 0x0285, 0x0285, 0x0295, 0x02a5, 0x02a5, + // Entry 40 - 7F + 0x02a5, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02c1, 0x02d5, + 0x02eb, 0x02eb, 0x02ff, 0x0317, 0x0327, 0x0327, 0x0327, 0x0327, + 0x0339, 0x0339, 0x0341, 0x0353, 0x0361, 0x0361, 0x0361, 0x036d, + 0x036d, 0x0379, 0x0389, 0x0399, 0x03b1, 0x03b1, 0x03b1, 0x03b1, + 0x03b9, 0x03c7, 0x03c7, 0x03d1, 0x03d1, 0x03d1, 0x03df, 0x03f3, + 0x040d, 0x041d, 0x041d, 0x041d, 0x042f, 0x0441, 0x0441, 0x0441, + 0x0453, 0x0453, 0x0463, 0x047d, 0x048f, 0x048f, 0x048f, 0x048f, + 0x04a3, 0x04a3, 0x04a3, 0x04a3, 0x04af, 0x04af, 0x04af, 0x04bd, + // Entry 80 - BF + 0x04cd, 0x04e3, 0x04e3, 0x04e3, 0x04e3, 0x04f1, 0x04fb, 0x04fb, + 0x050d, 0x051b, 0x0527, 0x053b, 0x053b, 0x054d, 0x0561, 0x0573, + 0x0587, 0x0591, 0x05a1, 0x05b3, 0x05bf, 0x05bf, 0x05bf, 0x05bf, + 0x05cd, 0x05e1, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ed, 0x05ff, + 0x05ff, 0x05ff, 0x05ff, 0x05ff, 0x060f, 0x060f, 0x060f, 0x0625, + 0x062f, 0x063f, 0x063f, 0x0659, 0x066d, 0x066d, 0x066d, 0x066d, + 0x0679, 0x0679, 0x0679, 0x0687, 0x068f, 0x068f, 0x068f, 0x068f, + 0x068f, 0x068f, 0x068f, 0x068f, 0x068f, 0x069f, 0x069f, 0x069f, + // Entry C0 - FF + 0x069f, 0x069f, 0x06b4, 0x06b4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, + 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, 0x06c4, + 0x06c4, 0x06c4, 0x06d8, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, + 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, + 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, + 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06e6, + 0x06e6, 0x06e6, 0x06e6, 0x06e6, 0x06f8, 0x06f8, 0x06f8, 0x06f8, + 0x06f8, 0x06f8, 0x06f8, 0x06f8, 0x06f8, 0x06f8, 0x06f8, 0x06f8, + // Entry 100 - 13F + 0x06f8, 0x06f8, 0x070e, 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, + 0x071e, 0x071e, 0x071e, 0x071e, 0x071e, 0x0738, 0x0738, 0x0738, + 0x0738, 0x074e, 0x074e, 0x074e, 0x074e, 0x074e, 0x074e, 0x074e, + 0x074e, 0x074e, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0777, + 0x0777, 0x0777, 0x0777, 0x0777, 0x0799, 0x0799, 0x07b1, 0x07c9, + 0x07c9, 0x07c9, 0x07c9, 0x07c9, 0x07c9, 0x07c9, 0x07c9, 0x07c9, + 0x07c9, 0x07c9, 0x07e4, 0x0801, 0x0801, 0x0801, 0x0801, 0x080b, + 0x080b, 0x0827, 0x0827, 0x0827, 0x0827, 0x0827, 0x0827, 0x0827, + // Entry 140 - 17F + 0x0827, 0x0827, 0x083e, 0x083e, 0x083e, 0x083e, 0x0858, 0x0858, + 0x0858, 0x0858, 0x0858, 0x0858, 0x0858, 0x0858, 0x0858, 0x0868, + 0x0868, 0x0868, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, + 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, + 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, + 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, + 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, 0x0880, + 0x0880, 0x088e, 0x088e, 0x088e, 0x088e, 0x088e, 0x088e, 0x088e, + // Entry 180 - 1BF + 0x089a, 0x089a, 0x089a, 0x089a, 0x089a, 0x089a, 0x089a, 0x089a, + 0x089a, 0x089a, 0x089a, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, 0x08a2, + 0x08bc, 0x08bc, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, + 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, + // Entry 1C0 - 1FF + 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, + 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08d0, 0x08e7, 0x08e7, + 0x08e7, 0x08e7, 0x08e7, 0x08e7, 0x08f7, 0x08f7, 0x08f7, 0x08f7, + 0x08f7, 0x08f7, 0x08f7, 0x08f7, 0x08f7, 0x08f7, 0x08f7, 0x08f7, + 0x0905, 0x0905, 0x0905, 0x0905, 0x0905, 0x0905, 0x0905, 0x0905, + 0x0905, 0x0905, 0x0905, 0x0905, 0x0905, 0x091b, 0x0925, 0x0925, + 0x0925, 0x0925, 0x0925, 0x0925, 0x0925, 0x0925, 0x0939, 0x0939, + 0x0939, 0x0939, 0x0939, 0x0939, 0x0952, 0x0955, 0x0955, 0x0955, + // Entry 200 - 23F + 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, 0x0955, + 0x0955, 0x0955, 0x0963, 0x0971, 0x0971, 0x0971, 0x097d, 0x097d, + 0x097d, 0x097d, 0x097d, 0x097d, 0x0987, 0x0987, 0x0987, 0x0987, + 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, + 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, 0x0987, + 0x0987, 0x0987, 0x0987, 0x09b0, 0x09b0, 0x09b0, 0x09b0, 0x09c7, + 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, + 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, + // Entry 240 - 27F + 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, + 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, + 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, 0x09c7, + 0x09c7, 0x09c7, 0x09d5, 0x09d5, 0x09d5, 0x09d5, 0x09f1, 0x0a11, + }, + }, + { // yo + "Èdè AfrikaniÈdè AkaniÈdè AmarikiÈdè ArabikiTi AssamÈdè AzerbaijaniÈdè Be" + + "larusiÈdè BugariaÈdè BengaliÈdè BretoniÈdè BosniaÈdè CatalaÈdè seeki" + + "Èdè WelshiÈdè Ilẹ̀ DenmarkÈdè Ilẹ̀ GemaniÈdè GirikiÈdè Gẹ̀ẹÌsìÈdè E" + + "sperantoÈdè SipanisiÈdè EstoniaÈdè BaskiÈdè PasiaÈdè FinisiÈdè Faroe" + + "siÈdè FaranséÈdè FrisiaÈdè IrelandÈdè Gaelik ti Ilu ScotlandÈdè Gali" + + "ciaÈdè GuaraniÈdè GujaratiÈdè HausaÈdè HeberuÈdè HindiÈdè KroatiaÈdè" + + " HungariaÈdè Ile ArmeniaÈdè pipoÈdè IndonasiaIru ÈdèÈdè IboÈdè Icela" + + "ndicÈdè ItalianiÈdè JapanisiÈdè JavanasiÈdè GeorgiaÈdè kameriÈdè Kan" + + "nadaÈdè KoriaÈdè LatiniÈdè LithuaniaÈdè LatvianuÈdè MacedoniaÈdè mar" + + "athiÈdè MalayaÈdè MaltaÈdè BumiisiÈdè NepaliÈdè DukiÈdè NorwayÈdè Oc" + + "citaniÈdè PunjabiÈdè Ilẹ̀ PolandiÈdè Pá»tugiÈdè RomaniaÈdè Ì£Rá»á»siaÈdè" + + " RuwandaÈdè awon ara IndoÈdè SindhiÈdè SinhaleseÈdè SlovakiÈdè Slove" + + "niaÈdè ara SomaliaÈdè AlbaniaÈdè SerbiaÈdè SesotoÈdè SudaniÈdè Suwid" + + "iisiÈdè SwahiliÈdè TamiliÈdè TeluguÈdè TaiÈdè TigrinyaÈdè TurkmenÈdè" + + " Tá»á»kisiÈdè UkaniaÈdè UduÈdè UzbekÈdè JetinamuÈdè XhosaÈdè YiddishiÈ" + + "dè YorùbáÈdè MandariÈdè á¹¢uluÈdè TagalogiÈdè KlingoniÈdè Serbo-Croati" + + "ani", + []uint16{ // 607 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0019, 0x0026, 0x0026, + 0x0033, 0x003b, 0x003b, 0x003b, 0x004c, 0x004c, 0x005a, 0x0067, + 0x0067, 0x0067, 0x0074, 0x0074, 0x0081, 0x008d, 0x0099, 0x0099, + 0x0099, 0x0099, 0x0099, 0x00a4, 0x00a4, 0x00a4, 0x00b0, 0x00c5, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00e5, 0x00f9, 0x0108, 0x0116, + 0x0123, 0x012e, 0x0139, 0x0139, 0x0145, 0x0145, 0x0152, 0x0160, + 0x016c, 0x0179, 0x0195, 0x01a2, 0x01af, 0x01bd, 0x01bd, 0x01c8, + 0x01d4, 0x01df, 0x01df, 0x01ec, 0x01ec, 0x01fa, 0x020b, 0x020b, + // Entry 40 - 7F + 0x0215, 0x0224, 0x022d, 0x0236, 0x0236, 0x0236, 0x0236, 0x0245, + 0x0253, 0x0253, 0x0261, 0x026f, 0x027c, 0x027c, 0x027c, 0x027c, + 0x027c, 0x027c, 0x0288, 0x0295, 0x02a0, 0x02a0, 0x02a0, 0x02a0, + 0x02a0, 0x02a0, 0x02a0, 0x02ac, 0x02ac, 0x02ac, 0x02ac, 0x02ac, + 0x02ac, 0x02bb, 0x02bb, 0x02c9, 0x02c9, 0x02c9, 0x02c9, 0x02d8, + 0x02d8, 0x02d8, 0x02e5, 0x02f1, 0x02fc, 0x0309, 0x0309, 0x0309, + 0x0315, 0x0315, 0x031f, 0x031f, 0x032b, 0x032b, 0x032b, 0x032b, + 0x0339, 0x0339, 0x0339, 0x0339, 0x0339, 0x0346, 0x0346, 0x035b, + // Entry 80 - BF + 0x035b, 0x0369, 0x0369, 0x0369, 0x0369, 0x0376, 0x0388, 0x0395, + 0x03a8, 0x03a8, 0x03b4, 0x03b4, 0x03b4, 0x03c3, 0x03d0, 0x03de, + 0x03de, 0x03de, 0x03ef, 0x03fc, 0x0408, 0x0408, 0x0414, 0x0420, + 0x042f, 0x043c, 0x0448, 0x0454, 0x0454, 0x045d, 0x046b, 0x0478, + 0x0478, 0x0478, 0x0489, 0x0489, 0x0489, 0x0489, 0x0489, 0x0495, + 0x049e, 0x04a9, 0x04a9, 0x04b7, 0x04b7, 0x04b7, 0x04b7, 0x04c2, + 0x04d0, 0x04de, 0x04de, 0x04eb, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + // Entry C0 - FF + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + // Entry 100 - 13F + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, + 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x04f7, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + // Entry 140 - 17F + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + // Entry 180 - 1BF + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + // Entry 1C0 - 1FF + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + // Entry 200 - 23F + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, 0x0505, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + // Entry 240 - 27F + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, + 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0513, 0x0528, + }, + }, + { // yo-BJ + "Èdè Ilɛ̀ DenmarkÈdè Ilɛ̀ GemaniÈdè Gɛ̀ɛÌsìÈdè Ilɛ̀ PolandiÈdè PÉ”tugiÈdè " + + "Ì£RɔɔsiaÈdè TɔɔkisiÈdè Shulu", + []uint16{ // 181 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0014, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + // Entry 40 - 7F + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x004d, + // Entry 80 - BF + 0x004d, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, + 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, 0x0079, + 0x0079, 0x0079, 0x0079, 0x0079, 0x0084, + }, + }, + { // yue + "阿法文阿布哈茲文阿緯斯陀文å—éžè·è˜­æ–‡é˜¿åŽæ–‡é˜¿å§†å“ˆæ‹‰æ–‡é˜¿æ‹‰è²¢æ–‡é˜¿æ‹‰ä¼¯æ–‡é˜¿è–©å§†æ–‡é˜¿ç“¦çˆ¾æ–‡è‰¾é¦¬æ‹‰æ–‡äºžå¡žæ‹œç„¶æ–‡å·´ä»€å®¢çˆ¾æ–‡ç™½ä¿„羅斯文ä¿åŠ åˆ©äºžæ–‡æ¯”斯拉馬文ç­" + + "巴拉文孟加拉文è—文布列塔尼文波士尼亞文加泰羅尼亞文車臣文查莫洛文科西嘉文克裡文æ·å…‹æ–‡å®—教斯拉夫文楚瓦什文å¨çˆ¾æ–¯æ–‡ä¸¹éº¥æ–‡å¾·æ–‡è¿ªç¶­è¥¿æ–‡å®—" + + "å¡æ–‡åŸƒç¶­æ–‡å¸Œè‡˜æ–‡è‹±æ–‡ä¸–界文西ç­ç‰™æ–‡æ„›æ²™å°¼äºžæ–‡å·´æ–¯å…‹æ–‡æ³¢æ–¯æ–‡å¯Œæ‹‰æ–‡èŠ¬è˜­æ–‡æ–濟文法羅文法文西弗里西亞文愛爾蘭文蘇格蘭蓋爾文加利西亞文瓜拉" + + "尼文å¤å‰æ‹‰ç‰¹æ–‡æ›¼å³¶æ–‡è±ªæ’’文希伯來文北å°åº¦æ–‡è¥¿é‡ŒèŽ«åœ–土文克羅埃西亞文海地文匈牙利文亞美尼亞文赫雷羅文國際文å°å°¼æ–‡åœ‹éš›æ–‡ï¼ˆE)伊布文四å·" + + "å½æ–‡ä¾å¥´çš®ç¶­å…‹æ–‡ä¼Šå¤šæ–‡å†°å³¶æ–‡ç¾©å¤§åˆ©æ–‡å› ç´ç‰¹æ–‡æ—¥æ–‡çˆªå“‡æ–‡å–¬æ²»äºžæ–‡å‰›æžœæ–‡å‰åº«å°¤æ–‡å»£äºžé¦¬æ–‡å“ˆè–©å…‹æ–‡æ ¼é™µè˜­æ–‡é«˜æ£‰æ–‡åŽé‚£é”文韓文å¡åŠªè£¡æ–‡å–€ä»€ç±³" + + "爾文庫爾德文科米文康瓦耳文å‰çˆ¾å‰æ–¯æ–‡æ‹‰ä¸æ–‡ç›§æ£®å ¡æ–‡å¹²é”文林堡文林加拉文寮文立陶宛文魯巴加丹加文拉脫維亞文馬拉加什文馬紹爾文毛利文馬其" + + "頓文馬來亞拉姆文蒙å¤æ–‡é¦¬æ‹‰åœ°æ–‡é¦¬ä¾†æ–‡é¦¬çˆ¾ä»–文緬甸文諾魯文北地畢列文尼泊爾文æ©æ±åŠ æ–‡è·è˜­æ–‡è€è«¾æ–¯å…‹æŒªå¨æ–‡å·´å…‹æ‘©æŒªå¨æ–‡å—地畢列文ç´ç“¦éœæ–‡" + + "å°¼æšè³ˆæ–‡å¥§å…‹è¥¿å¦æ–‡å¥§æ°å¸ƒç“¦æ–‡å¥§ç¾…莫文æ­åˆ©äºžæ–‡å¥§å¡žææ–‡æ—é®æ™®æ–‡å·´åˆ©æ–‡æ³¢è˜­æ–‡æ™®ä»€åœ–文葡è„牙文蓋楚瓦文羅曼斯文隆迪文羅馬尼亞文俄文盧安é”æ–‡" + + "梵文撒ä¸æ–‡ä¿¡å¾·æ–‡åŒ—方薩米文桑戈文僧伽羅文斯洛ä¼å…‹æ–‡æ–¯æ´›ç¶­å°¼äºžæ–‡è–©æ‘©äºžæ–‡å¡žå…§åŠ çˆ¾æ–‡ç´¢é¦¬åˆ©æ–‡é˜¿çˆ¾å·´å°¼äºžæ–‡å¡žçˆ¾ç¶­äºžæ–‡æ–¯ç“¦ç‰¹æ–‡å¡žç´¢æ‰˜æ–‡å·½ä»–æ–‡" + + "瑞典文å²ç“¦å¸Œé‡Œæ–‡å¦ç±³çˆ¾æ–‡æ³°ç›§å›ºæ–‡å¡”å‰å…‹æ–‡æ³°æ–‡æ格利尼亞文土庫曼文çªå°¼è¥¿äºžæ–‡æ±åŠ æ–‡åœŸè€³å…¶æ–‡ç‰¹æ¾åŠ æ–‡éŸƒé¼æ–‡å¤§æºªåœ°æ–‡ç¶­å¾çˆ¾æ–‡çƒå…‹è˜­æ–‡çƒéƒ½æ–‡" + + "çƒèŒ²åˆ¥å…‹æ–‡æº«é”文越å—文沃拉普克文瓦隆文沃洛夫文科薩文æ„第緒文約魯巴文壯文中文祖魯文亞齊文阿僑利文阿當莫文阿迪å„æ–‡çªå°¼æ–¯é˜¿æ‹‰ä¼¯æ–‡é˜¿å¼—里" + + "希利文亞罕文阿伊努文阿å¡å¾·æ–‡é˜¿æ‹‰å·´é¦¬æ–‡é˜¿ç•™ç”³æ–‡è“‹æ ¼é˜¿çˆ¾å·´å°¼äºžæ–‡å—阿爾泰文å¤è‹±æ–‡æ˜‚加文阿拉米文馬普切文阿拉奧ç´æ–‡é˜¿æ‹‰å¸•éœæ–‡é˜¿çˆ¾åŠåˆ©äºžé˜¿" + + "拉伯文阿拉瓦克文摩洛哥阿拉伯文埃åŠé˜¿æ‹‰ä¼¯æ–‡é˜¿è˜‡æ–‡ç¾Žåœ‹æ‰‹èªžé˜¿æ–¯åœ–里亞文科塔瓦文阿瓦文俾路支文峇里文巴ä¼åˆ©äºžæ–‡å·´è–©æ–‡å·´å§†ç©†æ–‡å·´å¡”克托巴文" + + "戈馬拉文è²æ‰Žæ–‡åˆ¥å§†å·´æ–‡è²å¡”維文è²ç´æ–‡å¯Œç‰¹æ–‡å·´é”加文西俾路支文åšå‚‘普爾文比科爾文比尼文ç­äºžçˆ¾æ–‡åº·å§†æ–‡éŒ«å…‹éŒ«å¡æ–‡æ¯”什奴普èŠåˆ©äºžæ–‡å·´èµ«è’‚亞" + + "里文布拉æ°æ–‡å¸ƒæ‹‰ç¶­æ–‡åšå¤šæ–‡é˜¿åº«è‰²æ–‡å¸ƒé‡Œé˜¿ç‰¹æ–‡å¸ƒå‰æ–¯æ–‡å¸ƒé­¯æ–‡æ¯”林文梅敦巴文å¡å¤šæ–‡åŠ å‹’比文å¡å°¤åŠ æ–‡é˜¿ç‡¦æ–‡å®¿éœ§æ–‡å¥‡åŠ æ–‡å¥‡å¸ƒæŸ¥æ–‡æŸ¥åŠ æ–‡è™•å¥‡æ–¯" + + "文馬里文契奴克文喬克托文奇佩瓦æšæ–‡æŸ´ç¾…基文沙伊安文索拉尼庫爾德文科普特文å¡çš®èŒ²æ–‡å…‹é‡Œç±³äºžåŠå³¶çš„土耳其文;克里米亞åŠå³¶çš„塔塔爾文å¡èˆ’布" + + "æ–‡é”科他文é”爾格瓦文å°å¡”文德拉瓦文斯拉夫多格里布文ä¸å¡æ–‡æ‰Žçˆ¾é¦¬æ–‡å¤šæ ¼ä¾†æ–‡ä¸‹ç´¢å¸ƒæ–‡ä¸­éƒ¨æœé †æ–‡æœäºžæ‹‰æ–‡ä¸­å¤è·è˜­æ–‡æœ±æ‹‰æ–‡è¿ªå°¤æ‹‰æ–‡é”è–©æ–‡æ©å¸ƒ" + + "文埃è²å…‹æ–‡åŸƒç±³åˆ©å®‰æ–‡å¤åŸƒåŠæ–‡è‰¾å¡æœ±å…‹æ–‡åŸƒè˜­æ–‡ä¸­å¤è‹±æ–‡ä¸­å°¤çš®å…‹æ–‡ä¾æ±ªéƒ½æ–‡åŸƒæ–¯ç‰¹é›·é¦¬æœæ‹‰æ–‡èŠ³æ—æ–‡è²å¾‹è³“文托爾訥芬蘭文è±æ–‡å¡çœŸæ³•æ–‡ä¸­å¤æ³•æ–‡" + + "å¤æ³•æ–‡æ³•è˜­å…‹-普羅旺斯文北弗里西亞文æ±å¼—里西亞文弗留利文加æ—文加告茲文贛語加約文葛巴亞文索羅亞斯德教é”里文å‰èŒ²æ–‡å‰çˆ¾ä¼¯ç‰¹ç¾¤å³¶æ–‡å‰æ‹‰åŸº" + + "文中å¤é«˜åœ°å¾·æ–‡å¤é«˜åœ°æ—¥è€³æ›¼æ–‡å­”å¡å°¼æ–‡å²¡å¾·æ–‡ç§‘隆é”羅文哥德文格列åšæ–‡å¤å¸Œè‡˜æ–‡å¾·æ–‡ï¼ˆç‘žå£«ï¼‰ç“¦å°¤æ–‡å¼—拉弗拉文å¤è¥¿æ–‡åœ­å¥‘文海é”文客家話å¤å¨å¤·" + + "æ–‡æ–æ¿Ÿå°åœ°æ–‡å¸Œåˆ©è“‹è¾²æ–‡èµ«æ¢¯æ–‡å­Ÿæ–‡ä¸Šç´¢å¸ƒæ–‡æ¹˜èªžèƒ¡å¸•æ–‡ä¼Šç­æ–‡ä¼Šæ¯”比奧文伊洛闊文å°å¤ä»€æ–‡è‹±æ ¼è£äºžæ–‡ç‰™è²·åŠ å…‹è£å¥§çˆ¾è‹±æ–‡é‚輯文æ©æ ¼å§†å·´æ–‡é¦¬æ°ç¾Ž" + + "文猶太教-波斯文猶太阿拉伯文日德蘭文å¡æ‹‰å¡çˆ¾å¸•å…‹æ–‡å¡æ¯”爾文å¡ç´æ–‡å¡æ·æ–‡å¡å§†å·´æ–‡å¡å¨æ–‡å¡å·´çˆ¾é”æ–‡å¡å¿µå¸ƒæ–‡å¡å¡”布文馬孔德文å¡å¸ƒå¨çˆ¾ç¬¬æ–‡è‚¯" + + "æšæ–‡ç§‘ç¾…æ–‡åŽå‰›æ–‡å¡è¥¿æ–‡å’Œé—文西桑海文科瓦文北紮紮其文å¡åº«æ–‡å¡å€«é‡‘文金邦æœæ–‡ç§‘ç±³-彼爾米亞克文貢根文科斯雷æ©æ–‡å…‹ä½©åˆ—æ–‡å¡æ‹‰æŸ´-包爾å¡çˆ¾" + + "文塞拉利昂克è£å¥§çˆ¾æ–‡åŸºé‚£ä¾†é˜¿æ–‡å¡ç´¯åˆ©é˜¿æ–‡åº«é­¯ç§‘文尚巴拉文巴è²äºžæ–‡ç§‘隆文庫密克文庫特奈文拉迪諾文朗å‰æ–‡æ‹‰äº¨é”文蘭巴文列茲干文新共åŒèªžè¨€" + + "利å¤é‡Œäºžæ–‡åˆ©ä¼å°¼äºžæ–‡æ‹‰ç§‘塔文倫巴底文芒戈文洛齊文北盧爾文拉特加èŠæ–‡é­¯å·´é­¯é­¯äºžæ–‡è·¯æ˜“塞諾文盧æ©é”文盧奧文盧晒文盧雅文文言文拉茲文馬都拉" + + "文馬法文馬加伊文é‚蒂利文望加錫文曼ä¸å“¥æ–‡é¦¬è³½æ–‡é¦¬å·´æ–‡èŽ«å…‹æ²™æ–‡æ›¼é”文門德文梅魯文克里奧文(模里西斯)中å¤æ„›çˆ¾è˜­æ–‡é¦¬å¤¸æ–‡ç¾Žå¡”文米克馬克文" + + "ç±³å—å¡å ¡æ–‡æ»¿æ—文曼尼普裡文莫éœå…‹æ–‡èŽ«è¥¿æ–‡è¥¿é¦¬è£æ–‡è’™ç•¶æ–‡å¤šç¨®èªžè¨€å…‹é‡Œå…‹æ–‡ç±³è˜­å¾·æ–¯æ–‡é¦¬çˆ¾å°¼è£¡æ–‡æ˜Žæ‰“å¨æ–‡å§†è€¶å…§æ–‡åŽ„爾茲亞文馬贊德蘭文閩å—語" + + "拿波里文ç´é¦¬æ–‡ä½Žåœ°å¾·æ–‡å°¼ç“¦çˆ¾æ–‡å°¼äºžæ–¯æ–‡ç´åŸƒæ–‡é˜¿æ²ƒé‚£åŠ æ–‡å¤¸è¥¿å¥§æ–‡æ©ç”˜æ¾Žæ–‡è«¾è“‹æ–‡å¤è«¾çˆ¾æ–¯æ–‡è«¾ç¶­äºžæ–‡æ›¼å¾·æ–‡å­— (N’Ko)北索托文努埃爾文" + + "å¤å°¼ç“¦çˆ¾æ–‡å°¼æšéŸ‹é½Šæ–‡å°¼æšç§‘èŠæ–‡å°¼å¥§å›‰æ–‡å°¼èŒ²é¦¬æ–‡æ­å¡žå¥‡æ–‡é„‚圖曼土耳其文潘加辛文巴列維文潘帕嘉文帕皮阿門托文帛ç‰æ–‡åº‡å¡åº•æ–‡è³“夕法尼亞德文" + + "門諾低地德文å¤æ³¢æ–¯æ–‡æ™®æ³•çˆ¾èŒ¨å¾·æ–‡è…“尼基文皮埃蒙特文æ—狄希臘文波那è²æ–‡æ™®é­¯å£«æ–‡å¤æ™®ç¾…旺斯文基切文欽åšæ‹‰ç´¢æµ·è˜­è“‹ä¸˜äºžæ–‡æ‹‰è³ˆæ–¯å¦è«¸æ–‡å¾©æ´»å³¶" + + "文拉羅通加文羅馬格諾里文里è²äºžè«¾æ–‡è˜­åšæ–‡å‰æ™®è³½æ–‡ç¾…圖馬島文盧森尼亞文羅維阿ç´æ–‡ç¾…馬尼亞語系羅瓦文桑é”韋文雅庫特文薩瑪利亞阿拉姆文薩布" + + "魯文撒撒克文散塔利文索拉什特拉文甘拜文桑å¤æ–‡è¥¿è¥¿é‡Œæ–‡è˜‡æ ¼è˜­æ–‡è–©ä¸å°¼äºž-薩薩里文å—庫爾德文塞訥å¡æ–‡è³½ç´æ–‡ç‘Ÿé‡Œæ–‡ç‘Ÿçˆ¾å¡æ™®æ–‡æ±æ¡‘æµ·æ–‡å¤æ„›çˆ¾" + + "蘭文薩莫å‰å¸Œäºžæ–‡å¸Œçˆ¾å“ˆæ–‡æ’£æ–‡é˜¿æ‹‰ä¼¯æ–‡ï¼ˆæŸ¥å¾·ï¼‰å¸Œé”摩文下西利西亞文塞拉亞文å—薩米文魯勒薩米文伊ç´è£¡è–©ç±³æ–‡æ–¯ç§‘特薩米文索尼基文索格底亞ç´" + + "文蘇拉å—æ±å¢Žæ–‡å¡žé›·çˆ¾æ–‡è–©éœæ–‡æ²™ç‰¹è²å£«è˜­æ–‡è˜‡åº«é¦¬æ–‡è˜‡è˜‡æ–‡è˜‡ç¾Žæ–‡è‘›æ‘©æ–‡å¤æ•˜åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡è¥¿åˆ©è¥¿äºžæ–‡åœ–盧文æ姆文特索文泰雷諾文泰頓文蒂格雷" + + "æ–‡æ夫文托克勞文查庫爾文克林貢文特林基特文塔里什文塔馬奇克文æ±åŠ æ–‡ï¼ˆå°¼äºžè–©ï¼‰æ‰˜æ¯”辛文圖羅尤文太魯閣文特薩克尼æ©æ–‡æ¬½è¥¿å®‰æ–‡ç©†æ–¯æž—塔特文" + + "圖姆布å¡æ–‡å瓦魯文北桑海文土凡文塔馬齊格特文沃蒂艾克文çƒåŠ åˆ—文姆本æœæ–‡æ ¹èªžè¨€ç“¦ä¼Šæ–‡å¨å°¼æ–¯æ–‡ç¶­æ™®æ£®æ–‡è¥¿ä½›è˜­å¾·æ–‡ç¾ŽèŒµ-法蘭克尼亞文沃æå…‹" + + "文佛羅文溫舊文瓦瑟文瓦拉莫文瓦瑞文瓦紹文沃皮瑞文å³èªžå¡çˆ¾æ¢…克文明格列爾文索加文瑤文雅浦文洋åžæ–‡è€¶å§†å·´æ–‡å¥ˆæ©åŠ åœ–文粵語薩波特克文布列斯" + + "符號西蘭文澤ç´åŠ æ–‡æ¨™æº–摩洛哥塔馬塞特文祖尼文無語言內容扎扎文ç¾ä»£æ¨™æº–阿拉伯文高地德文(瑞士)低地薩克éœæ–‡ä½›è˜­èŠ’文摩爾多瓦文塞爾維亞克" + + "羅埃西亞文å²ç“¦å¸Œé‡Œæ–‡ï¼ˆå‰›æžœï¼‰ç°¡é«”中文ç¹é«”中文", + []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0018, 0x0027, 0x0036, 0x003f, 0x004e, 0x005a, + 0x0066, 0x0072, 0x007e, 0x008a, 0x0099, 0x00a8, 0x00b7, 0x00c6, + 0x00d5, 0x00e1, 0x00ed, 0x00f3, 0x0102, 0x0111, 0x0123, 0x012c, + 0x0138, 0x0144, 0x014d, 0x0156, 0x0168, 0x0174, 0x0180, 0x0189, + 0x018f, 0x019b, 0x01a4, 0x01ad, 0x01b6, 0x01bc, 0x01c5, 0x01d1, + 0x01e0, 0x01ec, 0x01f5, 0x01fe, 0x0207, 0x0210, 0x0219, 0x021f, + 0x0231, 0x023d, 0x024f, 0x025e, 0x026a, 0x0279, 0x0282, 0x028b, + 0x0297, 0x02a3, 0x02b5, 0x02c7, 0x02d0, 0x02dc, 0x02eb, 0x02f7, + // Entry 40 - 7F + 0x0300, 0x0309, 0x0319, 0x0322, 0x032e, 0x0340, 0x0349, 0x0352, + 0x035e, 0x036a, 0x0370, 0x0379, 0x0385, 0x038e, 0x039a, 0x03a6, + 0x03b2, 0x03be, 0x03c7, 0x03d3, 0x03d9, 0x03e5, 0x03f4, 0x0400, + 0x0409, 0x0415, 0x0424, 0x042d, 0x0439, 0x0442, 0x044b, 0x0457, + 0x045d, 0x0469, 0x047b, 0x048a, 0x0499, 0x04a5, 0x04ae, 0x04ba, + 0x04cc, 0x04d5, 0x04e1, 0x04ea, 0x04f6, 0x04ff, 0x0508, 0x0517, + 0x0523, 0x052f, 0x0538, 0x054d, 0x055f, 0x056e, 0x057a, 0x0586, + 0x0595, 0x05a4, 0x05b0, 0x05bc, 0x05c8, 0x05d4, 0x05dd, 0x05e6, + // Entry 80 - BF + 0x05f2, 0x05fe, 0x060a, 0x0616, 0x061f, 0x062e, 0x0634, 0x0640, + 0x0646, 0x064f, 0x0658, 0x0667, 0x0670, 0x067c, 0x068b, 0x069d, + 0x06a9, 0x06b8, 0x06c4, 0x06d6, 0x06e5, 0x06f1, 0x06fd, 0x0706, + 0x070f, 0x071e, 0x072a, 0x0736, 0x0742, 0x0748, 0x075a, 0x0766, + 0x0775, 0x077e, 0x078a, 0x0796, 0x079f, 0x07ab, 0x07b7, 0x07c3, + 0x07cc, 0x07db, 0x07e4, 0x07ed, 0x07fc, 0x0805, 0x0811, 0x081a, + 0x0826, 0x0832, 0x0838, 0x083e, 0x0847, 0x0850, 0x085c, 0x0868, + 0x0874, 0x0889, 0x089b, 0x08a4, 0x08b0, 0x08bc, 0x08cb, 0x08d7, + // Entry C0 - FF + 0x08ef, 0x08fe, 0x0907, 0x0910, 0x091c, 0x0928, 0x0937, 0x0946, + 0x0961, 0x0970, 0x0985, 0x0997, 0x09a0, 0x09ac, 0x09be, 0x09ca, + 0x09d3, 0x09df, 0x09e8, 0x09f7, 0x0a00, 0x0a0c, 0x0a1e, 0x0a2a, + 0x0a33, 0x0a3f, 0x0a4b, 0x0a54, 0x0a5d, 0x0a69, 0x0a78, 0x0a87, + 0x0a93, 0x0a9c, 0x0aa8, 0x0ab1, 0x0ac0, 0x0ad8, 0x0aea, 0x0af6, + 0x0b02, 0x0b0b, 0x0b17, 0x0b26, 0x0b32, 0x0b3b, 0x0b44, 0x0b50, + 0x0b59, 0x0b65, 0x0b71, 0x0b7a, 0x0b83, 0x0b8c, 0x0b98, 0x0ba1, + 0x0bad, 0x0bb6, 0x0bc2, 0x0bce, 0x0bdd, 0x0be9, 0x0bf5, 0x0c0a, + // Entry 100 - 13F + 0x0c16, 0x0c22, 0x0c67, 0x0c73, 0x0c7f, 0x0c8e, 0x0c97, 0x0ca3, + 0x0cac, 0x0cbb, 0x0cc4, 0x0cd0, 0x0cdc, 0x0ce8, 0x0cf7, 0x0d03, + 0x0d12, 0x0d1b, 0x0d27, 0x0d30, 0x0d39, 0x0d45, 0x0d54, 0x0d60, + 0x0d6f, 0x0d78, 0x0d84, 0x0d93, 0x0d9f, 0x0db7, 0x0dc0, 0x0dcc, + 0x0dde, 0x0de4, 0x0df0, 0x0dfc, 0x0e05, 0x0e1e, 0x0e30, 0x0e42, + 0x0e4e, 0x0e57, 0x0e63, 0x0e69, 0x0e72, 0x0e7e, 0x0e99, 0x0ea2, + 0x0eb7, 0x0ec3, 0x0ed5, 0x0eea, 0x0ef6, 0x0eff, 0x0f0e, 0x0f17, + 0x0f23, 0x0f2f, 0x0f41, 0x0f4a, 0x0f59, 0x0f62, 0x0f6b, 0x0f74, + // Entry 140 - 17F + 0x0f7d, 0x0f89, 0x0f98, 0x0fa7, 0x0fb0, 0x0fb6, 0x0fc2, 0x0fc8, + 0x0fd1, 0x0fda, 0x0fe9, 0x0ff5, 0x1001, 0x1010, 0x102b, 0x1034, + 0x1043, 0x104f, 0x1062, 0x1074, 0x1080, 0x1095, 0x10a1, 0x10aa, + 0x10b3, 0x10bf, 0x10c8, 0x10d7, 0x10e3, 0x10ef, 0x10fb, 0x110d, + 0x1116, 0x111f, 0x1128, 0x1131, 0x113a, 0x1146, 0x114f, 0x115e, + 0x1167, 0x1173, 0x117f, 0x1198, 0x11a1, 0x11b0, 0x11bc, 0x11d5, + 0x11f0, 0x11ff, 0x120e, 0x121a, 0x1226, 0x1232, 0x123b, 0x1247, + 0x1253, 0x125f, 0x1268, 0x1274, 0x127d, 0x1289, 0x1298, 0x12a7, + // Entry 180 - 1BF + 0x12b6, 0x12c2, 0x12ce, 0x12d7, 0x12e0, 0x12ec, 0x12fb, 0x130d, + 0x131c, 0x1328, 0x1331, 0x133a, 0x1343, 0x134c, 0x1355, 0x1361, + 0x136a, 0x1376, 0x1382, 0x138e, 0x139a, 0x13a3, 0x13ac, 0x13b8, + 0x13c1, 0x13ca, 0x13d3, 0x13f1, 0x1403, 0x140c, 0x1415, 0x1424, + 0x1433, 0x143c, 0x144b, 0x1457, 0x1460, 0x146c, 0x1475, 0x1481, + 0x148d, 0x149c, 0x14ab, 0x14b7, 0x14c3, 0x14d2, 0x14e1, 0x14ea, + 0x14f6, 0x14ff, 0x150b, 0x1517, 0x1523, 0x152c, 0x153b, 0x1547, + 0x1553, 0x155c, 0x156b, 0x1577, 0x158c, 0x1598, 0x15a4, 0x15b3, + // Entry 1C0 - 1FF + 0x15c2, 0x15d1, 0x15dd, 0x15e9, 0x15f5, 0x160a, 0x1616, 0x1622, + 0x162e, 0x1640, 0x1649, 0x1655, 0x166a, 0x167c, 0x1688, 0x169a, + 0x16a6, 0x16b5, 0x16c4, 0x16d0, 0x16dc, 0x16ee, 0x16f7, 0x1715, + 0x1727, 0x1733, 0x1742, 0x1754, 0x1763, 0x176c, 0x1778, 0x1787, + 0x1796, 0x17a5, 0x17b7, 0x17c0, 0x17cc, 0x17d8, 0x17f0, 0x17fc, + 0x1808, 0x1814, 0x1826, 0x182f, 0x1838, 0x1844, 0x1850, 0x1869, + 0x1878, 0x1884, 0x188d, 0x1896, 0x18a5, 0x18b1, 0x18c0, 0x18d2, + 0x18de, 0x18e4, 0x18fc, 0x1908, 0x191a, 0x1926, 0x1932, 0x1941, + // Entry 200 - 23F + 0x1953, 0x1965, 0x1971, 0x1983, 0x1995, 0x19a1, 0x19aa, 0x19bc, + 0x19c8, 0x19d1, 0x19da, 0x19e3, 0x19f2, 0x19fe, 0x1a0d, 0x1a16, + 0x1a1f, 0x1a28, 0x1a34, 0x1a3d, 0x1a49, 0x1a52, 0x1a5e, 0x1a6a, + 0x1a76, 0x1a85, 0x1a91, 0x1aa0, 0x1ab8, 0x1ac4, 0x1ad0, 0x1adc, + 0x1aee, 0x1afa, 0x1b0c, 0x1b1b, 0x1b27, 0x1b33, 0x1b3c, 0x1b4e, + 0x1b5d, 0x1b69, 0x1b75, 0x1b7e, 0x1b87, 0x1b93, 0x1b9f, 0x1bae, + 0x1bc7, 0x1bd3, 0x1bdc, 0x1be5, 0x1bee, 0x1bfa, 0x1c03, 0x1c0c, + 0x1c18, 0x1c1e, 0x1c2d, 0x1c3c, 0x1c45, 0x1c4b, 0x1c54, 0x1c5d, + // Entry 240 - 27F + 0x1c69, 0x1c78, 0x1c7e, 0x1c8d, 0x1c9c, 0x1ca5, 0x1cb1, 0x1ccf, + 0x1cd8, 0x1ce7, 0x1cf0, 0x1d08, 0x1d08, 0x1d08, 0x1d20, 0x1d20, + 0x1d20, 0x1d20, 0x1d20, 0x1d20, 0x1d20, 0x1d20, 0x1d20, 0x1d20, + 0x1d20, 0x1d32, 0x1d3e, 0x1d3e, 0x1d3e, 0x1d4d, 0x1d6b, 0x1d86, + 0x1d92, 0x1d9e, + }, + }, + { // zgh + "ⵜⴰⴽⴰâµâµœâµœâ´°âµŽâµ€â´°âµ”ⵉⵜⵜⴰⵄⵔⴰⴱⵜⵜⴰⴱⵉâµâ´°âµ”ⵓⵙⵜⵜⴰⴱâµâµ–ⴰⵔⵉⵜⵜⴰⴱâµâµ–â´°âµâµ‰âµœâµœâ´°âµœâµ›âµ‰â´½âµ‰âµœâµœâ´°âµâµ‰âµŽâ´°âµâµœâµœâ´°â´³âµ”ⵉⴳⵉ" + + "ⵜⵜⴰâµâ´³âµâµ‰âµ£âµœâµœâ´°âµ™â´±âµâµ¢âµ“âµâµ‰âµœâµœâ´°â´¼âµ“ⵔⵙⵉⵜⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµœâ´°âµ€â´°âµ¡âµ™â´°âµœâµœâ´°âµ€âµ‰âµâ´·âµ‰âµœâµœâ´°âµ€âµâµ–ⴰⵔⵉⵜⵜⴰâµâ´·" + + "ⵓâµâµ‰âµ™âµ‰âµœâµœâµ‰â´³â´±âµ“ⵜⵜⴰⵟⴰâµâµ¢â´°âµâµœâµœâ´°âµŠâ´°â´±â´±âµ“âµâµ‰âµœâµœâ´°âµŠâ´°â´±â´°âµâµ‰âµœâµœâ´°âµ…ⵎⵉⵔⵜⵜⴰⴽⵓⵔⵉⵜⵜⴰⵎⴰâµâ´°âµ¡âµ‰âµœâµœâ´°â´±" + + "ⵉⵔⵎⴰâµâµ‰âµœâµœâ´°âµâµ‰â´±â´°âµâµ‰âµœâµœâ´°âµ€âµ“âµâ´°âµâ´·âµ‰âµœâµœâ´°â´±âµâµŠâ´°â´±âµ‰âµœâµœâ´°â´±âµ“âµâµ“âµâµ‰âµœâµœâ´°â´±âµ•âµŸâµ‡âµ‰âµ£âµœâµœâ´°âµ”ⵓⵎⴰâµâµ‰âµœâµœâ´°âµ”ⵓ" + + "ⵙⵉⵜⵜⴰⵔⵓⵡⴰâµâ´·âµ‰âµœâµœâ´°âµ™âµ“ⵎⴰâµâµ‰âµœâµœâ´°âµ™âµ¡âµ‰â´·âµ‰âµœâµœâ´°âµœâ´°âµŽâµ‰âµâµœâµœâ´°âµœâ´°âµ¢âµâ´°âµâ´·âµ‰âµœâµœâ´°âµœâµ“ⵔⴽⵉⵜⵜⵓⴽⵔⴰâµâµ‰âµœâµœ" + + "ⵓⵔⴷⵓⵜⵜⴰⴱⵉⵜâµâ´°âµŽâµ‰âµœâµœâ´°âµ¢âµ”ⵓⴱⴰⵜⵜⴰⵛⵉâµâµ¡âµ‰âµœâµœâ´°âµ£âµ“âµâµ“ⵜⵜⴰⵎⴰⵣⵉⵖⵜ", + []uint16{ // 584 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x002a, 0x002a, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005d, 0x0078, + 0x0078, 0x0078, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00db, 0x00f3, 0x00f3, 0x0111, + 0x0111, 0x0111, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x015f, + 0x015f, 0x0177, 0x0177, 0x0177, 0x0177, 0x0192, 0x0192, 0x0192, + // Entry 40 - 7F + 0x0192, 0x01b0, 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01dd, 0x01dd, 0x01fb, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, + 0x0216, 0x0216, 0x022b, 0x022b, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, 0x0240, + 0x0240, 0x0240, 0x0240, 0x025b, 0x025b, 0x0279, 0x0279, 0x0279, + 0x0294, 0x0294, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, + 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02b2, 0x02cd, 0x02cd, 0x02e8, + // Entry 80 - BF + 0x02e8, 0x0303, 0x0303, 0x0303, 0x0303, 0x031e, 0x0333, 0x0351, + 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, 0x0351, + 0x0351, 0x0351, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, 0x036c, + 0x0384, 0x0384, 0x039c, 0x039c, 0x039c, 0x03bd, 0x03bd, 0x03bd, + 0x03bd, 0x03bd, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03d5, 0x03ed, + 0x03ff, 0x03ff, 0x03ff, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, + 0x041d, 0x0435, 0x0435, 0x044d, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry C0 - FF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 100 - 13F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 140 - 17F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 180 - 1BF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 1C0 - 1FF + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 200 - 23F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, + // Entry 240 - 27F + 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x0462, 0x047a, + }, + }, + { // zh + zhLangStr, + zhLangIdx, + }, + { // zh-Hant + zhHantLangStr, + zhHantLangIdx, + }, + { // zh-Hant-HK + "阿塞拜疆文巴什基爾文布里多尼文波斯尼亞文加泰隆尼亞文世界語加里西亞文克羅地亞文æ„大利文格魯å‰äºžæ–‡åŽç´é”æ–‡è€æ’¾æ–‡é¦¬æ‹‰åŠ æ–¯æ–‡é¦¬æ‹‰é›…拉姆文馬耳他文奧里" + + "雅文盧旺é”文信德語斯洛文尼亞文修ç´æ–‡ç´¢é¦¬é‡Œæ–‡æ³°ç±³çˆ¾æ–‡æ¹¯åŠ æ–‡çƒçˆ¾éƒ½æ–‡ç‘žå£«å¾·æ–‡æ¯›é‡Œè£˜æ–¯å…‹é‡Œå¥§çˆ¾æ–‡è¥¿éžæ›¸é¢èªžè¨€ï¼ˆN’ko)伊ç´é‡Œè–©ç±³æ–‡ç“¦çˆ¾" + + "皮里文摩洛哥標準塔馬齊格特文å—阿塞拜疆文奧地利德文瑞士德語澳洲英文加拿大英文英國英文美國英文拉ä¸ç¾Žæ´²è¥¿ç­ç‰™æ–‡æ­æ´²è¥¿ç­ç‰™æ–‡å¢¨è¥¿å“¥è¥¿ç­ç‰™" + + "文加拿大法文瑞士法文è·è˜­ä½Žåœ°å¾·æ–‡å·´è¥¿è‘¡è„牙語æ­æ´²è‘¡è„牙文摩爾多瓦羅馬尼亞文剛果å²ç“¦å¸Œé‡Œæ–‡", + []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x002d, 0x003c, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + // Entry 40 - 7F + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00d2, 0x00d2, 0x00d2, 0x00d2, + 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, 0x00d2, + 0x00d2, 0x00d2, 0x00d2, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 80 - BF + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00ea, + 0x00ea, 0x00ea, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x00f3, 0x0105, + 0x0105, 0x010e, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x011a, 0x011a, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, + 0x0126, 0x012f, 0x012f, 0x012f, 0x012f, 0x012f, 0x012f, 0x012f, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + // Entry C0 - FF + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + // Entry 100 - 13F + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, 0x013b, + 0x013b, 0x013b, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + // Entry 140 - 17F + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + // Entry 180 - 1BF + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0162, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 1C0 - 1FF + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, + // Entry 200 - 23F + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, 0x0192, + 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, + // Entry 240 - 27F + 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01d4, 0x01e3, 0x01ef, 0x01fb, + 0x020a, 0x0216, 0x0222, 0x023a, 0x024c, 0x0261, 0x0261, 0x0270, + 0x027c, 0x028e, 0x028e, 0x02a0, 0x02b2, 0x02cd, 0x02cd, 0x02e2, + }, + }, + { // zu + zuLangStr, + zuLangIdx, + }, +} + +var afLangStr string = "" + // Size: 2000 bytes + "AbkasiesAfrikaansAkanAmhariesArabiesAssameesAymaraAzerbeidjansBaskirBelo" + + "-RussiesBulgaarsBambaraBengaalsTibettaansBretonsBosniesKatalaansTsjetsje" + + "nKorsikaansTsjeggiesChuvashWalliesDeensDuitsDivehiDzongkhaEweGrieksEngel" + + "sEsperantoSpaansEstniesBaskiesPersiesFinsFidjiaansFaroeesFransWes-FriesI" + + "ersSkotse GalliesGalisiesGuaraniGoedjaratiManxHausaHebreeusHindiKroaties" + + "HaïtiaansHongaarsArmeensInterlinguaIndonesiesIgboSichuan YiYslandsItalia" + + "ansInnuïtiesJapanneesJavaansGeorgiesKongoleesKikuyuKazaksKalaallisutKhme" + + "rKannadaKoreaansKasjmirsKoerdiesKorniesKirgisiesLatynLuxemburgsGandaLing" + + "aalsLaoLitausLuba-KatangaLettiesMalgassiesMaoriMasedoniesMalabaarsMongoo" + + "lsMarathiMaleisMalteesBirmaansNoord-NdebeleNepaleesNederlandsNoorweegse " + + "NynorskNoorse BokmÃ¥lSuid-NdebeleNyanjaOksitaansOromoOriyaOssetiesPandjab" + + "iPoolsPasjtoPortugeesQuechuaReto-RomaansRundiRoemeensRussiesRwandeesSans" + + "kritSindhiNoord-SamiSangoSinhalaSlowaaksSloweensSamoaansShonaSomaliesAlb" + + "aneesSerwiesSwaziSuid-SothoSundaneesSweedsSwahiliTamilTeloegoeTadzjieksT" + + "haiTigrinyaTurkmeensTswanaTongaansTurksTsongaTataarsTahitiesUighurOekraï" + + "ensOerdoeOezbeeksVendaViëtnameesWolofXhosaJiddisjYorubaSjineesZoeloeAkol" + + "iAghemArameesMapucheAsuBembaBenaWes-BalochiBodoSjigaCherokeesSorani Koer" + + "diesTaitaZarmaLae SorbiesDualaJola-FonyiEmbuEfikAntieke EgiptiesFilippyn" + + "sGaaGagauzGotiesAntieke GrieksSwitserse DuitsGusiiHawaiiesHoog-SorbiesNg" + + "ombaMachameKabyleKambaMakondeKabuverdianuKoyra ChiiniKalenjinKomi-Permya" + + "ksKonkaniShambalaBafiaLangiLakotaLoziNoord-LuriLuba-LuluaLuoLuyiaMasaiMe" + + "ruMorisjenMakhuwa-MeettoMeta’MohawkMundangVeelvuldige taleMasanderaniNam" + + "aLae DuitsKwasioN’KoNoord-SothoNuerNyankoleK’iche’RomboRwaSamburuSanguSu" + + "id-KoerdiesSenaKoyraboro SenniTachelhitSuid-SamiLule SamiInari SamiSkolt" + + " SamiTesoTetumKlingonTok PisinToemboekaTasawaqSentraal Atlas TamazightOn" + + "bekende of ongeldige taalVaiVunjoWarlpiriSogaStandaard Marokkaanse Tamaz" + + "ightGeen linguistiese inhoudModerne Standaard ArabiesSwitserse hoog-Duit" + + "sNedersaksiesVlaamsMoldawiesSwahili (Kongo)" + +var afLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0015, 0x001d, 0x001d, + 0x0024, 0x002c, 0x002c, 0x0032, 0x003e, 0x0044, 0x0050, 0x0058, + 0x0058, 0x005f, 0x0067, 0x0071, 0x0078, 0x007f, 0x0088, 0x0091, + 0x0091, 0x009b, 0x009b, 0x00a4, 0x00a4, 0x00ab, 0x00b2, 0x00b7, + 0x00bc, 0x00c2, 0x00ca, 0x00cd, 0x00d3, 0x00d9, 0x00e2, 0x00e8, + 0x00ef, 0x00f6, 0x00fd, 0x00fd, 0x0101, 0x010a, 0x0111, 0x0116, + 0x011f, 0x0123, 0x0131, 0x0139, 0x0140, 0x014a, 0x014e, 0x0153, + 0x015b, 0x0160, 0x0160, 0x0168, 0x0172, 0x017a, 0x0181, 0x0181, + // Entry 40 - 7F + 0x018c, 0x0196, 0x0196, 0x019a, 0x01a4, 0x01a4, 0x01a4, 0x01ab, + 0x01b4, 0x01be, 0x01c7, 0x01ce, 0x01d6, 0x01df, 0x01e5, 0x01e5, + 0x01eb, 0x01f6, 0x01fb, 0x0202, 0x020a, 0x020a, 0x0212, 0x021a, + 0x021a, 0x0221, 0x022a, 0x022f, 0x0239, 0x023e, 0x023e, 0x0246, + 0x0249, 0x024f, 0x025b, 0x0262, 0x026c, 0x026c, 0x0271, 0x027b, + 0x0284, 0x028c, 0x0293, 0x0299, 0x02a0, 0x02a8, 0x02a8, 0x02b5, + 0x02bd, 0x02bd, 0x02c7, 0x02d9, 0x02e7, 0x02f3, 0x02f3, 0x02f9, + 0x0302, 0x0302, 0x0307, 0x030c, 0x0314, 0x031c, 0x031c, 0x0321, + // Entry 80 - BF + 0x0327, 0x0330, 0x0337, 0x0343, 0x0348, 0x0350, 0x0357, 0x035f, + 0x0367, 0x0367, 0x036d, 0x0377, 0x037c, 0x0383, 0x038b, 0x0393, + 0x039b, 0x03a0, 0x03a8, 0x03b0, 0x03b7, 0x03bc, 0x03c6, 0x03cf, + 0x03d5, 0x03dc, 0x03e1, 0x03e9, 0x03f2, 0x03f6, 0x03fe, 0x0407, + 0x040d, 0x0415, 0x041a, 0x0420, 0x0427, 0x042f, 0x0435, 0x043f, + 0x0445, 0x044d, 0x0452, 0x045d, 0x045d, 0x045d, 0x0462, 0x0467, + 0x046e, 0x0474, 0x0474, 0x047b, 0x0481, 0x0481, 0x0486, 0x0486, + 0x0486, 0x0486, 0x0486, 0x048b, 0x048b, 0x048b, 0x048b, 0x048b, + // Entry C0 - FF + 0x048b, 0x048b, 0x048b, 0x048b, 0x0492, 0x0499, 0x0499, 0x0499, + 0x0499, 0x0499, 0x0499, 0x0499, 0x049c, 0x049c, 0x049c, 0x049c, + 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, 0x049c, + 0x049c, 0x04a1, 0x04a1, 0x04a5, 0x04a5, 0x04a5, 0x04b0, 0x04b0, + 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, + 0x04b0, 0x04b4, 0x04b4, 0x04b4, 0x04b4, 0x04b4, 0x04b4, 0x04b4, + 0x04b4, 0x04b4, 0x04b4, 0x04b4, 0x04b4, 0x04b9, 0x04b9, 0x04b9, + 0x04b9, 0x04b9, 0x04b9, 0x04b9, 0x04b9, 0x04c2, 0x04c2, 0x04d1, + // Entry 100 - 13F + 0x04d1, 0x04d1, 0x04d1, 0x04d1, 0x04d1, 0x04d1, 0x04d6, 0x04d6, + 0x04d6, 0x04d6, 0x04d6, 0x04db, 0x04db, 0x04e6, 0x04e6, 0x04eb, + 0x04eb, 0x04f5, 0x04f5, 0x04f5, 0x04f9, 0x04fd, 0x04fd, 0x050d, + 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x050d, 0x0516, + 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, 0x0516, + 0x0516, 0x0519, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, + 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x0525, + 0x0525, 0x0533, 0x0542, 0x0542, 0x0542, 0x0547, 0x0547, 0x0547, + // Entry 140 - 17F + 0x0547, 0x054f, 0x054f, 0x054f, 0x054f, 0x054f, 0x055b, 0x055b, + 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, + 0x0561, 0x0568, 0x0568, 0x0568, 0x0568, 0x0568, 0x056e, 0x056e, + 0x056e, 0x0573, 0x0573, 0x0573, 0x0573, 0x0573, 0x057a, 0x0586, + 0x0586, 0x0586, 0x0586, 0x0586, 0x0586, 0x0592, 0x0592, 0x0592, + 0x0592, 0x059a, 0x059a, 0x05a7, 0x05ae, 0x05ae, 0x05ae, 0x05ae, + 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05b6, 0x05bb, 0x05bb, 0x05bb, + 0x05bb, 0x05bb, 0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c0, + // Entry 180 - 1BF + 0x05c0, 0x05c6, 0x05c6, 0x05c6, 0x05ca, 0x05d4, 0x05d4, 0x05de, + 0x05de, 0x05de, 0x05e1, 0x05e1, 0x05e6, 0x05e6, 0x05e6, 0x05e6, + 0x05e6, 0x05e6, 0x05e6, 0x05e6, 0x05e6, 0x05eb, 0x05eb, 0x05eb, + 0x05eb, 0x05eb, 0x05ef, 0x05f7, 0x05f7, 0x0605, 0x060c, 0x060c, + 0x060c, 0x060c, 0x060c, 0x0612, 0x0612, 0x0612, 0x0619, 0x0629, + 0x0629, 0x0629, 0x0629, 0x0629, 0x0629, 0x0629, 0x0634, 0x0634, + 0x0634, 0x0638, 0x0641, 0x0641, 0x0641, 0x0641, 0x0641, 0x0647, + 0x0647, 0x0647, 0x0647, 0x0647, 0x064d, 0x0658, 0x065c, 0x065c, + // Entry 1C0 - 1FF + 0x065c, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, + 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, + 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x0664, 0x066f, 0x066f, + 0x066f, 0x066f, 0x066f, 0x066f, 0x066f, 0x0674, 0x0674, 0x0674, + 0x0674, 0x0674, 0x0674, 0x0677, 0x0677, 0x0677, 0x0677, 0x067e, + 0x067e, 0x067e, 0x067e, 0x067e, 0x0683, 0x0683, 0x0683, 0x0683, + 0x0690, 0x0690, 0x0694, 0x0694, 0x0694, 0x06a3, 0x06a3, 0x06a3, + 0x06ac, 0x06ac, 0x06ac, 0x06ac, 0x06ac, 0x06ac, 0x06b5, 0x06be, + // Entry 200 - 23F + 0x06c8, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, + 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, + 0x06d2, 0x06d6, 0x06d6, 0x06db, 0x06db, 0x06db, 0x06db, 0x06db, + 0x06e2, 0x06e2, 0x06e2, 0x06e2, 0x06e2, 0x06eb, 0x06eb, 0x06eb, + 0x06eb, 0x06eb, 0x06eb, 0x06f4, 0x06f4, 0x06fb, 0x06fb, 0x0713, + 0x0713, 0x0713, 0x0713, 0x072e, 0x0731, 0x0731, 0x0731, 0x0731, + 0x0731, 0x0731, 0x0731, 0x0736, 0x0736, 0x0736, 0x0736, 0x0736, + 0x073e, 0x073e, 0x073e, 0x073e, 0x0742, 0x0742, 0x0742, 0x0742, + // Entry 240 - 27F + 0x0742, 0x0742, 0x0742, 0x0742, 0x0742, 0x0742, 0x0742, 0x0761, + 0x0761, 0x0779, 0x0779, 0x0792, 0x0792, 0x0792, 0x07a6, 0x07a6, + 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07a6, + 0x07a6, 0x07b2, 0x07b8, 0x07b8, 0x07b8, 0x07c1, 0x07c1, 0x07d0, +} // Size: 1240 bytes + +var amLangStr string = "" + // Size: 5352 bytes + "አá‹áˆ­áŠ›áŠ á‰¥áˆá‹šáŠ›áŠ á‰¬áˆµá‰³áŠ•áŠ áሪካንኛአካንኛአማርኛአራጎንስዓረብኛአሳሜዛዊአቫሪክአያማርኛአዘርባጃንኛባስኪርኛቤላራሻኛቡáˆáŒ‹áˆª" + + "ኛቢስላáˆáŠ›á‰£áˆá‰£áˆ­áŠ›á‰¤áŠ•áŒ‹áˆŠáŠ›á‰²á‰¤á‰³áŠ•áŠ›á‰¥áˆ¬á‰¶áŠ•áŠ›á‰¦áˆµáŠ’ያንኛካታላንኛችችንቻሞሮኮርሲካኛክሪቼክኛቸርች ስላቪክቹቫሽወáˆáˆ½á‹´áŠ’ሽ" + + "ጀርመንዲቬህድዞንáŒáŠ»áŠ›áŠ¢á‹ŠáŒáˆªáŠ­áŠ›áŠ¥áŠ•áŒáˆŠá‹áŠ›áŠ¤áˆµáራንቶስá“ንሽኛኢስቶኒያንኛባስክኛáርሺያኛáŠáŠ’ሽáŠáŒ‚ኛá‹áˆ®áŠ›áˆáˆ¨áŠ•áˆ³á‹­áŠ›á‹¨áˆá‹•" + + "ራብ áሪስኛአይሪሽእስኮትስ ጌáˆáŠ­áŠ›áŒ‹áˆŠáˆºá‹«áŒ“ራኒኛጉጃርቲኛማንክስኛሃá‹áˆ³áŠ›á‹•á‰¥áˆ«áˆµáŒ¥áˆ’ንዱኛክሮሽያንኛሃይትኛሀንጋሪኛአርመ" + + "ናዊኢንቴርሊንጓኢንዶኔዥኛእንተርሊንáŒá‹ˆáŠ¢áŒá‰¦áŠ›áˆ²á‰¹áŠ•á‹ªáŠ›áŠ¥áŠ‘á’ያቅኛአይስላንድኛጣሊያንኛእኑክቲቱትኛጃá“ንኛጃቫንኛጆርጂያን" + + "ኮንጎኛኪኩዩካዛክኛካላሊሱትኛክመርኛ ማእከላዊካናዳኛኮሪያኛካሽሚርኛኩርድሽኛኮርኒሽኪርጊá‹áŠ›áˆ‹á‰²áŠ•áŠ›áˆ‰áŠ­á‹˜áˆá‰ áˆ­áŒˆáˆ­áŠ›áŒ‹áŠ•á‹³" + + "ኛሊንጋላኛላá‹áˆµáŠ›áˆ‰á‰´áŠ•á‹«áŠ•áŠ›áˆ‰á‰£ ካታንጋላትቪያንማላጋስኛማዮሪኛማሴዶንኛማላያላáˆáŠ›áˆžáŠ•áŒŽáˆ‹á‹ŠáŠ›áˆ›áˆ«á‰²áŠ›áˆ›áˆ‹á‹­áŠ›áˆ›áˆá‰²áˆµáŠ›á‰¡áˆ­áˆ›" + + "ኛናኡሩሰሜን ንዴብሌኔá“ሊኛደችየኖርዌይ ናይኖርስክየኖርዌይ ቦክማáˆáŠ•á‹«áŠ•áŒƒáŠ¦áŠªá‰³áŠ•áŠ›áŠ¦áˆ®áˆžáŠ›áŠ¦áˆªá‹«áŠ›áŠ¦áˆ´á‰²áŠ­á‘ንጃብኛá–ሊሽኛ" + + "á“ሽቶኛá–ርቹጋáˆáŠ›áŠµá‰¿áŠ›áˆ®áˆ›áŠ•áˆ½áˆ©áŠ•á‹²áŠ›áˆ®áˆ›áŠ’ያንራሽያኛኪንያርዋንድኛሳንስክሪትኛሲንድሂኛሰሜናዊ ሳሚሳንጎኛሲንሃáˆáŠ›áˆµáˆŽá‰«áŠ­" + + "ኛስሎቪኛሳሞአኛሾናኛሱማáˆáŠ›áˆá‰¤áŠ’ኛሰርቢኛስዋቲኛሶዞኛሱዳንኛስዊድንኛስዋሂሊኛታሚáˆáŠ›á‰°áˆ‰áŒ‰áŠ›á‰³áŒ‚ኪኛታይኛትáŒáˆ­áŠ›á‰±áˆ­áŠ­áˆ˜áŠ•áŠ›" + + "ጽዋናዊኛቶንጋኛቱርክኛጾንጋኛታታርኛታሂታንኛኡዊáŒáˆáˆ­áŠ›á‹©áŠ­áˆ¬áŠ•áŠ›áŠ¡áˆ­á‹±áŠ›áŠ¡á‹á‰¤áŠ­áŠ›á‰¬áŠ•á‹³á‰ªá‰µáŠ“áˆáŠ›á‰®áˆ‹á‘ክኛዎሎáኛዞሳኛይዲሽኛ" + + "ዮሩባዊኛዡዋንáŒáŠ›á‰»á‹­áŠ•áŠ›á‹™áˆ‰áŠ›áŠ á‰»á‹­áŠ•áŠ›áŠ áŠ®áˆŠáŠ›áŠ á‹³áŠ•áŒáˆœáŠ á‹µá‹­áŒáˆ„አáሪሂሊአገáˆáŠ á‹­áŠ‘አካዲያንአላባማአáˆá‹©á‰µáŠ áŠ•áŒŠáŠ«áŠ áˆ«áˆ›á‹­áŠ­áˆ›" + + "á‘ቼአራኦናአራá“ሆየአáˆáŒ„ሪያ ዓረብኛአራዋክአሱየአሜሪካ የáˆáˆáŠ­á‰µ ቋንቋአá‹áˆµá‰µáˆªá‹«áŠ•áŠ á‹‹á‹µáˆ‚ባሉቺባሊኔስባቫሪያንባሳባሙን" + + "ባታካ ቶባቤጃቤáˆá‰£á‰¤á‰³á‹Šá‰¤áŠ“ባá‰á‰µá‰£á‹³áŒ‹á‹¨áˆá‹•áˆ«á‰¥ ባሎቺቦáŒáˆªá‰¢áŠ®áˆá‰¢áŠ’ባንጃርቢሹንá‘ሪያባክህቲያሪብራጅብራáˆá‹ªá‰¦á‹¶áŠ áŠ®áˆµá‰¡áˆªá‹«" + + "ትቡጊኔá‹á‰¡áˆ‰á‰¥áˆŠáŠ•áŠ«á‹¶áŠ«áˆªá‰¥áŠ«á‹©áŒ‹áŠ á‰µáˆ³áˆáŠ«á‰¡á‹‹áŠ–ቺጋኛቺብቻቻጋታይቹክስቺኑክ ጃርጎንቾክታዋቺá”á‹á‹«áŠ•á‰¼áˆ®áŠ¬áŠ›á‰½á‹¬áŠ”የሶራኒ ኩር" + + "ድኛኮá•á‰²áŠ­áŠ«á’á‹áŠ–ንክሪሚያን ተርኪሽዳኮታዳርáŒá‹‹á‰³á‹­á‰³áŠ›á‹³áˆ‹á‹Œáˆ­á‹¶áŒáˆªá‰¥á‹²áŠ•áŠ«á‹›áˆ­áˆ›áŠ›á‹¶áŒáˆªá‹¨á‰³á‰½áŠ›á‹ ሰርቢያንኛሴንተራሠዱሰ" + + "ንዱዋላኛጆላ áŽáŠ•á‹«áŠ›á‹µá‹©áˆ‹á‹³á‹›áŒ‹áŠ¢á‰¦áŠ›áŠ¤áŠáŠ­á‹¨áŒ¥áŠ•á‰³á‹Š áŒá‰¥áŒ½áŠ›áˆ´áŠ•á‰°áˆ«áˆ á‹©á’ክáŠáˆŠá’ንኛካáŒáŠ• áሬንችአርá’ታንጋጋጉá‹áŠ›áŒá‹•á‹áŠ›" + + "የጥንታዊ áŒáˆªáŠ­á‹¨áˆµá‹Šá‹ ጀርመንጉስሊኛሃዊያኛየላይኛዠሶርቢያንኛንጎባኛማቻሜኛካብይáˆáŠ«áˆá‰£áˆ›áŠ®áŠ•á‹´áŠ«á‰¡á‰¨áˆ­á‹²á‹«áŠ‘ኮይራ ቺኒ" + + "ካለንጂንኮሚ á”ርáˆá‹«áŠ­áŠ®áŠ«áŠ’ሻáˆá‰£áˆ‹á‰£áŠá‹«áŠ®áˆŽáŠá‹«áŠ•áˆ‹áŠ•áŒŠáˆ‹áŠ®á‰³áˆŽá‹šáŠ›áˆ°áˆœáŠ“á‹Š ሉሪሉባ-ሉáˆáˆ‰áŠ¦áˆ‰á‹ªá‹«áˆ›áˆ³á‹­áˆœáˆ©áˆžáˆªáˆ²á‹¨áŠ›áˆ›áŠ©á‹‹ ሜቶ" + + "ሜታሞሃá‹áŠ­áˆ™áŠ•á‹³áŠ•áŒáŠ­áˆªáŠ­áˆ›á‹›áŠ•á‹°áˆ«áŠ’ናማየታችኛዠጀርመንኦ ናጋክዋሲዮንኮሰሜናዊ ሶቶኑዌርክላሲክ ኔዋሪኒያንኮáˆáŠ›áŠªá‰¼á‰ºáˆ" + + "ቦራዞ ሃይላንድ ኩቹዋሮáˆá‰¦áŠ áˆ®áˆ›áŠ•á‹«áŠ•áˆ­á‹‹áˆ³áˆá‰¡áˆ©áˆ³áŠ•áŒ‰á‹°á‰¡á‰£á‹Š ኩዲሽሴናኮይራቦሮ ሴኒታቼáˆáˆ‚ትቻዲያን ዓረብኛሲዳáˆáŠ›á‹°á‰¡á‰£" + + "á‹Š ሳሚሉሌ ሳሚኢናሪ ሳሚስኮáˆá‰µ ሳሚኮሞሪያንክላሲክ ኔይራቴሶቴተáˆá‰µáŒáˆ¨áŠ­áˆŠáŠ•áŒŽáŠ•áŠ›á‰¶áŠ­ á’ሲንቱáˆá‰¡áŠ«á‰³áˆ³á‹‹á‰…መካከለኛ አ" + + "ትላስ ታማዚáŒá‰µá‹«áˆá‰³á‹ˆá‰€ ቋንቋቫይቩንጆዋርáˆá’ሪሶጋካንቶኒá‹á‰¥áˆŠáˆµá‹­áˆá‰¦áˆáˆµáˆ˜á‹°á‰ áŠ› የሞሮኮ ታማዚáŒá‰µá‰‹áŠ•á‰‹á‹Š ይዘት አይደ" + + "ለáˆá‹˜áˆ˜áŠ“á‹Š መደበኛ ዓረብኛየኦስትሪያ ጀርመንየስዊዠከáተኛ ጀርመንኛየአá‹áˆµá‰µáˆ«áˆŠá‹« እንáŒáˆŠá‹áŠ›á‹¨áŠ«áŠ“ዳ እንáŒáˆŠá‹áŠ›á‹¨á‰¥" + + "ሪቲሽ እንáŒáˆŠá‹áŠ›á‹¨áŠ áˆœáˆªáŠ« እንáŒáˆŠá‹áŠ›á‹¨áˆ‹á‰²áŠ• አሜሪካ ስá“ኒሽየአá‹áˆ®á“ ስá“ንሽኛየሜክሲኮ ስá“ንሽኛየካናዳ áˆáˆ¨áŠ•áˆ³á‹­áŠ›á‹¨" + + "ስዊዠáˆáˆ¨áŠ•áˆ³á‹­áŠ›á‹¨á‰³á‰½áŠ›á‹ ሳክሰንáሌሚሽየብራዚሠá–ርቹጋáˆáŠ›á‹¨áŠ á‹áˆ®á“ á–ርቹጋáˆáŠ›áˆžáˆá‹³á‰«á‹ŠáŠ“ኮንጎ ስዋሂሊቀለሠያለ ቻ" + + "ይንኛባህላዊ ቻይንኛ" + +var amLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x001b, 0x002a, 0x003c, 0x0048, 0x0054, 0x0063, + 0x006f, 0x007e, 0x008a, 0x0099, 0x00ae, 0x00bd, 0x00cc, 0x00db, + 0x00ea, 0x00f9, 0x0108, 0x0117, 0x0126, 0x0138, 0x0147, 0x0150, + 0x0159, 0x0168, 0x016e, 0x0177, 0x018d, 0x0196, 0x019f, 0x01a8, + 0x01b4, 0x01bd, 0x01cf, 0x01d5, 0x01e1, 0x01f3, 0x0205, 0x0214, + 0x0229, 0x0235, 0x0244, 0x0244, 0x024d, 0x0256, 0x025f, 0x0271, + 0x028d, 0x0299, 0x02b5, 0x02c1, 0x02cd, 0x02dc, 0x02eb, 0x02f7, + 0x0306, 0x0312, 0x0312, 0x0324, 0x0330, 0x033f, 0x034e, 0x034e, + // Entry 40 - 7F + 0x0363, 0x0375, 0x038d, 0x0399, 0x03a8, 0x03ba, 0x03ba, 0x03cf, + 0x03de, 0x03f3, 0x03ff, 0x040b, 0x041a, 0x0426, 0x042f, 0x042f, + 0x043b, 0x044d, 0x0469, 0x0475, 0x0481, 0x0481, 0x0490, 0x049f, + 0x049f, 0x04ab, 0x04ba, 0x04c6, 0x04e1, 0x04ed, 0x04ed, 0x04fc, + 0x0508, 0x051a, 0x052d, 0x053c, 0x054b, 0x054b, 0x0557, 0x0566, + 0x0578, 0x058a, 0x0596, 0x05a2, 0x05b1, 0x05bd, 0x05c6, 0x05dc, + 0x05e8, 0x05e8, 0x05ee, 0x0610, 0x062c, 0x062c, 0x062c, 0x0638, + 0x0647, 0x0647, 0x0653, 0x065f, 0x066b, 0x067a, 0x067a, 0x0686, + // Entry 80 - BF + 0x0692, 0x06a4, 0x06ad, 0x06b9, 0x06c5, 0x06d4, 0x06e0, 0x06f8, + 0x070d, 0x070d, 0x071c, 0x072f, 0x073b, 0x074a, 0x0759, 0x0765, + 0x0771, 0x077a, 0x0786, 0x0792, 0x079e, 0x07aa, 0x07b3, 0x07bf, + 0x07ce, 0x07dd, 0x07e9, 0x07f5, 0x0801, 0x080a, 0x0816, 0x0828, + 0x0837, 0x0843, 0x084f, 0x085b, 0x0867, 0x0876, 0x0888, 0x0897, + 0x08a3, 0x08b2, 0x08bb, 0x08ca, 0x08d9, 0x08d9, 0x08e5, 0x08ee, + 0x08fa, 0x0909, 0x0918, 0x0924, 0x092d, 0x093c, 0x0948, 0x0957, + 0x0966, 0x0966, 0x0975, 0x097e, 0x0987, 0x0996, 0x09a2, 0x09ae, + // Entry C0 - FF + 0x09ae, 0x09ae, 0x09ae, 0x09ba, 0x09c9, 0x09d2, 0x09de, 0x09ea, + 0x0a09, 0x0a15, 0x0a15, 0x0a15, 0x0a1b, 0x0a44, 0x0a59, 0x0a59, + 0x0a65, 0x0a6e, 0x0a7a, 0x0a89, 0x0a8f, 0x0a98, 0x0aa8, 0x0aa8, + 0x0aae, 0x0ab7, 0x0ac0, 0x0ac6, 0x0acf, 0x0ad8, 0x0af1, 0x0afa, + 0x0b03, 0x0b09, 0x0b15, 0x0b15, 0x0b15, 0x0b27, 0x0b39, 0x0b42, + 0x0b4e, 0x0b54, 0x0b5d, 0x0b69, 0x0b75, 0x0b7b, 0x0b84, 0x0b84, + 0x0b8a, 0x0b93, 0x0b9c, 0x0ba8, 0x0bb4, 0x0bbd, 0x0bc6, 0x0bd2, + 0x0bdb, 0x0bdb, 0x0bf1, 0x0bfd, 0x0c0c, 0x0c18, 0x0c21, 0x0c3a, + // Entry 100 - 13F + 0x0c46, 0x0c55, 0x0c71, 0x0c71, 0x0c7a, 0x0c86, 0x0c92, 0x0c9e, + 0x0c9e, 0x0caa, 0x0cb3, 0x0cbf, 0x0cc8, 0x0cea, 0x0d03, 0x0d0f, + 0x0d0f, 0x0d22, 0x0d2b, 0x0d34, 0x0d3d, 0x0d46, 0x0d46, 0x0d62, + 0x0d62, 0x0d62, 0x0d62, 0x0d7b, 0x0d7b, 0x0d7b, 0x0d7b, 0x0d8a, + 0x0d8a, 0x0d8a, 0x0da0, 0x0da0, 0x0da0, 0x0daf, 0x0daf, 0x0daf, + 0x0daf, 0x0db2, 0x0dbe, 0x0dbe, 0x0dbe, 0x0dbe, 0x0dbe, 0x0dca, + 0x0dca, 0x0dca, 0x0dca, 0x0dca, 0x0dca, 0x0dca, 0x0dca, 0x0dca, + 0x0dca, 0x0de3, 0x0dfc, 0x0dfc, 0x0dfc, 0x0e08, 0x0e08, 0x0e08, + // Entry 140 - 17F + 0x0e08, 0x0e14, 0x0e14, 0x0e14, 0x0e14, 0x0e14, 0x0e36, 0x0e36, + 0x0e36, 0x0e36, 0x0e36, 0x0e36, 0x0e36, 0x0e36, 0x0e36, 0x0e36, + 0x0e42, 0x0e4e, 0x0e4e, 0x0e4e, 0x0e4e, 0x0e4e, 0x0e5a, 0x0e5a, + 0x0e5a, 0x0e63, 0x0e63, 0x0e63, 0x0e63, 0x0e63, 0x0e6f, 0x0e84, + 0x0e84, 0x0e84, 0x0e84, 0x0e84, 0x0e84, 0x0e94, 0x0e94, 0x0e94, + 0x0e94, 0x0ea3, 0x0ea3, 0x0eb9, 0x0ec2, 0x0ec2, 0x0ec2, 0x0ec2, + 0x0ec2, 0x0ec2, 0x0ec2, 0x0ec2, 0x0ece, 0x0ed7, 0x0ee6, 0x0ee6, + 0x0ee6, 0x0ee6, 0x0eef, 0x0eef, 0x0eef, 0x0eef, 0x0eef, 0x0eef, + // Entry 180 - 1BF + 0x0eef, 0x0ef8, 0x0ef8, 0x0ef8, 0x0f01, 0x0f14, 0x0f14, 0x0f21, + 0x0f21, 0x0f21, 0x0f27, 0x0f27, 0x0f30, 0x0f30, 0x0f30, 0x0f30, + 0x0f30, 0x0f30, 0x0f30, 0x0f30, 0x0f30, 0x0f39, 0x0f39, 0x0f39, + 0x0f39, 0x0f39, 0x0f3f, 0x0f4e, 0x0f4e, 0x0f5e, 0x0f64, 0x0f64, + 0x0f64, 0x0f64, 0x0f64, 0x0f70, 0x0f70, 0x0f70, 0x0f7f, 0x0f7f, + 0x0f88, 0x0f88, 0x0f88, 0x0f88, 0x0f88, 0x0f88, 0x0f9a, 0x0f9a, + 0x0f9a, 0x0fa0, 0x0fbc, 0x0fbc, 0x0fbc, 0x0fbc, 0x0fc6, 0x0fd2, + 0x0fd2, 0x0fd2, 0x0fd2, 0x0fd2, 0x0fd8, 0x0feb, 0x0ff4, 0x100a, + // Entry 1C0 - 1FF + 0x100a, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, + 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, + 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x101c, 0x1022, 0x104b, + 0x104b, 0x104b, 0x104b, 0x104b, 0x104b, 0x1054, 0x1054, 0x1054, + 0x1054, 0x1054, 0x1066, 0x106c, 0x106c, 0x106c, 0x106c, 0x1078, + 0x1078, 0x1078, 0x1078, 0x1078, 0x1081, 0x1081, 0x1081, 0x1081, + 0x1097, 0x1097, 0x109d, 0x109d, 0x109d, 0x10b3, 0x10b3, 0x10b3, + 0x10c2, 0x10c2, 0x10db, 0x10e7, 0x10e7, 0x10e7, 0x10fa, 0x1107, + // Entry 200 - 23F + 0x1117, 0x112a, 0x112a, 0x112a, 0x112a, 0x112a, 0x112a, 0x112a, + 0x112a, 0x112a, 0x112a, 0x1139, 0x114f, 0x114f, 0x114f, 0x114f, + 0x114f, 0x1155, 0x1155, 0x115e, 0x1167, 0x1167, 0x1167, 0x1167, + 0x1179, 0x1179, 0x1179, 0x1179, 0x1179, 0x1189, 0x1189, 0x1189, + 0x1189, 0x1189, 0x1189, 0x1195, 0x1195, 0x11a1, 0x11a1, 0x11cd, + 0x11cd, 0x11cd, 0x11cd, 0x11e6, 0x11ec, 0x11ec, 0x11ec, 0x11ec, + 0x11ec, 0x11ec, 0x11ec, 0x11f5, 0x11f5, 0x11f5, 0x11f5, 0x11f5, + 0x1204, 0x1204, 0x1204, 0x1204, 0x120a, 0x120a, 0x120a, 0x120a, + // Entry 240 - 27F + 0x120a, 0x120a, 0x1219, 0x1219, 0x1231, 0x1231, 0x1231, 0x125a, + 0x125a, 0x1280, 0x1280, 0x12a6, 0x12a6, 0x12c5, 0x12ee, 0x1319, + 0x1338, 0x135a, 0x137c, 0x13a2, 0x13c1, 0x13e0, 0x13e0, 0x13ff, + 0x141e, 0x143a, 0x1446, 0x1468, 0x148a, 0x149c, 0x149c, 0x14b2, + 0x14cf, 0x14e8, +} // Size: 1244 bytes + +var arLangStr string = "" + // Size: 9700 bytes + "الأÙاريةالأبخازيةالأÙستيةالأÙريقانيةالأكانيةالأمهريةالأراغونيةالعربيةالأ" + + "ساميةالأواريةالأيماراالأذربيجانيةالباشكيريةالبيلاروسيةالبلغاريةالبيسلام" + + "يةالبامباراالبنغاليةالتبتيةالبريتونيةالبوسنيةالكتالانيةالشيشانيةالتشامو" + + "روالكورسيكيةالكرىالتشيكيةسلاÙية كنسيةالتشوÙاشيالولزيةالدانماركيةالألمان" + + "يةالمالديÙيةالزونخايةالإيوياليونانيةالإنجليزيةالإسبرانتوالإسبانيةالإستو" + + "نيةلغة الباسكالÙارسيةالÙلةالÙنلنديةالÙيجيةالÙارويزالÙرنسيةالÙريزيانالأي" + + "رلنديةالغيلية الأسكتلنديةالجاليكيةالجوارانيالغوجاراتيةالمنكيةالهوساالعب" + + "ريةالهنديةالهيري موتوالكرواتيةالهايتيةالهنغاريةالأرمينيةالهيريرواللّغة " + + "الوسيطةالإندونيسيةالإنترلينجالإيجبوالسيتشيون ييالإينبياكالإيدوالأيسلاند" + + "يةالإيطاليةالإينكتيتتاليابانيةالجاويةالجورجيةالكونغوالكيكيوالكيونياماال" + + "كازاخستانيةالكالاليستالخميريةالكاناداالكوريةالكانيوريالكشميريةالكرديةال" + + "كوميالكورنيةالقرغيزيةاللاتينيةاللوكسمبرجيةالجانداالليمبرجيشيةاللينجالاا" + + "للاويةاللتوانيةاللبا-كاتانجااللاتÙيةالمالاجاشيةالمارشاليةالماوريةالمقدو" + + "نيةالماليالامالمنغوليةالماراثيلغة الملايوالمالطيةالبورميةالنوروالنديبيل" + + " الشماليالنيباليةالندونجاالهولنديةالنينورسك النرويجيالبوكمالية النرويجية" + + "النديبيل الجنوبيالناÙاجوالنيانجاالأوكيتانيةالأوجيبواالأوروموالأوريياالأ" + + "وسيتيكالبنجابيةالباليةالبولنديةالبشتونيةالبرتغاليةالكويتشواالرومانشيةال" + + "رنديالرومانيةالروسيةالكينياروانداالسنسكريتيةالسردينيةالسنديةالسامي الشم" + + "اليالسانجوالسنهاليةالسلوÙاكيةالسلوÙانيةالساموائيةالشوناالصوماليةالألبان" + + "يةالصربيةالسواتيالسوتو الجنوبيةالسوندانيةالسويديةالسواحليةالتاميليةالتي" + + "لجوالطاجيكيةالتايلانديةالتغرينيةالتركمانيةالتسوانيةالتونغيةالتركيةالسون" + + "جاالتتاريةالتاهيتيةالأغوريةالأوكرانيةالأرديةالأوزبكيةالÙينداالÙيتناميةل" + + "غة الÙولابوكالولونيةالولوÙالخوسااليديشيةاليوروبيةالزهيونجالصينيةالزولوا" + + "لأتشينيزيةالأكوليةالأدانجميةالأديغةالأÙريهيليةالأغمالآينويةالأكاديةالأل" + + "يوتيةالألطائية الجنوبيةالإنجليزية القديمةالأنجيكاالآراميةالأروكانيةالأر" + + "اباهوالأراواكيةالآسوالأستريةالأواديةالبلوشيةاللغة الباليةالباسابامنلغة " + + "الغومالاالبيجاالبيمبابينالغة الباÙوتالبلوشية الغربيةالبهوجبوريةالبيكولي" + + "ةالبينيةلغة الكومالسيكسيكيةالبراجيةالبودوأكوسالبرياتيةالبجينيزيةلغة الب" + + "ولوالبلينيةلغة الميدومباالكادوالكاريبيةالكايوجيةالأتسامالسيبونيةتشيغاال" + + "تشيبشاالتشاجاتايالتشكيزيةالماريالشينوك جارجونالشوكتوالشيباوايانالشيروكي" + + "الشايانالسورانية الكرديةالقبطيةلغة تتار القرمالكاشبايانالداكوتاالدارجوا" + + "تيتاالديلويرالسلاÙيةالدوجريبالدنكاالزارميةالدوجريةالصربية السÙلىالديولا" + + "الهولندية الوسطىجولا ÙونياالدايلاالقرعانيةإمبوالإÙيكالمصرية القديمةالإك" + + "اجكالإمايتالإنجليزية الوسطىالإيوندوالÙانجالÙلبينيةالÙونالÙرنسية الوسطىا" + + "Ù„Ùرنسية القديمةالÙريزينية الشماليةالÙريزينية الشرقيةالÙريلايانالجاالغاغ" + + "وزالجايوالجبياالجعزيةلغة أهل جبل طارقالألمانية العليا الوسطىالألمانية ا" + + "لعليا القديمةالجنديالجورونتالوالقوطيةالجريبواليونانية القديمةالألمانية " + + "السويسريةالغيزيةغوتشنالهيدالغة أهل الهاوايالهيليجينونالحثيةالهمونجيةالص" + + "ربية العلياالهباالإيبانالإيبيبيويةالإيلوكوالإنجوشيةاللوجباننغومباالماتش" + + "اميةالÙارسية اليهوديةالعربية اليهوديةالكارا-كالباكالقبيليةالكاتشينالجوا" + + "لكامباالكويالكاباردايانكانمبوالتايابيةماكوندهكابوÙيرديانوالكوروالكازيةا" + + "لخوتانيزكويرا تشينيكالينجينالكيمبندوكومي-بيرماياكالكونكانيةالكوسراينالك" + + "بيلالكاراتشاي-بالكارالكاريليةالكوروخشامبالالغة الباÙيالغة الكولونيانالق" + + "موقيةالكتيناياللادينولانجياللاهندااللامباالليزجيةلاكوتامنغولىاللوزياللر" + + "ية الشماليةاللبا-لؤلؤاللوسينواللوندااللوالميزولغة اللوياالمادريزالماجاا" + + "لمايثيليالماكاسارالماندينغالماسايماباالموكشاالماندارالميندالميروالمورسي" + + "انيةالأيرلندية الوسطىماخاوا-ميتوميتاالميكماكيونيةالمينانجكاباوالمانشوال" + + "مانيبوريةالموهوكالموسيمندنجلغات متعددةالكريكالميرانديزالمارواريةالأرزية" + + "المازندرانيةاللغة النابوليةلغة الناماالألمانية السÙلىالنواريةالنياسالني" + + "ويكواسيولغة النجيمبونالنوجايالنورس القديمأنكوالسوتو الشماليةالنويرالنوا" + + "رية التقليديةالنيامويزيالنيانكولالنيوروالنزيماالأوساجالتركية العثمانيةا" + + "لبانجاسينانالبهلويةالبامبانجاالبابيامينتوالبالوانالÙارسية القديمةالÙيني" + + "قيةالبوهنبيايانالبروÙانسية القديمةكيشيالراجاسثانيةالرابانيالراروتونجاني" + + "الرومبوغجريالأرومانيانالرواالسانداويالساخيةالآرامية السامريةسامبوروالسا" + + "ساكالسانتالينامبيسانغوالصقليةالأسكتلنديةالكردية الجنوبيةالسنيكاسيناالسي" + + "لكبكويرابورو سينيالأيرلندية القديمةتشلحيتالشانيةالعربية التشاديةالسيدام" + + "والسامي الجنوبياللول ساميالإيناري ساميالسكولت ساميالسونينكالسوجدينالسرا" + + "نان تونجوالسررلغة الساهوالسوكوماالسوسوالسوماريةالقمريةسريانية تقليديةال" + + "سريانيةالتيمنتيسوالتيرينوالتيتمالتغريةالتيÙالتوكيلاوالكلينجونالتلينغيتي" + + "ةالتاماشيكتونجا - نياساالتوك بيسينلغة التاروكوالتسيمشيانالتامبوكاالتوÙا" + + "لوتاساواقالتوÙيةالأمازيغية وسط الأطلسالأدمرتاليجاريتيكالأمبندوالجذرالÙا" + + "يالÙوتيكالÙونجوالوالسرالولاياتاالوارايالواشووارلبيريالكالميكالسوغاالياو" + + "اليابيزيانجبنيمباالكَنْتÙونيةالزابوتيكرموز المعايير الأساسيةالزيناجاالت" + + "مازيغية المغربية القياسيةالزونيةبدون محتوى لغويزازاالعربية الرسمية الحد" + + "يثةالألمانية النمساويةالألمانية العليا السويسريةالإنجليزية الأستراليةال" + + "إنجليزية الكنديةالإنجليزية البريطانيةالإنجليزية الأمريكيةالإسبانية أمري" + + "كا اللاتينيةالإسبانية الأوروبيةالإسبانية المكسيكيةالÙرنسية الكنديةالÙرن" + + "سية السويسريةالسكسونية السÙلىالÙلمنكيةالبرتغالية البرازيليةالبرتغالية ا" + + "لأوروبيةالمولدوÙيةصربية-كرواتيةالكونغو السواحليةالصينية المبسطةالصينية " + + "التقليدية" + +var arLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0022, 0x0032, 0x0048, 0x0058, 0x0068, 0x007c, + 0x008a, 0x009a, 0x00aa, 0x00ba, 0x00d2, 0x00e6, 0x00fc, 0x010e, + 0x0122, 0x0134, 0x0146, 0x0154, 0x0168, 0x0178, 0x018c, 0x019e, + 0x01b0, 0x01c4, 0x01ce, 0x01de, 0x01f5, 0x0207, 0x0215, 0x022b, + 0x023d, 0x0251, 0x0263, 0x026f, 0x0281, 0x0295, 0x02a9, 0x02bb, + 0x02cd, 0x02e0, 0x02f0, 0x02fa, 0x030c, 0x031a, 0x032a, 0x033a, + 0x034c, 0x0360, 0x0385, 0x0397, 0x03a9, 0x03bf, 0x03cd, 0x03d9, + 0x03e7, 0x03f5, 0x040a, 0x041c, 0x042c, 0x043e, 0x0450, 0x0460, + // Entry 40 - 7F + 0x047b, 0x0491, 0x04a5, 0x04b3, 0x04ca, 0x04dc, 0x04e8, 0x04fe, + 0x0510, 0x0524, 0x0536, 0x0544, 0x0554, 0x0562, 0x0570, 0x0584, + 0x059e, 0x05b2, 0x05c2, 0x05d2, 0x05e0, 0x05f2, 0x0604, 0x0612, + 0x061e, 0x062e, 0x0640, 0x0652, 0x066a, 0x0678, 0x0690, 0x06a2, + 0x06b0, 0x06c2, 0x06db, 0x06eb, 0x0701, 0x0715, 0x0725, 0x0737, + 0x074b, 0x075d, 0x076d, 0x0782, 0x0792, 0x07a2, 0x07ae, 0x07cd, + 0x07df, 0x07ef, 0x0801, 0x0824, 0x084b, 0x086a, 0x087a, 0x088a, + 0x08a0, 0x08b2, 0x08c2, 0x08d2, 0x08e4, 0x08f6, 0x0904, 0x0916, + // Entry 80 - BF + 0x0928, 0x093c, 0x094e, 0x0962, 0x096e, 0x0980, 0x098e, 0x09a8, + 0x09be, 0x09d0, 0x09de, 0x09f9, 0x0a07, 0x0a19, 0x0a2d, 0x0a41, + 0x0a55, 0x0a61, 0x0a73, 0x0a85, 0x0a93, 0x0aa1, 0x0abe, 0x0ad2, + 0x0ae2, 0x0af4, 0x0b06, 0x0b14, 0x0b26, 0x0b3c, 0x0b4e, 0x0b62, + 0x0b74, 0x0b84, 0x0b92, 0x0ba0, 0x0bb0, 0x0bc2, 0x0bd2, 0x0be6, + 0x0bf4, 0x0c06, 0x0c14, 0x0c28, 0x0c41, 0x0c51, 0x0c5d, 0x0c69, + 0x0c79, 0x0c8b, 0x0c9b, 0x0ca9, 0x0cb5, 0x0ccb, 0x0cdb, 0x0cef, + 0x0cfd, 0x0cfd, 0x0d13, 0x0d1d, 0x0d2d, 0x0d3d, 0x0d3d, 0x0d4f, + // Entry C0 - FF + 0x0d4f, 0x0d72, 0x0d95, 0x0da5, 0x0db5, 0x0dc9, 0x0dc9, 0x0ddb, + 0x0ddb, 0x0def, 0x0def, 0x0def, 0x0df9, 0x0df9, 0x0e09, 0x0e09, + 0x0e19, 0x0e29, 0x0e42, 0x0e42, 0x0e4e, 0x0e56, 0x0e56, 0x0e6d, + 0x0e79, 0x0e87, 0x0e87, 0x0e8f, 0x0ea4, 0x0ea4, 0x0ec3, 0x0ed9, + 0x0eeb, 0x0ef9, 0x0ef9, 0x0f0a, 0x0f1e, 0x0f1e, 0x0f1e, 0x0f2e, + 0x0f2e, 0x0f3a, 0x0f42, 0x0f54, 0x0f68, 0x0f7b, 0x0f8b, 0x0fa4, + 0x0fb0, 0x0fc2, 0x0fd4, 0x0fe2, 0x0ff4, 0x0ffe, 0x100e, 0x1022, + 0x1034, 0x1040, 0x105b, 0x1069, 0x107f, 0x108f, 0x109d, 0x10be, + // Entry 100 - 13F + 0x10cc, 0x10cc, 0x10e6, 0x10fa, 0x110a, 0x111a, 0x1122, 0x1132, + 0x1142, 0x1152, 0x115e, 0x116e, 0x117e, 0x1199, 0x1199, 0x11a7, + 0x11c6, 0x11d9, 0x11e7, 0x11f9, 0x1201, 0x120d, 0x120d, 0x122a, + 0x1238, 0x1246, 0x1267, 0x1267, 0x1277, 0x1277, 0x1283, 0x1295, + 0x1295, 0x129f, 0x129f, 0x12bc, 0x12db, 0x12db, 0x1300, 0x1323, + 0x1337, 0x133f, 0x134d, 0x134d, 0x1359, 0x1365, 0x1365, 0x1373, + 0x1390, 0x1390, 0x13bc, 0x13ea, 0x13ea, 0x13f6, 0x140c, 0x141a, + 0x1428, 0x1449, 0x146e, 0x146e, 0x146e, 0x147c, 0x1486, 0x1492, + // Entry 140 - 17F + 0x1492, 0x14ae, 0x14ae, 0x14c4, 0x14d0, 0x14e2, 0x14fd, 0x14fd, + 0x1507, 0x1515, 0x152b, 0x153b, 0x154d, 0x154d, 0x154d, 0x155d, + 0x1569, 0x157d, 0x159e, 0x15bd, 0x15bd, 0x15d6, 0x15e6, 0x15f6, + 0x15fe, 0x160c, 0x1616, 0x162e, 0x163a, 0x164c, 0x165a, 0x1672, + 0x1672, 0x167e, 0x167e, 0x168c, 0x169e, 0x16b3, 0x16b3, 0x16b3, + 0x16b3, 0x16c3, 0x16d5, 0x16ee, 0x1702, 0x1714, 0x1720, 0x1741, + 0x1741, 0x1741, 0x1753, 0x1761, 0x176f, 0x1784, 0x179f, 0x17af, + 0x17bf, 0x17cf, 0x17d9, 0x17e9, 0x17f7, 0x1807, 0x1807, 0x1807, + // Entry 180 - 1BF + 0x1807, 0x1813, 0x1813, 0x181f, 0x182b, 0x1848, 0x1848, 0x185b, + 0x186b, 0x1879, 0x1881, 0x188d, 0x18a0, 0x18a0, 0x18a0, 0x18b0, + 0x18b0, 0x18bc, 0x18ce, 0x18e0, 0x18f2, 0x1900, 0x1908, 0x1916, + 0x1926, 0x1932, 0x193e, 0x1954, 0x1975, 0x198a, 0x1992, 0x19ac, + 0x19c6, 0x19d4, 0x19ea, 0x19f8, 0x1a04, 0x1a04, 0x1a0e, 0x1a23, + 0x1a2f, 0x1a43, 0x1a57, 0x1a57, 0x1a57, 0x1a65, 0x1a7d, 0x1a7d, + 0x1a9a, 0x1aad, 0x1acc, 0x1adc, 0x1ae8, 0x1af4, 0x1af4, 0x1b00, + 0x1b19, 0x1b27, 0x1b40, 0x1b40, 0x1b48, 0x1b65, 0x1b71, 0x1b94, + // Entry 1C0 - 1FF + 0x1ba8, 0x1bba, 0x1bc8, 0x1bd6, 0x1be4, 0x1c05, 0x1c1d, 0x1c2d, + 0x1c41, 0x1c59, 0x1c69, 0x1c69, 0x1c69, 0x1c69, 0x1c88, 0x1c88, + 0x1c9a, 0x1c9a, 0x1c9a, 0x1cb2, 0x1cb2, 0x1cd7, 0x1cdf, 0x1cdf, + 0x1cf7, 0x1d07, 0x1d21, 0x1d21, 0x1d21, 0x1d2f, 0x1d37, 0x1d37, + 0x1d37, 0x1d37, 0x1d4d, 0x1d57, 0x1d69, 0x1d77, 0x1d98, 0x1da6, + 0x1db4, 0x1dc6, 0x1dc6, 0x1dd0, 0x1dda, 0x1de8, 0x1dfe, 0x1dfe, + 0x1e1d, 0x1e2b, 0x1e33, 0x1e33, 0x1e41, 0x1e5c, 0x1e7f, 0x1e7f, + 0x1e8b, 0x1e99, 0x1eb8, 0x1ec8, 0x1ec8, 0x1ec8, 0x1ee3, 0x1ef6, + // Entry 200 - 23F + 0x1f0f, 0x1f26, 0x1f36, 0x1f46, 0x1f61, 0x1f6b, 0x1f7e, 0x1f7e, + 0x1f8e, 0x1f9a, 0x1fac, 0x1fba, 0x1fd7, 0x1fe9, 0x1fe9, 0x1fe9, + 0x1ff5, 0x1ffd, 0x200d, 0x2019, 0x2027, 0x2031, 0x2043, 0x2043, + 0x2055, 0x206b, 0x206b, 0x207d, 0x2094, 0x20a9, 0x20a9, 0x20c0, + 0x20c0, 0x20d4, 0x20d4, 0x20e6, 0x20f6, 0x2104, 0x2112, 0x213a, + 0x2148, 0x215c, 0x216c, 0x2176, 0x2180, 0x2180, 0x2180, 0x2180, + 0x2180, 0x218e, 0x218e, 0x219c, 0x21aa, 0x21bc, 0x21ca, 0x21d6, + 0x21e6, 0x21e6, 0x21f6, 0x21f6, 0x2202, 0x220c, 0x221a, 0x2226, + // Entry 240 - 27F + 0x222e, 0x222e, 0x2246, 0x2258, 0x2282, 0x2282, 0x2292, 0x22c8, + 0x22d6, 0x22f2, 0x22fa, 0x2326, 0x2326, 0x234b, 0x237d, 0x23a6, + 0x23c9, 0x23f2, 0x2419, 0x244b, 0x2470, 0x2495, 0x2495, 0x24b4, + 0x24d7, 0x24f6, 0x2508, 0x2531, 0x2558, 0x256c, 0x2585, 0x25a6, + 0x25c3, 0x25e4, +} // Size: 1244 bytes + +var azLangStr string = "" + // Size: 3706 bytes + "afarcaabxazavestancaafrikaansakancaamhararagoncaÉ™rÉ™bassamavarikcÉ™aymarca" + + "azÉ™rbaycan dilibaÅŸqırdbelarusbolqarbislamabambarabenqaltibetBretoncabosn" + + "iakkatalançeçençamorokorsikakri diliçexkilsÉ™ slavçuvaÅŸuelsdanimarkaalman" + + "divehdzonqaeveyunaningilisesperantoispanestonbaskfarsfulafinficifarerfra" + + "nsızqÉ™rbi frizirlandskot gaelikqalisianquaraniqucaratmankshausaivrithind" + + "ihiri motuxorvathaitimacarermÉ™niHererinterlinguaindonezinterlingueiqbosi" + + "çuan yiinupiaqidoislanditalyaninuktitutyaponyavagürcükonqokikuyukuanyam" + + "aqazaxkalaallisutkxmerkannadakoreyakanurkaÅŸmirkürdkomikornqırğızlatınlük" + + "semburqqandalimburqiÅŸlinqalalaoslitvaluba-katanqalatışmalaqasmarÅŸalmaori" + + "makedonmalayalammonqolmaratimalaymaltabirmanauruÅŸimali ndebelenepalnqonk" + + "ahollandnünorsk norveçbokmal norveçcÉ™nub ndebelenavayonyancaoksitancaoci" + + "bvaoromooriyaosetikpÉ™ncabpalipolyakpuÅŸtuportuqalkeçuaretoromanrundirumın" + + "ruskinyarvandasanskritsardinsindhiÅŸimali samisanqosinhalslovakslovensamo" + + "aÅŸonasomalialbanserbsvatiSesotoisveçsuahilitamilteluqutaciktaytiqrintürk" + + "mÉ™nsvanatonqatürksonqatatartaxitiuyÄŸurukraynaurduözbÉ™kvendavyetnamvolapü" + + "kvalunvolofxosaYahudiyorubajuÉ™nqçinzuluakinakoliadangmeadugeafrihiliaqhe" + + "maynucaakadiancaaleutcacÉ™nub altayqÉ™dimi ingiliscÉ™angikÉ™aramikaraukancaa" + + "rapahoaravakçaasuasturicÉ™avadicÉ™balucbalincÉ™basabejabembabenaqÉ™rbi bÉ™luc" + + "bxoçpuribikolcabinisiksikÉ™brajbodoburyatbuginbilincÉ™kadokaribatsamcakebu" + + "anoçiqaçibçəçaÄŸatayçukizmariçinuk lÉ™hçəsiçoktauçipevyançirokiçeyensorani" + + " kürdkoptkrım türkçəkaÅŸubyandakotadarqvataitadelaverslaveydoqribdinkazar" + + "madoqriaÅŸağı sorbdualaortacaq hollandcadioladyulaembuefikqÉ™dimi misireka" + + "cukelamitortacaq ingiliscÉ™evondofangfilippinfonortacaq fransızcaqÉ™dimi f" + + "ransızcaÅŸimal frisfriulqaqaqauzqayoqabayaqezqilbert giliortacaq yüksÉ™k a" + + "lmancaqÉ™dimi almancaqondiqorontalogotçaqreboqÉ™dimi yunancaÄ°sveçrÉ™ almanc" + + "asıqusiqviçinhaydahavayhiliqaynonhittitmonqyuxarı sorbhupaibanilokoinquÅŸ" + + "loÄŸbannqombamaçamjudo-farscajude-É™rÉ™bcÉ™qara-qalpaqkabilekaçincajukambaka" + + "vikabardcatiyapmakondkabuverdiankoroxazixotankoyra çiinikalencinkimbundu" + + "komi-permyakkonkankosreyankpelleqaraçay-balkarkarelyankuruxÅŸambalabafiak" + + "umukkutenayladinlangilaxndalambalÉ™zqilakotamonqoloziÅŸimali luriluba-lulu" + + "aluysenolundaluolushaycaluyiamadurizmaqahimaitilimakasarmÉ™ndinqomasaymok" + + "ÅŸamandarmendemerumorisienortacaq irlandcamaxuva-meettometa’mikmakminanq" + + "kabanmançumanipürimohavkmosimundanqdigÉ™r dillÉ™rkrikmirandmaruarierzyamaz" + + "andaranneapolitalnamaaÅŸağı almancanevarinyasniyuankvasionoqayqÉ™dimi nors" + + "canqoÅŸimal sotonuernyamvezinyankolniyoronizimaosageosmanpanqasinanpaxlav" + + "ipampanqapapyamentopalayancaqÉ™dimi farscafoyenikponpeyanqÉ™dimi provensia" + + "lcakiçeracastanrapanurarotonqanromboromanaromancaruasandaveyakutsamarita" + + "nsamburusasaksantalsanqusisiliskotscÉ™nubi kürdsenaselkupkoyraboro senniq" + + "É™dimi irlandcataçelitÅŸansidamocÉ™nubi samilule samiinari samiskoltsonink" + + "esoqdiyensranan tonqoserer diliisukumasususumeryansiryaktimnetesoterenot" + + "etumtiqretivtokelayklinqontlinqittamaÅŸekniyasa tongatok pisinsimÅŸyantumb" + + "ukatuvalutasavaqtuvinyanMÉ™rkÉ™zi Atlas tamazicÉ™siudmurtuqaritikumbundurut" + + "vaivotikvunyovalamovarayvaÅŸoValpirikalmıqcasoqayaoyapizzapotekblisimbols" + + "zenaqatamazizunidil mÉ™zmunu yoxdurzazaModern Standart ÆrÉ™bcÉ™cÉ™nubi azÉ™rb" + + "aycanAvstriya almancasıİsveçrÉ™ yüksÉ™k almancasıAvstraliya ingiliscÉ™siKan" + + "ada ingiliscÉ™siBritaniya ingiliscÉ™siAmerika ingiliscÉ™siLatın Amerikası i" + + "spancasıKastiliya ispancasıMeksika ispancasıKanada fransızcasıİsveçrÉ™ fr" + + "ansızcasıaÅŸağı saksonflamandBraziliya portuqalcasıPortuqaliya portuqalca" + + "sımoldavserb-xorvatcaKonqo suahilicÉ™sisadÉ™ləşmiÅŸ çinÉ™nÉ™nÉ™vi çin" + +var azLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0006, 0x000b, 0x0014, 0x001d, 0x0023, 0x0028, 0x0030, + 0x0036, 0x003b, 0x0044, 0x004b, 0x005b, 0x0064, 0x006b, 0x0071, + 0x0078, 0x007f, 0x0085, 0x008a, 0x0092, 0x0099, 0x00a0, 0x00a7, + 0x00ae, 0x00b5, 0x00bd, 0x00c1, 0x00cc, 0x00d3, 0x00d7, 0x00e0, + 0x00e5, 0x00ea, 0x00f0, 0x00f3, 0x00f8, 0x00ff, 0x0108, 0x010d, + 0x0112, 0x0116, 0x011a, 0x011e, 0x0121, 0x0125, 0x012a, 0x0132, + 0x013d, 0x0143, 0x014e, 0x0156, 0x015d, 0x0164, 0x0169, 0x016e, + 0x0173, 0x0178, 0x0181, 0x0187, 0x018c, 0x0191, 0x0198, 0x019d, + // Entry 40 - 7F + 0x01a8, 0x01af, 0x01ba, 0x01be, 0x01c8, 0x01cf, 0x01d2, 0x01d8, + 0x01df, 0x01e8, 0x01ed, 0x01f1, 0x01f8, 0x01fd, 0x0203, 0x020b, + 0x0210, 0x021b, 0x0220, 0x0227, 0x022d, 0x0232, 0x0239, 0x023e, + 0x0242, 0x0246, 0x024f, 0x0255, 0x0260, 0x0265, 0x026f, 0x0276, + 0x027a, 0x027f, 0x028b, 0x0292, 0x0299, 0x02a0, 0x02a5, 0x02ac, + 0x02b5, 0x02bb, 0x02c1, 0x02c6, 0x02cb, 0x02d0, 0x02d5, 0x02e4, + 0x02e9, 0x02ef, 0x02f6, 0x0306, 0x0314, 0x0322, 0x0328, 0x032e, + 0x0337, 0x033d, 0x0342, 0x0347, 0x034d, 0x0354, 0x0358, 0x035e, + // Entry 80 - BF + 0x0364, 0x036c, 0x0372, 0x037b, 0x0380, 0x0386, 0x0389, 0x0394, + 0x039c, 0x03a2, 0x03a8, 0x03b4, 0x03b9, 0x03bf, 0x03c5, 0x03cb, + 0x03d0, 0x03d5, 0x03db, 0x03e0, 0x03e4, 0x03e9, 0x03ef, 0x03ef, + 0x03f5, 0x03fc, 0x0401, 0x0407, 0x040c, 0x040f, 0x0415, 0x041e, + 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043d, 0x0443, 0x044a, + 0x044e, 0x0455, 0x045a, 0x0461, 0x0469, 0x046e, 0x0473, 0x0477, + 0x047d, 0x0483, 0x0489, 0x048d, 0x0491, 0x0495, 0x049a, 0x04a1, + 0x04a6, 0x04a6, 0x04ae, 0x04b3, 0x04b9, 0x04c2, 0x04c2, 0x04c9, + // Entry C0 - FF + 0x04c9, 0x04d5, 0x04e7, 0x04ee, 0x04f4, 0x04fd, 0x04fd, 0x0504, + 0x0504, 0x050d, 0x050d, 0x050d, 0x0510, 0x0510, 0x0519, 0x0519, + 0x0521, 0x0526, 0x052e, 0x052e, 0x0532, 0x0532, 0x0532, 0x0532, + 0x0536, 0x053b, 0x053b, 0x053f, 0x053f, 0x053f, 0x054c, 0x0555, + 0x055c, 0x0560, 0x0560, 0x0560, 0x0568, 0x0568, 0x0568, 0x056c, + 0x056c, 0x0570, 0x0570, 0x0576, 0x057b, 0x057b, 0x0583, 0x0583, + 0x0587, 0x058c, 0x058c, 0x0593, 0x059a, 0x059f, 0x05a7, 0x05b0, + 0x05b6, 0x05ba, 0x05cb, 0x05d2, 0x05db, 0x05e2, 0x05e8, 0x05f4, + // Entry 100 - 13F + 0x05f8, 0x05f8, 0x0607, 0x0610, 0x0616, 0x061c, 0x0621, 0x0628, + 0x062e, 0x0634, 0x0639, 0x063e, 0x0643, 0x0650, 0x0650, 0x0655, + 0x0666, 0x066b, 0x0670, 0x0670, 0x0674, 0x0678, 0x0678, 0x0685, + 0x068b, 0x0691, 0x06a3, 0x06a3, 0x06a9, 0x06a9, 0x06ad, 0x06b5, + 0x06b5, 0x06b8, 0x06b8, 0x06ca, 0x06dc, 0x06dc, 0x06e7, 0x06e7, + 0x06ec, 0x06ee, 0x06f4, 0x06f4, 0x06f8, 0x06fe, 0x06fe, 0x0701, + 0x070d, 0x070d, 0x0725, 0x0734, 0x0734, 0x0739, 0x0742, 0x0748, + 0x074d, 0x075c, 0x0771, 0x0771, 0x0771, 0x0775, 0x077c, 0x0781, + // Entry 140 - 17F + 0x0781, 0x0786, 0x0786, 0x0790, 0x0796, 0x079a, 0x07a6, 0x07a6, + 0x07aa, 0x07ae, 0x07ae, 0x07b3, 0x07b9, 0x07b9, 0x07b9, 0x07c0, + 0x07c6, 0x07cc, 0x07d7, 0x07e5, 0x07e5, 0x07f0, 0x07f6, 0x07fe, + 0x0800, 0x0805, 0x0809, 0x0811, 0x0811, 0x0816, 0x081c, 0x0827, + 0x0827, 0x082b, 0x082b, 0x082f, 0x0834, 0x0840, 0x0840, 0x0840, + 0x0840, 0x0848, 0x0850, 0x085c, 0x0862, 0x086a, 0x0870, 0x087f, + 0x087f, 0x087f, 0x0887, 0x088c, 0x0894, 0x0899, 0x0899, 0x089e, + 0x08a5, 0x08aa, 0x08af, 0x08b5, 0x08ba, 0x08c0, 0x08c0, 0x08c0, + // Entry 180 - 1BF + 0x08c0, 0x08c6, 0x08c6, 0x08cb, 0x08cf, 0x08db, 0x08db, 0x08e5, + 0x08ec, 0x08f1, 0x08f4, 0x08fc, 0x0901, 0x0901, 0x0901, 0x0908, + 0x0908, 0x090e, 0x0915, 0x091c, 0x0925, 0x092a, 0x092a, 0x0930, + 0x0936, 0x093b, 0x093f, 0x0947, 0x0957, 0x0964, 0x096b, 0x0971, + 0x097c, 0x0982, 0x098b, 0x0991, 0x0995, 0x0995, 0x099c, 0x09aa, + 0x09ae, 0x09b4, 0x09bb, 0x09bb, 0x09bb, 0x09c0, 0x09ca, 0x09ca, + 0x09d4, 0x09d8, 0x09e8, 0x09ee, 0x09f2, 0x09f8, 0x09f8, 0x09fe, + 0x09fe, 0x0a03, 0x0a11, 0x0a11, 0x0a14, 0x0a1f, 0x0a23, 0x0a23, + // Entry 1C0 - 1FF + 0x0a2b, 0x0a32, 0x0a38, 0x0a3e, 0x0a43, 0x0a48, 0x0a52, 0x0a59, + 0x0a61, 0x0a6b, 0x0a74, 0x0a74, 0x0a74, 0x0a74, 0x0a82, 0x0a82, + 0x0a89, 0x0a89, 0x0a89, 0x0a91, 0x0a91, 0x0aa5, 0x0aaa, 0x0aaa, + 0x0ab2, 0x0ab8, 0x0ac2, 0x0ac2, 0x0ac2, 0x0ac7, 0x0acc, 0x0acc, + 0x0acc, 0x0acc, 0x0ad4, 0x0ad7, 0x0ade, 0x0ae3, 0x0aec, 0x0af3, + 0x0af8, 0x0afe, 0x0afe, 0x0afe, 0x0b03, 0x0b09, 0x0b0e, 0x0b0e, + 0x0b1b, 0x0b1b, 0x0b1f, 0x0b1f, 0x0b25, 0x0b34, 0x0b44, 0x0b44, + 0x0b4c, 0x0b50, 0x0b50, 0x0b56, 0x0b56, 0x0b56, 0x0b62, 0x0b6b, + // Entry 200 - 23F + 0x0b75, 0x0b7a, 0x0b81, 0x0b89, 0x0b95, 0x0ba0, 0x0ba0, 0x0ba0, + 0x0ba6, 0x0baa, 0x0bb2, 0x0bb2, 0x0bb2, 0x0bb8, 0x0bb8, 0x0bb8, + 0x0bbd, 0x0bc1, 0x0bc7, 0x0bcc, 0x0bd1, 0x0bd4, 0x0bdb, 0x0bdb, + 0x0be2, 0x0be9, 0x0be9, 0x0bf1, 0x0bfd, 0x0c06, 0x0c06, 0x0c06, + 0x0c06, 0x0c0e, 0x0c0e, 0x0c15, 0x0c1b, 0x0c22, 0x0c2a, 0x0c45, + 0x0c4b, 0x0c53, 0x0c5a, 0x0c5d, 0x0c60, 0x0c60, 0x0c60, 0x0c60, + 0x0c60, 0x0c65, 0x0c65, 0x0c6a, 0x0c6a, 0x0c70, 0x0c75, 0x0c7a, + 0x0c81, 0x0c81, 0x0c8a, 0x0c8a, 0x0c8e, 0x0c91, 0x0c96, 0x0c96, + // Entry 240 - 27F + 0x0c96, 0x0c96, 0x0c96, 0x0c9d, 0x0ca7, 0x0ca7, 0x0cad, 0x0cb3, + 0x0cb7, 0x0cca, 0x0cce, 0x0ce7, 0x0cfa, 0x0d0d, 0x0d2b, 0x0d42, + 0x0d55, 0x0d6b, 0x0d7f, 0x0d9b, 0x0daf, 0x0dc1, 0x0dc1, 0x0dd5, + 0x0ded, 0x0dfc, 0x0e03, 0x0e1a, 0x0e33, 0x0e39, 0x0e46, 0x0e58, + 0x0e6b, 0x0e7a, +} // Size: 1244 bytes + +var bgLangStr string = "" + // Size: 7628 bytes + "афарабхазкиавеÑÑ‚ÑкиафрикаанÑаканамхарÑкиарагонÑкиарабÑкиаÑамÑкиаварÑкиай" + + "мараазербайджанÑкибашкирÑкибеларуÑкибългарÑкибиÑламабамбарабенгалÑкитиб" + + "етÑкибретонÑкибоÑненÑкикаталонÑкичеченÑкичаморокорÑиканÑкикриичешкицърк" + + "овно ÑлавÑнÑкичувашкиуелÑкидатÑкинемÑкидивехидзонхаевегръцкианглийÑкиеÑ" + + "перантоиÑпанÑкиеÑтонÑкибаÑкиперÑийÑкифулафинÑкифиджийÑкифарьорÑкифренÑк" + + "ифризийÑкиирландÑкишотландÑки галÑкигалиÑийÑкигуаранигуджаратиманкÑкиха" + + "узаивритхиндихири мотухърватÑкихаитÑнÑкиунгарÑкиарменÑкихерероинтерлинг" + + "ваиндонезийÑкиокÑиденталигбоÑъчуанÑки иинупиакидоиÑландÑкииталианÑкиину" + + "ктитутÑпонÑкиÑванÑкигрузинÑкиконгоанÑкикикуюкванÑмаказахÑкигренландÑкик" + + "хмерÑкиканнадакорейÑкиканурикашмирÑкикюрдÑкиКомикорнуолÑкикиргизкилатин" + + "ÑкилюкÑембургÑкигандалимбургÑкилингалалаоÑкилитовÑкилуба катангалатвийÑ" + + "кималгашкимаршалеземаорÑкимакедонÑкималаÑламмонголÑкимаратималайÑкималт" + + "ийÑкибирманÑкинауруÑеверен ндебеленепалÑкиндонганидерландÑкинорвежки (н" + + "юношк)норвежки (букмол)южен ндебеленавахочинÑнджаокÑитанÑкиоджибваоромо" + + "ориÑоÑетÑкипенджабÑкипалиполÑкипущупортугалÑкикечуаретороманÑкирундирум" + + "ънÑкируÑкикинÑруандаÑанкÑкритÑкиÑардинÑкиÑиндхиÑеверноÑаамÑкиÑангоÑинха" + + "лÑкиÑловашкиÑловенÑкиÑамоанÑкишонаÑомалийÑкиалбанÑкиÑръбÑкиÑуазиÑеÑутоÑ" + + "унданÑкишведÑкиÑуахилитамилÑкителугутаджикÑкитайÑкитигринÑтуркменÑкитÑв" + + "анатонгатурÑкитÑонгататарÑкитаитÑнÑкиуйгурÑкиукраинÑкиурдуузбекÑкивенда" + + "виетнамÑкиволапюквалонÑкиволофкÑоÑаидишйорубазуангкитайÑкизулуÑкиачинÑк" + + "иаколиадангмеадигеафрихилиагемайнуакадÑкиалеутÑкиюжноалтайÑкиÑтароангли" + + "йÑкиангикаарамейÑкимапучеарапахоаравакаÑуаÑтурÑкиавадибалучибалинейÑкиб" + + "аÑабеÑбембабеназападен балочибожпурибиколÑкибиниÑикÑикабраджбодобурÑÑ‚Ñк" + + "ибугинÑкибиленÑкикаддокарибÑкиатÑамÑебуаночигачибчачагатайчуукмарийÑкиж" + + "аргон чинуукчокточиипувÑкичерокичейенÑкикюрдÑки (централен)коптÑкикримÑ" + + "котатарÑкикашубÑкидакотÑкидаргватаитаделауерÑлейвидогрибдинкаджермадогр" + + "идолнолужишкидуалаÑредновековен холандÑкидиоладиулаембуефикегипетÑкиека" + + "жукеламитÑкиÑредновековен английÑкиевондофангфилипинÑкифонÑредновековен" + + " френÑкиÑтарофренÑкиÑеверен фризÑкиизточен фризÑкифриулианÑкигагагаузкиг" + + "айогбаÑгиизгилбертÑкиÑредновековен немÑкиÑтаровиÑоконемÑкигондигоронтал" + + "оготичеÑкигребодревногръцкишвейцарÑки немÑкигуÑиигвичинхайдахавайÑкихил" + + "игайнонхитÑкихмонггорнолужишкихупаибанилокоингушетÑкилоджбаннгомбамачам" + + "ееврейÑко-перÑийÑкиеврейÑко-арабÑкикаракалпашкикабилÑкикачинÑкижжикамба" + + "кавикабардиантуапмакондекабовердианÑкикорокхаÑикотÑкикойра чииникалендж" + + "инкимбундукоми-пермÑцкиконканикоÑраенкпелекарачай-балкарÑкикарелÑкикуру" + + "кшамбалабафиÑкумикÑкикутенайладинолангилахндаламбалезгинÑкилакотамонгол" + + "озиÑеверен лурилуба-лулуалуиÑеньолундалуолушаилуÑмадурÑкимагахимайтхили" + + "макаÑармандингомаÑайÑкимокшамандармендемерумориÑиенÑредновековен ирланд" + + "Ñкимакуа метометамикмакминангбауманчжурÑкиманипуримохоукмоÑимундангмног" + + "оезичникрикмирандийÑкимарвариерзиамазандараннеаполитанÑкинамадолнонемÑк" + + "иневарÑкиниаÑниуеанкваÑионогаиÑтаронорвежÑкинкоÑеверен ÑотонуерклаÑичеÑ" + + "ки невариниамвезинианколенуоронзимаоÑеджиотоманÑки турÑкипангаÑинанпехл" + + "евийÑкипампангапапиаментупалауанÑтароперÑийÑкифиникийÑкипохнпеианпрован" + + "ÑалÑкикичераджаÑтанÑкирапа нуирапотонганромбоциганÑки езикарумънÑкирваÑ" + + "андвеÑкутÑкиÑамаританÑки арамейÑкиÑамбуруÑаÑакÑанталиÑангуÑицилианÑкишо" + + "тландÑкиюжнокюрдÑкиÑенаÑелкупкойраборо ÑениÑтароирландÑкиташелхитшанÑид" + + "амоюжноÑаамÑкилуле-ÑаамÑкиинари-ÑаамÑкиÑколт-ÑаамÑкиÑонинкеÑогдийÑкиÑра" + + "нан тонгоÑерерÑукумаÑуÑушумерÑкикоморÑкиклаÑичеÑки ÑирийÑкиÑирийÑкитемн" + + "етеÑотеренотетумтигретивтокелайÑкиклингонтлингиттамашекнианÑа тонгаток " + + "пиÑинцимшианÑкитумбукатувалуанÑкитаÑавактувинÑкицентралноатлаÑки тамази" + + "гтудмуртÑкиугаритÑкиумбундуроотваивотиквунджоваламоварайуашовалпирикалм" + + "икÑогаÑоÑпезекантонÑÐºÐ¸Ð·Ð°Ð¿Ð¾Ñ‚ÐµÐºÐ±Ð»Ð¸Ñ ÑимволизенагаÑтандартен мароканÑки та" + + "мазигтзунибез лингвиÑтично ÑъдържаниезазаÑъвременен Ñтандартен арабÑкиа" + + "нглийÑки (СÐЩ)долноÑакÑонÑкифламандÑкимолдовÑкиÑърбохърватÑкиконгоанÑки" + + " Ñуахили" + +var bgLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0008, 0x0016, 0x0026, 0x0038, 0x0040, 0x0050, 0x0062, + 0x0070, 0x007e, 0x008c, 0x0098, 0x00b4, 0x00c6, 0x00d8, 0x00ea, + 0x00f8, 0x0106, 0x0118, 0x0128, 0x013a, 0x014c, 0x0160, 0x0170, + 0x017c, 0x0192, 0x019a, 0x01a4, 0x01c7, 0x01d5, 0x01e1, 0x01ed, + 0x01f9, 0x0205, 0x0211, 0x0217, 0x0223, 0x0235, 0x0247, 0x0257, + 0x0267, 0x0271, 0x0283, 0x028b, 0x0297, 0x02a9, 0x02bb, 0x02c9, + 0x02db, 0x02ed, 0x030e, 0x0322, 0x0330, 0x0342, 0x0350, 0x035a, + 0x0364, 0x036e, 0x037f, 0x0391, 0x03a3, 0x03b3, 0x03c3, 0x03cf, + // Entry 40 - 7F + 0x03e5, 0x03fd, 0x0411, 0x0419, 0x042e, 0x043c, 0x0442, 0x0454, + 0x0468, 0x047a, 0x0488, 0x0496, 0x04a8, 0x04bc, 0x04c6, 0x04d4, + 0x04e4, 0x04fa, 0x050a, 0x0518, 0x0528, 0x0534, 0x0546, 0x0554, + 0x055c, 0x0570, 0x0580, 0x0590, 0x05aa, 0x05b4, 0x05c8, 0x05d6, + 0x05e2, 0x05f2, 0x0609, 0x061b, 0x062b, 0x063d, 0x064b, 0x065f, + 0x066f, 0x0681, 0x068d, 0x069d, 0x06af, 0x06c1, 0x06cb, 0x06e8, + 0x06f8, 0x0704, 0x071c, 0x073b, 0x075a, 0x0771, 0x077d, 0x078d, + 0x07a1, 0x07af, 0x07b9, 0x07c1, 0x07cf, 0x07e3, 0x07eb, 0x07f7, + // Entry 80 - BF + 0x07ff, 0x0815, 0x081f, 0x0837, 0x0841, 0x0851, 0x085b, 0x086f, + 0x0887, 0x0899, 0x08a5, 0x08c1, 0x08cb, 0x08dd, 0x08ed, 0x08ff, + 0x0911, 0x0919, 0x092d, 0x093d, 0x094b, 0x0955, 0x0961, 0x0973, + 0x0981, 0x098f, 0x099f, 0x09ab, 0x09bd, 0x09c9, 0x09d7, 0x09eb, + 0x09f7, 0x0a01, 0x0a0d, 0x0a19, 0x0a29, 0x0a3b, 0x0a4b, 0x0a5d, + 0x0a65, 0x0a75, 0x0a7f, 0x0a93, 0x0aa1, 0x0ab1, 0x0abb, 0x0ac5, + 0x0acd, 0x0ad9, 0x0ae3, 0x0af3, 0x0b01, 0x0b0f, 0x0b19, 0x0b27, + 0x0b31, 0x0b31, 0x0b41, 0x0b49, 0x0b51, 0x0b5f, 0x0b5f, 0x0b6f, + // Entry C0 - FF + 0x0b6f, 0x0b87, 0x0ba3, 0x0baf, 0x0bc1, 0x0bcd, 0x0bcd, 0x0bdb, + 0x0bdb, 0x0be7, 0x0be7, 0x0be7, 0x0bed, 0x0bed, 0x0bfd, 0x0bfd, + 0x0c07, 0x0c13, 0x0c27, 0x0c27, 0x0c2f, 0x0c2f, 0x0c2f, 0x0c2f, + 0x0c35, 0x0c3f, 0x0c3f, 0x0c47, 0x0c47, 0x0c47, 0x0c62, 0x0c70, + 0x0c80, 0x0c88, 0x0c88, 0x0c88, 0x0c96, 0x0c96, 0x0c96, 0x0ca0, + 0x0ca0, 0x0ca8, 0x0ca8, 0x0cb8, 0x0cc8, 0x0cc8, 0x0cd8, 0x0cd8, + 0x0ce2, 0x0cf2, 0x0cf2, 0x0cfc, 0x0d0a, 0x0d12, 0x0d1c, 0x0d2a, + 0x0d32, 0x0d42, 0x0d5b, 0x0d65, 0x0d77, 0x0d83, 0x0d93, 0x0db6, + // Entry 100 - 13F + 0x0dc4, 0x0dc4, 0x0de2, 0x0df2, 0x0e02, 0x0e0e, 0x0e18, 0x0e26, + 0x0e32, 0x0e3e, 0x0e48, 0x0e54, 0x0e5e, 0x0e76, 0x0e76, 0x0e80, + 0x0ead, 0x0eb7, 0x0ec1, 0x0ec1, 0x0ec9, 0x0ed1, 0x0ed1, 0x0ee3, + 0x0eef, 0x0f01, 0x0f2e, 0x0f2e, 0x0f3a, 0x0f3a, 0x0f42, 0x0f56, + 0x0f56, 0x0f5c, 0x0f5c, 0x0f85, 0x0f9d, 0x0f9d, 0x0fba, 0x0fd7, + 0x0fed, 0x0ff1, 0x1001, 0x1001, 0x1009, 0x1011, 0x1011, 0x1019, + 0x102d, 0x102d, 0x1054, 0x1076, 0x1076, 0x1080, 0x1092, 0x10a4, + 0x10ae, 0x10c6, 0x10e7, 0x10e7, 0x10e7, 0x10f1, 0x10fd, 0x1107, + // Entry 140 - 17F + 0x1107, 0x1117, 0x1117, 0x112b, 0x1137, 0x1141, 0x1159, 0x1159, + 0x1161, 0x1169, 0x1169, 0x1173, 0x1187, 0x1187, 0x1187, 0x1195, + 0x11a1, 0x11ad, 0x11d0, 0x11ef, 0x11ef, 0x1207, 0x1217, 0x1227, + 0x122d, 0x1237, 0x123f, 0x1251, 0x1251, 0x1259, 0x1267, 0x1283, + 0x1283, 0x128b, 0x128b, 0x1295, 0x12a1, 0x12b6, 0x12b6, 0x12b6, + 0x12b6, 0x12c8, 0x12d8, 0x12f1, 0x12ff, 0x130d, 0x1317, 0x1338, + 0x1338, 0x1338, 0x1348, 0x1352, 0x1360, 0x136a, 0x136a, 0x137a, + 0x1388, 0x1394, 0x139e, 0x13aa, 0x13b4, 0x13c6, 0x13c6, 0x13c6, + // Entry 180 - 1BF + 0x13c6, 0x13d2, 0x13d2, 0x13dc, 0x13e4, 0x13fb, 0x13fb, 0x140e, + 0x141e, 0x1428, 0x142e, 0x1438, 0x143e, 0x143e, 0x143e, 0x144e, + 0x144e, 0x145a, 0x146a, 0x1478, 0x1488, 0x1498, 0x1498, 0x14a2, + 0x14ae, 0x14b8, 0x14c0, 0x14d0, 0x14fd, 0x1510, 0x1518, 0x1524, + 0x1536, 0x154a, 0x155a, 0x1566, 0x156e, 0x156e, 0x157c, 0x1592, + 0x159a, 0x15b0, 0x15be, 0x15be, 0x15be, 0x15c8, 0x15dc, 0x15dc, + 0x15f6, 0x15fe, 0x1614, 0x1624, 0x162c, 0x1638, 0x1638, 0x1644, + 0x1644, 0x164e, 0x166a, 0x166a, 0x1670, 0x1687, 0x168f, 0x16b0, + // Entry 1C0 - 1FF + 0x16c0, 0x16d0, 0x16da, 0x16e4, 0x16f0, 0x170f, 0x1723, 0x1739, + 0x1749, 0x175d, 0x176b, 0x176b, 0x176b, 0x176b, 0x1787, 0x1787, + 0x179b, 0x179b, 0x179b, 0x17ad, 0x17ad, 0x17c5, 0x17cd, 0x17cd, + 0x17e5, 0x17f4, 0x1808, 0x1808, 0x1808, 0x1812, 0x182b, 0x182b, + 0x182b, 0x182b, 0x183d, 0x1843, 0x184f, 0x185d, 0x1888, 0x1896, + 0x18a0, 0x18ae, 0x18ae, 0x18ae, 0x18b8, 0x18ce, 0x18e2, 0x18e2, + 0x18f8, 0x18f8, 0x1900, 0x1900, 0x190c, 0x1927, 0x1943, 0x1943, + 0x1953, 0x1959, 0x1959, 0x1965, 0x1965, 0x1965, 0x197b, 0x1992, + // Entry 200 - 23F + 0x19ab, 0x19c4, 0x19d2, 0x19e4, 0x19fb, 0x1a05, 0x1a05, 0x1a05, + 0x1a11, 0x1a19, 0x1a29, 0x1a39, 0x1a5e, 0x1a6e, 0x1a6e, 0x1a6e, + 0x1a78, 0x1a80, 0x1a8c, 0x1a96, 0x1aa0, 0x1aa6, 0x1aba, 0x1aba, + 0x1ac8, 0x1ad6, 0x1ad6, 0x1ae4, 0x1afb, 0x1b0c, 0x1b0c, 0x1b0c, + 0x1b0c, 0x1b20, 0x1b20, 0x1b2e, 0x1b44, 0x1b52, 0x1b62, 0x1b93, + 0x1ba5, 0x1bb7, 0x1bc5, 0x1bcd, 0x1bd3, 0x1bd3, 0x1bd3, 0x1bd3, + 0x1bd3, 0x1bdd, 0x1bdd, 0x1be9, 0x1be9, 0x1bf5, 0x1bff, 0x1c07, + 0x1c15, 0x1c15, 0x1c21, 0x1c21, 0x1c29, 0x1c2d, 0x1c37, 0x1c37, + // Entry 240 - 27F + 0x1c37, 0x1c37, 0x1c49, 0x1c57, 0x1c6e, 0x1c6e, 0x1c7a, 0x1cb4, + 0x1cbc, 0x1cf0, 0x1cf8, 0x1d30, 0x1d30, 0x1d30, 0x1d30, 0x1d30, + 0x1d30, 0x1d30, 0x1d4b, 0x1d4b, 0x1d4b, 0x1d4b, 0x1d4b, 0x1d4b, + 0x1d4b, 0x1d67, 0x1d7b, 0x1d7b, 0x1d7b, 0x1d8d, 0x1da9, 0x1dcc, +} // Size: 1240 bytes + +var bnLangStr string = "" + // Size: 11932 bytes + "আফারআবখাজিয়ানআবেসà§à¦¤à§€à¦¯à¦¼à¦†à¦«à§à¦°à¦¿à¦•à¦¾à¦¨à§à¦¸à¦†à¦•à¦¾à¦¨à¦†à¦®à¦¹à¦¾à¦°à¦¿à¦•à¦†à¦°à§à¦—োনিজআরবীআসামিআভেরিকআয়মা" + + "রাআজারবাইজানীবাশকিরবেলারà§à¦¶à¦¿à¦¯à¦¼à¦¬à§à¦²à¦—েরিয়বিসলামাবামবারাবাংলাতিবà§à¦¬à¦¤à¦¿à¦¬à§à¦°à§‡à¦Ÿà¦¨" + + "বসনীয়ানকাতালানচেচেনচামোরোকরà§à¦¸à¦¿à¦•à¦¾à¦¨à¦•à§à¦°à¦¿à¦šà§‡à¦•à¦šà¦¾à¦°à§à¦š সà§à¦²à¦¾à¦­à¦¿à¦•à¦šà§à¦¬à¦¾à¦¸à¦“য়েলশডেনিশ" + + "জারà§à¦®à¦¾à¦¨à¦¦à¦¿à¦¬à§‡à¦¹à¦¿à¦œà§‹à¦™à§à¦—াইউয়িগà§à¦°à¦¿à¦•à¦‡à¦‚রেজিà¦à¦¸à§à¦ªà§‡à¦°à¦¾à¦¨à§à¦¤à§‹à¦¸à§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦à¦¸à§à¦¤à§‹à¦¨à§€à¦¯à¦¼à¦¬à¦¾à¦¸à§à¦•à¦«" + + "ারà§à¦¸à¦¿à¦«à§à¦²à¦¾à¦¹à§à¦«à¦¿à¦¨à¦¿à¦¶à¦«à¦¿à¦œà¦¿à¦†à¦¨à¦«à¦¾à¦°à§‹à¦¸à¦«à¦°à¦¾à¦¸à¦¿à¦ªà¦¶à§à¦šà¦¿à¦® ফà§à¦°à¦¿à¦¸à¦¿à¦†à¦¨à¦†à¦‡à¦°à¦¿à¦¶à¦¸à§à¦•à¦Ÿà¦¸-গà§à¦¯à§‡à¦²à¦¿à¦•à¦—à§à¦¯à¦¾à¦²" + + "িশিয়গà§à¦¯à¦¼à¦¾à¦°à¦¾à¦¨à¦¿à¦—à§à¦œà¦°à¦¾à¦Ÿà¦¿à¦®à§à¦¯à¦¾à¦™à§à¦•à¦¸à¦¹à¦¾à¦‰à¦¸à¦¾à¦¹à¦¿à¦¬à§à¦°à§à¦¹à¦¿à¦¨à§à¦¦à¦¿à¦¹à¦¿à¦°à¦¿ মোতà§à¦•à§à¦°à§‹à¦¯à¦¼à§‡à¦¶à§€à¦¯à¦¼à¦¹à¦¾à¦‡à¦¤" + + "িয়ানহাঙà§à¦—েরীয়আরà§à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¹à§‡à¦°à§‡à¦°à§‹à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—à§à¦¯à¦¼à¦¾à¦‡à¦¨à§à¦¦à§‹à¦¨à§‡à¦¶à§€à¦¯à¦¼à¦‡à¦¨à§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—ইগà§" + + "\u200cবোসিচà§à¦¯à¦¼à¦¾à¦¨ য়িইনà§à¦ªà¦¿à¦¯à¦¼à¦¾à¦•à¦‡à¦¡à§‹à¦†à¦‡à¦¸à¦²à§à¦¯à¦¾à¦¨à§à¦¡à§€à¦¯à¦¼à¦‡à¦¤à¦¾à¦²à§€à¦¯à¦¼à¦‡à¦¨à§à¦•à§à¦Ÿà¦¿à¦Ÿà§à¦Ÿà¦œà¦¾à¦ªà¦¾à¦¨à¦¿à¦œà¦¾à¦­à¦¾" + + "নিজজরà§à¦œà¦¿à¦¯à¦¼à¦¾à¦¨à¦•à¦™à§à¦—োকিকà§à¦¯à¦¼à§à¦•à§‹à¦¯à¦¼à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¾à¦•à¦¾à¦œà¦¾à¦–কà§à¦¯à¦¾à¦²à¦¾à¦²à§à¦²à¦¿à¦¸à§à¦Ÿà¦–মেরকানà§à¦¨à¦¾à¦¡à¦¼à§€à¦•à§‹à¦°" + + "িয়ানকানà§à¦°à¦¿à¦•à¦¾à¦¶à§à¦®à§€à¦°à§€à¦•à§à¦°à§à¦¦à¦¿à¦¶à¦•à§‹à¦®à¦¿à¦•à¦°à§à¦£à¦¿à¦¶à¦•à¦¿à¦°à§à¦—িজলাটিনলà§à¦•à§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—ীয়গানà§à¦¡à¦¾à¦²" + + "িমà§à¦¬à§à¦°à§à¦—িশলিঙà§à¦—ালালাওলিথà§à¦¯à¦¼à§‡à¦¨à§€à¦¯à¦¼à¦²à§à¦¬à¦¾-কাটাঙà§à¦—ালাতà§\u200cভীয়মালাগাসিমার" + + "à§à¦¶à¦¾à¦²à¦¿à¦œà¦®à¦¾à¦“রিমà§à¦¯à¦¾à¦¸à¦¿à¦¡à§‹à¦¨à§€à¦¯à¦¼à¦®à¦¾à¦²à¦¾à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦®à¦™à§à¦—োলিয়মারাঠিমালয়মলà§à¦Ÿà¦¿à¦¯à¦¼à¦¬à¦°à§à¦®à¦¿à¦¨à¦¾à¦‰à¦°à§" + + "উতà§à¦¤à¦° à¦à¦¨à§à¦¦à§‡à¦¬à¦¿à¦²à¦¿à¦¨à§‡à¦ªà¦¾à¦²à§€à¦à¦¨à§à¦¦à§‹à¦™à§à¦—াডাচনরওয়েজীয়ান নিনরà§à¦¸à§à¦•à¦¨à¦°à¦“য়েজিয়ান বোক" + + "মালদকà§à¦·à¦¿à¦£ à¦à¦¨à¦¡à§‡à¦¬à§‡à¦²à§‡à¦¨à¦¾à¦­à¦¾à¦œà§‹à¦¨à¦¾à¦¯à¦¼à¦¾à¦žà§à¦œà¦¾à¦…কà§à¦¸à¦¿à¦Ÿà¦¾à¦¨à¦“জিবওয়াঅরোমোওড়িয়াওসেটিকপাঞ" + + "à§à¦œà¦¾à¦¬à§€à¦ªà¦¾à¦²à¦¿à¦ªà§‹à¦²à¦¿à¦¶à¦ªà¦¾à¦¶à§à¦¤à§à¦ªà¦°à§à¦¤à§à¦—ীজকেচà§à¦¯à¦¼à¦¾à¦°à§‹à¦®à¦¾à¦¨à§à¦¸à¦°à§à¦¨à§à¦¦à¦¿à¦°à§‹à¦®à¦¾à¦¨à§€à¦¯à¦¼à¦°à§à¦¶à¦•à¦¿à¦¨à¦¯à¦¼à¦¾à¦°à§‹à¦¯à¦¼à¦¾" + + "নà§à¦¡à¦¾à¦¸à¦‚ষà§à¦•à§ƒà¦¤à¦¸à¦¾à¦°à§à¦¡à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸à¦¿à¦¨à§à¦§à¦¿à¦‰à¦¤à§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সামিসাঙà§à¦—োসিংহলীসà§à¦²à§‹à¦­à¦¾à¦•à¦¸à§à¦²à§‹" + + "ভেনীয়সামোয়ানশোনাসোমালীআলবেনীয়সারà§à¦¬à§€à¦¯à¦¼à¦¸à§‹à¦¯à¦¼à¦¾à¦¤à¦¿à¦¦à¦•à§à¦·à¦¿à¦¨ সোথোসà§à¦¨à§à¦¦à¦¾à¦¨à§€à¦¸à§à¦‡à¦¡" + + "িশসোয়াহিলিতামিলতেলেগà§à¦¤à¦¾à¦œà¦¿à¦•à¦¥à¦¾à¦‡à¦¤à¦¿à¦—রিনিয়াতà§à¦°à§à¦•à¦®à§‡à¦¨à§€à¦¸à§‹à¦¯à¦¼à¦¾à¦¨à¦¾à¦Ÿà§‹à¦™à§à¦—ানতà§à¦°à§à¦•à§€à¦¸" + + "ঙà§à¦—াতাতারতাহিতিয়ানউইঘà§à¦°à¦‡à¦‰à¦•à§à¦°à§‡à¦¨à§€à¦¯à¦¼à¦‰à¦°à§à¦¦à§à¦‰à¦œà¦¬à§‡à¦•à§€à¦¯à¦¼à¦­à§‡à¦¨à§à¦¡à¦¾à¦­à¦¿à¦¯à¦¼à§‡à¦¤à¦¨à¦¾à¦®à§€à¦­à§‹à¦²à¦¾à¦ªà§à¦•" + + "ওয়ালà§à¦¨à¦‰à¦“লোফজোসায়িদà§à¦¦à¦¿à¦¶à¦‡à¦“রà§à¦¬à¦¾à¦à§à§à¦¯à¦¼à¦¾à¦™à¦šà§€à¦¨à¦¾à¦œà§à¦²à§à¦…à§à¦¯à¦¾à¦šà¦¾à¦‡à¦¨à¦¿à¦œà¦†à¦•à§‹à¦²à¦¿à¦…দাগà§à¦®à§‡à¦†à¦¦à§‡" + + "গেআফà§à¦°à¦¿à¦¹à¦¿à¦²à¦¿à¦à¦˜à§‡à¦®à¦†à¦‡à¦¨à§à¦†à¦•à§à¦•à¦¾à¦¦à¦¿à¦¯à¦¼à¦¾à¦¨à¦†à¦²à§‡à¦‰à¦¤à¦¦à¦•à§à¦·à¦¿à¦¨ আলতাইপà§à¦°à¦¾à¦šà§€à¦¨ ইংরেজীআঙà§à¦—িকাআর" + + "ামাইকমাপà§à¦šà¦¿à¦†à¦°à¦¾à¦ªà¦¾à¦¹à§‹à¦†à¦°à¦¾à¦“য়াকআসà§à¦†à¦¸à§à¦¤à§à¦°à¦¿à¦¯à¦¼à¦†à¦“য়াধিবেলà§à¦šà§€à¦¬à¦¾à¦²à¦¿à¦¨à§€à¦¯à¦¼à¦¬à¦¾à¦¸à¦¾à¦¬à§‡à¦œà¦¾à¦¬à§‡à¦®" + + "à§à¦¬à¦¾à¦¬à§‡à¦¨à¦¾à¦ªà¦¶à§à¦šà¦¿à¦® বালোচিভোজপà§à¦°à¦¿à¦¬à¦¿à¦•à§‹à¦²à¦¬à¦¿à¦¨à¦¿à¦¸à¦¿à¦•à¦¸à¦¿à¦•à¦¾à¦¬à§à¦°à¦¾à¦œà¦¬à§‹à¦¡à¦¼à§‹à¦¬à§à¦°à¦¿à¦¯à¦¼à¦¾à¦¤à¦¬à§à¦—িনিবà§à¦²" + + "িনকà§à¦¯à¦¾à¦¡à§‹à¦•à§à¦¯à¦¾à¦°à¦¿à¦¬à¦†à¦¤à§à¦¸à¦¾à¦®à¦šà§‡à¦¬à§à¦¯à¦¼à¦¾à¦¨à§‹à¦šà¦¿à¦—াচিবচাচাগাতাইচà§à¦•à¦¿à¦®à¦¾à¦°à¦¿à¦šà¦¿à¦¨à§à¦• জারà§à¦—নচকটো" + + "ওচিপেওয়ানচেরোকীশাইয়েনসোরানি কà§à¦°à§à¦¦à¦¿à¦¶à¦•à¦ªà¦Ÿà¦¿à¦•à¦•à§à¦°à¦¿à¦®à¦¿à¦¯à¦¼à¦¾à¦¨ তà§à¦°à§à¦•à¦¿à¦•à¦¾à¦¶à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦¡" + + "াকোটাদারà§à¦—ওয়াতাইতাডেলাওয়েরসà§à¦²à§à¦¯à¦¾à¦­à¦¦à§‹à¦—à§à¦°à§€à¦¬à¦¡à¦¿à¦‚কাজারà§à¦®à¦¾à¦¡à§‹à¦—রিনিমà§à¦¨à¦¤à¦° সোরà§" + + "বিয়ানদà§à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦§à§à¦¯ ডাচজলা-ফনীডিউলাà¦à¦®à§à¦¬à§à¦à¦«à¦¿à¦•à¦ªà§à¦°à¦¾à¦šà§€à¦¨ মিশরীয়ইকাজà§à¦•à¦à¦²à¦¾à¦®à¦¾à¦‡à¦Ÿ" + + "মধà§à¦¯ ইংরেজিইওনà§à¦¡à§‹à¦«à§à¦¯à¦¾à¦™à§à¦—ফিলিপিনোফনমধà§à¦¯ ফরাসিপà§à¦°à¦¾à¦šà§€à¦¨ ফরাসিউতà§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼" + + " ফà§à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦¾à¦¨à¦ªà§‚রà§à¦¬ ফà§à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦«à§à¦°à¦¿à¦‰à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦—াগাগাউজগায়োবায়াগীজগিলবারà§à¦Ÿà¦¿à¦œà¦®à¦§à§à¦¯-" + + "উচà§à¦š জারà§à¦®à¦¾à¦¨à¦¿à¦ªà§à¦°à¦¾à¦šà§€à¦¨ উচà§à¦š জারà§à¦®à¦¾à¦¨à¦¿à¦—োনà§à¦¡à¦¿à¦—োরোনà§à¦¤à¦¾à¦²à§‹à¦—থিকগà§à¦°à§‡à¦¬à§‹à¦ªà§à¦°à¦¾à¦šà§€à¦¨ গà§" + + "রীকসà§à¦‡à¦¸ জারà§à¦®à¦¾à¦¨à¦—à§à¦¸à§€à¦—ওইচà§â€™à¦‡à¦¨à¦¹à¦¾à¦‡à¦¡à¦¾à¦¹à¦¾à¦“য়াইয়ানহিলিগà§à¦¯à¦¾à¦¯à¦¼à¦¨à§‹à¦¨à¦¹à¦¿à¦Ÿà§à¦Ÿà¦¿à¦Ÿà¦¹à§" + + "\u200cমোঙউচà§à¦š সোরà§à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦¹à§à¦ªà¦¾à¦‡à¦¬à¦¾à¦¨à¦‡à¦²à§‹à¦•à§‹à¦‡à¦™à§à¦—à§à¦¶à¦²à§‹à¦œà¦¬à¦¾à¦¨à¦—োমà§à¦¬à¦¾à¦®à¦¾à¦•à¦¾à¦®à§‡à¦œà§à¦¦à§‡à¦“ ফারà§à¦¸" + + "িজà§à¦¦à§‡à¦“ আরবিকারা-কালà§à¦ªà¦¾à¦•à¦•à¦¾à¦¬à¦¾à¦‡à¦²à§‡à¦•à¦¾à¦šà¦¿à¦¨à¦…জà§à¦œà§à¦•à¦¾à¦®à§à¦¬à¦¾à¦•à¦¾à¦‰à¦‡à¦•à¦¾à¦¬à¦¾à¦°à§à¦¡à¦¿à¦¯à¦¼à¦¾à¦¨à¦Ÿà¦¾à¦‡à¦¯à¦¼à¦¾à¦ªà¦®" + + "াকোনà§à¦¦à§‡à¦•à¦¾à¦¬à§à¦­à¦¾à¦°à¦¦à¦¿à¦¯à¦¼à¦¾à¦¨à§à¦•à§‹à¦°à§‹à¦–াশিখোটানিজকোয়রা চীনিকালেনজিনকিমà§à¦¬à§à¦¨à§à¦¦à§à¦•à¦®à¦¿-প" + + "ারমিআককোঙà§à¦•à¦¾à¦¨à¦¿à¦•à§‹à¦¸à§à¦°à¦¾à¦‡à¦¨à¦•à§\u200cপেলà§à¦²à§‡à¦•à¦¾à¦°à¦šà§‡-বালà§à¦•à¦¾à¦°à¦•à¦¾à¦°à§‡à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦•à§à¦°à§à¦–শামà§à¦¬à¦¾" + + "লাবাফিয়াকà§à¦®à¦¿à¦•à¦•à§à¦Ÿà§‡à¦¨à¦¾à¦‡à¦²à¦¾à¦¡à¦¿à¦¨à§‹à¦²à¦¾à¦™à§à¦—িলানà§à¦¡à¦¾à¦²à¦¾à¦®à§à¦¬à¦¾à¦²à§‡à¦œà¦˜à¦¿à¦¯à¦¼à¦¾à¦¨à¦²à¦¾à¦•à§‹à¦Ÿà¦¾à¦®à§‹à¦™à§à¦—োলোজি" + + "উতà§à¦¤à¦° লà§à¦°à¦¿à¦²à§à¦¬à¦¾-লà§à¦²à§à¦¯à¦¼à¦¾à¦²à§à¦‡à¦¸à§‡à¦¨à§‹à¦²à§à¦¨à§à¦¡à¦¾à¦²à§à¦¯à¦¼à§‹à¦²à§à¦¶à¦¾à¦‡à¦²à§à¦‡à¦¯à¦¼à¦¾à¦®à¦¾à¦¦à§à¦°à§‡à¦¸à§‡à¦®à¦¾à¦—াহিমৈথিল" + + "িমà§à¦¯à¦¾à¦•à¦¾à¦¸à¦¾à¦°à¦®à§à¦¯à¦¾à¦¨à§à¦¡à¦¿à¦™à§à¦—োমাসাইমোকশামà§à¦¯à¦¾à¦£à§à¦¡à¦¾à¦°à¦®à§‡à¦¨à§à¦¡à§‡à¦®à§‡à¦°à§à¦®à¦°à¦¿à¦¸à¦¿à¦¯à¦¼à¦¾à¦¨à¦®à¦§à§à¦¯ আইরিশ" + + "মাখà§à¦¯à¦¼à¦¾-মেতà§à¦¤à§‹à¦®à§‡à¦Ÿà¦¾à¦®à¦¿à¦•à¦®à§à¦¯à¦¾à¦•à¦®à¦¿à¦¨à¦¾à¦™à§à¦—à§\u200cকাবাউমাঞà§à¦šà§à¦®à¦£à¦¿à¦ªà§à¦°à§€à¦®à§‹à¦¹à¦¾à¦“কমসিমà§à¦¦" + + "াঙà§à¦—বহà§à¦—à§à¦£à¦¿à¦¤à¦• ভাষাসমূহকà§à¦°à¦¿à¦•à¦®à¦¿à¦°à¦¾à¦¨à§à¦¡à¦¿à¦œà¦®à¦¾à¦°à§‹à¦¯à¦¼à¦¾à¦°à¦¿à¦à¦°à¦œà¦¿à¦¯à¦¼à¦¾à¦®à¦¾à¦œà¦¾à¦¨à¦¦à§‡à¦°à¦¾à¦¨à¦¿à¦¨à§‡à¦¯à¦¼à¦¾à¦ªà§‹" + + "লিটাননামানিমà§à¦¨ জারà§à¦®à¦¾à¦¨à¦¿à¦¨à§‡à¦“য়ারিনিয়াসনিউয়ানকোয়াসিওনোগাইপà§à¦°à¦¾à¦šà§€à¦¨ নরà§à¦¸à¦" + + "ন’কোউতà§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সোথোনà§à¦¯à¦¼à¦¾à¦°à¦ªà§à¦°à¦¾à¦šà§€à¦¨ নেওয়ারীনà§à¦¯à¦¾à¦¯à¦¼à¦¾à¦®à¦“য়েজিনà§à¦¯à¦¾à¦¯à¦¼à¦¾à¦™à§à¦•à§‹à¦²" + + "েনà§à¦¯à§‹à¦°à§‹à¦à¦¨à§.জিমাওসেজঅটোমান তà§à¦°à§à¦•à¦¿à¦ªà¦¾à¦™à§à¦—াসিনানপাহà§à¦²à¦¾à¦­à¦¿à¦ªà¦¾à¦®à§à¦ªà¦¾à¦™à§à¦—াপাপিয়ামে" + + "নà§à¦Ÿà§‹à¦ªà¦¾à¦²à¦¾à¦¯à¦¼à§à¦¯à¦¼à¦¾à¦¨à¦ªà§à¦°à¦¾à¦šà§€à¦¨ ফারà§à¦¸à¦¿à¦«à§‹à¦¨à¦¿à¦¶à§€à¦¯à¦¼à¦¾à¦¨à¦ªà§‹à¦¹à§à¦¨à¦ªà§‡à¦‡à¦¯à¦¼à¦¾à¦¨à¦ªà§à¦°à¦¾à¦šà§€à¦¨ পà§à¦°à§‹à¦­à§‡à¦¨à¦¸à¦¾à¦²à¦•" + + "ি‘চেরাজসà§à¦¥à¦¾à¦¨à§€à¦°à¦¾à¦ªà¦¾à¦¨à§à¦‡à¦°à¦¾à¦°à§‹à¦Ÿà§‹à¦‚গানরমà§à¦¬à§‹à¦°à§‹à¦®à¦¾à¦¨à¦¿à¦†à¦°à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦°à¦¾à¦“য়াসà§à¦¯à¦¾à¦¨à§à¦¡à¦¾à¦“য়েই" + + "য়াকà§à¦Ÿà¦¸à¦¾à¦®à¦¾à¦°à¦¿à¦Ÿà¦¾à¦¨ আরামিকসামবà§à¦°à§à¦¸à¦¾à¦¸à¦¾à¦•à¦¸à¦¾à¦à¦“তালিসাঙà§à¦—à§à¦¸à¦¿à¦¸à¦¿à¦²à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸à§à¦•à¦Ÿà¦¸à¦¦à¦•à§à¦·à¦¿à¦£ " + + "কà§à¦°à§à¦¦à¦¿à¦¶à¦¸à§‡à¦¨à¦¾à¦¸à§‡à¦²à§à¦•à§à¦ªà¦•à§‹à¦¯à¦¼à¦°à¦¾à¦¬à§‡à¦¨à§‹ সেনà§à¦¨à§€à¦ªà§à¦°à¦¾à¦šà§€à¦¨ আইরিশতাচেলহিতশানসিডামোদকà§à¦·à¦¿" + + "ণাঞà§à¦šà¦²à§€à¦¯à¦¼ সামিলà§à¦²à§‡ সামিইনারি সামিসà§à¦•à§‹à¦²à§à¦Ÿ সামিসোনিঙà§à¦•à§‡à¦¸à§‹à¦—ডিয়ানসà§à¦°à¦¾à¦¨à¦¾à¦¨ " + + "টোঙà§à¦—োসেরেরসà§à¦•à§à¦®à¦¾à¦¸à§à¦¸à§à¦¸à§à¦®à§‡à¦°à§€à¦¯à¦¼à¦ªà§à¦°à¦¾à¦šà§€à¦¨ সিরিওসিরিয়াকটাইমà§à¦¨à§‡à¦¤à§‡à¦¸à§‹à¦¤à§‡à¦°à§‡à¦¨à§‹à¦¤à§‡à¦¤" + + "à§à¦®à¦Ÿà¦¾à¦‡à¦—à§à¦°à§‡à¦Ÿà¦¿à¦­à¦Ÿà§‹à¦•à§‡à¦²à¦¾à¦‰à¦•à§à¦²à¦¿à¦™à§à¦—নতà§à¦²à¦¿à¦™à§à¦—িটতামাশেকনায়াসা টোঙà§à¦—াটোক পিসিনসিমশ" + + "িয়ানতà§à¦®à§à¦¬à§à¦•à¦¾à¦Ÿà§à¦­à¦¾à¦²à§à¦¤à¦¾à¦¸à¦¾à¦“য়াকটà§à¦­à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¸à§‡à¦¨à§à¦Ÿà§à¦°à¦¾à¦² আটলাস তামাজিগাতউডমà§à¦°à§à¦Ÿ" + + "উগারিটিকউমà§à¦¬à§à¦¨à§à¦¦à§à¦®à§‚লভাইভোটিকভà§à¦žà§à¦œà§‹à¦“য়ালামোওয়ারেওয়াশোওয়ারà§à¦²à¦ªà¦¿à¦°à¦¿à¦•à¦¾à¦²à§à¦®" + + "ইকসোগাইয়াওইয়াপেসেজাপোটেকচিতà§à¦° ভাষাজেনাগাআদরà§à¦¶ মরকà§à¦•à§‹à¦¨ তামাজিগাতজà§à¦¨à¦¿à¦­" + + "াষাভিতà§à¦¤à¦¿à¦• বিষয়বসà§à¦¤à§ নেইজাজাআধà§à¦¨à¦¿à¦• আদরà§à¦¶ আরবীঅসà§à¦Ÿà§à¦°à¦¿à¦¯à¦¼à¦¾à¦¨ জারà§à¦®à¦¾à¦¨à¦¸à§à¦‡à¦¸ " + + "হাই জারà§à¦®à¦¾à¦¨à¦…সà§à¦Ÿà§à¦°à§‡à¦²à§€à¦¯à¦¼ ইংরেজিকানাডীয় ইংরেজিবà§à¦°à¦¿à¦Ÿà¦¿à¦¶ ইংরেজিআমেরিকার ইংর" + + "েজিলà§à¦¯à¦¾à¦Ÿà¦¿à¦¨ আমেরিকান সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦‡à¦‰à¦°à§‹à¦ªà§€à¦¯à¦¼ সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦®à§à¦¯à¦¾à¦•à§à¦¸à¦¿à¦•à¦¾à¦¨ সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶à¦•à¦¾" + + "নাডীয় ফরাসিসà§à¦‡à¦¸ ফরাসিলো সà§à¦¯à¦¾à¦•à§à¦¸à¦¨à¦«à§à¦²à§‡à¦®à¦¿à¦¶à¦¬à§à¦°à¦¾à¦œà¦¿à¦²à§‡à¦° পরà§à¦¤à§à¦—ীজইউরোপের পরà§à¦¤" + + "à§à¦—ীজমলদাভিয়সারà§à¦¬à§‹-কà§à¦°à§‹à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦•à¦™à§à¦—ো সোয়াহিলিসরলীকৃত চীনাà¦à¦¤à¦¿à¦¹à§à¦¯à¦¬à¦¾à¦¹à¦¿ চী" + + "না" + +var bnLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x002a, 0x0045, 0x0063, 0x006f, 0x0084, 0x009c, + 0x00a8, 0x00b7, 0x00c9, 0x00de, 0x00ff, 0x0111, 0x012f, 0x014a, + 0x015f, 0x0174, 0x0183, 0x0198, 0x01aa, 0x01c2, 0x01d7, 0x01e6, + 0x01f8, 0x0210, 0x021c, 0x0225, 0x024a, 0x0259, 0x026b, 0x027a, + 0x028f, 0x02a1, 0x02b3, 0x02c2, 0x02d1, 0x02e3, 0x0304, 0x031f, + 0x033a, 0x0349, 0x035b, 0x036d, 0x037c, 0x038e, 0x039d, 0x03ac, + 0x03d7, 0x03e6, 0x040b, 0x0429, 0x0444, 0x0459, 0x0471, 0x0480, + 0x0492, 0x04a4, 0x04bd, 0x04de, 0x04f9, 0x0517, 0x0532, 0x0544, + // Entry 40 - 7F + 0x0571, 0x0592, 0x05b3, 0x05c5, 0x05e7, 0x0602, 0x060b, 0x0632, + 0x0647, 0x0665, 0x0677, 0x068c, 0x06a7, 0x06b6, 0x06cb, 0x06ef, + 0x06fe, 0x0725, 0x0731, 0x074c, 0x0764, 0x0776, 0x078e, 0x07a3, + 0x07af, 0x07c1, 0x07d6, 0x07e5, 0x0812, 0x0824, 0x0845, 0x085d, + 0x0866, 0x0887, 0x08ac, 0x08c7, 0x08df, 0x08fa, 0x0909, 0x092d, + 0x094b, 0x0966, 0x0978, 0x0987, 0x099c, 0x09ab, 0x09ba, 0x09e5, + 0x09f7, 0x0a12, 0x0a1b, 0x0a58, 0x0a8f, 0x0aba, 0x0acc, 0x0ae7, + 0x0aff, 0x0b17, 0x0b26, 0x0b3b, 0x0b4d, 0x0b65, 0x0b71, 0x0b80, + // Entry 80 - BF + 0x0b92, 0x0baa, 0x0bbf, 0x0bd4, 0x0be6, 0x0bfe, 0x0c07, 0x0c34, + 0x0c49, 0x0c6d, 0x0c7f, 0x0cb3, 0x0cc5, 0x0cd7, 0x0cec, 0x0d0a, + 0x0d22, 0x0d2e, 0x0d40, 0x0d58, 0x0d70, 0x0d85, 0x0da4, 0x0dbc, + 0x0dce, 0x0de9, 0x0df8, 0x0e0a, 0x0e19, 0x0e22, 0x0e40, 0x0e5b, + 0x0e70, 0x0e85, 0x0e97, 0x0ea6, 0x0eb5, 0x0ed3, 0x0ee2, 0x0f00, + 0x0f0f, 0x0f27, 0x0f39, 0x0f57, 0x0f6c, 0x0f81, 0x0f90, 0x0f9c, + 0x0fb4, 0x0fc6, 0x0fdb, 0x0fe7, 0x0ff3, 0x1011, 0x1020, 0x1035, + 0x1044, 0x1044, 0x105f, 0x106b, 0x1077, 0x1098, 0x1098, 0x10a7, + // Entry C0 - FF + 0x10a7, 0x10c9, 0x10f1, 0x1106, 0x111b, 0x112d, 0x112d, 0x1142, + 0x1142, 0x115a, 0x115a, 0x115a, 0x1163, 0x1163, 0x117e, 0x117e, + 0x1193, 0x11a5, 0x11bd, 0x11bd, 0x11c9, 0x11c9, 0x11c9, 0x11c9, + 0x11d5, 0x11e7, 0x11e7, 0x11f3, 0x11f3, 0x11f3, 0x1218, 0x122d, + 0x123c, 0x1248, 0x1248, 0x1248, 0x125d, 0x125d, 0x125d, 0x126c, + 0x126c, 0x127b, 0x127b, 0x1293, 0x12a5, 0x12a5, 0x12b4, 0x12b4, + 0x12c6, 0x12db, 0x12db, 0x12ed, 0x1308, 0x1314, 0x1323, 0x1338, + 0x1344, 0x1350, 0x1372, 0x1381, 0x139c, 0x13ae, 0x13c3, 0x13eb, + // Entry 100 - 13F + 0x13fa, 0x13fa, 0x142b, 0x1449, 0x145b, 0x1476, 0x1485, 0x14a0, + 0x14b5, 0x14ca, 0x14d9, 0x14eb, 0x14fa, 0x152e, 0x152e, 0x1543, + 0x1559, 0x156c, 0x157b, 0x157b, 0x158a, 0x1596, 0x1596, 0x15c1, + 0x15d3, 0x15e8, 0x1607, 0x1607, 0x1619, 0x1619, 0x162e, 0x1646, + 0x1646, 0x164c, 0x164c, 0x1668, 0x168d, 0x168d, 0x16d3, 0x16fb, + 0x171c, 0x1722, 0x1734, 0x1734, 0x1743, 0x1752, 0x1752, 0x175b, + 0x1779, 0x1779, 0x17ab, 0x17e6, 0x17e6, 0x17f8, 0x1816, 0x1822, + 0x1834, 0x1859, 0x187b, 0x187b, 0x187b, 0x1887, 0x189f, 0x18ae, + // Entry 140 - 17F + 0x18ae, 0x18cf, 0x18cf, 0x18f6, 0x190b, 0x191d, 0x1948, 0x1948, + 0x1954, 0x1960, 0x1960, 0x196f, 0x1981, 0x1981, 0x1981, 0x1993, + 0x19a5, 0x19b7, 0x19d9, 0x19f5, 0x19f5, 0x1a17, 0x1a2c, 0x1a3b, + 0x1a4a, 0x1a5c, 0x1a68, 0x1a8c, 0x1a8c, 0x1aa1, 0x1ab9, 0x1ae3, + 0x1ae3, 0x1aef, 0x1aef, 0x1afb, 0x1b10, 0x1b2f, 0x1b2f, 0x1b2f, + 0x1b2f, 0x1b47, 0x1b65, 0x1b84, 0x1b9c, 0x1bb4, 0x1bcf, 0x1bf4, + 0x1bf4, 0x1bf4, 0x1c12, 0x1c21, 0x1c39, 0x1c4e, 0x1c4e, 0x1c5d, + 0x1c72, 0x1c84, 0x1c96, 0x1ca8, 0x1cba, 0x1cd5, 0x1cd5, 0x1cd5, + // Entry 180 - 1BF + 0x1cd5, 0x1ce7, 0x1ce7, 0x1cf9, 0x1d05, 0x1d21, 0x1d21, 0x1d43, + 0x1d58, 0x1d6a, 0x1d79, 0x1d88, 0x1d9a, 0x1d9a, 0x1d9a, 0x1db2, + 0x1db2, 0x1dc4, 0x1dd6, 0x1df1, 0x1e15, 0x1e24, 0x1e24, 0x1e33, + 0x1e4e, 0x1e60, 0x1e6c, 0x1e87, 0x1ea3, 0x1ecb, 0x1ed7, 0x1eef, + 0x1f19, 0x1f2b, 0x1f40, 0x1f52, 0x1f5b, 0x1f5b, 0x1f70, 0x1fa4, + 0x1fb3, 0x1fce, 0x1fe9, 0x1fe9, 0x1fe9, 0x1ffe, 0x201f, 0x201f, + 0x2043, 0x204f, 0x2077, 0x208f, 0x20a1, 0x20b6, 0x20b6, 0x20ce, + 0x20ce, 0x20dd, 0x20ff, 0x20ff, 0x210e, 0x2142, 0x2154, 0x2182, + // Entry 1C0 - 1FF + 0x21ac, 0x21d3, 0x21e5, 0x21fb, 0x2207, 0x222c, 0x224d, 0x2265, + 0x2283, 0x22aa, 0x22cb, 0x22cb, 0x22cb, 0x22cb, 0x22f3, 0x22f3, + 0x2311, 0x2311, 0x2311, 0x2335, 0x2335, 0x2369, 0x2378, 0x2378, + 0x2393, 0x23a8, 0x23c6, 0x23c6, 0x23c6, 0x23d5, 0x23e7, 0x23e7, + 0x23e7, 0x23e7, 0x2405, 0x2417, 0x243b, 0x2450, 0x247e, 0x2493, + 0x24a2, 0x24ba, 0x24ba, 0x24ba, 0x24cc, 0x24ea, 0x24f9, 0x24f9, + 0x2521, 0x2521, 0x252d, 0x252d, 0x2542, 0x2573, 0x2598, 0x2598, + 0x25b0, 0x25b9, 0x25b9, 0x25cb, 0x25cb, 0x25cb, 0x2602, 0x261b, + // Entry 200 - 23F + 0x2637, 0x2659, 0x2671, 0x268c, 0x26b4, 0x26c3, 0x26c3, 0x26c3, + 0x26d5, 0x26e1, 0x26f9, 0x26f9, 0x271e, 0x2736, 0x2736, 0x2736, + 0x274b, 0x2757, 0x2769, 0x2778, 0x278d, 0x2796, 0x27ab, 0x27ab, + 0x27c3, 0x27de, 0x27de, 0x27f3, 0x281b, 0x2834, 0x2834, 0x2834, + 0x2834, 0x284f, 0x284f, 0x2867, 0x2879, 0x2894, 0x28b2, 0x28f9, + 0x290e, 0x2926, 0x2941, 0x294a, 0x2953, 0x2953, 0x2953, 0x2953, + 0x2953, 0x2962, 0x2962, 0x2974, 0x2974, 0x298c, 0x299e, 0x29b0, + 0x29d1, 0x29d1, 0x29e6, 0x29e6, 0x29f2, 0x2a01, 0x2a19, 0x2a19, + // Entry 240 - 27F + 0x2a19, 0x2a19, 0x2a19, 0x2a2e, 0x2a4a, 0x2a4a, 0x2a5c, 0x2a9d, + 0x2aa9, 0x2af3, 0x2aff, 0x2b2e, 0x2b2e, 0x2b65, 0x2b91, 0x2bc5, + 0x2bf0, 0x2c18, 0x2c43, 0x2c8d, 0x2cc1, 0x2cfe, 0x2cfe, 0x2d26, + 0x2d42, 0x2d61, 0x2d76, 0x2daa, 0x2dd8, 0x2df0, 0x2e24, 0x2e4f, + 0x2e71, 0x2e9c, +} // Size: 1244 bytes + +var caLangStr string = "" + // Size: 4535 bytes + "àfarabkhazavèsticafrikaansàkanamhàricaragonèsàrabassamèsàvaraimaraazerba" + + "idjanèsbaixkirbielorúsbúlgarbislamabambarabengalítibetàbretóbosniàcatalà" + + "txetxèchamorrocorscreetxeceslau eclesiàstictxuvaixgal·lèsdanèsalemanydiv" + + "ehidzongkaewegrecanglèsesperantoespanyolestoniàbascpersafulfinèsfijiàfer" + + "oèsfrancèsfrisó occidentalirlandèsgaèlic escocèsgallecguaranígujaratiman" + + "xhaussahebreuhindihiri motucroathaitiàhongarèsarmenihererointerlinguaind" + + "onesiinterlingueigboyi sichuaninupiakidoislandèsitaliàinuktitutjaponèsja" + + "vanèsgeorgiàkongokikuiukuanyamakazakhgrenlandèskhmerkannadacoreàkanurica" + + "ixmirikurdkomicòrnickirguísllatíluxemburguèsgandalimburguèslingalalaosià" + + "lituàluba katangaletómalgaixmarshallèsmaorimacedonimalaiàlammongolmarath" + + "imalaimaltèsbirmànauruàndebele septentrionalnepalèsndonganeerlandèsnorue" + + "c nynorsknoruec bokmÃ¥lndebele meridionalnavahonyanjaoccitàojibwaoromoori" + + "yaossetapanjabipalipolonèspaixtuportuguèsquítxuaretoromànicrundiromanèsr" + + "usruandèssànscritsardsindhisami septentrionalsangosingalèseslovaceslovès" + + "amoàshonasomalialbanèsserbiswazisotho meridionalsundanèssuecsuahilitàmil" + + "telugutadjiktailandèstigrinyaturcmansetswanatongalèsturctsongatàtartahit" + + "iàuigurucraïnèsurdúuzbekvendavietnamitavolapükvalówòlofxosajiddischiorub" + + "azhuangxinèszuluatjehacoliadangmeadiguéafrihiliaghemainuaccadialabamaale" + + "utaalbanès gegaltaic meridionalanglès anticangikaarameuaraucàaraonaarapa" + + "hoarauacàrab egipciparellengua de signes americanaasturiàawadhibalutxiba" + + "linèsbavarèsbasabamunghomalabejabembabenabafutbadagabalutxi occidentalbh" + + "ojpuribicolbinikomblackfootbrajbrahuibodoakooseburiatbuguisekibilinmedum" + + "bacaddocaribcayugaatsamcebuàchigatxibtxatxagataichuukmaripidgin chinookc" + + "hoctawchipewyancherokeexeiennekurd soranicoptetàtar de Crimeacaixubidako" + + "tadarguàtaitadelawareslaveydogribdinkazarmadogribaix sòrabdoualaneerland" + + "ès mitjàdiolajuladazagaembuefikemiliàegipci anticekajukelamitaanglès mi" + + "tjàewondoextremenyfangfilipífonfrancès mitjàfrancès anticfrisó septentri" + + "onalfrisó orientalfriülàgagagaúsxinès gangayogbayagueezgilbertèsgilakial" + + "t alemany mitjàalt alemany anticconcani de Goagondigorontalogòticgrebogr" + + "ec anticalemany suíswayúgusígwichinhaidaxinès hakkahawaiàhindi de Fijihi" + + "ligainonhititahmongalt sòrabxinès xianghupaibanibibioilocàingúixcrioll a" + + "nglès de Jamaicalojbanngombamachamejudeopersajudeoàrabkarakalpakcabilenc" + + "katxinjjukambakawikabardíkanembutyapmakondecrioll capverdiàkenyangkoroka" + + "ingàkhasikhotanèskoyra chiinikakokalenjinkimbundukomi-permiackonkanikosr" + + "aeàkpellekaratxaikriocareliàkurukhshambalabafiacologniankúmikkutenailadí" + + "langipanjabi occidentallambalesguiàlígurlakotallombardmongoloziluri sept" + + "entrionalluba-lulualuisenyolundaluomizoluyiaxinès clàssiclazmadurèsmafam" + + "agahimaithilimakassarmandingamassaimabamordovià moksamandarmendemerumaur" + + "iciàgaèlic irlandès mitjàmakhuwa-mettometa’micmacminangkabaumanxúmanipur" + + "ímohawkmorémari occidentalmundangllengües vàriescreekmirandèsmarwarimye" + + "nemordovià erzamazanderanixinès min del sudnapolitànamabaix alemanynewar" + + "iniasniueàbissiongiemboonnogainòrdic anticnovialn’Kosotho septentrionaln" + + "uernewari clàssicnyamwesinyankolenyoronzemaosageturc otomàpangasipahlavi" + + "pampangapapiamentopalauàpicardalemany pennsilvaniàpersa anticalemany pal" + + "atífenicipiemontèsgrec pònticponapeàprovençal anticquitxérajasthanirapan" + + "uirarotongàromanyèsromboromaníaromanèsrwosandaweiacutarameu samaritàsamb" + + "urusasaksantalingambaysangusiciliàescocèssard sasserèskurd meridionalsen" + + "ecasenaselkupsonghai orientalirlandès antictaixelhitxanàrab txadiàsidamo" + + "sami meridionalsami lulesami d’Inarisami skoltsoninkesogdiàsrananserersa" + + "hosukumasusúsumericomoriàsiríac clàssicsiríacsilesiàtemnetesoterenatetun" + + "tigretivtokelauèstsakhurklingoniàtlingittalixamazictongatok pisintarokot" + + "simshiàtat meridionaltumbukatuvaluàtasawaqtuviniàamazic del Marroc centr" + + "aludmurtugaríticumbunduarrelvaivènetvepseflamenc occidentalvòticvunjowal" + + "serametowaraywashowarlpirixinès wucalmucmingreliàsogayaoyapeàyangbenyemb" + + "acantonèszapotecasímbols Blisszelandèszenagaamazic estàndard marroquízun" + + "isense contingut lingüísticzazaàrab estàndard modernalemany austríacalt " + + "alemany suísanglès australiàanglès canadencanglès britànicanglès americà" + + "espanyol hispanoamericàespanyol europeuespanyol de Mèxicfrancès canadenc" + + "francès suísbaix saxóflamencportuguès del Brasilportuguès de Portugalmol" + + "dauserbocroatsuahili del Congoxinès simplificatxinès tradicional" + +var caLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x000b, 0x0013, 0x001c, 0x0021, 0x0029, 0x0032, + 0x0037, 0x003f, 0x0044, 0x004a, 0x0058, 0x005f, 0x0068, 0x006f, + 0x0076, 0x007d, 0x0085, 0x008c, 0x0092, 0x0099, 0x00a0, 0x00a7, + 0x00af, 0x00b3, 0x00b7, 0x00bb, 0x00cd, 0x00d4, 0x00dd, 0x00e3, + 0x00ea, 0x00f0, 0x00f7, 0x00fa, 0x00fe, 0x0105, 0x010e, 0x0116, + 0x011e, 0x0122, 0x0127, 0x012a, 0x0130, 0x0136, 0x013d, 0x0145, + 0x0156, 0x015f, 0x016f, 0x0175, 0x017d, 0x0185, 0x0189, 0x018f, + 0x0195, 0x019a, 0x01a3, 0x01a8, 0x01af, 0x01b8, 0x01be, 0x01c4, + // Entry 40 - 7F + 0x01cf, 0x01d7, 0x01e2, 0x01e6, 0x01f0, 0x01f7, 0x01fa, 0x0203, + 0x020a, 0x0213, 0x021b, 0x0223, 0x022b, 0x0230, 0x0236, 0x023e, + 0x0244, 0x024f, 0x0254, 0x025b, 0x0261, 0x0267, 0x026f, 0x0273, + 0x0277, 0x027e, 0x0286, 0x028c, 0x0299, 0x029e, 0x02a9, 0x02b0, + 0x02b7, 0x02bd, 0x02c9, 0x02ce, 0x02d5, 0x02e0, 0x02e5, 0x02ed, + 0x02f7, 0x02fd, 0x0304, 0x0309, 0x0310, 0x0316, 0x031d, 0x0332, + 0x033a, 0x0340, 0x034b, 0x0359, 0x0367, 0x0379, 0x037f, 0x0385, + 0x038c, 0x0392, 0x0397, 0x039c, 0x03a2, 0x03a9, 0x03ad, 0x03b5, + // Entry 80 - BF + 0x03bb, 0x03c5, 0x03cd, 0x03d9, 0x03de, 0x03e6, 0x03e9, 0x03f1, + 0x03fa, 0x03fe, 0x0404, 0x0416, 0x041b, 0x0424, 0x042b, 0x0432, + 0x0438, 0x043d, 0x0443, 0x044b, 0x0450, 0x0455, 0x0465, 0x046e, + 0x0472, 0x0479, 0x047f, 0x0485, 0x048b, 0x0495, 0x049d, 0x04a4, + 0x04ac, 0x04b5, 0x04b9, 0x04bf, 0x04c5, 0x04cd, 0x04d2, 0x04dc, + 0x04e1, 0x04e6, 0x04eb, 0x04f5, 0x04fd, 0x0502, 0x0508, 0x050c, + 0x0514, 0x051a, 0x0520, 0x0526, 0x052a, 0x052f, 0x0534, 0x053b, + 0x0542, 0x0542, 0x054a, 0x054f, 0x0553, 0x0559, 0x0560, 0x0566, + // Entry C0 - FF + 0x0572, 0x0583, 0x0590, 0x0596, 0x059c, 0x05a3, 0x05a9, 0x05b0, + 0x05b0, 0x05b6, 0x05b6, 0x05c2, 0x05c6, 0x05e1, 0x05e9, 0x05e9, + 0x05ef, 0x05f6, 0x05fe, 0x0606, 0x060a, 0x060f, 0x060f, 0x0616, + 0x061a, 0x061f, 0x061f, 0x0623, 0x0628, 0x062e, 0x0640, 0x0648, + 0x064d, 0x0651, 0x0651, 0x0654, 0x065d, 0x065d, 0x065d, 0x0661, + 0x0667, 0x066b, 0x0671, 0x0677, 0x067c, 0x0680, 0x0685, 0x068c, + 0x0691, 0x0696, 0x069c, 0x06a1, 0x06a7, 0x06ac, 0x06b3, 0x06bb, + 0x06c0, 0x06c4, 0x06d2, 0x06d9, 0x06e2, 0x06ea, 0x06f1, 0x06fc, + // Entry 100 - 13F + 0x0701, 0x0701, 0x0711, 0x0718, 0x071e, 0x0725, 0x072a, 0x0732, + 0x0738, 0x073e, 0x0743, 0x0748, 0x074d, 0x0758, 0x0758, 0x075e, + 0x0770, 0x0775, 0x0779, 0x077f, 0x0783, 0x0787, 0x078e, 0x079a, + 0x07a0, 0x07a7, 0x07b5, 0x07b5, 0x07bb, 0x07c4, 0x07c8, 0x07cf, + 0x07cf, 0x07d2, 0x07d2, 0x07e1, 0x07ef, 0x07ef, 0x0803, 0x0812, + 0x081a, 0x081c, 0x0823, 0x082d, 0x0831, 0x0836, 0x0836, 0x083b, + 0x0845, 0x084b, 0x085d, 0x086e, 0x087c, 0x0881, 0x088a, 0x0890, + 0x0895, 0x089f, 0x08ac, 0x08b1, 0x08b1, 0x08b6, 0x08bd, 0x08c2, + // Entry 140 - 17F + 0x08ce, 0x08d5, 0x08e2, 0x08ec, 0x08f2, 0x08f7, 0x0901, 0x090d, + 0x0911, 0x0915, 0x091b, 0x0921, 0x0928, 0x0928, 0x0941, 0x0947, + 0x094d, 0x0954, 0x095e, 0x0968, 0x0968, 0x0972, 0x097a, 0x0980, + 0x0983, 0x0988, 0x098c, 0x0994, 0x099b, 0x099f, 0x09a6, 0x09b7, + 0x09be, 0x09c2, 0x09c9, 0x09ce, 0x09d7, 0x09e3, 0x09e3, 0x09e3, + 0x09e7, 0x09ef, 0x09f7, 0x0a03, 0x0a0a, 0x0a12, 0x0a18, 0x0a20, + 0x0a24, 0x0a24, 0x0a2c, 0x0a32, 0x0a3a, 0x0a3f, 0x0a48, 0x0a4e, + 0x0a55, 0x0a5a, 0x0a5f, 0x0a71, 0x0a76, 0x0a7e, 0x0a7e, 0x0a84, + // Entry 180 - 1BF + 0x0a84, 0x0a8a, 0x0a92, 0x0a97, 0x0a9b, 0x0aad, 0x0aad, 0x0ab7, + 0x0abf, 0x0ac4, 0x0ac7, 0x0acb, 0x0ad0, 0x0adf, 0x0ae2, 0x0aea, + 0x0aee, 0x0af4, 0x0afc, 0x0b04, 0x0b0c, 0x0b12, 0x0b16, 0x0b25, + 0x0b2b, 0x0b30, 0x0b34, 0x0b3d, 0x0b55, 0x0b62, 0x0b69, 0x0b6f, + 0x0b7a, 0x0b80, 0x0b89, 0x0b8f, 0x0b94, 0x0ba3, 0x0baa, 0x0bbb, + 0x0bc0, 0x0bc9, 0x0bd0, 0x0bd0, 0x0bd5, 0x0be3, 0x0bee, 0x0c00, + 0x0c09, 0x0c0d, 0x0c19, 0x0c1f, 0x0c23, 0x0c29, 0x0c29, 0x0c2f, + 0x0c38, 0x0c3d, 0x0c4a, 0x0c50, 0x0c56, 0x0c69, 0x0c6d, 0x0c7c, + // Entry 1C0 - 1FF + 0x0c84, 0x0c8c, 0x0c91, 0x0c96, 0x0c9b, 0x0ca6, 0x0cad, 0x0cb4, + 0x0cbc, 0x0cc6, 0x0ccd, 0x0cd3, 0x0ce8, 0x0ce8, 0x0cf3, 0x0d02, + 0x0d08, 0x0d12, 0x0d1e, 0x0d26, 0x0d26, 0x0d36, 0x0d3d, 0x0d3d, + 0x0d47, 0x0d4e, 0x0d58, 0x0d61, 0x0d61, 0x0d66, 0x0d6d, 0x0d6d, + 0x0d6d, 0x0d6d, 0x0d76, 0x0d79, 0x0d80, 0x0d85, 0x0d95, 0x0d9c, + 0x0da1, 0x0da8, 0x0da8, 0x0daf, 0x0db4, 0x0dbc, 0x0dc4, 0x0dd2, + 0x0de1, 0x0de7, 0x0deb, 0x0deb, 0x0df1, 0x0e01, 0x0e10, 0x0e10, + 0x0e19, 0x0e1c, 0x0e29, 0x0e2f, 0x0e2f, 0x0e2f, 0x0e3e, 0x0e47, + // Entry 200 - 23F + 0x0e55, 0x0e5f, 0x0e66, 0x0e6d, 0x0e73, 0x0e78, 0x0e7c, 0x0e7c, + 0x0e82, 0x0e87, 0x0e8d, 0x0e95, 0x0ea5, 0x0eac, 0x0eb4, 0x0eb4, + 0x0eb9, 0x0ebd, 0x0ec3, 0x0ec8, 0x0ecd, 0x0ed0, 0x0eda, 0x0ee1, + 0x0eeb, 0x0ef2, 0x0ef7, 0x0efd, 0x0f02, 0x0f0b, 0x0f0b, 0x0f11, + 0x0f11, 0x0f1a, 0x0f28, 0x0f2f, 0x0f37, 0x0f3e, 0x0f46, 0x0f5f, + 0x0f65, 0x0f6e, 0x0f75, 0x0f7a, 0x0f7d, 0x0f83, 0x0f88, 0x0f9a, + 0x0f9a, 0x0fa0, 0x0fa0, 0x0fa5, 0x0fab, 0x0fb0, 0x0fb5, 0x0fba, + 0x0fc2, 0x0fcb, 0x0fd1, 0x0fdb, 0x0fdf, 0x0fe2, 0x0fe8, 0x0fef, + // Entry 240 - 27F + 0x0ff4, 0x0ff4, 0x0ffd, 0x1005, 0x1013, 0x101c, 0x1022, 0x103d, + 0x1041, 0x105d, 0x1061, 0x1078, 0x1078, 0x1089, 0x109a, 0x10ac, + 0x10bc, 0x10cd, 0x10dd, 0x10f5, 0x1105, 0x1117, 0x1117, 0x1128, + 0x1136, 0x1140, 0x1147, 0x115c, 0x1172, 0x1178, 0x1182, 0x1193, + 0x11a5, 0x11b7, +} // Size: 1244 bytes + +var csLangStr string = "" + // Size: 7315 bytes + "afarÅ¡tinaabcházÅ¡tinaavestánÅ¡tinaafrikánÅ¡tinaakanÅ¡tinaamharÅ¡tinaaragonÅ¡ti" + + "naarabÅ¡tinaásámÅ¡tinaavarÅ¡tinaajmarÅ¡tinaázerbájdžánÅ¡tinabaÅ¡kirÅ¡tinabÄ›loru" + + "Å¡tinabulharÅ¡tinabislamÅ¡tinabambarÅ¡tinabengálÅ¡tinatibetÅ¡tinabretonÅ¡tinab" + + "osenÅ¡tinakatalánÅ¡tinaÄeÄenÅ¡tinaÄamorokorsiÄtinakríjÅ¡tinaÄeÅ¡tinastaroslov" + + "Ä›nÅ¡tinaÄuvaÅ¡tinavelÅ¡tinadánÅ¡tinanÄ›mÄinamaledivÅ¡tinadzongkäeweÅ¡tinaÅ™eÄti" + + "naangliÄtinaesperantoÅ¡panÄ›lÅ¡tinaestonÅ¡tinabaskiÄtinaperÅ¡tinafulbÅ¡tinafin" + + "Å¡tinafidžijÅ¡tinafaerÅ¡tinafrancouzÅ¡tinafríštinairÅ¡tinaskotská gaelÅ¡tinag" + + "alicijÅ¡tinaguaranÅ¡tinagudžarátÅ¡tinamanÅ¡tinahauÅ¡tinahebrejÅ¡tinahindÅ¡tinah" + + "iri motuchorvatÅ¡tinahaitÅ¡tinamaÄarÅ¡tinaarménÅ¡tinahererÅ¡tinainterlinguain" + + "donéštinainterlingueigboÅ¡tinaiÅ¡tina (seÄuánská)inupiakÅ¡tinaidoislandÅ¡tin" + + "aitalÅ¡tinainuktitutÅ¡tinajaponÅ¡tinajavánÅ¡tinagruzínÅ¡tinakonžštinakikujÅ¡ti" + + "nakuaňamÅ¡tinakazaÅ¡tinagrónÅ¡tinakhmérÅ¡tinakannadÅ¡tinakorejÅ¡tinakanurikaÅ¡m" + + "írÅ¡tinakurdÅ¡tinakomijÅ¡tinakornÅ¡tinakyrgyzÅ¡tinalatinalucemburÅ¡tinagandÅ¡t" + + "inalimburÅ¡tinalingalÅ¡tinalaoÅ¡tinalitevÅ¡tinalubu-katanžštinalotyÅ¡tinamalg" + + "aÅ¡tinamaršálÅ¡tinamaorÅ¡tinamakedonÅ¡tinamalajálamÅ¡tinamongolÅ¡tinamaráthÅ¡ti" + + "namalajÅ¡tinamaltÅ¡tinabarmÅ¡tinanaurÅ¡tinandebele (Zimbabwe)nepálÅ¡tinandond" + + "Å¡tinanizozemÅ¡tinanorÅ¡tina (nynorsk)norÅ¡tina (bokmÃ¥l)ndebele (Jižní Afri" + + "ka)navažštinaňandžštinaokcitánÅ¡tinaodžibvejÅ¡tinaoromÅ¡tinaurijÅ¡tinaosetÅ¡t" + + "inapaňdžábÅ¡tinapálípolÅ¡tinapaÅ¡tÅ¡tinaportugalÅ¡tinakeÄuánÅ¡tinarétorománÅ¡ti" + + "nakirundÅ¡tinarumunÅ¡tinaruÅ¡tinakiňarwandÅ¡tinasanskrtsardÅ¡tinasindhÅ¡tinasá" + + "mÅ¡tina (severní)sangÅ¡tinasinhálÅ¡tinaslovenÅ¡tinaslovinÅ¡tinasamojÅ¡tinaÅ¡onÅ¡" + + "tinasomálÅ¡tinaalbánÅ¡tinasrbÅ¡tinasiswatÅ¡tinasotÅ¡tina (jižní)sundÅ¡tinaÅ¡véd" + + "Å¡tinasvahilÅ¡tinatamilÅ¡tinatelugÅ¡tinatádžiÄtinathajÅ¡tinatigrinijÅ¡tinatur" + + "kmenÅ¡tinasetswanÅ¡tinatongánÅ¡tinatureÄtinatsongatatarÅ¡tinatahitÅ¡tinaujgur" + + "Å¡tinaukrajinÅ¡tinaurdÅ¡tinauzbeÄtinavendavietnamÅ¡tinavolapükvalonÅ¡tinawol" + + "ofÅ¡tinaxhoÅ¡tinajidiÅ¡jorubÅ¡tinaÄuangÅ¡tinaÄínÅ¡tinazuluÅ¡tinaacehÅ¡tinaakolÅ¡t" + + "inaadangmeadygejÅ¡tinaarabÅ¡tina (tuniská)afrihiliaghemainÅ¡tinaakkadÅ¡tinaa" + + "labamÅ¡tinaaleutÅ¡tinaalbánÅ¡tina (Gheg)altajÅ¡tina (jižní)staroangliÄtinaan" + + "gikaaramejÅ¡tinaaraukánÅ¡tinaaraonÅ¡tinaarapažštinaarabÅ¡tina (alžírská)araw" + + "acké jazykyarabÅ¡tina (marocká)arabÅ¡tina (egyptská)asuznaková Å™eÄ (americ" + + "ká)asturÅ¡tinakotavaawadhÅ¡tinabalúÄÅ¡tinabalijÅ¡tinabavorÅ¡tinabasabamunbata" + + "k tobaghomalabedžabembÅ¡tinabatavÅ¡tinabenabafutbadagÅ¡tinabalúÄÅ¡tina (zápa" + + "dní)bhojpurÅ¡tinabikolÅ¡tinabinibandžarÅ¡tinakomsiksikabiÅ¡nuprijskomanipurÅ¡" + + "tinabachtijárÅ¡tinabradžštinabrahujÅ¡tinabodoÅ¡tinaakooseburjatÅ¡tinabugiÅ¡ti" + + "nabulublinÅ¡tinamedumbacaddokaribÅ¡tinakajugÅ¡tinaatsamcebuánÅ¡tinakigaÄibÄa" + + "ÄagatajÅ¡tinaÄukÅ¡tinamarijÅ¡tinaÄinuk pidžinÄoktÅ¡tinaÄipevajÅ¡tinaÄerokézÅ¡" + + "tinaÄejenÅ¡tinakurdÅ¡tina (sorání)koptÅ¡tinakapiznonÅ¡tinatureÄtina (krymská" + + ")kaÅ¡ubÅ¡tinadakotÅ¡tinadargÅ¡tinataitadelawarÅ¡tinaslejvÅ¡tina (athabaský jaz" + + "yk)dogribdinkÅ¡tinazarmÅ¡tinadogarÅ¡tinadolnolužická srbÅ¡tinakadazandusunÅ¡t" + + "inadualÅ¡tinaholandÅ¡tina (stÅ™edovÄ›ká)jola-fonyidjuladazagaembuefikÅ¡tinaem" + + "ilijÅ¡tinaegyptÅ¡tina staráekajukelamitÅ¡tinaangliÄtina (stÅ™edovÄ›ká)jupikÅ¡t" + + "ina (stÅ™edoaljaÅ¡ská)ewondoextremadurÅ¡tinafangfilipínÅ¡tinafinÅ¡tina (torne" + + "dalská)fonÅ¡tinafrancouzÅ¡tina (kajunská)francouzÅ¡tina (stÅ™edovÄ›ká)francou" + + "zÅ¡tina (stará)franko-provensálÅ¡tinafríština (severní)fríština (východní)" + + "furlanÅ¡tinagaÅ¡tinagagauzÅ¡tinaÄínÅ¡tina (dialekty Gan)gayogbajadaríjÅ¡tina " + + "(zoroastrijská)geezkiribatÅ¡tinagilaÄtinahornonÄ›mÄina (stÅ™edovÄ›ká)hornonÄ›" + + "mÄina (stará)konkánÅ¡tina (Goa)góndÅ¡tinagorontalogótÅ¡tinagrebostaroÅ™eÄtin" + + "anÄ›mÄina (Å výcarsko)wayúuÅ¡tinafrafragusiigwichʼinhaidÅ¡tinaÄínÅ¡tina (dial" + + "ekty Hakka)havajÅ¡tinahindÅ¡tina (Fidži)hiligajnonÅ¡tinachetitÅ¡tinahmongÅ¡ti" + + "nahornolužická srbÅ¡tinaÄínÅ¡tina (dialekty Xiang)hupaibanÅ¡tinaibibioiloká" + + "nÅ¡tinainguÅ¡tinaingrijÅ¡tinajamajská kreolÅ¡tinalojbanngombamaÅ¡amejudeoperÅ¡" + + "tinajudeoarabÅ¡tinajutÅ¡tinakarakalpaÄtinakabylÅ¡tinakaÄijÅ¡tinajjukambÅ¡tina" + + "kawikabardinÅ¡tinakanembutyapmakondekapverdÅ¡tinakenyangkorokaingangkhásíc" + + "hotánÅ¡tinakoyra chiinichovarÅ¡tinazazakÅ¡tinakakokalendžinkimbundÅ¡tinakomi" + + "-permjaÄtinakonkánÅ¡tinakosrajÅ¡tinakpellekaraÄajevo-balkarÅ¡tinakriokinara" + + "j-akarelÅ¡tinakuruchÅ¡tinaÅ¡ambalabafiakolínÅ¡tinakumyÄtinakutenajÅ¡tinaladin" + + "Å¡tinalangilahndÅ¡tinalambÅ¡tinalezginÅ¡tinalingua franca novaligurÅ¡tinaliv" + + "onÅ¡tinalakotÅ¡tinalombardÅ¡tinamongÅ¡tinalozÅ¡tinalúrÅ¡tina (severní)latgalÅ¡t" + + "inaluba-luluaÅ¡tinaluiseňolundÅ¡tinaluoÅ¡tinamizoÅ¡tinaluhjaÄínÅ¡tina (klasic" + + "ká)lazÅ¡tinamadurÅ¡tinamafamagahijÅ¡tinamaithiliÅ¡tinamakasarÅ¡tinamandingÅ¡ti" + + "namasajÅ¡tinamabamokÅ¡anÅ¡tinamandarmendemerumauricijská kreolÅ¡tinairÅ¡tina " + + "(stÅ™edovÄ›ká)makhuwa-meettometa’micmacminangkabaumandžuÅ¡tinamanipurÅ¡tinam" + + "ohawkÅ¡tinamosimarijÅ¡tina (západní)mundangsložené (víceřádkové) jazykykrí" + + "kÅ¡tinamirandÅ¡tinamárvárÅ¡tinamentavajÅ¡tinamyeneerzjanÅ¡tinamázandaránÅ¡tina" + + "ÄínÅ¡tina (dialekty Minnan)neapolÅ¡tinanamaÅ¡tinadolnonÄ›mÄinanévárÅ¡tinania" + + "sniueÅ¡tinaao (jazyky Nágálandu)kwasiongiemboonnogajÅ¡tinanorÅ¡tina histori" + + "ckánovialn’kosotÅ¡tina (severní)nuerÅ¡tinanewarÅ¡tina (klasická)ňamwežština" + + "ňankolÅ¡tinaňorÅ¡tinanzimaosagetureÄtina (osmanská)pangasinanÅ¡tinapahlavÅ¡" + + "tinapapangaupapiamentopalauÅ¡tinapicardÅ¡tinanÄ›mÄina (pensylvánská)nÄ›mÄina" + + " (plautdietsch)staroperÅ¡tinafalÄtinaféniÄtinapiemonÅ¡tinapontÅ¡tinapohnpei" + + "Å¡tinapruÅ¡tinaprovensálÅ¡tinakiÄékeÄuánÅ¡tina (chimborazo)rádžastánÅ¡tinara" + + "panujÅ¡tinararotongánÅ¡tinaromaňolÅ¡tinarífÅ¡tinaromboromÅ¡tinarotumanÅ¡tinaru" + + "sínÅ¡tinarovianÅ¡tinaarumunÅ¡tinarwasandawÅ¡tinajakutÅ¡tinasamarÅ¡tinasamburus" + + "asakÅ¡tinasantálÅ¡tinasaurášterÅ¡tinangambaysangoÅ¡tinasicilÅ¡tinaskotÅ¡tinasa" + + "ssarÅ¡tinakurdÅ¡tina (jižní)senecasenaseriÅ¡tinaselkupÅ¡tinakoyraboro sennii" + + "rÅ¡tina (stará)žemaitÅ¡tinatachelhitÅ¡anÅ¡tinaarabÅ¡tina (Äadská)sidamonÄ›mÄin" + + "a (slezská)selajarÅ¡tinasámÅ¡tina (jižní)sámÅ¡tina (lulejská)sámÅ¡tina (inar" + + "ijská)sámÅ¡tina (skoltská)sonikÅ¡tinasogdÅ¡tinasranan tongosererÅ¡tinasahofr" + + "íština (saterlandská)sukumasususumerÅ¡tinakomorÅ¡tinasyrÅ¡tina (klasická)s" + + "yrÅ¡tinaslezÅ¡tinatuluÅ¡tinatemnetesoterenotetumÅ¡tinatigrejÅ¡tinativÅ¡tinatok" + + "elauÅ¡tinacachurÅ¡tinaklingonÅ¡tinatlingittalyÅ¡tinatamaÅ¡ektonžština (nyasa)" + + "tok pisinturojÅ¡tinatarokotsakonÅ¡tinatsimÅ¡ijské jazykytatÅ¡tinatumbukÅ¡tina" + + "tuvalÅ¡tinatasawaqtuvinÅ¡tinatamazight (stÅ™ední Maroko)udmurtÅ¡tinaugaritÅ¡t" + + "inaumbundukoÅ™envaibenátÅ¡tinavepÅ¡tinavlámÅ¡tina (západní)nÄ›mÄina (mohansko" + + "-franské dialekty)votÅ¡tinavõruÅ¡tinavunjonÄ›mÄina (walser)wolajtÅ¡tinawaraj" + + "Å¡tinawaÅ¡tinawarlpiriÄínÅ¡tina (dialekty Wu)kalmyÄtinamingrelÅ¡tinasogÅ¡tin" + + "ajaoÅ¡tinajapÅ¡tinajangbenÅ¡tinayembanheengatukantonÅ¡tinazapotéÄtinabliss s" + + "ystémzélandÅ¡tinazenagatamazight (standardní marocký)zunijÅ¡tinažádný jazy" + + "kový obsahzazaarabÅ¡tina (moderní standardní)nÄ›mÄina standardní (Å výcarsk" + + "o)angliÄtina (USA)Å¡panÄ›lÅ¡tina (Evropa)dolnosaÅ¡tinavlámÅ¡tinaportugalÅ¡tina" + + " (Evropa)moldavÅ¡tinasrbochorvatÅ¡tinasvahilÅ¡tina (Kongo)ÄínÅ¡tina (zjednod" + + "uÅ¡ená)" + +var csLangIdx = []uint16{ // 609 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x0017, 0x0025, 0x0033, 0x003d, 0x0048, 0x0054, + 0x005e, 0x006a, 0x0074, 0x007f, 0x0094, 0x00a1, 0x00ae, 0x00ba, + 0x00c6, 0x00d2, 0x00df, 0x00ea, 0x00f6, 0x0101, 0x010f, 0x011c, + 0x0123, 0x012e, 0x0139, 0x0142, 0x0154, 0x015f, 0x0168, 0x0172, + 0x017b, 0x0188, 0x0190, 0x0199, 0x01a2, 0x01ad, 0x01b6, 0x01c4, + 0x01cf, 0x01da, 0x01e3, 0x01ed, 0x01f6, 0x0203, 0x020d, 0x021b, + 0x0225, 0x022d, 0x0240, 0x024d, 0x0259, 0x0269, 0x0272, 0x027b, + 0x0287, 0x0291, 0x029a, 0x02a7, 0x02b1, 0x02bd, 0x02c9, 0x02d4, + // Entry 40 - 7F + 0x02df, 0x02ec, 0x02f7, 0x0301, 0x0317, 0x0324, 0x0327, 0x0333, + 0x033d, 0x034c, 0x0357, 0x0363, 0x0370, 0x037b, 0x0386, 0x0393, + 0x039d, 0x03a8, 0x03b4, 0x03c0, 0x03cb, 0x03d1, 0x03df, 0x03e9, + 0x03f4, 0x03fe, 0x040a, 0x0410, 0x041e, 0x0428, 0x0434, 0x0440, + 0x0449, 0x0454, 0x0466, 0x0470, 0x047b, 0x0489, 0x0493, 0x04a0, + 0x04b0, 0x04bc, 0x04c9, 0x04d4, 0x04de, 0x04e8, 0x04f2, 0x0504, + 0x0510, 0x051b, 0x0528, 0x053b, 0x054e, 0x0566, 0x0572, 0x057f, + 0x058d, 0x059c, 0x05a6, 0x05b0, 0x05ba, 0x05ca, 0x05d0, 0x05d9, + // Entry 80 - BF + 0x05e4, 0x05f2, 0x0600, 0x0611, 0x061d, 0x0628, 0x0630, 0x0640, + 0x0647, 0x0651, 0x065c, 0x0671, 0x067b, 0x0688, 0x0694, 0x06a0, + 0x06ab, 0x06b5, 0x06c1, 0x06cd, 0x06d6, 0x06e2, 0x06f5, 0x06ff, + 0x070b, 0x0717, 0x0722, 0x072d, 0x073a, 0x0744, 0x0752, 0x075f, + 0x076c, 0x0779, 0x0783, 0x0789, 0x0794, 0x079f, 0x07aa, 0x07b7, + 0x07c0, 0x07ca, 0x07cf, 0x07dc, 0x07e4, 0x07ef, 0x07fa, 0x0803, + 0x0809, 0x0814, 0x0820, 0x082b, 0x0835, 0x083f, 0x0849, 0x0850, + 0x085c, 0x0871, 0x0879, 0x087e, 0x0887, 0x0892, 0x089e, 0x08a9, + // Entry C0 - FF + 0x08bc, 0x08d1, 0x08e1, 0x08e7, 0x08f3, 0x0901, 0x090c, 0x0919, + 0x0931, 0x0941, 0x0956, 0x096c, 0x096f, 0x0989, 0x0994, 0x099a, + 0x09a5, 0x09b2, 0x09bd, 0x09c8, 0x09cc, 0x09d1, 0x09db, 0x09e2, + 0x09e8, 0x09f2, 0x09fd, 0x0a01, 0x0a06, 0x0a11, 0x0a2a, 0x0a37, + 0x0a42, 0x0a46, 0x0a54, 0x0a57, 0x0a5e, 0x0a78, 0x0a88, 0x0a94, + 0x0aa0, 0x0aaa, 0x0ab0, 0x0abc, 0x0ac6, 0x0aca, 0x0ad4, 0x0adb, + 0x0ae0, 0x0aeb, 0x0af6, 0x0afb, 0x0b08, 0x0b0c, 0x0b13, 0x0b21, + 0x0b2b, 0x0b36, 0x0b44, 0x0b4f, 0x0b5d, 0x0b6c, 0x0b78, 0x0b8d, + // Entry 100 - 13F + 0x0b97, 0x0ba5, 0x0bba, 0x0bc6, 0x0bd1, 0x0bdb, 0x0be0, 0x0bed, + 0x0c0b, 0x0c11, 0x0c1b, 0x0c25, 0x0c30, 0x0c48, 0x0c5a, 0x0c64, + 0x0c80, 0x0c8a, 0x0c8f, 0x0c95, 0x0c99, 0x0ca3, 0x0caf, 0x0cc1, + 0x0cc7, 0x0cd3, 0x0cee, 0x0d0d, 0x0d13, 0x0d23, 0x0d27, 0x0d35, + 0x0d4d, 0x0d56, 0x0d70, 0x0d8e, 0x0da5, 0x0dbc, 0x0dd1, 0x0de8, + 0x0df4, 0x0dfc, 0x0e08, 0x0e22, 0x0e26, 0x0e2b, 0x0e48, 0x0e4c, + 0x0e59, 0x0e63, 0x0e81, 0x0e98, 0x0eab, 0x0eb6, 0x0ebf, 0x0ec9, + 0x0ece, 0x0edc, 0x0ef3, 0x0eff, 0x0f05, 0x0f0a, 0x0f13, 0x0f1d, + // Entry 140 - 17F + 0x0f39, 0x0f44, 0x0f57, 0x0f67, 0x0f73, 0x0f7e, 0x0f96, 0x0fb2, + 0x0fb6, 0x0fc0, 0x0fc6, 0x0fd3, 0x0fdd, 0x0fe9, 0x0ffe, 0x1004, + 0x100a, 0x1011, 0x101f, 0x102e, 0x1037, 0x1046, 0x1051, 0x105d, + 0x1060, 0x106a, 0x106e, 0x107c, 0x1083, 0x1087, 0x108e, 0x109b, + 0x10a2, 0x10a6, 0x10ae, 0x10b5, 0x10c2, 0x10ce, 0x10da, 0x10e5, + 0x10e9, 0x10f3, 0x1100, 0x1111, 0x111e, 0x112a, 0x1130, 0x1148, + 0x114c, 0x1155, 0x1160, 0x116c, 0x1174, 0x1179, 0x1185, 0x118f, + 0x119c, 0x11a7, 0x11ac, 0x11b7, 0x11c1, 0x11cd, 0x11df, 0x11ea, + // Entry 180 - 1BF + 0x11f5, 0x1200, 0x120d, 0x1217, 0x1220, 0x1235, 0x1241, 0x1251, + 0x1259, 0x1263, 0x126c, 0x1276, 0x127b, 0x1292, 0x129b, 0x12a6, + 0x12aa, 0x12b7, 0x12c5, 0x12d2, 0x12df, 0x12ea, 0x12ee, 0x12fb, + 0x1301, 0x1306, 0x130a, 0x1322, 0x133a, 0x1348, 0x134f, 0x1355, + 0x1360, 0x136d, 0x137a, 0x1386, 0x138a, 0x13a1, 0x13a8, 0x13ca, + 0x13d5, 0x13e1, 0x13ef, 0x13fd, 0x1402, 0x140e, 0x1420, 0x143d, + 0x1449, 0x1453, 0x1461, 0x146e, 0x1472, 0x147c, 0x1493, 0x1499, + 0x14a2, 0x14ad, 0x14c2, 0x14c8, 0x14ce, 0x14e2, 0x14ec, 0x1503, + // Entry 1C0 - 1FF + 0x1511, 0x151e, 0x1528, 0x152d, 0x1532, 0x1548, 0x1558, 0x1564, + 0x156c, 0x1576, 0x1581, 0x158d, 0x15a7, 0x15bf, 0x15cd, 0x15d6, + 0x15e1, 0x15ed, 0x15f7, 0x1604, 0x160d, 0x161d, 0x1623, 0x163e, + 0x1650, 0x165d, 0x166e, 0x167c, 0x1686, 0x168b, 0x1694, 0x16a1, + 0x16ad, 0x16b9, 0x16c5, 0x16c8, 0x16d4, 0x16df, 0x16ea, 0x16f1, + 0x16fc, 0x1709, 0x171a, 0x1721, 0x172c, 0x1737, 0x1741, 0x174d, + 0x1761, 0x1767, 0x176b, 0x1775, 0x1781, 0x1790, 0x17a1, 0x17ae, + 0x17b7, 0x17c1, 0x17d6, 0x17dc, 0x17f0, 0x17fd, 0x1811, 0x1827, + // Entry 200 - 23F + 0x183e, 0x1854, 0x185f, 0x1869, 0x1875, 0x1880, 0x1884, 0x189e, + 0x18a4, 0x18a8, 0x18b3, 0x18be, 0x18d3, 0x18dc, 0x18e6, 0x18f0, + 0x18f5, 0x18f9, 0x18ff, 0x190a, 0x1916, 0x191f, 0x192c, 0x1938, + 0x1945, 0x194c, 0x1956, 0x195e, 0x1971, 0x197a, 0x1985, 0x198b, + 0x1997, 0x19aa, 0x19b3, 0x19bf, 0x19ca, 0x19d1, 0x19dc, 0x19f8, + 0x1a04, 0x1a10, 0x1a17, 0x1a1d, 0x1a20, 0x1a2c, 0x1a35, 0x1a4c, + 0x1a72, 0x1a7b, 0x1a86, 0x1a8b, 0x1a9d, 0x1aa9, 0x1ab4, 0x1abc, + 0x1ac4, 0x1add, 0x1ae8, 0x1af5, 0x1afe, 0x1b07, 0x1b10, 0x1b1d, + // Entry 240 - 27F + 0x1b22, 0x1b2b, 0x1b37, 0x1b44, 0x1b51, 0x1b5e, 0x1b64, 0x1b84, + 0x1b8f, 0x1ba7, 0x1bab, 0x1bcc, 0x1bcc, 0x1bcc, 0x1bef, 0x1bef, + 0x1bef, 0x1bef, 0x1c00, 0x1c00, 0x1c17, 0x1c17, 0x1c17, 0x1c17, + 0x1c17, 0x1c24, 0x1c2f, 0x1c2f, 0x1c46, 0x1c52, 0x1c63, 0x1c77, + 0x1c93, +} // Size: 1242 bytes + +var daLangStr string = "" + // Size: 4022 bytes + "afarabkhasiskavestanafrikaansakanamhariskaragonesiskarabiskassamesiskava" + + "riskaymaraaserbajdsjanskbashkirhviderussiskbulgarskbislamabambarabengali" + + "tibetanskbretonskbosniskcatalansktjetjenskchamorrokorsikanskcreetjekkisk" + + "kirkeslaviskchuvashwalisiskdansktyskdivehidzongkhaewegræskengelskesperan" + + "tospanskestiskbaskiskpersiskfulahfinskfijianskfærøskfranskfrisiskirsksko" + + "tsk gæliskgaliciskguaranigujaratimanxhausahebraiskhindihirimotukroatiskh" + + "aitiskungarskarmenskhererointerlinguaindonesiskinterlingueigbosichuan yi" + + "inupiaqidoislandskitalienskinuktitutjapanskjavanesiskgeorgiskkongokikuyu" + + "kuanyamakasakhiskgrønlandskkhmerkannadakoreanskkanurikashmirikurdiskkomi" + + "corniskkirgisisklatinluxembourgskgandalimburgsklingalalaolitauiskluba-Ka" + + "tangalettiskmalagassiskmarshallesemaorimakedonskmalayalammongolskmarathi" + + "skmalajiskmaltesiskburmesisknaurunordndebelenepalesiskndongahollandsknyn" + + "orsknorsk bokmÃ¥lsydndebelenavajonyanjaoccitanskojibwaoromooriyaossetiskp" + + "unjabipalipolskpashtoportugisiskquechuarætoromanskrundirumænskrussiskkin" + + "yarwandasanskritsardinsksindhinordsamisksangosingalesiskslovakiskslovens" + + "ksamoanskshonasomaliskalbanskserbiskswatisydsothosundanesisksvenskswahil" + + "itamilsktelugutajikthaitigrinyaturkmensktswanatongansktyrkisktsongatatar" + + "isktahitianskuyguriskukrainskurduusbekiskvendavietnamesiskvolapykvallons" + + "kwolofxhosajiddischyorubazhuangkinesiskzuluachinesiskacoliadangmeadyghea" + + "frihiliaghemainuakkadiskaleutisksydaltaiskoldengelskangikaaramæiskmapuch" + + "earapahoarawakasuasturiskawadhibaluchibalinesiskbasabamunghomalabejabemb" + + "abenabafutvestbaluchibhojpuribikolbinikomsiksikabrajbodobakossiburiatisk" + + "buginesiskbulublinmedumbacaddocaribiskcayugaatsamcebuanochigachibchachag" + + "ataichuukesemarichinookchoctawchipewyancherokeecheyennesoranikoptiskkrim" + + " tyrkiskkasjubiskdakotadargwataitadelawareathapaskiskdogribdinkazarmadog" + + "rinedersorbiskdualamiddelhollandskjola-fonyidyuladazagakiembuefikoldegyp" + + "tiskekajukelamitiskmiddelengelskewondofangfilippinskfonmiddelfranskoldfr" + + "ansknordfrisiskøstfrisiskfriuliangagagauziskgayogbayageezgilbertesiskmid" + + "delhøjtyskoldhøjtyskgondigorontalogotiskgrebooldgræskschweizertyskgusiig" + + "wichinhaidahawaiianskhiligaynonhittitiskhmongøvresorbiskhupaibanibibioil" + + "okoingushlojbanngombamachamejødisk-persiskjødisk-arabiskkarakalpakiskkab" + + "yliskkachinjjukambakawikabardiankanembutyapmakondekapverdiskkorokhasikho" + + "tanesiskkoyra-chiinikakokalenjinkimbundukomi-permjakiskkonkanikosraeankp" + + "ellekaratjai-balkarkarelskkurukhshambalabafiakölschkymykkutenajladinolan" + + "gilahndalambalezghianlakotamongolozinordluriluba-Lulualuisenolundaluolus" + + "hailuyanamaduresemafamagahimaithilimakasarmandingomasaimabamokshamandarm" + + "endemerumorisyenmiddelirskmakhuwa-meettometamicmacminangkabaumanchumanip" + + "urimohawkmossimundangflere sprogcreekmirandesiskmarwarimyeneerzyamazenis" + + "kneapolitansknamanedertysknewariniasniueankwasiongiemboonnogaioldislands" + + "kn-konordsothonuerklassisk newarisknyamwezinyankolenyoro sprognzimaosage" + + "osmannisk-tyrkiskpangasinanpahlavipampangapapiamentopalauanskoldpersiskf" + + "ønikiskponapeoldprovencalskquichérajasthanirapanuirarotonganromboromani" + + "arumænskrwasandaweyakutsamaritansksamburusasaksantalingambaysangusicilia" + + "nskskotsksydkurdisksenecasenaselkupiskkoyraboro sennioldirsktachelhitsha" + + "ntchadisk-arabisksidamosydsamisklulesamiskenaresamiskskoltesamisksoninke" + + "sogdiansksranan tongoserersahosukumasususumeriskshimaoreklassisk syrisks" + + "yrisktemnetesoterenotetumtigretivitokelauklingontlingittamasheknyasa ton" + + "gansktok pisintarokotsimshisktumbukatuvalutasawaqtuviniancentralmarokkan" + + "sk tamazightudmurtugaristiskumbundurotvaivotiskvunjowalsertyskwalamowara" + + "ywashowalbirikalmyksogayaoyapeseyangbenyembakantonesiskzapotecblissymbol" + + "erzenagatamazightzuniintet sprogligt indholdzazamoderne standardarabisks" + + "ydaserbajdsjanskøstrigsk tyskschweizerhøjtyskaustralsk engelskcanadisk e" + + "ngelskbritisk engelskamerikansk engelsklatinamerikansk spanskeuropæisk s" + + "panskmexicansk spanskcanadisk franskschweizisk franskflamskbrasiliansk p" + + "ortugisiskeuropæisk portugisiskmoldoviskserbokroatiskcongolesisk swahili" + + "forenklet kinesisktraditionelt kinesisk" + +var daLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0029, 0x0034, + 0x003b, 0x0045, 0x004c, 0x0052, 0x0060, 0x0067, 0x0073, 0x007b, + 0x0082, 0x0089, 0x0090, 0x0099, 0x00a1, 0x00a8, 0x00b1, 0x00ba, + 0x00c2, 0x00cc, 0x00d0, 0x00d8, 0x00e4, 0x00eb, 0x00f3, 0x00f8, + 0x00fc, 0x0102, 0x010a, 0x010d, 0x0113, 0x011a, 0x0123, 0x0129, + 0x012f, 0x0136, 0x013d, 0x0142, 0x0147, 0x014f, 0x0157, 0x015d, + 0x0164, 0x0168, 0x0176, 0x017e, 0x0185, 0x018d, 0x0191, 0x0196, + 0x019e, 0x01a3, 0x01ab, 0x01b3, 0x01ba, 0x01c1, 0x01c8, 0x01ce, + // Entry 40 - 7F + 0x01d9, 0x01e3, 0x01ee, 0x01f2, 0x01fc, 0x0203, 0x0206, 0x020e, + 0x0217, 0x0220, 0x0227, 0x0231, 0x0239, 0x023e, 0x0244, 0x024c, + 0x0255, 0x0260, 0x0265, 0x026c, 0x0274, 0x027a, 0x0282, 0x0289, + 0x028d, 0x0294, 0x029d, 0x02a2, 0x02ae, 0x02b3, 0x02bc, 0x02c3, + 0x02c6, 0x02ce, 0x02da, 0x02e1, 0x02ec, 0x02f7, 0x02fc, 0x0305, + 0x030e, 0x0316, 0x031f, 0x0327, 0x0330, 0x0339, 0x033e, 0x0349, + 0x0353, 0x0359, 0x0362, 0x0369, 0x0376, 0x0380, 0x0386, 0x038c, + 0x0395, 0x039b, 0x03a0, 0x03a5, 0x03ad, 0x03b4, 0x03b8, 0x03bd, + // Entry 80 - BF + 0x03c3, 0x03ce, 0x03d5, 0x03e1, 0x03e6, 0x03ee, 0x03f5, 0x0400, + 0x0408, 0x0410, 0x0416, 0x0420, 0x0425, 0x0430, 0x0439, 0x0441, + 0x0449, 0x044e, 0x0456, 0x045d, 0x0464, 0x0469, 0x0471, 0x047c, + 0x0482, 0x0489, 0x0490, 0x0496, 0x049b, 0x049f, 0x04a7, 0x04b0, + 0x04b6, 0x04be, 0x04c5, 0x04cb, 0x04d3, 0x04dd, 0x04e5, 0x04ed, + 0x04f1, 0x04f9, 0x04fe, 0x050a, 0x0511, 0x0519, 0x051e, 0x0523, + 0x052b, 0x0531, 0x0537, 0x053f, 0x0543, 0x054d, 0x0552, 0x0559, + 0x055f, 0x055f, 0x0567, 0x056c, 0x0570, 0x0578, 0x0578, 0x0580, + // Entry C0 - FF + 0x0580, 0x058a, 0x0594, 0x059a, 0x05a3, 0x05aa, 0x05aa, 0x05b1, + 0x05b1, 0x05b7, 0x05b7, 0x05b7, 0x05ba, 0x05ba, 0x05c2, 0x05c2, + 0x05c8, 0x05cf, 0x05d9, 0x05d9, 0x05dd, 0x05e2, 0x05e2, 0x05e9, + 0x05ed, 0x05f2, 0x05f2, 0x05f6, 0x05fb, 0x05fb, 0x0606, 0x060e, + 0x0613, 0x0617, 0x0617, 0x061a, 0x0621, 0x0621, 0x0621, 0x0625, + 0x0625, 0x0629, 0x0630, 0x0639, 0x0643, 0x0647, 0x064b, 0x0652, + 0x0657, 0x065f, 0x0665, 0x066a, 0x0671, 0x0676, 0x067d, 0x0685, + 0x068d, 0x0691, 0x0698, 0x069f, 0x06a8, 0x06b0, 0x06b8, 0x06be, + // Entry 100 - 13F + 0x06c5, 0x06c5, 0x06d1, 0x06da, 0x06e0, 0x06e6, 0x06eb, 0x06f3, + 0x06fe, 0x0704, 0x0709, 0x070e, 0x0713, 0x071f, 0x071f, 0x0724, + 0x0733, 0x073d, 0x0742, 0x0748, 0x074e, 0x0752, 0x0752, 0x075d, + 0x0763, 0x076c, 0x0779, 0x0779, 0x077f, 0x077f, 0x0783, 0x078d, + 0x078d, 0x0790, 0x0790, 0x079c, 0x07a5, 0x07a5, 0x07b0, 0x07bb, + 0x07c3, 0x07c5, 0x07ce, 0x07ce, 0x07d2, 0x07d7, 0x07d7, 0x07db, + 0x07e7, 0x07e7, 0x07f5, 0x0800, 0x0800, 0x0805, 0x080e, 0x0814, + 0x0819, 0x0822, 0x082f, 0x082f, 0x082f, 0x0834, 0x083b, 0x0840, + // Entry 140 - 17F + 0x0840, 0x084a, 0x084a, 0x0854, 0x085d, 0x0862, 0x086e, 0x086e, + 0x0872, 0x0876, 0x087c, 0x0881, 0x0887, 0x0887, 0x0887, 0x088d, + 0x0893, 0x089a, 0x08a9, 0x08b8, 0x08b8, 0x08c5, 0x08cd, 0x08d3, + 0x08d6, 0x08db, 0x08df, 0x08e8, 0x08ef, 0x08f3, 0x08fa, 0x0904, + 0x0904, 0x0908, 0x0908, 0x090d, 0x0918, 0x0924, 0x0924, 0x0924, + 0x0928, 0x0930, 0x0938, 0x0947, 0x094e, 0x0956, 0x095c, 0x096b, + 0x096b, 0x096b, 0x0972, 0x0978, 0x0980, 0x0985, 0x098c, 0x0991, + 0x0998, 0x099e, 0x09a3, 0x09a9, 0x09ae, 0x09b6, 0x09b6, 0x09b6, + // Entry 180 - 1BF + 0x09b6, 0x09bc, 0x09bc, 0x09c1, 0x09c5, 0x09cd, 0x09cd, 0x09d7, + 0x09de, 0x09e3, 0x09e6, 0x09ec, 0x09f2, 0x09f2, 0x09f2, 0x09fa, + 0x09fe, 0x0a04, 0x0a0c, 0x0a13, 0x0a1b, 0x0a20, 0x0a24, 0x0a2a, + 0x0a30, 0x0a35, 0x0a39, 0x0a41, 0x0a4b, 0x0a59, 0x0a5d, 0x0a63, + 0x0a6e, 0x0a74, 0x0a7c, 0x0a82, 0x0a87, 0x0a87, 0x0a8e, 0x0a99, + 0x0a9e, 0x0aa9, 0x0ab0, 0x0ab0, 0x0ab5, 0x0aba, 0x0ac2, 0x0ac2, + 0x0ace, 0x0ad2, 0x0adb, 0x0ae1, 0x0ae5, 0x0aeb, 0x0aeb, 0x0af1, + 0x0afa, 0x0aff, 0x0b0a, 0x0b0a, 0x0b0e, 0x0b17, 0x0b1b, 0x0b2c, + // Entry 1C0 - 1FF + 0x0b34, 0x0b3c, 0x0b47, 0x0b4c, 0x0b51, 0x0b62, 0x0b6c, 0x0b73, + 0x0b7b, 0x0b85, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b98, 0x0b98, + 0x0ba1, 0x0ba1, 0x0ba1, 0x0ba7, 0x0ba7, 0x0bb5, 0x0bbc, 0x0bbc, + 0x0bc6, 0x0bcd, 0x0bd7, 0x0bd7, 0x0bd7, 0x0bdc, 0x0be2, 0x0be2, + 0x0be2, 0x0be2, 0x0beb, 0x0bee, 0x0bf5, 0x0bfa, 0x0c05, 0x0c0c, + 0x0c11, 0x0c18, 0x0c18, 0x0c1f, 0x0c24, 0x0c2e, 0x0c34, 0x0c34, + 0x0c3e, 0x0c44, 0x0c48, 0x0c48, 0x0c51, 0x0c60, 0x0c67, 0x0c67, + 0x0c70, 0x0c74, 0x0c84, 0x0c8a, 0x0c8a, 0x0c8a, 0x0c93, 0x0c9d, + // Entry 200 - 23F + 0x0ca8, 0x0cb4, 0x0cbb, 0x0cc4, 0x0cd0, 0x0cd5, 0x0cd9, 0x0cd9, + 0x0cdf, 0x0ce3, 0x0ceb, 0x0cf3, 0x0d02, 0x0d08, 0x0d08, 0x0d08, + 0x0d0d, 0x0d11, 0x0d17, 0x0d1c, 0x0d21, 0x0d25, 0x0d2c, 0x0d2c, + 0x0d33, 0x0d3a, 0x0d3a, 0x0d42, 0x0d50, 0x0d59, 0x0d59, 0x0d5f, + 0x0d5f, 0x0d68, 0x0d68, 0x0d6f, 0x0d75, 0x0d7c, 0x0d84, 0x0d9f, + 0x0da5, 0x0daf, 0x0db6, 0x0db9, 0x0dbc, 0x0dbc, 0x0dbc, 0x0dbc, + 0x0dbc, 0x0dc2, 0x0dc2, 0x0dc7, 0x0dd1, 0x0dd7, 0x0ddc, 0x0de1, + 0x0de8, 0x0de8, 0x0dee, 0x0dee, 0x0df2, 0x0df5, 0x0dfb, 0x0e02, + // Entry 240 - 27F + 0x0e07, 0x0e07, 0x0e12, 0x0e19, 0x0e25, 0x0e25, 0x0e2b, 0x0e34, + 0x0e38, 0x0e4f, 0x0e53, 0x0e6a, 0x0e7b, 0x0e89, 0x0e9a, 0x0eab, + 0x0ebb, 0x0eca, 0x0edc, 0x0ef2, 0x0f03, 0x0f13, 0x0f13, 0x0f22, + 0x0f33, 0x0f33, 0x0f39, 0x0f50, 0x0f66, 0x0f6f, 0x0f7c, 0x0f8f, + 0x0fa1, 0x0fb6, +} // Size: 1244 bytes + +var deLangStr string = "" + // Size: 6195 bytes + "AfarAbchasischAvestischAfrikaansAkanAmharischAragonesischArabischAssames" + + "ischAwarischAymaraAserbaidschanischBaschkirischWeißrussischBulgarischBis" + + "lamaBambaraBengalischTibetischBretonischBosnischKatalanischTschetschenis" + + "chChamorro-SpracheKorsischCreeTschechischKirchenslawischTschuwaschischWa" + + "lisischDänischDeutschMaledivischDzongkhaEweGriechischEnglischEsperantoSp" + + "anischEstnischBaskischPersischFulFinnischFidschiFäröischFranzösischWestf" + + "riesischIrischSchottisches GälischGalizischGuaraniGujaratiManxHaussaHebr" + + "äischHindiHiri-MotuKroatischHaiti-KreolischUngarischArmenischHerero-Spr" + + "acheInterlinguaIndonesischInterlingueIgboYiInupiakIdo-SpracheIsländischI" + + "talienischInuktitutJapanischJavanischGeorgischKongolesischKikuyuKwanyama" + + "KasachischGrönländischKhmerKannadaKoreanischKanuri-SpracheKaschmiriKurdi" + + "schKomi-SpracheKornischKirgisischLateinLuxemburgischGandaLimburgischLing" + + "alaLaotischLitauischLuba-KatangaLettischMadagassischMarschallesischMaori" + + "MazedonischMalayalamMongolischMarathiMalaiischMaltesischBirmanischNaurui" + + "schNord-NdebeleNepalesischNdongaNiederländischNorwegisch NynorskNorwegis" + + "ch BokmÃ¥lSüd-Ndebele-SpracheNavajoNyanja-SpracheOkzitanischOjibwa-Sprach" + + "eOromoOriyaOssetischPunjabiPaliPolnischPaschtuPortugiesischQuechuaRätoro" + + "manischRundiRumänischRussischKinyarwandaSanskritSardischSindhiNordsamisc" + + "hSangoSinghalesischSlowakischSlowenischSamoanischShonaSomaliAlbanischSer" + + "bischSwaziSüd-Sotho-SpracheSundanesischSchwedischSuaheliTamilTeluguTadsc" + + "hikischThailändischTigrinyaTurkmenischTswana-SpracheTongaischTürkischTso" + + "ngaTatarischTahitischUigurischUkrainischUrduUsbekischVenda-SpracheVietna" + + "mesischVolapükWallonischWolofXhosaJiddischYorubaZhuangChinesischZuluAceh" + + "-SpracheAcholi-SpracheAdangmeAdygeischTunesisches ArabischAfrihiliAghemA" + + "inu-SpracheAkkadischAlabamaAleutischGegischSüd-AltaischAltenglischAngika" + + "AramäischMapudungunAraonaArapaho-SpracheAlgerisches ArabischArawak-Sprac" + + "heMarokkanisches ArabischÄgyptisches ArabischPareAmerikanische Gebärdens" + + "pracheAsturianischKotavaAwadhiBelutschischBalinesischBairischBasaa-Sprac" + + "heBamunBatak TobaGhomalaBedauyeBembaBetawiBenaBafutBadagaWestliches Belu" + + "tschiBhodschpuriBikol-SpracheBini-SpracheBanjaresischKomBlackfoot-Sprach" + + "eBishnupriyaBachtiarischBraj-BhakhaBrahuiBodoAkooseBurjatischBuginesisch" + + "BuluBlinMedumbaCaddoKaribischCayugaAtsamCebuanoRukigaChibcha-SpracheTsch" + + "agataischTrukesischTscheremissischChinookChoctawChipewyanCherokeeCheyenn" + + "eZentralkurdischKoptischCapiznonKrimtatarischKaschubischDakota-SpracheDa" + + "rginischTaitaDelaware-SpracheSlaveDogribDinka-SpracheZarmaDogriNiedersor" + + "bischZentral-DusunDualaMittelniederländischDiolaDyula-SpracheDazagaEmbuE" + + "fikEmilianischÄgyptischEkajukElamischMittelenglischZentral-Alaska-YupikE" + + "wondoExtremadurischPangwe-SpracheFilipinoMeänkieliFon-SpracheCajunMittel" + + "französischAltfranzösischFrankoprovenzalischNordfriesischOstfriesischFri" + + "ulischGa-SpracheGagausischGanGayoGbaya-SpracheGabriGeezGilbertesischGila" + + "kiMittelhochdeutschAlthochdeutschGoa-KonkaniGondi-SpracheMongondouGotisc" + + "hGrebo-SpracheAltgriechischSchweizerdeutschWayúuFarefareGusiiKutchin-Spr" + + "acheHaida-SpracheHakkaHawaiischFidschi-HindiHiligaynon-SpracheHethitisch" + + "Miao-SpracheObersorbischXiangHupaIbanIbibioIlokano-SpracheInguschischIsc" + + "horischJamaikanisch-kreolische SpracheLojbanNgombaMachameJüdisch-Persisc" + + "hJüdisch-ArabischJütischKarakalpakischKabylischKachin-SpracheJjuKambaKaw" + + "iKabardinischKanembuTyapMakondeKabuverdianuKenyangKoroKaingangKhasi-Spra" + + "cheSakischKoyra ChiiniKhowarKirmanjkiKakoKalenjinKimbundu-SpracheKomi-Pe" + + "rmjakischKonkaniKosraeanischKpelle-SpracheKaratschaiisch-BalkarischKrioK" + + "inaray-aKarelischOraon-SpracheShambalaBafiaKölschKumükischKutenai-Sprach" + + "eLadinoLangiLahndaLamba-SpracheLesgischLingua Franca NovaLigurischLivisc" + + "hLakotaLombardischMongoRotse-SpracheNördliches LuriLettgallischLuba-Lulu" + + "aLuiseno-SpracheLunda-SpracheLuo-SpracheLushai-SpracheLuhyaKlassisches C" + + "hinesischLasischMaduresischMafaKhottaMaithiliMakassarischManding-Sprache" + + "MassaiMabaMokshaMandaresischMende-SpracheMeruMorisyenMittelirischMakhuwa" + + "-MeettoMeta’Micmac-SpracheMinangkabau-SpracheMandschurischMeithei-Sprach" + + "eMohawkMossi-SpracheBergmariMundangMehrsprachigMuskogee-SpracheMirandesi" + + "schMarwariMentawaiMyeneErsja-MordwinischMasanderanischMin NanNeapolitani" + + "schNamaNiederdeutschNewariNias-SpracheNiue-SpracheAo-NagaKwasioNgiemboon" + + "NogaiAltnordischNovialN’KoNord-Sotho-SpracheNuerAlt-NewariNyamwezi-Sprac" + + "heNyankoleNyoroNzimaOsage-SpracheOsmanischPangasinan-SpracheMittelpersis" + + "chPampanggan-SprachePapiamentoPalauPicardischPennsylvaniadeutschPlautdie" + + "tschAltpersischPfälzischPhönikischPiemontesischPontischPonapeanischAltpr" + + "eußischAltprovenzalischK’iche’Chimborazo Hochland-QuechuaRajasthaniOster" + + "insel-SpracheRarotonganischRomagnolTarifitRomboRomaniRotumanischRussinis" + + "chRovianaAromunischRwaSandawe-SpracheJakutischSamaritanischSamburuSasakS" + + "antaliSaurashtraNgambaySanguSizilianischSchottischSassarischSüdkurdischS" + + "enecaSenaSeriSelkupischKoyra SenniAltirischSamogitischTaschelhitSchan-Sp" + + "racheTschadisch-ArabischSidamoSchlesischSelayarSüdsamischLule-SamischIna" + + "ri-SamischSkolt-SamischSoninke-SpracheSogdischSrananischSerer-SpracheSah" + + "oSaterfriesischSukuma-SpracheSusuSumerischKomorischAltsyrischSyrischSchl" + + "esisch (Polen)TuluTemneTesoTereno-SpracheTetum-SpracheTigreTiv-SpracheTo" + + "kelauanischTsachurischKlingonischTlingit-SpracheTalischTamaseqTsonga-Spr" + + "acheNeumelanesischTuroyoTarokoTsakonischTsimshian-SpracheTatischTumbuka-" + + "SpracheElliceanischTasawaqTuwinischZentralatlas-TamazightUdmurtischUgari" + + "tischMbundu-SpracheRootVaiVenetischWepsischWestflämischMainfränkischWoti" + + "schVõroVunjoWalser-DialekteWalamo-SpracheWarayWasho-SpracheWarlpiriWuKal" + + "mückischMingrelischSogaYao-SpracheYapesischYangbenYembaNheengatuKantones" + + "ischZapotekischBliss-SymboleSeeländischZenagaTamazightZuni-SpracheKeine " + + "SprachinhalteZazaModernes HocharabischÖsterreichisches DeutschSchweizer " + + "HochdeutschAustralisches EnglischKanadisches EnglischBritisches Englisch" + + "Amerikanisches EnglischLateinamerikanisches SpanischEuropäisches Spanisc" + + "hMexikanisches SpanischKanadisches FranzösischSchweizer FranzösischNiede" + + "rsächsischFlämischBrasilianisches PortugiesischEuropäisches Portugiesisc" + + "hMoldauischSerbo-KroatischKongo-SuaheliChinesisch (vereinfacht)Chinesisc" + + "h (traditionell)" + +var deLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, + 0x0041, 0x004c, 0x0054, 0x005a, 0x006b, 0x0077, 0x0084, 0x008e, + 0x0095, 0x009c, 0x00a6, 0x00af, 0x00b9, 0x00c1, 0x00cc, 0x00db, + 0x00eb, 0x00f3, 0x00f7, 0x0102, 0x0111, 0x011f, 0x0128, 0x0130, + 0x0137, 0x0142, 0x014a, 0x014d, 0x0157, 0x015f, 0x0168, 0x0170, + 0x0178, 0x0180, 0x0188, 0x018b, 0x0193, 0x019a, 0x01a4, 0x01b0, + 0x01bd, 0x01c3, 0x01d8, 0x01e1, 0x01e8, 0x01f0, 0x01f4, 0x01fa, + 0x0204, 0x0209, 0x0212, 0x021b, 0x022a, 0x0233, 0x023c, 0x024a, + // Entry 40 - 7F + 0x0255, 0x0260, 0x026b, 0x026f, 0x0271, 0x0278, 0x0283, 0x028e, + 0x0299, 0x02a2, 0x02ab, 0x02b4, 0x02bd, 0x02c9, 0x02cf, 0x02d7, + 0x02e1, 0x02ef, 0x02f4, 0x02fb, 0x0305, 0x0313, 0x031c, 0x0324, + 0x0330, 0x0338, 0x0342, 0x0348, 0x0355, 0x035a, 0x0365, 0x036c, + 0x0374, 0x037d, 0x0389, 0x0391, 0x039d, 0x03ac, 0x03b1, 0x03bc, + 0x03c5, 0x03cf, 0x03d6, 0x03df, 0x03e9, 0x03f3, 0x03fc, 0x0408, + 0x0413, 0x0419, 0x0428, 0x043a, 0x044c, 0x0460, 0x0466, 0x0474, + 0x047f, 0x048d, 0x0492, 0x0497, 0x04a0, 0x04a7, 0x04ab, 0x04b3, + // Entry 80 - BF + 0x04ba, 0x04c7, 0x04ce, 0x04dc, 0x04e1, 0x04eb, 0x04f3, 0x04fe, + 0x0506, 0x050e, 0x0514, 0x051f, 0x0524, 0x0531, 0x053b, 0x0545, + 0x054f, 0x0554, 0x055a, 0x0563, 0x056b, 0x0570, 0x0582, 0x058e, + 0x0598, 0x059f, 0x05a4, 0x05aa, 0x05b6, 0x05c3, 0x05cb, 0x05d6, + 0x05e4, 0x05ed, 0x05f6, 0x05fc, 0x0605, 0x060e, 0x0617, 0x0621, + 0x0625, 0x062e, 0x063b, 0x0648, 0x0650, 0x065a, 0x065f, 0x0664, + 0x066c, 0x0672, 0x0678, 0x0682, 0x0686, 0x0692, 0x06a0, 0x06a7, + 0x06b0, 0x06c4, 0x06cc, 0x06d1, 0x06dd, 0x06e6, 0x06ed, 0x06f6, + // Entry C0 - FF + 0x06fd, 0x070a, 0x0715, 0x071b, 0x0725, 0x072f, 0x0735, 0x0744, + 0x0758, 0x0766, 0x077d, 0x0792, 0x0796, 0x07b4, 0x07c0, 0x07c6, + 0x07cc, 0x07d8, 0x07e3, 0x07eb, 0x07f8, 0x07fd, 0x0807, 0x080e, + 0x0815, 0x081a, 0x0820, 0x0824, 0x0829, 0x082f, 0x0843, 0x084e, + 0x085b, 0x0867, 0x0873, 0x0876, 0x0887, 0x0892, 0x089e, 0x08a9, + 0x08af, 0x08b3, 0x08b9, 0x08c3, 0x08ce, 0x08d2, 0x08d6, 0x08dd, + 0x08e2, 0x08eb, 0x08f1, 0x08f6, 0x08fd, 0x0903, 0x0912, 0x091f, + 0x0929, 0x0938, 0x093f, 0x0946, 0x094f, 0x0957, 0x095f, 0x096e, + // Entry 100 - 13F + 0x0976, 0x097e, 0x098b, 0x0996, 0x09a4, 0x09ae, 0x09b3, 0x09c3, + 0x09c8, 0x09ce, 0x09db, 0x09e0, 0x09e5, 0x09f3, 0x0a00, 0x0a05, + 0x0a1a, 0x0a1f, 0x0a2c, 0x0a32, 0x0a36, 0x0a3a, 0x0a45, 0x0a4f, + 0x0a55, 0x0a5d, 0x0a6b, 0x0a7f, 0x0a85, 0x0a93, 0x0aa1, 0x0aa9, + 0x0ab3, 0x0abe, 0x0ac3, 0x0ad5, 0x0ae4, 0x0af7, 0x0b04, 0x0b10, + 0x0b19, 0x0b23, 0x0b2d, 0x0b30, 0x0b34, 0x0b41, 0x0b46, 0x0b4a, + 0x0b57, 0x0b5d, 0x0b6e, 0x0b7c, 0x0b87, 0x0b94, 0x0b9d, 0x0ba4, + 0x0bb1, 0x0bbe, 0x0bce, 0x0bd4, 0x0bdc, 0x0be1, 0x0bf0, 0x0bfd, + // Entry 140 - 17F + 0x0c02, 0x0c0b, 0x0c18, 0x0c2a, 0x0c34, 0x0c40, 0x0c4c, 0x0c51, + 0x0c55, 0x0c59, 0x0c5f, 0x0c6e, 0x0c79, 0x0c83, 0x0ca2, 0x0ca8, + 0x0cae, 0x0cb5, 0x0cc6, 0x0cd7, 0x0cdf, 0x0ced, 0x0cf6, 0x0d04, + 0x0d07, 0x0d0c, 0x0d10, 0x0d1c, 0x0d23, 0x0d27, 0x0d2e, 0x0d3a, + 0x0d41, 0x0d45, 0x0d4d, 0x0d5a, 0x0d61, 0x0d6d, 0x0d73, 0x0d7c, + 0x0d80, 0x0d88, 0x0d98, 0x0da8, 0x0daf, 0x0dbb, 0x0dc9, 0x0de2, + 0x0de6, 0x0def, 0x0df8, 0x0e05, 0x0e0d, 0x0e12, 0x0e19, 0x0e23, + 0x0e32, 0x0e38, 0x0e3d, 0x0e43, 0x0e50, 0x0e58, 0x0e6a, 0x0e73, + // Entry 180 - 1BF + 0x0e7a, 0x0e80, 0x0e8b, 0x0e90, 0x0e9d, 0x0ead, 0x0eb9, 0x0ec3, + 0x0ed2, 0x0edf, 0x0eea, 0x0ef8, 0x0efd, 0x0f13, 0x0f1a, 0x0f25, + 0x0f29, 0x0f2f, 0x0f37, 0x0f43, 0x0f52, 0x0f58, 0x0f5c, 0x0f62, + 0x0f6e, 0x0f7b, 0x0f7f, 0x0f87, 0x0f93, 0x0fa1, 0x0fa8, 0x0fb6, + 0x0fc9, 0x0fd6, 0x0fe5, 0x0feb, 0x0ff8, 0x1000, 0x1007, 0x1013, + 0x1023, 0x102f, 0x1036, 0x103e, 0x1043, 0x1054, 0x1062, 0x1069, + 0x1077, 0x107b, 0x1088, 0x108e, 0x109a, 0x10a6, 0x10ad, 0x10b3, + 0x10bc, 0x10c1, 0x10cc, 0x10d2, 0x10d8, 0x10ea, 0x10ee, 0x10f8, + // Entry 1C0 - 1FF + 0x1108, 0x1110, 0x1115, 0x111a, 0x1127, 0x1130, 0x1142, 0x1150, + 0x1162, 0x116c, 0x1171, 0x117b, 0x118e, 0x119a, 0x11a5, 0x11af, + 0x11ba, 0x11c7, 0x11cf, 0x11db, 0x11e8, 0x11f8, 0x1203, 0x121e, + 0x1228, 0x123a, 0x1248, 0x1250, 0x1257, 0x125c, 0x1262, 0x126d, + 0x1277, 0x127e, 0x1288, 0x128b, 0x129a, 0x12a3, 0x12b0, 0x12b7, + 0x12bc, 0x12c3, 0x12cd, 0x12d4, 0x12d9, 0x12e5, 0x12ef, 0x12f9, + 0x1305, 0x130b, 0x130f, 0x1313, 0x131d, 0x1328, 0x1331, 0x133c, + 0x1346, 0x1353, 0x1366, 0x136c, 0x1376, 0x137d, 0x1388, 0x1394, + // Entry 200 - 23F + 0x13a1, 0x13ae, 0x13bd, 0x13c5, 0x13cf, 0x13dc, 0x13e0, 0x13ee, + 0x13fc, 0x1400, 0x1409, 0x1412, 0x141c, 0x1423, 0x1435, 0x1439, + 0x143e, 0x1442, 0x1450, 0x145d, 0x1462, 0x146d, 0x147a, 0x1485, + 0x1490, 0x149f, 0x14a6, 0x14ad, 0x14bb, 0x14c9, 0x14cf, 0x14d5, + 0x14df, 0x14f0, 0x14f7, 0x1506, 0x1512, 0x1519, 0x1522, 0x1538, + 0x1542, 0x154c, 0x155a, 0x155e, 0x1561, 0x156a, 0x1572, 0x157f, + 0x158d, 0x1594, 0x1599, 0x159e, 0x15ad, 0x15bb, 0x15c0, 0x15cd, + 0x15d5, 0x15d7, 0x15e3, 0x15ee, 0x15f2, 0x15fd, 0x1606, 0x160d, + // Entry 240 - 27F + 0x1612, 0x161b, 0x1627, 0x1632, 0x163f, 0x164b, 0x1651, 0x165a, + 0x1666, 0x1679, 0x167d, 0x1692, 0x1692, 0x16ab, 0x16c0, 0x16d6, + 0x16ea, 0x16fd, 0x1714, 0x1731, 0x1747, 0x175d, 0x175d, 0x1775, + 0x178b, 0x179b, 0x17a4, 0x17c1, 0x17dc, 0x17e6, 0x17f5, 0x1802, + 0x181a, 0x1833, +} // Size: 1244 bytes + +var elLangStr string = "" + // Size: 8953 bytes + "ΑφάÏΑμπχαζικάΑβεστάνΑφÏικάανςΑκάνΑμαÏικάΑÏαγκονικάΑÏαβικάΑσαμεζικάΆβαÏικ" + + "ΑϊμάÏαΑζεÏμπαϊτζανικάΜπασκίÏΛευκοÏωσικάΒουλγαÏικάΜπισλάμαΜπαμπάÏαΜπενγκ" + + "άλιΘιβετιανάΒÏετονικάΒοσνιακάΚαταλανικάΤσετσενικάΚαμόÏÏοΚοÏσικανικάΚÏιΤ" + + "σεχικάΕκκλησιαστικά ΣλαβικάΤσουβασικάΟυαλικάΔανικάΓεÏμανικάÎτιβέχιÎτζόν" + + "γκχαΓιΕλληνικάΑγγλικάΕσπεÏάντοΙσπανικάΕσθονικάΒασκικάΠεÏσικάΦουλάχΦινλα" + + "νδικάΦίτζιΦαÏόεΓαλλικάΔυτικά ΦÏιζιανάΙÏλανδικάΣκωτικά ΚελτικάΓαλικιανάΓ" + + "κουαÏανίΓκουγιαÏάτιΜανξΧάουσαΕβÏαϊκάΧίντιΧίÏι ΜότουΚÏοατικάΑϊτιανάΟυγγÏ" + + "ικάΑÏμενικάΧεÏέÏοΙντεÏλίνγκουαΙνδονησιακάΙντεÏλίνγκουεΊγκμποΣικουάν ΓιΙ" + + "νουπιάκΊντοΙσλανδικάΙταλικάΙνουκτιτοÏτΙαπωνικάΙαβανεζικάΓεωÏγιανάΚονγκό" + + "ΚικοÏγιουΚουανιγιάμαΚαζακικάΚαλαάλισουτΚαμποτζιανάΚανάνταΚοÏεατικάΚανοÏ" + + "ÏιΚασμίÏιΚουÏδικάΚόμιΚόÏνιςΚυÏγιζικάΛατινικάΛουξεμβουÏγιανάΓκάνταΛιμβου" + + "ÏγιανάΛινγκάλαΛαοθιανάΛιθουανικάΛοÏμπα-ΚατάνγκαΛετονικάΜαλαγάσιΜάÏσαλΜά" + + "οÏιΣλαβομακεδονικάΜαλαγιαλάμΜογγολικάΜαÏάθιΜαλάιΜαλτεζικάΒιÏμανικάÎαοÏÏ" + + "ουÎτεμπέλε ΒοÏÏάÎεπάλιÎτόνγκαΟλλανδικάÎοÏβηγικά ÎινόÏσκÎοÏβηγικά Μποκμά" + + "λÎτεμπέλε ÎότουÎάβαχοÎιάντζαΟκσιτανικάΟζιβίγουαΟÏόμοΟÏίγιαΟσετικάΠαντζα" + + "πικάΠάλιΠολωνικάΠάστοΠοÏτογαλικάΚετσοÏαΡομανικάΡοÏντιΡουμανικάΡωσικάΚιν" + + "ιαÏβάνταΣανσκÏιτικάΣαÏδινικάΣίντιΒόÏεια ΣάμιΣάνγκοΣινχαλεζικάΣλοβακικάΣ" + + "λοβενικάΣαμόανΣχόναΣομάλιΑλβανικάΣεÏβικάΣουάτιÎότια ΣόθοΣουνδανικάΣουηδ" + + "ικάΣουαχίλιΤαμίλΤελοÏγκουΤατζίκΤαϊλανδικάΤιγκÏίνυαΤουÏκμενικάΤσιγουάναΤ" + + "ονγκανικάΤουÏκικάΤσόνγκαΤατάÏΤαϊτιανάΟυιγουÏικάΟυκÏανικάΟυÏντοÏΟυζμπεκι" + + "κάΒένδαΒιετναμικάΒόλαπικΓουαλοÏνΓουόλοφΖόσαΓίντιςΓιοÏοÏμπαΖουάνγκΚινεζι" + + "κάΖουλοÏΑχινίζΑκολίΑντάνγκμεΑντιγκέαΑφÏιχίλιΑγκέμΑϊνοÏΑκάντιανΑλοÏÏ„Îότι" + + "α ΑλαταϊκάΠαλαιά ΑγγλικάΑνγκικάΑÏαμαϊκάΑÏουκάνιανΑÏάπαχοΑÏαγουάκΆσουΑστ" + + "ουÏιανάΑγουαντίΜπαλοÏτσιΜπαλινίζΜπάσαΜπαμοÏνΓκομάλαΜπέζαΜπέμπαΜπέναΜπαφ" + + "οÏτΔυτικά ΜπαλοχικάΜποζποÏÏιΜπικόλΜπίνιΚομΣικσίκαΜπÏατζΜπόντοΑκόσιΜπουÏ" + + "ιάτΜπουγκίζΜπουλοÏΜπλινΜεντοÏμπαΚάντοΚαÏίμπΚαγιοÏγκαΑτσάμΚεμπουάνοΤσίγκ" + + "αΤσίμπτσαΤσαγκατάιΤσουκίζιΜάÏιΙδιωματικά ΣινοÏκΤσοκτάουΤσίπιουανΤσεÏόκι" + + "ΣεγιένΚουÏδικά ΣοÏάνιΚοπτικάΤουÏκικά ΚÏιμαίαςΚασοÏμπιανÎτακόταÎτάÏγκουα" + + "ΤάιταÎτέλαγουεÏΣλαβικάÎτόγκÏιμπÎτίνκαΖάÏμαÎτόγκÏιΓλώσσα Κάτω ΛουσατίαςÎ" + + "τουάλαΜέσα ΟλλανδικάΤζόλα-ΦόνιÎτογιοÏλαÎταζάγκαΈμπουΕφίκΑÏχαία Αιγυπτια" + + "κάΕκατζοÏκΕλαμάιτΜέσα ΑγγλικάΕγουόντοΦανγκΦιλιππινεζικάΦονΜέσα ΓαλλικάΠ" + + "αλαιά ΓαλλικάΒόÏεια ΦÏιζιανάΑνατολικά ΦÏιζιανάΦÏιοÏλιανΓκαΓκαγκάουζΓκάγ" + + "ιοΓκμπάγιαΓκιζΓκιλμπεÏτίζΜέσα Άνω ΓεÏμανικάΠαλαιά Άνω ΓεÏμανικάΓκόντιΓκ" + + "οÏοντάλοΓοτθικάΓκÏίμποΑÏχαία ΕλληνικάΓεÏμανικά ΕλβετίαςΓκοÏσιΓκουίτσινΧ" + + "άινταΧαβανεζικάΧιλιγκαγιόνΧιτίτεΧμονγκΓλώσσα Άνω ΛουσατίαςΧοÏπαΙμπάνΙμπ" + + "ίμπιοΙλόκοΙνγκοÏςΛόζμπανÎγκόμπαΜάχαμεΙουδαϊκά-ΠεÏσικάΙουδαϊκά-ΑÏαβικάΚά" + + "Ïα-ΚαλπάκΚαμπίλεΚατσίνΤζουΚάμπαΚάουιΚαμπαÏντιανάΚανέμπουΤουάπΜακόντεΓλώ" + + "σσα του ΠÏάσινου ΑκÏωτηÏίουΚόÏοΚάσιΚοτανικάΚόιÏα ΤσίνιΚάκοΚαλεντζίνΚιμπ" + + "οÏντουΚόμι-ΠεÏμιάκΚονκάνιΚοσÏαενικάΚπέλεΚαÏατσάι-ΜπαλκάÏΚαÏελιακάΚουÏοÏ" + + "χΣάμπαλαΜπάφιαΚολωνικάΚουμγιοÏκΚουτενάιΛαδίνοΛάνγκιΛάχδαΛάμπαΛαζγκιάνΛα" + + "κόταΜόνγκοΛόζιΒόÏεια ΛοÏÏιΛοÏμπα-ΛουλοÏαΛουισένοΛοÏνταΛοÏοΛουσάιΛουχίαΜ" + + "αντουÏίζΜάφαΜαγκάχιΜαϊτχίλιΜακαζάÏΜαντίνγκοΜασάιΜάμπαΜόκσαΜανδάÏΜέντεΜε" + + "ÏοÏΜοÏίσιενΜέσα ΙÏλανδικάΜακοÏβα-ΜέτοΜετάΜικμάκΜινανγκαμπάουΜαντσοÏΜανι" + + "ποÏÏιΜοχόκΜόσιΜουντάνγκΠολλαπλές γλώσσεςΚÏικΜιÏαντεζικάΜαÏγουάÏιΜιένεΈÏ" + + "ζυαΜαζαντεÏάνιÎαπολιτανικάÎάμαΚάτω ΓεÏμανικάÎεγουάÏιÎίαςÎιοÏεανΚβάσιοÎγ" + + "κιεμποÏνÎογκάιΠαλαιά ÎοÏβηγικάÎ’ΚοΒόÏεια ΣόθοÎουέÏΚλασικά ÎεουάÏιÎιαμγο" + + "υέζιÎιανκόλεÎιόÏοÎζίμαΟσάζΟθωμανικά ΤουÏκικάΠανγκασινάνΠαχλάβιΠαμπάνγκα" + + "ΠαπιαμέντοΠαλάουανΑÏχαία ΠεÏσικάΦοινικικάΠοχπέιανΠαλαιά ΠÏοβενσιάλΚισέΡ" + + "αζασθάνιΡαπανοÏιΡαÏοτονγκάνΡόμποΡομανίΑÏομανικάΡουάΣαντάγουεΓιακοÏτΣαμα" + + "Ïίτικα ΑÏαμαϊκάΣαμποÏÏουΣασάκΣαντάλιÎγκαμπέιΣάνγκουΣικελιανάΣκωτικάÎότι" + + "α ΚουÏδικάΣένεκαΣέναΣελκοÏπΚοϊÏαμπόÏο ΣένιΠαλαιά ΙÏλανδικάΤασελχίτΣανΑÏ" + + "αβικά του ΤσαντΣιντάμοÎότια ΣάμιΛοÏλε ΣάμιΙνάÏι ΣάμιΣκολτ ΣάμιΣονίνκεΣο" + + "γκντιένΣÏÎ±Î½Î¬Ï Î¤ÏŒÎ½Î³ÎºÎ¿Î£ÎµÏέÏΣάχοΣουκοÏμαΣοÏσουΣουμεÏικάΚομόÏÏιαΚλασικά ΣυÏ" + + "ιακάΣυÏιακάΤίμνεΤέσοΤεÏένοΤέτουμΤίγκÏεΤιβΤοκελάουΚλίνγκονΤλίνγκιτΤαμασέ" + + "κÎιάσα ΤόνγκαΤοκ ΠισίνΤαÏόκοΤσίμσιανΤουμποÏκαΤουβαλοÏΤασαβάκΤουβίνιανΤα" + + "μαζίτ ΚεντÏÎ¹ÎºÎ¿Ï ÎœÎ±ÏόκοΟυντμοÏÏτΟυγκαÏίτικΟυμποÏντουΡουτΒάιΒότικΒοÏντζοΒ" + + "άλσεÏΓουάλαμοΓουάÏειΓουασόΓουαÏλπίÏιΚαλμίκΣόγκαΓιάοΓιαπίζΓιανγκμπένΓιέμ" + + "παΚαντονέζικαΖάποτεκΣÏμβολα BlissΖενάγκαΤυπικά Ταμαζίγκτ ΜαÏόκουΖοÏνιΧω" + + "Ïίς γλωσσολογικό πεÏιεχόμενοΖάζαΣÏγχÏονα Τυπικά ΑÏαβικάΓεÏμανικά ΑυστÏί" + + "αςΆνω ΓεÏμανικά ΕλβετίαςΑγγλικά ΑυστÏαλίαςΑγγλικά ΚαναδάΑγγλικά Ηνωμένο" + + "Ï… ΒασιλείουΑγγλικά ΑμεÏικήςΙσπανικά Λατινικής ΑμεÏικήςΙσπανικά ΕυÏώπηςΙ" + + "σπανικά ΜεξικοÏΓαλλικά ΚαναδάΓαλλικά ΕλβετίαςΚάτω ΓεÏμανικά ΟλλανδίαςΦλ" + + "αμανδικάΠοÏτογαλικά Î’ÏαζιλίαςΠοÏτογαλικά ΕυÏώπηςΜολδαβικάΣεÏβοκÏοατικάΚ" + + "ονγκό ΣουαχίλιΑπλοποιημένα ΚινεζικάΠαÏαδοσιακά Κινεζικά" + +var elLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0008, 0x001a, 0x0028, 0x003a, 0x0042, 0x0050, 0x0064, + 0x0072, 0x0084, 0x0090, 0x009c, 0x00ba, 0x00c8, 0x00de, 0x00f2, + 0x0102, 0x0112, 0x0124, 0x0136, 0x0148, 0x0158, 0x016c, 0x0180, + 0x018e, 0x01a4, 0x01aa, 0x01b8, 0x01e1, 0x01f5, 0x0203, 0x020f, + 0x0221, 0x022f, 0x0241, 0x0245, 0x0255, 0x0263, 0x0275, 0x0285, + 0x0295, 0x02a3, 0x02b1, 0x02bd, 0x02d1, 0x02db, 0x02e5, 0x02f3, + 0x0310, 0x0322, 0x033f, 0x0351, 0x0363, 0x0379, 0x0381, 0x038d, + 0x039b, 0x03a5, 0x03b8, 0x03c8, 0x03d6, 0x03e6, 0x03f6, 0x0402, + // Entry 40 - 7F + 0x041c, 0x0432, 0x044c, 0x0458, 0x046b, 0x047b, 0x0483, 0x0495, + 0x04a3, 0x04b9, 0x04c9, 0x04dd, 0x04ef, 0x04fb, 0x050d, 0x0523, + 0x0533, 0x0549, 0x055f, 0x056d, 0x057f, 0x058d, 0x059b, 0x05ab, + 0x05b3, 0x05bf, 0x05d1, 0x05e1, 0x05ff, 0x060b, 0x0623, 0x0633, + 0x0643, 0x0657, 0x0674, 0x0684, 0x0694, 0x06a0, 0x06aa, 0x06c8, + 0x06dc, 0x06ee, 0x06fa, 0x0704, 0x0716, 0x0728, 0x0736, 0x0751, + 0x075d, 0x076b, 0x077d, 0x079e, 0x07bf, 0x07da, 0x07e6, 0x07f4, + 0x0808, 0x081a, 0x0824, 0x0830, 0x083e, 0x0852, 0x085a, 0x086a, + // Entry 80 - BF + 0x0874, 0x088a, 0x0898, 0x08a8, 0x08b4, 0x08c6, 0x08d2, 0x08e8, + 0x08fe, 0x0910, 0x091a, 0x092f, 0x093b, 0x0951, 0x0963, 0x0975, + 0x0981, 0x098b, 0x0997, 0x09a7, 0x09b5, 0x09c1, 0x09d4, 0x09e8, + 0x09f8, 0x0a08, 0x0a12, 0x0a24, 0x0a30, 0x0a44, 0x0a56, 0x0a6c, + 0x0a7e, 0x0a92, 0x0aa2, 0x0ab0, 0x0aba, 0x0aca, 0x0ade, 0x0af0, + 0x0afe, 0x0b12, 0x0b1c, 0x0b30, 0x0b3e, 0x0b4e, 0x0b5c, 0x0b64, + 0x0b70, 0x0b82, 0x0b90, 0x0ba0, 0x0bac, 0x0bb8, 0x0bc2, 0x0bd4, + 0x0be4, 0x0be4, 0x0bf4, 0x0bfe, 0x0c08, 0x0c18, 0x0c18, 0x0c22, + // Entry C0 - FF + 0x0c22, 0x0c3d, 0x0c58, 0x0c66, 0x0c76, 0x0c8a, 0x0c8a, 0x0c98, + 0x0c98, 0x0ca8, 0x0ca8, 0x0ca8, 0x0cb0, 0x0cb0, 0x0cc4, 0x0cc4, + 0x0cd4, 0x0ce6, 0x0cf6, 0x0cf6, 0x0d00, 0x0d0e, 0x0d0e, 0x0d1c, + 0x0d26, 0x0d32, 0x0d32, 0x0d3c, 0x0d4a, 0x0d4a, 0x0d69, 0x0d7b, + 0x0d87, 0x0d91, 0x0d91, 0x0d97, 0x0da5, 0x0da5, 0x0da5, 0x0db1, + 0x0db1, 0x0dbd, 0x0dc7, 0x0dd7, 0x0de7, 0x0df5, 0x0dff, 0x0e11, + 0x0e1b, 0x0e27, 0x0e39, 0x0e43, 0x0e55, 0x0e61, 0x0e71, 0x0e83, + 0x0e93, 0x0e9b, 0x0ebc, 0x0ecc, 0x0ede, 0x0eec, 0x0ef8, 0x0f15, + // Entry 100 - 13F + 0x0f23, 0x0f23, 0x0f44, 0x0f58, 0x0f66, 0x0f78, 0x0f82, 0x0f96, + 0x0fa4, 0x0fb6, 0x0fc2, 0x0fcc, 0x0fda, 0x1002, 0x1002, 0x1010, + 0x102b, 0x103e, 0x1050, 0x1060, 0x106a, 0x1072, 0x1072, 0x1093, + 0x10a3, 0x10b1, 0x10c8, 0x10c8, 0x10d8, 0x10d8, 0x10e2, 0x10fc, + 0x10fc, 0x1102, 0x1102, 0x1119, 0x1134, 0x1134, 0x1151, 0x1174, + 0x1186, 0x118c, 0x119e, 0x119e, 0x11aa, 0x11ba, 0x11ba, 0x11c2, + 0x11d8, 0x11d8, 0x11fa, 0x1220, 0x1220, 0x122c, 0x1240, 0x124e, + 0x125c, 0x1279, 0x129c, 0x129c, 0x129c, 0x12a8, 0x12ba, 0x12c6, + // Entry 140 - 17F + 0x12c6, 0x12da, 0x12da, 0x12f0, 0x12fc, 0x1308, 0x132e, 0x132e, + 0x1338, 0x1342, 0x1352, 0x135c, 0x136a, 0x136a, 0x136a, 0x1378, + 0x1386, 0x1392, 0x13b1, 0x13d0, 0x13d0, 0x13e5, 0x13f3, 0x13ff, + 0x1407, 0x1411, 0x141b, 0x1433, 0x1443, 0x144d, 0x145b, 0x1494, + 0x1494, 0x149c, 0x149c, 0x14a4, 0x14b4, 0x14c9, 0x14c9, 0x14c9, + 0x14d1, 0x14e3, 0x14f7, 0x150e, 0x151c, 0x1530, 0x153a, 0x1559, + 0x1559, 0x1559, 0x156b, 0x1579, 0x1587, 0x1593, 0x15a3, 0x15b5, + 0x15c5, 0x15d1, 0x15dd, 0x15e7, 0x15f1, 0x1601, 0x1601, 0x1601, + // Entry 180 - 1BF + 0x1601, 0x160d, 0x160d, 0x1619, 0x1621, 0x1638, 0x1638, 0x1653, + 0x1663, 0x166f, 0x1677, 0x1683, 0x168f, 0x168f, 0x168f, 0x16a1, + 0x16a9, 0x16b7, 0x16c7, 0x16d5, 0x16e7, 0x16f1, 0x16fb, 0x1705, + 0x1711, 0x171b, 0x1725, 0x1735, 0x1750, 0x1767, 0x176f, 0x177b, + 0x1795, 0x17a3, 0x17b5, 0x17bf, 0x17c7, 0x17c7, 0x17d9, 0x17fa, + 0x1802, 0x1818, 0x182a, 0x182a, 0x1834, 0x183e, 0x1854, 0x1854, + 0x186c, 0x1874, 0x188f, 0x189f, 0x18a7, 0x18b5, 0x18b5, 0x18c1, + 0x18d5, 0x18e1, 0x1900, 0x1900, 0x1909, 0x191e, 0x1928, 0x1945, + // Entry 1C0 - 1FF + 0x1959, 0x1969, 0x1973, 0x197d, 0x1985, 0x19a8, 0x19be, 0x19cc, + 0x19de, 0x19f2, 0x1a02, 0x1a02, 0x1a02, 0x1a02, 0x1a1d, 0x1a1d, + 0x1a2f, 0x1a2f, 0x1a2f, 0x1a3f, 0x1a3f, 0x1a60, 0x1a68, 0x1a68, + 0x1a7a, 0x1a8a, 0x1aa0, 0x1aa0, 0x1aa0, 0x1aaa, 0x1ab6, 0x1ab6, + 0x1ab6, 0x1ab6, 0x1ac8, 0x1ad0, 0x1ae2, 0x1af0, 0x1b15, 0x1b27, + 0x1b31, 0x1b3f, 0x1b3f, 0x1b4f, 0x1b5d, 0x1b6f, 0x1b7d, 0x1b7d, + 0x1b98, 0x1ba4, 0x1bac, 0x1bac, 0x1bba, 0x1bd7, 0x1bf6, 0x1bf6, + 0x1c06, 0x1c0c, 0x1c2c, 0x1c3a, 0x1c3a, 0x1c3a, 0x1c4d, 0x1c60, + // Entry 200 - 23F + 0x1c73, 0x1c86, 0x1c94, 0x1ca6, 0x1cbf, 0x1cc9, 0x1cd1, 0x1cd1, + 0x1ce1, 0x1ced, 0x1cff, 0x1d0f, 0x1d2c, 0x1d3a, 0x1d3a, 0x1d3a, + 0x1d44, 0x1d4c, 0x1d58, 0x1d64, 0x1d70, 0x1d76, 0x1d86, 0x1d86, + 0x1d96, 0x1da6, 0x1da6, 0x1db4, 0x1dcb, 0x1ddc, 0x1ddc, 0x1de8, + 0x1de8, 0x1df8, 0x1df8, 0x1e0a, 0x1e1a, 0x1e28, 0x1e3a, 0x1e68, + 0x1e7a, 0x1e8e, 0x1ea2, 0x1eaa, 0x1eb0, 0x1eb0, 0x1eb0, 0x1eb0, + 0x1eb0, 0x1eba, 0x1eba, 0x1ec8, 0x1ed4, 0x1ee4, 0x1ef2, 0x1efe, + 0x1f12, 0x1f12, 0x1f1e, 0x1f1e, 0x1f28, 0x1f30, 0x1f3c, 0x1f50, + // Entry 240 - 27F + 0x1f5c, 0x1f5c, 0x1f72, 0x1f80, 0x1f94, 0x1f94, 0x1fa2, 0x1fd0, + 0x1fda, 0x2014, 0x201c, 0x2048, 0x2048, 0x206b, 0x2095, 0x20b8, + 0x20d3, 0x2105, 0x2124, 0x2158, 0x2177, 0x2196, 0x2196, 0x21b1, + 0x21d0, 0x21fe, 0x2212, 0x223b, 0x2260, 0x2272, 0x228c, 0x22a9, + 0x22d2, 0x22f9, +} // Size: 1244 bytes + +var enLangStr string = "" + // Size: 4897 bytes + "AfarAbkhazianAvestanAfrikaansAkanAmharicAragoneseArabicAssameseAvaricAym" + + "araAzerbaijaniBashkirBelarusianBulgarianBislamaBambaraBengaliTibetanBret" + + "onBosnianCatalanChechenChamorroCorsicanCreeCzechChurch SlavicChuvashWels" + + "hDanishGermanDivehiDzongkhaEweGreekEnglishEsperantoSpanishEstonianBasque" + + "PersianFulahFinnishFijianFaroeseFrenchWestern FrisianIrishScottish Gaeli" + + "cGalicianGuaraniGujaratiManxHausaHebrewHindiHiri MotuCroatianHaitian Cre" + + "oleHungarianArmenianHereroInterlinguaIndonesianInterlingueIgboSichuan Yi" + + "InupiaqIdoIcelandicItalianInuktitutJapaneseJavaneseGeorgianKongoKikuyuKu" + + "anyamaKazakhKalaallisutKhmerKannadaKoreanKanuriKashmiriKurdishKomiCornis" + + "hKyrgyzLatinLuxembourgishGandaLimburgishLingalaLaoLithuanianLuba-Katanga" + + "LatvianMalagasyMarshalleseMaoriMacedonianMalayalamMongolianMarathiMalayM" + + "alteseBurmeseNauruNorth NdebeleNepaliNdongaDutchNorwegian NynorskNorwegi" + + "an BokmÃ¥lSouth NdebeleNavajoNyanjaOccitanOjibwaOromoOriyaOsseticPunjabiP" + + "aliPolishPashtoPortugueseQuechuaRomanshRundiRomanianRussianKinyarwandaSa" + + "nskritSardinianSindhiNorthern SamiSangoSinhalaSlovakSlovenianSamoanShona" + + "SomaliAlbanianSerbianSwatiSouthern SothoSundaneseSwedishSwahiliTamilTelu" + + "guTajikThaiTigrinyaTurkmenTswanaTonganTurkishTsongaTatarTahitianUyghurUk" + + "rainianUrduUzbekVendaVietnameseVolapükWalloonWolofXhosaYiddishYorubaZhua" + + "ngChineseZuluAchineseAcoliAdangmeAdygheTunisian ArabicAfrihiliAghemAinuA" + + "kkadianAlabamaAleutGheg AlbanianSouthern AltaiOld EnglishAngikaAramaicMa" + + "pucheAraonaArapahoAlgerian ArabicArawakMoroccan ArabicEgyptian ArabicAsu" + + "American Sign LanguageAsturianKotavaAwadhiBaluchiBalineseBavarianBasaaBa" + + "munBatak TobaGhomalaBejaBembaBetawiBenaBafutBadagaWestern BalochiBhojpur" + + "iBikolBiniBanjarKomSiksikaBishnupriyaBakhtiariBrajBrahuiBodoAkooseBuriat" + + "BugineseBuluBlinMedumbaCaddoCaribCayugaAtsamCebuanoChigaChibchaChagataiC" + + "huukeseMariChinook JargonChoctawChipewyanCherokeeCheyenneCentral Kurdish" + + "CopticCapiznonCrimean TurkishKashubianDakotaDargwaTaitaDelawareSlaveDogr" + + "ibDinkaZarmaDogriLower SorbianCentral DusunDualaMiddle DutchJola-FonyiDy" + + "ulaDazagaEmbuEfikEmilianAncient EgyptianEkajukElamiteMiddle EnglishCentr" + + "al YupikEwondoExtremaduranFangFilipinoTornedalen FinnishFonCajun FrenchM" + + "iddle FrenchOld FrenchArpitanNorthern FrisianEastern FrisianFriulianGaGa" + + "gauzGan ChineseGayoGbayaZoroastrian DariGeezGilberteseGilakiMiddle High " + + "GermanOld High GermanGoan KonkaniGondiGorontaloGothicGreboAncient GreekS" + + "wiss GermanWayuuFrafraGusiiGwichʼinHaidaHakka ChineseHawaiianFiji HindiH" + + "iligaynonHittiteHmongUpper SorbianXiang ChineseHupaIbanIbibioIlokoIngush" + + "IngrianJamaican Creole EnglishLojbanNgombaMachameJudeo-PersianJudeo-Arab" + + "icJutishKara-KalpakKabyleKachinJjuKambaKawiKabardianKanembuTyapMakondeKa" + + "buverdianuKenyangKoroKaingangKhasiKhotaneseKoyra ChiiniKhowarKirmanjkiKa" + + "koKalenjinKimbunduKomi-PermyakKonkaniKosraeanKpelleKarachay-BalkarKrioKi" + + "naray-aKarelianKurukhShambalaBafiaColognianKumykKutenaiLadinoLangiLahnda" + + "LambaLezghianLingua Franca NovaLigurianLivonianLakotaLombardMongoLoziNor" + + "thern LuriLatgalianLuba-LuluaLuisenoLundaLuoMizoLuyiaLiterary ChineseLaz" + + "MadureseMafaMagahiMaithiliMakasarMandingoMasaiMabaMokshaMandarMendeMeruM" + + "orisyenMiddle IrishMakhuwa-MeettoMetaʼMicmacMinangkabauManchuManipuriMoh" + + "awkMossiWestern MariMundangMultiple LanguagesCreekMirandeseMarwariMentaw" + + "aiMyeneErzyaMazanderaniMin Nan ChineseNeapolitanNamaLow GermanNewariNias" + + "NiueanAo NagaKwasioNgiemboonNogaiOld NorseNovialN’KoNorthern SothoNuerCl" + + "assical NewariNyamweziNyankoleNyoroNzimaOsageOttoman TurkishPangasinanPa" + + "hlaviPampangaPapiamentoPalauanPicardPennsylvania GermanPlautdietschOld P" + + "ersianPalatine GermanPhoenicianPiedmontesePonticPohnpeianPrussianOld Pro" + + "vençalKʼicheʼChimborazo Highland QuichuaRajasthaniRapanuiRarotonganRomag" + + "nolRiffianRomboRomanyRotumanRusynRovianaAromanianRwaSandaweSakhaSamarita" + + "n AramaicSamburuSasakSantaliSaurashtraNgambaySanguSicilianScotsSassarese" + + " SardinianSouthern KurdishSenecaSenaSeriSelkupKoyraboro SenniOld IrishSa" + + "mogitianTachelhitShanChadian ArabicSidamoLower SilesianSelayarSouthern S" + + "amiLule SamiInari SamiSkolt SamiSoninkeSogdienSranan TongoSererSahoSater" + + "land FrisianSukumaSusuSumerianComorianClassical SyriacSyriacSilesianTulu" + + "TimneTesoTerenoTetumTigreTivTokelauTsakhurKlingonTlingitTalyshTamashekNy" + + "asa TongaTok PisinTuroyoTarokoTsakonianTsimshianMuslim TatTumbukaTuvaluT" + + "asawaqTuvinianCentral Atlas TamazightUdmurtUgariticUmbunduRootVaiVenetia" + + "nVepsWest FlemishMain-FranconianVoticVõroVunjoWalserWolayttaWarayWashoWa" + + "rlpiriWu ChineseKalmykMingrelianSogaYaoYapeseYangbenYembaNheengatuCanton" + + "eseZapotecBlissymbolsZeelandicZenagaStandard Moroccan TamazightZuniNo li" + + "nguistic contentZazaModern Standard ArabicAustrian GermanSwiss High Germ" + + "anAustralian EnglishCanadian EnglishBritish EnglishAmerican EnglishLatin" + + " American SpanishEuropean SpanishMexican SpanishDariCanadian FrenchSwiss" + + " FrenchLow SaxonFlemishBrazilian PortugueseEuropean PortugueseMoldavianS" + + "erbo-CroatianCongo SwahiliSimplified ChineseTraditional Chinese" + +var enLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0014, 0x001d, 0x0021, 0x0028, 0x0031, + 0x0037, 0x003f, 0x0045, 0x004b, 0x0056, 0x005d, 0x0067, 0x0070, + 0x0077, 0x007e, 0x0085, 0x008c, 0x0092, 0x0099, 0x00a0, 0x00a7, + 0x00af, 0x00b7, 0x00bb, 0x00c0, 0x00cd, 0x00d4, 0x00d9, 0x00df, + 0x00e5, 0x00eb, 0x00f3, 0x00f6, 0x00fb, 0x0102, 0x010b, 0x0112, + 0x011a, 0x0120, 0x0127, 0x012c, 0x0133, 0x0139, 0x0140, 0x0146, + 0x0155, 0x015a, 0x0169, 0x0171, 0x0178, 0x0180, 0x0184, 0x0189, + 0x018f, 0x0194, 0x019d, 0x01a5, 0x01b3, 0x01bc, 0x01c4, 0x01ca, + // Entry 40 - 7F + 0x01d5, 0x01df, 0x01ea, 0x01ee, 0x01f8, 0x01ff, 0x0202, 0x020b, + 0x0212, 0x021b, 0x0223, 0x022b, 0x0233, 0x0238, 0x023e, 0x0246, + 0x024c, 0x0257, 0x025c, 0x0263, 0x0269, 0x026f, 0x0277, 0x027e, + 0x0282, 0x0289, 0x028f, 0x0294, 0x02a1, 0x02a6, 0x02b0, 0x02b7, + 0x02ba, 0x02c4, 0x02d0, 0x02d7, 0x02df, 0x02ea, 0x02ef, 0x02f9, + 0x0302, 0x030b, 0x0312, 0x0317, 0x031e, 0x0325, 0x032a, 0x0337, + 0x033d, 0x0343, 0x0348, 0x0359, 0x036a, 0x0377, 0x037d, 0x0383, + 0x038a, 0x0390, 0x0395, 0x039a, 0x03a1, 0x03a8, 0x03ac, 0x03b2, + // Entry 80 - BF + 0x03b8, 0x03c2, 0x03c9, 0x03d0, 0x03d5, 0x03dd, 0x03e4, 0x03ef, + 0x03f7, 0x0400, 0x0406, 0x0413, 0x0418, 0x041f, 0x0425, 0x042e, + 0x0434, 0x0439, 0x043f, 0x0447, 0x044e, 0x0453, 0x0461, 0x046a, + 0x0471, 0x0478, 0x047d, 0x0483, 0x0488, 0x048c, 0x0494, 0x049b, + 0x04a1, 0x04a7, 0x04ae, 0x04b4, 0x04b9, 0x04c1, 0x04c7, 0x04d0, + 0x04d4, 0x04d9, 0x04de, 0x04e8, 0x04f0, 0x04f7, 0x04fc, 0x0501, + 0x0508, 0x050e, 0x0514, 0x051b, 0x051f, 0x0527, 0x052c, 0x0533, + 0x0539, 0x0548, 0x0550, 0x0555, 0x0559, 0x0561, 0x0568, 0x056d, + // Entry C0 - FF + 0x057a, 0x0588, 0x0593, 0x0599, 0x05a0, 0x05a7, 0x05ad, 0x05b4, + 0x05c3, 0x05c9, 0x05d8, 0x05e7, 0x05ea, 0x0600, 0x0608, 0x060e, + 0x0614, 0x061b, 0x0623, 0x062b, 0x0630, 0x0635, 0x063f, 0x0646, + 0x064a, 0x064f, 0x0655, 0x0659, 0x065e, 0x0664, 0x0673, 0x067b, + 0x0680, 0x0684, 0x068a, 0x068d, 0x0694, 0x069f, 0x06a8, 0x06ac, + 0x06b2, 0x06b6, 0x06bc, 0x06c2, 0x06ca, 0x06ce, 0x06d2, 0x06d9, + 0x06de, 0x06e3, 0x06e9, 0x06ee, 0x06f5, 0x06fa, 0x0701, 0x0709, + 0x0711, 0x0715, 0x0723, 0x072a, 0x0733, 0x073b, 0x0743, 0x0752, + // Entry 100 - 13F + 0x0758, 0x0760, 0x076f, 0x0778, 0x077e, 0x0784, 0x0789, 0x0791, + 0x0796, 0x079c, 0x07a1, 0x07a6, 0x07ab, 0x07b8, 0x07c5, 0x07ca, + 0x07d6, 0x07e0, 0x07e5, 0x07eb, 0x07ef, 0x07f3, 0x07fa, 0x080a, + 0x0810, 0x0817, 0x0825, 0x0832, 0x0838, 0x0844, 0x0848, 0x0850, + 0x0862, 0x0865, 0x0871, 0x087e, 0x0888, 0x088f, 0x089f, 0x08ae, + 0x08b6, 0x08b8, 0x08be, 0x08c9, 0x08cd, 0x08d2, 0x08e2, 0x08e6, + 0x08f0, 0x08f6, 0x0908, 0x0917, 0x0923, 0x0928, 0x0931, 0x0937, + 0x093c, 0x0949, 0x0955, 0x095a, 0x0960, 0x0965, 0x096e, 0x0973, + // Entry 140 - 17F + 0x0980, 0x0988, 0x0992, 0x099c, 0x09a3, 0x09a8, 0x09b5, 0x09c2, + 0x09c6, 0x09ca, 0x09d0, 0x09d5, 0x09db, 0x09e2, 0x09f9, 0x09ff, + 0x0a05, 0x0a0c, 0x0a19, 0x0a25, 0x0a2b, 0x0a36, 0x0a3c, 0x0a42, + 0x0a45, 0x0a4a, 0x0a4e, 0x0a57, 0x0a5e, 0x0a62, 0x0a69, 0x0a75, + 0x0a7c, 0x0a80, 0x0a88, 0x0a8d, 0x0a96, 0x0aa2, 0x0aa8, 0x0ab1, + 0x0ab5, 0x0abd, 0x0ac5, 0x0ad1, 0x0ad8, 0x0ae0, 0x0ae6, 0x0af5, + 0x0af9, 0x0b02, 0x0b0a, 0x0b10, 0x0b18, 0x0b1d, 0x0b26, 0x0b2b, + 0x0b32, 0x0b38, 0x0b3d, 0x0b43, 0x0b48, 0x0b50, 0x0b62, 0x0b6a, + // Entry 180 - 1BF + 0x0b72, 0x0b78, 0x0b7f, 0x0b84, 0x0b88, 0x0b95, 0x0b9e, 0x0ba8, + 0x0baf, 0x0bb4, 0x0bb7, 0x0bbb, 0x0bc0, 0x0bd0, 0x0bd3, 0x0bdb, + 0x0bdf, 0x0be5, 0x0bed, 0x0bf4, 0x0bfc, 0x0c01, 0x0c05, 0x0c0b, + 0x0c11, 0x0c16, 0x0c1a, 0x0c22, 0x0c2e, 0x0c3c, 0x0c42, 0x0c48, + 0x0c53, 0x0c59, 0x0c61, 0x0c67, 0x0c6c, 0x0c78, 0x0c7f, 0x0c91, + 0x0c96, 0x0c9f, 0x0ca6, 0x0cae, 0x0cb3, 0x0cb8, 0x0cc3, 0x0cd2, + 0x0cdc, 0x0ce0, 0x0cea, 0x0cf0, 0x0cf4, 0x0cfa, 0x0d01, 0x0d07, + 0x0d10, 0x0d15, 0x0d1e, 0x0d24, 0x0d2a, 0x0d38, 0x0d3c, 0x0d4c, + // Entry 1C0 - 1FF + 0x0d54, 0x0d5c, 0x0d61, 0x0d66, 0x0d6b, 0x0d7a, 0x0d84, 0x0d8b, + 0x0d93, 0x0d9d, 0x0da4, 0x0daa, 0x0dbd, 0x0dc9, 0x0dd4, 0x0de3, + 0x0ded, 0x0df8, 0x0dfe, 0x0e07, 0x0e0f, 0x0e1d, 0x0e26, 0x0e41, + 0x0e4b, 0x0e52, 0x0e5c, 0x0e64, 0x0e6b, 0x0e70, 0x0e76, 0x0e7d, + 0x0e82, 0x0e89, 0x0e92, 0x0e95, 0x0e9c, 0x0ea1, 0x0eb2, 0x0eb9, + 0x0ebe, 0x0ec5, 0x0ecf, 0x0ed6, 0x0edb, 0x0ee3, 0x0ee8, 0x0efb, + 0x0f0b, 0x0f11, 0x0f15, 0x0f19, 0x0f1f, 0x0f2e, 0x0f37, 0x0f41, + 0x0f4a, 0x0f4e, 0x0f5c, 0x0f62, 0x0f70, 0x0f77, 0x0f84, 0x0f8d, + // Entry 200 - 23F + 0x0f97, 0x0fa1, 0x0fa8, 0x0faf, 0x0fbb, 0x0fc0, 0x0fc4, 0x0fd5, + 0x0fdb, 0x0fdf, 0x0fe7, 0x0fef, 0x0fff, 0x1005, 0x100d, 0x1011, + 0x1016, 0x101a, 0x1020, 0x1025, 0x102a, 0x102d, 0x1034, 0x103b, + 0x1042, 0x1049, 0x104f, 0x1057, 0x1062, 0x106b, 0x1071, 0x1077, + 0x1080, 0x1089, 0x1093, 0x109a, 0x10a0, 0x10a7, 0x10af, 0x10c6, + 0x10cc, 0x10d4, 0x10db, 0x10df, 0x10e2, 0x10ea, 0x10ee, 0x10fa, + 0x1109, 0x110e, 0x1113, 0x1118, 0x111e, 0x1126, 0x112b, 0x1130, + 0x1138, 0x1142, 0x1148, 0x1152, 0x1156, 0x1159, 0x115f, 0x1166, + // Entry 240 - 27F + 0x116b, 0x1174, 0x117d, 0x1184, 0x118f, 0x1198, 0x119e, 0x11b9, + 0x11bd, 0x11d2, 0x11d6, 0x11ec, 0x11ec, 0x11fb, 0x120c, 0x121e, + 0x122e, 0x123d, 0x124d, 0x1263, 0x1273, 0x1282, 0x1286, 0x1295, + 0x12a1, 0x12aa, 0x12b1, 0x12c5, 0x12d8, 0x12e1, 0x12ef, 0x12fc, + 0x130e, 0x1321, +} // Size: 1244 bytes + +const enGBLangStr string = "West Low German" + +var enGBLangIdx = []uint16{ // 602 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 140 - 17F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 180 - 1BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 1C0 - 1FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 200 - 23F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 240 - 27F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x000f, +} // Size: 1228 bytes + +var esLangStr string = "" + // Size: 4253 bytes + "afarabjasioavésticoafrikáansakanamáricoaragonésárabeasamésavaraimaraazer" + + "baiyanobaskirbielorrusobúlgarobislamabambarabengalítibetanobretónbosnioc" + + "atalánchechenochamorrocorsocreechecoeslavo eclesiásticochuvasiogalésdané" + + "salemándivehidzongkhaewégriegoinglésesperantoespañolestonioeuskerapersaf" + + "ulafinésfiyianoferoésfrancésfrisón occidentalirlandésgaélico escocésgall" + + "egoguaranígujaratimanéshausahebreohindihiri motucroatahaitianohúngaroarm" + + "eniohererointerlinguaindonesiointerlingueigboyi de Sichuáninupiaqidoisla" + + "ndésitalianoinuktitutjaponésjavanésgeorgianokongokikuyukuanyamakazajogro" + + "enlandésjemercanaréscoreanokanuricachemirokurdokomicórnicokirguíslatínlu" + + "xemburguésgandalimburguéslingalalaosianolituanoluba-katangaletónmalgache" + + "marshalésmaorímacedoniomalayalammongolmaratímalayomaltésbirmanonauruanon" + + "debele septentrionalnepalíndonganeerlandésnoruego nynorsknoruego bokmaln" + + "debele meridionalnavajonyanjaoccitanoojibwaoromooriyaoséticopanyabípalip" + + "olacopastúnportuguésquechuaretorrománicokiroundirumanorusokinyarwandasán" + + "scritosardosindhisami septentrionalsangocingaléseslovacoeslovenosamoanos" + + "honasomalíalbanésserbiosiswatisesotho meridionalsundanéssuecosuajilitami" + + "ltelugutayikotailandéstigriñaturcomanosetchwanatonganoturcotsongatártaro" + + "tahitianouigurucranianourduuzbekovendavietnamitavolapükvalónwolofxhosayí" + + "dishyorubazhuangchinozulúacehnésacoliadangmeadigeoafrihiliaghemainuacadi" + + "oaleutianoaltái meridionalinglés antiguoangikaarameomapuchearapahoarahua" + + "coasuasturianoavadhibaluchibalinésbasabamunghomalabejabembabenabafutbalu" + + "chi occidentalbhojpuribicolbinikomsiksikabrajbodoakooseburiatbuginésbulu" + + "blinmedumbacaddocaribecayugaatsamcebuanochigachibchachagatáitrukésmaríje" + + "rga chinukchoctawchipewyancheroquicheyenekurdo soranicoptotártaro de Cri" + + "meacasubiodakotadargvataitadelawareslavedogribdinkazarmadogribajo sorbio" + + "dualaneerlandés medievaljola-fonyidiuladazagaembuefikegipcio antiguoekaj" + + "ukelamitainglés medievalewondofangfilipinofonfrancés medievalfrancés ant" + + "iguofrisón septentrionalfrisón orientalfriulanogagagauzogayogbayageezgil" + + "bertésalemán de la alta edad mediaalemán de la alta edad antiguagondigor" + + "ontalogóticogrebogriego antiguoalemán suizogusiikutchinhaidahawaianohili" + + "gaynonhititahmongalto sorbiohupaibanibibioilocanoingushlojbanngombamacha" + + "mejudeo-persajudeo-árabekarakalpakocabilakachinjjukambakawikabardianokan" + + "embutyapmakondecriollo caboverdianokorokhasikotanéskoyra chiinikakokalen" + + "jinkimbundukomi permiokonkaníkosraeanokpellekarachay-balkarcareliokurukh" + + "shambalabafiakölschkumykkutenailadinolangilahndalambalezgianolakotamongo" + + "lozilorí septentrionalluba-lulualuiseñolundaluolushailuyiamadurésmafamag" + + "ahimaithilimacasarmandingomasáimabamokshamandarmendemerucriollo mauricia" + + "noirlandés medievalmakhuwa-meettometa’micmacminangkabaumanchúmanipurimoh" + + "awkmossimundanglenguas múltiplescreekmirandésmarwarimyeneerzyamazandaran" + + "ínapolitanonamabajo alemánnewariniasniueanokwasiongiemboonnogainórdico " + + "antiguon’kosotho septentrionalnuernewari clásiconyamwezinyankolenyoronzi" + + "maosageturco otomanopangasinánpahlavipampangapapiamentopalauanopersa ant" + + "iguofeniciopohnpeianoprovenzal antiguoquichérajasthanirapanuirarotongano" + + "romboromaníarrumanorwasandawesakhaarameo samaritanosamburusasaksantaling" + + "ambaysangusicilianoescocéskurdo meridionalsenecasenaselkupkoyraboro senn" + + "iirlandés antiguotashelhitshanárabe chadianosidamosami meridionalsami lu" + + "lesami inarisami skoltsoninkésogdianosranan tongoserersahosukumasususume" + + "riocomorensesiríaco clásicosiriacotemnetesoterenotetúntigrétivtokelauano" + + "klingontlingittamashektonga del Nyasatok pisintarokotsimshianotumbukatuv" + + "aluanotasawaqtuvinianotamazight del Marruecos Centraludmurtugaríticoumbu" + + "nduraízvaivóticovunjowalserwalamowaraywashowarlpirikalmyksogayaoyapésyan" + + "gbenyembacantonészapotecosímbolos Blisszenagatamazight estándar marroquí" + + "zunisin contenido lingüísticozazakiárabe estándar modernoalemán austríac" + + "oalto alemán suizoinglés australianoinglés canadienseinglés británicoing" + + "lés estadounidenseespañol latinoamericanoespañol de Españaespañol de Méx" + + "icofrancés canadiensefrancés suizoflamencoportugués de Brasilportugués d" + + "e Portugalmoldavoserbocroatasuajili del Congochino simplificadochino tra" + + "dicional" + +var esLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000b, 0x0014, 0x001e, 0x0022, 0x002a, 0x0033, + 0x0039, 0x0040, 0x0044, 0x004a, 0x0055, 0x005b, 0x0065, 0x006d, + 0x0074, 0x007b, 0x0083, 0x008b, 0x0092, 0x0098, 0x00a0, 0x00a8, + 0x00b0, 0x00b5, 0x00b9, 0x00be, 0x00d2, 0x00da, 0x00e0, 0x00e6, + 0x00ed, 0x00f3, 0x00fb, 0x00ff, 0x0105, 0x010c, 0x0115, 0x011d, + 0x0124, 0x012b, 0x0130, 0x0134, 0x013a, 0x0141, 0x0148, 0x0150, + 0x0162, 0x016b, 0x017c, 0x0183, 0x018b, 0x0193, 0x0199, 0x019e, + 0x01a4, 0x01a9, 0x01b2, 0x01b8, 0x01c0, 0x01c8, 0x01cf, 0x01d5, + // Entry 40 - 7F + 0x01e0, 0x01e9, 0x01f4, 0x01f8, 0x0206, 0x020d, 0x0210, 0x0219, + 0x0221, 0x022a, 0x0232, 0x023a, 0x0243, 0x0248, 0x024e, 0x0256, + 0x025c, 0x0268, 0x026d, 0x0275, 0x027c, 0x0282, 0x028b, 0x0290, + 0x0294, 0x029c, 0x02a4, 0x02aa, 0x02b7, 0x02bc, 0x02c7, 0x02ce, + 0x02d6, 0x02dd, 0x02e9, 0x02ef, 0x02f7, 0x0301, 0x0307, 0x0310, + 0x0319, 0x031f, 0x0326, 0x032c, 0x0333, 0x033a, 0x0342, 0x0357, + 0x035e, 0x0364, 0x036f, 0x037e, 0x038c, 0x039e, 0x03a4, 0x03aa, + 0x03b2, 0x03b8, 0x03bd, 0x03c2, 0x03ca, 0x03d2, 0x03d6, 0x03dc, + // Entry 80 - BF + 0x03e3, 0x03ed, 0x03f4, 0x0402, 0x040a, 0x0410, 0x0414, 0x041f, + 0x0429, 0x042e, 0x0434, 0x0446, 0x044b, 0x0454, 0x045c, 0x0464, + 0x046b, 0x0470, 0x0477, 0x047f, 0x0485, 0x048c, 0x049e, 0x04a7, + 0x04ac, 0x04b3, 0x04b8, 0x04be, 0x04c4, 0x04ce, 0x04d6, 0x04df, + 0x04e8, 0x04ef, 0x04f4, 0x04fa, 0x0502, 0x050b, 0x0510, 0x0519, + 0x051d, 0x0523, 0x0528, 0x0532, 0x053a, 0x0540, 0x0545, 0x054a, + 0x0551, 0x0557, 0x055d, 0x0562, 0x0567, 0x056f, 0x0574, 0x057b, + 0x0581, 0x0581, 0x0589, 0x058e, 0x0592, 0x0598, 0x0598, 0x05a1, + // Entry C0 - FF + 0x05a1, 0x05b2, 0x05c1, 0x05c7, 0x05cd, 0x05d4, 0x05d4, 0x05db, + 0x05db, 0x05e3, 0x05e3, 0x05e3, 0x05e6, 0x05e6, 0x05ef, 0x05ef, + 0x05f5, 0x05fc, 0x0604, 0x0604, 0x0608, 0x060d, 0x060d, 0x0614, + 0x0618, 0x061d, 0x061d, 0x0621, 0x0626, 0x0626, 0x0638, 0x0640, + 0x0645, 0x0649, 0x0649, 0x064c, 0x0653, 0x0653, 0x0653, 0x0657, + 0x0657, 0x065b, 0x0661, 0x0667, 0x066f, 0x0673, 0x0677, 0x067e, + 0x0683, 0x0689, 0x068f, 0x0694, 0x069b, 0x06a0, 0x06a7, 0x06b0, + 0x06b7, 0x06bc, 0x06c8, 0x06cf, 0x06d8, 0x06e0, 0x06e7, 0x06f3, + // Entry 100 - 13F + 0x06f8, 0x06f8, 0x070a, 0x0711, 0x0717, 0x071d, 0x0722, 0x072a, + 0x072f, 0x0735, 0x073a, 0x073f, 0x0744, 0x074f, 0x074f, 0x0754, + 0x0768, 0x0772, 0x0777, 0x077d, 0x0781, 0x0785, 0x0785, 0x0794, + 0x079a, 0x07a1, 0x07b1, 0x07b1, 0x07b7, 0x07b7, 0x07bb, 0x07c3, + 0x07c3, 0x07c6, 0x07c6, 0x07d7, 0x07e7, 0x07e7, 0x07fc, 0x080c, + 0x0814, 0x0816, 0x081d, 0x081d, 0x0821, 0x0826, 0x0826, 0x082a, + 0x0834, 0x0834, 0x0851, 0x0870, 0x0870, 0x0875, 0x087e, 0x0885, + 0x088a, 0x0898, 0x08a5, 0x08a5, 0x08a5, 0x08aa, 0x08b1, 0x08b6, + // Entry 140 - 17F + 0x08b6, 0x08be, 0x08be, 0x08c8, 0x08ce, 0x08d3, 0x08de, 0x08de, + 0x08e2, 0x08e6, 0x08ec, 0x08f3, 0x08f9, 0x08f9, 0x08f9, 0x08ff, + 0x0905, 0x090c, 0x0917, 0x0923, 0x0923, 0x092e, 0x0934, 0x093a, + 0x093d, 0x0942, 0x0946, 0x0950, 0x0957, 0x095b, 0x0962, 0x0976, + 0x0976, 0x097a, 0x097a, 0x097f, 0x0987, 0x0993, 0x0993, 0x0993, + 0x0997, 0x099f, 0x09a7, 0x09b2, 0x09ba, 0x09c3, 0x09c9, 0x09d8, + 0x09d8, 0x09d8, 0x09df, 0x09e5, 0x09ed, 0x09f2, 0x09f9, 0x09fe, + 0x0a05, 0x0a0b, 0x0a10, 0x0a16, 0x0a1b, 0x0a23, 0x0a23, 0x0a23, + // Entry 180 - 1BF + 0x0a23, 0x0a29, 0x0a29, 0x0a2e, 0x0a32, 0x0a45, 0x0a45, 0x0a4f, + 0x0a57, 0x0a5c, 0x0a5f, 0x0a65, 0x0a6a, 0x0a6a, 0x0a6a, 0x0a72, + 0x0a76, 0x0a7c, 0x0a84, 0x0a8b, 0x0a93, 0x0a99, 0x0a9d, 0x0aa3, + 0x0aa9, 0x0aae, 0x0ab2, 0x0ac4, 0x0ad6, 0x0ae4, 0x0aeb, 0x0af1, + 0x0afc, 0x0b03, 0x0b0b, 0x0b11, 0x0b16, 0x0b16, 0x0b1d, 0x0b2f, + 0x0b34, 0x0b3d, 0x0b44, 0x0b44, 0x0b49, 0x0b4e, 0x0b5a, 0x0b5a, + 0x0b64, 0x0b68, 0x0b74, 0x0b7a, 0x0b7e, 0x0b85, 0x0b85, 0x0b8b, + 0x0b94, 0x0b99, 0x0ba9, 0x0ba9, 0x0baf, 0x0bc2, 0x0bc6, 0x0bd5, + // Entry 1C0 - 1FF + 0x0bdd, 0x0be5, 0x0bea, 0x0bef, 0x0bf4, 0x0c01, 0x0c0c, 0x0c13, + 0x0c1b, 0x0c25, 0x0c2d, 0x0c2d, 0x0c2d, 0x0c2d, 0x0c3a, 0x0c3a, + 0x0c41, 0x0c41, 0x0c41, 0x0c4b, 0x0c4b, 0x0c5c, 0x0c63, 0x0c63, + 0x0c6d, 0x0c74, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c84, 0x0c8b, 0x0c8b, + 0x0c8b, 0x0c8b, 0x0c93, 0x0c96, 0x0c9d, 0x0ca2, 0x0cb3, 0x0cba, + 0x0cbf, 0x0cc6, 0x0cc6, 0x0ccd, 0x0cd2, 0x0cdb, 0x0ce3, 0x0ce3, + 0x0cf3, 0x0cf9, 0x0cfd, 0x0cfd, 0x0d03, 0x0d12, 0x0d23, 0x0d23, + 0x0d2c, 0x0d30, 0x0d3f, 0x0d45, 0x0d45, 0x0d45, 0x0d54, 0x0d5d, + // Entry 200 - 23F + 0x0d67, 0x0d71, 0x0d79, 0x0d81, 0x0d8d, 0x0d92, 0x0d96, 0x0d96, + 0x0d9c, 0x0da0, 0x0da7, 0x0db0, 0x0dc1, 0x0dc8, 0x0dc8, 0x0dc8, + 0x0dcd, 0x0dd1, 0x0dd7, 0x0ddd, 0x0de3, 0x0de6, 0x0df0, 0x0df0, + 0x0df7, 0x0dfe, 0x0dfe, 0x0e06, 0x0e15, 0x0e1e, 0x0e1e, 0x0e24, + 0x0e24, 0x0e2e, 0x0e2e, 0x0e35, 0x0e3e, 0x0e45, 0x0e4e, 0x0e6d, + 0x0e73, 0x0e7d, 0x0e84, 0x0e89, 0x0e8c, 0x0e8c, 0x0e8c, 0x0e8c, + 0x0e8c, 0x0e93, 0x0e93, 0x0e98, 0x0e9e, 0x0ea4, 0x0ea9, 0x0eae, + 0x0eb6, 0x0eb6, 0x0ebc, 0x0ebc, 0x0ec0, 0x0ec3, 0x0ec9, 0x0ed0, + // Entry 240 - 27F + 0x0ed5, 0x0ed5, 0x0ede, 0x0ee6, 0x0ef5, 0x0ef5, 0x0efb, 0x0f18, + 0x0f1c, 0x0f37, 0x0f3d, 0x0f55, 0x0f55, 0x0f67, 0x0f79, 0x0f8c, + 0x0f9e, 0x0fb0, 0x0fc6, 0x0fde, 0x0ff1, 0x1004, 0x1004, 0x1017, + 0x1025, 0x1025, 0x102d, 0x1041, 0x1057, 0x105e, 0x1069, 0x107a, + 0x108c, 0x109d, +} // Size: 1244 bytes + +var es419LangStr string = "vascoswahililuovaiswahili del Congo" + +var es419LangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 40 - 7F + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + // Entry 80 - BF + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + // Entry C0 - FF + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + // Entry 100 - 13F + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + // Entry 140 - 17F + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + // Entry 180 - 1BF + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + // Entry 1C0 - 1FF + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + // Entry 200 - 23F + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + // Entry 240 - 27F + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0023, +} // Size: 1240 bytes + +var etLangStr string = "" + // Size: 4576 bytes + "afariabhaasiavestaafrikaaniakaniamhariaragoniaraabiaassamiavaariaimaraas" + + "erbaidžaanibaÅ¡kiirivalgevenebulgaariabislamabambarabengalitiibetibretoon" + + "ibosniakatalaanitÅ¡etÅ¡eenitÅ¡amorrokorsikakriitÅ¡ehhikirikuslaavitÅ¡uvaÅ¡ikõm" + + "ritaanisaksamaldiividzongkhaevekreekaingliseesperantohispaaniaeestibaski" + + "pärsiafulasoomefidžifääriprantsuseläänefriisiiirigaeligaleegiguaraniigud" + + "žaratimänksihausaheebreahindihirimotuhorvaadihaitiungariarmeeniahereroi" + + "nterlinguaindoneesiainterlingueiboSichuani jiiinjupiakiidoislandiitaalia" + + "inuktitutijaapanijaavagruusiakongokikujukvanjamakasahhigröönikhmeerikann" + + "adakoreakanurikaÅ¡miirikurdikomikornikirgiisiladinaletseburgigandalimburg" + + "ilingalalaoleedulubalätimalagassimarÅ¡allimaoorimakedooniamalajalamimongo" + + "limarathimalaimaltabirmanaurupõhjandebelenepalindongahollandiuusnorranor" + + "ra bokmÃ¥llõunandebelenavahonjandžaprovansiodžibveioromooriaosseedipandža" + + "bipaalipoolapuÅ¡tuportugaliketÅ¡uaromanÅ¡irundirumeeniaveneruandasanskritis" + + "ardisindhipõhjasaamisangosingalislovakisloveenisamoaÅ¡onasomaalialbaanias" + + "erbiasvaasilõunasothosundarootsisuahiilitamilitelugutadžikitaitigrinjatü" + + "rkmeenitsvanatongatürgitsongatataritahitiuiguuriukrainaurduusbekivendavi" + + "etnamivolapükivalloonivolofikoosajidiÅ¡ijorubatÅ¡uangihiinasuuluatÅ¡ehiatÅ¡o" + + "liadangmeadõgeeTuneesia araabiaafrihiliaghemiainuakadialabamaaleuudigeeg" + + "ialtaivanaingliseangikaarameamapudunguniaraonaarapahoAlžeeria araabiaara" + + "vakiMaroko araabiaEgiptuse araabiaasuAmeerika viipekeelastuuriaavadhibel" + + "utÅ¡ibalibaieribasabamunibatakighomalabedžabembabetavibenabafutibadagalää" + + "nebelutÅ¡ibhodžpuribikoliedobandžarikomi (Aafrika)mustjalaindiaanibiÅ¡nupr" + + "ijabahtiaribradžibrahuibodoakooseburjaadibugibulubilinimedumbakadokariib" + + "ikajukaatsamisebutÅ¡igatÅ¡ibtÅ¡atÅ¡agataitÅ¡uugimaritÅ¡inuki žargoontÅ¡oktotÅ¡ip" + + "evaitÅ¡erokiiÅ¡aieenisoranikoptikapisnonikrimmitatarikaÅ¡uubisiuudargidavid" + + "adelavarisleividogribidinkazarmadogrialamsorbikeskdusunidualakeskholland" + + "ifonjidjuladazaembuefikiemiiliaegiptuseekadžukieelamikeskinglisekeskjupi" + + "kievondoestremenjufangifilipiinimeäfonicajun’ikeskprantsusevanaprantsuse" + + "frankoprovansipõhjafriisiidafriisifriuuligaagagauusikanigajogbajaetioopi" + + "akiribatigilakikeskülemsaksavanaülemsaksagondigorontalogootigrebovanakre" + + "ekaÅ¡veitsisaksavajuufarefaregusiigvitÅ¡inihaidahavaiFidži hindihiligainon" + + "ihetihmongiülemsorbisjangihupaibaniibibioilokoinguÅ¡iisuriJamaica kreoolk" + + "eelložbanngombamatÅ¡amejuudipärsiajuudiaraabiajüütikarakalpakikabiilikatÅ¡" + + "inijjukambakaavikabardi-tÅ¡erkessikanembutjapimakondekabuverdianukorokain" + + "gangikhasisakakoyra chiinikhovarikõrmandžkikakokalendžinimbundupermikomi" + + "konkanikosraekpellekaratÅ¡ai-balkaarikriokinaraiakarjalakuruhhiÅ¡ambalabaf" + + "iakölnikumõkikutenailadiinolangilahndalambalesgiliguuriliivilakotalombar" + + "dimongolozipõhjalurilatgalilulualuisenjolundaluoluÅ¡eiluhjaklassikaline h" + + "iinalazimaduramafamagahimaithilimakassarimalinkemasaimabamokÅ¡amandarimen" + + "demeruMauritiuse kreoolkeelkeskiirimakhuwa-meettometamikmakiminangkabaum" + + "andžumanipurimohoogimoremäemarimundangimitu keeltmaskogimirandamarvarime" + + "ntaveimjeneersamazandaraanilõunamininapolinamaalamsaksanevariniasiniueao" + + "kwasiongiembooninogaivanapõhjalanoviaalnkoopedinuerivananevarinjamvesink" + + "olenjoronzimaoseidžiosmanitürgipangasinanipahlavipampangapapiamentobelau" + + "pikardiPennsylvania saksamennoniidisaksavanapärsiaPfalzifoiniikiapiemont" + + "epontosepoonpeipreisivanaprovansikitÅ¡eradžastanirapanuirarotongaromanjar" + + "iifirombomustlaskeelrotumarussiinirovianaaromuunirvaasandavejakuudiSamaa" + + "ria arameasamburusasakisantalisauraÅ¡trangambaisangusitsiiliaÅ¡otilõunakur" + + "disenekasenaserisölkupikoyraboro sennivanaiirižemaidiÅ¡ilhaÅ¡aniTÅ¡aadi ara" + + "abiasidamoalamsileesiaselajarilõunasaamiLule saamiInari saamikoltasaamis" + + "oninkesogdisrananisererisahosaterfriisisukumasususumerikomoorivanasüüria" + + "süüriasileesiatulutemnetesoterenotetumitigreetivitokelautsahhiklingonitl" + + "ingititalõšitamaÅ¡ekitÅ¡itongauusmelaneesiaturojotarokotsakooniatÅ¡imÅ¡ilõun" + + "ataaditumbukatuvalutaswaqitõvatamasiktiudmurdiugaritiumbundurootvaivenet" + + "ivepsalääneflaamiMaini frangivadjavõruvundžowalserivolaitavaraivaÅ¡ovarlp" + + "iriuukalmõkimegrelisogajaojapiyangbenijembanjengatukantonisapoteegiBliss" + + "i sümbolidzeelandizenagatamasikti (Maroko)sunjimittekeelelinezazaaraabia" + + " (tänapäevane)Austria saksaÅ veitsi ülemsaksaAustraalia ingliseKanada ing" + + "liseBriti ingliseAmeerika ingliseLadina-Ameerika hispaaniaEuroopa hispaa" + + "niaMehhiko hispaaniaKanada prantsuseÅ veitsi prantsuseHollandi alamsaksaf" + + "laamiBrasiilia portugaliEuroopa portugalimoldovaserbia-horvaadiKongo sua" + + "hiilihiina (lihtsustatud)hiina (traditsiooniline)" + +var etLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x000c, 0x0012, 0x001b, 0x0020, 0x0026, 0x002d, + 0x0034, 0x003a, 0x0040, 0x0046, 0x0054, 0x005d, 0x0066, 0x006f, + 0x0076, 0x007d, 0x0084, 0x008b, 0x0093, 0x0099, 0x00a2, 0x00ad, + 0x00b6, 0x00bd, 0x00c1, 0x00c8, 0x00d4, 0x00dd, 0x00e3, 0x00e8, + 0x00ed, 0x00f5, 0x00fd, 0x0100, 0x0106, 0x010d, 0x0116, 0x011f, + 0x0124, 0x0129, 0x0130, 0x0134, 0x0139, 0x013f, 0x0146, 0x014f, + 0x015c, 0x0160, 0x0165, 0x016c, 0x0174, 0x017e, 0x0185, 0x018a, + 0x0191, 0x0196, 0x019e, 0x01a6, 0x01ab, 0x01b1, 0x01b9, 0x01bf, + // Entry 40 - 7F + 0x01ca, 0x01d4, 0x01df, 0x01e2, 0x01ee, 0x01f7, 0x01fa, 0x0201, + 0x0208, 0x0212, 0x0219, 0x021e, 0x0225, 0x022a, 0x0230, 0x0238, + 0x023f, 0x0247, 0x024e, 0x0255, 0x025a, 0x0260, 0x0269, 0x026e, + 0x0272, 0x0277, 0x027f, 0x0285, 0x028f, 0x0294, 0x029c, 0x02a3, + 0x02a6, 0x02ab, 0x02af, 0x02b4, 0x02bd, 0x02c6, 0x02cc, 0x02d6, + 0x02e0, 0x02e7, 0x02ee, 0x02f3, 0x02f8, 0x02fd, 0x0302, 0x030f, + 0x0315, 0x031b, 0x0323, 0x032b, 0x0338, 0x0345, 0x034b, 0x0353, + 0x035b, 0x0364, 0x0369, 0x036d, 0x0374, 0x037d, 0x0382, 0x0387, + // Entry 80 - BF + 0x038d, 0x0396, 0x039d, 0x03a5, 0x03aa, 0x03b2, 0x03b6, 0x03bc, + 0x03c5, 0x03ca, 0x03d0, 0x03db, 0x03e0, 0x03e7, 0x03ee, 0x03f6, + 0x03fb, 0x0400, 0x0407, 0x040f, 0x0415, 0x041b, 0x0426, 0x042b, + 0x0431, 0x0439, 0x043f, 0x0445, 0x044d, 0x0450, 0x0458, 0x0462, + 0x0468, 0x046d, 0x0473, 0x0479, 0x047f, 0x0485, 0x048c, 0x0493, + 0x0497, 0x049d, 0x04a2, 0x04aa, 0x04b3, 0x04bb, 0x04c1, 0x04c6, + 0x04cd, 0x04d3, 0x04db, 0x04e0, 0x04e5, 0x04ec, 0x04f3, 0x04fa, + 0x0501, 0x0511, 0x0519, 0x051f, 0x0523, 0x0528, 0x052f, 0x0536, + // Entry C0 - FF + 0x053b, 0x0540, 0x054b, 0x0551, 0x0557, 0x0562, 0x0568, 0x056f, + 0x0580, 0x0587, 0x0595, 0x05a5, 0x05a8, 0x05ba, 0x05c2, 0x05c2, + 0x05c8, 0x05d0, 0x05d4, 0x05da, 0x05de, 0x05e4, 0x05ea, 0x05f1, + 0x05f7, 0x05fc, 0x0602, 0x0606, 0x060c, 0x0612, 0x0621, 0x062b, + 0x0631, 0x0634, 0x063d, 0x064b, 0x065b, 0x0666, 0x066e, 0x0675, + 0x067b, 0x067f, 0x0685, 0x068d, 0x0691, 0x0695, 0x069b, 0x06a2, + 0x06a6, 0x06ad, 0x06b3, 0x06b9, 0x06bd, 0x06c3, 0x06cc, 0x06d5, + 0x06dc, 0x06e0, 0x06f1, 0x06f8, 0x0701, 0x070a, 0x0712, 0x0718, + // Entry 100 - 13F + 0x071d, 0x0726, 0x0732, 0x073a, 0x073e, 0x0743, 0x0749, 0x0751, + 0x0757, 0x075e, 0x0763, 0x0768, 0x076d, 0x0776, 0x0780, 0x0785, + 0x0791, 0x0796, 0x079b, 0x079f, 0x07a3, 0x07a8, 0x07af, 0x07b7, + 0x07c0, 0x07c6, 0x07d1, 0x07db, 0x07e1, 0x07eb, 0x07f0, 0x07f9, + 0x07fd, 0x0801, 0x080a, 0x0817, 0x0824, 0x0832, 0x083e, 0x0847, + 0x084e, 0x0851, 0x0859, 0x085d, 0x0861, 0x0866, 0x0866, 0x086e, + 0x0876, 0x087c, 0x088a, 0x0898, 0x0898, 0x089d, 0x08a6, 0x08ab, + 0x08b0, 0x08ba, 0x08c7, 0x08cc, 0x08d4, 0x08d9, 0x08e2, 0x08e7, + // Entry 140 - 17F + 0x08e7, 0x08ec, 0x08f8, 0x0903, 0x0907, 0x090d, 0x0917, 0x091d, + 0x0921, 0x0926, 0x092c, 0x0931, 0x0938, 0x093d, 0x094f, 0x0956, + 0x095c, 0x0964, 0x0970, 0x097c, 0x0983, 0x098e, 0x0995, 0x099d, + 0x09a0, 0x09a5, 0x09aa, 0x09bc, 0x09c3, 0x09c8, 0x09cf, 0x09db, + 0x09db, 0x09df, 0x09e8, 0x09ed, 0x09f1, 0x09fd, 0x0a04, 0x0a10, + 0x0a14, 0x0a1f, 0x0a25, 0x0a2e, 0x0a35, 0x0a3b, 0x0a41, 0x0a53, + 0x0a57, 0x0a5f, 0x0a66, 0x0a6d, 0x0a75, 0x0a7a, 0x0a80, 0x0a87, + 0x0a8e, 0x0a95, 0x0a9a, 0x0aa0, 0x0aa5, 0x0aaa, 0x0aaa, 0x0ab1, + // Entry 180 - 1BF + 0x0ab6, 0x0abc, 0x0ac4, 0x0ac9, 0x0acd, 0x0ad7, 0x0ade, 0x0ae3, + 0x0aeb, 0x0af0, 0x0af3, 0x0af9, 0x0afe, 0x0b10, 0x0b14, 0x0b1a, + 0x0b1e, 0x0b24, 0x0b2c, 0x0b35, 0x0b3c, 0x0b41, 0x0b45, 0x0b4b, + 0x0b52, 0x0b57, 0x0b5b, 0x0b70, 0x0b78, 0x0b86, 0x0b8a, 0x0b91, + 0x0b9c, 0x0ba3, 0x0bab, 0x0bb2, 0x0bb6, 0x0bbe, 0x0bc6, 0x0bd0, + 0x0bd7, 0x0bde, 0x0be5, 0x0bed, 0x0bf2, 0x0bf6, 0x0c02, 0x0c0c, + 0x0c12, 0x0c16, 0x0c1f, 0x0c25, 0x0c2a, 0x0c2e, 0x0c30, 0x0c36, + 0x0c40, 0x0c45, 0x0c51, 0x0c58, 0x0c5c, 0x0c60, 0x0c65, 0x0c6f, + // Entry 1C0 - 1FF + 0x0c77, 0x0c7c, 0x0c81, 0x0c86, 0x0c8e, 0x0c9a, 0x0ca5, 0x0cac, + 0x0cb4, 0x0cbe, 0x0cc3, 0x0cca, 0x0cdc, 0x0ceb, 0x0cf6, 0x0cfc, + 0x0d05, 0x0d0d, 0x0d14, 0x0d1b, 0x0d21, 0x0d2d, 0x0d33, 0x0d33, + 0x0d3e, 0x0d45, 0x0d4e, 0x0d55, 0x0d5a, 0x0d5f, 0x0d6a, 0x0d70, + 0x0d78, 0x0d7f, 0x0d87, 0x0d8b, 0x0d92, 0x0d99, 0x0da8, 0x0daf, + 0x0db5, 0x0dbc, 0x0dc6, 0x0dcd, 0x0dd2, 0x0ddb, 0x0de0, 0x0de0, + 0x0deb, 0x0df1, 0x0df5, 0x0df9, 0x0e01, 0x0e10, 0x0e18, 0x0e20, + 0x0e26, 0x0e2b, 0x0e3a, 0x0e40, 0x0e4c, 0x0e54, 0x0e5f, 0x0e69, + // Entry 200 - 23F + 0x0e74, 0x0e7e, 0x0e85, 0x0e8a, 0x0e91, 0x0e97, 0x0e9b, 0x0ea6, + 0x0eac, 0x0eb0, 0x0eb6, 0x0ebd, 0x0ec9, 0x0ed1, 0x0ed9, 0x0edd, + 0x0ee2, 0x0ee6, 0x0eec, 0x0ef2, 0x0ef8, 0x0efc, 0x0f03, 0x0f09, + 0x0f11, 0x0f19, 0x0f21, 0x0f2a, 0x0f33, 0x0f40, 0x0f46, 0x0f4c, + 0x0f55, 0x0f5d, 0x0f68, 0x0f6f, 0x0f75, 0x0f7c, 0x0f81, 0x0f8a, + 0x0f91, 0x0f98, 0x0f9f, 0x0fa3, 0x0fa6, 0x0fac, 0x0fb1, 0x0fbe, + 0x0fca, 0x0fcf, 0x0fd4, 0x0fdb, 0x0fe2, 0x0fe9, 0x0fee, 0x0ff3, + 0x0ffb, 0x0ffd, 0x1005, 0x100c, 0x1010, 0x1013, 0x1017, 0x101f, + // Entry 240 - 27F + 0x1024, 0x102c, 0x1033, 0x103c, 0x104c, 0x1054, 0x105a, 0x106c, + 0x1071, 0x107f, 0x1083, 0x109a, 0x109a, 0x10a7, 0x10ba, 0x10cc, + 0x10da, 0x10e7, 0x10f7, 0x1110, 0x1121, 0x1132, 0x1132, 0x1142, + 0x1154, 0x1166, 0x116c, 0x117f, 0x1190, 0x1197, 0x11a6, 0x11b4, + 0x11c8, 0x11e0, +} // Size: 1244 bytes + +var faLangStr string = "" + // Size: 7705 bytes + "Ø¢ÙاریآبخازیاوستاییآÙریکانسآکانامهریآراگونیعربیآسامیآواریآیماراییترکی آذر" + + "بایجانیباشغیریبلاروسیبلغاریبیسلامابامباراییبنگالیتبتیبرتونبوسنیاییکاتال" + + "انچچنیچاموروییکورسیکریاییچکیاسلاوی کلیساییچوواشیولزیدانمارکیآلمانیمالدی" + + "ویجونخاییاوه\u200cاییونانیانگلیسیاسپرانتواسپانیاییاستونیاییباسکیÙارسیÙÙˆ" + + "لاییÙنلاندیÙیجیاییÙاروییÙرانسویÙریزی غربیایرلندیگیلی اسکاتلندیگالیسیایی" + + "گوارانیگجراتیمانیهوسیاییعبریهندیموتویی هیریکرواتهائیتیاییمجاریارمنیهریر" + + "وییمیان\u200cزباناندونزیاییاکسیدنتالایگبویییی سیچواناینوپیکایدوایسلندیا" + + "یتالیاییاینوکتیتوتژاپنیجاوه\u200cایگرجیکنگوییکیکویوییکوانیاماقزاقیگرینل" + + "ندیخمریکاناراکره\u200cایکانوریاییکشمیریکردیکومیاییکرنوالیقرقیزیلاتینلوگ" + + "زامبورگیگانداییلیمبورگیلینگالالائوسیلیتوانیاییلوباییâ€Ú©Ø§ØªØ§Ù†Ú¯Ø§Ù„تونیاییمال" + + "اگاسیاییمارشالیمائوریاییمقدونیمالایالامیمغولیمراتیمالاییمالتیبرمه\u200c" + + "اینائوروییانده\u200cبله\u200cای شمالینپالیاندونگاییهلندینروژی Ù†ÛŒ\u200cÙ†" + + "Ùشکنروژی بوک\u200cÙ…Ùلانده\u200cبله\u200cای جنوبیناواهویینیانجاییاوکیتای" + + "یاوجیبواییاوروموییاوریه\u200cایآسیپنجابیپالیلهستانیپشتوپرتغالیکچواییروم" + + "انشروندیاییرومانیاییروسیکینیاروانداییسانسکریتساردینیاییسندیسامی شمالیسا" + + "نگوسینهالیاسلواکیاسلوونیاییساموآییشوناییسومالیاییآلبانیاییصربیسوازیاییس" + + "وتویی جنوبیسونداییسوئدیسواحلیتامیلیتلوگوییتاجیکیتایلندیتیگرینیاییترکمنی" + + "تسواناییتونگاییترکی استانبولیتسونگاییتاتاریتاهیتیاییاویغوریاوکراینیاردو" + + "ازبکیونداییویتنامیولاپوکوالونیولوÙیخوسایییدییوروباییچوانگیچینیزولوییآچئ" + + "یآچولیاییآدانگمه\u200cایآدیجیاییعربی تونسیآÙریهیلیآگیمآینوییاکدیآلاباما" + + "ییآلئوتیآلتایی جنوبیانگلیسی باستانآنگیکاآرامیماپوچه\u200cایآراپاهوییعرب" + + "ÛŒ الجزایریآراواکیعربی مراکشیعربی مصریآسوآستوریبلوچیبالیاییباواریاییباسا" + + "ییبمونیبجاییبمباییبناییبلوچی غربیبوجپوریبیکولیبینیلری بختیاریبراجبراهوی" + + "یبودوییبوریاتیبوگیاییبلینکادوییکاریبیسبوییچیگاچیبچاجغتاییچوکیماریاییچوک" + + "توییچیپه\u200cویه\u200cایچروکیاییشایانیکردی سورانیقبطیترکی کریمهکاشوبید" + + "اکوتاییدارقینیتایتادلاواریدوگریبدینکاییزرمادوگریصÙربی سÙلیدوآلاییهلندی " + + "میانهدیولا ÙونیدایولاییامبواÙیکیمصری کهناکاجوکعیلامیانگلیسی میانهاواندو" + + "ÙانکیÙیلیپینیÙونیÙرانسوی کادینÙرانسوی میانهÙرانسوی باستانÙریزی شمالیÙری" + + "زی شرقیÙریولیاییگاییگاگائوزیاییگایوییگبایاییدری زرتشتیگی\u200cئزیگیلبرت" + + "یگیلکیآلمانی معیار میانهآلمانی علیای باستانگوندیگورونتالوگوتیگریبویییون" + + "انی کهنآلمانی سوئیسیگوسیگویچ اینهایداییهاوائیاییهندی Ùیجیاییهیلی\u200cÚ¯" + + "اینونیهیتیهمونگصÙربی علیاهوپاآیبنایلوکوییاینگوشیلوجباننگومباماچامه" + + "\u200cایÙارسی یهودیعربی یهودیقره\u200cقالپاقیقبایلیکاچینیجوکامباییکاویای" + + "یکاباردینیتیاپیماکوندهکابووردیانوکوروخاسیاییختنیکوجراچینیکهوارکرمانجیکا" + + "لنجینکیمبوندوییکومی پرمیاککنکانیکپله\u200cایقره\u200cچاییâ€Ø¨Ø§Ù„کاریکوروخی" + + "شامبالاباÙیاییکومیکیکوتنیلادینولانگیلاهندالامبالزگیلاکوتامونگوییلوزیایی" + + "لری شمالیلوباییâ€Ù„ولوالویسنولونداییلوئوییلوشه\u200cایلویاچینی ادبیمادورا" + + "ییماگاهیاییمایدیلیماکاسارماندینگوییماساییمکشاییماندارمنده\u200cایمروییم" + + "وریسینایرلندی میانهماکوا متومتاییمیکماکیمینانگ\u200cکابوییمانچوییمیته" + + "\u200cایموهاکیماسیاییماندانگیچندین زبانکریکیمارواریارزیاییمازندرانیناپلی" + + "ناماییآلمانی سÙلینواریایینیاسینیوییکوازیونغایینرس باستاننکوسوتویی شمالی" + + "نویرنواریایی کلاسیکنیام\u200cوزیایینیانکوله\u200cاینیورویینزیماییاوسیجی" + + "ترکی عثمانیپانگاسینانیپهلویپامپانگاییپاپیامنتوپالائوییآلمانی پنسیلوانیا" + + "ییÙارسی باستانÙنیقیپانپییپروسیپرووانسی باستانکیچه\u200cراجستانیراپانویی" + + "راروتونگاییرومبوییرومانوییآرومانیرواییسانداوه\u200cاییاقوتیآرامی سامریس" + + "امبوروساساکیسانتالیسانگوییسیسیلیاسکاتلندیکردی جنوبیسناسلکوپیکویرابورا س" + + "نیایرلندی باستانتاچل\u200cهیتشانیعربی چادیسیداموییسیلزیایی سÙلیسامی جنو" + + "بیلوله سامیایناری سامیاسکولت سامیسونینکه\u200cایسغدیتاکی\u200cتاکیسریری" + + "سوکوماییسوسوییسومریکوموریسریانی کلاسیکسریانیسیلزیاییتمنه\u200cایتسوییتر" + + "نوتتومیتیگره\u200cایتیویکلینگونتلین\u200cگیتیتاماشقیتونگایی نیاساتوک" + + "\u200cپیسینیتسیم\u200cشیانیتومبوکاییتووالوییتسواکیتوواییآمازیغی اطلس مرک" + + "زیاودمورتیاوگاریتیامبوندوییریشهویاییوتیونجووالاموواراییواشوییوارلپیریقل" + + "موقیسوگایییائویییاپیکانتونیزاپوتکیزناگاآمازیغی معیار مراکشزونیاییبدون Ù…" + + "حتوای زبانیزازاییعربی رسمیترکی آذری جنوبیآلمانی اتریشآلمانی معیار سوئیس" + + "انگلیسی استرالیاانگلیسی کاناداانگلیسی بریتانیاانگلیسی امریکااسپانیایی ا" + + "مریکای لاتیناسپانیایی اروپااسپانیایی مکزیکدریÙرانسوی کاناداÙرانسوی سوئی" + + "سساکسونی سÙÙ„ÛŒÙلمنگیپرتغالی برزیلپرتغالی اروپامولداویاییصرب Ùˆ کرواتیسواح" + + "Ù„ÛŒ کنگوییچینی ساده\u200cشدهچینی سنتی" + +var faLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x0016, 0x0024, 0x0034, 0x003c, 0x0046, 0x0054, + 0x005c, 0x0066, 0x0070, 0x0080, 0x009d, 0x00ab, 0x00b9, 0x00c5, + 0x00d3, 0x00e5, 0x00f1, 0x00f9, 0x0103, 0x0113, 0x0121, 0x0129, + 0x0139, 0x0143, 0x014f, 0x0155, 0x0170, 0x017c, 0x0184, 0x0194, + 0x01a0, 0x01ae, 0x01bc, 0x01c9, 0x01d5, 0x01e3, 0x01f3, 0x0205, + 0x0217, 0x0221, 0x022b, 0x0237, 0x0245, 0x0253, 0x025f, 0x026d, + 0x0280, 0x028e, 0x02a9, 0x02bb, 0x02c9, 0x02d5, 0x02dd, 0x02eb, + 0x02f3, 0x02fb, 0x0310, 0x031a, 0x032c, 0x0336, 0x0340, 0x034e, + // Entry 40 - 7F + 0x0361, 0x0375, 0x0387, 0x0395, 0x03a6, 0x03b4, 0x03bc, 0x03ca, + 0x03dc, 0x03f0, 0x03fa, 0x0409, 0x0411, 0x041d, 0x042d, 0x043d, + 0x0447, 0x0457, 0x045f, 0x046b, 0x0478, 0x048a, 0x0496, 0x049e, + 0x04ac, 0x04ba, 0x04c6, 0x04d0, 0x04e6, 0x04f4, 0x0504, 0x0512, + 0x051e, 0x0532, 0x054f, 0x055f, 0x0575, 0x0583, 0x0595, 0x05a1, + 0x05b5, 0x05bf, 0x05c9, 0x05d5, 0x05df, 0x05ee, 0x05fe, 0x0621, + 0x062b, 0x063d, 0x0647, 0x0661, 0x067b, 0x069e, 0x06ae, 0x06be, + 0x06ce, 0x06e0, 0x06f0, 0x0701, 0x0707, 0x0713, 0x071b, 0x0729, + // Entry 80 - BF + 0x0731, 0x073f, 0x074b, 0x0757, 0x0767, 0x0779, 0x0781, 0x079b, + 0x07ab, 0x07bf, 0x07c7, 0x07da, 0x07e4, 0x07f2, 0x0800, 0x0814, + 0x0822, 0x082e, 0x0840, 0x0852, 0x085a, 0x086a, 0x0881, 0x088f, + 0x0899, 0x08a5, 0x08b1, 0x08bf, 0x08cb, 0x08d9, 0x08ed, 0x08f9, + 0x0909, 0x0917, 0x0932, 0x0942, 0x094e, 0x0960, 0x096e, 0x097e, + 0x0986, 0x0990, 0x099c, 0x09aa, 0x09b6, 0x09c2, 0x09cc, 0x09d8, + 0x09de, 0x09ee, 0x09fa, 0x0a02, 0x0a0e, 0x0a16, 0x0a26, 0x0a3b, + 0x0a4b, 0x0a5e, 0x0a6e, 0x0a76, 0x0a82, 0x0a8a, 0x0a9c, 0x0aa8, + // Entry C0 - FF + 0x0aa8, 0x0abf, 0x0ada, 0x0ae6, 0x0af0, 0x0b03, 0x0b03, 0x0b15, + 0x0b2e, 0x0b3c, 0x0b51, 0x0b62, 0x0b68, 0x0b68, 0x0b74, 0x0b74, + 0x0b74, 0x0b7e, 0x0b8c, 0x0b9e, 0x0baa, 0x0bb4, 0x0bb4, 0x0bb4, + 0x0bbe, 0x0bca, 0x0bca, 0x0bd4, 0x0bd4, 0x0bd4, 0x0be7, 0x0bf5, + 0x0c01, 0x0c09, 0x0c09, 0x0c09, 0x0c09, 0x0c09, 0x0c1e, 0x0c26, + 0x0c34, 0x0c40, 0x0c40, 0x0c4e, 0x0c5c, 0x0c5c, 0x0c64, 0x0c64, + 0x0c70, 0x0c7c, 0x0c7c, 0x0c7c, 0x0c86, 0x0c8e, 0x0c98, 0x0ca4, + 0x0cac, 0x0cba, 0x0cba, 0x0cc8, 0x0ce0, 0x0cf0, 0x0cfc, 0x0d11, + // Entry 100 - 13F + 0x0d19, 0x0d19, 0x0d2c, 0x0d38, 0x0d48, 0x0d56, 0x0d60, 0x0d6e, + 0x0d6e, 0x0d7a, 0x0d88, 0x0d90, 0x0d9a, 0x0dad, 0x0dad, 0x0dbb, + 0x0dd0, 0x0de3, 0x0df3, 0x0df3, 0x0dfb, 0x0e05, 0x0e05, 0x0e14, + 0x0e20, 0x0e2c, 0x0e45, 0x0e45, 0x0e51, 0x0e51, 0x0e5b, 0x0e6b, + 0x0e6b, 0x0e73, 0x0e8c, 0x0ea5, 0x0ec0, 0x0ec0, 0x0ed5, 0x0ee8, + 0x0efa, 0x0f02, 0x0f18, 0x0f18, 0x0f24, 0x0f32, 0x0f45, 0x0f52, + 0x0f60, 0x0f6a, 0x0f8c, 0x0fb0, 0x0fb0, 0x0fba, 0x0fcc, 0x0fd4, + 0x0fe2, 0x0ff5, 0x100e, 0x100e, 0x100e, 0x1016, 0x1025, 0x1033, + // Entry 140 - 17F + 0x1033, 0x1045, 0x105c, 0x1075, 0x107d, 0x1087, 0x109a, 0x109a, + 0x10a2, 0x10aa, 0x10aa, 0x10ba, 0x10c8, 0x10c8, 0x10c8, 0x10d4, + 0x10e0, 0x10f3, 0x1108, 0x111b, 0x111b, 0x1132, 0x113e, 0x114a, + 0x114e, 0x115c, 0x116a, 0x117c, 0x117c, 0x1186, 0x1194, 0x11aa, + 0x11aa, 0x11b2, 0x11b2, 0x11c0, 0x11c8, 0x11da, 0x11e4, 0x11f2, + 0x11f2, 0x1200, 0x1214, 0x1229, 0x1235, 0x1235, 0x1244, 0x1266, + 0x1266, 0x1266, 0x1266, 0x1272, 0x1280, 0x128e, 0x128e, 0x129a, + 0x12a4, 0x12b0, 0x12ba, 0x12c6, 0x12d0, 0x12d8, 0x12d8, 0x12d8, + // Entry 180 - 1BF + 0x12d8, 0x12e4, 0x12e4, 0x12f2, 0x1300, 0x1311, 0x1311, 0x132a, + 0x1336, 0x1344, 0x1350, 0x135f, 0x1367, 0x1378, 0x1378, 0x1388, + 0x1388, 0x139a, 0x13a8, 0x13b6, 0x13ca, 0x13d6, 0x13d6, 0x13e2, + 0x13ee, 0x13fd, 0x1407, 0x1415, 0x142e, 0x143f, 0x1449, 0x1457, + 0x1472, 0x1480, 0x148f, 0x149b, 0x14a9, 0x14a9, 0x14b9, 0x14cc, + 0x14d6, 0x14d6, 0x14e4, 0x14e4, 0x14e4, 0x14f2, 0x1504, 0x1504, + 0x150e, 0x151a, 0x152f, 0x153f, 0x1549, 0x1553, 0x1553, 0x155f, + 0x155f, 0x1569, 0x157c, 0x157c, 0x1582, 0x1599, 0x15a1, 0x15be, + // Entry 1C0 - 1FF + 0x15d5, 0x15ec, 0x15fa, 0x1608, 0x1614, 0x1629, 0x163f, 0x1649, + 0x165d, 0x166f, 0x167f, 0x167f, 0x16a4, 0x16a4, 0x16bb, 0x16bb, + 0x16c5, 0x16c5, 0x16c5, 0x16d1, 0x16db, 0x16f8, 0x1703, 0x1703, + 0x1713, 0x1723, 0x1739, 0x1739, 0x1739, 0x1747, 0x1757, 0x1757, + 0x1757, 0x1757, 0x1765, 0x176f, 0x1784, 0x1790, 0x17a5, 0x17b3, + 0x17bf, 0x17cd, 0x17cd, 0x17cd, 0x17db, 0x17e7, 0x17f9, 0x17f9, + 0x180c, 0x180c, 0x1812, 0x1812, 0x181e, 0x1837, 0x1852, 0x1852, + 0x1863, 0x186b, 0x187c, 0x188c, 0x18a5, 0x18a5, 0x18b8, 0x18c9, + // Entry 200 - 23F + 0x18de, 0x18f3, 0x1908, 0x1910, 0x1923, 0x192d, 0x192d, 0x192d, + 0x193d, 0x1949, 0x1953, 0x195f, 0x1978, 0x1984, 0x1994, 0x1994, + 0x19a3, 0x19ad, 0x19b5, 0x19bf, 0x19d0, 0x19d8, 0x19d8, 0x19d8, + 0x19e6, 0x19f9, 0x19f9, 0x1a07, 0x1a20, 0x1a35, 0x1a35, 0x1a35, + 0x1a35, 0x1a4a, 0x1a4a, 0x1a5c, 0x1a6c, 0x1a78, 0x1a84, 0x1aa6, + 0x1ab6, 0x1ac6, 0x1ad8, 0x1ae0, 0x1aea, 0x1aea, 0x1aea, 0x1aea, + 0x1aea, 0x1af0, 0x1af0, 0x1af8, 0x1af8, 0x1b04, 0x1b10, 0x1b1c, + 0x1b2c, 0x1b2c, 0x1b38, 0x1b38, 0x1b44, 0x1b50, 0x1b58, 0x1b58, + // Entry 240 - 27F + 0x1b58, 0x1b58, 0x1b66, 0x1b74, 0x1b74, 0x1b74, 0x1b7e, 0x1ba2, + 0x1bb0, 0x1bd0, 0x1bdc, 0x1bed, 0x1c09, 0x1c20, 0x1c42, 0x1c61, + 0x1c7c, 0x1c9b, 0x1cb6, 0x1ce2, 0x1cff, 0x1d1c, 0x1d22, 0x1d3d, + 0x1d56, 0x1d6d, 0x1d79, 0x1d92, 0x1dab, 0x1dbf, 0x1dd5, 0x1dee, + 0x1e08, 0x1e19, +} // Size: 1244 bytes + +var fiLangStr string = "" + // Size: 4703 bytes + "afarabhaasiavestaafrikaansakanamharaaragoniaarabiaassamiavaariaimaraazer" + + "ibaÅ¡kiirivalkovenäjäbulgariabislamabambarabengalitiibetbretonibosniakata" + + "laanitÅ¡etÅ¡eenitÅ¡amorrokorsikacreetÅ¡ekkikirkkoslaavitÅ¡uvassikymritanskasa" + + "ksadivehidzongkhaewekreikkaenglantiesperantoespanjavirobaskifarsifulanis" + + "uomifidžifääriranskalänsifriisiiirigaeligaliciaguaranigudžaratimanksihau" + + "sahepreahindihiri-motukroatiahaitiunkariarmeniahererointerlinguaindonesi" + + "ainterlingueigbosichuanin-yiinupiaqidoislantiitaliainuktitutjapanijaavag" + + "eorgiakongokikujukuanjamakazakkikalaallisutkhmerkannadakoreakanurikaÅ¡mir" + + "ikurdikomikornikirgiisilatinaluxemburggandalimburglingalalaoliettuakatan" + + "ganlubalatviamalagassimarshallmaorimakedoniamalajalammongolimarathimalai" + + "jimaltaburmanaurupohjois-ndebelenepalindongahollantinorjan nynorsknorjan" + + " bokmÃ¥letelä-ndebelenavajonjandžaoksitaaniodžibwaoromoorijaosseettipandž" + + "abipaalipuolapaÅ¡tuportugaliketÅ¡uaretoromaanirundiromaniavenäjäruandasans" + + "kritsardisindhipohjoissaamesangosinhalaslovakkisloveenisamoaÅ¡onasomalial" + + "baniaserbiaswazieteläsothosundaruotsiswahilitamilitelugutadžikkithaitigr" + + "injaturkmeenitswanatongaturkkitsongatataaritahitiuiguuriukrainaurduuzbek" + + "kivendavietnamvolapükvalloniwolofxhosajiddiÅ¡jorubazhuangkiinazuluatÅ¡ehat" + + "Å¡oliadangmeadygetunisianarabiaafrihiliaghemainuakkadialabamaaleuttigega" + + "ltaimuinaisenglantiangikavaltakunnanarameamapudungunaraonaarapahoalgeria" + + "narabiaarawakmarokonarabiaegyptinarabiaasuamerikkalainen viittomakielias" + + "turiakotavaawadhibelutÅ¡ibalibaijeribasaabamumbatak-tobaghomalabedžabemba" + + "betawibenafutbadagalänsibelutÅ¡ibhodžpuribikolbinibanjarkomsiksikabiÅ¡nupr" + + "iabahtiaribradžbrahuibodokooseburjaattibugibulubilinmedumbacaddokaribica" + + "yugaatsamcebuanokigatÅ¡ibtÅ¡atÅ¡agataichuukmarichinook-jargonchoctawchipewy" + + "ancherokeecheyennesoranikopticapiznonkrimintataarikaÅ¡ubidakotadargitaita" + + "delawareslevidogribdinkadjermadogrialasorbidusundualakeskihollantijola-f" + + "onyidjuladazagaembuefikemiliamuinaisegyptiekajukelamikeskienglantialaska" + + "njupikewondoextremadurafangfilipinomeänkielifoncajunkeskiranskamuinaisra" + + "nskaarpitaanipohjoisfriisiitäfriisifriuligagagauzigan-kiinagajogbajazoro" + + "astrialaisdarige’ezkiribatigilakikeskiyläsaksamuinaisyläsaksagoankonkani" + + "gondigorontalogoottigrebomuinaiskreikkasveitsinsaksawayuufrafragusiigwit" + + "Å¡inhaidahakka-kiinahavaijifidžinhindihiligainoheettihmongyläsorbixiang-" + + "kiinahupaibanibibioilokoinguuÅ¡iinkeroinenjamaikankreolienglantilojbanngo" + + "mbamachamejuutalaispersiajuutalaisarabiajuuttikarakalpakkikabyylikatÅ¡inj" + + "jukambakavikabardikanembutyapmakondekapverdenkreolikenyangnorsunluuranni" + + "konkorokaingangkhasikhotanikoyra chiinikhowarkirmanjkikakokalenjinkimbun" + + "dukomipermjakkikonkanikosraekpellekaratÅ¡ai-balkaarikriokinaray-akarjalak" + + "urukhshambalabafiakölschkumykkikutenailadinolangolahndalambalezgilingua " + + "franca novaliguuriliivilakotalombardimongolozipohjoislurilatgalliluluanl" + + "ubaluiseñolundaluolusailuhyaklassinen kiinalazimaduramafamagahimaithilim" + + "akassarmandingomaasaimabamokÅ¡amandarmendemerumorisyenkeski-iirimakua-mee" + + "ttometa’micmacminangkabaumantÅ¡umanipurimohawkmossivuorimarimundangmonia " + + "kieliäcreekmirandeesimarwarimentawaimyeneersämazandaranimin nan -kiinana" + + "polinamaalasaksanewariniasniueao nagakwasiongiemboonnogaimuinaisnorjanov" + + "ialn’kopohjoissothonuerklassinen newarinyamwezinyankolenyoronzimaosageos" + + "manipangasinanpahlavipampangapapiamentupalaupicardipennsylvaniansaksapla" + + "utdietschmuinaispersiapfaltsifoinikiapiemontepontoksenkreikkapohnpeimuin" + + "aispreussimuinaisprovensaalikʼicheʼchimborazonylänköketÅ¡uaradžastanirapa" + + "nuirarotongaromagnolitarifitromboromanirotumaruteenirovianaaromaniarwasa" + + "ndawejakuuttisamarianarameasamburusasaksantalisauraÅ¡tringambaysangusisil" + + "iaskottisassarinsardieteläkurdisenecasenaseriselkuppikoyraboro sennimuin" + + "aisiirisamogiittitaÅ¡elhitshantÅ¡adinarabiasidamosleesiansaksaselayaretelä" + + "saameluulajansaameinarinsaamekoltansaamesoninkesogdisrananserersahosater" + + "landinfriisisukumasususumerikomorimuinaissyyriasyyriasleesiatulutemnetes" + + "oterenotetumtigretivtokelautsahuriklingontlingittaliÅ¡itamaÅ¡ekmalawintong" + + "atok-pisinturojotarokotsakoniatsimÅ¡itatitumbukatuvalutasawaqtuvakeskiatl" + + "aksentamazightudmurttiugaritmbundujuurivaivenetsiavepsälänsiflaamimainin" + + "frankkivatjavõrovunjowalserwolaittawaraywashowarlpiriwu-kiinakalmukkimin" + + "grelisogajaojapiyangbenyembañeengatúkantoninkiinazapoteekkiblisskielisee" + + "lantizenagavakioitu tamazightzuniei kielellistä sisältöäzazayleisarabiai" + + "tävallansaksasveitsinyläsaksaaustralianenglantikanadanenglantibritannian" + + "englantiamerikanenglantiamerikanespanjaeuroopanespanjameksikonespanjakan" + + "adanranskasveitsinranskaalankomaidenalasaksaflaamibrasilianportugalieuro" + + "opanportugalimoldovaserbokroaattikingwanayksinkertaistettu kiinaperintei" + + "nen kiina" + +var fiLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000b, 0x0011, 0x001a, 0x001e, 0x0024, 0x002c, + 0x0032, 0x0038, 0x003e, 0x0044, 0x0049, 0x0052, 0x005f, 0x0067, + 0x006e, 0x0075, 0x007c, 0x0082, 0x0089, 0x008f, 0x0098, 0x00a3, + 0x00ac, 0x00b3, 0x00b7, 0x00be, 0x00ca, 0x00d3, 0x00d8, 0x00de, + 0x00e3, 0x00e9, 0x00f1, 0x00f4, 0x00fb, 0x0103, 0x010c, 0x0113, + 0x0117, 0x011c, 0x0121, 0x0127, 0x012c, 0x0132, 0x0139, 0x013f, + 0x014b, 0x014f, 0x0154, 0x015b, 0x0162, 0x016c, 0x0172, 0x0177, + 0x017d, 0x0182, 0x018b, 0x0192, 0x0197, 0x019d, 0x01a4, 0x01aa, + // Entry 40 - 7F + 0x01b5, 0x01be, 0x01c9, 0x01cd, 0x01d9, 0x01e0, 0x01e3, 0x01ea, + 0x01f0, 0x01f9, 0x01ff, 0x0204, 0x020b, 0x0210, 0x0216, 0x021e, + 0x0225, 0x0230, 0x0235, 0x023c, 0x0241, 0x0247, 0x024f, 0x0254, + 0x0258, 0x025d, 0x0265, 0x026b, 0x0274, 0x0279, 0x0280, 0x0287, + 0x028a, 0x0291, 0x029d, 0x02a3, 0x02ac, 0x02b4, 0x02b9, 0x02c2, + 0x02cb, 0x02d2, 0x02d9, 0x02e0, 0x02e5, 0x02ea, 0x02ef, 0x02fe, + 0x0304, 0x030a, 0x0312, 0x0320, 0x032e, 0x033c, 0x0342, 0x034a, + 0x0353, 0x035b, 0x0360, 0x0365, 0x036d, 0x0376, 0x037b, 0x0380, + // Entry 80 - BF + 0x0386, 0x038f, 0x0396, 0x03a1, 0x03a6, 0x03ad, 0x03b5, 0x03bb, + 0x03c3, 0x03c8, 0x03ce, 0x03da, 0x03df, 0x03e6, 0x03ee, 0x03f6, + 0x03fb, 0x0400, 0x0406, 0x040d, 0x0413, 0x0418, 0x0423, 0x0428, + 0x042e, 0x0435, 0x043b, 0x0441, 0x044a, 0x044e, 0x0456, 0x045f, + 0x0465, 0x046a, 0x0470, 0x0476, 0x047d, 0x0483, 0x048a, 0x0491, + 0x0495, 0x049c, 0x04a1, 0x04a8, 0x04b0, 0x04b7, 0x04bc, 0x04c1, + 0x04c8, 0x04ce, 0x04d4, 0x04d9, 0x04dd, 0x04e3, 0x04ea, 0x04f1, + 0x04f6, 0x0504, 0x050c, 0x0511, 0x0515, 0x051b, 0x0522, 0x0529, + // Entry C0 - FF + 0x052c, 0x0531, 0x0540, 0x0546, 0x0557, 0x0561, 0x0567, 0x056e, + 0x057c, 0x0582, 0x058f, 0x059c, 0x059f, 0x05bb, 0x05c2, 0x05c8, + 0x05ce, 0x05d6, 0x05da, 0x05e1, 0x05e6, 0x05eb, 0x05f5, 0x05fc, + 0x0602, 0x0607, 0x060d, 0x0611, 0x0614, 0x061a, 0x0628, 0x0632, + 0x0637, 0x063b, 0x0641, 0x0644, 0x064b, 0x0655, 0x065d, 0x0663, + 0x0669, 0x066d, 0x0672, 0x067b, 0x067f, 0x0683, 0x0688, 0x068f, + 0x0694, 0x069a, 0x06a0, 0x06a5, 0x06ac, 0x06b0, 0x06b9, 0x06c2, + 0x06c7, 0x06cb, 0x06d9, 0x06e0, 0x06e9, 0x06f1, 0x06f9, 0x06ff, + // Entry 100 - 13F + 0x0704, 0x070c, 0x0719, 0x0720, 0x0726, 0x072b, 0x0730, 0x0738, + 0x073d, 0x0743, 0x0748, 0x074e, 0x0753, 0x075b, 0x0760, 0x0765, + 0x0772, 0x077c, 0x0781, 0x0787, 0x078b, 0x078f, 0x0795, 0x07a2, + 0x07a8, 0x07ad, 0x07ba, 0x07c6, 0x07cc, 0x07d7, 0x07db, 0x07e3, + 0x07ed, 0x07f0, 0x07f5, 0x0800, 0x080d, 0x0816, 0x0823, 0x082d, + 0x0833, 0x0835, 0x083c, 0x0845, 0x0849, 0x084e, 0x0860, 0x0867, + 0x086f, 0x0875, 0x0883, 0x0893, 0x089e, 0x08a3, 0x08ac, 0x08b2, + 0x08b7, 0x08c5, 0x08d2, 0x08d7, 0x08dd, 0x08e2, 0x08ea, 0x08ef, + // Entry 140 - 17F + 0x08fa, 0x0901, 0x090d, 0x0916, 0x091c, 0x0921, 0x092a, 0x0935, + 0x0939, 0x093d, 0x0943, 0x0948, 0x0950, 0x095a, 0x0970, 0x0976, + 0x097c, 0x0983, 0x0992, 0x09a1, 0x09a7, 0x09b3, 0x09ba, 0x09c1, + 0x09c4, 0x09c9, 0x09cd, 0x09d4, 0x09db, 0x09df, 0x09e6, 0x09f5, + 0x09fc, 0x0a11, 0x0a19, 0x0a1e, 0x0a25, 0x0a31, 0x0a37, 0x0a40, + 0x0a44, 0x0a4c, 0x0a54, 0x0a61, 0x0a68, 0x0a6e, 0x0a74, 0x0a86, + 0x0a8a, 0x0a93, 0x0a9a, 0x0aa0, 0x0aa8, 0x0aad, 0x0ab4, 0x0abb, + 0x0ac2, 0x0ac8, 0x0acd, 0x0ad3, 0x0ad8, 0x0add, 0x0aef, 0x0af6, + // Entry 180 - 1BF + 0x0afb, 0x0b01, 0x0b09, 0x0b0e, 0x0b12, 0x0b1d, 0x0b25, 0x0b2f, + 0x0b37, 0x0b3c, 0x0b3f, 0x0b44, 0x0b49, 0x0b58, 0x0b5c, 0x0b62, + 0x0b66, 0x0b6c, 0x0b74, 0x0b7c, 0x0b84, 0x0b8a, 0x0b8e, 0x0b94, + 0x0b9a, 0x0b9f, 0x0ba3, 0x0bab, 0x0bb5, 0x0bc1, 0x0bc8, 0x0bce, + 0x0bd9, 0x0be0, 0x0be8, 0x0bee, 0x0bf3, 0x0bfc, 0x0c03, 0x0c10, + 0x0c15, 0x0c1f, 0x0c26, 0x0c2e, 0x0c33, 0x0c38, 0x0c43, 0x0c51, + 0x0c57, 0x0c5b, 0x0c63, 0x0c69, 0x0c6d, 0x0c71, 0x0c78, 0x0c7e, + 0x0c87, 0x0c8c, 0x0c98, 0x0c9e, 0x0ca4, 0x0cb0, 0x0cb4, 0x0cc4, + // Entry 1C0 - 1FF + 0x0ccc, 0x0cd4, 0x0cd9, 0x0cde, 0x0ce3, 0x0ce9, 0x0cf3, 0x0cfa, + 0x0d02, 0x0d0c, 0x0d11, 0x0d18, 0x0d2a, 0x0d36, 0x0d43, 0x0d4a, + 0x0d52, 0x0d5a, 0x0d6a, 0x0d71, 0x0d7f, 0x0d91, 0x0d9a, 0x0db4, + 0x0dbf, 0x0dc6, 0x0dcf, 0x0dd8, 0x0ddf, 0x0de4, 0x0dea, 0x0df0, + 0x0df7, 0x0dfe, 0x0e06, 0x0e09, 0x0e10, 0x0e18, 0x0e26, 0x0e2d, + 0x0e32, 0x0e39, 0x0e43, 0x0e4a, 0x0e4f, 0x0e56, 0x0e5c, 0x0e69, + 0x0e74, 0x0e7a, 0x0e7e, 0x0e82, 0x0e8a, 0x0e99, 0x0ea4, 0x0eae, + 0x0eb7, 0x0ebb, 0x0ec8, 0x0ece, 0x0edb, 0x0ee2, 0x0eed, 0x0efa, + // Entry 200 - 23F + 0x0f05, 0x0f10, 0x0f17, 0x0f1c, 0x0f22, 0x0f27, 0x0f2b, 0x0f3c, + 0x0f42, 0x0f46, 0x0f4c, 0x0f52, 0x0f5f, 0x0f65, 0x0f6c, 0x0f70, + 0x0f75, 0x0f79, 0x0f7f, 0x0f84, 0x0f89, 0x0f8c, 0x0f93, 0x0f9a, + 0x0fa1, 0x0fa8, 0x0faf, 0x0fb7, 0x0fc3, 0x0fcc, 0x0fd2, 0x0fd8, + 0x0fe0, 0x0fe7, 0x0feb, 0x0ff2, 0x0ff8, 0x0fff, 0x1003, 0x1019, + 0x1021, 0x1027, 0x102d, 0x1032, 0x1035, 0x103d, 0x1043, 0x104f, + 0x105c, 0x1061, 0x1066, 0x106b, 0x1071, 0x1079, 0x107e, 0x1083, + 0x108b, 0x1093, 0x109b, 0x10a3, 0x10a7, 0x10aa, 0x10ae, 0x10b5, + // Entry 240 - 27F + 0x10ba, 0x10c4, 0x10d1, 0x10db, 0x10e5, 0x10ed, 0x10f3, 0x1105, + 0x1109, 0x1124, 0x1128, 0x1133, 0x1133, 0x1142, 0x1153, 0x1165, + 0x1174, 0x1186, 0x1196, 0x11a5, 0x11b4, 0x11c3, 0x11c3, 0x11d0, + 0x11de, 0x11f2, 0x11f8, 0x120a, 0x121b, 0x1222, 0x122f, 0x1237, + 0x124e, 0x125f, +} // Size: 1244 bytes + +var filLangStr string = "" + // Size: 2154 bytes + "AbkhazianAfrikaansAkanAmharicArabeAssameseAymaraAzerbaijaniBashkirBelaru" + + "sianBulgarianBambaraBengaliTibetanBretonBosnianCatalanChechenCorsicanCze" + + "chChuvashWelshDanishGermanDivehiDzongkhaEweGreekInglesEsperantoEspanyolE" + + "stonianBasquePersianFinnishFijianFaroeseFrenchKanlurang FrisianIrishScot" + + "s GaelicGalicianGuaraniGujaratiManxHausaHebrewHindiCroatianHaitianHungar" + + "ianArmenianInterlinguaIndonesianInterlingueIgboSichuan YiIcelandicItalia" + + "nInuktitutJapaneseJavaneseGeorgianKongoKikuyuKazakhKalaallisutKhmerKanna" + + "daKoreanKashmiriKurdishCornishKirghizLatinLuxembourgishGandaLingalaLaoLi" + + "thuanianLuba-KatangaLatvianMalagasyMaoriMacedonianMalayalamMongolianMara" + + "thiMalayMalteseBurmeseHilagang NdebeleNepaliDutchNorwegian NynorskNorweg" + + "ian BokmalNyanjaOccitanOromoOriyaOsseticPunjabiPolishPashtoPortugesQuech" + + "uaRomanshRundiRomanianRussianKinyarwandaSanskritSindhiHilagang SamiSango" + + "SinhalaSlovakSlovenianSamoanShonaSomaliAlbanianSerbianSwatiSouthern Soth" + + "oSundaneseSwedishSwahiliTamilTeluguTajikThaiTigrinyaTurkmenTswanaTonganT" + + "urkishTsongaTatarTahitianUyghurUkranianUrduUzbekVendaVietnameseWolofXhos" + + "aYiddishYorubaChineseZuluAcoliAghemMapucheAsuBembaBenaKanlurang BalochiB" + + "odoChigaCherokeeCentral KurdishTaitaZarmaLower SorbianDualaJola-FonyiEmb" + + "uEfikFilipinoGaGagauzSwiss GermanGusiiHawaiianUpper SorbianNgombaMachame" + + "KabyleKambaMakondeKabuverdianuKoyra ChiiniKalenjinKomi-PermyakKonkaniSha" + + "mbalaBafiaLangiLakotaLoziHilagang LuriLuba-LuluaLuoLuyiaMasaiMeruMorisye" + + "nMakhuwa-MeettoMeta’MohawkMundangMazanderaniNamaLow GermanKwasioN’KoNort" + + "hern SothoNuerNyankoleKʼicheʼRomboRwaSamburuSanguKatimugang KurdishSenaK" + + "oyraboro SenniTachelhitKatimugang SamiLule SamiInari SamiSkolt SamiComor" + + "ianTesoTetumKlingonTok PisinTumbukaTasawaqTamazight ng Gitnang AtlasHind" + + "i Kilalang WikaVaiVunjoWarlpiriSogaCantoneseStandard Moroccan TamazightW" + + "alang nilalaman na ukol sa wikaModernong Karaniwang ArabeAustrian German" + + "Swiss High GermanIngles ng AustralyaIngles sa CanadaIngles ng BritishIng" + + "les (US)Latin American na EspanyolEuropean SpanishEspanyol ng MehikoCana" + + "dian FrenchSwiss FrenchLow SaxonFlemishPortuges ng BrasilEuropean Portug" + + "ueseMoldavianSerbo-CroatianSwahili (Congo)Simplified Chinese" + +var filLangIdx = []uint16{ // 609 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0009, 0x0012, 0x0016, 0x001d, 0x001d, + 0x0022, 0x002a, 0x002a, 0x0030, 0x003b, 0x0042, 0x004c, 0x0055, + 0x0055, 0x005c, 0x0063, 0x006a, 0x0070, 0x0077, 0x007e, 0x0085, + 0x0085, 0x008d, 0x008d, 0x0092, 0x0092, 0x0099, 0x009e, 0x00a4, + 0x00aa, 0x00b0, 0x00b8, 0x00bb, 0x00c0, 0x00c6, 0x00cf, 0x00d7, + 0x00df, 0x00e5, 0x00ec, 0x00ec, 0x00f3, 0x00f9, 0x0100, 0x0106, + 0x0117, 0x011c, 0x0128, 0x0130, 0x0137, 0x013f, 0x0143, 0x0148, + 0x014e, 0x0153, 0x0153, 0x015b, 0x0162, 0x016b, 0x0173, 0x0173, + // Entry 40 - 7F + 0x017e, 0x0188, 0x0193, 0x0197, 0x01a1, 0x01a1, 0x01a1, 0x01aa, + 0x01b1, 0x01ba, 0x01c2, 0x01ca, 0x01d2, 0x01d7, 0x01dd, 0x01dd, + 0x01e3, 0x01ee, 0x01f3, 0x01fa, 0x0200, 0x0200, 0x0208, 0x020f, + 0x020f, 0x0216, 0x021d, 0x0222, 0x022f, 0x0234, 0x0234, 0x023b, + 0x023e, 0x0248, 0x0254, 0x025b, 0x0263, 0x0263, 0x0268, 0x0272, + 0x027b, 0x0284, 0x028b, 0x0290, 0x0297, 0x029e, 0x029e, 0x02ae, + 0x02b4, 0x02b4, 0x02b9, 0x02ca, 0x02da, 0x02da, 0x02da, 0x02e0, + 0x02e7, 0x02e7, 0x02ec, 0x02f1, 0x02f8, 0x02ff, 0x02ff, 0x0305, + // Entry 80 - BF + 0x030b, 0x0313, 0x031a, 0x0321, 0x0326, 0x032e, 0x0335, 0x0340, + 0x0348, 0x0348, 0x034e, 0x035b, 0x0360, 0x0367, 0x036d, 0x0376, + 0x037c, 0x0381, 0x0387, 0x038f, 0x0396, 0x039b, 0x03a9, 0x03b2, + 0x03b9, 0x03c0, 0x03c5, 0x03cb, 0x03d0, 0x03d4, 0x03dc, 0x03e3, + 0x03e9, 0x03ef, 0x03f6, 0x03fc, 0x0401, 0x0409, 0x040f, 0x0417, + 0x041b, 0x0420, 0x0425, 0x042f, 0x042f, 0x042f, 0x0434, 0x0439, + 0x0440, 0x0446, 0x0446, 0x044d, 0x0451, 0x0451, 0x0456, 0x0456, + 0x0456, 0x0456, 0x0456, 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, + // Entry C0 - FF + 0x045b, 0x045b, 0x045b, 0x045b, 0x045b, 0x0462, 0x0462, 0x0462, + 0x0462, 0x0462, 0x0462, 0x0462, 0x0465, 0x0465, 0x0465, 0x0465, + 0x0465, 0x0465, 0x0465, 0x0465, 0x0465, 0x0465, 0x0465, 0x0465, + 0x0465, 0x046a, 0x046a, 0x046e, 0x046e, 0x046e, 0x047f, 0x047f, + 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, + 0x047f, 0x0483, 0x0483, 0x0483, 0x0483, 0x0483, 0x0483, 0x0483, + 0x0483, 0x0483, 0x0483, 0x0483, 0x0483, 0x0488, 0x0488, 0x0488, + 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0490, 0x0490, 0x049f, + // Entry 100 - 13F + 0x049f, 0x049f, 0x049f, 0x049f, 0x049f, 0x049f, 0x04a4, 0x04a4, + 0x04a4, 0x04a4, 0x04a4, 0x04a9, 0x04a9, 0x04b6, 0x04b6, 0x04bb, + 0x04bb, 0x04c5, 0x04c5, 0x04c5, 0x04c9, 0x04cd, 0x04cd, 0x04cd, + 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04cd, 0x04d5, + 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, 0x04d5, + 0x04d5, 0x04d7, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, + 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, + 0x04dd, 0x04dd, 0x04e9, 0x04e9, 0x04e9, 0x04ee, 0x04ee, 0x04ee, + // Entry 140 - 17F + 0x04ee, 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x04f6, 0x0503, 0x0503, + 0x0503, 0x0503, 0x0503, 0x0503, 0x0503, 0x0503, 0x0503, 0x0503, + 0x0509, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0516, 0x0516, + 0x0516, 0x051b, 0x051b, 0x051b, 0x051b, 0x051b, 0x0522, 0x052e, + 0x052e, 0x052e, 0x052e, 0x052e, 0x052e, 0x053a, 0x053a, 0x053a, + 0x053a, 0x0542, 0x0542, 0x054e, 0x0555, 0x0555, 0x0555, 0x0555, + 0x0555, 0x0555, 0x0555, 0x0555, 0x055d, 0x0562, 0x0562, 0x0562, + 0x0562, 0x0562, 0x0567, 0x0567, 0x0567, 0x0567, 0x0567, 0x0567, + // Entry 180 - 1BF + 0x0567, 0x056d, 0x056d, 0x056d, 0x0571, 0x057e, 0x057e, 0x0588, + 0x0588, 0x0588, 0x058b, 0x058b, 0x0590, 0x0590, 0x0590, 0x0590, + 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0595, 0x0595, 0x0595, + 0x0595, 0x0595, 0x0599, 0x05a1, 0x05a1, 0x05af, 0x05b6, 0x05b6, + 0x05b6, 0x05b6, 0x05b6, 0x05bc, 0x05bc, 0x05bc, 0x05c3, 0x05c3, + 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05c3, 0x05ce, 0x05ce, + 0x05ce, 0x05d2, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05dc, 0x05e2, + 0x05e2, 0x05e2, 0x05e2, 0x05e2, 0x05e8, 0x05f6, 0x05fa, 0x05fa, + // Entry 1C0 - 1FF + 0x05fa, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, + 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, + 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x0602, 0x060b, 0x060b, + 0x060b, 0x060b, 0x060b, 0x060b, 0x060b, 0x0610, 0x0610, 0x0610, + 0x0610, 0x0610, 0x0610, 0x0613, 0x0613, 0x0613, 0x0613, 0x061a, + 0x061a, 0x061a, 0x061a, 0x061a, 0x061f, 0x061f, 0x061f, 0x061f, + 0x0631, 0x0631, 0x0635, 0x0635, 0x0635, 0x0644, 0x0644, 0x0644, + 0x064d, 0x064d, 0x064d, 0x064d, 0x064d, 0x064d, 0x065c, 0x0665, + // Entry 200 - 23F + 0x066f, 0x0679, 0x0679, 0x0679, 0x0679, 0x0679, 0x0679, 0x0679, + 0x0679, 0x0679, 0x0679, 0x0681, 0x0681, 0x0681, 0x0681, 0x0681, + 0x0681, 0x0685, 0x0685, 0x068a, 0x068a, 0x068a, 0x068a, 0x068a, + 0x0691, 0x0691, 0x0691, 0x0691, 0x0691, 0x069a, 0x069a, 0x069a, + 0x069a, 0x069a, 0x069a, 0x06a1, 0x06a1, 0x06a8, 0x06a8, 0x06c2, + 0x06c2, 0x06c2, 0x06c2, 0x06d5, 0x06d8, 0x06d8, 0x06d8, 0x06d8, + 0x06d8, 0x06d8, 0x06d8, 0x06dd, 0x06dd, 0x06dd, 0x06dd, 0x06dd, + 0x06e5, 0x06e5, 0x06e5, 0x06e5, 0x06e9, 0x06e9, 0x06e9, 0x06e9, + // Entry 240 - 27F + 0x06e9, 0x06e9, 0x06f2, 0x06f2, 0x06f2, 0x06f2, 0x06f2, 0x070d, + 0x070d, 0x072d, 0x072d, 0x0747, 0x0747, 0x0756, 0x0767, 0x077a, + 0x078a, 0x079b, 0x07a6, 0x07c0, 0x07d0, 0x07e2, 0x07e2, 0x07f1, + 0x07fd, 0x0806, 0x080d, 0x081f, 0x0832, 0x083b, 0x0849, 0x0858, + 0x086a, +} // Size: 1242 bytes + +var frLangStr string = "" + // Size: 4218 bytes + "afarabkhazeavestiqueafrikaansakanamhariquearagonaisarabeassamaisavarayma" + + "raazéribachkirbiélorussebulgarebichelamarbambarabengalitibétainbretonbos" + + "niaquecatalantchétchènechamorrocorsecreetchèqueslavon d’églisetchouvache" + + "galloisdanoisallemandmaldiviendzongkhaéwégrecanglaisespérantoespagnolest" + + "onienbasquepersanpeulfinnoisfidjienféroïenfrançaisfrison occidentalirlan" + + "daisgaélique écossaisgalicienguaranigujaratimanxhaoussahébreuhindihiri m" + + "otucroatecréole haïtienhongroisarménienhérérointerlinguaindonésieninterl" + + "ingueigboyi du Sichuaninupiaqidoislandaisitalieninuktitutjaponaisjavanai" + + "sgéorgienkongokikuyukuanyamakazakhgroenlandaiskhmerkannadacoréenkanourik" + + "ashmirikurdekomicorniquekirghizelatinluxembourgeoisgandalimbourgeoisling" + + "alalaolituanienluba-katangalettonmalgachemarshallmaorimacédonienmalayala" + + "mmongolmarathemalaismaltaisbirmannauruanndébélé du Nordnépalaisndonganée" + + "rlandaisnorvégien nynorsknorvégien bokmÃ¥lndébélé du Sudnavahonyanjaoccit" + + "anojibwaoromooriyaossètependjabipalipolonaispachtoportugaisquechuaromanc" + + "heroundiroumainrusserwandasanskritsardesindhisami du Nordsanghocinghalai" + + "sslovaqueslovènesamoanshonasomalialbanaisserbeswatisesothosoundanaissuéd" + + "oisswahilitamoultélougoutadjikthaïtigrignaturkmènetswanatonguienturctson" + + "gatatartahitienouïghourukrainienourdououzbekvendavietnamienvolapukwallon" + + "wolofxhosayiddishyorubazhuangchinoiszoulouacehacoliadangmeadyghéenafrihi" + + "liaghemaïnouakkadienaléoutealtaï du Sudancien anglaisangikaaraméenmapuch" + + "earapahoarawakassouasturienawadhibaloutchibalinaisbassabamounghomalabedj" + + "abembabénabafutbaloutchi occidentalbhojpuribikolbinikomsiksikabrajbodoak" + + "oosebouriatebugibouloublinmedumbacaddocaribecayugaatsamcebuanokigachibch" + + "atchaghataïchuukmarijargon chinookchoctawchipewyancherokeecheyennesorani" + + "copteturc de Criméekachoubedakotadargwataitadelawareslaveydogribdinkazar" + + "madogribas-sorabedoualamoyen néerlandaisdiola-fognydiouladazagaembouefik" + + "égyptien ancienekajukélamitemoyen anglaiséwondofangfilipinofonmoyen fra" + + "nçaisancien françaisfranco-provençalfrison du Nordfrison orientalfrioula" + + "ngagagaouzegayogbayaguèzegilbertaismoyen haut-allemandancien haut allema" + + "ndgondigorontalogotiquegrebogrec anciensuisse allemandgusiigwichʼinhaida" + + "hawaïenhiligaynonhittitehmonghaut-sorabehupaibanibibioilokanoingoucheloj" + + "banngombamachamejudéo-persanjudéo-arabekarakalpakkabylekachinjjukambakaw" + + "ikabardinkanemboutyapmakondecapverdienkorokhasikhotanaiskoyra chiinikako" + + "kalenjinkiMboundoukomi-permiakkonkanikusaienkpellékaratchaï balkarcaréli" + + "enkurukhchambalabafiafrancique ripuairekoumykkutenailadinolangilahndalam" + + "balezghienlakotamongolozilori du Nordluba-lulualuisenolundaluolushaiolul" + + "uyiamaduraismafamagahimaithilimakassarmandinguemasaimabamoksamandarmendé" + + "meroucréole mauricienmoyen irlandaismakhuwa-meettométa’micmacminangkabau" + + "mandchoumanipurimohawkmorémundangmultilinguecreekmirandaismarwarîmyènèer" + + "zyamazandéraninapolitainnamabas-allemandnewariniasniuékwasiongiemboonnog" + + "aïvieux norroisn’kosotho du Nordnuernewarî classiquenyamwezinyankolényor" + + "onzemaosageturc ottomanpangasinanpahlavipampanganpapiamentopalaupersan a" + + "ncienphénicienpohnpeiprovençal ancienk’iche’rajasthanirapanuirarotongien" + + "rombotziganevalaquerwasandaweiakoutearaméen samaritainsamburusasaksantal" + + "ngambaysangusicilienécossaiskurde du Sudsenecasenaselkoupekoyraboro senn" + + "iancien irlandaischleuhshanarabe tchadiensidamosami du Sudsami de Lulesa" + + "mi d’Inarisami skoltsoninkésogdiensranan tongosérèresahosukumasoussousum" + + "ériencomoriensyriaque classiquesyriaquetemnetesoterenotetumtigrétivtoke" + + "lauklingontlingittamacheqtonga nyasatok pisintarokotsimshiantumbukatuval" + + "utasawaqtouvatamazightoudmourteougaritiqueumbunduracinevaïvotevunjowalse" + + "rwalamowaraywashowarlpirikalmouksogayaoyapoisyangbenyembacantonaiszapotè" + + "quesymboles Blisszenagaamazighe standard marocainzunisans contenu lingui" + + "stiquezazakiarabe standard moderneallemand autrichienallemand suisseangl" + + "ais australienanglais canadienanglais britanniqueanglais américainespagn" + + "ol latino-américainespagnol européenespagnol mexicainfrançais canadienfr" + + "ançais suissebas-saxon néerlandaisflamandportugais brésilienportugais eu" + + "ropéenmoldaveserbo-croateswahili du Congochinois simplifiéchinois tradit" + + "ionnel" + +var frLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000b, 0x0014, 0x001d, 0x0021, 0x002a, 0x0033, + 0x0038, 0x0040, 0x0044, 0x004a, 0x0050, 0x0057, 0x0062, 0x0069, + 0x0073, 0x007a, 0x0081, 0x008a, 0x0090, 0x0099, 0x00a0, 0x00ac, + 0x00b4, 0x00b9, 0x00bd, 0x00c5, 0x00d7, 0x00e1, 0x00e8, 0x00ee, + 0x00f6, 0x00ff, 0x0107, 0x010c, 0x0110, 0x0117, 0x0121, 0x0129, + 0x0131, 0x0137, 0x013d, 0x0141, 0x0148, 0x014f, 0x0158, 0x0161, + 0x0172, 0x017b, 0x018e, 0x0196, 0x019d, 0x01a5, 0x01a9, 0x01b0, + 0x01b7, 0x01bc, 0x01c5, 0x01cb, 0x01db, 0x01e3, 0x01ec, 0x01f4, + // Entry 40 - 7F + 0x01ff, 0x020a, 0x0215, 0x0219, 0x0226, 0x022d, 0x0230, 0x0239, + 0x0240, 0x0249, 0x0251, 0x0259, 0x0262, 0x0267, 0x026d, 0x0275, + 0x027b, 0x0287, 0x028c, 0x0293, 0x029a, 0x02a1, 0x02a9, 0x02ae, + 0x02b2, 0x02ba, 0x02c2, 0x02c7, 0x02d5, 0x02da, 0x02e6, 0x02ed, + 0x02f0, 0x02f9, 0x0305, 0x030b, 0x0313, 0x031b, 0x0320, 0x032b, + 0x0334, 0x033a, 0x0341, 0x0347, 0x034e, 0x0354, 0x035b, 0x036d, + 0x0376, 0x037c, 0x0388, 0x039a, 0x03ac, 0x03bd, 0x03c3, 0x03c9, + 0x03d0, 0x03d6, 0x03db, 0x03e0, 0x03e7, 0x03ef, 0x03f3, 0x03fb, + // Entry 80 - BF + 0x0401, 0x040a, 0x0411, 0x0419, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0439, 0x043e, 0x0444, 0x0450, 0x0456, 0x0460, 0x0468, 0x0470, + 0x0476, 0x047b, 0x0481, 0x0489, 0x048e, 0x0493, 0x049a, 0x04a4, + 0x04ac, 0x04b3, 0x04b9, 0x04c2, 0x04c8, 0x04cd, 0x04d5, 0x04de, + 0x04e4, 0x04ec, 0x04f0, 0x04f6, 0x04fb, 0x0503, 0x050c, 0x0515, + 0x051b, 0x0521, 0x0526, 0x0530, 0x0537, 0x053d, 0x0542, 0x0547, + 0x054e, 0x0554, 0x055a, 0x0561, 0x0567, 0x056b, 0x0570, 0x0577, + 0x0580, 0x0580, 0x0588, 0x058d, 0x0593, 0x059b, 0x059b, 0x05a3, + // Entry C0 - FF + 0x05a3, 0x05b0, 0x05be, 0x05c4, 0x05cc, 0x05d3, 0x05d3, 0x05da, + 0x05da, 0x05e0, 0x05e0, 0x05e0, 0x05e5, 0x05e5, 0x05ed, 0x05ed, + 0x05f3, 0x05fc, 0x0604, 0x0604, 0x0609, 0x060f, 0x060f, 0x0616, + 0x061b, 0x0620, 0x0620, 0x0625, 0x062a, 0x062a, 0x063e, 0x0646, + 0x064b, 0x064f, 0x064f, 0x0652, 0x0659, 0x0659, 0x0659, 0x065d, + 0x065d, 0x0661, 0x0667, 0x066f, 0x0673, 0x0679, 0x067d, 0x0684, + 0x0689, 0x068f, 0x0695, 0x069a, 0x06a1, 0x06a5, 0x06ac, 0x06b7, + 0x06bc, 0x06c0, 0x06ce, 0x06d5, 0x06de, 0x06e6, 0x06ee, 0x06f4, + // Entry 100 - 13F + 0x06f9, 0x06f9, 0x0708, 0x0710, 0x0716, 0x071c, 0x0721, 0x0729, + 0x072f, 0x0735, 0x073a, 0x073f, 0x0744, 0x074e, 0x074e, 0x0754, + 0x0766, 0x0771, 0x0777, 0x077d, 0x0782, 0x0786, 0x0786, 0x0796, + 0x079c, 0x07a4, 0x07b1, 0x07b1, 0x07b8, 0x07b8, 0x07bc, 0x07c4, + 0x07c4, 0x07c7, 0x07c7, 0x07d6, 0x07e6, 0x07f7, 0x0805, 0x0814, + 0x081c, 0x081e, 0x0826, 0x0826, 0x082a, 0x082f, 0x082f, 0x0835, + 0x083f, 0x083f, 0x0852, 0x0866, 0x0866, 0x086b, 0x0874, 0x087b, + 0x0880, 0x088b, 0x089a, 0x089a, 0x089a, 0x089f, 0x08a8, 0x08ad, + // Entry 140 - 17F + 0x08ad, 0x08b5, 0x08b5, 0x08bf, 0x08c6, 0x08cb, 0x08d6, 0x08d6, + 0x08da, 0x08de, 0x08e4, 0x08eb, 0x08f3, 0x08f3, 0x08f3, 0x08f9, + 0x08ff, 0x0906, 0x0913, 0x091f, 0x091f, 0x0929, 0x092f, 0x0935, + 0x0938, 0x093d, 0x0941, 0x0949, 0x0951, 0x0955, 0x095c, 0x0966, + 0x0966, 0x096a, 0x096a, 0x096f, 0x0978, 0x0984, 0x0984, 0x0984, + 0x0988, 0x0990, 0x099a, 0x09a6, 0x09ad, 0x09b4, 0x09bb, 0x09cc, + 0x09cc, 0x09cc, 0x09d5, 0x09db, 0x09e3, 0x09e8, 0x09fa, 0x0a00, + 0x0a07, 0x0a0d, 0x0a12, 0x0a18, 0x0a1d, 0x0a25, 0x0a25, 0x0a25, + // Entry 180 - 1BF + 0x0a25, 0x0a2b, 0x0a2b, 0x0a30, 0x0a34, 0x0a40, 0x0a40, 0x0a4a, + 0x0a51, 0x0a56, 0x0a59, 0x0a5f, 0x0a67, 0x0a67, 0x0a67, 0x0a6f, + 0x0a73, 0x0a79, 0x0a81, 0x0a89, 0x0a92, 0x0a97, 0x0a9b, 0x0aa0, + 0x0aa6, 0x0aac, 0x0ab1, 0x0ac2, 0x0ad1, 0x0adf, 0x0ae7, 0x0aed, + 0x0af8, 0x0b00, 0x0b08, 0x0b0e, 0x0b13, 0x0b13, 0x0b1a, 0x0b25, + 0x0b2a, 0x0b33, 0x0b3b, 0x0b3b, 0x0b42, 0x0b47, 0x0b53, 0x0b53, + 0x0b5d, 0x0b61, 0x0b6d, 0x0b73, 0x0b77, 0x0b7c, 0x0b7c, 0x0b82, + 0x0b8b, 0x0b91, 0x0b9e, 0x0b9e, 0x0ba4, 0x0bb1, 0x0bb5, 0x0bc6, + // Entry 1C0 - 1FF + 0x0bce, 0x0bd7, 0x0bdc, 0x0be1, 0x0be6, 0x0bf2, 0x0bfc, 0x0c03, + 0x0c0c, 0x0c16, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c28, 0x0c28, + 0x0c32, 0x0c32, 0x0c32, 0x0c39, 0x0c39, 0x0c4a, 0x0c55, 0x0c55, + 0x0c5f, 0x0c66, 0x0c71, 0x0c71, 0x0c71, 0x0c76, 0x0c7d, 0x0c7d, + 0x0c7d, 0x0c7d, 0x0c84, 0x0c87, 0x0c8e, 0x0c95, 0x0ca8, 0x0caf, + 0x0cb4, 0x0cba, 0x0cba, 0x0cc1, 0x0cc6, 0x0cce, 0x0cd7, 0x0cd7, + 0x0ce3, 0x0ce9, 0x0ced, 0x0ced, 0x0cf5, 0x0d04, 0x0d14, 0x0d14, + 0x0d1a, 0x0d1e, 0x0d2c, 0x0d32, 0x0d32, 0x0d32, 0x0d3d, 0x0d49, + // Entry 200 - 23F + 0x0d57, 0x0d61, 0x0d69, 0x0d70, 0x0d7c, 0x0d84, 0x0d88, 0x0d88, + 0x0d8e, 0x0d95, 0x0d9e, 0x0da6, 0x0db8, 0x0dc0, 0x0dc0, 0x0dc0, + 0x0dc5, 0x0dc9, 0x0dcf, 0x0dd4, 0x0dda, 0x0ddd, 0x0de4, 0x0de4, + 0x0deb, 0x0df2, 0x0df2, 0x0dfa, 0x0e05, 0x0e0e, 0x0e0e, 0x0e14, + 0x0e14, 0x0e1d, 0x0e1d, 0x0e24, 0x0e2a, 0x0e31, 0x0e36, 0x0e3f, + 0x0e48, 0x0e53, 0x0e5a, 0x0e60, 0x0e64, 0x0e64, 0x0e64, 0x0e64, + 0x0e64, 0x0e68, 0x0e68, 0x0e6d, 0x0e73, 0x0e79, 0x0e7e, 0x0e83, + 0x0e8b, 0x0e8b, 0x0e92, 0x0e92, 0x0e96, 0x0e99, 0x0e9f, 0x0ea6, + // Entry 240 - 27F + 0x0eab, 0x0eab, 0x0eb4, 0x0ebe, 0x0ecc, 0x0ecc, 0x0ed2, 0x0eec, + 0x0ef0, 0x0f09, 0x0f0f, 0x0f25, 0x0f25, 0x0f38, 0x0f47, 0x0f59, + 0x0f69, 0x0f7c, 0x0f8e, 0x0fa8, 0x0fba, 0x0fcb, 0x0fcb, 0x0fdd, + 0x0fed, 0x1003, 0x100a, 0x101e, 0x1031, 0x1038, 0x1044, 0x1054, + 0x1066, 0x107a, +} // Size: 1244 bytes + +var frCALangStr string = "araukanluoMeta’bas allemand" + +var frCALangIdx = []uint16{ // 435 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 100 - 13F + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 140 - 17F + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 180 - 1BF + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x001d, +} // Size: 894 bytes + +var guLangStr string = "" + // Size: 11388 bytes + "અફારઅબખાજિયનઅવેસà«àª¤àª¨àª†àª«à«àª°àª¿àª•àª¨à«àª¸àª…કાનàªàª®à«àª¹àª¾àª°àª¿àª•àª…રà«àª—ોનીàªàª…રબીઆસામીઅવેરિકઆયમારાઅàªàª°" + + "બૈજાનીબશà«àª•à«€àª°àª¬à«‡àª²àª¾àª°à«àª¶àª¿àª¯àª¨àª¬àª²à«àª—ેરિયનબિસà«àª²àª¾àª®àª¾àª¬àª¾àª®à«àª¬àª¾àª°àª¾àª¬àª‚ગાળીતિબેટીયનબà«àª°à«‡àªŸà«‹àª¨àª¬à«‹" + + "સà«àª¨àª¿àª¯àª¨àª•àª¤àª²àª¾àª¨àªšà«‡àªšàª¨àª•à«‡àª®à«‹àª°à«‹àª•à«‹àª°à«àª¸àª¿àª•àª¨àª•à«àª°à«€àªšà«‡àª•àªšàª°à«àªš સà«àª²àª¾àªµàª¿àª•àªšà«‚વાશવેલà«àª¶àª¡à«‡àª¨àª¿àª¶àªœàª°à«àª®àª¨àª¦àª¿" + + "વેહીડà«àªà«‹àª‚ગà«àª–ાઈવગà«àª°à«€àª•àª…ંગà«àª°à«‡àªœà«€àªàª¸à«àªªà«‡àª°àª¾àª¨à«àªŸà«‹àª¸à«àªªà«‡àª¨àª¿àª¶àªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¨àª¬àª¾àª¸à«àª•àª«àª¾àª°àª¸à«€àª«à«àª²àª¾àª¹" + + "ફિનિશફિજીયનફોરિસà«àª¤àª«à«àª°à«‡àª¨à«àªšàªªàª¶à«àªšàª¿àª®à«€ ફà«àª°àª¿àª¸àª¿àª¯àª¨àª†àª‡àª°àª¿àª¶àª¸à«àª•à«‹àªŸà«àª¸ ગેલિકગેલિશિયનગà«àª†" + + "રાનીગà«àªœàª°àª¾àª¤à«€àª®àª¾àª‚કà«àª¸àª¹à«Œàª¸àª¾àª¹à«€àª¬à«àª°à«àª¹àª¿àª¨à«àª¦à«€àª¹àª¿àª°à«€ મોટૂકà«àª°à«‹àªàª¶àª¿àª¯àª¨àª¹à«ˆàª¤à«€àª¯àª¨àª¹àª‚ગેરિયનઆરà«àª®à«‡" + + "નિયનહેરેરોઇંટરલિંગà«àª†àª‡àª¨à«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¨àª‡àª‚ટરલિંગઇગà«àª¬à«‹àª¸àª¿àªšà«àª†àª¨ યીઇનà«àªªàª¿àª¯àª¾àª•àª‡àª¡à«Œàª†àª‡àª¸àª²à«‡àª¨" + + "à«àª¡àª¿àª•àª‡àªŸàª¾àª²àª¿àª¯àª¨àª‡àª¨à«àª•àª¿àªŸà«‚ટજાપાનીàªàªœàª¾àªµàª¾àª¨à«€àª¸àªœà«àª¯à«‹àª°à«àªœàª¿àª…નકોંગોકિકà«àª¯à«‚કà«àªµàª¾àª¨à«àª¯àª¾àª®àª¾àª•àªàª¾àª–કલ" + + "ાલà«àª²àª¿àª¸à«àª¤àª–à«àª®à«‡àª°àª•àª¨à«àª¨àª¡àª•à«‹àª°àª¿àª¯àª¨àª•àª¨à«àª°à«€àª•àª¾àª¶à«àª®à«€àª°à«€àª•à«àª°à«àª¦àª¿àª¶àª•à«‹àª®à«€àª•à«‹àª°à«àª¨àª¿àª¶àª•àª¿àª°à«àª—à«€àªàª²à«‡àªŸàª¿àª¨àª²àª•à«" + + "àªà«‡àª®àª¬àª°à«àª—િશગાંડાલિંબૂરà«àª—િશલિંગાલાલાઓથિયનલિથà«àª¨àª¿àª¯àª¨àª²à«àª¯à«‚બા કટાંગાલાતવિયનમલાગ" + + "સીમારà«àª¶àª²à«€àªàª®àª¾àª“રીમેસેડોનિયનમલયાલમમોંગોલિયનમરાઠીમલયમાલà«àªŸàª¿àªàª¬àª°à«àª®à«€àªàª¨àª¾àª‰àª°à«‚ઉતà«àª¤" + + "ર દેબેલનેપાળીડોનà«àª—ાડચનૉરà«àªµà«‡àªœà«€àª¯àª¨ નાયનૉરà«àª¸à«àª•àª¨à«‹àª°à«àªµà«‡àªœà«€àª¯àª¨ બોકમાલદકà«àª·àª¿àª£ દેબે" + + "લનાવાજોનà«àª¯àª¾àª¨à«àªœàª¾àª“કà«àª¸àª¿àªŸàª¨àª“àªàª¿àª‚બà«àªµàª¾àª“રોમોઉડિયાઓસà«àª¸à«‡àªŸàª¿àª•àªªàª‚જાબીપાલીપોલીશપશà«àª¤à«‹àªªà«‹" + + "રà«àªŸà«àª—à«€àªàª•à«àªµà«‡àªšà«àª†àª°à«‹àª®àª¾àª¨à«àª¶àª°à«‚નà«àª¦à«€àª°à«‹àª®àª¾àª¨àª¿àª¯àª¨àª°àª¶àª¿àª¯àª¨àª•àª¿àª¨à«àª¯àª¾àª°àªµàª¾àª¨à«àª¡àª¾àª¸àª‚સà«àª•à«ƒàª¤àª¸àª¾àª°à«àª¦àª¿àª¨àª¿àª¯àª¨" + + "સિંધીઉતà«àª¤àª°à«€àª¯ સામીસાંગોસિંહાલીસà«àª²à«‹àªµà«…કસà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¨àª¸àª¾àª®à«‹àª¨àª¶à«‹àª¨àª¾àª¸à«‹àª®àª¾àª²à«€àª…લà«àª¬à«‡àª¨àª¿àª¯àª¨" + + "સરà«àª¬àª¿àª¯àª¨àª¸à«àªµàª¾àª¤à«€àª¸àª¦àª°à«àª¨ સોથોસંડેનીàªàª¸à«àªµà«€àª¡àª¿àª¶àª¸à«àªµàª¾àª¹àª¿àª²à«€àª¤àª®àª¿àª²àª¤à«‡àª²à«àª—à«àª¤àª¾àªœà«€àª•àª¥àª¾àªˆàªŸàª¾àª‡àª—à«àª°àª¿" + + "નિયાતà«àª°à«àª•àª®à«‡àª¨àª¤à«àª¸à«àªµàª¾àª¨àª¾àªŸà«‹àª‚ગાનટરà«àª•à«€àª¶àª¸à«‹àª‚ગાતતારતાહિતિયનઉઇગà«àª°àª¯à«àª•à«àª°à«‡àª¨àª¿àª¯àª¨àª‰àª°à«àª¦à«‚ઉ" + + "àªà«àª¬à«‡àª•àªµà«‡àª¨à«àª¦àª¾àªµàª¿àª¯à«‡àª¤àª¨àª¾àª®à«€àª¸àªµà«‹àª²àª¾àªªà«àª•àªµàª¾àª²à«‚નવોલોફખોસાયિદà«àª¦àª¿àª¶àª¯à«‹àª°à«‚બાàªà«àª†àª—ચાઇનીàªàªà«àª²à«àª…" + + "ચીનીàªàª•à«‹àª²à«€àª…દાંગà«àª®à«€àª…દિઘેઅફà«àª°àª¿àª¹àª¿àª²à«€àª…ઘેમàªàª¨à«àª…કà«àª•àª¾àª¦à«€àª¯àª¾àª¨àª…લેઉતદકà«àª·àª¿àª£ અલà«àª¤àª¾àª‡àªœà«àª¨à«€" + + " અંગà«àª°à«‡àªœà«€àª…ંગીકાઅરà«àª®àª¾àª‡àª•àª®à«‡àªªà«àªšà«‡àª…રાપાહોઆલà«àªœà«‡àª°àª¿àª¯àª¨ અરબીઅરાવકમોરોકà«àª•àª¨ અરબીઈજિપà«" + + "શિયન અરબીઅસà«àª…સà«àª¤à«àª°àª¿àª¯àª¨àª…વધીબલૂચીબાલિનીસબસાબેજાબેમà«àª¬àª¾àª¬à«‡àª¨àª¾àªªàª¶à«àªšàª¿àª®à«€ બાલોચીભો" + + "જપà«àª°à«€àª¬àª¿àª•à«‹àª²àª¬àª¿àª¨à«€àª¸àª¿àª•à«àª¸àª¿àª•àª¾àª¬àª¿àª·à«àª¨à«àªªà«àª°àª¿àª¯àª¾àªµà«àª°àªœàª¬à«àª°àª¾àª¹à«àªˆàª¬à«‹àª¡à«‹àª¬à«àª°àª¿àª¯àª¾àª¤àª¬àª—િનીસબà«àª²àª¿àª¨àª•àª¡à«" + + "ડોકરિબઅતà«àª¸àª®àª¸àª¿àª¬à«àª†àª¨à«‹àªšàª¿àª—ાચિબà«àªšàª¾àª›àª—ાતાઇચૂકીસેમારીચિનૂક જારà«àª—નચોકà«àª¤à«Œàª¶àª¿àªªà«‡àªµà«àª¯àª¾" + + "નશેરોકીશેયેનà«àª¨àª¸à«‡àª¨à«àªŸà«àª°àª² કà«àª°à«àª¦àª¿àª¶àª•à«‹àªªà«àªŸàª¿àª•àª•à«àª°àª¿àª®àª¿àª¯àª¨ તà«àª°à«àª•à«€àª•àª¾àª¶à«àª¬àª¿àª¯àª¨àª¦àª¾àª•à«‹àª¤àª¾àª¦àª¾àª°à«" + + "ગવાતૈતાદેલેવેરસà«àª²à«‡àªµàª¡à«‹àª—à«àª°àª¿àª¬àª¦àª¿àª¨à«àª•àª¾àªàª°à«àª®àª¾àª¡à«‹àª—à«àª°à«€àª¨àª¿àª®à«àª¨ સોરà«àª¬àª¿àª¯àª¨àª¦à«àª†àª²àª¾àª®àª§à«àª¯ ડચજ" + + "ોલા-ફોનà«àª¯à«€àª¡à«àª¯à«àª²àª¾àªàª®à«àª¬à«àªàª«àª¿àª•àªªà«àª°àª¾àªšà«€àª¨ ઇજીપà«àª¶àª¿àª¯àª¨àªàª•àª¾àªœà«àª•àªàª²àª¾àª®àª¾àª‡àªŸàª®àª¿àª¡àª¿àª² અંગà«àª°à«‡àªœà«€àª‡" + + "વોનà«àª¡à«‹àª«à«‡àª‚ગફિલિપિનોફોનમિડિલ ફà«àª°à«‡àª‚ચજૂની ફà«àª°à«‡àª‚ચનોરà«àª§àª°à«àª¨ ફà«àª°àª¿àª¶àª¿àª¯àª¨àªªà«‚રà«àªµ ફà«àª°" + + "િશિયનફà«àª°àª¿àª¯à«àª²àª¿àª¯àª¾àª¨Gaગાગાàªàª—ાયોબાયાàªà«‹àª°à«‹àª¸à«àªŸà«àª°àª¿àª…ન દારીગીàªàªœàª¿àª²à«àª¬àª°àªŸà«€àªàª®àª§à«àª¯ હાઇ જ" + + "રà«àª®àª¨àªœà«‚ની હાઇ જરà«àª®àª¨àª—ોઅન કોંકણીગોંડીગોરોનà«àª¤àª¾àª²à«‹àª—ોથિકગà«àª°à«‡àª¬à«‹àªªà«àª°àª¾àªšà«€àª¨ ગà«àª°à«€àª•àª¸à«" + + "વિસ જરà«àª®àª¨àª—à«àª¸à«€àª—à«àªµàª¿àªšâ€™àª‡àª¨àª¹à«ˆàª¡àª¾àª¹àª¾àªµàª¾àª‡àª¯àª¨àª«à«€àªœà«€ હિંદીહિલિગેનોનહિટà«àªŸàª¿àª¤à«‡àª®à«‹àª‚ગઅપà«àªªàª° સ" + + "ોરà«àª¬àª¿àª¯àª¨àª¹à«‚પાઇબાનઇલોકોઇંગà«àª¶àª²à«‹àªœà«àª¬àª¾àª¨àª¨àª—ોમà«àª¬àª¾àª®àª•àª¾àª®à«‡àªœà«àª¦à«‡àª“-પરà«àª¶àª¿àª¯àª¨àªœà«àª¦à«‡àª“-અરબીકાર" + + "ા-કલà«àªªàª•àª•àª¬àª¾àª‡àª²àª•àª¾àªšàª¿àª¨àªœà«àªœà«àª•àª®à«àª¬àª¾àª•àª¾àªµà«€àª•àª¬àª¾àª°à«àª¡àª¿àª¯àª¨àª¤à«àª¯àª¾àªªàª®àª•à«‹àª¨à«àª¡à«‡àª•àª¾àª¬à«àªµàª°à«àª¡àª¿àª†àª¨à«àª•à«‹àª°à«‹àª–ાસ" + + "ીખોતાનીસકોયરા ચિનિકલેજિનકિમà«àª¬àª¨à«àª¦à«àª•à«‹àª®à«€-પરà«àª®à«àª¯àª¾àª•àª•à«‹àª‚કણીકોસરિયનકà«àªªà«‡àª²à«àª²à«‡àª•àª°àª¾" + + "ચય-બલà«àª•àª¾àª°àª•àª°à«‡àª²àª¿àª¯àª¨àª•à«àª°à«‚ખશમà«àª¬àª¾àª²àª¾àª¬àª«àª¿àª¯àª¾àª•à«àª®à«€àª•àª•à«àª¤à«‡àª¨àª¾àª‡àª²àª¾àª¦à«€àª¨à«‹àª²àª‚ગીલાહનà«àª¡àª¾àª²àª¾àª®à«àª¬àª¾àª²à«‡" + + "àªàª§à«€àª¯àª¨àª²àª¿àª‚ગà«àªµàª¾ ફેનà«àª•àª¾ નોવાલાકોટામોગોલોàªà«€àª‰àª¤à«àª¤àª°à«€àª¯ લà«àª°à«€àª²à«àª¯à«‚બા-લà«àª²à«àª†àª²à«àª‡àª¸à«‡àª¨à«‹àª²" + + "à«àª¨à«àª¡àª¾àª²à«àª¯à«àª“લà«àª¶àª¾àª‡àª²à«àªˆàª¯àª¾àª®àª¾àª¦à«àª°à«€àª¸àª®àª—હીમૈથિલીમકાસરમનà«àª¡àª¿àª¨à«àª—ોમસાઇમોકà«àª·àª®àª‚ડારમેનà«àª¡" + + "ેમેરà«àª®à«‹àª°à«€àª¸à«àª¯à«‡àª¨àª®àª¿àª¡àª¿àª² આઇરિશમાખà«àªµàª¾-મીટà«àªŸà«àª®à«‡àª¤àª¾àª®àª¿àª•àª®à«‡àª•àª®àª¿àª¨àª¾àª‚ગà«àª•àª¾àª¬àª¾àª‰àª®àª¾àª¨à«àªšà«àª®àª£àª¿àªª" + + "à«àª°à«€àª®à«‹àª¹à«Œàª•àª®à«‹àª¸à«àª¸à«€àªªàª¶à«àªšàª¿àª®à«€ મારીમà«àª¨àª¡àª¾àª¨à«àª—બહà«àªµàª¿àª§ ભાષાકà«àª°àª¿àª•àª®àª¿àª°àª¾àª‚ડીમારવાડીàªàª°à«àªàª¯àª¾" + + "મàªàª¾àª¨à«àª¦à«‡àª°àª¾àª¨à«€àª¨à«‡àªªà«‹àª²àª¿àªŸàª¾àª¨àª¨àª®àª¾àª²à«‹ જરà«àª®àª¨àª¨à«‡àªµàª¾àª¡à«€àª¨àª¿àª¯àª¾àª¸àª¨àª¿àª¯à«àª†àª¨àª•à«àªµàª¾àª¸àª¿àª“નોગાઇજૂની નોરà«àª¸" + + "àªàª¨â€™àª•à«‹àª‰àª¤àª°à«€ સોથોનà«àªàª°àªªàª°àª‚પરાગત નેવારીનà«àª¯àª¾àª®àªµà«‡àªà«€àª¨à«àª¯àª¾àª¨àª•à«‹àª²àª¨à«àª¯à«‹àª°à«‹àª¨à«àªàª¿àª®àª¾àª“સેજઓટોમ" + + "ાન તà«àª°à«àª•àª¿àª¶àªªàª‚ગાસીનાનપહલવીપમà«àªªàª¾àª¨à«àª—ાપાપિયામેનà«àªŸà«‹àªªàª²àª¾àª‰àª†àª¨àªœà«‚ની ફારસીફોનિશિયનપ" + + "ોહપિàªàª¨àªœà«àª¨à«€ પà«àª°à«‹àªµà«‡àª¨à«àª¸àª²àª•àª¿àªšà«‡àª°àª¾àªœàª¸à«àª¥àª¾àª¨à«€àª°àª¾àªªàª¾àª¨à«àª‡àª°àª¾àª°à«‹àªŸà«‹àª‚ગનરોમà«àª¬à«‹àª°à«‹àª®àª¾àª¨à«€àª…રોમેનિય" + + "નરવાસોંડવેયાકૂતસામરિટાન અરેમિકસમà«àª¬à«àª°à«àª¸àª¾àª¸àª¾àª•àª¸àª‚તાલીસાંગà«àª¸àª¿àª¸àª¿àª²àª¿àª¯àª¾àª¨àª¸à«àª•à«‹àªŸà«àª¸àª¸" + + "રà«àª˜àª¨ કà«àª°à«àª¦à«€àª¶àª¸à«‡àª¨àª¾àª¸à«‡àª²à«àª•àªªàª•à«‹àª¯àª°àª¾àª¬à«‹àª°à«‹ સેનà«àª¨à«€àªœà«‚ની આયરિશતેશીલહિટશેનસિદામોદકà«àª·àª¿" + + "ણ સામીલà«àª¯à«àª² સામીઇનારી સામીસà«àª•à«‹àª²à«àªŸ સામીસોનિનà«àª•à«‡àª¸à«‹àª—à«àª¡àª¿àªàª¨àª¸à«àª°àª¾àª¨àª¨ ટોનà«àª—ોસેર" + + "ેરસà«àª•à«àª®àª¾àª¸à«àª¸à«àª¸à«àª®à«‡àª°àª¿àª¯àª¨àª•à«‹àª®à«‹àª°àª¿àª¯àª¨àªªàª°àª‚પરાગત સિરિàªàª•àª¸àª¿àª°àª¿àªàª•àª¤à«àª²à«àªŸàª¿àª®à«àª¨à«‡àª¤à«‡àª¸à«‹àª¤à«‡àª°à«‡àª¨à«‹àª¤" + + "ેતà«àª®àªŸàª¾àª‡àª—à«àª°à«‡àª¤àª¿àªµàª¤à«‹àª•à«‡àª²àª¾àª‰àª•à«àª²àª¿àª¨à«àª—ોનલિંગિતતામાશેખનà«àª¯àª¾àª¸àª¾ ટોનà«àª—ાટોક પિસિનસિમà«àª¶" + + "િયનમà«àª¸à«àª²àª¿àª® તાટતà«àª®à«àª¬à«àª•àª¾àª¤à«àªµàª¾àª²à«àª¤àª¸àª¾àªµàª¾àª•àªŸà«àªµà«€àª¨àª¿àª¯àª¨àª¸à«‡àª¨à«àªŸà«àª°àª² àªàªŸà«àª²àª¸ તામાàªàª¿àª—à«àªŸàª‰àª¦àª®à«" + + "રà«àª¤àª¯à«àª—ેરિટિકઉમà«àª¬à«àª¨à«àª¡à«‚મૂલવાઇવોટિકવà«àª¨à«àªœà«‹àªµàª²àª¾àª®à«‹àªµàª¾àª°à«‡àªµàª¾àª¶à«‹àªµàª¾àª°à«àª²à«àªªà«€àª°à«€àª•àª¾àª²à«àª®àª¿àª•àª¸à«‹" + + "ગાયાઓયાપીસકેંટોનીàªàªà«‡àªªà«‹àªŸà«‡àª•àª¬à«àª²àª¿àª¸àª¿àª®à«àª¬à«‹àª²à«àª¸àªà«‡àª¨àª¾àª—ાપà«àª°àª®àª¾àª£àª­à«‚ત મોરોકà«àª•àª¨ તામાàªàª¿àª—" + + "à«àªŸàªà«‚નીકોઇ ભાષાશાસà«àª¤à«àª°à«€àª¯ સામગà«àª°à«€ નથીàªàª¾àªàª¾àª®à«‹àª¡àª°à«àª¨ સà«àªŸàª¾àª¨à«àª¡àª°à«àª¡ અરબીઓસà«àªŸà«àª°àª¿àª…ન" + + " જરà«àª®àª¨àª¸à«àªµàª¿àª¸ હાય જરà«àª®àª¨àª“સà«àªŸà«àª°à«‡àª²àª¿àª¯àª¨ અંગà«àª°à«‡àªœà«€àª•à«‡àª¨à«‡àª¡àª¿àª¯àª¨ અંગà«àª°à«‡àªœà«€àª¬à«àª°àª¿àªŸàª¿àª¶ અંગà«àª°à«‡" + + "જીઅમેરિકન અંગà«àª°à«‡àªœà«€àª²à«‡àªŸàª¿àª¨ અમેરિકન સà«àªªà«‡àª¨àª¿àª¶àª¯à«àª°à«‹àªªàª¿àª¯àª¨ સà«àªªà«‡àª¨àª¿àª¶àª®à«‡àª•à«àª¸àª¿àª•àª¨ સà«àªªà«‡àª¨àª¿" + + "શકેનેડિયન ફà«àª°à«‡àª‚ચસà«àªµàª¿àª¸ ફà«àª°à«‡àª‚ચલો સેકà«àª¸à«‹àª¨àª«à«àª²à«‡àª®àª¿àª¶àª¬à«àª°àª¾àªàª¿àª²à«€àª¯àª¨ પોરà«àªŸà«àª—à«€àªàª¯à«àª°à«‹àªª" + + "િયન પોરà«àªŸà«àª—à«€àªàª®à«‹àª²àª¡àª¾àªµàª¿àª¯àª¨àª¸àª°à«àª¬à«‹-કà«àª°à«‹àªàª¶àª¿àª¯àª¨àª•à«‹àª‚ગો સà«àªµàª¾àª¹àª¿àª²à«€àª¸àª°àª³à«€àª•à«ƒàª¤ ચાઇનીàªàªªàª¾àª°àª‚પ" + + "રિક ચાઇનીàª" + +var guLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0024, 0x0039, 0x0054, 0x0060, 0x0078, 0x0090, + 0x009c, 0x00ab, 0x00bd, 0x00cf, 0x00ea, 0x00fc, 0x011a, 0x0135, + 0x014d, 0x0165, 0x0177, 0x018f, 0x01a4, 0x01bc, 0x01cb, 0x01d7, + 0x01e9, 0x0201, 0x020d, 0x0216, 0x0238, 0x0247, 0x0256, 0x0265, + 0x0274, 0x0286, 0x02a1, 0x02a7, 0x02b6, 0x02ce, 0x02ef, 0x0304, + 0x031f, 0x032e, 0x033d, 0x034c, 0x035b, 0x036d, 0x0382, 0x0397, + 0x03c5, 0x03d4, 0x03f9, 0x0411, 0x0426, 0x043b, 0x044d, 0x0459, + 0x046b, 0x047d, 0x0496, 0x04b1, 0x04c3, 0x04db, 0x04f6, 0x0508, + // Entry 40 - 7F + 0x0526, 0x0547, 0x055f, 0x056e, 0x0587, 0x059f, 0x05a8, 0x05c6, + 0x05db, 0x05f3, 0x0608, 0x061d, 0x063b, 0x064a, 0x065c, 0x067a, + 0x0686, 0x06a4, 0x06b3, 0x06c2, 0x06d4, 0x06e3, 0x06fb, 0x0710, + 0x071c, 0x0731, 0x0746, 0x0755, 0x0779, 0x0788, 0x07a6, 0x07bb, + 0x07d0, 0x07e8, 0x080d, 0x0822, 0x0834, 0x084c, 0x085b, 0x0879, + 0x088b, 0x08a6, 0x08b5, 0x08be, 0x08d3, 0x08e5, 0x08f4, 0x0913, + 0x0925, 0x0937, 0x093d, 0x097a, 0x09ab, 0x09cd, 0x09df, 0x09f7, + 0x0a0c, 0x0a24, 0x0a33, 0x0a42, 0x0a5a, 0x0a6c, 0x0a78, 0x0a87, + // Entry 80 - BF + 0x0a96, 0x0ab1, 0x0ac6, 0x0adb, 0x0aed, 0x0b05, 0x0b14, 0x0b3b, + 0x0b50, 0x0b6e, 0x0b7d, 0x0b9f, 0x0bae, 0x0bc3, 0x0bd8, 0x0bf6, + 0x0c05, 0x0c11, 0x0c23, 0x0c3e, 0x0c53, 0x0c65, 0x0c81, 0x0c96, + 0x0cab, 0x0cc3, 0x0ccf, 0x0ce1, 0x0cf0, 0x0cf9, 0x0d1a, 0x0d32, + 0x0d4a, 0x0d5c, 0x0d6e, 0x0d7d, 0x0d89, 0x0da1, 0x0db0, 0x0dce, + 0x0ddd, 0x0def, 0x0e01, 0x0e1f, 0x0e34, 0x0e43, 0x0e52, 0x0e5e, + 0x0e73, 0x0e85, 0x0e91, 0x0ea3, 0x0eaf, 0x0ebe, 0x0ecd, 0x0ee5, + 0x0ef4, 0x0ef4, 0x0f0f, 0x0f1b, 0x0f24, 0x0f42, 0x0f42, 0x0f51, + // Entry C0 - FF + 0x0f51, 0x0f76, 0x0f9b, 0x0fad, 0x0fc2, 0x0fd4, 0x0fd4, 0x0fe9, + 0x1011, 0x1020, 0x1045, 0x106d, 0x1076, 0x1076, 0x1091, 0x1091, + 0x109d, 0x10ac, 0x10c1, 0x10c1, 0x10ca, 0x10ca, 0x10ca, 0x10ca, + 0x10d6, 0x10e8, 0x10e8, 0x10f4, 0x10f4, 0x10f4, 0x111c, 0x1131, + 0x1140, 0x114c, 0x114c, 0x114c, 0x1164, 0x1188, 0x1188, 0x1194, + 0x11a9, 0x11b5, 0x11b5, 0x11ca, 0x11dc, 0x11dc, 0x11eb, 0x11eb, + 0x11fa, 0x1206, 0x1206, 0x1215, 0x122a, 0x1236, 0x1248, 0x125a, + 0x126c, 0x1278, 0x129a, 0x12ac, 0x12c7, 0x12d9, 0x12ee, 0x131c, + // Entry 100 - 13F + 0x1331, 0x1331, 0x135c, 0x1374, 0x1386, 0x139b, 0x13a7, 0x13bc, + 0x13cb, 0x13e0, 0x13f2, 0x1401, 0x1413, 0x143b, 0x143b, 0x144a, + 0x145d, 0x147c, 0x148e, 0x148e, 0x149d, 0x14a9, 0x14a9, 0x14da, + 0x14ec, 0x1501, 0x1529, 0x1529, 0x153e, 0x153e, 0x154a, 0x1562, + 0x1562, 0x156b, 0x156b, 0x158d, 0x15ac, 0x15ac, 0x15dd, 0x1605, + 0x1626, 0x1628, 0x1637, 0x1637, 0x1643, 0x164f, 0x1680, 0x1689, + 0x16a4, 0x16a4, 0x16ca, 0x16f0, 0x170f, 0x171e, 0x173c, 0x174b, + 0x175d, 0x1782, 0x17a1, 0x17a1, 0x17a1, 0x17ad, 0x17c5, 0x17d1, + // Entry 140 - 17F + 0x17d1, 0x17e6, 0x1802, 0x181d, 0x1835, 0x1841, 0x1869, 0x1869, + 0x1875, 0x1881, 0x1881, 0x1890, 0x189f, 0x189f, 0x189f, 0x18b4, + 0x18c9, 0x18d8, 0x18fd, 0x1919, 0x1919, 0x1935, 0x1944, 0x1953, + 0x195f, 0x196e, 0x197a, 0x1995, 0x1995, 0x19a4, 0x19b9, 0x19dd, + 0x19dd, 0x19e9, 0x19e9, 0x19f5, 0x1a0a, 0x1a26, 0x1a26, 0x1a26, + 0x1a26, 0x1a38, 0x1a53, 0x1a78, 0x1a8a, 0x1a9f, 0x1ab7, 0x1ad9, + 0x1ad9, 0x1ad9, 0x1aee, 0x1afd, 0x1b12, 0x1b21, 0x1b21, 0x1b30, + 0x1b45, 0x1b57, 0x1b63, 0x1b78, 0x1b8a, 0x1b9f, 0x1bd4, 0x1bd4, + // Entry 180 - 1BF + 0x1bd4, 0x1be6, 0x1be6, 0x1bf2, 0x1bfe, 0x1c20, 0x1c20, 0x1c42, + 0x1c57, 0x1c69, 0x1c78, 0x1c87, 0x1c96, 0x1c96, 0x1c96, 0x1cab, + 0x1cab, 0x1cb7, 0x1cc9, 0x1cd8, 0x1cf3, 0x1cff, 0x1cff, 0x1d0e, + 0x1d1d, 0x1d2f, 0x1d3b, 0x1d56, 0x1d75, 0x1d9a, 0x1da6, 0x1db8, + 0x1ddc, 0x1dee, 0x1e03, 0x1e12, 0x1e24, 0x1e46, 0x1e5e, 0x1e7d, + 0x1e8c, 0x1ea1, 0x1eb6, 0x1eb6, 0x1eb6, 0x1ec8, 0x1ee9, 0x1ee9, + 0x1f04, 0x1f0d, 0x1f23, 0x1f35, 0x1f44, 0x1f56, 0x1f56, 0x1f6b, + 0x1f6b, 0x1f7a, 0x1f96, 0x1f96, 0x1fa5, 0x1fbe, 0x1fca, 0x1ff5, + // Entry 1C0 - 1FF + 0x2010, 0x2028, 0x203a, 0x204c, 0x2058, 0x2080, 0x209b, 0x20aa, + 0x20c5, 0x20e9, 0x20fb, 0x20fb, 0x20fb, 0x20fb, 0x2117, 0x2117, + 0x212f, 0x212f, 0x212f, 0x2144, 0x2144, 0x216f, 0x217b, 0x217b, + 0x2196, 0x21ab, 0x21c6, 0x21c6, 0x21c6, 0x21d8, 0x21ea, 0x21ea, + 0x21ea, 0x21ea, 0x2205, 0x220e, 0x2220, 0x222f, 0x225a, 0x226f, + 0x227e, 0x2290, 0x2290, 0x2290, 0x229f, 0x22ba, 0x22cf, 0x22cf, + 0x22f4, 0x22f4, 0x2300, 0x2300, 0x2312, 0x2340, 0x235c, 0x235c, + 0x2374, 0x237d, 0x237d, 0x238f, 0x238f, 0x238f, 0x23ae, 0x23ca, + // Entry 200 - 23F + 0x23e6, 0x2408, 0x2420, 0x2438, 0x245d, 0x246c, 0x246c, 0x246c, + 0x247e, 0x248a, 0x24a2, 0x24ba, 0x24e5, 0x24f7, 0x24f7, 0x2503, + 0x2515, 0x2521, 0x2533, 0x2542, 0x2557, 0x2560, 0x2575, 0x2575, + 0x2590, 0x25a2, 0x25a2, 0x25b7, 0x25dc, 0x25f5, 0x25f5, 0x25f5, + 0x25f5, 0x260d, 0x262c, 0x2644, 0x2656, 0x2668, 0x2680, 0x26c4, + 0x26d9, 0x26f4, 0x270f, 0x2718, 0x2721, 0x2721, 0x2721, 0x2721, + 0x2721, 0x2730, 0x2730, 0x2742, 0x2742, 0x2751, 0x275d, 0x2769, + 0x2787, 0x2787, 0x279c, 0x279c, 0x27a8, 0x27b1, 0x27c0, 0x27c0, + // Entry 240 - 27F + 0x27c0, 0x27c0, 0x27d8, 0x27ed, 0x2814, 0x2814, 0x2826, 0x2876, + 0x2882, 0x28d3, 0x28df, 0x291d, 0x291d, 0x2948, 0x2971, 0x29ab, + 0x29dc, 0x2a0a, 0x2a38, 0x2a73, 0x2aa1, 0x2acf, 0x2acf, 0x2afa, + 0x2b1c, 0x2b38, 0x2b4d, 0x2b87, 0x2bbb, 0x2bd6, 0x2c01, 0x2c29, + 0x2c51, 0x2c7c, +} // Size: 1244 bytes + +var heLangStr string = "" + // Size: 7130 bytes + "×פ×רית×בחזית×בסטן×פריק×נס×ק×ן×מהרית×ר×גוניתערבית×ס×מית×ב×רית×יימ×רית×זרי" + + "תבשקיריתבל×רוסיתבולגריתביסלמהבמב×רהבנגליתטיבטיתברטוניתבוסניתקטל×ניתצ׳צ׳" + + "ניתצ׳מורוקורסיקניתקריצ׳כיתסל×בית כנסייתית עתיקהצ׳וב×שולשיתדניתגרמניתדיב" + + "הידזונקה×ווהיוונית×נגלית×ספרנטוספרדית×סטוניתבסקיתפרסיתפולהפיניתפיג׳יתפ×" + + "רו×זיתצרפתיתפריזית×יריתג×לית סקוטיתגליצי×ניתגו×רניגוג׳ר×טיתמ×ניתה×וסהעב" + + "ריתהינדיה×רי מוטוקרו×טיתה×יטיתהונגרית×רמניתהררו\u200f×ינטרלינגו××”×ינדונ" + + "זית×ינטרלינגה×יגבוסיצ׳ו×ן ×™×™×ינופי×ק×ידו×יסלנדית×יטלקית×ינוקטיטוטיפניתי" + + "×ווניתג×ורגיתקונגוקיקויוקו×× ×™×מהקזחיתק×ל×ליסוטיתקמריתקנ×דהקורי×ניתק×נור" + + "יקשמיריתכורדיתקומיקורניתקירגיזיתלטיניתלוקסמבורגיתג×נדהלימבורגישלינגלהל×" + + "יתליט×יתלובה-קטנגהלטביתמלגשיתמרש×לסמ×וריתמקדוניתמל××™×ל×מונגוליתמרטהימל×" + + "יתמלטיתבורמזיתנ×וריתצפון נדבלהנפ×ליתנדונגההולנדיתנורווגית חדשהנורווגית " + + "×¡×¤×¨×•×ª×™×ª×“×¨×•× × ×“×‘×œ×”× ×‘×—×•× ×™×נג׳ה×וקסיטנית×וג׳יבווה×ורומו×וריה×וסטיתפנג׳×בית" + + "פ×ליפולניתפ×שטופורטוגליתקצ׳ו×הרומ×נשקירונדירומניתרוסיתקינירו×נדהסנסקריט" + + "סרדיניתסינדהיתל×פית צפוניתסנגוסינהלהסלובקיתסלובניתסמו×יתשונהסומלית×לבני" + + "תסרביתסיסוו×טיססות׳וסונדניתשוודיתסווהיליתטמיליתטלוגוטג׳יקיתת×יתטיגרינ××™" + + "תטורקמניתטוניסיהטונגןטורקיתטסונגהטטריתטהיטית×ויגהור×וקר×ינית×ורדו×וזבקי" + + "תוונדהוי×טנמית\u200fוול×פיקוו×לוןג׳ולוףקסוסהיידישיורובהז׳ו×נגסיניתזולו×" + + "כינזית×קולי×דנמה×דיגית×פריהילי××”×™×™××ינו×כדית×ל×וט×לט××™ דרומית×נגלית עתי" + + "קה×נג׳יקה×רמית×ר×וקנית×רפהו×רוו×ק×סו×סטורית×וו×דיתב×לוצ׳יבלינזיתבוו×רית" + + "בס××ב×קסגומלבז׳הבמבהבנהב×פוטבוג׳פוריביקולביניקו×סיקסיקהבר×ג׳בודו×קוסהבו" + + "רי×טבוגינזיתבולובליןמדומבהק×דוק×ריבק×יוגה×טס×קבו×נוצ׳יגהצ׳יבצ׳הצ׳××’×ט××™" + + "צ׳וקסהמ×ריניב צ׳ינוקצ׳וקט×וצ׳יפווי×ןצ׳רוקיש×ייןכורדית סור×ניתקופטיתטטרי" + + "ת של קרי×קשובי×ןדקוטהדרגווהט×יטהדל×וורסל×ביתדוגריבדינקהז×רמהדוגריסורבית" + + " נמוכהדו×לההולנדית תיכונההולה-פוניידיולהדז×× ×’×”×מבו×פיקמצרית עתיקה×קיוקעי" + + "למית×נגלית תיכונה×וונדופנגפיליפיניתפוןצרפתית תיכונהצרפתית עתיקהפריזית צ" + + "פוניתפריזי×ן מזרחיתפריוליתג××’×’×וזיתג×יוגב×יהגעזגילברטזיתגרמנית בינונית-" + + "גבוההגרמנית עתיקה גבוההגונדיגורונט×לוגותיתגרבויוונית עתיקהגרמנית שוויצר" + + "יתגוסיגוויצ׳יןה×ידההוו×יתהיליג×ינוןחיתיתמונגסורבית גבוהההופה×יב×ן×יביבי" + + "ו×ילוקו×ינגושיתלויב×ןנגומהמצ׳×מהפרסית יהודיתערבית יהודיתק×ר×-קלפ×קקבילה" + + "קצ׳יןג׳יוקמבהק×וויקברדיתקנמבוטי×פמקונדהק×בוורדי×נוקורוק×סיקוט×נזיתקוירה" + + " צ׳יניק×קוק×לנג׳יןקימבונדוקומי-פרמי×קיתקונק×ניקוסר××™×ןקפלהקר×צ׳י-בלקרק×ר" + + "ליתקורוקשמב×להב×פיהקולוני×ןקומיקקוטנ×ילדינול×נגילנדהלמבהלזגיתלקוטהמונגו" + + "לוזילובה, לולו×הלו×יסנולונדהלו×ולוש×ילויהמדורסהמ×פ×מ××’×היתמ×יטיליתמקס×ר" + + "מנדינגומ×ס×יתמ×ב×מוקשהמנד×רמנדהמרומוריסיין×ירית תיכונהמקו××”-מיטומט×מיקמ" + + "קמיננגקב×ומנצ׳ומניפוריתמוהוקמוסימונד×נגמספר שפותקריקמירנדזיתמרוו×רימ××™×™" + + "ן×רזיהנפוליטניתנ×מהגרמנית תחתיתנוו×ריני×סניו××™×ןקוו×סיונגי×מבוןנוג××™" + + "\u200fנורדית עתיקהנ׳קוסוטו הצפוניתנו×רנוו×רית קל×סיתני×מווזיני×נקולהניור" + + "ונזימה×וסג׳הטורקית עותומניתפנגסינ×ןפל×ביפמפ×ניהפפי×מנטופלוו×ןפרסית עתיק" + + "הפניקיתפונפי×ןפרובנס×ל עתיקהקיצ׳הר×ג׳סטןרפ×נויררוטונג×ןרומבורומ×נית×רומ" + + "ניתרוו×סנד×ווהס××—×”×רמית שומרוניתסמבורוסס×קס×נטלינגמב×יס×נגוסיצילי×ניתסק" + + "וטיתכורדית דרומיתסנקהסנהסלקופקויר×בורו סני×ירית עתיקהטצ׳להיטש×ןערבית צ׳" + + "×דיתסידמוס×מי דרומיתלולה ס×מי××™× ×רי ס×מיסקולט ס×מיסונינקהסוגדי×ןסרנ×ן ט" + + "ונגוסררס×הוסוקומהסוסושומריתסירית קל×סיתסוריתטימנהטסוטרנוטטו×טיגריתטיבטו" + + "קל×וקלינגוןטלינגיטטמ×שקני×סה טונגהטוק פיסיןטרוקוטסימשי×ןטומבוקהטוב×לוטס" + + "וו×קטוביניתטמזייט של מרכז מרוקו×ודמורט×וגריתית×ומבונדורוטו×יווטיקוונג׳ו" + + "וו×לסרוול×מווור×יוו×שווורלפיריקלמיקסוגהי×וי×פזיתי×נגבןימבהקנטונזיתז×פוט" + + "קבליסימבולסזנ×גהתמזיע׳ת מרוק×ית ×ª×§× ×™×ª×–×•× ×™×œ×œ× ×ª×•×›×Ÿ לשוניז××–×ערבית ספרותי" + + "תגרמנית ×וסטריתגרמנית שוויצרית (גבוהה)×נגלית ×וסטרלית×נגלית קנדית×נגלית" + + " בריטית×נגלית ×מריק×יתספרדית לטינו־×מריק×יתספרדית ×ירופ×יתספרדית מקסיקני" + + "תצרפתית קנדיתצרפתית שוויצריתסקסונית תחתיתפלמיתפורטוגלית ברזיל×יתפורטוגל" + + "ית ×ירופ×יתמולדביתסרבו-קרו×טיתסווהילי קונגולטזיתסינית מפושטתסינית מסורת" + + "ית" + +var heLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0018, 0x0022, 0x0032, 0x003a, 0x0046, 0x0056, + 0x0060, 0x006c, 0x0078, 0x0088, 0x0092, 0x00a0, 0x00b0, 0x00be, + 0x00ca, 0x00d6, 0x00e2, 0x00ee, 0x00fc, 0x0108, 0x0116, 0x0124, + 0x0130, 0x0142, 0x0148, 0x0152, 0x017a, 0x0186, 0x0190, 0x0198, + 0x01a4, 0x01ae, 0x01ba, 0x01c2, 0x01ce, 0x01da, 0x01e8, 0x01f4, + 0x0202, 0x020c, 0x0216, 0x021e, 0x0228, 0x0234, 0x0244, 0x0250, + 0x025c, 0x0266, 0x027d, 0x028f, 0x029b, 0x02ad, 0x02b7, 0x02c1, + 0x02cb, 0x02d5, 0x02e6, 0x02f4, 0x0300, 0x030e, 0x031a, 0x0322, + // Entry 40 - 7F + 0x033d, 0x034f, 0x0363, 0x036d, 0x0380, 0x0390, 0x0398, 0x03a8, + 0x03b6, 0x03ca, 0x03d4, 0x03e2, 0x03f0, 0x03fa, 0x0406, 0x0416, + 0x0420, 0x0436, 0x0440, 0x044a, 0x045a, 0x0466, 0x0474, 0x0480, + 0x0488, 0x0494, 0x04a4, 0x04b0, 0x04c6, 0x04d0, 0x04e2, 0x04ee, + 0x04f6, 0x0502, 0x0515, 0x051f, 0x052b, 0x0537, 0x0543, 0x0551, + 0x055f, 0x056f, 0x0579, 0x0583, 0x058d, 0x059b, 0x05a7, 0x05ba, + 0x05c6, 0x05d2, 0x05e0, 0x05f9, 0x0618, 0x062b, 0x0633, 0x0641, + 0x0653, 0x0665, 0x0671, 0x067b, 0x0687, 0x0697, 0x069f, 0x06ab, + // Entry 80 - BF + 0x06b5, 0x06c7, 0x06d3, 0x06df, 0x06ed, 0x06f9, 0x0703, 0x0717, + 0x0725, 0x0733, 0x0741, 0x0758, 0x0760, 0x076c, 0x077a, 0x0788, + 0x0794, 0x079c, 0x07a8, 0x07b4, 0x07be, 0x07ce, 0x07da, 0x07e8, + 0x07f4, 0x0804, 0x0810, 0x081a, 0x0828, 0x0830, 0x0842, 0x0852, + 0x0860, 0x086a, 0x0876, 0x0882, 0x088c, 0x0898, 0x08a6, 0x08b8, + 0x08c2, 0x08d0, 0x08da, 0x08ea, 0x08fb, 0x0907, 0x0913, 0x091d, + 0x0927, 0x0933, 0x093f, 0x0949, 0x0951, 0x095f, 0x0969, 0x0973, + 0x097f, 0x097f, 0x098f, 0x0999, 0x09a1, 0x09ab, 0x09ab, 0x09b5, + // Entry C0 - FF + 0x09b5, 0x09cc, 0x09e3, 0x09f1, 0x09fb, 0x0a0b, 0x0a0b, 0x0a15, + 0x0a15, 0x0a21, 0x0a21, 0x0a21, 0x0a27, 0x0a27, 0x0a35, 0x0a35, + 0x0a43, 0x0a51, 0x0a5f, 0x0a6d, 0x0a75, 0x0a7d, 0x0a7d, 0x0a85, + 0x0a8d, 0x0a95, 0x0a95, 0x0a9b, 0x0aa5, 0x0aa5, 0x0aa5, 0x0ab5, + 0x0abf, 0x0ac7, 0x0ac7, 0x0acd, 0x0adb, 0x0adb, 0x0adb, 0x0ae5, + 0x0ae5, 0x0aed, 0x0af7, 0x0b03, 0x0b13, 0x0b1b, 0x0b23, 0x0b2f, + 0x0b37, 0x0b41, 0x0b4d, 0x0b55, 0x0b61, 0x0b6b, 0x0b79, 0x0b89, + 0x0b95, 0x0b9d, 0x0bb0, 0x0bbe, 0x0bd0, 0x0bdc, 0x0be6, 0x0c01, + // Entry 100 - 13F + 0x0c0d, 0x0c0d, 0x0c25, 0x0c33, 0x0c3d, 0x0c49, 0x0c53, 0x0c5f, + 0x0c6b, 0x0c77, 0x0c81, 0x0c8b, 0x0c95, 0x0cac, 0x0cac, 0x0cb6, + 0x0cd1, 0x0ce4, 0x0cee, 0x0cfa, 0x0d02, 0x0d0a, 0x0d0a, 0x0d1f, + 0x0d29, 0x0d35, 0x0d4e, 0x0d4e, 0x0d5a, 0x0d5a, 0x0d60, 0x0d72, + 0x0d72, 0x0d78, 0x0d78, 0x0d91, 0x0da8, 0x0da8, 0x0dc1, 0x0ddc, + 0x0dea, 0x0dee, 0x0dfc, 0x0dfc, 0x0e04, 0x0e0e, 0x0e0e, 0x0e14, + 0x0e26, 0x0e26, 0x0e4c, 0x0e6e, 0x0e6e, 0x0e78, 0x0e8a, 0x0e94, + 0x0e9c, 0x0eb3, 0x0ed0, 0x0ed0, 0x0ed0, 0x0ed8, 0x0ee8, 0x0ef2, + // Entry 140 - 17F + 0x0ef2, 0x0efe, 0x0efe, 0x0f12, 0x0f1c, 0x0f24, 0x0f3b, 0x0f3b, + 0x0f43, 0x0f4d, 0x0f5b, 0x0f67, 0x0f77, 0x0f77, 0x0f77, 0x0f83, + 0x0f8d, 0x0f99, 0x0fb0, 0x0fc7, 0x0fc7, 0x0fda, 0x0fe4, 0x0fee, + 0x0ff6, 0x0ffe, 0x1008, 0x1014, 0x101e, 0x1026, 0x1032, 0x1048, + 0x1048, 0x1050, 0x1050, 0x1058, 0x1068, 0x107d, 0x107d, 0x107d, + 0x1085, 0x1095, 0x10a5, 0x10be, 0x10cc, 0x10dc, 0x10e4, 0x10f9, + 0x10f9, 0x10f9, 0x1105, 0x110f, 0x111b, 0x1125, 0x1135, 0x113f, + 0x114b, 0x1155, 0x115f, 0x1167, 0x116f, 0x1179, 0x1179, 0x1179, + // Entry 180 - 1BF + 0x1179, 0x1183, 0x1183, 0x118d, 0x1195, 0x1195, 0x1195, 0x11ab, + 0x11b9, 0x11c3, 0x11cb, 0x11d5, 0x11dd, 0x11dd, 0x11dd, 0x11e9, + 0x11f1, 0x11ff, 0x120f, 0x1219, 0x1227, 0x1233, 0x123b, 0x1245, + 0x124f, 0x1257, 0x125d, 0x126d, 0x1284, 0x1297, 0x129d, 0x12a7, + 0x12b9, 0x12c3, 0x12d3, 0x12dd, 0x12e5, 0x12e5, 0x12f3, 0x1304, + 0x130c, 0x131c, 0x132a, 0x132a, 0x1334, 0x133e, 0x133e, 0x133e, + 0x1350, 0x1358, 0x136f, 0x137b, 0x1383, 0x1391, 0x1391, 0x139f, + 0x13af, 0x13b9, 0x13d3, 0x13d3, 0x13db, 0x13f2, 0x13fa, 0x1415, + // Entry 1C0 - 1FF + 0x1425, 0x1435, 0x143f, 0x1449, 0x1455, 0x1472, 0x1482, 0x148c, + 0x149a, 0x14aa, 0x14b6, 0x14b6, 0x14b6, 0x14b6, 0x14cb, 0x14cb, + 0x14d7, 0x14d7, 0x14d7, 0x14e5, 0x14e5, 0x1500, 0x150a, 0x150a, + 0x1518, 0x1524, 0x1536, 0x1536, 0x1536, 0x1540, 0x154e, 0x154e, + 0x154e, 0x154e, 0x155c, 0x1564, 0x1572, 0x157a, 0x1595, 0x15a1, + 0x15a9, 0x15b5, 0x15b5, 0x15c1, 0x15cb, 0x15df, 0x15eb, 0x15eb, + 0x1604, 0x160c, 0x1612, 0x1612, 0x161c, 0x1635, 0x164a, 0x164a, + 0x1658, 0x165e, 0x1675, 0x167f, 0x167f, 0x167f, 0x1694, 0x16a5, + // Entry 200 - 23F + 0x16ba, 0x16cd, 0x16db, 0x16e9, 0x16fe, 0x1704, 0x170c, 0x170c, + 0x1718, 0x1720, 0x172c, 0x172c, 0x1743, 0x174d, 0x174d, 0x174d, + 0x1757, 0x175d, 0x1765, 0x176d, 0x1779, 0x177f, 0x178b, 0x178b, + 0x1799, 0x17a7, 0x17a7, 0x17b1, 0x17c6, 0x17d7, 0x17d7, 0x17e1, + 0x17e1, 0x17f1, 0x17f1, 0x17ff, 0x180b, 0x1817, 0x1825, 0x184a, + 0x1858, 0x1868, 0x1878, 0x187e, 0x1884, 0x1884, 0x1884, 0x1884, + 0x1884, 0x188e, 0x188e, 0x189a, 0x18a6, 0x18b2, 0x18bc, 0x18c6, + 0x18d6, 0x18d6, 0x18e0, 0x18e0, 0x18e8, 0x18ee, 0x18fa, 0x1906, + // Entry 240 - 27F + 0x190e, 0x190e, 0x191e, 0x192a, 0x193e, 0x193e, 0x1948, 0x1970, + 0x1978, 0x1992, 0x199a, 0x19b3, 0x19b3, 0x19ce, 0x19f8, 0x1a15, + 0x1a2c, 0x1a45, 0x1a62, 0x1a8b, 0x1aa8, 0x1ac5, 0x1ac5, 0x1adc, + 0x1af9, 0x1b12, 0x1b1c, 0x1b3f, 0x1b62, 0x1b70, 0x1b87, 0x1baa, + 0x1bc1, 0x1bda, +} // Size: 1244 bytes + +var hiLangStr string = "" + // Size: 11180 bytes + "अफ़ारअबà¥à¤–़ाज़ियनअवसà¥à¤¤à¤¾à¤ˆà¤…फ़à¥à¤°à¥€à¤•à¥€à¤…कनअमà¥à¤¹à¥‡à¤°à¥€à¤…रà¥à¤—ोनीअरबीअसमियाअवेरिकआयमाराअज" + + "़रबैजानीबशख़िरबेलारूसीबà¥à¤²à¥à¤—ारियाईबिसà¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤®à¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¥‡à¤Ÿà¤¨à¤¬à¥‹" + + "सà¥à¤¨à¤¿à¤¯à¤¾à¤ˆà¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¤šà¥‡à¤šà¤¨à¤•à¤®à¥‹à¤°à¥‹à¤•à¥‹à¤°à¥à¤¸à¥€à¤•à¤¨à¤•à¥à¤°à¥€à¤šà¥‡à¤•à¤šà¤°à¥à¤š सालà¥à¤µà¤¿à¤•à¤šà¥‚वाशवेलà¥à¤¶à¤¡à¥‡à¤¨à¤¿à¤¶à¤œà¤°à¥à¤®à¤¨" + + "दिवेहीज़ोनà¥à¤—खाईवेयूनानीअंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¥‡à¤‚तोसà¥à¤ªà¥‡à¤¨à¥€à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¬à¤¾à¤¸à¥à¤•à¤«à¤¼à¤¾à¤°à¤¸à¥€à¤«" + + "à¥à¤²à¤¾à¤¹à¤«à¤¼à¤¿à¤¨à¤¿à¤¶à¤«à¤¼à¥€à¤œà¥€à¤«à¤¼à¥ˆà¤°à¥‹à¤‡à¤œà¤¼à¤«à¤¼à¥à¤°à¥‡à¤‚चपशà¥à¤šà¤¿à¤®à¥€ फ़à¥à¤°à¤¿à¤¸à¤¿à¤¯à¤¾à¤ˆà¤†à¤‡à¤°à¤¿à¤¶à¤¸à¥à¤•à¤¾à¤Ÿà¥à¤¸à¥ गायेलिकà¥" + + "गैलिशियनगà¥à¤†à¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¥ˆà¤‚कà¥à¤¸à¤¹à¥Œà¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥‚हिनà¥à¤¦à¥€à¤¹à¤¿à¤°à¥€ मोटूकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤ˆà¤¹à¥ˆà¤¤à¤¿à¤¯à¤¾à¤ˆ" + + "हंगेरियाईआरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¹à¤°à¥ˆà¤°à¥‹à¤ˆà¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤†à¤‡à¤‚डोनेशियाईईनà¥à¤Ÿà¤°à¤²à¤¿à¤‚गà¥à¤‡à¤ˆà¤—à¥à¤¬à¥‹à¤¸à¤¿à¤šà¥à¤†à¤¨ य" + + "ीइनà¥à¤ªà¤¿à¤¯à¤¾à¤•à¥à¤‡à¤¡à¥Œà¤†à¤‡à¤¸à¤²à¥ˆà¤‚डिकइतालवीइनूकीटूतà¥à¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤œà¤¼à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤ˆà¤•à¥‹à¤‚गोकिकà¥à¤¯" + + "ूकà¥à¤µà¤¾à¤¨à¥à¤¯à¤¾à¤®à¤¾à¤•à¤œà¤¼à¤¾à¤–़कलालीसà¥à¤¤à¤–मेरकनà¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤•à¤¨à¥à¤°à¥€à¤•à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‹à¤®à¥€à¤•à¥‹à¤°à¥à¤¨" + + "िशकिरà¥à¤—ीज़लैटिनलगà¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—ीगांडालिंबरà¥à¤—िशलिंगालालाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤ˆà¤²à¥à¤¯à¥‚बा-कटा" + + "ंगालातवियाईमालागासीमारà¥à¤¶à¤²à¥€à¤œà¤¼à¤®à¤¾à¤“रीमैसिडोनियाईमलयालममंगोलीयाईमराठीमलयमाल" + + "à¥à¤Ÿà¥€à¤œà¤¼à¤¬à¤°à¥à¤®à¥€à¤œà¤¼à¤¨à¤¾à¤‰à¤°à¥‚उतà¥à¤¤à¤°à¥€ देबेलनेपालीडोनà¥à¤—ाडचनॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ नॉयनॉरà¥à¤¸à¥à¤•à¤¨à¥‰à¤°à¥à¤µ" + + "ेजियाई बोकमालदकà¥à¤·à¤¿à¤£ देबेलनावाजोनà¥à¤¯à¤¾à¤¨à¤œà¤¾à¤“सीटानओजिबà¥à¤µà¤¾à¤“रोमोउड़ियाओसà¥à¤¸à¥‡à¤Ÿà¤¿à¤•" + + "पंजाबीपालीपोलिशपशà¥à¤¤à¥‹à¤ªà¥à¤°à¥à¤¤à¤—ालीकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥à¤¶à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ˆà¤°à¥‚सीकिनà¥à¤¯à¤¾à¤°à¤µ" + + "ांडासंसà¥à¤•à¥ƒà¤¤à¤¸à¤¾à¤°à¥à¤¦à¤¿à¤¨à¤¿à¤¯à¤¨à¤¸à¤¿à¤‚धीनॉरà¥à¤¦à¤¨ सामीसांगोसिंहलीसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¸à¤¾à¤®à¥‹" + + "नशोणासोमालीअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤ˆà¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤ˆà¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚डानीसà¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤®à¤¿à¤²à¤¤à¥‡à¤²" + + "à¥à¤—ूताजिकथाईतिगà¥à¤°à¥€à¤¨à¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¸à¥‡à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‹à¤‚गनतà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गातातारताहितियनवि" + + "घà¥à¤°à¤¯à¥‚कà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤‰à¤°à¥à¤¦à¥‚उज़à¥à¤¬à¥‡à¤•à¤µà¥‡à¤¨à¥à¤¦à¤¾à¤µà¤¿à¤¯à¤¤à¤¨à¤¾à¤®à¥€à¤µà¥‹à¤²à¤¾à¤ªà¥à¤•à¤µà¤¾à¤²à¥à¤²à¥‚नवोलोफ़ख़ोसायेहà¥à¤¦" + + "ीयोरूबाज़à¥à¤†à¤‚गचीनीज़à¥à¤²à¥‚अचाइनीसअकोलीअदानà¥à¤—मेअदिघेअफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€à¤…गà¥à¤¹à¥‡à¤®à¤à¤¨à¥‚अकà¥à¤•à¤¾" + + "दीअलेउतदकà¥à¤·à¤¿à¤£à¥€ अलà¥à¤¤à¤¾à¤ˆà¤ªà¥à¤°à¤¾à¤¨à¥€ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤…ंगिकाà¤à¤°à¥‡à¤®à¥‡à¤•à¤®à¤¾à¤ªà¥‚चेअराफाओअरावकअसà¥à¤…" + + "सà¥à¤¤à¥à¤°à¤¿à¤¯à¤¨à¤…वधीबलूचीबालिनीसबसाबेजाबेमà¥à¤¬à¤¾à¤¬à¥‡à¤¨à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ बलोचीभोजपà¥à¤°à¥€à¤¬à¤¿à¤•à¥‹à¤²à¤¬à¤¿à¤¨à¥€" + + "सिकà¥à¤¸à¤¿à¤•à¤¾à¤¬à¥à¤°à¤œà¤¬à¥‹à¤¡à¥‹à¤¬à¥à¤°à¤¿à¤¯à¤¾à¤¤à¤¬à¤—िनीसबà¥à¤²à¤¿à¤¨à¤•à¥ˆà¤¡à¥à¤¡à¥‹à¤•à¥ˆà¤°à¤¿à¤¬à¤…तà¥à¤¸à¤®à¤¸à¤¿à¤¬à¥à¤†à¤¨à¥‹à¤¶à¤¿à¤—ाचिबà¥à¤šà¤¾à¤›à¤—ा" + + "ताईचूकीसमारीचिनूक जारगॉनचोकà¥à¤¤à¥Œà¤¶à¤¿à¤ªà¥‡à¤µà¥à¤¯à¤¾à¤¨à¤¶à¥‡à¤°à¥‹à¤•à¥€à¤¶à¥‡à¤¯à¥‡à¤¨à¥à¤¨à¤¸à¥‹à¤°à¤¾à¤¨à¥€ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‰à¤ªà¥" + + "टिककà¥à¤°à¥€à¤®à¥€à¤¨ तà¥à¤°à¥à¤•à¥€à¤•à¤¾à¤¶à¥à¤¬à¤¿à¤¯à¤¨à¤¦à¤¾à¤•à¥‹à¤¤à¤¾à¤¦à¤¾à¤°à¥à¤—वातैताडिलैवेयरसà¥à¤²à¥‡à¤µà¤¡à¥‹à¤—à¥à¤°à¤¿à¤¬à¤¦à¤¿à¤¨à¥à¤•à¤¾à¤à¤¾" + + "रà¥à¤®à¤¾à¤¡à¥‹à¤—à¥à¤°à¥€à¤¨à¤¿à¤šà¤²à¤¾ सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¦à¥à¤†à¤²à¤¾à¤®à¤§à¥à¤¯ पà¥à¤°à¥à¤¤à¤—ालीजोला-फोंईडà¥à¤¯à¥à¤²à¤¾à¤à¤®à¥à¤¬à¥à¤à¤«à¤¿à¤•à¤ªà¥à¤°" + + "ाचीन मिसà¥à¤°à¥€à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¤¾à¤‡à¤Ÿà¤®à¤§à¥à¤¯à¤•à¤¾à¤²à¥€à¤¨ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤‡à¤µà¥‹à¤¨à¥à¤¡à¥‹à¤«à¥ˆà¤¨à¥à¤—फ़िलिपीनोफॉनमधà¥" + + "यकालीन फ़à¥à¤°à¤¾à¤‚सीसीपà¥à¤°à¤¾à¤¤à¤¨ फ़à¥à¤°à¤¾à¤‚सीसीउतà¥à¤¤à¤°à¥€ फà¥à¤°à¥€à¤¸à¥€à¤¯à¤¨à¤ªà¥‚रà¥à¤µà¥€ फà¥à¤°à¥€à¤¸à¥€à¤¯à¤¨à¤«à¥à¤°à¥€à¤¯à¥" + + "लीयानगागागौज़गायोगà¥à¤¬à¤¾à¤¯à¤¾à¤—ीज़गिलà¥à¤¬à¤°à¤¤à¥€à¤¸à¤®à¤§à¥à¤¯à¤•à¤¾à¤²à¥€à¤¨ हाइ जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ हाइ जरà¥à¤®" + + "नगाà¤à¤¡à¥€à¤—ोरोनà¥à¤¤à¤¾à¤²à¥‹à¤—ॉथिकगà¥à¤°à¥‡à¤¬à¥‹à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ यूनानीसà¥à¤µà¤¿à¤¸ जरà¥à¤®à¤¨à¤—à¥à¤¸à¥€à¤—à¥à¤µà¤¿à¤šâ€™à¤‡à¤¨à¤¹à¥ˆà¤¡à¤¾à¤¹à¤µ" + + "ाईहिलिगेननहिताइतहà¥à¤®à¥‰à¤‚गऊपरी सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाइबानइलोकोइंगà¥à¤¶à¤²à¥‹à¤œà¥à¤¬à¤¾à¤¨à¤¨à¤—ोंबामैकह" + + "ैमेजà¥à¤¦à¥‡à¤“-परà¥à¤¶à¤¿à¤¯à¤¨à¤œà¥à¤¦à¥‡à¤“-अरेबिककारा-कलà¥à¤ªà¤•à¤•à¤¬à¤¾à¤‡à¤²à¤•à¤¾à¤šà¤¿à¤¨à¤œà¥à¤œà¥à¤•à¤®à¥à¤¬à¤¾à¤•à¤¾à¤µà¥€à¤•à¤¬à¤¾à¤°à¥à¤¡à¤¿à¤¯à¤¨" + + "तà¥à¤¯à¤¾à¤ªà¤®à¥ˆà¤•à¥‹à¤‚डकाबà¥à¤µà¥‡à¤°à¥à¤¦à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤°à¥‹à¤–ासीखोतानीसकोयरा चीनीकलेंजिनकिमà¥à¤¬à¤¨à¥à¤¦à¥à¤•à¥‹à¤®à¥€" + + "-परà¥à¤®à¤¯à¤¾à¤•à¤•à¥‹à¤‚कणीकोसरैनकà¥à¤ªà¥‡à¤²à¥à¤²à¥ˆà¤•à¤°à¤¾à¤šà¤¯-बलà¥à¤•à¤¾à¤°à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¤•à¥à¤°à¥‚खशमà¥à¤¬à¤¾à¤²à¤¾à¤¬à¤«à¤¿à¤†à¤•à¥à¤®à¥€à¤•à¤•à¥à¤¤à¥‡" + + "नाईलादीनोलांगिलाहà¥à¤¨à¥à¤¡à¤¾à¤²à¤¾à¤®à¥à¤¬à¤¾à¤²à¥‡à¤œà¤¼à¥à¤˜à¥€à¤¯à¤¨à¤²à¥ˆà¤•à¥‹à¤Ÿà¤¾à¤®à¥‹à¤‚गोलोज़ीउतà¥à¤¤à¤°à¥€ लूरीलà¥à¤¯à¥‚बा" + + "-लà¥à¤²à¥à¤†à¤²à¥à¤‡à¤¸à¥‡à¤¨à¥‹à¤²à¥à¤¨à¥à¤¡à¤¾à¤²à¥à¤¯à¥à¤“लà¥à¤¶à¤¾à¤ˆà¤²à¥à¤¯à¥à¤ˆà¤†à¤®à¤¾à¤¦à¥à¤°à¥€à¤¸à¤®à¤—ाहीमैथिलीमकासरमनà¥à¤¡à¤¿à¤¨à¥à¤—ोमसाईम" + + "ोकà¥à¤·à¤®à¤‚धारमेनà¥à¤¡à¥‡à¤®à¥‡à¤°à¥à¤®à¥‹à¤°à¥€à¤¸à¥à¤¯à¥‡à¤¨à¤®à¤§à¥à¤¯à¤•à¤¾à¤² आइरिशमैखà¥à¤µà¤¾-मीटà¥à¤Ÿà¥‹à¤®à¥‡à¤Ÿà¤¾à¤®à¤¿à¤•à¤®à¥ˆà¤•à¤®à¤¿à¤¨à¤¾à¤‚ग" + + "à¥à¤•à¤¾à¤¬à¤¾à¤‰à¤®à¤¨à¥à¤šà¥à¤®à¤£à¤¿à¤ªà¥‚रीमोहौकमोसà¥à¤¸à¥€à¤®à¥à¤‚डैंगविविध भाषाà¤à¤à¤•à¥à¤°à¥€à¤•à¤®à¤¿à¤°à¤¾à¤‚डीमारवाड़ीà¤à¤°" + + "à¥à¤œà¤¼à¤¯à¤¾à¤®à¤¾à¤œà¤¼à¤¨à¥à¤¦à¥‡à¤°à¤¾à¤¨à¥€à¤¨à¥€à¤ªà¥‹à¤²à¤¿à¤Ÿà¤¨à¤¨à¤¾à¤®à¤¾à¤¨à¤¿à¤šà¤²à¤¾ जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤¡à¤¼à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨à¤¿à¤¯à¥à¤†à¤¨à¤•à¥à¤µà¤¾à¤¸à¤¿à¤“नोगाई" + + "पà¥à¤°à¤¾à¤¨à¤¾ नॉरà¥à¤¸à¤à¤¨à¥à¤•à¥‹à¤‰à¤¤à¥à¤¤à¤°à¥€ सोथोनà¥à¤à¤°à¤ªà¤¾à¤°à¤®à¥à¤ªà¤°à¤¿à¤• नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¤¼à¥€à¤¨à¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¤¨à¥à¤¯à¥‹" + + "रोनà¥à¤œà¤¼à¥€à¤®à¤¾à¤“सेजओटोमान तà¥à¤°à¥à¤•à¤¿à¤¶à¤ªà¤‚गासीनानपाहà¥à¤²à¤¾à¤µà¥€à¤ªà¤¾à¤®à¥à¤ªà¤¾à¤¨à¥à¤—ापापियामेनà¥à¤Ÿà¥‹à¤ªà¤²à¥‹à¤‰" + + "आनपà¥à¤°à¤¾à¤¨à¥€ फारसीफोà¤à¤¨à¤¿à¤¶à¤¿à¤¯à¤¨à¤ªà¥‹à¤¹à¥à¤¨à¤ªà¤¿à¤à¤¨à¤ªà¥à¤°à¤¾à¤¨à¥€ पà¥à¤°à¥‹à¤µà¥‡à¤¨à¥à¤¸à¤²à¤•à¤¿à¤¶à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¤¾à¤ªà¤¾à¤¨à¥à¤ˆà¤°à¤¾" + + "रोतोंगनरोमà¥à¤¬à¥‹à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤…रोमानियनरवासनà¥à¤¡à¤¾à¤µà¥‡à¤¯à¤¾à¤•à¥‚तसामैरिटन अरैमिकसैमà¥à¤¬à¥à¤°à¥à¤¸à¤¾à¤¸à¤¾" + + "कसंतालीसैंगà¥à¤¸à¤¿à¤¸à¤¿à¤²à¤¿à¤¯à¤¨à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ कारà¥à¤¡à¤¿à¤¶à¤¸à¥‡à¤¨à¤¾à¤¸à¥‡à¤²à¥à¤•à¤ªà¤•à¥‹à¤¯à¤°à¤¾à¤¬à¥‹à¤°à¥‹ सेनà¥à¤¨à¥€à¤ªà¥" + + "रानी आइरिशतैचेलà¥à¤¹à¤¿à¤¤à¤¶à¥ˆà¤¨à¤¸à¤¿à¤¦à¤¾à¤®à¥‹à¤¦à¤•à¥à¤·à¤¿à¤£ सामीलà¥à¤¯à¥à¤² सामीइनारी सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿ साम" + + "ीसोनिनà¥à¤•à¥‡à¤¸à¥‹à¤—à¥à¤¡à¤¿à¤à¤¨à¤¸à¥à¤°à¤¾à¤¨à¤¾à¤¨ टॉनà¥à¤—ोसेरेरसà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤¯à¤¨à¤•à¥à¤²à¤¾à¤¸à¤¿à¤•à¤² सिरिà¤à¤•à¤¸" + + "िरिà¤à¤•à¤Ÿà¤¿à¤®à¥à¤¨à¥‡à¤Ÿà¥‡à¤¸à¥‹à¤¤à¥‡à¤°à¥‡à¤¨à¥‹à¤¤à¥‡à¤¤à¥à¤®à¤Ÿà¤¾à¤‡à¤—à¥à¤°à¥‡à¤¤à¤¿à¤µà¤¤à¥‹à¤•à¥‡à¤²à¤¾à¤Šà¤•à¥à¤²à¤¿à¤‚गनतà¥à¤²à¤¿à¤‚गिततामाशेकनà¥à¤¯à¤¾à¤¸" + + "ा टोनà¥à¤—ाटोक पिसिनतà¥à¤¸à¤¿à¤®à¥€à¤¶à¤¿à¤¯à¤¨à¤¤à¤®à¥à¤¬à¥‚कातà¥à¤µà¤¾à¤²à¥à¤Ÿà¤¾à¤¸à¤µà¤¾à¤•à¤¤à¥à¤µà¥€à¤¨à¤¿à¤¯à¤¨à¤®à¤§à¥à¤¯ à¤à¤Ÿà¤²à¤¸ तमाज़ि" + + "तउदमà¥à¤°à¥à¤¤à¤¯à¥à¤—ैरिटिकउमà¥à¤¬à¥à¤¨à¥à¤¡à¥à¤°à¥‚टवाईवॉटिकवà¥à¤‚जोवलामोवारैवाशोवॉलà¥à¤ªà¥‡à¤°à¥€à¤•à¤¾à¤²à¥à¤®à¤¿à¤•" + + "सोगायाओयापीसकैंटोनीज़ज़ेपोटेकबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤œà¤¼à¥‡à¤¨à¤¾à¤¨à¥à¤—ामानक मोरकà¥à¤•à¤¨ तामाज़" + + "ाइटज़ूनीकोई भाषा सामगà¥à¤°à¥€ नहींज़ाज़ाआधà¥à¤¨à¤¿à¤• मानक अरबीऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤ˆ जरà¥à¤®à¤¨à¤¸à¥à¤µ" + + "िस उचà¥à¤š जरà¥à¤®à¤¨à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤ˆ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤•à¤¨à¤¾à¤¡à¤¾à¤ˆ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤…म" + + "ेरिकी अंगà¥à¤°à¥‡à¤œà¤¼à¥€à¤²à¥ˆà¤Ÿà¤¿à¤¨ अमेरिकी सà¥à¤ªà¥‡à¤¨à¥€à¤¯à¥‚रोपीय सà¥à¤ªà¥‡à¤¨à¤¿à¤¶à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¤¨ सà¥à¤ªà¥‡à¤¨à¤¿à¤¶à¤•à¤¨à¤¾à¤¡" + + "ाई फ़à¥à¤°à¥‡à¤‚चसà¥à¤µà¤¿à¤¸ फ़à¥à¤°à¥‡à¤‚चनिचली सैकà¥à¤¸à¤¨à¤«à¤¼à¥à¤²à¥‡à¤®à¤¿à¤¶à¤¬à¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¥€ पà¥à¤°à¥à¤¤à¤—ालीयूरोपीय " + + "पà¥à¤°à¥à¤¤à¤—ालीमोलडावियनसेरà¥à¤¬à¥‹-कà¥à¤°à¥‹à¤à¤¶à¤¨à¥à¤•à¤¾à¤‚गो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¸à¤°à¤²à¥€à¤•à¥ƒà¤¤ चीनीपारंपरिक ची" + + "नी" + +var hiLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0030, 0x0045, 0x005d, 0x0066, 0x007b, 0x0090, + 0x009c, 0x00ae, 0x00c0, 0x00d2, 0x00f0, 0x0102, 0x011a, 0x013b, + 0x0153, 0x016b, 0x017d, 0x0192, 0x01a4, 0x01bf, 0x01d4, 0x01e0, + 0x01ef, 0x0207, 0x0213, 0x021c, 0x023e, 0x024d, 0x025c, 0x026b, + 0x027a, 0x028c, 0x02a4, 0x02ad, 0x02bf, 0x02da, 0x02f8, 0x030a, + 0x0328, 0x0337, 0x0349, 0x0358, 0x036a, 0x0379, 0x0391, 0x03a6, + 0x03da, 0x03e9, 0x041a, 0x0432, 0x0447, 0x045c, 0x046e, 0x047a, + 0x048c, 0x049e, 0x04b7, 0x04d5, 0x04ea, 0x0505, 0x0523, 0x0532, + // Entry 40 - 7F + 0x0553, 0x0574, 0x0595, 0x05a4, 0x05bd, 0x05d8, 0x05e1, 0x05fc, + 0x060e, 0x0629, 0x063b, 0x0653, 0x066e, 0x067d, 0x068f, 0x06ad, + 0x06bf, 0x06d7, 0x06e3, 0x06f5, 0x070a, 0x0719, 0x072e, 0x0743, + 0x074f, 0x0764, 0x077c, 0x078b, 0x07ac, 0x07bb, 0x07d6, 0x07eb, + 0x07f4, 0x0812, 0x0837, 0x084f, 0x0867, 0x0882, 0x0891, 0x08b2, + 0x08c4, 0x08df, 0x08ee, 0x08f7, 0x090f, 0x0924, 0x0933, 0x0955, + 0x0967, 0x0979, 0x097f, 0x09bf, 0x09f3, 0x0a15, 0x0a27, 0x0a3c, + 0x0a4e, 0x0a63, 0x0a72, 0x0a84, 0x0a9c, 0x0aae, 0x0aba, 0x0ac9, + // Entry 80 - BF + 0x0ad8, 0x0af3, 0x0b08, 0x0b1d, 0x0b2f, 0x0b4a, 0x0b56, 0x0b7a, + 0x0b8f, 0x0bad, 0x0bbc, 0x0bdb, 0x0bea, 0x0bfc, 0x0c11, 0x0c32, + 0x0c41, 0x0c4d, 0x0c5f, 0x0c7d, 0x0c95, 0x0ca7, 0x0cb9, 0x0cce, + 0x0ce3, 0x0cfb, 0x0d07, 0x0d19, 0x0d28, 0x0d31, 0x0d4f, 0x0d67, + 0x0d85, 0x0d94, 0x0da6, 0x0db5, 0x0dc4, 0x0ddc, 0x0deb, 0x0e0c, + 0x0e1b, 0x0e30, 0x0e42, 0x0e5a, 0x0e6f, 0x0e84, 0x0e96, 0x0ea5, + 0x0eb7, 0x0ec9, 0x0edb, 0x0ee7, 0x0ef6, 0x0f0b, 0x0f1a, 0x0f32, + 0x0f41, 0x0f41, 0x0f5c, 0x0f6e, 0x0f77, 0x0f8c, 0x0f8c, 0x0f9b, + // Entry C0 - FF + 0x0f9b, 0x0fc3, 0x0ff1, 0x1003, 0x1015, 0x1027, 0x1027, 0x1039, + 0x1039, 0x1048, 0x1048, 0x1048, 0x1051, 0x1051, 0x106c, 0x106c, + 0x1078, 0x1087, 0x109c, 0x109c, 0x10a5, 0x10a5, 0x10a5, 0x10a5, + 0x10b1, 0x10c3, 0x10c3, 0x10cf, 0x10cf, 0x10cf, 0x10f4, 0x1109, + 0x1118, 0x1124, 0x1124, 0x1124, 0x113c, 0x113c, 0x113c, 0x1148, + 0x1148, 0x1154, 0x1154, 0x1169, 0x117b, 0x117b, 0x118a, 0x118a, + 0x119c, 0x11ab, 0x11ab, 0x11ba, 0x11cf, 0x11db, 0x11ed, 0x11ff, + 0x120e, 0x121a, 0x123c, 0x124e, 0x1269, 0x127b, 0x1290, 0x12b8, + // Entry 100 - 13F + 0x12cd, 0x12cd, 0x12f5, 0x130d, 0x131f, 0x1334, 0x1340, 0x1358, + 0x1367, 0x137c, 0x138e, 0x13a0, 0x13b2, 0x13da, 0x13da, 0x13e9, + 0x1411, 0x142a, 0x143c, 0x143c, 0x144b, 0x1457, 0x1457, 0x147f, + 0x1491, 0x14a6, 0x14dd, 0x14dd, 0x14f2, 0x14f2, 0x1501, 0x151c, + 0x151c, 0x1525, 0x1525, 0x155f, 0x1590, 0x1590, 0x15bb, 0x15e6, + 0x1607, 0x160d, 0x161f, 0x161f, 0x162b, 0x163d, 0x163d, 0x1649, + 0x1664, 0x1664, 0x1699, 0x16c5, 0x16c5, 0x16d4, 0x16f2, 0x1701, + 0x1713, 0x173b, 0x175a, 0x175a, 0x175a, 0x1766, 0x177e, 0x178a, + // Entry 140 - 17F + 0x178a, 0x1796, 0x1796, 0x17ae, 0x17c0, 0x17d2, 0x17f7, 0x17f7, + 0x1803, 0x180f, 0x180f, 0x181e, 0x182d, 0x182d, 0x182d, 0x1842, + 0x1854, 0x1869, 0x188e, 0x18b0, 0x18b0, 0x18cc, 0x18db, 0x18ea, + 0x18f6, 0x1905, 0x1911, 0x192c, 0x192c, 0x193b, 0x194d, 0x1977, + 0x1977, 0x1983, 0x1983, 0x198f, 0x19a4, 0x19c0, 0x19c0, 0x19c0, + 0x19c0, 0x19d5, 0x19f0, 0x1a12, 0x1a24, 0x1a36, 0x1a4e, 0x1a70, + 0x1a70, 0x1a70, 0x1a85, 0x1a94, 0x1aa9, 0x1ab5, 0x1ab5, 0x1ac4, + 0x1ad9, 0x1aeb, 0x1afa, 0x1b12, 0x1b24, 0x1b3f, 0x1b3f, 0x1b3f, + // Entry 180 - 1BF + 0x1b3f, 0x1b51, 0x1b51, 0x1b60, 0x1b6f, 0x1b8e, 0x1b8e, 0x1bb0, + 0x1bc5, 0x1bd7, 0x1be6, 0x1bf5, 0x1c07, 0x1c07, 0x1c07, 0x1c1c, + 0x1c1c, 0x1c2b, 0x1c3d, 0x1c4c, 0x1c67, 0x1c73, 0x1c73, 0x1c82, + 0x1c91, 0x1ca3, 0x1caf, 0x1cca, 0x1cef, 0x1d14, 0x1d20, 0x1d32, + 0x1d56, 0x1d65, 0x1d7a, 0x1d89, 0x1d9b, 0x1d9b, 0x1db0, 0x1dd2, + 0x1de1, 0x1df6, 0x1e0e, 0x1e0e, 0x1e0e, 0x1e23, 0x1e47, 0x1e47, + 0x1e5f, 0x1e6b, 0x1e8a, 0x1e9f, 0x1eae, 0x1ec0, 0x1ec0, 0x1ed5, + 0x1ed5, 0x1ee4, 0x1f06, 0x1f06, 0x1f15, 0x1f34, 0x1f40, 0x1f6e, + // Entry 1C0 - 1FF + 0x1f8c, 0x1fa4, 0x1fb6, 0x1fcb, 0x1fd7, 0x1fff, 0x201a, 0x2032, + 0x2050, 0x2074, 0x2086, 0x2086, 0x2086, 0x2086, 0x20a8, 0x20a8, + 0x20c3, 0x20c3, 0x20c3, 0x20de, 0x20de, 0x210f, 0x2118, 0x2118, + 0x2133, 0x2148, 0x2163, 0x2163, 0x2163, 0x2175, 0x2187, 0x2187, + 0x2187, 0x2187, 0x21a2, 0x21ab, 0x21c0, 0x21cf, 0x21fa, 0x2212, + 0x2221, 0x2233, 0x2233, 0x2233, 0x2242, 0x225a, 0x226f, 0x226f, + 0x229a, 0x229a, 0x22a6, 0x22a6, 0x22b8, 0x22e6, 0x2308, 0x2308, + 0x2323, 0x232c, 0x232c, 0x233e, 0x233e, 0x233e, 0x235d, 0x2379, + // Entry 200 - 23F + 0x2395, 0x23b7, 0x23cf, 0x23e7, 0x240f, 0x241e, 0x241e, 0x241e, + 0x2430, 0x243c, 0x2454, 0x2454, 0x247f, 0x2491, 0x2491, 0x2491, + 0x24a3, 0x24af, 0x24c1, 0x24d0, 0x24e5, 0x24ee, 0x2503, 0x2503, + 0x2518, 0x2530, 0x2530, 0x2545, 0x256a, 0x2583, 0x2583, 0x2583, + 0x2583, 0x25a1, 0x25a1, 0x25b6, 0x25c8, 0x25da, 0x25f2, 0x2621, + 0x2636, 0x2651, 0x266c, 0x2675, 0x267e, 0x267e, 0x267e, 0x267e, + 0x267e, 0x268d, 0x268d, 0x269c, 0x269c, 0x26ab, 0x26b7, 0x26c3, + 0x26db, 0x26db, 0x26f0, 0x26f0, 0x26fc, 0x2705, 0x2714, 0x2714, + // Entry 240 - 27F + 0x2714, 0x2714, 0x272f, 0x2747, 0x276e, 0x276e, 0x2789, 0x27c7, + 0x27d6, 0x280f, 0x2821, 0x284d, 0x284d, 0x287b, 0x28a7, 0x28e7, + 0x2915, 0x2946, 0x2977, 0x29af, 0x29da, 0x2a08, 0x2a08, 0x2a30, + 0x2a55, 0x2a77, 0x2a8f, 0x2ac6, 0x2af7, 0x2b12, 0x2b3d, 0x2b65, + 0x2b87, 0x2bac, +} // Size: 1244 bytes + +var hrLangStr string = "" + // Size: 4466 bytes + "afarskiabhaskiavestanafrikaansakanskiamharskiaragonskiarapskiasamskiavar" + + "skiaymaraazerbajdžanskibaÅ¡kirskibjeloruskibugarskibislamabambarabengalsk" + + "itibetanskibretonskibosanskikatalonskiÄeÄenskichamorrokorziÄkicreeÄeÅ¡kic" + + "rkvenoslavenskichuvashvelÅ¡kidanskinjemaÄkidivehidzongkhaewegrÄkiengleski" + + "esperantoÅ¡panjolskiestonskibaskijskiperzijskifulahfinskifidžijskiferojsk" + + "ifrancuskizapadnofrizijskiirskiÅ¡kotski-galskigalicijskiguaranigudžaratsk" + + "imanskihausahebrejskihindskihiri motuhrvatskikreolskimaÄ‘arskiarmenskiher" + + "erointerlinguaindonezijskiinterliguaigbosichuan yiinupiaqidoislandskital" + + "ijanskiinuktitutjapanskijavanskigruzijskikongokikuyukuanyamakazaÅ¡kikalaa" + + "llisutkmerskikannadskikorejskikanurikaÅ¡mirskikurdskikomikornskikirgiÅ¡kil" + + "atinskiluksemburÅ¡kigandalimburgishlingalalaoskilitavskiluba-katangalatvi" + + "jskimalgaÅ¡kimarÅ¡alskimaorskimakedonskimalajalamskimongolskimarathskimala" + + "jskimalteÅ¡kiburmanskinaurusjeverni ndebelenepalskindonganizozemskinovono" + + "rveÅ¡kiknjiževni norveÅ¡kijužni ndebelenavajonyanjaokcitanskiojibwaoromski" + + "orijskiosetskipandžapskipalipoljskipaÅ¡tuportugalskikeÄuaromanÅ¡rundirumun" + + "jskiruskikinyarwandasanskrtskisardskisindhijužni samisangosinhaleÅ¡kislov" + + "aÄkislovenskisamoanskishonasomalskialbanskisrpskisvatisesotskisundanskiÅ¡" + + "vedskisvahilitamilskitelugutadžiÄkitajlandskitigrinjaturkmenskicvanatong" + + "anskiturskitsongatatarskitahićanskiujgurskiukrajinskiurdskiuzbeÄkivendav" + + "ijetnamskivolapükvalonskiwolofxhosajidiÅ¡jorubazhuangkineskizuluachinesea" + + "coliadangmeadigejskiafrihiliaghemainuakkadianaleutskijužni altaistaroeng" + + "leskiangikaaramejskiaraukanskiarapahoarawakasuasturijskiawadhibaluchibal" + + "inezijskibasabamunskighomalabejabembabenabafutzapadnobaludžijskibhojpuri" + + "bikolbinikomsiksikabrajbodoakooseburiatbuginskibulublinmedumbacaddokarip" + + "skicayugaatsamcebuanochigachibchachagataichuukesemarichinook žargonchoct" + + "awchipewyanÄerokiÄejenskisoranski kurdskikoptskikrimski turskikaÅ¡upskida" + + "kota jezikdargwataitadelavarskislavedogribdinkazarmadogrilužiÄkosrpskidu" + + "alanizozemski, srednjijola-fonyidyuladazagaembuefikstaroegipatskiekajuke" + + "lamitskiengleski, srednjiewondofangfilipinofonfrancuski, srednjistarofra" + + "ncuskisjevernofrizijskiistoÄnofrizijskifriulskigagagauskigayogbayastaroe" + + "tiopskigilbertskinjemaÄki, srednji visokistaronjemaÄki, visokigondigoron" + + "talogothicgrebostarogrÄkiÅ¡vicarski njemaÄkigusiigwich’inhaidihavajskihil" + + "igaynonhetitskihmonggornjolužiÄkihupaibanibibioilokoinguÅ¡etskilojbanngom" + + "bamachamejudejsko-perzijskijudejsko-arapskikara-kalpakkabilskikachinkaje" + + "kambakawikabardiankanembutyapmakondezelenortskikorokhasikhotanesekoyra c" + + "hiinikakokalenjinkimbundukomski ili permskikonkaninaurskikpellekarachay-" + + "balkarkarelijskikuruÅ¡kishambalabafiakelnskikumykkutenailadinolangilahnda" + + "lambalezgiÅ¡kilakotamongolozisjevernolurskiluba-lulualuisenolundaluolusha" + + "iluyiamadurskimafamagahimaithilimakasarmandingomasajskimabamokshamandarm" + + "endemerumauricijski kreolskiirski, srednjimakhuwa-meettometa’micmacminan" + + "gkabaumandžurskimanipurskimohawkmossimundangviÅ¡e jezikacreekmirandskimar" + + "warimyenemordvinskimazanderanskinapolitanskinamadonjonjemaÄkinewariniasn" + + "iujskikwasiongiemboonnogajskistaronorveÅ¡kin’kosjeverni sothonuerklasiÄni" + + " newarinyamwezinyankolenyoronzimaosageturski - otomanskipangasinanpahlav" + + "ipampangapapiamentopalauanskistaroperzijskifeniÄkipohnpeianstaroprovansa" + + "lskikiÄerajasthanirapa nuirarotonÅ¡kiromboromskiaromunskirwasandawejakuts" + + "kisamarijanski aramejskisamburusasaksantalingambaysangusicilijskiÅ¡kotski" + + "južnokurdskisenecasenaselkupskikoyraboro sennistaroirskitachelhitshanÄad" + + "ski arapskisidamosjeverni samilule samiinari samiskolt samisoninkesogdie" + + "nsranan tongoserersahosukumasususumerskikomorskiklasiÄni sirskisirijskit" + + "emnetesoterenotetumtigriÅ¡kitivtokelaunskiklingonskitlingittamasheknyasa " + + "tongatok pisintarokotsimshiantumbukatuvaluanskitasawaqtuvinianmarokanski" + + " tamazightudmurtskiugaritskiumbundukorijenskivaivoticvunjowalserwalamowa" + + "raywashowarlpirikalmyksogayaojapskiyangbenyembakantonskizapotecblissymbo" + + "lszenagastandardni marokanski tamazightzunibez jeziÄnog sadržajazazakimo" + + "derni standardni arapskijužnoazerbajdžanskiaustrijski njemaÄkigornjonjem" + + "aÄki (Å¡vicarski)australski engleskikanadski engleskibritanski engleskiam" + + "eriÄki engleskilatinoameriÄki Å¡panjolskieuropski Å¡panjolskimeksiÄki Å¡pan" + + "jolskikanadski francuskiÅ¡vicarski francuskidonjosaksonskiflamanskibrazil" + + "ski portugalskieuropski portugalskimoldavskisrpsko-hrvatskikongoanski sw" + + "ahilikineski (pojednostavljeni)kineski (tradicionalni)" + +var hrLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0007, 0x000e, 0x0015, 0x001e, 0x0025, 0x002d, 0x0036, + 0x003d, 0x0044, 0x004b, 0x0051, 0x0060, 0x006a, 0x0074, 0x007c, + 0x0083, 0x008a, 0x0093, 0x009d, 0x00a6, 0x00ae, 0x00b8, 0x00c2, + 0x00ca, 0x00d3, 0x00d7, 0x00de, 0x00ee, 0x00f5, 0x00fc, 0x0102, + 0x010b, 0x0111, 0x0119, 0x011c, 0x0122, 0x012a, 0x0133, 0x013e, + 0x0146, 0x014f, 0x0158, 0x015d, 0x0163, 0x016d, 0x0175, 0x017e, + 0x018e, 0x0193, 0x01a2, 0x01ac, 0x01b3, 0x01bf, 0x01c5, 0x01ca, + 0x01d3, 0x01da, 0x01e3, 0x01eb, 0x01f3, 0x01fc, 0x0204, 0x020a, + // Entry 40 - 7F + 0x0215, 0x0221, 0x022b, 0x022f, 0x0239, 0x0240, 0x0243, 0x024c, + 0x0256, 0x025f, 0x0267, 0x026f, 0x0278, 0x027d, 0x0283, 0x028b, + 0x0293, 0x029e, 0x02a5, 0x02ae, 0x02b6, 0x02bc, 0x02c6, 0x02cd, + 0x02d1, 0x02d8, 0x02e1, 0x02e9, 0x02f6, 0x02fb, 0x0305, 0x030c, + 0x0312, 0x031a, 0x0326, 0x032f, 0x0338, 0x0342, 0x0349, 0x0353, + 0x035f, 0x0368, 0x0371, 0x0379, 0x0382, 0x038b, 0x0390, 0x03a0, + 0x03a8, 0x03ae, 0x03b8, 0x03c5, 0x03d9, 0x03e7, 0x03ed, 0x03f3, + 0x03fd, 0x0403, 0x040a, 0x0411, 0x0418, 0x0423, 0x0427, 0x042e, + // Entry 80 - BF + 0x0434, 0x043f, 0x0445, 0x044c, 0x0451, 0x045a, 0x045f, 0x046a, + 0x0474, 0x047b, 0x0481, 0x048c, 0x0491, 0x049c, 0x04a5, 0x04ae, + 0x04b7, 0x04bc, 0x04c4, 0x04cc, 0x04d2, 0x04d7, 0x04df, 0x04e8, + 0x04f0, 0x04f7, 0x04ff, 0x0505, 0x050f, 0x0519, 0x0521, 0x052b, + 0x0530, 0x0539, 0x053f, 0x0545, 0x054d, 0x0558, 0x0560, 0x056a, + 0x0570, 0x0578, 0x057d, 0x0588, 0x0590, 0x0598, 0x059d, 0x05a2, + 0x05a8, 0x05ae, 0x05b4, 0x05bb, 0x05bf, 0x05c7, 0x05cc, 0x05d3, + 0x05dc, 0x05dc, 0x05e4, 0x05e9, 0x05ed, 0x05f5, 0x05f5, 0x05fd, + // Entry C0 - FF + 0x05fd, 0x0609, 0x0616, 0x061c, 0x0625, 0x062f, 0x062f, 0x0636, + 0x0636, 0x063c, 0x063c, 0x063c, 0x063f, 0x063f, 0x0649, 0x0649, + 0x064f, 0x0656, 0x0662, 0x0662, 0x0666, 0x066e, 0x066e, 0x0675, + 0x0679, 0x067e, 0x067e, 0x0682, 0x0687, 0x0687, 0x069a, 0x06a2, + 0x06a7, 0x06ab, 0x06ab, 0x06ae, 0x06b5, 0x06b5, 0x06b5, 0x06b9, + 0x06b9, 0x06bd, 0x06c3, 0x06c9, 0x06d1, 0x06d5, 0x06d9, 0x06e0, + 0x06e5, 0x06ed, 0x06f3, 0x06f8, 0x06ff, 0x0704, 0x070b, 0x0713, + 0x071b, 0x071f, 0x072e, 0x0735, 0x073e, 0x0745, 0x074e, 0x075e, + // Entry 100 - 13F + 0x0765, 0x0765, 0x0773, 0x077c, 0x0788, 0x078e, 0x0793, 0x079d, + 0x07a2, 0x07a8, 0x07ad, 0x07b2, 0x07b7, 0x07c6, 0x07c6, 0x07cb, + 0x07de, 0x07e8, 0x07ed, 0x07f3, 0x07f7, 0x07fb, 0x07fb, 0x0809, + 0x080f, 0x0818, 0x0829, 0x0829, 0x082f, 0x082f, 0x0833, 0x083b, + 0x083b, 0x083e, 0x083e, 0x0850, 0x085e, 0x085e, 0x086f, 0x0880, + 0x0888, 0x088a, 0x0892, 0x0892, 0x0896, 0x089b, 0x089b, 0x08a8, + 0x08b2, 0x08b2, 0x08cb, 0x08e1, 0x08e1, 0x08e6, 0x08ef, 0x08f5, + 0x08fa, 0x0905, 0x0919, 0x0919, 0x0919, 0x091e, 0x0928, 0x092d, + // Entry 140 - 17F + 0x092d, 0x0935, 0x0935, 0x093f, 0x0947, 0x094c, 0x095b, 0x095b, + 0x095f, 0x0963, 0x0969, 0x096e, 0x0979, 0x0979, 0x0979, 0x097f, + 0x0985, 0x098c, 0x099e, 0x09ae, 0x09ae, 0x09b9, 0x09c1, 0x09c7, + 0x09cb, 0x09d0, 0x09d4, 0x09dd, 0x09e4, 0x09e8, 0x09ef, 0x09fa, + 0x09fa, 0x09fe, 0x09fe, 0x0a03, 0x0a0c, 0x0a18, 0x0a18, 0x0a18, + 0x0a1c, 0x0a24, 0x0a2c, 0x0a3e, 0x0a45, 0x0a4c, 0x0a52, 0x0a61, + 0x0a61, 0x0a61, 0x0a6b, 0x0a73, 0x0a7b, 0x0a80, 0x0a87, 0x0a8c, + 0x0a93, 0x0a99, 0x0a9e, 0x0aa4, 0x0aa9, 0x0ab2, 0x0ab2, 0x0ab2, + // Entry 180 - 1BF + 0x0ab2, 0x0ab8, 0x0ab8, 0x0abd, 0x0ac1, 0x0acf, 0x0acf, 0x0ad9, + 0x0ae0, 0x0ae5, 0x0ae8, 0x0aee, 0x0af3, 0x0af3, 0x0af3, 0x0afb, + 0x0aff, 0x0b05, 0x0b0d, 0x0b14, 0x0b1c, 0x0b24, 0x0b28, 0x0b2e, + 0x0b34, 0x0b39, 0x0b3d, 0x0b51, 0x0b5f, 0x0b6d, 0x0b74, 0x0b7a, + 0x0b85, 0x0b90, 0x0b9a, 0x0ba0, 0x0ba5, 0x0ba5, 0x0bac, 0x0bb8, + 0x0bbd, 0x0bc6, 0x0bcd, 0x0bcd, 0x0bd2, 0x0bdc, 0x0be9, 0x0be9, + 0x0bf5, 0x0bf9, 0x0c07, 0x0c0d, 0x0c11, 0x0c18, 0x0c18, 0x0c1e, + 0x0c27, 0x0c2f, 0x0c3d, 0x0c3d, 0x0c43, 0x0c51, 0x0c55, 0x0c65, + // Entry 1C0 - 1FF + 0x0c6d, 0x0c75, 0x0c7a, 0x0c7f, 0x0c84, 0x0c96, 0x0ca0, 0x0ca7, + 0x0caf, 0x0cb9, 0x0cc3, 0x0cc3, 0x0cc3, 0x0cc3, 0x0cd1, 0x0cd1, + 0x0cd9, 0x0cd9, 0x0cd9, 0x0ce2, 0x0ce2, 0x0cf3, 0x0cf8, 0x0cf8, + 0x0d02, 0x0d0a, 0x0d15, 0x0d15, 0x0d15, 0x0d1a, 0x0d20, 0x0d20, + 0x0d20, 0x0d20, 0x0d29, 0x0d2c, 0x0d33, 0x0d3b, 0x0d51, 0x0d58, + 0x0d5d, 0x0d64, 0x0d64, 0x0d6b, 0x0d70, 0x0d7a, 0x0d82, 0x0d82, + 0x0d8f, 0x0d95, 0x0d99, 0x0d99, 0x0da2, 0x0db1, 0x0dbb, 0x0dbb, + 0x0dc4, 0x0dc8, 0x0dd7, 0x0ddd, 0x0ddd, 0x0ddd, 0x0dea, 0x0df3, + // Entry 200 - 23F + 0x0dfd, 0x0e07, 0x0e0e, 0x0e15, 0x0e21, 0x0e26, 0x0e2a, 0x0e2a, + 0x0e30, 0x0e34, 0x0e3c, 0x0e44, 0x0e54, 0x0e5c, 0x0e5c, 0x0e5c, + 0x0e61, 0x0e65, 0x0e6b, 0x0e70, 0x0e79, 0x0e7c, 0x0e87, 0x0e87, + 0x0e91, 0x0e98, 0x0e98, 0x0ea0, 0x0eab, 0x0eb4, 0x0eb4, 0x0eba, + 0x0eba, 0x0ec3, 0x0ec3, 0x0eca, 0x0ed5, 0x0edc, 0x0ee4, 0x0ef8, + 0x0f01, 0x0f0a, 0x0f11, 0x0f1b, 0x0f1e, 0x0f1e, 0x0f1e, 0x0f1e, + 0x0f1e, 0x0f23, 0x0f23, 0x0f28, 0x0f2e, 0x0f34, 0x0f39, 0x0f3e, + 0x0f46, 0x0f46, 0x0f4c, 0x0f4c, 0x0f50, 0x0f53, 0x0f59, 0x0f60, + // Entry 240 - 27F + 0x0f65, 0x0f65, 0x0f6e, 0x0f75, 0x0f80, 0x0f80, 0x0f86, 0x0fa5, + 0x0fa9, 0x0fc0, 0x0fc6, 0x0fe0, 0x0ff5, 0x1009, 0x1025, 0x1038, + 0x1049, 0x105b, 0x106d, 0x1088, 0x109c, 0x10b1, 0x10b1, 0x10c3, + 0x10d7, 0x10e5, 0x10ee, 0x1103, 0x1117, 0x1120, 0x112f, 0x1141, + 0x115b, 0x1172, +} // Size: 1244 bytes + +var huLangStr string = "" + // Size: 3938 bytes + "afarabházavesztánafrikaansakanamharaaragonézarabasszámiavarajmaraazerbaj" + + "dzsánibaskírbeloruszbolgárbislamabambarabengálitibetibretonbosnyákkatalá" + + "ncsecsencsamorókorzikaikrícsehegyházi szlávcsuvaswalesidánnémetdivehibut" + + "ánievegörögangoleszperantóspanyolésztbaszkperzsafulanifinnfidzsiferöeri" + + "franciafrízírskót gaelgalíciaiguaranigudzsaratiman-szigetihauszahéberhin" + + "dihiri motuhorváthaitimagyarörményhererointerlingvaindonézinterlingueigb" + + "ószecsuán jiinupiakidóizlandiolaszinuktitutjapánjávaigrúzkongokikujukua" + + "nyamakazahgrönlandikambodzsaikannadakoreaikanurikásmírikurdkomikornikirg" + + "izlatinluxemburgigandalimburgilingalalaoszilitvánluba-katangalettmálgasm" + + "arshallimaorimacedónmalajálammongolmarathimalájmáltaiburmainauruiészaki " + + "ndebelenepálindongahollandnorvég nynorsknorvég bokmaldéli ndebelenavahón" + + "yanjaokszitánojibvaoromóiorijaoszétpandzsábipalilengyelpastuportugálkecs" + + "uaréto-románkirundirománoroszkiruandaszanszkritszardíniaiszindhiészaki s" + + "zámiszangószingalézszlovákszlovénszamoaisonaszomáliaialbánszerbsziszuati" + + "szeszotószundanézsvédszuahélitamiltelugutadzsikthaitigrinjatürkménszecsu" + + "ánitongatörökcongatatártahitiujgurukránurduüzbégvendavietnamivolapükval" + + "lonvolofhoszajiddisjorubazsuangkínaizuluachinézakoliadangmeadygheafrihil" + + "iagemainuakkádaleutdél-altajióangolangikaarámiaraucaniarapahoaravakasuas" + + "ztúrawádibalucsibalinézbaszabamungomalabedzsabembabenabafutnyugati belud" + + "zsbodzspuribikolbinikomsiksikabrajbodokosziburjátbuginézbulublinmedumbac" + + "addokaribkajugaatszamcebuikigacsibcsacsagatájcsukézmaricsinuk zsargoncso" + + "któcsipevécserokicsejenszoráni kurdkoptkrími tatárkasubdakotadargvataita" + + "delavárszlevidogribdinkazarmadogrialsó szorbdualaközép hollandjola-fonyi" + + "diuladazagaembuefikóegyiptomiekadzsukelamitközép angolevondofangfilippín" + + "ófonközép franciaófranciaészaki frízkeleti frízfriuligagagauzgajogbajag" + + "eezikiribatiközép felsÅ‘ németófelsÅ‘ németgondigorontalogótgrebóógörögsvá" + + "jci németgusziigvicsinhaidahawaiihiligajnonhittitehmongfelsÅ‘ szorbhupaib" + + "anibibióilokóinguslojbanngombamachamezsidó-perzsazsidó-arabkara-kalpakka" + + "bijekacsinjjukambakawikabardikanembutyapmakondekabuverdianukorokaszikota" + + "nézkojra-csínikakókalendzsinkimbundukomi-permjákkonkanikosreikpellekarac" + + "sáj-balkárkarelaikuruhsambalabafiakölschkumükkutenailadinolangilahndalam" + + "balezglakotamongóloziészaki luriluba-lulualuisenolundaluolushailujiamadu" + + "raimafamagahimaithilimakaszarmandingómasaimabamoksánmandarmendemerumauri" + + "tiusi kreolközép írmakua-metómeta’mikmakminangkabaumandzsumanipurimohawk" + + "moszimundangtöbbszörös nyelvekkríkmirandézmarvarimyeneerzjánymázanderáni" + + "nápolyinamaalsónémetnevariniasniuingumbangiemboonnogajóskandinávn’kóésza" + + "ki szotónuerklasszikus newarinyamvézinyankolenyorónzimaosageottomán törö" + + "kpangaszinanpahlavipampanganpapiamentópalauióperzsafÅ‘niciaipohnpeióprová" + + "nszikicseradzsasztánirapanuirarotongairomboromaarománrwoszandavejakutsza" + + "maritánus arámiszamburusasakszantálingambayszanguszicíliaiskótdél-kurdsz" + + "enekaszenaszölkupkojra-szennióírtachelhitsancsádi arabszidamódéli számil" + + "ule számiinar samikoltta lappszoninkesogdienszranai tongószererszahószuk" + + "umaszuszusumércomoreiklasszikus szírszíriaitemneteszóterenótetumtigrétiv" + + "tokelauiklingontlingittamaseknyasa tongatok pisintarokócsimsiánitumbukat" + + "uvaluszaváktuvaiközép-marokkói tamazigtudmurtugaritiumbunduÅ‘sivaivotjákv" + + "unjowalservalamovaraóvasówarlpirikalmükszogajaójapijangbenjembakantoniza" + + "potékBliss jelképrendszerzenagamarokkói tamazightzuninincs nyelvészeti t" + + "artalomzazamodern szabányos arabosztrák németsvájci felnémetausztrál ang" + + "olkanadai angolbrit angolamerikai angollatin-amerikai spanyoleurópai spa" + + "nyolspanyol (mexikói)kanadai franciasvájci franciaalsószászflamandbrazíl" + + "iai portugáleurópai portugálmoldvaiszerbhorvátkongói szuahéliegyszerűsít" + + "ett kínaihagyományos kínai" + +var huLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000a, 0x0013, 0x001c, 0x0020, 0x0026, 0x002f, + 0x0033, 0x003b, 0x003f, 0x0045, 0x0053, 0x005a, 0x0062, 0x0069, + 0x0070, 0x0077, 0x007f, 0x0085, 0x008b, 0x0093, 0x009b, 0x00a2, + 0x00aa, 0x00b2, 0x00b6, 0x00ba, 0x00c9, 0x00cf, 0x00d5, 0x00d9, + 0x00df, 0x00e5, 0x00ec, 0x00ef, 0x00f6, 0x00fb, 0x0106, 0x010d, + 0x0112, 0x0117, 0x011d, 0x0123, 0x0127, 0x012d, 0x0135, 0x013c, + 0x0141, 0x0144, 0x014e, 0x0157, 0x015e, 0x0168, 0x0173, 0x0179, + 0x017f, 0x0184, 0x018d, 0x0194, 0x0199, 0x019f, 0x01a7, 0x01ad, + // Entry 40 - 7F + 0x01b8, 0x01c0, 0x01cb, 0x01d0, 0x01dc, 0x01e3, 0x01e7, 0x01ee, + 0x01f3, 0x01fc, 0x0202, 0x0208, 0x020d, 0x0212, 0x0218, 0x0220, + 0x0225, 0x022f, 0x0239, 0x0240, 0x0246, 0x024c, 0x0255, 0x0259, + 0x025d, 0x0262, 0x0268, 0x026d, 0x0277, 0x027c, 0x0284, 0x028b, + 0x0291, 0x0298, 0x02a4, 0x02a8, 0x02af, 0x02b8, 0x02bd, 0x02c5, + 0x02cf, 0x02d5, 0x02dc, 0x02e2, 0x02e9, 0x02ef, 0x02f5, 0x0304, + 0x030b, 0x0311, 0x0318, 0x0327, 0x0335, 0x0342, 0x0349, 0x034f, + 0x0358, 0x035e, 0x0365, 0x036a, 0x0370, 0x037a, 0x037e, 0x0385, + // Entry 80 - BF + 0x038a, 0x0393, 0x0399, 0x03a5, 0x03ac, 0x03b2, 0x03b7, 0x03bf, + 0x03c9, 0x03d4, 0x03db, 0x03e9, 0x03f0, 0x03fa, 0x0402, 0x040a, + 0x0411, 0x0415, 0x041f, 0x0425, 0x042a, 0x0433, 0x043c, 0x0446, + 0x044b, 0x0454, 0x0459, 0x045f, 0x0466, 0x046a, 0x0472, 0x047b, + 0x0485, 0x048a, 0x0491, 0x0496, 0x049c, 0x04a2, 0x04a7, 0x04ad, + 0x04b1, 0x04b8, 0x04bd, 0x04c5, 0x04cd, 0x04d3, 0x04d8, 0x04dd, + 0x04e3, 0x04e9, 0x04ef, 0x04f5, 0x04f9, 0x0501, 0x0506, 0x050d, + 0x0513, 0x0513, 0x051b, 0x051f, 0x0523, 0x0529, 0x0529, 0x052e, + // Entry C0 - FF + 0x052e, 0x0539, 0x0540, 0x0546, 0x054c, 0x0554, 0x0554, 0x055b, + 0x055b, 0x0561, 0x0561, 0x0561, 0x0564, 0x0564, 0x056b, 0x056b, + 0x0571, 0x0578, 0x0580, 0x0580, 0x0585, 0x058a, 0x058a, 0x0590, + 0x0596, 0x059b, 0x059b, 0x059f, 0x05a4, 0x05a4, 0x05b3, 0x05bc, + 0x05c1, 0x05c5, 0x05c5, 0x05c8, 0x05cf, 0x05cf, 0x05cf, 0x05d3, + 0x05d3, 0x05d7, 0x05dc, 0x05e3, 0x05eb, 0x05ef, 0x05f3, 0x05fa, + 0x05ff, 0x0604, 0x060a, 0x0610, 0x0615, 0x0619, 0x0620, 0x0629, + 0x0630, 0x0634, 0x0642, 0x0649, 0x0651, 0x0658, 0x065e, 0x066b, + // Entry 100 - 13F + 0x066f, 0x066f, 0x067c, 0x0681, 0x0687, 0x068d, 0x0692, 0x069a, + 0x06a0, 0x06a6, 0x06ab, 0x06b0, 0x06b5, 0x06c0, 0x06c0, 0x06c5, + 0x06d4, 0x06de, 0x06e3, 0x06e9, 0x06ed, 0x06f1, 0x06f1, 0x06fc, + 0x0704, 0x070a, 0x0717, 0x0717, 0x071d, 0x071d, 0x0721, 0x072c, + 0x072c, 0x072f, 0x072f, 0x073e, 0x0747, 0x0747, 0x0754, 0x0760, + 0x0766, 0x0768, 0x076e, 0x076e, 0x0772, 0x0777, 0x0777, 0x077b, + 0x0784, 0x0784, 0x0799, 0x07a8, 0x07a8, 0x07ad, 0x07b6, 0x07ba, + 0x07c0, 0x07c9, 0x07d7, 0x07d7, 0x07d7, 0x07dd, 0x07e4, 0x07e9, + // Entry 140 - 17F + 0x07e9, 0x07ef, 0x07ef, 0x07f9, 0x0800, 0x0805, 0x0811, 0x0811, + 0x0815, 0x0819, 0x0820, 0x0826, 0x082b, 0x082b, 0x082b, 0x0831, + 0x0837, 0x083e, 0x084b, 0x0856, 0x0856, 0x0861, 0x0867, 0x086d, + 0x0870, 0x0875, 0x0879, 0x0880, 0x0887, 0x088b, 0x0892, 0x089e, + 0x089e, 0x08a2, 0x08a2, 0x08a7, 0x08af, 0x08bb, 0x08bb, 0x08bb, + 0x08c0, 0x08ca, 0x08d2, 0x08df, 0x08e6, 0x08ec, 0x08f2, 0x0903, + 0x0903, 0x0903, 0x090a, 0x090f, 0x0916, 0x091b, 0x0922, 0x0928, + 0x092f, 0x0935, 0x093a, 0x0940, 0x0945, 0x0949, 0x0949, 0x0949, + // Entry 180 - 1BF + 0x0949, 0x094f, 0x094f, 0x0955, 0x0959, 0x0965, 0x0965, 0x096f, + 0x0976, 0x097b, 0x097e, 0x0984, 0x0989, 0x0989, 0x0989, 0x0990, + 0x0994, 0x099a, 0x09a2, 0x09aa, 0x09b3, 0x09b8, 0x09bc, 0x09c3, + 0x09c9, 0x09ce, 0x09d2, 0x09e2, 0x09ed, 0x09f8, 0x09ff, 0x0a05, + 0x0a10, 0x0a17, 0x0a1f, 0x0a25, 0x0a2a, 0x0a2a, 0x0a31, 0x0a46, + 0x0a4b, 0x0a54, 0x0a5b, 0x0a5b, 0x0a60, 0x0a68, 0x0a75, 0x0a75, + 0x0a7d, 0x0a81, 0x0a8c, 0x0a92, 0x0a96, 0x0a9a, 0x0a9a, 0x0aa0, + 0x0aa9, 0x0aae, 0x0aba, 0x0aba, 0x0ac1, 0x0acf, 0x0ad3, 0x0ae4, + // Entry 1C0 - 1FF + 0x0aed, 0x0af5, 0x0afb, 0x0b00, 0x0b05, 0x0b15, 0x0b20, 0x0b27, + 0x0b30, 0x0b3b, 0x0b41, 0x0b41, 0x0b41, 0x0b41, 0x0b49, 0x0b49, + 0x0b52, 0x0b52, 0x0b52, 0x0b59, 0x0b59, 0x0b65, 0x0b6a, 0x0b6a, + 0x0b77, 0x0b7e, 0x0b88, 0x0b88, 0x0b88, 0x0b8d, 0x0b91, 0x0b91, + 0x0b91, 0x0b91, 0x0b98, 0x0b9b, 0x0ba3, 0x0ba8, 0x0bbc, 0x0bc4, + 0x0bc9, 0x0bd2, 0x0bd2, 0x0bd9, 0x0bdf, 0x0be9, 0x0bee, 0x0bee, + 0x0bf7, 0x0bfe, 0x0c03, 0x0c03, 0x0c0b, 0x0c17, 0x0c1c, 0x0c1c, + 0x0c25, 0x0c28, 0x0c33, 0x0c3b, 0x0c3b, 0x0c3b, 0x0c47, 0x0c52, + // Entry 200 - 23F + 0x0c5b, 0x0c66, 0x0c6e, 0x0c75, 0x0c83, 0x0c89, 0x0c8f, 0x0c8f, + 0x0c96, 0x0c9c, 0x0ca2, 0x0ca9, 0x0cb9, 0x0cc1, 0x0cc1, 0x0cc1, + 0x0cc6, 0x0ccc, 0x0cd3, 0x0cd8, 0x0cde, 0x0ce1, 0x0ce9, 0x0ce9, + 0x0cf0, 0x0cf7, 0x0cf7, 0x0cfe, 0x0d09, 0x0d12, 0x0d12, 0x0d19, + 0x0d19, 0x0d23, 0x0d23, 0x0d2a, 0x0d30, 0x0d37, 0x0d3c, 0x0d56, + 0x0d5c, 0x0d63, 0x0d6a, 0x0d6e, 0x0d71, 0x0d71, 0x0d71, 0x0d71, + 0x0d71, 0x0d78, 0x0d78, 0x0d7d, 0x0d83, 0x0d89, 0x0d8f, 0x0d94, + 0x0d9c, 0x0d9c, 0x0da3, 0x0da3, 0x0da8, 0x0dac, 0x0db0, 0x0db7, + // Entry 240 - 27F + 0x0dbc, 0x0dbc, 0x0dc3, 0x0dcb, 0x0de0, 0x0de0, 0x0de6, 0x0df9, + 0x0dfd, 0x0e18, 0x0e1c, 0x0e32, 0x0e32, 0x0e41, 0x0e52, 0x0e61, + 0x0e6e, 0x0e78, 0x0e86, 0x0e9c, 0x0eac, 0x0ebe, 0x0ebe, 0x0ecd, + 0x0edc, 0x0ee7, 0x0eee, 0x0f02, 0x0f14, 0x0f1b, 0x0f27, 0x0f38, + 0x0f4f, 0x0f62, +} // Size: 1244 bytes + +var hyLangStr string = "" + // Size: 6740 bytes + "Õ¡Ö†Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¡Õ¢Õ­Õ¡Õ¦Õ¥Ö€Õ¥Õ¶Õ¡Ö†Ö€Õ«Õ¯Õ¡Õ¡Õ¶Õ½Õ¡Ö„Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¡Õ´Õ°Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ½Õ¡Õ´Õ¥Ö€Õ¥Õ¶Õ¡Õ¤Ö€Õ¢Õ¥Õ»Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¢" + + "Õ¡Õ·Õ¯Õ«Ö€Õ¥Ö€Õ¥Õ¶Õ¢Õ¥Õ¬Õ¡Õ¼Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Õ¢Õ¸Ö‚Õ¬Õ²Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ¢Õ¡Õ´Õ¢Õ¡Ö€Õ¡Õ¢Õ¥Õ¶Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ¿Õ«Õ¢Õ¥Õ©Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ¥Õ¿Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ¢Õ¸Õ½" + + "Õ¶Õ«Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¿Õ¡Õ¬Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¹Õ¥Õ¹Õ¥Õ¶Õ¥Ö€Õ¥Õ¶Õ¯Õ¸Ö€Õ½Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ¹Õ¥Õ­Õ¥Ö€Õ¥Õ¶Õ¹Õ¸Ö‚Õ¾Õ¡Õ·Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Õ¥Õ¬Õ½Õ¥Ö€Õ¥Õ¶Õ¤Õ¡Õ¶Õ«Õ¥Ö€Õ¥Õ¶Õ£" + + "Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ»Õ¸Õ¶Õ£Ö„Õ°Õ¡Õ§Õ¾Õ¥Õ°Õ¸Ö‚Õ¶Õ¡Ö€Õ¥Õ¶Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ§Õ½ÕºÕ¥Ö€Õ¡Õ¶Õ¿Õ¸Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ§Õ½Õ¿Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ¢Õ¡Õ½Õ¯Õ¥Ö€Õ¥Õ¶Õº" + + "Õ¡Ö€Õ½Õ¯Õ¥Ö€Õ¥Õ¶Ö†Õ«Õ¶Õ¶Õ¥Ö€Õ¥Õ¶Ö†Õ«Õ»Õ«Õ¥Ö€Õ¥Õ¶Ö†Õ¡Ö€ÕµÕ¸Ö€Õ¥Ö€Õ¥Õ¶Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶Õ¡Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ö†Ö€Õ«Õ¦Õ¥Ö€Õ¥Õ¶Õ«Õ¼Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ£" + + "Õ¡Õ¬Õ«Õ½Õ¥Ö€Õ¥Õ¶Õ£Õ¸Ö‚Õ¡Ö€Õ¡Õ¶Õ«Õ£Õ¸Ö‚Õ»Õ¡Ö€Õ¡Õ©Õ«Õ´Õ¥Õ¶Õ¥Ö€Õ¥Õ¶Õ°Õ¡Õ¸Ö‚Õ½Õ¡Õ¥Õ¢Ö€Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶Õ¤Õ«Õ­Õ¸Ö€Õ¾Õ¡Õ©Õ¥Ö€Õ¥Õ¶Õ°Õ¡Õ«Õ©Õ¥Ö€Õ¥Õ¶Õ°" + + "Õ¸Ö‚Õ¶Õ£Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ°Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ«Õ¶Õ¤Õ¸Õ¶Õ¥Õ¦Õ¥Ö€Õ¥Õ¶Õ«Õ£Õ¢Õ¸Õ½Õ«Õ­Õ¸Ö‚Õ¡Õ¶ ÕµÕ«Õ«Õ½Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ«Õ¿Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ«Õ¶Õ¸Ö‚Õ¯Õ¿Õ«Õ¿Õ¸Ö‚Õ¿" + + "Õ³Õ¡ÕºÕ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ³Õ¡Õ¾Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ¾Ö€Õ¡ÖÕ¥Ö€Õ¥Õ¶Õ¯Õ«Õ¯Õ¸Ö‚ÕµÕ¸Ö‚Õ²Õ¡Õ¦Õ¡Õ­Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¬Õ¡Õ¡Õ¬Õ«Õ½Õ¸Ö‚Õ¿Ö„Õ´Õ¥Ö€Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¶Õ¡Õ¤Õ¡Õ¯Õ¸" + + "Ö€Õ¥Õ¥Ö€Õ¥Õ¶Ö„Õ¡Õ·Õ´Õ«Ö€Õ¥Ö€Õ¥Õ¶Ö„Ö€Õ¤Õ¥Ö€Õ¥Õ¶Õ¯Õ¸Õ¼Õ¶Õ¥Ö€Õ¥Õ¶Õ²Ö€Õ²Õ¦Õ¥Ö€Õ¥Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¬ÕµÕ¸Ö‚Ö„Õ½Õ¥Õ´Õ¢Õ¸Ö‚Ö€Õ£Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ¶Õ¤Õ¡Õ¬" + + "Õ«Õ¶Õ£Õ¡Õ¬Õ¡Õ¬Õ¡Õ¸Õ½Õ¥Ö€Õ¥Õ¶Õ¬Õ«Õ¿Õ¾Õ¥Ö€Õ¥Õ¶Õ¬Õ¸Ö‚Õ¢Õ¡-Õ¯Õ¡Õ¿Õ¡Õ¶Õ£Õ¡Õ¬Õ¡Õ¿Õ¾Õ«Õ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¬Õ¡Õ£Õ¡Õ½Õ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¸Ö€Õ«Õ´Õ¡Õ¯Õ¥Õ¤Õ¸Õ¶Õ¥Ö€Õ¥Õ¶" + + "Õ´Õ¡Õ¬Õ¡ÕµÕ¡Õ¬Õ¡Õ´Õ´Õ¸Õ¶Õ²Õ¸Õ¬Õ¥Ö€Õ¥Õ¶Õ´Õ¡Ö€Õ¡Õ©Õ«Õ´Õ¡Õ¬Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ´Õ¡Õ¬Õ©Õ¥Ö€Õ¥Õ¶Õ¢Õ«Ö€Õ´Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ°ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ¶Õ¤Õ¥Õ¢Õ¥Õ¬Õ¥" + + "Õ¶Õ¥ÕºÕ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ°Õ¸Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¶Õ¸Ö€Õ¾Õ¥Õ£Õ¥Ö€Õ¥Õ¶ Õ¶ÕµÕ¸Ö‚Õ¶Õ¸Ö€Õ½Õ¯Õ¶Õ¸Ö€Õ¾Õ¥Õ£Õ¥Ö€Õ¥Õ¶ Õ¢Õ¸Ö‚Õ¯Õ´Õ¸Õ¬Õ¡Õ¯Õ¾Õ«Õ¿Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Ö…Õ»Õ«" + + "Õ¢Õ¾Õ¡Ö…Ö€Õ¸Õ´Õ¸Ö…Ö€Õ«ÕµÕ¡Ö…Õ½Õ¥Ö€Õ¥Õ¶ÖƒÕ¥Õ¶Õ»Õ¡Õ¢Õ¥Ö€Õ¥Õ¶ÕºÕ¡Õ¬Õ«Õ¬Õ¥Õ°Õ¥Ö€Õ¥Õ¶ÖƒÕ¸Ö‚Õ·Õ©Õ¸Ö‚ÕºÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Ö„Õ¥Õ¹Õ¸Ö‚Õ¡Õ¼Õ¸Õ´Õ¡Õ¶" + + "Õ·Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Ö‚Õ¶Õ¤Õ«Õ¼Õ¸Ö‚Õ´Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Ö„Õ«Õ¶ÕµÕ¡Ö€Õ¾Õ¡Õ¶Õ¤Õ¡Õ½Õ¡Õ¶Õ½Õ¯Ö€Õ«Õ¿Õ½Õ«Õ¶Õ¤Õ°Õ«Õ°ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ½Õ¡Õ´Õ«Õ½" + + "Õ¡Õ¶Õ£Õ¸Õ½Õ«Õ¶Õ°Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ½Õ¬Õ¸Õ¾Õ¡Õ¯Õ¥Ö€Õ¥Õ¶Õ½Õ¬Õ¸Õ¾Õ¥Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¸Õ¶Õ¡Õ½Õ¸Õ´Õ¡Õ¬Õ«Õ¥Ö€Õ¥Õ¶Õ¡Õ¬Õ¢Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ½Õ¥Ö€Õ¢Õ¥Ö€Õ¥Õ¶Õ°ÕµÕ¸Ö‚Õ½Õ«" + + "Õ½Õ¡ÕµÕ«Õ¶ Õ½Õ¸Õ¿Õ¸Õ½Õ¸Ö‚Õ¶Õ¤Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥Õ¤Õ¥Ö€Õ¥Õ¶Õ½Õ¸Ö‚Õ¡Õ°Õ«Õ¬Õ«Õ©Õ¡Õ´Õ«Õ¬Õ¥Ö€Õ¥Õ¶Õ©Õ¥Õ¬Õ¸Ö‚Õ£Õ¸Ö‚Õ¿Õ¡Õ»Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ©Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ©" + + "Õ«Õ£Ö€Õ«Õ¶Õ«Õ¡Õ©Õ¸Ö‚Ö€Ö„Õ´Õ¥Õ¶Õ¥Ö€Õ¥Õ¶ÖÕ¾Õ¡Õ¶Õ¡Õ¿Õ¸Õ¶Õ£Õ¥Ö€Õ¥Õ¶Õ©Õ¸Ö‚Ö€Ö„Õ¥Ö€Õ¥Õ¶ÖÕ¸Õ¶Õ£Õ¡Õ©Õ¡Õ©Õ¡Ö€Õ¥Ö€Õ¥Õ¶Õ©Õ¡Õ«Õ¿Õ¥Ö€Õ¥Õ¶Õ¸Ö‚ÕµÕ²Õ¸Ö‚Ö€Õ¥" + + "Ö€Õ¥Õ¶Õ¸Ö‚Õ¯Ö€Õ¡Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Ö€Õ¤Õ¸Ö‚Õ¸Ö‚Õ¦Õ¢Õ¥Õ¯Õ¥Ö€Õ¥Õ¶Õ¾Õ¥Õ¶Õ¤Õ¡Õ¾Õ«Õ¥Õ¿Õ¶Õ¡Õ´Õ¥Ö€Õ¥Õ¶Õ¾Õ¸Õ¬Õ¡ÕºÕµÕ¸Ö‚Õ¯Õ¾Õ¡Õ¬Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ¾Õ¸Õ¬Õ¸Ö†Ö„Õ½" + + "Õ¸Õ¦Õ¡Õ«Õ¤Õ«Õ·ÕµÕ¸Ö€Õ¸Ö‚Õ¢Õ¡ÕªÕ¸Ö‚Õ¡Õ¶Õ£Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ¦Õ¸Ö‚Õ¬Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Õ¡Õ¹Õ¥Õ°Õ¥Ö€Õ¥Õ¶Õ¡Õ¯Õ¸Õ¬Õ¥Ö€Õ¥Õ¶Õ¡Õ¤Õ¡Õ¶Õ£Õ´Õ¥Ö€Õ¥Õ¶Õ¡Õ¤Õ«Õ²Õ¥Ö€Õ¥" + + "Õ¶Õ©Õ¸Ö‚Õ¶Õ«Õ½Õ¡Õ¯Õ¡Õ¶ Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ²Õ¥Õ´Õ¡ÕµÕ¶Õ¥Ö€Õ¥Õ¶Õ¡Ö„Ö„Õ¡Õ¤Õ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¡Ö€Õ¡Õ´Õ¥Õ¥Ö€Õ¥Õ¶Õ´Õ¡ÕºÕ¸Ö‚Õ¹Õ«Õ¡Õ¬Õª" + + "Õ«Ö€Õ¡Õ¯Õ¡Õ¶ Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¥Õ£Õ«ÕºÕ¿Õ¡Õ¯Õ¡Õ¶ Õ¡Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ½Õ¸Ö‚Õ¡Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ ÕªÕ¥Õ½Õ¿Õ¥Ö€Õ« Õ¬Õ¥Õ¦Õ¸Ö‚Õ¡Õ½Õ¿Õ¸Ö‚Ö€Õ¥Ö€Õ¥Õ¶Õ¢" + + "Õ¥Õ´Õ¢Õ¡Õ¢Õ¥Õ¶Õ¡Õ¡Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Õ¢Õ¥Õ¬Õ¸Õ¹Õ«Õ¢Õ¸Õ¤Õ¸Õ¡Ö„Õ¸Ö‚Õ¦Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¢Õ¸Ö‚Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¹Õ«Õ£Õ¡Õ·Õ¥Ö€Õ¸Õ¯Õ«Õ½Õ¸Ö€Õ¡Õ¶Õ« (Ö„Ö€Õ¤Õ¥Ö€Õ¥" + + "Õ¶)Õ²ÕºÕ¿Õ¥Ö€Õ¥Õ¶Õ²Ö€Õ«Õ´ÕµÕ¡Õ¶ Õ©Õ¸Ö‚Ö€Ö„Õ¥Ö€Õ¥Õ¶Õ©Õ¡Õ«Õ©Õ¡Õ¦Õ¡Ö€Õ´Õ¡Õ½Õ¿Õ¸Ö€Õ«Õ¶ Õ½Õ¸Ö€Õ¢Õ«Õ¥Ö€Õ¥Õ¶Õ¤Õ¸Ö‚Õ¡Õ¬Õ¡Õ»Õ¸Õ¬Õ¡-Ö†Õ¸Õ¶ÕµÕ«Õ§Õ´Õ¢" + + "Õ¸Ö‚Õ§Ö†Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶ Õ¥Õ£Õ«ÕºÕ¿Õ¥Ö€Õ¥Õ¶Ö†Õ«Õ¬Õ«ÕºÕ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¿Õ¸Ö€Õ¶Õ¡Õ¤Õ¥Õ¬Õ¥Õ¶ Ö†Õ«Õ¶Õ¶Õ¥Ö€Õ¥Õ¶Ö†Õ¸Õ¶Õ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶ Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€" + + "Õ¥Õ¶Õ¡Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ö†Ö€Õ«Õ¦Õ¥Ö€Õ¥Õ¶Ö†Ö€Õ«Õ¸Ö‚Õ¬Õ«Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ¥Ö€Õ¥Õ¶Õ£Õ¡Õ£Õ¡Õ¸Ö‚Õ¦Õ¥Ö€Õ¥Õ¶Õ¦Ö€Õ¡Õ¤Õ¡Õ·Õ¿Õ¡Õ¯Õ¡Õ¶ Õ¤Õ¡Ö€Õ«Õ°Õ«Õ¶ Õ¢Õ¡Ö€Õ±" + + "Ö€ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ£Õ¸Õ©Õ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶ Õ°Õ¸Ö‚Õ¶Õ¡Ö€Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡Õ¶ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¾Õ¡ÕµÕ¸Ö‚Õ£Õ¸Ö‚Õ½Õ«Õ°Õ¡Õ¾Õ¡ÕµÕ«Õ¥Ö€" + + "Õ¥Õ¶Õ¾Õ¥Ö€Õ«Õ¶ Õ½Õ¸Ö€Õ¢Õ«Õ¥Ö€Õ¥Õ¶Õ½ÕµÕ¡Õ¶ Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ¶Õ£Õ¸Õ´Õ¢Õ¡Õ´Õ¡Õ·Õ¡Õ´Õ¥Õ¯Õ¡Õ¢Õ«Õ¬Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ´Õ¢Õ¡Õ¿Õ«Õ¡ÕºÕ´Õ¡Õ¯Õ¸Õ¶Õ¤Õ¥Õ¯Õ¸Ö‚Õ¢Õ¡" + + "Õ¾Õ¥Ö€Õ¤Õ«Õ¡Õ¶Õ¸Ö‚Õ¯Õ¸ÕµÖ€Õ¡ Õ¹Õ«Õ¶Õ«Õ¯Õ¡Õ¬Õ¥Õ¶Õ»Õ«Õ¶Õ¯Õ¸Õ´Õ«-ÕºÕ¥Ö€Õ´ÕµÕ¡Õ¯Õ¯Õ¸Õ¶Õ¯Õ¡Õ¶Õ«Õ·Õ¡Õ´Õ¢Õ¡Õ¬Õ¡Õ¢Õ¡Ö†Õ«Õ¡Õ¬Õ¡Õ¶Õ£Õ«Õ¬Õ¡Õ¯Õ¸Õ¿Õ¡Õ°Õµ" + + "Õ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ¬Õ¸Ö‚Ö€Õ«Õ¥Ö€Õ¥Õ¶Õ¬Õ¸Ö‚Õ¸Õ¬Õ¸Ö‚ÕµÕ¡Õ´Õ¡Õ½Õ¡Õ«Õ´Õ¥Ö€Õ¸Ö‚Õ´Õ¸Ö€Õ«Õ½ÕµÕ¥Õ¶Õ´Õ¡Ö„Õ¸Ö‚Õ¡-Õ´Õ¥Õ¿Õ¿Õ¸Õ´Õ¥Õ¿Õ¡Õ´Õ¸Õ°Õ¡Õ¾Ö„Õ¡Ö€Ö‡" + + "Õ´Õ¿ÕµÕ¡Õ¶ Õ´Õ¡Ö€Õ«Õ¥Ö€Õ¥Õ¶Õ´Õ¸Ö‚Õ¶Õ¤Õ¡Õ¶Õ£Õ´Õ¡Õ¦Õ¡Õ¶Õ¤Õ¡Ö€Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¶Õ¡Õ´Õ¡Õ¯Õ¾Õ¡Õ½Õ«Õ¸Õ°Õ«Õ¶ Õ¶Õ¸Ö€Õ¾Õ¥Õ£Õ¥Ö€Õ¥Õ¶Õ¶Õ¯Õ¸Õ¶Õ¸Ö‚Õ¥Ö€Õ¶ÕµÕ¡" + + "Õ¶Õ¯Õ¸Õ¬Õ¥Ö…Õ½Õ¥ÕµÕ»Õ«Ö…Õ½Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶ÕºÕ¡Õ¶Õ£Õ¡Õ½Õ«Õ¶Õ¡Õ¶Õ¥Ö€Õ¥Õ¶ÕºÕ¡Õ°Õ¬Õ¡Õ¾Õ¥Ö€Õ¥Õ¶ÕºÕ¡Õ¶ÕºÕ¡Õ¶Õ£Õ¡Õ¥Ö€Õ¥Õ¶ÕºÕ¡ÕºÕ«Õ¡Õ´Õ¥Õ¶Õ¿Õ¸ÕºÕ¡Õ¬Õ¡Õ¸" + + "Ö‚Õ¥Ö€Õ¥Õ¶ÕºÕ«Õ¯Õ¡Ö€Õ¤Õ¥Ö€Õ¥Õ¶ÖƒÕ¥Õ¶Õ½Õ«Õ¬Õ¾Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶ÕºÕ¬Õ¡Õ¿Õ¡Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ°Õ«Õ¶ ÕºÕ¡Ö€Õ½Õ¯Õ¥Ö€Õ¥Õ¶ÕºÕ¡Õ¬Õ¡" + + "Õ¶Õ¿Õ«Õ¶Õ¶Õ¥Ö€Õ« Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶ÖƒÕµÕ¸Ö‚Õ¶Õ«Õ¯Õ¥Ö€Õ¥Õ¶ÕºÕ«Õ¥Õ´Õ¸Õ¶Õ¿Õ¥Ö€Õ¥Õ¶ÕºÕ¸Õ¶Õ¿Õ«Õ¯Õ¥Ö€Õ¥Õ¶ÕºÕ¸Õ¶ÕºÕ¥Õ¥Ö€Õ¥Õ¶ÕºÖ€Õ¸Ö‚Õ½Õ¥Ö€Õ¥Õ¶Õ°Õ«" + + "Õ¶ ÕºÖ€Õ¸Õ¾Õ¥Õ¶Õ½Õ«Õ¡Õ¬Õ¯Õ«Õ¹Õ¥Õ¼Õ¡Õ»Õ¡Õ½Õ¿Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¡ÕºÕ¡Õ¶Õ¸Ö‚Õ«Õ¼Õ¡Ö€Õ¸Õ¿Õ¸Õ¶Õ£Õ¡Õ¶Õ¼Õ¸Õ´Õ¡Õ¶Õ«Õ¸Õ¬Õ¥Ö€Õ¥Õ¶Õ¼Õ«Ö†Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Õ´Õ¢Õ¸Õ¼" + + "Õ¸Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Õ¿Õ¸Ö‚Õ´Õ¡Õ¶Õ¼Õ¸Ö‚Õ½Õ«Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¸Õ¾Õ«Õ¡Õ¶Õ¡Õ¡Ö€Õ¸Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¼Õ¾Õ¡Õ½Õ¡Õ´Õ¢Õ¸Ö‚Ö€Õ¸Ö‚Õ½Õ¡Õ¶Õ£Õ¸Ö‚Õ°Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ " + + "Ö„Ö€Õ¤Õ¥Ö€Õ¥Õ¶Õ½Õ¥Õ¶Õ¡Õ¯Õ¸ÕµÖ€Õ¡Õ¢Õ¸Ö€Õ¸ Õ½Õ¥Õ¶Õ¶Õ«Õ°Õ«Õ¶ Õ«Õ¼Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¿Õ¡Õ·Õ¥Õ¬Õ°Õ«Õ©Õ°Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Õ½Õ¡Õ´Õ«Õ¬Õ¸Ö‚Õ¬Õ¥ Õ½Õ¡Õ´" + + "Õ«Õ«Õ¶Õ¡Ö€Õ« Õ½Õ¡Õ´Õ«Õ½Õ¯Õ¸Õ¬Õ¿ Õ½Õ¡Õ´Õ«Õ¿Õ¸Ö‚Õ¬Õ¸Ö‚Õ¿Õ«Õ´Õ¶Õ¥Õ¿Õ¥Õ½Õ¸Õ¿Õ¥Ö€Õ¥Õ¶Õ¸Õ©Õ¥Õ©Õ¸Ö‚Õ´Õ¿Õ«Õ£Ö€Õ¥Õ¿Õ«Õ¾Õ¥Ö€Õ¥Õ¶Õ¿Õ¸Õ¯Õ¥Õ¬Õ¡Õ¸Ö‚ÖÕ¡Õ­" + + "Õ¸Ö‚Ö€Õ¿Õ¬Õ«Õ¶Õ£Õ«Õ¿Õ©Õ¡Õ¬Õ«Õ·Õ¥Ö€Õ¥Õ¶Õ¿Õ¡Õ´Õ¡Õ·Õ¥Õ¯Õ¿Õ¸Õ¯ ÖƒÕ«Õ½Õ«Õ¶Õ¿Õ¸Ö‚Ö€Õ¸ÕµÕ¸Õ¿Õ¡Ö€Õ¸Õ¯Õ¸ÖÕ¡Õ¯Õ¸Õ¶Õ¥Ö€Õ¥Õ¶ÖÕ«Õ´Õ·ÕµÕ¡Õ¶Õ¿Õ¸Ö‚Õ´Õ¢Õ¸Ö‚" + + "Õ¯Õ¡Õ©Õ¸Ö‚Õ¾Õ¡Õ¬Õ¸Ö‚Õ¥Ö€Õ¥Õ¶Õ¿Õ¡Õ½Õ¡Õ¾Õ¡Ö„Õ¿Õ¸Ö‚Õ¾Õ¥Ö€Õ¥Õ¶Õ¯Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¿Õ¬Õ¡Õ½ÕµÕ¡Õ¶ Õ©Õ¡Õ´Õ¡Õ¦Õ«Õ­Õ¿Õ¸Ö‚Õ¤Õ´Õ¸Ö‚Ö€Õ¿Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Õ£Õ¡Ö€Õ«" + + "Õ¿Õ¥Ö€Õ¥Õ¶Õ¸Ö‚Õ´Õ¢Õ¸Ö‚Õ¶Õ¤Õ¸Ö‚Õ¼Õ¸Ö‚Õ¿Õ¥Ö€Õ¥Õ¶Õ¾Õ¡Õ«Õ¾Õ¥Õ¶Õ¥Õ¿Õ«Õ¯Õ¥Ö€Õ¥Õ¶Õ¾Õ¥ÕºÕ½Õ¯Õ¥Ö€Õ¥Õ¶Õ¡Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ö†Õ¬Õ¡Õ´Õ¡Õ¤Õ¥Ö€Õ¥Õ¶Õ¾Õ¸Õ¤Õ¥Ö€Õ¥" + + "Õ¶Õ¾Õ¸Ö€Õ¸Õ¾Õ¸Ö‚Õ¶Õ»Õ¸Õ¾Õ¡Õ¬Õ½Õ¥Ö€Õ¥Õ¶Õ¾Õ¸Õ¬Õ¡ÕµÕ¿Õ¡Õ¾Õ¡Ö€Õ¡ÕµÕ¥Ö€Õ¥Õ¶Õ¾Õ¡Õ·Õ¸Õ¾Õ¡Ö€Õ¬ÕºÕ«Ö€Õ«Õ¾Õ¸Ö‚ Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ½Õ¸Õ£Õ¡ÕµÕ¡Õ¸ÕµÕ¡ÕºÕ½Õ¯Õ¥" + + "Ö€Õ¥Õ¶ÕµÕ¡Õ¶Õ£Õ¢Õ¥Õ¶ÕµÕ¥Õ´Õ¢Õ¡Õ¥Ö€Õ¥Õ¶Õ½Õ¡ÕºÕ¸Õ¿Õ¥Õ¯Õ¥Ö€Õ¥Õ¶Õ¦Õ¥ÕµÕ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¦Õ¥Õ¶Õ¡Õ£Õ¡Õ½Õ¿Õ¡Õ¶Õ¤Õ¡Ö€Õ¿ Õ´Õ¡Ö€Õ¸Õ¯Õ¡Õ¯Õ¡Õ¶ Õ©Õ¡Õ´Õ¡Õ¦" + + "Õ«Õ²Õ¿Õ¦Õ¸Ö‚Õ¶Õ«Õ¥Ö€Õ¥Õ¶Õ¡Õ¼Õ¡Õ¶Ö Õ¬Õ¥Õ¦Õ¾Õ¡ÕµÕ«Õ¶ Õ¢Õ¸Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¸Ö‚Õ©ÕµÕ¡Õ¶Õ¦Õ¡Õ¦Õ¡Õ¥Ö€Õ¥Õ¶ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ¡Õ¯Õ«Ö Õ½Õ¿Õ¡Õ¶Õ¤Õ¡Ö€Õ¿ Õ¡" + + "Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶Õ¡Õ¾Õ½Õ¿Ö€Õ«Õ¡Õ¯Õ¡Õ¶ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡Õ¶ Õ¢Õ¡Ö€Õ±Ö€ Õ£Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¡Õ¾Õ½Õ¿Ö€Õ¡Õ¬Õ«Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶" + + "Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¡Õ¤Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¡Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¡Õ¡Õ´Õ¥Ö€" + + "Õ«Õ¯ÕµÕ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¥Õ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ´Õ¥Ö„Õ½Õ«Õ¯Õ¡Õ¯Õ¡Õ¶ Õ«Õ½ÕºÕ¡Õ¶Õ¥Ö€Õ¥Õ¶Õ¯Õ¡Õ¶Õ¡Õ¤Õ¡Õ¯Õ¡Õ¶ Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€" + + "Õ¥Õ¶Õ·Õ¾Õ¥ÕµÖÕ¡Ö€Õ¡Õ¯Õ¡Õ¶ Ö†Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶Ö†Õ¬Õ¡Õ´Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶Õ¢Ö€Õ¡Õ¦Õ«Õ¬Õ¡Õ¯Õ¡Õ¶ ÕºÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ¥Õ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶ ÕºÕ¸Ö€" + + "Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶Õ´Õ¸Õ¬Õ¤Õ¸Õ¾Õ¥Ö€Õ¥Õ¶Õ¯Õ¸Õ¶Õ£Õ¸ÕµÕ« Õ½Õ¸Ö‚Õ¡Õ°Õ«Õ¬Õ«ÕºÕ¡Ö€Õ¦Õ¥ÖÕ¾Õ¡Õ® Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶Õ¡Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¡Õ¶ Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶" + +var hyLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0022, 0x0022, 0x0034, 0x0044, 0x0056, 0x0056, + 0x0066, 0x0076, 0x0076, 0x0076, 0x008e, 0x00a2, 0x00ba, 0x00d0, + 0x00d0, 0x00de, 0x00f2, 0x0104, 0x0118, 0x012a, 0x0140, 0x0152, + 0x0152, 0x0166, 0x0166, 0x0174, 0x0174, 0x0188, 0x019a, 0x01aa, + 0x01be, 0x01be, 0x01cc, 0x01d2, 0x01e2, 0x01f2, 0x0204, 0x0216, + 0x0228, 0x0238, 0x024a, 0x024a, 0x025a, 0x026a, 0x027e, 0x0290, + 0x02b1, 0x02c5, 0x02c5, 0x02d7, 0x02e7, 0x02f9, 0x0307, 0x0313, + 0x0325, 0x032f, 0x032f, 0x0343, 0x0353, 0x0369, 0x0377, 0x0377, + // Entry 40 - 7F + 0x0377, 0x038d, 0x038d, 0x0395, 0x03a8, 0x03a8, 0x03a8, 0x03bc, + 0x03cc, 0x03e2, 0x03f4, 0x0406, 0x0416, 0x0416, 0x0426, 0x0426, + 0x0438, 0x044e, 0x045e, 0x046c, 0x047c, 0x047c, 0x0490, 0x049e, + 0x049e, 0x04ae, 0x04be, 0x04d0, 0x04f2, 0x04fc, 0x04fc, 0x050a, + 0x051a, 0x052a, 0x0543, 0x0555, 0x056b, 0x056b, 0x0575, 0x058b, + 0x059d, 0x05b1, 0x05bd, 0x05cf, 0x05df, 0x05f3, 0x05f3, 0x0618, + 0x062a, 0x062a, 0x063e, 0x0665, 0x0688, 0x0688, 0x0688, 0x0688, + 0x069e, 0x06aa, 0x06b4, 0x06be, 0x06ca, 0x06de, 0x06e6, 0x06f4, + // Entry 80 - BF + 0x0702, 0x071c, 0x0728, 0x073c, 0x0748, 0x075c, 0x076c, 0x0782, + 0x0792, 0x0792, 0x079e, 0x07bd, 0x07c7, 0x07db, 0x07ef, 0x0803, + 0x0803, 0x080b, 0x081f, 0x0831, 0x0841, 0x0841, 0x0860, 0x0876, + 0x0886, 0x0896, 0x08a8, 0x08b8, 0x08ca, 0x08d8, 0x08e8, 0x0900, + 0x090a, 0x091a, 0x092c, 0x0936, 0x0948, 0x0958, 0x096e, 0x0984, + 0x0990, 0x09a4, 0x09ae, 0x09c4, 0x09d6, 0x09e8, 0x09f2, 0x09fc, + 0x0a04, 0x0a12, 0x0a1e, 0x0a2c, 0x0a42, 0x0a52, 0x0a62, 0x0a76, + 0x0a86, 0x0aab, 0x0aab, 0x0ab3, 0x0ac1, 0x0ad3, 0x0ad3, 0x0ad3, + // Entry C0 - FF + 0x0ad3, 0x0ad3, 0x0aea, 0x0aea, 0x0afc, 0x0b0a, 0x0b0a, 0x0b0a, + 0x0b2d, 0x0b2d, 0x0b2d, 0x0b50, 0x0b58, 0x0b84, 0x0b98, 0x0b98, + 0x0b98, 0x0b98, 0x0b98, 0x0b98, 0x0b98, 0x0b98, 0x0b98, 0x0b98, + 0x0b98, 0x0ba2, 0x0ba2, 0x0baa, 0x0baa, 0x0baa, 0x0bc7, 0x0bc7, + 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, + 0x0bc7, 0x0bcf, 0x0be1, 0x0be1, 0x0be1, 0x0be1, 0x0be1, 0x0be1, + 0x0be1, 0x0be1, 0x0be1, 0x0be1, 0x0bf7, 0x0bff, 0x0bff, 0x0bff, + 0x0bff, 0x0bff, 0x0bff, 0x0bff, 0x0bff, 0x0c0b, 0x0c0b, 0x0c28, + // Entry 100 - 13F + 0x0c36, 0x0c36, 0x0c57, 0x0c57, 0x0c57, 0x0c57, 0x0c61, 0x0c61, + 0x0c61, 0x0c61, 0x0c61, 0x0c6b, 0x0c6b, 0x0c8a, 0x0c8a, 0x0c96, + 0x0c96, 0x0ca9, 0x0ca9, 0x0ca9, 0x0cb3, 0x0cc3, 0x0cc3, 0x0cdc, + 0x0cdc, 0x0cdc, 0x0cdc, 0x0cdc, 0x0cdc, 0x0cdc, 0x0cdc, 0x0cf2, + 0x0d17, 0x0d25, 0x0d25, 0x0d25, 0x0d3e, 0x0d3e, 0x0d3e, 0x0d5f, + 0x0d75, 0x0d81, 0x0d97, 0x0d97, 0x0d97, 0x0d97, 0x0db6, 0x0db6, + 0x0db6, 0x0db6, 0x0db6, 0x0ddc, 0x0ddc, 0x0ddc, 0x0ddc, 0x0dea, + 0x0dea, 0x0e01, 0x0e2c, 0x0e36, 0x0e36, 0x0e40, 0x0e40, 0x0e40, + // Entry 140 - 17F + 0x0e40, 0x0e54, 0x0e54, 0x0e54, 0x0e54, 0x0e54, 0x0e71, 0x0e88, + 0x0e88, 0x0e88, 0x0e88, 0x0e88, 0x0e88, 0x0e88, 0x0e88, 0x0e88, + 0x0e94, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0ea0, 0x0eb2, 0x0eb2, + 0x0eb2, 0x0ebc, 0x0ebc, 0x0ebc, 0x0ebc, 0x0ec4, 0x0ed2, 0x0eee, + 0x0eee, 0x0eee, 0x0eee, 0x0eee, 0x0eee, 0x0f01, 0x0f01, 0x0f01, + 0x0f01, 0x0f11, 0x0f11, 0x0f28, 0x0f36, 0x0f36, 0x0f36, 0x0f36, + 0x0f36, 0x0f36, 0x0f36, 0x0f36, 0x0f44, 0x0f4e, 0x0f4e, 0x0f4e, + 0x0f4e, 0x0f4e, 0x0f58, 0x0f58, 0x0f58, 0x0f58, 0x0f58, 0x0f58, + // Entry 180 - 1BF + 0x0f58, 0x0f64, 0x0f64, 0x0f64, 0x0f64, 0x0f8d, 0x0f8d, 0x0f8d, + 0x0f8d, 0x0f8d, 0x0f95, 0x0f95, 0x0f9f, 0x0f9f, 0x0f9f, 0x0f9f, + 0x0f9f, 0x0f9f, 0x0f9f, 0x0f9f, 0x0f9f, 0x0fa9, 0x0fa9, 0x0fa9, + 0x0fa9, 0x0fa9, 0x0fb3, 0x0fc3, 0x0fc3, 0x0fda, 0x0fe2, 0x0fe2, + 0x0fe2, 0x0fe2, 0x0fe2, 0x0fee, 0x0fee, 0x100f, 0x101f, 0x101f, + 0x101f, 0x101f, 0x101f, 0x101f, 0x101f, 0x101f, 0x103b, 0x103b, + 0x103b, 0x1043, 0x1043, 0x1043, 0x1043, 0x1043, 0x1043, 0x104f, + 0x104f, 0x104f, 0x106a, 0x106a, 0x1070, 0x1070, 0x107a, 0x107a, + // Entry 1C0 - 1FF + 0x107a, 0x108a, 0x108a, 0x108a, 0x1096, 0x10a8, 0x10c4, 0x10d8, + 0x10f0, 0x1104, 0x1118, 0x112c, 0x115b, 0x1179, 0x1192, 0x11bf, + 0x11d5, 0x11eb, 0x11ff, 0x1211, 0x1223, 0x123e, 0x1246, 0x1246, + 0x125e, 0x126e, 0x1282, 0x129a, 0x12a8, 0x12b2, 0x12c4, 0x12d4, + 0x12e8, 0x12f6, 0x130a, 0x1310, 0x1310, 0x1310, 0x1310, 0x1322, + 0x1322, 0x1322, 0x1322, 0x1322, 0x132e, 0x132e, 0x132e, 0x132e, + 0x134f, 0x134f, 0x1357, 0x1357, 0x1357, 0x1374, 0x138f, 0x138f, + 0x139f, 0x139f, 0x139f, 0x139f, 0x139f, 0x139f, 0x13ba, 0x13cd, + // Entry 200 - 23F + 0x13e0, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, + 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13f3, 0x13ff, + 0x1409, 0x1411, 0x141d, 0x1429, 0x1433, 0x1441, 0x1451, 0x145d, + 0x145d, 0x146b, 0x147d, 0x148b, 0x148b, 0x149c, 0x14aa, 0x14b6, + 0x14c8, 0x14d6, 0x14d6, 0x14e8, 0x1500, 0x150e, 0x151e, 0x154d, + 0x1565, 0x157b, 0x158f, 0x159f, 0x15a5, 0x15bb, 0x15cd, 0x15f2, + 0x15f2, 0x1600, 0x1608, 0x1614, 0x1624, 0x1632, 0x1644, 0x164c, + 0x165c, 0x1671, 0x1671, 0x1671, 0x1679, 0x167f, 0x1691, 0x169f, + // Entry 240 - 27F + 0x16b1, 0x16b1, 0x16b1, 0x16c7, 0x16c7, 0x16dd, 0x16e9, 0x171d, + 0x172f, 0x1767, 0x1777, 0x17af, 0x17af, 0x17d8, 0x180e, 0x1837, + 0x185a, 0x187f, 0x18a2, 0x18d3, 0x18f8, 0x191f, 0x191f, 0x1944, + 0x196d, 0x196d, 0x1983, 0x19b2, 0x19df, 0x19f3, 0x19f3, 0x1a12, + 0x1a33, 0x1a54, +} // Size: 1244 bytes + +var idLangStr string = "" + // Size: 3958 bytes + "AfarAbkhazAvestaAfrikaansAkanAmharikAragonArabAssamAvarAymaraAzerbaijanB" + + "ashkirBelarusiaBulgariaBislamaBambaraBengaliTibetBretonBosniaKatalanChec" + + "henChamorroKorsikaKreeCheskaBahasa Gereja SlavoniaChuvashWelshDanskJerma" + + "nDivehiDzongkhaEweYunaniInggrisEsperantoSpanyolEstiBaskPersiaFulaSuomiFi" + + "jiFaroPrancisFrisia BaratIrlandiaGaelik SkotlandiaGalisiaGuaraniGujarati" + + "ManxHausaIbraniHindiHiri MotuKroasiaHaitiHungariaArmeniaHereroInterlingu" + + "aIndonesiaInterlingueIgboSichuan YiInupiakIdoIslandiaItaliaInuktitutJepa" + + "ngJawaGeorgiaKongoKikuyuKuanyamaKazakhKalaallisutKhmerKannadaKoreaKanuri" + + "KashmirKurdiKomiKornishKirgizLatinLuksemburgGandaLimburgiaLingalaLaoLitu" + + "aviLuba-KatangaLatviMalagasiMarshallMaoriMakedoniaMalayalamMongoliaMarat" + + "hiMelayuMaltaMyanmarNauruNdebele UtaraNepaliNdongaBelandaNynorsk Norwegi" + + "aBokmÃ¥l NorwegiaNdebele SelatanNavajoNyanjaOsitaniaOjibwaOromoOriyaOsset" + + "iaPunjabiPaliPolskiPashtoPortugisQuechuaReto-RomanRundiRumaniaRusiaKinya" + + "rwandaSanskertaSardiniaSindhiSami UtaraSangoSinhalaSlovakSlovenSamoaShon" + + "aSomaliAlbaniaSerbSwatiSotho SelatanSundaSwediaSwahiliTamilTeluguTajikTh" + + "aiTigrinyaTurkmenTswanaTongaTurkiTsongaTatarTahitiUyghurUkrainaUrduUzbek" + + "VendaVietnamVolapukWalloonWolofXhosaYiddishYorubaZhuangTionghoaZuluAcehA" + + "coliAdangmeAdygeiArab TunisiaAfrihiliAghemAinuAkkadiaAlabamaAleutAltai S" + + "elatanInggris KunoAngikaAramAraukanArapahoArab AlgeriaArawakArab MarokoA" + + "rab MesirAsuBahasa Isyarat AmerikaAsturAwadhiBaluchiBaliBavariaBasaBamun" + + "Batak TobaGhomalaBejaBembaBetawiBenaBafutBalochi BaratBhojpuriBikolBiniB" + + "anjarKomSiksikaBrajBodoAkooseBuriatBugisBuluBlinMedumbaKadoKaribCayugaAt" + + "samSebuanoKigaChibchaChagataiChuukeMariJargon ChinookKoktawChipewyanCher" + + "okeeCheyenneKurdi SoraniKoptikTatar KrimeaKashubiaDakotaDargwaTaitaDelaw" + + "areSlaveDogribDinkaZarmaDogriSorbia RendahDualaBelanda TengahJola-FonyiD" + + "yulaDazagaEmbuEfikMesir KunoEkajukElamInggris Abad PertengahanEwondoFang" + + "FilipinoFonPrancis Abad PertengahanPrancis KunoArpitanFrisia UtaraFrisia" + + " TimurFriuliGaGagauzGayoGbayaGeezGilbertGilakiJerman Abad PertengahanJer" + + "man KunoGondiGorontaloGothikGreboYunani KunoJerman (Swiss)GusiiGwich’inH" + + "aidaHawaiiHindi FijiHiligaynonHititHmongSorbia AtasHupaIbanIbibioIlokoIn" + + "gushetiaLojbanNgombaMachameIbrani-PersiaIbrani-ArabKara-KalpakKabyleKach" + + "inJjuKambaKawiKabardiKanembuTyapMakondeKabuverdianuKenyangKoroKhasiKhota" + + "nKoyra ChiiniKakoKalenjinKimbunduKomi-PermyakKonkaniKosreKpelleKarachai " + + "BalkarKrioKareliaKurukShambalaBafiaDialek KolschKumykKutenaiLadinoLangiL" + + "ahndaLambaLezghiaLiguriaLakotaMongoLoziLuri UtaraLuba-LuluaLuisenoLundaL" + + "uoMizoLuyiaLazMaduraMafaMagahiMaithiliMakasarMandingoMasaiMabaMokshaMand" + + "arMendeMeruMorisienIrlandia Abad PertengahanMakhuwa-Meettometa’MikmakMin" + + "angkabauManchuriaManipuriMohawkMossiMundangBeberapa BahasaBahasa Muskoge" + + "eMirandaMarwariMentawaiMyeneEryzaMazanderaniNeapolitanNamaJerman RendahN" + + "ewariNiasNiueaKwasioNgiemboonNogaiNorse KunoN’KoSotho UtaraNuerNewari Kl" + + "asikNyamweziNyankoleNyoroNzimaOsageTurki OsmaniPangasinaPahleviPampangaP" + + "apiamentoPalauJerman PennsylvaniaPersia KunoFunisiaPohnpeiaProvencal Lam" + + "aKʼicheʼRajasthaniRapanuiRarotongaRomboRomaniRotumaMakedo-RumaniaRwaSand" + + "aweSakhaAram SamariaSamburuSasakSantaliNgambaiSanguSisiliaSkotlandiaKurd" + + "i SelatanSenecaSenaSeriSelkupKoyraboro SenniIrlandia KunoTachelhitShanAr" + + "ab SuwaSidamoSilesia BawahSelayarSami SelatanLule SamiInari SamiSkolt Sa" + + "miSoninkeSogdienSranan TongoSererSahoSukumaSusuSumeriaKomoriaSuriah Klas" + + "ikSuriahSilesiaTuluTimneTesoTerenoTetunTigreTivTokelauKlingonTlingitTama" + + "shekNyasa TongaTok PisinTuroyoTarokoTsimshiaTat MuslimTumbukaTuvaluTasaw" + + "aqTuviniaTamazight Maroko TengahUdmurtUgaritUmbunduRootVaiVenesiaVotiaVu" + + "njoWalserWalamoWaraiWashoWarlpiriKalmukSogaYaoYapoisYangbenYembaKantonZa" + + "potekBlissymbolZenagaTamazight Maroko StandarZuniTidak ada konten lingui" + + "stikZazaArab Standar ModernJerman Tinggi (Swiss)Spanyol Amerika LatinSpa" + + "nyol (Eropa)Spanyol MeksikoPortugis (Eropa)MoldaviaSerbo-KroasiaKongo Sw" + + "ahiliTionghoa (Aksara Sederhana)Tionghoa (Aksara Tradisional)" + +var idLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000a, 0x0010, 0x0019, 0x001d, 0x0024, 0x002a, + 0x002e, 0x0033, 0x0037, 0x003d, 0x0047, 0x004e, 0x0057, 0x005f, + 0x0066, 0x006d, 0x0074, 0x0079, 0x007f, 0x0085, 0x008c, 0x0093, + 0x009b, 0x00a2, 0x00a6, 0x00ac, 0x00c2, 0x00c9, 0x00ce, 0x00d3, + 0x00d9, 0x00df, 0x00e7, 0x00ea, 0x00f0, 0x00f7, 0x0100, 0x0107, + 0x010b, 0x010f, 0x0115, 0x0119, 0x011e, 0x0122, 0x0126, 0x012d, + 0x0139, 0x0141, 0x0152, 0x0159, 0x0160, 0x0168, 0x016c, 0x0171, + 0x0177, 0x017c, 0x0185, 0x018c, 0x0191, 0x0199, 0x01a0, 0x01a6, + // Entry 40 - 7F + 0x01b1, 0x01ba, 0x01c5, 0x01c9, 0x01d3, 0x01da, 0x01dd, 0x01e5, + 0x01eb, 0x01f4, 0x01fa, 0x01fe, 0x0205, 0x020a, 0x0210, 0x0218, + 0x021e, 0x0229, 0x022e, 0x0235, 0x023a, 0x0240, 0x0247, 0x024c, + 0x0250, 0x0257, 0x025d, 0x0262, 0x026c, 0x0271, 0x027a, 0x0281, + 0x0284, 0x028b, 0x0297, 0x029c, 0x02a4, 0x02ac, 0x02b1, 0x02ba, + 0x02c3, 0x02cb, 0x02d2, 0x02d8, 0x02dd, 0x02e4, 0x02e9, 0x02f6, + 0x02fc, 0x0302, 0x0309, 0x0319, 0x0329, 0x0338, 0x033e, 0x0344, + 0x034c, 0x0352, 0x0357, 0x035c, 0x0363, 0x036a, 0x036e, 0x0374, + // Entry 80 - BF + 0x037a, 0x0382, 0x0389, 0x0393, 0x0398, 0x039f, 0x03a4, 0x03af, + 0x03b8, 0x03c0, 0x03c6, 0x03d0, 0x03d5, 0x03dc, 0x03e2, 0x03e8, + 0x03ed, 0x03f2, 0x03f8, 0x03ff, 0x0403, 0x0408, 0x0415, 0x041a, + 0x0420, 0x0427, 0x042c, 0x0432, 0x0437, 0x043b, 0x0443, 0x044a, + 0x0450, 0x0455, 0x045a, 0x0460, 0x0465, 0x046b, 0x0471, 0x0478, + 0x047c, 0x0481, 0x0486, 0x048d, 0x0494, 0x049b, 0x04a0, 0x04a5, + 0x04ac, 0x04b2, 0x04b8, 0x04c0, 0x04c4, 0x04c8, 0x04cd, 0x04d4, + 0x04da, 0x04e6, 0x04ee, 0x04f3, 0x04f7, 0x04fe, 0x0505, 0x050a, + // Entry C0 - FF + 0x050a, 0x0517, 0x0523, 0x0529, 0x052d, 0x0534, 0x0534, 0x053b, + 0x0547, 0x054d, 0x0558, 0x0562, 0x0565, 0x057b, 0x0580, 0x0580, + 0x0586, 0x058d, 0x0591, 0x0598, 0x059c, 0x05a1, 0x05ab, 0x05b2, + 0x05b6, 0x05bb, 0x05c1, 0x05c5, 0x05ca, 0x05ca, 0x05d7, 0x05df, + 0x05e4, 0x05e8, 0x05ee, 0x05f1, 0x05f8, 0x05f8, 0x05f8, 0x05fc, + 0x05fc, 0x0600, 0x0606, 0x060c, 0x0611, 0x0615, 0x0619, 0x0620, + 0x0624, 0x0629, 0x062f, 0x0634, 0x063b, 0x063f, 0x0646, 0x064e, + 0x0654, 0x0658, 0x0666, 0x066c, 0x0675, 0x067d, 0x0685, 0x0691, + // Entry 100 - 13F + 0x0697, 0x0697, 0x06a3, 0x06ab, 0x06b1, 0x06b7, 0x06bc, 0x06c4, + 0x06c9, 0x06cf, 0x06d4, 0x06d9, 0x06de, 0x06eb, 0x06eb, 0x06f0, + 0x06fe, 0x0708, 0x070d, 0x0713, 0x0717, 0x071b, 0x071b, 0x0725, + 0x072b, 0x072f, 0x0747, 0x0747, 0x074d, 0x074d, 0x0751, 0x0759, + 0x0759, 0x075c, 0x075c, 0x0774, 0x0780, 0x0787, 0x0793, 0x079f, + 0x07a5, 0x07a7, 0x07ad, 0x07ad, 0x07b1, 0x07b6, 0x07b6, 0x07ba, + 0x07c1, 0x07c7, 0x07de, 0x07e9, 0x07e9, 0x07ee, 0x07f7, 0x07fd, + 0x0802, 0x080d, 0x081b, 0x081b, 0x081b, 0x0820, 0x082a, 0x082f, + // Entry 140 - 17F + 0x082f, 0x0835, 0x083f, 0x0849, 0x084e, 0x0853, 0x085e, 0x085e, + 0x0862, 0x0866, 0x086c, 0x0871, 0x087b, 0x087b, 0x087b, 0x0881, + 0x0887, 0x088e, 0x089b, 0x08a6, 0x08a6, 0x08b1, 0x08b7, 0x08bd, + 0x08c0, 0x08c5, 0x08c9, 0x08d0, 0x08d7, 0x08db, 0x08e2, 0x08ee, + 0x08f5, 0x08f9, 0x08f9, 0x08fe, 0x0904, 0x0910, 0x0910, 0x0910, + 0x0914, 0x091c, 0x0924, 0x0930, 0x0937, 0x093c, 0x0942, 0x0951, + 0x0955, 0x0955, 0x095c, 0x0961, 0x0969, 0x096e, 0x097b, 0x0980, + 0x0987, 0x098d, 0x0992, 0x0998, 0x099d, 0x09a4, 0x09a4, 0x09ab, + // Entry 180 - 1BF + 0x09ab, 0x09b1, 0x09b1, 0x09b6, 0x09ba, 0x09c4, 0x09c4, 0x09ce, + 0x09d5, 0x09da, 0x09dd, 0x09e1, 0x09e6, 0x09e6, 0x09e9, 0x09ef, + 0x09f3, 0x09f9, 0x0a01, 0x0a08, 0x0a10, 0x0a15, 0x0a19, 0x0a1f, + 0x0a25, 0x0a2a, 0x0a2e, 0x0a36, 0x0a4f, 0x0a5d, 0x0a64, 0x0a6a, + 0x0a75, 0x0a7e, 0x0a86, 0x0a8c, 0x0a91, 0x0a91, 0x0a98, 0x0aa7, + 0x0ab6, 0x0abd, 0x0ac4, 0x0acc, 0x0ad1, 0x0ad6, 0x0ae1, 0x0ae1, + 0x0aeb, 0x0aef, 0x0afc, 0x0b02, 0x0b06, 0x0b0b, 0x0b0b, 0x0b11, + 0x0b1a, 0x0b1f, 0x0b29, 0x0b29, 0x0b2f, 0x0b3a, 0x0b3e, 0x0b4b, + // Entry 1C0 - 1FF + 0x0b53, 0x0b5b, 0x0b60, 0x0b65, 0x0b6a, 0x0b76, 0x0b7f, 0x0b86, + 0x0b8e, 0x0b98, 0x0b9d, 0x0b9d, 0x0bb0, 0x0bb0, 0x0bbb, 0x0bbb, + 0x0bc2, 0x0bc2, 0x0bc2, 0x0bca, 0x0bca, 0x0bd8, 0x0be1, 0x0be1, + 0x0beb, 0x0bf2, 0x0bfb, 0x0bfb, 0x0bfb, 0x0c00, 0x0c06, 0x0c0c, + 0x0c0c, 0x0c0c, 0x0c1a, 0x0c1d, 0x0c24, 0x0c29, 0x0c35, 0x0c3c, + 0x0c41, 0x0c48, 0x0c48, 0x0c4f, 0x0c54, 0x0c5b, 0x0c65, 0x0c65, + 0x0c72, 0x0c78, 0x0c7c, 0x0c80, 0x0c86, 0x0c95, 0x0ca2, 0x0ca2, + 0x0cab, 0x0caf, 0x0cb8, 0x0cbe, 0x0ccb, 0x0cd2, 0x0cde, 0x0ce7, + // Entry 200 - 23F + 0x0cf1, 0x0cfb, 0x0d02, 0x0d09, 0x0d15, 0x0d1a, 0x0d1e, 0x0d1e, + 0x0d24, 0x0d28, 0x0d2f, 0x0d36, 0x0d43, 0x0d49, 0x0d50, 0x0d54, + 0x0d59, 0x0d5d, 0x0d63, 0x0d68, 0x0d6d, 0x0d70, 0x0d77, 0x0d77, + 0x0d7e, 0x0d85, 0x0d85, 0x0d8d, 0x0d98, 0x0da1, 0x0da7, 0x0dad, + 0x0dad, 0x0db5, 0x0dbf, 0x0dc6, 0x0dcc, 0x0dd3, 0x0dda, 0x0df1, + 0x0df7, 0x0dfd, 0x0e04, 0x0e08, 0x0e0b, 0x0e12, 0x0e12, 0x0e12, + 0x0e12, 0x0e17, 0x0e17, 0x0e1c, 0x0e22, 0x0e28, 0x0e2d, 0x0e32, + 0x0e3a, 0x0e3a, 0x0e40, 0x0e40, 0x0e44, 0x0e47, 0x0e4d, 0x0e54, + // Entry 240 - 27F + 0x0e59, 0x0e59, 0x0e5f, 0x0e66, 0x0e70, 0x0e70, 0x0e76, 0x0e8e, + 0x0e92, 0x0ead, 0x0eb1, 0x0ec4, 0x0ec4, 0x0ec4, 0x0ed9, 0x0ed9, + 0x0ed9, 0x0ed9, 0x0ed9, 0x0eee, 0x0efd, 0x0f0c, 0x0f0c, 0x0f0c, + 0x0f0c, 0x0f0c, 0x0f0c, 0x0f0c, 0x0f1c, 0x0f24, 0x0f31, 0x0f3e, + 0x0f59, 0x0f76, +} // Size: 1244 bytes + +var isLangStr string = "" + // Size: 4301 bytes + "abkasískaavestískaafríkanskaakanamharískaaragonskaarabískaassamskaavarís" + + "kaaímaraaserskabaskírhvítrússneskabúlgarskabíslamabambarabengalskatíbesk" + + "abretónskabosnískakatalónskatsjetsjenskakamorrókorsískakrítékkneskakirkj" + + "uslavneskasjúvasvelskadanskaþýskadívehídsongkaewegrískaenskaesperantóspæ" + + "nskaeistneskabaskneskapersneskafúlafinnskafídjeyskafæreyskafranskavestur" + + "frísneskaírskaskosk gelískagalíanskagvaranígújaratímanskahásahebreskahin" + + "díhírímótúkróatískahaítískaungverskaarmenskahereróalþjóðatungaindónesísk" + + "ainterlingveígbósísúanjíínúpíakídóíslenskaítalskainúktitútjapanskajavans" + + "kageorgískakongóskakíkújúkúanjamakasakskagrænlenskakmerkannadakóreskakan" + + "úríkasmírskakúrdískakomískakornbreskakirgiskalatínalúxemborgískagandali" + + "mbúrgískalingalalaólitháískalúbakatangalettneskamalagasískamarshallskama" + + "orímakedónskamalajalammongólskamaratímalaískamaltneskaburmneskanárúskano" + + "rður-ndebelenepalskandongahollenskanýnorskanorskt bókmálsuðurndebelenava" + + "hónjanja; sísjeva; sjevaoksítanískaojibvaoromoóríaossetískapúnjabípalípó" + + "lskapastúportúgalskakvesjúarómanskarúndírúmenskarússneskakínjarvandasans" + + "krítsardínskasindínorðursamískasangósingalískaslóvakískaslóvenskasamóska" + + "shonasómalskaalbanskaserbneskasvatísuðursótósúndanskasænskasvahílítamíls" + + "katelúgútadsjikskataílenskatígrinjatúrkmenskatsúanatongverskatyrkneskats" + + "ongatatarskatahítískaúígúrúkraínskaúrdúúsbekskavendavíetnamskavallónskav" + + "olofsósajiddískajórúbasúangkínverskasúlúakkískaacoliadangmeadýgeafríhílí" + + "aghemakkadískaaleúskafornenskaarameískaarákanískaarapahóaravakskaasuastú" + + "rískaavadíbalúkíbalískabasabejabembabenavesturbalotsíbojpúríbíkolbínísik" + + "sikabraíbódóbúríatbúgískablínkaddókaríbamálkebúanókígasíbsjasjagataísjúk" + + "ískamarísínúksjoktásípevískaCherokee-málsjeyensorani-kúrdískakoptískakr" + + "ímtyrkneskakasúbískadakótadargvataítadelaverslavneskadogríbdinkazarmado" + + "grílágsorbneskadúalamiðhollenskajola-fonyidjúlaembuefíkfornegypskaekajúk" + + "elamítmiðenskaevondófangfilippseyskafónmiðfranskafornfranskanorðurfrísne" + + "skaausturfrísneskafríúlskagagagásgajógbajagísgilberskamiðháþýskafornháþý" + + "skagondígorontalógotneskagerbóforngrískasvissnesk þýskagusiigvísínhaídah" + + "avaískahíligaínonhettitískahmonghásorbneskahúpaíbanílokóingúslojbanngomb" + + "amasjámegyðingapersneskagyðingaarabískakarakalpakkabílekasínkambakavíkab" + + "ardískamakondegrænhöfðeyskakasíkotaskakoyra chiinikalenjinkimbúndúkómí-p" + + "ermyakkonkaníkosraskakpellekarasaíbalkarkúrúksjambalabafíakúmíkkútenaíla" + + "dínskalangílandalambalesgískalakótamongólozinorðurlúríluba-lulualúisenól" + + "úndalúólúsaíluyiamadúrskamagahímaítílímakasarmandingómasaímoksamandarme" + + "ndemerúmáritískamiðírskamakhuwa-meettometa’mikmakmínangkabámansjúmanípúr" + + "ímóhískamossímundangmargvísleg málkríkmarvaríersjamasanderanínapólískan" + + "amalágþýska; lágsaxneskanevaríníasníveskakwasionógaínorrænan’konorðursót" + + "ónúernjamvesínyankolenjórónsímaósagetyrkneska, ottómanpangasínmálpalaví" + + "pampangapapíamentópaláskafornpersneskafönikískaponpeiskafornpróvensalska" + + "kicherajastanírapanúírarótongskarombóromanírúasandavejakútsamversk arame" + + "ískasambúrúsasaksantalísangúsikileyskaskoskasuðurkúrdískasenaselkúpkoír" + + "aboró-sennífornírskatachelhitsjansídamósuðursamískalúlesamískaenaresamís" + + "kaskoltesamískasóninkesogdíenserersúkúmasúsúsúmerskaklassísk sýrlenskasý" + + "rlenskatímnetesóterenótetúmtígretívtókeláskaklingonskatlingittamasjekton" + + "gverska (nyasa)tokpisintsimsískatúmbúkatúvalúskatasawaqtúvínskatamazight" + + "údmúrtúgarítískaúmbúndúrótvaívotískavunjóvalamóvaraívasjóvarlpirikalmúk" + + "skasógajaójapískasapótekblisstáknsenagastaðlað marokkóskt tamazightsúníe" + + "kkert tungumálaefnistöðluð nútímaarabískaausturrísk þýskasvissnesk háþýs" + + "kaáströlsk enskakanadísk enskabresk enskabandarísk enskarómönsk-amerísk " + + "spænskaevrópsk spænskamexíkósk spænskakanadísk franskasvissnesk franskal" + + "ágsaxneskaflæmskabrasílísk portúgalskaevrópsk portúgalskamoldóvskaserbó" + + "króatískaKongó-svahílíkínverska (einfölduð)kínverska (hefðbundin)" + +var isLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000a, 0x0014, 0x001f, 0x0023, 0x002d, 0x0036, + 0x003f, 0x0047, 0x0050, 0x0057, 0x005e, 0x0065, 0x0074, 0x007e, + 0x0086, 0x008d, 0x0096, 0x009e, 0x00a8, 0x00b1, 0x00bc, 0x00c8, + 0x00d0, 0x00d9, 0x00dd, 0x00e7, 0x00f6, 0x00fd, 0x0103, 0x0109, + 0x0110, 0x0118, 0x011f, 0x0122, 0x0129, 0x012e, 0x0138, 0x0140, + 0x0149, 0x0152, 0x015b, 0x0160, 0x0167, 0x0171, 0x017a, 0x0181, + 0x0191, 0x0197, 0x01a5, 0x01af, 0x01b7, 0x01c1, 0x01c7, 0x01cc, + 0x01d4, 0x01da, 0x01e6, 0x01f1, 0x01fb, 0x0204, 0x020c, 0x0213, + // Entry 40 - 7F + 0x0222, 0x022f, 0x023a, 0x0240, 0x024b, 0x0255, 0x025a, 0x0263, + 0x026b, 0x0276, 0x027e, 0x0286, 0x0290, 0x0299, 0x02a2, 0x02ab, + 0x02b3, 0x02be, 0x02c2, 0x02c9, 0x02d1, 0x02d9, 0x02e3, 0x02ed, + 0x02f5, 0x02ff, 0x0307, 0x030e, 0x031d, 0x0322, 0x032f, 0x0336, + 0x033a, 0x0345, 0x0351, 0x035a, 0x0366, 0x0371, 0x0377, 0x0382, + 0x038b, 0x0395, 0x039c, 0x03a5, 0x03ae, 0x03b7, 0x03c0, 0x03cf, + 0x03d7, 0x03dd, 0x03e6, 0x03ef, 0x03fe, 0x040b, 0x0412, 0x0429, + 0x0436, 0x043c, 0x0441, 0x0447, 0x0451, 0x045a, 0x045f, 0x0466, + // Entry 80 - BF + 0x046c, 0x0478, 0x0480, 0x0489, 0x0490, 0x0499, 0x04a3, 0x04af, + 0x04b8, 0x04c2, 0x04c8, 0x04d7, 0x04dd, 0x04e8, 0x04f4, 0x04fe, + 0x0506, 0x050b, 0x0514, 0x051c, 0x0525, 0x052b, 0x0537, 0x0541, + 0x0548, 0x0551, 0x055a, 0x0562, 0x056c, 0x0576, 0x057f, 0x058a, + 0x0591, 0x059b, 0x05a4, 0x05aa, 0x05b2, 0x05bd, 0x05c5, 0x05d0, + 0x05d6, 0x05df, 0x05e4, 0x05ef, 0x05ef, 0x05f9, 0x05fe, 0x0603, + 0x060c, 0x0614, 0x061a, 0x0624, 0x062a, 0x0632, 0x0637, 0x063e, + 0x0644, 0x0644, 0x064f, 0x0654, 0x0654, 0x065e, 0x065e, 0x0666, + // Entry C0 - FF + 0x0666, 0x0666, 0x066f, 0x066f, 0x0679, 0x0685, 0x0685, 0x068d, + 0x068d, 0x0696, 0x0696, 0x0696, 0x0699, 0x0699, 0x06a4, 0x06a4, + 0x06aa, 0x06b2, 0x06ba, 0x06ba, 0x06be, 0x06be, 0x06be, 0x06be, + 0x06c2, 0x06c7, 0x06c7, 0x06cb, 0x06cb, 0x06cb, 0x06d9, 0x06e2, + 0x06e8, 0x06ee, 0x06ee, 0x06ee, 0x06f5, 0x06f5, 0x06f5, 0x06fa, + 0x06fa, 0x0700, 0x0700, 0x0708, 0x0711, 0x0711, 0x0716, 0x0716, + 0x071c, 0x0727, 0x0727, 0x0727, 0x0730, 0x0735, 0x073c, 0x0745, + 0x074f, 0x0754, 0x075b, 0x0762, 0x076d, 0x077a, 0x0780, 0x0791, + // Entry 100 - 13F + 0x079a, 0x079a, 0x07a8, 0x07b3, 0x07ba, 0x07c0, 0x07c6, 0x07cd, + 0x07d6, 0x07dd, 0x07e2, 0x07e7, 0x07ed, 0x07fa, 0x07fa, 0x0800, + 0x080d, 0x0817, 0x081d, 0x081d, 0x0821, 0x0826, 0x0826, 0x0831, + 0x0838, 0x083f, 0x0848, 0x0848, 0x084f, 0x084f, 0x0853, 0x085f, + 0x085f, 0x0863, 0x0863, 0x086e, 0x0879, 0x0879, 0x088a, 0x089a, + 0x08a4, 0x08a6, 0x08ac, 0x08ac, 0x08b1, 0x08b6, 0x08b6, 0x08ba, + 0x08c3, 0x08c3, 0x08d1, 0x08df, 0x08df, 0x08e5, 0x08ef, 0x08f7, + 0x08fd, 0x0908, 0x0919, 0x0919, 0x0919, 0x091e, 0x0926, 0x092c, + // Entry 140 - 17F + 0x092c, 0x0935, 0x0935, 0x0941, 0x094c, 0x0951, 0x095d, 0x095d, + 0x0962, 0x0967, 0x0967, 0x096e, 0x0974, 0x0974, 0x0974, 0x097a, + 0x0980, 0x0988, 0x0999, 0x09aa, 0x09aa, 0x09b4, 0x09bb, 0x09c1, + 0x09c1, 0x09c6, 0x09cb, 0x09d6, 0x09d6, 0x09d6, 0x09dd, 0x09ed, + 0x09ed, 0x09ed, 0x09ed, 0x09f2, 0x09f9, 0x0a05, 0x0a05, 0x0a05, + 0x0a05, 0x0a0d, 0x0a17, 0x0a25, 0x0a2d, 0x0a35, 0x0a3b, 0x0a49, + 0x0a49, 0x0a49, 0x0a49, 0x0a50, 0x0a58, 0x0a5e, 0x0a5e, 0x0a65, + 0x0a6e, 0x0a77, 0x0a7d, 0x0a82, 0x0a87, 0x0a90, 0x0a90, 0x0a90, + // Entry 180 - 1BF + 0x0a90, 0x0a97, 0x0a97, 0x0a9d, 0x0aa1, 0x0aae, 0x0aae, 0x0ab8, + 0x0ac1, 0x0ac7, 0x0acc, 0x0ad3, 0x0ad8, 0x0ad8, 0x0ad8, 0x0ae1, + 0x0ae1, 0x0ae8, 0x0af2, 0x0af9, 0x0b02, 0x0b08, 0x0b08, 0x0b0d, + 0x0b13, 0x0b18, 0x0b1d, 0x0b28, 0x0b32, 0x0b40, 0x0b47, 0x0b4d, + 0x0b59, 0x0b60, 0x0b6b, 0x0b74, 0x0b7a, 0x0b7a, 0x0b81, 0x0b91, + 0x0b96, 0x0b96, 0x0b9e, 0x0b9e, 0x0b9e, 0x0ba3, 0x0baf, 0x0baf, + 0x0bba, 0x0bbe, 0x0bd7, 0x0bde, 0x0be3, 0x0beb, 0x0beb, 0x0bf1, + 0x0bf1, 0x0bf8, 0x0c00, 0x0c00, 0x0c06, 0x0c13, 0x0c18, 0x0c18, + // Entry 1C0 - 1FF + 0x0c21, 0x0c29, 0x0c30, 0x0c36, 0x0c3c, 0x0c4f, 0x0c5c, 0x0c63, + 0x0c6b, 0x0c77, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c7f, 0x0c8c, 0x0c8c, + 0x0c97, 0x0c97, 0x0c97, 0x0ca0, 0x0ca0, 0x0cb1, 0x0cb6, 0x0cb6, + 0x0cc0, 0x0cc9, 0x0cd5, 0x0cd5, 0x0cd5, 0x0cdb, 0x0ce2, 0x0ce2, + 0x0ce2, 0x0ce2, 0x0ce2, 0x0ce6, 0x0ced, 0x0cf3, 0x0d06, 0x0d0f, + 0x0d14, 0x0d1c, 0x0d1c, 0x0d1c, 0x0d22, 0x0d2c, 0x0d32, 0x0d32, + 0x0d42, 0x0d42, 0x0d46, 0x0d46, 0x0d4d, 0x0d5f, 0x0d69, 0x0d69, + 0x0d72, 0x0d76, 0x0d76, 0x0d7e, 0x0d7e, 0x0d7e, 0x0d8c, 0x0d99, + // Entry 200 - 23F + 0x0da6, 0x0db4, 0x0dbc, 0x0dc4, 0x0dc4, 0x0dc9, 0x0dc9, 0x0dc9, + 0x0dd1, 0x0dd7, 0x0de0, 0x0de0, 0x0df4, 0x0dfe, 0x0dfe, 0x0dfe, + 0x0e04, 0x0e09, 0x0e10, 0x0e16, 0x0e1c, 0x0e20, 0x0e2b, 0x0e2b, + 0x0e35, 0x0e3c, 0x0e3c, 0x0e44, 0x0e56, 0x0e5e, 0x0e5e, 0x0e5e, + 0x0e5e, 0x0e68, 0x0e68, 0x0e71, 0x0e7c, 0x0e83, 0x0e8d, 0x0e96, + 0x0e9e, 0x0eab, 0x0eb5, 0x0eb9, 0x0ebd, 0x0ebd, 0x0ebd, 0x0ebd, + 0x0ebd, 0x0ec5, 0x0ec5, 0x0ecb, 0x0ecb, 0x0ed2, 0x0ed8, 0x0ede, + 0x0ee6, 0x0ee6, 0x0ef0, 0x0ef0, 0x0ef5, 0x0ef9, 0x0f01, 0x0f01, + // Entry 240 - 27F + 0x0f01, 0x0f01, 0x0f01, 0x0f09, 0x0f13, 0x0f13, 0x0f19, 0x0f38, + 0x0f3e, 0x0f53, 0x0f53, 0x0f6f, 0x0f6f, 0x0f82, 0x0f96, 0x0fa6, + 0x0fb5, 0x0fc0, 0x0fd0, 0x0feb, 0x0ffc, 0x100f, 0x100f, 0x1020, + 0x1031, 0x103d, 0x1045, 0x105d, 0x1072, 0x107c, 0x108d, 0x109d, + 0x10b5, 0x10cd, +} // Size: 1244 bytes + +var itLangStr string = "" + // Size: 4988 bytes + "afarabcasoavestanafrikaansakanamaricoaragonesearaboassameseavaroaymaraaz" + + "erbaigianobaschirobielorussobulgarobislamabambarabengalesetibetanobreton" + + "ebosniacocatalanocecenochamorrocorsocreececoslavo della Chiesaciuvasciog" + + "allesedanesetedescodivehidzongkhaewegrecoingleseesperantospagnoloestoneb" + + "ascopersianofulahfinlandesefigianofaroesefrancesefrisone occidentaleirla" + + "ndesegaelico scozzesegalizianoguaranígujaratimannesehausaebraicohindihir" + + "i motucroatohaitianoungheresearmenohererointerlinguaindonesianointerling" + + "ueigbosichuan yiinupiakidoislandeseitalianoinuktitutgiapponesegiavaneseg" + + "eorgianokongokikuyukuanyamakazakogroenlandesekhmerkannadacoreanokanurika" + + "shmiricurdokomicornicochirghisolatinolussemburghesegandalimburgeselingal" + + "alaolituanoluba-katangalettonemalgasciomarshallesemaorimacedonemalayalam" + + "mongolomarathimalesemaltesebirmanonaurundebele del nordnepalesendongaola" + + "ndesenorvegese nynorsknorvegese bokmÃ¥lndebele del sudnavajonyanjaoccitan" + + "oojibwaoromooriyaosseticopunjabipalipolaccopashtoportoghesequechuaromanc" + + "iorundirumenorussokinyarwandasanscritosardosindhisami del nordsangosinga" + + "leseslovaccoslovenosamoanoshonasomaloalbaneseserboswatisotho del sudsund" + + "anesesvedeseswahilitamiltelugutagicothaitigrinoturcomannotswanatonganotu" + + "rcotsongatatarotaitianouiguroucrainourduusbecovendavietnamitavolapükvall" + + "onewolofxhosayiddishyorubazhuangcinesezuluaccineseacioliadangmeadygheara" + + "bo tunisinoafrihiliaghemainuaccadoalabamaaleutoalbanese ghegoaltai merid" + + "ionaleinglese anticoangikaaramaicoaraucanoaraonaarapahoarabo algerinoaru" + + "acoarabo marocchinoarabo egizianoasulingua dei segni americanaasturianok" + + "otavaawadhibelucibalinesebavaresebasabamunbatak tobaghomalabegiawembabet" + + "awibenabafutbadagabeluci occidentalebhojpuribicolbinibanjarkomsiksikabis" + + "hnupriyabakhtiaribrajbrahuibodoakooseburiatbugibulublinmedumbacaddocarib" + + "icocayugaatsamcebuanochigachibchaciagataicochuukesemarigergo chinookchoc" + + "tawchipewyancherokeecheyennecurdo soranicoptocapiznonturco crimeokashubi" + + "andakotadargwataitadelawareslavedogribdincazarmadogribasso sorabodusun c" + + "entraledualaolandese mediojola-fonydiuladazagaembuefikemilianoegiziano a" + + "nticoekajukaelamiticoinglese medioyupik centraleewondoestremegnofangfili" + + "ppinofinlandese del Tornedalenfonfrancese cajunfrancese mediofrancese an" + + "ticofrancoprovenzalefrisone settentrionalefrisone orientalefriulanogagag" + + "auzogangayogbayadari zoroastrianogeezgilbertesegilakitedesco medio altot" + + "edesco antico altokonkani goanogondigorontalogoticogerbogreco anticotede" + + "sco svizzerowayuugusiigwichʼinhaidahakkahawaianohindi figianohiligaynahi" + + "ttitehmongalto soraboxianghupaibanibibioilocanoingushingricocreolo giama" + + "icanolojbanngamambomachamegiudeo persianogiudeo arabojutlandicokara-kalp" + + "akcabilokachinkaikambakawikabardiakanembutyapmakondecapoverdianokorokain" + + "gangkhasikhotanesekoyra chiinikhowarkirmanjkikakokalenjinkimbundupermiac" + + "okonkanikosraeankpellekarachay-Balkarcarelianokurukhshambalabafiacolonie" + + "sekumykkutenaigiudeo-spagnololangilahndalambalezghianLingua Franca Noval" + + "igurelivonelakotalombardololo bantuloziluri settentrionaleletgalloluba-l" + + "ulualuisenolundaluolushailuyiacinese classicolazmaduresemafamagahimaithi" + + "limakasarmandingomasaimabamokshamandarmendemerucreolo maurizianoirlandes" + + "e mediomakhuwa-meettometa’micmacmenangkabaumanchumanipurimohawkmossimari" + + " occidentalemundangmultilinguacreekmirandesemarwarimentawaimyeneerzyamaz" + + "andaranimin nannapoletanonamabasso tedesconewariniasniueaokwasiongiemboo" + + "nnogainorse anticonovialn’kosotho del nordnuernewari classiconyamwezinya" + + "nkolenyoronzimaosageturco ottomanopangasinanpahlavipampangapapiamentopal" + + "aupiccardotedesco della Pennsylvaniapersiano anticotedesco palatinofenic" + + "iopiemonteseponticoponapeprussianoprovenzale anticok’iche’quechua dell’a" + + "ltopiano del Chimborazorajasthanirapanuirarotongaromagnolotarifitromboro" + + "manirotumanorutenorovianaarumenorwasandaweyakutaramaico samaritanosambur" + + "usasaksantalisaurashtrangambaysangusicilianoscozzesesassaresecurdo merid" + + "ionalesenecasenaseriselkupkoyraboro senniirlandese anticosamogiticotashe" + + "lhitshanchadian arabicsidamotedesco slesianoselayarsami del sudsami di L" + + "ulesami di Inarisami skoltsoninkesogdianosranan tongoserersahosaterfries" + + "ischsukumasususumerocomorianosiriaco classicosiriacoslesianotulutemnetes" + + "oterenotetumtigretivtokelautsakhurklingontlingittalisciotamasheknyasa de" + + "l Tongatok pisinturoyotarokozaconicotsimshiantat islamicotumbukatuvaluta" + + "sawaqtuviniantamazightudmurtugariticombundurootvaivenetovepsofiammingo o" + + "ccidentalevotovõrovunjowalserwalamowaraywashowarlpiriwukalmykmengrelioso" + + "gayao (bantu)yapeseyangbenyembanheengatucantonesezapotecblissymbolzeland" + + "esezenagatamazight del Marocco standardzuninessun contenuto linguisticoz" + + "azaarabo moderno standardtedesco austriacoalto tedesco svizzeroinglese a" + + "ustralianoinglese canadeseinglese britannicoinglese americanospagnolo la" + + "tinoamericanospagnolo europeospagnolo messicanofrancese canadesefrancese" + + " svizzerobasso tedesco olandesefiammingoportoghese brasilianoportoghese " + + "europeomoldavoserbo-croatocongo swahilicinese semplificatocinese tradizi" + + "onale" + +var itLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000a, 0x0011, 0x001a, 0x001e, 0x0025, 0x002e, + 0x0033, 0x003b, 0x0040, 0x0046, 0x0052, 0x005a, 0x0064, 0x006b, + 0x0072, 0x0079, 0x0082, 0x008a, 0x0091, 0x0099, 0x00a1, 0x00a7, + 0x00af, 0x00b4, 0x00b8, 0x00bc, 0x00ce, 0x00d7, 0x00de, 0x00e4, + 0x00eb, 0x00f1, 0x00f9, 0x00fc, 0x0101, 0x0108, 0x0111, 0x0119, + 0x011f, 0x0124, 0x012c, 0x0131, 0x013b, 0x0142, 0x0149, 0x0151, + 0x0164, 0x016d, 0x017d, 0x0186, 0x018e, 0x0196, 0x019d, 0x01a2, + 0x01a9, 0x01ae, 0x01b7, 0x01bd, 0x01c5, 0x01ce, 0x01d4, 0x01da, + // Entry 40 - 7F + 0x01e5, 0x01f0, 0x01fb, 0x01ff, 0x0209, 0x0210, 0x0213, 0x021c, + 0x0224, 0x022d, 0x0237, 0x0240, 0x0249, 0x024e, 0x0254, 0x025c, + 0x0262, 0x026e, 0x0273, 0x027a, 0x0281, 0x0287, 0x028f, 0x0294, + 0x0298, 0x029f, 0x02a8, 0x02ae, 0x02bc, 0x02c1, 0x02cb, 0x02d2, + 0x02d5, 0x02dc, 0x02e8, 0x02ef, 0x02f8, 0x0303, 0x0308, 0x0310, + 0x0319, 0x0320, 0x0327, 0x032d, 0x0334, 0x033b, 0x0340, 0x0350, + 0x0358, 0x035e, 0x0366, 0x0377, 0x0388, 0x0397, 0x039d, 0x03a3, + 0x03ab, 0x03b1, 0x03b6, 0x03bb, 0x03c3, 0x03ca, 0x03ce, 0x03d5, + // Entry 80 - BF + 0x03db, 0x03e5, 0x03ec, 0x03f4, 0x03f9, 0x03ff, 0x0404, 0x040f, + 0x0418, 0x041d, 0x0423, 0x0430, 0x0435, 0x043e, 0x0446, 0x044d, + 0x0454, 0x0459, 0x045f, 0x0467, 0x046c, 0x0471, 0x047e, 0x0487, + 0x048e, 0x0495, 0x049a, 0x04a0, 0x04a6, 0x04aa, 0x04b1, 0x04bb, + 0x04c1, 0x04c8, 0x04cd, 0x04d3, 0x04d9, 0x04e1, 0x04e7, 0x04ee, + 0x04f2, 0x04f8, 0x04fd, 0x0507, 0x050f, 0x0516, 0x051b, 0x0520, + 0x0527, 0x052d, 0x0533, 0x0539, 0x053d, 0x0545, 0x054b, 0x0552, + 0x0558, 0x0566, 0x056e, 0x0573, 0x0577, 0x057d, 0x0584, 0x058a, + // Entry C0 - FF + 0x0598, 0x05a9, 0x05b7, 0x05bd, 0x05c5, 0x05cd, 0x05d3, 0x05da, + 0x05e8, 0x05ee, 0x05fe, 0x060c, 0x060f, 0x0629, 0x0632, 0x0638, + 0x063e, 0x0644, 0x064c, 0x0654, 0x0658, 0x065d, 0x0667, 0x066e, + 0x0673, 0x0678, 0x067e, 0x0682, 0x0687, 0x068d, 0x069f, 0x06a7, + 0x06ac, 0x06b0, 0x06b6, 0x06b9, 0x06c0, 0x06cb, 0x06d4, 0x06d8, + 0x06de, 0x06e2, 0x06e8, 0x06ee, 0x06f2, 0x06f6, 0x06fa, 0x0701, + 0x0706, 0x070e, 0x0714, 0x0719, 0x0720, 0x0725, 0x072c, 0x0736, + 0x073e, 0x0742, 0x074f, 0x0756, 0x075f, 0x0767, 0x076f, 0x077b, + // Entry 100 - 13F + 0x0780, 0x0788, 0x0794, 0x079d, 0x07a3, 0x07a9, 0x07ae, 0x07b6, + 0x07bb, 0x07c1, 0x07c6, 0x07cb, 0x07d0, 0x07dc, 0x07ea, 0x07ef, + 0x07fd, 0x0806, 0x080b, 0x0811, 0x0815, 0x0819, 0x0821, 0x0830, + 0x0837, 0x0840, 0x084d, 0x085b, 0x0861, 0x086b, 0x086f, 0x0878, + 0x0891, 0x0894, 0x08a2, 0x08b0, 0x08bf, 0x08cf, 0x08e5, 0x08f6, + 0x08fe, 0x0900, 0x0907, 0x090a, 0x090e, 0x0913, 0x0924, 0x0928, + 0x0932, 0x0938, 0x094a, 0x095d, 0x096a, 0x096f, 0x0978, 0x097e, + 0x0983, 0x098f, 0x099f, 0x09a4, 0x09a4, 0x09a9, 0x09b2, 0x09b7, + // Entry 140 - 17F + 0x09bc, 0x09c4, 0x09d1, 0x09da, 0x09e1, 0x09e6, 0x09f1, 0x09f6, + 0x09fa, 0x09fe, 0x0a04, 0x0a0b, 0x0a11, 0x0a18, 0x0a29, 0x0a2f, + 0x0a37, 0x0a3e, 0x0a4d, 0x0a59, 0x0a63, 0x0a6e, 0x0a74, 0x0a7a, + 0x0a7d, 0x0a82, 0x0a86, 0x0a8e, 0x0a95, 0x0a99, 0x0aa0, 0x0aac, + 0x0aac, 0x0ab0, 0x0ab8, 0x0abd, 0x0ac6, 0x0ad2, 0x0ad8, 0x0ae1, + 0x0ae5, 0x0aed, 0x0af5, 0x0afd, 0x0b04, 0x0b0c, 0x0b12, 0x0b21, + 0x0b21, 0x0b21, 0x0b2a, 0x0b30, 0x0b38, 0x0b3d, 0x0b46, 0x0b4b, + 0x0b52, 0x0b61, 0x0b66, 0x0b6c, 0x0b71, 0x0b79, 0x0b8b, 0x0b91, + // Entry 180 - 1BF + 0x0b97, 0x0b9d, 0x0ba5, 0x0baf, 0x0bb3, 0x0bc6, 0x0bce, 0x0bd8, + 0x0bdf, 0x0be4, 0x0be7, 0x0bed, 0x0bf2, 0x0c01, 0x0c04, 0x0c0c, + 0x0c10, 0x0c16, 0x0c1e, 0x0c25, 0x0c2d, 0x0c32, 0x0c36, 0x0c3c, + 0x0c42, 0x0c47, 0x0c4b, 0x0c5c, 0x0c6b, 0x0c79, 0x0c80, 0x0c86, + 0x0c91, 0x0c97, 0x0c9f, 0x0ca5, 0x0caa, 0x0cba, 0x0cc1, 0x0ccc, + 0x0cd1, 0x0cda, 0x0ce1, 0x0ce9, 0x0cee, 0x0cf3, 0x0cfe, 0x0d05, + 0x0d0f, 0x0d13, 0x0d20, 0x0d26, 0x0d2a, 0x0d2e, 0x0d30, 0x0d36, + 0x0d3f, 0x0d44, 0x0d50, 0x0d56, 0x0d5c, 0x0d6a, 0x0d6e, 0x0d7d, + // Entry 1C0 - 1FF + 0x0d85, 0x0d8d, 0x0d92, 0x0d97, 0x0d9c, 0x0daa, 0x0db4, 0x0dbb, + 0x0dc3, 0x0dcd, 0x0dd2, 0x0dda, 0x0df4, 0x0df4, 0x0e03, 0x0e13, + 0x0e1a, 0x0e24, 0x0e2b, 0x0e31, 0x0e3a, 0x0e4b, 0x0e56, 0x0e7d, + 0x0e87, 0x0e8e, 0x0e97, 0x0ea0, 0x0ea7, 0x0eac, 0x0eb2, 0x0eba, + 0x0ec0, 0x0ec7, 0x0ece, 0x0ed1, 0x0ed8, 0x0edd, 0x0ef0, 0x0ef7, + 0x0efc, 0x0f03, 0x0f0d, 0x0f14, 0x0f19, 0x0f22, 0x0f2a, 0x0f33, + 0x0f44, 0x0f4a, 0x0f4e, 0x0f52, 0x0f58, 0x0f67, 0x0f77, 0x0f81, + 0x0f8a, 0x0f8e, 0x0f9c, 0x0fa2, 0x0fb2, 0x0fb9, 0x0fc5, 0x0fd1, + // Entry 200 - 23F + 0x0fde, 0x0fe8, 0x0fef, 0x0ff7, 0x1003, 0x1008, 0x100c, 0x101a, + 0x1020, 0x1024, 0x102a, 0x1033, 0x1043, 0x104a, 0x1052, 0x1056, + 0x105b, 0x105f, 0x1065, 0x106a, 0x106f, 0x1072, 0x1079, 0x1080, + 0x1087, 0x108e, 0x1096, 0x109e, 0x10ad, 0x10b6, 0x10bc, 0x10c2, + 0x10ca, 0x10d3, 0x10df, 0x10e6, 0x10ec, 0x10f3, 0x10fb, 0x1104, + 0x110a, 0x1113, 0x1119, 0x111d, 0x1120, 0x1126, 0x112b, 0x1140, + 0x1140, 0x1144, 0x1149, 0x114e, 0x1154, 0x115a, 0x115f, 0x1164, + 0x116c, 0x116e, 0x1174, 0x117d, 0x1181, 0x118c, 0x1192, 0x1199, + // Entry 240 - 27F + 0x119e, 0x11a7, 0x11b0, 0x11b7, 0x11c1, 0x11ca, 0x11d0, 0x11ee, + 0x11f2, 0x120e, 0x1212, 0x1228, 0x1228, 0x1239, 0x124e, 0x1261, + 0x1271, 0x1283, 0x1294, 0x12ac, 0x12bc, 0x12ce, 0x12ce, 0x12df, + 0x12f0, 0x1306, 0x130f, 0x1324, 0x1336, 0x133d, 0x1349, 0x1356, + 0x1369, 0x137c, +} // Size: 1244 bytes + +var jaLangStr string = "" + // Size: 10000 bytes + "アファル語アブãƒã‚ºèªžã‚¢ãƒ´ã‚§ã‚¹ã‚¿èªžã‚¢ãƒ•ãƒªã‚«ãƒ¼ãƒ³ã‚¹èªžã‚¢ã‚«ãƒ³èªžã‚¢ãƒ ãƒãƒ©èªžã‚¢ãƒ©ã‚´ãƒ³èªžã‚¢ãƒ©ãƒ“ア語アッサム語アヴァル語アイマラ語アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³èªžãƒã‚·ã‚­ãƒ¼ãƒ«" + + "語ベラルーシ語ブルガリア語ビスラマ語ãƒãƒ³ãƒãƒ©èªžãƒ™ãƒ³ã‚¬ãƒ«èªžãƒãƒ™ãƒƒãƒˆèªžãƒ–ルトン語ボスニア語カタロニア語ãƒã‚§ãƒã‚§ãƒ³èªžãƒãƒ£ãƒ¢ãƒ­èªžã‚³ãƒ«ã‚·ã‚«èªžã‚¯ãƒªãƒ¼èªžãƒ" + + "ェコ語教会スラブ語ãƒãƒ¥ãƒ´ã‚¡ã‚·èªžã‚¦ã‚§ãƒ¼ãƒ«ã‚ºèªžãƒ‡ãƒ³ãƒžãƒ¼ã‚¯èªžãƒ‰ã‚¤ãƒ„語ディベヒ語ゾンカ語エウェ語ギリシャ語英語エスペラント語スペイン語エストニア語ãƒ" + + "スク語ペルシア語フラニ語フィンランド語フィジー語フェロー語フランス語西フリジア語アイルランド語スコットランド・ゲール語ガリシア語グアラニー語" + + "グジャラート語マン島語ãƒã‚¦ã‚µèªžãƒ˜ãƒ–ライ語ヒンディー語ヒリモツ語クロアãƒã‚¢èªžãƒã‚¤ãƒèªžãƒãƒ³ã‚¬ãƒªãƒ¼èªžã‚¢ãƒ«ãƒ¡ãƒ‹ã‚¢èªžãƒ˜ãƒ¬ãƒ­èªžã‚¤ãƒ³ã‚¿ãƒ¼ãƒªãƒ³ã‚°ã‚¢ã‚¤ãƒ³ãƒ‰ãƒã‚·" + + "ア語インターリングイボ語四å·ã‚¤èªžã‚¤ãƒŒãƒ”アック語イド語アイスランド語イタリア語イヌクウティトット語日本語ジャワ語ジョージア語コンゴ語キクユ語ク" + + "ワニャマ語カザフ語グリーンランド語クメール語カンナダ語韓国語カヌリ語カシミール語クルド語コミ語コーンウォール語キルギス語ラテン語ルクセンブル" + + "ク語ガンダ語リンブルフ語リンガラ語ラオ語リトアニア語ルãƒãƒ»ã‚«ã‚¿ãƒ³ã‚¬èªžãƒ©ãƒˆãƒ“ア語マダガスカル語マーシャル語マオリ語マケドニア語マラヤーラム語モ" + + "ンゴル語マラーティー語マレー語マルタ語ビルマ語ナウル語北ンデベレ語ãƒãƒ‘ール語ンドンガ語オランダ語ノルウェー語(ニーノシュク)ノルウェー語(ブ" + + "ークモール)å—ンデベレ語ナãƒãƒ›èªžãƒ‹ãƒ£ãƒ³ã‚¸ãƒ£èªžã‚ªãƒƒã‚¯èªžã‚ªã‚¸ãƒ–ウェー語オロモ語オリヤー語オセット語パンジャブ語パーリ語ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªžãƒ‘シュトゥー語" + + "ãƒãƒ«ãƒˆã‚¬ãƒ«èªžã‚±ãƒãƒ¥ã‚¢èªžãƒ­ãƒžãƒ³ã‚·ãƒ¥èªžãƒ«ãƒ³ãƒ‡ã‚£èªžãƒ«ãƒ¼ãƒžãƒ‹ã‚¢èªžãƒ­ã‚·ã‚¢èªžãƒ«ãƒ¯ãƒ³ãƒ€èªžã‚µãƒ³ã‚¹ã‚¯ãƒªãƒƒãƒˆèªžã‚µãƒ«ãƒ‡ãƒ¼ãƒ‹ãƒ£èªžã‚·ãƒ³ãƒ‰èªžåŒ—サーミ語サンゴ語シンãƒãƒ©èªž" + + "スロãƒã‚­ã‚¢èªžã‚¹ãƒ­ãƒ™ãƒ‹ã‚¢èªžã‚µãƒ¢ã‚¢èªžã‚·ãƒ§ãƒŠèªžã‚½ãƒžãƒªèªžã‚¢ãƒ«ãƒãƒ‹ã‚¢èªžã‚»ãƒ«ãƒ“ア語スワジ語å—部ソト語スンダ語スウェーデン語スワヒリ語タミル語テルグ語タジ" + + "ク語タイ語ティグリニア語トルクメン語ツワナ語トンガ語トルコ語ツォンガ語タタール語タヒãƒèªžã‚¦ã‚¤ã‚°ãƒ«èªžã‚¦ã‚¯ãƒ©ã‚¤ãƒŠèªžã‚¦ãƒ«ãƒ‰ã‚¥ãƒ¼èªžã‚¦ã‚ºãƒ™ã‚¯èªžãƒ™ãƒ³ãƒ€èªž" + + "ベトナム語ヴォラピュク語ワロン語ウォロフ語コサ語イディッシュ語ヨルãƒèªžãƒãƒ¯ãƒ³èªžä¸­å›½èªžã‚ºãƒ¼ãƒ«ãƒ¼èªžã‚¢ãƒã‚§èªžã‚¢ãƒãƒ§ãƒªèªžã‚¢ãƒ€ãƒ³ã‚°ãƒ¡èªžã‚¢ãƒ‡ã‚£ã‚²èªžãƒãƒ¥ãƒ‹" + + "ジア・アラビア語アフリヒリ語アゲム語アイヌ語アッカド語アラãƒãƒžèªžã‚¢ãƒ¬ã‚¦ãƒˆèªžã‚²ã‚°ãƒ»ã‚¢ãƒ«ãƒãƒ‹ã‚¢èªžå—アルタイ語å¤è‹±èªžã‚¢ãƒ³ã‚®ã‚«èªžã‚¢ãƒ©ãƒ èªžã‚¢ãƒ©ã‚¦ã‚«ãƒ³èªž" + + "アラオナ語アラパホー語アルジェリア・アラビア語アラワク語モロッコ・アラビア語エジプト・アラビア語アス語アメリカ手話アストゥリアス語コタヴァア" + + "ワディー語ãƒãƒ«ãƒ¼ãƒãƒ¼èªžãƒãƒªèªžãƒã‚¤ã‚¨ãƒ«ãƒ³ãƒ»ã‚ªãƒ¼ã‚¹ãƒˆãƒªã‚¢èªžãƒã‚µèªžãƒãƒ ãƒ³èªžãƒˆãƒãƒ»ãƒã‚¿ã‚¯èªžã‚´ãƒ¼ãƒžãƒ©èªžãƒ™ã‚¸ãƒ£èªžãƒ™ãƒ³ãƒèªžãƒ™ã‚¿ã‚¦ã‚£èªžãƒ™ãƒŠèªžãƒãƒ•ãƒƒãƒˆèªžãƒãƒ€ã‚¬" + + "語西ãƒãƒ­ãƒ¼ãƒãƒ¼èªžãƒœãƒ¼ã‚¸ãƒ¥ãƒ—リー語ビコル語ビニ語ãƒãƒ³ã‚¸ãƒ£ãƒ«èªžã‚³ãƒ èªžã‚·ã‚¯ã‚·ã‚«èªžãƒ“シュヌプリヤ・マニプリ語ãƒãƒ•ãƒ†ã‚£ãƒ¤ãƒ¼ãƒªãƒ¼èªžãƒ–ラジ語ブラフイ語ボド" + + "語アコース語ブリヤート語ブギ語ブル語ビリン語メドゥンãƒèªžã‚«ãƒ‰ãƒ¼èªžã‚«ãƒªãƒ–語カユーガ語ãƒãƒ£ãƒ¯ã‚¤èªžã‚»ãƒ–アノ語ãƒã‚¬èªžãƒãƒ–ãƒãƒ£èªžãƒãƒ£ã‚¬ã‚¿ã‚¤èªžãƒãƒ¥ãƒ¼ã‚¯èªž" + + "マリ語ãƒãƒŒãƒ¼ã‚¯æ··æˆèªžãƒãƒ§ã‚¯ãƒˆãƒ¼èªžãƒãƒšãƒ¯ã‚¤ã‚¢ãƒ³èªžãƒã‚§ãƒ­ã‚­ãƒ¼èªžã‚·ãƒ£ã‚¤ã‚¢ãƒ³èªžã‚¯ãƒ«ãƒ‰èªž(ソラニー)コプト語カピス語クリミア・タタール語カシューブ語ダ" + + "コタ語ダルガン語タイタ語デラウェア語スレイビー語ドグリブ語ディンカ語ザルマ語ドーグリー語低ソルビア語中央ドゥスン語ドゥアラ語中世オランダ語ジ" + + "ョラï¼ãƒ•ã‚©ãƒ‹ã‚£èªžã‚¸ãƒ¥ãƒ©èªžãƒ€ã‚¶ã‚¬èªžã‚¨ãƒ³ãƒ–語エフィク語エミリア語å¤ä»£ã‚¨ã‚¸ãƒ—ト語エカジュク語エラム語中英語中央アラスカ・ユピック語エウォンド語エス" + + "トレマドゥーラ語ファング語フィリピノ語トルãƒãƒ€ãƒ¼ãƒ«ãƒ»ãƒ•ã‚£ãƒ³ãƒ©ãƒ³ãƒ‰èªžãƒ•ã‚©ãƒ³èªžã‚±ã‚¤ã‚¸ãƒ£ãƒ³ãƒ»ãƒ•ãƒ©ãƒ³ã‚¹èªžä¸­æœŸãƒ•ãƒ©ãƒ³ã‚¹èªžå¤ãƒ•ãƒ©ãƒ³ã‚¹èªžã‚¢ãƒ«ãƒ”タン語北フリ" + + "ジア語æ±ãƒ•ãƒªã‚¸ã‚¢èªžãƒ•ãƒªã‚¦ãƒªèªžã‚¬èªžã‚¬ã‚¬ã‚¦ã‚ºèªžè´›èªžã‚¬ãƒ¨èªžãƒãƒ¤èªžãƒ€ãƒªãƒ¼èªž(ゾロアスター教)ゲエズ語キリãƒã‚¹èªžã‚®ãƒ©ã‚­èªžä¸­é«˜ãƒ‰ã‚¤ãƒ„語å¤é«˜ãƒ‰ã‚¤ãƒ„語ゴア・" + + "コンカニ語ゴーンディー語ゴロンタロ語ゴート語グレボ語å¤ä»£ã‚®ãƒªã‚·ãƒ£èªžã‚¹ã‚¤ã‚¹ãƒ‰ã‚¤ãƒ„語ワユ語フラフラ語グシイ語グウィッãƒãƒ³èªžãƒã‚¤ãƒ€èªžå®¢å®¶èªžãƒãƒ¯ã‚¤èªž" + + "フィジー・ヒンディー語ヒリガイノン語ヒッタイト語フモン語上ソルビア語湘語アタパスカ語イãƒãƒ³èªžã‚¤ãƒ“ビオ語イロカノ語イングーシ語イングリア語ジャ" + + "マイカ・クレオール語ロジãƒãƒ³èªžãƒ³ã‚´ãƒ³ãƒèªžãƒžãƒãƒ£ãƒ¡èªžãƒ¦ãƒ€ãƒ¤ãƒ»ãƒšãƒ«ã‚·ã‚¢èªžãƒ¦ãƒ€ãƒ¤ãƒ»ã‚¢ãƒ©ãƒ“ア語ユトランド語カラカルパク語カビル語カãƒãƒ³èªžã‚«ã‚¸ã‚§èªžã‚«ãƒ³" + + "ãƒèªžã‚«ã‚¦ã‚£èªžã‚«ãƒãƒ«ãƒ‰èªžã‚«ãƒãƒ³ãƒ–語カタブ語マコンデ語カーボベルデ・クレオール語ニャン語コロ語カインガング語カシ語コータン語コイラ・ãƒãƒ¼ãƒ‹èªžã‚³ãƒ¯" + + "ール語キルマンジュキ語カコ語カレンジン語キンブンド語コミ・ペルミャク語コンカニ語コスラエ語クペレ語カラãƒãƒ£ã‚¤èªžã‚¯ãƒªã‚ªèªžã‚­ãƒŠãƒ©ã‚¤ã‚¢èªžã‚«ãƒ¬ãƒªã‚¢èªž" + + "クルク語サンãƒãƒ¼èªžãƒãƒ•ã‚£ã‚¢èªžã‚±ãƒ«ãƒ³èªžã‚¯ãƒ ã‚¯èªžã‚¯ãƒ†ãƒŠã‚¤èªžãƒ©ãƒ‡ã‚£ãƒŽèªžãƒ©ãƒ³ã‚®èªžãƒ©ãƒ•ãƒ³ãƒ€ãƒ¼èªžãƒ©ãƒ³ãƒèªžãƒ¬ã‚ºã‚®èªžãƒªãƒ³ã‚°ã‚¢ãƒ»ãƒ•ãƒ©ãƒ³ã‚«ãƒ»ãƒŽãƒãƒªã‚°ãƒªã‚¢èªžãƒªãƒ´ã‚©" + + "ニア語ラコタ語ロンãƒãƒ«ãƒ‰èªžãƒ¢ãƒ³ã‚´èªžãƒ­ã‚¸èªžåŒ—ロル語ラトガリア語ルãƒãƒ»ãƒ«ãƒ«ã‚¢èªžãƒ«ã‚¤ã‚»ãƒ¼ãƒ‹ãƒ§èªžãƒ«ãƒ³ãƒ€èªžãƒ«ã‚ªèªžãƒ«ã‚·ãƒ£ã‚¤èªžãƒ«ãƒ’ヤ語漢文ラズ語マドゥラ語" + + "マファ語マガヒー語マイティリー語マカッサル語マンディンゴ語マサイ語マãƒèªžãƒ¢ã‚¯ã‚·ãƒ£èªžãƒžãƒ³ãƒ€ãƒ«èªžãƒ¡ãƒ³ãƒ‡èªžãƒ¡ãƒ«èªžãƒ¢ãƒ¼ãƒªã‚·ãƒ£ã‚¹ãƒ»ã‚¯ãƒ¬ã‚ªãƒ¼ãƒ«èªžä¸­æœŸã‚¢ã‚¤" + + "ルランド語マクア・ミート語メタ語ミクマク語ミナンカãƒã‚¦èªžæº€å·žèªžãƒžãƒ‹ãƒ—リ語モーホーク語モシ語山地マリ語ムンダン語複数言語クリーク語ミランダ語マ" + + "ールワーリー語メンタワイ語ミエãƒèªžã‚¨ãƒ«ã‚¸ãƒ£èªžãƒžãƒ¼ã‚¶ãƒ³ãƒ€ãƒ©ãƒ¼ãƒ³èªžé–©å—語ナãƒãƒªèªžãƒŠãƒžèªžä½Žåœ°ãƒ‰ã‚¤ãƒ„語ãƒãƒ¯ãƒ¼ãƒ«èªžãƒ‹ã‚¢ã‚¹èªžãƒ‹ã‚¦ãƒ¼ã‚¨ã‚¤èªžã‚¢ã‚ªãƒ»ãƒŠã‚¬èªžã‚¯ãƒ¯" + + "シオ語ンジエムブーン語ノガイ語å¤ãƒŽãƒ«ãƒ‰èªžãƒŽãƒ´ã‚£ã‚¢ãƒ«ãƒ³ã‚³èªžåŒ—部ソト語ヌエル語å¤å…¸ãƒãƒ¯ãƒ¼ãƒ«èªžãƒ‹ãƒ£ãƒ ã‚¦ã‚§ã‚¸èªžãƒ‹ãƒ£ãƒ³ã‚³ãƒ¬èªžãƒ‹ãƒ§ãƒ­èªžãƒ³ã‚¼ãƒžèªžã‚ªã‚»ãƒ¼ã‚¸èªž" + + "オスマントルコ語パンガシナン語パフラヴィー語パンパンガ語パピアメント語パラオ語ピカルディ語ペンシルベニア・ドイツ語メノナイト低地ドイツ語å¤ä»£" + + "ペルシア語プファルツ語フェニキア語ピエモンテ語ãƒãƒ³ãƒˆã‚¹ãƒ»ã‚®ãƒªã‚·ãƒ£èªžãƒãƒ³ãƒšã‚¤èªžãƒ—ロシア語å¤æœŸãƒ—ロãƒãƒ³ã‚¹èªžã‚­ãƒã‚§èªžãƒãƒ³ãƒœãƒ©ã‚½é«˜åœ°ã‚±ãƒãƒ¥ã‚¢èªžãƒ©ãƒ¼ã‚¸" + + "ャスターン語ラパヌイ語ラロトンガ語ロマーニャ語リーフ語ロンボ語ロマーニー語ロツマ語ルシン語ロヴィアナ語アルーマニア語ルワ語サンダウェ語ヤクー" + + "ト語サマリア・アラム語サンブル語ササク語サンターリー語サウラーシュトラ語ンガムãƒã‚¤èªžã‚µãƒ³ã‚°èªžã‚·ãƒãƒªã‚¢èªžã‚¹ã‚³ãƒƒãƒˆãƒ©ãƒ³ãƒ‰èªžã‚µãƒƒã‚µãƒªãƒ»ã‚µãƒ«ãƒ‡ãƒ¼ãƒ‹ãƒ£" + + "語å—部クルド語セãƒã‚«èªžã‚»ãƒŠèªžã‚»ãƒªèªžã‚»ãƒªã‚¯ãƒ—語コイラボロ・センニ語å¤æœŸã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰èªžã‚µãƒ¢ã‚®ãƒ†ã‚£ã‚¢èªž)タシルãƒã‚¤ãƒˆèªžã‚·ãƒ£ãƒ³èªžãƒãƒ£ãƒ‰ãƒ»ã‚¢ãƒ©ãƒ“ア語シ" + + "ダモ語低シレジア語スラヤール語å—サーミ語ルレ・サーミ語イナリ・サーミ語スコルト・サーミ語ソニンケ語ソグド語スリナム語セレル語サホ語ザーターフ" + + "リジア語スクマ語スス語シュメール語コモロ語å¤å…¸ã‚·ãƒªã‚¢èªžã‚·ãƒªã‚¢èªžã‚·ãƒ¬ã‚¸ã‚¢èªžãƒˆã‚¥ãƒ«èªžãƒ†ãƒ ãƒèªžãƒ†ã‚½èªžãƒ†ãƒ¬ãƒ¼ãƒŽèªžãƒ†ãƒˆã‚¥ãƒ³èªžãƒ†ã‚£ã‚°ãƒ¬èªžãƒ†ã‚£ãƒ–語トケラウ" + + "語ツァフル語クリンゴン語トリンギット語タリシュ語タマシェク語トンガ語(ニアサ)トク・ピシン語トゥロヨ語タロコ語ツァコン語ãƒãƒ ã‚·ãƒ¥èªžãƒ ã‚¹ãƒªãƒ ãƒ»" + + "タタール語トゥンブカ語ツãƒãƒ«èªžã‚¿ã‚µãƒ¯ã‚¯èªžãƒˆã‚¥ãƒ´ã‚¡èªžä¸­å¤®ã‚¢ãƒˆãƒ©ã‚¹ãƒ»ã‚¿ãƒžã‚¸ã‚¯ãƒˆèªžã‚¦ãƒ‰ãƒ ãƒ«ãƒˆèªžã‚¦ã‚¬ãƒªãƒˆèªžãƒ ãƒ–ンドゥ語ルートヴァイ語ヴェãƒãƒˆèªžãƒ´ã‚§ãƒ—" + + "ス語西フラマン語マインフランク語ヴォート語ヴォロ語ヴンジョ語ヴァリス語ウォライタ語ワライ語ワショ語ワルピリ語呉語カルムイク語メグレル語ソガ語" + + "ヤオ語ヤップ語ヤンベン語イエンãƒèªžãƒ‹ã‚§ã‚¨ãƒ³ã‚¬ãƒˆã‚¥èªžåºƒæ±èªžã‚µãƒãƒ†ã‚«èªžãƒ–リスシンボルゼーラント語ゼナガ語タマージク語(モロッコ公用語)ズニ語言語" + + "的内容ãªã—ザザ語ç¾ä»£æ¨™æº–アラビア語標準ドイツ語 (スイス)オーストラリア英語カナダ英語イギリス英語アメリカ英語スペイン語 (イベリアåŠå³¶)フ" + + "レミッシュ語ãƒãƒ«ãƒˆã‚¬ãƒ«èªž (イベリアåŠå³¶)モルダビア語セルボ・クロアãƒã‚¢èªžã‚³ãƒ³ã‚´ãƒ»ã‚¹ãƒ¯ãƒ’リ語簡体中国語ç¹ä½“中国語" + +var jaLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x001e, 0x0030, 0x0048, 0x0054, 0x0063, 0x0072, + 0x0081, 0x0090, 0x009f, 0x00ae, 0x00c9, 0x00db, 0x00ed, 0x00ff, + 0x010e, 0x011d, 0x012c, 0x013b, 0x014a, 0x0159, 0x016b, 0x017d, + 0x018c, 0x019b, 0x01a7, 0x01b3, 0x01c5, 0x01d7, 0x01e9, 0x01fb, + 0x0207, 0x0216, 0x0222, 0x022e, 0x023d, 0x0243, 0x0258, 0x0267, + 0x0279, 0x0285, 0x0294, 0x02a0, 0x02b5, 0x02c4, 0x02d3, 0x02e2, + 0x02f4, 0x0309, 0x032d, 0x033c, 0x034e, 0x0363, 0x036f, 0x037b, + 0x038a, 0x039c, 0x03ab, 0x03bd, 0x03c9, 0x03db, 0x03ed, 0x03f9, + // Entry 40 - 7F + 0x0411, 0x0426, 0x043b, 0x0444, 0x0450, 0x0465, 0x046e, 0x0483, + 0x0492, 0x04b0, 0x04b9, 0x04c5, 0x04d7, 0x04e3, 0x04ef, 0x0501, + 0x050d, 0x0525, 0x0534, 0x0543, 0x054c, 0x0558, 0x056a, 0x0576, + 0x057f, 0x0597, 0x05a6, 0x05b2, 0x05ca, 0x05d6, 0x05e8, 0x05f7, + 0x0600, 0x0612, 0x062a, 0x0639, 0x064e, 0x0660, 0x066c, 0x067e, + 0x0693, 0x06a2, 0x06b7, 0x06c3, 0x06cf, 0x06db, 0x06e7, 0x06f9, + 0x0708, 0x0717, 0x0726, 0x074c, 0x0772, 0x0784, 0x0790, 0x07a2, + 0x07ae, 0x07c3, 0x07cf, 0x07de, 0x07ed, 0x07ff, 0x080b, 0x081d, + // Entry 80 - BF + 0x0832, 0x0844, 0x0853, 0x0865, 0x0874, 0x0886, 0x0892, 0x08a1, + 0x08b9, 0x08ce, 0x08da, 0x08e9, 0x08f5, 0x0904, 0x0916, 0x0928, + 0x0934, 0x0940, 0x094c, 0x095e, 0x096d, 0x0979, 0x0988, 0x0994, + 0x09a9, 0x09b8, 0x09c4, 0x09d0, 0x09dc, 0x09e5, 0x09fa, 0x0a0c, + 0x0a18, 0x0a24, 0x0a30, 0x0a3f, 0x0a4e, 0x0a5a, 0x0a69, 0x0a7b, + 0x0a8d, 0x0a9c, 0x0aa8, 0x0ab7, 0x0acc, 0x0ad8, 0x0ae7, 0x0af0, + 0x0b05, 0x0b11, 0x0b1d, 0x0b26, 0x0b35, 0x0b41, 0x0b50, 0x0b62, + 0x0b71, 0x0b92, 0x0ba4, 0x0bb0, 0x0bbc, 0x0bcb, 0x0bda, 0x0be9, + // Entry C0 - FF + 0x0c04, 0x0c16, 0x0c1f, 0x0c2e, 0x0c3a, 0x0c4c, 0x0c5b, 0x0c6d, + 0x0c91, 0x0ca0, 0x0cbe, 0x0cdc, 0x0ce5, 0x0cf7, 0x0d0f, 0x0d1b, + 0x0d2d, 0x0d3f, 0x0d48, 0x0d6f, 0x0d78, 0x0d84, 0x0d99, 0x0da8, + 0x0db4, 0x0dc0, 0x0dcf, 0x0dd8, 0x0de7, 0x0df3, 0x0e08, 0x0e20, + 0x0e2c, 0x0e35, 0x0e47, 0x0e50, 0x0e5f, 0x0e86, 0x0ea1, 0x0ead, + 0x0ebc, 0x0ec5, 0x0ed4, 0x0ee6, 0x0eef, 0x0ef8, 0x0f04, 0x0f16, + 0x0f22, 0x0f2e, 0x0f3d, 0x0f4c, 0x0f5b, 0x0f64, 0x0f73, 0x0f85, + 0x0f94, 0x0f9d, 0x0fb2, 0x0fc4, 0x0fd9, 0x0feb, 0x0ffd, 0x1017, + // Entry 100 - 13F + 0x1023, 0x102f, 0x104d, 0x105f, 0x106b, 0x107a, 0x1086, 0x1098, + 0x10aa, 0x10b9, 0x10c8, 0x10d4, 0x10e6, 0x10f8, 0x110d, 0x111c, + 0x1131, 0x114c, 0x1158, 0x1164, 0x1170, 0x117f, 0x118e, 0x11a3, + 0x11b5, 0x11c1, 0x11ca, 0x11ee, 0x1200, 0x121e, 0x122d, 0x123f, + 0x1269, 0x1275, 0x1296, 0x12ab, 0x12bd, 0x12cf, 0x12e1, 0x12f3, + 0x1302, 0x1308, 0x1317, 0x131d, 0x1326, 0x132f, 0x1352, 0x135e, + 0x136d, 0x1379, 0x138b, 0x139d, 0x13b5, 0x13ca, 0x13dc, 0x13e8, + 0x13f4, 0x1409, 0x141e, 0x1427, 0x1436, 0x1442, 0x1457, 0x1463, + // Entry 140 - 17F + 0x146c, 0x1478, 0x1499, 0x14ae, 0x14c0, 0x14cc, 0x14de, 0x14e4, + 0x14f6, 0x1502, 0x1511, 0x1520, 0x1532, 0x1544, 0x1568, 0x1577, + 0x1586, 0x1595, 0x15b0, 0x15cb, 0x15dd, 0x15f2, 0x15fe, 0x160a, + 0x1616, 0x1622, 0x162e, 0x163d, 0x164c, 0x1658, 0x1667, 0x168e, + 0x169a, 0x16a3, 0x16b8, 0x16c1, 0x16d0, 0x16e8, 0x16f7, 0x170f, + 0x1718, 0x172a, 0x173c, 0x1757, 0x1766, 0x1775, 0x1781, 0x1793, + 0x179f, 0x17b1, 0x17c0, 0x17cc, 0x17db, 0x17ea, 0x17f6, 0x1802, + 0x1811, 0x1820, 0x182c, 0x183e, 0x184a, 0x1856, 0x187a, 0x1889, + // Entry 180 - 1BF + 0x189b, 0x18a7, 0x18b9, 0x18c5, 0x18ce, 0x18da, 0x18ec, 0x1901, + 0x1916, 0x1922, 0x192b, 0x193a, 0x1946, 0x194c, 0x1955, 0x1964, + 0x1970, 0x197f, 0x1994, 0x19a6, 0x19bb, 0x19c7, 0x19d0, 0x19df, + 0x19ee, 0x19fa, 0x1a03, 0x1a2a, 0x1a45, 0x1a5d, 0x1a66, 0x1a75, + 0x1a8a, 0x1a93, 0x1aa2, 0x1ab4, 0x1abd, 0x1acc, 0x1adb, 0x1ae7, + 0x1af6, 0x1b05, 0x1b1d, 0x1b2f, 0x1b3b, 0x1b4a, 0x1b65, 0x1b6e, + 0x1b7a, 0x1b83, 0x1b95, 0x1ba4, 0x1bb0, 0x1bc2, 0x1bd4, 0x1be3, + 0x1bfb, 0x1c07, 0x1c16, 0x1c25, 0x1c2e, 0x1c3d, 0x1c49, 0x1c5e, + // Entry 1C0 - 1FF + 0x1c73, 0x1c85, 0x1c91, 0x1c9d, 0x1cac, 0x1cc4, 0x1cd9, 0x1cee, + 0x1d00, 0x1d15, 0x1d21, 0x1d33, 0x1d57, 0x1d78, 0x1d8d, 0x1d9f, + 0x1db1, 0x1dc3, 0x1de1, 0x1df0, 0x1dff, 0x1e17, 0x1e23, 0x1e47, + 0x1e62, 0x1e71, 0x1e83, 0x1e95, 0x1ea1, 0x1ead, 0x1ebf, 0x1ecb, + 0x1ed7, 0x1ee9, 0x1efe, 0x1f07, 0x1f19, 0x1f28, 0x1f43, 0x1f52, + 0x1f5e, 0x1f73, 0x1f8e, 0x1fa0, 0x1fac, 0x1fbb, 0x1fd3, 0x1ff7, + 0x2009, 0x2015, 0x201e, 0x2027, 0x2036, 0x2054, 0x206f, 0x2085, + 0x209a, 0x20a6, 0x20c1, 0x20cd, 0x20df, 0x20f1, 0x2100, 0x2115, + // Entry 200 - 23F + 0x212d, 0x2148, 0x2157, 0x2163, 0x2172, 0x217e, 0x2187, 0x21a2, + 0x21ae, 0x21b7, 0x21c9, 0x21d5, 0x21e7, 0x21f3, 0x2202, 0x220e, + 0x221a, 0x2223, 0x2232, 0x2241, 0x2250, 0x225c, 0x226b, 0x227a, + 0x228c, 0x22a1, 0x22b0, 0x22c2, 0x22d9, 0x22ee, 0x22fd, 0x2309, + 0x2318, 0x2327, 0x2345, 0x2357, 0x2363, 0x2372, 0x2381, 0x23a8, + 0x23ba, 0x23c9, 0x23db, 0x23e4, 0x23f0, 0x23ff, 0x240e, 0x2420, + 0x2438, 0x2447, 0x2453, 0x2462, 0x2471, 0x2483, 0x248f, 0x249b, + 0x24aa, 0x24b0, 0x24c2, 0x24d1, 0x24da, 0x24e3, 0x24ef, 0x24fe, + // Entry 240 - 27F + 0x250d, 0x2525, 0x252e, 0x253d, 0x2552, 0x2564, 0x2570, 0x2599, + 0x25a2, 0x25b7, 0x25c0, 0x25db, 0x25db, 0x25db, 0x25f9, 0x2614, + 0x2623, 0x2635, 0x2647, 0x2647, 0x266b, 0x266b, 0x266b, 0x266b, + 0x266b, 0x266b, 0x2680, 0x2680, 0x26a7, 0x26b9, 0x26d7, 0x26f2, + 0x2701, 0x2710, +} // Size: 1244 bytes + +var kaLangStr string = "" + // Size: 10123 bytes + "áƒáƒ¤áƒáƒ áƒ˜áƒáƒ¤áƒ®áƒáƒ–ურიáƒáƒ•áƒ”სტურიáƒáƒ¤áƒ áƒ˜áƒ™áƒáƒáƒœáƒ¡áƒ˜áƒáƒ™áƒáƒœáƒ˜áƒáƒ›áƒ°áƒáƒ áƒ£áƒšáƒ˜áƒáƒ áƒáƒ’áƒáƒœáƒ£áƒšáƒ˜áƒáƒ áƒáƒ‘ულიáƒáƒ¡áƒáƒ›áƒ£áƒ áƒ˜áƒáƒ˜áƒ›áƒáƒ " + + "áƒáƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ£áƒšáƒ˜áƒ‘áƒáƒ¨áƒ™áƒ˜áƒ áƒ£áƒšáƒ˜áƒ‘ელáƒáƒ áƒ£áƒ¡áƒ£áƒšáƒ˜áƒ‘ულგáƒáƒ áƒ£áƒšáƒ˜áƒ‘áƒáƒ›áƒ‘áƒáƒ áƒáƒ‘ენგáƒáƒšáƒ£áƒ áƒ˜áƒ¢áƒ˜áƒ‘ეტურიბრეტ" + + "áƒáƒœáƒ£áƒšáƒ˜áƒ‘áƒáƒ¡áƒœáƒ˜áƒ£áƒ áƒ˜áƒ™áƒáƒ¢áƒáƒšáƒáƒœáƒ£áƒ áƒ˜áƒ©áƒ”ჩნურიკáƒáƒ áƒ¡áƒ˜áƒ™áƒ£áƒšáƒ˜áƒ™áƒ áƒ˜áƒ©áƒ”ხურისáƒáƒ”კლესირსლáƒáƒ•áƒ£áƒ áƒ˜áƒ©áƒ£áƒ•áƒáƒ¨" + + "ურიუელსურიდáƒáƒœáƒ˜áƒ£áƒ áƒ˜áƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒ“ივეჰიძáƒáƒœáƒ’კხáƒáƒ”ვებერძნულიინგლისურიესპერáƒáƒœáƒ¢áƒáƒ”ს" + + "პáƒáƒœáƒ£áƒ áƒ˜áƒ”სტáƒáƒœáƒ£áƒ áƒ˜áƒ‘áƒáƒ¡áƒ™áƒ£áƒ áƒ˜áƒ¡áƒžáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¤áƒ˜áƒœáƒ£áƒ áƒ˜áƒ¤áƒ˜áƒ¯áƒ˜áƒ¤áƒáƒ áƒ”რულიფრáƒáƒœáƒ’ულიდáƒáƒ¡áƒáƒ•áƒšáƒ”თფრიზიულ" + + "იირლáƒáƒœáƒ“იურიშáƒáƒ¢áƒšáƒáƒœáƒ“იური გელურიგáƒáƒšáƒ˜áƒ¡áƒ˜áƒ£áƒ áƒ˜áƒ’უáƒáƒ áƒáƒœáƒ˜áƒ’უჯáƒáƒ áƒáƒ—იმენურიჰáƒáƒ£áƒ¡áƒáƒ”ბრáƒáƒ£áƒš" + + "იჰინდიხáƒáƒ áƒ•áƒáƒ¢áƒ£áƒšáƒ˜áƒ°áƒáƒ˜áƒ¢áƒ˜áƒ£áƒ áƒ˜áƒ£áƒœáƒ’რულისáƒáƒ›áƒ®áƒ£áƒ áƒ˜áƒ˜áƒœáƒ¢áƒ”რლინგუáƒáƒšáƒ£áƒ áƒ˜áƒ˜áƒœáƒ“áƒáƒœáƒ”ზიურიინტერლი" + + "ნგიიგბáƒáƒ¡áƒ˜áƒ©áƒ£áƒáƒœáƒ˜áƒ¡ იიდáƒáƒ˜áƒ¡áƒšáƒáƒœáƒ“იურიიტáƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ˜áƒœáƒ£áƒ™áƒ¢áƒ˜áƒ¢áƒ£áƒ¢áƒ˜áƒ˜áƒáƒžáƒáƒœáƒ£áƒ áƒ˜áƒ˜áƒáƒ•áƒ£áƒ áƒ˜áƒ¥áƒáƒ áƒ—ულიკ" + + "áƒáƒœáƒ’áƒáƒ™áƒ˜áƒ™áƒ£áƒ˜áƒ£áƒ§áƒáƒ–áƒáƒ®áƒ£áƒ áƒ˜áƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თ გრენლáƒáƒœáƒ“იურიქმერულიკáƒáƒœáƒáƒ“áƒáƒ™áƒáƒ áƒ”ულიკáƒáƒœáƒ£áƒ áƒ˜áƒ¥áƒáƒ¨áƒ›áƒ˜" + + "რულიქურთულიკáƒáƒ›áƒ˜áƒ™áƒáƒ áƒœáƒ£áƒšáƒ˜áƒ§áƒ˜áƒ áƒ’იზულილáƒáƒ—ინურილუქსემბურგულიგáƒáƒœáƒ“áƒáƒšáƒ˜áƒ›áƒ‘ურგულილინ" + + "გáƒáƒšáƒáƒšáƒáƒáƒ¡áƒ£áƒ áƒ˜áƒšáƒ˜áƒ¢áƒ•áƒ£áƒ áƒ˜áƒšáƒ£áƒ‘áƒ-კáƒáƒ¢áƒáƒœáƒ’áƒáƒšáƒáƒ¢áƒ•áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒáƒ’áƒáƒ¡áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒáƒ áƒ˜áƒ›áƒáƒ™áƒ”დáƒáƒœáƒ£áƒ áƒ˜áƒ›áƒáƒšáƒáƒ˜áƒ" + + "ლáƒáƒ›áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ¦áƒáƒšáƒ£áƒ áƒ˜áƒ›áƒáƒ áƒáƒ—ჰიმáƒáƒšáƒáƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒ¢áƒ£áƒ áƒ˜áƒ‘ირმულინáƒáƒ£áƒ áƒ£áƒ©áƒ áƒ“ილáƒáƒ”თ ნდებელენეპáƒáƒš" + + "ურინიდერლáƒáƒœáƒ“ურინáƒáƒ áƒ•áƒ”გიული ნიუნáƒáƒ áƒ¡áƒ™áƒ˜áƒœáƒáƒ áƒ•áƒ”გიული ბუკმáƒáƒšáƒ˜áƒœáƒáƒ•áƒáƒ®áƒáƒœáƒ˜áƒáƒœáƒ¯áƒáƒáƒ¥áƒ¡áƒ˜áƒ¢" + + "áƒáƒœáƒ£áƒ áƒ˜áƒáƒ¯áƒ˜áƒ‘ვეáƒáƒ áƒáƒ›áƒáƒáƒ áƒ˜áƒáƒáƒ¡áƒ£áƒ áƒ˜áƒžáƒ”ნჯáƒáƒ‘ურიპáƒáƒšáƒ˜áƒžáƒáƒšáƒáƒœáƒ£áƒ áƒ˜áƒžáƒ£áƒ¨áƒ¢áƒ£áƒžáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ™áƒ”ჩუáƒáƒ áƒ”" + + "ტáƒáƒ áƒáƒ›áƒáƒœáƒ£áƒšáƒ˜áƒ áƒ£áƒœáƒ“ირუმინულირუსულიკინიáƒáƒ áƒ£áƒáƒœáƒ“áƒáƒ¡áƒáƒœáƒ¡áƒ™áƒ áƒ˜áƒ¢áƒ˜áƒ¡áƒáƒ áƒ“ინიულისინდჰურიჩრდ" + + "ილáƒáƒ”თ სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¡áƒáƒœáƒ’áƒáƒ¡áƒ˜áƒœáƒ°áƒáƒšáƒ£áƒ áƒ˜áƒ¡áƒšáƒáƒ•áƒáƒ™áƒ£áƒ áƒ˜áƒ¡áƒšáƒáƒ•áƒ”ნურისáƒáƒ›áƒáƒáƒ¨áƒáƒœáƒáƒ¡áƒáƒ›áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒáƒšáƒ‘áƒáƒœáƒ£áƒ " + + "ისერბულისáƒáƒ›áƒ®áƒ áƒ”თ სáƒáƒ—áƒáƒ¡ ენáƒáƒ¡áƒ£áƒœáƒ“ურიშვედურისუáƒáƒ°áƒ˜áƒšáƒ˜áƒ¢áƒáƒ›áƒ˜áƒšáƒ£áƒ áƒ˜áƒ¢áƒ”ლუგუტáƒáƒ¯áƒ˜áƒ™áƒ£áƒ áƒ˜áƒ¢áƒ" + + "ითიგრინიáƒáƒ—ურქმენულიტსვáƒáƒœáƒáƒ¢áƒáƒœáƒ’áƒáƒœáƒ£áƒ áƒ˜áƒ—ურქულითáƒáƒ—რულიუიღურულიუკრáƒáƒ˜áƒœáƒ£áƒšáƒ˜áƒ£áƒ áƒ“უუ" + + "ზბეკურივიეტნáƒáƒ›áƒ£áƒ áƒ˜áƒ•áƒáƒšáƒáƒ¤áƒ£áƒ áƒ˜áƒ¥áƒ°áƒáƒ¡áƒáƒ˜áƒ“იშიიáƒáƒ áƒ£áƒ‘áƒáƒ©áƒ˜áƒœáƒ£áƒ áƒ˜áƒ–ულუáƒáƒ©áƒ”ხურიáƒáƒ©áƒáƒšáƒ˜áƒáƒ“áƒáƒœáƒ’მე" + + "áƒáƒ“იღეურიáƒáƒ¦áƒ”მიáƒáƒ˜áƒœáƒ£áƒ£áƒ áƒ˜áƒáƒ¥áƒáƒ“ურიáƒáƒšáƒ”უტურისáƒáƒ›áƒ®áƒ áƒ”თ áƒáƒšáƒ—áƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი ინგლისურიáƒáƒœáƒ’იკ" + + "áƒáƒáƒ áƒáƒ›áƒ”ულიმáƒáƒžáƒ£áƒ“უნგუნიáƒáƒ áƒáƒžáƒáƒ°áƒáƒáƒ áƒáƒ•áƒáƒ™áƒ˜áƒáƒ¡áƒ£áƒáƒ¡áƒ¢áƒ£áƒ áƒ˜áƒ£áƒšáƒ˜áƒáƒ•áƒáƒ“იბელუჯიბáƒáƒšáƒ˜áƒœáƒ£áƒ áƒ˜áƒ‘áƒáƒ¡áƒáƒ‘" + + "áƒáƒ›áƒ£áƒœáƒ˜áƒ‘ეჯáƒáƒ‘ემბáƒáƒ‘ენáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თ ბელუჯიბáƒáƒ¯áƒžáƒ£áƒ áƒ˜áƒ‘რáƒáƒ¯áƒ˜áƒ‘áƒáƒ“áƒáƒ‘ურიáƒáƒ¢áƒ£áƒšáƒ˜áƒ‘ილინიკáƒáƒ˜áƒ£áƒ’áƒ" + + "ჩიგáƒáƒ©áƒ˜áƒ‘ჩáƒáƒ›áƒáƒ áƒ˜áƒ£áƒšáƒ˜áƒ©áƒ”რáƒáƒ™áƒ˜áƒ¡áƒáƒ áƒáƒœáƒ˜ ქურთულიკáƒáƒžáƒ¢áƒ£áƒ áƒ˜áƒ§áƒ˜áƒ áƒ˜áƒ›áƒ£áƒš-თურქულიკáƒáƒ¨áƒ£áƒ‘ურიდáƒáƒ™áƒ" + + "ტáƒáƒ“áƒáƒ áƒ’უულიტáƒáƒ˜áƒ¢áƒáƒ“ელáƒáƒ•áƒáƒ áƒ£áƒšáƒ˜áƒ“áƒáƒ’რიბიდინკáƒáƒ–áƒáƒ áƒ›áƒáƒ“áƒáƒ’რიქვემáƒáƒ¡áƒáƒ áƒ‘ულიდუáƒáƒšáƒáƒ“იáƒáƒšáƒáƒ“" + + "იულáƒáƒ”მბუეფიკიძველეგვიპტურიევáƒáƒœáƒ“áƒáƒ¤áƒ˜áƒšáƒ˜áƒžáƒ˜áƒœáƒ£áƒ áƒ˜áƒ¤áƒáƒœáƒ˜áƒ«áƒ•áƒ”ლი ფრáƒáƒœáƒ’ულიჩრდილáƒáƒ¤áƒ áƒ˜áƒ–" + + "იულიáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თფრიზიულიფრიულურიგáƒáƒ’áƒáƒ£áƒ–ურიგბáƒáƒ˜áƒáƒ’ეეზიძველი ზემáƒáƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒ’áƒ" + + "ნდიგáƒáƒ—ურიძველი ბერძნულიშვეიცáƒáƒ áƒ˜áƒ£áƒšáƒ˜ გერმáƒáƒœáƒ£áƒšáƒ˜áƒ’უსიიჰáƒáƒ•áƒáƒ˜áƒ£áƒ áƒ˜áƒ®áƒ”თური ენáƒáƒ–ემ" + + "áƒáƒ¡áƒáƒ áƒ‘ულიიბáƒáƒœáƒ˜áƒ˜áƒ‘იბიáƒáƒ˜áƒœáƒ’უშურილáƒáƒŸáƒ‘áƒáƒœáƒ˜áƒœáƒ’áƒáƒ›áƒ‘áƒáƒ™áƒ˜áƒ›áƒáƒ¨áƒáƒ›áƒ˜áƒ˜áƒ£áƒ“ეáƒ-სპáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ˜áƒ£áƒ“ეáƒ-áƒáƒ " + + "áƒáƒ‘ულიყáƒáƒ áƒáƒ§áƒáƒšáƒ¤áƒáƒ®áƒ£áƒ áƒ˜áƒ™áƒáƒ‘ილურიკáƒáƒ©áƒ˜áƒœáƒ˜áƒ™áƒáƒ›áƒ‘áƒáƒ§áƒáƒ‘áƒáƒ áƒ“áƒáƒ£áƒšáƒ˜áƒ›áƒáƒ™áƒáƒœáƒ“ეკáƒáƒ‘უვერდიáƒáƒœáƒ£áƒ™áƒáƒ˜áƒ " + + "áƒ-ჩიინიკáƒáƒšáƒ”ნჯინიკიმბუნდუკáƒáƒ›áƒ˜-პერმიáƒáƒ™áƒ£áƒšáƒ˜áƒ™áƒáƒœáƒ™áƒáƒœáƒ˜áƒ™áƒžáƒ”ლეყáƒáƒ áƒáƒ©áƒáƒ£áƒš-ბáƒáƒšáƒ§áƒáƒ áƒ£áƒšáƒ˜áƒ™" + + "áƒáƒ áƒ”ლიურიკურუქიშáƒáƒ›áƒ‘áƒáƒšáƒáƒ‘áƒáƒ¤áƒ˜áƒáƒ§áƒ£áƒ›áƒ£áƒ®áƒ£áƒ áƒ˜áƒ™áƒ£áƒ¢áƒ”ნáƒáƒ˜áƒšáƒáƒ“ინáƒáƒšáƒáƒœáƒ’ილáƒáƒœáƒ“áƒáƒšáƒáƒ›áƒ‘áƒáƒšáƒ”ზგიური" + + "ლáƒáƒ™áƒáƒ¢áƒáƒ›áƒáƒœáƒ’áƒáƒšáƒáƒ–იჩრდილáƒáƒ”თ ლურილუისენიáƒáƒšáƒ£áƒœáƒ“áƒáƒšáƒ£áƒáƒ›áƒ˜áƒ–áƒáƒšáƒ£áƒ°áƒ˜áƒáƒ›áƒáƒ¤áƒáƒ›áƒáƒ’áƒáƒ°áƒ˜áƒ›áƒáƒ˜áƒ—ილი" + + "მáƒáƒ¡áƒáƒ˜áƒ›áƒáƒ‘áƒáƒ›áƒáƒ¥áƒ¨áƒáƒ›áƒ”ნდემერუმáƒáƒ áƒ˜áƒ¡áƒ˜áƒ”ნიმáƒáƒ¥áƒ£áƒ•áƒ-მეეტáƒáƒ›áƒ”ტáƒâ€™ ენáƒáƒ›áƒáƒœáƒ¯áƒ£áƒ áƒ˜áƒ£áƒšáƒ˜áƒ›áƒáƒœáƒ˜áƒžáƒ£áƒ " + + "იმáƒáƒ°áƒáƒ£áƒ™áƒ£áƒ áƒ˜áƒ›áƒ£áƒœáƒ“áƒáƒœáƒ’იკრიკიმირáƒáƒœáƒ“ულიმáƒáƒ áƒ•áƒáƒ áƒ˜áƒ›áƒ˜áƒ”ნეერზიáƒáƒ›áƒáƒ–áƒáƒœáƒ“ერáƒáƒœáƒ£áƒšáƒ˜áƒœáƒ”áƒáƒžáƒáƒšáƒ˜áƒ¢" + + "áƒáƒœáƒ£áƒ áƒ˜áƒœáƒáƒ›áƒáƒ¥áƒ•áƒ”მáƒáƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒœáƒ”ვáƒáƒ áƒ˜áƒ™áƒ•áƒáƒ¡áƒ˜áƒáƒœáƒáƒ¦áƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლსკáƒáƒœáƒ“ინáƒáƒ•áƒ˜áƒ£áƒ áƒ˜áƒœáƒ™áƒáƒœáƒ£áƒ”რიკლáƒ" + + "სიკური ნევáƒáƒ áƒ£áƒšáƒ˜áƒœáƒ˜áƒáƒ›áƒ•áƒ”ზინიáƒáƒœáƒ™áƒáƒšáƒ”ნიáƒáƒ áƒáƒœáƒ–იმáƒáƒ¤áƒáƒšáƒáƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი სპáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¤áƒ˜áƒœáƒ˜áƒ™áƒ˜áƒ£áƒ " + + "იძველი პრáƒáƒ•áƒáƒœáƒ¡áƒ£áƒšáƒ˜áƒ™áƒ˜áƒ©áƒ”რáƒáƒ¯áƒáƒ¡áƒ—áƒáƒœáƒ˜áƒ áƒáƒžáƒáƒœáƒ£áƒ˜áƒ áƒáƒ áƒáƒ¢áƒáƒœáƒ’ულირáƒáƒ›áƒ‘áƒáƒ‘áƒáƒ¨áƒ£áƒ áƒ˜áƒ áƒ£áƒáƒ˜áƒáƒ™áƒ£áƒ¢áƒ£áƒ áƒ˜" + + "სáƒáƒ›áƒáƒ áƒ˜áƒ£áƒš-áƒáƒ áƒáƒ›áƒ”ულისáƒáƒ›áƒ‘ურუსáƒáƒœáƒ’უსიცილიურისáƒáƒ›áƒ®áƒ áƒ”თ ქურთულისენეკáƒáƒ¡áƒ”ნáƒáƒ¡áƒ”ლკუპუ" + + "რიკáƒáƒ˜áƒ áƒáƒ‘áƒáƒ áƒ-სენიძველი ირლáƒáƒœáƒ“იურიშილჰáƒáƒ¨áƒáƒœáƒ˜áƒ©áƒáƒ“ური áƒáƒ áƒáƒ‘ულისáƒáƒ›áƒ®áƒ áƒ”თ სáƒáƒáƒ›áƒ£áƒ áƒ˜" + + "ლულე-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ˜áƒœáƒáƒ áƒ˜-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¡áƒ™áƒáƒšáƒ¢-სáƒáƒáƒ›áƒ£áƒ áƒ˜áƒ¨áƒ£áƒ›áƒ”რულიკáƒáƒ›áƒáƒ áƒ£áƒšáƒ˜áƒ™áƒšáƒáƒ¡áƒ˜áƒ™áƒ£áƒ áƒ˜ სირიულ" + + "ისირიულიტესáƒáƒ—იგრეკლინგáƒáƒœáƒ˜áƒ¢áƒáƒ¡áƒáƒ•áƒáƒ¥áƒ˜áƒ¢áƒ£áƒ•áƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ áƒáƒ™áƒáƒ¡ ტáƒáƒ›áƒáƒ–იგხტიუდმუ" + + "რტულიუგáƒáƒ áƒ˜áƒ—ულიუცნáƒáƒ‘ი ენáƒáƒ•áƒáƒ˜áƒ•áƒ£áƒœáƒ¯áƒáƒ•áƒ”ლáƒáƒ˜áƒ—áƒáƒ•áƒáƒšáƒžáƒ˜áƒ áƒ˜áƒ§áƒáƒšáƒ›áƒ£áƒ®áƒ£áƒ áƒ˜áƒ¡áƒáƒ’áƒáƒ™áƒáƒœáƒ¢áƒáƒœáƒ£áƒ áƒ˜áƒ‘ლ" + + "ისსიმბáƒáƒšáƒáƒ”ბიზენáƒáƒ’áƒáƒ¡áƒ¢áƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ მáƒáƒ áƒáƒ™áƒáƒ£áƒšáƒ˜ ტáƒáƒ›áƒáƒ–იგხტილინგვისტური შიგთáƒáƒ•áƒ¡áƒ˜" + + " áƒáƒ  áƒáƒ áƒ˜áƒ¡áƒ–áƒáƒ–áƒáƒ™áƒ˜áƒ—áƒáƒœáƒáƒ›áƒ”დრáƒáƒ•áƒ” სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ áƒáƒ áƒáƒ‘ულიáƒáƒ•áƒ¡áƒ¢áƒ áƒ˜áƒ£áƒšáƒ˜ გერმáƒáƒœáƒ£áƒšáƒ˜áƒ¨áƒ•áƒ”იცáƒáƒ áƒ˜" + + "ული ზემáƒáƒ’ერმáƒáƒœáƒ£áƒšáƒ˜áƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒ˜áƒ£áƒ áƒ˜ ინგლისურიკáƒáƒœáƒáƒ“ური ინგლისურიბრიტáƒáƒœáƒ£áƒšáƒ˜ ინგლ" + + "ისურიáƒáƒ›áƒ”რიკული ინგლისურილáƒáƒ—ინურ áƒáƒ›áƒ”რიკული ესპáƒáƒœáƒ£áƒ áƒ˜áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜ ესპáƒáƒœáƒ£áƒ áƒ˜áƒ›áƒ”ქ" + + "სიკური ესპáƒáƒœáƒ£áƒ áƒ˜áƒ™áƒáƒœáƒáƒ“ური ფრáƒáƒœáƒ’ულიშვეიცáƒáƒ áƒ˜áƒ£áƒšáƒ˜ ფრáƒáƒœáƒ’ულიქვემáƒáƒ¡áƒáƒ¥áƒ¡áƒáƒœáƒ£áƒ áƒ˜áƒ¤áƒšáƒáƒ›" + + "áƒáƒœáƒ“იურიბრáƒáƒ–ილიური პáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜ პáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒšáƒ“áƒáƒ•áƒ£áƒ áƒ˜áƒ¡áƒ”რბულ-ხáƒáƒ " + + "ვáƒáƒ¢áƒ£áƒšáƒ˜áƒ™áƒáƒœáƒ’áƒáƒ¡ სუáƒáƒ°áƒ˜áƒšáƒ˜áƒ’áƒáƒ›áƒáƒ áƒ¢áƒ˜áƒ•áƒ”ბული ჩინურიტრáƒáƒ“იციული ჩინური" + +var kaLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0027, 0x003f, 0x005d, 0x006c, 0x0084, 0x009f, + 0x00b4, 0x00c9, 0x00c9, 0x00db, 0x0102, 0x011d, 0x013b, 0x0156, + 0x0156, 0x016b, 0x0186, 0x019e, 0x01b9, 0x01d1, 0x01ef, 0x0204, + 0x0204, 0x021f, 0x0228, 0x023a, 0x026b, 0x0283, 0x0298, 0x02ad, + 0x02c8, 0x02da, 0x02ef, 0x02f8, 0x0310, 0x032b, 0x0346, 0x035e, + 0x0376, 0x038b, 0x03a3, 0x03a3, 0x03b5, 0x03c1, 0x03d9, 0x03f1, + 0x0421, 0x043f, 0x0473, 0x048e, 0x04a3, 0x04bb, 0x04cd, 0x04dc, + 0x04f1, 0x0500, 0x0500, 0x051b, 0x0533, 0x0548, 0x055d, 0x055d, + // Entry 40 - 7F + 0x058a, 0x05ab, 0x05c9, 0x05d5, 0x05f1, 0x05f1, 0x05fa, 0x0618, + 0x0630, 0x064e, 0x0666, 0x0678, 0x068d, 0x069c, 0x06ae, 0x06ae, + 0x06c6, 0x0703, 0x0718, 0x072a, 0x073f, 0x0751, 0x076c, 0x0781, + 0x078d, 0x07a2, 0x07bd, 0x07d5, 0x07fc, 0x080b, 0x0829, 0x083e, + 0x0853, 0x0868, 0x088a, 0x08a2, 0x08c3, 0x08c3, 0x08d2, 0x08f0, + 0x0914, 0x092f, 0x0944, 0x095c, 0x0971, 0x0986, 0x0995, 0x09c3, + 0x09db, 0x09db, 0x09ff, 0x0a39, 0x0a6d, 0x0a6d, 0x0a7f, 0x0a91, + 0x0aaf, 0x0ac1, 0x0ad0, 0x0adc, 0x0aeb, 0x0b06, 0x0b12, 0x0b2a, + // Entry 80 - BF + 0x0b39, 0x0b5d, 0x0b6c, 0x0b90, 0x0b9f, 0x0bb7, 0x0bc9, 0x0bea, + 0x0c05, 0x0c23, 0x0c3b, 0x0c69, 0x0c78, 0x0c93, 0x0cae, 0x0cc9, + 0x0cd8, 0x0ce4, 0x0cff, 0x0d17, 0x0d2c, 0x0d2c, 0x0d5b, 0x0d70, + 0x0d85, 0x0d9a, 0x0db2, 0x0dc4, 0x0ddc, 0x0de5, 0x0dfd, 0x0e1b, + 0x0e2d, 0x0e48, 0x0e5d, 0x0e5d, 0x0e72, 0x0e72, 0x0e8a, 0x0ea5, + 0x0eb1, 0x0ec9, 0x0ec9, 0x0ee7, 0x0ee7, 0x0ee7, 0x0eff, 0x0f0e, + 0x0f1d, 0x0f2f, 0x0f2f, 0x0f41, 0x0f4d, 0x0f62, 0x0f71, 0x0f86, + 0x0f9e, 0x0f9e, 0x0f9e, 0x0fad, 0x0fc2, 0x0fd7, 0x0fd7, 0x0fef, + // Entry C0 - FF + 0x0fef, 0x101a, 0x1045, 0x1057, 0x106f, 0x1090, 0x1090, 0x10a5, + 0x10a5, 0x10ba, 0x10ba, 0x10ba, 0x10c3, 0x10c3, 0x10de, 0x10de, + 0x10ed, 0x10ff, 0x1117, 0x1117, 0x1123, 0x1135, 0x1135, 0x1135, + 0x1141, 0x1150, 0x1150, 0x115c, 0x115c, 0x115c, 0x1187, 0x119c, + 0x119c, 0x119c, 0x119c, 0x119c, 0x119c, 0x119c, 0x119c, 0x11ab, + 0x11ab, 0x11b7, 0x11b7, 0x11d2, 0x11d2, 0x11d2, 0x11e4, 0x11e4, + 0x11e4, 0x11e4, 0x11f6, 0x11f6, 0x11f6, 0x1202, 0x1211, 0x1211, + 0x1211, 0x1226, 0x1226, 0x1226, 0x1226, 0x1238, 0x1238, 0x1260, + // Entry 100 - 13F + 0x1275, 0x1275, 0x12a0, 0x12b8, 0x12ca, 0x12e2, 0x12f1, 0x130f, + 0x130f, 0x1324, 0x1333, 0x1342, 0x1351, 0x1375, 0x1375, 0x1384, + 0x1384, 0x1393, 0x13a2, 0x13a2, 0x13ae, 0x13bd, 0x13bd, 0x13e4, + 0x13e4, 0x13e4, 0x13e4, 0x13e4, 0x13f6, 0x13f6, 0x13f6, 0x1414, + 0x1414, 0x1420, 0x1420, 0x1420, 0x1448, 0x1448, 0x1472, 0x14a8, + 0x14c0, 0x14c0, 0x14db, 0x14db, 0x14db, 0x14ea, 0x14ea, 0x14f9, + 0x14f9, 0x14f9, 0x14f9, 0x1530, 0x1530, 0x153f, 0x153f, 0x1551, + 0x1551, 0x1579, 0x15b6, 0x15b6, 0x15b6, 0x15c5, 0x15c5, 0x15c5, + // Entry 140 - 17F + 0x15c5, 0x15dd, 0x15dd, 0x15dd, 0x15f9, 0x15f9, 0x161a, 0x161a, + 0x161a, 0x1629, 0x163b, 0x163b, 0x1653, 0x1653, 0x1653, 0x1668, + 0x167a, 0x1692, 0x16ba, 0x16df, 0x16df, 0x1706, 0x171e, 0x1730, + 0x1730, 0x173f, 0x173f, 0x175d, 0x175d, 0x175d, 0x1772, 0x1796, + 0x1796, 0x1796, 0x1796, 0x1796, 0x1796, 0x17b5, 0x17b5, 0x17b5, + 0x17b5, 0x17d0, 0x17e8, 0x1813, 0x1828, 0x1828, 0x1837, 0x186b, + 0x186b, 0x186b, 0x1886, 0x1898, 0x18ad, 0x18bc, 0x18bc, 0x18d4, + 0x18e9, 0x18fb, 0x190a, 0x1919, 0x1928, 0x1940, 0x1940, 0x1940, + // Entry 180 - 1BF + 0x1940, 0x1952, 0x1952, 0x1961, 0x196d, 0x1992, 0x1992, 0x1992, + 0x19aa, 0x19b9, 0x19c2, 0x19ce, 0x19dd, 0x19dd, 0x19dd, 0x19dd, + 0x19e9, 0x19fb, 0x1a10, 0x1a10, 0x1a10, 0x1a1f, 0x1a2b, 0x1a3a, + 0x1a3a, 0x1a49, 0x1a55, 0x1a70, 0x1a70, 0x1a92, 0x1aab, 0x1aab, + 0x1aab, 0x1ac9, 0x1ae1, 0x1afc, 0x1afc, 0x1afc, 0x1b14, 0x1b14, + 0x1b23, 0x1b3e, 0x1b53, 0x1b53, 0x1b62, 0x1b71, 0x1b98, 0x1b98, + 0x1bbf, 0x1bcb, 0x1bf5, 0x1c07, 0x1c07, 0x1c07, 0x1c07, 0x1c19, + 0x1c19, 0x1c2e, 0x1c61, 0x1c61, 0x1c6a, 0x1c6a, 0x1c79, 0x1cad, + // Entry 1C0 - 1FF + 0x1cc5, 0x1cdd, 0x1cec, 0x1cfb, 0x1cfb, 0x1cfb, 0x1cfb, 0x1d10, + 0x1d10, 0x1d10, 0x1d10, 0x1d10, 0x1d10, 0x1d10, 0x1d38, 0x1d38, + 0x1d53, 0x1d53, 0x1d53, 0x1d53, 0x1d53, 0x1d81, 0x1d8d, 0x1d8d, + 0x1da8, 0x1dbd, 0x1dde, 0x1dde, 0x1dde, 0x1ded, 0x1dff, 0x1dff, + 0x1dff, 0x1dff, 0x1dff, 0x1e08, 0x1e08, 0x1e20, 0x1e51, 0x1e66, + 0x1e66, 0x1e66, 0x1e66, 0x1e66, 0x1e75, 0x1e90, 0x1e90, 0x1e90, + 0x1ebb, 0x1ecd, 0x1ed9, 0x1ed9, 0x1ef4, 0x1f1c, 0x1f4a, 0x1f4a, + 0x1f59, 0x1f65, 0x1f8d, 0x1f8d, 0x1f8d, 0x1f8d, 0x1fb8, 0x1fda, + // Entry 200 - 23F + 0x1fff, 0x2024, 0x2024, 0x2024, 0x2024, 0x2024, 0x2024, 0x2024, + 0x2024, 0x2024, 0x203c, 0x2054, 0x2085, 0x209a, 0x209a, 0x209a, + 0x209a, 0x20a6, 0x20a6, 0x20a6, 0x20b5, 0x20b5, 0x20b5, 0x20b5, + 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, + 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20e5, 0x20f1, 0x2144, + 0x215f, 0x217a, 0x217a, 0x2196, 0x219f, 0x219f, 0x219f, 0x219f, + 0x219f, 0x219f, 0x219f, 0x21ae, 0x21ae, 0x21c3, 0x21c3, 0x21c3, + 0x21d8, 0x21d8, 0x21f3, 0x21f3, 0x21ff, 0x21ff, 0x21ff, 0x21ff, + // Entry 240 - 27F + 0x21ff, 0x21ff, 0x221a, 0x221a, 0x2244, 0x2244, 0x2256, 0x22b2, + 0x22b2, 0x2300, 0x2312, 0x236b, 0x236b, 0x23a2, 0x23eb, 0x2428, + 0x245c, 0x2493, 0x24ca, 0x2514, 0x2545, 0x2579, 0x2579, 0x25aa, + 0x25e4, 0x260e, 0x262f, 0x2672, 0x26af, 0x26ca, 0x26f8, 0x2720, + 0x275a, 0x278b, +} // Size: 1244 bytes + +var kkLangStr string = "" + // Size: 5518 bytes + "абхаз Ñ‚Ñ–Ð»Ñ–Ð°Ñ„Ñ€Ð¸ÐºÐ°Ð°Ð½Ñ Ñ‚Ñ–Ð»Ñ–Ð°ÐºÐ°Ð½ тіліамхар тіліараб тіліаÑÑам тіліәзірбайжан" + + " тілібашқұрт тілібеларуÑÑŒ тіліболгар тілібамбара тілібенгал тілітибет Ñ‚Ñ–" + + "лібретон тілібоÑÐ½Ð¸Ñ Ñ‚Ñ–Ð»Ñ–ÐºÐ°Ñ‚Ð°Ð»Ð°Ð½ тілішешен тілікорÑика тілічех тілічуваш" + + " тіліваллий тілідат Ñ‚Ñ–Ð»Ñ–Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð´Ð·Ð¾Ð½Ð³-ÐºÑ Ñ‚Ñ–Ð»Ñ–Ñве тілігрек тіліағылшын " + + "тіліÑÑперанто тіліиÑпан тіліÑÑтон тілібаÑк тіліпарÑÑ‹ тіліфин тіліфиджи " + + "тіліфарер тіліфранцуз Ñ‚Ñ–Ð»Ñ–Ð±Ð°Ñ‚Ñ‹Ñ Ñ„Ñ€Ð¸Ð· тіліирланд тілігалиÑÐ¸Ñ Ñ‚Ñ–Ð»Ñ–Ð³ÑƒÐ°Ñ€Ð°Ð½Ð¸" + + " тілігуджарати тілімÑÐ½Ñ Ñ‚Ñ–Ð»Ñ–Ñ…Ð°ÑƒÑа тіліиврит тіліхинди тіліхорват тілігаи" + + "ти тілівенгр тіліармÑн Ñ‚Ñ–Ð»Ñ–Ð¸Ð½Ð´Ð¾Ð½ÐµÐ·Ð¸Ñ Ñ‚Ñ–Ð»Ñ–Ð¸Ð³Ð±Ð¾ тіліÑычуан и тіліиÑланд Ñ‚" + + "іліитальÑн тіліинуктитут тіліжапон тіліÑва тілігрузин тілікикуйю тіліқа" + + "зақ тілікалаалиÑут тілікхмер тіліканнада Ñ‚Ñ–Ð»Ñ–ÐºÓ™Ñ€Ñ–Ñ Ñ‚Ñ–Ð»Ñ–ÐºÐ°ÑˆÐ¼Ð¸Ñ€ тілікүрд " + + "тілікорн тіліқырғыз тілілатын тілілюкÑембург тіліганда тілілингала тілі" + + "Ð»Ð°Ð¾Ñ Ñ‚Ñ–Ð»Ñ–Ð»Ð¸Ñ‚Ð²Ð° тілілуба-катанга тілілатыш тілімалагаÑи тілімаори тіліма" + + "кедон тілімалаÑлам тілімоңғол тілімаратхи тілімалай тілімальта тілібирм" + + "а тіліÑолтүÑтік ндебеле тілінепал тілінидерланд тілінорвегиÑлық нюнорÑк" + + " тілінорвегиÑлық букмол тіліоромо Ñ‚Ñ–Ð»Ñ–Ð¾Ñ€Ð¸Ñ Ñ‚Ñ–Ð»Ñ–Ð¿ÐµÐ½Ð´Ð¶Ð°Ð± тіліполÑк тіліпуш" + + "ту тіліпортугал тілікечуа тіліроманш тілірунди тілірумын Ñ‚Ñ–Ð»Ñ–Ð¾Ñ€Ñ‹Ñ Ñ‚Ñ–Ð»Ñ–Ðº" + + "иньÑруанда тіліÑанÑкрит тіліÑиндхи тіліÑолтүÑтік Ñаам тіліÑанго тіліÑин" + + "гал тіліÑловак тіліÑловен тілішона тіліÑомали тіліалбан тіліÑерб тілішв" + + "ед тіліÑуахили тілітамил тілітелугу тілітәжік тілітай Ñ‚Ñ–Ð»Ñ–Ñ‚Ð¸Ð³Ñ€Ð¸Ð½ÑŒÑ Ñ‚Ñ–Ð»Ñ–" + + "түрікмен тілітонган тілітүрік тілітатар тіліұйғыр тіліукраин тіліурду Ñ‚" + + "іліөзбек тілівьетнам тіліволоф тілікхоÑа тілійоруба тіліқытай тілізулу " + + "тіліагхем тілімапуче тіліаÑу тілібемба тілібена Ñ‚Ñ–Ð»Ñ–Ð±Ð°Ñ‚Ñ‹Ñ Ð±Ð°Ð»ÑƒÑ‡Ð¸ тілібо" + + "до тілікига тілічероки тіліÑорани тілітаита тілізарма тілітөменгі лужиц" + + "а тілідуала тілідиола тіліембу тіліфилиппин тілігагауз тілішвейцариÑлық" + + " Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð³ÑƒÑии тілігавайи тіліжоғарғы лужица тілінгомба тілімачаме тіл" + + "ікабил тілікамба тілімаконде тілікабувердиана тілікойра чини тілікаленж" + + "ин тілікоми-пермÑк тіліконкани тілішамбала тілібафиа тіліланги тілілако" + + "та тіліÑолтүÑтік люри тілілуо тілілухиа тілімаÑай тілімеру тілімориÑиен" + + " тілімакуа-меетто тілімета тілімогавк тілімунданг тілімазандеран тілінам" + + "а тілітөменгі Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–ÐºÐ²Ð°Ñио тілінко тілінуÑÑ€ тілінианколе тілікиче Ñ‚" + + "іліромбо тіліруа тіліÑамбуру тіліÑангу тіліоңтүÑтік күрд тіліÑена тілік" + + "ойраборо Ñенни тіліташелхит тіліоңтүÑтік Ñаам тілілуле Ñаам тіліинари Ñ" + + "аам тіліÑколт ÑаамтеÑо тілітаÑавак тіліорталық Ð°Ñ‚Ð»Ð°Ñ Ñ‚Ð°Ð¼Ð°Ñагихт тілібел" + + "гіÑіз тілвай тілівунджо тілівальбири тіліÑога тілімарокколық Ñтандартты" + + " тамазигхт тілітілдік мазмұны жоққазіргі Ñтандартты араб тіліавÑтриÑлық " + + "Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–ÑˆÐ²ÐµÐ¹Ñ†Ð°Ñ€Ð¸Ñлық жоғарғы Ð½ÐµÐ¼Ñ–Ñ Ñ‚Ñ–Ð»Ñ–Ð°Ð²ÑтралиÑлық ағылшын тіліканад" + + "алық ағылшын тілібританиÑлық ағылшын тіліамерикандық ағылшын тілілатын " + + "американдық иÑпан тіліибериÑлық иÑпан тілімекÑикалық иÑпан тіліканадалы" + + "Ò› француз тілішвейцариÑлық француз тілітөменгі ÑакÑон тіліфламанд тіліб" + + "разилиÑлық португал тіліеуропалық португал тілімолдован тіліконго Ñуахи" + + "ли тіліжеңілдетілген қытай тілідәÑтүрлі қытай тілі" + +var kkLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0013, 0x0013, 0x002e, 0x003f, 0x0052, 0x0052, + 0x0063, 0x0076, 0x0076, 0x0076, 0x0093, 0x00aa, 0x00c3, 0x00d8, + 0x00d8, 0x00ef, 0x0104, 0x0117, 0x012c, 0x0141, 0x0158, 0x016b, + 0x016b, 0x0182, 0x0182, 0x0191, 0x0191, 0x01a4, 0x01b9, 0x01c8, + 0x01db, 0x01db, 0x01f3, 0x0202, 0x0213, 0x022a, 0x0245, 0x0258, + 0x026b, 0x027c, 0x028f, 0x028f, 0x029e, 0x02b1, 0x02c4, 0x02db, + 0x02f7, 0x030c, 0x030c, 0x0323, 0x033a, 0x0355, 0x0366, 0x0379, + 0x038c, 0x039f, 0x039f, 0x03b4, 0x03c7, 0x03da, 0x03ed, 0x03ed, + // Entry 40 - 7F + 0x03ed, 0x0408, 0x0408, 0x0419, 0x0431, 0x0431, 0x0431, 0x0446, + 0x045d, 0x0478, 0x048b, 0x049a, 0x04af, 0x04af, 0x04c4, 0x04c4, + 0x04d7, 0x04f4, 0x0507, 0x051e, 0x0531, 0x0531, 0x0546, 0x0557, + 0x0557, 0x0568, 0x057d, 0x0590, 0x05ad, 0x05c0, 0x05c0, 0x05d7, + 0x05e8, 0x05fb, 0x061b, 0x062e, 0x0647, 0x0647, 0x065a, 0x0671, + 0x068a, 0x069f, 0x06b6, 0x06c9, 0x06de, 0x06f1, 0x06f1, 0x071b, + 0x072e, 0x072e, 0x0749, 0x0777, 0x07a3, 0x07a3, 0x07a3, 0x07a3, + 0x07a3, 0x07a3, 0x07b6, 0x07c7, 0x07c7, 0x07de, 0x07de, 0x07f1, + // Entry 80 - BF + 0x0804, 0x081d, 0x0830, 0x0845, 0x0858, 0x086b, 0x087c, 0x089b, + 0x08b4, 0x08b4, 0x08c9, 0x08ed, 0x0900, 0x0915, 0x092a, 0x093f, + 0x093f, 0x0950, 0x0965, 0x0978, 0x0989, 0x0989, 0x0989, 0x0989, + 0x099a, 0x09b1, 0x09c4, 0x09d9, 0x09ec, 0x09fb, 0x0a14, 0x0a2d, + 0x0a2d, 0x0a42, 0x0a55, 0x0a55, 0x0a68, 0x0a68, 0x0a7b, 0x0a90, + 0x0aa1, 0x0ab4, 0x0ab4, 0x0acb, 0x0acb, 0x0acb, 0x0ade, 0x0af1, + 0x0af1, 0x0b06, 0x0b06, 0x0b19, 0x0b2a, 0x0b2a, 0x0b2a, 0x0b2a, + 0x0b2a, 0x0b2a, 0x0b2a, 0x0b3d, 0x0b3d, 0x0b3d, 0x0b3d, 0x0b3d, + // Entry C0 - FF + 0x0b3d, 0x0b3d, 0x0b3d, 0x0b3d, 0x0b3d, 0x0b52, 0x0b52, 0x0b52, + 0x0b52, 0x0b52, 0x0b52, 0x0b52, 0x0b61, 0x0b61, 0x0b61, 0x0b61, + 0x0b61, 0x0b61, 0x0b61, 0x0b61, 0x0b61, 0x0b61, 0x0b61, 0x0b61, + 0x0b61, 0x0b74, 0x0b74, 0x0b85, 0x0b85, 0x0b85, 0x0ba5, 0x0ba5, + 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, 0x0ba5, + 0x0ba5, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, + 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bb6, 0x0bc7, 0x0bc7, 0x0bc7, + 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bc7, 0x0bdc, 0x0bdc, 0x0bf1, + // Entry 100 - 13F + 0x0bf1, 0x0bf1, 0x0bf1, 0x0bf1, 0x0bf1, 0x0bf1, 0x0c04, 0x0c04, + 0x0c04, 0x0c04, 0x0c04, 0x0c17, 0x0c17, 0x0c3b, 0x0c3b, 0x0c4e, + 0x0c4e, 0x0c61, 0x0c61, 0x0c61, 0x0c72, 0x0c72, 0x0c72, 0x0c72, + 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c8b, + 0x0c8b, 0x0c8b, 0x0c8b, 0x0c8b, 0x0c8b, 0x0c8b, 0x0c8b, 0x0c8b, + 0x0c8b, 0x0c8b, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, + 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, 0x0ca0, + 0x0ca0, 0x0ca0, 0x0ccc, 0x0ccc, 0x0ccc, 0x0cdf, 0x0cdf, 0x0cdf, + // Entry 140 - 17F + 0x0cdf, 0x0cf4, 0x0cf4, 0x0cf4, 0x0cf4, 0x0cf4, 0x0d18, 0x0d18, + 0x0d18, 0x0d18, 0x0d18, 0x0d18, 0x0d18, 0x0d18, 0x0d18, 0x0d18, + 0x0d2d, 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d42, 0x0d55, 0x0d55, + 0x0d55, 0x0d68, 0x0d68, 0x0d68, 0x0d68, 0x0d68, 0x0d7f, 0x0da0, + 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0dbc, 0x0dbc, 0x0dbc, + 0x0dbc, 0x0dd5, 0x0dd5, 0x0df3, 0x0e0a, 0x0e0a, 0x0e0a, 0x0e0a, + 0x0e0a, 0x0e0a, 0x0e0a, 0x0e0a, 0x0e21, 0x0e34, 0x0e34, 0x0e34, + 0x0e34, 0x0e34, 0x0e47, 0x0e47, 0x0e47, 0x0e47, 0x0e47, 0x0e47, + // Entry 180 - 1BF + 0x0e47, 0x0e5c, 0x0e5c, 0x0e5c, 0x0e5c, 0x0e80, 0x0e80, 0x0e80, + 0x0e80, 0x0e80, 0x0e8f, 0x0e8f, 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, + 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, 0x0ea2, 0x0eb5, 0x0eb5, 0x0eb5, + 0x0eb5, 0x0eb5, 0x0ec6, 0x0edf, 0x0edf, 0x0eff, 0x0f10, 0x0f10, + 0x0f10, 0x0f10, 0x0f10, 0x0f25, 0x0f25, 0x0f25, 0x0f3c, 0x0f3c, + 0x0f3c, 0x0f3c, 0x0f3c, 0x0f3c, 0x0f3c, 0x0f3c, 0x0f59, 0x0f59, + 0x0f59, 0x0f6a, 0x0f8c, 0x0f8c, 0x0f8c, 0x0f8c, 0x0f8c, 0x0fa1, + 0x0fa1, 0x0fa1, 0x0fa1, 0x0fa1, 0x0fb0, 0x0fb0, 0x0fc1, 0x0fc1, + // Entry 1C0 - 1FF + 0x0fc1, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, + 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, + 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0fda, 0x0feb, 0x0feb, + 0x0feb, 0x0feb, 0x0feb, 0x0feb, 0x0feb, 0x0ffe, 0x0ffe, 0x0ffe, + 0x0ffe, 0x0ffe, 0x0ffe, 0x100d, 0x100d, 0x100d, 0x100d, 0x1024, + 0x1024, 0x1024, 0x1024, 0x1024, 0x1037, 0x1037, 0x1037, 0x1037, + 0x1059, 0x1059, 0x106a, 0x106a, 0x106a, 0x1090, 0x1090, 0x1090, + 0x10a9, 0x10a9, 0x10a9, 0x10a9, 0x10a9, 0x10a9, 0x10cb, 0x10e5, + // Entry 200 - 23F + 0x1101, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, + 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, 0x1114, + 0x1114, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, + 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, + 0x1125, 0x1125, 0x1125, 0x1125, 0x1125, 0x113c, 0x113c, 0x1173, + 0x1173, 0x1173, 0x1173, 0x118a, 0x1199, 0x1199, 0x1199, 0x1199, + 0x1199, 0x1199, 0x1199, 0x11ae, 0x11ae, 0x11ae, 0x11ae, 0x11ae, + 0x11c7, 0x11c7, 0x11c7, 0x11c7, 0x11d8, 0x11d8, 0x11d8, 0x11d8, + // Entry 240 - 27F + 0x11d8, 0x11d8, 0x11d8, 0x11d8, 0x11d8, 0x11d8, 0x11d8, 0x121d, + 0x121d, 0x123f, 0x123f, 0x1274, 0x1274, 0x129c, 0x12d7, 0x1307, + 0x1331, 0x135f, 0x138d, 0x13c2, 0x13e8, 0x1410, 0x1410, 0x143a, + 0x146a, 0x148e, 0x14a5, 0x14d5, 0x1501, 0x151a, 0x151a, 0x153c, + 0x156a, 0x158e, +} // Size: 1244 bytes + +var kmLangStr string = "" + // Size: 5497 bytes + "ភាសាអាហ្វារអាប់ážáž¶áž áŸŠáŸ’សានភាសាអាវែស្ážáž„់អាហ្វ្រិកានអាកានអាមហារីចភាសាអារ៉ាហ្គ" + + "ោនអារ៉ាប់អាសាមីសភាសាអីម៉ារ៉ាអាហ៊្សែរបែហ្សង់បែស្កឺបáŸáž¡áž¶ážšáž»ážŸáŸ’សប៊ុលហ្ការីបា" + + "ម្បារាបង់ក្លាដែសទីបáŸáž”្រីស្ážáž»áž“បូស្នីកាážáž¶áž¡áž¶áž“ឈីឆáŸáž“កូស៊ីážáž¶áž“ឆáŸáž€ážˆáž¼ážœáŸ‰áž¶ážŸážœáŸáž›ážŠáž¶ážŽ" + + "ឺម៉ាកអាល្លឺម៉ង់ដុងážáž¶áž¢áŸŠáž¸ážœáž€áŸ’រិចអង់គ្លáŸážŸáž¢áŸážŸáŸ’áž–áŸážšáŸ‰áž¶áž“់ážáž¼áž¢áŸážŸáŸ’ប៉ាញអáŸážŸáŸ’ážáž¼áž“ីបាស្" + + "កáŸáž—ឺសៀនហ្វាំងឡង់ហ៊្វីជីហ្វារូសបារាំងហ្វ្រីស៊ានážáž¶áž„លិចអៀរឡង់ភាសាហ្កែលិគ " + + "(gd)ហ្គាលីស្យានហ្គូរ៉ានីហ្កុយ៉ារាទីមáŸáž“ហូសាអ៊ីស្រាអែលហិណ្ឌីក្រូអាážáž áŸƒáž‘ីហុង" + + "គ្រីអារមáŸáž“ីឥណ្ឌូណáŸážŸáŸŠáž¸áž¢áŸŠáž¸áž€áž”ូស៊ីឈាន់យីអ៊ីស្លង់អ៊ីážáž¶áž›áž¸áž¢áŸŠáž¸áž“ុកទីទុážáž‡áž”៉ុនជ្វ" + + "ាហ្សក\u200bហ្ស៊ីគីគូយូកាហ្សាក់ស្ážáž„់់កាឡាលលីស៊ុážážáŸ’មែរកន្នដកូរ៉áŸáž€áž¶ážŸáŸ’មៀរឃ" + + "ឺដកូនីសគៀរហ្គីស្ážáž„់ឡាážáŸ†áž¶áž„លុចហ្សំបួរហ្គាន់ដាលីនកាឡាឡាវលីទុយអានីលូបាកាážáž¶" + + "នហ្គាឡាážážœáž¸áž˜áŸ‰áž¶áž¡áž¶áž áŸ’គាស៊ីម៉ោរីម៉ាសáŸážŠáž¼áž“ីមលយាលáŸáž˜áž˜áŸ‰áž»áž„ហ្គោលីម៉ារ៉ាធីម៉ាឡáŸážŸáŸŠáž¸áž˜" + + "៉ាល់ážáž¶áž—ូមានáŸáž”áŸáž›áŸážáž¶áž„ជើងនáŸáž”៉ាល់ហុល្លង់នáŸážšážœáŸ‚ស នីនូសនáŸážšážœáŸ‚ស បុកម៉ាល់អូរ៉ូម៉" + + "ូអូរីយ៉ាបឹនជាពិប៉ូឡូញបាស្ážáž¼áž–áŸážšáž‘ុយហ្កាល់កáŸáž‘ជួអារ៉ូម៉ង់រូន្ឌីរូម៉ានីរុស្" + + "ស៊ីគិនយ៉ាវ៉ាន់ដាសំស្ក្រឹážážŸáŸŠáž¸áž“ឌីសាមីážáž¶áž„ជើងសានហ្គោស្រីលង្កាស្លូវ៉ាគីស្លូ" + + "វ៉ានីភាសាសាមូអាសូណាសូម៉ាលីអាល់បានីស៊ែបស៊ូដង់ស៊ុយអែដស្វាហ៊ីលីážáž¶áž˜áž¸áž›ážáŸáž›áž»áž‚" + + "áž»ážáž¶ážŠáž áŸ’សីគីស្ážáž„់ážáŸƒáž‘ីរិនយាទួគមáŸáž“ីស្ážáž„់ážáž»áž„ហ្គោទួរគីážáž¶ážáž¶áž¢áŸŠáž»áž™áž áŸ’គឺរអ៊ុយក្រែន" + + "អ៊ូរឌូអ៊ូហ្សបáŸáž‚ីស្ážáž„់វៀážážŽáž¶áž˜ážœáž¼áž¡áž»áž áŸ’វឃសាភាសាយីឌីហ្សយរូបាភាសាចួងចិនសូលូអាហ" + + "្គីមម៉ាពូឈីអាស៊ូបáŸáž˜áž”ាបáŸážŽáž¶áž”ាឡូជីážáž¶áž„លិចបូដូឈីហ្គាឆáŸážšáž¼áž‚ីážážºážŠáž€ážŽáŸ’ážáž¶áž›ážáŸƒážáž¶áž áŸ’សា" + + "ម៉ាសូប៊ីក្រោមឌូអាឡាចូឡាហ៊្វុនយីអáŸáž˜áž”៊ូហ្វីលីពីនកាគូសអាល្លឺម៉ង (ស្វីស)ហ្" + + "គូស៊ីហាវៃសូប៊ីលើងុំបាម៉ាឆាំកាប៊ីឡáŸáž€áž¶áŸ†áž”ាម៉ាកូនដáŸáž€áž¶áž”៊ូវឺឌៀនូគុយរ៉ាឈីនីកា" + + "លែនជីនគូមីភឹមយ៉ាគគុនកានីសាមបាឡាបាហ្វៀឡានហ្គីឡាកូážáž¶áž›áž¼ážšáž¸ážáž¶áž„ជើងលូអូលូយ៉ាម" + + "៉ាសៃមáŸážšáž¼áž˜áŸ‰áž¼ážšáž¸ážŸáŸŠáž¸áž“ម៉ាកគូវ៉ាមីážáž¼áž˜áŸážáž¶áž˜áŸŠáž¼áž áž¶áž‚មុនដាងម៉ាហ្សានដឺរáŸáž“ីណាម៉ាអាល្ល" + + "ឺម៉ង់ក្រោមក្វាស្យូនគោនូអáŸážšážŽáž¶áž“កូលáŸáž‚ីចឈីរុមបូរ៉្វាសាមបូរូសានហ្គូអម្បូរឃឺ" + + "ដážáž¶áž„ážáŸ’បូងស៊ីណាគុយរ៉ាបូរ៉ុស៊ីនីážáž¶ážˆáž¸áž›áž áŸŠáž¸ážážŸáž¶áž˜áž¸ážáž¶áž„ážáŸ’បូងលូលីសាមីអ៊ីណារីសាម៉" + + "ីស្កុលសាមីážáŸážŸáž¼ážáž¶ážŸáž¶ážœáŸ‰áž¶áž€áŸ‹ážáž¶áž˜áŸ‰áž¶ážŸáž¶áž™áž¢áž¶ážáŸ’លាសកណ្ážáž¶áž›áž—ាសាមិនស្គាល់វៃវុនចូវ៉ារីប" + + "៉ារីសូហ្គាម៉ារ៉ុកគ្មាន\u200bទិន្ននáŸáž™\u200bភាសាអារ៉ាប់ផ្លូវការអáŸážŸáŸ’ប៉ាញ " + + "(អ៊ឺរ៉ុប)ហ្សាក់ស្យុងក្រោមផ្លាមីសពáŸážšáž‘ុយហ្គាល់ (អឺរ៉ុប)ម៉ុលដាវីកុងហ្គោស្វា" + + "ហ៊ីលីចិន\u200bអក្សរ\u200bកាážáŸ‹áž…áž·áž“\u200bអក្សរ\u200báž–áŸáž‰" + +var kmLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0021, 0x0045, 0x006c, 0x008d, 0x009c, 0x00b4, 0x00de, + 0x00f3, 0x0108, 0x0108, 0x012c, 0x0159, 0x016b, 0x0186, 0x01a4, + 0x01a4, 0x01bc, 0x01da, 0x01e6, 0x0201, 0x0213, 0x0228, 0x0237, + 0x0237, 0x024f, 0x024f, 0x0258, 0x0258, 0x026a, 0x0273, 0x028b, + 0x02a9, 0x02a9, 0x02b8, 0x02c4, 0x02d3, 0x02eb, 0x0312, 0x032a, + 0x0342, 0x0354, 0x0363, 0x0363, 0x037e, 0x0393, 0x03a8, 0x03ba, + 0x03ea, 0x03fc, 0x0422, 0x0443, 0x045e, 0x047f, 0x0488, 0x0494, + 0x04b2, 0x04c4, 0x04c4, 0x04d9, 0x04e5, 0x04fa, 0x050f, 0x050f, + // Entry 40 - 7F + 0x050f, 0x052d, 0x052d, 0x053f, 0x055a, 0x055a, 0x055a, 0x0572, + 0x0587, 0x05a8, 0x05b7, 0x05c3, 0x05e1, 0x05e1, 0x05f3, 0x05f3, + 0x061d, 0x063e, 0x064d, 0x065c, 0x066b, 0x066b, 0x0680, 0x0689, + 0x0689, 0x0698, 0x06bc, 0x06ce, 0x06ec, 0x0704, 0x0704, 0x0719, + 0x0722, 0x073d, 0x0764, 0x0773, 0x0797, 0x0797, 0x07a6, 0x07c1, + 0x07d6, 0x07f4, 0x080c, 0x0824, 0x0839, 0x0845, 0x0845, 0x0869, + 0x087e, 0x087e, 0x0893, 0x08b5, 0x08e0, 0x08e0, 0x08e0, 0x08e0, + 0x08e0, 0x08e0, 0x08f8, 0x090d, 0x090d, 0x0922, 0x0922, 0x0934, + // Entry 80 - BF + 0x0946, 0x096a, 0x097f, 0x0994, 0x09a6, 0x09bb, 0x09d0, 0x09f7, + 0x0a12, 0x0a12, 0x0a24, 0x0a42, 0x0a57, 0x0a72, 0x0a8d, 0x0aa8, + 0x0ac6, 0x0ad2, 0x0ae7, 0x0aff, 0x0b0b, 0x0b0b, 0x0b0b, 0x0b1d, + 0x0b32, 0x0b4d, 0x0b5c, 0x0b6e, 0x0b98, 0x0b9e, 0x0bb3, 0x0bd7, + 0x0bd7, 0x0bec, 0x0bfb, 0x0bfb, 0x0c07, 0x0c07, 0x0c22, 0x0c3d, + 0x0c4f, 0x0c7c, 0x0c7c, 0x0c8e, 0x0c8e, 0x0c8e, 0x0ca3, 0x0cac, + 0x0ccd, 0x0cdc, 0x0cf1, 0x0cfa, 0x0d06, 0x0d06, 0x0d06, 0x0d06, + 0x0d06, 0x0d06, 0x0d06, 0x0d1b, 0x0d1b, 0x0d1b, 0x0d1b, 0x0d1b, + // Entry C0 - FF + 0x0d1b, 0x0d1b, 0x0d1b, 0x0d1b, 0x0d1b, 0x0d30, 0x0d30, 0x0d30, + 0x0d30, 0x0d30, 0x0d30, 0x0d30, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, + 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, 0x0d3f, + 0x0d3f, 0x0d4e, 0x0d4e, 0x0d5a, 0x0d5a, 0x0d5a, 0x0d7e, 0x0d7e, + 0x0d7e, 0x0d7e, 0x0d7e, 0x0d7e, 0x0d7e, 0x0d7e, 0x0d7e, 0x0d7e, + 0x0d7e, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, + 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d8a, 0x0d9c, 0x0d9c, 0x0d9c, + 0x0d9c, 0x0d9c, 0x0d9c, 0x0d9c, 0x0d9c, 0x0dae, 0x0dae, 0x0dc9, + // Entry 100 - 13F + 0x0dc9, 0x0dc9, 0x0dc9, 0x0dc9, 0x0dc9, 0x0dc9, 0x0dd5, 0x0dd5, + 0x0dd5, 0x0dd5, 0x0dd5, 0x0dea, 0x0dea, 0x0e08, 0x0e08, 0x0e1a, + 0x0e1a, 0x0e3e, 0x0e3e, 0x0e3e, 0x0e50, 0x0e50, 0x0e50, 0x0e50, + 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e50, 0x0e6b, + 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, 0x0e6b, + 0x0e6b, 0x0e6b, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, + 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, 0x0e7a, + 0x0e7a, 0x0e7a, 0x0ea7, 0x0ea7, 0x0ea7, 0x0ebc, 0x0ebc, 0x0ebc, + // Entry 140 - 17F + 0x0ebc, 0x0ec8, 0x0ec8, 0x0ec8, 0x0ec8, 0x0ec8, 0x0edd, 0x0edd, + 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, 0x0edd, + 0x0eec, 0x0efe, 0x0efe, 0x0efe, 0x0efe, 0x0efe, 0x0f13, 0x0f13, + 0x0f13, 0x0f22, 0x0f22, 0x0f22, 0x0f22, 0x0f22, 0x0f3a, 0x0f5b, + 0x0f5b, 0x0f5b, 0x0f5b, 0x0f5b, 0x0f5b, 0x0f79, 0x0f79, 0x0f79, + 0x0f79, 0x0f91, 0x0f91, 0x0fb2, 0x0fc7, 0x0fc7, 0x0fc7, 0x0fc7, + 0x0fc7, 0x0fc7, 0x0fc7, 0x0fc7, 0x0fdc, 0x0fee, 0x0fee, 0x0fee, + 0x0fee, 0x0fee, 0x1003, 0x1003, 0x1003, 0x1003, 0x1003, 0x1003, + // Entry 180 - 1BF + 0x1003, 0x1015, 0x1015, 0x1015, 0x1015, 0x1033, 0x1033, 0x1033, + 0x1033, 0x1033, 0x103f, 0x103f, 0x104e, 0x104e, 0x104e, 0x104e, + 0x104e, 0x104e, 0x104e, 0x104e, 0x104e, 0x105d, 0x105d, 0x105d, + 0x105d, 0x105d, 0x1069, 0x1084, 0x1084, 0x10ab, 0x10b7, 0x10b7, + 0x10b7, 0x10b7, 0x10b7, 0x10c9, 0x10c9, 0x10c9, 0x10db, 0x10db, + 0x10db, 0x10db, 0x10db, 0x10db, 0x10db, 0x10db, 0x1105, 0x1105, + 0x1105, 0x1114, 0x1141, 0x1141, 0x1141, 0x1141, 0x1141, 0x1159, + 0x1159, 0x1159, 0x1159, 0x1159, 0x1162, 0x1162, 0x1171, 0x1171, + // Entry 1C0 - 1FF + 0x1171, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, + 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, + 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1186, 0x1195, 0x1195, + 0x1195, 0x1195, 0x1195, 0x1195, 0x1195, 0x11a4, 0x11a4, 0x11a4, + 0x11a4, 0x11a4, 0x11a4, 0x11b3, 0x11b3, 0x11b3, 0x11b3, 0x11c8, + 0x11c8, 0x11c8, 0x11c8, 0x11c8, 0x11dd, 0x11dd, 0x11dd, 0x11dd, + 0x1210, 0x1210, 0x121f, 0x121f, 0x121f, 0x124f, 0x124f, 0x124f, + 0x126a, 0x126a, 0x126a, 0x126a, 0x126a, 0x126a, 0x128e, 0x12a6, + // Entry 200 - 23F + 0x12ca, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, + 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, 0x12e5, + 0x12e5, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, + 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, + 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x12f1, 0x130c, 0x130c, 0x134b, + 0x134b, 0x134b, 0x134b, 0x1372, 0x1378, 0x1378, 0x1378, 0x1378, + 0x1378, 0x1378, 0x1378, 0x1387, 0x1387, 0x1387, 0x1387, 0x1387, + 0x13a5, 0x13a5, 0x13a5, 0x13a5, 0x13b7, 0x13b7, 0x13b7, 0x13b7, + // Entry 240 - 27F + 0x13b7, 0x13b7, 0x13b7, 0x13b7, 0x13b7, 0x13b7, 0x13b7, 0x13cc, + 0x13cc, 0x1405, 0x1405, 0x1432, 0x1432, 0x1432, 0x1432, 0x1432, + 0x1432, 0x1432, 0x1432, 0x1432, 0x1462, 0x1462, 0x1462, 0x1462, + 0x1462, 0x1492, 0x14a7, 0x14a7, 0x14e0, 0x14f8, 0x14f8, 0x1528, + 0x1552, 0x1579, +} // Size: 1244 bytes + +var knLangStr string = "" + // Size: 11656 bytes + "ಅಫಾರà³à²…ಬà³à²–ಾಜಿಯನà³à²…ವೆಸà³à²Ÿà²¨à³à²†à²«à³à²°à²¿à²•à²¾à²¨à³à²¸à³à²…ಕಾನà³à²…ಂಹರಿಕà³à²…ರಗೊನೀಸà³à²…ರೇಬಿಕà³à²…ಸà³à²¸à²¾à²®à³€à²¸à³à²…ವ" + + "ರಿಕà³à²…ಯà³à²®à²¾à²°à²¾à²…ಜೆರà³à²¬à³ˆà²œà²¾à²¨à²¿à²¬à²¶à³à²•à²¿à²°à³à²¬à³†à²²à²°à³‚ಸಿಯನà³à²¬à²²à³à²—ೇರಿಯನà³à²¬à²¿à²¸à³à²²à²¾à²®à²¾à²¬à²‚ಬಾರಾಬೆಂಗಾಲಿ" + + "ಟಿಬೇಟಿಯನà³à²¬à³à²°à³†à²Ÿà²¨à³à²¬à³‹à²¸à³à²¨à²¿à²¯à²¨à³à²•à³†à²Ÿà²²à²¾à²¨à³à²šà³†à²šà²¨à³à²•à²®à³Šà²°à³Šà²•à³‹à²°à³à²¸à²¿à²•à²¨à³à²•à³à²°à³€à²œà³†à²•à³à²šà²°à³à²šà³ ಸà³à²²à²¾à²µ" + + "ಿಕà³à²šà³à²µà²¾à²¶à³à²µà³†à²²à³à²¶à³à²¡à³à²¯à²¾à²¨à²¿à²¶à³à²œà²°à³à²®à²¨à³à²¦à²¿à²µà³†à²¹à²¿à²œà³‹à²‚ಗà³\u200cಖಾಈವà³à²—à³à²°à³€à²•à³à²‡à²‚ಗà³à²²à³€à²·à³à²Žà²¸à³à²ªà³†" + + "ರಾಂಟೊಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³à²Žà²¸à³à²Ÿà³Šà²¨à²¿à²¯à²¨à³à²¬à²¾à²¸à³à²•à³à²ªà²°à³à²¶à²¿à²¯à²¨à³à²«à³à²²à²¾à²¹à³à²«à²¿à²¨à³à²¨à²¿à²¶à³à²«à²¿à²œà²¿à²¯à²¨à³à²«à²°à³‹à²¸à²¿à²«à³à²°à³†à²‚" + + "ಚà³à²ªà²¶à³à²šà²¿à²® ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²à²°à²¿à²·à³à²¸à³à²•à²¾à²Ÿà²¿à²¶à³ ಗà³à²¯à²¾à²²à²¿à²•à³à²—à³à²¯à²¾à²²à²¿à²¶à²¿à²¯à²¨à³à²—ೌರಾನಿಗà³à²œà²°à²¾à²¤à²¿à²®à³à²¯à²¾à²‚ಕ" + + "à³à²¸à³à²¹à³Œà²¸à²¾à²¹à³€à²¬à³à²°à³à²¯à³‚ಹಿಂದಿಹಿರಿ ಮೊಟà³à²•à³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¨à³à²¹à³ˆà²¤à²¿à²¯à²¨à³à²¹à²‚ಗೇರಿಯನà³à²…ರà³à²®à³‡à²¨à²¿à²¯à²¨à³à²¹à³†à²°à³†" + + "ರೊಇಂಟರà³\u200cಲಿಂಗà³à²µà²¾à²‡à²‚ಡೋನೇಶಿಯನà³à²‡à²‚ಟರà³à²²à²¿à²‚ಗà³à²‡à²—à³à²¬à³Šà²¸à²¿à²šà³à²…ನೠಯಿಇನà³à²ªà²¿à²¯à²¾à²•à³à²‡à²¡à³Šà²à²¸" + + "à³à²²à²¾à²‚ಡಿಕà³à²‡à²Ÿà²¾à²²à²¿à²¯à²¨à³à²‡à²¨à³à²•à³à²Ÿà²¿à²Ÿà³à²Ÿà³à²œà²¾à²ªà²¨à³€à²¸à³à²œà²¾à²µà²¾à²¨à³€à²¸à³à²œà²¾à²°à³à²œà²¿à²¯à²¨à³à²•à³Šà²‚ಗೊಕಿಕà³à²¯à³à²•à³à²µà²¾à²¨à³" + + "\u200cಯಾಮಾಕà²à²•à³à²•à²²à²¾à²²à³à²²à²¿à²¸à³à²Ÿà³à²–ಮೇರà³à²•à²¨à³à²¨à²¡à²•à³Šà²°à²¿à²¯à²¨à³à²•à²¨à³à²°à²¿à²•à²¾à²¶à³à²®à³€à²°à²¿à²•à³à²°à³à²¦à²¿à²·à³à²•à³‹à²®à²¿à²•à³‹à²°à³à²¨" + + "ಿಷà³à²•à²¿à²°à³à²—ಿಜà³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³à²²à²•à³à²¸à²‚ಬರà³à²—à³à²—ಾಂಡಾಲಿಂಬರà³à²—ಿಶà³à²²à²¿à²‚ಗಾಲಲಾವೋಲಿಥà³à²µà³‡à²¨à²¿à²¯à²¨à³à²²à³‚ಬಾ-" + + "ಕಟಾಂಗಾಲಟà³à²µà²¿à²¯à²¨à³à²®à²²à²—ಾಸಿಮಾರà³à²¶à²²à³à²²à³€à²¸à³à²®à²¾à²µà³‹à²°à²¿à²®à³†à²¸à²¿à²¡à³‹à²¨à²¿à²¯à²¨à³à²®à²²à²¯à²¾à²³à²‚ಮಂಗೋಲಿಯನà³à²®à²°à²¾à² à²¿à²®à²²" + + "ಯà³à²®à²¾à²²à³à²Ÿà³€à²¸à³à²¬à²°à³à²®à³€à²¸à³à²¨à³Œà²°à³à²‰à²¤à³à²¤à²° ದೆಬೆಲೆನೇಪಾಳಿಡೋಂಗಾಡಚà³à²¨à²¾à²°à³à²µà³†à²œà²¿à²¯à²¨à³ ನೈನೊಸà³à²•à³à²¨à²¾à²°" + + "à³à²µà³†à²œà²¿à²¯à²¨à³ ಬೊಕà³à²®à²²à³à²¦à²•à³à²·à²¿à²£ ದೆಬೆಲೆನವಾಜೊನà³à²¯à²¾à²‚ಜಾಒಸಿಟನà³à²’ಜಿಬà³à²µà²¾à²“ರೊಮೋಒರಿಯಾಒಸà³à²¸à³†à²Ÿ" + + "ಿಕà³à²ªà²‚ಜಾಬಿಪಾಲಿಪೋಲಿಶà³à²ªà²¾à²·à³à²Ÿà³‹à²ªà³‹à²°à³à²šà³à²—ೀಸà³à²•à³à²µà³†à²šà³à²µà²¾à²°à³Šà²®à²¾à²¨à³à²·à³à²°à³à²‚ಡಿರೊಮೇನಿಯನà³à²°à²·à³à²¯à²¨" + + "à³à²•à³€à²¨à³à²¯à²¾à²°à³à²µà²¾à²‚ಡಾಸಂಸà³à²•à³ƒà²¤à²¸à²°à³à²¡à³€à²¨à²¿à²¯à²¨à³à²¸à²¿à²‚ಧಿಉತà³à²¤à²° ಸಾಮಿಸಾಂಗೋಸಿಂಹಳಸà³à²²à³‹à²µà²¾à²•à³à²¸à³à²²à³‹à²µà³‡" + + "ನಿಯನà³à²¸à²®à³‹à²µà²¨à³à²¶à³‹à²¨à²¾à²¸à³Šà²®à²¾à²²à²¿à²…ಲà³à²¬à³‡à²¨à²¿à²¯à²¨à³à²¸à²°à³à²¬à²¿à²¯à²¨à³à²¸à³à²µà²¾à²¤à²¿à²¦à²•à³à²·à²¿à²£ ಸೋಥೋಸà³à²‚ಡಾನೀಸà³à²¸à³à²µà³€à²¡" + + "ಿಷà³à²¸à³à²µà²¹à²¿à²²à²¿à²¤à²®à²¿à²³à³à²¤à³†à²²à³à²—à³à²¤à²¾à²œà²¿à²•à³à²¥à²¾à²¯à³à²Ÿà²¿à²—à³à²°à²¿à²¨à³à²¯à²¾à²Ÿà²°à³à²•à³\u200cಮೆನà³à²¸à³à²µà²¾à²¨à²¾à²Ÿà³‹à²‚ಗನà³à²Ÿà²°" + + "à³à²•à²¿à²¶à³à²¸à³‹à²‚ಗಾಟಾಟರà³à²¤à²¹à²¿à²¤à²¿à²¯à²¨à³à²‰à²¯à²¿à²˜à²°à³à²‰à²•à³à²°à³ˆà²¨à²¿à²¯à²¨à³à²‰à²°à³à²¦à³à²‰à²œà³à²¬à³‡à²•à³à²µà³†à²‚ಡಾವಿಯೇಟà³à²¨à²¾à²®à³€à²¸à³à²µà³‹" + + "ಲಾಪà³à²•à³à²µà²¾à²²à³‚ನà³à²µà³‹à²²à³‹à²«à³à²•à³à²¸à³‹à²¸à²¯à²¡à³à²¡à²¿à²¶à³à²¯à³Šà²°à³à²¬à²¾à²à³‚ವಾಂಗà³à²šà³ˆà²¨à³€à²¸à³à²œà³à²²à³à²…ಛಿನೀಸà³à²…ಕೋಲಿಅಡಂಗà³" + + "\u200cಮೆಅಡೈಘೆಆಫà³à²°à²¿à²¹à²¿à²²à²¿à²…ಘೆಮà³à²à²¨à³à²…ಕà³à²•à²¾à²¡à²¿à²¯à²¨à³à²…ಲೆಯà³à²Ÿà³à²¦à²•à³à²·à²¿à²£ ಅಲà³à²Ÿà²¾à²¯à³à²ªà³à²°à²¾à²šà³€à²¨ ಇಂಗ" + + "à³à²²à³€à²·à³à²†à²‚ಗಿಕಾಅರಾಮಿಕà³à²®à²ªà³à²šà³†à²…ರಪಾಹೋಅರಾವಾಕà³à²…ಸà³à²†à²¸à³à²Ÿà³à²°à²¿à²¯à²¨à³à²…ವಧಿಬಲೂಚಿಬಲಿನೀಸà³à²¬à²¸à²¾à²¬à³‡" + + "ಜಾಬೆಂಬಾಬೆನಪಶà³à²šà²¿à²® ಬಲೊಚಿಭೋಜಪà³à²°à²¿à²¬à²¿à²•à³Šà²²à³à²¬à²¿à²¨à²¿à²¸à²¿à²•à³à²¸à²¿à²•à²¾à²¬à³à²°à²¾à²œà³à²¬à³‹à²¡à³Šà²¬à³à²°à²¿à²¯à²Ÿà³à²¬à³à²—ಿನೀ" + + "ಸà³à²¬à³à²²à²¿à²¨à³à²•à³à²¯à²¾à²¡à³à²¡à³‹à²•à²¾à²°à²¿à²¬à³à²…ಟà³à²¸à²®à³à²¸à³†à²¬à³à²†à²¨à³‹à²šà²¿à²—ಾಚಿಬà³à²šà²¾à²šà²—ಟಾಯà³à²šà³‚ಕಿಸೆಮಾರಿಚಿನೂಕೠಜಾ" + + "ರà³à²—ೋನà³à²šà³‹à²•à³à²Ÿà²¾à²µà³à²šà²¿à²ªà³†à²µà³à²¯à²¾à²¨à³à²šà³†à²°à³‹à²•à³€à²šà³€à²¯à³†à²¨à³à²¨à³‡à²¸à³Šà²°à²¾à²¨à²¿ ಕà³à²°à³à²¦à²¿à²·à³à²•à³Šà²ªà³à²Ÿà²¿à²•à³à²•à³à²°à²¿à²®à³€à²¯à²¨à³" + + " ಟರà³à²•à²¿à²·à³à²•à²¶à³à²¬à²¿à²¯à²¨à³à²¡à²•à³‹à²Ÿà²¦à²°à³à²—à³à²µà²¾à²Ÿà³ˆà²Ÿà²¡à³†à²²à²¾à²µà³‡à²°à³à²¸à³à²²à³‡à²µà³à²¡à³‹à²—à³à²°à²¿à²¬à³à²¡à²¿à²‚ಕಾಜರà³à²®à²¾à²¡à³‹à²—à³à²°à²¿à²²à³‹à²µà²°" + + "ೠಸೋರà³à²¬à²¿à²¯à²¨à³à²¡à³à²µà²¾à²²à²¾à²®à²§à³à²¯ ಡಚà³à²œà³Šà²²-ಫೊನà³à²¯à²¿à²¡à³à²¯à³‚ಲಾಎಂಬà³à²Žà²«à²¿à²•à³à²ªà³à²°à²¾à²šà³€à²¨ ಈಜಿಪà³à²Ÿà²¿à²¯à²¨à³à²Žà²•" + + "ಾಜà³à²•à³à²Žà²²à²¾à²®à³ˆà²Ÿà³à²®à²§à³à²¯ ಇಂಗà³à²²à³€à²·à³à²‡à²µà²¾à²‚ಡೋಫೆಂಗà³à²«à²¿à²²à²¿à²ªà²¿à²¨à³Šà²«à³‹à²¨à³à²®à²§à³à²¯ ಫà³à²°à³†à²‚ಚà³à²ªà³à²°à²¾à²šà³€à²¨ ಫà³" + + "ರೆಂಚà³à²‰à²¤à³à²¤à²° ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²ªà³‚ರà³à²µ ಫà³à²°à²¿à²¸à²¿à²¯à²¨à³à²«à³à²°à²¿à²¯à³à²²à²¿à²¯à²¨à³à²—ಗಗೌಜà³à²—ಾಯೋಗà³à²¬à²¾à²¯à²¾à²—à³€à²à³à²—ಿಲà³" + + "ಬರà³à²Ÿà³€à²¸à³à²®à²§à³à²¯ ಹೈ ಜರà³à²®à²¨à³à²ªà³à²°à²¾à²šà³€à²¨ ಹೈ ಜರà³à²®à²¨à³à²—ೊಂಡಿಗೊರೊಂಟಾಲೋಗೋಥಿಕà³à²—à³à²°à³‡à²¬à³‹à²ªà³à²°à²¾à²šà³€" + + "ನ ಗà³à²°à³€à²•à³à²¸à³à²µà²¿à²¸à³ ಜರà³à²®à²¨à³à²—à³à²¸à²¿à²—à³à²µà²¿à²šà³\u200cಇನà³à²¹à³ˆà²¡à²¾à²¹à²µà²¾à²¯à²¿à²¯à²¨à³à²¹à²¿à²²à²¿à²—ೇನನà³à²¹à²¿à²Ÿà³à²Ÿà²¿à²Ÿà³†à²®" + + "ೋಂಗà³à²…ಪà³à²ªà²°à³ ಸರà³à²¬à²¿à²¯à²¨à³à²¹à³‚ಪಾಇಬಾನà³à²‡à²²à³à²²à²¿à²•à³‹à²‡à²‚ಗà³à²·à³à²²à³Šà²œà³à²¬à²¾à²¨à³à²¨à³Šà²‚ಬಾಮà³à²¯à²•à²®à³†à²œà³‚ಡಿಯೋ-ಪರà³" + + "ಶಿಯನà³à²œà³‚ಡಿಯೋ-ಅರೇಬಿಕà³à²•à²¾à²°à²¾-ಕಲà³à²ªà²¾à²•à³à²•à²¬à³ˆà²²à³à²•à²šà²¿à²¨à³à²œà³à²œà³à²•à²‚ಬಾಕಾವಿಕಬರà³à²¡à²¿à²¯à²¨à³à²Ÿà³à²¯à²¾à²ªà³à²®à³" + + "ಯಾಕೊಂಡà³à²•à²¬à³à²µà³†à²°à³à²¡à²¿à²¯à²¨à³à²•à³‹à²°à³‹à²–ಾಸಿಖೋಟಾನೀಸà³à²•à³Šà²¯à³à²° ಚೀನಿಕಲೆಂಜಿನà³à²•à²¿à²‚ಬà³à²‚ಡà³à²•à³Šà²®à²¿-ಪರà³à²®" + + "à³à²¯à²•à³à²•à³Šà²‚ಕಣಿಕೊಸರಿಯನà³à²•à²ªà³†à²²à³à²²à³†à²•à²°à²šà²¯à³-ಬಲà³à²•à²¾à²°à³à²•à²°à³‡à²²à²¿à²¯à²¨à³à²•à³à²°à³à²–à³à²¶à²‚ಬಲಬಫಿಯಕà³à²®à³ˆà²•à³à²•à³à²Ÿà³‡" + + "ನಾಯà³à²•à²¾à²¡à²¿à²¨à³‹à²²à²¾à²‚ಗಿಲಹಂಡಾಲಂಬಾಲೆಜà³à²˜à²¿à²¯à²¨à³à²²à²•à³Šà²Ÿà²®à³Šà²‚ಗೋಲೋà²à²¿à²²à³à²¬-ಲà³à²²à²¾à²²à³‚ಯಿಸೆನೋಲà³à²‚ಡಾಲà³à²µ" + + "ೋಲà³à²¶à²¾à²¯à³à²²à³à²¯à²¿à²¯à²®à²¦à³à²°à³€à²¸à³à²®à²—ಾಹಿಮೈಥಿಲಿಮಕಾಸರà³à²®à²‚ಡಿಂಗೊಮಸಾಯà³à²®à³‹à²•à³à²·à²®à²‚ದಾರà³à²®à³†à²‚ಡೆಮೆರà³à²®à³Š" + + "ರಿಸನà³à²®à²§à³à²¯ à²à²°à²¿à²·à³à²®à³à²¯à²–à³à²µà²¾- ಮೀಟà³à²Ÿà³Šà²®à³†à²Ÿà²¾à²®à²¿à²•à³\u200cಮà³à²¯à²¾à²•à³à²®à²¿à²¨à²‚ಗà³\u200cಕಬಾವà³à²®à²‚ಚ" + + "à³à²®à²£à²¿à²ªà³à²°à²¿à²®à³Šà²¹à²¾à²µà³à²•à³à²®à³Šà²¸à³à²¸à²¿à²®à³à²‚ಡಂಗà³à²¬à²¹à³à²¸à²‚ಖà³à²¯à³†à²¯ ಭಾಷೆಗಳà³à²•à³à²°à³€à²•à³à²•à²¿à²°à²¾à²‚ಡೀಸà³à²®à²¾à²°à³à²µà²¾à²¡à²¿" + + "ಎರà³\u200cà²à³à²¯à²¾à²¨à²¿à²¯à²¾à²ªà³Šà²²à²¿à²Ÿà²¨à³à²¨à²®à²²à³‹ ಜರà³à²®à²¨à³à²¨à³‡à²µà²¾à²°à³€à²¨à²¿à²¯à²¾à²¸à³à²¨à²¿à²¯à³à²µà²¨à³à²–à³à²µà²¾à²¸à²¿à²¯à³Šà²¨à³Šà²—ಾಯà³à²ªà³" + + "ರಾಚೀನ ನೋರà³à²¸à³à²Žà²¨à³\u200cಕೋಉತà³à²¤à²° ಸೋಥೋನೂಯರà³à²¶à²¾à²¸à³à²¤à³à²°à³€à²¯ ನೇವಾರಿನà³à²¯à²¾à²®à³\u200cವೆಂಜ" + + "ಿನà³à²¯à²¾à²¨à³\u200cಕೋಲೆನà³à²¯à³‹à²°à³‹à²œà³€à²®à²¾à²“ಸಾಜà³à²’ಟà³à²Ÿà³‹à²®à²¨à³ ತà³à²°à³à²•à²¿à²·à³à²ªà²‚ಗಾಸಿನನà³à²ªà²¹à³à²²à²µà²¿à²ªà²‚ಪಾಂಗ" + + "ಾಪಾಪಿಯಮೆಂಟೋಪಲà³à²†à²¨à³à²ªà³à²°à²¾à²šà³€à²¨ ಪರà³à²¶à²¿à²¯à²¨à³à²«à³€à²¨à²¿à²·à²¿à²¯à²¨à³à²ªà³‹à²¨à³\u200c\u200cಪಿಯನà³à²ªà³à²°à²¾à²šà³€à²¨" + + " ಪà³à²°à³Šà²µà³†à²¨à³à²¶à²¿à²¯à²²à³à²•à²¿à²·à³†à²°à²¾à²œà²¾à²¸à³à²¥à²¾à²¨à²¿à²°à²¾à²ªà²¾à²¨à³à²¯à²¿à²°à²¾à²°à³‹à²Ÿà³Šà²‚ಗನà³à²°à³Šà²‚ಬೊರೋಮಾನಿಅರೋಮಾನಿಯನà³à²°à³à²µà²¸à²‚" + + "ಡಾವೇಯಾಕà³à²Ÿà³à²¸à²®à²°à²¿à²Ÿà²¨à³ ಅರಾಮಿಕà³à²¸à²‚ಬà³à²°à³à²¸à²¸à²¾à²•à³à²¸à²‚ತಾಲಿಸಂಗà³à²¸à²¿à²¸à²¿à²²à²¿à²¯à²¨à³à²¸à³à²•à³‹à²Ÿà³à²¸à³à²¦à²•à³à²·à²¿à²£ " + + "ಕà³à²°à³à²¦à²¿à²¶à³à²¸à³†à²¨à²¸à³†à²²à³à²•à²ªà³à²•à³Šà²¯à³à²°à²¬à³Šà²°à³Š ಸೆನà³à²¨à²¿à²ªà³à²°à²¾à²šà³€à²¨ à²à²°à²¿à²·à³à²Ÿà²·à³†à²²à³\u200dಹಿಟà³à²¶à²¾à²¨à³à²¸à²¿à²¡à²¾" + + "ಮೋದಕà³à²·à²¿à²£ ಸಾಮಿಲೂಲೠಸಾಮಿಇನರಿ ಸಾಮಿಸà³à²•à³‹à²Ÿà³ ಸಾಮಿಸೋನಿಂಕೆಸೋಗà³à²¡à²¿à²à²¨à³à²¸à³à²°à²¾à²¨à²¨à³ ಟೋಂಗ" + + "ೋಸೇರೇರà³à²¸à³à²•à³à²®à²¾à²¸à³à²¸à³à²¸à³à²®à³‡à²°à²¿à²¯à²¨à³à²¶à²¾à²¸à³à²¤à³à²°à³€à²¯ ಸಿರಿಯಕà³à²¸à²¿à²°à²¿à²¯à²•à³à²Ÿà²¿à²®à³à²¨à³†à²Ÿà³†à²¸à³Šà²Ÿà³†à²°à³†à²¨à³‹à²Ÿà³‡à²Ÿà²®" + + "à³à²Ÿà³ˆà²—à³à²°à³†à²Ÿà²¿à²µà³à²Ÿà³Šà²•à³†à²²à²¾à²µà³à²•à³à²²à²¿à²‚ಗನà³à²Ÿà³à²²à²¿à²‚ಗಿಟà³à²Ÿà²®à²¾à²·à³†à²•à³à²¨à³à²¯à²¾à²¸à²¾ ಟೋಂಗಾಟೋಕೠಪಿಸಿನà³à²¸à²¿à²‚ಶ" + + "ಿಯನà³à²¤à³à²‚ಬà³à²•à²¾à²Ÿà³à²µà²¾à²²à³à²Ÿà²¸à²µà²•à³à²Ÿà³à²µà²¿à²¨à²¿à²¯à²¨à³à²®à²§à³à²¯ ಅಟà³à²²à²¾à²¸à³ ಟಮಜೈಟà³à²‰à²¡à³\u200cಮà³à²°à³à²Ÿà³à²‰à²—ಾರಿ" + + "ಟಿಕà³à²‰à²‚ಬà³à²‚ಡà³à²°à³‚ಟà³à²µà²¾à²¯à²¿à²µà³‹à²Ÿà²¿à²•à³à²µà³à²‚ಜೊವಲಾಮೋವರಾಯà³à²µà²¾à²·à³‹à²µà²¾à²°à³à²²à³\u200cಪಿರಿಕಲà³\u200cಮ" + + "ೈಕà³à²¸à³Šà²—ಯಾಓಯಪೀಸೆà²à³‹à²ªà³Šà²Ÿà³†à²•à³à²¬à³à²²à²¿à²¸à³\u200cಸಿಂಬಲà³à²¸à³à²à³†à²¨à²¾à²—ಾಸà³à²Ÿà³à²¯à²¾à²‚ಡರà³à²¡à³ ಮೊರೊಕà³à²•à²¨à³" + + " ಟಮಜೈಟà³à²à³‚ನಿಯಾವà³à²¦à³‡ ಭಾಷಾಸಂಬಂಧಿ ವಿಷಯವಿಲà³à²²à²œà²¾à²à²¾à²†à²§à³à²¨à²¿à²• ಪà³à²°à²®à²¾à²£à²¿à²¤ ಅರೇಬಿಕà³à²†à²¸à³à²Ÿà³à²°à²¿" + + "ಯನೠಜರà³à²®à²¨à³à²¸à³à²µà²¿à²¸à³ ಹೈ ಜರà³à²®à²¨à³à²†à²¸à³à²Ÿà³à²°à³‡à²²à²¿à²¯à²¨à³ ಇಂಗà³à²²à³€à²·à³à²•à³†à²¨à³†à²¡à²¿à²¯à²¨à³ ಇಂಗà³à²²à³€à²·à³à²¬à³à²°à²¿à²Ÿ" + + "ಿಷೠಇಂಗà³à²²à³€à²·à³à²…ಮೆರಿಕನೠಇಂಗà³à²²à³€à²·à³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³ ಅಮೇರಿಕನೠಸà³à²ªà³à²¯à²¾à²¨à²¿à²¶à³à²¯à³à²°à³‹à²ªà²¿à²¯à²¨à³ ಸà³à²ª" + + "à³à²¯à²¾à²¨à²¿à²·à³à²®à³†à²•à³à²¸à²¿à²•à²¨à³ ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³à²•à³†à²¨à³†à²¡à²¿à²¯à²¨à³ ಫà³à²°à³†à²‚ಚà³à²¸à³à²µà²¿à²¸à³ ಫà³à²°à³†à²‚ಚà³à²«à³à²²à³†à²®à²¿à²·à³à²¬à³à²°à³†" + + "ಜಿಲಿಯನೠಪೋರà³à²šà³à²—ೀಸà³à²¯à³‚ರೋಪಿಯನೠಪೋರà³à²šà³à²—ೀಸà³à²®à³Šà²²à³à²¡à³†à²µà²¿à²¯à²¨à³à²¸à²°à³à²¬à³‹-ಕà³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¨à³à²•à²¾à²‚ಗ" + + "ೊ ಸà³à²µà²¹à²¿à²²à²¿à²¸à²°à²³à³€à²•à³ƒà²¤ ಚೈನೀಸà³à²¸à²¾à²‚ಪà³à²°à²¦à²¾à²¯à²¿à²• ಚೈನೀಸà³" + +var knLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x002d, 0x0045, 0x0066, 0x0075, 0x008a, 0x00a2, + 0x00b7, 0x00d2, 0x00e4, 0x00f9, 0x011a, 0x012f, 0x014d, 0x016b, + 0x0183, 0x0195, 0x01aa, 0x01c5, 0x01da, 0x01f5, 0x020a, 0x0219, + 0x0228, 0x0243, 0x024f, 0x025b, 0x0283, 0x0295, 0x02a7, 0x02bf, + 0x02d1, 0x02e3, 0x02fb, 0x0304, 0x0316, 0x032e, 0x034c, 0x036a, + 0x0388, 0x039a, 0x03b2, 0x03c4, 0x03dc, 0x03f1, 0x0400, 0x0415, + 0x0443, 0x0452, 0x0483, 0x04a4, 0x04b6, 0x04cb, 0x04e6, 0x04f2, + 0x050a, 0x0519, 0x0532, 0x0553, 0x0568, 0x0583, 0x05a1, 0x05b3, + // Entry 40 - 7F + 0x05da, 0x05fb, 0x0619, 0x0628, 0x0644, 0x065f, 0x0668, 0x0686, + 0x069e, 0x06bf, 0x06d4, 0x06ec, 0x0707, 0x0716, 0x0728, 0x0749, + 0x0755, 0x0776, 0x0785, 0x0794, 0x07a9, 0x07b8, 0x07d0, 0x07e8, + 0x07f4, 0x080c, 0x0824, 0x083c, 0x085a, 0x0869, 0x0887, 0x0899, + 0x08a5, 0x08c6, 0x08e5, 0x08fd, 0x090f, 0x0930, 0x0942, 0x0963, + 0x0975, 0x0990, 0x099f, 0x09ab, 0x09c3, 0x09d8, 0x09e4, 0x0a06, + 0x0a18, 0x0a27, 0x0a30, 0x0a6a, 0x0aa1, 0x0ac6, 0x0ad5, 0x0aea, + 0x0afc, 0x0b11, 0x0b20, 0x0b2f, 0x0b4a, 0x0b5c, 0x0b68, 0x0b7a, + // Entry 80 - BF + 0x0b8c, 0x0baa, 0x0bc2, 0x0bda, 0x0be9, 0x0c04, 0x0c16, 0x0c3d, + 0x0c52, 0x0c70, 0x0c7f, 0x0c9b, 0x0caa, 0x0cb9, 0x0cd1, 0x0cf2, + 0x0d04, 0x0d10, 0x0d22, 0x0d40, 0x0d58, 0x0d6a, 0x0d89, 0x0da4, + 0x0dbc, 0x0dd1, 0x0de0, 0x0df2, 0x0e04, 0x0e10, 0x0e2e, 0x0e4c, + 0x0e5e, 0x0e70, 0x0e85, 0x0e94, 0x0ea3, 0x0ebb, 0x0ecd, 0x0eeb, + 0x0efa, 0x0f0f, 0x0f1e, 0x0f42, 0x0f5a, 0x0f6c, 0x0f7e, 0x0f8d, + 0x0fa2, 0x0fb4, 0x0fc9, 0x0fdb, 0x0fe7, 0x0ffc, 0x100b, 0x1023, + 0x1032, 0x1032, 0x104d, 0x105c, 0x1065, 0x1083, 0x1083, 0x1098, + // Entry C0 - FF + 0x1098, 0x10c0, 0x10ee, 0x1100, 0x1115, 0x1124, 0x1124, 0x1136, + 0x1136, 0x114b, 0x114b, 0x114b, 0x1154, 0x1154, 0x1172, 0x1172, + 0x117e, 0x118d, 0x11a2, 0x11a2, 0x11ab, 0x11ab, 0x11ab, 0x11ab, + 0x11b7, 0x11c6, 0x11c6, 0x11cf, 0x11cf, 0x11cf, 0x11f1, 0x1206, + 0x1218, 0x1224, 0x1224, 0x1224, 0x123c, 0x123c, 0x123c, 0x124e, + 0x124e, 0x125a, 0x125a, 0x126f, 0x1287, 0x1287, 0x1299, 0x1299, + 0x12b1, 0x12c3, 0x12c3, 0x12d5, 0x12ea, 0x12f6, 0x1308, 0x131a, + 0x132c, 0x1338, 0x1363, 0x137b, 0x1399, 0x13ab, 0x13c3, 0x13ee, + // Entry 100 - 13F + 0x1406, 0x1406, 0x1437, 0x144f, 0x145b, 0x1470, 0x1479, 0x1491, + 0x14a3, 0x14bb, 0x14ca, 0x14d9, 0x14eb, 0x1516, 0x1516, 0x1528, + 0x153e, 0x155a, 0x156c, 0x156c, 0x1578, 0x1587, 0x1587, 0x15bb, + 0x15d0, 0x15e5, 0x160a, 0x160a, 0x161c, 0x161c, 0x162b, 0x1643, + 0x1643, 0x164f, 0x164f, 0x1671, 0x169c, 0x169c, 0x16c7, 0x16f2, + 0x1713, 0x1716, 0x1725, 0x1725, 0x1731, 0x1743, 0x1743, 0x174f, + 0x1770, 0x1770, 0x1796, 0x17c5, 0x17c5, 0x17d4, 0x17ef, 0x1801, + 0x1813, 0x183b, 0x1860, 0x1860, 0x1860, 0x186c, 0x188a, 0x1896, + // Entry 140 - 17F + 0x1896, 0x18ae, 0x18ae, 0x18c9, 0x18e1, 0x18f0, 0x191b, 0x191b, + 0x1927, 0x1936, 0x1936, 0x194b, 0x195d, 0x195d, 0x195d, 0x1975, + 0x1984, 0x1996, 0x19c1, 0x19e9, 0x19e9, 0x1a0b, 0x1a1a, 0x1a29, + 0x1a35, 0x1a41, 0x1a4d, 0x1a68, 0x1a68, 0x1a7a, 0x1a95, 0x1ab9, + 0x1ab9, 0x1ac5, 0x1ac5, 0x1ad1, 0x1ae9, 0x1b05, 0x1b05, 0x1b05, + 0x1b05, 0x1b1d, 0x1b35, 0x1b5a, 0x1b6c, 0x1b84, 0x1b99, 0x1bbe, + 0x1bbe, 0x1bbe, 0x1bd6, 0x1be8, 0x1bf4, 0x1c00, 0x1c00, 0x1c12, + 0x1c2a, 0x1c3c, 0x1c4b, 0x1c5a, 0x1c66, 0x1c81, 0x1c81, 0x1c81, + // Entry 180 - 1BF + 0x1c81, 0x1c8d, 0x1c8d, 0x1c9c, 0x1ca8, 0x1ca8, 0x1ca8, 0x1cbe, + 0x1cd6, 0x1ce5, 0x1cf1, 0x1d03, 0x1d12, 0x1d12, 0x1d12, 0x1d27, + 0x1d27, 0x1d36, 0x1d48, 0x1d5a, 0x1d6f, 0x1d7e, 0x1d7e, 0x1d8d, + 0x1d9f, 0x1dae, 0x1dba, 0x1dcf, 0x1deb, 0x1e14, 0x1e20, 0x1e41, + 0x1e65, 0x1e71, 0x1e86, 0x1e9e, 0x1eb0, 0x1eb0, 0x1ec5, 0x1ef9, + 0x1f0b, 0x1f26, 0x1f3e, 0x1f3e, 0x1f3e, 0x1f56, 0x1f56, 0x1f56, + 0x1f77, 0x1f7d, 0x1f96, 0x1fa8, 0x1fba, 0x1fcf, 0x1fcf, 0x1fe7, + 0x1fe7, 0x1ff9, 0x2021, 0x2021, 0x2033, 0x204f, 0x205e, 0x208c, + // Entry 1C0 - 1FF + 0x20b0, 0x20d1, 0x20e3, 0x20ef, 0x20fe, 0x212f, 0x214a, 0x215c, + 0x2171, 0x218f, 0x21a1, 0x21a1, 0x21a1, 0x21a1, 0x21cf, 0x21cf, + 0x21ea, 0x21ea, 0x21ea, 0x220b, 0x220b, 0x2248, 0x2254, 0x2254, + 0x2272, 0x228a, 0x22a8, 0x22a8, 0x22a8, 0x22b7, 0x22c9, 0x22c9, + 0x22c9, 0x22c9, 0x22e7, 0x22f0, 0x2302, 0x2314, 0x233f, 0x2351, + 0x2360, 0x2372, 0x2372, 0x2372, 0x237e, 0x2399, 0x23b1, 0x23b1, + 0x23dc, 0x23dc, 0x23e5, 0x23e5, 0x23fa, 0x2428, 0x244d, 0x244d, + 0x246b, 0x2477, 0x2477, 0x2489, 0x2489, 0x2489, 0x24a8, 0x24c1, + // Entry 200 - 23F + 0x24da, 0x24f9, 0x250e, 0x2529, 0x254e, 0x2560, 0x2560, 0x2560, + 0x2572, 0x257e, 0x2599, 0x2599, 0x25ca, 0x25df, 0x25df, 0x25df, + 0x25f1, 0x25fd, 0x260f, 0x261e, 0x2630, 0x263c, 0x2654, 0x2654, + 0x266c, 0x2687, 0x2687, 0x269c, 0x26be, 0x26dd, 0x26dd, 0x26dd, + 0x26dd, 0x26f5, 0x26f5, 0x270a, 0x271c, 0x272b, 0x2746, 0x277b, + 0x2799, 0x27b4, 0x27c9, 0x27d5, 0x27e1, 0x27e1, 0x27e1, 0x27e1, + 0x27e1, 0x27f3, 0x27f3, 0x2802, 0x2802, 0x2811, 0x2820, 0x282c, + 0x284d, 0x284d, 0x2865, 0x2865, 0x286e, 0x2877, 0x2886, 0x2886, + // Entry 240 - 27F + 0x2886, 0x2886, 0x2886, 0x289e, 0x28cb, 0x28cb, 0x28dd, 0x2930, + 0x293c, 0x2989, 0x2995, 0x29d6, 0x29d6, 0x2a07, 0x2a33, 0x2a70, + 0x2aa4, 0x2ad5, 0x2b06, 0x2b56, 0x2b90, 0x2bca, 0x2bca, 0x2bfb, + 0x2c23, 0x2c23, 0x2c3b, 0x2c7b, 0x2cb5, 0x2cd6, 0x2d07, 0x2d2c, + 0x2d54, 0x2d88, +} // Size: 1244 bytes + +var koLangStr string = "" + // Size: 7007 bytes + "아파르어압카즈어아베스타어아프리칸스어아칸어암하ë¼ì–´ì•„ë¼ê³¤ì–´ì•„ëžì–´ì•„삼어아바릭어아ì´ë§ˆë¼ì–´ì•„제르바ì´ìž”어바슈키르어벨ë¼ë£¨ìŠ¤ì–´ë¶ˆê°€ë¦¬ì•„어비슬ë¼ë§ˆì–´" + + "밤바ë¼ì–´ë²µê³¨ì–´í‹°ë² íŠ¸ì–´ë¸Œë¥´íƒ€ë‰´ì–´ë³´ìŠ¤ë‹ˆì•„어카탈로니아어체첸어차모로어코르시카어í¬ë¦¬ì–´ì²´ì½”ì–´êµíšŒ 슬ë¼ë¸Œì–´ì¶”바시어웨ì¼ìŠ¤ì–´ë´ë§ˆí¬ì–´ë…ì¼ì–´ë””베히" + + "어종카어ì—웨어그리스어ì˜ì–´ì—스페란토어스페ì¸ì–´ì—스토니아어바스í¬ì–´íŽ˜ë¥´ì‹œì•„ì–´í’€ë¼ì–´í•€ëž€ë“œì–´í”¼ì§€ì–´íŽ˜ë¡œì–´í”„랑스어서프리지아어아ì¼ëžœë“œì–´ìŠ¤ì½”틀랜" + + "ë“œ 게ì¼ì–´ê°ˆë¦¬ì‹œì•„ì–´ê³¼ë¼ë‹ˆì–´êµ¬ìžë¼íŠ¸ì–´ë§¹í¬ìŠ¤ì–´í•˜ìš°ì‚¬ì–´ížˆë¸Œë¦¬ì–´ížŒë””어히리 모투어í¬ë¡œì•„í‹°ì•„ì–´ì•„ì´í‹°ì–´í—가리어아르메니아어헤레로어ì¸í…Œë¥´ë§êµ¬ì•„" + + " (국제보조어협회)ì¸ë„네시아어ì¸í…Œë¥´ë§êµ¬ì—ì´ê·¸ë³´ì–´ì“°ì´¨ ì´ì–´ì´ëˆ„피아í¬ì–´ì´ë„ì–´ì•„ì´ìŠ¬ëž€ë“œì–´ì´íƒˆë¦¬ì•„ì–´ì´ëˆ…티투트어ì¼ë³¸ì–´ìžë°”어조지아어콩고어키쿠" + + "유어쿠안야마어카ìží어그린란드어캄보디아어칸나다어한국어칸누리어카슈미르어쿠르드어코미어콘월어키르기스어ë¼í‹´ì–´ë£©ì…ˆë¶€ë¥´í¬ì–´ê°„다어림버거어ë§ê°ˆ" + + "ë¼ì–´ë¼ì˜¤ì–´ë¦¬íˆ¬ì•„니아어루바-카탄가어ë¼íŠ¸ë¹„ì•„ì–´ë§ë¼ê°€ì‹œì–´ë§ˆì…œì œë„어마오리어마케ë„니아어ë§ë¼ì–„람어몽고어마ë¼í‹°ì–´ë§ë ˆì´ì–´ëª°íƒ€ì–´ë²„마어나우루어ë¶" + + "부 ì€ë°ë²¨ë ˆì–´ë„¤íŒ”ì–´ëŠë™ê°€ì–´ë„¤ëœëž€ë“œì–´ë…¸ë¥´ì›¨ì´ì–´(니노르스í¬)노르웨ì´ì–´(ë³´í¬ë§)남부 ì€ë°ë²¨ë ˆì–´ë‚˜ë°”호어니안ìžì–´; 치츄어; 츄어오í¬ì–´ì˜¤" + + "지브웨ì´ì–´ì˜¤ë¡œëª¨ì–´ì˜¤ë¦¬ì•¼ì–´ì˜¤ì„¸íŠ¸ì–´íŽ€ìž¡ì–´íŒ”리어í´ëž€ë“œì–´íŒŒìŠˆí† ì–´í¬ë¥´íˆ¬ê°ˆì–´ì¼€ì¶”아어로만시어룬디어루마니아어러시아어르완다어산스í¬ë¦¬íŠ¸ì–´ì‚¬ë¥´ë””니" + + "아어신디어ë¶ë¶€ 사미어산고어스리랑카어슬로바키아어슬로베니아어사모아어쇼나어소ë§ë¦¬ì•„어알바니아어세르비아어시스와티어소토어 (남부)순다어스" + + "웨ë´ì–´ìŠ¤ì™€ížë¦¬ì–´íƒ€ë°€ì–´í…”루구어타지í¬ì–´íƒœêµ­ì–´í‹°ê·¸ë¦¬ëƒì–´íˆ¬ë¥´í¬ë©˜ì–´ì„¸ì¸ ì™€ë‚˜ì–´í†µê°€ì–´í„°í‚¤ì–´ì´ê°€ì–´íƒ€íƒ€ë¥´ì–´íƒ€ížˆí‹°ì–´ìœ„구르어우í¬ë¼ì´ë‚˜ì–´ìš°ë¥´ë‘어우즈" + + "ë² í¬ì–´ë²¤ë‹¤ì–´ë² íŠ¸ë‚¨ì–´ë³¼ë¼í“Œí¬ì–´ì™ˆë¡ ì–´ì›”로프어코사어ì´ë””시어요루바어주앙어중국어줄루어아체어아콜리어아당메어아닥헤어튀니지 ì•„ëžì–´ì•„프리히리어" + + "아그햄어아ì´ëˆ„어아카드어알류트어남부 알타ì´ì–´ê³ ëŒ€ ì˜ì–´ì•™ê°€ì–´ì•„람어아ë¼ìš°ì¹¸ì–´ì•„ë¼íŒŒí˜¸ì–´ì•Œì œë¦¬ ì•„ëžì–´ì•„ë¼ì™€í¬ì–´ëª¨ë¡œì½” ì•„ëžì–´ì´ì§‘트 ì•„ëžì–´" + + "아수어아스투리아어아와히어발루치어발리어바사어바문어고ë§ë¼ì–´ë² ìžì–´ë²°ë°”어베나어바푸트어서부 발로치어호즈푸리어비콜어비니어콤어ì‹ì‹œì¹´ì–´ë¸Œë¼ì§€" + + "어브ë¼í›„ì´ì–´ë³´ë„어아쿠즈어부리아타부기어불루어브린어메둠바어카ë„어카리브어카유가어앗삼어세부아노어치가어치브차어차가타ì´ì–´ì¶”í¬ì–´ë§ˆë¦¬ì–´ì¹˜ëˆ„í¬" + + "어와 ì˜ì–´ í”„ëž‘ìŠ¤ì–´ì˜ í˜¼ì„±ì–´ì´‰í† ì–´ì¹˜íŽ˜ìš°ì–€ì²´ë¡œí‚¤ì–´ìƒ¤ì´ì—”어소ë¼ë‹ˆ 쿠르드어콥트어í¬ë¦¬ë¯¼ 터키어; í¬ë¦¬ë¯¼ 타타르어카슈비아어다코타어다르그" + + "와어타ì´íƒ€ì–´ë¸ë¼ì›¨ì–´ì–´ìŠ¬ë¼ë¸Œì–´ë„그리브어딩카어ìžë¥´ë§ˆì–´ë„그리어저지 소르비아어ë‘ì•Œë¼ì–´ì¤‘세 네ëœëž€ë“œì–´ì¡¸ë¼ í¬ë‹ˆì–´ë“œìœ¨ë¼ì–´ë‹¤ìž¥ê°€ì–´ì— ë¶€ì–´ì´í”½" + + "ì–´ì´ì§‘트어 (고대)ì´ì¹´ì£½ì–´ì—˜ëžŒì–´ì˜ì–´, 중세ì´ì›ë„어팡그어필리핀어í°ì–´ì¤‘세 프랑스어고대 프랑스어ë¶ë¶€ 프리슬란드어ë™ë¶€ 프리슬란드어프리" + + "우리안어가어가가우스어가요어그바야어조로아스터 다리어게ì´ì¦ˆì–´í‚¤ë¦¬ë°”시어길ë¼í‚¤ì–´ì¤‘세 고지 ë…ì¼ì–´ê³ ëŒ€ 고지 ë…ì¼ì–´ê³ ì•„ 콘칸어곤디어고론탈" + + "로어고트어게르보어그리스어, 고대ë…ì¼ì–´(스위스)구시어그위친어하ì´ë‹¤ì–´í•˜ì™€ì´ì–´í”¼ì§€ 힌디어헤리가뇬어하타ì´íŠ¸ì–´ížˆëª¸ì–´ê³ ì§€ 소르비아어후파어" + + "ì´ë°˜ì–´ì´ë¹„비오어ì´ë¡œì½”ì–´ì¸ê·€ì‹œì–´ë¡œë°˜ì–´ì‘곰바어마차메어유대-페르시아어유대-ì•„ë¼ë¹„ì•„ì–´ì¹´ë¼ì¹¼íŒŒí¬ì–´ì»¤ë°”ì¼ì–´ì¹´ì¹œì–´ê¹Œê¼¬í† ë„어캄바어카위어카바르" + + "디어카넴부어티ì–어마콘ë°ì–´í¬ë¦¬ì˜¬ì–´ì½”로어카시어호탄어코ì´ë¼ 친니어코와르어카코어칼렌진어킴분ë‘어코미페르먀í¬ì–´ì½”카니어코스ë¼ì´ì—”ì–´í¬íŽ ë ˆì–´ì¹´" + + "ë¼ì± ì´-발카르어카ë ë¦¬ì•¼ì–´ì¿ ë¥´í¬ì–´ìƒ´ë°œë¼ì–´ë°”피아어콜로그니안어쿠믹어쿠테네어ë¼ë””노어랑기어ë¼í•œë‹¤ì–´ëžŒë°”어레즈기안어ë§êµ¬ì•„ 프랑카 노바ë¼ì½”타" + + "어몽구어로지어ë¶ë¶€ 루리어루바-룰루아어루ì´ì„¸ë…¸ì–´ë£¬ë‹¤ì–´ë£¨ì˜¤ì–´ë£¨ìƒ¤ì´ì–´ë£¨ì•¼ì–´ë§ˆë‘ë¼ì–´ë§ˆíŒŒì–´ë§ˆê°€ížˆë§ˆì´í‹¸ë¦¬ë§ˆì¹´ì‚¬ì–´ë§Œë”©ê³ ì–´ë§ˆì‚¬ì´ì–´ë§ˆë°”어모í¬ìƒ¤" + + "어만다르어멘ë°ì–´ë©”루어모리스얀어아ì¼ëžœë“œì–´, 중세마í¬í›„와-메토어메타어미í¬ë§¥ì–´ë¯¸ë‚­ì¹´ë°”우만주어마니푸리어모호í¬ì–´ëª¨ì‹œì–´ì„œë¶€ 마리어문당어다" + + "중 언어í¬ë¦¬í¬ì–´ë¯¸ëž€ë°ì–´ë§ˆë¥´ì™€ë¦¬ì–´ë¯¸ì˜ˆë„¤ì–´ì—˜ì¦ˆì•¼ì–´ë§ˆìž”ë°ë¼ë‹ˆì–´ë‚˜í´ë¦¬ì–´ë‚˜ë§ˆì–´ì €ì§€ ë…ì¼ì–´ë„¤ì™€ë¥´ì–´ë‹ˆì•„스어니웨언어í¬ì™€ì‹œì˜¤ì–´ëŠê¸°ì— ë³¸ì–´ë…¸ê°€ì´ì–´" + + "노르웨ì´, 고대ì‘코어소토어 (ë¶ë¶€)누ì—르어네와르어 (ê³ ì „)니암웨지어니안콜어뉴로어ëŠì§€ë§ˆì–´ì˜¤ì„¸ì´ì§€ì–´í„°í‚¤ì–´, 오스만íŒê°€ì‹œë‚œì–´íŒ”레비어" + + "팜팡가어파피아먼토어파ë¼ìš°ì•ˆì–´ê³ ëŒ€ 페르시아어페니키아어í°í‹±ì–´í¼íŽ˜ì´ì–´ê³ ëŒ€ 프로방스어키체어ë¼ìžìŠ¤íƒ„ì–´ë¼íŒŒë‰´ì´ë¼ë¡œí†µê°€ì–´ë¡¬ë³´ì–´ì§‘시어루신어아" + + "로마니아어르와어산다웨어야í트어사마리아 ì•„ëžì–´ì‚¼ë¶€ë£¨ì–´ì‚¬ì‚¬í¬ì–´ì‚°íƒˆë¦¬ì–´ëŠê°ë°”ì´ì–´ìƒêµ¬ì–´ì‹œì¹ ë¦¬ì•„어스코틀랜드어남부 쿠르드어세네카어세나어셀" + + "쿠프어코ì´ì•¼ë³´ë¡œ 세니어아ì¼ëžœë“œ, 고대타셸히트어샨어차디언 ì•„ë¼ë¹„아어시다모어남부 사미어룰레 사미어ì´ë‚˜ë¦¬ 사미어스콜트 사미어소닌케어" + + "소그디엔어스ë¼ë‚œ 통가어세레르어사호어수쿠마족어수수어수메르어코모로어시리아어 (ê³ ì „)시리아어팀니어테조어테레노어테툼어티그레어티비어토켈" + + "ë¼ìš°ì œë„어차후르어í´ë§ì˜¨ì–´í‹€ë§ê¹ƒì¡±ì–´íƒˆë¦¬ì‰¬ì–´íƒ€ë§ˆì„¹ì–´í†µê°€ì–´ (니아살랜드)í† í¬ í”¼ì‹ ì–´íƒ€ë¡œì½”ì–´íŠ¸ì‹¬ì‹œì•ˆì–´íˆ¼ë¶€ì¹´ì–´íˆ¬ë°œë£¨ì–´íƒ€ì‚¬ì™€í¬ì–´íˆ¬ë¹„니안어" + + "중앙 모로코 타마지트어우드ë§íŠ¸ì–´ìœ ê°€ë¦¬í‹±ì–´ìœ¤ë²ˆë‘어어근바ì´ì–´ë³´í‹±ì–´ë¶„조어월저어와ë¼ëª¨ì–´ì™€ë¼ì´ì–´ì™€ì‡¼ì–´ì™ˆí”¼ë¦¬ì–´ì¹¼ë¯¸í¬ì–´ì†Œê°€ì–´ì•¼ì˜¤ì¡±ì–´ì–페세어" + + "양본어옘바어사í¬í…Œí¬ì–´ë¸”리스 심볼제나가어표준 모로코 타마지트어주니어언어 관련 ë‚´ìš© ì—†ìŒìžìžì–´í˜„대 표준 ì•„ëžì–´ê³ ì§€ ë…ì¼ì–´(스위스)" + + "ì˜ì–´(호주)플ë¼ë§ì–´ëª°ë„바어세르비아-í¬ë¡œì•„티아어콩고 스와ížë¦¬ì–´" + +var koLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0018, 0x0027, 0x0039, 0x0042, 0x004e, 0x005a, + 0x0063, 0x006c, 0x0078, 0x0087, 0x009c, 0x00ab, 0x00ba, 0x00c9, + 0x00d8, 0x00e4, 0x00ed, 0x00f9, 0x0108, 0x0117, 0x0129, 0x0132, + 0x013e, 0x014d, 0x0156, 0x015f, 0x0172, 0x017e, 0x018a, 0x0196, + 0x019f, 0x01ab, 0x01b4, 0x01bd, 0x01c9, 0x01cf, 0x01e1, 0x01ed, + 0x01ff, 0x020b, 0x021a, 0x0223, 0x022f, 0x0238, 0x0241, 0x024d, + 0x025f, 0x026e, 0x0287, 0x0296, 0x02a2, 0x02b1, 0x02bd, 0x02c9, + 0x02d5, 0x02de, 0x02ee, 0x0300, 0x030c, 0x0318, 0x032a, 0x0336, + // Entry 40 - 7F + 0x0360, 0x0372, 0x0384, 0x0390, 0x039d, 0x03af, 0x03b8, 0x03ca, + 0x03d9, 0x03eb, 0x03f4, 0x03fd, 0x0409, 0x0412, 0x041e, 0x042d, + 0x0439, 0x0448, 0x0457, 0x0463, 0x046c, 0x0478, 0x0487, 0x0493, + 0x049c, 0x04a5, 0x04b4, 0x04bd, 0x04cf, 0x04d8, 0x04e4, 0x04f0, + 0x04f9, 0x050b, 0x051e, 0x052d, 0x053c, 0x054b, 0x0557, 0x0569, + 0x0578, 0x0581, 0x058d, 0x0599, 0x05a2, 0x05ab, 0x05b7, 0x05cd, + 0x05d6, 0x05e2, 0x05f1, 0x0611, 0x062b, 0x0641, 0x064d, 0x066c, + 0x0675, 0x0687, 0x0693, 0x069f, 0x06ab, 0x06b4, 0x06bd, 0x06c9, + // Entry 80 - BF + 0x06d5, 0x06e4, 0x06f0, 0x06fc, 0x0705, 0x0714, 0x0720, 0x072c, + 0x073e, 0x0750, 0x0759, 0x0769, 0x0772, 0x0781, 0x0793, 0x07a5, + 0x07b1, 0x07ba, 0x07c9, 0x07d8, 0x07e7, 0x07f6, 0x0808, 0x0811, + 0x081d, 0x082c, 0x0835, 0x0841, 0x084d, 0x0856, 0x0865, 0x0874, + 0x0883, 0x088c, 0x0895, 0x089e, 0x08aa, 0x08b6, 0x08c2, 0x08d4, + 0x08e0, 0x08ef, 0x08f8, 0x0904, 0x0913, 0x091c, 0x0928, 0x0931, + 0x093d, 0x0949, 0x0952, 0x095b, 0x0964, 0x096d, 0x0979, 0x0985, + 0x0991, 0x09a4, 0x09b6, 0x09c2, 0x09ce, 0x09da, 0x09da, 0x09e6, + // Entry C0 - FF + 0x09e6, 0x09f9, 0x0a06, 0x0a0f, 0x0a18, 0x0a27, 0x0a27, 0x0a36, + 0x0a49, 0x0a58, 0x0a6b, 0x0a7e, 0x0a87, 0x0a87, 0x0a99, 0x0a99, + 0x0aa5, 0x0ab1, 0x0aba, 0x0aba, 0x0ac3, 0x0acc, 0x0acc, 0x0ad8, + 0x0ae1, 0x0aea, 0x0aea, 0x0af3, 0x0aff, 0x0aff, 0x0b12, 0x0b21, + 0x0b2a, 0x0b33, 0x0b33, 0x0b39, 0x0b45, 0x0b45, 0x0b45, 0x0b51, + 0x0b60, 0x0b69, 0x0b75, 0x0b81, 0x0b8a, 0x0b93, 0x0b9c, 0x0ba8, + 0x0bb1, 0x0bbd, 0x0bc9, 0x0bd2, 0x0be1, 0x0bea, 0x0bf6, 0x0c05, + 0x0c0e, 0x0c17, 0x0c47, 0x0c50, 0x0c5c, 0x0c68, 0x0c74, 0x0c8a, + // Entry 100 - 13F + 0x0c93, 0x0c93, 0x0cbe, 0x0ccd, 0x0cd9, 0x0ce8, 0x0cf4, 0x0d03, + 0x0d0f, 0x0d1e, 0x0d27, 0x0d33, 0x0d3f, 0x0d55, 0x0d55, 0x0d61, + 0x0d77, 0x0d87, 0x0d93, 0x0d9f, 0x0da8, 0x0db1, 0x0db1, 0x0dc6, + 0x0dd2, 0x0ddb, 0x0de9, 0x0de9, 0x0df5, 0x0df5, 0x0dfe, 0x0e0a, + 0x0e0a, 0x0e10, 0x0e10, 0x0e23, 0x0e36, 0x0e36, 0x0e4f, 0x0e68, + 0x0e7a, 0x0e80, 0x0e8f, 0x0e8f, 0x0e98, 0x0ea4, 0x0ebd, 0x0ec9, + 0x0ed8, 0x0ee4, 0x0efb, 0x0f12, 0x0f22, 0x0f2b, 0x0f3a, 0x0f43, + 0x0f4f, 0x0f63, 0x0f77, 0x0f77, 0x0f77, 0x0f80, 0x0f8c, 0x0f98, + // Entry 140 - 17F + 0x0f98, 0x0fa4, 0x0fb4, 0x0fc3, 0x0fd2, 0x0fdb, 0x0ff1, 0x0ff1, + 0x0ffa, 0x1003, 0x1012, 0x101e, 0x102a, 0x102a, 0x102a, 0x1033, + 0x103f, 0x104b, 0x1061, 0x1077, 0x1077, 0x1089, 0x1095, 0x109e, + 0x10ad, 0x10b6, 0x10bf, 0x10ce, 0x10da, 0x10e3, 0x10ef, 0x10fb, + 0x10fb, 0x1104, 0x1104, 0x110d, 0x1116, 0x1129, 0x1135, 0x1135, + 0x113e, 0x114a, 0x1156, 0x116b, 0x1177, 0x1189, 0x1195, 0x11ae, + 0x11ae, 0x11ae, 0x11bd, 0x11c9, 0x11d5, 0x11e1, 0x11f3, 0x11fc, + 0x1208, 0x1214, 0x121d, 0x1229, 0x1232, 0x1241, 0x125b, 0x125b, + // Entry 180 - 1BF + 0x125b, 0x1267, 0x1267, 0x1270, 0x1279, 0x1289, 0x1289, 0x129c, + 0x12ab, 0x12b4, 0x12bd, 0x12c9, 0x12d2, 0x12d2, 0x12d2, 0x12de, + 0x12e7, 0x12f0, 0x12fc, 0x1308, 0x1314, 0x1320, 0x1329, 0x1335, + 0x1341, 0x134a, 0x1353, 0x1362, 0x1379, 0x138f, 0x1398, 0x13a4, + 0x13b3, 0x13bc, 0x13cb, 0x13d7, 0x13e0, 0x13f0, 0x13f9, 0x1406, + 0x1412, 0x141e, 0x142d, 0x142d, 0x1439, 0x1445, 0x1457, 0x1457, + 0x1463, 0x146c, 0x147c, 0x1488, 0x1494, 0x14a0, 0x14a0, 0x14af, + 0x14be, 0x14ca, 0x14de, 0x14de, 0x14e7, 0x14f9, 0x1505, 0x151a, + // Entry 1C0 - 1FF + 0x1529, 0x1535, 0x153e, 0x154a, 0x1559, 0x156d, 0x157c, 0x1588, + 0x1594, 0x15a6, 0x15b5, 0x15b5, 0x15b5, 0x15b5, 0x15cb, 0x15cb, + 0x15da, 0x15da, 0x15e3, 0x15ef, 0x15ef, 0x1605, 0x160e, 0x160e, + 0x161d, 0x1629, 0x1638, 0x1638, 0x1638, 0x1641, 0x164a, 0x164a, + 0x1653, 0x1653, 0x1665, 0x166e, 0x167a, 0x1686, 0x169c, 0x16a8, + 0x16b4, 0x16c0, 0x16c0, 0x16cf, 0x16d8, 0x16e7, 0x16f9, 0x16f9, + 0x170c, 0x1718, 0x1721, 0x1721, 0x172d, 0x1746, 0x175a, 0x175a, + 0x1769, 0x176f, 0x1788, 0x1794, 0x1794, 0x1794, 0x17a4, 0x17b4, + // Entry 200 - 23F + 0x17c7, 0x17da, 0x17e6, 0x17f5, 0x1808, 0x1814, 0x181d, 0x181d, + 0x182c, 0x1835, 0x1841, 0x184d, 0x1862, 0x186e, 0x186e, 0x186e, + 0x1877, 0x1880, 0x188c, 0x1895, 0x18a1, 0x18aa, 0x18bf, 0x18cb, + 0x18d7, 0x18e6, 0x18f2, 0x18fe, 0x1919, 0x1929, 0x1929, 0x1935, + 0x1935, 0x1944, 0x1944, 0x1950, 0x195c, 0x196b, 0x197a, 0x199a, + 0x19a9, 0x19b8, 0x19c4, 0x19ca, 0x19d3, 0x19d3, 0x19d3, 0x19d3, + 0x19d3, 0x19dc, 0x19dc, 0x19e5, 0x19ee, 0x19fa, 0x1a06, 0x1a0f, + 0x1a1b, 0x1a1b, 0x1a27, 0x1a27, 0x1a30, 0x1a3c, 0x1a48, 0x1a51, + // Entry 240 - 27F + 0x1a5a, 0x1a5a, 0x1a5a, 0x1a69, 0x1a79, 0x1a79, 0x1a85, 0x1aa5, + 0x1aae, 0x1ac9, 0x1ad2, 0x1ae9, 0x1ae9, 0x1ae9, 0x1b04, 0x1b12, + 0x1b12, 0x1b12, 0x1b12, 0x1b12, 0x1b12, 0x1b12, 0x1b12, 0x1b12, + 0x1b12, 0x1b12, 0x1b1e, 0x1b1e, 0x1b1e, 0x1b2a, 0x1b49, 0x1b5f, +} // Size: 1240 bytes + +var kyLangStr string = "" + // Size: 3906 bytes + "абхазчаафрикаанчааканчаамхарчаарабчааÑÑамчаазербайжанчабашкырчабеларуÑча" + + "болгарчабамбарадабангладешчетибетчебретончобоÑнийчекаталанчачеченчекорÑ" + + "иканчачехчечувашчауелшчедатчанемиÑчежонгучаÑбечегрекчеанглиÑчеÑÑперанто" + + "иÑпанчаÑÑтончобаÑкчафарÑчафинчефижичефароÑчефранцузчабатыш фризчеирланд" + + "чагалиÑиÑчагуарашгужаратчаманкÑычахауÑачаивриттехиндичехорватчагаитичем" + + "ажарчаармÑнчаиндонезчеигбочоноÑучаиÑландчаиталиÑнчаинуктитуттаÑпончожав" + + "анизчегрузинчекикуйичеказакчакалаалиÑутчакмерчеканнадачакорейчекашмирче" + + "курдчакорнишчекыргызчалатынчалюкÑембургчагандачалингалачалаочолитовчолу" + + "ба-катангачалатышчамалагаÑчамаоричемакедончомалайаламчамоңголчомаратиче" + + "малайчамалтизчебурмачатүндүк ндыбелченепалчаголландчанорвежче (ÐинорÑк)" + + "норвежче (Букмал)оромочоориÑчапунжабичеполÑкчапашточопортугалчакечуачар" + + "оманшчарундичерумынчаоруÑчаруандачаÑанÑкритчеÑиндхичетүндүк ÑамичеÑанго" + + "чоÑингалачаÑловакчаÑловенчешоначаÑомаличеалбанчаÑербчеÑеÑотоÑунданчашве" + + "дчеÑуахиличетамилчетелугучатажикчетайчатигриниачатүркмөнчөтонгачатүркчө" + + "татарчауйгурчаукраинчеурдучаөзбекчевьетнамчауолофчокоÑачаидишчейорубача" + + "кытайчазулучаагемчемапучедеаÑучабембачабеначачыгыш балучичебододочигача" + + "черокичеÑорани курдтаитачазамрачатөмөнкү Ñорбианчадуалачажола-фоничеÑмб" + + "учафилипиногагаузчанемиÑче (ШвейцариÑ)гуÑичегавайчажогорку Ñорбианчанго" + + "мбачамачамечекабылчакамбачамакондечекабувердичекойра чиничекаленжичеком" + + "и-пермÑкчаконканичешамабалачабафиÑчалангичелакотачатүндүк луричелуочолу" + + "хиÑчамаÑайчамеручамориÑианчамакуачаметөчөмохаукчамундангчамазандераниче" + + "намачатөмөнкү немиÑчекваÑиочонкочонуерченыйанколчокичечеромбочоруачаÑам" + + "буручаÑангучатүштүк курдчаÑеначакойраборо Ñенничеташелитчетүштүк Ñаамич" + + "елөлө Ñаамичеинари ÑаамичеÑколт ÑаамичетеÑочоклингончотаÑабакчаборборду" + + "к ÐÑ‚Ð»Ð°Ñ Ñ‚Ð°Ð¼Ð°Ð·Ð¸Ñ‚Ñ‡ÐµÐ±ÐµÐ»Ð³Ð¸Ñиз тилдевайичевунжочоворлпиричеÑогачамарокко там" + + "азигт адабий тилиндетилдик мазмун жоказыркы адабий араб тилиндеиÑпанча " + + "(Европа)төмөнкү ÑакÑончофламандчапортугалча (Европа)молдованчаÑерб-хорва" + + "тконго Ñуахаличекытайча (жөнөкөйлөштүрүлгөн)кытайча (Ñалттуу)" + +var kyLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000e, 0x000e, 0x0022, 0x002e, 0x003c, 0x003c, + 0x0048, 0x0056, 0x0056, 0x0056, 0x006e, 0x007e, 0x0090, 0x00a0, + 0x00a0, 0x00b2, 0x00c8, 0x00d6, 0x00e6, 0x00f6, 0x0108, 0x0116, + 0x0116, 0x012a, 0x012a, 0x0134, 0x0134, 0x0142, 0x014e, 0x0158, + 0x0166, 0x0166, 0x0174, 0x017e, 0x018a, 0x019a, 0x01ac, 0x01ba, + 0x01c8, 0x01d4, 0x01e0, 0x01e0, 0x01ea, 0x01f6, 0x0204, 0x0216, + 0x022d, 0x023d, 0x023d, 0x024f, 0x025b, 0x026d, 0x027d, 0x028b, + 0x0299, 0x02a7, 0x02a7, 0x02b7, 0x02c5, 0x02d3, 0x02e1, 0x02e1, + // Entry 40 - 7F + 0x02e1, 0x02f3, 0x02f3, 0x02ff, 0x030b, 0x030b, 0x030b, 0x031b, + 0x032d, 0x0343, 0x034f, 0x0361, 0x0371, 0x0371, 0x0381, 0x0381, + 0x038f, 0x03a7, 0x03b3, 0x03c5, 0x03d3, 0x03d3, 0x03e3, 0x03ef, + 0x03ef, 0x03ff, 0x040f, 0x041d, 0x0435, 0x0443, 0x0443, 0x0455, + 0x045f, 0x046d, 0x0488, 0x0496, 0x04a8, 0x04a8, 0x04b6, 0x04c8, + 0x04de, 0x04ee, 0x04fe, 0x050c, 0x051c, 0x052a, 0x052a, 0x0547, + 0x0555, 0x0555, 0x0567, 0x0588, 0x05a7, 0x05a7, 0x05a7, 0x05a7, + 0x05a7, 0x05a7, 0x05b5, 0x05c1, 0x05c1, 0x05d3, 0x05d3, 0x05e1, + // Entry 80 - BF + 0x05ef, 0x0603, 0x0611, 0x0621, 0x062f, 0x063d, 0x0649, 0x0659, + 0x066d, 0x066d, 0x067d, 0x0696, 0x06a4, 0x06b6, 0x06c6, 0x06d6, + 0x06d6, 0x06e2, 0x06f2, 0x0700, 0x070c, 0x070c, 0x0718, 0x0728, + 0x0734, 0x0746, 0x0754, 0x0764, 0x0772, 0x077c, 0x0790, 0x07a2, + 0x07a2, 0x07b0, 0x07bc, 0x07bc, 0x07ca, 0x07ca, 0x07d8, 0x07e8, + 0x07f4, 0x0802, 0x0802, 0x0814, 0x0814, 0x0814, 0x0822, 0x082e, + 0x083a, 0x084a, 0x084a, 0x0858, 0x0864, 0x0864, 0x0864, 0x0864, + 0x0864, 0x0864, 0x0864, 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, + // Entry C0 - FF + 0x0870, 0x0870, 0x0870, 0x0870, 0x0870, 0x0880, 0x0880, 0x0880, + 0x0880, 0x0880, 0x0880, 0x0880, 0x088a, 0x088a, 0x088a, 0x088a, + 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, 0x088a, + 0x088a, 0x0898, 0x0898, 0x08a4, 0x08a4, 0x08a4, 0x08bf, 0x08bf, + 0x08bf, 0x08bf, 0x08bf, 0x08bf, 0x08bf, 0x08bf, 0x08bf, 0x08bf, + 0x08bf, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, + 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08cb, 0x08d7, 0x08d7, 0x08d7, + 0x08d7, 0x08d7, 0x08d7, 0x08d7, 0x08d7, 0x08e7, 0x08e7, 0x08fc, + // Entry 100 - 13F + 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x090a, 0x090a, + 0x090a, 0x090a, 0x090a, 0x0918, 0x0918, 0x0939, 0x0939, 0x0947, + 0x0947, 0x095c, 0x095c, 0x095c, 0x0968, 0x0968, 0x0968, 0x0968, + 0x0968, 0x0968, 0x0968, 0x0968, 0x0968, 0x0968, 0x0968, 0x0978, + 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, + 0x0978, 0x0978, 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, + 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, 0x0988, + 0x0988, 0x0988, 0x09ab, 0x09ab, 0x09ab, 0x09b7, 0x09b7, 0x09b7, + // Entry 140 - 17F + 0x09b7, 0x09c5, 0x09c5, 0x09c5, 0x09c5, 0x09c5, 0x09e6, 0x09e6, + 0x09e6, 0x09e6, 0x09e6, 0x09e6, 0x09e6, 0x09e6, 0x09e6, 0x09e6, + 0x09f6, 0x0a06, 0x0a06, 0x0a06, 0x0a06, 0x0a06, 0x0a14, 0x0a14, + 0x0a14, 0x0a22, 0x0a22, 0x0a22, 0x0a22, 0x0a22, 0x0a34, 0x0a4a, + 0x0a4a, 0x0a4a, 0x0a4a, 0x0a4a, 0x0a4a, 0x0a61, 0x0a61, 0x0a61, + 0x0a61, 0x0a73, 0x0a73, 0x0a8c, 0x0a9e, 0x0a9e, 0x0a9e, 0x0a9e, + 0x0a9e, 0x0a9e, 0x0a9e, 0x0a9e, 0x0ab2, 0x0ac0, 0x0ac0, 0x0ac0, + 0x0ac0, 0x0ac0, 0x0ace, 0x0ace, 0x0ace, 0x0ace, 0x0ace, 0x0ace, + // Entry 180 - 1BF + 0x0ace, 0x0ade, 0x0ade, 0x0ade, 0x0ade, 0x0af7, 0x0af7, 0x0af7, + 0x0af7, 0x0af7, 0x0b01, 0x0b01, 0x0b0f, 0x0b0f, 0x0b0f, 0x0b0f, + 0x0b0f, 0x0b0f, 0x0b0f, 0x0b0f, 0x0b0f, 0x0b1d, 0x0b1d, 0x0b1d, + 0x0b1d, 0x0b1d, 0x0b29, 0x0b3d, 0x0b3d, 0x0b4b, 0x0b57, 0x0b57, + 0x0b57, 0x0b57, 0x0b57, 0x0b67, 0x0b67, 0x0b67, 0x0b79, 0x0b79, + 0x0b79, 0x0b79, 0x0b79, 0x0b79, 0x0b79, 0x0b79, 0x0b93, 0x0b93, + 0x0b93, 0x0b9f, 0x0bbc, 0x0bbc, 0x0bbc, 0x0bbc, 0x0bbc, 0x0bcc, + 0x0bcc, 0x0bcc, 0x0bcc, 0x0bcc, 0x0bd6, 0x0bd6, 0x0be2, 0x0be2, + // Entry 1C0 - 1FF + 0x0be2, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, + 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, + 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0bf6, 0x0c02, 0x0c02, + 0x0c02, 0x0c02, 0x0c02, 0x0c02, 0x0c02, 0x0c10, 0x0c10, 0x0c10, + 0x0c10, 0x0c10, 0x0c10, 0x0c1a, 0x0c1a, 0x0c1a, 0x0c1a, 0x0c2c, + 0x0c2c, 0x0c2c, 0x0c2c, 0x0c2c, 0x0c3a, 0x0c3a, 0x0c3a, 0x0c3a, + 0x0c53, 0x0c53, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c80, 0x0c80, 0x0c80, + 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0cad, 0x0cc4, + // Entry 200 - 23F + 0x0cdd, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, + 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, 0x0cf6, + 0x0cf6, 0x0d02, 0x0d02, 0x0d02, 0x0d02, 0x0d02, 0x0d02, 0x0d02, + 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d14, + 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d14, 0x0d26, 0x0d26, 0x0d56, + 0x0d56, 0x0d56, 0x0d56, 0x0d71, 0x0d7d, 0x0d7d, 0x0d7d, 0x0d7d, + 0x0d7d, 0x0d7d, 0x0d7d, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, 0x0d8b, + 0x0d9f, 0x0d9f, 0x0d9f, 0x0d9f, 0x0dab, 0x0dab, 0x0dab, 0x0dab, + // Entry 240 - 27F + 0x0dab, 0x0dab, 0x0dab, 0x0dab, 0x0dab, 0x0dab, 0x0dab, 0x0de6, + 0x0de6, 0x0e06, 0x0e06, 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e37, + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e54, 0x0e54, 0x0e54, 0x0e54, + 0x0e54, 0x0e73, 0x0e85, 0x0e85, 0x0ea8, 0x0ebc, 0x0ed1, 0x0eee, + 0x0f23, 0x0f42, +} // Size: 1244 bytes + +var loLangStr string = "" + // Size: 10775 bytes + "ອະຟາà»àº­àºšàº„າຊຽນອາເວັສà»àº•àº™àº­àº²àºŸàº£àº´àºàº²àº™àº­àº²àºàº²àº™àº­àº³àº®àº²àº£àº´àºàº­àº²àº£àº²à»‚àºà»€àº™àº±àº”ອາຣັບອັສຊາມີສອາວາຣິàºàº­" + + "າàºàº¡àº²àº¥àº²àº­àº²à»€àºŠàºµà»„ບຈານິບາຣàºàºµà»€àºšàº¥àº²àº£àº±àºªàºŠàº½àº™àºšàº±àº‡àºàº²àº£àº½àº™àºšàº´àºªàº¥àº°àº¡àº²àºšàº²àº¡àºšàº²àº£àº²à»€àºšàº±àº‡àºàº²àº¥àºµàº—ິເບທັນເ" + + "ບຣຕັນບອສນຽນຄາຕາລານຊີເຄນຊາມà»à»‚ຣຄà»àºŠàº´àºàº²àº„ີເຊàºà»‚ບດສລາວິàºàºŠàº¹àº§àº²àºŠà»€àº§àº§à»àº”ນິຊເຢàºàº¥àº°àº¡àº±àº™" + + "ດີວີຮີດີຊອງຄາອິວາàºàº£àºµàºàº­àº±àº‡àºàº´àº”ເອສປາàºàºªàº°à»àº›àº™àº™àº´àºŠà»€àº­àºªà»‚ຕນຽນບັສàºàºµà»€àº›àºµàºŠàº½àº™àºŸàº¹àº¥àº²àºŸàº´àº™àº™àº´àºŠ" + + "ຟິຈຽນຟາໂຣສàºàº£àº±à»ˆàº‡àºŸàº£àº´àºŠàº½àº™ ຕາເວັນຕົàºà»„ອຣິສສະàºàº±àº­àº”ເàºàº¥àº´àºàºàº²àº¥àº´àºŠàº½àº™àºàº»àº§àº£àº²àº™àºµàºàº¹àºˆàº²àº£àº²àº•àº´à»" + + "ມງຊ໌ເຮົາຊາຮີບຣິວຮິນດິຮິຣິໂມຕູໂຄຣເອທຽນໄຮຕຽນຮັງàºàº²àº£àº½àº™àº­àº²à»€àº¡àº™àº½àº™à»€àº®àº´àº®àº´à»‚ຣອິນເຕີ" + + "ລິງລົວອິນໂດເນຊຽນອິນເຕີລິງàºàº£àºµàº­àº´àºà»‚ບເຊສວàºàº¢àºµàº­àº´àº™àº™àº¹àº›àº½àºàº­àºµà»‚ດໄອສà»àº¥àº™àº”ິàºàº­àº´àº•àº²àº¥àº½àº™àº­àº´" + + "ນນຸàºàº•àº´àº•àº±àº”àºàºµà»ˆàº›àº¸à»ˆàº™àºˆàº²à»àº§àº™àºµàºªàºˆà»àºˆàº½àº™àº„ອງໂàºàº„ິຄູຢຸàºàº§àº™àºàº²àº¡àº²àº„າຊັàºàºàº£àºµàº™à»àº¥àº™àº¥àº´àº”ຂະເà»àº™àº„ັນນ" + + "າດາເàºàº»àº²àº«àº¥àºµàº„ານຸລິຄາສເມàºàº£àº´à»€àº„ີດິສໂຄມິຄà»àº™àº´àºŠà»€àºàºàºàºµàºªàº¥àº²àº•àº´àº™àº¥àº±àºà»€àºŠàº¡àºšàº§àºàºàº´àºŠà»àºàº™àº”າລິມ" + + "ເບີàºàºµàºŠàº¥àº´àº‡àºàº²àº¥àº²àº¥àº²àº§àº¥àº´àº—ົວນຽນລູບາ-ຄາຕັງàºàº²àº¥àº±àº”ວຽນມາລາàºàº²àºªàºŠàºµàº¡àº²àºŠàº²àº™à»€àº¥àº±àº”ມາວຣິà»àº¡àº±àºà»€" + + "ຊໂດນຽນມາເລອາລຳມອງໂàºà»€àº¥àºàº¡àº²àº£àº²àº—ີມາເລມອລທີສມຽນມານາຢູລູເອັນເດເບເລເໜືອເນປາລີເ" + + "ອັນດອງàºàº²àº”ັຊນà»à»€àº§àºˆàº½àº™ ນີນອàºàº™à»à»€àº§àºˆàº½àº™ ບັອàºàº¡àº­àº¥àº™àºµàºšàºµàº¥àºµà»ƒàº•à»‰àº™àº²àº§àº²à»‚ຈນານຈາອັອàºàºŠàºµàº•àº²àº™à»‚ອ" + + "ຈິບວາໂອໂຣໂມໂອຣິຢາອອດເຊຕິàºàº›àº±àº™àºˆàº²àºšàºµàº›àº²àº¥àºµà»‚ປລິຊປາສໂຕປອàºàº•àº¸àºàºàº´àºªàº„ີຊົວໂຣà»àº¡àº™àºŠà»Œàº£àº¸àº™" + + "ດິໂຣà»àº¡àº™àº½àº™àº¥àº±àº”ເຊàºàº„ິນຢາວານດາສັນສະàºàº£àº´àº”ສາດີນຽນສິນທິຊາມິເໜືອà»àºŠàº‡à»‚àºàºªàº´àº™àº«àº²àº¥àº²àºªàº°à»‚ລ" + + "à»àº§àº±àºàºªàº°à»‚ລເວນຽນຊາມົວໂຊນາໂຊມາລີອານບານຽນເຊີບຽນຊຣາຕິໂຊໂທໃຕ້ຊຸນà»àº”ນນີສສະວີດິຊ" + + "ຊວາຮີລິທາມິລເຕລູàºàº¹àº—າຈິàºà»„ທຕິàºàº£àº´àº™àº¢àº²à»€àº—ີàºà»€àº¡àº±àº™à»€àº•àºªàº°àº§àº²àº™àº²àº—ອງàºàº²àº™à»€àº—ີຄິຊເຕຊອງàºàº²àº—າ" + + "ທາຕາຮີຕຽນອຸàºà»€àº„ີຢູເຄຣນຽນອູຣດູອຸສເບàºà»€àº§àº™àº”າຫວຽດນາມໂວລາພັàºàº§à»àº¥àº¹àº¡àº§à»àº¥àº­àºšà»‚ຮຊາຢິວ" + + "ໂຢຣູບາຊວາງຈີນຊູລູà»àº­àº±àºàºŠàºµà»€àº™àº±àºªàº­àº²à»‚ຄລີອາà»àº”ງມີເອດີຮິà»àº­àºŸàºµàº®àºµàº¥àºµàº­àº²à»€àº®àº±àº¡à»„ອນູອັàºàºàº²àº”" + + "ຽມອາເລີດອານໄຕໃຕ້ອັງàºàº´àº”ໂບຮານà»àº­àº™àºˆàºµàºàº²àº­àº²àº¥àº²àº¡àº´àºàº­àº²àº£àº»àº§àº„ານຽນອາຣາປາໂຮອາຣາà»àº§àºàº­àº²àºŠàº¹" + + "ອັສຕູຮຽນອາວາຮິບາລູຊີບາລີເນັດບາຊາບາມຸນໂຄມາລາບີເຈເບັມບາບີນາບາຟັດບາໂລຈີ ພ" + + "າàºàº•àº²à»€àº§àº±àº™àº•àº»àºà»‚ບພູຣິບີຄອນບີນີàºàº»àº¡àºŠàº´àºàºŠàº´àºàº²àºšàº£àº²à»‚ບດູອາຄຸດບູຣຽດບູຈີເນັດບູລູບລິນເ" + + "ມດູມບາà»àº„ດໂດຄາຣິບຄາຢູàºàº²àº­àº²àº”à»àºŠàº¡àºŠàºµàºšàº¹à»‚ນຊີàºàº²àºŠàº´àºšàºŠàº²àºŠàº²àºàº²à»„ຕຊູເàºàº”ມາຣິຊີນຸàºàºˆàº²àºàº­àº™àºŠàº­" + + "àºàº•àº´àº§àºŠàºµàºžàº´àº§àº¢àº²àº™àºŠàºµà»‚ຣàºàºµàºŠàºµà»€àº¢àº™àº™àºµà»‚ຊຣານິ ເຄີດິຊຄອບຕິàºàº„ຣີເມນເຕີຄິຊàºàº²àºŠàº¹àºšàº½àº™àº”າໂàºàº•àº²àº”" + + "າàºàº§àº²à»„ຕຕາເດລາວາຊີເລັບໂດàºàº£àº´àºšàº”ິນàºàº²àºŠàº²àº¡àº²àº”ອàºàº£àºµàºŠà»àºšàº½àº™àº•à»à»ˆàºàº§à»ˆàº²àº”ົວລາດັàºàºàº²àº‡à»‚ຈລາ-ຟອ" + + "ນຢີດູລາດາຊາàºàº²à»€àº­àº±àº¡àºšàº¹àº­àºµàºŸàº´àºàº­àºµàº¢àº´àºšàºšàº¹àº®àº²àº™àº­àºµàºàº²àºˆàº±àºàº­àºµàº¥àº²à»„ມອັງàºàº´àº”àºàº²àº‡àº­àºµàº§àº­àº™àº”ູà»àºŸàº‡àºŸàºµàº¥àº´" + + "ປີໂນຟອນຟຮັ່ງເສດàºàº²àº‡àºŸàº®àº±à»ˆàº‡à»€àºªàº”ໂບຮານຟຣີຊຽນເໜືອຟຣີຊຽນຕາເວັນອອàºàºŸàº£àºµàº¥àº½àº™àºàº²àºàº²àºàº²àº­àº¸" + + "ຊàºàº²à»‚ຢບາàºàº²àºàºµàºàº´àº™à»€àºšàºµà»€àº—ັດເຢàºàº¥àº°àº¡àº±àº™àºªàº¹àº‡àºàº²àº‡à»€àº¢àºàº¥àº°àº¡àº±àº™àºªàº¹àº‡à»‚ບຮານàºàº­àº™àº”ີໂàºàº£àº­àº™àº•àº²à»‚ຣàºàº­àº”ຮິ" + + "àºàºàº£àºµà»‚ບà»àº­àº™àºŠàº½àº™àºàº£àºµàºàºªàº°àº§àº´àºª ເຈີà»àº¡àº™àºàº¹àºŠàº´àº§àº´àº”ອິນໄຮດາຮາໄວອຽນຮິຣິໄàºàº™àº­àº™àº®àº´àº”ໄຕມອງຊà»àºšàº½" + + "ນ ທາງຕອນເໜືອຮູປາໄອບານໄອໄບໄບໂອໄອໂລໂàºàº­àº´àº™àºàº±àºŠà»‚ລບບັນງອມບາມາà»àºŠàº¡àºˆàº¹à»àº”ວ-ເພີຊຽນຈ" + + "ູà»àº”ວ-ອາລາບິàºàºàº²àº£àº²-àºàº²àº™àº›àº²àºàºàº²à»„ບລ໌àºàº²àºŠàº´àº™àºˆàº£àº¹àºàº²àº¡àºšàº²àºàº°àº§àºµàºàº²àºšàº²àº”ຽນຄາà»àº™àº¡àºšàº¹àº•àºµàºšàº¡àº²àº„ອນເດ" + + "ຄາເວີເດàºàº™àº¹à»‚ຄໂລຄາສິໂຄຕັນຄອàºàº£àº² ຊິນີຄາໂàºàº„າເລັນຈິນຄິມບັນດູໂຄມີ-ເພີມຢັàºàºàº­àº™àº" + + "ານີຄູສໄລàºàº²à»àº›àº£àºàº²àº£àº²à»„ຊ-ບານàºàº²àºàº²à»€àº£àº¥àº½àº™àºàº¹àº£àº¹àºàºŠàº³àºšàº²àº¥à»‰àº²àºšàº²à»€àºŸàºà»‚ຄລອàºàº™àº½àº™àº„ູມີàºàº„ູເທໄນລາ" + + "ດີໂນà»àº¥àº™àºàº´àº¥àº²àº™àº”າà»àº¥àº¡àºšàº²àº¥àºµàºŠàº½àº™àº¥àº²à»‚àºàº•àº²à»àº¡àº±àº‡à»‚àºà»‰à»‚ລຊິລູຣິ ທາງຕອນເໜືອລູບາ-ລູລົວລູເຊ" + + "ໂນລຸນດາລົວລູໄຊລູໄàºàº¡àº²àº”ູລາມາຟາມາàºàº²àº®àº´à»„ມທີລິມາàºàº²àºŠàº²àº£àº¡àº±àº™àº”ິງàºàº²àº¡àº²à»„ຊມາບາມອàºàºŠàº²àº¡àº²" + + "ນດາຣເມນເດເມຣູມà»àº£àº´àºªà»€àº¢àº™à»„ອລິດàºàº²àº‡àº¡àº²àº„ູວາ-ມີດໂຕເມທາມິàºà»àº¡àºàº—ີà»àº™àº‡àºàº²àºšàº¹à»àº¡àº™àºˆàº¹àº¡àº²àº™àºµàºž" + + "ູຣິໂມຫາມອສຊີມັນດັງຫລາàºàºžàº²àºªàº²àº„ຣິàºàº¡àºµàº¥àº±àº™àº”າມາວາຣິມà»àº¢àº´àº™à»€àº­àºµàºàº²àº¡àº²à»àºŠàº™à»€àº”ີລັງນາໂປລີ" + + "ນາມາເຢàºàº¥àº°àº¡àº±àº™ ຕອນໄຕ້ນີວາຣິນີ່ອັດນີ່ອູàºàº§àº²àºŠàºµà»‚ອຈີ່ມບູນນà»à»„àºàº™à»à»‚ບຮານເອັນໂàºà»‚ຊໂ" + + "ທເໜືອເນີເນວາດັ້ງເດີມນາມວີຊິນານຄອນໂນໂຣນິມາໂອà»àºŠàºàº•àº¹àºàºµàº­àº­àº”ໂຕມັນປານàºàº²àºŠàºµàº¡àº²àº™àºžàº²" + + "ລາວີປາມປານàºàº²àº›àº²àº¡à»€àº›àºà»€àº¡àº±àº™à»‚ທປາລົວອານເປີເຊàºà»‚ບຮານຟີນີເຊàºàºžàº­àº™à»€àºžà»‚ປວອງຊານໂບຮານKʼ" + + "icheʼຣາຈັສທານິຣາປານຸàºàº£àº²à»‚ຣທອນàºàº²àº™àº£àº»àº¡à»‚ບໂຣເມນີອາໂຣມານຽນອາຣວາຊັນດາວຊາàºàº²àºªàº²àº¡àº²àº£àº´" + + "à»àº•àº™-ຊຳບູຣູຊາຊັàºàºŠàº²àº™àº—າລິàºàº³à»€àºšàºŠàº²àº™àºàº¹àºŠàºµàºŠàº´àº¥àºµàº™àºªàºàº­àº”ພາàºà»„ຕ້ ຂອງ àºàº¹àº”ິດຊີນາເຊນຄັບໂຄ" + + "àºàº£àº²à»‚ບໂຣ ເຊນນິອີຣິຊເàºàº»à»ˆàº²àº—າເຊວຫິດໄທໃຫ່àºàº­àº²àº¥àº±àºš-ຊາດຊິດາໂມຊາມິໃຕ້ລຸນຊາມິອີນາ" + + "ຣິຊາມິສàºàº­àº”ຊາມິໂຊນິນàºàºµàºŠàº­àºàº”ິນສຣານນານຕອນໂàºà»€àºŠà»€àº¥àºµàºŠàº²à»‚ຮຊູຄູມ້າຊູຊູຊູເມີເລàºà»‚ຄໂ" + + "ນຣຽນຊີເລàºà»àºšàºšàº”ັ້ງເດີມຊີເລàºàº—ີມເນເຕໂຊເຕເລໂນເຕຕູມໄທàºàº£àºµàº•àºµàº§à»‚ຕເàºà»€àº¥àº»àº²àº„ຣິງàºàº­àº™àº—ລ" + + "ີງàºàº´àº”ທາມາàºà»€àºŠàºàº™àº²àºàº­àº²àºŠàº²àº•àº­àº‡àºàº²àº—ອàºàºžàºµàºŠàº´àº™àº•àº²à»‚ລໂàºàºŠàºµàº¡àºŠàºµà»àº­àº™àº•àº³àºšàº¹àºàº²àº•àº¹àº§àº²àº¥àº¹àº•àº²àºŠàº²àº§àº±àºàº•àº¹àº§àºµ" + + "ນຽນອັດລາສ ທາມາຊີຠàºàº²àº‡àº­àº¸àº”ມັດຢູàºàº²àº¥àº´àºàº­àº³àºšàº±àº™àº”ູລູດໄວໂວຕິàºàº§àº±àº™à»‚ຈວາເຊີວາລາໂມວາເ" + + "ລວາໂຊວາຣພິຣິàºàº²àº™àº¡àº´àºà»‚ຊàºàº²à»€àº¢àº»à»‰àº²àº¢àº±àºšà»àºàº‡à»€àºšàº™à»àº¢àº¡àºšàº²àºàº§àº²àº‡àº•àº¸à»‰àº‡àºŠàº²à»‚ປà»àº•àºšàºªàº±àº™àºàº²àº¥àº±àºàºšàº¥àºµàºŠàº´àº¡" + + "ເຊນາàºàº²à»‚ມຣັອàºà»àº„ນ ທາມາຊີຠມາດຕະຖານຊູນີບà»à»ˆàº¡àºµà»€àº™àº·à»‰àº­àº«àº²àºžàº²àºªàº²àºŠàº²àºŠàº²àº­àº²àº£àº²àºšàº´àºàº¡àº²àº”ຕະຖາ" + + "ນສະໄà»à»ƒà»à»ˆà»€àº¢àºàº¥àº°àº¡àº±àº™ (ໂອສຕຣິດ)ສະວິສ ໄຮ ເຈີà»àº¡àº™àº­àº±àº‡àºàº´àº” (ໂອດສະຕາລີ)ອັງàºàº´àº” (ບຣິ" + + "ດທິຊ)ອັງàºàº´àº” (ອາເມລິàºàº±àº™)ລາຕິນ ອາເມຣິàºàº±àº™ ສະà»àº›àº™àº™àº´àºŠàºªàº°à»€àº›àº±àº™ ຢຸໂຣບເມັàºàºŠàº´àºàº±àº™ ສ" + + "ະà»àº›àº™àº™àº´àºŠàºŸàº¥àº±àº‡(àºàº²àº™àº²àº”າ)ຊາຊອນ ຕອນໄຕຟລີມິຊປອàºàº•àº¸àºàºàº´àºª ບະເລຊີ່ນປອàºàº•àº¸àºàºàº´àºª ຢຸໂຣບໂ" + + "ມດາວຽນເຊີໂບ-ໂàºà»€àºŠàºàº„ອງໂຠຊວາຮີລິຈີນà»àºšàºšàº®àº½àºšàº‡à»ˆàº²àºàºˆàºµàº™à»àºšàºšàº”ັ້ງເດີມ" + +var loLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0024, 0x003f, 0x0057, 0x0066, 0x007b, 0x0099, + 0x00a8, 0x00c0, 0x00d5, 0x00ea, 0x010b, 0x011a, 0x0138, 0x0150, + 0x0165, 0x017a, 0x0192, 0x01a7, 0x01b9, 0x01cb, 0x01e0, 0x01ef, + 0x0201, 0x0213, 0x0219, 0x0222, 0x023d, 0x024c, 0x0255, 0x0264, + 0x027c, 0x028e, 0x02a3, 0x02af, 0x02bb, 0x02cd, 0x02df, 0x02f7, + 0x030f, 0x031e, 0x0330, 0x033c, 0x034e, 0x035d, 0x036c, 0x037b, + 0x03a9, 0x03b8, 0x03d9, 0x03ee, 0x0403, 0x041b, 0x042a, 0x043c, + 0x044e, 0x045d, 0x0475, 0x048d, 0x049c, 0x04b4, 0x04c9, 0x04de, + // Entry 40 - 7F + 0x0502, 0x0520, 0x0544, 0x0553, 0x0568, 0x0580, 0x058c, 0x05a7, + 0x05bc, 0x05dd, 0x05f2, 0x0607, 0x0616, 0x0625, 0x0637, 0x064c, + 0x065b, 0x0679, 0x0688, 0x069d, 0x06b2, 0x06c4, 0x06dc, 0x06ee, + 0x06fa, 0x0709, 0x071b, 0x072a, 0x074e, 0x075d, 0x0778, 0x078d, + 0x0796, 0x07ae, 0x07d0, 0x07e2, 0x07fd, 0x0818, 0x0827, 0x0848, + 0x0860, 0x0878, 0x088a, 0x0896, 0x08a8, 0x08b7, 0x08c9, 0x08f3, + 0x0905, 0x0920, 0x0929, 0x094e, 0x0979, 0x0994, 0x09a6, 0x09b5, + 0x09d0, 0x09e5, 0x09f7, 0x0a09, 0x0a21, 0x0a36, 0x0a42, 0x0a51, + // Entry 80 - BF + 0x0a60, 0x0a7b, 0x0a8a, 0x0a9f, 0x0aae, 0x0ac3, 0x0ad5, 0x0af3, + 0x0b0e, 0x0b23, 0x0b32, 0x0b4a, 0x0b59, 0x0b6e, 0x0b86, 0x0ba1, + 0x0bb0, 0x0bbc, 0x0bce, 0x0be6, 0x0bf8, 0x0c07, 0x0c1c, 0x0c37, + 0x0c4c, 0x0c61, 0x0c70, 0x0c82, 0x0c91, 0x0c97, 0x0caf, 0x0cc7, + 0x0cdf, 0x0cf1, 0x0d03, 0x0d18, 0x0d24, 0x0d39, 0x0d4b, 0x0d63, + 0x0d72, 0x0d84, 0x0d93, 0x0da8, 0x0dbd, 0x0dcc, 0x0ddb, 0x0de7, + 0x0df0, 0x0e02, 0x0e0e, 0x0e17, 0x0e23, 0x0e41, 0x0e53, 0x0e68, + 0x0e7a, 0x0e7a, 0x0e92, 0x0ea4, 0x0eb0, 0x0ec8, 0x0ec8, 0x0eda, + // Entry C0 - FF + 0x0eda, 0x0ef2, 0x0f13, 0x0f28, 0x0f3d, 0x0f5b, 0x0f5b, 0x0f73, + 0x0f73, 0x0f88, 0x0f88, 0x0f88, 0x0f94, 0x0f94, 0x0fac, 0x0fac, + 0x0fbe, 0x0fd0, 0x0fe8, 0x0fe8, 0x0ff4, 0x1003, 0x1003, 0x1015, + 0x1021, 0x1033, 0x1033, 0x103f, 0x104e, 0x104e, 0x1085, 0x1097, + 0x10a6, 0x10b2, 0x10b2, 0x10bb, 0x10d0, 0x10d0, 0x10d0, 0x10d9, + 0x10d9, 0x10e5, 0x10f4, 0x1103, 0x111b, 0x1127, 0x1133, 0x1148, + 0x1157, 0x1166, 0x1178, 0x118a, 0x119c, 0x11a8, 0x11b7, 0x11c9, + 0x11d8, 0x11e4, 0x1202, 0x1214, 0x122c, 0x123e, 0x1253, 0x1278, + // Entry 100 - 13F + 0x128a, 0x128a, 0x12ae, 0x12c3, 0x12d5, 0x12e4, 0x12f0, 0x1302, + 0x1314, 0x1326, 0x1335, 0x1341, 0x1350, 0x1374, 0x1374, 0x1383, + 0x1395, 0x13b1, 0x13bd, 0x13cf, 0x13e1, 0x13f0, 0x13f0, 0x140e, + 0x1423, 0x1435, 0x1450, 0x1450, 0x1465, 0x1465, 0x146e, 0x1486, + 0x1486, 0x148f, 0x148f, 0x14b0, 0x14d7, 0x14d7, 0x14f5, 0x1522, + 0x1534, 0x153a, 0x154f, 0x154f, 0x155b, 0x1567, 0x1567, 0x156d, + 0x158b, 0x158b, 0x15b5, 0x15e5, 0x15e5, 0x15f4, 0x160f, 0x1621, + 0x1630, 0x164e, 0x1670, 0x1670, 0x1670, 0x167c, 0x168e, 0x169a, + // Entry 140 - 17F + 0x169a, 0x16af, 0x16af, 0x16ca, 0x16d9, 0x16e2, 0x1710, 0x1710, + 0x171c, 0x172b, 0x1743, 0x1755, 0x1767, 0x1767, 0x1767, 0x1779, + 0x1788, 0x1797, 0x17b9, 0x17de, 0x17de, 0x17fd, 0x180f, 0x181e, + 0x1827, 0x1836, 0x1842, 0x1857, 0x186c, 0x1875, 0x188a, 0x18a8, + 0x18a8, 0x18b4, 0x18b4, 0x18c0, 0x18cf, 0x18eb, 0x18eb, 0x18eb, + 0x18f7, 0x1912, 0x192a, 0x194c, 0x1961, 0x1970, 0x197f, 0x19a1, + 0x19a1, 0x19a1, 0x19b6, 0x19c5, 0x19da, 0x19e9, 0x1a01, 0x1a10, + 0x1a22, 0x1a34, 0x1a43, 0x1a52, 0x1a61, 0x1a70, 0x1a70, 0x1a70, + // Entry 180 - 1BF + 0x1a70, 0x1a82, 0x1a82, 0x1a97, 0x1aa3, 0x1ace, 0x1ace, 0x1aea, + 0x1afc, 0x1b0b, 0x1b14, 0x1b20, 0x1b2c, 0x1b2c, 0x1b2c, 0x1b3e, + 0x1b4a, 0x1b5c, 0x1b6e, 0x1b83, 0x1b9b, 0x1ba7, 0x1bb3, 0x1bc2, + 0x1bd4, 0x1be3, 0x1bef, 0x1c07, 0x1c1f, 0x1c41, 0x1c4d, 0x1c5f, + 0x1c7a, 0x1c89, 0x1ca1, 0x1cad, 0x1cbc, 0x1cbc, 0x1cce, 0x1ce6, + 0x1cf2, 0x1d07, 0x1d19, 0x1d19, 0x1d28, 0x1d37, 0x1d58, 0x1d58, + 0x1d6a, 0x1d76, 0x1da1, 0x1db3, 0x1dc5, 0x1dd4, 0x1dd4, 0x1de9, + 0x1dfe, 0x1e0a, 0x1e1f, 0x1e1f, 0x1e31, 0x1e49, 0x1e52, 0x1e76, + // Entry 1C0 - 1FF + 0x1e8b, 0x1e9d, 0x1ea9, 0x1eb5, 0x1ec4, 0x1ee8, 0x1f06, 0x1f18, + 0x1f30, 0x1f54, 0x1f6c, 0x1f6c, 0x1f6c, 0x1f6c, 0x1f8d, 0x1f8d, + 0x1fa2, 0x1fa2, 0x1fa2, 0x1fb1, 0x1fb1, 0x1fd8, 0x1fe1, 0x1fe1, + 0x1ffc, 0x2011, 0x202f, 0x202f, 0x202f, 0x203e, 0x2050, 0x2050, + 0x2050, 0x2050, 0x206b, 0x207a, 0x208c, 0x2098, 0x20b4, 0x20c6, + 0x20d5, 0x20ea, 0x20ea, 0x20f6, 0x2105, 0x211a, 0x2126, 0x2126, + 0x2152, 0x2152, 0x215e, 0x215e, 0x2170, 0x219b, 0x21b9, 0x21b9, + 0x21d1, 0x21e3, 0x21fc, 0x220e, 0x220e, 0x220e, 0x2223, 0x2238, + // Entry 200 - 23F + 0x2256, 0x226e, 0x2283, 0x2295, 0x22b9, 0x22c8, 0x22d4, 0x22d4, + 0x22e9, 0x22f5, 0x230d, 0x2322, 0x2352, 0x2361, 0x2361, 0x2361, + 0x2370, 0x237c, 0x238e, 0x239d, 0x23ac, 0x23b5, 0x23cd, 0x23cd, + 0x23e2, 0x23f7, 0x23f7, 0x240f, 0x2433, 0x244b, 0x244b, 0x245d, + 0x245d, 0x2475, 0x2475, 0x2487, 0x2499, 0x24ae, 0x24c3, 0x24f5, + 0x2507, 0x251c, 0x2531, 0x253a, 0x2540, 0x2540, 0x2540, 0x2540, + 0x2540, 0x254f, 0x254f, 0x255e, 0x256d, 0x257f, 0x258b, 0x2597, + 0x25ac, 0x25ac, 0x25be, 0x25be, 0x25ca, 0x25d9, 0x25e2, 0x25f4, + // Entry 240 - 27F + 0x2603, 0x2603, 0x261b, 0x2630, 0x265a, 0x265a, 0x266c, 0x26b6, + 0x26c2, 0x26f2, 0x26fe, 0x2740, 0x2740, 0x2770, 0x2799, 0x27c9, + 0x27c9, 0x27f3, 0x2823, 0x2867, 0x2889, 0x28bd, 0x28bd, 0x28dd, + 0x28dd, 0x28fc, 0x290e, 0x2942, 0x296d, 0x2982, 0x29a1, 0x29c6, + 0x29ed, 0x2a17, +} // Size: 1244 bytes + +var ltLangStr string = "" + // Size: 5831 bytes + "afarųabchazųavestųafrikanųakanųamharųaragonesųarabųasamųavarikųaimarųaze" + + "rbaidžanieÄiųbaÅ¡kirųbaltarusiųbulgarųbislamabambarųbengalųtibetieÄiųbret" + + "onųbosniųkatalonųÄeÄÄ—nųÄamorųkorsikieÄiųkryÄekųbažnytinÄ— slavųÄiuvašųval" + + "ųdanųvokieÄiųdivehibotijųeviųgraikųanglųesperantoispanųestųbaskųpersųfu" + + "lahųsuomiųfidžiųfarerųprancÅ«zųvakarų fryzųairiųškotų (gÄ—lų)galisųgvarani" + + "ųgudžaratųmenieÄiųhausųhebrajųhindihiri motukroatųHaiÄiovengrųarmÄ—nųher" + + "erointerlingvaindonezieÄiųinterkalbaigbųsiÄuan jiinupiakidoislandųitalųi" + + "nukitutjaponųjavieÄiųgruzinųKongokikujųkuaniamakazachųkalalisutkhmerųkan" + + "adųkorÄ—jieÄiųkanurikaÅ¡myrųkurdųkomikornųkirgizųlotynųliuksemburgieÄiųgan" + + "dalimburgiÅ¡ngalųlaosieÄiųlietuviųluba katangalatviųmalagasųMarÅ¡alo Salųm" + + "aoriųmakedonųmalajaliųmongolųmaratųmalajieÄiųmaltieÄiųbirmieÄiųnaurųšiau" + + "rÄ—s ndebelųnepalieÄiųndongųolandųnaujoji norvegųNorvegijos raÅ¡ytinÄ— – bÅ«" + + "kmolųpietų ndebelenavajųnianjaoÄitarųojibvaoromųorijųosetinųpendžabųpali" + + "lenkųpuÅ¡tÅ«nųportugalųkeÄujųretoromanųrundirumunųrusųkinjaruandųsanskrita" + + "ssardinieÄiųsindųšiaurÄ—s samiųsangosinhalųslovakųslovÄ—nųsamoaÅ¡onųsomalie" + + "Äiųalbanųserbųsvatipietų sesutosundųšvedųsuahiliųtamilųtelugųtadžikųtaj" + + "ųtigrajųturkmÄ—nųtsvanatonganųturkųtsongatotoriųtaitieÄiųuigÅ«rųukrainieÄ" + + "iųurdųuzbekųvendavietnamieÄiųvolapiukvalonųvolofųkosųjidiÅ¡jorubųchuangki" + + "nųzulųaÄinezųakoliųadangmųadygÄ—jųTuniso arabųafrihiliaghemųainųakadianųa" + + "labamieÄiųaleutųalbanų kalbos gegų tarmÄ—pietų Altajaussenoji anglųangikų" + + "aramaikųmapudungunųaraonųarapahųAlžyro arabųaravakųMaroko arabųEgipto ar" + + "abųasuAmerikos ženklų kalbaasturianųkotavaavadhibaluÄibalinezųbavarųbasų" + + "bamunųbatak tobaghomalųbÄ—jųbembųbetavibenųbafutųbadagavakarų beludžiųbau" + + "ÄpuribikolųbinibandžarųkomųsiksikaBiÅ¡nuprijosbakhtiaribrajųbrahujųbodoa" + + "kÅ«sųburiatųbuginezųbulublinmedumbųkadokaribųkaijÅ«gųatsamųcebuanųÄigųÄibÄ" + + "aÄagatųÄukesųmariÄinuk žargonasÄoktauÄipvÄ—jųÄerokiųÄajenųsoranių kurdųko" + + "ptųcapiznonKrymo turkųkaÅ¡ubųdakotųdargvataitųdelaveroslavedogribųdinkųza" + + "rmųdogrižemutinių sorbųcentrinio DusunodualųVidurio Vokietijosdžiola-fon" + + "idyulųdazagųembuefikitalų kalbos Emilijos tarmÄ—senovÄ—s egiptieÄiųekajuke" + + "lamitųVidurio AnglijoscentrinÄ—s Aliaskos jupikųevondoispanų kalbos Ekstr" + + "emadÅ«ros tarmÄ—fangfilipinieÄiųsuomių kalbos Tornedalio tarmÄ—fonkadžunų p" + + "rancÅ«zųVidurio PrancÅ«zijossenoji prancÅ«zųArpitanoÅ¡iaurinių fryzųrytų fry" + + "zųfrulangagagaÅ«zųkinų kalbos dziangsi tarmÄ—gajogbajazoroastrų darigyzkir" + + "ibatigilakiVidurio AukÅ¡tosios VokietijosSenoji AukÅ¡tosios VokietijosGoa " + + "konkaniųgondigorontalogotųgrebosenovÄ—s graikųŠveicarijos vokieÄiųvajųfra" + + "fragusigviÄinohaidokinų kalbos hakų tarmÄ—havajieÄiųFidžio hindihiligaino" + + "nhititųhmongaukÅ¡tutinių sorbųkinų kalbos hunano tarmÄ—hupaibanibibioiloko" + + "ingušųingrųJamaikos kreolų anglųloibanngombųmaÄamųjudÄ—jų persųjudÄ—jų ara" + + "bųdanų kalbos jutų tarmÄ—karakalpakųkebailųkaÄinjukembųkavikabardinųkanem" + + "bųtyapmakondųŽaliojo KyÅ¡ulio kreolųkenyangkorokaingangkasikotanezųkojra " + + "Äinikhovarųkirmanjkikakokalenjinųkimbundukomių-permiųkonkaniųkosreanųkp" + + "elekaraÄiajų balkarijoskriokinaray-akarelųkurukÅ¡ambalųbafųkolognųkumikųk" + + "utenailadinolangilandalambalezginųnaujoji frankų kalbaligÅ«rųlyviųlakotųl" + + "ombardųmongoloziÅ¡iaurÄ—s lurilatgaliųluba lulualuisenolundaluomizolujakla" + + "sikinÄ— kinųlazmadurezųmafųmagahimaithilimakasaromandingomasajųmabųmokÅ¡am" + + "andarmendemerųmorisijųVidurio Airijosmakua-maetometamikmakminankabumanÄu" + + "manipurimohokmosivakarų marimundangųkelios kalboskrykųmirandezųmarvarime" + + "ntavaimjenųerzyjųmazenderaniųkinų kalbos pietų minų tarmÄ—neapolieÄiųnama" + + "ŽemutinÄ—s Vokietijosnevariniasniuenųao nagakvasiųngiembÅ«nųnogųnorsunovi" + + "alenkoÅ¡iaurÄ—s sothųnuerųklasikinÄ— nevariniamveziniankolųnioronzimaosageo" + + "smanų turkųpangasinanpahlavipampangapapiementopalaupikardųPensilvanijos " + + "vokieÄiųvokieÄių kalbos žemaiÄių tarmÄ—senoji persųvokieÄių kalbos Pfalco" + + " tarmÄ—finikieÄiųitalų kalbos Pjemonto tarmÄ—PontoPonapÄ—sprÅ«sųsenovÄ—s prov" + + "ansalųkiÄiųČimboraso aukÅ¡tumų keÄujųradžastanorapanuirarotonganitalų kal" + + "bos Romanijos tarmÄ—rifųromboromųrotumanųrusinųRovianosaromaniųruasandavi" + + "jakutųsamarÄ—jų aramiųsambÅ«rųsasaksantalisauraÅ¡trųngambajųsangųsicilieÄių" + + "Å¡kotųsasaresų sardinųpietų kurdųsenecųsenųseriselkupkojraboro senisenoj" + + "i airiųžemaiÄiųtachelhitųšanchadian arabųsidamosilezieÄių žemaiÄiųselaja" + + "rųpietų samiųLulÄ—jo samiųInario samiųSkolto samiųsoninkesogdiensranan to" + + "ngosererųsahoSaterlendo fryzųsukumasusuÅ¡umerųKomorųklasikinÄ— sirieÄiųsir" + + "ųsilezieÄiųtulųtimnetesoterenotetumtigretivtokelautsakurųklingonųtlingi" + + "ttalyšųtamaÅ¡ekniasa tongostok pisinturoyotarokotsakonųtsimÅ¡ianmusulmonų " + + "tatųtumbukųtuvalutasavakųtuviųCentrinio Maroko tamazitųudmurtųugariticum" + + "bundurÅ«tvaivenetųvepsųvakarų flamandųpagrindinÄ— frankonųvotikvõrovunjova" + + "lserųvalamovaraivaÅ¡ovalrpirikinų kalbos vu tarmÄ—kalmukųmegrelųsogųjaojap" + + "ezųjangbenųjembųnjengatukinų kalbos Kantono tarmÄ—zapotekų„Bliss“ simboli" + + "ųzelandųzenagastandartinÄ— Maroko tamazigtųzuninÄ—ra kalbinio turiniozaza" + + "Å¡iuolaikinÄ— standartinÄ— arabųAustrijos vokieÄiųŠveicarijos aukÅ¡tutinÄ— v" + + "okieÄiųAustralijos anglųKanados anglųDidžiosios Britanijos anglųJungtini" + + "ų Valstijų anglųLotynų Amerikos ispanųEuropos ispanųMeksikos ispanųKana" + + "dos prancÅ«zųŠveicarijos prancÅ«zųŽemutinÄ—s Saksonijos (Nyderlandai)flaman" + + "dųBrazilijos portugalųEuropos portugalųmoldavųserbų-kroatųKongo suahilių" + + "supaprastintoji kinųtradicinÄ— kinų" + +var ltLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0006, 0x000e, 0x0015, 0x001e, 0x0024, 0x002b, 0x0035, + 0x003b, 0x0041, 0x0049, 0x0050, 0x0063, 0x006c, 0x0077, 0x007f, + 0x0086, 0x008e, 0x0096, 0x00a2, 0x00aa, 0x00b1, 0x00ba, 0x00c4, + 0x00cc, 0x00d9, 0x00dc, 0x00e2, 0x00f4, 0x00fe, 0x0103, 0x0108, + 0x0112, 0x0118, 0x011f, 0x0124, 0x012b, 0x0131, 0x013a, 0x0141, + 0x0146, 0x014c, 0x0152, 0x0159, 0x0160, 0x0168, 0x016f, 0x0179, + 0x0187, 0x018d, 0x019d, 0x01a4, 0x01ad, 0x01b8, 0x01c2, 0x01c8, + 0x01d0, 0x01d5, 0x01de, 0x01e5, 0x01ec, 0x01f3, 0x01fb, 0x0201, + // Entry 40 - 7F + 0x020c, 0x021a, 0x0224, 0x0229, 0x0233, 0x023a, 0x023d, 0x0245, + 0x024b, 0x0253, 0x025a, 0x0264, 0x026c, 0x0271, 0x0278, 0x0280, + 0x0288, 0x0291, 0x0298, 0x029f, 0x02ac, 0x02b2, 0x02bb, 0x02c1, + 0x02c5, 0x02cb, 0x02d3, 0x02da, 0x02ec, 0x02f1, 0x02fb, 0x0301, + 0x030c, 0x0315, 0x0321, 0x0328, 0x0331, 0x033f, 0x0346, 0x034f, + 0x0359, 0x0361, 0x0368, 0x0374, 0x037f, 0x038a, 0x0390, 0x03a2, + 0x03ae, 0x03b5, 0x03bc, 0x03cc, 0x03ef, 0x03fd, 0x0404, 0x040a, + 0x0413, 0x0419, 0x041f, 0x0425, 0x042d, 0x0437, 0x043b, 0x0441, + // Entry 80 - BF + 0x044b, 0x0455, 0x045d, 0x0468, 0x046d, 0x0474, 0x0479, 0x0485, + 0x048f, 0x049c, 0x04a2, 0x04b2, 0x04b7, 0x04bf, 0x04c7, 0x04d0, + 0x04d5, 0x04db, 0x04e7, 0x04ee, 0x04f4, 0x04f9, 0x0506, 0x050c, + 0x0513, 0x051c, 0x0523, 0x052a, 0x0533, 0x0538, 0x0540, 0x054a, + 0x0550, 0x0558, 0x055e, 0x0564, 0x056c, 0x0577, 0x057f, 0x058c, + 0x0591, 0x0598, 0x059d, 0x05ab, 0x05b3, 0x05ba, 0x05c1, 0x05c6, + 0x05cc, 0x05d3, 0x05d9, 0x05de, 0x05e3, 0x05ec, 0x05f3, 0x05fb, + 0x0604, 0x0611, 0x0619, 0x0620, 0x0625, 0x062e, 0x063b, 0x0642, + // Entry C0 - FF + 0x065d, 0x066c, 0x0679, 0x0680, 0x0689, 0x0695, 0x069c, 0x06a4, + 0x06b2, 0x06ba, 0x06c7, 0x06d4, 0x06d7, 0x06ee, 0x06f8, 0x06fe, + 0x0704, 0x070b, 0x0714, 0x071b, 0x0720, 0x0727, 0x0731, 0x0739, + 0x073f, 0x0745, 0x074b, 0x0750, 0x0757, 0x075d, 0x076f, 0x0778, + 0x077f, 0x0783, 0x078d, 0x0792, 0x0799, 0x07a5, 0x07ae, 0x07b4, + 0x07bc, 0x07c0, 0x07c7, 0x07cf, 0x07d8, 0x07dc, 0x07e0, 0x07e8, + 0x07ec, 0x07f3, 0x07fc, 0x0803, 0x080b, 0x0811, 0x0818, 0x0820, + 0x0828, 0x082c, 0x083c, 0x0843, 0x084d, 0x0856, 0x085e, 0x086d, + // Entry 100 - 13F + 0x0873, 0x087b, 0x0887, 0x088f, 0x0896, 0x089c, 0x08a2, 0x08aa, + 0x08af, 0x08b7, 0x08bd, 0x08c3, 0x08c8, 0x08da, 0x08ea, 0x08f0, + 0x0902, 0x090e, 0x0914, 0x091b, 0x091f, 0x0923, 0x0940, 0x0955, + 0x095b, 0x0963, 0x0973, 0x098e, 0x0994, 0x09b8, 0x09bc, 0x09ca, + 0x09ea, 0x09ed, 0x0a01, 0x0a15, 0x0a26, 0x0a2e, 0x0a40, 0x0a4c, + 0x0a52, 0x0a54, 0x0a5d, 0x0a79, 0x0a7d, 0x0a82, 0x0a91, 0x0a94, + 0x0a9c, 0x0aa2, 0x0ac0, 0x0add, 0x0aea, 0x0aef, 0x0af8, 0x0afd, + 0x0b02, 0x0b12, 0x0b29, 0x0b2e, 0x0b34, 0x0b38, 0x0b40, 0x0b45, + // Entry 140 - 17F + 0x0b5e, 0x0b6a, 0x0b77, 0x0b81, 0x0b88, 0x0b8d, 0x0ba1, 0x0bbb, + 0x0bbf, 0x0bc3, 0x0bc9, 0x0bce, 0x0bd6, 0x0bdc, 0x0bf3, 0x0bf9, + 0x0c00, 0x0c08, 0x0c17, 0x0c26, 0x0c3f, 0x0c4b, 0x0c53, 0x0c59, + 0x0c5b, 0x0c61, 0x0c65, 0x0c6f, 0x0c77, 0x0c7b, 0x0c83, 0x0c9c, + 0x0ca3, 0x0ca7, 0x0caf, 0x0cb3, 0x0cbc, 0x0cc7, 0x0ccf, 0x0cd8, + 0x0cdc, 0x0ce6, 0x0cee, 0x0cfc, 0x0d05, 0x0d0e, 0x0d13, 0x0d29, + 0x0d2d, 0x0d36, 0x0d3d, 0x0d42, 0x0d4b, 0x0d50, 0x0d58, 0x0d5f, + 0x0d66, 0x0d6c, 0x0d71, 0x0d76, 0x0d7b, 0x0d83, 0x0d98, 0x0da0, + // Entry 180 - 1BF + 0x0da6, 0x0dad, 0x0db6, 0x0dbb, 0x0dbf, 0x0dcd, 0x0dd6, 0x0de0, + 0x0de7, 0x0dec, 0x0def, 0x0df3, 0x0df7, 0x0e07, 0x0e0a, 0x0e13, + 0x0e18, 0x0e1e, 0x0e26, 0x0e2e, 0x0e36, 0x0e3d, 0x0e42, 0x0e48, + 0x0e4e, 0x0e53, 0x0e58, 0x0e61, 0x0e70, 0x0e7b, 0x0e7f, 0x0e85, + 0x0e8e, 0x0e94, 0x0e9c, 0x0ea1, 0x0ea5, 0x0eb1, 0x0eba, 0x0ec7, + 0x0ecd, 0x0ed7, 0x0ede, 0x0ee6, 0x0eec, 0x0ef3, 0x0f00, 0x0f20, + 0x0f2d, 0x0f31, 0x0f47, 0x0f4d, 0x0f51, 0x0f58, 0x0f5f, 0x0f66, + 0x0f71, 0x0f76, 0x0f7b, 0x0f81, 0x0f85, 0x0f95, 0x0f9b, 0x0fac, + // Entry 1C0 - 1FF + 0x0fb4, 0x0fbd, 0x0fc2, 0x0fc7, 0x0fcc, 0x0fda, 0x0fe4, 0x0feb, + 0x0ff3, 0x0ffd, 0x1002, 0x100a, 0x1022, 0x1046, 0x1053, 0x1072, + 0x107e, 0x109b, 0x10a0, 0x10a8, 0x10af, 0x10c3, 0x10ca, 0x10e8, + 0x10f3, 0x10fa, 0x1104, 0x1122, 0x1127, 0x112c, 0x1131, 0x113a, + 0x1141, 0x1149, 0x1152, 0x1155, 0x115c, 0x1163, 0x1175, 0x117e, + 0x1183, 0x118a, 0x1195, 0x119e, 0x11a4, 0x11b0, 0x11b7, 0x11c9, + 0x11d6, 0x11dd, 0x11e2, 0x11e6, 0x11ec, 0x11fa, 0x1207, 0x1212, + 0x121d, 0x1221, 0x122f, 0x1235, 0x124d, 0x1256, 0x1263, 0x1271, + // Entry 200 - 23F + 0x127e, 0x128b, 0x1292, 0x1299, 0x12a5, 0x12ac, 0x12b0, 0x12c1, + 0x12c7, 0x12cb, 0x12d3, 0x12da, 0x12ef, 0x12f4, 0x1300, 0x1305, + 0x130a, 0x130e, 0x1314, 0x1319, 0x131e, 0x1321, 0x1328, 0x1330, + 0x1339, 0x1340, 0x1348, 0x1350, 0x135c, 0x1365, 0x136b, 0x1371, + 0x1379, 0x1382, 0x1392, 0x139a, 0x13a0, 0x13a9, 0x13af, 0x13c9, + 0x13d1, 0x13d9, 0x13e0, 0x13e4, 0x13e7, 0x13ee, 0x13f4, 0x1405, + 0x141a, 0x141f, 0x1424, 0x1429, 0x1431, 0x1437, 0x143c, 0x1441, + 0x1449, 0x145f, 0x1467, 0x146f, 0x1474, 0x1477, 0x147e, 0x1487, + // Entry 240 - 27F + 0x148d, 0x1495, 0x14b0, 0x14b9, 0x14ce, 0x14d6, 0x14dc, 0x14fa, + 0x14fe, 0x1514, 0x1518, 0x1539, 0x1539, 0x154d, 0x1571, 0x1583, + 0x1591, 0x15ae, 0x15c9, 0x15e1, 0x15f0, 0x1600, 0x1600, 0x1612, + 0x1629, 0x164d, 0x1656, 0x166b, 0x167d, 0x1685, 0x1693, 0x16a2, + 0x16b7, 0x16c7, +} // Size: 1244 bytes + +var lvLangStr string = "" + // Size: 4332 bytes + "afÄruabhÄzuavestaafrikanduakanuamharuaragonieÅ¡uarÄbuasamieÅ¡uavÄruaimarua" + + "zerbaidžÄņubaÅ¡kÄ«rubaltkrievubulgÄrubiÅ¡lamÄbambarubengÄļutibetieÅ¡ubretoņu" + + "bosnieÅ¡ukatalÄņuÄeÄenuÄamorrukorsikÄņukrÄ«ÄehubaznÄ«cslÄvuÄuvaÅ¡uvelsieÅ¡udÄ" + + "ņuvÄcumaldÄ«vieÅ¡udzongkeevugrieÄ·uangļuesperantospÄņuigauņubaskupersieÅ¡uf" + + "ulusomufidžieÅ¡ufÄ“rufranÄurietumfrÄ«zuÄ«rugÄ“lugalisieÅ¡ugvaranugudžaratumeni" + + "eÅ¡uhausuivritshindihirimotuhorvÄtuhaitieÅ¡uungÄruarmēņuhereruinterlingvai" + + "ndonÄ“zieÅ¡uinterlingveigboSiÄuaņas jiinupiakuidoÄ«slandieÅ¡uitÄļuinuÄ«tujapÄ" + + "ņujavieÅ¡ugruzÄ«nukongukikujukvaņamukazahugrenlandieÅ¡ukhmerukannadukoreji" + + "eÅ¡ukanurukaÅ¡mirieÅ¡ukurdukomieÅ¡ukornieÅ¡ukirgÄ«zulatīņuluksemburgieÅ¡ugandul" + + "imburgieÅ¡ulingalalaosieÅ¡ulietuvieÅ¡ulubakatangalatvieÅ¡umalagasumÄrÅ¡alieÅ¡u" + + "maorumaÄ·edonieÅ¡umalajalumongoļumaratumalajieÅ¡umaltieÅ¡ubirmieÅ¡unauruieÅ¡uz" + + "iemeļndebelunepÄlieÅ¡undonguholandieÅ¡ujaunnorvÄ“Ä£unorvÄ“Ä£u bukmolsdienvidnd" + + "ebelunavahuÄiÄevaoksitÄņuodžibvuoromuorijuosetÄ«nupandžabupÄlipoļupuÅ¡tupo" + + "rtugÄļukeÄvuretoromÄņurundurumÄņukrievukiņaruandasanskritssardÄ«nieÅ¡usind" + + "huziemeļsÄmusangosingÄļuslovÄkuslovēņusamoÄņuÅ¡onusomÄļualbÄņuserbusvatud" + + "ienvidsotusundanieÅ¡uzviedrusvahilitamilutelugutadžikutajutigrinjaturkmēņ" + + "ucvanutongieÅ¡uturkucongutatÄrutaitieÅ¡uuiguruukraiņuurduuzbekuvenduvjetna" + + "mieÅ¡uvolapiksvaloņuvolofukhosujidiÅ¡sjorubudžuanuÄ·Ä«nieÅ¡uzuluaÄinuaÄoluada" + + "ngmuadiguafrihiliaghemuainuakadieÅ¡ualeutudienvidaltajieÅ¡usenangļuangikaa" + + "ramieÅ¡uaraukÄņuarapahuaravakuasuastÅ«rieÅ¡uavadhubeludžubalieÅ¡ubasubamumug" + + "omalubedžubembubenabafuturietumbeludžubhodžpÅ«rubikolubinukomusiksikubrad" + + "žieÅ¡ubodonkosiburjatubugubulubilinumedumbukadukarÄ«bukajugaatsamusebuÄņu" + + "kigaÄibÄudžagatajsÄÅ«kumarieÅ¡uÄinuku žargonsÄoktavuÄipevaianuÄirokuÅ¡ejenu" + + "kurdu (Sorani)koptuKrimas tatÄrukaÅ¡ubudakotudargutaitudelavÄ“rusleivudogr" + + "ibudinkuzarmudogrulejassorbudualuvidusholandieÅ¡udiola-fonjÄ«diÅ«ludazukjem" + + "buefikuÄ“Ä£iptieÅ¡uekadžukuelamieÅ¡uvidusangļuevondufangufilipÄ«nieÅ¡ufonuvidu" + + "sfranÄusenfranÄuziemeļfrÄ«zuaustrumfrÄ«zufriÅ«lugagagauzugajogbajugÄ“zukirib" + + "atieÅ¡uvidusaugÅ¡vÄcusenaugÅ¡vÄcugondu valodasgorontalugotugrebosengrieÄ·uÅ v" + + "eices vÄcugusiikuÄinuhaiduhavajieÅ¡uhiligainonuhetuhmonguaugÅ¡sorbuhupuiba" + + "nuibibioilokuinguÅ¡uložbansjgomaÄamujÅ«dpersieÅ¡ujÅ«darÄbukarakalpakukabiluk" + + "aÄinukadžikambukÄvikabardieÅ¡ukaņembukatabumakondekaboverdieÅ¡ukorukhasuho" + + "tanieÅ¡ukoiraÄiinÄ«kakokalendžīnukimbundukomieÅ¡u-permieÅ¡ukonkanukosrÄjieÅ¡u" + + "kpellukaraÄaju un balkÄrukarēļukuruhuÅ¡ambalubafijuĶelnes vÄcukumikukuten" + + "ajuladinolangilandulambulezgÄ«nulakotumongulozuziemeļlurulubalulvaluisenu" + + "lunduluoluÅ¡ejuluhjumadurieÅ¡umafumagahieÅ¡umaithilimakasarumandingumasajum" + + "abumokÅ¡umandarumendumeruMaurÄ«cijas kreoluvidusÄ«rumakua-meettomgomikmakum" + + "inangkabavumandžūrumanipÅ«rumohaukumosumundanguvairÄkas valodaskrÄ«kumiran" + + "dieÅ¡umarvarumjenuerzjumazanderÄņuneapolieÅ¡unamalejasvÄcunevarunjasuniuÄņ" + + "ukvasiongjembÅ«nunogajusennorvÄ“Ä£unkoziemeļsotunueruklasiskÄ nevaruņamvezu" + + "ņankoluņorunzemuvažÄžuturku osmaņupangasinanupehlevipampanganupapjament" + + "opalavieÅ¡usenpersufeniÄ·ieÅ¡uponapieÅ¡usenprovansieÅ¡ukiÄeradžastÄņurapanuju" + + "rarotongieÅ¡uromboÄigÄnuaromÅ«nuruandasandavujakutusamÄrijas aramieÅ¡usambu" + + "rusasakusantalungambejusangusicÄ«lieÅ¡uskotudienvidkurdusenekusenuselkupuk" + + "oiraboro sennisenÄ«ruÅ¡ilhuÅ¡anuÄŒadas arÄbusidamudienvidsÄmuLuleo sÄmuInari" + + " sÄmuskoltsÄmusoninkusogdieÅ¡usranantogoserÄ“rusahosukumususuÅ¡umerukomoruk" + + "lasiskÄ sÄ«rieÅ¡usÄ«rieÅ¡utemnutesoterenotetumutigrutivutokelavieÅ¡uklingoņut" + + "linkitutuaregunjasas tongutokpisinstarokocimÅ¡iÄņutumbukutuvalieÅ¡utasavak" + + "utuvieÅ¡uCentrÄlmarokas tamazÄ«tsudmurtuugaritieÅ¡uumbundusaknevajuvotuvund" + + "žoVallisas vÄcuvalamuvarajuvaÅ¡ovarlpirÄ«kalmikusogujaojapieÅ¡ujanbaņujemb" + + "ukantonieÅ¡usapotekublissimbolikazenagustandarta marokÄņu berberuzunjubez" + + " lingvistiska saturazazakimÅ«sdienu standarta arÄbudienvidazerbaidžÄņuAus" + + "trijas vÄcuÅ veices augÅ¡vÄcuAustrÄlijas angļuKanÄdas angļuLielbritÄnijas " + + "angļuASV angļuLatīņamerikas spÄņuEiropas spÄņuMeksikas spÄņuKanÄdas fran" + + "ÄuÅ veices franÄulejassakÅ¡uflÄmuBrazÄ«lijas portugÄļuEiropas portugÄļumol" + + "dÄvuserbu-horvÄtuKongo svahiliÄ·Ä«nieÅ¡u vienkÄrÅ¡otÄÄ·Ä«nieÅ¡u tradicionÄlÄ" + +var lvLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0006, 0x000d, 0x0013, 0x001c, 0x0021, 0x0027, 0x0032, + 0x0038, 0x0041, 0x0047, 0x004d, 0x005c, 0x0065, 0x006f, 0x0077, + 0x0080, 0x0087, 0x0090, 0x009a, 0x00a2, 0x00ab, 0x00b5, 0x00bd, + 0x00c5, 0x00d0, 0x00d4, 0x00d9, 0x00e6, 0x00ee, 0x00f7, 0x00fd, + 0x0102, 0x010e, 0x0115, 0x0118, 0x011f, 0x0125, 0x012e, 0x0135, + 0x013c, 0x0141, 0x014a, 0x014e, 0x0152, 0x015c, 0x0161, 0x0168, + 0x0174, 0x0178, 0x017d, 0x0187, 0x018e, 0x0198, 0x01a0, 0x01a5, + 0x01ab, 0x01b0, 0x01b8, 0x01c0, 0x01c9, 0x01d0, 0x01d8, 0x01de, + // Entry 40 - 7F + 0x01e9, 0x01f6, 0x0201, 0x0205, 0x0212, 0x021a, 0x021d, 0x0229, + 0x0230, 0x0237, 0x023f, 0x0247, 0x024f, 0x0254, 0x025a, 0x0262, + 0x0268, 0x0275, 0x027b, 0x0282, 0x028c, 0x0292, 0x029e, 0x02a3, + 0x02ab, 0x02b4, 0x02bc, 0x02c4, 0x02d3, 0x02d8, 0x02e4, 0x02eb, + 0x02f4, 0x02ff, 0x030a, 0x0313, 0x031b, 0x0328, 0x032d, 0x033a, + 0x0342, 0x034a, 0x0350, 0x035a, 0x0363, 0x036c, 0x0376, 0x0384, + 0x038f, 0x0395, 0x03a0, 0x03ad, 0x03be, 0x03cc, 0x03d2, 0x03da, + 0x03e4, 0x03ec, 0x03f1, 0x03f6, 0x03fe, 0x0407, 0x040c, 0x0411, + // Entry 80 - BF + 0x0417, 0x0422, 0x0428, 0x0434, 0x0439, 0x0441, 0x0447, 0x0452, + 0x045b, 0x0467, 0x046d, 0x0479, 0x047e, 0x0487, 0x048f, 0x0498, + 0x04a1, 0x04a6, 0x04ae, 0x04b6, 0x04bb, 0x04c0, 0x04cb, 0x04d6, + 0x04dd, 0x04e4, 0x04ea, 0x04f0, 0x04f8, 0x04fc, 0x0504, 0x050e, + 0x0513, 0x051c, 0x0521, 0x0526, 0x052d, 0x0536, 0x053c, 0x0544, + 0x0548, 0x054e, 0x0553, 0x055f, 0x0567, 0x056e, 0x0574, 0x0579, + 0x0580, 0x0586, 0x058d, 0x0597, 0x059b, 0x05a1, 0x05a7, 0x05ae, + 0x05b3, 0x05b3, 0x05bb, 0x05c1, 0x05c5, 0x05ce, 0x05ce, 0x05d4, + // Entry C0 - FF + 0x05d4, 0x05e5, 0x05ee, 0x05f4, 0x05fd, 0x0607, 0x0607, 0x060e, + 0x060e, 0x0615, 0x0615, 0x0615, 0x0618, 0x0618, 0x0623, 0x0623, + 0x0629, 0x0631, 0x0639, 0x0639, 0x063d, 0x0643, 0x0643, 0x0649, + 0x064f, 0x0654, 0x0654, 0x0658, 0x065e, 0x065e, 0x066c, 0x0677, + 0x067d, 0x0681, 0x0681, 0x0685, 0x068c, 0x068c, 0x068c, 0x0697, + 0x0697, 0x069b, 0x06a0, 0x06a7, 0x06ab, 0x06af, 0x06b5, 0x06bc, + 0x06c0, 0x06c7, 0x06cd, 0x06d3, 0x06dc, 0x06e0, 0x06e7, 0x06f1, + 0x06f7, 0x06ff, 0x070f, 0x0717, 0x0722, 0x0729, 0x0730, 0x073e, + // Entry 100 - 13F + 0x0743, 0x0743, 0x0751, 0x0758, 0x075e, 0x0763, 0x0768, 0x0771, + 0x0777, 0x077e, 0x0783, 0x0788, 0x078d, 0x0797, 0x0797, 0x079c, + 0x07ac, 0x07b8, 0x07be, 0x07c2, 0x07c8, 0x07cd, 0x07cd, 0x07d9, + 0x07e2, 0x07eb, 0x07f6, 0x07f6, 0x07fc, 0x07fc, 0x0801, 0x080e, + 0x080e, 0x0812, 0x0812, 0x081e, 0x0828, 0x0828, 0x0835, 0x0842, + 0x0849, 0x084b, 0x0852, 0x0852, 0x0856, 0x085b, 0x085b, 0x0860, + 0x086c, 0x086c, 0x087b, 0x0888, 0x0888, 0x0895, 0x089e, 0x08a2, + 0x08a7, 0x08b1, 0x08bf, 0x08bf, 0x08bf, 0x08c4, 0x08cb, 0x08d0, + // Entry 140 - 17F + 0x08d0, 0x08da, 0x08da, 0x08e5, 0x08e9, 0x08ef, 0x08f9, 0x08f9, + 0x08fd, 0x0902, 0x0908, 0x090d, 0x0914, 0x0914, 0x0914, 0x091c, + 0x091f, 0x0926, 0x0933, 0x093d, 0x093d, 0x0948, 0x094e, 0x0955, + 0x095b, 0x0960, 0x0965, 0x0970, 0x0978, 0x097e, 0x0985, 0x0992, + 0x0992, 0x0996, 0x0996, 0x099b, 0x09a5, 0x09b1, 0x09b1, 0x09b1, + 0x09b5, 0x09c1, 0x09c9, 0x09db, 0x09e2, 0x09ee, 0x09f4, 0x0a09, + 0x0a09, 0x0a09, 0x0a11, 0x0a17, 0x0a1f, 0x0a25, 0x0a32, 0x0a38, + 0x0a40, 0x0a46, 0x0a4b, 0x0a50, 0x0a55, 0x0a5d, 0x0a5d, 0x0a5d, + // Entry 180 - 1BF + 0x0a5d, 0x0a63, 0x0a63, 0x0a68, 0x0a6c, 0x0a77, 0x0a77, 0x0a80, + 0x0a87, 0x0a8c, 0x0a8f, 0x0a96, 0x0a9b, 0x0a9b, 0x0a9b, 0x0aa5, + 0x0aa9, 0x0ab3, 0x0abb, 0x0ac3, 0x0acb, 0x0ad1, 0x0ad5, 0x0adb, + 0x0ae2, 0x0ae7, 0x0aeb, 0x0afd, 0x0b06, 0x0b12, 0x0b15, 0x0b1c, + 0x0b28, 0x0b32, 0x0b3b, 0x0b42, 0x0b46, 0x0b46, 0x0b4e, 0x0b5f, + 0x0b65, 0x0b70, 0x0b77, 0x0b77, 0x0b7c, 0x0b81, 0x0b8e, 0x0b8e, + 0x0b99, 0x0b9d, 0x0ba7, 0x0bad, 0x0bb2, 0x0bba, 0x0bba, 0x0bc0, + 0x0bca, 0x0bd0, 0x0bdc, 0x0bdc, 0x0bdf, 0x0bea, 0x0bef, 0x0bff, + // Entry 1C0 - 1FF + 0x0c07, 0x0c0f, 0x0c14, 0x0c19, 0x0c22, 0x0c2f, 0x0c3a, 0x0c41, + 0x0c4b, 0x0c55, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c5f, 0x0c67, 0x0c67, + 0x0c72, 0x0c72, 0x0c72, 0x0c7c, 0x0c7c, 0x0c8b, 0x0c90, 0x0c90, + 0x0c9d, 0x0ca5, 0x0cb2, 0x0cb2, 0x0cb2, 0x0cb7, 0x0cbf, 0x0cbf, + 0x0cbf, 0x0cbf, 0x0cc7, 0x0ccd, 0x0cd4, 0x0cda, 0x0cee, 0x0cf5, + 0x0cfb, 0x0d02, 0x0d02, 0x0d0a, 0x0d0f, 0x0d1a, 0x0d1f, 0x0d1f, + 0x0d2b, 0x0d31, 0x0d35, 0x0d35, 0x0d3c, 0x0d4b, 0x0d52, 0x0d52, + 0x0d58, 0x0d5d, 0x0d6a, 0x0d70, 0x0d70, 0x0d70, 0x0d7c, 0x0d87, + // Entry 200 - 23F + 0x0d92, 0x0d9c, 0x0da3, 0x0dac, 0x0db6, 0x0dbd, 0x0dc1, 0x0dc1, + 0x0dc7, 0x0dcb, 0x0dd2, 0x0dd8, 0x0deb, 0x0df4, 0x0df4, 0x0df4, + 0x0df9, 0x0dfd, 0x0e03, 0x0e09, 0x0e0e, 0x0e12, 0x0e1e, 0x0e1e, + 0x0e27, 0x0e2f, 0x0e2f, 0x0e36, 0x0e42, 0x0e4b, 0x0e4b, 0x0e51, + 0x0e51, 0x0e5c, 0x0e5c, 0x0e63, 0x0e6d, 0x0e75, 0x0e7d, 0x0e96, + 0x0e9d, 0x0ea8, 0x0eaf, 0x0eb4, 0x0eb8, 0x0eb8, 0x0eb8, 0x0eb8, + 0x0eb8, 0x0ebc, 0x0ebc, 0x0ec3, 0x0ed1, 0x0ed7, 0x0edd, 0x0ee2, + 0x0eeb, 0x0eeb, 0x0ef2, 0x0ef2, 0x0ef6, 0x0ef9, 0x0f01, 0x0f09, + // Entry 240 - 27F + 0x0f0e, 0x0f0e, 0x0f19, 0x0f21, 0x0f2e, 0x0f2e, 0x0f34, 0x0f50, + 0x0f55, 0x0f6c, 0x0f72, 0x0f8c, 0x0fa2, 0x0fb1, 0x0fc4, 0x0fd7, + 0x0fe6, 0x0ffc, 0x1006, 0x101d, 0x102c, 0x103c, 0x103c, 0x104c, + 0x105c, 0x1067, 0x106d, 0x1084, 0x1097, 0x109f, 0x10ad, 0x10ba, + 0x10d3, 0x10ec, +} // Size: 1244 bytes + +var mkLangStr string = "" + // Size: 10127 bytes + "афарÑкиапхаÑкиавеÑтанÑкиафриканÑаканÑкиамхарÑкиарагонÑкиарапÑкиаÑамÑкиав" + + "арÑкиајмарÑкиазербејџанÑкибашкирÑкибелоруÑкибугарÑкибиÑламабамбарабенга" + + "лÑкитибетÑкибретонÑкибоÑанÑкикаталонÑкичеченÑкичаморÑкикорзиканÑкикриче" + + "шкицрковноÑловенÑкичувашкивелшкиданÑкигерманÑкидивехиѕонгкаевегрчкиангл" + + "иÑкиеÑперантошпанÑкиеÑтонÑкибаÑкиÑкиперÑиÑкифулафинÑкифиџиÑкифарÑкифран" + + "цуÑкизападнофризиÑкиирÑкишкотÑки гелÑкигалициÑкигваранÑкигуџаратиманкÑÑ…" + + "ауÑахебрејÑкихиндихири мотухрватÑкихаитÑкиунгарÑкиерменÑкихерероинтерли" + + "нгваиндонезиÑкиокциденталигбоÑичуан јиинупијачкиидоиÑландÑкииталијанÑки" + + "инуктитутјапонÑкијаванÑкигрузиÑкиконгокикујуквањамаказакÑтанÑкикалалиÑу" + + "ткмерÑкиканнадакорејÑкиканурикашмирÑкикурдÑкикомикорнÑкикиргиÑтанÑкилат" + + "инÑкилукÑембуршкигандалимбуршкилингалалаошкилитванÑкилуба-катангалатвиÑ" + + "кималгашкимаршалÑкимаорÑкимакедонÑкималајаламмонголÑкимаратималајÑкимал" + + "тешкибурманÑкинауруанÑкиÑеверен ндебеленепалÑкиндонгахоландÑкинорвешки " + + "нинорÑкнорвешки букмолјужен ндебеленавахоњанџаокÑитанÑкиоџибваоромоориј" + + "аоÑетÑкипенџапÑкипалиполÑкипаштунÑкипортугалÑкикечуанÑкиретороманÑкирун" + + "дироманÑкируÑкируандаÑанÑкритÑардинÑкиÑиндиÑевернолапонÑкиÑангоÑинхалÑк" + + "иÑловачкиÑловенечкиÑамоанÑкишонаÑомалиÑкиалбанÑкиÑрпÑкиÑватиÑеÑотоÑундÑ" + + "кишведÑкиÑвахилитамилÑкителугутаџикиÑтанÑкитајландÑкитигрињатуркменÑкиц" + + "ванатонганÑкитурÑкицонгататарÑкитахитÑкиујгурÑкиукраинÑкиурдуузбекиÑтан" + + "ÑкивендавиетнамÑкиволапиквалонÑкиволофÑкикоÑајидишјорупÑкиџуаншкикинеÑк" + + "изулуачешкиаколиадангмеадигејÑкитуниÑки арапÑкиафрихилиагемÑкиајнуакадÑ" + + "киалабамÑкиалеутÑкигешки албанÑкијужноалтајÑкиÑтароанглиÑкиангикаарамеј" + + "ÑкимапучкиараонаарапахоалжирÑки арапÑкиаравачкимароканÑки арапÑкиегипет" + + "Ñки арапÑкиаÑуамериканÑки знаковен јазикаÑтурÑкикотаваавадибелуџиÑкибал" + + "иÑкибаварÑкибаÑабамунÑкитобагомалабеџабембабетавÑкибенабафутбадагазапад" + + "ен балочибоџпурибиколÑкибинибанџарÑкикомÑикÑикабишнупријабахтијарÑкибра" + + "јбрахујÑкибодоакоÑебурјатÑкибугиÑкибулубиленÑкимедумбакадокарипÑкикајуг" + + "аацамÑебуанÑкичигачибчачагатајÑкичучкимариÑкичинучки жаргончоктавÑкичип" + + "евјанÑкичерокиÑкичејенÑкицентрален курдÑкикоптÑкикапизнонкримÑкотурÑкик" + + "ашупÑкидакотадаргватаитаделаверÑлејвидогрипÑкидинказармадогридолнолужич" + + "кидуÑунÑкидуалаÑреднохоландÑкијола-фоњиџуладазагаембуефикемилијанÑкиÑта" + + "роегипетÑкиекаџукеламÑкиÑредноанглиÑкицентралнојупичкиевондоекÑтремадур" + + "ÑкифангфилипинÑкитурнедаленÑки финÑкифонкаџунÑки француÑкиÑреднофранцуÑ" + + "киÑтарофранцуÑкифранкопрованÑалÑкиÑевернофризиÑкииÑточнофризиÑкифурланÑ" + + "кигагагауÑкигангајогбајазороаÑтриÑки даригизгилбертанÑкигиланÑкиÑредног" + + "орногерманÑкиÑтарогорногерманÑкигоанÑки конканигондигоронталоготÑкигреб" + + "оÑтарогрчкишвајцарÑки германÑкигвахирофарефарегуÑигвичинÑкихајдахакахав" + + "ајÑкифиџиÑки хиндихилигајнонÑкихетитÑкихмонггорнолужичкиÑјангхупаибаниб" + + "ибиоилоканÑкиингушкиижорÑкијамајÑки креолÑкиложбаннгомбамачамееврејÑкоп" + + "ерÑиÑкиеврејÑкоарапÑкијитÑкикаракалпачкикабилÑкикачинÑкикаџекамбакавика" + + "бардинÑкиканембутјапмакондекабувердианукењангкорокаинганшкикаÑихотанÑки" + + "којра чииниковарÑкизазакикакокаленџинкимбундукоми-пермјачкиконканикозре" + + "јÑкикпелекарачаевÑко-балкарÑкикриокинарајÑкикарелÑкикурухшамбалабафијак" + + "олоњÑкикумичкикутенајÑкиладинолангиландаламбалезгинÑкилингва франка нов" + + "алигурÑкиливонÑкилакотÑкиломбардÑкимонголозиÑевернолуриÑкилатгалÑкилуба" + + "-лулуалујÑењÑкилундалуомизолујакнижевен кинеÑкилаÑкимадурÑкимафамагахима" + + "итилимакаÑарÑкимандингомаÑајÑкимабамокшанÑкимандарÑкимендемерумориÑјенÑ" + + "редноирÑкимакува-митометамикмакминангкабауманџурÑкиманипуримохавÑкимоÑи" + + "западномариÑкимундангповеќе јазицикрикмирандÑкимарваримјенеерзјанÑкимаз" + + "ендеранÑкијужноминÑкинеаполÑкинамадолногерманÑкиневарÑкинијаÑниуејÑкиао" + + "квазионгиембунногајÑкиÑтаронордиÑкиновијалнкоÑеверен ÑотонуерклаÑичен н" + + "еварÑкињамвезињанколењоронзимаоÑашкиотоманÑки турÑкипангаÑинанÑкиÑредно" + + "перÑиÑкипампангапапијаментопалауанÑкипикардÑкипенÑилваниÑки германÑкиме" + + "нонитÑки долногерманÑкиÑтароперÑиÑкифалечкогерманÑкифеникиÑкипиемонтÑки" + + "понтÑкипонпејÑкипруÑкиÑтаропрованÑалÑкикичекичванÑкираџаÑтанÑкирапанујÑ" + + "кираротонганÑкиромањолÑкирифÑкиромборомÑкиротуманÑкируÑинÑкировијанÑкив" + + "лашкируаÑандавејакутÑкиÑамарјанÑки арамејÑкиÑамбуруÑаÑачкиÑанталиÑаураш" + + "трангембејÑангуÑицилијанÑкишкотÑки германÑкиÑаÑарÑки ÑардинÑкијужнокурд" + + "ÑкиÑенекаÑенаÑериÑелкупÑкикојраборо ÑениÑтароирÑкиÑамогитÑкитачелхитшан" + + "чадÑки арапÑкиÑидамодолношлезиÑкиÑелајарÑкијужнолапонÑкилулÑки лапонÑки" + + "инарÑки лапонÑкиÑколтÑки лапонÑкиÑонинкезогдијанÑкиÑранÑки тонгоÑерерÑа" + + "хозатерландÑки фризиÑкиÑукумаÑуÑуÑумерÑкикоморијанÑкиклаÑичен ÑириÑкиÑи" + + "риÑкишлезиÑкитулутимнетеÑотеренотетумтигретивтокелауанÑкицахурÑкиклинго" + + "нÑкитлингитталишкитамашекњаÑа тонгаток пиÑинтуројотарокоцаконÑкицимшија" + + "нÑкитатÑкитумбукатувалуанÑкитазавактуванÑкицентрално мароканÑки тамазит" + + "ÑкиудмуртÑкиугаритÑкиумбундукоренвајвенетÑкивепшкизападнофламанÑкимајнÑ" + + "кофранконÑкивотÑкивирувунџовалÑерволамоварајÑкивашовукалмичкимегрелÑкиÑ" + + "огајаојапÑкијенгбенјембањенгатукантонÑкизапотечкиблиÑÑимболизеландÑкизе" + + "нагаÑтандарден мароканÑки тамазигтÑкизунибез лингвиÑтичка Ñодржиназазал" + + "итературен арапÑкибританÑки англиÑкиамериканÑки англиÑкишпанÑки (во Евр" + + "опа)француÑки (во Канада)португалÑки (во Европа)молдавÑкиÑрпÑкохрватÑки" + + "конгоанÑки ÑвахилипоедноÑтавен кинеÑкитрадиционален кинеÑки" + +var mkLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x001c, 0x0030, 0x0040, 0x004e, 0x005e, 0x0070, + 0x007e, 0x008c, 0x009a, 0x00aa, 0x00c4, 0x00d6, 0x00e8, 0x00f8, + 0x0106, 0x0114, 0x0126, 0x0136, 0x0148, 0x0158, 0x016c, 0x017c, + 0x018c, 0x01a2, 0x01a8, 0x01b2, 0x01d2, 0x01e0, 0x01ec, 0x01f8, + 0x020a, 0x0216, 0x0222, 0x0228, 0x0232, 0x0242, 0x0254, 0x0262, + 0x0272, 0x0282, 0x0292, 0x029a, 0x02a6, 0x02b4, 0x02c0, 0x02d2, + 0x02f0, 0x02fa, 0x0315, 0x0327, 0x0339, 0x0349, 0x0353, 0x035d, + 0x036f, 0x0379, 0x038a, 0x039a, 0x03a8, 0x03b8, 0x03c8, 0x03d4, + // Entry 40 - 7F + 0x03ea, 0x0400, 0x0414, 0x041c, 0x042d, 0x0441, 0x0447, 0x0459, + 0x046f, 0x0481, 0x0491, 0x04a1, 0x04b1, 0x04bb, 0x04c7, 0x04d5, + 0x04ed, 0x04ff, 0x050d, 0x051b, 0x052b, 0x0537, 0x0549, 0x0557, + 0x055f, 0x056d, 0x0585, 0x0595, 0x05ad, 0x05b7, 0x05c9, 0x05d7, + 0x05e3, 0x05f5, 0x060c, 0x061c, 0x062c, 0x063e, 0x064c, 0x0660, + 0x0672, 0x0684, 0x0690, 0x06a0, 0x06b0, 0x06c2, 0x06d6, 0x06f3, + 0x0703, 0x070f, 0x0721, 0x0740, 0x075d, 0x0776, 0x0782, 0x078c, + 0x07a0, 0x07ac, 0x07b6, 0x07c0, 0x07ce, 0x07e0, 0x07e8, 0x07f4, + // Entry 80 - BF + 0x0806, 0x081c, 0x082e, 0x0846, 0x0850, 0x0860, 0x086a, 0x0876, + 0x0886, 0x0898, 0x08a2, 0x08c0, 0x08ca, 0x08dc, 0x08ec, 0x0900, + 0x0912, 0x091a, 0x092c, 0x093c, 0x0948, 0x0952, 0x095e, 0x096c, + 0x097a, 0x0988, 0x0998, 0x09a4, 0x09be, 0x09d2, 0x09e0, 0x09f4, + 0x09fe, 0x0a10, 0x0a1c, 0x0a26, 0x0a36, 0x0a46, 0x0a56, 0x0a68, + 0x0a70, 0x0a8a, 0x0a94, 0x0aa8, 0x0ab6, 0x0ac6, 0x0ad6, 0x0ade, + 0x0ae8, 0x0af8, 0x0b06, 0x0b14, 0x0b1c, 0x0b28, 0x0b32, 0x0b40, + 0x0b52, 0x0b6f, 0x0b7f, 0x0b8d, 0x0b95, 0x0ba3, 0x0bb5, 0x0bc5, + // Entry C0 - FF + 0x0be0, 0x0bfa, 0x0c14, 0x0c20, 0x0c32, 0x0c40, 0x0c4c, 0x0c5a, + 0x0c79, 0x0c89, 0x0cac, 0x0ccd, 0x0cd3, 0x0d05, 0x0d15, 0x0d21, + 0x0d2b, 0x0d3d, 0x0d4b, 0x0d5b, 0x0d63, 0x0d73, 0x0d7b, 0x0d87, + 0x0d8f, 0x0d99, 0x0da9, 0x0db1, 0x0dbb, 0x0dc7, 0x0de2, 0x0df0, + 0x0e00, 0x0e08, 0x0e1a, 0x0e20, 0x0e2e, 0x0e42, 0x0e58, 0x0e60, + 0x0e72, 0x0e7a, 0x0e84, 0x0e96, 0x0ea4, 0x0eac, 0x0ebc, 0x0eca, + 0x0ed2, 0x0ee2, 0x0eee, 0x0ef6, 0x0f08, 0x0f10, 0x0f1a, 0x0f2e, + 0x0f38, 0x0f46, 0x0f61, 0x0f73, 0x0f89, 0x0f9b, 0x0fab, 0x0fcc, + // Entry 100 - 13F + 0x0fda, 0x0fea, 0x1004, 0x1014, 0x1020, 0x102c, 0x1036, 0x1044, + 0x1050, 0x1062, 0x106c, 0x1076, 0x1080, 0x1098, 0x10a8, 0x10b2, + 0x10d0, 0x10e1, 0x10e9, 0x10f5, 0x10fd, 0x1105, 0x111b, 0x1137, + 0x1143, 0x1151, 0x116d, 0x118d, 0x1199, 0x11b5, 0x11bd, 0x11d1, + 0x11f8, 0x11fe, 0x1221, 0x123f, 0x125b, 0x127f, 0x129d, 0x12bb, + 0x12cd, 0x12d1, 0x12e1, 0x12e7, 0x12ef, 0x12f9, 0x131a, 0x1320, + 0x1338, 0x1348, 0x1370, 0x1396, 0x13b3, 0x13bd, 0x13cf, 0x13db, + 0x13e5, 0x13f9, 0x1420, 0x142e, 0x143e, 0x1446, 0x1458, 0x1462, + // Entry 140 - 17F + 0x146a, 0x147a, 0x1493, 0x14ad, 0x14bd, 0x14c7, 0x14df, 0x14e9, + 0x14f1, 0x14f9, 0x1505, 0x1517, 0x1525, 0x1533, 0x1554, 0x1560, + 0x156c, 0x1578, 0x1598, 0x15b6, 0x15c2, 0x15da, 0x15ea, 0x15fa, + 0x1602, 0x160c, 0x1614, 0x162a, 0x1638, 0x1640, 0x164e, 0x1666, + 0x1672, 0x167a, 0x168e, 0x1696, 0x16a6, 0x16bb, 0x16cb, 0x16d7, + 0x16df, 0x16ef, 0x16ff, 0x171a, 0x1728, 0x173a, 0x1744, 0x176d, + 0x1775, 0x1789, 0x1799, 0x17a3, 0x17b1, 0x17bd, 0x17cd, 0x17db, + 0x17ef, 0x17fb, 0x1805, 0x180f, 0x1819, 0x182b, 0x184d, 0x185d, + // Entry 180 - 1BF + 0x186d, 0x187d, 0x1891, 0x189b, 0x18a3, 0x18bf, 0x18d1, 0x18e4, + 0x18f6, 0x1900, 0x1906, 0x190e, 0x1916, 0x1935, 0x193f, 0x194f, + 0x1957, 0x1963, 0x1971, 0x1985, 0x1995, 0x19a5, 0x19ad, 0x19bf, + 0x19d1, 0x19db, 0x19e3, 0x19f3, 0x1a09, 0x1a1e, 0x1a26, 0x1a32, + 0x1a48, 0x1a5a, 0x1a6a, 0x1a7a, 0x1a82, 0x1a9e, 0x1aac, 0x1ac5, + 0x1acd, 0x1adf, 0x1aed, 0x1aed, 0x1af7, 0x1b09, 0x1b23, 0x1b39, + 0x1b4b, 0x1b53, 0x1b6f, 0x1b7f, 0x1b89, 0x1b99, 0x1b9d, 0x1ba9, + 0x1bb9, 0x1bc9, 0x1be3, 0x1bf1, 0x1bf7, 0x1c0e, 0x1c16, 0x1c37, + // Entry 1C0 - 1FF + 0x1c45, 0x1c53, 0x1c5b, 0x1c65, 0x1c71, 0x1c90, 0x1caa, 0x1cc6, + 0x1cd6, 0x1cec, 0x1d00, 0x1d12, 0x1d3f, 0x1d70, 0x1d8a, 0x1daa, + 0x1dbc, 0x1dd0, 0x1dde, 0x1df0, 0x1dfc, 0x1e1e, 0x1e26, 0x1e38, + 0x1e4e, 0x1e62, 0x1e7c, 0x1e90, 0x1e9c, 0x1ea6, 0x1eb2, 0x1ec6, + 0x1ed6, 0x1eea, 0x1ef6, 0x1efc, 0x1f0a, 0x1f1a, 0x1f43, 0x1f51, + 0x1f5f, 0x1f6d, 0x1f7f, 0x1f8d, 0x1f97, 0x1faf, 0x1fd0, 0x1ff3, + 0x200b, 0x2017, 0x201f, 0x2027, 0x2039, 0x2054, 0x2068, 0x207c, + 0x208c, 0x2092, 0x20ad, 0x20b9, 0x20d3, 0x20e7, 0x2101, 0x211e, + // Entry 200 - 23F + 0x213d, 0x215e, 0x216c, 0x2182, 0x219b, 0x21a5, 0x21ad, 0x21d6, + 0x21e2, 0x21ea, 0x21fa, 0x2212, 0x2231, 0x223f, 0x224f, 0x2257, + 0x2261, 0x2269, 0x2275, 0x227f, 0x2289, 0x228f, 0x22a7, 0x22b7, + 0x22cb, 0x22d9, 0x22e7, 0x22f5, 0x2308, 0x2319, 0x2325, 0x2331, + 0x2341, 0x2357, 0x2363, 0x2371, 0x2387, 0x2395, 0x23a5, 0x23e1, + 0x23f3, 0x2405, 0x2413, 0x241d, 0x2423, 0x2433, 0x243f, 0x245f, + 0x2481, 0x248d, 0x2495, 0x249f, 0x24ab, 0x24b7, 0x24c7, 0x24cf, + 0x24cf, 0x24d3, 0x24e3, 0x24f5, 0x24fd, 0x2503, 0x250f, 0x251d, + // Entry 240 - 27F + 0x2527, 0x2535, 0x2547, 0x2559, 0x256f, 0x2581, 0x258d, 0x25cd, + 0x25d5, 0x2605, 0x260d, 0x2632, 0x2632, 0x2632, 0x2632, 0x2632, + 0x2632, 0x2655, 0x267c, 0x267c, 0x269e, 0x269e, 0x269e, 0x26c4, + 0x26c4, 0x26c4, 0x26c4, 0x26c4, 0x26ee, 0x2700, 0x271c, 0x273f, + 0x2766, 0x278f, +} // Size: 1244 bytes + +var mlLangStr string = "" + // Size: 11903 bytes + "അഫാർഅബàµ\u200cഖാസിയൻഅവസàµà´±àµà´±à´¾àµ»à´†à´«àµà´°à´¿à´•àµà´•à´¾àµ»à´¸àµà´…കാൻ\u200cഅംഹാരികàµà´…രഗോണീസàµà´…റബികàµ" + + "ആസàµà´¸à´¾à´®àµ€à´¸àµà´…വാരികàµà´…à´¯àµà´®à´¾à´±à´…സർബൈജാനിബഷàµà´–ിർബെലാറàµà´·àµà´¯àµ»à´¬àµ¾à´—േറിയൻബിസàµ\u200cലാമബം" + + "ബാറബംഗാളിടിബറàµà´±àµ»à´¬àµà´°àµ†à´Ÿàµà´Ÿàµºà´¬àµ‹à´¸àµà´¨à´¿à´¯àµ»à´•à´±àµà´±à´¾à´²à´¾àµ»à´šàµ†à´šàµ»à´•à´®àµ‹à´±àµ‹à´•àµ‹àµ¼à´¸à´¿à´•àµà´•àµ»à´•àµà´°àµ€à´šàµ†à´•àµà´•àµà´šàµ¼" + + "à´šàµà´šàµ à´¸àµà´²à´¾à´µà´¿à´•àµà´šàµà´µà´¾à´·àµà´µàµ†àµ½à´·àµà´¡à´¾à´¨à´¿à´·àµà´œàµ¼à´®àµà´®àµ»à´¦à´¿à´µàµ†à´¹à´¿à´¸àµ‹à´™àµà´•à´‡à´µàµà´—àµà´°àµ€à´•àµà´•àµà´‡à´‚à´—àµà´²àµ€à´·àµà´Žà´¸àµ" + + "\u200cപരാനàµà´±àµ‹à´¸àµ\u200cപാനിഷàµà´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯àµ»à´¬à´¾à´¸àµ\u200cà´•àµà´ªàµ‡àµ¼à´·àµà´¯àµ»à´«àµà´²à´«à´¿à´¨àµà´¨à´¿à´·àµà´«à´¿à´œà´¿" + + "യൻഫാറോസàµà´«àµà´°à´žàµà´šàµà´ªà´¶àµà´šà´¿à´® à´«àµà´°à´¿à´·à´¿à´¯àµ»à´à´±à´¿à´·àµà´¸àµà´•àµ‹à´Ÿàµà´Ÿà´¿à´·àµ ഗൈലികàµà´—ലീഷàµà´¯àµ»à´—àµà´µà´°à´¨àµ€à´—àµà´œà´±à´¾" + + "à´¤àµà´¤à´¿à´®à´¾àµ»à´¸àµà´¹àµ—സഹീബàµà´°àµà´¹à´¿à´¨àµà´¦à´¿à´¹à´¿à´°à´¿ മോതàµà´•àµà´°àµŠà´¯àµ‡à´·àµà´¯àµ»à´¹àµ†à´¯àµ\u200cതിയൻഹംഗേറിയൻഅർമേന" + + "ിയൻഹെരേരൊഇനàµà´±àµ¼à´²à´¿àµ»\u200cà´—àµà´µà´¾à´‡àµ»à´¡àµ‹à´¨àµ‡à´·àµà´¯àµ»à´‡à´¨àµà´±àµ¼à´²à´¿à´‚à´—àµà´µà´‡à´—àµà´¬àµ‹à´·àµà´µà´¾àµ»à´¯à´¿à´‡à´¨àµà´ªà´¿à´¯à´¾à´•àµà´‡" + + "ഡോà´à´¸àµ\u200cലാൻഡികàµà´‡à´±àµà´±à´¾à´²à´¿à´¯àµ»à´‡à´¨àµà´•àµà´±àµà´±à´¿à´±àµà´±à´Ÿàµà´Ÿàµà´œà´¾à´ªàµà´ªà´¨àµ€à´¸àµà´œà´¾à´µà´¾à´¨àµ€à´¸àµà´œàµ‹àµ¼à´œà´¿à´¯àµ»à´•àµ‹à´‚" + + "ഗോകികൂയàµà´•àµà´µà´¾à´¨àµà´¯à´®à´•à´¸à´¾à´–àµà´•à´²à´¾à´²àµà´²à´¿à´¸à´Ÿàµà´Ÿàµà´–മെർകനàµà´¨à´¡à´•àµŠà´±à´¿à´¯àµ»à´•à´¨àµ‚റികാശàµ\u200cമീരികàµàµ¼" + + "à´¦àµà´¦à´¿à´·àµà´•àµ‹à´®à´¿à´•àµ‹àµ¼à´£à´¿à´·àµà´•à´¿àµ¼à´—à´¿à´¸àµà´²à´¾à´±àµà´±à´¿àµ»à´²à´•àµ\u200cസംബർഗിഷàµà´—ാണàµà´Ÿà´²à´¿à´‚ബർഗിഷàµà´²à´¿à´‚ഗാലലാ" + + "വോലിതàµà´µà´¾à´¨à´¿à´¯àµ»à´²àµà´¬-à´•à´±àµà´±à´‚ഗലാറàµà´±àµà´µà´¿à´¯àµ»à´®à´²à´—ാസിമാർഷലàµà´²àµ€à´¸àµà´®à´µàµ‹à´±à´¿à´®à´¾à´¸à´¿à´¡àµ‹à´£à´¿à´¯àµ»à´®à´²à´¯à´¾à´³à´‚à´®" + + "ംഗോളിയൻമറാതàµà´¤à´¿à´®à´²àµ†à´¯àµà´®à´¾àµ¾à´Ÿàµà´Ÿàµ€à´¸àµà´¬àµ¼à´®àµ€à´¸àµà´¨àµ—à´±àµà´¨àµ‹àµ¼à´¤àµà´¤àµ ഡെബിൾനേപàµà´ªà´¾à´³à´¿à´¡àµ‹à´™àµà´•à´¡à´šàµà´šàµà´¨" + + "ോർവീജിയൻ നൈനോർകàµ\u200cà´¸àµà´¨àµ‹àµ¼à´µàµ€à´œà´¿à´¯àµ» à´¬àµà´•àµ\u200cമൽദകàµà´·à´¿à´£ നെഡിബിൾനവാഹൊനàµà´¯àµ»à´œ" + + "à´“à´•àµ\u200cസിറàµà´±àµ»à´“ജിബàµà´µà´¾à´’റോമോഒഡിയഒസàµà´¸àµ†à´±àµà´±à´¿à´•àµà´ªà´žàµà´šà´¾à´¬à´¿à´ªà´¾à´²à´¿à´ªàµ‹à´³à´¿à´·àµà´ªà´·àµà´¤àµà´ªàµ‹àµ¼à´šàµà´š" + + "àµà´—ീസàµà´•àµà´µàµ†à´šàµà´šàµà´µà´±àµŠà´®à´¾à´žàµà´šàµà´±àµà´£àµà´Ÿà´¿à´±àµŠà´®à´¾à´¨à´¿à´¯àµ»à´±à´·àµà´¯àµ»à´•à´¿à´¨àµà´¯à´¾àµ¼à´µà´¾à´£àµà´Ÿà´¸à´‚à´¸àµ\u200cകൃതംസർഡ" + + "ിനിയാൻസിനàµà´§à´¿à´µà´Ÿà´•àµà´•àµ» സമിസാംഗോസിംഹളസàµà´²àµ‹à´µà´¾à´•àµà´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯àµ»à´¸à´®àµ‹à´µàµ»à´·àµ‹à´£à´¸àµ‹à´®à´¾à´²à´¿à´…ൽബേനി" + + "യൻസെർബിയൻസàµà´µà´¾à´±àµà´±à´¿à´¤àµ†à´•àµà´•àµ» സോതോസàµà´£àµà´Ÿà´¾à´¨àµ€à´¸àµà´¸àµà´µàµ€à´¡à´¿à´·àµà´¸àµà´µà´¾à´¹à´¿à´²à´¿à´¤à´®à´¿à´´àµà´¤àµ†à´²àµà´™àµà´•àµà´¤à´¾à´œ" + + "à´¿à´•àµà´¤à´¾à´¯àµà´Ÿàµˆà´—àµà´°à´¿à´¨àµà´¯à´¤àµàµ¼à´•àµ\u200cമെൻതàµà´¸àµà´µà´¾à´¨à´Ÿàµ‹à´‚ഗൻടർകàµà´•à´¿à´·àµà´¤àµà´¸àµ‹à´‚ഗടാടàµà´Ÿàµ¼à´¤à´¾à´¹à´¿à´¤à´¿à´¯àµ»" + + "ഉയàµà´˜àµàµ¼à´‰à´•àµà´°àµ‡à´¨à´¿à´¯àµ»à´‰à´±àµà´¦àµà´‰à´¸àµ\u200cബെകàµà´•àµà´µàµ†à´¨àµà´¦à´µà´¿à´¯à´±àµà´±àµà´¨à´¾à´®àµ€à´¸àµà´µàµ‹à´³à´¾à´ªàµà´•àµà´µà´²àµà´²àµ‚ൺവൊള" + + "ോഫàµà´–ോസയിദàµà´¦à´¿à´·àµà´¯àµŠà´±àµ‚ബാസàµà´µà´¾à´‚à´—àµà´šàµˆà´¨àµ€à´¸àµà´¸àµà´²àµà´…ചിനീസàµà´…കോലിഅഡാങàµà´—മിഅഡൈഗേആഫàµà´°à´¿à´¹à´¿à´²" + + "ിആഘേംഅയിനàµà´…à´•àµà´•à´¾à´¡à´¿à´¯àµ»à´…ലൈടàµà´Ÿàµà´¤àµ†à´•àµà´•àµ» അൾതàµà´¤à´¾à´¯à´¿à´ªà´´à´¯ ഇംഗàµà´²àµ€à´·àµà´†àµ»à´—ികഅരമായഭാഷമാപàµ" + + "ചിഅരപാഹോഅറാവകàµà´†à´¸àµà´“à´¸àµ\u200cà´Ÿàµà´°à´¿à´¯àµ»à´…വധിബലൂചിബാലിനീസàµà´¬à´¸à´¬à´¾à´®àµàµ»à´˜àµ‹à´®à´¾à´²à´¬àµ‡à´œà´¬àµ‡à´‚ബബെ" + + "നാബാഫടàµà´Ÿàµà´ªà´¶àµà´šà´¿à´® ബലൂചിഭോജàµ\u200cപൂരിബികോൽബിനികോംസികàµà´¸à´¿à´•à´¬àµà´°à´œàµà´¬àµ‹à´¡àµ‹à´…à´•àµà´•àµ‚à´¸àµ" + + "à´¬àµà´±à´¿à´¯à´¤àµà´¤àµà´¬àµà´—ിനീസàµà´¬àµà´³àµà´¬àµà´²à´¿àµ»à´®àµ†à´¡àµà´‚ബകാഡോകാരിബàµà´•à´¯àµ‚à´—à´…à´±àµà´±àµà´¸à´¾à´‚സെബàµà´µà´¾à´¨àµ‹à´šà´¿à´—à´šà´¿à´¬àµà´š" + + "ചഗതൈചൂകീസàµà´®à´¾à´°à´¿à´šà´¿à´¨àµ‚à´—àµ-ജാർഗൺചോകàµà´±àµà´±à´¾à´µàµà´šà´¿à´ªàµ‡à´µàµà´¯àµ»à´·àµ†à´°àµ‹à´•àµà´•à´¿à´šà´¿à´¯àµ‡à´¨àµà´¨àµ‡à´¸àµŠà´±à´¾à´¨à´¿ à´•àµàµ¼" + + "ദിഷàµà´•àµ‹à´ªàµà´±àµà´±à´¿à´•àµà´•àµà´°à´¿à´®à´¿à´¯àµ» ടർകàµà´•à´¿à´·àµà´•à´¾à´·àµà´¬à´¿à´¯à´¾àµ»à´¡à´•àµ‹à´Ÿàµà´Ÿà´¡àµ¼à´—àµà´µà´¾à´¤àµˆà´¤à´¦à´²à´µà´¾à´°àµ†à´¸àµà´²àµ‡à´µàµà´¡àµ‹à´—" + + "àµà´°à´¿à´¬àµà´¦à´¿àµ»à´•à´¸à´¾àµ¼à´®àµà´®à´¡àµ‹à´—àµà´°à´¿à´²àµ‹à´µàµ¼ സോർബിയൻദàµà´µà´¾à´²à´®à´¦àµà´§àµà´¯ à´¡à´šàµà´šàµà´¯àµ‹à´²-ഫോനàµà´¯à´¿à´¦àµà´µàµˆà´²à´¡à´¾à´¸à´¾à´—" + + "à´Žà´‚à´¬àµà´Žà´«à´¿à´•àµà´ªàµà´°à´¾à´šàµ€à´¨ ഈജിപàµà´·àµà´¯àµ»à´Žà´•à´¾à´œàµà´•àµà´Žà´²à´¾à´®àµˆà´±àµà´±àµà´®à´¦àµà´§àµà´¯ ഇംഗàµà´²àµ€à´·àµà´Žà´µàµ‹àµ»à´¡àµ‹à´«à´™àµà´«à´¿à´²à´¿" + + "à´ªàµà´ªà´¿à´¨àµ‹à´«àµ‹àµ»à´®à´¦àµà´§àµà´¯ à´«àµà´°à´žàµà´šàµà´ªà´´à´¯ à´«àµà´°à´žàµà´šàµà´¨àµ‹àµ¼à´¤àµà´¤àµ‡àµ» à´«àµà´°à´¿à´·àµà´¯àµ»à´ˆà´¸àµà´±àµà´±àµ‡àµº à´«àµà´°à´¿à´·àµà´¯àµ»à´«àµ" + + "à´°à´¿à´¯àµà´²à´¿à´¯à´¾àµ»à´—ാഗാഗൂസàµà´—യൊഗബàµà´¯à´—ീസàµà´—ിൽബർസേമദàµà´§àµà´¯ ഉചàµà´š ജർമൻപàµà´°à´¾à´šàµ€à´¨ ഉചàµà´š ജർമൻഗോ" + + "à´£àµà´¡à´¿à´—ൊറോൻറാലോഗോഥികàµà´•àµà´—àµà´°à´¬àµŠà´ªàµà´°à´¾à´¤à´¨ യവന ഭാഷസàµà´µà´¿à´¸àµ ജർമàµà´®àµ»à´—àµà´¸àµ€à´—àµà´µà´¿à´šàµà´šàµ ഇൻഹൈ" + + "ഡഹവായിയൻഹിലിഗയàµà´¨àµ‹àµºà´¹à´¿à´±àµà´±àµˆà´±àµà´±àµ‡à´®àµ‹à´™àµà´…à´ªàµà´ªàµ¼ സോർബിയൻഹൂപഇബാൻഇബീബിയോഇലോകോഇംഗàµà´µà´¿" + + "à´·àµà´²àµ‹à´œàµà´¬à´¾àµ»à´—ോമàµà´ªà´®à´šàµ‡à´‚ജൂഡിയോ-പേർഷàµà´¯àµ»à´œàµ‚ഡിയോ-അറബികàµà´•à´°-കാൽപàµà´ªà´•àµà´•à´¬àµˆàµ½à´•à´¾à´šà´¿àµ»à´œàµà´œàµà´•" + + "ംബകാവികബർഡിയാൻകനെംബàµà´Ÿàµà´¯à´¾à´ªàµà´®à´•àµà´•àµ‹à´£àµà´Ÿàµ†à´•à´¬àµà´µàµ†àµ¼à´¦à´¿à´¯à´¾à´¨àµà´•àµ‹à´±àµ‹à´˜à´¾à´¸à´¿à´˜àµ‹à´±àµà´±à´¾à´¨àµ‡à´¸àµ‡à´•àµŠà´¯àµà´±" + + " ചീനികകàµà´•àµ‹à´•à´²àµ†à´žàµà´žà´¿àµ»à´•àµà´²à´¿à´‚ഗൻകോമി-പെർമàµà´¯à´¾à´•àµà´•àµà´•àµŠà´™àµà´•à´£à´¿à´•àµŠà´¸à´±àµ‡à´¯àµ»à´•à´ªàµ†à´²àµà´²àµ‡à´•à´°à´šàµˆ-ബാൽകർ" + + "കരീലിയൻകàµà´°àµà´–àµà´·à´‚ഭാളഭാഫിയകൊളോഞàµà´žà´¿à´¯àµ»à´•àµà´®àµˆà´•àµà´•àµà´¤àµ‡à´¨àµˆà´²à´¾à´¡à´¿à´¨àµ‹à´²à´¾à´‚ഗിലഹàµ\u200cൻഡലംബ" + + "ലഹàµà´—ിയാൻലഗോതàµà´¤à´®àµ‹à´™àµà´•àµ‹à´²àµŠà´¸à´¿à´µà´Ÿà´•àµà´•àµ» ലൂറിലൂബ-à´²àµà´²àµà´µà´²àµ‚യിസെനോലàµàµ»à´¡à´²àµà´µàµ‹à´®à´¿à´¸àµ‹à´²àµà´¯à´¿à´¯à´®" + + "à´¦àµà´°àµ‡à´¸àµ‡à´®à´¾à´«à´®à´—ാഹിമൈഥിലിമകാസർമണàµà´¡à´¿àµ»à´—ോമസായàµà´®à´¾à´¬à´®àµ‹à´•àµà´·à´®à´£àµà´¡à´¾àµ¼à´®àµ†àµ»à´¡àµ†à´®àµ‡à´°àµà´®àµŠà´±à´¿à´¸à´¿àµ»à´®à´¦" + + "àµà´§àµà´¯ à´à´±à´¿à´·àµà´®à´¾à´–àµà´µà´¾-മീതàµà´¤àµ‹à´®àµ‡à´¤àµà´¤à´¾à´®à´¿à´•àµà´®à´¾à´•àµà´®à´¿à´¨à´¾à´™àµà´•à´¬àµ—മൻചàµà´®à´£à´¿à´ªàµà´ªàµ‚രിമോഹാകàµà´®àµŠà´¸àµà´¸" + + "à´¿à´®àµà´¨àµà´¦à´¾à´‚à´—àµà´ªà´²à´­à´¾à´·à´•àµ¾à´•àµà´°àµ€à´•àµà´•àµà´®à´¿à´°à´¾àµ»à´±à´¸àµ‡à´®àµ¼à´µà´¾à´°à´¿à´®à´¯àµ€àµ»à´à´´àµà´¸àµà´¯à´®à´¸à´¨àµà´±à´±à´¾à´¨à´¿à´¨àµ†à´ªàµà´ªàµ‹à´³à´¿à´±àµà´±à´¾" + + "ൻനാമലോ ജർമൻനേവാരിനിയാസàµà´¨àµà´¯àµà´µà´¾àµ»à´•àµà´µà´¾à´¸à´¿à´¯àµ‹à´—ീംബൂൺനോഗൈപഴയ പേർഷàµà´¯àµ»à´‡àµ»à´•àµ‹à´¨àµ‹àµ¼à´¤àµà´¤àµ‡" + + "ൻ സോതോനàµà´µàµ‡àµ¼à´•àµà´²à´¾à´¸à´¿à´•àµà´•àµ½ നേവാരിനàµà´¯à´¾à´‚വേസിനàµà´¯à´¾àµ»à´•àµ‹àµ¾à´¨àµà´¯àµ‹à´±àµ‹à´¸à´¿à´®à´’സേജàµà´“à´Ÿàµà´Ÿàµ‹à´®àµ» à´¤àµàµ¼" + + "à´•àµà´•à´¿à´·àµà´ªà´™àµà´•à´¾à´¸à´¿à´¨àµ»à´ªà´¾à´¹àµà´²à´µà´¿à´ªà´¾à´‚പൻഗപാപിയാമെൻറൊപലാവàµàµ»à´ªàµà´°à´¾à´šàµ€à´¨ പേർഷàµà´¯àµ»à´«àµ€à´¨à´¿à´·àµà´¯àµ»à´ªàµŠ" + + "ൻപിയൻപàµà´°àµŠà´µàµ»à´·àµàµ½à´•àµà´µà´¿à´šàµà´šàµ†à´°à´¾à´œà´¸àµà´¥à´¾à´¨à´¿à´°à´¾à´ªà´¨àµ‚യിരാരോടോങàµà´•àµ»à´±àµ‹à´‚ബോറോമനിആരോമാനിയൻറàµà´µ" + + "ാസാൻഡവേസാഖസമരിയാകàµà´•à´¾à´°àµà´Ÿàµ† അരമായസംബàµà´°àµà´¸à´¸à´¾à´•àµà´¸à´¨àµà´¤à´¾à´²à´¿à´—ംബായàµà´¸à´‚à´—àµà´¸à´¿à´¸à´¿à´²à´¿à´¯àµ»à´¸àµà´•àµ‹" + + "à´Ÿàµà´¸àµà´¤àµ†à´•àµà´•àµ» à´•àµàµ¼à´¦àµà´¦à´¿à´·àµà´¸àµ†à´¨àµ‡à´•à´¸àµ‡à´¨à´¸àµ†àµ½à´•à´ªàµà´•àµŠà´¯àµà´±à´¾à´¬àµŠà´±àµ‹ സെനàµà´¨à´¿à´ªàµà´°à´¾à´šàµ€à´¨ à´à´±à´¿à´·àµà´¤à´¾à´šàµà´šà´²" + + "à´¿à´±àµà´±àµà´·à´¾àµ»à´šà´¾à´¡àµ അറബിസിഡാമോതെകàµà´•àµ» സാമിലൂലീ സമിഇനാരി സാമിസàµà´•àµ‹àµ¾à´Ÿàµà´Ÿàµ സമിസോണിൻ" + + "കെസോജിഡിയൻശàµà´°à´¾à´¨àµ» ഡോങàµà´•àµ‹à´¸àµ†à´±àµ¼à´¸à´¾à´¹àµ‹à´¸àµà´•àµà´®à´¸àµà´¸àµà´¸àµà´®àµ‡à´°à´¿à´¯àµ»à´•àµŠà´®àµ‹à´±à´¿à´¯àµ»à´ªàµà´°à´¾à´¤à´¨ à´¸àµà´±à´¿à´¯à´¾à´¨" + + "ിഭാഷസàµà´±à´¿à´¯à´¾à´¨à´¿à´Ÿà´¿à´‚നേടെസോടെറേനോടെറàµà´±àµà´‚ടൈഗàµà´°à´¿à´Ÿà´¿à´µàµà´ŸàµŠà´•àµà´•àµ‡à´²àµ—à´•àµà´²à´¿à´‚ഗോൺലിംഗàµà´µà´¿à´±àµà´±" + + "àµà´Ÿà´®à´·àµ‡à´•àµà´¨àµà´¯à´¾à´¸à´¾ ഡോങàµà´•à´Ÿàµ‹à´•àµ പിസിൻതരോകàµà´•àµ‹à´¸à´¿à´‚à´·àµà´¯àµ»à´Ÿàµà´‚à´¬àµà´•à´¤àµà´µà´¾à´²àµà´Ÿà´¸à´µà´¾à´•àµà´•àµà´¤àµà´µà´¿à´¨à´¿à´¯" + + "ൻമധàµà´¯ à´…à´±àµà´±àµ\u200cലസൠടമാസൈറàµà´±àµà´‰à´¡àµà´®àµàµ¼à´Ÿàµà´Ÿàµà´‰à´—റിടàµà´Ÿà´¿à´•àµà´‰à´‚à´¬àµà´¨àµà´¦àµà´®àµ‚ലഭാഷവൈവോടàµ" + + "à´Ÿà´¿à´•àµà´µàµà´žàµà´œàµ‹à´µà´¾àµ¾à´¸àµ¼à´µà´²à´®àµŠà´µà´¾à´°àµ‡à´¯àµà´µà´¾à´·àµŠà´µà´¾àµ¾à´ªàµà´ªà´¿à´°à´¿à´•àµ½à´®àµˆà´•àµà´¸àµ‹à´—ോയാവോയെപàµà´ªàµ€à´¸àµà´¯à´¾à´‚à´—àµà´¬àµ†àµ»à´¯à´‚" + + "ബകാനàµà´±à´£àµ€à´¸àµà´¸à´¾à´ªàµà´ªàµ‹à´Ÿàµ†à´•àµà´¬àµà´²à´¿à´¸àµà´¸à´¿à´‚ബൽസàµà´¸àµ†à´¨à´—മൊറോകàµà´•àµ» സാധാരണ താമസൈറàµà´±àµà´¸àµà´¨à´¿à´­à´¾à´·à´¾" + + "പരമായ ഉളàµà´³à´Ÿà´•àµà´•à´®àµŠà´¨àµà´¨àµà´®à´¿à´²àµà´²à´¸à´¾à´¸à´¾à´†à´§àµà´¨à´¿à´• à´¸àµà´±àµà´±à´¾àµ»à´¡àµ‡àµ¼à´¡àµ അറബികàµà´“à´¸àµ\u200cà´Ÿàµà´°à´¿à´¯àµ»" + + " ജർമൻസàµà´µà´¿à´¸àµ ഹൈ ജർമൻഓസàµ\u200cà´Ÿàµà´°àµ‡à´²à´¿à´¯àµ» ഇംഗàµà´²àµ€à´·àµà´•à´¨àµ‡à´¡à´¿à´¯àµ» ഇംഗàµà´²àµ€à´·àµà´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ " + + "ഇംഗàµà´²àµ€à´·àµà´…മേരികàµà´•àµ» ഇംഗàµà´²àµ€à´·àµà´²à´¾à´±àµà´±à´¿àµ» അമേരികàµà´•àµ» à´¸àµ\u200cപാനിഷàµà´¯àµ‚റോപàµà´¯àµ» à´¸àµ" + + "\u200cപാനിഷàµà´®àµ†à´•àµà´¸à´¿à´•àµà´•àµ» à´¸àµà´ªà´¾à´¨à´¿à´·àµà´•à´¨àµ‡à´¡à´¿à´¯àµ» à´«àµà´°à´žàµà´šàµà´¸àµà´µà´¿à´¸àµ à´«àµà´°à´žàµà´šàµà´²àµ‹ സാകàµà´¸àµºà´«àµà´²" + + "മിഷàµà´¬àµà´°à´¸àµ€à´²à´¿à´¯àµ» പോർചàµà´šàµà´—ീസàµà´¯àµ‚റോപàµà´¯àµ» പോർചàµà´šàµà´—ീസàµà´®àµ‹àµ¾à´¡à´¾à´µà´¿à´¯àµ»à´¸àµ†àµ¼à´¬àµ‹-à´•àµà´°àµŠà´¯àµ‡à´·àµà´¯àµ»" + + "കോംഗോ à´¸àµà´µà´¾à´¹à´¿à´²à´¿" + +var mlLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x002a, 0x0045, 0x0069, 0x0078, 0x0090, 0x00a8, + 0x00ba, 0x00d5, 0x00ea, 0x00fc, 0x0117, 0x0129, 0x0147, 0x015f, + 0x0177, 0x0186, 0x0198, 0x01ad, 0x01c5, 0x01dd, 0x01f5, 0x0201, + 0x0210, 0x022b, 0x0237, 0x0249, 0x0274, 0x0286, 0x0295, 0x02a7, + 0x02b9, 0x02cb, 0x02da, 0x02e3, 0x02fb, 0x0313, 0x0334, 0x034f, + 0x0370, 0x0385, 0x039a, 0x03a3, 0x03bb, 0x03cd, 0x03df, 0x03f4, + 0x041f, 0x042e, 0x045f, 0x0474, 0x0486, 0x04a1, 0x04b0, 0x04b9, + 0x04cb, 0x04dd, 0x04f6, 0x0514, 0x052f, 0x0547, 0x055f, 0x0571, + // Entry 40 - 7F + 0x0598, 0x05b6, 0x05d7, 0x05e6, 0x05fb, 0x0616, 0x061f, 0x0640, + 0x065b, 0x068b, 0x06a6, 0x06be, 0x06d3, 0x06e2, 0x06f4, 0x070c, + 0x071b, 0x073f, 0x074b, 0x075a, 0x076c, 0x077b, 0x0796, 0x07b1, + 0x07bd, 0x07d2, 0x07e7, 0x07fc, 0x0820, 0x082f, 0x084a, 0x085c, + 0x0868, 0x0886, 0x08a2, 0x08c0, 0x08d2, 0x08f0, 0x08ff, 0x091d, + 0x092f, 0x0947, 0x095c, 0x096b, 0x0986, 0x0998, 0x09a4, 0x09c9, + 0x09e1, 0x09f0, 0x09ff, 0x0a39, 0x0a6a, 0x0a92, 0x0aa1, 0x0ab0, + 0x0ace, 0x0ae3, 0x0af2, 0x0afe, 0x0b1f, 0x0b34, 0x0b40, 0x0b52, + // Entry 80 - BF + 0x0b61, 0x0b82, 0x0b9d, 0x0bb5, 0x0bc7, 0x0bdf, 0x0bee, 0x0c12, + 0x0c2d, 0x0c48, 0x0c5a, 0x0c76, 0x0c85, 0x0c94, 0x0cac, 0x0cca, + 0x0cd9, 0x0ce2, 0x0cf4, 0x0d0c, 0x0d21, 0x0d39, 0x0d58, 0x0d76, + 0x0d8e, 0x0da6, 0x0db5, 0x0dcd, 0x0ddf, 0x0deb, 0x0e06, 0x0e21, + 0x0e36, 0x0e45, 0x0e5d, 0x0e6f, 0x0e81, 0x0e99, 0x0eab, 0x0ec6, + 0x0ed5, 0x0ef3, 0x0f02, 0x0f29, 0x0f41, 0x0f53, 0x0f65, 0x0f6e, + 0x0f86, 0x0f98, 0x0fad, 0x0fbf, 0x0fcb, 0x0fe0, 0x0fef, 0x1007, + 0x1016, 0x1016, 0x1031, 0x103d, 0x104c, 0x1067, 0x1067, 0x107c, + // Entry C0 - FF + 0x107c, 0x10a7, 0x10c9, 0x10d8, 0x10f0, 0x1102, 0x1102, 0x1114, + 0x1114, 0x1126, 0x1126, 0x1126, 0x112f, 0x112f, 0x114d, 0x114d, + 0x1159, 0x1168, 0x1180, 0x1180, 0x1186, 0x1195, 0x1195, 0x11a4, + 0x11ad, 0x11b9, 0x11b9, 0x11c5, 0x11da, 0x11da, 0x11fc, 0x1217, + 0x1226, 0x1232, 0x1232, 0x123b, 0x1250, 0x1250, 0x1250, 0x125f, + 0x125f, 0x126b, 0x1280, 0x129b, 0x12b3, 0x12bf, 0x12ce, 0x12e0, + 0x12ec, 0x12fe, 0x130a, 0x1322, 0x133a, 0x1343, 0x1352, 0x135e, + 0x1370, 0x137c, 0x139e, 0x13bc, 0x13d4, 0x13ec, 0x1404, 0x142c, + // Entry 100 - 13F + 0x144a, 0x144a, 0x147b, 0x1496, 0x14a8, 0x14ba, 0x14c3, 0x14d5, + 0x14e7, 0x14ff, 0x150b, 0x151d, 0x152f, 0x1551, 0x1551, 0x1560, + 0x1582, 0x159e, 0x15ad, 0x15bc, 0x15c8, 0x15d7, 0x15d7, 0x1608, + 0x161d, 0x1638, 0x1663, 0x1663, 0x1675, 0x1675, 0x167e, 0x169c, + 0x169c, 0x16a5, 0x16a5, 0x16cd, 0x16ec, 0x16ec, 0x171d, 0x174e, + 0x176f, 0x1775, 0x1787, 0x1787, 0x1790, 0x179c, 0x179c, 0x17a8, + 0x17bd, 0x17bd, 0x17e9, 0x1818, 0x1818, 0x182a, 0x1845, 0x185d, + 0x186c, 0x1892, 0x18b7, 0x18b7, 0x18b7, 0x18c3, 0x18e2, 0x18eb, + // Entry 140 - 17F + 0x18eb, 0x1900, 0x1900, 0x191e, 0x193c, 0x1948, 0x196d, 0x196d, + 0x1976, 0x1982, 0x1997, 0x19a6, 0x19be, 0x19be, 0x19be, 0x19d3, + 0x19e2, 0x19ee, 0x1a16, 0x1a3b, 0x1a3b, 0x1a5a, 0x1a66, 0x1a75, + 0x1a81, 0x1a8a, 0x1a96, 0x1aae, 0x1ac0, 0x1ad2, 0x1aed, 0x1b11, + 0x1b11, 0x1b1d, 0x1b1d, 0x1b29, 0x1b47, 0x1b63, 0x1b63, 0x1b63, + 0x1b72, 0x1b8a, 0x1b9f, 0x1bcd, 0x1be2, 0x1bf7, 0x1c0c, 0x1c28, + 0x1c28, 0x1c28, 0x1c3d, 0x1c4f, 0x1c5e, 0x1c6d, 0x1c8b, 0x1c9d, + 0x1caf, 0x1cc1, 0x1cd0, 0x1ce2, 0x1ceb, 0x1d03, 0x1d03, 0x1d03, + // Entry 180 - 1BF + 0x1d03, 0x1d15, 0x1d15, 0x1d27, 0x1d33, 0x1d52, 0x1d52, 0x1d6b, + 0x1d83, 0x1d8f, 0x1d9b, 0x1da7, 0x1db6, 0x1db6, 0x1db6, 0x1dcb, + 0x1dd4, 0x1de3, 0x1df5, 0x1e04, 0x1e1c, 0x1e2b, 0x1e34, 0x1e43, + 0x1e55, 0x1e64, 0x1e70, 0x1e85, 0x1ea7, 0x1ecc, 0x1ede, 0x1ef6, + 0x1f11, 0x1f1d, 0x1f38, 0x1f4a, 0x1f5c, 0x1f5c, 0x1f77, 0x1f8c, + 0x1fa4, 0x1fbc, 0x1fce, 0x1fce, 0x1fda, 0x1fec, 0x2007, 0x2007, + 0x202e, 0x2037, 0x204a, 0x205c, 0x206e, 0x2083, 0x2083, 0x209b, + 0x20ad, 0x20b9, 0x20d8, 0x20d8, 0x20e4, 0x2109, 0x2118, 0x2149, + // Entry 1C0 - 1FF + 0x2164, 0x217c, 0x218e, 0x2197, 0x21a6, 0x21d7, 0x21f2, 0x2207, + 0x2219, 0x223a, 0x224c, 0x224c, 0x224c, 0x224c, 0x2277, 0x2277, + 0x228f, 0x228f, 0x228f, 0x22a4, 0x22a4, 0x22bf, 0x22d7, 0x22d7, + 0x22f2, 0x2307, 0x2325, 0x2325, 0x2325, 0x2334, 0x2343, 0x2343, + 0x2343, 0x2343, 0x235e, 0x236a, 0x237c, 0x2385, 0x23bf, 0x23d1, + 0x23e0, 0x23f5, 0x23f5, 0x2407, 0x2413, 0x242b, 0x2443, 0x2443, + 0x2471, 0x2480, 0x2489, 0x2489, 0x249b, 0x24cc, 0x24f1, 0x24f1, + 0x2512, 0x251b, 0x2534, 0x2546, 0x2546, 0x2546, 0x2565, 0x257b, + // Entry 200 - 23F + 0x2597, 0x25bc, 0x25d1, 0x25e9, 0x260e, 0x261a, 0x2626, 0x2626, + 0x2635, 0x2641, 0x2659, 0x2671, 0x26a5, 0x26bd, 0x26bd, 0x26bd, + 0x26cc, 0x26d8, 0x26ea, 0x26ff, 0x2711, 0x271d, 0x2735, 0x2735, + 0x274d, 0x276e, 0x276e, 0x2780, 0x27a2, 0x27be, 0x27be, 0x27d3, + 0x27d3, 0x27e8, 0x27e8, 0x27fa, 0x280c, 0x2824, 0x283c, 0x2880, + 0x289e, 0x28bc, 0x28d4, 0x28e6, 0x28ec, 0x28ec, 0x28ec, 0x28ec, + 0x28ec, 0x2904, 0x2904, 0x2916, 0x2925, 0x2931, 0x2943, 0x294f, + 0x296a, 0x296a, 0x297c, 0x297c, 0x2988, 0x2994, 0x29ac, 0x29c4, + // Entry 240 - 27F + 0x29cd, 0x29cd, 0x29e8, 0x2a06, 0x2a2d, 0x2a2d, 0x2a39, 0x2a80, + 0x2a8c, 0x2ae1, 0x2aed, 0x2b37, 0x2b37, 0x2b62, 0x2b88, 0x2bc5, + 0x2bf3, 0x2c2a, 0x2c5e, 0x2cab, 0x2cdf, 0x2d16, 0x2d16, 0x2d41, + 0x2d69, 0x2d82, 0x2d97, 0x2dd4, 0x2e0e, 0x2e29, 0x2e57, 0x2e7f, +} // Size: 1240 bytes + +var mnLangStr string = "" + // Size: 3152 bytes + "абхазафрикаканамхарарабаÑÑамазербайжанбашкирбеларуÑьболгарбамбарабенгалт" + + "өвдбретонбоÑникаталанкорÑикчехуÑлÑданигерманжонхаÑвÑгреканглиÑÑперантои" + + "ÑпаниÑÑтонибаÑкперÑфинлÑндфижифарерфранцбаруун фризынирландшотланд келт" + + "галикгуаранигужаратиманкÑхауÑаеврейхиндихорватгаитиунгарарменинтерлингв" + + "оиндонезинÑгдмÑл Ñ…Ñлигбошичуан еииÑландиталиинуктитутÑпонÑвагүржкикуюүх" + + "аÑагкалалиÑуткамбожканнадаÑолонгоÑкашмиркүрдкорныкиргизлатинлюкÑембургг" + + "андалингалалаоÑлитвалуба-катангалатвималагаÑимаоримакедонмалайламмонгол" + + "маратималаймалтибирмхойд ндебелебалбаголланднорвегийн нинорÑкнорвегийн " + + "букмолфранцын окÑитаноромоориÑпанжабпольшпаштопортугалкечуароманшрундир" + + "умынороÑкинÑрвандаÑанÑкритÑиндхихойд ÑамиÑангоÑинхалаÑловакÑловеншонаÑо" + + "малиалбаниÑербÑунданшведÑвахилитамилтÑлүгүтажиктайтигринатуркментонгату" + + "рктатаруйгарукрайнурдуузбеквьетнамволофхоÑаиддишёрубахÑтадзулуагеммапүч" + + "иаÑубембабенабодочигачирокиÑорани күрдтайтазармаловер-Ñорбидуалажола-фо" + + "ниÑмбуфилиппингагузшвейцари германгузыхавайдÑÑд ÑорбингомбамачамÑкабиле" + + "камбамакондекабүвердианукойра чиникаленжинкоми-пермÑкконканишамбалабафи" + + "алангилакоталуолуÑамаÑаймерумориÑенмакува-митометамохаукмундангнамакваз" + + "ионконуернÑнколекичеромборваÑамбүрүÑангүÑенакёраборо Ñенитачелхитөмнөд " + + "Ñамилюле Ñамиинари ÑамиÑколт ÑамитÑÑотаÑавактөв атлаÑын тамазайттодорхо" + + "йгүй Ñ…ÑлвайвунжоÑогатамазитхÑл зүйн агуулга байхгүйÑтандарт арабавÑтри " + + "германшвейцари дÑÑÑ€ германавÑтрали англиканад англибританийн англиамери" + + "кийн англилатин америкийн иÑпаниевропын иÑпанимекÑикийн иÑпаниканад фра" + + "нцшвейцари францфламандпортугал (бразил)европын португалмолдавконго Ñва" + + "хилихÑлбаршуулÑан Ñ…Ñтадуламжлалт Ñ…Ñтад" + +var mnLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000a, 0x000a, 0x0014, 0x001c, 0x0026, 0x0026, + 0x002e, 0x0038, 0x0038, 0x0038, 0x004c, 0x0058, 0x0068, 0x0074, + 0x0074, 0x0082, 0x008e, 0x0096, 0x00a2, 0x00ac, 0x00ba, 0x00ba, + 0x00ba, 0x00c6, 0x00c6, 0x00cc, 0x00cc, 0x00cc, 0x00d4, 0x00dc, + 0x00e8, 0x00e8, 0x00f2, 0x00f8, 0x0100, 0x010a, 0x011c, 0x0128, + 0x0134, 0x013c, 0x0144, 0x0144, 0x0152, 0x015a, 0x0164, 0x016e, + 0x0187, 0x0193, 0x01aa, 0x01b4, 0x01c2, 0x01d2, 0x01dc, 0x01e6, + 0x01f0, 0x01fa, 0x01fa, 0x0206, 0x0210, 0x021a, 0x0224, 0x0224, + // Entry 40 - 7F + 0x023a, 0x024a, 0x025f, 0x0267, 0x0278, 0x0278, 0x0278, 0x0284, + 0x028e, 0x02a0, 0x02a8, 0x02ae, 0x02b6, 0x02b6, 0x02c2, 0x02c2, + 0x02cc, 0x02de, 0x02ea, 0x02f8, 0x0308, 0x0308, 0x0314, 0x031c, + 0x031c, 0x0326, 0x0332, 0x033c, 0x0350, 0x035a, 0x035a, 0x0368, + 0x0370, 0x037a, 0x0391, 0x039b, 0x03ab, 0x03ab, 0x03b5, 0x03c3, + 0x03d3, 0x03df, 0x03eb, 0x03f5, 0x03ff, 0x0407, 0x0407, 0x041e, + 0x0428, 0x0428, 0x0436, 0x0457, 0x0476, 0x0476, 0x0476, 0x0476, + 0x0493, 0x0493, 0x049d, 0x04a5, 0x04a5, 0x04b1, 0x04b1, 0x04bb, + // Entry 80 - BF + 0x04c5, 0x04d5, 0x04df, 0x04eb, 0x04f5, 0x04ff, 0x0507, 0x051b, + 0x052b, 0x052b, 0x0537, 0x0548, 0x0552, 0x0560, 0x056c, 0x0578, + 0x0578, 0x0580, 0x058c, 0x0598, 0x05a0, 0x05a0, 0x05a0, 0x05ac, + 0x05b4, 0x05c2, 0x05cc, 0x05d8, 0x05e2, 0x05e8, 0x05f6, 0x0604, + 0x0604, 0x060e, 0x0616, 0x0616, 0x0620, 0x0620, 0x062a, 0x0636, + 0x063e, 0x0648, 0x0648, 0x0656, 0x0656, 0x0656, 0x0660, 0x0668, + 0x0672, 0x067c, 0x067c, 0x0686, 0x068e, 0x068e, 0x068e, 0x068e, + 0x068e, 0x068e, 0x068e, 0x0696, 0x0696, 0x0696, 0x0696, 0x0696, + // Entry C0 - FF + 0x0696, 0x0696, 0x0696, 0x0696, 0x0696, 0x06a2, 0x06a2, 0x06a2, + 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a8, 0x06a8, 0x06a8, 0x06a8, + 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, 0x06a8, + 0x06a8, 0x06b2, 0x06b2, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, + 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, 0x06ba, + 0x06ba, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, + 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06c2, 0x06ca, 0x06ca, 0x06ca, + 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06d6, 0x06d6, 0x06eb, + // Entry 100 - 13F + 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06eb, 0x06f5, 0x06f5, + 0x06f5, 0x06f5, 0x06f5, 0x06ff, 0x06ff, 0x0714, 0x0714, 0x071e, + 0x071e, 0x072f, 0x072f, 0x072f, 0x0737, 0x0737, 0x0737, 0x0737, + 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0737, 0x0747, + 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, + 0x0747, 0x0747, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, + 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, 0x0751, + 0x0751, 0x0751, 0x076e, 0x076e, 0x076e, 0x0776, 0x0776, 0x0776, + // Entry 140 - 17F + 0x0776, 0x0780, 0x0780, 0x0780, 0x0780, 0x0780, 0x0793, 0x0793, + 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, + 0x079f, 0x07ab, 0x07ab, 0x07ab, 0x07ab, 0x07ab, 0x07b7, 0x07b7, + 0x07b7, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07cf, 0x07e7, + 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07e7, 0x07fa, 0x07fa, 0x07fa, + 0x07fa, 0x080a, 0x080a, 0x081f, 0x082d, 0x082d, 0x082d, 0x082d, + 0x082d, 0x082d, 0x082d, 0x082d, 0x083b, 0x0845, 0x0845, 0x0845, + 0x0845, 0x0845, 0x084f, 0x084f, 0x084f, 0x084f, 0x084f, 0x084f, + // Entry 180 - 1BF + 0x084f, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, 0x085b, + 0x085b, 0x085b, 0x0861, 0x0861, 0x0869, 0x0869, 0x0869, 0x0869, + 0x0869, 0x0869, 0x0869, 0x0869, 0x0869, 0x0873, 0x0873, 0x0873, + 0x0873, 0x0873, 0x087b, 0x0889, 0x0889, 0x089e, 0x08a6, 0x08a6, + 0x08a6, 0x08a6, 0x08a6, 0x08b2, 0x08b2, 0x08b2, 0x08c0, 0x08c0, + 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, + 0x08c0, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08c8, 0x08d4, + 0x08d4, 0x08d4, 0x08d4, 0x08d4, 0x08da, 0x08da, 0x08e2, 0x08e2, + // Entry 1C0 - 1FF + 0x08e2, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, + 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, + 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f0, 0x08f8, 0x08f8, + 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x08f8, 0x0902, 0x0902, 0x0902, + 0x0902, 0x0902, 0x0902, 0x0908, 0x0908, 0x0908, 0x0908, 0x0916, + 0x0916, 0x0916, 0x0916, 0x0916, 0x0920, 0x0920, 0x0920, 0x0920, + 0x0920, 0x0920, 0x0928, 0x0928, 0x0928, 0x0941, 0x0941, 0x0941, + 0x0951, 0x0951, 0x0951, 0x0951, 0x0951, 0x0951, 0x0964, 0x0975, + // Entry 200 - 23F + 0x0988, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, + 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, 0x099b, + 0x099b, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, + 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, + 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09a3, 0x09b1, 0x09b1, 0x09d7, + 0x09d7, 0x09d7, 0x09d7, 0x09f4, 0x09fa, 0x09fa, 0x09fa, 0x09fa, + 0x09fa, 0x09fa, 0x09fa, 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a04, + 0x0a04, 0x0a04, 0x0a04, 0x0a04, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a0c, + // Entry 240 - 27F + 0x0a0c, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a0c, 0x0a1a, + 0x0a1a, 0x0a47, 0x0a47, 0x0a60, 0x0a60, 0x0a79, 0x0a9f, 0x0aba, + 0x0acf, 0x0aec, 0x0b09, 0x0b33, 0x0b4e, 0x0b6d, 0x0b6d, 0x0b82, + 0x0b9d, 0x0b9d, 0x0bab, 0x0bca, 0x0be9, 0x0bf5, 0x0bf5, 0x0c0e, + 0x0c33, 0x0c50, +} // Size: 1244 bytes + +var mrLangStr string = "" + // Size: 11013 bytes + "अफारअबखेजियनअवेसà¥à¤¤à¤¨à¤…फà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤…कानअमà¥à¤¹à¤¾à¤°à¤¿à¤•à¤…रà¥à¤—ोनीजअरबीआसामीअ\u200dॅवà¥à¤¹à¥‡à¤°à¤¿" + + "कà¤à¤®à¤°à¤¾à¤…à¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨à¥€à¤¬à¤·à¥à¤•à¤¿à¤°à¤¬à¥‡à¤²à¤¾à¤°à¥à¤¶à¤¿à¤¯à¤¨à¤¬à¤²à¥à¤—ेरियनबिसà¥à¤²à¤¾à¤®à¤¾à¤¬à¤¾à¤®à¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबेटीबà¥à¤°" + + "ेतॉनबोसà¥à¤¨à¤¿à¤¯à¤¨à¤•à¤¾à¤¤à¤¾à¤²à¤¾à¤¨à¤šà¥‡à¤šà¥‡à¤¨à¤•à¥…मोरोकॉरà¥à¤¸à¤¿à¤•à¤¨à¤•à¥à¤°à¥€à¤à¥‡à¤•à¤šà¤°à¥à¤š सà¥à¤²à¤¾à¤µà¥à¤¹à¤¿à¤•à¤šà¥‚वाशवेलà¥à¤¶à¤¡" + + "ॅनिशजरà¥à¤®à¤¨à¤¦à¤¿à¤µà¥‡à¤¹à¥€à¤à¥‹à¤‚गखाà¤à¤µà¥‡à¤—à¥à¤°à¥€à¤•à¤‡à¤‚गà¥à¤°à¤œà¥€à¤à¤¸à¥à¤ªà¤°à¤¾à¤¨à¥à¤Ÿà¥‹à¤¸à¥à¤ªà¥…निशइसà¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨à¤¬à¤¾à¤¸à¥à¤•à¤«à¤¾à¤°" + + "सीफà¥à¤²à¤¾à¤¹à¤«à¤¿à¤¨à¥à¤¨à¤¿à¤¶à¤«à¤¿à¤œà¤¿à¤¯à¤¨à¤«à¤°à¥‹à¤‡à¤œà¤«à¥à¤°à¥‡à¤‚चपशà¥à¤šà¤¿à¤®à¥€ फà¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¤†à¤¯à¤°à¤¿à¤¶à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸ गेलिकगॅलिश" + + "ियनगà¥à¤†à¤°à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¤¾à¤‚कà¥à¤¸à¤¹à¥Œà¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥‚हिंदीहिरी मॉटूकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¨à¤¹à¥ˆà¤¤à¥€à¤¯à¤¨à¤¹à¤‚गेरियनआ" + + "रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨à¤¹à¤°à¥‡à¤°à¥‹à¤‡à¤‚टरलिंगà¥à¤µà¤¾à¤‡à¤‚डोनेशियनइनà¥à¤Ÿà¤°à¤²à¤¿à¤‚गईगà¥à¤¬à¥‹à¤¸à¤¿à¤šà¥à¤†à¤¨ यीइनूपियाकइडौआई" + + "सलà¤à¤¡à¤¿à¤•à¤‡à¤Ÿà¤¾à¤²à¤¿à¤¯à¤¨à¤‡à¤¨à¥à¤•à¤¿à¤Ÿà¥à¤Ÿà¥à¤œà¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤µà¤¾à¤¨à¥€à¤œà¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤•à¤¾à¤à¤—ोकिकà¥à¤¯à¥‚कà¥à¤µà¤¾à¤¨à¥à¤¯à¤¾à¤®à¤¾à¤•à¤à¤¾à¤•à¤•à¤²à¤¾" + + "लà¥à¤²à¤¿à¤¸à¤¤à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¤¨à¥à¤°à¥€à¤•à¤¾à¤¶à¥à¤®à¥€à¤°à¥€à¤•à¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‹à¤®à¥€à¤•à¥‹à¤°à¥à¤¨à¤¿à¤¶à¤•à¤¿à¤°à¤—ीà¤à¤²à¥…टिनलकà¥à¤à¥‡à¤‚" + + "बरà¥à¤—िशगांडालिंबूरà¥à¤—िशलिंगालालाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¨à¤²à¥à¤¯à¥‚बा-कटांगालातà¥à¤µà¥à¤¹à¤¿à¤¯à¤¨à¤®à¤²à¤¾à¤—सीम" + + "ारà¥à¤¶à¤²à¥€à¤œà¤®à¤¾à¤“रीमॅसेडोनियनमलà¥à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनमराठीमलयमालà¥à¤Ÿà¤¿à¤œà¥à¤¬à¤°à¥à¤®à¥€à¤¨à¤‰à¤°à¥‚उतà¥à¤¤à¤° दे" + + "बेलीनेपाळीडोंगाडचनॉरà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ नà¥à¤¯à¥‹à¤°à¥à¤¸à¥à¤•à¤¨à¥‰à¤°à¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ बोकमालदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ देबेल" + + "ीनावाजोनà¥à¤¯à¤¾à¤¨à¥à¤œà¤¾à¤‘कà¥à¤¸à¤¿à¤¤à¤¾à¤¨à¤“जिबà¥à¤µà¤¾à¤“रोमोउडियाओसà¥à¤¸à¥‡à¤Ÿà¤¿à¤•à¤ªà¤‚जाबीपालीपोलिशपशà¥à¤¤à¥‹à¤ªà¥‹" + + "रà¥à¤¤à¥à¤—ीजकà¥à¤µà¥‡à¤šà¥à¤†à¤°à¥‹à¤®à¤¾à¤¨à¥à¤¶à¤°à¥à¤¨à¥à¤¦à¥€à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¨à¤°à¤¶à¤¿à¤¯à¤¨à¤•à¤¿à¤¨à¥à¤¯à¤¾à¤°à¥à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¤¸à¤°à¥à¤¦à¤¿à¤¨à¤¿à¤¯à¤¨" + + "सिंधीउतà¥à¤¤à¤°à¥€ सामीसांगोसिंहलासà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•à¤¸à¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¨à¤¸à¤¾à¤®à¥‹à¤…नशोनासोमालीअलà¥à¤¬à¤¾à¤¨" + + "ियनसरà¥à¤¬à¤¿à¤¯à¤¨à¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥‡à¤¸à¥‹à¤¥à¥‹à¤¸à¥à¤‚दानीजसà¥à¤µà¥€à¤¡à¤¿à¤¶à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤¾à¤®à¤¿à¤³à¤¤à¥‡à¤²à¤—ूताजिकथाईतिगà¥à¤°à¤¿à¤¨" + + "à¥à¤¯à¤¾à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤Ÿà¥‹à¤‚गनतà¥à¤°à¥à¤•à¥€à¤¸à¥‹à¤‚गातातरताहितीयनउइगà¥à¤°à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¤‰à¤°à¥à¤¦à¥‚उà¤à¥" + + "बेकवà¥à¤¹à¥‡à¤‚दावà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¥€à¤“लापà¥à¤•à¤µà¤¾à¤²à¥‚नवोलोफखोसायिदà¥à¤¦à¤¿à¤¶à¤¯à¥‹à¤°à¥à¤¬à¤¾à¤à¥à¤†à¤‚गचीनीà¤à¥à¤²à¥‚अचीन" + + "ीअकोलीअडांगà¥à¤®à¥‡à¤…डिघेअफà¥à¤°à¤¿à¤¹à¤¿à¤²à¥€à¤…घेमà¤à¤¨à¥‚अकà¥à¤•à¤¾à¤¦à¤¿à¤†à¤¨à¤…लेउतदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ अलà¥à¤¤à¤¾à¤ˆà¤ªà¥à¤°à¤¾" + + "तन इंगà¥à¤°à¤œà¥€à¤…ंगिकाअ\u200dॅरेमाइकमापà¥à¤šà¥€à¤…राफाओअरावकअसà¥à¤…सà¥à¤¤à¥à¤°à¤¿à¤¯à¤¨à¤…वधीबलà¥à¤šà¥€à¤¬à¤¾" + + "लिनीसबसाबेजाबेमà¥à¤¬à¤¾à¤¬à¥‡à¤¨à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ बालोचीभोजपà¥à¤°à¥€à¤¬à¤¿à¤•à¥‹à¤²à¤¬à¤¿à¤¨à¥€à¤¸à¤¿à¤•à¥à¤¸à¤¿à¤•à¤¾à¤¬à¥à¤°à¤œà¤¬à¥‹à¤¡à¥‹à¤¬à¥" + + "रियातबगिनीसबà¥à¤²à¤¿à¤¨à¤•à¥…डà¥à¤¡à¥‹à¤•à¥…रिबअतà¥à¤¸à¤®à¤¸à¤¿à¤¬à¥à¤†à¤¨à¥‹à¤•à¤¿à¤—ाचिबà¥à¤šà¤¾à¤›à¤—ाताईचूकीसेमारीचिनूक" + + " जारगॉनचोकà¥à¤¤à¥Œà¤¶à¤¿à¤ªà¥‡à¤µà¥à¤¯à¤¾à¤¨à¤šà¥‡à¤°à¥‹à¤•à¥€à¤¶à¥‡à¤¯à¥‡à¤¨à¥à¤¨à¤®à¤§à¥à¤¯ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¥à¤°à¤¾à¤‡à¤®à¥€à¤¨ तà¥à¤°à¥à¤•à¥€à¤•à¤¾à¤¶" + + "à¥à¤¬à¤¿à¤¯à¤¨à¤¦à¤¾à¤•à¥‹à¤¤à¤¾à¤¦à¤¾à¤°à¥à¤—वातायताडेलॅवेयरसà¥à¤²à¤¾à¤µà¥à¤¹à¤¡à¥‹à¤—à¥à¤°à¤¿à¤¬à¤¦à¤¿à¤¨à¥à¤•à¤¾à¤à¤¾à¤°à¥à¤®à¤¾à¤¡à¥‹à¤—रीलोअर सोर" + + "à¥à¤¬à¤¿à¤¯à¤¨à¤¦à¥à¤†à¤²à¤¾à¤®à¤¿à¤¡à¤² डचजोला-फोंयीडà¥à¤¯à¥à¤²à¤¾à¤à¤®à¥à¤¬à¥‚à¤à¤«à¤¿à¤•à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ इजिपà¥à¤¶à¤¿à¤¯à¤¨à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¤¾" + + "इटमिडल इंगà¥à¤°à¤œà¥€à¤‡à¤µà¥‹à¤¨à¥à¤¡à¥‹à¤«à¤à¤—फिलिपिनोफॉनमिडल फà¥à¤°à¥‡à¤‚चपà¥à¤°à¤¾à¤¤à¤¨ फà¥à¤°à¥‡à¤‚चउतà¥à¤¤à¤°à¥€ फà¥à¤°à¤¿" + + "शियनपौरà¥à¤µà¤¾à¤¤à¥à¤¯ फà¥à¤°à¤¿à¤¶à¤¿à¤¯à¤¨à¤«à¥à¤°à¤¿à¤¯à¥à¤²à¤¿à¤¯à¤¾à¤¨Gaगागाउà¤à¤—ायोबायागीà¤à¤œà¤¿à¤²à¥à¤¬à¤°à¤Ÿà¥€à¤œà¤®à¤¿à¤¡à¤² हाय " + + "जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ हाइ जरà¥à¤®à¤¨à¤—ाà¤à¤¡à¥€à¤—ोरोनà¥à¤¤à¤¾à¤²à¥‹à¤—ॉथिकगà¥à¤°à¥‡à¤¬à¥‹à¤ªà¥à¤°à¤¾à¤šà¥€à¤¨ गà¥à¤°à¥€à¤•à¤¸à¥à¤µà¤¿à¤¸ जरà¥à¤®" + + "नगसीगà¥à¤µà¤¿à¤šâ€™à¤‡à¤¨à¤¹à¥ˆà¤¡à¤¾à¤¹à¤µà¤¾à¤ˆà¤¯à¤¨à¤¹à¤¿à¤²à¥€à¤—ेनॉनहिटà¥à¤Ÿà¤¿à¤¤à¥‡à¤®à¤¾à¤à¤—अपà¥à¤ªà¤° सॉरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥‚पाइबानइलोको" + + "इंगà¥à¤¶à¤²à¥‹à¤œà¥à¤¬à¤¾à¤¨à¤—ोमà¥à¤¬à¤¾à¤®à¤¶à¤¾à¤®à¥‡à¤œà¥à¤¦à¥‡à¤“-फारसीजà¥à¤¦à¥‡à¤“-अरबीकारा-कलà¥à¤ªà¤•à¤•à¤¬à¤¾à¤‡à¤²à¤•à¤¾à¤šà¤¿à¤¨à¤œà¥à¤œà¥à¤•à¤¾" + + "मà¥à¤¬à¤¾à¤•à¤¾à¤µà¥€à¤•à¤¬à¤¾à¤°à¥à¤¡à¤¿à¤¯à¤¨à¤¤à¥à¤¯à¤¾à¤ªà¤®à¤¾à¤•à¥‹à¤¨à¥à¤¦à¥‡à¤•à¤¾à¤¬à¤µà¤°à¥à¤¦à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤°à¥‹à¤–ासीखोतानीसकोयरा चीनीकाल" + + "ेंजीनकिमà¥à¤¬à¤¨à¥à¤¦à¥à¤•à¥‹à¤®à¥€-परमà¥à¤¯à¤¾à¤•à¤•à¥‹à¤‚कणीकोसरियनकà¥à¤ªà¥‡à¤²à¥à¤²à¥‡à¤•à¤°à¤¾à¤šà¤¯-बालà¥à¤•à¤°à¤•à¤°à¥‡à¤²à¤¿à¤¯à¤¨à¤•à¥à¤°à¥‚" + + "खशांबालाबाफियाकà¥à¤®à¥€à¤•à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤ˆà¤²à¤¾à¤¦à¥€à¤¨à¥‹à¤²à¤¾à¤‚गीलाहà¥à¤¨à¥à¤¡à¤¾à¤²à¤¾à¤®à¥à¤¬à¤¾à¤²à¥‡à¤à¥à¤˜à¥€à¤¯à¤¨à¤²à¤¾à¤•à¥‹à¤Ÿà¤¾à¤®à¥‹à¤‚गो" + + "लोà¤à¤¿à¤‰à¤¤à¥à¤¤à¤°à¥€ लà¥à¤¯à¥à¤°à¥€à¤²à¥à¤¬à¤¾-लà¥à¤²à¥à¤†à¤²à¥à¤‡à¤¸à¥‡à¤¨à¥‹à¤²à¥à¤¨à¥à¤¡à¤¾à¤²à¥à¤¯à¥à¤“लà¥à¤¶à¤¾à¤ˆà¤²à¥à¤¯à¥à¤‡à¤¯à¤¾à¤®à¤¾à¤¦à¥à¤°à¥€à¤¸à¤®à¤—हीमै" + + "थिलीमकसà¥à¤¸à¤°à¤®à¤¨à¥à¤¡à¤¿à¤¨à¥à¤—ोमसाईमोकà¥à¤·à¤®à¤‚डारमेनà¥à¤¡à¥‡à¤®à¥‡à¤°à¥‚मोरिसà¥à¤¯à¥‡à¤¨à¤®à¤¿à¤¡à¤² आयरिशमाखà¥à¤µà¥à¤¹à¤¾" + + "-मीटà¥à¤Ÿà¥‹à¤®à¥€à¤Ÿà¤¾à¤®à¤¿à¤•à¤®à¥…कमिनांगà¥à¤•à¤¾à¤¬à¤¾à¤‰à¤®à¤¾à¤¨à¥à¤šà¥à¤®à¤£à¤¿à¤ªà¥à¤°à¥€à¤®à¥‹à¤¹à¥‰à¤•à¤®à¥‹à¤¸à¥à¤¸à¥€à¤®à¥à¤‚डांगà¤à¤•à¤µà¤¿à¤§ भाषाकà¥" + + "रीकमिरांडिजà¥à¤®à¤¾à¤°à¤µà¤¾à¤¡à¥€à¤à¤°à¥à¤à¥à¤¯à¤¾à¤®à¤¾à¤à¤¾à¤¨à¤¦à¥‡à¤°à¤¾à¤¨à¥€à¤¨à¥‡à¤ªà¥‹à¤²à¤¿à¤Ÿà¤¾à¤¨à¤¨à¤¾à¤®à¤¾à¤²à¥‹ जरà¥à¤®à¤¨à¤¨à¥‡à¤µà¤¾à¤°à¥€à¤¨à¤¿à¤¯à¤¾à¤¸à¤¨" + + "ियà¥à¤†à¤¨à¤•à¥à¤µà¤¾à¤¸à¤¿à¤“नोगाईपà¥à¤°à¤¾à¤¤à¤¨ नॉरà¥à¤¸à¤à¤¨à¥à¤•à¥‹à¤‰à¤¤à¥à¤¤à¤°à¥€ सोथोनà¥à¤à¤°à¤…भिजात नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤" + + "ीनà¥à¤¯à¤¾à¤¨à¤•à¥‹à¤²à¤¨à¥à¤¯à¥‹à¤°à¥‹à¤¨à¥à¤à¤¿à¤®à¤¾à¤“सेजओटोमान तà¥à¤°à¥à¤•à¤¿à¤¶à¤ªà¤‚गासीनानपहलवीपामà¥à¤ªà¤¾à¤¨à¥à¤—ापापियाम" + + "ेनà¥à¤Ÿà¥‹à¤ªà¤¾à¤²à¤¾à¤‰à¤†à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ फारसीफोनिशियनपोहà¥à¤¨à¤ªà¤¿à¤¯à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ पà¥à¤°à¥‹à¤µà¥à¤¹à¥‡à¤¨à¥à¤¸à¤²à¤•à¥€à¤¶à¥‡à¤‡à¤°à¤¾à¤œà¤¸à¥" + + "थानीरापानà¥à¤ˆà¤°à¤¾à¤°à¥‹à¤Ÿà¥‹à¤‚गनरोमà¥à¤¬à¥‹à¤°à¥‹à¤®à¤¾à¤¨à¥€à¤…रोमानियनरवà¥à¤¹à¤¾à¤¸à¤à¤¡à¤µà¥‡à¤¯à¤¾à¤•à¥‚तसामरिटान अरॅमि" + + "कसांबà¥à¤°à¥‚सासाकसंतालीसांगà¥à¤¸à¤¿à¤¸à¤¿à¤²à¤¿à¤¯à¤¨à¤¸à¥à¤•à¥‰à¤Ÿà¥à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤¸à¥‡à¤¨à¤¾à¤¸à¥‡à¤²à¥à¤•à¤ªà¤•à¥‹à¤¯à¤°à¤¾à¤¬" + + "ोरो सेनà¥à¤¨à¥€à¤ªà¥à¤°à¤¾à¤¤à¤¨ आयरिशताशेलà¥à¤¹à¤¿à¤Ÿà¤¶à¥…नसिदामोदकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ सामीलà¥à¤¯à¥à¤² सामीइनारी" + + " सामीसà¥à¤•à¥‹à¤²à¥à¤Ÿ सामीसोनिनà¥à¤•à¥‡à¤¸à¥‹à¤—à¥à¤¡à¤¿à¤à¤¨à¤¸à¥à¤°à¤¾à¤¨à¤¾à¤¨ टॉनà¥à¤—ोसेरेरसà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥à¤¸à¥à¤®à¥‡à¤°à¤¿à¤¯à¤¨à¤•à¥‹" + + "मोरियनअभिजात सिरियाकसिरियाकटिमà¥à¤¨à¥‡à¤¤à¥‡à¤¸à¥‹à¤¤à¥‡à¤°à¥‡à¤¨à¥‹à¤¤à¥‡à¤¤à¥à¤®à¤Ÿà¤¾à¤‡à¤—à¥à¤°à¥‡à¤¤à¤¿à¤µà¤Ÿà¥‹à¤•à¥‡à¤²à¤¾à¤Šà¤•à¥à¤²à¤¿à¤‚" + + "गोनलिंगिततामाशेकनà¥à¤¯à¤¾à¤¸à¤¾ टोनà¥à¤—ाटोक पिसिनसिमà¥à¤¶à¤¿à¤¯à¤¨à¤¤à¥à¤®à¥à¤¬à¥à¤•à¤¾à¤Ÿà¥à¤µà¤¾à¤²à¥à¤¤à¤¾à¤¸à¤¾à¤µà¥à¤¹à¤¾à¤•à¤Ÿ" + + "à¥à¤µà¥€à¤¨à¤¿à¤¯à¤¨à¤®à¤§à¥à¤¯ à¤à¤Ÿà¤²à¤¾à¤¸ तॅमॅà¤à¤¾à¤¯à¤Ÿà¤‰à¤¦à¤®à¥à¤°à¥à¤¤à¤¯à¥à¤—ॅरिटिकउमà¥à¤¬à¥à¤¨à¥à¤¡à¥à¤°à¥‚टवाईवॉटिकवà¥à¤‚जोवला" + + "मोवारेवाशोवारà¥à¤²à¤ªà¤¿à¤°à¥€à¤•à¤¾à¤²à¥à¤®à¤¿à¤•à¤¸à¥‹à¤—ायाओयापीसकà¤à¤Ÿà¥‹à¤¨à¥€à¤œà¤à¥‡à¤ªà¥‹à¤Ÿà¥‡à¤•à¤¬à¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤à¥‡à¤¨à¤¾à¤¨" + + "à¥à¤—ापà¥à¤°à¤®à¤¾à¤£ मोरोकà¥à¤•à¤¨ तॅमॅà¤à¤¾à¤¯à¤Ÿà¤à¥à¤¨à¥€à¤­à¤¾à¤·à¤¾à¤µà¥ˆà¤œà¥à¤žà¤¾à¤¨à¤¿à¤• सामगà¥à¤°à¥€ नाहीà¤à¤¾à¤à¤¾à¤†à¤§à¥à¤¨à¤¿à¤• पà¥" + + "रमाणित अरबीऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¨ जरà¥à¤®à¤¨à¤¸à¥à¤µà¤¿à¤¸ हाय जरà¥à¤®à¤¨à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¨ इंगà¥à¤°à¤œà¥€à¤•à¥…नडियन इं" + + "गà¥à¤°à¤œà¥€à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ इंगà¥à¤°à¤œà¥€à¤…मेरिकन इंगà¥à¤°à¤œà¥€à¤²à¥…टिन अमेरिकन सà¥à¤ªà¥…निशयà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ सà¥à¤ªà¥…न" + + "िशमेकà¥à¤¸à¤¿à¤•à¤¨ सà¥à¤ªà¥…निशकॅनडियन फà¥à¤°à¥‡à¤‚चसà¥à¤µà¤¿à¤¸ फà¥à¤°à¥‡à¤‚चलो सॅकà¥à¤¸à¤¨à¤«à¥à¤²à¥‡à¤®à¤¿à¤¶à¤¬à¥à¤°à¤¾à¤à¤¿à¤²à¤¿à¤¯à¤¨" + + " पोरà¥à¤¤à¥à¤—ीजयà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨ पोरà¥à¤¤à¥à¤—ीजमोलà¥à¤¡à¤¾à¤µà¥à¤¹à¤¿à¤¯à¤¨à¤¸à¤°à¥à¤¬à¥‹-कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¨à¤•à¤¾à¤à¤—ो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¸à¤°à¤²" + + "ीकृत चीनीपारंपारिक चीनी" + +var mrLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0024, 0x0039, 0x0057, 0x0063, 0x007b, 0x0093, + 0x009f, 0x00ae, 0x00cc, 0x00d8, 0x00f3, 0x0105, 0x0123, 0x013e, + 0x0156, 0x016e, 0x0180, 0x0192, 0x01a7, 0x01bf, 0x01d4, 0x01e3, + 0x01f5, 0x020d, 0x0219, 0x0222, 0x024a, 0x0259, 0x0268, 0x0277, + 0x0286, 0x0298, 0x02aa, 0x02b3, 0x02c2, 0x02d7, 0x02f5, 0x030a, + 0x0325, 0x0334, 0x0343, 0x0352, 0x0367, 0x0379, 0x0388, 0x039a, + 0x03c8, 0x03d7, 0x03fc, 0x0414, 0x0426, 0x043b, 0x044d, 0x0459, + 0x046b, 0x047a, 0x0493, 0x04ae, 0x04c0, 0x04d8, 0x04f3, 0x0502, + // Entry 40 - 7F + 0x0523, 0x0541, 0x055c, 0x056b, 0x0584, 0x059c, 0x05a5, 0x05bd, + 0x05d2, 0x05ed, 0x05fc, 0x0611, 0x0629, 0x0638, 0x064a, 0x0668, + 0x0674, 0x068f, 0x069e, 0x06ad, 0x06bf, 0x06ce, 0x06e6, 0x06fb, + 0x0707, 0x071c, 0x072e, 0x073d, 0x0761, 0x0770, 0x078e, 0x07a3, + 0x07ac, 0x07c7, 0x07ec, 0x080a, 0x081c, 0x0834, 0x0843, 0x0861, + 0x0876, 0x088e, 0x089d, 0x08a6, 0x08be, 0x08cd, 0x08d9, 0x08fb, + 0x090d, 0x091c, 0x0922, 0x095c, 0x098d, 0x09be, 0x09d0, 0x09e8, + 0x0a00, 0x0a15, 0x0a24, 0x0a33, 0x0a4b, 0x0a5d, 0x0a69, 0x0a78, + // Entry 80 - BF + 0x0a87, 0x0aa2, 0x0ab7, 0x0acc, 0x0ade, 0x0af6, 0x0b05, 0x0b2f, + 0x0b44, 0x0b5f, 0x0b6e, 0x0b8d, 0x0b9c, 0x0bae, 0x0bc9, 0x0bed, + 0x0bff, 0x0c0b, 0x0c1d, 0x0c38, 0x0c4d, 0x0c5f, 0x0c71, 0x0c89, + 0x0c9e, 0x0cb6, 0x0cc5, 0x0cd4, 0x0ce3, 0x0cec, 0x0d0a, 0x0d22, + 0x0d3a, 0x0d49, 0x0d5b, 0x0d6a, 0x0d76, 0x0d8e, 0x0d9d, 0x0dbb, + 0x0dca, 0x0ddc, 0x0df1, 0x0e0f, 0x0e21, 0x0e30, 0x0e3f, 0x0e4b, + 0x0e60, 0x0e72, 0x0e81, 0x0e8d, 0x0e99, 0x0ea8, 0x0eb7, 0x0ecf, + 0x0ede, 0x0ede, 0x0ef9, 0x0f05, 0x0f0e, 0x0f29, 0x0f29, 0x0f38, + // Entry C0 - FF + 0x0f38, 0x0f69, 0x0f91, 0x0fa3, 0x0fbe, 0x0fd0, 0x0fd0, 0x0fe2, + 0x0fe2, 0x0ff1, 0x0ff1, 0x0ff1, 0x0ffa, 0x0ffa, 0x1015, 0x1015, + 0x1021, 0x1030, 0x1045, 0x1045, 0x104e, 0x104e, 0x104e, 0x104e, + 0x105a, 0x106c, 0x106c, 0x1078, 0x1078, 0x1078, 0x10a0, 0x10b5, + 0x10c4, 0x10d0, 0x10d0, 0x10d0, 0x10e8, 0x10e8, 0x10e8, 0x10f4, + 0x10f4, 0x1100, 0x1100, 0x1115, 0x1127, 0x1127, 0x1136, 0x1136, + 0x1148, 0x1157, 0x1157, 0x1166, 0x117b, 0x1187, 0x1199, 0x11ab, + 0x11bd, 0x11c9, 0x11eb, 0x11fd, 0x1218, 0x122a, 0x123f, 0x1261, + // Entry 100 - 13F + 0x1276, 0x1276, 0x12a1, 0x12b9, 0x12cb, 0x12e0, 0x12ef, 0x1307, + 0x131c, 0x1331, 0x1343, 0x1355, 0x1364, 0x1389, 0x1389, 0x1398, + 0x13ab, 0x13c7, 0x13d9, 0x13d9, 0x13e8, 0x13f4, 0x13f4, 0x1425, + 0x1437, 0x144c, 0x146e, 0x146e, 0x1483, 0x1483, 0x148c, 0x14a4, + 0x14a4, 0x14ad, 0x14ad, 0x14cc, 0x14f1, 0x14f1, 0x151c, 0x1550, + 0x1571, 0x1573, 0x1585, 0x1585, 0x1591, 0x159d, 0x159d, 0x15a6, + 0x15c1, 0x15c1, 0x15e7, 0x1613, 0x1613, 0x1622, 0x1640, 0x164f, + 0x1661, 0x1686, 0x16a5, 0x16a5, 0x16a5, 0x16ae, 0x16c6, 0x16d2, + // Entry 140 - 17F + 0x16d2, 0x16e4, 0x16e4, 0x16ff, 0x1717, 0x1723, 0x174b, 0x174b, + 0x1757, 0x1763, 0x1763, 0x1772, 0x1781, 0x1781, 0x1781, 0x1796, + 0x17a8, 0x17b7, 0x17d6, 0x17f2, 0x17f2, 0x180e, 0x181d, 0x182c, + 0x1838, 0x184a, 0x1856, 0x1871, 0x1871, 0x1880, 0x1898, 0x18bc, + 0x18bc, 0x18c8, 0x18c8, 0x18d4, 0x18e9, 0x1905, 0x1905, 0x1905, + 0x1905, 0x191d, 0x1938, 0x195a, 0x196c, 0x1981, 0x1999, 0x19bb, + 0x19bb, 0x19bb, 0x19d0, 0x19df, 0x19f4, 0x1a06, 0x1a06, 0x1a15, + 0x1a2a, 0x1a3c, 0x1a4b, 0x1a63, 0x1a75, 0x1a8d, 0x1a8d, 0x1a8d, + // Entry 180 - 1BF + 0x1a8d, 0x1a9f, 0x1a9f, 0x1aae, 0x1aba, 0x1adf, 0x1adf, 0x1afb, + 0x1b10, 0x1b22, 0x1b31, 0x1b40, 0x1b55, 0x1b55, 0x1b55, 0x1b6a, + 0x1b6a, 0x1b76, 0x1b88, 0x1b9a, 0x1bb5, 0x1bc1, 0x1bc1, 0x1bd0, + 0x1bdf, 0x1bf1, 0x1bfd, 0x1c18, 0x1c34, 0x1c5f, 0x1c6b, 0x1c7d, + 0x1ca1, 0x1cb3, 0x1cc8, 0x1cd7, 0x1ce9, 0x1ce9, 0x1cfe, 0x1d1a, + 0x1d29, 0x1d44, 0x1d59, 0x1d59, 0x1d59, 0x1d6e, 0x1d8f, 0x1d8f, + 0x1daa, 0x1db6, 0x1dcc, 0x1dde, 0x1ded, 0x1dff, 0x1dff, 0x1e14, + 0x1e14, 0x1e23, 0x1e45, 0x1e45, 0x1e54, 0x1e73, 0x1e7f, 0x1ea4, + // Entry 1C0 - 1FF + 0x1ebf, 0x1ed7, 0x1ee9, 0x1efb, 0x1f07, 0x1f2f, 0x1f4a, 0x1f59, + 0x1f77, 0x1f9b, 0x1fb0, 0x1fb0, 0x1fb0, 0x1fb0, 0x1fd2, 0x1fd2, + 0x1fea, 0x1fea, 0x1fea, 0x2005, 0x2005, 0x203c, 0x204b, 0x204b, + 0x2066, 0x207b, 0x2096, 0x2096, 0x2096, 0x20a8, 0x20ba, 0x20ba, + 0x20ba, 0x20ba, 0x20d5, 0x20e4, 0x20f3, 0x2102, 0x212d, 0x2142, + 0x2151, 0x2163, 0x2163, 0x2163, 0x2172, 0x218a, 0x219f, 0x219f, + 0x21ca, 0x21ca, 0x21d6, 0x21d6, 0x21e8, 0x2216, 0x2238, 0x2238, + 0x2253, 0x225c, 0x225c, 0x226e, 0x226e, 0x226e, 0x2299, 0x22b5, + // Entry 200 - 23F + 0x22d1, 0x22f3, 0x230b, 0x2323, 0x234b, 0x235a, 0x235a, 0x235a, + 0x236c, 0x2378, 0x2390, 0x23a8, 0x23d0, 0x23e5, 0x23e5, 0x23e5, + 0x23f7, 0x2403, 0x2415, 0x2424, 0x2439, 0x2442, 0x2457, 0x2457, + 0x246f, 0x2481, 0x2481, 0x2496, 0x24bb, 0x24d4, 0x24d4, 0x24d4, + 0x24d4, 0x24ec, 0x24ec, 0x2504, 0x2516, 0x2531, 0x2549, 0x257e, + 0x2593, 0x25ae, 0x25c9, 0x25d2, 0x25db, 0x25db, 0x25db, 0x25db, + 0x25db, 0x25ea, 0x25ea, 0x25f9, 0x25f9, 0x2608, 0x2614, 0x2620, + 0x263b, 0x263b, 0x2650, 0x2650, 0x265c, 0x2665, 0x2674, 0x2674, + // Entry 240 - 27F + 0x2674, 0x2674, 0x2689, 0x269e, 0x26c5, 0x26c5, 0x26dd, 0x2721, + 0x272d, 0x2777, 0x2783, 0x27bb, 0x27bb, 0x27e6, 0x280f, 0x2846, + 0x2871, 0x289c, 0x28c7, 0x2902, 0x2930, 0x295e, 0x295e, 0x2986, + 0x29a8, 0x29c1, 0x29d6, 0x2a10, 0x2a44, 0x2a68, 0x2a93, 0x2abb, + 0x2add, 0x2b05, +} // Size: 1244 bytes + +var msLangStr string = "" + // Size: 2443 bytes + "AbkhaziaAvestanAfrikaansAkanAmharicArabAssamAvaricAymaraAzerbaijanBashki" + + "rBelarusBulgariaBambaraBenggalaTibetBretonBosniaCataloniaChechenCorsicaC" + + "zechSlavik GerejaChuvashWalesDenmarkJermanDivehiDzongkhaEweGreekInggeris" + + "EsperantoSepanyolEstoniaBasqueParsiFinlandFijiFaroePerancisFrisian Barat" + + "IrelandScots GaelicGaliciaGuaraniGujeratManxHausaIbraniHindiCroatiaHaiti" + + "HungaryArmeniaInterlinguaIndonesiaInterlingueIgboSichuan YiIcelandItaliI" + + "nuktitutJepunJawaGeorgiaKongoKikuyaKazakhstanKalaallisutKhmerKannadaKore" + + "aKashmirKurdishCornishKirghizLatinLuxembourgGandaLingalaLaosLithuaniaLub" + + "a-KatangaLatviaMalagasyMaoriMacedoniaMalayalamMongoliaMarathiBahasa Mela" + + "yuMaltaBurmaNdebele UtaraNepalBelandaNynorsk NorwayBokmÃ¥l NorwayNyanjaOc" + + "citaniaOromoOriyaOssetePunjabiPolandPashtoPortugisQuechuaRomanshRundiRom" + + "aniaRusiaKinyarwandaSanskritSindhiSami UtaraSangoSinhalaSlovakSloveniaSa" + + "moaShonaSomaliAlbaniaSerbiaSwatiSotho SelatanSundaSwedenSwahiliTamilTelu" + + "guTajikThaiTigrinyaTurkmenTswanaTongaTurkiTsongaTatarTahitiUyghurUkraine" + + "UrduUzbekistanVendaVietnamWolofXhosaYiddishYorubaCinaZuluAkoliAdygheArab" + + " TunisiaAghemAltai SelatanMapucheArab AlgeriaArab MaghribiArab MesirAsuB" + + "aluchiBasaaBamunGhomalaBejaBembaBenaBafutBalochi BaratKomBishnupriyaBrah" + + "uiBodoAkooseBuriatBuluMedumbaCayugaChigaMariCherokeeKurdi SoraniCopticTu" + + "rki KrimeaTaitaZarmaDogriLower SorbianDualaJola-FonyiDazagaEmbuEfikEwond" + + "oFilipinaGaGagauzGbayaZoroastrian DariGilakiGreek PurbaJerman Switzerlan" + + "dGusiiHawaiiUpper SorbianIbibioNgombaMachameKabyleKambaKanembuMakondeKab" + + "uverdianuKoyra ChiiniKhowarKakoKalenjinKomi-PermyakKonkaniShambalaBafiaC" + + "olognianLangiLahndaLakotaLoziLuri UtaraLuba-LuluaLuoMizoLuyiaMafaMasaiMa" + + "baMeruMorisyenMakhuwa-MeettoMeta’ManipuriMohawkMundangMyeneMazanderaniNa" + + "maJerman RendahKwasioNgiemboonN’koSotho UtaraNuerNyankoleKʼicheʼRomboRwa" + + "SamburuNgambaySanguKurdish SelatanSenecaSenaKoyraboro SenniTachelhitChad" + + "ian ArabSami SelatanLule SamiInari SamiSkolt SamiSahoComoriaTesoTetumKli" + + "ngonTalyshTok PisinTarokoTumbukaTasawaqTamazight Atlas TengahBahasa Tida" + + "k DiketahuiVaiVunjoWalserWarlpiriSogaYangbenYembaTamazight Maghribi Stan" + + "dardTiada kandungan linguistikZazaArab Standard ModenJerman AustriaJerma" + + "n Halus SwitzerlandInggeris AustraliaInggeris KanadaInggeris BritishIngg" + + "eris ASSepanyol Amerika LatinSepanyol EropahSepanyol MexicoPerancis Kana" + + "daPerancis SwitzerlandSaxon RendahFlemishPortugis BrazilPortugis EropahM" + + "oldaviaSerboCroatiaCongo SwahiliCina RingkasCina Tradisional" + +var msLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x000f, 0x0018, 0x001c, 0x0023, 0x0023, + 0x0027, 0x002c, 0x0032, 0x0038, 0x0042, 0x0049, 0x0050, 0x0058, + 0x0058, 0x005f, 0x0067, 0x006c, 0x0072, 0x0078, 0x0081, 0x0088, + 0x0088, 0x008f, 0x008f, 0x0094, 0x00a1, 0x00a8, 0x00ad, 0x00b4, + 0x00ba, 0x00c0, 0x00c8, 0x00cb, 0x00d0, 0x00d8, 0x00e1, 0x00e9, + 0x00f0, 0x00f6, 0x00fb, 0x00fb, 0x0102, 0x0106, 0x010b, 0x0113, + 0x0120, 0x0127, 0x0133, 0x013a, 0x0141, 0x0148, 0x014c, 0x0151, + 0x0157, 0x015c, 0x015c, 0x0163, 0x0168, 0x016f, 0x0176, 0x0176, + // Entry 40 - 7F + 0x0181, 0x018a, 0x0195, 0x0199, 0x01a3, 0x01a3, 0x01a3, 0x01aa, + 0x01af, 0x01b8, 0x01bd, 0x01c1, 0x01c8, 0x01cd, 0x01d3, 0x01d3, + 0x01dd, 0x01e8, 0x01ed, 0x01f4, 0x01f9, 0x01f9, 0x0200, 0x0207, + 0x0207, 0x020e, 0x0215, 0x021a, 0x0224, 0x0229, 0x0229, 0x0230, + 0x0234, 0x023d, 0x0249, 0x024f, 0x0257, 0x0257, 0x025c, 0x0265, + 0x026e, 0x0276, 0x027d, 0x028a, 0x028f, 0x0294, 0x0294, 0x02a1, + 0x02a6, 0x02a6, 0x02ad, 0x02bb, 0x02c9, 0x02c9, 0x02c9, 0x02cf, + 0x02d8, 0x02d8, 0x02dd, 0x02e2, 0x02e8, 0x02ef, 0x02ef, 0x02f5, + // Entry 80 - BF + 0x02fb, 0x0303, 0x030a, 0x0311, 0x0316, 0x031d, 0x0322, 0x032d, + 0x0335, 0x0335, 0x033b, 0x0345, 0x034a, 0x0351, 0x0357, 0x035f, + 0x0364, 0x0369, 0x036f, 0x0376, 0x037c, 0x0381, 0x038e, 0x0393, + 0x0399, 0x03a0, 0x03a5, 0x03ab, 0x03b0, 0x03b4, 0x03bc, 0x03c3, + 0x03c9, 0x03ce, 0x03d3, 0x03d9, 0x03de, 0x03e4, 0x03ea, 0x03f1, + 0x03f5, 0x03ff, 0x0404, 0x040b, 0x040b, 0x040b, 0x0410, 0x0415, + 0x041c, 0x0422, 0x0422, 0x0426, 0x042a, 0x042a, 0x042f, 0x042f, + 0x0435, 0x0441, 0x0441, 0x0446, 0x0446, 0x0446, 0x0446, 0x0446, + // Entry C0 - FF + 0x0446, 0x0453, 0x0453, 0x0453, 0x0453, 0x045a, 0x045a, 0x045a, + 0x0466, 0x0466, 0x0473, 0x047d, 0x0480, 0x0480, 0x0480, 0x0480, + 0x0480, 0x0487, 0x0487, 0x0487, 0x048c, 0x0491, 0x0491, 0x0498, + 0x049c, 0x04a1, 0x04a1, 0x04a5, 0x04aa, 0x04aa, 0x04b7, 0x04b7, + 0x04b7, 0x04b7, 0x04b7, 0x04ba, 0x04ba, 0x04c5, 0x04c5, 0x04c5, + 0x04cb, 0x04cf, 0x04d5, 0x04db, 0x04db, 0x04df, 0x04df, 0x04e6, + 0x04e6, 0x04e6, 0x04ec, 0x04ec, 0x04ec, 0x04f1, 0x04f1, 0x04f1, + 0x04f1, 0x04f5, 0x04f5, 0x04f5, 0x04f5, 0x04fd, 0x04fd, 0x0509, + // Entry 100 - 13F + 0x050f, 0x050f, 0x051b, 0x051b, 0x051b, 0x051b, 0x0520, 0x0520, + 0x0520, 0x0520, 0x0520, 0x0525, 0x052a, 0x0537, 0x0537, 0x053c, + 0x053c, 0x0546, 0x0546, 0x054c, 0x0550, 0x0554, 0x0554, 0x0554, + 0x0554, 0x0554, 0x0554, 0x0554, 0x055a, 0x055a, 0x055a, 0x0562, + 0x0562, 0x0562, 0x0562, 0x0562, 0x0562, 0x0562, 0x0562, 0x0562, + 0x0562, 0x0564, 0x056a, 0x056a, 0x056a, 0x056f, 0x057f, 0x057f, + 0x057f, 0x0585, 0x0585, 0x0585, 0x0585, 0x0585, 0x0585, 0x0585, + 0x0585, 0x0590, 0x05a2, 0x05a2, 0x05a2, 0x05a7, 0x05a7, 0x05a7, + // Entry 140 - 17F + 0x05a7, 0x05ad, 0x05ad, 0x05ad, 0x05ad, 0x05ad, 0x05ba, 0x05ba, + 0x05ba, 0x05ba, 0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c0, 0x05c0, + 0x05c6, 0x05cd, 0x05cd, 0x05cd, 0x05cd, 0x05cd, 0x05d3, 0x05d3, + 0x05d3, 0x05d8, 0x05d8, 0x05d8, 0x05df, 0x05df, 0x05e6, 0x05f2, + 0x05f2, 0x05f2, 0x05f2, 0x05f2, 0x05f2, 0x05fe, 0x0604, 0x0604, + 0x0608, 0x0610, 0x0610, 0x061c, 0x0623, 0x0623, 0x0623, 0x0623, + 0x0623, 0x0623, 0x0623, 0x0623, 0x062b, 0x0630, 0x0639, 0x0639, + 0x0639, 0x0639, 0x063e, 0x0644, 0x0644, 0x0644, 0x0644, 0x0644, + // Entry 180 - 1BF + 0x0644, 0x064a, 0x064a, 0x064a, 0x064e, 0x0658, 0x0658, 0x0662, + 0x0662, 0x0662, 0x0665, 0x0669, 0x066e, 0x066e, 0x066e, 0x066e, + 0x0672, 0x0672, 0x0672, 0x0672, 0x0672, 0x0677, 0x067b, 0x067b, + 0x067b, 0x067b, 0x067f, 0x0687, 0x0687, 0x0695, 0x069c, 0x069c, + 0x069c, 0x069c, 0x06a4, 0x06aa, 0x06aa, 0x06aa, 0x06b1, 0x06b1, + 0x06b1, 0x06b1, 0x06b1, 0x06b1, 0x06b6, 0x06b6, 0x06c1, 0x06c1, + 0x06c1, 0x06c5, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d2, 0x06d8, + 0x06e1, 0x06e1, 0x06e1, 0x06e1, 0x06e7, 0x06f2, 0x06f6, 0x06f6, + // Entry 1C0 - 1FF + 0x06f6, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, + 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, + 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x0707, 0x0707, + 0x0707, 0x0707, 0x0707, 0x0707, 0x0707, 0x070c, 0x070c, 0x070c, + 0x070c, 0x070c, 0x070c, 0x070f, 0x070f, 0x070f, 0x070f, 0x0716, + 0x0716, 0x0716, 0x0716, 0x071d, 0x0722, 0x0722, 0x0722, 0x0722, + 0x0731, 0x0737, 0x073b, 0x073b, 0x073b, 0x074a, 0x074a, 0x074a, + 0x0753, 0x0753, 0x075f, 0x075f, 0x075f, 0x075f, 0x076b, 0x0774, + // Entry 200 - 23F + 0x077e, 0x0788, 0x0788, 0x0788, 0x0788, 0x0788, 0x078c, 0x078c, + 0x078c, 0x078c, 0x078c, 0x0793, 0x0793, 0x0793, 0x0793, 0x0793, + 0x0793, 0x0797, 0x0797, 0x079c, 0x079c, 0x079c, 0x079c, 0x079c, + 0x07a3, 0x07a3, 0x07a9, 0x07a9, 0x07a9, 0x07b2, 0x07b2, 0x07b8, + 0x07b8, 0x07b8, 0x07b8, 0x07bf, 0x07bf, 0x07c6, 0x07c6, 0x07dc, + 0x07dc, 0x07dc, 0x07dc, 0x07f2, 0x07f5, 0x07f5, 0x07f5, 0x07f5, + 0x07f5, 0x07f5, 0x07f5, 0x07fa, 0x0800, 0x0800, 0x0800, 0x0800, + 0x0808, 0x0808, 0x0808, 0x0808, 0x080c, 0x080c, 0x080c, 0x0813, + // Entry 240 - 27F + 0x0818, 0x0818, 0x0818, 0x0818, 0x0818, 0x0818, 0x0818, 0x0833, + 0x0833, 0x084d, 0x0851, 0x0864, 0x0864, 0x0872, 0x088a, 0x089c, + 0x08ab, 0x08bb, 0x08c6, 0x08dc, 0x08eb, 0x08fa, 0x08fa, 0x0909, + 0x091d, 0x0929, 0x0930, 0x093f, 0x094e, 0x0956, 0x0962, 0x096f, + 0x097b, 0x098b, +} // Size: 1244 bytes + +var myLangStr string = "" + // Size: 6975 bytes + "အဘ်á€á€«á€‡á€®á€›á€”်အာဖရိကန်းစ်အာကိန်အန်ဟာရစျá€á€»á€¡á€¬á€›á€±á€—ီအက္စမီစ်အော်ဇောဘိုင်ဂျောနီဘက်" + + "ရှ်ကီအာဘီလာရုဘူဂေးရီးယားဘန်ဘာရာဘင်္ဂါလီá€á€­á€˜á€€á€ºá€˜á€›á€®á€á€½á€”်ဘော့စ်နီးယားကာá€á€¬á€œá€”်" + + "á€á€»á€±á€á€»á€„်းá€á€­á€¯á€…ီကန်á€á€›á€®á€¸á€á€»á€€á€ºá€á€»á€°á€—က်ရှ်á€á€±á€œá€’ိန်းမá€á€ºá€‚ျာမန်ဒွန်ကာá€á€®á€‚ရိအင်္ဂလိပ်" + + "အက္စပရန္á€á€­á€¯á€…ပိန်အက်စ်á€á€­á€¯á€¸á€”ီးရန်းဘစ်က္ကီပါရှန်ဖင်နစ်ရှ်ဖီဂျီဖာရိုအိစ်ပြ" + + "င်သစ်အနောက်ပိုင်း ဖရီစီရန်အိုင်းရစ်ဂါလာစီယံဂူအာရာနီဂူဂျာရသီမန်းဇ်ဟာဥစာ" + + "ဟီးဘရူးဟိန္ဒီá€á€›á€­á€¯á€¡á€±á€›á€¾á€”်ဟာအီá€á€®á€¡á€”်ဟန်ဂေရီအာမေနီအန်အင်ဒိုနီးရှားအစ္ဂဘိုစီ" + + "á€á€»á€½á€™á€º ရီအိုင်စ်လန္ဒီအီá€á€œá€®á€¡á€®á€”ုá€á€ºá€á€®á€á€¯á€‚ျပန်ဂျာဗားနီးစ်ဂျော်ဂျီယန်ကွန်ဂိုá€" + + "ီá€á€°á€šá€°á€á€«á€‡á€«á€á€ºá€á€œá€¬á€¡á€ºá€œá€®á€†á€•á€ºá€á€™á€¬á€€á€”္နာဒါကိုးရီးယားကက်ရှ်မီရီကဒ်á€á€­á€¯á€”ီရှ်á€á€›á€°á€‚စ်လက" + + "်á€á€„်လူဇင်ဘá€á€ºá€€á€ºá€‚န်ဒီလင်ဂါလာလာအိုလစ္သူအာနီယံလူဘာ-á€á€«á€á€”်ဂါလက္ဘီအံအာလာဂါစီမ" + + "ောင်းရီ (နယူးဇီလန်ကျွန်းရှိ ပင်ရင်းá€á€­á€¯á€„်းရင်းသားလူမျိုး)မာစီဒိုနီယံမလေ" + + "းရာလမ်မွန်ဂိုလီးယန်းမာရသီမလေးမောလ္á€á€®á€…်ဗမာá€á€±á€¬á€„်ဒီဘီလီနီပါလီဒá€á€ºá€á€»á€ºá€”ော်á€á€±" + + "း နီးနော်စ်á€á€ºá€˜á€½á€á€ºá€™á€±á€¬á€ºá€œá€ºá€¡á€­á€¯á€›á€­á€¯á€™á€­á€¯á€¡á€­á€¯á€›á€®á€›á€¬á€•á€”်á€á€»á€¬á€•á€®á€•á€«á€ á€­á€•á€­á€¯á€œá€”်ပါရှ်á€á€­á€¯á€•á€±á€«á€ºá€" + + "ူဂီá€á€€á€ºá€á€»á€ºá€á€«á€›á€±á€¬á€™á€›á€½á€”်ဒီရိုမေနီယားရုရှကင်ရာá€á€”်ဒါသင်္သကရိုက်စင်ဒီá€á€±á€¬á€„်ဆာမိ" + + "ဆမ်ဂိုဆင်ဟာလစလိုဗက်စလိုဗေးနီးယမ်းရှိနာဆိုမာလီအယ်လ်ဘေးနီးယန်းဆားဗီးယန်း" + + "ဆွီဒင်ဆြာဟီလီá€á€™á€®á€¸á€œá€ºá€á€®á€œá€®á€‚ုá€á€¬á€‚ျစ်ထိုင်းá€á€®á€‚်ရင်ရာá€á€á€¹á€™á€„်á€á€½á€”်ဂါá€á€¬á€€á€…်á€á€á€¬á€á€®á€‚ါ" + + "ယူကရိန်းအော်ဒူဦးဇ်ဘက်ဗီယက်နမ်á€á€°á€œá€­á€¯á€–်ဇိုစာရိုရုဘာá€á€›á€¯á€á€ºá€‡á€°á€œá€°á€¡á€¬á€‚်ဟိန်းအင်္" + + "ဂလိပ်စာဟောင်းမာပုá€á€»á€®á€¡á€¬á€…ုဘာလီဘာဆာဘိန်ဘာဘီနာအနောက်ပိုင်းဘဲလိုá€á€»á€®á€—ိုဒိုá€á€»" + + "ီဂါá€á€»á€¬á€›á€­á€¯á€€á€®á€†á€­á€¯á€›á€¬á€”ီ ကူဒစ်ရှ်ဒါကိုá€á€¬á€á€­á€¯á€„်á€á€¬á€’ီလာá€á€²á€‡á€¬á€™á€¬á€¡á€±á€¬á€€á€ºá€†á€­á€¯á€˜á€®á€¡á€™á€ºá€’ူအလာအ" + + "လယ်ပိုင်း ဒá€á€ºá€á€»á€ºá€‚ျိုလာ-ဖွန်ရီအမ်ဘူရှေးဟောင်း အီဂျစ်အလယ်ပိုင်း အင်္ဂလိပ" + + "်ဖိလစ်ပီနိုအလယ်ပိုင်းပြင်သစ်ပြင်သစ်ဟောင်းမြောက်ပိုင်း ဖရီစီရန်အရှေ့ပို" + + "င်း ဖရီစီရန်ဂါဂါဇ်အလယ်ပိုင်းအမြင့်ဂျာမန်ရှေးဟောင်း ဂရိဆွစ် ဂျာမန်ဂူစီး" + + "ဟာá€á€±á€šá€¶á€¡á€•á€±á€«á€ºá€†á€­á€¯á€˜á€®á€¡á€™á€ºá€‚ွမ်ဘာမá€á€»á€¬á€™á€®á€‚ျူဒီယို-ပါရှန်ဂျူဒီယို-အာရေဗျá€á€˜á€­á€¯á€„်လ်က" + + "á€á€»á€„်á€á€™á€ºá€˜á€¬á€™á€¬á€á€½á€”်ဒီá€á€˜á€°á€—ာဒီအာနူá€á€«á€…ီá€á€­á€¯á€›á€¬ á€á€»á€®á€¡á€®á€”ီá€á€«á€œá€­á€™á€ºá€‚ျင်ကိုမီ-ပါမြက်ကွန" + + "်ကနီရှန်ဘာလာဘာဖီအာလန်ဂီလာကိုá€á€¬á€™á€¼á€±á€¬á€€á€ºá€œá€°á€›á€®á€œá€°á€¡á€­á€¯á€œá€°á€›á€®á€¡á€¬á€™á€¬á€†á€­á€¯á€„်မီရုမိုရှီစ်" + + "ယန်းအလယ်ပိုင်း အိုင်းရစ်မာá€á€°á€á€«-မီအီá€á€­á€¯á€™á€®á€á€¬á€™á€”်á€á€»á€°á€¸á€™á€­á€¯á€Ÿá€±á€¬á€·á€á€ºá€™á€”်ဒန်းအကြိမ" + + "်များစွာ ဘာသာစကားများမာဇန်ဒါရန်နီနာမာအနိမ့် ဂျာမန်á€á€«á€†á€®á€¡á€­á€¯á€”ကိုနူအာယန်ကိ" + + "ုလီပါရှန် အဟောင်းá€á€®á€á€ºá€¡á€®á€á€»á€®á€›á€½á€™á€ºá€˜á€­á€¯á€á€«á€†á€”်ဘူရုဆန်ဂုစကော့စီနာá€á€­á€¯á€›á€¬á€˜á€­á€¯á€›á€­á€¯ ဆမ" + + "်နီအိုင်းရစ် ဟောင်းá€á€¬á€á€»á€šá€ºá€œá€ºá€Ÿá€…်ရှမ်းá€á€±á€¬á€„်ပိုင်း ဆာမိလူလီ ဆာမိအီနာရီ ဆာမ" + + "ိá€á€­á€¯á€œá€º ဆာမိá€á€®á€†á€­á€¯á€á€¬á€†á€¬á€á€«á€á€ºá€¡á€œá€šá€ºá€¡á€€á€ºá€á€ºá€œá€€á€ºá€…် á€á€¬á€™á€¬á€‡á€­á€¯á€€á€ºá€™á€°á€œá€›á€„်းမြစ်ဗိုင်ဗန်ဂျိ" + + "ုá€á€±á€«á€œá€ºá€•á€«á€›á€®á€†á€­á€¯á€‚ါမိုရိုကန် á€á€½á€™á€ºá€™á€‡á€­á€¯á€á€º စံဘာသာစကား နှင့် ပá€á€ºá€žá€€á€º သောအရာမရှိ" + + "အရေဗီ(ပုံမှန်)ဩစá€á€¼á€®á€¸á€š ဂျာမန်ဆွစ် အမြင့် ဂျာမန်ဩစá€á€¼á€±á€¸á€œá€»á€¾ အင်္ဂလိပ်ကနေဒါ" + + " အင်္ဂလိပ်ဗြိá€á€­á€žá€»á€¾ အင်္ဂလိပ်အမေရိကန် အင်္ဂလိပ်လက်á€á€„်အမေရိက စပိန်စပိန်(ဥရ" + + "ောပ)ကနေဒါ ပြင်သစ်ဆွစ် ပြင်သစ်ဖလီမစ်ရှ်ဘရာဇီး ပေါ်á€á€°á€‚ီဥရောပ ပေါ်á€á€°á€‚ီá€á€½á€”" + + "်ဂို စွာဟီလီရိုးရှင်းသော á€á€›á€¯á€á€ºá€›á€¾á€±á€¸á€›á€­á€¯á€¸á€…ဉ်လာ á€á€›á€¯á€á€º" + +var myLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x001e, 0x001e, 0x003f, 0x0051, 0x006f, 0x006f, + 0x0081, 0x0099, 0x0099, 0x0099, 0x00cf, 0x00ed, 0x00ff, 0x0120, + 0x0120, 0x0135, 0x014d, 0x015c, 0x0171, 0x0195, 0x01aa, 0x01c2, + 0x01c2, 0x01da, 0x01e6, 0x01f2, 0x01f2, 0x020d, 0x0216, 0x022e, + 0x0240, 0x0240, 0x0252, 0x0258, 0x0261, 0x027c, 0x029d, 0x02ac, + 0x02dc, 0x02f1, 0x0303, 0x0303, 0x031e, 0x032d, 0x0348, 0x035d, + 0x039a, 0x03b5, 0x03b5, 0x03cd, 0x03e5, 0x03fd, 0x040f, 0x041e, + 0x0433, 0x0445, 0x0445, 0x0463, 0x047e, 0x0493, 0x04ae, 0x04ae, + // Entry 40 - 7F + 0x04ae, 0x04d5, 0x04d5, 0x04ea, 0x0506, 0x0506, 0x0506, 0x052a, + 0x0539, 0x0557, 0x0566, 0x0587, 0x05a8, 0x05bd, 0x05cf, 0x05cf, + 0x05e1, 0x05ff, 0x0608, 0x061d, 0x063b, 0x063b, 0x0659, 0x0662, + 0x0662, 0x067a, 0x068c, 0x069e, 0x06bc, 0x06cb, 0x06cb, 0x06e0, + 0x06ef, 0x0710, 0x0732, 0x0747, 0x075f, 0x075f, 0x0802, 0x0823, + 0x083e, 0x0868, 0x0877, 0x0883, 0x089e, 0x08a7, 0x08a7, 0x08c8, + 0x08da, 0x08da, 0x08ec, 0x0923, 0x0941, 0x0941, 0x0941, 0x0941, + 0x0941, 0x0941, 0x095c, 0x0971, 0x0971, 0x0989, 0x0995, 0x09a7, + // Entry 80 - BF + 0x09bf, 0x09d7, 0x09ef, 0x09fb, 0x0a0d, 0x0a2b, 0x0a37, 0x0a55, + 0x0a76, 0x0a76, 0x0a85, 0x0aa0, 0x0ab2, 0x0ac4, 0x0ad9, 0x0b03, + 0x0b03, 0x0b12, 0x0b27, 0x0b54, 0x0b72, 0x0b72, 0x0b72, 0x0b72, + 0x0b84, 0x0b99, 0x0bab, 0x0bbd, 0x0bcf, 0x0be1, 0x0bfc, 0x0c0e, + 0x0c0e, 0x0c20, 0x0c2f, 0x0c2f, 0x0c38, 0x0c38, 0x0c44, 0x0c5c, + 0x0c6e, 0x0c83, 0x0c83, 0x0c9b, 0x0c9b, 0x0c9b, 0x0cb0, 0x0cbf, + 0x0cbf, 0x0cd4, 0x0cd4, 0x0ce3, 0x0cef, 0x0cef, 0x0cef, 0x0cef, + 0x0cef, 0x0cef, 0x0cef, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, 0x0d0a, + // Entry C0 - FF + 0x0d0a, 0x0d0a, 0x0d3d, 0x0d3d, 0x0d3d, 0x0d52, 0x0d52, 0x0d52, + 0x0d52, 0x0d52, 0x0d52, 0x0d52, 0x0d5e, 0x0d5e, 0x0d5e, 0x0d5e, + 0x0d5e, 0x0d5e, 0x0d6a, 0x0d6a, 0x0d76, 0x0d76, 0x0d76, 0x0d76, + 0x0d76, 0x0d88, 0x0d88, 0x0d94, 0x0d94, 0x0d94, 0x0dd0, 0x0dd0, + 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, + 0x0dd0, 0x0de2, 0x0de2, 0x0de2, 0x0de2, 0x0de2, 0x0de2, 0x0de2, + 0x0de2, 0x0de2, 0x0de2, 0x0de2, 0x0de2, 0x0df1, 0x0df1, 0x0df1, + 0x0df1, 0x0df1, 0x0df1, 0x0df1, 0x0df1, 0x0e09, 0x0e09, 0x0e37, + // Entry 100 - 13F + 0x0e37, 0x0e37, 0x0e37, 0x0e37, 0x0e4c, 0x0e4c, 0x0e61, 0x0e73, + 0x0e73, 0x0e73, 0x0e73, 0x0e7f, 0x0e7f, 0x0ea6, 0x0ea6, 0x0eb5, + 0x0ee6, 0x0f0b, 0x0f0b, 0x0f0b, 0x0f1a, 0x0f1a, 0x0f1a, 0x0f4b, + 0x0f4b, 0x0f4b, 0x0f85, 0x0f85, 0x0f85, 0x0f85, 0x0f85, 0x0fa3, + 0x0fa3, 0x0fa3, 0x0fa3, 0x0fd6, 0x0ffd, 0x0ffd, 0x103a, 0x1074, + 0x1074, 0x1074, 0x1086, 0x1086, 0x1086, 0x1086, 0x1086, 0x1086, + 0x1086, 0x1086, 0x10c8, 0x10c8, 0x10c8, 0x10c8, 0x10c8, 0x10c8, + 0x10c8, 0x10f0, 0x110f, 0x110f, 0x110f, 0x111e, 0x111e, 0x111e, + // Entry 140 - 17F + 0x111e, 0x1130, 0x1130, 0x1130, 0x1130, 0x1130, 0x1157, 0x1157, + 0x1157, 0x1157, 0x1157, 0x1157, 0x1157, 0x1157, 0x1157, 0x1157, + 0x1169, 0x117b, 0x11a6, 0x11d1, 0x11d1, 0x11d1, 0x11e9, 0x11f8, + 0x11f8, 0x1207, 0x1207, 0x1207, 0x1207, 0x1207, 0x121f, 0x1240, + 0x1240, 0x1240, 0x1240, 0x124c, 0x124c, 0x1271, 0x1271, 0x1271, + 0x1271, 0x128f, 0x128f, 0x12b1, 0x12c6, 0x12c6, 0x12c6, 0x12c6, + 0x12c6, 0x12c6, 0x12c6, 0x12c6, 0x12de, 0x12f0, 0x12f0, 0x12f0, + 0x12f0, 0x12f0, 0x12ff, 0x12ff, 0x12ff, 0x12ff, 0x12ff, 0x12ff, + // Entry 180 - 1BF + 0x12ff, 0x1314, 0x1314, 0x1314, 0x1314, 0x1332, 0x1332, 0x1332, + 0x1332, 0x1332, 0x1341, 0x1341, 0x1353, 0x1353, 0x1353, 0x1353, + 0x1353, 0x1353, 0x1353, 0x1353, 0x1353, 0x1368, 0x1368, 0x1368, + 0x1368, 0x1368, 0x1374, 0x1398, 0x13d2, 0x13fa, 0x1406, 0x1406, + 0x1406, 0x141b, 0x141b, 0x1436, 0x1436, 0x1436, 0x144b, 0x1497, + 0x1497, 0x1497, 0x1497, 0x1497, 0x1497, 0x1497, 0x14bb, 0x14bb, + 0x14bb, 0x14c7, 0x14ec, 0x14ec, 0x14ec, 0x14ec, 0x14ec, 0x1501, + 0x1501, 0x1501, 0x1501, 0x1501, 0x150d, 0x150d, 0x1519, 0x1519, + // Entry 1C0 - 1FF + 0x1519, 0x1531, 0x1531, 0x1531, 0x1531, 0x1531, 0x1531, 0x1531, + 0x1531, 0x1531, 0x1531, 0x1531, 0x1531, 0x1531, 0x1559, 0x1559, + 0x1559, 0x1559, 0x1559, 0x1559, 0x1559, 0x1559, 0x1574, 0x1574, + 0x1574, 0x1574, 0x1574, 0x1574, 0x1574, 0x1589, 0x1589, 0x1589, + 0x1589, 0x1589, 0x1589, 0x158f, 0x158f, 0x158f, 0x158f, 0x15a4, + 0x15a4, 0x15a4, 0x15a4, 0x15a4, 0x15b3, 0x15b3, 0x15c2, 0x15c2, + 0x15c2, 0x15c2, 0x15ce, 0x15ce, 0x15ce, 0x15ff, 0x162d, 0x162d, + 0x164e, 0x165d, 0x165d, 0x165d, 0x165d, 0x165d, 0x168b, 0x16a4, + // Entry 200 - 23F + 0x16c3, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, + 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, 0x16df, + 0x16df, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, + 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, + 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x16ee, 0x1706, 0x1706, 0x174c, + 0x174c, 0x174c, 0x174c, 0x176d, 0x177c, 0x177c, 0x177c, 0x177c, + 0x177c, 0x177c, 0x177c, 0x1791, 0x1791, 0x1791, 0x1791, 0x1791, + 0x17ac, 0x17ac, 0x17ac, 0x17ac, 0x17bb, 0x17bb, 0x17bb, 0x17bb, + // Entry 240 - 27F + 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17bb, 0x17fc, + 0x17fc, 0x1856, 0x1856, 0x187c, 0x187c, 0x18a4, 0x18d6, 0x190d, + 0x1938, 0x196c, 0x19a0, 0x19d4, 0x19f4, 0x19f4, 0x19f4, 0x1a19, + 0x1a3b, 0x1a3b, 0x1a56, 0x1a81, 0x1aa9, 0x1aa9, 0x1aa9, 0x1ad4, + 0x1b08, 0x1b3f, +} // Size: 1244 bytes + +var neLangStr string = "" + // Size: 12514 bytes + "अफारअबà¥à¤–ाजियालीअवेसà¥à¤¤à¤¾à¤¨à¤…फà¥à¤°à¤¿à¤•à¤¾à¤¨à¥à¤¸à¤†à¤•à¤¾à¤¨à¤…मà¥à¤¹à¤¾à¤°à¤¿à¤•à¤…रागोनीअरबीआसामीअवारिकà¤à¤®à¤¾à¤°à¤¾" + + "अजरबैजानीबासà¥à¤•à¤¿à¤°à¤¬à¥‡à¤²à¤¾à¤°à¥à¤¸à¥€à¤¬à¥à¤²à¥à¤—ेरियालीबिसà¥à¤²à¤¾à¤®à¤¬à¤¾à¤®à¥à¤¬à¤¾à¤°à¤¾à¤¬à¤‚गालीतिबà¥à¤¬à¤¤à¥€à¤¬à¥à¤°à¥‡à¤Ÿà¤¨" + + "बोसà¥à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥à¤¯à¤¾à¤Ÿà¤¾à¤²à¤¨à¤šà¥‡à¤šà¥‡à¤¨à¤šà¤¾à¤®à¥‹à¤°à¥à¤°à¥‹à¤•à¥‹à¤°à¥à¤¸à¤¿à¤•à¤¨à¤•à¥à¤°à¥€à¤šà¥‡à¤•à¤šà¤°à¥à¤š सà¥à¤²à¤¾à¤­à¤¿à¤•à¤šà¥à¤­à¤¾à¤¸à¤µà¥‡à¤²à¥à¤¶à¤¡à¥‡" + + "निसजरà¥à¤®à¤¨à¤¦à¤¿à¤¬à¥‡à¤¹à¥€à¤œà¥‹à¤™à¥à¤–ाइवीगà¥à¤°à¥€à¤•à¤…ङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤à¤¸à¥à¤ªà¥‡à¤°à¤¾à¤¨à¥à¤¤à¥‹à¤¸à¥à¤ªà¥‡à¤¨à¥€à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¬à¤¾à¤¸à¥à¤•" + + "फारसीफà¥à¤²à¤¾à¤¹à¤«à¤¿à¤¨à¤¿à¤¸à¤«à¤¿à¤œà¤¿à¤¯à¤¾à¤²à¥€à¤«à¤¾à¤°à¥‹à¤œà¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€à¤«à¥à¤°à¤¿à¤œà¥€à¤¯à¤¨à¤†à¤¯à¤°à¤¿à¤¸à¤¸à¥à¤•à¤Ÿà¤¿à¤¸ गाà¤à¤²à¤¿à¤•à¤—लिसिय" + + "ालीगà¥à¤µà¤¾à¤°à¤¾à¤¨à¥€à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤®à¤¾à¤¨à¥à¤•à¥à¤¸à¤¹à¤¾à¤‰à¤¸à¤¾à¤¹à¤¿à¤¬à¥à¤°à¥à¤¹à¤¿à¤¨à¥à¤¦à¥€à¤¹à¤¿à¤°à¥€ मोटà¥à¤•à¥à¤°à¥‹à¤¯à¤¸à¤¿à¤¯à¤¾à¤²à¥€à¤¹à¥ˆà¤Ÿà¤¿à¤¯à¤¾à¤²à¥€" + + "हङà¥à¤—ेरियालीआरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¹à¥‡à¤°à¥‡à¤°à¥‹à¤‡à¤¨à¥à¤Ÿà¤°à¥à¤²à¤¿à¤™à¥à¤—à¥à¤†à¤‡à¤¨à¥à¤¡à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤²à¥€à¤‡à¤¨à¥à¤Ÿà¤°à¤²à¤¿à¤™à¥à¤—à¥à¤µà¥‡à¤‡à¤—à¥" + + "बोसिचà¥à¤†à¤¨ यिइनà¥à¤ªà¤¿à¤†à¤•à¥à¤‡à¤¡à¥‹à¤†à¤‡à¤¸à¤²à¥à¤¯à¤¾à¤¨à¥à¤¡à¤¿à¤¯à¤¾à¤²à¥€à¤‡à¤Ÿà¤¾à¤²à¥‡à¤²à¥€à¤‡à¤¨à¥à¤•à¥à¤Ÿà¤¿à¤Ÿà¥à¤Ÿà¤œà¤¾à¤ªà¤¾à¤¨à¥€à¤œà¤¾à¤­à¤¾à¤¨à¥€à¤œà¤°à¥à¤œ" + + "ियालीकोङà¥à¤—ोकिकà¥à¤¯à¥à¤•à¥à¤†à¤¨à¥à¤¯à¤¾à¤®à¤¾à¤•à¤¾à¤œà¤¾à¤–कालालिसà¥à¤Ÿà¤–मेरकनà¥à¤¨à¤¾à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤²à¥€à¤•à¤¾à¤¨à¥à¤°à¥€à¤•à¤¾à¤¸à¥à¤®" + + "िरीकà¥à¤°à¥à¤¦à¥€à¤•à¥‹à¤®à¥€à¤•à¥‹à¤°à¥à¤¨à¤¿à¤¸à¤•à¤¿à¤°à¥à¤—िजलà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²à¤•à¥à¤œà¥‡à¤®à¥à¤¬à¤°à¥à¤—ीगानà¥à¤¡à¤¾à¤²à¤¿à¤®à¥à¤¬à¥à¤°à¥à¤—ीलिङà¥à¤—ाला" + + "लाओलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤²à¥à¤¬à¤¾-काताङà¥à¤—ालातà¥à¤­à¤¿à¤¯à¤¾à¤²à¥€à¤®à¤²à¤¾à¤—ासीमारà¥à¤¸à¤¾à¤²à¥€à¤®à¤¾à¤“रीमà¥à¤¯à¤¾à¤¸à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¾à¤²" + + "ीमलयालममङà¥à¤—ोलियालीमराठीमलायमालà¥à¤Ÿà¤¿à¤œà¤¬à¤°à¥à¤®à¥‡à¤²à¥€à¤¨à¤¾à¤‰à¤°à¥‚उतà¥à¤¤à¤°à¥€ नà¥à¤¡à¥‡à¤¬à¥‡à¤²à¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¥€à¤¨à¥à¤¦" + + "ोनà¥à¤—ाडचनरà¥à¤µà¥‡à¤²à¥€ नाइनोरà¥à¤¸à¥à¤•à¤¨à¤°à¥à¤µà¥‡à¤²à¥€ बोकमालनाभाजोनà¥à¤¯à¤¾à¤¨à¥à¤œà¤¾à¤…कà¥à¤¸à¤¿à¤Ÿà¤¨à¤“जिबà¥à¤µà¤¾à¤“रो" + + "मोउडियाअोसà¥à¤¸à¥‡à¤Ÿà¤¿à¤•à¤ªà¤‚जाबीपालीपोलिसपासà¥à¤¤à¥‹à¤ªà¥‹à¤°à¥à¤¤à¥à¤—ीकà¥à¤µà¥‡à¤šà¥à¤µà¤¾à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¸à¤°à¥à¤¨à¥à¤¡à¥€à¤°à¥‹à¤®à¤¾" + + "नियालीरूसीकिनà¥à¤¯à¤¾à¤°à¤µà¤¾à¤¨à¥à¤¡à¤¾à¤¸à¤‚सà¥à¤•à¥ƒà¤¤à¤¸à¤¿à¤¨à¥à¤§à¥€à¤‰à¤¤à¥à¤¤à¤°à¥€ सामीसाङà¥à¤—ोसिनà¥à¤¹à¤¾à¤²à¥€à¤¸à¥à¤²à¥‹à¤­à¤¾à¤•à¤¿à¤¯" + + "ालीसà¥à¤²à¥‹à¤­à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¶à¥‹à¤¨à¤¾à¤¸à¥‹à¤®à¤¾à¤²à¥€à¤…लà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¸à¤°à¥à¤¬à¤¿à¤¯à¤¾à¤²à¥€à¤¸à¥à¤µà¤¾à¤¤à¥€à¤¸à¥à¤µà¤¿à¤¡à¤¿à¤¸à¤¸à¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¤à¤¾à¤®à¤¿" + + "लतेलà¥à¤—à¥à¤¤à¤¾à¤œà¤¿à¤•à¤¥à¤¾à¤ˆà¤¤à¤¿à¤—à¥à¤°à¥€à¤¨à¥à¤¯à¤¾à¤Ÿà¤°à¥à¤•à¤®à¥‡à¤¨à¤Ÿà¥‹à¤™à¥à¤—नटरà¥à¤•à¤¿à¤¶à¤¤à¤¾à¤¤à¤¾à¤°à¤‰à¤‡à¤˜à¥à¤°à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¥€à¤‰à¤°à¥à¤¦à¥à¤‰à¤œà¥" + + "बेकीभियतनामीवà¥à¤²à¥à¤«à¤–ोसायिदà¥à¤¦à¤¿à¤¸à¤¯à¥‹à¤°à¥‚वाचिनियाà¤à¤œà¥à¤²à¥à¤…चाइनिजअकोलीअदाङमेअदिघेअफ" + + "à¥à¤°à¤¿à¤¹à¤¿à¤²à¥€à¤†à¤˜à¥‡à¤®à¤…इनà¥à¤…कà¥à¤•à¤¾à¤¦à¤¿à¤¯à¤¾à¤²à¥€à¤…लाबामाअलेउटघेग अलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤ªà¥à¤°à¤¾à¤¤à¤¨ अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤…" + + "ङà¥à¤—िकाअरामाइकमापà¥à¤šà¥‡à¤…राओनाअरापाहोअलà¥à¤œà¥‡à¤°à¤¿à¤¯à¤¾à¤²à¥€ अरबीअरावाकमोरोकà¥à¤•à¥‹à¤²à¥€ अरबीइ" + + "जिपà¥à¤Ÿ अरबीआसà¥à¤…मेरिकी साङà¥à¤•à¥‡à¤¤à¤¿à¤• भाषाअसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥‹à¤Ÿà¤¾à¤µà¤¾à¤…वधीबालà¥à¤šà¥€à¤¬à¤¾à¤²à¥€à¤¬à¤¾à¤­à¤¾" + + "रियालीबासाबामà¥à¤¨à¤¬à¤¾à¤¤à¤¾à¤• तोबाघोमालाबेजाबेमà¥à¤¬à¤¾à¤¬à¥‡à¤Ÿà¤¾à¤µà¥€à¤¬à¥‡à¤¨à¤¾à¤¬à¤¾à¤«à¥à¤Ÿà¤¬à¤¡à¤¾à¤—ापशà¥à¤šà¤¿à¤® बा" + + "लोचीभोजपà¥à¤°à¥€à¤¬à¤¿à¤•à¥‹à¤²à¤¬à¤¿à¤¨à¥€à¤¬à¤¨à¥à¤œà¤¾à¤°à¤•à¥‹à¤®à¤µà¤¿à¤·à¥à¤£à¥à¤ªà¥à¤°à¤¿à¤¯à¤¾à¤¬à¤¾à¤–à¥à¤¤à¤¿à¤†à¤°à¥€à¤¬à¥à¤°à¤œà¤¬à¥à¤°à¤¾à¤¹à¥à¤‡à¤¬à¥‹à¤¡à¥‹à¤…कà¥à¤œà¤¬" + + "à¥à¤°à¤¿à¤†à¤¤à¤¬à¥à¤—िनियालीबà¥à¤²à¥à¤¬à¥à¤²à¤¿à¤¨à¤®à¥‡à¤¡à¥à¤®à¥à¤¬à¤¾à¤•à¤¾à¤¡à¥à¤¡à¥‹à¤•à¥à¤¯à¤¾à¤°à¤¿à¤¬à¤•à¤¾à¤¯à¥à¤—ाअटà¥à¤¸à¤¾à¤®à¤¸à¥‡à¤¬à¥à¤†à¤¨à¥‹à¤šà¤¿à¤—ाचि" + + "बà¥à¤šà¤¾à¤šà¤¾à¤—ाटाईचà¥à¤•à¥‡à¤¸à¥‡à¤®à¤¾à¤°à¥€à¤šà¤¿à¤¨à¥à¤• जारà¥à¤—नचोकà¥à¤Ÿà¤¾à¤µà¤šà¤¿à¤ªà¥‡à¤µà¥à¤¯à¤¾à¤¨à¤šà¥‡à¤°à¥‹à¤•à¥€à¤šà¥‡à¤¯à¥‡à¤¨à¥à¤¨à¥‡à¤•à¥‡à¤¨à¥à¤¦à¥à¤°" + + "ीय कà¥à¤°à¥à¤¦à¥€à¤•à¥‹à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¤¾à¤ªà¤¿à¤œà¥à¤¨à¥‹à¤¨à¤•à¥à¤°à¤¿à¤®à¤¿à¤¯à¤¾à¤²à¥€ तà¥à¤°à¥à¤•à¤•à¤¾à¤¸à¥à¤µà¤¿à¤¯à¤¨à¤¡à¤¾à¤•à¥‹à¤Ÿà¤¾à¤¦à¤¾à¤°à¥à¤—à¥à¤µà¤¾à¤¤à¤¾à¤‡à¤¤à¤¾à¤¦à¥‡" + + "लावरदोगà¥à¤°à¤¿à¤¬à¤¦à¤¿à¤¨à¥à¤•à¤¾à¤œà¤°à¥à¤®à¤¾à¤¡à¥‹à¤—रीतलà¥à¤²à¥‹ सोरà¥à¤¬à¤¿à¤¯à¤¨à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ दà¥à¤¸à¥à¤¨à¤¦à¥à¤µà¤¾à¤²à¤¾à¤®à¤§à¥à¤¯ डचज" + + "ोला-फोनिलदà¥à¤¯à¥à¤²à¤¾à¤¦à¤¾à¤œà¤¾à¤—ाà¤à¤®à¥à¤¬à¥à¤à¤«à¤¿à¤•à¤à¤®à¤¿à¤²à¤¿à¤¯à¤¾à¤²à¥€à¤ªà¥à¤°à¤¾à¤¤à¤¨ इजिपà¥à¤Ÿà¥€à¤à¤•à¤¾à¤œà¥à¤•à¤à¤²à¤¾à¤®à¤¾à¤‡à¤Ÿà¤®à¤§à¥à¤¯" + + " अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ यà¥à¤ªà¤¿à¤•à¤‡à¤µà¥‹à¤¨à¥à¤¡à¥‹à¤à¤•à¥à¤¸à¤Ÿà¥à¤°à¥‡à¤®à¤¾à¤¦à¥à¤°à¤¾à¤²à¥€à¤«à¤¾à¤™à¤«à¤¿à¤²à¤¿à¤ªà¤¿à¤¨à¥€à¤«à¥‹à¤¨à¤•à¤¾à¤¹à¥à¤¨ फà¥à¤°à¤¾" + + "नà¥à¤¸à¥‡à¤²à¥€à¤®à¤§à¥à¤¯ फà¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€à¤ªà¥à¤°à¤¾à¤¤à¤¨ फà¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€à¤…रà¥à¤ªà¤¿à¤¤à¤¾à¤¨à¤‰à¤¤à¥à¤¤à¤°à¥€ फà¥à¤°à¤¿à¤œà¥€à¤ªà¥‚रà¥à¤µà¥€ फà¥à¤°à¤¿" + + "सियालीफà¥à¤°à¤¿à¤‰à¤²à¤¿à¤¯à¤¾à¤²à¥€à¤—ागगाउजगान चिनियाà¤à¤—ायोगà¥à¤¬à¤¾à¤¯à¤¾à¤—िजगिलà¥à¤¬à¤°à¥à¤Ÿà¥€à¤—िलाकीमधà¥à¤¯ उच" + + "à¥à¤š जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ उचà¥à¤š जरà¥à¤®à¤¨à¤—ोवा कोनà¥à¤•à¤¾à¤¨à¥€à¤—ोनà¥à¤¡à¥€à¤—ोरोनà¥à¤Ÿà¤¾à¤²à¥‹à¤—ोथिकगà¥à¤°à¥‡à¤¬à¥‹à¤ªà¥à¤°à¤¾à¤¤" + + "न गà¥à¤°à¤¿à¤•à¤¸à¥à¤µà¥€à¤¸ जरà¥à¤®à¤¨à¤«à¥à¤°à¤¾à¤«à¥à¤°à¤¾à¤—à¥à¤¸à¥€à¤—à¥à¤‡à¤šà¤¿à¤¨à¤¹à¤¾à¤‡à¤¦à¤¾à¤¹à¤•à¥à¤•à¤¾ चिनियाà¤à¤¹à¤µà¤¾à¤‡à¤¯à¤¨à¤«à¤¿à¤œà¥€ हिनà¥à¤¦" + + "ीहिलिगायनोनहिटà¥à¤Ÿà¤¿à¤Ÿà¥‡à¤¹à¤®à¥‹à¤™à¤®à¤¾à¤¥à¤¿à¤²à¥à¤²à¥‹ सोरà¥à¤¬à¤¿à¤¯à¤¨à¤¹à¥à¤ªà¤¾à¤‡à¤¬à¤¾à¤¨à¤‡à¤¬à¤¿à¤¬à¤¿à¤¯à¥‹à¤‡à¤¯à¥‹à¤•à¥‹à¤‡à¤¨à¥à¤—सइनà¥à¤—à¥" + + "रियालीजमैकाली कà¥à¤°à¥‡à¤“ले अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤²à¥‹à¤œà¥à¤¬à¤¾à¤¨à¤¨à¥à¤—ोमà¥à¤¬à¤¾à¤®à¤¾à¤šà¤¾à¤®à¥‡à¤œà¥à¤¡à¤¿à¤¯à¥‹-फारसीजà¥à¤¡à¤¿à¤¯à¥‹" + + "-अरबीजà¥à¤Ÿà¤¿à¤¸à¤•à¤¾à¤°à¤¾-कालà¥à¤ªà¤¾à¤•à¤•à¤¾à¤¬à¤¿à¤²à¤•à¤¾à¤šà¤¿à¤¨à¤œà¥à¤œà¥à¤•à¤¾à¤®à¥à¤¬à¤¾à¤•à¤¾à¤µà¥€à¤•à¤¾à¤¬à¤¾à¤°à¥à¤¦à¤¿à¤¯à¤¾à¤²à¥€à¤•à¤¾à¤¨à¥‡à¤®à¥à¤¬à¥à¤®à¤¾à¤•à¥‹à¤¨à¥" + + "डेकाबà¥à¤­à¥‡à¤°à¥à¤¡à¤¿à¤¯à¤¾à¤¨à¥à¤•à¥‡à¤¨à¤¯à¤¾à¤™à¤•à¥‹à¤°à¥‹à¤•à¤¾à¤‡à¤¨à¤—ाङखासीखोटानीकोयरा चिनीखोवारकिरà¥à¤®à¤¾à¤¨à¥à¤œà¤•à¥€à¤•" + + "ाकोकालेनà¥à¤œà¤¿à¤¨à¤•à¤¿à¤®à¥à¤¬à¥à¤¨à¥à¤¡à¥à¤•à¥‹à¤®à¥€-परà¥à¤®à¥à¤¯à¤¾à¤•à¤•à¥‹à¤¨à¥à¤•à¤¾à¤¨à¥€à¤•à¥‹à¤¸à¥à¤°à¤¾à¤²à¥€à¤•à¥à¤ªà¥‡à¤²à¥à¤²à¥‡à¤•à¤¾à¤°à¤¾à¤šà¤¾à¤¯-बाल" + + "à¥à¤•à¤°à¤•à¥à¤°à¤¿à¤“किनाराय-à¤à¤•à¤¾à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥à¤°à¥à¤–शामà¥à¤¬à¤¾à¤²à¤¾à¤¬à¤¾à¤«à¤¿à¤¯à¤¾à¤•à¥‹à¤²à¥‹à¤—à¥à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥à¤®à¤¿à¤•à¤•à¥à¤¤à¥‡à¤¨à¤¾à¤‡" + + "लाडिनोलाङà¥à¤—ीलाहनà¥à¤¡à¤¾à¤²à¤¾à¤®à¥à¤¬à¤¾à¤²à¤¾à¤œà¥à¤˜à¤¿à¤¯à¤¾à¤²à¥€à¤²à¤¿à¤™à¥à¤—à¥à¤µà¤¾ फà¥à¤°à¤¾à¤™à¥à¤•à¤¾ नोभालिगà¥à¤°à¤¿à¤¯à¤¾à¤²à¥€à¤²à¤¿à¤­" + + "ोनियालीलाकोतालोमà¥à¤¬à¤¾à¤°à¥à¤¡à¤®à¥‹à¤™à¥à¤—ोलोजीउतà¥à¤¤à¤°à¥€ लà¥à¤°à¥€à¤²à¤¾à¤Ÿà¥à¤—ालीलà¥à¤¬à¤¾-लà¥à¤²à¥à¤†à¤²à¥à¤‡à¤¸à¥‡à¤¨à¥‹à¤²à¥" + + "नà¥à¤¡à¤¾à¤²à¥à¤“मिजोलà¥à¤‡à¤¯à¤¾à¤¸à¤¾à¤¹à¤¿à¤¤à¥à¤¯à¤¿à¤• चिनियाà¤à¤²à¤¾à¤œà¤®à¤¾à¤¦à¥à¤°à¥‡à¤¸à¥‡à¤®à¤¾à¤«à¤¾à¤®à¤—धीमैथिलीमाकासारमानà¥à¤¦" + + "िङोमसाईमाबामोकà¥à¤·à¤®à¤¨à¥à¤¦à¤°à¤®à¥‡à¤¨à¥à¤¡à¥‡à¤®à¥‡à¤°à¥‚मोरिसेनमधà¥à¤¯ आयरिसमाखà¥à¤µà¤¾-मिटà¥à¤Ÿà¥‹à¤®à¥‡à¤Ÿà¤¾à¤®à¤¿à¤•à¤®à¤¾" + + "कमिनाङकाबाउमानà¥à¤šà¥à¤®à¤¨à¤¿à¤ªà¥à¤°à¥€à¤®à¥‹à¤¹à¤•à¤®à¥‹à¤¸à¥à¤¸à¥€à¤®à¥à¤¨à¥à¤¡à¤¾à¤™à¤¬à¤¹à¥à¤­à¤¾à¤·à¤¾à¤•à¥à¤°à¤¿à¤•à¤®à¤¿à¤°à¤¾à¤¨à¥à¤¡à¥€à¤®à¤¾à¤¡à¤µà¤¾à¤°à¥€à¤®à¥‡" + + "नà¥à¤Ÿà¤¾à¤µà¤¾à¤ˆà¤®à¥à¤¯à¥‡à¤¨à¥‡à¤‡à¤°à¥à¤œà¥à¤¯à¤¾à¤®à¤œà¤¾à¤¨à¤¡à¥‡à¤°à¤¾à¤¨à¥€à¤®à¤¿à¤¨ नान चिनियाà¤à¤¨à¥‡à¤ªà¥‹à¤²à¤¿à¤Ÿà¤¾à¤¨à¤¨à¤¾à¤®à¤¾à¤¤à¤²à¥à¤²à¥‹ जरà¥à¤®à¤¨à¤¨" + + "ेवारीनियासनिउà¤à¤¨à¤…ओ नागाकà¥à¤µà¤¾à¤¸à¤¿à¤¯à¥‹à¤¨à¥à¤—िà¤à¤®à¥à¤¬à¥à¤¨à¤¨à¥‹à¤—ाइपà¥à¤°à¤¾à¤¨à¥‹ नोरà¥à¤¸à¥‡à¤¨à¥‹à¤­à¤¿à¤¯à¤²à¤¨à¤•à¥‹à¤‰à¤¤à¥" + + "तरी सोथोनà¥à¤à¤°à¤ªà¤°à¤®à¥à¤ªà¤°à¤¾à¤—त नेवारीनà¥à¤¯à¤¾à¤®à¤µà¥‡à¤œà¥€à¤¨à¥à¤¯à¤¾à¤¨à¥à¤•à¥‹à¤²à¤¨à¥à¤¯à¥‹à¤°à¥‹à¤¨à¤œà¤¿à¤®à¤¾à¤“सागेअटोमन तà¥" + + "रà¥à¤•à¥€à¤ªà¤¾à¤™à¥à¤—ासिनानपाहलावीपामपाङà¥à¤—ापापियामेनà¥à¤¤à¥‹à¤ªà¤¾à¤²à¤¾à¤‰à¤µà¤¾à¤²à¥€à¤ªà¤¿à¤•à¤¾à¤°à¥à¤¡à¤ªà¥‡à¤¨à¥à¤¸à¤¿à¤²à¤­à¤¾à¤¨à¤¿" + + "याली जरà¥à¤®à¤¨à¤ªà¥à¤°à¤¾à¤¤à¤¨ फारसीपालाटिन जरà¥à¤®à¤¨à¤«à¥‹à¤¨à¤¿à¤¸à¤¿à¤¯à¤¾à¤²à¥€à¤ªà¤¿à¤à¤¡à¤®à¥‹à¤¨à¥à¤¤à¥‡à¤¸à¥‡à¤ªà¥‹à¤¨à¥à¤Ÿà¤¿à¤•à¤ªà¥à¤°à¤¾à¤¤à¤¨" + + " पà¥à¤°à¥‹à¤­à¥‡à¤¨à¥à¤•à¤¾à¤²à¤•à¤¿à¤šà¥‡à¤šà¤¿à¤®à¥à¤¬à¥‹à¤°à¤¾à¤œà¥‹ उचà¥à¤šà¤¸à¥à¤¥à¤¾à¤¨ किचà¥à¤†à¤°à¤¾à¤œà¤¸à¥à¤¥à¤¾à¤¨à¥€à¤°à¥‹à¤®à¥à¤¬à¥‹à¤…रोमानीयालीरà¥" + + "\u200cवासामà¥à¤¬à¥à¤°à¥‚सानà¥à¤¤à¤¾à¤²à¥€à¤¨à¥à¤—ामबायसाङà¥à¤—à¥à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ कà¥à¤°à¥à¤¦à¤¿à¤¶à¤¸à¥‡à¤¨à¤¾à¤•à¥‹à¤¯à¤°à¤¾à¤¬à¥‹à¤°à¥‹ सेनà¥à¤¨" + + "ीपà¥à¤°à¤¾à¤¤à¤¨ आयरीसटाचेलà¥à¤¹à¤¿à¤Ÿà¤šà¤¾à¤¡ अरबीतलà¥à¤²à¥‹ सिलेसियालीदकà¥à¤·à¤¿à¤£à¥€ सामीलà¥à¤²à¥‡ सामीइना" + + "री सामीसà¥à¤•à¥‹à¤‡à¤Ÿ सामीसà¥à¤°à¤¾à¤¨à¤¾à¤¨ टोङà¥à¤—ोसà¥à¤•à¥à¤®à¤¾à¤¸à¥à¤¸à¥‚सà¥à¤®à¥‡à¤°à¤¿à¤¯à¤¾à¤²à¥€à¤•à¥‹à¤®à¥‹à¤°à¥€à¤ªà¤°à¤®à¥à¤ªà¤°à¤¾à¤—त सि" + + "रियाकसिरियाकटेसोकà¥à¤²à¤¿à¤™à¥à¤—ननà¥à¤¯à¤¾à¤¸ टोङà¥à¤—ामà¥à¤¸à¥à¤²à¤¿à¤® टाटतासावाककेनà¥à¤¦à¥à¤°à¥€à¤¯ à¤à¤Ÿà¥à¤²à¤¾à¤¸" + + " टामाजिघटअजà¥à¤žà¤¾à¤¤ भाषाभाइमà¥à¤–à¥à¤¯-फà¥à¤°à¤¾à¤™à¥à¤•à¥‹à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤­à¥à¤¨à¥à¤œà¥‹à¤µà¤¾à¤°à¥à¤²à¥à¤ªà¤¿à¤°à¥€à¤•à¤¾à¤²à¥à¤®à¤¿à¤•à¤®à¤¿à¤¨à¤—à¥à¤°" + + "ेलियालीसोगानà¥à¤¹à¤¿à¤¨à¤—ातà¥à¤•à¤¾à¤¨à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤¬à¥à¤²à¤¿à¤¸à¤¸à¤¿à¤®à¥à¤¬à¥‹à¤²à¥à¤¸à¤®à¤¾à¤¨à¤• मोरोकà¥à¤•à¥‹à¤¨ तामाजिघटभ" + + "ाषिक सामगà¥à¤°à¥€ छैनआधà¥à¤¨à¤¿à¤• मानक अरबीअसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤²à¥€ जरà¥à¤®à¤¨à¤¸à¥à¤µà¥€à¤¸ हाई जरà¥à¤®à¤¨à¤…सà¥à¤Ÿà¥à¤°" + + "ेलियाली अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤•à¥à¤¯à¤¾à¤¨à¤¾à¤¡à¥‡à¤²à¥€ अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤¬à¥‡à¤²à¤¾à¤¯à¤¤à¥€ अङà¥à¤—à¥à¤°à¥‡à¤œà¥€à¤…मेरिकी अङà¥à¤—à¥à¤°à¥‡à¤œ" + + "ीलà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨ अमेरिकी सà¥à¤ªà¥‡à¤¨à¥€à¤¯à¥à¤°à¥‹à¤ªà¥‡à¤²à¥€ सà¥à¤ªà¥‡à¤¨à¥€à¤®à¥‡à¤•à¥à¤¸à¤¿à¤•à¤¨ सà¥à¤ªà¥‡à¤¨à¥€à¤•à¥à¤¯à¤¾à¤¨à¥‡à¤¡à¤¾à¤²à¥€ फà¥à¤°à¤¾à¤¨à¥" + + "सेलीतलà¥à¤²à¥‹ साकà¥à¤¸à¤¨à¤«à¥à¤²à¥‡à¤®à¤¿à¤¸à¤¬à¥à¤°à¤¾à¤œà¤¿à¤²à¥€ पोरà¥à¤¤à¥à¤—ीयà¥à¤°à¥‹à¤ªà¥‡à¤²à¥€ पोरà¥à¤¤à¥à¤—ीमालà¥à¤¡à¤¾à¤­à¤¿à¤¯à¤¨à¤•à¤™à¥" + + "गो सà¥à¤µà¤¾à¤¹à¤¿à¤²à¥€à¤¸à¤°à¤²à¤¿à¤•à¥ƒà¤¤ चिनियाà¤à¤ªà¤°à¤®à¥à¤ªà¤°à¤¾à¤—त चिनियाà¤" + +var neLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x002d, 0x0045, 0x0063, 0x006f, 0x0087, 0x009c, + 0x00a8, 0x00b7, 0x00c9, 0x00d8, 0x00f3, 0x0108, 0x0120, 0x0144, + 0x0159, 0x0171, 0x0183, 0x0198, 0x01aa, 0x01c8, 0x01e0, 0x01ef, + 0x0207, 0x021f, 0x022b, 0x0234, 0x0256, 0x0265, 0x0274, 0x0283, + 0x0292, 0x02a4, 0x02b6, 0x02bf, 0x02ce, 0x02e9, 0x030a, 0x031c, + 0x033d, 0x034c, 0x035b, 0x036a, 0x0379, 0x0391, 0x03a0, 0x03be, + 0x03d6, 0x03e5, 0x040a, 0x0425, 0x043d, 0x0452, 0x0467, 0x0476, + 0x0488, 0x049a, 0x04b3, 0x04d4, 0x04ec, 0x050d, 0x052e, 0x0540, + // Entry 40 - 7F + 0x0567, 0x058e, 0x05b5, 0x05c4, 0x05dd, 0x05f5, 0x05fe, 0x062b, + 0x0640, 0x065e, 0x0670, 0x0682, 0x069d, 0x06af, 0x06c1, 0x06dc, + 0x06eb, 0x0706, 0x0712, 0x0727, 0x073f, 0x0751, 0x0769, 0x077b, + 0x0787, 0x079c, 0x07b1, 0x07c6, 0x07ea, 0x07fc, 0x081a, 0x0832, + 0x083b, 0x085c, 0x0881, 0x089f, 0x08b4, 0x08cc, 0x08db, 0x0905, + 0x0917, 0x0938, 0x0947, 0x0953, 0x0968, 0x097d, 0x098c, 0x09b7, + 0x09c9, 0x09e1, 0x09e7, 0x0a1b, 0x0a43, 0x0a43, 0x0a55, 0x0a6d, + 0x0a82, 0x0a97, 0x0aa6, 0x0ab5, 0x0ad0, 0x0ae2, 0x0aee, 0x0afd, + // Entry 80 - BF + 0x0b0f, 0x0b27, 0x0b3f, 0x0b54, 0x0b66, 0x0b84, 0x0b90, 0x0bb7, + 0x0bcc, 0x0bcc, 0x0bde, 0x0bfd, 0x0c0f, 0x0c27, 0x0c4b, 0x0c6f, + 0x0c6f, 0x0c7b, 0x0c8d, 0x0cae, 0x0cc9, 0x0cdb, 0x0cdb, 0x0cdb, + 0x0cf0, 0x0d08, 0x0d17, 0x0d29, 0x0d38, 0x0d41, 0x0d5f, 0x0d74, + 0x0d74, 0x0d86, 0x0d98, 0x0d98, 0x0da7, 0x0da7, 0x0db6, 0x0dce, + 0x0ddd, 0x0df2, 0x0df2, 0x0e0a, 0x0e0a, 0x0e0a, 0x0e19, 0x0e25, + 0x0e3a, 0x0e4c, 0x0e4c, 0x0e61, 0x0e6d, 0x0e82, 0x0e91, 0x0ea3, + 0x0eb2, 0x0eb2, 0x0ecd, 0x0ed9, 0x0ee5, 0x0f06, 0x0f1b, 0x0f2a, + // Entry C0 - FF + 0x0f55, 0x0f55, 0x0f83, 0x0f98, 0x0fad, 0x0fbf, 0x0fd1, 0x0fe6, + 0x1014, 0x1026, 0x1051, 0x1070, 0x1079, 0x10b7, 0x10d8, 0x10ea, + 0x10f6, 0x1108, 0x1114, 0x1132, 0x113e, 0x114d, 0x1169, 0x117b, + 0x1187, 0x1199, 0x11ab, 0x11b7, 0x11c6, 0x11d5, 0x11fa, 0x120f, + 0x121e, 0x122a, 0x123c, 0x1245, 0x1245, 0x1269, 0x1284, 0x1290, + 0x12a5, 0x12b1, 0x12bd, 0x12cf, 0x12ed, 0x12f9, 0x1308, 0x1320, + 0x1332, 0x1347, 0x1359, 0x136b, 0x1380, 0x138c, 0x139e, 0x13b3, + 0x13c5, 0x13d1, 0x13f3, 0x1408, 0x1423, 0x1435, 0x144d, 0x147b, + // Entry 100 - 13F + 0x1490, 0x14ab, 0x14d9, 0x14f1, 0x1503, 0x151b, 0x152a, 0x153c, + 0x153c, 0x1551, 0x1563, 0x1572, 0x1581, 0x15a9, 0x15d4, 0x15e6, + 0x15f9, 0x1615, 0x1627, 0x1639, 0x1648, 0x1654, 0x166f, 0x1697, + 0x16a9, 0x16be, 0x16e6, 0x1711, 0x1726, 0x1756, 0x175f, 0x1777, + 0x1777, 0x1780, 0x17ae, 0x17d9, 0x180a, 0x1822, 0x1847, 0x1878, + 0x1899, 0x189f, 0x18ae, 0x18cd, 0x18d9, 0x18eb, 0x18eb, 0x18f4, + 0x190f, 0x1921, 0x194a, 0x1979, 0x199e, 0x19b0, 0x19ce, 0x19dd, + 0x19ef, 0x1a11, 0x1a30, 0x1a30, 0x1a48, 0x1a54, 0x1a66, 0x1a75, + // Entry 140 - 17F + 0x1a9a, 0x1aac, 0x1acb, 0x1ae9, 0x1b01, 0x1b0d, 0x1b3e, 0x1b3e, + 0x1b4a, 0x1b56, 0x1b6b, 0x1b7a, 0x1b89, 0x1baa, 0x1bf1, 0x1c06, + 0x1c1e, 0x1c30, 0x1c52, 0x1c71, 0x1c80, 0x1ca2, 0x1cb1, 0x1cc0, + 0x1ccc, 0x1cde, 0x1cea, 0x1d0e, 0x1d26, 0x1d26, 0x1d3e, 0x1d68, + 0x1d7a, 0x1d86, 0x1d9b, 0x1da7, 0x1db9, 0x1dd5, 0x1de4, 0x1e05, + 0x1e11, 0x1e2c, 0x1e4a, 0x1e6f, 0x1e87, 0x1e9f, 0x1eb7, 0x1edf, + 0x1eee, 0x1f07, 0x1f25, 0x1f34, 0x1f4c, 0x1f5e, 0x1f82, 0x1f91, + 0x1fa6, 0x1fb8, 0x1fca, 0x1fdf, 0x1ff1, 0x200f, 0x204d, 0x206b, + // Entry 180 - 1BF + 0x2089, 0x209b, 0x20b6, 0x20c8, 0x20d4, 0x20f3, 0x210b, 0x2127, + 0x213c, 0x214e, 0x2157, 0x2163, 0x2172, 0x21a3, 0x21ac, 0x21c4, + 0x21d0, 0x21dc, 0x21ee, 0x2203, 0x221b, 0x2227, 0x2233, 0x2242, + 0x2251, 0x2263, 0x226f, 0x2284, 0x22a0, 0x22c5, 0x22d1, 0x22e3, + 0x2301, 0x2313, 0x2328, 0x2334, 0x2346, 0x2346, 0x235b, 0x2370, + 0x237f, 0x2397, 0x23ac, 0x23c7, 0x23d9, 0x23ee, 0x240c, 0x2435, + 0x2450, 0x245c, 0x247b, 0x248d, 0x249c, 0x24ab, 0x24be, 0x24d6, + 0x24f4, 0x2503, 0x2528, 0x253a, 0x2543, 0x2562, 0x256e, 0x259c, + // Entry 1C0 - 1FF + 0x25b7, 0x25d2, 0x25e4, 0x25f3, 0x2602, 0x2624, 0x2645, 0x265a, + 0x2675, 0x2699, 0x26b4, 0x26c9, 0x2706, 0x2706, 0x2728, 0x274d, + 0x276b, 0x278f, 0x27a4, 0x27a4, 0x27a4, 0x27d8, 0x27e4, 0x282e, + 0x2849, 0x2849, 0x2849, 0x2849, 0x2849, 0x285b, 0x285b, 0x285b, + 0x285b, 0x285b, 0x287c, 0x288b, 0x288b, 0x288b, 0x288b, 0x28a3, + 0x28a3, 0x28bb, 0x28bb, 0x28d3, 0x28e5, 0x28e5, 0x28e5, 0x28e5, + 0x2910, 0x2910, 0x291c, 0x291c, 0x291c, 0x294a, 0x296c, 0x296c, + 0x2987, 0x2987, 0x299d, 0x299d, 0x29cb, 0x29cb, 0x29ed, 0x2a06, + // Entry 200 - 23F + 0x2a22, 0x2a41, 0x2a41, 0x2a41, 0x2a69, 0x2a69, 0x2a69, 0x2a69, + 0x2a7b, 0x2a87, 0x2aa5, 0x2ab7, 0x2ae8, 0x2afd, 0x2afd, 0x2afd, + 0x2afd, 0x2b09, 0x2b09, 0x2b09, 0x2b09, 0x2b09, 0x2b09, 0x2b09, + 0x2b21, 0x2b21, 0x2b21, 0x2b21, 0x2b43, 0x2b43, 0x2b43, 0x2b43, + 0x2b43, 0x2b43, 0x2b62, 0x2b62, 0x2b62, 0x2b77, 0x2b77, 0x2bbe, + 0x2bbe, 0x2bbe, 0x2bbe, 0x2bdd, 0x2be6, 0x2be6, 0x2be6, 0x2be6, + 0x2c20, 0x2c20, 0x2c20, 0x2c32, 0x2c32, 0x2c32, 0x2c32, 0x2c32, + 0x2c50, 0x2c50, 0x2c65, 0x2c8c, 0x2c98, 0x2c98, 0x2c98, 0x2c98, + // Entry 240 - 27F + 0x2c98, 0x2cb3, 0x2cd7, 0x2cd7, 0x2d01, 0x2d01, 0x2d01, 0x2d42, + 0x2d42, 0x2d71, 0x2d71, 0x2d9d, 0x2d9d, 0x2dce, 0x2df7, 0x2e3a, + 0x2e74, 0x2ea5, 0x2ed6, 0x2f14, 0x2f3f, 0x2f6a, 0x2f6a, 0x2fa7, + 0x2fa7, 0x2fc9, 0x2fde, 0x300f, 0x3040, 0x305e, 0x305e, 0x3086, + 0x30b1, 0x30e2, +} // Size: 1244 bytes + +var nlLangStr string = "" + // Size: 4999 bytes + "AfarAbchazischAvestischAfrikaansAkanAmhaarsAragoneesArabischAssameesAvar" + + "ischAymaraAzerbeidzjaansBasjkiersWit-RussischBulgaarsBislamaBambaraBenga" + + "alsTibetaansBretonsBosnischCatalaansTsjetsjeensChamorroCorsicaansCreeTsj" + + "echischKerkslavischTsjoevasjischWelshDeensDuitsDivehiDzongkhaEweGrieksEn" + + "gelsEsperantoSpaansEstischBaskischPerzischFulahFinsFijischFaeröersFransF" + + "riesIersSchots-GaelischGalicischGuaraníGujaratiManxHausaHebreeuwsHindiHi" + + "ri MotuKroatischHaïtiaans CreoolsHongaarsArmeensHereroInterlinguaIndones" + + "ischInterlingueIgboYiInupiaqIdoIJslandsItaliaansInuktitutJapansJavaansGe" + + "orgischKongoGikuyuKuanyamaKazachsGroenlandsKhmerKannadaKoreaansKanuriKas" + + "jmiriKoerdischKomiCornishKirgizischLatijnLuxemburgsLugandaLimburgsLingal" + + "aLaotiaansLitouwsLuba-KatangaLetsMalagassischMarshalleesMaoriMacedonisch" + + "MalayalamMongoolsMarathiMaleisMalteesBirmaansNauruaansNoord-NdebeleNepal" + + "eesNdongaNederlandsNoors - NynorskNoors - BokmÃ¥lZuid-NdbeleNavajoNyanjaO" + + "ccitaansOjibwaAfaan OromoOdiaOssetischPunjabiPaliPoolsPasjtoePortugeesQu" + + "echuaReto-RomaansKirundiRoemeensRussischKinyarwandaSanskrietSardijnsSind" + + "hiNoord-SamischSangoSingaleesSlowaaksSloveensSamoaansShonaSomalischAlban" + + "eesServischSwaziZuid-SothoSoendaneesZweedsSwahiliTamilTeluguTadzjieksTha" + + "iTigrinyaTurkmeensTswanaTongaansTurksTsongaTataarsTahitiaansOeigoersOekr" + + "aïensUrduOezbeeksVendaVietnameesVolapükWaalsWolofXhosaJiddischYorubaZhua" + + "ngChineesZoeloeAtjehsAkoliAdangmeAdygeesTunesisch ArabischAfrihiliAghemA" + + "inuAkkadischAlabamaAleoetischGegischZuid-AltaïschOudengelsAngikaArameesM" + + "apudungunAraonaArapahoAlgerijns ArabischArawakMarokkaans ArabischEgyptis" + + "ch ArabischAsuAmerikaanse GebarentaalAsturischKotavaAwadhiBeloetsjiBalin" + + "eesBeiersBasaBamounBatak TobaGhomala’BejaBembaBetawiBenaBafutBadagaWeste" + + "rs BeloetsjiBhojpuriBikolBiniBanjarKomSiksikaBishnupriyaBakhtiariBrajBra" + + "huiBodoAkooseBoerjatischBugineesBuluBlinMedumbaCaddoCaribischCayugaAtsam" + + "CebuanoChigaChibchaChagataiChuukeesMariChinook JargonChoctawChipewyanChe" + + "rokeeCheyenneSoranîKoptischCapiznonKrim-TataarsKasjoebischDakotaDargwaTa" + + "itaDelawareSlaveyDogribDinkaZarmaDogriNedersorbischDusunDualaMiddelneder" + + "landsJola-FonyiDyulaDazagaEmbuEfikEmilianoOudegyptischEkajukElamitischMi" + + "ddelengelsYupikEwondoExtremeensFangFilipijnsTornedal-FinsFonCajun-FransM" + + "iddelfransOudfransArpitaansNoord-FriesOost-FriesFriulischGaGagaoezischGa" + + "nyuGayoGbayaZoroastrisch DariGe’ezGilberteesGilakiMiddelhoogduitsOudhoog" + + "duitsGoa KonkaniGondiGorontaloGothischGreboOudgrieksZwitserduitsWayuuGur" + + "uneGusiiGwichʼinHaidaHakkaHawaïaansFijisch HindiHiligaynonHettitischHmon" + + "gOppersorbischXiangyuHupaIbanIbibioIlokoIngoesjetischIngrischJamaicaans " + + "CreoolsLojbanNgombaMachameJudeo-PerzischJudeo-ArabischJutlandsKarakalpak" + + "sKabylischKachinJjuKambaKawiKabardischKanembuTyapMakondeKaapverdisch Cre" + + "oolsKenyangKoroKaingangKhasiKhotaneesKoyra ChiiniKhowarKirmanckîKakoKale" + + "njinKimbunduKomi-PermjaaksKonkaniKosraeaansKpelleKaratsjaj-BalkarischKri" + + "oKinaray-aKarelischKurukhShambalaBafiaKölschKoemuksKutenaiLadinoLangiLah" + + "ndaLambaLezgischLingua Franca NovaLigurischLijfsLakotaLombardischMongoLo" + + "ziNoordelijk LuriLetgaalsLuba-LuluaLuisenoLundaLuoMizoLuyiaKlassiek Chin" + + "eesLazischMadoereesMafaMagahiMaithiliMakassaarsMandingoMaaMabaMoksjaMand" + + "arMendeMeruMorisyenMiddeliersMakhuwa-MeettoMeta’Mi’kmaqMinangkabauMantsj" + + "oeMeiteiMohawkMossiWest-MariMundangMeerdere talenCreekMirandeesMarwariMe" + + "ntawaiMyeneErzjaMazanderaniMinnanyuNapolitaansNamaNedersaksischNewariNia" + + "sNiueaansAo NagaNgumbaNgiemboonNogaiOudnoorsNovialN’KoNoord-SothoNuerKla" + + "ssiek NepalbhasaNyamweziNyankoleNyoroNzimaOsageOttomaans-TurksPangasinan" + + "PahlaviPampangaPapiamentsPalausPicardischPennsylvania-DuitsPlautdietschO" + + "udperzischPaltsischFoenicischPiëmonteesPontischPohnpeiaansOudpruisischOu" + + "dprovençaalsK’iche’KichwaRajasthaniRapanuiRarotonganRomagnolRiffijnsRomb" + + "oRomaniRotumaansRoetheensRovianaAroemeensRwaSandaweJakoetsSamaritaans-Ar" + + "ameesSamburuSasakSantaliSaurashtraNgambaySanguSiciliaansSchotsSassareesP" + + "ahlavaniSenecaSenaSeriSelkoepsKoyraboro SenniOudiersSamogitischTashelhiy" + + "tShanTsjadisch ArabischSidamoSilezisch DuitsSelayarZuid-SamischLule-Sami" + + "schInari-SamischSkolt-SamischSoninkeSogdischSranantongoSererSahoSaterfri" + + "esSukumaSoesoeSoemerischShimaoreKlassiek SyrischSyrischSilezischTuluTimn" + + "eTesoTerenoTetunTigreTivTokelausTsakhurKlingonTlingitTalyshTamashekNyasa" + + " TongaTok PisinTuroyoTarokoTsakonischTsimshianMoslim TatToemboekaTuvalua" + + "ansTasawaqToevaansTamazight (Centraal-Marokko)OedmoertsOegaritischUmbund" + + "uRootVaiVenetiaansWepsischWest-VlaamsOpperfrankischVotischVõroVunjoWalse" + + "rWolayttaWarayWashoWarlpiriWuyuKalmuksMingreelsSogaYaoYapeesYangbenYemba" + + "NheengatuKantoneesZapotecBlissymbolenZeeuwsZenagaStandaard Marokkaanse T" + + "amazightZunigeen linguïstische inhoudZazamodern standaard ArabischOosten" + + "rijks DuitsZwitsers HoogduitsAustralisch EngelsCanadees EngelsBrits Enge" + + "lsAmerikaans EngelsLatijns-Amerikaans SpaansEuropees SpaansMexicaans Spa" + + "ansCanadees FransZwitsers FransVlaamsBraziliaans PortugeesEuropees Portu" + + "geesServo-KroatischCongo Swahilivereenvoudigd Chineestraditioneel Chinee" + + "s" + +var nlLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002b, 0x0034, + 0x003c, 0x0044, 0x004c, 0x0052, 0x0060, 0x0069, 0x0075, 0x007d, + 0x0084, 0x008b, 0x0093, 0x009c, 0x00a3, 0x00ab, 0x00b4, 0x00bf, + 0x00c7, 0x00d1, 0x00d5, 0x00df, 0x00eb, 0x00f8, 0x00fd, 0x0102, + 0x0107, 0x010d, 0x0115, 0x0118, 0x011e, 0x0124, 0x012d, 0x0133, + 0x013a, 0x0142, 0x014a, 0x014f, 0x0153, 0x015a, 0x0163, 0x0168, + 0x016d, 0x0171, 0x0180, 0x0189, 0x0191, 0x0199, 0x019d, 0x01a2, + 0x01ab, 0x01b0, 0x01b9, 0x01c2, 0x01d4, 0x01dc, 0x01e3, 0x01e9, + // Entry 40 - 7F + 0x01f4, 0x01ff, 0x020a, 0x020e, 0x0210, 0x0217, 0x021a, 0x0222, + 0x022b, 0x0234, 0x023a, 0x0241, 0x024a, 0x024f, 0x0255, 0x025d, + 0x0264, 0x026e, 0x0273, 0x027a, 0x0282, 0x0288, 0x0290, 0x0299, + 0x029d, 0x02a4, 0x02ae, 0x02b4, 0x02be, 0x02c5, 0x02cd, 0x02d4, + 0x02dd, 0x02e4, 0x02f0, 0x02f4, 0x0300, 0x030b, 0x0310, 0x031b, + 0x0324, 0x032c, 0x0333, 0x0339, 0x0340, 0x0348, 0x0351, 0x035e, + 0x0366, 0x036c, 0x0376, 0x0385, 0x0394, 0x039f, 0x03a5, 0x03ab, + 0x03b4, 0x03ba, 0x03c5, 0x03c9, 0x03d2, 0x03d9, 0x03dd, 0x03e2, + // Entry 80 - BF + 0x03e9, 0x03f2, 0x03f9, 0x0405, 0x040c, 0x0414, 0x041c, 0x0427, + 0x0430, 0x0438, 0x043e, 0x044b, 0x0450, 0x0459, 0x0461, 0x0469, + 0x0471, 0x0476, 0x047f, 0x0487, 0x048f, 0x0494, 0x049e, 0x04a8, + 0x04ae, 0x04b5, 0x04ba, 0x04c0, 0x04c9, 0x04cd, 0x04d5, 0x04de, + 0x04e4, 0x04ec, 0x04f1, 0x04f7, 0x04fe, 0x0508, 0x0510, 0x051a, + 0x051e, 0x0526, 0x052b, 0x0535, 0x053d, 0x0542, 0x0547, 0x054c, + 0x0554, 0x055a, 0x0560, 0x0567, 0x056d, 0x0573, 0x0578, 0x057f, + 0x0586, 0x0598, 0x05a0, 0x05a5, 0x05a9, 0x05b2, 0x05b9, 0x05c3, + // Entry C0 - FF + 0x05ca, 0x05d8, 0x05e1, 0x05e7, 0x05ee, 0x05f8, 0x05fe, 0x0605, + 0x0617, 0x061d, 0x0630, 0x0642, 0x0645, 0x065c, 0x0665, 0x066b, + 0x0671, 0x067a, 0x0682, 0x0688, 0x068c, 0x0692, 0x069c, 0x06a6, + 0x06aa, 0x06af, 0x06b5, 0x06b9, 0x06be, 0x06c4, 0x06d5, 0x06dd, + 0x06e2, 0x06e6, 0x06ec, 0x06ef, 0x06f6, 0x0701, 0x070a, 0x070e, + 0x0714, 0x0718, 0x071e, 0x0729, 0x0731, 0x0735, 0x0739, 0x0740, + 0x0745, 0x074e, 0x0754, 0x0759, 0x0760, 0x0765, 0x076c, 0x0774, + 0x077c, 0x0780, 0x078e, 0x0795, 0x079e, 0x07a6, 0x07ae, 0x07b5, + // Entry 100 - 13F + 0x07bd, 0x07c5, 0x07d1, 0x07dc, 0x07e2, 0x07e8, 0x07ed, 0x07f5, + 0x07fb, 0x0801, 0x0806, 0x080b, 0x0810, 0x081d, 0x0822, 0x0827, + 0x0837, 0x0841, 0x0846, 0x084c, 0x0850, 0x0854, 0x085c, 0x0868, + 0x086e, 0x0878, 0x0884, 0x0889, 0x088f, 0x0899, 0x089d, 0x08a6, + 0x08b3, 0x08b6, 0x08c1, 0x08cc, 0x08d4, 0x08dd, 0x08e8, 0x08f2, + 0x08fb, 0x08fd, 0x0908, 0x090d, 0x0911, 0x0916, 0x0927, 0x092e, + 0x0938, 0x093e, 0x094d, 0x0959, 0x0964, 0x0969, 0x0972, 0x097a, + 0x097f, 0x0988, 0x0994, 0x0999, 0x099f, 0x09a4, 0x09ad, 0x09b2, + // Entry 140 - 17F + 0x09b7, 0x09c1, 0x09ce, 0x09d8, 0x09e2, 0x09e7, 0x09f4, 0x09fb, + 0x09ff, 0x0a03, 0x0a09, 0x0a0e, 0x0a1b, 0x0a23, 0x0a35, 0x0a3b, + 0x0a41, 0x0a48, 0x0a56, 0x0a64, 0x0a6c, 0x0a77, 0x0a80, 0x0a86, + 0x0a89, 0x0a8e, 0x0a92, 0x0a9c, 0x0aa3, 0x0aa7, 0x0aae, 0x0ac2, + 0x0ac9, 0x0acd, 0x0ad5, 0x0ada, 0x0ae3, 0x0aef, 0x0af5, 0x0aff, + 0x0b03, 0x0b0b, 0x0b13, 0x0b21, 0x0b28, 0x0b32, 0x0b38, 0x0b4c, + 0x0b50, 0x0b59, 0x0b62, 0x0b68, 0x0b70, 0x0b75, 0x0b7c, 0x0b83, + 0x0b8a, 0x0b90, 0x0b95, 0x0b9b, 0x0ba0, 0x0ba8, 0x0bba, 0x0bc3, + // Entry 180 - 1BF + 0x0bc8, 0x0bce, 0x0bd9, 0x0bde, 0x0be2, 0x0bf1, 0x0bf9, 0x0c03, + 0x0c0a, 0x0c0f, 0x0c12, 0x0c16, 0x0c1b, 0x0c2b, 0x0c32, 0x0c3b, + 0x0c3f, 0x0c45, 0x0c4d, 0x0c57, 0x0c5f, 0x0c62, 0x0c66, 0x0c6c, + 0x0c72, 0x0c77, 0x0c7b, 0x0c83, 0x0c8d, 0x0c9b, 0x0ca2, 0x0cab, + 0x0cb6, 0x0cbe, 0x0cc4, 0x0cca, 0x0ccf, 0x0cd8, 0x0cdf, 0x0ced, + 0x0cf2, 0x0cfb, 0x0d02, 0x0d0a, 0x0d0f, 0x0d14, 0x0d1f, 0x0d27, + 0x0d32, 0x0d36, 0x0d43, 0x0d49, 0x0d4d, 0x0d55, 0x0d5c, 0x0d62, + 0x0d6b, 0x0d70, 0x0d78, 0x0d7e, 0x0d84, 0x0d8f, 0x0d93, 0x0da6, + // Entry 1C0 - 1FF + 0x0dae, 0x0db6, 0x0dbb, 0x0dc0, 0x0dc5, 0x0dd4, 0x0dde, 0x0de5, + 0x0ded, 0x0df7, 0x0dfd, 0x0e07, 0x0e19, 0x0e25, 0x0e30, 0x0e39, + 0x0e43, 0x0e4e, 0x0e56, 0x0e61, 0x0e6d, 0x0e7c, 0x0e87, 0x0e8d, + 0x0e97, 0x0e9e, 0x0ea8, 0x0eb0, 0x0eb8, 0x0ebd, 0x0ec3, 0x0ecc, + 0x0ed5, 0x0edc, 0x0ee5, 0x0ee8, 0x0eef, 0x0ef6, 0x0f09, 0x0f10, + 0x0f15, 0x0f1c, 0x0f26, 0x0f2d, 0x0f32, 0x0f3c, 0x0f42, 0x0f4b, + 0x0f54, 0x0f5a, 0x0f5e, 0x0f62, 0x0f6a, 0x0f79, 0x0f80, 0x0f8b, + 0x0f95, 0x0f99, 0x0fab, 0x0fb1, 0x0fc0, 0x0fc7, 0x0fd3, 0x0fdf, + // Entry 200 - 23F + 0x0fec, 0x0ff9, 0x1000, 0x1008, 0x1013, 0x1018, 0x101c, 0x1026, + 0x102c, 0x1032, 0x103c, 0x1044, 0x1054, 0x105b, 0x1064, 0x1068, + 0x106d, 0x1071, 0x1077, 0x107c, 0x1081, 0x1084, 0x108c, 0x1093, + 0x109a, 0x10a1, 0x10a7, 0x10af, 0x10ba, 0x10c3, 0x10c9, 0x10cf, + 0x10d9, 0x10e2, 0x10ec, 0x10f5, 0x10ff, 0x1106, 0x110e, 0x112a, + 0x1133, 0x113e, 0x1145, 0x1149, 0x114c, 0x1156, 0x115e, 0x1169, + 0x1177, 0x117e, 0x1183, 0x1188, 0x118e, 0x1196, 0x119b, 0x11a0, + 0x11a8, 0x11ac, 0x11b3, 0x11bc, 0x11c0, 0x11c3, 0x11c9, 0x11d0, + // Entry 240 - 27F + 0x11d5, 0x11de, 0x11e7, 0x11ee, 0x11fa, 0x1200, 0x1206, 0x1225, + 0x1229, 0x1243, 0x1247, 0x1260, 0x1260, 0x1271, 0x1283, 0x1295, + 0x12a4, 0x12b0, 0x12c1, 0x12da, 0x12e9, 0x12f9, 0x12f9, 0x1307, + 0x1315, 0x1315, 0x131b, 0x1330, 0x1342, 0x1342, 0x1351, 0x135e, + 0x1373, 0x1387, +} // Size: 1244 bytes + +var noLangStr string = "" + // Size: 4987 bytes + "afarabkhasiskavestiskafrikaansakanamhariskaragonskarabiskassamiskavarisk" + + "aymaraaserbajdsjanskbasjkirskhviterussiskbulgarskbislamabambarabengaliti" + + "betanskbretonskbosniskkatalansktsjetsjenskchamorrokorsikanskcreetsjekkis" + + "kkirkeslavisktsjuvasjiskwalisiskdansktyskdivehidzongkhaewegreskengelskes" + + "perantospanskestiskbaskiskpersiskfulanifinskfijianskfærøyskfranskvestfri" + + "siskirskskotsk gæliskgalisiskguaranigujaratimanskhausahebraiskhindihiri " + + "motukroatiskhaitiskungarskarmenskhererointerlinguaindonesiskinterlinguei" + + "bosichuan-yiinupiakidoislandskitalienskinuktitutjapanskjavanesiskgeorgis" + + "kkikongokikuyukuanyamakasakhiskgrønlandskkhmerkannadakoreanskkanurikasjm" + + "irikurdiskkomikorniskkirgisisklatinluxemburgskgandalimburgisklingalalaot" + + "isklitauiskluba-katangalatviskgassiskmarshallesiskmaorimakedonskmalayala" + + "mmongolskmarathimalayiskmaltesiskburmesisknaurunord-ndebelenepalindongan" + + "ederlandsknorsk nynorsknorsk bokmÃ¥lsør-ndebelenavajonyanjaoksitanskojibw" + + "aoromooriyaossetiskpunjabipalipolskpashtoportugisiskquechuaretoromanskru" + + "ndirumenskrussiskkinyarwandasanskritsardinsksindhinordsamisksangosingale" + + "siskslovakiskslovensksamoanskshonasomalialbanskserbiskswatisør-sothosund" + + "anesisksvenskswahilitamiltelugutadsjikiskthaitigrinjaturkmensksetswanato" + + "ngansktyrkisktsongatatarisktahitiskuiguriskukrainskurduusbekiskvendaviet" + + "namesiskvolapykvallonskwolofxhosajiddiskjorubazhuangkinesiskzuluachinesi" + + "skacoliadangmeadyghetunisisk-arabiskafrihiliaghemainuakkadiskalabamaaleu" + + "tiskgegisk-albansksøraltaiskgammelengelskangikaarameiskaraukanskaraonaar" + + "apahoalgerisk arabiskarawakmarokkansk-arabiskegyptisk arabiskasuamerikan" + + "sk tegnsprÃ¥kasturiskkotavaawadhibaluchibalinesiskbairiskbasabamunbatak t" + + "obaghomalabejabembabetawibenabafutbadagavestbalutsjibhojpuribikolbiniban" + + "jarkomsiksikabishnupriyabakhtiaribrajbrahuibodoakoseburiatbuginesiskbulu" + + "blinmedumbacaddokaribiskcayugaatsamcebuanskkigachibchachagataichuukesisk" + + "marichinookchoctawchipewianskcherokesiskcheyennekurdisk (sorani)koptiskk" + + "apizkrimtatariskkasjubiskdakotadargwataitadelawareslaviskdogribdinkazarm" + + "adogrilavsorbisksentraldusundualamellomnederlandskjola-fonyidyuladazagak" + + "iembuefikemilianskgammelegyptiskekajukelamittiskmellomengelsksentralyupi" + + "kewondoekstremaduranskfangfilippinsktornedalsfinskfonkajunfranskmellomfr" + + "anskgammelfranskarpitansknordfrisiskøstfrisiskfriulianskgagagausiskganga" + + "yogbayazoroastrisk darigeskiribatiskgilekimellomhøytyskgammelhøytyskgoan" + + "sk konkanigondigorontalogotiskgrebogammelgresksveitsertyskwayuufrafragus" + + "iigwichinhaidahakkahawaiiskfijiansk hindihiligaynonhettittiskhmonghøysor" + + "biskxianghupaibanibibioilokoingusjiskingriskjamaicansk kreolengelsklojba" + + "nngombamachamejødepersiskjødearabiskjyskkarakalpakiskkabylskkachinjjukam" + + "bakawikabardiskkanembutyapmakondekappverdiskkenyangkorokaingangkhasikhot" + + "anesiskkoyra chiinikhowarkirmanckikakokalenjinkimbundukomipermjakiskkonk" + + "anikosraeanskkpellekarachay-balkarkriokinaray-akarelskkurukhshambalabafi" + + "akølnskkumykkutenailadinsklangilahndalambalezghianlingua franca novaligu" + + "risklivisklakotalombardiskmongolozinord-lurilatgalliskluba-lulualuisenol" + + "undaluomizoluhyaklassisk kinesisklaziskmaduresiskmafamagahimaithilimakas" + + "armandingomasaimabamokshamandarmendemerumauritisk-kreolskmellomirskmakhu" + + "wa-meettometa’micmacminangkabaumandsjumanipurimohawkmossivestmariskmunda" + + "ngflere sprÃ¥kcreekmirandesiskmarwarimentawaimyeneerzyamazandaraniminnann" + + "apolitansknamanedertysknewariniasniueanskao nagakwasiongiemboonnogaigamm" + + "elnorsknovialnʼkonord-sothonuerklassisk newarinyamwezinyankolenyoronzima" + + "osageottomansk tyrkiskpangasinanpahlavipampangapapiamentopalauiskpikardi" + + "skpennsylvaniatyskplautdietschgammelpersiskpalatintyskfønikiskpiemontesi" + + "skpontiskponapiskprøyssiskgammelprovençalskquichékichwa (Chimborazo-høyl" + + "andet)rajasthanirapanuirarotonganskromagnolskriffromboromanirotumanskrus" + + "inskrovianaaromanskrwasandawejakutsksamaritansk arameisksamburusasaksant" + + "alisaurashtrangambaysangusicilianskskotsksassarisk sardinsksørkurdisksen" + + "ecasenaseriselkupiskkoyraboro sennigammelirsksamogitisktachelhitshanTsja" + + "d-arabisksidamolavschlesiskselayarsørsamisklulesamiskenaresamiskskoltesa" + + "misksoninkesogdisksranan tongoserersahosaterfrisisksukumasususumeriskkom" + + "oriskklassisk syrisksyriskschlesisktulutemnetesoterenotetumtigrétivtokel" + + "autsakhurskklingontlingittalyshtamasjeknyasa-tongansktok pisinturoyotaro" + + "kotsakonisktsimshianmuslimsk tattumbukatuvalutasawaqtuvinisksentralmarok" + + "kansk tamazightudmurtugaritiskumbundurotvaivenetianskvepsiskvestflamskMa" + + "in-frankiskvotisksørestiskvunjowalserwalamowaraywashowarlpiriwukalmykmin" + + "grelsksogayaoyapesiskyangbenyembanheengatukantonesiskzapotecblissymboler" + + "zeeuwszenagastandard marrokansk tamazightzuniuten sprÃ¥klig innholdzazamo" + + "derne standard arabiskøsterriksk tysksveitsisk høytyskaustralsk engelskc" + + "anadisk engelskbritisk engelskamerikansk engelsklatinamerikansk spanskeu" + + "ropeisk spanskmeksikansk spanskcanadisk fransksveitsisk fransknedersaksi" + + "skflamskbrasiliansk portugisiskeuropeisk portugisiskmoldovskserbokroatis" + + "kkongolesisk swahiliforenklet kinesisktradisjonell kinesisk" + +var noLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000d, 0x0015, 0x001e, 0x0022, 0x002a, 0x0032, + 0x0039, 0x0041, 0x0048, 0x004e, 0x005c, 0x0065, 0x0071, 0x0079, + 0x0080, 0x0087, 0x008e, 0x0097, 0x009f, 0x00a6, 0x00af, 0x00ba, + 0x00c2, 0x00cc, 0x00d0, 0x00d9, 0x00e5, 0x00f0, 0x00f8, 0x00fd, + 0x0101, 0x0107, 0x010f, 0x0112, 0x0117, 0x011e, 0x0127, 0x012d, + 0x0133, 0x013a, 0x0141, 0x0147, 0x014c, 0x0154, 0x015d, 0x0163, + 0x016e, 0x0172, 0x0180, 0x0188, 0x018f, 0x0197, 0x019c, 0x01a1, + 0x01a9, 0x01ae, 0x01b7, 0x01bf, 0x01c6, 0x01cd, 0x01d4, 0x01da, + // Entry 40 - 7F + 0x01e5, 0x01ef, 0x01fa, 0x01fd, 0x0207, 0x020e, 0x0211, 0x0219, + 0x0222, 0x022b, 0x0232, 0x023c, 0x0244, 0x024b, 0x0251, 0x0259, + 0x0262, 0x026d, 0x0272, 0x0279, 0x0281, 0x0287, 0x028f, 0x0296, + 0x029a, 0x02a1, 0x02aa, 0x02af, 0x02ba, 0x02bf, 0x02c9, 0x02d0, + 0x02d7, 0x02df, 0x02eb, 0x02f2, 0x02f9, 0x0306, 0x030b, 0x0314, + 0x031d, 0x0325, 0x032c, 0x0334, 0x033d, 0x0346, 0x034b, 0x0357, + 0x035d, 0x0363, 0x036e, 0x037b, 0x0388, 0x0394, 0x039a, 0x03a0, + 0x03a9, 0x03af, 0x03b4, 0x03b9, 0x03c1, 0x03c8, 0x03cc, 0x03d1, + // Entry 80 - BF + 0x03d7, 0x03e2, 0x03e9, 0x03f4, 0x03f9, 0x0400, 0x0407, 0x0412, + 0x041a, 0x0422, 0x0428, 0x0432, 0x0437, 0x0442, 0x044b, 0x0453, + 0x045b, 0x0460, 0x0466, 0x046d, 0x0474, 0x0479, 0x0483, 0x048e, + 0x0494, 0x049b, 0x04a0, 0x04a6, 0x04b0, 0x04b4, 0x04bc, 0x04c5, + 0x04cd, 0x04d5, 0x04dc, 0x04e2, 0x04ea, 0x04f2, 0x04fa, 0x0502, + 0x0506, 0x050e, 0x0513, 0x051f, 0x0526, 0x052e, 0x0533, 0x0538, + 0x053f, 0x0545, 0x054b, 0x0553, 0x0557, 0x0561, 0x0566, 0x056d, + 0x0573, 0x0583, 0x058b, 0x0590, 0x0594, 0x059c, 0x05a3, 0x05ab, + // Entry C0 - FF + 0x05b9, 0x05c4, 0x05d1, 0x05d7, 0x05df, 0x05e8, 0x05ee, 0x05f5, + 0x0605, 0x060b, 0x061d, 0x062d, 0x0630, 0x0645, 0x064d, 0x0653, + 0x0659, 0x0660, 0x066a, 0x0671, 0x0675, 0x067a, 0x0684, 0x068b, + 0x068f, 0x0694, 0x069a, 0x069e, 0x06a3, 0x06a9, 0x06b5, 0x06bd, + 0x06c2, 0x06c6, 0x06cc, 0x06cf, 0x06d6, 0x06e1, 0x06ea, 0x06ee, + 0x06f4, 0x06f8, 0x06fd, 0x0703, 0x070d, 0x0711, 0x0715, 0x071c, + 0x0721, 0x0729, 0x072f, 0x0734, 0x073c, 0x0740, 0x0747, 0x074f, + 0x0759, 0x075d, 0x0764, 0x076b, 0x0776, 0x0781, 0x0789, 0x0799, + // Entry 100 - 13F + 0x07a0, 0x07a5, 0x07b1, 0x07ba, 0x07c0, 0x07c6, 0x07cb, 0x07d3, + 0x07da, 0x07e0, 0x07e5, 0x07ea, 0x07ef, 0x07f9, 0x0805, 0x080a, + 0x081b, 0x0825, 0x082a, 0x0830, 0x0836, 0x083a, 0x0843, 0x0851, + 0x0857, 0x0861, 0x086e, 0x087a, 0x0880, 0x088f, 0x0893, 0x089d, + 0x08ab, 0x08ae, 0x08b9, 0x08c5, 0x08d1, 0x08da, 0x08e5, 0x08f0, + 0x08fa, 0x08fc, 0x0905, 0x0908, 0x090c, 0x0911, 0x0921, 0x0924, + 0x092e, 0x0934, 0x0942, 0x0950, 0x095e, 0x0963, 0x096c, 0x0972, + 0x0977, 0x0982, 0x098e, 0x0993, 0x0999, 0x099e, 0x09a5, 0x09aa, + // Entry 140 - 17F + 0x09af, 0x09b7, 0x09c5, 0x09cf, 0x09d9, 0x09de, 0x09e9, 0x09ee, + 0x09f2, 0x09f6, 0x09fc, 0x0a01, 0x0a0a, 0x0a11, 0x0a28, 0x0a2e, + 0x0a34, 0x0a3b, 0x0a47, 0x0a53, 0x0a57, 0x0a64, 0x0a6b, 0x0a71, + 0x0a74, 0x0a79, 0x0a7d, 0x0a86, 0x0a8d, 0x0a91, 0x0a98, 0x0aa3, + 0x0aaa, 0x0aae, 0x0ab6, 0x0abb, 0x0ac6, 0x0ad2, 0x0ad8, 0x0ae1, + 0x0ae5, 0x0aed, 0x0af5, 0x0b03, 0x0b0a, 0x0b14, 0x0b1a, 0x0b29, + 0x0b2d, 0x0b36, 0x0b3d, 0x0b43, 0x0b4b, 0x0b50, 0x0b57, 0x0b5c, + 0x0b63, 0x0b6a, 0x0b6f, 0x0b75, 0x0b7a, 0x0b82, 0x0b94, 0x0b9c, + // Entry 180 - 1BF + 0x0ba2, 0x0ba8, 0x0bb2, 0x0bb7, 0x0bbb, 0x0bc4, 0x0bce, 0x0bd8, + 0x0bdf, 0x0be4, 0x0be7, 0x0beb, 0x0bf0, 0x0c01, 0x0c07, 0x0c11, + 0x0c15, 0x0c1b, 0x0c23, 0x0c2a, 0x0c32, 0x0c37, 0x0c3b, 0x0c41, + 0x0c47, 0x0c4c, 0x0c50, 0x0c61, 0x0c6b, 0x0c79, 0x0c80, 0x0c86, + 0x0c91, 0x0c98, 0x0ca0, 0x0ca6, 0x0cab, 0x0cb5, 0x0cbc, 0x0cc8, + 0x0ccd, 0x0cd8, 0x0cdf, 0x0ce7, 0x0cec, 0x0cf1, 0x0cfc, 0x0d02, + 0x0d0d, 0x0d11, 0x0d1a, 0x0d20, 0x0d24, 0x0d2c, 0x0d33, 0x0d39, + 0x0d42, 0x0d47, 0x0d52, 0x0d58, 0x0d5d, 0x0d67, 0x0d6b, 0x0d7a, + // Entry 1C0 - 1FF + 0x0d82, 0x0d8a, 0x0d8f, 0x0d94, 0x0d99, 0x0daa, 0x0db4, 0x0dbb, + 0x0dc3, 0x0dcd, 0x0dd5, 0x0dde, 0x0dee, 0x0dfa, 0x0e07, 0x0e12, + 0x0e1b, 0x0e27, 0x0e2e, 0x0e36, 0x0e40, 0x0e52, 0x0e59, 0x0e77, + 0x0e81, 0x0e88, 0x0e94, 0x0e9e, 0x0ea2, 0x0ea7, 0x0ead, 0x0eb6, + 0x0ebd, 0x0ec4, 0x0ecc, 0x0ecf, 0x0ed6, 0x0edd, 0x0ef1, 0x0ef8, + 0x0efd, 0x0f04, 0x0f0e, 0x0f15, 0x0f1a, 0x0f24, 0x0f2a, 0x0f3c, + 0x0f47, 0x0f4d, 0x0f51, 0x0f55, 0x0f5e, 0x0f6d, 0x0f77, 0x0f81, + 0x0f8a, 0x0f8e, 0x0f9b, 0x0fa1, 0x0fad, 0x0fb4, 0x0fbe, 0x0fc8, + // Entry 200 - 23F + 0x0fd3, 0x0fdf, 0x0fe6, 0x0fed, 0x0ff9, 0x0ffe, 0x1002, 0x100e, + 0x1014, 0x1018, 0x1020, 0x1028, 0x1037, 0x103d, 0x1046, 0x104a, + 0x104f, 0x1053, 0x1059, 0x105e, 0x1064, 0x1067, 0x106e, 0x1077, + 0x107e, 0x1085, 0x108b, 0x1093, 0x10a1, 0x10aa, 0x10b0, 0x10b6, + 0x10bf, 0x10c8, 0x10d4, 0x10db, 0x10e1, 0x10e8, 0x10f0, 0x110b, + 0x1111, 0x111a, 0x1121, 0x1124, 0x1127, 0x1131, 0x1138, 0x1142, + 0x114f, 0x1155, 0x115f, 0x1164, 0x116a, 0x1170, 0x1175, 0x117a, + 0x1182, 0x1184, 0x118a, 0x1193, 0x1197, 0x119a, 0x11a2, 0x11a9, + // Entry 240 - 27F + 0x11ae, 0x11b7, 0x11c2, 0x11c9, 0x11d5, 0x11db, 0x11e1, 0x11fe, + 0x1202, 0x1218, 0x121c, 0x1234, 0x1234, 0x1244, 0x1256, 0x1267, + 0x1277, 0x1286, 0x1298, 0x12ae, 0x12be, 0x12cf, 0x12cf, 0x12de, + 0x12ee, 0x12fa, 0x1300, 0x1317, 0x132c, 0x1334, 0x1341, 0x1354, + 0x1366, 0x137b, +} // Size: 1244 bytes + +var paLangStr string = "" + // Size: 5353 bytes + "ਅਬਖਾਜ਼ੀਅਨਅਫ਼ਰੀਕੀਅਕਾਨਅਮਹਾਰਿਕਅਰਬੀਅਸਾਮੀਅਜ਼ਰਬਾਈਜਾਨੀਬਸ਼ਕੀਰਬੇਲਾਰੂਸੀਬà©à¨²à¨—ਾਰੀਆਈਬੰ" + + "ਬਾਰਾਬੰਗਾਲੀਤਿੱਬਤੀਬਰੇਟਨਬੋਸਨੀਆਈਕੈਟਾਲਾਨਚੇਚਨਕੋਰਸੀਕਨਚੈਕਚà©à¨µà¨¾à¨¸à¨¼à¨µà©ˆà¨²à¨œà¨¼à¨¡à©ˆà¨¨à¨¿à¨¸à¨¼à¨œà¨°à¨®à¨¨" + + "ਜ਼ੋਂਗਖਾਈਵਈਯੂਨਾਨੀਅੰਗਰੇਜ਼ੀਇਸਪੇਰਾਂਟੋਸਪੇਨੀਇਸਟੋਨੀਆਈਬਾਸਕਫ਼ਾਰਸੀਫਿਨਿਸ਼ਫ਼ਿਜ਼ੀਫ਼" + + "ੇਰੋਸੇਫਰਾਂਸੀਸੀਪੱਛਮੀ ਫà©à¨°à¨¿à¨¸à©€à¨…ਨਆਇਰੀਗੈਲਿਸ਼ਿਅਨਗà©à¨†à¨°à¨¾à¨¨à©€à¨—à©à¨œà¨°à¨¾à¨¤à©€à¨®à©ˆà¨‚ਕਸਹੌਸਾਹਿਬਰੂਹਿ" + + "ੰਦੀਕà©à¨°à©‹à¨à¨¸à¨¼à¨¿à¨†à¨ˆà¨¹à©ˆà¨¤à©€à¨†à¨ˆà¨¹à©°à¨—ਰੀਆਈਅਰਮੀਨੀਆਈਇੰਡੋਨੇਸ਼ੀਆਈਇਗਬੋਸਿਚà©à¨†à¨¨ ਯੀਆਈਸਲੈਂਡਿਕਇਤਾ" + + "ਲਵੀਇੰਕਟੀਟੂਤਜਪਾਨੀਜਾਵਾਨੀਜ਼ਜਾਰਜੀਆਈਕਿਕੂਯੂਕਜ਼ਾਖ਼ਕਲਾਅੱਲੀਸà©à¨Ÿà¨–ਮੇਰਕੰਨੜਕੋਰੀਆਈਕਸ਼" + + "ਮੀਰੀਕà©à¨°à¨¦à¨•à©‹à¨°à¨¨à¨¿à¨¸à¨¼à¨•à¨¿à¨°à¨—ੀਜ਼ਲਾਤੀਨੀਲਕਜ਼ਮਬਰਗਿਸ਼ਗਾਂਡਾਲਿੰਗਾਲਾਲਾਓਲਿਥà©à¨†à¨¨à©€à¨…ਨਲੂਬਾ-ਕਾ" + + "ਟਾਂਗਾਲਾਟਵਿਅਨਮੇਲੇਗਸੀਮਾਉਰੀਮੈਕਡੋਨੀਆਈਮਲਿਆਲਮਮੰਗੋਲੀਅਨਮਰਾਠੀਮਲਯਮਾਲਟੀਜ਼ਬਰਮੀਉੱਤਰ" + + "à©€ ਨਡੇਬੇਲੇਨੇਪਾਲੀਡੱਚਨਾਰਵੇਜਿਆਈ ਨਿਓਨੌਰਸਕਨਾਰਵੇਜਿਆਈ ਬੋਕਮਲਓਰੋਮੋਉੜੀਆਪੰਜਾਬੀਪਲੀਪ" + + "ੋਲੈਂਡੀਪਸ਼ਤੋਪà©à¨°à¨¤à¨—ਾਲੀਕਕੇਸ਼à©à¨†à¨°à©‹à¨®à¨¾à¨‚ਸ਼ਰà©à©°à¨¡à©€à¨°à©‹à¨®à¨¾à¨¨à©€à¨†à¨ˆà¨°à©‚ਸੀਕਿਨਿਆਰਵਾਂਡਾਸੰਸਕà©à¨°à¨¿à¨¤à¨¸" + + "ਿੰਧੀਉੱਤਰੀ ਸਾਮੀਸਾਂਗੋਸਿੰਹਾਲਾਸਲੋਵਾਕਸਲੋਵੇਨੀਆਈਸ਼ੋਨਾਸੋਮਾਲੀਅਲਬਾਨੀਆਈਸਰਬੀਆਈਸੂੰਡ" + + "ਾਨੀਸਵੀਡਿਸ਼ਸਵਾਹਿਲੀਤਮਿਲਤੇਲਗੂਤਾਜਿਕਥਾਈਤਿਗà©à¨°à©€à¨¨à¨¿à¨†à¨¤à©à¨°à¨•à¨®à©‡à¨¨à¨Ÿà©Œà¨‚ਗਨਤà©à¨°à¨•à©€à¨¤à¨¤à¨¾à¨°à¨‰à¨‡à¨—à©à¨°à¨¯" + + "ੂਕਰੇਨੀਆਈਉਰਦੂਉਜ਼ਬੇਕਵੀਅਤਨਾਮੀਵੋਲੋਫਖੋਸਾਯੋਰੂਬਾਚੀਨੀਜ਼à©à¨²à©‚ਅਚੀਨੀਅਕੋਲੀਅਗੇਮਪà©à¨°à¨¾à¨£à©€" + + " ਅੰਗਰੇਜ਼ੀਮਾਪà©à¨šà©‡à¨…ਸੂਬੇਮਬਾਬੇਨਾਪੱਛਮੀ ਬਲੂਚੀਭੋਜਪà©à¨°à©€à¨¬à©‹à¨¡à©‹à¨šà©€à¨—ਾਮਾਰੀਚੇਰੋਕੀਕੇਂਦਰੀ ਕà©" + + "ਰਦਿਸ਼ਟੇਟਾਜ਼ਾਰਮਾਲੋਅਰ ਸੋਰਬੀਅਨਡੂਆਲਾਜੋਲਾ-ਫੋਇਨੀਇੰਬੂਪà©à¨°à¨¾à¨¤à¨¨ ਮਿਸਰੀਫਿਲੀਪਿਨੋਗਾਗੌ" + + "ਜ਼ਪà©à¨°à¨¾à¨¤à¨¨ ਯੂਨਾਨੀਸਵਿਸ ਜਰਮਨਗà©à¨¸à©€à¨¹à¨µà¨¾à¨ˆà¨«à¨¿à¨œà©€ ਹਿੰਦੀਅੱਪਰ ਸੋਰਬੀਅਨਨਗੋਂਬਾਮਚਾਮੇਕਬਾਇਲ" + + "ਕੰਬਾਮਕੋਂਡਕਾਬà©à¨µà©‡à¨°à¨¦à¨¿à¨†à¨¨à©‚ਕੋਯਰਾ ਚੀਨੀਕਲੇਜਿਨਕੋਮੀ-ਪੇਰਮਿਆਕਕੋਂਕਣੀਸ਼ੰਬਾਲਾਬਫ਼ੀਆਲੰਗ" + + "ਾਈਲਕੋਟਾਉੱਤਰੀ ਲà©à¨°à©€à¨²à©‚ਓਲੂਈਆਮੈਥਲੀਮਸਾਈਮੇਰੂਮੋਰੀਸਿਅਨਮਖੋਵਾ-ਮਿੱਟੋਮੇਟਾਮਨੀਪà©à¨°à©€à¨®à©‹à¨¹" + + "ਾਵਕਮà©à©°à¨¡à©‡à¨‚ਗਕਈ ਭਾਸ਼ਾਵਾਂਮੇਜ਼ੈਂਡਰਾਨੀਨਾਮਾਲੋ ਜਰਮਨਕਵਾਸਿਓà¨à¨‚ਕੋਨà©à¨à¨°à¨¨à¨¿à¨†à¨‚ਕੋਲੇਕੇਸ਼ਰ" + + "ਾਜਸਥਾਨੀਰੋਮਬੋਰਵਾਸਮਬà©à¨°à©‚ਸੰਥਾਲੀਸੇਂਗੋਦੱਖਣੀ ਕà©à¨°à¨¦à¨¿à¨¸à¨¼à¨¸à©‡à¨¨à¨¾à¨•à©‹à¨‡à¨°à¨¾à¨¬à©‹à¨°à©‹ ਸੇਂਨੀਟਚੇਲਹਿ" + + "ਟਸ਼ਾਨਦੱਖਣੀ ਸਾਮੀਲਿਊਲ ਸਾਮੀਇਨਾਰੀ ਸਾਮੀਸਕੌਲਟ ਸਾਮੀਟੇਸੋਤਾਸਾਵਿਕਮੱਧ à¨à¨Ÿà¨²à¨¸ ਤਮਾਜ਼ਿ" + + "ਤਅਗਿਆਤ ਭਾਸ਼ਾਵਾਈਵੂੰਜੋਵਾਲਪà©à¨°à©€à¨¸à©‹à¨—ਾਮਿਆਰੀ ਮੋਰੋਕੇਨ ਟਾਮਾਜ਼ਿਕਕੋਈ ਭਾਸ਼ਾਈ ਸਮੱਗਰੀ" + + " ਨਹੀਂਆਧà©à¨¨à¨¿à¨• ਮਿਆਰੀ ਅਰਬੀਆਸਟਰੀਆਈ ਜਰਮਨਸਵਿਸ ਹਾਈ ਜਰਮਨਆਸਟà©à¨°à©‡à¨²à©€à¨†à¨ˆ ਅੰਗਰੇਜ਼ੀਕੈਨੇਡੀ" + + "ਅਨ ਅੰਗਰੇਜ਼ੀਬਰਤਾਨਵੀ ਅੰਗਰੇਜ਼ੀਅਮਰੀਕੀ ਅੰਗਰੇਜ਼ੀਲਾਤੀਨੀ ਅਮਰੀਕੀ ਸਪੇਨੀਯੂਰਪੀ ਸਪੇ" + + "ਨੀਮੈਕਸੀਕਨ ਸਪੈਨਿਸ਼ਕੈਨੇਡੀਅਨ ਫਰਾਂਸੀਸੀਸਵਿਸ ਫਰਾਂਸੀਸੀਲੋ ਸੈਕਸਨਫਲੈਮਿਸ਼ਬà©à¨°à¨¾à¨œà¨¼à©€à¨²" + + "ੀਆਈ ਪà©à¨°à¨¤à¨—ਾਲੀਯੂਰਪੀ ਪà©à¨°à¨¤à¨—ਾਲੀਮੋਲਡਾਵੀਆਈਕਾਂਗੋ ਸਵਾਹਿਲੀਸਰਲ ਚੀਨੀਰਵਾਇਤੀ ਚੀਨੀ" + +var paLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x001b, 0x001b, 0x0030, 0x003c, 0x0051, 0x0051, + 0x005d, 0x006c, 0x006c, 0x006c, 0x008d, 0x009f, 0x00b7, 0x00d2, + 0x00d2, 0x00e4, 0x00f6, 0x0108, 0x0117, 0x012c, 0x0141, 0x014d, + 0x014d, 0x0162, 0x0162, 0x016b, 0x016b, 0x017d, 0x018c, 0x019e, + 0x01aa, 0x01aa, 0x01bf, 0x01c8, 0x01da, 0x01f2, 0x020d, 0x021c, + 0x0234, 0x0240, 0x0252, 0x0252, 0x0264, 0x0276, 0x028b, 0x02a3, + 0x02cb, 0x02d7, 0x02d7, 0x02f2, 0x0307, 0x031c, 0x032b, 0x0337, + 0x0346, 0x0355, 0x0355, 0x0373, 0x0385, 0x039a, 0x03b2, 0x03b2, + // Entry 40 - 7F + 0x03b2, 0x03d3, 0x03d3, 0x03df, 0x03f8, 0x03f8, 0x03f8, 0x0413, + 0x0425, 0x043d, 0x044c, 0x0464, 0x0479, 0x0479, 0x048b, 0x048b, + 0x049d, 0x04bb, 0x04c7, 0x04d3, 0x04e5, 0x04e5, 0x04fa, 0x0506, + 0x0506, 0x051b, 0x0530, 0x0542, 0x0563, 0x0572, 0x0572, 0x0587, + 0x0590, 0x05ab, 0x05cd, 0x05e2, 0x05f7, 0x05f7, 0x0606, 0x0621, + 0x0633, 0x064b, 0x065a, 0x0663, 0x0678, 0x0684, 0x0684, 0x06a9, + 0x06bb, 0x06bb, 0x06c4, 0x06f8, 0x0723, 0x0723, 0x0723, 0x0723, + 0x0723, 0x0723, 0x0732, 0x073e, 0x073e, 0x0750, 0x0759, 0x076e, + // Entry 80 - BF + 0x077d, 0x0795, 0x07aa, 0x07bf, 0x07ce, 0x07e6, 0x07f2, 0x0813, + 0x082b, 0x082b, 0x083a, 0x0856, 0x0865, 0x087a, 0x088c, 0x08a7, + 0x08a7, 0x08b6, 0x08c8, 0x08e0, 0x08f2, 0x08f2, 0x08f2, 0x0907, + 0x091c, 0x0931, 0x093d, 0x094c, 0x095b, 0x0964, 0x097f, 0x0994, + 0x0994, 0x09a3, 0x09b2, 0x09b2, 0x09be, 0x09be, 0x09cd, 0x09e8, + 0x09f4, 0x0a06, 0x0a06, 0x0a1e, 0x0a1e, 0x0a1e, 0x0a2d, 0x0a39, + 0x0a39, 0x0a4b, 0x0a4b, 0x0a57, 0x0a66, 0x0a75, 0x0a84, 0x0a84, + 0x0a84, 0x0a84, 0x0a84, 0x0a90, 0x0a90, 0x0a90, 0x0a90, 0x0a90, + // Entry C0 - FF + 0x0a90, 0x0a90, 0x0abb, 0x0abb, 0x0abb, 0x0acd, 0x0acd, 0x0acd, + 0x0acd, 0x0acd, 0x0acd, 0x0acd, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, + 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, 0x0ad6, + 0x0ad6, 0x0ae5, 0x0ae5, 0x0af1, 0x0af1, 0x0af1, 0x0b10, 0x0b25, + 0x0b25, 0x0b25, 0x0b25, 0x0b25, 0x0b25, 0x0b25, 0x0b25, 0x0b25, + 0x0b25, 0x0b31, 0x0b31, 0x0b31, 0x0b31, 0x0b31, 0x0b31, 0x0b31, + 0x0b31, 0x0b31, 0x0b31, 0x0b31, 0x0b31, 0x0b3d, 0x0b3d, 0x0b3d, + 0x0b3d, 0x0b49, 0x0b49, 0x0b49, 0x0b49, 0x0b5b, 0x0b5b, 0x0b83, + // Entry 100 - 13F + 0x0b83, 0x0b83, 0x0b83, 0x0b83, 0x0b83, 0x0b83, 0x0b8f, 0x0b8f, + 0x0b8f, 0x0b8f, 0x0b8f, 0x0ba1, 0x0ba1, 0x0bc3, 0x0bc3, 0x0bd2, + 0x0bd2, 0x0bee, 0x0bee, 0x0bee, 0x0bfa, 0x0bfa, 0x0bfa, 0x0c1c, + 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c1c, 0x0c34, + 0x0c34, 0x0c34, 0x0c34, 0x0c34, 0x0c34, 0x0c34, 0x0c34, 0x0c34, + 0x0c34, 0x0c34, 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, + 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, 0x0c46, + 0x0c46, 0x0c6b, 0x0c84, 0x0c84, 0x0c84, 0x0c90, 0x0c90, 0x0c90, + // Entry 140 - 17F + 0x0c90, 0x0c9c, 0x0cb8, 0x0cb8, 0x0cb8, 0x0cb8, 0x0cda, 0x0cda, + 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, 0x0cda, + 0x0cec, 0x0cfb, 0x0cfb, 0x0cfb, 0x0cfb, 0x0cfb, 0x0d0a, 0x0d0a, + 0x0d0a, 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d16, 0x0d25, 0x0d49, + 0x0d49, 0x0d49, 0x0d49, 0x0d49, 0x0d49, 0x0d65, 0x0d65, 0x0d65, + 0x0d65, 0x0d77, 0x0d77, 0x0d99, 0x0dab, 0x0dab, 0x0dab, 0x0dab, + 0x0dab, 0x0dab, 0x0dab, 0x0dab, 0x0dc0, 0x0dcf, 0x0dcf, 0x0dcf, + 0x0dcf, 0x0dcf, 0x0dde, 0x0dde, 0x0dde, 0x0dde, 0x0dde, 0x0dde, + // Entry 180 - 1BF + 0x0dde, 0x0ded, 0x0ded, 0x0ded, 0x0ded, 0x0e09, 0x0e09, 0x0e09, + 0x0e09, 0x0e09, 0x0e12, 0x0e12, 0x0e1e, 0x0e1e, 0x0e1e, 0x0e1e, + 0x0e1e, 0x0e1e, 0x0e2d, 0x0e2d, 0x0e2d, 0x0e39, 0x0e39, 0x0e39, + 0x0e39, 0x0e39, 0x0e45, 0x0e5d, 0x0e5d, 0x0e7c, 0x0e88, 0x0e88, + 0x0e88, 0x0e88, 0x0e9d, 0x0eaf, 0x0eaf, 0x0eaf, 0x0ec4, 0x0ee3, + 0x0ee3, 0x0ee3, 0x0ee3, 0x0ee3, 0x0ee3, 0x0ee3, 0x0f04, 0x0f04, + 0x0f04, 0x0f10, 0x0f23, 0x0f23, 0x0f23, 0x0f23, 0x0f23, 0x0f35, + 0x0f35, 0x0f35, 0x0f35, 0x0f35, 0x0f41, 0x0f41, 0x0f4d, 0x0f4d, + // Entry 1C0 - 1FF + 0x0f4d, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, + 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, + 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f65, 0x0f71, 0x0f71, + 0x0f89, 0x0f89, 0x0f89, 0x0f89, 0x0f89, 0x0f98, 0x0f98, 0x0f98, + 0x0f98, 0x0f98, 0x0f98, 0x0fa1, 0x0fa1, 0x0fa1, 0x0fa1, 0x0fb3, + 0x0fb3, 0x0fc5, 0x0fc5, 0x0fc5, 0x0fd4, 0x0fd4, 0x0fd4, 0x0fd4, + 0x0ff9, 0x0ff9, 0x1005, 0x1005, 0x1005, 0x1030, 0x1030, 0x1030, + 0x1045, 0x1051, 0x1051, 0x1051, 0x1051, 0x1051, 0x106d, 0x1086, + // Entry 200 - 23F + 0x10a2, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, + 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, 0x10be, + 0x10be, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, + 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, + 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10ca, 0x10df, 0x10df, 0x110b, + 0x110b, 0x110b, 0x110b, 0x112a, 0x1133, 0x1133, 0x1133, 0x1133, + 0x1133, 0x1133, 0x1133, 0x1142, 0x1142, 0x1142, 0x1142, 0x1142, + 0x1157, 0x1157, 0x1157, 0x1157, 0x1163, 0x1163, 0x1163, 0x1163, + // Entry 240 - 27F + 0x1163, 0x1163, 0x1163, 0x1163, 0x1163, 0x1163, 0x1163, 0x11a1, + 0x11a1, 0x11dd, 0x11dd, 0x120c, 0x120c, 0x122e, 0x1251, 0x1288, + 0x12b9, 0x12e7, 0x1312, 0x1347, 0x1366, 0x1391, 0x1391, 0x13c2, + 0x13e7, 0x13fd, 0x1412, 0x144c, 0x1474, 0x148f, 0x148f, 0x14b4, + 0x14ca, 0x14e9, +} // Size: 1244 bytes + +var plLangStr string = "" + // Size: 5558 bytes + "afarabchaskiawestyjskiafrikaansakanamharskiaragoÅ„skiarabskiasamskiawarsk" + + "iajmaraazerskibaszkirskibiaÅ‚oruskibuÅ‚garskibislamabambarabengalskitybeta" + + "Å„skibretoÅ„skiboÅ›niackikataloÅ„skiczeczeÅ„skichamorrokorsykaÅ„skikriczeskis" + + "taro-cerkiewno-sÅ‚owiaÅ„skiczuwaskiwalijskiduÅ„skiniemieckimalediwskidzongk" + + "haewegreckiangielskiesperantohiszpaÅ„skiestoÅ„skibaskijskiperskifulanifiÅ„s" + + "kifidżijskifarerskifrancuskizachodniofryzyjskiirlandzkiszkocki gaelickig" + + "alicyjskiguaranigudźarackimanxhausahebrajskihindihiri motuchorwackihaita" + + "Å„skiwÄ™gierskiormiaÅ„skihererointerlinguaindonezyjskiinterlingueigbosyczu" + + "aÅ„skiinupiakidoislandzkiwÅ‚oskiinuktitutjapoÅ„skijawajskigruziÅ„skikongokik" + + "ujukwanyamakazachskigrenlandzkikhmerskikannadakoreaÅ„skikanurikaszmirskik" + + "urdyjskikomikornijskikirgiskiÅ‚aciÅ„skiluksemburskigandalimburgijskilingal" + + "alaotaÅ„skilitewskiluba-katangaÅ‚otewskimalgaskimarshallmaoryjskimacedoÅ„sk" + + "imalajalammongolskimarathimalajskimaltaÅ„skibirmaÅ„skinaurundebele północn" + + "ynepalskindonganiderlandzkinorweski (nynorsk)norweski (bokmÃ¥l)ndebele po" + + "Å‚udniowynawahonjandżaprowansalskiodżibwaoromskiorijaosetyjskipendżabski" + + "palijskipolskipasztoportugalskikeczuaretoromaÅ„skirundirumuÅ„skirosyjskiki" + + "nya-ruandasanskrytsardyÅ„skisindhilapoÅ„ski północnysangosyngaleskisÅ‚owack" + + "isÅ‚oweÅ„skisamoaÅ„skiszonasomalijskialbaÅ„skiserbskisiswatisotho poÅ‚udniowy" + + "sundajskiszwedzkisuahilitamilskitelugutadżyckitajskitigriniaturkmeÅ„skise" + + "tswanatongatureckitsongatatarskitahitaÅ„skiujgurskiukraiÅ„skiurduuzbeckive" + + "ndawietnamskivolapukwaloÅ„skiwolofkhosajidyszjorubaczuangchiÅ„skizuluaceha" + + "czoliadangmeadygejskitunezyjski arabskiafrihiliaghemajnuakadyjskialabama" + + "aleuckialbaÅ„ski gegijskipoÅ‚udniowoaÅ‚tajskistaroangielskiangikaaramejskia" + + "raukaÅ„skiaraonaarapahoalgierski arabskiarawakmarokaÅ„ski arabskiegipski a" + + "rabskiasuamerykaÅ„ski jÄ™zyk migowyasturyjskikotavaawadhibeludżibalijskiba" + + "warskibasabamumbatak tobaghomalabedżabembabetawibenabafutbadagabeludżi p" + + "ółnocnybhodźpuribikolbinibanjarkomsiksikabisznuprija-manipuribachtiarsk" + + "ibradźbrahuibodoakoseburiackibugiÅ„skibulublinmedumbakaddokaribikajugaats" + + "amcebuanochigaczibczaczagatajskitrukmaryjskiżargon Chinookchoctawchipewy" + + "anczirokeskijÄ™zyk Czejenówsoranikoptyjskicapiznonkrymski tureckikaszubsk" + + "idakotadargwijskitaitadelawareslavedogribdinkadżermadogridolnoÅ‚użyckidus" + + "un centralnydualaÅ›redniowieczny niderlandzkidioladyuladazagaembuefikemil" + + "ijskistarożytny egipskiekajukelamickiÅ›rednioangielskiyupik Å›rodkowosyber" + + "yjskiewondoestremadurskifangfilipinomeänkielifoncajunÅ›redniofrancuskista" + + "rofrancuskifranko-prowansalskipółnocnofryzyjskifryzyjski wschodnifriulij" + + "skigagagauskigangayogbayazaratusztriaÅ„ski darigyyzgilbertaÅ„skigiliaÅ„skiÅ›" + + "rednio-wysoko-niemieckistaro-wysoko-niemieckikonkani (Goa)gondigorontalo" + + "gockigrebostarogreckiszwajcarski niemieckiwayúufrafragusiigwichʼinhaidah" + + "akkahawajskihindi fidżyjskiehiligajnonhetyckihmongijskigórnoÅ‚użyckixiang" + + "hupaibanagibibioilokanoinguskiingryjskijamajskilojbanngombemachamejudeop" + + "erskijudeoarabskijutlandzkikarakaÅ‚packikabylskikaczinjjukambakawikabardy" + + "jskikanembutyapmakondekreolski Wysp Zielonego PrzylÄ…dkakenyangkorokainga" + + "ngkhasichotaÅ„skikoyra chinikhowarkirmandżkikakokalenjinkimbundukomi-perm" + + "iackikonkanikosraekpellekaraczajsko-baÅ‚karskikriokinarayakarelskikurukhs" + + "ambalabafiagwara koloÅ„skakumyckikutenailadyÅ„skilangilahndalambalezgijski" + + "Lingua Franca Novaliguryjskiliwskilakotalombardzkimongoloziluryjski półn" + + "ocnyÅ‚atgalskiluba-lulualuisenolundaluolushailuhyachiÅ„ski klasycznylazyjs" + + "kimadurajskimafamagahimaithilimakasarmandingomasajskimabamokshamandarmen" + + "demerukreolski MauritiusaÅ›rednioirlandzkimakuametamicmacminangkabumanchu" + + "manipuryjskimohawkmossizachodniomaryjskimundangwiele jÄ™zykówcreekmirande" + + "semarwarimentawaimyeneerzyamazanderaÅ„skiminnaÅ„skineapolitaÅ„skinamadolnon" + + "iemieckinewarskiniasniueaongumbangiemboonnogajskistaronordyjskinovialn’k" + + "osotho północnynuernewarski klasycznyniamwezinyankolenyoronzemaosageosma" + + "Å„sko-tureckipangasinopahlavipampangopapiamentopalaupikardyjskipensylwaÅ„" + + "skiplautdietschstaroperskipalatynackifenickipiemonckipontyjskiponpejskip" + + "ruskistaroprowansalskikiczechimborazo górski keczuaradźasthanirapanuirar" + + "otongaromagnoltarifitrombocygaÅ„skirotumaÅ„skirusiÅ„skirovianaarumuÅ„skirwas" + + "andawejakuckisamarytaÅ„ski aramejskisamburusasaksantalisaurasztryjskingam" + + "baysangusycylijskiszkockisassarskipoÅ‚udniowokurdyjskisenekasenaseriselku" + + "pskikoyraboro sennistaroirlandzkiżmudzkitashelhiytshanarabski (Czad)sida" + + "modolnoÅ›lÄ…skiselayarlapoÅ„ski poÅ‚udniowylapoÅ„ski LulelapoÅ„ski InarilapoÅ„s" + + "ki Skoltsoninkesogdyjskisranan tongoserersahofryzyjski saterlandzkisukum" + + "asususumeryjskikomoryjskisyriackisyryjskiÅ›lÄ…skitulutemneatesoterenotetum" + + "tigretiwtokelaucachurskiklingoÅ„skitlingittaÅ‚yskitamaszektonga (Niasa)tok" + + " pisinturoyotarokocakoÅ„skitsimshiantackitumbukatuvalutasawaqtuwiÅ„skicent" + + "ralnomarokaÅ„ski tamazightudmurckiugaryckiumbundujÄ™zyk rdzennywaiweneckiw" + + "epskizachodnioflamandzkimeÅ„ski frankoÅ„skiwotiackivõrovunjowalserwalamowa" + + "rajwashoWarlpiriwukaÅ‚muckimegrelskisogayaojapskiyangbenyembanhengatukant" + + "oÅ„skizapoteckiblisszelandzkizenagastandardowy marokaÅ„ski tamazightzunibr" + + "ak treÅ›ci o charakterze jÄ™zykowymzazakiwspółczesny arabskiaustriacki nie" + + "mieckiwysokoniemiecki (Szwajcaria)australijski angielskikanadyjski angie" + + "lskibrytyjski angielskiamerykaÅ„ski angielskiamerykaÅ„ski hiszpaÅ„skieurope" + + "jski hiszpaÅ„skimeksykaÅ„ski hiszpaÅ„skikanadyjski francuskiszwajcarski fra" + + "ncuskiflamandzkibrazylijski portugalskieuropejski portugalskimoÅ‚dawskise" + + "rbsko-chorwackikongijski suahilichiÅ„ski (uproszczony)chiÅ„ski (tradycyjny" + + ")" + +var plLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000c, 0x0016, 0x001f, 0x0023, 0x002b, 0x0035, + 0x003c, 0x0043, 0x004a, 0x0050, 0x0057, 0x0061, 0x006c, 0x0076, + 0x007d, 0x0084, 0x008d, 0x0098, 0x00a2, 0x00ac, 0x00b7, 0x00c2, + 0x00ca, 0x00d6, 0x00d9, 0x00df, 0x00fb, 0x0103, 0x010b, 0x0112, + 0x011b, 0x0125, 0x012d, 0x0130, 0x0136, 0x013f, 0x0148, 0x0153, + 0x015c, 0x0165, 0x016b, 0x0171, 0x0178, 0x0182, 0x018a, 0x0193, + 0x01a5, 0x01ae, 0x01be, 0x01c8, 0x01cf, 0x01da, 0x01de, 0x01e3, + 0x01ec, 0x01f1, 0x01fa, 0x0203, 0x020d, 0x0217, 0x0221, 0x0227, + // Entry 40 - 7F + 0x0232, 0x023e, 0x0249, 0x024d, 0x0258, 0x025f, 0x0262, 0x026b, + 0x0272, 0x027b, 0x0284, 0x028c, 0x0296, 0x029b, 0x02a1, 0x02a9, + 0x02b2, 0x02bd, 0x02c5, 0x02cc, 0x02d6, 0x02dc, 0x02e6, 0x02ef, + 0x02f3, 0x02fc, 0x0304, 0x030e, 0x031a, 0x031f, 0x032b, 0x0332, + 0x033c, 0x0344, 0x0350, 0x0359, 0x0361, 0x0369, 0x0372, 0x037d, + 0x0386, 0x038f, 0x0396, 0x039e, 0x03a8, 0x03b2, 0x03b7, 0x03c9, + 0x03d1, 0x03d7, 0x03e3, 0x03f5, 0x0407, 0x041a, 0x0420, 0x0428, + 0x0434, 0x043c, 0x0443, 0x0448, 0x0451, 0x045c, 0x0464, 0x046a, + // Entry 80 - BF + 0x0470, 0x047b, 0x0481, 0x048e, 0x0493, 0x049c, 0x04a4, 0x04b0, + 0x04b8, 0x04c2, 0x04c8, 0x04dc, 0x04e1, 0x04eb, 0x04f4, 0x04ff, + 0x0509, 0x050e, 0x0518, 0x0521, 0x0528, 0x052f, 0x0540, 0x0549, + 0x0551, 0x0558, 0x0560, 0x0566, 0x056f, 0x0575, 0x057d, 0x0588, + 0x0590, 0x0595, 0x059c, 0x05a2, 0x05aa, 0x05b5, 0x05bd, 0x05c7, + 0x05cb, 0x05d2, 0x05d7, 0x05e1, 0x05e8, 0x05f1, 0x05f6, 0x05fb, + 0x0601, 0x0607, 0x060d, 0x0615, 0x0619, 0x061d, 0x0623, 0x062a, + 0x0633, 0x0645, 0x064d, 0x0652, 0x0656, 0x065f, 0x0666, 0x066d, + // Entry C0 - FF + 0x067f, 0x0693, 0x06a1, 0x06a7, 0x06b0, 0x06bb, 0x06c1, 0x06c8, + 0x06d9, 0x06df, 0x06f2, 0x0701, 0x0704, 0x071e, 0x0728, 0x072e, + 0x0734, 0x073c, 0x0744, 0x074c, 0x0750, 0x0755, 0x075f, 0x0766, + 0x076c, 0x0771, 0x0777, 0x077b, 0x0780, 0x0786, 0x0799, 0x07a3, + 0x07a8, 0x07ac, 0x07b2, 0x07b5, 0x07bc, 0x07d0, 0x07db, 0x07e1, + 0x07e7, 0x07eb, 0x07f0, 0x07f8, 0x0801, 0x0805, 0x0809, 0x0810, + 0x0815, 0x081b, 0x0821, 0x0826, 0x082d, 0x0832, 0x0839, 0x0844, + 0x0848, 0x0850, 0x085f, 0x0866, 0x086f, 0x0879, 0x0889, 0x088f, + // Entry 100 - 13F + 0x0898, 0x08a0, 0x08af, 0x08b8, 0x08be, 0x08c8, 0x08cd, 0x08d5, + 0x08da, 0x08e0, 0x08e5, 0x08ec, 0x08f1, 0x08ff, 0x090e, 0x0913, + 0x092f, 0x0934, 0x0939, 0x093f, 0x0943, 0x0947, 0x0950, 0x0963, + 0x0969, 0x0971, 0x0982, 0x099b, 0x09a1, 0x09ae, 0x09b2, 0x09ba, + 0x09c4, 0x09c7, 0x09cc, 0x09dd, 0x09eb, 0x09fe, 0x0a11, 0x0a23, + 0x0a2d, 0x0a2f, 0x0a37, 0x0a3a, 0x0a3e, 0x0a43, 0x0a59, 0x0a5d, + 0x0a6a, 0x0a74, 0x0a8d, 0x0aa3, 0x0ab0, 0x0ab5, 0x0abe, 0x0ac3, + 0x0ac8, 0x0ad3, 0x0ae8, 0x0aee, 0x0af4, 0x0af9, 0x0b02, 0x0b07, + // Entry 140 - 17F + 0x0b0c, 0x0b14, 0x0b25, 0x0b2f, 0x0b36, 0x0b40, 0x0b4f, 0x0b54, + 0x0b58, 0x0b5e, 0x0b64, 0x0b6b, 0x0b72, 0x0b7b, 0x0b83, 0x0b89, + 0x0b8f, 0x0b96, 0x0ba1, 0x0bad, 0x0bb7, 0x0bc4, 0x0bcc, 0x0bd2, + 0x0bd5, 0x0bda, 0x0bde, 0x0be9, 0x0bf0, 0x0bf4, 0x0bfb, 0x0c1d, + 0x0c24, 0x0c28, 0x0c30, 0x0c35, 0x0c3f, 0x0c4a, 0x0c50, 0x0c5b, + 0x0c5f, 0x0c67, 0x0c6f, 0x0c7d, 0x0c84, 0x0c8a, 0x0c90, 0x0ca6, + 0x0caa, 0x0cb2, 0x0cba, 0x0cc0, 0x0cc7, 0x0ccc, 0x0cdb, 0x0ce2, + 0x0ce9, 0x0cf2, 0x0cf7, 0x0cfd, 0x0d02, 0x0d0b, 0x0d1d, 0x0d27, + // Entry 180 - 1BF + 0x0d2d, 0x0d33, 0x0d3d, 0x0d42, 0x0d46, 0x0d59, 0x0d63, 0x0d6d, + 0x0d74, 0x0d79, 0x0d7c, 0x0d82, 0x0d87, 0x0d99, 0x0da1, 0x0dab, + 0x0daf, 0x0db5, 0x0dbd, 0x0dc4, 0x0dcc, 0x0dd4, 0x0dd8, 0x0dde, + 0x0de4, 0x0de9, 0x0ded, 0x0e00, 0x0e11, 0x0e16, 0x0e1a, 0x0e20, + 0x0e2a, 0x0e30, 0x0e3c, 0x0e42, 0x0e47, 0x0e58, 0x0e5f, 0x0e6e, + 0x0e73, 0x0e7c, 0x0e83, 0x0e8b, 0x0e90, 0x0e95, 0x0ea3, 0x0ead, + 0x0ebb, 0x0ebf, 0x0ecd, 0x0ed5, 0x0ed9, 0x0edd, 0x0edf, 0x0ee5, + 0x0eee, 0x0ef6, 0x0f04, 0x0f0a, 0x0f10, 0x0f20, 0x0f24, 0x0f36, + // Entry 1C0 - 1FF + 0x0f3e, 0x0f46, 0x0f4b, 0x0f50, 0x0f55, 0x0f66, 0x0f6f, 0x0f76, + 0x0f7e, 0x0f88, 0x0f8d, 0x0f98, 0x0fa5, 0x0fb1, 0x0fbc, 0x0fc7, + 0x0fce, 0x0fd7, 0x0fe0, 0x0fe9, 0x0fef, 0x1000, 0x1005, 0x101e, + 0x102a, 0x1031, 0x103a, 0x1042, 0x1049, 0x104e, 0x1057, 0x1062, + 0x106b, 0x1072, 0x107c, 0x107f, 0x1086, 0x108d, 0x10a4, 0x10ab, + 0x10b0, 0x10b7, 0x10c5, 0x10cc, 0x10d1, 0x10db, 0x10e2, 0x10eb, + 0x10ff, 0x1105, 0x1109, 0x110d, 0x1116, 0x1125, 0x1133, 0x113b, + 0x1145, 0x1149, 0x1157, 0x115d, 0x116a, 0x1171, 0x1186, 0x1194, + // Entry 200 - 23F + 0x11a3, 0x11b2, 0x11b9, 0x11c2, 0x11ce, 0x11d3, 0x11d7, 0x11ed, + 0x11f3, 0x11f7, 0x1201, 0x120b, 0x1213, 0x121b, 0x1223, 0x1227, + 0x122c, 0x1231, 0x1237, 0x123c, 0x1241, 0x1244, 0x124b, 0x1254, + 0x125f, 0x1266, 0x126e, 0x1276, 0x1283, 0x128c, 0x1292, 0x1298, + 0x12a1, 0x12aa, 0x12af, 0x12b6, 0x12bc, 0x12c3, 0x12cc, 0x12ea, + 0x12f2, 0x12fa, 0x1301, 0x130f, 0x1312, 0x1319, 0x131f, 0x1332, + 0x1345, 0x134d, 0x1352, 0x1357, 0x135d, 0x1363, 0x1368, 0x136d, + 0x1375, 0x1377, 0x1380, 0x1389, 0x138d, 0x1390, 0x1396, 0x139d, + // Entry 240 - 27F + 0x13a2, 0x13aa, 0x13b4, 0x13bd, 0x13c2, 0x13cb, 0x13d1, 0x13f2, + 0x13f6, 0x141b, 0x1421, 0x1436, 0x1436, 0x144a, 0x1466, 0x147c, + 0x1490, 0x14a3, 0x14b9, 0x14d1, 0x14e7, 0x14ff, 0x14ff, 0x1513, + 0x1528, 0x1528, 0x1532, 0x1549, 0x155f, 0x1569, 0x157a, 0x158b, + 0x15a1, 0x15b6, +} // Size: 1244 bytes + +var ptLangStr string = "" + // Size: 4263 bytes + "afarabcázioavésticoafricânerakanamáricoaragonêsárabeassamêsavaricaimaraa" + + "zerbaijanobashkirbielorrussobúlgarobislamábambarabengalitibetanobretãobó" + + "sniocatalãochechenochamorrocórsicocreetchecoeslavo eclesiásticotchuvache" + + "galêsdinamarquêsalemãodivehidzongaevegregoinglêsesperantoespanholestonia" + + "nobascopersafulafinlandêsfijianoferoêsfrancêsfrísio ocidentalirlandêsgaé" + + "lico escocêsgalegoguaraniguzeratemanxhauçáhebraicohíndihiri motucroataha" + + "itianohúngaroarmêniohererointerlínguaindonésiointerlingueibosichuan yiin" + + "upiaqueidoislandêsitalianoinuktitutjaponêsjavanêsgeorgianocongolêsquicui" + + "okuanyamacazaquegroenlandêskhmercanarêscoreanocanúricaxemiracurdokomicór" + + "nicoquirguizlatimluxemburguêslugandalimburguêslingalalaosianolituanoluba" + + "-catangaletãomalgaxemarshalêsmaorimacedôniomalaialamongolmaratamalaiomal" + + "têsbirmanêsnauruanondebele do nortenepalidongoholandêsnynorsk norueguêsb" + + "okmÃ¥l norueguêsndebele do sulnavajonianjaoccitânicoojibwaoromooriyaosset" + + "icpanjabipálipolonêspashtoportuguêsquíchuaromancherundiromenorussoquinia" + + "ruandasânscritosardosindisami do nortesangocingalêseslovacoeslovenosamoa" + + "noshonasomalialbanêssérvioswatisoto do sulsundanêssuecosuaílitâmiltelugu" + + "tajiquetailandêstigríniaturcomenotswanatonganêsturcotsongatatartaitianou" + + "igurucranianourduusbequevendavietnamitavolapuquevalãouólofexosaiídicheio" + + "rubazhuangchinêszuluachémacoliadangmeadigueafrihiliaghemainuacadianoaleú" + + "tealtai do sulinglês arcaicoangikaaramaicomapudungunarapahoarauaquiasuas" + + "turianoawadhibalúchibalinêsbasabamumghomala’bejabembabenabafutbalúchi oc" + + "identalbhojpuribikolbinikomsiksikabrajbodoakooseburiatbuginêsbulublinmed" + + "umbacaddocaribecayugaatsamcebuanochigachibchachagataichuukesemarichinook" + + " jargonchoctawchipewyancherokeecheienesorâni curdocoptaturco da Crimeiak" + + "ashubiandacotadargwataitadelawareslavedogribdinkazarmadogrisorábio baixo" + + "dualaholandês médiojola-fonyidiúladazagaembuefiqueegípcio arcaicoekajuke" + + "lamiteinglês médioewondofanguefilipinofomfrancês médiofrancês arcaicofrí" + + "sio setentrionalfrisão orientalfriulanogagagauzgayogbaiageezgilbertêsale" + + "mão médio-altoalemão arcaico altogondigorontalogóticogrebogrego arcaicoa" + + "lemão suíçogusiigwichʼinhaidahavaianohiligaynonhititahmongsorábio altohu" + + "paibanibibioilocanoinguchelojbannguembamachamejudaico-persajudaico-arábi" + + "cokara-kalpakkabylekachinjjukambakawikabardianokanembutyapmacondekabuver" + + "dianukorokhasikhotanêskoyra chiinikakokalenjinquimbundokomi-permyakconca" + + "nikosraeankpellekarachay-balkaridioma caréliokurukhshambalabafiakölschku" + + "mykkutenailadinolangilahndalambalezghianlacotamongoloziluri setentrional" + + "luba-lulualuisenolundaluolushailuyiamadurêsmafamagahimaithilimakasarmand" + + "ingamassaimabamocsamandarmendemerumorisyenirlandês médiomacuameta’miquem" + + "aqueminangkabaumanchumanipurimoicanomossimundangidiomas múltiploscreekmi" + + "randêsmarwarimyeneerzyamazandaraninapolitanonamabaixo alemãonewariniasni" + + "ueanokwasiongiemboonnogainórdico arcaicon’kosoto setentrionalnuernewari " + + "clássiconyamwezinyankolenyoronzimaosageturco otomanopangasinãpálavipampa" + + "ngapapiamentopalauanopersa arcaicofeníciopohnpeianprovençal arcaicoquich" + + "érajastanirapanuirarotonganoromboromaniaromenorwasandaweiacutoaramaico " + + "samaritanosamburusasaksantalingambaysangusicilianoescocêscurdo meridiona" + + "lsenecasenaselkupkoyraboro senniirlandês arcaicotachelhitshanárabe chadi" + + "anosidamosami do sulsami de Lulesami de Inarisami de Skoltsoninquêsogdia" + + "noidioma surinamêssereresahosukumasossosumériocomorianosiríaco clássicos" + + "iríacotimnetesoterenotétumtigrétivtoquelauanoklingontlinguitetamaxequeto" + + "nganês de Nyasatok pisintarokotsimshiantumbukatuvaluanotasawaqtuvinianot" + + "amazight do Atlas Centraludmurtugaríticoumbunduidioma desconhecidovaivot" + + "icvunjowalserwalamowaraywashowarlpirikalmyklusogayaoyapeseyangbenyembaca" + + "ntonêszapotecasímbolos bliszenagatamazight marroquino padrãozunhisem con" + + "teúdo linguísticozazaárabe modernoazeri sulalemão austríacoalto alemão s" + + "uíçoinglês australianoinglês canadenseinglês britânicoinglês americanoes" + + "panhol latino-americanoespanhol europeuespanhol mexicanofrancês canadens" + + "efrancês suíçobaixo-saxãoflamengoportuguês do Brasilportuguês europeumol" + + "dávioservo-croatasuaíli do Congochinês simplificadochinês tradicional" + +var ptLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000c, 0x0015, 0x001f, 0x0023, 0x002b, 0x0034, + 0x003a, 0x0042, 0x0048, 0x004e, 0x0059, 0x0060, 0x006b, 0x0073, + 0x007b, 0x0082, 0x0089, 0x0091, 0x0098, 0x009f, 0x00a7, 0x00af, + 0x00b7, 0x00bf, 0x00c3, 0x00c9, 0x00dd, 0x00e6, 0x00ec, 0x00f8, + 0x00ff, 0x0105, 0x010b, 0x010e, 0x0113, 0x011a, 0x0123, 0x012b, + 0x0134, 0x0139, 0x013e, 0x0142, 0x014c, 0x0153, 0x015a, 0x0162, + 0x0173, 0x017c, 0x018d, 0x0193, 0x019a, 0x01a2, 0x01a6, 0x01ad, + 0x01b5, 0x01bb, 0x01c4, 0x01ca, 0x01d2, 0x01da, 0x01e2, 0x01e8, + // Entry 40 - 7F + 0x01f4, 0x01fe, 0x0209, 0x020c, 0x0216, 0x021f, 0x0222, 0x022b, + 0x0233, 0x023c, 0x0244, 0x024c, 0x0255, 0x025e, 0x0265, 0x026d, + 0x0274, 0x0280, 0x0285, 0x028d, 0x0294, 0x029b, 0x02a3, 0x02a8, + 0x02ac, 0x02b4, 0x02bc, 0x02c1, 0x02ce, 0x02d5, 0x02e0, 0x02e7, + 0x02ef, 0x02f6, 0x0302, 0x0308, 0x030f, 0x0319, 0x031e, 0x0328, + 0x0330, 0x0336, 0x033c, 0x0342, 0x0349, 0x0352, 0x035a, 0x036a, + 0x0370, 0x0375, 0x037e, 0x0390, 0x03a2, 0x03b0, 0x03b6, 0x03bc, + 0x03c7, 0x03cd, 0x03d2, 0x03d7, 0x03de, 0x03e5, 0x03ea, 0x03f2, + // Entry 80 - BF + 0x03f8, 0x0402, 0x040a, 0x0412, 0x0417, 0x041d, 0x0422, 0x042e, + 0x0438, 0x043d, 0x0442, 0x044f, 0x0454, 0x045d, 0x0465, 0x046d, + 0x0474, 0x0479, 0x047f, 0x0487, 0x048e, 0x0493, 0x049e, 0x04a7, + 0x04ac, 0x04b3, 0x04b9, 0x04bf, 0x04c6, 0x04d0, 0x04d9, 0x04e2, + 0x04e8, 0x04f1, 0x04f6, 0x04fc, 0x0501, 0x0509, 0x050e, 0x0517, + 0x051b, 0x0522, 0x0527, 0x0531, 0x053a, 0x0540, 0x0547, 0x054b, + 0x0553, 0x0559, 0x055f, 0x0566, 0x056a, 0x0570, 0x0575, 0x057c, + 0x0582, 0x0582, 0x058a, 0x058f, 0x0593, 0x059b, 0x059b, 0x05a2, + // Entry C0 - FF + 0x05a2, 0x05ae, 0x05bd, 0x05c3, 0x05cb, 0x05d5, 0x05d5, 0x05dc, + 0x05dc, 0x05e4, 0x05e4, 0x05e4, 0x05e7, 0x05e7, 0x05f0, 0x05f0, + 0x05f6, 0x05fe, 0x0606, 0x0606, 0x060a, 0x060f, 0x060f, 0x0619, + 0x061d, 0x0622, 0x0622, 0x0626, 0x062b, 0x062b, 0x063d, 0x0645, + 0x064a, 0x064e, 0x064e, 0x0651, 0x0658, 0x0658, 0x0658, 0x065c, + 0x065c, 0x0660, 0x0666, 0x066c, 0x0674, 0x0678, 0x067c, 0x0683, + 0x0688, 0x068e, 0x0694, 0x0699, 0x06a0, 0x06a5, 0x06ac, 0x06b4, + 0x06bc, 0x06c0, 0x06ce, 0x06d5, 0x06de, 0x06e6, 0x06ed, 0x06fa, + // Entry 100 - 13F + 0x06ff, 0x06ff, 0x070f, 0x0718, 0x071e, 0x0724, 0x0729, 0x0731, + 0x0736, 0x073c, 0x0741, 0x0746, 0x074b, 0x0759, 0x0759, 0x075e, + 0x076e, 0x0778, 0x077e, 0x0784, 0x0788, 0x078e, 0x078e, 0x079e, + 0x07a4, 0x07ab, 0x07b9, 0x07b9, 0x07bf, 0x07bf, 0x07c5, 0x07cd, + 0x07cd, 0x07d0, 0x07d0, 0x07df, 0x07ef, 0x07ef, 0x0803, 0x0813, + 0x081b, 0x081d, 0x0823, 0x0823, 0x0827, 0x082c, 0x082c, 0x0830, + 0x083a, 0x083a, 0x084d, 0x0861, 0x0861, 0x0866, 0x086f, 0x0876, + 0x087b, 0x0888, 0x0897, 0x0897, 0x0897, 0x089c, 0x08a5, 0x08aa, + // Entry 140 - 17F + 0x08aa, 0x08b2, 0x08b2, 0x08bc, 0x08c2, 0x08c7, 0x08d4, 0x08d4, + 0x08d8, 0x08dc, 0x08e2, 0x08e9, 0x08f0, 0x08f0, 0x08f0, 0x08f6, + 0x08fd, 0x0904, 0x0911, 0x0921, 0x0921, 0x092c, 0x0932, 0x0938, + 0x093b, 0x0940, 0x0944, 0x094e, 0x0955, 0x0959, 0x0960, 0x096c, + 0x096c, 0x0970, 0x0970, 0x0975, 0x097e, 0x098a, 0x098a, 0x098a, + 0x098e, 0x0996, 0x099f, 0x09ab, 0x09b2, 0x09ba, 0x09c0, 0x09cf, + 0x09cf, 0x09cf, 0x09de, 0x09e4, 0x09ec, 0x09f1, 0x09f8, 0x09fd, + 0x0a04, 0x0a0a, 0x0a0f, 0x0a15, 0x0a1a, 0x0a22, 0x0a22, 0x0a22, + // Entry 180 - 1BF + 0x0a22, 0x0a28, 0x0a28, 0x0a2d, 0x0a31, 0x0a42, 0x0a42, 0x0a4c, + 0x0a53, 0x0a58, 0x0a5b, 0x0a61, 0x0a66, 0x0a66, 0x0a66, 0x0a6e, + 0x0a72, 0x0a78, 0x0a80, 0x0a87, 0x0a8f, 0x0a95, 0x0a99, 0x0a9e, + 0x0aa4, 0x0aa9, 0x0aad, 0x0ab5, 0x0ac5, 0x0aca, 0x0ad1, 0x0adb, + 0x0ae6, 0x0aec, 0x0af4, 0x0afb, 0x0b00, 0x0b00, 0x0b07, 0x0b19, + 0x0b1e, 0x0b27, 0x0b2e, 0x0b2e, 0x0b33, 0x0b38, 0x0b43, 0x0b43, + 0x0b4d, 0x0b51, 0x0b5e, 0x0b64, 0x0b68, 0x0b6f, 0x0b6f, 0x0b75, + 0x0b7e, 0x0b83, 0x0b93, 0x0b93, 0x0b99, 0x0baa, 0x0bae, 0x0bbe, + // Entry 1C0 - 1FF + 0x0bc6, 0x0bce, 0x0bd3, 0x0bd8, 0x0bdd, 0x0bea, 0x0bf4, 0x0bfb, + 0x0c03, 0x0c0d, 0x0c15, 0x0c15, 0x0c15, 0x0c15, 0x0c22, 0x0c22, + 0x0c2a, 0x0c2a, 0x0c2a, 0x0c33, 0x0c33, 0x0c45, 0x0c4c, 0x0c4c, + 0x0c55, 0x0c5c, 0x0c67, 0x0c67, 0x0c67, 0x0c6c, 0x0c72, 0x0c72, + 0x0c72, 0x0c72, 0x0c79, 0x0c7c, 0x0c83, 0x0c89, 0x0c9c, 0x0ca3, + 0x0ca8, 0x0caf, 0x0caf, 0x0cb6, 0x0cbb, 0x0cc4, 0x0ccc, 0x0ccc, + 0x0cdc, 0x0ce2, 0x0ce6, 0x0ce6, 0x0cec, 0x0cfb, 0x0d0c, 0x0d0c, + 0x0d15, 0x0d19, 0x0d28, 0x0d2e, 0x0d2e, 0x0d2e, 0x0d39, 0x0d45, + // Entry 200 - 23F + 0x0d52, 0x0d5f, 0x0d68, 0x0d70, 0x0d81, 0x0d87, 0x0d8b, 0x0d8b, + 0x0d91, 0x0d96, 0x0d9e, 0x0da7, 0x0db9, 0x0dc1, 0x0dc1, 0x0dc1, + 0x0dc6, 0x0dca, 0x0dd0, 0x0dd6, 0x0ddc, 0x0ddf, 0x0dea, 0x0dea, + 0x0df1, 0x0dfa, 0x0dfa, 0x0e03, 0x0e15, 0x0e1e, 0x0e1e, 0x0e24, + 0x0e24, 0x0e2d, 0x0e2d, 0x0e34, 0x0e3d, 0x0e44, 0x0e4d, 0x0e67, + 0x0e6d, 0x0e77, 0x0e7e, 0x0e91, 0x0e94, 0x0e94, 0x0e94, 0x0e94, + 0x0e94, 0x0e99, 0x0e99, 0x0e9e, 0x0ea4, 0x0eaa, 0x0eaf, 0x0eb4, + 0x0ebc, 0x0ebc, 0x0ec2, 0x0ec2, 0x0ec8, 0x0ecb, 0x0ed1, 0x0ed8, + // Entry 240 - 27F + 0x0edd, 0x0edd, 0x0ee6, 0x0eee, 0x0efc, 0x0efc, 0x0f02, 0x0f1e, + 0x0f23, 0x0f3d, 0x0f41, 0x0f4f, 0x0f58, 0x0f6a, 0x0f7e, 0x0f91, + 0x0fa2, 0x0fb4, 0x0fc5, 0x0fde, 0x0fee, 0x0fff, 0x0fff, 0x1011, + 0x1021, 0x102d, 0x1035, 0x1049, 0x105b, 0x1064, 0x1070, 0x1080, + 0x1094, 0x10a7, +} // Size: 1244 bytes + +var ptPTLangStr string = "" + // Size: 591 bytes + "africânderchecochuvasheweestóniofrísico ocidentalhaúçahindiarménioigboco" + + "nguêscanarimgandamacedónionorueguês nynorsknorueguês bokmÃ¥lprovençalossé" + + "ticopolacopastókinyarwandaturcomanotongamapuchebamunghomalajargão chinoo" + + "ksorani curdobaixo sórabioegípcio clássicoinglês medievalfrancês medieva" + + "lfrísio orientalalemão medieval altogrego clássicoalto sórabiocabo-verdi" + + "anolezghianoluri do norteluoirlandês, medievalmohawkbaixo-alemãoromanêss" + + "akhaárabe do Chadelule samiinari samiskolt samirootvaisogaárabe moderno " + + "padrãoazeri meridionalinglês canadianofrancês canadiano" + +var ptPTLangIdx = []uint16{ // 600 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x0010, 0x0010, 0x0017, 0x0017, 0x0017, + 0x0017, 0x0017, 0x0017, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x003b, + 0x003b, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0048, 0x0048, + // Entry 40 - 7F + 0x0048, 0x0048, 0x0048, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x0060, 0x0060, 0x0060, + 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x006a, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x006a, 0x007c, 0x008e, 0x008e, 0x008e, 0x008e, + 0x0098, 0x0098, 0x0098, 0x0098, 0x00a1, 0x00a1, 0x00a1, 0x00a7, + // Entry 80 - BF + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00b8, + 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, + 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, + 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00c1, + 0x00c1, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + // Entry C0 - FF + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00d2, 0x00d2, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00f4, + // Entry 100 - 13F + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x0102, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0114, + 0x0114, 0x0114, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, + 0x0124, 0x0124, 0x0124, 0x0135, 0x0135, 0x0135, 0x0135, 0x0145, + 0x0145, 0x0145, 0x0145, 0x0145, 0x0145, 0x0145, 0x0145, 0x0145, + 0x0145, 0x0145, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, 0x015a, + 0x015a, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, + // Entry 140 - 17F + 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0169, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0183, + 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, + 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, + 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, + 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x018c, 0x018c, 0x018c, + // Entry 180 - 1BF + 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x0199, 0x0199, 0x0199, + 0x0199, 0x0199, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, + 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, 0x019c, + 0x019c, 0x019c, 0x019c, 0x019c, 0x01af, 0x01af, 0x01af, 0x01af, + 0x01af, 0x01af, 0x01af, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, + 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, 0x01b5, + 0x01b5, 0x01b5, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + // Entry 1C0 - 1FF + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01ca, 0x01ca, + 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01ca, 0x01cf, 0x01cf, 0x01cf, + 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, + 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, 0x01cf, + 0x01cf, 0x01cf, 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01e7, + // Entry 200 - 23F + 0x01f1, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01ff, 0x0202, 0x0202, 0x0202, 0x0202, + 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, + 0x0202, 0x0202, 0x0202, 0x0202, 0x0206, 0x0206, 0x0206, 0x0206, + // Entry 240 - 27F + 0x0206, 0x0206, 0x0206, 0x0206, 0x0206, 0x0206, 0x0206, 0x0206, + 0x0206, 0x0206, 0x0206, 0x021c, 0x022c, 0x022c, 0x022c, 0x022c, + 0x023d, 0x023d, 0x023d, 0x023d, 0x023d, 0x023d, 0x023d, 0x024f, +} // Size: 1224 bytes + +var roLangStr string = "" + // Size: 4388 bytes + "afarabhazăavestanăafrikaansakanamharicăaragonezăarabăasamezăavarăaymaraa" + + "zerăbaÈ™kirăbielorusăbulgarăbislamabambarabengalezătibetanăbretonăbosniac" + + "ăcatalanăcecenăchamorrocorsicanăcreecehăslavonăciuvașăgalezădanezăgerma" + + "nădivehidzongkhaewegreacăenglezăesperantospaniolăestonianăbascăpersanăfu" + + "lahfinlandezăfijianăfaroezăfrancezăfrizonă occidentalăirlandezăgaelică s" + + "coÈ›ianăgalicianăguaranigujaratimanxhausaebraicăhindihiri motucroatăhaiti" + + "anămaghiarăarmeanăhererointerlinguaindonezianăinterlingueigbosichuan yii" + + "nupiakidoislandezăitalianăinuktitutjaponezăjavanezăgeorgianăcongolezăkik" + + "uyukuanyamakazahăkalaallisutkhmerăkannadacoreeanăkanuricaÈ™mirăkurdăkomic" + + "ornicăkârgâzălatinăluxemburghezăgandalimburghezălingalalaoÈ›ianălituanian" + + "ăluba-katangaletonămalgașămarshallezămaorimacedoneanămalayalammongolăma" + + "rathimalaezămaltezăbirmanezănaurundebele de nordnepalezăndonganeerlandez" + + "ănorvegiană nynorsknorvegiană bokmÃ¥lndebele de sudnavajonyanjaoccitanăo" + + "jibwaoromooriyaosetăpunjabipalipolonezăpaÈ™tunăportughezăquechuaromanșăki" + + "rundiromânărusăkinyarwandasanscrităsardinianăsindhisami de nordsangosing" + + "halezăslovacăslovenăsamoanăshonasomalezăalbanezăsârbăswatisesothosundane" + + "zăsuedezăswahilitamilătelugutadjicăthailandezătigrinăturkmenăsetswanaton" + + "gaturcătsongatătarătahitianăuigurăucraineanăurduuzbecăvendavietnamezăvol" + + "apukvalonăwolofxhosaidiÈ™yorubazhuangchinezăzuluacehacoliadangmeadygheafr" + + "ihiliaghemainuakkadianăaleutăaltaică meridionalăengleză vecheangikaarama" + + "icămapuchearapahoarawakasuasturianăawadhibaluchibalinezăbasaabamunghomal" + + "abejabembabenabafutbaluchi occidentalăbhojpuribikolbinikomsiksikabrajbod" + + "oakooseburiatbuginezăbulublinmedumbacaddocaribcayugaatsamcebuanochigachi" + + "bchachagataichuukesemarijargon chinookchoctawchipewyancherokeecheyenneku" + + "rdă soranicoptăturcă crimeeanăcaÈ™ubianădakotadargwataitadelawareslavedog" + + "ribdinkazarmadogrisorabă de josdualaolandeză mijlociejola-fonyidyuladaza" + + "gaembuefikegipteană vecheekajukelamităengleză mijlocieewondofangfilipine" + + "zăfonfranceză mijlociefranceză vechefrizonă nordicăfrizonă orientalăfriu" + + "lanăgagăgăuzăgayogbayageezgilbertinăgermană mijlocie înaltăgermană veche" + + " înaltăgondigorontalogoticăgrebogreacă vechegermană elveÈ›ianăgusiigwichʼ" + + "inhaidahawaiianăhiligaynonhitităhmongsorabă de sushupaibanibibioilokoing" + + "ușălojbanngombamachameiudeo-persanăiudeo-arabăkarakalpakkabylekachinjjuk" + + "ambakawikabardiankanembutyapmakondekabuverdianukorokhasilimbp khotanezăk" + + "oyra chiinikakokalenjinkimbundukomi-permiakkonkanikosraekpellekaraceai-b" + + "alkarkarelianăkurukhshambalabafiakölschkumykkutenailadinolangilahndalamb" + + "alezghianlakotamongoloziluri de nordluba-lulualuisenolundaluolusahiluyia" + + "madurezămafamagahimaithilimakasarmandingomasaimabamokshamandarmendemerum" + + "orisyenirlandeză mijlociemakhuwa-meettometa’micmacminangkabaumanciuriană" + + "manipurmohawkmossimundanglimbi multiplecreekmirandezămarwarimyeneerzyama" + + "zanderaninapolitanănamagermana de josnewariniasniueanăkwasiongiemboonnog" + + "ainordică vechen’kosotho de nordnuernewari clasicănyamwezinyankolenyoron" + + "zimaosageturcă otomanăpangasinanpahlavipampangapapiamentopalauanăpersană" + + " vechefenicianăpohnpeianăprovensală vechequichérajasthanirapanuirarotong" + + "anromboromaniaromânărwasandawesakhaaramaică samariteanăsamburusasaksanta" + + "lingambaysangusicilianăscotskurdă de sudsenecasenaselkupkoyraboro Sennii" + + "rlandeză vechetachelhitshanarabă ciadianăsidamosami de sudlule samiinari" + + " samiskolt samisoninkesogdiensranan tongoserersahosukumasususumerianăcom" + + "orezăsiriacă clasicăsiriacătimnetesoterenotetumtigretivtokelauklingonian" + + "ătlingittamasheknyasa tongatok pisintarokotsimshiantumbukatuvalutasawaq" + + "tuvanătamazight central marocanăudmurtugariticăumbundurootvaivoticvunjow" + + "alserwalamowaraywashowarlpiricalmucăsogayaoyapezăyangbenyembacantonezăza" + + "potecăsimboluri Bilsszenagatamazight standard marocanăzunifară conÈ›inut " + + "lingvisticzazaarabă standard modernăgermană austriacăgermană standard el" + + "veÈ›ianăengleză australianăengleză canadianăengleză britanicăengleză amer" + + "icanăspaniolă latino-americanăspaniolă europeanăspaniolă mexicanăfrancez" + + "ă canadianăfranceză elveÈ›ianăsaxona de josflamandăportugheză braziliană" + + "portugheză europeanămoldoveneascăsârbo-croatăswahili Congochineză simpli" + + "ficatăchineză tradiÈ›ională" + +var roLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000b, 0x0014, 0x001d, 0x0021, 0x002a, 0x0034, + 0x003a, 0x0042, 0x0048, 0x004e, 0x0054, 0x005d, 0x0067, 0x006f, + 0x0076, 0x007d, 0x0087, 0x0090, 0x0098, 0x00a1, 0x00aa, 0x00b1, + 0x00b9, 0x00c3, 0x00c7, 0x00cc, 0x00d4, 0x00dd, 0x00e4, 0x00eb, + 0x00f3, 0x00f9, 0x0101, 0x0104, 0x010b, 0x0113, 0x011c, 0x0125, + 0x012f, 0x0135, 0x013d, 0x0142, 0x014d, 0x0155, 0x015d, 0x0166, + 0x017b, 0x0185, 0x0198, 0x01a2, 0x01a9, 0x01b1, 0x01b5, 0x01ba, + 0x01c2, 0x01c7, 0x01d0, 0x01d7, 0x01e0, 0x01e9, 0x01f1, 0x01f7, + // Entry 40 - 7F + 0x0202, 0x020e, 0x0219, 0x021d, 0x0227, 0x022e, 0x0231, 0x023b, + 0x0244, 0x024d, 0x0256, 0x025f, 0x0269, 0x0273, 0x0279, 0x0281, + 0x0288, 0x0293, 0x029a, 0x02a1, 0x02aa, 0x02b0, 0x02b9, 0x02bf, + 0x02c3, 0x02cb, 0x02d5, 0x02dc, 0x02ea, 0x02ef, 0x02fb, 0x0302, + 0x030c, 0x0317, 0x0323, 0x032a, 0x0333, 0x033f, 0x0344, 0x0350, + 0x0359, 0x0361, 0x0368, 0x0370, 0x0378, 0x0382, 0x0387, 0x0396, + 0x039f, 0x03a5, 0x03b1, 0x03c4, 0x03d7, 0x03e5, 0x03eb, 0x03f1, + 0x03fa, 0x0400, 0x0405, 0x040a, 0x0410, 0x0417, 0x041b, 0x0424, + // Entry 80 - BF + 0x042d, 0x0438, 0x043f, 0x0448, 0x044f, 0x0457, 0x045c, 0x0467, + 0x0471, 0x047c, 0x0482, 0x048e, 0x0493, 0x049e, 0x04a6, 0x04ae, + 0x04b6, 0x04bb, 0x04c4, 0x04cd, 0x04d4, 0x04d9, 0x04e0, 0x04ea, + 0x04f2, 0x04f9, 0x0500, 0x0506, 0x050e, 0x051a, 0x0522, 0x052b, + 0x0533, 0x0538, 0x053e, 0x0544, 0x054c, 0x0556, 0x055d, 0x0568, + 0x056c, 0x0573, 0x0578, 0x0583, 0x058a, 0x0591, 0x0596, 0x059b, + 0x05a0, 0x05a6, 0x05ac, 0x05b4, 0x05b8, 0x05bc, 0x05c1, 0x05c8, + 0x05ce, 0x05ce, 0x05d6, 0x05db, 0x05df, 0x05e9, 0x05e9, 0x05f0, + // Entry C0 - FF + 0x05f0, 0x0605, 0x0613, 0x0619, 0x0622, 0x0629, 0x0629, 0x0630, + 0x0630, 0x0636, 0x0636, 0x0636, 0x0639, 0x0639, 0x0643, 0x0643, + 0x0649, 0x0650, 0x0659, 0x0659, 0x065e, 0x0663, 0x0663, 0x066a, + 0x066e, 0x0673, 0x0673, 0x0677, 0x067c, 0x067c, 0x0690, 0x0698, + 0x069d, 0x06a1, 0x06a1, 0x06a4, 0x06ab, 0x06ab, 0x06ab, 0x06af, + 0x06af, 0x06b3, 0x06b9, 0x06bf, 0x06c8, 0x06cc, 0x06d0, 0x06d7, + 0x06dc, 0x06e1, 0x06e7, 0x06ec, 0x06f3, 0x06f8, 0x06ff, 0x0707, + 0x070f, 0x0713, 0x0721, 0x0728, 0x0731, 0x0739, 0x0741, 0x074e, + // Entry 100 - 13F + 0x0754, 0x0754, 0x0765, 0x0770, 0x0776, 0x077c, 0x0781, 0x0789, + 0x078e, 0x0794, 0x0799, 0x079e, 0x07a3, 0x07b1, 0x07b1, 0x07b6, + 0x07c8, 0x07d2, 0x07d7, 0x07dd, 0x07e1, 0x07e5, 0x07e5, 0x07f5, + 0x07fb, 0x0803, 0x0814, 0x0814, 0x081a, 0x081a, 0x081e, 0x0829, + 0x0829, 0x082c, 0x082c, 0x083e, 0x084d, 0x084d, 0x085e, 0x0871, + 0x087a, 0x087c, 0x0886, 0x0886, 0x088a, 0x088f, 0x088f, 0x0893, + 0x089e, 0x089e, 0x08b8, 0x08cf, 0x08cf, 0x08d4, 0x08dd, 0x08e4, + 0x08e9, 0x08f6, 0x090a, 0x090a, 0x090a, 0x090f, 0x0918, 0x091d, + // Entry 140 - 17F + 0x091d, 0x0927, 0x0927, 0x0931, 0x0938, 0x093d, 0x094b, 0x094b, + 0x094f, 0x0953, 0x0959, 0x095e, 0x0966, 0x0966, 0x0966, 0x096c, + 0x0972, 0x0979, 0x0987, 0x0993, 0x0993, 0x099d, 0x09a3, 0x09a9, + 0x09ac, 0x09b1, 0x09b5, 0x09be, 0x09c5, 0x09c9, 0x09d0, 0x09dc, + 0x09dc, 0x09e0, 0x09e0, 0x09e5, 0x09f5, 0x0a01, 0x0a01, 0x0a01, + 0x0a05, 0x0a0d, 0x0a15, 0x0a21, 0x0a28, 0x0a2e, 0x0a34, 0x0a43, + 0x0a43, 0x0a43, 0x0a4d, 0x0a53, 0x0a5b, 0x0a60, 0x0a67, 0x0a6c, + 0x0a73, 0x0a79, 0x0a7e, 0x0a84, 0x0a89, 0x0a91, 0x0a91, 0x0a91, + // Entry 180 - 1BF + 0x0a91, 0x0a97, 0x0a97, 0x0a9c, 0x0aa0, 0x0aac, 0x0aac, 0x0ab6, + 0x0abd, 0x0ac2, 0x0ac5, 0x0acb, 0x0ad0, 0x0ad0, 0x0ad0, 0x0ad9, + 0x0add, 0x0ae3, 0x0aeb, 0x0af2, 0x0afa, 0x0aff, 0x0b03, 0x0b09, + 0x0b0f, 0x0b14, 0x0b18, 0x0b20, 0x0b33, 0x0b41, 0x0b48, 0x0b4e, + 0x0b59, 0x0b65, 0x0b6c, 0x0b72, 0x0b77, 0x0b77, 0x0b7e, 0x0b8c, + 0x0b91, 0x0b9b, 0x0ba2, 0x0ba2, 0x0ba7, 0x0bac, 0x0bb7, 0x0bb7, + 0x0bc2, 0x0bc6, 0x0bd4, 0x0bda, 0x0bde, 0x0be6, 0x0be6, 0x0bec, + 0x0bf5, 0x0bfa, 0x0c08, 0x0c08, 0x0c0e, 0x0c1b, 0x0c1f, 0x0c2e, + // Entry 1C0 - 1FF + 0x0c36, 0x0c3e, 0x0c43, 0x0c48, 0x0c4d, 0x0c5c, 0x0c66, 0x0c6d, + 0x0c75, 0x0c7f, 0x0c88, 0x0c88, 0x0c88, 0x0c88, 0x0c96, 0x0c96, + 0x0ca0, 0x0ca0, 0x0ca0, 0x0cab, 0x0cab, 0x0cbc, 0x0cc3, 0x0cc3, + 0x0ccd, 0x0cd4, 0x0cde, 0x0cde, 0x0cde, 0x0ce3, 0x0ce9, 0x0ce9, + 0x0ce9, 0x0ce9, 0x0cf2, 0x0cf5, 0x0cfc, 0x0d01, 0x0d17, 0x0d1e, + 0x0d23, 0x0d2a, 0x0d2a, 0x0d31, 0x0d36, 0x0d40, 0x0d45, 0x0d45, + 0x0d52, 0x0d58, 0x0d5c, 0x0d5c, 0x0d62, 0x0d71, 0x0d81, 0x0d81, + 0x0d8a, 0x0d8e, 0x0d9e, 0x0da4, 0x0da4, 0x0da4, 0x0daf, 0x0db8, + // Entry 200 - 23F + 0x0dc2, 0x0dcc, 0x0dd3, 0x0dda, 0x0de6, 0x0deb, 0x0def, 0x0def, + 0x0df5, 0x0df9, 0x0e03, 0x0e0c, 0x0e1d, 0x0e25, 0x0e25, 0x0e25, + 0x0e2a, 0x0e2e, 0x0e34, 0x0e39, 0x0e3e, 0x0e41, 0x0e48, 0x0e48, + 0x0e54, 0x0e5b, 0x0e5b, 0x0e63, 0x0e6e, 0x0e77, 0x0e77, 0x0e7d, + 0x0e7d, 0x0e86, 0x0e86, 0x0e8d, 0x0e93, 0x0e9a, 0x0ea1, 0x0ebc, + 0x0ec2, 0x0ecc, 0x0ed3, 0x0ed7, 0x0eda, 0x0eda, 0x0eda, 0x0eda, + 0x0eda, 0x0edf, 0x0edf, 0x0ee4, 0x0eea, 0x0ef0, 0x0ef5, 0x0efa, + 0x0f02, 0x0f02, 0x0f0a, 0x0f0a, 0x0f0e, 0x0f11, 0x0f18, 0x0f1f, + // Entry 240 - 27F + 0x0f24, 0x0f24, 0x0f2e, 0x0f37, 0x0f46, 0x0f46, 0x0f4c, 0x0f68, + 0x0f6c, 0x0f86, 0x0f8a, 0x0fa2, 0x0fa2, 0x0fb5, 0x0fd2, 0x0fe7, + 0x0ffa, 0x100d, 0x1020, 0x103b, 0x104f, 0x1062, 0x1062, 0x1076, + 0x108b, 0x1098, 0x10a1, 0x10b8, 0x10ce, 0x10dc, 0x10ea, 0x10f7, + 0x110d, 0x1124, +} // Size: 1244 bytes + +var ruLangStr string = "" + // Size: 9370 bytes + "афарабхазÑкийавеÑтийÑкийафрикаанÑаканамхарÑкийарагонÑкийарабÑкийаÑÑамÑки" + + "йаварÑкийаймараазербайджанÑкийбашкирÑкийбелоруÑÑкийболгарÑкийбиÑламабам" + + "барийÑкийбенгальÑкийтибетÑкийбретонÑкийбоÑнийÑкийкаталанÑкийчеченÑкийча" + + "моррокорÑиканÑкийкриийÑкийчешÑкийцерковноÑлавÑнÑкийчувашÑкийваллийÑкийд" + + "атÑкийнемецкиймальдивÑкийдзонг-кÑÑвегречеÑкийанглийÑкийÑÑперантоиÑпанÑк" + + "ийÑÑтонÑкийбаÑкÑкийперÑидÑкийфулахфинÑкийфиджифарерÑкийфранцузÑкийзапад" + + "но-фризÑкийирландÑкийгÑльÑкийгалиÑийÑкийгуаранигуджаратимÑнÑкийхауÑаивр" + + "итхиндихиримотухорватÑкийгаитÑнÑкийвенгерÑкийармÑнÑкийгерероинтерлингва" + + "индонезийÑкийинтерлингвеигбоÑычуаньинупиакидоиÑландÑкийитальÑнÑкийинукт" + + "итутÑпонÑкийÑванÑкийгрузинÑкийконгокикуйюкунамаказахÑкийгренландÑкийкхм" + + "ерÑкийканнадакорейÑкийканурикашмирикурдÑкийкомикорнийÑкийкиргизÑкийлати" + + "нÑкийлюкÑембургÑкийгандалимбургÑкийлингалалаоÑÑкийлитовÑкийлуба-катанга" + + "латышÑкиймалагаÑийÑкиймаршалльÑкиймаоримакедонÑкиймалаÑламмонгольÑкийма" + + "ратхималайÑкиймальтийÑкийбирманÑкийнауруÑеверный ндебелинепальÑкийндонг" + + "анидерландÑкийнорвежÑкий нюнорÑкнорвежÑкий букмолндебели южныйнавахоньÑ" + + "нджаокÑитанÑкийоджибваоромоориÑоÑетинÑкийпанджабипалипольÑкийпуштупорту" + + "гальÑкийкечуароманшÑкийрундирумынÑкийруÑÑкийкиньÑруандаÑанÑкритÑардинÑк" + + "ийÑиндхиÑеверноÑаамÑкийÑангоÑингальÑкийÑловацкийÑловенÑкийÑамоанÑкийшон" + + "аÑомалиалбанÑкийÑербÑкийÑвазиÑото южныйÑунданÑкийшведÑкийÑуахилитамильÑ" + + "кийтелугутаджикÑкийтайÑкийтигриньÑтуркменÑкийтÑванатонганÑкийтурецкийтÑ" + + "онгататарÑкийтаитÑнÑкийуйгурÑкийукраинÑкийурдуузбекÑкийвендавьетнамÑкий" + + "волапюкваллонÑкийволофкоÑаидишйорубачжуанькитайÑкийзулуачехÑкийачолиада" + + "нгмеадыгейÑкийафрихилиагхемайнуаккадÑкийалеутÑкийюжноалтайÑкийÑтароангл" + + "ийÑкийангикаарамейÑкийарауканÑкийарапахоаравакÑкийаÑуаÑтурийÑкийавадхиб" + + "елуджÑкийбалийÑкийбаÑабамумгхомалабеджабембабенабафутзападно-белуджÑкий" + + "бходжпурибикольÑкийбиникомÑикÑикабрауибодоакооÑебурÑÑ‚ÑкийбугийÑкийбулуб" + + "илин (блин)медумбакаддокарибкайюгаатÑамкебуаночигачибчачагатайÑкийчукот" + + "ÑкиймарийÑкий (черемиÑÑкий)чинук жаргончоктавчипевайÑнчерокичейеннÑоран" + + "и курдÑкийкоптÑкийкрымÑко-татарÑкийкашубианÑкийдакотадаргватаитаделавар" + + "ÑкийÑлейвидогрибдинказармадогринижнелужицкийдуалаÑредненидерландÑкийдьо" + + "ла-фоньидиула (дьюла)дазагÑкийÑмбуÑфикдревнеегипетÑкийÑкаджукÑламÑкийÑÑ€" + + "еднеанглийÑкийÑвондофангфилиппинÑкийфонÑреднефранцузÑкийÑтарофранцузÑки" + + "йфризÑкий ÑеверныйвоÑточный фризÑкийфриульÑкийгагагаузÑкийгайогбаÑгеÑзг" + + "ильбертÑкийÑредневерхненемецкийдревневерхненемецкийгондигоронталоготÑки" + + "йгребодревнегречеÑкийшвейцарÑкий немецкийгуÑиигвичинхайдагавайÑкийхилиг" + + "айнонхеттÑкийхмонгверхнелужицкийхупаибанÑкийибибиоилокоингушÑкийложбанн" + + "гомбамачамееврейÑко-перÑидÑкийеврейÑко-арабÑкийкаракалпакÑкийкабильÑкий" + + "качинÑкийкаджикамбакавикабардинÑкийканембутьÑпмакондекабувердьÑнукорокх" + + "аÑихотанÑкийкойра чииникакокаленджинкимбундийÑкийкоми-пермÑцкийконканик" + + "оÑраенÑкийкпеллекарачаево-балкарÑкийкарельÑкийкурухшамбалабафиÑкёльшкум" + + "ыкÑкийкутенаиладинолангилахндаламбалезгинÑкийлакотамонголозиÑеверно-лур" + + "ийÑкийлуба-лулуалуиÑеньолундалуо (ÐšÐµÐ½Ð¸Ñ Ð¸ ТанзаниÑ)лушайлухьÑмадурÑкийм" + + "афамагахимайтхилимакаÑÑарÑкиймандингомаÑаимабанÑкиймокшанÑкиймандарÑкий" + + "мендемерумаврикийÑкий креольÑкийÑреднеирландÑкиймакуа-мееттометамикмакм" + + "инангкабауманьчжурÑкийманипурÑкиймохаукмоÑимундангнеÑколько Ñзыковкрикм" + + "ирандийÑкиймарваримиенеÑрзÑмазендеранÑкийнеаполитанÑкийнаманижнегерманÑ" + + "кийневарÑкийниаÑниуÑкваÑионгиембундногайÑкийÑтаронорвежÑкийнкоÑото Ñеве" + + "рныйнуÑрневари (клаÑÑичеÑкий)ньÑмвезиньÑнколеньоронзимаоÑеджиÑтаротурец" + + "кийпангаÑинанпехлевийÑкийпампангапапьÑментопалауÑтароперÑидÑкийфиникийÑ" + + "кийпонапеÑтаропрованÑальÑкийкичераджаÑтханирапануираротонганÑкийромбоцы" + + "ганÑкийарумынÑкийруандаÑандавеÑкутÑкийÑамаритÑнÑкий арамейÑкийÑамбуруÑа" + + "ÑакиÑанталингамбайÑкийÑангуÑицилийÑкийшотландÑкийюжнокурдÑкийÑенекаÑена" + + "ÑелькупÑкийкойраборо ÑенниÑтароирландÑкийташельхитшанÑкийчадÑкий арабÑÑ" + + "идамаюжно-ÑаамÑкийлуле-ÑаамÑкийинари-ÑаамÑкийÑкольт-ÑаамÑкийÑонинкеÑогд" + + "ийÑкийÑранан тонгоÑерерÑахоÑукумаÑуÑушумерÑкийкоморÑкийклаÑÑичеÑкий Ñир" + + "ийÑкийÑирийÑкийтемнетеÑотеренотетумтигретивитокелайÑкийклингонÑкийтлинг" + + "иттамашекньÑÑа (тонга)ток-пиÑинтуройотарокоцимшиантумбукатувалутаÑавакт" + + "увинÑкийÑреднеатлаÑÑкий тамазигхтÑкийудмуртÑкийугаритÑкийумбундукорнево" + + "й ÑзыкваиводÑкийвунджовалиÑÑкийволамоварайвашовальбирикалмыцкийÑогаÑоÑп" + + "ÑнбанйембакантонÑкийÑапотекÑкийблиÑÑимволиказенагÑкийтамазигхтÑкийзуньи" + + "без Ñзыкового ÑодержаниÑзазаарабÑкий литературныйавÑтрийÑкий немецкийшв" + + "ейцарÑкий верхненемецкийавÑтралийÑкий английÑкийканадÑкий английÑкийбри" + + "танÑкий английÑкийамериканÑкий английÑкийлатиноамериканÑкий иÑпанÑкийев" + + "ропейÑкий иÑпанÑкиймекÑиканÑкий иÑпанÑкийканадÑкий французÑкийшвейцарÑк" + + "ий французÑкийнижнеÑакÑонÑкийфламандÑкийбразильÑкий португальÑкийевропе" + + "йÑкий португальÑкиймолдавÑкийÑербÑкохорватÑкийконголезÑкий Ñуахилиупрощ" + + "енный китайÑкийтрадиционный китайÑкий" + +var ruLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0008, 0x001a, 0x0030, 0x0042, 0x004a, 0x005c, 0x0070, + 0x0080, 0x0092, 0x00a2, 0x00ae, 0x00cc, 0x00e0, 0x00f6, 0x010a, + 0x0118, 0x0130, 0x0146, 0x0158, 0x016c, 0x0180, 0x0196, 0x01a8, + 0x01b6, 0x01ce, 0x01e0, 0x01ee, 0x0212, 0x0224, 0x0238, 0x0246, + 0x0256, 0x026c, 0x027b, 0x0281, 0x0293, 0x02a7, 0x02b9, 0x02cb, + 0x02dd, 0x02ed, 0x0301, 0x030b, 0x0319, 0x0323, 0x0335, 0x034b, + 0x036a, 0x037e, 0x038e, 0x03a4, 0x03b2, 0x03c4, 0x03d2, 0x03dc, + 0x03e6, 0x03f0, 0x0400, 0x0414, 0x0428, 0x043c, 0x044e, 0x045a, + // Entry 40 - 7F + 0x0470, 0x048a, 0x04a0, 0x04a8, 0x04b6, 0x04c4, 0x04ca, 0x04de, + 0x04f4, 0x0506, 0x0516, 0x0526, 0x053a, 0x0544, 0x0550, 0x055c, + 0x056e, 0x0586, 0x0598, 0x05a6, 0x05b8, 0x05c4, 0x05d2, 0x05e2, + 0x05ea, 0x05fe, 0x0612, 0x0624, 0x0640, 0x064a, 0x0660, 0x066e, + 0x067e, 0x0690, 0x06a7, 0x06b9, 0x06d3, 0x06eb, 0x06f5, 0x070b, + 0x071b, 0x0731, 0x073f, 0x0751, 0x0767, 0x077b, 0x0785, 0x07a4, + 0x07b8, 0x07c4, 0x07de, 0x0801, 0x0822, 0x083b, 0x0847, 0x0855, + 0x086b, 0x0879, 0x0883, 0x088b, 0x089f, 0x08af, 0x08b7, 0x08c7, + // Entry 80 - BF + 0x08d1, 0x08eb, 0x08f5, 0x0909, 0x0913, 0x0925, 0x0933, 0x0949, + 0x0959, 0x096d, 0x0979, 0x0997, 0x09a1, 0x09b7, 0x09c9, 0x09dd, + 0x09f1, 0x09f9, 0x0a05, 0x0a17, 0x0a27, 0x0a31, 0x0a44, 0x0a58, + 0x0a68, 0x0a76, 0x0a8a, 0x0a96, 0x0aaa, 0x0ab8, 0x0ac8, 0x0ade, + 0x0aea, 0x0afe, 0x0b0e, 0x0b1a, 0x0b2c, 0x0b40, 0x0b52, 0x0b66, + 0x0b6e, 0x0b80, 0x0b8a, 0x0ba0, 0x0bae, 0x0bc2, 0x0bcc, 0x0bd4, + 0x0bdc, 0x0be8, 0x0bf4, 0x0c06, 0x0c0e, 0x0c1e, 0x0c28, 0x0c36, + 0x0c4a, 0x0c4a, 0x0c5a, 0x0c64, 0x0c6c, 0x0c7e, 0x0c7e, 0x0c90, + // Entry C0 - FF + 0x0c90, 0x0caa, 0x0cc8, 0x0cd4, 0x0ce8, 0x0cfe, 0x0cfe, 0x0d0c, + 0x0d0c, 0x0d20, 0x0d20, 0x0d20, 0x0d26, 0x0d26, 0x0d3c, 0x0d3c, + 0x0d48, 0x0d5c, 0x0d6e, 0x0d6e, 0x0d76, 0x0d80, 0x0d80, 0x0d8e, + 0x0d98, 0x0da2, 0x0da2, 0x0daa, 0x0db4, 0x0db4, 0x0dd7, 0x0de9, + 0x0dfd, 0x0e05, 0x0e05, 0x0e0b, 0x0e19, 0x0e19, 0x0e19, 0x0e23, + 0x0e23, 0x0e2b, 0x0e37, 0x0e49, 0x0e5b, 0x0e63, 0x0e78, 0x0e86, + 0x0e90, 0x0e9a, 0x0ea6, 0x0eb0, 0x0ebe, 0x0ec6, 0x0ed0, 0x0ee6, + 0x0ef8, 0x0f23, 0x0f3a, 0x0f46, 0x0f58, 0x0f64, 0x0f70, 0x0f8d, + // Entry 100 - 13F + 0x0f9d, 0x0f9d, 0x0fbe, 0x0fd6, 0x0fe2, 0x0fee, 0x0ff8, 0x100e, + 0x101a, 0x1026, 0x1030, 0x103a, 0x1044, 0x105e, 0x105e, 0x1068, + 0x108e, 0x10a3, 0x10ba, 0x10cc, 0x10d4, 0x10dc, 0x10dc, 0x10fc, + 0x110a, 0x111a, 0x113a, 0x113a, 0x1146, 0x1146, 0x114e, 0x1166, + 0x1166, 0x116c, 0x116c, 0x118e, 0x11ae, 0x11ae, 0x11cf, 0x11f2, + 0x1206, 0x120a, 0x121e, 0x121e, 0x1226, 0x122e, 0x122e, 0x1236, + 0x124e, 0x124e, 0x1276, 0x129e, 0x129e, 0x12a8, 0x12ba, 0x12c8, + 0x12d2, 0x12f0, 0x1317, 0x1317, 0x1317, 0x1321, 0x132d, 0x1337, + // Entry 140 - 17F + 0x1337, 0x1349, 0x1349, 0x135d, 0x136d, 0x1377, 0x1393, 0x1393, + 0x139b, 0x13ab, 0x13b7, 0x13c1, 0x13d3, 0x13d3, 0x13d3, 0x13df, + 0x13eb, 0x13f7, 0x141c, 0x143d, 0x143d, 0x1459, 0x146d, 0x147f, + 0x1489, 0x1493, 0x149b, 0x14b3, 0x14c1, 0x14c9, 0x14d7, 0x14ef, + 0x14ef, 0x14f7, 0x14f7, 0x1501, 0x1513, 0x1528, 0x1528, 0x1528, + 0x1530, 0x1542, 0x155c, 0x1577, 0x1585, 0x159b, 0x15a7, 0x15ce, + 0x15ce, 0x15ce, 0x15e2, 0x15ec, 0x15fa, 0x1604, 0x160e, 0x1620, + 0x162e, 0x163a, 0x1644, 0x1650, 0x165a, 0x166e, 0x166e, 0x166e, + // Entry 180 - 1BF + 0x166e, 0x167a, 0x167a, 0x1684, 0x168c, 0x16ad, 0x16ad, 0x16c0, + 0x16d0, 0x16da, 0x1701, 0x170b, 0x1715, 0x1715, 0x1715, 0x1727, + 0x172f, 0x173b, 0x174b, 0x1763, 0x1773, 0x177d, 0x178f, 0x17a3, + 0x17b7, 0x17c1, 0x17c9, 0x17f6, 0x1816, 0x182d, 0x1835, 0x1841, + 0x1857, 0x186f, 0x1885, 0x1891, 0x1899, 0x1899, 0x18a7, 0x18c6, + 0x18ce, 0x18e6, 0x18f4, 0x18f4, 0x18fe, 0x1906, 0x1922, 0x1922, + 0x193e, 0x1946, 0x1964, 0x1976, 0x197e, 0x1986, 0x1986, 0x1992, + 0x19a4, 0x19b6, 0x19d4, 0x19d4, 0x19da, 0x19f3, 0x19fb, 0x1a22, + // Entry 1C0 - 1FF + 0x1a32, 0x1a42, 0x1a4c, 0x1a56, 0x1a62, 0x1a7c, 0x1a90, 0x1aa8, + 0x1ab8, 0x1acc, 0x1ad6, 0x1ad6, 0x1ad6, 0x1ad6, 0x1af4, 0x1af4, + 0x1b0a, 0x1b0a, 0x1b0a, 0x1b16, 0x1b16, 0x1b3c, 0x1b44, 0x1b44, + 0x1b5a, 0x1b68, 0x1b84, 0x1b84, 0x1b84, 0x1b8e, 0x1ba0, 0x1ba0, + 0x1ba0, 0x1ba0, 0x1bb4, 0x1bc0, 0x1bce, 0x1bde, 0x1c0d, 0x1c1b, + 0x1c27, 0x1c35, 0x1c35, 0x1c4b, 0x1c55, 0x1c6b, 0x1c81, 0x1c81, + 0x1c99, 0x1ca5, 0x1cad, 0x1cad, 0x1cc3, 0x1ce0, 0x1cfe, 0x1cfe, + 0x1d10, 0x1d1e, 0x1d37, 0x1d43, 0x1d43, 0x1d43, 0x1d5c, 0x1d75, + // Entry 200 - 23F + 0x1d90, 0x1dad, 0x1dbb, 0x1dcf, 0x1de6, 0x1df0, 0x1df8, 0x1df8, + 0x1e04, 0x1e0c, 0x1e1e, 0x1e30, 0x1e5b, 0x1e6d, 0x1e6d, 0x1e6d, + 0x1e77, 0x1e7f, 0x1e8b, 0x1e95, 0x1e9f, 0x1ea7, 0x1ebd, 0x1ebd, + 0x1ed3, 0x1ee1, 0x1ee1, 0x1eef, 0x1f06, 0x1f17, 0x1f23, 0x1f2f, + 0x1f2f, 0x1f3d, 0x1f3d, 0x1f4b, 0x1f57, 0x1f65, 0x1f77, 0x1fb0, + 0x1fc4, 0x1fd8, 0x1fe6, 0x1fff, 0x2005, 0x2005, 0x2005, 0x2005, + 0x2005, 0x2013, 0x2013, 0x201f, 0x2031, 0x203d, 0x2047, 0x204f, + 0x205f, 0x205f, 0x2071, 0x2071, 0x2079, 0x207d, 0x2081, 0x208b, + // Entry 240 - 27F + 0x2095, 0x2095, 0x20a9, 0x20bf, 0x20d9, 0x20d9, 0x20eb, 0x2105, + 0x210f, 0x213d, 0x2145, 0x216e, 0x216e, 0x2195, 0x21c8, 0x21f7, + 0x221e, 0x2247, 0x2274, 0x22ab, 0x22d4, 0x22ff, 0x22ff, 0x2328, + 0x2355, 0x2373, 0x2389, 0x23ba, 0x23eb, 0x23ff, 0x2421, 0x2448, + 0x246f, 0x249a, +} // Size: 1244 bytes + +var siLangStr string = "" + // Size: 5819 bytes + "ඇබ්කà·à·ƒà·’යà·à¶±à·”අප්\u200dරිකà·à¶±à·”අකà·à¶±à·Šà¶‡à¶¸à·Šà·„à·à¶»à·’ක්අරà·à¶¶à·’ඇසමියà·à¶±à·”අසර්බයිජà·à¶±à·Šà¶¶à·à·‚්කිර්" + + "බෙලරුසියà·à¶±à·”බල්ගේරියà·à¶±à·”බම්බරà·à¶¶à·™à¶‚ගà·à¶½à·’ටිබෙට්බ්\u200dරේටොන්බොස්නියà·à¶±à·”කà·à¶§à¶½à¶±" + + "්චෙච්නියà·à¶±à·”ක්\u200dරොඑà·à·’යà·à¶±à·”චෙත්චවේෂ්වේල්ස්ඩà·à¶±à·’à·à·Šà¶¢à¶»à·Šà¶¸à¶±à·Šà¶¯à·’වෙහිඩිසොන්කà·à¶‰" + + "ව්ග්\u200dරීකඉංග්\u200dරීසිඑස්පà·à¶»à¶±à·Šà¶§à·à·ƒà·Šà¶´à·à¶¤à·Šà¶¤à¶‘ස්තà·à¶±à·’යà·à¶±à·”බොස්කà·à¶´à¶»à·Šà·ƒà·’යà·à¶±à·”" + + "ෆින්ලන්තෆීජිෆà·à¶»à·à·ƒà·Šà¶´à·Š\u200dරංà·à¶¶à¶§à·„ිර ෆ්\u200dරිසියà·à¶±à·”අයර්ලන්තගà·à¶½à·“සියà·à¶±à·”ග" + + "ුවà·à¶»à¶±à·’ගුජරà·à¶§à·’මà·à¶±à·Šà¶šà·Šà·ƒà·Šà·„à·à·ƒà·à·„ීබෲහින්දික්\u200dරà·à¶ºà·šà·à·’යà·à¶±à·”හයිටිහන්ගේරියà·à¶±à·”ආ" + + "ර්මේනියà·à¶±à·”ඉන්දුනීසියà·à¶±à·”ඉග්බà·à·ƒà·’චුආන් යීඅයිස්ලන්තඉතà·à¶½à·’ඉනුක්ටිටුට්ජපන්ජà·à·€" + + "à·à¶¢à·à¶»à·Šà¶¢à·’යà·à¶±à·”කිකුයුකසà·à¶›à·Šà¶šà¶½à·à¶½à·’සට්කමර්කණ්ණඩකොරියà·à¶±à·”කà·à·‚්මීර්කුර්දිකà·à¶±à·“සියà·à¶±" + + "ුකිර්ගිස්ලතින්ලක්සà·à¶¸à·Šà¶¶à¶»à·Šà¶œà·Šà¶œà¶±à·Šà¶©à·à¶½à·’න්ගලà·à¶½à·à¶•à¶½à·’තුවේනියà·à¶±à·”ලුලà·à¶§à·Šà·€à·’යà·à¶±à·”මලගà·à·ƒ" + + "ිමà·à·€à·œà¶»à·’මà·à·ƒà·’ඩà·à¶±à·’යà·à¶±à·”මලයà·à¶½à¶¸à·Šà¶¸à·œà¶‚ගà·à¶½à·’යà·à¶±à·”මරà·à¶­à·’මà·à¶½à·šà¶¸à·œà¶½à·Šà¶§à·’ස්බුරුමඋතුරු එන්ඩි" + + "බෙලෙනේපà·à¶½à¶½à¶±à·Šà¶¯à·šà·ƒà·’නොවේර්ජියà·à¶±à·” නයිනà·à¶»à·Šà·ƒà·Šà¶šà·Šà¶±à·à·€à·šà¶¢à·’යà·à¶±à·” බොක්මà·à¶½à·Šà¶”රොමà·à¶”රියà·à¶¢" + + "න්ජà·à¶¶à·’පà·à¶½à¶±à·Šà¶­à¶´à·‚්ටොපෘතුගීසික්වීචුවà·à¶»à·œà¶¸à·‘න්à·à·Šà¶»à·”න්ඩිරොමේනියà·à¶±à·”රුසියà·à¶±à·”කින්ය" + + "ර්වන්ඩà·à·ƒà¶‚ස්කෘතසින්ධිඋතුරු à·ƒà·à¶¸à·’සන්ග්\u200dරà·à·ƒà·’ංහලස්ලà·à·€à·à¶šà·Šà·ƒà·Šà¶½à·à·€à·šà¶±à·’යà·à¶±à·”à·à·" + + "නà·à·ƒà·à¶¸à·à¶½à·’ඇල්බේනියà·à¶±à·”සර්බියà·à¶±à·”සන්ඩනීසියà·à¶±à·”ස්වීඩන්ස්වà·à·„ිලිදෙමළතෙළිඟුටජික්" + + "තà·à¶ºà·’ටිග්\u200dරින්යà·à¶§à¶»à·Šà¶šà·Šà¶¸à·™à¶±à·Šà¶§à·œà¶‚ගà·à¶­à·”ර්කිටà·à¶§à¶»à·Šà¶‹à¶ºà·’ගර්යුක්රේනියà·à¶±à·”උර්දුඋස" + + "්බෙක්වියට්නà·à¶¸à·Šà·€à·œà¶½à·œà·†à·Šà·à·à·ƒà·à¶ºà·œà¶»à·–බà·à¶ à·“නසුලුටියුනිසියනු අරà·à¶¶à·’ඇගම්මපුචෙඅසුබෙම්" + + "බà·à¶¶à·™à¶±à·à¶¶à¶§à·„ිර බලොචිබොඩොචිගà·à¶ à·™à¶»à·œà¶šà·“සොරà·à¶±à·’ කුර්දිෂ්ටයිටà·à·†à¶»à·Šà¶¸à·à¶´à·„à·… à·ƒà·à¶¶à·’යà·à¶±à·”ඩු" + + "ආලà·à¶¢à·œà¶½-à·†à·à¶±à·’යිඑම්බුපිලිපීනගගà·à·ƒà·Šà·ƒà·Šà·€à·’ස් ජර්මනිගුසීහවà·à¶ºà·’ඉහළ à·ƒà·à¶¶à·’යà·à¶±à·”නොම්බà·" + + "මà·à¶šà·à¶¸à·“කà·à¶¶à¶½à·à¶šà·à¶¸à·Šà¶¶à·à¶¸à·à¶šà·œà¶±à·Šà¶©à·Šà¶šà¶¶à·”වෙර්ඩියà·à¶±à·à¶šà·œà¶ºà·’ර෠චිනිකලෙන්ජන්කොමි-පර්මියà·à¶š" + + "්කොන්කනිà·à·à¶¸à·Šà¶¶à¶½à·à¶¶à·à·†à·’යà·à¶½à¶‚ගිලකොටඋතුරු ලුරිලුඔලුයියà·à¶¸à·ƒà·à¶ºà·’මෙරුමොරිස්යෙම්මඛු" + + "à·€à·-මීටà·à¶¸à·™à¶§à·à¶¸à·œà·„ොව්ක්මුන්ඩන්මà·à·ƒà¶±à·Šà¶©à¶»à¶±à·’නà·à¶¸à·à¶´à·„à·… ජර්මන්කුවà·à·ƒà·’ඔඑන්‘කà·à¶±à·œà¶ºà¶»à·Šà¶±à¶ºà¶±" + + "්කොළේකියිචේරà·à¶¸à·Šà¶¶à·à¶»à·Šà·€à·à·ƒà¶¸à·Šà¶¶à·”රුසංගුදකුණු කුර්දිසෙනà·à¶šà·à¶ºà·’රà·à¶¶à·œà¶»à·œ සෙන්නිටචේල්" + + "හිට්දකුණු à·ƒà·à¶¸à·’ලුලේ à·ƒà·à¶¸à·’ඉනà·à¶»à·’ à·ƒà·à¶¸à·’ස්කොල්ට් à·ƒà·à¶¸à·’ටෙසà·à¶§à·ƒà·€à·à¶šà·Šà¶¸à¶°à·Š\u200dයම ඇට" + + "්ලස් ටමසිට්නොදන්න෠භà·à·‚à·à·€à·€à¶ºà·’වුන්ජà·à·€à·œà¶´à·’රිසොගà·à·ƒà¶¸à·Šà¶¸à¶­ මොරොක්ක෠ටමසිග්ත්වà·à¶œà·Š" + + " විද්\u200dය෠අන්තර්ගතයක් නà·à¶­à¶±à·€à·“න සම්මත අරà·à¶¶à·’ඔස්ට්\u200dරියà·à¶±à·” ජර්මන්ස්ව" + + "ිස් උසස් ජර්මන්ඕස්ට්\u200dරේලියà·à¶±à·” ඉංග්\u200dරීසිකà·à¶±à·šà¶©à·’යà·à¶±à·” ඉංග්\u200d" + + "රීසිබ්\u200dරිතà·à¶±à·Š\u200dය ඉංග්\u200dරීසිඇමෙරිකà·à¶±à·” ඉංග්\u200dරීසිලතින් " + + "ඇමරිකà·à¶±à·” ස්පà·à¶¤à·Šà¶¤à¶ºà·”රà·à¶´à·“ය ස්පà·à¶¤à·Šà¶¤à¶¸à·™à¶šà·Šà·ƒà·’කà·à¶±à·” ස්පà·à¶¤à·Šà¶¤à¶šà·à¶±à·šà¶©à·’යà·à¶±à·” ප්\u200dරං" + + "à·à·ƒà·Šà·€à·’ස් ප්\u200dරංà·à¶´à·„à·… à·ƒà·à¶šà·Šà·ƒà¶±à·Šà·†à·Šà¶½à·™à¶¸à·’à·à·Šà¶¶à·Š\u200dරසීල පෘතුගීසියුරà·à¶´à·“ය පෘත" + + "ුගීසිමොල්ඩà·à·€à·à·€à¶šà·œà¶±à·Šà¶œà· ස්වà·à·„ිලිසුළුකළ චීනසà·à¶¸à·Šà¶´à·Š\u200dරදà·à¶ºà·’ක චීන" + +var siLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0021, 0x0021, 0x003f, 0x004e, 0x0069, 0x0069, + 0x0078, 0x0090, 0x0090, 0x0090, 0x00b1, 0x00c9, 0x00ea, 0x010b, + 0x010b, 0x011d, 0x0132, 0x0144, 0x015f, 0x017d, 0x018f, 0x01ad, + 0x01ad, 0x01d1, 0x01d1, 0x01dd, 0x01dd, 0x01ec, 0x01fe, 0x0210, + 0x0222, 0x0234, 0x024c, 0x0255, 0x0267, 0x0282, 0x02a0, 0x02b5, + 0x02d6, 0x02e8, 0x0303, 0x0303, 0x031b, 0x0327, 0x0339, 0x034b, + 0x037c, 0x0394, 0x0394, 0x03b2, 0x03c7, 0x03dc, 0x03f4, 0x0400, + 0x040c, 0x041e, 0x041e, 0x0445, 0x0454, 0x0475, 0x0496, 0x0496, + // Entry 40 - 7F + 0x0496, 0x04bd, 0x04bd, 0x04cc, 0x04e8, 0x04e8, 0x04e8, 0x0503, + 0x0512, 0x0533, 0x053f, 0x054b, 0x0569, 0x0569, 0x057b, 0x057b, + 0x058a, 0x05a2, 0x05ae, 0x05bd, 0x05d5, 0x05d5, 0x05ed, 0x05ff, + 0x05ff, 0x061d, 0x0635, 0x0644, 0x0668, 0x0677, 0x0677, 0x068c, + 0x0695, 0x06b9, 0x06bf, 0x06dd, 0x06ef, 0x06ef, 0x0701, 0x0725, + 0x073a, 0x075b, 0x076a, 0x0776, 0x078e, 0x079d, 0x079d, 0x07c8, + 0x07d7, 0x07d7, 0x07ec, 0x0832, 0x0869, 0x0869, 0x0869, 0x0869, + 0x0869, 0x0869, 0x0878, 0x0887, 0x0887, 0x089c, 0x089c, 0x08ae, + // Entry 80 - BF + 0x08bd, 0x08d5, 0x08ed, 0x0905, 0x0917, 0x0935, 0x094d, 0x0971, + 0x0986, 0x0986, 0x0998, 0x09b4, 0x09cc, 0x09db, 0x09f3, 0x0a17, + 0x0a17, 0x0a23, 0x0a35, 0x0a56, 0x0a71, 0x0a71, 0x0a71, 0x0a95, + 0x0aaa, 0x0ac2, 0x0ace, 0x0ae0, 0x0aef, 0x0afb, 0x0b1c, 0x0b37, + 0x0b37, 0x0b46, 0x0b58, 0x0b58, 0x0b67, 0x0b67, 0x0b79, 0x0b9d, + 0x0bac, 0x0bc1, 0x0bc1, 0x0bdc, 0x0bdc, 0x0bdc, 0x0bee, 0x0bfa, + 0x0bfa, 0x0c0c, 0x0c0c, 0x0c15, 0x0c21, 0x0c21, 0x0c21, 0x0c21, + 0x0c21, 0x0c52, 0x0c52, 0x0c5e, 0x0c5e, 0x0c5e, 0x0c5e, 0x0c5e, + // Entry C0 - FF + 0x0c5e, 0x0c5e, 0x0c5e, 0x0c5e, 0x0c5e, 0x0c6d, 0x0c6d, 0x0c6d, + 0x0c6d, 0x0c6d, 0x0c6d, 0x0c6d, 0x0c76, 0x0c76, 0x0c76, 0x0c76, + 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, 0x0c76, + 0x0c76, 0x0c88, 0x0c88, 0x0c94, 0x0c94, 0x0c94, 0x0cb3, 0x0cb3, + 0x0cb3, 0x0cb3, 0x0cb3, 0x0cb3, 0x0cb3, 0x0cb3, 0x0cb3, 0x0cb3, + 0x0cb3, 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, + 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, 0x0cbf, 0x0ccb, 0x0ccb, 0x0ccb, + 0x0ccb, 0x0ccb, 0x0ccb, 0x0ccb, 0x0ccb, 0x0cdd, 0x0cdd, 0x0d08, + // Entry 100 - 13F + 0x0d08, 0x0d08, 0x0d08, 0x0d08, 0x0d08, 0x0d08, 0x0d17, 0x0d17, + 0x0d17, 0x0d17, 0x0d17, 0x0d26, 0x0d26, 0x0d48, 0x0d48, 0x0d57, + 0x0d57, 0x0d73, 0x0d73, 0x0d73, 0x0d82, 0x0d82, 0x0d82, 0x0d82, + 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d82, 0x0d97, + 0x0d97, 0x0d97, 0x0d97, 0x0d97, 0x0d97, 0x0d97, 0x0d97, 0x0d97, + 0x0d97, 0x0d97, 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, + 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, 0x0da6, + 0x0da6, 0x0da6, 0x0dcb, 0x0dcb, 0x0dcb, 0x0dd7, 0x0dd7, 0x0dd7, + // Entry 140 - 17F + 0x0dd7, 0x0de6, 0x0de6, 0x0de6, 0x0de6, 0x0de6, 0x0e08, 0x0e08, + 0x0e08, 0x0e08, 0x0e08, 0x0e08, 0x0e08, 0x0e08, 0x0e08, 0x0e08, + 0x0e1a, 0x0e2c, 0x0e2c, 0x0e2c, 0x0e2c, 0x0e2c, 0x0e3b, 0x0e3b, + 0x0e3b, 0x0e4d, 0x0e4d, 0x0e4d, 0x0e4d, 0x0e4d, 0x0e65, 0x0e8c, + 0x0e8c, 0x0e8c, 0x0e8c, 0x0e8c, 0x0e8c, 0x0eab, 0x0eab, 0x0eab, + 0x0eab, 0x0ec3, 0x0ec3, 0x0eeb, 0x0f00, 0x0f00, 0x0f00, 0x0f00, + 0x0f00, 0x0f00, 0x0f00, 0x0f00, 0x0f15, 0x0f27, 0x0f27, 0x0f27, + 0x0f27, 0x0f27, 0x0f33, 0x0f33, 0x0f33, 0x0f33, 0x0f33, 0x0f33, + // Entry 180 - 1BF + 0x0f33, 0x0f3f, 0x0f3f, 0x0f3f, 0x0f3f, 0x0f5b, 0x0f5b, 0x0f5b, + 0x0f5b, 0x0f5b, 0x0f64, 0x0f64, 0x0f76, 0x0f76, 0x0f76, 0x0f76, + 0x0f76, 0x0f76, 0x0f76, 0x0f76, 0x0f76, 0x0f85, 0x0f85, 0x0f85, + 0x0f85, 0x0f85, 0x0f91, 0x0faf, 0x0faf, 0x0fcb, 0x0fd7, 0x0fd7, + 0x0fd7, 0x0fd7, 0x0fd7, 0x0fef, 0x0fef, 0x0fef, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x101f, 0x101f, + 0x101f, 0x102b, 0x1047, 0x1047, 0x1047, 0x1047, 0x1047, 0x105c, + 0x105c, 0x105c, 0x105c, 0x105c, 0x106e, 0x106e, 0x107d, 0x107d, + // Entry 1C0 - 1FF + 0x107d, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, + 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, + 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x1095, 0x10a7, 0x10a7, + 0x10a7, 0x10a7, 0x10a7, 0x10a7, 0x10a7, 0x10b9, 0x10b9, 0x10b9, + 0x10b9, 0x10b9, 0x10b9, 0x10c5, 0x10c5, 0x10c5, 0x10c5, 0x10da, + 0x10da, 0x10da, 0x10da, 0x10da, 0x10e6, 0x10e6, 0x10e6, 0x10e6, + 0x1108, 0x1108, 0x1114, 0x1114, 0x1114, 0x1145, 0x1145, 0x1145, + 0x1160, 0x1160, 0x1160, 0x1160, 0x1160, 0x1160, 0x117c, 0x1195, + // Entry 200 - 23F + 0x11b1, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, + 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, 0x11d6, + 0x11d6, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, + 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, + 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11e2, 0x11f4, 0x11f4, 0x122c, + 0x122c, 0x122c, 0x122c, 0x1251, 0x125a, 0x125a, 0x125a, 0x125a, + 0x125a, 0x125a, 0x125a, 0x126c, 0x126c, 0x126c, 0x126c, 0x126c, + 0x127e, 0x127e, 0x127e, 0x127e, 0x128a, 0x128a, 0x128a, 0x128a, + // Entry 240 - 27F + 0x128a, 0x128a, 0x128a, 0x128a, 0x128a, 0x128a, 0x128a, 0x12cb, + 0x12cb, 0x1319, 0x1319, 0x1345, 0x1345, 0x137c, 0x13ae, 0x13f4, + 0x142e, 0x146b, 0x14a2, 0x14e0, 0x150b, 0x153f, 0x153f, 0x1570, + 0x1595, 0x15b4, 0x15cc, 0x15fa, 0x1628, 0x1643, 0x1643, 0x166e, + 0x168a, 0x16bb, +} // Size: 1244 bytes + +var skLangStr string = "" + // Size: 5626 bytes + "afarÄinaabcházÄinaavestÄinaafrikánÄinaakanÄinaamharÄinaaragónÄinaarabÄin" + + "aásamÄinaavarÄinaaymarÄinaazerbajdžanÄinabaÅ¡kirÄinabieloruÅ¡tinabulharÄin" + + "abislamabambarÄinabengálÄinatibetÄinabretónÄinabosniaÄtinakatalánÄinaÄeÄ" + + "enÄinaÄamorÄinakorziÄtinakríÄeÅ¡tinacirkevná slovanÄinaÄuvaÅ¡tinawaleÅ¡tina" + + "dánÄinanemÄinadivehidzongkäeweÅ¡tinagréÄtinaangliÄtinaesperantoÅ¡panielÄin" + + "aestónÄinabaskiÄtinaperzÅ¡tinafulbÄinafínÄinafidžijÄinafaerÄinafrancúzÅ¡ti" + + "nazápadná frízÅ¡tinaírÄinaÅ¡kótska gaelÄinagalícijÄinaguaraníjÄinagudžarát" + + "ÄinamanÄinahauÅ¡tinahebrejÄinahindÄinahiri motuchorvátÄinahaitÄinamaÄarÄ" + + "inaarménÄinahererointerlinguaindonézÅ¡tinainterlingueigboÅ¡tinas’Ächuanská" + + " ioÅ¡tinainupiaqidoislandÄinatalianÄinainuktitutjaponÄinajávÄinagruzínÄin" + + "akongÄinakikujÄinakuaňamakazaÅ¡tinagrónÄinakhmérÄinakannadÄinakórejÄinaka" + + "nurijÄinakaÅ¡mírÄinakurdÄinakomijÄinakornÄinakirgizÅ¡tinalatinÄinaluxembur" + + "ÄinagandÄinalimburÄinalingalÄinalaoÅ¡tinalitovÄinalubÄina (katanžská)lot" + + "yÅ¡tinamalgaÅ¡tinakajin-majolmaorijÄinamacedónÄinamalajálamÄinamongolÄinam" + + "aráthÄinamalajÄinamaltÄinabarmÄinanauruseverné ndebelenepálÄinandongahol" + + "andÄinanórÄina (nynorsk)nórÄina (bokmÃ¥l)južná ndebelÄinanavajoÄewaokcitá" + + "nÄinaodžibvaoromÄinauríjÄinaosetÄinapandžábÄinapálípoľštinapaÅ¡tÄinaportu" + + "galÄinakeÄuánÄinarétorománÄinakirundÄinarumunÄinaruÅ¡tinakiňarwandasanskr" + + "itsardínÄinasindhÄinalaponÄina (severná)sangosinhalÄinaslovenÄinaslovinÄ" + + "inasamojÄinaÅ¡onÄinasomálÄinaalbánÄinasrbÄinasvazijÄinajužná sothÄinasund" + + "ÄinaÅ¡védÄinasvahilÄinatamilÄinatelugÄinatadžiÄtinathajÄinatigriňaturkmé" + + "nÄinatswanÄinatongÄinatureÄtinatsongatatárÄinatahitÄinaujgurÄinaukrajinÄ" + + "inaurdÄinauzbeÄtinavendÄinavietnamÄinavolapükvalónÄinawolofÄinaxhoÅ¡tinaj" + + "idiÅ¡jorubÄinaÄuangÄinaÄínÅ¡tinazuluÅ¡tinaacehÄinaaÄoliadangmeadygÄinaafrih" + + "iliaghemainÄinaakkadÄinaaleutÄinajužná altajÄinastará angliÄtinaangikaar" + + "amejÄinaaraukánÄinaarapahoarawaÄtinaasuastúrÄinaavadhÄinabalúÄtinabalijÄ" + + "inabasabamunghomalabedžabembabenabafutzápadná balúÄtinabhódžpurÄinabikol" + + "binikomsiksikabradžÄinabodoakooseburiatÄinabugiÅ¡tinabulublinmedumbakaddo" + + "karibskýcayugaatsamcebuánÄinakigaÄibÄaÄagatajÄinatrukmarijÄinaÄinucký ža" + + "rgónÄoktavÄinaÄipevajÄinaÄerokíÄejenÄinakurdÄina (sorání)koptÄinakrymská" + + " tureÄtinakaÅ¡ubÄinadakotÄinadarginÄinataitadelawarÄinaslovanÄinadogribÄi" + + "nadinkazarmadógrídolnolužická srbÄinadualastredná holandÄinajola-fonyiÄu" + + "ladazagaembuefikstaroegyptskýekadžukelamÄinastredná angliÄtinaewondofang" + + "ÄinafilipínÄinafonÄinastredná francúzÅ¡tinastará francúzÅ¡tinaseverná frí" + + "zÅ¡tinavýchodná frízÅ¡tinafriulÄinagagagauzÅ¡tinagayogbajaetiópÄinakiribatÄ" + + "inastredná horná nemÄinastará horná nemÄinagóndÄinagorontalogótÄinagrebo" + + "starogréÄtinanemÄina (Å¡vajÄiarska)gusiigwichʼinhaidahavajÄinahiligajnonÄ" + + "inachetitÄinahmonghornolužická srbÄinahupÄinaibanÄinaibibioilokánÄinaing" + + "uÅ¡tinalojbanngombamaÅ¡amežidovská perzÅ¡tinažidovská arabÄinakarakalpaÄtin" + + "akabylÄinakaÄjinÄinajjukambakawikabardÄinakanembutyapmakondekapverdÄinak" + + "orokhasijÄinachotanÄinazápadná songhajÄinakakokalendžinkimbundukomi-perm" + + "iaÄtinakonkánÄinakusaiekpellekaraÄajevsko-balkarský jazykkarelÄinakurukh" + + "ÄinaÅ¡ambalabafiakolínÄinakumyÄtinakutenajÄinažidovská Å¡panielÄinalangil" + + "ahandÄinalambalezginÄinalakotÄinamongoloziseverné luriluba-luluánÄinalui" + + "seňolundaluomizorámÄinaluhjamadurÄinamafamagadhÄinamaithilÄinamakasarÄin" + + "amandingomasajÄinamabamokÅ¡ianÄinamandarÄinamendimerumaurícijská kreolÄin" + + "astredná írÄinamakua-meettometa’mikmakÄinaminangkabauÄinamandžuÅ¡tinamaní" + + "purÄinamohawkÄinamossimundangviaceré jazykykríkÄinamirandÄinamarawarimye" + + "neerzjanÄinamázandaránÄinaneapolÄinanamadolná nemÄinanevárÄinaniasánÄina" + + "niueÅ¡tinakwasiongiemboonnogajÄinastará nórÄinan’koseverná sothÄinanuerkl" + + "asická nevárÄinaňamweziňankoleňoronzimaosagÄinaosmanská tureÄtinapangasi" + + "nanÄinapahlavípampangapapiamentopalauÄinastará perzÅ¡tinafeniÄtinapohnpei" + + "Äinastará okcitánÄinakiÄéradžastanÄinarapanujÄinararotonganromborómÄina" + + "arumunÄinarwasandawejakutÄinasamaritánska aramejÄinasamburusasaÄtinasant" + + "alÄinangambaysangusicílÄinaÅ¡kótÄinakurdÄina (južná)senecasenaselkupÄinak" + + "oyraboro sennistará írÄinatachelhitÅ¡anÄinaÄadská arabÄinasidamolaponÄina" + + " (južná)laponÄina (lulská)laponÄina (inarijská)laponÄina (skoltská)sonin" + + "kesogdijÄinasrananserersahosukumasususumerÄinakomorÄinaklasická sýrÄinas" + + "ýrÄinatemnetesoterenotetumtigrejÄinativtokelauÄinaklingónÄinatlingitÄin" + + "atamaÅ¡ekňasa tongatok pisintarokotsimshijské jazykytumbukatuvalÄinatasaw" + + "aqtuvianÄinatamaÅ¡ek (stredomarocký)udmurtÄinaugaritÄinaumbundukoreňvaivo" + + "dÄinavunjowalserÄinawalamowaraywashowarlpirikalmyÄtinasogajaojapÄinajang" + + "benyembakantonÄinazapotéÄtinasystém BlisszenagatamaÅ¡ek (Å¡tandardný maroc" + + "ký)zuniÅ¡tinabez jazykového obsahuzázáarabÄina (moderná Å¡tandardná)nemÄin" + + "a (rakúska)nemÄina (Å¡vajÄiarska spisovná)angliÄtina (austrálska)angliÄti" + + "na (kanadská)angliÄtina (britská)angliÄtina (americká)Å¡panielÄina (latin" + + "skoamerická)Å¡panielÄina (európska)Å¡panielÄina (mexická)francúzÅ¡tina (kan" + + "adská)francúzÅ¡tina (Å¡vajÄiarska)dolná saÅ¡tinaflámÄinaportugalÄina (brazí" + + "lska)portugalÄina (európska)moldavÄinasrbochorvátÄinasvahilÄina (konžská" + + ")ÄínÅ¡tina (zjednoduÅ¡ená)ÄínÅ¡tina (tradiÄná)" + +var skLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0015, 0x001f, 0x002c, 0x0035, 0x003f, 0x004b, + 0x0054, 0x005e, 0x0067, 0x0071, 0x0082, 0x008e, 0x009b, 0x00a6, + 0x00ad, 0x00b8, 0x00c4, 0x00ce, 0x00da, 0x00e6, 0x00f3, 0x00ff, + 0x010a, 0x0115, 0x0119, 0x0122, 0x0137, 0x0142, 0x014c, 0x0155, + 0x015d, 0x0163, 0x016b, 0x0174, 0x017e, 0x0189, 0x0192, 0x019f, + 0x01aa, 0x01b5, 0x01bf, 0x01c8, 0x01d1, 0x01dd, 0x01e6, 0x01f4, + 0x0209, 0x0211, 0x0224, 0x0231, 0x023f, 0x024e, 0x0256, 0x025f, + 0x026a, 0x0273, 0x027c, 0x0289, 0x0292, 0x029d, 0x02a8, 0x02ae, + // Entry 40 - 7F + 0x02b9, 0x02c7, 0x02d2, 0x02dc, 0x02f4, 0x02fb, 0x02fe, 0x0309, + 0x0314, 0x031d, 0x0327, 0x0330, 0x033c, 0x0345, 0x034f, 0x0357, + 0x0361, 0x036b, 0x0376, 0x0381, 0x038c, 0x0398, 0x03a5, 0x03ae, + 0x03b8, 0x03c1, 0x03cd, 0x03d7, 0x03e4, 0x03ed, 0x03f8, 0x0403, + 0x040c, 0x0416, 0x042c, 0x0436, 0x0441, 0x044c, 0x0457, 0x0464, + 0x0473, 0x047e, 0x048a, 0x0494, 0x049d, 0x04a6, 0x04ab, 0x04bb, + 0x04c6, 0x04cc, 0x04d7, 0x04ea, 0x04fd, 0x0510, 0x0516, 0x051b, + 0x0528, 0x0530, 0x0539, 0x0543, 0x054c, 0x055a, 0x0560, 0x056a, + // Entry 80 - BF + 0x0574, 0x0581, 0x058e, 0x059e, 0x05a9, 0x05b3, 0x05bb, 0x05c6, + 0x05ce, 0x05da, 0x05e4, 0x05f9, 0x05fe, 0x0609, 0x0614, 0x061f, + 0x0629, 0x0632, 0x063d, 0x0648, 0x0650, 0x065b, 0x066c, 0x0675, + 0x0680, 0x068b, 0x0695, 0x069f, 0x06ab, 0x06b4, 0x06bc, 0x06c9, + 0x06d3, 0x06dc, 0x06e6, 0x06ec, 0x06f7, 0x0701, 0x070b, 0x0717, + 0x071f, 0x0729, 0x0732, 0x073e, 0x0746, 0x0751, 0x075b, 0x0764, + 0x076a, 0x0774, 0x077f, 0x078a, 0x0794, 0x079d, 0x07a3, 0x07aa, + 0x07b3, 0x07b3, 0x07bb, 0x07c0, 0x07c8, 0x07d2, 0x07d2, 0x07dc, + // Entry C0 - FF + 0x07dc, 0x07ee, 0x0800, 0x0806, 0x0811, 0x081e, 0x081e, 0x0825, + 0x0825, 0x0830, 0x0830, 0x0830, 0x0833, 0x0833, 0x083e, 0x083e, + 0x0848, 0x0853, 0x085d, 0x085d, 0x0861, 0x0866, 0x0866, 0x086d, + 0x0873, 0x0878, 0x0878, 0x087c, 0x0881, 0x0881, 0x0896, 0x08a5, + 0x08aa, 0x08ae, 0x08ae, 0x08b1, 0x08b8, 0x08b8, 0x08b8, 0x08c3, + 0x08c3, 0x08c7, 0x08cd, 0x08d8, 0x08e2, 0x08e6, 0x08ea, 0x08f1, + 0x08f6, 0x08ff, 0x0905, 0x090a, 0x0916, 0x091a, 0x0921, 0x092e, + 0x0932, 0x093c, 0x094e, 0x095a, 0x0967, 0x096f, 0x097a, 0x098e, + // Entry 100 - 13F + 0x0997, 0x0997, 0x09aa, 0x09b5, 0x09bf, 0x09ca, 0x09cf, 0x09db, + 0x09e6, 0x09f1, 0x09f6, 0x09fb, 0x0a02, 0x0a19, 0x0a19, 0x0a1e, + 0x0a32, 0x0a3c, 0x0a41, 0x0a47, 0x0a4b, 0x0a4f, 0x0a4f, 0x0a5d, + 0x0a65, 0x0a6e, 0x0a82, 0x0a82, 0x0a88, 0x0a88, 0x0a91, 0x0a9e, + 0x0a9e, 0x0aa6, 0x0aa6, 0x0abd, 0x0ad2, 0x0ad2, 0x0ae6, 0x0afc, + 0x0b06, 0x0b08, 0x0b14, 0x0b14, 0x0b18, 0x0b1d, 0x0b1d, 0x0b28, + 0x0b34, 0x0b34, 0x0b4c, 0x0b62, 0x0b62, 0x0b6c, 0x0b75, 0x0b7e, + 0x0b83, 0x0b92, 0x0baa, 0x0baa, 0x0baa, 0x0baf, 0x0bb8, 0x0bbd, + // Entry 140 - 17F + 0x0bbd, 0x0bc7, 0x0bc7, 0x0bd6, 0x0be1, 0x0be6, 0x0bfd, 0x0bfd, + 0x0c05, 0x0c0e, 0x0c14, 0x0c20, 0x0c2a, 0x0c2a, 0x0c2a, 0x0c30, + 0x0c36, 0x0c3d, 0x0c52, 0x0c66, 0x0c66, 0x0c75, 0x0c7f, 0x0c8b, + 0x0c8e, 0x0c93, 0x0c97, 0x0ca2, 0x0ca9, 0x0cad, 0x0cb4, 0x0cc0, + 0x0cc0, 0x0cc4, 0x0cc4, 0x0ccf, 0x0cda, 0x0cf0, 0x0cf0, 0x0cf0, + 0x0cf4, 0x0cfe, 0x0d06, 0x0d17, 0x0d23, 0x0d29, 0x0d2f, 0x0d4d, + 0x0d4d, 0x0d4d, 0x0d57, 0x0d62, 0x0d6a, 0x0d6f, 0x0d7a, 0x0d84, + 0x0d90, 0x0da8, 0x0dad, 0x0db8, 0x0dbd, 0x0dc8, 0x0dc8, 0x0dc8, + // Entry 180 - 1BF + 0x0dc8, 0x0dd2, 0x0dd2, 0x0dd7, 0x0ddb, 0x0de8, 0x0de8, 0x0df9, + 0x0e01, 0x0e06, 0x0e09, 0x0e16, 0x0e1b, 0x0e1b, 0x0e1b, 0x0e25, + 0x0e29, 0x0e34, 0x0e40, 0x0e4c, 0x0e54, 0x0e5e, 0x0e62, 0x0e6f, + 0x0e7a, 0x0e7f, 0x0e83, 0x0e9b, 0x0eac, 0x0eb8, 0x0ebf, 0x0eca, + 0x0eda, 0x0ee7, 0x0ef4, 0x0eff, 0x0f04, 0x0f04, 0x0f0b, 0x0f1a, + 0x0f24, 0x0f2f, 0x0f37, 0x0f37, 0x0f3c, 0x0f47, 0x0f58, 0x0f58, + 0x0f63, 0x0f67, 0x0f76, 0x0f81, 0x0f8d, 0x0f97, 0x0f97, 0x0f9d, + 0x0fa6, 0x0fb0, 0x0fc0, 0x0fc0, 0x0fc6, 0x0fd8, 0x0fdc, 0x0ff1, + // Entry 1C0 - 1FF + 0x0ff9, 0x1001, 0x1006, 0x100b, 0x1014, 0x1028, 0x1037, 0x103f, + 0x1047, 0x1051, 0x105b, 0x105b, 0x105b, 0x105b, 0x106c, 0x106c, + 0x1076, 0x1076, 0x1076, 0x1082, 0x1082, 0x1096, 0x109c, 0x109c, + 0x10ab, 0x10b7, 0x10c1, 0x10c1, 0x10c1, 0x10c6, 0x10cf, 0x10cf, + 0x10cf, 0x10cf, 0x10da, 0x10dd, 0x10e4, 0x10ee, 0x1107, 0x110e, + 0x1118, 0x1123, 0x1123, 0x112a, 0x112f, 0x113a, 0x1145, 0x1145, + 0x1158, 0x115e, 0x1162, 0x1162, 0x116d, 0x117c, 0x118b, 0x118b, + 0x1194, 0x119d, 0x11af, 0x11b5, 0x11b5, 0x11b5, 0x11c9, 0x11dd, + // Entry 200 - 23F + 0x11f4, 0x120a, 0x1211, 0x121c, 0x1222, 0x1227, 0x122b, 0x122b, + 0x1231, 0x1235, 0x123f, 0x1249, 0x125c, 0x1265, 0x1265, 0x1265, + 0x126a, 0x126e, 0x1274, 0x1279, 0x1284, 0x1287, 0x1293, 0x1293, + 0x12a0, 0x12ac, 0x12ac, 0x12b4, 0x12bf, 0x12c8, 0x12c8, 0x12ce, + 0x12ce, 0x12e1, 0x12e1, 0x12e8, 0x12f2, 0x12f9, 0x1304, 0x131d, + 0x1328, 0x1333, 0x133a, 0x1340, 0x1343, 0x1343, 0x1343, 0x1343, + 0x1343, 0x134b, 0x134b, 0x1350, 0x135b, 0x1361, 0x1366, 0x136b, + 0x1373, 0x1373, 0x137e, 0x137e, 0x1382, 0x1385, 0x138d, 0x1394, + // Entry 240 - 27F + 0x1399, 0x1399, 0x13a4, 0x13b1, 0x13be, 0x13be, 0x13c4, 0x13e4, + 0x13ee, 0x1404, 0x140a, 0x142b, 0x142b, 0x143e, 0x1460, 0x1479, + 0x1490, 0x14a6, 0x14bd, 0x14de, 0x14f7, 0x150f, 0x150f, 0x1529, + 0x1547, 0x1556, 0x1560, 0x157a, 0x1593, 0x159e, 0x15af, 0x15c6, + 0x15e2, 0x15fa, +} // Size: 1244 bytes + +var slLangStr string = "" + // Size: 6193 bytes + "afarÅ¡ÄinaabhaÅ¡ÄinaavestijÅ¡ÄinaafrikanÅ¡ÄinaakanÅ¡ÄinaamharÅ¡ÄinaaragonÅ¡Äina" + + "arabÅ¡ÄinaasamÅ¡ÄinaavarÅ¡ÄinaajmarÅ¡ÄinaazerbajdžanÅ¡ÄinabaÅ¡kirÅ¡ÄinabeloruÅ¡Ä" + + "inabolgarÅ¡ÄinabislamÅ¡ÄinabambarÅ¡ÄinabengalÅ¡ÄinatibetanÅ¡ÄinabretonÅ¡Äinabo" + + "sanÅ¡ÄinakatalonÅ¡ÄinaÄeÄenÅ¡ÄinaÄamorÅ¡ÄinakorziÅ¡ÄinakrijÅ¡ÄinaÄeÅ¡Äinastara " + + "cerkvena slovanÅ¡ÄinaÄuvaÅ¡ÄinavaližanÅ¡ÄinadanÅ¡ÄinanemÅ¡ÄinadiveÅ¡Äinadzonka" + + "evenÅ¡ÄinagrÅ¡ÄinaangleÅ¡ÄinaesperantoÅ¡panÅ¡ÄinaestonÅ¡ÄinabaskovÅ¡ÄinaperzijÅ¡" + + "ÄinafulÅ¡ÄinafinÅ¡ÄinafidžijÅ¡ÄinaferÅ¡ÄinafrancoÅ¡ÄinafrizijÅ¡ÄinairÅ¡ÄinaÅ¡ko" + + "tska gelÅ¡ÄinagalicijÅ¡ÄinagvaranijÅ¡ÄinagudžaratÅ¡ÄinamanÅ¡ÄinahavÅ¡Äinahebre" + + "jÅ¡ÄinahindujÅ¡Äinahiri motuhrvaÅ¡Äinahaitijska kreolÅ¡ÄinamadžarÅ¡ÄinaarmenÅ¡" + + "ÄinahererointerlingvaindonezijÅ¡ÄinainterlingveigboÅ¡ÄinaseÄuanska jiÅ¡Äin" + + "ainupiaÅ¡ÄinaidoislandÅ¡ÄinaitalijanÅ¡ÄinainuktitutÅ¡ÄinajaponÅ¡ÄinajavanÅ¡Äin" + + "agruzinÅ¡ÄinakongovÅ¡ÄinakikujÅ¡ÄinakvanjamakazaÅ¡ÄinagrenlandÅ¡ÄinakmerÅ¡Äina" + + "kanadakorejÅ¡ÄinakanurÅ¡ÄinakaÅ¡mirÅ¡ÄinakurdÅ¡ÄinakomijÅ¡ÄinakornijÅ¡Äinakirgi" + + "Å¡ÄinalatinÅ¡ÄinaluksemburÅ¡ÄinagandalimburÅ¡ÄinalingalalaoÅ¡ÄinalitovÅ¡Äinal" + + "uba-katangalatvijÅ¡ÄinamalagaÅ¡ÄinamarshallovÅ¡ÄinamaorÅ¡ÄinamakedonÅ¡Äinamal" + + "ajalamÅ¡ÄinamongolÅ¡ÄinamaratÅ¡ÄinamalajÅ¡ÄinamalteÅ¡ÄinaburmanÅ¡ÄinanaurujÅ¡Äi" + + "naseverna ndebelÅ¡ÄinanepalÅ¡ÄinanizozemÅ¡ÄinanovonorveÅ¡Äinaknjižna norveÅ¡Ä" + + "inajužna ndebelÅ¡ÄinanavajÅ¡ÄinanjanÅ¡ÄinaokcitanÅ¡ÄinaanaÅ¡inabÅ¡Äinaoromoori" + + "jÅ¡ÄinaosetinÅ¡ÄinapandžabÅ¡ÄinapalijÅ¡ÄinapoljÅ¡ÄinapaÅ¡tunÅ¡ÄinaportugalÅ¡Äina" + + "keÄuanÅ¡ÄinaretoromanÅ¡ÄinarundÅ¡ÄinaromunÅ¡ÄinaruÅ¡ÄinaruandÅ¡Äinasanskrtsard" + + "inÅ¡ÄinasindÅ¡Äinaseverna samijÅ¡ÄinasangosingalÅ¡ÄinaslovaÅ¡ÄinaslovenÅ¡Äinas" + + "amoanÅ¡ÄinaÅ¡onÅ¡ÄinasomalÅ¡ÄinaalbanÅ¡ÄinasrbÅ¡ÄinasvazijÅ¡ÄinasesotosundanÅ¡Äi" + + "naÅ¡vedÅ¡ÄinasvahilitamilÅ¡ÄinatelugijÅ¡ÄinatadžiÅ¡ÄinatajÅ¡ÄinatigrajÅ¡Äinatur" + + "kmenÅ¡ÄinacvanÅ¡ÄinatongÅ¡ÄinaturÅ¡ÄinatsongatatarÅ¡ÄinatahitÅ¡ÄinaujgurÅ¡Äinau" + + "krajinÅ¡ÄinaurdujÅ¡ÄinauzbeÅ¡ÄinavendavietnamÅ¡ÄinavolapukvalonÅ¡ÄinavolofÅ¡Äi" + + "nakoÅ¡ÄinajidiÅ¡jorubÅ¡ÄinakitajÅ¡ÄinazulujÅ¡ÄinaaÄejÅ¡ÄinaaÄolijÅ¡Äinaadangmej" + + "Å¡ÄinaadigejÅ¡ÄinaafrihiliaghemÅ¡ÄinaainujÅ¡ÄinaakadÅ¡ÄinaaleutÅ¡Äinajužna al" + + "tajÅ¡Äinastara angleÅ¡ÄinaangikaÅ¡ÄinaaramejÅ¡ÄinaaravkanÅ¡ÄinaarapaÅ¡Äinaarav" + + "aÅ¡ÄinaasujÅ¡ÄinaasturijÅ¡ÄinaavadÅ¡ÄinabeludžijÅ¡ÄinabalijÅ¡Äinabasabedžabemb" + + "abenajÅ¡ÄinazahodnobaluÄijÅ¡Äinabodžpuribikolski jezikedosiksikabradžbakan" + + "Å¡ÄinabodojÅ¡ÄinaburjatÅ¡ÄinabuginÅ¡ÄinablinÅ¡ÄinakadoÅ¡Äinakaribski jezikseb" + + "uanÅ¡ÄinaÄigajÅ¡ÄinaÄibÄevÅ¡ÄinaÄagatajÅ¡ÄinatrukeÅ¡ÄinamarijÅ¡ÄinaÄinuÅ¡ki žar" + + "gonÄoktavÅ¡ÄinaÄipevÅ¡ÄinaÄerokeÅ¡ÄinaÄejenÅ¡Äinasoranska kurdÅ¡ÄinakoptÅ¡Äina" + + "krimska tatarÅ¡ÄinakaÅ¡ubÅ¡ÄinadakotÅ¡ÄinadarginÅ¡ÄinataitajÅ¡ÄinadelavarÅ¡Äina" + + "slavejÅ¡ÄinadogribdinkazarmajÅ¡Äinadogridolnja lužiÅ¡ka srbÅ¡Äinadualasrednj" + + "a nizozemÅ¡Äinajola-fonjiÅ¡ÄinadiulaembujÅ¡ÄinaefiÅ¡Äinastara egipÄanÅ¡Äinaek" + + "ajukelamÅ¡Äinasrednja angleÅ¡ÄinaevondovÅ¡ÄinafangijÅ¡ÄinafilipinÅ¡ÄinafonÅ¡Äi" + + "nasrednja francoÅ¡Äinastara francoÅ¡Äinaseverna frizijÅ¡Äinavzhodna frizijÅ¡" + + "ÄinafurlanÅ¡ÄinagagagavÅ¡ÄinagajÅ¡ÄinagbajÅ¡ÄinaetiopÅ¡ÄinakiribatÅ¡Äinasredn" + + "ja visoka nemÅ¡Äinastara visoka nemÅ¡ÄinagondigorontalÅ¡ÄinagotÅ¡ÄinagrebÅ¡Äi" + + "nastara grÅ¡ÄinanemÅ¡Äina (Å vica)gusijÅ¡ÄinahaidÅ¡ÄinahavajÅ¡ÄinahiligajnonÅ¡Ä" + + "inahetitÅ¡ÄinahmonÅ¡Äinagornja lužiÅ¡ka srbÅ¡ÄinahupaibanÅ¡ÄinailokanÅ¡Äinaing" + + "uÅ¡ÄinalojbanngombamaÄamejÅ¡Äinajudovska perzijÅ¡Äinajudovska arabÅ¡Äinakara" + + "kalpaÅ¡ÄinakabilÅ¡ÄinakaÄinÅ¡ÄinakambaÅ¡ÄinakavikabardinÅ¡Äinatjapska nigerij" + + "Å¡ÄinamakondÅ¡ÄinazelenortskootoÅ¡ka kreolÅ¡ÄinakasikotanÅ¡Äinakoyra chiinik" + + "alenjinÅ¡Äinakimbundukomi-permjaÅ¡ÄinakonkanÅ¡ÄinakosrajÅ¡ÄinakpelejÅ¡Äinakar" + + "aÄaj-balkarÅ¡ÄinakarelÅ¡ÄinakurukshambalabafiakumiÅ¡ÄinakutenajÅ¡ÄinaladinÅ¡Ä" + + "inalangijÅ¡ÄinalandalambalezginÅ¡ÄinalakotÅ¡ÄinamongolozisevernolurijÅ¡Äinal" + + "uba-lulualuisenÅ¡ÄinalundaluolushailuhijÅ¡ÄinamadurÅ¡ÄinamagadÅ¡Äinamaitilim" + + "akasarÅ¡ÄinamandingomasajÅ¡ÄinamokÅ¡avÅ¡ÄinamandarÅ¡ÄinamendemerumorisjenÅ¡Äin" + + "asrednja irÅ¡Äinamakuva-metometamikmaÅ¡ÄinaminangkabaumandžurÅ¡ÄinamanipurÅ¡" + + "ÄinamohoÅ¡ÄinamosijÅ¡ÄinamundangveÄ jezikovmirandeÅ¡ÄinamarvarÅ¡ÄinaerzjanÅ¡" + + "ÄinamazanderanÅ¡ÄinanapolitanÅ¡Äinakhoekhoenizka nemÅ¡ÄinanevarÅ¡ÄinaniaÅ¡Äi" + + "naniuejÅ¡ÄinakwasionogajÅ¡Äinastara nordijÅ¡Äinan’koseverna sotÅ¡ÄinanuerÅ¡Äi" + + "naklasiÄna nevarÅ¡ÄinanjamveÅ¡Äinanjankolenjoronzimaosageotomanska turÅ¡Äin" + + "apangasinanÅ¡ÄinapampanÅ¡ÄinapapiamentupalavanÅ¡Äinastara perzijÅ¡ÄinafeniÄa" + + "nÅ¡ÄinaponpejÅ¡Äinastara provansalÅ¡ÄinaquicheradžastanÅ¡ÄinarapanujÅ¡Äinarar" + + "otongÅ¡ÄinaromboromÅ¡ÄinaaromunÅ¡ÄinarwajakutÅ¡Äinasamaritanska aramejÅ¡Äinas" + + "amburÅ¡ÄinasasaÅ¡ÄinasantalÅ¡ÄinasangujÅ¡ÄinasicilijanÅ¡ÄinaÅ¡kotÅ¡Äinajužna ku" + + "rdÅ¡ÄinasenaselkupÅ¡Äinakoyraboro sennistara irÅ¡Äinatahelitska berberÅ¡Äina" + + "Å¡anÅ¡ÄinasidamÅ¡Äinajužna samijÅ¡ÄinaluleÅ¡ka samijÅ¡Äinainarska samijÅ¡Äinas" + + "amijÅ¡Äina Skoltsurinamska kreolÅ¡ÄinasererÅ¡ÄinasukumasusujÅ¡ÄinasumerÅ¡Äina" + + "Å¡ikomorklasiÄna sirÅ¡ÄinasirÅ¡ÄinatemnejÅ¡ÄinatesotetumÅ¡ÄinatigrejÅ¡Äinativ" + + "Å¡ÄinatokelavÅ¡ÄinaklingonÅ¡ÄinatlingitÅ¡ÄinatamajaÅ¡Äinamalavijska tongÅ¡Äin" + + "atok pisintsimÅ¡ÄinatumbukÅ¡ÄinatuvalujÅ¡ÄinatasawaqtuvinÅ¡ÄinatamaÅ¡ek (sred" + + "nji atlas)udmurtÅ¡Äinaugaritski jezikumbundÅ¡Äinaneznan ali neveljaven jez" + + "ikvajÅ¡ÄinavotjaÅ¡ÄinavunjovalamÅ¡ÄinavarajÅ¡ÄinavaÅ¡ajÅ¡ÄinavarlpirÅ¡Äinakalmi" + + "Å¡ÄinasogÅ¡ÄinajaojÅ¡ÄinajapÅ¡ÄinakantonÅ¡ÄinazapoteÅ¡Äinaznakovni jezik Blis" + + "szenaÅ¡Äinastandardni maroÅ¡ki tamazigzunijÅ¡Äinabrez jezikoslovne vsebinez" + + "azajÅ¡Äinasodobna standardna arabÅ¡Äinaavstrijska nemÅ¡Äinavisoka nemÅ¡Äina " + + "(Å vica)avstralska angleÅ¡Äinakanadska angleÅ¡ÄinaangleÅ¡Äina (VB)angleÅ¡Äina" + + " (ZDA)latinskoameriÅ¡ka Å¡panÅ¡Äinaiberska Å¡panÅ¡Äinakanadska francoÅ¡ÄinaÅ¡vi" + + "carska francoÅ¡Äinanizka saÅ¡ÄinaflamÅ¡Äinabrazilska portugalÅ¡Äinaiberska p" + + "ortugalÅ¡ÄinamoldavÅ¡ÄinasrbohrvaÅ¡Äinasvahili (Kongo)poenostavljena kitajÅ¡" + + "Äinatradicionalna kitajÅ¡Äina" + +var slLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000b, 0x0016, 0x0024, 0x0032, 0x003d, 0x0049, 0x0056, + 0x0061, 0x006c, 0x0077, 0x0083, 0x0096, 0x00a4, 0x00b1, 0x00be, + 0x00cb, 0x00d8, 0x00e5, 0x00f3, 0x0100, 0x010c, 0x011a, 0x0128, + 0x0135, 0x0141, 0x014c, 0x0156, 0x0172, 0x017e, 0x018d, 0x0197, + 0x01a1, 0x01ac, 0x01b2, 0x01bd, 0x01c6, 0x01d2, 0x01db, 0x01e7, + 0x01f3, 0x0200, 0x020d, 0x0217, 0x0221, 0x022f, 0x0239, 0x0246, + 0x0253, 0x025c, 0x026f, 0x027d, 0x028c, 0x029c, 0x02a6, 0x02b0, + 0x02bd, 0x02ca, 0x02d3, 0x02de, 0x02f4, 0x0302, 0x030e, 0x0314, + // Entry 40 - 7F + 0x031f, 0x032f, 0x033a, 0x0345, 0x0359, 0x0366, 0x0369, 0x0376, + 0x0385, 0x0395, 0x03a1, 0x03ad, 0x03ba, 0x03c7, 0x03d3, 0x03db, + 0x03e6, 0x03f5, 0x0400, 0x0406, 0x0412, 0x041e, 0x042c, 0x0437, + 0x0443, 0x0450, 0x045c, 0x0468, 0x0478, 0x047d, 0x048a, 0x0491, + 0x049b, 0x04a7, 0x04b3, 0x04c0, 0x04cd, 0x04de, 0x04e9, 0x04f7, + 0x0507, 0x0514, 0x0520, 0x052c, 0x0538, 0x0545, 0x0552, 0x0567, + 0x0573, 0x0573, 0x0581, 0x0591, 0x05a6, 0x05ba, 0x05c6, 0x05d1, + 0x05df, 0x05ef, 0x05f4, 0x05ff, 0x060c, 0x061b, 0x0627, 0x0632, + // Entry 80 - BF + 0x0640, 0x064f, 0x065d, 0x066d, 0x0678, 0x0684, 0x068d, 0x0699, + 0x06a0, 0x06ad, 0x06b8, 0x06cc, 0x06d1, 0x06de, 0x06ea, 0x06f7, + 0x0704, 0x070f, 0x071b, 0x0727, 0x0731, 0x073e, 0x0744, 0x0751, + 0x075d, 0x0764, 0x0770, 0x077e, 0x078b, 0x0795, 0x07a2, 0x07b0, + 0x07bb, 0x07c6, 0x07d0, 0x07d6, 0x07e2, 0x07ee, 0x07fa, 0x0808, + 0x0814, 0x081f, 0x0824, 0x0832, 0x0839, 0x0845, 0x0851, 0x085a, + 0x0860, 0x086c, 0x086c, 0x0878, 0x0884, 0x0890, 0x089e, 0x08ad, + 0x08ba, 0x08ba, 0x08c2, 0x08ce, 0x08da, 0x08e5, 0x08e5, 0x08f1, + // Entry C0 - FF + 0x08f1, 0x0904, 0x0916, 0x0923, 0x0930, 0x093e, 0x093e, 0x094a, + 0x094a, 0x0956, 0x0956, 0x0956, 0x0961, 0x0961, 0x096f, 0x096f, + 0x097a, 0x098a, 0x0996, 0x0996, 0x099a, 0x099a, 0x099a, 0x099a, + 0x09a0, 0x09a5, 0x09a5, 0x09b1, 0x09b1, 0x09b1, 0x09c7, 0x09d0, + 0x09de, 0x09e1, 0x09e1, 0x09e1, 0x09e8, 0x09e8, 0x09e8, 0x09fa, + 0x09fa, 0x0a06, 0x0a06, 0x0a13, 0x0a1f, 0x0a1f, 0x0a2a, 0x0a2a, + 0x0a35, 0x0a43, 0x0a43, 0x0a43, 0x0a50, 0x0a5d, 0x0a6c, 0x0a7b, + 0x0a87, 0x0a93, 0x0aa4, 0x0ab2, 0x0abf, 0x0acd, 0x0ada, 0x0aee, + // Entry 100 - 13F + 0x0af9, 0x0af9, 0x0b0d, 0x0b1a, 0x0b26, 0x0b33, 0x0b40, 0x0b4e, + 0x0b5b, 0x0b61, 0x0b66, 0x0b73, 0x0b78, 0x0b93, 0x0b93, 0x0b98, + 0x0bae, 0x0bbf, 0x0bc4, 0x0bc4, 0x0bd0, 0x0bda, 0x0bda, 0x0bef, + 0x0bf5, 0x0c00, 0x0c14, 0x0c14, 0x0c22, 0x0c22, 0x0c2f, 0x0c3d, + 0x0c3d, 0x0c47, 0x0c47, 0x0c5c, 0x0c6f, 0x0c6f, 0x0c84, 0x0c99, + 0x0ca6, 0x0ca8, 0x0cb4, 0x0cb4, 0x0cbe, 0x0cc9, 0x0cc9, 0x0cd5, + 0x0ce3, 0x0ce3, 0x0cfc, 0x0d13, 0x0d13, 0x0d18, 0x0d27, 0x0d31, + 0x0d3c, 0x0d4b, 0x0d5e, 0x0d5e, 0x0d5e, 0x0d6a, 0x0d6a, 0x0d75, + // Entry 140 - 17F + 0x0d75, 0x0d81, 0x0d81, 0x0d92, 0x0d9e, 0x0da9, 0x0dc4, 0x0dc4, + 0x0dc8, 0x0dd3, 0x0dd3, 0x0de0, 0x0deb, 0x0deb, 0x0deb, 0x0df1, + 0x0df7, 0x0e06, 0x0e1c, 0x0e30, 0x0e30, 0x0e40, 0x0e4c, 0x0e59, + 0x0e59, 0x0e65, 0x0e69, 0x0e78, 0x0e78, 0x0e8e, 0x0e9b, 0x0eba, + 0x0eba, 0x0eba, 0x0eba, 0x0ebe, 0x0eca, 0x0ed6, 0x0ed6, 0x0ed6, + 0x0ed6, 0x0ee5, 0x0eed, 0x0eff, 0x0f0c, 0x0f19, 0x0f26, 0x0f3c, + 0x0f3c, 0x0f3c, 0x0f48, 0x0f4d, 0x0f55, 0x0f5a, 0x0f5a, 0x0f65, + 0x0f73, 0x0f7f, 0x0f8c, 0x0f91, 0x0f96, 0x0fa3, 0x0fa3, 0x0fa3, + // Entry 180 - 1BF + 0x0fa3, 0x0faf, 0x0faf, 0x0fb4, 0x0fb8, 0x0fcb, 0x0fcb, 0x0fd5, + 0x0fe2, 0x0fe7, 0x0fea, 0x0ff0, 0x0ffc, 0x0ffc, 0x0ffc, 0x1008, + 0x1008, 0x1014, 0x101b, 0x1029, 0x1031, 0x103d, 0x103d, 0x104b, + 0x1058, 0x105d, 0x1061, 0x1070, 0x1081, 0x108c, 0x1090, 0x109c, + 0x10a7, 0x10b6, 0x10c4, 0x10cf, 0x10db, 0x10db, 0x10e2, 0x10ee, + 0x10ee, 0x10fc, 0x1109, 0x1109, 0x1109, 0x1116, 0x1127, 0x1127, + 0x1137, 0x113f, 0x114f, 0x115b, 0x1165, 0x1171, 0x1171, 0x1177, + 0x1177, 0x1183, 0x1196, 0x1196, 0x119c, 0x11ae, 0x11b9, 0x11cf, + // Entry 1C0 - 1FF + 0x11dc, 0x11e4, 0x11e9, 0x11ee, 0x11f3, 0x1207, 0x1218, 0x1218, + 0x1225, 0x122f, 0x123d, 0x123d, 0x123d, 0x123d, 0x1250, 0x1250, + 0x125f, 0x125f, 0x125f, 0x126c, 0x126c, 0x1282, 0x1288, 0x1288, + 0x1299, 0x12a7, 0x12b6, 0x12b6, 0x12b6, 0x12bb, 0x12c5, 0x12c5, + 0x12c5, 0x12c5, 0x12d2, 0x12d5, 0x12d5, 0x12e1, 0x12fb, 0x1308, + 0x1313, 0x1320, 0x1320, 0x1320, 0x132d, 0x133d, 0x1349, 0x1349, + 0x135b, 0x135b, 0x135f, 0x135f, 0x136c, 0x137b, 0x138a, 0x138a, + 0x13a2, 0x13ad, 0x13ad, 0x13b9, 0x13b9, 0x13b9, 0x13cc, 0x13e1, + // Entry 200 - 23F + 0x13f5, 0x1407, 0x1407, 0x1407, 0x141e, 0x142a, 0x142a, 0x142a, + 0x1430, 0x143c, 0x1448, 0x1450, 0x1464, 0x146e, 0x146e, 0x146e, + 0x147b, 0x147f, 0x147f, 0x148b, 0x1498, 0x14a2, 0x14b0, 0x14b0, + 0x14be, 0x14cc, 0x14cc, 0x14d9, 0x14ef, 0x14f8, 0x14f8, 0x14f8, + 0x14f8, 0x1503, 0x1503, 0x1510, 0x151e, 0x1525, 0x1531, 0x1549, + 0x1556, 0x1565, 0x1572, 0x158d, 0x1597, 0x1597, 0x1597, 0x1597, + 0x1597, 0x15a3, 0x15a3, 0x15a8, 0x15a8, 0x15b4, 0x15c0, 0x15cd, + 0x15db, 0x15db, 0x15e7, 0x15e7, 0x15f1, 0x15fc, 0x1606, 0x1606, + // Entry 240 - 27F + 0x1606, 0x1606, 0x1613, 0x1620, 0x1634, 0x1634, 0x163f, 0x165a, + 0x1666, 0x167f, 0x168b, 0x16a9, 0x16a9, 0x16be, 0x16d8, 0x16ef, + 0x1704, 0x1715, 0x1727, 0x1745, 0x1759, 0x1759, 0x1759, 0x176f, + 0x1787, 0x1796, 0x17a1, 0x17ba, 0x17d1, 0x17de, 0x17ed, 0x17fc, + 0x1817, 0x1831, +} // Size: 1244 bytes + +var sqLangStr string = "" + // Size: 2672 bytes + "abkazishtafrikanishtakanishtamarikishtarabishtasamezishtazerbajxhanishtb" + + "ashkirishtbjellorusishtbullgarishtbambarishtbengalishttibetishtbretonish" + + "tboshnjakishtkatalonishtçeçenishtkorsikanishtçekishtçuvashishtuellsishtd" + + "anishtgjermanishtxhongaishtjuishtgreqishtanglishtesperantospanjishteston" + + "ishtbaskishtpersishtfinlandishtfixhianishtfaroishtfrëngjishtfrizianishti" + + "rlandishtgalikeguaranishtguxharatishtmanksishthausishthebraishtindishtkr" + + "oatishthaitianishthungarishtarmenishtindonezishtigboishtsishuanishtislan" + + "dishtitalishtinuktitutishtjaponishtjavanishtgjeorgjishtkikujuishtkazakis" + + "htkalalisutishtkmerekanadekoreanishtkashmirekurdekornishishtkirgizishtla" + + "tinishtluksemburgasegandishtlingalishtlaosishtlituanishtlubakatangishtle" + + "tonishtmalagezishtmaorishtmaqedonishtmalajalamishtmongolishtmaratishtmal" + + "ajishtmaltishtbirmanishtndebelishte veriorenepalishtholandishtninorske n" + + "orvegjezebokmalishte norvegjezeoromoishtorijaishtpanxhabishtpolonishtpas" + + "htoishtportugalishtkeçuaishtromerundishtrumanishtrusishtkiniaruandishtsa" + + "nskritishtsindishtsamishte verioresangoishtsinhalishtsllovakishtslloveni" + + "shtshonishtsomalishtshqipserbishtsundanishtsuedishtsuahilishttamiletelug" + + "etaxhikishttajlandishttigrinjeturkmenishttonganishtturqishttatarishtujgu" + + "reukrainishturduuzbekevietnamishtulufishtxhozaishtjorubishtkinezishtzulu" + + "ishtagemishtmapuçishtasuishtbembaishtbenaishtbalokishte perëndimorebodoi" + + "shtçigishtçerokishtkurdishte soranitaitishtzarmishtsorbishte e poshtmedu" + + "alaishtxhulafonjishtembuishtfilipinasegagauzishtgjermanishte zviceranegu" + + "sishthuajanishtsorbiane e sipërmengombishtmaçamishtkabilishtkambaishtmak" + + "ondishtkabuverdianishtkojraçinishtkalenjinishtkomishte permiakekonkanish" + + "tshambalishtbafianishtlangishtlakotishtlurishte verioreluoishtlujaishtma" + + "saishtmeruishtnorisjenemakuamitoishtmetaishtmohaukishtmundagishtemazande" + + "ranishtnamaishtegjermanishte e vendeve të ulëtakuasishtnkoishtnuerishtni" + + "ankolishtkiçeishtromboishteruaishtsamburishtsanguishtkurdishte jugoresen" + + "aishtesenishte kojraboretaçelitishtsamishte jugoresamishte lulejesamisht" + + "e inariesamishte skoltetezoishttasaukishttamaziatishte atlase qendroree " + + "panjohurvaishtvunjishtuarlipirishtsogishttamazishte standarde marokenenu" + + "k ka përmbajtje gjuhësorearabishte standarde modernegjermanishte austria" + + "kegjermanishte zvicerane (dialekti i Alpeve)anglishte australianeanglish" + + "te kanadezeanglishte britanikeanglishte amerikanespanjishte amerikano-la" + + "tinespanjishte evropianespanjishte meksikanefrëngjishte kanadezefrëngjis" + + "hte zviceranegjermanishte saksone e vendeve të ulëtaflamandishtportugali" + + "shte brazilianeportugalishte evropianemoldavishteSerbo-Kroatishtsuahilis" + + "hte kongojekinezishte e thjeshtuarkinezishte tradicionale" + +var sqLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0009, 0x0014, 0x001c, 0x0026, 0x0026, + 0x002e, 0x0038, 0x0038, 0x0038, 0x0047, 0x0052, 0x005f, 0x006a, + 0x006a, 0x0074, 0x007e, 0x0087, 0x0091, 0x009d, 0x00a8, 0x00b3, + 0x00b3, 0x00bf, 0x00bf, 0x00c7, 0x00c7, 0x00d2, 0x00db, 0x00e2, + 0x00ed, 0x00ed, 0x00f7, 0x00fd, 0x0105, 0x010d, 0x0116, 0x011f, + 0x0128, 0x0130, 0x0138, 0x0138, 0x0143, 0x014e, 0x0156, 0x0161, + 0x016c, 0x0176, 0x0176, 0x017c, 0x0186, 0x0192, 0x019b, 0x01a3, + 0x01ac, 0x01b3, 0x01b3, 0x01bc, 0x01c7, 0x01d1, 0x01da, 0x01da, + // Entry 40 - 7F + 0x01da, 0x01e5, 0x01e5, 0x01ed, 0x01f8, 0x01f8, 0x01f8, 0x0202, + 0x020a, 0x0217, 0x0220, 0x0229, 0x0234, 0x0234, 0x023e, 0x023e, + 0x0247, 0x0254, 0x0259, 0x025f, 0x0269, 0x0269, 0x0271, 0x0276, + 0x0276, 0x0281, 0x028b, 0x0294, 0x02a1, 0x02a9, 0x02a9, 0x02b3, + 0x02bb, 0x02c5, 0x02d3, 0x02dc, 0x02e7, 0x02e7, 0x02ef, 0x02fa, + 0x0307, 0x0311, 0x031a, 0x0323, 0x032b, 0x0335, 0x0335, 0x0348, + 0x0351, 0x0351, 0x035b, 0x036e, 0x0384, 0x0384, 0x0384, 0x0384, + 0x0384, 0x0384, 0x038d, 0x0396, 0x0396, 0x03a1, 0x03a1, 0x03aa, + // Entry 80 - BF + 0x03b4, 0x03c0, 0x03ca, 0x03ce, 0x03d6, 0x03df, 0x03e6, 0x03f4, + 0x0400, 0x0400, 0x0408, 0x0418, 0x0421, 0x042b, 0x0436, 0x0441, + 0x0441, 0x0449, 0x0452, 0x0457, 0x045f, 0x045f, 0x045f, 0x0469, + 0x0471, 0x047b, 0x0481, 0x0487, 0x0491, 0x049c, 0x04a4, 0x04af, + 0x04af, 0x04b9, 0x04c1, 0x04c1, 0x04ca, 0x04ca, 0x04d0, 0x04da, + 0x04de, 0x04e4, 0x04e4, 0x04ef, 0x04ef, 0x04ef, 0x04f7, 0x0500, + 0x0500, 0x0509, 0x0509, 0x0512, 0x051a, 0x051a, 0x051a, 0x051a, + 0x051a, 0x051a, 0x051a, 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, + // Entry C0 - FF + 0x0522, 0x0522, 0x0522, 0x0522, 0x0522, 0x052c, 0x052c, 0x052c, + 0x052c, 0x052c, 0x052c, 0x052c, 0x0533, 0x0533, 0x0533, 0x0533, + 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, + 0x0533, 0x053c, 0x053c, 0x0544, 0x0544, 0x0544, 0x055b, 0x055b, + 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, 0x055b, + 0x055b, 0x0563, 0x0563, 0x0563, 0x0563, 0x0563, 0x0563, 0x0563, + 0x0563, 0x0563, 0x0563, 0x0563, 0x0563, 0x056b, 0x056b, 0x056b, + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x0575, 0x0575, 0x0585, + // Entry 100 - 13F + 0x0585, 0x0585, 0x0585, 0x0585, 0x0585, 0x0585, 0x058d, 0x058d, + 0x058d, 0x058d, 0x058d, 0x0595, 0x0595, 0x05a8, 0x05a8, 0x05b1, + 0x05b1, 0x05be, 0x05be, 0x05be, 0x05c6, 0x05c6, 0x05c6, 0x05c6, + 0x05c6, 0x05c6, 0x05c6, 0x05c6, 0x05c6, 0x05c6, 0x05c6, 0x05d0, + 0x05d0, 0x05d0, 0x05d0, 0x05d0, 0x05d0, 0x05d0, 0x05d0, 0x05d0, + 0x05d0, 0x05d0, 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, + 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, 0x05da, + 0x05da, 0x05da, 0x05f0, 0x05f0, 0x05f0, 0x05f7, 0x05f7, 0x05f7, + // Entry 140 - 17F + 0x05f7, 0x0601, 0x0601, 0x0601, 0x0601, 0x0601, 0x0614, 0x0614, + 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, 0x0614, + 0x061d, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0630, 0x0630, + 0x0630, 0x0639, 0x0639, 0x0639, 0x0639, 0x0639, 0x0643, 0x0652, + 0x0652, 0x0652, 0x0652, 0x0652, 0x0652, 0x065f, 0x065f, 0x065f, + 0x065f, 0x066b, 0x066b, 0x067c, 0x0686, 0x0686, 0x0686, 0x0686, + 0x0686, 0x0686, 0x0686, 0x0686, 0x0691, 0x069b, 0x069b, 0x069b, + 0x069b, 0x069b, 0x06a3, 0x06a3, 0x06a3, 0x06a3, 0x06a3, 0x06a3, + // Entry 180 - 1BF + 0x06a3, 0x06ac, 0x06ac, 0x06ac, 0x06ac, 0x06bc, 0x06bc, 0x06bc, + 0x06bc, 0x06bc, 0x06c3, 0x06c3, 0x06cb, 0x06cb, 0x06cb, 0x06cb, + 0x06cb, 0x06cb, 0x06cb, 0x06cb, 0x06cb, 0x06d3, 0x06d3, 0x06d3, + 0x06d3, 0x06d3, 0x06db, 0x06e4, 0x06e4, 0x06f1, 0x06f9, 0x06f9, + 0x06f9, 0x06f9, 0x06f9, 0x0703, 0x0703, 0x0703, 0x070e, 0x070e, + 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x071c, 0x071c, + 0x071c, 0x0725, 0x0746, 0x0746, 0x0746, 0x0746, 0x0746, 0x074e, + 0x074e, 0x074e, 0x074e, 0x074e, 0x0755, 0x0755, 0x075d, 0x075d, + // Entry 1C0 - 1FF + 0x075d, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, + 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, + 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0768, 0x0771, 0x0771, + 0x0771, 0x0771, 0x0771, 0x0771, 0x0771, 0x077b, 0x077b, 0x077b, + 0x077b, 0x077b, 0x077b, 0x0782, 0x0782, 0x0782, 0x0782, 0x078c, + 0x078c, 0x078c, 0x078c, 0x078c, 0x0795, 0x0795, 0x0795, 0x0795, + 0x07a5, 0x07a5, 0x07ae, 0x07ae, 0x07ae, 0x07c0, 0x07c0, 0x07c0, + 0x07cc, 0x07cc, 0x07cc, 0x07cc, 0x07cc, 0x07cc, 0x07db, 0x07ea, + // Entry 200 - 23F + 0x07f9, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, + 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, 0x0808, + 0x0808, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, + 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, + 0x0810, 0x0810, 0x0810, 0x0810, 0x0810, 0x081a, 0x081a, 0x0837, + 0x0837, 0x0837, 0x0837, 0x0841, 0x0847, 0x0847, 0x0847, 0x0847, + 0x0847, 0x0847, 0x0847, 0x084f, 0x084f, 0x084f, 0x084f, 0x084f, + 0x085b, 0x085b, 0x085b, 0x085b, 0x0862, 0x0862, 0x0862, 0x0862, + // Entry 240 - 27F + 0x0862, 0x0862, 0x0862, 0x0862, 0x0862, 0x0862, 0x0862, 0x087f, + 0x087f, 0x089c, 0x089c, 0x08b7, 0x08b7, 0x08cd, 0x08f7, 0x090c, + 0x091e, 0x0931, 0x0944, 0x095f, 0x0973, 0x0987, 0x0987, 0x099c, + 0x09b2, 0x09db, 0x09e6, 0x09fe, 0x0a15, 0x0a20, 0x0a2f, 0x0a42, + 0x0a59, 0x0a70, +} // Size: 1244 bytes + +var srLangStr string = "" + // Size: 7594 bytes + "ÐфарÑкиабхаÑкиÐвеÑтанÑкиафриканÑаканамхарÑкиÐрагонежанÑкиарапÑкиаÑамÑкиÐ" + + "варÑкиÐјмараазербејџанÑкибашкирÑкибелоруÑкибугарÑкиБиÑламабамбарабенгал" + + "ÑкитибетанÑкибретонÑкибоÑанÑкикаталонÑкиЧеченÑкиЧаморокорзиканÑкиКричеш" + + "киСтароÑловенÑкиЧувашкивелшкиданÑкинемачкиДивехијÑкиџонгаевегрчкиенглеÑ" + + "киеÑперантошпанÑкиеÑтонÑкибаÑкијÑкиперÑијÑкиФулахфинÑкифиџијÑкифарÑкифр" + + "анцуÑкизападни фризијÑкиирÑкиШкотÑки ГалÑкигалицијÑкигваранигуџаратиман" + + "ÑкихауÑахебрејÑкихиндиХири МотухрватÑкихаићанÑкимађарÑкијерменÑкиХереро" + + "ИнтерлингваиндонежанÑкиМеђујезичкиигбоÑечуан јиУнупиакИдоиÑландÑкиитали" + + "јанÑкиинуктитутјапанÑкијаванÑкигрузијÑкиКонгокикујуКуањамаказашкикалали" + + "ÑуткмерÑкиканадакорејÑкиКанурикашмирÑкикурдÑкиКомикорнволÑкикиргиÑкилат" + + "инÑкилукÑембуршкигандаЛимбургишлингалалаошкилитванÑкилуба-катангалетонÑ" + + "кималгашкиМаршалÑкимаорÑкимакедонÑкималајаламмонголÑкимаратималајÑкимал" + + "тешкибурманÑкиÐауруÑеверни ндебеленепалÑкиÐдонгахоландÑкинорвешки нинор" + + "Ñкнорвешки бокмалЈужни ндебелеÐавахоЊањаПрованÑалÑкиОјибваоромооријаОÑе" + + "Ñ‚ÑкипанџабиПалипољÑкипаштунÑкипортугалÑкикечуарето-романÑкирундирумунÑк" + + "ируÑкикинјаруандаÑанÑкритСардињаÑкиÑиндиÑеверни ÑамиÑангоÑинхалÑкиÑлова" + + "чкиÑловеначкиСамоанÑкишонаÑомалÑкиалбанÑкиÑрпÑкиСватиСеÑотоÑунданÑкишве" + + "дÑкиÑвахилитамилÑкителугутаџичкитајландÑкитигрињатуркменÑкиТÑванатонгат" + + "урÑкиТÑонгататарÑкиТахићанÑкиујгурÑкиукрајинÑкиурдуузбечкиВендавијетнам" + + "ÑкиВолапукВалунволофкоÑаЈидишјорубаЖуангкинеÑкизулуÐчинеÑкиÐколиÐдангме" + + "јÑкиÐдигејÑкиÐфрихилиагемÐинуÐкадијÑкиÐљутЈужни алтаиСтароенглеÑкиÐнгик" + + "аÐрмајÑкимапучеÐрапахоÐравакаÑуÐÑтуријÑкиÐвадхиБалучиБалинезијÑкиБаÑаБе" + + "јабембабеназападни белучкиБојпуриБиколБиниСиÑикаБрајбодоБуриатБугинежан" + + "ÑкиБлинКадоКарипÑкиÐÑ‚ÑамÑкиЦебуаночигаЧибчаЧагатаиЧукеÑкиМариЧинукÑкиЧо" + + "ктавÑкиЧипвијанÑкичерокиЧејенÑкиÑорани курдÑкиКоптÑкиКримеанÑки турÑкиК" + + "ашубијанÑкиДакотаДаргватаитаДелаверСлавÑкиДогрибДинказармаДогридоњи луж" + + "ичкоÑрпÑкидуалаСредњи холандÑкиџола фоњиЂулаембуЕфикÑкиСтароегипатÑкиЕк" + + "ајукЕламитÑкиСредњи енглеÑкиЕвондоФангфилипинÑкиФонСредњи француÑкиСтар" + + "офранцуÑкиСеверно-фризијÑкиИÑточни фризијÑкиФриулијÑкиГагагаузГајоГбаја" + + "ÐизГилбертшкиСредњи виÑоки немачкиСтаронемачкиГондиГоронталоГотÑкиГребо" + + "СтарогрчкиШвајцарÑки немачкигуÑиГвич’инХаидахавајÑкиХилигајнонХититеХмо" + + "нггорњи лужичкоÑрпÑкиХупаИбанИлокоИнгвишкиЛојбаннгомбамачамеЈудео-перÑи" + + "јÑкиЈудео-арапÑкиКара-калпашкикабилеКачинЂукамбаКавиКабардијÑкиТјапмако" + + "ндезеленортÑки креолÑкиКороКаÑиКотанешкикојра чииникаленџинКимбундукоми" + + "-пермÑкиконканиКоÑреанÑкиКпелеКарачај-балкарКарелијÑкиКурукхшамбалабафиј" + + "аКумикКутенаиЛадинолангиЛандаЛамбаЛезгианлакотаМонгоЛозиÑеверни луриЛуб" + + "а-лулуаЛуиÑеноЛундалуоЛушаилујиаМадурешкиМагахиМаитилиМакаÑарМандингома" + + "ÑаиМокшаМандарМендемерумориÑјенСредњи ирÑкимакува-меетометаМикмакМинанг" + + "кабауМанчуМанипуримохокМоÑимундангВише језикаКришкиМирандешкиМарвариЕрз" + + "ијамазандеранÑкиÐеаполитанÑкинамаÐиÑки немачкиÐевариÐиаÑÐиуеанкваÑиоÐог" + + "аиСтари норÑкин’коСеверни ÑотонуерКлаÑични невариЊамвезинјанколеЊороÐзи" + + "маОÑагеОтоманÑки турÑкиПангаÑинÑкиПахлавиПампангаПапиаментоПалауанÑкиСт" + + "ароперÑијÑкиФеничанÑкиПонпејÑкиСтаропрованÑалÑкик’ичеРађаÑтаниРапануиРа" + + "ротонганромбоРоманиÐроманијÑкируаСандавеЈакутСамаританÑки арамејÑкиÑамб" + + "уруСаÑакСанталиÑангуСицилијанÑкиШкотÑкијужнокурдÑкиÑенаСелкапкојраборо " + + "ÑениСтароирÑкиташелхитШанСидамојужни Ñамилуле Ñамиинари ÑамиÑколт ÑамиС" + + "онинкеСоџијенÑкиСрананÑки тонгоСерерСукумаСуÑуСумерÑкиКоморÑкиКлаÑични " + + "ÑиријÑкиСиријÑкиТимнетеÑоТереноТетумТигреТивТокелауКлингонÑкиТлингитТам" + + "ашекЊаÑа тонгаТок ПиÑинТÑимшианТумбукаТувалутаÑавакТувинијÑкицентралноа" + + "тлаÑки тамазигтУдмуртУгаритÑкиУмбундуРутваиВотÑкивунџоВаламоВарајВашова" + + "рлпириКалмикÑогаЈаоЈапешкиКантонÑкиЗапотечкиБлиÑимболиЗенагаÑтандардни " + + "мароканÑки тамазигтЗунибез лингвиÑтичког ÑадржајаЗазамодеран Ñтандардни" + + " арапÑкишвајцарÑки виÑоки немачкиниÑкоÑакÑонÑкифламанÑкиБразилÑки португ" + + "алÑкиИберијÑки португалÑкимолдавÑкиСрпÑкохрватÑкиконго Ñвахили" + +var srLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x001c, 0x0030, 0x0040, 0x0048, 0x0058, 0x0072, + 0x0080, 0x008e, 0x009c, 0x00a8, 0x00c2, 0x00d4, 0x00e6, 0x00f6, + 0x0104, 0x0112, 0x0124, 0x0138, 0x014a, 0x015a, 0x016e, 0x017e, + 0x018a, 0x01a0, 0x01a6, 0x01b0, 0x01cc, 0x01da, 0x01e6, 0x01f2, + 0x0200, 0x0214, 0x021e, 0x0224, 0x022e, 0x023e, 0x0250, 0x025e, + 0x026e, 0x0280, 0x0292, 0x029c, 0x02a8, 0x02b8, 0x02c4, 0x02d6, + 0x02f7, 0x0301, 0x031c, 0x0330, 0x033e, 0x034e, 0x035a, 0x0364, + 0x0376, 0x0380, 0x0391, 0x03a1, 0x03b3, 0x03c3, 0x03d5, 0x03e1, + // Entry 40 - 7F + 0x03f7, 0x040f, 0x0425, 0x042d, 0x043e, 0x044c, 0x0452, 0x0464, + 0x047a, 0x048c, 0x049c, 0x04ac, 0x04be, 0x04c8, 0x04d4, 0x04e2, + 0x04f0, 0x0502, 0x0510, 0x051c, 0x052c, 0x0538, 0x054a, 0x0558, + 0x0560, 0x0574, 0x0584, 0x0594, 0x05ac, 0x05b6, 0x05c8, 0x05d6, + 0x05e2, 0x05f4, 0x060b, 0x061b, 0x062b, 0x063d, 0x064b, 0x065f, + 0x0671, 0x0683, 0x068f, 0x069f, 0x06af, 0x06c1, 0x06cb, 0x06e8, + 0x06f8, 0x0704, 0x0716, 0x0735, 0x0752, 0x076b, 0x0777, 0x077f, + 0x0797, 0x07a3, 0x07ad, 0x07b7, 0x07c5, 0x07d3, 0x07db, 0x07e7, + // Entry 80 - BF + 0x07f9, 0x080f, 0x0819, 0x0832, 0x083c, 0x084c, 0x0856, 0x086c, + 0x087c, 0x0890, 0x089a, 0x08b1, 0x08bb, 0x08cd, 0x08dd, 0x08f1, + 0x0903, 0x090b, 0x091b, 0x092b, 0x0937, 0x0941, 0x094d, 0x095f, + 0x096d, 0x097b, 0x098b, 0x0997, 0x09a5, 0x09b9, 0x09c7, 0x09db, + 0x09e7, 0x09f1, 0x09fd, 0x0a09, 0x0a19, 0x0a2d, 0x0a3d, 0x0a51, + 0x0a59, 0x0a67, 0x0a71, 0x0a87, 0x0a95, 0x0a9f, 0x0aa9, 0x0ab1, + 0x0abb, 0x0ac7, 0x0ad1, 0x0adf, 0x0ae7, 0x0af7, 0x0b01, 0x0b17, + 0x0b29, 0x0b29, 0x0b39, 0x0b41, 0x0b49, 0x0b5b, 0x0b5b, 0x0b63, + // Entry C0 - FF + 0x0b63, 0x0b78, 0x0b92, 0x0b9e, 0x0bae, 0x0bba, 0x0bba, 0x0bc8, + 0x0bc8, 0x0bd4, 0x0bd4, 0x0bd4, 0x0bda, 0x0bda, 0x0bee, 0x0bee, + 0x0bfa, 0x0c06, 0x0c1e, 0x0c1e, 0x0c26, 0x0c26, 0x0c26, 0x0c26, + 0x0c2e, 0x0c38, 0x0c38, 0x0c40, 0x0c40, 0x0c40, 0x0c5d, 0x0c6b, + 0x0c75, 0x0c7d, 0x0c7d, 0x0c7d, 0x0c89, 0x0c89, 0x0c89, 0x0c91, + 0x0c91, 0x0c99, 0x0c99, 0x0ca5, 0x0cbd, 0x0cbd, 0x0cc5, 0x0cc5, + 0x0ccd, 0x0cdd, 0x0cdd, 0x0ced, 0x0cfb, 0x0d03, 0x0d0d, 0x0d1b, + 0x0d29, 0x0d31, 0x0d41, 0x0d53, 0x0d69, 0x0d75, 0x0d85, 0x0da0, + // Entry 100 - 13F + 0x0dae, 0x0dae, 0x0dcf, 0x0de7, 0x0df3, 0x0dff, 0x0e09, 0x0e17, + 0x0e25, 0x0e31, 0x0e3b, 0x0e45, 0x0e4f, 0x0e72, 0x0e72, 0x0e7c, + 0x0e9b, 0x0eac, 0x0eb4, 0x0eb4, 0x0ebc, 0x0eca, 0x0eca, 0x0ee6, + 0x0ef2, 0x0f04, 0x0f21, 0x0f21, 0x0f2d, 0x0f2d, 0x0f35, 0x0f49, + 0x0f49, 0x0f4f, 0x0f4f, 0x0f6e, 0x0f8a, 0x0f8a, 0x0fab, 0x0fcc, + 0x0fe0, 0x0fe4, 0x0ff0, 0x0ff0, 0x0ff8, 0x1002, 0x1002, 0x1008, + 0x101c, 0x101c, 0x1044, 0x105c, 0x105c, 0x1066, 0x1078, 0x1084, + 0x108e, 0x10a2, 0x10c5, 0x10c5, 0x10c5, 0x10cd, 0x10dc, 0x10e6, + // Entry 140 - 17F + 0x10e6, 0x10f6, 0x10f6, 0x110a, 0x1116, 0x1120, 0x1145, 0x1145, + 0x114d, 0x1155, 0x1155, 0x115f, 0x116f, 0x116f, 0x116f, 0x117b, + 0x1187, 0x1193, 0x11b0, 0x11c9, 0x11c9, 0x11e2, 0x11ee, 0x11f8, + 0x11fc, 0x1206, 0x120e, 0x1224, 0x1224, 0x122c, 0x123a, 0x1261, + 0x1261, 0x1269, 0x1269, 0x1271, 0x1283, 0x1298, 0x1298, 0x1298, + 0x1298, 0x12a8, 0x12b8, 0x12cf, 0x12dd, 0x12f1, 0x12fb, 0x1316, + 0x1316, 0x1316, 0x132a, 0x1336, 0x1344, 0x1350, 0x1350, 0x135a, + 0x1368, 0x1374, 0x137e, 0x1388, 0x1392, 0x13a0, 0x13a0, 0x13a0, + // Entry 180 - 1BF + 0x13a0, 0x13ac, 0x13ac, 0x13b6, 0x13be, 0x13d5, 0x13d5, 0x13e8, + 0x13f6, 0x1400, 0x1406, 0x1410, 0x141a, 0x141a, 0x141a, 0x142c, + 0x142c, 0x1438, 0x1446, 0x1454, 0x1464, 0x146e, 0x146e, 0x1478, + 0x1484, 0x148e, 0x1496, 0x14a6, 0x14bd, 0x14d4, 0x14dc, 0x14e8, + 0x14fe, 0x1508, 0x1518, 0x1522, 0x152a, 0x152a, 0x1538, 0x154d, + 0x1559, 0x156d, 0x157b, 0x157b, 0x157b, 0x1587, 0x15a1, 0x15a1, + 0x15bb, 0x15c3, 0x15dc, 0x15e8, 0x15f0, 0x15fc, 0x15fc, 0x1608, + 0x1608, 0x1612, 0x1629, 0x1629, 0x1632, 0x1649, 0x1651, 0x166e, + // Entry 1C0 - 1FF + 0x167c, 0x168c, 0x1694, 0x169e, 0x16a8, 0x16c7, 0x16dd, 0x16eb, + 0x16fb, 0x170f, 0x1723, 0x1723, 0x1723, 0x1723, 0x173f, 0x173f, + 0x1753, 0x1753, 0x1753, 0x1765, 0x1765, 0x1787, 0x1792, 0x1792, + 0x17a4, 0x17b2, 0x17c6, 0x17c6, 0x17c6, 0x17d0, 0x17dc, 0x17dc, + 0x17dc, 0x17dc, 0x17f2, 0x17f8, 0x1806, 0x1810, 0x183b, 0x1849, + 0x1853, 0x1861, 0x1861, 0x1861, 0x186b, 0x1883, 0x1891, 0x1891, + 0x18a9, 0x18a9, 0x18b1, 0x18b1, 0x18bd, 0x18d8, 0x18ec, 0x18ec, + 0x18fc, 0x1902, 0x1902, 0x190e, 0x190e, 0x190e, 0x1921, 0x1932, + // Entry 200 - 23F + 0x1945, 0x1958, 0x1966, 0x197a, 0x1997, 0x19a1, 0x19a1, 0x19a1, + 0x19ad, 0x19b5, 0x19c5, 0x19d5, 0x19f6, 0x1a06, 0x1a06, 0x1a06, + 0x1a10, 0x1a18, 0x1a24, 0x1a2e, 0x1a38, 0x1a3e, 0x1a4c, 0x1a4c, + 0x1a60, 0x1a6e, 0x1a6e, 0x1a7c, 0x1a8f, 0x1aa0, 0x1aa0, 0x1aa0, + 0x1aa0, 0x1ab0, 0x1ab0, 0x1abe, 0x1aca, 0x1ad8, 0x1aec, 0x1b1d, + 0x1b29, 0x1b3b, 0x1b49, 0x1b4f, 0x1b55, 0x1b55, 0x1b55, 0x1b55, + 0x1b55, 0x1b61, 0x1b61, 0x1b6b, 0x1b6b, 0x1b77, 0x1b81, 0x1b89, + 0x1b99, 0x1b99, 0x1ba5, 0x1ba5, 0x1bad, 0x1bb3, 0x1bc1, 0x1bc1, + // Entry 240 - 27F + 0x1bc1, 0x1bc1, 0x1bd3, 0x1be5, 0x1bf9, 0x1bf9, 0x1c05, 0x1c3f, + 0x1c47, 0x1c79, 0x1c81, 0x1cb3, 0x1cb3, 0x1cb3, 0x1ce3, 0x1ce3, + 0x1ce3, 0x1ce3, 0x1ce3, 0x1ce3, 0x1ce3, 0x1ce3, 0x1ce3, 0x1ce3, + 0x1ce3, 0x1cff, 0x1d11, 0x1d3a, 0x1d63, 0x1d75, 0x1d91, 0x1daa, +} // Size: 1240 bytes + +var srLatnLangStr string = "" + // Size: 3982 bytes + "AfarskiabhaskiAvestanskiafrikansakanamharskiAragonežanskiarapskiasamskiA" + + "varskiAjmaraazerbejdžanskibaÅ¡kirskibeloruskibugarskiBislamabambarabengal" + + "skitibetanskibretonskibosanskikatalonskiÄŒeÄenskiÄŒamorokorzikanskiKriÄeÅ¡k" + + "iStaroslovenskiÄŒuvaÅ¡kivelÅ¡kidanskinemaÄkiDivehijskidžongaevegrÄkienglesk" + + "iesperantoÅ¡panskiestonskibaskijskipersijskiFulahfinskifidžijskifarskifra" + + "ncuskizapadni frizijskiirskiÅ kotski Galskigalicijskigvaranigudžaratimans" + + "kihausahebrejskihindiHiri MotuhrvatskihaićanskimaÄ‘arskijermenskiHereroIn" + + "terlingvaindonežanskiMeÄ‘ujeziÄkiigboseÄuan jiUnupiakIdoislandskiitalijan" + + "skiinuktitutjapanskijavanskigruzijskiKongokikujuKuanjamakazaÅ¡kikalalisut" + + "kmerskikanadakorejskiKanurikaÅ¡mirskikurdskiKomikornvolskikirgiskilatinsk" + + "iluksemburÅ¡kigandaLimburgiÅ¡lingalalaoÅ¡kilitvanskiluba-katangaletonskimal" + + "gaÅ¡kiMarÅ¡alskimaorskimakedonskimalajalammongolskimaratimalajskimalteÅ¡kib" + + "urmanskiNauruseverni ndebelenepalskiNdongaholandskinorveÅ¡ki ninorsknorve" + + "Å¡ki bokmalJužni ndebeleNavahoNjanjaProvansalskiOjibvaoromoorijaOsetskip" + + "andžabiPalipoljskipaÅ¡tunskiportugalskikeÄuareto-romanskirundirumunskirus" + + "kikinjaruandasanskritSardinjaskisindiseverni samisangosinhalskislovaÄkis" + + "lovenaÄkiSamoanskiÅ¡onasomalskialbanskisrpskiSvatiSesotosundanskiÅ¡vedskis" + + "vahilitamilskitelugutadžiÄkitajlandskitigrinjaturkmenskiTsvanatongatursk" + + "iTsongatatarskiTahićanskiujgurskiukrajinskiurduuzbeÄkiVendavijetnamskiVo" + + "lapukValunvolofkosaJidiÅ¡jorubaŽuangkineskizuluAÄineskiAkoliAdangmejskiAd" + + "igejskiAfrihiliagemAinuAkadijskiAljutJužni altaiStaroengleskiAngikaArmaj" + + "skimapuÄeArapahoAravakasuAsturijskiAvadhiBaluÄiBalinezijskiBasaBejabemba" + + "benazapadni beluÄkiBojpuriBikolBiniSisikaBrajbodoBuriatBuginežanskiBlinK" + + "adoKaripskiAtsamskiCebuanoÄigaÄŒibÄaÄŒagataiÄŒukeskiMariÄŒinukskiÄŒoktavskiÄŒi" + + "pvijanskiÄerokiÄŒejenskisorani kurdskiKoptskiKrimeanski turskiKaÅ¡ubijansk" + + "iDakotaDargvataitaDelaverSlavskiDogribDinkazarmaDogridonji lužiÄkosrpski" + + "dualaSrednji holandskidžola fonjiÄulaembuEfikskiStaroegipatskiEkajukElam" + + "itskiSrednji engleskiEvondoFangfilipinskiFonSrednji francuskiStarofrancu" + + "skiSeverno-frizijskiIstoÄni frizijskiFriulijskiGagagauzGajoGbajaDžizGilb" + + "ertÅ¡kiSrednji visoki nemaÄkiStaronemaÄkiGondiGorontaloGotskiGreboStarogr" + + "ÄkiÅ vajcarski nemaÄkigusiGviÄ’inHaidahavajskiHiligajnonHititeHmonggornj" + + "i lužiÄkosrpskiHupaIbanIlokoIngviÅ¡kiLojbanngombamaÄameJudeo-persijskiJud" + + "eo-arapskiKara-kalpaÅ¡kikabileKaÄinÄukambaKaviKabardijskiTjapmakondezelen" + + "ortski kreolskiKoroKasiKotaneÅ¡kikojra ÄiinikalendžinKimbundukomi-permski" + + "konkaniKosreanskiKpeleKaraÄaj-balkarKarelijskiKurukhÅ¡ambalabafijaKumikKu" + + "tenaiLadinolangiLandaLambaLezgianlakotaMongoLoziseverni luriLuba-luluaLu" + + "isenoLundaluoLuÅ¡ailujiaMadureÅ¡kiMagahiMaitiliMakasarMandingomasaiMokÅ¡aMa" + + "ndarMendemerumorisjenSrednji irskimakuva-meetometaMikmakMinangkabauManÄu" + + "ManipurimohokMosimundangViÅ¡e jezikaKriÅ¡kiMirandeÅ¡kiMarvariErzijamazander" + + "anskiNeapolitanskinamaNiski nemaÄkiNevariNiasNiueankvasioNogaiStari nors" + + "kin’koSeverni sotonuerKlasiÄni nevariNjamvezinjankoleNjoroNzimaOsageOtom" + + "anski turskiPangasinskiPahlaviPampangaPapiamentoPalauanskiStaropersijski" + + "FeniÄanskiPonpejskiStaroprovansalskik’iÄeRaÄ‘astaniRapanuiRarotonganrombo" + + "RomaniAromanijskiruaSandaveJakutSamaritanski aramejskisamburuSasakSantal" + + "isanguSicilijanskiÅ kotskijužnokurdskisenaSelkapkojraboro seniStaroirskit" + + "aÅ¡elhitÅ anSidamojužni samilule samiinari samiskolt samiSoninkeSodžijensk" + + "iSrananski tongoSererSukumaSusuSumerskiKomorskiKlasiÄni sirijskiSirijski" + + "TimnetesoTerenoTetumTigreTivTokelauKlingonskiTlingitTamaÅ¡ekNjasa tongaTo" + + "k PisinTsimÅ¡ianTumbukaTuvalutasavakTuvinijskicentralnoatlaski tamazigtUd" + + "murtUgaritskiUmbunduRutvaiVotskivundžoValamoVarajVaÅ¡ovarlpiriKalmiksogaJ" + + "aoJapeÅ¡kiKantonskiZapoteÄkiBlisimboliZenagastandardni marokanski tamazig" + + "tZunibez lingvistiÄkog sadržajaZazamoderan standardni arapskiÅ¡vajcarski " + + "visoki nemaÄkiniskosaksonskiflamanskiBrazilski portugalskiIberijski port" + + "ugalskimoldavskiSrpskohrvatskikongo svahili" + +var srLatnLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x0007, 0x000e, 0x0018, 0x0020, 0x0024, 0x002c, 0x003a, + 0x0041, 0x0048, 0x004f, 0x0055, 0x0064, 0x006e, 0x0077, 0x007f, + 0x0086, 0x008d, 0x0096, 0x00a0, 0x00a9, 0x00b1, 0x00bb, 0x00c5, + 0x00cc, 0x00d7, 0x00da, 0x00e1, 0x00ef, 0x00f8, 0x00ff, 0x0105, + 0x010d, 0x0117, 0x011e, 0x0121, 0x0127, 0x012f, 0x0138, 0x0140, + 0x0148, 0x0151, 0x015a, 0x015f, 0x0165, 0x016f, 0x0175, 0x017e, + 0x018f, 0x0194, 0x01a3, 0x01ad, 0x01b4, 0x01be, 0x01c4, 0x01c9, + 0x01d2, 0x01d7, 0x01e0, 0x01e8, 0x01f2, 0x01fb, 0x0204, 0x020a, + // Entry 40 - 7F + 0x0215, 0x0222, 0x022f, 0x0233, 0x023d, 0x0244, 0x0247, 0x0250, + 0x025b, 0x0264, 0x026c, 0x0274, 0x027d, 0x0282, 0x0288, 0x0290, + 0x0298, 0x02a1, 0x02a8, 0x02ae, 0x02b6, 0x02bc, 0x02c6, 0x02cd, + 0x02d1, 0x02db, 0x02e3, 0x02eb, 0x02f8, 0x02fd, 0x0307, 0x030e, + 0x0315, 0x031e, 0x032a, 0x0332, 0x033b, 0x0345, 0x034c, 0x0356, + 0x035f, 0x0368, 0x036e, 0x0376, 0x037f, 0x0388, 0x038d, 0x039c, + 0x03a4, 0x03aa, 0x03b3, 0x03c4, 0x03d4, 0x03e2, 0x03e8, 0x03ee, + 0x03fa, 0x0400, 0x0405, 0x040a, 0x0411, 0x041a, 0x041e, 0x0425, + // Entry 80 - BF + 0x042f, 0x043a, 0x0440, 0x044d, 0x0452, 0x045a, 0x045f, 0x046a, + 0x0472, 0x047d, 0x0482, 0x048e, 0x0493, 0x049c, 0x04a5, 0x04b0, + 0x04b9, 0x04be, 0x04c6, 0x04ce, 0x04d4, 0x04d9, 0x04df, 0x04e8, + 0x04f0, 0x04f7, 0x04ff, 0x0505, 0x050f, 0x0519, 0x0521, 0x052b, + 0x0531, 0x0536, 0x053c, 0x0542, 0x054a, 0x0555, 0x055d, 0x0567, + 0x056b, 0x0573, 0x0578, 0x0583, 0x058a, 0x058f, 0x0594, 0x0598, + 0x059e, 0x05a4, 0x05aa, 0x05b1, 0x05b5, 0x05be, 0x05c3, 0x05ce, + 0x05d7, 0x05d7, 0x05df, 0x05e3, 0x05e7, 0x05f0, 0x05f0, 0x05f5, + // Entry C0 - FF + 0x05f5, 0x0601, 0x060e, 0x0614, 0x061c, 0x0623, 0x0623, 0x062a, + 0x062a, 0x0630, 0x0630, 0x0630, 0x0633, 0x0633, 0x063d, 0x063d, + 0x0643, 0x064a, 0x0656, 0x0656, 0x065a, 0x065a, 0x065a, 0x065a, + 0x065e, 0x0663, 0x0663, 0x0667, 0x0667, 0x0667, 0x0677, 0x067e, + 0x0683, 0x0687, 0x0687, 0x0687, 0x068d, 0x068d, 0x068d, 0x0691, + 0x0691, 0x0695, 0x0695, 0x069b, 0x06a8, 0x06a8, 0x06ac, 0x06ac, + 0x06b0, 0x06b8, 0x06b8, 0x06c0, 0x06c7, 0x06cc, 0x06d3, 0x06db, + 0x06e3, 0x06e7, 0x06f0, 0x06fa, 0x0706, 0x070d, 0x0716, 0x0724, + // Entry 100 - 13F + 0x072b, 0x072b, 0x073c, 0x0749, 0x074f, 0x0755, 0x075a, 0x0761, + 0x0768, 0x076e, 0x0773, 0x0778, 0x077d, 0x0792, 0x0792, 0x0797, + 0x07a8, 0x07b4, 0x07b9, 0x07b9, 0x07bd, 0x07c4, 0x07c4, 0x07d2, + 0x07d8, 0x07e1, 0x07f1, 0x07f1, 0x07f7, 0x07f7, 0x07fb, 0x0805, + 0x0805, 0x0808, 0x0808, 0x0819, 0x0827, 0x0827, 0x0838, 0x084a, + 0x0854, 0x0856, 0x085c, 0x085c, 0x0860, 0x0865, 0x0865, 0x086a, + 0x0875, 0x0875, 0x088c, 0x0899, 0x0899, 0x089e, 0x08a7, 0x08ad, + 0x08b2, 0x08bd, 0x08d1, 0x08d1, 0x08d1, 0x08d5, 0x08df, 0x08e4, + // Entry 140 - 17F + 0x08e4, 0x08ec, 0x08ec, 0x08f6, 0x08fc, 0x0901, 0x0917, 0x0917, + 0x091b, 0x091f, 0x091f, 0x0924, 0x092d, 0x092d, 0x092d, 0x0933, + 0x0939, 0x0940, 0x094f, 0x095c, 0x095c, 0x096a, 0x0970, 0x0976, + 0x0979, 0x097e, 0x0982, 0x098d, 0x098d, 0x0991, 0x0998, 0x09ac, + 0x09ac, 0x09b0, 0x09b0, 0x09b4, 0x09be, 0x09ca, 0x09ca, 0x09ca, + 0x09ca, 0x09d4, 0x09dc, 0x09e8, 0x09ef, 0x09f9, 0x09fe, 0x0a0d, + 0x0a0d, 0x0a0d, 0x0a17, 0x0a1d, 0x0a25, 0x0a2b, 0x0a2b, 0x0a30, + 0x0a37, 0x0a3d, 0x0a42, 0x0a47, 0x0a4c, 0x0a53, 0x0a53, 0x0a53, + // Entry 180 - 1BF + 0x0a53, 0x0a59, 0x0a59, 0x0a5e, 0x0a62, 0x0a6e, 0x0a6e, 0x0a78, + 0x0a7f, 0x0a84, 0x0a87, 0x0a8d, 0x0a92, 0x0a92, 0x0a92, 0x0a9c, + 0x0a9c, 0x0aa2, 0x0aa9, 0x0ab0, 0x0ab8, 0x0abd, 0x0abd, 0x0ac3, + 0x0ac9, 0x0ace, 0x0ad2, 0x0ada, 0x0ae7, 0x0af3, 0x0af7, 0x0afd, + 0x0b08, 0x0b0e, 0x0b16, 0x0b1b, 0x0b1f, 0x0b1f, 0x0b26, 0x0b32, + 0x0b39, 0x0b44, 0x0b4b, 0x0b4b, 0x0b4b, 0x0b51, 0x0b5e, 0x0b5e, + 0x0b6b, 0x0b6f, 0x0b7d, 0x0b83, 0x0b87, 0x0b8d, 0x0b8d, 0x0b93, + 0x0b93, 0x0b98, 0x0ba4, 0x0ba4, 0x0baa, 0x0bb6, 0x0bba, 0x0bca, + // Entry 1C0 - 1FF + 0x0bd2, 0x0bda, 0x0bdf, 0x0be4, 0x0be9, 0x0bf9, 0x0c04, 0x0c0b, + 0x0c13, 0x0c1d, 0x0c27, 0x0c27, 0x0c27, 0x0c27, 0x0c35, 0x0c35, + 0x0c40, 0x0c40, 0x0c40, 0x0c49, 0x0c49, 0x0c5a, 0x0c62, 0x0c62, + 0x0c6c, 0x0c73, 0x0c7d, 0x0c7d, 0x0c7d, 0x0c82, 0x0c88, 0x0c88, + 0x0c88, 0x0c88, 0x0c93, 0x0c96, 0x0c9d, 0x0ca2, 0x0cb8, 0x0cbf, + 0x0cc4, 0x0ccb, 0x0ccb, 0x0ccb, 0x0cd0, 0x0cdc, 0x0ce4, 0x0ce4, + 0x0cf1, 0x0cf1, 0x0cf5, 0x0cf5, 0x0cfb, 0x0d09, 0x0d13, 0x0d13, + 0x0d1c, 0x0d20, 0x0d20, 0x0d26, 0x0d26, 0x0d26, 0x0d31, 0x0d3a, + // Entry 200 - 23F + 0x0d44, 0x0d4e, 0x0d55, 0x0d61, 0x0d70, 0x0d75, 0x0d75, 0x0d75, + 0x0d7b, 0x0d7f, 0x0d87, 0x0d8f, 0x0da1, 0x0da9, 0x0da9, 0x0da9, + 0x0dae, 0x0db2, 0x0db8, 0x0dbd, 0x0dc2, 0x0dc5, 0x0dcc, 0x0dcc, + 0x0dd6, 0x0ddd, 0x0ddd, 0x0de5, 0x0df0, 0x0df9, 0x0df9, 0x0df9, + 0x0df9, 0x0e02, 0x0e02, 0x0e09, 0x0e0f, 0x0e16, 0x0e20, 0x0e39, + 0x0e3f, 0x0e48, 0x0e4f, 0x0e52, 0x0e55, 0x0e55, 0x0e55, 0x0e55, + 0x0e55, 0x0e5b, 0x0e5b, 0x0e62, 0x0e62, 0x0e68, 0x0e6d, 0x0e72, + 0x0e7a, 0x0e7a, 0x0e80, 0x0e80, 0x0e84, 0x0e87, 0x0e8f, 0x0e8f, + // Entry 240 - 27F + 0x0e8f, 0x0e8f, 0x0e98, 0x0ea2, 0x0eac, 0x0eac, 0x0eb2, 0x0ed0, + 0x0ed4, 0x0ef0, 0x0ef4, 0x0f0e, 0x0f0e, 0x0f0e, 0x0f29, 0x0f29, + 0x0f29, 0x0f29, 0x0f29, 0x0f29, 0x0f29, 0x0f29, 0x0f29, 0x0f29, + 0x0f29, 0x0f37, 0x0f40, 0x0f55, 0x0f6a, 0x0f73, 0x0f81, 0x0f8e, +} // Size: 1240 bytes + +var svLangStr string = "" + // Size: 5432 bytes + "afarabchaziskaavestiskaafrikaansakanamhariskaaragonesiskaarabiskaassames" + + "iskaavariskaaymaraazerbajdzjanskabasjkiriskavitryskabulgariskabislamabam" + + "barabengalitibetanskabretonskabosniskakatalanskatjetjenskachamorrokorsik" + + "anskacreetjeckiskakyrkslaviskatjuvasjiskawalesiskadanskatyskadivehibhuta" + + "nesiskaewegrekiskaengelskaesperantospanskaestniskabaskiskapersiskafulani" + + "finskafijianskafäröiskafranskavästfrisiskairiskaskotsk gäliskagaliciskag" + + "uaranígujaratimanxhausahebreiskahindihirimotukroatiskahaitiskaungerskaar" + + "meniskahererointerlinguaindonesiskainterlingueigboszezuan iinupiakidoisl" + + "ändskaitalienskainuktitutjapanskajavanesiskageorgiskakikongokikuyukuany" + + "amakazakiskagrönländskakambodjanskakannadakoreanskakanurikashmiriskakurd" + + "iskakomekorniskakirgisiskalatinluxemburgiskalugandalimburgiskalingalalao" + + "tiskalitauiskaluba-katangalettiskamalagassiskamarshalliskamaorimakedonsk" + + "amalayalammongoliskamarathimalajiskamaltesiskaburmesiskanaurunordndebele" + + "nepalesiskandonganederländskanynorskanorskt bokmÃ¥lsydndebelenavahonyanja" + + "occitanskaodjibwaoromooriyaossetiskapunjabipalipolskaafghanskaportugisis" + + "kaquechuarätoromanskarundirumänskaryskakinjarwandasanskritsardiskasindhi" + + "nordsamiskasangosingalesiskaslovakiskaslovenskasamoanskashonasomaliskaal" + + "banskaserbiskaswatisydsothosundanesiskasvenskaswahilitamiltelugiskatadzj" + + "ikiskathailändskatigrinjaturkmeniskatswanatonganskaturkiskatsongatataris" + + "katahitiskauiguriskaukrainskaurduuzbekiskavendavietnamesiskavolapükvallo" + + "nskawolofxhosajiddischyorubazhuangkinesiskazuluacehnesiskaacholiadangmea" + + "dygeiskatunisisk arabiskaafrihiliaghemainuakkadiskaAlabama-muskogeealeut" + + "iskagegiskasydaltaiskafornengelskaangikaarameiskaaraukanskaaraoniskaarap" + + "ahoalgerisk arabiskaarawakiskamarockansk arabiskaegyptisk arabiskaasuame" + + "rikanskt teckensprÃ¥kasturiskakotavaawadhibaluchiskabalinesiskabayerskaba" + + "sabamunskabatak-tobaghomalabejabembabetawiskabenabafutbagadavästbaluchis" + + "kabhojpuribikolbinibanjariskabamekonsiksikabishnupriyabakhtiaribrajbrahu" + + "iskabodobakossiburjätiskabuginesiskabouloublinbagangtecaddokaribiskacayu" + + "gaatsamcebuanochigachibchachagataichuukesiskamariskachinookchoctawchipew" + + "yancherokesiskacheyennesoranisk kurdiskakoptiskakapisnonkrimtatariskakas" + + "jubiskadakotadarginskataitadelawareslavejdogribdinkazarmadogrilÃ¥gsorbisk" + + "acentraldusundualamedelnederländskajola-fonyidyuladazagaembuefikemiliska" + + "fornegyptiskaekajukelamitiskamedelengelskacentralalaskisk jupiskaewondoe" + + "xtremaduriskafangfilippinskameänkielifonsprÃ¥ketcajun-franskamedelfranska" + + "fornfranskafrankoprovensalskanordfrisiskaöstfrisiskafriulianskagãgagauzi" + + "skagangayogbayazoroastrisk darietiopiskagilbertiskagilakimedelhögtyskafo" + + "rnhögtyskaGoa-konkanigondigorontalogotiskagreboforngrekiskaschweizertysk" + + "awayuufarefaregusiigwichinhaidahakkahawaiiskaFiji-hindihiligaynonhettiti" + + "skahmongsprÃ¥khögsorbiskaxianghupaibanskaibibioilokoingusjiskaingriskajam" + + "aikansk engelsk kreollojbanngombakimashamijudisk persiskajudisk arabiska" + + "jylländskakarakalpakiskakabyliskakachinjjukambakawikabardinskakanembutya" + + "pmakondekapverdiskakenjangkorokaingangkhasikhotanesiskaTimbuktu-songhoyk" + + "howarkirmanjkimkakokalenjinkimbundukomi-permjakiskakonkanikosreanskakpel" + + "lekarachay-balkarkriokinaray-akarelskakurukhkisambaabafiakölniskakumykis" + + "kakutenajladinolangilahndalambalezghienlingua franca novaliguriskalivoni" + + "skalakotalombardiskamongolozinordlurilettgalliskaluba-lulualuiseñolundal" + + "uolushailuhyalitterär kineiskalaziskamaduresiskamafamagahimaithilimakasa" + + "rmandemassajiskamabamoksjamandarmendemerumauritansk kreolmedeliriskamakh" + + "uwa-meettometa’mi’kmaqminangkabaumanchuriskamanipurimohawkmossivästmaris" + + "kamundangflera sprÃ¥kmuskogeemirandesiskamarwarimentawaimyeneerjyamazande" + + "ranimin nannapolitanskanamalÃ¥gtyskanewariskaniasniueanskaao-nagakwasioba" + + "mileké-ngiemboonnogaifornnordiskanovialn-kÃ¥nordsothonuerklassisk newaris" + + "kanyamwezinyankolenyoronzimaosageottomanskapangasinanmedelpersiskapampan" + + "gapapiamentopalaupikardiskaPennsylvaniatyskamennonitisk lÃ¥gtyskafornpers" + + "iskaPfalz-tyskafeniciskapiemontesiskapontiskaponapefornpreussiskafornpro" + + "vensalskaquichéChimborazo-höglandskichwarajasthanirapanuirarotonganskaro" + + "magnolriffianskaromboromanirotumänskarusynrovianskaarumänskarwasandaweja" + + "kutiskasamaritanskasamburusasaksantalisaurashtrangambaysangusicilianskas" + + "kotskasassaresisk sardiskasydkurdiskasenecasenaseriselkupGao-songhayforn" + + "iriskasamogitiskatachelhitshanChad-arabiskasidamolÃ¥gsilesiskaselayarsyds" + + "amiskalulesamiskaenaresamiskaskoltsamiskasoninkesogdiskasranan tongosere" + + "rsahosaterfrisiskasukumasususumeriskashimaoréklassisk syriskasyriskasile" + + "siskatulutemnetesoterenotetumtigrétivitokelauiskatsakhurklingonskatlingi" + + "ttalyshtamasheknyasatonganskatok pisinturoyotarokotsakodiskatsimshianmus" + + "limsk tatariskatumbukatuvaluanskatasawaqtuviniskacentralmarockansk tamaz" + + "ightudmurtiskaugaritiskaumbundurotvajvenetianskavepsvästflamländskaMain-" + + "frankiskavotiskavõruvunjowalsertyskawalamowaraywashowarlpiriwukalmuckisk" + + "amingrelianskalusogakiyaojapetiskayangbenbamileké-jembanheengatukantones" + + "iskazapotekblissymbolerzeeländskazenagamarockansk standard-tamazightzuni" + + "inget sprÃ¥kligt innehÃ¥llzazaiskamodern standardarabiskaösterrikisk tyska" + + "schweizisk högtyskaaustralisk engelskakanadensisk engelskabrittisk engel" + + "skaamerikansk engelskalatinamerikansk spanskaeuropeisk spanskamexikansk " + + "spanskakanadensisk franskaschweizisk franskalÃ¥gsaxiskaflamländskabrasili" + + "ansk portugisiskaeuropeisk portugisiskamoldaviskaserbokroatiskaKongo-swa" + + "hiliförenklad kinesiskatraditionell kinesiska" + +var svLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000e, 0x0017, 0x0020, 0x0024, 0x002d, 0x0039, + 0x0041, 0x004c, 0x0054, 0x005a, 0x0069, 0x0074, 0x007c, 0x0086, + 0x008d, 0x0094, 0x009b, 0x00a5, 0x00ae, 0x00b6, 0x00c0, 0x00ca, + 0x00d2, 0x00dd, 0x00e1, 0x00ea, 0x00f6, 0x0101, 0x010a, 0x0110, + 0x0115, 0x011b, 0x0127, 0x012a, 0x0132, 0x013a, 0x0143, 0x014a, + 0x0152, 0x015a, 0x0162, 0x0168, 0x016e, 0x0177, 0x0181, 0x0188, + 0x0195, 0x019b, 0x01aa, 0x01b3, 0x01bb, 0x01c3, 0x01c7, 0x01cc, + 0x01d5, 0x01da, 0x01e2, 0x01eb, 0x01f3, 0x01fb, 0x0204, 0x020a, + // Entry 40 - 7F + 0x0215, 0x0220, 0x022b, 0x022f, 0x0238, 0x023f, 0x0242, 0x024c, + 0x0256, 0x025f, 0x0267, 0x0272, 0x027b, 0x0282, 0x0288, 0x0290, + 0x0299, 0x02a6, 0x02b2, 0x02b9, 0x02c2, 0x02c8, 0x02d3, 0x02db, + 0x02df, 0x02e7, 0x02f1, 0x02f6, 0x0303, 0x030a, 0x0315, 0x031c, + 0x0324, 0x032d, 0x0339, 0x0341, 0x034d, 0x0359, 0x035e, 0x0368, + 0x0371, 0x037b, 0x0382, 0x038b, 0x0395, 0x039f, 0x03a4, 0x03af, + 0x03ba, 0x03c0, 0x03cd, 0x03d5, 0x03e3, 0x03ed, 0x03f3, 0x03f9, + 0x0403, 0x040a, 0x040f, 0x0414, 0x041d, 0x0424, 0x0428, 0x042e, + // Entry 80 - BF + 0x0437, 0x0443, 0x044a, 0x0457, 0x045c, 0x0465, 0x046a, 0x0475, + 0x047d, 0x0485, 0x048b, 0x0496, 0x049b, 0x04a7, 0x04b1, 0x04ba, + 0x04c3, 0x04c8, 0x04d1, 0x04d9, 0x04e1, 0x04e6, 0x04ee, 0x04fa, + 0x0501, 0x0508, 0x050d, 0x0516, 0x0521, 0x052d, 0x0535, 0x0540, + 0x0546, 0x054f, 0x0557, 0x055d, 0x0566, 0x056f, 0x0578, 0x0581, + 0x0585, 0x058e, 0x0593, 0x05a0, 0x05a8, 0x05b1, 0x05b6, 0x05bb, + 0x05c3, 0x05c9, 0x05cf, 0x05d8, 0x05dc, 0x05e7, 0x05ed, 0x05f4, + 0x05fd, 0x060e, 0x0616, 0x061b, 0x061f, 0x0628, 0x0638, 0x0641, + // Entry C0 - FF + 0x0648, 0x0653, 0x065f, 0x0665, 0x066e, 0x0678, 0x0681, 0x0688, + 0x0699, 0x06a3, 0x06b6, 0x06c7, 0x06ca, 0x06e2, 0x06eb, 0x06f1, + 0x06f7, 0x0701, 0x070c, 0x0714, 0x0718, 0x0720, 0x072a, 0x0731, + 0x0735, 0x073a, 0x0743, 0x0747, 0x074c, 0x0752, 0x0761, 0x0769, + 0x076e, 0x0772, 0x077c, 0x0783, 0x078a, 0x0795, 0x079e, 0x07a2, + 0x07ab, 0x07af, 0x07b6, 0x07c1, 0x07cc, 0x07d2, 0x07d6, 0x07de, + 0x07e3, 0x07ec, 0x07f2, 0x07f7, 0x07fe, 0x0803, 0x080a, 0x0812, + 0x081d, 0x0824, 0x082b, 0x0832, 0x083b, 0x0847, 0x084f, 0x0860, + // Entry 100 - 13F + 0x0868, 0x0870, 0x087d, 0x0887, 0x088d, 0x0896, 0x089b, 0x08a3, + 0x08a9, 0x08af, 0x08b4, 0x08b9, 0x08be, 0x08ca, 0x08d6, 0x08db, + 0x08ed, 0x08f7, 0x08fc, 0x0902, 0x0906, 0x090a, 0x0912, 0x091f, + 0x0925, 0x092f, 0x093c, 0x0953, 0x0959, 0x0967, 0x096b, 0x0976, + 0x0980, 0x098b, 0x0998, 0x09a4, 0x09af, 0x09c1, 0x09cd, 0x09d9, + 0x09e4, 0x09e7, 0x09f1, 0x09f4, 0x09f8, 0x09fd, 0x0a0d, 0x0a16, + 0x0a21, 0x0a27, 0x0a35, 0x0a42, 0x0a4d, 0x0a52, 0x0a5b, 0x0a62, + 0x0a67, 0x0a73, 0x0a81, 0x0a86, 0x0a8e, 0x0a93, 0x0a9a, 0x0a9f, + // Entry 140 - 17F + 0x0aa4, 0x0aad, 0x0ab7, 0x0ac1, 0x0acb, 0x0ad6, 0x0ae2, 0x0ae7, + 0x0aeb, 0x0af2, 0x0af8, 0x0afd, 0x0b07, 0x0b0f, 0x0b27, 0x0b2d, + 0x0b33, 0x0b3c, 0x0b4b, 0x0b5a, 0x0b65, 0x0b73, 0x0b7c, 0x0b82, + 0x0b85, 0x0b8a, 0x0b8e, 0x0b99, 0x0ba0, 0x0ba4, 0x0bab, 0x0bb6, + 0x0bbd, 0x0bc1, 0x0bc9, 0x0bce, 0x0bda, 0x0bea, 0x0bf0, 0x0bf9, + 0x0bfe, 0x0c06, 0x0c0e, 0x0c1e, 0x0c25, 0x0c2f, 0x0c35, 0x0c44, + 0x0c48, 0x0c51, 0x0c59, 0x0c5f, 0x0c67, 0x0c6c, 0x0c75, 0x0c7e, + 0x0c85, 0x0c8b, 0x0c90, 0x0c96, 0x0c9b, 0x0ca3, 0x0cb5, 0x0cbe, + // Entry 180 - 1BF + 0x0cc7, 0x0ccd, 0x0cd8, 0x0cdd, 0x0ce1, 0x0ce9, 0x0cf5, 0x0cff, + 0x0d07, 0x0d0c, 0x0d0f, 0x0d15, 0x0d1a, 0x0d2c, 0x0d33, 0x0d3e, + 0x0d42, 0x0d48, 0x0d50, 0x0d57, 0x0d5c, 0x0d66, 0x0d6a, 0x0d70, + 0x0d76, 0x0d7b, 0x0d7f, 0x0d8f, 0x0d9a, 0x0da8, 0x0daf, 0x0db8, + 0x0dc3, 0x0dce, 0x0dd6, 0x0ddc, 0x0de1, 0x0ded, 0x0df4, 0x0e00, + 0x0e08, 0x0e14, 0x0e1b, 0x0e23, 0x0e28, 0x0e2d, 0x0e38, 0x0e3f, + 0x0e4b, 0x0e4f, 0x0e58, 0x0e61, 0x0e65, 0x0e6e, 0x0e75, 0x0e7b, + 0x0e8e, 0x0e93, 0x0e9f, 0x0ea5, 0x0eaa, 0x0eb3, 0x0eb7, 0x0ec9, + // Entry 1C0 - 1FF + 0x0ed1, 0x0ed9, 0x0ede, 0x0ee3, 0x0ee8, 0x0ef2, 0x0efc, 0x0f09, + 0x0f11, 0x0f1b, 0x0f20, 0x0f2a, 0x0f3b, 0x0f50, 0x0f5c, 0x0f67, + 0x0f70, 0x0f7d, 0x0f85, 0x0f8b, 0x0f99, 0x0fa9, 0x0fb0, 0x0fca, + 0x0fd4, 0x0fdb, 0x0fe8, 0x0ff0, 0x0ffa, 0x0fff, 0x1005, 0x1010, + 0x1015, 0x101e, 0x1028, 0x102b, 0x1032, 0x103b, 0x1047, 0x104e, + 0x1053, 0x105a, 0x1064, 0x106b, 0x1070, 0x107b, 0x1082, 0x1096, + 0x10a1, 0x10a7, 0x10ab, 0x10af, 0x10b5, 0x10c0, 0x10ca, 0x10d5, + 0x10de, 0x10e2, 0x10ef, 0x10f5, 0x1102, 0x1109, 0x1113, 0x111e, + // Entry 200 - 23F + 0x112a, 0x1136, 0x113d, 0x1145, 0x1151, 0x1156, 0x115a, 0x1167, + 0x116d, 0x1171, 0x117a, 0x1183, 0x1193, 0x119a, 0x11a3, 0x11a7, + 0x11ac, 0x11b0, 0x11b6, 0x11bb, 0x11c1, 0x11c5, 0x11d0, 0x11d7, + 0x11e1, 0x11e8, 0x11ee, 0x11f6, 0x1204, 0x120d, 0x1213, 0x1219, + 0x1223, 0x122c, 0x123e, 0x1245, 0x1250, 0x1257, 0x1260, 0x127b, + 0x1285, 0x128f, 0x1296, 0x1299, 0x129c, 0x12a7, 0x12ab, 0x12bc, + 0x12ca, 0x12d1, 0x12d6, 0x12db, 0x12e6, 0x12ec, 0x12f1, 0x12f6, + 0x12fe, 0x1300, 0x130b, 0x1318, 0x131e, 0x1323, 0x132c, 0x1333, + // Entry 240 - 27F + 0x1342, 0x134b, 0x1357, 0x135e, 0x136a, 0x1375, 0x137b, 0x1398, + 0x139c, 0x13b6, 0x13be, 0x13d5, 0x13d5, 0x13e7, 0x13fb, 0x140e, + 0x1422, 0x1433, 0x1446, 0x145d, 0x146e, 0x147f, 0x147f, 0x1492, + 0x14a4, 0x14af, 0x14bb, 0x14d3, 0x14e9, 0x14f3, 0x1501, 0x150e, + 0x1522, 0x1538, +} // Size: 1244 bytes + +var swLangStr string = "" + // Size: 2426 bytes + "KiabkhaziKiafrikanaKiakaniKiamhariKiarabuKiassamKiaimaraKiazabajaniKibas" + + "hkirKibelarusiKibulgariaKibambaraKibengaliKitibetiKibretoniKibosniaKikat" + + "alaniKichecheniaKikosikaniKichekiKichuvashKiwelisiKidenmakiKijerumaniKid" + + "ivehiKizongkhaKieweKigirikiKiingerezaKiesperantoKihispaniaKiestoniaKibas" + + "queKiajemiKifiniKifijiKifaroeKifaransaKifrisia cha MagharibiKiayalandiKi" + + "gaeli cha UskotiKigalisiKiguaraniKigujaratiKimanxKihausaKiebraniaKihindi" + + "KroeshiaKihaitiKihungariKiarmeniaKiintalinguaKiindonesiaKiigboSichuan Yi" + + "KiaisilandiKiitalianoKiinuktitutKijapaniKijavaKijojiaKikongoKikikuyuKika" + + "zakiKikalaallisutKikambodiaKikannadaKikoreaKikashmiriKikurdiKikomiKikorn" + + "iKikirigiziKilatiniKilasembagiKigandaKilingalaKilaosiKilithuaniaKiluba-K" + + "atangaKilatviaMalagasiKimaoriKimasedoniaKimalayalamKimongoliaKimarathiKi" + + "malesiaKimaltaKiburmaKindebele cha KaskaziniKinepaliKiholanziKinorwe Kip" + + "yaKibokmal cha NorweKinyanjaKiokitaniKioromoKioriyaKiosetiaKipunjabiKipo" + + "landiKipashtoKirenoKiquechuaKiromanshiKirundiKiromaniaKirusiKinyarwandaK" + + "isanskritiKisindhiKisami cha KaskaziniKisangoKisinhalaKislovakiaKisloven" + + "iaKisamoaKishonaKisomaliKialbaniaKiserbiaKiswatiKisotho cha KusiniKisund" + + "aKiswidiKiswahiliKitamilKiteluguKitajikiKitailandiKitigrinyaKiturukimeni" + + "KitswanaKitongaKiturukiKitsongaKitatariKitahitiKiuyghurKiukraniaKiurduKi" + + "uzbekiKivendaKivietinamuKiwolofuKixhosaKiyidiKiyorubaKichinaKizuluKiakol" + + "iKiaghemKimapucheKiarabu cha KialjeriaKiarabu cha MisriKiasuKibembaKiben" + + "aKibalochi cha MagharibiKibodoKichigaKicherokeeKikurdi cha SoraniKitaita" + + "KizarmaKidolnoserbskiKidualaKijola-FonyiKiembuKiefikiKifilipinoKigaKigag" + + "auziKiyunaniKijerumani cha UswisiKikisiiKihawaiKihitihsbKingombaKimacham" + + "eKikabyliaKikambaKimakondeKikabuverdianuKikoroKikoyra ChiiniKikalenjinKi" + + "mbunduKikomipermyakKikonkaniKisambaaKibafiaKirangiChilambaKilakotaKilozi" + + "Kiluri cha KaskaziniKiluba-LuluaKijaluoKiluhyaKimagahiKimaasaiKimeruKimo" + + "riseniKimakhuwa-MeettoKimetaKimohokiKimundangKimazanderaniKinamandsKinew" + + "ariKikwasioN’KoKisotho cha KaskaziniKinuerKinewari cha kaleKinyankoleKʼi" + + "cheʼKiromboKirwoKisamburuKisanguKikurdi cha KusiniKisenaKoyraboro SenniK" + + "itachelhitKisami cha KusiniKisami cha LuleKisami cha InariKisami cha Sko" + + "ltKisukumaKitesoKitetumKiklingoniKitokpisinKitumbukaKitasawaqCentral Atl" + + "as TamazightLugha IsiyojulikanaKivaiKivunjoKiwarlpiriKisogaKiyaoTamaziti" + + " Msingi ya KimorokoHakuna maudhui ya lughaKiarabu Sanifu cha KisasaKingw" + + "anaKichina (Kilichorahisishwa)Kichina cha Jadi" + +var swLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x001a, 0x0022, 0x0022, + 0x0029, 0x0030, 0x0030, 0x0038, 0x0043, 0x004c, 0x0056, 0x0060, + 0x0060, 0x0069, 0x0072, 0x007a, 0x0083, 0x008b, 0x0095, 0x00a0, + 0x00a0, 0x00aa, 0x00aa, 0x00b1, 0x00b1, 0x00ba, 0x00c2, 0x00cb, + 0x00d5, 0x00dd, 0x00e6, 0x00eb, 0x00f3, 0x00fd, 0x0108, 0x0112, + 0x011b, 0x0123, 0x012a, 0x012a, 0x0130, 0x0136, 0x013d, 0x0146, + 0x015c, 0x0166, 0x0178, 0x0180, 0x0189, 0x0193, 0x0199, 0x01a0, + 0x01a9, 0x01b0, 0x01b0, 0x01b8, 0x01bf, 0x01c8, 0x01d1, 0x01d1, + // Entry 40 - 7F + 0x01dd, 0x01e8, 0x01e8, 0x01ee, 0x01f8, 0x01f8, 0x01f8, 0x0203, + 0x020d, 0x0218, 0x0220, 0x0226, 0x022d, 0x0234, 0x023c, 0x023c, + 0x0244, 0x0251, 0x025b, 0x0264, 0x026b, 0x026b, 0x0275, 0x027c, + 0x0282, 0x0289, 0x0293, 0x029b, 0x02a6, 0x02ad, 0x02ad, 0x02b6, + 0x02bd, 0x02c8, 0x02d6, 0x02de, 0x02e6, 0x02e6, 0x02ed, 0x02f8, + 0x0303, 0x030d, 0x0316, 0x031f, 0x0326, 0x032d, 0x032d, 0x0344, + 0x034c, 0x034c, 0x0355, 0x0362, 0x0374, 0x0374, 0x0374, 0x037c, + 0x0385, 0x0385, 0x038c, 0x0393, 0x039b, 0x03a4, 0x03a4, 0x03ad, + // Entry 80 - BF + 0x03b5, 0x03bb, 0x03c4, 0x03ce, 0x03d5, 0x03de, 0x03e4, 0x03ef, + 0x03fa, 0x03fa, 0x0402, 0x0416, 0x041d, 0x0426, 0x0430, 0x043a, + 0x0441, 0x0448, 0x0450, 0x0459, 0x0461, 0x0468, 0x047a, 0x0481, + 0x0488, 0x0491, 0x0498, 0x04a0, 0x04a8, 0x04b2, 0x04bc, 0x04c8, + 0x04d0, 0x04d7, 0x04df, 0x04e7, 0x04ef, 0x04f7, 0x04ff, 0x0508, + 0x050e, 0x0516, 0x051d, 0x0528, 0x0528, 0x0528, 0x0530, 0x0537, + 0x053d, 0x0545, 0x0545, 0x054c, 0x0552, 0x0552, 0x0559, 0x0559, + 0x0559, 0x0559, 0x0559, 0x0560, 0x0560, 0x0560, 0x0560, 0x0560, + // Entry C0 - FF + 0x0560, 0x0560, 0x0560, 0x0560, 0x0560, 0x0569, 0x0569, 0x0569, + 0x057e, 0x057e, 0x057e, 0x058f, 0x0594, 0x0594, 0x0594, 0x0594, + 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, + 0x0594, 0x059b, 0x059b, 0x05a1, 0x05a1, 0x05a1, 0x05b8, 0x05b8, + 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05b8, 0x05b8, + 0x05b8, 0x05be, 0x05be, 0x05be, 0x05be, 0x05be, 0x05be, 0x05be, + 0x05be, 0x05be, 0x05be, 0x05be, 0x05be, 0x05c5, 0x05c5, 0x05c5, + 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05c5, 0x05cf, 0x05cf, 0x05e1, + // Entry 100 - 13F + 0x05e1, 0x05e1, 0x05e1, 0x05e1, 0x05e1, 0x05e1, 0x05e8, 0x05e8, + 0x05e8, 0x05e8, 0x05e8, 0x05ef, 0x05ef, 0x05fd, 0x05fd, 0x0604, + 0x0604, 0x0610, 0x0610, 0x0610, 0x0616, 0x061d, 0x061d, 0x061d, + 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x061d, 0x0627, + 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, 0x0627, + 0x0627, 0x062b, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, + 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, 0x0634, + 0x0634, 0x063c, 0x0651, 0x0651, 0x0651, 0x0658, 0x0658, 0x0658, + // Entry 140 - 17F + 0x0658, 0x065f, 0x065f, 0x065f, 0x0665, 0x0665, 0x0668, 0x0668, + 0x0668, 0x0668, 0x0668, 0x0668, 0x0668, 0x0668, 0x0668, 0x0668, + 0x0670, 0x0679, 0x0679, 0x0679, 0x0679, 0x0679, 0x0682, 0x0682, + 0x0682, 0x0689, 0x0689, 0x0689, 0x0689, 0x0689, 0x0692, 0x06a0, + 0x06a0, 0x06a6, 0x06a6, 0x06a6, 0x06a6, 0x06b4, 0x06b4, 0x06b4, + 0x06b4, 0x06be, 0x06c6, 0x06d3, 0x06dc, 0x06dc, 0x06dc, 0x06dc, + 0x06dc, 0x06dc, 0x06dc, 0x06dc, 0x06e4, 0x06eb, 0x06eb, 0x06eb, + 0x06eb, 0x06eb, 0x06f2, 0x06f2, 0x06fa, 0x06fa, 0x06fa, 0x06fa, + // Entry 180 - 1BF + 0x06fa, 0x0702, 0x0702, 0x0702, 0x0708, 0x071c, 0x071c, 0x0728, + 0x0728, 0x0728, 0x072f, 0x072f, 0x0736, 0x0736, 0x0736, 0x0736, + 0x0736, 0x073e, 0x073e, 0x073e, 0x073e, 0x0746, 0x0746, 0x0746, + 0x0746, 0x0746, 0x074c, 0x0756, 0x0756, 0x0766, 0x076c, 0x076c, + 0x076c, 0x076c, 0x076c, 0x0774, 0x0774, 0x0774, 0x077d, 0x077d, + 0x077d, 0x077d, 0x077d, 0x077d, 0x077d, 0x077d, 0x078a, 0x078a, + 0x078a, 0x0790, 0x0793, 0x079b, 0x079b, 0x079b, 0x079b, 0x07a3, + 0x07a3, 0x07a3, 0x07a3, 0x07a3, 0x07a9, 0x07be, 0x07c4, 0x07d5, + // Entry 1C0 - 1FF + 0x07d5, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, + 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, + 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07e8, 0x07e8, + 0x07e8, 0x07e8, 0x07e8, 0x07e8, 0x07e8, 0x07ef, 0x07ef, 0x07ef, + 0x07ef, 0x07ef, 0x07ef, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07fd, + 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x0804, 0x0804, 0x0804, 0x0804, + 0x0816, 0x0816, 0x081c, 0x081c, 0x081c, 0x082b, 0x082b, 0x082b, + 0x0836, 0x0836, 0x0836, 0x0836, 0x0836, 0x0836, 0x0847, 0x0856, + // Entry 200 - 23F + 0x0866, 0x0876, 0x0876, 0x0876, 0x0876, 0x0876, 0x0876, 0x0876, + 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, 0x087e, + 0x087e, 0x0884, 0x0884, 0x088b, 0x088b, 0x088b, 0x088b, 0x088b, + 0x0895, 0x0895, 0x0895, 0x0895, 0x0895, 0x089f, 0x089f, 0x089f, + 0x089f, 0x089f, 0x089f, 0x08a8, 0x08a8, 0x08b1, 0x08b1, 0x08c8, + 0x08c8, 0x08c8, 0x08c8, 0x08db, 0x08e0, 0x08e0, 0x08e0, 0x08e0, + 0x08e0, 0x08e0, 0x08e0, 0x08e7, 0x08e7, 0x08e7, 0x08e7, 0x08e7, + 0x08f1, 0x08f1, 0x08f1, 0x08f1, 0x08f7, 0x08fc, 0x08fc, 0x08fc, + // Entry 240 - 27F + 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x08fc, 0x0917, + 0x0917, 0x092e, 0x092e, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, + 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, + 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x0947, 0x094f, + 0x096a, 0x097a, +} // Size: 1244 bytes + +var taLangStr string = "" + // Size: 12271 bytes + "அஃபாரà¯à®…பà¯à®•à®¾à®œà®¿à®¯à®¾à®©à¯à®…வெஸà¯à®¤à®¾à®©à¯à®†à®ƒà®ªà¯à®°à®¿à®•à®¾à®©à¯à®¸à¯à®…கானà¯à®…à®®à¯à®¹à®¾à®°à®¿à®•à¯à®†à®°à¯à®•à¯‹à®©à¯€à®¸à¯à®…ரபிகà¯à®…ஸà¯à®¸à®¾" + + "மீஸà¯à®…வேரிகà¯à®…யà¯à®®à®°à®¾à®…ஸரà¯à®ªà¯ˆà®œà®¾à®©à®¿à®ªà®·à¯à®•à®¿à®°à¯à®ªà¯†à®²à®¾à®°à¯à®·à®¿à®¯à®©à¯à®ªà®²à¯à®•à¯‡à®°à®¿à®¯à®©à¯à®ªà®¿à®¸à¯à®²à®¾à®®à®¾à®ªà®®à¯à®ªà®¾à®°à®¾" + + "வஙà¯à®•à®¾à®³à®®à¯à®¤à®¿à®ªà¯†à®¤à¯à®¤à®¿à®¯à®©à¯à®ªà®¿à®°à¯†à®Ÿà¯à®Ÿà®©à¯à®ªà¯‹à®¸à¯à®©à®¿à®¯à®©à¯à®•à¯‡à®Ÿà¯à®Ÿà®²à®¾à®©à¯à®šà¯†à®šà¯à®šà¯†à®©à¯à®šà®¾à®®à¯‹à®°à¯‹à®•à®¾à®°à¯à®šà®¿à®•à®©à¯à®•" + + "à¯à®°à¯€à®šà¯†à®•à¯à®šà®°à¯à®šà¯ ஸà¯à®²à®¾à®µà®¿à®•à¯à®šà¯à®µà®¾à®·à¯à®µà¯‡à®²à¯à®·à¯à®Ÿà¯‡à®©à®¿à®·à¯à®œà¯†à®°à¯à®®à®©à¯à®¤à®¿à®µà¯‡à®¹à®¿à®ªà¯‚டானிஈவà¯à®•à®¿à®°à¯‡à®•à¯à®•à®®à¯" + + "ஆஙà¯à®•à®¿à®²à®®à¯à®Žà®¸à¯à®ªà®°à¯‡à®©à¯à®Ÿà¯‹à®¸à¯à®ªà®¾à®©à®¿à®·à¯à®Žà®¸à¯à®Ÿà¯‹à®©à®¿à®¯à®©à¯à®ªà®¾à®¸à¯à®•à¯à®ªà¯†à®°à¯à®·à®¿à®¯à®©à¯à®ƒà®ªà¯à®²à®¾à®ƒà®ªà®¿à®©à¯à®©à®¿à®·à¯à®ƒà®ªà®¿à®œà®¿" + + "யனà¯à®ƒà®ªà®°à¯‹à®¯à®¿à®¸à¯à®ªà®¿à®°à¯†à®žà¯à®šà¯à®®à¯‡à®±à¯à®•à¯ ஃபà¯à®°à®¿à®·à®¿à®¯à®©à¯à®à®°à®¿à®·à¯à®¸à¯à®•à®¾à®Ÿà¯à®¸à¯ கேலிகà¯à®•à®¾à®²à®¿à®¸à®¿à®¯à®©à¯à®•à¯à®°à®¾à®©" + + "ிகà¯à®œà®°à®¾à®¤à¯à®¤à®¿à®®à¯‡à®™à¯à®•à¯à®¸à¯à®¹à¯Œà®¸à®¾à®¹à¯€à®ªà¯à®°à¯‚இநà¯à®¤à®¿à®¹à®¿à®°à®¿ மோடà¯à®Ÿà¯à®•à¯à®°à¯‹à®·à®¿à®¯à®©à¯à®¹à¯ˆà®¤à¯à®¤à®¿à®¯à®©à¯à®¹à®™à¯à®•à¯‡à®°à®¿à®¯" + + "னà¯à®†à®°à¯à®®à¯‡à®©à®¿à®¯à®©à¯à®¹à¯†à®°à¯‡à®°à¯‹à®‡à®£à¯à®Ÿà®°à¯à®²à®¿à®™à¯à®µà®¾à®‡à®¨à¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®©à¯à®‡à®©à¯à®Ÿà®°à¯à®²à®¿à®™à¯à®‡à®•à¯à®ªà¯‹à®šà®¿à®šà¯à®µà®¾à®©à¯ ஈஇனà¯" + + "பியாகà¯à®‡à®Ÿà¯‹à®à®¸à¯à®²à¯‡à®£à¯à®Ÿà®¿à®•à¯à®‡à®¤à¯à®¤à®¾à®²à®¿à®¯à®©à¯à®‡à®©à¯à®•à®¿à®Ÿà¯‚டà¯à®œà®ªà¯à®ªà®¾à®©à®¿à®¯à®®à¯à®œà®¾à®µà®©à¯€à®¸à¯à®œà®¾à®°à¯à®œà®¿à®¯à®©à¯à®•à®¾à®™à¯à®•" + + "ோகிகà¯à®¯à¯‚கà¯à®µà®¾à®©à¯à®¯à®¾à®®à®¾à®•à®šà®¾à®•à¯à®•à®²à®¾à®²à®¿à®šà¯‚டà¯à®•à¯†à®®à¯†à®°à¯à®•à®©à¯à®©à®Ÿà®®à¯à®•à¯Šà®°à®¿à®¯à®©à¯à®•à®©à¯à®°à®¿à®•à®¾à®·à¯à®®à®¿à®°à®¿à®•à¯à®°à¯à®¤à®¿" + + "à®·à¯à®•à¯‹à®®à®¿à®•à®¾à®°à¯à®©à®¿à®·à¯à®•à®¿à®°à¯à®•à®¿à®¸à¯à®²à®¤à¯à®¤à®¿à®©à¯à®²à®•à¯à®¸à®®à¯à®ªà¯‹à®°à¯à®•à®¿à®·à¯à®•à®¾à®©à¯à®Ÿà®¾à®²à®¿à®®à¯à®ªà®°à¯à®•à®¿à®·à¯à®²à®¿à®™à¯à®•à®¾à®²à®¾à®²à®¾" + + "வோலிதà¯à®µà¯‡à®©à®¿à®¯à®©à¯à®²à¯à®ªà®¾-கடாஙà¯à®•à®¾à®²à®¾à®Ÿà¯à®µà®¿à®¯à®©à¯à®®à®²à®•à®¾à®¸à®¿à®®à®¾à®°à¯à®·à¯†à®²à®¿à®·à¯à®®à¯Œà®°à®¿à®®à®¾à®¸à®¿à®Ÿà¯‹à®©à®¿à®¯à®©à¯à®®à®²à¯ˆà®¯à®¾" + + "ளமà¯à®®à®™à¯à®•à¯‹à®²à®¿à®¯à®©à¯à®®à®°à®¾à®¤à¯à®¤à®¿à®®à®²à®¾à®¯à¯à®®à®¾à®²à¯à®Ÿà®¿à®¸à¯à®ªà®°à¯à®®à¯€à®¸à¯à®¨à®µà¯à®°à¯‚வடகà¯à®•à¯ தெபெலேநேபாளிதோஙà¯à®•à®¾" + + "டசà¯à®šà¯à®¨à®¾à®°à¯à®µà¯‡à®œà®¿à®¯à®©à¯ நியூநாரà¯à®¸à¯à®•à¯à®¨à®¾à®°à¯à®µà¯‡à®œà®¿à®¯à®©à¯ பொகà¯à®®à®¾à®²à¯à®¤à¯†à®±à¯à®•à¯ தெபெலேநவாஜோநயன" + + "à¯à®œà®¾à®’கà¯à®•à®¿à®Ÿà®©à¯à®“ஜிபவாஒரோமோஒரியாஒசெடà¯à®Ÿà®¿à®•à¯à®ªà®žà¯à®šà®¾à®ªà®¿à®ªà®¾à®²à®¿à®ªà¯‹à®²à®¿à®·à¯à®ªà®·à¯à®¤à¯‹à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯à®•à¯€" + + "ஸà¯à®•à®¿à®µà¯‡à®šà¯à®µà®¾à®°à¯‹à®®à®¾à®©à¯à®·à¯à®°à¯à®£à¯à®Ÿà®¿à®°à¯‹à®®à¯‡à®©à®¿à®¯à®©à¯à®°à®·à®¿à®¯à®©à¯à®•à®¿à®©à¯à®¯à®¾à®°à¯à®µà®¾à®©à¯à®Ÿà®¾à®šà®®à®¸à¯à®•à®¿à®°à¯à®¤à®®à¯à®šà®¾à®Ÿà®¿à®©à®¿" + + "யனà¯à®šà®¿à®¨à¯à®¤à®¿à®µà®Ÿà®•à¯à®•à¯ சமிசாஙà¯à®•à¯‹à®šà®¿à®™à¯à®•à®³à®®à¯à®¸à¯à®²à¯‹à®µà®¾à®•à¯à®¸à¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®©à¯à®¸à®¾à®®à¯‹à®µà®¾à®©à¯à®·à¯‹à®©à®¾à®šà¯‹à®®à®¾à®²à®¿" + + "அலà¯à®ªà¯‡à®©à®¿à®¯à®©à¯à®šà¯†à®°à¯à®ªà®¿à®¯à®©à¯à®¸à¯à®µà®¾à®Ÿà¯€à®¤à¯†à®±à¯à®•à¯ ஸோதோசà¯à®£à¯à®Ÿà®¾à®©à¯€à®¸à¯à®¸à¯à®µà¯€à®Ÿà®¿à®·à¯à®šà¯à®µà®¾à®¹à®¿à®²à®¿à®¤à®®à®¿à®´à¯à®¤à¯†à®²" + + "à¯à®™à¯à®•à¯à®¤à®¾à®œà®¿à®•à¯à®¤à®¾à®¯à¯à®Ÿà®¿à®•à¯à®°à®¿à®©à¯à®¯à®¾à®¤à¯à®°à¯à®•à¯à®®à¯†à®©à¯à®¸à¯à®µà®¾à®©à®¾à®Ÿà¯‹à®™à¯à®•à®¾à®©à¯à®¤à¯à®°à¯à®•à¯à®•à®¿à®·à¯à®¸à¯‹à®™à¯à®•à®¾à®Ÿà®¾à®Ÿà®°à¯" + + "டஹிதியானà¯à®‰à®¯à¯à®•à¯à®°à¯à®‰à®•à¯à®°à¯ˆà®©à®¿à®¯à®©à¯à®‰à®°à¯à®¤à¯à®‰à®¸à¯à®ªà¯†à®•à¯à®µà¯†à®©à¯à®Ÿà®¾à®µà®¿à®¯à®Ÿà¯à®¨à®¾à®®à®¿à®¸à¯à®’லாபூகà¯à®’வாலூனà¯à®’" + + "லூஃபà¯à®¹à¯‹à®šà®¾à®‡à®¤à¯à®¤à®¿à®·à¯à®¯à¯‹à®°à¯à®ªà®¾à®œà¯à®µà®¾à®™à¯à®šà¯€à®©à®®à¯à®œà¯à®²à¯à®†à®šà¯à®šà®¿à®©à¯€à®¸à¯à®…கோலிஅதாஙà¯à®®à¯‡à®…தகேதà¯à®©à®¿à®šà®¿à®¯ " + + "அரபà¯à®…ஃபà¯à®°à®¿à®¹à®¿à®²à®¿à®…கெமà¯à®à®©à¯à®…கà¯à®•à¯‡à®¤à®¿à®¯à®©à¯à®…லூடà¯à®¤à¯†à®±à¯à®•à¯ அலà¯à®¤à¯ˆà®ªà®´à¯ˆà®¯ ஆஙà¯à®•à®¿à®²à®®à¯à®…à®™à¯à®•à®¿à®•à®¾à®…" + + "ராமைகà¯à®®à®ªà¯à®šà¯‡à®…ரபஹோஅராவாகà¯à®…சà¯à®…ஸà¯à®¤à¯à®°à®¿à®¯à®©à¯à®…வதிபெலà¯à®šà®¿à®ªà®²à®¿à®©à¯€à®¸à¯à®ªà®¾à®¸à®¾à®ªà¯‡à®œà®¾à®ªà¯†à®®à¯à®ªà®¾à®ªà¯†à®©" + + "ாபடகாமேறà¯à®•à¯ பலோசà¯à®šà®¿à®ªà¯‹à®œà¯à®ªà¯‚ரிபிகோலà¯à®ªà®¿à®©à®¿à®šà®¿à®•à¯à®šà®¿à®•à®¾à®ªà®¿à®·à¯à®£à¯à®ªà¯à®ªà®¿à®°à®¿à®¯à®¾à®ªà¯à®°à®¾à®œà¯à®ªà¯‹à®Ÿà¯‹à®ª" + + "à¯à®°à®¿à®¯à®¾à®¤à¯à®ªà¯à®•à®¿à®©à¯€à®¸à¯à®ªà¯à®²à®¿à®©à¯à®•à¯‡à®Ÿà¯‹à®•à®°à¯€à®ªà¯à®†à®Ÿà¯à®šà®®à¯à®šà¯†à®ªà¯à®µà®¾à®©à¯‹à®šà®¿à®•à®¾à®šà®¿à®ªà¯à®šà®¾à®·à®•à®¤à¯ˆà®šà¯‚கிசேமாரிசி" + + "னூக௠ஜாரà¯à®•à®¾à®©à¯à®šà¯‹à®•à¯à®¤à¯Œà®šà®¿à®ªà¯†à®µà¯à®¯à®¾à®©à¯à®šà¯†à®°à¯‹à®•à¯€à®šà¯†à®¯à¯‡à®©à®¿à®®à®¤à¯à®¤à®¿à®¯ கà¯à®°à¯à®¤à®¿à®·à¯à®•à®¾à®ªà¯à®Ÿà®¿à®•à¯à®•à®¿à®°à®¿à®®à®¿" + + "யன௠தà¯à®°à¯à®•à¯à®•à®¿à®•à®·à¯à®ªà®¿à®¯à®©à¯à®¤à®•à¯‹à®Ÿà®¾à®¤à®¾à®°à¯à®•à¯à®µà®¾à®Ÿà¯ˆà®Ÿà®¾à®¤à¯†à®²à®¾à®µà¯‡à®°à¯à®¸à¯à®²à®¾à®µà¯à®Ÿà¯‹à®•à¯à®°à®¿à®ªà¯à®Ÿà®¿à®©à¯à®•à®¾à®šà®¾à®°à¯à®®" + + "ாடோகà¯à®°à®¿à®²à¯‹à®¯à®°à¯ சோரà¯à®ªà®¿à®¯à®©à¯à®Ÿà¯à®µà®¾à®²à®¾à®®à®¤à¯à®¤à®¿à®¯ டசà¯à®šà¯à®œà¯‹à®²à®¾-ஃபோனà¯à®¯à®¿à®Ÿà¯à®¯à¯‚லாஎமà¯à®ªà¯à®Žà®ƒà®ªà®¿à®•à¯à®ª" + + "ணà¯à®Ÿà¯ˆà®¯ எகிபà¯à®¤à®¿à®¯à®©à¯à®ˆà®•à®¾à®œà¯à®•à¯à®Žà®²à®®à¯ˆà®Ÿà¯à®®à®¤à¯à®¤à®¿à®¯ ஆஙà¯à®•à®¿à®²à®®à¯à®Žà®µà¯‹à®©à¯à®Ÿà¯‹à®ƒà®ªà®™à¯à®•à¯à®ƒà®ªà®¿à®²à®¿à®ªà®¿à®©à¯‹à®ƒà®ªà®¾à®©" + + "à¯à®®à®¤à¯à®¤à®¿à®¯ ஃபà¯à®°à¯†à®©à¯à®šà¯à®ªà®´à¯ˆà®¯ ஃபà¯à®°à¯†à®©à¯à®šà¯à®µà®Ÿà®•à¯à®•à¯ ஃபà¯à®°à®¿à®¸à®¿à®¯à®¾à®©à¯à®•à®¿à®´à®•à¯à®•à¯ ஃபà¯à®°à®¿à®¸à®¿à®¯à®¾à®©à¯à®ƒà®ª" + + "à¯à®°à®¿à®¯à¯‚லியனà¯à®•à®¾à®•à®¾à®•à¯Œà®¸à¯à®•à®¯à¯‹à®ªà®¯à®¾à®•à¯€à®œà¯à®•à®¿à®²à¯à®ªà¯†à®°à¯à®Ÿà¯€à®¸à¯à®®à®¤à¯à®¤à®¿à®¯ ஹை ஜெரà¯à®®à®©à¯à®ªà®´à¯ˆà®¯ ஹை ஜெரà¯à®®" + + "னà¯à®•à¯‹à®©à¯à®Ÿà®¿à®•à¯‹à®°à¯‹à®©à¯à®Ÿà®²à¯‹à®•à¯‹à®¤à®¿à®•à¯à®•à¯à®°à¯‡à®ªà¯‹à®ªà®£à¯à®Ÿà¯ˆà®¯ கிரேகà¯à®•à®®à¯à®œà¯†à®°à¯à®®à®©à¯ (ஸà¯à®µà®¿à®¸à¯)கà¯à®¸à®¿à®•à¯à®µà®¿à®š" + + "ினà¯à®¹à¯ˆà®Ÿà®¾à®¹à®µà®¾à®¯à®¿à®¯à®©à¯à®ªà®¿à®œà®¿ இநà¯à®¤à®¿à®¹à®¿à®²à®¿à®•à®¾à®¯à¯à®©à®¾à®©à¯à®¹à®¿à®Ÿà¯à®Ÿà¯ˆà®Ÿà¯à®®à®¾à®™à¯à®•à¯à®…பà¯à®ªà®°à¯ சோரà¯à®ªà®¿à®¯à®¾à®©à¯à®¹à¯" + + "பாஇபானà¯à®‡à®²à¯‹à®•à¯‹à®‡à®™à¯à®•à¯à®·à¯à®²à¯‹à®œà¯à®ªà®©à¯à®¨à®•à¯Šà®®à¯à®ªà®¾à®®à®¾à®šà¯†à®®à¯à®œà¯‚தேயோ-பெரà¯à®·à®¿à®¯à®©à¯à®œà¯‚தேயோ-அராபிகà¯à®•" + + "ாரா-கலà¯à®ªà®¾à®•à¯à®•à®ªà®¾à®¯à¯à®²à¯à®•à®¾à®šà®¿à®©à¯à®œà¯à®œà¯‚கமà¯à®ªà®¾à®•à®¾à®µà®¿à®•à®ªà®¾à®°à¯à®Ÿà®¿à®¯à®©à¯à®¤à¯ˆà®¯à®¾à®ªà¯à®®à®•à¯Šà®£à¯à®Ÿà¯‡à®•à®ªà¯à®µà¯†à®°à¯à®¤à®¿à®¯" + + "ானà¯à®•à¯‹à®°à¯‹à®•à®¾à®¸à®¿à®•à¯‹à®¤à®¾à®©à¯€à®¸à¯à®•à¯Šà®¯à¯à®°à®¾ சீனீகலினà¯à®œà®¿à®©à¯à®•à®¿à®®à¯à®ªà¯à®©à¯à®¤à¯à®•à¯Šà®®à®¿-பெரà¯à®®à¯à®¯à®¾à®•à¯à®•à¯Šà®™à¯à®•à®£" + + "ிகோஸà¯à®°à¯ˆà®©à¯à®•à¯à®ªà¯†à®²à¯à®²à¯‡à®•à®°à®¾à®šà¯‡-பலà¯à®•à®¾à®°à¯à®•à®°à¯‡à®²à®¿à®¯à®©à¯à®•à¯à®°à¯à®•à¯à®·à®®à¯à®ªà®¾à®²à®¾à®ªà®¾à®ƒà®ªà®¿à®¯à®¾à®•à¯à®®à¯à®‡à®•à¯à®•à¯à®Ÿà¯‡à®©" + + "ைலடினோலஙà¯à®•à®¿à®²à®¹à®©à¯à®Ÿà®¾à®²à®®à¯à®ªà®¾à®²à¯†à®œà¯à®œà®¿à®¯à®©à¯à®²à®•à¯‹à®Ÿà®¾à®®à¯‹à®™à¯à®•à¯‹à®²à¯‹à®šà®¿à®µà®Ÿà®•à¯à®•à¯ லà¯à®°à®¿à®²à¯à®ªà®¾-லà¯à®²à¯à®²à®¾à®²à¯" + + "யà¯à®šà¯‡à®©à¯‹à®²à¯‚னà¯à®Ÿà®¾à®²à¯à®¯à¯‹à®²à¯à®·à®¯à¯à®²à¯à®¯à®¿à®¯à®¾à®®à®¤à¯à®°à¯€à®¸à¯à®®à®•à®¾à®¹à®¿à®®à¯ˆà®¤à®¿à®²à®¿à®®à®•à®¾à®šà®¾à®°à¯à®®à®¾à®©à¯à®Ÿà®¿à®™à¯à®•à¯‹à®®à®¾à®šà®¾à®¯à¯à®®à¯‹" + + "கà¯à®•à¯à®·à®¾à®®à®¾à®©à¯à®Ÿà®¾à®°à¯à®®à¯†à®©à¯à®Ÿà¯€à®®à¯†à®°à¯à®®à¯Šà®°à®¿à®šà®¿à®¯à®©à¯à®®à®¤à¯à®¤à®¿à®¯ à®à®°à®¿à®·à¯à®®à®•à¯à®µà®¾-மீடà¯à®Ÿà¯‹à®®à¯‡à®Ÿà®¾à®®à®¿à®•à¯à®®à®¾à®•à¯à®®" + + "ினà¯à®©à®¾à®™à¯à®•à®ªà¯Œà®®à®©à¯à®šà¯à®®à®©à®¿à®ªà¯‚ரிமொஹாகà¯à®®à¯‹à®¸à¯à®¸à®¿à®®à¯à®©à¯à®Ÿà®¾à®™à¯à®ªà®² மொழிகளà¯à®•à¯à®°à¯€à®•à¯à®®à®¿à®°à®¾à®©à¯à®Ÿà¯€à®¸à¯à®®à®¾" + + "à®°à¯à®µà®¾à®°à®¿à®à®°à¯à®œà®¿à®¯à®¾à®®à®šà®¨à¯à®¤à¯‡à®°à®©à®¿à®¨à®¿à®¯à¯‹à®ªà¯‹à®²à®¿à®Ÿà®©à¯à®¨à®¾à®®à®¾à®²à¯‹ ஜெரà¯à®®à®©à¯à®¨à¯†à®µà®¾à®°à®¿à®¨à®¿à®¯à®¾à®¸à¯à®¨à®¿à®¯à¯‚வானà¯à®•à¯à®µ" + + "ாசியோநோகைபழைய நோரà¯à®¸à¯à®Žà®©à¯â€˜à®•à¯‹à®µà®Ÿà®•à¯à®•à¯ சோதோநியூரà¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ நேவாரிநியாமà¯à®µà¯‡à®œà®¿à®¨" + + "ியானà¯à®•à¯‹à®²à¯‡à®¨à®¿à®¯à¯‹à®°à¯‹à®¨à®¿à®œà¯à®®à®¾à®“சேஜà¯à®’டà¯à®Ÿà¯‹à®®à®©à¯ தà¯à®°à¯à®•à¯à®•à®¿à®ªà®©à¯à®•à®¾à®šà®¿à®©à®©à¯à®ªà®¾à®¹à¯à®²à®µà®¿à®ªà®®à¯à®ªà®¾à®™à¯à®•à®¾à®ª" + + "பியேமெனà¯à®Ÿà¯‹à®ªà®²à¯Œà®µà¯à®©à¯à®ªà¯†à®©à¯à®šà®¿à®²à¯à®µà¯‡à®©à®¿à®¯ ஜெரà¯à®®à®©à¯à®ªà®´à¯ˆà®¯ பெரà¯à®·à®¿à®¯à®©à¯à®ƒà®ªà¯Šà®©à®¿à®·à®¿à®¯à®©à¯à®ƒà®ªà¯‹à®©à¯à®ªà¯†à®¯" + + "ெனà¯à®ªà®´à¯ˆà®¯ பà¯à®°à¯‹à®µà¯†à®©à¯à®šà®¾à®²à¯à®•à¯€à®šà¯€à®°à®¾à®œà®¸à¯à®¤à®¾à®©à®¿à®°à®ªà®©à¯à®¯à¯à®°à®°à¯‹à®Ÿà¯‹à®™à¯à®•à®©à¯à®°à¯‹à®®à¯à®ªà¯‹à®°à¯‹à®®à®¾à®©à®¿à®…ரோமானியன" + + "à¯à®°à¯à®µà®¾à®šà®¾à®©à¯à®Ÿà®¾à®µà¯‡à®¯à®¾à®•à¯à®Ÿà¯à®šà®®à®¾à®°à®¿à®Ÿà®©à¯ அராமைகà¯à®šà®®à¯à®ªà¯à®°à¯à®šà®¾à®šà®¾à®•à¯à®šà®¾à®©à¯à®Ÿà®¾à®²à®¿à®šà¯Œà®°à®¾à®·à¯à®Ÿà®¿à®°à®®à¯à®šà®™à¯" + + "கà¯à®šà®¿à®šà®¿à®²à®¿à®¯à®©à¯à®¸à¯à®•à®¾à®Ÿà¯à®¸à¯à®¤à¯†à®±à¯à®•à¯ கà¯à®°à¯à®¤à®¿à®·à¯à®šà¯†à®©à®¾à®šà¯†à®²à¯à®•à¯à®ªà¯à®•à¯Šà®¯à¯à®°à®¾à®ªà¯‹à®°à¯‹ செனà¯à®©à®¿à®ªà®´à¯ˆà®¯ à®à®°" + + "ிஷà¯à®¤à®šà¯‡à®¹à®¿à®¤à¯à®·à®¾à®©à¯à®šà®¿à®Ÿà®¾à®®à¯‹à®¤à¯†à®±à¯à®•à¯ சமிலà¯à®²à¯‡ சமிஇனாரி சமிஸà¯à®•à¯‹à®²à¯à®Ÿà¯ சமிசோனினà¯à®•à¯‡à®šà¯‹à®•" + + "à¯à®¤à®¿à®¯à®©à¯à®¸à¯à®°à®¾à®©à®©à¯ டோஙà¯à®•à¯‹à®šà¯†à®°à¯†à®°à¯à®šà¯à®•à¯à®®à®¾à®šà¯à®šà¯à®šà¯à®®à¯‡à®°à®¿à®¯à®©à¯à®•à¯Šà®®à¯‹à®°à®¿à®¯à®©à¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ சிரியா" + + "கà¯à®šà®¿à®°à®¿à®¯à®¾à®•à¯à®Ÿà®¿à®®à¯à®©à¯‡à®Ÿà¯†à®šà¯‹à®Ÿà¯†à®°à¯†à®©à¯‹à®Ÿà¯†à®Ÿà¯à®®à¯à®Ÿà¯ˆà®•à¯à®°à¯‡à®Ÿà®¿à®µà¯à®Ÿà¯‹à®•à¯‡à®²à¯Œà®•à¯à®³à®¿à®™à¯à®•à¯‹à®©à¯à®Ÿà®¿à®²à®¿à®™à¯à®•à®¿à®Ÿà¯à®Ÿà®¾" + + "மாஷேகà¯à®¨à®¯à®¾à®šà®¾ டோஙà¯à®•à®¾à®Ÿà¯‹à®•à¯ பிஸினà¯à®Ÿà¯à®¸à®¿à®®à¯à®·à®¿à®¯à®©à¯à®¤à¯à®®à¯à®ªà¯à®•à®¾à®Ÿà¯à®µà®¾à®²à¯à®Ÿà®šà®µà®¾à®•à¯à®Ÿà¯à®µà®¿à®©à®¿à®¯à®©à¯à®®" + + "தà¯à®¤à®¿à®¯ அடà¯à®²à®¸à¯ டமசைடà¯à®‰à®Ÿà¯à®®à¯à®°à¯à®Ÿà¯à®‰à®•à®¾à®°à®¿à®Ÿà¯à®•à¯à®…à®®à¯à®ªà¯Šà®£à¯à®Ÿà¯à®°à¯‚டà¯à®µà¯ˆà®µà¯‹à®Ÿà¯à®•à¯à®µà¯à®©à¯à®œà¯‹à®µà®¾à®²à®¾à®®à¯‹" + + "வாரேவாஷோவலà¯à®ªà®¿à®°à®¿à®•à®²à¯à®®à®¿à®•à¯à®šà¯‹à®•à®¾à®¯à®¾à®µà¯à®¯à®¾à®ªà¯‡à®šà®¿à®•à®¾à®£à¯à®Ÿà¯‹à®©à¯€à®¸à¯à®œà®¾à®ªà¯‹à®Ÿà¯†à®•à¯à®ªà¯à®²à®¿à®¸à¯à®¸à®¿à®®à¯à®ªà®¾à®²à¯à®¸à¯" + + "ஜெனகாஸà¯à®Ÿà®¾à®£à¯à®Ÿà®°à¯à®Ÿà¯ மொராகà¯à®•à®©à¯ தமாசைடà¯à®œà¯‚னிமொழி உளà¯à®³à®Ÿà®•à¯à®•à®®à¯ à®à®¤à¯à®®à®¿à®²à¯à®²à¯ˆà®œà®¾à®œà®¾à®¨à®µà¯€" + + "ன நிலையான அரபிகà¯à®†à®¸à¯à®¤à®¿à®°à®¿à®¯ ஜெரà¯à®®à®©à¯à®¸à¯à®µà®¿à®¸à¯ ஹை ஜெரà¯à®®à®©à¯à®†à®¸à¯à®¤à®¿à®°à¯‡à®²à®¿à®¯ ஆஙà¯à®•à®¿à®²à®®à¯à®•à®©" + + "டிய ஆஙà¯à®•à®¿à®²à®®à¯à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà®¿à®·à¯ ஆஙà¯à®•à®¿à®²à®®à¯à®…மெரிகà¯à®• ஆஙà¯à®•à®¿à®²à®®à¯à®¸à¯à®ªà®¾à®©à®¿à®·à¯ (à®à®°à¯‹à®ªà¯à®ªà®¾)கனடி" + + "ய பிரெஞà¯à®šà¯à®¸à¯à®µà®¿à®¸à¯ பிரஞà¯à®šà¯à®²à¯‹ சாகà¯à®¸à®©à¯à®ƒà®ªà¯à®²à¯†à®®à®¿à®·à¯à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯€à®¸à¯ (பிரேசிலà¯)போரà¯" + + "சà¯à®šà¯à®•à¯€à®¸à¯ (à®à®°à¯‹à®ªà¯à®ªà®¾)மோலà¯à®Ÿà®¾à®µà®¿à®¯à®©à¯à®šà¯†à®°à¯à®ªà¯‹-கà¯à®°à¯‹à®·à®¿à®¯à®©à¯à®•à®¾à®™à¯à®•à¯‹ சà¯à®µà®¾à®¹à®¿à®²à®¿à®Žà®³à®¿à®¤à®¾à®•à¯à®•à®ªà¯" + + "படà¯à®Ÿ சீனமà¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ சீனமà¯" + +var taLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0033, 0x004e, 0x0072, 0x0081, 0x009c, 0x00b7, + 0x00c9, 0x00e4, 0x00f9, 0x010b, 0x0129, 0x013e, 0x015f, 0x017d, + 0x0195, 0x01aa, 0x01c2, 0x01e3, 0x01fe, 0x0219, 0x0234, 0x024c, + 0x025e, 0x0279, 0x0285, 0x0291, 0x02b9, 0x02cb, 0x02dd, 0x02ef, + 0x0304, 0x0316, 0x0328, 0x0331, 0x034c, 0x0364, 0x0382, 0x039a, + 0x03b8, 0x03ca, 0x03e5, 0x03f4, 0x040f, 0x0427, 0x043f, 0x0457, + 0x0488, 0x0497, 0x04c2, 0x04dd, 0x04ef, 0x050a, 0x0522, 0x052e, + 0x0540, 0x054f, 0x056e, 0x0589, 0x05a4, 0x05c2, 0x05e0, 0x05f2, + // Entry 40 - 7F + 0x0616, 0x063a, 0x0658, 0x0667, 0x0683, 0x069e, 0x06a7, 0x06c8, + 0x06e6, 0x0701, 0x071f, 0x0734, 0x074f, 0x0761, 0x0773, 0x0791, + 0x07a0, 0x07bb, 0x07cd, 0x07e2, 0x07f7, 0x0806, 0x081e, 0x0836, + 0x0842, 0x085a, 0x0872, 0x0887, 0x08b1, 0x08c3, 0x08e4, 0x08fc, + 0x0908, 0x0929, 0x094b, 0x0966, 0x0978, 0x0996, 0x09a2, 0x09c3, + 0x09db, 0x09f9, 0x0a0e, 0x0a1d, 0x0a35, 0x0a4a, 0x0a59, 0x0a7e, + 0x0a90, 0x0aa2, 0x0ab1, 0x0af7, 0x0b31, 0x0b56, 0x0b65, 0x0b77, + 0x0b8f, 0x0ba1, 0x0bb0, 0x0bbf, 0x0bda, 0x0bef, 0x0bfb, 0x0c0d, + // Entry 80 - BF + 0x0c1c, 0x0c46, 0x0c5e, 0x0c76, 0x0c88, 0x0ca3, 0x0cb5, 0x0cdf, + 0x0d00, 0x0d1b, 0x0d2d, 0x0d49, 0x0d5b, 0x0d73, 0x0d8b, 0x0dac, + 0x0dc4, 0x0dd0, 0x0de2, 0x0e00, 0x0e1b, 0x0e2d, 0x0e4c, 0x0e6a, + 0x0e82, 0x0e9a, 0x0ea9, 0x0ec1, 0x0ed3, 0x0edf, 0x0efd, 0x0f1b, + 0x0f2d, 0x0f45, 0x0f63, 0x0f75, 0x0f84, 0x0f9f, 0x0fb4, 0x0fd2, + 0x0fe1, 0x0ff6, 0x1008, 0x1029, 0x103e, 0x1053, 0x1065, 0x1071, + 0x1086, 0x1098, 0x10aa, 0x10b9, 0x10c5, 0x10e0, 0x10ef, 0x1104, + 0x1110, 0x1132, 0x1150, 0x115f, 0x1168, 0x1186, 0x1186, 0x1195, + // Entry C0 - FF + 0x1195, 0x11b7, 0x11dc, 0x11f1, 0x1206, 0x1215, 0x1215, 0x1224, + 0x1224, 0x1239, 0x1239, 0x1239, 0x1242, 0x1242, 0x1260, 0x1260, + 0x126c, 0x127e, 0x1293, 0x1293, 0x129f, 0x129f, 0x129f, 0x129f, + 0x12ab, 0x12bd, 0x12bd, 0x12c9, 0x12c9, 0x12d5, 0x12fd, 0x1315, + 0x1327, 0x1333, 0x1333, 0x1333, 0x134b, 0x1375, 0x1375, 0x1387, + 0x1387, 0x1393, 0x1393, 0x13ab, 0x13c3, 0x13c3, 0x13d5, 0x13d5, + 0x13e1, 0x13f0, 0x13f0, 0x1402, 0x141a, 0x1426, 0x1438, 0x1444, + 0x1456, 0x1462, 0x148d, 0x149f, 0x14bd, 0x14cf, 0x14e1, 0x150c, + // Entry 100 - 13F + 0x1524, 0x1524, 0x1558, 0x1570, 0x157f, 0x1597, 0x15a3, 0x15bb, + 0x15cd, 0x15e5, 0x15f7, 0x1609, 0x161b, 0x1646, 0x1646, 0x1658, + 0x167a, 0x169c, 0x16ae, 0x16ae, 0x16bd, 0x16cf, 0x16cf, 0x1700, + 0x1715, 0x1727, 0x1752, 0x1752, 0x1767, 0x1767, 0x1779, 0x1794, + 0x1794, 0x17a3, 0x17a3, 0x17d1, 0x17f9, 0x17f9, 0x182d, 0x1864, + 0x1888, 0x188e, 0x18a0, 0x18a0, 0x18a9, 0x18b2, 0x18b2, 0x18be, + 0x18e2, 0x18e2, 0x1911, 0x193a, 0x193a, 0x194c, 0x1967, 0x1979, + 0x198b, 0x19b9, 0x19e3, 0x19e3, 0x19e3, 0x19ef, 0x1a07, 0x1a13, + // Entry 140 - 17F + 0x1a13, 0x1a2b, 0x1a47, 0x1a6b, 0x1a83, 0x1a95, 0x1ac6, 0x1ac6, + 0x1ad2, 0x1ae1, 0x1ae1, 0x1af0, 0x1b05, 0x1b05, 0x1b05, 0x1b1a, + 0x1b2f, 0x1b41, 0x1b6f, 0x1b97, 0x1b97, 0x1bb9, 0x1bce, 0x1be0, + 0x1bec, 0x1bfb, 0x1c07, 0x1c25, 0x1c25, 0x1c37, 0x1c4c, 0x1c73, + 0x1c73, 0x1c7f, 0x1c7f, 0x1c8b, 0x1ca3, 0x1cc2, 0x1cc2, 0x1cc2, + 0x1cc2, 0x1cdd, 0x1cfb, 0x1d26, 0x1d3b, 0x1d53, 0x1d6b, 0x1d90, + 0x1d90, 0x1d90, 0x1da8, 0x1dba, 0x1dcf, 0x1de4, 0x1de4, 0x1df9, + 0x1e0b, 0x1e1a, 0x1e29, 0x1e3b, 0x1e4a, 0x1e65, 0x1e65, 0x1e65, + // Entry 180 - 1BF + 0x1e65, 0x1e74, 0x1e74, 0x1e86, 0x1e92, 0x1eb1, 0x1eb1, 0x1ed0, + 0x1ee8, 0x1efa, 0x1f06, 0x1f15, 0x1f27, 0x1f27, 0x1f27, 0x1f3c, + 0x1f3c, 0x1f4b, 0x1f5d, 0x1f72, 0x1f90, 0x1fa2, 0x1fa2, 0x1fba, + 0x1fd2, 0x1fe4, 0x1ff0, 0x200b, 0x202d, 0x204f, 0x205b, 0x2073, + 0x2094, 0x20a3, 0x20b8, 0x20ca, 0x20dc, 0x20dc, 0x20f4, 0x2110, + 0x2122, 0x2140, 0x2158, 0x2158, 0x2158, 0x216d, 0x2188, 0x2188, + 0x21a9, 0x21b5, 0x21d1, 0x21e3, 0x21f5, 0x220d, 0x220d, 0x2225, + 0x2225, 0x2231, 0x2250, 0x2250, 0x2262, 0x2281, 0x2293, 0x22c1, + // Entry 1C0 - 1FF + 0x22df, 0x22fd, 0x230f, 0x2321, 0x2330, 0x2361, 0x237f, 0x2394, + 0x23af, 0x23d0, 0x23e5, 0x23e5, 0x2422, 0x2422, 0x244a, 0x244a, + 0x2468, 0x2468, 0x2468, 0x2489, 0x2489, 0x24ba, 0x24c6, 0x24c6, + 0x24e1, 0x24f3, 0x2511, 0x2511, 0x2511, 0x2523, 0x2535, 0x2535, + 0x2535, 0x2535, 0x2553, 0x255f, 0x2577, 0x2589, 0x25b7, 0x25cc, + 0x25de, 0x25f6, 0x2617, 0x2617, 0x2626, 0x2641, 0x2659, 0x2659, + 0x2684, 0x2684, 0x2690, 0x2690, 0x26a8, 0x26d9, 0x26f5, 0x26f5, + 0x270a, 0x2716, 0x2716, 0x2728, 0x2728, 0x2728, 0x2744, 0x275a, + // Entry 200 - 23F + 0x2773, 0x2795, 0x27ad, 0x27c8, 0x27f0, 0x2802, 0x2802, 0x2802, + 0x2814, 0x2820, 0x283b, 0x2856, 0x288a, 0x28a2, 0x28a2, 0x28a2, + 0x28b4, 0x28c0, 0x28d2, 0x28e4, 0x28f6, 0x2902, 0x2914, 0x2914, + 0x2932, 0x2950, 0x2950, 0x2968, 0x298a, 0x29a9, 0x29a9, 0x29a9, + 0x29a9, 0x29ca, 0x29ca, 0x29e2, 0x29f4, 0x2a06, 0x2a21, 0x2a59, + 0x2a74, 0x2a8f, 0x2aaa, 0x2ab6, 0x2abc, 0x2abc, 0x2abc, 0x2abc, + 0x2abc, 0x2ace, 0x2ace, 0x2ae0, 0x2ae0, 0x2af2, 0x2afe, 0x2b0a, + 0x2b1f, 0x2b1f, 0x2b34, 0x2b34, 0x2b40, 0x2b4c, 0x2b5e, 0x2b5e, + // Entry 240 - 27F + 0x2b5e, 0x2b5e, 0x2b7c, 0x2b94, 0x2bc4, 0x2bc4, 0x2bd3, 0x2c26, + 0x2c32, 0x2c79, 0x2c85, 0x2cba, 0x2cba, 0x2ce8, 0x2d17, 0x2d4e, + 0x2d76, 0x2dad, 0x2dde, 0x2dde, 0x2e0e, 0x2e0e, 0x2e0e, 0x2e36, + 0x2e5e, 0x2e7a, 0x2e95, 0x2ed4, 0x2f10, 0x2f31, 0x2f5f, 0x2f8a, + 0x2fc4, 0x2fef, +} // Size: 1244 bytes + +var teLangStr string = "" + // Size: 11712 bytes + "అఫారà±à°…à°¬à±à°–ాజియనà±à°…వేసà±à°Ÿà°¾à°¨à±à°†à°«à±à°°à°¿à°•à°¾à°¨à±à°¸à±à°…కానà±à°…à°®à±à°¹à°¾à°°à°¿à°•à±à°…రగోనిసà±à°…రబికà±à°…à°¸à±à°¸à°¾à°®à±€à°…à°µ" + + "ారికà±à°à°®à°¾à°°à°¾à°…జరà±à°¬à±ˆà°œà°¾à°¨à°¿à°¬à°·à±à°•à°¿à°°à±à°¬à±†à°²à°°à±à°¶à°¿à°¯à°¨à±à°¬à°²à±à°—ేరియనà±à°¬à°¿à°¸à±à°²à°¾à°®à°¾à°¬à°‚బారాబెంగాలీటి" + + "బెటనà±à°¬à±à°°à±†à°Ÿà°¨à±à°¬à±‹à°¸à±à°¨à°¿à°¯à°¨à±à°•à±†à°Ÿà°²à°¾à°¨à±à°šà±†à°šà±†à°¨à±à°šà°®à°°à±à°°à±‹à°•à±‹à°°à±à°¸à°¿à°•à°¨à±à°•à±à°°à°¿à°šà±†à°•à±à°šà°°à±à°š à°¸à±à°²à°¾à°µà°¿à°•à±" + + "à°šà±à°µà°¾à°·à±à°µà±†à°²à±à°·à±à°¡à±‡à°¨à°¿à°·à±à°œà°°à±à°®à°¨à±à°¦à°¿à°µà±‡à°¹à°¿à°œà±Šà°¨à±à°–ాఈవీగà±à°°à±€à°•à±à°†à°‚à°—à±à°²à°‚à°Žà°¸à±à°ªà°°à±†à°¨à±à°Ÿà±Šà°¸à±à°ªà°¾à°¨à°¿à°·à±à°ˆ" + + "à°¸à±à°Ÿà±Šà°¨à°¿à°¯à°¨à±à°¬à°¾à°¸à±à°•à±à°ªà°°à±à°·à°¿à°¯à°¨à±à°«à±à°¯à±à°²à°«à°¿à°¨à±à°¨à°¿à°·à±à°«à°¿à°œà°¿à°¯à°¨à±à°«à°¾à°°à±‹à°¯à±€à°œà±à°«à±à°°à±†à°‚à°šà±à°ªà°¶à±à°šà°¿à°® à°«à±à°°à°¿à°¸" + + "ియనà±à°à°°à°¿à°·à±à°¸à±à°•à°¾à°Ÿà°¿à°·à± గేలికà±à°—ెలిషియనà±à°—à±à°°à°¾à°¨à°¿à°—à±à°œà°°à°¾à°¤à°¿à°®à°‚à°•à°¸à±à°¹à±Œà°¸à°¾à°¹à±€à°¬à±à°°à±à°¹à°¿à°‚దీహిరి" + + " మోటà±à°•à±à°°à±Šà°¯à±†à°·à°¿à°¯à°¨à±à°¹à±ˆà°¤à°¿à°¯à°¨à±à°¹à°¨à±à°—ేరియనà±à°†à°°à±à°®à±‡à°¨à°¿à°¯à°¨à±à°¹à°¿à°°à±‡à°°à±‹à°‡à°‚à°Ÿà°°à±à°²à°¿à°‚à°—à±à°µà°¾à°‡à°‚డోనేషియనà±" + + "ఇంటరౠలింగà±à°‡à°—à±à°¬à±‹à°¶à°¿à°·à±à°µà°¨à± ఈఇనూపైà°à°•à±à°ˆà°¡à±Œà°à°¸à±à°²à°¾à°‚à°¡à°¿à°•à±à°‡à°Ÿà°¾à°²à°¿à°¯à°¨à±à°‡à°¨à±à°•à±à°Ÿà°¿à°Ÿà±à°Ÿà±à°œà°¾à°ªà°¨à±€" + + "à°¸à±à°œà°¾à°µà°¨à±€à°¸à±à°œà°¾à°°à±à°œà°¿à°¯à°¨à±à°•à±‹à°‚గోకికà±à°¯à±à°•à±à°µà°¾à°¨à±à°¯à°¾à°®à°•à°œà°–à±à°•à°²à°¾à°²à±à°²à°¿à°¸à±‚à°Ÿà±à°–à±à°®à±‡à°°à±à°•à°¨à±à°¨à°¡à°•à±Šà°°à°¿à°¯à°¨" + + "à±à°•à°¾à°¨à±à°°à°¿à°•à°¾à°¶à±à°®à±€à°°à°¿à°•à±à°°à±à°¦à°¿à°·à±à°•à±‹à°®à°¿à°•à±‹à°°à±à°¨à°¿à°·à±à°•à°¿à°°à±à°—à°¿à°œà±à°²à°¾à°Ÿà°¿à°¨à±à°²à±à°•à±à°¸à°‚బరà±à°—à°¿à°·à±à°—ాండాలిమ" + + "à±à°¬à°°à±à°—à°¿à°·à±à°²à°¿à°‚గాలలావోలిథà±à°¯à±‡à°¨à°¿à°¯à°¨à±à°²à±‚à°¬-కటాంగలాటà±à°µà°¿à°¯à°¨à±à°®à°¾à°²à°¾à°—సిమారà±à°·à°²à±€à°¸à±à°®à°¯à±‹à°°à°¿à°®à°¸" + + "డోనియనà±à°®à°²à°¯à°¾à°³à°‚మంగోలియనà±à°®à°°à°¾à° à±€à°®à°²à±‡à°¯à±à°®à°¾à°²à±à°Ÿà±€à°¸à±à°¬à°°à±à°®à±€à°¸à±à°¨à±Œà°°à±à°‰à°¤à±à°¤à°° దెబెలెనేపాలిద" + + "ోంగాడచà±à°¨à°¾à°°à±à°µà°¿à°œà°¿à°¯à°¾à°¨à± à°¨à±à°¯à±‹à°°à±à°¸à±à°•à±à°¨à°¾à°°à±à°µà±€à°œà°¿à°¯à°¨à± బొకà±à°®à°¾à°²à±à°¦à°•à±à°·à°¿à°£ దెబెలెనవాహోనà±" + + "యానà±à°œà°¾à°†à°•à±à°¸à°¿à°Ÿà°¨à±à°šà±‡à°µà°¾à°’రోమోఒరియాఒసేటికà±à°ªà°‚జాబీపాలీపోలిషà±à°ªà°¾à°·à±à°Ÿà±‹à°ªà±‹à°°à±à°šà±à°—ీసà±à°•à±†à°·" + + "à±à°¯à°¾à°°à±‹à°®à°¨à±à°·à±à°°à°‚డిరోమానియనà±à°°à°·à±à°¯à°¨à±à°•à°¿à°¨à±à°¯à°°à±à°µà°¾à°‚డాసంసà±à°•à±ƒà°¤à°‚సారà±à°¡à±€à°¨à°¿à°¯à°¨à±à°¸à°¿à°‚ధీఉతà±à°¤à°°" + + " సామిసాంగోసింహళంసà±à°²à±‹à°µà°¾à°•à±à°¸à±à°²à±‹à°µà±‡à°¨à°¿à°¯à°¾à°¨à±à°¸à°®à±‹à°µà°¨à±à°·à±‹à°¨à°¸à±‹à°®à°¾à°²à°¿à°…à°²à±à°¬à±‡à°¨à°¿à°¯à°¨à±à°¸à±†à°°à±à°¬à°¿à°¯à°¨à±à°¸à±" + + "వాతిదకà±à°·à°¿à°£ సోతోసà±à°¡à°¾à°¨à±€à°¸à±à°¸à±à°µà±€à°¡à°¿à°·à±à°¸à±à°µà°¾à°¹à°¿à°²à°¿à°¤à°®à°¿à°³à°®à±à°¤à±†à°²à±à°—à±à°¤à°œà°¿à°•à±à°¥à°¾à°¯à±à°¤à°¿à°—à±à°°à°¿à°¨à±à°¯à°¾" + + "à°¤à±à°°à±à°•à°®à±†à°¨à±à°¸à±†à°Ÿà°¸à±à°µà°¾à°¨à°¾à°Ÿà°¾à°‚గానà±à°Ÿà°°à±à°•à°¿à°·à±à°¸à±‹à°‚గాటాటరà±à°¤à°¹à°¿à°¤à°¿à°¯à°¨à±à°‰à°¯à±\u200cఘరà±à°‰à°•à±à°°à±‡à°¨à°¿à°¯" + + "à°¨à±à°‰à°°à±à°¦à±‚ఉజà±à°¬à±†à°•à±à°µà±†à°‚డావియతà±à°¨à°¾à°®à±€à°¸à±à°µà±‹à°²à°¾à°ªà±à°•à±à°µà°¾à°²à±‚à°¨à±à°µà±Šà°²à°¾à°«à±à°·à±‹à°¸à°¾à°‡à°¡à±à°¡à°¿à°·à±à°¯à±‹à°°à±à°¬à°¾à°œà±à°µ" + + "ానà±à°šà±ˆà°¨à±€à°¸à±à°œà±‚లూఆఖినీసà±à°…కోలిఅడాంగà±à°®à±‡à°…డిగాబà±à°œà±‡à°…à°«à±à°°à°¿à°¹à°¿à°²à°¿à°…గేమà±à°à°¨à±à°…à°•à±à°•à°¾à°¡à°¿à°¯à°¾à°¨à±" + + "అలియà±à°Ÿà±à°¦à°•à±à°·à°¿à°£ ఆలà±à°Ÿà±ˆà°ªà±à°°à°¾à°šà±€à°¨ ఆగà±à°²à°‚ఆంగికఅరామేకà±à°…రౌకేనియనà±à°…రాపాహోఅరావాకà±à°…à°¸" + + "à±à°…à°¸à±à°Ÿà±à°°à°¿à°¯à°¾à°¨à±à°…వధిబాలà±à°šà°¿à°¬à°¾à°²à°¿à°¨à±€à°¸à±à°¬à°¸à°¾à°¬à±‡à°œà°¾à°¬à±†à°‚బాబీనాపశà±à°šà°¿à°® బలూచీభోజౠపూరిబిక" + + "ోలà±à°¬à°¿à°¨à°¿à°¸à°¿à°•à± సికాబà±à°°à°¾à°œà±à°¬à±‹à°¡à±‹à°¬à±à°°à°¿à°¯à°Ÿà±à°¬à±à°¯à±à°—ినిసà±à°¬à±à°²à°¿à°¨à±à°•à±‡à°¡à±à°¡à±‹à°•à±‡à°°à°¿à°¬à±à°…à°Ÿà±à°¸à°¾à°®à±à°¸à±‡" + + "à°¬à±à°†à°¨à±‹à°›à°¿à°—ాచిబà±à°šà°¾à°šà°¾à°—టైచూకిసà±à°®à°¾à°°à°¿à°šà°¿à°¨à±‚కౠజారà±à°—à°¨à±à°šà±Šà°šà±à°•à°¤à°¾à°µà±à°šà°¿à°ªà±†à°µà±à°¯à°¾à°¨à±à°šà±†à°°à±‹à°•à±€à°š" + + "ేయేనà±à°¸à±†à°‚à°Ÿà±à°°à°²à± à°•à±à°°à±à°¦à°¿à°·à±à°•à±‹à°ªà±à°Ÿà°¿à°•à±à°•à±à°°à°¿à°®à°¿à°¯à°¨à± à°Ÿà°°à±à°•à°¿à°·à±à°•à°·à±à°¬à°¿à°¯à°¨à±à°¡à°•à±‹à°Ÿà°¾à°¡à°¾à°°à±à°—à±à°µà°¾à°Ÿà±ˆ" + + "టాడెలావేరà±à°¸à±à°²à±‡à°µà±à°¡à±‹à°—à±à°°à°¿à°¬à±à°¡à°¿à°‚కాజారà±à°®à°¾à°¡à±‹à°—à±à°°à°¿à°²à±‹à°µà°°à± సోరà±à°¬à°¿à°¯à°¨à±à°¦à±à°†à°²à°¾à°®à°§à±à°¯à°® à°¡à°šà±" + + "జోలా-ఫోనయిడà±à°¯à±à°²à°¾à°‡à°‚à°¬à±à°Žà°«à°¿à°•à±à°ªà±à°°à°¾à°šà±€à°¨ ఇజిపà±à°·à°¿à°¯à°¨à±à°à°•à°¾à°œà°•à±à°Žà°²à°¾à°®à±ˆà°Ÿà±à°®à°§à±à°¯à°® ఆంగà±à°²à°‚à°Žà°µ" + + "ోండొఫాంగà±à°«à°¿à°²à°¿à°ªà°¿à°¨à±‹à°«à°¾à°¨à±à°®à°§à±à°¯à°® à°ªà±à°°à±†à°‚à°šà±à°ªà±à°°à°¾à°šà±€à°¨ à°ªà±à°°à±†à°‚à°šà±à°‰à°¤à±à°¤à°° à°«à±à°°à°¿à°¸à°¿à°¯à°¨à±à°¤à±‚à°°à±à°ªà±" + + " à°«à±à°°à°¿à°¸à°¿à°¯à°¨à±à°«à±à°°à°¿à°¯à±à°²à°¿à°¯à°¨à±à°—ాగాగౌజà±à°—ాయోగà±à°¬à°¾à°¯à°¾à°œà±€à°œà±à°—à°¿à°²à±à°¬à°°à±à°Ÿà±€à°¸à±à°®à°§à±à°¯à°® హై జరà±à°®à°¨à±à°ªà±à°°" + + "ాచీన హై జరà±à°®à°¨à±à°—ోండిగోరోంటలాగోథికà±à°—à±à°°à±‡à°¬à±‹à°ªà±à°°à°¾à°šà±€à°¨ à°—à±à°°à±€à°•à±à°¸à±à°µà°¿à°¸à± జరà±à°®à°¨à±à°—à±à°¸à±" + + "సీగà±à°µà°¿à°šà°¿à°¨à±à°¹à±ˆà°¡à°¾à°¹à°µà°¾à°¯à°¿à°¯à°¨à±à°¹à°¿à°²à°¿ గేయినోనà±à°¹à°¿à°Ÿà±à°Ÿà°¿à°Ÿà±‡à°®à±‹à°‚à°—à±à°…à°ªà±à°ªà°°à± సోరà±à°¬à°¿à°¯à°¨à±à°¹à±à°ªà°¾à°à°¬" + + "ానà±à°à°¯à±‹à°•à±‹à°‡à°‚à°—à±à°·à±à°²à±‹à°œà±à°¬à°¾à°¨à±à°—ోంబామకొమà±à°œà±à°¯à±à°¡à°¿à°¯à±‹-పరà±à°·à°¿à°¯à°¨à±à°œà±à°¯à±à°¡à°¿à°¯à±‹-అరబికà±à°•à°¾à°°à°¾-à°•" + + "à°²à±à°ªà°¾à°•à±à°•à°¾à°¬à°¿à°²à±à°•à°¾à°šà°¿à°¨à±à°œà±à°¯à±‚కంబాకావికబారà±à°¡à°¿à°¯à°¨à±à°Ÿà±à°¯à°¾à°ªà±à°®à°•à±Šà°‚డేకాబà±à°µà±‡à°°à±à°¦à°¿à°¯à°¨à±à°•à±‹à°°à±‹à°–" + + "ాసిఖటోనీసà±à°•à±Šà°¯à°°à°¾ చీనà±à°¨à±€à°•à°²à±†à°‚జినà±à°•à°¿à°®à±à°¬à±à°‚à°¡à±à°•à±‹à°®à°¿-పరà±à°®à°¾à°•à±à°•à±Šà°‚కణికోసà±à°°à±‡à°¯à°¨à±à°ªà±†à°²à±" + + "లేకరచే-బలà±à°•à°¾à°°à±à°•à°°à±‡à°²à°¿à°¯à°¨à±à°•à±‚à°°à±à°–à±à°¶à°‚బాలాబాఫియకà±à°®à±à°¯à°¿à°•à±à°•à±à°Ÿà±‡à°¨à±ˆà°²à°¾à°¡à°¿à°¨à±‹à°²à°¾à°‚గీలాహండా" + + "లాంబాలేజà±à°˜à°¿à°¯à°¨à±à°²à°•à±Šà°Ÿà°¾à°®à±Šà°‚గోలోజిఉతà±à°¤à°° లూరీలà±à°¬à°¾-à°²à±à°²à±à°µà°²à±à°‡à°¸à±‡à°¨à±‹à°²à±à°‚డాలà±à°µà±‹à°²à±à°·à±ˆà°²à±" + + "యియమాదà±à°°à±€à°¸à±à°®à°—ాహిమైథిలిమకాసారà±à°®à°‚డింగోమాసాయిమొకà±à°·à°¾à°®à°‚డారà±à°®à±†à°‚డేమెరà±à°®à±Šà°°à°¿à°¸à±à°¯" + + "ేనà±à°®à°§à±à°¯à°® à°à°°à°¿à°·à±à°®à°•à±à°µà°¾-మిటà±à°Ÿà±‹à°®à±†à°Ÿà°¾à°®à°¿à°•à°®à°¾à°•à±à°®à°¿à°¨à°¾à°‚à°—à±à°•à°¾à°¬à±‹à°®à°‚à°šà±à°®à°£à°¿à°ªà±‚రిమోహà±à°•à±à°®à±‹à°¸à±à°¸" + + "à°¿à°®à±à°¦à°¾à°‚à°—à±à°¬à°¹à±à°³ భాషలà±à°•à±à°°à±€à°•à±à°®à°¿à°°à°¾à°‚à°¡à°¿à°¸à±à°®à°¾à°°à±à°µà°¾à°¡à°¿à°Žà°°à±à°œà°¿à°¯à°¾à°®à°¾à°¸à°¨à±\u200cదెరానినియాప" + + "ోలిటనà±à°¨à°®à°²à±‹ జరà±à°®à°¨à±à°¨à±†à°µà°¾à°°à°¿à°¨à°¿à°¯à°¾à°¸à±à°¨à°¿à°¯à±‚ఇయానà±à°•à±à°µà°¾à°¸à°¿à°¯à±†à°¨à±‹à°—ైపà±à°°à°¾à°šà°¿à°¨ నోరà±à°¸à±à°¨à±à°•à±‹à°‰à°¤" + + "à±à°¤à°° సోతోనà±à°¯à±à°°à±à°¸à°¾à°‚à°ªà±à°°à°¦à°¾à°¯ à°¨à±à°¯à±à°†à°°à°¿à°¨à±à°¯à°‚వేజినà±à°¯à°¾à°¨à±à°•à±‹à°²à±†à°¨à°¿à°“రోజీమాఒసాజà±à°’à°Ÿà±à°Ÿà±‹à°®à°¨" + + "à± à°Ÿà°°à±à°•à°¿à°·à±à°ªà°‚à°—à°¾ సినానà±à°ªà°¹à±à°²à°¾à°µà°¿à°ªà°‚పగà±à°¨à°ªà°ªà°¿à°¯à°®à±‡à°‚టోపాలà±à°†à°¨à±à°ªà±à°°à°¾à°šà±€à°¨ పరà±à°·à°¿à°¯à°¨à±à°«à±‹à°¨à°¿à°•" + + "à°¨à±à°ªà±‹à°¹à±à°¨à±à°ªà±†à°¯à°¨à±à°ªà±à°°à°¾à°šà±€à°¨ à°ªà±à°°à±‹à°µà±†à°‚సాలà±à°•à°¿à°šà±‡à°°à°¾à°œà°¸à±à°¤à°¾à°¨à°¿à°°à°¾à°ªà°¨à±à°¯à±à°¯à°¿à°°à°¾à°°à±‹à°Ÿà±Šà°‚గానà±à°°à±‹à°‚బో" + + "రోమానీఆరోమేనియనà±à°°à±à°µà°¾à°¸à°‚డావియాకà±à°Ÿà±à°¸à°®à°¾à°°à°¿à°Ÿà°¨à± అరమేకà±à°¸à°‚à°¬à±à°°à±à°¸à°¸à°•à±à°¸à°‚టాలిసాంగà±à°¸à°¿" + + "సిలియనà±à°¸à±à°•à°¾à°Ÿà±à°¸à±à°¦à°•à±à°·à°¿à°£ à°•à±à°°à±à°¦à°¿à°·à±à°¸à±†à°¨à°¾à°¸à±‡à°²à±à°•à°ªà±à°•à±‹à°¯à±‹à°°à°¾à°¬à±‹à°°à±‹ సెనà±à°¨à±€à°ªà±à°°à°¾à°šà±€à°¨ à°à°°à°¿à°·" + + "à±à°Ÿà°¾à°šà±†à°²à±\u200cహిటà±à°·à°¾à°¨à±à°¸à°¿à°¡à°¾à°®à±‹à°¦à°•à±à°·à°¿à°£ సామిలà±à°²à±‡ సామిఇనారి సామిసà±à°•à±‹à°²à±à°Ÿà± సామి" + + "సోనింకిసోగà±à°¡à°¿à°¯à°¨à±à°¸à±à°°à°¾à°¨à°¨à± టోనగోసెరేరà±à°¸à±à°•à±à°®à°¾à°¸à±à°¸à±à°¸à±à°®à±‡à°°à°¿à°¯à°¾à°¨à±à°•à±Šà°®à±Šà°°à°¿à°¯à°¨à±à°¸à°¾à°‚à°ªà±à°°" + + "దాయ సిరియాకà±à°¸à°¿à°°à°¿à°¯à°¾à°•à±à°Ÿà°¿à°‚నేటెసోటెరెనోటేటంటీగà±à°°à±†à°Ÿà°¿à°µà±à°Ÿà±‹à°•à±†à°²à°¾à°µà±à°•à±à°²à°¿à°‚గానà±à°²à°¿à°‚à°—" + + "à°¿à°Ÿà±à°Ÿà°¾à°®à°·à±‡à°•à±à°¨à±à°¯à°¾à°¸à°¾ టోనà±à°—ాటోకౠపిసినà±à°¶à°¿à°‚షీయనà±à°Ÿà±à°‚à°¬à±à°•à°¾à°Ÿà±à°µà°¾à°²à±à°Ÿà°¸à°¾à°µà°¾à°–à±à°Ÿà±à°µà°¿à°¨à°¿à°¯à°¨" + + "à±à°¸à±†à°‚à°Ÿà±à°°à°²à± à°…à°Ÿà±à°²à°¾à°¸à± టామాజైటà±à°‰à°¡à±à°®à±à°°à±à°Ÿà±à°‰à°—ారిటికà±à°‰à°®à±à°¬à±à°‚à°¡à±à°°à±‚à°Ÿà±à°µà°¾à°¯à°¿à°µà±‹à°Ÿà°¿à°•à±à°µà±à°‚à°œ" + + "ొవాలామోవారేవాషోవారà±à°²à°ªà°¿à°°à°¿à°•à°²à±à°®à°¿à°•à±à°¸à±Šà°—ాయాఒయాపిసà±à°•à°¾à°‚టనీసà±à°œà°ªà±‹à°Ÿà±†à°•à±à°¬à±à°²à°¿à°¸à°¿à°‚బలà±à°¸" + + "à±à°œà±†à°¨à°¾à°—ాపà±à°°à°¾à°®à°¾à°£à°¿à°• మొరొకనౠతమజియటà±à°œà±à°¨à°¿à°²à°¿à°ªà°¿ లేదà±à°œà°¾à°œà°¾à°†à°§à±à°¨à°¿à°• à°ªà±à°°à°¾à°®à°¾à°£à°¿à°• అరబి" + + "à°•à±à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¨à± జరà±à°®à°¨à±à°¸à±à°µà°¿à°¸à± హై జరà±à°®à°¨à±à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¨à± ఇంగà±à°²à±€à°·à±à°•à±†à°¨à°¡à°¿à°¯à°¨à± ఇంగ" + + "à±à°²à±€à°·à±à°¬à±à°°à°¿à°Ÿà°¿à°·à± ఇంగà±à°²à±€à°·à±à°…మెరికనౠఇంగà±à°²à±€à°·à±à°²à°¾à°Ÿà°¿à°¨à± అమెరికెనౠసà±à°ªà°¾à°¨à°¿à°·à±à°¯à±‚రోపి" + + "యనౠసà±à°ªà°¾à°¨à°¿à°·à±à°®à±†à°•à±à°¸à°¿à°•à°¨à± à°¸à±à°ªà°¾à°¨à°¿à°·à±à°•à±†à°¨à°¡à°¿à°¯à±†à°¨à± à°«à±à°°à±†à°‚à°šà±à°¸à±à°µà°¿à°¸à± à°«à±à°°à±†à°‚à°šà±à°²à±‹ సాకà±à°¸à°¨" + + "à±à°«à±à°²à±†à°®à°¿à°·à±à°¬à±à°°à±†à°œà±€à°²à°¿à°¯à°¨à± పోరà±à°šà±à°—ీసà±à°¯à±‚రోపియనౠపోరà±à°šà±à°—ీసà±à°®à±Šà°²à±à°¡à°¾à°µà°¿à°¯à°¨à±à°¸à±‡à°°à±à°¬à±‹-à°•" + + "à±à°°à±Šà°¯à±‡à°·à°¿à°¯à°¨à±à°•à°¾à°‚గో à°¸à±à°µà°¾à°¹à°¿à°²à°¿à°¸à°°à°³à±€à°•à±ƒà°¤ చైనీసà±à°¸à°¾à°‚à°ªà±à°°à°¦à°¾à°¯à°• చైనీసà±" + +var teLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x002d, 0x0048, 0x0069, 0x0078, 0x0093, 0x00ab, + 0x00bd, 0x00d2, 0x00e7, 0x00f6, 0x0114, 0x0129, 0x0147, 0x0165, + 0x017d, 0x018f, 0x01a4, 0x01b9, 0x01ce, 0x01e9, 0x01fe, 0x0210, + 0x0222, 0x023d, 0x0249, 0x0255, 0x027a, 0x028c, 0x029e, 0x02b0, + 0x02c2, 0x02d4, 0x02e6, 0x02ef, 0x0301, 0x0313, 0x0331, 0x0349, + 0x0367, 0x0379, 0x0391, 0x03a0, 0x03b8, 0x03cd, 0x03e5, 0x03fa, + 0x0428, 0x0437, 0x0462, 0x047d, 0x048f, 0x04a4, 0x04b3, 0x04bf, + 0x04d1, 0x04e0, 0x04f9, 0x051a, 0x052f, 0x054d, 0x056b, 0x057d, + // Entry 40 - 7F + 0x05a1, 0x05c2, 0x05e1, 0x05f0, 0x0609, 0x0621, 0x062a, 0x0648, + 0x0660, 0x0681, 0x0696, 0x06ab, 0x06c6, 0x06d5, 0x06e7, 0x0702, + 0x070e, 0x072f, 0x0741, 0x0750, 0x0765, 0x0777, 0x078f, 0x07a7, + 0x07b3, 0x07cb, 0x07e3, 0x07f5, 0x081c, 0x082b, 0x084c, 0x085e, + 0x086a, 0x088b, 0x08a4, 0x08bf, 0x08d4, 0x08ef, 0x08fe, 0x0919, + 0x092b, 0x0946, 0x0955, 0x0964, 0x097c, 0x0991, 0x099d, 0x09bf, + 0x09d1, 0x09e0, 0x09e9, 0x0a2c, 0x0a66, 0x0a8b, 0x0a9a, 0x0ab2, + 0x0aca, 0x0ad6, 0x0ae5, 0x0af4, 0x0b09, 0x0b1b, 0x0b27, 0x0b39, + // Entry 80 - BF + 0x0b4b, 0x0b69, 0x0b7b, 0x0b90, 0x0b9c, 0x0bb7, 0x0bc9, 0x0bed, + 0x0c05, 0x0c26, 0x0c35, 0x0c51, 0x0c60, 0x0c72, 0x0c8a, 0x0cae, + 0x0cc0, 0x0cc9, 0x0cdb, 0x0cf9, 0x0d14, 0x0d26, 0x0d45, 0x0d5d, + 0x0d75, 0x0d8d, 0x0d9f, 0x0db1, 0x0dc0, 0x0dcc, 0x0dea, 0x0e05, + 0x0e20, 0x0e35, 0x0e4a, 0x0e59, 0x0e68, 0x0e80, 0x0e95, 0x0eb3, + 0x0ec2, 0x0ed7, 0x0ee6, 0x0f07, 0x0f1f, 0x0f31, 0x0f43, 0x0f4f, + 0x0f64, 0x0f76, 0x0f88, 0x0f9a, 0x0fa6, 0x0fbb, 0x0fca, 0x0fe2, + 0x0ffd, 0x0ffd, 0x1018, 0x1027, 0x1030, 0x1051, 0x1051, 0x1066, + // Entry C0 - FF + 0x1066, 0x1088, 0x10ad, 0x10bc, 0x10d1, 0x10ef, 0x10ef, 0x1104, + 0x1104, 0x1119, 0x1119, 0x1119, 0x1122, 0x1122, 0x1143, 0x1143, + 0x114f, 0x1161, 0x1179, 0x1179, 0x1182, 0x1182, 0x1182, 0x1182, + 0x118e, 0x119d, 0x119d, 0x11a9, 0x11a9, 0x11a9, 0x11cb, 0x11e4, + 0x11f6, 0x1202, 0x1202, 0x1202, 0x121b, 0x121b, 0x121b, 0x122d, + 0x122d, 0x1239, 0x1239, 0x124e, 0x126c, 0x126c, 0x127e, 0x127e, + 0x1290, 0x12a2, 0x12a2, 0x12b7, 0x12cc, 0x12d8, 0x12ea, 0x12f9, + 0x130b, 0x1317, 0x133f, 0x135a, 0x1378, 0x138a, 0x139c, 0x13cd, + // Entry 100 - 13F + 0x13e5, 0x13e5, 0x1416, 0x142e, 0x143d, 0x1455, 0x1461, 0x1479, + 0x148b, 0x14a3, 0x14b2, 0x14c4, 0x14d6, 0x1501, 0x1501, 0x1510, + 0x1529, 0x1545, 0x1557, 0x1557, 0x1563, 0x1572, 0x1572, 0x15a6, + 0x15b8, 0x15cd, 0x15ef, 0x15ef, 0x1601, 0x1601, 0x1610, 0x1628, + 0x1628, 0x1634, 0x1634, 0x1659, 0x1684, 0x1684, 0x16af, 0x16dd, + 0x16fe, 0x1704, 0x1716, 0x1716, 0x1722, 0x1734, 0x1734, 0x1740, + 0x1761, 0x1761, 0x178a, 0x17b9, 0x17b9, 0x17c8, 0x17e0, 0x17f2, + 0x1804, 0x182c, 0x1851, 0x1851, 0x1851, 0x1863, 0x187b, 0x1887, + // Entry 140 - 17F + 0x1887, 0x189f, 0x189f, 0x18c4, 0x18dc, 0x18eb, 0x1919, 0x1919, + 0x1925, 0x1934, 0x1934, 0x1943, 0x1955, 0x1955, 0x1955, 0x196d, + 0x197c, 0x198b, 0x19bc, 0x19e7, 0x19e7, 0x1a09, 0x1a1b, 0x1a2d, + 0x1a39, 0x1a45, 0x1a51, 0x1a6f, 0x1a6f, 0x1a81, 0x1a93, 0x1aba, + 0x1aba, 0x1ac6, 0x1ac6, 0x1ad2, 0x1ae7, 0x1b09, 0x1b09, 0x1b09, + 0x1b09, 0x1b21, 0x1b3c, 0x1b5e, 0x1b70, 0x1b8b, 0x1b9d, 0x1bbf, + 0x1bbf, 0x1bbf, 0x1bd7, 0x1be9, 0x1bfb, 0x1c0a, 0x1c0a, 0x1c22, + 0x1c34, 0x1c46, 0x1c55, 0x1c67, 0x1c76, 0x1c91, 0x1c91, 0x1c91, + // Entry 180 - 1BF + 0x1c91, 0x1ca0, 0x1ca0, 0x1caf, 0x1cbb, 0x1cd7, 0x1cd7, 0x1cf3, + 0x1d08, 0x1d17, 0x1d23, 0x1d2f, 0x1d3e, 0x1d3e, 0x1d3e, 0x1d56, + 0x1d56, 0x1d65, 0x1d77, 0x1d8c, 0x1da1, 0x1db3, 0x1db3, 0x1dc5, + 0x1dd7, 0x1de6, 0x1df2, 0x1e10, 0x1e2f, 0x1e51, 0x1e5d, 0x1e72, + 0x1e93, 0x1e9f, 0x1eb4, 0x1ec6, 0x1ed8, 0x1ed8, 0x1eed, 0x1f09, + 0x1f1b, 0x1f36, 0x1f4e, 0x1f4e, 0x1f4e, 0x1f63, 0x1f87, 0x1f87, + 0x1fa8, 0x1fae, 0x1fc7, 0x1fd9, 0x1feb, 0x2006, 0x2006, 0x201e, + 0x201e, 0x202a, 0x2052, 0x2052, 0x205e, 0x207a, 0x208c, 0x20bd, + // Entry 1C0 - 1FF + 0x20d5, 0x20f3, 0x2102, 0x210e, 0x211d, 0x214b, 0x216a, 0x217f, + 0x2191, 0x21ac, 0x21c1, 0x21c1, 0x21c1, 0x21c1, 0x21ef, 0x21ef, + 0x2204, 0x2204, 0x2204, 0x2225, 0x2225, 0x225c, 0x2268, 0x2268, + 0x2283, 0x229e, 0x22bf, 0x22bf, 0x22bf, 0x22ce, 0x22e0, 0x22e0, + 0x22e0, 0x22e0, 0x22fe, 0x230a, 0x231c, 0x232e, 0x2359, 0x236b, + 0x2377, 0x2389, 0x2389, 0x2389, 0x2398, 0x23b3, 0x23cb, 0x23cb, + 0x23f6, 0x23f6, 0x2402, 0x2402, 0x2417, 0x2448, 0x246d, 0x246d, + 0x248e, 0x249a, 0x249a, 0x24ac, 0x24ac, 0x24ac, 0x24cb, 0x24e4, + // Entry 200 - 23F + 0x2500, 0x2525, 0x253a, 0x2555, 0x257a, 0x258c, 0x258c, 0x258c, + 0x259e, 0x25aa, 0x25c8, 0x25e3, 0x2617, 0x262f, 0x262f, 0x262f, + 0x263e, 0x264a, 0x265c, 0x2668, 0x267a, 0x2686, 0x269e, 0x269e, + 0x26b9, 0x26ce, 0x26ce, 0x26e3, 0x2708, 0x2727, 0x2727, 0x2727, + 0x2727, 0x273f, 0x273f, 0x2754, 0x2766, 0x277b, 0x2796, 0x27dd, + 0x27f8, 0x2813, 0x282b, 0x2837, 0x2843, 0x2843, 0x2843, 0x2843, + 0x2843, 0x2855, 0x2855, 0x2864, 0x2864, 0x2876, 0x2882, 0x288e, + 0x28a9, 0x28a9, 0x28be, 0x28be, 0x28ca, 0x28d3, 0x28e5, 0x28e5, + // Entry 240 - 27F + 0x28e5, 0x28e5, 0x28fd, 0x2912, 0x2936, 0x2936, 0x2948, 0x298f, + 0x299b, 0x29b4, 0x29c0, 0x2a01, 0x2a01, 0x2a38, 0x2a64, 0x2aa1, + 0x2ad2, 0x2b03, 0x2b34, 0x2b7b, 0x2baf, 0x2be3, 0x2be3, 0x2c14, + 0x2c3c, 0x2c58, 0x2c70, 0x2cb0, 0x2cea, 0x2d0b, 0x2d3f, 0x2d67, + 0x2d8f, 0x2dc0, +} // Size: 1244 bytes + +var thLangStr string = "" + // Size: 13735 bytes + "อะฟาร์อับคาซอเวสตะà¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸™à¸ªà¹Œà¸­à¸²à¸„ันอัมฮาราอาราà¸à¸­à¸™à¸­à¸²à¸«à¸£à¸±à¸šà¸­à¸±à¸ªà¸ªà¸±à¸¡à¸­à¸²à¸§à¸²à¸£à¹Œà¹„อย์มาร" + + "าอาเซอร์ไบจานบัชคีร์เบลารุสบัลà¹à¸à¹€à¸£à¸µà¸¢à¸šà¸´à¸ªà¸¥à¸²à¸¡à¸²à¸šà¸±à¸¡à¸šà¸²à¸£à¸²à¹€à¸šà¸‡à¸à¸²à¸¥à¸µà¸—ิเบตเบรตันบอ" + + "สเนียà¸à¸²à¸•à¸²à¸¥à¸±à¸‡à¹€à¸Šà¹€à¸Šà¸™à¸Šà¸²à¸¡à¸­à¸£à¹Œà¹‚รคอร์ซิà¸à¸²à¸„รีเช็à¸à¹€à¸Šà¸­à¸£à¹Œà¸Šà¸ªà¸¥à¸²à¸§à¸´à¸à¸Šà¸¹à¸§à¸±à¸Šà¹€à¸§à¸¥à¸ªà¹Œà¹€à¸”นมาร์à¸" + + "เยอรมันธิเวหิซองคาเอเวà¸à¸£à¸µà¸à¸­à¸±à¸‡à¸à¸¤à¸©à¹€à¸­à¸ªà¹€à¸›à¸­à¸£à¸±à¸™à¹‚ตสเปนเอสโตเนียบัสเà¸à¹€à¸›à¸­à¸£à¹Œà¹€à¸‹à¸µà¸¢" + + "ฟูลาฮ์ฟินà¹à¸¥à¸™à¸”์ฟิจิà¹à¸Ÿà¹‚รà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸Ÿà¸£à¸´à¹€à¸‹à¸µà¸¢à¸™à¸•à¸°à¸§à¸±à¸™à¸•à¸à¹„อริชสà¸à¸­à¸•à¸ªà¹Œà¸à¸²à¸¥à¸´à¸à¸à¸²à¸¥à¸´à¹€à¸‹à¸µà¸¢à¸" + + "วารานีคุชราตมานซ์เฮาชาฮิบรูฮินดีฮีรีโมตูโครเอเชียเฮติฮังà¸à¸²à¸£à¸µà¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢" + + "เฮเรโรอินเตอร์ลิงà¸à¸±à¸§à¸­à¸´à¸™à¹‚ดนีเชียอินเตอร์ลิงà¸à¸´à¸§à¸­à¸´à¸à¹‚บเสฉวนยิอีนูเปียà¸à¸­à¸µà¹‚ด" + + "ไอซ์à¹à¸¥à¸™à¸”์อิตาลีอินุà¸à¸•à¸´à¸•à¸¸à¸•à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¸Šà¸§à¸²à¸ˆà¸­à¸£à¹Œà¹€à¸ˆà¸µà¸¢à¸„องโà¸à¸à¸µà¸à¸¹à¸¢à¸¹à¸à¸§à¸™à¸¢à¸²à¸¡à¸²à¸„าซัคà¸à¸£à¸µà¸™" + + "à¹à¸¥à¸™à¸”์เขมรà¸à¸±à¸™à¸™à¸²à¸”าเà¸à¸²à¸«à¸¥à¸µà¸„านูรีà¸à¸±à¸¨à¸¡à¸µà¸£à¹Œà¹€à¸„ิร์ดโà¸à¸¡à¸´à¸„อร์นิชคีร์à¸à¸µà¸‹à¸¥à¸°à¸•à¸´à¸™à¸¥à¸±à¸à¹€à¸‹à¸¡" + + "เบิร์à¸à¸¢à¸¹à¸à¸±à¸™à¸”าลิมเบิร์à¸à¸¥à¸´à¸‡à¸à¸²à¸¥à¸²à¸¥à¸²à¸§à¸¥à¸´à¸—ัวเนียลูบา-à¸à¸²à¸•à¸­à¸‡à¸à¸²à¸¥à¸±à¸•à¹€à¸§à¸µà¸¢à¸¡à¸²à¸¥à¸²à¸à¸²à¸‹à¸µà¸¡à¸²" + + "ร์à¹à¸Šà¸¥à¸¥à¸´à¸ªà¹€à¸¡à¸²à¸£à¸µà¸¡à¸²à¸‹à¸´à¹‚ดเนียมาลายาลัมมองโà¸à¹€à¸¥à¸µà¸¢à¸¡à¸£à¸²à¸à¸µà¸¡à¸²à¹€à¸¥à¸¢à¹Œà¸¡à¸­à¸¥à¸•à¸²à¸žà¸¡à¹ˆà¸²à¸™à¸²à¸­à¸¹à¸£à¸¹à¹€à¸­à¹‡" + + "นเดเบเลเหนือเนปาลดองà¸à¸²à¸”ัตช์นอร์เวย์นีนอสà¸à¹Œà¸™à¸­à¸£à¹Œà¹€à¸§à¸¢à¹Œà¸šà¸¸à¸„มอลเอ็นเดเบเลใต้น" + + "าวาโฮเนียนจาอ็อà¸à¸‹à¸´à¸•à¸±à¸™à¹‚อจิบวาโอโรโมโอริยาออสเซเตียปัà¸à¸ˆà¸²à¸šà¸šà¸²à¸¥à¸µà¹‚ปà¹à¸¥à¸™à¸”์พาชต" + + "ูโปรตุเà¸à¸ªà¸„วิชัวโรà¹à¸¡à¸™à¸‹à¹Œà¸šà¸¸à¸£à¸¸à¸™à¸”ีโรมาเนียรัสเซียรวันดาสันสà¸à¸¤à¸•à¸‹à¸²à¸£à¹Œà¹€à¸”à¸à¸²à¸ªà¸´à¸™à¸˜à¸¸" + + "ซามิเหนือà¹à¸‹à¸‡à¹‚à¸à¸ªà¸´à¸‡à¸«à¸¥à¸ªà¹‚ลวัà¸à¸ªà¹‚ลวีเนียซามัวโชนาโซมาลีà¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢à¹€à¸‹à¸­à¸£à¹Œà¹€à¸šà¸µà¸¢à¸ªà¸§à¸²" + + "ติโซโทใต้ซุนดาสวีเดนสวาฮีลีทมิฬเตลูà¸à¸¹à¸—าจิà¸à¹„ทยติà¸à¸£à¸´à¸à¸à¸²à¹€à¸•à¸´à¸£à¹Œà¸à¹€à¸¡à¸™à¸´à¸ªà¸–านบอต" + + "สวานาตองà¸à¸²à¸•à¸¸à¸£à¸à¸µà¸‹à¸´à¸´à¸•à¸‹à¸­à¸‡à¸à¸²à¸•à¸²à¸•à¸²à¸£à¹Œà¸•à¸²à¸®à¸´à¸•à¸µà¸­à¸¸à¸¢à¸à¸±à¸§à¸¢à¸¹à¹€à¸„รนอูรดูอุซเบà¸à¹€à¸§à¸™à¸”าเวียดน" + + "ามโวลาพึควาโลนีโวลอฟคะห์โอซายิวโยรูบาจ้วงจีนซูลูอาเจะห์อาโคลิอาà¹à¸”งมีอะ" + + "ดืยเà¸à¸­à¸²à¸«à¸£à¸±à¸šà¸•à¸¹à¸™à¸´à¹€à¸‹à¸µà¸¢à¹à¸­à¸Ÿà¸£à¸´à¸®à¸µà¸¥à¸µà¸­à¸±à¸à¹€à¸®à¸¡à¹„อนุอัà¸à¸à¸²à¸”à¹à¸­à¸¥à¸°à¹à¸šà¸¡à¸²à¸­à¸²à¸¥à¸´à¸§à¸•à¹Œà¹€à¸à¸à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µ" + + "ยอัลไตใต้อังà¸à¸¤à¸©à¹‚บราณอังคิà¸à¸²à¸­à¸£à¸²à¹€à¸¡à¸­à¸´à¸à¸­à¸²à¹€à¸£à¸²à¸„าเนียนอาเรานาอาราปาโฮอาหรับà¹à¸­" + + "ลจีเรียอาราวัà¸à¸­à¸²à¸«à¸£à¸±à¸šà¹‚มร็อà¸à¹‚à¸à¸­à¸²à¸«à¸£à¸±à¸šà¸žà¸·à¹‰à¸™à¹€à¸¡à¸·à¸­à¸‡à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¸­à¸²à¸‹à¸¹à¸ à¸²à¸©à¸²à¸¡à¸·à¸­à¸­à¹€à¸¡à¸£à¸´à¸à¸±à¸™à¸­" + + "ัสตูเรียสโคตาวาอวธีบาลูชิบาหลีบาวาเรียบาสาบามันบาตัà¸à¹‚ทบาโคมาลาเบจาเบมบ" + + "าเบตาวีเบนาบาฟัตพทคะบาลูจิตะวันออà¸à¹‚ภชปุรีบิà¸à¸­à¸¥à¸šà¸´à¸™à¸µà¸šà¸±à¸™à¸ˆà¸²à¸£à¹Œà¸à¸¡à¸ªà¸´à¸à¸ªà¸´à¸à¸²à¸žà¸´à¸¨à¸™" + + "ุปริยะบัà¸à¸•à¸´à¸¢à¸²à¸£à¸µà¸žà¸±à¸£à¸Šà¸šà¸£à¸²à¸®à¸¸à¸¢à¹‚พโฑอาโคซีบูเรียตบูà¸à¸´à¸ªà¸šà¸¹à¸¥à¸¹à¸šà¸¥à¸´à¸™à¹€à¸¡à¸”ุมบาคัดโดคาร" + + "ิบคายูà¸à¸²à¹à¸­à¸•à¹à¸‹à¸¡à¹€à¸‹à¸šà¸¹à¸„ีà¸à¸²à¸Šà¸´à¸šà¸Šà¸²à¸Šà¸°à¸à¸°à¹„ตชูà¸à¸¡à¸²à¸£à¸µà¸Šà¸´à¸™à¸¸à¸à¸ˆà¸²à¸£à¹Œà¸à¸­à¸™à¸Šà¹‡à¸­à¸à¸—อว์ชิพิวยันเช" + + "อโรà¸à¸µà¹€à¸Šà¹€à¸¢à¸™à¹€à¸™à¹€à¸„ิร์ดโซรานีคอปติà¸à¸à¸²à¸›à¸´à¸‹à¸™à¸­à¸™à¸•à¸¸à¸£à¸à¸µà¹„ครเมียคาซูเบียนดาโà¸à¸—าดาร์à¸" + + "ินไททาเดลาà¹à¸§à¸£à¹Œà¸ªà¹€à¸¥à¸§à¸µà¹‚ดà¸à¸£à¸´à¸šà¸”ิงà¸à¸²à¸‹à¸²à¸£à¹Œà¸¡à¸²à¹‚ฑครีซอร์บส์ตอนล่างดูซุนà¸à¸¥à¸²à¸‡à¸”ัวลาด" + + "ัตช์à¸à¸¥à¸²à¸‡à¹‚จลา-ฟอนยีดิวลาดาซาà¸à¸²à¹€à¸­à¹‡à¸¡à¸šà¸¹à¸­à¸µà¸Ÿà¸´à¸à¹€à¸­à¸¡à¸µà¹€à¸¥à¸µà¸¢à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹‚บราณอีà¸à¸²à¸ˆà¸¸à¸à¸­à¸µà¸¥" + + "าไมต์อังà¸à¸¤à¸©à¸à¸¥à¸²à¸‡à¸¢à¸¹à¸žà¸´à¸à¸à¸¥à¸²à¸‡à¸­à¸µà¸§à¸±à¸™à¹‚ดเอà¸à¸‹à¹Œà¹€à¸•à¸£à¸¡à¸²à¸”ูราฟองฟิลิปปินส์ฟินà¹à¸¥à¸™à¸”์ทอร์" + + "เนดาเล็นฟอนà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸²à¸Œà¹‡à¸­à¸‡à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸¥à¸²à¸‡à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¹‚บราณอาร์พิตาฟริเซียนเหนื" + + "อฟริเซียนตะวันออà¸à¸Ÿà¸£à¸¹à¸¥à¸µà¸à¸²à¸à¸²à¸à¸²à¸­à¸¸à¸‹à¸ˆà¸µà¸™à¸à¸²à¸™à¸à¸²à¹‚ยà¸à¸šà¸²à¸¢à¸²à¸”ารีโซโรอัสเตอร์à¸à¸µà¸‹à¸à¸´à¸¥à¹€à¸š" + + "อร์ตà¸à¸´à¸¥à¸²à¸à¸µà¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¸ªà¸¹à¸‡à¸à¸¥à¸²à¸‡à¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¸ªà¸¹à¸‡à¹‚บราณà¸à¸­à¸™à¸à¸²à¸™à¸µà¸‚องà¸à¸±à¸§à¸à¸­à¸™à¸”ิà¸à¸­à¸£à¸­à¸™à¸—าโลโà¸à¸˜à¸´" + + "à¸à¹€à¸à¸£à¹‚บà¸à¸£à¸µà¸à¹‚บราณเยอรมันสวิสวายูฟราฟราà¸à¸¸à¸‹à¸‹à¸µà¸à¸§à¸´à¸Šà¸­à¸´à¸™à¹„ฮดาจีนà¹à¸„ะฮาวายฮินดีฟิ" + + "จิฮีลีà¸à¸±à¸¢à¸™à¸™à¸®à¸´à¸•à¹„ตต์ม้งซอร์บส์ตอนบนจีนเซียงฮูปาอิบานอิบิบิโออีโลโà¸à¸­à¸´à¸™à¸à¸¸à¸Š" + + "อินเà¸à¸£à¸µà¸¢à¸™à¸­à¸±à¸‡à¸à¸¤à¸©à¸„ลีโอลจาเมà¸à¸²à¹‚ลชบันอึนà¸à¸­à¸¡à¸šà¸²à¸¡à¸²à¸Šà¸²à¹€à¸¡à¸¢à¸´à¸§-เปอร์เซียยิว-อาหรับ" + + "จัทà¸à¸²à¸£à¸²-à¸à¸²à¸¥à¸žà¸²à¸à¸à¸²à¹„บลà¸à¸°à¸‰à¸´à¹ˆà¸™à¸„จูคัมบาà¸à¸§à¸µà¸„าร์บาเดียคาเนมบูทีà¹à¸¢à¸›à¸¡à¸²à¸„อนเดคาบูเ" + + "วอร์เดียนูเà¸à¸´à¸™à¸¢à¸²à¸‡à¹‚คโรเคนà¸à¹ˆà¸²à¸‡à¸à¸²à¸ªà¸µà¹‚คตันโคย์ราชีนีโควาร์เคอร์มานิà¸à¸´à¸„าโà¸à¸„า" + + "เลนจินคิมบุนดูโคมิ-เปียร์เมียคà¸à¸­à¸™à¸à¸²à¸™à¸µà¸„ูสไรà¸à¸²à¹à¸›à¸¥à¸„าราไช-บัลคาร์คริโอà¸à¸´à¸™à¸²" + + "รายอาà¹à¸à¸£à¹€à¸¥à¸µà¸¢à¸™à¸à¸¸à¸£à¸¸à¸‚ชัมบาลาบาเฟียโคโลà¸à¸„ูมืยค์คูเทไนลาดิโนà¹à¸¥à¸™à¸ˆà¸µà¸¥à¸²à¸®à¹Œà¸™à¸”าà¹à¸¥à¸¡" + + "บาเลซเà¸à¸µà¸¢à¸™à¸¥à¸´à¸‡à¸à¸±à¸§à¸Ÿà¸£à¸±à¸‡à¸à¸²à¹‚นวาลิà¸à¸¹à¹€à¸£à¸µà¸¢à¸¥à¸´à¹‚วเนียลาโà¸à¸•à¸²à¸¥à¸­à¸¡à¸šà¸²à¸£à¹Œà¸”มองโà¸à¹‚ลซิลูรีเ" + + "หนือลัตเà¸à¸¥à¸¥à¸¹à¸šà¸²-ลูลัวลุยเซโนลันดาลัวลูไชลูเยียจีนคลาสสิà¸à¹à¸¥à¸‹à¸¡à¸²à¸”ูรามาฟามค" + + "หีไมถิลีมาà¸à¸²à¸‹à¸²à¸£à¹Œà¸¡à¸±à¸™à¸”ิงà¸à¸²à¸¡à¸²à¹„ซมาบามอคชามานดาร์เมนเดเมรูมอริสเยนไอริชà¸à¸¥à¸²à¸‡" + + "มาà¸à¸±à¸§à¸§à¸²-มีทโทเมตามิà¸à¹à¸¡à¸à¸¡à¸µà¸™à¸±à¸‡à¸à¸²à¹€à¸šà¸²à¹à¸¡à¸™à¸ˆà¸¹à¸¡à¸“ีปุระโมฮอว์à¸à¹‚มซีมารีตะวันตà¸à¸¡à¸±à¸™" + + "ดังหลายภาษาครีà¸à¸¡à¸µà¸£à¸±à¸™à¸”ามารวาฑีเม็นตาไวมยีนเอียร์ซยามาซันดารานีจีนมินหนา" + + "นนาโปลีนามาเยอรมันต่ำ - à¹à¸‹à¸à¸‹à¸­à¸™à¸•à¹ˆà¸³à¹€à¸™à¸§à¸²à¸£à¹Œà¸™à¸µà¸­à¸±à¸ªà¸™à¸µà¸­à¸¹à¸­à¹‹à¸²à¸§à¸™à¸²à¸à¸²à¸à¸§à¸²à¸‹à¸´à¹‚อจีมบูนโ" + + "นไà¸à¸™à¸­à¸£à¹Œà¸ªà¹‚บราณโนเวียลเอ็นโà¸à¹‚ซโทเหนือเนือร์เนวาร์ดั้งเดิมเนียมเวซีเนียนโ" + + "à¸à¹€à¸¥à¸™à¸´à¹‚อโรนซิมาโอซาà¸à¸µà¸•à¸¸à¸£à¸à¸µà¸­à¸­à¸•à¹‚ตมันปางาซีนันปะห์ลาวีปัมปางาปาเปียเมนโตปา" + + "เลาปิà¸à¸²à¸£à¹Œà¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¹€à¸žà¸™à¸‹à¸´à¸¥à¹€à¸§à¹€à¸™à¸µà¸¢à¹€à¸žà¸¥à¸²à¸—์ดิชเปอร์เซียโบราณเยอรมันพาลาทิเนตฟิน" + + "ิเชียพีดมอนต์พอนติà¸à¸žà¸­à¸«à¹Œà¸™à¹€à¸žà¸›à¸£à¸±à¸ªà¹€à¸‹à¸µà¸¢à¹‚ปรวองซาลโบราณà¸à¸µà¹€à¸Šà¸„วิชัวไฮà¹à¸¥à¸™à¸”์ชิมโบ" + + "ราโซราชสถานราปานูราโรทองà¸à¸²à¹‚รมัณโà¸à¸£à¸´à¸Ÿà¸Ÿà¸´à¸­à¸±à¸™à¸£à¸­à¸¡à¹‚บโรมานีโรทูมันรูซินโรเวีย" + + "นาอาโรมาเนียนรวาซันดาเวซาฮาอราเมอิà¸à¸‹à¸²à¸¡à¸²à¹€à¸£à¸µà¸¢à¹à¸‹à¸¡à¸šà¸¹à¸£à¸¹à¸‹à¸²à¸‹à¸±à¸à¸ªà¸±à¸™à¸•à¸²à¸¥à¸µà¹€à¸ªà¸²à¸£à¸²à¸©à¸à¸£" + + "์à¸à¸±à¸¡à¹€à¸šà¹à¸‹à¸‡à¸à¸¹à¸‹à¸´à¸‹à¸´à¸¥à¸µà¸ªà¸à¸­à¸•à¸ªà¹Œà¸‹à¸²à¸£à¹Œà¸”ิเนียซาสซารีเคอร์ดิชใต้เซนิà¸à¸²à¹€à¸‹à¸™à¸²à¹€à¸‹à¸£à¸µà¹€à¸‹à¸¥à¸„ุ" + + "ปโคย์ราโบโรเซนนีไอริชโบราณซาโมจิเตียนทาเชลีห์ทไทใหà¸à¹ˆà¸­à¸²à¸«à¸£à¸±à¸š-ชาดซิดาโมไซ" + + "ลีเซียตอนล่างเซลายาร์ซามิใต้ซามิลูเลซามิอีนารีซามิสคอลต์โซนีนเà¸à¸‹à¸­à¸à¸”ีนซ" + + "ูรินาเมเซà¹à¸£à¸£à¹Œà¸‹à¸²à¹‚ฮฟรีเซียนซัทเธอร์à¹à¸¥à¸™à¸”์ซูคูมาซูซูซูเมอโคเมอเรียนซีเรียà¹" + + "บบดั้งเดิมซีเรียไซลีเซียตูลูทิมเนเตโซเทเรโนเตตุมตีเà¸à¸£à¸—ิฟโตเà¸à¹€à¸¥à¸²à¹à¸‹à¸„เซอร" + + "์คลิงà¸à¸­à¸™à¸—ลิงà¸à¸´à¸•à¸—าลิชทามาเชà¸à¹„นอะซาตองà¸à¸²à¸—็อà¸à¸žà¸´à¸‹à¸´à¸™à¸•à¸¹à¹‚รโยทาโรโà¸à¸‹à¸²à¹‚คเนียซิม" + + "ชีà¹à¸­à¸™à¸•à¸±à¸•à¸¡à¸¸à¸ªà¸¥à¸´à¸¡à¸—ุมบูà¸à¸²à¸•à¸¹à¸§à¸²à¸¥à¸¹à¸•à¸±à¸ªà¸‹à¸²à¸§à¸±à¸„ตูวาทามาไซต์à¹à¸­à¸•à¸¥à¸²à¸ªà¸à¸¥à¸²à¸‡à¸­à¸¸à¸”มูร์ตยูà¸à¸²à¸£" + + "ิตอุมบุนดูรูทไวเวเนโต้เวปส์เฟลมิชตะวันตà¸à¹€à¸¡à¸™-ฟรานโà¸à¹€à¸™à¸µà¸¢à¹‚วทิà¸à¹‚วโรวุนจูวั" + + "ลเซอร์วาลาโมวาเรย์วาโชวอล์เพอร์รีจีนอู๋คัลมืยค์เมเà¸à¸£à¹€à¸¥à¸µà¸¢à¹‚ซà¸à¸²à¹€à¸¢à¹‰à¸²à¸¢à¸±à¸›à¹à¸¢à¸‡" + + "เบนเยมบาเหงงà¸à¸²à¸•à¸¸à¸à¸§à¸²à¸‡à¸•à¸¸à¹‰à¸‡à¸‹à¸²à¹‚ปเตà¸à¸šà¸¥à¸´à¸ªà¸‹à¸´à¸¡à¹‚บลส์เซà¹à¸¥à¸™à¸”์เซนาà¸à¸²à¸—ามาไซต์โมร็อà¸" + + "โà¸à¸¡à¸²à¸•à¸£à¸à¸²à¸™à¸‹à¸¹à¸™à¸´à¹„ม่มีข้อมูลภาษาซาซาอาหรับมาตรà¸à¸²à¸™à¸ªà¸¡à¸±à¸¢à¹ƒà¸«à¸¡à¹ˆà¹€à¸¢à¸­à¸£à¸¡à¸±à¸™ - ออสเตรี" + + "ยเยอรมันสูง (สวิส)อังà¸à¸¤à¸© - ออสเตรเลียอังà¸à¸¤à¸© - à¹à¸„นาดาอังà¸à¸¤à¸© - สหราชอาณา" + + "จัà¸à¸£à¸­à¸±à¸‡à¸à¸¤à¸© - อเมริà¸à¸±à¸™à¸ªà¹€à¸›à¸™ - ละตินอเมริà¸à¸²à¸ªà¹€à¸›à¸™ - ยุโรปสเปน - เม็à¸à¸‹à¸´à¹‚à¸à¸à¸£à¸±" + + "่งเศส - à¹à¸„นาดาà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª (สวิส)à¹à¸‹à¸à¸‹à¸­à¸™à¹ƒà¸•à¹‰à¹€à¸Ÿà¸¥à¸¡à¸´à¸Šà¹‚ปรตุเà¸à¸ª - บราซิลโปรตุเà¸à¸ª " + + "- ยุโรปมอลโดวาเซอร์โบ-โครเอเชียสวาฮีลี-คองโà¸à¸ˆà¸µà¸™à¸•à¸±à¸§à¸¢à¹ˆà¸­à¸ˆà¸µà¸™à¸•à¸±à¸§à¹€à¸•à¹‡à¸¡" + +var thLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0024, 0x0036, 0x0054, 0x0063, 0x0078, 0x008d, + 0x009f, 0x00b1, 0x00c3, 0x00db, 0x00ff, 0x0114, 0x0129, 0x0144, + 0x0159, 0x016e, 0x0183, 0x0192, 0x01a4, 0x01b9, 0x01ce, 0x01dd, + 0x01f5, 0x020d, 0x0216, 0x0222, 0x0246, 0x0255, 0x0264, 0x027c, + 0x0291, 0x02a3, 0x02b2, 0x02be, 0x02ca, 0x02dc, 0x02fd, 0x0309, + 0x0324, 0x0333, 0x034e, 0x0360, 0x0378, 0x0384, 0x0390, 0x03a8, + 0x03d5, 0x03e4, 0x0405, 0x041d, 0x0432, 0x0444, 0x0453, 0x0462, + 0x0471, 0x0480, 0x0498, 0x04b3, 0x04bf, 0x04d4, 0x04f2, 0x0504, + // Entry 40 - 7F + 0x052e, 0x054f, 0x0579, 0x0588, 0x059d, 0x05b8, 0x05c4, 0x05df, + 0x05f1, 0x060f, 0x0624, 0x062d, 0x0645, 0x0654, 0x0666, 0x067b, + 0x068a, 0x06a5, 0x06b1, 0x06c6, 0x06d8, 0x06ea, 0x06ff, 0x0711, + 0x071d, 0x0732, 0x0747, 0x0756, 0x077a, 0x078f, 0x07aa, 0x07bf, + 0x07c8, 0x07e3, 0x0805, 0x081a, 0x0832, 0x0850, 0x085f, 0x087d, + 0x0898, 0x08b3, 0x08c2, 0x08d4, 0x08e3, 0x08ef, 0x0901, 0x092e, + 0x093d, 0x094c, 0x095b, 0x0988, 0x09b2, 0x09d9, 0x09eb, 0x0a00, + 0x0a1b, 0x0a30, 0x0a42, 0x0a54, 0x0a6f, 0x0a81, 0x0a8d, 0x0aa2, + // Entry 80 - BF + 0x0ab1, 0x0ac9, 0x0adb, 0x0af0, 0x0b05, 0x0b1d, 0x0b32, 0x0b44, + 0x0b59, 0x0b71, 0x0b80, 0x0b9b, 0x0baa, 0x0bb9, 0x0bcb, 0x0be6, + 0x0bf5, 0x0c01, 0x0c13, 0x0c2e, 0x0c49, 0x0c58, 0x0c6d, 0x0c7c, + 0x0c8e, 0x0ca3, 0x0caf, 0x0cc1, 0x0cd0, 0x0cd9, 0x0cf1, 0x0d1b, + 0x0d33, 0x0d42, 0x0d51, 0x0d6c, 0x0d7e, 0x0d90, 0x0da2, 0x0db4, + 0x0dc3, 0x0dd5, 0x0de4, 0x0dfc, 0x0e11, 0x0e23, 0x0e32, 0x0e4a, + 0x0e53, 0x0e65, 0x0e71, 0x0e7a, 0x0e86, 0x0e9b, 0x0ead, 0x0ec2, + 0x0ed7, 0x0f01, 0x0f1c, 0x0f2e, 0x0f3a, 0x0f4c, 0x0f64, 0x0f79, + // Entry C0 - FF + 0x0f9d, 0x0fb5, 0x0fd6, 0x0feb, 0x1003, 0x1027, 0x103c, 0x1054, + 0x1081, 0x1096, 0x10c0, 0x1102, 0x110e, 0x113b, 0x1159, 0x116b, + 0x1177, 0x1189, 0x1198, 0x11b0, 0x11bc, 0x11cb, 0x11e6, 0x11f8, + 0x1204, 0x1213, 0x1225, 0x1231, 0x1240, 0x124c, 0x1276, 0x128b, + 0x129a, 0x12a6, 0x12bb, 0x12c1, 0x12d6, 0x12f4, 0x130f, 0x131b, + 0x132d, 0x1339, 0x134b, 0x1360, 0x136f, 0x137b, 0x1387, 0x139c, + 0x13ab, 0x13ba, 0x13cc, 0x13de, 0x13ea, 0x13f6, 0x1405, 0x1417, + 0x1420, 0x142c, 0x1450, 0x1468, 0x1480, 0x1495, 0x14aa, 0x14ce, + // Entry 100 - 13F + 0x14e0, 0x14f8, 0x151c, 0x1537, 0x1549, 0x155e, 0x156a, 0x1582, + 0x1591, 0x15a3, 0x15b2, 0x15c4, 0x15d3, 0x15fd, 0x1618, 0x1627, + 0x1642, 0x165e, 0x166d, 0x167f, 0x1691, 0x16a0, 0x16b8, 0x16dc, + 0x16f1, 0x1709, 0x1727, 0x1742, 0x1757, 0x1781, 0x178a, 0x17a8, + 0x17e4, 0x17ed, 0x1817, 0x183b, 0x1862, 0x187a, 0x18a1, 0x18d1, + 0x18e0, 0x18e6, 0x18fb, 0x190d, 0x1919, 0x1928, 0x1958, 0x1961, + 0x197c, 0x198e, 0x19b8, 0x19e5, 0x1a0c, 0x1a1b, 0x1a36, 0x1a45, + 0x1a54, 0x1a6f, 0x1a90, 0x1a9c, 0x1aae, 0x1abd, 0x1ad2, 0x1ade, + // Entry 140 - 17F + 0x1af0, 0x1aff, 0x1b1a, 0x1b35, 0x1b4a, 0x1b53, 0x1b77, 0x1b8f, + 0x1b9b, 0x1baa, 0x1bc2, 0x1bd4, 0x1be6, 0x1c01, 0x1c37, 0x1c49, + 0x1c61, 0x1c73, 0x1c98, 0x1cb4, 0x1cbd, 0x1cdc, 0x1ceb, 0x1cfd, + 0x1d06, 0x1d15, 0x1d1e, 0x1d3c, 0x1d51, 0x1d60, 0x1d75, 0x1da2, + 0x1db7, 0x1dc3, 0x1dd8, 0x1de4, 0x1df3, 0x1e11, 0x1e23, 0x1e44, + 0x1e50, 0x1e68, 0x1e80, 0x1eae, 0x1ec3, 0x1ed2, 0x1ee1, 0x1f09, + 0x1f18, 0x1f33, 0x1f4b, 0x1f5a, 0x1f6f, 0x1f81, 0x1f90, 0x1fa5, + 0x1fb7, 0x1fc9, 0x1fd8, 0x1fed, 0x1ffc, 0x2014, 0x2044, 0x205c, + // Entry 180 - 1BF + 0x2074, 0x2086, 0x209e, 0x20ad, 0x20b9, 0x20d4, 0x20e6, 0x2102, + 0x2117, 0x2126, 0x212f, 0x213b, 0x214d, 0x216b, 0x2174, 0x2186, + 0x2192, 0x219e, 0x21b0, 0x21c8, 0x21e0, 0x21ec, 0x21f8, 0x2207, + 0x221c, 0x222b, 0x2237, 0x224f, 0x226a, 0x228f, 0x229b, 0x22ad, + 0x22cb, 0x22da, 0x22ef, 0x2304, 0x2310, 0x2331, 0x2343, 0x235b, + 0x2367, 0x237c, 0x2391, 0x23a9, 0x23b5, 0x23d0, 0x23f1, 0x240f, + 0x2421, 0x242d, 0x2469, 0x247b, 0x248a, 0x2496, 0x24ae, 0x24c3, + 0x24d5, 0x24e1, 0x24ff, 0x2514, 0x2526, 0x2541, 0x2553, 0x257d, + // Entry 1C0 - 1FF + 0x2598, 0x25b3, 0x25c5, 0x25d4, 0x25e6, 0x260d, 0x2628, 0x2640, + 0x2655, 0x2676, 0x2685, 0x2697, 0x26d0, 0x26eb, 0x2715, 0x2745, + 0x275d, 0x2775, 0x2787, 0x279c, 0x27b4, 0x27de, 0x27ea, 0x282c, + 0x2841, 0x2853, 0x286e, 0x2883, 0x289b, 0x28aa, 0x28bc, 0x28d1, + 0x28e0, 0x28f8, 0x2919, 0x2922, 0x2937, 0x2943, 0x2973, 0x2988, + 0x2997, 0x29ac, 0x29c7, 0x29d6, 0x29e5, 0x29f7, 0x2a09, 0x2a3c, + 0x2a5d, 0x2a6f, 0x2a7b, 0x2a87, 0x2a99, 0x2ac6, 0x2ae4, 0x2b05, + 0x2b20, 0x2b32, 0x2b4e, 0x2b60, 0x2b8d, 0x2ba5, 0x2bba, 0x2bd2, + // Entry 200 - 23F + 0x2bf0, 0x2c0e, 0x2c23, 0x2c35, 0x2c4d, 0x2c5f, 0x2c6b, 0x2caa, + 0x2cbc, 0x2cc8, 0x2cd7, 0x2cf5, 0x2d28, 0x2d3a, 0x2d52, 0x2d5e, + 0x2d6d, 0x2d79, 0x2d8b, 0x2d9a, 0x2da9, 0x2db2, 0x2dc7, 0x2ddf, + 0x2df4, 0x2e09, 0x2e18, 0x2e2d, 0x2e4e, 0x2e69, 0x2e7b, 0x2e8d, + 0x2ea5, 0x2ebd, 0x2ed8, 0x2eed, 0x2eff, 0x2f17, 0x2f23, 0x2f59, + 0x2f71, 0x2f86, 0x2f9e, 0x2fa7, 0x2fad, 0x2fc2, 0x2fd1, 0x2ff8, + 0x3020, 0x302f, 0x303b, 0x304a, 0x3062, 0x3074, 0x3086, 0x3092, + 0x30b3, 0x30c5, 0x30dd, 0x30f8, 0x3104, 0x3110, 0x3119, 0x312b, + // Entry 240 - 27F + 0x313a, 0x3152, 0x316a, 0x317f, 0x31a3, 0x31b8, 0x31ca, 0x320f, + 0x321b, 0x3248, 0x3254, 0x3293, 0x3293, 0x32c3, 0x32f0, 0x3323, + 0x334a, 0x3386, 0x33b3, 0x33e6, 0x3404, 0x342b, 0x342b, 0x3458, + 0x347f, 0x349a, 0x34ac, 0x34d9, 0x3503, 0x3518, 0x3549, 0x356e, + 0x3589, 0x35a7, +} // Size: 1244 bytes + +var trLangStr string = "" + // Size: 5557 bytes + "AfarAbhazcaAvestçeAfrikaancaAkanAmharcaAragoncaArapçaAssamcaAvar DiliAym" + + "araAzericeBaÅŸkırtçaBeyaz RusçaBulgarcaBislamaBambaraBengalceTibetçeBreto" + + "ncaBoÅŸnakçaKatalancaÇeçenceChamorroKorsikacaCreeÇekçeKilise SlavcasıÇuva" + + "şçaGalceDancaAlmancaDivehiButan DiliEweYunancaÄ°ngilizceEsperantoÄ°spanyo" + + "lcaEstoncaBaskçaFarsçaFulahFinceFiji DiliFaroe DiliFransızcaBatı Frizces" + + "iÄ°rlandacaÄ°skoç Gal DiliGaliçyacaGuarani DiliGüceratçaManksHausaÄ°branice" + + "HintçeHiri MotuHırvatçaHaiti DiliMacarcaErmeniceHereroInterlinguaEndonez" + + "ceInterlingueÄ°bo DiliSichuan YiInupiakIdoÄ°zlandacaÄ°talyancaInuktitutJapo" + + "ncaCava DiliGürcüceKongoKikuyuKuanyamaKazakçaGrönland DiliKmerceKannadaK" + + "oreceKanuriKeÅŸmirceKürtçeKomiKernevekçeKırgızcaLatinceLüksemburgcaGandaL" + + "imburgcaLingalaLaocaLitvancaLuba-KatangaLetoncaMalgaşçaMarshall Adaları " + + "DiliMaori DiliMakedoncaMalayalamMoÄŸolcaMarathiMalaycaMaltacaBurmacaNauru" + + " DiliKuzey NdebeleNepalceNdongaHollandacaNorveççe NynorskNorveççe BokmÃ¥l" + + "Güney NdebeleNavaho DiliNyanjaOccitanOjibva DiliOromoOriya DiliOsetçePen" + + "capçaPaliLehçePeÅŸtucaPortekizceKeçuvacaRomanşçaKirundiRomenceRusçaKinyar" + + "wandaSanskritçeSardunya DiliSindhiKuzey SamiSangoSeylancaSlovakçaSlovenc" + + "eSamoa DiliShonaSomaliceArnavutçaSırpçaSisvatiGüney SothoSunda DiliÄ°sveç" + + "çeSvahiliTamilceTelugu DiliTacikçeTaycaTigrinyaTürkmenceSetsvanaTongaca" + + "TürkçeTsongaTatarcaTahiti DiliUygurcaUkraynacaUrducaÖzbekçeVendaVietnamc" + + "aVolapükValoncaVolofçaZosaYidiÅŸYorubacaZhuangÇinceZulucaAchineseAcoliAda" + + "ngmeAdigeceTunus ArapçasıAfrihiliAghemAyni DiliAkad DiliAlabamacaAleutGh" + + "eg ArnavutçasıGüney AltaycaEski Ä°ngilizceAngikaAramiceAraukanya DiliArao" + + "naArapaho DiliCezayir ArapçasıArawak DiliFas ArapçasıMısır ArapçasıAsuAm" + + "erikan Ä°ÅŸaret DiliAsturyascaKotavaAwadhiBaluchiBali DiliBavyera DiliBasa" + + " DiliBamunBatak TobaGhomalaBeja DiliBembaBetawiBenaBafutBadagaBatı Baloc" + + "hiArayaniceBikolBiniBanjar DiliKomSiksikaBishnupriyaBahtiyariBrajBrohice" + + "BodoAkooseBuryatBugisBuluBlinMedumbaCaddoCaribCayugaAtsamCebuanoKigacaCh" + + "ibchaÇaÄŸatay DiliChuukeseMariChinook JargonChoctawChipewyanÇerokiceÅžayen" + + " DiliOrta KürtçeKıpticeCapiznonKırım TürkçesiKashubianDakotaDarginceTait" + + "aDelawareSlaveyDogribDinkaZarmaDogriAÅŸağı SorbçaOrta KadazanDualaOrtaçaÄŸ" + + " FelemenkçesiJola-FonyiDyulaDazagaEmbuEfikEmilia DiliEski Mısır DiliEkaj" + + "ukElamOrtaçaÄŸ Ä°ngilizcesiMerkezi YupikçeEwondoEkstremadura DiliFangFilip" + + "inceTornedalin FincesiFonCajun FransızcasıOrtaçaÄŸ FransızcasıEski Fransı" + + "zcaArpitancaKuzey FrizceDoÄŸu FrizcesiFriulianGaGagavuzcaGan ÇincesiGayoG" + + "bayaZerdüşt DaricesiGeezKiribati DiliGilaniceOrtaçaÄŸ Yüksek AlmancasıEsk" + + "i Yüksek AlmancaGoa KonkanicesiGondiGorontaloGotçaGreboAntik YunancaÄ°svi" + + "çre AlmancasıWayuuFrafraGusiiGwichʼinHaidaHakka ÇincesiHawaii DiliFiji " + + "HintçesiHiligaynonHititçeHmongYukarı SorbçaXiang ÇincesiHupaIbanIbibioIl" + + "okoÄ°nguşçaÄ°ngriya DiliJamaika Patois DiliLojbanNgombaMachameYahudi Farsç" + + "asıYahudi ArapçasıYutland DiliKarakalpakçaKabiliyeceKaçinJjuKambaKawiKab" + + "ardeyceKanembuTyapMakondeKabuverdianuKenyangKoroKaingangKhasiHotancaKoyr" + + "a ChiiniÇitral DiliKırmanççaKakoKalenjinKimbunduKomi-PermyakKonkaniKosra" + + "eanKpelleKaraçay-BalkarcaKrioKinaray-aKarelyacaKurukhShambalaBafiaKöln D" + + "iyalektiKumukçaKutenaiLadinoLangiLahndaLambaLezgiceLingua Franca NovaLig" + + "urcaLivoncaLakotacaLombardçaMongoLoziKuzey LuriLatgalianLuba-LuluaLuisen" + + "oLundaLuoLushaiLuyiaEdebi ÇinceLazcaMadura DiliMafaMagahiMaithiliMakasar" + + "MandingoMasaiMabaMokÅŸa DiliMandarMendeMeruMorisyenOrtaçaÄŸ Ä°rlandacasıMak" + + "huwa-MeettoMeta’MicmacMinangkabauMançurya DiliManipuriMohavk DiliMossiOv" + + "a ÇirmişçesiMundangBirden Fazla DilCreekMiranda DiliMarvariMentawaiMyene" + + "ErzyaMazenderancaMin Nan ÇincesiNapoliceNamaAÅŸağı AlmancaNevariNiasNiuea" + + "nAo NagaKwasioNgiemboonNogaycaEski NorseNovialN’KoKuzey SothoNuerKlasik " + + "NevariNyamveziNyankoleNyoroNzimaOsageOsmanlı TürkçesiPangasinanPehlevi D" + + "iliPampangaPapiamentoPalau DiliPicard DiliPensilvanya AlmancasıPlautdiet" + + "schEski FarsçaPalatin AlmancasıFenike DiliPiyemonteceKuzeybatı KafkasyaP" + + "ohnpeianPrusyacaEski ProvensalKiçeceChimborazo Highland QuichuaRajasthan" + + "iRapanuiRarotonganRomanyolcaRif BerbericesiRomboRomancaRotumanRusinceRov" + + "ianaUlahçaRwaSandaveYakutçaSamarit AramcasıSamburuSasakSantaliSaurashtra" + + "NgambaySanguSicilyacaScotsSassari SarducaGüney KürtçesiSenecaSenaSeriSel" + + "kupKoyraboro SenniEski Ä°rlandacaSamogitçeTaÅŸelhitShan DiliÇad ArapçasıSi" + + "damoAÅŸağı SilezyacaSelayarGüney SamiLule SamiInari SamiSkolt SamiSoninke" + + "Sogdiana DiliSranan TongoSererSahoSaterland FrizcesiSukumaSusuSümerceKom" + + "orcaKlasik SüryaniceSüryaniceSilezyacaTulucaTimneTesoTerenoTetumTigreTiv" + + "TokelauSahurcaKlingoncaTlingitTalışçaTamaÅŸekNyasa TongaTok PisinTuroyoTa" + + "rokoTsakoncaTsimshianTatçaTumbukaTuvaluTasawaqTuvacaOrta Fas TamazigtiUd" + + "murtçaUgarit DiliUmbunduKökenVaiVenedikçeVepsBatı FlamancaMain Frankonya" + + " DiliVoticVõroVunjoWalserValamoVarayVaÅŸoWarlpiriWu ÇincesiKalmıkçaMegrel" + + "ceSogaYaoYapçaYangbenYembaNheengatuKantoncaZapotek DiliBlis SembolleriZe" + + "landacaZenagaStandart Berberi Dili TamazightZuniDilbilim içeriÄŸi yokZaza" + + "caModern Standart ArapçaGüney AzericeAvusturya Almancasıİsviçre Yüksek A" + + "lmancasıAvustralya Ä°ngilizcesiKanada Ä°ngilizcesiÄ°ngiliz Ä°ngilizcesiAmeri" + + "kan Ä°ngilizcesiLatin Amerika Ä°spanyolcasıAvrupa Ä°spanyolcasıMeksika Ä°spa" + + "nyolcasıKanada Fransızcasıİsviçre FransızcasıAÅŸağı SaksoncaFlamancaBrezi" + + "lya PortekizcesiAvrupa PortekizcesiMoldovacaSırp-Hırvat DiliKongo Svahil" + + "iBasitleÅŸtirilmiÅŸ ÇinceGeleneksel Çince" + +var trLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0004, 0x000b, 0x0013, 0x001d, 0x0021, 0x0028, 0x0030, + 0x0037, 0x003e, 0x0047, 0x004d, 0x0054, 0x0060, 0x006c, 0x0074, + 0x007b, 0x0082, 0x008a, 0x0092, 0x009a, 0x00a4, 0x00ad, 0x00b6, + 0x00be, 0x00c7, 0x00cb, 0x00d2, 0x00e2, 0x00ec, 0x00f1, 0x00f6, + 0x00fd, 0x0103, 0x010d, 0x0110, 0x0117, 0x0121, 0x012a, 0x0135, + 0x013c, 0x0143, 0x014a, 0x014f, 0x0154, 0x015d, 0x0167, 0x0171, + 0x017f, 0x0189, 0x0199, 0x01a3, 0x01af, 0x01ba, 0x01bf, 0x01c4, + 0x01cd, 0x01d4, 0x01dd, 0x01e7, 0x01f1, 0x01f8, 0x0200, 0x0206, + // Entry 40 - 7F + 0x0211, 0x021a, 0x0225, 0x022e, 0x0238, 0x023f, 0x0242, 0x024c, + 0x0256, 0x025f, 0x0266, 0x026f, 0x0278, 0x027d, 0x0283, 0x028b, + 0x0293, 0x02a1, 0x02a7, 0x02ae, 0x02b4, 0x02ba, 0x02c3, 0x02cb, + 0x02cf, 0x02da, 0x02e4, 0x02eb, 0x02f8, 0x02fd, 0x0306, 0x030d, + 0x0312, 0x031a, 0x0326, 0x032d, 0x0337, 0x034d, 0x0357, 0x0360, + 0x0369, 0x0371, 0x0378, 0x037f, 0x0386, 0x038d, 0x0397, 0x03a4, + 0x03ab, 0x03b1, 0x03bb, 0x03cd, 0x03df, 0x03ed, 0x03f8, 0x03fe, + 0x0405, 0x0410, 0x0415, 0x041f, 0x0426, 0x042f, 0x0433, 0x0439, + // Entry 80 - BF + 0x0441, 0x044b, 0x0454, 0x045e, 0x0465, 0x046c, 0x0472, 0x047d, + 0x0488, 0x0495, 0x049b, 0x04a5, 0x04aa, 0x04b2, 0x04bb, 0x04c3, + 0x04cd, 0x04d2, 0x04da, 0x04e4, 0x04ec, 0x04f3, 0x04ff, 0x0509, + 0x0513, 0x051a, 0x0521, 0x052c, 0x0534, 0x0539, 0x0541, 0x054b, + 0x0553, 0x055a, 0x0562, 0x0568, 0x056f, 0x057a, 0x0581, 0x058a, + 0x0590, 0x0599, 0x059e, 0x05a7, 0x05af, 0x05b6, 0x05be, 0x05c2, + 0x05c8, 0x05d0, 0x05d6, 0x05dc, 0x05e2, 0x05ea, 0x05ef, 0x05f6, + 0x05fd, 0x060d, 0x0615, 0x061a, 0x0623, 0x062c, 0x0635, 0x063a, + // Entry C0 - FF + 0x064c, 0x065a, 0x0669, 0x066f, 0x0676, 0x0684, 0x068a, 0x0696, + 0x06a8, 0x06b3, 0x06c1, 0x06d3, 0x06d6, 0x06ec, 0x06f6, 0x06fc, + 0x0702, 0x0709, 0x0712, 0x071e, 0x0727, 0x072c, 0x0736, 0x073d, + 0x0746, 0x074b, 0x0751, 0x0755, 0x075a, 0x0760, 0x076d, 0x0776, + 0x077b, 0x077f, 0x078a, 0x078d, 0x0794, 0x079f, 0x07a8, 0x07ac, + 0x07b3, 0x07b7, 0x07bd, 0x07c3, 0x07c8, 0x07cc, 0x07d0, 0x07d7, + 0x07dc, 0x07e1, 0x07e7, 0x07ec, 0x07f3, 0x07f9, 0x0800, 0x080e, + 0x0816, 0x081a, 0x0828, 0x082f, 0x0838, 0x0841, 0x084c, 0x0859, + // Entry 100 - 13F + 0x0861, 0x0869, 0x087b, 0x0884, 0x088a, 0x0892, 0x0897, 0x089f, + 0x08a5, 0x08ab, 0x08b0, 0x08b5, 0x08ba, 0x08ca, 0x08d6, 0x08db, + 0x08f2, 0x08fc, 0x0901, 0x0907, 0x090b, 0x090f, 0x091a, 0x092b, + 0x0931, 0x0935, 0x094b, 0x095b, 0x0961, 0x0972, 0x0976, 0x097f, + 0x0991, 0x0994, 0x09a7, 0x09be, 0x09cd, 0x09d6, 0x09e2, 0x09f0, + 0x09f8, 0x09fa, 0x0a03, 0x0a0f, 0x0a13, 0x0a18, 0x0a2a, 0x0a2e, + 0x0a3b, 0x0a43, 0x0a5f, 0x0a73, 0x0a82, 0x0a87, 0x0a90, 0x0a96, + 0x0a9b, 0x0aa8, 0x0abc, 0x0ac1, 0x0ac7, 0x0acc, 0x0ad5, 0x0ada, + // Entry 140 - 17F + 0x0ae8, 0x0af3, 0x0b01, 0x0b0b, 0x0b13, 0x0b18, 0x0b27, 0x0b35, + 0x0b39, 0x0b3d, 0x0b43, 0x0b48, 0x0b52, 0x0b5f, 0x0b72, 0x0b78, + 0x0b7e, 0x0b85, 0x0b96, 0x0ba7, 0x0bb3, 0x0bc0, 0x0bca, 0x0bd0, + 0x0bd3, 0x0bd8, 0x0bdc, 0x0be6, 0x0bed, 0x0bf1, 0x0bf8, 0x0c04, + 0x0c0b, 0x0c0f, 0x0c17, 0x0c1c, 0x0c23, 0x0c2f, 0x0c3b, 0x0c47, + 0x0c4b, 0x0c53, 0x0c5b, 0x0c67, 0x0c6e, 0x0c76, 0x0c7c, 0x0c8d, + 0x0c91, 0x0c9a, 0x0ca3, 0x0ca9, 0x0cb1, 0x0cb6, 0x0cc5, 0x0ccd, + 0x0cd4, 0x0cda, 0x0cdf, 0x0ce5, 0x0cea, 0x0cf1, 0x0d03, 0x0d0a, + // Entry 180 - 1BF + 0x0d11, 0x0d19, 0x0d23, 0x0d28, 0x0d2c, 0x0d36, 0x0d3f, 0x0d49, + 0x0d50, 0x0d55, 0x0d58, 0x0d5e, 0x0d63, 0x0d6f, 0x0d74, 0x0d7f, + 0x0d83, 0x0d89, 0x0d91, 0x0d98, 0x0da0, 0x0da5, 0x0da9, 0x0db4, + 0x0dba, 0x0dbf, 0x0dc3, 0x0dcb, 0x0de2, 0x0df0, 0x0df7, 0x0dfd, + 0x0e08, 0x0e16, 0x0e1e, 0x0e29, 0x0e2e, 0x0e3f, 0x0e46, 0x0e56, + 0x0e5b, 0x0e67, 0x0e6e, 0x0e76, 0x0e7b, 0x0e80, 0x0e8c, 0x0e9c, + 0x0ea4, 0x0ea8, 0x0eb8, 0x0ebe, 0x0ec2, 0x0ec8, 0x0ecf, 0x0ed5, + 0x0ede, 0x0ee5, 0x0eef, 0x0ef5, 0x0efb, 0x0f06, 0x0f0a, 0x0f17, + // Entry 1C0 - 1FF + 0x0f1f, 0x0f27, 0x0f2c, 0x0f31, 0x0f36, 0x0f49, 0x0f53, 0x0f5f, + 0x0f67, 0x0f71, 0x0f7b, 0x0f86, 0x0f9c, 0x0fa8, 0x0fb4, 0x0fc6, + 0x0fd1, 0x0fdc, 0x0fef, 0x0ff8, 0x1000, 0x100e, 0x1015, 0x1030, + 0x103a, 0x1041, 0x104b, 0x1055, 0x1064, 0x1069, 0x1070, 0x1077, + 0x107e, 0x1085, 0x108c, 0x108f, 0x1096, 0x109e, 0x10af, 0x10b6, + 0x10bb, 0x10c2, 0x10cc, 0x10d3, 0x10d8, 0x10e1, 0x10e6, 0x10f5, + 0x1106, 0x110c, 0x1110, 0x1114, 0x111a, 0x1129, 0x1138, 0x1142, + 0x114b, 0x1154, 0x1163, 0x1169, 0x117b, 0x1182, 0x118d, 0x1196, + // Entry 200 - 23F + 0x11a0, 0x11aa, 0x11b1, 0x11be, 0x11ca, 0x11cf, 0x11d3, 0x11e5, + 0x11eb, 0x11ef, 0x11f7, 0x11fe, 0x120f, 0x1219, 0x1222, 0x1228, + 0x122d, 0x1231, 0x1237, 0x123c, 0x1241, 0x1244, 0x124b, 0x1252, + 0x125b, 0x1262, 0x126c, 0x1274, 0x127f, 0x1288, 0x128e, 0x1294, + 0x129c, 0x12a5, 0x12ab, 0x12b2, 0x12b8, 0x12bf, 0x12c5, 0x12d7, + 0x12e0, 0x12eb, 0x12f2, 0x12f8, 0x12fb, 0x1305, 0x1309, 0x1317, + 0x132a, 0x132f, 0x1334, 0x1339, 0x133f, 0x1345, 0x134a, 0x134f, + 0x1357, 0x1362, 0x136c, 0x1374, 0x1378, 0x137b, 0x1381, 0x1388, + // Entry 240 - 27F + 0x138d, 0x1396, 0x139e, 0x13aa, 0x13b9, 0x13c2, 0x13c8, 0x13e7, + 0x13eb, 0x1401, 0x1407, 0x141e, 0x142c, 0x1440, 0x145c, 0x1473, + 0x1486, 0x149b, 0x14b0, 0x14cc, 0x14e1, 0x14f7, 0x14f7, 0x150b, + 0x1522, 0x1533, 0x153b, 0x1550, 0x1563, 0x156c, 0x157e, 0x158b, + 0x15a4, 0x15b5, +} // Size: 1244 bytes + +var ukLangStr string = "" + // Size: 9058 bytes + "афарÑькаабхазькаавеÑтійÑькаафрикаанÑаканамхарÑькаарагонÑькаарабÑькааÑÑам" + + "ÑькааварÑькааймараазербайджанÑькабашкирÑькабілоруÑькаболгарÑькабіÑламаб" + + "амбарабенгальÑькатибетÑькабретонÑькабоÑнійÑькакаталонÑькачеченÑькачамор" + + "рокорÑиканÑькакрічеÑькацерковноÑлов’ÑнÑькачуваÑькаваллійÑькаданÑьканіме" + + "цькадівехідзонг-кеевегрецькаанглійÑькаеÑперантоіÑпанÑькаеÑтонÑькабаÑкÑÑŒ" + + "каперÑькафулафінÑькафіджіфарерÑькафранцузьказахіднофризькаірландÑькагае" + + "льÑькагаліÑійÑькагуаранігуджаратіменкÑькахауÑаівритгіндіхірі-мотухорват" + + "ÑькагаїтÑнÑькаугорÑькавірменÑькагерероінтерлінгваіндонезійÑькаінтерлінг" + + "веігбоÑичуаньінупіакідоіÑландÑькаіталійÑькаінуктітутÑпонÑькаÑванÑькагру" + + "зинÑькаконґолезькакікуйюкунамаказахÑькакалаалліÑуткхмерÑькаканнадакорей" + + "ÑькаканурікашмірÑькакурдÑькакомікорнійÑькакиргизькалатинÑькалюкÑембурзь" + + "кагандалімбургійÑькалінгалалаоÑькалитовÑькалуба-катангалатвійÑькамалага" + + "ÑійÑькамаршалльÑькамаорімакедонÑькамалаÑламмонгольÑькамаратхімалайÑькам" + + "альтійÑькабірманÑьканаурундебелє північнанепальÑькандонгаголландÑьканюн" + + "ошк (ÐорвегіÑ)букмол (ÐорвегіÑ)ндебелє південнанавахоньÑнджаокитаноджіб" + + "ваоромооріÑоÑетинÑькапанджабіпаліпольÑькапуштупортугальÑькакечуаретором" + + "анÑькарундірумунÑькароÑійÑькакіньÑруандаÑанÑкритÑардинÑькаÑіндхіÑаамÑьк" + + "а північнаÑангоÑингальÑькаÑловацькаÑловенÑькаÑамоанÑькашонаÑомаліалбанÑ" + + "ькаÑербÑькаÑÑ–ÑватіÑото південнаÑунданÑькашведÑькаÑуахілітамільÑькателуг" + + "утаджицькатайÑькатигриньÑтуркменÑькатÑванатонганÑькатурецькатÑонгататар" + + "ÑькатаїтÑнÑькауйгурÑькаукраїнÑькаурдуузбецькавендавʼєтнамÑькаволап’юква" + + "ллонÑькаволофкхоÑаідишйорубачжуанкитайÑьказулуÑькаачехÑькаачоліадангмеа" + + "дигейÑькаафрихіліагемайнÑькааккадÑькаалабамаалеутÑькапівденноалтайÑькад" + + "авньоанглійÑькаангікаарамейÑькаарауканÑькаараонаарапахоалжирÑька арабÑÑŒ" + + "кааравакÑькааÑуамериканÑька мова рухіваÑтурÑькаавадхібалучібалійÑькабае" + + "рішбаÑабамумбатак тобагомалабеджабембабетавібенабафутбадагаÑхіднобелудж" + + "ійÑькабходжпурібікольÑькабінібанджарÑькакомÑікÑікабахтіарібраджбодоакуÑ" + + "бурÑÑ‚ÑькабугійÑькабулублінмедумбакаддокарібÑькакайюгаатÑамÑебуанÑькакіг" + + "ачібчачагатайÑькачуукÑькамарійÑькачинук жаргончокточіпев’Ñнчерокічейєнн" + + "курдÑька (Ñорані)коптÑькакримÑькотатарÑькакашубÑькадакотадаргінÑькатаіт" + + "аделаварÑькаÑлейвдогрибÑькадінкаджермадогрінижньолужицькадуалаÑередньон" + + "ідерландÑькадьола-фонідіуладазагаембуефікдавньоєгипетÑькаекаджукеламÑьк" + + "аÑередньоанглійÑькаевондофангфіліппінÑькафонÑередньофранцузькадавньофра" + + "нцузькаарпітанÑькафризька північнафризька ÑхіднафріульÑькагагагаузькага" + + "йогбайÑгєезгільбертÑькаÑередньоверхньонімецькадавньоверхньонімецькагонд" + + "ігоронталоготÑькагребодавньогрецьканімецька (ШвейцаріÑ)гуÑіїкучінхайдаг" + + "авайÑькахілігайнонхітітіхмонгверхньолужицькахупаібанÑькаібібіоілоканÑьк" + + "аінгуÑькаложбаннгомбамачамеіудео-перÑькаіудео-арабÑькакаракалпацькакабі" + + "льÑькакачінйюкамбакавікабардинÑькаканембутіапмакондекабувердіанукорокха" + + "ÑіхотаноÑакÑькакойра чіїнікакокаленджинкімбундукомі-перм’Ñцькаконканіко" + + "Ñраекпеллєкарачаєво-балкарÑькакарельÑькакурукхшамбалабафіаколоніанкумиц" + + "ькакутенаїладінолангіландаламбалезгінÑькалакотамонголозіпівнічна лурÑьк" + + "алуба-лулуалуїÑеньолундалуолушейлуйÑмадурÑькамафамагадхімайтхілімакаÑар" + + "ÑькамандінгомаÑаїмабамокшамандарÑькамендемерумаврикійÑька креольÑькаÑер" + + "едньоірландÑькамакува-меетометамікмакмінангкабауманчжурÑькаманіпурімага" + + "вкмоÑÑімундангдекілька мовкрікмірандÑькамарварімиінерзÑмазандеранÑькане" + + "аполітанÑьканаманижньонімецьканеварініаÑьканіуеао нагаквазіонгємбуннога" + + "йÑькадавньонорвезьканкоÑото північнануерневарі клаÑичнаньÑмвезіньÑнколе" + + "ньоронзімаоÑейджоÑманÑькапангаÑінанÑькапехлевіпампангапап’Ñментопалауан" + + "ÑькадавньоперÑькафінікійÑько-пунічнапонапедавньопрованÑальÑькакічераджа" + + "ÑтханірапануїраротонгаромбоциганÑькаарумунÑькарваÑандавеÑкутÑькаÑамарит" + + "ÑнÑька арамейÑькаÑамбуруÑаÑакÑькаÑантальÑькангамбайÑангуÑицилійÑькашотл" + + "андÑькапівденнокурдÑькаÑенекаÑенаÑелькупÑькакойраборо ÑенідавньоірландÑ" + + "ькатачелітшанÑькачадійÑька арабÑькаÑідамопівденноÑаамÑькаÑаамÑька лулеÑ" + + "аамÑька інаріÑаамÑька ÑкольтÑонінкеÑогдійÑькаÑранан тонгоÑерерÑахоÑукум" + + "аÑуÑушумерÑькакоморÑькаÑирійÑька клаÑичнаÑирійÑькатемнетеÑотеренотетумт" + + "игретівтокелауклінгонтлінгіттамашекньÑÑа тонгаток-піÑінтарокоцимшиантум" + + "букатувалутаÑавактувинÑькацентральномароканÑька тамазітудмуртÑькаугарит" + + "ÑькаумбундукоріньваїводÑькавуньовалзерÑькаваламоварайвашовалпірікалмиць" + + "каÑогаÑоÑпÑнгбенємбакантонÑькаÑапотекÑькабліÑÑа мовазенагаÑтандартна ма" + + "рокканÑька берберÑьказуньїнемає мовного вміÑтузазакіÑучаÑна Ñтандартна " + + "арабÑькапівденноазербайджанÑькаверхньонімецька (ШвейцаріÑ)англійÑька бр" + + "итанÑькаіÑпанÑька (Європа)нижньоÑакÑонÑькафламандÑькапортугальÑька (Євр" + + "опа)молдавÑькаÑербÑько-хорватÑькаконгійÑьке ÑуахілікитайÑька Ñпрощенаки" + + "тайÑька традиційна" + +var ukLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0020, 0x0036, 0x0048, 0x0050, 0x0062, 0x0076, + 0x0086, 0x0098, 0x00a8, 0x00b4, 0x00d2, 0x00e6, 0x00fa, 0x010e, + 0x011c, 0x012a, 0x0140, 0x0152, 0x0166, 0x017a, 0x0190, 0x01a2, + 0x01b0, 0x01c8, 0x01ce, 0x01da, 0x0201, 0x0211, 0x0225, 0x0233, + 0x0243, 0x024f, 0x025e, 0x0264, 0x0272, 0x0286, 0x0298, 0x02aa, + 0x02bc, 0x02cc, 0x02da, 0x02e2, 0x02f0, 0x02fa, 0x030c, 0x0320, + 0x033c, 0x0350, 0x0362, 0x0378, 0x0386, 0x0398, 0x03a8, 0x03b2, + 0x03bc, 0x03c6, 0x03d7, 0x03eb, 0x03ff, 0x040f, 0x0423, 0x042f, + // Entry 40 - 7F + 0x0445, 0x045f, 0x0475, 0x047d, 0x048b, 0x0499, 0x049f, 0x04b3, + 0x04c7, 0x04d9, 0x04e9, 0x04f9, 0x050d, 0x0523, 0x052f, 0x053b, + 0x054d, 0x0563, 0x0575, 0x0583, 0x0595, 0x05a1, 0x05b5, 0x05c5, + 0x05cd, 0x05e1, 0x05f3, 0x0605, 0x061f, 0x0629, 0x0643, 0x0651, + 0x065f, 0x0671, 0x0688, 0x069c, 0x06b6, 0x06ce, 0x06d8, 0x06ee, + 0x06fe, 0x0714, 0x0722, 0x0734, 0x074a, 0x075e, 0x0768, 0x0787, + 0x079b, 0x07a7, 0x07bd, 0x07dc, 0x07fb, 0x081a, 0x0826, 0x0834, + 0x0840, 0x084e, 0x0858, 0x0860, 0x0874, 0x0884, 0x088c, 0x089c, + // Entry 80 - BF + 0x08a6, 0x08c0, 0x08ca, 0x08e4, 0x08ee, 0x0900, 0x0912, 0x0928, + 0x0938, 0x094c, 0x0958, 0x0979, 0x0983, 0x0999, 0x09ab, 0x09bf, + 0x09d3, 0x09db, 0x09e7, 0x09f9, 0x0a09, 0x0a17, 0x0a30, 0x0a44, + 0x0a54, 0x0a62, 0x0a76, 0x0a82, 0x0a94, 0x0aa2, 0x0ab2, 0x0ac8, + 0x0ad4, 0x0ae8, 0x0af8, 0x0b04, 0x0b16, 0x0b2a, 0x0b3c, 0x0b50, + 0x0b58, 0x0b68, 0x0b72, 0x0b88, 0x0b99, 0x0bad, 0x0bb7, 0x0bc1, + 0x0bc9, 0x0bd5, 0x0bdf, 0x0bf1, 0x0c01, 0x0c11, 0x0c1b, 0x0c29, + 0x0c3d, 0x0c3d, 0x0c4d, 0x0c55, 0x0c63, 0x0c75, 0x0c83, 0x0c95, + // Entry C0 - FF + 0x0c95, 0x0cb7, 0x0cd7, 0x0ce3, 0x0cf7, 0x0d0d, 0x0d19, 0x0d27, + 0x0d4a, 0x0d5e, 0x0d5e, 0x0d5e, 0x0d64, 0x0d90, 0x0da2, 0x0da2, + 0x0dae, 0x0dba, 0x0dcc, 0x0dd8, 0x0de0, 0x0dea, 0x0dfd, 0x0e09, + 0x0e13, 0x0e1d, 0x0e29, 0x0e31, 0x0e3b, 0x0e47, 0x0e6b, 0x0e7d, + 0x0e91, 0x0e99, 0x0eaf, 0x0eb5, 0x0ec3, 0x0ec3, 0x0ed3, 0x0edd, + 0x0edd, 0x0ee5, 0x0eed, 0x0eff, 0x0f11, 0x0f19, 0x0f21, 0x0f2f, + 0x0f39, 0x0f4b, 0x0f57, 0x0f61, 0x0f75, 0x0f7d, 0x0f87, 0x0f9d, + 0x0fad, 0x0fbf, 0x0fd6, 0x0fe0, 0x0ff1, 0x0ffd, 0x1009, 0x1028, + // Entry 100 - 13F + 0x1038, 0x1038, 0x105a, 0x106c, 0x1078, 0x108c, 0x1096, 0x10ac, + 0x10b6, 0x10ca, 0x10d4, 0x10e0, 0x10ea, 0x1106, 0x1106, 0x1110, + 0x113a, 0x114d, 0x1157, 0x1163, 0x116b, 0x1173, 0x1173, 0x1193, + 0x11a1, 0x11b1, 0x11d5, 0x11d5, 0x11e1, 0x11e1, 0x11e9, 0x1201, + 0x1201, 0x1207, 0x1207, 0x122b, 0x124b, 0x1261, 0x1280, 0x129b, + 0x12af, 0x12b3, 0x12c5, 0x12c5, 0x12cd, 0x12d7, 0x12d7, 0x12df, + 0x12f7, 0x12f7, 0x1325, 0x134f, 0x134f, 0x1359, 0x136b, 0x1379, + 0x1383, 0x139d, 0x13c2, 0x13c2, 0x13c2, 0x13cc, 0x13d6, 0x13e0, + // Entry 140 - 17F + 0x13e0, 0x13f2, 0x13f2, 0x1406, 0x1412, 0x141c, 0x143a, 0x143a, + 0x1442, 0x1452, 0x145e, 0x1472, 0x1482, 0x1482, 0x1482, 0x148e, + 0x149a, 0x14a6, 0x14bf, 0x14da, 0x14da, 0x14f4, 0x1508, 0x1512, + 0x1516, 0x1520, 0x1528, 0x1540, 0x154e, 0x1556, 0x1564, 0x157c, + 0x157c, 0x1584, 0x1584, 0x158e, 0x15a8, 0x15bd, 0x15bd, 0x15bd, + 0x15c5, 0x15d7, 0x15e7, 0x1605, 0x1613, 0x161f, 0x162b, 0x1652, + 0x1652, 0x1652, 0x1666, 0x1672, 0x1680, 0x168a, 0x169a, 0x16aa, + 0x16b8, 0x16c4, 0x16ce, 0x16d8, 0x16e2, 0x16f6, 0x16f6, 0x16f6, + // Entry 180 - 1BF + 0x16f6, 0x1702, 0x1702, 0x170c, 0x1714, 0x1733, 0x1733, 0x1746, + 0x1756, 0x1760, 0x1766, 0x1770, 0x1778, 0x1778, 0x1778, 0x178a, + 0x1792, 0x17a0, 0x17b0, 0x17c6, 0x17d6, 0x17e0, 0x17e8, 0x17f2, + 0x1806, 0x1810, 0x1818, 0x1845, 0x1869, 0x1880, 0x1888, 0x1894, + 0x18aa, 0x18c0, 0x18d0, 0x18dc, 0x18e6, 0x18e6, 0x18f4, 0x190b, + 0x1913, 0x1927, 0x1935, 0x1935, 0x193d, 0x1945, 0x1961, 0x1961, + 0x197d, 0x1985, 0x19a1, 0x19ad, 0x19bb, 0x19c3, 0x19d0, 0x19dc, + 0x19ea, 0x19fc, 0x1a1a, 0x1a1a, 0x1a20, 0x1a39, 0x1a41, 0x1a5e, + // Entry 1C0 - 1FF + 0x1a6e, 0x1a7e, 0x1a88, 0x1a92, 0x1a9e, 0x1ab0, 0x1acc, 0x1ada, + 0x1aea, 0x1aff, 0x1b15, 0x1b15, 0x1b15, 0x1b15, 0x1b2f, 0x1b2f, + 0x1b54, 0x1b54, 0x1b54, 0x1b60, 0x1b60, 0x1b88, 0x1b90, 0x1b90, + 0x1ba6, 0x1bb4, 0x1bc6, 0x1bc6, 0x1bc6, 0x1bd0, 0x1be2, 0x1be2, + 0x1be2, 0x1be2, 0x1bf6, 0x1bfc, 0x1c0a, 0x1c1a, 0x1c49, 0x1c57, + 0x1c69, 0x1c7f, 0x1c7f, 0x1c8d, 0x1c97, 0x1cad, 0x1cc3, 0x1cc3, + 0x1ce3, 0x1cef, 0x1cf7, 0x1cf7, 0x1d0d, 0x1d28, 0x1d48, 0x1d48, + 0x1d56, 0x1d64, 0x1d87, 0x1d93, 0x1d93, 0x1d93, 0x1db3, 0x1dcc, + // Entry 200 - 23F + 0x1de7, 0x1e04, 0x1e12, 0x1e26, 0x1e3d, 0x1e47, 0x1e4f, 0x1e4f, + 0x1e5b, 0x1e63, 0x1e75, 0x1e87, 0x1eaa, 0x1ebc, 0x1ebc, 0x1ebc, + 0x1ec6, 0x1ece, 0x1eda, 0x1ee4, 0x1eee, 0x1ef4, 0x1f02, 0x1f02, + 0x1f10, 0x1f1e, 0x1f1e, 0x1f2c, 0x1f41, 0x1f52, 0x1f52, 0x1f5e, + 0x1f5e, 0x1f6c, 0x1f6c, 0x1f7a, 0x1f86, 0x1f94, 0x1fa6, 0x1fdf, + 0x1ff3, 0x2007, 0x2015, 0x2021, 0x2027, 0x2027, 0x2027, 0x2027, + 0x2027, 0x2035, 0x2035, 0x203f, 0x2053, 0x205f, 0x2069, 0x2071, + 0x207f, 0x207f, 0x2091, 0x2091, 0x2099, 0x209d, 0x20a1, 0x20ad, + // Entry 240 - 27F + 0x20b5, 0x20b5, 0x20c9, 0x20df, 0x20f4, 0x20f4, 0x2100, 0x2142, + 0x214c, 0x2172, 0x217e, 0x21b2, 0x21e0, 0x21e0, 0x2213, 0x2213, + 0x2213, 0x223c, 0x223c, 0x223c, 0x225d, 0x225d, 0x225d, 0x225d, + 0x225d, 0x227d, 0x2293, 0x2293, 0x22bc, 0x22d0, 0x22f5, 0x2318, + 0x233b, 0x2362, +} // Size: 1244 bytes + +var urLangStr string = "" + // Size: 3619 bytes + "ابقازیانایÙریکانزاکانامÛاریعربیآسامیایماراآزربائیجانیباشکیربیلاروسیبلغار" + + "یبمبارابنگالیتبتیبریٹنبوسنیکیٹالانچیچنکوراسیکنچیکچوواشویلشڈینشجرمنڈیویÛ" + + "یژونگکھاایویونانیانگریزیایسپرانٹوÛسپانویاسٹونینباسکیÙارسیÙینیشÙجیÙیروئی" + + "زÙرانسیسیمغربی ÙریسیئنآئیرÙشسکاٹ گیلÙکگالیشیائیگÙارانیگجراتیمینکسÛؤساعب" + + "رانیÛندیکراتیÛیتیÛنگیرینارمینیبین لسانیاتانڈونیثیائیاÙگبوسچوان ایآئس Ù„ÛŒ" + + "نڈکاطالویاینÙکٹیٹٹجاپانیجاویجارجیکانگوکیکویوقزاخكالاليستخمیرکنّاڈاکوریا" + + "ئیکشمیریکردشکورنشکرغیزیلاطینیلگژمبرگشگینڈالÙنگَلالاؤلتھÙواینینلبا-كاتان" + + "جالیٹوینملاگاسیماؤریمقدونیائیمالایالممنگؤلیمراٹهیمالائیمالٹیبرمیشمالی د" + + "بیلنیپالیڈچنورویجینی نینورسکنارویجین بوکملنیانجاآكسیٹاناورومواورÙیااوسی" + + "ٹکپنجابیپولستانیپشتوپÙرتگالیکویچوآرومانشرونڈیرومینینروسیکینیاروانڈاسَنس" + + "کرÙتسندھیشمالی سامیساںغوسنÛالاسلوواکسلووینیائیساموآنشوناصومالیالبانیصرب" + + "یسواتیجنوبی سوتھوسنڈانیزسویڈشسواحلیتملتیلگوتاجکتھائیٹگرینیاترکمانسواناٹ" + + "ونگنترکیزونگاتاتارتاÛیتییوئگÛریوکرینیائیاردوازبیکوینڈاویتنامیوولوÙژوسای" + + "دشیوروباچینیزولواکولیاغمماپوچےآسوبیمبابینامغربی بلوچیبوڈوچیگاچیروکیسورا" + + "Ù†ÛŒ کردشتائتازرماذیلی سربیائیدوالاجولا ÙونياامبوایÙÙÚ©Ùلیپینوگاغاغاوزسوئس" + + " جرمنگسیÛوائیاپر سربیائینگومباماشیمقبائلیکامباماكوندهكابويرديانوكويرا شي" + + "نيكالينجينکومی پرمیاککونکنیشامبالاباÙيالانگیلاکوٹالوزیشمالی لریلیوبا لو" + + "لوآلولویاماسایمیروموریسیینماخاوا-ميتومیٹاموÛاکمنڈانگمزندرانیناماادنی جر" + + "منكوايسواینکوشمالی سوتھونویرنینکولكيشیرومبورواسامبوروسانگوجنوبی کردسینا" + + "كويرابورو سينیتشلحيتجنوبی سامیلول سامیاناری سامیسکولٹ سامیتیسوٹیٹمکلنگن" + + "ٹوک Ù¾ÙسÙنٹمبوکاتاساواقسینٹرل ایٹلس ٹمازائٹنامعلوم زبانوائیونجووارلپیریس" + + "وگااسٹینڈرڈ مراقشی تمازیقیکوئی لسانی مواد Ù†Ûیںماڈرن اسٹینڈرڈ عربیجنوبی " + + "آزربائیجانیآسٹریائی جرمنسوئس Ûائی جرمنآسٹریلیائی انگریزیکینیڈین انگریزی" + + "برطانوی انگریزیامریکی انگریزیلاطینی امریکی Ûسپانوییورپی Ûسپانویمیکسیکن " + + "Ûسپانویکینیڈین Ùرانسیسیسوئس Ùرینچادنی سیکسنÙلیمÙشبرازیلی پرتگالییورپی Ù¾" + + "رتگالیمالدوواسربو-کروئیشینکانگو سواحلیچینی (آسان کردÛ)روایتی چینی" + +var urLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x002a, 0x0036, 0x0036, + 0x003e, 0x0048, 0x0048, 0x0054, 0x006a, 0x0076, 0x0086, 0x0092, + 0x0092, 0x009e, 0x00aa, 0x00b2, 0x00bc, 0x00c6, 0x00d4, 0x00dc, + 0x00dc, 0x00ec, 0x00ec, 0x00f2, 0x00f2, 0x00fc, 0x0104, 0x010c, + 0x0114, 0x0120, 0x012e, 0x0134, 0x0140, 0x014e, 0x0160, 0x016e, + 0x017c, 0x0186, 0x0190, 0x0190, 0x019a, 0x01a0, 0x01ae, 0x01be, + 0x01d7, 0x01e3, 0x01f6, 0x0208, 0x0216, 0x0222, 0x022c, 0x0234, + 0x0240, 0x0248, 0x0248, 0x0252, 0x025a, 0x0268, 0x0274, 0x0274, + // Entry 40 - 7F + 0x0289, 0x029f, 0x029f, 0x02a9, 0x02b8, 0x02b8, 0x02b8, 0x02c9, + 0x02d5, 0x02e7, 0x02f3, 0x02fb, 0x0305, 0x030f, 0x031b, 0x031b, + 0x0323, 0x0333, 0x033b, 0x0347, 0x0355, 0x0355, 0x0361, 0x0369, + 0x0369, 0x0373, 0x037f, 0x038b, 0x039b, 0x03a5, 0x03a5, 0x03b3, + 0x03b9, 0x03cd, 0x03e2, 0x03ee, 0x03fc, 0x03fc, 0x0406, 0x0418, + 0x0428, 0x0434, 0x0440, 0x044c, 0x0456, 0x045e, 0x045e, 0x0471, + 0x047d, 0x047d, 0x0481, 0x04a2, 0x04bd, 0x04bd, 0x04bd, 0x04c9, + 0x04d7, 0x04d7, 0x04e3, 0x04ef, 0x04fb, 0x0507, 0x0507, 0x0517, + // Entry 80 - BF + 0x051f, 0x052f, 0x053b, 0x0547, 0x0551, 0x055f, 0x0567, 0x057d, + 0x058d, 0x058d, 0x0597, 0x05aa, 0x05b4, 0x05c0, 0x05cc, 0x05e0, + 0x05ec, 0x05f4, 0x0600, 0x060c, 0x0614, 0x061e, 0x0633, 0x0641, + 0x064b, 0x0657, 0x065d, 0x0667, 0x066f, 0x0679, 0x0687, 0x0693, + 0x069d, 0x06a7, 0x06af, 0x06b9, 0x06c3, 0x06cf, 0x06db, 0x06ef, + 0x06f7, 0x0701, 0x070b, 0x0719, 0x0719, 0x0719, 0x0723, 0x072b, + 0x0731, 0x073d, 0x073d, 0x0745, 0x074d, 0x074d, 0x0757, 0x0757, + 0x0757, 0x0757, 0x0757, 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, + // Entry C0 - FF + 0x075d, 0x075d, 0x075d, 0x075d, 0x075d, 0x0769, 0x0769, 0x0769, + 0x0769, 0x0769, 0x0769, 0x0769, 0x076f, 0x076f, 0x076f, 0x076f, + 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, 0x076f, + 0x076f, 0x0779, 0x0779, 0x0781, 0x0781, 0x0781, 0x0796, 0x0796, + 0x0796, 0x0796, 0x0796, 0x0796, 0x0796, 0x0796, 0x0796, 0x0796, + 0x0796, 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, + 0x079e, 0x079e, 0x079e, 0x079e, 0x079e, 0x07a6, 0x07a6, 0x07a6, + 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07a6, 0x07b2, 0x07b2, 0x07c7, + // Entry 100 - 13F + 0x07c7, 0x07c7, 0x07c7, 0x07c7, 0x07c7, 0x07c7, 0x07d1, 0x07d1, + 0x07d1, 0x07d1, 0x07d1, 0x07d9, 0x07d9, 0x07f0, 0x07f0, 0x07fa, + 0x07fa, 0x080d, 0x080d, 0x080d, 0x0815, 0x081f, 0x081f, 0x081f, + 0x081f, 0x081f, 0x081f, 0x081f, 0x081f, 0x081f, 0x081f, 0x082d, + 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, 0x082d, + 0x082d, 0x0831, 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, + 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, 0x083d, + 0x083d, 0x083d, 0x084e, 0x084e, 0x084e, 0x0854, 0x0854, 0x0854, + // Entry 140 - 17F + 0x0854, 0x085e, 0x085e, 0x085e, 0x085e, 0x085e, 0x0873, 0x0873, + 0x0873, 0x0873, 0x0873, 0x0873, 0x0873, 0x0873, 0x0873, 0x0873, + 0x087f, 0x0889, 0x0889, 0x0889, 0x0889, 0x0889, 0x0895, 0x0895, + 0x0895, 0x089f, 0x089f, 0x089f, 0x089f, 0x089f, 0x08ad, 0x08c3, + 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08c3, 0x08d6, 0x08d6, 0x08d6, + 0x08d6, 0x08e6, 0x08e6, 0x08fb, 0x0907, 0x0907, 0x0907, 0x0907, + 0x0907, 0x0907, 0x0907, 0x0907, 0x0915, 0x091f, 0x091f, 0x091f, + 0x091f, 0x091f, 0x0929, 0x0929, 0x0929, 0x0929, 0x0929, 0x0929, + // Entry 180 - 1BF + 0x0929, 0x0935, 0x0935, 0x0935, 0x093d, 0x094e, 0x094e, 0x0963, + 0x0963, 0x0963, 0x0967, 0x0967, 0x096f, 0x096f, 0x096f, 0x096f, + 0x096f, 0x096f, 0x096f, 0x096f, 0x096f, 0x0979, 0x0979, 0x0979, + 0x0979, 0x0979, 0x0981, 0x0991, 0x0991, 0x09a6, 0x09ae, 0x09ae, + 0x09ae, 0x09ae, 0x09ae, 0x09b8, 0x09b8, 0x09b8, 0x09c4, 0x09c4, + 0x09c4, 0x09c4, 0x09c4, 0x09c4, 0x09c4, 0x09c4, 0x09d4, 0x09d4, + 0x09d4, 0x09dc, 0x09ed, 0x09ed, 0x09ed, 0x09ed, 0x09ed, 0x09f9, + 0x09f9, 0x09f9, 0x09f9, 0x09f9, 0x0a03, 0x0a18, 0x0a20, 0x0a20, + // Entry 1C0 - 1FF + 0x0a20, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, + 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, + 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a2c, 0x0a34, 0x0a34, + 0x0a34, 0x0a34, 0x0a34, 0x0a34, 0x0a34, 0x0a3e, 0x0a3e, 0x0a3e, + 0x0a3e, 0x0a3e, 0x0a3e, 0x0a44, 0x0a44, 0x0a44, 0x0a44, 0x0a52, + 0x0a52, 0x0a52, 0x0a52, 0x0a52, 0x0a5c, 0x0a5c, 0x0a5c, 0x0a5c, + 0x0a6d, 0x0a6d, 0x0a75, 0x0a75, 0x0a75, 0x0a90, 0x0a90, 0x0a90, + 0x0a9c, 0x0a9c, 0x0a9c, 0x0a9c, 0x0a9c, 0x0a9c, 0x0aaf, 0x0abe, + // Entry 200 - 23F + 0x0ad1, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, + 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, 0x0ae4, + 0x0ae4, 0x0aec, 0x0aec, 0x0af4, 0x0af4, 0x0af4, 0x0af4, 0x0af4, + 0x0afe, 0x0afe, 0x0afe, 0x0afe, 0x0afe, 0x0b0f, 0x0b0f, 0x0b0f, + 0x0b0f, 0x0b0f, 0x0b0f, 0x0b1b, 0x0b1b, 0x0b29, 0x0b29, 0x0b4f, + 0x0b4f, 0x0b4f, 0x0b4f, 0x0b66, 0x0b6e, 0x0b6e, 0x0b6e, 0x0b6e, + 0x0b6e, 0x0b6e, 0x0b6e, 0x0b76, 0x0b76, 0x0b76, 0x0b76, 0x0b76, + 0x0b86, 0x0b86, 0x0b86, 0x0b86, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, + // Entry 240 - 27F + 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0b8e, 0x0bba, + 0x0bba, 0x0bdf, 0x0bdf, 0x0c03, 0x0c24, 0x0c3d, 0x0c57, 0x0c7a, + 0x0c97, 0x0cb4, 0x0ccf, 0x0cf7, 0x0d10, 0x0d2d, 0x0d2d, 0x0d4c, + 0x0d5f, 0x0d72, 0x0d7e, 0x0d9b, 0x0db4, 0x0dc2, 0x0ddb, 0x0df2, + 0x0e0e, 0x0e23, +} // Size: 1244 bytes + +var uzLangStr string = "" + // Size: 1850 bytes + "abxazafrikaansakanamxararabassamozarbayjonboshqirdbelarusbolgarbambarben" + + "galtibetbretonbosniykatalanchechenkorsikanchexchuvashvalliydatnemischadz" + + "ongkaevegrekinglizchaesperantoispanchaestonchabaskforsfinchafijifarercha" + + "fransuzchag‘arbiy frizirlandgalisiyguaranigujarotmenxausaibroniyhindxorv" + + "atgaityanvengerarmanindonezigbosichuanislanditalyaninuktitutyaponyavangr" + + "uzinchakikuyuqozoqchagrenlandxmerchakannadakoreyschakashmirchakurdchakor" + + "nqirgÊ»izchalotinchalyuksemburgchagandalingalalaoschalitvaluba-katangalat" + + "ishchamalagasiymaorimakedonmalayalammo‘g‘ulmaratximalaymaltiybirmanshimo" + + "liy ndebelenepalgollandnorveg-nyunorsknorveg-bokmaloromooriyapanjobchapo" + + "lyakchapushtuportugalchakechuaromanshrundirumincharuschakinyaruandasansk" + + "ritsindxishimoliy saamsangosingalslovakchaslovenchashonasomalichaalbanse" + + "rbchasundanshvedsuaxilitamiltelugutojiktaytigrinyaturkmantonganturktatar" + + "uyg‘urukrainurduo‘zbekvyetnamvolofkxosayorubaxitoyzuluagemaraukanasubemb" + + "abenag‘arbiy belujibodochigacherokisorani-kurdtaitazarmaquyi sorbchadual" + + "adiola-fogniembufilipinchagagauznemis (Shveytsariya)gusiigavaychayuqori " + + "sorbngombamachamekabilkambamakondekabuverdianukoyra-chiinikalenjinkomi-p" + + "ermyakkonkanshambalabafiyalangilakotashimoliy luriluoluhyamasaymendemeru" + + "morisyenmaxuva-mittometamohaukmundangmazanderannamaquyi nemiskvasionkonu" + + "ernyankolekicheromboruandasamburusangujanubiy kurdsenakoyraboro-sennitas" + + "helxitjanubiy saamlule-saaminari-saamskolt-saamtesotasavaqmarkaziy atlas" + + " tamazigxtnoma’lum tilvaivunjovalbirisogatamazigxttil tarkibi yo‘qstanda" + + "rt arabnemis (Avstriya)yuqori nemis (Shveytsariya)ingliz (Avstraliya)ing" + + "liz (Kanada)ingliz (Britaniya)ingliz (Amerika)ispan (Lotin Amerikasi)isp" + + "an (Yevropa)ispan (Meksika)fransuz (Kanada)fransuz (Shveytsariya)quyi sa" + + "ksonflamandportugal (Braziliya)portugal (Yevropa)moldovankongo-suaxiliso" + + "ddalashgan xitoyan’anaviy xitoy" + +var uzLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0005, 0x0005, 0x000e, 0x0012, 0x0017, 0x0017, + 0x001b, 0x0020, 0x0020, 0x0020, 0x002a, 0x0032, 0x0039, 0x003f, + 0x003f, 0x0045, 0x004b, 0x0050, 0x0056, 0x005c, 0x0063, 0x006a, + 0x006a, 0x0072, 0x0072, 0x0076, 0x0076, 0x007d, 0x0083, 0x0086, + 0x008e, 0x008e, 0x0095, 0x0098, 0x009c, 0x00a5, 0x00ae, 0x00b6, + 0x00be, 0x00c2, 0x00c6, 0x00c6, 0x00cc, 0x00d0, 0x00d8, 0x00e2, + 0x00f0, 0x00f6, 0x00f6, 0x00fd, 0x0104, 0x010b, 0x010e, 0x0113, + 0x011a, 0x011e, 0x011e, 0x0124, 0x012b, 0x0131, 0x0136, 0x0136, + // Entry 40 - 7F + 0x0136, 0x013d, 0x013d, 0x0141, 0x0148, 0x0148, 0x0148, 0x014e, + 0x0155, 0x015e, 0x0163, 0x0168, 0x0171, 0x0171, 0x0177, 0x0177, + 0x017f, 0x0187, 0x018e, 0x0195, 0x019e, 0x019e, 0x01a8, 0x01af, + 0x01af, 0x01b3, 0x01be, 0x01c6, 0x01d4, 0x01d9, 0x01d9, 0x01e0, + 0x01e7, 0x01ec, 0x01f8, 0x0201, 0x020a, 0x020a, 0x020f, 0x0216, + 0x021f, 0x022a, 0x0231, 0x0236, 0x023c, 0x0242, 0x0242, 0x0252, + 0x0257, 0x0257, 0x025e, 0x026d, 0x027a, 0x027a, 0x027a, 0x027a, + 0x027a, 0x027a, 0x027f, 0x0284, 0x0284, 0x028d, 0x028d, 0x0296, + // Entry 80 - BF + 0x029c, 0x02a7, 0x02ad, 0x02b4, 0x02b9, 0x02c1, 0x02c7, 0x02d2, + 0x02da, 0x02da, 0x02e0, 0x02ed, 0x02f2, 0x02f8, 0x0301, 0x030a, + 0x030a, 0x030f, 0x0318, 0x031d, 0x0324, 0x0324, 0x0324, 0x032a, + 0x032f, 0x0336, 0x033b, 0x0341, 0x0346, 0x0349, 0x0351, 0x0358, + 0x0358, 0x035e, 0x0362, 0x0362, 0x0367, 0x0367, 0x036f, 0x0375, + 0x0379, 0x0381, 0x0381, 0x0388, 0x0388, 0x0388, 0x038d, 0x0392, + 0x0392, 0x0398, 0x0398, 0x039d, 0x03a1, 0x03a1, 0x03a1, 0x03a1, + 0x03a1, 0x03a1, 0x03a1, 0x03a5, 0x03a5, 0x03a5, 0x03a5, 0x03a5, + // Entry C0 - FF + 0x03a5, 0x03a5, 0x03a5, 0x03a5, 0x03a5, 0x03ac, 0x03ac, 0x03ac, + 0x03ac, 0x03ac, 0x03ac, 0x03ac, 0x03af, 0x03af, 0x03af, 0x03af, + 0x03af, 0x03af, 0x03af, 0x03af, 0x03af, 0x03af, 0x03af, 0x03af, + 0x03af, 0x03b4, 0x03b4, 0x03b8, 0x03b8, 0x03b8, 0x03c8, 0x03c8, + 0x03c8, 0x03c8, 0x03c8, 0x03c8, 0x03c8, 0x03c8, 0x03c8, 0x03c8, + 0x03c8, 0x03cc, 0x03cc, 0x03cc, 0x03cc, 0x03cc, 0x03cc, 0x03cc, + 0x03cc, 0x03cc, 0x03cc, 0x03cc, 0x03cc, 0x03d1, 0x03d1, 0x03d1, + 0x03d1, 0x03d1, 0x03d1, 0x03d1, 0x03d1, 0x03d8, 0x03d8, 0x03e3, + // Entry 100 - 13F + 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e3, 0x03e8, 0x03e8, + 0x03e8, 0x03e8, 0x03e8, 0x03ed, 0x03ed, 0x03f9, 0x03f9, 0x03fe, + 0x03fe, 0x0409, 0x0409, 0x0409, 0x040d, 0x040d, 0x040d, 0x040d, + 0x040d, 0x040d, 0x040d, 0x040d, 0x040d, 0x040d, 0x040d, 0x0417, + 0x0417, 0x0417, 0x0417, 0x0417, 0x0417, 0x0417, 0x0417, 0x0417, + 0x0417, 0x0417, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, + 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, 0x041d, + 0x041d, 0x041d, 0x0431, 0x0431, 0x0431, 0x0436, 0x0436, 0x0436, + // Entry 140 - 17F + 0x0436, 0x043e, 0x043e, 0x043e, 0x043e, 0x043e, 0x0449, 0x0449, + 0x0449, 0x0449, 0x0449, 0x0449, 0x0449, 0x0449, 0x0449, 0x0449, + 0x044f, 0x0456, 0x0456, 0x0456, 0x0456, 0x0456, 0x045b, 0x045b, + 0x045b, 0x0460, 0x0460, 0x0460, 0x0460, 0x0460, 0x0467, 0x0473, + 0x0473, 0x0473, 0x0473, 0x0473, 0x0473, 0x047f, 0x047f, 0x047f, + 0x047f, 0x0487, 0x0487, 0x0493, 0x0499, 0x0499, 0x0499, 0x0499, + 0x0499, 0x0499, 0x0499, 0x0499, 0x04a1, 0x04a7, 0x04a7, 0x04a7, + 0x04a7, 0x04a7, 0x04ac, 0x04ac, 0x04ac, 0x04ac, 0x04ac, 0x04ac, + // Entry 180 - 1BF + 0x04ac, 0x04b2, 0x04b2, 0x04b2, 0x04b2, 0x04bf, 0x04bf, 0x04bf, + 0x04bf, 0x04bf, 0x04c2, 0x04c2, 0x04c7, 0x04c7, 0x04c7, 0x04c7, + 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04c7, 0x04cc, 0x04cc, 0x04cc, + 0x04cc, 0x04d1, 0x04d5, 0x04dd, 0x04dd, 0x04e9, 0x04ed, 0x04ed, + 0x04ed, 0x04ed, 0x04ed, 0x04f3, 0x04f3, 0x04f3, 0x04fa, 0x04fa, + 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x04fa, 0x0504, 0x0504, + 0x0504, 0x0508, 0x0512, 0x0512, 0x0512, 0x0512, 0x0512, 0x0518, + 0x0518, 0x0518, 0x0518, 0x0518, 0x051b, 0x051b, 0x051f, 0x051f, + // Entry 1C0 - 1FF + 0x051f, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, + 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, + 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x0527, 0x052c, 0x052c, + 0x052c, 0x052c, 0x052c, 0x052c, 0x052c, 0x0531, 0x0531, 0x0531, + 0x0531, 0x0531, 0x0531, 0x0537, 0x0537, 0x0537, 0x0537, 0x053e, + 0x053e, 0x053e, 0x053e, 0x053e, 0x0543, 0x0543, 0x0543, 0x0543, + 0x054f, 0x054f, 0x0553, 0x0553, 0x0553, 0x0562, 0x0562, 0x0562, + 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x056b, 0x0577, 0x0580, + // Entry 200 - 23F + 0x058a, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, + 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, 0x0594, + 0x0594, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, + 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, + 0x0598, 0x0598, 0x0598, 0x0598, 0x0598, 0x059f, 0x059f, 0x05b7, + 0x05b7, 0x05b7, 0x05b7, 0x05c5, 0x05c8, 0x05c8, 0x05c8, 0x05c8, + 0x05c8, 0x05c8, 0x05c8, 0x05cd, 0x05cd, 0x05cd, 0x05cd, 0x05cd, + 0x05d4, 0x05d4, 0x05d4, 0x05d4, 0x05d8, 0x05d8, 0x05d8, 0x05d8, + // Entry 240 - 27F + 0x05d8, 0x05d8, 0x05d8, 0x05d8, 0x05d8, 0x05d8, 0x05d8, 0x05e1, + 0x05e1, 0x05f3, 0x05f3, 0x0600, 0x0600, 0x0610, 0x062b, 0x063e, + 0x064d, 0x065f, 0x066f, 0x0686, 0x0695, 0x06a4, 0x06a4, 0x06b4, + 0x06ca, 0x06d5, 0x06dc, 0x06f0, 0x0702, 0x070a, 0x070a, 0x0717, + 0x0729, 0x073a, +} // Size: 1244 bytes + +var viLangStr string = "" + // Size: 8556 bytes + "Tiếng AfarTiếng AbkhaziaTiếng AvestanTiếng Nam PhiTiếng AkanTiếng Amhari" + + "cTiếng AragonTiếng Ả RậpTiếng AssamTiếng AvaricTiếng AymaraTiếng Azerbai" + + "janTiếng BashkirTiếng BelarusTiếng BulgariaTiếng BislamaTiếng BambaraTiế" + + "ng BengaliTiếng Tây TạngTiếng BretonTiếng Nam TÆ°Tiếng CatalanTiếng Chech" + + "enTiếng ChamorroTiếng CorsicaTiếng CreeTiếng SécTiếng SlavÆ¡ Nhà thá»Tiếng" + + " ChuvashTiếng WalesTiếng Äan MạchTiếng ÄứcTiếng DivehiTiếng DzongkhaTiến" + + "g EweTiếng Hy LạpTiếng AnhTiếng Quốc Tế NgữTiếng Tây Ban NhaTiếng Estoni" + + "aTiếng BasqueTiếng Ba TÆ°Tiếng FulahTiếng Phần LanTiếng FijiTiếng FaoreTi" + + "ếng PhápTiếng FrisiaTiếng Ai-lenTiếng XentÆ¡ (Xcốt len)Tiếng GalicianTi" + + "ếng GuaraniTiếng GujaratiTiếng ManxTiếng HausaTiếng Do TháiTiếng Hindi" + + "Tiếng Hiri MotuTiếng CroatiaTiếng HaitiTiếng HungaryTiếng ArmeniaTiếng H" + + "ereroTiếng Khoa Há»c Quốc TếTiếng IndonesiaTiếng InterlingueTiếng IgboTiế" + + "ng Di Tứ XuyênTiếng InupiaqTiếng IdoTiếng IcelandTiếng ÃTiếng InuktitutT" + + "iếng NhậtTiếng JavaTiếng GruziaTiếng KongoTiếng KikuyuTiếng KuanyamaTiến" + + "g KazakhTiếng KalaallisutTiếng KhÆ¡-meTiếng KannadaTiếng HànTiếng KanuriT" + + "iếng KashmiriTiếng KurdTiếng KomiTiếng CornwallTiếng KyrgyzTiếng La-tinh" + + "Tiếng LuxembourgTiếng GandaTiếng LimburgTiếng LingalaTiếng LàoTiếng Lít-" + + "vaTiếng Luba-KatangaTiếng LatviaTiếng MalagasyTiếng MarshallTiếng MaoriT" + + "iếng MacedoniaTiếng MalayalamTiếng Mông CổTiếng MarathiTiếng MalaysiaTiế" + + "ng MaltTiếng Miến ÄiệnTiếng NauruTiếng Ndebele Miá»n BắcTiếng NepalTiếng " + + "NdongaTiếng Hà LanTiếng Na Uy (Nynorsk)Tiếng Na Uy (BokmÃ¥l)Tiếng Ndebele" + + " Miá»n NamTiếng NavajoTiếng NyanjaTiếng OccitanTiếng OjibwaTiếng OromoTiế" + + "ng OriyaTiếng OsseticTiếng PunjabTiếng PaliTiếng Ba LanTiếng PashtoTiếng" + + " Bồ Äào NhaTiếng QuechuaTiếng RomanshTiếng RundiTiếng RumaniTiếng NgaTiế" + + "ng KinyarwandaTiếng PhạnTiếng SardiniaTiếng SindhiTiếng Sami Miá»n BắcTiế" + + "ng SangoTiếng SinhalaTiếng SlovakTiếng SloveniaTiếng SamoaTiếng ShonaTiế" + + "ng SomaliTiếng An-ba-niTiếng SerbiaTiếng SwatiTiếng SesothoTiếng SundaTi" + + "ếng Thụy ÄiểnTiếng SwahiliTiếng TamilTiếng TeluguTiếng TajikTiếng Thái" + + "Tiếng TigrigyaTiếng TurkTiếng TswanaTiếng TongaTiếng Thổ NhÄ© KỳTiếng Tso" + + "ngaTiếng TatarTiếng TahitiTiếng UyghurTiếng UcrainaTiếng UÄ‘uTiếng UzbekT" + + "iếng VendaTiếng ViệtTiếng VolapükTiếng WalloonTiếng WolofTiếng XhosaTiến" + + "g Y-Ä‘itTiếng YorubaTiếng ZhuangTiếng TrungTiếng ZuluTiếng AchineseTiếng " + + "AcoliTiếng AdangmeTiếng AdygheTiếng AfrihiliTiếng AghemTiếng AinuTiếng A" + + "kkadiaTiếng AlabamaTiếng AleutTiếng Gheg AlbaniTiếng Altai Miá»n NamTiếng" + + " Anh cổTiếng AngikaTiếng AramaicTiếng AraucanianTiếng AraonaTiếng Arapah" + + "oTiếng Ả Rập AlgeriaTiếng ArawakTiếng Ả Rập Ai CậpTiếng AsuNgôn ngữ Ký h" + + "iệu MỹTiếng AsturiasTiếng AwadhiTiếng BaluchiTiếng BaliTiếng BavariaTiến" + + "g BasaaTiếng BamunTiếng Batak TobaTiếng GhomalaTiếng BejaTiếng BembaTiến" + + "g BetawiTiếng BenaTiếng BafutTiếng BadagaTiếng Tây BalochiTiếng Bhojpuri" + + "Tiếng BikolTiếng BiniTiếng BanjarTiếng KomTiếng SiksikaTiếng Bishnupriya" + + "Tiếng BakhtiariTiếng BrajTiếng BrahuiTiếng BodoTiếng AkooseTiếng BuriatT" + + "iếng BuginTiếng BuluTiếng BlinTiếng MedumbaTiếng CaddoTiếng CaribTiếng C" + + "ayugaTiếng AtsamTiếng CebuanoTiếng ChigaTiếng ChibchaTiếng ChagataiTiếng" + + " ChuukTiếng MariBiệt ngữ ChinookTiếng ChoctawTiếng ChipewyanTiếng Cherok" + + "eeTiếng CheyenneTiếng Kurd Miá»n TrungTiếng CopticTiếng CapiznonTiếng Thổ" + + " NhÄ© Kỳ CrimeanTiếng KashubiaTiếng DakotaTiếng DargwaTiếng TaitaTiếng De" + + "lawareTiếng SlaveTiếng DogribTiếng DinkaTiếng ZarmaTiếng DogriTiếng Hạ S" + + "orbiaTiếng Dusun Miá»n TrungTiếng DualaTiếng Hà Lan Trung cổTiếng Jola-Fo" + + "nyiTiếng DyulaTiếng DazagaTiếng EmbuTiếng EfikTiếng EmiliaTiếng Ai Cập c" + + "ổTiếng EkajukTiếng ElamiteTiếng Anh Trung cổTiếng Yupik Miá»n TrungTiến" + + "g EwondoTiếng ExtremaduraTiếng FangTiếng PhilipinTiếng FonTiếng Pháp Caj" + + "unTiếng Pháp Trung cổTiếng Pháp cổTiếng ArpitanTiếng Frisian Miá»n BắcTiế" + + "ng Frisian Miá»n ÄôngTiếng FriulianTiếng GaTiếng GagauzTiếng GayoTiếng Gb" + + "ayaTiếng GeezTiếng GilbertTiếng GilakiTiếng Thượng Giéc-man Trung cổTiến" + + "g Thượng Giéc-man cổTiếng Goan KonkaniTiếng GondiTiếng GorontaloTiếng Gô" + + "-tíchTiếng GreboTiếng Hy Lạp cổTiếng Äức (Thụy SÄ©)Tiếng FrafraTiếng Gusi" + + "iTiếng GwichʼinTiếng HaidaTiếng Trung HakkaTiếng HawaiiTiếng Fiji HindiT" + + "iếng HiligaynonTiếng HittiteTiếng HmôngTiếng Thượng SorbiaTiếng HupaTiến" + + "g IbanTiếng IbibioTiếng IlokoTiếng IngushTiếng IngriaTiếng Anh Jamaica C" + + "reoleTiếng LojbanTiếng NgombaTiếng MachameTiếng Judeo-Ba TÆ°Tiếng Judeo-Ả" + + " RậpTiếng JutishTiếng Kara-KalpakTiếng KabyleTiếng KachinTiếng JjuTiếng " + + "KambaTiếng KawiTiếng KabardianTiếng KanembuTiếng TyapTiếng MakondeTiếng " + + "KabuverdianuTiếng KoroTiếng KhasiTiếng KhotanTiếng Koyra ChiiniTiếng Kak" + + "oTiếng KalenjinTiếng KimbunduTiếng Komi-PermyakTiếng KonkaniTiếng Kosrae" + + "Tiếng KpelleTiếng Karachay-BalkarTiếng KarelianTiếng KurukhTiếng Shambal" + + "aTiếng BafiaTiếng CologneTiếng KumykTiếng KutenaiTiếng LadinoTiếng Langi" + + "Tiếng LahndaTiếng LambaTiếng LezghianTiếng LakotaTiếng MongoTiếng LoziTi" + + "ếng Bắc LuriTiếng Luba-LuluaTiếng LuisenoTiếng LundaTiếng LuoTiếng Lus" + + "haiTiếng LuyiaTiếng MaduraTiếng MafaTiếng MagahiTiếng MaithiliTiếng Maka" + + "sarTiếng MandingoTiếng MasaiTiếng MabaTiếng MokshaTiếng MandarTiếng Mend" + + "eTiếng MeruTiếng MorisyenTiếng Ai-len Trung cổTiếng Makhuwa-MeettoTiếng " + + "Meta’Tiếng MicmacTiếng MinangkabauTiếng ManchuTiếng ManipuriTiếng Mohawk" + + "Tiếng MossiTiếng MundangNhiá»u Ngôn ngữTiếng CreekTiếng MirandaTiếng Marw" + + "ariTiếng MyeneTiếng ErzyaTiếng MazanderaniTiếng NapoliTiếng NamaTiếng Hạ" + + " Giéc-manTiếng NewariTiếng NiasTiếng NiueanTiếng Ao NagaTiếng KwasioTiến" + + "g NgiemboonTiếng NogaiTiếng Na Uy cổTiếng N’KoBắc SothoTiếng NuerTiếng N" + + "ewari Cổ Ä‘iểnTiếng NyamweziTiếng NyankoleTiếng NyoroTiếng NzimaTiếng Osa" + + "geTiếng Thổ NhÄ© Kỳ OttomanTiếng PangasinanTiếng PahlaviTiếng PampangaTiế" + + "ng PapiamentoTiếng PalauanTiếng Ba TÆ° cổTiếng PhoeniciaTiếng PohnpeianTi" + + "ếng Provençal cổTiếng KʼicheʼTiếng Quechua ở Cao nguyên ChimborazoTiến" + + "g RajasthaniTiếng RapanuiTiếng RarotonganTiếng RomboTiếng RomanyTiếng Ar" + + "omaniaTiếng RwaTiếng SandaweTiếng SakhaTiếng Samaritan AramaicTiếng Samb" + + "uruTiếng SasakTiếng SantaliTiếng NgambayTiếng SanguTiếng SiciliaTiếng Sc" + + "otsTiếng Kurd Miá»n NamTiếng SenecaTiếng SenaTiếng SelkupTiếng Koyraboro " + + "SenniTiếng Ai-len cổTiếng TachelhitTiếng ShanTiếng Ả-Rập ChadTiếng Sidam" + + "oTIếng Sami Miá»n NamTiếng Lule SamiTiếng Inari SamiTiếng Skolt SamiTiếng" + + " SoninkeTiếng SogdienTiếng Sranan TongoTiếng SererTiếng SahoTiếng Sukuma" + + "Tiếng SusuTiếng SumeriaTiếng CômoTiếng Syria Cổ Ä‘iểnTiếng SyriacTiếng Ti" + + "mneTiếng TesoTiếng TerenoTetumTiếng TigreTiếng TivTiếng TokelauTiếng Kli" + + "ngonTiếng TlingitTiếng TamashekTiếng Nyasa TongaTiếng Tok PisinTiếng Tar" + + "okoTiếng TsimshianTiếng TumbukaTiếng TuvaluTiếng TasawaqTiếng TuvinianTi" + + "ếng Tamazight Miá»n Trung Ma-rốcTiếng UdmurtTiếng UgariticTiếng Umbundu" + + "Tiếng RootTiếng VaiTiếng VoticTiếng VunjoTiếng WalserTiếng WalamoTiếng W" + + "arayTiếng WashoTiếng WarlpiriTiếng KalmykTiếng SogaTiếng YaoTiếng YapTiế" + + "ng YangbenTiếng YembaTiếng Quảng ÄôngTiếng ZapotecKý hiệu BlissymbolsTiế" + + "ng ZenagaTiếng Tamazight Chuẩn của Ma-rốcTiếng ZuniKhông có ná»™i dung ngô" + + "n ngữTiếng ZazaTiếng Ả Rập Hiện đạiTiếng Thượng Giéc-man (Thụy SÄ©)Tiếng " + + "Anh (Anh)Tiếng Anh (Mỹ)Tiếng Tây Ban Nha (Mỹ La tinh)Tiếng Tây Ban Nha (" + + "Châu Âu)Tiếng Hạ SaxonTiếng FlemishTiếng Bồ Äào Nha (Braxin)Tiếng Bồ Äào" + + " Nha (Châu Âu)Tiếng MoldovaTiếng Xéc bi - CroatiaTiếng Swahili Congo" + +var viLangIdx = []uint16{ // 608 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x001c, 0x002b, 0x003a, 0x0046, 0x0055, 0x0063, + 0x0074, 0x0081, 0x008f, 0x009d, 0x00af, 0x00be, 0x00cd, 0x00dd, + 0x00ec, 0x00fb, 0x010a, 0x011d, 0x012b, 0x013a, 0x0149, 0x0158, + 0x0168, 0x0177, 0x0183, 0x018f, 0x01a8, 0x01b7, 0x01c4, 0x01d7, + 0x01e5, 0x01f3, 0x0203, 0x020e, 0x021e, 0x0229, 0x0242, 0x0256, + 0x0265, 0x0273, 0x0281, 0x028e, 0x02a0, 0x02ac, 0x02b9, 0x02c6, + 0x02d4, 0x02e2, 0x02fd, 0x030d, 0x031c, 0x032c, 0x0338, 0x0345, + 0x0355, 0x0362, 0x0373, 0x0382, 0x038f, 0x039e, 0x03ad, 0x03bb, + // Entry 40 - 7F + 0x03d9, 0x03ea, 0x03fd, 0x0409, 0x041f, 0x042e, 0x0439, 0x0448, + 0x0452, 0x0463, 0x0471, 0x047d, 0x048b, 0x0498, 0x04a6, 0x04b6, + 0x04c4, 0x04d7, 0x04e6, 0x04f5, 0x0501, 0x050f, 0x051f, 0x052b, + 0x0537, 0x0547, 0x0555, 0x0564, 0x0576, 0x0583, 0x0592, 0x05a1, + 0x05ad, 0x05bc, 0x05d0, 0x05de, 0x05ee, 0x05fe, 0x060b, 0x061c, + 0x062d, 0x063f, 0x064e, 0x065e, 0x066a, 0x0680, 0x068d, 0x06a9, + 0x06b6, 0x06c4, 0x06d3, 0x06ea, 0x0701, 0x071b, 0x0729, 0x0737, + 0x0746, 0x0754, 0x0761, 0x076e, 0x077d, 0x078b, 0x0797, 0x07a5, + // Entry 80 - BF + 0x07b3, 0x07c9, 0x07d8, 0x07e7, 0x07f4, 0x0802, 0x080d, 0x0820, + 0x082e, 0x083e, 0x084c, 0x0865, 0x0872, 0x0881, 0x088f, 0x089f, + 0x08ac, 0x08b9, 0x08c7, 0x08d7, 0x08e5, 0x08f2, 0x0901, 0x090e, + 0x0924, 0x0933, 0x0940, 0x094e, 0x095b, 0x0968, 0x0978, 0x0984, + 0x0992, 0x099f, 0x09b6, 0x09c4, 0x09d1, 0x09df, 0x09ed, 0x09fc, + 0x0a08, 0x0a15, 0x0a22, 0x0a30, 0x0a40, 0x0a4f, 0x0a5c, 0x0a69, + 0x0a77, 0x0a85, 0x0a93, 0x0aa0, 0x0aac, 0x0abc, 0x0ac9, 0x0ad8, + 0x0ae6, 0x0ae6, 0x0af6, 0x0b03, 0x0b0f, 0x0b1e, 0x0b2d, 0x0b3a, + // Entry C0 - FF + 0x0b4d, 0x0b65, 0x0b75, 0x0b83, 0x0b92, 0x0ba4, 0x0bb2, 0x0bc1, + 0x0bda, 0x0be8, 0x0be8, 0x0c02, 0x0c0d, 0x0c28, 0x0c38, 0x0c38, + 0x0c46, 0x0c55, 0x0c61, 0x0c70, 0x0c7d, 0x0c8a, 0x0c9c, 0x0cab, + 0x0cb7, 0x0cc4, 0x0cd2, 0x0cde, 0x0ceb, 0x0cf9, 0x0d0d, 0x0d1d, + 0x0d2a, 0x0d36, 0x0d44, 0x0d4f, 0x0d5e, 0x0d71, 0x0d82, 0x0d8e, + 0x0d9c, 0x0da8, 0x0db6, 0x0dc4, 0x0dd1, 0x0ddd, 0x0de9, 0x0df8, + 0x0e05, 0x0e12, 0x0e20, 0x0e2d, 0x0e3c, 0x0e49, 0x0e58, 0x0e68, + 0x0e75, 0x0e81, 0x0e95, 0x0ea4, 0x0eb5, 0x0ec5, 0x0ed5, 0x0eee, + // Entry 100 - 13F + 0x0efc, 0x0f0c, 0x0f2b, 0x0f3b, 0x0f49, 0x0f57, 0x0f64, 0x0f74, + 0x0f81, 0x0f8f, 0x0f9c, 0x0fa9, 0x0fb6, 0x0fc9, 0x0fe3, 0x0ff0, + 0x100a, 0x101c, 0x1029, 0x1037, 0x1043, 0x104f, 0x105d, 0x1072, + 0x1080, 0x108f, 0x10a5, 0x10bf, 0x10cd, 0x10e0, 0x10ec, 0x10fc, + 0x10fc, 0x1107, 0x111a, 0x1132, 0x1144, 0x1153, 0x116f, 0x118c, + 0x119c, 0x11a6, 0x11b4, 0x11b4, 0x11c0, 0x11cd, 0x11cd, 0x11d9, + 0x11e8, 0x11f6, 0x121c, 0x123c, 0x1250, 0x125d, 0x126e, 0x127f, + 0x128c, 0x12a1, 0x12bc, 0x12bc, 0x12ca, 0x12d7, 0x12e8, 0x12f5, + // Entry 140 - 17F + 0x1308, 0x1316, 0x1328, 0x133a, 0x1349, 0x1357, 0x136f, 0x136f, + 0x137b, 0x1387, 0x1395, 0x13a2, 0x13b0, 0x13be, 0x13d8, 0x13e6, + 0x13f4, 0x1403, 0x1417, 0x142e, 0x143c, 0x144f, 0x145d, 0x146b, + 0x1476, 0x1483, 0x148f, 0x14a0, 0x14af, 0x14bb, 0x14ca, 0x14de, + 0x14de, 0x14ea, 0x14ea, 0x14f7, 0x1505, 0x1519, 0x1519, 0x1519, + 0x1525, 0x1535, 0x1545, 0x1559, 0x1568, 0x1576, 0x1584, 0x159b, + 0x159b, 0x159b, 0x15ab, 0x15b9, 0x15c9, 0x15d6, 0x15e5, 0x15f2, + 0x1601, 0x160f, 0x161c, 0x162a, 0x1637, 0x1647, 0x1647, 0x1647, + // Entry 180 - 1BF + 0x1647, 0x1655, 0x1655, 0x1662, 0x166e, 0x1680, 0x1680, 0x1692, + 0x16a1, 0x16ae, 0x16b9, 0x16c7, 0x16d4, 0x16d4, 0x16d4, 0x16e2, + 0x16ee, 0x16fc, 0x170c, 0x171b, 0x172b, 0x1738, 0x1744, 0x1752, + 0x1760, 0x176d, 0x1779, 0x1789, 0x17a2, 0x17b8, 0x17c7, 0x17d5, + 0x17e8, 0x17f6, 0x1806, 0x1814, 0x1821, 0x1821, 0x1830, 0x1843, + 0x1850, 0x185f, 0x186e, 0x186e, 0x187b, 0x1888, 0x189b, 0x189b, + 0x18a9, 0x18b5, 0x18cb, 0x18d9, 0x18e5, 0x18f3, 0x1902, 0x1910, + 0x1921, 0x192e, 0x1940, 0x1940, 0x194e, 0x1959, 0x1965, 0x1980, + // Entry 1C0 - 1FF + 0x1990, 0x19a0, 0x19ad, 0x19ba, 0x19c7, 0x19e6, 0x19f8, 0x1a07, + 0x1a17, 0x1a29, 0x1a38, 0x1a38, 0x1a38, 0x1a38, 0x1a4b, 0x1a4b, + 0x1a5c, 0x1a5c, 0x1a5c, 0x1a6d, 0x1a6d, 0x1a84, 0x1a95, 0x1abf, + 0x1ad1, 0x1ae0, 0x1af2, 0x1af2, 0x1af2, 0x1aff, 0x1b0d, 0x1b0d, + 0x1b0d, 0x1b0d, 0x1b1d, 0x1b28, 0x1b37, 0x1b44, 0x1b5d, 0x1b6c, + 0x1b79, 0x1b88, 0x1b88, 0x1b97, 0x1ba4, 0x1bb3, 0x1bc0, 0x1bc0, + 0x1bd7, 0x1be5, 0x1bf1, 0x1bf1, 0x1bff, 0x1c16, 0x1c29, 0x1c29, + 0x1c3a, 0x1c46, 0x1c5c, 0x1c6a, 0x1c6a, 0x1c6a, 0x1c81, 0x1c92, + // Entry 200 - 23F + 0x1ca4, 0x1cb6, 0x1cc5, 0x1cd4, 0x1ce8, 0x1cf5, 0x1d01, 0x1d01, + 0x1d0f, 0x1d1b, 0x1d2a, 0x1d37, 0x1d51, 0x1d5f, 0x1d5f, 0x1d5f, + 0x1d6c, 0x1d78, 0x1d86, 0x1d8b, 0x1d98, 0x1da3, 0x1db2, 0x1db2, + 0x1dc1, 0x1dd0, 0x1dd0, 0x1de0, 0x1df3, 0x1e04, 0x1e04, 0x1e12, + 0x1e12, 0x1e23, 0x1e23, 0x1e32, 0x1e40, 0x1e4f, 0x1e5f, 0x1e86, + 0x1e94, 0x1ea4, 0x1eb3, 0x1ebf, 0x1eca, 0x1eca, 0x1eca, 0x1eca, + 0x1eca, 0x1ed7, 0x1ed7, 0x1ee4, 0x1ef2, 0x1f00, 0x1f0d, 0x1f1a, + 0x1f2a, 0x1f2a, 0x1f38, 0x1f38, 0x1f44, 0x1f4f, 0x1f5a, 0x1f69, + // Entry 240 - 27F + 0x1f76, 0x1f76, 0x1f8c, 0x1f9b, 0x1fb1, 0x1fb1, 0x1fbf, 0x1fe7, + 0x1ff3, 0x2014, 0x2020, 0x203f, 0x203f, 0x203f, 0x2067, 0x2067, + 0x2067, 0x2078, 0x208a, 0x20ad, 0x20cd, 0x20cd, 0x20cd, 0x20cd, + 0x20cd, 0x20df, 0x20ee, 0x210d, 0x212f, 0x213e, 0x2157, 0x216c, +} // Size: 1240 bytes + +var zhLangStr string = "" + // Size: 6405 bytes + "阿法文阿布哈西亚文阿维斯塔文å—éžè·å…°æ–‡é˜¿è‚¯æ–‡é˜¿å§†å“ˆæ‹‰æ–‡é˜¿æ‹‰è´¡æ–‡é˜¿æ‹‰ä¼¯æ–‡é˜¿è¨å§†æ–‡é˜¿ç“¦å°”文艾马拉文阿塞拜疆文巴什客尔文白俄罗斯文ä¿åŠ åˆ©äºšæ–‡æ¯”斯拉马文" + + "ç­å·´æ‹‰æ–‡å­ŸåŠ æ‹‰æ–‡è—文布里多尼文波斯尼亚文加泰罗尼亚文车臣文查莫罗文科西嘉文克里æ—æ–‡æ·å…‹æ–‡å®—教斯拉夫文楚瓦什文å¨å°”士文丹麦文德文迪维希文ä¸ä¸¹æ–‡" + + "埃维文希腊文英文世界文西ç­ç‰™æ–‡çˆ±æ²™å°¼äºšæ–‡å·´æ–¯å…‹æ–‡æ³¢æ–¯æ–‡å¤«æ‹‰æ–‡èŠ¬å…°æ–‡æ–济文法罗文法文西弗里西亚文爱尔兰文è‹æ ¼å…°ç›–尔文加利西亚文瓜拉尼文å¤å‰æ‹‰ç‰¹" + + "文马æ©å²›æ–‡è±ªè¨æ–‡å¸Œä¼¯æ¥æ–‡å°åœ°æ–‡å¸Œé‡ŒèŽ«å›¾æ–‡å…‹ç½—地亚文海地文匈牙利文亚美尼亚文赫雷罗文国际文字å°åº¦å°¼è¥¿äºšæ–‡å›½é™…文字(E)伊布文四å·å½æ–‡ä¾å¥´çš®ç»´å…‹" + + "文伊多文冰岛文æ„大利文因纽特文日文爪哇文格é²å‰äºšæ–‡åˆšæžœæ–‡å‰åº“尤文宽亚玛文哈è¨å…‹æ–‡æ ¼é™µå…°æ–‡é«˜æ£‰æ–‡å¡çº³è¾¾æ–‡éŸ©æ–‡å¡åŠªé‡Œæ–‡å…‹ä»€ç±³å°”文库尔德文科米文凯" + + "尔特文å‰å°”å‰æ–¯æ–‡æ‹‰ä¸æ–‡å¢æ£®å ¡æ–‡å¢å¹²è¾¾æ–‡æ·‹å¸ƒå°”å‰æ–‡æž—加拉文è€æŒæ–‡ç«‹é™¶å®›æ–‡é²å·´åŠ ä¸¹åŠ æ–‡æ‹‰è„±ç»´äºšæ–‡é©¬å°”加什文马ç»å°”文毛利文马其顿文马拉雅拉姆文蒙å¤" + + "文马拉地文马æ¥æ–‡é©¬è€³ä»–文缅甸文瑙é²æ–‡åŒ—æ©å¾·è´å‹’文尼泊尔文æ©ä¸œåŠ æ–‡è·å…°æ–‡æŒªå¨å°¼è¯ºæ–¯å…‹æ–‡æŒªå¨åšå…‹é©¬å°”æ–‡å—æ©å¾·è´å‹’文纳瓦éœæ–‡å°¼æ‰¬æ‰Žæ–‡å¥¥å…‹è¥¿å”文奥å‰" + + "布瓦文奥洛莫文奥里亚文奥塞梯文æ—é®æ™®æ–‡å·´åˆ©æ–‡æ³¢å…°æ–‡æ™®ä»€å›¾æ–‡è‘¡è„牙文盖丘亚文罗曼什文基隆迪文罗马尼亚文俄文å¢æ—ºè¾¾æ–‡æ¢µæ–‡è¨ä¸æ–‡ä¿¡å¾·æ–‡åŒ—è¨ç±³æ–‡æ¡‘戈" + + "文僧伽罗文斯洛ä¼å…‹æ–‡æ–¯æ´›æ–‡å°¼äºšæ–‡è¨æ‘©äºšæ–‡ç»çº³æ–‡ç´¢é©¬é‡Œæ–‡é˜¿å°”巴尼亚文塞尔维亚文斯瓦特文å—索托文巽他文瑞典文斯瓦希里文泰米尔文泰å¢å›ºæ–‡å¡”å‰å…‹æ–‡æ³°" + + "æ–‡æ格里尼亚文土库曼文塞茨瓦纳文汤加文土耳其文宗加文塔塔尔文塔西æ文维å¾å°”文乌克兰文乌尔都文乌兹别克文文达文越å—文沃拉普克文瓦隆文沃洛夫文科" + + "è¨æ–‡ä¾åœ°æ–‡çº¦é²å·´æ–‡å£®æ–‡ä¸­æ–‡ç¥–é²æ–‡äºšé½æ–‡é˜¿ä¹”利文阿当梅文阿迪何文阿弗里希利文亚罕文阿伊努文阿å¡å¾·æ–‡é˜¿ç•™ç”³æ–‡å—阿尔泰文å¤è‹±æ–‡æ˜‚加文阿拉米文马普切" + + "文阿拉帕éœæ–‡é˜¿æ‹‰ç“¦å…‹æ–‡é˜¿è‹æ–‡é˜¿æ–¯å›¾é‡Œäºšæ€ç‰¹æ–‡é˜¿ç“¦ä¹”文俾路支文巴里文巴è¨æ–‡å·´å§†ç©†æ–‡æˆˆé©¬æ‹‰æ–‡åˆ«æœ­æ–‡åˆ«å§†å·´æ–‡è´çº³æ–‡å·´éžç‰¹æ–‡è¥¿ä¿¾è·¯æ”¯æ–‡åšæ°æ™®å°”文毕库" + + "尔文比尼文科姆文å¸å…‹å¸å¡æ–‡å¸ƒæ‹‰æ°æ–‡åšå¤šæ–‡é˜¿åº“色文布里亚特文布å‰æ–‡å¸ƒé²æ–‡å¸ƒæž—文梅敦巴文å¡å¤šæ–‡å·´å‹’比文å¡å°¤åŠ æ–‡é˜¿ç¿æ–‡å®¿åŠ¡æ–‡å¥‡åŠ æ–‡å¥‘布å¡æ–‡æŸ¥åŠ æ–‡æ¥š" + + "å¾å…‹æ–‡é©¬é‡Œæ–‡å¥‘努克文乔克托文佩瓦扬文彻罗基文å¤å»¶æ–‡ç´¢æ‹‰å°¼åº“尔德文科普特文克里米亚土耳其文å¡èˆ’文达科他文达尔格瓦文å°å¡”文特拉åŽæ–‡å¸é›·å¤«æ–‡å¤šæ ¼é‡Œ" + + "布文ä¸å¡æ–‡å“²å°”马文多格拉文下索布文都阿拉文中å¤è·å…°æ–‡æœ±æ‹‰æ–‡è¿ªå°¤æ‹‰æ–‡è¾¾æ‰Žè‘›æ–‡æ©å¸ƒæ–‡åŸƒè²å…‹æ–‡å¤åŸƒåŠæ–‡åŸƒå…‹ä¸˜å…‹æ–‡è‰¾æ‹‰ç±³ç‰¹æ–‡ä¸­å¤è‹±æ–‡æ—ºæœæ–‡èŠ³æ ¼æ–‡è²å¾‹" + + "宾文丰文中å¤æ³•æ–‡å¤æ³•æ–‡åŒ—弗里西亚文东弗里西亚文弗留利文加文加告兹文迦约文葛巴亚文å‰å…¹æ–‡å‰å°”伯特斯文中å¤é«˜åœ°å¾·æ–‡å¤é«˜åœ°å¾·æ–‡å²—德文科洛涅达罗文哥" + + "特文格列åšæ–‡å¤å¸Œè…Šæ–‡ç‘žå£«å¾·æ–‡å¤è¥¿æ–‡å‰ç»´å…‹ç´æ–‡æµ·è¾¾æ–‡å¤å¨å¤·æ–‡å¸Œåˆ©ç›–农文赫梯文赫蒙文上索布文胡帕文伊ç­æ–‡ä¼Šæ¯”比奥文伊洛干诺文å°å¤ä»€æ–‡é€»è¾‘æ–‡æ©è‰®å·´" + + "马切姆文犹太波斯文犹太阿拉伯文å¡æ‹‰å¡å°”帕克文å¡æ¯”尔文å¡ç´æ–‡å¡æ·æ–‡å¡å§†å·´æ–‡å¡å¨æ–‡å¡å·´å°”达文加涅姆布文å¡å¡”布文马孔德文å¡å¸ƒä½›å¾—é²æ–‡ç§‘ç½—æ–‡å¡è¥¿æ–‡å’Œ" + + "田文西桑海文å¡åº“æ–‡å¡ä¼¦é‡‘文金邦æœæ–‡ç§‘ç±³-彼尔米亚克文刚å¡å°¼æ–‡ç§‘斯拉伊文克佩列文å¡æ‹‰æ°ä¼Šå·´å°”å¡å°”æ–‡å¡ç´¯åˆ©é˜¿æ–‡åº“é²å…‹æ–‡é¦™å·´æ‹‰æ–‡å·´è²äºšæ–‡ç§‘隆文库梅" + + "克文库特内文拉迪诺文朗å‰æ–‡æ‹‰äº¨è¾¾æ–‡å…°å·´æ–‡èŽ±å…¹ä¾æ˜‚文拉科塔文芒戈文洛兹文北å¢å°”æ–‡é²å·´é²ç“¦æ–‡è·¯æ˜“塞诺文隆达文å¢å¥¥æ–‡å¢æ™’æ–‡å¢é›…文马都拉文马法文马加" + + "伊文迈蒂利文望加锡文曼ä¸å“¥æ–‡è¨ä¼Šæ–‡é©¬å文莫克沙文曼达尔文门迪文梅é²æ–‡æ¯›é‡Œæ±‚斯克里奥尔文中å¤çˆ±å°”兰文马夸文梅塔米克马克文米å—å¡ä¿æ–‡æ»¡æ–‡æ›¼å°¼æ™®é‡Œ" + + "文摩éœå…‹æ–‡èŽ«è¥¿æ–‡è’™å½“文多ç§è¯­ç³»å…‹é‡Œå…‹æ–‡ç±³å…°å¾·æ–¯æ–‡é©¬å°”瓦利文姆耶内文俄日亚文马赞德兰文拿波里文纳马文低地德文尼瓦尔文尼亚斯文纽埃文夸西奥文æ©ç”˜" + + "澎文诺盖文å¤è¯ºå°”斯文西éžä¹¦é¢æ–‡å­—北索托文努埃尔文ç»å…¸å°¼ç“¦å°”文尼亚姆韦é½æ–‡å°¼æ˜‚科勒文尼约罗文æ©æµŽé©¬æ–‡å¥¥è¨æ ¼æ–‡å¥¥æ‰˜æ›¼åœŸè€³å…¶æ–‡é‚¦é˜¿è¥¿æ¥ æ–‡å¸•æ‹‰ç»´æ–‡é‚¦" + + "æ¿ç‰™æ–‡å¸•çš®äºšé—¨æ‰˜æ–‡å¸•åŠ³æ–‡å¤è€æ³¢æ–¯æ–‡è…“尼基文波纳佩文普罗文斯文基切文拉贾斯å¦æ–‡æ‹‰å¸•åŠªä¼Šæ–‡æ‹‰ç½—汤加文兰åšæ–‡å‰æ™®èµ›æ–‡é˜¿ç½—马尼亚文罗瓦文散达维文雅库" + + "特文è¨çŽ›åˆ©äºšæ–‡æ¡‘布é²æ–‡è¨è¨å…‹æ–‡æ¡‘塔利文甘拜文桑å¤æ–‡è¥¿è¥¿é‡Œæ–‡è‹æ ¼å…°æ–‡å—库尔德文塞内å¡æ–‡å¡žçº³æ–‡å¡žå°”库普文东桑海文å¤çˆ±å°”兰文希尔哈文掸文ä¹å¾—阿拉伯" + + "文悉达摩文å—è¨ç±³æ–‡å¾‹å‹’欧è¨ç±³æ–‡ä¼Šçº³é‡Œè¨ç±³æ–‡æ–¯ç§‘特è¨ç±³æ–‡ç´¢å°¼åŸºæ–‡å¤ç²Ÿç‰¹æ–‡è‹é‡Œå—汤加文谢列尔文è¨éœæ–‡è‹åº“马文è‹è‹æ–‡è‹é©¬æ–‡ç§‘æ‘©ç½—æ–‡ç»å…¸å™åˆ©äºšæ–‡å™åˆ©" + + "亚文滕内文特索文特列纳文特塔姆文æ格雷文蒂夫文托克劳文克林贡文特林å‰ç‰¹æ–‡å¡”马奇克文汤加文(尼亚è¨åœ°åŒºï¼‰æ‰˜å…‹çš®è¾›æ–‡å¤ªé²é˜æ–‡è’‚姆西亚文通布å¡æ–‡å›¾" + + "瓦å¢æ–‡åŒ—桑海文图瓦文塔马é½æ ¼ç‰¹æ–‡ä¹Œå¾·ç©†å°”特文乌加里特文ç¿æœ¬æœæ–‡æ ¹è¯­è¨€ç“¦ä¼Šæ–‡ç»´æ™®æ£®æ–‡æ²ƒæ克文温旧文瓦尔瑟文瓦拉莫文瓦赖文瓦ç»æ–‡ç“¦å°”皮瑞文å¡å°”梅" + + "克文索加文瑶æ—文雅浦文洋åžæ–‡è€¶å§†å·´æ–‡ç²¤è¯­è¨æ³¢è’‚克文布利斯符å·æ³½çº³åŠ æ–‡æ ‡å‡†æ‘©æ´›å“¥å¡”马塞特文祖尼文无语言内容扎扎文现代标准阿拉伯文å—阿塞拜疆文奥" + + "地利德文瑞士高地德文澳大利亚英文加拿大英文英å¼è‹±æ–‡ç¾Žå¼è‹±æ–‡æ‹‰ä¸ç¾Žæ´²è¥¿ç­ç‰™æ–‡æ¬§æ´²è¥¿ç­ç‰™æ–‡å¢¨è¥¿å“¥è¥¿ç­ç‰™æ–‡åŠ æ‹¿å¤§æ³•æ–‡ç‘žå£«æ³•æ–‡ä½›å…°èŠ’文巴西葡è„牙文欧" + + "洲葡è„牙文摩尔多瓦文塞尔维亚-克罗地亚文刚果斯瓦希里文简体中文ç¹ä½“中文" + +var zhLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x001b, 0x002a, 0x0039, 0x0042, 0x0051, 0x005d, + 0x0069, 0x0075, 0x0081, 0x008d, 0x009c, 0x00ab, 0x00ba, 0x00c9, + 0x00d8, 0x00e4, 0x00f0, 0x00f6, 0x0105, 0x0114, 0x0126, 0x012f, + 0x013b, 0x0147, 0x0153, 0x015c, 0x016e, 0x017a, 0x0186, 0x018f, + 0x0195, 0x01a1, 0x01aa, 0x01b3, 0x01bc, 0x01c2, 0x01cb, 0x01d7, + 0x01e6, 0x01f2, 0x01fb, 0x0204, 0x020d, 0x0216, 0x021f, 0x0225, + 0x0237, 0x0243, 0x0255, 0x0264, 0x0270, 0x027f, 0x028b, 0x0294, + 0x02a0, 0x02a9, 0x02b8, 0x02c7, 0x02d0, 0x02dc, 0x02eb, 0x02f7, + // Entry 40 - 7F + 0x0303, 0x0315, 0x0328, 0x0331, 0x033d, 0x034f, 0x0358, 0x0361, + 0x036d, 0x0379, 0x037f, 0x0388, 0x0397, 0x03a0, 0x03ac, 0x03b8, + 0x03c4, 0x03d0, 0x03d9, 0x03e5, 0x03eb, 0x03f7, 0x0406, 0x0412, + 0x041b, 0x0427, 0x0436, 0x043f, 0x044b, 0x0457, 0x0466, 0x0472, + 0x047b, 0x0487, 0x0499, 0x04a8, 0x04b7, 0x04c3, 0x04cc, 0x04d8, + 0x04ea, 0x04f3, 0x04ff, 0x0508, 0x0514, 0x051d, 0x0526, 0x0538, + 0x0544, 0x0550, 0x0559, 0x056e, 0x0583, 0x0595, 0x05a1, 0x05ad, + 0x05bc, 0x05cb, 0x05d7, 0x05e3, 0x05ef, 0x05fb, 0x0604, 0x060d, + // Entry 80 - BF + 0x0619, 0x0625, 0x0631, 0x063d, 0x0649, 0x0658, 0x065e, 0x066a, + 0x0670, 0x0679, 0x0682, 0x068e, 0x0697, 0x06a3, 0x06b2, 0x06c4, + 0x06d0, 0x06d9, 0x06e5, 0x06f7, 0x0706, 0x0712, 0x071e, 0x0727, + 0x0730, 0x073f, 0x074b, 0x0757, 0x0763, 0x0769, 0x077b, 0x0787, + 0x0796, 0x079f, 0x07ab, 0x07b4, 0x07c0, 0x07cc, 0x07d8, 0x07e4, + 0x07f0, 0x07ff, 0x0808, 0x0811, 0x0820, 0x0829, 0x0835, 0x083e, + 0x0847, 0x0853, 0x0859, 0x085f, 0x0868, 0x0871, 0x087d, 0x0889, + 0x0895, 0x0895, 0x08a7, 0x08b0, 0x08bc, 0x08c8, 0x08c8, 0x08d4, + // Entry C0 - FF + 0x08d4, 0x08e3, 0x08ec, 0x08f5, 0x0901, 0x090d, 0x090d, 0x091c, + 0x091c, 0x092b, 0x092b, 0x092b, 0x0934, 0x0934, 0x094c, 0x094c, + 0x0958, 0x0964, 0x096d, 0x096d, 0x0976, 0x0982, 0x0982, 0x098e, + 0x0997, 0x09a3, 0x09a3, 0x09ac, 0x09b8, 0x09b8, 0x09c7, 0x09d6, + 0x09e2, 0x09eb, 0x09eb, 0x09f4, 0x0a03, 0x0a03, 0x0a03, 0x0a0f, + 0x0a0f, 0x0a18, 0x0a24, 0x0a33, 0x0a3c, 0x0a45, 0x0a4e, 0x0a5a, + 0x0a63, 0x0a6f, 0x0a7b, 0x0a84, 0x0a8d, 0x0a96, 0x0aa2, 0x0aab, + 0x0ab7, 0x0ac0, 0x0acc, 0x0ad8, 0x0ae4, 0x0af0, 0x0af9, 0x0b0e, + // Entry 100 - 13F + 0x0b1a, 0x0b1a, 0x0b32, 0x0b3b, 0x0b47, 0x0b56, 0x0b5f, 0x0b6b, + 0x0b77, 0x0b86, 0x0b8f, 0x0b9b, 0x0ba7, 0x0bb3, 0x0bb3, 0x0bbf, + 0x0bce, 0x0bd7, 0x0be3, 0x0bef, 0x0bf8, 0x0c04, 0x0c04, 0x0c10, + 0x0c1f, 0x0c2e, 0x0c3a, 0x0c3a, 0x0c43, 0x0c43, 0x0c4c, 0x0c58, + 0x0c58, 0x0c5e, 0x0c5e, 0x0c6a, 0x0c73, 0x0c73, 0x0c85, 0x0c97, + 0x0ca3, 0x0ca9, 0x0cb5, 0x0cb5, 0x0cbe, 0x0cca, 0x0cca, 0x0cd3, + 0x0ce5, 0x0ce5, 0x0cf7, 0x0d06, 0x0d06, 0x0d0f, 0x0d21, 0x0d2a, + 0x0d36, 0x0d42, 0x0d4e, 0x0d4e, 0x0d4e, 0x0d57, 0x0d66, 0x0d6f, + // Entry 140 - 17F + 0x0d6f, 0x0d7b, 0x0d7b, 0x0d8a, 0x0d93, 0x0d9c, 0x0da8, 0x0da8, + 0x0db1, 0x0dba, 0x0dc9, 0x0dd8, 0x0de4, 0x0de4, 0x0de4, 0x0ded, + 0x0df6, 0x0e02, 0x0e11, 0x0e23, 0x0e23, 0x0e38, 0x0e44, 0x0e4d, + 0x0e56, 0x0e62, 0x0e6b, 0x0e7a, 0x0e89, 0x0e95, 0x0ea1, 0x0eb3, + 0x0eb3, 0x0ebc, 0x0ebc, 0x0ec5, 0x0ece, 0x0eda, 0x0eda, 0x0eda, + 0x0ee3, 0x0eef, 0x0efb, 0x0f14, 0x0f20, 0x0f2f, 0x0f3b, 0x0f56, + 0x0f56, 0x0f56, 0x0f65, 0x0f71, 0x0f7d, 0x0f89, 0x0f92, 0x0f9e, + 0x0faa, 0x0fb6, 0x0fbf, 0x0fcb, 0x0fd4, 0x0fe3, 0x0fe3, 0x0fe3, + // Entry 180 - 1BF + 0x0fe3, 0x0fef, 0x0fef, 0x0ff8, 0x1001, 0x100d, 0x100d, 0x101c, + 0x102b, 0x1034, 0x103d, 0x1046, 0x104f, 0x104f, 0x104f, 0x105b, + 0x1064, 0x1070, 0x107c, 0x1088, 0x1094, 0x109d, 0x10a6, 0x10b2, + 0x10be, 0x10c7, 0x10d0, 0x10eb, 0x10fd, 0x1106, 0x110c, 0x111b, + 0x112a, 0x1130, 0x113f, 0x114b, 0x1154, 0x1154, 0x115d, 0x1169, + 0x1175, 0x1184, 0x1193, 0x1193, 0x119f, 0x11ab, 0x11ba, 0x11ba, + 0x11c6, 0x11cf, 0x11db, 0x11e7, 0x11f3, 0x11fc, 0x11fc, 0x1208, + 0x1214, 0x121d, 0x122c, 0x122c, 0x123e, 0x124a, 0x1256, 0x1268, + // Entry 1C0 - 1FF + 0x127a, 0x1289, 0x1295, 0x12a1, 0x12ad, 0x12c2, 0x12d1, 0x12dd, + 0x12e9, 0x12fb, 0x1304, 0x1304, 0x1304, 0x1304, 0x1313, 0x1313, + 0x131f, 0x131f, 0x131f, 0x132b, 0x132b, 0x133a, 0x1343, 0x1343, + 0x1352, 0x1361, 0x1370, 0x1370, 0x1370, 0x1379, 0x1385, 0x1385, + 0x1385, 0x1385, 0x1397, 0x13a0, 0x13ac, 0x13b8, 0x13c7, 0x13d3, + 0x13df, 0x13eb, 0x13eb, 0x13f4, 0x13fd, 0x1409, 0x1415, 0x1415, + 0x1424, 0x1430, 0x1439, 0x1439, 0x1448, 0x1454, 0x1463, 0x1463, + 0x146f, 0x1475, 0x1487, 0x1493, 0x1493, 0x1493, 0x149f, 0x14b1, + // Entry 200 - 23F + 0x14c3, 0x14d5, 0x14e1, 0x14ed, 0x14ff, 0x150b, 0x1514, 0x1514, + 0x1520, 0x1529, 0x1532, 0x153e, 0x1550, 0x155c, 0x155c, 0x155c, + 0x1565, 0x156e, 0x157a, 0x1586, 0x1592, 0x159b, 0x15a7, 0x15a7, + 0x15b3, 0x15c2, 0x15c2, 0x15d1, 0x15ef, 0x15fe, 0x15fe, 0x160a, + 0x160a, 0x1619, 0x1619, 0x1625, 0x1631, 0x163d, 0x1646, 0x1658, + 0x166a, 0x1679, 0x1685, 0x168e, 0x1697, 0x1697, 0x16a3, 0x16a3, + 0x16a3, 0x16af, 0x16af, 0x16b8, 0x16c4, 0x16d0, 0x16d9, 0x16e2, + 0x16f1, 0x16f1, 0x1700, 0x1700, 0x1709, 0x1712, 0x171b, 0x1724, + // Entry 240 - 27F + 0x1730, 0x1730, 0x1736, 0x1745, 0x1754, 0x1754, 0x1760, 0x177e, + 0x1787, 0x1796, 0x179f, 0x17b7, 0x17c9, 0x17d8, 0x17ea, 0x17fc, + 0x180b, 0x1817, 0x1823, 0x183b, 0x184d, 0x1862, 0x1862, 0x1871, + 0x187d, 0x187d, 0x1889, 0x189b, 0x18ad, 0x18bc, 0x18d8, 0x18ed, + 0x18f9, 0x1905, +} // Size: 1244 bytes + +var zhHantLangStr string = "" + // Size: 7564 bytes + "阿法文阿布哈茲文阿緯斯陀文å—éžè·è˜­æ–‡é˜¿åŽæ–‡é˜¿å§†å“ˆæ‹‰æ–‡é˜¿æ‹‰è²¢æ–‡é˜¿æ‹‰ä¼¯æ–‡é˜¿è–©å§†æ–‡é˜¿ç“¦çˆ¾æ–‡è‰¾é¦¬æ‹‰æ–‡äºžå¡žæ‹œç„¶æ–‡å·´ä»€å®¢çˆ¾æ–‡ç™½ä¿„羅斯文ä¿åŠ åˆ©äºžæ–‡æ¯”斯拉馬文ç­" + + "巴拉文孟加拉文è—文布列塔尼文波士尼亞文加泰羅尼亞文車臣文查莫洛文科西嘉文克裡文æ·å…‹æ–‡å®—教斯拉夫文楚瓦什文å¨çˆ¾æ–¯æ–‡ä¸¹éº¥æ–‡å¾·æ–‡è¿ªç¶­è¥¿æ–‡å®—å¡æ–‡åŸƒç¶­" + + "文希臘文英文世界文西ç­ç‰™æ–‡æ„›æ²™å°¼äºžæ–‡å·´æ–¯å…‹æ–‡æ³¢æ–¯æ–‡å¯Œæ‹‰æ–‡èŠ¬è˜­æ–‡æ–濟文法羅文法文西弗里西亞文愛爾蘭文蘇格蘭蓋爾文加利西亞文瓜拉尼文å¤å‰æ‹‰ç‰¹æ–‡æ›¼" + + "島文豪撒文希伯來文北å°åº¦æ–‡è¥¿é‡ŒèŽ«åœ–土文克羅埃西亞文海地文匈牙利文亞美尼亞文赫雷羅文國際文å°å°¼æ–‡åœ‹éš›æ–‡ï¼ˆE)伊布文四å·å½æ–‡ä¾å¥´çš®ç¶­å…‹æ–‡ä¼Šå¤šæ–‡å†°" + + "島文義大利文因ç´ç‰¹æ–‡æ—¥æ–‡çˆªå“‡æ–‡å–¬æ²»äºžæ–‡å‰›æžœæ–‡å‰åº«å°¤æ–‡å»£äºžé¦¬æ–‡å“ˆè–©å…‹æ–‡æ ¼é™µè˜­æ–‡é«˜æ£‰æ–‡åŽé‚£é”文韓文å¡åŠªè£¡æ–‡å–€ä»€ç±³çˆ¾æ–‡åº«çˆ¾å¾·æ–‡ç§‘米文康瓦耳文å‰çˆ¾å‰" + + "斯文拉ä¸æ–‡ç›§æ£®å ¡æ–‡å¹²é”文林堡文林加拉文寮文立陶宛文魯巴加丹加文拉脫維亞文馬拉加什文馬紹爾文毛利文馬其頓文馬來亞拉姆文蒙å¤æ–‡é¦¬æ‹‰åœ°æ–‡é¦¬ä¾†æ–‡é¦¬çˆ¾" + + "他文緬甸文諾魯文北地畢列文尼泊爾文æ©æ±åŠ æ–‡è·è˜­æ–‡è€è«¾æ–¯å…‹æŒªå¨æ–‡å·´å…‹æ‘©æŒªå¨æ–‡å—地畢列文ç´ç“¦éœæ–‡å°¼æšè³ˆæ–‡å¥§å…‹è¥¿å¦æ–‡å¥§æ°å¸ƒç“¦æ–‡å¥§ç¾…莫文æ­åˆ©äºžæ–‡å¥§å¡ž" + + "ææ–‡æ—é®æ™®æ–‡å·´åˆ©æ–‡æ³¢è˜­æ–‡æ™®ä»€åœ–文葡è„牙文蓋楚瓦文羅曼斯文隆迪文羅馬尼亞文俄文盧安é”文梵文撒ä¸æ–‡ä¿¡å¾·æ–‡åŒ—方薩米文桑戈文僧伽羅文斯洛ä¼å…‹æ–‡æ–¯æ´›ç¶­" + + "尼亞文薩摩亞文紹ç´æ–‡ç´¢é¦¬åˆ©æ–‡é˜¿çˆ¾å·´å°¼äºžæ–‡å¡žçˆ¾ç¶­äºžæ–‡æ–¯ç“¦ç‰¹æ–‡å¡žç´¢æ‰˜æ–‡å·½ä»–文瑞典文å²ç“¦å¸Œé‡Œæ–‡å¦ç±³çˆ¾æ–‡æ³°ç›§å›ºæ–‡å¡”å‰å…‹æ–‡æ³°æ–‡æ格利尼亞文土庫曼文札那" + + "æ–‡æ±åŠ æ–‡åœŸè€³å…¶æ–‡ç‰¹æ¾åŠ æ–‡éŸƒé¼æ–‡å¤§æºªåœ°æ–‡ç¶­å¾çˆ¾æ–‡çƒå…‹è˜­æ–‡çƒéƒ½æ–‡çƒèŒ²åˆ¥å…‹æ–‡æº«é”文越å—文沃拉普克文瓦隆文沃洛夫文科薩文æ„第緒文約魯巴文壯文中文祖魯" + + "文亞齊文阿僑利文阿當莫文阿迪å„æ–‡çªå°¼æ–¯é˜¿æ‹‰ä¼¯æ–‡é˜¿å¼—里希利文亞罕文阿伊努文阿å¡å¾·æ–‡é˜¿æ‹‰å·´é¦¬æ–‡é˜¿ç•™ç”³æ–‡è“‹æ ¼é˜¿çˆ¾å·´å°¼äºžæ–‡å—阿爾泰文å¤è‹±æ–‡æ˜‚加文阿拉" + + "米文馬普切文阿拉奧ç´æ–‡é˜¿æ‹‰å¸•éœæ–‡é˜¿çˆ¾åŠåˆ©äºžé˜¿æ‹‰ä¼¯æ–‡é˜¿æ‹‰ç“¦å…‹æ–‡æ‘©æ´›å“¥é˜¿æ‹‰ä¼¯æ–‡åŸƒåŠé˜¿æ‹‰ä¼¯æ–‡é˜¿è˜‡æ–‡ç¾Žåœ‹æ‰‹èªžé˜¿æ–¯åœ–里亞文科塔瓦文阿瓦文俾路支文峇里文" + + "å·´ä¼åˆ©äºžæ–‡å·´è–©æ–‡å·´å§†ç©†æ–‡å·´å¡”克托巴文戈馬拉文è²æ‰Žæ–‡åˆ¥å§†å·´æ–‡è²å¡”維文è²ç´æ–‡å¯Œç‰¹æ–‡å·´é”加文西俾路支文åšå‚‘普爾文比科爾文比尼文ç­äºžçˆ¾æ–‡åº·å§†æ–‡éŒ«å…‹éŒ«" + + "å¡æ–‡æ¯”什奴普èŠåˆ©äºžæ–‡å·´èµ«è’‚亞里文布拉æ°æ–‡å¸ƒæ‹‰ç¶­æ–‡åšå¤šæ–‡é˜¿åº«è‰²æ–‡å¸ƒé‡Œé˜¿ç‰¹æ–‡å¸ƒå‰æ–¯æ–‡å¸ƒé­¯æ–‡æ¯”林文梅敦巴文å¡å¤šæ–‡åŠ å‹’比文å¡å°¤åŠ æ–‡é˜¿ç‡¦æ–‡å®¿éœ§æ–‡å¥‡åŠ æ–‡" + + "奇布查文查加文處奇斯文馬里文契奴克文喬克托文奇佩瓦æšæ–‡æŸ´ç¾…基文沙伊安文索拉尼庫爾德文科普特文å¡çš®èŒ²æ–‡å…‹é‡Œç±³äºžåŠå³¶çš„土耳其文;克里米亞åŠå³¶çš„å¡”" + + "塔爾文å¡èˆ’布文é”科他文é”爾格瓦文å°å¡”文德拉瓦文斯拉夫多格里布文ä¸å¡æ–‡æ‰Žçˆ¾é¦¬æ–‡å¤šæ ¼ä¾†æ–‡ä¸‹ç´¢å¸ƒæ–‡ä¸­éƒ¨æœé †æ–‡æœäºžæ‹‰æ–‡ä¸­å¤è·è˜­æ–‡æœ±æ‹‰æ–‡è¿ªå°¤æ‹‰æ–‡é”è–©æ–‡" + + "æ©å¸ƒæ–‡åŸƒè²å…‹æ–‡åŸƒç±³åˆ©å®‰æ–‡å¤åŸƒåŠæ–‡è‰¾å¡æœ±å…‹æ–‡åŸƒè˜­æ–‡ä¸­å¤è‹±æ–‡ä¸­å°¤çš®å…‹æ–‡ä¾æ±ªéƒ½æ–‡åŸƒæ–¯ç‰¹é›·é¦¬æœæ‹‰æ–‡èŠ³æ—æ–‡è²å¾‹è³“文托爾訥芬蘭文è±æ–‡å¡çœŸæ³•æ–‡ä¸­å¤æ³•æ–‡å¤æ³•" + + "文法蘭克-普羅旺斯文北弗里西亞文æ±å¼—里西亞文弗留利文加æ—文加告茲文贛語加約文葛巴亞文索羅亞斯德教é”里文å‰èŒ²æ–‡å‰çˆ¾ä¼¯ç‰¹ç¾¤å³¶æ–‡å‰æ‹‰åŸºæ–‡ä¸­å¤é«˜åœ°å¾·" + + "æ–‡å¤é«˜åœ°æ—¥è€³æ›¼æ–‡å­”å¡å°¼æ–‡å²¡å¾·æ–‡ç§‘隆é”羅文哥德文格列åšæ–‡å¤å¸Œè‡˜æ–‡å¾·æ–‡ï¼ˆç‘žå£«ï¼‰ç“¦å°¤æ–‡å¼—拉弗拉文å¤è¥¿æ–‡åœ­å¥‘文海é”文客家話å¤å¨å¤·æ–‡æ–æ¿Ÿå°åœ°æ–‡å¸Œåˆ©è“‹è¾²" + + "文赫梯文孟文上索布文湘語胡帕文伊ç­æ–‡ä¼Šæ¯”比奧文伊洛闊文å°å¤ä»€æ–‡è‹±æ ¼è£äºžæ–‡ç‰™è²·åŠ å…‹è£å¥§çˆ¾è‹±æ–‡é‚輯文æ©æ ¼å§†å·´æ–‡é¦¬æ°ç¾Žæ–‡çŒ¶å¤ªæ•™-波斯文猶太阿拉伯文" + + "日德蘭文å¡æ‹‰å¡çˆ¾å¸•å…‹æ–‡å¡æ¯”爾文å¡ç´æ–‡å¡æ·æ–‡å¡å§†å·´æ–‡å¡å¨æ–‡å¡å·´çˆ¾é”æ–‡å¡å¿µå¸ƒæ–‡å¡å¡”布文馬孔德文å¡å¸ƒå¨çˆ¾ç¬¬æ–‡è‚¯æšæ–‡ç§‘ç¾…æ–‡åŽå‰›æ–‡å¡è¥¿æ–‡å’Œé—文西桑海文" + + "科瓦文北紮紮其文å¡åº«æ–‡å¡å€«é‡‘文金邦æœæ–‡ç§‘ç±³-彼爾米亞克文貢根文科斯雷æ©æ–‡å…‹ä½©åˆ—æ–‡å¡æ‹‰æŸ´-包爾å¡çˆ¾æ–‡å¡žæ‹‰åˆ©æ˜‚å…‹è£å¥§çˆ¾æ–‡åŸºé‚£ä¾†é˜¿æ–‡å¡ç´¯åˆ©é˜¿æ–‡åº«é­¯" + + "科文尚巴拉文巴è²äºžæ–‡ç§‘隆文庫密克文庫特奈文拉迪諾文朗å‰æ–‡æ‹‰äº¨é”文蘭巴文列茲干文新共åŒèªžè¨€åˆ©å¤é‡Œäºžæ–‡åˆ©ä¼å°¼äºžæ–‡æ‹‰ç§‘塔文倫巴底文芒戈文洛齊文北盧" + + "爾文拉特加èŠæ–‡é­¯å·´é­¯é­¯äºžæ–‡è·¯æ˜“塞諾文盧æ©é”文盧奧文盧晒文盧雅文文言文拉茲文馬都拉文馬法文馬加伊文é‚蒂利文望加錫文曼ä¸å“¥æ–‡é¦¬è³½æ–‡é¦¬å·´æ–‡èŽ«å…‹æ²™æ–‡" + + "曼é”文門德文梅魯文克里奧文(模里西斯)中å¤æ„›çˆ¾è˜­æ–‡é¦¬å¤¸æ–‡ç¾Žå¡”文米克馬克文米å—å¡å ¡æ–‡æ»¿æ—文曼尼普裡文莫éœå…‹æ–‡èŽ«è¥¿æ–‡é¦¬é‡Œè’™ç•¶æ–‡å¤šç¨®èªžè¨€å…‹é‡Œå…‹æ–‡ç±³" + + "蘭德斯文馬爾尼裡文明打å¨æ–‡å§†è€¶å…§æ–‡åŽ„爾茲亞文馬贊德蘭文閩å—語拿波里文ç´é¦¬æ–‡ä½Žåœ°å¾·æ–‡å°¼ç“¦çˆ¾æ–‡å°¼äºžæ–¯æ–‡ç´åŸƒæ–‡é˜¿æ²ƒé‚£åŠ æ–‡å¤¸è¥¿å¥§æ–‡æ©ç”˜æ¾Žæ–‡è«¾è“‹æ–‡å¤è«¾" + + "爾斯文諾維亞文曼德文字 (N’Ko)北索托文努埃爾文å¤å°¼ç“¦çˆ¾æ–‡å°¼æšéŸ‹é½Šæ–‡å°¼æšç§‘èŠæ–‡å°¼å¥§å›‰æ–‡å°¼èŒ²é¦¬æ–‡æ­å¡žå¥‡æ–‡é„‚圖曼土耳其文潘加辛文巴列維文潘帕" + + "嘉文帕皮阿門托文帛ç‰æ–‡åº‡å¡åº•æ–‡è³“夕法尼亞德文門諾低地德文å¤æ³¢æ–¯æ–‡æ™®æ³•çˆ¾èŒ¨å¾·æ–‡è…“尼基文皮埃蒙特文æ—狄希臘文波那è²æ–‡æ™®é­¯å£«æ–‡å¤æ™®ç¾…旺斯文基切文欽" + + "åšæ‹‰ç´¢æµ·è˜­è“‹ä¸˜äºžæ–‡æ‹‰è³ˆæ–¯å¦è«¸æ–‡å¾©æ´»å³¶æ–‡æ‹‰ç¾…通加文羅馬格諾里文里è²äºžè«¾æ–‡è˜­åšæ–‡å‰æ™®è³½æ–‡ç¾…圖馬島文盧森尼亞文羅維阿ç´æ–‡ç¾…馬尼亞語系羅瓦文桑é”韋文" + + "雅庫特文薩瑪利亞阿拉姆文薩布魯文撒撒克文散塔利文索拉什特拉文甘拜文桑å¤æ–‡è¥¿è¥¿é‡Œæ–‡è˜‡æ ¼è˜­æ–‡è–©ä¸å°¼äºž-薩薩里文å—庫爾德文塞訥å¡æ–‡è³½ç´æ–‡ç‘Ÿé‡Œæ–‡ç‘Ÿçˆ¾" + + "å¡æ™®æ–‡æ±æ¡‘æµ·æ–‡å¤æ„›çˆ¾è˜­æ–‡è–©èŽ«å‰å¸Œäºžæ–‡å¸Œçˆ¾å“ˆæ–‡æ’£æ–‡é˜¿æ‹‰ä¼¯æ–‡ï¼ˆæŸ¥å¾·ï¼‰å¸Œé”摩文下西利西亞文塞拉亞文å—薩米文魯勒薩米文伊ç´è£¡è–©ç±³æ–‡æ–¯ç§‘特薩米文索尼基" + + "文索格底亞ç´æ–‡è˜‡æ‹‰å—æ±å¢Žæ–‡å¡žé›·çˆ¾æ–‡è–©éœæ–‡æ²™ç‰¹è²å£«è˜­æ–‡è˜‡åº«é¦¬æ–‡è˜‡è˜‡æ–‡è˜‡ç¾Žæ–‡è‘›æ‘©æ–‡å¤æ•˜åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡è¥¿åˆ©è¥¿äºžæ–‡åœ–盧文æ姆文特索文泰雷諾文泰頓文蒂" + + "格雷文æ夫文托克勞文查庫爾文克林貢文特林基特文塔里什文塔馬奇克文æ±åŠ æ–‡ï¼ˆå°¼äºžè–©ï¼‰æ‰˜æ¯”辛文圖羅尤文太魯閣文特薩克尼æ©æ–‡æ¬½è¥¿å®‰æ–‡ç©†æ–¯æž—塔特文圖姆" + + "布å¡æ–‡å瓦魯文北桑海文土凡文塔馬齊格特文沃蒂艾克文çƒåŠ åˆ—文姆本æœæ–‡æ ¹èªžè¨€ç“¦ä¼Šæ–‡å¨å°¼æ–¯æ–‡ç¶­æ™®æ£®æ–‡è¥¿ä½›è˜­å¾·æ–‡ç¾ŽèŒµ-法蘭克尼亞文沃æ克文佛羅文溫舊" + + "文瓦瑟文瓦拉莫文瓦瑞文瓦紹文沃皮瑞文å³èªžå¡çˆ¾æ¢…克文明格列爾文索加文瑤文雅浦文洋åžæ–‡è€¶å§†å·´æ–‡å¥ˆæ©åŠ åœ–文粵語薩波特克文布列斯符號西蘭文澤ç´åŠ æ–‡æ¨™" + + "準摩洛哥塔馬塞特文祖尼文無語言內容扎扎文ç¾ä»£æ¨™æº–阿拉伯文高地德文(瑞士)低地薩克éœæ–‡ä½›è˜­èŠ’文摩爾多瓦文塞爾維亞克羅埃西亞文å²ç“¦å¸Œé‡Œæ–‡ï¼ˆå‰›æžœï¼‰" + + "簡體中文ç¹é«”中文" + +var zhHantLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0018, 0x0027, 0x0036, 0x003f, 0x004e, 0x005a, + 0x0066, 0x0072, 0x007e, 0x008a, 0x0099, 0x00a8, 0x00b7, 0x00c6, + 0x00d5, 0x00e1, 0x00ed, 0x00f3, 0x0102, 0x0111, 0x0123, 0x012c, + 0x0138, 0x0144, 0x014d, 0x0156, 0x0168, 0x0174, 0x0180, 0x0189, + 0x018f, 0x019b, 0x01a4, 0x01ad, 0x01b6, 0x01bc, 0x01c5, 0x01d1, + 0x01e0, 0x01ec, 0x01f5, 0x01fe, 0x0207, 0x0210, 0x0219, 0x021f, + 0x0231, 0x023d, 0x024f, 0x025e, 0x026a, 0x0279, 0x0282, 0x028b, + 0x0297, 0x02a3, 0x02b5, 0x02c7, 0x02d0, 0x02dc, 0x02eb, 0x02f7, + // Entry 40 - 7F + 0x0300, 0x0309, 0x0319, 0x0322, 0x032e, 0x0340, 0x0349, 0x0352, + 0x035e, 0x036a, 0x0370, 0x0379, 0x0385, 0x038e, 0x039a, 0x03a6, + 0x03b2, 0x03be, 0x03c7, 0x03d3, 0x03d9, 0x03e5, 0x03f4, 0x0400, + 0x0409, 0x0415, 0x0424, 0x042d, 0x0439, 0x0442, 0x044b, 0x0457, + 0x045d, 0x0469, 0x047b, 0x048a, 0x0499, 0x04a5, 0x04ae, 0x04ba, + 0x04cc, 0x04d5, 0x04e1, 0x04ea, 0x04f6, 0x04ff, 0x0508, 0x0517, + 0x0523, 0x052f, 0x0538, 0x054d, 0x055f, 0x056e, 0x057a, 0x0586, + 0x0595, 0x05a4, 0x05b0, 0x05bc, 0x05c8, 0x05d4, 0x05dd, 0x05e6, + // Entry 80 - BF + 0x05f2, 0x05fe, 0x060a, 0x0616, 0x061f, 0x062e, 0x0634, 0x0640, + 0x0646, 0x064f, 0x0658, 0x0667, 0x0670, 0x067c, 0x068b, 0x069d, + 0x06a9, 0x06b2, 0x06be, 0x06d0, 0x06df, 0x06eb, 0x06f7, 0x0700, + 0x0709, 0x0718, 0x0724, 0x0730, 0x073c, 0x0742, 0x0754, 0x0760, + 0x0769, 0x0772, 0x077e, 0x078a, 0x0793, 0x079f, 0x07ab, 0x07b7, + 0x07c0, 0x07cf, 0x07d8, 0x07e1, 0x07f0, 0x07f9, 0x0805, 0x080e, + 0x081a, 0x0826, 0x082c, 0x0832, 0x083b, 0x0844, 0x0850, 0x085c, + 0x0868, 0x087d, 0x088f, 0x0898, 0x08a4, 0x08b0, 0x08bf, 0x08cb, + // Entry C0 - FF + 0x08e3, 0x08f2, 0x08fb, 0x0904, 0x0910, 0x091c, 0x092b, 0x093a, + 0x0955, 0x0964, 0x0979, 0x098b, 0x0994, 0x09a0, 0x09b2, 0x09be, + 0x09c7, 0x09d3, 0x09dc, 0x09eb, 0x09f4, 0x0a00, 0x0a12, 0x0a1e, + 0x0a27, 0x0a33, 0x0a3f, 0x0a48, 0x0a51, 0x0a5d, 0x0a6c, 0x0a7b, + 0x0a87, 0x0a90, 0x0a9c, 0x0aa5, 0x0ab4, 0x0acc, 0x0ade, 0x0aea, + 0x0af6, 0x0aff, 0x0b0b, 0x0b1a, 0x0b26, 0x0b2f, 0x0b38, 0x0b44, + 0x0b4d, 0x0b59, 0x0b65, 0x0b6e, 0x0b77, 0x0b80, 0x0b8c, 0x0b95, + 0x0ba1, 0x0baa, 0x0bb6, 0x0bc2, 0x0bd1, 0x0bdd, 0x0be9, 0x0bfe, + // Entry 100 - 13F + 0x0c0a, 0x0c16, 0x0c5b, 0x0c67, 0x0c73, 0x0c82, 0x0c8b, 0x0c97, + 0x0ca0, 0x0caf, 0x0cb8, 0x0cc4, 0x0cd0, 0x0cdc, 0x0ceb, 0x0cf7, + 0x0d06, 0x0d0f, 0x0d1b, 0x0d24, 0x0d2d, 0x0d39, 0x0d48, 0x0d54, + 0x0d63, 0x0d6c, 0x0d78, 0x0d87, 0x0d93, 0x0dab, 0x0db4, 0x0dc0, + 0x0dd2, 0x0dd8, 0x0de4, 0x0df0, 0x0df9, 0x0e12, 0x0e24, 0x0e36, + 0x0e42, 0x0e4b, 0x0e57, 0x0e5d, 0x0e66, 0x0e72, 0x0e8d, 0x0e96, + 0x0eab, 0x0eb7, 0x0ec9, 0x0ede, 0x0eea, 0x0ef3, 0x0f02, 0x0f0b, + 0x0f17, 0x0f23, 0x0f35, 0x0f3e, 0x0f4d, 0x0f56, 0x0f5f, 0x0f68, + // Entry 140 - 17F + 0x0f71, 0x0f7d, 0x0f8c, 0x0f9b, 0x0fa4, 0x0faa, 0x0fb6, 0x0fbc, + 0x0fc5, 0x0fce, 0x0fdd, 0x0fe9, 0x0ff5, 0x1004, 0x101f, 0x1028, + 0x1037, 0x1043, 0x1056, 0x1068, 0x1074, 0x1089, 0x1095, 0x109e, + 0x10a7, 0x10b3, 0x10bc, 0x10cb, 0x10d7, 0x10e3, 0x10ef, 0x1101, + 0x110a, 0x1113, 0x111c, 0x1125, 0x112e, 0x113a, 0x1143, 0x1152, + 0x115b, 0x1167, 0x1173, 0x118c, 0x1195, 0x11a4, 0x11b0, 0x11c9, + 0x11e4, 0x11f3, 0x1202, 0x120e, 0x121a, 0x1226, 0x122f, 0x123b, + 0x1247, 0x1253, 0x125c, 0x1268, 0x1271, 0x127d, 0x128c, 0x129b, + // Entry 180 - 1BF + 0x12aa, 0x12b6, 0x12c2, 0x12cb, 0x12d4, 0x12e0, 0x12ef, 0x1301, + 0x1310, 0x131c, 0x1325, 0x132e, 0x1337, 0x1340, 0x1349, 0x1355, + 0x135e, 0x136a, 0x1376, 0x1382, 0x138e, 0x1397, 0x13a0, 0x13ac, + 0x13b5, 0x13be, 0x13c7, 0x13e5, 0x13f7, 0x1400, 0x1409, 0x1418, + 0x1427, 0x1430, 0x143f, 0x144b, 0x1454, 0x145a, 0x1463, 0x146f, + 0x147b, 0x148a, 0x1499, 0x14a5, 0x14b1, 0x14c0, 0x14cf, 0x14d8, + 0x14e4, 0x14ed, 0x14f9, 0x1505, 0x1511, 0x151a, 0x1529, 0x1535, + 0x1541, 0x154a, 0x1559, 0x1565, 0x157a, 0x1586, 0x1592, 0x15a1, + // Entry 1C0 - 1FF + 0x15b0, 0x15bf, 0x15cb, 0x15d7, 0x15e3, 0x15f8, 0x1604, 0x1610, + 0x161c, 0x162e, 0x1637, 0x1643, 0x1658, 0x166a, 0x1676, 0x1688, + 0x1694, 0x16a3, 0x16b2, 0x16be, 0x16ca, 0x16dc, 0x16e5, 0x1703, + 0x1715, 0x1721, 0x1730, 0x1742, 0x1751, 0x175a, 0x1766, 0x1775, + 0x1784, 0x1793, 0x17a5, 0x17ae, 0x17ba, 0x17c6, 0x17de, 0x17ea, + 0x17f6, 0x1802, 0x1814, 0x181d, 0x1826, 0x1832, 0x183e, 0x1857, + 0x1866, 0x1872, 0x187b, 0x1884, 0x1893, 0x189f, 0x18ae, 0x18c0, + 0x18cc, 0x18d2, 0x18ea, 0x18f6, 0x1908, 0x1914, 0x1920, 0x192f, + // Entry 200 - 23F + 0x1941, 0x1953, 0x195f, 0x1971, 0x1983, 0x198f, 0x1998, 0x19aa, + 0x19b6, 0x19bf, 0x19c8, 0x19d1, 0x19e0, 0x19ec, 0x19fb, 0x1a04, + 0x1a0d, 0x1a16, 0x1a22, 0x1a2b, 0x1a37, 0x1a40, 0x1a4c, 0x1a58, + 0x1a64, 0x1a73, 0x1a7f, 0x1a8e, 0x1aa6, 0x1ab2, 0x1abe, 0x1aca, + 0x1adc, 0x1ae8, 0x1afa, 0x1b09, 0x1b15, 0x1b21, 0x1b2a, 0x1b3c, + 0x1b4b, 0x1b57, 0x1b63, 0x1b6c, 0x1b75, 0x1b81, 0x1b8d, 0x1b9c, + 0x1bb5, 0x1bc1, 0x1bca, 0x1bd3, 0x1bdc, 0x1be8, 0x1bf1, 0x1bfa, + 0x1c06, 0x1c0c, 0x1c1b, 0x1c2a, 0x1c33, 0x1c39, 0x1c42, 0x1c4b, + // Entry 240 - 27F + 0x1c57, 0x1c66, 0x1c6c, 0x1c7b, 0x1c8a, 0x1c93, 0x1c9f, 0x1cbd, + 0x1cc6, 0x1cd5, 0x1cde, 0x1cf6, 0x1cf6, 0x1cf6, 0x1d0e, 0x1d0e, + 0x1d0e, 0x1d0e, 0x1d0e, 0x1d0e, 0x1d0e, 0x1d0e, 0x1d0e, 0x1d0e, + 0x1d0e, 0x1d20, 0x1d2c, 0x1d2c, 0x1d2c, 0x1d3b, 0x1d59, 0x1d74, + 0x1d80, 0x1d8c, +} // Size: 1244 bytes + +var zuLangStr string = "" + // Size: 3045 bytes + "isi-Abkhaziani-Afrikaansisi-Akanisi-Amharicisi-Arabicisi-Assameseisi-Aym" + + "araisi-Azerbaijaniisi-Bashkirisi-Belarusianisi-Bulgariisi-Bambaraisi-Ben" + + "galiisi-Tibetanisi-Bretonisi-Bosnianisi-Catalanisi-Chechenisi-Corsicanis" + + "i-Czechisi-Chuvashisi-Welshisi-Danishisi-Germanisi-Divehiisi-Dzongkhaisi" + + "-Eweisi-Greeki-Englishisi-Esperantoisi-Spanishisi-Estoniaisi-Basqueisi-P" + + "ersianisi-Finnishisi-Fijianisi-Faroeseisi-Frenchisi-Western Frisianisi-I" + + "rishi-Scottish Gaelicisi-Galiciaisi-Guaraniisi-Gujaratiisi-Manxisi-Hausa" + + "isi-Hebrewisi-Hindiisi-Croatianisi-Haitianisi-Hungarianisi-ArmeniaIzilim" + + "i ezihlangeneisi-Indonesianisi-Igboisi-Sichuan Yiisi-Icelandicisi-Italia" + + "nisi-Inuktitutisi-Japaneseisi-Javaneseisi-GeorgianIsi-Kongoisi-Kikuyuisi" + + "-Kazakhisi-Kalaallisutisi-Khmerisi-Kannadaisi-Koreanisi-Kashmiriisi-Kurd" + + "ishisi-Cornishisi-Kyrgyzisi-Latinisi-Luxembourgishisi-Gandaisi-Lingalai-" + + "Laoisi-Lithuanianisi-Luba-Katangaisi-Latvianisi-Malagasyisi-Maoriisi-Mac" + + "edonianisi-Malayalamisi-Mongolianisi-Marathiisi-Malayisi-Malteseisi-Burm" + + "eseisi-North Ndebeleisi-Nepaliisi-Dutchi-Norwegian Nynorskisi-Norwegian " + + "BokmÃ¥lisi-NyanjaIsi-Osithanii-Oromoisi-Oriyaisi-Osseticisi-Punjabiisi-Po" + + "lishisi-Pashtoisi-Portugueseisi-Quechuaisi-Romanshisi-Rundiisi-Romaniani" + + "si-Russianisi-Kinyarwandaisi-Sanskritisi-Sindhiisi-Northern Samiisi-Sang" + + "oi-Sinhalaisi-Slovakisi-Slovenianisi-SamoanisiShonaisi-Somaliisi-Albania" + + "isi-SerbianisiSwatiisiSuthuisi-Sundaneseisi-SwedishisiSwahiliisi-Tamilis" + + "i-Teluguisi-Tajikisi-Thaiisi-Tigrinyaisi-Turkmenisi-Tswanaisi-Tonganisi-" + + "Turkishisi-Tsongaisi-Tatarisi-Tahitianisi-Uighurisi-Ukrainianisi-Urduisi" + + "-Uzbekisi-Vendaisi-Vietnameseisi-WolofisiXhosaIsi-Yidishisi-Yorubaisi-Ch" + + "ineseisiZuluIsi-Acoliisi-Aghemisi-Mapucheisi-Asuisi-Bembaisi-Benaisi-Wes" + + "tern Balochiisi-Bodoisi-Chigaisi-Cherokeeisi-Central Kurdishisi-Taitaisi" + + "-Zarmaisi-Lower Sorbianisi-Dualaisi-Jola-Fonylisi-Embuisi-Efikisi-Filipi" + + "noIsi-Gaisi-Gagauzisi-Swiss Germanisi-Gusliisi-Hawaiianisi-Upper Sorbian" + + "isi-Ngombaisi-Machameisi-Kabyleisi-Kambaisi-Makondeisi-Kabuverdianuisi-K" + + "oyra Chiiniisi-Kalenjinisi-Komi-Permyakisi-KonkaniisiShambalaisi-Bafiais" + + "i-Langiisi-LakotaIsi-Loziisi-Northern LuriIsi-Luba-Luluaisi-Luoisi-Luyia" + + "isi-Masaiisi-Meruisi-Morisyenisi-Makhuwa-Meettoisi-Meta’isi-Mohawkisi-Mu" + + "ndangisi-Mazanderaniisi-Namandsisi-Kwasioisi-N’Koisi-Northern Sothoisi-N" + + "uerisi-Nyankoleisi-Kʼicheʼisi-Romboisi-Rwaisi-Samburuisi-Sangui-Southern" + + " Kurdishisi-Senaisi-Koyraboro Senniisi-Tachelhitisi-Southern Samiisi-Lul" + + "e Samiisi-Inari Samiisi-Skolt Samiisi-Tesoisi-TetumIsi-Klingonisi-Tok Pi" + + "sinIsi-Tumbukaisi-Tasawaqisi-Central Atlas Tamazightulimi olungaziwaisi-" + + "VaiisiVunjoisi-Warlpiriisi-Sogaisi-Standard Moroccan Tamazightakukho oku" + + "qukethwe kolimiisi-Arabic esivamile sesimanjeisi-Austrian Germani-Swiss " + + "High Germanisi-Austrillian Englishi-Canadian Englishi-British Englishi-A" + + "merican Englishisi-Latin American Spanishi-European Spanishi-Mexican Spa" + + "nishi-Canadian Frenchi-Swiss Frenchisi-Low Saxonisi-Flemishisi-Brazillia" + + "n Portugueseisi-European Portugueseisi-Moldavianisi-Congo Swahiliisi-Chi" + + "nese (Okosiko)" + +var zuLangIdx = []uint16{ // 610 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000d, 0x000d, 0x0018, 0x0020, 0x002b, 0x002b, + 0x0035, 0x0041, 0x0041, 0x004b, 0x005a, 0x0065, 0x0073, 0x007e, + 0x007e, 0x0089, 0x0094, 0x009f, 0x00a9, 0x00b4, 0x00bf, 0x00ca, + 0x00ca, 0x00d6, 0x00d6, 0x00df, 0x00df, 0x00ea, 0x00f3, 0x00fd, + 0x0107, 0x0111, 0x011d, 0x0124, 0x012d, 0x0136, 0x0143, 0x014e, + 0x0159, 0x0163, 0x016e, 0x016e, 0x0179, 0x0183, 0x018e, 0x0198, + 0x01ab, 0x01b4, 0x01c5, 0x01d0, 0x01db, 0x01e7, 0x01ef, 0x01f8, + 0x0202, 0x020b, 0x020b, 0x0217, 0x0222, 0x022f, 0x023a, 0x023a, + // Entry 40 - 7F + 0x024d, 0x025b, 0x025b, 0x0263, 0x0271, 0x0271, 0x0271, 0x027e, + 0x0289, 0x0296, 0x02a2, 0x02ae, 0x02ba, 0x02c3, 0x02cd, 0x02cd, + 0x02d7, 0x02e6, 0x02ef, 0x02fa, 0x0304, 0x0304, 0x0310, 0x031b, + 0x031b, 0x0326, 0x0330, 0x0339, 0x034a, 0x0353, 0x0353, 0x035e, + 0x0363, 0x0371, 0x0381, 0x038c, 0x0398, 0x0398, 0x03a1, 0x03af, + 0x03bc, 0x03c9, 0x03d4, 0x03dd, 0x03e8, 0x03f3, 0x03f3, 0x0404, + 0x040e, 0x040e, 0x0417, 0x042a, 0x043f, 0x043f, 0x043f, 0x0449, + 0x0455, 0x0455, 0x045c, 0x0465, 0x0470, 0x047b, 0x047b, 0x0485, + // Entry 80 - BF + 0x048f, 0x049d, 0x04a8, 0x04b3, 0x04bc, 0x04c8, 0x04d3, 0x04e2, + 0x04ee, 0x04ee, 0x04f8, 0x0509, 0x0512, 0x051b, 0x0525, 0x0532, + 0x053c, 0x0544, 0x054e, 0x0559, 0x0564, 0x056c, 0x0574, 0x0581, + 0x058c, 0x0596, 0x059f, 0x05a9, 0x05b2, 0x05ba, 0x05c6, 0x05d1, + 0x05db, 0x05e5, 0x05f0, 0x05fa, 0x0603, 0x060f, 0x0619, 0x0626, + 0x062e, 0x0637, 0x0640, 0x064e, 0x064e, 0x064e, 0x0657, 0x065f, + 0x0669, 0x0673, 0x0673, 0x067e, 0x0685, 0x0685, 0x068e, 0x068e, + 0x068e, 0x068e, 0x068e, 0x0697, 0x0697, 0x0697, 0x0697, 0x0697, + // Entry C0 - FF + 0x0697, 0x0697, 0x0697, 0x0697, 0x0697, 0x06a2, 0x06a2, 0x06a2, + 0x06a2, 0x06a2, 0x06a2, 0x06a2, 0x06a9, 0x06a9, 0x06a9, 0x06a9, + 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, 0x06a9, + 0x06a9, 0x06b2, 0x06b2, 0x06ba, 0x06ba, 0x06ba, 0x06cd, 0x06cd, + 0x06cd, 0x06cd, 0x06cd, 0x06cd, 0x06cd, 0x06cd, 0x06cd, 0x06cd, + 0x06cd, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, + 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06d5, 0x06de, 0x06de, 0x06de, + 0x06de, 0x06de, 0x06de, 0x06de, 0x06de, 0x06ea, 0x06ea, 0x06fd, + // Entry 100 - 13F + 0x06fd, 0x06fd, 0x06fd, 0x06fd, 0x06fd, 0x06fd, 0x0706, 0x0706, + 0x0706, 0x0706, 0x0706, 0x070f, 0x070f, 0x0720, 0x0720, 0x0729, + 0x0729, 0x0737, 0x0737, 0x0737, 0x073f, 0x0747, 0x0747, 0x0747, + 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0747, 0x0753, + 0x0753, 0x0753, 0x0753, 0x0753, 0x0753, 0x0753, 0x0753, 0x0753, + 0x0753, 0x0759, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, + 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, 0x0763, + 0x0763, 0x0763, 0x0773, 0x0773, 0x0773, 0x077c, 0x077c, 0x077c, + // Entry 140 - 17F + 0x077c, 0x0788, 0x0788, 0x0788, 0x0788, 0x0788, 0x0799, 0x0799, + 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, 0x0799, + 0x07a3, 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07ae, 0x07b8, 0x07b8, + 0x07b8, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07c1, 0x07cc, 0x07dc, + 0x07dc, 0x07dc, 0x07dc, 0x07dc, 0x07dc, 0x07ec, 0x07ec, 0x07ec, + 0x07ec, 0x07f8, 0x07f8, 0x0808, 0x0813, 0x0813, 0x0813, 0x0813, + 0x0813, 0x0813, 0x0813, 0x0813, 0x081e, 0x0827, 0x0827, 0x0827, + 0x0827, 0x0827, 0x0830, 0x0830, 0x0830, 0x0830, 0x0830, 0x0830, + // Entry 180 - 1BF + 0x0830, 0x083a, 0x083a, 0x083a, 0x0842, 0x0853, 0x0853, 0x0861, + 0x0861, 0x0861, 0x0868, 0x0868, 0x0871, 0x0871, 0x0871, 0x0871, + 0x0871, 0x0871, 0x0871, 0x0871, 0x0871, 0x087a, 0x087a, 0x087a, + 0x087a, 0x087a, 0x0882, 0x088e, 0x088e, 0x08a0, 0x08ab, 0x08ab, + 0x08ab, 0x08ab, 0x08ab, 0x08b5, 0x08b5, 0x08b5, 0x08c0, 0x08c0, + 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08c0, 0x08cf, 0x08cf, + 0x08cf, 0x08d7, 0x08da, 0x08da, 0x08da, 0x08da, 0x08da, 0x08e4, + 0x08e4, 0x08e4, 0x08e4, 0x08e4, 0x08ee, 0x0900, 0x0908, 0x0908, + // Entry 1C0 - 1FF + 0x0908, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, + 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, + 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0914, 0x0921, 0x0921, + 0x0921, 0x0921, 0x0921, 0x0921, 0x0921, 0x092a, 0x092a, 0x092a, + 0x092a, 0x092a, 0x092a, 0x0931, 0x0931, 0x0931, 0x0931, 0x093c, + 0x093c, 0x093c, 0x093c, 0x093c, 0x0945, 0x0945, 0x0945, 0x0945, + 0x0957, 0x0957, 0x095f, 0x095f, 0x095f, 0x0972, 0x0972, 0x0972, + 0x097f, 0x097f, 0x097f, 0x097f, 0x097f, 0x097f, 0x0990, 0x099d, + // Entry 200 - 23F + 0x09ab, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, + 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, 0x09b9, + 0x09b9, 0x09c1, 0x09c1, 0x09ca, 0x09ca, 0x09ca, 0x09ca, 0x09ca, + 0x09d5, 0x09d5, 0x09d5, 0x09d5, 0x09d5, 0x09e2, 0x09e2, 0x09e2, + 0x09e2, 0x09e2, 0x09e2, 0x09ed, 0x09ed, 0x09f8, 0x09f8, 0x0a13, + 0x0a13, 0x0a13, 0x0a13, 0x0a23, 0x0a2a, 0x0a2a, 0x0a2a, 0x0a2a, + 0x0a2a, 0x0a2a, 0x0a2a, 0x0a32, 0x0a32, 0x0a32, 0x0a32, 0x0a32, + 0x0a3e, 0x0a3e, 0x0a3e, 0x0a3e, 0x0a46, 0x0a46, 0x0a46, 0x0a46, + // Entry 240 - 27F + 0x0a46, 0x0a46, 0x0a46, 0x0a46, 0x0a46, 0x0a46, 0x0a46, 0x0a65, + 0x0a65, 0x0a7e, 0x0a7e, 0x0a9c, 0x0a9c, 0x0aaf, 0x0ac2, 0x0ad9, + 0x0aeb, 0x0afc, 0x0b0e, 0x0b28, 0x0b3a, 0x0b4b, 0x0b4b, 0x0b5c, + 0x0b6a, 0x0b77, 0x0b82, 0x0b9b, 0x0bb2, 0x0bbf, 0x0bbf, 0x0bd0, + 0x0bd0, 0x0be5, +} // Size: 1244 bytes + +// Total size for lang: 903410 bytes (903 KB) + +// Number of keys: 168 +var ( + scriptIndex = tagIndex{ + "", + "", + "AfakAghbAhomArabArmiArmnAvstBaliBamuBassBatkBengBlisBopoBrahBraiBugiBuhd" + + "CakmCansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgydEgyhEgypElba" + + "EthiGeokGeorGlagGothGranGrekGujrGuruHangHaniHanoHansHantHatrHebrHira" + + "HluwHmngHrktHungIndsItalJavaJpanJurcKaliKanaKharKhmrKhojKndaKoreKpel" + + "KthiLanaLaooLatfLatgLatnLepcLimbLinaLinbLisuLomaLyciLydiMahjMandMani" + + "MayaMendMercMeroMlymModiMongMoonMrooMteiMultMymrNarbNbatNkgbNkooNshu" + + "OgamOlckOrkhOryaOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPlrdPrtiRjngRoro" + + "RunrSamrSaraSarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrcSyreSyrj" + + "SyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirhUgar" + + "VaiiVispWaraWoleXpeoXsuxYiiiZinhZmthZsyeZsymZxxxZyyyZzzz", + } +) + +var scriptHeaders = [220]header{ + { // af + afScriptStr, + afScriptIdx, + }, + {}, // agq + {}, // ak + { // am + amScriptStr, + amScriptIdx, + }, + { // ar + arScriptStr, + arScriptIdx, + }, + {}, // ar-EG + { // as + "বঙালী", + []uint16{ // 13 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, + }, + }, + {}, // asa + { // ast + "afakacáucaso-albanésahomárabearamaicu imperialarmeniuavésticubalinésbamu" + + "mbassa vahbatakbengalínsímbolos de Blissbopomofobrahmibraillelontara" + + "buhidchakmasilábicu unificáu de los nativos canadiensescariuchamcher" + + "okicirthcoptuxipriotacirílicueslavónicu cirílicu eclesiásticu antigu" + + "udevanagarialfabetu Deserettaquigrafía Duployédemóticu exipcianuhier" + + "áticu exipcianuxeroglíficos exipcianoselbasanetíopekhutsuri xeorxan" + + "uxeorxanuglagolíticugóticugranthagrieguguyaratigurmukhihangulhanhanu" + + "nó’ohan simplificáuhan tradicionalhatranuhebréuḥiraganaxeroglíficos " + + "anatoliospahawh hmongsilabarios xaponeseshúngaru antiguuindusitálicu" + + " antiguuxavanésxaponésjurchenkayah likatakanakharoshthiḥemerkhojkica" + + "naréscoreanukpellekaithilannalaosianufraktur llatíngaélicu llatínlla" + + "tínlepchalimbullinial Allinial Balfabetu de Fraserlomaliciulidiumaha" + + "janimandéumaniquéuxeroglíficos mayesmendemeroíticu en cursivameroíti" + + "cumalayalammodimongoltipos Moonmromeitei mayekmultanibirmanuárabe de" + + "l norte antiguunabatéugeba del naxin’konüshuoghamol chikiorkhonoriya" + + "osmanyapalmirenuPau Cin Haupérmicu antiguuescritura ‘Phags-papahlavi" + + " d’inscripcionespahlavi de salteriupahlavi de llibrosfeniciufonéticu" + + " de Pollardpartu d’inscripcionesrejangrongorongorunessamaritanusarat" + + "iárabe del sur antiguusaurashtraescritura de signosshavianusharadasi" + + "ddhamkhudabadicingaléssora sompengsondanéssyloti nagrisiriacusiriacu" + + " estrangelosiriacu occidentalsiriacu orientaltagbanwatakritai letai " + + "lue nuevutamiltanguttai viettelugutengwartifinaghtagalogthaanatailan" + + "déstibetanutirhutaugaríticuvaifala visiblevarang kshitiwoleaipersa a" + + "ntiguucuneiforme sumeriu acadiuyiheredáuescritura matemáticasímbolos" + + "non escritucomúnescritura desconocida", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0016, 0x001a, 0x0020, 0x0031, 0x0038, 0x0041, + 0x0049, 0x004e, 0x0057, 0x005c, 0x0065, 0x0077, 0x007f, 0x0085, + 0x008c, 0x0093, 0x0098, 0x009e, 0x00cc, 0x00d1, 0x00d5, 0x00dc, + 0x00e1, 0x00e6, 0x00ee, 0x00f7, 0x0122, 0x012c, 0x013c, 0x0151, + 0x0164, 0x0178, 0x0190, 0x0197, 0x019e, 0x01af, 0x01b7, 0x01c3, + 0x01ca, 0x01d1, 0x01d7, 0x01df, 0x01e7, 0x01ed, 0x01f0, 0x01fb, + 0x020b, 0x021a, 0x0221, 0x0228, 0x0232, 0x0249, 0x0255, 0x0269, + 0x0279, 0x027e, 0x028e, 0x0296, 0x029e, 0x02a5, 0x02ad, 0x02b5, + // Entry 40 - 7F + 0x02bf, 0x02c6, 0x02cc, 0x02d4, 0x02db, 0x02e1, 0x02e7, 0x02ec, + 0x02f4, 0x0303, 0x0313, 0x031a, 0x0320, 0x0325, 0x032e, 0x0337, + 0x0349, 0x034d, 0x0352, 0x0357, 0x035f, 0x0366, 0x036f, 0x0382, + 0x0387, 0x039c, 0x03a6, 0x03af, 0x03b3, 0x03b9, 0x03c3, 0x03c6, + 0x03d2, 0x03d9, 0x03e0, 0x03f8, 0x0400, 0x040d, 0x0413, 0x0419, + 0x041e, 0x0426, 0x042c, 0x0431, 0x0438, 0x0441, 0x044c, 0x045c, + 0x0471, 0x048a, 0x049d, 0x04af, 0x04b6, 0x04ca, 0x04e1, 0x04e7, + 0x04f1, 0x04f6, 0x0500, 0x0506, 0x051c, 0x0526, 0x0539, 0x0541, + // Entry 80 - BF + 0x0548, 0x054f, 0x0558, 0x0561, 0x056d, 0x0576, 0x0582, 0x0589, + 0x059b, 0x05ad, 0x05bd, 0x05c5, 0x05ca, 0x05d0, 0x05dd, 0x05e2, + 0x05e8, 0x05f0, 0x05f6, 0x05fd, 0x0605, 0x060c, 0x0612, 0x061c, + 0x0624, 0x062b, 0x0635, 0x0638, 0x0644, 0x0651, 0x0657, 0x0664, + 0x067d, 0x067f, 0x0687, 0x069c, 0x069c, 0x06a5, 0x06b0, 0x06b6, + 0x06cb, + }, + }, + { // az + azScriptStr, + azScriptIdx, + }, + { // az-Cyrl + "Кирил", + []uint16{ // 28 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x000a, + }, + }, + {}, // bas + { // be + "арабÑкаеармÑнÑкаебенгальÑкаебапамофашрыфт БрайлÑкірыліцадÑванагарыÑфіопÑ" + + "каегрузінÑкаегрÑчаÑкаегуджараціГурмукхіхангыльханÑпрошчаны хантрады" + + "цыйны ханÑўрÑйÑкаехіраганаÑпонÑкаекатаканакхмерÑкаеканадакарÑйÑкаел" + + "аоÑкаелацінкамалаÑламÑтарамангольÑкаем’ÑнмарÑкаеорыÑÑінгальÑкаетамі" + + "льÑкаетÑлугутанатайÑкаетыбецкаеÑімвалынепіÑьменнызвычайнаеневÑдомае" + + " піÑьмо", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0038, 0x0038, 0x0048, 0x0048, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x006f, 0x006f, 0x0083, 0x0083, 0x0083, + 0x0083, 0x0083, 0x0083, 0x0083, 0x0095, 0x0095, 0x00a9, 0x00a9, + 0x00a9, 0x00a9, 0x00bb, 0x00cd, 0x00dd, 0x00eb, 0x00f1, 0x00f1, + 0x010a, 0x0125, 0x0125, 0x0137, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0157, 0x0157, 0x0157, 0x0167, + // Entry 40 - 7F + 0x0167, 0x0179, 0x0179, 0x0185, 0x0197, 0x0197, 0x0197, 0x0197, + 0x01a5, 0x01a5, 0x01a5, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, + 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, + 0x01b3, 0x01b3, 0x01b3, 0x01c3, 0x01c3, 0x01e3, 0x01e3, 0x01e3, + 0x01e3, 0x01e3, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, + 0x01fa, 0x01fa, 0x01fa, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, + 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, + 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, 0x0202, + // Entry 80 - BF + 0x0202, 0x0202, 0x0202, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, + 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x0218, 0x022c, + 0x022c, 0x022c, 0x0238, 0x0238, 0x0238, 0x0238, 0x0240, 0x024e, + 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, + 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x026c, 0x0282, 0x0294, + 0x02b3, + }, + }, + {}, // bem + {}, // bez + { // bg + bgScriptStr, + bgScriptIdx, + }, + {}, // bm + { // bn + bnScriptStr, + bnScriptIdx, + }, + { // bo + "རྒྱ་ཡིག་གསར་པà¼à½¢à¾’ྱ་ཡིག་རྙིང་པà¼à½–ོད་ཡིག་སྙན་བརྒྱུད༠ཡིག་རིགས་སུ་མ་བཀོད་པའི་" + + "ཟིན་à½à½¼à¼", + []uint16{ // 167 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x002a, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + // Entry 40 - 7F + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + // Entry 80 - BF + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, 0x0057, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00eb, + }, + }, + {}, // bo-IN + { // br + "arabekarameek impalaerelarmenianekavestekbalinekbengalibopomofoBraillebo" + + "ugiekkoptekkirillekkirillek henslavonekdevanagarihieroglifoù egiptek" + + "etiopekjorjianekglagolitekgotekgresianekgujaratigurmukhihangeulhanha" + + "n eeunaethan hengounelhebraekhiraganahieroglifoù Anatoliahenitalekja" + + "vanekjapanekkatakanakhmerkannadakoreaneklaoseklatin gouezeleklatinhi" + + "eroglifoù mayaekmalayalammongolekmyanmarogamoriyaruneksinghaleksunda" + + "neksirieksiriek EstrangelÄsiriek ar C’hornôgsiriek ar Retertamilekte" + + "lougoutagalogthaanathaitibetanekougaritekvaipersek kozhnotadur jedon" + + "ielarouezioùanskrivetboutinskritur dianav", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0018, 0x0022, 0x0029, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0037, 0x0037, 0x003f, 0x003f, + 0x0046, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x0053, 0x0053, 0x005b, 0x006f, 0x0079, 0x0079, 0x0079, + 0x0079, 0x0079, 0x008d, 0x008d, 0x0094, 0x0094, 0x009d, 0x00a7, + 0x00ac, 0x00ac, 0x00b5, 0x00bd, 0x00c5, 0x00cc, 0x00cf, 0x00cf, + 0x00da, 0x00e7, 0x00e7, 0x00ee, 0x00f6, 0x010b, 0x010b, 0x010b, + 0x010b, 0x010b, 0x0114, 0x011b, 0x0122, 0x0122, 0x0122, 0x012a, + // Entry 40 - 7F + 0x012a, 0x012f, 0x012f, 0x0136, 0x013e, 0x013e, 0x013e, 0x013e, + 0x0144, 0x0144, 0x0153, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x016b, + 0x016b, 0x016b, 0x016b, 0x0174, 0x0174, 0x017c, 0x017c, 0x017c, + 0x017c, 0x017c, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, 0x0183, + 0x0187, 0x0187, 0x0187, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, + 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, 0x018c, + 0x018c, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, 0x0191, + // Entry 80 - BF + 0x0191, 0x0191, 0x0191, 0x019a, 0x019a, 0x01a2, 0x01a2, 0x01a8, + 0x01ba, 0x01cf, 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01e5, + 0x01e5, 0x01e5, 0x01ed, 0x01ed, 0x01ed, 0x01f4, 0x01fa, 0x01fe, + 0x0207, 0x0207, 0x0210, 0x0213, 0x0213, 0x0213, 0x0213, 0x021e, + 0x021e, 0x021e, 0x021e, 0x022e, 0x022e, 0x0238, 0x0241, 0x0247, + 0x0255, + }, + }, + { // brx + "अरबीशहनशाही आरामाईकअरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤…वसà¥à¤¤à¤¨à¥à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤•à¥€à¤¬à¤‚गालीबà¥à¤²à¥€à¤¸ चीनà¥à¤¹à¤¬à¥‹à¤ªà¥‹à¤®à¥‹à¤«à¥‹à¤¬à¥à¤°" + + "हà¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¥à¤—ीनीबà¥à¤¹à¥€à¤¦à¤¯à¥à¤¨à¥€à¤«à¤¾à¤ˆà¤¡ कैनेडियन अबॉरीजीनल सीलैबीकà¥à¤¸à¤•à¤¾à¤°à¤¿à¤¯à¤¨à¤•à¥…म" + + "चिरूकीसिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¸à¥€à¤ªà¥à¤°à¥€à¤“टà¥à¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ चरà¥à¤š सिरिलिकà¥à¤¦à¥‡à¤µà¤¨à¤¾à¤—रीदेसेर" + + "टà¥à¤®à¥€à¤¸à¥à¤°à¥€ डैमोटीकà¥à¤®à¥€à¤¸à¥à¤°à¥€ हैरैटीकà¥à¤®à¥€à¤¸à¥à¤°à¥€ हैरोगà¥à¤²à¥€à¤«à¤¼à¥à¤ˆà¤¥à¥‹à¤ªà¤¿à¤¯à¤¾à¤ˆà¤œà¥‹à¤°à¥à¤œà¥€à¤¯à¤¨" + + " खà¥à¤¤à¤¸à¥à¤°à¥€à¤œà¥‹à¤°à¥à¤œà¥€à¤¯à¤¨à¤—à¥à¤²à¥ˆà¤—ोलिटीकगौथीकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¤®à¥à¤–ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¾à¤¨à¥à¤¨à¥à¤¸à¤°à¤²" + + "ीकृत हानपारमà¥à¤ªà¤°à¤¿à¤• हानहिबà¥à¤°à¥‚हीरागानापाहवाह हà¥à¤®à¥Œà¤‚गकाताकाना या हीरागा" + + "नापà¥à¤°à¤¾à¤¨à¥€ हंगैरीयनसिनà¥à¤§à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ इटैलियनजावानीसजापानीकायाह लीकाताकाना" + + "खरोषà¥à¤Ÿà¥€à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¥ˆà¤•à¥à¤¤à¥à¤° लैटिनगैलीक लैटिनलैटिनलेप" + + "चालिमà¥à¤¬à¥à¤²à¥€à¤¨à¥€à¤¯à¤° à¤à¤²à¥€à¤¨à¥€à¤¯à¤° बीलीसीयनलीडीयनमांडेमानीकीमाया हीरोगà¥à¤²à¥€à¤«à¥à¤®à¥‡à¤°" + + "ोईटीकà¥à¤®à¤²à¤¯à¤¾à¤²à¤®à¥à¤®à¤‚गोलियाईमà¥à¤¨à¥à¤®à¥‡à¤¤à¥‡à¤ˆ मयेकमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°à¥à¤¨à¥à¤—कोओगहैमओल चीकीओरखो" + + "नउड़ियाओसà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¨à¥€ परà¥à¤®à¥€à¤•à¥à¤«à¤¾à¤—à¥à¤¸ पाबà¥à¤• (सालटर) पहलवीफोनीशीयनपौल" + + "ारà¥à¤¡à¤¼ फोनेटीकरेजेंगरोंगोरोंगोरूनिकसमारतीसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‚केतिक लेख" + + "शेवियनसिंहालीसूडानीसीलà¥à¤¹à¥‹à¤Ÿà¥€ नागरीसीरीआकà¤à¤¸à¥à¤Ÿà¥à¤°à¤¾à¤‚गलो सीरीआकपशà¥à¤šà¥€à¤®à¥€ स" + + "ीरीआकपूरà¥à¤µà¥€ सीरीआकतागबानवाताई लेनया ताई लà¥à¤à¤¤à¤®à¥€à¤³à¤¤à¥‡à¤²à¥à¤—à¥à¤¤à¥‡à¤‚गवारतीफीना" + + "ग़टागालॉगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤Šà¤—ारीटीकवाईवीज़ीबल बोलीपà¥à¤°à¤¾à¤¨à¥€ फारसीसà¥à¤®à¥‡à¤°à¥‹ अ" + + "कà¥à¤•à¤¾à¤¡à¤¼à¥€ कà¥à¤¨à¥‡à¤ˆà¤«à¥‰à¤°à¥à¤®à¤¯à¥€à¤µà¤¿à¤°à¤¾à¤¸à¤¤à¤…लिखितआमअजà¥à¤žà¤¾à¤¤ या अवैध लिपि", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0037, 0x0055, 0x006a, + 0x0076, 0x0076, 0x0076, 0x0082, 0x0094, 0x00b3, 0x00cb, 0x00e0, + 0x00ef, 0x0101, 0x0110, 0x0110, 0x0179, 0x018b, 0x0194, 0x01a6, + 0x01b5, 0x01c4, 0x01df, 0x01f7, 0x022f, 0x0247, 0x025c, 0x025c, + 0x0287, 0x02b2, 0x02e6, 0x02e6, 0x02fe, 0x032c, 0x0344, 0x0365, + 0x0374, 0x0374, 0x0383, 0x0398, 0x03ad, 0x03bc, 0x03c5, 0x03d7, + 0x03f6, 0x041b, 0x041b, 0x042d, 0x0445, 0x0445, 0x046a, 0x04a2, + 0x04cd, 0x04df, 0x0507, 0x051c, 0x052e, 0x052e, 0x0544, 0x055c, + // Entry 40 - 7F + 0x0571, 0x0580, 0x0580, 0x0592, 0x05a7, 0x05a7, 0x05a7, 0x05b3, + 0x05bc, 0x05e7, 0x0606, 0x0615, 0x0624, 0x0636, 0x064c, 0x0665, + 0x0665, 0x0665, 0x0677, 0x0689, 0x0689, 0x0698, 0x06aa, 0x06d5, + 0x06d5, 0x06d5, 0x06f0, 0x0705, 0x0705, 0x0720, 0x072c, 0x072c, + 0x0748, 0x0748, 0x0763, 0x0763, 0x0763, 0x0763, 0x0772, 0x0772, + 0x0781, 0x0794, 0x07a3, 0x07b5, 0x07d0, 0x07d0, 0x07d0, 0x07f8, + 0x080e, 0x080e, 0x080e, 0x0839, 0x0851, 0x087f, 0x087f, 0x0891, + 0x08af, 0x08be, 0x08d0, 0x08df, 0x08df, 0x08fa, 0x091c, 0x092e, + // Entry 80 - BF + 0x092e, 0x092e, 0x092e, 0x0943, 0x0943, 0x0955, 0x097d, 0x098f, + 0x09c3, 0x09eb, 0x0a10, 0x0a28, 0x0a28, 0x0a38, 0x0a55, 0x0a61, + 0x0a61, 0x0a61, 0x0a73, 0x0a88, 0x0aa0, 0x0ab5, 0x0ac1, 0x0aca, + 0x0adf, 0x0adf, 0x0af7, 0x0b00, 0x0b22, 0x0b22, 0x0b22, 0x0b44, + 0x0b8e, 0x0b94, 0x0ba6, 0x0ba6, 0x0ba6, 0x0ba6, 0x0bb8, 0x0bbe, + 0x0bf1, + }, + }, + { // bs + "arapsko pismoimperijsko aramejsko pismojermensko pismoavestansko pismoba" + + "lijsko pismobatak pismobengalsko pismoblisimboliÄno pismobopomofo pi" + + "smobramansko pismobrajevo pismobuginsko pismobuhidsko pismoÄakmansko" + + " pismoUjedinjeni kanadski aboridžinski silabicikarijsko pismoÄamsko " + + "pismoÄerokicirt pismokoptiÄko pismokiparsko pismoćirilicaStarosloven" + + "ska crkvena ćirilicadevanagaridezeretegipatsko narodno pismoegipatsk" + + "o hijeratsko pismoegipatski hijeroglifietiopsko pismogruzijsko khuts" + + "uri pismogruzijsko pismoglagoljicagotikagrÄko pismogudžarati pismogu" + + "rmuki pismohangul pismohan pismohanuno pismopojednostavljeno hansko " + + "pismotradicionalno hansko pismohebrejsko pismohiraganapahawh hmong p" + + "ismoKatakana ili HiraganaStaromaÄ‘arsko pismoinduÅ¡ko ismostaro italsk" + + "o pismojavansko pismojapansko pismokajah li pismokatakanakaroÅ¡ti pis" + + "mokmersko pismokanada pismokorejsko pismokaićansko pismolanna pismol" + + "aosko pismolatinica (fraktur varijanta)galska latinicalatinicalepÄa " + + "pismolimbu pismolinearno A pismolinearno B pismolisijsko pismolidijs" + + "ko pismomandeansko pismomanihejsko pismomajanski hijeroglifimeroitik" + + " pismomalajalam pismomongolsko pismomeseÄevo pismomeitei majek pismo" + + "mijanmarsko pismon’ko pismoogham pismool Äiki pismoorkhon pismoorija" + + " pismoosmanja pismostaro permiksko pismophags-pa pismopisani pahlavi" + + "psalter pahlavipahlavi pismofeniÄansko pismopolard fonetsko pismopis" + + "ani partianrejang pismorongorongo pismorunsko pismosamaritansko pism" + + "osarati pismosauraÅ¡tra pismoznakovno pismoÅ¡avian pismosinhala pismos" + + "iloti nagri pismosirijsko pismosirijsko estrangelo pismozapadnosirij" + + "sko pismopismo istoÄne Sirijetagbanva pismotai le pismonovo tai lue " + + "pismotamilsko pismotai viet pismotelugu pismotengvar pismotifinag pi" + + "smotagalogtana pismotajlandsko pismotibetansko pismougaritsko pismov" + + "ai pismovidljivi govorstaropersijsko pismosumersko-akadsko kuneiform" + + " pismoji pismonasledno pismomatematiÄka notacijasimbolinepisani jezi" + + "kzajedniÄko pismonepoznato pismo", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x0027, 0x0036, 0x0046, + 0x0054, 0x0054, 0x0054, 0x005f, 0x006e, 0x0082, 0x0090, 0x009f, + 0x00ac, 0x00ba, 0x00c8, 0x00d8, 0x0102, 0x0110, 0x011d, 0x0124, + 0x012e, 0x013d, 0x014b, 0x0154, 0x0174, 0x017e, 0x0185, 0x0185, + 0x019c, 0x01b6, 0x01cb, 0x01cb, 0x01d9, 0x01f1, 0x0200, 0x020a, + 0x0210, 0x0210, 0x021c, 0x022c, 0x0239, 0x0245, 0x024e, 0x025a, + 0x0277, 0x0291, 0x0291, 0x02a0, 0x02a8, 0x02a8, 0x02ba, 0x02cf, + 0x02e3, 0x02f0, 0x0303, 0x0311, 0x031f, 0x031f, 0x032d, 0x0335, + // Entry 40 - 7F + 0x0343, 0x0350, 0x0350, 0x035c, 0x036a, 0x036a, 0x037a, 0x0385, + 0x0391, 0x03ad, 0x03bc, 0x03c4, 0x03d0, 0x03db, 0x03eb, 0x03fb, + 0x03fb, 0x03fb, 0x0409, 0x0417, 0x0417, 0x0427, 0x0437, 0x044b, + 0x044b, 0x044b, 0x0459, 0x0468, 0x0468, 0x0477, 0x0486, 0x0486, + 0x0498, 0x0498, 0x04a9, 0x04a9, 0x04a9, 0x04a9, 0x04b5, 0x04b5, + 0x04c0, 0x04ce, 0x04da, 0x04e5, 0x04f2, 0x04f2, 0x04f2, 0x0507, + 0x0515, 0x0523, 0x0532, 0x053f, 0x0550, 0x0565, 0x0573, 0x057f, + 0x058f, 0x059b, 0x05ad, 0x05b9, 0x05b9, 0x05c9, 0x05d7, 0x05e4, + // Entry 80 - BF + 0x05e4, 0x05e4, 0x05e4, 0x05f1, 0x05f1, 0x05f1, 0x0603, 0x0611, + 0x062a, 0x063f, 0x0654, 0x0662, 0x0662, 0x066e, 0x0680, 0x068e, + 0x068e, 0x069c, 0x06a8, 0x06b5, 0x06c2, 0x06c9, 0x06d3, 0x06e3, + 0x06f3, 0x06f3, 0x0702, 0x070b, 0x0719, 0x0719, 0x0719, 0x072d, + 0x074d, 0x0755, 0x0763, 0x0778, 0x0778, 0x077f, 0x078d, 0x079e, + 0x07ad, + }, + }, + { // bs-Cyrl + "арапÑко пиÑмоимперијÑко арамејÑко пиÑмојерменÑко пиÑмоавеÑтанÑко пиÑмоба" + + "лијÑко пиÑмобатак пиÑмобенгалÑко пиÑмоблиÑимболично пиÑмобопомофо п" + + "иÑмобраманÑко пиÑмоБрајево пиÑмобугинÑко пиÑмобухидÑко пиÑмочакманÑ" + + "ко пиÑмоуједињени канадÑки абориџинÑки ÑилабицикаријÑко пиÑмочамÑко" + + " пиÑмоЧерокицирт пиÑмокоптичко пиÑмокипарÑко пиÑмоЋирилицаСтароÑлове" + + "нÑка црквена ћирилицаДеванагариДезеретегипатÑко народно пиÑмоегипат" + + "Ñко хијератÑко пиÑмоегипатÑки хијероглифиетиопÑко пиÑмогрузијÑко кх" + + "утÑури пиÑмогрузијÑко пиÑмоглагољицаГотикагрчко пиÑмогујарати пиÑмо" + + "гурмуки пиÑмохангулханханунопоједноÑтављени хантрадиционални ханхеб" + + "рејÑко пиÑмоХираганапахав хмонг пиÑмоКатакана или ХираганаÑтаромађа" + + "Ñ€Ñко пиÑмоиндушко пиÑмоÑтари италикјаванÑко пиÑмојапанÑко пиÑмокаја" + + "Ñ…-ли пиÑмоКатаканакарошти пиÑмокмерÑко пиÑмоканнада пиÑмокорејÑко п" + + "иÑмокаитиланна пиÑмолаошко пиÑмолатиница (фрактур варијанта)галÑка " + + "латиницаЛатиницалепча пиÑмолимбу пиÑмолинеарно РпиÑмолинеарно Б пи" + + "ÑмолиÑијÑко пиÑмолидијÑко пиÑмомандеанÑко пиÑмоманихејÑко пиÑмомаја" + + "нÑки хијероглифимероитик пиÑмомалајалам пиÑмомонголÑко пиÑмомеÑечев" + + "о пиÑмомеитеи мајек пиÑмомијанмарÑко пиÑмон’ко пиÑмоогамÑко пиÑмоол" + + " чики пиÑмоорконÑко пиÑмооријанÑко пиÑмооÑмањанÑко пиÑмоÑтаро пермик" + + "Ñко пиÑмопагÑ-па пиÑмопиÑани пахлавипÑалтер пахлавипахлави пиÑмоФен" + + "ичанÑко пиÑмопоралд фонетÑко пиÑмопиÑани партианрејанг пиÑморонгоро" + + "нго пиÑморунÑко пиÑмоÑамаританÑко пиÑмоÑарати пиÑмоÑаураштра пиÑмоз" + + "наковно пиÑмошавијанÑко пиÑмоÑинхала пиÑмоÑилоти нагри пиÑмоÑиријÑк" + + "о пиÑмоÑиријÑко еÑтрангело пиÑмозападноÑиријÑко пиÑмопиÑмо иÑточне " + + "Сиријетагбанва пиÑмотаи ле пиÑмонови таи луетамилÑко пиÑмотаи виет " + + "пиÑмотелугу пиÑмотенгвар пиÑмотифинаг пиÑмоТагалогтхана пиÑмотајлан" + + "дÑко пиÑмотибетанÑко пиÑмоугаритÑко пиÑмоваи пиÑмовидљиви говорÑтар" + + "оперÑијÑко пиÑмоÑумерÑко-акадÑко кунеиформ пиÑмоји пиÑмонаÑледно пи" + + "Ñмоматематичка нотацијаÑимболиÐепиÑани језикзаједничко пиÑмоÐепозна" + + "то или неважеће пиÑмо", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0019, 0x004b, 0x0068, 0x0087, + 0x00a2, 0x00a2, 0x00a2, 0x00b7, 0x00d4, 0x00f9, 0x0114, 0x0131, + 0x014a, 0x0165, 0x0180, 0x019d, 0x01e8, 0x0203, 0x021a, 0x0226, + 0x0239, 0x0254, 0x026f, 0x027f, 0x02bb, 0x02cf, 0x02dd, 0x02dd, + 0x0309, 0x033b, 0x0364, 0x0364, 0x037f, 0x03ad, 0x03ca, 0x03dc, + 0x03e8, 0x03e8, 0x03fd, 0x0418, 0x0431, 0x043d, 0x0443, 0x044f, + 0x0474, 0x0495, 0x0495, 0x04b2, 0x04c2, 0x04c2, 0x04e2, 0x050a, + 0x052f, 0x0548, 0x055f, 0x057a, 0x0595, 0x0595, 0x05af, 0x05bf, + // Entry 40 - 7F + 0x05d8, 0x05f1, 0x05f1, 0x060a, 0x0625, 0x0625, 0x062f, 0x0644, + 0x065b, 0x068f, 0x06ac, 0x06bc, 0x06d1, 0x06e6, 0x0704, 0x0722, + 0x0722, 0x0722, 0x073d, 0x0758, 0x0758, 0x0777, 0x0796, 0x07bd, + 0x07bd, 0x07bd, 0x07d8, 0x07f5, 0x07f5, 0x0812, 0x082d, 0x082d, + 0x084f, 0x084f, 0x0870, 0x0870, 0x0870, 0x0870, 0x0884, 0x0884, + 0x089d, 0x08b5, 0x08d0, 0x08ed, 0x090c, 0x090c, 0x090c, 0x0934, + 0x094c, 0x0967, 0x0984, 0x099d, 0x09bc, 0x09e4, 0x09ff, 0x0a16, + 0x0a35, 0x0a4c, 0x0a6f, 0x0a86, 0x0a86, 0x0aa3, 0x0abe, 0x0add, + // Entry 80 - BF + 0x0add, 0x0add, 0x0add, 0x0af6, 0x0af6, 0x0af6, 0x0b18, 0x0b33, + 0x0b63, 0x0b8c, 0x0bb2, 0x0bcd, 0x0bcd, 0x0be3, 0x0bf9, 0x0c14, + 0x0c14, 0x0c2e, 0x0c45, 0x0c5e, 0x0c77, 0x0c85, 0x0c9a, 0x0cb9, + 0x0cd8, 0x0cd8, 0x0cf5, 0x0d06, 0x0d1f, 0x0d1f, 0x0d1f, 0x0d46, + 0x0d83, 0x0d92, 0x0dad, 0x0dd4, 0x0dd4, 0x0de2, 0x0dfd, 0x0e1c, + 0x0e51, + }, + }, + { // ca + caScriptStr, + caScriptIdx, + }, + { // ce + "ӀаьрбийнÑрмалойнбенгалхойнбопомофобрайлÑкириллицадеванагариÑфиопингуьржи" + + "йнгрекийнгуджаратигурмукхихангылькитайнатта китайнламаÑтан китайнжу" + + "гтийнхираганаÑпонийнкатаканакхмерийнканнадакорейнлаоÑÑийнлатинанмал" + + "аÑлийнмонголийнмьÑнманийнориÑингалхойнтамилхойнтелугутаанатайнтибет" + + "хойнÑимволашйоза доцумаÑÑара а тӀеÑцнадоьвзуш доцу йоза", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0034, 0x0034, 0x0044, 0x0044, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0062, 0x0062, 0x0076, 0x0076, 0x0076, + 0x0076, 0x0076, 0x0076, 0x0076, 0x0084, 0x0084, 0x0094, 0x0094, + 0x0094, 0x0094, 0x00a2, 0x00b4, 0x00c4, 0x00d2, 0x00de, 0x00de, + 0x00f3, 0x0110, 0x0110, 0x011e, 0x012e, 0x012e, 0x012e, 0x012e, + 0x012e, 0x012e, 0x012e, 0x012e, 0x013c, 0x013c, 0x013c, 0x014c, + // Entry 40 - 7F + 0x014c, 0x015c, 0x015c, 0x016a, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0186, 0x0186, 0x0186, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, + 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, + 0x0194, 0x0194, 0x0194, 0x01a6, 0x01a6, 0x01b8, 0x01b8, 0x01b8, + 0x01b8, 0x01b8, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, 0x01cc, + 0x01cc, 0x01cc, 0x01cc, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, + 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, + 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, 0x01d2, + // Entry 80 - BF + 0x01d2, 0x01d2, 0x01d2, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01e6, 0x01f8, + 0x01f8, 0x01f8, 0x0204, 0x0204, 0x0204, 0x0204, 0x020e, 0x0216, + 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, + 0x0228, 0x0228, 0x0228, 0x0228, 0x0228, 0x0238, 0x0249, 0x0269, + 0x0289, + }, + }, + {}, // cgg + { // chr + "ᎡᎳáˆáŽ©á£áŽ³áŽ©á²á‚Ꭲ á—ᎪáªáŽµáŽ áŽ¯á—Ꭸ á“Ꮆá‚ᎨᎤá¦áá— á“Ꮆá‚ᎨᎳá—Ꮎá„á¬áŽµáá›áŽ¾ Ꭰáá“á©á›áá™á—", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x0015, + 0x0015, 0x0015, 0x0015, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + 0x0044, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + // Entry 40 - 7F + 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + 0x005d, 0x005d, 0x005d, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + // Entry 80 - BF + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0091, + }, + }, + { // ckb + "عەرەبیئەرمەنیبەنگالیبۆپۆمۆÙۆبرەیلسریلیکدەڤەناگەریئەتیۆپیکگورجییۆنانیگوجە" + + "راتیگورموکھیھانگولهیبرێھیراگاناژاپۆنیکاتاکاناخمێریکەنەداکۆریاییلاول" + + "اتینیمالایالاممەنگۆلیمیانمارئۆریاسینھالاتامیلیتیلوگوتانەتایلەندی", + []uint16{ // 152 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0028, 0x0028, 0x0038, 0x0038, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x004e, 0x004e, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0072, 0x0072, 0x007c, 0x007c, + 0x007c, 0x007c, 0x0088, 0x0098, 0x00a8, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00be, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00da, 0x00da, 0x00da, 0x00ea, + // Entry 40 - 7F + 0x00ea, 0x00f4, 0x00f4, 0x0100, 0x010e, 0x010e, 0x010e, 0x010e, + 0x0114, 0x0114, 0x0114, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0132, 0x0132, 0x0140, 0x0140, 0x0140, + 0x0140, 0x0140, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, 0x014e, + 0x014e, 0x014e, 0x014e, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, + // Entry 80 - BF + 0x0158, 0x0158, 0x0158, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, + 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0166, 0x0172, + 0x0172, 0x0172, 0x017e, 0x017e, 0x017e, 0x017e, 0x0186, 0x0196, + }, + }, + { // cs + csScriptStr, + csScriptIdx, + }, + { // cy + "ArabaiddArmenaiddBengalaiddBopomofoBrailleCyriligDevanagariEthiopigGeorg" + + "aiddGroegaiddGwjarataiddGwrmwciHangulHanHan symledigHan traddodiadol" + + "HebreigHiraganaJapaneaiddCatacanaChmeraiddCanaraiddCoreaiddLaoaiddLl" + + "adinMalayalamaiddMongolaiddMyanmaraiddOgamOrïaiddSinhanaiddTamilaidd" + + "TeluguThaanaTaiTibetaiddSymbolauAnysgrifenedigCyffredinSgript anhysb" + + "ys", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x001b, 0x001b, 0x0023, 0x0023, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x0031, 0x0031, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x0043, 0x0043, 0x004c, 0x004c, + 0x004c, 0x004c, 0x0055, 0x0060, 0x0067, 0x006d, 0x0070, 0x0070, + 0x007c, 0x008c, 0x008c, 0x0093, 0x009b, 0x009b, 0x009b, 0x009b, + 0x009b, 0x009b, 0x009b, 0x009b, 0x00a5, 0x00a5, 0x00a5, 0x00ad, + // Entry 40 - 7F + 0x00ad, 0x00b6, 0x00b6, 0x00bf, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00ce, 0x00ce, 0x00ce, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, + 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, + 0x00d4, 0x00d4, 0x00d4, 0x00e1, 0x00e1, 0x00eb, 0x00eb, 0x00eb, + 0x00eb, 0x00eb, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, + 0x00fa, 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, + // Entry 80 - BF + 0x0102, 0x0102, 0x0102, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, + 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x0115, + 0x0115, 0x0115, 0x011b, 0x011b, 0x011b, 0x011b, 0x0121, 0x0124, + 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, + 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x0135, 0x0143, 0x014c, + 0x015b, + }, + }, + { // da + daScriptStr, + daScriptIdx, + }, + {}, // dav + { // de + deScriptStr, + deScriptIdx, + }, + {}, // de-CH + {}, // dje + { // dsb + "arabskiarmeÅ„skibengalskibopomofobraillowe pismokyriliskidevanagarietiopi" + + "skigeorgiskigrichiskigujaratigurmukhihangulhanzjadnorjone hantradici" + + "onalne hanhebrejskihiraganajapaÅ„skikatakanakhmerkannadakorejskilaosk" + + "iÅ‚atyÅ„skimalayalamskimongolskiburmaskioriyasinghaleskitamilskitelugu" + + "thaanathaiskitibetskisymbolebźez pismapowÅ¡yknenjeznate pismo", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0021, 0x0021, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0039, 0x0039, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004c, 0x004c, 0x0055, 0x0055, + 0x0055, 0x0055, 0x005e, 0x0066, 0x006e, 0x0074, 0x0077, 0x0077, + 0x0086, 0x0097, 0x0097, 0x00a0, 0x00a8, 0x00a8, 0x00a8, 0x00a8, + 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00b1, 0x00b1, 0x00b1, 0x00b9, + // Entry 40 - 7F + 0x00b9, 0x00be, 0x00be, 0x00c5, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00d3, 0x00d3, 0x00d3, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00e9, 0x00e9, 0x00f2, 0x00f2, 0x00f2, + 0x00f2, 0x00f2, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x00fa, + 0x00fa, 0x00fa, 0x00fa, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + // Entry 80 - BF + 0x00ff, 0x00ff, 0x00ff, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, + 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x0112, + 0x0112, 0x0112, 0x0118, 0x0118, 0x0118, 0x0118, 0x011e, 0x0125, + 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, + 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x0134, 0x013f, 0x0148, + 0x0156, + }, + }, + {}, // dua + {}, // dyo + { // dz + "ཨེ་ར་བིཀ་ཡིག་གུཨར་མི་ནི་ཡཱན་ཡིག་གུབངྒ་ལ་ཡིག་གུབོ་པོ་མོ་ཕཱོ་ཡིག་གུའབུར་ཡི" + + "གསིརིལ་ལིཀ་ཡིག་གུདེ་à½à¼‹à½“་ག་རི་ཡིག་གུཨི་à½à½²à¼‹à½¡à½¼à¼‹à½”ིཀ྄་ཡིག་གུཇཽ་ཇི་ཡཱན་ཡ" + + "ིག་གུགྲིཀ་ཡིག་གུགུ་ཇ་ར་à½à½²à¼‹à½¡à½²à½‚་གུགུ་རུ་མུ་à½à¼‹à½¡à½²à½‚་གུཧཱན་གུལ་ཡིག་གུརྒྱ" + + "་ནག་ཡིག་གུརྒྱ་ཡིག་ ལུགས་གསར་ལུགས་རྙིང་ རྒྱ་ཡིགཧེ་བྲུ་ཡིག་གུཇ་པཱན་ག" + + "ྱི་ཧི་ར་ག་ན་ཡིག་གུཇ་པཱན་ཡིག་གུཇ་པཱན་གྱི་ཀ་à½à¼‹à½€à¼‹à½“་ཡིག་གུà½à½ºà¼‹à½˜à½ºà½¢à¼‹à½¡à½²à½‚་ག" + + "ུཀ་ན་ཌ་ཡིག་གུཀོ་རི་ཡཱན་ཡིག་གུལའོ་ཡིག་གུལེ་ཊིན་ཡིག་གུམ་ལ་ཡ་ལམ་ཡིག་ག" + + "ུསོག་པོའི་ཡིག་གུབར་མིས་ཡིག་གུཨོ་རི་ཡ་ཡིག་གུསིན་ཧ་ལ་རིག་གུà½à¼‹à½˜à½²à½£à¼‹à½¡à½²à½‚" + + "་གུà½à½ºà¼‹à½£à½´à¼‹à½‚ུ་ཡིག་གུà½à½±à¼‹à½“་ཡིག་གུà½à½±à½ à½²à¼‹à½¡à½²à½‚་གུང་བཅས་ཀྱི་ཡིག་གུམཚན་རྟགསཡི" + + "ག་à½à½¼à½‚་མ་བཀོདཔསྤྱིཡིགངོ་མ་ཤེས་པའི་ཡི་གུ", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x002d, 0x002d, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x008a, 0x008a, 0x00c3, 0x00c3, + 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00db, 0x010b, 0x010b, 0x0141, 0x0141, 0x0141, + 0x0141, 0x0141, 0x0141, 0x0141, 0x017d, 0x017d, 0x01ad, 0x01ad, + 0x01ad, 0x01ad, 0x01ce, 0x01fe, 0x0231, 0x025b, 0x0282, 0x0282, + 0x02b6, 0x02ea, 0x02ea, 0x0311, 0x035c, 0x035c, 0x035c, 0x035c, + 0x035c, 0x035c, 0x035c, 0x035c, 0x0380, 0x0380, 0x0380, 0x03c8, + // Entry 40 - 7F + 0x03c8, 0x03ef, 0x03ef, 0x0413, 0x0443, 0x0443, 0x0443, 0x0443, + 0x0461, 0x0461, 0x0461, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, + 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, 0x0488, + 0x0488, 0x0488, 0x0488, 0x04b5, 0x04b5, 0x04e2, 0x04e2, 0x04e2, + 0x04e2, 0x04e2, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, 0x0509, + 0x0509, 0x0509, 0x0509, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, + 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, + 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, 0x0533, + // Entry 80 - BF + 0x0533, 0x0533, 0x0533, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, + 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x055d, 0x0581, + 0x0581, 0x0581, 0x05ae, 0x05ae, 0x05ae, 0x05ae, 0x05cf, 0x05f0, + 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, + 0x0620, 0x0620, 0x0620, 0x0620, 0x0620, 0x0638, 0x0665, 0x067a, + 0x06b0, + }, + }, + {}, // ebu + { // ee + "ArabiagbeŋɔŋlÉ”armeniagbeŋɔŋlÉ”bengaligbeŋɔŋlÉ”bopomfogbeŋɔŋlÉ”braillegbeŋɔŋ" + + "lÉ”CyrillicgbeŋɔŋlÉ”devanagarigbeŋɔŋlÉ”ethiopiagbeŋɔŋlÉ”gÉ”giagbeŋɔŋlÉ”gri" + + "sigbeŋɔŋlÉ”gudzaratigbeŋɔŋlÉ”gurmukhigbeŋɔŋlÉ”hangulgbeŋɔŋlÉ”hangbeŋɔŋlÉ”" + + "HansgbeŋɔŋlÉ”Blema HantgbeÅ‹cÅ‹lÉ”hebrigbeŋɔŋlÉ”hiraganagbeŋɔŋlÉ”Japaneseg" + + "beŋɔŋlÉ”katakanagbeŋɔŋlÉ”khmergbeŋɔŋlÉ”kannadagbeŋɔŋlÉ”KoreagbeŋɔŋlÉ”laog" + + "beŋɔŋlÉ”LatingbeŋɔŋlÉ”malayagbeŋɔŋlÉ”mongoliagbeŋɔŋlÉ”myanmargbeŋɔŋlÉ”ori" + + "yagbeŋɔŋlÉ”sinhalagbeŋɔŋlÉ”tamilgbeŋɔŋlÉ”telegugbeŋɔŋlÉ”thaanagbeŋɔŋlÉ”ta" + + "igbeŋɔŋlÉ”tibetgbeŋɔŋlɔŋɔŋlÉ”dzesiwogbemaÅ‹lÉ”gbeŋɔŋlÉ” bÉ”bÉ”gbeŋɔŋlÉ” many" + + "a", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0038, 0x0038, 0x004b, 0x004b, + 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, + 0x005e, 0x005e, 0x005e, 0x0072, 0x0072, 0x0088, 0x0088, 0x0088, + 0x0088, 0x0088, 0x0088, 0x0088, 0x009c, 0x009c, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00bf, 0x00d4, 0x00e8, 0x00fa, 0x0109, 0x0109, + 0x0119, 0x012e, 0x012e, 0x013f, 0x0153, 0x0153, 0x0153, 0x0153, + 0x0153, 0x0153, 0x0153, 0x0153, 0x0167, 0x0167, 0x0167, 0x017b, + // Entry 40 - 7F + 0x017b, 0x018c, 0x018c, 0x019f, 0x01b0, 0x01b0, 0x01b0, 0x01b0, + 0x01bf, 0x01bf, 0x01bf, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01d0, 0x01e2, 0x01e2, 0x01f6, 0x01f6, 0x01f6, + 0x01f6, 0x01f6, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, + 0x0209, 0x0209, 0x0209, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, + 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, + 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, 0x021a, + // Entry 80 - BF + 0x021a, 0x021a, 0x021a, 0x022d, 0x022d, 0x022d, 0x022d, 0x022d, + 0x022d, 0x022d, 0x022d, 0x022d, 0x022d, 0x022d, 0x022d, 0x023e, + 0x023e, 0x023e, 0x0250, 0x0250, 0x0250, 0x0250, 0x0262, 0x0271, + 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, + 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0292, 0x029c, 0x02af, + 0x02c1, + }, + }, + { // el + elScriptStr, + elScriptIdx, + }, + { // en + enScriptStr, + enScriptIdx, + }, + {}, // en-AU + { // en-GB + enGBScriptStr, + enGBScriptIdx, + }, + {}, // en-NZ + {}, // eo + { // es + esScriptStr, + esScriptIdx, + }, + { // es-419 + es419ScriptStr, + es419ScriptIdx, + }, + {}, // es-CL + { // es-MX + "telugú", + []uint16{ // 147 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0007, + }, + }, + { // et + etScriptStr, + etScriptIdx, + }, + { // eu + "arabiarraarmeniarrabengaliarrabopomofoabrailleazirilikoadevanagariaetiop" + + "iarrageorgiarragreziarragujarateragurmukhiahangulaidazkera txinatarr" + + "aidazkera txinatar sinplifikatuaidazkera txinatar tradizionalahebree" + + "rahiraganajaponiarrakatakanakhemerarrakanadarrakorearralaosarralatin" + + "amalayalameramongoliarrabirmaniarraoriyarrasinhalatamilarrateluguarr" + + "athaanathailandiarratibetarraikurrakidatzi gabeaohikoaidazkera ezeza" + + "guna", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0013, 0x0013, 0x001e, 0x001e, 0x0027, 0x0027, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x0038, 0x0038, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x004d, 0x004d, 0x0057, 0x0057, + 0x0057, 0x0057, 0x0060, 0x006a, 0x0073, 0x007a, 0x008d, 0x008d, + 0x00ac, 0x00ca, 0x00ca, 0x00d2, 0x00da, 0x00da, 0x00da, 0x00da, + 0x00da, 0x00da, 0x00da, 0x00da, 0x00e4, 0x00e4, 0x00e4, 0x00ec, + // Entry 40 - 7F + 0x00ec, 0x00f6, 0x00f6, 0x00ff, 0x0107, 0x0107, 0x0107, 0x0107, + 0x010f, 0x010f, 0x010f, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, + 0x0115, 0x0115, 0x0115, 0x0121, 0x0121, 0x012c, 0x012c, 0x012c, + 0x012c, 0x012c, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, + 0x0137, 0x0137, 0x0137, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, 0x013f, + // Entry 80 - BF + 0x013f, 0x013f, 0x013f, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, + 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x0146, 0x014f, + 0x014f, 0x014f, 0x0159, 0x0159, 0x0159, 0x0159, 0x015f, 0x016c, + 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, + 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x017c, 0x0188, 0x018e, + 0x01a0, + }, + }, + {}, // ewo + { // fa + faScriptStr, + faScriptIdx, + }, + { // fa-AF + "مغلی", + []uint16{ // 94 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, + }, + }, + {}, // ff + { // fi + fiScriptStr, + fiScriptIdx, + }, + { // fil + filScriptStr, + filScriptIdx, + }, + { // fo + "arabiskarmensktbengalibopomofoblindaskriftkyrillisktdevanagarietiopisktg" + + "eorgiansktgriksktgujaratigurmukhihangulhaneinkult hanvanligt hanhebr" + + "aiskthiraganajapansktkatakanakhmerkannadakoreansktlaolatínsktmalayal" + + "ammongolskmyanmarsktoriyasinhalatamilsktteluguthaanatailendskttibets" + + "kttekinóskrivavanligókend skrift", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x0016, 0x0016, 0x001e, 0x001e, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x0034, 0x0034, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x003e, 0x0047, 0x0047, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0059, 0x0061, 0x0069, 0x006f, 0x0072, 0x0072, + 0x007d, 0x0088, 0x0088, 0x0091, 0x0099, 0x0099, 0x0099, 0x0099, + 0x0099, 0x0099, 0x0099, 0x0099, 0x00a1, 0x00a1, 0x00a1, 0x00a9, + // Entry 40 - 7F + 0x00a9, 0x00ae, 0x00ae, 0x00b5, 0x00be, 0x00be, 0x00be, 0x00be, + 0x00c1, 0x00c1, 0x00c1, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, + 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, 0x00ca, + 0x00ca, 0x00ca, 0x00ca, 0x00d3, 0x00d3, 0x00db, 0x00db, 0x00db, + 0x00db, 0x00db, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, + 0x00e5, 0x00e5, 0x00e5, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + // Entry 80 - BF + 0x00ea, 0x00ea, 0x00ea, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, + 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f9, + 0x00f9, 0x00f9, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x0105, 0x010f, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x011c, 0x0124, 0x012a, + 0x0137, + }, + }, + { // fr + frScriptStr, + frScriptIdx, + }, + { // fr-CA + frCAScriptStr, + frCAScriptIdx, + }, + {}, // fr-CH + { // fur + "araparmenbalinêsbengalêsBraillebuginêsSilabari unificât aborigjens canad" + + "êscoptcipriotciriliccirilic dal vieri slavonic de glesiedevanagarid" + + "emotic egjizianjeratic egjizianjeroglifics egjiziansetiopicgeorgjian" + + "glagoliticgoticgrêcgujaratihanHan semplificâtHan tradizionâlebreukat" + + "akana o hiraganavieri ongjarêsvieri italicgjavanêsgjaponêskhmerkanna" + + "dacoreanlaolatin Frakturlatin gaeliclatinlineâr Alineâr Bjeroglifics" + + " Mayamalayalammongulmyanmaroriyarunicsinhalasiriacsiriac Estrangelos" + + "iriac ocidentâlsiriac orientâltamiltelegutagalogthaanathaitibetanuga" + + "riticvieri persiancuneiform sumeric-acadiccodiç pes lenghis no scrit" + + "iscomuncodiç par scrituris no codificadis", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x0009, 0x0009, + 0x0011, 0x0011, 0x0011, 0x0011, 0x001a, 0x001a, 0x001a, 0x001a, + 0x0021, 0x0029, 0x0029, 0x0029, 0x004f, 0x004f, 0x004f, 0x004f, + 0x004f, 0x0053, 0x005a, 0x0061, 0x0085, 0x008f, 0x008f, 0x008f, + 0x009f, 0x00af, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00d4, 0x00de, + 0x00e3, 0x00e3, 0x00e8, 0x00f0, 0x00f0, 0x00f0, 0x00f3, 0x00f3, + 0x0103, 0x0113, 0x0113, 0x0118, 0x0118, 0x0118, 0x0118, 0x012b, + 0x013a, 0x013a, 0x0146, 0x014f, 0x0158, 0x0158, 0x0158, 0x0158, + // Entry 40 - 7F + 0x0158, 0x015d, 0x015d, 0x0164, 0x016a, 0x016a, 0x016a, 0x016a, + 0x016d, 0x017a, 0x0186, 0x018b, 0x018b, 0x018b, 0x0194, 0x019d, + 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x019d, 0x01ad, + 0x01ad, 0x01ad, 0x01ad, 0x01b6, 0x01b6, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, + 0x01c3, 0x01c3, 0x01c3, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, + 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, 0x01c8, + 0x01c8, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01cd, + // Entry 80 - BF + 0x01cd, 0x01cd, 0x01cd, 0x01d4, 0x01d4, 0x01d4, 0x01d4, 0x01da, + 0x01eb, 0x01fc, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x0211, + 0x0211, 0x0211, 0x0217, 0x0217, 0x0217, 0x021e, 0x0224, 0x0228, + 0x022f, 0x022f, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, 0x0244, + 0x025c, 0x025c, 0x025c, 0x025c, 0x025c, 0x025c, 0x0279, 0x027e, + 0x02a1, + }, + }, + { // fy + "DefakaArabyskKeizerlijk ArameesArmeensAvestaanskBalineeskBamounBassa Vah" + + "BatakBengaleesBlissymbolenBopomofoBrahmiBrailleBugineeskBuhidChakmaV" + + "erenigde Canadese Aboriginal-symbolenKaryskChamCherokeeCirthKoptyskS" + + "ypryskSyrillyskAldkerkslavysk SyrillyskDevanagariDeseretDuployan sne" + + "lschriftEgyptysk demotyskEgyptysk hiëratyskEgyptyske hiërogliefenEth" + + "iopyskGeorgysk KhutsuriGeorgyskGlagolityskGothyskGranthaGrieksGujara" + + "tiGurmukhiHangulHanHanunooFerienfâldigd SineeskTraditjoneel SineeskH" + + "ebreeuwskHiraganaAnatolyske hiërogliefenPahawh HmongKatakana of Hira" + + "ganaAldhongaarsIndusAld-italyskJavaanskJapansJurchenKayah LiKatakana" + + "KharoshthiKhmerKhojkiKannadaKoreaanskKpelleKaithiLannaLaoGotysk Laty" + + "nGaelysk LatynLatynLepchaLimbuLineair ALineair BFraserLomaLycyskLydy" + + "skMandaeansManicheaanskMayahiërogliefenMendeMeroitysk cursiefMeroïty" + + "skMalayalamMongoolsMoonMroMeiteiMyanmarAld Noard-ArabyskNabateaanskN" + + "axi GebaN’KoNüshuOghamOl ChikiOrkhonOdiaOsmanyaPalmyreensAldpermyskP" + + "hags-paInscriptioneel PahlaviPsalmen PahlaviBoek PahlaviFoenicyskPol" + + "lard-fonetyskInscriptioneel ParthyskRejangRongorongoRunicSamaritaans" + + "kSaratiAld Sûd-ArabyskSaurashtraSignWritingShavianSharadaSindhiSinha" + + "laSora SompengSoendaneeskSyloti NagriSyriacEstrangelo ArameeskWest-A" + + "rameeskEast-ArameeskTagbanwaTakriTai LeNij Tai LueTamilTangutTai Vie" + + "tTeluguTengwarTifinaghTagalogThaanaThaisTibetaanskTirhutaUgarityskVa" + + "iSichtbere spraakVarang KshitiWoleaiAldperzyskSumero-Akkadian Cuneif" + + "ormYiOergeërfdWiskundige notatieSymbolenOngeschrevenAlgemeenOnbekend" + + " schriftsysteem", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0006, 0x0006, 0x0006, 0x000d, 0x001f, 0x0026, 0x0030, + 0x0039, 0x003f, 0x0048, 0x004d, 0x0056, 0x0062, 0x006a, 0x0070, + 0x0077, 0x0080, 0x0085, 0x008b, 0x00b1, 0x00b7, 0x00bb, 0x00c3, + 0x00c8, 0x00cf, 0x00d6, 0x00df, 0x00f7, 0x0101, 0x0108, 0x011c, + 0x012d, 0x0140, 0x0157, 0x0157, 0x0160, 0x0171, 0x0179, 0x0184, + 0x018b, 0x0192, 0x0198, 0x01a0, 0x01a8, 0x01ae, 0x01b1, 0x01b8, + 0x01ce, 0x01e2, 0x01e2, 0x01ec, 0x01f4, 0x020c, 0x0218, 0x022c, + 0x0237, 0x023c, 0x0247, 0x024f, 0x0255, 0x025c, 0x0264, 0x026c, + // Entry 40 - 7F + 0x0276, 0x027b, 0x0281, 0x0288, 0x0291, 0x0297, 0x029d, 0x02a2, + 0x02a5, 0x02b1, 0x02be, 0x02c3, 0x02c9, 0x02ce, 0x02d7, 0x02e0, + 0x02e6, 0x02ea, 0x02f0, 0x02f6, 0x02f6, 0x02ff, 0x030b, 0x031c, + 0x0321, 0x0332, 0x033c, 0x0345, 0x0345, 0x034d, 0x0351, 0x0354, + 0x035a, 0x035a, 0x0361, 0x0372, 0x037d, 0x0386, 0x038c, 0x0392, + 0x0397, 0x039f, 0x03a5, 0x03a9, 0x03b0, 0x03ba, 0x03ba, 0x03c4, + 0x03cc, 0x03e2, 0x03f1, 0x03fd, 0x0406, 0x0416, 0x042d, 0x0433, + 0x043d, 0x0442, 0x044e, 0x0454, 0x0464, 0x046e, 0x0479, 0x0480, + // Entry 80 - BF + 0x0487, 0x0487, 0x048d, 0x0494, 0x04a0, 0x04ab, 0x04b7, 0x04bd, + 0x04d0, 0x04dd, 0x04ea, 0x04f2, 0x04f7, 0x04fd, 0x0508, 0x050d, + 0x0513, 0x051b, 0x0521, 0x0528, 0x0530, 0x0537, 0x053d, 0x0542, + 0x054c, 0x0553, 0x055c, 0x055f, 0x056f, 0x057c, 0x0582, 0x058c, + 0x05a5, 0x05a7, 0x05b1, 0x05c3, 0x05c3, 0x05cb, 0x05d7, 0x05df, + 0x05f6, + }, + }, + { // ga + "ArabachAirméanachAivéisteachBailíochBatacachBeangálachBopomofoBrailleBui" + + "gineachButhaideachSeiricíochCoptachCipireachCoireallachDéiveanágrach" + + "Éigipteach coiteannÉigipteach cliarúilIairiglifí ÉigipteachaAetópac" + + "hSeoirseachGlagalachGotachGréagachGúisearátachGurmúcachHangalachHanH" + + "an SimplitheHan TraidisiúntaEabhrachHireagánachIairiglifí Anatólacha" + + "Siollabraí SeapánachaSean-UngárachSean-IodáilicIávachSeapánachCatacá" + + "nachCiméarachCannadachCóiréachLaosachCló GaelachLaidineachLiombúchLí" + + "neach ALíneach BFraserLiciachLidiachMahasánachMainicéasachIairiglifí" + + " MáigheachaMeindeachMailéalamachMongólachMaenmarachOghamOiríseachSea" + + "n-PheirmeachFéiníceachRúnachSamárachShawachSiolónachSiriceachTamalac" + + "hTeileagúchTifinaghTagálagachTánachTéalannachTibéadachSean-Pheirseac" + + "hDingchruthach Suiméar-AcádachNodaireacht MhatamaiticiúilSiombailíGa" + + "n ScríobhCoitiantaScript Anaithnid", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0012, 0x001e, + 0x0027, 0x0027, 0x0027, 0x002f, 0x003a, 0x003a, 0x0042, 0x0042, + 0x0049, 0x0053, 0x005e, 0x005e, 0x005e, 0x005e, 0x005e, 0x0069, + 0x0069, 0x0070, 0x0079, 0x0084, 0x0084, 0x0093, 0x0093, 0x0093, + 0x00a7, 0x00bc, 0x00d4, 0x00d4, 0x00dd, 0x00dd, 0x00e7, 0x00f0, + 0x00f6, 0x00f6, 0x00ff, 0x010d, 0x0117, 0x0120, 0x0123, 0x0123, + 0x0130, 0x0141, 0x0141, 0x0149, 0x0155, 0x016c, 0x016c, 0x0183, + 0x0191, 0x0191, 0x019f, 0x01a6, 0x01b0, 0x01b0, 0x01b0, 0x01bb, + // Entry 40 - 7F + 0x01bb, 0x01c5, 0x01c5, 0x01ce, 0x01d8, 0x01d8, 0x01d8, 0x01d8, + 0x01df, 0x01df, 0x01eb, 0x01f5, 0x01f5, 0x01fe, 0x0208, 0x0212, + 0x0218, 0x0218, 0x021f, 0x0226, 0x0231, 0x0231, 0x023e, 0x0255, + 0x025e, 0x025e, 0x025e, 0x026b, 0x026b, 0x0275, 0x0275, 0x0275, + 0x0275, 0x0275, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, + 0x0284, 0x0284, 0x0284, 0x028e, 0x028e, 0x028e, 0x028e, 0x029d, + 0x029d, 0x029d, 0x029d, 0x029d, 0x02a9, 0x02a9, 0x02a9, 0x02a9, + 0x02a9, 0x02b0, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02c0, + // Entry 80 - BF + 0x02c0, 0x02c0, 0x02c0, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02d3, + 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02db, + 0x02db, 0x02db, 0x02e6, 0x02e6, 0x02ee, 0x02f9, 0x0300, 0x030b, + 0x0315, 0x0315, 0x0315, 0x0315, 0x0315, 0x0315, 0x0315, 0x0324, + 0x0343, 0x0343, 0x0343, 0x035f, 0x035f, 0x0369, 0x0375, 0x037e, + 0x038e, + }, + }, + { // gd + "AfakaAlbàinis ChabhcasachAhomArabaisAramais impireilAirmeinisAvestanaisB" + + "aliBamumBassa VahBatakBeangailisComharran BlissBopomofoBrahmiBraille" + + "BuhidChakmaSgrìobhadh Lideach Aonaichte nan Tùsanach CanadachChamChe" + + "rokeeCirthCoptaisCìoprasaisCirilisCirilis Seann-Slàbhais na h-Eaglai" + + "seDevanagariDeseretSealbh-sgrìobhadh ÈipheiteachGe’ezCairtbheilisGot" + + "aisGranthaGreugaisGujaratiGurmukhiHangulHanHanunooHan simplichteHan " + + "tradaiseantaEabhraHiraganaDealbh-sgrìobhadh AnatolachPahawh HmongKat" + + "akana no HiraganaSeann-UngaraisSeann-EadailtisDeàbhanaisSeapanaisJur" + + "chenKayah LiKatakanaKharoshthiCmèarKhojkiKannadaCoirèanaisKpelleKait" + + "hiLannaLàthoLaideann frakturLaideann GhàidhealachLaideannLepchaLimbu" + + "Linear ALinear BLomaMahajaniDealbh-sgrìobhadh MayachMendeMalayalamMo" + + "diMongolaisMroMeitei MayekMultaniMiànmarSeann-Arabach ThuathachNaxi " + + "GebaN’koNüshuOgham-chraobhOl ChikiOrkhonOriyaOsmanyaPau Cin HauPhags" + + "-paPartais snaidh-sgrìobhteRejangRongorongoRùn-sgrìobhadhSaratiSeann" + + "-Arabais DheasachSaurashtraSharadaSiddhamKhudawadiSinhalaSora Sompen" + + "gSundaSyloti NagriSuraidheacSuraidheac SiarachSuraidheac EarachTagba" + + "nwaTakriTai LeTai Lue ÙrTaimilTangutTai VietTeluguTengwarTifinaghTag" + + "alogThaanaTàidhTibeitisTirhutaVaiVarang KshitiWoleaiSeann-PheirsisYi" + + "Gnìomhairean matamataigSamhlaidheanGun sgrìobhadhCoitcheannLitreadh " + + "neo-aithnichte", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x001a, 0x001e, 0x0025, 0x0035, 0x003e, 0x0048, + 0x004c, 0x0051, 0x005a, 0x005f, 0x0069, 0x0078, 0x0080, 0x0086, + 0x008d, 0x008d, 0x0092, 0x0098, 0x00cc, 0x00cc, 0x00d0, 0x00d8, + 0x00dd, 0x00e4, 0x00ef, 0x00f6, 0x011b, 0x0125, 0x012c, 0x012c, + 0x012c, 0x012c, 0x014b, 0x014b, 0x0152, 0x0152, 0x015e, 0x015e, + 0x0164, 0x016b, 0x0173, 0x017b, 0x0183, 0x0189, 0x018c, 0x0193, + 0x01a1, 0x01b1, 0x01b1, 0x01b7, 0x01bf, 0x01db, 0x01e7, 0x01fb, + 0x0209, 0x0209, 0x0218, 0x0223, 0x022c, 0x0233, 0x023b, 0x0243, + // Entry 40 - 7F + 0x024d, 0x0253, 0x0259, 0x0260, 0x026b, 0x0271, 0x0277, 0x027c, + 0x0282, 0x0292, 0x02a8, 0x02b0, 0x02b6, 0x02bb, 0x02c3, 0x02cb, + 0x02cb, 0x02cf, 0x02cf, 0x02cf, 0x02d7, 0x02d7, 0x02d7, 0x02f0, + 0x02f5, 0x02f5, 0x02f5, 0x02fe, 0x0302, 0x030b, 0x030b, 0x030e, + 0x031a, 0x0321, 0x0329, 0x0340, 0x0340, 0x0349, 0x034f, 0x0355, + 0x0362, 0x036a, 0x0370, 0x0375, 0x037c, 0x037c, 0x0387, 0x0387, + 0x038f, 0x038f, 0x038f, 0x038f, 0x038f, 0x038f, 0x03a8, 0x03ae, + 0x03b8, 0x03c8, 0x03c8, 0x03ce, 0x03e4, 0x03ee, 0x03ee, 0x03ee, + // Entry 80 - BF + 0x03f5, 0x03fc, 0x0405, 0x040c, 0x0418, 0x041d, 0x0429, 0x0433, + 0x0433, 0x0445, 0x0456, 0x045e, 0x0463, 0x0469, 0x0474, 0x047a, + 0x0480, 0x0488, 0x048e, 0x0495, 0x049d, 0x04a4, 0x04aa, 0x04b0, + 0x04b8, 0x04bf, 0x04bf, 0x04c2, 0x04c2, 0x04cf, 0x04d5, 0x04e3, + 0x04e3, 0x04e5, 0x04e5, 0x04fd, 0x04fd, 0x0509, 0x0518, 0x0522, + 0x0539, + }, + }, + { // gl + "ÃrabeArmenioBengalíBopomofoBrailleSilabario aborixe canadiano unificadoC" + + "irílicoDevanagariEtíopeXeorxianoGregoguxaratíGurmukhiHangulHanHan si" + + "mplificadoHan tradicionalHebreoHiraganaXaponésKatakanaCamboxanocanar" + + "ésCoreanoLaosianoLatinoMalabarMongolBirmaniaOriyaCingalésTámilTelug" + + "úThaanaTailandésTibetanoSímbolosNon escritaComúnEscritura descoñeci" + + "da", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x0015, 0x0015, 0x001d, 0x001d, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0049, 0x0049, 0x0049, 0x0049, + 0x0049, 0x0049, 0x0049, 0x0052, 0x0052, 0x005c, 0x005c, 0x005c, + 0x005c, 0x005c, 0x005c, 0x005c, 0x0063, 0x0063, 0x006c, 0x006c, + 0x006c, 0x006c, 0x0071, 0x007a, 0x0082, 0x0088, 0x008b, 0x008b, + 0x009b, 0x00aa, 0x00aa, 0x00b0, 0x00b8, 0x00b8, 0x00b8, 0x00b8, + 0x00b8, 0x00b8, 0x00b8, 0x00b8, 0x00c0, 0x00c0, 0x00c0, 0x00c8, + // Entry 40 - 7F + 0x00c8, 0x00d1, 0x00d1, 0x00d9, 0x00e0, 0x00e0, 0x00e0, 0x00e0, + 0x00e8, 0x00e8, 0x00e8, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, + 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00ee, + 0x00ee, 0x00ee, 0x00ee, 0x00f5, 0x00f5, 0x00fb, 0x00fb, 0x00fb, + 0x00fb, 0x00fb, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + 0x0103, 0x0103, 0x0103, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, + 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, + 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, + // Entry 80 - BF + 0x0108, 0x0108, 0x0108, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, + 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0117, + 0x0117, 0x0117, 0x011e, 0x011e, 0x011e, 0x011e, 0x0124, 0x012e, + 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, + 0x0136, 0x0136, 0x0136, 0x0136, 0x0136, 0x013f, 0x014a, 0x0150, + 0x0166, + }, + }, + { // gsw + "ArabischArmiArmenischAveschtischBalinesischBattakischBengalischBliss-Sym" + + "boolBopomofoBrahmiBlindäschriftBuginesischBuhidUCASKarischChamCherok" + + "eeCirthKoptischZypriotischKyrillischAltchileslawischTövanagaariTeser" + + "etTemozisch-ÄgüptischHiraazisch-ÄgüptischÄgüptischi HiroglüüfeÄzioop" + + "ischGhutsuriGeorgischGlagolitischGotischGriechischGuscharatiGurmukhi" + + "HangulChineesischHanunooVeräifachti Chineesischi SchriftTradizionell" + + "i Chineesischi SchriftHebräischHiraganaPahawh HmongKatakana oder Hir" + + "aganaAltungarischIndus-SchriftAltitalischJavanesischJapanischKayah L" + + "iKatakanaKharoshthiKhmerKannadaKoreanischLannaLaotischLatiinisch - F" + + "raktur-VarianteLatiinisch - Gäälischi VarianteLatiinischLepchaLimbuL" + + "inear ALinear BLykischLydischMandäischManichäischMaya-HieroglyphäMer" + + "oitischMalaysischMongolischMoonMeitei MayekBurmesischN’KoOghamOl Chi" + + "kiOrchon-RunäOriyaOsmanischAltpermischPhags-paPahlaviPhönizischPolla" + + "rd PhonetischRejangRongorongoRunäschriftSamaritanischSaratiSaurashtr" + + "aGebäärdeschpraachShaw-AlphabetSinghalesischSundanesischSyloti Nagri" + + "SyrischSyrisch - Eschtrangelo-VarianteWeschtsyrischOschtsyrischTagba" + + "nwaTai LeTai LueTamilischTeluguTengwarTifinaghTagalogThaanaThaiTibee" + + "tischUgaritischVaiSichtbari SchpraachAltpersischSumerisch-akkadischi" + + " KeilschriftYiG’eerbtä SchriftwärtSchriftlosi SchpraachUnbeschtimmtU" + + "ncodiirti Schrift", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0015, 0x0020, + 0x002b, 0x002b, 0x002b, 0x0035, 0x003f, 0x004c, 0x0054, 0x005a, + 0x0068, 0x0073, 0x0078, 0x0078, 0x007c, 0x0083, 0x0087, 0x008f, + 0x0094, 0x009c, 0x00a7, 0x00b1, 0x00c1, 0x00cd, 0x00d4, 0x00d4, + 0x00e9, 0x00ff, 0x0118, 0x0118, 0x0123, 0x012b, 0x0134, 0x0140, + 0x0147, 0x0147, 0x0151, 0x015b, 0x0163, 0x0169, 0x0174, 0x017b, + 0x019c, 0x01be, 0x01be, 0x01c8, 0x01d0, 0x01d0, 0x01dc, 0x01f2, + 0x01fe, 0x020b, 0x0216, 0x0221, 0x022a, 0x022a, 0x0232, 0x023a, + // Entry 40 - 7F + 0x0244, 0x0249, 0x0249, 0x0250, 0x025a, 0x025a, 0x025a, 0x025f, + 0x0267, 0x0284, 0x02a5, 0x02af, 0x02b5, 0x02ba, 0x02c2, 0x02ca, + 0x02ca, 0x02ca, 0x02d1, 0x02d8, 0x02d8, 0x02e2, 0x02ee, 0x02ff, + 0x02ff, 0x02ff, 0x0309, 0x0313, 0x0313, 0x031d, 0x0321, 0x0321, + 0x032d, 0x032d, 0x0337, 0x0337, 0x0337, 0x0337, 0x033d, 0x033d, + 0x0342, 0x034a, 0x0356, 0x035b, 0x0364, 0x0364, 0x0364, 0x036f, + 0x0377, 0x0377, 0x0377, 0x037e, 0x0389, 0x039b, 0x039b, 0x03a1, + 0x03ab, 0x03b7, 0x03c4, 0x03ca, 0x03ca, 0x03d4, 0x03e7, 0x03f4, + // Entry 80 - BF + 0x03f4, 0x03f4, 0x03f4, 0x0401, 0x0401, 0x040d, 0x0419, 0x0420, + 0x043f, 0x044c, 0x0458, 0x0460, 0x0460, 0x0466, 0x046d, 0x0476, + 0x0476, 0x0476, 0x047c, 0x0483, 0x048b, 0x0492, 0x0498, 0x049c, + 0x04a6, 0x04a6, 0x04b0, 0x04b3, 0x04c6, 0x04c6, 0x04c6, 0x04d1, + 0x04f1, 0x04f3, 0x050b, 0x050b, 0x050b, 0x050b, 0x0520, 0x052c, + 0x053e, + }, + }, + { // gu + guScriptStr, + guScriptIdx, + }, + {}, // guz + {}, // gv + {}, // ha + {}, // haw + { // he + heScriptStr, + heScriptIdx, + }, + { // hi + hiScriptStr, + hiScriptIdx, + }, + { // hr + hrScriptStr, + hrScriptIdx, + }, + { // hsb + "arabscearmenscebengalscebopomofoBraillowe pismokyriliscedevanagarietiopi" + + "scegeorgiscegrjekscegujaratigurmukhihangulchinscezjednorjene chinske" + + " pismotradicionalne chinske pismohebrejscehiraganajapanscekatakanakh" + + "merscekannadscekorejscelaosceÅ‚aćonscemalayalamscemongolsceburmasceor" + + "iyasinghalscetamilsceteluguthaanathailandscetibetscesymbolebjez pism" + + "apowÅ¡itkownenjeznate pismo", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x0018, 0x0018, 0x0020, 0x0020, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x0038, 0x0038, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x004b, 0x004b, 0x0054, 0x0054, + 0x0054, 0x0054, 0x005c, 0x0064, 0x006c, 0x0072, 0x0079, 0x0079, + 0x0092, 0x00ad, 0x00ad, 0x00b6, 0x00be, 0x00be, 0x00be, 0x00be, + 0x00be, 0x00be, 0x00be, 0x00be, 0x00c6, 0x00c6, 0x00c6, 0x00ce, + // Entry 40 - 7F + 0x00ce, 0x00d6, 0x00d6, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00ed, 0x00ed, 0x00ed, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x00f7, 0x0103, 0x0103, 0x010c, 0x010c, 0x010c, + 0x010c, 0x010c, 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, 0x0114, + 0x0114, 0x0114, 0x0114, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + // Entry 80 - BF + 0x0119, 0x0119, 0x0119, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, + 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x012b, + 0x012b, 0x012b, 0x0131, 0x0131, 0x0131, 0x0131, 0x0137, 0x0142, + 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, + 0x014a, 0x014a, 0x014a, 0x014a, 0x014a, 0x0151, 0x015b, 0x0167, + 0x0175, + }, + }, + { // hu + huScriptStr, + huScriptIdx, + }, + { // hy + hyScriptStr, + hyScriptIdx, + }, + { // id + idScriptStr, + idScriptIdx, + }, + {}, // ig + { // ii + "ꀊê‡ê€¨ê±ê‚·ê€Šê†¨êŒ¦ê‡êƒšê±ê‚·êˆê¯ê‰Œêˆ²ê±ê‚·ê€Žê‹ê‰Œêˆ²ê±ê‚·ê‡ê„€ê±ê‚·ê†ˆêŒ ê±ê‚·ê±ê€‹ê‰†êŒ ê…‰ê€‹êšêŒ ê±ê‚·", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0036, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + // Entry 40 - 7F + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + // Entry 80 - BF + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, 0x0054, + 0x0054, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x006c, 0x006c, + 0x007e, + }, + }, + { // is + isScriptStr, + isScriptIdx, + }, + { // it + itScriptStr, + itScriptIdx, + }, + { // ja + jaScriptStr, + jaScriptIdx, + }, + { // jgo + "mík -Å‹waꞌnÉ› yi É›Ì líŋɛÌnÉ› Latɛ̂ŋntúu yi pÉ›Ì ká Å‹waꞌnεntÉ›-Å‹waꞌnÉ› yí pÉ›Ì k" + + "á kÉ›Ì jí", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + // Entry 80 - BF + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x004c, 0x004c, + 0x0073, + }, + }, + {}, // jmc + { // ka + kaScriptStr, + kaScriptIdx, + }, + {}, // kab + {}, // kam + {}, // kde + { // kea + "arábikuarméniubengalibopomofobraillesirílikudevanagarietiópikujorjianugr" + + "egugujaratigurmukiangulhanhan simplifikaduhan tradisionalebraikuirag" + + "anajaponeskatakanakmerkanareskorianulausianulatinumalaialammongolbir" + + "manesoriyasingalestamiltelugutaanatailandestibetanusimbulusnãu skrit" + + "ukomunskrita diskonxedu", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0017, 0x0017, 0x001f, 0x001f, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x002f, 0x002f, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0042, 0x0042, 0x004a, 0x004a, + 0x004a, 0x004a, 0x004f, 0x0057, 0x005e, 0x0063, 0x0066, 0x0066, + 0x0076, 0x0085, 0x0085, 0x008c, 0x0093, 0x0093, 0x0093, 0x0093, + 0x0093, 0x0093, 0x0093, 0x0093, 0x009a, 0x009a, 0x009a, 0x00a2, + // Entry 40 - 7F + 0x00a2, 0x00a6, 0x00a6, 0x00ad, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00bc, 0x00bc, 0x00bc, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c2, 0x00cb, 0x00cb, 0x00d1, 0x00d1, 0x00d1, + 0x00d1, 0x00d1, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + // Entry 80 - BF + 0x00de, 0x00de, 0x00de, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, + 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00eb, + 0x00eb, 0x00eb, 0x00f1, 0x00f1, 0x00f1, 0x00f1, 0x00f6, 0x00ff, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, + 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x010f, 0x011a, 0x011f, + 0x0130, + }, + }, + {}, // khq + {}, // ki + { // kk + kkScriptStr, + kkScriptIdx, + }, + {}, // kkj + {}, // kl + {}, // kln + { // km + kmScriptStr, + kmScriptIdx, + }, + { // kn + knScriptStr, + knScriptIdx, + }, + { // ko + koScriptStr, + koScriptIdx, + }, + {}, // kok + { // ks + "اَربیاَرمانیَناَویستَنبالَنیٖزباتَکبیٚنگٲلÛبÙÙ„Ùس سÙمبلزبوپوموÙوبرٛاÛمیبر" + + "یلبÙÚ¯ÙنیٖزبÙÛÙدیÙÙ†ÙÙایÙÚ‘ کنیڑÙیَن ایٚب آرجÙÙ†ÙŽÙ„ سÙلیبÙککاریَنچَمچیٚر" + + "وکیکÙرتھکاپٹÙÚ©Ú©ÙپرایÙٹسَیرÙÙ„Ùکپرون چٔرچسلیوونÙÚ© سَیرÙÙ„Ùکدیوناگریڈیٚ" + + "سٔریٚٹاÙجپشÙیَن ÚˆÙماٹÙکاÙجÙپشَن ÛَیریٹÙکاÙجÙپشَن ÛَیروگلÙپھساÙتھیوپ" + + "ÙکجارجÙیَن کھتسوریجارجÙیَنگلیگولÙÙ¹ÙکگوتھÙکگرَنتھاگریٖکگÙجرٲتÛÛانٛگÙ" + + "Ù„ÛانÛانÙنوٗسÙمپلÙÙایÙÚ‘ ÛانٹریڑÙØ´ÙŽÙ†ÙŽÙ„ÛÙبرÙÙˆÛیٖراگاناپَÛاو مانٛگکَٹاک" + + "انا یا ÛÙراگاناپرون ÛَنگیریَناÙنڈَساولڈ اÙٹیلÙکجاوَنیٖزجیٚپَنیٖزکای" + + "ا لیکَتاکاناخَروشتھیکھٕمیرکَنَڑاکوریَنلانالاوÙرٛکتÙر لیٹÙنگیلÙÚ© لیٹ" + + "َنلیٹÙنلیٚپکالÙمبوٗلیٖنیَر اےلیٖنیَر بیلیسÙیَنلیدÙیَنمَندییَنمانیشی" + + "یَنمایَن ÛیٖروگلÙÙ¾Ú¾Ù…ÙرایٹÙکمَلیالَممَنٛگولیَنموٗنمیتی مایَکمَیَنمار" + + "ایٚن کواوگÛاماول Ú†ÙکیاورکھوناورÙیااوسمانیااولڈ پٔرمÙکپھاگس پابوٗک Ù¾" + + "ÙŽÛَلویپھونÙØ´Ùیَنپولاڑ پھونÙÙ¹Ùکریجَنٛگرونٛگو رونٛگورَنÙکسَمارÙٹَنسَر" + + "اتیسوراشٹرااÙشارٲتی Ù„ÙکھٲےشاویَنسÙÙ†Ûالاسَنڈَنیٖزسیلوتی ناگریسیٖرÙیَ" + + "کایٚسٹرینجÙلو سیٖرÙیَکمغرÙبی سیٖریَکمشرَقی سیٖریَکتَگبَنواتَیلیےنوٚ" + + "Ùˆ تیلوتَمÙلتیلگوٗتیٚنگوارتÙÙÙناگتَگَلوگتھاناتھاےتÙبتیاÙگارÙÙ¹ÙکواےوÙ" + + "زÙبٕل سپیٖچپرون ÙارسیسÙمیرو اکادیَن کوٗنÙÙامیٖیلیٚکھنَےعاماَن Ø²Ù²Ù†Û " + + "یا نا Ù„ÙŽÚ¯ÛÙ• Ûار رَسمÙÙ„ خظ", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x001c, 0x002c, + 0x003c, 0x003c, 0x003c, 0x0046, 0x0056, 0x006d, 0x007d, 0x008b, + 0x0093, 0x00a3, 0x00ad, 0x00ad, 0x00f7, 0x0103, 0x0109, 0x0117, + 0x0121, 0x012d, 0x013d, 0x014d, 0x017f, 0x018f, 0x01a1, 0x01a1, + 0x01c2, 0x01e3, 0x020a, 0x020a, 0x021c, 0x023b, 0x024b, 0x025f, + 0x026b, 0x026b, 0x0279, 0x0283, 0x0291, 0x029f, 0x02a5, 0x02b3, + 0x02d0, 0x02e4, 0x02e4, 0x02f0, 0x0302, 0x0302, 0x0317, 0x033d, + 0x0358, 0x0364, 0x037b, 0x038b, 0x039d, 0x039d, 0x03aa, 0x03ba, + // Entry 40 - 7F + 0x03ca, 0x03d6, 0x03d6, 0x03e2, 0x03ee, 0x03ee, 0x03ee, 0x03f6, + 0x03fc, 0x0415, 0x042a, 0x0434, 0x0440, 0x044c, 0x045f, 0x0472, + 0x0472, 0x0472, 0x0480, 0x048e, 0x048e, 0x049e, 0x04b0, 0x04cf, + 0x04cf, 0x04cf, 0x04df, 0x04ef, 0x04ef, 0x0503, 0x050b, 0x050b, + 0x051e, 0x051e, 0x052e, 0x052e, 0x052e, 0x052e, 0x053b, 0x053b, + 0x0547, 0x0556, 0x0564, 0x0570, 0x0580, 0x0580, 0x0580, 0x0595, + 0x05a4, 0x05a4, 0x05a4, 0x05bb, 0x05cf, 0x05ea, 0x05ea, 0x05f8, + 0x0611, 0x061b, 0x062d, 0x0639, 0x0639, 0x0649, 0x0666, 0x0672, + // Entry 80 - BF + 0x0672, 0x0672, 0x0672, 0x0680, 0x0680, 0x0692, 0x06a9, 0x06b9, + 0x06e2, 0x06fd, 0x0718, 0x0728, 0x0728, 0x0734, 0x0745, 0x074f, + 0x074f, 0x074f, 0x075b, 0x076b, 0x0779, 0x0787, 0x0791, 0x0799, + 0x07a3, 0x07a3, 0x07b5, 0x07bb, 0x07d4, 0x07d4, 0x07d4, 0x07e7, + 0x0813, 0x0819, 0x0819, 0x0819, 0x0819, 0x0819, 0x0829, 0x082f, + 0x086c, + }, + }, + {}, // ksb + {}, // ksf + { // ksh + "arraabesche Schreffarmeenesche Schreffbängjaalesche Schreffschineeseche " + + "Ömschreff BopomofoBlindeschreffkürrellesche Schreffindesche Devanaj" + + "ari-Schreffätejoopesche Schreffje’orrjesche Schreffjriischesche Schr" + + "effjujaraatesche Schreffindesche Gurmukhi-Schreffkorrejaanesche Schr" + + "effen schineesesche Schreffeijfacher schineesesche Schrefftradizjonä" + + "ll schineesesche Schreffhebrääjesche Schreffjapaanesche Hiddajaana-S" + + "chreffen japaanesche Schreffjapaanesche Kattakaana-SchreffKhmer-Schr" + + "effindesche Kannada-Schreffkorrejaanesche Schreff udder en schineese" + + "sche Schrefflahootesche Schrefflateinesche Schreffindesche Malajalam" + + "-Schreffmongjoolesche Schreffbirmaanesche Schreffindesche Orija-Schr" + + "effsingjaleesesche Schrefftamiilesche Schreffindesche Telugu-Schreff" + + "malledivesche Taana-Schrefftailändesche Schrefftibeetesche Schreff-Z" + + "eiche ävver kein Schreff--jaa keij Schreff--öhnß en Schreff--onbikan" + + "nte Schreff-", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0013, 0x0013, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x003c, 0x003c, 0x005c, 0x005c, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x007e, 0x007e, 0x0099, 0x0099, 0x0099, + 0x0099, 0x0099, 0x0099, 0x0099, 0x00ae, 0x00ae, 0x00c4, 0x00c4, + 0x00c4, 0x00c4, 0x00d8, 0x00ed, 0x0106, 0x011c, 0x0134, 0x0134, + 0x0153, 0x0176, 0x0176, 0x018c, 0x01aa, 0x01aa, 0x01aa, 0x01aa, + 0x01aa, 0x01aa, 0x01aa, 0x01aa, 0x01c0, 0x01c0, 0x01c0, 0x01de, + // Entry 40 - 7F + 0x01de, 0x01eb, 0x01eb, 0x0203, 0x0238, 0x0238, 0x0238, 0x0238, + 0x024b, 0x024b, 0x024b, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, + 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, 0x025e, + 0x025e, 0x025e, 0x025e, 0x0278, 0x0278, 0x028d, 0x028d, 0x028d, + 0x028d, 0x028d, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, 0x02a1, + 0x02a1, 0x02a1, 0x02a1, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, + 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, + 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, + // Entry 80 - BF + 0x02b7, 0x02b7, 0x02b7, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, + 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02ce, 0x02e1, + 0x02e1, 0x02e1, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0313, 0x0328, + 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, + 0x033b, 0x033b, 0x033b, 0x033b, 0x033b, 0x0357, 0x0369, 0x037c, + 0x0390, + }, + }, + {}, // kw + { // ky + kyScriptStr, + kyScriptIdx, + }, + {}, // lag + { // lb + "ArabeschArmiArmeneschAvesteschBalineseschBattakeschBengaleschBliss-Symbo" + + "lerBopomofoBrahmiBlanneschrëftBugineseschBuhidUCASKareschChamCheroke" + + "eCirthKopteschZyprioteschKyrilleschAlkiercheslaweschDevanagariDesere" + + "tEgyptesch-DemoteschEgyptesch-HierateschEgyptesch HieroglyphenEthiop" + + "eschKhutsuriGeorgeschGlagoliteschGoteschGriicheschGujaratiGurmukhiHa" + + "ngulChineseschHanunooVereinfacht ChineseschTraditionellt ChineseschH" + + "ebräeschHiraganaPahawh HmongKatakana oder HiraganaAlungareschIndus-S" + + "chrëftAlitaleschJavaneseschJapaneschKayah LiKatakanaKharoshthiKhmerK" + + "annadaKoreaneschLannaLaoteschLaténgesch-Fraktur-VariantLaténgesch-Gä" + + "llesch VariantLaténgeschLepchaLimbuLinear ALinear BLykeschLydeschMan" + + "däeschManichäeschMaya-HieroglyphenMeroiteschMalayseschMongoleschMoon" + + "Meitei MayekBirmaneschN’KoOghamOl ChikiOrchon-RunenOriyaOsmaneschAlp" + + "ermeschPhags-paPahlaviPhönizeschPollard PhoneteschRejangRongorongoRu" + + "neschrëftSamaritaneschSaratiSaurashtraZeechesproochShaw-AlphabetSing" + + "haleseschSundaneseschSyloti NagriSyreschSyresch-Estrangelo-VariantWe" + + "stsyreschOstsyreschTai LeTai LueTamileschTeluguTengwarTifinaghDagalo" + + "gThaanaThaiTibeteschUgariteschVaiSiichtbar SproochAlperseschSumeresc" + + "h-akkadesch KeilschrëftYiGeierfte SchrëftwäertSymbolerOuni SchrëftOn" + + "bestëmmtOncodéiert Schrëft", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0015, 0x001e, + 0x0029, 0x0029, 0x0029, 0x0033, 0x003d, 0x004b, 0x0053, 0x0059, + 0x0067, 0x0072, 0x0077, 0x0077, 0x007b, 0x0082, 0x0086, 0x008e, + 0x0093, 0x009b, 0x00a6, 0x00b0, 0x00c1, 0x00cb, 0x00d2, 0x00d2, + 0x00e5, 0x00f9, 0x010f, 0x010f, 0x0119, 0x0121, 0x012a, 0x0136, + 0x013d, 0x013d, 0x0147, 0x014f, 0x0157, 0x015d, 0x0167, 0x016e, + 0x0184, 0x019c, 0x019c, 0x01a6, 0x01ae, 0x01ae, 0x01ba, 0x01d0, + 0x01db, 0x01e9, 0x01f3, 0x01fe, 0x0207, 0x0207, 0x020f, 0x0217, + // Entry 40 - 7F + 0x0221, 0x0226, 0x0226, 0x022d, 0x0237, 0x0237, 0x0237, 0x023c, + 0x0244, 0x025f, 0x027c, 0x0287, 0x028d, 0x0292, 0x029a, 0x02a2, + 0x02a2, 0x02a2, 0x02a9, 0x02b0, 0x02b0, 0x02ba, 0x02c6, 0x02d7, + 0x02d7, 0x02d7, 0x02e1, 0x02eb, 0x02eb, 0x02f5, 0x02f9, 0x02f9, + 0x0305, 0x0305, 0x030f, 0x030f, 0x030f, 0x030f, 0x0315, 0x0315, + 0x031a, 0x0322, 0x032e, 0x0333, 0x033c, 0x033c, 0x033c, 0x0346, + 0x034e, 0x034e, 0x034e, 0x0355, 0x0360, 0x0372, 0x0372, 0x0378, + 0x0382, 0x038e, 0x039b, 0x03a1, 0x03a1, 0x03ab, 0x03b8, 0x03c5, + // Entry 80 - BF + 0x03c5, 0x03c5, 0x03c5, 0x03d2, 0x03d2, 0x03de, 0x03ea, 0x03f1, + 0x040b, 0x0416, 0x0420, 0x0420, 0x0420, 0x0426, 0x042d, 0x0436, + 0x0436, 0x0436, 0x043c, 0x0443, 0x044b, 0x0452, 0x0458, 0x045c, + 0x0465, 0x0465, 0x046f, 0x0472, 0x0483, 0x0483, 0x0483, 0x048d, + 0x04ad, 0x04af, 0x04c6, 0x04c6, 0x04c6, 0x04ce, 0x04db, 0x04e6, + 0x04fa, + }, + }, + {}, // lg + {}, // lkt + {}, // ln + { // lo + loScriptStr, + loScriptIdx, + }, + { // lrc + "عأرأڤیأرمأنیبأنگالیبوٙپوٙبئرئیلسیریلیکدیڤانگأریئتوٙیوٙپیاییگورجییوٙنانیگ" + + "وجأراتیگوٙروٙمخیھانگوٙلھانیبیتار سادە بیەسونأتی بیتارعئبریھیراگاناج" + + "اپوٙنیکاتانگاخئمئرکاناداکورئ ییلائولاتینمالایامموغولیمیانمارئوریاسی" + + "ناھالاتامیلتئلئگوتاناتایلأندیتأبأتینئشوٙنە یانیسئسە نأبیەجائوÙتاأنی" + + "سئسە نادیار", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0026, 0x0026, 0x0032, 0x0032, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x004c, 0x004c, 0x005e, 0x005e, 0x005e, + 0x005e, 0x005e, 0x005e, 0x005e, 0x0076, 0x0076, 0x0080, 0x0080, + 0x0080, 0x0080, 0x008e, 0x009e, 0x00b0, 0x00be, 0x00c6, 0x00c6, + 0x00e0, 0x00f7, 0x00f7, 0x0101, 0x0111, 0x0111, 0x0111, 0x0111, + 0x0111, 0x0111, 0x0111, 0x0111, 0x011f, 0x011f, 0x011f, 0x012d, + // Entry 40 - 7F + 0x012d, 0x0137, 0x0137, 0x0143, 0x0150, 0x0150, 0x0150, 0x0150, + 0x0158, 0x0158, 0x0158, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x0162, 0x0170, 0x0170, 0x017c, 0x017c, 0x017c, + 0x017c, 0x017c, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, 0x018a, + 0x018a, 0x018a, 0x018a, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, + 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, + 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, + // Entry 80 - BF + 0x0194, 0x0194, 0x0194, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, + 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01ae, + 0x01ae, 0x01ae, 0x01ba, 0x01ba, 0x01ba, 0x01ba, 0x01c2, 0x01d2, + 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, + 0x01de, 0x01de, 0x01de, 0x01de, 0x01de, 0x01f1, 0x0208, 0x0218, + 0x0231, + }, + }, + { // lt + ltScriptStr, + ltScriptIdx, + }, + {}, // lu + {}, // luo + {}, // luy + { // lv + lvScriptStr, + lvScriptIdx, + }, + {}, // mas + {}, // mer + {}, // mfe + {}, // mg + {}, // mgh + { // mgo + "ngam Å‹waʼringam choʼabo Å‹waʼri tisɔʼ", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + // Entry 80 - BF + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x0017, 0x0017, + 0x002b, + }, + }, + { // mk + mkScriptStr, + mkScriptIdx, + }, + { // ml + mlScriptStr, + mlScriptIdx, + }, + { // mn + mnScriptStr, + mnScriptIdx, + }, + { // mr + mrScriptStr, + mrScriptIdx, + }, + { // ms + msScriptStr, + msScriptIdx, + }, + { // mt + "GħarbiÄŠirillikuGriegHan SimplifikatHan TradizzjonaliLatinPersjan AntikMh" + + "ux MiktubKomuniKitba Mhux Magħrufa", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, + 0x0025, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + // Entry 40 - 7F + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + // Entry 80 - BF + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0053, 0x0059, + 0x006d, + }, + }, + {}, // mua + { // my + myScriptStr, + myScriptIdx, + }, + { // mzn + "عربیارمنیبنگالیبوپوموÙوسیریلیکدیوانانگریاتیوپیاییگرجییونانیگجراتیگورموخی" + + "هانگولهانساده\u200cبَیی هاناستاندارد Ùسنتی هانتعبریهیراگاناجاپونیکا" + + "تاکانا", + []uint16{ // 64 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x001e, 0x001e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x003c, 0x003c, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0062, 0x0062, 0x006a, 0x006a, + 0x006a, 0x006a, 0x0076, 0x0082, 0x0090, 0x009c, 0x00a2, 0x00a2, + 0x00bc, 0x00e2, 0x00e2, 0x00ea, 0x00fa, 0x00fa, 0x00fa, 0x00fa, + 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x0106, 0x0106, 0x0106, 0x0116, + }, + }, + {}, // naq + {}, // nd + { // ne + neScriptStr, + neScriptIdx, + }, + { // nl + nlScriptStr, + nlScriptIdx, + }, + {}, // nmg + { // nn + "arabiskarmiskarmenskavestiskbalinesiskbatakbengaliblissymbolbopomofobrah" + + "mibraillebuginesiskbuhidchakmafelles kanadiske ursprÃ¥ksstavingarkari" + + "skchamcherokeecirthkoptiskkypriotiskkyrilliskkyrillisk (kyrkjeslavis" + + "k variant)devanagarideseretegyptisk demotiskegyptisk hieratiskegypti" + + "ske hieroglyfaretiopiskkhutsuri (asomtavruli og nuskhuri)georgiskgla" + + "golittiskgotiskgreskgujaratigurmukhihangulhanhanunooforenkla kinesis" + + "ktradisjonell kinesiskhebraiskhiraganapahawk hmongkatakana eller hir" + + "aganagammalungarskindusgammalitaliskjavanesiskjapanskkayah likatakan" + + "akharoshthikhmerkannadakoreanskkaithisklannalaotisklatinsk (frakturv" + + "ariant)latinsk (gælisk variant)latinsklepchalumbulineær Alineær Blyk" + + "isklydiskmandaiskmanikeiskmaya-hieroglyfarmeroitiskmalayalammongolsk" + + "moonmeitei-mayekmyanmarn’kooghamol-chikiorkhonoriyaosmanyagammalperm" + + "iskphags-painskripsjonspahlavisalmepahlavipahlavifønikiskpollard-fon" + + "etiskinskripsjonsparthiskrejangrongorongorunersamaritansksaratisaura" + + "shtrateiknskriftshavisksinhalasundanesisksyloti nagrisyriakisksyriak" + + "isk (estrangelo-variant)syriakisk (vestleg variant)syriakisk (austle" + + "g variant)tagbanwatai leny tai luetamilsktai viettelugutengwartifina" + + "ghtagalogthaanathaitibetanskugaritiskvaisynleg talegammalpersisksume" + + "ro-akkadisk kileskriftyinedarvamatematisk notasjonsymbolkode for spr" + + "Ã¥k utan skriftfellesukjend skrift", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x000d, 0x0014, 0x001c, + 0x0026, 0x0026, 0x0026, 0x002b, 0x0032, 0x003c, 0x0044, 0x004a, + 0x0051, 0x005b, 0x0060, 0x0066, 0x0089, 0x008f, 0x0093, 0x009b, + 0x00a0, 0x00a7, 0x00b1, 0x00ba, 0x00db, 0x00e5, 0x00ec, 0x00ec, + 0x00fd, 0x010f, 0x0124, 0x0124, 0x012c, 0x014e, 0x0156, 0x0162, + 0x0168, 0x0168, 0x016d, 0x0175, 0x017d, 0x0183, 0x0186, 0x018d, + 0x019e, 0x01b3, 0x01b3, 0x01bb, 0x01c3, 0x01c3, 0x01cf, 0x01e6, + 0x01f3, 0x01f8, 0x0205, 0x020f, 0x0216, 0x0216, 0x021e, 0x0226, + // Entry 40 - 7F + 0x0230, 0x0235, 0x0235, 0x023c, 0x0244, 0x0244, 0x024c, 0x0251, + 0x0258, 0x0270, 0x0289, 0x0290, 0x0296, 0x029b, 0x02a4, 0x02ad, + 0x02ad, 0x02ad, 0x02b3, 0x02b9, 0x02b9, 0x02c1, 0x02ca, 0x02da, + 0x02da, 0x02da, 0x02e3, 0x02ec, 0x02ec, 0x02f4, 0x02f8, 0x02f8, + 0x0304, 0x0304, 0x030b, 0x030b, 0x030b, 0x030b, 0x0311, 0x0311, + 0x0316, 0x031e, 0x0324, 0x0329, 0x0330, 0x0330, 0x0330, 0x033d, + 0x0345, 0x0358, 0x0364, 0x036b, 0x0374, 0x0384, 0x0398, 0x039e, + 0x03a8, 0x03ad, 0x03b8, 0x03be, 0x03be, 0x03c8, 0x03d3, 0x03da, + // Entry 80 - BF + 0x03da, 0x03da, 0x03da, 0x03e1, 0x03e1, 0x03ec, 0x03f8, 0x0401, + 0x041f, 0x043a, 0x0455, 0x045d, 0x045d, 0x0463, 0x046d, 0x0474, + 0x0474, 0x047c, 0x0482, 0x0489, 0x0491, 0x0498, 0x049e, 0x04a2, + 0x04ab, 0x04ab, 0x04b4, 0x04b7, 0x04c2, 0x04c2, 0x04c2, 0x04cf, + 0x04e9, 0x04eb, 0x04f2, 0x0505, 0x0505, 0x050b, 0x0526, 0x052c, + 0x0539, + }, + }, + {}, // nnh + { // no + noScriptStr, + noScriptIdx, + }, + {}, // nus + {}, // nyn + { // om + "Latin", + []uint16{ // 76 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0005, + }, + }, + { // or + "ଆରବିକà­à¬‡à¬®à­à¬ªà­‡à¬°à¬¿à¬†à¬²à­ ଆରମିକà­à¬†à¬°à­à¬®à­‡à¬¨à¬¿à¬†à¬¨à­à¬†à¬¬à­‡à¬¸à­à¬¥à¬¾à¬¨à­à¬¬à¬¾à¬²à¬¿à¬¨à­€à¬œà­à¬¬à¬¾à¬Ÿà¬¾à¬•à­à¬¬à¬™à­à¬—ାଳୀବà­à¬²à¬¿à¬¸à¬¿à¬®à­à¬¬" + + "ଲସà­à¬¬à­‹à¬ªà­‹à¬®à­‹à¬«à­‹à¬¬à­à¬°à¬¾à¬¹à­à¬®à­€à¬¬à­à¬°à¬¿à¬²à­à¬¬à­à¬—ାନୀଜà­à¬¬à­à¬¹à¬¿à¬¦à­à¬šà¬•à¬®à¬¾à­Ÿà­à¬¨à¬¿à¬«à¬¾à¬à¬¡à­ କାନାଡିଆନୠଆବà­" + + "ରୋଜିନାଲୠସିଲାବିକସà­à¬•à­ˆà¬°à¬¨à­à¬›à¬®à­à¬šà¬¿à¬°à­à¬•à­€à¬¸à¬¿à¬°à­à¬¥à¬•à¬ªà¬Ÿà¬¿à¬•à­à¬¸à¬¿à¬ªà­à¬°à¬…ଟà­à¬¸à¬¿à¬°à¬¿à¬²à¬¿à¬•à­à¬“ଲà­à¬¡ ଚର" + + "à­à¬šà­à¬š ସାଲଭୋନିକୠସିରିଲିକà­à¬¦à­‡à¬¬à¬¾à¬¨à¬—ିରିଡେସରà­à¬Ÿà¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨à­ ଡେମୋଟିକà­à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨" + + "ୠହାଇଅରଟିକà­à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬¿à¬†à¬¨à­ ହାଅରଗà­à¬²à¬¿à¬ªà¬¸à­à¬‡à¬¥à­‹à¬ªà¬¿à¬•à­à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­ ଖà­à¬Ÿà¬¸à­à¬°à­€à¬œà¬°à­à¬œà¬¿à¬†à¬¨à­à¬—à­" + + "ଲାଗà­à¬²à­‹à¬Ÿà¬¿à¬•à­à¬—ୋଥିକà­à¬—à­à¬°à­€à¬•à­à¬—à­à¬œà­à¬°à¬¾à¬Ÿà­€à¬—à­à¬°à­à¬®à­à¬–ୀହାଙà­à¬—à­à¬²à­à¬¹à¬¾à¬¨à­à¬¹à¬¾à¬¨à­à¬¨à­à¬¸à¬°à¬³à­€à¬•à­ƒà¬¤ ହା" + + "ନà­à¬ªà¬¾à¬°à¬®à­à¬ªà¬°à¬¿à¬•à­ ହାନà­à¬¹à­‡à¬¬à­à¬°à­à­Ÿà­à¬¹à¬¿à¬°à¬¾à¬—ାନାପାହୋ ହୋଙà­à¬—କାଟାକାନୠକିମà­à¬¬à¬¾ ହିରାଗାନ" + + "à­à¬ªà­à¬°à­à¬£à¬¾ ହଙà­à¬—େରିଆନà­à¬¸à¬¿à¬¨à­à¬§à­à¬ªà­à¬°à­à¬£à¬¾ ଇଟାଲୀଜାଭାନୀଜà­à¬œà¬¾à¬ªà¬¾à¬¨à­€à¬œà­à¬•à¬¾à­Ÿà¬¾à¬¹à¬¾ ଲୀକାଟକା" + + "ନà­à¬–ାରୋସà­à¬¥à¬¿à¬–à­à¬®à­‡à¬°à­à¬•à¬¨à­à¬¨à¬¡à¬•à­‹à¬°à¬¿à¬†à¬¨à­à¬•à­ˆà¬¥à¬¿à¬²à¬¾à¬¨à¬¾à¬²à¬¾à¬“ଫà­à¬°à¬¾à¬•à¬¥à­à¬°à­ ଲାଟିନà­à¬—ାà¬à¬²à¬¿à¬•à­ ଲାଟ" + + "ିନà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­à¬²à­‡à¬ªà¬šà¬¾à¬²à¬¿à¬®à­à¬¬à­à¬²à¬¿à¬¨à¬¿à­Ÿà¬°à­à¬²à¬¿à¬¨à¬¿à­Ÿà¬°à­ ବିଲିଶିୟନà­à¬²à¬¿à¬¡à¬¿à­Ÿà¬¨à­à¬®à¬¾à¬¨à¬¡à­‡à¬¨à­à¬®à¬¨à¬¶à­€à¬¨à­à¬®à­Ÿ" + + "ାନୠହାୟରଲଜିକସà­à¬®à­‡à¬°à­‹à¬‡à¬Ÿà¬¿à¬•à­à¬®à¬¾à¬²à­Ÿà¬²à¬®à­à¬®à¬™à­à¬—ୋଲିଆନà­à¬šà¬¨à­à¬¦à­à¬°à¬®à¬¾à¬à¬¤à¬¿ ମାୟେକà­à¬®à¬¿à¬†à¬®à¬¾à¬°à­à¬" + + "ନୠକୋଓଘାମାଓଲୠଚିକିଓରୋଖନà­à¬“ଡିଆଓସୋମାନିୟାଓଲà­à¬¡ ପରମିକà­à¬«à¬¾à¬—ସà­-ପାଇନସà­à¬•à­à¬°à­€à¬ªà¬¸" + + "ାନଲୠପାହାଲାୱୀସà­à¬²à¬¾à¬Ÿà¬°à­ ପାହାଲାୱୀବà­à¬•à­ ପାହାଲାୱୀଫେନୋସିଆନà­à¬ªà­‹à¬²à¬¾à¬°à­à¬¡ ଫୋନେଟିକ" + + "à­à¬‡à¬¨à¬¸à­à¬•à­à¬°à­€à¬ªà¬¸à¬¾à¬¨à¬²à­ ପାରà­à¬¥à¬¿à¬†à¬¨à­à¬°à­‡à¬œà¬¾à¬™à­à¬—ରୋଙà­à¬—ୋରୋଙà­à¬—ୋରନିକà­à¬¸à¬®à­Œà¬°à¬¿à¬Ÿà¬¨à­à¬¸à¬¾à¬°à¬¾à¬¤à¬¿à¬¸à­Œà¬°" + + "ାଷà­à¬Ÿà­à¬°à¬¸à¬¾à¬™à­à¬•à­‡à¬¤à¬¿à¬• ଲିଖସାବିୟାନà­à¬¸à¬¿à¬‚ହଳସà­à¬¦à¬¾à¬¨à­€à¬œà­à¬¸à­€à¬²à¬¿à¬¤à­‹ ନଗରୀସିରିୟାକà­à¬à¬·à­à¬Ÿà­à¬°à¬¾" + + "ଙà­à¬—େଲୋ ସିରିକà­à­±à­‡à¬·à­à¬Ÿà¬°à­à¬¨ ସିରିକà­à¬‡à¬·à­à¬Ÿà¬°à­à¬¨ ସିରିକà­à¬¤à¬—ବାନà­à­±à¬¾à¬¤à¬¾à¬‡ ଲେନୂତନ ତାଇ ଲ" + + "à­à¬à¬¤à¬¾à¬®à¬¿à¬²à­à¬¤à¬¾à¬‡ ଭିà¬à¬¤à­à¬¤à­‡à¬²à­à¬—à­à¬¤à­‡à¬™à­à¬—ୱାରà­à¬¤à¬¿à¬«à¬¿à¬™à­à¬˜à¬¾à¬Ÿà¬¾à¬—ାଲୋଗà­à¬¥à¬¾à¬¨à¬¾à¬¥à¬¾à¬‡à¬¤à¬¿à¬¬à­‡à¬¤à¬¾à¬¨à­à­Ÿà­à¬—" + + "ାରିଟିକà­à­±à¬¾à¬‡à¬­à¬¿à¬œà¬¿à¬¬à¬²à­ ସà­à¬ªà¬¿à¬šà­à¬ªà­à¬°à­à¬£à¬¾ ଫରାସୀସà­à¬®à­‡à¬°à­‹-ଆକà­à¬•à¬¾à¬¡à¬¿à¬†à¬¨à­ ସà­à¬¨à¬¿à¬«à¬°à­à¬®à­Ÿà­€à¬¬à¬‚" + + "ଶଗତଗାଣିତିକ ନୋଟେସନà­à¬¸à¬¿à¬®à­à¬¬à¬²à­à¬…ଲିଖିତସାଧାରଣଅଞà­à¬œà¬¾à¬¤ କିମà­à¬¬à¬¾ ଅବୈଧ ସà­à¬•à­à¬°à­€à¬ªà­à¬Ÿ", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0043, 0x0061, 0x007c, + 0x0094, 0x0094, 0x0094, 0x00a6, 0x00bb, 0x00df, 0x00f7, 0x010f, + 0x0121, 0x0139, 0x014b, 0x0157, 0x01cc, 0x01db, 0x01e4, 0x01f6, + 0x0205, 0x0217, 0x022f, 0x0247, 0x029b, 0x02b6, 0x02c8, 0x02c8, + 0x02ff, 0x0339, 0x0379, 0x0379, 0x038e, 0x03bc, 0x03d4, 0x03f8, + 0x040a, 0x040a, 0x041c, 0x0434, 0x044c, 0x0464, 0x0470, 0x0482, + 0x04a4, 0x04cf, 0x04cf, 0x04e7, 0x04ff, 0x04ff, 0x051b, 0x055f, + 0x0590, 0x05a2, 0x05c4, 0x05dc, 0x05f4, 0x05f4, 0x060d, 0x0622, + // Entry 40 - 7F + 0x063a, 0x064c, 0x064c, 0x065b, 0x0670, 0x0670, 0x067c, 0x0688, + 0x0691, 0x06bf, 0x06e7, 0x06f9, 0x0708, 0x071a, 0x072f, 0x074b, + 0x074b, 0x074b, 0x0760, 0x0775, 0x0775, 0x078a, 0x079c, 0x07ca, + 0x07ca, 0x07ca, 0x07e5, 0x07fa, 0x07fa, 0x0818, 0x082a, 0x082a, + 0x084c, 0x084c, 0x0861, 0x0861, 0x0861, 0x0861, 0x0871, 0x0871, + 0x0880, 0x0896, 0x08a8, 0x08b4, 0x08cf, 0x08cf, 0x08cf, 0x08ee, + 0x0904, 0x0947, 0x0975, 0x099a, 0x09b5, 0x09e3, 0x0a29, 0x0a3e, + 0x0a62, 0x0a71, 0x0a89, 0x0a9b, 0x0a9b, 0x0ab6, 0x0adb, 0x0af3, + // Entry 80 - BF + 0x0af3, 0x0af3, 0x0af3, 0x0b02, 0x0b02, 0x0b1a, 0x0b39, 0x0b51, + 0x0b8b, 0x0bb6, 0x0bde, 0x0bf6, 0x0bf6, 0x0c06, 0x0c26, 0x0c38, + 0x0c38, 0x0c51, 0x0c63, 0x0c7e, 0x0c96, 0x0cae, 0x0cba, 0x0cc3, + 0x0cdb, 0x0cdb, 0x0cf9, 0x0d02, 0x0d2a, 0x0d2a, 0x0d2a, 0x0d4c, + 0x0d96, 0x0d9c, 0x0dab, 0x0dd6, 0x0dd6, 0x0deb, 0x0dfd, 0x0e0f, + 0x0e5d, + }, + }, + { // os + "ÐраббагКиррилицӕӔнцонгонд китайагТрадицион китайагЛатинагÐÓ•Ñ„Ñ‹ÑгӕÐӕзонгӕ " + + "Ñкрипт", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0041, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + // Entry 40 - 7F + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + // Entry 80 - BF + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x007e, 0x007e, + 0x0099, + }, + }, + { // pa + paScriptStr, + paScriptIdx, + }, + { // pa-Arab + "عربیگÙرمÙÚ©Ú¾ÛŒ", + []uint16{ // 45 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0018, + }, + }, + { // pl + plScriptStr, + plScriptIdx, + }, + {}, // prg + { // ps + "عربي", + []uint16{ // 5 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, + }, + }, + { // pt + ptScriptStr, + ptScriptIdx, + }, + { // pt-PT + ptPTScriptStr, + ptPTScriptIdx, + }, + {}, // qu + { // rm + "arabarameic imperialarmenavesticbalinaisbatakbengalsimbols da Blissbopom" + + "ofobrahmiscrittira da Braillebuginaisbuhidchakmasimbols autoctons ca" + + "nadais unifitgadscarianchamcherokeecirthcopticcipriotcirillicslav da" + + " baselgia vegldevanagarideseretegipzian demoticegipzian ieraticierog" + + "lifas egipzianasetiopickutsurigeorgianglagoliticgoticgrecgujaratigur" + + "mukhihangulhanhanunooscrittira chinaisa simplifitgadascrittira china" + + "isa tradiziunalaebraichiraganapahawn hmongkatanaka u hiraganaungarai" + + "s veglindusitalic vegljavanaisgiapunaiskayah likatakanakharoshthikhm" + + "er/cambodschankannadacoreankaithilannalaotlatin (scrittira gotica)la" + + "tin (scrittira gaelica)latinlepchalimbulinear Alinear Blichiclidicma" + + "ndaicmanicheicieroglifas mayameroiticmalaisianmongolicmoonmeetei may" + + "ekburmaisn’kooghamol chikiorkhonoriyaosmanpermic veglphags-papahlavi" + + " dad inscripziunspahlavi da psalmspahlavi da cudeschsfenizianfonetic" + + "a da Pollardpartic dad inscripziunsrejangrongorongorunicsamaritansar" + + "atisaurashtralingua da segnsshaviansingalaissundanaissyloti nagrisir" + + "icsiric estrangelosiric dal vestsiric da l’osttagbanwatai letai luet" + + "amiltai viettelugutengwartifinaghtagalogthaanatailandaistibetanugari" + + "ticvaiialfabet visibelpersian veglscrittira a cugn sumeric-accadicay" + + "iertànotaziun matematicasimbolslinguas na scrittasbetg determinàscri" + + "ttira nunenconuschenta u nunvalaivla", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0014, 0x0019, 0x0020, + 0x0028, 0x0028, 0x0028, 0x002d, 0x0033, 0x0043, 0x004b, 0x0051, + 0x0065, 0x006d, 0x0072, 0x0078, 0x009d, 0x00a3, 0x00a7, 0x00af, + 0x00b4, 0x00ba, 0x00c1, 0x00c9, 0x00de, 0x00e8, 0x00ef, 0x00ef, + 0x00ff, 0x010f, 0x0124, 0x0124, 0x012b, 0x0132, 0x013a, 0x0144, + 0x0149, 0x0149, 0x014d, 0x0155, 0x015d, 0x0163, 0x0166, 0x016d, + 0x018d, 0x01ac, 0x01ac, 0x01b2, 0x01ba, 0x01ba, 0x01c6, 0x01d9, + 0x01e6, 0x01eb, 0x01f6, 0x01fe, 0x0207, 0x0207, 0x020f, 0x0217, + // Entry 40 - 7F + 0x0221, 0x0232, 0x0232, 0x0239, 0x023f, 0x023f, 0x0245, 0x024a, + 0x024e, 0x0266, 0x027f, 0x0284, 0x028a, 0x028f, 0x0297, 0x029f, + 0x029f, 0x029f, 0x02a5, 0x02aa, 0x02aa, 0x02b1, 0x02ba, 0x02c9, + 0x02c9, 0x02c9, 0x02d1, 0x02da, 0x02da, 0x02e2, 0x02e6, 0x02e6, + 0x02f2, 0x02f2, 0x02f9, 0x02f9, 0x02f9, 0x02f9, 0x02ff, 0x02ff, + 0x0304, 0x030c, 0x0312, 0x0317, 0x031c, 0x031c, 0x031c, 0x0327, + 0x032f, 0x0347, 0x0358, 0x036b, 0x0373, 0x0386, 0x039d, 0x03a3, + 0x03ad, 0x03b2, 0x03bb, 0x03c1, 0x03c1, 0x03cb, 0x03da, 0x03e1, + // Entry 80 - BF + 0x03e1, 0x03e1, 0x03e1, 0x03ea, 0x03ea, 0x03f3, 0x03ff, 0x0404, + 0x0414, 0x0422, 0x0432, 0x043a, 0x043a, 0x0440, 0x0447, 0x044c, + 0x044c, 0x0454, 0x045a, 0x0461, 0x0469, 0x0470, 0x0476, 0x0480, + 0x0487, 0x0487, 0x048f, 0x0493, 0x04a2, 0x04a2, 0x04a2, 0x04ae, + 0x04cf, 0x04d1, 0x04d6, 0x04e9, 0x04e9, 0x04f0, 0x0503, 0x0512, + 0x053a, + }, + }, + {}, // rn + { // ro + roScriptStr, + roScriptIdx, + }, + {}, // rof + { // ru + ruScriptStr, + ruScriptIdx, + }, + {}, // rw + {}, // rwk + { // sah + "ÐрааптыыЭрмÑÑннииÐууччалыыКириÑктииДьоппуоннууКÑриÑйдииЛатыынныыТаайдыыС" + + "урулла иликБиллибÑÑ‚ Ñурук", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, + 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, + 0x0046, 0x0046, 0x0046, 0x0046, 0x005c, 0x005c, 0x005c, 0x005c, + // Entry 40 - 7F + 0x005c, 0x005c, 0x005c, 0x005c, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + // Entry 80 - BF + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, + 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x008e, 0x00a5, 0x00a5, + 0x00c0, + }, + }, + {}, // saq + {}, // sbp + { // se + "arábakyrillalaÅ¡greikkalaÅ¡hangulkiinnašálkiárbevirolaÅ¡hiraganakatakanaláh" + + "tenaÅ¡orrut chállojuvvotdovdameahttun chállin", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x001c, 0x001c, 0x001c, 0x0022, 0x002a, 0x002a, + 0x002f, 0x003c, 0x003c, 0x003c, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, + // Entry 40 - 7F + 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + // Entry 80 - BF + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0056, 0x0069, 0x0069, + 0x007f, + }, + }, + { // se-FI + "arábalaÅ¡kiinnálašálkes kiinnálašárbevirolaÅ¡ kiinnálaÅ¡orrut Äállojuvvotdo" + + "vdameahttun Äállin", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0015, 0x0015, + 0x0027, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + // Entry 40 - 7F + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + // Entry 80 - BF + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0053, 0x0053, + 0x0069, + }, + }, + {}, // seh + {}, // ses + {}, // sg + {}, // shi + {}, // shi-Latn + { // si + siScriptStr, + siScriptIdx, + }, + { // sk + skScriptStr, + skScriptIdx, + }, + { // sl + slScriptStr, + slScriptIdx, + }, + {}, // smn + {}, // sn + { // so + "Aan la qorinFar aan la aqoon amase aan saxnayn", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, + 0x002e, + }, + }, + { // sq + sqScriptStr, + sqScriptIdx, + }, + { // sr + srScriptStr, + srScriptIdx, + }, + { // sr-Latn + srLatnScriptStr, + srLatnScriptIdx, + }, + { // sv + svScriptStr, + svScriptIdx, + }, + {}, // sv-FI + { // sw + swScriptStr, + swScriptIdx, + }, + {}, // sw-CD + { // ta + taScriptStr, + taScriptIdx, + }, + { // te + teScriptStr, + teScriptIdx, + }, + {}, // teo + { // th + thScriptStr, + thScriptIdx, + }, + { // ti + "áŠá‹°áˆáˆ‹á‰²áŠ•", + []uint16{ // 76 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + // Entry 40 - 7F + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0012, + }, + }, + { // to + "tohinima fakaÊ»afakatohinima fakaÊ»alapÄ“nia-kaukasiatohinima fakaÊ»alepeato" + + "hinima fakaÊ»alÄmiti-Ê»emipaeatohinima fakaÊ»Ämeniatohinima fakaÊ»avesit" + + "anitohinima fakapalitohinima fakapamumitohinima fakapasa-vÄtohinima " + + "fakapÄtakitohinima fakapengikalitohinima fakaÊ»ilonga-pilisitohinima " + + "fakapopomofotohinima fakapalÄmÄ«tohinima laukonga ki he kuitohinima f" + + "akapukisitohinima fakapuhititohinima fakasakimÄtohinima fakatupuÊ»i-k" + + "Änata-fakatahatahatohinima fakakalitohinima fakasamitohinima fakase" + + "lokÄ«tohinima fakakÄ«lititohinima fakakopitikatohinima fakasaipalesito" + + "hinima fakalÅ«siatohinima fakalÅ«sia-lotu-motuÊ»atohinima fakaÊ»initia-t" + + "evanÄkalÄ«tohinima fakateseletitohinimanounou fakatupoloiÄ“tohinima te" + + "motika-fakaÊ»isipitetohinima hielatika-fakaÊ»isipitetohinima tongitapu" + + "-fakaÊ»isipitetohinima fakaÊ»elepasanitohinima fakaʻītiÅpiatohinima fa" + + "kakutusuli-seÅsiatohinima fakaseÅsiatohinima fakakalakolititohinima " + + "fakakotikatohinima fakasilanitÄtohinima fakakalisitohinima fakaÊ»init" + + "ia-kutalatitohinima fakakÅ«mukitohinima fakakÅlea-hÄngÅ«lutohinima fak" + + "asiainatohinima fakahanunÅÊ»otohinima fakasiaina-fakafaingofuatohinim" + + "a fakasiaina-tukufakaholotohinima fakahepelÅ«tohinima fakasiapani-hil" + + "akanatohinima tongitapu-fakaÊ»anatoliatohinima fakapahaumongitohinima" + + " fakasilapa-siapanitohinima fakahungakalia-motuÊ»atohinima fakaÊ»initu" + + "sitohinima fakaʻītali-motuÊ»atohinima fakasavatohinima fakasiapanitoh" + + "inima fakaiÅ«kenitohinima fakakaialÄ«tohinima fakasiapani-katakanatohi" + + "nima fakakalositÄ«tohinima fakakamipÅtiatohinima fakakosikÄ«tohinima f" + + "akaÊ»initia-kanatatohinima fakakÅleatohinima fakakepeletohinima fakak" + + "aiatÄ«tohinima fakalanatohinima fakalautohinima fakalatina-falakituli" + + "tohinima fakalatina-kaelikitohinima fakalatinatohinima fakalepasÄtoh" + + "inima fakalimipÅ«tohinima fakalinea-Atohinima fakalinea-Ptohinima fak" + + "afalÄsetohinima fakalomatohinima fakalÄ«siatohinima fakalÄ«tiatohinima" + + " fakamahasanitohinima fakamanitaeatohinima fakamanikaeatohinima tong" + + "itapu fakamaiatohinima fakamÄ“nititohinima fakameloue-heiheitohinima " + + "fakamelouetohinima fakaÊ»initia-malÄialamitohinima fakamotÄ«tohinima f" + + "akamongokÅliatohinima laukonga ki he kui-mÄhinatohinima fakamolÅtohi" + + "nima fakametei-maiekitohinima fakapematohinima fakaÊ»alepea-tokelau-m" + + "otuÊ»atohinima fakanapateatohinima fakanati-sepatohinima fakanikÅtohi" + + "nima fakanasiÅ«tohinima fakaÊ»okamitohinima fakaÊ»olisikitohinima fakaÊ»" + + "olikonitohinima fakaÊ»initia-Ê»olÄeatohinima fakaÊ»osimÄniatohinima fak" + + "apalamilenetohinima fakapausinihautohinima fakapÄ“mi-motuÊ»atohinima f" + + "akapÄkisipÄtohinima fakapÄlavi-tongitohinima fakapÄlavi-saametohinim" + + "a fakapÄlavi-tohitohinima fakafoinikiatohinima fakafonÄ“tiki-polÄtito" + + "hinima fakapÄtia-tongitohinima fakalesiangitohinima fakalongolongoto" + + "hinima fakalunikitohinima fakasamalitanetohinima fakasalatitohinima " + + "fakaÊ»alepea-tonga-motuÊ»atohinima fakasaulasitÄtohinima fakaÊ»ilonga-t" + + "ohitohinima fakasiavitohinima fakasiÄlatÄtohinima fakasititamitohini" + + "ma fakakutauÄtitohinima fakasingihalatohinima fakasolasomipengitohin" + + "ima fakasunitÄtohinima fakasailoti-nakilitohinima fakasuliÄiÄtohinim" + + "a fakasuliÄiÄ-Ê»esitelangelotohinima fakasuliÄiÄ-hihifotohinima fakas" + + "uliÄiÄ-hahaketohinima fakatakipaneuÄtohinima fakatakilitohinima faka" + + "tai-luetohinima fakatai-lue-foÊ»outohinima fakatamilitohinima fakatan" + + "gutitohinima fakatai-vietitohinima fakaÊ»initia-telukutohinima fakate" + + "ngiualitohinima fakatifinÄkitohinima fakatakalokatohinima fakatÄnato" + + "hinima fakatailanitohinima fakataipetitohinima fakatÄ«hutatohinima fa" + + "kaʻūkalititohinima fakavaitohinima fakafonÄ“tiki-hÄmaitohinima fakava" + + "langi-kisitÄ«tohinima fakauoleaitohinima fakapÄ“siamuÊ»atohinima fakama" + + "taÊ»ingahau-sumelo-akatiatohinima fakaÄ«Ä«tohinima hokositohinima fakam" + + "atematikatohinima fakaÊ»ilongatohinima taÊ»etohitohiÊ»itohinima fakatat" + + "autohinima taÊ»eÊ»iloa", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0014, 0x0035, 0x0035, 0x004a, 0x006b, 0x0081, 0x0099, + 0x00aa, 0x00bd, 0x00d2, 0x00e6, 0x00fc, 0x0118, 0x012d, 0x0142, + 0x015d, 0x0170, 0x0183, 0x0197, 0x01c0, 0x01d1, 0x01e2, 0x01f6, + 0x020a, 0x021f, 0x0235, 0x0248, 0x0268, 0x028a, 0x029f, 0x02bb, + 0x02da, 0x02fa, 0x031a, 0x0332, 0x034a, 0x0367, 0x037b, 0x0392, + 0x03a5, 0x03bb, 0x03ce, 0x03ec, 0x0400, 0x041d, 0x0430, 0x0447, + 0x0468, 0x0488, 0x0488, 0x049c, 0x04b9, 0x04da, 0x04f1, 0x050c, + 0x052b, 0x0541, 0x055e, 0x056f, 0x0583, 0x0597, 0x05ab, 0x05c8, + // Entry 40 - 7F + 0x05de, 0x05f5, 0x0609, 0x0625, 0x0638, 0x064b, 0x065f, 0x0670, + 0x0680, 0x069e, 0x06b9, 0x06cc, 0x06e0, 0x06f4, 0x0708, 0x071c, + 0x0730, 0x0741, 0x0754, 0x0767, 0x077c, 0x0791, 0x07a6, 0x07c1, + 0x07d5, 0x07ef, 0x0802, 0x0823, 0x0835, 0x084d, 0x0870, 0x0882, + 0x089b, 0x089b, 0x08ac, 0x08d1, 0x08e5, 0x08fb, 0x090d, 0x0920, + 0x0934, 0x094a, 0x0960, 0x097e, 0x0996, 0x09ad, 0x09c4, 0x09de, + 0x09f5, 0x0a0f, 0x0a29, 0x0a42, 0x0a57, 0x0a75, 0x0a8e, 0x0aa3, + 0x0aba, 0x0acd, 0x0ae4, 0x0af7, 0x0b1a, 0x0b31, 0x0b4b, 0x0b5d, + // Entry 80 - BF + 0x0b73, 0x0b88, 0x0b9e, 0x0bb4, 0x0bce, 0x0be2, 0x0bfd, 0x0c13, + 0x0c38, 0x0c55, 0x0c72, 0x0c8a, 0x0c9d, 0x0cb1, 0x0ccc, 0x0cdf, + 0x0cf3, 0x0d09, 0x0d25, 0x0d3b, 0x0d51, 0x0d66, 0x0d78, 0x0d8c, + 0x0da0, 0x0db4, 0x0dcb, 0x0ddb, 0x0df8, 0x0e14, 0x0e27, 0x0e3f, + 0x0e67, 0x0e78, 0x0e87, 0x0e9e, 0x0e9e, 0x0eb3, 0x0ecc, 0x0ede, + 0x0ef2, + }, + }, + { // tr + trScriptStr, + trScriptIdx, + }, + {}, // twq + {}, // tzm + { // ug + "ئاÙاكائەرەبخان جەمەتى ئارامۇئەرمەنئاۋÛستابالىبامۇمباسساباتاكبÛنگالبىلىس " + + "بەلگىلىرىخەنچە پىنيىنبراخمىبرائىل ئەمالار ÙŠÛزىقىبۇگىبۇخىتچاكمابىرلى" + + "ككە ÙƒÛ•Ù„Ú¯Û•Ù† كانادا يەرلىك بوغۇم جەدۋىلىكارىياچامچÛروكىكىرسچەكوپتىكسى" + + "پرۇسكىرىلقەدىمكى چىركاۋ سىلاۋيانچە كىرىلدÛۋاناگارىدÛزÛرÛتدۇپلويان ت" + + "Ûز خاتىرىلەشدÛموتىكچە مىسىرخىيەراتىكچە مىسىرتەسۋىرىي ÙŠÛزىق مىسىرئÛÙ" + + "ىيوپىيەچەخۇتسۇرى گىرۇزىنچەگىرۇزىنچەگىلاگوتچەگوتچەگىرانتاچەگىرÛÙƒÚ†Û•Ú¯Û‡" + + "جاراتچەگۇرمۇكىچەخەنچەخانۇنۇچەئاددىي خەنچەمۇرەككەپ خەنچەئىبرانىچەخىر" + + "اگانائاناتولىيە تەسۋىرىي ÙŠÛزىقمۆڭچەياپونچە خىراگانا ياكى كاتاكاناقە" + + "دىمكى ماجارچەئىندۇسچەقەدىمكى ئىتاليانچەياۋاچەياپونچەجۇرچÛنچەكاياھچە" + + "كاتاكاناكاروشتىچەكÛخمÛرچەخوجكىچەكانناداچەكورÛيەچەكپÛللÛچەكاياتىچەلا" + + "نناچەلائوسچەÙىراكتۇر لاتىنچەسىكوت لاتىنچەلاتىنچەلەپچاچەلىمبۇچەسىزىق" + + "لىق Aسىزىقلىق BÙراسÛرچەلوماچەلىسىيانچەلىدىيەچەماندائىكچەمانەكÛزەمچە" + + "ماياچە تەسۋىرىي ÙŠÛزىقمÛندÛÚ†Û•Ù…Ûتروئىت يازمىچەمÛتروئىتمالايامچەموڭغۇل" + + "چەكورىيەمروچەمانىپۇرىچەبىرماچەقەدىمكى شىمالىي ئەرەبچەئانباتچەناشىچە" + + "نىكوچەنۈشۇچەئوگەمچەئول-چىكىچەئورخۇنچەئورىياچەئوسمانيەپالمىراچەقەدىم" + + "كى Ù¾Ûرمىكچەپاسپاچەپەھلىۋىچە ئويما خەتپەھلىۋىچە Ø´Ûئىرىي تىلپەھلىۋىچە" + + " كىتابى تىلÙىنىكچەپوللارد تاۋۇشلىرىپارتىئانچە ئويما خەترÛجاڭچەروڭگور" + + "وڭگورۇنىكچەسامارىچەساراتىچەقەدىمكى جەنۇبى ئەرەبچەسائۇراشتىراچەئىشار" + + "ەت تىلىشاۋىيانچەشاراداچەكۇداۋادچەسىنخالاچەسورا سامپىڭسۇنداچەسىيولوت" + + "Ù‰-ناگرىچەسۈرىيەچەسۈرىيەچە ئەبجەتغەربىي سۈرىيەچەشەرقىي سۈرىيەچەتاگبا" + + "نۋاچەتاكرىچەتاي-Ù„Û•Ú†Û•ÙŠÛÚ­Ù‰ تاي-لەچەتامىلچەتاڭغۇتچەتايلاندچە-ۋىيÛتنامچ" + + "ەتÛلۇگۇچەتÛڭۋارچەتىÙىناغچەتاگالوگچەتاناچەتايلاندچەتىبەتچەتىرخۇتاچەئ" + + "ۇگارىتىكچەۋايچەكۆرۈنۈشچان تاۋۇشۋاراڭ كىشىتىۋولىئايقەدىمكى پارىسچەسۇ" + + "Ù…Ûر-ئاككادىيان مىخ خەتيىچەئىرسىيەت ئاتالغۇماتÛماتىكىلىق بەلگەبەلگەي" + + "Ûزىلمىغانئورتاقيوچۇن ÙŠÛزىق", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x000c, 0x000c, 0x0016, 0x0036, 0x0042, 0x0050, + 0x0058, 0x0062, 0x006c, 0x0076, 0x0082, 0x009f, 0x00b6, 0x00c2, + 0x00ea, 0x00f2, 0x00fc, 0x0106, 0x0157, 0x0163, 0x0169, 0x0175, + 0x0181, 0x018d, 0x0199, 0x01a3, 0x01de, 0x01f2, 0x0200, 0x022a, + 0x0247, 0x0268, 0x028e, 0x028e, 0x02a6, 0x02c7, 0x02d9, 0x02eb, + 0x02f5, 0x0307, 0x0315, 0x0327, 0x0339, 0x0339, 0x0343, 0x0353, + 0x036a, 0x0385, 0x0385, 0x0397, 0x03a7, 0x03d7, 0x03e1, 0x041a, + 0x0437, 0x0447, 0x046a, 0x0476, 0x0484, 0x0494, 0x04a2, 0x04b2, + // Entry 40 - 7F + 0x04c4, 0x04d4, 0x04e2, 0x04f4, 0x0504, 0x0514, 0x0524, 0x0532, + 0x0540, 0x055f, 0x0578, 0x0586, 0x0594, 0x05a2, 0x05b4, 0x05c6, + 0x05d6, 0x05e2, 0x05f4, 0x0604, 0x0604, 0x0618, 0x062e, 0x0656, + 0x0664, 0x0683, 0x0693, 0x06a5, 0x06a5, 0x06b5, 0x06c1, 0x06cb, + 0x06df, 0x06df, 0x06ed, 0x0719, 0x0729, 0x0735, 0x0741, 0x074d, + 0x075b, 0x076e, 0x077e, 0x078e, 0x079e, 0x07b0, 0x07b0, 0x07cf, + 0x07dd, 0x0801, 0x0829, 0x084f, 0x085d, 0x087e, 0x08a4, 0x08b2, + 0x08c6, 0x08d4, 0x08e4, 0x08f4, 0x091e, 0x0938, 0x094f, 0x0961, + // Entry 80 - BF + 0x0971, 0x0971, 0x0983, 0x0995, 0x09aa, 0x09b8, 0x09d7, 0x09e7, + 0x0a04, 0x0a21, 0x0a3e, 0x0a52, 0x0a60, 0x0a6f, 0x0a87, 0x0a95, + 0x0aa5, 0x0acc, 0x0adc, 0x0aec, 0x0afe, 0x0b10, 0x0b1c, 0x0b2e, + 0x0b3c, 0x0b4e, 0x0b64, 0x0b6e, 0x0b8d, 0x0ba4, 0x0bb2, 0x0bcf, + 0x0bfc, 0x0c04, 0x0c23, 0x0c48, 0x0c48, 0x0c52, 0x0c66, 0x0c72, + 0x0c87, + }, + }, + { // uk + ukScriptStr, + ukScriptIdx, + }, + { // ur + urScriptStr, + urScriptIdx, + }, + {}, // ur-IN + { // uz + uzScriptStr, + uzScriptIdx, + }, + { // uz-Arab + "عربی", + []uint16{ // 5 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, + }, + }, + { // uz-Cyrl + "ÐрабÐрманБенгалиБопомофоБраиллеКирилДевангариҲабашГрузинЮнонГужаратиГурм" + + "ухиХангулХанСоддалаштирилганÐнъанавийИбронийХираганаЯпонКатаканаХме" + + "рКаннадаКорейÑЛаоЛотинМалайаламМўғулчаМьÑнмаОриÑСинхалаТамилТелугуТ" + + "аанаТайТибетРамзларÐзилмаганУмумийÐомаълум шрифт", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0020, 0x0020, 0x0030, 0x0030, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x0048, 0x0048, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x0064, 0x0064, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0078, 0x0088, 0x0096, 0x00a2, 0x00a8, 0x00a8, + 0x00c8, 0x00da, 0x00da, 0x00e8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, + 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x0100, 0x0100, 0x0100, 0x0110, + // Entry 40 - 7F + 0x0110, 0x0118, 0x0118, 0x0126, 0x0132, 0x0132, 0x0132, 0x0132, + 0x0138, 0x0138, 0x0138, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, + 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, 0x0142, + 0x0142, 0x0142, 0x0142, 0x0154, 0x0154, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, 0x016e, + 0x016e, 0x016e, 0x016e, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + // Entry 80 - BF + 0x0176, 0x0176, 0x0176, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, + 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x0184, 0x018e, + 0x018e, 0x018e, 0x019a, 0x019a, 0x019a, 0x019a, 0x01a4, 0x01aa, + 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, + 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01b4, 0x01c2, 0x01d4, 0x01e0, + 0x01fb, + }, + }, + {}, // vai + {}, // vai-Latn + { // vi + viScriptStr, + viScriptIdx, + }, + {}, // vun + { // wae + "ArabiÅ¡ArmeniÅ¡BengaliÅ¡KirilliÅ¡DevanagariEthiopiÅ¡GeorgiÅ¡GriÄiÅ¡GujaratiVere" + + "ifaÄtTraditionellHebräiÅ¡JapaniÅ¡KhmerKannadaKorianiÅ¡LaotiÅ¡LatiniÅ¡Mala" + + "isiÅ¡BurmesiÅ¡OriyaSingalesiÅ¡TamiliÅ¡TeluguThánaThaiSchriftlosUnkodiert" + + "i Schrift", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0021, 0x0021, 0x002b, 0x002b, 0x002b, + 0x002b, 0x002b, 0x002b, 0x002b, 0x0034, 0x0034, 0x003c, 0x003c, + 0x003c, 0x003c, 0x0044, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x0056, 0x0062, 0x0062, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x0073, 0x0073, 0x0073, 0x0073, + // Entry 40 - 7F + 0x0073, 0x0078, 0x0078, 0x007f, 0x0088, 0x0088, 0x0088, 0x0088, + 0x008f, 0x008f, 0x008f, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, + 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, + 0x0097, 0x0097, 0x0097, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, + 0x00a0, 0x00a0, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, 0x00a9, + 0x00a9, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + // Entry 80 - BF + 0x00ae, 0x00ae, 0x00ae, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, + 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00b9, 0x00c1, + 0x00c1, 0x00c1, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00cd, 0x00d1, + 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, + 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00d1, 0x00db, 0x00db, + 0x00ed, + }, + }, + {}, // xog + {}, // yav + { // yi + "×ַר×ַבישצירילישדעוו×Ö·× ×Ö·×’×ַריגריכישHebrגַלחיש", + []uint16{ // 76 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x001e, 0x001e, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, + 0x0046, 0x0046, 0x0046, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, + 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, + // Entry 40 - 7F + 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, 0x004a, + 0x004a, 0x004a, 0x004a, 0x0056, + }, + }, + {}, // yo + {}, // yo-BJ + { // yue + "阿法å¡æ–‡å­—高加索阿爾巴尼亞文阿拉伯文皇室亞美尼亞文亞美尼亞文阿維斯陀文峇里文巴姆穆文巴薩文巴塔克文孟加拉文布列斯文注音符號婆羅米文盲人用點字布å‰" + + "斯文布希德文查克馬文加拿大原ä½æ°‘通用字符å¡é‡Œäºžæ–‡å æ–‡æŸ´ç¾…基文色斯文科普特文塞浦路斯文斯拉夫文西里爾文(å¤æ•™æœƒæ–¯æ‹‰å¤«æ–‡è®Šé«”)天城文德瑟" + + "雷特文æœæ™®æ´›ä¼Šé€Ÿè¨˜å¤åŸƒåŠä¸–ä¿—é«”å¤åŸƒåŠåƒ§ä¾¶é«”å¤åŸƒåŠè±¡å½¢æ–‡å­—愛爾巴桑文衣索比亞文喬治亞語系(阿索他路里和努斯克胡里文)喬治亞文格拉哥里文" + + "歌德文格蘭他文字希臘文å¤å‰æ‹‰ç‰¹æ–‡å¤é­¯ç©†å¥‡æ–‡éŸ“文字漢語哈努諾文簡體中文ç¹é«”中文希伯來文平å‡å安那托利亞象形文字楊æ¾éŒ„苗文片å‡å或平å‡å" + + "å¤åŒˆç‰™åˆ©æ–‡å°åº¦æ²³æµåŸŸï¼ˆå“ˆæ‹‰å¸•æ–‡ï¼‰å¤æ„大利文爪哇文日文女真文字克耶æŽæ–‡ç‰‡å‡åå¡ç¾…é ˆæ文高棉文克å‰å¥‡æ–‡å­—åŽé‚£é”文韓文克培列文凱ææ–‡è—æ‹¿æ–‡" + + "寮國文拉ä¸æ–‡ï¼ˆå°–角體活字變體)拉ä¸æ–‡ï¼ˆè“‹çˆ¾èªžè®Šé«”)拉ä¸æ–‡é›·å¸ƒæŸ¥æ–‡æž—佈文線性文字(A)線性文字(B)栗僳文洛馬文呂西亞語里底亞語曼底安" + + "文摩尼教文瑪雅象形文字門德文麥羅埃文(曲線字體)麥羅埃文馬來亞拉姆文蒙å¤æ–‡è’™æ°é»žå­—謬文曼尼普爾文緬甸文å¤åŒ—阿拉伯文ç´å·´æ³°æ–‡å­—ç´è¥¿æ ¼å·´" + + "文西éžæ›¸é¢èªžè¨€ (N’Ko)女書文字æ­ç”˜æ–‡æ¡‘塔利文鄂爾渾文æ­åˆ©äºžæ–‡æ­æ–¯æ›¼äºžæ–‡å¸•ç±³ç‘žæ‹‰æ–‡å­—å¤å½¼çˆ¾å§†è«¸æ–‡å…«æ€å·´æ–‡å·´åˆ—維文(碑銘體)巴列維" + + "文(è–詩體)巴列維文(書體)腓尼基文æŸæ ¼ç†æ‹¼éŸ³ç¬¦å¸•æ亞文(碑銘體)拉讓文朗格朗格象形文å¤åŒ—æ­æ–‡å­—撒馬利亞文沙拉堤文å¤å—阿拉伯文索拉什" + + "特拉文手語書寫符號簫æŸç´å­—符å¤æ‹‰é”文悉曇文字信德文錫蘭文索朗桑朋文字巽他文希洛弟ç´æ ¼é‡Œæ–‡æ•åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡ï¼ˆç¦éŸ³é«”文字變體)敘利亞文(" + + "西方文字變體)敘利亞文(æ±æ–¹æ–‡å­—變體)å—島文塔å¡é‡Œæ–‡å­—傣哪文西雙版ç´æ–°å‚£æ–‡å¦ç±³çˆ¾æ–‡è¥¿å¤æ–‡å‚£æ“”文泰盧固文談格瓦文æéžç´æ–‡å¡”加拉文塔安那" + + "文泰文西è—æ–‡é‚蒂利文çƒåŠ åˆ—文瓦ä¾æ–‡è¦–覺語音文字瓦郎奇蒂文字沃雷艾文å¤æ³¢æ–¯æ–‡è˜‡ç±³é­¯äºžç”²æ–‡æ¥”形文字彞文繼承文字(Unicode)數學符號" + + "符號éžæ›¸å¯«èªžè¨€ä¸€èˆ¬æ–‡å­—未知文字", + []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x002a, 0x002a, 0x0036, 0x004b, 0x005a, 0x0069, + 0x0072, 0x007e, 0x0087, 0x0093, 0x009f, 0x00ab, 0x00b7, 0x00c3, + 0x00d2, 0x00de, 0x00ea, 0x00f6, 0x0114, 0x0120, 0x0126, 0x0132, + 0x013b, 0x0147, 0x0156, 0x0162, 0x018f, 0x0198, 0x01a7, 0x01b9, + 0x01cb, 0x01dd, 0x01f2, 0x0201, 0x0210, 0x0249, 0x0255, 0x0264, + 0x026d, 0x027c, 0x0285, 0x0294, 0x02a3, 0x02ac, 0x02b2, 0x02be, + 0x02ca, 0x02d6, 0x02d6, 0x02e2, 0x02eb, 0x0306, 0x0315, 0x032a, + 0x0339, 0x035a, 0x0369, 0x0372, 0x0378, 0x0384, 0x0390, 0x0399, + // Entry 40 - 7F + 0x03a8, 0x03b1, 0x03c0, 0x03cc, 0x03d2, 0x03de, 0x03e7, 0x03f0, + 0x03f9, 0x041d, 0x043b, 0x0444, 0x0450, 0x0459, 0x046c, 0x047f, + 0x0488, 0x0491, 0x049d, 0x04a9, 0x04a9, 0x04b5, 0x04c1, 0x04d3, + 0x04dc, 0x04fa, 0x0506, 0x0518, 0x0518, 0x0521, 0x052d, 0x0533, + 0x0542, 0x0542, 0x054b, 0x055d, 0x056c, 0x057b, 0x0596, 0x05a2, + 0x05ab, 0x05b7, 0x05c3, 0x05cf, 0x05de, 0x05f0, 0x05f0, 0x0602, + 0x060e, 0x0629, 0x0644, 0x065c, 0x0668, 0x067a, 0x0695, 0x069e, + 0x06b3, 0x06c2, 0x06d1, 0x06dd, 0x06ef, 0x0701, 0x0713, 0x0722, + // Entry 80 - BF + 0x072e, 0x073a, 0x0743, 0x074c, 0x075e, 0x0767, 0x077c, 0x0788, + 0x07af, 0x07d3, 0x07f7, 0x0800, 0x080f, 0x0818, 0x082d, 0x0839, + 0x0842, 0x084b, 0x0857, 0x0863, 0x086f, 0x087b, 0x0887, 0x088d, + 0x0896, 0x08a2, 0x08ae, 0x08b7, 0x08c9, 0x08db, 0x08e7, 0x08f3, + 0x0911, 0x0917, 0x0930, 0x093c, 0x093c, 0x0942, 0x0951, 0x095d, + 0x0969, + }, + }, + {}, // zgh + { // zh + zhScriptStr, + zhScriptIdx, + }, + { // zh-Hant + zhHantScriptStr, + zhHantScriptIdx, + }, + { // zh-Hant-HK + "西里爾文梵文埃塞俄比亞文格魯å‰äºžæ–‡å¤æœ¨åŸºæ–‡éŸ“文字æ¯ç°¡é«”å­—ç¹é«”å­—åŽç´é”æ–‡è€æ’¾æ–‡æ‹‰ä¸å­—æ¯é¦¬æ‹‰é›…拉姆文奧里雅文僧伽羅文泰米爾文它拿字æ¯è—æ–‡", + []uint16{ // 153 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0024, 0x0024, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x003f, 0x004b, 0x004b, 0x004b, + 0x0054, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, 0x005d, + // Entry 40 - 7F + 0x005d, 0x005d, 0x005d, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0072, 0x0072, 0x0072, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, + 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, 0x007e, + 0x007e, 0x007e, 0x007e, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + // Entry 80 - BF + 0x009c, 0x009c, 0x009c, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, + 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00a8, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00c0, 0x00c0, + 0x00c6, + }, + }, + { // zu + zuScriptStr, + zuScriptIdx, + }, +} + +var afScriptStr string = "" + // Size: 315 bytes + "ArabiesArmeensBengaalsBopomofoBrailleSirilliesDevanagariEtiopiesGeorgies" + + "GrieksGudjaratiGurmukhiHangulHanVereenvoudigde HanTradisionele HanHebree" + + "usHiraganaJapanneesKatakanaKhmerKannadaKoreaansLaoLatynMalabaarsMongools" + + "MianmarOriyaSinhalaTamilTeloegoeThaanaThaiTibettaansSimboleOngeskreweAlg" + + "emeenOnbekende skryfstelsel" + +var afScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x0016, 0x0016, 0x001e, 0x001e, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x002e, 0x002e, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0040, 0x0040, 0x0048, 0x0048, + 0x0048, 0x0048, 0x004e, 0x0057, 0x005f, 0x0065, 0x0068, 0x0068, + 0x007a, 0x008a, 0x008a, 0x0092, 0x009a, 0x009a, 0x009a, 0x009a, + 0x009a, 0x009a, 0x009a, 0x009a, 0x00a3, 0x00a3, 0x00a3, 0x00ab, + // Entry 40 - 7F + 0x00ab, 0x00b0, 0x00b0, 0x00b7, 0x00bf, 0x00bf, 0x00bf, 0x00bf, + 0x00c2, 0x00c2, 0x00c2, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00d0, 0x00d0, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, 0x00df, + 0x00df, 0x00df, 0x00df, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, 0x00e4, + // Entry 80 - BF + 0x00e4, 0x00e4, 0x00e4, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, + 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00f0, + 0x00f0, 0x00f0, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00fe, 0x0102, + 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, + 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x0113, 0x011d, 0x0125, + 0x013b, +} // Size: 362 bytes + +var amScriptStr string = "" + // Size: 505 bytes + "ዓረብኛአርሜንያዊቤንጋሊቦá–ሞáŽá‰¥áˆ¬á‹­áˆáˆ²á‹­áˆªáˆáŠ­á‹°á‰«áŠ•áŒ‹áˆªáŠ¢á‰µá‹®á’ክጆርጂያዊáŒáˆªáŠ­áŒ‰áŒƒáˆ«á‰²áŒ‰áˆ­áˆ™áŠªáˆáŠ•áŒ‰áˆáˆƒáŠ•á‰€áˆˆáˆ ያለ ሃንባህላዊ" + + " ሃንእብራይስጥሂራጋናጃá“ንኛካታካናክህመርካንአዳኮሪያኛላኦላቲንማላያáˆáˆáˆžáŠ•áŒŽáˆŠá‹«áŠ›áˆá‹«áŠ•áˆ›áˆ­áŠ¦áˆªá‹«áˆ²áŠ•áˆƒáˆ‹á‰³áˆšáˆá‰°áˆ‰áŒ‰á‰³áŠ“ታይቲ" + + "ቤታንáˆáˆáŠ­á‰¶á‰½á‹«áˆá‰°áŒ»áˆá‹¨áŒ‹áˆ«á‹«áˆá‰³á‹ˆá‰€ ስክሪá•á‰µ" + +var amScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x002a, 0x002a, 0x0036, 0x0036, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0051, 0x0051, 0x0060, 0x0060, 0x0060, + 0x0060, 0x0060, 0x0060, 0x0060, 0x006f, 0x006f, 0x007e, 0x007e, + 0x007e, 0x007e, 0x0087, 0x0093, 0x009f, 0x00ab, 0x00b1, 0x00b1, + 0x00c8, 0x00db, 0x00db, 0x00ed, 0x00f9, 0x00f9, 0x00f9, 0x00f9, + 0x00f9, 0x00f9, 0x00f9, 0x00f9, 0x0105, 0x0105, 0x0105, 0x0111, + // Entry 40 - 7F + 0x0111, 0x011d, 0x011d, 0x0129, 0x0135, 0x0135, 0x0135, 0x0135, + 0x013b, 0x013b, 0x013b, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, + 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, + 0x0144, 0x0144, 0x0144, 0x0153, 0x0153, 0x0165, 0x0165, 0x0165, + 0x0165, 0x0165, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, + 0x0174, 0x0174, 0x0174, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, + 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, + 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, 0x017d, + // Entry 80 - BF + 0x017d, 0x017d, 0x017d, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0192, + 0x0192, 0x0192, 0x019b, 0x019b, 0x019b, 0x019b, 0x01a1, 0x01a7, + 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, + 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01b3, 0x01c2, 0x01d1, 0x01da, + 0x01f9, +} // Size: 362 bytes + +var arScriptStr string = "" + // Size: 2430 bytes + "العربيةالأرمينيةالباليةالباتاكالبنغاليةرموز بليسالبوبوموÙوالهندوسيةالبرا" + + "يلالبجينيزالبهيديةمقاطع كندية أصلية موحدةالكاريةالتشاميةالشيروكيالسيرثا" + + "لقبطيةالقبرصيةالسيريليةالسيريلية السلاÙية الكنسية القديمةالديÙاناجاريال" + + "ديسيريتالديموطيقيةالهيراطيقيةالهيروغليÙيةالأثيوبيةالأبجدية الجورجية - Ø£" + + "سومتاÙرلي Ùˆ نسخريالجورجيةالجلاجوليتيكالقوطيةاليونانيةالتاغجراتيةالجرمخي" + + "الهانغولالهانالهانونوالهان المبسطةالهان التقليديةالعبريةالهيراجاناالباه" + + "وه همونجالكتكانا أو الهيراجاناالمجرية القديمةاندس - هارابانالإيطالية ال" + + "قديمةالجاويةاليابانيةالكياه لىالكتكاناالخاروشتىالخميريةالكاناداالكوريةا" + + "لانااللاواللاتينية - متغير Ùراكتراللاتينية - متغير غيلىاللاتينيةالليبتش" + + "ا - رونجالليمبوالخطية أالخطية بالليسيةالليديةالمانداينيةالمايا الهيروغل" + + "ÙŠÙيةالميرويتيكالماليالامالمغوليةمونالميانمارالعربية الشمالية القديمةأنك" + + "والأوجهامالأورخونالأورياالأوسمانياالبيرميكية القديمةالÙاجسباالÙينيقيةال" + + "صوتيات الجماءرنجورنجوالرونيالساراتيالعربية الجنوبية القديمةالشوانيالسين" + + "هالاالسوندانيةالسيلوتي ناغريالسريانيةالسريانية الأسترنجيليةالسريانية ال" + + "غربيةالسريانية الشرقيةالتاجبانواالتاي ليالتاى لى الجديدالتاميليةالتيلجو" + + "التينجوارالتيÙيناغالتغالوغيةالثعنةالتايلانديةالتبتيةالأجاريتيكيةالÙايال" + + "كلام المرئيالÙارسية القديمةالكتابة المسمارية الأكدية السومريةالييالمورو" + + "ثرموزغير مكتوبعامنظام كتابة غير معروÙ" + +var arScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x000e, 0x0020, 0x0020, + 0x002e, 0x002e, 0x002e, 0x003c, 0x004e, 0x005f, 0x0073, 0x0085, + 0x0093, 0x00a3, 0x00b3, 0x00b3, 0x00de, 0x00ec, 0x00fc, 0x010c, + 0x0118, 0x0126, 0x0136, 0x0148, 0x0189, 0x01a1, 0x01b3, 0x01b3, + 0x01c9, 0x01df, 0x01f7, 0x01f7, 0x0209, 0x024f, 0x025f, 0x0277, + 0x0285, 0x0285, 0x0297, 0x02ad, 0x02bb, 0x02cb, 0x02d5, 0x02e5, + 0x02fe, 0x031b, 0x031b, 0x0329, 0x033d, 0x033d, 0x0356, 0x0380, + 0x039d, 0x03b6, 0x03d7, 0x03e5, 0x03f7, 0x03f7, 0x0408, 0x0418, + // Entry 40 - 7F + 0x042a, 0x043a, 0x043a, 0x044a, 0x0458, 0x0458, 0x0458, 0x0462, + 0x046c, 0x0498, 0x04c0, 0x04d2, 0x04ed, 0x04fb, 0x050a, 0x0519, + 0x0519, 0x0519, 0x0527, 0x0535, 0x0535, 0x054b, 0x054b, 0x0570, + 0x0570, 0x0570, 0x0584, 0x0598, 0x0598, 0x05a8, 0x05ae, 0x05ae, + 0x05ae, 0x05ae, 0x05c0, 0x05ee, 0x05ee, 0x05ee, 0x05f6, 0x05f6, + 0x0606, 0x0606, 0x0616, 0x0624, 0x0638, 0x0638, 0x0638, 0x065b, + 0x066b, 0x066b, 0x066b, 0x066b, 0x067d, 0x069a, 0x069a, 0x069a, + 0x06aa, 0x06b6, 0x06b6, 0x06c6, 0x06f4, 0x06f4, 0x06f4, 0x0702, + // Entry 80 - BF + 0x0702, 0x0702, 0x0702, 0x0714, 0x0714, 0x0728, 0x0743, 0x0755, + 0x0780, 0x07a1, 0x07c2, 0x07d6, 0x07d6, 0x07e5, 0x0801, 0x0813, + 0x0813, 0x0813, 0x0821, 0x0833, 0x0845, 0x0859, 0x0865, 0x087b, + 0x0889, 0x0889, 0x08a1, 0x08ab, 0x08c4, 0x08c4, 0x08c4, 0x08e3, + 0x0924, 0x092c, 0x093a, 0x093a, 0x093a, 0x0942, 0x0953, 0x0959, + 0x097e, +} // Size: 362 bytes + +var azScriptStr string = "" + // Size: 1043 bytes + "É™rÉ™barmiermÉ™niavestanbalibatakbenqalblissymbolsbopomofobrahmibraylbuqinb" + + "uhidkakmbirləşmiÅŸ kanada yerli yazısıkariyançamçirokisirtkoptikkiprkiril" + + "qÉ™dimi kilsa kirilidevanaqarideseretmisir demotikmisir hiyeratikmisir hi" + + "yeroqlifefiopgürcü xutsurigürcüqlaqolitikqotikyunanqucaratqurmuxihanqılh" + + "anhanunuSadÉ™ləşdirilmiÅŸ HanÆnÉ™nÉ™vi Hanibraniiraqanapahav monqkatakana vÉ™" + + "ya hiraqanaqÉ™dimi macarhindistanqÉ™dimi italyalıcavayaponkayax likatakana" + + "xaroÅŸtikxmerkannadakoreyaktilannalaofraktur latınıgael latınılatınlepçəl" + + "imbulusianludianmandayenmaniçayenmaya hiyeroqlifimeroytikmalayalammonqol" + + "munmeytey mayekmyanmarnkooÄŸamol çikiorxonoriyaosmanyaqÉ™dimi permikfaqs-p" + + "afliflpkitab paxlavifoenikpolard fonetikprtirecÉ™ngronqoronqoruniksamarit" + + "ansaratisaurastraiÅŸarÉ™t yazısışavyansinhalsundansiloti nÉ™qrisiryakestran" + + "gela süryanicetaqbanvatay letÉ™zÉ™ tay lutamiltavtteluqutengvartifinaqtaqa" + + "loqthanataytibetuqaritvaydanışma sÉ™slÉ™riqÉ™dimi farssumer-akadyan kuneyfo" + + "rmyizmthsimvollaryazısızümumi yazınamÉ™lum skript" + +var azScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000a, 0x0011, 0x0018, + 0x001c, 0x001c, 0x001c, 0x0021, 0x0027, 0x0032, 0x003a, 0x0040, + 0x0045, 0x004a, 0x004f, 0x0053, 0x0075, 0x007c, 0x0080, 0x0087, + 0x008b, 0x0091, 0x0095, 0x009a, 0x00ae, 0x00b8, 0x00bf, 0x00bf, + 0x00cc, 0x00db, 0x00eb, 0x00eb, 0x00f0, 0x00ff, 0x0106, 0x0110, + 0x0115, 0x0115, 0x011a, 0x0121, 0x0128, 0x012f, 0x0132, 0x0138, + 0x014f, 0x015d, 0x015d, 0x0163, 0x016a, 0x016a, 0x0174, 0x018b, + 0x0198, 0x01a1, 0x01b2, 0x01b6, 0x01bb, 0x01bb, 0x01c3, 0x01cb, + // Entry 40 - 7F + 0x01d3, 0x01d8, 0x01d8, 0x01df, 0x01e5, 0x01e5, 0x01e8, 0x01ed, + 0x01f0, 0x0200, 0x020d, 0x0213, 0x021a, 0x021f, 0x021f, 0x021f, + 0x021f, 0x021f, 0x0225, 0x022b, 0x022b, 0x0233, 0x023d, 0x024d, + 0x024d, 0x024d, 0x0255, 0x025e, 0x025e, 0x0264, 0x0267, 0x0267, + 0x0273, 0x0273, 0x027a, 0x027a, 0x027a, 0x027a, 0x027d, 0x027d, + 0x0282, 0x028a, 0x028f, 0x0294, 0x029b, 0x029b, 0x029b, 0x02a9, + 0x02b0, 0x02b3, 0x02b6, 0x02c3, 0x02c9, 0x02d7, 0x02db, 0x02e2, + 0x02ec, 0x02f1, 0x02fa, 0x0300, 0x0300, 0x0309, 0x031a, 0x0321, + // Entry 80 - BF + 0x0321, 0x0321, 0x0321, 0x0327, 0x0327, 0x032d, 0x033a, 0x0340, + 0x0355, 0x0355, 0x0355, 0x035d, 0x035d, 0x0363, 0x0370, 0x0375, + 0x0375, 0x0379, 0x037f, 0x0386, 0x038d, 0x0394, 0x0399, 0x039c, + 0x03a1, 0x03a1, 0x03a7, 0x03aa, 0x03bd, 0x03bd, 0x03bd, 0x03c9, + 0x03e0, 0x03e2, 0x03e2, 0x03e6, 0x03e6, 0x03ef, 0x03f8, 0x0404, + 0x0413, +} // Size: 362 bytes + +var bgScriptStr string = "" + // Size: 2324 bytes + "арабÑкаÐрамейÑкаарменÑкаÐвеÑтанÑкаБалийÑкиБатакÑкабенгалÑÐºÐ°Ð‘Ð»Ð¸Ñ Ñимволиб" + + "опомофоБрахмиБрайловаБугинÑкаБухидЧакмаУнифицирани Ñимволи на канадÑки " + + "аборигениКарийÑкаХамитÑкаЧерокиКиртКоптÑкаКипърÑкакирилицадеванагариДез" + + "еретЕгипетÑко демотично пиÑмоЕгипетÑко йератично пиÑмоЕгипетÑки йерогли" + + "фиетиопÑкаГрузинÑка хуцуригрузинÑкаГлаголичеÑкаГотичеÑкагръцкагуджарати" + + "гурмукхихангълкитайÑкаХанунуопроÑтен китайÑкитрадиционен китайÑкиивритх" + + "ираганаПахау хмонгКатакана или ХираганаСтароунгарÑкаХарапÑкаДревно итал" + + "ийÑкаЯванÑкаÑпонÑÐºÐ°ÐšÐ°Ñ Ð›Ð¸ÐºÐ°Ñ‚Ð°ÐºÐ°Ð½Ð°ÐšÑ…Ð°Ñ€Ð¾ÑˆÑ‚Ñ…Ð¸ÐºÑ…Ð¼ÐµÑ€ÑкаканнадакорейÑкаКайтхи" + + "ЛанналаоÑкаЛатинÑка фрактураГалÑка латинÑкалатиницаЛепчаЛимбуЛинейна ÐЛ" + + "инейна БЛицийÑкаЛидийÑкаМандаринÑкаМанихейÑкаЙероглифи на МаитеМероитÑк" + + "амалаÑламмонголÑкаМунМанипурибирманÑкаÐ’КоОгамичеÑкаОл ЧикиОрхоно-ениÑе" + + "йÑкаориÑОÑманÑкаДревно пермÑкаФагÑ-паПахлавÑкаФиникийÑкаПиÑменоÑÑ‚ Полар" + + "дРонго-ронгоРуничеÑкаСамаританÑкаСаратиСаураштраÑинхалÑкаСунданÑкаСилот" + + "и ÐагриСирийÑкаСирийÑка еÑтрангелоЗападна ÑирийÑкаИзточна ÑирийÑкаТагба" + + "нваТай ЛеÐова Тай ЛетамилÑкателугуТагалогтаанатайÑкатибетÑкаУгаритÑкаВа" + + "йÑкаВидима речСтароперÑийÑкаШумеро-акадÑки клинопиÑЙиМатематичеÑки Ñимв" + + "олиÑимволибез пиÑменоÑтобщанепозната пиÑменоÑÑ‚" + +var bgScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0020, 0x0030, 0x0044, + 0x0054, 0x0054, 0x0054, 0x0064, 0x0076, 0x008d, 0x009d, 0x00a9, + 0x00b9, 0x00c9, 0x00d3, 0x00dd, 0x012b, 0x013b, 0x014b, 0x0157, + 0x015f, 0x016d, 0x017d, 0x018d, 0x018d, 0x01a1, 0x01af, 0x01af, + 0x01df, 0x020f, 0x0234, 0x0234, 0x0244, 0x0263, 0x0275, 0x028d, + 0x029f, 0x029f, 0x02ab, 0x02bd, 0x02cd, 0x02d9, 0x02e9, 0x02f5, + 0x0316, 0x033d, 0x033d, 0x0347, 0x0357, 0x0357, 0x036c, 0x0394, + 0x03ae, 0x03be, 0x03dd, 0x03eb, 0x03f9, 0x03f9, 0x0404, 0x0414, + // Entry 40 - 7F + 0x0426, 0x0436, 0x0436, 0x0444, 0x0454, 0x0454, 0x0460, 0x046a, + 0x0476, 0x0497, 0x04b4, 0x04c4, 0x04ce, 0x04d8, 0x04e9, 0x04fa, + 0x04fa, 0x04fa, 0x050a, 0x051a, 0x051a, 0x0530, 0x0544, 0x0566, + 0x0566, 0x0566, 0x0578, 0x0588, 0x0588, 0x059a, 0x05a0, 0x05a0, + 0x05b0, 0x05b0, 0x05c2, 0x05c2, 0x05c2, 0x05c2, 0x05cb, 0x05cb, + 0x05df, 0x05ec, 0x060b, 0x0613, 0x0623, 0x0623, 0x0623, 0x063e, + 0x064b, 0x064b, 0x064b, 0x065d, 0x0671, 0x0690, 0x0690, 0x0690, + 0x06a5, 0x06b7, 0x06cf, 0x06db, 0x06db, 0x06ed, 0x06ed, 0x06ed, + // Entry 80 - BF + 0x06ed, 0x06ed, 0x06ed, 0x06ff, 0x06ff, 0x0711, 0x0728, 0x0738, + 0x075d, 0x077c, 0x079b, 0x07ab, 0x07ab, 0x07b6, 0x07ca, 0x07da, + 0x07da, 0x07da, 0x07e6, 0x07e6, 0x07e6, 0x07f4, 0x07fe, 0x080a, + 0x081a, 0x081a, 0x082c, 0x0838, 0x084b, 0x084b, 0x084b, 0x0867, + 0x0893, 0x0897, 0x0897, 0x08c0, 0x08c0, 0x08ce, 0x08e7, 0x08ef, + 0x0914, +} // Size: 362 bytes + +var bnScriptStr string = "" + // Size: 3576 bytes + "আরবিআরমিআরà§à¦®à§‡à¦¨à§€à¦¯à¦¼à¦†à¦­à§‡à¦¸à¦¤à¦¾à¦¨à¦¬à¦¾à¦²à§€à¦¯à¦¼à¦¬à¦¾à¦Ÿà¦¾à¦•à¦¬à¦¾à¦‚লাবà§à¦²à¦¿à¦¸à¦ªà§à¦°à¦¤à§€à¦•à¦¬à§‹à¦ªà§‹à¦®à§‹à¦«à§‹à¦¬à§à¦°à¦¾à¦¹à§à¦®à§€à¦¬à§à¦°à§‡à¦‡" + + "লবà§à¦—িবà§à¦¹à¦¿à¦¡à¦šà¦¾à¦•à¦®à¦¾à¦¸à¦‚যà§à¦•à§à¦¤ কানাডিয়ান অà§à¦¯à¦¾à¦¬à§à¦°à§‹à¦œà¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨ সিলেবিকà§à¦¸à¦•à§à¦¯à¦¾à¦°à¦¿à¦¯à¦¼à¦¾à¦¨" + + "চà§à¦¯à¦¾à¦®à¦šà§‡à¦°à§‹à¦•à¦¿à¦•à¦¿à¦°à§à¦Ÿà¦•à§‹à¦ªà§à¦Ÿà¦¿à¦•à¦¸à¦¾à¦‡à¦ªà§à¦°à§‹à¦¯à¦¼à§‡à¦Ÿà¦¸à¦¿à¦°à¦¿à¦²à¦¿à¦•à¦ªà§à¦°à¦¾à¦šà§€à¦¨ চারà§à¦š সà§à¦²à¦¾à¦­à§‹à¦¨à¦¿à¦• সিরিল" + + "িকদেবনাগরিদেসেরাতমিশরীয় ডেমোটিকমিশরীয় হায়রেটিকমিশরীয় হায়ারোগà§à¦²à¦¿à¦ªà¦‡" + + "থিওপিয়জরà§à¦œà¦¿à¦¯à¦¼ খà§à§Žà¦¸à§à¦°à¦¿à¦œà¦°à§à¦œà¦¿à¦¯à¦¼à¦¾à¦¨à¦—à§à¦²à¦¾à¦—োলিটিকগোথিকগà§à¦°à¦¿à¦•à¦—à§à¦œà¦°à¦¾à¦Ÿà¦¿à¦—à§à¦°à§à¦®à§à¦–িহাঙ" + + "à§à¦—à§à¦²à¦¹à§à¦¯à¦¾à¦¨à¦¹à§à¦¯à¦¾à¦¨à§à¦¨à§à¦¸à¦°à¦²à¦¿à¦•à§ƒà¦¤ হà§à¦¯à¦¾à¦¨à¦à¦¤à¦¿à¦¹à§à¦¯à¦¬à¦¾à¦¹à§€ হà§à¦¯à¦¾à¦¨à¦¹à¦¿à¦¬à§à¦°à§à¦¹à¦¿à¦°à¦¾à¦—ানাফাহাও মঙকা" + + "টাকানা অথবা হিরাগানাপà§à¦°à§‹à¦¨à§‹ হাঙà§à¦—েরীয়সিনà§à¦§à§à¦ªà§à¦°à¦¾à¦šà§€à¦¨ ইতালিজাভানিজজাপানীক" + + "ায়াহ লিকাটাকানাখরোষà§à¦ à§€à¦–মেরকানাড়াকোরিয়ানকাইথিলানà§à¦¨à¦¾à¦²à¦¾à¦“ফà§à¦°à¦¾à¦•à§à¦Ÿà§à¦° লà§à¦¯à¦¾" + + "টিনগà§à¦¯à¦¾à¦²à¦¿à¦• লà§à¦¯à¦¾à¦Ÿà¦¿à¦¨à¦²à§à¦¯à¦¾à¦Ÿà¦¿à¦¨à¦²à§‡à¦ªà§à¦šà¦¾à¦²à¦¿à¦®à§à¦¬à§à¦²à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦° à¦à¦²à¦¿à¦¨à¦¿à¦¯à¦¼à¦¾à¦° বিলাইসিয়ানলাই" + + "ডিয়ানমà§à¦¯à¦¾à¦¨à§à¦¡à¦¾à¦¯à¦¼à§€à¦¨à¦®à§à¦¯à¦¾à¦¨à¦¿à¦šà¦¾à¦‡à¦¨à¦®à¦¾à¦¯à¦¼à¦¾à¦¨ হায়ারোগà§à¦²à¦¿à¦ªà¦®à§‡à¦°à§‹à¦‡à¦Ÿà¦¿à¦•à¦®à¦¾à¦²à¦¾à¦¯à¦¼à¦¾à¦²à¦¾à¦®à¦®à§‹à¦™à§à¦—" + + "োলীয়মà§à¦¨à¦®à§‡à¦‡à¦Ÿà§‡à¦‡ মায়েকমায়ানমারà¦à¦¨à¦•à§‹à¦“ঘামওল চিকিঅরà§à¦–োনওড়িয়াওসমানিয়পà§à¦°à¦¾" + + "চীন পারà§à¦®à¦¿à¦•à¦«à¦¾à¦—à§à¦¸-পাখদিত পাহলভিসলà§à¦Ÿà¦¾à¦° পাহলভিপà§à¦¸à§à¦¤à¦• পাহলভিফিনিশিয়পোলারà§" + + "ড ধà§à¦¬à¦¨à¦¿à¦•à¦ªà¦¾à¦°à§à¦¥à¦¿à¦¯à¦¼à¦¨à¦°à§‡à¦œà§à¦¯à¦¾à¦™à§à¦—রোঙà§à¦—োরোঙà§à¦—োরà§à¦¨à¦¿à¦•à¦¸à¦®à§‡à¦°à¦¿à¦Ÿà¦¨à¦¸à¦¾à¦°à¦¾à¦¤à¦¿à¦¸à§Œà¦°à¦¾à¦·à§à¦Ÿà§à¦°à¦šà¦¿à¦¹à§à¦¨" + + " লিখনসাভিয়ানসিংহলিসানà§à¦¦à¦¾à¦¨à¦¿à¦œà¦¸à¦¿à¦²à§‡à¦Ÿà¦¿ নাগরিসিরিয়াকà¦à¦¸à§à¦Ÿà§à¦°à§‡à¦™à§à¦—েলো সিরিয়াকপশ" + + "à§à¦šà¦¿à¦®à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সিরিয়াকপূরà§à¦¬à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ সিরিয়াকটাগোওয়ানাতাইলেনতà§à¦¨ তাই লà§à¦¤" + + "ামিলতাই ভিয়েৎতেলেগà§à¦¤à§‡à¦™à§à¦—োয়ারতিফিনাগটাগালগথানাথাইতিবà§à¦¬à¦¤à¦¿à¦‰à¦—ারিটিকভাইদৃ" + + "শà§à¦¯à¦®à¦¾à¦¨ ভাষাপà§à¦°à¦¾à¦šà§€à¦¨ ফারà§à¦¸à¦¿à¦¸à§à¦®à§‡à¦°-আকà§à¦•à¦¾à¦¦à§€à¦¯à¦¼ কীলকরূপউইকাইগানিতিক চিহà§à¦¨à¦ªà§à¦°à¦¤" + + "ীকসমà§à¦¹à¦…লিখিতসাধারনঅজানা লিপি" + +var bnScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0018, 0x0033, 0x0048, + 0x005a, 0x005a, 0x005a, 0x0069, 0x0078, 0x0099, 0x00b1, 0x00c9, + 0x00db, 0x00e7, 0x00f6, 0x0105, 0x0186, 0x01a4, 0x01b3, 0x01c5, + 0x01d4, 0x01e9, 0x020a, 0x021f, 0x0276, 0x028e, 0x02a3, 0x02a3, + 0x02ce, 0x02ff, 0x0339, 0x0339, 0x0351, 0x037c, 0x0397, 0x03b8, + 0x03c7, 0x03c7, 0x03d6, 0x03eb, 0x0403, 0x0418, 0x0427, 0x043f, + 0x0464, 0x0492, 0x0492, 0x04a4, 0x04bc, 0x04bc, 0x04d2, 0x0510, + 0x0541, 0x0553, 0x0578, 0x058d, 0x059f, 0x059f, 0x05b8, 0x05d0, + // Entry 40 - 7F + 0x05e5, 0x05f1, 0x05f1, 0x0606, 0x061e, 0x061e, 0x062d, 0x063f, + 0x0648, 0x0679, 0x06a4, 0x06b9, 0x06cb, 0x06dd, 0x06f9, 0x0718, + 0x0718, 0x0718, 0x0733, 0x074e, 0x074e, 0x0772, 0x0790, 0x07c7, + 0x07c7, 0x07c7, 0x07df, 0x07fd, 0x07fd, 0x081b, 0x0824, 0x0824, + 0x0849, 0x0849, 0x0864, 0x0864, 0x0864, 0x0864, 0x0870, 0x0870, + 0x087c, 0x088f, 0x08a1, 0x08b6, 0x08ce, 0x08ce, 0x08ce, 0x08f9, + 0x090f, 0x092e, 0x0953, 0x0978, 0x0990, 0x09b8, 0x09d3, 0x09ee, + 0x0a12, 0x0a21, 0x0a36, 0x0a48, 0x0a48, 0x0a63, 0x0a7f, 0x0a97, + // Entry 80 - BF + 0x0a97, 0x0a97, 0x0a97, 0x0aa9, 0x0aa9, 0x0ac4, 0x0ae6, 0x0afe, + 0x0b3e, 0x0b81, 0x0bc1, 0x0bdf, 0x0bdf, 0x0bee, 0x0c0b, 0x0c1a, + 0x0c1a, 0x0c36, 0x0c48, 0x0c66, 0x0c7b, 0x0c8d, 0x0c99, 0x0ca2, + 0x0cb7, 0x0cb7, 0x0ccf, 0x0cd8, 0x0cfd, 0x0cfd, 0x0cfd, 0x0d25, + 0x0d66, 0x0d6c, 0x0d75, 0x0d9a, 0x0d9a, 0x0db8, 0x0dca, 0x0ddc, + 0x0df8, +} // Size: 362 bytes + +var caScriptStr string = "" + // Size: 1535 bytes + "afakaàrabarameu imperialarmeniavèsticbalinèsbamumbassa vahbatakbengalísí" + + "mbols Blissbopomofobrahmibraillebuginèsbuhidchakmasíl·labes dels aboríge" + + "ns canadencs unificatscariàchamcherokeecirthcoptexipriotaciríl·licciríl·" + + "lic de l’antic eslau eclesiàsticdevanagarideserettaquigrafia Duployédemò" + + "tic egipcihieràtic egipcijeroglífic egipcietiòpicgeorgià hucurigeorgiàgl" + + "agolíticgòticgranthagrecgujaratigurmukhihangulhanhanunoohan simplificath" + + "an tradicionalhebreuhiraganajeroglífic anatolipahawh hmongkatakana o hir" + + "aganahongarès anticescriptura de la vall de l’Induscursiva antigajavanès" + + "japonèsjürchenkayah likatakanakharosthikhmerkhojakannadacoreàkpellekaith" + + "ilannalaollatí frakturllatí gaèlicllatílepchalimbulineal Alineal Blisulo" + + "malicilidimandaicmaniqueujeroglífics maiesmendecursiva meroíticameroític" + + "malaiàlammongolmoonmromanipuríbirmàantic nord-aràbicnabateugeban’Konü sh" + + "uoghamsantaliorkhonoriyaosmanyapalmirèantic pèrmicphagspapahlavi inscrip" + + "cionalpsalter pahlavipahlavifenicipollard miaoparthià inscripcionalrejan" + + "grongo-rongorúnicsamaritàsaratisud-aràbic anticsaurashtraescriptura de s" + + "ignesshaviàshradadevangarisingalèssora sompengsundanèssyloti nagrisiríac" + + "siríac estrangelosiríac occidentalsiríac orientaltagbanwatakritai lenou " + + "tai luetàmiltanguttai viettelugutengwartifinaghtagàlogthaanatailandèstib" + + "etàtirhutugaríticvaillenguatge visiblevarang kshitiwoleaipersa anticcune" + + "ïforme sumeri-accadiyiheretatnotació matemàticasímbolssense escripturac" + + "omúescriptura desconeguda" + +var caScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0005, 0x0005, 0x000a, 0x0019, 0x001f, 0x0027, + 0x002f, 0x0034, 0x003d, 0x0042, 0x004a, 0x0058, 0x0060, 0x0066, + 0x006d, 0x0075, 0x007a, 0x0080, 0x00af, 0x00b5, 0x00b9, 0x00c1, + 0x00c6, 0x00cb, 0x00d3, 0x00de, 0x0109, 0x0113, 0x011a, 0x012e, + 0x013d, 0x014d, 0x015f, 0x015f, 0x0167, 0x0176, 0x017e, 0x0189, + 0x018f, 0x0196, 0x019a, 0x01a2, 0x01aa, 0x01b0, 0x01b3, 0x01ba, + 0x01c9, 0x01d8, 0x01d8, 0x01de, 0x01e6, 0x01f9, 0x0205, 0x0218, + 0x0227, 0x0249, 0x0257, 0x025f, 0x0267, 0x026f, 0x0277, 0x027f, + // Entry 40 - 7F + 0x0288, 0x028d, 0x0292, 0x0299, 0x029f, 0x02a5, 0x02ab, 0x02b0, + 0x02b3, 0x02c1, 0x02cf, 0x02d5, 0x02db, 0x02e0, 0x02e8, 0x02f0, + 0x02f4, 0x02f8, 0x02fc, 0x0300, 0x0300, 0x0307, 0x030f, 0x0321, + 0x0326, 0x0338, 0x0341, 0x034b, 0x034b, 0x0351, 0x0355, 0x0358, + 0x0361, 0x0361, 0x0367, 0x0379, 0x0380, 0x0384, 0x038a, 0x0391, + 0x0396, 0x039d, 0x03a3, 0x03a8, 0x03af, 0x03b7, 0x03b7, 0x03c4, + 0x03cb, 0x03e0, 0x03ef, 0x03f6, 0x03fc, 0x0408, 0x041e, 0x0424, + 0x042f, 0x0435, 0x043e, 0x0444, 0x0455, 0x045f, 0x0473, 0x047a, + // Entry 80 - BF + 0x0480, 0x0480, 0x0489, 0x0492, 0x049e, 0x04a7, 0x04b3, 0x04ba, + 0x04cc, 0x04de, 0x04ee, 0x04f6, 0x04fb, 0x0501, 0x050c, 0x0512, + 0x0518, 0x0520, 0x0526, 0x052d, 0x0535, 0x053d, 0x0543, 0x054d, + 0x0554, 0x055a, 0x0563, 0x0566, 0x0578, 0x0585, 0x058b, 0x0596, + 0x05af, 0x05b1, 0x05b8, 0x05cc, 0x05cc, 0x05d4, 0x05e4, 0x05e9, + 0x05ff, +} // Size: 362 bytes + +var csScriptStr string = "" + // Size: 1891 bytes + "afakakavkazskoalbánskéarabskéaramejské (imperiální)arménskéavestánskébal" + + "ijskébamumskébassa vahbatackébengálskéBlissovo písmobopomofobráhmíBraill" + + "ovo písmobuginskébuhidskéÄakmaslabiÄné písmo kanadských domorodcůkarijsk" + + "éÄamÄerokíkirtkoptskékyperskécyrilicecyrilce - staroslovÄ›nskádévanágárí" + + "deseretDuployého tÄ›snopisegyptské démotickéegyptské hieratickéegyptské h" + + "ieroglyfyelbasanskéetiopskégruzínské chutsurigruzínskéhlaholicegotickégr" + + "anthaÅ™eckégudžarátígurmukhihangulhanhanunóohan (zjednoduÅ¡ené)han (tradiÄ" + + "ní)hebrejskéhiraganaanatolské hieroglyfyhmongskéjaponské slabiÄnéstaroma" + + "ÄarskéharappskéetruskéjavánskéjaponskédžürÄenskékayah likatakanakháróšt" + + "híkhmerskéchodžikikannadskékorejskékpellekaithilannalaoskélatinka - lome" + + "nálatinka - galskálatinkalepÄskélimbulineární Alineární BFraserovolomalý" + + "kijskélýdskémahádžanímandejskémanichejskémayské hieroglyfymendskémeroiti" + + "cké psacímeroitickémalajlámskémodímongolskéMoonovomromejtej majek (manip" + + "urské)myanmarskéstaroseveroarabskénabatejskénaxi geban’konü-Å¡uogamskésan" + + "tálské (ol chiki)orchonskéurijskéosmansképalmýrsképau cin haustaropermsk" + + "éphags-papahlavské klínovépahlavské žalmovépahlavské knižnífénickéPolla" + + "rdova fonetická abecedaparthské klínovéredžanskérongorongorunovésamaÅ™ské" + + "saratistarojihoarabskésaurášterskéSignWritingShawova abecedašáradásiddha" + + "mchudábádísinhálskésora sompengsundskésylhetskésyrskésyrské - estrangelo" + + "syrské - západnísyrské - východnítagbanwatakrítai letai lü novétamilskét" + + "anguttai viettelugskétengwarberberskétagalskéthaanathajskétibetskétirhut" + + "augaritské klínovévaividitelná Å™eÄvarang kÅ¡itikarolínské (woleai)starope" + + "rské klínové písmosumero-akkadské klínové písmoyimatematický zápissymbol" + + "ybez zápisuobecnéneznámé písmo" + +var csScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0018, 0x0018, 0x0020, 0x0039, 0x0043, 0x004f, + 0x0058, 0x0061, 0x006a, 0x0072, 0x007d, 0x008c, 0x0094, 0x009c, + 0x00ac, 0x00b5, 0x00be, 0x00c4, 0x00ec, 0x00f5, 0x00f9, 0x0101, + 0x0105, 0x010d, 0x0116, 0x011e, 0x0138, 0x0146, 0x014d, 0x0161, + 0x0176, 0x018b, 0x019f, 0x01aa, 0x01b3, 0x01c7, 0x01d2, 0x01db, + 0x01e3, 0x01ea, 0x01f1, 0x01fd, 0x0205, 0x020b, 0x020e, 0x0216, + 0x022a, 0x023a, 0x023a, 0x0244, 0x024c, 0x0261, 0x026a, 0x027e, + 0x028d, 0x0297, 0x029f, 0x02a9, 0x02b2, 0x02c0, 0x02c8, 0x02d0, + // Entry 40 - 7F + 0x02dd, 0x02e6, 0x02ef, 0x02f9, 0x0302, 0x0308, 0x030e, 0x0313, + 0x031a, 0x032b, 0x033c, 0x0343, 0x034c, 0x0351, 0x035d, 0x0369, + 0x0372, 0x0376, 0x0380, 0x0388, 0x0394, 0x039e, 0x03aa, 0x03bc, + 0x03c4, 0x03d6, 0x03e1, 0x03ee, 0x03f3, 0x03fd, 0x0404, 0x0407, + 0x0421, 0x0421, 0x042c, 0x043f, 0x044a, 0x0453, 0x0459, 0x0460, + 0x0468, 0x047e, 0x0488, 0x0490, 0x0499, 0x04a4, 0x04af, 0x04bc, + 0x04c4, 0x04d8, 0x04ec, 0x04ff, 0x0508, 0x0525, 0x0538, 0x0543, + 0x054d, 0x0554, 0x055e, 0x0564, 0x0575, 0x0584, 0x058f, 0x059e, + // Entry 80 - BF + 0x05a7, 0x05ae, 0x05ba, 0x05c5, 0x05d1, 0x05d9, 0x05e3, 0x05ea, + 0x05fe, 0x0611, 0x0625, 0x062d, 0x0633, 0x0639, 0x0646, 0x064f, + 0x0655, 0x065d, 0x0666, 0x066d, 0x0677, 0x0680, 0x0686, 0x068e, + 0x0697, 0x069e, 0x06b2, 0x06b5, 0x06c5, 0x06d2, 0x06e7, 0x0704, + 0x0725, 0x0727, 0x0727, 0x073a, 0x073a, 0x0741, 0x074c, 0x0753, + 0x0763, +} // Size: 362 bytes + +var daScriptStr string = "" + // Size: 1443 bytes + "afakaarabiskarmiarmenskavestanskbalinesiskbamumbassabatakbengaliblissymb" + + "olerbopomofobramiskbrailleskriftbuginesiskbuhidcakmoprindelige canadiske" + + " symbolerkarianskchamcherokeecirtkoptiskcypriotiskkyrilliskkyrillisk - o" + + "ldkirkeslavisk variantdevanagarideseretDuploya-stenografiegyptisk demoti" + + "skegyptisk hieratiskegyptiske hieroglyfferetiopiskgeorgisk kutsurigeorgi" + + "skglagolitiskgotiskgranthagræskgujaratigurmukhihangulhanhanunooforenklet" + + " hantraditionelt hanhebraiskhiraganaanatolske hieroglyfferpahawh hmongka" + + "takana eller hiraganaoldungarskindusOlditaliskjavanesiskjapanskjurchenka" + + "ya likatakanakharoshtikhmerkhojkikannadakoreanskkpellekthilannalaolatins" + + "k - frakturvariantlatinsk - gælisk variantlatinsklepchalimbulineær Aline" + + "ær Blisulomalykisklydiskmandaiskmanikæiskmayahieroglyffermendemetroitis" + + "k sammenhængendemeroitiskmalayalammongolskmoonmroomeitei-mayekburmesiskg" + + "ammelt nordarabisknabateisknakhi geban’konüshuoghamol-chikiorkhonoriyaos" + + "manniskpalmyrenskoldpermiskphags-paphliphlppahlavifønikiskpollardtegnprt" + + "irejangrongo-rongorunersamaritansksaratioldsørarabisksaurashtrategnskrif" + + "tshavisksharadakhudawadisingalesisksorasundanesisksyloti nagrisyrisksyri" + + "sk - estrangelovariantvestsyriskøstsyriakisktagbanwatakritai letai lueta" + + "milsktanguttavttelugutengwartifinaghtagalogthaanathailandsktibetansktirh" + + "utaugaritiskvaisynlig talevarang kshitiwoleaioldpersisksumero-akkadisk c" + + "uneiformyiarvetzmthzsymuden skriftsprogfællesukendt skriftsprog" + +var daScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0005, 0x0005, 0x000c, 0x0010, 0x0017, 0x0020, + 0x002a, 0x002f, 0x0034, 0x0039, 0x0040, 0x004c, 0x0054, 0x005b, + 0x0068, 0x0072, 0x0077, 0x007b, 0x0099, 0x00a1, 0x00a5, 0x00ad, + 0x00b1, 0x00b8, 0x00c2, 0x00cb, 0x00ee, 0x00f8, 0x00ff, 0x0111, + 0x0122, 0x0134, 0x014a, 0x014a, 0x0152, 0x0162, 0x016a, 0x0175, + 0x017b, 0x0182, 0x0188, 0x0190, 0x0198, 0x019e, 0x01a1, 0x01a8, + 0x01b5, 0x01c5, 0x01c5, 0x01cd, 0x01d5, 0x01eb, 0x01f7, 0x020e, + 0x0218, 0x021d, 0x0227, 0x0231, 0x0238, 0x023f, 0x0246, 0x024e, + // Entry 40 - 7F + 0x0257, 0x025c, 0x0262, 0x0269, 0x0271, 0x0277, 0x027b, 0x0280, + 0x0283, 0x029b, 0x02b4, 0x02bb, 0x02c1, 0x02c6, 0x02cf, 0x02d8, + 0x02dc, 0x02e0, 0x02e6, 0x02ec, 0x02ec, 0x02f4, 0x02fe, 0x030e, + 0x0313, 0x032d, 0x0336, 0x033f, 0x033f, 0x0347, 0x034b, 0x034f, + 0x035b, 0x035b, 0x0364, 0x0377, 0x0380, 0x038a, 0x0390, 0x0396, + 0x039b, 0x03a3, 0x03a9, 0x03ae, 0x03b7, 0x03c1, 0x03c1, 0x03cb, + 0x03d3, 0x03d7, 0x03db, 0x03e2, 0x03eb, 0x03f6, 0x03fa, 0x0400, + 0x040b, 0x0410, 0x041b, 0x0421, 0x042f, 0x0439, 0x0443, 0x044a, + // Entry 80 - BF + 0x0451, 0x0451, 0x045a, 0x0465, 0x0469, 0x0474, 0x0480, 0x0486, + 0x04a0, 0x04aa, 0x04b7, 0x04bf, 0x04c4, 0x04ca, 0x04d1, 0x04d8, + 0x04de, 0x04e2, 0x04e8, 0x04ef, 0x04f7, 0x04fe, 0x0504, 0x050e, + 0x0517, 0x051e, 0x0527, 0x052a, 0x0535, 0x0542, 0x0548, 0x0552, + 0x056b, 0x056d, 0x0572, 0x0576, 0x0576, 0x057a, 0x058a, 0x0591, + 0x05a3, +} // Size: 362 bytes + +var deScriptStr string = "" + // Size: 1682 bytes + "AfakaKaukasisch-AlbanischArabischArmiArmenischAvestischBalinesischBamunB" + + "assaBattakischBengalischBliss-SymboleBopomofoBrahmiBlindenschriftBugines" + + "ischBuhidChakmaUCASKarischChamCherokeeCirthKoptischZypriotischKyrillisch" + + "AltkirchenslawischDevanagariDeseretDuployanischÄgyptisch - DemotischÄgyp" + + "tisch - HieratischÄgyptische HieroglyphenElbasanischÄthiopischKhutsuriGe" + + "orgischGlagolitischGotischGranthaGriechischGujaratiGurmukhiHangulChinesi" + + "schHanunooVereinfachtes ChinesischTraditionelles ChinesischHebräischHira" + + "ganaHieroglyphen-LuwischPahawh HmongKatakana oder HiraganaAltungarischIn" + + "dus-SchriftAltitalischJavanesischJapanischJurchenKayah LiKatakanaKharosh" + + "thiKhmerKhojkiKannadaKoreanischKpelleKaithiLannaLaotischLateinisch - Fra" + + "ktur-VarianteLateinisch - Gälische VarianteLateinischLepchaLimbuLinear A" + + "Linear BFraserLomaLykischLydischMahajaniMandäischManichäischMaya-Hierogl" + + "yphenMendeMeroitisch kursivMeroitischMalayalamModiMongolischMoonMroMeite" + + "i MayekBirmanischAltnordarabischNabatäischGebaN’KoFrauenschriftOghamOl C" + + "hikiOrchon-RunenOriyaOsmanischPalmyrenischPau Cin HauAltpermischPhags-pa" + + "Buch-PahlaviPsalter-PahlaviPahlaviPhönizischPollard PhonetischParthischR" + + "ejangRongorongoRunenschriftSamaritanischSaratiAltsüdarabischSaurashtraGe" + + "bärdenspracheShaw-AlphabetSharadaSiddhamKhudawadiSinghalesischSora Sompe" + + "ngSundanesischSyloti NagriSyrischSyrisch - Estrangelo-VarianteWestsyrisc" + + "hOstsyrischTagbanwaTakriTai LeTai LueTamilischXixiaTai-VietTeluguTengwar" + + "TifinaghTagalogThaanaThaiTibetischTirhutaUgaritischVaiSichtbare SpracheV" + + "arang KshitiWoleaianischAltpersischSumerisch-akkadische KeilschriftYiGee" + + "rbter SchriftwertMathematische NotationSymboleSchriftlosUnbestimmtUnbeka" + + "nnte Schrift" + +var deScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0019, 0x0019, 0x0021, 0x0025, 0x002e, 0x0037, + 0x0042, 0x0047, 0x004c, 0x0056, 0x0060, 0x006d, 0x0075, 0x007b, + 0x0089, 0x0094, 0x0099, 0x009f, 0x00a3, 0x00aa, 0x00ae, 0x00b6, + 0x00bb, 0x00c3, 0x00ce, 0x00d8, 0x00ea, 0x00f4, 0x00fb, 0x0107, + 0x011d, 0x0134, 0x014c, 0x0157, 0x0162, 0x016a, 0x0173, 0x017f, + 0x0186, 0x018d, 0x0197, 0x019f, 0x01a7, 0x01ad, 0x01b7, 0x01be, + 0x01d6, 0x01ef, 0x01ef, 0x01f9, 0x0201, 0x0215, 0x0221, 0x0237, + 0x0243, 0x0250, 0x025b, 0x0266, 0x026f, 0x0276, 0x027e, 0x0286, + // Entry 40 - 7F + 0x0290, 0x0295, 0x029b, 0x02a2, 0x02ac, 0x02b2, 0x02b8, 0x02bd, + 0x02c5, 0x02e2, 0x0301, 0x030b, 0x0311, 0x0316, 0x031e, 0x0326, + 0x032c, 0x0330, 0x0337, 0x033e, 0x0346, 0x0350, 0x035c, 0x036d, + 0x0372, 0x0383, 0x038d, 0x0396, 0x039a, 0x03a4, 0x03a8, 0x03ab, + 0x03b7, 0x03b7, 0x03c1, 0x03d0, 0x03db, 0x03df, 0x03e5, 0x03f2, + 0x03f7, 0x03ff, 0x040b, 0x0410, 0x0419, 0x0425, 0x0430, 0x043b, + 0x0443, 0x044f, 0x045e, 0x0465, 0x0470, 0x0482, 0x048b, 0x0491, + 0x049b, 0x04a7, 0x04b4, 0x04ba, 0x04c9, 0x04d3, 0x04e3, 0x04f0, + // Entry 80 - BF + 0x04f7, 0x04fe, 0x0507, 0x0514, 0x0520, 0x052c, 0x0538, 0x053f, + 0x055c, 0x0567, 0x0571, 0x0579, 0x057e, 0x0584, 0x058b, 0x0594, + 0x0599, 0x05a1, 0x05a7, 0x05ae, 0x05b6, 0x05bd, 0x05c3, 0x05c7, + 0x05d0, 0x05d7, 0x05e1, 0x05e4, 0x05f5, 0x0602, 0x060e, 0x0619, + 0x0639, 0x063b, 0x064f, 0x0665, 0x0665, 0x066c, 0x0676, 0x0680, + 0x0692, +} // Size: 362 bytes + +var elScriptStr string = "" + // Size: 2635 bytes + "ΑÏαβικόΑυτοκÏατοÏικό ΑÏαμαϊκόΑÏμενικόΑβεστάνΜπαλινίζΜπατάκΜπενγκάλιΣÏμβο" + + "λα BlissΜποπομόφοΜπÏαχμίΜπÏάιγΜποÏγκιςΜπουχίντΤσάκμαΕνοποιημένοι Καναδε" + + "ζικοί Συλλαβισμοί ΙθαγενώνΚαÏιάνΤσαμΤσεÏόκιΣεÏθΚοπτικόΚυπÏιακόΚυÏιλλικό" + + "Παλαιό Εκκλησιαστικό Σλαβικό ΚυÏιλλικόÎτεβαναγκάÏιÎτεσεÏέΛαϊκό Αιγυπτια" + + "κόΙεÏατικό ΑιγυπτιακόΑιγυπτιακά ΙεÏογλυφικάΑιθιοπικόΓεωÏγιανό ΚχουτσοÏÏ" + + "ιΓεωÏγιανόΓκλαγκολιτικόΓοτθικόΕλληνικόΓκουγιαÏάτιΓκουÏμουκχίΧανγκοÏλΧαν" + + "ΧανοÏνουΑπλοποιημένο ΧανΠαÏαδοσιακό ΧανΕβÏαϊκόΧιÏαγκάναΠαχάχ ΧμονγκΚατα" + + "κάνα ή ΧιÏαγκάναΠαλαιό ΟυγγÏικόΊνδουςΠαλαιό ΙταλικόΙαβανεζικόΙαπωνικόΚα" + + "γιάχ ΛιΚατακάναΚαÏόσθιΧμεÏΚανάνταΚοÏεατικόΚαϊθίΛάνναΛάοςΦÏÎ¬ÎºÏ„Î¿Ï…Ï Î›Î±Ï„Î¹Î½Î¹" + + "κόΓαελικό ΛατινικόΛατινικόΛέπτσαΛιμποÏΓÏαμμικό ΑΓÏαμμικό ΒΛυκιανικόΛυδι" + + "ανικόΜανδαϊκόΜανιχαϊκόΙεÏογλυφικά ΜάγιαΜεÏοϊτικόΜαλαγιάλαμΜογγολικόΜουν" + + "Μεϊτέι ΜάγεκΜιανμάÏÎ’ΚοΌγκχαμΟλ ΤσίκιΌÏκχονΟÏίγιαΟσμάνγιαΠαλαιό ΠεÏμικό" + + "Παγκς-παΕπιγÏαφικό Î Î±Ï‡Î»Î¬Î²Î¹Î¨Î¬Î»Ï„ÎµÏ Î Î±Ï‡Î»Î¬Î²Î¹ÎœÏ€Î¿Ï…Îº ΠαχλαβίΦοινικικόΦωνητικό " + + "ΠόλαÏντΕπιγÏαφικό ΠαÏθιάνΡετζάνγκΡονγκοÏόνγκοΡουνίκΣαμαÏιτικόΣαÏάθιΣαου" + + "ÏάστÏαÎοηματική γÏαφήΣαβιανόΣινχάλαΣουνδανικόΣυλότι ÎάγκÏιΣυÏιακόΕστÏαν" + + "τζέλο ΣυÏιακόΔυτικό ΣυÏιακόΑνατολικό ΣυÏιακόΤαγκμάνγουαΤάι ΛεÎέο Τάι Λο" + + "ÏεΤαμίλΤάι ΒιέτΤελοÏγκουΤεγνγουάÏΤιφινάγκΤαγκαλόγκΘαανάΤαϊλανδικόΘιβετι" + + "ανόΟυγκαÏιτικόΒάιΟÏατή ομιλίαΠαλαιό ΠεÏσικόΣοÏμεÏο-Ακάντιαν ΚουνεϊφόÏμΓ" + + "ιΚληÏονομημένοΜαθηματική παÏάστασηΣÏμβολαΆγÏαφοΚοινόΆγνωστη γÏαφή" + +var elScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000e, 0x0039, 0x0049, 0x0057, + 0x0067, 0x0067, 0x0067, 0x0073, 0x0085, 0x0099, 0x00ab, 0x00b9, + 0x00c5, 0x00d5, 0x00e5, 0x00f1, 0x0148, 0x0154, 0x015c, 0x016a, + 0x0172, 0x0180, 0x0190, 0x01a2, 0x01eb, 0x0203, 0x0211, 0x0211, + 0x0230, 0x0255, 0x0280, 0x0280, 0x0292, 0x02b9, 0x02cb, 0x02e5, + 0x02f3, 0x02f3, 0x0303, 0x0319, 0x032f, 0x033f, 0x0345, 0x0355, + 0x0374, 0x0391, 0x0391, 0x039f, 0x03b1, 0x03b1, 0x03c8, 0x03ee, + 0x040b, 0x0417, 0x0432, 0x0446, 0x0456, 0x0456, 0x0467, 0x0477, + // Entry 40 - 7F + 0x0485, 0x048d, 0x048d, 0x049b, 0x04ad, 0x04ad, 0x04b7, 0x04c1, + 0x04c9, 0x04ea, 0x0509, 0x0519, 0x0525, 0x0531, 0x0544, 0x0557, + 0x0557, 0x0557, 0x0569, 0x057b, 0x057b, 0x058b, 0x059d, 0x05be, + 0x05be, 0x05be, 0x05d0, 0x05e4, 0x05e4, 0x05f6, 0x05fe, 0x05fe, + 0x0615, 0x0615, 0x0623, 0x0623, 0x0623, 0x0623, 0x062c, 0x062c, + 0x0638, 0x0647, 0x0653, 0x065f, 0x066f, 0x066f, 0x066f, 0x068a, + 0x0699, 0x06bc, 0x06d7, 0x06f0, 0x0702, 0x0721, 0x0744, 0x0754, + 0x076c, 0x0778, 0x078c, 0x0798, 0x0798, 0x07ac, 0x07c9, 0x07d7, + // Entry 80 - BF + 0x07d7, 0x07d7, 0x07d7, 0x07e5, 0x07e5, 0x07f9, 0x0812, 0x0820, + 0x0845, 0x0860, 0x0881, 0x0897, 0x0897, 0x08a2, 0x08b8, 0x08c2, + 0x08c2, 0x08d1, 0x08e3, 0x08f5, 0x0905, 0x0917, 0x0921, 0x0935, + 0x0947, 0x0947, 0x095d, 0x0963, 0x097a, 0x097a, 0x097a, 0x0995, + 0x09c9, 0x09cd, 0x09e7, 0x0a0e, 0x0a0e, 0x0a1c, 0x0a28, 0x0a32, + 0x0a4b, +} // Size: 362 bytes + +var enScriptStr string = "" + // Size: 1536 bytes + "AfakaCaucasian AlbanianAhomArabicImperial AramaicArmenianAvestanBalinese" + + "BamumBassa VahBatakBengaliBlissymbolsBopomofoBrahmiBrailleBugineseBuhidC" + + "hakmaUnified Canadian Aboriginal SyllabicsCarianChamCherokeeCirthCopticC" + + "ypriotCyrillicOld Church Slavonic CyrillicDevanagariDeseretDuployan shor" + + "thandEgyptian demoticEgyptian hieraticEgyptian hieroglyphsElbasanEthiopi" + + "cGeorgian KhutsuriGeorgianGlagoliticGothicGranthaGreekGujaratiGurmukhiHa" + + "ngulHanHanunooSimplified HanTraditional HanHatranHebrewHiraganaAnatolian" + + " HieroglyphsPahawh HmongJapanese syllabariesOld HungarianIndusOld Italic" + + "JavaneseJapaneseJurchenKayah LiKatakanaKharoshthiKhmerKhojkiKannadaKorea" + + "nKpelleKaithiLannaLaoFraktur LatinGaelic LatinLatinLepchaLimbuLinear ALi" + + "near BFraserLomaLycianLydianMahajaniMandaeanManichaeanMayan hieroglyphsM" + + "endeMeroitic CursiveMeroiticMalayalamModiMongolianMoonMroMeitei MayekMul" + + "taniMyanmarOld North ArabianNabataeanNaxi GebaN’KoNüshuOghamOl ChikiOrkh" + + "onOriyaOsmanyaPalmyrenePau Cin HauOld PermicPhags-paInscriptional Pahlav" + + "iPsalter PahlaviBook PahlaviPhoenicianPollard PhoneticInscriptional Part" + + "hianRejangRongorongoRunicSamaritanSaratiOld South ArabianSaurashtraSignW" + + "ritingShavianSharadaSiddhamKhudawadiSinhalaSora SompengSundaneseSyloti N" + + "agriSyriacEstrangelo SyriacWestern SyriacEastern SyriacTagbanwaTakriTai " + + "LeNew Tai LueTamilTangutTai VietTeluguTengwarTifinaghTagalogThaanaThaiTi" + + "betanTirhutaUgariticVaiVisible SpeechVarang KshitiWoleaiOld PersianSumer" + + "o-Akkadian CuneiformYiInheritedMathematical NotationEmojiSymbolsUnwritte" + + "nCommonUnknown Script" + +var enScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0017, 0x001b, 0x0021, 0x0031, 0x0039, 0x0040, + 0x0048, 0x004d, 0x0056, 0x005b, 0x0062, 0x006d, 0x0075, 0x007b, + 0x0082, 0x008a, 0x008f, 0x0095, 0x00ba, 0x00c0, 0x00c4, 0x00cc, + 0x00d1, 0x00d7, 0x00de, 0x00e6, 0x0102, 0x010c, 0x0113, 0x0125, + 0x0135, 0x0146, 0x015a, 0x0161, 0x0169, 0x017a, 0x0182, 0x018c, + 0x0192, 0x0199, 0x019e, 0x01a6, 0x01ae, 0x01b4, 0x01b7, 0x01be, + 0x01cc, 0x01db, 0x01e1, 0x01e7, 0x01ef, 0x0204, 0x0210, 0x0224, + 0x0231, 0x0236, 0x0240, 0x0248, 0x0250, 0x0257, 0x025f, 0x0267, + // Entry 40 - 7F + 0x0271, 0x0276, 0x027c, 0x0283, 0x0289, 0x028f, 0x0295, 0x029a, + 0x029d, 0x02aa, 0x02b6, 0x02bb, 0x02c1, 0x02c6, 0x02ce, 0x02d6, + 0x02dc, 0x02e0, 0x02e6, 0x02ec, 0x02f4, 0x02fc, 0x0306, 0x0317, + 0x031c, 0x032c, 0x0334, 0x033d, 0x0341, 0x034a, 0x034e, 0x0351, + 0x035d, 0x0364, 0x036b, 0x037c, 0x0385, 0x038e, 0x0394, 0x039a, + 0x039f, 0x03a7, 0x03ad, 0x03b2, 0x03b9, 0x03c2, 0x03cd, 0x03d7, + 0x03df, 0x03f4, 0x0403, 0x040f, 0x0419, 0x0429, 0x043f, 0x0445, + 0x044f, 0x0454, 0x045d, 0x0463, 0x0474, 0x047e, 0x0489, 0x0490, + // Entry 80 - BF + 0x0497, 0x049e, 0x04a7, 0x04ae, 0x04ba, 0x04c3, 0x04cf, 0x04d5, + 0x04e6, 0x04f4, 0x0502, 0x050a, 0x050f, 0x0515, 0x0520, 0x0525, + 0x052b, 0x0533, 0x0539, 0x0540, 0x0548, 0x054f, 0x0555, 0x0559, + 0x0560, 0x0567, 0x056f, 0x0572, 0x0580, 0x058d, 0x0593, 0x059e, + 0x05b7, 0x05b9, 0x05c2, 0x05d7, 0x05dc, 0x05e3, 0x05ec, 0x05f2, + 0x0600, +} // Size: 362 bytes + +const enGBScriptStr string = "" + +var enGBScriptIdx = []uint16{ // 0 elements + +} // Size: 24 bytes + +var esScriptStr string = "" + // Size: 1165 bytes + "árabearmenioavésticobalinésbatakbengalísímbolos blisbopomofobrahmibraill" + + "ebuginésbuhidsímbolos aborígenes canadienses unificadoscariochamcherokee" + + "cirthcoptochipriotacirílicocirílico del antiguo eslavo eclesiásticodevan" + + "agarideseretegipcio demóticoegipcio hieráticojeroglíficos egipciosetiópi" + + "cogeorgiano eclesiásticogeorgianoglagolíticogóticogriegogujaratigurmujih" + + "angulhanhanunoohan simplificadohan tradicionalhebreohiraganapahawh hmong" + + "katakana o hiraganahúngaro antiguoIndio (harappan)antigua bastardillajav" + + "anésjaponéskayah likatakanakharosthijemercanaréscoreanolannalaolatino fr" + + "akturlatino gaélicolatínlepchalimbulineal Alineal Bliciolidiomandeojerog" + + "líficos mayasmeroíticomalayálammongolmoonmanipuribirmanon’kooghamol ciki" + + "orkhonoriyaosmaniyapermiano antiguophags-pafenicioPollard Miaorejangrong" + + "o-rongorúnicosaratisaurashtraSignWritingshavianocingaléssundanéssyloti n" + + "agrisiriacosiriaco estrangelosiriaco occidentalsiriaco orientaltagbanúat" + + "ai lenuevo tai luetamiltelugutengwartifinaghtagalothaanatailandéstibetan" + + "ougaríticovailenguaje visiblepersa antiguocuneiforme sumerio-acadioyiher" + + "edadosímbolosno escritocomúnalfabeto desconocido" + +var esScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000d, 0x0016, + 0x001e, 0x001e, 0x001e, 0x0023, 0x002b, 0x0039, 0x0041, 0x0047, + 0x004e, 0x0056, 0x005b, 0x005b, 0x0087, 0x008c, 0x0090, 0x0098, + 0x009d, 0x00a2, 0x00ab, 0x00b4, 0x00de, 0x00e8, 0x00ef, 0x00ef, + 0x0100, 0x0112, 0x0128, 0x0128, 0x0131, 0x0148, 0x0151, 0x015d, + 0x0164, 0x0164, 0x016a, 0x0172, 0x0179, 0x017f, 0x0182, 0x0189, + 0x0199, 0x01a8, 0x01a8, 0x01ae, 0x01b6, 0x01b6, 0x01c2, 0x01d5, + 0x01e5, 0x01f5, 0x0208, 0x0210, 0x0218, 0x0218, 0x0220, 0x0228, + // Entry 40 - 7F + 0x0231, 0x0236, 0x0236, 0x023e, 0x0245, 0x0245, 0x0245, 0x024a, + 0x024d, 0x025b, 0x026a, 0x0270, 0x0276, 0x027b, 0x0283, 0x028b, + 0x028b, 0x028b, 0x0290, 0x0295, 0x0295, 0x029b, 0x029b, 0x02ae, + 0x02ae, 0x02ae, 0x02b8, 0x02c2, 0x02c2, 0x02c8, 0x02cc, 0x02cc, + 0x02d4, 0x02d4, 0x02db, 0x02db, 0x02db, 0x02db, 0x02e1, 0x02e1, + 0x02e6, 0x02ed, 0x02f3, 0x02f8, 0x0300, 0x0300, 0x0300, 0x0310, + 0x0318, 0x0318, 0x0318, 0x0318, 0x031f, 0x032b, 0x032b, 0x0331, + 0x033c, 0x0343, 0x0343, 0x0349, 0x0349, 0x0353, 0x035e, 0x0366, + // Entry 80 - BF + 0x0366, 0x0366, 0x0366, 0x036f, 0x036f, 0x0378, 0x0384, 0x038b, + 0x039d, 0x03af, 0x03bf, 0x03c8, 0x03c8, 0x03ce, 0x03db, 0x03e0, + 0x03e0, 0x03e0, 0x03e6, 0x03ed, 0x03f5, 0x03fb, 0x0401, 0x040b, + 0x0413, 0x0413, 0x041d, 0x0420, 0x0430, 0x0430, 0x0430, 0x043d, + 0x0456, 0x0458, 0x0460, 0x0460, 0x0460, 0x0469, 0x0473, 0x0479, + 0x048d, +} // Size: 362 bytes + +const es419ScriptStr string = "" + +var es419ScriptIdx = []uint16{ // 0 elements + +} // Size: 24 bytes + +var etScriptStr string = "" + // Size: 1541 bytes + "afakaalbaaniahomiaraabiavanaarameaarmeeniaavestabalibamumibassabatakiben" + + "galiBlissi sümbolidbopomofobraahmipunktkiribugibuhiditÅ¡aakmaKanada põlis" + + "rahvaste ühtlustatud silpkirikaariatÅ¡aamitÅ¡erokiiCirthikoptiKüprose silp" + + "kirikirillitsakürilliline kirikuslaavidevanaagarideseretiDuployé kiirkir" + + "iegiptuse demootilineegiptuse hieraatilineegiptuse hieroglüüfkiriElbasan" + + "ietioopiahutsurigruusiaglagoolitsagootigranthakreekagudžaratigurmukhikor" + + "eahanihanunoolihtsustatud hanitraditsiooniline haniHatraheebreahiraganaA" + + "natoolia hieroglüüfkiriphahau-hmongi kirijaapani silpkirjadvanaungariInd" + + "usevanaitalijaavajaapanitÅ¡urtÅ¡enikaja-liikatakanakharoshthikhmeerihodžki" + + "kannadakorea segakirikpellekaithitai-thamilaoladina fraktuurkiriladina g" + + "aeliladinaleptÅ¡alimbulineaarkiri Alineaarkiri Blisulomalüükialüüdiamahaa" + + "džanimandeamanimaaja hieroglüüfkirimendemeroe kursiivkirimeroemalajalami" + + "modimongoliMoonimruumeiteiMultanibirmaPõhja-AraabiaNabateanasinkoonüšuog" + + "amsantaliOrhonioriaosmaniPalmyravanapermiphakpapahlavi raidkiripahlavi p" + + "salmikiripahlavi raamatukirifoiniikiaPollardi miaopartia raidkiriredžang" + + "irongorongoruunikiriSamaariasaratiLõuna-AraabiasauraÅ¡traviipekiriShaw’ k" + + "iriÅ¡aaradasiddhamihudavadisingalisorasundasilotisüüriasüüria estrangelol" + + "äänesüüriaidasüüriatagbanvataakritai-lööuus tai-lõõtamilitanguuditai-vi" + + "etiteluguTengwaritifinagitagalogitaanataitiibetitirhutaugaritivainähtava" + + " kõnehoovoleaivanapärsiasumeri-akadi kiilkirijiipäritudmatemaatiline täh" + + "istussümbolidkirjakeeletaüldinemääramata kiri" + +var etScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x000c, 0x0011, 0x0018, 0x0022, 0x002a, 0x0030, + 0x0034, 0x003a, 0x003f, 0x0045, 0x004c, 0x005c, 0x0064, 0x006b, + 0x0074, 0x0078, 0x007e, 0x0086, 0x00b1, 0x00b7, 0x00be, 0x00c7, + 0x00cd, 0x00d2, 0x00e3, 0x00ed, 0x0106, 0x0111, 0x0119, 0x012a, + 0x013e, 0x0153, 0x016c, 0x0174, 0x017c, 0x0183, 0x018a, 0x0195, + 0x019a, 0x01a1, 0x01a7, 0x01b1, 0x01b9, 0x01be, 0x01c2, 0x01c9, + 0x01da, 0x01ef, 0x01f4, 0x01fb, 0x0203, 0x021d, 0x022f, 0x0241, + 0x024b, 0x0251, 0x025a, 0x025f, 0x0266, 0x0271, 0x0279, 0x0281, + // Entry 40 - 7F + 0x028b, 0x0292, 0x0299, 0x02a0, 0x02ae, 0x02b4, 0x02ba, 0x02c3, + 0x02c6, 0x02d9, 0x02e5, 0x02eb, 0x02f2, 0x02f7, 0x0304, 0x0311, + 0x0315, 0x0319, 0x0321, 0x0329, 0x0334, 0x033a, 0x033e, 0x0354, + 0x0359, 0x036a, 0x036f, 0x0379, 0x037d, 0x0384, 0x0389, 0x038d, + 0x0393, 0x039a, 0x039f, 0x03ad, 0x03b4, 0x03b8, 0x03bc, 0x03c2, + 0x03c6, 0x03cd, 0x03d3, 0x03d7, 0x03dd, 0x03e4, 0x03e4, 0x03ed, + 0x03f3, 0x0403, 0x0415, 0x0428, 0x0431, 0x043e, 0x044d, 0x0456, + 0x0460, 0x0469, 0x0471, 0x0477, 0x0485, 0x048f, 0x0498, 0x04a4, + // Entry 80 - BF + 0x04ac, 0x04b4, 0x04bc, 0x04c3, 0x04c7, 0x04cc, 0x04d2, 0x04da, + 0x04ed, 0x04fc, 0x0507, 0x050f, 0x0515, 0x051e, 0x052b, 0x0531, + 0x0539, 0x0542, 0x0548, 0x0550, 0x0558, 0x0560, 0x0565, 0x0568, + 0x056f, 0x0576, 0x057d, 0x0580, 0x058e, 0x0591, 0x0597, 0x05a2, + 0x05b7, 0x05ba, 0x05c2, 0x05d9, 0x05d9, 0x05e2, 0x05ee, 0x05f5, + 0x0605, +} // Size: 362 bytes + +var faScriptStr string = "" + // Size: 1849 bytes + "آلبانیایی Ù‚Ùقازیعربیآرامی هخامنشیارمنیاوستاییبالیاییباتاکیبنگالینمادهای " + + "بلیسبوپوموÙوبراهمیبریلبوگیاییبوهیدچاکماییکاریچمیچروکیاییکرتقبطیقبرسیسیر" + + "یلیدوناگریدیسرتیکاهنی مصریهیروگلی٠مصریاتیوپیاییگرجی خوتسوریگرجیگلاگولی" + + "تیگوتییونانیگجراتیگورومخیهانگولهانهانونوییهان ساده\u200cشدههان سنتیعبری" + + "هیراگاناهیروگلی٠آناتولیسیلابی\u200cهای ژاپنیمجاری باستانایندوسایتالی ب" + + "استانجاوه\u200cایژاپنیکایالیکاتاکاناخمریخواجکیکاناراکره\u200cایکثیلانای" + + "یلائوسیلاتینی Ùراکتورلاتینی گیلیلاتینیلیمباییخطی الÙخطی بلسیاییلدیاییمن" + + "ده\u200cایمانویهیروگلی٠مایاییمروییتیمالایالامیمغولیمونیمایک میتیمیانما" + + "رعربی شمالی باستاننبطیاوگامیاورخونیاوریه\u200cایپالمیراییپرمی باستانپهل" + + "ÙˆÛŒ کتیبه\u200cایپهلوی زبوریپهلوی کتابیÙنیقیپارتی کتیبه\u200cایرجنگیرونی" + + "سامریساراتیعربی جنوبی باستانسوراشتراییشاویسینهالیسیلوتی نگاریسریانیسریا" + + "Ù†ÛŒ سطرنجیلیسریانی غربیسریانی شرقیتگبنواییتامیلیتلوگوییتنگوارتیÙیناغیتاگ" + + "الوگیتانه\u200cایتایلندیتبتیاوگاریتیویاییگÙتار قابل مشاهدهÙارسی باستانم" + + "یخی سومریâ€Ø§Ú©Ø¯ÛŒÛŒÛŒÙ…وروثیعلائم ریاضیعلائمنانوشتهمشترکخط نامشخص" + +var faScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x001f, 0x001f, 0x0027, 0x0040, 0x004a, 0x0058, + 0x0066, 0x0066, 0x0066, 0x0072, 0x007e, 0x0095, 0x00a5, 0x00b1, + 0x00b9, 0x00c7, 0x00d1, 0x00df, 0x00df, 0x00e7, 0x00ed, 0x00fd, + 0x0103, 0x010b, 0x0115, 0x0121, 0x0121, 0x012f, 0x013b, 0x013b, + 0x013b, 0x014e, 0x0167, 0x0167, 0x0179, 0x0190, 0x0198, 0x01aa, + 0x01b2, 0x01b2, 0x01be, 0x01ca, 0x01d8, 0x01e4, 0x01ea, 0x01fa, + 0x0212, 0x0221, 0x0221, 0x0229, 0x0239, 0x0258, 0x0258, 0x0278, + 0x028f, 0x029b, 0x02b4, 0x02c3, 0x02cd, 0x02cd, 0x02d9, 0x02e9, + // Entry 40 - 7F + 0x02e9, 0x02f1, 0x02fd, 0x0309, 0x0316, 0x0316, 0x031c, 0x0328, + 0x0334, 0x034f, 0x0364, 0x0370, 0x0370, 0x037e, 0x038b, 0x0394, + 0x0394, 0x0394, 0x03a0, 0x03ac, 0x03ac, 0x03bb, 0x03c5, 0x03e2, + 0x03e2, 0x03e2, 0x03f0, 0x0404, 0x0404, 0x040e, 0x0416, 0x0416, + 0x0427, 0x0427, 0x0435, 0x0455, 0x045d, 0x045d, 0x045d, 0x045d, + 0x0469, 0x0469, 0x0477, 0x0488, 0x0488, 0x049a, 0x049a, 0x04af, + 0x04af, 0x04cb, 0x04e0, 0x04f5, 0x04ff, 0x04ff, 0x051b, 0x0525, + 0x0525, 0x052d, 0x0537, 0x0543, 0x0563, 0x0577, 0x0577, 0x057f, + // Entry 80 - BF + 0x057f, 0x057f, 0x057f, 0x058d, 0x058d, 0x058d, 0x05a4, 0x05b0, + 0x05cd, 0x05e2, 0x05f7, 0x0607, 0x0607, 0x0607, 0x0607, 0x0613, + 0x0613, 0x0613, 0x0621, 0x062d, 0x063d, 0x064d, 0x065c, 0x066a, + 0x0672, 0x0672, 0x0682, 0x068c, 0x06ac, 0x06ac, 0x06ac, 0x06c3, + 0x06e1, 0x06e5, 0x06f1, 0x0706, 0x0706, 0x0710, 0x071e, 0x0728, + 0x0739, +} // Size: 362 bytes + +var fiScriptStr string = "" + // Size: 2325 bytes + "afakakaukasianalbanialainenahomarabialainenvaltakunnanaramealainenarmeni" + + "alainenavestalainenbalilainenbamumbassabatakilainenbengalilainenbliss-sy" + + "mbolitbopomofobrahmibraille-pistekirjoitusbugilainenbuhidilainenchakmala" + + "inenkanadalaisten alkuperäiskansojen yhtenäistetty tavukirjoituskaariala" + + "inentÅ¡amilainencherokeelainencirthkoptilainenmuinaiskyproslainenkyrillin" + + "enkyrillinen muinaiskirkkoslaavimuunnelmadevanagarideseretDuployén pikak" + + "irjoitusegyptiläinen demoottinenegyptiläinen hieraattinenegyptiläiset hi" + + "eroglyfitelbasanilainenetiopialainenmuinaisgeorgialainengeorgialainengla" + + "goliittinengoottilainengranthakreikkalainengudžaratilainengurmukhihangul" + + "kiinalainen hanhanunoolainenkiinalainen yksinkertaistettu hankiinalainen" + + " perinteinen hanhatralainenheprealainenhiraganaanatolialaiset hieroglyfi" + + "tpahawh hmonghiragana tai katakanamuinaisunkarilaineninduslainenmuinaisi" + + "talialainenjaavalainenjapanilainendžurtÅ¡enkayah likatakanakharosthikhmer" + + "iläinenkhojkikannadalainenkorealainenkpellekaithilannalaolainenlatinalai" + + "nen fraktuuramuunnelmalatinalainen gaelimuunnelmalatinalainenlepchalaine" + + "nlimbulainenlineaari-Alineaari-BFraserin aakkosetlomalyykialainenlyydial" + + "ainenmahajanilainenmandealainenmanikealainenmaya-hieroglyfitmendemeroiit" + + "tinen kursiivikirjoitusmeroiittinenmalajalamilainenmodi-aakkosetmongolil" + + "ainenmoon-kohokirjoitusmromeiteimultanilainenburmalainenmuinaispohjoisar" + + "abialainennabatealainennaxi geban’konüshuogamol chikiorkhonorijalainenos" + + "manjalainenpalmyralainenzotuallaimuinaispermiläinenphags-papiirtokirjoit" + + "uspahlavilainenpsalttaripahlavilainenkirjapahlavilainenfoinikialainenPol" + + "lardin foneettinenpiirtokirjoitusparthialainenrejangrongorongoriimukirjo" + + "itussamarianaramealainensaratimuinaiseteläarabialainensaurashtraSignWrit" + + "ingshaw’lainenÅ¡aradasiddham-tavukirjoituskhudabadisinhalilainensorang so" + + "mpengsundalainensyloti nagrisyyrialainensyyrialainen estrangelo-muunnelm" + + "asyyrialainen läntinen muunnelmasyyrialainen itäinen muunnelmatagbanwala" + + "inentakritailelainenuusi tailuelainentamililainentanguttai viettelugulai" + + "nentengwartifinaghtagalogilainenthaanathailainentiibetiläinentirhutaugar" + + "itilainenvailainennäkyvä puhevarang kshitiwoleaimuinaispersialainensumer" + + "ilais-akkadilainen nuolenpääkirjoitusyiläinenperittymatemaattinensymboli" + + "tkirjoittamatonmäärittämätöntuntematon kirjoitusjärjestelmä" + +var fiScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x001b, 0x001f, 0x002b, 0x0042, 0x004f, 0x005b, + 0x0065, 0x006a, 0x006f, 0x007b, 0x0088, 0x0096, 0x009e, 0x00a4, + 0x00ba, 0x00c4, 0x00d0, 0x00dc, 0x011a, 0x0126, 0x0132, 0x0140, + 0x0145, 0x0150, 0x0163, 0x016d, 0x0194, 0x019e, 0x01a5, 0x01bc, + 0x01d5, 0x01ef, 0x0208, 0x0216, 0x0223, 0x0237, 0x0244, 0x0252, + 0x025e, 0x0265, 0x0272, 0x0282, 0x028a, 0x0290, 0x029f, 0x02ac, + 0x02cd, 0x02e8, 0x02f3, 0x02ff, 0x0307, 0x0321, 0x032d, 0x0342, + 0x0355, 0x0360, 0x0373, 0x037e, 0x038a, 0x0394, 0x039c, 0x03a4, + // Entry 40 - 7F + 0x03ad, 0x03ba, 0x03c0, 0x03cd, 0x03d8, 0x03de, 0x03e4, 0x03e9, + 0x03f2, 0x0411, 0x042c, 0x0438, 0x0444, 0x044f, 0x0459, 0x0463, + 0x0474, 0x0478, 0x0484, 0x0490, 0x049e, 0x04aa, 0x04b7, 0x04c7, + 0x04cc, 0x04ea, 0x04f6, 0x0506, 0x0513, 0x0520, 0x0532, 0x0535, + 0x053b, 0x0548, 0x0553, 0x056d, 0x057a, 0x0583, 0x0589, 0x058f, + 0x0593, 0x059b, 0x05a1, 0x05ac, 0x05b9, 0x05c6, 0x05cf, 0x05e2, + 0x05ea, 0x0606, 0x061c, 0x062e, 0x063c, 0x0651, 0x066d, 0x0673, + 0x067d, 0x068b, 0x069f, 0x06a5, 0x06be, 0x06c8, 0x06d3, 0x06e0, + // Entry 80 - BF + 0x06e7, 0x06fc, 0x0705, 0x0712, 0x0720, 0x072b, 0x0737, 0x0743, + 0x0764, 0x0784, 0x07a3, 0x07b1, 0x07b6, 0x07c1, 0x07d2, 0x07de, + 0x07e4, 0x07ec, 0x07f8, 0x07ff, 0x0807, 0x0815, 0x081b, 0x0825, + 0x0833, 0x083a, 0x0847, 0x0850, 0x085d, 0x086a, 0x0870, 0x0883, + 0x08af, 0x08b8, 0x08bf, 0x08cc, 0x08cc, 0x08d4, 0x08e2, 0x08f4, + 0x0915, +} // Size: 362 bytes + +var filScriptStr string = "" + // Size: 311 bytes + "ArabicArmenianBengaliBopomofoBrailleCyrillicDevanagariEthiopicGeorgianGr" + + "eekGujaratiGurmukhiHangulHanPinasimpleng HanTradisyonal na HanHebrewHira" + + "ganaJapaneseKatakanaKhmerKannadaKoreanLaoLatinMalayalamMongolianMyanmarO" + + "riyaSinhalaTamilTeluguThaanaThaiTibetanMga SimboloHindi NakasulatKaraniw" + + "anHindi Kilalang Script" + +var filScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x0015, 0x0015, 0x001d, 0x001d, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x002c, 0x002c, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x003e, 0x003e, 0x0046, 0x0046, + 0x0046, 0x0046, 0x004b, 0x0053, 0x005b, 0x0061, 0x0064, 0x0064, + 0x0074, 0x0086, 0x0086, 0x008c, 0x0094, 0x0094, 0x0094, 0x0094, + 0x0094, 0x0094, 0x0094, 0x0094, 0x009c, 0x009c, 0x009c, 0x00a4, + // Entry 40 - 7F + 0x00a4, 0x00a9, 0x00a9, 0x00b0, 0x00b6, 0x00b6, 0x00b6, 0x00b6, + 0x00b9, 0x00b9, 0x00b9, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, + 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, 0x00be, + 0x00be, 0x00be, 0x00be, 0x00c7, 0x00c7, 0x00d0, 0x00d0, 0x00d0, + 0x00d0, 0x00d0, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, 0x00d7, + 0x00d7, 0x00d7, 0x00d7, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, 0x00dc, + // Entry 80 - BF + 0x00dc, 0x00dc, 0x00dc, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, + 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e3, 0x00e8, + 0x00e8, 0x00e8, 0x00ee, 0x00ee, 0x00ee, 0x00ee, 0x00f4, 0x00f8, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, + 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x00ff, 0x010a, 0x0119, 0x0122, + 0x0137, +} // Size: 362 bytes + +var frScriptStr string = "" + // Size: 1445 bytes + "arabearaméen impérialarménienavestiquebalinaisbatakbengalisymboles Bliss" + + "bopomofobrâhmîbraillebouguisbouhidechakmasyllabaire autochtone canadien " + + "unifiécarienchamcherokeecirthcoptesyllabaire chypriotecyrilliquecyrilliq" + + "ue (variante slavonne)dévanâgarîdéséretdémotique égyptienhiératique égyp" + + "tienhiéroglyphes égyptienséthiopiquegéorgien khoutsourigéorgienglagoliti" + + "quegotiquegrecgoudjarâtîgourmoukhîhangûlsinogrammeshanounóosinogrammes s" + + "implifiéssinogrammes traditionnelshébreuhiraganapahawh hmongkatakana ou " + + "hiraganaancien hongroisindusancien italiquejavanaisjaponaiskayah likatak" + + "anakharochthîkhmerkannaracoréenkaithîlannalaolatin (variante brisée)lati" + + "n (variante gaélique)latinlepchalimboulinéaire Alinéaire Blycienlydienma" + + "ndéenmanichéenhiéroglyphes mayasméroïtiquemalayalammongolmoonmeitei maye" + + "kbirmann’koogamol tchikiorkhonoriyaosmanaisancien permienphags papehlevi" + + " des inscriptionspehlevi des psautierspehlevi des livresphénicienphonéti" + + "que de Pollardparthe des inscriptionsrejangrongorongoruniquesamaritainsa" + + "ratisaurashtraécriture des signesshaviencinghalaissundanaissylotî nâgrîs" + + "yriaquesyriaque estranghélosyriaque occidentalsyriaque orientaltagbanoua" + + "taï-lenouveau taï-luetamoultaï viêttélougoutengwartifinaghtagalthânathaï" + + "tibétainougaritiquevaïparole visiblecunéiforme persépolitaincunéiforme s" + + "uméro-akkadienyihériténotation mathématiquesymbolesnon écritcommunécritu" + + "re inconnue" + +var frScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0017, 0x0020, 0x0029, + 0x0031, 0x0031, 0x0031, 0x0036, 0x003d, 0x004b, 0x0053, 0x005b, + 0x0062, 0x0069, 0x0070, 0x0076, 0x009c, 0x00a2, 0x00a6, 0x00ae, + 0x00b3, 0x00b8, 0x00cc, 0x00d6, 0x00f4, 0x0101, 0x010a, 0x010a, + 0x011e, 0x0133, 0x014b, 0x014b, 0x0156, 0x016a, 0x0173, 0x017f, + 0x0186, 0x0186, 0x018a, 0x0196, 0x01a1, 0x01a8, 0x01b3, 0x01bc, + 0x01d3, 0x01ec, 0x01ec, 0x01f3, 0x01fb, 0x01fb, 0x0207, 0x021b, + 0x022a, 0x022f, 0x023e, 0x0246, 0x024e, 0x024e, 0x0256, 0x025e, + // Entry 40 - 7F + 0x0269, 0x026e, 0x026e, 0x0275, 0x027c, 0x027c, 0x0283, 0x0288, + 0x028b, 0x02a3, 0x02bd, 0x02c2, 0x02c8, 0x02ce, 0x02d9, 0x02e4, + 0x02e4, 0x02e4, 0x02ea, 0x02f0, 0x02f0, 0x02f8, 0x0302, 0x0315, + 0x0315, 0x0315, 0x0321, 0x032a, 0x032a, 0x0330, 0x0334, 0x0334, + 0x0340, 0x0340, 0x0346, 0x0346, 0x0346, 0x0346, 0x034c, 0x034c, + 0x0350, 0x0359, 0x035f, 0x0364, 0x036c, 0x036c, 0x036c, 0x037a, + 0x0382, 0x039a, 0x03af, 0x03c1, 0x03cb, 0x03e1, 0x03f8, 0x03fe, + 0x0408, 0x040f, 0x0419, 0x041f, 0x041f, 0x0429, 0x043d, 0x0444, + // Entry 80 - BF + 0x0444, 0x0444, 0x0444, 0x044e, 0x044e, 0x0457, 0x0466, 0x046e, + 0x0483, 0x0496, 0x04a7, 0x04b0, 0x04b0, 0x04b7, 0x04c7, 0x04cd, + 0x04cd, 0x04d7, 0x04e0, 0x04e7, 0x04ef, 0x04f4, 0x04fa, 0x04ff, + 0x0508, 0x0508, 0x0513, 0x0517, 0x0525, 0x0525, 0x0525, 0x053f, + 0x055b, 0x055d, 0x0565, 0x057b, 0x057b, 0x0583, 0x058d, 0x0593, + 0x05a5, +} // Size: 362 bytes + +var frCAScriptStr string = "devanagarigujarati" + +var frCAScriptIdx = []uint16{ // 44 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x0012, +} // Size: 112 bytes + +var guScriptStr string = "" + // Size: 3319 bytes + "અરબીઇમà«àªªàª¿àª°àª¿àª¯àª² આરà«àª®àª¨àª¿àª•àª…રà«àª®à«‡àª¨àª¿àª¯àª¨àª…વેસà«àª¤àª¨àª¬àª¾àª²à«€àª¨à«€àªàª¬àªŸàª¾àª•àª¬àª‚ગાળીબà«àª²àª¿àª¸àª¿àª®à«àª¬à«‹àª²à«àª¸àª¬à«‹àªªà«‹àª®" + + "ોફોબà«àª°àª¹à«àª®à«€àª¬à«àª°à«‡àª²àª¬àª—િનીસબà«àª¹àª¿àª¦àªšàª•àª®àª¾àª¯à«àª¨àª¾àª‡àªŸà«‡àª¡ કેનેડિયન àªàª¬à«‹àª°àª¿àªœàª¨àª² સિલેબિકà«àª¸àª•àª°à«ˆàª¨" + + "ચેરોકીસિરà«àª¥àª•à«‹àªªà«àªŸàª¿àª•àª¸àª¿àªªà«àª°àª¾àª¯àªŸàª¸àª¿àª°àª¿àª²àª¿àª•àª“લà«àª¡ ચરà«àªš સà«àª²àª¾àªµà«‹àª¨àª¿àª• સિરિલિકદેવનાગરીડે" + + "સરેટઇજિપà«àª¶àª¿àª¯àª¨ ડેમોટિકઇજિપà«àª¶àª¿àª¯àª¨ હાઇરેટિકઇજિપà«àª¶àª¿àª¯àª¨ હાઇરોગà«àª²àª¿àª«à«àª¸àª‡àª¥àª¿àª¯à«‹àªªàª¿àª•àªœ" + + "à«àª¯à«‹àª°à«àªœàª¿àª…ન ખà«àª¤àª¸à«àª°à«€àªœà«àª¯à«‹àª°à«àªœàª¿àª…નગà«àª²à«‡àª—ોલિટિકગોથિકગà«àª°à«€àª•àª—à«àªœàª°àª¾àª¤à«€àª—à«àª°à«‚મà«àª–ીહંગà«àª²àª¹àª¾" + + "નહનà«àª¨à«‚સરળીકૃત હાનપરંપરાગત હાનહીબà«àª°à«àª¹àª¿àª°àª¾àª—ાનાપહાઉ મોનà«àª—કતાકના અને હિરાગન" + + "ાઓલà«àª¡ હંગેરિયનસિનà«àª§à«àªœà«‚નૠઇટાલિકજાવાનીસજાપાનીકાયાહ લીકટાકાનાખારોશà«àª¥à«€àª–à«àª®" + + "ેરકનà«àª¨àª¡àª¾àª•à«‹àª°àª¿àª¯àª¨àª•à«ˆàª¥à«€àª²àª¾àª¨àª¾àª²àª¾àª“ફà«àª°à«‡àª•àª¤à«àª° લેટિનગૈલિક લેટિનલેટિનલેપચાલિમà«àª¬à«‚લીનિ" + + "યર અલીનિયર બીલિશિયનલિડિયનમાનà«àª¡àª¾àª¯à«€àª¨àª®àª¾àª¨à«€àªšàª¾àª¯à«€àª¨àª®àª¯àª¾àª¨ હાઇરોગà«àª²àª¿àª«à«àª¸àª®à«‡àª°à«‹àª‡àªŸàª¿àª•àª®àª²" + + "યાલમમોંગોલિયનમૂનમેઇતેઇ માયેકમà«àª¯àª¾àª‚મારàªàª¨â€™ કોઓઘામઓલ ચિકીઓરખોનઉડિયાઓસà«àª®àª¾àª¨à«" + + "યાઓલà«àª¡ પરમિકફાગà«àª¸-પાઇનà«àª¸à«àª•à«àª°àª¿àªªà«àª¶àª¨àª² પહલવીસાલટર પહલવીબà«àª• પહલવીફોનિશિયનપો" + + "લારà«àª¡ ફોનેટિકઇનà«àª¸à«àª•à«àª°àª¿àªªà«àª¶àª¨àª² પારà«àª¥àª¿àª¯àª¨àª°à«€àªœàª¾àª‚ગરોંગોરોંગોરૂનિકસમરિટાનસરાતીસ" + + "ૌરાષà«àªŸà«àª°àª¸àª‚કેત લિપીશાવિયાનસિંહલીસà«àª¦àª¾àª¨à«€àªàª¸àª¿àª²à«‹àª¤à«€ નાગરીસિરિયેકàªàª¸à«àª¤à«àª°à«‡àª¨à«àªœà«‡àª²à«‹" + + " સિરિયાકપશà«àªšàª¿àª® સિરિયાકપૂરà«àªµ સિરિયાકતગબનà«àªµàª¾àª¤àª¾àª‡ લીનવીન તાઇ લૂતમિલતાઇ વેઇતત" + + "ેલà«àª—à«àª¤à«‡àª¨à«àª—વારતિફિનાઘટેગાલોગથાનાથાઇટિબેટીયà«àª—ાતિટિકવાઇવિસિબલ સà«àªªà«€àªšàªœà«àª¨à«€ ફ" + + "ારસીસà«àª®à«‡àª°à«‹ અકà«àª•àª¾àª¦àª¿àª¯àª¨ સà«àª¨àª¿àª«à«‹àª°à«àª®àª¯à«€àªµàª‚શાગતગણિતીય સંકેતલિપિપà«àª°àª¤à«€àª•à«‹àª…લિખિતસામ" + + "ાનà«àª¯àª…જà«àªžàª¾àª¤ લિપિ" + +var guScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x003d, 0x0058, 0x006d, + 0x0082, 0x0082, 0x0082, 0x008e, 0x00a0, 0x00c7, 0x00df, 0x00f4, + 0x0103, 0x0115, 0x0124, 0x0130, 0x0196, 0x01a2, 0x01a2, 0x01b4, + 0x01c3, 0x01d8, 0x01f0, 0x0205, 0x0250, 0x0268, 0x027a, 0x027a, + 0x02ab, 0x02df, 0x031f, 0x031f, 0x0337, 0x036b, 0x0389, 0x03aa, + 0x03b9, 0x03b9, 0x03c8, 0x03dd, 0x03f5, 0x0404, 0x040d, 0x041c, + 0x043b, 0x045d, 0x045d, 0x046f, 0x0487, 0x0487, 0x04a3, 0x04d5, + 0x04fa, 0x050c, 0x052b, 0x0540, 0x0552, 0x0552, 0x0568, 0x057d, + // Entry 40 - 7F + 0x0595, 0x05a4, 0x05a4, 0x05b6, 0x05c8, 0x05c8, 0x05d4, 0x05e0, + 0x05e9, 0x0611, 0x0630, 0x063f, 0x064e, 0x0660, 0x0676, 0x068f, + 0x068f, 0x068f, 0x06a1, 0x06b3, 0x06b3, 0x06ce, 0x06e9, 0x071a, + 0x071a, 0x071a, 0x0732, 0x0744, 0x0744, 0x075f, 0x0768, 0x0768, + 0x078a, 0x078a, 0x07a2, 0x07a2, 0x07a2, 0x07a2, 0x07b2, 0x07b2, + 0x07be, 0x07d1, 0x07e0, 0x07ef, 0x080a, 0x080a, 0x080a, 0x0826, + 0x083c, 0x0876, 0x0895, 0x08ae, 0x08c6, 0x08f1, 0x0934, 0x0946, + 0x0964, 0x0973, 0x0988, 0x0997, 0x0997, 0x09b2, 0x09ce, 0x09e3, + // Entry 80 - BF + 0x09e3, 0x09e3, 0x09e3, 0x09f5, 0x09f5, 0x0a0a, 0x0a2c, 0x0a41, + 0x0a7e, 0x0aa6, 0x0acb, 0x0ae0, 0x0ae0, 0x0af0, 0x0b0d, 0x0b19, + 0x0b19, 0x0b2f, 0x0b41, 0x0b59, 0x0b6e, 0x0b83, 0x0b8f, 0x0b98, + 0x0baa, 0x0baa, 0x0bc5, 0x0bce, 0x0bf0, 0x0bf0, 0x0bf0, 0x0c0c, + 0x0c56, 0x0c5c, 0x0c6e, 0x0c9c, 0x0c9c, 0x0cb1, 0x0cc3, 0x0cd8, + 0x0cf7, +} // Size: 362 bytes + +var heScriptStr string = "" + // Size: 849 bytes + "ערבי×רמניב×לינזיבנגליבופומופובריילצ׳××צ׳ירוקיקופטיקפריס×יקיריליקירילי סל" + + "×בוני כנסייתי עתיקדוו×נגריכתב חרטומי××תיופיג×ורגיגותייווניגוג׳רטיגורמוק" + + "×™×”×נגולה×ןכתב ×”×ן פשוטכתב ×”×ן מסורתיעבריהירג×נההונגרי עתיק×ינדוס×יטלקי " + + "עתיקג׳×וונזייפניקטק×נהקמריתק×נדהקורי×ניל×יתלטיני ×’×לילטינימ×יהמלי×ל××מו" + + "נגולימי×נמר×ורייהפיניקירוניסינהלהסוריסורי מערביסורי מזרחיטמילטלוגוטגלוג" + + "כתב ט×נהת×יטיבטי×וגריתיפרסי עתיקמורשסימון מתמטיסימני××œ× ×›×ª×•×‘×¨×’×™×œ×›×ª×‘ ש××™" + + "נו ידוע" + +var heScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, + 0x0020, 0x0020, 0x0020, 0x0020, 0x002a, 0x002a, 0x003a, 0x003a, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x004c, 0x005a, + 0x005a, 0x0064, 0x0072, 0x007e, 0x00b1, 0x00c1, 0x00c1, 0x00c1, + 0x00c1, 0x00c1, 0x00d6, 0x00d6, 0x00e2, 0x00e2, 0x00ee, 0x00ee, + 0x00f6, 0x00f6, 0x0100, 0x010e, 0x011c, 0x0128, 0x012e, 0x012e, + 0x0144, 0x015e, 0x015e, 0x0166, 0x0174, 0x0174, 0x0174, 0x0174, + 0x0189, 0x0195, 0x01aa, 0x01ba, 0x01c2, 0x01c2, 0x01c2, 0x01ce, + // Entry 40 - 7F + 0x01ce, 0x01d8, 0x01d8, 0x01e2, 0x01f0, 0x01f0, 0x01f0, 0x01f0, + 0x01f8, 0x01f8, 0x020b, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x021d, + 0x021d, 0x021d, 0x021d, 0x022b, 0x022b, 0x0239, 0x0239, 0x0239, + 0x0239, 0x0239, 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, 0x0245, + 0x0245, 0x0245, 0x0245, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, + 0x0251, 0x0251, 0x0251, 0x0251, 0x025d, 0x025d, 0x025d, 0x025d, + 0x025d, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, 0x0265, + // Entry 80 - BF + 0x0265, 0x0265, 0x0265, 0x0271, 0x0271, 0x0271, 0x0271, 0x0279, + 0x0279, 0x028c, 0x029f, 0x029f, 0x029f, 0x029f, 0x029f, 0x02a7, + 0x02a7, 0x02a7, 0x02b1, 0x02b1, 0x02b1, 0x02bb, 0x02ca, 0x02d0, + 0x02da, 0x02da, 0x02e8, 0x02e8, 0x02e8, 0x02e8, 0x02e8, 0x02f9, + 0x02f9, 0x02f9, 0x0301, 0x0316, 0x0316, 0x0322, 0x032f, 0x0337, + 0x0351, +} // Size: 362 bytes + +var hiScriptStr string = "" + // Size: 3328 bytes + "अरबीइमà¥à¤ªà¤¿à¤°à¤¿à¤¯à¤² आरà¥à¤®à¥‡à¤¨à¤¿à¤•à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆà¤…वेसà¥à¤¤à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤•à¥€à¤¬à¤‚गालीबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹" + + "फ़ोबà¥à¤°à¤¹à¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¤—िनीसबà¥à¤¹à¤¿à¤¦à¤šà¤•à¤®à¤¾à¤¯à¥à¤¨à¤¿à¤«à¤¾à¤‡à¤¡ कैनेडियन à¤à¤¬à¥‹à¤°à¤¿à¤œà¤¨à¤² सिलेबिकà¥à¤¸à¤•à¤°à¥ˆà¤¨" + + "चामचेरोकीकिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¤¾à¤‡à¤ªà¥à¤°à¤¾à¤¯à¤Ÿà¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¤“लà¥à¤¡ चरà¥à¤š सà¥à¤²à¤¾à¤µà¥‹à¤¨à¤¿à¤• सिरिलिकदेवनाग" + + "रीडेसरेटइजिपà¥à¤¶à¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हाइरेटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤‡à¤¥à¤¿à¤¯à¥‹" + + "पियाईजॉरà¥à¤œà¤¿à¤¯à¤¨ खà¥à¤¤à¤¸à¥à¤°à¥€à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¥‡à¤—ोलिटिकगोथिकगà¥à¤°à¤¨à¥à¤¥à¤¯à¥‚नानीगà¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¤®à¥à¤–" + + "ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¨à¥à¤¨à¥‚सरलीकृत हानपारंपरिक हानहिबà¥à¤°à¥‚हिरागानापाहो हà¥à¤®à¥‹à¤¨à¥à¤—कचाकना " + + "और हिरागनाऑलà¥à¤¡ हंगेरियनसिनà¥à¤§à¥à¤ªà¥à¤°à¤¾à¤¨à¥€ इटलीजावानीसजापानीकायाह लीकाताकानाख" + + "ारोशथीखमेरकनà¥à¤¨à¤¡à¤¼à¤•à¥‹à¤°à¤¿à¤¯à¤¾à¤ˆà¤•à¥ˆà¤¥à¥€à¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फ़à¥à¤°à¥ˆà¤•à¥à¤Ÿà¥à¤° लातिनीगेली लातिनीलैटिनलेप" + + "चालिमà¥à¤¬à¥‚लीनियर Aलीनियर बीलिशियनलिडियनमनडेनमनीशीनमयान हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¥‹à¤‡" + + "टिकमलयालममंगोलियाईमूनमेइतेइ मायेकमà¥à¤¯à¤¾à¤‚मारà¤à¤¨à¥â€˜à¤•à¥‹à¤“गमऑल चिकीओरखोनउड़ियाओस" + + "à¥à¤®à¤¾à¤¨à¥à¤¯à¤¾à¤“लà¥à¤¡ परमिकफागà¥à¤¸-पाइंसà¥à¤•à¥à¤°à¤¿à¤ªà¤¶à¥à¤¨à¤² पाहलवीसॉलà¥à¤Ÿà¤° पाहलवीबà¥à¤• पाहलवीफो" + + "निशियनपॉलारà¥à¤¡ फोनेटिकइंसà¥à¤•à¥à¤°à¤¿à¤ªà¤¶à¥à¤¨à¤² पारà¥à¤¥à¤¿à¤¯à¤¨à¤°à¥€à¤œà¤¾à¤‚गरोनà¥à¤—ोरोनà¥à¤—ोरूनिकसमरि" + + "टनसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‚केतिक लेखशावियानसिंहलीसूडानीसिलोती नागरीसिरियेकà¤à¤¸à¥à¤¤" + + "à¥à¤°à¥‡à¤¨à¥à¤œà¥‡à¤²à¥‹ सिरिà¤à¤•à¤ªà¤¶à¥à¤šà¤¿à¤® सिरिà¤à¤•à¤ªà¥‚रà¥à¤µ सिरिà¤à¤•à¤¤à¤—बनà¥à¤µà¤¾à¤¤à¤¾à¤ˆ लीनया ताई लà¥à¤¤à¤®à¤¿à¤²à¤¤à¤¾" + + "ई विà¤à¤¤à¤¤à¥‡à¤²à¥à¤—ूतेनà¥à¤—वारतिफिनाघटैगालोगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤¯à¥à¤—ारिटिकवाईविसिबल सà¥à¤ª" + + "ीचपà¥à¤°à¤¾à¤¨à¥€ फारसीसà¥à¤®à¥‡à¤°à¥‹ अकà¥à¤•à¤¾à¤¦à¤¿à¤¯à¤¨ सà¥à¤¨à¤¿à¤«à¥‰à¤°à¥à¤®à¤¯à¥€à¤µà¤¿à¤°à¤¾à¤¸à¤¤à¤—णितीय संकेतनचिहà¥à¤¨à¤…लिख" + + "ितसामानà¥à¤¯à¤…जà¥à¤žà¤¾à¤¤ लिपि" + +var hiScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0040, 0x005e, 0x0073, + 0x007f, 0x007f, 0x007f, 0x008b, 0x009d, 0x00c4, 0x00df, 0x00f4, + 0x0103, 0x0115, 0x0124, 0x0130, 0x0196, 0x01a2, 0x01ab, 0x01bd, + 0x01cc, 0x01e1, 0x01fc, 0x0211, 0x025c, 0x0274, 0x0286, 0x0286, + 0x02b7, 0x02eb, 0x032b, 0x032b, 0x0349, 0x0377, 0x038f, 0x03b0, + 0x03bf, 0x03d1, 0x03e3, 0x03f8, 0x040d, 0x041c, 0x0425, 0x0434, + 0x0453, 0x0475, 0x0475, 0x0487, 0x049f, 0x049f, 0x04c1, 0x04f0, + 0x0515, 0x0527, 0x0546, 0x055b, 0x056d, 0x056d, 0x0583, 0x059b, + // Entry 40 - 7F + 0x05b0, 0x05bc, 0x05bc, 0x05ce, 0x05e3, 0x05e3, 0x05ef, 0x05fb, + 0x0604, 0x0635, 0x0654, 0x0663, 0x0672, 0x0684, 0x0698, 0x06b1, + 0x06b1, 0x06b1, 0x06c3, 0x06d5, 0x06d5, 0x06e4, 0x06f6, 0x0727, + 0x0727, 0x0727, 0x073f, 0x0751, 0x0751, 0x076c, 0x0775, 0x0775, + 0x0797, 0x0797, 0x07af, 0x07af, 0x07af, 0x07af, 0x07c1, 0x07c1, + 0x07ca, 0x07dd, 0x07ec, 0x07fe, 0x0819, 0x0819, 0x0819, 0x0835, + 0x084b, 0x0885, 0x08aa, 0x08c6, 0x08de, 0x0909, 0x0949, 0x095b, + 0x097f, 0x098e, 0x09a0, 0x09af, 0x09af, 0x09ca, 0x09ec, 0x0a01, + // Entry 80 - BF + 0x0a01, 0x0a01, 0x0a01, 0x0a13, 0x0a13, 0x0a25, 0x0a47, 0x0a5c, + 0x0a96, 0x0abb, 0x0add, 0x0af2, 0x0af2, 0x0b02, 0x0b1c, 0x0b28, + 0x0b28, 0x0b3e, 0x0b50, 0x0b68, 0x0b7d, 0x0b92, 0x0b9e, 0x0ba7, + 0x0bbc, 0x0bbc, 0x0bd7, 0x0be0, 0x0c02, 0x0c02, 0x0c02, 0x0c24, + 0x0c6e, 0x0c74, 0x0c86, 0x0cab, 0x0cab, 0x0cba, 0x0ccc, 0x0ce1, + 0x0d00, +} // Size: 362 bytes + +var hrScriptStr string = "" + // Size: 2371 bytes + "afaka pismoarapsko pismoaramejsko pismoarmensko pismoavestansko pismobal" + + "ijsko pismobamum pismobassa vah pismobatak pismobengalsko pismoblissymbo" + + "lsbopomofo pismobrahmi pismobrajicabuginsko pismobuhid pismochakma pismo" + + "unificirani kanadski aboriÄ‘inski slogovikarijsko pismoÄamsko pismoÄeroki" + + " pismocirth pismokoptsko pismocypriot pismoćirilicastaroslavenska crkven" + + "a Äirilicadevangari pismodeseret pismoegipatsko narodno pismoegipatsko h" + + "ijeratsko pismoegipatski hijeroglifietiopsko pismogruzijsko khutsuri pis" + + "mogruzijsko pismoglagoljicagotiÄko pismograntha pismogrÄko pismogudžarat" + + "sko pismogurmukhi pismohangul pismohan pismohanunoo pismopojednostavljen" + + "o hansko pismotradicionalno hansko pismohebrejsko pismohiragana pismoana" + + "tolijski hijeroglifipahawh hmong pismokatakana ili hiragana pismostaro m" + + "aÄ‘arsko pismoindijsko pismostaro talijansko pismojavansko pismojapansko " + + "pismojurchen pismokayah li pismokatakana pismokharoshthi pismokmersko pi" + + "smokhojki pismokannada pismokorejsko pismokpelle pismokaithi pismolanna " + + "pismolaosko pismofraktur latinicakeltska latinicalatinicalepcha pismolim" + + "bu pismolinear A pismolinear B pismofraser pismoloma pismolikijsko pismo" + + "lidijsko pismomandai pismomanihejsko pismomajanski hijeroglifimende pism" + + "omeroitski kurzivmeroitic pismomalajalamsko pismomongolsko pismomoon pis" + + "momro pismomeitei mayek pismomjanmarsko pismostaro sjevernoarapsko pismo" + + "nabatejsko pismonaxi geba pismon’ko pismonushu pismoogham pismool chiki " + + "pismoorkhon pismoorijsko pismoosmanya pismopalmyrene pismostaro permic p" + + "ismophags-pa pismopisani pahlavipsalter pahlavipahlavi pismofeniÄko pism" + + "opollard fonetsko pismopisani parthianrejang pismorongorongo pismorunsko" + + " pismosamaritansko pismosarati pismostaro južnoarapsko pismosaurashtra p" + + "ismoznakovno pismoshavian pismosharada pismokhudawadi pismosinhaleÅ¡ko pi" + + "smosora sompeng pismosundansko pismosyloti nagri pismosirijsko pismosiri" + + "jsko estrangelo pismopismo zapadne Sirijepismo istoÄne Sirijetagbanwa pi" + + "smotakri pismotai le pismonovo tai lue pismotamilsko pismotangut pismota" + + "i viet pismotelugu pismotengwar pismotifinartagalog pismothaana pismotaj" + + "landsko pismotibetansko pismotirhuta pismougaritsko pismovai pismoVisibl" + + "e Speechvarang kshiti pismowoleai pismostaro perzijsko pismosumersko-aka" + + "dsko cuneiform pismoYi pismonasljedno pismomatematiÄko znakovljesimbolij" + + "ezik bez pismenostizajedniÄko pismonepoznato pismo" + +var hrScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000b, 0x000b, 0x000b, 0x0018, 0x0027, 0x0035, 0x0045, + 0x0053, 0x005e, 0x006d, 0x0078, 0x0087, 0x0092, 0x00a0, 0x00ac, + 0x00b3, 0x00c1, 0x00cc, 0x00d8, 0x0101, 0x010f, 0x011c, 0x0129, + 0x0134, 0x0141, 0x014e, 0x0157, 0x0177, 0x0186, 0x0193, 0x0193, + 0x01aa, 0x01c4, 0x01d9, 0x01d9, 0x01e7, 0x01ff, 0x020e, 0x0218, + 0x0226, 0x0233, 0x023f, 0x0251, 0x025f, 0x026b, 0x0274, 0x0281, + 0x029e, 0x02b8, 0x02b8, 0x02c7, 0x02d5, 0x02ec, 0x02fe, 0x0319, + 0x032e, 0x033c, 0x0352, 0x0360, 0x036e, 0x037b, 0x0389, 0x0397, + // Entry 40 - 7F + 0x03a7, 0x03b4, 0x03c0, 0x03cd, 0x03db, 0x03e7, 0x03f3, 0x03fe, + 0x040a, 0x041a, 0x042a, 0x0432, 0x043e, 0x0449, 0x0457, 0x0465, + 0x0471, 0x047b, 0x0489, 0x0497, 0x0497, 0x04a3, 0x04b3, 0x04c7, + 0x04d2, 0x04e2, 0x04f0, 0x0502, 0x0502, 0x0511, 0x051b, 0x0524, + 0x0536, 0x0536, 0x0546, 0x0561, 0x0571, 0x0580, 0x058c, 0x0597, + 0x05a2, 0x05b0, 0x05bc, 0x05c9, 0x05d6, 0x05e5, 0x05e5, 0x05f7, + 0x0605, 0x0613, 0x0622, 0x062f, 0x063d, 0x0653, 0x0662, 0x066e, + 0x067e, 0x068a, 0x069c, 0x06a8, 0x06c1, 0x06d1, 0x06df, 0x06ec, + // Entry 80 - BF + 0x06f9, 0x06f9, 0x0708, 0x0719, 0x072b, 0x073a, 0x074c, 0x075a, + 0x0773, 0x0787, 0x079c, 0x07aa, 0x07b5, 0x07c1, 0x07d3, 0x07e1, + 0x07ed, 0x07fb, 0x0807, 0x0814, 0x081b, 0x0828, 0x0834, 0x0844, + 0x0854, 0x0861, 0x0870, 0x0879, 0x0887, 0x089a, 0x08a6, 0x08bb, + 0x08db, 0x08e3, 0x08f2, 0x0908, 0x0908, 0x090f, 0x0923, 0x0934, + 0x0943, +} // Size: 362 bytes + +var huScriptStr string = "" + // Size: 1273 bytes + "ArabBirodalmi arámiÖrményAvesztánBalinézBatakBengáliBliss jelképrendszer" + + "BopomofoBrámiVakírásBuginézBuhidCsakmaEgyesített kanadai Å‘slakos jelekKa" + + "riCsámCserokiKoptCiprusiCirillÓegyházi szláv cirillDevanagáriDeseretEgyi" + + "ptomi demotikusEgyiptomi hieratikusEgyiptomi hieroglifákEtiópGrúz kucsur" + + "iGrúzGlagolitikusGótGörögGudzsarátiGurmukiHangulHanHanunooEgyszerűsített" + + " kínaiHagyományos kínaiHéberHiraganaPahawh hmongKatakana vagy hiraganaÓm" + + "agyarIndusRégi olaszJávaiJapánKajah liKatakanaKharoshthiKhmerKannadaKore" + + "aiKaithiLannaLaoFraktur latinGael latinLatinLepchaLimbuLineáris ALineári" + + "s BLíciaiLídiaiMandaiManicheusMaja hieroglifákMeroitikusMalajálamMongolM" + + "oonMeitei mayekBurmaiN’koOghamOl chikiOrhonOriyaOszmánÓpermikusPhags-paF" + + "elriatos pahlaviPsalter pahlaviKönyv pahlaviFÅ‘niciaiPollard fonetikusFel" + + "iratos parthianRedzsangRongorongoRunikusSzamaritánSzaratiSzaurastraJelír" + + "ásShaw ábécéSzingalézSzundanézSylheti nagáriSzíriaiEstrangelo szíriaiNy" + + "ugat-szíriaiKelet-szíriaiTagbanwaTai LeÚj tai lueTamilTai vietTeluguTeng" + + "warBerberTagalogThaanaThaiTibetiUgariVaiLátható beszédÓperzsaÉkírásos su" + + "méro-akkádJiSzármaztatottMatematikai jelrendszerSzimbólumÃratlan nyelvek" + + " kódjaMeghatározatlanIsmeretlen írásrendszer" + +var huScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0014, 0x001c, 0x0025, + 0x002d, 0x002d, 0x002d, 0x0032, 0x003a, 0x004f, 0x0057, 0x005d, + 0x0066, 0x006e, 0x0073, 0x0079, 0x009b, 0x009f, 0x00a4, 0x00ab, + 0x00ab, 0x00af, 0x00b6, 0x00bc, 0x00d4, 0x00df, 0x00e6, 0x00e6, + 0x00f9, 0x010d, 0x0123, 0x0123, 0x0129, 0x0136, 0x013b, 0x0147, + 0x014b, 0x014b, 0x0152, 0x015d, 0x0164, 0x016a, 0x016d, 0x0174, + 0x018b, 0x019e, 0x019e, 0x01a4, 0x01ac, 0x01ac, 0x01b8, 0x01ce, + 0x01d6, 0x01db, 0x01e6, 0x01ec, 0x01f2, 0x01f2, 0x01fa, 0x0202, + // Entry 40 - 7F + 0x020c, 0x0211, 0x0211, 0x0218, 0x021e, 0x021e, 0x0224, 0x0229, + 0x022c, 0x0239, 0x0243, 0x0248, 0x024e, 0x0253, 0x025e, 0x0269, + 0x0269, 0x0269, 0x0270, 0x0277, 0x0277, 0x027d, 0x0286, 0x0297, + 0x0297, 0x0297, 0x02a1, 0x02ab, 0x02ab, 0x02b1, 0x02b5, 0x02b5, + 0x02c1, 0x02c1, 0x02c7, 0x02c7, 0x02c7, 0x02c7, 0x02cd, 0x02cd, + 0x02d2, 0x02da, 0x02df, 0x02e4, 0x02eb, 0x02eb, 0x02eb, 0x02f5, + 0x02fd, 0x030e, 0x031d, 0x032b, 0x0334, 0x0345, 0x0357, 0x035f, + 0x0369, 0x0370, 0x037b, 0x0382, 0x0382, 0x038c, 0x0395, 0x03a2, + // Entry 80 - BF + 0x03a2, 0x03a2, 0x03a2, 0x03ac, 0x03ac, 0x03b6, 0x03c5, 0x03cd, + 0x03e0, 0x03ef, 0x03fd, 0x0405, 0x0405, 0x040b, 0x0416, 0x041b, + 0x041b, 0x0423, 0x0429, 0x0430, 0x0436, 0x043d, 0x0443, 0x0447, + 0x044d, 0x044d, 0x0452, 0x0455, 0x0466, 0x0466, 0x0466, 0x046e, + 0x0488, 0x048a, 0x0498, 0x04af, 0x04af, 0x04b9, 0x04d0, 0x04e0, + 0x04f9, +} // Size: 362 bytes + +var hyScriptStr string = "" + // Size: 679 bytes + "Õ¡Ö€Õ¡Õ¢Õ¡Õ¯Õ¡Õ¶Õ°Õ¡ÕµÕ¯Õ¡Õ¯Õ¡Õ¶Õ¢Õ¥Õ¶Õ£Õ¡Õ¬Õ¡Õ¯Õ¡Õ¶Õ¢Õ¸ÕºÕ¸Õ´Õ¸Ö†Õ¸Õ¢Ö€Õ¡ÕµÕ¬Õ«Õ¯ÕµÕ¸Ö‚Ö€Õ¥Õ²Õ¡Õ£Õ«Ö€Õ¤Õ¥Õ¾Õ¡Õ¶Õ¡Õ£Õ¡Ö€Õ«Õ¥Õ©Õ¸Õ¾ÕºÕ¡Õ¯Õ¡Õ¶Õ¾Ö€" + + "Õ¡ÖÕ¡Õ¯Õ¡Õ¶Õ°Õ¸Ö‚Õ¶Õ¡Õ¯Õ¡Õ¶Õ£Õ¸Ö‚Õ»Õ¡Ö€Õ¡Õ©Õ«Õ£Õ¸Ö‚Ö€Õ´Õ¸Ö‚Õ­Õ«Õ°Õ¡Õ¶Õ£Õ¸Ö‚Õ¬Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶ÕºÕ¡Ö€Õ¦Õ¥ÖÕ¾Õ¡Õ® Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ¡Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¡" + + "Õ¶ Õ¹Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ¥Õ¢Ö€Õ¡ÕµÕ¡Õ¯Õ¡Õ¶Õ°Õ«Ö€Õ¡Õ£Õ¡Õ¶Õ¡Õ³Õ¡ÕºÕ¸Õ¶Õ¡Õ¯Õ¡Õ¶Õ¯Õ¡Õ¿Õ¡Õ¯Õ¡Õ¶Õ¡Ö„Õ´Õ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ¯Õ¡Õ¶Õ¶Õ¡Õ¤Õ¡Õ¯Õ¸Ö€Õ¥Õ¡Õ¯Õ¡Õ¶Õ¬Õ¡Õ¸Õ½Õ¡" + + "Õ¯Õ¡Õ¶Õ¬Õ¡Õ¿Õ«Õ¶Õ¡Õ¯Õ¡Õ¶Õ´Õ¡Õ¬Õ¡ÕµÕ¡Õ¬Õ¡Õ´Õ´Õ¸Õ¶Õ²Õ¸Õ¬Õ¡Õ¯Õ¡Õ¶Õ´ÕµÕ¡Õ¶Õ´Õ¡Ö€Õ¡Õ¯Õ¡Õ¶Ö…Ö€Õ«ÕµÕ¡Õ½Õ«Õ¶Õ°Õ¡Õ¬Õ¡Õ¯Õ¡Õ¶Õ©Õ¡Õ´Õ«Õ¬Õ¡Õ¯Õ¡Õ¶Õ©Õ¥Õ¬Õ¸Ö‚" + + "Õ£Õ¸Ö‚Õ©Õ¡Õ¡Õ¶Õ¡Õ©Õ¡ÕµÕ¡Õ¯Õ¡Õ¶Õ¿Õ«Õ¢Õ¥Õ©Õ¡Õ¯Õ¡Õ¶Õ¶Õ·Õ¡Õ¶Õ¶Õ¥Ö€Õ¹Õ£Ö€Õ¾Õ¡Õ®Õ¨Õ¶Õ¤Õ°Õ¡Õ¶Õ¸Ö‚Ö€Õ¡Õ¶Õ°Õ¡ÕµÕ¿ Õ£Õ«Ö€" + +var hyScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0034, 0x0034, 0x0044, 0x0044, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0066, 0x0066, 0x007a, 0x007a, 0x007a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x008c, 0x008c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x00ac, 0x00be, 0x00d0, 0x00de, 0x00ec, 0x00ec, + 0x010d, 0x012e, 0x012e, 0x0140, 0x0150, 0x0150, 0x0150, 0x0150, + 0x0150, 0x0150, 0x0150, 0x0150, 0x0162, 0x0162, 0x0162, 0x0172, + // Entry 40 - 7F + 0x0172, 0x0182, 0x0182, 0x0190, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01b0, 0x01b0, 0x01b0, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, 0x01c2, + 0x01c2, 0x01c2, 0x01c2, 0x01d4, 0x01d4, 0x01e8, 0x01e8, 0x01e8, + 0x01e8, 0x01e8, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, 0x01fe, + 0x01fe, 0x01fe, 0x01fe, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, + 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, + 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, + // Entry 80 - BF + 0x0208, 0x0208, 0x0208, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, + 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x021c, 0x022e, + 0x022e, 0x022e, 0x023e, 0x023e, 0x023e, 0x023e, 0x0248, 0x0256, + 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, + 0x0268, 0x0268, 0x0268, 0x0268, 0x0268, 0x0276, 0x0282, 0x0294, + 0x02a7, +} // Size: 362 bytes + +var idScriptStr string = "" + // Size: 1396 bytes + "AfakaAlbania KaukasiaArabAram ImperialArmeniaAvestaBaliBamumBassa VahBat" + + "akBengaliBlissymbolBopomofoBrahmiBrailleBugisBuhidChakmaSimbol Aborigin " + + "Kanada KesatuanKariaChamCherokeeCirthKoptikSiprusSirilikGereja Slavonia " + + "Sirilik LamaDevanagariDeseretStenografi DuployanDemotik MesirHieratik Me" + + "sirHieroglip MesirEtiopiaGeorgian KhutsuriGeorgiaGlagoliticGothicGrantha" + + "YunaniGujaratiGurmukhiHangulHanHanunooHan SederhanaHan TradisionalIbrani" + + "HiraganaHieroglif AnatoliaPahawh HmongKatakana atau HiraganaHungaria Kun" + + "oIndusItalia LamaJawaJepangJurchenKayah LiKatakanaKharoshthiKhmerKhojkiK" + + "annadaKoreaKpelleKaithiLannaLaosLatin FrakturLatin GaelikLatinLepchaLimb" + + "uLinear ALinear BLisuLomaLyciaLydiaMandaeManikheiHieroglip MayaMendeKurs" + + "if MeroitikMeroitikMalayalamModiMongoliaMoonMroMeitei MayekMyanmarArab U" + + "tara KunoNabataeaNaxi GebaN’KoNushuOghamChiki LamaOrkhonOriyaOsmanyaPalm" + + "iraPermik KunoPhags-paPahleviMazmur PahleviKitab PahleviPhoenixFonetik P" + + "ollardPrasasti ParthiaRejangRongorongoRunikSamariaSaratiArab Selatan Kun" + + "oSaurashtraTulisan IsyaratShaviaSharadaSiddhamKhudawadiSinhalaSora Sompe" + + "ngSundaSyloti NagriSuriahSuriah EstrangeloSuriah BaratSuriah TimurTagban" + + "waTakriTai LeTai Lue BaruTamilTangutTai VietTeluguTenghwarTifinaghTagalo" + + "gThaanaThaiTibetTirhutaUgaritikVaiUcapan TerlihatVarang KshitiWoleaiPers" + + "ia KunoCuneiform Sumero-AkkadiaYiWarisanNotasi MatematikaSimbolTidak Ter" + + "tulisUmumSkrip Tak Dikenal" + +var idScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0015, 0x0015, 0x0019, 0x0026, 0x002d, 0x0033, + 0x0037, 0x003c, 0x0045, 0x004a, 0x0051, 0x005b, 0x0063, 0x0069, + 0x0070, 0x0075, 0x007a, 0x0080, 0x009f, 0x00a4, 0x00a8, 0x00b0, + 0x00b5, 0x00bb, 0x00c1, 0x00c8, 0x00e4, 0x00ee, 0x00f5, 0x0108, + 0x0115, 0x0123, 0x0132, 0x0132, 0x0139, 0x014a, 0x0151, 0x015b, + 0x0161, 0x0168, 0x016e, 0x0176, 0x017e, 0x0184, 0x0187, 0x018e, + 0x019b, 0x01aa, 0x01aa, 0x01b0, 0x01b8, 0x01ca, 0x01d6, 0x01ec, + 0x01f9, 0x01fe, 0x0209, 0x020d, 0x0213, 0x021a, 0x0222, 0x022a, + // Entry 40 - 7F + 0x0234, 0x0239, 0x023f, 0x0246, 0x024b, 0x0251, 0x0257, 0x025c, + 0x0260, 0x026d, 0x0279, 0x027e, 0x0284, 0x0289, 0x0291, 0x0299, + 0x029d, 0x02a1, 0x02a6, 0x02ab, 0x02ab, 0x02b1, 0x02b9, 0x02c7, + 0x02cc, 0x02db, 0x02e3, 0x02ec, 0x02f0, 0x02f8, 0x02fc, 0x02ff, + 0x030b, 0x030b, 0x0312, 0x0321, 0x0329, 0x0332, 0x0338, 0x033d, + 0x0342, 0x034c, 0x0352, 0x0357, 0x035e, 0x0365, 0x0365, 0x0370, + 0x0378, 0x037f, 0x038d, 0x039a, 0x03a1, 0x03b0, 0x03c0, 0x03c6, + 0x03d0, 0x03d5, 0x03dc, 0x03e2, 0x03f3, 0x03fd, 0x040c, 0x0412, + // Entry 80 - BF + 0x0419, 0x0420, 0x0429, 0x0430, 0x043c, 0x0441, 0x044d, 0x0453, + 0x0464, 0x0470, 0x047c, 0x0484, 0x0489, 0x048f, 0x049b, 0x04a0, + 0x04a6, 0x04ae, 0x04b4, 0x04bc, 0x04c4, 0x04cb, 0x04d1, 0x04d5, + 0x04da, 0x04e1, 0x04e9, 0x04ec, 0x04fb, 0x0508, 0x050e, 0x0519, + 0x0531, 0x0533, 0x053a, 0x054b, 0x054b, 0x0551, 0x055f, 0x0563, + 0x0574, +} // Size: 362 bytes + +var isScriptStr string = "" + // Size: 363 bytes + "arabísktarmensktbengalsktbopomofoblindraleturkyrillísktdevanagarieþíópís" + + "ktgeorgísktgrísktgújaratígurmukhihangulkínverskteinfaldað hanhefðbundið " + + "hanhebreskthiraganakatakana eða hiraganajapansktkatakanakmerkannadakóres" + + "ktlaolatnesktmalalajammongólsktmjanmarsktoriyasinhalatamílskttelúgúthaan" + + "ataílenskttíbeskttáknóskrifaðalmenntóþekkt letur" + +var isScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x001a, 0x001a, 0x0022, 0x0022, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x002e, 0x002e, 0x002e, 0x0039, 0x0039, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0050, 0x0050, 0x005a, 0x005a, + 0x005a, 0x005a, 0x0061, 0x006b, 0x0073, 0x0079, 0x0083, 0x0083, + 0x0091, 0x00a1, 0x00a1, 0x00a9, 0x00b1, 0x00b1, 0x00b1, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00cf, 0x00cf, 0x00cf, 0x00d7, + // Entry 40 - 7F + 0x00d7, 0x00db, 0x00db, 0x00e2, 0x00ea, 0x00ea, 0x00ea, 0x00ea, + 0x00ed, 0x00ed, 0x00ed, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, + 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, + 0x00f5, 0x00f5, 0x00f5, 0x00fe, 0x00fe, 0x0108, 0x0108, 0x0108, + 0x0108, 0x0108, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x0112, 0x0112, 0x0112, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + // Entry 80 - BF + 0x0117, 0x0117, 0x0117, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, + 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x011e, 0x0127, + 0x0127, 0x0127, 0x012f, 0x012f, 0x012f, 0x012f, 0x0135, 0x013f, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, + 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x014c, 0x0156, 0x015d, + 0x016b, +} // Size: 362 bytes + +var itScriptStr string = "" + // Size: 1562 bytes + "afakaaraboaramaico imperialearmenoavesticobalinesebamumBassa Vahbatakben" + + "galesesimboli blissbopomofobrahmibraillebuginesebuhidchakmasimboli abori" + + "geni canadesi unificaticarianchamcherokeecirthcoptocipriotacirillicociri" + + "llico antica chiesa slavonicadevanagarideseretstenografia duployanegizia" + + "no demoticoieratico egizianogeroglifici egizianietiopekutsurigeorgianogl" + + "agoliticogoticogranthagrecogujaratigurmukhihangulhanhanunoohan semplific" + + "atohan tradizionaleebraicohiraganageroglifici anatolicipahawn hmongkatan" + + "aka o hiraganaantico unghereseinduitalico anticojavanesegiapponesejurche" + + "nkayah likatakanakharoshthikhmerkhojkikannadacoreanoKpellekaithilannalao" + + "variante fraktur del latinovariante gaelica del latinolatinolepchalimbul" + + "ineare Alineare Blisulomalycilydimandaicomanicheogeroglifici mayamendeco" + + "rsivo meroiticomeroiticomalayalammongolomoonmromeetei mayekbirmanoarabo " + + "settentrionale anticonabateogeba naxin’konushuoghamol chikiorkhonoriyaos" + + "manyapalmirenopermico anticophags-papahlavi delle iscrizionipahlavi psal" + + "terpahlavi bookfeniciofonetica di pollardpartico delle iscrizionirejangr" + + "ongorongorunicosamaritanosaratiarabo meridionale anticosaurashtralinguag" + + "gio dei segnishavianosharadakhudawadisingalesesora sompengsundanesesylot" + + "i nagrisirianosiriaco estrangelosiriaco occidentalesiriaco orientaletagb" + + "anwatakritai letai luetamiltanguttai viettelugutengwartifinaghtagalogtha" + + "anathailandesetibetanotirhutaugaritavaiialfabeto visivovarang kshitiwole" + + "aipersiano anticosumero-accadiano cuneiformeyiereditatonotazione matemat" + + "icasimbolinon scrittocomunescrittura sconosciuta" + +var itScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0005, 0x0005, 0x000a, 0x001c, 0x0022, 0x002a, + 0x0032, 0x0037, 0x0040, 0x0045, 0x004e, 0x005b, 0x0063, 0x0069, + 0x0070, 0x0078, 0x007d, 0x0083, 0x00a7, 0x00ad, 0x00b1, 0x00b9, + 0x00be, 0x00c3, 0x00cb, 0x00d4, 0x00f5, 0x00ff, 0x0106, 0x011a, + 0x012b, 0x013c, 0x0150, 0x0150, 0x0156, 0x015d, 0x0166, 0x0171, + 0x0177, 0x017e, 0x0183, 0x018b, 0x0193, 0x0199, 0x019c, 0x01a3, + 0x01b3, 0x01c3, 0x01c3, 0x01ca, 0x01d2, 0x01e7, 0x01f3, 0x0206, + 0x0216, 0x021a, 0x0228, 0x0230, 0x023a, 0x0241, 0x0249, 0x0251, + // Entry 40 - 7F + 0x025b, 0x0260, 0x0266, 0x026d, 0x0274, 0x027a, 0x0280, 0x0285, + 0x0288, 0x02a3, 0x02be, 0x02c4, 0x02ca, 0x02cf, 0x02d8, 0x02e1, + 0x02e5, 0x02e9, 0x02ed, 0x02f1, 0x02f1, 0x02f9, 0x0301, 0x0311, + 0x0316, 0x0327, 0x0330, 0x0339, 0x0339, 0x0340, 0x0344, 0x0347, + 0x0353, 0x0353, 0x035a, 0x0375, 0x037c, 0x0385, 0x038b, 0x0390, + 0x0395, 0x039d, 0x03a3, 0x03a8, 0x03af, 0x03b8, 0x03b8, 0x03c6, + 0x03ce, 0x03e6, 0x03f5, 0x0401, 0x0408, 0x041b, 0x0433, 0x0439, + 0x0443, 0x0449, 0x0453, 0x0459, 0x0471, 0x047b, 0x048f, 0x0497, + // Entry 80 - BF + 0x049e, 0x049e, 0x04a7, 0x04b0, 0x04bc, 0x04c5, 0x04d1, 0x04d8, + 0x04ea, 0x04fd, 0x050e, 0x0516, 0x051b, 0x0521, 0x0528, 0x052d, + 0x0533, 0x053b, 0x0541, 0x0548, 0x0550, 0x0557, 0x055d, 0x0568, + 0x0570, 0x0577, 0x057e, 0x0582, 0x0591, 0x059e, 0x05a4, 0x05b3, + 0x05ce, 0x05d0, 0x05d9, 0x05ed, 0x05ed, 0x05f4, 0x05ff, 0x0605, + 0x061a, +} // Size: 362 bytes + +var jaScriptStr string = "" + // Size: 3253 bytes + "アファカ文字カフカス・アルãƒãƒ‹ã‚¢æ–‡å­—アラビア文字å¸å›½ã‚¢ãƒ©ãƒ æ–‡å­—アルメニア文字アヴェスター文字ãƒãƒªæ–‡å­—ãƒãƒ ãƒ³æ–‡å­—ãƒã‚µæ–‡å­—ãƒã‚¿ã‚¯æ–‡å­—ベンガル文字ブリ" + + "スシンボル注音字æ¯ãƒ–ラーフミー文字ブライユ点字ブギス文字ブヒッド文字ãƒãƒ£ã‚¯ãƒžæ–‡å­—çµ±åˆã‚«ãƒŠãƒ€å…ˆä½æ°‘音節文字カリア文字ãƒãƒ£ãƒ æ–‡å­—ãƒã‚§ãƒ­ã‚­ãƒ¼æ–‡å­—ã‚­" + + "アス文字コプト文字キプロス文字キリル文字å¤ä»£æ•™ä¼šã‚¹ãƒ©ãƒ–語キリル文字デーãƒãƒŠãƒ¼ã‚¬ãƒªãƒ¼æ–‡å­—デセレット文字デュプロワエå¼é€Ÿè¨˜ã‚¨ã‚¸ãƒ—ト民衆文字エジプ" + + "ト神官文字エジプトè–刻文字エルãƒã‚µãƒ³æ–‡å­—エãƒã‚ªãƒ”ア文字ジョージア文字(フツリ)ジョージア文字グラゴル文字ゴート文字グランタ文字ギリシャ文字グ" + + "ジャラート文字グルムキー文字ãƒãƒ³ã‚°ãƒ«æ¼¢å­—ãƒãƒŒãƒŽã‚ªæ–‡å­—漢字(簡体字)漢字(ç¹ä½“å­—)ヘブライ文字ã²ã‚‰ãŒãªã‚¢ãƒŠãƒˆãƒªã‚¢è±¡å½¢æ–‡å­—パãƒã‚¦ãƒ»ãƒ•ãƒ¢ãƒ³æ–‡å­—ä»®å" + + "å¤ä»£ãƒãƒ³ã‚¬ãƒªãƒ¼æ–‡å­—インダス文字å¤ã‚¤ã‚¿ãƒªã‚¢æ–‡å­—ジャワ文字日本語ã®æ–‡å­—女真文字カヤー文字カタカナカローシュティー文字クメール文字ホジャ文字カンナ" + + "ダ文字韓国語ã®æ–‡å­—クペレ文字カイティ文字ラーンナー文字ラオ文字ラテン文字(ドイツ文字)ラテン文字 (ゲール文字)ラテン文字レプãƒãƒ£æ–‡å­—リンブ" + + "文字線文字A線文字Bフレイザー文字ロマ文字リキア文字リディア文字マãƒãƒ¼ã‚¸ãƒ£ãƒ‹ãƒ¼æ–‡å­—マンダ文字マニ文字マヤ象形文字メンデ文字メロエ文字è‰æ›¸ä½“メ" + + "ロエ文字マラヤーラム文字モーディー文字モンゴル文字ムーン文字ムロ文字メイテイ文字ミャンマー文字å¤ä»£åŒ—アラビア文字ナãƒãƒ†ã‚¢æ–‡å­—ナシæ—ゲãƒæ–‡å­—ン" + + "コ文字女書オガム文字オルãƒã‚­æ–‡å­—オルホン文字オリヤー文字オスマニア文字パルミラ文字パウ・ãƒãƒ³ãƒ»ãƒã‚¦æ–‡å­—å¤ãºãƒ«ãƒ æ–‡å­—パスパ文字碑文パフラヴィー" + + "文字詩編用パフラヴィー文字書物用パフラヴィー文字フェニキア文字ãƒãƒ©ãƒ¼ãƒ‰éŸ³å£°è¨˜å·ç¢‘文パルティア文字ルジャン文字ロンゴロンゴ文字ルーン文字サマリ" + + "ア文字サラティ文字å¤ä»£å—アラビア文字サウラーシュトラ文字手話文字ショー文字シャーラダー文字梵字クダワディ文字シンãƒãƒ©æ–‡å­—ソラング・ソンペング" + + "文字スンダ文字シロティ・ナグリ文字シリア文字シリア文字(エストランゲロ文字)シリア文字(西方シリア文字)シリア文字(æ±æ–¹ã‚·ãƒªã‚¢æ–‡å­—)ã‚¿ã‚°ãƒãƒ³" + + "ワ文字タークリー文字タイ・レ文字新タイ・ルー文字タミール文字西å¤æ–‡å­—タイ・ヴェト文字テルグ文字テングワール文字ティフナグ文字タガログ文字ター" + + "ナ文字タイ文字ãƒãƒ™ãƒƒãƒˆæ–‡å­—ティルフータ文字ウガリット文字ヴァイ文字視話法ãƒãƒ©ãƒ³ãƒ»ã‚¯ã‚·ãƒ†ã‚£æ–‡å­—ウォレアイ文字å¤ä»£ãƒšãƒ«ã‚·ã‚¢æ–‡å­—シュメールï¼ã‚¢ãƒƒã‚«" + + "ド語楔形文字イ文字基底文字ã®ç¨®åˆ¥ã‚’継承ã™ã‚‹çµåˆæ–‡å­—数学記å·è¨˜å·æ–‡å­—éžè¡¨è¨˜å…±é€šæ–‡å­—未定義文字" + +var jaScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0036, 0x0036, 0x0048, 0x005d, 0x0072, 0x008a, + 0x0096, 0x00a5, 0x00b1, 0x00c0, 0x00d2, 0x00e7, 0x00f3, 0x010b, + 0x011d, 0x012c, 0x013e, 0x0150, 0x0174, 0x0183, 0x0192, 0x01a7, + 0x01b6, 0x01c5, 0x01d7, 0x01e6, 0x020d, 0x022b, 0x0240, 0x025b, + 0x0273, 0x028b, 0x02a3, 0x02b8, 0x02cd, 0x02ed, 0x0302, 0x0314, + 0x0323, 0x0335, 0x0347, 0x035f, 0x0374, 0x0380, 0x0386, 0x0398, + 0x03a9, 0x03ba, 0x03ba, 0x03cc, 0x03d8, 0x03f3, 0x040e, 0x0414, + 0x042f, 0x0441, 0x0456, 0x0465, 0x0477, 0x0483, 0x0492, 0x049e, + // Entry 40 - 7F + 0x04bc, 0x04ce, 0x04dd, 0x04ef, 0x0501, 0x0510, 0x0522, 0x0537, + 0x0543, 0x0563, 0x0584, 0x0593, 0x05a5, 0x05b4, 0x05be, 0x05c8, + 0x05dd, 0x05e9, 0x05f8, 0x060a, 0x0625, 0x0634, 0x0640, 0x0652, + 0x0661, 0x0679, 0x0688, 0x06a0, 0x06b5, 0x06c7, 0x06d6, 0x06e2, + 0x06f4, 0x06f4, 0x0709, 0x0724, 0x0736, 0x074b, 0x0757, 0x075d, + 0x076c, 0x077e, 0x0790, 0x07a2, 0x07b7, 0x07c9, 0x07e7, 0x07f9, + 0x0808, 0x0826, 0x0847, 0x0868, 0x087d, 0x0895, 0x08b0, 0x08c2, + 0x08da, 0x08e9, 0x08fb, 0x090d, 0x0928, 0x0946, 0x0952, 0x0961, + // Entry 80 - BF + 0x0979, 0x097f, 0x0994, 0x09a6, 0x09ca, 0x09d9, 0x09f7, 0x0a06, + 0x0a32, 0x0a58, 0x0a7e, 0x0a93, 0x0aa8, 0x0aba, 0x0ad2, 0x0ae4, + 0x0af0, 0x0b08, 0x0b17, 0x0b2f, 0x0b44, 0x0b56, 0x0b65, 0x0b71, + 0x0b83, 0x0b9b, 0x0bb0, 0x0bbf, 0x0bc8, 0x0be6, 0x0bfb, 0x0c13, + 0x0c40, 0x0c49, 0x0c79, 0x0c85, 0x0c85, 0x0c91, 0x0c9a, 0x0ca6, + 0x0cb5, +} // Size: 362 bytes + +var kaScriptStr string = "" + // Size: 4008 bytes + "áƒáƒ¤áƒáƒ™áƒáƒáƒ áƒáƒ‘ულიიმპერიული áƒáƒ áƒáƒ›áƒ”ულისáƒáƒ›áƒ®áƒ£áƒ áƒ˜áƒáƒ•áƒ”სტურიბáƒáƒšáƒ˜áƒ£áƒ áƒ˜áƒ‘áƒáƒ›áƒ£áƒ›áƒ˜áƒ‘áƒáƒ¡áƒ ვáƒáƒ°áƒ˜áƒ‘áƒáƒ¢áƒáƒ™" + + "იბენგáƒáƒšáƒ£áƒ áƒ˜áƒ‘ლისსიმბáƒáƒšáƒáƒ”ბიბáƒáƒžáƒáƒ›áƒáƒ¤áƒáƒ‘რáƒáƒ°áƒ›áƒ˜áƒ‘რáƒáƒ˜áƒšáƒ˜áƒ‘უჰიდიჩáƒáƒ™áƒ›áƒáƒ™áƒáƒ áƒ˜áƒ£áƒšáƒ˜áƒ©áƒáƒ›áƒ˜áƒ©áƒ”რáƒ" + + "კიკირთიკáƒáƒžáƒ¢áƒ£áƒ áƒ˜áƒ™áƒ•áƒ˜áƒžáƒ áƒáƒ¡áƒ£áƒšáƒ˜áƒ™áƒ˜áƒ áƒ˜áƒšáƒ˜áƒªáƒáƒ«áƒ•áƒ”ლი სლáƒáƒ•áƒ£áƒ áƒ˜ კირილიცáƒáƒ“ევáƒáƒœáƒáƒ’áƒáƒ áƒ˜áƒ“ეზერე" + + "ტისდუპლáƒáƒ˜áƒ¡ სტენáƒáƒ’რáƒáƒ¤áƒ˜áƒáƒ”გვიპტური დემáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜áƒ”გვიპტური იერáƒáƒ¢áƒ˜áƒ™áƒ£áƒšáƒ˜áƒ”გვიპტურ" + + "ი იერáƒáƒ’ლიფურიეთიáƒáƒžáƒ˜áƒ£áƒ áƒ˜áƒ®áƒ£áƒªáƒ£áƒ áƒ˜áƒ¥áƒáƒ áƒ—ულიგლáƒáƒ’áƒáƒšáƒ˜áƒªáƒáƒ’áƒáƒ—ურიგრáƒáƒœáƒ—áƒáƒ‘ერძნულიგუჯáƒáƒ áƒ" + + "თულიგურმუხიჰáƒáƒœáƒ’ულიჰáƒáƒœáƒ˜áƒ°áƒáƒœáƒ£áƒœáƒáƒáƒ’áƒáƒ›áƒáƒ áƒ¢áƒ˜áƒ•áƒ”ბული ჰáƒáƒœáƒ˜áƒ¢áƒ áƒáƒ“იციული ჰáƒáƒœáƒ˜áƒ”ბრáƒáƒ£áƒšáƒ˜áƒ°" + + "ირáƒáƒ’áƒáƒœáƒáƒáƒœáƒáƒ¢áƒáƒšáƒ˜áƒ£áƒ áƒ˜ იერáƒáƒ’ლიფურიფáƒáƒ°áƒáƒ£-მáƒáƒœáƒ˜áƒ˜áƒáƒžáƒáƒœáƒ£áƒ áƒ˜ კáƒáƒœáƒáƒ«áƒ•áƒ”ლი უნგრულიიáƒáƒ•áƒ£áƒ " + + "იიáƒáƒžáƒáƒœáƒ£áƒ áƒ˜áƒ¯áƒ£áƒ áƒ¯áƒ”ნულიკáƒáƒ˜áƒáƒ°-ლიკáƒáƒ¢áƒáƒ™áƒáƒœáƒáƒ¥áƒáƒ áƒáƒ¨áƒ—იქმერულიქáƒáƒ¯áƒ™áƒ˜áƒ™áƒáƒœáƒáƒ“áƒáƒ™áƒáƒ áƒ”ულიკპელ" + + "ეკáƒáƒ˜áƒ—ილáƒáƒáƒ¡áƒ£áƒ áƒ˜áƒ’ელური ლáƒáƒ—ინურილáƒáƒ—ინურილიმბუA-ხáƒáƒ–áƒáƒ•áƒáƒœáƒ˜B-ხáƒáƒ–áƒáƒ•áƒáƒœáƒ˜áƒšáƒáƒ›áƒáƒšáƒ˜áƒ™áƒ˜áƒ£" + + "რილიდიურიმáƒáƒœáƒ“ეურიმáƒáƒœáƒ˜áƒ¥áƒ”ურიმáƒáƒ˜áƒáƒ¡ იერáƒáƒ’ლიფებიმენდემერáƒáƒ˜áƒ¢áƒ£áƒšáƒ˜ კურსივიმერáƒáƒ˜" + + "ტულიმáƒáƒšáƒáƒ˜áƒáƒšáƒáƒ›áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ¦áƒáƒšáƒ£áƒ áƒ˜áƒ›áƒ áƒáƒ›áƒ˜áƒáƒœáƒ›áƒ£áƒ áƒ˜áƒ«áƒ•áƒ”ლი ჩრდილáƒáƒ”თ-áƒáƒ áƒáƒ‘ულინáƒáƒ‘áƒáƒ¢áƒ”ურინკáƒ" + + "ნუშუáƒáƒ¦áƒáƒ›áƒ˜áƒáƒš-ჩიკიáƒáƒ áƒ®áƒáƒœáƒ£áƒšáƒ˜áƒáƒ áƒ˜áƒáƒáƒ¡áƒ›áƒáƒœáƒ˜áƒáƒžáƒáƒšáƒ›áƒ˜áƒ áƒ£áƒšáƒ˜áƒ«áƒ•áƒ”ლი პერმულიფáƒáƒ’სპáƒáƒ›áƒáƒœáƒ£áƒ›áƒ”ნ" + + "ტური ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¤áƒ¡áƒáƒšáƒ›áƒ£áƒœáƒ£áƒ áƒ˜ ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¬áƒ˜áƒ’ნური ფáƒáƒšáƒáƒ£áƒ áƒ˜áƒ¤áƒ˜áƒœáƒ˜áƒ™áƒ˜áƒ£áƒ áƒ˜áƒ›áƒáƒœáƒ£áƒ›áƒ”ნტური პáƒáƒ áƒ—" + + "ულირეჯáƒáƒœáƒ’ირáƒáƒœáƒ’áƒáƒ áƒáƒœáƒ’áƒáƒ áƒ£áƒœáƒ£áƒšáƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ˜áƒ£áƒšáƒ˜áƒ¡áƒáƒ áƒáƒ¢áƒ˜áƒ«áƒ•áƒ”ლი სáƒáƒ›áƒ®áƒ áƒ”თ-áƒáƒ áƒáƒ‘ულისáƒáƒ£áƒ áƒáƒ¨áƒ¢áƒ " + + "áƒáƒŸáƒ”სტთáƒáƒ¨áƒáƒ áƒáƒ“áƒáƒ¥áƒ£áƒ“áƒáƒ•áƒáƒ“ისინჰáƒáƒšáƒ£áƒ áƒ˜áƒ¡áƒáƒ áƒáƒœ-სáƒáƒ›áƒžáƒ”ნისუნდáƒáƒœáƒ£áƒ áƒ˜áƒ¡áƒ˜áƒšáƒáƒ¢áƒ˜ ნáƒáƒ’რისირიულ" + + "ისირიული ესტრáƒáƒœáƒ’ელáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი სირიულიáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი სირიულიტáƒáƒ’ბáƒáƒœáƒ•áƒáƒ¢áƒáƒ™áƒ áƒ˜áƒ¢áƒ" + + "ი ლეáƒáƒ®áƒáƒšáƒ˜ ტáƒáƒ˜ ლიუტáƒáƒ›áƒ˜áƒšáƒ£áƒ áƒ˜áƒ¢áƒáƒœáƒ¦áƒ£áƒ¢áƒ£áƒ áƒ˜áƒ¢áƒáƒ˜-ვიეტიტელუგუტენგვáƒáƒ áƒ˜áƒ¢áƒ˜áƒ¤áƒ˜áƒœáƒáƒ¦áƒ˜áƒ—áƒáƒáƒœáƒ" + + "ტáƒáƒ˜áƒ¢áƒ˜áƒ‘ეტურიტირჰუტáƒáƒ£áƒ’áƒáƒ áƒ˜áƒ—ულივáƒáƒ˜áƒ®áƒ˜áƒšáƒ£áƒšáƒ˜ მეტყველებáƒáƒ•áƒáƒ áƒáƒœáƒ’-კშიტივáƒáƒšáƒ”áƒáƒ˜áƒ«áƒ•áƒ”ლი" + + " სპáƒáƒ áƒ¡áƒ£áƒšáƒ˜áƒ¨áƒ£áƒ›áƒ”რულ-áƒáƒ¥áƒáƒ“ური ლურსმნულიგáƒáƒ“áƒáƒ¦áƒ”ბულიმáƒáƒ—ემáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ ნáƒáƒ¢áƒáƒªáƒ˜áƒáƒ¡áƒ˜áƒ›áƒ‘áƒáƒšáƒáƒ”" + + "ბიუმწერლáƒáƒ‘áƒáƒ–áƒáƒ’áƒáƒ“იუცნáƒáƒ‘ი დáƒáƒ›áƒ¬áƒ”რლáƒáƒ‘áƒ" + +var kaScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x000f, 0x000f, 0x0024, 0x0058, 0x006d, 0x0085, + 0x009a, 0x00ac, 0x00c5, 0x00d7, 0x00f2, 0x011c, 0x0134, 0x0146, + 0x0158, 0x0158, 0x016a, 0x0179, 0x0179, 0x018e, 0x019a, 0x01ac, + 0x01bb, 0x01d0, 0x01ee, 0x0206, 0x0244, 0x0262, 0x027d, 0x02b4, + 0x02ee, 0x0328, 0x0365, 0x0365, 0x0380, 0x0392, 0x03a7, 0x03c2, + 0x03d4, 0x03e6, 0x03fe, 0x041c, 0x0431, 0x0446, 0x0452, 0x0467, + 0x049b, 0x04c6, 0x04c6, 0x04db, 0x04f3, 0x0533, 0x054f, 0x0574, + 0x0599, 0x0599, 0x0599, 0x05ab, 0x05c3, 0x05de, 0x05f4, 0x060c, + // Entry 40 - 7F + 0x0621, 0x0636, 0x0645, 0x0657, 0x066c, 0x067b, 0x068a, 0x068a, + 0x069f, 0x069f, 0x06ca, 0x06e2, 0x06e2, 0x06f1, 0x070b, 0x0725, + 0x0725, 0x0731, 0x0746, 0x075b, 0x075b, 0x0773, 0x078e, 0x07bf, + 0x07ce, 0x07ff, 0x081a, 0x083e, 0x083e, 0x0859, 0x0859, 0x0862, + 0x0862, 0x0862, 0x087a, 0x08b8, 0x08d3, 0x08d3, 0x08dc, 0x08e8, + 0x08f7, 0x090a, 0x0922, 0x092e, 0x0943, 0x095e, 0x095e, 0x0983, + 0x0995, 0x09cc, 0x0a00, 0x0a2b, 0x0a46, 0x0a46, 0x0a7d, 0x0a92, + 0x0ab0, 0x0ac2, 0x0add, 0x0aef, 0x0b2a, 0x0b45, 0x0b57, 0x0b57, + // Entry 80 - BF + 0x0b69, 0x0b69, 0x0b81, 0x0b9c, 0x0bc1, 0x0bdc, 0x0bfe, 0x0c13, + 0x0c47, 0x0c78, 0x0caf, 0x0cc7, 0x0cd6, 0x0ce6, 0x0d09, 0x0d21, + 0x0d3c, 0x0d55, 0x0d67, 0x0d7f, 0x0d97, 0x0d97, 0x0da6, 0x0daf, + 0x0dc7, 0x0ddc, 0x0df7, 0x0e00, 0x0e31, 0x0e53, 0x0e65, 0x0e8d, + 0x0ed4, 0x0ed4, 0x0ef2, 0x0f2c, 0x0f2c, 0x0f4a, 0x0f65, 0x0f77, + 0x0fa8, +} // Size: 362 bytes + +var kkScriptStr string = "" + // Size: 918 bytes + "араб жазуыармÑн жазуыбенгал жазуыбопомофо жазуБрайль жазуыкирилл жазуыде" + + "ванагари жазуыÑфиоп жазугрузин жазуыгрек жазуыгуджарати жазуыгурмукхи ж" + + "азуыхангул жазуықытай жазуыжеңілдетілген қытай иероглифыдәÑтүрлі қытай " + + "иероглифыиврит жазуыхирагана жазуыжапон жазуыкатакана жазуыкхмер жазуык" + + "аннада жазуыкорей Ð¶Ð°Ð·ÑƒÑ‹Ð»Ð°Ð¾Ñ Ð¶Ð°Ð·ÑƒÑ‹Ð»Ð°Ñ‚Ñ‹Ð½ жазуымалаÑлам жазуымоңғол жазуым" + + "ÑŒÑнма Ð¶Ð°Ð·ÑƒÑ‹Ð¾Ñ€Ð¸Ñ Ð¶Ð°Ð·ÑƒÑ‹Ñингаль жазуытамиль жазуытелугу жазуытаана жазуыта" + + "й жазуытибет жазуытаңбаларжазуÑызжалпыбелгіÑіз жазу" + +var kkScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0013, 0x0013, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x003f, 0x003f, 0x0058, 0x0058, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, + 0x006f, 0x006f, 0x006f, 0x0086, 0x0086, 0x00a5, 0x00a5, 0x00a5, + 0x00a5, 0x00a5, 0x00a5, 0x00a5, 0x00b8, 0x00b8, 0x00cf, 0x00cf, + 0x00cf, 0x00cf, 0x00e2, 0x00ff, 0x011a, 0x0131, 0x0146, 0x0146, + 0x017e, 0x01ac, 0x01ac, 0x01c1, 0x01dc, 0x01dc, 0x01dc, 0x01dc, + 0x01dc, 0x01dc, 0x01dc, 0x01dc, 0x01f1, 0x01f1, 0x01f1, 0x020c, + // Entry 40 - 7F + 0x020c, 0x0221, 0x0221, 0x023a, 0x024f, 0x024f, 0x024f, 0x024f, + 0x0262, 0x0262, 0x0262, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, + 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, 0x0277, + 0x0277, 0x0277, 0x0277, 0x0292, 0x0292, 0x02a9, 0x02a9, 0x02a9, + 0x02a9, 0x02a9, 0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c0, 0x02c0, + 0x02c0, 0x02c0, 0x02c0, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, + 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, + 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, 0x02d3, + // Entry 80 - BF + 0x02d3, 0x02d3, 0x02d3, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, + 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x0303, + 0x0303, 0x0303, 0x031a, 0x031a, 0x031a, 0x031a, 0x032f, 0x0340, + 0x0355, 0x0355, 0x0355, 0x0355, 0x0355, 0x0355, 0x0355, 0x0355, + 0x0355, 0x0355, 0x0355, 0x0355, 0x0355, 0x0365, 0x0373, 0x037d, + 0x0396, +} // Size: 362 bytes + +var kmScriptStr string = "" + // Size: 957 bytes + "អារ៉ាប់អាម៉ានីបង់ក្លាដែសបូផូម៉ូហ្វូអក្សរ\u200bសម្រាប់មនុស្ស\u200bពិការ" + + "\u200bភ្នែកស៊ីរីលីកដាវ៉ាន់ណាការិអáŸážáŸ’យូពីហ្សកហ្ស៊ីក្រិចគូចារ៉ាទីកុមុយឃីហា" + + "ំងកុលហានអក្សរ\u200bហាន\u200bកាážáŸ‹áž¢áž€áŸ’សរ\u200bហាន\u200báž–áŸáž‰áž¢áŸŠáž¸ážŸáŸ’រាអែលហ៊ីរ៉" + + "ាកាណាជប៉ុនកាážáž¶áž€áž¶ážŽáž¶ážáŸ’មែរកន្នដកូរ៉áŸáž¡áž¶ážœáž¡áž¶ážáž¶áŸ†áž„មលយាលáŸáž˜áž˜áŸ‰áž»áž„ហ្គោលីភូមាអូរីយ៉ា" + + "ស៊ីនហាឡាážáž¶áž˜áž¸áž›ážáŸáž›áž»áž‚áž»ážáž¶ážŽáž¶ážáŸƒáž‘ីបáŸáž“ិមិážáŸ’ážážŸáž‰áŸ’ញាគ្មានការសរសáŸážšáž‘ូទៅអក្សរមិនស្គា" + + "ល់" + +var kmScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0015, 0x0015, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x0048, 0x0048, 0x0069, 0x0069, + 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, 0x00c6, + 0x00c6, 0x00c6, 0x00c6, 0x00de, 0x00de, 0x0105, 0x0105, 0x0105, + 0x0105, 0x0105, 0x0105, 0x0105, 0x011d, 0x011d, 0x0138, 0x0138, + 0x0138, 0x0138, 0x0147, 0x0162, 0x0177, 0x018c, 0x0195, 0x0195, + 0x01bf, 0x01e6, 0x01e6, 0x0204, 0x0222, 0x0222, 0x0222, 0x0222, + 0x0222, 0x0222, 0x0222, 0x0222, 0x0231, 0x0231, 0x0231, 0x0249, + // Entry 40 - 7F + 0x0249, 0x0258, 0x0258, 0x0267, 0x0276, 0x0276, 0x0276, 0x0276, + 0x027f, 0x027f, 0x027f, 0x0291, 0x0291, 0x0291, 0x0291, 0x0291, + 0x0291, 0x0291, 0x0291, 0x0291, 0x0291, 0x0291, 0x0291, 0x0291, + 0x0291, 0x0291, 0x0291, 0x02a6, 0x02a6, 0x02c4, 0x02c4, 0x02c4, + 0x02c4, 0x02c4, 0x02d0, 0x02d0, 0x02d0, 0x02d0, 0x02d0, 0x02d0, + 0x02d0, 0x02d0, 0x02d0, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, + 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, + 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, 0x02e5, + // Entry 80 - BF + 0x02e5, 0x02e5, 0x02e5, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, + 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x02fd, 0x030c, + 0x030c, 0x030c, 0x031e, 0x031e, 0x031e, 0x031e, 0x032a, 0x0330, + 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, + 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, 0x0360, 0x0387, 0x0393, + 0x03bd, +} // Size: 362 bytes + +var knScriptStr string = "" + // Size: 3788 bytes + "ಅರೇಬಿಕà³à²‡à²‚ಪೀರಿಯಲೠಅರೆಮಾಯಿಕà³à²…ರà³à²®à³‡à²¨à²¿à²¯à²¨à³à²…ವೆಸà³à²¤à²¾à²¨à³à²¬à²¾à²²à²¿à²¨à³€à²¸à³à²¬à²¾à²Ÿà²•à³à²¬à³†à²‚ಗಾಲಿಬà³à²²à²¿à²¸à³" + + "\u200cಸಿಂಬಲà³à²¸à³à²¬à³‹à²ªà³Šà²®à³‹à²«à³‹à²¬à³à²°à²¾à²¹à³à²®à²¿à²¬à³à²°à³ˆà²²à³à²¬à²—ಿನೀಸà³à²¬à³à²¹à²¿à²¦à³à²•à²¾à²•à²‚ಯà³à²¨à²¿à²Ÿà³†à²¡à³ ಕೆನೆಡಿಯನೠ" + + "ಅಬೊರಿಜಿನಲೠಸಿಲà³à²¯à²¾à²¬à²¿à²•à³à²¸à³à²•à²°à³‡à²¨à³à²šà²¾à²®à³à²šà³†à²°à³‹à²•à³€à²¸à²¿à²°à³à²¥à³à²•à²¾à²ªà³à²Ÿà²¿à²•à³à²¸à²¿à²ªà³à²°à²¿à²¯à²¾à²Ÿà³à²¸à²¿à²°à²¿à²²à²¿à²•à³" + + "ಪà³à²°à²¾à²šà³€à²¨ ಚರà³à²šà³ ಸà³à²²à³‹à²µà²¾à²¨à²¿à²•à³ ಸಿರಿಲಿಕà³à²¦à³‡à²µà²¨à²¾à²—ರಿಡಸರà³à²Ÿà³à²ˆà²œà²¿à²ªà³à²Ÿà²¿à²¯à²¨à³ ಡೆಮೋಟಿಕà³à²ˆà²œà²¿à²ª" + + "à³à²Ÿà²¿à²¯à²¨à³ ಹಯಾರಿಟಿಕà³à²ˆà²œà²¿à²ªà³à²Ÿà²¿à²¯à²¨à³ ಹೀರೋಗà³à²²à²¿à²«à³à²¸à³à²‡à²¥à²¿à²¯à³‹à²ªà²¿à²•à³à²œà²¾à²°à³à²œà²¿à²¯à²¨à³ ಖà³à²¸à³à²¤à³à²°à²¿à²œà²¾à²°à³" + + "ಜಿಯನà³à²—à³à²²à²¾à²—ೋಲಿಟಿಕà³à²—ೋತಿಕà³à²—à³à²°à³€à²•à³à²—à³à²œà²°à²¾à²¤à²¿à²—à³à²°à³à²®à³à²–ಿಹà³à²¯à²¾à²‚ಗà³à²²à³à²¹à²¾à²¨à³à²¹à²¨à³‚ನೂಸರಳೀಕೃತ " + + "ಹಾನà³à²¸à²¾à²‚ಪà³à²°à²¦à²¾à²¯à²¿à²• ಹಾನà³à²¹à³€à²¬à³à²°à³‚ಹಿರಗಾನಾಪಹವೠಹà³à²®à³‹à²‚ಗà³à²•à²Ÿà²•à²¾à²¨à²¾ ಅಥವಾ ಹಿರಗಾನಾಪà³à²°à²¾à²šà³€" + + "ನ ಹಂಗೇರಿಯನà³à²¸à²¿à²‚ಧೂಪà³à²°à²¾à²šà³€à²¨à³ ಇಟಾಲಿಕà³à²œà²¾à²µà²¨à³€à²¸à³à²œà²¾à²ªà²¨à³€à²¸à³à²•à³†à²¯à²¾ ಲಿಕಟಕಾನಾಖರೋಶà³à²¤à²¿à²–ಮೇಕ" + + "ನà³à²¨à²¡à²•à³Šà²°à²¿à²¯à²¨à³à²•à³ˆà²¥à²¿à²²à²¾à²¨à²¾à²²à²¾à²µà³‹à²«à³à²°à²¾à²•à³à²¤à²°à³ ಲà³à²¯à²¾à²Ÿà²¿à²¨à³à²—ೇಲಿಕೠಲà³à²¯à²¾à²Ÿà²¿à²¨à³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³à²²à³†à²ªà³à²šà²¾" + + "ಲಿಂಬà³à²²à³€à²¨à²¯à²°à³ ಎಲೀನಯರೠಬಿಲೈಸಿಯನà³à²²à²¿à²¡à²¿à²¯à²¨à³à²®à²‚ಡೇಯನà³à²®à²¨à²¿à²šà³ˆà²¯à²¨à³à²®à²¯à²¾à²¨à³ ಹೀರೋಗà³à²²à²¿à²«à³à²¸à³à²®" + + "ೆರೊಯಿಟಿಕà³à²®à²²à²¯à²¾à²³à²‚ಮಂಗೋಲಿಯನà³à²®à³‚ನà³à²®à³ˆà²¤à²¿ ಮಯೆಕà³à²®à³à²¯à²¾à²¨à³à²®à²¾à²°à³à²Žà²¨à³\u200dಕೋಓಘಮà³à²“ಲೠಚಿಕ" + + "ಿಓರà³à²–ೋನà³à²’ರಿಯಾಓಸà³à²®à²¾à²¨à³à²¯à²¾à²ªà³à²°à²¾à²šà³€à²¨ ಪೆರà³à²®à²¿à²•à³à²«à²¾à²—à³à²¸à³-ಪಾಇನà³à²¸à³\u200cಕà³à²°à²¿à²ªà³à²¶à²¨à²²à³ ಪ" + + "ಾಹà³à²²à²µà²¿à²¸à²¾à²²à³à²Ÿà²°à³ ಪಾಹà³à²²à²µà²¿à²¬à³à²•à³ ಪಾಹà³à²²à²µà²¿à²«à³€à²¨à²¿à²¶à²¿à²¯à²¨à³à²ªà³Šà²²à³à²²à²¾à²°à³à²¡à³ ಫೊನೆಟಿಕà³à²‡à²¨à³à²¸à³" + + "\u200cಕà³à²°à²¿à²ªà³à²¶à²¨à²²à³ ಪಾರà³à²¥à²¿à²¯à²¨à³à²°à³†à²œà²¾à²‚ಗà³à²°à³‹à²‚ಗೋರೋಂಗೋರೂನಿಕà³à²¸à²®à²¾à²°à²¿à²Ÿà²¨à³à²¸à²°à²¾à²Ÿà²¿à²¸à³Œà²°à²¾à²·à³à²Ÿà³à²°à²¸" + + "ೈನà³\u200cರೈಟಿಂಗà³à²¶à²¾à²µà²¿à²¯à²¾à²¨à³à²¸à²¿à²‚ಹಳಸà³à²‚ಡಾನೀಸà³à²¸à³ˆà²²à³‹à²Ÿà²¿ ನಗà³à²°à²¿à²¸à²¿à²°à²¿à²¯à²¾à²•à³à²Žà²¸à³à²Ÿà³à²°à²¾à²‚ಜಿಲೋ" + + " ಸಿರಿಯಾಕà³à²ªà²¶à³à²šà²¿à²® ಸಿರಿಯಾಕà³à²ªà³‚ರà³à²µ ಸಿರಿಯಾಕà³à²Ÿà²¾à²—à³à²¬à²¾à²¨à²µà²¾à²¥à²¾à²¯à³ ಲಿನà³à²¯à³‚ ಥಾಯೠಲà³à²‡à²¤à²®à²¿à²³à³" + + "ಥಾಯೠವಿಯೆಟà³à²¤à³†à²²à³à²—à³à²¤à³†à²‚ಗà³\u200cವಾರà³à²Ÿà²¿à²«à²¿à²¨à²¾à²˜à³à²Ÿà³à²¯à²¾à²—ಲೋಗà³à²¥à²¾à²¨à²¾à²¥à²¾à²¯à³à²Ÿà²¿à²¬à³‡à²Ÿà²¨à³à²‰à²—ಾರಿಟ" + + "ಿಕà³à²µà²¾à²¯à³à²µà²¿à²¸à²¿à²¬à²²à³ ಸà³à²ªà³€à²šà³à²ªà³à²°à²¾à²šà³€à²¨ ಪರà³à²¶à²¿à²¯à²¨à³à²¸à³à²®à³‡à²°à³‹-ಅಕà³à²•à²¾à²¡à²¿à²¯à²¨à³ ಕà³à²¯à³‚ನಿಫಾರà³à²®à³à²¯à²¿à²‡" + + "ನà³\u200dಹೆರಿಟೆಡà³à²—ಣೀತ ಸಂಕೇತಲಿಪಿಸಂಕೇತಗಳà³à²…ಲಿಖಿತಸಾಮಾನà³à²¯à²—ೊತà³à²¤à²¿à²²à³à²²à²¦ ಲಿಪಿ" + +var knScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0015, 0x004c, 0x006a, 0x0085, + 0x009d, 0x009d, 0x009d, 0x00ac, 0x00c1, 0x00ee, 0x0106, 0x011e, + 0x0130, 0x0145, 0x0157, 0x0163, 0x01db, 0x01ea, 0x01f6, 0x0208, + 0x021a, 0x0232, 0x0250, 0x0268, 0x02c5, 0x02dd, 0x02ef, 0x02ef, + 0x0326, 0x0360, 0x03a3, 0x03a3, 0x03be, 0x03f2, 0x040d, 0x0431, + 0x0443, 0x0443, 0x0455, 0x046a, 0x0482, 0x049d, 0x04a9, 0x04b8, + 0x04da, 0x0508, 0x0508, 0x051a, 0x052f, 0x052f, 0x0551, 0x0586, + 0x05b7, 0x05c6, 0x05f4, 0x0609, 0x061e, 0x061e, 0x0631, 0x0643, + // Entry 40 - 7F + 0x0658, 0x0661, 0x0661, 0x0670, 0x0685, 0x0685, 0x0691, 0x069d, + 0x06a9, 0x06dd, 0x0708, 0x0720, 0x0732, 0x0741, 0x0757, 0x0770, + 0x0770, 0x0770, 0x0785, 0x079a, 0x079a, 0x07af, 0x07c7, 0x07fb, + 0x07fb, 0x07fb, 0x0819, 0x082b, 0x082b, 0x0846, 0x0852, 0x0852, + 0x086e, 0x086e, 0x088c, 0x088c, 0x088c, 0x088c, 0x089e, 0x089e, + 0x08aa, 0x08c0, 0x08d5, 0x08e4, 0x08ff, 0x08ff, 0x08ff, 0x092d, + 0x0946, 0x098c, 0x09b7, 0x09d9, 0x09f4, 0x0a2b, 0x0a77, 0x0a8c, + 0x0aaa, 0x0abc, 0x0ad4, 0x0ae3, 0x0ae3, 0x0afe, 0x0b22, 0x0b3a, + // Entry 80 - BF + 0x0b3a, 0x0b3a, 0x0b3a, 0x0b49, 0x0b49, 0x0b64, 0x0b86, 0x0b9e, + 0x0bdb, 0x0c06, 0x0c2e, 0x0c49, 0x0c49, 0x0c5c, 0x0c7f, 0x0c8e, + 0x0c8e, 0x0cad, 0x0cbf, 0x0cdd, 0x0cf5, 0x0d10, 0x0d1c, 0x0d28, + 0x0d3d, 0x0d3d, 0x0d58, 0x0d64, 0x0d8c, 0x0d8c, 0x0d8c, 0x0dba, + 0x0e10, 0x0e16, 0x0e3a, 0x0e62, 0x0e62, 0x0e7a, 0x0e8c, 0x0ea1, + 0x0ecc, +} // Size: 362 bytes + +var koScriptStr string = "" + // Size: 2788 bytes + "아파카 문ìžì½”카시안 알바니아 문ìžì•„ëž ë¬¸ìžì•„ëžì œêµ­ 문ìžì•„르메니아 문ìžì•„베스타 문ìžë°œë¦¬ 문ìžë°”ë­„ 문ìžë°”사바í 문ìžë°”íƒ€í¬ ë¬¸ìžë²µê³¨ 문" + + "ìžë¸”리스기호 문ìžì£¼ìŒë¶€í˜¸ë¸Œë¼ë¯¸ë¸Œë¼ìœ  ì ìžë¶€ê¸° 문ìžë¶€ížˆë“œ 문ìžì°¨í¬ë§ˆ 문ìží†µí•© ìºë‚˜ë‹¤ 토착어카리 문ìžì¹¸ 고어체로키 문ìží‚¤ë¥´ì“°ì½¥íŠ¸ " + + "문ìží‚¤í”„로스 문ìží‚¤ë¦´ 문ìžê³ ëŒ€êµíšŒìŠ¬ë¼ë¸Œì–´ 키릴문ìžë°ë°”나가리 문ìžë””저렛 문ìžë“€í”Œë¡œì´ì•ˆ 문ìžê³ ëŒ€ ì´ì§‘트 민중문ìžê³ ëŒ€ ì´ì§‘트 신관문" + + "ìžê³ ëŒ€ ì´ì§‘트 신성문ìžì—˜ë°”ì‚° 문ìžì—티오피아 문ìžê·¸ë£¨ì§€ì•¼ 쿠츠리 문ìžê·¸ë£¨ì§€ì•¼ 문ìžê¸€ë¼ê³¨ 문ìžê³ íŠ¸ 문ìžê·¸ëž€íƒ€ 문ìžê·¸ë¦¬ìŠ¤ 문ìžêµ¬ìŸˆë¼" + + "í‹° 문ìžêµ¬ë¥´ë¬´í‚¤ 문ìží•œê¸€í•œìží•˜ëˆ„누 문ìží•œìž ê°„ì²´í•œìž ë²ˆì²´ížˆë¸Œë¦¬ 문ìžížˆë¼ê°€ë‚˜ì•„나톨리아 ìƒí˜•ë¬¸ìžíŒŒí•˜ìš° 몽 문ìžê°€ë‚˜ê³ ëŒ€ í—가리 문ìž" + + "ì¸ë”스 문ìžê³ ëŒ€ ì´íƒˆë¦¬ì•„ 문ìžìžë°” 문ìžì¼ë³¸ 문ìžì¤„첸 문ìžì¹´ì•¼ 리 문ìžê°€íƒ€ì¹´ë‚˜ì¹´ë¡œìŠˆí‹° 문ìží¬ë©”르 문ìžì½”즈키 문ìžì¹¸ë‚˜ë‹¤ 문ìží•œêµ­ì–´" + + "í¬íŽ ë ˆ 문ìžì¹´ì´ì‹œ 문ìžëž€ë‚˜ 문ìžë¼ì˜¤ 문ìžë…ì¼ì‹ 로마ìžì•„ì¼ëžœë“œì‹ 로마ìžë¡œë§ˆìžë ™ì°¨ 문ìžë¦¼ë¶€ 문ìžì„ í˜• 문ìž(A)선형 문ìž(B)프레ì´" + + "ì € 문ìžë¡œë§ˆ 문ìžë¦¬í‚¤ì•„ 문ìžë¦¬ë””ì•„ 문ìžë§ˆí•˜ìžë‹ˆ 문ìžë§Œë‹¤ì´ì•„ 문ìžë§ˆë‹ˆêµ 문ìžë§ˆì•¼ ìƒí˜• 문ìžë©˜ë° 문ìžë©”ë¡œì— í•„ê¸°ì²´ë©”ë¡œì— ë¬¸ìžë§ë¼ì–„" + + "람 문ìžëª½ê³¨ 문ìžë¬¸ 문ìžë¯€ë¡œ 문ìžë©”ì´í…Œì´ 마옉 문ìžë¯¸ì–€ë§ˆ 문ìžì˜› ë¶ë¶€ ì•„ë¼ë¹„ì•„ 문ìžë‚˜ë°”테아 문ìžë‚˜ì‹œ 게바 문ìžì‘ì½” 문ìžëˆ„슈 문" + + "ìžì˜¤ê²€ 문ìžì˜¬ 치키 문ìžì˜¤ë¥´í˜¼ì–´ì˜¤ë¦¬ì•¼ 문ìžì˜¤ìŠ¤ë§ˆë‹ˆì•„ 문ìžíŒ”ë¯¸ë¼ ë¬¸ìžê³ ëŒ€ 페름 문ìžíŒŒìŠ¤íŒŒ 문ìžëª…문 팔ë¼ë¹„ 문ìžì†”í„° 팔ë¼ë¹„ 문ìžë¶" + + " 팔ë¼ë¹„ 문ìžíŽ˜ë‹ˆí‚¤ì•„ 문ìží´ë¼ë“œ í‘œìŒ ë¬¸ìžëª…문 파ë¼í‹°ì•„ 문ìžë ˆìž¥ 문ìžë¡±ê³ ë¡±ê³ ë£¬ 문ìžì‚¬ë§ˆë¦¬ì•„ 문ìžì‚¬ë¼í‹°ì˜› 남부 ì•„ë¼ë¹„ì•„ 문ìžì‚¬ìš°ë¼ìŠˆ" + + "íŠ¸ë¼ ë¬¸ìžìˆ˜í™” 문ìžìƒ¤ë¹„안 문ìžì‚¬ë¼ë‹¤ 문ìžì‹¤ë‹´ìžì¿ ë‹¤ì™€ë”” 문ìžì‹ í• ë¼ 문ìžì†Œë¼ 솜펭 문ìžìˆœë‹¤ 문ìžì‹¤í—¤í‹° 나가리시리아 문ìžì—스트랑겔로" + + "ì‹ ì‹œë¦¬ì•„ 문ìžì„œë¶€ 시리아 문ìžë™ë¶€ 시리아 문ìžíƒ€ê·¸ë°˜ì™€ 문ìžíƒ€í¬ë¦¬ 문ìžíƒ€ì´ ë ˆ 문ìžì‹  íƒ€ì´ ë£¨ì—타밀 문ìžíƒ•êµ¬íŠ¸ 문ìžíƒœêµ­ 베트남" + + " 문ìží…”루구 문ìží…¡ê³¼ë¥´ 문ìží‹°í”¼ë‚˜ê·¸ 문ìžíƒ€ê°ˆë¡œê·¸ 문ìžíƒ€ë‚˜ 문ìžíƒ€ì´ 문ìží‹°ë² íŠ¸ 문ìží‹°ë¥´í›„타 문ìžìš°ê°€ë¦¬íŠ¸ 문ìžë°”ì´ ë¬¸ìžì‹œí™”법바랑 í¬ì‹œ" + + "í‹° 문ìžìš¸ë ˆì•„ì´ê³ ëŒ€ 페르시아 문ìžìˆ˜ë©”르-아카드어 설형문ìžì´ 문ìžêµ¬ì „ 문ìžìˆ˜í•™ 기호기호구전ì¼ë°˜ 문ìžê¸°ë¡ë˜ì§€ ì•Šì€ ë¬¸ìž(구전)" + +var koScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0030, 0x0030, 0x003d, 0x0050, 0x0066, 0x0079, + 0x0086, 0x0093, 0x00a6, 0x00b6, 0x00c3, 0x00d9, 0x00e5, 0x00ee, + 0x00fe, 0x010b, 0x011b, 0x012b, 0x0145, 0x0152, 0x015c, 0x016c, + 0x0175, 0x0182, 0x0195, 0x01a2, 0x01c7, 0x01dd, 0x01ed, 0x0203, + 0x0220, 0x023d, 0x025a, 0x026a, 0x0280, 0x029d, 0x02b0, 0x02c0, + 0x02cd, 0x02dd, 0x02ed, 0x0300, 0x0313, 0x0319, 0x031f, 0x032f, + 0x033c, 0x0349, 0x0349, 0x0359, 0x0365, 0x0381, 0x0395, 0x039b, + 0x03b2, 0x03c2, 0x03dc, 0x03e9, 0x03f6, 0x0403, 0x0414, 0x0420, + // Entry 40 - 7F + 0x0433, 0x0443, 0x0453, 0x0463, 0x046c, 0x047c, 0x048c, 0x0499, + 0x04a6, 0x04b9, 0x04d2, 0x04db, 0x04e8, 0x04f5, 0x0505, 0x0515, + 0x0528, 0x0535, 0x0545, 0x0555, 0x0568, 0x057b, 0x058b, 0x059f, + 0x05ac, 0x05bf, 0x05cf, 0x05e2, 0x05e2, 0x05ef, 0x05f9, 0x0606, + 0x0620, 0x0620, 0x0630, 0x064e, 0x0661, 0x0675, 0x0682, 0x068f, + 0x069c, 0x06ad, 0x06b9, 0x06c9, 0x06df, 0x06ef, 0x06ef, 0x0703, + 0x0713, 0x072a, 0x0741, 0x0755, 0x0768, 0x077f, 0x0799, 0x07a6, + 0x07b2, 0x07bc, 0x07cf, 0x07d8, 0x07f6, 0x080f, 0x081c, 0x082c, + // Entry 80 - BF + 0x083c, 0x0845, 0x0858, 0x0868, 0x087c, 0x0889, 0x089c, 0x08ac, + 0x08d2, 0x08e9, 0x0900, 0x0913, 0x0923, 0x0934, 0x0945, 0x0952, + 0x0962, 0x0979, 0x0989, 0x0999, 0x09ac, 0x09bf, 0x09cc, 0x09d9, + 0x09e9, 0x09fc, 0x0a0f, 0x0a1c, 0x0a25, 0x0a3c, 0x0a48, 0x0a62, + 0x0a85, 0x0a8f, 0x0a9c, 0x0aa9, 0x0aa9, 0x0aaf, 0x0ab5, 0x0ac2, + 0x0ae4, +} // Size: 362 bytes + +var kyScriptStr string = "" + // Size: 491 bytes + "ÐрабÐрмÑнБенгалБопомофоБрейлКириллДеванагариЭфиопГрузинГрекГужаратиГурму" + + "хиХангулХаньЖөн. КытайСалт. КытайИвритХираганаЖапанКатаканаКмерКаннадаК" + + "орейЛаоЛатынМалайаламМоңголМйанмарОрийаСингалаТамилТелуТаанаТайТибетБел" + + "гилерЖазылбаганЖалпыБелгиÑиз жазуу" + +var kyScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x001e, 0x001e, 0x002e, 0x002e, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0044, 0x0044, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0062, 0x0062, 0x006e, 0x006e, + 0x006e, 0x006e, 0x0076, 0x0086, 0x0094, 0x00a0, 0x00a8, 0x00a8, + 0x00ba, 0x00ce, 0x00ce, 0x00d8, 0x00e8, 0x00e8, 0x00e8, 0x00e8, + 0x00e8, 0x00e8, 0x00e8, 0x00e8, 0x00f2, 0x00f2, 0x00f2, 0x0102, + // Entry 40 - 7F + 0x0102, 0x010a, 0x010a, 0x0118, 0x0122, 0x0122, 0x0122, 0x0122, + 0x0128, 0x0128, 0x0128, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, + 0x0132, 0x0132, 0x0132, 0x0144, 0x0144, 0x0150, 0x0150, 0x0150, + 0x0150, 0x0150, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, 0x015e, + 0x015e, 0x015e, 0x015e, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, + // Entry 80 - BF + 0x0168, 0x0168, 0x0168, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, + 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0180, + 0x0180, 0x0180, 0x0188, 0x0188, 0x0188, 0x0188, 0x0192, 0x0198, + 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, + 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01b2, 0x01c6, 0x01d0, + 0x01eb, +} // Size: 362 bytes + +var loScriptStr string = "" + // Size: 3892 bytes + "ອັບຟາàºàº²àº­àº²àº¥àº±àºšàº­àº´àº¡àºžàºµàº®àº½àº™ ອາເມອິàºàº­àº²à»€àº¡àº™àº½àº™àº­àº°à»€àº§àºªàº•àº°àºšàº²àº¥àºµàºšàº²àº¡àº¹àº¡àºšàº±àº”ຊາບາຕັàºà»€àºšàº±àº‡àºàº²àº¥àº´àºšàº¥àº´" + + "àºàºŠàº´àº¡à»‚ບລສຈູ້ອິນພຮາຫມີເບຣວບູàºàº´àºªàºšàº¹àº®àº´àº”ຊາàºàº¡àº²àºªàº±àº™àºàº²àº¥àº±àºàºŠàº»àº™à»€àºœàº»à»ˆàº²àºžàº·à»‰àº™à»€àº¡àº·àº­àº‡à»àº„ນນາດ" + + "າຄາເຮàºàºˆàº²àº¡à»€àºŠà»‚ຮàºàºµà»€àºŠàºµàº®àº„ອບຕິàºà»„ຊເປàºàºŠàºµàº£àº´àº§àº¥àº´àºà»€àºŠàº®àº±àº”ສລາ ໂວນິàºàºŠàºµàº®àº´àºàº¥àº´àºà»‚ບຮານດີວານ" + + "າàºàº²àº£àºµà»€àº”ເຊເຮຊົວເລດັບໂລàºàº±àº™àº”ີໂມຕິàºàº­àºµàºàº´àºšà»€àº®àºàº®àº²àº•àº´àºàº­àºµàºàº´àºšà»€àº®àºà»‚ຮàºàº¥àº´àºŸàº­àºµàºàº´àºšàº­àºµàº—ິໂອປ" + + "ິàºàº„ອດຊູຮີຈà»à»€àºˆàºàºˆà»àºˆàº½àº™àºàº¥àº²à»‚àºàº¥àº´àº•àº´àºà»‚àºàº®àº´àºà»€àº„ນທາàºàº°à»€àº¥àº±àºàºˆàº¹àºˆàº²àº£àº²àº—ີàºàº»àº§àº¡àº¹àº„ີຮັນàºàº¹àº™àº®àº²àº™àº®" + + "ານູໂນໂອຈີນ (à»àºšàºšàº‡à»ˆàº²àº)ຈີນ (ດັ້ງເດີມ)ຮີບຣິວຣິຣະງະນະອັàºàº¥àº®àº°àº­àº²àº™àº²à»‚ຕເລàºàº›àº²à»€àº®àº²à»€àº¡" + + "ັງຄະຕະàºàº°àº™àº°àº«àº®àº·àº®àºµàº®àº°àº‡àº°àº™àº°àº®àº±àº‡àºàº²àº®àºµà»‚ບຮານອິນດັດອີຕາລີໂບຮານຈາວາàºàºµà»ˆàº›àº¸à»ˆàº™àºˆàº¹àº®à»€àºŠàº±àº™àº„àº" + + "າຄະຕະàºàº°àº™àº°àº‚à»à»‚ຮàºàºªàºµàº‚ະà»àº½àº™àº„à»àºˆàº„ີຄັນນາດາເàºàº»àº²àº«àº¼àºµà»€àº›àº¥à»€àº¥àºàº²àºàº•àº´àº¥à»‰àº²àº™àº™àº²àº¥àº²àº§àº¥àº²àº•àº´àº™-ຟຮັ່ງ" + + "ເຕຣລາຕິນ-à»àºàº¥àº´àºàº¥àº²àº•àº´àº™à»€àº¥àºŠàº²àº¥àº´àº¡àºšàº¹àº¥àºµà»€àº™àºàº¥àºµà»€àº™àºàº£à»€àºŸàº£à»€àºŠàº®à»‚ລມາໄລເຊàºàº¥àºµà»€àº”àºà»àº¡àº™àº”ຽນມານິà»" + + "ຊນມາàºàº²à»„ຮໂຮàºàº¥àº´àºšà»€àº¡àº™à»€àº”ເຄເລີຊີເມໂຮອິຕິàºà»€àº¡à»‚ຮຕິàºàº¡àº²àº¥àº²àºàº±àº™àº¡àº»àº‡à»‚àºàº™àº¡àº¹àº™à»€àº¡à»‚ຮເມເທມາເàº" + + "àºàº¡àº½àº™àº¡àº²àº­àº²àº®àº°à»€àºšàºà»€à»œàº·àº­à»‚ບຮານນາບາທາທຽນàºàºµàºšàº²-ນາຊີເອັນໂàºàº™àº¸àºŠàº¸àº­àº­àºàº„ອນໂອຊິàºàº´àº­àº­àºàºªàº¡àº±àº™àº" + + "າໂອຣິຢາພາລໄມຮິນເພີມີໂບຮານຟາàºàºª-ປາປະຫລາວີອິນສຄິບຊັນà»àº™àº¥àº›àº°àº«àº¥àº²àº§àºµàºŠàº­àº”ເຕຮ໌ປະຫລ" + + "າວີບຸàºàºŸàºµàº™àº´à»€àºŠàºàºªàº±àº”ຕະສາດພà»àº®àº¥àº²àºžàº²àº®à»Œà»€àº—àºàº­àº´àº™àºªàº„ຮິປຊັນà»àº™àº¥à»€àº®àºˆàº±àº‡àº®àº­àº‡à»‚àºàº®àº­àº‡à»‚àºàº®àº¹àº™àº´àºàºŠàº²àº¡" + + "າເລàºàºŠàº²àº®àº²àº•àº´àº­àº²àº¥àº°à»€àºšàºà»ƒàº•à»‰à»‚ບຮານໂສຮັດຕຣະໄຊນ໌ໄຮຕີ້ງຊອວຽນຊາຮາດາດຸດາວາດີສິນຫາລາໂ" + + "ສຮາສົມເປັງຊຸນດາຊີໂລຕິນາàºàº£àºµàºŠàºµà»€àº®àºàºŠàºµà»€àº®àºà»€àº­àºªàº—ຮານຈີໂລຊີເຮàºàº•àº²à»€àº§àº±àº™àº•àº»àºàºŠàºµà»€àº®àºàº•àº²à»€àº§" + + "ັນອອàºàº•àº±àºàºšàº±àº™àº§àº²àº—າຄຮີໄທເລໄທລື້ໃà»à»ˆàº—າມິລຕັນàºàº±àº™à»„ທຫວຽດເຕລູàºàº¹à»€àº—ງàºàº§àº²àº®àº—ີຟີນາàºàº•àº²àº" + + "າລອàºàº—ານາໄທທິເບທັນເທຮຸທາàºàº¹àºàº²àº®àº´àº”ໄວຄຳເວົ້າທີ່ເບີ່ງເຫັນໄດ້ວາຮັງàºàºªàº´àº•àº´à»‚ອລີເອ" + + "ເປຮເຊàºà»‚ບຮານອັàºàºªàº­àº™àº®àº¹àºšàº›àº¥àºµà»ˆàº¡àºªàº¸à»€àº¡à»€àº®àº-ອັດຄາເດàºàºàºµàº­àº´àº™à»€àº®àº®àº´àº”ເຄື່ອງà»àº²àºàº—າງຄະນິດສາ" + + "ດສັນàºàº²àº¥àº±àºàºšà»à»ˆàº¡àºµàºžàº²àºªàº²àº‚ຽນສາມັນàºàº²àº™àº‚ຽນທີ່ບà»à»ˆàº®àº¹à»‰àºˆàº±àº" + +var loScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x0015, 0x0015, 0x0024, 0x0052, 0x0067, 0x007c, + 0x0088, 0x0097, 0x00a6, 0x00b5, 0x00cd, 0x00ee, 0x0100, 0x0112, + 0x011e, 0x012d, 0x013c, 0x014b, 0x01ab, 0x01ba, 0x01c3, 0x01d5, + 0x01e1, 0x01f3, 0x0202, 0x021a, 0x0269, 0x0287, 0x0299, 0x02c0, + 0x02e4, 0x030b, 0x0335, 0x0335, 0x0350, 0x0374, 0x0383, 0x03a1, + 0x03b0, 0x03bf, 0x03d1, 0x03e9, 0x03fe, 0x0410, 0x0419, 0x0431, + 0x0452, 0x0476, 0x0476, 0x0488, 0x04a0, 0x04cd, 0x04e8, 0x0521, + 0x0545, 0x0557, 0x0578, 0x0584, 0x0599, 0x05ae, 0x05b7, 0x05cf, + // Entry 40 - 7F + 0x05e4, 0x05f3, 0x0602, 0x0617, 0x062c, 0x063b, 0x064a, 0x065c, + 0x0665, 0x068d, 0x06ac, 0x06bb, 0x06c7, 0x06d6, 0x06e5, 0x06f7, + 0x0709, 0x0715, 0x0724, 0x0733, 0x0733, 0x0745, 0x075a, 0x077e, + 0x078d, 0x07bd, 0x07d2, 0x07e7, 0x07e7, 0x07f9, 0x0802, 0x080e, + 0x0829, 0x0829, 0x0838, 0x0868, 0x0883, 0x089c, 0x08ae, 0x08ba, + 0x08cc, 0x08de, 0x08f9, 0x090b, 0x090b, 0x0923, 0x0923, 0x0941, + 0x0954, 0x0990, 0x09ba, 0x09d8, 0x09ed, 0x0a14, 0x0a53, 0x0a62, + 0x0a80, 0x0a8f, 0x0aa4, 0x0ab6, 0x0ae3, 0x0afb, 0x0b19, 0x0b28, + // Entry 80 - BF + 0x0b3a, 0x0b3a, 0x0b52, 0x0b67, 0x0b88, 0x0b97, 0x0bb8, 0x0bc7, + 0x0bf7, 0x0c21, 0x0c4b, 0x0c63, 0x0c72, 0x0c7e, 0x0c96, 0x0ca5, + 0x0cb7, 0x0cc9, 0x0cdb, 0x0cf0, 0x0d05, 0x0d1a, 0x0d26, 0x0d2c, + 0x0d41, 0x0d53, 0x0d68, 0x0d6e, 0x0db0, 0x0dce, 0x0de0, 0x0e01, + 0x0e59, 0x0e5f, 0x0e77, 0x0eb3, 0x0eb3, 0x0ecb, 0x0eef, 0x0efe, + 0x0f34, +} // Size: 362 bytes + +var ltScriptStr string = "" + // Size: 1634 bytes + "AfakaKaukazo AlbanijosarabųimperinÄ— aramaikųarmÄ—nųavestanoBalieÄiųBamumB" + + "assa Vahbatakbengalų„Bliss“ simboliaibopomofobrahmibrailiobuginezųbuhidÄ" + + "akmasuvienodinti Kanados aborigenų silabiniaikariųÄamÄerokiųkirtkoptųkip" + + "rokirilicasenoji bažnytinÄ— slavų kirilicadevanagarideseretasDuplojÄ— sten" + + "ografijaEgipto liaudiesEgipto žyniųegipto hieroglifaiElbasanoetiopųgruzi" + + "nų kutsurigruzinųglagolitikgotųGrantagraikųgudžaratųgurmukihangulhanhanu" + + "nosupaprastinti hantradiciniai hanhebrajųhiraganaAnatolijaus hieroglifai" + + "pahav hmongkatakana / hiraganasenasis vengrųindussenasis italųjavieÄiųja" + + "ponųJurchenkajah likatakanakaroÅ¡tikhmerųKhojkikanadųkorÄ—jieÄiųKpelųkaith" + + "ilanalaosieÄiųfraktur lotynųgÄ—lų lotynųlotynųlepÄalimbulinijiniai Alinij" + + "iniai BFraserLomalicianlidianMahadžanimandÄ—jųmaniÄųmalų hieroglifaiMende" + + "Merojitų rankraÅ¡tinismeroitikmalajaliųModimongolųmÅ«nMromeitei majekbirmi" + + "eÄiųSenasis Å¡iaurÄ—s arabųNabatÄ—jųNaxi GebaenkoNüshuoghamol Äikiorkonorij" + + "ųosmanųPalmirosPau Cin Hausenieji permÄ—spagsa paraÅ¡ytiniai pahlavipselt" + + "er pahlavibuk pahvalifoenikųpolard fonetinÄ—raÅ¡ytiniai partųrejangrongoro" + + "ngorunųsamarieÄiųsaratisenoji pietų ArabijossauraÅ¡traženklų raÅ¡tasÅ¡aviųŠ" + + "aradosSiddhamKhudawadisinhalųSora Sompengsundųsyloti nagrisirųestrangelo" + + " sirieÄiųvakarų sirųrytų sirųtagbanvaTakritai lenaujasis Tailando luetam" + + "ilųTanguttai vettelugųtengvartifinagtagalogųhanatajųtibetieÄiųTirhutauga" + + "ritikvaimatoma kalbaVarang KshitiWoleaisenieji persųŠumero Akado dantira" + + "Å¡tisjipaveldÄ—tasmatematiniai simboliaisimboliųneparaÅ¡ytabendrinežinomi " + + "raÅ¡menys" + +var ltScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0016, 0x0016, 0x001c, 0x002f, 0x0037, 0x003f, + 0x0049, 0x004e, 0x0057, 0x005c, 0x0064, 0x0079, 0x0081, 0x0087, + 0x008e, 0x0097, 0x009c, 0x00a2, 0x00cc, 0x00d2, 0x00d6, 0x00df, + 0x00e3, 0x00e9, 0x00ee, 0x00f6, 0x0118, 0x0122, 0x012b, 0x0140, + 0x014f, 0x015d, 0x016f, 0x0177, 0x017e, 0x018e, 0x0196, 0x01a0, + 0x01a5, 0x01ab, 0x01b2, 0x01bd, 0x01c4, 0x01ca, 0x01cd, 0x01d3, + 0x01e4, 0x01f3, 0x01f3, 0x01fb, 0x0203, 0x021a, 0x0225, 0x0238, + 0x0247, 0x024c, 0x025a, 0x0264, 0x026b, 0x0272, 0x027a, 0x0282, + // Entry 40 - 7F + 0x028a, 0x0291, 0x0297, 0x029e, 0x02ab, 0x02b1, 0x02b7, 0x02bb, + 0x02c6, 0x02d5, 0x02e3, 0x02ea, 0x02f0, 0x02f5, 0x0301, 0x030d, + 0x0313, 0x0317, 0x031d, 0x0323, 0x032d, 0x0336, 0x033e, 0x034f, + 0x0354, 0x036b, 0x0373, 0x037d, 0x0381, 0x0389, 0x038d, 0x0390, + 0x039c, 0x039c, 0x03a7, 0x03bf, 0x03c9, 0x03d2, 0x03d6, 0x03dc, + 0x03e1, 0x03e9, 0x03ee, 0x03f4, 0x03fb, 0x0403, 0x040e, 0x041d, + 0x0425, 0x0438, 0x0447, 0x0452, 0x045a, 0x046a, 0x047c, 0x0482, + 0x048c, 0x0491, 0x049d, 0x04a3, 0x04b9, 0x04c3, 0x04d3, 0x04da, + // Entry 80 - BF + 0x04e2, 0x04e9, 0x04f2, 0x04fa, 0x0506, 0x050c, 0x0518, 0x051d, + 0x0532, 0x053f, 0x054a, 0x0552, 0x0557, 0x055d, 0x0572, 0x0579, + 0x057f, 0x0586, 0x058d, 0x0594, 0x059b, 0x05a4, 0x05a8, 0x05ad, + 0x05b9, 0x05c0, 0x05c8, 0x05cb, 0x05d7, 0x05e4, 0x05ea, 0x05f8, + 0x0612, 0x0614, 0x061f, 0x0635, 0x0635, 0x063e, 0x0649, 0x064f, + 0x0662, +} // Size: 362 bytes + +var lvScriptStr string = "" + // Size: 761 bytes + "arÄbuaramieÅ¡uarmēņubalieÅ¡ubengÄļubopomofobrahmiBraila rakstsirokÄ“zukoptu" + + "kirilicasenslÄvudevÄnagÄridemotiskais rakstshierÄtiskais rakstsÄ“Ä£iptieÅ¡u" + + " hieroglifietiopieÅ¡ugruzÄ«nugotugrieÄ·ugudžaratupandžabuhangilaÄ·Ä«nieÅ¡uhanu" + + " vienkÄrÅ¡otÄhanu tradicionÄlÄivritshiraganakatakana vai hiraganasenungÄr" + + "uvecitÄļujavieÅ¡ujapÄņukatakanakhmerukannarukorejieÅ¡ulaosieÅ¡ulatīņulineÄr" + + "Ä AlineÄrÄ BlÄ«dieÅ¡umaijumalajalumongoļuMÅ«na rakstsbirmieÅ¡uogamiskais ra" + + "kstsorijuosmaņu turkufeniÄ·ieÅ¡urongorongorÅ«nu rakstssamarieÅ¡usingÄļuzundu" + + "sÄ«rieÅ¡urietumsÄ«rieÅ¡uaustrumsÄ«rieÅ¡utamilutelugutagalutaanatajutibetieÅ¡use" + + "nperieÅ¡uÅ¡umeru-akadieÅ¡u ķīļrakstsjimantotÄmatemÄtiskais pierakstssimboli" + + "bez rakstÄ«basvispÄrÄ“jÄnezinÄma rakstÄ«ba" + +var lvScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000f, 0x0017, 0x0017, + 0x001f, 0x001f, 0x001f, 0x001f, 0x0028, 0x0028, 0x0030, 0x0036, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x004b, + 0x004b, 0x0050, 0x0050, 0x0058, 0x0061, 0x006d, 0x006d, 0x006d, + 0x007f, 0x0093, 0x00aa, 0x00aa, 0x00b4, 0x00b4, 0x00bc, 0x00bc, + 0x00c0, 0x00c0, 0x00c7, 0x00d1, 0x00da, 0x00e1, 0x00eb, 0x00eb, + 0x00fe, 0x0111, 0x0111, 0x0117, 0x011f, 0x011f, 0x011f, 0x0134, + 0x013e, 0x013e, 0x0148, 0x0150, 0x0158, 0x0158, 0x0158, 0x0160, + // Entry 40 - 7F + 0x0160, 0x0166, 0x0166, 0x016d, 0x0177, 0x0177, 0x0177, 0x0177, + 0x0180, 0x0180, 0x0180, 0x0188, 0x0188, 0x0188, 0x0193, 0x019e, + 0x019e, 0x019e, 0x019e, 0x01a7, 0x01a7, 0x01a7, 0x01a7, 0x01ac, + 0x01ac, 0x01ac, 0x01ac, 0x01b4, 0x01b4, 0x01bc, 0x01c8, 0x01c8, + 0x01c8, 0x01c8, 0x01d1, 0x01d1, 0x01d1, 0x01d1, 0x01d1, 0x01d1, + 0x01e2, 0x01e2, 0x01e2, 0x01e7, 0x01f4, 0x01f4, 0x01f4, 0x01f4, + 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x01ff, 0x01ff, 0x01ff, 0x01ff, + 0x0209, 0x0215, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, + // Entry 80 - BF + 0x021f, 0x021f, 0x021f, 0x0228, 0x0228, 0x022d, 0x022d, 0x0236, + 0x0236, 0x0245, 0x0255, 0x0255, 0x0255, 0x0255, 0x0255, 0x025b, + 0x025b, 0x025b, 0x0261, 0x0261, 0x0261, 0x0267, 0x026c, 0x0270, + 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x027a, 0x0285, + 0x02a3, 0x02a5, 0x02ad, 0x02c5, 0x02c5, 0x02cc, 0x02da, 0x02e6, + 0x02f9, +} // Size: 362 bytes + +var mkScriptStr string = "" + // Size: 3505 bytes + "афакакавкаÑкоалбанÑкиарапÑко пиÑмоцарÑкоарамејÑкиерменÑко пиÑмоавеÑтанÑк" + + "обалиÑкобамумÑкобаÑабатачкобенгалÑко пиÑмоблиÑÑимболибопомофобрамибрајо" + + "во пиÑмобугиÑкобухидÑкочакманÑкоканадÑко ÑлоговнокариÑкочамÑкочерокиÑко" + + "кирткоптÑкокипарÑкокирилÑко пиÑмоÑтароÑловенÑка кирилицадеванагаридезер" + + "етÑкоДиплојеево ÑтенографÑкоегипетÑко демотÑкоегипетÑко хиератÑкоегипет" + + "Ñки хиероглифиелбаÑанÑкоетиопÑко пиÑмогрузиÑки хуцуригрузиÑко пиÑмоглаг" + + "олицаготÑкогрантагрчко пиÑмогуџаратигурмукихангулханÑко пиÑмохануноовÑк" + + "опоедноÑтавено ханÑко пиÑмотрадиционално ханÑкохебрејÑко пиÑмохираганаа" + + "надолÑки хиероглифипахауанÑко хмоншкојапонÑко ÑлоговноÑтароунгарÑкохара" + + "пÑкоÑтароиталÑкојаванÑкојапонÑко пиÑмоџурченÑкокаја ликатаканакароштикм" + + "ерÑко пиÑмохоџкиканнадакорејÑко пиÑмокпелÑкокајтиланÑколаошко пиÑмофрак" + + "турна латиницагелÑка латиницалатинично пиÑмолепчанÑколимбулинеарно Ðлин" + + "еарно БФрејзероволомÑколикиÑколидиÑкомахаџанимандејÑкоманихејÑкомајанÑк" + + "и хиероглифимендÑкомероитÑко ракопиÑномероитÑкомалајаламÑко пиÑмомодимо" + + "нголÑко пиÑмоМуновомромејтејÑкомјанмарÑко пиÑмоÑтароÑеверноарапÑконабат" + + "ејÑконаÑиÑка гебанконишуогамол чикиÑтаротурÑкооријанÑко пиÑмоÑомалиÑкоп" + + "алмирÑкоПаучинхауовоÑтаропермÑкопагÑпанатпиÑно ÑредноперÑиÑкопÑалтирÑко" + + " ÑредноперÑиÑкокнижевно ÑтароперÑиÑкофеникиÑкоПолардовонатпиÑно партиÑко" + + "реџаншкоронгоронгорунÑкоÑамарјанÑкоÑаратиÑтаројужноарапÑкоÑаураштранÑко" + + "знаковно пишувањеШоовошарадаÑидамкудабадиÑинхалÑко пиÑмоÑоранг ÑомпенгÑ" + + "унданÑкоÑилхетÑко нагариÑириÑкоеÑтрангелÑко ÑириÑкозападноÑириÑкоиÑточн" + + "оÑириÑкотагбанванÑкотакритај леново тај луетамилÑко пиÑмотангутÑкотај в" + + "јеттелугутенгвартифинагтагалошкотанатајландÑко пиÑмотибетÑко пиÑмотирху" + + "таугаритÑковајвидлив говорваранг кшитиволеајÑкоÑтароперÑиÑкоÑумероакадÑ" + + "ко клинеÑтојинаÑледеноматематичка нотацијаÑимболибез пиÑмоопштонепознат" + + "о пиÑмо" + +var mkScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x002a, 0x002a, 0x0043, 0x0061, 0x007c, 0x0090, + 0x009e, 0x00ae, 0x00b6, 0x00c4, 0x00e1, 0x00f7, 0x0107, 0x0111, + 0x012a, 0x0138, 0x0148, 0x015a, 0x017b, 0x0189, 0x0195, 0x01a7, + 0x01af, 0x01bd, 0x01cd, 0x01e8, 0x0215, 0x0229, 0x023d, 0x026a, + 0x028d, 0x02b2, 0x02d9, 0x02ed, 0x0308, 0x0325, 0x0340, 0x0352, + 0x035e, 0x036a, 0x037f, 0x038f, 0x039d, 0x03a9, 0x03c0, 0x03d6, + 0x0408, 0x042f, 0x042f, 0x044c, 0x045c, 0x0483, 0x04a6, 0x04c7, + 0x04e1, 0x04f1, 0x0509, 0x0519, 0x0534, 0x0546, 0x0553, 0x0563, + // Entry 40 - 7F + 0x0571, 0x058a, 0x0594, 0x05a2, 0x05bd, 0x05cb, 0x05d5, 0x05e1, + 0x05f8, 0x061b, 0x0638, 0x0655, 0x0667, 0x0671, 0x0684, 0x0697, + 0x06ab, 0x06b7, 0x06c5, 0x06d3, 0x06e3, 0x06f5, 0x0709, 0x072e, + 0x073c, 0x0761, 0x0773, 0x0796, 0x079e, 0x07bb, 0x07c7, 0x07cd, + 0x07df, 0x07df, 0x07fe, 0x0824, 0x0838, 0x084f, 0x0855, 0x085d, + 0x0865, 0x0872, 0x0888, 0x08a5, 0x08b7, 0x08c9, 0x08e1, 0x08f9, + 0x0905, 0x0932, 0x0963, 0x098e, 0x09a0, 0x09b2, 0x09d3, 0x09e3, + 0x09f7, 0x0a03, 0x0a19, 0x0a25, 0x0a47, 0x0a61, 0x0a82, 0x0a8c, + // Entry 80 - BF + 0x0a98, 0x0aa2, 0x0ab2, 0x0acf, 0x0aea, 0x0afc, 0x0b1b, 0x0b29, + 0x0b50, 0x0b6c, 0x0b88, 0x0ba0, 0x0baa, 0x0bb5, 0x0bcb, 0x0be6, + 0x0bf8, 0x0c07, 0x0c13, 0x0c21, 0x0c2f, 0x0c41, 0x0c49, 0x0c68, + 0x0c83, 0x0c91, 0x0ca3, 0x0ca9, 0x0cc0, 0x0cd7, 0x0ce9, 0x0d03, + 0x0d2e, 0x0d32, 0x0d44, 0x0d6b, 0x0d6b, 0x0d79, 0x0d8a, 0x0d94, + 0x0db1, +} // Size: 362 bytes + +var mlScriptStr string = "" + // Size: 3465 bytes + "അറബികàµà´…ർമിഅർമേനിയൻഅവെസàµà´¥àµ»à´¬à´¾à´²à´¿à´¨àµ€à´¸àµà´¬à´Ÿàµà´Ÿà´•àµà´¬à´‚ഗാളിബàµà´²à´¿à´¸àµ à´šà´¿à´¤àµà´° ലിപിബോപàµà´ªàµ‹à´®àµ‹à´«àµ‹" + + "à´¬àµà´°à´¾à´¹àµà´®à´¿à´¬àµà´°àµ†à´¯àµ\u200cലിബàµà´—ിനീസàµà´¬àµà´¹à´¿à´¡àµà´šà´•à´‚à´à´•àµ€à´•àµƒà´¤ കനേഡിയൻ ഗോതàµà´°à´²à´¿à´ªà´¿à´šà´°à´¿à´¯àµ»à´›à´‚" + + "ചെറോകàµà´•à´¿à´šà´¿àµ¼à´¤àµà´¤àµà´•àµ‹à´ªàµà´±àµà´±à´¿à´•àµà´¸àµˆà´ªàµà´°à´¿à´¯àµ‹à´Ÿàµà´Ÿàµà´¸à´¿à´±à´¿à´²à´¿à´•àµà´ªàµà´°à´¾à´¤à´¨ ചർചàµà´šàµ à´¸àµà´²à´µàµ‹à´£à´¿à´•àµ à´¸" + + "ിറിലികàµà´¦àµ‡à´µà´¨à´¾à´—രിഡെസെർടàµà´Ÿàµà´ˆà´œà´¿à´ªàµà´·àµà´¯àµ» ഡിമോടàµà´Ÿà´¿à´•àµà´ˆà´œà´¿à´ªàµà´·àµà´¯àµ» ഹിരാറàµà´±à´¿à´•àµà´ˆà´œà´¿à´ªàµà´·" + + "àµà´¯àµ» à´šà´¿à´¤àµà´°à´²à´¿à´ªà´¿à´Žà´¤àµà´¯àµ‹à´ªà´¿à´•àµà´œàµ‹àµ¼à´œàµà´œà´¿à´¯àµ» à´–àµà´Ÿàµà´¸àµà´°à´¿à´œàµ‹àµ¼à´œàµà´œà´¿à´¯àµ»à´—àµà´²à´—ോലിറàµà´±à´¿à´•àµà´—ോഥികàµà´—àµ" + + "രീകàµà´•àµà´—àµà´œà´±à´¾à´¤àµà´¤à´¿à´—àµà´°àµà´®àµà´–ിഹാംഗàµàµ½à´¹à´¾àµ»à´¹à´¨àµà´¨àµ‚ലളിതവൽകàµà´•à´°à´¿à´šàµà´š ഹാൻപരമàµà´ªà´°à´¾à´—à´¤ ഹാൻഹീ" + + "à´¬àµà´°àµà´¹à´¿à´°à´—ാനപഹàµà´µà´¾ ഹമോംഗàµà´•à´Ÿà´•à´¾à´¨à´¯àµ‹ ഹിരാഗാനയോപàµà´°à´¾à´¤à´¨ ഹംഗേറിയൻസിനàµà´§àµà´ªà´´à´¯ ഇറàµà´±à´¾à´²" + + "ിയൻജാവനീസàµà´œà´¾à´ªàµà´ªà´¨àµ€à´¸àµà´•à´¯à´¾ ലികറàµà´±à´•àµà´•à´¾à´¨à´–രോഷàµà´Ÿà´¿à´–മെർകനàµà´¨à´¡à´•àµŠà´±à´¿à´¯àµ»à´•àµà´¤à´¿à´²à´¨àµà´¨à´²à´¾à´µàµ‹à´«àµ" + + "രാകàµà´Ÿàµàµ¼ ലാറàµà´±à´¿àµ»à´—െയàµ\u200cലികൠലാറàµà´±à´¿àµ»à´²à´¾à´±àµà´±à´¿àµ»à´²àµ†à´ªàµà´šà´²à´¿à´‚à´¬àµà´¸à´®à´°àµ‡à´–യിലàµà´³àµà´³ എലീ" + + "നിയർ ബിലൈസിൻലൈഡിയൻമൻഡേയൻമണിചേയൻമായൻ à´šà´¿à´¤àµà´°à´²à´¿à´ªà´¿à´®àµ†à´±àµ‹à´¯à´¿à´±àµà´±à´¿à´•àµà´®à´²à´¯à´¾à´³à´‚മംഗോളിയ" + + "ൻമൂൺമേറàµà´±à´¿ മായകàµà´®àµà´¯à´¾àµ»à´®à´¾àµ¼à´Žàµ»à´•àµ‹à´’ഖാംഒൽ à´šà´¿à´•àµà´•à´¿à´’ർഖോൺഒഡിയഒസàµ\u200cമാനിയപàµà´°à´¾à´¤à´¨" + + " പെർമികàµà´«à´—സൠപഎഴàµà´¤àµà´¤àµ പഹൽവിസാൾടàµà´Ÿàµ¼ പഹൽവിപഹൽവി ലിപിഫിനീഷàµà´¯àµ»à´ªàµŠà´³àµà´³à´¾àµ¼à´¡àµ ശബàµà´¦" + + "ലിപിപൃതിറെജാംഗàµà´±àµŠà´‚ഗോറൊംഗോറàµà´£à´¿à´•àµà´¸à´®à´°à´¿à´¯à´¸à´°à´¤à´¿à´¸àµ—രാഷàµà´Ÿàµà´°à´šà´¿à´¹àµà´¨à´²à´¿à´ªà´¿à´·à´¾à´µà´¿à´¯àµ»à´¸à´¿à´‚ഹളസ" + + "à´¨àµà´¤à´¾à´¨àµ€à´¸àµà´¸àµˆà´²àµ‹à´¤à´¿ നാഗരിസിറിയകàµà´•àµà´Žà´¸àµà´±àµà´±àµà´°à´¾à´‚à´—àµà´²àµ‹ സിറിയകàµà´ªà´¶àµà´šà´¿à´®à´¸àµà´±à´¿à´¯à´¾à´¨à´¿à´•à´¿à´´à´•àµ" + + "കൻ സിറിയകàµà´¤à´—àµà´¬àµ»à´µà´¾à´¤à´¾à´¯àµ ലേപàµà´¤à´¿à´¯ തായൠലàµà´¯àµ‚തമിഴàµà´¤àµà´µà´Ÿàµà´¤àµ†à´²àµà´™àµà´•àµà´¤àµ†à´‚à´—àµà´µàµ¼à´¤à´¿à´«à´¿à´¨à´¾" + + "à´—àµà´¤à´—ലോഗàµà´¥à´¾à´¨à´¤à´¾à´¯àµà´Ÿà´¿à´¬à´±àµà´±àµ»à´‰à´—àµà´°àµˆà´±àµà´±à´¿à´•àµà´µàµˆà´¦àµƒà´¶àµà´¯à´­à´¾à´·à´ªà´´à´¯ പേർഷàµà´¯àµ»à´¸àµà´®àµ‡à´±àµ‹ à´…à´•àµà´•à´¾à´¡à´¿à´¯àµ»" + + " à´•àµà´¯àµà´£à´¿à´«àµ‹à´‚യിപാരമàµà´ªà´°àµà´¯à´®à´¾à´¯à´—ണിത രൂപംചിഹàµà´¨à´™àµà´™àµ¾à´Žà´´àµà´¤à´ªàµà´ªàµ†à´Ÿà´¾à´¤àµà´¤à´¤àµà´¸à´¾à´§à´¾à´°à´£à´…à´œàµà´žà´¾à´¤ ലി" + + "പി" + +var mlScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x001e, 0x0036, 0x004b, + 0x0063, 0x0063, 0x0063, 0x0075, 0x0087, 0x00b6, 0x00d4, 0x00ec, + 0x0107, 0x011f, 0x0131, 0x013a, 0x017e, 0x018d, 0x0193, 0x01ab, + 0x01c0, 0x01de, 0x0202, 0x021a, 0x0274, 0x028c, 0x02a7, 0x02a7, + 0x02e1, 0x031b, 0x0352, 0x0352, 0x036d, 0x03a1, 0x03bc, 0x03e3, + 0x03f5, 0x03f5, 0x040d, 0x0428, 0x0440, 0x0452, 0x045b, 0x046a, + 0x049e, 0x04c3, 0x04c3, 0x04d5, 0x04e7, 0x04e7, 0x0509, 0x053a, + 0x0565, 0x0577, 0x059c, 0x05b1, 0x05cc, 0x05cc, 0x05dc, 0x05f7, + // Entry 40 - 7F + 0x060c, 0x0618, 0x0618, 0x0627, 0x0639, 0x0639, 0x0645, 0x0651, + 0x065d, 0x068e, 0x06bf, 0x06d4, 0x06e3, 0x06f2, 0x071a, 0x0733, + 0x0733, 0x0733, 0x0742, 0x0754, 0x0754, 0x0766, 0x077b, 0x07a3, + 0x07a3, 0x07a3, 0x07c7, 0x07d9, 0x07d9, 0x07f1, 0x07fa, 0x07fa, + 0x081c, 0x081c, 0x0834, 0x0834, 0x0834, 0x0834, 0x0840, 0x0840, + 0x084c, 0x0865, 0x0874, 0x0880, 0x089b, 0x089b, 0x089b, 0x08c3, + 0x08d3, 0x08f8, 0x091d, 0x0939, 0x0951, 0x0985, 0x0991, 0x09a6, + 0x09c4, 0x09d6, 0x09e5, 0x09f1, 0x09f1, 0x0a0c, 0x0a27, 0x0a39, + // Entry 80 - BF + 0x0a39, 0x0a39, 0x0a39, 0x0a48, 0x0a48, 0x0a63, 0x0a85, 0x0aa0, + 0x0ae0, 0x0b0a, 0x0b35, 0x0b4a, 0x0b4a, 0x0b5d, 0x0b86, 0x0b95, + 0x0b95, 0x0ba4, 0x0bbc, 0x0bd1, 0x0be9, 0x0bfb, 0x0c04, 0x0c10, + 0x0c25, 0x0c25, 0x0c46, 0x0c4c, 0x0c64, 0x0c64, 0x0c64, 0x0c83, + 0x0ccd, 0x0cd3, 0x0cf7, 0x0d10, 0x0d10, 0x0d2b, 0x0d58, 0x0d6a, + 0x0d89, +} // Size: 362 bytes + +var mnScriptStr string = "" + // Size: 532 bytes + "арабарменбенгалвопомофобрайлкирилдеванагариÑтиопгүржгрекгүжаратигурмукхи" + + "хангулханхÑлбаршуулÑан ханзуламжлалт ханзеврейхираганаÑпонкатаканакхмер" + + "каннадаÑолонгоÑлаоÑлатинмалаÑламмонгол бичигмьÑнмарориÑÑинхалатамилтÑлү" + + "гүтанатайтөвдтÑмдÑгбичигдÑÑгүйнийтлÑгтодорхойгүй бичиг" + +var mnScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x001e, 0x001e, 0x002e, 0x002e, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0042, 0x0042, 0x0056, 0x0056, 0x0056, + 0x0056, 0x0056, 0x0056, 0x0056, 0x0060, 0x0060, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0070, 0x0080, 0x0090, 0x009c, 0x00a2, 0x00a2, + 0x00c5, 0x00e0, 0x00e0, 0x00ea, 0x00fa, 0x00fa, 0x00fa, 0x00fa, + 0x00fa, 0x00fa, 0x00fa, 0x00fa, 0x0102, 0x0102, 0x0102, 0x0112, + // Entry 40 - 7F + 0x0112, 0x011c, 0x011c, 0x012a, 0x013a, 0x013a, 0x013a, 0x013a, + 0x0142, 0x0142, 0x0142, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, + 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, 0x014c, + 0x014c, 0x014c, 0x014c, 0x015c, 0x015c, 0x0173, 0x0173, 0x0173, + 0x0173, 0x0173, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, + 0x0181, 0x0181, 0x0181, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + // Entry 80 - BF + 0x0189, 0x0189, 0x0189, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, + 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01a1, + 0x01a1, 0x01a1, 0x01ad, 0x01ad, 0x01ad, 0x01ad, 0x01b5, 0x01bb, + 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, + 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01c3, 0x01cf, 0x01e5, 0x01f3, + 0x0214, +} // Size: 362 bytes + +var mrScriptStr string = "" + // Size: 3386 bytes + "अरबीइमà¥à¤ªà¤¿à¤°à¤¿à¤¯à¤² आरà¥à¤®à¥‡à¤¨à¤¿à¤•à¤…रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¨à¤…वेसà¥à¤¤à¤¾à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤Ÿà¤¾à¤•à¤¬à¤‚गालीबà¥à¤²à¤¿à¤¸à¤¿à¤®à¥à¤¬à¥‰à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹" + + "फोबà¥à¤°à¤¹à¥à¤®à¥€à¤¬à¥à¤°à¥‡à¤²à¤¬à¥‚गीबà¥à¤¹à¤¿à¤¦à¤šà¤•à¤®à¤¾à¤¯à¥‚निफाइड कॅनेडियन अ\u200dॅबोरिदनल सिलॅबिकà¥à¤¸" + + "कॅरियनचामचेरोकीकिरà¥à¤¥à¤•à¥‰à¤ªà¥à¤Ÿà¤¿à¤•à¤¸à¤¾à¤¯à¤ªà¥à¤°à¤¿à¤‘टसीरिलिकपà¥à¤°à¤¾à¤¤à¤¨ चरà¥à¤š सà¥à¤²à¤¾à¤µà¥à¤¹à¥‹à¤¨à¤¿à¤• सिर" + + "िलिकदेवनागरीडेसरà¥à¤Ÿà¤‡à¤œà¤¿à¤ªà¥à¤¶à¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हायरेटिकइजिपà¥à¤¶à¤¿à¤¯à¤¨ हायरोगà¥" + + "लिफà¥à¤¸à¤ˆà¤¥à¤¿à¤“पिकजॉरà¥à¤œà¤¿à¤¯à¤¨ खà¥à¤¤à¥à¤¸à¥à¤°à¥€à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¥…गोलिटिकगोथिकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¥à¤®" + + "à¥à¤–ीहंगà¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¨à¥à¤¨à¥‚सरलीकृत हानपारंपारिक हानहिबà¥à¤°à¥‚हिरागानापहाउ मंगकॅटाकना " + + "आणि हिरागानापà¥à¤°à¤¾à¤¤à¤¨ हंगेरियनसिनà¥à¤§à¥à¤œà¥à¤¨à¥€ इटालिकजावानीसजपानीकायाह लीकॅटाका" + + "नाखारोशà¥à¤¥à¥€à¤–à¥à¤®à¥‡à¤°à¤•à¤¨à¥à¤¨à¤¡à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¤¾à¤‡à¤¥à¥€à¤²à¤¾à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¥…कà¥à¤¤à¥à¤° लॅटिनगाà¤à¤²à¤¿à¤• लेटिनलॅटिन" + + "लेपचालिमà¥à¤¬à¥‚लीनियार अलीनियर बीलायशियानलायडियानमानà¥à¤¡à¤¾à¤¯à¥€à¤¨à¤®à¤¾à¤¨à¥€à¤šà¤¾à¤¯à¥€à¤¨à¤®à¤¾à¤¯à¤¾à¤¨ ह" + + "ाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¥‹à¤‡à¤Ÿà¤¿à¤•à¤®à¤²à¥à¤¯à¤¾à¤³à¤®à¤®à¤‚गोलियनमूनमेइतेइ मायेकमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°à¤à¤¨à¥â€˜à¤•à¥‹à¤“घामओल " + + "चिकिओरà¥à¤–ोनउडियाउसà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¤à¤¨ परà¥à¤®à¤¿à¤•à¤«à¤¾à¤—à¥à¤¸-पाइनà¥à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤¶à¤¨à¤² पाहलवीसॉलà¥" + + "टर पाहलवीबà¥à¤• पाहलवीफोनिशियनपोलारà¥à¤¡ फोनेटिकइनà¥à¤¸à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤¶à¤¨à¤² परà¥à¤¥à¤¿à¤¯à¤¨à¤°à¥€à¤œà¤¾à¤‚ग" + + "रोनà¥à¤—ोरोनà¥à¤—ोरूनिकसमरिटानसरातीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤‚केत लिपीशॅवà¥à¤¹à¤¿à¤¯à¤¨à¤¸à¤¿à¤‚हलासूदानीसि" + + "लोती नागरीसिरीयाकà¤à¤¸à¥à¤¤à¥à¤Ÿà¥à¤°à¥‡à¤¨à¥à¤œà¥‡à¤²à¥‹ सिरियाकपशà¥à¤šà¤¿à¤®à¥€ सिरियाकपूरà¥à¤µà¥€ सिरियाकत" + + "गोआनà¥à¤µà¤¾à¤¤à¤¾à¤ˆ लीनवीन ताई लूतामिळताई विà¤à¤¤à¤¤à¥‡à¤²à¤—à¥à¤¤à¥‡à¤¨à¥à¤—वारतिफिनाघटागालोगथानाथा" + + "ईतिबेटीयà¥à¤—ारिटिकवाईदृशà¥à¤¯ संवादपà¥à¤°à¤¾à¤¤à¤¨ फारसीदृशà¥à¤¯à¤®à¤¾à¤¨ भाषायीवंशपरंपरागतगण" + + "िती संकेतलिपीपà¥à¤°à¤¤à¥€à¤•à¤…लिखितसामानà¥à¤¯à¤…जà¥à¤žà¤¾à¤¤ लिपी" + +var mrScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x0040, 0x005b, 0x0073, + 0x007f, 0x007f, 0x007f, 0x008b, 0x009d, 0x00c4, 0x00dc, 0x00f1, + 0x0100, 0x010c, 0x011b, 0x0127, 0x0193, 0x01a5, 0x01ae, 0x01c0, + 0x01cf, 0x01e4, 0x01ff, 0x0214, 0x026b, 0x0283, 0x0295, 0x0295, + 0x02c6, 0x02fa, 0x033a, 0x033a, 0x034f, 0x0380, 0x0398, 0x03b9, + 0x03c8, 0x03c8, 0x03d7, 0x03ec, 0x0404, 0x0413, 0x041c, 0x042b, + 0x044a, 0x046f, 0x046f, 0x0481, 0x0499, 0x0499, 0x04af, 0x04e7, + 0x0512, 0x0524, 0x0543, 0x0558, 0x0567, 0x0567, 0x057d, 0x0595, + // Entry 40 - 7F + 0x05ad, 0x05bc, 0x05bc, 0x05cb, 0x05dd, 0x05dd, 0x05ec, 0x05f8, + 0x0601, 0x062c, 0x064e, 0x065d, 0x066c, 0x067e, 0x0697, 0x06b0, + 0x06b0, 0x06b0, 0x06c8, 0x06e0, 0x06e0, 0x06fb, 0x0716, 0x074a, + 0x074a, 0x074a, 0x0762, 0x0777, 0x0777, 0x078f, 0x0798, 0x0798, + 0x07ba, 0x07ba, 0x07d2, 0x07d2, 0x07d2, 0x07d2, 0x07e4, 0x07e4, + 0x07f0, 0x0803, 0x0815, 0x0824, 0x083f, 0x083f, 0x083f, 0x0864, + 0x087a, 0x08b7, 0x08dc, 0x08f8, 0x0910, 0x093b, 0x097b, 0x098d, + 0x09b1, 0x09c0, 0x09d5, 0x09e4, 0x09e4, 0x09ff, 0x0a1b, 0x0a33, + // Entry 80 - BF + 0x0a33, 0x0a33, 0x0a33, 0x0a45, 0x0a45, 0x0a57, 0x0a79, 0x0a8e, + 0x0ad1, 0x0afc, 0x0b24, 0x0b3c, 0x0b3c, 0x0b4c, 0x0b69, 0x0b78, + 0x0b78, 0x0b8e, 0x0b9d, 0x0bb5, 0x0bca, 0x0bdf, 0x0beb, 0x0bf4, + 0x0c06, 0x0c06, 0x0c21, 0x0c2a, 0x0c49, 0x0c49, 0x0c49, 0x0c6b, + 0x0c90, 0x0c96, 0x0cb7, 0x0ce2, 0x0ce2, 0x0cf4, 0x0d06, 0x0d1b, + 0x0d3a, +} // Size: 362 bytes + +var msScriptStr string = "" + // Size: 289 bytes + "ArabArmeniaBaliBamuBengaliBopomofoBrailleCansCyrilDevanagariEthiopiaGeor" + + "giaGreekGujaratGurmukhiHangulHanHan RingkasHan TradisionalIbraniHiragana" + + "JepunKatakanaKhmerKannadaKoreaLaoLatinMalayalamMongoliaMyammarOriyaSinha" + + "laTamilTeluguThaanaThaiTibetSimbolTidak ditulisBiasaSkrip Tidak Diketahu" + + "i" + +var msScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x000b, 0x000b, + 0x000f, 0x0013, 0x0013, 0x0013, 0x001a, 0x001a, 0x0022, 0x0022, + 0x0029, 0x0029, 0x0029, 0x0029, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x0032, 0x0032, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x0044, 0x0044, 0x004b, 0x004b, + 0x004b, 0x004b, 0x0050, 0x0057, 0x005f, 0x0065, 0x0068, 0x0068, + 0x0073, 0x0082, 0x0082, 0x0088, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0095, 0x0095, 0x0095, 0x009d, + // Entry 40 - 7F + 0x009d, 0x00a2, 0x00a2, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00b1, 0x00b1, 0x00b1, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, + 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, + 0x00b6, 0x00b6, 0x00b6, 0x00bf, 0x00bf, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + // Entry 80 - BF + 0x00d3, 0x00d3, 0x00d3, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, + 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00da, 0x00df, + 0x00df, 0x00df, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00eb, 0x00ef, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, + 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00f4, 0x00fa, 0x0107, 0x010c, + 0x0121, +} // Size: 362 bytes + +var myScriptStr string = "" + // Size: 1208 bytes + "အာရေဗျအာမေးနီးယားဘင်္ဂါလီဘိုပိုဗြဟ္မမီဘရေစစ်ရိလစ်ဒီဗနာဂရီအီသီယိုးပီးယားဂ" + + "ျော်ဂျီယန်ဂရိဂုဂျာရသီဂူရူဟန်ဂူးလ်ဟန်ရိုးရှင်းသော ဟန်ရှေးရိုးစဉ်လာဟန်ဟီ" + + "ဗရူးဟိရဂá€á€á€á€á€ သို့မဟုá€á€º ဟိရဂá€á€‚ျာဗားနီးစ်ဂျပန်ကယားလီá€á€á€á€á€á€™á€¬á€á€”္နာဒါကိုးရ" + + "ီးယားလာအိုလက်á€á€„်မာလာရာလန်မွန်ဂိုလီးယားမြန်မာအိုရာဆင်ဟာလá€á€­á€¯á€„်လီá€á€™á€®á€¸á€œá€ºá€á€®" + + "လုá€á€‚လော့ဂ်သာအ်ထိုင်းá€á€­á€˜á€€á€ºá€™á€¼á€„်နိုင်သော စကားပါရှန် အဟောင်းရီသင်္ကေá€á€™á€›á€±á€¸á€‘" + + "ားသောအများနှင့်သက်ဆိုင်သောမသိ သို့မဟုá€á€º မရှိသော စကားလုံး" + +var myScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x004b, 0x004b, 0x005d, 0x0072, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + 0x007b, 0x007b, 0x007b, 0x0093, 0x0093, 0x00ab, 0x00ab, 0x00ab, + 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00d5, 0x00d5, 0x00f6, 0x00f6, + 0x00f6, 0x00f6, 0x00ff, 0x0117, 0x0123, 0x013b, 0x0144, 0x0144, + 0x0172, 0x01a2, 0x01a2, 0x01b4, 0x01c3, 0x01c3, 0x01c3, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x021c, 0x022b, 0x022b, 0x023d, 0x0249, + // Entry 40 - 7F + 0x0249, 0x0252, 0x0252, 0x0267, 0x0285, 0x0285, 0x0285, 0x0285, + 0x0294, 0x0294, 0x0294, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, + 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, + 0x02a6, 0x02a6, 0x02a6, 0x02c1, 0x02c1, 0x02e8, 0x02e8, 0x02e8, + 0x02e8, 0x02e8, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, 0x02fa, + 0x02fa, 0x02fa, 0x02fa, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, + 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, + 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, 0x0309, + // Entry 80 - BF + 0x0309, 0x0309, 0x0309, 0x031b, 0x031b, 0x031b, 0x031b, 0x031b, + 0x031b, 0x031b, 0x031b, 0x031b, 0x031b, 0x0330, 0x0330, 0x0342, + 0x0342, 0x0342, 0x034e, 0x034e, 0x034e, 0x0366, 0x0372, 0x0384, + 0x0393, 0x0393, 0x0393, 0x0393, 0x03c4, 0x03c4, 0x03c4, 0x03ec, + 0x03ec, 0x03f2, 0x03f2, 0x03f2, 0x03f2, 0x0407, 0x0425, 0x0464, + 0x04b8, +} // Size: 362 bytes + +var neScriptStr string = "" + // Size: 3010 bytes + "अरबीआरà¥à¤®à¥€à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤²à¥€à¤†à¤­à¥‡à¤¸à¥à¤Ÿà¤¾à¤¨à¤¬à¤¾à¤²à¥€à¤¬à¤¾à¤Ÿà¤•à¤¬à¤™à¥à¤—ालीबà¥à¤²à¤¿à¤œà¤¸à¤¿à¤®à¥à¤¬à¥‹à¤²à¥à¤¸à¤¬à¥‹à¤ªà¥‹à¤®à¥‹à¤«à¥‹à¤¬à¥à¤°à¤¾à¤¹à¥à¤®" + + "ीबà¥à¤°à¥‡à¤²à¤¬à¥à¤—िनिजबà¥à¤¹à¤¿à¤¦à¤•à¤¾à¤•à¥à¤®à¥à¤•à¤¾à¤°à¤¿à¤¯à¤¨à¤šà¤¾à¤®à¤šà¥‡à¤°à¥‹à¤•à¥€à¤•à¤¿à¤°à¥à¤¥à¤•à¤ªà¥à¤Ÿà¤¿à¤•à¤•à¤ªà¥à¤°à¤¿à¤¯à¤Ÿà¤¸à¤¿à¤°à¤¿à¤²à¤¿à¤•à¤¦à¥‡à¤µà¤¾à¤¨à¤¾" + + "गरीडेसेरेटइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ डेमोटिकइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ हाइरटिकइजिपà¥à¤Ÿà¤¿à¤¯à¤¨ हाइरोगà¥à¤²à¤¿à¤«à¥à¤¸à¤‡à¤¥à¤¿à¤¯" + + "ोपिकगà¥à¤°à¥à¤œà¤¿à¤¯à¤¾à¤²à¥€ खà¥à¤Ÿà¥à¤¸à¥à¤°à¥€à¤œà¥‹à¤°à¥à¤œà¤¿à¤¯à¤¨à¤—à¥à¤²à¤¾à¤—ोलिटिकगोथिकगà¥à¤°à¥€à¤•à¤—à¥à¤œà¤°à¤¾à¤¤à¥€à¤—à¥à¤°à¥‚मà¥à¤–ीहान" + + "à¥à¤—à¥à¤²à¤¹à¤¾à¤¨à¤¹à¤¾à¤¨à¥à¤¨à¥à¤¸à¤°à¤²à¤¿à¤•à¥ƒà¤¤ चिनीपरमà¥à¤ªà¤°à¤¾à¤—त चिनीहिबà¥à¤°à¥à¤¹à¤¿à¤°à¤¾à¤—नापहावह हमोङà¥à¤—काताका" + + "ना वा हिरागानापà¥à¤°à¤¾à¤¨à¥‹ हङà¥à¤—ेरियालीइनà¥à¤¦à¥à¤¸à¤ªà¥à¤°à¤¾à¤¨à¥‹ इटालिकजाभानीजापानीकायाहली" + + "काताकानाखारोसà¥à¤¥à¤¿à¤¤à¤¿à¤–मेरकानà¥à¤¨à¤¾à¤¡à¤¾à¤•à¥‹à¤°à¤¿à¤¯à¤¨à¤•à¥à¤¥à¥€à¤²à¤¾à¤¨à¥à¤¨à¤¾à¤²à¤¾à¤“फà¥à¤°à¤¾à¤•à¥à¤Ÿà¥à¤° लà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤—à¥à¤¯à¤¾" + + "लिक लà¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²à¥à¤¯à¤¾à¤Ÿà¤¿à¤¨à¤²à¥‡à¤ªà¥à¤šà¤¾à¤²à¤¿à¤®à¥à¤¬à¥à¤²à¤¾à¤‡à¤¸à¤¿à¤¯à¤¨à¤²à¤¾à¤‡à¤¡à¤¿à¤¯à¤¨à¤®à¤¾à¤¨à¥à¤¡à¤¾à¤à¤¨à¤®à¤¾à¤¨à¤¿à¤•à¤¾à¤à¤¨à¤®à¤¾à¤¯à¤¾ हाइरो" + + "गà¥à¤²à¤¿à¤«à¥à¤¸à¤®à¥‡à¤°à¤¿à¤¯à¥‹à¤Ÿà¤¿à¤•à¤®à¤²à¤¾à¤¯à¤¾à¤²à¤®à¤®à¤™à¥à¤—ोलजूनमाइटेइ मायेकमà¥à¤¯à¤¾à¤¨à¥à¤®à¤¾à¤°à¤à¤¨à¥à¤•à¥‹à¤“घामओलचिकीओर" + + "à¥à¤–ोनओडियाओसà¥à¤®à¤¾à¤¨à¥à¤¯à¤¾à¤ªà¥à¤°à¤¾à¤¨à¥‹ परà¥à¤®à¤¿à¤•à¤«à¤¾à¤—à¥à¤¸-पाफà¥à¤²à¤¿à¤«à¥à¤²à¥à¤ªà¤¬à¥à¤• पहलà¥à¤­à¥€à¤«à¥‹à¤¨à¤¿à¤¸à¤¿à¤¯à¤¨à¤ªà¥‹à¤²à¥" + + "लारà¥à¤¡ फोनेटिकपिआरटीरेजाङरोङà¥à¤—ोरोङà¥à¤—ोरूनिकसमारिटनसारतीसौराषà¥à¤Ÿà¥à¤°à¤¸à¤¾à¤‡à¤¨à¤°à¤¾à¤‡à¤Ÿ" + + "िङशाभियनसिनà¥à¤¹à¤¾à¤²à¤¾à¤¸à¥à¤²à¥à¤¯à¥‹à¤Ÿà¥€ नागà¥à¤°à¥€à¤¸à¤¿à¤°à¤¿à¤¯à¤¾à¤•à¤‡à¤¸à¥à¤Ÿà¥à¤°à¥‡à¤¨à¤œà¥‡à¤²à¥‹ सिरियाकपशà¥à¤šà¤¿à¤®à¥€ सिरि" + + "याकपूरà¥à¤µà¥€ सिरियाकटागà¥à¤µà¤¾à¤¨à¥à¤µà¤¾à¤Ÿà¤¾à¤‡à¤²à¥‡à¤¨à¥à¤¯à¥‚ टाइ लà¥à¤‡à¤¤à¤¾à¤®à¤¿à¤²à¤Ÿà¤¾à¤­à¥à¤Ÿà¤¤à¥‡à¤²à¥à¤—à¥à¤Ÿà¥‡à¤™à¥à¤µà¤¾à¤°à¤Ÿà¤¿à¤«" + + "िनाघटागालोगथानाथाईतिबà¥à¤¬à¤¤à¥€à¤¯à¥à¤—ारिटिकभाइदृशà¥à¤¯à¤®à¤¯ वाणीपà¥à¤°à¤¾à¤¨à¥‹ परà¥à¤¸à¤¿à¤¯à¤¨à¤¯à¥€à¤‡à¤¨à¥à¤¹à¥‡" + + "रिटेडजमथपà¥à¤°à¤¤à¥€à¤•à¤¹à¤°à¥‚नलेखिà¤à¤•à¥‹à¤¸à¤¾à¤à¤¾à¤…जà¥à¤žà¤¾à¤¤ लिपि" + +var neScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x001b, 0x003c, 0x0054, + 0x0060, 0x0060, 0x0060, 0x006c, 0x0081, 0x00ab, 0x00c3, 0x00db, + 0x00ea, 0x00ff, 0x010e, 0x0120, 0x0120, 0x0132, 0x013b, 0x014d, + 0x015c, 0x016e, 0x0183, 0x0198, 0x0198, 0x01b3, 0x01c8, 0x01c8, + 0x01f9, 0x022a, 0x026a, 0x026a, 0x0282, 0x02b9, 0x02d1, 0x02f2, + 0x0301, 0x0301, 0x0310, 0x0325, 0x033d, 0x0352, 0x035b, 0x036d, + 0x038f, 0x03b7, 0x03b7, 0x03c9, 0x03de, 0x03de, 0x0400, 0x0438, + 0x046c, 0x047e, 0x04a3, 0x04b5, 0x04c7, 0x04c7, 0x04dc, 0x04f4, + // Entry 40 - 7F + 0x0512, 0x051e, 0x051e, 0x0536, 0x0548, 0x0548, 0x0554, 0x0566, + 0x056f, 0x05a0, 0x05cb, 0x05e0, 0x05f2, 0x0604, 0x0604, 0x0604, + 0x0604, 0x0604, 0x0619, 0x062e, 0x062e, 0x0646, 0x065e, 0x068f, + 0x068f, 0x068f, 0x06aa, 0x06bf, 0x06bf, 0x06d1, 0x06da, 0x06da, + 0x06fc, 0x06fc, 0x0717, 0x0717, 0x0717, 0x0717, 0x0726, 0x0726, + 0x0732, 0x0744, 0x0756, 0x0765, 0x0780, 0x0780, 0x0780, 0x07a5, + 0x07bb, 0x07c7, 0x07d6, 0x07f2, 0x080a, 0x083b, 0x084d, 0x085c, + 0x0880, 0x088f, 0x08a4, 0x08b3, 0x08b3, 0x08ce, 0x08ec, 0x08fe, + // Entry 80 - BF + 0x08fe, 0x08fe, 0x08fe, 0x0916, 0x0916, 0x0916, 0x0941, 0x0956, + 0x0990, 0x09bb, 0x09e3, 0x0a01, 0x0a01, 0x0a10, 0x0a30, 0x0a3f, + 0x0a3f, 0x0a4e, 0x0a60, 0x0a75, 0x0a8a, 0x0a9f, 0x0aab, 0x0ab4, + 0x0ac9, 0x0ac9, 0x0ae4, 0x0aed, 0x0b0f, 0x0b0f, 0x0b0f, 0x0b37, + 0x0b37, 0x0b3d, 0x0b5b, 0x0b64, 0x0b64, 0x0b7f, 0x0b97, 0x0ba3, + 0x0bc2, +} // Size: 362 bytes + +var nlScriptStr string = "" + // Size: 1633 bytes + "DefakaKaukasisch AlbaneesAhomArabischKeizerlijk ArameesArmeensAvestaansB" + + "alineesBamounBassa VahBatakBengaalsBlissymbolenBopomofoBrahmiBrailleBugi" + + "neesBuhidChakmaVerenigde Canadese Aboriginal-symbolenCarischChamCherokee" + + "CirthKoptischCyprischCyrillischOudkerkslavisch CyrillischDevanagariDeser" + + "etDuployan snelschriftEgyptisch demotischEgyptisch hiëratischEgyptische " + + "hiërogliefenElbasanEthiopischGeorgisch KhutsuriGeorgischGlagolitischGoth" + + "ischGranthaGrieksGujaratiGurmukhiHangulHanHanunoovereenvoudigd Chineestr" + + "aditioneel ChineesHatranHebreeuwsHiraganaAnatolische hiërogliefenPahawh " + + "HmongKatakana of HiraganaOudhongaarsIndusOud-italischJavaansJapansJurche" + + "nKayah LiKatakanaKharoshthiKhmerKhojkiKannadaKoreaansKpelleKaithiLannaLa" + + "otiaansGotisch LatijnsGaelisch LatijnsLatijnsLepchaLimbuLineair ALineair" + + " BFraserLomaLycischLydischMahajaniMandaeansManicheaansMayahiërogliefenMe" + + "ndeMeroitisch cursiefMeroïtischMalayalamModiMongoolsMoonMroMeiteiMultani" + + "BirmaansOud Noord-ArabischNabateaansNaxi GebaN’KoNüshuOghamOl ChikiOrkho" + + "nOdiaOsmanyaPalmyreensPau Cin HauOudpermischPhags-paInscriptioneel Pahla" + + "viPsalmen PahlaviBoek PahlaviFoenicischPollard-fonetischInscriptioneel P" + + "arthischRejangRongorongoRunicSamaritaansSaratiOud Zuid-ArabischSaurashtr" + + "aSignWritingShavianSharadaSiddhamSindhiSingaleesSora SompengSoendaneesSy" + + "loti NagriSyriacEstrangelo ArameesWest-ArameesOost-ArameesTagbanwaTakriT" + + "ai LeNieuw Tai LueTamilTangutTai VietTeluguTengwarTifinaghTagalogThaanaT" + + "haiTibetaansTirhutaUgaritischVaiZichtbare spraakVarang KshitiWoleaiOudpe" + + "rzischSumero-Akkadian CuneiformYiOvergeërfdWiskundige notatieSymbolenong" + + "eschrevenalgemeenonbekend schriftsysteem" + +var nlScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0006, 0x0019, 0x001d, 0x0025, 0x0037, 0x003e, 0x0047, + 0x004f, 0x0055, 0x005e, 0x0063, 0x006b, 0x0077, 0x007f, 0x0085, + 0x008c, 0x0094, 0x0099, 0x009f, 0x00c5, 0x00cc, 0x00d0, 0x00d8, + 0x00dd, 0x00e5, 0x00ed, 0x00f7, 0x0111, 0x011b, 0x0122, 0x0136, + 0x0149, 0x015e, 0x0176, 0x017d, 0x0187, 0x0199, 0x01a2, 0x01ae, + 0x01b6, 0x01bd, 0x01c3, 0x01cb, 0x01d3, 0x01d9, 0x01dc, 0x01e3, + 0x01f8, 0x020c, 0x0212, 0x021b, 0x0223, 0x023c, 0x0248, 0x025c, + 0x0267, 0x026c, 0x0278, 0x027f, 0x0285, 0x028c, 0x0294, 0x029c, + // Entry 40 - 7F + 0x02a6, 0x02ab, 0x02b1, 0x02b8, 0x02c0, 0x02c6, 0x02cc, 0x02d1, + 0x02da, 0x02e9, 0x02f9, 0x0300, 0x0306, 0x030b, 0x0314, 0x031d, + 0x0323, 0x0327, 0x032e, 0x0335, 0x033d, 0x0346, 0x0351, 0x0362, + 0x0367, 0x0379, 0x0384, 0x038d, 0x0391, 0x0399, 0x039d, 0x03a0, + 0x03a6, 0x03ad, 0x03b5, 0x03c7, 0x03d1, 0x03da, 0x03e0, 0x03e6, + 0x03eb, 0x03f3, 0x03f9, 0x03fd, 0x0404, 0x040e, 0x0419, 0x0424, + 0x042c, 0x0442, 0x0451, 0x045d, 0x0467, 0x0478, 0x0490, 0x0496, + 0x04a0, 0x04a5, 0x04b0, 0x04b6, 0x04c7, 0x04d1, 0x04dc, 0x04e3, + // Entry 80 - BF + 0x04ea, 0x04f1, 0x04f7, 0x0500, 0x050c, 0x0516, 0x0522, 0x0528, + 0x053a, 0x0546, 0x0552, 0x055a, 0x055f, 0x0565, 0x0572, 0x0577, + 0x057d, 0x0585, 0x058b, 0x0592, 0x059a, 0x05a1, 0x05a7, 0x05ab, + 0x05b4, 0x05bb, 0x05c5, 0x05c8, 0x05d8, 0x05e5, 0x05eb, 0x05f6, + 0x060f, 0x0611, 0x061c, 0x062e, 0x062e, 0x0636, 0x0642, 0x064a, + 0x0661, +} // Size: 362 bytes + +var noScriptStr string = "" + // Size: 1588 bytes + "afakakaukasus-albanskahomarabiskarameiskarmenskavestiskbalinesiskbamumba" + + "ssa vahbatakbengalskblissymbolbopomofobrahmibraillebuginesiskbuhidchakma" + + "felles kanadiske ursprÃ¥ksstavelserkariskchamcherokeecirthkoptiskkyprioti" + + "skkyrilliskkirkeslavisk kyrilliskdevanagarideseretduployan stenografiegy" + + "ptisk demotiskegyptisk hieratiskegyptiske hieroglyferelbasisketiopiskgeo" + + "rgisk khutsurigeorgiskglagolittiskgotiskgammeltamilskgreskgujaratigurmuk" + + "hihangulhanhanunooforenklet hantradisjonell hanhatransk armenskhebraiskh" + + "iraganaanatoliske hieroglyferpahawh hmongkatakana eller hiraganagammelun" + + "garskindusgammelitaliskjavanesiskjapanskjurchenkayah likatakanakharoshth" + + "ikhmerkhojkikannadakoreanskkpellekaithisklannalaotiskfrakturlatinskgælis" + + "k latinsklatinsklepchalimbulineær Alineær Bfraserlomalykisklydiskmahajan" + + "imandaiskmanikeiskmaya-hieroglyfermendemeroitisk kursivmeroitiskmalayala" + + "mmodimongolskmoonmromeitei-mayekmultanimyanmargammelnordarabisknabataean" + + "sknaxi geban’konüshuoghamol-chikiorkhonoriyaosmanyapalmyrenskpau cin hau" + + "gammelpermiskphags-painskripsjonspahlavipsalter pahlavipahlavifønikiskpo" + + "llard-fonetiskinskripsjonsparthiskrejangrongorongorunersamaritansksarati" + + "gammelsørarabisksaurashtrategnskriftshavisksharadasiddhamkhudawadisinhal" + + "asora sompengsundanesisksyloti nagrisyriskestrangelosyriakiskvestlig syr" + + "iakiskøstlig syriakisktagbanwatakritai leny tai luetamilsktanguttai viet" + + "telugutengwartifinaghtagalogthaanathaitibetansktirhutaugaritiskvaisynlig" + + " talevarang kshitiwoleaigammelpersisksumersk-akkadisk kileskriftyinedarv" + + "etmatematisk notasjonsymbolersprÃ¥k uten skriftfellesukjent skrift" + +var noScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0015, 0x0019, 0x0020, 0x0028, 0x002f, 0x0037, + 0x0041, 0x0046, 0x004f, 0x0054, 0x005c, 0x0066, 0x006e, 0x0074, + 0x007b, 0x0085, 0x008a, 0x0090, 0x00b3, 0x00b9, 0x00bd, 0x00c5, + 0x00ca, 0x00d1, 0x00db, 0x00e4, 0x00fa, 0x0104, 0x010b, 0x011e, + 0x012f, 0x0141, 0x0156, 0x015e, 0x0166, 0x0177, 0x017f, 0x018b, + 0x0191, 0x019e, 0x01a3, 0x01ab, 0x01b3, 0x01b9, 0x01bc, 0x01c3, + 0x01d0, 0x01e0, 0x01f0, 0x01f8, 0x0200, 0x0216, 0x0222, 0x0239, + 0x0246, 0x024b, 0x0258, 0x0262, 0x0269, 0x0270, 0x0278, 0x0280, + // Entry 40 - 7F + 0x028a, 0x028f, 0x0295, 0x029c, 0x02a4, 0x02aa, 0x02b2, 0x02b7, + 0x02be, 0x02cc, 0x02db, 0x02e2, 0x02e8, 0x02ed, 0x02f6, 0x02ff, + 0x0305, 0x0309, 0x030f, 0x0315, 0x031d, 0x0325, 0x032e, 0x033e, + 0x0343, 0x0353, 0x035c, 0x0365, 0x0369, 0x0371, 0x0375, 0x0378, + 0x0384, 0x038b, 0x0392, 0x03a3, 0x03ae, 0x03b7, 0x03bd, 0x03c3, + 0x03c8, 0x03d0, 0x03d6, 0x03db, 0x03e2, 0x03ec, 0x03f7, 0x0404, + 0x040c, 0x041f, 0x042e, 0x0435, 0x043e, 0x044e, 0x0462, 0x0468, + 0x0472, 0x0477, 0x0482, 0x0488, 0x0499, 0x04a3, 0x04ad, 0x04b4, + // Entry 80 - BF + 0x04bb, 0x04c2, 0x04cb, 0x04d2, 0x04de, 0x04e9, 0x04f5, 0x04fb, + 0x050e, 0x051f, 0x0530, 0x0538, 0x053d, 0x0543, 0x054d, 0x0554, + 0x055a, 0x0562, 0x0568, 0x056f, 0x0577, 0x057e, 0x0584, 0x0588, + 0x0591, 0x0598, 0x05a1, 0x05a4, 0x05af, 0x05bc, 0x05c2, 0x05cf, + 0x05ea, 0x05ec, 0x05f4, 0x0607, 0x0607, 0x060f, 0x0621, 0x0627, + 0x0634, +} // Size: 362 bytes + +var paScriptStr string = "" + // Size: 740 bytes + "ਅਰਬੀਅਰਮੀਨੀਆਈਬੰਗਾਲੀਬੋਪੋਮੋਫੋਬਰੇਲਸਿਰੀਲਿਕਦੇਵਨਾਗਰੀਇਥੀਓਪਿਕਜਾਰਜੀਆਈਗà©à¨°à©€à¨•à¨—à©à¨œà¨°à¨¾à¨¤à©€à¨—" + + "à©à¨°à¨®à©à¨–ੀਹੰਗà©à¨²à¨¹à¨¾à¨¨à¨¸à¨°à¨² ਹਾਨਰਵਾਇਤੀ ਹਾਨਹਿਬਰੂਹਿਰਾਗਾਨਾਜਪਾਨੀਕਾਟਾਕਾਨਾਖਮੇਰਕੰਨੜਕੋਰੀਆ" + + "ਈਲਾਓਲਾਤੀਨੀਮਲਿਆਲਮਮੰਗੋਲੀਅਨਮਿਆਂਮਾਰਉੜੀਆਸਿੰਹਾਲਾਤਮਿਲਤੇਲਗੂਥਾਨਾਥਾਈਤਿੱਬਤੀਗਣਿਤ ਚ" + + "ਿੰਨà©à¨¹-ਲਿਪੀਚਿੰਨà©à¨¹à¨…ਲਿਖਤਸਧਾਰਨਅਣਪਛਾਤੀ ਲਿਪੀ" + +var paScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0036, 0x0036, 0x004e, 0x004e, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x006f, 0x006f, 0x0087, 0x0087, 0x0087, + 0x0087, 0x0087, 0x0087, 0x0087, 0x009c, 0x009c, 0x00b1, 0x00b1, + 0x00b1, 0x00b1, 0x00c0, 0x00d5, 0x00ea, 0x00f9, 0x0102, 0x0102, + 0x0115, 0x0131, 0x0131, 0x0140, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0167, 0x0167, 0x0167, 0x017f, + // Entry 40 - 7F + 0x017f, 0x018b, 0x018b, 0x0197, 0x01a9, 0x01a9, 0x01a9, 0x01a9, + 0x01b2, 0x01b2, 0x01b2, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, + 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, 0x01c4, + 0x01c4, 0x01c4, 0x01c4, 0x01d6, 0x01d6, 0x01ee, 0x01ee, 0x01ee, + 0x01ee, 0x01ee, 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, 0x0203, + 0x0203, 0x0203, 0x0203, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, + 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, + 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, 0x020f, + // Entry 80 - BF + 0x020f, 0x020f, 0x020f, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, + 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0224, 0x0230, + 0x0230, 0x0230, 0x023f, 0x023f, 0x023f, 0x023f, 0x024b, 0x0254, + 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, + 0x0266, 0x0266, 0x0266, 0x0292, 0x0292, 0x02a4, 0x02b3, 0x02c2, + 0x02e4, +} // Size: 362 bytes + +var plScriptStr string = "" + // Size: 1483 bytes + "arabskiearmiormiaÅ„skieawestyjskiebalijskiebamunbatakbengalskiesymbole Bl" + + "issabopomofobrahmiBraille’abugiÅ„skiebuhidchakmazunifikowane symbole kana" + + "dyjskich autochtonówkaryjskieczamskieczirokeskicirthkoptyjskiecypryjskie" + + "cyrylicacyrylica staro-cerkiewno-sÅ‚owiaÅ„skadevanagarideseretegipskie dem" + + "otyczneegipskie hieratycznehieroglify egipskieetiopskiegruziÅ„skie chucur" + + "igruziÅ„skiegÅ‚agolicagotyckiegreckiegudźarackiegurmukhihangylhanhanunooup" + + "roszczone hantradycyjne hanhebrajskiehiraganapahawh hmongkatakana lub hi" + + "raganastarowÄ™gierskieindusstarowÅ‚oskiejawajskiejapoÅ„skiekayah likatakana" + + "charostikhmerskiekannadakoreaÅ„skiekaithilannalaotaÅ„skieÅ‚aciÅ„ski - fraktu" + + "raÅ‚aciÅ„ski - odmiana gaelickaÅ‚aciÅ„skielepchalimbulinearne Alinearne Blik" + + "ijskielidyjskiemandejskiemanichejskiehieroglify Majówmeroickiemalajalamm" + + "ongolskieMoon’ameitei mayekbirmaÅ„skien’kooghamol chikiorchoÅ„skieorijaosm" + + "anyastaropermskiephags-painskrypcyjne pahlawipahlawi psaÅ‚terzowypahlawi " + + "książkowyfenickifonetyczny Pollard’apartyjski inskrypcyjnyrejangrongoron" + + "gorunicznesamarytaÅ„skisaratisaurashtrapismo znakoweshawasyngaleskiesunda" + + "jskiesyloti nagrisyryjskisyriacki estrangelosyryjski (odmiana zachodnia)" + + "syryjski (odmiana wschodnia)tagbanwatai lenowy tai luetamilskietai viett" + + "elugutengwartifinagh (berberski)tagalogthaanatajskietybetaÅ„skieugaryckie" + + "vaiVisible Speechstaroperskieklinowe sumero-akadyjskieyidziedziczonenota" + + "cja matematycznasymbolejÄ™zyk bez systemu pismawspólnenieznane lub niepop" + + "rawne" + +var plScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x000c, 0x0017, 0x0022, + 0x002b, 0x0030, 0x0030, 0x0035, 0x003f, 0x004d, 0x0055, 0x005b, + 0x0066, 0x0070, 0x0075, 0x007b, 0x00a9, 0x00b2, 0x00ba, 0x00c4, + 0x00c9, 0x00d3, 0x00dd, 0x00e5, 0x010a, 0x0114, 0x011b, 0x011b, + 0x012e, 0x0142, 0x0155, 0x0155, 0x015e, 0x0171, 0x017c, 0x0186, + 0x018e, 0x018e, 0x0195, 0x01a1, 0x01a9, 0x01af, 0x01b2, 0x01b9, + 0x01c8, 0x01d6, 0x01d6, 0x01e0, 0x01e8, 0x01e8, 0x01f4, 0x0209, + 0x0219, 0x021e, 0x022b, 0x0234, 0x023e, 0x023e, 0x0246, 0x024e, + // Entry 40 - 7F + 0x0256, 0x025f, 0x025f, 0x0266, 0x0271, 0x0271, 0x0277, 0x027c, + 0x0287, 0x029c, 0x02b9, 0x02c4, 0x02ca, 0x02cf, 0x02d9, 0x02e3, + 0x02e3, 0x02e3, 0x02ec, 0x02f5, 0x02f5, 0x02ff, 0x030b, 0x031c, + 0x031c, 0x031c, 0x0325, 0x032e, 0x032e, 0x0338, 0x0340, 0x0340, + 0x034c, 0x034c, 0x0357, 0x0357, 0x0357, 0x0357, 0x035d, 0x035d, + 0x0362, 0x036a, 0x0375, 0x037a, 0x0381, 0x0381, 0x0381, 0x038e, + 0x0396, 0x03aa, 0x03be, 0x03d1, 0x03d8, 0x03ee, 0x0404, 0x040a, + 0x0414, 0x041c, 0x0429, 0x042f, 0x042f, 0x0439, 0x0446, 0x044b, + // Entry 80 - BF + 0x044b, 0x044b, 0x044b, 0x0456, 0x0456, 0x0460, 0x046c, 0x0474, + 0x0487, 0x04a3, 0x04bf, 0x04c7, 0x04c7, 0x04cd, 0x04d9, 0x04e2, + 0x04e2, 0x04ea, 0x04f0, 0x04f7, 0x050b, 0x0512, 0x0518, 0x051f, + 0x052b, 0x052b, 0x0534, 0x0537, 0x0545, 0x0545, 0x0545, 0x0551, + 0x056a, 0x056c, 0x0578, 0x058c, 0x058c, 0x0593, 0x05ab, 0x05b3, + 0x05cb, +} // Size: 362 bytes + +var ptScriptStr string = "" + // Size: 1251 bytes + "árabearmiarmênioavésticobalinêsbamumbataquebengalisímbolos blissbopomofo" + + "brahmibraillebuginêsbuhidcakmescrita silábica unificada dos aborígenes c" + + "anadensescarianochamcherokeecirthcópticocipriotacirílicocirílico eslavo " + + "eclesiásticodevanágarideseretdemótico egípciohierático egípciohieróglifo" + + "s egípciosetiópicokhutsuri georgianogeorgianoglagolíticogóticogregogujer" + + "atigurmuquihangulhanhanunoohan simplificadohan tradicionalhebraicohiraga" + + "napahawh hmongkatakana ou hiraganahúngaro antigoindoitálico antigojavanê" + + "sjaponêskayah likatakanakharoshthikhmerkannadacoreanokthilannalaolatim f" + + "rakturlatim gaélicolatimlepchalimbulinear Alinear Blisulíciolídiomandaic" + + "omaniqueanohieróglifos maiasmeroítico cursivomeroíticomalaialamongolmoon" + + "meitei mayekbirmanêsn’koogâmicool chikiorkhonoriyaosmaniapérmico antigop" + + "hags-paphliphlppahlavi antigofeníciofonético pollardprtirejangrongorongo" + + "rúnicosamaritanosaratisaurashtrasignwritingshavianocingalêssundanêssylot" + + "i nagrisiríacosiríaco estrangelosiríaco ocidentalsiríaco orientaltagbanw" + + "atai Lenovo tai luetâmiltavttélugotengwartifinaghtagalothaanatailandêsti" + + "betanougaríticovaivisible speechpersa antigosumério-acadiano cuneiformey" + + "iherdadozmthzsymágrafocomumescrita desconhecida" + +var ptScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x000a, 0x0012, 0x001b, + 0x0023, 0x0028, 0x0028, 0x002f, 0x0036, 0x0045, 0x004d, 0x0053, + 0x005a, 0x0062, 0x0067, 0x006b, 0x00a1, 0x00a8, 0x00ac, 0x00b4, + 0x00b9, 0x00c1, 0x00c9, 0x00d2, 0x00f0, 0x00fb, 0x0102, 0x0102, + 0x0114, 0x0127, 0x013d, 0x013d, 0x0146, 0x0158, 0x0161, 0x016d, + 0x0174, 0x0174, 0x0179, 0x0181, 0x0189, 0x018f, 0x0192, 0x0199, + 0x01a9, 0x01b8, 0x01b8, 0x01c0, 0x01c8, 0x01c8, 0x01d4, 0x01e8, + 0x01f7, 0x01fb, 0x020a, 0x0212, 0x021a, 0x021a, 0x0222, 0x022a, + // Entry 40 - 7F + 0x0234, 0x0239, 0x0239, 0x0240, 0x0247, 0x0247, 0x024b, 0x0250, + 0x0253, 0x0260, 0x026e, 0x0273, 0x0279, 0x027e, 0x0286, 0x028e, + 0x0292, 0x0292, 0x0298, 0x029e, 0x029e, 0x02a6, 0x02b0, 0x02c2, + 0x02c2, 0x02d4, 0x02de, 0x02e6, 0x02e6, 0x02ec, 0x02f0, 0x02f0, + 0x02fc, 0x02fc, 0x0305, 0x0305, 0x0305, 0x0305, 0x030b, 0x030b, + 0x0313, 0x031b, 0x0321, 0x0326, 0x032d, 0x032d, 0x032d, 0x033c, + 0x0344, 0x0348, 0x034c, 0x035a, 0x0362, 0x0373, 0x0377, 0x037d, + 0x0387, 0x038e, 0x0398, 0x039e, 0x039e, 0x03a8, 0x03b3, 0x03bb, + // Entry 80 - BF + 0x03bb, 0x03bb, 0x03bb, 0x03c4, 0x03c4, 0x03cd, 0x03d9, 0x03e1, + 0x03f4, 0x0406, 0x0417, 0x041f, 0x041f, 0x0425, 0x0431, 0x0437, + 0x0437, 0x043b, 0x0442, 0x0449, 0x0451, 0x0457, 0x045d, 0x0467, + 0x046f, 0x046f, 0x0479, 0x047c, 0x048a, 0x048a, 0x048a, 0x0496, + 0x04b2, 0x04b4, 0x04bb, 0x04bf, 0x04bf, 0x04c3, 0x04ca, 0x04cf, + 0x04e3, +} // Size: 362 bytes + +var ptPTScriptStr string = "" + // Size: 103 bytes + "arménioegípcio demóticoegípcio hieráticoguzerateindussiloti nagritai let" + + "elugusímbolosnão escrito" + +var ptPTScriptIdx = []uint16{ // 167 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x001a, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + // Entry 40 - 7F + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, + // Entry 80 - BF + 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x003a, 0x0046, 0x0046, + 0x0046, 0x0046, 0x0046, 0x0046, 0x0046, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x005b, 0x0067, +} // Size: 358 bytes + +var roScriptStr string = "" + // Size: 825 bytes + "arabăarmeanăbalinezăbengalezăbopomofobraillesilabică aborigenă canadiană" + + " unificatăcoptăcipriotăchirilicăchirilică slavonă bisericească vechedeva" + + "nagarimormonădemotică egipteanăhieratică egipteanăhieroglife egipteneeti" + + "opianăgeorgiană bisericeascăgeorgianăglagoliticăgoticăgreacăgujaratigurm" + + "ukhihangulhanhan simplificatăhan tradiÈ›ionalăebraicăhiraganakatakana sau" + + " hiraganamaghiară vecheindusitalică vechejavanezăjaponezăkatakanakhmerăk" + + "annadacoreeanălaoÈ›ianălatină Frakturlatină gaelicălatinălineară Alineară" + + " Blidianăhieroglife mayamalayalammongolăbirmanăoriyafenicianărunicăsinga" + + "lezăsiriacăsiriacă occidentalăsiriacă orientalătamilăteluguberberăthaana" + + "thailandezătibetanăpersană vechecuneiformă sumero-akkadianămoÈ™tenităsimb" + + "olurinescrisăcomunăscriere necunoscută" + +var roScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000e, 0x000e, + 0x0017, 0x0017, 0x0017, 0x0017, 0x0021, 0x0021, 0x0029, 0x0029, + 0x0030, 0x0030, 0x0030, 0x0030, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x0060, 0x0069, 0x0073, 0x009a, 0x00a4, 0x00ac, 0x00ac, + 0x00c0, 0x00d5, 0x00e8, 0x00e8, 0x00f2, 0x010a, 0x0114, 0x0120, + 0x0127, 0x0127, 0x012e, 0x0136, 0x013e, 0x0144, 0x0147, 0x0147, + 0x0158, 0x016a, 0x016a, 0x0172, 0x017a, 0x017a, 0x017a, 0x018f, + 0x019e, 0x01a3, 0x01b1, 0x01ba, 0x01c3, 0x01c3, 0x01c3, 0x01cb, + // Entry 40 - 7F + 0x01cb, 0x01d2, 0x01d2, 0x01d9, 0x01e2, 0x01e2, 0x01e2, 0x01e2, + 0x01ec, 0x01fb, 0x020b, 0x0212, 0x0212, 0x0212, 0x021c, 0x0226, + 0x0226, 0x0226, 0x0226, 0x022e, 0x022e, 0x022e, 0x022e, 0x023d, + 0x023d, 0x023d, 0x023d, 0x0246, 0x0246, 0x024e, 0x024e, 0x024e, + 0x024e, 0x024e, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, 0x0256, + 0x0256, 0x0256, 0x0256, 0x025b, 0x025b, 0x025b, 0x025b, 0x025b, + 0x025b, 0x025b, 0x025b, 0x025b, 0x0265, 0x0265, 0x0265, 0x0265, + 0x0265, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, 0x026c, + // Entry 80 - BF + 0x026c, 0x026c, 0x026c, 0x0276, 0x0276, 0x0276, 0x0276, 0x027e, + 0x027e, 0x0293, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02a6, 0x02ad, + 0x02ad, 0x02ad, 0x02b3, 0x02b3, 0x02bb, 0x02bb, 0x02c1, 0x02cd, + 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02d6, 0x02e4, + 0x0301, 0x0301, 0x030c, 0x030c, 0x030c, 0x0315, 0x031e, 0x0325, + 0x0339, +} // Size: 362 bytes + +var ruScriptStr string = "" + // Size: 3384 bytes + "афакаарабицаарамейÑкаÑармÑнÑкаÑавеÑтийÑкаÑбалийÑкаÑбамумбаÑÑа (вах)батак" + + "ÑкаÑбенгальÑкаÑблиÑÑимволикабопомофобрахмиБрайлÑбугинизийÑкаÑбухидчакми" + + "йÑкаÑканадÑкое Ñлоговое пиÑьмокарийÑкаÑчамÑкаÑчерокикирткоптÑкаÑкипрÑка" + + "ÑкириллицаÑтароÑлавÑнÑкаÑдеванагаридезеретдуплоÑнÑÐºÐ°Ñ ÑкоропиÑьегипетÑк" + + "Ð°Ñ Ð´ÐµÐ¼Ð¾Ñ‚Ð¸Ñ‡ÐµÑкаÑегипетÑÐºÐ°Ñ Ð¸ÐµÑ€Ð°Ñ‚Ð¸Ñ‡ÐµÑкаÑегипетÑÐºÐ°Ñ Ð¸ÐµÑ€Ð¾Ð³Ð»Ð¸Ñ„Ð¸Ñ‡ÐµÑкаÑÑфиопÑк" + + "аÑгрузинÑÐºÐ°Ñ Ñ…ÑƒÑ†ÑƒÑ€Ð¸Ð³Ñ€ÑƒÐ·Ð¸Ð½ÑкаÑглаголицаготÑкаÑгрантхагречеÑкаÑгуджаратиг" + + "урмукхихангылькитайÑкаÑÑ…Ð°Ð½ÑƒÐ½ÑƒÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ð°Ñ ÐºÐ¸Ñ‚Ð°Ð¹ÑкаÑÑ‚Ñ€Ð°Ð´Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÐºÐ¸Ñ‚Ð°Ð¹ÑкаÑ" + + "ивритхираганалувийÑкие иероглифыпахау хмонгкатакана или хираганаÑтарове" + + "нгерÑкаÑхараппÑÐºÐ°Ñ (пиÑьменноÑÑ‚ÑŒ долины Инда)ÑтароитальÑнÑкаÑÑванÑкаÑÑп" + + "онÑкаÑчжурчжÑньÑкаÑкайакатаканакхароштхикхмерÑкаÑходжикиканнадакорейÑка" + + "ÑкпеллекайтхиланналаоÑÑкаÑлатинÑÐºÐ°Ñ Ñ„Ñ€Ð°ÐºÑ‚ÑƒÑ€Ð°Ð³ÑльÑÐºÐ°Ñ Ð»Ð°Ñ‚Ð¸Ð½ÑкаÑлатиницал" + + "епхалимбулинейное пиÑьмо Ðлинейное пиÑьмо БлиÑуломалицианлидийÑкаÑманде" + + "йÑкаÑманихейÑкаÑмайÑмендемероитÑÐºÐ°Ñ ÐºÑƒÑ€ÑивнаÑмероитÑкаÑмалаÑльÑкаÑмонго" + + "льÑкаÑазбука мунамроманипуримьÑнманÑкаÑÑеверноаравийÑкоенабатейÑкаÑнаÑи" + + " гебанконюй-шуогамичеÑкаÑол чикиорхоно-ениÑейÑкаÑориÑоÑманÑкаÑпальмирыдр" + + "евнепермÑкаÑпагÑпапехлевийÑкаÑпахлави пÑалтирнаÑпахлави книжнаÑфиникийÑ" + + "каÑполлардовÑÐºÐ°Ñ Ñ„Ð¾Ð½ÐµÑ‚Ð¸ÐºÐ°Ð¿Ð°Ñ€Ñ„ÑнÑкаÑреджангÑкаÑронго-ронгоруничеÑкаÑÑама" + + "ритÑнÑкаÑÑаратиÑтароюжноарабÑкаÑÑаураштраÑзык знаковалфавит Шоушарадакх" + + "удавадиÑингальÑкаÑÑора-ÑонпенгÑунданÑкаÑÑилоти нагриÑирийÑкаÑÑирийÑÐºÐ°Ñ " + + "ÑÑтрангелозападноÑирийÑкаÑвоÑточно-ÑирийÑкаÑтагбанватакритайÑкий леновы" + + "й тайÑкий летамильÑкаÑтангутÑкое менÑтай-вьеттелугутенгварÑкаÑдревнелив" + + "ийÑкаÑтагалогтаанатайÑкаÑтибетÑкаÑтирхутаугаритÑкаÑвайÑкаÑÐ²Ð¸Ð´Ð¸Ð¼Ð°Ñ Ñ€ÐµÑ‡ÑŒÐ²" + + "аранг-кшитиволеаиÑтароперÑидÑкаÑшумеро-аккадÑÐºÐ°Ñ ÐºÐ»Ð¸Ð½Ð¾Ð¿Ð¸ÑьиунаÑледованн" + + "аÑматематичеÑкие обозначениÑÑимволыбеÑпиÑьменныйобщепринÑтаÑнеизвеÑтнаÑ" + + " пиÑьменноÑÑ‚ÑŒ" + +var ruScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x000a, 0x000a, 0x0018, 0x002c, 0x003e, 0x0054, + 0x0066, 0x0070, 0x0083, 0x0095, 0x00ab, 0x00c5, 0x00d5, 0x00e1, + 0x00ed, 0x0107, 0x0111, 0x0125, 0x0155, 0x0167, 0x0175, 0x0181, + 0x0189, 0x0199, 0x01a9, 0x01bb, 0x01d9, 0x01ed, 0x01fb, 0x0224, + 0x0251, 0x027e, 0x02b1, 0x02b1, 0x02c3, 0x02e4, 0x02f8, 0x030a, + 0x0318, 0x0326, 0x0338, 0x034a, 0x035a, 0x0368, 0x037a, 0x0386, + 0x03ad, 0x03d8, 0x03d8, 0x03e2, 0x03f2, 0x0417, 0x042c, 0x0454, + 0x0472, 0x04b7, 0x04d7, 0x04e7, 0x04f7, 0x0511, 0x0519, 0x0529, + // Entry 40 - 7F + 0x053b, 0x054d, 0x055b, 0x0569, 0x057b, 0x0587, 0x0593, 0x059d, + 0x05ad, 0x05d0, 0x05f3, 0x0603, 0x060d, 0x0617, 0x0637, 0x0657, + 0x065f, 0x0667, 0x0673, 0x0685, 0x0685, 0x0699, 0x06af, 0x06b7, + 0x06c1, 0x06e8, 0x06fc, 0x0712, 0x0712, 0x0728, 0x073d, 0x0743, + 0x0753, 0x0753, 0x0769, 0x078b, 0x07a1, 0x07b2, 0x07b8, 0x07c3, + 0x07d9, 0x07e6, 0x0807, 0x080f, 0x0821, 0x0831, 0x0831, 0x084d, + 0x0859, 0x0871, 0x0894, 0x08b1, 0x08c7, 0x08f2, 0x0906, 0x091c, + 0x0931, 0x0945, 0x095f, 0x096b, 0x098d, 0x099f, 0x09b4, 0x09c9, + // Entry 80 - BF + 0x09d5, 0x09d5, 0x09e7, 0x09fd, 0x0a14, 0x0a28, 0x0a3f, 0x0a51, + 0x0a78, 0x0a98, 0x0abb, 0x0acb, 0x0ad5, 0x0ae8, 0x0b06, 0x0b1a, + 0x0b37, 0x0b46, 0x0b52, 0x0b68, 0x0b86, 0x0b94, 0x0b9e, 0x0bac, + 0x0bbe, 0x0bcc, 0x0be0, 0x0bee, 0x0c05, 0x0c1c, 0x0c28, 0x0c46, + 0x0c78, 0x0c7a, 0x0c96, 0x0cc9, 0x0cc9, 0x0cd7, 0x0cf1, 0x0d09, + 0x0d38, +} // Size: 362 bytes + +var siScriptStr string = "" + // Size: 809 bytes + "අරà·à¶¶à·’ආර්මේනියà·à¶±à·”බෙංගà·à¶½à·’බොපොමොෆà·à¶¶à·Š\u200dරේල්සිරිලික්දේවනà·à¶œà¶»à·“ඉතියà·à¶´à·’යà·à¶±à·”ජà·" + + "ර්ජියà·à¶±à·”ග්\u200dරීකගුජරà·à¶§à·’ගුර්මුඛිහà·à¶±à·Šà¶œà·”ල්හන්සුළුකළ හෑන්සම්ප්\u200dරදà·" + + "යික හෑන්හීබෲහිරඟනà·à¶¢à¶´à¶±à·Šà¶šà¶­à¶šà¶±à·à¶šà¶¸à¶»à·Šà¶šà¶«à·Šà¶«à¶©à¶šà·œà¶»à·’යà·à¶±à·”ලà·à¶•à¶½à¶­à·’න්මලයà·à¶½à¶¸à·Šà¶¸à·œà¶±à·Šà¶œà·à¶½à·’යà·à¶±" + + "ුමියන්මà·à¶»à¶”රියà·à·ƒà·’ංහලදෙමළතෙළිඟුතà·à¶±à¶­à·à¶ºà·’ටි\u200dබෙට්සංකේතඅලිඛිතපොදු.නොදත් " + + "අක්ෂර මà·à¶½à·à·€" + +var siScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000f, 0x000f, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0045, 0x0045, 0x005d, 0x005d, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x008a, 0x008a, 0x00a2, 0x00a2, 0x00a2, + 0x00a2, 0x00a2, 0x00a2, 0x00a2, 0x00c3, 0x00c3, 0x00e1, 0x00e1, + 0x00e1, 0x00e1, 0x00f3, 0x0108, 0x0120, 0x0138, 0x0141, 0x0141, + 0x0160, 0x0191, 0x0191, 0x019d, 0x01af, 0x01af, 0x01af, 0x01af, + 0x01af, 0x01af, 0x01af, 0x01af, 0x01bb, 0x01bb, 0x01bb, 0x01ca, + // Entry 40 - 7F + 0x01ca, 0x01d6, 0x01d6, 0x01e5, 0x01fd, 0x01fd, 0x01fd, 0x01fd, + 0x0206, 0x0206, 0x0206, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x022a, 0x022a, 0x024e, 0x024e, 0x024e, + 0x024e, 0x024e, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, 0x0266, + 0x0266, 0x0266, 0x0266, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, + 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, + 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, 0x0275, + // Entry 80 - BF + 0x0275, 0x0275, 0x0275, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, + 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0284, 0x0290, + 0x0290, 0x0290, 0x02a2, 0x02a2, 0x02a2, 0x02a2, 0x02ab, 0x02b7, + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02db, 0x02ed, 0x02fa, + 0x0329, +} // Size: 362 bytes + +var skScriptStr string = "" + // Size: 487 bytes + "arabskéarménskebalijskýbengálskebopomofobraillovocyrilikadévanágaríegypt" + + "ské hieroglyfyetiópskegruzínskehlaholikagotickýgréckegudžarátígurmukhiha" + + "ngulÄínskeÄínske zjednoduÅ¡enéÄínske tradiÄnéhebrejskéhiraganajaponskékat" + + "akanakhmérskekannadskékórejskélaoskélatinkalineárna Alineárna Bmayské hi" + + "eroglyfymalajálamskemongolskébarmskéuríjskeosmanskýRunové písmosinhálske" + + "tamilskételugskétánathajskétibetskésymbolybez zápisuvÅ¡eobecnéneznáme pís" + + "mo" + +var skScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0011, 0x0011, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0024, 0x0024, 0x002c, 0x002c, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x003d, 0x003d, 0x004a, 0x004a, 0x004a, + 0x004a, 0x004a, 0x005e, 0x005e, 0x0067, 0x0067, 0x0071, 0x007a, + 0x0082, 0x0082, 0x0089, 0x0095, 0x009d, 0x00a3, 0x00ab, 0x00ab, + 0x00c2, 0x00d5, 0x00d5, 0x00df, 0x00e7, 0x00e7, 0x00e7, 0x00e7, + 0x00e7, 0x00e7, 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00f0, 0x00f8, + // Entry 40 - 7F + 0x00f8, 0x0101, 0x0101, 0x010b, 0x0115, 0x0115, 0x0115, 0x0115, + 0x011c, 0x011c, 0x011c, 0x0123, 0x0123, 0x0123, 0x012e, 0x0139, + 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x0139, 0x014b, + 0x014b, 0x014b, 0x014b, 0x0158, 0x0158, 0x0162, 0x0162, 0x0162, + 0x0162, 0x0162, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, 0x016a, + 0x016a, 0x016a, 0x016a, 0x0172, 0x017b, 0x017b, 0x017b, 0x017b, + 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, 0x017b, + 0x017b, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, 0x0189, + // Entry 80 - BF + 0x0189, 0x0189, 0x0189, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, + 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x0193, 0x019c, + 0x019c, 0x019c, 0x01a5, 0x01a5, 0x01a5, 0x01a5, 0x01aa, 0x01b2, + 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, + 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01bb, 0x01c2, 0x01cd, 0x01d8, + 0x01e7, +} // Size: 362 bytes + +var slScriptStr string = "" + // Size: 1487 bytes + "arabskiimperialno-aramejskiarmenskiavestanskibalijskibataÅ¡kibengalskizna" + + "kovna pisava Blissbopomofobramanskibraillova pisavabuginskibuhidskipoeno" + + "tena zlogovna pisava kanadskih staroselcevChamÄerokeÅ¡kikirtkoptskiciprsk" + + "icirilicastarocerkvenoslovanska cirilicadevanagarÅ¡Äicafonetska pisava de" + + "seretdemotska egipÄanska pisavahieratska egipÄanska pisavaegipÄanska sli" + + "kovna pisavaetiopskicerkvenogruzijskigruzijskiglagoliÅ¡kigotskigrÅ¡kigudža" + + "ratskigurmukihangulkanjihanunskipoenostavljena pisava hantradicionalna p" + + "isava hanhebrejskihiraganapahavhmonska zlogovna pisavakatakana ali hirag" + + "anastaroogrskiinduÅ¡kistaroitalskijavanskijaponskikarenskikatakanagandars" + + "kikmerskikanadskikorejskikajatskilaoÅ¡kifrakturagelski latiniÄnilatinical" + + "epÅ¡kilimbuÅ¡kilinearna pisava Alinearna pisava Blicijskilidijskimandanski" + + "manihejskimajevska slikovna pisavameroitskimalajalamskimongolskaMoonova " + + "pisava za slepemanipurskimjanmarskiogamskisantalskiorkonskiorijskiosmans" + + "kistaropermijskipagpajskivrezani napisi pahlavipsalmski pahlaviknjižno p" + + "alavanskifeniÄanskiPollardova fonetska pisavarongorongorunskisamaritansk" + + "isaratskiznakovna pisavaÅ¡ojevskisinhalskisundanskisiletsko-nagarijskisir" + + "ijskisirska abeceda estrangelozahodnosirijskivzhodnosirijskitagbanskitam" + + "ilskitajsko-vietnamskiteluÅ¡kitengvarskitifinajskitagaloÅ¡kitanajskitajski" + + "tibetanskiugaritskizlogovna pisava vaividni govorstaroperzijskisumersko-" + + "akadski klinopispodedovanmatematiÄna znamenjasimbolinenapisanosploÅ¡nonez" + + "nan ali neveljaven zapis" + +var slScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x001b, 0x0023, 0x002d, + 0x0035, 0x0035, 0x0035, 0x003d, 0x0046, 0x005b, 0x0063, 0x006c, + 0x007c, 0x0084, 0x008c, 0x008c, 0x00bb, 0x00bb, 0x00bf, 0x00ca, + 0x00ce, 0x00d5, 0x00dc, 0x00e4, 0x0103, 0x0113, 0x012a, 0x012a, + 0x0145, 0x0161, 0x017c, 0x017c, 0x0184, 0x0195, 0x019e, 0x01a9, + 0x01af, 0x01af, 0x01b5, 0x01c1, 0x01c8, 0x01ce, 0x01d3, 0x01db, + 0x01f4, 0x020c, 0x020c, 0x0215, 0x021d, 0x021d, 0x0239, 0x024e, + 0x0259, 0x0261, 0x026d, 0x0275, 0x027d, 0x027d, 0x0285, 0x028d, + // Entry 40 - 7F + 0x0296, 0x029d, 0x029d, 0x02a5, 0x02ad, 0x02ad, 0x02b5, 0x02b5, + 0x02bc, 0x02c4, 0x02d5, 0x02dd, 0x02e4, 0x02ed, 0x02fe, 0x030f, + 0x030f, 0x030f, 0x0317, 0x031f, 0x031f, 0x0328, 0x0332, 0x034a, + 0x034a, 0x034a, 0x0353, 0x035f, 0x035f, 0x0368, 0x037f, 0x037f, + 0x0389, 0x0389, 0x0393, 0x0393, 0x0393, 0x0393, 0x0393, 0x0393, + 0x039a, 0x03a3, 0x03ab, 0x03b2, 0x03ba, 0x03ba, 0x03ba, 0x03c8, + 0x03d1, 0x03e7, 0x03f7, 0x040a, 0x0415, 0x042f, 0x042f, 0x042f, + 0x0439, 0x043f, 0x044b, 0x0453, 0x0453, 0x0453, 0x0462, 0x046b, + // Entry 80 - BF + 0x046b, 0x046b, 0x046b, 0x0474, 0x0474, 0x047d, 0x0490, 0x0498, + 0x04b1, 0x04c0, 0x04cf, 0x04d8, 0x04d8, 0x04d8, 0x04d8, 0x04e0, + 0x04e0, 0x04f1, 0x04f9, 0x0503, 0x050d, 0x0517, 0x051f, 0x0525, + 0x052f, 0x052f, 0x0538, 0x054b, 0x0556, 0x0556, 0x0556, 0x0564, + 0x057d, 0x057d, 0x0586, 0x059b, 0x059b, 0x05a2, 0x05ac, 0x05b4, + 0x05cf, +} // Size: 362 bytes + +var sqScriptStr string = "" + // Size: 290 bytes + "arabikarmenbengalbopomofbrailishtcirilikdevanagaretiopikgjeorgjiangrekgu" + + "xharatgurmukhangulhanhan i thjeshtuarhan tradicionalhebraikhiraganjapone" + + "zkatakankmerkanadkoreanlaosishtlatinmalajalammongolbirmanorijasinhaltami" + + "ltelugtanishttajlandeztibetishtme simbolei pashkruari zakonshëmi panjohu" + + "r" + +var sqScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x000b, 0x0011, 0x0011, 0x0018, 0x0018, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0028, 0x0028, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0031, 0x0038, 0x0038, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0046, 0x004e, 0x0054, 0x005a, 0x005d, 0x005d, + 0x006d, 0x007c, 0x007c, 0x0083, 0x008a, 0x008a, 0x008a, 0x008a, + 0x008a, 0x008a, 0x008a, 0x008a, 0x0091, 0x0091, 0x0091, 0x0098, + // Entry 40 - 7F + 0x0098, 0x009c, 0x009c, 0x00a1, 0x00a7, 0x00a7, 0x00a7, 0x00a7, + 0x00af, 0x00af, 0x00af, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, + 0x00b4, 0x00b4, 0x00b4, 0x00bd, 0x00bd, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, 0x00c9, + 0x00c9, 0x00c9, 0x00c9, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + // Entry 80 - BF + 0x00ce, 0x00ce, 0x00ce, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, + 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d9, + 0x00d9, 0x00d9, 0x00de, 0x00de, 0x00de, 0x00de, 0x00e5, 0x00ee, + 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x00f7, 0x0101, 0x010c, 0x0118, + 0x0122, +} // Size: 362 bytes + +var srScriptStr string = "" + // Size: 3698 bytes + "арапÑко пиÑмоимперијÑко арамејÑко пиÑмојерменÑко пиÑмоавеÑтанÑко пиÑмоба" + + "лијÑко пиÑмобатак пиÑмобенгалÑко пиÑмоблиÑимболично пиÑмобопомофо пиÑмо" + + "браманÑко пиÑмоБрајево пиÑмобугинÑко пиÑмобухидÑко пиÑмочакманÑко пиÑмо" + + "уједињени канадÑки абориџинÑки ÑилабицикаријÑко пиÑмочамÑко пиÑмоЧероки" + + "цирт пиÑмокоптичко пиÑмокипарÑко пиÑмоћирилицаСтароÑловенÑка црквена ћи" + + "рилицадеванагариДезеретегипатÑко народно пиÑмоегипатÑко хијератÑко пиÑм" + + "оегипатÑки хијероглифиетиопÑко пиÑмогрузијÑко кхутÑури пиÑмогрузијÑко п" + + "иÑмоглагољицаГотикагрчко пиÑмогуџаратÑко пиÑмогурмуки пиÑмохангулханхан" + + "унопоједноÑтављено хан пиÑмотрадиционално хан пиÑмохебрејÑко пиÑмохираг" + + "анапахав хмонг пиÑмоКатакана или ХираганаÑтаромађарÑко пиÑмоиндушко пиÑ" + + "моÑтари италикјаванÑко пиÑмојапанÑко пиÑмокајах-ли пиÑмокатаканакарошти" + + " пиÑмокмерÑко пиÑмоканада пиÑмокорејÑко пиÑмокаитиланна пиÑмолаошко пиÑм" + + "олатиница (фрактур варијанта)галÑка латиницалатиницалепча пиÑмолимбу пи" + + "Ñмолинеарно РпиÑмолинеарно Б пиÑмолиÑијÑко пиÑмолидијÑко пиÑмомандеанÑ" + + "ко пиÑмоманихејÑко пиÑмомајанÑки хијероглифимероитик пиÑмомалајалам пиÑ" + + "момонголÑко пиÑмомеÑечево пиÑмомеитеи мајек пиÑмомијанмарÑко пиÑмон’ко " + + "пиÑмоогамÑко пиÑмоол чики пиÑмоорконÑко пиÑмооријанÑко пиÑмооÑмањанÑко " + + "пиÑмоÑтаро пермикÑко пиÑмопагÑ-па пиÑмопиÑани пахлавипÑалтер пахлавипах" + + "лави пиÑмоФеничанÑко пиÑмопоралд фонетÑко пиÑмопиÑани партианрејанг пиÑ" + + "моронгоронго пиÑморунÑко пиÑмоÑамаританÑко пиÑмоÑарати пиÑмоÑаураштра п" + + "иÑмознаковно пиÑмошавијанÑко пиÑмоÑинхалÑко пиÑмоÑунданÑко пиÑмоÑилоти " + + "нагри пиÑмоÑиријÑко пиÑмоÑиријÑко еÑтрангело пиÑмозападноÑиријÑко пиÑмо" + + "пиÑмо иÑточне Сиријетагбанва пиÑмотаи ле пиÑмонови таи луетамилÑко пиÑм" + + "отаи виет пиÑмотелугу пиÑмотенгвар пиÑмотифинаг пиÑмоТагалогтхана пиÑмо" + + "тајландÑко пиÑмотибетанÑко пиÑмоугаритÑко пиÑмоваи пиÑмовидљиви говорÑÑ‚" + + "ароперÑијÑко пиÑмоÑумерÑко-акадÑко кунеиформ пиÑмоји пиÑмонаÑледно пиÑм" + + "оматематичка нотацијаÑимболинепиÑани језикзаједничко пиÑмонепознато пиÑ" + + "мо" + +var srScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0019, 0x004b, 0x0068, 0x0087, + 0x00a2, 0x00a2, 0x00a2, 0x00b7, 0x00d4, 0x00f9, 0x0114, 0x0131, + 0x014a, 0x0165, 0x0180, 0x019d, 0x01e8, 0x0203, 0x021a, 0x0226, + 0x0239, 0x0254, 0x026f, 0x027f, 0x02bb, 0x02cf, 0x02dd, 0x02dd, + 0x0309, 0x033b, 0x0364, 0x0364, 0x037f, 0x03ad, 0x03ca, 0x03dc, + 0x03e8, 0x03e8, 0x03fd, 0x041c, 0x0435, 0x0441, 0x0447, 0x0453, + 0x0483, 0x04af, 0x04af, 0x04cc, 0x04dc, 0x04dc, 0x04fc, 0x0524, + 0x0549, 0x0562, 0x0579, 0x0594, 0x05af, 0x05af, 0x05c9, 0x05d9, + // Entry 40 - 7F + 0x05f2, 0x060b, 0x060b, 0x0622, 0x063d, 0x063d, 0x0647, 0x065c, + 0x0673, 0x06a7, 0x06c4, 0x06d4, 0x06e9, 0x06fe, 0x071c, 0x073a, + 0x073a, 0x073a, 0x0755, 0x0770, 0x0770, 0x078f, 0x07ae, 0x07d5, + 0x07d5, 0x07d5, 0x07f0, 0x080d, 0x080d, 0x082a, 0x0845, 0x0845, + 0x0867, 0x0867, 0x0888, 0x0888, 0x0888, 0x0888, 0x089c, 0x089c, + 0x08b5, 0x08cd, 0x08e8, 0x0905, 0x0924, 0x0924, 0x0924, 0x094c, + 0x0964, 0x097f, 0x099c, 0x09b5, 0x09d4, 0x09fc, 0x0a17, 0x0a2e, + 0x0a4d, 0x0a64, 0x0a87, 0x0a9e, 0x0a9e, 0x0abb, 0x0ad6, 0x0af5, + // Entry 80 - BF + 0x0af5, 0x0af5, 0x0af5, 0x0b12, 0x0b12, 0x0b2f, 0x0b51, 0x0b6c, + 0x0b9c, 0x0bc5, 0x0beb, 0x0c06, 0x0c06, 0x0c1c, 0x0c32, 0x0c4d, + 0x0c4d, 0x0c67, 0x0c7e, 0x0c97, 0x0cb0, 0x0cbe, 0x0cd3, 0x0cf2, + 0x0d11, 0x0d11, 0x0d2e, 0x0d3f, 0x0d58, 0x0d58, 0x0d58, 0x0d7f, + 0x0dbc, 0x0dcb, 0x0de6, 0x0e0d, 0x0e0d, 0x0e1b, 0x0e36, 0x0e55, + 0x0e72, +} // Size: 362 bytes + +var srLatnScriptStr string = "" + // Size: 1953 bytes + "arapsko pismoimperijsko aramejsko pismojermensko pismoavestansko pismoba" + + "lijsko pismobatak pismobengalsko pismoblisimboliÄno pismobopomofo pismob" + + "ramansko pismoBrajevo pismobuginsko pismobuhidsko pismoÄakmansko pismouj" + + "edinjeni kanadski aboridžinski silabicikarijsko pismoÄamsko pismoÄŒerokic" + + "irt pismokoptiÄko pismokiparsko pismoćirilicaStaroslovenska crkvena ćiri" + + "licadevanagariDezeretegipatsko narodno pismoegipatsko hijeratsko pismoeg" + + "ipatski hijeroglifietiopsko pismogruzijsko khutsuri pismogruzijsko pismo" + + "glagoljicaGotikagrÄko pismogudžaratsko pismogurmuki pismohangulhanhanuno" + + "pojednostavljeno han pismotradicionalno han pismohebrejsko pismohiragana" + + "pahav hmong pismoKatakana ili HiraganastaromaÄ‘arsko pismoinduÅ¡ko pismost" + + "ari italikjavansko pismojapansko pismokajah-li pismokatakanakaroÅ¡ti pism" + + "okmersko pismokanada pismokorejsko pismokaitilanna pismolaoÅ¡ko pismolati" + + "nica (fraktur varijanta)galska latinicalatinicalepÄa pismolimbu pismolin" + + "earno A pismolinearno B pismolisijsko pismolidijsko pismomandeansko pism" + + "omanihejsko pismomajanski hijeroglifimeroitik pismomalajalam pismomongol" + + "sko pismomeseÄevo pismomeitei majek pismomijanmarsko pismon’ko pismoogam" + + "sko pismool Äiki pismoorkonsko pismoorijansko pismoosmanjansko pismostar" + + "o permiksko pismopags-pa pismopisani pahlavipsalter pahlavipahlavi pismo" + + "FeniÄansko pismoporald fonetsko pismopisani partianrejang pismorongorong" + + "o pismorunsko pismosamaritansko pismosarati pismosauraÅ¡tra pismoznakovno" + + " pismoÅ¡avijansko pismosinhalsko pismosundansko pismosiloti nagri pismosi" + + "rijsko pismosirijsko estrangelo pismozapadnosirijsko pismopismo istoÄne " + + "Sirijetagbanva pismotai le pismonovi tai luetamilsko pismotai viet pismo" + + "telugu pismotengvar pismotifinag pismoTagalogthana pismotajlandsko pismo" + + "tibetansko pismougaritsko pismovai pismovidljivi govorstaropersijsko pis" + + "mosumersko-akadsko kuneiform pismoji pismonasledno pismomatematiÄka nota" + + "cijasimbolinepisani jezikzajedniÄko pismonepoznato pismo" + +var srLatnScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000d, 0x0027, 0x0036, 0x0046, + 0x0054, 0x0054, 0x0054, 0x005f, 0x006e, 0x0082, 0x0090, 0x009f, + 0x00ac, 0x00ba, 0x00c8, 0x00d8, 0x0102, 0x0110, 0x011d, 0x0124, + 0x012e, 0x013d, 0x014b, 0x0154, 0x0174, 0x017e, 0x0185, 0x0185, + 0x019c, 0x01b6, 0x01cb, 0x01cb, 0x01d9, 0x01f1, 0x0200, 0x020a, + 0x0210, 0x0210, 0x021c, 0x022e, 0x023b, 0x0241, 0x0244, 0x024a, + 0x0264, 0x027b, 0x027b, 0x028a, 0x0292, 0x0292, 0x02a3, 0x02b8, + 0x02cc, 0x02da, 0x02e6, 0x02f4, 0x0302, 0x0302, 0x0310, 0x0318, + // Entry 40 - 7F + 0x0326, 0x0333, 0x0333, 0x033f, 0x034d, 0x034d, 0x0352, 0x035d, + 0x036a, 0x0386, 0x0395, 0x039d, 0x03a9, 0x03b4, 0x03c4, 0x03d4, + 0x03d4, 0x03d4, 0x03e2, 0x03f0, 0x03f0, 0x0400, 0x0410, 0x0424, + 0x0424, 0x0424, 0x0432, 0x0441, 0x0441, 0x0450, 0x045f, 0x045f, + 0x0471, 0x0471, 0x0482, 0x0482, 0x0482, 0x0482, 0x048e, 0x048e, + 0x049b, 0x04a9, 0x04b7, 0x04c6, 0x04d7, 0x04d7, 0x04d7, 0x04ec, + 0x04f9, 0x0507, 0x0516, 0x0523, 0x0534, 0x0549, 0x0557, 0x0563, + 0x0573, 0x057f, 0x0591, 0x059d, 0x059d, 0x05ad, 0x05bb, 0x05cc, + // Entry 80 - BF + 0x05cc, 0x05cc, 0x05cc, 0x05db, 0x05db, 0x05ea, 0x05fc, 0x060a, + 0x0623, 0x0638, 0x064d, 0x065b, 0x065b, 0x0667, 0x0673, 0x0681, + 0x0681, 0x068f, 0x069b, 0x06a8, 0x06b5, 0x06bc, 0x06c7, 0x06d7, + 0x06e7, 0x06e7, 0x06f6, 0x06ff, 0x070d, 0x070d, 0x070d, 0x0721, + 0x0741, 0x0749, 0x0757, 0x076c, 0x076c, 0x0773, 0x0781, 0x0792, + 0x07a1, +} // Size: 362 bytes + +var svScriptStr string = "" + // Size: 1661 bytes + "afakiskakaukasiska albanskaahomarabiskaimperisk arameiskaarmeniskaavesti" + + "skabalinesiskabamunskabassaiska vahbatakbengaliskablissymbolerbopomofobr" + + "amipunktskriftbuginesiskabuhidchakmakanadensiska stavelseteckenkariskach" + + "amcherokeecirtkoptiskacypriotiskakyrilliskafornkyrkoslavisk kyrilliskade" + + "vanagarideseretDuployéstenografiskademotiskahieratiskaegyptiska hierogly" + + "ferelbasiskaetiopiskakutsurigeorgiskaglagolitiskagotiskagammaltamilskagr" + + "ekiskagujaratigurmukhihangulhanhanunÃ¥förenklade han-teckentraditionella " + + "han-teckenhatranhebreiskahiraganahittitiska hieroglyferpahaw mongkatakan" + + "a/hiraganafornungerskaindusfornitaliskajavanskajapanskajurchenskakaya li" + + "katakanakharoshtikhmeriskakhojkiskakanaresiskakoreanskakpellékaithiskala" + + "nnalaotiskafrakturlatingaeliskt latinlatinskaronglimbulinjär Alinjär BFr" + + "aserlomalykiskalydiskamahajaniskamandaéiskamanikeanskamayahieroglyfermen" + + "dekursiv-meroitiskameroitiskamalayalammodiskamongoliskamoonmrumeitei-may" + + "ekmultaniskaburmesiskafornnordarabiskanabatateiskanaxi geban-kÃ¥nüshuogha" + + "mol-chikiorkonoriyaosmanjapalmyreniskaPau Cin Hau-skriftfornpermiskaphag" + + "s-patidig pahlavipsaltaren-pahlavibokpahlavifenikiskapollardteckentidig " + + "parthianskarejangrongo-rongorunorsamaritiskasaratifornsydarabiskasaurash" + + "trateckningsskriftshawiskasharadasiddhamskasindhiskasingalesiskasora som" + + "pengsundanesiskasyloti nagrisyriskaestrangelosyriskavästsyriskaöstsyrisk" + + "atagbanwatakritiskatai letai luetamilskatangutiskatai viettelugutengwart" + + "ifinaghiskatagalogtaanathailändskatibetanskatirhutaugaritiskavajsynligt " + + "talvarang kshitiwoleaifornpersiskasumeo-akkadisk kilskriftyiärvdamatemat" + + "isk notationsymboleroskrivet sprÃ¥kgemensammaokänt skriftsystem" + +var svScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0008, 0x001b, 0x001f, 0x0027, 0x0039, 0x0042, 0x004b, + 0x0056, 0x005e, 0x006b, 0x0070, 0x007a, 0x0086, 0x008e, 0x0093, + 0x009e, 0x00a9, 0x00ae, 0x00b4, 0x00cf, 0x00d6, 0x00da, 0x00e2, + 0x00e6, 0x00ee, 0x00f9, 0x0103, 0x011e, 0x0128, 0x012f, 0x0144, + 0x014d, 0x0157, 0x016c, 0x0175, 0x017e, 0x0185, 0x018e, 0x019a, + 0x01a1, 0x01af, 0x01b7, 0x01bf, 0x01c7, 0x01cd, 0x01d0, 0x01d7, + 0x01ed, 0x0205, 0x020b, 0x0214, 0x021c, 0x0232, 0x023c, 0x024d, + 0x0259, 0x025e, 0x026a, 0x0272, 0x027a, 0x0284, 0x028b, 0x0293, + // Entry 40 - 7F + 0x029c, 0x02a5, 0x02ae, 0x02b9, 0x02c2, 0x02c9, 0x02d2, 0x02d7, + 0x02df, 0x02eb, 0x02f9, 0x0301, 0x0305, 0x030a, 0x0313, 0x031c, + 0x0322, 0x0326, 0x032d, 0x0334, 0x033f, 0x034a, 0x0355, 0x0364, + 0x0369, 0x037a, 0x0384, 0x038d, 0x0394, 0x039e, 0x03a2, 0x03a5, + 0x03b1, 0x03bb, 0x03c5, 0x03d5, 0x03e1, 0x03ea, 0x03ef, 0x03f5, + 0x03fa, 0x0402, 0x0407, 0x040c, 0x0413, 0x041f, 0x0431, 0x043d, + 0x0445, 0x0452, 0x0463, 0x046d, 0x0476, 0x0483, 0x0494, 0x049a, + 0x04a5, 0x04aa, 0x04b5, 0x04bb, 0x04ca, 0x04d4, 0x04e3, 0x04eb, + // Entry 80 - BF + 0x04f2, 0x04fc, 0x0505, 0x0511, 0x051d, 0x0529, 0x0535, 0x053c, + 0x054d, 0x0559, 0x0564, 0x056c, 0x0576, 0x057c, 0x0583, 0x058b, + 0x0595, 0x059d, 0x05a3, 0x05aa, 0x05b6, 0x05bd, 0x05c2, 0x05ce, + 0x05d8, 0x05df, 0x05e9, 0x05ec, 0x05f7, 0x0604, 0x060a, 0x0616, + 0x062e, 0x0630, 0x0636, 0x0649, 0x0649, 0x0651, 0x0660, 0x066a, + 0x067d, +} // Size: 362 bytes + +var swScriptStr string = "" + // Size: 346 bytes + "KiarabuKiarmeniaKibengaliKibopomofoBrailleKisirilikiKidevanagariKiethiop" + + "iaKijojiaKigirikiKigujaratiKigurmukhiKihangulKihanKihan RahisiKihan cha " + + "JadiKiebraniaKihiraganaKijapaniKikatakanaKikambodiaKikannadaKikoreaKilao" + + "siKilatiniKimalayalamKimongoliaMyamaKioriyaKisinhalaKitamilKiteluguKitha" + + "anaKitaiKitibetiAlamaHaijaandikwaKawaidaHati isiyojulikana" + +var swScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0023, 0x0023, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x0034, 0x0034, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x004a, 0x004a, 0x0051, 0x0051, + 0x0051, 0x0051, 0x0059, 0x0063, 0x006d, 0x0075, 0x007a, 0x007a, + 0x0086, 0x0094, 0x0094, 0x009d, 0x00a7, 0x00a7, 0x00a7, 0x00a7, + 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00af, 0x00af, 0x00af, 0x00b9, + // Entry 40 - 7F + 0x00b9, 0x00c3, 0x00c3, 0x00cc, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00da, 0x00da, 0x00da, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, + 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, 0x00e2, + 0x00e2, 0x00e2, 0x00e2, 0x00ed, 0x00ed, 0x00f7, 0x00f7, 0x00f7, + 0x00f7, 0x00f7, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x00fc, 0x00fc, 0x00fc, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, + // Entry 80 - BF + 0x0103, 0x0103, 0x0103, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, + 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x010c, 0x0113, + 0x0113, 0x0113, 0x011b, 0x011b, 0x011b, 0x011b, 0x0123, 0x0128, + 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, + 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0135, 0x0141, 0x0148, + 0x015a, +} // Size: 362 bytes + +var taScriptStr string = "" + // Size: 3904 bytes + "அரபிகà¯à®‡à®®à¯à®ªà¯‡à®°à®¿à®¯à®²à¯ அரமெயà¯à®•à¯à®…à®°à¯à®®à¯‡à®©à®¿à®¯à®©à¯à®…வெஸà¯à®¤à®¾à®©à¯à®ªà®¾à®²à®¿à®©à¯€à®¸à¯à®ªà®¾à®Ÿà®¾à®•à¯à®µà®™à¯à®•à®¾à®³à®®à¯à®ªà¯à®²à®¿à®¸à¯" + + "ஸிமிபாலà¯à®¸à¯à®ªà¯‹à®ªà¯‹à®®à¯‹à®ƒà®ªà¯‹à®ªà®¿à®°à®®à¯à®®à®¿à®ªà®¿à®°à¯†à®¯à®¿à®²à¯à®ªà¯à®•à®¿à®©à¯€à®¸à¯à®ªà¯à®•à®¿à®¤à¯à®šà®•à¯à®®à®¾à®¯à¯à®©à®¿à®ƒà®ªà¯ˆà®Ÿà¯ கனடியனà¯" + + " அபொரிஜினல௠சிலபிகà¯à®¸à¯à®•à®°à®¿à®¯à®©à¯à®šà®¾à®®à¯à®šà¯†à®°à¯‹à®•à¯à®•à®¿à®•à®¿à®°à¯à®¤à¯à®•à®¾à®ªà¯à®Ÿà®¿à®•à¯à®šà¯ˆà®ªà¯à®°à®¿à®¯à®¾à®Ÿà¯à®šà®¿à®°à®¿à®²à®¿à®•à¯à®ª" + + "ழைய சரà¯à®šà¯ ஸà¯à®²à®µà¯‹à®©à®¿à®•à¯ சிரிலிகà¯à®¤à¯‡à®µà®¨à®¾à®•à®°à®¿à®Ÿà¯†à®šà®°à®¾à®Ÿà¯à®Žà®•à®¿à®ªà¯à®¤à®¿à®¯à®©à¯ டெமோடà¯à®Ÿà®¿à®•à¯à®Žà®•à®¿à®ªà¯à®¤" + + "ியன௠ஹைரேடà¯à®Ÿà®¿à®•à¯à®Žà®•à®¿à®ªà¯à®¤à®¿à®¯à®©à¯ ஹைரோகிளிபà¯à®¸à¯à®Žà®¤à¯à®¤à®¿à®¯à¯‹à®ªà®¿à®•à¯à®œà®¿à®¯à®¾à®°à¯à®œà®¿à®¯à®©à¯ கà¯à®Ÿà¯à®šà¯à®°à®¿à®œ" + + "ாரà¯à®œà®¿à®¯à®©à¯à®•à¯à®²à®¾à®•à¯‹à®²à®¿à®Ÿà®¿à®•à¯à®•à¯‹à®¤à®¿à®•à¯à®•à®¿à®°à¯‡à®•à¯à®•à®®à¯à®•à¯à®œà®°à®¾à®¤à¯à®¤à®¿à®•à¯à®°à¯à®®à¯à®•à®¿à®¹à®™à¯à®•à¯à®²à¯à®¹à®©à¯à®¹à®©à¯à®©à¯‚எளி" + + "தாகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஹனà¯à®ªà®¾à®°à®®à¯à®ªà®°à®¿à®¯ ஹனà¯à®¹à¯€à®ªà¯à®°à¯à®¹à®¿à®°à®¾à®•à®¾à®©à®¾à®ªà®¹à®¾à®µà¯ மாஙà¯à®•à¯à®•à®Ÿà®¾à®•à®¾à®©à®¾ அலà¯à®²à®¤à¯ ஹ" + + "ிராகானாபழைய ஹஙà¯à®•à¯‡à®°à®¿à®¯à®©à¯à®šà®¿à®¨à¯à®¤à¯à®ªà®´à¯ˆà®¯ இதà¯à®¤à®¾à®²à®¿à®œà®¾à®µà®©à¯€à®¸à¯à®œà®ªà¯à®ªà®¾à®©à®¿à®¯à®®à¯à®•à®¯à®¾à®¹à¯ லீகதகான" + + "ாகரோஷà¯à®Ÿà®¿à®•à®®à¯†à®°à¯à®•à®©à¯à®©à®Ÿà®®à¯à®•à¯Šà®°à®¿à®¯à®©à¯à®•à®¾à®¯à¯à®¤à®¿à®²à®©à¯à®©à®¾à®²à®¾à®µà¯‹à®ƒà®ªà¯à®°à®•à¯à®Ÿà¯‚ர௠லெதà¯à®¤à®¿à®©à¯à®•à¯‡à®²à®¿à®•à¯ லெ" + + "தà¯à®¤à®¿à®©à¯à®²à®¤à¯à®¤à®¿à®©à¯à®²à¯†à®ªà¯à®šà®¾à®²à®¿à®®à¯à®ªà¯à®²à®¿à®©à®¿à®¯à®°à¯ à®à®²à®¿à®©à®¿à®¯à®°à¯ பிலிசியனà¯à®²à®¿à®Ÿà®¿à®¯à®©à¯à®®à¯‡à®©à¯à®Ÿà®¿à®¯à®©à¯à®®à®©à®¿" + + "செயà¯à®©à¯à®®à®¯à®¾à®©à¯ ஹைரோகிளிபà¯à®®à¯†à®°à®¾à®¯à¯à®Ÿà®¿à®•à¯à®®à®²à¯ˆà®¯à®¾à®³à®®à¯à®®à®™à¯à®•à¯‹à®²à®¿à®¯à®©à¯à®®à¯‚னà¯à®®à¯†à®¯à¯à®¤à¯†à®¯à¯ மயகà¯à®®à®¿à®¯" + + "ானà¯à®®à®°à¯à®Žà®©à¯â€˜à®•à¯‹à®’காமà¯à®’ல௠சிகà¯à®•à®¿à®†à®°à¯à®•à®¾à®©à¯à®’ரியாஒஸà¯à®®à®¾à®©à¯à®¯à®¾à®ªà®´à¯ˆà®¯ பெரà¯à®®à®¿à®•à¯à®ªà®•à¯à®¸à¯-பாஇ" + + "னà¯à®¸à¯à®•à®¿à®°à®¿à®ªà¯à®·à®©à®²à¯ பஹலவிசாலà¯à®Ÿà®°à¯ பஹலவிபà¯à®•à¯ பஹலவிஃபோனேஷியனà¯à®ªà¯‹à®²à®¾à®°à¯à®Ÿà¯ ஃபொனெடà¯à®Ÿ" + + "ிகà¯à®‡à®©à¯à®¸à¯à®•à®¿à®°à®¿à®ªà¯à®·à®©à®²à¯ பாரà¯à®¤à¯à®¤à®¿à®¯à®©à¯à®°à¯†à®œà¯†à®¯à¯à®©à¯à®°à¯Šà®™à¯à®•à¯‹à®°à¯Šà®™à¯à®•à¯‹à®°à¯à®©à®¿à®•à¯à®šà®®à®¾à®°à®¿à®Ÿà®©à¯à®šà®¾à®°à®¾à®¤à®¿" + + "சௌராஷà¯à®Ÿà¯à®°à®¾à®¸à¯ˆà®©à¯à®Žà®´à¯à®¤à¯à®¤à¯à®·à®µà®¿à®¯à®¾à®©à¯à®šà®¿à®™à¯à®•à®³à®®à¯à®šà¯à®¨à¯à®¤à®¾à®©à¯€à®¸à¯à®šà®¿à®²à¯‹à®Ÿà®¿ நகà¯à®°à®¿à®šà®¿à®°à®¿à®¯à®¾à®•à¯à®Žà®¸à¯à®Ÿ" + + "à¯à®°à¯†à®™à¯à®•à¯†à®²à¯‹ சிரியாகà¯à®®à¯‡à®±à¯à®•à¯ சிரியாகà¯à®•à®¿à®´à®•à¯à®•à¯ சிரியாகà¯à®¤à®•à¯‹à®µà®¾à®©à®¾à®¤à®¾à®¯à¯ லேபà¯à®¤à®¿à®¯ த" + + "ை லூதமிழà¯à®¤à¯ˆ வியதà¯à®¤à¯†à®²à¯à®™à¯à®•à¯à®¤à¯†à®™à¯à®µà®¾à®°à¯à®Ÿà®¿à®ƒà®ªà®¿à®©à®¾à®•à¯à®¤à®•à®²à®¾à®•à¯à®¤à®¾à®©à®¾à®¤à®¾à®¯à¯à®¤à®¿à®ªà¯†à®¤à¯à®¤à®¿à®¯à®©à¯à®‰à®•à®¾" + + "ரதிகà¯à®µà¯ˆà®µà®¿à®šà®¿à®ªà®¿à®³à¯ ஸà¯à®ªà¯€à®šà¯à®ªà®´à¯ˆà®¯ பெரà¯à®·à®¿à®¯à®©à¯à®šà¯à®®à¯†à®°à¯‹-அகà¯à®•à®Ÿà®¿à®¯à®©à¯ கà¯à®¯à¯‚னிஃபாரà¯à®®à¯à®¯à¯€à®ªà®¾" + + "à®°à®®à¯à®ªà®°à®¿à®¯à®®à®¾à®©à®•à®£à®¿à®¤à®•à¯à®•à¯à®±à®¿à®¯à¯€à®Ÿà¯à®šà®¿à®©à¯à®©à®™à¯à®•à®³à¯à®Žà®´à¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤à®¤à¯à®ªà¯Šà®¤à¯à®…றியபà¯à®ªà®Ÿà®¾à®¤ எழà¯à®¤à¯à®¤à¯" + +var taScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0049, 0x0067, 0x0082, + 0x009a, 0x009a, 0x009a, 0x00ac, 0x00c4, 0x00f4, 0x010f, 0x0124, + 0x013c, 0x0154, 0x0166, 0x0175, 0x01e1, 0x01f3, 0x01ff, 0x0217, + 0x0229, 0x0241, 0x025f, 0x0277, 0x02c8, 0x02e0, 0x02f5, 0x02f5, + 0x0332, 0x036f, 0x03b2, 0x03b2, 0x03d3, 0x040d, 0x0428, 0x044c, + 0x045e, 0x045e, 0x0479, 0x0494, 0x04ac, 0x04c1, 0x04ca, 0x04d9, + 0x050d, 0x0532, 0x0532, 0x0544, 0x055c, 0x055c, 0x057e, 0x05bf, + 0x05ea, 0x05fc, 0x061e, 0x0633, 0x0651, 0x0651, 0x0667, 0x0679, + // Entry 40 - 7F + 0x068e, 0x069d, 0x069d, 0x06b2, 0x06c7, 0x06c7, 0x06d9, 0x06e8, + 0x06f4, 0x072b, 0x0756, 0x076b, 0x077d, 0x078f, 0x07a8, 0x07c4, + 0x07c4, 0x07c4, 0x07d9, 0x07ee, 0x07ee, 0x0809, 0x0824, 0x0852, + 0x0852, 0x0852, 0x0870, 0x0888, 0x0888, 0x08a6, 0x08b2, 0x08b2, + 0x08d7, 0x08d7, 0x08f2, 0x08f2, 0x08f2, 0x08f2, 0x0904, 0x0904, + 0x0913, 0x092f, 0x0944, 0x0953, 0x096e, 0x096e, 0x096e, 0x0993, + 0x09a9, 0x09e6, 0x0a0b, 0x0a27, 0x0a45, 0x0a7f, 0x0ace, 0x0ae6, + 0x0b0a, 0x0b1c, 0x0b34, 0x0b46, 0x0b46, 0x0b64, 0x0b85, 0x0b9a, + // Entry 80 - BF + 0x0b9a, 0x0b9a, 0x0b9a, 0x0bb2, 0x0bb2, 0x0bd0, 0x0bf2, 0x0c0a, + 0x0c4a, 0x0c75, 0x0ca3, 0x0cb8, 0x0cb8, 0x0ccb, 0x0ce8, 0x0cf7, + 0x0cf7, 0x0d0d, 0x0d25, 0x0d3d, 0x0d58, 0x0d6a, 0x0d76, 0x0d82, + 0x0da3, 0x0da3, 0x0dbb, 0x0dc1, 0x0dec, 0x0dec, 0x0dec, 0x0e14, + 0x0e6a, 0x0e70, 0x0e94, 0x0ebe, 0x0ebe, 0x0edc, 0x0f00, 0x0f0c, + 0x0f40, +} // Size: 362 bytes + +var teScriptStr string = "" + // Size: 3721 bytes + "అరబికà±à°‡à°‚పీరియలౠఅరామాకà±à°…à°°à±à°®à±‡à°¨à°¿à°¯à°¨à±à°…వేసà±à°Ÿà°¾à°¨à±à°¬à°¾à°²à°¿à°¨à±€à°¸à±à°¬à°¾à°Ÿà°•à±à°¬à±†à°‚గాలిబà±à°²à°¿à°¸à±à°¸à°¿à°‚à°¬" + + "à°²à±à°¸à±à°¬à±‹à°ªà±‹à°®à±‹à°«à±‹à°¬à±à°°à°¾à°¹à±à°®à°¿à°¬à±à°°à±†à°¯à°¿à°²à±à°¬à±à°¯à±à°—ినీసà±à°¬à±à°¹à°¿à°¡à±à°šà°•à±à°®à°¾à°¯à±à°¨à°¿à°«à±ˆà°¡à± కెనెడియనౠఅబ" + + "ొరిజినలౠసిలబికà±à°¸à±à°•à°¾à°°à°¿à°¯à°¨à±à°šà°¾à°®à±à°šà°¿à°°à±‹à°•à°¿à°¸à°¿à°°à±à°¥à±à°•à±‹à°ªà±à°Ÿà°¿à°•à±à°¸à±ˆà°ªà±à°°à±‹à°Ÿà±à°¸à°¿à°°à°¿à°²à°¿à°•à±à°ªà±à°°à°¾à°š" + + "ీన à°šà°°à±à°š à°¸à±à°²à°¾à°µà±‹à°¨à°¿à°•à± సిరిలికà±à°¦à±‡à°µà°¨à°¾à°—రిడేసెరెటà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯à°¨à± డెమోటికà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯" + + "నౠహైరాటికà±à°‡à°œà°¿à°ªà±à°·à°¿à°¯à°¨à± హైరోగà±à°²à±ˆà°«à±à°¸à±à°‡à°¥à°¿à°¯à±‹à°ªà°¿à°•à±à°œà°¾à°°à±à°œà°¿à°¯à°¨à± à°–à°Ÿà±à°¸à±‚రిజారà±à°œà°¿à°¯à°¨à±à°—" + + "à±à°²à°¾à°—ో లిటికà±à°—ోతికà±à°—à±à°°à±€à°•à±à°—à±à°œà°°à°¾à°¤à±€à°—à±à°°à±à°®à±à°–ిహంగà±à°²à±à°¹à°¾à°¨à±à°¹à°¨à±à°¨à±‚సరళీకృత హానà±à°¸à°¾à°‚à°ª" + + "à±à°°à°¦à°¾à°¯à°• హానà±à°¹à±€à°¬à±à°°à±à°¹à°¿à°°à°¾à°—ానపాహవా à°¹à±à°®à±‹à°‚à°—à±à°•à°¾à°Ÿà°¾à°•à°¾à°¨ లేదా హిరాగనపà±à°°à°¾à°šà±€à°¨ హంగేరి" + + "యనà±à°¸à°¿à°‚à°§à±à°ªà±à°°à°¾à°šà°¿à°¨ à°à°Ÿà°¾à°²à°¿à°•à±à°œà°¾à°µà°¨à±€à°¸à±à°œà°¾à°ªà°¨à±€à°¸à±à°•à°¾à°¯à°¾à°¹à± లికాటాకానఖరోషథిఖà±à°®à±‡à°°à±à°•à°¨à±à°¨à°¡" + + "కొరియనà±à°•à±ˆà°¥à°¿à°²à°¨à±à°¨à°¾à°²à°¾à°µà±‹à°«à±à°°à°¾à°•à±à°Ÿà±‚రౠలాటినà±à°—ేలికౠలాటినà±à°²à°¾à°Ÿà°¿à°¨à±à°²à±‡à°ªà±à°šà°¾à°²à°¿à°‚à°¬à±à°²à°¿à°¨" + + "ియరౠఎలినియరౠబిలిసియనà±à°²à°¿à°¡à°¿à°¯à°¨à±à°®à°¾à°¨à±à°¡à°¿à°¯à°¨à±à°®à°¾à°¨à°¿à°šà±‡à°¨à±à°®à°¾à°¯à°¨à± హైరోగà±à°²à±ˆà°«à±à°¸à±à°®à±†à°°à±‹à°‡" + + "à°Ÿà°¿à°•à±à°®à°²à°¯à°¾à°³à°‚మంగోలియనà±à°®à±‚à°¨à±à°®à±€à°Ÿà°¿ మయెకà±à°®à°¯à°¾à°¨à±à°®à°¾à°°à±à°¨à±à°•à±‹à°’ఘమà±à°“లౠచికిఓరà±à°–ోనà±à°’రియా" + + "ఓసమానà±à°¯à°ªà±à°°à°¾à°šà±€à°¨ పెరà±à°®à°¿à°•à±à°«à°¾à°—à±à°¸à±-పాఇంసà±à°•à±à°°à°¿à°ªà±à°·à°¨à°¾à°²à± పహà±à°²à°¾à°µà°¿à°¸à°²à±à°Ÿà°¾à°°à± పహà±à°²à°¾à°µà°¿" + + "à°ªà±à°¸à±à°¤à°• పహà±à°²à°¾à°µà°¿à°«à±‹à°¨à°¿à°¶à°¿à°¯à°¨à±à°ªà±‹à°²à±à°²à°°à±à°¡à± ఫోనెటికà±à°‡à°‚à°¸à±à°•à±à°°à°¿à°ªà±à°·à°¨à°¾à°²à± పారà±à°¥à°¿à°¯à°¨à±à°°à±‡à°œà°¾" + + "à°‚à°—à±à°°à±‹à°‚గో రోంగోరూనికà±à°¸à°®à°¾à°°à°¿à°Ÿà°¨à±à°¸à°°à°¾à°Ÿà°¿à°¸à±Œà°°à°¾à°·à±à°Ÿà±à°°à°¸à°‚à°œà±à°ž లిపిషవియానà±à°¸à°¿à°‚హళంసà±à°¡à°¾à°¨" + + "ీసà±à°¸à±à°²à±‹à°Ÿà°¿ నాగà±à°°à°¿à°¸à°¿à°°à°¿à°¯à°¾à°•à±à°Žà°¸à±à°Ÿà±à°°à°¾à°¨à°œà±€à°²à±‹ సిరియాకà±à°ªà°¶à±à°šà°¿à°® సిరియాకà±à°¤à±‚à°°à±à°ªà± సిర" + + "ియాకà±à°Ÿà°¾à°—à±à°¬à°¾à°¨à°µà°¾à°¤à±ˆ లీకà±à°°à±Šà°¤à±à°¤ టై à°²à±à°‡à°¤à°®à°¿à°³à°®à±à°Ÿà±ˆ వియటà±à°¤à±†à°²à±à°—à±à°Ÿà±‡à°‚à°—à±à°µà°¾à°°à±à°Ÿà°¿à°«à±€à°¨à°¾à°˜à±" + + "టగలాగà±à°¥à°¾à°¨à°¾à°¥à°¾à°¯à±à°Ÿà°¿à°¬à±†à°Ÿà°¨à±à°¯à±à°—ారిటికà±à°µà°¾à°¯à°¿à°•à°¨à°¿à°ªà°¿à°‚చే భాషపà±à°°à°¾à°šà±€à°¨ పరà±à°·à°¿à°¯à°¨à±à°¸à±à°®à±‡à°°à±‹-" + + " à°…à°•à±à°•à°¡à°¿à°¯à°¨à± à°•à±à°¯à±à°¨à°¿à°«à°¾à°°à±à°®à±à°¯à°¿à°µà°¾à°°à°¸à°¤à±à°µà°‚గణిత సంకేతలిపిచిహà±à°¨à°¾à°²à±à°²à°¿à°ªà°¿ లేనిసామానà±à°¯à°¤" + + "ెలియని లిపి" + +var teScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0043, 0x0061, 0x007c, + 0x0094, 0x0094, 0x0094, 0x00a3, 0x00b8, 0x00e2, 0x00fa, 0x0112, + 0x012a, 0x0148, 0x015a, 0x0169, 0x01d8, 0x01ed, 0x01f9, 0x020b, + 0x021d, 0x0235, 0x024d, 0x0265, 0x02bf, 0x02d7, 0x02ef, 0x02ef, + 0x0326, 0x035d, 0x03a0, 0x03a0, 0x03bb, 0x03ec, 0x0407, 0x042c, + 0x043e, 0x043e, 0x0450, 0x0465, 0x047d, 0x048f, 0x049b, 0x04aa, + 0x04cc, 0x04f7, 0x04f7, 0x0509, 0x051e, 0x051e, 0x0543, 0x0578, + 0x05a9, 0x05b8, 0x05e3, 0x05f8, 0x060d, 0x060d, 0x0626, 0x063b, + // Entry 40 - 7F + 0x064d, 0x065f, 0x065f, 0x066e, 0x0683, 0x0683, 0x068f, 0x069e, + 0x06aa, 0x06db, 0x0700, 0x0712, 0x0724, 0x0733, 0x074c, 0x0768, + 0x0768, 0x0768, 0x077d, 0x0792, 0x0792, 0x07ad, 0x07c5, 0x07f9, + 0x07f9, 0x07f9, 0x0814, 0x0826, 0x0826, 0x0841, 0x084d, 0x084d, + 0x0869, 0x0869, 0x0884, 0x0884, 0x0884, 0x0884, 0x0890, 0x0890, + 0x089c, 0x08b2, 0x08c7, 0x08d6, 0x08eb, 0x08eb, 0x08eb, 0x0919, + 0x0932, 0x0975, 0x09a0, 0x09c8, 0x09e3, 0x0a17, 0x0a60, 0x0a75, + 0x0a94, 0x0aa6, 0x0abe, 0x0acd, 0x0acd, 0x0ae8, 0x0b04, 0x0b19, + // Entry 80 - BF + 0x0b19, 0x0b19, 0x0b19, 0x0b2b, 0x0b2b, 0x0b43, 0x0b68, 0x0b80, + 0x0bbd, 0x0be8, 0x0c13, 0x0c2e, 0x0c2e, 0x0c3b, 0x0c61, 0x0c73, + 0x0c73, 0x0c89, 0x0c9b, 0x0cb6, 0x0cce, 0x0ce0, 0x0cec, 0x0cf8, + 0x0d0d, 0x0d0d, 0x0d2b, 0x0d37, 0x0d59, 0x0d59, 0x0d59, 0x0d87, + 0x0ddb, 0x0de1, 0x0df9, 0x0e21, 0x0e21, 0x0e39, 0x0e52, 0x0e67, + 0x0e89, +} // Size: 362 bytes + +var thScriptStr string = "" + // Size: 4317 bytes + "อะฟาคาà¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢ คอเคเซียอาหรับอิมพีเรียล อราเมอิà¸à¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢à¸­à¹€à¸§à¸ªà¸•à¸°à¸šà¸²à¸«à¸¥à¸µà¸šà¸²" + + "มุมบัสซาบาตัà¸à¹€à¸šà¸‡à¸à¸²à¸¥à¸µà¸šà¸¥à¸´à¸ªà¸‹à¸´à¸¡à¹‚บลส์ปอพอมอฟอพราหมีเบรลล์บูà¸à¸´à¸ªà¸šà¸¹à¸®à¸´à¸”ชาà¸à¸¡à¸²à¸ªà¸±à¸" + + "ลัà¸à¸©à¸“์ชนเผ่าพื้นเมืองà¹à¸„นาดาคาเรียจามเชอโรà¸à¸µà¹€à¸‹à¸´à¸£à¹Œà¸—คอปติà¸à¹„ซเปรียทซีริลลิ" + + "à¸à¹€à¸Šà¸­à¸£à¹Œà¸Šà¸ªà¸¥à¸²à¹‚วนิà¸à¸‹à¸µà¸£à¸´à¸¥à¸¥à¸´à¸à¹‚บราณเทวนาครีเดเซเรทชวเลขดัปโลยันดีโมติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œ" + + "เฮียราติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹€à¸®à¸µà¸¢à¹‚รà¸à¸¥à¸´à¸Ÿà¸ªà¹Œà¸­à¸µà¸¢à¸´à¸›à¸•à¹Œà¹€à¸­à¸¥à¸šà¹Œà¸‹à¸²à¸™à¹€à¸­à¸—ิโอปิà¸à¸„ัตซูรีจอร์เจียจอร" + + "์เจียà¸à¸¥à¸²à¹‚à¸à¸¥à¸´à¸•à¸´à¸à¹‚à¸à¸˜à¸´à¸à¸„ฤณห์à¸à¸£à¸µà¸à¸„ุชราตà¸à¸¹à¸£à¹Œà¸¡à¸¹à¸„ีฮันà¸à¸¹à¸¥à¸®à¸±à¹ˆà¸™à¸®à¸²à¸™à¸¹à¹‚นโอฮั่นตัวย่" + + "อฮั่นตัวเต็มฮีบรูฮิระงะนะอัà¸à¸‚ระอานาโตเลียปาเฮาห์ม้งคะตะà¸à¸°à¸™à¸°à¸«à¸£à¸·à¸­à¸®à¸´à¸£à¸°à¸‡à¸°à¸™" + + "ะฮังà¸à¸²à¸£à¸µà¹‚บราณอินดัสอิตาลีโบราณชวาà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¸ˆà¸¹à¸£à¹Œà¹€à¸Šà¸™à¸„ยาห์คะตะà¸à¸°à¸™à¸°à¸‚โรษà¸à¸µà¹€à¸‚มร" + + "คอจคีà¸à¸±à¸™à¸™à¸²à¸”าเà¸à¸²à¸«à¸¥à¸µà¹€à¸›à¸¥à¹€à¸¥à¸à¸²à¸¢à¸•à¸´à¸¥à¹‰à¸²à¸™à¸™à¸²à¸¥à¸²à¸§à¸¥à¸²à¸•à¸´à¸™ - ฟรังเตอร์ลาติน - à¹à¸à¸¥à¸´à¸à¸¥à¸°à¸•" + + "ินเลปชาลิมบูลีเนียร์เอลีเนียร์บีเฟรเซอร์โลมาไลเซียลีเดียมหาชนีà¹à¸¡à¸™à¹€à¸”ียน" + + "มานิà¹à¸Šà¸™à¸¡à¸²à¸¢à¸²à¹„ฮโรà¸à¸¥à¸´à¸Ÿà¸ªà¹Œà¹€à¸¡à¸™à¹€à¸”เคอร์ซีฟ-เมโรอิติà¸à¹€à¸¡à¹‚รติà¸à¸¡à¸²à¸¥à¸²à¸¢à¸²à¸¥à¸±à¸¡à¹‚มฑีมองโà¸à¹€" + + "ลียมูนมโรเมเทมาเยà¸à¸žà¸¡à¹ˆà¸²à¸­à¸²à¸£à¸°à¹€à¸šà¸µà¸¢à¹€à¸«à¸™à¸·à¸­à¹‚บราณนาบาทาเอียนà¸à¸µà¸šà¸²-นาซีเอ็นโà¸à¸™à¸¸à¸‹à¸¸" + + "โอคัมโอลชิà¸à¸´à¸­à¸­à¸£à¹Œà¸„อนโอริยาออสมันยาพาลไมรีนป่อจิ้งฮอเปอร์มิà¸à¹‚บราณฟาà¸à¸ªà¹Œ-ป" + + "าปะห์ลาวีอินสคริปชันà¹à¸™à¸¥à¸›à¸°à¸«à¹Œà¸¥à¸²à¸§à¸µà¸‹à¸­à¸¥à¹€à¸•à¸­à¸£à¹Œà¸›à¸°à¸«à¹Œà¸¥à¸²à¸§à¸µà¸šà¸¸à¹Šà¸à¸Ÿà¸´à¸™à¸´à¹€à¸Šà¸µà¸¢à¸ªà¸±à¸—ศาสตร์พอ" + + "ลลาร์ดพาร์เทียอินสคริปชันà¹à¸™à¸¥à¹€à¸£à¸ˆà¸±à¸‡à¸£à¸­à¸‡à¹‚à¸à¸£à¸­à¸‡à¹‚à¸à¸£à¸¹à¸™à¸´à¸à¸‹à¸²à¸¡à¸²à¹€à¸£à¸µà¸¢à¸‹à¸²à¸£à¸²à¸•à¸´à¸­à¸²à¸£à¸°à¹€à¸šà¸µà¸¢" + + "ใต้โบราณโสวรัสตระไซน์ไรติ้งซอเวียนชาราดาสิทธัมคุดาวาดีสิงหลโสราสมเป็งซ" + + "ุนดาซิโลตินาà¸à¸£à¸µà¸‹à¸µà¹€à¸£à¸µà¸¢à¸‹à¸µà¹€à¸£à¸µà¸¢à¹€à¸­à¸ªà¸—รานจีโลซีเรียตะวันตà¸à¸‹à¸µà¹€à¸£à¸µà¸¢à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸à¸•à¸±à¸à¸šà¸±" + + "นวาทาครีไทเลไทลื้อใหม่ทมิฬตันà¸à¸±à¸—ไทเวียตเทลูà¸à¸¹à¹€à¸—งà¸à¸§à¸²à¸£à¹Œà¸—ิฟินาà¸à¸•à¸²à¸à¸²à¸¥à¹‡à¸­à¸à¸—า" + + "นาไทยทิเบตเทอฮุทายูà¸à¸²à¸£à¸´à¸•à¹„วคำพูดที่มองเห็นได้วารังà¸à¸ªà¸´à¸•à¸´à¹‚อลีเอเปอร์เซียโ" + + "บราณอัà¸à¸©à¸£à¸£à¸¹à¸›à¸¥à¸´à¹ˆà¸¡à¸ªà¸¸à¹€à¸¡à¹€à¸£à¸µà¸¢-อัคคาเดียยิอินเฮอริตเครื่องหมายทางคณิตศาสตร์ซ" + + "ิมโบลส์ไม่มีภาษาเขียนสามัà¸à¸ªà¸„ริปต์ที่ไม่รู้จัà¸" + +var thScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0046, 0x0046, 0x0058, 0x008f, 0x00ad, 0x00bf, + 0x00ce, 0x00dd, 0x00ec, 0x00fb, 0x0110, 0x0134, 0x014c, 0x015e, + 0x0170, 0x017f, 0x018e, 0x019d, 0x01f7, 0x0209, 0x0212, 0x0227, + 0x0239, 0x024b, 0x0263, 0x027b, 0x02cc, 0x02e4, 0x02f9, 0x0320, + 0x034a, 0x037a, 0x03b3, 0x03cb, 0x03e6, 0x0413, 0x042b, 0x0449, + 0x0458, 0x0467, 0x0473, 0x0485, 0x049d, 0x04af, 0x04bb, 0x04d3, + 0x04f1, 0x0512, 0x0512, 0x0521, 0x0539, 0x0569, 0x0587, 0x05c3, + 0x05e7, 0x05f9, 0x061a, 0x0623, 0x0638, 0x064d, 0x065c, 0x0674, + // Entry 40 - 7F + 0x0686, 0x0692, 0x06a1, 0x06b6, 0x06c8, 0x06d7, 0x06e6, 0x06f8, + 0x0701, 0x072e, 0x074f, 0x075e, 0x076d, 0x077c, 0x079a, 0x07b8, + 0x07d0, 0x07dc, 0x07ee, 0x0800, 0x0812, 0x082a, 0x083f, 0x0869, + 0x0878, 0x08ac, 0x08c1, 0x08dc, 0x08e8, 0x0903, 0x090c, 0x0915, + 0x0930, 0x0930, 0x093c, 0x0972, 0x0993, 0x09ac, 0x09be, 0x09ca, + 0x09d9, 0x09ee, 0x0a03, 0x0a15, 0x0a2d, 0x0a45, 0x0a60, 0x0a87, + 0x0a9d, 0x0adf, 0x0b0f, 0x0b33, 0x0b4b, 0x0b7e, 0x0bc0, 0x0bcf, + 0x0bed, 0x0bfc, 0x0c14, 0x0c26, 0x0c56, 0x0c71, 0x0c8f, 0x0ca4, + // Entry 80 - BF + 0x0cb6, 0x0cc8, 0x0ce0, 0x0cef, 0x0d0d, 0x0d1c, 0x0d3d, 0x0d4f, + 0x0d82, 0x0da9, 0x0dd3, 0x0deb, 0x0dfa, 0x0e06, 0x0e24, 0x0e30, + 0x0e42, 0x0e57, 0x0e69, 0x0e81, 0x0e96, 0x0eae, 0x0eba, 0x0ec3, + 0x0ed2, 0x0ee7, 0x0efc, 0x0f02, 0x0f38, 0x0f56, 0x0f68, 0x0f92, + 0x0fea, 0x0ff0, 0x100b, 0x1053, 0x1053, 0x106b, 0x1095, 0x10a4, + 0x10dd, +} // Size: 362 bytes + +var trScriptStr string = "" + // Size: 1491 bytes + "AfakaKafkas AlbanyasıArapÄ°mparatorluk AramicesiErmeniAvestaBali DiliBamu" + + "mBassa VahBatakBengalBlis SembolleriBopomofoBrahmiBrailleBugisBuhidChakm" + + "aUCASKaryaChamÇerokiCirthKıptiKıbrısKirilEski Kilise Slavcası KirilDevan" + + "agariDeseretDuployé StenografiDemotik MısırHiyeratik MısırMısır Hiyerogl" + + "ifleriElbasanEtiyopyaHutsuri GürcüGürcüGlagolitGotikGranthaYunanGüceratG" + + "urmukhiHangılHanHanunooBasitleÅŸtirilmiÅŸ HanGeleneksel HanÄ°braniHiraganaA" + + "nadolu HiyeroglifleriPahavh HmongKatakana veya HiraganaEski MacarIndusEs" + + "ki Ä°talyanCava DiliJaponJurchenKayah LiKatakanaKharoshthiKmerKhojkiKanna" + + "daKoreKpelleKaithiLannaLaoFraktur LatinGael LatinLatinLepchaLimbuLineer " + + "ALineer BFraserLomaLikyaLidyaMahajaniMandenManiMaya HiyeroglifleriMendeM" + + "eroitik El YazısıMeroitikMalayalamModiMoÄŸolMoonMroMeitei MayekBurmaEski " + + "Kuzey ArapNebatiNaksi GebaN’KoNüshuOghamOl ChikiOrhunOriyaOsmanyaPalmira" + + "Pau Cin HauEski PermikPhags-paPehlevi Kitabe DiliPsalter PehleviKitap Pe" + + "hlevi DiliFenikePollard FonetikPartça Kitabe DiliRejangRongorongoRunikSa" + + "maritSaratiEski Güney ArapSaurashtraÄ°ÅŸaret DiliShavianSharadaSiddhamKhud" + + "abadiSeylanSora SompengSundaSyloti NagriSüryaniEstrangela SüryaniBatı Sü" + + "ryaniDoÄŸu SüryaniTagbanvaTakriTai LeNew Tai LueTamilTangutTai VietTelugu" + + "TengvarTifinaghTakalotThaanaTayTibetTirhutaUgarit Çivi YazısıVaiKonuÅŸma " + + "Sesleri ÇizimlemesiVarang KshitiWoleaiEski FarsSümer-Akad Çivi YazısıYiK" + + "alıtsalMatematiksel GösterimSembolYazılı OlmayanOrtakBilinmeyen Alfabe" + +var trScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0005, 0x0016, 0x0016, 0x001a, 0x0031, 0x0037, 0x003d, + 0x0046, 0x004b, 0x0054, 0x0059, 0x005f, 0x006e, 0x0076, 0x007c, + 0x0083, 0x0088, 0x008d, 0x0093, 0x0097, 0x009c, 0x00a0, 0x00a7, + 0x00ac, 0x00b2, 0x00ba, 0x00bf, 0x00da, 0x00e4, 0x00eb, 0x00fe, + 0x010d, 0x011e, 0x0134, 0x013b, 0x0143, 0x0152, 0x0159, 0x0161, + 0x0166, 0x016d, 0x0172, 0x017a, 0x0182, 0x0189, 0x018c, 0x0193, + 0x01a9, 0x01b7, 0x01b7, 0x01be, 0x01c6, 0x01dc, 0x01e8, 0x01fe, + 0x0208, 0x020d, 0x021a, 0x0223, 0x0228, 0x022f, 0x0237, 0x023f, + // Entry 40 - 7F + 0x0249, 0x024d, 0x0253, 0x025a, 0x025e, 0x0264, 0x026a, 0x026f, + 0x0272, 0x027f, 0x0289, 0x028e, 0x0294, 0x0299, 0x02a1, 0x02a9, + 0x02af, 0x02b3, 0x02b8, 0x02bd, 0x02c5, 0x02cb, 0x02cf, 0x02e2, + 0x02e7, 0x02fb, 0x0303, 0x030c, 0x0310, 0x0316, 0x031a, 0x031d, + 0x0329, 0x0329, 0x032e, 0x033d, 0x0343, 0x034d, 0x0353, 0x0359, + 0x035e, 0x0366, 0x036b, 0x0370, 0x0377, 0x037e, 0x0389, 0x0394, + 0x039c, 0x03af, 0x03be, 0x03d0, 0x03d6, 0x03e5, 0x03f8, 0x03fe, + 0x0408, 0x040d, 0x0414, 0x041a, 0x042a, 0x0434, 0x0441, 0x0448, + // Entry 80 - BF + 0x044f, 0x0456, 0x045f, 0x0465, 0x0471, 0x0476, 0x0482, 0x048a, + 0x049d, 0x04ab, 0x04b9, 0x04c1, 0x04c6, 0x04cc, 0x04d7, 0x04dc, + 0x04e2, 0x04ea, 0x04f0, 0x04f7, 0x04ff, 0x0506, 0x050c, 0x050f, + 0x0514, 0x051b, 0x0530, 0x0533, 0x0550, 0x055d, 0x0563, 0x056c, + 0x0586, 0x0588, 0x0591, 0x05a7, 0x05a7, 0x05ad, 0x05bd, 0x05c2, + 0x05d3, +} // Size: 362 bytes + +var ukScriptStr string = "" + // Size: 2925 bytes + "афакакавказька албанÑькаахомарабицÑÐрмівірменÑькаÐвеÑтійÑькийБалійÑькийБ" + + "амумбаÑÑаБатакбенгальÑькаÑимволи БліÑÑабопомофоБрахмішрифт БрайлÑБугійÑ" + + "ькийБухідЧакмауніфіковані Ñимволи канадÑьких тубільцівКаріанÑькийХамітÑ" + + "ькийЧерокіКиртКоптÑькийКіпрÑькийкирилицÑДавньоцерковноÑловʼÑнÑькийдеван" + + "агаріДезеретЄгипетÑький демотичнийЄгипетÑький ієратичнийЄгипетÑький ієр" + + "огліфічнийефіопÑькаКхутÑурігрузинÑькаГлаголичнийГотичнийгрецькагуджарат" + + "ігурмухіхангилькитайÑькаХанунукитайÑька ÑпрощенакитайÑька традиційнаівр" + + "итхіраганаПахау хмонгКатакана чи хіраганаДавньоугорÑькийХарапÑькийДавнь" + + "оіталійÑькийЯванÑькийÑпонÑÑŒÐºÐ°ÐšÐ°Ñ Ð›Ñ–ÐºÐ°Ñ‚Ð°ÐºÐ°Ð½Ð°ÐšÑ…Ð°Ñ€Ð¾ÑˆÑ‚Ñ…Ñ–ÐºÑ…Ð¼ÐµÑ€Ñькаканнадакор" + + "ейÑькаКаїтіЛанналаоÑькаЛатинÑький фрактурнийЛатинÑький гельÑькийлатиниц" + + "ÑЛепчаЛімбуЛінійний ÐЛінійний Вабетка ФрейзераломаЛікійÑькийЛідійÑькийМ" + + "андейÑькийМаніхейÑÑŒÐºÐ¸Ð¹ÐœÐ°Ð¹Ñ Ñ–Ñ”Ñ€Ð¾Ð³Ð»Ñ–Ñ„Ñ–Ñ‡Ð½Ð¸Ð¹ÐœÐµÑ€Ð¾Ñ—Ñ‚ÑькиймалаÑламÑькамонгольÑ" + + "ькаМунМейтей майєкмʼÑнмÑькаÐкоОгамічнийСантальÑькийОрхонÑькийоріÑОÑманÑ" + + "ькийДавньопермÑькийПхагÑ-паПехлеві напиÑівПехлеві релігійнийПехлеві літ" + + "ературнийФінікійÑькийпиÑемніÑÑ‚ÑŒ ПоллардаПарфÑнÑькийРеджангРонго-ронгоРу" + + "нічнийСамаритÑнÑькийСаратіСаураштраЗнаковийШоуÑингальÑькаСунданÑькийСіл" + + "оті нагріСирійÑькийДавньоÑирійÑький еÑтрангелоДавньоÑирійÑький західний" + + "ДавньоÑирійÑький ÑхіднийТагбанваТай-ліÐовий тайÑький луетамільÑькатангу" + + "тТай-вʼєттелугуТенгварТифінагТагальÑькийтаанатайÑькатибетÑькаУгаритÑьки" + + "йВаївидиме мовленнÑДавньоперÑькийШумеро-аккадÑький клінопиÑЙїуÑпадкован" + + "аматематичнаÑимвольнабезпиÑемназвичайнаневідома ÑиÑтема пиÑьма" + +var ukScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x002f, 0x0037, 0x0045, 0x004d, 0x0061, 0x0079, + 0x008d, 0x0097, 0x00a1, 0x00ab, 0x00c1, 0x00dc, 0x00ec, 0x00f8, + 0x010f, 0x0123, 0x012d, 0x0137, 0x0184, 0x019a, 0x01ae, 0x01ba, + 0x01c2, 0x01d4, 0x01e6, 0x01f6, 0x022a, 0x023e, 0x024c, 0x024c, + 0x0277, 0x02a2, 0x02d3, 0x02d3, 0x02e5, 0x02f5, 0x0309, 0x031f, + 0x032f, 0x032f, 0x033d, 0x034f, 0x035d, 0x036b, 0x037d, 0x0389, + 0x03ac, 0x03d3, 0x03d3, 0x03dd, 0x03ed, 0x03ed, 0x0402, 0x0428, + 0x0446, 0x045a, 0x047c, 0x048e, 0x049e, 0x049e, 0x04a9, 0x04b9, + // Entry 40 - 7F + 0x04cb, 0x04dd, 0x04dd, 0x04eb, 0x04fd, 0x04fd, 0x0507, 0x0511, + 0x051f, 0x0548, 0x056f, 0x057f, 0x0589, 0x0593, 0x05a6, 0x05b9, + 0x05d6, 0x05de, 0x05f2, 0x0606, 0x0606, 0x061c, 0x0634, 0x0657, + 0x0657, 0x0657, 0x066d, 0x0685, 0x0685, 0x069b, 0x06a1, 0x06a1, + 0x06b8, 0x06b8, 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06d0, 0x06d0, + 0x06e2, 0x06fa, 0x070e, 0x0716, 0x072a, 0x072a, 0x072a, 0x0748, + 0x0757, 0x0774, 0x0797, 0x07be, 0x07d6, 0x07fb, 0x0811, 0x081f, + 0x0834, 0x0844, 0x0860, 0x086c, 0x086c, 0x087e, 0x088e, 0x0894, + // Entry 80 - BF + 0x0894, 0x0894, 0x0894, 0x08aa, 0x08aa, 0x08c0, 0x08d7, 0x08eb, + 0x0920, 0x0951, 0x0980, 0x0990, 0x0990, 0x099b, 0x09bd, 0x09d1, + 0x09dd, 0x09ec, 0x09f8, 0x0a06, 0x0a14, 0x0a2a, 0x0a34, 0x0a42, + 0x0a54, 0x0a54, 0x0a6a, 0x0a70, 0x0a8d, 0x0a8d, 0x0a8d, 0x0aa9, + 0x0adb, 0x0adf, 0x0af5, 0x0b0b, 0x0b0b, 0x0b1d, 0x0b31, 0x0b41, + 0x0b6d, +} // Size: 362 bytes + +var urScriptStr string = "" + // Size: 492 bytes + "عربیآرمینیائیبنگالیبوپوموÙوبریلسیریلکدیوناگریایتھوپیائیجارجیائییونانیگجر" + + "اتیگرمکھیÛنگولÛانآسان Ûانروایتی ÛانعبرانیÛیراگیناجاپانیکٹاکاناخمیرکنڑکو" + + "ریائیلاؤلاطینیملیالممنگولیائیمیانماراڑیÛسنÛالاتملتیلگوتھاناتھائیتبتیعلا" + + "ماتغیر تحریر شدÛعامنامعلوم رسم الخط" + +var urScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0026, 0x0026, 0x0036, 0x0036, + 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, 0x003e, + 0x003e, 0x003e, 0x003e, 0x004a, 0x004a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x006e, 0x006e, 0x007e, 0x007e, + 0x007e, 0x007e, 0x008a, 0x0096, 0x00a2, 0x00ac, 0x00b2, 0x00b2, + 0x00c1, 0x00d4, 0x00d4, 0x00e0, 0x00f0, 0x00f0, 0x00f0, 0x00f0, + 0x00f0, 0x00f0, 0x00f0, 0x00f0, 0x00fc, 0x00fc, 0x00fc, 0x010a, + // Entry 40 - 7F + 0x010a, 0x0112, 0x0112, 0x0118, 0x0126, 0x0126, 0x0126, 0x0126, + 0x012c, 0x012c, 0x012c, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, + 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, + 0x0138, 0x0138, 0x0138, 0x0144, 0x0144, 0x0156, 0x0156, 0x0156, + 0x0156, 0x0156, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, + 0x0164, 0x0164, 0x0164, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, 0x016c, + // Entry 80 - BF + 0x016c, 0x016c, 0x016c, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, + 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x017e, + 0x017e, 0x017e, 0x0188, 0x0188, 0x0188, 0x0188, 0x0192, 0x019c, + 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, + 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01a4, 0x01b0, 0x01c8, 0x01ce, + 0x01ec, +} // Size: 362 bytes + +var uzScriptStr string = "" + // Size: 273 bytes + "arabarmanbengalbopomofoBraylkirilldevanagarhabashgruzingrekgujarotgurmuk" + + "xihangulxitoysoddalashgan xitoyan’anaviy xitoyibroniyhiraganayaponkataka" + + "naxmerkannadakoreyslaoslotinmalayalammo‘g‘ulmyanmaoriyasingaltamiltelugu" + + "taanataytibetbelgilaryozuvsizumumiynoma’lum yozuv" + +var uzScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0004, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x000f, 0x000f, 0x0017, 0x0017, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x0022, 0x0022, 0x002b, 0x002b, 0x002b, + 0x002b, 0x002b, 0x002b, 0x002b, 0x0031, 0x0031, 0x0037, 0x0037, + 0x0037, 0x0037, 0x003b, 0x0042, 0x004a, 0x0050, 0x0055, 0x0055, + 0x0067, 0x0078, 0x0078, 0x007f, 0x0087, 0x0087, 0x0087, 0x0087, + 0x0087, 0x0087, 0x0087, 0x0087, 0x008c, 0x008c, 0x008c, 0x0094, + // Entry 40 - 7F + 0x0094, 0x0098, 0x0098, 0x009f, 0x00a5, 0x00a5, 0x00a5, 0x00a5, + 0x00a9, 0x00a9, 0x00a9, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00b7, 0x00b7, 0x00c2, 0x00c2, 0x00c2, + 0x00c2, 0x00c2, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, + 0x00c8, 0x00c8, 0x00c8, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, 0x00cd, + // Entry 80 - BF + 0x00cd, 0x00cd, 0x00cd, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, + 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d8, + 0x00d8, 0x00d8, 0x00de, 0x00de, 0x00de, 0x00de, 0x00e3, 0x00e6, + 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, + 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00eb, 0x00f3, 0x00fb, 0x0101, + 0x0111, +} // Size: 362 bytes + +var viScriptStr string = "" + // Size: 2484 bytes + "Chữ AfakaChữ Ả RậpChữ Imperial AramaicChữ ArmeniaChữ AvestanChữ BaliChữ " + + "BamumChữ Bassa VahChữ BatakChữ BengaliChữ BlissymbolsChữ BopomofoChữ Bra" + + "hmiChữ nổi BrailleChữ BuginChữ BuhidChữ ChakmaÂm tiết Thổ dân Canada Hợp" + + " nhấtChữ CariaChữ ChămChữ CherokeeChữ CirthChữ CopticChứ SípChữ KirinChữ" + + " Kirin SlavÆ¡ Nhà thá» cổChữ DevanagariChữ DeseretChữ tốc ký DuployanChữ A" + + "i Cập bình dânChữ Ai Cập thày tuChữ tượng hình Ai CậpChữ EthiopiaChữ Khu" + + "tsuri GeorgiaChữ GruziaChữ GlagoliticChữ Gô-tíchChữ GranthaChữ Hy LạpChữ" + + " GujaratiChữ GurmukhiChữ HangulChữ HánChữ HanunooChữ Hán giản thểChữ Hán" + + " phồn thểChữ Do TháiChữ HiraganaChữ tượng hình AnatoliaChữ Pahawh HmongB" + + "ảng ký hiệu âm tiết Tiếng NhậtChữ Hungary cổChữ IndusChữ Italic cổChữ " + + "JavaChữ Nhật BảnChữ JurchenChữ Kayah LiChữ KatakanaChữ KharoshthiChữ KhÆ¡" + + "-meChữ KhojkiChữ KannadaChữ Hàn QuốcChữ KpelleChữ KaithiChữ LannaChữ Lào" + + "Chữ La-tinh FrakturChữ La-tinh Xcốt-lenChữ La tinhChữ LepchaChữ LimbuChữ" + + " Linear AChữ Linear BChữ FraserChữ LomaChữ LyciaChữ LydiaChữ MandaeanChữ" + + " ManichaeanChữ tượng hình MayaChữ MendeChữ Meroitic Nét thảoChữ Meroitic" + + "Chữ MalayalamChữ Mông CổChữ nổi MoonChữ MroChữ Meitei MayekMyanmaChữ Bắc" + + " Ả Rập cổChữ NabataeanChữ Naxi GebaChữ N’KoChữ NüshuChữ OghamChữ Ol Chik" + + "iChữ OrkhonChữ OriyaChữ OsmanyaChữ PalmyreneChữ Permic cổChữ Phags-paChữ" + + " Pahlavi Văn biaChữ Pahlavi Thánh caChữ Pahlavi SáchChữ PhoeniciaNgữ âm " + + "PollardChữ Parthia Văn biaChữ RejangChữ RongorongoChữ RunicChữ Samaritan" + + "Chữ SaratiChữ Nam Ả Rập cổChữ SaurashtraChữ viết Ký hiệuChữ ShavianChữ S" + + "haradaChữ KhudawadiChữ SinhalaChữ Sora SompengChữ Xu-đăngChữ Syloti Nagr" + + "iChữ SyriaChữ Estrangelo SyriacChữ Tây SyriaChữ Äông SyriaChữ TagbanwaCh" + + "ữ TakriChữ Thái NaChữ Thái Lặc má»›iChữ TamilChữ TangutChữ Thái ViệtChữ " + + "TeluguChữ TengwarChữ TifinaghChữ TagalogChữ ThaanaChữ TháiChữ Tây TạngCh" + + "ữ TirhutaChữ UgaritChữ VaiTiếng nói Nhìn thấy đượcChữ Varang KshitiChữ" + + " WoleaiChữ Ba TÆ° cổChữ hình nêm Sumero-AkkadianChữ DiChữ Kế thừaKý hiệu " + + "Toán há»cKý hiệuChÆ°a có chữ viếtChungChữ viết không xác định" + +var viScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000b, 0x000b, 0x000b, 0x001a, 0x0030, 0x003d, 0x004a, + 0x0054, 0x005f, 0x006e, 0x0079, 0x0086, 0x0097, 0x00a5, 0x00b1, + 0x00c4, 0x00cf, 0x00da, 0x00e6, 0x010f, 0x011a, 0x0125, 0x0133, + 0x013e, 0x014a, 0x0154, 0x015f, 0x0181, 0x0191, 0x019e, 0x01b6, + 0x01cf, 0x01e6, 0x0203, 0x0203, 0x0211, 0x0227, 0x0233, 0x0243, + 0x0252, 0x025f, 0x026d, 0x027b, 0x0289, 0x0295, 0x029f, 0x02ac, + 0x02c3, 0x02da, 0x02da, 0x02e8, 0x02f6, 0x0313, 0x0325, 0x0350, + 0x0362, 0x036d, 0x037e, 0x0388, 0x039a, 0x03a7, 0x03b5, 0x03c3, + // Entry 40 - 7F + 0x03d3, 0x03e0, 0x03ec, 0x03f9, 0x040a, 0x0416, 0x0422, 0x042d, + 0x0437, 0x044c, 0x0464, 0x0471, 0x047d, 0x0488, 0x0496, 0x04a4, + 0x04b0, 0x04ba, 0x04c5, 0x04d0, 0x04d0, 0x04de, 0x04ee, 0x0507, + 0x0512, 0x052c, 0x053a, 0x0549, 0x0549, 0x0559, 0x0569, 0x0572, + 0x0584, 0x0584, 0x058a, 0x05a4, 0x05b3, 0x05c2, 0x05ce, 0x05da, + 0x05e5, 0x05f3, 0x05ff, 0x060a, 0x0617, 0x0626, 0x0626, 0x0637, + 0x0645, 0x065b, 0x0672, 0x0685, 0x0694, 0x06a5, 0x06bb, 0x06c7, + 0x06d7, 0x06e2, 0x06f1, 0x06fd, 0x0715, 0x0725, 0x073c, 0x0749, + // Entry 80 - BF + 0x0756, 0x0756, 0x0765, 0x0772, 0x0784, 0x0793, 0x07a5, 0x07b0, + 0x07c7, 0x07d7, 0x07e9, 0x07f7, 0x0802, 0x0810, 0x0827, 0x0832, + 0x083e, 0x0850, 0x085c, 0x0869, 0x0877, 0x0884, 0x0890, 0x089b, + 0x08ac, 0x08b9, 0x08c5, 0x08ce, 0x08f0, 0x0903, 0x090f, 0x0920, + 0x0940, 0x0948, 0x0959, 0x096f, 0x096f, 0x0979, 0x098f, 0x0994, + 0x09b4, +} // Size: 362 bytes + +var zhScriptStr string = "" + // Size: 2184 bytes + "阿法å¡æ–‡é˜¿æ‹‰ä¼¯æ–‡çš‡å®¤äºšæ‹‰å§†æ–‡äºšç¾Žå°¼äºšæ–‡é˜¿ç»´æ–¯é™€æ–‡å·´åŽ˜æ–‡å·´å§†ç©†æ–‡å·´è¨æ–‡å·´å¡”克文孟加拉文布列斯符å·æ±‰è¯­æ‹¼éŸ³å©†ç½—米文字布莱å¶ç›²æ–‡å¸ƒå‰æ–‡å¸ƒå¸Œå¾·æ–‡æŸ¥å…‹é©¬æ–‡" + + "加拿大土著统一音节å¡é‡Œäºšæ–‡å æ–‡åˆ‡ç½—基文色斯文克普特文塞浦路斯文西里尔文西里尔文字(å¤æ•™ä¼šæ–¯æ‹‰å¤«æ–‡çš„å˜ä½“)天城文德塞莱特文æœæ™®æ´›ä¼Šé€Ÿè®°åŽæœŸåŸƒåŠ" + + "æ–‡å¤åŸƒåŠåƒ§ä¾£ä¹¦å†™ä½“å¤åŸƒåŠè±¡å½¢æ–‡åŸƒå¡žä¿„比亚文格é²å‰äºšæ–‡ï¼ˆæ•™å ‚体)格é²å‰äºšæ–‡æ ¼æ‹‰å“¥é‡Œæ–‡å“¥ç‰¹æ–‡æ ¼å…°å¡”文希腊文å¤å‰æ‹‰ç‰¹æ–‡æžœé²ç©†å¥‡æ–‡éŸ©æ–‡å­—汉字汉奴罗文" + + "简体中文ç¹ä½“中文希伯æ¥æ–‡å¹³å‡å安那托利亚象形文字æ¨æ¾å½•è‹—文片å‡å或平å‡åå¤åŒˆç‰™åˆ©æ–‡å¤å¸Œè…Šå“ˆæ‹‰æ½˜å¤æ„大利文爪哇文日文女真文克耶æŽæ–‡å­—片å‡åå¡ç½—" + + "é¡»æ文高棉文克å‰å¥‡æ–‡å­—å¡çº³è¾¾æ–‡éŸ©æ–‡å…‹ä½©åˆ—文凯æ文兰拿文è€æŒæ–‡æ‹‰ä¸æ–‡ï¼ˆå“¥ç‰¹å¼å­—体å˜ä½“)拉ä¸æ–‡ï¼ˆç›–尔文å˜ä½“)拉ä¸æ–‡é›·å¸ƒæŸ¥æ–‡æž—布文线形文字(A)线" + + "形文字(B)傈僳文洛马文利西亚文å•åº•äºšæ–‡é˜¿æ‹‰ç±³æ–‡æ‘©å°¼æ•™æ–‡çŽ›é›…圣符文门迪文麦罗埃è‰ä¹¦éº¦è‹¥æ克文马拉雅拉姆文蒙å¤æ–‡éŸ©æ–‡è¯­ç³»è°¬æ–‡æ›¼å°¼æ™®å°”文缅甸文å¤" + + "北方阿拉伯文纳巴泰文纳西格巴文西éžä¹¦é¢æ–‡å­—(N’Ko)女书欧甘文桑塔利文鄂尔浑文奥里亚文奥斯曼亚文帕尔迈拉文å¤å½¼å°”姆文八æ€å·´æ–‡å·´åˆ—维文碑铭体" + + "巴列维文(圣诗体)巴列维文(书体)腓尼基文波拉德音标文字帕æ亚文碑铭体拉让文朗格朗格文å¤ä»£åŒ—欧文撒马利亚文沙拉堤文å¤å—阿拉伯文索拉什特拉文书" + + "写符å·è§ä¼¯çº³å¼æ–‡å¤æ‹‰è¾¾æ–‡ä¿¡å¾·æ–‡åƒ§ä¼½ç½—文索朗桑朋文巽他文锡尔赫特文å™åˆ©äºšæ–‡ç¦éŸ³ä½“å™åˆ©äºšæ–‡è¥¿å™åˆ©äºšæ–‡ä¸œå™åˆ©äºšæ–‡å¡”æ ¼ç­ç“¦æ–‡æ³°å…‹é‡Œæ–‡æ³°ä¹æ–‡æ–°å‚£æ–‡æ³°ç±³" + + "尔文å”å¤ç‰¹æ–‡è¶Šå—傣文泰å¢å›ºæ–‡è…¾æ ¼ç“¦æ–‡å­—æéžçº³æ–‡å¡”加路文塔安那文泰文è—文迈蒂利文乌加里特文瓦ä¾æ–‡å¯è§è¯­è¨€ç“¦éƒŽå¥‡è’‚文字沃莱艾文å¤æ³¢æ–¯æ–‡è‹ç¾Žå°”-阿" + + "å¡å¾·æ¥”形文字å½æ–‡é—传学术语数学符å·ç¬¦å·éžä¹¦é¢æ–‡å­—通用未知文字" + +var zhScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x000c, 0x000c, 0x0018, 0x002a, 0x0039, 0x0048, + 0x0051, 0x005d, 0x0066, 0x0072, 0x007e, 0x008d, 0x0099, 0x00a8, + 0x00b7, 0x00c0, 0x00cc, 0x00d8, 0x00f3, 0x00ff, 0x0105, 0x0111, + 0x011a, 0x0126, 0x0135, 0x0141, 0x0174, 0x017d, 0x018c, 0x019e, + 0x01ad, 0x01c5, 0x01d7, 0x01d7, 0x01e9, 0x0207, 0x0216, 0x0225, + 0x022e, 0x023a, 0x0243, 0x0252, 0x0261, 0x026a, 0x0270, 0x027c, + 0x0288, 0x0294, 0x0294, 0x02a0, 0x02a9, 0x02c4, 0x02d3, 0x02e8, + 0x02f7, 0x0309, 0x0318, 0x0321, 0x0327, 0x0330, 0x033f, 0x0348, + // Entry 40 - 7F + 0x0357, 0x0360, 0x036f, 0x037b, 0x0381, 0x038d, 0x0396, 0x039f, + 0x03a8, 0x03cc, 0x03ea, 0x03f3, 0x03ff, 0x0408, 0x041b, 0x042e, + 0x0437, 0x0440, 0x044c, 0x0458, 0x0458, 0x0464, 0x0470, 0x047f, + 0x0488, 0x0497, 0x04a6, 0x04b8, 0x04b8, 0x04c1, 0x04cd, 0x04d3, + 0x04e2, 0x04e2, 0x04eb, 0x0500, 0x050c, 0x051b, 0x0539, 0x053f, + 0x0548, 0x0554, 0x0560, 0x056c, 0x057b, 0x058a, 0x058a, 0x0599, + 0x05a5, 0x05ba, 0x05d5, 0x05ed, 0x05f9, 0x060e, 0x0623, 0x062c, + 0x063b, 0x064a, 0x0659, 0x0665, 0x0677, 0x0689, 0x0695, 0x06a4, + // Entry 80 - BF + 0x06b0, 0x06b0, 0x06b9, 0x06c5, 0x06d4, 0x06dd, 0x06ec, 0x06f8, + 0x070d, 0x071c, 0x072b, 0x073a, 0x0746, 0x074f, 0x0758, 0x0764, + 0x0770, 0x077c, 0x0788, 0x0797, 0x07a3, 0x07af, 0x07bb, 0x07c1, + 0x07c7, 0x07d3, 0x07e2, 0x07eb, 0x07f7, 0x0809, 0x0815, 0x0821, + 0x0840, 0x0846, 0x0855, 0x0861, 0x0861, 0x0867, 0x0876, 0x087c, + 0x0888, +} // Size: 362 bytes + +var zhHantScriptStr string = "" + // Size: 2409 bytes + "阿法å¡æ–‡å­—高加索阿爾巴尼亞文阿拉伯文皇室亞美尼亞文亞美尼亞文阿維斯陀文峇里文巴姆穆文巴薩文巴塔克文孟加拉文布列斯文注音符號婆羅米文盲人用點字布å‰" + + "斯文布希德文查克馬文加拿大原ä½æ°‘通用字符å¡é‡Œäºžæ–‡å æ–‡æŸ´ç¾…基文色斯文科普特文塞浦路斯文斯拉夫文西里爾文(å¤æ•™æœƒæ–¯æ‹‰å¤«æ–‡è®Šé«”)天城文德瑟雷特文æœ" + + "普洛伊速記å¤åŸƒåŠä¸–ä¿—é«”å¤åŸƒåŠåƒ§ä¾¶é«”å¤åŸƒåŠè±¡å½¢æ–‡å­—愛爾巴桑文衣索比亞文喬治亞語系(阿索他路里和努斯克胡里文)喬治亞文格拉哥里文歌德文格蘭他文字" + + "希臘文å¤å‰æ‹‰ç‰¹æ–‡å¤é­¯ç©†å¥‡æ–‡éŸ“文字漢語哈努諾文簡體中文ç¹é«”中文希伯來文平å‡å安那托利亞象形文字楊æ¾éŒ„苗文片å‡å或平å‡åå¤åŒˆç‰™åˆ©æ–‡å°åº¦æ²³æµåŸŸï¼ˆå“ˆ" + + "拉帕文)å¤æ„大利文爪哇文日文女真文字克耶æŽæ–‡ç‰‡å‡åå¡ç¾…é ˆæ文高棉文克å‰å¥‡æ–‡å­—åŽé‚£é”文韓文克培列文凱ææ–‡è—拿文寮國文拉ä¸æ–‡ï¼ˆå°–角體活字變體)拉" + + "ä¸æ–‡ï¼ˆè“‹çˆ¾èªžè®Šé«”)拉ä¸æ–‡é›·å¸ƒæŸ¥æ–‡æž—佈文線性文字(A)線性文字(B)栗僳文洛馬文呂西亞語里底亞語曼底安文摩尼教文瑪雅象形文字門德文麥羅埃文(曲" + + "線字體)麥羅埃文馬來亞拉姆文蒙å¤æ–‡è’™æ°é»žå­—謬文曼尼普爾文緬甸文å¤åŒ—阿拉伯文ç´å·´æ³°æ–‡å­—ç´è¥¿æ ¼å·´æ–‡è¥¿éžæ›¸é¢èªžè¨€ (N’Ko)女書文字æ­ç”˜æ–‡æ¡‘塔利" + + "文鄂爾渾文æ­åˆ©äºžæ–‡æ­æ–¯æ›¼äºžæ–‡å¸•ç±³ç‘žæ‹‰æ–‡å­—å¤å½¼çˆ¾å§†è«¸æ–‡å…«æ€å·´æ–‡å·´åˆ—維文(碑銘體)巴列維文(è–詩體)巴列維文(書體)腓尼基文æŸæ ¼ç†æ‹¼éŸ³ç¬¦å¸•æ亞文" + + "(碑銘體)拉讓文朗格朗格象形文å¤åŒ—æ­æ–‡å­—撒馬利亞文沙拉堤文å¤å—阿拉伯文索拉什特拉文手語書寫符號簫æŸç´å­—符å¤æ‹‰é”文悉曇文字信德文錫蘭文索朗桑朋" + + "文字巽他文希洛弟ç´æ ¼é‡Œæ–‡æ•åˆ©äºžæ–‡æ•˜åˆ©äºžæ–‡ï¼ˆç¦éŸ³é«”文字變體)敘利亞文(西方文字變體)敘利亞文(æ±æ–¹æ–‡å­—變體)å—島文塔å¡é‡Œæ–‡å­—傣哪文西雙版ç´æ–°å‚£" + + "æ–‡å¦ç±³çˆ¾æ–‡è¥¿å¤æ–‡å‚£æ“”文泰盧固文談格瓦文æéžç´æ–‡å¡”加拉文塔安那文泰文西è—æ–‡é‚蒂利文çƒåŠ åˆ—文瓦ä¾æ–‡è¦–覺語音文字瓦郎奇蒂文字沃雷艾文å¤æ³¢æ–¯æ–‡è˜‡ç±³é­¯" + + "亞甲文楔形文字彞文繼承文字(Unicode)數學符號符號éžæ›¸å¯«èªžè¨€ä¸€èˆ¬æ–‡å­—未知文字" + +var zhHantScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x002a, 0x002a, 0x0036, 0x004b, 0x005a, 0x0069, + 0x0072, 0x007e, 0x0087, 0x0093, 0x009f, 0x00ab, 0x00b7, 0x00c3, + 0x00d2, 0x00de, 0x00ea, 0x00f6, 0x0114, 0x0120, 0x0126, 0x0132, + 0x013b, 0x0147, 0x0156, 0x0162, 0x018f, 0x0198, 0x01a7, 0x01b9, + 0x01cb, 0x01dd, 0x01f2, 0x0201, 0x0210, 0x0249, 0x0255, 0x0264, + 0x026d, 0x027c, 0x0285, 0x0294, 0x02a3, 0x02ac, 0x02b2, 0x02be, + 0x02ca, 0x02d6, 0x02d6, 0x02e2, 0x02eb, 0x0306, 0x0315, 0x032a, + 0x0339, 0x035a, 0x0369, 0x0372, 0x0378, 0x0384, 0x0390, 0x0399, + // Entry 40 - 7F + 0x03a8, 0x03b1, 0x03c0, 0x03cc, 0x03d2, 0x03de, 0x03e7, 0x03f0, + 0x03f9, 0x041d, 0x043b, 0x0444, 0x0450, 0x0459, 0x046c, 0x047f, + 0x0488, 0x0491, 0x049d, 0x04a9, 0x04a9, 0x04b5, 0x04c1, 0x04d3, + 0x04dc, 0x04fa, 0x0506, 0x0518, 0x0518, 0x0521, 0x052d, 0x0533, + 0x0542, 0x0542, 0x054b, 0x055d, 0x056c, 0x057b, 0x0596, 0x05a2, + 0x05ab, 0x05b7, 0x05c3, 0x05cf, 0x05de, 0x05f0, 0x05f0, 0x0602, + 0x060e, 0x0629, 0x0644, 0x065c, 0x0668, 0x067a, 0x0695, 0x069e, + 0x06b3, 0x06c2, 0x06d1, 0x06dd, 0x06ef, 0x0701, 0x0713, 0x0722, + // Entry 80 - BF + 0x072e, 0x073a, 0x0743, 0x074c, 0x075e, 0x0767, 0x077c, 0x0788, + 0x07af, 0x07d3, 0x07f7, 0x0800, 0x080f, 0x0818, 0x082d, 0x0839, + 0x0842, 0x084b, 0x0857, 0x0863, 0x086f, 0x087b, 0x0887, 0x088d, + 0x0896, 0x08a2, 0x08ae, 0x08b7, 0x08c9, 0x08db, 0x08e7, 0x08f3, + 0x0911, 0x0917, 0x0930, 0x093c, 0x093c, 0x0942, 0x0951, 0x095d, + 0x0969, +} // Size: 362 bytes + +var zuScriptStr string = "" + // Size: 371 bytes + "i-Arabi-Armeniani-Bengalii-Bopomofoi-Braillei-Cyrillici-Devanagarii-Ethi" + + "opici-Georgiani-Greeki-Gujaratii-Gurmukhii-Hanguli-Hani-Simplified Hani-" + + "Traditional Hani-Hebrewi-Hiraganai-Japanesei-Katakanai-Khmeri-Kannadai-K" + + "oreani-Laoi-Latini-Malayami-Mongoliani-Myanmari-Oriyai-Sinhalai-Tamili-T" + + "elegui-Thaanai-Thaii-Tibetanamasimbuliokungabhaliweejwayelekileiskripthi" + + " esingaziwa" + +var zuScriptIdx = []uint16{ // 169 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, 0x0006, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0019, 0x0019, 0x0023, 0x0023, + 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x0036, 0x0036, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x004c, 0x004c, 0x0056, 0x0056, + 0x0056, 0x0056, 0x005d, 0x0067, 0x0071, 0x0079, 0x007e, 0x007e, + 0x008e, 0x009f, 0x009f, 0x00a7, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00bb, 0x00bb, 0x00bb, 0x00c5, + // Entry 40 - 7F + 0x00c5, 0x00cc, 0x00cc, 0x00d5, 0x00dd, 0x00dd, 0x00dd, 0x00dd, + 0x00e2, 0x00e2, 0x00e2, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, + 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, + 0x00e9, 0x00e9, 0x00e9, 0x00f2, 0x00f2, 0x00fd, 0x00fd, 0x00fd, + 0x00fd, 0x00fd, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, + 0x0106, 0x0106, 0x0106, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, + 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, + 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, 0x010d, + // Entry 80 - BF + 0x010d, 0x010d, 0x010d, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, + 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x011d, + 0x011d, 0x011d, 0x0125, 0x0125, 0x0125, 0x0125, 0x012d, 0x0133, + 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, + 0x013c, 0x013c, 0x013c, 0x013c, 0x013c, 0x0146, 0x0153, 0x015f, + 0x0173, +} // Size: 362 bytes + +// Total size for script: 233224 bytes (233 KB) + +// Number of keys: 289 +var ( + regionIndex = tagIndex{ + "ACADAEAFAGAIALAMAOAQARASATAUAWAXAZBABBBDBEBFBGBHBIBJBLBMBNBOBQBRBSBTBVBW" + + "BYBZCACCCDCFCGCHCICKCLCMCNCOCPCRCUCVCWCXCYCZDEDGDJDKDMDODZEAECEEEGEH" + + "ERESETEUFIFJFKFMFOFRGAGBGDGEGFGGGHGIGLGMGNGPGQGRGSGTGUGWGYHKHMHNHRHT" + + "HUICIDIEILIMINIOIQIRISITJEJMJOJPKEKGKHKIKMKNKPKRKWKYKZLALBLCLILKLRLS" + + "LTLULVLYMAMCMDMEMFMGMHMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZNANCNENFNGNINL" + + "NONPNRNUNZOMPAPEPFPGPHPKPLPMPNPRPSPTPWPYQAQORERORSRURWSASBSCSDSESGSH" + + "SISJSKSLSMSNSOSRSSSTSVSXSYSZTATCTDTFTGTHTJTKTLTMTNTOTRTTTVTWTZUAUGUM" + + "USUYUZVAVCVEVGVIVNVUWFWSXKYEYTZAZMZWZZ", + "001002003005009011013014015017018019021029030034035039053054057061142143" + + "145150151154155419", + "", + } +) + +var regionHeaders = [220]header{ + { // af + afRegionStr, + afRegionIdx, + }, + { // agq + "ÀndolàYùnaetÉ› Alab É›melɛ̀Àfɨ̀ganìsɨ̀tânÀntigwà à BàbudàÀŋgwilàÀabÉ›nìaÀmÉ›" + + "nyìaÀŋgolàÀdzɛ̀ntinàÀmÉ›lekan SamwàUsɨtɨ̀làÙsɨ̀tɛ̀lÉ›lìaÀlubàÀzɨbɛ̀dzâ" + + "nBosɨnyìa à Hɛ̀zɛ̀gòvinàBàbadòsBaÅ‹gɨ̀làdɛ̂BɛɛdzwùmBùkinà FasòBùugÉ›lì" + + "aBàlaenBùlundìBɛ̀nɨ̂ŋBɛ̀mudàBɨ̀lunèBòlevàBɨ̀làzîiBàhamàsMbutànBòtɨ̀s" + + "wÇŽnàBÉ›làlûsBɛ̀lezɨ̀KanadàDɛ̀mùkàlatì Lèkpubèlè è KuÅ‹gùSÉ›nta Afɨlekan" + + " LèkpobèlèKuÅ‹gùSuezàlânKu Dɨ̀vûaChwɨla Å‹Ì€ KûʔChilèKàmàlûŋChaenàKòlom" + + "bìaKòsɨ̀tà LekàKuuwbàChwɨla Å‹Ì€ Kɛ̀b Vɛ̂ɛSaekpùlùChɛ̂ LèkpubèlèDzaman" + + "èDzìbuwtìDÉ›nɨmàDòmenekàDòmenekà LèkpubèlèÀadzÉ›lìaEkwadòÈsɨ̀tonyìaEd" + + "zìÈletɨ̀làSɨ̀kpɛ̂nÈtyÇ’pìaFɨnlànFidziChwɨlà fɨ FakɨlànMaekòlòneshìaFà" + + "lâŋnsìGàbûnYùnaetÉ› KiÅ‹dɔ̀mGɨ̀lÉ›nadàDzɔɔdzìaGàyanà è FàlâŋnsìGaanàDzi" + + "bɨ̀latàGɨ̀lenlânGambìaGinèGwadalukpɛ̀Èkwɛ̀tolia GinèGɨ̀lêsGwàtɨ̀malà" + + "GwamGinè BìsawùGùyanàHÉ”ndulàsKòwÉ›shìaHÇŽetìHɔŋgàlèÈndòneshìaAelɨ̀lânE" + + "zɨ̀lɛ̂EndìaDɨŋò kɨ dzughùnstòʔ kɨ Endìa kɨ Bɨ̀letì kòÈlâkɨ̀ÈlânAesɨ̀" + + "lânEtalèDzàmÉ›kàDzodànDzàkpânKɨnyàKìdzisɨ̀tânKàmbodìaKèlèbatiKomolòsS" + + "ɛ̀n Kî à NevìKùulîa, EkùwKùulîa, EmàmKùwɛ̂Chwɨlà Å‹Ì€ KaemànKàzasɨ̀tâ" + + "nLàwosLÉ›banèSɛ̀n LushìaLetɨnshɨ̀nSɨ̀le LaÅ‹kàLàebÉ›lìaLɛ̀sotùLètwÇŽnyìa" + + "LuzɨmbùʔLàtɨvaLebìaMòlokòMùnakuMòodovàMàdàgasɨkàChwɨlà fɨ MashàMɨ̀sɨ" + + "Ì€donyìaMalèMÇanmàMùŋgolìaChwɨlà mÌ€ MàlÇanà mɨ̀ Ekùw mòMàtìnekìMùlèt" + + "anyìaMùŋtselàMaatàMùleshwɨ̀sMàdivèMàlawìMÉ›kɨzikùMàlÉ›shìaMùzàmbîNàmib" + + "ìaKàlèdonyìa È fÅ«ghÅ«NaedzàChwɨlà fɨ NufòʔGɨ̀anyɨNikàlagwàNedàlânNoo" + + "wɛ̂ɛNÉ›kpâaNàwulùNiyuZìlân È fÅ«ghÅ«UmànKpanàmaKpÉ›lûKpoleneshìa è Fàlâŋ" + + "nsìKpakpua Ginè È fÅ«ghÅ«FelèkpîKpakìsɨ̀tânKpulànSɛ̀n Kpiyɛ̀ à Mikelɔŋ" + + "Kpitɨ̀kalèKpÇ’to LekoAdzɨmÄ kɨ Å‹gùŋ kɨ PalÉ›sɨtɨnyia à kɨ Gazà kòKputu" + + "wgàKpàlawùKpalàgwɛ̂KatàLèyunyɔ̀ŋLùmanyìaLoshìaLùwandàSawudi AlabiChw" + + "ɨlà fɨ Solomwɨ̀nSÉ›chɛ̀lɛ̀sSùdânSuedɨ̀nSiÅ‹gàkpôoSɛ̀n ÈlenàSɨ̀lòvɨnyì" + + "aSɨ̀lòvɨkɨ̀aSilìa lûŋSàn MàlenùSɛ̀nɛ̀gâaSòmalìaSulènamèSawo Tɔ̀me à " + + "Kpèlènsikpɛ̀EsàvadòSilîaShÇ”azìlânChwɨla n Tɨtê à KaekùsChâTugùTaelàn" + + "Tàdzikìsɨ̀tânTuwkelawùÊs TaemòTekɨmènèsɨ̀tânTùneshìaTuÅ‹gàTeekìTèlene" + + "dà à TòbagùTuwvalùwTaewànTàanzanyìaYùkɛ̀lɛ̂YùgandàUSAYulùgwɛ̂Yùzɨ̀bÉ›" + + "kìsɨ̀tânVatikàn Sɨ̀tɛ̂Sɛ̀n Vinsɨ̀n à Gɨlenadi Ù tÄ“Vɛ̀nɛ̀zǔɛɛlàChwɨlà" + + " mÌ€ Vidzinyìa mÌ€ Bɨ̀letì mòU. S. Chwɨlà fɨ MbuÊ”mbuVìyÉ›nàmVànÇ”atùwWal" + + "es à FùwtuwnàSàmowàYÉ›mɛ̀nMàyotìAfɨlekà ghɨ Emàm ghòZambìaZìmbagbɛ̀", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x0020, 0x0035, 0x004a, 0x0054, 0x005e, + 0x0068, 0x0071, 0x0071, 0x007f, 0x0090, 0x009c, 0x00af, 0x00b6, + 0x00b6, 0x00c5, 0x00e5, 0x00ee, 0x00ff, 0x010a, 0x0118, 0x0123, + 0x012a, 0x0133, 0x013f, 0x013f, 0x0149, 0x0153, 0x015b, 0x015b, + 0x0167, 0x0170, 0x0177, 0x0177, 0x0186, 0x0190, 0x019c, 0x01a3, + 0x01a3, 0x01cb, 0x01e8, 0x01ef, 0x01f9, 0x0205, 0x0217, 0x021d, + 0x0228, 0x022f, 0x0239, 0x0239, 0x024a, 0x0251, 0x026c, 0x026c, + 0x026c, 0x0276, 0x0289, 0x0291, 0x0291, 0x029b, 0x02a4, 0x02ae, + // Entry 40 - 7F + 0x02c5, 0x02d0, 0x02d0, 0x02d7, 0x02e5, 0x02ea, 0x02ea, 0x02f6, + 0x0302, 0x030c, 0x030c, 0x0314, 0x0319, 0x032f, 0x033f, 0x033f, + 0x034b, 0x0352, 0x0366, 0x0373, 0x037e, 0x0396, 0x0396, 0x039c, + 0x03a9, 0x03b5, 0x03bc, 0x03c1, 0x03ce, 0x03e1, 0x03ea, 0x03ea, + 0x03f8, 0x03fc, 0x040a, 0x0412, 0x0412, 0x0412, 0x041c, 0x0427, + 0x042e, 0x0439, 0x0439, 0x0446, 0x0451, 0x045c, 0x045c, 0x0462, + 0x049a, 0x04a4, 0x04aa, 0x04b5, 0x04bb, 0x04bb, 0x04c5, 0x04cc, + 0x04d5, 0x04dc, 0x04eb, 0x04f5, 0x04ff, 0x0507, 0x051a, 0x0529, + // Entry 80 - BF + 0x0538, 0x0540, 0x0555, 0x0563, 0x0569, 0x0571, 0x057f, 0x058c, + 0x059b, 0x05a6, 0x05b0, 0x05bc, 0x05c7, 0x05cf, 0x05d5, 0x05dd, + 0x05e4, 0x05ed, 0x05ed, 0x05ed, 0x05fb, 0x060e, 0x061f, 0x0624, + 0x062c, 0x0637, 0x0637, 0x065e, 0x0669, 0x0676, 0x0681, 0x0687, + 0x0694, 0x069c, 0x06a4, 0x06af, 0x06ba, 0x06c4, 0x06cd, 0x06e5, + 0x06ec, 0x0700, 0x070a, 0x0715, 0x071e, 0x0728, 0x0730, 0x0738, + 0x073c, 0x074e, 0x0753, 0x075b, 0x0762, 0x077e, 0x0796, 0x079f, + 0x07ae, 0x07b5, 0x07d1, 0x07de, 0x07e9, 0x0822, 0x082b, 0x0834, + // Entry C0 - FF + 0x0840, 0x0845, 0x0845, 0x0852, 0x085c, 0x085c, 0x0863, 0x086c, + 0x0878, 0x0890, 0x089f, 0x08a6, 0x08af, 0x08bb, 0x08c9, 0x08d9, + 0x08d9, 0x08ea, 0x08f6, 0x0903, 0x0911, 0x091a, 0x0924, 0x0924, + 0x0944, 0x094d, 0x094d, 0x0953, 0x095f, 0x095f, 0x097a, 0x097e, + 0x097e, 0x0983, 0x098a, 0x099c, 0x09a6, 0x09b0, 0x09c4, 0x09ce, + 0x09d5, 0x09db, 0x09f1, 0x09fa, 0x0a01, 0x0a0d, 0x0a1a, 0x0a23, + 0x0a23, 0x0a26, 0x0a31, 0x0a48, 0x0a5b, 0x0a7f, 0x0a93, 0x0abd, + 0x0ad8, 0x0ae2, 0x0aed, 0x0b00, 0x0b08, 0x0b08, 0x0b11, 0x0b19, + // Entry 100 - 13F + 0x0b32, 0x0b39, 0x0b45, + }, + }, + { // ak + "AndoraUnited Arab EmiratesAfganistanAntigua ne BaabudaAnguilaAlbeniaAame" + + "niaAngolaAgyÉ›ntinaAmÉ›rika SamoaƆstriaƆstreliaArubaAzebaegyanBosnia n" + + "e HÉ›zegovinaBaabadosBangladÉ›hyeBÉ›lgyiumBÉ”kina FasoBÉ”lgeriaBarenBurun" + + "diBÉ›ninBÉ›mudaBrunaeBoliviaBrazilBahamaButanBÉ”tswanaBÉ›larusBelizKanad" + + "aKongo (Zair)Afrika Finimfin ManKongoSwetzalandLa Côte d’IvoireKook " + + "NsupÉ”wKyiliKamÉ›runKyaenaKolombiaKÉ”sta RikaKubaKepvÉ›dfo IslandsSaeprÉ”" + + "sKyÉ›k KurokÉ›seGyaamanGyibutiDÉ›nmakDÉ”menekaDÉ”meneka KurokÉ›seƆlgyeriaI" + + "kuwadÉ”ÆstoniaNisrimÆritreaSpainIthiopiaFinlandFigyiFÉ”lkman AelandMae" + + "kronehyiaFrÉ›nkyemanGabÉ”nAhendiman NkabomGrenadaGyÉ”gyeaFrÉ›nkye Gayana" + + "GaanaGyebraltaGreenmanGambiaGiniGuwadelupGini IkuwetaGreekmanGuwatem" + + "alaGuamGini BisawGayanaHÉ”ndurasKrowehyiaHeitiHangariIndÉ”nehyiaAerela" + + "ndIsraelIndiaBritenfo HÉ”n Man WÉ” India Po No MuIrakIranAeslandItaliG" + + "yamekaGyÉ”danGyapanKÉ›nyaKɛɛgestanKambodiaKiribatiKÉ”mÉ”rÉ”sSaint Kitts n" + + "e NÉ›vesEtifi KoriaAnaafo KoriaKuweteKemanfo IslandsKazakstanLaosLÉ›ba" + + "nÉ”nSaint LuciaLektenstaenSri LankaLaeberiaLÉ›sutuLituweniaLaksembÉ›gLa" + + "tviaLibyaMorokoMÉ”nakoMÉ”ldovaMadagaskaMarshall IslandsMasedoniaMaliMi" + + "yanmaMÉ”ngoliaNorthern Mariana IslandsMatinikMÉ”reteniaMantseratMÉ”ltaM" + + "É”rehyeÉ”sMaldivesMalawiMÉ›ksikoMalehyiaMozambikNamibiaKaledonia Fofor" + + "oNigyÉ›NÉ”folk AelandNaegyeriaNekaraguwaNÉ›dÉ›landNɔɔweNÉ›pÉ”lNaworuNiyuZi" + + "land FoforoOmanPanamaPeruFrÉ›nkye PÉ”lenehyiaPapua Guinea FoforoPhilip" + + "pinesPakistanPolandSaint Pierre ne MiquelonPitcairnPuÉ›to RikoPalesta" + + "en West Bank ne GazaPÉ”tugalPalauParaguayKataReyuniÉ”nRomeniaRÉ”hyeaRwa" + + "ndaSaudi ArabiaSolomon IslandsSeyhyÉ›lSudanSwedenSingapÉ”Saint HelenaS" + + "loviniaSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinameSão Tomé " + + "and PríncipeÆl SalvadÉ”SiriaSwazilandTurks ne Caicos IslandsKyadTogoT" + + "aelandTajikistanTokelauTimÉ” BokaTÉ›kmÉ›nistanTunihyiaTongaTɛɛkiTrinida" + + "d ne TobagoTuvaluTaiwanTanzaniaUkrenUgandaAmÉ›rikaYurugwaeUzbÉ›kistanV" + + "atican ManSaint Vincent ne GrenadinesVenezuelaBritainfo Virgin Islan" + + "dsAmÉ›rika Virgin IslandsViÉ›tnamVanuatuWallis ne FutunaSamoaYÉ›menMayÉ”" + + "teAfrika AnaafoZambiaZembabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x001a, 0x0024, 0x0036, 0x003d, 0x0044, + 0x004b, 0x0051, 0x0051, 0x005b, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0088, 0x009d, 0x00a5, 0x00b1, 0x00ba, 0x00c6, 0x00cf, + 0x00d4, 0x00db, 0x00e1, 0x00e1, 0x00e8, 0x00ee, 0x00f5, 0x00f5, + 0x00fb, 0x0101, 0x0106, 0x0106, 0x010f, 0x0117, 0x011c, 0x0122, + 0x0122, 0x012e, 0x0141, 0x0146, 0x0150, 0x0163, 0x016f, 0x0174, + 0x017c, 0x0182, 0x018a, 0x018a, 0x0195, 0x0199, 0x01aa, 0x01aa, + 0x01aa, 0x01b2, 0x01c1, 0x01c8, 0x01c8, 0x01cf, 0x01d6, 0x01df, + // Entry 40 - 7F + 0x01f2, 0x01fb, 0x01fb, 0x0203, 0x020b, 0x0211, 0x0211, 0x0219, + 0x021e, 0x0226, 0x0226, 0x022d, 0x0232, 0x0241, 0x024d, 0x024d, + 0x0258, 0x025e, 0x026e, 0x0275, 0x027d, 0x028c, 0x028c, 0x0291, + 0x029a, 0x02a2, 0x02a8, 0x02ac, 0x02b5, 0x02c1, 0x02c9, 0x02c9, + 0x02d3, 0x02d7, 0x02e1, 0x02e7, 0x02e7, 0x02e7, 0x02f0, 0x02f9, + 0x02fe, 0x0305, 0x0305, 0x0310, 0x0318, 0x031e, 0x031e, 0x0323, + 0x0347, 0x034b, 0x034f, 0x0356, 0x035b, 0x035b, 0x0362, 0x0369, + 0x036f, 0x0375, 0x0380, 0x0388, 0x0390, 0x039a, 0x03af, 0x03ba, + // Entry 80 - BF + 0x03c6, 0x03cc, 0x03db, 0x03e4, 0x03e8, 0x03f1, 0x03fc, 0x0407, + 0x0410, 0x0418, 0x041f, 0x0428, 0x0432, 0x0438, 0x043d, 0x0443, + 0x044a, 0x0452, 0x0452, 0x0452, 0x045b, 0x046b, 0x0474, 0x0478, + 0x047f, 0x0488, 0x0488, 0x04a0, 0x04a7, 0x04b1, 0x04ba, 0x04c0, + 0x04cb, 0x04d3, 0x04d9, 0x04e1, 0x04e9, 0x04f1, 0x04f8, 0x0508, + 0x050e, 0x051c, 0x0525, 0x052f, 0x0539, 0x0540, 0x0547, 0x054d, + 0x0551, 0x055e, 0x0562, 0x0568, 0x056c, 0x0580, 0x0593, 0x059e, + 0x05a6, 0x05ac, 0x05c4, 0x05cc, 0x05d7, 0x05f2, 0x05fa, 0x05ff, + // Entry C0 - FF + 0x0607, 0x060b, 0x060b, 0x0614, 0x061b, 0x061b, 0x0622, 0x0628, + 0x0634, 0x0643, 0x064b, 0x0650, 0x0656, 0x065e, 0x066a, 0x0672, + 0x0672, 0x067a, 0x0686, 0x0690, 0x0697, 0x069e, 0x06a6, 0x06a6, + 0x06be, 0x06ca, 0x06ca, 0x06cf, 0x06d8, 0x06d8, 0x06ef, 0x06f3, + 0x06f3, 0x06f7, 0x06fe, 0x0708, 0x070f, 0x0719, 0x0726, 0x072e, + 0x0733, 0x073a, 0x074c, 0x0752, 0x0758, 0x0760, 0x0765, 0x076b, + 0x076b, 0x0773, 0x077b, 0x0786, 0x0791, 0x07ac, 0x07b5, 0x07cd, + 0x07e4, 0x07ec, 0x07f3, 0x0803, 0x0808, 0x0808, 0x080e, 0x0815, + // Entry 100 - 13F + 0x0822, 0x0828, 0x0830, + }, + }, + { // am + amRegionStr, + amRegionIdx, + }, + { // ar + arRegionStr, + arRegionIdx, + }, + {}, // ar-EG + { // as + "à¦à¦¨à§à¦Ÿà¦¾à§°à§à¦Ÿà¦¿à¦•à¦¾à¦¬à§à§°à¦¾à¦œà¦¿à¦²à¦¬à¦­à§‡à¦Ÿ দà§à¦¬à§€à¦ªà¦šà§€à¦¨à¦œà¦¾à§°à§à¦®à¦¾à¦¨à¦¿à¦«à§à§°à¦¾à¦¨à§à¦¸à¦¸à¦‚যà§à¦•à§à¦¤ ৰাজà§à¦¯à¦¦à¦•à§à¦·à¦¿à¦£ জৰà§à¦œà¦¿à¦¯" + + "়া আৰৠদকà§à¦·à¦¿à¦£ চেণà§à¦¡à§±à¦¿à¦šà§\u200c দà§à¦¬à§€à¦ªà¦¹à¦¾à§°à§à¦¡ দà§à¦¬à§€à¦ª আৰৠমেকà§\u200cডোনাল" + + "à§à¦¡ দà§à¦¬à§€à¦ªà¦­à¦¾à§°à¦¤à¦¬à§à§°à¦¿à¦Ÿà¦¿à¦¶à§à¦¬ ইণà§à¦¡à¦¿à¦¯à¦¼à¦¾à¦¨ মহাসাগৰৰ অঞà§à¦šà¦²à¦‡à¦Ÿà¦¾à¦²à¦¿à¦œà¦¾à¦ªà¦¾à¦¨à§°à§à¦šà¦¦à¦•à§à¦·à¦¿à¦£ " + + "ফà§à§°à¦¾à¦¨à§à¦¸à§° অঞà§à¦šà¦²à¦¯à§à¦•à§à¦¤à§°à¦¾à¦·à§à¦Ÿà§à§°à¦…জà§à¦žà¦¾à¦¤ বা অবৈধ অঞà§à¦šà¦²", + []uint16{ // 260 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, + 0x0036, 0x0036, 0x0036, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, 0x0052, + 0x0052, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, + // Entry 40 - 7F + 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, + 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, 0x0073, + 0x0088, 0x0088, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x0124, + 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0182, 0x0182, 0x0182, + 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x018e, + 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01fd, 0x01fd, 0x01fd, 0x01fd, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + // Entry 80 - BF + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, + // Entry C0 - FF + 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x020c, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, 0x0215, + 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, + 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, + 0x0250, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, + 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, 0x0274, + // Entry 100 - 13F + 0x0274, 0x0274, 0x0274, 0x02aa, + }, + }, + { // asa + "AndoraFalme dha KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArme" + + "niaAngolaAjentinaThamoa ya MarekaniAuthtriaAuthtraliaArubaAdhabajani" + + "Bothnia na HedhegovinaBabadothiBangladeshiUbelgijiBukinafathoBulgari" + + "aBahareniBurundiBeniniBermudaBruneiBraziliBahamaButaniBotthwanaBelar" + + "uthiBelidheKanadaJamhuri ya Kidemokrathia ya KongoJamhuri ya Afrika " + + "ya KatiKongoUthwithiKodivaaVithiwa vya CookChileKameruniChinaKolombi" + + "aKothtarikaKubaKepuvedeKuprothiJamhuri ya ChekiUjerumaniJibutiDenmak" + + "iDominikaJamhuri ya DominikaAljeriaEkwadoEthtoniaMithriEritreaHithpa" + + "niaUhabeshiUfiniFijiVithiwa vya FalklandMikronethiaUfaranthaGaboniUi" + + "ngeredhaGrenadaJojiaGwiyana ya UfaranthaGhanaJibraltaGrinlandiGambia" + + "GineGwadelupeGinekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurathiK" + + "orathiaHaitiHungariaIndonethiaAyalandiIthraeliIndiaIeneo la Uingered" + + "ha katika Bahari HindiIrakiUajemiAithlandiItaliaJamaikaYordaniJapani" + + "KenyaKirigizithtaniKambodiaKiribatiKomoroThantakitdhi na NevithKorea" + + " KathkaziniKorea KuthiniKuwaitiVithiwa vya KaymanKazakithtaniLaothiL" + + "ebanoniThantaluthiaLishenteniThirilankaLiberiaLethotoLitwaniaLathemb" + + "agiLativiaLibyaMorokoMonakoMoldovaBukiniVithiwa vya MarshalMathedoni" + + "aMaliMyamaMongoliaVithiwa vya Mariana vya KathkaziniMartinikiMoritan" + + "iaMonttherratiMaltaMorithiModivuMalawiMekthikoMalethiaMthumbijiNamib" + + "iaNyukaledoniaNijeriKithiwa cha NorfokNijeriaNikaragwaUholandhiNorwe" + + "NepaliNauruNiueNyudhilandiOmaniPanamaPeruPolinesia ya UfaranthaPapua" + + "FilipinoPakithtaniPolandiThantapieri na MikeloniPitkairniPwetorikoPa" + + "lestinaUrenoPalauParagwaiKatariRiyunioniRomaniaUruthiRwandaThaudiVit" + + "hiwa vya TholomonShelisheliThudaniUthwidiThingapooThantahelenaThlove" + + "niaTholvakiaThiera LeoniThamarinoThenegaliThomaliaThurinamuThao Tome" + + " na PrincipeElsavadoThiriaUthwadhiVithiwa vya Turki na KaikoChadiTog" + + "oTailandiTajikithtaniTokelauTimori ya MasharikiTurukimenithtaniTunit" + + "hiaTongaUturukiTrinidad na TobagoTuvaluTaiwaniTadhaniaUgandaMarekani" + + "UrugwaiUdhibekithtaniVatikaniThantavithenti na GrenadiniVenezuelaVit" + + "hiwa vya Virgin vya UingeredhaVithiwa vya Virgin vya MarekaniVietina" + + "muVanuatuWalith na FutunaThamoaYemeniMayotteAfrika KuthiniDhambiaDhi" + + "mbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0035, 0x003d, 0x0044, + 0x004b, 0x0051, 0x0051, 0x0059, 0x006b, 0x0073, 0x007d, 0x0082, + 0x0082, 0x008c, 0x00a2, 0x00ab, 0x00b6, 0x00be, 0x00c9, 0x00d1, + 0x00d9, 0x00e0, 0x00e6, 0x00e6, 0x00ed, 0x00f3, 0x00f3, 0x00f3, + 0x00fa, 0x0100, 0x0106, 0x0106, 0x010f, 0x0118, 0x011f, 0x0125, + 0x0125, 0x0146, 0x015f, 0x0164, 0x016c, 0x0173, 0x0183, 0x0188, + 0x0190, 0x0195, 0x019d, 0x019d, 0x01a7, 0x01ab, 0x01b3, 0x01b3, + 0x01b3, 0x01bb, 0x01cb, 0x01d4, 0x01d4, 0x01da, 0x01e1, 0x01e9, + // Entry 40 - 7F + 0x01fc, 0x0203, 0x0203, 0x0209, 0x0211, 0x0217, 0x0217, 0x021e, + 0x0227, 0x022f, 0x022f, 0x0234, 0x0238, 0x024c, 0x0257, 0x0257, + 0x0260, 0x0266, 0x0270, 0x0277, 0x027c, 0x0290, 0x0290, 0x0295, + 0x029d, 0x02a6, 0x02ac, 0x02b0, 0x02b9, 0x02c2, 0x02c9, 0x02c9, + 0x02d2, 0x02d6, 0x02df, 0x02e5, 0x02e5, 0x02e5, 0x02ef, 0x02f7, + 0x02fc, 0x0304, 0x0304, 0x030e, 0x0316, 0x031e, 0x031e, 0x0323, + 0x034a, 0x034f, 0x0355, 0x035e, 0x0364, 0x0364, 0x036b, 0x0372, + 0x0378, 0x037d, 0x038b, 0x0393, 0x039b, 0x03a1, 0x03b7, 0x03c7, + // Entry 80 - BF + 0x03d4, 0x03db, 0x03ed, 0x03f9, 0x03ff, 0x0407, 0x0413, 0x041d, + 0x0427, 0x042e, 0x0435, 0x043d, 0x0447, 0x044e, 0x0453, 0x0459, + 0x045f, 0x0466, 0x0466, 0x0466, 0x046c, 0x047f, 0x0489, 0x048d, + 0x0492, 0x049a, 0x049a, 0x04bc, 0x04c5, 0x04ce, 0x04da, 0x04df, + 0x04e6, 0x04ec, 0x04f2, 0x04fa, 0x0502, 0x050b, 0x0512, 0x051e, + 0x0524, 0x0536, 0x053d, 0x0546, 0x054f, 0x0554, 0x055a, 0x055f, + 0x0563, 0x056e, 0x0573, 0x0579, 0x057d, 0x0593, 0x0598, 0x05a0, + 0x05aa, 0x05b1, 0x05c8, 0x05d1, 0x05da, 0x05e3, 0x05e8, 0x05ed, + // Entry C0 - FF + 0x05f5, 0x05fb, 0x05fb, 0x0604, 0x060b, 0x060b, 0x0611, 0x0617, + 0x061d, 0x0631, 0x063b, 0x0642, 0x0649, 0x0652, 0x065e, 0x0667, + 0x0667, 0x0670, 0x067c, 0x0685, 0x068e, 0x0696, 0x069f, 0x069f, + 0x06b4, 0x06bc, 0x06bc, 0x06c2, 0x06ca, 0x06ca, 0x06e4, 0x06e9, + 0x06e9, 0x06ed, 0x06f5, 0x0701, 0x0708, 0x071b, 0x072b, 0x0733, + 0x0738, 0x073f, 0x0751, 0x0757, 0x075e, 0x0766, 0x0766, 0x076c, + 0x076c, 0x0774, 0x077b, 0x0789, 0x0791, 0x07ac, 0x07b5, 0x07d6, + 0x07f5, 0x07fe, 0x0805, 0x0815, 0x081b, 0x081b, 0x0821, 0x0828, + // Entry 100 - 13F + 0x0836, 0x083d, 0x0846, + }, + }, + { // ast + "Islla AscensiónAndorraEmiratos Ãrabes XuníosAfganistánAntigua y BarbudaA" + + "nguilaAlbaniaArmeniaAngolaL’AntártidaArxentinaSamoa AmericanaAustria" + + "AustraliaArubaIslles AlandAzerbaixánBosnia y HerzegovinaBarbadosBang" + + "ladexBélxicaBurkina FasuBulgariaBaḥréinBurundiBenínSan BartoloméLes " + + "BermudesBrunéiBoliviaCaribe neerlandésBrasilLes BahamesButánIslla Bo" + + "uvetBotsuanaBielorrusiaBelizeCanadáIslles Cocos (Keeling)Congu - Kin" + + "xasaRepública CentroafricanaCongu - BrazzavilleSuizaCosta de MarfilI" + + "slles CookChileCamerúnChinaColombiaIslla ClippertonCosta RicaCubaCab" + + "u VerdeCuraçaoIslla ChristmasXipreChequiaAlemañaDiego GarciaXibutiDi" + + "namarcaDominicaRepública DominicanaArxeliaCeuta y MelillaEcuadorEsto" + + "niaExiptuSáḥara OccidentalEritreaEspañaEtiopíaXunión EuropeaFinlandi" + + "aIslles FixiFalkland IslandsMicronesiaIslles FeroeFranciaGabónReinu " + + "XuníuGranadaXeorxaGuyana FrancesaGuernseyGhanaXibraltarGroenlandiaGa" + + "mbiaGuineaGuadalupeGuinea EcuatorialGreciaIslles Xeorxa del Sur y Sa" + + "ndwich del SurGuatemalaGuamGuinea-BisáuGuyanaARE China de Ḥong KongI" + + "slles Heard y McDonaldHonduresCroaciaHaitíHungríaIslles CanariesIndo" + + "nesiaIrlandaIsraelIslla de ManIndiaTerritoriu Británicu del Océanu Ã" + + "ndicuIraqIránIslandiaItaliaJerseyXamaicaXordaniaXapónKeniaKirguistán" + + "CamboyaKiribatiLes ComoresSaint Kitts y NevisCorea del NorteCorea de" + + "l SurKuwaitIslles CaimánKazakstánLaosLíbanuSanta LlucíaLiechtenstein" + + "Sri LankaLiberiaLesothuLituaniaLuxemburguLetoniaLibiaMarruecosMónacu" + + "MoldaviaMontenegruSaint MartinMadagascarIslles MarshallMacedoniaMalí" + + "Myanmar (Birmania)MongoliaARE China de MacáuIslles Marianes del Nort" + + "eLa MartinicaMauritaniaMontserratMaltaMauriciuLes MaldivesMalauiMéxi" + + "cuMalasiaMozambiqueNamibiaNueva CaledoniaEl NíxerIslla NorfolkNixeri" + + "aNicaraguaPaíses BaxosNoruegaNepalNauruNiueNueva ZelandaOmánPanamáPe" + + "rúPolinesia FrancesaPapúa Nueva GuineaFilipinesPaquistánPoloniaSaint" + + " Pierre y MiquelonIslles PitcairnPuertu RicuTerritorios PalestinosPo" + + "rtugalPaláuParaguáiQatarOceanía esteriorReuniónRumaníaSerbiaRusiaRua" + + "ndaArabia SauditaIslles SalomónLes SeixelesSudánSueciaSingapurSanta " + + "HelenaEsloveniaSvalbard ya Islla Jan MayenEslovaquiaSierra LleonaSan" + + " MarínSenegalSomaliaSurinamSudán del SurSantu Tomé y PríncipeEl Salv" + + "adorSint MaartenSiriaSuazilandiaTristán da CunhaIslles Turques y Cai" + + "cosChadTierres Australes FrancesesToguTailandiaTaxiquistánTokeláuTim" + + "or OrientalTurkmenistánTuniciaTongaTurquíaTrinidá y TobaguTuvaluTaiw" + + "ánTanzaniaUcraínaUgandaIslles Perifériques Menores de los EE.XX.Est" + + "aos XuníosUruguáiUzbequistánCiudá del VaticanuSan Vicente y Granadin" + + "esVenezuelaIslles Vírxenes BritániquesIslles Vírxenes AmericanesViet" + + "namVanuatuWallis y FutunaSamoaKosovuYemenMayotteSudáfricaZambiaZimba" + + "bueRexón desconocidaMunduÃfricaNorteaméricaAmérica del SurOceaníaÃfr" + + "ica OccidentalAmérica CentralÃfrica OrientalÃfrica del NorteÃfrica C" + + "entralÃfrica del SurAméricaAmérica del NorteCaribeAsia OrientalAsia " + + "del SurSureste AsiáticuEuropa del SurAustralasiaMelanesiaRexón de Mi" + + "cronesiaPolinesiaAsiaAsia CentralAsia OccidentalEuropaEuropa Orienta" + + "lEuropa del NorteEuropa OccidentalAmérica Llatina", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x002f, 0x003a, 0x004b, 0x0052, 0x0059, + 0x0060, 0x0066, 0x0074, 0x007d, 0x008c, 0x0093, 0x009c, 0x00a1, + 0x00ad, 0x00b8, 0x00cc, 0x00d4, 0x00dd, 0x00e5, 0x00f1, 0x00f9, + 0x0103, 0x010a, 0x0110, 0x011e, 0x012a, 0x0131, 0x0138, 0x014a, + 0x0150, 0x015b, 0x0161, 0x016d, 0x0175, 0x0180, 0x0186, 0x018d, + 0x01a3, 0x01b2, 0x01cb, 0x01de, 0x01e3, 0x01f2, 0x01fd, 0x0202, + 0x020a, 0x020f, 0x0217, 0x0227, 0x0231, 0x0235, 0x023f, 0x0247, + 0x0256, 0x025b, 0x0262, 0x026a, 0x0276, 0x027c, 0x0285, 0x028d, + // Entry 40 - 7F + 0x02a2, 0x02a9, 0x02b8, 0x02bf, 0x02c6, 0x02cc, 0x02e0, 0x02e7, + 0x02ee, 0x02f6, 0x0305, 0x030e, 0x0319, 0x0329, 0x0333, 0x033f, + 0x0346, 0x034c, 0x0358, 0x035f, 0x0365, 0x0374, 0x037c, 0x0381, + 0x038a, 0x0395, 0x039b, 0x03a1, 0x03aa, 0x03bb, 0x03c1, 0x03e9, + 0x03f2, 0x03f6, 0x0403, 0x0409, 0x0421, 0x0438, 0x0440, 0x0447, + 0x044d, 0x0455, 0x0464, 0x046d, 0x0474, 0x047a, 0x0486, 0x048b, + 0x04b4, 0x04b8, 0x04bd, 0x04c5, 0x04cb, 0x04d1, 0x04d8, 0x04e0, + 0x04e6, 0x04eb, 0x04f6, 0x04fd, 0x0505, 0x0510, 0x0523, 0x0532, + // Entry 80 - BF + 0x053f, 0x0545, 0x0553, 0x055d, 0x0561, 0x0568, 0x0575, 0x0582, + 0x058b, 0x0592, 0x0599, 0x05a1, 0x05ab, 0x05b2, 0x05b7, 0x05c0, + 0x05c7, 0x05cf, 0x05d9, 0x05e5, 0x05ef, 0x05fe, 0x0607, 0x060c, + 0x061e, 0x0626, 0x0639, 0x0652, 0x065e, 0x0668, 0x0672, 0x0677, + 0x067f, 0x068b, 0x0691, 0x0698, 0x069f, 0x06a9, 0x06b0, 0x06bf, + 0x06c8, 0x06d5, 0x06dc, 0x06e5, 0x06f2, 0x06f9, 0x06fe, 0x0703, + 0x0707, 0x0714, 0x0719, 0x0720, 0x0725, 0x0737, 0x074a, 0x0753, + 0x075d, 0x0764, 0x077b, 0x078a, 0x0795, 0x07ab, 0x07b3, 0x07b9, + // Entry C0 - FF + 0x07c2, 0x07c7, 0x07d8, 0x07e0, 0x07e8, 0x07ee, 0x07f3, 0x07f9, + 0x0807, 0x0816, 0x0822, 0x0828, 0x082e, 0x0836, 0x0842, 0x084b, + 0x0866, 0x0870, 0x087d, 0x0887, 0x088e, 0x0895, 0x089c, 0x08aa, + 0x08c1, 0x08cc, 0x08d8, 0x08dd, 0x08e8, 0x08f9, 0x0910, 0x0914, + 0x092f, 0x0933, 0x093c, 0x0948, 0x0950, 0x095e, 0x096b, 0x0972, + 0x0977, 0x097f, 0x0990, 0x0996, 0x099d, 0x09a5, 0x09ad, 0x09b3, + 0x09dd, 0x09eb, 0x09f3, 0x09ff, 0x0a12, 0x0a2a, 0x0a33, 0x0a50, + 0x0a6b, 0x0a72, 0x0a79, 0x0a88, 0x0a8d, 0x0a93, 0x0a98, 0x0a9f, + // Entry 100 - 13F + 0x0aa9, 0x0aaf, 0x0ab7, 0x0ac9, 0x0ace, 0x0ad5, 0x0ae2, 0x0af2, + 0x0afa, 0x0b0c, 0x0b1c, 0x0b2c, 0x0b3d, 0x0b4c, 0x0b5b, 0x0b63, + 0x0b75, 0x0b7b, 0x0b88, 0x0b94, 0x0ba5, 0x0bb3, 0x0bbe, 0x0bc7, + 0x0bdb, 0x0be4, 0x0be8, 0x0bf4, 0x0c03, 0x0c09, 0x0c18, 0x0c28, + 0x0c39, 0x0c49, + }, + }, + { // az + azRegionStr, + azRegionIdx, + }, + { // az-Cyrl + "ÐзәрбајҹанБразилијаЧинÐлманијаФранÑаҺиндиÑтанИталијаЈапонијаРуÑијаÐмерик" + + "а Бирләшмиш Штатлары", + []uint16{ // 242 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + // Entry 40 - 7F + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, + 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x0068, 0x0068, 0x0068, 0x0068, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + // Entry 80 - BF + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, + // Entry C0 - FF + 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0078, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, + 0x0084, 0x00b6, + }, + }, + { // bas + "Àŋdɔ̂rÀdnà i Bilɔ̀ŋ bi ArÄbìàÀfgànìstâŋÀŋtigà É“É” BàrbudàÀŋgiyàÀlbanìàÀrm" + + "enìàÀŋgolàÀrgàŋtinàÒstrÇkÃ’stralìàÀrubàÀzɛ̀rbajàŋBòhnià ÆrzègòvinàBàr" + + "badòBàŋglàdɛ̂sBÉ›lgyùmBùrkìnà FasòBùlgarìàBàraìnBùrundìBènɛ̂ŋBɛ̀rmudà" + + "BruneiBòlivìàBràsîlBàhamàsBùtânBòdsùanàBèlarùsBèlîsKànadàKòŋgo ìkɛŋi" + + "Ŋ̀ɛm AfrÄ«kàKòŋgoSùwîsMàŋ mi Njɔ̂kBìòn bi KookKìlîKàmɛ̀rûnKinàKɔ̀lÉ”m" + + "bìàKòstà RikàKubàKabwɛ᷆rKipròJamânJìbutìDànmârkDòmnîkDòmnikàÀlgerìàÈ" + + "kwàtorìàÈstonìàÈgîptòÈrìtrěàPànyaÈtìopìàFìnlândFijiBìòn bi FalklandM" + + "ìkrònesìàPùlàsi / Fɛ̀lɛ̀nsi /Gàbɔ̂ŋÀdnà i Lɔ̂ŋGrènadàGèɔrgìàGùyanà " + + "PùlàsiGanàGìlbràtârGrÇnlàndGàmbiàGìnêGwàdèlûpGìne ÈkwàtorìàGrÇkyàGwà" + + "tèmalàGùâmGìne BìsàôGùyanàƆ̀ŋduràsKròasìàÀitìƆ̀ŋgriìIndònèsiàÌrlândI" + + "sràɛ̂lIndìàBìtèk bi ÅŠgisì i TÅ«yÉ› ĪndìàÌrâkÃŒrâŋÌslandìàÌtalìàJàmàikàY" + + "ɔ̀rdaniàKenìàKìrgìzìstàŋKàmbodìàKìrìbatìKɔ̀mɔ̂rNûmpubi Kîts nì Nevì" + + "sKɔ̀re ì Ŋ̀ɔmbÉ”kKɔ̀re ì ÅŠÌ€wɛ̀lmbÉ”kKòwêtBìòn bi KaymànKàzàkstâŋLàôsLè" + + "banònNûmpubi LusìLigstÉ›ntànSrìlaÅ‹kàLìberìàLesòtòLìtùanìàLùgsàmbûrLàd" + + "viàLibìàMàrokòMònakòMoldavìàMàdàgàskârBìòn bi MarcàlMàsèdonìàMàliMyà" + + "nmârMòŋgolìàBìòn bi Marìanà ŋ̀ɔmbÉ”kMàrtìnîkMòrìtanìàMɔ̀ŋseràtMaltàMò" + + "rîsMàldîfMàlàwiMɛ̀gsîkMàlɛ̀sìàMòsàmbîkNàmibìàKàlèdonìà Yɔ̀ndÉ”Nìjɛ̂rÃ’" + + "n i NÉ”rfɔ̂kNìgerìàNìkàragwàǸlÉ›ndiNɔ̀rvegìàNèpâlNerùNìuɛ̀Sìlând Yɔ̀nd" + + "ɔÒmânPànàmaPèrûPòlìnesìà PùlàsiGìne ì PàpuFìlìpînPàkìstânPòlàndNûmp" + + "ubi Petrò nì MikèlônPìdkaìrnPɔ̀rtò RikòPàlɛ̀htinà Hyɔ̀ŋg nì GazàPɔ̀t" + + "É”kìPàlaùPàràgwêKàtârRèunyɔ̂ŋRùmanìàRuslàndRùandàSàudi ÀrabìàBìòn bi" + + " SalÅmòSèsɛ̂lSùdâŋSwedɛ̀nSìŋgàpûrNûmpubi ÆlÄ“nàSlòvanìàSlòvakìàSièra " + + "Lèɔ̂nNûmpubi MÄatìnSènègâlSòmalìàSùrinâmSào Tòme É“É” Prɛ̀ŋcipèSàlvàdÉ”" + + "Ì‚rSirìàSwàzìlândBìòn bi Tûrks nì KalkòsCâdTògoTaylàndTàjìkìstaÅ‹Tòkè" + + "laòTìmɔ̂r lìkòlTùrgmènìstânTùnisìàTɔŋgàTùrkâyTrìnidàd É“É” TòbagòTùvàl" + + "ùTàywânTànzàniàÙkrɛ̌nÙgandàÀdnà i Bilɔ̀ŋ bi AmerkàÙrùgwêyÙzbèkìstân" + + "VàtìkâŋNûmpubi Vɛ̂ŋsâŋ nì grènàdînVènèzùelàBìòn bi kÉ”nji bi ÅŠgisìBìò" + + "n bi kÉ”nji bi U.S.Vìɛ̀dnâmVànùatùWàlîs nì FùtunàSàmoàYèmɛ̂nMàyɔ̂tÀfr" + + "Çkà Sɔ̀ZàmbiàZìmbàbwê", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000a, 0x0029, 0x0038, 0x0050, 0x0059, 0x0063, + 0x006d, 0x0076, 0x0076, 0x0083, 0x0083, 0x008b, 0x0096, 0x009d, + 0x009d, 0x00ac, 0x00c3, 0x00cc, 0x00db, 0x00e4, 0x00f4, 0x00ff, + 0x0107, 0x0110, 0x011a, 0x011a, 0x0125, 0x012b, 0x0135, 0x0135, + 0x013d, 0x0146, 0x014d, 0x014d, 0x0158, 0x0161, 0x0168, 0x0170, + 0x0170, 0x0180, 0x0190, 0x0197, 0x019e, 0x01ae, 0x01bc, 0x01c2, + 0x01ce, 0x01d3, 0x01e1, 0x01e1, 0x01ee, 0x01f3, 0x01fd, 0x01fd, + 0x01fd, 0x0203, 0x0203, 0x0209, 0x0209, 0x0211, 0x021a, 0x0222, + // Entry 40 - 7F + 0x022b, 0x0235, 0x0235, 0x0242, 0x024c, 0x0255, 0x0255, 0x0260, + 0x0266, 0x0271, 0x0271, 0x027a, 0x027e, 0x0290, 0x029e, 0x029e, + 0x02b8, 0x02c2, 0x02d2, 0x02db, 0x02e6, 0x02f7, 0x02f7, 0x02fc, + 0x0308, 0x0312, 0x031a, 0x0320, 0x032b, 0x033e, 0x0346, 0x0346, + 0x0352, 0x0358, 0x0366, 0x036e, 0x036e, 0x036e, 0x037a, 0x0384, + 0x038a, 0x0395, 0x0395, 0x03a1, 0x03a9, 0x03b3, 0x03b3, 0x03ba, + 0x03de, 0x03e4, 0x03eb, 0x03f6, 0x03ff, 0x03ff, 0x0409, 0x0415, + 0x0415, 0x041c, 0x042c, 0x0437, 0x0442, 0x044d, 0x0466, 0x047c, + // Entry 80 - BF + 0x0496, 0x049d, 0x04ae, 0x04bb, 0x04c1, 0x04ca, 0x04d8, 0x04e4, + 0x04ef, 0x04f9, 0x0501, 0x050d, 0x0519, 0x0521, 0x0528, 0x0530, + 0x0538, 0x0542, 0x0542, 0x0542, 0x0550, 0x0561, 0x056e, 0x0573, + 0x057c, 0x0588, 0x0588, 0x05a7, 0x05b2, 0x05bf, 0x05cc, 0x05d2, + 0x05d9, 0x05e1, 0x05e9, 0x05f3, 0x0600, 0x060b, 0x0615, 0x062c, + 0x0635, 0x0645, 0x064f, 0x065b, 0x0663, 0x0670, 0x0677, 0x067c, + 0x0684, 0x0696, 0x069c, 0x06a4, 0x06aa, 0x06c0, 0x06ce, 0x06d8, + 0x06e3, 0x06eb, 0x0708, 0x0712, 0x0721, 0x0743, 0x074e, 0x0755, + // Entry C0 - FF + 0x075f, 0x0766, 0x0766, 0x0772, 0x077c, 0x077c, 0x0784, 0x078c, + 0x079c, 0x07ae, 0x07b7, 0x07bf, 0x07c8, 0x07d4, 0x07e5, 0x07f0, + 0x07f0, 0x07fb, 0x080a, 0x081b, 0x0825, 0x082f, 0x0838, 0x0838, + 0x0855, 0x0862, 0x0862, 0x0869, 0x0875, 0x0875, 0x0891, 0x0895, + 0x0895, 0x089a, 0x08a2, 0x08b0, 0x08ba, 0x08cb, 0x08db, 0x08e5, + 0x08ed, 0x08f5, 0x090d, 0x0916, 0x091e, 0x0929, 0x0932, 0x093a, + 0x093a, 0x0957, 0x0961, 0x096f, 0x097a, 0x099f, 0x09ac, 0x09c7, + 0x09df, 0x09eb, 0x09f5, 0x0a09, 0x0a10, 0x0a10, 0x0a19, 0x0a22, + // Entry 100 - 13F + 0x0a31, 0x0a39, 0x0a44, + }, + }, + { // be + "ВоÑтраў УшÑÑцÑÐндораÐб’ÑÐ´Ð½Ð°Ð½Ñ‹Ñ ÐрабÑÐºÑ–Ñ Ð­Ð¼Ñ–Ñ€Ð°Ñ‚Ñ‹ÐфганіÑтанÐнтыгуа Ñ– Барбу" + + "даÐнгільÑÐлбаніÑÐрменіÑÐнголаÐнтарктыкаÐргенцінаÐмерыканÑкае СамоаÐ" + + "ÑžÑтрыÑÐÑžÑтраліÑÐрубаÐландÑÐºÑ–Ñ Ð°ÑтравыÐзербайджанБоÑÐ½Ñ–Ñ Ñ– Герцагавін" + + "аБарбадаÑБангладÑшБельгіÑБуркіна-ФаÑоБалгарыÑБахрÑйнБурундзіБенінСе" + + "н-БартÑльміБермудÑÐºÑ–Ñ Ð°ÑтравыБрунейБалівіÑКарыбÑÐºÑ–Ñ ÐідÑрландыБразі" + + "ліÑБагамыБутанВоÑтраў БувÑБатÑванаБеларуÑьБелізКанадаКакоÑÐ°Ð²Ñ‹Ñ Ð°ÑÑ‚Ñ€" + + "авыКонга (КіншаÑа)ЦÑнтральна-ÐфрыканÑÐºÐ°Ñ Ð ÑÑпублікаКонга (Бразавіль" + + ")ШвейцарыÑКот-д’ІвуарÐÑтравы КукаЧыліКамерунКітайКалумбіÑВоÑтраў Клі" + + "пертонКоÑта-РыкаКубаКаба-ВердÑВоÑтраў КюраÑааВоÑтраў РаÑтваКіпрЧÑÑ…Ñ–" + + "ÑГерманіÑВоÑтраў Дыега-ГарÑÑ–ÑДжыбуціДаніÑДамінікаДамініканÑÐºÐ°Ñ Ð ÑÑп" + + "ублікаÐлжырСеўта Ñ– МелільÑЭквадорЭÑтоніÑЕгіпетЗаходнÑÑ Ð¡Ð°Ñ…Ð°Ñ€Ð°Ð­Ñ€Ñ‹Ñ‚Ñ€Ñ" + + "ÑІÑпаніÑЭфіопіÑЕўрапейÑкі ÑаюзФінлÑндыÑФіджыФалклендÑÐºÑ–Ñ Ð°ÑтравыМік" + + "ранезіÑФарÑÑ€ÑÐºÑ–Ñ Ð°ÑтравыФранцыÑГабонВÑлікабрытаніÑГрÑнадаГрузіÑФран" + + "цузÑÐºÐ°Ñ Ð“Ð²Ñ–ÑнаВоÑтраў ГернÑіГанаГібралтарГрÑнландыÑГамбіÑГвінеÑГвад" + + "ÑлупаЭкватарыÑÐ»ÑŒÐ½Ð°Ñ Ð“Ð²Ñ–Ð½ÐµÑГрÑцыÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ñ‹Ñ Ñ– ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ñ‹Ñ Ð¡Ð°Ð½Ð´" + + "вічавы аÑтравыГватÑмалаГуамГвінеÑ-БіÑауГаÑнаГанконг, СÐР (Кітай)ВоÑ" + + "траў Херд Ñ– аÑтравы МакдональдГандураÑХарватыÑГаіціВенгрыÑКанарÑкіÑ" + + " аÑтравыІнданезіÑІрландыÑІзраільВоÑтраў ÐœÑнІндыÑБрытанÑÐºÐ°Ñ Ñ‚ÑрыторыÑ" + + " Ñž ІндыйÑкім акіÑнеІракІранІÑландыÑІталіÑВоÑтраў ДжÑÑ€ÑіЯмайкаІардані" + + "ÑЯпоніÑКеніÑКыргызÑтанКамбоджаКірыбаціКаморÑÐºÑ–Ñ ÐÑтравыСент-ÐšÑ–Ñ‚Ñ Ñ– " + + "ÐевіÑÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ ÐšÐ°Ñ€ÑÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐšÐ°Ñ€ÑÑКувейтКайманавы аÑтравыКазахÑтан" + + "ЛаоÑЛіванСент-ЛюÑÑ–ÑЛіхтÑнштÑйнШры-ЛанкаЛіберыÑЛеÑотаЛітваЛюкÑембург" + + "ЛатвіÑЛівіÑМарокаМанакаМалдоваЧарнагорыÑСен-МартÑнМадагаÑкарМаршала" + + "вы ÐÑтравыМакедоніÑМаліМ’Ñнма (Бірма)МанголіÑМакаа, СÐР (Кітай)Паўн" + + "Ð¾Ñ‡Ð½Ñ‹Ñ ÐœÐ°Ñ€Ñ‹ÑнÑÐºÑ–Ñ Ð°ÑтравыМарцінікаМаўрытаніÑМантÑератМальтаМаўрыкійМ" + + "альдывыМалавіМекÑікаМалайзіÑМазамбікÐамібіÑÐÐ¾Ð²Ð°Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ñ–ÑÐігерВоÑÑ‚" + + "раў ÐорфалкÐігерыÑÐікарагуаÐідÑрландыÐарвегіÑÐепалÐауруÐіуÑÐÐ¾Ð²Ð°Ñ Ð—Ðµ" + + "ландыÑÐманПанамаПеруФранцузÑÐºÐ°Ñ ÐŸÐ°Ð»Ñ–Ð½ÐµÐ·Ñ–ÑПапуа — ÐÐ¾Ð²Ð°Ñ Ð“Ð²Ñ–Ð½ÐµÑФіліпі" + + "ныПакіÑтанПольшчаСен-П’ер Ñ– МікелонÐÑтравы ПіткÑрнПуÑрта-РыкаПалеÑÑ‚" + + "ынÑÐºÑ–Ñ Ñ‚ÑрыторыіПартугаліÑÐŸÐ°Ð»Ð°ÑƒÐŸÐ°Ñ€Ð°Ð³Ð²Ð°Ð¹ÐšÐ°Ñ‚Ð°Ñ€Ð’Ð¾Ð½ÐºÐ°Ð²Ð°Ñ ÐкіÑніÑРÑюньён" + + "РумыніÑСербіÑРаÑÑ–ÑРуандаСаудаўÑÐºÐ°Ñ ÐравіÑСаламонавы ÐÑтравыСейшÑльÑ" + + "ÐºÑ–Ñ ÐÑтравыСуданШвецыÑСінгапурВоÑтраў СвÑтой ÐленыСлавеніÑСвальбард" + + " (Паўночна-УÑходнÑÑ Ð—ÑмлÑ) Ñ– Ян-МаенСлавакіÑСьера-ЛеонÑСан-МарынаСен" + + "егалСамаліСурынамПаўднёвы СуданСан-Ð¢Ð°Ð¼Ñ Ñ– ПрынÑіпіСальвадорСінт-Мар" + + "Ñ‚ÑнСірыÑСвазілендТрыÑтан-да-КуньÑÐ¦Ñ‘Ñ€ÐºÑ Ñ– КайкаÑЧадФранцузÑÐºÑ–Ñ ÐŸÐ°ÑžÐ´Ð½" + + "Ñ‘Ð²Ñ‹Ñ Ñ‚ÑрыторыіТогаТайландТаджыкіÑтанТакелауУÑходні ТыморТуркменіÑта" + + "нТуніÑТонгаТурцыÑТрынідад Ñ– ТабагаТувалуТайваньТанзаніÑУкраінаУганд" + + "Ð°Ð—Ð½ÐµÑˆÐ½Ñ–Ñ Ð¼Ð°Ð»Ñ‹Ñ Ð°Ñтравы ЗШÐÐ—Ð»ÑƒÑ‡Ð°Ð½Ñ‹Ñ Ð¨Ñ‚Ð°Ñ‚Ñ‹ ÐмерыкіУругвайУзбекіÑтанВа" + + "тыканСент-ВінÑент Ñ– ГрÑнадзіныВенеÑуÑлаБрытанÑÐºÑ–Ñ Ð’Ñ–Ñ€Ð³Ñ–Ð½ÑÐºÑ–Ñ Ð°Ñтрав" + + "Ñ‹ÐмерыканÑÐºÑ–Ñ Ð’Ñ–Ñ€Ð³Ñ–Ð½ÑÐºÑ–Ñ Ð°ÑÑ‚Ñ€Ð°Ð²Ñ‹Ð’â€™ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ñ–Ñ Ñ– ФутунаСамоаКо" + + "ÑаваЕменВоÑтраў МаётаПаўднёва-ÐфрыканÑÐºÐ°Ñ Ð ÑÑпублікаЗамбіÑЗімбабвÑÐ" + + "евÑдомы Ñ€ÑгіёнСветÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ ÐÐ¼ÐµÑ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐмерыкаÐкіÑніÑЗа" + + "ходнÑÑ ÐфрыкаЦÑÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐмерыкаУÑходнÑÑ ÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ ÐфрыкаЦÑнт" + + "Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐÑ„Ñ€Ñ‹ÐºÐ°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ Ñ– ÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐмерыкіПаўночна" + + "амерыканÑкі Ñ€ÑгіёнКарыбÑÐºÑ–Ñ Ð°ÑтравыУÑходнÑÑ ÐзіÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ ÐзіÑПаўдн" + + "ёва-УÑходнÑÑ ÐзіÑÐŸÐ°ÑžÐ´Ð½Ñ‘Ð²Ð°Ñ Ð•ÑžÑ€Ð¾Ð¿Ð°ÐÑžÑтралазіÑМеланезіÑМікранезійÑкі " + + "Ñ€ÑгіёнПалінезіÑÐзіÑЦÑÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐзіÑЗаходнÑÑ ÐзіÑЕўропаУÑходнÑÑ Ð•ÑžÑ€Ð¾" + + "Ð¿Ð°ÐŸÐ°ÑžÐ½Ð¾Ñ‡Ð½Ð°Ñ Ð•ÑžÑ€Ð¾Ð¿Ð°Ð—Ð°Ñ…Ð¾Ð´Ð½ÑÑ Ð•ÑžÑ€Ð¾Ð¿Ð°Ð›Ð°Ñ†Ñ–Ð½ÑÐºÐ°Ñ Ðмерыка", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0027, 0x005c, 0x0070, 0x0090, 0x009e, 0x00ac, + 0x00ba, 0x00c6, 0x00da, 0x00ec, 0x010f, 0x011d, 0x012f, 0x0139, + 0x015a, 0x0170, 0x0196, 0x01a6, 0x01b8, 0x01c6, 0x01dd, 0x01ed, + 0x01fb, 0x020b, 0x0215, 0x022e, 0x0251, 0x025d, 0x026b, 0x0292, + 0x02a2, 0x02ae, 0x02b8, 0x02cf, 0x02df, 0x02ef, 0x02f9, 0x0305, + 0x0326, 0x0341, 0x0381, 0x03a0, 0x03b2, 0x03c8, 0x03df, 0x03e7, + 0x03f5, 0x03ff, 0x040f, 0x0430, 0x0443, 0x044b, 0x045e, 0x047b, + 0x0496, 0x049e, 0x04a8, 0x04b8, 0x04de, 0x04ec, 0x04f6, 0x0506, + // Entry 40 - 7F + 0x0535, 0x053f, 0x055b, 0x0569, 0x0577, 0x0583, 0x05a0, 0x05ae, + 0x05bc, 0x05ca, 0x05e7, 0x05f9, 0x0603, 0x062a, 0x063e, 0x065f, + 0x066d, 0x0677, 0x0693, 0x06a1, 0x06ad, 0x06d0, 0x06eb, 0x06f3, + 0x0705, 0x0719, 0x0725, 0x0731, 0x0743, 0x076c, 0x0778, 0x07d5, + 0x07e7, 0x07ef, 0x0806, 0x0810, 0x0833, 0x0871, 0x0881, 0x0891, + 0x089b, 0x08a9, 0x08ca, 0x08dc, 0x08ec, 0x08fa, 0x090f, 0x0919, + 0x0963, 0x096b, 0x0973, 0x0983, 0x098f, 0x09aa, 0x09b6, 0x09c6, + 0x09d2, 0x09dc, 0x09f0, 0x0a00, 0x0a10, 0x0a31, 0x0a50, 0x0a6d, + // Entry 80 - BF + 0x0a8a, 0x0a96, 0x0ab7, 0x0ac9, 0x0ad1, 0x0adb, 0x0aee, 0x0b04, + 0x0b15, 0x0b23, 0x0b2f, 0x0b39, 0x0b4d, 0x0b59, 0x0b63, 0x0b6f, + 0x0b7b, 0x0b89, 0x0b9d, 0x0bb0, 0x0bc4, 0x0be5, 0x0bf7, 0x0bff, + 0x0c19, 0x0c29, 0x0c48, 0x0c7e, 0x0c90, 0x0ca4, 0x0cb6, 0x0cc2, + 0x0cd2, 0x0ce2, 0x0cee, 0x0cfc, 0x0d0c, 0x0d1c, 0x0d2a, 0x0d47, + 0x0d51, 0x0d6e, 0x0d7c, 0x0d8e, 0x0da2, 0x0db2, 0x0dbc, 0x0dc6, + 0x0dce, 0x0de9, 0x0df1, 0x0dfd, 0x0e05, 0x0e2e, 0x0e54, 0x0e64, + 0x0e74, 0x0e82, 0x0ea4, 0x0ec1, 0x0ed6, 0x0f01, 0x0f15, 0x0f1f, + // Entry C0 - FF + 0x0f2f, 0x0f39, 0x0f58, 0x0f66, 0x0f74, 0x0f80, 0x0f8a, 0x0f96, + 0x0fb7, 0x0fda, 0x0fff, 0x1009, 0x1015, 0x1025, 0x104b, 0x105b, + 0x10ad, 0x10bd, 0x10d2, 0x10e5, 0x10f3, 0x10ff, 0x110d, 0x1128, + 0x114b, 0x115d, 0x1172, 0x117c, 0x118e, 0x11ac, 0x11c6, 0x11cc, + 0x1208, 0x1210, 0x121e, 0x1234, 0x1242, 0x125b, 0x1273, 0x127d, + 0x1287, 0x1293, 0x12b3, 0x12bf, 0x12cd, 0x12dd, 0x12eb, 0x12f7, + 0x1326, 0x1350, 0x135e, 0x1372, 0x1380, 0x13af, 0x13c1, 0x13f9, + 0x1435, 0x1444, 0x1452, 0x146c, 0x1476, 0x1482, 0x148a, 0x14a3, + // Entry 100 - 13F + 0x14df, 0x14eb, 0x14fb, 0x1518, 0x1520, 0x152c, 0x154d, 0x156e, + 0x157c, 0x1599, 0x15be, 0x15db, 0x15fa, 0x161d, 0x163c, 0x1673, + 0x16a6, 0x16c7, 0x16e0, 0x16fb, 0x1725, 0x1744, 0x175a, 0x176c, + 0x1793, 0x17a5, 0x17ad, 0x17cc, 0x17e5, 0x17f1, 0x180e, 0x182d, + 0x184a, 0x186b, + }, + }, + { // bem + "Zambia", + []uint16{ // 258 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0006, + }, + }, + { // bez + "HuandolaHufalme dza HihalabuHuafuganistaniHuantigua na HubarubudaHuangui" + + "laHualbaniaHuameniaHuangolaHuajendinaHusamoa ya HumalekaniHuastliaHu" + + "austlaliaHualubaHuazabajaniHubosinia na HuhezegovinaHubabadosiHubang" + + "aladeshiHuubelgijiHubukinafasoHubulgariaHubahaleniHuburundiHubeniniH" + + "ubelmudaHubruneiHuboliviaHublaziliHubahamaHubutaniHubotiswanaHubelal" + + "usiHubelizeHukanadaIjamhuri ya Hidemokrasi ya HukongoIjamhuri ya Afr" + + "ika ya PagatiHukongoHuuswisiHukodivaaIfisima fya KookHuchileHukameru" + + "niHuchinaHukolombiaHukostarikaHukubaHukepuvedeHukuprosiIjamhuri ya C" + + "hekiHuujerumaniHujibutiHudenmakiHudominikaIjamhuri ya HudominikaHual" + + "jeliaHuekwadoHuestoniaHumisriHueritreaHuhispaniaHuuhabeshiHuufiniHuf" + + "ijiIfisima fya FalklandHumikronesiaHuufaransaHugaboniHuuingerezaHugr" + + "enadaHujojiaHugwiyana ya HuufaransaHughanaHujiblaltaHujinlandiHugamb" + + "iaHujineHugwadelupeHuginekwetaHuugilikiHugwatemalaHugwamHuginebisauH" + + "uguyanaHuhondulasiHukorasiaHuhaitiHuhungaliaHuindonesiaHuayalandiHui" + + "slaheliHuindiaUlubali lwa Hubahari ya Hindi lwa HuingerezaHuilakiHuu" + + "ajemiHuaislandiHuitaliaHujamaikaHuyolodaniHujapaniHukenyaHukiligizis" + + "taniHukambodiaHukilibatiHukomoroHusantakitzi na HunevisHukolea Kaska" + + "ziniHukolea KusiniHukuwaitiIfisima fya KaymanHukazakistaniHulaosiHul" + + "ebanoniHusantalusiaHulishenteniHusirilankaHulibeliaHulesotoHulitwani" + + "aHulasembagiHulativiaHulibiyaHumolokoHumonakoHumoldovaHubukiniIfisim" + + "a fya MarshalHumasedoniaHumaliHumyamaHumongoliaIfisima fya Mariana f" + + "ya HukaskaziniHumartinikiHumolitaniaHumontserratiHumaltaHumolisiHumo" + + "divuHumalawiHumeksikoHumalesiaHumusumbijiHunamibiaHunyukaledoniaHuni" + + "jeliIhisima sha NorfokHunijeliaHunikaragwaHuuholanziHunolweHunepaliH" + + "unauruHuniueHunyuzilandiHuomaniHupanamaHupeluHupolinesia ya Huufaran" + + "saHupapuaHufilipinoHupakistaniHupolandiHusantapieri na HumikeloniHup" + + "itkainiHupwetorikoUlubali lwa Magharibi nu Gaza wa HupalestinaHuulen" + + "oHupalauHupalagwaiHukataliHuliyunioniHulomaniaHuulusiHulwandaHusaudi" + + "Ifisima fya SolomonHushelisheliHusudaniHuuswidiHusingapooHusantahele" + + "naHusloveniaHuslovakiaHusiela LioniHusamalinoHusenegaliHusomaliaHusu" + + "rinamuHusaotome na HuprinsipeHuelsavadoHusiliaHuuswaziIfisima fya Tu" + + "rki na KaikoHuchadiHutogoHutailandiHutajikistaniHutokelauHutimori ya" + + " MasharikiHuuturukimenistaniHutunisiaHutongaHuuturukiHutrinad na Hut" + + "obagoHutuvaluHutaiwaniHutanzaniaHuukrainiHuugandaHumalekaniHuulugwai" + + "HuuzibekistaniHuvatikaniHusantavisenti na HugrenadiniHuvenezuelaIfis" + + "ima fya Virgin fya HuingerezaIfisima fya Virgin fya HumelekaniHuviet" + + "inamuHuvanuatuHuwalis na HufutunaHusamoaHuyemeniHumayotteHuafrika iy" + + "a HukusiniHuzambiaHuzimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x001c, 0x002a, 0x0041, 0x004a, 0x0053, + 0x005b, 0x0063, 0x0063, 0x006d, 0x0082, 0x008a, 0x0095, 0x009c, + 0x009c, 0x00a7, 0x00c0, 0x00ca, 0x00d8, 0x00e2, 0x00ee, 0x00f8, + 0x0102, 0x010b, 0x0113, 0x0113, 0x011c, 0x0124, 0x012d, 0x012d, + 0x0136, 0x013e, 0x0146, 0x0146, 0x0151, 0x015b, 0x0163, 0x016b, + 0x016b, 0x018d, 0x01a9, 0x01b0, 0x01b8, 0x01c1, 0x01d1, 0x01d8, + 0x01e2, 0x01e9, 0x01f3, 0x01f3, 0x01fe, 0x0204, 0x020e, 0x020e, + 0x020e, 0x0217, 0x0228, 0x0233, 0x0233, 0x023b, 0x0244, 0x024e, + // Entry 40 - 7F + 0x0264, 0x026d, 0x026d, 0x0275, 0x027e, 0x0285, 0x0285, 0x028e, + 0x0298, 0x02a2, 0x02a2, 0x02a9, 0x02af, 0x02c3, 0x02cf, 0x02cf, + 0x02d9, 0x02e1, 0x02ec, 0x02f5, 0x02fc, 0x0313, 0x0313, 0x031a, + 0x0324, 0x032e, 0x0336, 0x033c, 0x0347, 0x0352, 0x035b, 0x035b, + 0x0366, 0x036c, 0x0377, 0x037f, 0x037f, 0x037f, 0x038a, 0x0393, + 0x039a, 0x03a4, 0x03a4, 0x03af, 0x03b9, 0x03c3, 0x03c3, 0x03ca, + 0x03f6, 0x03fd, 0x0405, 0x040f, 0x0417, 0x0417, 0x0420, 0x042a, + 0x0432, 0x0439, 0x0448, 0x0452, 0x045c, 0x0464, 0x047b, 0x048c, + // Entry 80 - BF + 0x049a, 0x04a3, 0x04b5, 0x04c2, 0x04c9, 0x04d3, 0x04df, 0x04eb, + 0x04f6, 0x04ff, 0x0507, 0x0511, 0x051c, 0x0525, 0x052d, 0x0535, + 0x053d, 0x0546, 0x0546, 0x0546, 0x054e, 0x0561, 0x056c, 0x0572, + 0x0579, 0x0583, 0x0583, 0x05a6, 0x05b1, 0x05bc, 0x05c9, 0x05d0, + 0x05d8, 0x05e0, 0x05e8, 0x05f1, 0x05fa, 0x0605, 0x060e, 0x061c, + 0x0624, 0x0636, 0x063f, 0x064a, 0x0654, 0x065b, 0x0663, 0x066a, + 0x0670, 0x067c, 0x0683, 0x068b, 0x0691, 0x06aa, 0x06b1, 0x06bb, + 0x06c6, 0x06cf, 0x06e9, 0x06f3, 0x06fe, 0x072a, 0x0731, 0x0738, + // Entry C0 - FF + 0x0742, 0x074a, 0x074a, 0x0755, 0x075e, 0x075e, 0x0765, 0x076d, + 0x0774, 0x0787, 0x0793, 0x079b, 0x07a3, 0x07ad, 0x07ba, 0x07c4, + 0x07c4, 0x07ce, 0x07db, 0x07e5, 0x07ef, 0x07f8, 0x0802, 0x0802, + 0x0819, 0x0823, 0x0823, 0x082a, 0x0832, 0x0832, 0x084c, 0x0853, + 0x0853, 0x0859, 0x0863, 0x0870, 0x0879, 0x088e, 0x08a0, 0x08a9, + 0x08b0, 0x08b9, 0x08cd, 0x08d5, 0x08de, 0x08e8, 0x08f1, 0x08f9, + 0x08f9, 0x0903, 0x090c, 0x091a, 0x0924, 0x0941, 0x094c, 0x096d, + 0x098e, 0x0999, 0x09a2, 0x09b5, 0x09bc, 0x09bc, 0x09c4, 0x09cd, + // Entry 100 - 13F + 0x09e2, 0x09ea, 0x09f4, + }, + }, + { // bg + bgRegionStr, + bgRegionIdx, + }, + { // bm + "AndÉ”rArabu mara kafoliAfiganistaÅ‹Antiga-ni-BarbudaAngiyaAlibaniArimeniAn" + + "golaArizantinSamowa amerikaniOtirisiOsitiraliArubaAzÉ›rbayjaÅ‹Bozni-Ær" + + "izigoviniBarbadiBÉ›ngiladÉ›siBÉ›lizikiBurukina FasoBuligariBareyiniBuru" + + "ndiBenÉ›nBermudiBurinÉ›yiBoliviBereziliBahamasiButaÅ‹BÉ”tisiwanaBelarusi" + + "BeliziKanadaKongo ka republiki demÉ”kratikiSantarafirikiKongoSuwisiKo" + + "diwariKuki GunSiliKameruniSiniwajamanaKolombiKÉ”sitarikaKubaCapivÉ›rdi" + + "CipriCeki republikiAlimaɲiJibutiDanemarkiDÉ”minikiDÉ”mimiki republikiA" + + "lizeriEkwatÉ”rEsetoniEziputiEritereEsipaɲiEtiopiFinilandiFijiMaluwini" + + " GunMikironesiFaransiGabɔŋAngilÉ›tÉ›riGranadiZeyÉ”rziFaransi ka gwiyani" + + "GanaZibralitariGÉ”rÉ”henelandiGanbiGineGwadelupGine ekwatÉ”riGÉ›rÉ›siGwat" + + "emalaGwamGine BisawoGwiyanaHÉ”ndirasiKroasiAyitiHÉ”ngriÆndoneziIriland" + + "iIsirayeliÆndujamanaAngilÉ› ka É›ndu dugukoloIrakiIraÅ‹IsilandiItaliZam" + + "ayikiZÉ”rdaniZapÉ”nKeniyaKirigizisitaÅ‹KambojiKiribatiKomÉ”riKristÉ”fo-Se" + + "nu-ni-ÆevÉ›sKɛɲɛka KoreWorodugu KoreKowÉ›tiBama GunKazakistaÅ‹LayosiLib" + + "aÅ‹Lusi-SenuLisÉ›nsitayiniSirilankaLiberiyaLesotoLituyaniLikisanburuLe" + + "toniLibiMarÉ”kuMonakoMolidaviMadagasikariMarisali GunMacedÉ”niMaliMyan" + + "imariMoÅ‹oliKɛɲɛka Mariyani GunMaritinikiMÉ”ritaniMoÅ‹seraMaltiMorisiMa" + + "ldiviMalawiMeksikiMalÉ›ziMozanbikiNamibiKaledoni KouraNizÉ›riNÉ”rofolik" + + "i GunNizeriyaNikaragwaPeyibaNÉ”riwÉ›ziNepaliNawuruNyuweZelandi KouraOm" + + "aÅ‹PanamaPeruFaransi ka polineziPapuwasi-Gine-KouraFilipiniPakisitaÅ‹P" + + "oloɲiPiyÉ›ri-Senu-ni-MikelɔŋPitikariniPÉ”rotorikoPalesitiniPÉ”ritigaliP" + + "alawuParaguwayiKatariReyuɲɔŋRumaniIrisiRuwandaArabiya SawudiyaSalomo" + + " GunSesÉ›liSudaÅ‹SuwÉ›diSÉ›ngapuriÆlÉ›ni SenuSloveniSlowakiSiyera LewÉ”niM" + + "arini-SenuSenegaliSomaliSurinamiSawo Tome-ni-PrinicipeSalivadÉ”rSiriS" + + "wazilandiTuriki Gun ni KayikiCadiTogoTayilandiTajikisitaniTokeloKÉ”rÉ”" + + "n TimÉ”rTurikimenisitaniTuniziTongaTurikiTrinite-ni-TobagoTuvaluTayiw" + + "aniTanzaniUkÉ›rÉ›niUgandaAmerikiUrugwayiUzebekisitaniVatikaÅ‹VinisÉ›n-Se" + + "nu-ni-GrenadiniVenezuwelaAngilÉ› ka Sungurunnin GunAmeriki ka Sunguru" + + "nnin GunWiyÉ›tinamuVanuwatuWalisi-ni-FutunaSamowaYemÉ›niMayotiWorodugu" + + " AfrikiZanbiZimbabuwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0034, 0x003a, 0x0041, + 0x0048, 0x004e, 0x004e, 0x0057, 0x0067, 0x006e, 0x0077, 0x007c, + 0x007c, 0x0088, 0x009a, 0x00a1, 0x00ae, 0x00b7, 0x00c4, 0x00cc, + 0x00d4, 0x00db, 0x00e1, 0x00e1, 0x00e8, 0x00f1, 0x00f7, 0x00f7, + 0x00ff, 0x0107, 0x010d, 0x010d, 0x0118, 0x0120, 0x0126, 0x012c, + 0x012c, 0x014b, 0x0158, 0x015d, 0x0163, 0x016b, 0x0173, 0x0177, + 0x017f, 0x018b, 0x0192, 0x0192, 0x019d, 0x01a1, 0x01ab, 0x01ab, + 0x01ab, 0x01b0, 0x01be, 0x01c6, 0x01c6, 0x01cc, 0x01d5, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x0200, 0x0207, 0x020e, 0x020e, 0x0215, + 0x021d, 0x0223, 0x0223, 0x022c, 0x0230, 0x023c, 0x0246, 0x0246, + 0x024d, 0x0254, 0x0260, 0x0267, 0x026f, 0x0281, 0x0281, 0x0285, + 0x0290, 0x029f, 0x02a4, 0x02a8, 0x02b0, 0x02be, 0x02c6, 0x02c6, + 0x02cf, 0x02d3, 0x02de, 0x02e5, 0x02e5, 0x02e5, 0x02ef, 0x02f5, + 0x02fa, 0x0301, 0x0301, 0x030a, 0x0312, 0x031b, 0x031b, 0x0326, + 0x033f, 0x0344, 0x0349, 0x0351, 0x0356, 0x0356, 0x035e, 0x0366, + 0x036c, 0x0372, 0x0380, 0x0387, 0x038f, 0x0396, 0x03af, 0x03bd, + // Entry 80 - BF + 0x03ca, 0x03d1, 0x03d9, 0x03e4, 0x03ea, 0x03f0, 0x03f9, 0x0407, + 0x0410, 0x0418, 0x041e, 0x0426, 0x0431, 0x0437, 0x043b, 0x0442, + 0x0448, 0x0450, 0x0450, 0x0450, 0x045c, 0x0468, 0x0471, 0x0475, + 0x047e, 0x0485, 0x0485, 0x049b, 0x04a5, 0x04ae, 0x04b6, 0x04bb, + 0x04c1, 0x04c8, 0x04ce, 0x04d5, 0x04dc, 0x04e5, 0x04eb, 0x04f9, + 0x0500, 0x050f, 0x0517, 0x0520, 0x0526, 0x0530, 0x0536, 0x053c, + 0x0541, 0x054e, 0x0553, 0x0559, 0x055d, 0x0570, 0x0583, 0x058b, + 0x0595, 0x059c, 0x05b5, 0x05bf, 0x05ca, 0x05d4, 0x05df, 0x05e5, + // Entry C0 - FF + 0x05ef, 0x05f5, 0x05f5, 0x05ff, 0x0605, 0x0605, 0x060a, 0x0611, + 0x0621, 0x062b, 0x0632, 0x0638, 0x063f, 0x0649, 0x0655, 0x065c, + 0x065c, 0x0663, 0x0671, 0x067c, 0x0684, 0x068a, 0x0692, 0x0692, + 0x06a8, 0x06b2, 0x06b2, 0x06b6, 0x06c0, 0x06c0, 0x06d4, 0x06d8, + 0x06d8, 0x06dc, 0x06e5, 0x06f1, 0x06f7, 0x0705, 0x0715, 0x071b, + 0x0720, 0x0726, 0x0737, 0x073d, 0x0745, 0x074c, 0x0755, 0x075b, + 0x075b, 0x0762, 0x076a, 0x0777, 0x077f, 0x0799, 0x07a3, 0x07bd, + 0x07d7, 0x07e2, 0x07ea, 0x07fa, 0x0800, 0x0800, 0x0807, 0x080d, + // Entry 100 - 13F + 0x081c, 0x0821, 0x082a, + }, + }, + { // bn + bnRegionStr, + bnRegionIdx, + }, + { // bo + "རྒྱ་ནགའཇར་མན་དབྱིན་ཇི་རྒྱ་གར་ཨི་ཀྲར་ལི་ཉི་ཧོང་ལྷོ་ཀོ་རི་ཡà¼à½–ལ་ཡུལ་ཨུ་རུ་ས" + + "ུ་ཨ་མེ་རི་ཀà¼à½˜à½²à½ à½²à¼‹à½¤à½ºà½¦à¼‹à½¢à¾Ÿà½¼à½‚ས་མ་བྱུང་བའི་à½à½¼à½¢à¼‹à½¡à½´à½‚འཛམ་གླིང་à¼", + []uint16{ // 261 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + // Entry 40 - 7F + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0057, + 0x0057, 0x0057, 0x0057, 0x0057, 0x0075, 0x0075, 0x0075, 0x0075, + 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, 0x008a, + // Entry 80 - BF + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, + // Entry C0 - FF + 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00c3, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, 0x00fc, + // Entry 100 - 13F + 0x00fc, 0x00fc, 0x00fc, 0x015f, 0x017d, + }, + }, + { // bo-IN + "ཨོཤི་ཡཱན་ནà¼", + []uint16{ // 265 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0021, + }, + }, + { // br + "Enez AscensionAndorraEmirelezhioù Arab UnanetAfghanistanAntigua ha Barbu" + + "daAnguillaAlbaniaArmeniaAngolaAntarktikaArcʼhantinaSamoa AmerikanAos" + + "triaAostraliaArubaInizi Ã…landAzerbaidjanBosnia ha HerzegovinaBarbado" + + "sBangladeshBelgiaBurkina FasoBulgariaBahreinBurundiBeninSaint Barthé" + + "lemyBermudaBruneiBoliviaKarib NederlandatBrazilBahamasBhoutanEnez Bo" + + "uvetBotswanaBelarusBelizeKanadaInizi KokozKongo - KinshasaRepublik K" + + "reizafrikanKongo - BrazzavilleSuisAod an OlifantInizi CookChileKamer" + + "ounSinaKolombiaEnez ClippertonCosta RicaKubaKab-GlasCuraçaoEnez Chri" + + "stmasKiprenezRepublik TchekAlamagnDiego GarciaDjiboutiDanmarkDominic" + + "aRepublik DominikanAljeriaCeuta ha MelillaEcuadorEstoniaEgiptSahara " + + "ar CʼhornôgEritreaSpagnEtiopiaUnaniezh EuropaFinlandFidjiInizi Falkl" + + "andMikroneziaInizi FaeroFrañsGabonRouantelezh-UnanetGrenadaJorjiaGwi" + + "ana cʼhallGwernenezGhanaJibraltarGreunlandGambiaGineaGwadeloupGinea " + + "ar CʼhehederGresInizi Georgia ar Su hag Inizi Sandwich ar SuGuatemal" + + "aGuamGinea-BissauGuyanaHong Kong RMD SinaInizi Heard ha McDonaldHond" + + "urasKroatiaHaitiHungariaInizi KanariezIndoneziaIwerzhonIsraelEnez Va" + + "navIndiaTiriad breizhveurat Meurvor IndezIraqIranIslandItaliaJerzene" + + "zJamaikaJordaniaJapanKenyaKyrgyzstanKambodjaKiribatiKomorezSaint Kit" + + "ts ha NevisKorea an NorzhKorea ar SuKoweitInizi CaymanKazakstanLaosL" + + "ibanSaint LuciaLiechtensteinSri LankaLiberiaLesothoLituaniaLuksembou" + + "rgLatviaLibiaMarokoMonacoMoldovaMontenegroSaint MartinMadagaskarIniz" + + "i MarshallMakedoniaMaliMyanmar (Birmania)MongoliaMacau RMD SinaInizi" + + " Mariana an NorzhMartinikMaouritaniaMontserratMaltaMorisMaldivezMala" + + "wiMecʼhikoMalaysiaMozambikNamibiaKaledonia NevezNigerEnez NorfolkNig" + + "eriaNicaraguaIzelvroioùNorvegiaNepalNauruNiueZeland-NevezOmanPanamáP" + + "erouPolinezia CʼhallPapoua Ginea-NevezFilipinezPakistanPoloniaSant-P" + + "êr-ha-MikelonEnez PitcairnPuerto RicoTiriadoù PalestinaPortugalPala" + + "uParaguayQatarOseania diabellAr ReünionRoumaniaSerbiaRusiaRwandaArab" + + "ia SaoudatInizi SalomonSechelezSoudanSvedenSingapourSaint-HelenaSlov" + + "eniaSvalbardSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinamSusou" + + "danSão Tomé ha PríncipeSalvadorSint MaartenSiriaSwazilandTristan da " + + "CunhaInizi Turks ha CaicosTchadDouaroù aostral FrañsTogoThailandTadj" + + "ikistanTokelauTimor-LesteTurkmenistanTuniziaTongaTurkiaTrinidad ha T" + + "obagoTuvaluTaiwanTanzaniaUkrainaOugandaInizi diabell ar Stadoù-Unane" + + "tStadoù-UnanetUruguayOuzbekistanVatikanSant Visant hag ar Grenadinez" + + "VenezuelaInizi Gwercʼh Breizh-VeurInizi Gwercʼh ar Stadoù-UnanetViêt" + + " NamVanuatuWallis ha FutunaSamoaKosovoYemenMayotteSuafrikaZambiaZimb" + + "abweRannved dianavBedAfrikaNorzhamerikaSuamerikaOseaniaAfrika ar Cʼh" + + "ornôgKreizamerikaAfrika ar ReterAfrika an NorzhAfrika ar CʼhreizAfri" + + "ka ar SuAmerikaoùAmerika an NorzhKaribAzia ar ReterAzia ar SuAzia ar" + + " GevredEuropa ar SuAostralaziaMelaneziaRannved MikroneziaPolineziaAz" + + "iaAzia ar CʼhreizAzia ar CʼhornôgEuropaEuropa ar ReterEuropa an Norz" + + "hEuropa ar CʼhornôgAmerika Latin", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0015, 0x002e, 0x0039, 0x004b, 0x0053, 0x005a, + 0x0061, 0x0067, 0x0071, 0x007d, 0x008b, 0x0092, 0x009b, 0x00a0, + 0x00ac, 0x00b7, 0x00cc, 0x00d4, 0x00de, 0x00e4, 0x00f0, 0x00f8, + 0x00ff, 0x0106, 0x010b, 0x011c, 0x0123, 0x0129, 0x0130, 0x0141, + 0x0147, 0x014e, 0x0155, 0x0160, 0x0168, 0x016f, 0x0175, 0x017b, + 0x0186, 0x0196, 0x01ab, 0x01be, 0x01c2, 0x01d0, 0x01da, 0x01df, + 0x01e7, 0x01eb, 0x01f3, 0x0202, 0x020c, 0x0210, 0x0218, 0x0220, + 0x022e, 0x0236, 0x0244, 0x024b, 0x0257, 0x025f, 0x0266, 0x026e, + // Entry 40 - 7F + 0x0280, 0x0287, 0x0297, 0x029e, 0x02a5, 0x02aa, 0x02be, 0x02c5, + 0x02ca, 0x02d1, 0x02e0, 0x02e7, 0x02ec, 0x02fa, 0x0304, 0x030f, + 0x0315, 0x031a, 0x032c, 0x0333, 0x0339, 0x0347, 0x0350, 0x0355, + 0x035e, 0x0367, 0x036d, 0x0372, 0x037b, 0x038e, 0x0392, 0x03be, + 0x03c7, 0x03cb, 0x03d7, 0x03dd, 0x03ef, 0x0406, 0x040e, 0x0415, + 0x041a, 0x0422, 0x0430, 0x0439, 0x0441, 0x0447, 0x0451, 0x0456, + 0x0477, 0x047b, 0x047f, 0x0485, 0x048b, 0x0493, 0x049a, 0x04a2, + 0x04a7, 0x04ac, 0x04b6, 0x04be, 0x04c6, 0x04cd, 0x04e1, 0x04ef, + // Entry 80 - BF + 0x04fa, 0x0500, 0x050c, 0x0515, 0x0519, 0x051e, 0x0529, 0x0536, + 0x053f, 0x0546, 0x054d, 0x0555, 0x0560, 0x0566, 0x056b, 0x0571, + 0x0577, 0x057e, 0x0588, 0x0594, 0x059e, 0x05ac, 0x05b5, 0x05b9, + 0x05cb, 0x05d3, 0x05e1, 0x05f7, 0x05ff, 0x060a, 0x0614, 0x0619, + 0x061e, 0x0626, 0x062c, 0x0635, 0x063d, 0x0645, 0x064c, 0x065b, + 0x0660, 0x066c, 0x0673, 0x067c, 0x0687, 0x068f, 0x0694, 0x0699, + 0x069d, 0x06a9, 0x06ad, 0x06b4, 0x06b9, 0x06ca, 0x06dc, 0x06e5, + 0x06ed, 0x06f4, 0x0708, 0x0715, 0x0720, 0x0733, 0x073b, 0x0740, + // Entry C0 - FF + 0x0748, 0x074d, 0x075c, 0x0767, 0x076f, 0x0775, 0x077a, 0x0780, + 0x078e, 0x079b, 0x07a3, 0x07a9, 0x07af, 0x07b8, 0x07c4, 0x07cc, + 0x07d4, 0x07dc, 0x07e8, 0x07f2, 0x07f9, 0x0800, 0x0807, 0x080f, + 0x0826, 0x082e, 0x083a, 0x083f, 0x0848, 0x0858, 0x086d, 0x0872, + 0x0889, 0x088d, 0x0895, 0x08a0, 0x08a7, 0x08b2, 0x08be, 0x08c5, + 0x08ca, 0x08d0, 0x08e2, 0x08e8, 0x08ee, 0x08f6, 0x08fd, 0x0904, + 0x0923, 0x0931, 0x0938, 0x0943, 0x094a, 0x0967, 0x0970, 0x098a, + 0x09aa, 0x09b3, 0x09ba, 0x09ca, 0x09cf, 0x09d5, 0x09da, 0x09e1, + // Entry 100 - 13F + 0x09e9, 0x09ef, 0x09f7, 0x0a05, 0x0a08, 0x0a0e, 0x0a1a, 0x0a23, + 0x0a2a, 0x0a3e, 0x0a4a, 0x0a59, 0x0a68, 0x0a7a, 0x0a86, 0x0a90, + 0x0aa0, 0x0aa5, 0x0ab2, 0x0abc, 0x0aca, 0x0ad6, 0x0ae1, 0x0aea, + 0x0afc, 0x0b05, 0x0b09, 0x0b19, 0x0b2b, 0x0b31, 0x0b40, 0x0b4f, + 0x0b63, 0x0b70, + }, + }, + { // brx + "à¤à¤¨à¥à¤¡à¥‹à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब अमीरातअफ़ग़ानिसà¥à¤¤à¤¾à¤¨à¤à¤¨à¥à¤Ÿà¤¿à¤—à¥à¤† à¤à¤µà¤‚ बारबूडाà¤à¤‚गीलाअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯" + + "ाआरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤…ंगोलाअंटारà¥à¤•à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤£à¥à¤Ÿà¤¿à¤¨à¤¾à¤…मरिकी समोआऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²" + + "ियाअरूबाआलाà¤à¤¡ दà¥à¤µà¥€à¤ªà¤…ज़रबैजानबोसनिया हरà¥à¤œà¤¼à¥‡à¤—ोविनाबारबाडोसबंगलादेशबे" + + "लà¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फासोबलà¥à¤—ैरियाबहरैनबà¥à¤°à¥à¤‚डीबेनेà¤à¤¸à¥‡à¤ बारà¥à¤¥à¥‡à¤²à¥‡à¤®à¥€à¤¬à¤°à¤®à¥‚डाब" + + "à¥à¤°à¥‚नइबोलीवियाबà¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤­à¥‚टानबà¥à¤µà¥‡ दà¥à¤µà¥€à¤ªà¤¬à¥‹à¤¤à¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबेलिज़कै" + + "नाडाकोकोस दà¥à¤µà¥€à¤ªà¤•à¥‰à¤‚गो किनशासासेंटà¥à¤°à¤² अफà¥à¤°à¥€à¤•à¤¨ रिपबà¥à¤²à¤¿à¤•à¤•à¥‰à¤‚गो बà¥à¤°à¤¾à¤œà¤¼à¥à¤œ" + + "़ावीलसà¥à¤µà¤¿à¤¤à¥à¤œà¤¼à¤°à¤²à¥ˆà¤‚डआईवरी कोसà¥à¤Ÿà¤•à¥à¤• दà¥à¤µà¥€à¤ªà¤šà¤¿à¤²à¥€à¤•à¥‹à¤®à¥‡à¤°à¤¾à¤¨à¤šà¥€à¤¨à¤•à¥‹à¤²à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤•à¥‹à¤¸à¥à¤Ÿ" + + "ारीकाकà¥à¤¯à¥‚बाकैप वेरà¥à¤¦à¥‡à¤•à¥à¤°à¤¿à¤¸à¥à¤®à¤¸ दà¥à¤µà¥€à¤ªà¤¸à¤¾à¤‡à¤ªà¥à¤°à¤¸à¤šà¥‡à¤• गणराजà¥à¤¯à¤œà¤°à¥à¤®à¤¨à¥€à¤¦à¥à¤œà¤¿à¤¬à¥‚त" + + "ीडेनमारà¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ गणराजà¥à¤¯à¤…लà¥à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤à¤•à¥à¤µà¤¾à¤¡à¥‹à¤°à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¿à¤¸à¥à¤°à¤ªà¤¶" + + "à¥à¤šà¤¿à¤®à¥€ सहाराà¤à¤°à¤¿à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤“पियायूरोपीय संघफिनलैंडफिजीफ़ॉलà¥à¤•à¤²à¥ˆà¤‚ड " + + "दà¥à¤µà¥€à¤ªà¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¤°à¥‹ दà¥à¤µà¥€à¤ªà¤«à¥à¤°à¤¾à¤à¤¸à¤—ैबॉनबà¥à¤°à¤¿à¤¤à¤¨à¤—à¥à¤°à¥‡à¤¨à¤¡à¤¾à¤œà¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¤¾à¤à¤¸à¥€" + + "सी गिआनागेरà¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤°à¤—à¥à¤°à¥€à¤¨à¤²à¥ˆà¤£à¥à¤¡à¤—ामà¥à¤¬à¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾à¤¦à¤²à¥à¤ªà¤‡à¤•à¥à¤µà¥‡à¤Ÿà¥‹" + + "रियल गिनीगà¥à¤°à¥€à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जोरà¥à¤œà¤¿à¤¯à¤¾ à¤à¤µà¤‚ दकà¥à¤·à¤¿à¤£ सैंडवीच दà¥à¤µà¥€à¤ªà¤—ोतेदालागà¥à¤†à¤®" + + "गीनी-बिसाउगà¥à¤¯à¤¾à¤¨à¤¾à¤¹à¤¾à¤à¤—काà¤à¤— विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤° चीनहरà¥à¤¡ दà¥à¤µà¥€à¤ª à¤à¤µà¤‚" + + " मैकडोनॉलà¥à¤¡ दà¥à¤µà¥€à¤ªà¤¹à¥Œà¤£à¥à¤¡à¥‚रासकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¤¾à¤‡à¤¤à¥€à¤¹à¤‚गरीइंडोनेशियाआयरलैंडइसà¥à¤°à¤¾à¤‡" + + "लआईल ऑफ़ मैनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंद महासागरिय कà¥à¤·à¥‡à¤¤à¥à¤°à¤ˆà¤°à¤¾à¤•à¤¼à¤ˆà¤°à¤¾à¤¨à¤†à¤‡à¤¸à¤²à¥ˆà¤‚डइटली" + + "जरà¥à¤¸à¥€à¤œà¤®à¤¾à¤‡à¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िज़कमà¥à¤¬à¥‹à¤¡à¤¿à¤¯à¤¾à¤•à¤¿à¤°à¤¿à¤¬à¤¾à¤¤à¥€à¤•à¥‹à¤®à¥‹à¤°à¥‹à¤œà¤¼à¤¸à¥‡à¤‚ट " + + "किटà¥à¤¸ à¤à¤µà¤‚ नेविसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥ˆà¤¤à¤•à¥‡à¤®à¥ˆà¤¨ दà¥à¤µà¥€à¤ªà¤•à¤œà¤¼à¤¾à¤–सà¥à¤¤à¤¾à¤¨" + + "लाओसलेबनोनसेंट लूसियालिकà¥à¤Ÿà¥ˆà¤¨à¤¸à¥à¤Ÿà¤¾à¤ˆà¤¨à¤¶à¥à¤°à¥€ लà¤à¤•à¤¾à¤²à¤¾à¤‡à¤¬à¥‡à¤°à¤¿à¤¯à¤¾à¤²à¤¸à¥‹à¤¥à¥‹à¤²à¤¿à¤¥à¥à¤†à¤¨à¤¿à¤¯à¤¾" + + "लकà¥à¤¸à¤®à¤¬à¤°à¥à¤—लाटà¥à¤µà¥€à¤¯à¤¾à¤²à¥€à¤¬à¤¿à¤¯à¤¾à¤®à¥‹à¤°à¥‹à¤•à¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¥‹à¤²à¥à¤¡à¥‡à¤µà¤¿à¤¯à¤¾à¤®à¥‹à¤‚टेनेगà¥à¤°à¥‹à¤¸à¥‡à¤ मारà¥" + + "टेà¤à¤®à¤¦à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² दà¥à¤µà¥€à¤ªà¤®à¥ˆà¤¸à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¾à¤²à¥€à¤®à¥à¤¯à¤¾à¤¨à¤®à¤¾à¤°à¤®à¤‚गोलियामकाओ विशेष प" + + "à¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤° (चीन)उतà¥à¤¤à¤°à¥€ मारियाना दà¥à¤µà¥€à¤ªà¤®à¤¾à¤°à¥à¤Ÿà¥€à¤¨à¤¿à¤•à¤®à¥‰à¤°à¤¿à¤Ÿà¥‡à¤¨à¤¿à¤¯à¤¾à¤®à¥‰à¤‚स" + + "ेरामालà¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µà¤®à¤²à¤¾à¤µà¥€à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¼à¤¾à¤®à¥à¤¬à¤¿à¤•à¤¨à¤¾à¤®à¥€à¤¬à¤¿à¤¯à¤¾à¤¨à¥à¤¯à¥‚ कैल" + + "ेडोनियानाइजेरनॉरफ़ॉक दà¥à¤µà¥€à¤ªà¤¨à¤¾à¤‡à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤†à¤¨à¥‡à¤¦à¤°à¤²à¥ˆà¤£à¥à¤¡à¤¨à¥‰à¤°à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾" + + "उरूनीयूà¤à¤¨à¥à¤¯à¥‚ज़ीलैंडओमानपनामापेरूफà¥à¤°à¤¾à¤à¤¸à¥€à¤¸à¥€ पॉलिनीशियापापà¥à¤† नà¥à¤¯à¥‚ गिन" + + "ीफिलीपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¥ˆà¤£à¥à¤¡à¤¸à¥‡à¤ पीà¤à¤° à¤à¤µà¤‚ मि\u200dकेलॉंपिटकेरà¥à¤¨à¤ªà¥à¤à¤°à¥à¤Ÿ" + + "ो रीकोफ़िलिसà¥à¤¤à¥€à¤¨à¤ªà¥à¤°à¥à¤¤à¤—ालपलाऊपारागà¥à¤à¤•à¤¼à¤¤à¤¾à¤°à¤¬à¤¾à¤¹à¤°à¤¿à¤¯ ओशेआनियारेयूनियॉंरो" + + "मानियासरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरूआणà¥à¤¡à¤¾à¤¸à¤Šà¤¦à¥€ अरबसॉलोमन दà¥à¤µà¥€à¤ªà¤¸à¥‡à¤¶à¥‡à¤²à¥à¤¸à¤¸à¥‚दानसà¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गा" + + "पà¥à¤°à¤¸à¥‡à¤£à¥\u200dट हेलेनासà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¥à¤¬à¤¾à¤°à¥à¤¡ à¤à¤µà¤‚ यान मायेनसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¿à¤¯à¤¾" + + "सियेरा लेओनसैन मरीनोसेनेगालसोमालियासà¥à¤°à¤¿à¤¨à¤¾à¤®à¤¸à¤¾à¤‰à¤-तोमे à¤à¤µà¤‚ पà¥à¤°à¤¿à¤‚सिपà¤à¤²" + + " सालà¥à¤µà¤¾à¤¡à¥‹à¤°à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¼à¥€à¤²à¥ˆà¤‚डतà¥à¤°à¥à¤•à¥€ à¤à¤µà¤‚ कैकोज़ दà¥à¤µà¥€à¤ªà¤šà¤¾à¤¡à¤«à¥à¤°à¤¾à¤à¤¸à¥€à¤¸à¥€ उतà¥à¤¤à¤°" + + "ी कà¥à¤·à¥‡à¤¤à¥à¤°à¥‹à¤‚टोगोथाइलैणà¥à¤¡à¤¤à¤¾à¤œà¤¿à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥‹à¤•à¥‡à¤²à¥Œà¤ªà¥‚रà¥à¤µà¥€ तिमोरतà¥à¤°à¥à¤•à¤®à¥‡à¤¨à¥€à¤¸à¥à¤¤à¤¾à¤¨" + + "तà¥à¤¯à¥à¤¨à¤¿à¤¶à¤¿à¤¯à¤¾à¤Ÿà¥‰à¤‚गातà¥à¤°à¥à¤•à¥€à¤Ÿà¥à¤°à¤¿à¤¨à¤¿à¤¡à¤¾à¤¡ à¤à¤µà¤‚ टोबैगोतà¥à¤µà¤¾à¤²à¥à¤¤à¤¾à¤‡à¤µà¤¾à¤¨à¤¤à¤‚ज़ानियायूकà¥" + + "रेनयà¥à¤—ाà¤à¤¡à¤¾à¤¯à¥à¤¨à¤¾à¤‡à¤Ÿà¥‡à¤¡ सà¥à¤Ÿà¥‡à¤Ÿà¥à¤¸ के छोटे बाहरिय दà¥à¤µà¥€à¤ªà¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ अमरिक" + + "ायà¥à¤°à¥‚गà¥à¤à¤‰à¤œà¤¼à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤µà¥ˆà¤Ÿà¤¿à¤•à¤¨à¤¸à¥‡à¤‚ट विंसंट à¤à¤µà¤‚ दी गà¥à¤°à¤¨à¤¾à¤¡à¥€à¤¨à¥à¤¸à¥à¤µà¥‡à¤¨à¥‡à¤œà¤¼à¥à¤à¤²à¤¾" + + "बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वरà¥à¤œà¥€à¤¨ आईलंडà¥à¤¸à¤¯à¥.à¤à¤¸. वरà¥à¤œà¥€à¤¨ आईलंडà¥à¤¸à¤µà¤¿à¤¯à¤¤à¤¨à¤¾à¤®à¤µà¤¾à¤¨à¤¾à¤Šà¤Ÿà¥à¤µà¥‰à¤²à¥‡à¤¸ à¤à¤µà¤‚" + + " फ़à¥à¤¯à¥‚चूनासमोआयमनमैयौटदकà¥à¤·à¤¿à¤£ अफà¥à¤°à¥€à¤•à¤¾à¤œà¤¼à¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤œà¤¼à¥€à¤®à¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…जà¥à¤žà¤¾à¤¤ या अव" + + "ैध पà¥à¤°à¤¦à¥‡à¤¶à¤¦à¥à¤¨à¤¿à¤¯à¤¾à¤…फà¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमरिकादकà¥à¤·à¤¿à¤£ अमरिकाओशेआनियापशà¥à¤šà¤¿à¤®à¥€ अफà¥" + + "रीकामधà¥à¤¯ अमरिकापूरà¥à¤µà¥€ अफà¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफà¥à¤°à¥€à¤•à¤¾à¤®à¤§à¥à¤¯ अफà¥à¤°à¥€à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफà¥" + + "रीकाअमरिकाज़à¥à¤‰à¤¤à¥à¤¤à¤°à¥€ अमरिकाकैरिबियनपूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£-" + + "पूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ यूरोपऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾ à¤à¤µà¤‚ नà¥à¤¯à¥‚जीलैंडमेलीनेशियामाईकà¥" + + "रोनेशियापोलीनेशियाà¤à¤¶à¤¿à¤¯à¤¾à¤®à¤§à¥à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥‚रोपपूरà¥à¤µà¥€ यूरोपउतà¥" + + "तरी यूरोपपशà¥à¤šà¤¿à¤®à¥€ यूरोपà¥à¤²à¥ˆà¤Ÿà¤¿à¤¨ अमरिका à¤à¤µà¤‚ करीबी", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0015, 0x0047, 0x006e, 0x00a6, 0x00b8, 0x00d3, + 0x00ee, 0x0100, 0x0121, 0x0142, 0x0161, 0x017c, 0x019d, 0x01ac, + 0x01cb, 0x01e6, 0x0220, 0x0238, 0x0250, 0x0268, 0x028d, 0x02a8, + 0x02b7, 0x02cc, 0x02db, 0x0303, 0x0315, 0x0327, 0x033f, 0x033f, + 0x0357, 0x0366, 0x0375, 0x0391, 0x03af, 0x03c4, 0x03d6, 0x03e8, + 0x0407, 0x042c, 0x0470, 0x04a7, 0x04ce, 0x04ed, 0x0506, 0x0512, + 0x0527, 0x0530, 0x054b, 0x054b, 0x0569, 0x057b, 0x0597, 0x0597, + 0x05bf, 0x05d4, 0x05f3, 0x0605, 0x0605, 0x061d, 0x0635, 0x064d, + // Entry 40 - 7F + 0x067b, 0x0696, 0x0696, 0x06ae, 0x06c9, 0x06d8, 0x06fd, 0x0718, + 0x0727, 0x073f, 0x075e, 0x0773, 0x077f, 0x07ad, 0x07d4, 0x07ed, + 0x07ff, 0x080e, 0x0820, 0x0835, 0x084d, 0x0878, 0x088d, 0x0899, + 0x08b7, 0x08d5, 0x08ed, 0x08f9, 0x0911, 0x093f, 0x094e, 0x09bc, + 0x09d4, 0x09e0, 0x09fc, 0x0a0e, 0x0a72, 0x0ac7, 0x0ae2, 0x0afd, + 0x0b0c, 0x0b1b, 0x0b1b, 0x0b39, 0x0b4e, 0x0b63, 0x0b80, 0x0b8c, + 0x0be0, 0x0bef, 0x0bfb, 0x0c10, 0x0c1c, 0x0c2b, 0x0c3d, 0x0c4f, + 0x0c5e, 0x0c70, 0x0c88, 0x0ca3, 0x0cbb, 0x0cd3, 0x0d09, 0x0d2b, + // Entry 80 - BF + 0x0d50, 0x0d5f, 0x0d7e, 0x0d9c, 0x0da8, 0x0dba, 0x0dd9, 0x0e00, + 0x0e19, 0x0e34, 0x0e43, 0x0e5e, 0x0e79, 0x0e91, 0x0ea3, 0x0ebb, + 0x0ecd, 0x0eeb, 0x0f0c, 0x0f2b, 0x0f46, 0x0f68, 0x0f86, 0x0f92, + 0x0faa, 0x0fc2, 0x101c, 0x1057, 0x1072, 0x1090, 0x10a5, 0x10b7, + 0x10c6, 0x10d8, 0x10e7, 0x10ff, 0x1114, 0x1132, 0x114a, 0x1175, + 0x1187, 0x11ac, 0x11c7, 0x11e2, 0x11fd, 0x120f, 0x121e, 0x122d, + 0x123c, 0x125d, 0x1269, 0x1278, 0x1284, 0x12be, 0x12e7, 0x1302, + 0x131d, 0x1332, 0x136b, 0x1383, 0x13a5, 0x13c3, 0x13db, 0x13e7, + // Entry C0 - FF + 0x13fc, 0x140b, 0x1436, 0x1451, 0x1469, 0x147e, 0x1487, 0x149c, + 0x14b2, 0x14d4, 0x14e9, 0x14f8, 0x150a, 0x1522, 0x1547, 0x1565, + 0x15aa, 0x15c8, 0x15e7, 0x1600, 0x1615, 0x162d, 0x1642, 0x1642, + 0x167e, 0x16a0, 0x16a0, 0x16b2, 0x16d3, 0x16d3, 0x1712, 0x171b, + 0x1765, 0x1771, 0x1789, 0x17aa, 0x17bc, 0x17de, 0x1808, 0x1826, + 0x1835, 0x1847, 0x187f, 0x1891, 0x18a3, 0x18be, 0x18d3, 0x18e8, + 0x194d, 0x1985, 0x199a, 0x19be, 0x19d0, 0x1a22, 0x1a40, 0x1a7e, + 0x1ab5, 0x1aca, 0x1adf, 0x1b14, 0x1b20, 0x1b20, 0x1b29, 0x1b38, + // Entry 100 - 13F + 0x1b60, 0x1b7b, 0x1b9c, 0x1bd5, 0x1be7, 0x1bfc, 0x1c1e, 0x1c43, + 0x1c5b, 0x1c86, 0x1ca5, 0x1ccd, 0x1cf5, 0x1d17, 0x1d42, 0x1d5d, + 0x1d82, 0x1d9a, 0x1dbc, 0x1de1, 0x1e16, 0x1e3b, 0x1e85, 0x1ea3, + 0x1eca, 0x1ee8, 0x1ef7, 0x1f13, 0x1f38, 0x1f47, 0x1f69, 0x1f8b, + 0x1fb3, 0x1fef, + }, + }, + { // bs + "Ostrvo AsensionAndoraUjedinjeni Arapski EmiratiAfganistanAntigva i Barbu" + + "daAngvilaAlbanijaJermenijaAngolaAntarktikaArgentinaAmeriÄka SamoaAus" + + "trijaAustralijaArubaAlandska OstrvaAzerbejdžanBosna i HercegovinaBar" + + "badosBangladeÅ¡BelgijaBurkina FasoBugarskaBahreinBurundiBeninSveti Ba" + + "rtolomejBermudaBrunejBolivijaKaripska HolandijaBrazilBahamiButanBuve" + + " OstrvaBocvanaBjelorusijaBelizeKanadaKokosova (Kilingova) ostrvaDemo" + + "kratska Republika KongoCentralnoafriÄka RepublikaKongoÅ vicarskaObala" + + " SlonovaÄeKukova OstrvaÄŒileKamerunKinaKolumbijaOstrvo KlipertonKosta" + + "rikaKubaKape VerdeKurasaoBožićna OstrvaKiparÄŒeÅ¡kaNjemaÄkaDijego Gars" + + "ijaDžibutiDanskaDominikaDominikanska RepublikaAlžirSeuta i MeliljaEk" + + "vadorEstonijaEgipatZapadna SaharaEritrejaÅ panijaEtiopijaEvropska Uni" + + "jaFinskaFidžiFolklandska OstrvaMikronezijaFarska OstrvaFrancuskaGabo" + + "nVelika BritanijaGrenadaGruzijaFrancuska GvajanaGernziGanaGibraltarG" + + "renlandGambijaGvinejaGvadelupeEkvatorijalna GvinejaGrÄkaJužna Džordž" + + "ija i Južna SendviÄ OstrvaGvatemalaGuamGvineja-BisaoGvajanaHong Kong" + + " (S. A. R. Kina)Heard i arhipelag McDonaldHondurasHrvatskaHaitiMaÄ‘ar" + + "skaKanarska ostrvaIndonezijaIrskaIzraelOstrvo ManIndijaBritanska Ter" + + "ritorija u Indijskom OkeanuIrakIranIslandItalijaDžersiJamajkaJordanJ" + + "apanKenijaKirgizstanKambodžaKiribatiKomorska OstrvaSent Kits i Nevis" + + "Sjeverna KorejaJužna KorejaKuvajtKajmanska OstrvaKazahstanLaosLibanS" + + "veta LucijaLihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvanijaLuksemburgLeto" + + "nijaLibijaMarokoMonakoMoldavijaCrna GoraSv. MartinMadagaskarMarÅ¡alsk" + + "a OstrvaMakedonijaMaliMijanmarMongolijaMakao (S. A. R. Kina)Sjeverna" + + " Marijanska OstrvaMartinikMauritanijaMonseratMaltaMauriciusMaldiviMa" + + "laviMeksikoMalezijaMozambikNamibijaNova KaledonijaNigerNorfolk Ostrv" + + "oNigerijaNikaragvaHolandijaNorveÅ¡kaNepalNauruNiueNovi ZelandOmanPana" + + "maPeruFrancuska PolinezijaPapua Nova GvinejaFilipiniPakistanPoljskaS" + + "veti Petar i MikelonPitkernPorto RikoPalestinska TeritorijaPortugalP" + + "alauParagvajKatarOstala OkeanijaRejunionRumunijaSrbijaRusijaRuandaSa" + + "udijska ArabijaSolomonska OstrvaSejÅ¡eliSudanÅ vedskaSingapurSveta Hel" + + "enaSlovenijaSvalbard i Jan MajenSlovaÄkaSijera LeoneSan MarinoSenega" + + "lSomalijaSurinamJužni SudanSao Tome i PrincipeSalvadorSint MartenSir" + + "ijaSvazilendTristan da KunjaOstrva Turks i CaicosÄŒadFrancuske Južne " + + "TeritorijeTogoTajlandTadžikistanTokelauTimor LesteTurkmenistanTunisT" + + "ongaTurskaTrinidad i TobagoTuvaluTajvanTanzanijaUkrajinaUgandaUdalje" + + "na ostrva SADSjedinjene AmeriÄke DržaveUrugvajUzbekistanVatikanSveti" + + " Vincent i GrenadiniVenecuelaBritanska DjeviÄanska OstrvaDjeviÄanska" + + " Ostrva SADVijetnamVanuatuWallis i FutunaSamoaKosovoJemenMajoteJužno" + + "afriÄka RepublikaZambijaZimbabveNepoznata oblastSvijetAfrikaSjeverno" + + "ameriÄki kontinentJužna AmerikaOkeanijaZapadna AfrikaCentralna Ameri" + + "kaIstoÄna AfrikaSjeverna AfrikaCentralna AfrikaJužna AfrikaAmerikaSj" + + "everna AmerikaKaribiIstoÄna AzijaJužna AzijaJugoistoÄna AzijaJužna E" + + "vropaAustralazijaMelanezijaMikronezijski RegionPolinezijaAzijaCentra" + + "lna AzijaZapadna AzijaEvropaIstoÄna EvropaSjeverna EvropaZapadna Evr" + + "opaLatinska Amerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0015, 0x002f, 0x0039, 0x004a, 0x0051, 0x0059, + 0x0062, 0x0068, 0x0072, 0x007b, 0x008a, 0x0092, 0x009c, 0x00a1, + 0x00b0, 0x00bc, 0x00cf, 0x00d7, 0x00e1, 0x00e8, 0x00f4, 0x00fc, + 0x0103, 0x010a, 0x010f, 0x011f, 0x0126, 0x012c, 0x0134, 0x0146, + 0x014c, 0x0152, 0x0157, 0x0162, 0x0169, 0x0174, 0x017a, 0x0180, + 0x019b, 0x01b6, 0x01d1, 0x01d6, 0x01e0, 0x01f0, 0x01fd, 0x0202, + 0x0209, 0x020d, 0x0216, 0x0226, 0x022f, 0x0233, 0x023d, 0x0244, + 0x0254, 0x0259, 0x0260, 0x0269, 0x0277, 0x027f, 0x0285, 0x028d, + // Entry 40 - 7F + 0x02a3, 0x02a9, 0x02b8, 0x02bf, 0x02c7, 0x02cd, 0x02db, 0x02e3, + 0x02eb, 0x02f3, 0x0301, 0x0307, 0x030d, 0x031f, 0x032a, 0x0337, + 0x0340, 0x0345, 0x0355, 0x035c, 0x0363, 0x0374, 0x037a, 0x037e, + 0x0387, 0x038f, 0x0396, 0x039d, 0x03a6, 0x03bb, 0x03c1, 0x03ec, + 0x03f5, 0x03f9, 0x0406, 0x040d, 0x0426, 0x0440, 0x0448, 0x0450, + 0x0455, 0x045e, 0x046d, 0x0477, 0x047c, 0x0482, 0x048c, 0x0492, + 0x04ba, 0x04be, 0x04c2, 0x04c8, 0x04cf, 0x04d6, 0x04dd, 0x04e3, + 0x04e8, 0x04ee, 0x04f8, 0x0501, 0x0509, 0x0518, 0x0529, 0x0538, + // Entry 80 - BF + 0x0545, 0x054b, 0x055b, 0x0564, 0x0568, 0x056d, 0x0579, 0x0585, + 0x058f, 0x0597, 0x059d, 0x05a6, 0x05b0, 0x05b8, 0x05be, 0x05c4, + 0x05ca, 0x05d3, 0x05dc, 0x05e6, 0x05f0, 0x0601, 0x060b, 0x060f, + 0x0617, 0x0620, 0x0635, 0x064f, 0x0657, 0x0662, 0x066a, 0x066f, + 0x0678, 0x067f, 0x0685, 0x068c, 0x0694, 0x069c, 0x06a4, 0x06b3, + 0x06b8, 0x06c6, 0x06ce, 0x06d7, 0x06e0, 0x06e9, 0x06ee, 0x06f3, + 0x06f7, 0x0702, 0x0706, 0x070c, 0x0710, 0x0724, 0x0736, 0x073e, + 0x0746, 0x074d, 0x0762, 0x0769, 0x0773, 0x0789, 0x0791, 0x0796, + // Entry C0 - FF + 0x079e, 0x07a3, 0x07b2, 0x07ba, 0x07c2, 0x07c8, 0x07ce, 0x07d4, + 0x07e5, 0x07f6, 0x07fe, 0x0803, 0x080b, 0x0813, 0x081f, 0x0828, + 0x083c, 0x0845, 0x0851, 0x085b, 0x0862, 0x086a, 0x0871, 0x087d, + 0x0890, 0x0898, 0x08a3, 0x08a9, 0x08b2, 0x08c2, 0x08d7, 0x08db, + 0x08f6, 0x08fa, 0x0901, 0x090d, 0x0914, 0x091f, 0x092b, 0x0930, + 0x0935, 0x093b, 0x094c, 0x0952, 0x0958, 0x0961, 0x0969, 0x096f, + 0x0982, 0x099e, 0x09a5, 0x09af, 0x09b6, 0x09cf, 0x09d8, 0x09f5, + 0x0a0c, 0x0a14, 0x0a1b, 0x0a2a, 0x0a2f, 0x0a35, 0x0a3a, 0x0a40, + // Entry 100 - 13F + 0x0a58, 0x0a5f, 0x0a67, 0x0a77, 0x0a7d, 0x0a83, 0x0a9e, 0x0aac, + 0x0ab4, 0x0ac2, 0x0ad3, 0x0ae2, 0x0af1, 0x0b01, 0x0b0e, 0x0b15, + 0x0b25, 0x0b2b, 0x0b39, 0x0b45, 0x0b57, 0x0b64, 0x0b70, 0x0b7a, + 0x0b8e, 0x0b98, 0x0b9d, 0x0bac, 0x0bb9, 0x0bbf, 0x0bce, 0x0bdd, + 0x0beb, 0x0bfb, + }, + }, + { // bs-Cyrl + "ОÑтрво ÐÑенÑионÐндораУједињени ÐрапÑки ЕмиратиÐвганиÑтанÐнтигва и Барбуд" + + "аÐнгвилаÐлбанијаÐрменијаÐнголаÐнтарктикÐргентинаÐмеричка СамоаÐуÑÑ‚Ñ€" + + "ијаÐуÑтралијаÐрубаÐландÑка оÑтрваÐзербејџанБоÑна и ХерцеговинаБарба" + + "доÑБангладешБелгијаБуркина ФаÑоБугарÑкаБахреинБурундиБенинСвети Бар" + + "толомејБермудаБрунејБоливијаБразилБахамиБутанБуве ОÑтрваБоцванаБело" + + "руÑÐ¸Ñ˜Ð°Ð‘ÐµÐ»Ð¸Ð·ÐµÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Келинг) ОÑтрваКонго - КиншаÑаЦентрално ÐÑ„Ñ€" + + "ичка РепубликаКонго - БразавилШвајцарÑкаОбала СлоновачеКукова ОÑтрв" + + "аЧилеКамерунКинаКолумбијаОÑтрво КлипертонКоÑтарикаКубаКапе ВердеБож" + + "ићна оÑтрваКипарЧешкаÐемачкаДијего ГарÑијаÐибутиДанÑкаДоминикаДомин" + + "иканÑка РепубликаÐлжирСеута и МелиљаЕквадорЕÑтонијаЕгипатЗападна Са" + + "хараЕритрејаШпанијаЕтиопијаЕвропÑка УнијаФинÑкаФиџиФокландÑка оÑтрв" + + "аМикронезијаФарÑка ОÑтрваФранцуÑкаГабонВелика БританијаГренадаГрузи" + + "јаФранцуÑка ГвајанаГурнÑиГанаГибралтарГренландГамбијаГвинејаГваделу" + + "пеЕкваторијална ГвинејаГрчкаЈужна Ðорџија и Јужна Сендвич ОÑтрваГва" + + "темалаГуамГвинеја-БиÑаоГвајанаХонг Конг С. Ð. Р. КинаХерд и Мекдона" + + "лд ОÑтрваХондураÑХрватÑкаХаитиМађарÑкаКанарÑка оÑтрваИндонезијаИрÑк" + + "аИзраелОÑтрво МанИндијаБританÑка територија у ИндијÑком океануИракИ" + + "ранИÑландИталијаÐерÑиЈамајкаЈорданЈапанКенијаКиргизÑтанКамбоџаКириб" + + "атиКоморÑка ОÑтрваСент ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑСеверна КорејаЈужна КорејаКувајт" + + "КајманÑка ОÑтрваКазахÑтанЛаоÑЛибанСент ЛуцијаЛихтенштајнШри ЛанкаЛи" + + "беријаЛеÑотоЛитванијаЛукÑембургЛетонијаЛибијаМарокоМонакоМолдавијаЦ" + + "рна ГораСент МартинМадагаÑкарМаршалÑка ОÑтрваМакедонијаМалиМијанмар" + + " (Бурма)МонголијаМакао С. Ð. Р. КинаСеверна МаријанÑка ОÑтрваМартини" + + "кМауританијаМонÑератМалтаМаурицијуÑМалдивиМалавиМекÑикоМалезијаМоза" + + "мбикÐамибијаÐова КаледонијаÐигерÐорфолк ОÑтрвоÐигеријаÐикарагваХола" + + "ндијаÐорвешкаÐепалÐауруÐиуеÐови ЗеландОманПанамаПеруФранцуÑка Полин" + + "езијаПапуа Ðова ГвинејаФилипиниПакиÑтанПољÑкаСен Пјер и МикелонПитк" + + "ернПорто РикоПалеÑтинÑке територијеПортугалијаПалауПарагвајКатарОÑÑ‚" + + "ала океанијаРеинионРумунијаСрбијаРуÑијаРуандаСаудијÑка ÐрабијаСолом" + + "онÑка ОÑтрваСејшелиСуданШведÑкаСингапурСвета ЈеленаСловенијаСвалбар" + + "д и Јанмајен ОÑтрваСловачкаСијера ЛеонеСан МариноСенегалСомалијаСур" + + "инамСао Томе и ПринципеСалвадорСиријаСвазилендТриÑтан да ÐšÑƒÑšÐ°Ð¢ÑƒÑ€ÐºÑ " + + "и ÐšÐ°Ñ˜ÐºÐ¾Ñ ÐžÑтрваЧадФранцуÑке Јужне ТериторијеТогоТајландТаџикиÑтанТо" + + "келауИÑточни ТиморТуркмениÑтанТуниÑТонгаТурÑкаТринидад и ТобагоТува" + + "луТајванТанзанијаУкрајинаУгандаМања удаљена оÑтрва СÐДСједињене Ðме" + + "ричке ДржавеУругвајУзбекиÑтанВатиканСент ВинÑент и ГренадиниВенецуе" + + "лаБританÑка ДевичанÑка ОÑтрваС.Ð.Д. ДевичанÑка ОÑтрваВијетнамВануат" + + "ÑƒÐ’Ð°Ð»Ð¸Ñ Ð¸ Футуна ОÑтрваСамоаЈеменМајотеЈужноафричка РепубликаЗамбија" + + "ЗимбабвеÐепозната или неважећа облаÑтСветÐфрикаСеверноамерички конт" + + "инентЈужна ÐмерикаОкеанијаЗападна ÐфрикаЦентрална ÐмерикаИÑточна ÐÑ„" + + "рикаСеверна ÐфрикаЦентрална ÐфрикаЈужна ÐфрикаÐмерикеСеверна Ðмерик" + + "аКарибиИÑточна ÐзијаЈужна ÐзијаЈугоиÑточна ÐзијаЈужна ЕвропаÐуÑтрал" + + "ија и Ðови ЗеландМеланезијаМикронезијÑки регионПолинезијаÐзијаЦентр" + + "ална ÐзијаЗападна ÐзијаЕвропаИÑточна ЕвропаСеверна ЕвропаЗападна Ев" + + "ропаЛатинÑка Ðмерика", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, + 0x00bb, 0x00c7, 0x00d9, 0x00eb, 0x0106, 0x0116, 0x012a, 0x0134, + 0x0151, 0x0165, 0x0189, 0x0199, 0x01ab, 0x01b9, 0x01d0, 0x01e0, + 0x01ee, 0x01fc, 0x0206, 0x0225, 0x0233, 0x023f, 0x024f, 0x024f, + 0x025b, 0x0267, 0x0271, 0x0286, 0x0294, 0x02a8, 0x02b4, 0x02c0, + 0x02e6, 0x0301, 0x0335, 0x0352, 0x0366, 0x0383, 0x039c, 0x03a4, + 0x03b2, 0x03ba, 0x03cc, 0x03eb, 0x03fd, 0x0405, 0x0418, 0x0418, + 0x0433, 0x043d, 0x0447, 0x0455, 0x0470, 0x047c, 0x0488, 0x0498, + // Entry 40 - 7F + 0x04c3, 0x04cd, 0x04e7, 0x04f5, 0x0505, 0x0511, 0x052c, 0x053c, + 0x054a, 0x055a, 0x0575, 0x0581, 0x0589, 0x05aa, 0x05c0, 0x05d9, + 0x05eb, 0x05f5, 0x0614, 0x0622, 0x0630, 0x0651, 0x065d, 0x0665, + 0x0677, 0x0687, 0x0695, 0x06a3, 0x06b5, 0x06de, 0x06e8, 0x072b, + 0x073d, 0x0745, 0x075e, 0x076c, 0x0792, 0x07bd, 0x07cd, 0x07dd, + 0x07e7, 0x07f7, 0x0814, 0x0828, 0x0832, 0x083e, 0x0851, 0x085d, + 0x08a7, 0x08af, 0x08b7, 0x08c3, 0x08d1, 0x08db, 0x08e9, 0x08f5, + 0x08ff, 0x090b, 0x091f, 0x092d, 0x093d, 0x095a, 0x0979, 0x0994, + // Entry 80 - BF + 0x09ab, 0x09b7, 0x09d6, 0x09e8, 0x09f0, 0x09fa, 0x0a0f, 0x0a25, + 0x0a36, 0x0a46, 0x0a52, 0x0a64, 0x0a78, 0x0a88, 0x0a94, 0x0aa0, + 0x0aac, 0x0abe, 0x0acf, 0x0ae4, 0x0af8, 0x0b17, 0x0b2b, 0x0b33, + 0x0b50, 0x0b62, 0x0b81, 0x0bb1, 0x0bc1, 0x0bd7, 0x0be7, 0x0bf1, + 0x0c05, 0x0c13, 0x0c1f, 0x0c2d, 0x0c3d, 0x0c4d, 0x0c5d, 0x0c7a, + 0x0c84, 0x0c9f, 0x0caf, 0x0cc1, 0x0cd3, 0x0ce3, 0x0ced, 0x0cf7, + 0x0cff, 0x0d14, 0x0d1c, 0x0d28, 0x0d30, 0x0d57, 0x0d79, 0x0d89, + 0x0d99, 0x0da5, 0x0dc6, 0x0dd4, 0x0de7, 0x0e12, 0x0e28, 0x0e32, + // Entry C0 - FF + 0x0e42, 0x0e4c, 0x0e69, 0x0e77, 0x0e87, 0x0e93, 0x0e9f, 0x0eab, + 0x0ecc, 0x0eed, 0x0efb, 0x0f05, 0x0f13, 0x0f23, 0x0f3a, 0x0f4c, + 0x0f7d, 0x0f8d, 0x0fa4, 0x0fb7, 0x0fc5, 0x0fd5, 0x0fe3, 0x0fe3, + 0x1006, 0x1016, 0x1016, 0x1022, 0x1034, 0x1050, 0x1077, 0x107d, + 0x10af, 0x10b7, 0x10c5, 0x10d9, 0x10e7, 0x1100, 0x1118, 0x1122, + 0x112c, 0x1138, 0x1158, 0x1164, 0x1170, 0x1182, 0x1192, 0x119e, + 0x11c9, 0x11f9, 0x1207, 0x121b, 0x1229, 0x1256, 0x1268, 0x129c, + 0x12c7, 0x12d7, 0x12e5, 0x130c, 0x1316, 0x1316, 0x1320, 0x132c, + // Entry 100 - 13F + 0x1357, 0x1365, 0x1375, 0x13ac, 0x13b4, 0x13c0, 0x13f1, 0x140a, + 0x141a, 0x1435, 0x1456, 0x1471, 0x148c, 0x14ab, 0x14c2, 0x14d0, + 0x14ed, 0x14f9, 0x1512, 0x1527, 0x1548, 0x155f, 0x158c, 0x15a0, + 0x15c7, 0x15db, 0x15e5, 0x1602, 0x161b, 0x1627, 0x1642, 0x165d, + 0x1678, 0x1697, + }, + }, + { // ca + caRegionStr, + caRegionIdx, + }, + { // ce + "Ðйъадаларан гӀайреÐндорраӀарбийн Цхьанатоьхна ЭмираташОвхӀан-пачхьалкхÐн" + + "тигуа а, Барбуда аÐнгильÑÐлбаниЭрмалойчоьÐнголаÐнтарктидаÐргентинаÐ" + + "мерикан СамоаÐвÑтриÐвÑтралиÐрубаÐландан гӀайренашÐзербайджанБоÑни а" + + ", Герцеговина аБарбадоÑБангладешБельгиБуркина- ФаÑоБолгариБахрейнБур" + + "ундиБенинСен-БартельмиБермудан гӀайренашБруней-ДаруÑÑаламБоливиБонÑ" + + "йр, Синт-ЭÑÑ‚Ð°Ñ‚Ð¸ÑƒÑ Ð°, Саба аБразилиБагаман гӀайренашБутанБувен гӀайр" + + "еБотÑванаБелоруÑÑиБелизКанадаКокоÑийн гӀайренашДемократин РеÑпублик" + + "а КонгоЮккъерчу Ðфрикин РеÑпубликаРеÑпублика КонгоШвейцариКот-Д’иву" + + "арКукан гӀайренашЧилиКамерунКитайКолумбиКлиппертонКоÑта-РикаКубаКаб" + + "о-ВердеКюраÑаоГӀайре ÓиÑа пайхÓамар вина деКипрЧехиГерманиДиего-Гар" + + "ÑиДжибутиДаниДоминикаДоминикан РеÑпубликаÐлжирСеута а, ÐœÐµÐ»Ð¸Ð»ÑŒÑ Ð°Ð­ÐºÐ²" + + "адорЭÑтониМиÑарМалхбузен СаьхьараЭритрейИÑпаниЭфиопиЕвробартФинлÑнд" + + "иФиджиФолклендан гӀайренашМикронезин Федеративни штаташФарерийн гӀа" + + "йренашФранциГабонЙоккха БританиГренадаГуьржийчоьФранцузийн ГвианаГе" + + "рнÑиГанаГибралтарГренландиГамбиГвинейГваделупаЭкваторан ГвинейГреци" + + "Къилба Джорджи а, Къилба Гавайн гӀайренаш аГватемалаГуамГвиней-БиÑа" + + "уГайанаГонконг (ша-къаьÑтина кӀошт)Херд гӀайре а, Макдональд гӀайре" + + "наш аГондураÑХорватиГаитиВенгриКанаран гӀайренашИндонезиИрландиИзра" + + "ильМÑн гӀайреИндиБританин латта Индин океанехьӀиракъГӀажарийчоьИÑла" + + "ндиИталиДжерÑиЯмайкаУрданЯпониКениКиргизиКамбоджаКирибатиКоморашСен" + + "Ñ‚-ÐšÐ¸Ñ‚Ñ Ð°, ÐÐµÐ²Ð¸Ñ Ð°ÐšÑŠÐ¸Ð»Ð±Ð°Ñеда КорейКъилба КорейКувейтКайман гӀайренаш" + + "КазахÑтанЛаоÑЛиванСент-ЛюÑиЛихтенштейнШри-ЛанкаЛибериЛеÑотоЛитваЛюк" + + "ÑембургЛатвиЛивиМароккоМонакоМолдавиӀаьржаламанхойчоьСен-МартенМада" + + "гаÑкарМаршаллан гӀайренашМакедониМалиМьÑнма (Бирма)МонголиМакао (ша" + + "-къаьÑтина кӀошт)КъилбаÑеда Марианан гӀайренашМартиникаМавританиМонт" + + "ÑерратМальтаМаврикиМальдивашМалавиМекÑикаМалайзиМозамбикÐамибиКерла" + + " КаледониÐигерÐорфолк гӀайреÐигериÐикарагуаÐидерландашÐорвегиÐепалÐа" + + "уруÐиуÑКерла ЗеландиОманПанамаПеруФранцузийн ПолинезиПапуа — Керла " + + "ГвинейФилиппинашПакиÑтанПольшаСен-Пьер а, Микелон аПиткÑрн гӀайрена" + + "шПуÑрто-РикоПалеÑтинан латтанашПортугалиПалауПарагвайКатарÐрахьара " + + "ОкеаниРеюньонРумыниСербиРоÑÑиРуандаСаӀудийн ÐравиСоломонан гӀайрена" + + "шСейшелан гӀайренашСуданШвециСингапурСийлахьчу Еленин гӀайреСловени" + + "Шпицберген а, Ян-Майен аСловакиСьерра- ЛеонеСан-МариноСенегалСомали" + + "СуринамКъилба СуданСан-Томе а, ПринÑипи аСальвадорСинт-МартенШемаСв" + + "азилендТриÑтан-да- КуньÑÐ¢Ñ‘Ñ€ÐºÑ Ð°, ÐšÐ°Ð¹ÐºÐ¾Ñ Ð° гӀайренашЧадФранцузийн къ" + + "илба латтанашТогоТаиландТаджикиÑтанТокелауМалхбален ТиморТуркмениТу" + + "ниÑТонгаТуркойчоьТринидад а, Тобаго аТувалуТайваньТанзаниУкраинаУга" + + "ндаÐЦШн арахьара кегийн гӀайренашЦхьанатоьхна ШтаташУругвайУзбекиÑÑ‚" + + "анВатиканСент-ВинÑент а, Гренадинаш аВенеÑуÑлаВиргинийн гӀайренаш (" + + "Британи)Виргинийн гӀайренаш (ÐЦШ)Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð°, Футуна аСа" + + "моаКоÑовоЙеменМайоттаКъилба-Ðфрикин РеÑпубликаЗамбиЗимбабвеЙоьвзуш " + + "йоцу регионДерригдуьненанÐфрикаКъилбаÑеда ÐмерикаКъилба ÐмерикаОкеа" + + "ниМалхбузен ÐфрикаЮккъера ÐмерикаМалхбален ÐфрикаКъилбаÑеда ÐфрикаЮ" + + "ккъера ÐфрикаКъилба ÐфрикаКъилбаÑеда а, къилба а ÐмерикаКъилбаÑеда " + + "Ðмерика – ÐЦШ а, Канада аКарибашЮккъера ÐзиКъилба ÐзиКъилба-малхбал" + + "ен ÐзиКъилба ЕвропаÐвÑтралазиМеланезиМикронезиПолинезиÐзиЮккъера Ма" + + "лхбалеЮккъера а, Гергара а МалхбалеЕвропаМалхбален ЕвропаКъилбаÑеда" + + " ЕвропаМалхбузен ЕвропаЛатинан Ðмерика", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0023, 0x0031, 0x0069, 0x0088, 0x00ac, 0x00ba, 0x00c6, + 0x00da, 0x00e6, 0x00fa, 0x010c, 0x0127, 0x0133, 0x0143, 0x014d, + 0x016e, 0x0184, 0x01ac, 0x01bc, 0x01ce, 0x01da, 0x01f2, 0x0200, + 0x020e, 0x021c, 0x0226, 0x023f, 0x0262, 0x0283, 0x028f, 0x02c6, + 0x02d4, 0x02f5, 0x02ff, 0x0316, 0x0326, 0x0338, 0x0342, 0x034e, + 0x0371, 0x03a5, 0x03d9, 0x03f8, 0x0408, 0x041e, 0x043b, 0x0443, + 0x0451, 0x045b, 0x0469, 0x047d, 0x0490, 0x0498, 0x04ab, 0x04b9, + 0x04ef, 0x04f7, 0x04ff, 0x050d, 0x0522, 0x0530, 0x0538, 0x0548, + // Entry 40 - 7F + 0x056f, 0x0579, 0x0599, 0x05a7, 0x05b3, 0x05bd, 0x05e0, 0x05ee, + 0x05fa, 0x0606, 0x0616, 0x0626, 0x0630, 0x0657, 0x068f, 0x06b2, + 0x06be, 0x06c8, 0x06e3, 0x06f1, 0x0705, 0x0726, 0x0732, 0x073a, + 0x074c, 0x075e, 0x0768, 0x0774, 0x0786, 0x07a5, 0x07af, 0x07fe, + 0x0810, 0x0818, 0x082f, 0x083b, 0x086e, 0x08b2, 0x08c2, 0x08d0, + 0x08da, 0x08e6, 0x0907, 0x0917, 0x0925, 0x0933, 0x0946, 0x094e, + 0x0985, 0x0991, 0x09a7, 0x09b5, 0x09bf, 0x09cb, 0x09d7, 0x09e1, + 0x09eb, 0x09f3, 0x0a01, 0x0a11, 0x0a21, 0x0a2f, 0x0a52, 0x0a71, + // Entry 80 - BF + 0x0a88, 0x0a94, 0x0ab3, 0x0ac5, 0x0acd, 0x0ad7, 0x0ae8, 0x0afe, + 0x0b0f, 0x0b1b, 0x0b27, 0x0b31, 0x0b45, 0x0b4f, 0x0b57, 0x0b65, + 0x0b71, 0x0b7f, 0x0ba1, 0x0bb4, 0x0bc8, 0x0bed, 0x0bfd, 0x0c05, + 0x0c1e, 0x0c2c, 0x0c5b, 0x0c93, 0x0ca5, 0x0cb7, 0x0ccb, 0x0cd7, + 0x0ce5, 0x0cf7, 0x0d03, 0x0d11, 0x0d1f, 0x0d2f, 0x0d3b, 0x0d56, + 0x0d60, 0x0d7b, 0x0d87, 0x0d99, 0x0daf, 0x0dbd, 0x0dc7, 0x0dd1, + 0x0dd9, 0x0df2, 0x0dfa, 0x0e06, 0x0e0e, 0x0e33, 0x0e59, 0x0e6d, + 0x0e7d, 0x0e89, 0x0eae, 0x0ecf, 0x0ee4, 0x0f09, 0x0f1b, 0x0f25, + // Entry C0 - FF + 0x0f35, 0x0f3f, 0x0f5c, 0x0f6a, 0x0f76, 0x0f80, 0x0f8a, 0x0f96, + 0x0fb1, 0x0fd6, 0x0ff9, 0x1003, 0x100d, 0x101d, 0x1049, 0x1057, + 0x1082, 0x1090, 0x10a8, 0x10bb, 0x10c9, 0x10d5, 0x10e3, 0x10fa, + 0x1121, 0x1133, 0x1148, 0x1150, 0x1162, 0x1181, 0x11b2, 0x11b8, + 0x11ea, 0x11f2, 0x1200, 0x1216, 0x1224, 0x1241, 0x1251, 0x125b, + 0x1265, 0x1277, 0x129b, 0x12a7, 0x12b5, 0x12c3, 0x12d1, 0x12dd, + 0x1316, 0x133b, 0x1349, 0x135d, 0x136b, 0x139e, 0x13b0, 0x13e6, + 0x1414, 0x1422, 0x1430, 0x1450, 0x145a, 0x1466, 0x1470, 0x147e, + // Entry 100 - 13F + 0x14ae, 0x14b8, 0x14c8, 0x14ec, 0x1508, 0x1514, 0x1537, 0x1552, + 0x155e, 0x157d, 0x159a, 0x15b9, 0x15da, 0x15f5, 0x160e, 0x1645, + 0x1687, 0x1695, 0x16aa, 0x16bd, 0x16e3, 0x16fc, 0x1710, 0x1720, + 0x1732, 0x1742, 0x1748, 0x1767, 0x179c, 0x17a8, 0x17c7, 0x17e8, + 0x1807, 0x1824, + }, + }, + { // cgg + "AndoraAmahanga ga Buharabu ageeteereineAfuganistaniAngiguwa na BabudaAng" + + "wiraArubaniaArimeniyaAngoraArigentinaSamowa ya AmeerikaOsituriaOsitu" + + "reeriyaArubaAzabagyaniBoziniya na HezegovinaBabadosiBangaradeshiBubi" + + "rigiBokina FasoBurugariyaBahareniBurundiBeniniBerimudaBuruneiBoriivi" + + "yaBuraziiriBahamaButaniBotswanaBararusiBerizeKanadaDemokoratika Ripa" + + "aburika ya KongoEihanga rya Rwagati ya AfirikaKongoSwisiAivore Kosit" + + "iEbizinga bya KuukuChileKameruuniChinaKorombiyaKositarikaCubaEbizing" + + "a bya KepuvadeSaipurasiRipaaburika ya ZeekiBugirimaaniGyibutiDeenima" + + "akaDominikaRipaaburika ya DominicaArigyeriyaIkwedaEsitoniyaMisiriEri" + + "teriyaSipeyiniEthiyopiyaBufiniFigyiEbizinga bya FaakilandaMikironesi" + + "yaBufaransaGabooniBungyerezaGurenadaGyogiyaGuyana ya BufaransaGanaGi" + + "buraataGuriinirandiGambiyaGineGwaderupeGuniGuriisiGwatemaraGwamuGine" + + "bisauGuyanaHondurasiKorasiyaHaitiHangareIndoneeziyaIrerandiIsirairiI" + + "ndiyaIraakaIraaniAisilandiItareGyamaikaYorudaaniGyapaaniKenyaKirigiz" + + "istaniKambodiyaKiribatiKoromoSenti Kittis na NevisiKoreya AmatembaKo" + + "reya AmashuumaKuweitiEbizinga bya KayimaniKazakisitaniLayosiLebanoni" + + "Senti RusiyaLishenteniSirirankaLiberiyaLesothoLithuaniaLakizembaagaL" + + "atviyaLibyaMoroccoMonacoMoridovaMadagasikaEbizinga bya MarshaaMasedo" + + "oniaMariMyanamarMongoriaEbizinga by’amatemba ga MarianaMartiniqueMau" + + "riteeniyaMontserratiMaritaMaurishiasiMaridivesMarawiMexicomarayiziaM" + + "ozambiqueNamibiyaNiukaredoniaNaigyaEkizinga NorifokoNaigyeriyaNikara" + + "gwaHoorandiNoorweNepoNauruNiueNiuzirandiOmaaniPanamaPeruPolinesia ya" + + " BufaransaPapuaFiripinoPakisitaaniPoorandiSenti Piyerre na MikweronP" + + "itkainiPwetorikoPocugoPalaawuParagwaiKataRiyuniyoniRomaniyaRrashaRwa" + + "ndaSaudi AreebiyaEbizinga bya SurimaaniShesheresiSudaniSwideniSingap" + + "oSenti HerenaSirovaaniyaSirovaakiyaSirra RiyooniSamarinoSenegoSomaar" + + "iyaSurinaamuSawo Tome na PurinsipoEri SalivadoSiriyaSwazirandiEbizin" + + "ga bya Buturuki na KaikoChadiTogoTairandiTajikisitaniTokerawuBurugwe" + + "izooba bwa TimoriTurukimenisitaniTuniziaTongaButuruki /TakeTurinidad" + + " na TobagoTuvaruTayiwaaniTanzaniaUkureiniUgandaAmerikaUrugwaiUzibeki" + + "sitaniVatikaniSenti Vinsent na GurenadiniVenezuweraEbizinga bya Viri" + + "gini ebya BungyerezaEbizinga bya Virigini ebya AmerikaViyetinaamuVan" + + "uatuWarris na FutunaSamowaYemeniMayoteSausi AfirikaZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0027, 0x0033, 0x0045, 0x004c, 0x0054, + 0x005d, 0x0063, 0x0063, 0x006d, 0x007f, 0x0087, 0x0093, 0x0098, + 0x0098, 0x00a2, 0x00b8, 0x00c0, 0x00cc, 0x00d4, 0x00df, 0x00e9, + 0x00f1, 0x00f8, 0x00fe, 0x00fe, 0x0106, 0x010d, 0x0116, 0x0116, + 0x011f, 0x0125, 0x012b, 0x012b, 0x0133, 0x013b, 0x0141, 0x0147, + 0x0147, 0x0168, 0x0186, 0x018b, 0x0190, 0x019d, 0x01af, 0x01b4, + 0x01bd, 0x01c2, 0x01cb, 0x01cb, 0x01d5, 0x01d9, 0x01ee, 0x01ee, + 0x01ee, 0x01f7, 0x020b, 0x0216, 0x0216, 0x021d, 0x0227, 0x022f, + // Entry 40 - 7F + 0x0246, 0x0250, 0x0250, 0x0256, 0x025f, 0x0265, 0x0265, 0x026e, + 0x0276, 0x0280, 0x0280, 0x0286, 0x028b, 0x02a2, 0x02ae, 0x02ae, + 0x02b7, 0x02be, 0x02c8, 0x02d0, 0x02d7, 0x02ea, 0x02ea, 0x02ee, + 0x02f7, 0x0303, 0x030a, 0x030e, 0x0317, 0x031b, 0x0322, 0x0322, + 0x032b, 0x0330, 0x0339, 0x033f, 0x033f, 0x033f, 0x0348, 0x0350, + 0x0355, 0x035c, 0x035c, 0x0367, 0x036f, 0x0377, 0x0377, 0x037d, + 0x037d, 0x0383, 0x0389, 0x0392, 0x0397, 0x0397, 0x039f, 0x03a8, + 0x03b0, 0x03b5, 0x03c2, 0x03cb, 0x03d3, 0x03d9, 0x03ef, 0x03fe, + // Entry 80 - BF + 0x040e, 0x0415, 0x042a, 0x0436, 0x043c, 0x0444, 0x0450, 0x045a, + 0x0463, 0x046b, 0x0472, 0x047b, 0x0487, 0x048e, 0x0493, 0x049a, + 0x04a0, 0x04a8, 0x04a8, 0x04a8, 0x04b2, 0x04c6, 0x04d0, 0x04d4, + 0x04dc, 0x04e4, 0x04e4, 0x0505, 0x050f, 0x051b, 0x0526, 0x052c, + 0x0537, 0x0540, 0x0546, 0x054c, 0x0555, 0x055f, 0x0567, 0x0573, + 0x0579, 0x058a, 0x0594, 0x059d, 0x05a5, 0x05ab, 0x05af, 0x05b4, + 0x05b8, 0x05c2, 0x05c8, 0x05ce, 0x05d2, 0x05e8, 0x05ed, 0x05f5, + 0x0600, 0x0608, 0x0621, 0x0629, 0x0632, 0x0632, 0x0638, 0x063f, + // Entry C0 - FF + 0x0647, 0x064b, 0x064b, 0x0655, 0x065d, 0x065d, 0x0663, 0x0669, + 0x0677, 0x068d, 0x0697, 0x069d, 0x06a4, 0x06ab, 0x06b7, 0x06c2, + 0x06c2, 0x06cd, 0x06da, 0x06e2, 0x06e8, 0x06f1, 0x06fa, 0x06fa, + 0x0710, 0x071c, 0x071c, 0x0722, 0x072c, 0x072c, 0x074a, 0x074f, + 0x074f, 0x0753, 0x075b, 0x0767, 0x076f, 0x0787, 0x0797, 0x079e, + 0x07a3, 0x07b1, 0x07c4, 0x07ca, 0x07d3, 0x07db, 0x07e3, 0x07e9, + 0x07e9, 0x07f0, 0x07f7, 0x0804, 0x080c, 0x0827, 0x0831, 0x0856, + 0x0878, 0x0883, 0x088a, 0x089a, 0x08a0, 0x08a0, 0x08a6, 0x08ac, + // Entry 100 - 13F + 0x08b9, 0x08bf, 0x08c7, + }, + }, + { // chr + "Ꭰá‚á™áŽ³áŒáŠ Ꭲá³áŽ¾áŽµáá”á… áŽ¡áŽ³áˆ áŽ¢áŽ¹áŽµá˜áᎠá«áŽ¨á‚áá–á‚Ꭴáªá˜ ᎠᎴ á†áŠá“Ꭰá‚ᎩᎳᎠᎵá‡á‚á¯áŽ áŽµáŽ»á‚ᎠᎠá‚ᎪᎳá§ááá“ᎸᎠá¥á‚á˜á‚ᎠᎠᎺ" + + "ᎵᎧ áŒáŽ¼áŽ áŽ ááŸá¯áŽ¡áŽ³á—áœáŽ áŽ·á†áŽ£áŽ´á…á“ ášáŽ¦ášá›áŽ¢áŽ áᎵá†áŒá‚á‰áá‚Ꭰ ᎠᎴ Ꮂá¤áŽªá«á†á‡á™áá†á‚ᎦᎵá•áá‡áŽµá¥áŽ¥áŽ»á‹áŽ©áŽ¾ á©á" + + "áŠáŽµáŽ¨áŽµáŽ á†áŽ­áŽ´áŽ¢á‚á‹áŽ·á‚á—á†á‚Ꭲá‚Ꭰá¥áŽ¸á‰á— á†á•áŽ³áŽ»á†áŠá“áŠáŽ¾áŽ¢á‰áŽµá«áŽ á†áᎵᎢᎾáᎩ á†áŽ­áŽ¹ááŠá”á‚áŠáª ᎤᎦášá›áŽ¢á†á£á©áŽ¾á‡" + + "ᎳᎷáá‡áŽµáᎨᎾá“ᎪᎪá (ᎩᎵá‚) ášáŽ¦ášá›áŽ§á‚ᎪᎬᎿᎨáᛠᎠá°áŸ áᎦášáŽ©áŽ§á‚Ꭺ (áᎦášáŽ©)áá«áᎢá¬áŽµ ᎾᎿ ᎠᎹá³áŽ¶á—Ꭰ" + + "á“áá“á´áŽ²áᎩ ᎤᎦášá›á¥áŽµáŽ§áŽ¹áŽ·á‚á“Ꮆá‚Ꭸáá›áŽªáŽ¸áŽ»áˆáŽ¢áŽ áŽªáᓠᎵᎧᎫá†áŽ¢áŽ¬áŽ¾á•áŽ¾ Ꭲá¤á³áá—á‚ᎦᓠᎤá‚Ꮂ ᎾᎿ ᎫᎳᎨᎣá“á‚" + + "áá“á²áŽ¯áŽ² ᎤᎦášá›áŽ¢áŒáŽ¢á†áá¤áŽ© áᎦášáŽ©áŽ á‚á›á¥á¥áŠá—á—á‚ᎹᎦá™áŽ»á‚Ꭷá™áŽ»á‚ᎧႠáᎦášáŽ©áŽ áŽµá¥áŽµá¯áŽ¡á†á™áŽµáŽ¡áá™á‚á¯áŽ¢á¥áˆáŽ¢áŽ¡" + + "ᎵáŸá¯áŽ á‚áá†á‚á±á«á‚Ꭶá™áŽ¯á«á¥á©áŽ© ášáŽ¦ášá›áŽ¢áŽ á°áŸ á§áŽ¾áŽµáŽªáŽ¯ ᎾᎿ ᎹᎢá‰á‚áá¯áªáŽ¶ ášáŽ¦ášá›áŽ¢áŽ¦áŽ¸á¥á±áŽ¦á‰á‚ᎩᎵáá²á‹áŽ¾á“á£" + + "Ꭰá¥áŽ¢áŽ á‚ᎦᎸᥠᎩᎠᎬá‚áᎦᎠᎾá¥á†áŽµá“Ꭲá¤áá›á±áŽ¦áŽ¹áˆáŽ¢áŽ áŽ«á‡á©á“Ꮇá‡áŽ¡á†á™áŽµáŽ áŽµ ᎩᎢá‚ᎪᎢᎯá§áŽ¦áƒá® á£á¥á± ᎠᎴ ᎾáᎩ " + + "á§áŽ¦áƒá® Ꭰáá›áŽ­áŸ ášáŽ¦ášá›á©á”ᎹᎳá†áŽ»áŽ«á‡-áˆáŒáŽ¤á«áŽ¦á¯áŽ¾áŽ°á‚Ꭹ Ꭺá‚ᎩᎲᗠᎤᎦášá›áŽ¢ ᎠᎴ ᎺᎩá“ᎾᎵᗠášáŽ¦ášá›áŽ¢áŽ§áŽ¶áŽ¡á" + + "ᎠᎮᎢá˜áŽ²á‚ᎦᎵᎢá‚á™á‚áá¯áŽ áŽ¢áŽ´á‚á—ᎢáᎵá±áŽ¤áᗠᎤᎦášá›áŽ¢ ᎾᎿ ᎠáᎦá¯áŽ¢á…á—Ꮎáˆá—á á´á«á¯ ᎠᎺበᎢᎬᎾá•á…ᎢᎳᎩᎢᎴ" + + "á‚á§ááá“ᎸᎯá²áŽ¶á¨áŽµáá£áŽºáŽ¢áŽ§á¦á“á‚á£á©á‚áᎨá‚á¯áŽ©áŽµá£áŽ¢áᎧᎹá‰á—Ꭰá‚ᎧᎵá†á˜áŽªáŽ¼áŽ³áᎠá°áŸ ᎾᎿ Ꭸá¥áŽ¸á‰á— Ꭰá‚áªáŒ ᎠᎴ " + + "Ꭰá‚áá«áá§á´á¢ ᎪᎵᎠá§áŽ¦áƒá® ᎪᎵᎠᎫáªáŽ¢á˜áŽ¨áŽ¢áŽ¹á‚ ášáŽ¦ášá›áŽ¢áŽ§áŽáŽ§áá•á‚ᎴᎣáᎴá†áŽ¾á‚ᎵᎦá—á‚áá“á‚áᎵ Ꮃá‚ᎧᎳáˆáŽµá¯áŽ´á" + + "á™áŽµá—áªá‚ᎠᎸᎧáŽá‹áŽ©áŽ³á˜á«áŽ áŽµáˆá¯áŽ¼áŽ¶áŽªáŽ¹áŽ¾áŽªáŽ¹áŽµá™á«áŽ áŽ¼á‚á”áᎦᎶᎠá¥áŽ¸á‰á— á¡á¡áŽ¹á“ᎦáᎧᎵᎹáŒáŽµ ášáŽªášá›áŽ¹áá™á‚ᎢᎠᎹᎵᎹ" + + "á¯áŽ¹áŽµáŽ¹á‚ᎪᎵᎠᎹᎧᎣ (Ꭴá“á¤áŽµá“ á§á‚Ꮈá«áá“áᗠᎢᎬᎾá•áŽ¾) á£áŽ¢áŽ¾áᎩ Ꭴá´á¢ á—ᜠᎹᎵᎠᎾ ášáŽ¦ášá›áŽ¹á˜á‚ᎨᎹá˜áŽ¢á¯áŽ¹" + + "á‚á˜áŒáŽ³á—ᎹᎵá”ᎼᎵáᎥáᎹᎵá—á«áᎹᎳá«áá†á‚á±áŽ¹áŽ´áᎢᎠᎼáŽáŽ»á‡áŽ©áŽ¾áŽ»áˆáŽ¢á¯áŽ¢á¤ ᎧᎵá™á‚Ꭰá‚áƒáŽµá¬áŽµáŽ© ᎤᎦášá›áŽ¢á‚á¥áŽµá¯á‚Ꭷ" + + "Ꮃá†áá›áŽ³á‚áƒáªáá†áŽµáƒáŽ¤áŽ·á‚á³áŽ¢á¤ áᎢᎴá‚á—ᎣᎺá‚á†áŽ¾áŽ¹á‡áŽ·áŽ á‚ᎦᎸᣠá†áŽµá‚áᎠá†á‡ ᎢᤠᎩá‚Ꭰá‚áˆáŽµáŽ©áƒá†áŽ©áá–á‚á‰áŽ³á‚áŽ" + + "á‚ᘠáˆá“ ᎠᎴ Ꮋá‡áŽ¶á‚áˆáŽ§áŽµá‚ ᎤᎦášá›áŽ¢á‡áŽ¡á™ ᎵᎢᎪá†áŽ´áá—á‚ᎠႠá„Ꭼá«á³áŒá•áŽ©á‰á¥áŽ¦áŽ³á†áŽ´áŽ á«á†áŽ³á‡áŽ¢á¯áŽ§á”ᎵᎶᎹá‚á¯á’" + + "áˆá¯á²á‚ᎢᎶá©á‚á“áŒáŽ¤á— ᎡᎴáˆáŽ áᎶᎹႠášáŽ¦ášá›áŽ¢áᎡá¥áŽµáá‘á•á‚áá«á•á‚áá‚Ꭶá‰áŽµáŽ á¥áŽ¸á‰á— ᎮᎵᎾáᎶá«á‚ᎠáᎶá©áŽ©áŽ áᎡᎳ" + + " ᎴᎣá‚ᎠᎹá°áŸá„á¬áŽµáá›áŽ¾ Ꭴá”á‚á—Ꭶá™áŽ¯áŽ¡áŽ¶áŽ¯á§á´á¢ ᎠᎺᎵᎦá§áŽ¦áƒá® ᎠᎺᎵᎦᎠᎺᎵᎦᎢ", + []uint16{ // 272 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000c, 0x0042, 0x0057, 0x0071, 0x007d, 0x008c, + 0x009b, 0x00a7, 0x00b6, 0x00c8, 0x00de, 0x00ea, 0x00f6, 0x00ff, + 0x011b, 0x012d, 0x014d, 0x0159, 0x016b, 0x017a, 0x018a, 0x0199, + 0x01a8, 0x01b4, 0x01c0, 0x01dc, 0x01e5, 0x01ee, 0x01fa, 0x01fa, + 0x0206, 0x021c, 0x0225, 0x023b, 0x0247, 0x0253, 0x025c, 0x0265, + 0x0287, 0x0290, 0x02b6, 0x02ce, 0x02d7, 0x02f7, 0x031c, 0x0322, + 0x032e, 0x0340, 0x0352, 0x0352, 0x0362, 0x0368, 0x0387, 0x03ae, + 0x03d3, 0x03df, 0x03f2, 0x03fe, 0x03fe, 0x0407, 0x0413, 0x041f, + // Entry 40 - 7F + 0x043b, 0x044a, 0x044a, 0x0456, 0x0465, 0x0471, 0x0471, 0x047d, + 0x048f, 0x048f, 0x048f, 0x049e, 0x04a4, 0x04ba, 0x04ed, 0x0503, + 0x050f, 0x0518, 0x0524, 0x052d, 0x0539, 0x054f, 0x0558, 0x0561, + 0x056d, 0x057c, 0x058b, 0x0591, 0x059d, 0x05b9, 0x05c2, 0x0613, + 0x061f, 0x0625, 0x0638, 0x0641, 0x0654, 0x0694, 0x0694, 0x06a3, + 0x06ac, 0x06b8, 0x06b8, 0x06ca, 0x06d9, 0x06e5, 0x0712, 0x071e, + 0x074b, 0x0754, 0x075d, 0x076f, 0x0775, 0x077e, 0x078a, 0x0793, + 0x079f, 0x07a8, 0x07b7, 0x07c9, 0x07d5, 0x07e1, 0x0825, 0x0838, + // Entry 80 - BF + 0x084e, 0x085a, 0x0876, 0x0888, 0x0891, 0x089d, 0x089d, 0x08b2, + 0x08c2, 0x08ce, 0x08d7, 0x08e6, 0x08f5, 0x0901, 0x090a, 0x0913, + 0x091c, 0x092b, 0x093d, 0x0953, 0x0965, 0x097b, 0x098d, 0x0993, + 0x099f, 0x09ae, 0x09f9, 0x0a2d, 0x0a39, 0x0a45, 0x0a57, 0x0a60, + 0x0a6f, 0x0a7e, 0x0a87, 0x0a93, 0x0aa2, 0x0ab1, 0x0ac0, 0x0ad9, + 0x0ad9, 0x0af8, 0x0b04, 0x0b10, 0x0b1c, 0x0b22, 0x0b2b, 0x0b34, + 0x0b3a, 0x0b50, 0x0b59, 0x0b62, 0x0b68, 0x0b87, 0x0b9b, 0x0bad, + 0x0bbc, 0x0bc5, 0x0be9, 0x0c05, 0x0c18, 0x0c43, 0x0c4f, 0x0c5b, + // Entry C0 - FF + 0x0c6a, 0x0c73, 0x0c73, 0x0c73, 0x0c7f, 0x0c88, 0x0c91, 0x0c9d, + 0x0cb3, 0x0ccf, 0x0cde, 0x0ce7, 0x0cf3, 0x0d02, 0x0d1b, 0x0d2a, + 0x0d2a, 0x0d39, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, + 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, + 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, + 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, 0x0d4c, + 0x0d4c, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, + 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, 0x0d58, + // Entry 100 - 13F + 0x0d58, 0x0d58, 0x0d58, 0x0d80, 0x0d89, 0x0d89, 0x0d9f, 0x0db8, + 0x0db8, 0x0db8, 0x0db8, 0x0db8, 0x0db8, 0x0db8, 0x0db8, 0x0dc7, + }, + }, + { // ckb + "ئەورووپای باشووریئاسیای ناوەندیئاسیای ڕۆژاوا", + []uint16{ // 285 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 100 - 13F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0021, 0x0021, + 0x0021, 0x0021, 0x0021, 0x003c, 0x0055, + }, + }, + { // cs + csRegionStr, + csRegionIdx, + }, + { // cy + "Ynys AscensionAndorraEmiradau Arabaidd UnedigAfghanistanAntigua a Barbud" + + "aAnguillaAlbaniaArmeniaAngolaAntarcticaYr ArianninSamoa AmericaAwstr" + + "iaAwstraliaArubaYnysoedd Ã…landAzerbaijanBosnia a HercegovinaBarbados" + + "BangladeshGwlad BelgBurkina FasoBwlgariaBahrainBurundiBeninSaint Bar" + + "thélemyBermudaBruneiBolifiaAntilles yr IseldiroeddBrasilY BahamasBhu" + + "tanYnys BouvetBotswanaBelarwsBelizeCanadaYnysoedd Cocos (Keeling)Y C" + + "ongo - KinshasaGweriniaeth Canolbarth AffricaY Congo - BrazzavilleY " + + "SwistirCôte d’IvoireYnysoedd CookChileCamerŵnTsieinaColombiaYnys Cli" + + "ppertonCosta RicaCiwbaCabo VerdeCuraçaoYnys y NadoligCyprusGweriniae" + + "th TsiecYr AlmaenDiego GarciaDjiboutiDenmarcDominicaGweriniaeth Domi" + + "nicaAlgeriaCeuta a MelillaEcuadorEstoniaYr AifftGorllewin SaharaErit" + + "reaSbaenEthiopiaYr Undeb EwropeaiddY FfindirFijiYnysoedd y Falkland/" + + "MalvinasMicronesiaYnysoedd FfaroFfraincGabonY Deyrnas UnedigGrenadaG" + + "eorgiaGuyane FfrengigYnys y GarnGhanaGibraltarYr Ynys LasGambiaGuiné" + + "eGuadeloupeGuinea GyhydeddolGwlad GroegDe Georgia ac Ynysoedd Sandwi" + + "ch y DeGuatemalaGuamGuiné-BissauGuyanaHong Kong RhGA TsieinaYnys Hea" + + "rd ac Ynysoedd McDonaldHondurasCroatiaHaitiHwngariYr Ynysoedd Dedwyd" + + "dIndonesiaIwerddonIsraelYnys ManawIndiaTiriogaeth Brydeinig Cefnfor " + + "IndiaIracIranGwlad yr IâYr EidalJerseyJamaicaGwlad IorddonenJapanKen" + + "yaKyrgyzstanCambodiaKiribatiComorosSaint Kitts a NevisGogledd KoreaD" + + "e KoreaKuwaitYnysoedd CaymanKazakstanLaosLibanusSaint LuciaLiechtens" + + "teinSri LankaLiberiaLesothoLithuaniaLwcsembwrgLatfiaLibyaMorocoMonac" + + "oMoldofaMontenegroSaint MartinMadagascarYnysoedd MarshallMacedoniaMa" + + "liMyanmar (Burma)MongoliaMacau RhGA TsieinaYnysoedd Gogledd MarianaM" + + "artiniqueMauritaniaMontserratMaltaMauritiusY MaldivesMalawiMecsicoMa" + + "laysiaMozambiqueNamibiaCaledonia NewyddNigerYnys NorfolkNigeriaNicar" + + "aguaYr IseldiroeddNorwyNepalNauruNiueSeland NewyddOmanPanamaPeriwPol" + + "ynesia FfrengigPapua Guinea NewyddY PhilipinauPakistanGwlad PwylSain" + + "t-Pierre-et-MiquelonYnysoedd PitcairnPuerto RicoTiriogaethau Paleste" + + "inaiddPortiwgalPalauParaguayQatarOceania BellennigRéunionRwmaniaSerb" + + "iaRwsiaRwandaSaudi ArabiaYnysoedd SolomonSeychellesSwdanSwedenSingap" + + "oreSaint HelenaSlofeniaSvalbard a Jan MayenSlofaciaSierra LeoneSan M" + + "arinoSenegalSomaliaSurinameDe SwdanSão Tomé a PríncipeEl SalvadorSin" + + "t MaartenSyriaGwlad SwaziTristan da CunhaYnysoedd Turks a CaicosTcha" + + "dTiroedd Deheuol ac Antarctig FfraincTogoGwlad ThaiTajikistanTokelau" + + "Timor-LesteTurkmenistanTunisiaTongaTwrciTrinidad a TobagoTuvaluTaiwa" + + "nTanzaniaWcráinUgandaYnysoedd Pellennig UDAYr Unol DaleithiauUruguay" + + "UzbekistanY FaticanSaint Vincent a’r GrenadinesVenezuelaYnysoedd Gwy" + + "ryf PrydainYnysoedd Gwyryf yr Unol DaleithiauFietnamVanuatuWallis a " + + "FutunaSamoaKosovoYemenMayotteDe AffricaZambiaZimbabweRhanbarth Anhys" + + "bysY BydAffricaGogledd AmericaDe AmericaOceaniaGorllewin AffricaCano" + + "lbarth AmericaDwyrain AffricaGogledd AffricaCanol AffricaDeheudir Af" + + "fricaYr AmerigAmerica i’r Gogledd o FecsicoY CaribîDwyrain AsiaDe As" + + "iaDe-Ddwyrain AsiaDe EwropAwstralasiaMelanesiaRhanbarth MicronesiaPo" + + "lynesiaAsiaCanol AsiaGorllewin AsiaEwropDwyrain EwropGogledd EwropGo" + + "rllewin EwropAmerica Ladin", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0015, 0x002d, 0x0038, 0x0049, 0x0051, 0x0058, + 0x005f, 0x0065, 0x006f, 0x007a, 0x0087, 0x008e, 0x0097, 0x009c, + 0x00ab, 0x00b5, 0x00c9, 0x00d1, 0x00db, 0x00e5, 0x00f1, 0x00f9, + 0x0100, 0x0107, 0x010c, 0x011d, 0x0124, 0x012a, 0x0131, 0x0148, + 0x014e, 0x0157, 0x015d, 0x0168, 0x0170, 0x0177, 0x017d, 0x0183, + 0x019b, 0x01ad, 0x01cb, 0x01e0, 0x01e9, 0x01f9, 0x0206, 0x020b, + 0x0213, 0x021a, 0x0222, 0x0231, 0x023b, 0x0240, 0x024a, 0x0252, + 0x0260, 0x0266, 0x0277, 0x0280, 0x028c, 0x0294, 0x029b, 0x02a3, + // Entry 40 - 7F + 0x02b7, 0x02be, 0x02cd, 0x02d4, 0x02db, 0x02e3, 0x02f3, 0x02fa, + 0x02ff, 0x0307, 0x031a, 0x0323, 0x0327, 0x0343, 0x034d, 0x035b, + 0x0362, 0x0367, 0x0377, 0x037e, 0x0385, 0x0394, 0x039f, 0x03a4, + 0x03ad, 0x03b8, 0x03be, 0x03c5, 0x03cf, 0x03e0, 0x03eb, 0x040f, + 0x0418, 0x041c, 0x0429, 0x042f, 0x0445, 0x0464, 0x046c, 0x0473, + 0x0478, 0x047f, 0x0492, 0x049b, 0x04a3, 0x04a9, 0x04b3, 0x04b8, + 0x04da, 0x04de, 0x04e2, 0x04ee, 0x04f6, 0x04fc, 0x0503, 0x0512, + 0x0517, 0x051c, 0x0526, 0x052e, 0x0536, 0x053d, 0x0550, 0x055d, + // Entry 80 - BF + 0x0565, 0x056b, 0x057a, 0x0583, 0x0587, 0x058e, 0x0599, 0x05a6, + 0x05af, 0x05b6, 0x05bd, 0x05c6, 0x05d0, 0x05d6, 0x05db, 0x05e1, + 0x05e7, 0x05ee, 0x05f8, 0x0604, 0x060e, 0x061f, 0x0628, 0x062c, + 0x063b, 0x0643, 0x0655, 0x066d, 0x0677, 0x0681, 0x068b, 0x0690, + 0x0699, 0x06a3, 0x06a9, 0x06b0, 0x06b8, 0x06c2, 0x06c9, 0x06d9, + 0x06de, 0x06ea, 0x06f1, 0x06fa, 0x0708, 0x070d, 0x0712, 0x0717, + 0x071b, 0x0728, 0x072c, 0x0732, 0x0737, 0x0749, 0x075c, 0x0768, + 0x0770, 0x077a, 0x0792, 0x07a3, 0x07ae, 0x07c8, 0x07d1, 0x07d6, + // Entry C0 - FF + 0x07de, 0x07e3, 0x07f4, 0x07fc, 0x0803, 0x0809, 0x080e, 0x0814, + 0x0820, 0x0830, 0x083a, 0x083f, 0x0845, 0x084e, 0x085a, 0x0862, + 0x0876, 0x087e, 0x088a, 0x0894, 0x089b, 0x08a2, 0x08aa, 0x08b2, + 0x08c8, 0x08d3, 0x08df, 0x08e4, 0x08ef, 0x08ff, 0x0916, 0x091b, + 0x093f, 0x0943, 0x094d, 0x0957, 0x095e, 0x0969, 0x0975, 0x097c, + 0x0981, 0x0986, 0x0997, 0x099d, 0x09a3, 0x09ab, 0x09b2, 0x09b8, + 0x09ce, 0x09e0, 0x09e7, 0x09f1, 0x09fa, 0x0a18, 0x0a21, 0x0a38, + 0x0a5a, 0x0a61, 0x0a68, 0x0a77, 0x0a7c, 0x0a82, 0x0a87, 0x0a8e, + // Entry 100 - 13F + 0x0a98, 0x0a9e, 0x0aa6, 0x0ab8, 0x0abd, 0x0ac4, 0x0ad3, 0x0add, + 0x0ae4, 0x0af5, 0x0b07, 0x0b16, 0x0b25, 0x0b32, 0x0b42, 0x0b4b, + 0x0b6a, 0x0b73, 0x0b7f, 0x0b86, 0x0b96, 0x0b9e, 0x0ba9, 0x0bb2, + 0x0bc6, 0x0bcf, 0x0bd3, 0x0bdd, 0x0beb, 0x0bf0, 0x0bfd, 0x0c0a, + 0x0c19, 0x0c26, + }, + }, + { // da + daRegionStr, + daRegionIdx, + }, + { // dav + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // de + deRegionStr, + deRegionIdx, + }, + { // de-CH + "BangladeshBruneiBotswanaWeissrusslandGrossbritannienMarshall-InselnÄusse" + + "res OzeanienSalomon-InselnZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0018, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + // Entry 40 - 7F + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + // Entry 80 - BF + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, + 0x0034, 0x0034, 0x0034, 0x0034, 0x0034, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, 0x0043, + // Entry C0 - FF + 0x0043, 0x0043, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0055, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + // Entry 100 - 13F + 0x0063, 0x0063, 0x006b, + }, + }, + { // dje + "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + + "lbaaniArmeeniAngoolaArgentineAmeriki SamoaOtriÅ¡iOstraaliAruubaAzerba" + + "ayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡iBelgiikiBurkina fasoBu" + + "lgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooliviBreezilBahamasBuutaÅ‹B" + + "otswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookaratiki labooCentraafriki" + + " koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameruunÅ iinKolombiKosta rika" + + "KuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuutiDanemarkDoominiki lab" + + "ooAlžeeriEkwateerEstooniMisraEritreeEspaaɲeEcioopiFinlanduFijiKalkan" + + " gungeyMikroneziFaransiGaabonAlbaasalaama MargantaGrenaadaGorgiFaran" + + "si GuyaanGaanaGibraltarGrinlandGambiGineGwadeluupGinee EkwatorialGre" + + "eceGwatemaalaGuamGine-BissoGuyaaneHondurasKrwaasiHaitiHungaariIndone" + + "eziIrlanduIsrayelIndu labooBritiÅ¡i Indu teekoo laamaIraakIraanAysela" + + "ndItaaliJamaayikUrdunJaapoÅ‹KeeniyaKyrgyzstankamboogiKiribaatiKomoorS" + + "eÅ‹ Kitts nda NevisGurma KooreeHawsa KooreeKuweetKayman gungeyKaazaks" + + "tanLaawosLubnaanSeÅ‹ LussiaLiechtensteinSrilankaLiberiaLeesotoLituaan" + + "iLuxembourgLetooniLiibiMaarokMonakoMoldoviMadagascarMarÅ¡al gungeyMaa" + + "cedooniMaaliMaynamarMongooliMariana Gurma GungeyMartiniikiMooritaani" + + "MontserratMaltaMooris gungeyMaldiivuMalaawiMexikiMaleeziMozambikNaam" + + "ibiKaaledooni TaagaaNižerNorfolk GungooNaajiriiaNikaragwaHollanduNor" + + "veejNeepalNauruNiueZeelandu TaagaOmaanPanamaPeeruFaransi PolineeziPa" + + "pua Ginee TaagaFilipinePaakistanPoloɲeSeÅ‹ Piyer nda MikelonPitikarin" + + "Porto RikoPalestine Dangay nda GaazaPortugaalPaluParaguweyKataarReen" + + "ioÅ‹RumaaniIriÅ¡i labooRwandaSaudiyaSolomon GungeySeeÅ¡elSuudaÅ‹SweedeSi" + + "ngapurSeÅ‹ HelenaSloveeniSlovaakiSeera LeonSan MarinoSenegalSomaaliSu" + + "rinaamSao Tome nda PrinsipeSalvador labooSuuriaSwazilandTurk nda Kay" + + "ikos GungeyCaaduTogoTaayilandTaažikistanTokelauTimoor hawsaTurkmenis" + + "taÅ‹TuniziTongaTurkiTrinidad nda TobaagoTuvaluTaayiwanTanzaaniUkreenU" + + "gandaAmeriki Laabu MarganteyUruguweyUzbeekistanVaatikan LaamaSeÅ‹vins" + + "aÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡i Virgin gungeyAmeerik Virgin Gung" + + "eyVietnaamVanautuWallis nda FutunaSamoaYamanMayootiHawsa Afriki Labo" + + "oZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, + 0x0055, 0x005c, 0x005c, 0x0065, 0x0072, 0x0079, 0x0081, 0x0087, + 0x0087, 0x0094, 0x00a9, 0x00b2, 0x00bd, 0x00c5, 0x00d1, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f5, 0x00fc, 0x0103, 0x0103, + 0x010a, 0x0111, 0x0118, 0x0118, 0x0121, 0x012a, 0x0131, 0x0138, + 0x0138, 0x0152, 0x0164, 0x016a, 0x016f, 0x0175, 0x0180, 0x0186, + 0x018e, 0x0193, 0x019a, 0x019a, 0x01a4, 0x01a9, 0x01b7, 0x01b7, + 0x01b7, 0x01be, 0x01c6, 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01dd, + // Entry 40 - 7F + 0x01ec, 0x01f4, 0x01f4, 0x01fc, 0x0203, 0x0208, 0x0208, 0x020f, + 0x0217, 0x021e, 0x021e, 0x0226, 0x022a, 0x0237, 0x0240, 0x0240, + 0x0247, 0x024d, 0x0262, 0x026a, 0x026f, 0x027d, 0x027d, 0x0282, + 0x028b, 0x0293, 0x0298, 0x029c, 0x02a5, 0x02b5, 0x02bb, 0x02bb, + 0x02c5, 0x02c9, 0x02d3, 0x02da, 0x02da, 0x02da, 0x02e2, 0x02e9, + 0x02ee, 0x02f6, 0x02f6, 0x02ff, 0x0306, 0x030d, 0x030d, 0x0317, + 0x0331, 0x0336, 0x033b, 0x0343, 0x0349, 0x0349, 0x0351, 0x0356, + 0x035d, 0x0364, 0x036e, 0x0376, 0x037f, 0x0385, 0x0399, 0x03a5, + // Entry 80 - BF + 0x03b1, 0x03b7, 0x03c4, 0x03ce, 0x03d4, 0x03db, 0x03e6, 0x03f3, + 0x03fb, 0x0402, 0x0409, 0x0411, 0x041b, 0x0422, 0x0427, 0x042d, + 0x0433, 0x043a, 0x043a, 0x043a, 0x0444, 0x0452, 0x045c, 0x0461, + 0x0469, 0x0471, 0x0471, 0x0485, 0x048f, 0x0499, 0x04a3, 0x04a8, + 0x04b5, 0x04bd, 0x04c4, 0x04ca, 0x04d1, 0x04d9, 0x04e0, 0x04f1, + 0x04f7, 0x0505, 0x050e, 0x0517, 0x051f, 0x0526, 0x052c, 0x0531, + 0x0535, 0x0543, 0x0548, 0x054e, 0x0553, 0x0564, 0x0575, 0x057d, + 0x0586, 0x058d, 0x05a3, 0x05ac, 0x05b6, 0x05d0, 0x05d9, 0x05dd, + // Entry C0 - FF + 0x05e6, 0x05ec, 0x05ec, 0x05f4, 0x05fb, 0x05fb, 0x0607, 0x060d, + 0x0614, 0x0622, 0x0629, 0x0630, 0x0636, 0x063e, 0x0649, 0x0651, + 0x0651, 0x0659, 0x0663, 0x066d, 0x0674, 0x067b, 0x0683, 0x0683, + 0x0698, 0x06a6, 0x06a6, 0x06ac, 0x06b5, 0x06b5, 0x06cc, 0x06d1, + 0x06d1, 0x06d5, 0x06de, 0x06ea, 0x06f1, 0x06fd, 0x070a, 0x0710, + 0x0715, 0x071a, 0x072e, 0x0734, 0x073c, 0x0744, 0x074a, 0x0750, + 0x0750, 0x0767, 0x076f, 0x077a, 0x0788, 0x07a1, 0x07ad, 0x07c3, + 0x07d8, 0x07e0, 0x07e7, 0x07f8, 0x07fd, 0x07fd, 0x0802, 0x0809, + // Entry 100 - 13F + 0x081b, 0x0820, 0x0828, + }, + }, + { // dsb + "AscensionAndorraZjadnoÅ›one arabiske emiratyAfghanistanAntigua a BarbudaA" + + "nguillaAlbaÅ„skaArmeÅ„skaAngolaAntarktisArgentinskaAmeriska SamoaAwstr" + + "iskaAwstralskaArubaÃ…landAzerbajdžanBosniska a HercegowinaBarbadosBan" + + "gladeÅ¡BelgiskaBurkina FasoBulgarskaBahrainBurundiBeninSt. Barthélemy" + + "BermudyBruneiBoliwiskaKaribiska NižozemskaBrazilskaBahamyBhutanBouve" + + "towa kupaBotswanaBěłoruskaBelizeKanadaKokosowe kupyKongo-KinshasaCen" + + "tralnoafriska republikaKongo-BrazzavilleÅ wicarskaCôte d’IvoireCookow" + + "e kupyChilskaKamerunChinaKolumbiskaClippertonowa kupaKosta RikaKubaK" + + "ap VerdeCuraçaoGódowne kupyCypriskaÄŒeska republikaNimskaDiego Garcia" + + "DžibutiDaÅ„skaDominikaDominikaÅ„ska republikaAlgeriskaCeuta a MelillaE" + + "kwadorEstniskaEgyptojskaPódwjacorna SaharaEritrejaÅ paÅ„skaEtiopiskaEu" + + "ropska unijaFinskaFidžiFalklandske kupyMikroneziskaFäröjeFrancojskaG" + + "abunZjadnoÅ›one kralejstwoGrenadaGeorgiskaFrancojska GuyanaGuernseyGh" + + "anaGibraltarGrönlandskaGambijaGinejaGuadeloupeEkwatorialna GinejaGri" + + "chiskaPódpoÅ‚dnjowa Georgiska a PódpoÅ‚dnjowe Sandwichowe kupyGuatemal" + + "aGuamGineja-BissauGuyanaWósebna zastojnstwowa cona HongkongHeardowa " + + "kupa a McDonaldowe kupyHondurasChorwatskaHaitiHungorskaKanariske kup" + + "yIndoneziskaIrskaIsraelManIndiskaBritiski indiskooceaniski teritoriu" + + "mIrakIranIslandskaItalskaJerseyJamaikaJordaniskaJapaÅ„skaKeniaKirgizi" + + "stanKambodžaKiribatiKomorySt. Kitts a NevisPódpoÅ‚nocna KorejaPódpoÅ‚d" + + "njowa KorejaKuwaitKajmaniske kupyKazachstanLaosLibanonSt. LuciaLiech" + + "tensteinSri LankaLiberijaLesothoLitawskaLuxemburgskaLetiskaLibyskaMa" + + "rokkoMonacoMoldawskaCarna GóraSt. MartinMadagaskarMarshallowe kupyMa" + + "kedoÅ„skaMaliMyanmarMongolskaWósebna zastojnstwowa cona MacaoPódpoÅ‚no" + + "cne MarianyMartiniqueMawretaÅ„skaMontserratMaltaMauritiusMalediwyMala" + + "wiMexikoMalajzijaMosambikNamibijaNowa KaledoniskaNigerNorfolkowa kup" + + "aNigerijaNikaraguaNižozemskaNorwegskaNepalNauruNiueNowoseelandskaOma" + + "nPanamaPeruFrancojska PolyneziskaPapua-NeuguineaFilipinyPakistanPóls" + + "kaSt. Pierre a MiquelonPitcairnowe kupyPuerto RicoPalestinski awtono" + + "mny teritoriumPortugalskaPalauParaguayKatarwenkowna OceaniskaRéunion" + + "RumuÅ„skaSerbiskaRuskaRuandaSaudi-ArabiskaSalomonySeychelleSudanÅ weds" + + "kaSingapurSt. HelenaSÅ‚owjeÅ„skaSvalbard a Jan MayenSÅ‚owakskaSierra Le" + + "oneSan MarinoSenegalSomalijaSurinamskaPódpoÅ‚dnjowy SudanSão Tomé a P" + + "ríncipeEl SalvadorSint MaartenSyriskaSwasiskaTristan da CunhaTurks a" + + " Caicos kupyÄŒadFrancojski pódpoÅ‚dnjowy a antarktiski teritoriumTogoT" + + "hailandskaTadźikistanTokelauTimor-LesteTurkmeniskaTuneziskaTongaTurk" + + "ojskaTrinidad a TobagoTuvaluTaiwanTansanijaUkrainaUgandaAmeriska Oce" + + "aniskaZjadnoÅ›one staty AmerikiUruguayUzbekistanVatikaÅ„ske mÄ›stoSt. V" + + "incent a GrenadinyVenezuelaBritiske kněžniske kupyAmeriske kněžniske" + + " kupyVietnamVanuatuWallis a FutunaSamoaKosowoJemenMayottePódpoÅ‚dnjow" + + "a Afrika (Republika)SambijaSimbabwenjeznaty regionswÄ›tAfrikaPódpoÅ‚no" + + "cna AmerikaPódpoÅ‚dnjowa AmerikaOceaniskaPódwjacorna AfrikaSrjejźna A" + + "merikapódzajtÅ¡na AfrikapódpoÅ‚nocna Afrikasrjejźna AfrikapódpoÅ‚dnjowa" + + " AfrikaAmerikapódpoÅ‚nocny ameriski kontinentKaribiskapódzajtÅ¡na Azij" + + "apódpoÅ‚dnjowa AzijakrotkozajtÅ¡na AzijapódpoÅ‚dnjowa EuropaAwstralazij" + + "aMelaneziskaMikroneziska (kupowy region)PolyneziskaAzijacentralna Az" + + "ijapódwjacorna AzijaEuropapódzajtÅ¡na EuropapódpoÅ‚nocna Europapódwjac" + + "orna EuropaÅatyÅ„ska Amerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0048, 0x0050, 0x0059, + 0x0062, 0x0068, 0x0071, 0x007c, 0x008a, 0x0093, 0x009d, 0x00a2, + 0x00a8, 0x00b4, 0x00ca, 0x00d2, 0x00dc, 0x00e4, 0x00f0, 0x00f9, + 0x0100, 0x0107, 0x010c, 0x011b, 0x0122, 0x0128, 0x0131, 0x0146, + 0x014f, 0x0155, 0x015b, 0x0169, 0x0171, 0x017c, 0x0182, 0x0188, + 0x0195, 0x01a3, 0x01bd, 0x01ce, 0x01d8, 0x01e8, 0x01f4, 0x01fb, + 0x0202, 0x0207, 0x0211, 0x0223, 0x022d, 0x0231, 0x023a, 0x0242, + 0x024f, 0x0257, 0x0267, 0x026d, 0x0279, 0x0281, 0x0288, 0x0290, + // Entry 40 - 7F + 0x02a7, 0x02b0, 0x02bf, 0x02c6, 0x02ce, 0x02d8, 0x02eb, 0x02f3, + 0x02fc, 0x0305, 0x0313, 0x0319, 0x031f, 0x032f, 0x033b, 0x0343, + 0x034d, 0x0352, 0x0368, 0x036f, 0x0378, 0x0389, 0x0391, 0x0396, + 0x039f, 0x03ab, 0x03b2, 0x03b8, 0x03c2, 0x03d5, 0x03de, 0x0418, + 0x0421, 0x0425, 0x0432, 0x0438, 0x045c, 0x047c, 0x0484, 0x048e, + 0x0493, 0x049c, 0x04aa, 0x04b5, 0x04ba, 0x04c0, 0x04c3, 0x04ca, + 0x04ee, 0x04f2, 0x04f6, 0x04ff, 0x0506, 0x050c, 0x0513, 0x051d, + 0x0526, 0x052b, 0x0536, 0x053f, 0x0547, 0x054d, 0x055e, 0x0572, + // Entry 80 - BF + 0x0587, 0x058d, 0x059c, 0x05a6, 0x05aa, 0x05b1, 0x05ba, 0x05c7, + 0x05d0, 0x05d8, 0x05df, 0x05e7, 0x05f3, 0x05fa, 0x0601, 0x0608, + 0x060e, 0x0617, 0x0622, 0x062c, 0x0636, 0x0646, 0x0651, 0x0655, + 0x065c, 0x0665, 0x0686, 0x069b, 0x06a5, 0x06b1, 0x06bb, 0x06c0, + 0x06c9, 0x06d1, 0x06d7, 0x06dd, 0x06e6, 0x06ee, 0x06f6, 0x0706, + 0x070b, 0x071a, 0x0722, 0x072b, 0x0736, 0x073f, 0x0744, 0x0749, + 0x074d, 0x075b, 0x075f, 0x0765, 0x0769, 0x077f, 0x078e, 0x0796, + 0x079e, 0x07a5, 0x07ba, 0x07ca, 0x07d5, 0x07f5, 0x0800, 0x0805, + // Entry C0 - FF + 0x080d, 0x0812, 0x0824, 0x082c, 0x0835, 0x083d, 0x0842, 0x0848, + 0x0856, 0x085e, 0x0867, 0x086c, 0x0874, 0x087c, 0x0886, 0x0892, + 0x08a6, 0x08b0, 0x08bc, 0x08c6, 0x08cd, 0x08d5, 0x08df, 0x08f3, + 0x0909, 0x0914, 0x0920, 0x0927, 0x092f, 0x093f, 0x0952, 0x0956, + 0x0988, 0x098c, 0x0997, 0x09a3, 0x09aa, 0x09b5, 0x09c0, 0x09c9, + 0x09ce, 0x09d7, 0x09e8, 0x09ee, 0x09f4, 0x09fd, 0x0a04, 0x0a0a, + 0x0a1c, 0x0a35, 0x0a3c, 0x0a46, 0x0a58, 0x0a6f, 0x0a78, 0x0a91, + 0x0aaa, 0x0ab1, 0x0ab8, 0x0ac7, 0x0acc, 0x0ad2, 0x0ad7, 0x0ade, + // Entry 100 - 13F + 0x0aff, 0x0b06, 0x0b0e, 0x0b1d, 0x0b22, 0x0b28, 0x0b3d, 0x0b53, + 0x0b5c, 0x0b6f, 0x0b80, 0x0b93, 0x0ba7, 0x0bb7, 0x0bcc, 0x0bd3, + 0x0bf3, 0x0bfc, 0x0c0e, 0x0c22, 0x0c36, 0x0c4b, 0x0c57, 0x0c62, + 0x0c7e, 0x0c89, 0x0c8e, 0x0c9d, 0x0caf, 0x0cb5, 0x0cc8, 0x0cdc, + 0x0cef, 0x0d01, + }, + }, + { // dua + "Cameroun", + []uint16{ // 49 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, + }, + }, + { // dyo + "AndorraAfganistanAntigua di BarbudaAngiiyaAlbaniArmeniAngolaArsantinSamo" + + "a yati AmerikOtrisOstraaliaArubaAserbaysanBosni di HersegovinBarbadB" + + "angladesBelsikBurukiina FasoBulgariBahraynBurundiBeneBermudBuruneyBo" + + "liiviBresilBahamaButanBoswanaBelarusBeliisKanadaMofam demokratik mat" + + "i KongoKongoKoddiwarCiliKamerunSiinKolombiKosta RikaKubaKap VerSiipr" + + "Mofam mati CekAlmaañJibutiDanmarkDominikaMofam mati DominikAlseriEku" + + "adorEstoniEsíptEritreeEspaañEcoopiFinlandFijiFransGabonGrenadaSeorsi" + + "GaanaSipraltaarGreenlandGambiGinéGuwadalupGresGuatemalaGuamGiné Bisa" + + "auGiyanOndurasKroasiAytiOÅ‹riEndonesiIrlandIsraelEndIrakIranIislandIt" + + "aliSamaikSapoÅ‹KeniyaKambojKomorSaÅ‹ LusiaSiri LankaLiberiaMadagaskaar" + + "MaliEcinkey yati NoorfokAbari SaudiSudanSingapurSloveniSlovakiSerra " + + "LeonSenegalSomaliSalvadoorCadTogoTailand", + []uint16{ // 227 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0007, 0x0011, 0x0023, 0x002a, 0x0030, + 0x0036, 0x003c, 0x003c, 0x0044, 0x0055, 0x005a, 0x0063, 0x0068, + 0x0068, 0x0072, 0x0085, 0x008b, 0x0094, 0x009a, 0x00a8, 0x00af, + 0x00b6, 0x00bd, 0x00c1, 0x00c1, 0x00c7, 0x00ce, 0x00d5, 0x00d5, + 0x00db, 0x00e1, 0x00e6, 0x00e6, 0x00ed, 0x00f4, 0x00fa, 0x0100, + 0x0100, 0x011b, 0x011b, 0x0120, 0x0120, 0x0128, 0x0128, 0x012c, + 0x0133, 0x0137, 0x013e, 0x013e, 0x0148, 0x014c, 0x0153, 0x0153, + 0x0153, 0x0158, 0x0166, 0x016d, 0x016d, 0x0173, 0x017a, 0x0182, + // Entry 40 - 7F + 0x0194, 0x019a, 0x019a, 0x01a1, 0x01a7, 0x01ad, 0x01ad, 0x01b4, + 0x01bb, 0x01c1, 0x01c1, 0x01c8, 0x01cc, 0x01cc, 0x01cc, 0x01cc, + 0x01d1, 0x01d6, 0x01d6, 0x01dd, 0x01e3, 0x01e3, 0x01e3, 0x01e8, + 0x01f2, 0x01fb, 0x0200, 0x0205, 0x020e, 0x020e, 0x0212, 0x0212, + 0x021b, 0x021f, 0x022b, 0x0230, 0x0230, 0x0230, 0x0237, 0x023d, + 0x0241, 0x0246, 0x0246, 0x024e, 0x0254, 0x025a, 0x025a, 0x025d, + 0x025d, 0x0261, 0x0265, 0x026c, 0x0271, 0x0271, 0x0277, 0x0277, + 0x027d, 0x0283, 0x0283, 0x0289, 0x0289, 0x028e, 0x028e, 0x028e, + // Entry 80 - BF + 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x0298, 0x0298, + 0x02a2, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02a9, + 0x02a9, 0x02a9, 0x02a9, 0x02a9, 0x02b4, 0x02b4, 0x02b4, 0x02b8, + 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, + 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02b8, + 0x02b8, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, + // Entry C0 - FF + 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, 0x02cc, + 0x02d7, 0x02d7, 0x02d7, 0x02dc, 0x02dc, 0x02e4, 0x02e4, 0x02eb, + 0x02eb, 0x02f2, 0x02fc, 0x02fc, 0x0303, 0x0309, 0x0309, 0x0309, + 0x0309, 0x0312, 0x0312, 0x0312, 0x0312, 0x0312, 0x0312, 0x0315, + 0x0315, 0x0319, 0x0320, + }, + }, + { // dz + "ཨེ་སེན་ཤུན་ཚོ་གླིང༌ཨཱན་དོ་རཡུ་ནཱའི་ཊེཌ་ ཨ་རབ་ ཨེ་མེ་རེཊསཨཕ་གྷ་ནི་སà½à½±à½“ཨན་" + + "ཊི་གུ་à½à¼‹ ཨེནཌ་ བྷར་བྷུ་ཌཨང་གི་ལཨཱལ་བེ་ནི་ཡཨར་མི་ནི་ཡཨང་གྷོ་ལའཛམ་གླ" + + "ིང་ལྷོ་མà½à½ à½²à¼‹à½à¾±à½‚ས་གླིངཨར་ཇེན་ཊི་ནས་མོ་ཨ་ཡུ་ཨེས་ཨེ་མངའ་à½à½¼à½„སཨཱོས་ཊྲི་" + + "ཡཨཱོས་ཊྲེལ་ལི་ཡཨ་རུ་བཱཨ་ལནཌ་གླིང་ཚོམཨ་ཛར་བྷའི་ཇཱནབྷོས་ནི་ཡ་ ཨེནཌ་ " + + "ཧར་ཛི་གྷོ་བི་ནབྷར་བེ་ཌོསབངྒ་ལ་དེཤབྷེལ་ཇམབྷར་ཀི་ན་ ཕེ་སོབུལ་ག་རི་ཡབ" + + "ྷ་རེནབྷུ་རུན་ཌིབྷེ་ནིནསེནཊ་ བར་à½à½¼à¼‹à½£à½¼à½˜à¼‹à½˜à½²à½ à½´à½–ར་མུ་ཌབྷྲུ་ནའིབྷེ་ལི་བི" + + "་ཡཀེ་རི་བི་ཡེན་ནེ་དར་ལནཌས྄བྲ་ཛིལབྷ་ཧ་མས྄འབྲུགབོའུ་à½à½ºà½Šà¼‹à½˜à½šà½¼à¼‹à½‚ླིངབྷོཙ" + + "་à½à¼‹à½“བེལ་ཨ་རུ་སུབྷེ་ལིཛཀེ་ན་ཌཀོ་ཀོས་གླིང་ཚོམཀོང་གྷོ ཀིན་ཤ་སསེན་ཊལ་ " + + "ཨཕ་རི་ཀཱན་ རི་པབ་ལིཀཀོང་གྷོ བྷྲ་ཛ་བིལསུ་à½à½²à½Šà¼‹à½›à½¢à¼‹à½£à½ºà½“ཌཀོ་ཊེ་ ཌི་ཨི་à½à½¼" + + "་རེཀུག་གླིང་ཚོམཅི་ལིཀེ་མ་རུནརྒྱ་ནགཀོ་ལོམ་བྷི་ཡཀི་ལི་པེར་ཊོན་མཚོ་གླ" + + "ིང་ཀོས་ཊ་རི་ཀཀིའུ་བྷཀེཔ་བཱཌཀྱཱུར་ར་ཀོà½à½²à¼‹à½¢à½²à½¦à¾Ÿà¼‹à½˜à½ºà½¦à¼‹à½˜à½šà½¼à¼‹à½‚ླིངསཱའི་པྲསཅ" + + "ེཀ་ རི་པབ་ལིཀཇཱར་མ་ནིཌི་ཡེ་གོ་གར་སིའོཇི་བྷུ་ཊིཌེན་མཱཀཌོ་མི་ནི་ཀཌོ་" + + "མི་ནི་ཀཱན་ རི་པབ་ལིཀཨཱལ་ཇི་རི་ཡསེ་ཨུ་à½à¼‹ ཨེནཌ་ མེལ་ལི་ལཨེ་à½à¾­à¼‹à½Œà½¼à½¢à½¨à½ºà½¦" + + "་ཊོ་ནི་ཡཨི་ཇིབཊནུབ་ཕྱོགས་ ས་ཧཱ་རཨེ་རི་ཊྲེ་ཡཨིས་པེནཨི་à½à½²à¼‹à½¡à½¼à¼‹à½”ི་ཡཡུ་" + + "རོབ་གཅིག་བསྡོམས་ཚོགས་པཕིན་ལེནཌཕི་ཇིཕལà¾à¼‹à½£à½“ྜ་གླིང་ཚོམམའི་ཀྲོ་ནི་ཤི་ཡ" + + "ཕཱའེ་རོ་གླིང་ཚོམཕྲཱནསགྷ་བྷོནཡུ་ནཱའི་ཊེཌ་ ཀིང་ཌམགྲྀ་ན་ཌཇཽར་ཇཱགུའི་ཡ" + + "་ན་ ཕྲནས྄་མངའ་à½à½¼à½„སགུ་ཨེརྣ་སིགྷ་ནཇིབ་རཱལ་ཊརགིརཱིན་ལནཌ྄གྷེམ་བི་ཡགྷི་" + + "ནིགོ་ཌེ་ལུ་པེཨེ་ཀུ་ཊོ་རེལ་ གི་ནིགིརིས྄སཱའུà½à¼‹à½‡à½½à½¢à¼‹à½‡à½±à¼‹ དང་ སཱའུà½à¼‹à½¦à½ºà½“ཌ" + + "྄་à½à½²à½…་གླིང་ཚོམགྷོ་ཊ་མ་ལགུ་འམ་ མཚོ་གླིངགྷི་ནི་ བྷི་སཱའུགྷ་ཡ་ནཧོང་ཀོ" + + "ང་ཅཱའི་ནཧཱརཌ་མཚོ་གླིང་ དང་ མེཀ་ཌོ་ནལཌ྄་གླིང་ཚོམཧཱན་ཌུ་རཱས྄ཀྲོ་ཨེ་ཤ" + + "ཧེ་ཊིཧཱང་གྷ་རིཀ་ནེ་རི་གླིང་ཚོམཨིན་ཌོ་ནེ་ཤི་ཡཨཱ་ཡ་ལེནཌཨིས་ར་ཡེལཨ་ཡུ" + + "ལ་ ཨོཕ་ མཱནརྒྱ་གརབྲི་ཊིཤ་རྒྱ་གར་གྱི་རྒྱ་མཚོ་ས་à½à½¼à½„སཨི་རཱཀཨི་རཱནཨཱའི" + + "ས་ལེནཌཨི་ཊ་ལིཇེར་སིཇཱ་མཻ་ཀཇོར་ཌནཇ་པཱནཀེན་ཡཀིར་གིས་སà½à½±à½“ཀམ་བྷོ་ཌི་ཡཀ" + + "ི་རི་བ་à½à½²à¼‹à½˜à½šà½¼à¼‹à½‚ླིངཀོ་མོ་རོསསེནཊ་ ཀིཊས་ དང་ ནེ་བིསབྱང་ ཀོ་རི་ཡལྷོ་ " + + "ཀོ་རི་ཡཀུ་à½à½ºà½Šà½à½ºà¼‹à½˜à½ºà½“་གླིང་ཚོམཀ་ཛགས་སà½à½±à½“ལཱ་à½à½¼à½¦à½£à½ºà¼‹à½–་ནོནསེནཊ་ ལུ་སི་ཡལ" + + "ིཀ་à½à½“ས་à½à¼‹à½¡à½²à½“ཤྲཱི་ལང་ཀལཱའི་བེ་རི་ཡལཻ་སོ་à½à½¼à½£à½²à¼‹à½à½´à¼‹à½à½ºà¼‹à½“ི་ཡལག་ཛམ་བོརྒལཊ" + + "་བི་ཡལི་བི་ཡམོ་རོ་ཀོམོ་ན་ཀོམོལ་དོ་བཱམོན་ཊི་ནེག་རོསེནཊ་ མཱར་ཊིནམ་དཱ" + + "་གེས་ཀརམར་ཤེལ་གླིང་ཚོམམ་སེ་ཌོ་ནི་ཡམཱ་ལིམི་ཡཱན་མར་ (བྷར་མ)སོག་པོ་ཡུ" + + "ལམཀ་ཨའུ་ཅཱའི་ནབྱང་ཕྱོགས་ཀྱི་མ་ར་ཡ་ན་གླིང་ཚོམམཱར་ཊི་ནིཀམོ་རི་ཊེ་ནི་" + + "ཡམོན་ས་རཊམཱལ་ཊམོ་རི་ཤཱསམཱལ་དིབསམ་ལ་à½à½²à½˜à½ºà½€à¼‹à½¦à½²à¼‹à½€à½¼à½˜à¼‹à½£à½ºà¼‹à½¤à½²à¼‹à½¡à½˜à½¼à¼‹à½›à½˜à¼‹à½–ྷིཀན" + + "་མི་བི་ཡནིའུ་ཀ་ལི་དོ་ནི་ཡནཱའི་ཇཱནོར་ཕོལཀ་མཚོ་གླིང༌ནཱའི་ཇི་རི་ཡནི་ཀ" + + "ྲ་à½à¼‹à½‚ནེ་དར་ལནཌས྄ནོར་à½à½ºà½–ལ་ཡུལནའུ་རུ་ནི་ཨུ་ཨཻནིའུ་ཛི་ལེནཌཨོ་མཱནཔ་ན་མ" + + "པེ་རུཕྲཱནས྄་ཀྱི་པོ་ལི་ནི་ཤི་ཡཔ་པུ་ ནིའུ་གི་ནིཕི་ལི་པིནསཔ་ཀི་སà½à½±à½“པོ" + + "་ལེནཌསིནཊ་པི་ཡེར་ ཨེནཌ་ མིཀོ་ལེནཔིཊ་ཀེ་ཡེརན་གླིང་ཚོམཔུ་འེར་ཊོ་རི་à½" + + "ོཔེ་ལིསི་ཊི་ནི་ཡན་ཊེ་རི་à½à½¼à¼‹à½¢à½²à½”ོར་ཅུ་གཱལཔ་ལའུཔ་ར་གུ་à½à½ à½²à½€à¼‹à½Šà½¢à½¨à½¼à½¤à½²à¼‹à½¡à½±à½“" + + "་ན་གྱི་མà½à½ à¼‹à½˜à½šà½˜à½¦à½¢à½ºà¼‹à½¡à½´à¼‹à½“ི་ཡོནརོ་མེ་ནི་ཡསཱར་བྷི་ཡཨུ་རུ་སུརུ་à½à½“་ཌསཱà½à¼‹à½‘" + + "ི་ ཨ་རེ་བྷི་ཡསོ་ལོ་མོན་ གླིང་ཚོམསེ་ཤཱལསསུ་ཌཱནསུའི་ཌེནསིང་ག་པོརསེནཊ" + + "་ ཧེ་ལི་ནསུ་ལོ་བི་ནི་ཡསྭཱལ་བྷརྡ་ ཨེནཌ་ ཇཱན་མ་ཡེནསུ་ལོ་བཱ་ཀི་ཡསི་ར་" + + " ལི་འོནསཱན་མ་རི་ནོསེ་ནི་གྷལསོ་མ་ལི་ཡསུ་རི་ནཱམསཱའུà½à¼‹ སུ་ཌཱནསà½à¼‹ ཊོ་མེ་" + + " ཨེནཌ་ པྲྀན་སི་པེཨེལ་སལ་བ་ཌོརསིནཊ་ མཱར་ཊེནསི་རི་ཡསུ་à½à¼‹à½›à½²à¼‹à½£à½ºà½“ཌà½à¾²à½²à½¦à¼‹à½à½“" + + "་ད་ཀུན་ཧà½à½´à½¢à¾à½¦à¾„་ ཨེནཌ་ ཀ་ཀོས་གླིང་ཚོམཅཱཌཕྲནཅ་གི་ལྷོ་ཕྱོགས་མངའ་à½à½¼à½„སཊ" + + "ོ་གྷོà½à½±à½ à½²à¼‹à½£à½ºà½“ཌà½à¼‹à½‡à½²à½‚་གི་སà½à½±à½“à½à½¼à¼‹à½€à½ºà¼‹à½£à½ à½´à¼‹ མཚོ་གླིངà½à½²à¼‹à¼‹à½˜à½¼à½¢à¼‹à½£à½ºà¼‹à½¨à½ºà½¦à½Šà½Šà½±à½¢à½€à¼‹" + + "མེནའི་སà½à½±à½“ཊུ་ནི་ཤི་ཡཊོང་གྷཊཱར་ཀིཊི་ནི་ཌཱཌ་ ཨེནཌ་ ཊོ་བྷེ་གྷོà½à½´à¼‹à½à¼‹à½£à½´" + + "ཊཱའི་à½à½±à½“ཊཱན་ཛཱ་ནི་ཡཡུ་ཀརེནཡུ་གྷན་ཌཡུ་ཨེས་གྱི་མà½à½ à¼‹à½˜à½šà½˜à½¦à¼‹à½˜à½šà½¼à¼‹à½‚ླིང་ཡུ་" + + "ཨེས་ཨེཡུ་རུ་གུ་à½à½ à½²à½¨à½´à½¦à¼‹à½–ེག་གི་སà½à½±à½“བ་ཊི་ཀཱན་ སི་ཊིསེནཊ་à½à½²à½“་སེནཌ྄ ཨེན" + + "ཌ་ གི་རེ་ན་དིནས྄བེ་ནི་ཛུ་à½à½ºà¼‹à½£à½à½¢à½‡à½²à½“་གླིང་ཚོམ་ བྲཱི་ཊིཤ་མངའ་à½à½¼à½„སà½à½¢à½‡à½²" + + "ན་གླིང་ཚོམ་ ཡུ་ཨེས་ཨེ་མངའ་à½à½¼à½„སབེཊ་ནཱམà½à¼‹à½“ུ་ཨ་à½à½´à½à½£à¼‹à½£à½²à½¦à¾„་ ཨེནཌ་ ཕུ་à½à½´" + + "་ན་ས་མོ་ཨཡེ་མེནམེ་ཡོཊསཱའུà½à¼‹ ཨཕ་རི་ཀཛམ་བྷི་ཡཛིམ་བྷབ་à½à½ºà½„ོ་མ་ཤེས་པའི་" + + "ལུང་ཕྱོགསའཛམ་གླིང༌ཨཕ་རི་ཀབྱང་ཨ་མི་རི་ཀལྷོ་ཨ་མི་རི་ཀཨོཤི་ཡཱན་ནནུབ་ཕ" + + "ྱོགས་ཀྱི་ཨཕ་རི་ཀབར་ཕྱོགས་ཨ་མི་རི་ཀཤར་ཕྱོགས་ཀྱི་ཨཕ་རི་ཀབྱང་ཕྱོགས་ཀྱ" + + "ི་ཨཕ་རི་ཀསྦུག་ཕྱོགས་ཀྱི་ཨཕ་རི་ཀལྷོའི་ཨཕ་རི་ཀཨ་མི་རི་ཀ་ཚུབྱང་ཕྱོགས་" + + "ཀྱི་ཨ་མི་རི་ཀཀེ་རི་བི་ཡེནཤར་ཕྱོགས་ཀྱི་ཨེ་ཤི་ཡལྷོའི་ཨེ་ཤི་ཡལྷོ་ཤར་ཕ" + + "ྱོགས་ཀྱི་ཨེ་ཤི་ཡལྷོའི་ཡུ་རོབཨཱོས་ཊྲེལ་ཨེ་ཤི་ཡམེ་ལ་ནི་ཤི་ཡལུང་ཕྱོགས" + + "་མའི་ཀྲོ་ནི་ཤི་ཡཔོ་ལི་ནི་ཤི་ཡཨེ་ཤི་ཡསྦུག་ཕྱོགས་ཀྱི་ཨེ་ཤི་ཡནུབ་ཕྱོག" + + "ས་ཀྱི་ཨེ་ཤི་ཡཡུ་རོབཤར་ཕྱོགས་ཀྱི་ཡུ་རོབབྱང་ཕྱོགས་ཀྱི་ཡུ་རོབནུབ་ཕྱོག" + + "ས་ཀྱི་ཡུ་རོབལེ་ཊིནཨ་མི་རི་ཀ", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0039, 0x0051, 0x00a4, 0x00cb, 0x0118, 0x012d, 0x014e, + 0x016c, 0x0184, 0x01d5, 0x01f6, 0x0241, 0x025f, 0x0289, 0x029e, + 0x02c8, 0x02ef, 0x0348, 0x0366, 0x0381, 0x0396, 0x03c1, 0x03df, + 0x03f1, 0x040f, 0x0424, 0x045e, 0x0473, 0x048b, 0x04ac, 0x04f4, + 0x0506, 0x051e, 0x052d, 0x0560, 0x0578, 0x0599, 0x05ae, 0x05c0, + 0x05ed, 0x0618, 0x0668, 0x0699, 0x06c3, 0x06f7, 0x071b, 0x072a, + 0x0742, 0x0754, 0x0778, 0x07bd, 0x07db, 0x07f0, 0x0805, 0x0823, + 0x085f, 0x0877, 0x089f, 0x08b7, 0x08e7, 0x0902, 0x0917, 0x0935, + // Entry 40 - 7F + 0x0978, 0x0999, 0x09da, 0x09f5, 0x0a16, 0x0a2b, 0x0a5c, 0x0a7d, + 0x0a92, 0x0ab9, 0x0b04, 0x0b1c, 0x0b2b, 0x0b5b, 0x0b88, 0x0bb8, + 0x0bc7, 0x0bdc, 0x0c13, 0x0c28, 0x0c3a, 0x0c80, 0x0c9e, 0x0caa, + 0x0cc8, 0x0ce9, 0x0d04, 0x0d16, 0x0d37, 0x0d6e, 0x0d80, 0x0dfa, + 0x0e15, 0x0e40, 0x0e6e, 0x0e80, 0x0eaa, 0x0f1b, 0x0f3c, 0x0f54, + 0x0f63, 0x0f7e, 0x0fae, 0x0fd8, 0x0ff3, 0x100e, 0x1037, 0x1049, + 0x10ac, 0x10be, 0x10d0, 0x10ee, 0x1103, 0x1115, 0x112a, 0x113c, + 0x114b, 0x115a, 0x117e, 0x119f, 0x11d8, 0x11f3, 0x122f, 0x1251, + // Entry 80 - BF + 0x1273, 0x1285, 0x12b2, 0x12d0, 0x12e2, 0x12fa, 0x131f, 0x1346, + 0x1361, 0x1385, 0x139d, 0x13c4, 0x13e2, 0x13f7, 0x140c, 0x1424, + 0x1439, 0x1454, 0x147b, 0x14a0, 0x14c1, 0x14ee, 0x1512, 0x1521, + 0x1551, 0x156f, 0x1596, 0x15f0, 0x160e, 0x1635, 0x164d, 0x165c, + 0x1677, 0x168f, 0x16a1, 0x16bc, 0x16d7, 0x16f5, 0x1710, 0x1743, + 0x1758, 0x178e, 0x17b2, 0x17cd, 0x17ee, 0x1800, 0x1812, 0x1827, + 0x183f, 0x1863, 0x1875, 0x1884, 0x1893, 0x18db, 0x1909, 0x1927, + 0x1942, 0x1957, 0x19a4, 0x19e0, 0x1a0d, 0x1a61, 0x1a7f, 0x1a8e, + // Entry C0 - FF + 0x1aac, 0x1ab8, 0x1afd, 0x1b21, 0x1b3f, 0x1b5a, 0x1b72, 0x1b87, + 0x1bbb, 0x1bf2, 0x1c07, 0x1c19, 0x1c31, 0x1c4c, 0x1c71, 0x1c98, + 0x1ce2, 0x1d09, 0x1d2b, 0x1d4c, 0x1d67, 0x1d82, 0x1d9d, 0x1dc2, + 0x1e0d, 0x1e31, 0x1e56, 0x1e6b, 0x1e8f, 0x1ebc, 0x1f0c, 0x1f15, + 0x1f63, 0x1f75, 0x1f90, 0x1fb7, 0x1fee, 0x201b, 0x2048, 0x2066, + 0x2078, 0x208a, 0x20d7, 0x20ec, 0x2104, 0x2125, 0x213a, 0x2152, + 0x21a9, 0x21c4, 0x21e8, 0x2215, 0x2240, 0x22a2, 0x22c9, 0x232a, + 0x238e, 0x23a3, 0x23be, 0x23ff, 0x2411, 0x2411, 0x2423, 0x2435, + // Entry 100 - 13F + 0x245d, 0x2475, 0x2493, 0x24d5, 0x24f0, 0x2505, 0x252c, 0x2553, + 0x2571, 0x25b0, 0x25e6, 0x2622, 0x2661, 0x26a3, 0x26ca, 0x26ee, + 0x2733, 0x2757, 0x2793, 0x27ba, 0x2802, 0x2826, 0x2859, 0x287d, + 0x28c8, 0x28ef, 0x2904, 0x2946, 0x2985, 0x2997, 0x29d0, 0x2a0c, + 0x2a48, 0x2a75, + }, + }, + { // ebu + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // ee + "Ascension Æ’udomekpo nutomeAndorra nutomeUnited Arab Emirates nutomeAfgha" + + "nistan nutomeÌAntigua kple Barbuda nutomeAnguilla nutomeAlbania nuto" + + "meArmenia nutomeAngola nutomeAntartica nutomeArgentina nutomeAmerika" + + " Samoa nutomeAustria nutomeAustralia nutomeAruba nutomeÃ…land Æ’udomek" + + "po nutomeAzerbaijan nutomeBosnia kple Herzergovina nutomeBarbados nu" + + "tomeBangladesh nutomeBelgium nutomeBurkina Faso nutomeBulgaria nutom" + + "eBahrain nutomeBurundi nutomeBenin nutomeSaint Barthélemy nutomeBerm" + + "uda nutomeBrunei nutomeBolivia nutomeBrazil nutomeBahamas nutomeBhut" + + "an nutomeBouvet Æ’udomekpo nutomeBotswana nutomeBelarus nutomeBelize " + + "nutomeCanada nutomeKokos (Kiling) fudomekpo nutomeKongo Kinshasa nut" + + "omeTitina Afrika repÉ”blik nutomeKongo Brazzaville nutomeSwitzerland " + + "nutomeKote d’Ivoire nutomeKook Æ’udomekpo nutomeTsile nutomeKamerun n" + + "utomeTsaina nutomeKolombia nutomeKlipaton Æ’udomekpo nutomeKosta Rika" + + " nutomeKuba nutomeKape Verde nutomeKristmas Æ’udomekpo nutomeSaiprus " + + "nutomeTsÉ›k repÉ”blik nutomeGermania nutomeDiego Garsia nutomeDzibuti " + + "nutomeDenmark nutomeDominika nutomeDominika repÉ”blik nutomeAlgeria n" + + "utomeKeuta and Melilla nutomeEkuadÉ” nutomeEstonia nutomeEgypte nutom" + + "eÆ”etoÉ–oÆ’e Sahara nutomeEritrea nutomeSpain nutomeEtiopia nutomeEurop" + + "a Wɔɖeka nutomeFinland nutomeFidzi nutomeFalkland Æ’udomekpowo nutome" + + "Mikronesia nutomeFaroe Æ’udomekpowo nutomeFrance nutomeGabÉ”n nutomeUn" + + "ited Kingdom nutomeGrenada nutomeGeorgia nutomeFrentsi Gayana nutome" + + "Guernse nutomeGhana nutomeGibraltar nutomeGrinland nutomeGambia nuto" + + "meGuini nutomeGuadelupe nutomeEkuatorial Guini nutomeGreece nutomeAn" + + "yiehe Georgia kple Anyiehe Sandwich Æ’udomekpowo nutomeGuatemala nuto" + + "meGuam nutomeGini-Bisao nutomeGuyanaduHÉ”ng KÉ”ng SAR Tsaina nutomeHea" + + "rd kple Mcdonald Æ’udomekpowo nutomeHondurasduKroatsia nutomeHaiti nu" + + "tomeHungari nutomeKanari Æ’udomekpowo nutomeIndonesia nutomeIreland n" + + "utomeIsrael nutomeAisle of Man nutomeIndia nutomeBritaintÉ”wo Æ’e indi" + + "a Æ’udome nutomeiraqdukÉ”Iran nutomeAiseland nutomeItalia nutomeDzÉ›se " + + "nutomeDzamaika nutomeYordan nutomeDzapan nutomeKenya nutomeKirgizsta" + + "n nutomeKambodia nutomeKiribati nutomeKomoros nutomeSaint Kitis kple" + + " Nevis nutomeDziehe Korea nutomeAnyiehe Korea nutomeKuwait nutomeKay" + + "man Æ’udomekpowo nutomeKazakstan nutomeLaos nutomeLebanÉ”n nutomeSaint" + + " Lusia nutomeLitsenstein nutomeSri Lanka nutomeLiberia nutomeLÉ›soto " + + "nutomeLituania nutomeLazembÉ”g nutomeLatvia nutomeLibya nutomeMoroko " + + "nutomeMonako nutomeMoldova nutomeMontenegro nutomeSaint Martin nutom" + + "eMadagaska nutomeMarshal Æ’udomekpowo nutomeMakedonia nutomeMali nuto" + + "meMyanmar (Burma) nutomeMongolia nutomeMacau SAR Tsaina nutomeDziehe" + + " Marina Æ’udomekpowo nutomeMartiniki nutomeMauritania nutomeMontserra" + + "t nutomeMalta nutomemauritiusdukÉ”maldivesdukÉ”Malawi nutomeMexico nut" + + "omeMalaysia nutomeMozambiki nutomeNamibia nutomeNew Kaledonia nutome" + + "Niger nutomeNorfolk Æ’udomekpo nutomeNigeria nutomeNicaraguadukÉ”Nethe" + + "rlands nutomeNorway nutomeNepal nutomeNauru nutomeNiue nutomeNew Zea" + + "land nutomeOman nutomePanama nutomePeru nutomeFrentsi PÉ”linesia nuto" + + "mePapua New Gini nutomeFilipini nutomePakistan nutomePoland nutomeSa" + + "int Pierre kple MikelÉ”n nutomePitkairn Æ’udomekpo nutomePuerto Riko n" + + "utomePalestinia nutomePortugal nutomePalau nutomeParagua nutomeKatar" + + " nutomeOutlaying Oceania nutomeRéunion nutomeRomania nutomeRussia nu" + + "tomeRwanda nutomeSaudi Arabia nutomeSolomon Æ’udomekpowo nutomeSeshÉ›l" + + "s nutomeSudan nutomeSweden nutomeSingapÉ”r nutomeSaint Helena nutomeS" + + "lovenia nutomeSvalbard kple Yan Mayen nutomeSlovakia nutomeSierra Le" + + "one nutomeSan Marino nutomeSenegal nutomeSomalia nutomeSuriname nuto" + + "meSão Tomé kple Príncipe nutomeEl SalvadÉ” nutomeSiria nutomeSwazilan" + + "d nutomeTristan da Kunha nutomeTÉ›ks kple Kaikos Æ’udomekpowo nutomeTs" + + "ad nutomeAnyiehe Franseme nutomeTogo nutomeThailand nutomeTajikistan" + + " nutomeTokelau nutomeTimor-Leste nutomeTÉ›kmenistan nutomeTunisia nut" + + "omeTonga nutomeTÉ›ki nutomeTrinidad kple Tobago nutomeTuvalu nutomeTa" + + "iwan nutomeTanzania nutomeUkraine nutomeUganda nutomeU.S. Minor Outl" + + "aying Æ’udomekpowo nutomeUSA nutomeuruguaydukÉ”Uzbekistan nutomeVatika" + + "ndu nutomeSaint Vincent kple Grenadine nutomeVenezuela nutomeBritain" + + "tÉ”wo Æ’e Virgin Æ’udomekpowo nutomeU.S. VÉ›rgin Æ’udomekpowo nutomeVietn" + + "am nutomeVanuatu nutomeWallis kple Futuna nutomeSamoa nutomeYemen nu" + + "tomeMayotte nutomeAnyiehe Africa nutomeZambia nutomeZimbabwe nutomen" + + "utome manyaxexemeAfrika nutomeDziehe Amerika nutomeAnyiehe Amerika n" + + "utomeOceania nutomeÆ”etoÉ–oÆ’elɔƒo Afrika nutomeTitina Amerika nutomeÆ”e" + + "dzeÆ’e Afrika nutomeDziehe Afrika nutomeTitina Afrika nutomeAnyiehelÉ”" + + "Æ’o Afrika nutomeAmerika nutomeDziehelɔƒo Amerika nutomeKaribbea nut" + + "omeÆ”edzeÆ’e Asia nutomeAnyiehelɔƒo Asia nutomeAnyiehe Æ”edzeÆ’e Afrika " + + "nutomeAnyiehelɔƒo Europa nutomeAustralia kple New Zealand nutomeMela" + + "nesia nutomeMikronesiaPÉ”linesia nutomeAsia nutomeTitina Asia nutomeÆ”" + + "etoÉ–oÆ’elɔƒo Asia nutomeEuropa nutomeÆ”edzeÆ’e Europa nutomeDziehelɔƒo " + + "Europa nutomeÆ”etoÉ–oÆ’elɔƒo Europa nutomeLatin Amerika nutome", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0029, 0x0044, 0x0056, 0x0073, 0x0082, 0x0090, + 0x009e, 0x00ab, 0x00bb, 0x00cb, 0x00df, 0x00ed, 0x00fd, 0x0109, + 0x0121, 0x0132, 0x0151, 0x0160, 0x0171, 0x017f, 0x0192, 0x01a1, + 0x01af, 0x01bd, 0x01c9, 0x01e1, 0x01ef, 0x01fc, 0x020a, 0x020a, + 0x0217, 0x0225, 0x0232, 0x024a, 0x0259, 0x0267, 0x0274, 0x0281, + 0x02a0, 0x02b5, 0x02d3, 0x02eb, 0x02fd, 0x0313, 0x0329, 0x0335, + 0x0343, 0x0350, 0x035f, 0x0379, 0x038a, 0x0395, 0x03a6, 0x03a6, + 0x03c0, 0x03ce, 0x03e4, 0x03f3, 0x0406, 0x0414, 0x0422, 0x0431, + // Entry 40 - 7F + 0x044a, 0x0458, 0x0470, 0x047e, 0x048c, 0x0499, 0x04b2, 0x04c0, + 0x04cc, 0x04da, 0x04f0, 0x04fe, 0x050a, 0x0526, 0x0537, 0x0550, + 0x055d, 0x056a, 0x057f, 0x058d, 0x059b, 0x05b0, 0x05be, 0x05ca, + 0x05da, 0x05e9, 0x05f6, 0x0602, 0x0612, 0x0629, 0x0636, 0x066f, + 0x067f, 0x068a, 0x069b, 0x06a3, 0x06c0, 0x06e7, 0x06f1, 0x0700, + 0x070c, 0x071a, 0x0734, 0x0744, 0x0752, 0x075f, 0x0772, 0x077e, + 0x07a3, 0x07ac, 0x07b7, 0x07c6, 0x07d3, 0x07e0, 0x07ef, 0x07fc, + 0x0809, 0x0815, 0x0826, 0x0835, 0x0844, 0x0852, 0x086f, 0x0882, + // Entry 80 - BF + 0x0896, 0x08a3, 0x08bd, 0x08cd, 0x08d8, 0x08e7, 0x08f9, 0x090b, + 0x091b, 0x0929, 0x0937, 0x0946, 0x0956, 0x0963, 0x096f, 0x097c, + 0x0989, 0x0997, 0x09a8, 0x09bb, 0x09cb, 0x09e6, 0x09f6, 0x0a01, + 0x0a17, 0x0a26, 0x0a3d, 0x0a5e, 0x0a6e, 0x0a7f, 0x0a90, 0x0a9c, + 0x0aaa, 0x0ab7, 0x0ac4, 0x0ad1, 0x0ae0, 0x0af0, 0x0afe, 0x0b12, + 0x0b1e, 0x0b37, 0x0b45, 0x0b53, 0x0b65, 0x0b72, 0x0b7e, 0x0b8a, + 0x0b95, 0x0ba7, 0x0bb2, 0x0bbf, 0x0bca, 0x0be3, 0x0bf8, 0x0c07, + 0x0c16, 0x0c23, 0x0c44, 0x0c5e, 0x0c70, 0x0c81, 0x0c90, 0x0c9c, + // Entry C0 - FF + 0x0caa, 0x0cb6, 0x0cce, 0x0cdd, 0x0ceb, 0x0ceb, 0x0cf8, 0x0d05, + 0x0d18, 0x0d33, 0x0d42, 0x0d4e, 0x0d5b, 0x0d6b, 0x0d7e, 0x0d8d, + 0x0dab, 0x0dba, 0x0dcd, 0x0dde, 0x0dec, 0x0dfa, 0x0e09, 0x0e09, + 0x0e29, 0x0e3b, 0x0e3b, 0x0e47, 0x0e57, 0x0e6e, 0x0e93, 0x0e9e, + 0x0eb5, 0x0ec0, 0x0ecf, 0x0ee0, 0x0eee, 0x0f00, 0x0f13, 0x0f21, + 0x0f2d, 0x0f39, 0x0f54, 0x0f61, 0x0f6e, 0x0f7d, 0x0f8b, 0x0f98, + 0x0fc0, 0x0fca, 0x0fd6, 0x0fe7, 0x0ff7, 0x101a, 0x102a, 0x1055, + 0x1075, 0x1083, 0x1091, 0x10aa, 0x10b6, 0x10b6, 0x10c2, 0x10d0, + // Entry 100 - 13F + 0x10e5, 0x10f2, 0x1101, 0x110d, 0x1113, 0x1120, 0x1135, 0x114b, + 0x1159, 0x1178, 0x118d, 0x11a4, 0x11b8, 0x11cc, 0x11e7, 0x11f5, + 0x1210, 0x121f, 0x1234, 0x124d, 0x126c, 0x1287, 0x12a8, 0x12b8, + 0x12c2, 0x12d3, 0x12de, 0x12f0, 0x130d, 0x131a, 0x1331, 0x134b, + 0x136a, 0x137e, + }, + }, + { // el + elRegionStr, + elRegionIdx, + }, + { // en + enRegionStr, + enRegionIdx, + }, + {}, // en-AU + { // en-GB + enGBRegionStr, + enGBRegionIdx, + }, + {}, // en-NZ + { // eo + "AndoroUnuiÄintaj Arabaj EmirlandojAfganujoAntigvo-BarbudoAngviloAlbanujo" + + "ArmenujoAngoloAntarktoArgentinoAÅ­strujoAÅ­stralioAruboAzerbajÄanoBosn" + + "io-HercegovinoBarbadoBangladeÅoBelgujoBurkinoBulgarujoBarejnoBurundo" + + "BeninoBermudojBrunejoBolivioBraziloBahamojButanoBocvanoBelorusujoBel" + + "izoKanadoCentr-Afrika RespublikoKongoloSvisujoEbur-BordoKukinsulojĈi" + + "lioKamerunoĈinujoKolombioKostarikoKuboKabo-VerdoKiproĈeÄ¥ujoGermanujo" + + "ÄœibutioDanujoDominikoDomingoAlÄerioEkvadoroEstonujoEgiptoOkcidenta " + + "SaharoEritreoHispanujoEtiopujoFinnlandoFiÄojMikronezioFeroojFrancujo" + + "GabonoUnuiÄinta ReÄlandoGrenadoKartvelujoFranca GvianoGanaoÄœibraltar" + + "oGronlandoGambioGvineoGvadelupoEkvatora GvineoGrekujoSud-Georgio kaj" + + " Sud-SandviĉinsulojGvatemaloGvamoGvineo-BisaÅ­oGujanoHerda kaj Makdon" + + "aldaj InsulojHonduroKroatujoHaitioHungarujoIndonezioIrlandoIsraeloHi" + + "ndujoBrita Hindoceana TeritorioIrakoIranoIslandoItalujoJamajkoJordan" + + "ioJapanujoKenjoKirgizistanoKamboÄoKiribatoKomorojSent-Kristofo kaj N" + + "evisoNord-KoreoSud-KoreoKuvajtoKejmanojKazaÄ¥stanoLaosoLibanoSent-Luc" + + "ioLiÄ¥tenÅtejnoSri-LankoLiberioLesotoLitovujoLuksemburgoLatvujoLibioM" + + "arokoMonakoMoldavujoMadagaskaroMarÅalojMakedonujoMalioMjanmaoMongolu" + + "joNord-MarianojMartinikoMaÅ­ritanujoMaltoMaÅ­ricioMaldivojMalavioMeksi" + + "koMalajzioMozambikoNamibioNov-KaledonioNiÄeroNorfolkinsuloNiÄerioNik" + + "aragvoNederlandoNorvegujoNepaloNauroNiuoNov-ZelandoOmanoPanamoPeruoF" + + "ranca PolinezioPapuo-Nov-GvineoFilipinojPakistanoPollandoSent-Piero " + + "kaj MikelonoPitkarna InsuloPuerto-RikoPortugalujoBelaÅ­oParagvajoKata" + + "roReunioRumanujoRusujoRuandoSaÅ­da ArabujoSalomonojSejÅelojSudanoSved" + + "ujoSingapuroSent-HelenoSlovenujoSvalbardo kaj Jan-Majen-insuloSlovak" + + "ujoSiera-LeonoSan-MarinoSenegaloSomalujoSurinamoSao-Tomeo kaj Princi" + + "peoSalvadoroSirioSvazilandoĈadoTogoloTajlandoTaÄikujoTurkmenujoTuniz" + + "ioTongoTurkujoTrinidado kaj TobagoTuvaloTajvanoTanzanioUkrajnoUgando" + + "Usonaj malgrandaj insulojUsonoUrugvajoUzbekujoVatikanoSent-Vincento " + + "kaj la GrenadinojVenezueloBritaj VirgulininsulojUsonaj Virgulininsul" + + "ojVjetnamoVanuatuoValiso kaj FutunoSamooJemenoMajotoSud-AfrikoZambio" + + "Zimbabvo", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0023, 0x002b, 0x003a, 0x0041, 0x0049, + 0x0051, 0x0057, 0x005f, 0x0068, 0x0068, 0x0071, 0x007b, 0x0080, + 0x0080, 0x008c, 0x009e, 0x00a5, 0x00b0, 0x00b7, 0x00be, 0x00c7, + 0x00ce, 0x00d5, 0x00db, 0x00db, 0x00e3, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00ff, 0x0105, 0x0105, 0x010c, 0x0116, 0x011c, 0x0122, + 0x0122, 0x0122, 0x0139, 0x0140, 0x0147, 0x0151, 0x015b, 0x0161, + 0x0169, 0x0170, 0x0178, 0x0178, 0x0181, 0x0185, 0x018f, 0x018f, + 0x018f, 0x0194, 0x019c, 0x01a5, 0x01a5, 0x01ad, 0x01b3, 0x01bb, + // Entry 40 - 7F + 0x01c2, 0x01ca, 0x01ca, 0x01d2, 0x01da, 0x01e0, 0x01f0, 0x01f7, + 0x0200, 0x0208, 0x0208, 0x0211, 0x0217, 0x0217, 0x0221, 0x0227, + 0x022f, 0x0235, 0x0249, 0x0250, 0x025a, 0x0267, 0x0267, 0x026c, + 0x0277, 0x0280, 0x0286, 0x028c, 0x0295, 0x02a4, 0x02ab, 0x02ce, + 0x02d7, 0x02dc, 0x02ea, 0x02f0, 0x02f0, 0x030d, 0x0314, 0x031c, + 0x0322, 0x032b, 0x032b, 0x0334, 0x033b, 0x0342, 0x0342, 0x0349, + 0x0363, 0x0368, 0x036d, 0x0374, 0x037b, 0x037b, 0x0382, 0x038a, + 0x0392, 0x0397, 0x03a3, 0x03ab, 0x03b3, 0x03ba, 0x03d2, 0x03dc, + // Entry 80 - BF + 0x03e5, 0x03ec, 0x03f4, 0x03ff, 0x0404, 0x040a, 0x0414, 0x0422, + 0x042b, 0x0432, 0x0438, 0x0440, 0x044b, 0x0452, 0x0457, 0x045d, + 0x0463, 0x046c, 0x046c, 0x046c, 0x0477, 0x0480, 0x048a, 0x048f, + 0x0496, 0x049f, 0x049f, 0x04ac, 0x04b5, 0x04c1, 0x04c1, 0x04c6, + 0x04cf, 0x04d7, 0x04de, 0x04e5, 0x04ed, 0x04f6, 0x04fd, 0x050a, + 0x0511, 0x051e, 0x0526, 0x052f, 0x0539, 0x0542, 0x0548, 0x054d, + 0x0551, 0x055c, 0x0561, 0x0567, 0x056c, 0x057c, 0x058c, 0x0595, + 0x059e, 0x05a6, 0x05bd, 0x05cc, 0x05d7, 0x05d7, 0x05e2, 0x05e9, + // Entry C0 - FF + 0x05f2, 0x05f8, 0x05f8, 0x05fe, 0x0606, 0x0606, 0x060c, 0x0612, + 0x0620, 0x0629, 0x0632, 0x0638, 0x063f, 0x0648, 0x0653, 0x065c, + 0x067a, 0x0683, 0x068e, 0x0698, 0x06a0, 0x06a8, 0x06b0, 0x06b0, + 0x06c7, 0x06d0, 0x06d0, 0x06d5, 0x06df, 0x06df, 0x06df, 0x06e4, + 0x06e4, 0x06ea, 0x06f2, 0x06fb, 0x06fb, 0x06fb, 0x0705, 0x070c, + 0x0711, 0x0718, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x0767, 0x076c, 0x0774, 0x077c, 0x0784, 0x07a3, 0x07ac, 0x07c2, + 0x07d8, 0x07e0, 0x07e8, 0x07f9, 0x07fe, 0x07fe, 0x0804, 0x080a, + // Entry 100 - 13F + 0x0814, 0x081a, 0x0822, + }, + }, + { // es + esRegionStr, + esRegionIdx, + }, + { // es-419 + es419RegionStr, + es419RegionIdx, + }, + { // es-CL + "Sahara Occidental", + []uint16{ // 71 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0011, + }, + }, + { // es-MX + "BangladeshIslas Cocos (Keeling)GuernseyRegión Administrativa Especial de" + + " Hong Kong de la República Popular ChinaIslas CanariasRegión Adminis" + + "trativa Especial de Macao de la República Popular ChinaTristán de Ac" + + "uñaIslas Ultramarinas Menores de Estados UnidosIslas Vírgenes de los" + + " Estados UnidosÃfrica OccidentalÃfrica OrientalÃfrica del NorteÃfric" + + "a CentralÃfrica del SurAméricasAsia OrientalAsia del SurSudeste Asiá" + + "ticoEuropa del SurAsia CentralAsia OccidentalEuropa OrientalEuropa d" + + "el NorteEuropa Occidental", + []uint16{ // 289 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + // Entry 40 - 7F + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + // Entry 80 - BF + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, 0x0080, + 0x0080, 0x0080, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + // Entry C0 - FF + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, + 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00c7, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, + 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, + // Entry 100 - 13F + 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, 0x012a, + 0x012a, 0x013c, 0x013c, 0x014c, 0x015d, 0x016c, 0x017b, 0x0184, + 0x0184, 0x0184, 0x0191, 0x019d, 0x01ae, 0x01bc, 0x01bc, 0x01bc, + 0x01bc, 0x01bc, 0x01bc, 0x01c8, 0x01d7, 0x01d7, 0x01e6, 0x01f6, + 0x0207, + }, + }, + { // et + etRegionStr, + etRegionIdx, + }, + { // eu + "Ascension uharteaAndorraArabiar Emirerri BatuakAfganistanAntigua eta Bar" + + "budaAngilaAlbaniaArmeniaAngolaAntartikaArgentinaAmerikar SamoaAustri" + + "aAustraliaArubaAland uharteakAzerbaijanBosnia-HerzegovinaBarbadosBan" + + "gladeshBelgikaBurkina FasoBulgariaBahrainBurundiBeninSaint Barthélem" + + "yBermudaBruneiBoliviaKaribeko HerbehereakBrasilBahamakBhutanBouvet u" + + "harteaBotswanaBielorrusiaBelizeKanadaCocos uharteakKongoko Errepubli" + + "ka DemokratikoaAfrika Erdiko ErrepublikaKongo (Brazzaville)SuitzaBol" + + "i KostaCook uharteakTxileKamerunTxinaKolonbiaClipperton uharteaCosta" + + " RicaKubaCabo VerdeCuraçaoChristmas uharteaZipreTxekiar ErrepublikaA" + + "lemaniaDiego GarciaDjibutiDanimarkaDominikaDominikar ErrepublikaAlje" + + "riaCeuta eta MelillaEkuadorEstoniaEgiptoMendebaldeko SaharaEritreaEs" + + "painiaEtiopiaEuropar BatasunaFinlandiaFijiMalvinakMikronesiaFaroe uh" + + "arteakFrantziaGabonErresuma BatuaGrenadaGeorgiaGuyana FrantsesaGuern" + + "eseyGhanaGibraltarGroenlandiaGambiaGineaGuadalupeEkuatore GineaGrezi" + + "aHegoaldeko Georgia eta Hegoaldeko Sandwich uharteakGuatemalaGuamGin" + + "ea-BissauGuyanaHong Kong AEB TxinaHeard eta McDonald uharteakHondura" + + "sKroaziaHaitiHungariaKanariakIndonesiaIrlandaIsraelMan uharteaIndiaI" + + "ndiako Ozeanoko lurralde britainiarraIrakIranIslandiaItaliaJerseyJam" + + "aikaJordaniaJaponiaKenyaKirgizistanKanbodiaKiribatiKomoreakSaint Kit" + + "ts eta NevisIpar KoreaHego KoreaKuwaitKaiman uharteakKazakhstanLaosL" + + "ibanoSanta LuziaLiechtensteinSri LankaLiberiaLesothoLituaniaLuxenbur" + + "goLetoniaLibiaMarokoMonakoMoldaviaMontenegroSaint MartinMadagaskarMa" + + "rshall uharteakMazedoniaMaliMyanmarMongoliaMacau AEB TxinaIparraldek" + + "o Mariana uharteakMartinikaMauritaniaMontserratMaltaMaurizioMaldivak" + + "MalawiMexikoMalaysiaMozambikeNamibiaKaledonia BerriaNigerNorfolk uha" + + "rteaNigeriaNikaraguaHerbehereakNorvegiaNepalNauruNiueZeelanda Berria" + + "OmanPanamaPeruPolinesia FrantsesaPapua Ginea BerriaFilipinakPakistan" + + "PoloniaSaint-Pierre eta MikelunePitcairn uharteakPuerto RicoPalestin" + + "ako LurraldeakPortugalPalauParaguaiQatarMugaz kanpoko OzeaniaReunion" + + "ErrumaniaSerbiaErrusiaRuandaSaudi ArabiaSalomon uharteakSeychelleakS" + + "udanSuediaSingapurSaint HelenaEsloveniaSvalbard eta Jan Mayen uharte" + + "akEslovakiaSierra LeonaSan MarinoSenegalSomaliaSurinamHego SudanSao " + + "Tome eta PrincipeEl SalvadorSint MaartenSiriaSwazilandiaTristan da C" + + "unhaTurk eta Caicos uharteakTxadHegoaldeko lurralde frantsesakTogoTh" + + "ailandiaTajikistanTokelauEkialdeko TimorTurkmenistanTunisiaTongaTurk" + + "iaTrinidad eta TobagoTuvaluTaiwanTanzaniaUkrainaUgandaAmeriketako Es" + + "tatu Batuetako Kanpoaldeko Uharte TxikiakAmeriketako Estatu BatuakUr" + + "uguaiUzbekistanVatikano HiriaSaint Vincent eta GrenadinakVenezuelaBi" + + "rjina uharte britainiarrakBirjina uharte amerikarrakVietnamVanuatuWa" + + "llis eta FutunaSamoaKosovoYemenMayotteHegoafrikaZambiaZimbabweEskual" + + "de ezezagunaMunduaAfrikaIpar AmerikaHego AmerikaOzeaniaAfrika mendeb" + + "aldeaErdialdeko AmerikaAfrika ekialdeaAfrika iparraldeaErdialdeko Af" + + "rikaAfrika hegoaldeaAmerikaAmerika iparraldeaKaribeaAsia ekialdeaAsi" + + "a hegoaldeaAsia hego-ekialdeaEuropa hegoaldeaAustralasiaMelanesiaMik" + + "ronesia eskualdeaPolinesiaAsiaAsia erdialdeaAsia mendebaldeaEuropaEu" + + "ropa ekialdeaEuropa iparraldeaEuropa mendebaldeaLatinoamerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0011, 0x0018, 0x002f, 0x0039, 0x004c, 0x0052, 0x0059, + 0x0060, 0x0066, 0x006f, 0x0078, 0x0086, 0x008d, 0x0096, 0x009b, + 0x00a9, 0x00b3, 0x00c5, 0x00cd, 0x00d7, 0x00de, 0x00ea, 0x00f2, + 0x00f9, 0x0100, 0x0105, 0x0116, 0x011d, 0x0123, 0x012a, 0x013e, + 0x0144, 0x014b, 0x0151, 0x015f, 0x0167, 0x0172, 0x0178, 0x017e, + 0x018c, 0x01ac, 0x01c5, 0x01d8, 0x01de, 0x01e8, 0x01f5, 0x01fa, + 0x0201, 0x0206, 0x020e, 0x0220, 0x022a, 0x022e, 0x0238, 0x0240, + 0x0251, 0x0256, 0x0269, 0x0271, 0x027d, 0x0284, 0x028d, 0x0295, + // Entry 40 - 7F + 0x02aa, 0x02b1, 0x02c2, 0x02c9, 0x02d0, 0x02d6, 0x02e9, 0x02f0, + 0x02f8, 0x02ff, 0x030f, 0x0318, 0x031c, 0x0324, 0x032e, 0x033c, + 0x0344, 0x0349, 0x0357, 0x035e, 0x0365, 0x0375, 0x037e, 0x0383, + 0x038c, 0x0397, 0x039d, 0x03a2, 0x03ab, 0x03b9, 0x03bf, 0x03f2, + 0x03fb, 0x03ff, 0x040b, 0x0411, 0x0424, 0x043f, 0x0447, 0x044e, + 0x0453, 0x045b, 0x0463, 0x046c, 0x0473, 0x0479, 0x0484, 0x0489, + 0x04af, 0x04b3, 0x04b7, 0x04bf, 0x04c5, 0x04cb, 0x04d2, 0x04da, + 0x04e1, 0x04e6, 0x04f1, 0x04f9, 0x0501, 0x0509, 0x051e, 0x0528, + // Entry 80 - BF + 0x0532, 0x0538, 0x0547, 0x0551, 0x0555, 0x055b, 0x0566, 0x0573, + 0x057c, 0x0583, 0x058a, 0x0592, 0x059c, 0x05a3, 0x05a8, 0x05ae, + 0x05b4, 0x05bc, 0x05c6, 0x05d2, 0x05dc, 0x05ed, 0x05f6, 0x05fa, + 0x0601, 0x0609, 0x0618, 0x0634, 0x063d, 0x0647, 0x0651, 0x0656, + 0x065e, 0x0666, 0x066c, 0x0672, 0x067a, 0x0683, 0x068a, 0x069a, + 0x069f, 0x06ae, 0x06b5, 0x06be, 0x06c9, 0x06d1, 0x06d6, 0x06db, + 0x06df, 0x06ee, 0x06f2, 0x06f8, 0x06fc, 0x070f, 0x0721, 0x072a, + 0x0732, 0x0739, 0x0752, 0x0763, 0x076e, 0x0784, 0x078c, 0x0791, + // Entry C0 - FF + 0x0799, 0x079e, 0x07b3, 0x07ba, 0x07c3, 0x07c9, 0x07d0, 0x07d6, + 0x07e2, 0x07f2, 0x07fd, 0x0802, 0x0808, 0x0810, 0x081c, 0x0825, + 0x0844, 0x084d, 0x0859, 0x0863, 0x086a, 0x0871, 0x0878, 0x0882, + 0x0897, 0x08a2, 0x08ae, 0x08b3, 0x08be, 0x08ce, 0x08e6, 0x08ea, + 0x0908, 0x090c, 0x0916, 0x0920, 0x0927, 0x0936, 0x0942, 0x0949, + 0x094e, 0x0954, 0x0967, 0x096d, 0x0973, 0x097b, 0x0982, 0x0988, + 0x09bf, 0x09d8, 0x09df, 0x09e9, 0x09f7, 0x0a13, 0x0a1c, 0x0a38, + 0x0a52, 0x0a59, 0x0a60, 0x0a71, 0x0a76, 0x0a7c, 0x0a81, 0x0a88, + // Entry 100 - 13F + 0x0a92, 0x0a98, 0x0aa0, 0x0ab2, 0x0ab8, 0x0abe, 0x0aca, 0x0ad6, + 0x0add, 0x0aef, 0x0b01, 0x0b10, 0x0b21, 0x0b32, 0x0b42, 0x0b49, + 0x0b5b, 0x0b62, 0x0b6f, 0x0b7d, 0x0b8f, 0x0b9f, 0x0baa, 0x0bb3, + 0x0bc7, 0x0bd0, 0x0bd4, 0x0be2, 0x0bf2, 0x0bf8, 0x0c07, 0x0c18, + 0x0c2a, 0x0c37, + }, + }, + { // ewo + "AndórBemirá yá ArábÉ™ uníAfÉ™ganisÉ™tánAntígwa ai BarÉ™búdaAngíyÉ™AlÉ™bániaArÉ™" + + "méniaAngoláArÉ™henÉ™tínaBÉ™samóa yá AmÉ™ÌrÉ™kaOsÉ™tÉ™líaOsÉ™tÉ™lalíArúbaAzÉ›rÉ™" + + "baidzáŋBosÉ™ní ai É›rÉ™zegovínBarÉ™bádBangaladÉ›ÌsBÉ›lÉ™hígBulÉ™kiná FasóBul" + + "É™garíBahÉ™rÉ›ÌnBurundíBÉ™níŋBÉ›rÉ™múdBulunéBolíviaBÉ™lazílBahámasButáŋBot" + + "swanáBÉ™larúsBÉ™lískanadáǹnam Kongó DemokÉ™latígǹnam ZÇŽÅ‹ AfirikáKongóSu" + + "ísKód DivÉ”ÌrMinlán Mí kúgTsilíKamÉ™rúnTsáinaKolÉ”mbíKosta RíkaKubáMin" + + "lán Mí Káb VÉ›rSipÉ™lúsǸnam TsÉ›ÌgNdzámanDzibutíDanÉ™márÉ™gDómÉ™nikaRépubl" + + "ique dominicaineAlÉ™yériaEkwatórEsetoníEhíbÉ™tÉ›nElitÉ™léKpÉ™nyáEtiopíFin" + + "É™lánFidzíMinlán Mi FólÉ™kÉ™lanMikoronésiaFulÉ›nsíGabóŋǸnam EngÉ™lisGÉ™lÉ™" + + "nádÉ™HorÉ™ÌyiaGuyán yá FulÉ›nsíGanáYilÉ™balatárGoelánGambíGinéGuadÉ™lúbGi" + + "né EkwatóGÉ™lÉ›ÌsGuatemaláGuámGiné BisaóGuyánOndurásKÉ™lowásiaAitíOngir" + + "íɛndonésiaIrÉ™lándÉ™IsÉ™raÉ›ÌlÉ›Ìndəǹnam É›ngÉ™lís yá Máŋ mÉ™Ì É›ÌndÉ™IrágIrá" + + "nIsÉ™lándÉ™ItáliÉ›nHamaíkaHorÉ™daníHapÉ”ÌnKeniáKirigisÉ™tánkambodíaKiribat" + + "íKomÉ”ÌrǸfúfúb-KilisÉ™tóv-ai-NevisKoré yá NórKoré yá SúdKowÉ›ÌdMinlán " + + "Mí KalimáŋKazakÉ™táŋLaósLibáŋǸfúfúb-LúsiaLísÉ™ÌsÉ™ÌtáinSÉ™ri LaÅ‹káLibéri" + + "aLÉ™sotóLituaníLukÉ™zambúdLÉ™toníLibíMarÉ”ÌgMÉ”nakóMolÉ™davíMadagasÉ™kárÉ™Mi" + + "nlán Mí MaresálMasedóniaMalíMianÉ™márMÉ”ngÉ”ÌliaMinlán Mi Marián yá Nór" + + "MarÉ™tinígMoritaníMÉ”ÌntserádMálÉ™tÉ™MorísMalÉ™dívÉ™MalawíMÉ›kÉ™sígMalÉ›ÌziaM" + + "ozambígNamibíǸkpámÉ›n KaledóniaNihÉ›ÌrMinlán NÉ”rÉ™fÉ”ÌlÉ™kÉ™NihériaNikarág" + + "uaPɛíbáNÉ”rÉ™vÉ›ÌsNepálNaurúNiuéǸkpámÉ›n ZeláŋOmánPanamáPerúPolinesí yá " + + "FulÉ›nsíPapwazi yá ǸkpámÉ›Ìn GinéFilipínPakisÉ™tánfólisǸfúfúb-Píɛr-ai-M" + + "ikÉ™lÉ”ÌÅ‹PítÉ™ÌkÉ›ÌrÉ›nÉ™PwÉ›rÉ™to RíkoǸnam PalÉ›sÉ™tínfÉ”rÉ™tugÉ›ÌsPalauParaguéK" + + "atárReuniÉ”ÌÅ‹RumaníRúsianRuwandáArabí SaudíMinlán Mí SolomÉ”ÌnSÉ›sÉ›ÌlSu" + + "dáŋSuwÉ›ÌdSingapúrǸfúfúb-ÆlÉ›ÌnaSÉ™lovéniaSÉ™lovakíSierá-leónəǸfúfúb Mar" + + "ínoSenegálSomáliaSurinámSaó Tomé ai PÉ™linÉ™sípeSalÉ™vadórSiríSwazilán" + + "dÉ™Minlán Mí túrÉ™Ìg-ai-KaígTsádTogóTailánTadzikisÉ™táŋTokelóTimôrTurÉ™k" + + "É™mÉ™nisÉ™táŋTunisíTÉ”ngáTurÉ™kíTÉ™linité-ai-TobágoTuvalúTaiwánTaÅ‹É™zaníUk" + + "É™rÉ›ÌnUgandáǸnam AmÉ›rÉ™kÉ™UruguéUzubekisÉ™tánǸnam VatikánǸfúfúb-VÉ›ngÉ™sá" + + "Å‹-ai-BÉ™ GÉ™lÉ™nadínVenezuélaÅ„nam Minlán É›ÌngÉ™lísMinlán Mi AmÉ›rÉ™kÉ™ViÉ›d" + + "É™námVanuátuWalís-ai-FutúnaSamoáYemÉ›ÌnMayÉ”ÌdAfiríka yá SúdZambíZimba" + + "bwé", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x001e, 0x002d, 0x0043, 0x004b, 0x0055, + 0x005f, 0x0066, 0x0066, 0x0074, 0x008d, 0x0098, 0x00a4, 0x00aa, + 0x00aa, 0x00ba, 0x00d3, 0x00dc, 0x00e9, 0x00f3, 0x0103, 0x010d, + 0x0118, 0x0120, 0x0128, 0x0128, 0x0132, 0x0139, 0x0141, 0x0141, + 0x014a, 0x0152, 0x0159, 0x0159, 0x0162, 0x016b, 0x0172, 0x0179, + 0x0179, 0x0193, 0x01a7, 0x01ad, 0x01b2, 0x01bf, 0x01cf, 0x01d5, + 0x01de, 0x01e5, 0x01ee, 0x01ee, 0x01f9, 0x01fe, 0x0213, 0x0213, + 0x0213, 0x021c, 0x0229, 0x0231, 0x0231, 0x0239, 0x0245, 0x024f, + // Entry 40 - 7F + 0x0266, 0x0270, 0x0270, 0x0278, 0x0280, 0x028b, 0x028b, 0x0294, + 0x029c, 0x02a3, 0x02a3, 0x02ac, 0x02b2, 0x02c9, 0x02d5, 0x02d5, + 0x02de, 0x02e5, 0x02f3, 0x02ff, 0x0309, 0x031d, 0x031d, 0x0322, + 0x032f, 0x0336, 0x033c, 0x0341, 0x034b, 0x0358, 0x0361, 0x0361, + 0x036b, 0x0370, 0x037c, 0x0382, 0x0382, 0x0382, 0x038a, 0x0395, + 0x039a, 0x03a1, 0x03a1, 0x03ac, 0x03b7, 0x03c2, 0x03c2, 0x03ca, + 0x03f3, 0x03f8, 0x03fd, 0x0408, 0x0411, 0x0411, 0x0419, 0x0423, + 0x042b, 0x0431, 0x043e, 0x0447, 0x0450, 0x0458, 0x0476, 0x0484, + // Entry 80 - BF + 0x0492, 0x049a, 0x04af, 0x04bb, 0x04c0, 0x04c7, 0x04d7, 0x04e9, + 0x04f6, 0x04fe, 0x0506, 0x050e, 0x051a, 0x0522, 0x0527, 0x052f, + 0x0537, 0x0541, 0x0541, 0x0541, 0x0550, 0x0564, 0x056e, 0x0573, + 0x057d, 0x0589, 0x0589, 0x05a4, 0x05af, 0x05b8, 0x05c5, 0x05ce, + 0x05d4, 0x05df, 0x05e6, 0x05f0, 0x05fa, 0x0603, 0x060a, 0x061f, + 0x0627, 0x0640, 0x0648, 0x0652, 0x065a, 0x0666, 0x066c, 0x0672, + 0x0677, 0x0689, 0x068e, 0x0695, 0x069a, 0x06b1, 0x06cf, 0x06d7, + 0x06e2, 0x06e8, 0x0708, 0x071b, 0x072a, 0x073c, 0x074a, 0x074f, + // Entry C0 - FF + 0x0757, 0x075d, 0x075d, 0x0768, 0x076f, 0x076f, 0x0776, 0x077e, + 0x078b, 0x07a1, 0x07aa, 0x07b1, 0x07b9, 0x07c2, 0x07d5, 0x07e0, + 0x07e0, 0x07ea, 0x07f8, 0x0809, 0x0811, 0x0819, 0x0821, 0x0821, + 0x083c, 0x0847, 0x0847, 0x084c, 0x0858, 0x0858, 0x0876, 0x087b, + 0x087b, 0x0880, 0x0887, 0x0896, 0x089d, 0x08a3, 0x08b8, 0x08bf, + 0x08c6, 0x08ce, 0x08e3, 0x08ea, 0x08f1, 0x08fc, 0x0906, 0x090d, + 0x090d, 0x091d, 0x0924, 0x0932, 0x0940, 0x096a, 0x0974, 0x098e, + 0x09a3, 0x09ae, 0x09b6, 0x09c7, 0x09cd, 0x09cd, 0x09d5, 0x09dd, + // Entry 100 - 13F + 0x09ee, 0x09f4, 0x09fd, + }, + }, + { // fa + faRegionStr, + faRegionIdx, + }, + { // fa-AF + "اندوراانتیگوا Ùˆ باربوداالبانیاانگولاارجنتاینآسترالیابوسنیا Ùˆ هرزه\u200cÚ¯" + + "وینابنگله\u200cدیشبلجیمبلغاریابرونیبولیویابرازیلبهاماسروسیهٔ سÙیدکا" + + "Ù†Ú¯Ùˆ - کینشاساکانگو - برازویلسویسچلیکولمبیاکاستریکاکیوبادنمارکاستونی" + + "ااریتریاهسپانیهایتوپیاÙنلندمیکرونزیاگریناداگینیاگینیا استواییگواتیم" + + "الاگینیا بیسائوگیاناهاندوراسکروشیاهایتیاندونیزیاآیرلندآیسلندجاپانکی" + + "نیاقرغزستانکمپوچیاکوریای شمالیکوریای جنوبیسریلانکالیسوتولتوانیالاتو" + + "یالیبیامادغاسکرمنگولیاموریتانیامالتامکسیکومالیزیاموزمبیقنیجریانیکار" + + "اگواهالندناروینیپالزیلاند جدیدپانامهپیروپاپوا نیو گینیاپولندپرتگالپ" + + "اراگوایرومانیاروآنداسویدنسینگاپورسلونیاسلواکیاسیرالیونسینیگالسومالی" + + "هالسلوادورتاجکستاناکراینیوروگوایونزویلازیمبابوی", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x002c, 0x002c, 0x003a, + 0x003a, 0x0046, 0x0046, 0x0056, 0x0056, 0x0056, 0x0066, 0x0066, + 0x0066, 0x0066, 0x008b, 0x008b, 0x009e, 0x00a8, 0x00a8, 0x00b6, + 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00b6, 0x00c0, 0x00ce, 0x00ce, + 0x00da, 0x00e6, 0x00e6, 0x00e6, 0x00e6, 0x00fb, 0x00fb, 0x00fb, + 0x00fb, 0x0116, 0x0116, 0x0131, 0x0139, 0x0139, 0x0139, 0x013f, + 0x013f, 0x013f, 0x014d, 0x014d, 0x015d, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0167, 0x0173, 0x0173, + // Entry 40 - 7F + 0x0173, 0x0173, 0x0173, 0x0173, 0x0181, 0x0181, 0x0181, 0x018f, + 0x019d, 0x01ab, 0x01ab, 0x01b5, 0x01b5, 0x01b5, 0x01c7, 0x01c7, + 0x01c7, 0x01c7, 0x01c7, 0x01d5, 0x01d5, 0x01d5, 0x01d5, 0x01d5, + 0x01d5, 0x01d5, 0x01d5, 0x01df, 0x01df, 0x01f8, 0x01f8, 0x01f8, + 0x020a, 0x020a, 0x0221, 0x022b, 0x022b, 0x022b, 0x023b, 0x0247, + 0x0251, 0x0251, 0x0251, 0x0263, 0x026f, 0x026f, 0x026f, 0x026f, + 0x026f, 0x026f, 0x026f, 0x027b, 0x027b, 0x027b, 0x027b, 0x027b, + 0x0285, 0x028f, 0x029f, 0x02ad, 0x02ad, 0x02ad, 0x02ad, 0x02c4, + // Entry 80 - BF + 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, 0x02db, + 0x02eb, 0x02eb, 0x02f7, 0x0305, 0x0305, 0x0311, 0x031b, 0x031b, + 0x031b, 0x031b, 0x031b, 0x031b, 0x032b, 0x032b, 0x032b, 0x032b, + 0x032b, 0x0339, 0x0339, 0x0339, 0x0339, 0x034b, 0x034b, 0x0355, + 0x0355, 0x0355, 0x0355, 0x0361, 0x036f, 0x037d, 0x037d, 0x037d, + 0x037d, 0x037d, 0x0389, 0x039b, 0x03a5, 0x03af, 0x03b9, 0x03b9, + 0x03b9, 0x03ce, 0x03ce, 0x03da, 0x03e2, 0x03e2, 0x03fe, 0x03fe, + 0x03fe, 0x0408, 0x0408, 0x0408, 0x0408, 0x0408, 0x0414, 0x0414, + // Entry C0 - FF + 0x0424, 0x0424, 0x0424, 0x0424, 0x0432, 0x0432, 0x0432, 0x043e, + 0x043e, 0x043e, 0x043e, 0x043e, 0x0448, 0x0458, 0x0458, 0x0464, + 0x0464, 0x0472, 0x0482, 0x0482, 0x0490, 0x049e, 0x049e, 0x049e, + 0x049e, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b0, + 0x04b0, 0x04b0, 0x04b0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, + 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04c0, 0x04cc, 0x04cc, + 0x04cc, 0x04cc, 0x04dc, 0x04dc, 0x04dc, 0x04dc, 0x04ea, 0x04ea, + 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, 0x04ea, + // Entry 100 - 13F + 0x04ea, 0x04ea, 0x04fa, + }, + }, + { // ff + "AnndooraEmiraat Araab DenntuÉ—eAfganistaanAntiguwaa e BarbudaaAnngiyaaAlb" + + "aniiArmeniiAnngolaaArjantiinSamowa AmerikOtiriisOstaraaliiAruubaAjer" + + "bayjaanBosnii HersegowiinBarbadoosBanglaadeesBeljikBurkibaa FaasoBul" + + "gariiBahreynBurunndiBeneeBermudaaBurnaayBoliwiiBeresiilBahamaasButaa" + + "nBotswaanaBelaruusBeliiseKanadaaNdenndaandi Demokaraasiire KonngoNde" + + "nndaandi SantarafrikKonngoSuwiisKodduwaarDuuÉ—e KuukCiliiKameruunSiin" + + "KolombiyaKosta RikaaKubaaDuuÉ—e Kap WeerSiiparNdenndaandi CekAlmaañJi" + + "butiiDanmarkDominikaNdenndanndi DominikaAlaseriEkuwatoorEstoniEjiptE" + + "ritereeEspaañEcoppiFenlandFijjiDuuÉ—e FalklandMikoronesiiFarayseGaboo" + + "Laamateeri RentundiGarnaadJeorgiiGiyaan FarayseGanaaJibraltaarGorwen" + + "dlandGammbiGineGwaadalupGinee EkuwaatoriyaalGereesGwaatemalaaGuwamGi" + + "ne-BisaawoGiyaanOnnduraasKorwasiiHaytiiOnngiriEnndonesiiIrlanndaIsra" + + "a’iilaEnndoKeeriindi britaani to maayo enndoIraakIraanIslanndaItaliJ" + + "amaykaJordaniSapooKeñaaKirgistaanKambodsoKiribariKomoorSent Kits e N" + + "ewisKoree RewoKoree WorgoKuweytiDuuÉ—e KaymaaKasakstaanLawoosLibaaSen" + + "t LusiyaaLincenstaynSiri LankaLiberiyaaLesotoLituaaniiLiksembuurLeto" + + "niiLibiMarukMonaakooMoldawiiMadagaskaarDuuÉ—e MarsaalMeceduwaanMaaliM" + + "iyamaarMonngoliiDuuÉ—e Mariyaana RewoMartinikMuritaniMonseraatMalteMo" + + "riisMaldiiweMalaawiMeksikMalesiiMosammbikNamibiiNuwel KaledoniiNijee" + + "rDuuÉ—e NorfolkNijeriyaaNikaraguwaaNederlanndaNorweesNepaalNawuruNiuw" + + "eNuwel SelanndaOmaanPanamaaPeruPolinesii FaraysePapuwaa Nuwel GineFi" + + "lipiinPakistaanPoloñSee Piyeer e MikelooPitkernPorto RikooPalestiin " + + "Sisjordani e GaasaaPurtugaalPalawuParaguwaayKataarRewiñooRumaniiRiis" + + "iiRuwanndaaArabii SawditDuuÉ—e SolomonSeyselSudaanSuweedSinngapuurSen" + + "t HelenSloweniiSlowakiiSeraa liyonSee MareeSenegaalSomaliiSurinaamSa" + + "wo Tome e PerensipeEl SalwadorSiriiSwaasilanndaDuuÉ—e Turke e Keikoos" + + "CaadTogooTaylanndaTajikistaanTokelaawTimoor FuÉ—naangeTurkmenistaanTu" + + "nisiiTonngaaTurkiiTirnidaad e TobaagoTuwaluuTaywaanTansaniiUkereenUn" + + "ganndaaDowlaaji DentuÉ—i AmerikUruguwaayUsbekistaanDowla WaticaanSee " + + "Weesaa e GarnadiinWenesuwelaaduuÉ—e kecce britaniiDuuÉ—e Kecce AmerikW" + + "iyetnaamWanuwaatuuWalis e FutunaSamowaaYemenMayootAfrik bÅ‹ WorgoSamm" + + "biSimbaabuwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x001f, 0x002a, 0x003e, 0x0046, 0x004d, + 0x0054, 0x005c, 0x005c, 0x0065, 0x0072, 0x0079, 0x0083, 0x0089, + 0x0089, 0x0094, 0x00a6, 0x00af, 0x00ba, 0x00c0, 0x00ce, 0x00d6, + 0x00dd, 0x00e5, 0x00ea, 0x00ea, 0x00f2, 0x00f9, 0x0100, 0x0100, + 0x0108, 0x0110, 0x0116, 0x0116, 0x011f, 0x0127, 0x012e, 0x0135, + 0x0135, 0x0156, 0x016d, 0x0173, 0x0179, 0x0182, 0x018d, 0x0192, + 0x019a, 0x019e, 0x01a7, 0x01a7, 0x01b2, 0x01b7, 0x01c6, 0x01c6, + 0x01c6, 0x01cc, 0x01db, 0x01e2, 0x01e2, 0x01e9, 0x01f0, 0x01f8, + // Entry 40 - 7F + 0x020c, 0x0213, 0x0213, 0x021c, 0x0222, 0x0227, 0x0227, 0x022f, + 0x0236, 0x023c, 0x023c, 0x0243, 0x0248, 0x0257, 0x0262, 0x0262, + 0x0269, 0x026e, 0x0281, 0x0288, 0x028f, 0x029d, 0x029d, 0x02a2, + 0x02ac, 0x02b7, 0x02bd, 0x02c1, 0x02ca, 0x02de, 0x02e4, 0x02e4, + 0x02ef, 0x02f4, 0x0300, 0x0306, 0x0306, 0x0306, 0x030f, 0x0317, + 0x031d, 0x0324, 0x0324, 0x032e, 0x0336, 0x0342, 0x0342, 0x0347, + 0x0368, 0x036d, 0x0372, 0x037a, 0x037f, 0x037f, 0x0386, 0x038d, + 0x0392, 0x0398, 0x03a2, 0x03aa, 0x03b2, 0x03b8, 0x03c9, 0x03d3, + // Entry 80 - BF + 0x03de, 0x03e5, 0x03f2, 0x03fc, 0x0402, 0x0407, 0x0413, 0x041e, + 0x0428, 0x0431, 0x0437, 0x0440, 0x044a, 0x0451, 0x0455, 0x045a, + 0x0462, 0x046a, 0x046a, 0x046a, 0x0475, 0x0483, 0x048d, 0x0492, + 0x049a, 0x04a3, 0x04a3, 0x04b8, 0x04c0, 0x04c8, 0x04d1, 0x04d6, + 0x04dc, 0x04e4, 0x04eb, 0x04f1, 0x04f8, 0x0501, 0x0508, 0x0517, + 0x051d, 0x052b, 0x0534, 0x053f, 0x054a, 0x0551, 0x0557, 0x055d, + 0x0562, 0x0570, 0x0575, 0x057c, 0x0580, 0x0591, 0x05a3, 0x05ab, + 0x05b4, 0x05ba, 0x05ce, 0x05d5, 0x05e0, 0x05fd, 0x0606, 0x060c, + // Entry C0 - FF + 0x0616, 0x061c, 0x061c, 0x0624, 0x062b, 0x062b, 0x0631, 0x063a, + 0x0647, 0x0655, 0x065b, 0x0661, 0x0667, 0x0671, 0x067b, 0x0683, + 0x0683, 0x068b, 0x0696, 0x069f, 0x06a7, 0x06ae, 0x06b6, 0x06b6, + 0x06cb, 0x06d6, 0x06d6, 0x06db, 0x06e7, 0x06e7, 0x06fd, 0x0701, + 0x0701, 0x0706, 0x070f, 0x071a, 0x0722, 0x0733, 0x0740, 0x0747, + 0x074e, 0x0754, 0x0767, 0x076e, 0x0775, 0x077d, 0x0784, 0x078d, + 0x078d, 0x07a5, 0x07ae, 0x07b9, 0x07c7, 0x07dd, 0x07e8, 0x07fd, + 0x0810, 0x0819, 0x0823, 0x0831, 0x0838, 0x0838, 0x083d, 0x0843, + // Entry 100 - 13F + 0x0852, 0x0858, 0x0862, + }, + }, + { // fi + fiRegionStr, + fiRegionIdx, + }, + { // fil + filRegionStr, + filRegionIdx, + }, + { // fo + "AscensionAndorraSameindu EmirríkiniAfganistanAntigua & BarbudaAnguillaAl" + + "baniaArmeniaAngolaAntarktisArgentinaAmerikanska SamoaEysturríkiAvstr" + + "aliaArubaÃlandAserbadjanBosnia-HersegovinaBarbadosBangladesjBelgiaBu" + + "rkina FasoBulgariaBareinBurundiBeninSt-BarthélemyBermudaBruneiBolivi" + + "aNiðurlonds KaribiaBrasilBahamaoyggjarButanBouvetoyggjBotsvanaHvítar" + + "usslandBelisKanadaKokosoyggjarKongo, Dem. LýðveldiðMiðafrikalýðveldi" + + "ðKongoSveisFílabeinsstrondinCooksoyggjarKiliKamerunKinaKolombiaClip" + + "pertonKosta RikaKubaGrønhøvdaoyggjarCuraçaoJólaoyggjinKýprosKekkiaTý" + + "sklandDiego GarciaDjibutiDanmarkDominikaDominikalýðveldiðAlgeriaCeut" + + "a og MelillaEkvadorEstlandEgyptalandVestursaharaEritreaSpaniaEtiopia" + + "EvropasamveldiðFinnlandFijiFalklandsoyggjarMikronesiasamveldiðFøroya" + + "rFraklandGabonStórabretlandGrenadaGeorgiaFranska GujanaGuernseyGanaG" + + "ibraltarGrønlandGambiaGuineaGuadeloupeEkvatorguineaGrikkalandSuðurge" + + "orgia og SuðursandwichoyggjarGuatemalaGuamGuinea-BissauGujanaHong Ko" + + "ng SAR KinaHeard og McDonaldoyggjarHondurasKroatiaHaitiUngarnKanariu" + + "oyggjarIndonesiaÃrlandÃsraelIsle of ManIndiaStóra Bretlands Indiahav" + + "oyggjarIrakIranÃslandItaliaJerseyJamaikaJordanJapanKenjaKirgisiaKamb" + + "odjaKiribatiKomoroyggjarSt. Kitts & NevisNorðurkoreaSuðurkoreaKuvait" + + "CaymanoyggjarKasakstanLaosLibanonSt. LusiaLiktinsteinSri LankaLiberi" + + "aLesotoLitavaLuksemborgLettlandLibyaMarokkoMonakoMoldovaMontenegroSt" + + "-MartinMadagaskarMarshalloyggjarMakedóniaMaliMyanmar (Burma)Mongolia" + + "Makao SAR KinaNorðaru MariuoyggjarMartiniqueMóritaniaMontserratMalta" + + "MóritiusMaldivoyggjarMalaviMeksikoMalaisiaMosambikNamibiaNýkaledónia" + + "NigerNorfolksoyggjNigeriaNikaraguaNiðurlondNoregNepalNauruNiueNýsæla" + + "ndOmanPanamaPeruFranska PolynesiaPapua NýguineaFilipsoyggjarPakistan" + + "PóllandSaint Pierre og MiquelonPitcairnoyggjarPuerto RikoPalestinskt" + + " landøkiPortugalPalauParaguaiKatarfjarskoti OsianiaRéunionRumeniaSer" + + "biaRusslandRuandaSaudiarabiaSalomonoyggjarSeyskelloyggjarSudanSvørík" + + "iSingaporSt. HelenaSloveniaSvalbard & Jan MayenSlovakiaSierra LeonaS" + + "an MarinoSenegalSomaliaSurinamSuðursudanSao Tome & PrinsipiEl Salvad" + + "orSint MaartenSýriaSvasilandTristan da CunhaTurks- og CaicosoyggjarK" + + "jadFronsku sunnaru landaøkiTogoTailandTadsjikistanTokelauEysturtimor" + + "TurkmenistanTunesiaTongaTurkalandTrinidad & TobagoTuvaluTaivanTansan" + + "iaUkrainaUgandaSambandsríki Amerikas fjarskotnu oyggjarSambandsríki " + + "AmerikaUruguaiUsbekistanVatikanbýurSt. Vinsent & GrenadinoyggjarVene" + + "suelaStóra Bretlands JomfrúoyggjarSambandsríki Amerikas Jomfrúoyggja" + + "rVjetnamVanuatuWallis- og FutunaoyggjarSamoaKosovoJemenMayotteSuðura" + + "frikaSambiaSimbabviókent økiheimurAfrikaNorðuramerikaSuðuramerikaOsi" + + "aniaVesturafrikaMiðamerikaEysturafrikaNorðurafrikaMiðafrikasunnari p" + + "artur av AfrikaAmerikaAmerika norðanfyri MeksikoKaribiaEysturasiaSuð" + + "urasiaÚtsynningsasiaSuðurevropaAvstralasiaMelanesiaMikronesi økiPoly" + + "nesiaAsiaMiðasiaVesturasiaEvropaEysturevropaNorðurevropaVesturevropa" + + "Latínamerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x0024, 0x002e, 0x003f, 0x0047, 0x004e, + 0x0055, 0x005b, 0x0064, 0x006d, 0x007e, 0x0089, 0x0092, 0x0097, + 0x009d, 0x00a7, 0x00b9, 0x00c1, 0x00cb, 0x00d1, 0x00dd, 0x00e5, + 0x00eb, 0x00f2, 0x00f7, 0x0105, 0x010c, 0x0112, 0x0119, 0x012c, + 0x0132, 0x013f, 0x0144, 0x014f, 0x0157, 0x0165, 0x016a, 0x0170, + 0x017c, 0x0194, 0x01aa, 0x01af, 0x01b4, 0x01c6, 0x01d2, 0x01d6, + 0x01dd, 0x01e1, 0x01e9, 0x01f3, 0x01fd, 0x0201, 0x0213, 0x021b, + 0x0227, 0x022e, 0x0234, 0x023d, 0x0249, 0x0250, 0x0257, 0x025f, + // Entry 40 - 7F + 0x0273, 0x027a, 0x028a, 0x0291, 0x0298, 0x02a2, 0x02ae, 0x02b5, + 0x02bb, 0x02c2, 0x02d2, 0x02da, 0x02de, 0x02ee, 0x0302, 0x030a, + 0x0312, 0x0317, 0x0325, 0x032c, 0x0333, 0x0341, 0x0349, 0x034d, + 0x0356, 0x035f, 0x0365, 0x036b, 0x0375, 0x0382, 0x038c, 0x03b2, + 0x03bb, 0x03bf, 0x03cc, 0x03d2, 0x03e4, 0x03fc, 0x0404, 0x040b, + 0x0410, 0x0416, 0x0424, 0x042d, 0x0434, 0x043b, 0x0446, 0x044b, + 0x046b, 0x046f, 0x0473, 0x047a, 0x0480, 0x0486, 0x048d, 0x0493, + 0x0498, 0x049d, 0x04a5, 0x04ad, 0x04b5, 0x04c1, 0x04d2, 0x04de, + // Entry 80 - BF + 0x04e9, 0x04ef, 0x04fc, 0x0505, 0x0509, 0x0510, 0x0519, 0x0524, + 0x052d, 0x0534, 0x053a, 0x0540, 0x054a, 0x0552, 0x0557, 0x055e, + 0x0564, 0x056b, 0x0575, 0x057e, 0x0588, 0x0597, 0x05a1, 0x05a5, + 0x05b4, 0x05bc, 0x05ca, 0x05df, 0x05e9, 0x05f3, 0x05fd, 0x0602, + 0x060b, 0x0618, 0x061e, 0x0625, 0x062d, 0x0635, 0x063c, 0x0649, + 0x064e, 0x065b, 0x0662, 0x066b, 0x0675, 0x067a, 0x067f, 0x0684, + 0x0688, 0x0692, 0x0696, 0x069c, 0x06a0, 0x06b1, 0x06c0, 0x06cd, + 0x06d5, 0x06dd, 0x06f5, 0x0704, 0x070f, 0x0723, 0x072b, 0x0730, + // Entry C0 - FF + 0x0738, 0x073d, 0x074e, 0x0756, 0x075d, 0x0763, 0x076b, 0x0771, + 0x077c, 0x078a, 0x0799, 0x079e, 0x07a7, 0x07af, 0x07b9, 0x07c1, + 0x07d5, 0x07dd, 0x07e9, 0x07f3, 0x07fa, 0x0801, 0x0808, 0x0813, + 0x0826, 0x0831, 0x083d, 0x0843, 0x084c, 0x085c, 0x0873, 0x0877, + 0x0890, 0x0894, 0x089b, 0x08a7, 0x08ae, 0x08b9, 0x08c5, 0x08cc, + 0x08d1, 0x08da, 0x08eb, 0x08f1, 0x08f7, 0x08ff, 0x0906, 0x090c, + 0x0935, 0x094a, 0x0951, 0x095b, 0x0967, 0x0984, 0x098d, 0x09ac, + 0x09d1, 0x09d8, 0x09df, 0x09f7, 0x09fc, 0x0a02, 0x0a07, 0x0a0e, + // Entry 100 - 13F + 0x0a1a, 0x0a20, 0x0a28, 0x0a33, 0x0a39, 0x0a3f, 0x0a4d, 0x0a5a, + 0x0a61, 0x0a6d, 0x0a78, 0x0a84, 0x0a91, 0x0a9b, 0x0ab3, 0x0aba, + 0x0ad5, 0x0adc, 0x0ae6, 0x0af0, 0x0aff, 0x0b0b, 0x0b16, 0x0b1f, + 0x0b2d, 0x0b36, 0x0b3a, 0x0b42, 0x0b4c, 0x0b52, 0x0b5e, 0x0b6b, + 0x0b77, 0x0b84, + }, + }, + { // fr + frRegionStr, + frRegionIdx, + }, + { // fr-CA + frCARegionStr, + frCARegionIdx, + }, + {}, // fr-CH + { // fur + "AndorraEmirâts araps unîtsAfghanistanAntigua e BarbudaAnguillaAlbanieArm" + + "enieAngolaAntarticArgjentineSamoa merecanisAustrieAustralieArubaIsul" + + "is AlandAzerbaigianBosnie e ErcegovineBarbadosBangladeshBelgjicheBur" + + "kina FasoBulgarieBahrainBurundiBeninSant BarthélemyBermudaBruneiBoli" + + "vieBrasîlBahamasBhutanIsule BouvetBotswanaBielorussieBelizeCanadeIsu" + + "lis CocosRepubliche Democratiche dal CongoRepubliche centri africane" + + "Congo - BrazzavilleSvuizareCueste di AvoliIsulis CookCileCamerunCine" + + "ColombieIsule ClippertonCosta RicaCubaCjâf vertIsule ChristmasCipriR" + + "epubliche cecheGjermanieDiego GarciaGibutiDanimarcjeDominicheRepubli" + + "che dominicaneAlzerieCeuta e MelillaEcuadorEstonieEgjitSahara ociden" + + "tâlEritreeSpagneEtiopieUnion europeaneFinlandieFiziIsulis FalklandMi" + + "cronesieIsulis FaroeFranceGabonReam unîtGrenadaGjeorgjieGuiana franc" + + "êsGuernseyGhanaGjibraltarGroenlandeGambiaGuineeGuadalupeGuinee ecua" + + "toriâlGrecieGeorgia dal Sud e Isulis Sandwich dal SudGuatemalaGuamGu" + + "inea-BissauGuyanaRegjon aministrative speciâl de Cine di Hong KongIs" + + "ule Heard e Isulis McDonaldHondurasCravuazieHaitiOngjarieIsulis Cana" + + "riisIndonesieIrlandeIsraêlIsule di ManIndiaTeritori britanic dal Oce" + + "an IndianIraqIranIslandeItalieJerseyGjamaicheJordanieGjaponKenyaKirg" + + "hizstanCambozeKiribatiComorisSan Kitts e NevisCoree dal nordCoree da" + + "l sudKuwaitIsulis CaymanKazachistanLaosLibanSante LusieLiechtenstein" + + "Sri LankaLiberieLesothoLituanieLussemburcLetonieLibieMarocMonacoMold" + + "avieMontenegroSant MartinMadagascarIsulis MarshallMacedonieMaliBirma" + + "nieMongolieRegjon aministrative speciâl de Cine di MacaoIsulis Maria" + + "na dal NordMartinicheMauritanieMontserratMaltaMauriziMaldivisMalawiM" + + "essicMalaysiaMozambicNamibieGnove CaledonieNigerIsole NorfolkNigerie" + + "NicaraguaPaîs basNorvegjeNepalNauruNiueGnove ZelandeOmanPanamàPerùPo" + + "linesie francêsPapue Gnove GuineeFilipinisPakistanPolonieSan Pierre " + + "e MiquelonPitcairnPorto RicoTeritoris palestinêsPortugalPalauParagua" + + "yQatarOceanie perifericheReunionRomanieSerbieRussieRuandeArabie Saud" + + "ideIsulis SalomonSeychellesSudanSvezieSingaporeSante ElineSlovenieSv" + + "albard e Jan MayenSlovachieSierra LeoneSan MarinSenegalSomalieSurina" + + "meSao Tomè e PrincipeEl SalvadorSirieSwazilandTristan da CunhaIsulis" + + " Turks e CaicosÇadTeritoris meridionâi francêsTogoTailandieTazikista" + + "nTokelauTimor orientâlTurkmenistanTunisieTongaTurchieTrinidad e Toba" + + "goTuvaluTaiwanTanzanieUcraineUgandaIsulis periferichis minôrs dai St" + + "âts UnîtsStâts UnîtsUruguayUzbechistanVaticanSan Vincent e lis Gren" + + "adinisVenezuelaIsulis vergjinis britanichisIsulis vergjinis american" + + "isVietnamVanuatuWallis e FutunaSamoaYemenMayotteSud AfricheZambiaZim" + + "babweRegjon no cognossude o no valideMontAfricheAmeriche dal NordAme" + + "riche meridionâlOceanieAfriche ocidentâlAmeriche centrâlAfriche orie" + + "ntâlAfriche setentrionâlAfriche di mieçAfriche meridionâlAmerichisAm" + + "eriche setentrionâlcaraibicAsie orientâlAsie meridionâlAsie sud orie" + + "ntâlEurope meridionâlAustralie e Gnove ZelandeMelanesieRegjon de Mic" + + "ronesiePolinesieAsieAsie centrâlAsie ocidentâlEuropeEurope orientâlE" + + "urope setentrionâlEurope ocidentâlAmeriche latine", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001c, 0x0027, 0x0038, 0x0040, 0x0047, + 0x004e, 0x0054, 0x005c, 0x0066, 0x0075, 0x007c, 0x0085, 0x008a, + 0x0096, 0x00a1, 0x00b4, 0x00bc, 0x00c6, 0x00cf, 0x00db, 0x00e3, + 0x00ea, 0x00f1, 0x00f6, 0x0106, 0x010d, 0x0113, 0x011a, 0x011a, + 0x0121, 0x0128, 0x012e, 0x013a, 0x0142, 0x014d, 0x0153, 0x0159, + 0x0165, 0x0186, 0x01a0, 0x01b3, 0x01bb, 0x01ca, 0x01d5, 0x01d9, + 0x01e0, 0x01e4, 0x01ec, 0x01fc, 0x0206, 0x020a, 0x0214, 0x0214, + 0x0223, 0x0228, 0x0238, 0x0241, 0x024d, 0x0253, 0x025d, 0x0266, + // Entry 40 - 7F + 0x027b, 0x0282, 0x0291, 0x0298, 0x029f, 0x02a4, 0x02b5, 0x02bc, + 0x02c2, 0x02c9, 0x02d8, 0x02e1, 0x02e5, 0x02f4, 0x02fe, 0x030a, + 0x0310, 0x0315, 0x031f, 0x0326, 0x032f, 0x033e, 0x0346, 0x034b, + 0x0355, 0x035f, 0x0365, 0x036b, 0x0374, 0x0386, 0x038c, 0x03b5, + 0x03be, 0x03c2, 0x03cf, 0x03d5, 0x0407, 0x0424, 0x042c, 0x0435, + 0x043a, 0x0442, 0x0451, 0x045a, 0x0461, 0x0468, 0x0474, 0x0479, + 0x049b, 0x049f, 0x04a3, 0x04aa, 0x04b0, 0x04b6, 0x04bf, 0x04c7, + 0x04cd, 0x04d2, 0x04dd, 0x04e4, 0x04ec, 0x04f3, 0x0504, 0x0512, + // Entry 80 - BF + 0x051f, 0x0525, 0x0532, 0x053d, 0x0541, 0x0546, 0x0551, 0x055e, + 0x0567, 0x056e, 0x0575, 0x057d, 0x0587, 0x058e, 0x0593, 0x0598, + 0x059e, 0x05a6, 0x05b0, 0x05bb, 0x05c5, 0x05d4, 0x05dd, 0x05e1, + 0x05e9, 0x05f1, 0x061f, 0x0636, 0x0640, 0x064a, 0x0654, 0x0659, + 0x0660, 0x0668, 0x066e, 0x0674, 0x067c, 0x0684, 0x068b, 0x069a, + 0x069f, 0x06ac, 0x06b3, 0x06bc, 0x06c5, 0x06cd, 0x06d2, 0x06d7, + 0x06db, 0x06e8, 0x06ec, 0x06f3, 0x06f8, 0x070a, 0x071c, 0x0725, + 0x072d, 0x0734, 0x0749, 0x0751, 0x075b, 0x0770, 0x0778, 0x077d, + // Entry C0 - FF + 0x0785, 0x078a, 0x079d, 0x07a4, 0x07ab, 0x07b1, 0x07b7, 0x07bd, + 0x07cb, 0x07d9, 0x07e3, 0x07e8, 0x07ee, 0x07f7, 0x0802, 0x080a, + 0x081e, 0x0827, 0x0833, 0x083c, 0x0843, 0x084a, 0x0852, 0x0852, + 0x0866, 0x0871, 0x0871, 0x0876, 0x087f, 0x088f, 0x08a4, 0x08a8, + 0x08c6, 0x08ca, 0x08d3, 0x08dd, 0x08e4, 0x08f3, 0x08ff, 0x0906, + 0x090b, 0x0912, 0x0923, 0x0929, 0x092f, 0x0937, 0x093e, 0x0944, + 0x0971, 0x097e, 0x0985, 0x0990, 0x0997, 0x09b3, 0x09bc, 0x09d8, + 0x09f3, 0x09fa, 0x0a01, 0x0a10, 0x0a15, 0x0a15, 0x0a1a, 0x0a21, + // Entry 100 - 13F + 0x0a2c, 0x0a32, 0x0a3a, 0x0a5a, 0x0a5e, 0x0a65, 0x0a76, 0x0a8a, + 0x0a91, 0x0aa3, 0x0ab4, 0x0ac5, 0x0ada, 0x0aea, 0x0afd, 0x0b06, + 0x0b1c, 0x0b24, 0x0b32, 0x0b42, 0x0b54, 0x0b66, 0x0b7f, 0x0b88, + 0x0b9c, 0x0ba5, 0x0ba9, 0x0bb6, 0x0bc5, 0x0bcb, 0x0bdb, 0x0bef, + 0x0c00, 0x0c0f, + }, + }, + { // fy + "AscensionAndorraVerenigde Arabyske EmiratenAfghanistanAntigua en Barbuda" + + "AnguillaAlbaniëArmeniëAngolaAntarcticaArgentiniëAmerikaansk SamoaEas" + + "tenrykAustraliëArubaÃ…lânAzerbeidzjanBosnië en HerzegovinaBarbadosBan" + + "gladeshBelgiëBurkina FasoBulgarijeBahreinBurundiBeninSaint Barthélem" + + "yBermudaBruneiBoliviaKaribysk NederlânBraziliëBahama’sBhutanBouvetei" + + "lânBotswanaWit-RuslânBelizeCanadaKokosilanenCongo-KinshasaSintraal-A" + + "frikaanske RepublykCongo-BrazzavilleSwitserlânIvoorkustCookeilannenC" + + "hiliKameroenSinaKolombiaClippertonCosta RicaKubaKaapverdiëCuraçaoKry" + + "steilanSyprusTsjechjeDútslânDiego GarciaDjiboutiDenemarkenDominikaDo" + + "minikaanske RepublykAlgerijeCeuta en MelillaEcuadorEstlânEgypteWeste" + + "lijke SaharaEritreaSpanjeEthiopiëEuropeeske UnieFinlânFijiFalklâneil" + + "annenMicronesiëFaeröerFrankrijkGabonVerenigd KoninkrijkGrenadaGeorgi" + + "ëFrans-GuyanaGuernseyGhanaGibraltarGrienlânGambiaGuineeGuadeloupeEq" + + "uatoriaal-GuineaGrikelânSûd-Georgia en Sûdlike SandwicheilannenGuate" + + "malaGuamGuinee-BissauGuyanaHongkong SAR van SinaHeard- en McDonaldei" + + "lannenHondurasKroatiëHaïtiHongarijeKanaryske EilânnenYndonesiëIerlân" + + "IsraëlIsle of ManIndiaBritse Gebieden yn de Indyske OseaanIrakIranYs" + + "lânItaliëJerseyJamaicaJordaniëJapanKeniaKirgiziëCambodjaKiribatiComo" + + "renSaint Kitts en NevisNoard-KoreaSûd-KoreaKoeweitCaymaneilannenKaza" + + "chstanLaosLibanonSaint LuciaLiechtensteinSri LankaLiberiaLesothoLito" + + "uwenLuxemburgLetlânLibiëMarokkoMonacoMoldaviëMontenegroSaint-MartinM" + + "adeiaskarMarshalleilannenMacedoniëMaliMyanmar (Birma)MongoliëMacao S" + + "AR van SinaNoardlike MarianeneilannenMartiniqueMauritaniëMontserratM" + + "altaMauritiusMaldivenMalawiMexicoMaleisiëMozambiqueNamibiëNij-Caledo" + + "niëNigerNorfolkeilânNigeriaNicaraguaNederlânNoarwegenNepalNauruNiueN" + + "ij-SeelânOmanPanamaPeruFrans-PolynesiëPapoea-Nij-GuineaFilipijnenPak" + + "istanPolenSaint-Pierre en MiquelonPitcairneilannenPuerto RicoPalesty" + + "nske gebietenPortugalPalauParaguayQatarOerig OceaniëRéunionRoemeniëS" + + "erviëRuslânRwandaSaoedi-ArabiëSalomonseilannenSeychellenSoedanZweden" + + "SingaporeSint-HelenaSloveniëSpitsbergen en Jan MayenSlowakijeSierra " + + "LeoneSan MarinoSenegalSomaliëSurinameSûd-SoedanSao Tomé en PrincipeE" + + "l SalvadorSint-MaartenSyriëSwazilânTristan da CunhaTurks- en Caicose" + + "ilannenTsjaadFranse Gebieden in de zuidelijke Indyske OseaanTogoThai" + + "lânTadzjikistanTokelauEast-TimorTurkmenistanTunesiëTongaTurkijeTrini" + + "dad en TobagoTuvaluTaiwanTanzaniaOekraïneOegandaLyts ôflizzen eilann" + + "en fan de Ferienigde StatenFerienigde StatenUruguayOezbekistanVatica" + + "anstêdSaint Vincent en de GrenadinesVenezuelaBritse MaagdeneilannenA" + + "merikaanske MaagdeneilannenVietnamVanuatuWallis en FutunaSamoaKosovo" + + "JemenMayotteSûd-AfrikaZambiaZimbabweUnbekend gebietWrâldAfrikaNoard-" + + "AmerikaSûd-AmerikaOceaniëWest-AfrikaMidden-AmerikaEast-AfrikaNoard-A" + + "frikaSintraal-AfrikaSûdelijk AfrikaAmerikaNoardlik AmerikaKaribysk g" + + "ebietEast-AziëSûd-AziëSûdoost-AziëSûd-EuropaAustralaziëMelanesiëMicr" + + "onesyske regioPolynesiëAziëSintraal-AziëWest-AziëEuropaEast-EuropaNo" + + "ard-EuropaWest-EuropaLatynsk-Amearika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0048, 0x0050, 0x0058, + 0x0060, 0x0066, 0x0070, 0x007b, 0x008c, 0x0095, 0x009f, 0x00a4, + 0x00aa, 0x00b6, 0x00cc, 0x00d4, 0x00de, 0x00e5, 0x00f1, 0x00fa, + 0x0101, 0x0108, 0x010d, 0x011e, 0x0125, 0x012b, 0x0132, 0x0144, + 0x014d, 0x0157, 0x015d, 0x0169, 0x0171, 0x017c, 0x0182, 0x0188, + 0x0193, 0x01a1, 0x01be, 0x01cf, 0x01da, 0x01e3, 0x01ef, 0x01f4, + 0x01fc, 0x0200, 0x0208, 0x0212, 0x021c, 0x0220, 0x022b, 0x0233, + 0x023d, 0x0243, 0x024b, 0x0254, 0x0260, 0x0268, 0x0272, 0x027a, + // Entry 40 - 7F + 0x0290, 0x0298, 0x02a8, 0x02af, 0x02b6, 0x02bc, 0x02cd, 0x02d4, + 0x02da, 0x02e3, 0x02f2, 0x02f9, 0x02fd, 0x030d, 0x0318, 0x0320, + 0x0329, 0x032e, 0x0341, 0x0348, 0x0350, 0x035c, 0x0364, 0x0369, + 0x0372, 0x037b, 0x0381, 0x0387, 0x0391, 0x03a3, 0x03ac, 0x03d5, + 0x03de, 0x03e2, 0x03ef, 0x03f5, 0x040a, 0x0424, 0x042c, 0x0434, + 0x043a, 0x0443, 0x0456, 0x0460, 0x0467, 0x046e, 0x0479, 0x047e, + 0x04a2, 0x04a6, 0x04aa, 0x04b0, 0x04b7, 0x04bd, 0x04c4, 0x04cd, + 0x04d2, 0x04d7, 0x04e0, 0x04e8, 0x04f0, 0x04f7, 0x050b, 0x0516, + // Entry 80 - BF + 0x0520, 0x0527, 0x0535, 0x053f, 0x0543, 0x054a, 0x0555, 0x0562, + 0x056b, 0x0572, 0x0579, 0x0581, 0x058a, 0x0591, 0x0597, 0x059e, + 0x05a4, 0x05ad, 0x05b7, 0x05c3, 0x05cd, 0x05dd, 0x05e7, 0x05eb, + 0x05fa, 0x0603, 0x0615, 0x062f, 0x0639, 0x0644, 0x064e, 0x0653, + 0x065c, 0x0664, 0x066a, 0x0670, 0x0679, 0x0683, 0x068b, 0x0699, + 0x069e, 0x06ab, 0x06b2, 0x06bb, 0x06c4, 0x06cd, 0x06d2, 0x06d7, + 0x06db, 0x06e6, 0x06ea, 0x06f0, 0x06f4, 0x0704, 0x0715, 0x071f, + 0x0727, 0x072c, 0x0744, 0x0754, 0x075f, 0x0773, 0x077b, 0x0780, + // Entry C0 - FF + 0x0788, 0x078d, 0x079b, 0x07a3, 0x07ac, 0x07b3, 0x07ba, 0x07c0, + 0x07ce, 0x07de, 0x07e8, 0x07ee, 0x07f4, 0x07fd, 0x0808, 0x0811, + 0x0829, 0x0832, 0x083e, 0x0848, 0x084f, 0x0857, 0x085f, 0x086a, + 0x087f, 0x088a, 0x0896, 0x089c, 0x08a5, 0x08b5, 0x08cd, 0x08d3, + 0x0902, 0x0906, 0x090e, 0x091a, 0x0921, 0x092b, 0x0937, 0x093f, + 0x0944, 0x094b, 0x095d, 0x0963, 0x0969, 0x0971, 0x097a, 0x0981, + 0x09b1, 0x09c2, 0x09c9, 0x09d4, 0x09e1, 0x09ff, 0x0a08, 0x0a1e, + 0x0a3a, 0x0a41, 0x0a48, 0x0a58, 0x0a5d, 0x0a63, 0x0a68, 0x0a6f, + // Entry 100 - 13F + 0x0a7a, 0x0a80, 0x0a88, 0x0a97, 0x0a9d, 0x0aa3, 0x0ab0, 0x0abc, + 0x0ac4, 0x0acf, 0x0add, 0x0ae8, 0x0af4, 0x0b03, 0x0b13, 0x0b1a, + 0x0b2a, 0x0b39, 0x0b43, 0x0b4d, 0x0b5b, 0x0b66, 0x0b72, 0x0b7c, + 0x0b8e, 0x0b98, 0x0b9d, 0x0bab, 0x0bb5, 0x0bbb, 0x0bc6, 0x0bd2, + 0x0bdd, 0x0bed, + }, + }, + { // ga + "Oileán na DeascabhálaAndóraAontas na nÉimíríochtaí ArabachaAn Afganastái" + + "nAntigua agus BarbúdaAngaíleAn AlbáinAn AirméinAngólaAn AntartaiceAn" + + " AirgintínSamó MeiriceánachAn OstairAn AstráilArúbaOileáin Ã…landAn A" + + "sarbaiseáinAn Bhoisnia agus An HeirseagaivéinBarbadósAn Bhanglaidéis" + + "An BheilgBuircíne FasóAn BhulgáirBairéinAn BhurúinBeininSaint Barthé" + + "lemyBeirmiúdaBrúinéAn BholaivAn Ãsiltír ChairibeachAn BhrasaílNa Bah" + + "ámaíAn BhútáinOileán BouvetAn BhotsuáinAn BhealarúisAn BheilísCeana" + + "daOileáin Cocos (Keeling)Poblacht Dhaonlathach an ChongóPoblacht na " + + "hAfraice LáirAn CongóAn EilvéisAn Cósta EabhairOileáin CookAn tSileC" + + "amarúnAn tSínAn CholóimOileán ClippertonCósta RíceCúbaRinn VerdeCura" + + "çaoOileán na NollagAn ChipirPoblacht na SeiceAn GhearmáinDiego Garc" + + "iaDjiboutiAn DanmhairgDoiminiceAn Phoblacht DhoiminiceachAn AilgéirC" + + "euta agus MelillaEacuadórAn EastóinAn ÉigiptAn Sahára ThiarAn Eiritr" + + "éAn SpáinnAn AetóipAn tAontas EorpachAn FhionlainnFidsíOileáin Fhác" + + "lainneAn MhicrinéisOileáin FharóAn FhraincAn GhabúinAn Ríocht Aontai" + + "theGreanádaAn tSeoirsiaGuáin na FrainceGeansaíGánaGiobráltarAn Ghrao" + + "nlainnAn GhaimbiaAn GhuineGuadalúipAn Ghuine MheánchriosachAn Ghréig" + + "An tSeoirsia Theas agus Oileáin Sandwich TheasGuatamalaGuamGuine Bis" + + "sauAn GhuáinS.R.R. na Síne Hong CongOileán Heard agus Oileáin McDona" + + "ldHondúrasAn ChróitHáítíAn UngáirNa hOileáin ChanárachaAn IndinéisÉi" + + "reIosraelOileán MhanannAn IndiaCríoch Aigéan Indiach na BreataineAn " + + "IaráicAn IaráinAn ÃoslainnAn IodáilGeirsíIamáiceAn IordáinAn tSeapái" + + "nAn ChéiniaAn ChirgeastáinAn ChambóidCireabaitíOileáin ChomóraSan Cr" + + "íostóir-NimheasAn Chóiré ThuaidhAn Chóiré TheasCuáitOileáin CaymanA" + + "n ChasacstáinLaosAn LiobáinSaint LuciaLichtinstéinSrí LancaAn Libéir" + + "LeosótaAn LiotuáinLucsamburgAn LaitviaAn LibiaMaracóMonacóAn Mholdói" + + "vMontainéagróSaint-MartinMadagascarOileáin MarshallAn MhacadóinMailí" + + "Maenmar (Burma)An MhongóilS.R.R. na Síne MacaoNa hOileáin Mháirianac" + + "ha ThuaidhMartiniqueAn MháratáinMontsaratMáltaOileán MhuirísOileáin " + + "MhaildíveAn MhaláivMeicsiceoAn MhalaeisiaMósaimbícAn NamaibAn Nua-Ch" + + "aladóinAn NígirOileán NorfolkAn NigéirNicearaguaAn ÃsiltírAn IoruaNe" + + "ipealNárúNiueAn Nua-ShéalainnÓmanPanamaPeiriúPolainéis na FrainceNua" + + "-Ghuine PhapuaNa hOileáin FhilipíneachaAn PhacastáinAn PholainnSaint" + + "-Pierre-et-MiquelonOileáin PitcairnPortó RíceNa Críocha Palaistíneac" + + "haAn PhortaingéilPalauParaguaCatarAn Aigéine ImeallachRéunionAn Rómá" + + "inAn tSeirbiaAn RúisRuandaAn Araib ShádachOileáin SholomónNa Séiséil" + + "An tSúdáinAn tSualainnSingeapórSan HéilinAn tSlóivéinSvalbard agus J" + + "an MayenAn tSlóvaicSiarra LeonSan MairíneAn tSeineagáilAn tSomáilSur" + + "anamAn tSúdáin TheasSão Tomé agus PríncipeAn tSalvadóirSint MaartenA" + + "n tSiriaAn tSuasalainnTristan da CunhaOileáin na dTurcach agus Caico" + + "sSeadCríocha Francacha Dheisceart an DomhainTógaAn TéalainnAn Táidsí" + + "ceastáinTócaláTíomór ThoirAn TuircméanastáinAn TúinéisTongaAn TuircO" + + "ileán na Tríonóide agus TobágaTuvaluAn TéaváinAn TansáinAn ÚcráinUga" + + "ndaOileáin Imeallacha S.A.M.Stáit Aontaithe MheiriceáUruguaAn Úisbéi" + + "ceastáinAn VatacáinSan Uinseann agus na GreanáidíníVeiniséalaOileáin" + + " Bhriotanacha na MaighdeanOileáin Mheiriceánacha na MaighdeanVítneam" + + "VanuatúVailís agus FutúnaSamóAn ChosaivÉiminMayotteAn Afraic TheasAn" + + " tSaimbiaAn tSiombáibRéigiún AnaithnidAn DomhanAn AfraicMeiriceá Thu" + + "aidhMeiriceá TheasAn AigéineIarthar na hAfraiceMeiriceá LáirOirthear" + + " na hAfraiceTuaisceart na hAfraiceAn Afraic LáirDeisceart na hAfraic" + + "eCríocha MheiriceáTuaisceart MheiriceáAn Mhuir ChairibOirthear na hÃ" + + "iseDeisceart na hÃiseOirdheisceart na hÃiseDeisceart na hEorpaAn Ast" + + "raláiseAn MheilinéisAn Réigiún MicrinéiseachAn PholainéisAn ÃiseAn Ã" + + "ise LáirIarthar na hÃiseAn EoraipOirthear na hEorpaTuaisceart na hEo" + + "rpaIarthar na hEorpaMeiriceá Laidineach", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0017, 0x001e, 0x0042, 0x0051, 0x0066, 0x006e, 0x0078, + 0x0083, 0x008a, 0x0097, 0x00a4, 0x00b7, 0x00c0, 0x00cb, 0x00d1, + 0x00e0, 0x00f0, 0x0113, 0x011c, 0x012c, 0x0135, 0x0144, 0x0150, + 0x0158, 0x0163, 0x0169, 0x017a, 0x0184, 0x018c, 0x0196, 0x01ae, + 0x01ba, 0x01c6, 0x01d2, 0x01e0, 0x01ed, 0x01fb, 0x0206, 0x020d, + 0x0225, 0x0245, 0x025f, 0x0268, 0x0273, 0x0284, 0x0291, 0x0299, + 0x02a1, 0x02a9, 0x02b4, 0x02c6, 0x02d2, 0x02d7, 0x02e1, 0x02e9, + 0x02fa, 0x0303, 0x0314, 0x0321, 0x032d, 0x0335, 0x0341, 0x034a, + // Entry 40 - 7F + 0x0364, 0x036f, 0x0381, 0x038a, 0x0395, 0x039f, 0x03af, 0x03ba, + 0x03c4, 0x03ce, 0x03e0, 0x03ed, 0x03f3, 0x0407, 0x0415, 0x0424, + 0x042e, 0x0439, 0x044d, 0x0456, 0x0462, 0x0473, 0x047b, 0x0480, + 0x048b, 0x0499, 0x04a4, 0x04ad, 0x04b7, 0x04d0, 0x04da, 0x0509, + 0x0512, 0x0516, 0x0522, 0x052c, 0x0545, 0x0569, 0x0572, 0x057c, + 0x0584, 0x058e, 0x05a6, 0x05b2, 0x05b7, 0x05be, 0x05cd, 0x05d5, + 0x05f9, 0x0603, 0x060d, 0x0619, 0x0623, 0x062a, 0x0632, 0x063d, + 0x0649, 0x0654, 0x0664, 0x0670, 0x067b, 0x068c, 0x06a3, 0x06b6, + // Entry 80 - BF + 0x06c7, 0x06cd, 0x06dc, 0x06eb, 0x06ef, 0x06fa, 0x0705, 0x0712, + 0x071c, 0x0726, 0x072e, 0x073a, 0x0744, 0x074e, 0x0756, 0x075d, + 0x0764, 0x0770, 0x077e, 0x078a, 0x0794, 0x07a5, 0x07b2, 0x07b8, + 0x07c7, 0x07d3, 0x07e8, 0x080a, 0x0814, 0x0822, 0x082b, 0x0831, + 0x0841, 0x0854, 0x085f, 0x0868, 0x0875, 0x0880, 0x0889, 0x089a, + 0x08a3, 0x08b2, 0x08bc, 0x08c6, 0x08d2, 0x08da, 0x08e1, 0x08e7, + 0x08eb, 0x08fc, 0x0901, 0x0907, 0x090e, 0x0923, 0x0934, 0x094f, + 0x095d, 0x0968, 0x0980, 0x0991, 0x099d, 0x09b8, 0x09c8, 0x09cd, + // Entry C0 - FF + 0x09d4, 0x09d9, 0x09ee, 0x09f6, 0x0a01, 0x0a0c, 0x0a14, 0x0a1a, + 0x0a2b, 0x0a3d, 0x0a49, 0x0a55, 0x0a61, 0x0a6b, 0x0a76, 0x0a84, + 0x0a9b, 0x0aa7, 0x0ab2, 0x0abe, 0x0acd, 0x0ad8, 0x0adf, 0x0af1, + 0x0b0a, 0x0b18, 0x0b24, 0x0b2d, 0x0b3b, 0x0b4b, 0x0b6b, 0x0b6f, + 0x0b97, 0x0b9c, 0x0ba8, 0x0bbc, 0x0bc4, 0x0bd2, 0x0be6, 0x0bf2, + 0x0bf7, 0x0bff, 0x0c22, 0x0c28, 0x0c34, 0x0c3f, 0x0c4a, 0x0c50, + 0x0c6a, 0x0c85, 0x0c8b, 0x0c9f, 0x0cab, 0x0cce, 0x0cd9, 0x0cfb, + 0x0d20, 0x0d28, 0x0d30, 0x0d44, 0x0d49, 0x0d53, 0x0d59, 0x0d60, + // Entry 100 - 13F + 0x0d6f, 0x0d7a, 0x0d87, 0x0d9a, 0x0da3, 0x0dac, 0x0dbd, 0x0dcc, + 0x0dd7, 0x0dea, 0x0df9, 0x0e0d, 0x0e23, 0x0e32, 0x0e47, 0x0e5a, + 0x0e6f, 0x0e7f, 0x0e91, 0x0ea4, 0x0ebb, 0x0ece, 0x0edc, 0x0eea, + 0x0f05, 0x0f13, 0x0f1b, 0x0f29, 0x0f3a, 0x0f43, 0x0f55, 0x0f69, + 0x0f7a, 0x0f8e, + }, + }, + { // gd + "Eilean na DeasgabhalachAndorraNa h-Iomaratan Arabach AonaichteAfghanastà" + + "nAintìoga is BarbudaAnguillaAlbàiniaAirmeiniaAngòlaAn AntartaigAn Ar" + + "gantainSamotha na h-AimeireagaAn OstairAstràiliaArùbaNa h-Eileanan Ã…" + + "landAsarbaideànBosna agus HearsagobhanaBarbadosBangladaisA’ BheilgBu" + + "irciona FasoA’ BhulgairBachrainBurundaidhBeininSaint BarthélemyBearm" + + "ùdaBrùnaighBoilibhiaNa Tìrean ÃŒsle CaraibeachBraisilNa h-Eileanan B" + + "hathamaButànEilean BouvetBotsuanaA’ BhealaruisA’ BheilìsCanadaNa h-E" + + "ileanan Cocos (Keeling)Congo - KinshasaPoblachd Meadhan AfragaA’ Cho" + + "ngo - BrazzavilleAn EilbheisCôte d’IvoireEileanan CookAn t-SileCamar" + + "unAn t-SìnColoimbiaEilean ClippertonCosta RìceaCùbaAn Ceap UaineCura" + + "çaoEilean na NollaigCìoprasPoblachd na SeiceA’ GhearmailtDiego Garc" + + "iaDiobùtaidhAn DanmhairgDoiminiceaA’ Phoblachd DhoiminiceachAildiria" + + "Ceuta agus MelillaEacuadorAn EastoinAn ÈiphitSathara an IarEartraAn " + + "SpàinnAn ItiopAn t-Aonadh EòrpachAn FhionnlannFìdiNa h-Eileanan Fàcl" + + "annachNa Meanbh-EileananNa h-Eileanan FàroAn FhraingGabonAn Rìoghach" + + "d AonaichteGreanàdaA’ ChairtbheilGuidheàna na FraingeGeàrnsaidhGànaD" + + "iobraltarA’ GhraonlannA’ GhaimbiaGiniGuadalupGini Mheadhan-Chriosach" + + "A’ GhreugSeòrsea a Deas is na h-Eileanan Sandwich a DeasGuatamalaGua" + + "mGini-BiosoGuidheànaHong Kong SAR na SìneEilean Heard is MhicDhòmhna" + + "illHondùrasA’ ChròthaisHaidhtiAn UngairNa h-Eileanan CanàrachNa h-In" + + "nd InnseÈirinnIosraelEilean MhanainnNa h-InnseachanRanntair Breatann" + + "ach Cuan nan InnseachanIoràcIorànInnis TìleAn EadailtDeàrsaidhDiameu" + + "gaIòrdanAn t-SeapanCeiniaCìorgastanCambuideaCiribeasComorosNaomh Crì" + + "stean is NibheisCoirèa a TuathCoirèa a DeasCuibhèitNa h-Eileanan Cai" + + "meanCasachstànLàthosLeabanonNaomh LùiseaLichtensteinSri LancaLibèirL" + + "easotoAn LiotuainLugsamburgAn LaitbheLibiaMorocoMonacoA’ MholdobhaAm" + + " Monadh NeagrachNaomh MàrtainnMadagasgarEileanan MharshallA’ Mhasado" + + "nMàiliMiànmarDùthaich nam MongolMacàthu SAR na SìneNa h-Eileanan Mai" + + "rianach a TuathMairtinicMoratàineaMontsaratMaltaNa h-Eileanan Mhoiri" + + "seasNa h-Eileanan MhaladaibhMalabhaidhMeagsagoMalaidhseaMòsaimbicAn " + + "NamaibCailleann NuadhNìgeirEilean NorfolkNigèiriaNiocaraguaNa Tìrean" + + " ÃŒsleAn NirribhidhNeapàlNabhruNiueSealainn NuadhOmànPanamaPearùPoili" + + "nèis na FraingeGini Nuadh PhaputhachNa h-Eileanan FilipineachPagastà" + + "nA’ PhòlainnSaint Pierre agus MiquelonEilean Peit a’ ChàirnPorto Rìc" + + "eoNa Ranntairean PalastaineachA’ PhortagailPalabhParaguaidhCatarRoin" + + "n Iomallach a’ Chuain SèimhRéunionRomàiniaAn t-SèirbAn RuisRubhandaA" + + "ràibia nan SabhdEileanan SholaimhNa h-Eileanan SheiseallSudànAn t-Su" + + "ainSingeapòrEilean Naomh EilidhAn t-SlòbhainSvalbard agus Jan MayenA" + + "n t-SlòbhacSiarra LeòmhannSan MarinoSeanagalSomàiliaSuranamSudàn a D" + + "easSão Tomé agus PríncipeAn SalbhadorSint MaartenSiridheaDùthaich na" + + "n SuasaidhTristan da CunhaNa h-Eileanan Turcach is CaiceoAn t-SeàdRa" + + "nntairean a Deas na FraingeTogoDùthaich nan TàidhTaidigeastànTokelau" + + "Timor-LesteTurcmanastànTuiniseaTongaAn TuircTrianaid agus TobagoTubh" + + "aluTaidh-BhànAn TansanAn UcràinUgandaMeanbh-Eileanan Iomallach nan S" + + "ANa Stàitean AonaichteUruguaidhUsbagastànCathair na BhatacainNaomh B" + + "hionsant agus Eileanan GreanadachA’ BheinisealaEileanan Breatannach " + + "na MaighdinnEileanan Aimeireagach na MaighdinnBhiet-NamVanuatuUallas" + + " agus FutunaSamothaA’ ChosobhoAn EamanMayotteAfraga a DeasSàimbiaAn " + + "t-SìombabRoinn-dùthcha neo-aithnichteAn SaoghalAfragaAimeireaga a Tu" + + "athAimeireaga a DeasRoinn a’ Chuain SèimhAfraga an IarMeadhan Aimeir" + + "eagaAfraga an EarAfraga a TuathMeadhan AfragaCeann a Deas AfragaAn D" + + "à AimeireagaCeann a Tuath AimeireagaAm Muir CaraibeachÀisia an EarÀ" + + "isia a DeasÀisia an Ear-dheasAn Roinn-Eòrpa a DeasAstràilia is Seala" + + "inn NuadhNa h-Eileanan DubhaRoinn nam Meanbh-EileananPoilinèisÀisiaM" + + "eadhan ÀisiaÀisia an IarAn Roinn-EòrpaAn Roinn-Eòrpa an EarAn Roinn-" + + "Eòrpa a TuathAn Roinn-Eòrpa an IarAimeireaga Laidinneach", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0017, 0x001e, 0x003e, 0x004a, 0x005e, 0x0066, 0x006f, + 0x0078, 0x007f, 0x008b, 0x0097, 0x00ae, 0x00b7, 0x00c1, 0x00c7, + 0x00db, 0x00e7, 0x00ff, 0x0107, 0x0111, 0x011c, 0x012a, 0x0137, + 0x013f, 0x0149, 0x014f, 0x0160, 0x0169, 0x0172, 0x017b, 0x0196, + 0x019d, 0x01b3, 0x01b9, 0x01c6, 0x01ce, 0x01dd, 0x01ea, 0x01f0, + 0x020d, 0x021d, 0x0234, 0x024d, 0x0258, 0x0268, 0x0275, 0x027e, + 0x0285, 0x028e, 0x0297, 0x02a8, 0x02b4, 0x02b9, 0x02c6, 0x02ce, + 0x02df, 0x02e7, 0x02f8, 0x0307, 0x0313, 0x031e, 0x032a, 0x0334, + // Entry 40 - 7F + 0x0350, 0x0358, 0x036a, 0x0372, 0x037c, 0x0386, 0x0394, 0x039a, + 0x03a4, 0x03ac, 0x03c0, 0x03cd, 0x03d2, 0x03eb, 0x03fd, 0x0410, + 0x041a, 0x041f, 0x0436, 0x043f, 0x044f, 0x0464, 0x046f, 0x0474, + 0x047e, 0x048d, 0x049a, 0x049e, 0x04a6, 0x04bd, 0x04c8, 0x04f8, + 0x0501, 0x0505, 0x050f, 0x0519, 0x052f, 0x054e, 0x0557, 0x0566, + 0x056d, 0x0576, 0x058d, 0x059c, 0x05a3, 0x05aa, 0x05b9, 0x05c8, + 0x05f0, 0x05f6, 0x05fc, 0x0607, 0x0611, 0x061b, 0x0623, 0x062a, + 0x0635, 0x063b, 0x0646, 0x064f, 0x0657, 0x065e, 0x0678, 0x0687, + // Entry 80 - BF + 0x0695, 0x069e, 0x06b3, 0x06be, 0x06c5, 0x06cd, 0x06da, 0x06e6, + 0x06ef, 0x06f6, 0x06fd, 0x0708, 0x0712, 0x071c, 0x0721, 0x0727, + 0x072d, 0x073b, 0x074d, 0x075c, 0x0766, 0x0778, 0x0785, 0x078b, + 0x0793, 0x07a7, 0x07bc, 0x07dc, 0x07e5, 0x07f0, 0x07f9, 0x07fe, + 0x0816, 0x082e, 0x0838, 0x0840, 0x084a, 0x0854, 0x085d, 0x086c, + 0x0873, 0x0881, 0x088a, 0x0894, 0x08a4, 0x08b1, 0x08b8, 0x08be, + 0x08c2, 0x08d0, 0x08d5, 0x08db, 0x08e1, 0x08f6, 0x090b, 0x0924, + 0x092d, 0x093b, 0x0955, 0x096d, 0x0979, 0x0995, 0x09a4, 0x09aa, + // Entry C0 - FF + 0x09b4, 0x09b9, 0x09db, 0x09e3, 0x09ec, 0x09f7, 0x09fe, 0x0a06, + 0x0a18, 0x0a29, 0x0a40, 0x0a46, 0x0a50, 0x0a5a, 0x0a6d, 0x0a7b, + 0x0a92, 0x0a9f, 0x0aaf, 0x0ab9, 0x0ac1, 0x0aca, 0x0ad1, 0x0ade, + 0x0af7, 0x0b03, 0x0b0f, 0x0b17, 0x0b2d, 0x0b3d, 0x0b5c, 0x0b66, + 0x0b83, 0x0b87, 0x0b9b, 0x0ba8, 0x0baf, 0x0bba, 0x0bc7, 0x0bcf, + 0x0bd4, 0x0bdc, 0x0bf0, 0x0bf7, 0x0c02, 0x0c0b, 0x0c15, 0x0c1b, + 0x0c3b, 0x0c51, 0x0c5a, 0x0c65, 0x0c79, 0x0ca1, 0x0cb1, 0x0cd2, + 0x0cf4, 0x0cfd, 0x0d04, 0x0d16, 0x0d1d, 0x0d2a, 0x0d32, 0x0d39, + // Entry 100 - 13F + 0x0d46, 0x0d4e, 0x0d5b, 0x0d78, 0x0d82, 0x0d88, 0x0d9a, 0x0dab, + 0x0dc3, 0x0dd0, 0x0de2, 0x0def, 0x0dfd, 0x0e0b, 0x0e1e, 0x0e2f, + 0x0e47, 0x0e59, 0x0e66, 0x0e73, 0x0e86, 0x0e9c, 0x0eb8, 0x0ecb, + 0x0ee4, 0x0eee, 0x0ef4, 0x0f02, 0x0f0f, 0x0f1e, 0x0f34, 0x0f4b, + 0x0f61, 0x0f77, + }, + }, + { // gl + "Illa de AscensiónAndorraEmiratos Ãrabes UnidosAfganistánAntiga e Barbuda" + + "AnguilaAlbaniaArmeniaAngolaAntártidaArxentinaSamoa AmericanaAustriaA" + + "ustraliaArubaIllas AlandAcerbaixánBosnia e HercegovinaBarbadosBangla" + + "deshBélxicaBurkina FasoBulgariaBahreinBurundiBeninSan BartoloméBermu" + + "dasBruneiBoliviaCaribe neerlandésBrasilBahamasButánIlla BouvetBotsua" + + "naBielorrusiaBeliceCanadáIllas Cocos (Keeling)República Democrática " + + "do CongoRepública CentroafricanaCongoSuízaCosta de MarfilIllas CookC" + + "hileCamerúnChinaColombiaIlla ClippertonCosta RicaCubaCabo VerdeCuraç" + + "aoIlla ChristmasChipreRepública ChecaAlemañaDiego GarcíaDjibutiDinam" + + "arcaDominicaRepública DominicanaArxeliaCeuta e MelillaEcuadorEstonia" + + "ExiptoSáhara OccidentalEritreaEspañaEtiopíaUnión EuropeaFinlandiaFix" + + "iIllas MalvinasMicronesiaIllas FeroeFranciaGabónReino UnidoGranadaXe" + + "orxiaGüiana FrancesaGuernseyGanaXibraltarGrenlandiaGambiaGuineaGuada" + + "lupeGuinea EcuatorialGreciaXeorxia do Sur e Illas SandwichGuatemalaG" + + "uamGuinea-BissauGüianaHong Kong RAE de ChinaIlla Heard e Illas McDon" + + "aldHondurasCroaciaHaitíHungríaIllas CanariasIndonesiaIrlandaIsraelIl" + + "la de ManIndiaTerritorio Británico do Océano ÃndicoIraqIránIslandiaI" + + "taliaJerseyXamaicaXordaniaXapónKenyaQuirguicistánCambodiaKiribatiCom" + + "oresSan Cristovo e NevisCorea do NorteCorea do SurKuwaitIllas Caimán" + + "KazakhstanLaosLíbanoSanta LucíaLiechtensteinSri LankaLiberiaLesothoL" + + "ituaniaLuxemburgoLetoniaLibiaMarrocosMónacoMoldovaMontenegroSan Mart" + + "iñoMadagascarIllas MarshallMacedoniaMaliMyanmar (Birmania)MongoliaMa" + + "cau RAE de ChinaIllas Marianas do norteMartinicaMauritaniaMontserrat" + + "MaltaMauricioMaldivasMalauiMéxicoMalaisiaMozambiqueNamibiaNova Caled" + + "oniaNíxerIlla NorfolkNixeriaNicaraguaPaíses BaixosNoruegaNepalNauruN" + + "iueNova CelandiaOmánPanamáPerúPolinesia FrancesaPapúa Nova GuineaFil" + + "ipinasPaquistánPoloniaSan Pedro e MiguelónIllas PitcairnPorto RicoTe" + + "rritorios palestinosPortugalPalauParaguaiQatarOceanía DistanteReunió" + + "nRomaníaSerbiaRusiaRuandaArabia SauditaIllas SalomónSeixelesSudánSue" + + "ciaSingapurSanta HelenaEsloveniaSvalbard e Jan MayenEslovaquiaSerra " + + "LeoaSan MarinoSenegalSomaliaSurinamSudán do surSan Tomé e PríncipeEl" + + " SalvadorSint MaartenSiriaSuacilandiaTristán da CunhaIllas Turks e C" + + "aicosChadTerritorios Franceses do SulTogoTailandiaTaxiquistánTokelau" + + "Timor LesteTurkmenistánTunisiaTongaTurquíaTrindade e TobagoTuvaluTai" + + "wánTanzaniaUcraínaUgandaIllas Menores Distantes dos EUA.Estados Unid" + + "os de AméricaUruguaiUzbekistánCidade do VaticanoSan Vicente e Granad" + + "inasVenezuelaIllas Virxes BritánicasIllas Virxes EstadounidensesViet" + + "namVanuatuWallis e FutunaSamoaKosovoIemenMayotteSudáfricaZambiaCimba" + + "bueRexión descoñecidaMundoÃfricaNorteaméricaSudaméricaOceaníaÃfrica " + + "OccidentalAmérica CentralÃfrica OrientalÃfrica SeptentrionalÃfrica C" + + "entralÃfrica MeridionalAméricaAmérica do NorteCaribeAsia OrientalSul" + + " de AsiaSureste AsiáticoEuropa MeridionalAustralasiaMelanesiaRexión " + + "da MicronesiaPolinesiaAsiaAsia CentralAsia OccidentalEuropaEuropa do" + + " LesteEuropa SeptentrionalEuropa OccidentalAmérica Latina", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0019, 0x0030, 0x003b, 0x004b, 0x0052, 0x0059, + 0x0060, 0x0066, 0x0070, 0x0079, 0x0088, 0x008f, 0x0098, 0x009d, + 0x00a8, 0x00b3, 0x00c7, 0x00cf, 0x00d9, 0x00e1, 0x00ed, 0x00f5, + 0x00fc, 0x0103, 0x0108, 0x0116, 0x011e, 0x0124, 0x012b, 0x013d, + 0x0143, 0x014a, 0x0150, 0x015b, 0x0163, 0x016e, 0x0174, 0x017b, + 0x0190, 0x01b0, 0x01c9, 0x01ce, 0x01d4, 0x01e3, 0x01ed, 0x01f2, + 0x01fa, 0x01ff, 0x0207, 0x0216, 0x0220, 0x0224, 0x022e, 0x0236, + 0x0244, 0x024a, 0x025a, 0x0262, 0x026f, 0x0276, 0x027f, 0x0287, + // Entry 40 - 7F + 0x029c, 0x02a3, 0x02b2, 0x02b9, 0x02c0, 0x02c6, 0x02d8, 0x02df, + 0x02e6, 0x02ee, 0x02fc, 0x0305, 0x0309, 0x0317, 0x0321, 0x032c, + 0x0333, 0x0339, 0x0344, 0x034b, 0x0352, 0x0362, 0x036a, 0x036e, + 0x0377, 0x0381, 0x0387, 0x038d, 0x0396, 0x03a7, 0x03ad, 0x03cc, + 0x03d5, 0x03d9, 0x03e6, 0x03ed, 0x0403, 0x041e, 0x0426, 0x042d, + 0x0433, 0x043b, 0x0449, 0x0452, 0x0459, 0x045f, 0x046a, 0x046f, + 0x0497, 0x049b, 0x04a0, 0x04a8, 0x04ae, 0x04b4, 0x04bb, 0x04c3, + 0x04c9, 0x04ce, 0x04dc, 0x04e4, 0x04ec, 0x04f3, 0x0507, 0x0515, + // Entry 80 - BF + 0x0521, 0x0527, 0x0534, 0x053e, 0x0542, 0x0549, 0x0555, 0x0562, + 0x056b, 0x0572, 0x0579, 0x0581, 0x058b, 0x0592, 0x0597, 0x059f, + 0x05a6, 0x05ad, 0x05b7, 0x05c3, 0x05cd, 0x05db, 0x05e4, 0x05e8, + 0x05fa, 0x0602, 0x0614, 0x062b, 0x0634, 0x063e, 0x0648, 0x064d, + 0x0655, 0x065d, 0x0663, 0x066a, 0x0672, 0x067c, 0x0683, 0x0691, + 0x0697, 0x06a3, 0x06aa, 0x06b3, 0x06c1, 0x06c8, 0x06cd, 0x06d2, + 0x06d6, 0x06e3, 0x06e8, 0x06ef, 0x06f4, 0x0706, 0x0718, 0x0721, + 0x072b, 0x0732, 0x0747, 0x0755, 0x075f, 0x0775, 0x077d, 0x0782, + // Entry C0 - FF + 0x078a, 0x078f, 0x07a0, 0x07a8, 0x07b0, 0x07b6, 0x07bb, 0x07c1, + 0x07cf, 0x07dd, 0x07e5, 0x07eb, 0x07f1, 0x07f9, 0x0805, 0x080e, + 0x0822, 0x082c, 0x0836, 0x0840, 0x0847, 0x084e, 0x0855, 0x0862, + 0x0877, 0x0882, 0x088e, 0x0893, 0x089e, 0x08af, 0x08c3, 0x08c7, + 0x08e3, 0x08e7, 0x08f0, 0x08fc, 0x0903, 0x090e, 0x091b, 0x0922, + 0x0927, 0x092f, 0x0940, 0x0946, 0x094d, 0x0955, 0x095d, 0x0963, + 0x0983, 0x099d, 0x09a4, 0x09af, 0x09c1, 0x09d9, 0x09e2, 0x09fa, + 0x0a16, 0x0a1d, 0x0a24, 0x0a33, 0x0a38, 0x0a3e, 0x0a43, 0x0a4a, + // Entry 100 - 13F + 0x0a54, 0x0a5a, 0x0a62, 0x0a76, 0x0a7b, 0x0a82, 0x0a8f, 0x0a9a, + 0x0aa2, 0x0ab4, 0x0ac4, 0x0ad4, 0x0ae9, 0x0af8, 0x0b0a, 0x0b12, + 0x0b23, 0x0b29, 0x0b36, 0x0b41, 0x0b52, 0x0b63, 0x0b6e, 0x0b77, + 0x0b8c, 0x0b95, 0x0b99, 0x0ba5, 0x0bb4, 0x0bba, 0x0bc9, 0x0bdd, + 0x0bee, 0x0bfd, + }, + }, + { // gsw + "AndorraVeräinigti Arabischi EmirateAfganischtanAntigua und BarbudaAnguil" + + "laAlbaanieArmeenieAngoolaAntarktisArgentiinieAmerikaanisch-SamoaÖösc" + + "htriichAuschtraalieArubaAaland-InsleAserbäidschanBosnie und Herzegow" + + "inaBarbadosBangladeschBelgieBurkina FaasoBulgaarieBachräinBurundiBen" + + "inSt. BarthelemiBermuudaBrunäi TarussalamBoliivieBrasilieBahaamasBhu" + + "tanBouvet-InsleBotswanaWiissrusslandBelizeKanadaKokos-InsleTemokraat" + + "ischi Republik KongoZentraalafrikaanischi RepublikKongoSchwiizElfebä" + + "iküschteCook-InsleTschileKamerunChiinaKolumbieCoschta RicaKubaKap Ve" + + "rdeWienachts-InsleZypereTschechischi RepublikTüütschlandTschibuutiTä" + + "nemarkTominicaTominikaanischi RepublikAlgeerieEcuadorEestlandÄgüpteW" + + "eschtsaharaÄritreeaSchpanieÄthiopieEuropääischi UnioonFinnlandFitsch" + + "iFalkland-InsleMikroneesieFäröerFrankriichGabunVeräinigts Chönigriic" + + "hGrenadaGeoorgieFranzösisch-GuäjaanaGäärnsiGaanaGibraltarGröönlandGa" + + "mbiaGineeaGuadälupÄquatoriaalgineeaGriechelandSüüdgeorgie und d’süüd" + + "lichi Sändwitsch-InsleGuatemaalaGuamGineea-BissauGuäjaanaSonderverwa" + + "ltigszone HongkongHöörd- und MäcDonald-InsleHondurasKroaazieHaitiUng" + + "arnIndoneesieIrlandIsraelInsle vo MänIndieBritischs Territoorium im " + + "Indische OozeanIraakIraanIislandItaalieDschörsiDschamäikaJordaanieJa" + + "panKeeniaKirgiisischtanKambodschaKiribaatiKomooreSt. Kitts und Niuwi" + + "sDemokraatischi Volksrepublik KoreeaRepublik KoreeaKuwäitKäimän-Insl" + + "eKasachschtanLaaosLibanonSt. LutschiiaLiächteschtäiSchri LankaLibeer" + + "iaLesootoLittaueLuxemburgLettlandLüübieMarokkoMonacoRepublik MoldauM" + + "onteneegroSt. MartinMadagaschkarMarshallinsleMazedoonieMaaliMyanmar " + + "(Burma)MongoleiSonderverwaltigszone MacaoNördlichi MariaaneMartinigg" + + "MauretaanieMoosörratMaltaMauriiziusMalediiweMalaawiMexikoMaläisiaMos" + + "ambikNamiibiaNöikaledoonieNigerNorfolk-InsleNigeeriaNicaraaguaHollan" + + "dNorweegeNeepalNauruNiueNöiseelandOmaanPanamaPeruFranzösisch-Polinee" + + "siePapua-NeuguineaPhilippiinePakischtanPooleSt. Pierr und MiggeloPit" + + "ggäärnPuerto RiggoPaläschtinänsischi GebietPortugalPalauParaguaiGgat" + + "arÃœssers OzeaanieReünioonRumäänieSärbieRusslandRuandaSaudi-AraabieSa" + + "lomooneSeischälleSudanSchweedeSingapuurSt. HelenaSloweenieSvalbard u" + + "nd Jaan MääieSlowakäiSierra LeooneSan MariinoSenegalSomaalieSurinamS" + + "ao Tome und PrinssipeEl SalvadorSüürieSwasilandTörks- und Gaiggos-In" + + "sleTschadFranzösischi Süüd- und AntarktisgebietToogoThailandTadschik" + + "ischtanTokelauOschttimorTurkmeenischtanTuneesieTongaTürggeiTrinidad " + + "und TobaagoTuvaluTaiwanTansaniiaUkraiineUgandaAmerikanisch-OzeaanieV" + + "eräinigti SchtaateUruguayUschbeekischtanVatikanstadtSt. Vincent und " + + "d’GrönadiineVenezueelaBritischi Jungfere-InsleAmerikaanischi Jungfer" + + "e-InsleWietnamWanuatuWallis und FutuunaSamooaJeemeMajottSüüdafrikaSa" + + "mbiaSimbabweUnbekannti oder ungültigi RegioonWältAfrikaNordameerikaS" + + "üüdameerikaOzeaanieWeschtafrikaMittelameerikaOschtafrikaNordafrikaZ" + + "entraalafrikaSüüdlichs AfrikaNord-, Mittel- und SüüdameerikaNördlich" + + "s AmeerikaKaribikOschtaasieSüüdaasieSüüdoschtaasieSüüdeuropaAuschtra" + + "alie und NöiseelandMelaneesieMikroneesischs InselgebietPolineesieAas" + + "ieZentraalaasieWeschtaasieEuroopaOschteuroopaNordeuroopaWeschteuroop" + + "aLatiinameerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0024, 0x0030, 0x0043, 0x004b, 0x0053, + 0x005b, 0x0062, 0x006b, 0x0076, 0x0089, 0x0096, 0x00a2, 0x00a7, + 0x00b3, 0x00c1, 0x00d7, 0x00df, 0x00ea, 0x00f0, 0x00fd, 0x0106, + 0x010f, 0x0116, 0x011b, 0x0129, 0x0131, 0x0143, 0x014b, 0x014b, + 0x0153, 0x015b, 0x0161, 0x016d, 0x0175, 0x0182, 0x0188, 0x018e, + 0x0199, 0x01b6, 0x01d4, 0x01d9, 0x01e0, 0x01f0, 0x01fa, 0x0201, + 0x0208, 0x020e, 0x0216, 0x0216, 0x0222, 0x0226, 0x022f, 0x022f, + 0x023e, 0x0244, 0x0259, 0x0266, 0x0266, 0x0270, 0x0279, 0x0281, + // Entry 40 - 7F + 0x0299, 0x02a1, 0x02a1, 0x02a8, 0x02b0, 0x02b8, 0x02c4, 0x02cd, + 0x02d5, 0x02de, 0x02f3, 0x02fb, 0x0302, 0x0310, 0x031b, 0x0323, + 0x032d, 0x0332, 0x034a, 0x0351, 0x0359, 0x036f, 0x0378, 0x037d, + 0x0386, 0x0391, 0x0397, 0x039d, 0x03a6, 0x03b8, 0x03c3, 0x03f6, + 0x0400, 0x0404, 0x0411, 0x041a, 0x0437, 0x0454, 0x045c, 0x0464, + 0x0469, 0x046f, 0x046f, 0x0479, 0x047f, 0x0485, 0x0492, 0x0497, + 0x04c0, 0x04c5, 0x04ca, 0x04d1, 0x04d8, 0x04e1, 0x04ec, 0x04f5, + 0x04fa, 0x0500, 0x050e, 0x0518, 0x0521, 0x0528, 0x053c, 0x055f, + // Entry 80 - BF + 0x056e, 0x0575, 0x0583, 0x058f, 0x0594, 0x059b, 0x05a8, 0x05b7, + 0x05c2, 0x05ca, 0x05d1, 0x05d8, 0x05e1, 0x05e9, 0x05f1, 0x05f8, + 0x05fe, 0x060d, 0x0618, 0x0622, 0x062e, 0x063b, 0x0645, 0x064a, + 0x0659, 0x0661, 0x067b, 0x068e, 0x0697, 0x06a2, 0x06ac, 0x06b1, + 0x06bb, 0x06c4, 0x06cb, 0x06d1, 0x06da, 0x06e2, 0x06ea, 0x06f8, + 0x06fd, 0x070a, 0x0712, 0x071c, 0x0723, 0x072b, 0x0731, 0x0736, + 0x073a, 0x0745, 0x074a, 0x0750, 0x0754, 0x076b, 0x077a, 0x0785, + 0x078f, 0x0794, 0x07a9, 0x07b4, 0x07c0, 0x07db, 0x07e3, 0x07e8, + // Entry C0 - FF + 0x07f0, 0x07f6, 0x0806, 0x080f, 0x0819, 0x0820, 0x0828, 0x082e, + 0x083b, 0x0844, 0x084f, 0x0854, 0x085c, 0x0865, 0x086f, 0x0878, + 0x0891, 0x089a, 0x08a7, 0x08b2, 0x08b9, 0x08c1, 0x08c8, 0x08c8, + 0x08de, 0x08e9, 0x08e9, 0x08f1, 0x08fa, 0x08fa, 0x0913, 0x0919, + 0x0942, 0x0947, 0x094f, 0x095e, 0x0965, 0x096f, 0x097e, 0x0986, + 0x098b, 0x0993, 0x09a7, 0x09ad, 0x09b3, 0x09bc, 0x09c4, 0x09ca, + 0x09df, 0x09f3, 0x09fa, 0x0a09, 0x0a15, 0x0a34, 0x0a3e, 0x0a56, + 0x0a73, 0x0a7a, 0x0a81, 0x0a93, 0x0a99, 0x0a99, 0x0a9e, 0x0aa4, + // Entry 100 - 13F + 0x0ab0, 0x0ab6, 0x0abe, 0x0ae0, 0x0ae5, 0x0aeb, 0x0af7, 0x0b05, + 0x0b0d, 0x0b19, 0x0b27, 0x0b32, 0x0b3c, 0x0b4a, 0x0b5c, 0x0b7d, + 0x0b90, 0x0b97, 0x0ba1, 0x0bac, 0x0bbc, 0x0bc8, 0x0be4, 0x0bee, + 0x0c08, 0x0c12, 0x0c17, 0x0c24, 0x0c2f, 0x0c36, 0x0c42, 0x0c4d, + 0x0c5a, 0x0c68, + }, + }, + { // gu + guRegionStr, + guRegionIdx, + }, + { // guz + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // gv + "Rywvaneth UnysEllan Vannin", + []uint16{ // 111 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x001a, + }, + }, + { // ha + "AndoraHaÉ—aÉ—É—iyar Daular LarabawaAfaganistanAntigwa da BarbubaAngilaAlban" + + "iyaArmeniyaAngolaArjantiniyaSamowa Ta AmurkaOstiriyaOstareliyaArubaA" + + "zarbaijanBosniya HarzagobinaBarbadasBangiladasBelgiyomBurkina FasoBu" + + "lgariyaBaharanBurundiBininBarmudaBuruneBolibiyaBirazilBahamasButanBa" + + "swanaBelarusBelizKanadaJamhuriyar DimokuraÉ—iyyar KongoJamhuriyar Afi" + + "rka Ta TsakiyaKongoSuwizalanAibari KwasTsibiran KukuCayileKamaruCain" + + "a, SinKolambiyaKwasta RikaKyubaTsibiran Kap BardeSifurusJamhuriyar C" + + "akJamusJibutiDanmarkDominikaJamhuriyar DominikaAljeriyaEkwadorEstoni" + + "yaMasar, MisiraEritireyaSipenHabashaFinlanFijiTsibiran FalkilanMikur" + + "onesiyaFaransaGabonBirtaniyaGirnadaJiwarjiyaGini Ta FaransaGanaJibar" + + "altarGrinlanGambiyaGiniGwadalufGini Ta IkwaitaGirkaGwatamalaGwamGini" + + " BisauGuyanaHondurasKurowaishiyaHaitiHungariIndunusiyaAyalanIziraʼil" + + "aIndiyaYankin Birtaniya Na Tekun IndiyaIraÆ™iIranAisalanItaliyaJamaik" + + "aJordanJapanKenyaKirgizistanKambodiyaKiribatiKwamorasSan Kiti Da Neb" + + "isKoreya Ta ArewaKoreya Ta KuduKwiyatTsibiran KaimanKazakistanLawasL" + + "abananSan LusiyaLicansitanSiri LankaLaberiyaLesotoLituweniyaLukusamb" + + "urlatibiyaLibiyaMarokoMonakoMaldobaMadagaskarTsibiran MarshalMasedon" + + "iyaMaliBurma, MiyamarMangoliyaTsibiran Mariyana Na ArewaMartinikMori" + + "taniyaManseratiMaltaMoritusMaldibiMalawiMakasikoMalaisiyaMozambikNam" + + "ibiyaKaledoniya SabuwaNijarTsibirin NarfalkNajeriyaNikaraguwaHolanNo" + + "rweNefalNauruNiyuNuzilanOmanPanamaPeruFolinesiya Ta FaransaPapuwa Nu" + + "giniFilipinPakistanPolanSan Piyar Da MikelanPitakarinPorto RikoPalas" + + "É—inuPortugalPalauParagaiKwatarRawuniyanRomaniyaRashaRuwandaƘasar Ma" + + "kkaTsibiran SalamanSaishalSudanSuwedanSingapurSan HelenaSulobeniyaSu" + + "lobakiyaSalewoSan MarinoSinigalSomaliyaSurinameSawo Tome Da Paransip" + + "El SalbadorSham, SiriyaSuwazilanTurkis Da Tsibiran KaikwasCadiTogoTa" + + "ilanTajikistanTakelauTimor Ta GabasTurkumenistanTunisiyaTangaTurkiyy" + + "aTirinidad Da TobagoTubaluTaiwanTanzaniyaYukaranYugandaAmurkaYurugai" + + "UzubekistanBatikanSan Binsan Da GirnadinBenezuwelaTsibirin Birjin Na" + + " BirtaniyaTsibiran Birjin Ta AmurkaBiyetinamBanuwatuWalis Da FutunaS" + + "amowaYamalMayotiAfirka Ta KuduZambiyaZimbabuwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0023, 0x002e, 0x0040, 0x0046, 0x004e, + 0x0056, 0x005c, 0x005c, 0x0067, 0x0077, 0x007f, 0x0089, 0x008e, + 0x008e, 0x0098, 0x00ab, 0x00b3, 0x00bd, 0x00c5, 0x00d1, 0x00da, + 0x00e1, 0x00e8, 0x00ed, 0x00ed, 0x00f4, 0x00fa, 0x0102, 0x0102, + 0x0109, 0x0110, 0x0115, 0x0115, 0x011c, 0x0123, 0x0128, 0x012e, + 0x012e, 0x014e, 0x016a, 0x016f, 0x0178, 0x0183, 0x0190, 0x0196, + 0x019c, 0x01a6, 0x01af, 0x01af, 0x01ba, 0x01bf, 0x01d1, 0x01d1, + 0x01d1, 0x01d8, 0x01e6, 0x01eb, 0x01eb, 0x01f1, 0x01f8, 0x0200, + // Entry 40 - 7F + 0x0213, 0x021b, 0x021b, 0x0222, 0x022a, 0x0237, 0x0237, 0x0240, + 0x0245, 0x024c, 0x024c, 0x0252, 0x0256, 0x0267, 0x0273, 0x0273, + 0x027a, 0x027f, 0x0288, 0x028f, 0x0298, 0x02a7, 0x02a7, 0x02ab, + 0x02b5, 0x02bc, 0x02c3, 0x02c7, 0x02cf, 0x02de, 0x02e3, 0x02e3, + 0x02ec, 0x02f0, 0x02fa, 0x0300, 0x0300, 0x0300, 0x0308, 0x0314, + 0x0319, 0x0320, 0x0320, 0x032a, 0x0330, 0x033a, 0x033a, 0x0340, + 0x0360, 0x0366, 0x036a, 0x0371, 0x0378, 0x0378, 0x037f, 0x0385, + 0x038a, 0x038f, 0x039a, 0x03a3, 0x03ab, 0x03b3, 0x03c4, 0x03d3, + // Entry 80 - BF + 0x03e1, 0x03e7, 0x03f6, 0x0400, 0x0405, 0x040c, 0x0416, 0x0420, + 0x042a, 0x0432, 0x0438, 0x0442, 0x044c, 0x0454, 0x045a, 0x0460, + 0x0466, 0x046d, 0x046d, 0x046d, 0x0477, 0x0487, 0x0491, 0x0495, + 0x04a3, 0x04ac, 0x04ac, 0x04c6, 0x04ce, 0x04d8, 0x04e1, 0x04e6, + 0x04ed, 0x04f4, 0x04fa, 0x0502, 0x050b, 0x0513, 0x051b, 0x052c, + 0x0531, 0x0541, 0x0549, 0x0553, 0x0558, 0x055d, 0x0562, 0x0567, + 0x056b, 0x0572, 0x0576, 0x057c, 0x0580, 0x0595, 0x05a2, 0x05a9, + 0x05b1, 0x05b6, 0x05ca, 0x05d3, 0x05dd, 0x05e7, 0x05ef, 0x05f4, + // Entry C0 - FF + 0x05fb, 0x0601, 0x0601, 0x060a, 0x0612, 0x0612, 0x0617, 0x061e, + 0x062a, 0x063a, 0x0641, 0x0646, 0x064d, 0x0655, 0x065f, 0x0669, + 0x0669, 0x0673, 0x0679, 0x0683, 0x068a, 0x0692, 0x069a, 0x069a, + 0x06af, 0x06ba, 0x06ba, 0x06c6, 0x06cf, 0x06cf, 0x06e9, 0x06ed, + 0x06ed, 0x06f1, 0x06f7, 0x0701, 0x0708, 0x0716, 0x0723, 0x072b, + 0x0730, 0x0738, 0x074b, 0x0751, 0x0757, 0x0760, 0x0767, 0x076e, + 0x076e, 0x0774, 0x077b, 0x0786, 0x078d, 0x07a3, 0x07ad, 0x07c9, + 0x07e2, 0x07eb, 0x07f3, 0x0802, 0x0808, 0x0808, 0x080d, 0x0813, + // Entry 100 - 13F + 0x0821, 0x0828, 0x0831, + }, + }, + { // haw + "NÅ«hÅlaniKanakÄKinaKelemÄniaKenemakaKepaniaPalaniAupuni MÅʻī Hui PÅ« Ê»IaHe" + + "leneÊ»IlelaniÊ»IseraÊ»elaʻĪniaʻĪkÄliaIÄpanaMekikoHÅlaniAotearoaʻĀina Pi" + + "lipinoLÅ«kiaÊ»Amelika Hui PÅ« Ê»Ia", + []uint16{ // 242 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x001f, 0x001f, 0x001f, 0x0027, 0x0027, + // Entry 40 - 7F + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, 0x002e, + 0x0034, 0x0034, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, + 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x0055, 0x0055, + 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0055, 0x0055, 0x0055, 0x0055, 0x005e, 0x006a, 0x006a, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x007b, 0x007b, 0x007b, 0x007b, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, + // Entry 80 - BF + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, 0x0082, + 0x0082, 0x0082, 0x0082, 0x0088, 0x0088, 0x0088, 0x0088, 0x0088, + 0x0088, 0x0088, 0x0088, 0x0088, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x0097, 0x00a7, + 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, + // Entry C0 - FF + 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00a7, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, 0x00ad, + 0x00ad, 0x00c3, + }, + }, + { // he + heRegionStr, + heRegionIdx, + }, + { // hi + hiRegionStr, + hiRegionIdx, + }, + { // hr + hrRegionStr, + hrRegionIdx, + }, + { // hsb + "AscensionAndorraZjednoćene arabske emiratyAfghanistanAntigua a BarbudaAn" + + "guillaAlbanskaArmenskaAngolaAntarktikaArgentinskaAmeriska SamoaAwstr" + + "iskaAwstralskaArubaÃ…landAzerbajdźanBosniska a HercegowinaBarbadosBan" + + "gladeÅ¡BelgiskaBurkina FasoBoÅ‚harskaBahrainBurundiBeninSt. Barthélemy" + + "BermudyBruneiBoliwiskaKaribiska NižozemskaBrazilskaBahamyBhutanBouve" + + "towa kupaBotswanaBěłoruskaBelizeKanadaKokosowe kupyKongo-KinshasaCen" + + "tralnoafriska republikaKongo-BrazzavilleÅ wicarskaCôte d’IvoireCookow" + + "e kupyChilskaKamerunChinaKolumbiskaClippertonowa kupaKosta RikaKubaK" + + "ap VerdeCuraçaoHodowna kupaCypernČěska republikaNÄ›mskaDiego GarciaDź" + + "ibutiDanskaDominikaDominikanska republikaAlgeriskaCeuta a MelillaEkw" + + "adorEstiskaEgyptowskaZapadna SaharaEritrejaÅ paniskaEtiopiskaEuropska" + + " unijaFinskaFidźiFalklandske kupyMikroneziskaFäröske kupyFrancoskaGa" + + "bunZjednoćene kralestwoGrenadaGeorgiskaFrancoska GuyanaGuernseyGhana" + + "GibraltarGrönlandskaGambijaGinejaGuadeloupeEkwatorialna GinejaGrjeks" + + "kaJužna Georgiska a Južne Sandwichowe kupyGuatemalaGuamGineja-Bissau" + + "GuyanaWosebita zarjadniska cona HongkongHeardowa kupa a McDonaldowe " + + "kupyHondurasChorwatskaHaitiMadźarskaKanariske kupyIndoneskaIrskaIsra" + + "elManIndiskaBritiski teritorij w Indiskim oceanjeIrakIranIslandskaIt" + + "alskaJerseyJamaikaJordaniskaJapanskaKenijaKirgizistanKambodźaKiribat" + + "iKomorySt. Kitts a NevisSewjerna KorejaJužna KorejaKuwaitKajmanske k" + + "upyKazachstanLaosLibanonSt. LuciaLiechtensteinSri LankaLiberijaLesot" + + "hoLitawskaLuxemburgskaLetiskaLibyskaMarokkoMonacoMoldawskaMontenegro" + + "St. MartinMadagaskarMarshallowe kupyMakedonskaMaliMyanmarMongolskaWo" + + "sebita zarjadniska cona MacaoSewjerne MarianyMartiniqueMawretanskaMo" + + "ntserratMaltaMauritiusMalediwyMalawiMexikoMalajzijaMosambikNamibijaN" + + "owa KaledoniskaNigerNorfolkowa kupaNigerijaNikaraguaNižozemskaNorweg" + + "skaNepalNauruNiueNowoseelandskaOmanPanamaPeruFrancoska PolyneziskaPa" + + "puwa-Nowa GinejaFilipinyPakistanPólskaSt. Pierre a MiquelonPitcairno" + + "we kupyPuerto RicoPalestinski awtonomny teritorijPortugalskaPalauPar" + + "aguayKatarWonkowna OceaniskaRéunionRumunskaSerbiskaRuskaRuandaSawdi-" + + "ArabskaSalomonySeychelleSudanÅ wedskaSingapurSt. HelenaSÅ‚owjenskaSval" + + "bard a Jan MayenSÅ‚owakskaSierra LeoneSan MarinoSenegalSomalijaSurina" + + "mJužny SudanSão Tomé a PríncipeEl SalvadorSint MaartenSyriskaSwazisk" + + "aTristan da Cunhakupy Turks a CaicosÄŒadFrancoski južny a antarktiski" + + " teritorijTogoThailandskaTadźikistanTokelauTimor-LesteTurkmeniskaTun" + + "eziskaTongaTurkowskaTrinidad a TobagoTuvaluTaiwanTansanijaUkrainaUga" + + "ndaAmeriska OceaniskaZjednoćene staty AmerikiUruguayUzbekistanVatika" + + "nske mÄ›stoSt. Vincent a GrenadinyVenezuelaBritiske knježniske kupyAm" + + "eriske knježniske kupyVietnamVanuatuWallis a FutunaSamoaKosowoJemenM" + + "ayotteJužna Afrika (Republika)SambijaSimbabwenjeznaty regionswÄ›tAfri" + + "kaSewjerna AmerikaJužna AmerikaOceaniskazapadna AfrikaSrjedźna Ameri" + + "kawuchodna Afrikasewjerna Afrikasrjedźna Afrikajužna AfrikaAmerikase" + + "wjerny ameriski kontinentKaribikawuchodna Azijajužna Azijajuhowuchod" + + "na Azijajužna EuropaAwstralazijaMelaneziskaMikroneziska (kupowy regi" + + "on)PolyneziskaAzijacentralna Azijazapadna AzijaEuropawuchodna Europa" + + "sewjerna Europazapadna EuropaÅaćonska Amerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0047, 0x004f, 0x0057, + 0x005f, 0x0065, 0x006f, 0x007a, 0x0088, 0x0091, 0x009b, 0x00a0, + 0x00a6, 0x00b2, 0x00c8, 0x00d0, 0x00da, 0x00e2, 0x00ee, 0x00f8, + 0x00ff, 0x0106, 0x010b, 0x011a, 0x0121, 0x0127, 0x0130, 0x0145, + 0x014e, 0x0154, 0x015a, 0x0168, 0x0170, 0x017b, 0x0181, 0x0187, + 0x0194, 0x01a2, 0x01bc, 0x01cd, 0x01d7, 0x01e7, 0x01f3, 0x01fa, + 0x0201, 0x0206, 0x0210, 0x0222, 0x022c, 0x0230, 0x0239, 0x0241, + 0x024d, 0x0253, 0x0264, 0x026b, 0x0277, 0x027f, 0x0285, 0x028d, + // Entry 40 - 7F + 0x02a3, 0x02ac, 0x02bb, 0x02c2, 0x02c9, 0x02d3, 0x02e1, 0x02e9, + 0x02f2, 0x02fb, 0x0309, 0x030f, 0x0315, 0x0325, 0x0331, 0x033f, + 0x0348, 0x034d, 0x0362, 0x0369, 0x0372, 0x0382, 0x038a, 0x038f, + 0x0398, 0x03a4, 0x03ab, 0x03b1, 0x03bb, 0x03ce, 0x03d6, 0x0400, + 0x0409, 0x040d, 0x041a, 0x0420, 0x0442, 0x0462, 0x046a, 0x0474, + 0x0479, 0x0483, 0x0491, 0x049a, 0x049f, 0x04a5, 0x04a8, 0x04af, + 0x04d4, 0x04d8, 0x04dc, 0x04e5, 0x04ec, 0x04f2, 0x04f9, 0x0503, + 0x050b, 0x0511, 0x051c, 0x0525, 0x052d, 0x0533, 0x0544, 0x0553, + // Entry 80 - BF + 0x0560, 0x0566, 0x0574, 0x057e, 0x0582, 0x0589, 0x0592, 0x059f, + 0x05a8, 0x05b0, 0x05b7, 0x05bf, 0x05cb, 0x05d2, 0x05d9, 0x05e0, + 0x05e6, 0x05ef, 0x05f9, 0x0603, 0x060d, 0x061d, 0x0627, 0x062b, + 0x0632, 0x063b, 0x065a, 0x066a, 0x0674, 0x067f, 0x0689, 0x068e, + 0x0697, 0x069f, 0x06a5, 0x06ab, 0x06b4, 0x06bc, 0x06c4, 0x06d4, + 0x06d9, 0x06e8, 0x06f0, 0x06f9, 0x0704, 0x070d, 0x0712, 0x0717, + 0x071b, 0x0729, 0x072d, 0x0733, 0x0737, 0x074c, 0x075e, 0x0766, + 0x076e, 0x0775, 0x078a, 0x079a, 0x07a5, 0x07c4, 0x07cf, 0x07d4, + // Entry C0 - FF + 0x07dc, 0x07e1, 0x07f3, 0x07fb, 0x0803, 0x080b, 0x0810, 0x0816, + 0x0823, 0x082b, 0x0834, 0x0839, 0x0841, 0x0849, 0x0853, 0x085e, + 0x0872, 0x087c, 0x0888, 0x0892, 0x0899, 0x08a1, 0x08a8, 0x08b4, + 0x08ca, 0x08d5, 0x08e1, 0x08e8, 0x08f0, 0x0900, 0x0913, 0x0917, + 0x093f, 0x0943, 0x094e, 0x095a, 0x0961, 0x096c, 0x0977, 0x0980, + 0x0985, 0x098e, 0x099f, 0x09a5, 0x09ab, 0x09b4, 0x09bb, 0x09c1, + 0x09d3, 0x09ec, 0x09f3, 0x09fd, 0x0a0e, 0x0a25, 0x0a2e, 0x0a47, + 0x0a60, 0x0a67, 0x0a6e, 0x0a7d, 0x0a82, 0x0a88, 0x0a8d, 0x0a94, + // Entry 100 - 13F + 0x0aad, 0x0ab4, 0x0abc, 0x0acb, 0x0ad0, 0x0ad6, 0x0ae6, 0x0af4, + 0x0afd, 0x0b0b, 0x0b1c, 0x0b2b, 0x0b3a, 0x0b4a, 0x0b57, 0x0b5e, + 0x0b79, 0x0b81, 0x0b8f, 0x0b9b, 0x0bad, 0x0bba, 0x0bc6, 0x0bd1, + 0x0bed, 0x0bf8, 0x0bfd, 0x0c0c, 0x0c19, 0x0c1f, 0x0c2e, 0x0c3d, + 0x0c4b, 0x0c5d, + }, + }, + { // hu + huRegionStr, + huRegionIdx, + }, + { // hy + hyRegionStr, + hyRegionIdx, + }, + { // id + idRegionStr, + idRegionIdx, + }, + { // ig + "BininBemudaChainaHatiComorosuLibyiaMaldivesaNigeria", + []uint16{ // 171 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0005, 0x0005, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + // Entry 40 - 7F + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x001d, 0x001d, 0x001d, + // Entry 80 - BF + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x0033, + }, + }, + { // ii + "ꀠꑭêꇩꄓꇩꃔꇩꑱꇩꑴꄗꑴꄊꆺêꀪꊉꇆꌦꂰꇩꃅꄷꅉꀋêšêŒ ", + []uint16{ // 260 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + // Entry 40 - 7F + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0018, 0x0018, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x002d, 0x002d, 0x002d, 0x002d, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + // Entry 80 - BF + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + // Entry C0 - FF + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, 0x003c, + 0x003c, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + // Entry 100 - 13F + 0x0042, 0x0042, 0x0042, 0x0054, + }, + }, + { // is + isRegionStr, + isRegionIdx, + }, + { // it + itRegionStr, + itRegionIdx, + }, + { // ja + jaRegionStr, + jaRegionIdx, + }, + { // jgo + "AÅ‹gÉ”ÌlaAjÉ›ntînMbulukína FásÉ”MbulundíMbÉ›nɛ̂ŋMbÉ”livîMbÉ›lazîlMbÉ”tswánaKanad" + + "âKÉ”ÌÅ‹gÉ”-KinshásaKÉ”ÌÅ‹gÉ”-MbÉ›lazavîlSẅísÉ›KÉ”Ìt NdivwâCíllÉ›KamÉ›lûnShînKÉ”" + + "llÉ”mbîKúbaNjámanNjimbútiAljÉ›lîÆkwandɔ̂ÆjíptÉ›ÆlitÉ›lÉ›ÌyaÆspániyaÆtiyÉ”p" + + "îFÉ›lánciÅŠgabɔ̂ŋŊgánaÅŠgambîŊginɛ̂Ŋginɛ̂ ÆkwatÉ”liyâlÅŠgÉ›lɛ̂kÅŠginɛ̂ Mbi" + + "sáwuIslayɛ̂lÃndÉ›IlâkItalîJapɔ̂nKÉ›ÌnyaKÉ”mÉ”ÌlÉ”shiLibÉ›rîLÉ›sÉ”ÌtÉ”LibîMÉ”lÉ”" + + "Ì‚kMándaÅ‹gasÉ›kâMalîMÉ”litanîMaláwiMÉ›ksîkMÉ”zambîkNamimbîNijɛ̂NinjÉ›liyâ" + + "NÉ”lÉ›vÉ›ÌjÉ›PÉ›lûLÉ›Ìuniyɔ̂nSÉ›lÉ›bîLusîLuwándaPÉ›sÉ›ÌshÉ›lSundânSiyÉ›Ìla Lɛɔ̂n" + + "SÉ›nÉ›gâlSÉ”malîSáwɔŋ TÉ”mÉ›Ì nÉ›Ì PÉ›línsipÉ›SwazilânCâtTÉ”ÌÅ‹gÉ”TunizîTanzanî" + + "UÅ‹gándaVÉ›nÉ›zwÉ›ÌlaMayɔ̂tZambîZimbámbwɛŋgɔŋ yi pÉ›Ì ká kÉ›Ì jʉɔMbíAfÉ›lîk" + + "AmÉ›lîkAzîɄlôp", + []uint16{ // 286 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x000a, 0x000a, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0024, 0x0024, + 0x0024, 0x002d, 0x0038, 0x0038, 0x0038, 0x0038, 0x0041, 0x0041, + 0x004b, 0x004b, 0x004b, 0x004b, 0x0056, 0x0056, 0x0056, 0x005d, + 0x005d, 0x0071, 0x0071, 0x0088, 0x0091, 0x009f, 0x009f, 0x00a6, + 0x00af, 0x00b4, 0x00bf, 0x00bf, 0x00bf, 0x00c4, 0x00c4, 0x00c4, + 0x00c4, 0x00c4, 0x00c4, 0x00cb, 0x00cb, 0x00d4, 0x00d4, 0x00d4, + // Entry 40 - 7F + 0x00d4, 0x00dc, 0x00dc, 0x00e7, 0x00e7, 0x00f0, 0x00f0, 0x00fe, + 0x0108, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, 0x0112, + 0x011b, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x0126, 0x012d, + 0x012d, 0x012d, 0x0135, 0x013e, 0x013e, 0x0156, 0x0161, 0x0161, + 0x0161, 0x0161, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, + 0x0173, 0x0173, 0x0173, 0x0173, 0x0173, 0x017d, 0x017d, 0x0183, + 0x0183, 0x0188, 0x0188, 0x0188, 0x018e, 0x018e, 0x018e, 0x018e, + 0x0196, 0x019e, 0x019e, 0x019e, 0x019e, 0x01ac, 0x01ac, 0x01ac, + // Entry 80 - BF + 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, 0x01ac, + 0x01ac, 0x01b4, 0x01bf, 0x01bf, 0x01bf, 0x01bf, 0x01c4, 0x01cd, + 0x01cd, 0x01cd, 0x01cd, 0x01cd, 0x01dd, 0x01dd, 0x01dd, 0x01e2, + 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01e2, 0x01ec, 0x01ec, 0x01ec, + 0x01ec, 0x01ec, 0x01f3, 0x01fb, 0x01fb, 0x0205, 0x020d, 0x020d, + 0x0214, 0x0214, 0x021f, 0x021f, 0x021f, 0x022d, 0x022d, 0x022d, + 0x022d, 0x022d, 0x022d, 0x022d, 0x0233, 0x0233, 0x0233, 0x0233, + 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, 0x0233, + // Entry C0 - FF + 0x0233, 0x0233, 0x0233, 0x0241, 0x0241, 0x024a, 0x024f, 0x0257, + 0x0257, 0x0257, 0x0264, 0x026b, 0x026b, 0x026b, 0x026b, 0x026b, + 0x026b, 0x026b, 0x027d, 0x027d, 0x0287, 0x028f, 0x028f, 0x028f, + 0x02b3, 0x02b3, 0x02b3, 0x02b3, 0x02bc, 0x02bc, 0x02bc, 0x02c0, + 0x02c0, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02ca, 0x02d1, + 0x02d1, 0x02d1, 0x02d1, 0x02d1, 0x02d1, 0x02d9, 0x02d9, 0x02e2, + 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02e2, 0x02f0, 0x02f0, + 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f0, 0x02f8, + // Entry 100 - 13F + 0x02f8, 0x02fe, 0x0309, 0x0329, 0x032d, 0x0335, 0x0335, 0x0335, + 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x0335, 0x033d, + 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, 0x033d, + 0x033d, 0x033d, 0x0341, 0x0341, 0x0341, 0x0347, + }, + }, + { // jmc + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // ka + kaRegionStr, + kaRegionIdx, + }, + { // kab + "UnduraTigeldunin Yedduklen TaÉ›rabinAfÉ£anistanUntiga d BarbudaUngiyaLalba" + + "niArminyaUngulaArjuntinSamwa TamarikanitUstriyaUstraliArubaAzrabijan" + + "Busna d HersekBarbadusBangladacBelǧikBurkina FasuBulgariBaḥrinBurand" + + "iBininBermudaBruneyBuliviBrizilBahamasBhutanBustwanaBilarusBilizKana" + + "daTigduda Tagdudant n KunguTigduda n Tefriqt TalemmastKunguSwisKuá¹­ D" + + "ivwarTigzirin n KukCiliKamirunLacinKulumbiKusta RikaKubaTigzirin n y" + + "ixef azegzawCiprÄŒÄekLalmanǦibutiDenmarkDuminikTigduda TaduminikitLez" + + "zayerIkwaá¹­urIstunyaMaá¹£rIritiriaSpanyaUtyupiFinlundFijiTigzirin n Fal" + + "klandMikrunizyaFransaGabunTagelda YedduklenGrunadJiyurjiÆ”ana tafrans" + + "istÆ”anaJibraltarGrunlandGambyaÆ”inyaGwadalupiÆ”inya TasebgastLagrisGwa" + + "timalaGwamÆ”inya-BisawGuwanaHundurasKerwasyaHaytiHungriInduniziLirlun" + + "dIzrayilLhendAkal Aglizi deg Ugaraw AhendiLÉ›iraqIranIslandṬelyanJamy" + + "ikaLajurdaniJappuKinyaKirigistanCambudyaKiribatiKumurSan Kits d Nivi" + + "sKurya, UfellaKurya, WaddaKuwaytTigzirin n KamyanKazaxistanLawsLubna" + + "nSan LuÄyaLayctenstanSri LankaLibiryaLizuá¹­uLiá¹­wanyaLuksamburgLatviaL" + + "ibyaLmerrukMunakuMuldabiMadaÉ£ecqerTigzirin n MarcalMasidwanMaliMyanm" + + "arMungulyaTigzirin n Maryan UfellaMartinikMuriá¹­anyaMunsiratMalá¹­Muris" + + "MaldibMalawiMeksikMalizyaMuzembiqNamibyaKalidunya TamaynutNijerTigzi" + + "rin TinawfukinNijiryaNikaragwaTimura-YessakesrenNurvijNipalNuruNiwiZ" + + "iland TamaynutÆumanPanamPiruPulunizi tafransistÆ”inya Tamaynut Tapapu" + + "tFilipinPakistanPulundSan Pyar d MiklunPitkarinPurtu RikuFalisá¹­in d " + + "Æ”ezzaPurtugalPaluParagwayQaá¹­arTimlilitRumaniRrusRuwandaSuÉ›udiya TaÉ›" + + "rabtTigzirin n SulumunSeycelSudanSwidSingafurSant IlinaSluvinyaSluva" + + "kyaSira LyunSan MarinuSinigalá¹¢umalSurinamSaw Tumi d PransipSalvadurS" + + "uryaSwazilundṬurk d Tegzirin n KaykusÄŒadṬuguṬaylandTajikistanṬukluTu" + + "mur AsamarṬurkmanistanTunesṬungaṬurkṬrindad d ṬubaguṬuvaluṬaywanṬanz" + + "anyaUkranUÉ£andaWDMUrugwayUzbaxistanAwanek n VatikanSan Vansu d Gruna" + + "dinVenzwilaTigzirin Tiverjiniyin TigliziyinW.D. Tigzirin n VirginyaV" + + "yeá¹­namVanwatuWallis d FutunaSamwaLyamenMayuá¹­Tafriqt WaddaZambyaZimba" + + "bwi", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0024, 0x002f, 0x003f, 0x0045, 0x004c, + 0x0053, 0x0059, 0x0059, 0x0061, 0x0072, 0x0079, 0x0080, 0x0085, + 0x0085, 0x008e, 0x009c, 0x00a4, 0x00ad, 0x00b4, 0x00c0, 0x00c7, + 0x00cf, 0x00d6, 0x00db, 0x00db, 0x00e2, 0x00e8, 0x00ee, 0x00ee, + 0x00f4, 0x00fb, 0x0101, 0x0101, 0x0109, 0x0110, 0x0115, 0x011b, + 0x011b, 0x0134, 0x014f, 0x0154, 0x0158, 0x0164, 0x0172, 0x0176, + 0x017d, 0x0182, 0x0189, 0x0189, 0x0193, 0x0197, 0x01af, 0x01af, + 0x01af, 0x01b3, 0x01b9, 0x01bf, 0x01bf, 0x01c6, 0x01cd, 0x01d4, + // Entry 40 - 7F + 0x01e7, 0x01ef, 0x01ef, 0x01f8, 0x01ff, 0x0205, 0x0205, 0x020d, + 0x0213, 0x0219, 0x0219, 0x0220, 0x0224, 0x0237, 0x0241, 0x0241, + 0x0247, 0x024c, 0x025d, 0x0263, 0x026a, 0x027a, 0x027a, 0x027f, + 0x0288, 0x0290, 0x0296, 0x029c, 0x02a5, 0x02b5, 0x02bb, 0x02bb, + 0x02c4, 0x02c8, 0x02d4, 0x02da, 0x02da, 0x02da, 0x02e2, 0x02ea, + 0x02ef, 0x02f5, 0x02f5, 0x02fd, 0x0304, 0x030b, 0x030b, 0x0310, + 0x032d, 0x0334, 0x0338, 0x033e, 0x0346, 0x0346, 0x034d, 0x0356, + 0x035b, 0x0360, 0x036a, 0x0372, 0x037a, 0x037f, 0x038f, 0x039c, + // Entry 80 - BF + 0x03a8, 0x03ae, 0x03bf, 0x03c9, 0x03cd, 0x03d3, 0x03dd, 0x03e8, + 0x03f1, 0x03f8, 0x0400, 0x040a, 0x0414, 0x041a, 0x041f, 0x0426, + 0x042c, 0x0433, 0x0433, 0x0433, 0x043e, 0x044f, 0x0457, 0x045b, + 0x0462, 0x046a, 0x046a, 0x0482, 0x048a, 0x0495, 0x049d, 0x04a3, + 0x04a8, 0x04ae, 0x04b4, 0x04ba, 0x04c1, 0x04c9, 0x04d0, 0x04e2, + 0x04e7, 0x04fa, 0x0501, 0x050a, 0x051c, 0x0522, 0x0527, 0x052b, + 0x052f, 0x053e, 0x0544, 0x0549, 0x054d, 0x0560, 0x0577, 0x057e, + 0x0586, 0x058c, 0x059d, 0x05a5, 0x05af, 0x05c2, 0x05ca, 0x05ce, + // Entry C0 - FF + 0x05d6, 0x05dd, 0x05dd, 0x05e5, 0x05eb, 0x05eb, 0x05ef, 0x05f6, + 0x0608, 0x061a, 0x0620, 0x0625, 0x0629, 0x0631, 0x063b, 0x0643, + 0x0643, 0x064b, 0x0654, 0x065e, 0x0665, 0x066c, 0x0673, 0x0673, + 0x0685, 0x068d, 0x068d, 0x0692, 0x069b, 0x069b, 0x06b5, 0x06b9, + 0x06b9, 0x06bf, 0x06c8, 0x06d2, 0x06d9, 0x06e5, 0x06f3, 0x06f8, + 0x06ff, 0x0705, 0x0719, 0x0721, 0x0729, 0x0733, 0x0738, 0x073f, + 0x073f, 0x0742, 0x0749, 0x0753, 0x0763, 0x0777, 0x077f, 0x079f, + 0x07b7, 0x07c0, 0x07c7, 0x07d6, 0x07db, 0x07db, 0x07e1, 0x07e8, + // Entry 100 - 13F + 0x07f5, 0x07fb, 0x0803, + }, + }, + { // kam + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "MbulundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarus" + + "iBelizeKanandaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya K" + + "atiKongoUswisiKodivaaIsiwa sya CookChileKameluniKyainaKolombiaKostar" + + "ikaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominika" + + "Jamhuri ya DominikaAljeriaEkwadoEstoniaMisiliEritreaHispaniaUhabeshi" + + "UfiniFijiVisiwa vya FalklandMikronesiaUvalanzaGaboniUingerezaGrenada" + + "JojiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGin" + + "ekwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungar" + + "iaIndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari Hindi" + + "IrakiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambo" + + "diaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwai" + + "tiIsiwa sya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirila" + + "nkaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBuki" + + "niVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya" + + " KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksik" + + "oMalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNik" + + "aragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia" + + " ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitka" + + "irniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUreno" + + "PalauParagwaiKatariRiyunioniRomaniaUrusiLwandaSaudiIsiwa sya Solomon" + + "ShelisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera Leoni" + + "SamarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswa" + + "ziVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori" + + " ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuv" + + "aluTaiwaniTanzaniaUkrainiUkandaMarekaniUrugwaiUzibekistaniVatikaniSa" + + "ntavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiw" + + "a vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniM" + + "ayotteAfrika KusiniNzambiaNzimbambwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d8, 0x00de, 0x00de, 0x00e5, 0x00eb, 0x00f2, 0x00f2, + 0x00f9, 0x00ff, 0x0105, 0x0105, 0x010d, 0x0115, 0x011b, 0x0122, + 0x0122, 0x0142, 0x015b, 0x0160, 0x0166, 0x016d, 0x017b, 0x0180, + 0x0188, 0x018e, 0x0196, 0x0196, 0x019f, 0x01a3, 0x01ab, 0x01ab, + 0x01ab, 0x01b2, 0x01c2, 0x01cb, 0x01cb, 0x01d1, 0x01d8, 0x01e0, + // Entry 40 - 7F + 0x01f3, 0x01fa, 0x01fa, 0x0200, 0x0207, 0x020d, 0x020d, 0x0214, + 0x021c, 0x0224, 0x0224, 0x0229, 0x022d, 0x0240, 0x024a, 0x024a, + 0x0252, 0x0258, 0x0261, 0x0268, 0x026d, 0x0280, 0x0280, 0x0285, + 0x028d, 0x0296, 0x029c, 0x02a0, 0x02a9, 0x02b2, 0x02b9, 0x02b9, + 0x02c2, 0x02c6, 0x02cf, 0x02d5, 0x02d5, 0x02d5, 0x02de, 0x02e5, + 0x02ea, 0x02f2, 0x02f2, 0x02fb, 0x0303, 0x030a, 0x030a, 0x030f, + 0x0334, 0x0339, 0x033f, 0x0347, 0x034d, 0x034d, 0x0354, 0x035b, + 0x0361, 0x0366, 0x0373, 0x037b, 0x0383, 0x0389, 0x039c, 0x03ab, + // Entry 80 - BF + 0x03b7, 0x03be, 0x03ce, 0x03d9, 0x03de, 0x03e6, 0x03f0, 0x03fa, + 0x0403, 0x040a, 0x0410, 0x0418, 0x0421, 0x0428, 0x042d, 0x0433, + 0x0439, 0x0440, 0x0440, 0x0440, 0x0446, 0x0458, 0x0461, 0x0465, + 0x046a, 0x0472, 0x0472, 0x0492, 0x049b, 0x04a4, 0x04af, 0x04b4, + 0x04ba, 0x04c0, 0x04c6, 0x04cd, 0x04d4, 0x04dc, 0x04e3, 0x04ef, + 0x04f5, 0x0506, 0x050d, 0x0516, 0x051e, 0x0523, 0x0529, 0x052e, + 0x0532, 0x053c, 0x0541, 0x0547, 0x054b, 0x0560, 0x0565, 0x056d, + 0x0576, 0x057d, 0x0593, 0x059c, 0x05a5, 0x05d7, 0x05dc, 0x05e1, + // Entry C0 - FF + 0x05e9, 0x05ef, 0x05ef, 0x05f8, 0x05ff, 0x05ff, 0x0604, 0x060a, + 0x060f, 0x0620, 0x062a, 0x0630, 0x0636, 0x063e, 0x0649, 0x0651, + 0x0651, 0x0659, 0x0664, 0x066c, 0x0674, 0x067b, 0x0683, 0x0683, + 0x0697, 0x069f, 0x069f, 0x06a4, 0x06aa, 0x06aa, 0x06c3, 0x06c8, + 0x06c8, 0x06cc, 0x06d4, 0x06df, 0x06e6, 0x06f9, 0x0708, 0x070f, + 0x0714, 0x071b, 0x072d, 0x0733, 0x073a, 0x0742, 0x0749, 0x074f, + 0x074f, 0x0757, 0x075e, 0x076a, 0x0772, 0x078b, 0x0794, 0x07b3, + 0x07d1, 0x07da, 0x07e1, 0x07f0, 0x07f5, 0x07f5, 0x07fb, 0x0802, + // Entry 100 - 13F + 0x080f, 0x0816, 0x0820, + }, + }, + { // kde + "AndolaDimiliki dya Vakulungwa va ChalabuAfuganistaniAntigua na BalbudaAn" + + "gwilaAlbaniaAlmeniaAngolaAdyentinaSamoa ya MalekaniAustliaAustlaliaA" + + "lubaAzabadyaniBosnia na HezegovinaBabadosiBangladeshiUbelgidiBuchina" + + "fasoBulgaliaBahaleniBulundiBeniniBelmudaBluneiBoliviaBlaziliBahamaBu" + + "taniBotswanaBelalusiBelizeKanadaJamuhuli ya Chidemoklasia ya kuKongo" + + "Jamuhuli ya Afilika ya Paching’atiKongoUswisiKodivaaChisiwa cha Cook" + + "ChileKameluniChinaKolombiaKostalikaKubaKepuvedeKuplosiJamuhuli ya Ch" + + "echiUdyerumaniDyibutiDenmakiDominikaJamuhuli ya DominikaAljeliaEkwad" + + "oEstoniaMisliElitileaHispaniaUhabeshiUfiniFijiChisiwa cha FalklandMi" + + "kilonesiaUfalansaGaboniNngalesaGlenadaDyodyaGwiyana ya UfalansaGhana" + + "DiblaltaGlinlandiGambiaGineGwadelupeGinekwetaUgilichiGwatemalaGwamGi" + + "nebisauGuyanaHondulasiKolasiaHaitiHungaliaIndonesiaAyalandiIslaeliIn" + + "diaLieneo lyaki Nngalesa Nbahali ya HindiIlakiUadyemiAislandiItaliaD" + + "yamaikaYordaniDyapaniKenyaKiligizistaniKambodiaKilibatiKomoloSantaki" + + "tzi na NevisKolea KasikaziniKolea KusiniKuwaitiChisiwa cha KemenKaza" + + "chistaniLaosiLebanoniSantalusiaLishenteniSililankaLibeliaLesotoLitwa" + + "niaLasembagiLativiaLibyaMolokoMonakoMoldovaBukiniChisiwa cha Malusha" + + "lMasedoniaMaliMyamaMongoliaChisiwa cha Marian cha KasikaziniMalitini" + + "kiMolitaniaMonselatiMaltaMolisiModivuMalawiMeksikoMalesiaMsumbijiNam" + + "ibiaNyukaledoniaNidyeliChisiwa cha NolufokNidyeliaNikalagwaUholanziN" + + "orweNepaliNauluNiueNyuzilandiOmaniPanamaPeluPolinesia ya UfalansaPap" + + "uaFilipinoPakistaniPolandiSantapieli na MikeloniPitikeluniPwetolikoN" + + "chingu wa Magalibi wa Mpanda wa kuGaza wa kuPalesUlenoPalauPalagwaiK" + + "ataliLiyunioniLomaniaUlusiLwandaSaudiaChisiwa cha SolomonShelisheliS" + + "udaniUswidiSingapooSantahelenaSloveniaSlovakiaSiela LeoniSamalinoSen" + + "egaliSomaliaSulinamuSaotome na PrinsipeElsavadoSiliaUswaziChisiwa ch" + + "a Tuluchi na KaikoChadiTogoTailandiTadikistaniTokelauTimoli ya Masha" + + "likiTuluchimenistaniTunisiaTongaUtuluchiTilinidad na TobagoTuvaluTai" + + "waniTanzaniaUklainiUgandaMalekaniUlugwaiUzibechistaniVatikaniSantavi" + + "senti na GlenadiniVenezuelaChisiwa Chivihi cha WingalesaChisiwa Chiv" + + "ihi cha MalekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMaoleAfili" + + "ka KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0028, 0x0034, 0x0046, 0x004d, 0x0054, + 0x005b, 0x0061, 0x0061, 0x006a, 0x007b, 0x0082, 0x008b, 0x0090, + 0x0090, 0x009a, 0x00ae, 0x00b6, 0x00c1, 0x00c9, 0x00d4, 0x00dc, + 0x00e4, 0x00eb, 0x00f1, 0x00f1, 0x00f8, 0x00fe, 0x0105, 0x0105, + 0x010c, 0x0112, 0x0118, 0x0118, 0x0120, 0x0128, 0x012e, 0x0134, + 0x0134, 0x0158, 0x017c, 0x0181, 0x0187, 0x018e, 0x019e, 0x01a3, + 0x01ab, 0x01b0, 0x01b8, 0x01b8, 0x01c1, 0x01c5, 0x01cd, 0x01cd, + 0x01cd, 0x01d4, 0x01e6, 0x01f0, 0x01f0, 0x01f7, 0x01fe, 0x0206, + // Entry 40 - 7F + 0x021a, 0x0221, 0x0221, 0x0227, 0x022e, 0x0233, 0x0233, 0x023b, + 0x0243, 0x024b, 0x024b, 0x0250, 0x0254, 0x0268, 0x0273, 0x0273, + 0x027b, 0x0281, 0x0289, 0x0290, 0x0296, 0x02a9, 0x02a9, 0x02ae, + 0x02b6, 0x02bf, 0x02c5, 0x02c9, 0x02d2, 0x02db, 0x02e3, 0x02e3, + 0x02ec, 0x02f0, 0x02f9, 0x02ff, 0x02ff, 0x02ff, 0x0308, 0x030f, + 0x0314, 0x031c, 0x031c, 0x0325, 0x032d, 0x0334, 0x0334, 0x0339, + 0x035f, 0x0364, 0x036b, 0x0373, 0x0379, 0x0379, 0x0381, 0x0388, + 0x038f, 0x0394, 0x03a1, 0x03a9, 0x03b1, 0x03b7, 0x03ca, 0x03da, + // Entry 80 - BF + 0x03e6, 0x03ed, 0x03fe, 0x040a, 0x040f, 0x0417, 0x0421, 0x042b, + 0x0434, 0x043b, 0x0441, 0x0449, 0x0452, 0x0459, 0x045e, 0x0464, + 0x046a, 0x0471, 0x0471, 0x0471, 0x0477, 0x048b, 0x0494, 0x0498, + 0x049d, 0x04a5, 0x04a5, 0x04c6, 0x04d0, 0x04d9, 0x04e2, 0x04e7, + 0x04ed, 0x04f3, 0x04f9, 0x0500, 0x0507, 0x050f, 0x0516, 0x0522, + 0x0529, 0x053c, 0x0544, 0x054d, 0x0555, 0x055a, 0x0560, 0x0565, + 0x0569, 0x0573, 0x0578, 0x057e, 0x0582, 0x0597, 0x059c, 0x05a4, + 0x05ad, 0x05b4, 0x05ca, 0x05d4, 0x05dd, 0x060f, 0x0614, 0x0619, + // Entry C0 - FF + 0x0621, 0x0627, 0x0627, 0x0630, 0x0637, 0x0637, 0x063c, 0x0642, + 0x0648, 0x065b, 0x0665, 0x066b, 0x0671, 0x0679, 0x0684, 0x068c, + 0x068c, 0x0694, 0x069f, 0x06a7, 0x06af, 0x06b6, 0x06be, 0x06be, + 0x06d1, 0x06d9, 0x06d9, 0x06de, 0x06e4, 0x06e4, 0x0700, 0x0705, + 0x0705, 0x0709, 0x0711, 0x071c, 0x0723, 0x0736, 0x0746, 0x074d, + 0x0752, 0x075a, 0x076d, 0x0773, 0x077a, 0x0782, 0x0789, 0x078f, + 0x078f, 0x0797, 0x079e, 0x07ab, 0x07b3, 0x07cc, 0x07d5, 0x07f2, + 0x080e, 0x0817, 0x081e, 0x082d, 0x0832, 0x0832, 0x0838, 0x083d, + // Entry 100 - 13F + 0x084b, 0x0851, 0x0859, + }, + }, + { // kea + "Ilha di AsensãuAndoraEmiradus Arabi UniduAfeganistãuAntigua i BarbudaAng" + + "ilaAlbaniaArmeniaAngolaAntartikaArjentinaSamoa MerkanuAustriaAustral" + + "iaArubaIlhas Ã…landAzerbaijãuBosnia-ErzegovinaBarbadusBangladexiBélji" + + "kaBurkina FasuBulgariaBarainBurundiBeninSãu BartolomeuBermudasBrunei" + + "BolíviaKaraibas OlandezasBrazilBaamasButãuIlha BuveBotsuanaBelarusBe" + + "liziKanadáIlhas KokusKongu - KinxasaRepublika Sentru-AfrikanuKongu -" + + " BrazaviliSuisaKosta di MarfinIlhas KukXiliKamarõisXinaKolômbiaIlha " + + "KlipertonKosta RikaKubaKabu VerdiKurasauIlha di NatalXipriRepublika " + + "TxekaAlimanhaDiegu GarsiaDjibutiDinamarkaDominikaRepúblika Dominikan" + + "aArjeliaSeuta i MelilaEkuadorStoniaEjituSara OsidentalIritreiaSpanha" + + "ItiopiaUniãu EuropeiaFinlandiaFidjiIlhas MalvinasMikroneziaIlhas Far" + + "oeFransaGabãuReinu UniduGranadaJiorjiaGiana FransezaGernziGanaJibral" + + "tarGronelándiaGambiaGineGuadalupiGine EkuatorialGresiaJeórjia di Sul" + + " i Ilhas di Sanduixi di SulGuatimalaGuamGine-BisauGianaRejiãu Admini" + + "strativu Special di Hong KongIlha Heard i Ilhas McDonaldOndurasKroas" + + "iaAitíUngriaKanáriasIndoneziaIrlandaIsraelIlha di ManIndiaIlhas Brit" + + "anika di IndikuIrakiIronIslandiaItaliaJersiJamaikaJordaniaJapãuKenia" + + "KirgistonKambodjaKiribatiKamorisSãu Kristovãu i NevisKoreia di Norti" + + "Koreia di SulKueitiIlhas KaimãuKazakistãuLausLibanuSanta LúsiaLixens" + + "tainSri LankaLiberiaLezotuLituaniaLuxemburguLetoniaLibiaMarokusMonak" + + "uMoldaviaMontenegruSãu Martinhu di FransaMadagaskarIlhas MarxalMasid" + + "oniaMaliMianmarMongoliaRejiãu Administrativu Special di MakauIlhas M" + + "arianas di NortiMartinikaMauritaniaMonseratMaltaIlhas MaurisiaMaldiv" + + "asMalauiMéxikuMalaziaMusambikiNamibiaNova KalidoniaNijerIlhas Norfol" + + "kNijeriaNikaráguaOlandaNoruegaNepalNauruNiueNova ZilandiaOmanPanamáP" + + "eruPolinezia FransezaPapua-Nova GineFilipinasPakistãuPuloniaSan Pier" + + "e i MikelonPirkairnPortu RikuPalistinaPurtugalPalauParaguaiKatarIlha" + + "s di OseaniaRunionRomeniaServiaRúsiaRuandaArabia SauditaIlhas Salumo" + + "nSeixelisSudãuSuesiaSingapuraSanta IlenaSloveniaSvalbard i Jan Maien" + + "SlovakiaSera LioaSan MarinuSenegalSumaliaSurinamiSudãu di SulSãu Tum" + + "e i PrinsipiEl SalvadorSãu Martinhu di OlandaSiriaSuazilándiaTristan" + + " da KunhaIlhas Turkas i KaikusTxadiTerras Franses di SulToguTailandi" + + "aTadjikistãuTokelauTimor LestiTurkumenistãuTuniziaTongaTurkiaTrinida" + + "d i TobaguTuvaluTaiuanTanzaniaUkraniaUgandaIlhas Minoris Distantis d" + + "e Stadus UnidusStadus Unidos di MerkaUruguaiUzbekistãuVatikanuSãu Bi" + + "senti i GranadinasVinizuelaIlhas Virjens BritanikasIlhas Virjens Mer" + + "kanasVietnamVanuatuUalis i FutunaSamoaKozovuIemenMaioteAfrika di Sul" + + "ZambiaZimbabuiRejiãu DiskonxeduMunduÃfrikaMerka di NortiMerka di Sul" + + "OseaniaÃfrika OsidentalMerka SentralÃfrika OrientalNorti di ÃfrikaÃf" + + "rika SentralSul di ÃfrikaMerkasNorti di MerkaKaraibasÃzia OrientalSu" + + "l di ÃziaSudesti AziátikuEuropa di SulAustraláziaMelanéziaRejiãu di " + + "MikronéziaPolinéziaÃziaÃzia SentralÃzia OsidentalEuropaEuropa Orient" + + "alEuropa di NortiEuropa OsidentalMerka Latinu", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0016, 0x002a, 0x0036, 0x0047, 0x004d, 0x0054, + 0x005b, 0x0061, 0x006a, 0x0073, 0x0080, 0x0087, 0x0090, 0x0095, + 0x00a1, 0x00ac, 0x00bd, 0x00c5, 0x00cf, 0x00d7, 0x00e3, 0x00eb, + 0x00f1, 0x00f8, 0x00fd, 0x010c, 0x0114, 0x011a, 0x0122, 0x0134, + 0x013a, 0x0140, 0x0146, 0x014f, 0x0157, 0x015e, 0x0164, 0x016b, + 0x0176, 0x0185, 0x019e, 0x01af, 0x01b4, 0x01c3, 0x01cc, 0x01d0, + 0x01d9, 0x01dd, 0x01e6, 0x01f4, 0x01fe, 0x0202, 0x020c, 0x0213, + 0x0220, 0x0225, 0x0234, 0x023c, 0x0248, 0x024f, 0x0258, 0x0260, + // Entry 40 - 7F + 0x0275, 0x027c, 0x028a, 0x0291, 0x0297, 0x029c, 0x02aa, 0x02b2, + 0x02b8, 0x02bf, 0x02ce, 0x02d7, 0x02dc, 0x02ea, 0x02f4, 0x02ff, + 0x0305, 0x030b, 0x0316, 0x031d, 0x0324, 0x0332, 0x0338, 0x033c, + 0x0345, 0x0351, 0x0357, 0x035b, 0x0364, 0x0373, 0x0379, 0x03a3, + 0x03ac, 0x03b0, 0x03ba, 0x03bf, 0x03ea, 0x0405, 0x040c, 0x0413, + 0x0418, 0x041e, 0x0427, 0x0430, 0x0437, 0x043d, 0x0448, 0x044d, + 0x0466, 0x046b, 0x046f, 0x0477, 0x047d, 0x0482, 0x0489, 0x0491, + 0x0497, 0x049c, 0x04a5, 0x04ad, 0x04b5, 0x04bc, 0x04d3, 0x04e2, + // Entry 80 - BF + 0x04ef, 0x04f5, 0x0502, 0x050d, 0x0511, 0x0517, 0x0523, 0x052d, + 0x0536, 0x053d, 0x0543, 0x054b, 0x0555, 0x055c, 0x0561, 0x0568, + 0x056e, 0x0576, 0x0580, 0x0597, 0x05a1, 0x05ad, 0x05b6, 0x05ba, + 0x05c1, 0x05c9, 0x05f0, 0x0607, 0x0610, 0x061a, 0x0622, 0x0627, + 0x0635, 0x063d, 0x0643, 0x064a, 0x0651, 0x065a, 0x0661, 0x066f, + 0x0674, 0x0681, 0x0688, 0x0692, 0x0698, 0x069f, 0x06a4, 0x06a9, + 0x06ad, 0x06ba, 0x06be, 0x06c5, 0x06c9, 0x06db, 0x06ea, 0x06f3, + 0x06fc, 0x0703, 0x0716, 0x071e, 0x0728, 0x0731, 0x0739, 0x073e, + // Entry C0 - FF + 0x0746, 0x074b, 0x075b, 0x0761, 0x0768, 0x076e, 0x0774, 0x077a, + 0x0788, 0x0795, 0x079d, 0x07a3, 0x07a9, 0x07b2, 0x07bd, 0x07c5, + 0x07d9, 0x07e1, 0x07ea, 0x07f4, 0x07fb, 0x0802, 0x080a, 0x0817, + 0x082b, 0x0836, 0x084d, 0x0852, 0x085e, 0x086e, 0x0883, 0x0888, + 0x089d, 0x08a1, 0x08aa, 0x08b6, 0x08bd, 0x08c8, 0x08d6, 0x08dd, + 0x08e2, 0x08e8, 0x08f9, 0x08ff, 0x0905, 0x090d, 0x0914, 0x091a, + 0x0942, 0x0958, 0x095f, 0x096a, 0x0972, 0x098b, 0x0994, 0x09ac, + 0x09c2, 0x09c9, 0x09d0, 0x09de, 0x09e3, 0x09e9, 0x09ee, 0x09f4, + // Entry 100 - 13F + 0x0a01, 0x0a07, 0x0a0f, 0x0a21, 0x0a26, 0x0a2d, 0x0a3b, 0x0a47, + 0x0a4e, 0x0a5f, 0x0a6c, 0x0a7c, 0x0a8c, 0x0a9b, 0x0aa9, 0x0aaf, + 0x0abd, 0x0ac5, 0x0ad3, 0x0adf, 0x0af0, 0x0afd, 0x0b09, 0x0b13, + 0x0b29, 0x0b33, 0x0b38, 0x0b45, 0x0b54, 0x0b5a, 0x0b69, 0x0b78, + 0x0b88, 0x0b94, + }, + }, + { // khq + "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + + "lbaaniArmeeniAngoolaArgentineAmeriki SamoaOtriÅ¡iOstraaliAruubaAzerba" + + "ayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡iBelgiikiBurkina fasoBu" + + "lgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooliviBreezilBahamasBuutaÅ‹B" + + "otswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookaratiki labooCentraafriki" + + " koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameruunÅ iinKolombiKosta rika" + + "KuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuutiDanemarkDoominikiDoom" + + "iniki labooAlžeeriEkwateerEstooniMisraEritreeEspaaɲeEcioopiFinlanduF" + + "ijiKalkan gungeyMikroneziFaransiGaabonAlbaasalaama MargantaGrenaadaG" + + "orgiFaransi GuyaanGaanaGibraltarGrinlandGambiGineGwadeluupGinee Ekwa" + + "torialGreeceGwatemaalaGuamGine-BissoGuyaaneHondurasKrwaasiHaitiHunga" + + "ariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i Indu teekoo laamaIraakIr" + + "aanAycelandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKyrgyzstanKamboogiKiribaa" + + "tiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKooree, HawsaKuweetKayman gu" + + "ngeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechtensteinSrilankaLiberiaLee" + + "sotoLituaaniLuxembourgLetooniLiibiMaarokMonakoMoldoviMadagascarMarÅ¡a" + + "l gungeyMaacedooniMaaliMaynamarMongooliMariana Gurma GungeyMartiniik" + + "iMooritaaniMontserratMaltaMooris gungeyMaldiivuMalaawiMexikiMaleeziM" + + "ozambikNaamibiKaaledooni TaagaaNižerNorfolk GungooNaajiriiaNikaragwa" + + "HollanduNorveejNeepalNauruNiueZeelandu TaagaOmaanPanamaPeeruFaransi " + + "PolineeziPapua Ginee TaagaFilipinePaakistanPoloɲeSeÅ‹ Piyer nda Mikel" + + "onPitikarinPorto RikoPalestine Dangay nda GaazaPortugaalPaluParaguwe" + + "yKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiyaSolomon GungeySeeÅ¡elSuu" + + "daÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSeera LeonSan MarinoSeneg" + + "alSomaaliSurinaamSao Tome nda PrinsipeSalvador labooSuuriaSwazilandT" + + "urk nda Kayikos GungeyCaaduTogoTaayilandTaažikistanTokelauTimoor haw" + + "saTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda TobaagoTuvaluTaayiwanTanz" + + "aaniUkreenUgandaAmeriki Laabu MarganteyUruguweyUzbeekistanVaatikan L" + + "aamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡i Virgin gungeyAmeerik " + + "Virgin GungeyVietnaamVanautuWallis nda FutunaSamoaYamanMayootiHawsa " + + "Afriki LabooZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, + 0x0055, 0x005c, 0x005c, 0x0065, 0x0072, 0x0079, 0x0081, 0x0087, + 0x0087, 0x0094, 0x00a9, 0x00b2, 0x00bd, 0x00c5, 0x00d1, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f5, 0x00fc, 0x0103, 0x0103, + 0x010a, 0x0111, 0x0118, 0x0118, 0x0121, 0x012a, 0x0131, 0x0138, + 0x0138, 0x0152, 0x0164, 0x016a, 0x016f, 0x0175, 0x0180, 0x0186, + 0x018e, 0x0193, 0x019a, 0x019a, 0x01a4, 0x01a9, 0x01b7, 0x01b7, + 0x01b7, 0x01be, 0x01c6, 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e6, + // Entry 40 - 7F + 0x01f5, 0x01fd, 0x01fd, 0x0205, 0x020c, 0x0211, 0x0211, 0x0218, + 0x0220, 0x0227, 0x0227, 0x022f, 0x0233, 0x0240, 0x0249, 0x0249, + 0x0250, 0x0256, 0x026b, 0x0273, 0x0278, 0x0286, 0x0286, 0x028b, + 0x0294, 0x029c, 0x02a1, 0x02a5, 0x02ae, 0x02be, 0x02c4, 0x02c4, + 0x02ce, 0x02d2, 0x02dc, 0x02e3, 0x02e3, 0x02e3, 0x02eb, 0x02f2, + 0x02f7, 0x02ff, 0x02ff, 0x0308, 0x030f, 0x0316, 0x0316, 0x0320, + 0x033a, 0x033f, 0x0344, 0x034c, 0x0352, 0x0352, 0x035a, 0x035f, + 0x0366, 0x036d, 0x0377, 0x037f, 0x0388, 0x038e, 0x03a2, 0x03af, + // Entry 80 - BF + 0x03bc, 0x03c2, 0x03cf, 0x03d9, 0x03df, 0x03e6, 0x03f1, 0x03fe, + 0x0406, 0x040d, 0x0414, 0x041c, 0x0426, 0x042d, 0x0432, 0x0438, + 0x043e, 0x0445, 0x0445, 0x0445, 0x044f, 0x045d, 0x0467, 0x046c, + 0x0474, 0x047c, 0x047c, 0x0490, 0x049a, 0x04a4, 0x04ae, 0x04b3, + 0x04c0, 0x04c8, 0x04cf, 0x04d5, 0x04dc, 0x04e4, 0x04eb, 0x04fc, + 0x0502, 0x0510, 0x0519, 0x0522, 0x052a, 0x0531, 0x0537, 0x053c, + 0x0540, 0x054e, 0x0553, 0x0559, 0x055e, 0x056f, 0x0580, 0x0588, + 0x0591, 0x0598, 0x05ae, 0x05b7, 0x05c1, 0x05db, 0x05e4, 0x05e8, + // Entry C0 - FF + 0x05f1, 0x05f7, 0x05f7, 0x05ff, 0x0606, 0x0606, 0x0612, 0x0618, + 0x061f, 0x062d, 0x0634, 0x063b, 0x0641, 0x0649, 0x0654, 0x065c, + 0x065c, 0x0664, 0x066e, 0x0678, 0x067f, 0x0686, 0x068e, 0x068e, + 0x06a3, 0x06b1, 0x06b1, 0x06b7, 0x06c0, 0x06c0, 0x06d7, 0x06dc, + 0x06dc, 0x06e0, 0x06e9, 0x06f5, 0x06fc, 0x0708, 0x0715, 0x071b, + 0x0720, 0x0725, 0x0739, 0x073f, 0x0747, 0x074f, 0x0755, 0x075b, + 0x075b, 0x0772, 0x077a, 0x0785, 0x0793, 0x07ac, 0x07b8, 0x07ce, + 0x07e3, 0x07eb, 0x07f2, 0x0803, 0x0808, 0x0808, 0x080d, 0x0814, + // Entry 100 - 13F + 0x0826, 0x082b, 0x0833, + }, + }, + { // ki + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "MburundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarus" + + "iBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Ka" + + "tiKongoUswisiKodivaaVisiwa vya CookChileKameruniCainaKolombiaKostari" + + "kaKiumbaKepuvedeKuprosiJamhuri ya ChekiNjeremaniJibutiDenmakiDominik" + + "aJamhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshi" + + "UfiniFijiVisiwa vya FalklandMikronesiaUbaranjaGaboniNgerethaGrenadaJ" + + "ojiaGwiyana ya UfaransaNganaJibraltaGrinlandiGambiaGineGwadelupeGine" + + "kwetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungari" + + "aIndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiI" + + "rakiUajemiAislandiItaliaJamaikaNjorondaniNjabaniKenyaKirigizistaniKa" + + "mbodiaKiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKu" + + "waitiVisiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSi" + + "rilankaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldova" + + "BukiniVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana" + + " vya KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMe" + + "ksikoMalesiaMsumbijiNamimbiaNyukaledoniaNijeriKisiwa cha NorfokNainj" + + "eriaNikaragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPo" + + "linesia ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri na Mikelo" + + "niPitkairniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa Palesti" + + "naUrenoPalauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya" + + " SolomonShelisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSie" + + "ra LeoniSamarinoSenegaliSomariaSurinamuSao Tome na PrincipeElsavadoS" + + "iriaUswaziVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokel" + + "auTimori ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na T" + + "obagoTuvaluTaiwaniTanzaniaUkrainiUgandaAmerikaUrugwaiUzibekistaniVat" + + "ikaniSantavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya Uingere" + + "zaVisiwa vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoa" + + "YemeniMayotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d8, 0x00de, 0x00de, 0x00e5, 0x00eb, 0x00f2, 0x00f2, + 0x00f9, 0x00ff, 0x0105, 0x0105, 0x010d, 0x0115, 0x011b, 0x0121, + 0x0121, 0x0141, 0x015a, 0x015f, 0x0165, 0x016c, 0x017b, 0x0180, + 0x0188, 0x018d, 0x0195, 0x0195, 0x019e, 0x01a4, 0x01ac, 0x01ac, + 0x01ac, 0x01b3, 0x01c3, 0x01cc, 0x01cc, 0x01d2, 0x01d9, 0x01e1, + // Entry 40 - 7F + 0x01f4, 0x01fb, 0x01fb, 0x0201, 0x0208, 0x020d, 0x020d, 0x0214, + 0x021c, 0x0224, 0x0224, 0x0229, 0x022d, 0x0240, 0x024a, 0x024a, + 0x0252, 0x0258, 0x0260, 0x0267, 0x026c, 0x027f, 0x027f, 0x0284, + 0x028c, 0x0295, 0x029b, 0x029f, 0x02a8, 0x02b1, 0x02b8, 0x02b8, + 0x02c1, 0x02c5, 0x02ce, 0x02d4, 0x02d4, 0x02d4, 0x02dd, 0x02e4, + 0x02e9, 0x02f1, 0x02f1, 0x02fa, 0x0302, 0x0309, 0x0309, 0x030e, + 0x0333, 0x0338, 0x033e, 0x0346, 0x034c, 0x034c, 0x0353, 0x035d, + 0x0364, 0x0369, 0x0376, 0x037e, 0x0386, 0x038c, 0x039f, 0x03ae, + // Entry 80 - BF + 0x03ba, 0x03c1, 0x03d2, 0x03dd, 0x03e2, 0x03ea, 0x03f4, 0x03fe, + 0x0407, 0x040e, 0x0414, 0x041c, 0x0425, 0x042c, 0x0431, 0x0437, + 0x043d, 0x0444, 0x0444, 0x0444, 0x044a, 0x045c, 0x0465, 0x0469, + 0x046e, 0x0476, 0x0476, 0x0496, 0x049f, 0x04a8, 0x04b3, 0x04b8, + 0x04be, 0x04c4, 0x04ca, 0x04d1, 0x04d8, 0x04e0, 0x04e8, 0x04f4, + 0x04fa, 0x050b, 0x0514, 0x051d, 0x0525, 0x052a, 0x0530, 0x0535, + 0x0539, 0x0543, 0x0548, 0x054e, 0x0552, 0x0567, 0x056c, 0x0574, + 0x057d, 0x0584, 0x059a, 0x05a3, 0x05ac, 0x05de, 0x05e3, 0x05e8, + // Entry C0 - FF + 0x05f0, 0x05f6, 0x05f6, 0x05ff, 0x0606, 0x0606, 0x060b, 0x0611, + 0x0616, 0x0628, 0x0632, 0x0638, 0x063e, 0x0646, 0x0651, 0x0659, + 0x0659, 0x0661, 0x066c, 0x0674, 0x067c, 0x0683, 0x068b, 0x068b, + 0x069f, 0x06a7, 0x06a7, 0x06ac, 0x06b2, 0x06b2, 0x06cb, 0x06d0, + 0x06d0, 0x06d4, 0x06dc, 0x06e7, 0x06ee, 0x0701, 0x0710, 0x0717, + 0x071c, 0x0723, 0x0735, 0x073b, 0x0742, 0x074a, 0x0751, 0x0757, + 0x0757, 0x075e, 0x0765, 0x0771, 0x0779, 0x0792, 0x079b, 0x07ba, + 0x07d8, 0x07e1, 0x07e8, 0x07f7, 0x07fc, 0x07fc, 0x0802, 0x0809, + // Entry 100 - 13F + 0x0816, 0x081c, 0x0824, + }, + }, + { // kk + kkRegionStr, + kkRegionIdx, + }, + { // kkj + "KamÉ›run", + []uint16{ // 49 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, + }, + }, + { // kl + "Kalaallit Nunaat", + []uint16{ // 90 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, + }, + }, + { // kln + "Emetab AndorraEmetab kibagenge nebo arabukEmetab AfghanistanEmetab Antig" + + "ua ak BarbudaEmetab AnguillaEmetab AlbaniaEmetab ArmeniaEmetab Angol" + + "aEmetab ArgentinaEmetab American SamoaEmetab AustriaEmetab Australia" + + "Emetab ArubaEmetab AzerbaijanEmetab Bosnia ak HerzegovinaEmetab Barb" + + "adosEmetab BangladeshEmetab BelgiumEmetab Burkina FasoEmetab Bulgari" + + "aEmetab BahrainEmetab BurundiEmetab BeninEmetab BermudaEmetab Brunei" + + "Emetab BoliviaEmetab BrazilEmetab BahamasEmetab BhutanEmetab Botswan" + + "aEmetab BelarusEmetab BelizeEmetab CanadaEmetab Congo - KinshasaEmet" + + "ab Afrika nebo KwenEmetab Congo - BrazzavilleEmetab SwitzerlandEmeta" + + "b Côte d’IvoireIkwembeyotab CookEmetab ChileEmetab CameroonEmetab Ch" + + "inaEmetab ColombiaEmetab Costa RicaEmetab CubaIkwembeyotab Cape Verd" + + "eEmetab CyprusEmetab Czech RepublicEmetab GerumanEmetab DjiboutiEmet" + + "ab DenmarkEmetab DominicaEmetab Dominican RepublicEmetab AlgeriaEmet" + + "ab EcuadorEmetab EstoniaEmetab MisiriEmetab EritreaEmetab SpainEmeta" + + "b EthiopiaEmetab FinlandEmetab FijiIkwembeyotab FalklandEmetab Micro" + + "nesiaEmetab FranceEmetab GabonEmetab Kibagenge nebo UingerezaEmetab " + + "GrenadaEmetab GeorgiaEmetab Guiana nebo UfaransaEmetab GhanaEmetab G" + + "ibraltarEmetab GreenlandEmetab GambiaEmetab GuineaEmetab GuadeloupeE" + + "metab Equatorial GuineaEmetab GreeceEmetab GuatemalaEmetab GuamEmeta" + + "b Guinea-BissauEmetab GuyanaEmetab HondurasEmetab CroatiaEmetab Hait" + + "iEmetab HungaryEmetab IndonesiaEmetab IrelandEmetab IsraelEmetab Ind" + + "iaKebebertab araraitab indian Ocean nebo UingeresaEmetab IraqEmetab " + + "IranEmetab IcelandEmetab ItalyEmetab JamaicaEmetab JordanEmetab Japa" + + "nEmetab KenyaEmetab KyrgyzstanEmetab CambodiaEmetab KiribatiEmetab C" + + "omorosEmetab Saint Kitts ak NevisEmetab Korea nebo murot katamEmetab" + + " korea nebo murot taiEmetab KuwaitIkwembeyotab CaymanEmetab Kazakhst" + + "anEmetab LaosEmetab LebanonEmetab Lucia NeEmetab LiechtensteinEmetab" + + " Sri LankaEmetab LiberiaEmetab LesothoEmetab LithuaniaEmetab Luxembo" + + "urgEmetab LatviaEmetab LibyaEmetab MoroccoEmetab MonacoEmetab Moldov" + + "aEmetab MadagascarIkwembeiyotab MarshallEmetab MacedoniaEmetab MaliE" + + "metab MyanmarEmetab MongoliaIkwembeiyotab Mariana nebo murot katamEm" + + "etab MartiniqueEmetab MauritaniaEmetab MontserratEmetab MaltaEmetab " + + "MauritiusEmetab MaldivesEmetab MalawiEmetab MexicoEmetab MalaysiaEme" + + "tab MozambiqueEmetab NamibiaEmetab New CaledoniaEmetab nigerIkwembei" + + "yotab NorforkEmetab NigeriaEmetab NicaraguaEmetab HolandEmetab Norwa" + + "yEmetab NepalEmetab NauruEmetab NiueEmetab New ZealandEmetab OmanEme" + + "tab PanamaEmetab PeruEmetab Polynesia nebo ufaransaEmetab Papua New " + + "GuineaEmetab PhilippinesEmetab PakistanEmetab PolandEmetab Peter Ne " + + "titil ak MiquelonEmetab PitcairnEmetab Puerto RicoEmetab PalestineEm" + + "etab PortugalEmetab PalauEmetab ParaguayEmetab QatarEmetab RéunionEm" + + "etab RomaniaEmetab RussiaEmetab RwandaEmetab Saudi ArabiaIkwembeiyot" + + "ab SolomonEmetab SeychellesEmetab SudanEmetab SwedenEmetab Singapore" + + "Emetab Helena Ne tililEmetab SloveniaEmetab SlovakiaEmetab Sierra Le" + + "oneEmetab San MarinoEmetab SenegalEmetab SomaliaEmetab SurinameEmeta" + + "b São Tomé and PríncipeEmetab El SalvadorEmetab SyriaEmetab Swazilan" + + "dIkwembeiyotab Turks ak CaicosEmetab ChadEmetab TogoEmetab ThailandE" + + "metab TajikistanEmetab TokelauEmetab Timor nebo Murot taiEmetab Turk" + + "menistanEmetab TunisiaEmetab TongaEmetab TurkeyEmetab Trinidad ak To" + + "bagoEmetab TuvaluEmetab TaiwanEmetab TanzaniaEmetab UkrainieEmetab U" + + "gandaEmetab amerikaEmetab UruguayEmetab UzibekistaniEmetab VaticanEm" + + "etab Vincent netilil ak GrenadinesEmetab VenezuelaIkwembeyotab Briti" + + "sh VirginIkwemweiyotab AmerikaEmetab VietnamEmetab VanuatuEmetab Wal" + + "is ak FutunaEmetab SamoaEmetab YemenEmetab MayotteEmetab Afrika nebo" + + " Murot taiEmetab ZambiaEmetab Zimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000e, 0x002a, 0x003c, 0x0055, 0x0064, 0x0072, + 0x0080, 0x008d, 0x008d, 0x009d, 0x00b2, 0x00c0, 0x00d0, 0x00dc, + 0x00dc, 0x00ed, 0x0109, 0x0118, 0x0129, 0x0137, 0x014a, 0x0159, + 0x0167, 0x0175, 0x0181, 0x0181, 0x018f, 0x019c, 0x01aa, 0x01aa, + 0x01b7, 0x01c5, 0x01d2, 0x01d2, 0x01e1, 0x01ef, 0x01fc, 0x0209, + 0x0209, 0x0220, 0x0237, 0x0251, 0x0263, 0x027a, 0x028b, 0x0297, + 0x02a6, 0x02b2, 0x02c1, 0x02c1, 0x02d2, 0x02dd, 0x02f4, 0x02f4, + 0x02f4, 0x0301, 0x0316, 0x0324, 0x0324, 0x0333, 0x0341, 0x0350, + // Entry 40 - 7F + 0x0369, 0x0377, 0x0377, 0x0385, 0x0393, 0x03a0, 0x03a0, 0x03ae, + 0x03ba, 0x03c9, 0x03c9, 0x03d7, 0x03e2, 0x03f7, 0x0408, 0x0408, + 0x0415, 0x0421, 0x0440, 0x044e, 0x045c, 0x0477, 0x0477, 0x0483, + 0x0493, 0x04a3, 0x04b0, 0x04bd, 0x04ce, 0x04e6, 0x04f3, 0x04f3, + 0x0503, 0x050e, 0x0522, 0x052f, 0x052f, 0x052f, 0x053e, 0x054c, + 0x0558, 0x0566, 0x0566, 0x0576, 0x0584, 0x0591, 0x0591, 0x059d, + 0x05cd, 0x05d8, 0x05e3, 0x05f1, 0x05fd, 0x05fd, 0x060b, 0x0618, + 0x0624, 0x0630, 0x0641, 0x0650, 0x065f, 0x066d, 0x0688, 0x06a5, + // Entry 80 - BF + 0x06c0, 0x06cd, 0x06e0, 0x06f1, 0x06fc, 0x070a, 0x0719, 0x072d, + 0x073d, 0x074b, 0x0759, 0x0769, 0x077a, 0x0787, 0x0793, 0x07a1, + 0x07ae, 0x07bc, 0x07bc, 0x07bc, 0x07cd, 0x07e3, 0x07f3, 0x07fe, + 0x080c, 0x081b, 0x081b, 0x0841, 0x0852, 0x0863, 0x0874, 0x0880, + 0x0890, 0x089f, 0x08ac, 0x08b9, 0x08c8, 0x08d9, 0x08e7, 0x08fb, + 0x0907, 0x091c, 0x092a, 0x093a, 0x0947, 0x0954, 0x0960, 0x096c, + 0x0977, 0x0989, 0x0994, 0x09a1, 0x09ac, 0x09ca, 0x09e1, 0x09f3, + 0x0a02, 0x0a0f, 0x0a30, 0x0a3f, 0x0a51, 0x0a61, 0x0a70, 0x0a7c, + // Entry C0 - FF + 0x0a8b, 0x0a97, 0x0a97, 0x0aa6, 0x0ab4, 0x0ab4, 0x0ac1, 0x0ace, + 0x0ae1, 0x0af6, 0x0b07, 0x0b13, 0x0b20, 0x0b30, 0x0b46, 0x0b55, + 0x0b55, 0x0b64, 0x0b77, 0x0b88, 0x0b96, 0x0ba4, 0x0bb3, 0x0bb3, + 0x0bd2, 0x0be4, 0x0be4, 0x0bf0, 0x0c00, 0x0c00, 0x0c1d, 0x0c28, + 0x0c28, 0x0c33, 0x0c42, 0x0c53, 0x0c61, 0x0c7c, 0x0c8f, 0x0c9d, + 0x0ca9, 0x0cb6, 0x0ccf, 0x0cdc, 0x0ce9, 0x0cf8, 0x0d07, 0x0d14, + 0x0d14, 0x0d22, 0x0d30, 0x0d43, 0x0d51, 0x0d75, 0x0d85, 0x0da0, + 0x0db5, 0x0dc3, 0x0dd1, 0x0de7, 0x0df3, 0x0df3, 0x0dff, 0x0e0d, + // Entry 100 - 13F + 0x0e29, 0x0e36, 0x0e45, + }, + }, + { // km + kmRegionStr, + kmRegionIdx, + }, + { // kn + knRegionStr, + knRegionIdx, + }, + { // ko + koRegionStr, + koRegionIdx, + }, + { // kok + "भारत", + []uint16{ // 112 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, + }, + }, + { // ks + "اٮ۪نڑورامÙØªØ­Ø¯Û Ø¹Ø±ÙŽØ¨ اماراتاَÙغانَستاناٮ۪نٹÙÚ¯Ùوا تÛÙ• باربوڑاانگوئیلااٮ۪لب" + + "انÙیااَرمانÙیاانگولااینٹارٹÙکاأرجَنٹینااَمریٖکَن سَمواآسٹÙیاآسٹریلÙ" + + "یااَروٗباایلینٛڑ جٔزیٖرٕآزَرباجانبوسنÙیا تÛÙ• ÛَرزÙگووÙناباربیڈاسبَن" + + "ٛگلادیشبیٛلجÙیَمبÙرکÙنا ÙیسوبَلجیرÙیابحریٖنبورَنڈÙبÙÙ†Ùنسینٛٹ بارتَھ" + + "یلمیبٔرمیوڈابÙرنٔےبولÙÙˆÙیابرطانوی Ù‚ÙطبÛ٠جَنوٗبی علاقÛٕبرٛازÙلبَÛام" + + "َسبوٗٹانبووَٹ جٔزیٖرٕبوتَسوانابیلاروٗسبیلÙجکینَڑاکوکَس کیٖلÙÙ†Ù›Ú¯ جٔز" + + "یٖرٕکونٛگو Ú©Ùنشاسامرکٔزی اَÙریٖکی جموٗریَتکونٛگو بٔرٛزاوÙلیسÙÙˆÙزَرل" + + "ینٛڑاَیوٕری کوسٹکÙÚ© جٔزیٖرٕچÙلیکیٚمÙروٗنچیٖنکولَمبÙیاکوسٹا رÙکاکیوٗ" + + "باکیپ ؤرڑیکرÙسمَس جٔزیٖرٕسایÙرٛسچیک جَموٗرÙیَتجرمٔنیجÙبوٗتیڈینٛمارٕ" + + "کڈومÙÙ†ÙکاڈومÙÙ†ÙÚ©ÙŽÙ† جموٗرÙیَتاٮ۪لجیرÙیااÙکواڑورایسٹونÙیامÙسٔرمشرÙÙ‚ÛŒ " + + "سَÛارااÙرٕٹÙیاسٕپیناÙتھوپÙیاÙÙنلینٛڑÙÙجیÙٕلاکلینٛڑ جٔزیٖرٕÙرٛانسگیب" + + "انیÙنایٹÙÚ‘ Ú©ÙنٛگڈَمگرٛنیڑاجارجÙیاÙرٛانسÙسی Ú¯ÙاناگیوَنَرسےگاناجÙبرال" + + "ٹَرگریٖنلینٛڑگَمبÙیاگÙنیگَواڑیلوپاÙÚ©ÙˆÙٹورÙیَل Ú¯Ùنیگریٖسجنوٗبی جارجÙ" + + "یا تÛÙ• جنوٗبی سینٛڑوٕچ جٔزیٖرٕگوتیدالاگÙوامگیٖنی بÙساوگÙیاناÛانٛگ Ú©" + + "انٛگ ایس اے آر چیٖنÛَرٕڑ جٔزیٖرٕ تÛÙ• مٮ۪کڈونالڑٕ جٔزیٖرٕÛانٛڈوٗرÙسک" + + "رٛوشÙیاÛایتیÛَنٛگریاÙنڑونیشÙیااَیَرلینٛڑاÙسرایٖلآیÙÙ„ آ٠میٛنÛÙنٛدوس" + + "تانبرطانوی بحر٠ÛÙÙ†Ù›Ø¯Û Ø¹Ù„Ø§Ù‚ÛٕایٖراقایٖراناَیÙسلینٛڑاÙٹلیجٔرسیجَمایک" + + "اجاپانکÙنٛیاکÙرگÙستانکَمبوڑÙیاکÙرٕباتیکَمورَسسینٛٹ Ú©Ùٹَس تÛÙ• نیوÙسش" + + "Ùمٲلی کورÙیاجنوٗبی کورÙیاکÙویتکیمَن جٔزیٖرٕکَزاکÙستانلاسلٮ۪بنانسینٛ" + + "Ù¹ لوٗسÙیالÙکٹیٛسٹیٖنسÙریٖلَنٛکالایبیرÙیالیسوتھولÙتھÙوانÙیالَکسَمبٔر" + + "ٕگلیٛٹوÙیالÙبیاموروکومونیٚکومولڑاوÙیاموٹونیٛگÙریوسینٛٹ مارٹÙنمیڑاگا" + + "سکارمارشَل جٔزیٖرٕمٮ۪سوڑونÙیامالیمَیَنما بٔرمامَنٛگولÙیامَکاوو ایس " + + "اے آر چیٖنشÙمٲلی مارÙیانا جٔزیٖرٕمارٹÙÙ†ÙکمارٕٹانÙیامانٛٹسیراٹمالٹام" + + "ورÙشَسمالدیٖوملاویمٮ۪کسÙکومَلیشÙیاموزَمبÙکنامÙبÙیانÙÙˆ کیلÙڑونÙیانای" + + "جَرنارÙاک جٔزیٖرٕنایجیرÙیاناکاراگÙوانیٖدَرلینٛڑناروےنیپالنارووٗنیوٗ" + + "نیوٗزÙلینٛڑاومانپَناماپیٖروٗÙرٛانسی پولÙنیشÙیاپاپÙوا نیوٗ گیٖنیÙÙÙ„Ù" + + "Ù¾ÙینسپاکÙستانپولینٛڑسینٛٹ پیٖری تÛÙ• موکیلÙیَنپÙÙ¹Ú©ÛŒØ±Ù•Ù†Û Ø¬Ù”Ø²ÛŒÙ–Ø±Ù•Ù¾Ù”Ø±Ù¹Ùˆ" + + " رÙÚ©ÙˆÙَلَستیٖنپÙرتÙگالپَلاوپَراگÙÛ’Ù‚ÙŽØ·ÙرآوÙٹلاینÙÚ¯ اوشینÙیارÙیوٗنÙیَن" + + "رومانÙیاسَربÙیاروٗسروٗوانٛڈاسوٗدی عربÙÛŒÛسولامان جٔزیٖرٕسیشَلÙسسوٗڈا" + + "نسÙÙˆÙڈَنٛسÙنٛگاپوٗرسینٛٹ ÛÙ®ÛªÙ„ÙناسَلووینÙیاسَوالبریڑ تÛÙ• جان ماییڑسَ" + + "لوواکÙیاسیٖرالیوونسین میرÙنوسینیگَلسومالÙیاسÙرÙنامساو توم تÛÙ• پرٛنس" + + "Ùپیاٮ۪ل سَلواڑورشامسÙوزÙلینٛڑتÙرÙÚ© تÛÙ• کیکوس جٔزیٖرٕچاڑÙرٛانسÙسی جَ" + + "نوٗبی عَلاقÛٕٹوگوتھایلینٛڑتاجکÙستانتوکیلاومَشرÙÙ‚ÛŒ تایمورتÙرمÙÙ†Ùستان" + + "ٹونیشÙیاٹونٛگاتÙرکیٹرٛنÙنداد تÛÙ• ٹوبیگوتوٗوالوٗتایوانتَنجانÙیایوٗرÙ" + + "کینیوٗگانٛڑایوٗنایٹÙÚ‘ سÙٹیٹÙس ماینَر آوÙٹلییÙÙ†Ù›Ú¯ جٔزیٖرٕیوٗنایٹÙÚ‘ س" + + "ÙٹیٹÙسیوٗروگےاÙزبÙÚ©ÙستانویٹÙÚ©ÙŽÙ† سÙٹیسینٛٹ وینسٮ۪ٹ تÛÙ• گرٛیناڑاینٕزو" + + "ینازوٗلابَرطانوی ؤرجÙÙ† جٔزیٖرٕیوٗ ایس ؤرجÙÙ† جٔزیٖرٕویٹÙناموانوٗتوٗو" + + "الÙس تÛÙ• Ùیوٗچوٗناسیمووایَمَنمَییٹجَنوٗبی اَÙریٖکاجامبÙیازÙمبابےنام" + + "علوٗم تÛÙ• نالَگÛار عَلاقÛٕدÙنیااَÙریٖکاشÙمٲلی اَمریٖکاجَنوٗنی اَمرٖ" + + "یٖکااوشَنیامَغریٖبی اَÙریٖکامرکٔزی اَمریٖکامَشرÙÙ‚ÛŒ اَÙریٖکاشÙمٲلی ا" + + "ÙŽÙریٖکاوسطی اَÙریٖکاجنوٗبی اَÙریٖکااَمریٖکَسشÙمٲلی اَمریٖکا خٕطÛÙ•Ú©ÙŽ" + + "رÙببیٖنمَشرÙÙ‚ÛŒ ایشیاجنوٗبی ایشیاجنوٗبÛ٠مَشرÙÙ‚ÛŒ ایشیاجنوٗبی یوٗرَپآ" + + "سٹریلیا تÛÙ• Ù†ÙوزÙلینٛڑمٮ۪لَنیٖشÙیامَیکرونَیشÙیَن خٕطÛٕپالنیشÙیاایشی" + + "امرکٔزی ایشیامَغرÙبی ایشیایوٗرَپمشرÙÙ‚ÛŒ یوٗرَپشÙمٲلی یوٗرَپمغرÙبی یو" + + "ٗرَپلاطیٖنی اَمریٖکا تÛÙ• کیرَبیٖن", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0010, 0x0032, 0x0048, 0x0072, 0x0082, 0x0096, + 0x00a8, 0x00b4, 0x00c8, 0x00da, 0x00f7, 0x0103, 0x0115, 0x0123, + 0x0140, 0x0152, 0x017e, 0x018e, 0x01a2, 0x01b4, 0x01cb, 0x01dd, + 0x01e9, 0x01f7, 0x0201, 0x0220, 0x0230, 0x023c, 0x024c, 0x0283, + 0x0291, 0x029f, 0x02ab, 0x02c4, 0x02d6, 0x02e6, 0x02f0, 0x02fc, + 0x0326, 0x0341, 0x036f, 0x0390, 0x03a8, 0x03bf, 0x03d4, 0x03dc, + 0x03ee, 0x03f6, 0x0408, 0x0408, 0x041b, 0x0427, 0x0436, 0x0436, + 0x0453, 0x0461, 0x047c, 0x0488, 0x0488, 0x0496, 0x04a8, 0x04b8, + // Entry 40 - 7F + 0x04dd, 0x04f1, 0x04f1, 0x0501, 0x0513, 0x051d, 0x0536, 0x0546, + 0x0550, 0x0562, 0x0562, 0x0572, 0x057a, 0x059d, 0x059d, 0x059d, + 0x05a9, 0x05b3, 0x05d4, 0x05e2, 0x05f0, 0x060d, 0x061f, 0x0627, + 0x0639, 0x064d, 0x065b, 0x0663, 0x0675, 0x0696, 0x06a0, 0x06ef, + 0x06ff, 0x0709, 0x071e, 0x072a, 0x0759, 0x079f, 0x07b3, 0x07c3, + 0x07cd, 0x07db, 0x07db, 0x07f1, 0x0805, 0x0815, 0x082b, 0x083f, + 0x0870, 0x087c, 0x0888, 0x089c, 0x08a6, 0x08b0, 0x08be, 0x08be, + 0x08c8, 0x08d4, 0x08e6, 0x08f8, 0x0908, 0x0916, 0x093d, 0x0956, + // Entry 80 - BF + 0x096f, 0x0979, 0x0992, 0x09a6, 0x09ac, 0x09ba, 0x09d3, 0x09e9, + 0x09ff, 0x0a11, 0x0a1f, 0x0a35, 0x0a4b, 0x0a5b, 0x0a65, 0x0a71, + 0x0a7f, 0x0a91, 0x0aa9, 0x0ac0, 0x0ad4, 0x0aef, 0x0b05, 0x0b0d, + 0x0b26, 0x0b3a, 0x0b60, 0x0b8c, 0x0b9c, 0x0bb0, 0x0bc4, 0x0bce, + 0x0bdc, 0x0bea, 0x0bf4, 0x0c04, 0x0c14, 0x0c24, 0x0c34, 0x0c4f, + 0x0c5b, 0x0c76, 0x0c88, 0x0c9c, 0x0cb2, 0x0cbc, 0x0cc6, 0x0cd2, + 0x0cda, 0x0cf0, 0x0cfa, 0x0d06, 0x0d12, 0x0d35, 0x0d55, 0x0d67, + 0x0d77, 0x0d85, 0x0db4, 0x0dd5, 0x0de8, 0x0dfa, 0x0e0a, 0x0e14, + // Entry C0 - FF + 0x0e22, 0x0e2c, 0x0e51, 0x0e65, 0x0e75, 0x0e83, 0x0e8b, 0x0e9d, + 0x0eb4, 0x0ed1, 0x0edf, 0x0eeb, 0x0ef9, 0x0f0f, 0x0f28, 0x0f3c, + 0x0f67, 0x0f7b, 0x0f8f, 0x0fa2, 0x0fb0, 0x0fc0, 0x0fce, 0x0fce, + 0x0ff3, 0x100c, 0x100c, 0x1012, 0x1026, 0x1026, 0x1051, 0x1057, + 0x1087, 0x108f, 0x10a1, 0x10b3, 0x10c1, 0x10dc, 0x10f2, 0x1102, + 0x110e, 0x1118, 0x113e, 0x114e, 0x115a, 0x116c, 0x117c, 0x118e, + 0x11e2, 0x1203, 0x1211, 0x1227, 0x123e, 0x1277, 0x1289, 0x12b3, + 0x12da, 0x12e8, 0x12f8, 0x131c, 0x1328, 0x1328, 0x1332, 0x133c, + // Entry 100 - 13F + 0x135b, 0x1369, 0x1377, 0x13ae, 0x13b8, 0x13c8, 0x13e5, 0x1406, + 0x1414, 0x1435, 0x1452, 0x1471, 0x148e, 0x14a7, 0x14c4, 0x14d6, + 0x14fe, 0x1510, 0x1529, 0x1540, 0x1568, 0x1581, 0x15ad, 0x15c5, + 0x15ec, 0x15fe, 0x1608, 0x161f, 0x1638, 0x1644, 0x165d, 0x1676, + 0x168f, 0x16c6, + }, + }, + { // ksb + "AndolaFalme za KialabuAfuganistaniAntigua na BalbudaAnguillaAlbaniaAlmen" + + "iaAngolaAjentinaSamoa ya MalekaniAustliaAustlaliaAlubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiBukinafasoBulgaliaBahaleniBulundiB" + + "eniniBelmudaBluneiBoliviaBlaziliBahamaButaniBotswanaBelalusiBelizeKa" + + "nadaJamhuli ya Kidemoklasia ya KongoJamhuli ya Afrika ya GatiKongoUs" + + "wisiKodivaaVisiwa vya CookChileKameluniChinaKolombiaKostalikaKubaKep" + + "uvedeKuplosiJamhuli ya ChekiUjeumaniJibutiDenmakiDominikaJamhuli ya " + + "DominikaAljeliaEkwadoEstoniaMisliElitleaHispaniaUhabeshiUfiniFijiVis" + + "iwa vya FalklandMiklonesiaUfalansaGaboniUingeezaGlenadaJojiaGwiyana " + + "ya UfalansaGhanaJiblaltaGlinlandiGambiaGineGwadelupeGinekwetaUgiikiG" + + "watemalaGwamGinebisauGuyanaHonduasiKolasiaHaitiHungaliaIndonesiaAyal" + + "andiIslaeliIndiaEneo ja Uingeeza mwe Bahali HindiIlakiUajemiAislandi" + + "ItaliaJamaikaYoldaniJapaniKenyaKiigizistaniKambodiaKiibatiKomoloSant" + + "akitzi na NevisKolea KaskaziniKolea KusiniKuwaitiVisiwa vya KaymanKa" + + "zakistaniLaosiLebanoniSantalusiaLishenteniSililankaLibeliaLesotoLitw" + + "aniaLasembagiLativiaLibyaMolokoMonakoMoldovaBukiniVisiwa vya MashalM" + + "asedoniaMaliMyamaMongoliaVisiwa vya Maliana vya KaskaziniMaltinikiMa" + + "ulitaniaMontselatiMaltaMolisiModivuMalawiMeksikoMalesiaMsumbijiNamib" + + "iaNyukaledoniaNaijaKisiwa cha NolfokNaijeliaNikalagwaUholanziNolweiN" + + "epaliNauluNiueNyuzilandiOmaniPanamaPeluPolinesia ya UfalansaPapuaFil" + + "ipinoPakistaniPolandiSantapieli na MikeloniPitkailniPwetolikoUkingo " + + "wa Maghalibi na Ukanda wa Gaza wa PalestinaUlenoPalauPalagwaiKataliL" + + "iyunioniLomaniaUlusiLwandaSaudiVisiwa vya SolomonShelisheliSudaniUsw" + + "idiSingapooSantahelenaSloveniaSlovakiaSiela LeoniSamalinoSenegaliSom" + + "aliaSulinamuSao Tome na PlincipeElsavadoSiliaUswaziVisiwa vya Tulki " + + "na KaikoChadiTogoTailandiTajikistaniTokelauTimoli ya MashalikiTuluki" + + "menistaniTunisiaTongaUtulukiTlinidad na TobagoTuvaluTaiwaniTanzaniaU" + + "klainiUgandaMalekaniUlugwaiUzibekistaniVatikaniSantavisenti na Glena" + + "diniVenezuelaVisiwa vya Vilgin vya UingeezaVisiwa vya Vilgin vya Mal" + + "ekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMayotteAflika KusiniZ" + + "ambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00ae, 0x00b8, 0x00c0, + 0x00c8, 0x00cf, 0x00d5, 0x00d5, 0x00dc, 0x00e2, 0x00e9, 0x00e9, + 0x00f0, 0x00f6, 0x00fc, 0x00fc, 0x0104, 0x010c, 0x0112, 0x0118, + 0x0118, 0x0138, 0x0151, 0x0156, 0x015c, 0x0163, 0x0172, 0x0177, + 0x017f, 0x0184, 0x018c, 0x018c, 0x0195, 0x0199, 0x01a1, 0x01a1, + 0x01a1, 0x01a8, 0x01b8, 0x01c0, 0x01c0, 0x01c6, 0x01cd, 0x01d5, + // Entry 40 - 7F + 0x01e8, 0x01ef, 0x01ef, 0x01f5, 0x01fc, 0x0201, 0x0201, 0x0208, + 0x0210, 0x0218, 0x0218, 0x021d, 0x0221, 0x0234, 0x023e, 0x023e, + 0x0246, 0x024c, 0x0254, 0x025b, 0x0260, 0x0273, 0x0273, 0x0278, + 0x0280, 0x0289, 0x028f, 0x0293, 0x029c, 0x02a5, 0x02ab, 0x02ab, + 0x02b4, 0x02b8, 0x02c1, 0x02c7, 0x02c7, 0x02c7, 0x02cf, 0x02d6, + 0x02db, 0x02e3, 0x02e3, 0x02ec, 0x02f4, 0x02fb, 0x02fb, 0x0300, + 0x0321, 0x0326, 0x032c, 0x0334, 0x033a, 0x033a, 0x0341, 0x0348, + 0x034e, 0x0353, 0x035f, 0x0367, 0x036e, 0x0374, 0x0387, 0x0396, + // Entry 80 - BF + 0x03a2, 0x03a9, 0x03ba, 0x03c5, 0x03ca, 0x03d2, 0x03dc, 0x03e6, + 0x03ef, 0x03f6, 0x03fc, 0x0404, 0x040d, 0x0414, 0x0419, 0x041f, + 0x0425, 0x042c, 0x042c, 0x042c, 0x0432, 0x0443, 0x044c, 0x0450, + 0x0455, 0x045d, 0x045d, 0x047d, 0x0486, 0x0490, 0x049a, 0x049f, + 0x04a5, 0x04ab, 0x04b1, 0x04b8, 0x04bf, 0x04c7, 0x04ce, 0x04da, + 0x04df, 0x04f0, 0x04f8, 0x0501, 0x0509, 0x050f, 0x0515, 0x051a, + 0x051e, 0x0528, 0x052d, 0x0533, 0x0537, 0x054c, 0x0551, 0x0559, + 0x0562, 0x0569, 0x057f, 0x0588, 0x0591, 0x05c3, 0x05c8, 0x05cd, + // Entry C0 - FF + 0x05d5, 0x05db, 0x05db, 0x05e4, 0x05eb, 0x05eb, 0x05f0, 0x05f6, + 0x05fb, 0x060d, 0x0617, 0x061d, 0x0623, 0x062b, 0x0636, 0x063e, + 0x063e, 0x0646, 0x0651, 0x0659, 0x0661, 0x0668, 0x0670, 0x0670, + 0x0684, 0x068c, 0x068c, 0x0691, 0x0697, 0x0697, 0x06b0, 0x06b5, + 0x06b5, 0x06b9, 0x06c1, 0x06cc, 0x06d3, 0x06e6, 0x06f5, 0x06fc, + 0x0701, 0x0708, 0x071a, 0x0720, 0x0727, 0x072f, 0x0736, 0x073c, + 0x073c, 0x0744, 0x074b, 0x0757, 0x075f, 0x0778, 0x0781, 0x079f, + 0x07bd, 0x07c6, 0x07cd, 0x07dc, 0x07e1, 0x07e1, 0x07e7, 0x07ee, + // Entry 100 - 13F + 0x07fb, 0x0801, 0x0809, + }, + }, + { // ksf + "andÉ”rÇbÇlɔŋ bÇ kaksa bÉ› táatáaÅ‹zÇnafganistáŋantiga ri barbúdaangiyaalban" + + "íarmÉ›níangólaarjÇntínsamÉ”a a amÉ›rikaotricÉ”stralíarubaazabecánbÉ”snyÉ›" + + " ri hÉ›rsÇgÉ”vínbaabaadÇbaÅ‹ladÉ›ÌcbÉ›ljíkbukína fÇÌ asÉ”bulgaríbarÇÌnburu" + + "ndíbÉ›nÇÌnbɛɛmúdÇbrunÇÌbɔɔlívíbrÉ›sílbaamásbutánbotswanabÉ›larisbÉ›lizka" + + "nadakÉ”ngó anyÉ”ÌnsantrafríkkÉ”ngóswískÉ”tiwuárzÉ› i kúkcílikamÉ›rúncínkol" + + "É”mbíkÉ”staríkakubakapvÉ›rcíprÉ›cÉ›ÌkdjÉ›rmandyibutídanmakdÉ”minikdÉ”minik " + + "rÉ›publíkaljÉ›ríɛkwatÉ›ÇÌÉ›stoníɛjíptÉ›ritrÉ›ÌkpanyáɛtyÉ”pífínlanfíjizÇ maa" + + "lwínmikronÉ›ÌsipÉ›rÉ›sÇÌgabɔŋkÇlɔŋ kÇ kÇtáatáaÅ‹zÇngrÉ›nadÇjÉ”rjíguyán i p" + + "É›rÉ›sÇÌgánajibraltágrínlangambíginÉ›ÌgwadÉ›lúpginÉ›Ì É›kwatÉ”rialgrÉ›Ìkgwá" + + "tÇmalagwámginÉ›Ì bisÉ”ÌguyánÉ”nduraskrwasíayitiÉ”ngríindonÉ›síilánisraÉ›Ìl" + + "indízÇ ingÉ›rís ncÉ”Ìm wa indiirákiráŋzÇ i glásitalíjamaíkjÉ”rdánjapÉ”ÌÅ‹" + + "kÉ›nyakigistáŋkambodjkiribátikomÉ”rsÉ›nkrÇstÉ”Ìf ri nyÉ›ÌvÇkorÉ›anÉ”ÌrkorÉ›a" + + "sudkuwÉ›itzÇ i gankazakstáŋlaÉ”slibáŋsÉ›ntlísílictÉ›nstÉ›ÌnsrílaÅ‹kalibÉ›ry" + + "alÇsótolitwaníluksÉ›mbúrlÉ›tonílibímarÉ”kmonakomÉ”ldavímadagaskazÇ i mar" + + "cálmásÇdwánmalimyanmármɔŋolízÇ maryánnÉ”ÌrmatiníkmwaritanímÉ”nsÉ›ratmal" + + "tÇmwarísmaldivÇmalawimÉ›ksíkmalÉ›símosambíknamibíkalÉ›doní anyÉ”ÌnnijÉ›Ìr" + + "zÉ› nÉ”ÌfÉ”lknijÉ›ÌryaníkarágwakÇlɔŋ kÇ Ã¡zÇnÉ”rvÉ›jÇnÉ›palnwarúniwÉ›ÌzÉ›lan a" + + "nyÉ”ÌnomanpanamapÉ›rúpÉ”linÉ›sí a pÉ›rÉ›sÇÌpapwazí ginÉ›Ì anyÉ”ÌnfilipÇÌnpak" + + "istáŋpolÉ”ÌnsÉ›npyÉ›r ri mikÉ›lɔŋpitkÉ›ÌnpÉ”toríkozÇ palÉ›stínÇportugálpalw" + + "aparagwÉ›ÌkatárÉ›unyɔŋrÉ”manírisírwandaarabí saodízÇ salomÉ”ÌnsÉ›cÉ›lsudan" + + "swÉ›dÇsiÅ‹apósÉ›ntÉ›ÌlenslovÉ›níslovakísyÉ›raleonsÉ›nmarÇnsÉ›nÉ›galsomalísuri" + + "namsaotomÉ›Ì ri priÅ‹sibsalvadÉ”rsiríswazilanzÇ tirk ri kakÉ”scaádtogotÉ›" + + "lantadjikistaÅ‹tokÇlaotimor anÇ Ã¡ É›sttirkmÉ›nistaÅ‹tunÉ›sítɔŋatirkítÉ›rin" + + "itÉ› ri tobagotuwalutÉ›wántanzaníukrainugandaamÉ›rikaurugwÉ›ÌusbÉ›kistaÅ‹w" + + "atikáŋsÉ›nvÇnsÇÅ‹ ri grÉ›nadínwÉ›nÇzwÉ›lazÇ bÉ› gÉ”n inÉ› a ingÉ›ríszÇ bÉ› gÉ”n" + + " inÉ› á amÉ›rikawyÉ›tnámwanwatuwalis ri futunasamÉ”ayÉ›mÉ›nmayÉ”Ìtafrik anÇ" + + " a sudzambízimbabwÉ›Ì", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x002d, 0x0039, 0x004b, 0x0051, 0x0058, + 0x0060, 0x0067, 0x0067, 0x0071, 0x0082, 0x0087, 0x0090, 0x0095, + 0x0095, 0x009e, 0x00b8, 0x00c1, 0x00cd, 0x00d5, 0x00e7, 0x00ef, + 0x00f7, 0x00ff, 0x0108, 0x0108, 0x0113, 0x011b, 0x0126, 0x0126, + 0x012e, 0x0135, 0x013b, 0x013b, 0x0143, 0x014b, 0x0151, 0x0157, + 0x0157, 0x0167, 0x0172, 0x0179, 0x017e, 0x0188, 0x0192, 0x0197, + 0x01a0, 0x01a4, 0x01ad, 0x01ad, 0x01b8, 0x01bc, 0x01c3, 0x01c3, + 0x01c3, 0x01ca, 0x01d0, 0x01d8, 0x01d8, 0x01e0, 0x01e6, 0x01ee, + // Entry 40 - 7F + 0x0201, 0x0209, 0x0209, 0x0215, 0x021d, 0x0224, 0x0224, 0x022e, + 0x0235, 0x023e, 0x023e, 0x0245, 0x024a, 0x0256, 0x0262, 0x0262, + 0x026d, 0x0274, 0x0292, 0x029b, 0x02a2, 0x02b6, 0x02b6, 0x02bb, + 0x02c4, 0x02cc, 0x02d2, 0x02d9, 0x02e3, 0x02f7, 0x02fe, 0x02fe, + 0x0309, 0x030e, 0x031d, 0x0323, 0x0323, 0x0323, 0x032b, 0x0332, + 0x0337, 0x033e, 0x033e, 0x0348, 0x034d, 0x0356, 0x0356, 0x035b, + 0x0378, 0x037d, 0x0383, 0x038e, 0x0394, 0x0394, 0x039b, 0x03a3, + 0x03ac, 0x03b2, 0x03bc, 0x03c3, 0x03cc, 0x03d2, 0x03ee, 0x03fa, + // Entry 80 - BF + 0x0403, 0x040a, 0x0413, 0x041e, 0x0423, 0x042a, 0x0435, 0x0443, + 0x044d, 0x0455, 0x045d, 0x0465, 0x0470, 0x0478, 0x047d, 0x0483, + 0x0489, 0x0492, 0x0492, 0x0492, 0x049b, 0x04a8, 0x04b3, 0x04b7, + 0x04bf, 0x04c8, 0x04c8, 0x04d9, 0x04e1, 0x04eb, 0x04f5, 0x04fb, + 0x0502, 0x050a, 0x0510, 0x0518, 0x0520, 0x0529, 0x0530, 0x0543, + 0x054b, 0x0559, 0x0563, 0x056e, 0x0580, 0x058a, 0x0590, 0x0596, + 0x059d, 0x05ac, 0x05b0, 0x05b6, 0x05bc, 0x05d5, 0x05ee, 0x05f8, + 0x0602, 0x060a, 0x0621, 0x062a, 0x0634, 0x0644, 0x064d, 0x0652, + // Entry C0 - FF + 0x065c, 0x0661, 0x0661, 0x066b, 0x0673, 0x0673, 0x0678, 0x067e, + 0x068b, 0x0699, 0x06a0, 0x06a5, 0x06ac, 0x06b4, 0x06c0, 0x06c9, + 0x06c9, 0x06d1, 0x06db, 0x06e5, 0x06ee, 0x06f5, 0x06fc, 0x06fc, + 0x0712, 0x071b, 0x071b, 0x0720, 0x0728, 0x0728, 0x073a, 0x073f, + 0x073f, 0x0743, 0x0749, 0x0755, 0x075d, 0x076f, 0x077d, 0x0785, + 0x078b, 0x0791, 0x07a5, 0x07ab, 0x07b2, 0x07ba, 0x07c0, 0x07c6, + 0x07c6, 0x07ce, 0x07d7, 0x07e3, 0x07ec, 0x0807, 0x0813, 0x0830, + 0x084d, 0x0856, 0x085d, 0x086c, 0x0872, 0x0872, 0x0879, 0x0881, + // Entry 100 - 13F + 0x0891, 0x0897, 0x08a2, + }, + }, + { // ksh + "AßensionAndorraVereinschte Arrabesche EmmirateAfjaanistahnAntigwa un Bar" + + "budaAnggwillaAlbaanijeArrmeenijeAngjoolader SödpolAjjentiinijeAmmeri" + + "kaanesch SammohaÖösterischAustraalijeArubade Ohland-EnselleAsserbaid" + + "schahnBoßnije un Herzegovinade Ensel BarbadosBangladeschBelljeBukkin" + + "na-FaaseBulljaarijeBachrainBurundidä Beninde Zint Battälmi-Ensellede" + + " BermudasBruneiBolliivijede karribbesche NederlängBrasilijede Bahama" + + "sButtaande Buvee-EnselBozwaanaWießrußlandBelizeKanadade Kokkos-Ensel" + + "ledä Konggo (Kinschasa)de Zäntraalaffrikaanesche Republikdä Konggo (" + + "Brassavill)de SchweizÄlfebeijn-Kößde Kuuk-EnselleSchiileKammeruhnSch" + + "iinaKolumbijede Klipperton-EnselKostarikaKubade kapvärdesche Enselle" + + "Curaçaode Weihnaachs-EnselZüpperede TschäscheiDoütschlandde Diego-Ga" + + "rcia-EnselDschibuttiDänemarkDominnikade Dommenekaanesche ReppublikAl" + + "ljeerijeZe’uta un MeliijaÄkwadorÄßlandÄjüpteWäß-SaharaÄritrejaSchpaa" + + "nijeÄttijoopijede Europäjesche UnijonFinnlandde Fidschi-Endellede Fa" + + "lkland-EnselleMikroneesijede Färrör-EnselleFrankrischJabuhnJruußbret" + + "tannijeJrenaadaJeorrjijeFranzüüsesch JujaanaJöönseiJaanaJibralltaaJr" + + "öhnlandJambijaJinnehaJuadeluppÄquatorial JineejaJrieschelandSöd-Jeo" + + "rjie un de södlijje Botteramms-EnselleJuwatemaalaJuhamJinneha_BißauJ" + + "ujaanaHongkongde Heart Ensel un de McDonald-EnselleHondurasKrowazije" + + "Ha’ittiUnjannde Kannaresche EnselleIndoneesijeIrrlandIßraälde Ensel " + + "MänIndijeBrettesche Besezunge em indesche OozejahnIrakPersijeIßlandI" + + "taalijeJöösehJammaikaJordaanijeJapanKeenijaKirrjiisijeKambodschaKiri" + + "batide KommooreZint Kitts un NevisNood-KorejaSöd-KorejaKuweitde Kaim" + + "an-EnselleKassakstahnLa’osLebbannonde Ensel Zint-LutschaLischteschte" + + "inSri LankaLibeerijaLesootoLittaueLuxemburschLätlandLibbijeMarokkoMo" + + "nakkoMoldaavijeet Monteneejrode Zint-Määtes-EnselMaddajaskade Machsc" + + "hall-EnselleMazedoonijeMaaliBirmaMongjoleiMakaude nöödlijje Marijann" + + "e-EnselleMachtinikMautitaanijeMongßerratMaltaMaurizijusMallediiveMal" + + "awiMäxikoMalaisijeMosambikNamiibijeNeuschottlandNijerde Noofok-Ensel" + + "NikaraaguaNikaraaguwade NederlängNorrweejeNepallNauruNiueNeuseelandO" + + "manPannamaPerruhFranzüüsesch PollineesijePapuwa NeujineejaFillipiine" + + "PakistahnPoleZint Pjäär un Mikelongde Pitkärn-EnselPochtorikoPalästi" + + "naPochtojallPallauParraguwaiKataaOzejaanije ußerhallefRehunjohnRomää" + + "nijeSärbijeRußlandRuandaSaudi Arraabijede Solomone-Ensellede Seischä" + + "lleNoodsudahnSchweedeSingjapuurde Ensel Zint Hellenaẞloveenijede Ens" + + "elle Svalbard un Jan MayenẞlovakeiSjärra LejoneSan-Marinoder Senneja" + + "llSomaalijeSürinammSödsudahnZint Tommeh un PrintschipeÄl SlavadoorZi" + + "nt MaartenSürijeẞwaasilandTristan da Cunjade Enselle Turks un Kaikos" + + "der TschaddFranzüüsesche Södsee-EnselleToojoTailandTadschikistahnTok" + + "elauOß-TimorTurkmenistahnTuneesijeTonggade TörkeiTrinidad un Tobääjo" + + "TuvaluTaiwanTansanijade Ukra’iineUjandade Vereineschte Schtaate vun " + + "Amärrika ier ußerhallef jelääje Enselschede vereineschte Schtaate vu" + + "n AmmärrikaUrrujwaiUßbeekistahnder VattikahnZint Vinzänz un de Jrena" + + "dines-EnselleVenezuelade brettesche Juffer-Ensellede ammärrikahnesch" + + "e Juffer-EnselleVijätnammVanuatuWallis un FutunaSammohaKosovoJämmeMa" + + "jottde Republik SödaffrikaSambijaSimbabwe- Jääjend onbikannt -de Ääd" + + "AffrikaNood-AmärrikaSöd-AmärrikaOzejaanijeWäß-AffrikaMeddelammärrika" + + "Oß-AffrikaNood-AffrikaMeddel-AffrikaSöd-AffrikaAmmärrikader Norde vu" + + "n Amärrikade KarribikOß-AasijeSöd-AasijeSöd-Oß-AasijeSöd-Europpade R" + + "ejjohn öm AustraalijeMellaneesijede Rejohn vun MikroneesejePolineesi" + + "jeAasijeMeddelaasijeWäß-AasijeEuroppaOß-EuroppaNood-EuroppaWäß-Europ" + + "paLateinamärrika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002f, 0x003b, 0x004d, 0x0056, 0x005f, + 0x0069, 0x0071, 0x007c, 0x0088, 0x009e, 0x00aa, 0x00b5, 0x00ba, + 0x00cb, 0x00da, 0x00f1, 0x0102, 0x010d, 0x0113, 0x0121, 0x012c, + 0x0134, 0x013b, 0x0144, 0x015d, 0x0168, 0x016e, 0x0178, 0x0192, + 0x019b, 0x01a5, 0x01ac, 0x01ba, 0x01c2, 0x01cf, 0x01d5, 0x01db, + 0x01ec, 0x0202, 0x0225, 0x023c, 0x0246, 0x0256, 0x0265, 0x026c, + 0x0275, 0x027c, 0x0285, 0x0298, 0x02a1, 0x02a5, 0x02bd, 0x02c5, + 0x02d8, 0x02e0, 0x02ee, 0x02fa, 0x030f, 0x0319, 0x0322, 0x032b, + // Entry 40 - 7F + 0x0348, 0x0352, 0x0365, 0x036d, 0x0375, 0x037d, 0x0389, 0x0392, + 0x039c, 0x03a8, 0x03bf, 0x03c7, 0x03d9, 0x03ec, 0x03f8, 0x040b, + 0x0415, 0x041b, 0x042c, 0x0434, 0x043d, 0x0453, 0x045c, 0x0461, + 0x046b, 0x0475, 0x047c, 0x0483, 0x048c, 0x049f, 0x04ab, 0x04da, + 0x04e5, 0x04ea, 0x04f8, 0x04ff, 0x0507, 0x052c, 0x0534, 0x053d, + 0x0546, 0x054c, 0x0562, 0x056d, 0x0574, 0x057c, 0x0589, 0x058f, + 0x05b8, 0x05bc, 0x05c3, 0x05ca, 0x05d2, 0x05da, 0x05e2, 0x05ec, + 0x05f1, 0x05f8, 0x0603, 0x060d, 0x0615, 0x0620, 0x0633, 0x063e, + // Entry 80 - BF + 0x0649, 0x064f, 0x0660, 0x066b, 0x0672, 0x067b, 0x0690, 0x069e, + 0x06a7, 0x06b0, 0x06b7, 0x06be, 0x06c9, 0x06d1, 0x06d8, 0x06df, + 0x06e6, 0x06f0, 0x06fe, 0x0714, 0x071e, 0x0733, 0x073e, 0x0743, + 0x0748, 0x0751, 0x0756, 0x0776, 0x077f, 0x078b, 0x0796, 0x079b, + 0x07a5, 0x07af, 0x07b5, 0x07bc, 0x07c5, 0x07cd, 0x07d6, 0x07e3, + 0x07e8, 0x07f7, 0x0801, 0x080c, 0x0819, 0x0822, 0x0828, 0x082d, + 0x0831, 0x083b, 0x083f, 0x0846, 0x084c, 0x0867, 0x0878, 0x0882, + 0x088b, 0x088f, 0x08a7, 0x08b8, 0x08c2, 0x08cc, 0x08d6, 0x08dc, + // Entry C0 - FF + 0x08e6, 0x08eb, 0x0901, 0x090a, 0x0915, 0x091d, 0x0925, 0x092b, + 0x093a, 0x094d, 0x095b, 0x0965, 0x096d, 0x0977, 0x098c, 0x0998, + 0x09b8, 0x09c2, 0x09d0, 0x09da, 0x09e7, 0x09f0, 0x09f9, 0x0a03, + 0x0a1d, 0x0a2a, 0x0a36, 0x0a3d, 0x0a49, 0x0a59, 0x0a73, 0x0a7e, + 0x0a9d, 0x0aa2, 0x0aa9, 0x0ab7, 0x0abe, 0x0ac7, 0x0ad4, 0x0add, + 0x0ae3, 0x0aed, 0x0b02, 0x0b08, 0x0b0e, 0x0b17, 0x0b25, 0x0b2b, + 0x0b75, 0x0b9c, 0x0ba4, 0x0bb1, 0x0bbe, 0x0be4, 0x0bed, 0x0c09, + 0x0c2c, 0x0c36, 0x0c3d, 0x0c4d, 0x0c54, 0x0c5a, 0x0c60, 0x0c66, + // Entry 100 - 13F + 0x0c7d, 0x0c84, 0x0c8c, 0x0ca3, 0x0cab, 0x0cb2, 0x0cc0, 0x0cce, + 0x0cd8, 0x0ce5, 0x0cf5, 0x0d00, 0x0d0c, 0x0d1a, 0x0d26, 0x0d30, + 0x0d47, 0x0d52, 0x0d5c, 0x0d67, 0x0d76, 0x0d82, 0x0d9c, 0x0da8, + 0x0dc2, 0x0dcd, 0x0dd3, 0x0ddf, 0x0deb, 0x0df2, 0x0dfd, 0x0e09, + 0x0e16, 0x0e25, + }, + }, + { // kw + "Rywvaneth Unys", + []uint16{ // 83 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000e, + }, + }, + { // ky + kyRegionStr, + kyRegionIdx, + }, + { // lag + "AndóraÉ„temi wa KɨaráabuAfuganisitáaniAntigúua na BaribúudaAnguíilaAlubán" + + "iaAriméniaAngóolaAjentíinaSamóoa ya AmerɨÌkaÃusitiriaAusiteréeliaArú" + + "ubaAzabajáaniBósiniaBabadóosiBangaladéeshiÉ„beligíijiBukinafáasoBulig" + + "aríaBaharéeniBurúundiBeníiniBerimúudaBurunéeiBolíviaBrasíiliBaháamaB" + + "utáaniBotiswáanaBelarúusiBelíiseKánadaJamuhúuri ya Kɨdemokurasía ya " + + "KóongoJuhúuri ya Afɨrɨka ya katɨ katɨKóongoUswíisiIvori KositiVisíiw" + + "a vya KúukuChíileKamerúuniChíinaKolómbiaKósita RɨÌɨkaKyúubaKepuvéede" + + "KupuróosiJamuhúuri ya ChéekiÉ„jerumáaniJibúutiDenimakiDomínɨkaJamuhúu" + + "ri ya DominɨkaAlijériaÃkwadoEstoníaMísiriEritereaHisipániaÉ„habéeshiU" + + "fíiniFíijiVisíiwa vya FakulandiMikironésiaÉ„faráansaGabóoniɄɨngeréesa" + + "GirenáadaJójiaGwiyáana yʉ É„faráansaGáanaJiburálitaGiriniláandiGámbia" + + "GíineGwadelúupeGíine IkwéetaUgiríkiGwatemáalaGwaniGíine BisáauGuyáan" + + "aHonduráasiKoréshiaHaíitiHungáriaIndonésiaAyaláandiIsiraéeliÃndiaÆ—sɨ" + + " yʉ Ʉɨngeréesa irivii ra HíindiIráakiÉ„ajéemiAisiláandiItáliaJamáikaJ" + + "ódaniJapáaniKéenyaKirigisitáaniKambódiaKiribáatiKomóoroMʉtakatíifu " + + "kitisi na NevíisiKoréa yʉ ʉtʉrʉkoKoréa ya SaameKʉwáitiVisíiwa vya Ka" + + "yimaniKazakasitáaniLaóosiLebanóoniMʉtakatíifu LusíiaLishentéeniSiril" + + "áankaLiibériaLesóotoLisuániaLasembáagiLativiaLíbiaMoróokoMonáakoMol" + + "idóovaBukíiniVisíiwa vya MarisháaliMasedóniaMáaliMiáamaMongóliaVisiw" + + "a vya Mariana vya KaskaziniMaritiníikiMoritániaMonteráatiMálitaMoríi" + + "siModíivuMaláawiMekisikoMaleísiaMusumbíijiNamíbiaKaledónia IfyaNíija" + + "Kisíiwa cha NofifóokiNiijériaNikarágʉaÉ„holáanziNorweNepáaliNaúuruNiú" + + "ueNyuzílandiÓmaniPanáamaPéeruPolinésia yʉ É„faráansaPapúuaUfilipíinoP" + + "akisitáaniPólandiMʉtakatíifu Peéteri na MɨkaéeliPatikaíriniPwetorɨÌɨ" + + "koMweemberera wa kʉmweeri wa GáazaÉ„réenoPaláauParaguáaiKatáariReyuni" + + "óoniRomaníiaUrúusiRwáandaSaudíia ArabíiaVisíiwa vya SolomóoniShelis" + + "héeliSudáaniUswíidiSingapooMʉtakatíifu HeléenaSulovéniaSulováakiaSer" + + "aleóoniSamaríinoSenegáaliSomáliaSurináamuSao Tóome na PirinsipeElisa" + + "livadoSíriaÉ„swáaziVisíiwa vya Turíiki na KaíikoCháadiTóogoTáilandiTa" + + "jikisitáaniTokeláauTimóori yi ItʉʉmbaUturukimenisitáaniTunísiaTóonga" + + "UturúukiTiriníida ya TobáagoTuváaluTaiwáaniTaansaníaÉ„kɨréeniÉ„gáandaA" + + "merɨkaUruguáaiUsibekisitáaniVatikáaniMʉtakatíifu Viséenti na Gernadí" + + "iniVenezuéelaVisíiwa vya Vigíini vya ɄɨngeréesaVisíiwa vya Vigíini v" + + "ya AmerɨÌkaVietináamuVanuáatuWalíisi na FutúunaSamóoaYémeniMayóoteAf" + + "ɨrɨka ya SaameSámbiaSimbáabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001b, 0x002a, 0x0041, 0x004a, 0x0053, + 0x005c, 0x0064, 0x0064, 0x006e, 0x0083, 0x008d, 0x009a, 0x00a1, + 0x00a1, 0x00ac, 0x00b4, 0x00be, 0x00cc, 0x00d8, 0x00e4, 0x00ee, + 0x00f8, 0x0101, 0x0109, 0x0109, 0x0113, 0x011c, 0x0124, 0x0124, + 0x012d, 0x0135, 0x013d, 0x013d, 0x0148, 0x0152, 0x015a, 0x0161, + 0x0161, 0x0189, 0x01ad, 0x01b4, 0x01bc, 0x01c8, 0x01db, 0x01e2, + 0x01ec, 0x01f3, 0x01fc, 0x01fc, 0x020d, 0x0214, 0x021e, 0x021e, + 0x021e, 0x0228, 0x023d, 0x0249, 0x0249, 0x0251, 0x0259, 0x0263, + // Entry 40 - 7F + 0x027a, 0x0283, 0x0283, 0x028a, 0x0292, 0x0299, 0x0299, 0x02a1, + 0x02ab, 0x02b6, 0x02b6, 0x02bd, 0x02c3, 0x02d9, 0x02e5, 0x02e5, + 0x02f0, 0x02f8, 0x0305, 0x030f, 0x0315, 0x032e, 0x032e, 0x0334, + 0x033f, 0x034c, 0x0353, 0x0359, 0x0364, 0x0373, 0x037b, 0x037b, + 0x0386, 0x038b, 0x0399, 0x03a1, 0x03a1, 0x03a1, 0x03ac, 0x03b5, + 0x03bc, 0x03c5, 0x03c5, 0x03cf, 0x03d9, 0x03e3, 0x03e3, 0x03e9, + 0x0412, 0x0419, 0x0422, 0x042d, 0x0434, 0x0434, 0x043c, 0x0443, + 0x044b, 0x0452, 0x0460, 0x0469, 0x0473, 0x047b, 0x049b, 0x04b0, + // Entry 80 - BF + 0x04bf, 0x04c8, 0x04dd, 0x04eb, 0x04f2, 0x04fc, 0x0511, 0x051d, + 0x0528, 0x0531, 0x0539, 0x0542, 0x054d, 0x0554, 0x055a, 0x0562, + 0x056a, 0x0574, 0x0574, 0x0574, 0x057c, 0x0594, 0x059e, 0x05a4, + 0x05ab, 0x05b4, 0x05b4, 0x05d4, 0x05e0, 0x05ea, 0x05f5, 0x05fc, + 0x0604, 0x060c, 0x0614, 0x061c, 0x0625, 0x0630, 0x0638, 0x0647, + 0x064d, 0x0664, 0x066d, 0x0678, 0x0683, 0x0688, 0x0690, 0x0697, + 0x069d, 0x06a8, 0x06ae, 0x06b6, 0x06bc, 0x06d6, 0x06dd, 0x06e8, + 0x06f4, 0x06fc, 0x0720, 0x072c, 0x073a, 0x075c, 0x0764, 0x076b, + // Entry C0 - FF + 0x0775, 0x077d, 0x077d, 0x0788, 0x0791, 0x0791, 0x0798, 0x07a0, + 0x07b1, 0x07c8, 0x07d4, 0x07dc, 0x07e4, 0x07ec, 0x0802, 0x080c, + 0x080c, 0x0817, 0x0822, 0x082c, 0x0836, 0x083e, 0x0848, 0x0848, + 0x085f, 0x086a, 0x086a, 0x0870, 0x0879, 0x0879, 0x0899, 0x08a0, + 0x08a0, 0x08a6, 0x08af, 0x08bd, 0x08c6, 0x08db, 0x08ee, 0x08f6, + 0x08fd, 0x0906, 0x091c, 0x0924, 0x092d, 0x0937, 0x0942, 0x094b, + 0x094b, 0x0953, 0x095c, 0x096b, 0x0975, 0x099b, 0x09a6, 0x09cd, + 0x09f1, 0x09fc, 0x0a05, 0x0a19, 0x0a20, 0x0a20, 0x0a27, 0x0a2f, + // Entry 100 - 13F + 0x0a41, 0x0a48, 0x0a52, + }, + }, + { // lb + "AscensionAndorraVereenegt Arabesch EmiraterAfghanistanAntigua a BarbudaA" + + "nguillaAlbanienArmenienAngolaAntarktisArgentinienAmerikanesch-SamoaÉ" + + "isträichAustralienArubaÃ…landinselenAserbaidschanBosnien an Herzegowi" + + "naBarbadosBangladeschBelschBurkina FasoBulgarienBahrainBurundiBeninS" + + "aint-BarthélemyBermudaBruneiBolivienKaribescht HollandBrasilienBaham" + + "asBhutanBouvetinselBotsuanaWäissrusslandBelizeKanadaKokosinselenKong" + + "o-KinshasaZentralafrikanesch RepublikKongo-BrazzavilleSchwäizCôte d’" + + "IvoireCookinselenChileKamerunChinaKolumbienClipperton-InselCosta Ric" + + "aKubaKap VerdeCuraçaoChrëschtdagsinselZypernTschechienDäitschlandDie" + + "go GarciaDschibutiDänemarkDominicaDominikanesch RepublikAlgerienCeut" + + "a a MelillaEcuadorEstlandEgyptenWestsaharaEritreaSpanienEthiopienEur" + + "opäesch UniounFinnlandFidschiFalklandinselenMikronesienFäröerFrankrä" + + "ichGabunGroussbritannienGrenadaGeorgienGuayaneGuernseyGhanaGibraltar" + + "GrönlandGambiaGuineaGuadeloupeEquatorialguineaGriichelandSüdgeorgien" + + " an déi Südlech SandwichinselenGuatemalaGuamGuinea-BissauGuyanaSpezi" + + "alverwaltungszon Hong KongHeard- a McDonald-InselenHondurasKroatienH" + + "aitiUngarnKanaresch InselenIndonesienIrlandIsraelIsle of ManIndienBr" + + "itescht Territorium am Indeschen OzeanIrakIranIslandItalienJerseyJam" + + "aikaJordanienJapanKeniaKirgisistanKambodschaKiribatiKomorenSt. Kitts" + + " an NevisNordkoreaSüdkoreaKuwaitKaimaninselenKasachstanLaosLibanonSt" + + ". LuciaLiechtensteinSri LankaLiberiaLesothoLitauenLëtzebuergLettland" + + "LibyenMarokkoMonacoMoldawienMontenegroSt. MartinMadagaskarMarshallin" + + "selenMazedonienMaliMyanmarMongoleiSpezialverwaltungszon MacauNërdlec" + + "h MarianenMartiniqueMauretanienMontserratMaltaMauritiusMaldivenMalaw" + + "iMexikoMalaysiaMosambikNamibiaNeikaledonienNigerNorfolkinselNigeriaN" + + "icaraguaHollandNorwegenNepalNauruNiueNeiséilandOmanPanamaPeruFranséi" + + "sch-PolynesienPapua-NeiguineaPhilippinnenPakistanPolenSt. Pierre a M" + + "iquelonPitcairninselenPuerto RicoPalestinensesch AutonomiegebidderPo" + + "rtugalPalauParaguayKatarBaussecht OzeanienRéunionRumänienSerbienRuss" + + "landRuandaSaudi-ArabienSalomonenSeychellenSudanSchwedenSingapurSt. H" + + "elenaSlowenienSvalbard a Jan MayenSlowakeiSierra LeoneSan MarinoSene" + + "galSomaliaSurinameSüdsudanSão Tomé a PríncipeEl SalvadorSint Maarten" + + "SyrienSwasilandTristan da CunhaTurks- a CaicosinselenTschadFranséisc" + + "h Süd- an AntarktisgebidderTogoThailandTadschikistanTokelauOsttimorT" + + "urkmenistanTunesienTongaTierkeiTrinidad an TobagoTuvaluTaiwanTansani" + + "aUkrainUgandaAmerikanesch-OzeanienVereenegt Staate vun AmerikaUrugua" + + "yUsbekistanVatikanstadSt. Vincent an d’GrenadinnenVenezuelaBritesch " + + "JoffereninselenAmerikanesch JoffereninselenVietnamVanuatuWallis a Fu" + + "tunaSamoaKosovoJemenMayotteSüdafrikaSambiaSimbabweOnbekannt RegiounW" + + "eltAfrikaNordamerikaSüdamerikaOzeanienWestafrikaMëttelamerikaOstafri" + + "kaNordafrikaZentralafrikaSüdlecht AfrikaAmerikaNërdlecht AmerikaKari" + + "bikOstasienSüdasienSüdostasienSüdeuropaAustralien an NeiséilandMelan" + + "esienMikronesescht InselgebittPolynesienAsienZentralasienWestasienEu" + + "ropaOsteuropaNordeuropaWesteuropaLatäinamerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002b, 0x0036, 0x0047, 0x004f, 0x0057, + 0x005f, 0x0065, 0x006e, 0x0079, 0x008b, 0x0096, 0x00a0, 0x00a5, + 0x00b2, 0x00bf, 0x00d5, 0x00dd, 0x00e8, 0x00ee, 0x00fa, 0x0103, + 0x010a, 0x0111, 0x0116, 0x0127, 0x012e, 0x0134, 0x013c, 0x014e, + 0x0157, 0x015e, 0x0164, 0x016f, 0x0177, 0x0185, 0x018b, 0x0191, + 0x019d, 0x01ab, 0x01c6, 0x01d7, 0x01df, 0x01ef, 0x01fa, 0x01ff, + 0x0206, 0x020b, 0x0214, 0x0224, 0x022e, 0x0232, 0x023b, 0x0243, + 0x0255, 0x025b, 0x0265, 0x0271, 0x027d, 0x0286, 0x028f, 0x0297, + // Entry 40 - 7F + 0x02ad, 0x02b5, 0x02c4, 0x02cb, 0x02d2, 0x02d9, 0x02e3, 0x02ea, + 0x02f1, 0x02fa, 0x030c, 0x0314, 0x031b, 0x032a, 0x0335, 0x033d, + 0x0348, 0x034d, 0x035d, 0x0364, 0x036c, 0x0373, 0x037b, 0x0380, + 0x0389, 0x0392, 0x0398, 0x039e, 0x03a8, 0x03b8, 0x03c3, 0x03f0, + 0x03f9, 0x03fd, 0x040a, 0x0410, 0x042f, 0x0448, 0x0450, 0x0458, + 0x045d, 0x0463, 0x0474, 0x047e, 0x0484, 0x048a, 0x0495, 0x049b, + 0x04c3, 0x04c7, 0x04cb, 0x04d1, 0x04d8, 0x04de, 0x04e5, 0x04ee, + 0x04f3, 0x04f8, 0x0503, 0x050d, 0x0515, 0x051c, 0x052e, 0x0537, + // Entry 80 - BF + 0x0540, 0x0546, 0x0553, 0x055d, 0x0561, 0x0568, 0x0571, 0x057e, + 0x0587, 0x058e, 0x0595, 0x059c, 0x05a7, 0x05af, 0x05b5, 0x05bc, + 0x05c2, 0x05cb, 0x05d5, 0x05df, 0x05e9, 0x05f8, 0x0602, 0x0606, + 0x060d, 0x0615, 0x0630, 0x0642, 0x064c, 0x0657, 0x0661, 0x0666, + 0x066f, 0x0677, 0x067d, 0x0683, 0x068b, 0x0693, 0x069a, 0x06a7, + 0x06ac, 0x06b8, 0x06bf, 0x06c8, 0x06cf, 0x06d7, 0x06dc, 0x06e1, + 0x06e5, 0x06f0, 0x06f4, 0x06fa, 0x06fe, 0x0714, 0x0723, 0x072f, + 0x0737, 0x073c, 0x0751, 0x0760, 0x076b, 0x078c, 0x0794, 0x0799, + // Entry C0 - FF + 0x07a1, 0x07a6, 0x07b8, 0x07c0, 0x07c9, 0x07d0, 0x07d8, 0x07de, + 0x07eb, 0x07f4, 0x07fe, 0x0803, 0x080b, 0x0813, 0x081d, 0x0826, + 0x083a, 0x0842, 0x084e, 0x0858, 0x085f, 0x0866, 0x086e, 0x0877, + 0x088d, 0x0898, 0x08a4, 0x08aa, 0x08b3, 0x08c3, 0x08d9, 0x08df, + 0x0905, 0x0909, 0x0911, 0x091e, 0x0925, 0x092d, 0x0939, 0x0941, + 0x0946, 0x094d, 0x095f, 0x0965, 0x096b, 0x0973, 0x0979, 0x097f, + 0x0994, 0x09b0, 0x09b7, 0x09c1, 0x09cc, 0x09ea, 0x09f3, 0x0a0b, + 0x0a27, 0x0a2e, 0x0a35, 0x0a44, 0x0a49, 0x0a4f, 0x0a54, 0x0a5b, + // Entry 100 - 13F + 0x0a65, 0x0a6b, 0x0a73, 0x0a84, 0x0a88, 0x0a8e, 0x0a99, 0x0aa4, + 0x0aac, 0x0ab6, 0x0ac4, 0x0acd, 0x0ad7, 0x0ae4, 0x0af4, 0x0afb, + 0x0b0d, 0x0b14, 0x0b1c, 0x0b25, 0x0b31, 0x0b3b, 0x0b54, 0x0b5e, + 0x0b77, 0x0b81, 0x0b86, 0x0b92, 0x0b9b, 0x0ba1, 0x0baa, 0x0bb4, + 0x0bbe, 0x0bcc, + }, + }, + { // lg + "AndoraEmireetiAfaganisitaniAntigwa ne BarabudaAngwilaAlibaniyaArameniyaA" + + "ngolaArigentinaSamowa omumerikaAwusituriyaAwusitureliyaArubaAzerebay" + + "ijaaniBoziniya HezegovinaBarabadosiBangaladesiBubirigiBurukina FasoB" + + "ulugariyaBaareeniBurundiBeniniBeremudaBurunayiBoliviyaBuraziiriBaham" + + "asiButaaniBotiswanaBelarusiBelizeKanadaKongo - ZayireLipubulika eya " + + "SenturafirikiKongoSwitizirandiKote DivwaBizinga bya KkukiCileKameruu" + + "niCayinaKolombyaKosita RikaCubaBizinga by’e Kepu VerediSipuriyaLipub" + + "ulika ya CeekaBudaakiJjibutiDenimaakaDominikaLipubulika ya DominikaA" + + "ligeryaEkwadoEsitoniyaMisiriEritureyaSipeyiniEsyopyaFinilandiFijiBiz" + + "inga by’eFalikalandiMikuronezyaBufalansaGaboniBungerezaGurenadaGyogy" + + "aGuyana enfalansaGanaGiburalitaGurenelandiGambyaGiniGwadalupeGayana " + + "ey’oku ekwetaBugereeki/BuyonaaniGwatemalaGwamuGini-BisawuGayanaHundu" + + "rasiKurowesyaHayitiHangareYindonezyaAyalandiYisirayeriBuyindiBizinga" + + " by’eCagoYiraakaYiraaniAyisirandiYitaleJamayikaYorodaniJapaniKenyaKi" + + "rigizisitaaniKambodyaKiribatiBizinga by’eKomoroSenti Kitisi ne Nevis" + + "iKoreya ey’omumambukaKoreya ey’omumaserengetaKuwetiBizinga ebya Kayi" + + "maaniKazakisitaaniLawosiLebanoniSenti LuciyaLicitensitayiniSirilanka" + + "LiberyaLesosoLisuwenyaLukisembaagaLativyaLibyaMorokoMonakoMolodovaMa" + + "dagasikaBizinga bya MarisoMasedoniyaMaliMyanimaMongoliyaBizinga bya " + + "Mariyana eby’omumambukaMaritiniikiMawulitenyaMonteseraatiMalitaMawul" + + "isyasiBizinga by’eMalidiveMalawiMekisikoMalezyaMozambiikiNamibiyaKal" + + "edonya mupyaNijeKizinga ky’eNorofokoNayijeryaNikaraguwaHolandiNoweNe" + + "paloNawuruNiyuweNiyuziirandiOmaaniPanamaPeruPolinesiya enfalansaPapw" + + "a NyuginiBizinga bya FiripinoPakisitaaniPolandiSenti Piyere ne Mikel" + + "oniPitikeeniPotorikoPalesitayiniPotugaaliPalawuParagwayiKataaLeyunyo" + + "niLomaniyaLasaRwandaSawudarebya - BuwarabuBizanga by’eSolomooniSeser" + + "eSudaaniSwideniSingapowaSenti HerenaSirovenyaSirovakyaSiyeralewoneSa" + + "nimarinoSenegaaloSomaliyaSurinaamuSanitome ne PurincipeEl salivadoSi" + + "riyaSwazirandiBizinga by’eTaaka ne KayikosiCaadiTogoTayirandiTajikis" + + "itaaniTokelawuTimowaTakimenesitaaniTunisyaTongaTtakeTurindaadi ne To" + + "bagoTuvaluTayiwaniTanzaniyaYukurayineYugandaAmerikaWurugwayiWuzibeki" + + "sitaaniVatikaaniSenti Vinsenti ne GurendadiiniVenzweraBizinga ebya V" + + "irigini ebitwalibwa BungerezaBizinga bya Virigini eby’AmerikaVyetina" + + "amuVanawuwatuWalisi ne FutunaSamowaYemeniMayotteSawusafirikaZambyaZi" + + "mbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x000e, 0x001b, 0x002e, 0x0035, 0x003e, + 0x0047, 0x004d, 0x004d, 0x0057, 0x0067, 0x0072, 0x007f, 0x0084, + 0x0084, 0x0092, 0x00a5, 0x00af, 0x00ba, 0x00c2, 0x00cf, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f6, 0x00fe, 0x0106, 0x0106, + 0x010f, 0x0117, 0x011e, 0x011e, 0x0127, 0x012f, 0x0135, 0x013b, + 0x013b, 0x0149, 0x0165, 0x016a, 0x0176, 0x0180, 0x0191, 0x0195, + 0x019e, 0x01a4, 0x01ac, 0x01ac, 0x01b7, 0x01bb, 0x01d5, 0x01d5, + 0x01d5, 0x01dd, 0x01f0, 0x01f7, 0x01f7, 0x01fe, 0x0207, 0x020f, + // Entry 40 - 7F + 0x0225, 0x022d, 0x022d, 0x0233, 0x023c, 0x0242, 0x0242, 0x024b, + 0x0253, 0x025a, 0x025a, 0x0263, 0x0267, 0x0280, 0x028b, 0x028b, + 0x0294, 0x029a, 0x02a3, 0x02ab, 0x02b1, 0x02c1, 0x02c1, 0x02c5, + 0x02cf, 0x02da, 0x02e0, 0x02e4, 0x02ed, 0x0303, 0x0316, 0x0316, + 0x031f, 0x0324, 0x032f, 0x0335, 0x0335, 0x0335, 0x033e, 0x0347, + 0x034d, 0x0354, 0x0354, 0x035e, 0x0366, 0x0370, 0x0370, 0x0377, + 0x0389, 0x0390, 0x0397, 0x03a1, 0x03a7, 0x03a7, 0x03af, 0x03b7, + 0x03bd, 0x03c2, 0x03d1, 0x03d9, 0x03e1, 0x03f5, 0x040b, 0x0421, + // Entry 80 - BF + 0x043b, 0x0441, 0x0457, 0x0464, 0x046a, 0x0472, 0x047e, 0x048d, + 0x0496, 0x049d, 0x04a3, 0x04ac, 0x04b8, 0x04bf, 0x04c4, 0x04ca, + 0x04d0, 0x04d8, 0x04d8, 0x04d8, 0x04e2, 0x04f4, 0x04fe, 0x0502, + 0x0509, 0x0512, 0x0512, 0x0537, 0x0542, 0x054d, 0x0559, 0x055f, + 0x056a, 0x0580, 0x0586, 0x058e, 0x0595, 0x059f, 0x05a7, 0x05b6, + 0x05ba, 0x05d0, 0x05d9, 0x05e3, 0x05ea, 0x05ee, 0x05f4, 0x05fa, + 0x0600, 0x060c, 0x0612, 0x0618, 0x061c, 0x0630, 0x063d, 0x0651, + 0x065c, 0x0663, 0x067b, 0x0684, 0x068c, 0x0698, 0x06a1, 0x06a7, + // Entry C0 - FF + 0x06b0, 0x06b5, 0x06b5, 0x06be, 0x06c6, 0x06c6, 0x06ca, 0x06d0, + 0x06e6, 0x06fd, 0x0703, 0x070a, 0x0711, 0x071a, 0x0726, 0x072f, + 0x072f, 0x0738, 0x0744, 0x074e, 0x0757, 0x075f, 0x0768, 0x0768, + 0x077d, 0x0788, 0x0788, 0x078e, 0x0798, 0x0798, 0x07b7, 0x07bc, + 0x07bc, 0x07c0, 0x07c9, 0x07d6, 0x07de, 0x07e4, 0x07f3, 0x07fa, + 0x07ff, 0x0804, 0x0818, 0x081e, 0x0826, 0x082f, 0x0839, 0x0840, + 0x0840, 0x0847, 0x0850, 0x085f, 0x0868, 0x0886, 0x088e, 0x08b9, + 0x08db, 0x08e5, 0x08ef, 0x08ff, 0x0905, 0x0905, 0x090b, 0x0912, + // Entry 100 - 13F + 0x091e, 0x0924, 0x092c, + }, + }, + { // lkt + "UÅ‹Äíyapi MakȟóÄhePÈŸeÄhókaÅ‹haÅ‹ska MakȟóÄheIyášiÄa MakȟóÄheSpayólaÈŸÄe MakÈŸ" + + "óÄheKisúŋla MakȟóÄheSpayóla MakȟóÄheMílahaÅ‹ska TÈŸamákÈŸoÄheMakȟásito" + + "mniHásapa MakȟáwitaKhéya WítaHazíla MakȟáwitaWašíÄu Makȟáwita", + []uint16{ // 286 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0017, + 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, + 0x0017, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + // Entry 40 - 7F + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + // Entry 80 - BF + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, 0x007b, + 0x007b, 0x007b, 0x007b, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + // Entry C0 - FF + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00ab, + // Entry 100 - 13F + 0x00ab, 0x00ab, 0x00ab, 0x00ab, 0x00b9, 0x00cc, 0x00cc, 0x00cc, + 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00cc, 0x00d8, + 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, 0x00d8, + 0x00d8, 0x00d8, 0x00eb, 0x00eb, 0x00eb, 0x0100, + }, + }, + { // ln + "AndorÉ›LÉ›mila alaboAfiganisitáAntiga mpé BarbudaAngiyÉ›AlibaniAmÉ›niAngólaA" + + "ntarctiqueArizantinÉ›Samoa ya AmerikiOtilisiOsitáliArubaAzÉ›lÉ›baizáBos" + + "ini mpé HezegovineBarÉ›badÉ›BengalidÉ›siBelezikiBukina FasoBiligariBahr" + + "É›nÉ›BurundiBenÉ›BermudaBrineyiBoliviBrezílÉ›BahamasÉ›ButániBotswanaByel" + + "orisiBelizÉ›KanadaRepibiki demokratiki ya KongóRepibiki ya Afríka ya " + + "KátiKongoSwisÉ›KotídivualÉ›Bisanga bya KookÉ›SíliKamÉ›runeSinÉ›KolombiKos" + + "itarikaKibaBisanga bya KapevÉ›rÉ›SípÉ›lÉ›Repibiki TsekÉ›AlemaniDzibutiDan" + + "É›marikeDomínikeRepibiki ya DomínikÉ›AlizÉ›riEkwatÉ›ÌlÉ›EsitoniEzípiteEl" + + "itelÉ›EsipanyeEtsíopiFilandÉ›FidziBisanga bya MaluniMikroneziFalánsÉ›Ga" + + "bÉ”AngÉ›lÉ›tÉ›ÌlÉ›GelenadÉ›ZorziGiyanÉ› ya FalánsÉ›GuerneseyGanaZibatalÉ›Gowe" + + "landeGambiGinÉ›GwadÉ›lupÉ›GinÉ›ÌkwatÉ›ÌlÉ›GelekiÃŽles de Géorgie du Sud et " + + "Sandwich du SudGwatémalaGwamÉ›GinÉ›bisauGiyaneIle Heard et Iles McDona" + + "ldOndurasÉ›KrowasiAyitiOngiliIndoneziIrelandÉ›IsirayelÉ›ÃndÉ›Mabelé ya A" + + "ngÉ›lÉ›tÉ›ÌlÉ› na mbú ya IndiyaIrakiIrâIsilandÉ›ItaliZamaikiZÉ”daniZapÉ”Ken" + + "yaKigizisitáKambodzaKiribatiKomorÉ›Sántu krístofe mpé Nevɛ̀sKorÉ› ya n" + + "É”ÌrdiKorÉ› ya súdiKowetiBisanga bya KayímaKazakisitáLawosiLibáSántu " + + "lisiLishÉ›teniSirilankaLibériyaLesotoLitwaniLikisambuluLetoniLibíMaro" + + "kÉ›MonakoMolidaviMonténégroMadagasikariBisanga bya MarishalÉ›MasedwanÉ›" + + "MalíBirmanieMongolíBisanga bya MarianÉ› ya nÉ”ÌrdiMartinikiMoritaniMÉ”s" + + "eraMalitÉ›MorisÉ›MadívÉ›MalawiMeksikeMaleziMozambíkiNamibiKaledoni ya s" + + "ikaNizÉ›rÉ›Esanga NorfokÉ›NizeryaNikaragwaOlandÉ›NorivezÉ›NepálÉ›NauruNyué" + + "ZelandÉ› ya sikaOmánÉ›PanamaPéruPolinezi ya FalánsÉ›Papwazi GinÉ› ya sik" + + "aFilipinÉ›PakisitáPoloniSántu pététo mpé MikelÉ”PikairniPÉ”torikoPalÉ›si" + + "nePutúlugÉ›siPalauPalagweiKatariLenyoRomaniSerbieRisíRwandaAlabi Sawu" + + "ditÉ›Bisanga SolomÉ”SÉ›shÉ›lÉ›SudáSwédÉ›SingapurÉ›Sántu eleniSiloveniSilova" + + "kiSiera LeonÉ›Sántu MarinÉ›SenegalÉ›SomaliSurinamÉ›Sao Tomé mpé PresipÉ›S" + + "avadÉ”rÉ›SiríSwazilandiBisanga bya Turki mpé KaikoTsádiTerres australe" + + "s et antarctiques françaisesTogoTailandÉ›TazikisitáTokelauTimorÉ› ya M" + + "oniÉ›lÉ›TikÉ›ménisitáTiniziTongaTilikiTinidadÉ› mpé TobagoTuvaluTaiwanin" + + "TanzaniIkrÉ›niUgandaAmerikiIrigweiUzibÉ›kisitáVatikáSántu vesá mpé Gel" + + "enadinÉ›VenézuelaBisanga bya Vierzi ya AngÉ›lÉ›tÉ›ÌlÉ›Bisanga bya Vierzi " + + "ya AmerikiViyetinamÉ›VanuatuWalisÉ› mpé FutunaSamoaYemÉ›nÉ›MayotÉ›Afríka " + + "ya SúdiZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0014, 0x0020, 0x0033, 0x003a, 0x0041, + 0x0047, 0x004e, 0x0059, 0x0064, 0x0074, 0x007b, 0x0083, 0x0088, + 0x0088, 0x0095, 0x00ab, 0x00b5, 0x00c1, 0x00c9, 0x00d4, 0x00dc, + 0x00e5, 0x00ec, 0x00f1, 0x00f1, 0x00f8, 0x00ff, 0x0105, 0x0105, + 0x010e, 0x0117, 0x011e, 0x011e, 0x0126, 0x012f, 0x0136, 0x013c, + 0x013c, 0x015a, 0x0176, 0x017b, 0x0181, 0x018e, 0x01a0, 0x01a5, + 0x01ae, 0x01b3, 0x01ba, 0x01ba, 0x01c4, 0x01c8, 0x01de, 0x01de, + 0x01de, 0x01e7, 0x01f6, 0x01fd, 0x01fd, 0x0204, 0x020f, 0x0218, + // Entry 40 - 7F + 0x022e, 0x0236, 0x0236, 0x0242, 0x0249, 0x0251, 0x0251, 0x0259, + 0x0261, 0x0269, 0x0269, 0x0271, 0x0276, 0x0288, 0x0291, 0x0291, + 0x029a, 0x029f, 0x02af, 0x02b8, 0x02bd, 0x02d1, 0x02da, 0x02de, + 0x02e7, 0x02f0, 0x02f5, 0x02fa, 0x0305, 0x0317, 0x031d, 0x0348, + 0x0352, 0x0358, 0x0362, 0x0368, 0x0368, 0x0382, 0x038b, 0x0392, + 0x0397, 0x039d, 0x039d, 0x03a5, 0x03ae, 0x03b8, 0x03b8, 0x03be, + 0x03eb, 0x03f0, 0x03f4, 0x03fd, 0x0402, 0x0402, 0x0409, 0x0410, + 0x0415, 0x041a, 0x0425, 0x042d, 0x0435, 0x043c, 0x045a, 0x046b, + // Entry 80 - BF + 0x0479, 0x047f, 0x0492, 0x049d, 0x04a3, 0x04a8, 0x04b3, 0x04bd, + 0x04c6, 0x04cf, 0x04d5, 0x04dc, 0x04e7, 0x04ed, 0x04f2, 0x04f9, + 0x04ff, 0x0507, 0x0513, 0x0513, 0x051f, 0x0535, 0x053f, 0x0544, + 0x054c, 0x0554, 0x0554, 0x0574, 0x057d, 0x0585, 0x058c, 0x0593, + 0x059a, 0x05a2, 0x05a8, 0x05af, 0x05b5, 0x05bf, 0x05c5, 0x05d5, + 0x05dd, 0x05ec, 0x05f3, 0x05fc, 0x0603, 0x060c, 0x0614, 0x0619, + 0x061e, 0x062e, 0x0635, 0x063b, 0x0640, 0x0655, 0x066a, 0x0673, + 0x067c, 0x0682, 0x069e, 0x06a6, 0x06af, 0x06b8, 0x06c4, 0x06c9, + // Entry C0 - FF + 0x06d1, 0x06d7, 0x06d7, 0x06dc, 0x06e2, 0x06e8, 0x06ed, 0x06f3, + 0x0702, 0x0711, 0x071b, 0x0720, 0x0727, 0x0731, 0x073d, 0x0745, + 0x0745, 0x074d, 0x0759, 0x0767, 0x0770, 0x0776, 0x077f, 0x077f, + 0x0796, 0x07a0, 0x07a0, 0x07a5, 0x07af, 0x07af, 0x07cb, 0x07d1, + 0x07fd, 0x0801, 0x080a, 0x0815, 0x081c, 0x0830, 0x083f, 0x0845, + 0x084a, 0x0850, 0x0865, 0x086b, 0x0873, 0x087a, 0x0881, 0x0887, + 0x0887, 0x088e, 0x0895, 0x08a2, 0x08a9, 0x08c6, 0x08d0, 0x08f6, + 0x0913, 0x091e, 0x0925, 0x0938, 0x093d, 0x093d, 0x0945, 0x094c, + // Entry 100 - 13F + 0x095c, 0x0961, 0x0969, + }, + }, + { // lo + loRegionStr, + loRegionIdx, + }, + { // lrc + "بئرئزیلچینآلمانÙأرانسەبیریتانیا گأپھئنئیتالیاجاپوٙنروٙسیەڤولاتیا یأکاگئر" + + "تەراساگە نادیاردونیائÙریقائمریکا شومالیئمریکا ھارگەھوم پئڤأند جأھوٙ" + + "Ù† آڤمینجا ئمریکائمریکائمریکا ڤاروکارائیبآسیائوروٙپائمریکا لاتین", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, + 0x0014, 0x0014, 0x0014, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + // Entry 40 - 7F + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x002c, 0x002c, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, + 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x0045, 0x004b, + 0x004b, 0x004b, 0x004b, 0x004b, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + // Entry 80 - BF + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + // Entry C0 - FF + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, + 0x0071, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, 0x0092, + // Entry 100 - 13F + 0x0092, 0x0092, 0x0092, 0x00ab, 0x00b5, 0x00c1, 0x00da, 0x00f1, + 0x0116, 0x0116, 0x012d, 0x012d, 0x012d, 0x012d, 0x012d, 0x0139, + 0x014e, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, 0x015c, + 0x015c, 0x015c, 0x0164, 0x0164, 0x0164, 0x0172, 0x0172, 0x0172, + 0x0172, 0x0189, + }, + }, + { // lt + ltRegionStr, + ltRegionIdx, + }, + { // lu + "AndoreLemila alabuAfuganisitaAntiga ne BarbudaAngiyeAlubaniAmeniAngolaAl" + + "ijantineSamoa wa AmerikiOtilisiOsitaliArubaAjelbayidjaMbosini ne Hez" + + "egovineBarebadeBenguladeshiBelejikiBukinafasoBiligariBahreneBurundiB" + + "eneBermudaBrineyiMboliviMnulezileBahamaseButaniMbotswanaByelorisiBel" + + "izeKanadaDitunga wa KonguDitunga dya Afrika wa munkatshiKonguSwiseKo" + + "tedivualeLutanda lua KookÉ›ShiliKameruneShineKolombiKositarikaKubaLut" + + "anda lua KapeveleShipeleDitunga dya TshekaAlemanuDjibutiDanemalakuDu" + + "minikuDitunga wa DuminikuAlijeriEkwateleEsitoniMushidiEliteleNsipani" + + "EtshiopiFilandeFujiLutanda lua MaluniMikroneziNfalanseNgabuAngeletel" + + "eNgelenadeJorijiGiyane wa NfalanseNganaJibeletaleNgowelandeGambiNgin" + + "eNgwadelupeGine EkwateleNgelekaNgwatemalaNgwameNginebisauNgiyaneOndu" + + "raseKrowasiAyitiOngiliIndoneziIrelandeIsirayeleIndeLutanda lwa Angel" + + "etele ku mbu wa IndiyaIrakiIraIsilandeItaliJamaikiJodaniJapuKenyaKig" + + "izisitaKambodzaKiribatiKomoruSantu krístofe ne NevesKore wa muuluKor" + + "e wa mwinshiKowetiLutanda lua KayimaKazakusitaLawosiLibaSantu lisiLi" + + "shuteniSirilankaLiberiyaLesotoLitwaniLikisambuluLetoniLibiMarokeMona" + + "kuMolidaviMadagasikariLutanda lua MarishaleMasedwaneMaliMyamareMongo" + + "liLutanda lua Mariane wa muuluMartinikiMoritaniMuseraMaliteMoriseMad" + + "iveMalawiMeksikeMaleziMozambikiNamibiKaledoni wa mumuNijereLutanda l" + + "ua NorfokNijeryaNikaragwaOlandÉ›NorivejeNepálÉ›NauruNyueZelanda wa mum" + + "uOmanePanamaPeruPolinezi wa NfalansePapwazi wa NginÉ› wa mumuNfilipiP" + + "akisitaMpoloniSantu pététo ne MikeluPikairniMpotorikuPalesineMputulu" + + "geshiPalauPalagweiKatariLenyoRomaniRisiRwandaAlabu NsawudiLutanda lu" + + "a SolomuSesheleSudaSuwediSingapureSantu eleniSiloveniSilovakiSiera L" + + "eoneSantu MarineSenegaleSomaliSurinameSao Tome ne PresipÉ›SavadoreSir" + + "iSwazilandiLutanda lua Tuluki ne KaikoTshadiToguTayilandaTazikisitaT" + + "okelauTimoru wa dibokuTukemenisitaTiniziTongaTulukiTinidade ne Tobag" + + "oTuvaluTaiwaniTanzaniUkreniUgandaAmerikiIrigweiUzibekisitaNvatikaSan" + + "tu vesa ne NgelenadineVenezuelaLutanda lua Vierzi wa AngeleteleLutan" + + "da lua Vierzi wa AmerikiViyetinameVanuatuWalise ne FutunaSamoaYemenu" + + "MayoteAfrika ya SúdiZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0012, 0x001d, 0x002e, 0x0034, 0x003b, + 0x0040, 0x0046, 0x0046, 0x0050, 0x0060, 0x0067, 0x006e, 0x0073, + 0x0073, 0x007e, 0x0093, 0x009b, 0x00a7, 0x00af, 0x00b9, 0x00c1, + 0x00c8, 0x00cf, 0x00d3, 0x00d3, 0x00da, 0x00e1, 0x00e8, 0x00e8, + 0x00f1, 0x00f9, 0x00ff, 0x00ff, 0x0108, 0x0111, 0x0117, 0x011d, + 0x011d, 0x012d, 0x014c, 0x0151, 0x0156, 0x0161, 0x0173, 0x0178, + 0x0180, 0x0185, 0x018c, 0x018c, 0x0196, 0x019a, 0x01ae, 0x01ae, + 0x01ae, 0x01b5, 0x01c7, 0x01ce, 0x01ce, 0x01d5, 0x01df, 0x01e7, + // Entry 40 - 7F + 0x01fa, 0x0201, 0x0201, 0x0209, 0x0210, 0x0217, 0x0217, 0x021e, + 0x0225, 0x022d, 0x022d, 0x0234, 0x0238, 0x024a, 0x0253, 0x0253, + 0x025b, 0x0260, 0x026a, 0x0273, 0x0279, 0x028b, 0x028b, 0x0290, + 0x029a, 0x02a4, 0x02a9, 0x02ae, 0x02b8, 0x02c5, 0x02cc, 0x02cc, + 0x02d6, 0x02dc, 0x02e6, 0x02ed, 0x02ed, 0x02ed, 0x02f5, 0x02fc, + 0x0301, 0x0307, 0x0307, 0x030f, 0x0317, 0x0320, 0x0320, 0x0324, + 0x034b, 0x0350, 0x0353, 0x035b, 0x0360, 0x0360, 0x0367, 0x036d, + 0x0371, 0x0376, 0x0380, 0x0388, 0x0390, 0x0396, 0x03ae, 0x03bb, + // Entry 80 - BF + 0x03ca, 0x03d0, 0x03e2, 0x03ec, 0x03f2, 0x03f6, 0x0400, 0x0409, + 0x0412, 0x041a, 0x0420, 0x0427, 0x0432, 0x0438, 0x043c, 0x0442, + 0x0448, 0x0450, 0x0450, 0x0450, 0x045c, 0x0471, 0x047a, 0x047e, + 0x0485, 0x048c, 0x048c, 0x04a8, 0x04b1, 0x04b9, 0x04bf, 0x04c5, + 0x04cb, 0x04d1, 0x04d7, 0x04de, 0x04e4, 0x04ed, 0x04f3, 0x0503, + 0x0509, 0x051b, 0x0522, 0x052b, 0x0532, 0x053a, 0x0542, 0x0547, + 0x054b, 0x055a, 0x055f, 0x0565, 0x0569, 0x057d, 0x0596, 0x059d, + 0x05a5, 0x05ac, 0x05c4, 0x05cc, 0x05d5, 0x05dd, 0x05e9, 0x05ee, + // Entry C0 - FF + 0x05f6, 0x05fc, 0x05fc, 0x0601, 0x0607, 0x0607, 0x060b, 0x0611, + 0x061e, 0x0630, 0x0637, 0x063b, 0x0641, 0x064a, 0x0655, 0x065d, + 0x065d, 0x0665, 0x0670, 0x067c, 0x0684, 0x068a, 0x0692, 0x0692, + 0x06a6, 0x06ae, 0x06ae, 0x06b2, 0x06bc, 0x06bc, 0x06d7, 0x06dd, + 0x06dd, 0x06e1, 0x06ea, 0x06f4, 0x06fb, 0x070b, 0x0717, 0x071d, + 0x0722, 0x0728, 0x073a, 0x0740, 0x0747, 0x074e, 0x0754, 0x075a, + 0x075a, 0x0761, 0x0768, 0x0773, 0x077a, 0x0793, 0x079c, 0x07bc, + 0x07d9, 0x07e3, 0x07ea, 0x07fa, 0x07ff, 0x07ff, 0x0805, 0x080b, + // Entry 100 - 13F + 0x081a, 0x081f, 0x0827, + }, + }, + { // luo + "AndorraUnited Arab EmiratesAfghanistanAntigua gi BarbudaAnguillaAlbaniaA" + + "rmeniaAngolaArgentinaAmerican SamoaAustriaAustraliaArubaAzerbaijanBo" + + "snia gi HerzegovinaBarbadosBangladeshBelgiumBurkina FasoBulgariaBahr" + + "ainBurundiBeninBermudaBruneiBoliviaBrazilBahamasBhutanBotswanaBelaru" + + "sBelizeCanadaDemocratic Republic of the CongoCentral African Republi" + + "cCongoSwitzerlandCôte dCook IslandsChileCameroonChinaColombiaCosta R" + + "icaCubaCape Verde IslandsCyprusCzech RepublicGermanyDjiboutiDenmarkD" + + "ominicaDominican RepublicAlgeriaEcuadorEstoniaEgyptEritreaSpainEthio" + + "piaFinlandFijiChuia mar FalklandMicronesiaFranceGabonUnited KingdomG" + + "renadaGeorgiaFrench GuianaGhanaGibraltarGreenlandGambiaGuineaGuadelo" + + "upeEquatorial GuineaGreeceGuatemalaGuamGuinea-BissauGuyanaHondurasCr" + + "oatiaHaitiHungaryIndonesiaIrelandIsraelIndiaBritish Indian Ocean Ter" + + "ritoryIraqIranIcelandItalyJamaicaJordanJapanKenyaKyrgyzstanCambodiaK" + + "iribatiComorosSaint Kitts gi NevisKorea MasawaKorea MilamboKuwaitCay" + + "man IslandsKazakhstanLaosLebanonSaint LuciaLiechtensteinSri LankaLib" + + "eriaLesothoLithuaniaLuxembourgLatviaLibyaMoroccoMonacoMoldovaMadagas" + + "carChuia mar MarshallMacedoniaMaliMyanmarMongoliaNorthern Mariana Is" + + "landsMartiniqueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMexic" + + "oMalaysiaMozambiqueNamibiaNew CaledoniaNigerChuia mar NorfolkNigeria" + + "NicaraguaNetherlandsNorwayNepalNauruNiueNew ZealandOmanPanamaPeruFre" + + "nch PolynesiaPapua New GuineaPhilippinesPakistanPolandSaint Pierre g" + + "i MiquelonPitcairnPuerto RicoPalestinian West Bank gi GazaPortugalPa" + + "lauParaguayQatarRéunionRomaniaRussiaRwandaSaudi ArabiaSolomon Island" + + "sSeychellesSudanSwedenSingaporeSaint HelenaSloveniaSlovakiaSierra Le" + + "oneSan MarinoSenegalSomaliaSurinameSão Tomé gi PríncipeEl SalvadorSy" + + "riaSwazilandTurks gi Caicos IslandsChadTogoThailandTajikistanTokelau" + + "East TimorTurkmenistanTunisiaTongaTurkeyTrinidad gi TobagoTuvaluTaiw" + + "anTanzaniaUkraineUgandaUSAUruguayUzbekistanVatican StateSaint Vincen" + + "t gi GrenadinesVenezuelaBritish Virgin IslandsU.S. Virgin IslandsVie" + + "tnamVanuatuWallis gi FutunaSamoaYemenMayotteSouth AfricaZambiaZimbab" + + "we", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001b, 0x0026, 0x0038, 0x0040, 0x0047, + 0x004e, 0x0054, 0x0054, 0x005d, 0x006b, 0x0072, 0x007b, 0x0080, + 0x0080, 0x008a, 0x009f, 0x00a7, 0x00b1, 0x00b8, 0x00c4, 0x00cc, + 0x00d3, 0x00da, 0x00df, 0x00df, 0x00e6, 0x00ec, 0x00f3, 0x00f3, + 0x00f9, 0x0100, 0x0106, 0x0106, 0x010e, 0x0115, 0x011b, 0x0121, + 0x0121, 0x0141, 0x0159, 0x015e, 0x0169, 0x0170, 0x017c, 0x0181, + 0x0189, 0x018e, 0x0196, 0x0196, 0x01a0, 0x01a4, 0x01b6, 0x01b6, + 0x01b6, 0x01bc, 0x01ca, 0x01d1, 0x01d1, 0x01d9, 0x01e0, 0x01e8, + // Entry 40 - 7F + 0x01fa, 0x0201, 0x0201, 0x0208, 0x020f, 0x0214, 0x0214, 0x021b, + 0x0220, 0x0228, 0x0228, 0x022f, 0x0233, 0x0245, 0x024f, 0x024f, + 0x0255, 0x025a, 0x0268, 0x026f, 0x0276, 0x0283, 0x0283, 0x0288, + 0x0291, 0x029a, 0x02a0, 0x02a6, 0x02b0, 0x02c1, 0x02c7, 0x02c7, + 0x02d0, 0x02d4, 0x02e1, 0x02e7, 0x02e7, 0x02e7, 0x02ef, 0x02f6, + 0x02fb, 0x0302, 0x0302, 0x030b, 0x0312, 0x0318, 0x0318, 0x031d, + 0x033b, 0x033f, 0x0343, 0x034a, 0x034f, 0x034f, 0x0356, 0x035c, + 0x0361, 0x0366, 0x0370, 0x0378, 0x0380, 0x0387, 0x039b, 0x03a7, + // Entry 80 - BF + 0x03b4, 0x03ba, 0x03c8, 0x03d2, 0x03d6, 0x03dd, 0x03e8, 0x03f5, + 0x03fe, 0x0405, 0x040c, 0x0415, 0x041f, 0x0425, 0x042a, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0448, 0x045a, 0x0463, 0x0467, + 0x046e, 0x0476, 0x0476, 0x048e, 0x0498, 0x04a2, 0x04ac, 0x04b1, + 0x04ba, 0x04c2, 0x04c8, 0x04ce, 0x04d6, 0x04e0, 0x04e7, 0x04f4, + 0x04f9, 0x050a, 0x0511, 0x051a, 0x0525, 0x052b, 0x0530, 0x0535, + 0x0539, 0x0544, 0x0548, 0x054e, 0x0552, 0x0562, 0x0572, 0x057d, + 0x0585, 0x058b, 0x05a3, 0x05ab, 0x05b6, 0x05d3, 0x05db, 0x05e0, + // Entry C0 - FF + 0x05e8, 0x05ed, 0x05ed, 0x05f5, 0x05fc, 0x05fc, 0x0602, 0x0608, + 0x0614, 0x0623, 0x062d, 0x0632, 0x0638, 0x0641, 0x064d, 0x0655, + 0x0655, 0x065d, 0x0669, 0x0673, 0x067a, 0x0681, 0x0689, 0x0689, + 0x06a0, 0x06ab, 0x06ab, 0x06b0, 0x06b9, 0x06b9, 0x06d0, 0x06d4, + 0x06d4, 0x06d8, 0x06e0, 0x06ea, 0x06f1, 0x06fb, 0x0707, 0x070e, + 0x0713, 0x0719, 0x072b, 0x0731, 0x0737, 0x073f, 0x0746, 0x074c, + 0x074c, 0x074f, 0x0756, 0x0760, 0x076d, 0x0788, 0x0791, 0x07a7, + 0x07ba, 0x07c1, 0x07c8, 0x07d8, 0x07dd, 0x07dd, 0x07e2, 0x07e9, + // Entry 100 - 13F + 0x07f5, 0x07fb, 0x0803, + }, + }, + { // luy + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa lya MarekaniAustriaAustraliaArubaAzabajaniBosn" + + "ia na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBaharen" + + "iBurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarus" + + "iBelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Ka" + + "tiKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostari" + + "kaKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJ" + + "amhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUf" + + "iniFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJo" + + "jiaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinek" + + "wetaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungaria" + + "IndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIr" + + "akiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodi" + + "aKiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaiti" + + "Visiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilan" + + "kaLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukin" + + "iVisiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya " + + "KaskaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksiko" + + "MalesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNika" + + "ragwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia " + + "ya UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkai" + + "rniPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoP" + + "alauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya Solomon" + + "ShelisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera Leoni" + + "SamarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswa" + + "ziVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori" + + " ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuv" + + "aluTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSa" + + "ntavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiw" + + "a vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniM" + + "ayotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x006a, 0x0071, 0x007a, 0x007f, + 0x007f, 0x0088, 0x009c, 0x00a4, 0x00af, 0x00b7, 0x00c1, 0x00c9, + 0x00d1, 0x00d8, 0x00de, 0x00de, 0x00e5, 0x00eb, 0x00f2, 0x00f2, + 0x00f9, 0x00ff, 0x0105, 0x0105, 0x010d, 0x0115, 0x011b, 0x0121, + 0x0121, 0x0141, 0x015a, 0x015f, 0x0165, 0x016c, 0x017b, 0x0180, + 0x0188, 0x018d, 0x0195, 0x0195, 0x019e, 0x01a2, 0x01aa, 0x01aa, + 0x01aa, 0x01b1, 0x01c1, 0x01ca, 0x01ca, 0x01d0, 0x01d7, 0x01df, + // Entry 40 - 7F + 0x01f2, 0x01f9, 0x01f9, 0x01ff, 0x0206, 0x020b, 0x020b, 0x0212, + 0x021a, 0x0222, 0x0222, 0x0227, 0x022b, 0x023e, 0x0248, 0x0248, + 0x0250, 0x0256, 0x025f, 0x0266, 0x026b, 0x027e, 0x027e, 0x0283, + 0x028b, 0x0294, 0x029a, 0x029e, 0x02a7, 0x02b0, 0x02b7, 0x02b7, + 0x02c0, 0x02c4, 0x02cd, 0x02d3, 0x02d3, 0x02d3, 0x02dc, 0x02e3, + 0x02e8, 0x02f0, 0x02f0, 0x02f9, 0x0301, 0x0308, 0x0308, 0x030d, + 0x0332, 0x0337, 0x033d, 0x0345, 0x034b, 0x034b, 0x0352, 0x0359, + 0x035f, 0x0364, 0x0371, 0x0379, 0x0381, 0x0387, 0x039a, 0x03a9, + // Entry 80 - BF + 0x03b5, 0x03bc, 0x03cd, 0x03d8, 0x03dd, 0x03e5, 0x03ef, 0x03f9, + 0x0402, 0x0409, 0x040f, 0x0417, 0x0420, 0x0427, 0x042c, 0x0432, + 0x0438, 0x043f, 0x043f, 0x043f, 0x0445, 0x0457, 0x0460, 0x0464, + 0x0469, 0x0471, 0x0471, 0x0491, 0x049a, 0x04a3, 0x04ae, 0x04b3, + 0x04b9, 0x04bf, 0x04c5, 0x04cc, 0x04d3, 0x04db, 0x04e2, 0x04ee, + 0x04f4, 0x0505, 0x050c, 0x0515, 0x051d, 0x0522, 0x0528, 0x052d, + 0x0531, 0x053b, 0x0540, 0x0546, 0x054a, 0x055f, 0x0564, 0x056c, + 0x0575, 0x057c, 0x0592, 0x059b, 0x05a4, 0x05d6, 0x05db, 0x05e0, + // Entry C0 - FF + 0x05e8, 0x05ee, 0x05ee, 0x05f7, 0x05fe, 0x05fe, 0x0603, 0x0609, + 0x060e, 0x0620, 0x062a, 0x0630, 0x0636, 0x063e, 0x0649, 0x0651, + 0x0651, 0x0659, 0x0664, 0x066c, 0x0674, 0x067b, 0x0683, 0x0683, + 0x0697, 0x069f, 0x069f, 0x06a4, 0x06aa, 0x06aa, 0x06c3, 0x06c8, + 0x06c8, 0x06cc, 0x06d4, 0x06df, 0x06e6, 0x06f9, 0x0708, 0x070f, + 0x0714, 0x071b, 0x072d, 0x0733, 0x073a, 0x0742, 0x0749, 0x074f, + 0x074f, 0x0757, 0x075e, 0x076a, 0x0772, 0x078b, 0x0794, 0x07b3, + 0x07d1, 0x07da, 0x07e1, 0x07f0, 0x07f5, 0x07f5, 0x07fb, 0x0802, + // Entry 100 - 13F + 0x080f, 0x0815, 0x081d, + }, + }, + { // lv + lvRegionStr, + lvRegionIdx, + }, + { // mas + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTansaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniSambiaSimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // mer + "AndoraFalme cia KiarabuAfuganistaniAntigua na BarbudaAnguillaAlubaniaArm" + + "eniaAngolaAjentinaSamoa ya AmerikaAustiriaAustrÄ©liaArubaAzebaijaniBo" + + "snia na HezegovinaBabadosiBangiradeshiBeronjiamuBukinafasoBulgariaBa" + + "hariniBurundiBeniniBamudaBruneiBoliviaBraziluBahamasiButaniBotswanaB" + + "elarusiBelizeKanadaNthÄ© ya KidemokrasÄ© ya KongoNthÄ© ya Afrika gatÄ©ga" + + "tÄ©KongoSwizilandiKodivaaAÄ©randi cia CookChileKameruniChinaKolombiaKo" + + "starikaKiubaKepuvedeCaipurasiNthÄ© ya ChekiNjamanÄ©JibutiDenimakiDomin" + + "ikaNthÄ© ya DominikaAngiriaEkwadoEstoniaMisiriEritreaSpÄ©niIthiopiaFin" + + "ilandiFijiAÄ©randi cia FalklandiMikronesiaFransiGaboniNgerethaGrenada" + + "JojiaGwiyana ya FransiGhanaNgÄ©brataNgirinilandiGambiaGineGwadelupeGi" + + "ne ya IquitaNgirikiGwatemalaGwamGinebisauGuyanaHondurasiKoroashiaHai" + + "tiHangarÄ©IndonesiaAelandiIsiraeliIndiaNthÄ© cia Ngeretha gatagatÄ© ka " + + "Ä©ria ria HindiIrakiIraniAisilandiItalÄ©JamaikaJorondaniJapaniKenyaKi" + + "rigizistaniKambodiaKiribatiKomoroSantakitzi na NevisKorea NothiKorea" + + " SaÅ©thiKuwÄ© tiAÄ©randi cia KaymanKazakistaniLaosiLebanoniSantalusiaLi" + + "shenteniSirilankaLiberiaLesothoLithuaniaLuxemboguLativiaLÄ©biaMorokoM" + + "onakoMoldovaMadagasikaAÄ©randi cia MarshalMacedoniaMaliMyanimaMongoli" + + "aAÄ©randi cia Mariana ya nothiMartinikiMauritaniaMontserratiMaltaMaur" + + "Ä©tiasiModivuMalawiMexikoMalÄ©siaMozambikiNamibiaKalendoia ĨnjeruNija" + + "AÄ©randi cia NorfokNijeriaNikaragwaHolandiNorwiNepaliNauruNiueNiuzila" + + "ndiOmaniPanamaPeruPolinesia ya FransiPapuaFilipinoPakistaniPolandiSa" + + "ntapieri na MikeloniPitkairniPwetorikoRÅ©tere rwa Westi banki na Gaza" + + " cia PalestinaPotogoPalauParagwaiKataRiyunioniRomaniaRashiaRwandaSau" + + "diAirandi Cia SolomonShelisheliSudaniSwideniSingapooSantahelenaSlove" + + "niaSlovakiaSiera LeoniSamarinoSenegoSomaliaSurinamuSao Tome na Princ" + + "ipeElsavadoSiriaSwazilandiAÄ©randi cia TakÄ© na KaikoChadiTogoThaÄ©land" + + "iTajikistaniTokelauTimori ya IstiTukumenistaniTunisiaTongaTakÄ©Trinid" + + "ad na TobagoTuvaluTaiwaniTanzaniaUkirÄ©niUgandaAmerikaUrugwÄ©Uzibekist" + + "aniVatikaniSantavisenti na GrenadiniVenezuelaAÄ©randi cia Virgin cia " + + "NgerethaAÄ©randi cia Virgin cia AmerikaVietinamuVanuatuWalis na Futun" + + "aSamoaYemeniMayotteAfrika ya SouthiZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0017, 0x0023, 0x0035, 0x003d, 0x0045, + 0x004c, 0x0052, 0x0052, 0x005a, 0x006a, 0x0072, 0x007c, 0x0081, + 0x0081, 0x008b, 0x009f, 0x00a7, 0x00b3, 0x00bd, 0x00c7, 0x00cf, + 0x00d7, 0x00de, 0x00e4, 0x00e4, 0x00ea, 0x00f0, 0x00f7, 0x00f7, + 0x00fe, 0x0106, 0x010c, 0x010c, 0x0114, 0x011c, 0x0122, 0x0128, + 0x0128, 0x0146, 0x0160, 0x0165, 0x016f, 0x0176, 0x0187, 0x018c, + 0x0194, 0x0199, 0x01a1, 0x01a1, 0x01aa, 0x01af, 0x01b7, 0x01b7, + 0x01b7, 0x01c0, 0x01ce, 0x01d6, 0x01d6, 0x01dc, 0x01e4, 0x01ec, + // Entry 40 - 7F + 0x01fd, 0x0204, 0x0204, 0x020a, 0x0211, 0x0217, 0x0217, 0x021e, + 0x0224, 0x022c, 0x022c, 0x0235, 0x0239, 0x024f, 0x0259, 0x0259, + 0x025f, 0x0265, 0x026d, 0x0274, 0x0279, 0x028a, 0x028a, 0x028f, + 0x0298, 0x02a4, 0x02aa, 0x02ae, 0x02b7, 0x02c5, 0x02cc, 0x02cc, + 0x02d5, 0x02d9, 0x02e2, 0x02e8, 0x02e8, 0x02e8, 0x02f1, 0x02fa, + 0x02ff, 0x0307, 0x0307, 0x0310, 0x0317, 0x031f, 0x031f, 0x0324, + 0x0353, 0x0358, 0x035d, 0x0366, 0x036c, 0x036c, 0x0373, 0x037c, + 0x0382, 0x0387, 0x0394, 0x039c, 0x03a4, 0x03aa, 0x03bd, 0x03c8, + // Entry 80 - BF + 0x03d5, 0x03dd, 0x03f0, 0x03fb, 0x0400, 0x0408, 0x0412, 0x041c, + 0x0425, 0x042c, 0x0433, 0x043c, 0x0445, 0x044c, 0x0452, 0x0458, + 0x045e, 0x0465, 0x0465, 0x0465, 0x046f, 0x0483, 0x048c, 0x0490, + 0x0497, 0x049f, 0x049f, 0x04bc, 0x04c5, 0x04cf, 0x04da, 0x04df, + 0x04ea, 0x04f0, 0x04f6, 0x04fc, 0x0504, 0x050d, 0x0514, 0x0525, + 0x0529, 0x053c, 0x0543, 0x054c, 0x0553, 0x0558, 0x055e, 0x0563, + 0x0567, 0x0571, 0x0576, 0x057c, 0x0580, 0x0593, 0x0598, 0x05a0, + 0x05a9, 0x05b0, 0x05c6, 0x05cf, 0x05d8, 0x0605, 0x060b, 0x0610, + // Entry C0 - FF + 0x0618, 0x061c, 0x061c, 0x0625, 0x062c, 0x062c, 0x0632, 0x0638, + 0x063d, 0x0650, 0x065a, 0x0660, 0x0667, 0x066f, 0x067a, 0x0682, + 0x0682, 0x068a, 0x0695, 0x069d, 0x06a3, 0x06aa, 0x06b2, 0x06b2, + 0x06c6, 0x06ce, 0x06ce, 0x06d3, 0x06dd, 0x06dd, 0x06f8, 0x06fd, + 0x06fd, 0x0701, 0x070b, 0x0716, 0x071d, 0x072b, 0x0738, 0x073f, + 0x0744, 0x0749, 0x075b, 0x0761, 0x0768, 0x0770, 0x0778, 0x077e, + 0x077e, 0x0785, 0x078c, 0x0798, 0x07a0, 0x07b9, 0x07c2, 0x07e2, + 0x0801, 0x080a, 0x0811, 0x0820, 0x0825, 0x0825, 0x082b, 0x0832, + // Entry 100 - 13F + 0x0842, 0x0848, 0x0850, + }, + }, + { // mfe + "AndorEmira arab iniAfganistanAntigua-ek-BarbudaAnguillaAlbaniArmeniAngol" + + "aLarzantinnSamoa amerikinLostrisLostraliArubaAzerbaïdjanBosni-Herzeg" + + "ovinnBarbadBangladesBelzikBurkina FasoBilgariBahreïnBurundiBeninBerm" + + "idBruneiBoliviBrezilBahamasBoutanBotswanaBelarisBelizKanadaRepiblik " + + "demokratik KongoRepiblik Lafrik SantralKongoLaswisCôte d’IvoireZil C" + + "ookShiliKamerounnLasinnKolonbiCosta RicaCubaKap-VerCyprusRepiblik Ch" + + "ekAlmagnDjiboutiDannmarkDominikRepiblik dominikinAlzeriEkwaterEstoni" + + "LeziptErythreLespagnLetiopiFinlandFidjiZil malwinnMikroneziLafransGa" + + "bonUnited KingdomGrenadZeorziGwiyann franseGhanaZibraltarGreenlandGa" + + "mbiGineGuadloupGine ekwatoryalGresGuatemalaGuamGine-BisauGuyanaHondu" + + "rasKroasiAytiOngriIndoneziIrlandIzraelLennTeritwar Britanik Losean I" + + "ndienIrakIranIslandItaliZamaikZordaniZaponKenyaKirghizistanKambodjKi" + + "ribatiKomorSaint-Christophe-ek-NiévèsLakore-dinorLakore-disidKoweitZ" + + "il KaymanKazakstanLaosLibanSainte-LucieLiechtensteinSri LankaLiberia" + + "LezotoLituaniLuxembourgLetoniLibiMarokMonakoMoldaviMadagaskarZil Mar" + + "shallMasedwannMaliMyanmarMongoliZil Maryann dinorMartinikMoritaniMon" + + "tseraMaltMorisMaldivMalawiMexikMaleziMozambikNamibiNouvel-KaledoniNi" + + "zerLil NorfolkNizeriaNicaraguaOlandNorvezNepalNauruNioweNouvel Zelan" + + "dOmanPanamaPerouPolinezi fransePapouazi-Nouvel-GineFilipinnPakistanP" + + "olognSaint-Pierre-ek-MiquelonPitcairnPorto RicoTeritwar PalestinnPor" + + "tigalPalauParaguayKatarLarenionRoumaniLarisiRwandaLarabi SaouditZil " + + "SalomonSeselSoudanLaswedSingapourSainte-HélèneSloveniSlovakiSierra L" + + "eoneSaint-MarinSenegalSomaliSurinamSão Tome-ek-PrínsipSalvadorLasiri" + + "SwazilandZil Tirk ek CaïcosTchadTogoThaylandTadjikistanTokelauTimor " + + "oriantalTurkmenistanTiniziTongaTirkiTrinite-ek-TobagoTuvaluTaiwanTan" + + "zaniIkrennOugandaLamerikUruguayOuzbekistanLata VatikanSaint-Vincent-" + + "ek-GrenadinesVenezuelaZil vierz britanikZil Vierz LamerikVietnamVanu" + + "atuWallis-ek-FutunaSamoaYemennMayotSid-AfrikZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0005, 0x0013, 0x001d, 0x002f, 0x0037, 0x003d, + 0x0043, 0x0049, 0x0049, 0x0053, 0x0061, 0x0068, 0x0070, 0x0075, + 0x0075, 0x0081, 0x0092, 0x0098, 0x00a1, 0x00a7, 0x00b3, 0x00ba, + 0x00c2, 0x00c9, 0x00ce, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e0, + 0x00e6, 0x00ed, 0x00f3, 0x00f3, 0x00fb, 0x0102, 0x0107, 0x010d, + 0x010d, 0x0126, 0x013d, 0x0142, 0x0148, 0x0158, 0x0160, 0x0165, + 0x016e, 0x0174, 0x017b, 0x017b, 0x0185, 0x0189, 0x0190, 0x0190, + 0x0190, 0x0196, 0x01a3, 0x01a9, 0x01a9, 0x01b1, 0x01b9, 0x01c0, + // Entry 40 - 7F + 0x01d2, 0x01d8, 0x01d8, 0x01df, 0x01e5, 0x01eb, 0x01eb, 0x01f2, + 0x01f9, 0x0200, 0x0200, 0x0207, 0x020c, 0x0217, 0x0220, 0x0220, + 0x0227, 0x022c, 0x023a, 0x0240, 0x0246, 0x0254, 0x0254, 0x0259, + 0x0262, 0x026b, 0x0270, 0x0274, 0x027c, 0x028b, 0x028f, 0x028f, + 0x0298, 0x029c, 0x02a6, 0x02ac, 0x02ac, 0x02ac, 0x02b4, 0x02ba, + 0x02be, 0x02c3, 0x02c3, 0x02cb, 0x02d1, 0x02d7, 0x02d7, 0x02db, + 0x02fa, 0x02fe, 0x0302, 0x0308, 0x030d, 0x030d, 0x0313, 0x031a, + 0x031f, 0x0324, 0x0330, 0x0337, 0x033f, 0x0344, 0x0360, 0x036c, + // Entry 80 - BF + 0x0378, 0x037e, 0x0388, 0x0391, 0x0395, 0x039a, 0x03a6, 0x03b3, + 0x03bc, 0x03c3, 0x03c9, 0x03d0, 0x03da, 0x03e0, 0x03e4, 0x03e9, + 0x03ef, 0x03f6, 0x03f6, 0x03f6, 0x0400, 0x040c, 0x0415, 0x0419, + 0x0420, 0x0427, 0x0427, 0x0438, 0x0440, 0x0448, 0x0450, 0x0454, + 0x0459, 0x045f, 0x0465, 0x046a, 0x0470, 0x0478, 0x047e, 0x048d, + 0x0492, 0x049d, 0x04a4, 0x04ad, 0x04b2, 0x04b8, 0x04bd, 0x04c2, + 0x04c7, 0x04d4, 0x04d8, 0x04de, 0x04e3, 0x04f2, 0x0506, 0x050e, + 0x0516, 0x051c, 0x0534, 0x053c, 0x0546, 0x0558, 0x0560, 0x0565, + // Entry C0 - FF + 0x056d, 0x0572, 0x0572, 0x057a, 0x0581, 0x0581, 0x0587, 0x058d, + 0x059b, 0x05a6, 0x05ab, 0x05b1, 0x05b7, 0x05c0, 0x05cf, 0x05d6, + 0x05d6, 0x05dd, 0x05e9, 0x05f4, 0x05fb, 0x0601, 0x0608, 0x0608, + 0x061d, 0x0625, 0x0625, 0x062b, 0x0634, 0x0634, 0x0647, 0x064c, + 0x064c, 0x0650, 0x0658, 0x0663, 0x066a, 0x0678, 0x0684, 0x068a, + 0x068f, 0x0694, 0x06a5, 0x06ab, 0x06b1, 0x06b8, 0x06be, 0x06c5, + 0x06c5, 0x06cc, 0x06d3, 0x06de, 0x06ea, 0x0705, 0x070e, 0x0720, + 0x0731, 0x0738, 0x073f, 0x074f, 0x0754, 0x0754, 0x075a, 0x075f, + // Entry 100 - 13F + 0x0768, 0x076d, 0x0775, + }, + }, + { // mg + "AndorraEmirà Arabo mitambatraAfghanistanAntiga sy BarbodaAnguillaAlbania" + + "ArmeniaAngolaArzantinaSamoa amerikaninaAotrisyAostraliaArobàAzerbaid" + + "janBosnia sy HerzegovinaBarbadyBangladesyBelzikaBorkina FasoBiolgari" + + "aBahrainBorondiBeninBermiodaBruneiBoliviaBrezilaBahamasBhotanaBotsoa" + + "naBelarosyBelizeKanadaRepoblikan’i KongoRepoblika Ivon’AfrikaKôngôSo" + + "isaCôte d’IvoireNosy KookShiliKameronaSinaKôlômbiaKosta RikàKiobàNos" + + "y Cap-VertSypraRepoblikan’i TsekyAlemainaDjibotiDanmarkaDominikaRepo" + + "blika DominikaninaAlzeriaEkoateraEstoniaEjyptaEritreaEspainaEthiopia" + + "FinlandyFidjiNosy FalkandMikrôneziaFrantsaGabonAngleteraGrenadyZeorz" + + "iaGuyana frantsayGhanaZibraltaraGroenlandGambiaGineaGoadelopyGuinea " + + "EkoateraGresyGoatemalàGuamGiné-BisaoGuyanaHondiorasyKroasiaHaitiHong" + + "riaIndoneziaIrlandyIsraelyIndyFaridranomasina indiana britanikaIrakI" + + "ranIslandyItaliaJamaïkaJordaniaJapanaKenyaKiordistanKambôdjaKiribati" + + "KômaoroSaint-Christophe-et-NiévèsKorea AvaratraKorea AtsimoKôeityNos" + + "y KaymanKazakhstanLaôsLibanaSainte-LucieListensteinSri LankaLiberiaL" + + "esothoLitoaniaLioksamboroLetoniaLibyaMarôkaMônakôMôldaviaMadagasikar" + + "aNosy MarshallMakedoniaMaliMyanmarMôngôliaNosy Mariana AtsinananaMar" + + "tinikaMaoritaniaMontserratMaltaMaorisyMaldivaMalaoìMeksikaMalaiziaMo" + + "zambikaNamibiaNouvelle-CalédonieNigerNosy NorfolkNizeriaNikaragoàHol" + + "andaNôrvezyNepalaNaoròNioéNouvelle-ZélandeOmanPanamaPeroaPolynezia f" + + "rantsayPapouasie-Nouvelle-GuinéeFilipinaPakistanPôlônaSaint-Pierre-e" + + "t-MiquelonPitkairnPôrtô RikôPalestinaPôrtiogalaPalaoParagoayKatarLar" + + "enionRomaniaRosiaRoandaArabia saoditaNosy SalomonaSeyshelaSodanSoedy" + + "SingaporoSainte-HélèneSloveniaSlovakiaSierra LeoneSaint-MarinSenegal" + + "SomaliaSorinamSão Tomé-et-PríncipeEl SalvadorSyriaSoazilandyNosy Tur" + + "ks sy CaïquesTsadyTogoThailandyTajikistanTokelaoTimor AtsinananaTork" + + "menistanToniziaTongàTorkiaTrinidad sy TobagôTovalòTaioanaTanzaniaOkr" + + "ainaOgandaEtazoniaOrogoayOzbekistanFirenen’i VatikanaSaint-Vincent-e" + + "t-les GrenadinesVenezoelàNosy britanika virijinyNosy Virijiny Etazon" + + "iaVietnamVanoatòWallis sy FutunaSamoaYemenMayôtyAfrika AtsimoZambiaZ" + + "imbaboe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001e, 0x0029, 0x003a, 0x0042, 0x0049, + 0x0050, 0x0056, 0x0056, 0x005f, 0x0070, 0x0077, 0x0080, 0x0086, + 0x0086, 0x0091, 0x00a6, 0x00ad, 0x00b7, 0x00be, 0x00ca, 0x00d3, + 0x00da, 0x00e1, 0x00e6, 0x00e6, 0x00ee, 0x00f4, 0x00fb, 0x00fb, + 0x0102, 0x0109, 0x0110, 0x0110, 0x0118, 0x0120, 0x0126, 0x012c, + 0x012c, 0x0140, 0x0157, 0x015e, 0x0163, 0x0173, 0x017c, 0x0181, + 0x0189, 0x018d, 0x0197, 0x0197, 0x01a2, 0x01a8, 0x01b5, 0x01b5, + 0x01b5, 0x01ba, 0x01ce, 0x01d6, 0x01d6, 0x01dd, 0x01e5, 0x01ed, + // Entry 40 - 7F + 0x0203, 0x020a, 0x020a, 0x0212, 0x0219, 0x021f, 0x021f, 0x0226, + 0x022d, 0x0235, 0x0235, 0x023d, 0x0242, 0x024e, 0x0259, 0x0259, + 0x0260, 0x0265, 0x026e, 0x0275, 0x027c, 0x028b, 0x028b, 0x0290, + 0x029a, 0x02a3, 0x02a9, 0x02ae, 0x02b7, 0x02c6, 0x02cb, 0x02cb, + 0x02d5, 0x02d9, 0x02e4, 0x02ea, 0x02ea, 0x02ea, 0x02f4, 0x02fb, + 0x0300, 0x0307, 0x0307, 0x0310, 0x0317, 0x031e, 0x031e, 0x0322, + 0x0343, 0x0347, 0x034b, 0x0352, 0x0358, 0x0358, 0x0360, 0x0368, + 0x036e, 0x0373, 0x037d, 0x0386, 0x038e, 0x0396, 0x03b2, 0x03c0, + // Entry 80 - BF + 0x03cc, 0x03d3, 0x03de, 0x03e8, 0x03ed, 0x03f3, 0x03ff, 0x040a, + 0x0413, 0x041a, 0x0421, 0x0429, 0x0434, 0x043b, 0x0440, 0x0447, + 0x044f, 0x0458, 0x0458, 0x0458, 0x0464, 0x0471, 0x047a, 0x047e, + 0x0485, 0x048f, 0x048f, 0x04a6, 0x04af, 0x04b9, 0x04c3, 0x04c8, + 0x04cf, 0x04d6, 0x04dd, 0x04e4, 0x04ec, 0x04f5, 0x04fc, 0x050f, + 0x0514, 0x0520, 0x0527, 0x0531, 0x0538, 0x0540, 0x0546, 0x054c, + 0x0551, 0x0562, 0x0566, 0x056c, 0x0571, 0x0583, 0x059d, 0x05a5, + 0x05ad, 0x05b5, 0x05cd, 0x05d5, 0x05e2, 0x05eb, 0x05f6, 0x05fb, + // Entry C0 - FF + 0x0603, 0x0608, 0x0608, 0x0610, 0x0617, 0x0617, 0x061c, 0x0622, + 0x0630, 0x063d, 0x0645, 0x064a, 0x064f, 0x0658, 0x0667, 0x066f, + 0x066f, 0x0677, 0x0683, 0x068e, 0x0695, 0x069c, 0x06a3, 0x06a3, + 0x06ba, 0x06c5, 0x06c5, 0x06ca, 0x06d4, 0x06d4, 0x06ea, 0x06ef, + 0x06ef, 0x06f3, 0x06fc, 0x0706, 0x070d, 0x071d, 0x0729, 0x0730, + 0x0736, 0x073c, 0x074f, 0x0756, 0x075d, 0x0765, 0x076c, 0x0772, + 0x0772, 0x077a, 0x0781, 0x078b, 0x079f, 0x07be, 0x07c8, 0x07df, + 0x07f5, 0x07fc, 0x0804, 0x0814, 0x0819, 0x0819, 0x081e, 0x0825, + // Entry 100 - 13F + 0x0832, 0x0838, 0x0840, + }, + }, + { // mgh + "UandoraUfugustaniUalbaniaUsamoa ya MarekaniUazabajaniUrundiUbelinUkanada" + + "UkongoUswisiUkodivaUchileUchinaUkolombiaUkubaUkuprosiUchekiUjibutiUd" + + "enimakaUdominikaAlujeriaUmisiriUritereaUhispaniaUhabeshiUfiniUfijiUf" + + "aransaUgaboniUgrenadaUjojiaUfaransa yo GwayaUganaUjibraltaUgrinlandi" + + "UgambiaUgineUgwadelupeUgwatemalaUgwamUginebisauUguyanaUhondurasiUkor" + + "asiaUhaitiUhungariaUndonesiaUayalandiUisraeliUhindiniWirakiItaliaUja" + + "maikaUyordaniUjapaniUkenyaUkambodiaUkomoroUsantakitzi na NevisUkorea" + + " KaskaziniUkorea KusiniUkazakistaniUlebanoniUsantalusiaUshenteniUsir" + + "ilankaUliberiaUlesotoUtwaniaUsembajiUlativiaUlibyaUmantegroUbukiniUm" + + "asedoniaUmalawiUmozambikiUnijeriUnijeriaUnorweUomaniUpanamaUperuuUfa" + + "ransa yo PotinaUpapuaUfilipinoUpakistaniUpolandiUsantapieri na Mikel" + + "oniUpitkairniUpwetorikoParagwaiUkatariUriyunioniUromaniaUrwandaUsaud" + + "iUshelisheliUsudaniUswidiUsingapooUsantahelenaUsloveniaUslovakiaUsam" + + "arinoUsenegaliUsomaliaUsurinamuUsao Tome na PrincipeUsalavadoUsiriaU" + + "swaziUchadiUtogoUtailandiUjikistaniUtokelauUtimo MasharikiUturukimen" + + "istaniUtunisiaUtongaUtukiUtrinidad na TobagoUtuvaluUtanzaniaUmarekan" + + "iUvatikaniUsantavisenti na GrenadiniUvenezuelaUvietinamuUvanuatuUwal" + + "is na FutunaUsamoaUyemeniAfrika du SuluUzambiaUzimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0007, 0x0011, 0x0011, 0x0011, 0x0019, + 0x0019, 0x0019, 0x0019, 0x0019, 0x002b, 0x002b, 0x002b, 0x002b, + 0x002b, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x003b, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, + 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0048, + 0x0048, 0x0048, 0x0048, 0x004e, 0x0054, 0x005b, 0x005b, 0x0061, + 0x0061, 0x0067, 0x0070, 0x0070, 0x0070, 0x0075, 0x0075, 0x0075, + 0x0075, 0x007d, 0x0083, 0x0083, 0x0083, 0x008a, 0x0093, 0x009c, + // Entry 40 - 7F + 0x009c, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00ab, 0x00ab, 0x00b3, + 0x00bc, 0x00c4, 0x00c4, 0x00c9, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00d6, 0x00dd, 0x00dd, 0x00e5, 0x00eb, 0x00fc, 0x00fc, 0x0101, + 0x010a, 0x0114, 0x011b, 0x0120, 0x012a, 0x012a, 0x012a, 0x012a, + 0x0134, 0x0139, 0x0143, 0x014a, 0x014a, 0x014a, 0x0154, 0x015c, + 0x0162, 0x016b, 0x016b, 0x0174, 0x017d, 0x0185, 0x0185, 0x018d, + 0x018d, 0x0193, 0x0193, 0x0193, 0x0199, 0x0199, 0x01a1, 0x01a9, + 0x01b0, 0x01b6, 0x01b6, 0x01bf, 0x01bf, 0x01c6, 0x01da, 0x01ea, + // Entry 80 - BF + 0x01f7, 0x01f7, 0x01f7, 0x0203, 0x0203, 0x020c, 0x0217, 0x0220, + 0x022a, 0x0232, 0x0239, 0x0240, 0x0248, 0x0250, 0x0256, 0x0256, + 0x0256, 0x0256, 0x025f, 0x025f, 0x0266, 0x0266, 0x0270, 0x0270, + 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, + 0x0270, 0x0270, 0x0277, 0x0277, 0x0277, 0x0281, 0x0281, 0x0281, + 0x0288, 0x0288, 0x0290, 0x0290, 0x0290, 0x0296, 0x0296, 0x0296, + 0x0296, 0x0296, 0x029c, 0x02a3, 0x02a9, 0x02bb, 0x02c1, 0x02ca, + 0x02d4, 0x02dc, 0x02f3, 0x02fd, 0x0307, 0x0307, 0x0307, 0x0307, + // Entry C0 - FF + 0x030f, 0x0316, 0x0316, 0x0320, 0x0328, 0x0328, 0x0328, 0x032f, + 0x0335, 0x0335, 0x0340, 0x0347, 0x034d, 0x0356, 0x0362, 0x036b, + 0x036b, 0x0374, 0x0374, 0x037d, 0x0386, 0x038e, 0x0397, 0x0397, + 0x03ac, 0x03b5, 0x03b5, 0x03bb, 0x03c1, 0x03c1, 0x03c1, 0x03c7, + 0x03c7, 0x03cc, 0x03d5, 0x03df, 0x03e7, 0x03f6, 0x0406, 0x040e, + 0x0414, 0x0419, 0x042c, 0x0433, 0x0433, 0x043c, 0x043c, 0x043c, + 0x043c, 0x0445, 0x0445, 0x0445, 0x044e, 0x0468, 0x0472, 0x0472, + 0x0472, 0x047c, 0x0484, 0x0494, 0x049a, 0x049a, 0x04a1, 0x04a1, + // Entry 100 - 13F + 0x04af, 0x04b6, 0x04bf, + }, + }, + { // mgo + "Kamalunaba aben tisɔ̀", + []uint16{ // 260 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 40 - 7F + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 80 - BF + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry C0 - FF + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007, + // Entry 100 - 13F + 0x0007, 0x0007, 0x0007, 0x0017, + }, + }, + { // mk + mkRegionStr, + mkRegionIdx, + }, + { // ml + mlRegionStr, + mlRegionIdx, + }, + { // mn + mnRegionStr, + mnRegionIdx, + }, + { // mr + mrRegionStr, + mrRegionIdx, + }, + { // ms + msRegionStr, + msRegionIdx, + }, + { // mt + "AndorraEmirati Għarab MaqgħudaAfganistanAntigua and BarbudaAngwillaAlban" + + "ijaArmenjaAngolaAntartikaArÄ¡entinaSamoa AmerikanaAwstrijaAwstraljaAr" + + "ubaGżejjer AlandAżerbajÄ¡anBożnija ĦerżegovinaBarbadosBangladexxBelÄ¡j" + + "uBurkina FasoBulgarijaBaħrajnBurundiBeninBermudaBrunejBolivjaIl-Braż" + + "ilBaħamasButanBouvet IslandBotswanaBjelorussjaBeliżeKanadaCocos (Kee" + + "ling) IslandsDemocratic Republic of the CongoRepubblika Afrikana ÄŠen" + + "traliKongoSvizzeraKosta ta’ l-AvorjuCook IslandsÄŠiliKamerunIÄ‹-ÄŠinaKo" + + "lombjaKosta RikaKubaKape VerdeChristmas IslandÄŠipruRepubblika ÄŠekaIl" + + "-Ä ermanjaÄ ibutiDanimarkaDominikaRepublikka DomenikanaAlÄ¡erijaEkwador" + + "EstonjaEÄ¡ittuSahara tal-PunentEritreaSpanjaEtijopjaUnjoni EwropeaFin" + + "landjaFiÄ¡iFalkland IslandsMikronesjaGżejjer FaroeFranzaGabonL-Ingilt" + + "erraGrenadaÄ eorÄ¡jaGujana FranÄ‹iżaGanaGibraltarGrinlandjaGambjaGineaG" + + "wadelupeGinea EkwatorjaliGreÄ‹jaSouth Georgia and the South Sandwich " + + "IslandsGwatemalaGwamGinea-BissawGujanaĦong Kong S.A.R. ÄŠinaHeard Isl" + + "and and McDonald IslandsĦondurasKroazjaĦaitiUngerijaIndoneżjaIrlanda" + + "IżraelIsle of ManL-IndjaBritish Indian Ocean TerritoryIraqIranIsland" + + "aL-ItaljaÄ amajkaÄ ordanIl-Ä appunKenjaKirgistanKambodjaKiribatiKomoros" + + "Saint Kitts and NevisKoreja ta’ FuqKoreja t’IsfelKuwajtGżejjer Kajma" + + "niKażakstanLaosLibanuSanta LuÄ‹ijaLiechtensteinSri LankaLiberjaLesoto" + + "LitwanjaLussemburguLatvjaLibjaMarokkMonakoMoldovaMadagaskarGżejjer t" + + "a’ MarshallMaÄ‹edonjaMaliMjanmarMongoljaMacao S.A.R., ChinaGżejjer Ma" + + "rjana ta’ FuqMartinikMawritanjaMontserratMaltaMawrizjuMaldivesMalawi" + + "MessikuMalasjaMożambikNamibjaNew CaledoniaNiÄ¡erNorfolk IslandNiÄ¡erja" + + "NikaragwaOlandaNorveÄ¡jaNepalNauruNiueNew ZealandOmanPanamaPeruPoline" + + "sja FranÄ‹iżaPapwa-Ginea Ä didaFilippiniPakistanPolonjaSaint Pierre an" + + "d MiquelonPitcairnPuerto RicoTerritorju PalestinjanPortugallPalauPar" + + "agwajQatarRéunionRumanijaIr-RussjaRwandaGħarabja SawditaSolomon Isla" + + "ndsSeychellesSudanÅ»vezjaSingaporSaint HelenaSlovenjaSvalbard and Jan" + + " MayenSlovakkjaSierra LeoneSan MarinoSenegalSomaljaSurinamSao Tome a" + + "nd PrincipeEl SalvadorSirjaSważilandTurks and Caicos IslandsÄŠadTerri" + + "torji FranÄ‹iżi ta’ NofsinharTogoTajlandjaTaÄ¡ikistanTokelawTimor tal-" + + "LvantTurkmenistanTuneżTongaTurkijaTrinidad u TobagoTuvaluTajwanTanża" + + "nijaUkrainaUgandaUnited States Minor Outlying IslandsL-Istati UnitiU" + + "rugwajUżbekistanVatikanSaint Vincent and the GrenadinesVenezwelaBrit" + + "ish Virgin IslandsU.S. Virgin IslandsVjetnamVanwatuWallis and Futuna" + + "SamoaJemenMajotteAfrika t’IsfelÅ»ambjaÅ»imbabweReÄ¡jun Mhux MagħrufDinj" + + "aAffrikaAmerika t’IsfelOÄ‹ejanjaAffrika tal-PunentAmerika ÄŠentraliAff" + + "rika tal-LvantAffrika ta’ FuqAffrika NofsaniAffrika t’IsfelAmerikaKa" + + "ribewAsja tal-LvantAsja t’Isfel ÄŠentraliAsja tax-XlokkEwropa t’Isfel" + + "Awstralja u New ZealandMelanesjaReÄ¡jun ta’ MikroneżjaPolinesjaAsjaAs" + + "ja ÄŠentraliAsja tal-PunentEwropaEwropa tal-LvantEwropa ta’ FuqEwropa" + + " tal-PunentAmerika Latina", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0020, 0x002a, 0x003d, 0x0045, 0x004d, + 0x0054, 0x005a, 0x0063, 0x006d, 0x007c, 0x0084, 0x008d, 0x0092, + 0x00a0, 0x00ac, 0x00c2, 0x00ca, 0x00d4, 0x00db, 0x00e7, 0x00f0, + 0x00f8, 0x00ff, 0x0104, 0x0104, 0x010b, 0x0111, 0x0118, 0x0118, + 0x0122, 0x012a, 0x012f, 0x013c, 0x0144, 0x014f, 0x0156, 0x015c, + 0x0173, 0x0193, 0x01b0, 0x01b5, 0x01bd, 0x01d1, 0x01dd, 0x01e2, + 0x01e9, 0x01f2, 0x01fa, 0x01fa, 0x0204, 0x0208, 0x0212, 0x0212, + 0x0222, 0x0228, 0x0238, 0x0244, 0x0244, 0x024b, 0x0254, 0x025c, + // Entry 40 - 7F + 0x0271, 0x027a, 0x027a, 0x0281, 0x0288, 0x028f, 0x02a0, 0x02a7, + 0x02ad, 0x02b5, 0x02c3, 0x02cc, 0x02d1, 0x02e1, 0x02eb, 0x02f9, + 0x02ff, 0x0304, 0x0310, 0x0317, 0x0320, 0x0331, 0x0331, 0x0335, + 0x033e, 0x0348, 0x034e, 0x0353, 0x035c, 0x036d, 0x0374, 0x03a0, + 0x03a9, 0x03ad, 0x03b9, 0x03bf, 0x03d6, 0x03f7, 0x0400, 0x0407, + 0x040d, 0x0415, 0x0415, 0x041f, 0x0426, 0x042d, 0x0438, 0x043f, + 0x045d, 0x0461, 0x0465, 0x046c, 0x0474, 0x0474, 0x047c, 0x0483, + 0x048d, 0x0492, 0x049b, 0x04a3, 0x04ab, 0x04b2, 0x04c7, 0x04d7, + // Entry 80 - BF + 0x04e7, 0x04ed, 0x04fd, 0x0507, 0x050b, 0x0511, 0x051e, 0x052b, + 0x0534, 0x053b, 0x0541, 0x0549, 0x0554, 0x055a, 0x055f, 0x0565, + 0x056b, 0x0572, 0x0572, 0x0572, 0x057c, 0x0593, 0x059d, 0x05a1, + 0x05a8, 0x05b0, 0x05c3, 0x05dd, 0x05e5, 0x05ef, 0x05f9, 0x05fe, + 0x0606, 0x060e, 0x0614, 0x061b, 0x0622, 0x062b, 0x0632, 0x063f, + 0x0645, 0x0653, 0x065b, 0x0664, 0x066a, 0x0673, 0x0678, 0x067d, + 0x0681, 0x068c, 0x0690, 0x0696, 0x069a, 0x06ae, 0x06c0, 0x06c9, + 0x06d1, 0x06d8, 0x06f1, 0x06f9, 0x0704, 0x071a, 0x0723, 0x0728, + // Entry C0 - FF + 0x0730, 0x0735, 0x0735, 0x073d, 0x0745, 0x0745, 0x074e, 0x0754, + 0x0765, 0x0774, 0x077e, 0x0783, 0x078a, 0x0792, 0x079e, 0x07a6, + 0x07bc, 0x07c5, 0x07d1, 0x07db, 0x07e2, 0x07e9, 0x07f0, 0x07f0, + 0x0805, 0x0810, 0x0810, 0x0815, 0x081f, 0x081f, 0x0837, 0x083b, + 0x0860, 0x0864, 0x086d, 0x0878, 0x087f, 0x088e, 0x089a, 0x08a0, + 0x08a5, 0x08ac, 0x08bd, 0x08c3, 0x08c9, 0x08d3, 0x08da, 0x08e0, + 0x0904, 0x0912, 0x0919, 0x0924, 0x092b, 0x094b, 0x0954, 0x096a, + 0x097d, 0x0984, 0x098b, 0x099c, 0x09a1, 0x09a1, 0x09a6, 0x09ad, + // Entry 100 - 13F + 0x09bd, 0x09c4, 0x09cd, 0x09e2, 0x09e7, 0x09ee, 0x09ee, 0x09ff, + 0x0a08, 0x0a1a, 0x0a2b, 0x0a3c, 0x0a4d, 0x0a5c, 0x0a6d, 0x0a74, + 0x0a74, 0x0a7b, 0x0a89, 0x0aa1, 0x0aaf, 0x0abf, 0x0ad6, 0x0adf, + 0x0af8, 0x0b01, 0x0b05, 0x0b13, 0x0b22, 0x0b28, 0x0b38, 0x0b48, + 0x0b59, 0x0b67, + }, + }, + { // mua + "andorraSÇr Arabiya ma tainiafghanistaÅ‹antiguan ne Barbudaanguiyaalbaniya" + + "armeniyaangolaargentiniyasamoa Amerikaaustriyaaustraliyaarubaazerbai" + + "jaÅ‹bosniya ne Herzegovinabarbadiyabangladeshiyabelgikaburkina Fasobu" + + "lgariyabahraiÅ‹burundibeniÅ‹bermudiyabruniyaboliviyabrazilyabahamasbut" + + "aÅ‹botswanabelarussiyabeliziyakanadaSÇr Kongo ma dii ne zaircentrafri" + + "kakongoSÇr Swissser Ivoiriyakook ma laÅ‹nesyilikameruÅ‹syiÅ‹kolombiyako" + + "sta RikaKubakap ma laÅ‹neSyipriyaSÇr SyekGermaniyaDjiboutiDaÅ‹markDomi" + + "nikSÇr Dominik ma liialgeriyaEkwatÇrEstoniyaSÇr EgyptSÇr EritreEspaÅ‹" + + "iyaEtiopiaSÇr FinlandSÇr FijiSÇr malouniya ma laÅ‹neMicronesiyaFranss" + + "ÇGaboÅ‹SÇr AnglofoÅ‹GrenadÇGeorgiyaSÇr Guyana ma FranssÇGanaSÇr Gibra" + + "ltarSÇr GroenlandGambiyaGuineSÇr GwadeloupÇSÇr GuineSÇr GrekGwatemal" + + "aGwamGuine ma BissaoGuyanaSÇr HonduraskroatiyaSÇr HaitiHungriyaIndon" + + "esiyaSÇr IrelandSÇr IsraelSÇr IndÇanglofoÅ‹ ma IndiyaIrakIraÅ‹SÇr Isla" + + "ndItaliyaJamaikaJordaniyaJapaÅ‹SÇr KenyaKirgizstaÅ‹kambodiyaSÇr Kiriba" + + "tikomoraSÇr Kristof ne NievÇSÇr Kore fah sÇÅ‹SÇr Kore nekÇsÇÅ‹SÇr Kowa" + + "itkayman ma laÅ‹neKazakstaÅ‹SÇr LaosLibaÅ‹SÇr LuciaLichtÇnsteiÅ‹SÇr Lank" + + "aLiberiyaSÇr LesothoLituaniyaSÇr LuxemburgLetoniyaLibiyaMarokMonakoM" + + "oldoviyaMadagaskarSÇr Marshall ma laÅ‹neMacedoniyaSÇr MaliSÇr Myanmar" + + "MongoliyaSÇr Maria ma laÅ‹neMartinikaMauritaniyaSÇr MontserratSÇr Mal" + + "taSÇr MauricÇMaldivÇSÇr MalawiMexikoMalaysiyaMozambikaNamibiyaKaledo" + + "niya mafuuSÇr NigerNorfolk ma laÅ‹neNigeriyaNikaragwaSÇr ma kasÇÅ‹Norv" + + "egÇSÇr NepalSÇr NauruNiweZeland mafuuOmaÅ‹SÇr PanamaPeruSÇr Polynesiy" + + "a ma FranssÇPapuasiya Guine mafuuFilipiÅ‹PakistaÅ‹PologÅ‹SÇr PÇtar ne M" + + "ikÇlonPitkairnPorto RikoSÇr PalestiniyaSÇr PortugalSÇr PalauParagwai" + + "KatarSÇr ReunionRomaniyaRussiyaRwandaSÇr ArabiyaSÇr Salomon ma laÅ‹ne" + + "SaichelSudaÅ‹SÇr SuedSingapurSÇr HelenaSloveniyaSlovakiyaSierra LeonÇ" + + "SÇr MarinoSenegalSomaliyaSÇr SurinamSao Tome ne PrincipeSÇr Salvador" + + "SyriaSÇr SwazilandTurkiya ne kaicos ma laÅ‹nesyadSÇr TogoTailandTajik" + + "istaÅ‹SÇr TokelauTimoriyaTurkmenistaÅ‹TunisiyaSÇr TongaTurkiyaTrinite " + + "ne TobagoSÇr TuvaluTaiwaÅ‹TanzaniyaUkraiÅ‹UgandaAmerikaUrugwaiUzbekist" + + "aÅ‹VaticaÅ‹SÇr VinceÅ‹ ne GrenadiÅ‹SÇr Venezuelaser Anglofon ma laÅ‹neSÇr" + + " amerika ma laÅ‹neSÇr VietnamSÇr VanuatuWallis ne FutunaSÇr SamoaYeme" + + "Å‹MayotAfrika nekÇsÇÅ‹ZambiyaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001c, 0x0028, 0x003b, 0x0042, 0x004a, + 0x0052, 0x0058, 0x0058, 0x0063, 0x0070, 0x0078, 0x0082, 0x0087, + 0x0087, 0x0092, 0x00a8, 0x00b1, 0x00be, 0x00c5, 0x00d1, 0x00da, + 0x00e2, 0x00e9, 0x00ef, 0x00ef, 0x00f8, 0x00ff, 0x0107, 0x0107, + 0x010f, 0x0116, 0x011c, 0x011c, 0x0124, 0x012f, 0x0137, 0x013d, + 0x013d, 0x0156, 0x0161, 0x0166, 0x0170, 0x017c, 0x018a, 0x018f, + 0x0197, 0x019c, 0x01a5, 0x01a5, 0x01af, 0x01b3, 0x01c0, 0x01c0, + 0x01c0, 0x01c8, 0x01d1, 0x01da, 0x01da, 0x01e2, 0x01ea, 0x01f1, + // Entry 40 - 7F + 0x0204, 0x020c, 0x020c, 0x0214, 0x021c, 0x0226, 0x0226, 0x0231, + 0x023a, 0x0241, 0x0241, 0x024d, 0x0256, 0x026e, 0x0279, 0x0279, + 0x0281, 0x0287, 0x0295, 0x029d, 0x02a5, 0x02bc, 0x02bc, 0x02c0, + 0x02ce, 0x02dc, 0x02e3, 0x02e8, 0x02f8, 0x0302, 0x030b, 0x030b, + 0x0314, 0x0318, 0x0327, 0x032d, 0x032d, 0x032d, 0x033a, 0x0342, + 0x034c, 0x0354, 0x0354, 0x035e, 0x036a, 0x0375, 0x0375, 0x037f, + 0x0392, 0x0396, 0x039b, 0x03a6, 0x03ad, 0x03ad, 0x03b4, 0x03bd, + 0x03c3, 0x03cd, 0x03d8, 0x03e1, 0x03ee, 0x03f4, 0x040a, 0x041d, + // Entry 80 - BF + 0x0431, 0x043c, 0x044c, 0x0456, 0x045f, 0x0465, 0x046f, 0x047d, + 0x0487, 0x048f, 0x049b, 0x04a4, 0x04b2, 0x04ba, 0x04c0, 0x04c5, + 0x04cb, 0x04d4, 0x04d4, 0x04d4, 0x04de, 0x04f5, 0x04ff, 0x0508, + 0x0514, 0x051d, 0x051d, 0x0531, 0x053a, 0x0545, 0x0554, 0x055e, + 0x056b, 0x0573, 0x057e, 0x0584, 0x058d, 0x0596, 0x059e, 0x05ae, + 0x05b8, 0x05c9, 0x05d1, 0x05da, 0x05e9, 0x05f1, 0x05fb, 0x0605, + 0x0609, 0x0615, 0x061a, 0x0625, 0x0629, 0x0644, 0x0659, 0x0661, + 0x066a, 0x0671, 0x0688, 0x0690, 0x069a, 0x06aa, 0x06b7, 0x06c1, + // Entry C0 - FF + 0x06c9, 0x06ce, 0x06ce, 0x06da, 0x06e2, 0x06e2, 0x06e9, 0x06ef, + 0x06fb, 0x0711, 0x0718, 0x071e, 0x0727, 0x072f, 0x073a, 0x0743, + 0x0743, 0x074c, 0x0759, 0x0764, 0x076b, 0x0773, 0x077f, 0x077f, + 0x0793, 0x07a0, 0x07a0, 0x07a5, 0x07b3, 0x07b3, 0x07ce, 0x07d2, + 0x07d2, 0x07db, 0x07e2, 0x07ed, 0x07f9, 0x0801, 0x080e, 0x0816, + 0x0820, 0x0827, 0x0838, 0x0843, 0x084a, 0x0853, 0x085a, 0x0860, + 0x0860, 0x0867, 0x086e, 0x0879, 0x0881, 0x089a, 0x08a8, 0x08be, + 0x08d4, 0x08e0, 0x08ec, 0x08fc, 0x0906, 0x0906, 0x090c, 0x0911, + // Entry 100 - 13F + 0x0922, 0x0929, 0x0931, + }, + }, + { // my + myRegionStr, + myRegionIdx, + }, + { // mzn + "آسنسیون جزیرهآندورامتحده عربی اماراتاÙغانستونآنتیگوا Ùˆ باربوداآنگویلاآلب" + + "انیارمنستونآنگولاجنوبی یخ\u200cبزه قطبآرژانتینآمریکای Ùساموآاتریشاس" + + "ترالیاآروباآلند جزیرهآذربایجونبوسنی Ùˆ هرزگوینباربادوسبنگلادشبلژیکبو" + + "رکینا Ùاسوبلغارستونبحرینبوروندیبنینسنت بارتلمیبرمودابرونئیبولیویهلن" + + "د Ùکاراییبی جزایربرزیلباهامابوتانبووت جزیرهبوتساوانابلاروسبلیزکاناد" + + "اکوک (کیلینگ) جزایرکنگو کینشاسامرکزی Ø¢Ùریقای جمهوریکنگو برازاویلسوی" + + "یسعاج Ùساحلکوک جزایرشیلیکامرونچینکلمبیاکلیپرتون جزیرهکاستاریکاکوباک" + + "یپ وردکوراسائوکریسمس جزیرهقبرسچک جمهوریآلماندیگو گارسیاجیبوتیدانمار" + + "کدومنیکادومنیکن جمهوریالجزیرهسوتا Ùˆ ملیلهاکوادراستونیمصرغربی صحراار" + + "یترهایسپانیااتیوپیاروپا اتحادیهÙنلاندÙیجیÙالکلند جزیره\u200cئونمیکر" + + "ونزیÙارو جزایرÙرانسهگابونبریتانیاگراناداگرجستونÙرانسه\u200cÛŒ Ùگویان" + + "گرنزیغناجبل طارقگرینلندگامبیاگینهگوادلوپاستوایی گینهیونانجنوبی جورج" + + "یا Ùˆ جنوبی ساندویچ جزایرگواتمالاگوئامگینه بیسائوگویانهنگ کنگهارد Ùˆ " + + "Ù…Ú©\u200cدونالد جزایرهندوراسکرواسیهاییتیمجارستونقناری جزایراندونزیای" + + "رلندایسراییلمن Ùجزیرههندبریتانیای هند Ùاوقیانوس Ùمناطقعراقایرانایسل" + + "ندایتالیاجرسیجاماییکااردنجاپونکنیاقرقیزستونکامبوجکیریباتیکومورسنت Ú©" + + "یتس Ùˆ نویسشمالی Ú©Ùرهجنوبی Ú©Ùرهکویتکیمن جزیره\u200cئونقزاقستونلائوسل" + + "بنانسنت لوسیالیختن اشتاینسریلانکالیبریالسوتولتونیلوکزامبورگلاتویالی" + + "بیمراکشموناکومولداویمونته\u200cنگروسنت مارتینماداگاسکارمارشال جزایر" + + "مقدونیهمالیمیانمارمغولستونماکائو (چین دله)شمالی ماریانا جزایرمارتین" + + "یک جزیره\u200cئونموریتانیمونتسراتمالتمورى تيوسمالدیومالاویمکزیکمالز" + + "یموزامبیکنامبیانیو کالیدونیانیجرنورÙولک جزیرهنیجریهنیکاراگوئههلندنر" + + "وژنپالنائورونیئونیوزلندعمانپاناماپروÙرانسه\u200cÛŒ پولی\u200cنزیپاپو" + + "ا نو گینهÙیلیپینپاکستونلهستونسن پییر Ùˆ میکلنپیتکارین جزایرپورتوریکو" + + "Ùلسطین Ùسرزمینپرتغالپالائوپاراگوئهقطراوقیانوسیه\u200cÛŒ Ùپرت Ùجائونر" + + "ئونیونرومانیصربستونروسیهروآنداعربستونسلیمون جزیرهسیشلسودانسوئدسنگاپ" + + "ورسنت هلنااسلوونیسوالبارد Ùˆ يان مايناسلواکیسیرالئونسن مارینوسنگالسو" + + "مالیسورینامجنوبی سودانسائوتومه Ùˆ پرینسیپالسالوادورسنت مارتنسوریهسوا" + + "زیلندتریستان دا جونهاتورکس Ùˆ کایکوس جزایرچادÙرانسه\u200cÛŒ جنوبی منا" + + "طقتوگوتایلندتاجیکستونتوکلائوتیمور شرقیترکمونستونتونستونگاترکیهترینی" + + "داد Ùˆ توباگوتووالوتایوانتانزانیااوکرایناوگانداآمریکای پَرتÙ\u200cÙ¾Ù" + + "لا جزیره\u200cئونمتحده ایالاتاروگوئهازبکستونواتیکانسنت وینسنت Ùˆ گرن" + + "ادینونزوئلابریتانیای ویرجینآمریکای ویرجینویتناموانواتووالیس Ùˆ Ùوتون" + + "اساموآکوزوویمنمایوتجنوبی اÙریقازامبیازیمبابوهنامَیÙّن منطقهجهونآÙری" + + "قاشمالی آمریکاجنوبی آمریکااوقیانوسیهغربی Ø¢Ùریقامیونی آمریکاشرقی Ø¢Ùر" + + "یقاشمالی Û€Ùریقامیونی Ø¢Ùریقاجنوبی Ø¢Ùریقاآمریکاشمالی امریکاکاراییبشرق" + + "ÛŒ آسیاجنوبی آسیاآسیای Ùجنوب\u200cشرقی\u200cوَرجنوبی اروپااوسترالزیم" + + "لانزیمیکرونزی منقطهپولی\u200cنزیآسیامیونی آسیاغربی آسیااروپاشرقی ار" + + "وپاشمالی اروپاغربی اروپالاتین آمریکا", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0019, 0x0025, 0x0045, 0x0057, 0x0077, 0x0085, 0x0091, + 0x00a1, 0x00ad, 0x00cc, 0x00dc, 0x00f7, 0x0101, 0x0111, 0x011b, + 0x012e, 0x0140, 0x015c, 0x016c, 0x017a, 0x0184, 0x019b, 0x01ad, + 0x01b7, 0x01c5, 0x01cd, 0x01e2, 0x01ee, 0x01fa, 0x0206, 0x022c, + 0x0236, 0x0242, 0x024c, 0x025f, 0x0271, 0x027d, 0x0285, 0x0291, + 0x02b1, 0x02c8, 0x02ee, 0x0307, 0x0311, 0x0322, 0x0333, 0x033b, + 0x0347, 0x034d, 0x0359, 0x0374, 0x0386, 0x038e, 0x039b, 0x03ab, + 0x03c2, 0x03ca, 0x03db, 0x03e5, 0x03fa, 0x0406, 0x0414, 0x0422, + // Entry 40 - 7F + 0x043d, 0x044b, 0x0461, 0x046d, 0x0479, 0x047f, 0x0490, 0x049c, + 0x04ac, 0x04b8, 0x04d1, 0x04dd, 0x04e5, 0x0507, 0x0517, 0x052a, + 0x0536, 0x0540, 0x0550, 0x055e, 0x056c, 0x058a, 0x0594, 0x059a, + 0x05a9, 0x05b7, 0x05c3, 0x05cb, 0x05d9, 0x05f0, 0x05fa, 0x0639, + 0x0649, 0x0653, 0x0668, 0x0672, 0x067f, 0x06a9, 0x06b7, 0x06c3, + 0x06cf, 0x06df, 0x06f4, 0x0702, 0x070e, 0x071e, 0x072f, 0x0735, + 0x076e, 0x0776, 0x0780, 0x078c, 0x079a, 0x07a2, 0x07b2, 0x07ba, + 0x07c4, 0x07cc, 0x07de, 0x07ea, 0x07fa, 0x0804, 0x081f, 0x0832, + // Entry 80 - BF + 0x0845, 0x084d, 0x0869, 0x0879, 0x0883, 0x088d, 0x089e, 0x08b5, + 0x08c5, 0x08d1, 0x08db, 0x08e5, 0x08f9, 0x0905, 0x090d, 0x0917, + 0x0923, 0x0931, 0x0946, 0x0959, 0x096d, 0x0984, 0x0992, 0x099a, + 0x09a8, 0x09b8, 0x09d4, 0x09f8, 0x0a1c, 0x0a2c, 0x0a3c, 0x0a44, + 0x0a55, 0x0a61, 0x0a6d, 0x0a77, 0x0a81, 0x0a91, 0x0a9d, 0x0ab6, + 0x0abe, 0x0ad7, 0x0ae3, 0x0af7, 0x0aff, 0x0b07, 0x0b0f, 0x0b1b, + 0x0b23, 0x0b31, 0x0b39, 0x0b45, 0x0b4b, 0x0b6e, 0x0b86, 0x0b94, + 0x0ba2, 0x0bae, 0x0bc9, 0x0be4, 0x0bf6, 0x0c11, 0x0c1d, 0x0c29, + // Entry C0 - FF + 0x0c39, 0x0c3f, 0x0c6e, 0x0c7c, 0x0c88, 0x0c96, 0x0ca0, 0x0cac, + 0x0cba, 0x0cd1, 0x0cd9, 0x0ce3, 0x0ceb, 0x0cf9, 0x0d08, 0x0d16, + 0x0d39, 0x0d47, 0x0d57, 0x0d68, 0x0d72, 0x0d7e, 0x0d8c, 0x0da1, + 0x0dc3, 0x0dd7, 0x0de8, 0x0df2, 0x0e02, 0x0e20, 0x0e45, 0x0e4b, + 0x0e72, 0x0e7a, 0x0e86, 0x0e98, 0x0ea6, 0x0eb9, 0x0ecd, 0x0ed5, + 0x0edf, 0x0ee9, 0x0f09, 0x0f15, 0x0f21, 0x0f31, 0x0f3f, 0x0f4d, + 0x0f85, 0x0f9c, 0x0faa, 0x0fba, 0x0fc8, 0x0fed, 0x0ffb, 0x101a, + 0x1035, 0x1041, 0x104f, 0x1069, 0x1073, 0x107d, 0x1083, 0x108d, + // Entry 100 - 13F + 0x10a4, 0x10b0, 0x10c0, 0x10db, 0x10e3, 0x10ef, 0x1106, 0x111d, + 0x1131, 0x1146, 0x115d, 0x1172, 0x1189, 0x11a0, 0x11b7, 0x11c3, + 0x11da, 0x11e8, 0x11f9, 0x120c, 0x1235, 0x124a, 0x125c, 0x1268, + 0x1283, 0x1294, 0x129c, 0x12af, 0x12c0, 0x12ca, 0x12dd, 0x12f2, + 0x1305, 0x131c, + }, + }, + { // naq + "AndorrabUnited Arab EmiratesAfghanistanniAntiguab tsî BarbudabAnguillabA" + + "lbaniabArmeniabAngolabArgentinabAmericab SamoabAustriabAustraliebAru" + + "babAzerbaijanniBosniab tsî HerzegovinabBarbadosBangladesBelgiummiBur" + + "kina FasobBulgariabBahrainBurundibBeninsBermudasBruneiBoliviabBrazil" + + "iabBahamasBhutansBotswanabBelarusBelizeKanadabDemocratic Republic of" + + " the CongoCentral African RepublikiCongobSwitzerlandiIvoorkusiCook I" + + "slandsChilibCameroonniChinabColombiabCosta RicaCubabCape Verde Islan" + + "dsCyprusCzech RepublikiDuitslandiDjiboutiDenmarkiDominicabDominican " + + "RepublicAlgeriabEcuadoriEstoniabEgiptebEritreabSpaniebEthiopiabFinla" + + "ndiFijibFalkland IslandsMicronesiaFrankreikiGaboniUnited KingdomGren" + + "adaGeorgiabFrench GuianaGhanabGibraltarGreenlandGambiabGuineabGuadel" + + "oupeEquatorial GuineabXrikelandiGuatemalaGuamGuinea-BissauGuyanaHond" + + "urasCroatiabHaitiHongareiebIndonesiabIrlandiIsraeliIndiabBritish Ind" + + "ian Ocean TerritoryIraqiIranniIcelandItaliabJamaicabJordanniJapanniK" + + "enyabKyrgyzstanniCambodiabKiribatiComorosSaint Kitts and NevisKoreab" + + ", NoordKoreab, SuidKuwaitiCayman IslandsKazakhstanniLaosLebanonniSai" + + "nt LuciaLiechtensteinniSri LankabLiberiabLesothobLithuaniabLuxembour" + + "giLatviaLibyabMoroccoMonacoMoldovaMadagascariMarshall IslandsMacedon" + + "iabMalibMyanmarMongoliaNorthern Mariana IslandsMartiniqueMauritaniaM" + + "ontserratMaltaMauritiusMaldivesMalawibMexicobMalaysiabMozambikiNamib" + + "iabNew CaledoniaNigeriNorfolk IslandNigeriebNicaraguabNetherlandsNoo" + + "rweebNepaliNauruNiueNew ZealandiOmanPanamaPerubFrench PolynesiaPapua" + + " New GuineabPhilippinniPakistanniPolandiSaint Pierre and MiquelonPit" + + "cairnPuerto RicoPalestinian West Bank and GazaPortugaliPalauParaguai" + + "bQatarRéunionRomaniaRasiabRwandabSaudi ArabiabSolomon IslandsSeychel" + + "lesSudanniSwedebSingaporeSaint HelenaSloveniaSlovakiaSierra LeoneSan" + + " MarinoSenegaliSomaliabSurinameSão Tomé and PríncipeEl SalvadoriSyri" + + "abSwazilandiTurks and Caicos IslandsChadiTogobThailandiTajikistanTok" + + "elauEast TimorTurkmenistanTunisiabTongaTurkeiebTrinidad and TobagoTu" + + "valuTaiwanTanzaniabUkraineUgandabAmerikabUruguaibUzbekistanVatican S" + + "tateSaint Vincent and the GrenadinesVenezuelabBritish Virgin Islands" + + "U.S. Virgin IslandsVietnammiVanuatuWallis and FutunaSamoaYemenMayott" + + "eSuid AfrikabZambiabZimbabweb", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x001c, 0x0029, 0x003f, 0x0048, 0x0050, + 0x0058, 0x005f, 0x005f, 0x0069, 0x0078, 0x0080, 0x008a, 0x0090, + 0x0090, 0x009c, 0x00b5, 0x00bd, 0x00c6, 0x00cf, 0x00dc, 0x00e5, + 0x00ec, 0x00f4, 0x00fa, 0x00fa, 0x0102, 0x0108, 0x0110, 0x0110, + 0x0119, 0x0120, 0x0127, 0x0127, 0x0130, 0x0137, 0x013d, 0x0144, + 0x0144, 0x0164, 0x017d, 0x0183, 0x018f, 0x0198, 0x01a4, 0x01aa, + 0x01b4, 0x01ba, 0x01c3, 0x01c3, 0x01cd, 0x01d2, 0x01e4, 0x01e4, + 0x01e4, 0x01ea, 0x01f9, 0x0203, 0x0203, 0x020b, 0x0213, 0x021c, + // Entry 40 - 7F + 0x022e, 0x0236, 0x0236, 0x023e, 0x0246, 0x024d, 0x024d, 0x0255, + 0x025c, 0x0265, 0x0265, 0x026d, 0x0272, 0x0282, 0x028c, 0x028c, + 0x0296, 0x029c, 0x02aa, 0x02b1, 0x02b9, 0x02c6, 0x02c6, 0x02cc, + 0x02d5, 0x02de, 0x02e5, 0x02ec, 0x02f6, 0x0308, 0x0312, 0x0312, + 0x031b, 0x031f, 0x032c, 0x0332, 0x0332, 0x0332, 0x033a, 0x0342, + 0x0347, 0x0351, 0x0351, 0x035b, 0x0362, 0x0369, 0x0369, 0x036f, + 0x038d, 0x0392, 0x0398, 0x039f, 0x03a6, 0x03a6, 0x03ae, 0x03b6, + 0x03bd, 0x03c3, 0x03cf, 0x03d8, 0x03e0, 0x03e7, 0x03fc, 0x0409, + // Entry 80 - BF + 0x0415, 0x041c, 0x042a, 0x0436, 0x043a, 0x0443, 0x044e, 0x045d, + 0x0467, 0x046f, 0x0477, 0x0481, 0x048c, 0x0492, 0x0498, 0x049f, + 0x04a5, 0x04ac, 0x04ac, 0x04ac, 0x04b7, 0x04c7, 0x04d1, 0x04d6, + 0x04dd, 0x04e5, 0x04e5, 0x04fd, 0x0507, 0x0511, 0x051b, 0x0520, + 0x0529, 0x0531, 0x0538, 0x053f, 0x0548, 0x0551, 0x0559, 0x0566, + 0x056c, 0x057a, 0x0582, 0x058c, 0x0597, 0x059f, 0x05a5, 0x05aa, + 0x05ae, 0x05ba, 0x05be, 0x05c4, 0x05c9, 0x05d9, 0x05ea, 0x05f5, + 0x05ff, 0x0606, 0x061f, 0x0627, 0x0632, 0x0650, 0x0659, 0x065e, + // Entry C0 - FF + 0x0667, 0x066c, 0x066c, 0x0674, 0x067b, 0x067b, 0x0681, 0x0688, + 0x0695, 0x06a4, 0x06ae, 0x06b5, 0x06bb, 0x06c4, 0x06d0, 0x06d8, + 0x06d8, 0x06e0, 0x06ec, 0x06f6, 0x06fe, 0x0706, 0x070e, 0x070e, + 0x0726, 0x0732, 0x0732, 0x0738, 0x0742, 0x0742, 0x075a, 0x075f, + 0x075f, 0x0764, 0x076d, 0x0777, 0x077e, 0x0788, 0x0794, 0x079c, + 0x07a1, 0x07a9, 0x07bc, 0x07c2, 0x07c8, 0x07d1, 0x07d8, 0x07df, + 0x07df, 0x07e7, 0x07ef, 0x07f9, 0x0806, 0x0826, 0x0830, 0x0846, + 0x0859, 0x0862, 0x0869, 0x087a, 0x087f, 0x087f, 0x0884, 0x088b, + // Entry 100 - 13F + 0x0897, 0x089e, 0x08a7, + }, + }, + { // nd + "AndoraUnited Arab EmiratesAfghanistanAntigua le BarbudaAnguillaAlbaniaAr" + + "meniaAngolaAjentinaSamoa ye AmelikaAustriaAustraliaArubhaAzerbaijanB" + + "hosnia le HerzegovinaBhabhadosiBhangiladeshiBhelgiumBhukina FasoBhul" + + "gariyaBhahareniBhurundiBheniniBhemudaBruneiBholiviyaBraziliBhahamasB" + + "hutaniBotswanaBhelarusiBhelizeKhanadaDemocratic Republic of the Cong" + + "oCentral African RepublicKhongoSwitzerlandIvory CoastCook IslandsChi" + + "leKhameruniChinaKholombiyaKhosta RikhaCubaCape Verde IslandsCyprusCz" + + "ech RepublicGermanyDjiboutiDenmakhiDominikhaDominican RepublicAljeri" + + "yaEcuadorEstoniaEgyptEritreaSpainEthiopiaFinlandFijiFalkland Islands" + + "MicronesiaFuransiGabhoniUnited KingdomGrenadaGeorgiaGwiyana ye Furan" + + "siGhanaGibraltarGreenlandGambiyaGuineaGuadeloupeEquatorial GuineaGre" + + "eceGuatemalaGuamGuinea-BissauGuyanaHondurasCroatiaHayitiHungaryIndon" + + "esiyaIrelandIsuraeliIndiyaBritish Indian Ocean TerritoryIrakiIranIce" + + "landItaliJamaicaJodaniJapanKhenyaKyrgyzstanCambodiaKhiribatiKhomoroS" + + "aint Kitts and NevisNorth KoreaSouth KoreaKhuweitiCayman IslandsKaza" + + "khstanLaosLebhanoniSaint LuciaLiechtensteinSri LankaLibheriyaLesotho" + + "LithuaniaLuxembourgLatviaLibhiyaMorokhoMonakhoMoldovaMadagaskaMarsha" + + "ll IslandsMacedoniaMaliMyanmarMongoliaNorthern Mariana IslandsMartin" + + "iqueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMeksikhoMalezhiy" + + "aMozambiqueNamibhiyaNew CaledoniaNigerNorfolk IslandNigeriyaNicaragu" + + "aNetherlandsNoweyiNephaliNauruNiueNew ZealandOmaniPanamaPheruPholine" + + "siya ye FulansiPapua New GuineaPhilippinesPhakistaniPholandiSaint Pi" + + "erre and MiquelonPitcairnPuerto RicoPalestinian West Bank and GazaPo" + + "rtugalPalauParaguayKathariRéunionRomaniaRashiyaRuwandaSaudi ArabiaSo" + + "lomon IslandsSeychellesSudaniSwedenSingaporeSaint HelenaSloveniaSlov" + + "akiaSierra LeoneSan MarinoSenegaliSomaliyaSurinameSão Tomé and Prínc" + + "ipeEl SalvadorSyriaSwazilandTurks and Caicos IslandsChadiThogoThayil" + + "andiTajikistanThokelawuEast TimorTurkmenistanTunisiyaThongaThekhiTri" + + "nidad le TobagoThuvaluThayiwaniTanzaniyaYukreiniUgandaAmelikaYurugwa" + + "iUzbekistanVatican StateSaint Vincent and the GrenadinesVenezuelaBri" + + "tish Virgin IslandsU.S. Virgin IslandsVietnamVhanuatuWallis and Futu" + + "naSamowaYemeniMayotteMzansi ye AfrikaZambiyaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x001a, 0x0025, 0x0037, 0x003f, 0x0046, + 0x004d, 0x0053, 0x0053, 0x005b, 0x006b, 0x0072, 0x007b, 0x0081, + 0x0081, 0x008b, 0x00a1, 0x00ab, 0x00b8, 0x00c0, 0x00cc, 0x00d6, + 0x00df, 0x00e7, 0x00ee, 0x00ee, 0x00f5, 0x00fb, 0x0104, 0x0104, + 0x010b, 0x0113, 0x011a, 0x011a, 0x0122, 0x012b, 0x0132, 0x0139, + 0x0139, 0x0159, 0x0171, 0x0177, 0x0182, 0x018d, 0x0199, 0x019e, + 0x01a7, 0x01ac, 0x01b6, 0x01b6, 0x01c2, 0x01c6, 0x01d8, 0x01d8, + 0x01d8, 0x01de, 0x01ec, 0x01f3, 0x01f3, 0x01fb, 0x0203, 0x020c, + // Entry 40 - 7F + 0x021e, 0x0226, 0x0226, 0x022d, 0x0234, 0x0239, 0x0239, 0x0240, + 0x0245, 0x024d, 0x024d, 0x0254, 0x0258, 0x0268, 0x0272, 0x0272, + 0x0279, 0x0280, 0x028e, 0x0295, 0x029c, 0x02ae, 0x02ae, 0x02b3, + 0x02bc, 0x02c5, 0x02cc, 0x02d2, 0x02dc, 0x02ed, 0x02f3, 0x02f3, + 0x02fc, 0x0300, 0x030d, 0x0313, 0x0313, 0x0313, 0x031b, 0x0322, + 0x0328, 0x032f, 0x032f, 0x0339, 0x0340, 0x0348, 0x0348, 0x034e, + 0x036c, 0x0371, 0x0375, 0x037c, 0x0381, 0x0381, 0x0388, 0x038e, + 0x0393, 0x0399, 0x03a3, 0x03ab, 0x03b4, 0x03bb, 0x03d0, 0x03db, + // Entry 80 - BF + 0x03e6, 0x03ee, 0x03fc, 0x0406, 0x040a, 0x0413, 0x041e, 0x042b, + 0x0434, 0x043d, 0x0444, 0x044d, 0x0457, 0x045d, 0x0464, 0x046b, + 0x0472, 0x0479, 0x0479, 0x0479, 0x0482, 0x0492, 0x049b, 0x049f, + 0x04a6, 0x04ae, 0x04ae, 0x04c6, 0x04d0, 0x04da, 0x04e4, 0x04e9, + 0x04f2, 0x04fa, 0x0500, 0x0508, 0x0511, 0x051b, 0x0524, 0x0531, + 0x0536, 0x0544, 0x054c, 0x0555, 0x0560, 0x0566, 0x056d, 0x0572, + 0x0576, 0x0581, 0x0586, 0x058c, 0x0591, 0x05a7, 0x05b7, 0x05c2, + 0x05cc, 0x05d4, 0x05ed, 0x05f5, 0x0600, 0x061e, 0x0626, 0x062b, + // Entry C0 - FF + 0x0633, 0x063a, 0x063a, 0x0642, 0x0649, 0x0649, 0x0650, 0x0657, + 0x0663, 0x0672, 0x067c, 0x0682, 0x0688, 0x0691, 0x069d, 0x06a5, + 0x06a5, 0x06ad, 0x06b9, 0x06c3, 0x06cb, 0x06d3, 0x06db, 0x06db, + 0x06f3, 0x06fe, 0x06fe, 0x0703, 0x070c, 0x070c, 0x0724, 0x0729, + 0x0729, 0x072e, 0x0738, 0x0742, 0x074b, 0x0755, 0x0761, 0x0769, + 0x076f, 0x0775, 0x0787, 0x078e, 0x0797, 0x07a0, 0x07a8, 0x07ae, + 0x07ae, 0x07b5, 0x07bd, 0x07c7, 0x07d4, 0x07f4, 0x07fd, 0x0813, + 0x0826, 0x082d, 0x0835, 0x0846, 0x084c, 0x084c, 0x0852, 0x0859, + // Entry 100 - 13F + 0x0869, 0x0870, 0x0878, + }, + }, + { // ne + neRegionStr, + neRegionIdx, + }, + { // nl + nlRegionStr, + nlRegionIdx, + }, + { // nmg + "AndÉ”ÌraMinlambÉ”Ì NsaÅ‹Ìnsa mí ArabiaAfganistaÅ‹Antíga bá BarbúdaAnguíllaAl" + + "baniaArméniaAngolaArgentínaSamoa m ÌAmÉ›ÌrkaÖtrishÖstraliáÃrúbaAzerba" + + "ïjaÅ‹Bosnia na ÆrzegovinaBarbadoBɛŋgladÉ›shBÉ›lgikBurkina FasoBulgaria" + + "BahrainBurundiBeninBÉ›rmudaBrunÉ›iBoliviaBrésilBahamasButaÅ‹BotswanaBel" + + "arusBÉ›lizKanadaKongó ZaïreSentrafríkaKongoSwitzÉ›rlandKote d´IvoireMa" + + "Å‹Ì má KookTshiliKamerunShineKÉ”lÉ”ÌmbiaKosta RíkaKubaMaÅ‹Ì má KapvÉ›rSi" + + "priaNlambÉ”Ì bó tschÉ›kJamanJibútiDanemarkDominíkaNlambÉ”Ì DominíkaAlge" + + "riaEkuateurÆstoniaÄgyptÉ›nErytreaPaŋáEthiopiáFinlandeFijiáMaÅ‹ má Falk" + + "landMikronesiaFalaGabɔŋNlambÉ”Ì NgÉ›lÉ›nGrenadaJÉ”rgiaGuyane FalaGánaGil" + + "bratarGreenlandGambiaGuineGuadeloupGuine EkuatorialGrÉ›ceGuatemalaGua" + + "mGuine BissoGuyanaƆndúrasKroasiaHaïtiƆngríaIndonesiaIrlandÄsrÉ›lIndia" + + "NlambÉ”Ì ngÉ›lÉ›n ma yí maÅ‹ ntsiÉ›hIrakIranIslandItaliaJamaikaJÉ”rdaniaJa" + + "pÉ”nKÉ›nyaKyrgystaÅ‹KambodiaKiribatiKÉ”mÉ”rSaint Kitts na NevisKoré yí bv" + + "uÉ”Koré yí síKowÉ›itMaÅ‹Ì má kumbiKazakstaÅ‹LaosLibaÅ‹Saint LuciaLishenst" + + "einSri LankaLiberiaLesotoLituaniáLuxembourgLatviaLibyaMarÉ”kMonakoMÉ”l" + + "daviaMadagaskarMaÅ‹Ì má MarshallMacedoniaMaliMyanmarMÉ”ngoliaMaÅ‹Ì Mari" + + "áMartinikaMoritaniaMÉ”nserratMaltaMorisseMaldiviaMalawiMÉ›xikMalaysia" + + "MozambikNamibiaKaledoni nwanahNigerMaÅ‹Ì má NÉ”rfÉ”rkNigeriaNikaraguaNe" + + "dÉ›rlandNÉ”rvÉ›gNepalNoruNiuÉ›Zeland nwanahOmanPanamaPeruPolynesia FalaG" + + "uine PapuasiFilipinPakistanPÉ”lɔŋSaint Peter ba MikelÉ”nPitkairnPuÉ›rto" + + " RikoPalÉ›stinPÉ”rtugalPaloParaguayKatarRéuniÉ”nRoumaniaRussiRwandaSaud" + + "i ArabiaMaÅ‹Ì má SalomÉ”nSeychÉ›lleSudaÅ‹SuÉ›dSingapurSaint LinaSloveniaS" + + "lovakiaSierra LeÉ”nSan MarinoSenegalSomáliaSurinamSao Tomé ba Prinshi" + + "pSalvadÉ”rSyriaSwazilandMaÅ‹Ì má Turk na KaikoTshadTogoTaïlandTajikist" + + "aÅ‹TokeloTimÉ”r tsindikÄ“hTurkmÉ›nistaÅ‹TunisiáTÉ”ngaTurkiTrinidad ba Tobá" + + "góTuvalúTaïwanTanzáníaUkrÉ›nUgandaAmɛŕkaUruguayUsbÇkistaÅ‹VatikaÅ‹Saint" + + " Vincent ba GrenadinesVÇnÇzuelaMinsilÉ›Ì mímaÅ‹ mí ngɛ̄lɛ̄nMinsilÉ› mí " + + "maÅ‹Ì m´AmÉ›rkaViÉ›tnamVanuatuWallis ba FutunaSamoaYÇmÉ›nMayÉ”tAfríka yí " + + "síZambiaZimbabwÇ", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x002a, 0x0035, 0x0049, 0x0052, 0x0059, + 0x0061, 0x0067, 0x0067, 0x0071, 0x0084, 0x008b, 0x0095, 0x009c, + 0x009c, 0x00a8, 0x00bd, 0x00c4, 0x00d1, 0x00d8, 0x00e4, 0x00ec, + 0x00f3, 0x00fa, 0x00ff, 0x00ff, 0x0107, 0x010e, 0x0115, 0x0115, + 0x011c, 0x0123, 0x0129, 0x0129, 0x0131, 0x0138, 0x013e, 0x0144, + 0x0144, 0x0151, 0x015d, 0x0162, 0x016e, 0x017c, 0x018b, 0x0191, + 0x0198, 0x019d, 0x01a9, 0x01a9, 0x01b4, 0x01b8, 0x01ca, 0x01ca, + 0x01ca, 0x01d0, 0x01e5, 0x01ea, 0x01ea, 0x01f1, 0x01f9, 0x0202, + // Entry 40 - 7F + 0x0215, 0x021c, 0x021c, 0x0224, 0x022c, 0x0235, 0x0235, 0x023c, + 0x0242, 0x024b, 0x024b, 0x0253, 0x0259, 0x026a, 0x0274, 0x0274, + 0x0278, 0x027f, 0x0291, 0x0298, 0x029f, 0x02aa, 0x02aa, 0x02af, + 0x02b8, 0x02c1, 0x02c7, 0x02cc, 0x02d5, 0x02e5, 0x02eb, 0x02eb, + 0x02f4, 0x02f8, 0x0303, 0x0309, 0x0309, 0x0309, 0x0312, 0x0319, + 0x031f, 0x0327, 0x0327, 0x0330, 0x0336, 0x033d, 0x033d, 0x0342, + 0x0368, 0x036c, 0x0370, 0x0376, 0x037c, 0x037c, 0x0383, 0x038c, + 0x0392, 0x0398, 0x03a2, 0x03aa, 0x03b2, 0x03b9, 0x03cd, 0x03dc, + // Entry 80 - BF + 0x03e9, 0x03f0, 0x0400, 0x040a, 0x040e, 0x0414, 0x041f, 0x042a, + 0x0433, 0x043a, 0x0440, 0x0449, 0x0453, 0x0459, 0x045e, 0x0464, + 0x046a, 0x0473, 0x0473, 0x0473, 0x047d, 0x0490, 0x0499, 0x049d, + 0x04a4, 0x04ad, 0x04ad, 0x04ba, 0x04c3, 0x04cc, 0x04d6, 0x04db, + 0x04e2, 0x04ea, 0x04f0, 0x04f6, 0x04fe, 0x0506, 0x050d, 0x051c, + 0x0521, 0x0535, 0x053c, 0x0545, 0x054f, 0x0557, 0x055c, 0x0560, + 0x0565, 0x0572, 0x0576, 0x057c, 0x0580, 0x058e, 0x059b, 0x05a2, + 0x05aa, 0x05b2, 0x05c9, 0x05d1, 0x05dd, 0x05e6, 0x05ef, 0x05f3, + // Entry C0 - FF + 0x05fb, 0x0600, 0x0600, 0x0609, 0x0611, 0x0611, 0x0616, 0x061c, + 0x0628, 0x063b, 0x0645, 0x064b, 0x0650, 0x0658, 0x0662, 0x066a, + 0x066a, 0x0672, 0x067e, 0x0688, 0x068f, 0x0697, 0x069e, 0x069e, + 0x06b3, 0x06bc, 0x06bc, 0x06c1, 0x06ca, 0x06ca, 0x06e2, 0x06e7, + 0x06e7, 0x06eb, 0x06f3, 0x06fe, 0x0704, 0x0715, 0x0723, 0x072b, + 0x0731, 0x0736, 0x074a, 0x0751, 0x0758, 0x0762, 0x0768, 0x076e, + 0x076e, 0x0776, 0x077d, 0x0789, 0x0791, 0x07ac, 0x07b7, 0x07da, + 0x07f8, 0x0800, 0x0807, 0x0817, 0x081c, 0x081c, 0x0823, 0x0829, + // Entry 100 - 13F + 0x0838, 0x083e, 0x0847, + }, + }, + { // nn + "AscensionAndorraDei sameinte arabiske emirataAfghanistanAntigua og Barbu" + + "daAnguillaAlbaniaArmeniaAngolaAntarktisArgentinaAmerikansk SamoaAust" + + "errikeAustraliaArubaÃ…landAserbajdsjanBosnia og HercegovinaBarbadosBa" + + "ngladeshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSaint Barthélem" + + "yBermudaBrunei DarussalamBoliviaBrasilBahamasBhutanBouvetøyaBotswana" + + "KviterusslandBelizeCanadaKokosøyaneKongo-KinshasaDen sentralafrikans" + + "ke republikkenKongo-BrazzavilleSveitsElfenbeinskystenCookøyaneChileK" + + "amerunKinaColombiaClippertonøyaCosta RicaCubaKapp VerdeChristmasøyaK" + + "yprosTsjekkiaTysklandDiego GarciaDjiboutiDanmarkDominicaDen dominika" + + "nske republikkenAlgerieCeuta og MelillaEcuadorEstlandEgyptVest-Sahar" + + "aEritreaSpaniaEtiopiaDen europeiske unionenFinlandFijiFalklandsøyane" + + "MikronesiaføderasjonenFærøyaneFrankrikeGabonStorbritanniaGrenadaGeor" + + "giaFransk GuyanaGuernseyGhanaGibraltarGrønlandGambiaGuineaGuadeloupe" + + "Ekvatorial-GuineaHellasSør-Georgia og Sør-Sandwich-øyaneGuatemalaGua" + + "mGuinea-BissauGuyanaHongkong S.A.R. KinaHeard- og McDonaldsøyaneHond" + + "urasKroatiaHaitiUngarnKanariøyaneIndonesiaIrlandIsraelManIndiaBritis" + + "ke omrÃ¥de i Det indiske havIrakIranIslandItaliaJerseyJamaicaJordanJa" + + "panKenyaKirgisistanKambodsjaKiribatiKomoreneSt. Christopher og Nevis" + + "Nord-KoreaSør-KoreaKuwaitCaymanøyaneKasakhstanLaosLibanonSt. LuciaLi" + + "echtensteinSri LankaLiberiaLesothoLitauenLuxembourgLatviaLibyaMarokk" + + "oMonacoMoldovaMontenegroSaint MartinMadagaskarMarshalløyaneMakedonia" + + "MaliMyanmarMongoliaMacao S.A.R. KinaNord-MariananeMartiniqueMauritan" + + "iaMontserratMaltaMauritiusMaldivaneMalawiMexicoMalaysiaMosambikNamib" + + "iaNy-CaledoniaNigerNorfolkøyaneNigeriaNicaraguaNederlandNoregNepalNa" + + "uruNiueNew ZealandOmanPanamaPeruFransk PolynesiaPapua Ny-GuineaFilip" + + "pinanePakistanPolenSt. Pierre og MiquelonPitcairnPuerto RicoPalestin" + + "sk territoriumPortugalPalauParaguayQatarYtre OseaniaRéunionRomaniaSe" + + "rbiaRusslandRwandaSaudi ArabiaSalomonøyaneSeychellaneSudanSverigeSin" + + "gaporeSaint HelenaSloveniaSvalbard og Jan MayenSlovakiaSierra LeoneS" + + "an MarinoSenegalSomaliaSurinamSão Tomé og PríncipeEl SalvadorSyriaSw" + + "azilandTristan da CunhaTurks- og CaicosøyaneTchadFranske søromrÃ¥deTo" + + "goThailandTadsjikistanTokelauAust-TimorTurkmenistanTunisiaTongaTyrki" + + "aTrinidad og TobagoTuvaluTaiwanTanzaniaUkrainaUgandaUSAs ytre småøya" + + "rUSAUruguayUsbekistanVatikanstatenSt. Vincent og GrenadinaneVenezuel" + + "aDei britiske jomfruøyaneDei amerikanske jomfruøyaneVietnamVanuatuWa" + + "llis og FutunaSamoaYemenMayotteSør-AfrikaZambiaZimbabweukjent omrÃ¥de" + + "verdaAfrikaNord-AmerikaSør-AmerikaOseaniaVest-AfrikaSentral-AmerikaA" + + "ust-AfrikaNord-AfrikaSentral-AfrikaSørlege AfrikaAmerikanordlege Ame" + + "rikaKaribiaAust-AsiaSør-AsiaSøraust-AsiaSør-EuropaAustralia og New Z" + + "ealandMelanesiaMikronesiaPolynesiaAsiaSentral-AsiaVest-AsiaEuropaAus" + + "t-EuropaNord-EuropaVest-EuropaLatin-Amerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002d, 0x0038, 0x004a, 0x0052, 0x0059, + 0x0060, 0x0066, 0x006f, 0x0078, 0x0088, 0x0092, 0x009b, 0x00a0, + 0x00a6, 0x00b2, 0x00c7, 0x00cf, 0x00d9, 0x00df, 0x00eb, 0x00f3, + 0x00fa, 0x0101, 0x0106, 0x0117, 0x011e, 0x012f, 0x0136, 0x0136, + 0x013c, 0x0143, 0x0149, 0x0153, 0x015b, 0x0168, 0x016e, 0x0174, + 0x017f, 0x018d, 0x01ae, 0x01bf, 0x01c5, 0x01d5, 0x01df, 0x01e4, + 0x01eb, 0x01ef, 0x01f7, 0x0205, 0x020f, 0x0213, 0x021d, 0x021d, + 0x022a, 0x0230, 0x0238, 0x0240, 0x024c, 0x0254, 0x025b, 0x0263, + // Entry 40 - 7F + 0x027f, 0x0286, 0x0296, 0x029d, 0x02a4, 0x02a9, 0x02b4, 0x02bb, + 0x02c1, 0x02c8, 0x02de, 0x02e5, 0x02e9, 0x02f8, 0x030f, 0x0319, + 0x0322, 0x0327, 0x0334, 0x033b, 0x0342, 0x034f, 0x0357, 0x035c, + 0x0365, 0x036e, 0x0374, 0x037a, 0x0384, 0x0395, 0x039b, 0x03bf, + 0x03c8, 0x03cc, 0x03d9, 0x03df, 0x03f3, 0x040c, 0x0414, 0x041b, + 0x0420, 0x0426, 0x0432, 0x043b, 0x0441, 0x0447, 0x044a, 0x044f, + 0x0471, 0x0475, 0x0479, 0x047f, 0x0485, 0x048b, 0x0492, 0x0498, + 0x049d, 0x04a2, 0x04ad, 0x04b6, 0x04be, 0x04c6, 0x04de, 0x04e8, + // Entry 80 - BF + 0x04f2, 0x04f8, 0x0504, 0x050e, 0x0512, 0x0519, 0x0522, 0x052f, + 0x0538, 0x053f, 0x0546, 0x054d, 0x0557, 0x055d, 0x0562, 0x0569, + 0x056f, 0x0576, 0x0580, 0x058c, 0x0596, 0x05a4, 0x05ad, 0x05b1, + 0x05b8, 0x05c0, 0x05d1, 0x05df, 0x05e9, 0x05f3, 0x05fd, 0x0602, + 0x060b, 0x0614, 0x061a, 0x0620, 0x0628, 0x0630, 0x0637, 0x0643, + 0x0648, 0x0655, 0x065c, 0x0665, 0x066e, 0x0673, 0x0678, 0x067d, + 0x0681, 0x068c, 0x0690, 0x0696, 0x069a, 0x06aa, 0x06b9, 0x06c4, + 0x06cc, 0x06d1, 0x06e7, 0x06ef, 0x06fa, 0x0710, 0x0718, 0x071d, + // Entry C0 - FF + 0x0725, 0x072a, 0x0736, 0x073e, 0x0745, 0x074b, 0x0753, 0x0759, + 0x0765, 0x0772, 0x077d, 0x0782, 0x0789, 0x0792, 0x079e, 0x07a6, + 0x07bb, 0x07c3, 0x07cf, 0x07d9, 0x07e0, 0x07e7, 0x07ee, 0x07ee, + 0x0805, 0x0810, 0x0810, 0x0815, 0x081e, 0x082e, 0x0844, 0x0849, + 0x085c, 0x0860, 0x0868, 0x0874, 0x087b, 0x0885, 0x0891, 0x0898, + 0x089d, 0x08a3, 0x08b5, 0x08bb, 0x08c1, 0x08c9, 0x08d0, 0x08d6, + 0x08e9, 0x08ec, 0x08f3, 0x08fd, 0x090a, 0x0924, 0x092d, 0x0946, + 0x0962, 0x0969, 0x0970, 0x0980, 0x0985, 0x0985, 0x098a, 0x0991, + // Entry 100 - 13F + 0x099c, 0x09a2, 0x09aa, 0x09b8, 0x09bd, 0x09c3, 0x09cf, 0x09db, + 0x09e2, 0x09ed, 0x09fc, 0x0a07, 0x0a12, 0x0a20, 0x0a2f, 0x0a36, + 0x0a46, 0x0a4d, 0x0a56, 0x0a5f, 0x0a6c, 0x0a77, 0x0a8f, 0x0a98, + 0x0aa2, 0x0aab, 0x0aaf, 0x0abb, 0x0ac4, 0x0aca, 0x0ad5, 0x0ae0, + 0x0aeb, 0x0af8, + }, + }, + { // nnh + "Kàmalûm", + []uint16{ // 49 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0009, + }, + }, + { // no + noRegionStr, + noRegionIdx, + }, + { // nus + "AndoraAbganithtanAntiguaa kÉ›nÉ› BarbudaAÅ‹guÉ›laAlbäniaAÉ›rmäniaAÅ‹golaAÉ›rgen" + + "tinAmerika thamowAthtÉ›riaAthÉ”ra̱liaArubaAdhe̱rbe̱ja̱nBothnia kÉ›nÉ› ɣä" + + "rgobiniaBärbadothBengeladiecBe̱lgimBurkinÉ› pa̱thuBulga̱a̱riaBa̱reenB" + + "urundiBe̱ni̱nBe̱rmudaaBurunÉ›yBulibiaBäraadhiilBämuÉ”thButa̱nBothiwaan" + + "aBe̱lÉ›ruthBilidhaKänÉ›daCÉ›ntrÉ”l aprika repuÉ”blicKɔŋgÉ”Kodibo̱o̱Kuk É£a̱" + + "ylÉ›nCili̱KÉ›mÉ›runCaynaKolombiaKothtirikaKÉ›p bedi É£a̱ylÉ›nAlgeriaKorwaa" + + "tiaBurutic É£e̱ndian oce̱nKombodiaKomruthKaymÉ›n É£a̱ylÉ›nSudanCa̱dBurut" + + "ic dhuɔ̱ɔ̱l be̱rgin", + []uint16{ // 248 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0006, 0x0011, 0x0028, 0x0031, 0x0039, + 0x0043, 0x004a, 0x004a, 0x0054, 0x0062, 0x006b, 0x0077, 0x007c, + 0x007c, 0x008c, 0x00a7, 0x00b1, 0x00bc, 0x00c4, 0x00d4, 0x00e1, + 0x00e9, 0x00f0, 0x00f9, 0x00f9, 0x0103, 0x010b, 0x0112, 0x0112, + 0x011d, 0x0126, 0x012d, 0x012d, 0x0137, 0x0142, 0x0149, 0x0151, + 0x0151, 0x0151, 0x016c, 0x0174, 0x0174, 0x017f, 0x018d, 0x0193, + 0x019c, 0x01a1, 0x01a9, 0x01a9, 0x01b3, 0x01b3, 0x01c7, 0x01c7, + 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, 0x01c7, + // Entry 40 - 7F + 0x01c7, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, + 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, + 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, + 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, + 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01ce, 0x01d7, + 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, + 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, 0x01f0, + 0x01f0, 0x01f0, 0x01f0, 0x01f8, 0x01f8, 0x01ff, 0x01ff, 0x01ff, + // Entry 80 - BF + 0x01ff, 0x01ff, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + // Entry C0 - FF + 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, 0x0211, + 0x0211, 0x0211, 0x0211, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, + 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, + 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x0216, 0x021b, + 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, + 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, + 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x021b, 0x0238, + }, + }, + { // nyn + "AndoraAmahanga ga Buharabu ageeteereineAfuganistaniAngiguwa na BabudaAng" + + "wiraArubaniaArimeniyaAngoraArigentinaSamowa ya AmeerikaOsituriaOsitu" + + "reeriyaArubaAzabagyaniBoziniya na HezegovinaBabadosiBangaradeshiBubi" + + "rigiBokina FasoBurugariyaBahareniBurundiBeniniBerimudaBuruneiBoriivi" + + "yaBuraziiriBahamaButaniBotswanaBararusiBerizeKanadaDemokoratika Ripa" + + "aburika ya KongoEihanga rya Rwagati ya AfirikaKongoSwisiAivore Kosit" + + "iEbizinga bya KuukuChileKameruuniChinaKorombiyaKositarikaCubaEbizing" + + "a bya KepuvadeSaipurasiRipaaburika ya ZeekiBugirimaaniGyibutiDeenima" + + "akaDominikaRipaaburika ya DominicaArigyeriyaIkwedaEsitoniyaMisiriEri" + + "teriyaSipeyiniEthiyopiyaBufiniFigyiEbizinga bya FaakilandaMikironesi" + + "yaBufaransaGabooniBungyerezaGurenadaGyogiyaGuyana ya BufaransaGanaGi" + + "buraataGuriinirandiGambiyaGineGwaderupeGuniGuriisiGwatemaraGwamuGine" + + "bisauGuyanaHondurasiKorasiyaHaitiHangareIndoneeziyaIrerandiIsirairiI" + + "ndiyaEbizinga bya Indian ebya BungyerezaIraakaIraaniAisilandiItareGy" + + "amaikaYorudaaniGyapaaniKenyaKirigizistaniKambodiyaKiribatiKoromoSent" + + "i Kittis na NevisiKoreya AmatembaKoreya AmashuumaKuweitiEbizinga bya" + + " KayimaniKazakisitaniLayosiLebanoniSenti RusiyaLishenteniSirirankaLi" + + "beriyaLesothoLithuaniaLakizembaagaLatviyaLibyaMoroccoMonacoMoridovaM" + + "adagasikaEbizinga bya MarshaaMasedooniaMariMyanamarMongoriaEbizinga " + + "by’amatemba ga MarianaMartiniqueMauriteeniyaMontserratiMaritaMaurish" + + "iasiMaridivesMarawiMexicomarayiziaMozambiqueNamibiyaNiukaredoniaNaig" + + "yaEkizinga NorifokoNaigyeriyaNikaragwaHoorandiNoorweNepoNauruNiueNiu" + + "zirandiOmaaniPanamaPeruPolinesia ya BufaransaPapuaFiripinoPakisitaan" + + "iPoorandiSenti Piyerre na MikweronPitkainiPwetorikoParestiina na Gaz" + + "aPocugoPalaawuParagwaiKataRiyuniyoniRomaniyaRrashaRwandaSaudi Areebi" + + "yaEbizinga bya SurimaaniShesheresiSudaniSwideniSingapoSenti HerenaSi" + + "rovaaniyaSirovaakiyaSirra RiyooniSamarinoSenegoSomaariyaSurinaamuSaw" + + "o Tome na PurinsipoEri SalivadoSiriyaSwazirandiEbizinga bya Buturuki" + + " na KaikoChadiTogoTairandiTajikisitaniTokerawuBurugweizooba bwa Timo" + + "riTurukimenisitaniTuniziaTongaButuruki /TakeTurinidad na TobagoTuvar" + + "uTayiwaaniTanzaniaUkureiniUgandaAmerikaUrugwaiUzibekisitaniVatikaniS" + + "enti Vinsent na GurenadiniVenezuweraEbizinga bya Virigini ebya Bungy" + + "erezaEbizinga bya Virigini ebya AmerikaViyetinaamuVanuatuWarris na F" + + "utunaSamowaYemeniMayoteSausi AfirikaZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0027, 0x0033, 0x0045, 0x004c, 0x0054, + 0x005d, 0x0063, 0x0063, 0x006d, 0x007f, 0x0087, 0x0093, 0x0098, + 0x0098, 0x00a2, 0x00b8, 0x00c0, 0x00cc, 0x00d4, 0x00df, 0x00e9, + 0x00f1, 0x00f8, 0x00fe, 0x00fe, 0x0106, 0x010d, 0x0116, 0x0116, + 0x011f, 0x0125, 0x012b, 0x012b, 0x0133, 0x013b, 0x0141, 0x0147, + 0x0147, 0x0168, 0x0186, 0x018b, 0x0190, 0x019d, 0x01af, 0x01b4, + 0x01bd, 0x01c2, 0x01cb, 0x01cb, 0x01d5, 0x01d9, 0x01ee, 0x01ee, + 0x01ee, 0x01f7, 0x020b, 0x0216, 0x0216, 0x021d, 0x0227, 0x022f, + // Entry 40 - 7F + 0x0246, 0x0250, 0x0250, 0x0256, 0x025f, 0x0265, 0x0265, 0x026e, + 0x0276, 0x0280, 0x0280, 0x0286, 0x028b, 0x02a2, 0x02ae, 0x02ae, + 0x02b7, 0x02be, 0x02c8, 0x02d0, 0x02d7, 0x02ea, 0x02ea, 0x02ee, + 0x02f7, 0x0303, 0x030a, 0x030e, 0x0317, 0x031b, 0x0322, 0x0322, + 0x032b, 0x0330, 0x0339, 0x033f, 0x033f, 0x033f, 0x0348, 0x0350, + 0x0355, 0x035c, 0x035c, 0x0367, 0x036f, 0x0377, 0x0377, 0x037d, + 0x03a0, 0x03a6, 0x03ac, 0x03b5, 0x03ba, 0x03ba, 0x03c2, 0x03cb, + 0x03d3, 0x03d8, 0x03e5, 0x03ee, 0x03f6, 0x03fc, 0x0412, 0x0421, + // Entry 80 - BF + 0x0431, 0x0438, 0x044d, 0x0459, 0x045f, 0x0467, 0x0473, 0x047d, + 0x0486, 0x048e, 0x0495, 0x049e, 0x04aa, 0x04b1, 0x04b6, 0x04bd, + 0x04c3, 0x04cb, 0x04cb, 0x04cb, 0x04d5, 0x04e9, 0x04f3, 0x04f7, + 0x04ff, 0x0507, 0x0507, 0x0528, 0x0532, 0x053e, 0x0549, 0x054f, + 0x055a, 0x0563, 0x0569, 0x056f, 0x0578, 0x0582, 0x058a, 0x0596, + 0x059c, 0x05ad, 0x05b7, 0x05c0, 0x05c8, 0x05ce, 0x05d2, 0x05d7, + 0x05db, 0x05e5, 0x05eb, 0x05f1, 0x05f5, 0x060b, 0x0610, 0x0618, + 0x0623, 0x062b, 0x0644, 0x064c, 0x0655, 0x0667, 0x066d, 0x0674, + // Entry C0 - FF + 0x067c, 0x0680, 0x0680, 0x068a, 0x0692, 0x0692, 0x0698, 0x069e, + 0x06ac, 0x06c2, 0x06cc, 0x06d2, 0x06d9, 0x06e0, 0x06ec, 0x06f7, + 0x06f7, 0x0702, 0x070f, 0x0717, 0x071d, 0x0726, 0x072f, 0x072f, + 0x0745, 0x0751, 0x0751, 0x0757, 0x0761, 0x0761, 0x077f, 0x0784, + 0x0784, 0x0788, 0x0790, 0x079c, 0x07a4, 0x07bc, 0x07cc, 0x07d3, + 0x07d8, 0x07e6, 0x07f9, 0x07ff, 0x0808, 0x0810, 0x0818, 0x081e, + 0x081e, 0x0825, 0x082c, 0x0839, 0x0841, 0x085c, 0x0866, 0x088b, + 0x08ad, 0x08b8, 0x08bf, 0x08cf, 0x08d5, 0x08d5, 0x08db, 0x08e1, + // Entry 100 - 13F + 0x08ee, 0x08f4, 0x08fc, + }, + }, + { // om + "BrazilChinaGermanyItoophiyaaFranceUnited KingdomIndiaItalyJapanKeeniyaaR" + + "ussiaUnited States", + []uint16{ // 242 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, + 0x000b, 0x000b, 0x000b, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + // Entry 40 - 7F + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x0022, 0x0022, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x003a, 0x003a, 0x003a, 0x003a, + 0x003f, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + // Entry 80 - BF + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + // Entry C0 - FF + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x005a, + }, + }, + { // or + "ଆଣà­à¬¡à­‹à¬°à¬¾à¬¸à¬‚ଯà­à¬•à­à¬¤ ଆରବ à¬à¬®à¬¿à¬°à­‡à¬Ÿà¬¸à­à¬†à¬«à¬¾à¬—ାନିସà­à¬¤à¬¾à¬¨à­à¬†à¬£à­à¬Ÿà¬¿à¬—à­à¬† à¬à¬¬à¬‚ ବାରବà­à¬¦à¬¾à¬†à¬™à­à¬—à­à¬‡à¬²à­à¬²à¬¾à¬†à¬²" + + "ବାନିଆଆରà­à¬®à­‡à¬¨à¬¿à¬†à¬†à¬™à­à¬—ୋଲାଆରà­à¬£à­à¬Ÿà¬•à¬Ÿà¬¿à¬•à¬¾à¬†à¬°à­à¬œà­‡à¬£à­à¬Ÿà¬¿à¬¨à¬¾à¬†à¬®à­‡à¬°à¬¿à¬•à¬¾à¬¨à­ ସାମୋଆଅଷà­à¬Ÿà­à¬°à¬¿à¬†à¬…" + + "ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬†à¬†à¬°à­à¬¬à¬¾à¬†à¬²à¬¾à¬£à­à¬¡ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬†à¬œà­‡à¬°à¬¬à¬¾à¬‡à¬œà¬¾à¬¨à­à¬¬à­‹à¬¸à¬¨à¬¿à¬† à¬à¬¬à¬‚ ହରà­à¬œà¬—ୋଭିନାବାର" + + "ବାଡୋସà­à¬¬à¬¾à¬™à­à¬—ଲାଦେଶà­à¬¬à­‡à¬²à¬œà¬¿à­Ÿà¬®à­à¬¬à­à¬°à­à¬•à¬¿à¬¨à­‹ ଫାସୋବà­à¬²à¬—େରିଆବାହାରିନà­à¬¬à­à¬°à­à¬¨à­à¬¦à¬¿à¬¬à­‡à¬¨à¬¿" + + "ନà­à¬¸à­‡à¬£à­à¬Ÿ ବାରà­à¬¥à­‡à¬²à­‡à¬®à¬¿à¬¬à¬°à¬®à­à¬¡à¬¾à¬¬à­à¬°à­à¬¨à­‡à¬‡à¬¬à­‹à¬²à¬­à¬¿à¬†à¬¬à­à¬°à¬¾à¬œà¬¿à¬²à­à¬¬à¬¾à¬¹à¬¾à¬®à¬¾à¬¸à­à¬­à­à¬Ÿà¬¾à¬¨à­à¬¬à­Œà¬­à­‡à¬Ÿà­ " + + "ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬¬à­‹à¬Ÿà¬¸à­à¬¬à¬¾à¬¨à­à¬¬à­‡à¬²à¬¾à¬°à­à¬·à­à¬¬à­‡à¬²à¬¿à¬œà­à¬•à¬¾à¬¨à¬¾à¬¡à¬¾à¬•à­‹à¬•à­‹à¬¸à­ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬•à¬™à­à¬—à­‹-କିନସ" + + "ାସାମଧà­à­Ÿ ଆଫà­à¬°à¬¿à¬•à­€à­Ÿ ଗଣତନà­à¬¤à­à¬°à¬•à¬™à­à¬—à­‹-ବà­à¬°à¬¾à¬œà¬¿à¬­à¬¿à¬²à­à¬²à­‡à¬¸à­à¬¬à¬¿à¬œà¬°à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬†à¬‡à¬¬à¬°à­€ କୋଷà­" + + "ଟକà­à¬•à­ ଆଇସଲà­à­Ÿà¬¾à¬£à­à¬¡à¬šà¬¿à¬²à­à¬²à­€à¬•à¬¾à¬®à­‡à¬°à­à¬¨à­à¬šà¬¿à¬¨à­à¬•à­‹à¬²à¬®à­à¬¬à¬¿à¬†à¬•à­‹à¬·à­à¬Ÿà¬¾ ରିକାକà­à­±à¬¿à¬¬à¬¾à¬•à­‡à¬ªà­ ଭର" + + "à­à¬¦à­‡à¬–à­à¬°à­€à¬·à­à¬Ÿà¬®à¬¾à¬¸ ଆଇଲà­à­Ÿà¬¾à¬£à­à¬¡à¬¸à¬¾à¬‡à¬ªà­à¬°à¬¸à­à¬šà­‡à¬•à­ ସାଧାରଣତନà­à¬¤à­à¬°à¬œà¬°à­à¬®à¬¾à¬¨à­€à¬¡à¬¿à¬¬à­Œà¬Ÿà¬¿à¬¡à­‡à¬¨à¬®à¬¾" + + "ରà­à¬•à¬¡à­‹à¬®à¬¿à¬¨à¬¾à¬•à¬¾à¬¡à­‹à¬®à¬¿à¬¨à¬•à¬¾à¬¨à­ ପà­à¬°à¬œà¬¾à¬¤à¬¨à­à¬¤à­à¬°à¬†à¬²à¬œà­‡à¬°à¬¿à¬†à¬‡à¬•à­à­±à¬¾à¬¡à­‹à¬°à­à¬à¬¸à­à¬¤à­‹à¬¨à¬¿à¬†à¬‡à¬œà¬¿à¬ªà­à¬Ÿà¬ªà¬¶à­à¬š" + + "ିମ ସାହାରାଇରିଟà­à¬°à¬¿à­Ÿà¬¾à¬¸à­à¬ªà­‡à¬¨à­à¬‡à¬¥à¬¿à¬“ପିଆୟà­à¬°à­‹à¬ªà¬¿à¬†à¬¨à­ à­Ÿà­à¬¨à¬¿à¬…ନà­à¬«à¬¿à¬¨à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬«à¬¿à¬œà¬¿à¬«à¬²à­à¬•" + + "ଲà­à­Ÿà¬¾à¬£à­à¬¡ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬®à¬¾à¬‡à¬•à­à¬°à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬«à¬¾à¬°à­‹à¬‡ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬«à­à¬°à¬¾à¬¨à­à¬¸à¬—ାବୋନà­à¬¬à­à¬°à¬¿à¬Ÿà­‡à¬¨" + + "à­à¬—à­à¬°à­‡à¬¨à¬¾à¬¡à¬¾à¬œà¬°à­à¬œà¬¿à¬†à¬«à­à¬°à­‡à¬žà­à¬š ଗà­à¬‡à¬¨à¬¾à¬—à­à¬à¬°à¬¨à­‡à¬¸à¬¿à¬˜à¬¾à¬¨à¬¾à¬œà¬¿à¬¬à­à¬°à¬¾à¬²à­à¬Ÿà¬°à­à¬—à­à¬°à­€à¬¨à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬—ାମ" + + "à­à¬¬à¬¿à¬†à¬—à­à¬à¬¨à­‡à¬†à¬—ୌଡେଲୌପେଇକà­à¬¬à¬¾à¬Ÿà­‡à¬°à¬¿à¬†à¬²à­ ଗà­à¬‡à¬¨à¬¿à¬†à¬—à­à¬°à­€à¬¸à­à¬¦à¬•à­à¬·à¬¿à¬£ ଜରà­à¬œà¬¿à¬† à¬à¬¬à¬‚ ଦକà­à¬·à¬¿" + + "ଣ ସାଣà­à¬¡à­±à¬¿à¬šà­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬—à­à¬à¬¤à¬®à¬¾à¬²à¬¾à¬—à­à¬†à¬®à­à¬—à­à¬‡à¬¨à¬¿à¬†-ବିସାଉଗà­à¬‡à¬¨à¬¾à¬¹à¬‚କଂ ବିଶେଷ ପà­à¬°" + + "ଶାସନିକ କà­à¬·à­‡à¬¤à­à¬° ଚୀନà­à¬¹à¬¾à¬°à­à¬¡ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œ à¬à¬¬à¬‚ ମà­à­Ÿà¬¾à¬•à¬¡à­‹à¬¨à¬¾à¬²à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬¹à­‹à¬£à­" + + "ଡାରà­à¬¸à­à¬•à­à¬°à­‹à¬†à¬Ÿà¬¿à¬†à¬¹à¬¾à¬‡à¬¤à¬¿à¬¹à¬™à­à¬—େରୀଇଣà­à¬¡à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬†à­Ÿà¬°à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬‡à¬¸à­à¬°à¬¾à¬à¬²à­à¬†à¬‡à¬²à­ ଅଫୠମୈନ" + + "à­à¬­à¬¾à¬°à¬¤à¬¬à­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଭାରତୀୟ ସାମà­à¬¦à­à¬°à¬¿à¬• କà­à¬·à­‡à¬¤à­à¬°à¬‡à¬°à¬¾à¬•à­à¬‡à¬°à¬¾à¬¨à­à¬†à¬‡à¬¸à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬‡à¬Ÿà¬¾à¬²à­€à¬œà¬°à­" + + "ସିଜାମାଇକାଜୋରà­à¬¡à¬¾à¬¨à­à¬œà¬¾à¬ªà¬¾à¬¨à­à¬•à­‡à¬¨à¬¿à­Ÿà¬¾à¬•à¬¿à¬°à­à¬—ିଜିସà­à¬¥à¬¾à¬¨à¬•à¬¾à¬®à­à¬¬à­‹à¬¡à¬¿à¬†à¬•à¬¿à¬°à¬¿à¬¬à¬¾à¬Ÿà­€à¬•à¬¾à¬®à­‹à¬°à¬¸à­" + + "ସେଣà­à¬Ÿ କିଟସୠà¬à¬£à­à¬¡ ନେଭିସà­à¬‰à¬¤à­à¬¤à¬° କୋରିଆଦକà­à¬·à¬¿à¬£ କୋରିଆକà­à¬à¬¤à­à¬•à­‡à¬®à­à­Ÿà¬¾à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ª" + + "à­à¬žà­à¬œà¬•à¬¾à¬œà¬¾à¬•à¬¾à¬¸à­à¬¥à¬¾à¬¨à­à¬²à¬¾à¬“ସà­à¬²à­‡à¬¬à¬¾à¬¨à¬¨à­à¬¸à­‡à¬£à­à¬Ÿ ଲà­à¬¸à¬¿à¬†à¬²à¬¿à¬šà­‡à¬¸à­à¬¤à¬¿à¬†à¬¨à¬¾à¬¨à­à¬¶à­à¬°à­€à¬²à¬™à­à¬•à¬¾à¬²à¬¿à¬¬à­‡à¬°" + + "ିଆଲେସୋଥୋଲିଥାଆନିଆଲକà­à¬¸à­‡à¬®à¬¬à¬°à­à¬—ଲାଟଭିଆଲିବିଆମୋରୋକà­à¬•à­‹à¬®à­‹à¬¨à¬¾à¬•à­‹à¬®à¬¾à¬²à¬¡à­‹à¬­à¬¾à¬®à¬£à­à¬Ÿà­‡à¬—à­à¬°" + + "ୋସେଣà­à¬Ÿ ମାରà­à¬Ÿà¬¿à¬¨à­à¬®à¬¾à¬¡à¬¾à¬—ାସà­à¬•à¬°à­à¬®à¬¾à¬°à­à¬¶à¬²à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬®à¬¾à¬¸à­‡à¬¡à­‹à¬¨à¬¿à¬†à¬®à¬¾à¬³à­€à¬®à¬¿à­Ÿà¬¾à¬®à¬¾à¬°à­à¬®" + + "ଙà­à¬—ୋଲିଆମାକାଉ SAR ଚିନà­à¬‰à¬¤à­à¬¤à¬° ମାରିଆନା ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬®à¬¾à¬°à­à¬Ÿà¬¿à¬¨à¬¿à¬•à­à­Ÿà­à¬®à¬¾à¬‰à¬°à¬¿à¬Ÿà¬¾à¬¨à¬¿" + + "ଆମଣà­à¬Ÿà­‡à¬¸à­‡à¬°à¬¾à¬Ÿà­à¬®à¬¾à¬²à­à¬Ÿà¬¾à¬®à­Œà¬°à¬¿à¬¸à¬¸à­à¬®à¬¾à¬³à¬¦à­à¬¬à­€à¬ªà¬®à¬¾à¬²à­±à¬¿à¬®à­‡à¬•à­à¬¸à¬¿à¬•à­‹à¬®à¬¾à¬²à­‡à¬¸à¬¿à¬†à¬®à­‹à¬œà¬¾à¬®à­à¬¬à¬¿à¬•à­à­Ÿà­à¬¨" + + "ାମà­à¬¬à¬¿à¬†à¬¨à­‚ତନ କାଲେଡୋନିଆନାଇଜରà­à¬¨à¬°à¬«à­à¬²à¬•à­ ଦà­à¬¬à­€à¬ªà¬¨à¬¾à¬‡à¬œà­‡à¬°à¬¿à¬†à¬¨à¬¿à¬•à¬¾à¬°à¬¾à¬—à­à¬†à¬¨à­‡à¬¦à¬°à¬²à­à­Ÿà¬¾à¬£à­" + + "ଡନରୱେନେପାଳନାଉରà­à¬¨à¬¿à¬‰à¬¨à­à­Ÿà­à¬œà¬¿à¬²à¬¾à¬£à­à¬¡à¬“ମାନà­à¬ªà¬¾à¬¨à¬¾à¬®à¬¾à¬ªà­‡à¬°à­à¬«à­à¬°à­‡à¬žà­à¬š ପଲିନେସିଆପପà­à¬† ନ" + + "à­à­Ÿà­ ଗà­à¬à¬¨à¬¿à¬†à¬«à¬¿à¬²à¬¿à¬ªà¬¾à¬‡à¬¨à¬¸à­à¬ªà¬¾à¬•à¬¿à¬¸à­à¬¤à¬¾à¬¨à¬ªà­‹à¬²à¬¾à¬£à­à¬¡à¬¸à­‡à¬£à­à¬Ÿ ପିà¬à¬°à­‡ à¬à¬¬à¬‚ ମିକà­à¬¬à¬¾à¬²à­‹à¬¨à­à¬ªà¬¿à¬Ÿà¬•" + + "ାଇରିନà­à¬ªà­à¬à¬°à­à¬¤à­à¬¤à­‹ ରିକୋପାଲେସà­à¬¤à­‡à¬¨à¬¿à¬†à¬ªà¬°à­à¬¤à­à¬¤à­à¬—ାଲà­à¬ªà¬¾à¬²à¬¾à¬‰à¬ªà¬¾à¬°à¬¾à¬—à­à¬à¬•à¬¤à¬¾à¬°à­à¬†à¬‰à¬Ÿà¬²à­‡à¬‡à¬‚" + + " ଓସେନିଆରିୟà­à¬¨à¬¿à¬…ନà­à¬°à­‹à¬®à¬¾à¬¨à¬¿à¬†à¬¸à¬°à­à¬¬à¬¿à¬†à¬°à­à¬·à¬¿à¬†à¬°à¬¾à­±à¬¾à¬£à­à¬¡à¬¾à¬¸à¬¾à¬‰à¬¦à¬¿ ଆରବିଆସୋଲୋମନୠଦà­à¬¬à­€à¬ªà¬ªà­" + + "ଞà­à¬œà¬¸à­‡à¬šà­‡à¬²à¬¸à­à¬¸à­à¬¦à¬¾à¬¨à­à¬¸à­à­±à­‡à¬¡à­‡à¬¨à­à¬¸à¬¿à¬™à­à¬—ାପà­à¬°à­à¬¸à­‡à¬£à­à¬Ÿ ହେଲେନାସà­à¬²à­‹à¬­à­‡à¬¨à¬¿à¬†à¬¸à¬¾à¬²à­à¬­à¬¾à¬°à­à¬¡ à¬" + + "ବଂ ଜାନୠମାୟୋନà­à¬¸à­à¬²à­‹à¬­à¬¾à¬•à¬¿à¬†à¬¸à¬¿à¬“ରା ଲିଓନà­à¬¸à¬¾à¬¨à­ ମାରିନୋସେନେଗାଲà­à¬¸à­‹à¬®à¬¾à¬²à¬¿à¬†à¬¸à­à¬°à¬¿à¬¨à¬¾" + + "ମସାଓ ଟୋମେ à¬à¬¬à¬‚ ପà­à¬°à¬¿à¬¨à¬¸à¬¿à¬ªà¬¿à¬à¬²à­ ସାଲଭାଡୋରà­à¬¸à¬¿à¬°à¬¿à¬†à¬¸à­à¬¬à¬¾à¬œà¬¿à¬²à¬¾à¬£à­à¬¡à¬¤à­à¬°à­à¬•à¬¸à­ à¬à¬¬à¬‚ ସା" + + "ଇକସୠଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬šà¬¾à¬¦à­à¬«à¬°à¬¾à¬¸à­€ ଦକà­à¬·à¬¿à¬£ କà­à¬·à­‡à¬¤à­à¬°à¬Ÿà­‹à¬—ୋଥାଇଲାଣà­à¬¡à¬¤à¬¾à¬œà¬¿à¬•à¬¿à¬¸à­à¬¥à¬¾à¬¨à­à¬Ÿà­‹à¬•" + + "େଲାଉପà­à¬°à­à¬¬ ତିମୋରà­à¬¤à­à¬°à­à¬•à¬®à­‡à¬¨à¬¿à¬¸à­à¬¤à¬¾à¬¨à­à¬¤à­à¬¨à¬¿à¬¸à¬¿à¬†à¬Ÿà­‹à¬™à­à¬—ାତà­à¬°à­à¬•à­€à¬¤à­à¬°à¬¿à¬¨à¬¿à¬¦à¬¾à¬¦à­ à¬à¬¬à¬‚ ଟ" + + "ୋବାଗୋଟà­à¬­à¬¾à¬²à­à¬¤à¬¾à¬‡à­±à¬¾à¬¨à­à¬¤à¬¾à¬žà­à¬œà¬¾à¬¨à¬¿à¬†à­Ÿà­à¬•à­à¬°à¬¾à¬‡à¬¨à­à¬‰à¬—ାଣà­à¬¡à¬¾à­Ÿà­à¬¨à¬¾à¬‡à¬Ÿà­‡à¬¡à­ ଷà­à¬Ÿà­‡à¬Ÿà¬¸à­ ମାଇନର" + + "ୠଆଉଟଲେଇଂ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬¯à­à¬•à­à¬¤ ରାଷà­à¬Ÿà­à¬° ଆମେରିକାଉରà­à¬—à­à¬à¬‰à¬œà¬¬à­‡à¬•à¬¿à¬¸à­à¬¥à¬¾à¬¨à­à¬­à¬¾à¬Ÿà¬¿à¬•à¬¾à¬¨" + + "à­à¬¸à­‡à¬£à­à¬Ÿ ଭିନସେଣà­à¬Ÿ à¬à¬¬à¬‚ ଦି ଗà­à¬°à­‡à¬¨à¬¾à¬¡à¬¿à¬¸à­à¬­à­‡à¬¨à¬œà­à¬à¬²à¬¾à¬¬à­à¬°à¬¿à¬Ÿà¬¿à¬¶à­ ଭରà­à¬œà¬¿à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬ž" + + "à­à¬œà­Ÿà­à¬à¬¸à­ ଭରà­à¬œà¬¿à¬¨à­ ଦà­à¬¬à­€à¬ªà¬ªà­à¬žà­à¬œà¬­à¬¿à¬à¬¤à¬¨à¬¾à¬®à­à¬­à¬¾à¬¨à­à¬†à¬¤à­à­±à¬¾à¬²à¬¿à¬¸à­ à¬à¬¬à¬‚ ଫà­à¬¤à­à¬¨à¬¾à¬¸à¬¾à¬®à­‹à¬†à­Ÿà­‡à¬®" + + "େନà­à¬®à¬¾à­Ÿà­‹à¬Ÿà­‡à¬¦à¬•à­à¬·à¬¿à¬£ ଆଫà­à¬°à¬¿à¬•à¬¾à¬œà¬¾à¬®à­à¬¬à¬¿à¬†à¬œà¬¿à¬®à­à¬¬à¬¾à­±à­‡à¬…ଜଣା କିମà­à¬¬à¬¾ ଅବୈଧ ପà­à¬°à¬¦à­‡à¬¶à¬¬à¬¿à¬¶à­à¬¬" + + "ଆଫà­à¬°à¬¿à¬•à¬¾à¬‰à¬¤à­à¬¤à¬° ଆମେରିକାଦକà­à¬·à¬¿à¬£ ଆମେରିକାଓସୋନିଆନà­à¬ªà¬¶à­à¬šà¬¿à¬® ଆଫà­à¬°à¬¿à¬•à¬¾à¬®à¬§à­à­Ÿ ଆମେରି" + + "କାପୂରà­à¬¬ ଆଫà­à¬°à¬¿à¬•à¬¾à¬‰à¬¤à­à¬¤à¬° ଆଫà­à¬°à¬¿à¬•à¬¾à¬®à¬§à­à­Ÿ ଆଫà­à¬°à¬¿à¬•à¬¾à¬¦à¬•à­à¬·à¬¿à¬£à¬¸à­à¬¥ ଆଫà­à¬°à¬¿à¬•à¬¾à¬†à¬®à­‡à¬°à¬¿à¬•à¬¾à¬¸à­" + + "ଉତà­à¬¤à¬°à¬¸à­à¬¥ ଆମେରିକାକାରିବିଆନà­à¬ªà­‚ରà­à¬¬ à¬à¬¸à¬¿à¬†à¬¦à¬•à­à¬·à¬¿à¬£ à¬à¬¸à¬¿à¬†à¬¦à¬•à­à¬·à¬¿à¬£-ପୂରà­à¬¬ à¬à¬¸à¬¿à¬†à¬¦à¬•à­" + + "ଷିଣ à­Ÿà­à¬°à­‹à¬ªà­à¬…ଷà­à¬Ÿà­à¬°à­‡à¬²à¬¿à¬† à¬à¬¬à¬‚ ନà­à­Ÿà­à¬œà¬¿à¬²à­à­Ÿà¬¾à¬£à­à¬¡à¬®à­‡à¬²à¬¾à¬¨à­‡à¬¸à¬¿à¬†à¬®à¬¾à¬‡à¬•à­à¬°à­‹à¬¨à­‡à¬¸à¬¿à¬†à¬¨à­ ଅଞà­à¬š" + + "ଳପଲିନେସିଆà¬à¬¸à¬¿à¬†à¬®à¬§à­à­Ÿ à¬à¬¸à¬¿à¬†à¬ªà¬¶à­à¬šà¬¿à¬® à¬à¬¸à¬¿à¬†à­Ÿà­à¬°à­‹à¬ªà­à¬ªà­‚ରà­à¬¬ à­Ÿà­à¬°à­‹à¬ªà­à¬‰à¬¤à­à¬¤à¬° à­Ÿà­à¬°à­‹à¬ªà­à¬ªà¬¶à­" + + "ଚିମ à­Ÿà­à¬°à­‹à¬ªà­à¬²à¬¾à¬Ÿà¬¿à¬¨à­ ଆମେରିକା à¬à¬¬à¬‚ କାରିବିଆନà­", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0015, 0x004d, 0x0074, 0x00ac, 0x00ca, 0x00df, + 0x00f7, 0x010c, 0x012d, 0x014e, 0x0179, 0x0191, 0x01af, 0x01be, + 0x01ef, 0x0210, 0x024b, 0x0266, 0x0287, 0x029f, 0x02c4, 0x02dc, + 0x02f4, 0x030c, 0x031e, 0x034c, 0x035e, 0x0373, 0x0385, 0x0385, + 0x039d, 0x03b5, 0x03c7, 0x03f8, 0x0413, 0x042b, 0x043d, 0x044f, + 0x0480, 0x04a5, 0x04e3, 0x0517, 0x053e, 0x055d, 0x0588, 0x059a, + 0x05b2, 0x05be, 0x05d6, 0x05d6, 0x05f5, 0x0607, 0x0623, 0x0623, + 0x065d, 0x0675, 0x06a6, 0x06bb, 0x06bb, 0x06cd, 0x06e5, 0x06fd, + // Entry 40 - 7F + 0x073a, 0x074f, 0x074f, 0x076a, 0x0782, 0x0794, 0x07b9, 0x07d4, + 0x07e6, 0x07fb, 0x082c, 0x084a, 0x0856, 0x0896, 0x08ba, 0x08e8, + 0x08fd, 0x090f, 0x0927, 0x093f, 0x0951, 0x0976, 0x098e, 0x099a, + 0x09bb, 0x09df, 0x09f4, 0x0a06, 0x0a1e, 0x0a55, 0x0a67, 0x0ae4, + 0x0afc, 0x0b0b, 0x0b2d, 0x0b3c, 0x0b97, 0x0c10, 0x0c2e, 0x0c46, + 0x0c55, 0x0c6a, 0x0c6a, 0x0c88, 0x0ca6, 0x0cbe, 0x0ce1, 0x0ced, + 0x0d4a, 0x0d59, 0x0d68, 0x0d86, 0x0d95, 0x0da4, 0x0db9, 0x0dd1, + 0x0de3, 0x0df5, 0x0e1c, 0x0e37, 0x0e4f, 0x0e64, 0x0ea3, 0x0ec2, + // Entry 80 - BF + 0x0ee4, 0x0ef3, 0x0f2a, 0x0f4e, 0x0f5d, 0x0f72, 0x0f91, 0x0fb8, + 0x0fd3, 0x0fe8, 0x0ffa, 0x1012, 0x1030, 0x1042, 0x1051, 0x1069, + 0x107b, 0x1090, 0x10ab, 0x10d3, 0x10f4, 0x1128, 0x1143, 0x114f, + 0x1167, 0x117f, 0x119f, 0x11e3, 0x1207, 0x1225, 0x1246, 0x1258, + 0x126d, 0x1285, 0x1294, 0x12ac, 0x12c1, 0x12e5, 0x12fa, 0x1322, + 0x1334, 0x1359, 0x1371, 0x138c, 0x13ad, 0x13b9, 0x13c8, 0x13d7, + 0x13e0, 0x1401, 0x1410, 0x1422, 0x142e, 0x145c, 0x1488, 0x14a6, + 0x14c1, 0x14d6, 0x151e, 0x153c, 0x1564, 0x1585, 0x15a6, 0x15b5, + // Entry C0 - FF + 0x15ca, 0x15d9, 0x1601, 0x161c, 0x1631, 0x1643, 0x1652, 0x166a, + 0x1689, 0x16bd, 0x16d2, 0x16e4, 0x16fc, 0x171a, 0x173c, 0x1757, + 0x179c, 0x17b7, 0x17d6, 0x17f5, 0x180d, 0x1822, 0x1837, 0x1837, + 0x1873, 0x1898, 0x1898, 0x18a7, 0x18c8, 0x18c8, 0x1919, 0x1925, + 0x195d, 0x1969, 0x1981, 0x19a5, 0x19ba, 0x19dc, 0x1a09, 0x1a1e, + 0x1a30, 0x1a42, 0x1a7d, 0x1a8f, 0x1aa4, 0x1abf, 0x1ada, 0x1aef, + 0x1b68, 0x1ba3, 0x1bb5, 0x1bd9, 0x1bf1, 0x1c49, 0x1c61, 0x1cae, + 0x1cf2, 0x1d0a, 0x1d1f, 0x1d4e, 0x1d5d, 0x1d5d, 0x1d6f, 0x1d81, + // Entry 100 - 13F + 0x1da9, 0x1dbe, 0x1dd6, 0x1e15, 0x1e24, 0x1e39, 0x1e5e, 0x1e86, + 0x1e9e, 0x1ec6, 0x1ee8, 0x1f0d, 0x1f32, 0x1f54, 0x1f85, 0x1fa0, + 0x1fce, 0x1fe9, 0x2005, 0x2024, 0x2053, 0x2078, 0x20c8, 0x20e3, + 0x211d, 0x2135, 0x2141, 0x215a, 0x2179, 0x218b, 0x21ad, 0x21cf, + 0x21f4, 0x2242, + }, + }, + { // os + "БразилиКитайГерманФранцСтыр БританиГуырдзыÑтонИндиИталиЯпонУӕрӕÑеÐИШÐӕзо" + + "нгӕ бӕÑтӕДунеÐфрикӕОкеаниÐмерикӕÐзиЕвропӕ", + []uint16{ // 286 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + // Entry 40 - 7F + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x002e, 0x002e, 0x0045, 0x0045, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x006d, 0x006d, 0x006d, 0x006d, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + // Entry 80 - BF + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, + // Entry C0 - FF + 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0075, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, + 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, 0x0087, + // Entry 100 - 13F + 0x0087, 0x0087, 0x0087, 0x00a0, 0x00a8, 0x00b4, 0x00b4, 0x00b4, + 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00c0, 0x00ce, + 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, 0x00ce, + 0x00ce, 0x00ce, 0x00d4, 0x00d4, 0x00d4, 0x00e0, + }, + }, + { // pa + paRegionStr, + paRegionIdx, + }, + { // pa-Arab + "پکستان", + []uint16{ // 185 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000c, + }, + }, + { // pl + plRegionStr, + plRegionIdx, + }, + {}, // prg + { // ps + "اÙغانستانالبانیهانګولاانتارکتیکااتریشبنګله\u200cدیشبلغاریهکاناډاسویسچینک" + + "ولمبیاکیوباالمانډنمارکالجزایرمصرهسپانیهحبشهÙنلینډÙرانسهبرتانیهګاناګ" + + "یانایونانګواتیمالاهانډوراسمجارستاناندونیزیاهندعراقآیسلینډایټالیهجمی" + + "کاجاپانکمبودیاکویټلاوسلبنانلایبریالیبیامراکشمغولستانمالیزیانایجیریا" + + "نکاراګواهالÛنډناروÛنیپالنیوزیلنډپاکستانپولنډÙلسطینپورتګالروسیهروندا" + + "سعودی عربستانسویډنسالوÛډورسوریهتاجکستانتنزانیایوروګواییمن", + []uint16{ // 255 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0012, 0x0012, 0x0020, + 0x0020, 0x002c, 0x0040, 0x0040, 0x0040, 0x004a, 0x004a, 0x004a, + 0x004a, 0x004a, 0x004a, 0x004a, 0x005d, 0x005d, 0x005d, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x0077, + 0x0077, 0x0077, 0x0077, 0x0077, 0x007f, 0x007f, 0x007f, 0x007f, + 0x007f, 0x0085, 0x0093, 0x0093, 0x0093, 0x009d, 0x009d, 0x009d, + 0x009d, 0x009d, 0x009d, 0x00a7, 0x00a7, 0x00a7, 0x00b3, 0x00b3, + // Entry 40 - 7F + 0x00b3, 0x00c1, 0x00c1, 0x00c1, 0x00c1, 0x00c7, 0x00c7, 0x00c7, + 0x00d5, 0x00dd, 0x00dd, 0x00e9, 0x00e9, 0x00e9, 0x00e9, 0x00e9, + 0x00f5, 0x00f5, 0x0103, 0x0103, 0x0103, 0x0103, 0x0103, 0x010b, + 0x010b, 0x010b, 0x010b, 0x0115, 0x0115, 0x0115, 0x011f, 0x011f, + 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0131, 0x0141, 0x0141, + 0x0141, 0x0151, 0x0151, 0x0163, 0x0163, 0x0163, 0x0163, 0x0169, + 0x0169, 0x0171, 0x0171, 0x017f, 0x018d, 0x018d, 0x0197, 0x0197, + 0x01a1, 0x01a1, 0x01a1, 0x01af, 0x01af, 0x01af, 0x01af, 0x01af, + // Entry 80 - BF + 0x01af, 0x01b7, 0x01b7, 0x01b7, 0x01bf, 0x01c9, 0x01c9, 0x01c9, + 0x01c9, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01d7, 0x01e1, 0x01eb, + 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, 0x01eb, + 0x01eb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x01fb, + 0x01fb, 0x01fb, 0x01fb, 0x01fb, 0x0209, 0x0209, 0x0209, 0x0209, + 0x0209, 0x0209, 0x0219, 0x0229, 0x0235, 0x023f, 0x0249, 0x0249, + 0x0249, 0x0259, 0x0259, 0x0259, 0x0259, 0x0259, 0x0259, 0x0259, + 0x0267, 0x0271, 0x0271, 0x0271, 0x0271, 0x027d, 0x028b, 0x028b, + // Entry C0 - FF + 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x028b, 0x0295, 0x029f, + 0x02b8, 0x02b8, 0x02b8, 0x02b8, 0x02c2, 0x02c2, 0x02c2, 0x02c2, + 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, 0x02c2, + 0x02c2, 0x02d2, 0x02d2, 0x02dc, 0x02dc, 0x02dc, 0x02dc, 0x02dc, + 0x02dc, 0x02dc, 0x02dc, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, + 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02ec, 0x02fa, 0x02fa, 0x02fa, + 0x02fa, 0x02fa, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, + 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x030a, 0x0310, + }, + }, + { // pt + ptRegionStr, + ptRegionIdx, + }, + { // pt-PT + ptPTRegionStr, + ptPTRegionIdx, + }, + { // qu + "AndorraAfganistánAlbaniaArmeniaAngolaArgentinaSamoa AmericanaAustriaAust" + + "raliaAzerbaiyánBangladeshBélgicaBulgariaBaréinBurundiBenínBrunéiBoli" + + "viaBonaireBrasilBahamasButánBotsuanaBelarúsIslas CocosCongo (RDC)Con" + + "goSuizaCôte d’IvoireChileCamerúnChinaColombiaCosta RicaCubaCurazaoIs" + + "la ChristmasChipreAlemaniaYibutiDinamarcaDominicaArgeliaEcuadorEston" + + "iaEgiptoEritreaEspañaEtiopíaFinlandiaFiyiMicronesiaFranciaGabónReino" + + " UnidoGuerneseyGhanaGambiaGuineaGuinea EcuatorialGreciaGuatemalaGuam" + + "Guinea-BisáuGuyanaHong Kong (RAE)Islas Heard y McDonaldHondurasCroac" + + "iaHaitíIndonesiaIsraelIndiaIrakIránIslandiaItaliaJerseyJordaniaKenia" + + "KirguistánCamboyaKiribatiComorasSan Cristóbal y NievesCorea del Nort" + + "eCorea del SurKuwaitKazajistánLaosLíbanoLiechtensteinSri LankaLiberi" + + "aLesotoLituaniaLuxemburgoLetoniaMarruecosMónacoMoldovaSan MartínMada" + + "gascarIslas MarshallERY MacedoniaMalíMyanmarMacao RAEIslas Marianas " + + "del NorteMauritaniaMaltaMauricioMaldivasMalawiMéxicoMozambiqueNamibi" + + "aNueva CaledoniaNígerIsla NorfolkNigeriaNicaraguaPaíses BajosNoruega" + + "NepalNauruOmánPanamáPerúPolinesia FrancesaPapúa Nueva GuineaFilipina" + + "sPakistánPoloniaSan Pedro y MiquelónIslas PitcairnPuerto RicoPalesti" + + "na KamachikuqPortugalPalaosParaguayQatarSerbiaRusiaRuandaArabia Saud" + + "íSeychellesSudánSueciaSingapurEsloveniaEslovaquiaSierra LeonaSan Ma" + + "rinoSenegalSomaliaSurinamSudán del SurSanto Tomé y PríncipeEl Salvad" + + "orSint MaartenSiriaSuazilandiaChadTerritorios Australes FrancesesTog" + + "oTailandiaTayikistánTimor-LesteTúnezTongaTurquíaTrinidad y TobagoTan" + + "zaniaUgandaIslas menores alejadas de los EE.UU.Estados UnidosUruguay" + + "UzbekistánSanta Sede (Ciudad del Vaticano)VenezuelaEE.UU. Islas Vírg" + + "enesVietnamVanuatuWallis y FutunaSamoaYemenSudáfricaZambiaZimbabue", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0007, 0x0012, 0x0012, 0x0012, 0x0019, + 0x0020, 0x0026, 0x0026, 0x002f, 0x003e, 0x0045, 0x004e, 0x004e, + 0x004e, 0x0059, 0x0059, 0x0059, 0x0063, 0x006b, 0x006b, 0x0073, + 0x007a, 0x0081, 0x0087, 0x0087, 0x0087, 0x008e, 0x0095, 0x009c, + 0x00a2, 0x00a9, 0x00af, 0x00af, 0x00b7, 0x00bf, 0x00bf, 0x00bf, + 0x00ca, 0x00d5, 0x00d5, 0x00da, 0x00df, 0x00ef, 0x00ef, 0x00f4, + 0x00fc, 0x0101, 0x0109, 0x0109, 0x0113, 0x0117, 0x0117, 0x011e, + 0x012c, 0x0132, 0x0132, 0x013a, 0x013a, 0x0140, 0x0149, 0x0151, + // Entry 40 - 7F + 0x0151, 0x0158, 0x0158, 0x015f, 0x0166, 0x016c, 0x016c, 0x0173, + 0x017a, 0x0182, 0x0182, 0x018b, 0x018f, 0x018f, 0x0199, 0x0199, + 0x01a0, 0x01a6, 0x01b1, 0x01b1, 0x01b1, 0x01b1, 0x01ba, 0x01bf, + 0x01bf, 0x01bf, 0x01c5, 0x01cb, 0x01cb, 0x01dc, 0x01e2, 0x01e2, + 0x01eb, 0x01ef, 0x01fc, 0x0202, 0x0211, 0x0227, 0x022f, 0x0236, + 0x023c, 0x023c, 0x023c, 0x0245, 0x0245, 0x024b, 0x024b, 0x0250, + 0x0250, 0x0254, 0x0259, 0x0261, 0x0267, 0x026d, 0x026d, 0x0275, + 0x0275, 0x027a, 0x0285, 0x028c, 0x0294, 0x029b, 0x02b2, 0x02c1, + // Entry 80 - BF + 0x02ce, 0x02d4, 0x02d4, 0x02df, 0x02e3, 0x02ea, 0x02ea, 0x02f7, + 0x0300, 0x0307, 0x030d, 0x0315, 0x031f, 0x0326, 0x0326, 0x032f, + 0x0336, 0x033d, 0x033d, 0x0348, 0x0352, 0x0360, 0x036d, 0x0372, + 0x0379, 0x0379, 0x0382, 0x039a, 0x039a, 0x03a4, 0x03a4, 0x03a9, + 0x03b1, 0x03b9, 0x03bf, 0x03c6, 0x03c6, 0x03d0, 0x03d7, 0x03e6, + 0x03ec, 0x03f8, 0x03ff, 0x0408, 0x0415, 0x041c, 0x0421, 0x0426, + 0x0426, 0x0426, 0x042b, 0x0432, 0x0437, 0x0449, 0x045c, 0x0465, + 0x046e, 0x0475, 0x048a, 0x0498, 0x04a3, 0x04b7, 0x04bf, 0x04c5, + // Entry C0 - FF + 0x04cd, 0x04d2, 0x04d2, 0x04d2, 0x04d2, 0x04d8, 0x04dd, 0x04e3, + 0x04f0, 0x04f0, 0x04fa, 0x0500, 0x0506, 0x050e, 0x050e, 0x0517, + 0x0517, 0x0521, 0x052d, 0x0537, 0x053e, 0x0545, 0x054c, 0x055a, + 0x0571, 0x057c, 0x0588, 0x058d, 0x0598, 0x0598, 0x0598, 0x059c, + 0x05bb, 0x05bf, 0x05c8, 0x05d3, 0x05d3, 0x05de, 0x05de, 0x05e4, + 0x05e9, 0x05f1, 0x0602, 0x0602, 0x0602, 0x060a, 0x060a, 0x0610, + 0x0634, 0x0642, 0x0649, 0x0654, 0x0674, 0x0674, 0x067d, 0x067d, + 0x0693, 0x069a, 0x06a1, 0x06b0, 0x06b5, 0x06b5, 0x06ba, 0x06ba, + // Entry 100 - 13F + 0x06c4, 0x06ca, 0x06d2, + }, + }, + { // rm + "AndorraEmirats Arabs UnidsAfghanistanAntigua e BarbudaAnguillaAlbaniaArm" + + "eniaAngolaAntarcticaArgentiniaSamoa AmericanaAustriaAustraliaArubaIn" + + "slas AlandAserbaidschanBosnia ed ErzegovinaBarbadosBangladeschBelgia" + + "Burkina FasoBulgariaBahrainBurundiBeninSon BarthélemyBermudasBruneiB" + + "oliviaBrasilaBahamasBhutanInsla BouvetBotswanaBielorussiaBelizeCanad" + + "aInslas CocosRepublica Democratica dal CongoRepublica Centralafrican" + + "aCongoSvizraCosta d’IvurInslas CookChileCamerunChinaColumbiaCosta Ri" + + "caCubaCap VerdInsla da ChristmasCipraRepublica TschecaGermaniaDschib" + + "utiDanemarcDominicaRepublica DominicanaAlgeriaEcuadorEstoniaEgiptaSa" + + "hara OccidentalaEritreaSpagnaEtiopiaUniun europeicaFinlandaFidschiIn" + + "slas dal FalklandMicronesiaInslas FeroeFrantschaGabunReginavel UnìGr" + + "enadaGeorgiaGuyana FranzosaGuernseyGhanaGibraltarGrönlandaGambiaGuin" + + "eaGuadeloupeGuinea EquatorialaGreziaGeorgia dal Sid e las Inslas San" + + "dwich dal SidGuatemalaGuamGuinea-BissauGuyanaRegiun d’administraziun" + + " speziala da Hongkong, ChinaInslas da Heard e da McDonladHondurasCro" + + "aziaHaitiUngariaIndonesiaIrlandaIsraelInsla da ManIndiaTerritori Bri" + + "tannic en l’Ocean IndicIracIranIslandaItaliaJerseyGiamaicaJordaniaGi" + + "apunKeniaKirghisistanCambodschaKiribatiComorasSaint Kitts e NevisCor" + + "ea dal NordCorea dal SidKuwaitInslas CaymanKasachstanLaosLibanonSain" + + "t LuciaLiechtensteinSri LankaLiberiaLesothoLituaniaLuxemburgLettonia" + + "LibiaMarocMonacoMoldaviaMontenegroSaint MartinMadagascarInslas da Ma" + + "rshallMacedoniaMaliMyanmarMongoliaRegiun d’administraziun speziala M" + + "acao, ChinaInslas Mariannas dal NordMartiniqueMauretaniaMontserratMa" + + "ltaMauritiusMaldivasMalawiMexicoMalaisiaMosambicNamibiaNova Caledoni" + + "aNigerInsla NorfolkNigeriaNicaraguaPajais BassNorvegiaNepalNauruNiue" + + "Nova ZelandaOmanPanamaPeruPolinesia FranzosaPapua Nova GuineaFilippi" + + "nasPakistanPolognaSaint Pierre e MiquelonPitcairnPuerto RicoTerritor" + + "i PalestinaisPortugalPalauParaguaiKatarOceania PerifericaRéunionRume" + + "niaSerbiaRussiaRuandaArabia SauditaSalomonasSeychellasSudanSveziaSin" + + "gapurSontg’ElenaSloveniaSvalbard e Jan MayenSlovachiaSierra LeoneSan" + + " MarinoSenegalSomaliaSurinamSão Tomé e PrincipeEl SalvadorSiriaSwazi" + + "landInslas Turks e CaicosTschadTerritoris Franzos MeridiunalsTogoTai" + + "landaTadschikistanTokelauTimor da l’OstTurkmenistanTunesiaTongaTirch" + + "iaTrinidad e TobagoTuvaluTaiwanTansaniaUcrainaUgandaInslas pitschnas" + + " perifericas dals Stadis Unids da l’AmericaStadis Unids da l’America" + + "UruguayUsbekistanCitad dal VaticanSaint Vincent e las GrenadinasVene" + + "zuelaInslas Verginas BritannicasInslas Verginas AmericanasVietnamVan" + + "uatuWallis e FutunaSamoaJemenMayotteAfrica dal SidSambiaSimbabweRegi" + + "un betg encouschenta u nunvalaivlamundAfricaAmerica dal NordAmerica " + + "dal SidOceaniaAfrica dal VestAmerica CentralaAfrica da l’OstAfrica d" + + "al NordAfrica CentralaAfrica MeridiunalaAmerica dal Nord, America Ce" + + "ntrala ed America dal SidCaribicaAsia da l’OstAsia dal SidAsia dal S" + + "idostEuropa dal SidAustralia e Nova ZelandaMelanesiaRegiun Micronesi" + + "caPolinesiaAsiaAsia CentralaAsia dal VestEuropaEuropa OrientalaEurop" + + "a dal NordEuropa dal VestAmerica Latina", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001a, 0x0025, 0x0036, 0x003e, 0x0045, + 0x004c, 0x0052, 0x005c, 0x0066, 0x0075, 0x007c, 0x0085, 0x008a, + 0x0096, 0x00a3, 0x00b7, 0x00bf, 0x00ca, 0x00d0, 0x00dc, 0x00e4, + 0x00eb, 0x00f2, 0x00f7, 0x0106, 0x010e, 0x0114, 0x011b, 0x011b, + 0x0122, 0x0129, 0x012f, 0x013b, 0x0143, 0x014e, 0x0154, 0x015a, + 0x0166, 0x0185, 0x019e, 0x01a3, 0x01a9, 0x01b7, 0x01c2, 0x01c7, + 0x01ce, 0x01d3, 0x01db, 0x01db, 0x01e5, 0x01e9, 0x01f1, 0x01f1, + 0x0203, 0x0208, 0x0219, 0x0221, 0x0221, 0x022a, 0x0232, 0x023a, + // Entry 40 - 7F + 0x024e, 0x0255, 0x0255, 0x025c, 0x0263, 0x0269, 0x027b, 0x0282, + 0x0288, 0x028f, 0x029e, 0x02a6, 0x02ad, 0x02c0, 0x02ca, 0x02d6, + 0x02df, 0x02e4, 0x02f2, 0x02f9, 0x0300, 0x030f, 0x0317, 0x031c, + 0x0325, 0x032f, 0x0335, 0x033b, 0x0345, 0x0357, 0x035d, 0x038a, + 0x0393, 0x0397, 0x03a4, 0x03aa, 0x03df, 0x03fc, 0x0404, 0x040b, + 0x0410, 0x0417, 0x0417, 0x0420, 0x0427, 0x042d, 0x0439, 0x043e, + 0x0464, 0x0468, 0x046c, 0x0473, 0x0479, 0x047f, 0x0487, 0x048f, + 0x0495, 0x049a, 0x04a6, 0x04b0, 0x04b8, 0x04bf, 0x04d2, 0x04e0, + // Entry 80 - BF + 0x04ed, 0x04f3, 0x0500, 0x050a, 0x050e, 0x0515, 0x0520, 0x052d, + 0x0536, 0x053d, 0x0544, 0x054c, 0x0555, 0x055d, 0x0562, 0x0567, + 0x056d, 0x0575, 0x057f, 0x058b, 0x0595, 0x05a7, 0x05b0, 0x05b4, + 0x05bb, 0x05c3, 0x05f2, 0x060b, 0x0615, 0x061f, 0x0629, 0x062e, + 0x0637, 0x063f, 0x0645, 0x064b, 0x0653, 0x065b, 0x0662, 0x0670, + 0x0675, 0x0682, 0x0689, 0x0692, 0x069d, 0x06a5, 0x06aa, 0x06af, + 0x06b3, 0x06bf, 0x06c3, 0x06c9, 0x06cd, 0x06df, 0x06f0, 0x06fa, + 0x0702, 0x0709, 0x0720, 0x0728, 0x0733, 0x0748, 0x0750, 0x0755, + // Entry C0 - FF + 0x075d, 0x0762, 0x0774, 0x077c, 0x0783, 0x0789, 0x078f, 0x0795, + 0x07a3, 0x07ac, 0x07b6, 0x07bb, 0x07c1, 0x07c9, 0x07d6, 0x07de, + 0x07f2, 0x07fb, 0x0807, 0x0811, 0x0818, 0x081f, 0x0826, 0x0826, + 0x083b, 0x0846, 0x0846, 0x084b, 0x0854, 0x0854, 0x0869, 0x086f, + 0x088d, 0x0891, 0x0899, 0x08a6, 0x08ad, 0x08bd, 0x08c9, 0x08d0, + 0x08d5, 0x08dc, 0x08ed, 0x08f3, 0x08f9, 0x0901, 0x0908, 0x090e, + 0x094b, 0x0966, 0x096d, 0x0977, 0x0988, 0x09a6, 0x09af, 0x09ca, + 0x09e4, 0x09eb, 0x09f2, 0x0a01, 0x0a06, 0x0a06, 0x0a0b, 0x0a12, + // Entry 100 - 13F + 0x0a20, 0x0a26, 0x0a2e, 0x0a54, 0x0a58, 0x0a5e, 0x0a6e, 0x0a7d, + 0x0a84, 0x0a93, 0x0aa3, 0x0ab4, 0x0ac3, 0x0ad2, 0x0ae4, 0x0b19, + 0x0b19, 0x0b21, 0x0b30, 0x0b3c, 0x0b4b, 0x0b59, 0x0b71, 0x0b7a, + 0x0b8c, 0x0b95, 0x0b99, 0x0ba6, 0x0bb3, 0x0bb9, 0x0bc9, 0x0bd8, + 0x0be7, 0x0bf5, + }, + }, + { // rn + "AndoraLeta Zunze Ubumwe z’AbarabuAfuganisitaniAntigwa na BaribudaAngwila" + + "AlubaniyaArumeniyaAngolaArijantineSamowa nyamerikaOtirisheOsitaraliy" + + "aArubaAzerubayijaniBosiniya na HerigozevineBarubadosiBangaladeshiUbu" + + "biligiBurukina FasoBuligariyaBahareyiniUburundiBeneBerimudaBuruneyiB" + + "oliviyaBureziliBahamasiButaniBotswanaBelausiBelizeKanadaRepubulika I" + + "haranira Demokarasi ya KongoRepubulika ya SantarafurikaKongoUbusuwis" + + "iKotedivuwareIzinga rya KukuShiliKameruniUbushinwaKolombiyaKositarik" + + "aKibaIbirwa bya KapuveriIzinga rya ShipureRepubulika ya CekeUbudageJ" + + "ibutiDanimarikiDominikaRepubulika ya DominikaAlijeriyaEkwateriEsiton" + + "iyaMisiriElitereyaHisipaniyaEtiyopiyaFinilandiFijiIzinga rya Filikil" + + "andiMikoroniziyaUbufaransaGaboUbwongerezaGerenadaJeworujiyaGwayana y" + + "’AbafaransaGanaJuburalitariGurunilandiGambiyaGuneyaGwadelupeGineya" + + " EkwatoriyaliUbugerekiGwatemalaGwamuGineya BisawuGuyaneHondurasiKoro" + + "wasiyaHayitiHungariyaIndoneziyaIrilandiIsiraheliUbuhindiIntara y’Ubw" + + "ongereza yo mu birwa by’AbahindiIrakiIraniAyisilandiUbutaliyaniJamay" + + "ikaYorudaniyaUbuyapaniKenyaKirigisitaniKambojeKiribatiIzinga rya Kom" + + "oreSekitsi na NevisiKoreya y’amajaruguruKoreya y’amajepfoKowetiIbirw" + + "a bya KeyimaniKazakisitaniLayosiLibaniSelusiyaLishyitenshitayiniSiri" + + "lankaLiberiyaLesotoLituwaniyaLukusamburuLativaLibiyaMarokeMonakoMolu" + + "daviMadagasikariIzinga rya MarishariMasedoniyaMaliBirimaniyaMongoliy" + + "aAmazinga ya Mariyana ryo mu majaruguruMaritinikiMoritaniyaMontesera" + + "tiMalitaIzinga rya MoriseMoludaveMalawiMigizikeMaleziyaMozambikiNami" + + "biyaNiyukaledoniyaNijeriizinga rya NorufolukeNijeriyaNikaragwaUbuhol" + + "andiNoruvejiNepaliNawuruNiyuweNuvelizelandiOmaniPanamaPeruPolineziya" + + " y’AbafaransaPapuwa NiyugineyaAmazinga ya FilipinePakisitaniPolonyeS" + + "empiyeri na MikeloniPitikeyiriniPuwetorikoPalesitina Wesitibanka na " + + "GazaPorutugaliPalawuParagweKatariAmazinga ya ReyiniyoRumaniyaUburusi" + + "yau RwandaArabiya SawuditeAmazinga ya SalumoniAmazinga ya SeyisheliS" + + "udaniSuwediSingapuruSeheleneSiloveniyaSilovakiyaSiyeralewoneSanimari" + + "noSenegaliSomaliyaSurinameSawotome na PerensipeEli SaluvatoriSiriyaS" + + "uwazilandiAmazinga ya Turkisi na CayikosiCadiTogoTayilandiTajikisita" + + "niTokelawuTimoru y’iburasirazubaTurukumenisitaniTuniziyaTongaTurukiy" + + "aTirinidadi na TobagoTuvaluTayiwaniTanzaniyaIkereneUbugandeLeta Zunz" + + "e Ubumwe za AmerikaIrigweUzubekisitaniUmurwa wa VatikaniSevensa na G" + + "erenadineVenezuwelaIbirwa by’isugi by’AbongerezaAmazinga y’Isugi y’A" + + "banyamerikaViyetinamuVanuwatuWalisi na FutunaSamowaYemeniMayoteAfuri" + + "ka y’EpfoZambiyaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0023, 0x0030, 0x0043, 0x004a, 0x0053, + 0x005c, 0x0062, 0x0062, 0x006c, 0x007c, 0x0084, 0x008f, 0x0094, + 0x0094, 0x00a1, 0x00b9, 0x00c3, 0x00cf, 0x00d8, 0x00e5, 0x00ef, + 0x00f9, 0x0101, 0x0105, 0x0105, 0x010d, 0x0115, 0x011d, 0x011d, + 0x0125, 0x012d, 0x0133, 0x0133, 0x013b, 0x0142, 0x0148, 0x014e, + 0x014e, 0x0176, 0x0191, 0x0196, 0x019f, 0x01ab, 0x01ba, 0x01bf, + 0x01c7, 0x01d0, 0x01d9, 0x01d9, 0x01e3, 0x01e7, 0x01fa, 0x01fa, + 0x01fa, 0x020c, 0x021e, 0x0225, 0x0225, 0x022b, 0x0235, 0x023d, + // Entry 40 - 7F + 0x0253, 0x025c, 0x025c, 0x0264, 0x026d, 0x0273, 0x0273, 0x027c, + 0x0286, 0x028f, 0x028f, 0x0298, 0x029c, 0x02b2, 0x02be, 0x02be, + 0x02c8, 0x02cc, 0x02d7, 0x02df, 0x02e9, 0x02ff, 0x02ff, 0x0303, + 0x030f, 0x031a, 0x0321, 0x0327, 0x0330, 0x0343, 0x034c, 0x034c, + 0x0355, 0x035a, 0x0367, 0x036d, 0x036d, 0x036d, 0x0376, 0x0380, + 0x0386, 0x038f, 0x038f, 0x0399, 0x03a1, 0x03aa, 0x03aa, 0x03b2, + 0x03e2, 0x03e7, 0x03ec, 0x03f6, 0x0401, 0x0401, 0x0409, 0x0413, + 0x041c, 0x0421, 0x042d, 0x0434, 0x043c, 0x044d, 0x045e, 0x0474, + // Entry 80 - BF + 0x0487, 0x048d, 0x04a0, 0x04ac, 0x04b2, 0x04b8, 0x04c0, 0x04d2, + 0x04db, 0x04e3, 0x04e9, 0x04f3, 0x04fe, 0x0504, 0x050a, 0x0510, + 0x0516, 0x051e, 0x051e, 0x051e, 0x052a, 0x053e, 0x0548, 0x054c, + 0x0556, 0x055f, 0x055f, 0x0585, 0x058f, 0x0599, 0x05a4, 0x05aa, + 0x05bb, 0x05c3, 0x05c9, 0x05d1, 0x05d9, 0x05e2, 0x05ea, 0x05f8, + 0x05fe, 0x0613, 0x061b, 0x0624, 0x062e, 0x0636, 0x063c, 0x0642, + 0x0648, 0x0655, 0x065a, 0x0660, 0x0664, 0x067d, 0x068e, 0x06a2, + 0x06ac, 0x06b3, 0x06c8, 0x06d4, 0x06de, 0x06fc, 0x0706, 0x070c, + // Entry C0 - FF + 0x0713, 0x0719, 0x0719, 0x072d, 0x0735, 0x0735, 0x073e, 0x0746, + 0x0756, 0x076a, 0x077f, 0x0785, 0x078b, 0x0794, 0x079c, 0x07a6, + 0x07a6, 0x07b0, 0x07bc, 0x07c6, 0x07ce, 0x07d6, 0x07de, 0x07de, + 0x07f3, 0x0801, 0x0801, 0x0807, 0x0812, 0x0812, 0x0831, 0x0835, + 0x0835, 0x0839, 0x0842, 0x084e, 0x0856, 0x086e, 0x087e, 0x0886, + 0x088b, 0x0893, 0x08a7, 0x08ad, 0x08b5, 0x08be, 0x08c5, 0x08cd, + 0x08cd, 0x08e9, 0x08ef, 0x08fc, 0x090e, 0x0923, 0x092d, 0x094e, + 0x0971, 0x097b, 0x0983, 0x0993, 0x0999, 0x0999, 0x099f, 0x09a5, + // Entry 100 - 13F + 0x09b5, 0x09bc, 0x09c4, + }, + }, + { // ro + roRegionStr, + roRegionIdx, + }, + { // rof + "AndoroFalme za KiarabuAfuganistaniAntigua na BabudaAnguilaAlbaniaAmeniaA" + + "ngoloAjentinaSamoa ya MarekaniOstriaAustraliaArubaAzabajaniBosnia na" + + " HezegovinaBabadoBangladeshiUbelgijiBukinafasoBulgariaBahareniBurund" + + "iBeniniBermudaBruneiBoliviaBraziliBahamasiButaniBotswanaBelarusiBeli" + + "zeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya KatiKon" + + "goUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarikaKub" + + "aKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJamhur" + + "i ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfiniFi" + + "jiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJojiaGw" + + "iyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekwetaU" + + "girikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaIndon" + + "esiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIrakiUa" + + "jemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodiaKiri" + + "batiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiVisiw" + + "a vya KaimaiKazakistaniLaosiLebanoniSantalusiaLishenteniSirilankaLib" + + "eriaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukiniVisi" + + "wa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya Kaska" + + "ziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoMales" + + "iaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikaragwa" + + "UholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia ya Uf" + + "aransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkairniPw" + + "etorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPalauP" + + "aragwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonSheli" + + "sheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniSamar" + + "inoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaziVis" + + "iwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori ya M" + + "asharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuvaluTa" + + "iwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSantavi" + + "senti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa vya" + + " Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMayott" + + "eAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0033, 0x003a, 0x0041, + 0x0047, 0x004d, 0x004d, 0x0055, 0x0066, 0x006c, 0x0075, 0x007a, + 0x007a, 0x0083, 0x0097, 0x009d, 0x00a8, 0x00b0, 0x00ba, 0x00c2, + 0x00ca, 0x00d1, 0x00d7, 0x00d7, 0x00de, 0x00e4, 0x00eb, 0x00eb, + 0x00f2, 0x00fa, 0x0100, 0x0100, 0x0108, 0x0110, 0x0116, 0x011c, + 0x011c, 0x013c, 0x0155, 0x015a, 0x0160, 0x0167, 0x0176, 0x017b, + 0x0183, 0x0188, 0x0190, 0x0190, 0x0199, 0x019d, 0x01a5, 0x01a5, + 0x01a5, 0x01ac, 0x01bc, 0x01c5, 0x01c5, 0x01cb, 0x01d2, 0x01da, + // Entry 40 - 7F + 0x01ed, 0x01f4, 0x01f4, 0x01fa, 0x0201, 0x0206, 0x0206, 0x020d, + 0x0215, 0x021d, 0x021d, 0x0222, 0x0226, 0x0239, 0x0243, 0x0243, + 0x024b, 0x0251, 0x025a, 0x0261, 0x0266, 0x0279, 0x0279, 0x027e, + 0x0286, 0x028f, 0x0295, 0x0299, 0x02a2, 0x02ab, 0x02b2, 0x02b2, + 0x02bb, 0x02bf, 0x02c8, 0x02ce, 0x02ce, 0x02ce, 0x02d7, 0x02de, + 0x02e3, 0x02eb, 0x02eb, 0x02f4, 0x02fc, 0x0303, 0x0303, 0x0308, + 0x032d, 0x0332, 0x0338, 0x0340, 0x0346, 0x0346, 0x034d, 0x0354, + 0x035a, 0x035f, 0x036c, 0x0374, 0x037c, 0x0382, 0x0395, 0x03a4, + // Entry 80 - BF + 0x03b0, 0x03b7, 0x03c8, 0x03d3, 0x03d8, 0x03e0, 0x03ea, 0x03f4, + 0x03fd, 0x0404, 0x040a, 0x0412, 0x041b, 0x0422, 0x0427, 0x042d, + 0x0433, 0x043a, 0x043a, 0x043a, 0x0440, 0x0452, 0x045b, 0x045f, + 0x0464, 0x046c, 0x046c, 0x048c, 0x0495, 0x049e, 0x04a9, 0x04ae, + 0x04b4, 0x04ba, 0x04c0, 0x04c7, 0x04ce, 0x04d6, 0x04dd, 0x04e9, + 0x04ef, 0x0500, 0x0507, 0x0510, 0x0518, 0x051d, 0x0523, 0x0528, + 0x052c, 0x0536, 0x053b, 0x0541, 0x0545, 0x055a, 0x055f, 0x0567, + 0x0570, 0x0577, 0x058d, 0x0596, 0x059f, 0x05d1, 0x05d6, 0x05db, + // Entry C0 - FF + 0x05e3, 0x05e9, 0x05e9, 0x05f2, 0x05f9, 0x05f9, 0x05fe, 0x0604, + 0x0609, 0x061b, 0x0625, 0x062b, 0x0631, 0x0639, 0x0644, 0x064c, + 0x064c, 0x0654, 0x065f, 0x0667, 0x066f, 0x0676, 0x067e, 0x067e, + 0x0692, 0x069a, 0x069a, 0x069f, 0x06a5, 0x06a5, 0x06be, 0x06c3, + 0x06c3, 0x06c7, 0x06cf, 0x06da, 0x06e1, 0x06f4, 0x0703, 0x070a, + 0x070f, 0x0716, 0x0728, 0x072e, 0x0735, 0x073d, 0x0744, 0x074a, + 0x074a, 0x0752, 0x0759, 0x0765, 0x076d, 0x0786, 0x078f, 0x07ae, + 0x07cc, 0x07d5, 0x07dc, 0x07eb, 0x07f0, 0x07f0, 0x07f6, 0x07fd, + // Entry 100 - 13F + 0x080a, 0x0810, 0x0818, + }, + }, + { // ru + ruRegionStr, + ruRegionIdx, + }, + { // rw + "RwandaIgitonga", + []uint16{ // 233 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 80 - BF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry C0 - FF + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x000e, + }, + }, + { // rwk + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // sah + "КытайÐраÑÑыыйаÐан дойдуÐапырыкаХотугу ЭмиÑрикÑСоҕуруу ЭмиÑрикÑ", + []uint16{ // 264 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + // Entry 40 - 7F + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + // Entry 80 - BF + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + // Entry C0 - FF + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, 0x001c, + // Entry 100 - 13F + 0x001c, 0x001c, 0x001c, 0x001c, 0x002d, 0x003d, 0x005a, 0x0079, + }, + }, + { // saq + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // sbp + "AndolaWutwa wa shiyalabuAfuganisitaniAnitiguya ni BalubudaAnguillaAluban" + + "iyaAlimeniyaAngolaAjentinaSamoya ya MalekaniAwusitiliyaAwusitilaliya" + + "AlubaAsabajaniBosiniya ni HesegovinaBabadosiBangiladeshiUbeligijiBuk" + + "inafasoBuligaliyaBahaleniBulundiBeniniBelimudaBuluneyiBoliviyaBulasi" + + "liBahamaButaniBotiswanaBelalusiBeliseKanadaJamuhuli ya Kidemokilasiy" + + "a ya KongoJamuhuli ya Afilika ya PakhatiKongoUswisiKodivayaFigunguli" + + " fya KookiShileKameruniShinaKolombiyaKositalikaKubaKepuvedeKupilosiJ" + + "amuhuli ya ShekiWujelumaniJibutiDenimakiDominikaJamuhuli ya Dominika" + + "AlijeliyaEkwadoEsitoniyaMisiliElitileyaHisipaniyaUhabeshiWufiniFijiF" + + "igunguli fya FokolendiMikilonesiyaWufalansaGaboniUwingelesaGilenadaJ" + + "ojiyaGwiyana ya WufalansaKhanaJibulalitaGilinilandiGambiyaGineGwadel" + + "upeGinekwetaWugilikiGwatemalaGwamuGinebisawuGuyanaHondulasiKolasiyaH" + + "ayitiHungaliyaIndonesiyaAyalandiIsilaeliIndiyaUluvala lwa Uwingelesa" + + " ku Bahali ya HindiIlakiUwajemiAyisilendiItaliyaJamaikaYolodaniJapan" + + "iKenyaKiligisisitaniKambodiyaKilibatiKomoloSantakitisi ni NevisiKole" + + "ya ya luvala lwa KunyamandeKoleya ya KusiniKuwaitiFigunguli ifya Kay" + + "imayiKasakisitaniLayosiLebanoniSantalusiyaLisheniteniSililankaLibeli" + + "yaLesotoLitwaniyaLasembagiLativiyaLibiyaMolokoMonakoMolidovaBukiniFi" + + "gunguli ifya MalishaliMasedoniyaMaliMuyamaMongoliyaFigunguli fya Mal" + + "iyana ifya luvala lwa KunyamandeMalitinikiMolitaniyaMonitiselatiMali" + + "taMolisiModivuMalawiMekisikoMalesiyaMusumbijiNamibiyaNyukaledoniyaNi" + + "jeliShigunguli sha NolifokiNijeliyaNikalagwaWuholansiNolweNepaliNawu" + + "luNiwueNyusilendiOmaniPanamaPeluPolinesiya ya WufalansaPapuwaFilipin" + + "oPakisitaniPolandiSantapieli ni MikeloniPitikailiniPwetolikoMunjema " + + "gwa Kusikha nu Luvala lwa Gasa lwa PalesitWulenoPalawuPalagwayiKatal" + + "iLiyunioniLomaniyaWulusiLwandaSawudiFigunguli fya SolomoniShelisheli" + + "SudaniUswidiSingapooSantahelenaSiloveniyaSilovakiyaSiela LiyoniSamal" + + "inoSenegaliSomaliyaSulinamuSayo Tome ni PilinikipeElisavadoSiliyaUsw" + + "asiFigunguli fya Tuliki ni KaikoShadiTogoTailandiTajikisitaniTokelaw" + + "uTimoli ya kunenaTulukimenisitaniTunisiyaTongaUtulukiTilinidadi ni T" + + "obagoTuvaluTaiwaniTansaniyaYukileiniUgandaMalekaniUlugwayiUsibekisit" + + "aniVatikaniSantavisenti na GilenadiniVenesuelaFigunguli ifya Viligin" + + "iya ifya UwingelesaFigunguli fya Viliginiya ifya MalekaniVietinamuVa" + + "nuatuWalisi ni FutunaSamoyaYemeniMayoteAfilika KusiniSambiyaSimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0018, 0x0025, 0x003a, 0x0042, 0x004b, + 0x0054, 0x005a, 0x005a, 0x0062, 0x0074, 0x007f, 0x008c, 0x0091, + 0x0091, 0x009a, 0x00b0, 0x00b8, 0x00c4, 0x00cd, 0x00d7, 0x00e1, + 0x00e9, 0x00f0, 0x00f6, 0x00f6, 0x00fe, 0x0106, 0x010e, 0x010e, + 0x0116, 0x011c, 0x0122, 0x0122, 0x012b, 0x0133, 0x0139, 0x013f, + 0x013f, 0x0162, 0x0180, 0x0185, 0x018b, 0x0193, 0x01a6, 0x01ab, + 0x01b3, 0x01b8, 0x01c1, 0x01c1, 0x01cb, 0x01cf, 0x01d7, 0x01d7, + 0x01d7, 0x01df, 0x01f0, 0x01fa, 0x01fa, 0x0200, 0x0208, 0x0210, + // Entry 40 - 7F + 0x0224, 0x022d, 0x022d, 0x0233, 0x023c, 0x0242, 0x0242, 0x024b, + 0x0255, 0x025d, 0x025d, 0x0263, 0x0267, 0x027e, 0x028a, 0x028a, + 0x0293, 0x0299, 0x02a3, 0x02ab, 0x02b1, 0x02c5, 0x02c5, 0x02ca, + 0x02d4, 0x02df, 0x02e6, 0x02ea, 0x02f3, 0x02fc, 0x0304, 0x0304, + 0x030d, 0x0312, 0x031c, 0x0322, 0x0322, 0x0322, 0x032b, 0x0333, + 0x0339, 0x0342, 0x0342, 0x034c, 0x0354, 0x035c, 0x035c, 0x0362, + 0x038b, 0x0390, 0x0397, 0x03a1, 0x03a8, 0x03a8, 0x03af, 0x03b7, + 0x03bd, 0x03c2, 0x03d0, 0x03d9, 0x03e1, 0x03e7, 0x03fc, 0x041b, + // Entry 80 - BF + 0x042b, 0x0432, 0x0449, 0x0455, 0x045b, 0x0463, 0x046e, 0x0479, + 0x0482, 0x048a, 0x0490, 0x0499, 0x04a2, 0x04aa, 0x04b0, 0x04b6, + 0x04bc, 0x04c4, 0x04c4, 0x04c4, 0x04ca, 0x04e2, 0x04ec, 0x04f0, + 0x04f6, 0x04ff, 0x04ff, 0x0530, 0x053a, 0x0544, 0x0550, 0x0556, + 0x055c, 0x0562, 0x0568, 0x0570, 0x0578, 0x0581, 0x0589, 0x0596, + 0x059c, 0x05b3, 0x05bb, 0x05c4, 0x05cd, 0x05d2, 0x05d8, 0x05de, + 0x05e3, 0x05ed, 0x05f2, 0x05f8, 0x05fc, 0x0613, 0x0619, 0x0621, + 0x062b, 0x0632, 0x0648, 0x0653, 0x065c, 0x068e, 0x0694, 0x069a, + // Entry C0 - FF + 0x06a3, 0x06a9, 0x06a9, 0x06b2, 0x06ba, 0x06ba, 0x06c0, 0x06c6, + 0x06cc, 0x06e2, 0x06ec, 0x06f2, 0x06f8, 0x0700, 0x070b, 0x0715, + 0x0715, 0x071f, 0x072b, 0x0733, 0x073b, 0x0743, 0x074b, 0x074b, + 0x0762, 0x076b, 0x076b, 0x0771, 0x0777, 0x0777, 0x0794, 0x0799, + 0x0799, 0x079d, 0x07a5, 0x07b1, 0x07b9, 0x07c9, 0x07d9, 0x07e1, + 0x07e6, 0x07ed, 0x0801, 0x0807, 0x080e, 0x0817, 0x0820, 0x0826, + 0x0826, 0x082e, 0x0836, 0x0843, 0x084b, 0x0865, 0x086e, 0x0897, + 0x08bd, 0x08c6, 0x08cd, 0x08dd, 0x08e3, 0x08e3, 0x08e9, 0x08ef, + // Entry 100 - 13F + 0x08fd, 0x0904, 0x090c, + }, + }, + { // se + "AscensionAndorraOvttastuvvan ArábaemiráhtatAfghanistanAntigua ja Barbuda" + + "AnguillaAlbániaArmeniaAngolaAntárktisArgentinaAmerihká SamoaNuortari" + + "ikaAustráliaArubaÃ…lándaAserbaižanBosnia-HercegovinaBarbadosBanglades" + + "hBelgiaBurkina FasoBulgáriaBahrainBurundiBeninSaint BarthélemyBermud" + + "aBruneiBoliviaBrasilBahamasBhutanBouvet-sullotBotswanaVilges-RuoÅ¡Å¡aB" + + "elizeKanádaCocos-sullotKongo-KinshasaGaska-Afrihká dásseváldiKongo-B" + + "razzavilleÅ veicaElfenbenaridduCook-sullotÄŒiileKamerunKiinnáKolombiaC" + + "lipperton-sullotCosta RicaKubaKap VerdeCuraçaoJuovllat-sullotKyprosÄŒ" + + "eahkkaDuiskaDiego GarciaDjiboutiDánmárkuDominicaDominikána dásseváld" + + "iAlgeriaCeuta ja MelillaEcuadorEstlándaEgyptaOarje-SaháraEritreaSpán" + + "iaEtiopiaEurohpa UniovdnaSuopmaFijisullotFalklandsullotMikronesiaFea" + + "rsullotFrankriikaGabonStuorra-BritánniaGrenadaGeorgiaFrankriikka Gua" + + "yanaGuernseyGhanaGibraltarKalaallit NunaatGámbiaGuineaGuadeloupeEkva" + + "toriála GuineaGreikaLulli Georgia ja Lulli Sandwich-sullotGuatemalaG" + + "uamGuinea-BissauGuyanaHongkongHeard- ja McDonald-sullotHondurasKroát" + + "iaHaitiUngárKanáriasullotIndonesiaIrlándaIsraelMann-sullotIndiaIrakI" + + "ranIslándaItáliaJerseyJamaicaJordániaJapánaKeniaKirgisistanKambodžaK" + + "iribatiKomorosSaint Kitts ja NevisDavvi-KoreaMátta-KoreaKuwaitCayman" + + "-sullotKasakstanLaosLibanonSaint LuciaLiechtensteinSri LankaLiberiaL" + + "esothoLietuvaLuxembourgLátviaLibyaMarokkoMonacoMoldáviaMontenegroFra" + + "nkriikka Saint MartinMadagaskarMarshallsullotMakedoniaMaliBurmaMongo" + + "liaMakáoDavvi-MariánatMartiniqueMauretániaMontserratMáltaMauritiusMa" + + "lediivvatMalawiMeksikoMalesiaMosambikNamibiaOÄ‘Ä‘a-KaledoniaNigerNorfo" + + "lksullotNigeriaNicaraguaVuolleeatnamatNorgaNepalNauruNiueOÄ‘Ä‘a-Selánd" + + "aOmanPanamaPeruFrankriikka PolynesiaPapua-OÄ‘Ä‘a-GuineaFilippiinnatPak" + + "istanPolenSaint Pierre ja MiquelonPitcairnPuerto RicoPalestinaPortug" + + "álaPalauParaguayQatarRéunionRomániaSerbiaRuoÅ¡Å¡aRwandaSaudi-ArábiaSa" + + "lomon-sullotSeychellsullotDavvisudanRuoŧŧaSingaporeSaint HelenaSlove" + + "niaSvalbárda ja Jan MayenSlovákiaSierra LeoneSan MarinoSenegalSomáli" + + "aSurinamMáttasudanSão Tomé ja PríncipeEl SalvadorVuolleeatnamat Sain" + + "t MartinSyriaSvazieanaTristan da CunhaTurks ja Caicos-sullotTÄadTogo" + + "ThaieanaTažikistanTokelauNuorta-TimorTurkmenistanTunisiaTongaDurkaTr" + + "inidad ja TobagoTuvaluTaiwanTanzániaUkrainaUgandaAmerihká ovttastuvv" + + "an stáhtatUruguayUsbekistanVatikánaSaint Vincent ja GrenadineVenezue" + + "laBrittania Virgin-sullotAOS Virgin-sullotVietnamVanuatuWallis ja Fu" + + "tunaSamoaKosovoJemenMayotteMátta-AfrihkáZambiaZimbabwedovdameahttun " + + "guovlumáilbmiAfrihkkádávvi-Amerihkká ja gaska-Amerihkkámátta-Amerihk" + + "káOseaniaoarji-Afrihkkágaska-Amerihkkánuorta-Afrihkkádavvi-Afrihkkág" + + "aska-Afrihkkámátta-AfrihkkáAmerihkkádávvi-AmerihkkáKaribianuorta-Ãsi" + + "amátta-Ãsiamátta-nuorta-Ãsiamátta-EurohpáAustrália ja OÄ‘Ä‘a-SelándaMe" + + "lanesiaMikronesia guovllusPolynesiaÃsiagaska-Ãsiaoarji-ÃsiaEurohpánu" + + "orta-Eurohpádavvi-Eurohpáoarji-Eurohpálulli-Amerihkká", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002d, 0x0038, 0x004a, 0x0052, 0x005a, + 0x0061, 0x0067, 0x0071, 0x007a, 0x0089, 0x0094, 0x009e, 0x00a3, + 0x00ab, 0x00b6, 0x00c8, 0x00d0, 0x00da, 0x00e0, 0x00ec, 0x00f5, + 0x00fc, 0x0103, 0x0108, 0x0119, 0x0120, 0x0126, 0x012d, 0x012d, + 0x0133, 0x013a, 0x0140, 0x014d, 0x0155, 0x0164, 0x016a, 0x0171, + 0x017d, 0x018b, 0x01a6, 0x01b7, 0x01be, 0x01cc, 0x01d7, 0x01dd, + 0x01e4, 0x01eb, 0x01f3, 0x0204, 0x020e, 0x0212, 0x021b, 0x0223, + 0x0232, 0x0238, 0x0240, 0x0246, 0x0252, 0x025a, 0x0264, 0x026c, + // Entry 40 - 7F + 0x0284, 0x028b, 0x029b, 0x02a2, 0x02ab, 0x02b1, 0x02be, 0x02c5, + 0x02cc, 0x02d3, 0x02e3, 0x02e9, 0x02f3, 0x0301, 0x030b, 0x0315, + 0x031f, 0x0324, 0x0336, 0x033d, 0x0344, 0x0357, 0x035f, 0x0364, + 0x036d, 0x037d, 0x0384, 0x038a, 0x0394, 0x03a7, 0x03ad, 0x03d3, + 0x03dc, 0x03e0, 0x03ed, 0x03f3, 0x03fb, 0x0414, 0x041c, 0x0424, + 0x0429, 0x042f, 0x043d, 0x0446, 0x044e, 0x0454, 0x045f, 0x0464, + 0x0464, 0x0468, 0x046c, 0x0474, 0x047b, 0x0481, 0x0488, 0x0491, + 0x0498, 0x049d, 0x04a8, 0x04b1, 0x04b9, 0x04c0, 0x04d4, 0x04df, + // Entry 80 - BF + 0x04eb, 0x04f1, 0x04fe, 0x0507, 0x050b, 0x0512, 0x051d, 0x052a, + 0x0533, 0x053a, 0x0541, 0x0548, 0x0552, 0x0559, 0x055e, 0x0565, + 0x056b, 0x0574, 0x057e, 0x0596, 0x05a0, 0x05ae, 0x05b7, 0x05bb, + 0x05c0, 0x05c8, 0x05ce, 0x05dd, 0x05e7, 0x05f2, 0x05fc, 0x0602, + 0x060b, 0x0616, 0x061c, 0x0623, 0x062a, 0x0632, 0x0639, 0x0649, + 0x064e, 0x065b, 0x0662, 0x066b, 0x0679, 0x067e, 0x0683, 0x0688, + 0x068c, 0x069b, 0x069f, 0x06a5, 0x06a9, 0x06be, 0x06d1, 0x06dd, + 0x06e5, 0x06ea, 0x0702, 0x070a, 0x0715, 0x071e, 0x0728, 0x072d, + // Entry C0 - FF + 0x0735, 0x073a, 0x073a, 0x0742, 0x074a, 0x0750, 0x0758, 0x075e, + 0x076b, 0x0779, 0x0787, 0x0791, 0x0799, 0x07a2, 0x07ae, 0x07b6, + 0x07cd, 0x07d6, 0x07e2, 0x07ec, 0x07f3, 0x07fb, 0x0802, 0x080d, + 0x0824, 0x082f, 0x084a, 0x084f, 0x0858, 0x0868, 0x087e, 0x0883, + 0x0883, 0x0887, 0x088f, 0x089a, 0x08a1, 0x08ad, 0x08b9, 0x08c0, + 0x08c5, 0x08ca, 0x08dc, 0x08e2, 0x08e8, 0x08f1, 0x08f8, 0x08fe, + 0x08fe, 0x091d, 0x0924, 0x092e, 0x0937, 0x0951, 0x095a, 0x0971, + 0x0982, 0x0989, 0x0990, 0x09a0, 0x09a5, 0x09ab, 0x09b0, 0x09b7, + // Entry 100 - 13F + 0x09c6, 0x09cc, 0x09d4, 0x09e8, 0x09f0, 0x09f9, 0x0a1e, 0x0a2f, + 0x0a36, 0x0a45, 0x0a55, 0x0a65, 0x0a74, 0x0a83, 0x0a93, 0x0a9d, + 0x0aae, 0x0ab5, 0x0ac1, 0x0acd, 0x0ae0, 0x0aef, 0x0b0c, 0x0b15, + 0x0b28, 0x0b31, 0x0b36, 0x0b41, 0x0b4c, 0x0b54, 0x0b63, 0x0b71, + 0x0b7f, 0x0b8f, + }, + }, + { // se-FI + "Bosnia ja HercegovinaKambožaSudanChadDavvi-Amerihkká ja Gaska-AmerihkkáL" + + "ulli-AmerihkkáGaska-AmerihkkáDavvi-AmerihkkáLatiinnalaÅ¡-Amerihkká", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + // Entry 40 - 7F + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + // Entry 80 - BF + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + // Entry C0 - FF + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, + 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + // Entry 100 - 13F + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x004a, 0x005a, + 0x005a, 0x005a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, + 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, + 0x007a, 0x0091, + }, + }, + { // seh + "AndorraEmirados Ãrabes UnidosAfeganistãoAntígua e BarbudaAnguillaAlbânia" + + "ArmêniaAngolaArgentinaSamoa AmericanaÃustriaAustráliaArubaAzerbaijão" + + "Bósnia-HerzegovinaBarbadosBangladeshBélgicaBurquina FasoBulgáriaBahr" + + "ainBurundiBeninBermudasBruneiBolíviaBrasilBahamasButãoBotsuanaBelaru" + + "sBelizeCanadáCongo-KinshasaRepública Centro-AfricanaCongoSuíçaCosta " + + "do MarfimIlhas CookChileRepública dos CamarõesChinaColômbiaCosta Ric" + + "aCubaCabo VerdeChipreRepública TchecaAlemanhaDjibutiDinamarcaDominic" + + "aRepública DominicanaArgéliaEquadorEstôniaEgitoEritréiaEspanhaEtiópi" + + "aFinlândiaFijiIlhas MalvinasMicronésiaFrançaGabãoReino UnidoGranadaG" + + "eórgiaGuiana FrancesaGanaGibraltarGroênlandiaGâmbiaGuinéGuadalupeGui" + + "né EquatorialGréciaGuatemalaGuamGuiné BissauGuianaHondurasCroáciaHai" + + "tiHungriaIndonésiaIrlandaIsraelÃndiaTerritório Britânico do Oceano Ã" + + "ndicoIraqueIrãIslândiaItáliaJamaicaJordâniaJapãoQuêniaQuirguistãoCam" + + "bojaQuiribatiComoresSão Cristovão e NevisCoréia do NorteCoréia do Su" + + "lKuwaitIlhas CaimanCasaquistãoLaosLíbanoSanta LúciaLiechtensteinSri " + + "LankaLibériaLesotoLituâniaLuxemburgoLetôniaLíbiaMarrocosMônacoMoldáv" + + "iaMadagascarIlhas MarshallMacedôniaMaliMianmarMongóliaIlhas Marianas" + + " do NorteMartinicaMauritâniaMontserratMaltaMaurícioMaldivasMalawiMéx" + + "icoMalásiaMoçambiqueNamíbiaNova CaledôniaNígerIlhas NorfolkNigériaNi" + + "caráguaHolandaNoruegaNepalNauruNiueNova ZelândiaOmãPanamáPeruPolinés" + + "ia FrancesaPapua-Nova GuinéFilipinasPaquistãoPolôniaSaint Pierre e M" + + "iquelonPitcairnPorto RicoTerritório da PalestinaPortugalPalauParagua" + + "iCatarReuniãoRomêniaRússiaRuandaArábia SauditaIlhas SalomãoSeychelle" + + "sSudãoSuéciaCingapuraSanta HelenaEslovêniaEslováquiaSerra LeoaSan Ma" + + "rinoSenegalSomáliaSurinameSão Tomé e PríncipeEl SalvadorSíriaSuazilâ" + + "ndiaIlhas Turks e CaicosChadeTogoTailândiaTadjiquistãoTokelauTimor L" + + "esteTurcomenistãoTunísiaTongaTurquiaTrinidad e TobagoTuvaluTaiwanUcr" + + "âniaUgandaEstados UnidosUruguaiUzbequistãoVaticanoSão Vicente e Gra" + + "nadinasVenezuelaIlhas Virgens BritânicasIlhas Virgens dos EUAVietnãV" + + "anuatuWallis e FutunaSamoaIêmenMayotteÃfrica do SulZâmbiaZimbábue", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001e, 0x002a, 0x003c, 0x0044, 0x004c, + 0x0054, 0x005a, 0x005a, 0x0063, 0x0072, 0x007a, 0x0084, 0x0089, + 0x0089, 0x0094, 0x00a7, 0x00af, 0x00b9, 0x00c1, 0x00ce, 0x00d7, + 0x00de, 0x00e5, 0x00ea, 0x00ea, 0x00f2, 0x00f8, 0x0100, 0x0100, + 0x0106, 0x010d, 0x0113, 0x0113, 0x011b, 0x0122, 0x0128, 0x012f, + 0x012f, 0x013d, 0x0157, 0x015c, 0x0163, 0x0172, 0x017c, 0x0181, + 0x0199, 0x019e, 0x01a7, 0x01a7, 0x01b1, 0x01b5, 0x01bf, 0x01bf, + 0x01bf, 0x01c5, 0x01d6, 0x01de, 0x01de, 0x01e5, 0x01ee, 0x01f6, + // Entry 40 - 7F + 0x020b, 0x0213, 0x0213, 0x021a, 0x0222, 0x0227, 0x0227, 0x0230, + 0x0237, 0x023f, 0x023f, 0x0249, 0x024d, 0x025b, 0x0266, 0x0266, + 0x026d, 0x0273, 0x027e, 0x0285, 0x028d, 0x029c, 0x029c, 0x02a0, + 0x02a9, 0x02b5, 0x02bc, 0x02c2, 0x02cb, 0x02dc, 0x02e3, 0x02e3, + 0x02ec, 0x02f0, 0x02fd, 0x0303, 0x0303, 0x0303, 0x030b, 0x0313, + 0x0318, 0x031f, 0x031f, 0x0329, 0x0330, 0x0336, 0x0336, 0x033c, + 0x0364, 0x036a, 0x036e, 0x0377, 0x037e, 0x037e, 0x0385, 0x038e, + 0x0394, 0x039b, 0x03a7, 0x03ae, 0x03b7, 0x03be, 0x03d5, 0x03e5, + // Entry 80 - BF + 0x03f3, 0x03f9, 0x0405, 0x0411, 0x0415, 0x041c, 0x0428, 0x0435, + 0x043e, 0x0446, 0x044c, 0x0455, 0x045f, 0x0467, 0x046d, 0x0475, + 0x047c, 0x0485, 0x0485, 0x0485, 0x048f, 0x049d, 0x04a7, 0x04ab, + 0x04b2, 0x04bb, 0x04bb, 0x04d2, 0x04db, 0x04e6, 0x04f0, 0x04f5, + 0x04fe, 0x0506, 0x050c, 0x0513, 0x051b, 0x0526, 0x052e, 0x053d, + 0x0543, 0x0550, 0x0558, 0x0562, 0x0569, 0x0570, 0x0575, 0x057a, + 0x057e, 0x058c, 0x0590, 0x0597, 0x059b, 0x05ae, 0x05bf, 0x05c8, + 0x05d2, 0x05da, 0x05f1, 0x05f9, 0x0603, 0x061b, 0x0623, 0x0628, + // Entry C0 - FF + 0x0630, 0x0635, 0x0635, 0x063d, 0x0645, 0x0645, 0x064c, 0x0652, + 0x0661, 0x066f, 0x0679, 0x067f, 0x0686, 0x068f, 0x069b, 0x06a5, + 0x06a5, 0x06b0, 0x06ba, 0x06c4, 0x06cb, 0x06d3, 0x06db, 0x06db, + 0x06f1, 0x06fc, 0x06fc, 0x0702, 0x070e, 0x070e, 0x0722, 0x0727, + 0x0727, 0x072b, 0x0735, 0x0742, 0x0749, 0x0754, 0x0762, 0x076a, + 0x076f, 0x0776, 0x0787, 0x078d, 0x0793, 0x0793, 0x079b, 0x07a1, + 0x07a1, 0x07af, 0x07b6, 0x07c2, 0x07ca, 0x07e3, 0x07ec, 0x0805, + 0x081a, 0x0821, 0x0828, 0x0837, 0x083c, 0x083c, 0x0842, 0x0849, + // Entry 100 - 13F + 0x0857, 0x085e, 0x0867, + }, + }, + { // ses + "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + + "lbaaniArmeeniAngoolaArgentineAmeriki SamoaOtriÅ¡iOstraaliAruubaAzerba" + + "ayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡iBelgiikiBurkina fasoBu" + + "lgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooliviBreezilBahamasBuutaÅ‹B" + + "otswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookaratiki labooCentraafriki" + + " koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameruunÅ iinKolombiKosta rika" + + "KuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuutiDanemarkDoominikiDoom" + + "iniki labooAlžeeriEkwateerEstooniMisraEritreeEspaaɲeEcioopiFinlanduF" + + "ijiKalkan gungeyMikroneziFaransiGaabonAlbaasalaama MargantaGrenaadaG" + + "orgiFaransi GuyaanGaanaGibraltarGrinlandGambiGineGwadeluupGinee Ekwa" + + "torialGreeceGwatemaalaGuamGine-BissoGuyaaneHondurasKrwaasiHaitiHunga" + + "ariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i Indu teekoo laamaIraakIr" + + "aanAycelandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKyrgyzstanKamboogiKiribaa" + + "tiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKooree, HawsaKuweetKayman gu" + + "ngeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechtensteinSrilankaLiberiaLee" + + "sotoLituaaniLuxembourgLetooniLiibiMaarokMonakoMoldoviMadagascarMarÅ¡a" + + "l gungeyMaacedooniMaaliMaynamarMongooliMariana Gurma GungeyMartiniik" + + "iMooritaaniMontserratMaltaMooris gungeyMaldiivuMalaawiMexikiMaleeziM" + + "ozambikNaamibiKaaledooni TaagaaNižerNorfolk GungooNaajiriiaNikaragwa" + + "HollanduNorveejNeepalNauruNiueZeelandu TaagaOmaanPanamaPeeruFaransi " + + "PolineeziPapua Ginee TaagaFilipinePaakistanPoloɲeSeÅ‹ Piyer nda Mikel" + + "onPitikarinPorto RikoPalestine Dangay nda GaazaPortugaalPaluParaguwe" + + "yKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiyaSolomon GungeySeeÅ¡elSuu" + + "daÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSeera LeonSan MarinoSeneg" + + "alSomaaliSurinaamSao Tome nda PrinsipeSalvador labooSuuriaSwazilandT" + + "urk nda Kayikos GungeyCaaduTogoTaayilandTaažikistanTokelauTimoor haw" + + "saTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda TobaagoTuvaluTaayiwanTanz" + + "aaniUkreenUgandaAmeriki Laabu MarganteyUruguweyUzbeekistanVaatikan L" + + "aamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡i Virgin gungeyAmeerik " + + "Virgin GungeyVietnaamVanautuWallis nda FutunaSamoaYamanMayootiHawsa " + + "Afriki LabooZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, + 0x0055, 0x005c, 0x005c, 0x0065, 0x0072, 0x0079, 0x0081, 0x0087, + 0x0087, 0x0094, 0x00a9, 0x00b2, 0x00bd, 0x00c5, 0x00d1, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f5, 0x00fc, 0x0103, 0x0103, + 0x010a, 0x0111, 0x0118, 0x0118, 0x0121, 0x012a, 0x0131, 0x0138, + 0x0138, 0x0152, 0x0164, 0x016a, 0x016f, 0x0175, 0x0180, 0x0186, + 0x018e, 0x0193, 0x019a, 0x019a, 0x01a4, 0x01a9, 0x01b7, 0x01b7, + 0x01b7, 0x01be, 0x01c6, 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e6, + // Entry 40 - 7F + 0x01f5, 0x01fd, 0x01fd, 0x0205, 0x020c, 0x0211, 0x0211, 0x0218, + 0x0220, 0x0227, 0x0227, 0x022f, 0x0233, 0x0240, 0x0249, 0x0249, + 0x0250, 0x0256, 0x026b, 0x0273, 0x0278, 0x0286, 0x0286, 0x028b, + 0x0294, 0x029c, 0x02a1, 0x02a5, 0x02ae, 0x02be, 0x02c4, 0x02c4, + 0x02ce, 0x02d2, 0x02dc, 0x02e3, 0x02e3, 0x02e3, 0x02eb, 0x02f2, + 0x02f7, 0x02ff, 0x02ff, 0x0308, 0x030f, 0x0316, 0x0316, 0x0320, + 0x033a, 0x033f, 0x0344, 0x034c, 0x0352, 0x0352, 0x035a, 0x035f, + 0x0366, 0x036d, 0x0377, 0x037f, 0x0388, 0x038e, 0x03a2, 0x03af, + // Entry 80 - BF + 0x03bc, 0x03c2, 0x03cf, 0x03d9, 0x03df, 0x03e6, 0x03f1, 0x03fe, + 0x0406, 0x040d, 0x0414, 0x041c, 0x0426, 0x042d, 0x0432, 0x0438, + 0x043e, 0x0445, 0x0445, 0x0445, 0x044f, 0x045d, 0x0467, 0x046c, + 0x0474, 0x047c, 0x047c, 0x0490, 0x049a, 0x04a4, 0x04ae, 0x04b3, + 0x04c0, 0x04c8, 0x04cf, 0x04d5, 0x04dc, 0x04e4, 0x04eb, 0x04fc, + 0x0502, 0x0510, 0x0519, 0x0522, 0x052a, 0x0531, 0x0537, 0x053c, + 0x0540, 0x054e, 0x0553, 0x0559, 0x055e, 0x056f, 0x0580, 0x0588, + 0x0591, 0x0598, 0x05ae, 0x05b7, 0x05c1, 0x05db, 0x05e4, 0x05e8, + // Entry C0 - FF + 0x05f1, 0x05f7, 0x05f7, 0x05ff, 0x0606, 0x0606, 0x0612, 0x0618, + 0x061f, 0x062d, 0x0634, 0x063b, 0x0641, 0x0649, 0x0654, 0x065c, + 0x065c, 0x0664, 0x066e, 0x0678, 0x067f, 0x0686, 0x068e, 0x068e, + 0x06a3, 0x06b1, 0x06b1, 0x06b7, 0x06c0, 0x06c0, 0x06d7, 0x06dc, + 0x06dc, 0x06e0, 0x06e9, 0x06f5, 0x06fc, 0x0708, 0x0715, 0x071b, + 0x0720, 0x0725, 0x0739, 0x073f, 0x0747, 0x074f, 0x0755, 0x075b, + 0x075b, 0x0772, 0x077a, 0x0785, 0x0793, 0x07ac, 0x07b8, 0x07ce, + 0x07e3, 0x07eb, 0x07f2, 0x0803, 0x0808, 0x0808, 0x080d, 0x0814, + // Entry 100 - 13F + 0x0826, 0x082b, 0x0833, + }, + }, + { // sg + "AndôroArâbo Emirâti ÔkoFaganïta, AfganïstäanAntîgua na BarbûdaAngûîlaAlb" + + "anïiArmenïiAngoläaArzantînaSamöa tî AmerîkaOtrîsiOstralïi, SotralïiA" + + "rûbaZerebaidyäan, Azerbaidyäan,Bosnïi na HerzegovînniBarabâdaBenglad" + + "êshiBêleze, BelezîkiBurkina FasoBulugarïiBahrâinaBurundïiBenëenBere" + + "mûdaBrunêiBolivïiBrezîliBahâmasaButäanBotswanaBelarüsiBelîziKanadäaK" + + "ödörösêse tî Ngunuhalëzo tî kongöKödörösêse tî BêafrîkaKongöSûîsiKô" + + "divüäraâzûâ KûkuShilïiKamerûneShînaKolombïiKôsta RîkaKubäaAzûâ tî Kâ" + + "po-VêreSîpriKödörösêse tî TyêkiZâmaniDibutùiiDanemêrkeDömïnîkaKödörö" + + "sêse tî DominîkaAlzerïiEkuatëreEstonïiKâmitâEritrëeEspânyeEtiopïiFël" + + "ândeFidyïiÂzûâ tî MälüîniMikronezïiFarânziGaböonKödörögbïä--ÔkoGren" + + "âdaZorzïiGüyâni tî farânziGanäaZibraltära, ZibaratäraGorolândeGambï" + + "iGinëeGuadelûpuGinëe tî EkuatëreGerêsiGuatêmäläGuâmGninëe-BisauGayân" + + "aHonduräsiKroasïiHaitïiHongirùiiÊnndonezïiIrlândeIsraëliÊnndeSêse tî" + + " Anglëe na Ngûyämä tî ÊnndeIrâkiIräanIslândeItalùiiZamaîkaZordanïiZa" + + "pöonKenyäaKirigizitùaanKämbôziKiribatiKömôroSên-Krïstôfo-na-NevîsiKo" + + "rëe tî BangaKorëe tî MbongoKöwêtiÂzûâ Ngundë, KaimäniKazakisitäanLùa" + + "ôsiLibùaanSênt-LisïiLiechtenstein,Sirî-LankaLiberïaLesôthoLituanïiL" + + "ugzambûruLetonùiiLibïiMarôkoMonaköoMoldavùiiMadagaskäraÂzûâ MärshâlM" + + "aseduäniMalïiMyämâraMongolïiÂzûâ Märïâni tî BangaMärtïnîkiMoritanïiM" + + "onserâteMâltaMörîsiMaldîvaMalawïiMekisîkiMalezïiMözämbîkaNamibùiiFin" + + "î KaledonïiNizëreZûâ NôrfôlkoNizerïaNikaraguaHoländeNörvêziNëpâliNa" + + "uruNiueFinî ZelândeOmâniPanamaPerüuPolinezïi tî farânziPapû Finî Gin" + + "ëe, PapuazïiFilipîniPakistäanPölôniSên-Pyêre na MikelöonPitikêrniPo" + + "rto RîkoSêse tî PalestîniPörtugäle, Ködörö PûraPalauParaguëeKatäraRe" + + "inïonRumanïiRusïiRuandäaSaûdi ArabïiZûâ SalomöonSëyshêleSudäanSuêdeS" + + "ïngäpûruSênt-HelênaSolovenïiSolovakïiSierä-LeôneSên-MarëenSenegäleS" + + "omalïiSurinämSâô Tömê na PrinsîpeSalvadöroSirïiSwäzïlândeÂzûâ Turku " + + "na KaîkiTyâdeTogöTailândeTaazikiistäanTokelauTimôro tî TöTurkumenist" + + "äanTunizïiTongaTurukïiTrinitùee na TobagöTüvalüTâiwâniTanzanïiUkrên" + + "iUgandäaÂLeaa-Ôko tî AmerikaUruguëeUzbekistäanLetëe tî VatikäanSên-V" + + "ensäan na âGrenadîniVenezueläaÂzôâ Viîrîggo tî AnglëeÂzûâ Virîgo tî " + + "AmerîkaVietnämVanuatüWalîsi na FutunaSamoäaYëmêniMäyôteMbongo-Afrîka" + + "ZambïiZimbäbwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x001b, 0x0033, 0x0047, 0x0050, 0x0058, + 0x0060, 0x0068, 0x0068, 0x0072, 0x0085, 0x008c, 0x00a0, 0x00a6, + 0x00a6, 0x00c3, 0x00db, 0x00e4, 0x00f0, 0x0102, 0x010e, 0x0118, + 0x0121, 0x012a, 0x0131, 0x0131, 0x013a, 0x0141, 0x0149, 0x0149, + 0x0151, 0x015a, 0x0161, 0x0161, 0x0169, 0x0172, 0x0179, 0x0181, + 0x0181, 0x01ab, 0x01c8, 0x01ce, 0x01d5, 0x01e1, 0x01ee, 0x01f5, + 0x01fe, 0x0204, 0x020d, 0x020d, 0x0219, 0x021f, 0x0235, 0x0235, + 0x0235, 0x023b, 0x0254, 0x025b, 0x025b, 0x0264, 0x026e, 0x0279, + // Entry 40 - 7F + 0x0295, 0x029d, 0x029d, 0x02a6, 0x02ae, 0x02b6, 0x02b6, 0x02be, + 0x02c6, 0x02ce, 0x02ce, 0x02d7, 0x02de, 0x02f4, 0x02ff, 0x02ff, + 0x0307, 0x030e, 0x0323, 0x032b, 0x0332, 0x0347, 0x0347, 0x034d, + 0x0365, 0x036f, 0x0376, 0x037c, 0x0386, 0x039a, 0x03a1, 0x03a1, + 0x03ad, 0x03b2, 0x03bf, 0x03c6, 0x03c6, 0x03c6, 0x03d0, 0x03d8, + 0x03df, 0x03e9, 0x03e9, 0x03f5, 0x03fd, 0x0405, 0x0405, 0x040b, + 0x0435, 0x043b, 0x0441, 0x0449, 0x0451, 0x0451, 0x0459, 0x0462, + 0x0469, 0x0470, 0x047e, 0x0487, 0x048f, 0x0497, 0x04b1, 0x04c1, + // Entry 80 - BF + 0x04d2, 0x04da, 0x04f3, 0x0500, 0x0508, 0x0510, 0x051c, 0x052a, + 0x0535, 0x053d, 0x0545, 0x054e, 0x0559, 0x0562, 0x0568, 0x056f, + 0x0577, 0x0581, 0x0581, 0x0581, 0x058d, 0x059e, 0x05a8, 0x05ae, + 0x05b7, 0x05c0, 0x05c0, 0x05dc, 0x05e8, 0x05f2, 0x05fc, 0x0602, + 0x060a, 0x0612, 0x061a, 0x0623, 0x062b, 0x0637, 0x0640, 0x0650, + 0x0657, 0x0667, 0x066f, 0x0678, 0x0680, 0x0689, 0x0691, 0x0696, + 0x069a, 0x06a8, 0x06ae, 0x06b4, 0x06ba, 0x06d1, 0x06ee, 0x06f7, + 0x0701, 0x0709, 0x0721, 0x072b, 0x0736, 0x074a, 0x0766, 0x076b, + // Entry C0 - FF + 0x0774, 0x077b, 0x077b, 0x0783, 0x078b, 0x078b, 0x0791, 0x0799, + 0x07a7, 0x07b6, 0x07c0, 0x07c7, 0x07cd, 0x07d9, 0x07e6, 0x07f0, + 0x07f0, 0x07fa, 0x0807, 0x0813, 0x081c, 0x0824, 0x082c, 0x082c, + 0x0845, 0x084f, 0x084f, 0x0855, 0x0862, 0x0862, 0x0879, 0x087f, + 0x087f, 0x0884, 0x088d, 0x089b, 0x08a2, 0x08b1, 0x08c0, 0x08c8, + 0x08cd, 0x08d5, 0x08ea, 0x08f2, 0x08fb, 0x0904, 0x090b, 0x0913, + 0x0913, 0x092a, 0x0932, 0x093e, 0x0952, 0x096f, 0x097a, 0x0998, + 0x09b4, 0x09bc, 0x09c4, 0x09d5, 0x09dc, 0x09dc, 0x09e4, 0x09ec, + // Entry 100 - 13F + 0x09fa, 0x0a01, 0x0a0a, + }, + }, + { // shi + "â´°âµâ´·âµ“ⵔⴰâµâµ‰âµŽâ´°âµ”ⴰⵜⴰⴼⵖⴰâµâµ‰âµ™âµœâ´°âµâ´°âµâµœâµ‰â´³â´° â´· ⴱⵔⴱⵓⴷⴰⴰâµâ´³âµ‰âµâ´°â´°âµâ´±â´°âµâµ¢â´°â´°âµ”ⵎⵉâµâµ¢â´°â´°âµâ´³âµ“âµâ´°â´°âµ”ⵊⴰâµâµœâµ‰âµ" + + "ⵙⴰⵎⵡⴰ ⵜⴰⵎⵉⵔⵉⴽⴰâµâµ‰âµœâµâµâµŽâµ™â´°âµ“ⵙⵜⵔⴰâµâµ¢â´°â´°âµ”ⵓⴱⴰⴰⴷⵔⴰⴱⵉⵊⴰâµâ´±âµ“âµ™âµâ´° â´· ⵀⵉⵔⵙⵉⴽⴱⴰⵔⴱⴰⴷⴱⴰ" + + "âµâ´³âµâ´°â´·âµ‰âµ›â´±âµâµŠâµ‰â´½â´°â´±âµ“ⵔⴽⵉâµâ´° ⴼⴰⵙⵓⴱâµâµ–ⴰⵔⵢⴰⴱⵃⵔⴰⵢâµâ´±âµ“ⵔⵓâµâ´·âµ‰â´±âµ‰âµâµ‰âµâ´±âµ”ⵎⵓⴷⴰⴱⵔⵓâµâµ‰â´±âµ“âµâµ‰â´¼" + + "ⵢⴰⴱⵔⴰⵣⵉâµâ´±â´°âµ€â´°âµŽâ´°âµ™â´±âµ€âµ“ⵜⴰâµâ´±âµ“ⵜⵙⵡⴰâµâ´°â´±âµ‰âµâ´°âµ”ⵓⵙⵢⴰⴱⵉâµâµ‰âµ£â´½â´°âµâ´°â´·â´°âµœâ´°â´³â´·âµ“â´·â´°âµâµœ ⵜⴰⴷⵉⵎⵓⵇ" + + "ⵔⴰⵜⵉⵜ ⵠⴽⵓâµâ´³âµ“ⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰâµâ´°âµŽâµŽâ´°âµ™âµœ ⵠⵉⴼⵔⵉⵇⵢⴰⴽⵓâµâ´³âµ“ⵙⵡⵉⵙⵔⴰⴽⵓⵜ ⴷⵉⴼⵡⴰⵔⵜⵉⴳ" + + "ⵣⵉⵔⵉⵠⵠⴽⵓⴽⵛⵛⵉâµâµ‰â´½â´°âµŽâµ‰âµ”ⵓâµâµ›âµ›âµ‰âµâµ¡â´°â´½âµ“âµâµ“ⵎⴱⵢⴰⴽⵓⵙⵜⴰ ⵔⵉⴽⴰⴽⵓⴱⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⴽⴰⴱⴱ" + + "ⵉⵔⴷⵉⵇⵓⴱⵔⵓⵙⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰⵜⵛⵉⴽⵉⵜⴰâµâµŽâ´°âµâµ¢â´°â´·âµŠâµ‰â´±âµ“ⵜⵉⴷⴰâµâµŽâ´°âµ”ⴽⴷⵓⵎⵉâµâµ‰â´½âµœâ´°â´³â´·âµ“â´·â´°âµâµœ " + + "ⵜⴰⴷⵓⵎⵉâµâµ‰â´½âµœâ´·âµ£â´°âµ¢âµ”ⵉⴽⵡⴰⴷⵓⵔⵉⵙⵜⵓâµâµ¢â´°âµŽâµ‰âµšâµ•âµ‰âµ”ⵉⵜⵉⵔⵢⴰⵙⴱⴰâµâµ¢â´°âµ‰âµœâµ¢âµ“ⴱⵢⴰⴼⵉâµâµâ´°âµâ´·â´°â´¼âµ‰â´·âµŠ" + + "ⵉⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰâµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ”ⵓâµâµ‰âµ£âµ¢â´°â´¼âµ”â´°âµâµ™â´°â´³â´°â´±âµ“âµâµœâ´°â´³âµâ´·âµ‰âµœ ⵉⵎⵓâµâµâµ–âµ”âµâ´°âµŸâ´°âµŠâµ“ⵔⵊⵢⴰⴳⵡ" + + "ⵉⵢⴰⵠⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµ–â´°âµâ´°â´°â´·âµ”â´°âµ” ⵠⵟⴰⵕⵉⵇⴳⵔⵉâµâ´°âµâ´·â´³â´°âµŽâ´±âµ¢â´°âµ–ⵉâµâµ¢â´°â´³âµ¡â´°â´·â´°âµâµ“ⴱⵖⵉâµâµ¢â´° âµ " + + "ⵉⴽⵡⴰⴷⵓⵔâµâµ¢âµ“âµâ´°âµâ´³âµ¡â´°âµœâµ‰âµŽâ´°âµâ´°â´³âµ¡â´°âµŽâµ–ⵉâµâµ¢â´° ⴱⵉⵙⴰⵡⴳⵡⵉⵢⴰâµâ´°âµ€âµ“âµâ´·âµ“ⵔⴰⵙⴽⵔⵡⴰⵜⵢⴰⵀⴰⵢⵜⵉⵀâµ" + + "ⵖⴰⵔⵢⴰⴰâµâ´·âµ“âµâµ‰âµ™âµ¢â´°âµ‰âµ”âµâ´°âµâ´·â´°âµ‰âµ™âµ”ⴰⵢⵉâµâµâµ€âµ‰âµâ´·âµœâ´°âµŽâµâ´°â´¹âµœ ⵜⴰâµâ´³âµâµ‰âµ£âµ‰âµœ ⵠⵓⴳⴰⵔⵓ ⴰⵀⵉâµâ´·âµ‰âµ" + + "ⵄⵉⵔⴰⵇⵉⵔⴰâµâµ‰âµ™âµâ´°âµâ´·âµ‰âµŸâ´°âµâµ¢â´°âµŠâ´°âµŽâ´°âµ¢â´½â´°âµâµ“ⵔⴷⵓâµâµâµ¢â´°â´±â´°âµâ´½âµ‰âµâµ¢â´°â´½âµ‰âµ”ⵖⵉⵣⵉⵙⵜⴰâµâ´½â´°âµŽâ´±âµ“ⴷⵢⴰⴽⵉ" + + "ⵔⵉⴱⴰⵜⵉⵇⵓⵎⵓⵔⵙⴰâµâ´½âµ”ⵉⵙ â´· âµâµ‰â´¼âµ‰âµ™â´½âµ“ⵔⵢⴰ ⵠⵉⵥⵥâµâµŽâ´¹â´½âµ“ⵔⵢⴰ ⵠⵉⴼⴼⵓⵙâµâ´½âµ¡âµ‰âµœâµœâµ‰â´³âµ£âµ‰âµ”ⵉâµ" + + " ⵠⴽⴰⵢⵎⴰâµâ´½â´°âµ£â´°âµ…ⵙⵜⴰâµâµâ´°âµ¡âµ™âµâµ“â´±âµâ´°âµâµ™â´°âµâµœâµâµ“ⵙⵉâµâµ‰â´½âµ‰âµâµ›âµœâ´°âµ¢âµâµ™âµ”ⵉâµâ´°âµâ´½â´°âµâµ‰â´±âµ‰âµ”ⵢⴰâµâµ‰âµšâµ“ⵟⵓâµ" + + "ⵉⵜⵡⴰâµâµ¢â´°âµâµ“ⴽⵙⴰâµâ´±âµ“ⵔⴳâµâ´°âµœâ´¼âµ¢â´°âµâµ‰â´±âµ¢â´°âµâµŽâµ–ⵔⵉⴱⵎⵓâµâ´°â´½âµ“ⵎⵓâµâ´·âµ“ⴼⵢⴰⵎⴰⴷⴰⵖⴰⵛⵇⴰⵔⵜⵉⴳⵣⵉⵔⵉâµ" + + " ⵠⵎⴰⵔⵛⴰâµâµŽâ´°âµ™âµ‰â´·âµ“âµâµ¢â´°âµŽâ´°âµâµ‰âµŽâµ¢â´°âµâµŽâ´°âµ”ⵎâµâµ–ⵓâµâµ¢â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵎⴰⵔⵢⴰⵠⵠⵉⵥⵥâµâµŽâ´¹âµŽâ´°âµ”ⵜⵉâµ" + + "ⵉⴽⵎⵓⵕⵉⵟⴰâµâµ¢â´°âµŽâµ“âµâµ™âµ‰âµ”ⴰⵜⵎⴰâµâµŸâ´°âµŽâµ“ⵔⵉⵙⵎⴰâµâ´·âµ‰â´¼âµŽâ´°âµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ™âµ‰â´½âµŽâ´°âµâµ‰âµ£âµ¢â´°âµŽâµ“âµ£âµâ´±âµ‰âµ‡âµâ´°âµŽâµ‰â´±" + + "ⵢⴰⴽⴰâµâµ‰â´·âµ“âµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜâµâµâµ‰âµŠâµ‰âµ”ⵜⵉⴳⵣⵉⵔⵉⵠⵠâµâµ“ⵔⴼⵓâµâ´½âµâµ‰âµŠâµ‰âµ”ⵢⴰâµâµ‰â´½â´°âµ”ⴰⴳⵡⴰⵀⵓâµâ´°âµâ´·" + + "â´°âµâµâµ”ⵡⵉⵊâµâµ‰â´±â´°âµâµâ´°âµ¡âµ”ⵓâµâµ‰âµ¡âµ‰âµâµ¢âµ“ⵣⵉâµâ´°âµâ´·â´°âµ„ⵓⵎⴰâµâ´±â´°âµâ´°âµŽâ´°â´±âµ‰âµ”ⵓⴱⵓâµâµ‰âµâµ‰âµ£âµ¢â´° ⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœ" + + "ⴱⴰⴱⵡⴰ ⵖⵉâµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜⴼⵉâµâµ‰â´±â´±âµ‰âµâ´±â´°â´½âµ‰âµ™âµœâ´°âµâ´±âµ“âµâµ“âµâµ¢â´°âµ™â´°âµâ´±âµ¢âµ‰âµ” â´· ⵎⵉⴽâµâµ“âµâ´±âµ‰âµœâ´½â´°âµ¢âµ”" + + "âµâ´±âµ“ⵔⵜⵓ ⵔⵉⴽⵓⴰⴳⵎⵎⴰⴹ ⵠⵜⴰⴳⵓⵜ â´· ⵖⵣⵣⴰⴱⵕⵟⵇⵉⵣⴱⴰâµâ´°âµ¡â´±â´°âµ”ⴰⴳⵡⴰⵢⵇⴰⵜⴰⵔⵔⵉⵢⵓâµâµ¢âµ“âµâµ”ⵓ" + + "ⵎⴰâµâµ¢â´°âµ”ⵓⵙⵢⴰⵔⵡⴰâµâ´·â´°âµ™âµ™â´°âµ„ⵓⴷⵉⵢⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⵙⴰâµâµ“ⵎⴰâµâµ™âµ™âµ‰âµ›âµ‰âµâµ™âµ™âµ“â´·â´°âµâµ™âµ™âµ¡âµ‰â´·âµ™âµâµ–ⴰⴼⵓ" + + "ⵔⴰⵙⴰâµâµœâµ‰âµâµ‰âµâµ™âµâµ“ⴼⵉâµâµ¢â´°âµ™âµâµ“ⴼⴰⴽⵢⴰⵙⵙⵉⵔⴰâµâµ¢âµ“âµâµ™â´°âµâµŽâ´°âµ”ⵉâµâµ“ⵙⵙⵉâµâµ‰â´³â´°âµâµšâµšâµ“ⵎⴰâµâµ™âµ“ⵔⵉâµâ´°âµŽâµ™" + + "ⴰⵡⵟⵓⵎⵉ â´· ⴱⵔⴰâµâµ™âµ‰â´±âµ™â´°âµâ´¼â´°â´·âµ“ⵔⵙⵓⵔⵢⴰⵙⵡⴰⵣⵉâµâ´°âµâ´·â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵜⵓⵔⴽⵢⴰ â´· ⴽⴰⵢⴽⵜⵛⴰ" + + "ⴷⵟⵓⴳⵓⵟⴰⵢâµâ´°âµâ´·âµœâ´°â´·âµŠâ´°â´½âµ‰âµ™âµœâ´°âµâµŸâµ“â´½âµâ´°âµ¡âµœâµ‰âµŽâµ“âµ” âµ âµâµ‡â´±âµâµœâµœâµ“ⵔⴽⵎⴰâµâµ™âµœâ´°âµâµœâµ“âµâµ™âµŸâµ“âµâ´³â´°âµœâµ“ⵔⴽ" + + "ⵢⴰⵜⵔⵉâµâµ‰â´·â´°â´· â´· ⵟⵓⴱⴰⴳⵓⵜⵓⴼⴰâµâµ“ⵟⴰⵢⵡⴰâµâµŸâ´°âµâµ¥â´°âµâµ¢â´°âµ“ⴽⵔⴰâµâµ¢â´°âµ“âµ–â´°âµâ´·â´°âµ‰âµ¡âµ“âµâ´°â´½ ⵎⵓâµâµâµ‰âµ " + + "ⵠⵎⵉⵔⵉⴽⴰâµâµ“ⵔⵓⴳⵡⴰⵢⵓⵣⴱⴰⴽⵉⵙⵜⴰâµâ´°âµ¡â´°âµâ´½ ⵠⴼⴰⵜⵉⴽⴰâµâµ™â´°âµâ´¼â´°âµâµ™â´°âµ â´· ⴳⵔⵉâµâ´°â´·âµ‰âµâ´¼âµ‰âµâµ£âµ¡" + + "ⵉâµâ´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ âµ âµâµâ´³âµâµ‰âµ£âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ ⵠⵉⵡⵓâµâ´°â´½ ⵎⵓâµâµâµ‰âµâ´¼âµ‰âµœâµâ´°âµŽâ´¼â´°" + + "âµâµ¡â´°âµŸâµ“ⵡⴰâµâµ‰âµ™ â´· ⴼⵓⵜⵓâµâ´°âµ™â´°âµŽâµ¡â´°âµ¢â´°âµŽâ´°âµâµŽâ´°âµ¢âµ“ⵟⴰⴼⵔⵉⵇⵢⴰ ⵠⵉⴼⴼⵓⵙⵣⴰⵎⴱⵢⴰⵣⵉⵎⴱⴰⴱⵡⵉ", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0012, 0x0027, 0x0045, 0x006e, 0x0080, 0x0095, + 0x00aa, 0x00bc, 0x00bc, 0x00d4, 0x0105, 0x0114, 0x012c, 0x013b, + 0x013b, 0x0156, 0x017c, 0x018e, 0x01a9, 0x01bb, 0x01dd, 0x01f2, + 0x0204, 0x0219, 0x0228, 0x0228, 0x023a, 0x0249, 0x025e, 0x025e, + 0x0270, 0x0285, 0x0297, 0x0297, 0x02af, 0x02ca, 0x02d9, 0x02eb, + 0x02eb, 0x033f, 0x0390, 0x039f, 0x03b1, 0x03cd, 0x03f3, 0x0402, + 0x0417, 0x0429, 0x0441, 0x0441, 0x045d, 0x0469, 0x049e, 0x049e, + 0x049e, 0x04b0, 0x04e4, 0x04f9, 0x04f9, 0x050e, 0x0523, 0x0538, + // Entry 40 - 7F + 0x0572, 0x0581, 0x0581, 0x0596, 0x05ab, 0x05b7, 0x05b7, 0x05cf, + 0x05e1, 0x05f6, 0x05f6, 0x060e, 0x061d, 0x064c, 0x066a, 0x066a, + 0x067c, 0x068b, 0x06b0, 0x06c2, 0x06d4, 0x0705, 0x0705, 0x0711, + 0x0734, 0x0749, 0x075b, 0x076a, 0x0782, 0x07ab, 0x07bd, 0x07bd, + 0x07d8, 0x07e4, 0x0803, 0x0818, 0x0818, 0x0818, 0x0830, 0x0845, + 0x0854, 0x0869, 0x0869, 0x0884, 0x0899, 0x08ae, 0x08ae, 0x08bd, + 0x0915, 0x0927, 0x0933, 0x0945, 0x0957, 0x0957, 0x096c, 0x097e, + 0x0990, 0x099f, 0x09c0, 0x09d8, 0x09f0, 0x09ff, 0x0a28, 0x0a4e, + // Entry 80 - BF + 0x0a71, 0x0a80, 0x0aaf, 0x0aca, 0x0ad6, 0x0ae8, 0x0b00, 0x0b1e, + 0x0b36, 0x0b4b, 0x0b5d, 0x0b75, 0x0b93, 0x0ba5, 0x0bb4, 0x0bc6, + 0x0bd8, 0x0bf0, 0x0bf0, 0x0bf0, 0x0c0e, 0x0c3d, 0x0c58, 0x0c64, + 0x0c79, 0x0c8e, 0x0c8e, 0x0cd4, 0x0cec, 0x0d07, 0x0d1f, 0x0d2e, + 0x0d3d, 0x0d4f, 0x0d61, 0x0d73, 0x0d88, 0x0d9d, 0x0db2, 0x0de6, + 0x0df8, 0x0e2a, 0x0e3f, 0x0e5a, 0x0e6f, 0x0e81, 0x0e90, 0x0e9f, + 0x0eab, 0x0ec9, 0x0ed8, 0x0eea, 0x0ef6, 0x0f30, 0x0f68, 0x0f80, + 0x0f98, 0x0fad, 0x0fd9, 0x0ff1, 0x100d, 0x1044, 0x1056, 0x1065, + // Entry C0 - FF + 0x107d, 0x108c, 0x108c, 0x10a4, 0x10b9, 0x10b9, 0x10c8, 0x10da, + 0x10f5, 0x1127, 0x1139, 0x114b, 0x115a, 0x1172, 0x118a, 0x11a2, + 0x11a2, 0x11ba, 0x11d5, 0x11f0, 0x1208, 0x121a, 0x122f, 0x122f, + 0x125e, 0x1276, 0x1276, 0x1285, 0x12a3, 0x12a3, 0x12e3, 0x12ef, + 0x12ef, 0x12fb, 0x1310, 0x1331, 0x1343, 0x1366, 0x1387, 0x1393, + 0x13a2, 0x13b4, 0x13e3, 0x13f5, 0x1407, 0x141f, 0x1434, 0x1446, + 0x1446, 0x1485, 0x149a, 0x14b8, 0x14e1, 0x1519, 0x1531, 0x1573, + 0x15c8, 0x15da, 0x15ef, 0x1615, 0x1624, 0x1624, 0x1633, 0x1642, + // Entry 100 - 13F + 0x166b, 0x167d, 0x1695, + }, + }, + { // shi-Latn + "anduralimaratafÉ£anistanantiga d brbudaangilaalbanyaarminyaangulaarjantin" + + "samwa tamirikanitnnmsaustralyaarubaadrabijanbusna d hirsikbarbadbang" + + "ladicbljikaburkina fasublÉ£arabḥraynburundibininbrmudabrunibulibyabra" + + "zilbahamasbhutanbutswanabilarusyabilizkanadatagdudant tadimukratit n" + + " Kongotagdudant tanammast n ifriqyakunguswisrakut difwartigzirin n k" + + "ukccilikamirunccinwaculumbyakusta rikakubatigzirin n kabbirdiqubrust" + + "agdudant tatcikitalmanyadjibutidanmarkduminiktagdudant taduminiktdza" + + "yrikwaduristunyamiṣṛiritiryasbanyaityubyafillandafidjitigzirin n mal" + + "awimikrunizyafransagabuntagldit imunnÉ£rnaá¹­ajurjyagwiyan tafransistÉ£a" + + "naadrar n á¹­aá¹›iqgrilandgambyaÉ£inyagwadalubÉ£inya n ikwadurlyunangwatim" + + "alagwamÉ£inya bisawgwiyanahunduraskrwatyahaytihnÉ£aryaandunisyairlanda" + + "israyillhindtamnaá¸t tanglizit n ugaru ahindilÉ›iraqiranislandiá¹­alyaja" + + "maykalurdunlyabankinyakirÉ£izistankambudyakiribaticumursankris d nifi" + + "skurya n iẓẓlmá¸kurya n iffuslkwittigzirin n kaymankazaxstanlawslubna" + + "nsantlusilikinctaynsrilankalibiryaliá¹£uá¹­ulitwanyaluksanburglatfyaliby" + + "almÉ£ribmunakumuldufyamadaÉ£acqartigzirin n marcalmasidunyamalimyanmar" + + "mnÉ£ulyatigzirin n maryan n iẓẓlmá¸martinikmuá¹›iá¹­anyamunsiratmalá¹­amuris" + + "maldifmalawimiksikmalizyamuznbiqnamibyakalidunya tamaynutnnijirtigzi" + + "rin n nurfulknijiryanikaragwahulandannrwijnibalnawruniwinyuzilandaÉ›u" + + "manbanamabirubulinizya tafransistbabwa É£inya tamaynutfilibbinbakista" + + "nbulunyasanbyir d miklunbitkayrnburtu rikuagmmaḠn tagut d É£zzabṛṭqi" + + "zbalawbaragwayqatarriyunyunrumanyarusyarwandassaÉ›udiyatigzirin n sal" + + "umanssicilssudansswidsnÉ£afurasantilinslufinyaslufakyassiralyunsanmar" + + "inussinigalṣṣumalsurinamsawá¹­umi d bransibsalfadursuryaswazilandatigz" + + "irin n turkya d kayktcadá¹­uguá¹­aylandtadjakistaná¹­uklawtimur n lqblttur" + + "kmanstantunsá¹­ungaturkyatrinidad d á¹­ubagutufaluá¹­aywaná¹­anẓanyaukranyau" + + "É£andaiwunak munnin n mirikanurugwayuzbakistanawank n fatikansanfans" + + "an d grinadinfinzwilatigzirin timgad n nngliztigzirin timgad n iwuna" + + "k munninfitnamfanwaá¹­uwalis d futunasamwayamanmayuá¹­afriqya n iffuszam" + + "byazimbabwi", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x000d, 0x0018, 0x0027, 0x002d, 0x0034, + 0x003b, 0x0041, 0x0041, 0x0049, 0x005a, 0x005f, 0x0067, 0x006c, + 0x006c, 0x0075, 0x0083, 0x0089, 0x0092, 0x0098, 0x00a4, 0x00ab, + 0x00b3, 0x00ba, 0x00bf, 0x00bf, 0x00c5, 0x00ca, 0x00d1, 0x00d1, + 0x00d7, 0x00de, 0x00e4, 0x00e4, 0x00ec, 0x00f5, 0x00fa, 0x0100, + 0x0100, 0x011e, 0x013b, 0x0140, 0x0146, 0x0150, 0x015e, 0x0163, + 0x016a, 0x0170, 0x0178, 0x0178, 0x0182, 0x0186, 0x0199, 0x0199, + 0x0199, 0x019f, 0x01b1, 0x01b8, 0x01b8, 0x01bf, 0x01c6, 0x01cd, + // Entry 40 - 7F + 0x01e1, 0x01e6, 0x01e6, 0x01ed, 0x01f4, 0x01fc, 0x01fc, 0x0204, + 0x020a, 0x0211, 0x0211, 0x0219, 0x021e, 0x022f, 0x0239, 0x0239, + 0x023f, 0x0244, 0x0251, 0x025a, 0x0260, 0x0271, 0x0271, 0x0276, + 0x0287, 0x028e, 0x0294, 0x029a, 0x02a2, 0x02b2, 0x02b8, 0x02b8, + 0x02c1, 0x02c5, 0x02d1, 0x02d8, 0x02d8, 0x02d8, 0x02e0, 0x02e7, + 0x02ec, 0x02f4, 0x02f4, 0x02fd, 0x0304, 0x030b, 0x030b, 0x0310, + 0x0332, 0x0339, 0x033d, 0x0343, 0x034b, 0x034b, 0x0352, 0x0358, + 0x035e, 0x0363, 0x036f, 0x0377, 0x037f, 0x0384, 0x0393, 0x03a7, + // Entry 80 - BF + 0x03b4, 0x03b9, 0x03ca, 0x03d3, 0x03d7, 0x03dd, 0x03e5, 0x03ef, + 0x03f7, 0x03fe, 0x0408, 0x0410, 0x041a, 0x0420, 0x0425, 0x042c, + 0x0432, 0x043a, 0x043a, 0x043a, 0x0445, 0x0456, 0x045f, 0x0463, + 0x046a, 0x0472, 0x0472, 0x0492, 0x049a, 0x04a7, 0x04af, 0x04b6, + 0x04bb, 0x04c1, 0x04c7, 0x04cd, 0x04d4, 0x04db, 0x04e2, 0x04f4, + 0x04fa, 0x050c, 0x0513, 0x051c, 0x0523, 0x0529, 0x052e, 0x0533, + 0x0537, 0x0541, 0x0547, 0x054d, 0x0551, 0x0565, 0x057a, 0x0582, + 0x058a, 0x0591, 0x05a1, 0x05a9, 0x05b3, 0x05cb, 0x05d5, 0x05da, + // Entry C0 - FF + 0x05e2, 0x05e7, 0x05e7, 0x05ef, 0x05f6, 0x05f6, 0x05fb, 0x0601, + 0x060b, 0x061d, 0x0623, 0x0629, 0x062e, 0x0637, 0x063f, 0x0647, + 0x0647, 0x064f, 0x0658, 0x0661, 0x0669, 0x0673, 0x067a, 0x067a, + 0x068d, 0x0695, 0x0695, 0x069a, 0x06a4, 0x06a4, 0x06bc, 0x06c0, + 0x06c0, 0x06c6, 0x06cf, 0x06da, 0x06e2, 0x06ef, 0x06fa, 0x06fe, + 0x0705, 0x070b, 0x071e, 0x0724, 0x072c, 0x0738, 0x073f, 0x0746, + 0x0746, 0x075d, 0x0764, 0x076e, 0x077d, 0x0791, 0x0799, 0x07b1, + 0x07d0, 0x07d6, 0x07df, 0x07ed, 0x07f2, 0x07f2, 0x07f7, 0x07fe, + // Entry 100 - 13F + 0x080d, 0x0813, 0x081b, + }, + }, + { // si + siRegionStr, + siRegionIdx, + }, + { // sk + skRegionStr, + skRegionIdx, + }, + { // sl + slRegionStr, + slRegionIdx, + }, + { // smn + "Suomâ", + []uint16{ // 76 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + // Entry 40 - 7F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0006, + }, + }, + { // sn + "AndoraUnited Arab EmiratesAfuganistaniAntigua ne BarbudaAnguilaAlbaniaAr" + + "meniaAngolaAjentinaSamoa ye AmerikaAustriaAustraliaArubhaAzabajaniBo" + + "znia ne HerzegovinaBarbadosBangladeshiBeljiumBukinafasoBulgariaBahar" + + "eniBurundiBeniniBermudaBuruneiBoliviaBrazilBahamaBhutaniBotswanaBela" + + "rusiBelizeKanadaDemocratic Republic of the CongoCentral African Repu" + + "blicKongoSwitzerlandIvory CoastZvitsuwa zveCookChileKameruniChinaKol" + + "ombiaKostarikaCubaZvitsuwa zveCape VerdeCyprusCzech RepublicGermanyD" + + "jiboutiDenmarkDominicaDominican RepublicAljeriaEcuadorEstoniaEgyptEr" + + "itreaSpainEtiopiaFinlandFijiZvitsuwa zveFalklandsMicronesiaFranceGab" + + "onUnited KingdomGrenadaGeorgiaFrench GuianaGhanaGibraltarGreenlandGa" + + "mbiaGuineaGuadeloupeEquatorial GuineaGreeceGuatemalaGuamGuinea-Bissa" + + "uGuyanaHondurasKorasiaHaitiHungaryIndonesiaIrelandIzuraeriIndiaBriti" + + "sh Indian Ocean TerritoryIraqIranIcelandItalyJamaicaJordanJapanKenya" + + "KyrgyzstanKambodiaKiribatiKomoroSaint Kitts and NevisKorea, NorthKor" + + "ea, SouthKuwaitZvitsuwa zveCaymanKazakhstanLaosLebanonSaint LuciaLie" + + "chtensteinSri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMoroc" + + "coMonacoMoldovaMadagascarZvitsuwa zveMarshallMacedoniaMaliMyanmarMon" + + "goliaZvitsuwa zvekumaodzanyemba eMarianaMartiniqueMauritaniaMontserr" + + "atMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew Cal" + + "edoniaNigerChitsuwa cheNorfolkNigeriaNicaraguaNetherlandsNorwayNepal" + + "NauruNiueNew ZealandOmanPanamaPeruFrench PolynesiaPapua New GuineaPh" + + "ilippinesPakistanPolandSaint Pierre and MiquelonPitcairnPuerto RicoP" + + "ortugalPalauParaguayQatarRéunionRomaniaRussiaRwandaSaudi ArabiaZvits" + + "uwa zvaSolomonSeychellesSudanSwedenSingaporeSaint HelenaSloveniaSlov" + + "akiaSierra LeoneSan MarinoSenegalSomaliaSurinameSão Tomé and Príncip" + + "eEl SalvadorSyriaSwazilandZvitsuwa zveTurk neCaicoChadiTogoThailandT" + + "ajikistanTokelauEast TimorTurkmenistanTunisiaTongaTurkeyTrinidad and" + + " TobagoTuvaluTaiwanTanzaniaUkraineUgandaAmerikaUruguayUzbekistanVati" + + "can StateSaint Vincent and the GrenadinesVenezuelaZvitsuwa zveHingir" + + "andiZvitsuwa zveAmerikaVietnamVanuatuWallis and FutunaSamoaYemenMayo" + + "tteSouth AfricaZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x001a, 0x0026, 0x0038, 0x003f, 0x0046, + 0x004d, 0x0053, 0x0053, 0x005b, 0x006b, 0x0072, 0x007b, 0x0081, + 0x0081, 0x008a, 0x009f, 0x00a7, 0x00b2, 0x00b9, 0x00c3, 0x00cb, + 0x00d3, 0x00da, 0x00e0, 0x00e0, 0x00e7, 0x00ee, 0x00f5, 0x00f5, + 0x00fb, 0x0101, 0x0108, 0x0108, 0x0110, 0x0118, 0x011e, 0x0124, + 0x0124, 0x0144, 0x015c, 0x0161, 0x016c, 0x0177, 0x0187, 0x018c, + 0x0194, 0x0199, 0x01a1, 0x01a1, 0x01aa, 0x01ae, 0x01c4, 0x01c4, + 0x01c4, 0x01ca, 0x01d8, 0x01df, 0x01df, 0x01e7, 0x01ee, 0x01f6, + // Entry 40 - 7F + 0x0208, 0x020f, 0x020f, 0x0216, 0x021d, 0x0222, 0x0222, 0x0229, + 0x022e, 0x0235, 0x0235, 0x023c, 0x0240, 0x0255, 0x025f, 0x025f, + 0x0265, 0x026a, 0x0278, 0x027f, 0x0286, 0x0293, 0x0293, 0x0298, + 0x02a1, 0x02aa, 0x02b0, 0x02b6, 0x02c0, 0x02d1, 0x02d7, 0x02d7, + 0x02e0, 0x02e4, 0x02f1, 0x02f7, 0x02f7, 0x02f7, 0x02ff, 0x0306, + 0x030b, 0x0312, 0x0312, 0x031b, 0x0322, 0x032a, 0x032a, 0x032f, + 0x034d, 0x0351, 0x0355, 0x035c, 0x0361, 0x0361, 0x0368, 0x036e, + 0x0373, 0x0378, 0x0382, 0x038a, 0x0392, 0x0398, 0x03ad, 0x03b9, + // Entry 80 - BF + 0x03c5, 0x03cb, 0x03dd, 0x03e7, 0x03eb, 0x03f2, 0x03fd, 0x040a, + 0x0413, 0x041a, 0x0421, 0x042a, 0x0434, 0x043a, 0x043f, 0x0446, + 0x044c, 0x0453, 0x0453, 0x0453, 0x045d, 0x0471, 0x047a, 0x047e, + 0x0485, 0x048d, 0x048d, 0x04b0, 0x04ba, 0x04c4, 0x04ce, 0x04d3, + 0x04dc, 0x04e4, 0x04ea, 0x04f0, 0x04f8, 0x0502, 0x0509, 0x0516, + 0x051b, 0x052e, 0x0535, 0x053e, 0x0549, 0x054f, 0x0554, 0x0559, + 0x055d, 0x0568, 0x056c, 0x0572, 0x0576, 0x0586, 0x0596, 0x05a1, + 0x05a9, 0x05af, 0x05c8, 0x05d0, 0x05db, 0x05db, 0x05e3, 0x05e8, + // Entry C0 - FF + 0x05f0, 0x05f5, 0x05f5, 0x05fd, 0x0604, 0x0604, 0x060a, 0x0610, + 0x061c, 0x062f, 0x0639, 0x063e, 0x0644, 0x064d, 0x0659, 0x0661, + 0x0661, 0x0669, 0x0675, 0x067f, 0x0686, 0x068d, 0x0695, 0x0695, + 0x06ad, 0x06b8, 0x06b8, 0x06bd, 0x06c6, 0x06c6, 0x06de, 0x06e3, + 0x06e3, 0x06e7, 0x06ef, 0x06f9, 0x0700, 0x070a, 0x0716, 0x071d, + 0x0722, 0x0728, 0x073b, 0x0741, 0x0747, 0x074f, 0x0756, 0x075c, + 0x075c, 0x0763, 0x076a, 0x0774, 0x0781, 0x07a1, 0x07aa, 0x07c0, + 0x07d3, 0x07da, 0x07e1, 0x07f2, 0x07f7, 0x07f7, 0x07fc, 0x0803, + // Entry 100 - 13F + 0x080f, 0x0815, 0x081d, + }, + }, + { // so + "AndoraImaaraadka Carabta ee MidoobayAfgaanistaanAntigua iyo BarbudaAngui" + + "llaAlbaaniyaArmeeniyaAngoolaArjantiinSamowa AmeerikaAwsteriyaAwstara" + + "aliyaArubaAzerbajaanBosniya HersigoviinaBaarbadoosBangaaladheeshBilj" + + "amBurkiina FaasoBulgaariyaBaxreynBurundiBiniinBermuudaBuruneeyaBolii" + + "fiyaBraasiilBahaamasBhutanBotuswaanaBelarusBelizeKanadaJamhuuriyadda" + + " Dimuquraadiga KongoJamhuuriyadda Afrikada DhexeKongoSwiiserlaandIvo" + + "ry coastJaziiradda CookJiliKaameruunShiinahaKolombiyaKosta RiikaKuub" + + "aCape Verde IslandsQubrusJamhuuriyadda JekJarmalJabuutiDenmarkDomeen" + + "ikaJamhuuriyadda DomeenikaAljeeriyaIkuwadoorEstooniyaMasarEretereeya" + + "IsbeynItoobiyaFinlandFijiJaziiradaha FooklaanMicronesiaFaransiisGaab" + + "oonUnited KingdomGiriinaadaJoorjiyaFrench GuianaGaanaGibraltarGreenl" + + "andGambiyaGiniGuadeloupeEquatorial GuineaGiriigGuwaatamaalaGuamGini-" + + "BisaawGuyanaHondurasKorweeshiyaHaytiHangeriIndoneesiyaAyrlaandIsraaʼ" + + "iilHindiyaBritish Indian Ocean TerritoryCiraaqIiraanIislaandTalyaani" + + "JameykaUrdunJabaanKiiniyaKirgistaanKamboodiyaKiribatiKomoorosSaint K" + + "itts and NevisKuuriyada WaqooyiKuuriyada KoonfureedKuwaytCayman Isla" + + "ndsKasaakhistaanLaosLubnaanSaint LuciaLiechtensteinSirilaankaLaybeer" + + "iyaLosootoLituweeniyaLuksemboorgLatfiyaLiibiyaMarookoMoonakoMoldofaM" + + "adagaskarMarshall IslandsMakadooniyaMaaliMyanmarMongooliyaNorthern M" + + "ariana IslandsMartiniqueMuritaaniyaMontserratMaaldaMurishiyoosMaaldi" + + "qeenMalaawiMeksikoMalaysiaMusambiigNamiibiyaNew CaledoniaNayjerNorfo" + + "lk IslandNayjeeriyaNikaraaguwaNetherlandsNoorweeyNebaalNauruNiueNeyu" + + "usilaandCumaanPanamaPeruFrench PolynesiaPapua New GuineaFilibiinBaki" + + "staanBoolandSaint Pierre and MiquelonPitcairnPuerto RicoFalastiin Da" + + "anka galbeed iyo QasaBortuqaalPalauParaguayQadarRéunionRumaaniyaRuus" + + "hRuwandaSacuudi CarabiyaSolomon IslandsSishelisSuudaanIswidhanSingab" + + "oorSaint HelenaSloveniaSlovakiaSiraaliyoonSan MarinoSinigaalSoomaali" + + "yaSurinameSão Tomé and PríncipeEl SalvadorSuuriyaIswaasilaandTurks a" + + "nd Caicos IslandsJaadToogoTaylaandTajikistanTokelauTimorka bariTurkm" + + "enistanTuniisiyaTongaTurkiTrinidad and TobagoTuvaluTaywaanTansaaniya" + + "UkraynUgaandaMaraykankaUruguwaayUusbakistaanFaatikaanSaint Vincent a" + + "nd the GrenadinesFenisuweelaBritish Virgin IslandsU.S. Virgin Island" + + "sFiyetnaamVanuatuWallis and FutunaSamoaYamanMayotteKoonfur AfrikaSaa" + + "mbiyaSimbaabweFar aan la aqoon amase aan saxnayn", + []uint16{ // 260 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0024, 0x0030, 0x0043, 0x004b, 0x0054, + 0x005d, 0x0064, 0x0064, 0x006d, 0x007c, 0x0085, 0x0091, 0x0096, + 0x0096, 0x00a0, 0x00b4, 0x00be, 0x00cc, 0x00d2, 0x00e0, 0x00ea, + 0x00f1, 0x00f8, 0x00fe, 0x00fe, 0x0106, 0x010f, 0x0118, 0x0118, + 0x0120, 0x0128, 0x012e, 0x012e, 0x0138, 0x013f, 0x0145, 0x014b, + 0x014b, 0x016c, 0x0188, 0x018d, 0x0199, 0x01a4, 0x01b3, 0x01b7, + 0x01c0, 0x01c8, 0x01d1, 0x01d1, 0x01dc, 0x01e1, 0x01f3, 0x01f3, + 0x01f3, 0x01f9, 0x020a, 0x0210, 0x0210, 0x0217, 0x021e, 0x0227, + // Entry 40 - 7F + 0x023e, 0x0247, 0x0247, 0x0250, 0x0259, 0x025e, 0x025e, 0x0268, + 0x026e, 0x0276, 0x0276, 0x027d, 0x0281, 0x0295, 0x029f, 0x029f, + 0x02a8, 0x02af, 0x02bd, 0x02c7, 0x02cf, 0x02dc, 0x02dc, 0x02e1, + 0x02ea, 0x02f3, 0x02fa, 0x02fe, 0x0308, 0x0319, 0x031f, 0x031f, + 0x032b, 0x032f, 0x033a, 0x0340, 0x0340, 0x0340, 0x0348, 0x0353, + 0x0358, 0x035f, 0x035f, 0x036a, 0x0372, 0x037c, 0x037c, 0x0383, + 0x03a1, 0x03a7, 0x03ad, 0x03b5, 0x03bd, 0x03bd, 0x03c4, 0x03c9, + 0x03cf, 0x03d6, 0x03e0, 0x03ea, 0x03f2, 0x03fa, 0x040f, 0x0420, + // Entry 80 - BF + 0x0434, 0x043a, 0x0448, 0x0455, 0x0459, 0x0460, 0x046b, 0x0478, + 0x0482, 0x048c, 0x0493, 0x049e, 0x04a9, 0x04b0, 0x04b7, 0x04be, + 0x04c5, 0x04cc, 0x04cc, 0x04cc, 0x04d6, 0x04e6, 0x04f1, 0x04f6, + 0x04fd, 0x0507, 0x0507, 0x051f, 0x0529, 0x0534, 0x053e, 0x0544, + 0x054f, 0x0559, 0x0560, 0x0567, 0x056f, 0x0578, 0x0581, 0x058e, + 0x0594, 0x05a2, 0x05ac, 0x05b7, 0x05c2, 0x05ca, 0x05d0, 0x05d5, + 0x05d9, 0x05e5, 0x05eb, 0x05f1, 0x05f5, 0x0605, 0x0615, 0x061d, + 0x0626, 0x062d, 0x0646, 0x064e, 0x0659, 0x067a, 0x0683, 0x0688, + // Entry C0 - FF + 0x0690, 0x0695, 0x0695, 0x069d, 0x06a6, 0x06a6, 0x06ab, 0x06b2, + 0x06c2, 0x06d1, 0x06d9, 0x06e0, 0x06e8, 0x06f1, 0x06fd, 0x0705, + 0x0705, 0x070d, 0x0718, 0x0722, 0x072a, 0x0734, 0x073c, 0x073c, + 0x0754, 0x075f, 0x075f, 0x0766, 0x0772, 0x0772, 0x078a, 0x078e, + 0x078e, 0x0793, 0x079b, 0x07a5, 0x07ac, 0x07b8, 0x07c4, 0x07cd, + 0x07d2, 0x07d7, 0x07ea, 0x07f0, 0x07f7, 0x0801, 0x0807, 0x080e, + 0x080e, 0x0818, 0x0821, 0x082d, 0x0836, 0x0856, 0x0861, 0x0877, + 0x088a, 0x0893, 0x089a, 0x08ab, 0x08b0, 0x08b0, 0x08b5, 0x08bc, + // Entry 100 - 13F + 0x08ca, 0x08d2, 0x08db, 0x08fd, + }, + }, + { // sq + sqRegionStr, + sqRegionIdx, + }, + { // sr + srRegionStr, + srRegionIdx, + }, + { // sr-Latn + srLatnRegionStr, + srLatnRegionIdx, + }, + { // sv + svRegionStr, + svRegionIdx, + }, + {}, // sv-FI + { // sw + swRegionStr, + swRegionIdx, + }, + { // sw-CD + "AfuganistaniBeniniKongoKodivaaKuprosiUajemiLishenteniBukiniMyamaKisiwa c" + + "ha NorfokNijeriaTimori ya Mashariki", + []uint16{ // 230 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, + 0x0012, 0x0012, 0x0012, 0x0017, 0x0017, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + // Entry 40 - 7F + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + // Entry 80 - BF + 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0035, 0x003b, 0x003b, 0x003b, 0x003b, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0051, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + // Entry C0 - FF + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x006b, + }, + }, + { // ta + taRegionStr, + taRegionIdx, + }, + { // te + teRegionStr, + teRegionIdx, + }, + { // teo + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKeniaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // th + thRegionStr, + thRegionIdx, + }, + {}, // ti + { // to + "Motu Ê»AsenisiniÊ»AnitolaÊ»Alepea FakatahatahaÊ»AfikÄnisitaniAnitikua mo Pal" + + "aputaAnikuilaÊ»AlipaniaʻĀmeniaÊ»AngikolaÊ»AnitÄtikaÊ»AsenitinaHaÊ»amoa Ê»A" + + "melikaÊ»AosituliaÊ»AositelÄ“liaÊ»AlupaÊ»Otumotu Ê»AlaniÊ»AsapaisaniPosinia " + + "mo HesikÅvinaPÄpeitosiPengilÄtesiPelesiumePekano FasoPulukaliaPalein" + + "iPulunitiPeniniSÄ PatÄ“lemiPÄ“mutaPuluneiPolÄ«viaKalipiane fakahÅlaniPa" + + "lÄsiliPahamaPÅ«taniMotu PuvetiPotisiuanaPelalusiPeliseKÄnataÊ»Otumotu " + + "KokoKongo - KinisasaLipapilika Ê»Afilika LotolotoKongo - PalasavilaSu" + + "isilaniMatafonua Ê»AivolÄ«Ê»Otumotu KukiSiliKameluniSiainaKolomipiaMotu" + + " KilipatoniKosita LikaKiupaMuiÊ»i VÄ“teKulasaoMotu KilisimasiSaipalesi" + + "Lipapilika SekiSiamaneTieko KÄsiaSiputiTenimaÊ»akeTominikaLipapilika " + + "TominikaÊ»AisiliaSiuta mo MelilaÊ»EkuetoaÊ»EsitÅniaÊ»IsipiteSahala fakah" + + "ihifoÊ»ElituliaSipeiniʻĪtiÅpiaÊ»Iulope fakatahatahaFinilaniFisiÊ»Otumot" + + "u FokulaniMikolonÄ«siaÊ»Otumotu FaloeFalanisÄ“KaponiPilitÄniaKelenatÄSe" + + "ÅsiaKuiana fakafalanisÄ“KuenisÄ«KanaSipalÄlitÄKulinilaniKamipiaKiniKu" + + "atalupeÊ»Ekueta KiniKalisiÊ»Otumotu SeÅsia-tonga mo Saniuisi-tongaKuat" + + "amalaKuamuKini-PisauKuianaHongi Kongi SAR SiainaÊ»Otumotu Heati mo Ma" + + "kitonaliHonitulasiKuloisiaHaitiHungakaliaÊ»Otumotu KaneliÊ»InitonÄ“siaÊ»" + + "AealaniÊ»IsileliMotu ManiÊ»InitiaPotu fonua moana Ê»Initia fakapilitÄni" + + "aÊ»IlaakiÊ»IlaaniÊ»AisilaniʻĪtaliSelusÄ«SamaikaSoataneSiapaniKeniÄKÄ«kisi" + + "taniKamipÅtiaKilipasiKomolosiSÄ Kitisi mo NevisiKÅlea tokelauKÅlea t" + + "ongaKueitiÊ»Otumotu KeimeniKasakitaniLauLepanoniSÄ LÅ«siaLikitenisitei" + + "niSÄ«langikÄLaipeliaLesotoLituaniaLakisimipekiLativiaLÄ«piaMolokoMonak" + + "oMolotovaMonitenikaloSÄ MÄtini (fakafalanisÄ“)MatakasikaÊ»Otumotu MÄso" + + "loMasetÅniaMÄliPemaMongokÅliaMakau SAR SiainaÊ»Otumotu Maliana tokela" + + "uMÄtenikiMauliteniaMoÊ»ungaselatiMalitaMaulitiusiMalativisiMalauiMeki" + + "sikouMalÄ“siaMosÄ“mipikiNamipiaNiu KaletÅniaNisiaMotu NÅfolikiNaisilia" + + "NikalakuaHÅlaniNoauÄ“NepaliNauluNiuÄ“NuÊ»usilaÊ»OmaniPanamÄPelÅ«Polinisia" + + " fakafalanisÄ“PapuaniukiniFilipainiPÄkisitaniPolaniSÄ Piea mo Mikelon" + + "iÊ»Otumotu PitikeniPueto LikoPotu PalesitainePotukaliPalauPalakuaiKat" + + "ÄÊ»OsÄ“nia mamaÊ»oLÄ“unioniLomÄ“niaSÄ“piaLÅ«siaLuanitÄSaute Ê»AlepeaÊ»Otumot" + + "u SolomoneÊ»Otumotu SeiseliSÅ«teniSuÄ“teniSingapoaSÄ HelenaSilÅveniaSiv" + + "olopÄti mo Sani MaieniSilÅvakiaSiela LeoneSÄ MalinoSenekaloSÅmaliaSu" + + "linameSÅ«tani fakatongaSao TomÄ“ mo PilinisipeÊ»Ele SalavatoaSÄ MÄtini " + + "(fakahÅlani)SÄ«liaSuasilaniTulisiteni ta KunuhaÊ»Otumotu Tuki mo Kaiko" + + "siSÄtiPotu fonua tonga fakafalanisÄ“TokoTailaniTasikitaniTokelauTimoa" + + " hahakeTÅ«kimenisitaniTunÄ«siaTongaToakeTilinitati mo TopakoTÅ«valuTaiu" + + "aniTenisÄniaʻŪkalaÊ»ineÊ»IukanitÄÊ»Otumotu siÊ»i Ê»o Ê»AmelikaPuleÊ»anga fa" + + "katahataha Ê»AmelikaÊ»UlukuaiÊ»UsipekitaniKolo VatikaniSÄ Viniseni mo K" + + "ulenatiniVenesuelaÊ»Otumotu Vilikini fakapilitÄniaÊ»Otumotu Vilikini f" + + "akaÊ»amelikaVietinamiVanuatuÊ»Uvea mo FutunaHaÊ»amoaKÅsovoIemeniMaioteÊ»" + + "Afilika tongaSemipiaSimipapueiPotu fonua taÊ»eÊ»iloa pe halaMÄmaniÊ»Afi" + + "likaÊ»Amelika tokelauÊ»Amelika tongaÊ»OsÄ“niaÊ»Afilika fakahihifoÊ»Amelika" + + " lotolotoÊ»Afilika fakahahakeÊ»Afilika fakatokelauÊ»Afilika lotolotoÊ»Af" + + "ilika fakatongaOngo Ê»AmelikaÊ»Amelika fakatokelauKalipianeʻĒsia fakah" + + "ahakeʻĒsia fakatongaʻĒsia fakatongahahakeÊ»Iulope fakatongaÊ»AositelÄ“l" + + "Ä“siaMelanÄ«siaPotu fonua MikolonÄ«siaPolinÄ«siaʻĒsiaʻĒsia lotolotoʻĒsi" + + "a fakahihifoÊ»IulopeÊ»Iulope fakahahakeÊ»Iulope fakatokelauÊ»Iulope faka" + + "hihifoÊ»Amelika fakalatina", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0019, 0x002e, 0x003e, 0x0052, 0x005a, 0x0064, + 0x006d, 0x0077, 0x0083, 0x008e, 0x00a0, 0x00ab, 0x00b9, 0x00c0, + 0x00d1, 0x00dd, 0x00f3, 0x00fd, 0x0109, 0x0112, 0x011d, 0x0126, + 0x012d, 0x0135, 0x013b, 0x0148, 0x014f, 0x0156, 0x015e, 0x0173, + 0x017c, 0x0182, 0x0189, 0x0194, 0x019e, 0x01a6, 0x01ac, 0x01b3, + 0x01c1, 0x01d1, 0x01ee, 0x0200, 0x0209, 0x021c, 0x022a, 0x022e, + 0x0236, 0x023c, 0x0245, 0x0254, 0x025f, 0x0264, 0x0270, 0x0277, + 0x0286, 0x028f, 0x029e, 0x02a5, 0x02b1, 0x02b7, 0x02c2, 0x02ca, + // Entry 40 - 7F + 0x02dd, 0x02e6, 0x02f5, 0x02fe, 0x0309, 0x0312, 0x0323, 0x032d, + 0x0334, 0x033f, 0x0354, 0x035c, 0x0360, 0x0372, 0x037e, 0x038d, + 0x0396, 0x039c, 0x03a6, 0x03af, 0x03b6, 0x03ca, 0x03d2, 0x03d6, + 0x03e2, 0x03ec, 0x03f3, 0x03f7, 0x0400, 0x040d, 0x0413, 0x043c, + 0x0445, 0x044a, 0x0454, 0x045a, 0x0470, 0x048d, 0x0497, 0x049f, + 0x04a4, 0x04ae, 0x04be, 0x04cb, 0x04d4, 0x04dd, 0x04e6, 0x04ee, + 0x0516, 0x051e, 0x0526, 0x0530, 0x0538, 0x053f, 0x0546, 0x054d, + 0x0554, 0x055a, 0x0565, 0x056f, 0x0577, 0x057f, 0x0593, 0x05a1, + // Entry 80 - BF + 0x05ad, 0x05b3, 0x05c4, 0x05ce, 0x05d1, 0x05d9, 0x05e3, 0x05f2, + 0x05fd, 0x0605, 0x060b, 0x0613, 0x061f, 0x0626, 0x062c, 0x0632, + 0x0638, 0x0640, 0x064c, 0x0667, 0x0671, 0x0682, 0x068c, 0x0691, + 0x0695, 0x06a0, 0x06b0, 0x06c9, 0x06d2, 0x06dc, 0x06ea, 0x06f0, + 0x06fa, 0x0704, 0x070a, 0x0713, 0x071b, 0x0726, 0x072d, 0x073b, + 0x0740, 0x074e, 0x0756, 0x075f, 0x0766, 0x076c, 0x0772, 0x0777, + 0x077c, 0x0785, 0x078c, 0x0793, 0x0798, 0x07af, 0x07bb, 0x07c4, + 0x07cf, 0x07d5, 0x07e9, 0x07fb, 0x0805, 0x0815, 0x081d, 0x0822, + // Entry C0 - FF + 0x082a, 0x082f, 0x0840, 0x0849, 0x0851, 0x0857, 0x085d, 0x0865, + 0x0873, 0x0885, 0x0896, 0x089d, 0x08a5, 0x08ad, 0x08b7, 0x08c1, + 0x08db, 0x08e5, 0x08f0, 0x08fa, 0x0902, 0x090a, 0x0912, 0x0923, + 0x093a, 0x0949, 0x0962, 0x0968, 0x0971, 0x0985, 0x099e, 0x09a3, + 0x09c1, 0x09c5, 0x09cc, 0x09d6, 0x09dd, 0x09e9, 0x09f8, 0x0a00, + 0x0a05, 0x0a0a, 0x0a1e, 0x0a25, 0x0a2c, 0x0a36, 0x0a43, 0x0a4e, + 0x0a6b, 0x0a8c, 0x0a95, 0x0aa2, 0x0aaf, 0x0ac9, 0x0ad2, 0x0af3, + 0x0b13, 0x0b1c, 0x0b23, 0x0b33, 0x0b3b, 0x0b42, 0x0b48, 0x0b4e, + // Entry 100 - 13F + 0x0b5d, 0x0b64, 0x0b6e, 0x0b8c, 0x0b93, 0x0b9c, 0x0bad, 0x0bbc, + 0x0bc5, 0x0bd9, 0x0beb, 0x0bff, 0x0c14, 0x0c26, 0x0c39, 0x0c47, + 0x0c5c, 0x0c65, 0x0c77, 0x0c88, 0x0c9f, 0x0cb1, 0x0cc2, 0x0ccc, + 0x0ce3, 0x0ced, 0x0cf4, 0x0d04, 0x0d16, 0x0d1e, 0x0d31, 0x0d45, + 0x0d58, 0x0d6c, + }, + }, + { // tr + trRegionStr, + trRegionIdx, + }, + { // twq + "AndooraLaaraw Imaarawey MarganteyAfgaanistanAntigua nda BarbuudaAngiiyaA" + + "lbaaniArmeeniAngoolaArgentineAmeriki SamoaOtriÅ¡iOstraaliAruubaAzerba" + + "ayijaÅ‹Bosni nda HerzegovineBarbaadosBangladeÅ¡iBelgiikiBurkina fasoBu" + + "lgaariBahareenBurundiBeniÅ‹BermudaBruuneeBooliviBreezilBahamasBuutaÅ‹B" + + "otswaanaBiloriÅ¡iBeliiziKanaadaKongoo demookaratiki labooCentraafriki" + + " koyraKongooSwisuKudwarKuuk gungeyÅ iiliKameruunÅ iinKolombiKosta rika" + + "KuubaKapuver gungeyÅ iipurCek laboAlmaaɲeJibuutiDanemarkDoominikiDoom" + + "iniki labooAlžeeriEkwateerEstooniMisraEritreeEspaaɲeEcioopiFinlanduF" + + "ijiKalkan gungeyMikroneziFaransiGaabonAlbaasalaama MargantaGrenaadaG" + + "orgiFaransi GuyaanGaanaGibraltarGrinlandGambiGineGwadeluupGinee Ekwa" + + "torialGreeceGwatemaalaGuamGine-BissoGuyaaneHondurasKrwaasiHaitiHunga" + + "ariIndoneeziIrlanduIsrayelIndu labooBritiÅ¡i Indu teekoo laamaIraakIr" + + "aanAyselandItaaliJamaayikUrdunJaapoÅ‹KeeniyaKyrgyzstankamboogiKiribaa" + + "tiKomoorSeÅ‹ Kitts nda NevisKooree, GurmaKooree, HawsaKuweetKayman gu" + + "ngeyKaazakstanLaawosLubnaanSeÅ‹ LussiaLiechtensteinSrilankaLiberiaLee" + + "sotoLituaaniLuxembourgLetooniLiibiMaarokMonakoMoldoviMadagascarMarÅ¡a" + + "l gungeyMaacedooniMaaliMaynamarMongooliMariana Gurma GungeyMartiniik" + + "iMooritaaniMontserratMaltaMooris gungeyMaldiivuMalaawiMexikiMaleeziM" + + "ozambikNaamibiKaaledooni TaagaaNižerNorfolk GungooNaajiriiaNikaragwa" + + "HollanduNorveejNeepalNauruNiueZeelandu TaagaOmaanPanamaPeeruFaransi " + + "PolineeziPapua Ginee TaagaFilipinePaakistanPoloɲeSeÅ‹ Piyer nda Mikel" + + "onPitikarinPorto RikoPalestine Dangay nda GaazaPortugaalPaluParaguwe" + + "yKataarReenioÅ‹RumaaniIriÅ¡i labooRwandaSaudiyaSolomon GungeySeeÅ¡elSuu" + + "daÅ‹SweedeSingapurSeÅ‹ HelenaSloveeniSlovaakiSeera LeonSan MarinoSeneg" + + "alSomaaliSurinaamSao Tome nda PrinsipeSalvador labooSuuriaSwazilandT" + + "urk nda Kayikos GungeyCaaduTogoTaayilandTaažikistanTokelauTimoor haw" + + "saTurkmenistaÅ‹TuniziTongaTurkiTrinidad nda TobaagoTuvaluTaayiwanTanz" + + "aaniUkreenUgandaAmeriki Laabu MarganteyUruguweyUzbeekistanVaatikan L" + + "aamaSeÅ‹vinsaÅ‹ nda GrenadineVeneezuyeelaBritiÅ¡i Virgin gungeyAmeerik " + + "Virgin GungeyVietnaamVanautuWallis nda FutunaSamoaYamanMayootiHawsa " + + "Afriki LabooZambiZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0007, 0x0021, 0x002c, 0x0040, 0x0047, 0x004e, + 0x0055, 0x005c, 0x005c, 0x0065, 0x0072, 0x0079, 0x0081, 0x0087, + 0x0087, 0x0094, 0x00a9, 0x00b2, 0x00bd, 0x00c5, 0x00d1, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f5, 0x00fc, 0x0103, 0x0103, + 0x010a, 0x0111, 0x0118, 0x0118, 0x0121, 0x012a, 0x0131, 0x0138, + 0x0138, 0x0152, 0x0164, 0x016a, 0x016f, 0x0175, 0x0180, 0x0186, + 0x018e, 0x0193, 0x019a, 0x019a, 0x01a4, 0x01a9, 0x01b7, 0x01b7, + 0x01b7, 0x01be, 0x01c6, 0x01ce, 0x01ce, 0x01d5, 0x01dd, 0x01e6, + // Entry 40 - 7F + 0x01f5, 0x01fd, 0x01fd, 0x0205, 0x020c, 0x0211, 0x0211, 0x0218, + 0x0220, 0x0227, 0x0227, 0x022f, 0x0233, 0x0240, 0x0249, 0x0249, + 0x0250, 0x0256, 0x026b, 0x0273, 0x0278, 0x0286, 0x0286, 0x028b, + 0x0294, 0x029c, 0x02a1, 0x02a5, 0x02ae, 0x02be, 0x02c4, 0x02c4, + 0x02ce, 0x02d2, 0x02dc, 0x02e3, 0x02e3, 0x02e3, 0x02eb, 0x02f2, + 0x02f7, 0x02ff, 0x02ff, 0x0308, 0x030f, 0x0316, 0x0316, 0x0320, + 0x033a, 0x033f, 0x0344, 0x034c, 0x0352, 0x0352, 0x035a, 0x035f, + 0x0366, 0x036d, 0x0377, 0x037f, 0x0388, 0x038e, 0x03a2, 0x03af, + // Entry 80 - BF + 0x03bc, 0x03c2, 0x03cf, 0x03d9, 0x03df, 0x03e6, 0x03f1, 0x03fe, + 0x0406, 0x040d, 0x0414, 0x041c, 0x0426, 0x042d, 0x0432, 0x0438, + 0x043e, 0x0445, 0x0445, 0x0445, 0x044f, 0x045d, 0x0467, 0x046c, + 0x0474, 0x047c, 0x047c, 0x0490, 0x049a, 0x04a4, 0x04ae, 0x04b3, + 0x04c0, 0x04c8, 0x04cf, 0x04d5, 0x04dc, 0x04e4, 0x04eb, 0x04fc, + 0x0502, 0x0510, 0x0519, 0x0522, 0x052a, 0x0531, 0x0537, 0x053c, + 0x0540, 0x054e, 0x0553, 0x0559, 0x055e, 0x056f, 0x0580, 0x0588, + 0x0591, 0x0598, 0x05ae, 0x05b7, 0x05c1, 0x05db, 0x05e4, 0x05e8, + // Entry C0 - FF + 0x05f1, 0x05f7, 0x05f7, 0x05ff, 0x0606, 0x0606, 0x0612, 0x0618, + 0x061f, 0x062d, 0x0634, 0x063b, 0x0641, 0x0649, 0x0654, 0x065c, + 0x065c, 0x0664, 0x066e, 0x0678, 0x067f, 0x0686, 0x068e, 0x068e, + 0x06a3, 0x06b1, 0x06b1, 0x06b7, 0x06c0, 0x06c0, 0x06d7, 0x06dc, + 0x06dc, 0x06e0, 0x06e9, 0x06f5, 0x06fc, 0x0708, 0x0715, 0x071b, + 0x0720, 0x0725, 0x0739, 0x073f, 0x0747, 0x074f, 0x0755, 0x075b, + 0x075b, 0x0772, 0x077a, 0x0785, 0x0793, 0x07ac, 0x07b8, 0x07ce, + 0x07e3, 0x07eb, 0x07f2, 0x0803, 0x0808, 0x0808, 0x080d, 0x0814, + // Entry 100 - 13F + 0x0826, 0x082b, 0x0833, + }, + }, + { // tzm + "Aná¸urraImarat Tiεrabin TidduklinAfÉ£anistanAntigwa d BarbudaAngwillaAlban" + + "yaArminyaAngulaArjuntinSamwa ImirikaniyyinUstriyyaUsá¹­ralyaArubaAzerb" + + "iǧanBusna-d-HirsikBarbadusBangladicBeljikaBurkina FasuBelÉ£aryaBaḥray" + + "nBurundiBininBirmudaBrunayBulivyaBá¹›azilBahamasBuá¹­anButswanaBilarusya" + + "BilizKanadaTagduda Tadimuqraá¹­it n KunguTagduda n Afrika WammasKunguS" + + "wisraTaÉ£azut n UszerTigzirin n KukCciliKamerunṢṣinKulumbyaKusá¹­a Rika" + + "kubaTigzirin n IÉ£f UzegzawQubrusTagduda n ÄŒikAlmanyaǦibutiDanmarkḌum" + + "inikaTagduda n ḌuminikanDzayerIkwaá¸urIsá¹­unyaMiá¹£rIritryaSbanyaItyupya" + + "Finlaná¸aFijiTigzirin n FalklandMikrunizyaFá¹›ansaGabunTagelda Taddukel" + + "tGrinadaJyurjyaGuyana TafransistÆ”anaJibralá¹­arGrinlaná¸aGambyaÆ”inyaGwa" + + "dalupÆ”inya Tikwaá¹­ur itYunanGwatimalaGwamÆ”inya-BissawGuyanaHindurasKr" + + "watyaHaytiHenÉ£aryaIndunizyaIrlaná¸aIsraeilHindAmur n Agaraw Uhindi Ub" + + "á¹›iá¹­aniÆiraqIranIslaná¸aIá¹­alyaJamaykaUrá¸unJjappunKinyaKirÉ£istanKambu" + + "djKiribatiQumurSantekits d NivisKurya TugafatKurya TunẓultKuwwaytTig" + + "zirin n KaymanKazaxistanLawsLubnanSantelusyaLictencá¹­aynSrilankaLibir" + + "yaLisuá¹­uLitwanyaLiksumburgLiá¹­á¹­unyaLibyaMeṛṛukMunakuMulá¸avyaMadaÉ£acqa" + + "rTigzirin n MarcalMaqdunyaMaliMyanmarManÉ£ulyaTigzirin n Maryana Tuga" + + "fatMartinikMuritanyaMuntsirraMalá¹­aMurisMaldivMalawiMiksikMalizyaMuza" + + "mbiqNamibyakalidunya TamaynutNnijerTigzirt NurfulkNijiriaNikaragwaHu" + + "laná¸aNnurwijNippalNawruNiwiZilaná¸a TamaynutÆummanPanamaPiruPulinizya" + + " TafransistPapwa Æ”inya TamaynutFilippinPakistanPulunyaSantepyir d Mi" + + "kelunPitkirnPurturikuAgemmaḠUgut d Æ”azza Ifilisá¹­iniyenPurtuÉ£alPaluP" + + "aragwayQaá¹­arRiyyunyunṚumanyaRusyaRuwwaná¸aSsaεudiyya TaεrabtTigzirin " + + "n SalumunSsicilSsudanSsewwidSanÉ£afuraSantehilinSluvinyaSluvakyaSiral" + + "yunSanmarinuSsiniÉ£alṢṣumalSurinamSawá¹­umi d PrinsipSalvaá¸urSuryaSwazi" + + "laná¸aTigzirin Turkiyyin d TikaykusinTcadṬṭuguṬaylaná¸aṬaǧikistanTuklu" + + "Timur Tagmuá¹­TurkmanistanTunesṬungaTurkyaTrinidad d ṬubaguṬuvaluṬaywa" + + "nṬanzanyaUkranyaUÉ£andaIwunak Idduklen n AmirikaUrugwayUzbakistanAwan" + + "k iÉ£rem n VatikanSantevinsent d GrinadinVinzwillaTigzirin (Virgin) T" + + "ibá¹›iá¹­aniyinTigzirin n Virjin n Iwunak YedduklenViá¹­namVanwatuWalis d " + + "FutunaSamwaYamanMayuá¹­Tafrikt TunẓulZambyaZimbabwi", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x0023, 0x002e, 0x003f, 0x0047, 0x004e, + 0x0055, 0x005b, 0x005b, 0x0063, 0x0076, 0x007e, 0x0088, 0x008d, + 0x008d, 0x0097, 0x00a5, 0x00ad, 0x00b6, 0x00bd, 0x00c9, 0x00d2, + 0x00db, 0x00e2, 0x00e7, 0x00e7, 0x00ee, 0x00f4, 0x00fb, 0x00fb, + 0x0103, 0x010a, 0x0111, 0x0111, 0x0119, 0x0122, 0x0127, 0x012d, + 0x012d, 0x014b, 0x0162, 0x0167, 0x016d, 0x017d, 0x018b, 0x0190, + 0x0197, 0x019f, 0x01a7, 0x01a7, 0x01b3, 0x01b7, 0x01ce, 0x01ce, + 0x01ce, 0x01d4, 0x01e2, 0x01e9, 0x01e9, 0x01f0, 0x01f7, 0x0201, + // Entry 40 - 7F + 0x0216, 0x021c, 0x021c, 0x0225, 0x022e, 0x0234, 0x0234, 0x023b, + 0x0241, 0x0248, 0x0248, 0x0252, 0x0256, 0x0269, 0x0273, 0x0273, + 0x027b, 0x0280, 0x0291, 0x0298, 0x029f, 0x02b0, 0x02b0, 0x02b5, + 0x02c0, 0x02cb, 0x02d1, 0x02d7, 0x02df, 0x02f3, 0x02f8, 0x02f8, + 0x0301, 0x0305, 0x0312, 0x0318, 0x0318, 0x0318, 0x0320, 0x0327, + 0x032c, 0x0335, 0x0335, 0x033e, 0x0347, 0x034e, 0x034e, 0x0352, + 0x0373, 0x0379, 0x037d, 0x0386, 0x038e, 0x038e, 0x0395, 0x039c, + 0x03a3, 0x03a8, 0x03b2, 0x03b9, 0x03c1, 0x03c6, 0x03d7, 0x03e4, + // Entry 80 - BF + 0x03f3, 0x03fa, 0x040b, 0x0415, 0x0419, 0x041f, 0x0429, 0x0436, + 0x043e, 0x0445, 0x044d, 0x0455, 0x045f, 0x046b, 0x0470, 0x047a, + 0x0480, 0x048a, 0x048a, 0x048a, 0x0495, 0x04a6, 0x04ae, 0x04b2, + 0x04b9, 0x04c2, 0x04c2, 0x04dc, 0x04e4, 0x04ed, 0x04f6, 0x04fd, + 0x0502, 0x0508, 0x050e, 0x0514, 0x051b, 0x0523, 0x052a, 0x053c, + 0x0542, 0x0551, 0x0558, 0x0561, 0x056a, 0x0571, 0x0577, 0x057c, + 0x0580, 0x0592, 0x0599, 0x059f, 0x05a3, 0x05b7, 0x05cc, 0x05d4, + 0x05dc, 0x05e3, 0x05f6, 0x05fd, 0x0606, 0x062d, 0x0636, 0x063a, + // Entry C0 - FF + 0x0642, 0x0649, 0x0649, 0x0652, 0x065b, 0x065b, 0x0660, 0x066a, + 0x067e, 0x0690, 0x0696, 0x069c, 0x06a3, 0x06ad, 0x06b7, 0x06bf, + 0x06bf, 0x06c7, 0x06cf, 0x06d8, 0x06e1, 0x06eb, 0x06f2, 0x06f2, + 0x0705, 0x070f, 0x070f, 0x0714, 0x0720, 0x0720, 0x073f, 0x0743, + 0x0743, 0x074c, 0x0758, 0x0765, 0x076a, 0x0778, 0x0784, 0x0789, + 0x0790, 0x0796, 0x07a9, 0x07b1, 0x07b9, 0x07c3, 0x07ca, 0x07d1, + 0x07d1, 0x07ea, 0x07f1, 0x07fb, 0x0811, 0x0828, 0x0831, 0x0853, + 0x0877, 0x087f, 0x0886, 0x0894, 0x0899, 0x0899, 0x089e, 0x08a5, + // Entry 100 - 13F + 0x08b5, 0x08bb, 0x08c3, + }, + }, + { // ug + "ئاسسÛنسىيون ئارىلىئاندوررائەرەب بىرلەشمە خەلىپىلىكىئاÙغانىستانئانتىگۋا Û‹" + + "Û• باربۇدائانگۋىللائالبانىيەئەرمÛنىيەئانگولائانتاركتىكائارگÛنتىنائام" + + "Ûرىكا تەۋەلىكىدىكى ساموئائاۋسترىيەئاۋسترالىيەئارۇبائالاند ئاراللىرى" + + "ئەزەربەيجانبوسنىيە-Ú¯ÛرتسÛگوۋىناباربادوسباڭلادىشبÛلگىيەبۇركىنا-Ùاسوب" + + "ۇلغارىيەبەھرەينبۇرۇندىبÛنىنساينىت-بارتھÛلەمي ئاراللىرىبÛرمۇدابىرۇنÛ" + + "يبولىۋىيەكارىب دÛڭىزى گوللاندىيەبىرازىلىيەباھامابۇتانبۇۋÛت ئاراللىر" + + "ىبوتسۋانابÛلارۇسىيەبÛلىزكاناداكەئەلىڭ كوكۇس ئاراللىرىكونگو - كىنشاس" + + "ائوتتۇرا ئاÙرىقا جۇمھۇرىيىتىكونگو - Ø¨Ù‰Ø±Ø§Ø²Ø²Ø§Û‹Ù‰Ù„Ø´Ù‰Û‹Ù‰ØªØ³Ø§Ø±Ù‰ÙŠÛ•ÙƒÙˆØªÛ Ø¯Û Ø¦Ù‰" + + "ۋوئىركۇك ئاراللىرىچىلىكامÛرونجۇڭگوكولومبىيەكىلىپپÛرتون ئاراللىرىكوس" + + "تارىكاكۇبايÛشىل تۇمشۇقكۇراسوروژدÛستۋو ئارىلىسىپرۇسچÛØ® جۇمھۇرىيىتىگÛ" + + "رمانىيەدÛÚ¯Ùˆ-گارشىياجىبۇتىدانىيەدومىنىكادومىنىكا جۇمھۇرىيىتىئالجىرىي" + + "ەسÛيتا Û‹Û• Ù…ÛلىلائÛكۋادورئÛستونىيەمىسىرغەربىي ساخارائÛرىترÛيەئىسپانى" + + "يەئÛÙىيوپىيەياۋروپا ئىتتىپاقىÙىنلاندىيەÙىجىÙالكلاند ئاراللىرىمىكرون" + + "ÛزىيەÙائÛرو ئاراللىرىÙىرانسىيەگابونئەنگلىيە پادىشاھلىقىگىرÛناداگىرو" + + "زىيەÙىرانسىيەگە قاراشلىق گىۋىياناگÛرىنسىگاناجەبىلتارىقگىرÛنلاندگامب" + + "ىيەگىۋىنÛيەگىۋادÛلۇپئÛكۋاتور گىۋىنÛيەسىگىرÛتسىيەجەنۇبىي جورجىيە Û‹Û• " + + "جەنۇبىي ساندىۋىچ ئاراللىرىگىۋاتÛمالاگۇئامگىۋىنÛÙŠÛ•-بىسسائۇگىۋىياناشي" + + "اڭگاڭ ئالاھىدە مەمۇرىي رايونى (جۇڭگو)Ø®Ûرد Û‹Û• ماك-دونالد ئارىلىھوندۇ" + + "راسكىرودىيەھايتىۋÛنگىرىيەكانارى ئاراللىرىھىندونÛزىيەئىرÛلاندىيەئىسر" + + "ائىلىيەمÛÙ† ئارىلىھىندىستانئەنگلىيەنىڭ ھىندى ئوكياندىكى تەۋەلىكىئىرا" + + "قئىرانئىسلاندىيەئىتالىيەجÛرسÛييامايكائىيوردانىيەياپونىيەكÛنىيەقىرغى" + + "زىستانكامبودژاكىرىباتىكوموروساينىت-كىرىستوÙÛر Û‹Û• Ù†Ûۋىسشىمالىي كورىي" + + "ەجەنۇبىي كورىيەكۇۋەيتكايمان ئاراللىرىقازاقىستانلائوسلىۋانساينىت-لۇس" + + "ىيەلىچتÛنشتÛين بەگلىكىسىرىلانكالىبÛرىيەلÛسوتولىتۋانىيەلىيۇكسÛمبۇرگل" + + "اتۋىيەلىۋىيەماراكەشموناكومولدوۋامونتÛÙ†Ûگروساينىت-مارتÛنماداغاسقارما" + + "رشال ئاراللىرىماكÛدونىيەمالىبىرماموڭغۇلىيەئاۋمÛÙ† ئالاھىدە مەمۇرىي ر" + + "ايونى (جۇڭگو)شىمالىي مارىيانا ئاراللىرىمارتىنىكاماۋرىتانىيەمونتسÛرر" + + "اتمالتاماۋرىتىئۇسمالدىۋÛمالاۋىمÛكسىكامالايشىياموزامبىكنامىبىيەيÛÚ­Ù‰ " + + "كالÛدونىيەنÛگىرنورÙولك ئارىلىنىگÛرىيەنىكاراگۇئاگوللاندىيەنورۋÛگىيەن" + + "ÛپالناۋرۇنىيۇئÛÙŠÛÚ­Ù‰ زÛلاندىيەئومانپاناماپÛرۇÙىرانسىيەگە قاراشلىق پو" + + "لىنÛزىيەپاپۇئا ÙŠÛÚ­Ù‰ گىۋىنÛيەسىÙىلىپپىنپاكىستانپولشاساينىت-پىئÛر Û‹Û• " + + "مىكÛلون ئاراللىرىپىتكاير ئاراللىرىپۇئÛرتو-رىكوپەلەستىن زÛمىنىپورتۇگ" + + "الىيەپالاۋپاراگۋايقاتارئوكيانىيە ئەتراپىدىكى ئاراللاررÛئونىيونرۇمىن" + + "ىيەسÛربىيەرۇسىيەرىۋانداسەئۇدى ئەرەبىستانسولومون ئاراللىرىسÛيشÛلسۇدا" + + "نشىۋÛتسىيەسىنگاپورساينىت Ú¾ÛÙ„ÛناسىلوۋÛنىيەسىۋالبارد Û‹Û• يان-مايÛÙ† ئار" + + "ىلىسىلوۋاكىيەسÛررالÛئونسان-مارىنوسÛÙ†Ûگالسومالىسۇرىنامجەنۇبىي سۇدانس" + + "ان ØªÙˆÙ…Û Û‹Û• پرىنسىپÛئەل سالۋادورسىنت مارتÛنسۈرىيەسىۋÛزىلاندترىستان د" + + "اكۇنھاتۇركس Û‹Û• كايكوس ئاراللىرىچادÙىرانسىيەگە قاراشلىق جەنۇبتىكى زÛ" + + "مىنلىرىتوگوتايلاندتاجىكىستانتوكÛلاۋشەرقىي تىمورتۈركمەنىستانتۇنىستون" + + "گاتۈركىيەتىرىنىداد Û‹Û• توباگوتۇۋالۇتەيۋەنتانزانىيەئۇكرائىنائۇگاندائا" + + "Ù…Ûرىكا تەۋەلىكىدىكى سىرتقى كىچىك ئاراللارئامÛرىكا قوشما شتاتلىرىئۇر" + + "ۇگۋايئۆزبÛكىستانۋاتىكان شەھىرىساينىت-ۋىنسÛنت Û‹Û• گىرÛنادىنÛسۋÛÙ†ÛزۇئÛ" + + "لائەنگلىيەگە قاراشلىق ۋىرجىن ئارىلىئامÛرىكا تەۋەلىكىدىكى ۋىرجىن تاق" + + "ىم ئاراللىرىۋىيÛتنامۋانۇئاتۇۋالىس Û‹Û• ÙۇتۇناساموئاكوسوۋويەمەنمايوتتÛ" + + "جەنۇبىي ئاÙرىقازامبىيەزىمبابۋÛيوچۇن جايدۇنيائاÙرىقاشىمالىي ئامÛرىكا" + + "جەنۇبىي ئامÛرىكائوكيانىيەغەربىي ئاÙرىقائوتتۇرا ئامÛرىكاشەرقىي ئاÙرى" + + "قاشىمالىي ئاÙرىقائوتتۇرا ئاÙرىقاجەنۇبىي ئاÙرىقا رايونىئامÛرىكاشىمال" + + "ىي ئامÛرىكا رايونىكارىب دÛڭىزىشەرقىي ئاسىياجەنۇبىي ئاسىياشەرقىي جەن" + + "ۇبىي ئاسىياجەنۇبىي ياۋروپائاۋسترالئاسىيامÛلانÛسىيەمىكرونÛزىيە رايون" + + "ىپولىنىزىيەئاسىيائوتتۇرا ئاسىياغەربىي ئاسىياياۋروپاشەرقىي ياۋروپاشى" + + "مالىي ياۋروپاغەربىي ياۋروپالاتىن ئامÛرىكا", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0023, 0x0033, 0x0063, 0x0079, 0x009d, 0x00af, 0x00c1, + 0x00d3, 0x00e1, 0x00f7, 0x010b, 0x0141, 0x0153, 0x0169, 0x0175, + 0x0194, 0x01aa, 0x01d1, 0x01e1, 0x01f1, 0x01ff, 0x0216, 0x0228, + 0x0236, 0x0244, 0x024e, 0x0282, 0x0290, 0x029e, 0x02ae, 0x02da, + 0x02ee, 0x02fa, 0x0304, 0x0321, 0x0331, 0x0345, 0x034f, 0x035b, + 0x0387, 0x03a2, 0x03d6, 0x03f7, 0x040d, 0x0429, 0x0442, 0x044a, + 0x0458, 0x0462, 0x0474, 0x049d, 0x04af, 0x04b7, 0x04ce, 0x04da, + 0x04f9, 0x0505, 0x0522, 0x0534, 0x054b, 0x0557, 0x0563, 0x0573, + // Entry 40 - 7F + 0x059a, 0x05ac, 0x05c8, 0x05d8, 0x05ea, 0x05f4, 0x060d, 0x061f, + 0x0631, 0x0645, 0x0666, 0x067a, 0x0682, 0x06a5, 0x06bb, 0x06da, + 0x06ec, 0x06f6, 0x071d, 0x072d, 0x073d, 0x0775, 0x0783, 0x078b, + 0x079f, 0x07b1, 0x07bf, 0x07cf, 0x07e1, 0x0806, 0x0818, 0x086d, + 0x0881, 0x088b, 0x08aa, 0x08ba, 0x0902, 0x0930, 0x0940, 0x0950, + 0x095a, 0x096c, 0x098b, 0x09a1, 0x09b7, 0x09cd, 0x09e0, 0x09f2, + 0x0a39, 0x0a43, 0x0a4d, 0x0a61, 0x0a71, 0x0a7d, 0x0a8b, 0x0aa1, + 0x0ab1, 0x0abd, 0x0ad3, 0x0ae3, 0x0af3, 0x0aff, 0x0b30, 0x0b4b, + // Entry 80 - BF + 0x0b66, 0x0b72, 0x0b91, 0x0ba5, 0x0baf, 0x0bb9, 0x0bd2, 0x0bf7, + 0x0c09, 0x0c19, 0x0c25, 0x0c37, 0x0c4f, 0x0c5d, 0x0c69, 0x0c77, + 0x0c83, 0x0c91, 0x0ca5, 0x0cbe, 0x0cd2, 0x0cf1, 0x0d05, 0x0d0d, + 0x0d17, 0x0d29, 0x0d6f, 0x0da1, 0x0db3, 0x0dc9, 0x0ddd, 0x0de7, + 0x0dfb, 0x0e09, 0x0e15, 0x0e23, 0x0e35, 0x0e45, 0x0e55, 0x0e72, + 0x0e7c, 0x0e97, 0x0ea7, 0x0ebb, 0x0ecf, 0x0ee1, 0x0eeb, 0x0ef5, + 0x0f01, 0x0f1c, 0x0f26, 0x0f32, 0x0f3a, 0x0f76, 0x0fa0, 0x0fb0, + 0x0fc0, 0x0fca, 0x1008, 0x1029, 0x1040, 0x105d, 0x1073, 0x107d, + // Entry C0 - FF + 0x108d, 0x1097, 0x10d1, 0x10e3, 0x10f3, 0x1101, 0x110d, 0x111b, + 0x113c, 0x115d, 0x1169, 0x1173, 0x1185, 0x1195, 0x11ae, 0x11c2, + 0x11f8, 0x120c, 0x1220, 0x1233, 0x1241, 0x124d, 0x125b, 0x1274, + 0x1299, 0x12b0, 0x12c5, 0x12d1, 0x12e5, 0x1302, 0x1331, 0x1337, + 0x1384, 0x138c, 0x139a, 0x13ae, 0x13bc, 0x13d3, 0x13eb, 0x13f5, + 0x13ff, 0x140d, 0x1431, 0x143d, 0x1449, 0x145b, 0x146d, 0x147b, + 0x14cd, 0x14f9, 0x1509, 0x151f, 0x153a, 0x1571, 0x1585, 0x15c4, + 0x1618, 0x1628, 0x1638, 0x1654, 0x1660, 0x166c, 0x1676, 0x1684, + // Entry 100 - 13F + 0x16a1, 0x16af, 0x16bf, 0x16d0, 0x16da, 0x16e8, 0x1707, 0x1726, + 0x1738, 0x1753, 0x1772, 0x178d, 0x17aa, 0x17c7, 0x17f1, 0x1801, + 0x182d, 0x1844, 0x185d, 0x1878, 0x18a0, 0x18bd, 0x18d9, 0x18ed, + 0x1910, 0x1924, 0x1930, 0x194b, 0x1964, 0x1972, 0x198d, 0x19aa, + 0x19c5, 0x19e0, + }, + }, + { // uk + ukRegionStr, + ukRegionIdx, + }, + { // ur + urRegionStr, + urRegionIdx, + }, + { // ur-IN + "Ø¬Ø²ÛŒØ±Û Ø§Ø³ÛŒÙ†Ø´Ù†Ø¬Ø²Ø§Ø¦Ø± Ø¢Ù„ÛŒÙ†ÚˆØ¬Ø²ÛŒØ±Û Ø¨ÙˆÙˆÛŒØªØ¬Ø²Ø§Ø¦Ø± (کیلنگ) کوکوسکوت داوواغجزائر ککج" + + "Ø²ÛŒØ±Û Ú©Ù„Ù¾Ø±Ù¹Ù†ÚˆÛŒÚ¯Ùˆ گارشیاجزائر Ùاکلینڈجزائر ÙیروÙرانسیسی گیاناجزائر Ûر" + + "Úˆ Ùˆ مکڈونلڈجزائر کناریبرطانوی بحرÛند خطÛجزائر مارشلجزائر شمالی ماری" + + "Ø§Ù†Ø§Ø¬Ø²ÛŒØ±Û Ù†Ø§Ø±Ùوکجزائر پٹکیرنجزائر سلیمانترسٹان دا کونیاجزائر کیکس Ùˆ " + + "ترکیÛامریکی بیرونی جزائربرطانوی جزائر ورجنامریکی جزائر ورجن", + []uint16{ // 249 elements + // Entry 0 - 3F + 0x0000, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, + 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, 0x0017, + 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, + 0x002c, 0x002c, 0x002c, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0076, 0x0085, 0x0085, + 0x0085, 0x0085, 0x0085, 0x009c, 0x009c, 0x009c, 0x009c, 0x009c, + 0x009c, 0x009c, 0x009c, 0x009c, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + // Entry 40 - 7F + 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, + 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00ca, 0x00ca, 0x00dd, + 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00dd, 0x00f8, 0x00f8, 0x00f8, + 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, + 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x00f8, 0x011b, 0x011b, 0x011b, + 0x011b, 0x011b, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, + 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, + 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, + // Entry 80 - BF + 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, + 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, + 0x0152, 0x0152, 0x0152, 0x0152, 0x0152, 0x0167, 0x0167, 0x0167, + 0x0167, 0x0167, 0x0167, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, + 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, 0x018b, + 0x018b, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, + 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, 0x01a2, + 0x01a2, 0x01a2, 0x01a2, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, + // Entry C0 - FF + 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, 0x01b9, + 0x01b9, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, + 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01d0, 0x01ec, 0x020d, 0x020d, + 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, + 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, 0x020d, + 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, 0x0231, 0x0253, + 0x0273, + }, + }, + { // uz + uzRegionStr, + uzRegionIdx, + }, + { // uz-Arab + "اÙغانستان", + []uint16{ // 5 elements + 0x0000, 0x0000, 0x0000, 0x0000, 0x0012, + }, + }, + { // uz-Cyrl + "ВознеÑение оролиÐндорраБирлашган Ðраб ÐмирликлариÐфғониÑтонÐнтигуа ва Ба" + + "рбадоÑÐнгилаÐлбаниÑÐрманиÑтонÐнголаÐнтарктикаÐргентинаÐмерика Самоа" + + "ÑиÐвÑтриÑÐвÑтралиÑÐрубаÐланд ороллариОзарбайжонБоÑÐ½Ð¸Ñ Ð²Ð° Герцеговин" + + "аБарбадоÑБангладешБельгиÑБуркина-ФаÑоБолгариÑБаҳрайнБурундиБенинМуқ" + + "Ð°Ð´Ð´Ð°Ñ Ð’Ð°Ñ€Ñ„Ð°Ð»Ð¾Ð¼ÐµÐ¹Ð‘ÐµÑ€Ð¼ÑƒÐ´Ð°Ð‘Ñ€ÑƒÐ½ÐµÐ¹Ð‘Ð¾Ð»Ð¸Ð²Ð¸ÑКариб ÐидерландиÑÑиБразилиÑБага" + + "ма ороллариБутанБувет оролиБотÑваннаБелоруÑиÑÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Кили" + + "нг) ороллариКонго-КиншаÑаМарказий Ðфрика РеÑпубликаÑиКонго Браззави" + + "льШвейцариÑКот-д-ИвуарКук ороллариЧилиКамерунХитойКолумбиÑКлипперто" + + "н оролиКоÑта-РикаКубаКабо-ВердеКураÑаоРождеÑтво Ð¾Ñ€Ð¾Ð»Ð¸ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ…Ð¸Ñ Ð ÐµÑп" + + "убликаÑиОлмониÑДиего ГарÑиÑДжибутиДаниÑДоминикаДоминикан РеÑпублика" + + "ÑиЖазоирСейта ва МелиллаЭквадорЭÑтониÑМиÑрҒарбий Саҳрои КабирЭритре" + + "ÑИÑпаниÑЭфиопиÑЕвропа ИттифоқиФинлÑндиÑФижи ороллариФолькленд оролл" + + "ариМикронезиÑФарер ороллариФранциÑГабонБирлашган ҚиролликГренадаГру" + + "зиÑФранцуз ГвианаÑиГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделу" + + "пеЭкваториал ГвинеÑГрециÑЖанубий Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ð¸Ñ Ð²Ð° Жанубий Сендвич оролла" + + "риГватемалаГуамГвинеÑ-БиÑауГаÑнаГонконг Хитой ММҲГерд ороли ва МакД" + + "оналд ороллариГондураÑХорватиÑГаитиВенгриÑКанар ороллариИндонезиÑИр" + + "ландиÑИÑроилМÑн оролиҲиндиÑÑ‚Ð¾Ð½Ð‘Ñ€Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ò²Ð¸Ð½Ð´ океани ҳудудиИроқЭронИÑ" + + "ландиÑИталиÑДжерÑиЯмайкаИорданиÑЯпониÑКениÑҚирғизиÑтонКамбоджаКириб" + + "атиКомор ороллариСент-ÐšÐ¸Ñ‚Ñ Ð²Ð° ÐевиÑШимолий КореÑЖанубий КореÑКувайт" + + "Кайман ороллариҚозоғиÑтонЛаоÑЛиванСент-ЛюÑиÑЛихтенштейнШри-ЛанкаЛиб" + + "ериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМарокашМонакоМолдоваЧерногориÑС" + + "ент-МартинМадагаÑкарМаршал ороллариМакедониÑМалиМьÑнма (Бирма)Муғул" + + "иÑтонМакао Хитой ММҲШимолий Марианна ороллариМартиникаМавританиÑМон" + + "Ñ‚ÑерратМальтаМаврикийМальдив ороллариМалавиМекÑикаМалайзиÑМозамбикÐ" + + "амибиÑЯнги КаледониÑÐигерÐорфолк ороллариÐигериÑÐикарагуаÐидерланди" + + "ÑÐорвегиÑÐепалÐауруÐиуеЯнги ЗеландиÑУммонПанамаПеруФранцуз Полинези" + + "ÑÑиПапуа Янги ГвинеÑФилиппинПокиÑтонПольшаСент-Пьер ва МикелонПитка" + + "рин ороллариПуÑрто-РикоФалаÑтин ҳудудиПортугалиÑПалауПарагвайҚатарÐ" + + "ндош ОкеаниÑРеюньонРуминиÑСербиÑРоÑÑиÑÐ ÑƒÐ°Ð½Ð´Ð°Ð¡Ð°ÑƒÐ´Ð¸Ñ ÐрабиÑтониСоломо" + + "н ороллариСейшел ороллариСуданШвециÑÐ¡Ð¸Ð½Ð³Ð°Ð¿ÑƒÑ€ÐœÑƒÒ›Ð°Ð´Ð´Ð°Ñ Ð•Ð»ÐµÐ½Ð° ороллари" + + "СловениÑСавльбард ва Жан МаенСловакиÑСьерра-ЛеонеСан-МариноСенегалС" + + "омалиСуринамЖанубий СуданСан-Томе ва ПринÑипиЭль-СальвадорСинт-Маар" + + "тенСуриÑСвазилендТриÑтан де ÐšÑƒÐ½Ð°Ð¢ÑƒÑ€ÐºÑ Ð²Ð° ÐšÐ°Ð¹ÐºÐ¾Ñ Ð¾Ñ€Ð¾Ð»Ð»Ð°Ñ€Ð¸Ð§Ð°Ð´Ð¤Ñ€Ð°Ð½Ñ†Ð¸Ñ " + + "жанубий худудлариТогоТайландТожикиÑтонТокелауШарқий-ТиморТуркманиÑÑ‚" + + "онТуниÑТонгаТуркиÑТринидад ва ТобагоТувалуТайванТанзаниÑУкраинаУган" + + "даÐҚШ ёндош ороллариҚўшма ШтатларУругвайЎзбекиÑтонВатиканСент-ВинÑе" + + "нт ва ГренадинВенеÑуÑÐ»Ð°Ð‘Ñ€Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð’Ð¸Ñ€Ð´Ð¶Ð¸Ð½Ð¸Ñ Ð¾Ñ€Ð¾Ð»Ð»Ð°Ñ€Ð¸ÐҚШ Ð’Ð¸Ñ€Ð´Ð¶Ð¸Ð½Ð¸Ñ Ð¾Ñ€Ð¾" + + "ллариВьетнамВануатуУÑÐ»Ð»Ð¸Ñ Ð²Ð° ФутунаСамоаКоÑовоЯманМайоттаЖанубий ÐÑ„" + + "рикаЗамбиÑЗимбабвеÐомаълум минтақаДунёÐфрикаШимолий ÐмерикаЖанубий " + + "ÐмерикаОкеаниÑҒарбий ÐфрикаМарказий ÐмерикаШарқий ÐфрикаШимолий ÐÑ„Ñ€" + + "икаМарказий ÐфрикаЖануби-ÐфрикаÐмерикаШимоли-ÐмерикаКариб ҳавзаÑиШа" + + "рқий ОÑиёЖанубий ОÑиёЖанубий-Шарқий ОÑиёЖанубий ЕвропаÐвÑтралазиÑМе" + + "ланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ð¼Ð¸Ð½Ñ‚Ð°Ò›Ð°ÑиПолинезиÑОÑиёМарказий ОÑиёҒарбий ОÑиёЕвр" + + "опаШарқий ЕвропаШимолий ЕвропаҒарбий ЕвропаЛотин ÐмерикаÑи", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001f, 0x002d, 0x005f, 0x0073, 0x0097, 0x00a3, 0x00b1, + 0x00c5, 0x00d1, 0x00e5, 0x00f7, 0x0114, 0x0122, 0x0134, 0x013e, + 0x0159, 0x016d, 0x0195, 0x01a5, 0x01b7, 0x01c5, 0x01dc, 0x01ec, + 0x01fa, 0x0208, 0x0212, 0x0237, 0x0245, 0x0251, 0x025f, 0x0284, + 0x0294, 0x02b1, 0x02bb, 0x02d0, 0x02e2, 0x02f4, 0x02fe, 0x030a, + 0x0334, 0x034d, 0x0383, 0x03a2, 0x03b4, 0x03c8, 0x03df, 0x03e7, + 0x03f5, 0x03ff, 0x040f, 0x042e, 0x0441, 0x0449, 0x045c, 0x046a, + 0x0487, 0x048f, 0x04b2, 0x04c0, 0x04d7, 0x04e5, 0x04ef, 0x04ff, + // Entry 40 - 7F + 0x052a, 0x0536, 0x0554, 0x0562, 0x0570, 0x0578, 0x059c, 0x05aa, + 0x05b8, 0x05c6, 0x05e3, 0x05f5, 0x060e, 0x0631, 0x0645, 0x0660, + 0x066e, 0x0678, 0x069b, 0x06a9, 0x06b5, 0x06d4, 0x06e0, 0x06e8, + 0x06fa, 0x070e, 0x071a, 0x0726, 0x0738, 0x0759, 0x0765, 0x07b8, + 0x07ca, 0x07d2, 0x07e9, 0x07f3, 0x0813, 0x084f, 0x085f, 0x086f, + 0x0879, 0x0887, 0x08a2, 0x08b4, 0x08c4, 0x08d0, 0x08e1, 0x08f3, + 0x0926, 0x092e, 0x0936, 0x0946, 0x0952, 0x095e, 0x096a, 0x097a, + 0x0986, 0x0990, 0x09a6, 0x09b6, 0x09c6, 0x09e1, 0x0a02, 0x0a1b, + // Entry 80 - BF + 0x0a34, 0x0a40, 0x0a5d, 0x0a71, 0x0a79, 0x0a83, 0x0a96, 0x0aac, + 0x0abd, 0x0acb, 0x0ad7, 0x0ae1, 0x0af5, 0x0b01, 0x0b0b, 0x0b19, + 0x0b25, 0x0b33, 0x0b47, 0x0b5c, 0x0b70, 0x0b8d, 0x0b9f, 0x0ba7, + 0x0bc0, 0x0bd4, 0x0bf0, 0x0c20, 0x0c32, 0x0c46, 0x0c5a, 0x0c66, + 0x0c76, 0x0c95, 0x0ca1, 0x0caf, 0x0cbf, 0x0ccf, 0x0cdd, 0x0cf8, + 0x0d02, 0x0d21, 0x0d2f, 0x0d41, 0x0d57, 0x0d67, 0x0d71, 0x0d7b, + 0x0d83, 0x0d9c, 0x0da6, 0x0db2, 0x0dba, 0x0ddf, 0x0dff, 0x0e0f, + 0x0e1f, 0x0e2b, 0x0e50, 0x0e71, 0x0e86, 0x0ea3, 0x0eb7, 0x0ec1, + // Entry C0 - FF + 0x0ed1, 0x0edb, 0x0ef4, 0x0f02, 0x0f10, 0x0f1c, 0x0f28, 0x0f34, + 0x0f55, 0x0f74, 0x0f91, 0x0f9b, 0x0fa7, 0x0fb7, 0x0fe3, 0x0ff3, + 0x101a, 0x102a, 0x1041, 0x1054, 0x1062, 0x106e, 0x107c, 0x1095, + 0x10ba, 0x10d3, 0x10ea, 0x10f4, 0x1106, 0x1122, 0x114f, 0x1155, + 0x1185, 0x118d, 0x119b, 0x11af, 0x11bd, 0x11d4, 0x11ec, 0x11f6, + 0x1200, 0x120c, 0x122e, 0x123a, 0x1246, 0x1256, 0x1264, 0x1270, + 0x1292, 0x12ab, 0x12b9, 0x12cd, 0x12db, 0x1308, 0x131a, 0x134e, + 0x1378, 0x1386, 0x1394, 0x13b2, 0x13bc, 0x13c8, 0x13d0, 0x13de, + // Entry 100 - 13F + 0x13f9, 0x1405, 0x1415, 0x1434, 0x143c, 0x1448, 0x1465, 0x1482, + 0x1490, 0x14a9, 0x14c8, 0x14e1, 0x14fc, 0x1519, 0x1532, 0x1540, + 0x155b, 0x1574, 0x1589, 0x15a0, 0x15c4, 0x15df, 0x15f5, 0x1607, + 0x162e, 0x1640, 0x1648, 0x1661, 0x1676, 0x1682, 0x169b, 0x16b6, + 0x16cf, 0x16ec, + }, + }, + { // vai + "ꕉꖆꕟꖳꕯꔤꗳ ꕉꕟꔬ ꗡꕆꔓꔻꕉꔱꕭꔕꔻꕚꘋꕉꘋꔳꖶꕎ ê—ª ꕑꖜꕜꕉꕄꕞꕉꔷꕑꕇꕩꕉꕆꕯꕉê–ꕞꕉꘀꘋꔳꕯꕶꕱ ꕢꕹꕎꖺꔻꖤꕎꖺꖬꖤꔃꔷꕩꕉꖩꕑ" + + "ꕉꕤꕑꔤꕧꘋꕷꔻꕇꕰ ê—ª ꗥꕤꖑꔲꕯꕑꔆê–ꔻꕑꕅꕞꗵꔼꗩꕀꗚꘋꕷꕃꕯ ꕘꖇꗂꔠꔸꕩꕑꗸꘋꖜꖩꔺꗩꕇꘋꗩꖷꕜꖜꖩꘉꔧꕷꔷꔲꕩꖜꕟꔘꔀꕑ" + + "ꕌꕮꔻꖜꕚꘋꕷꖬꕎꕯꗩꕞꖩꔻꔆꔷꔘꕪꕯꕜê–ê– ê—µê—žê–´ê•Ÿê”Ž ꕸꖃꔀꕉꔱꔸꕪ ê—³ ê—³ ꕸꖃꔀê–ê–ꖬꔃꕤ ꖨꕮꕊê–ꔳ ꕾꕎê–ꕃ ꔳꘋꗣꔚꔷ" + + "ꕪꔈꖩꘋꕦꔤꕯꗛê—ê”­ê•©ê–ꔻꕚ ꔸꕪꕃꖳꕑꔞꔪ ꗲꔵ ꔳꘋꗣꕢꗡꖛê—ꔻꗿꕃ ꕸꖃꔀꕧꕮꔧꕀꖜꔳꕜꕇꕮꕃê–ꕆꕇꕪê–ꕆꕇꕪꘋ ꕸꕱꔀꕉꔷꔠ" + + "ꔸꕩꗡꖴꔃê—ꗡꔻꕿꕇꕰꕆꔖꕞꔀꔸꔳꕟê•ê˜Šê”§ê”¤ê”³ê–Žê”ªê•©ê”±ê˜‹ ꖨꕮꕊꔱꔤꕀꕘꔷꕃ ꖨꕮ ꔳꘋꗣꕆê–ꕇꔻꕩꖢꕟꘋꔻꕭꕷꘋꖕꕯꔤꗳꖶꕟꕯꕜꗘ" + + "ꖺꕀꕩꗱꘋꔻ ꖶꕎꕯꕭꕌꕯꕀꖜꕟꕚꕧꕓ ê–´ê•Ž ꖨꕮꕊꕭꔭꕩꕅꔤꕇꖶꕎê”ꖨꔅꖦꕰꕊ ê—³ ꕅꔤꕇꗥꗷꘋꖶꕎꔎꕮꕞꖶꕎꕆꕅꔤꕇ ꔫꕢꕴꖶꕩ" + + "ꕯꖽꖫꕟê–ꔓꔻꕩꕌꔤꔳꖽꘋꕭꔓꔤꖆꕇꔻꕩꕉꔓ ꖨꕮꕊꕑꕇꔻꕞꔤꕞꔤꔺꕩꔛꔟꔻ ꔤꔺꕩ ꗛꔤꘂ ꕗꕴꔀ ꕮꔤꕟꕃꔤꕟꘋꕉꔤꔻ ꖨꕮꕊꔤ" + + "ꕚꔷꕧꕮꔧꕪꗘꖺꗵꘋꔛꗨꗢꔞꕰꕃꕅꔻꕚꘋꕪꕹꔵꕩꕃꔸꕑꔳê–ꕹꖄꔻꔻꘋ ꕃꔳꔻ ê—ª ꔕꔲꔻê–ꔸꕩ ꗛꔤ ꕪꘋꗒê–ꔸꕩ ꗛꔤ ꔒꘋꗣ ê—" + + "ꖴꔃꔳꔞꔀꕮꘋ ꔳꘋꗣꕪꕤꔻꕚꘋꕞꕴꔻꔒꕑꗟꘋꔻꘋ ꖨꔻꕩꔷꗿꘋꔻꗳꘋꖬꔸ ꕞꘋꕪꕞꔤꔫꕩꔷꖇꕿꔷꖤꔃꕇꕰê—ꔻꘋꗂꖺꕞꔳꔲꕩꔒꔫꕩꗞ" + + "ê•Ÿê–ꗞꕯê–ê–’ê”·ê–ꕙꕮꕜꕭꔻꕪꕮꕊꕣ ꔳꘋꗣꕮꔖê–ꕇꕰꕮꔷꕆꕩꘋꕮꗞê–ꔷꕩꗛꔤ ꕪꘋꗒ ꕮꔸꕩꕯ ꔳꘋꗣꕮꔳꕇꕃꗞꔓꔎꕇꕰꗞꘋꔖꕟꔳꕮ" + + "ꕊꕚꗞꔓꗔꕮꔷꕜê”ꕮꕞꕌꔨꘈꔻê–ꕮꔒꔻꕩꕹꕤꔭꕃꕯꕆꔫꕩꕪꔷê–ꕇꕰ ꕯꕮꕊꕯꔤꕧꗟꖺꗉ ꔳꘋꗣꕯꔤꕀꔸꕩꕇꕪꕟꖶꕎꘉꕜ ꖨꕮꕊꗟꖺꔃ" + + "ꕇê•ê”·ê–†ê–©ê–¸ê”ƒê”¤ê”½ê”¤ ꖨꕮ ꕯꕮꕊꕱꕮꘋê•ê•¯ê•®ê—¨ê—¡ê–©ê—±ê˜‹ê”» ꕶꔷꕇꔻꕩê•ê–›ê•Ž ꕅꔤꕇ ꕯꕮꕊꔱꔒꔪꘋê•ê•ƒê”»ê•šê˜‹ê•¶ê—·ê˜‹ê”»ê˜‹ ꔪꘂ ê—ª " + + "ꕆꔞê—ꘋꔪꔳꕪꕆꔪꖳꕿ ꔸê–ê•ê”’ꔻꔳꕯ ꔎꔒ ꕀꔤ ꗛꔤ ê•ž ê—± ê—ª ꕭꕌꕤꕶꕿꕃꔤ ꕸꖃꔀê•ê–ƒê•ê•Ÿê—ꔀꕪꕚꕌꔓꗠꖻꖄꕆꕇꕰê—ꖺꔻꕩ" + + "ê•Ÿê–™ê•¡ê•žê•Œê– ê•¸ê–ƒê”€ê–¬ê•žê”¤ê•®ê•Šê•¯ ꔳꘋꗣꔖꗼꔷꖬꗵꘋꖬꔨꗵꘋꔻꕬꕶꕱꔻꘋ ꗥꔷꕯꔻꖃê”ꕇꕰꔻꖃꕙꕃꕩꔋꕩ ꕒꕌꖺ ꕸꖃꔀꕮꔸꖆ ꕢꘋ" + + "ꔻꕇꕭꕌꖇꕮꔷꕩꖬꔸꕯꔈꕢꕴ ꕿꔈ ê—ª ꕉ ꕮꔧ ꕗꕴꔀꗡꗷ ê•¢ê”ê—ꖺꔻꕩꘋꖬꕎꔽ ꖨꕮꕊꗋꖺꕃꔻ ê—ª ꕪꔤê–ê”» ꔳꘋꗣꕦꔵꕿꖑꕚꔤ" + + " ꖨꕮꕊꕚꕀꕃꔻꕚꘋꕿꔞꖃꔎꔒ ê—ƒ ꔳꗞꖻꗋꖺꕃꕮꕇꔻꕚꘋꖤꕇꔻꕩꗋꕬꗋꖺꕃꖤꔸꔕꕜ ê—ª ꕿꔆꖑꕚꖣꖨꕚꔤꕎꘋꕚꘋꕤꕇꕰꖳꖴꔓꘋꖳꕭꕡꕶ" + + "ꕱꖳꔓê—ꔀꖳꗩꕃꔻꕚꘋꔻꘋ ꔲꘋꔻꘋ ê—ª ꖶꔓꕯꔵꘋ ꖸꕙꔳꕪꘋ ꕸꖃꔀꔛꔟꔻ ê—©ê—¡ ê— ê–·ê–¬ ꔳꘋꗣꕶꕱ ê—©ê—¡ ê— ê–·ê–¬ ꔳꘋꗣꗲ" + + "ꕇꖮꔃꕞꕙꖸꕎꖤꕎꔷꔻ ê—ª ꖢꖤꕯꕢꕹꖙꕉê”ꘈꘋꕮꗚꔎꕉꔱꔸꕪ ꗛꔤ ꔒꘋꗣ ê— ê•¸ê–ƒê”€ê•¤ê”­ê•©ê”½ê•“ê–œê”ƒ", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0009, 0x002c, 0x0041, 0x005e, 0x0067, 0x0076, + 0x007f, 0x0088, 0x0088, 0x0097, 0x00a7, 0x00b3, 0x00c5, 0x00ce, + 0x00ce, 0x00e0, 0x0100, 0x010c, 0x011b, 0x0127, 0x0137, 0x0143, + 0x014c, 0x0155, 0x015e, 0x015e, 0x0167, 0x0173, 0x017f, 0x017f, + 0x018b, 0x0197, 0x01a0, 0x01a0, 0x01ac, 0x01b8, 0x01c1, 0x01ca, + 0x01ca, 0x01ea, 0x0208, 0x020e, 0x0221, 0x022e, 0x023e, 0x0244, + 0x0250, 0x0259, 0x0265, 0x0265, 0x0275, 0x027e, 0x0295, 0x0295, + 0x0295, 0x02a4, 0x02b4, 0x02bd, 0x02bd, 0x02c6, 0x02d2, 0x02de, + // Entry 40 - 7F + 0x02f7, 0x0306, 0x0306, 0x0312, 0x0321, 0x032a, 0x032a, 0x0336, + 0x033f, 0x034e, 0x034e, 0x035e, 0x0367, 0x0381, 0x0390, 0x0390, + 0x039c, 0x03a5, 0x03b1, 0x03bd, 0x03c9, 0x03dc, 0x03dc, 0x03e5, + 0x03f1, 0x0408, 0x0411, 0x041a, 0x0429, 0x0440, 0x0449, 0x0449, + 0x0458, 0x0461, 0x0474, 0x047d, 0x047d, 0x047d, 0x0486, 0x0492, + 0x049b, 0x04a7, 0x04a7, 0x04b6, 0x04c6, 0x04d8, 0x04d8, 0x04e1, + 0x050c, 0x0515, 0x051e, 0x0531, 0x053a, 0x053a, 0x0546, 0x0552, + 0x055b, 0x0561, 0x0570, 0x057c, 0x0588, 0x0594, 0x05b2, 0x05cc, + // Entry 80 - BF + 0x05ea, 0x05f3, 0x0609, 0x0618, 0x0621, 0x062d, 0x063d, 0x064f, + 0x065f, 0x066b, 0x0674, 0x0683, 0x0692, 0x069e, 0x06a7, 0x06b0, + 0x06b9, 0x06c5, 0x06c5, 0x06c5, 0x06d4, 0x06e7, 0x06f6, 0x06fc, + 0x0708, 0x0714, 0x0714, 0x073b, 0x0747, 0x0756, 0x0765, 0x076e, + 0x0777, 0x0783, 0x078f, 0x0798, 0x07a4, 0x07b0, 0x07bc, 0x07d5, + 0x07de, 0x07f1, 0x0800, 0x080f, 0x081f, 0x0828, 0x0831, 0x0837, + 0x0840, 0x0857, 0x0860, 0x0869, 0x0872, 0x088b, 0x08a8, 0x08b4, + 0x08c3, 0x08cc, 0x08ea, 0x08f6, 0x0906, 0x0940, 0x0956, 0x095c, + // Entry C0 - FF + 0x0968, 0x0971, 0x0971, 0x097a, 0x0986, 0x0986, 0x0992, 0x099b, + 0x09ae, 0x09ca, 0x09d3, 0x09dc, 0x09e8, 0x09f4, 0x0a04, 0x0a13, + 0x0a13, 0x0a22, 0x0a3c, 0x0a4c, 0x0a58, 0x0a64, 0x0a70, 0x0a70, + 0x0a96, 0x0aa9, 0x0aa9, 0x0ab2, 0x0ac5, 0x0ac5, 0x0aec, 0x0af2, + 0x0af2, 0x0af8, 0x0b08, 0x0b1a, 0x0b23, 0x0b37, 0x0b4f, 0x0b5b, + 0x0b61, 0x0b6a, 0x0b84, 0x0b8d, 0x0b99, 0x0ba8, 0x0bb4, 0x0bbd, + 0x0bbd, 0x0bc3, 0x0bcf, 0x0be1, 0x0be1, 0x0c0c, 0x0c22, 0x0c47, + 0x0c69, 0x0c78, 0x0c84, 0x0c9b, 0x0ca7, 0x0ca7, 0x0cb0, 0x0cb9, + // Entry 100 - 13F + 0x0ce4, 0x0ced, 0x0cf9, + }, + }, + { // vai-Latn + "AÅ‹dóraYunaitÉ› Arabhi ÆmireAfigándesitaÅ‹AÅ‹tígwa ÆahabhudaAÅ‹gílaAbhaniyaAm" + + "éniyaAÅ‹gólaAjɛŋtínaPoo SambowaƆÌsituwaƆsituwéeliyaArubhaAzabhaijaÅ‹B" + + "hÉ”siniyaBhabhedoBhangiladɛ̀shiBhÉ›giyɔŋBhokina FásoBhÉ”geriyaBharɛŋBhu" + + "rundiBhÉ›niBhÉ›mudaBhurunɛĩBholiviyaBhurazeliBahámasiBhutaÅ‹BhosuwanaBh" + + "É›larusiBhelizKánádaAvorekooÃfíríka Lumaã TÉ› BoloeKóngoSuweza LumaãK" + + "ódivówaKóki TiÅ‹Å‹É›ChéliKameruÅ‹CháínaKÉ”lÉ”mbiyaKósíta RíkoKiyubhaKepi " + + "VÉ›di TiÅ‹Å‹É›SaÉ›purÉ”ChÉ›ki BoloeJamáĩJibhutiDanimahaDomíiníkaDomíiníka Æ" + + "oloeAgiriyaÆÌkúwédÉ”ÆsitóninyaMísélaÆriteraPanyɛĩÃtiyópiyaFiÅ‹lɛŋFíjiF" + + "áháki Luma TiÅ‹Å‹É›MikonisiyaFɛŋsiGabhɔŋYunaitÉ› KíŋdɔŋGurinédaJɔɔjiyaF" + + "ɛŋsi GiwanaGanaJibhurataJamba Kuwa LumaãGambiyaGiniGuwadelupeDúúnyá" + + " TÉ› GiiniHÉ›lɛŋGuwatÉ›malaGuwamiGini BhisawoGuyanaHÉ”nduraKoresiyaHáiti" + + "HÉ”ÌngareÃndonisiyaÃre LumaãBhanísiláilaÃndiyaJengéesi Gbawoe Ãndiya " + + "KÉ”iyÉ› LÉ”IrakiIraÅ‹Ãisi LumaãÃtaliJamaikaJɔɔdaÅ‹JapaÅ‹KényaKigisitaÅ‹KaÅ‹b" + + "hodiyaKiribhatiKomorosiSiÅ‹ Kisi É“É›Ì NevisiKoriya KÉ”i KaÅ‹ndÉ”Koriya KÉ”" + + "i LeÅ‹Å‹É› LÉ”KuwetiKeemaÅ‹ TiÅ‹Å‹É›KazasitaÅ‹LawosiLebhanÉ”SiÅ‹ LusiyaSuri LaÅ‹" + + "kaLaibhiyaLisótoLituweninyaLusimbÉ”LativiyaLebhiyaMÉ”rokoMÉ”nakoMÉ”lidov" + + "aMadagasitaMasha TiÅ‹Å‹É›MasedoninyaMaliMiyamahaMÉ”ngoliyaKÉ”i KaÅ‹ndÉ” Mar" + + "iyana TiÅ‹Å‹É›MatinikiMÉ”retaninyaMÉ”seratiMalitaMÉ”reshÉ”MalidaviMalawiMÉ›s" + + "íkoMalesiyaMozambikiNamibiyaKalidoninya NámaáNaÄ©jaNÉ”fÉ” TiÅ‹Å‹É›NaÄ©jiri" + + "yaNikaraguwaNidÉ”lɛŋNɔɔweNepaNoruNiweZilɛŋ NámaáOmaÅ‹PanamaPÉ›ruFɛŋsi P" + + "olinísiyaPapuwa Gini NámaáFélepiÅ‹PakisitaÅ‹PólɛŋSiÅ‹ PiiyÉ› É“É›Ì Mikelɔŋ" + + "PitikɛŋPiyuto RikoPalesitininya Tele Jii KÉ”iyÉ› lá hÄ© GazaPotokíiPalo" + + "ParagÉ”eKatahaRenyɔɔ̃RomininyaRÉ”shiyaRawundaLahabuSulaimaãna TiÅ‹Å‹É›Ses" + + "hɛɛSudɛŋSuwidɛŋSíingapooSiÅ‹ HÉ›linaSuloveninyaSulovakiyaGbeya BahawÉ”S" + + "aÅ‹ MarindoSinigahaSomaliyaSurinambeSawo Tombe É“É› a GbawoeÆlÉ› SávádÉ”S" + + "íyaÅ‹Suwazi LumaãTukisi ɓɛ̀ Kaikóosi TiÅ‹Å‹É›ChádiTogoTai LumaãTajikisi" + + "taÅ‹TokeloTele ÆÉ”Ì Timɔɔ̃TukimÉ›nisitaÅ‹TunisiyaTÉ”ngaTÉ”ÌÉ”ÌkiTurindeda É“" + + "É›Ì TobhegoTuváluTaiwaÅ‹TaÅ‹zaninyaYukuréŋYugandaPooYuwegÉ”weYubhÉ›kisit" + + "aÅ‹VatikaÅ‹ ÆoloeSiÅ‹ ViÅ‹siVÉ›nÉ›zuwelaJengéesi Bhɛɛ LÉ” Musu TiÅ‹Å‹É›Poo BhÉ›" + + "É› lÉ” Musu TiÅ‹Å‹É›ViyanamiVanuwátuWalísiSamowaYemÉ›niMavoteAfirika KÉ”i " + + "LeÅ‹Å‹É› LÉ”ZambiyaZimbabhuwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x001e, 0x002d, 0x0041, 0x0049, 0x0051, + 0x0059, 0x0061, 0x0061, 0x006c, 0x0077, 0x0081, 0x008f, 0x0095, + 0x0095, 0x00a0, 0x00aa, 0x00b2, 0x00c2, 0x00cd, 0x00da, 0x00e4, + 0x00ec, 0x00f4, 0x00fa, 0x00fa, 0x0102, 0x010c, 0x0115, 0x0115, + 0x011e, 0x0127, 0x012e, 0x012e, 0x0137, 0x0141, 0x0147, 0x014f, + 0x014f, 0x0157, 0x0172, 0x0178, 0x0185, 0x018f, 0x019d, 0x01a3, + 0x01ab, 0x01b3, 0x01be, 0x01be, 0x01cc, 0x01d3, 0x01e6, 0x01e6, + 0x01e6, 0x01ef, 0x01fb, 0x0202, 0x0202, 0x0209, 0x0211, 0x021c, + // Entry 40 - 7F + 0x022e, 0x0235, 0x0235, 0x0242, 0x024e, 0x0256, 0x0256, 0x025e, + 0x0266, 0x0271, 0x0271, 0x027a, 0x027f, 0x0295, 0x029f, 0x029f, + 0x02a6, 0x02ae, 0x02c1, 0x02ca, 0x02d3, 0x02e1, 0x02e1, 0x02e5, + 0x02ee, 0x02ff, 0x0306, 0x030a, 0x0314, 0x0327, 0x032f, 0x032f, + 0x033a, 0x0340, 0x034c, 0x0352, 0x0352, 0x0352, 0x035a, 0x0362, + 0x0368, 0x0372, 0x0372, 0x037d, 0x0388, 0x0396, 0x0396, 0x039d, + 0x03c1, 0x03c6, 0x03cb, 0x03d7, 0x03dd, 0x03dd, 0x03e4, 0x03ed, + 0x03f3, 0x03f9, 0x0403, 0x040e, 0x0417, 0x041f, 0x0436, 0x044a, + // Entry 80 - BF + 0x0462, 0x0468, 0x0478, 0x0482, 0x0488, 0x0490, 0x049b, 0x049b, + 0x04a6, 0x04ae, 0x04b5, 0x04c0, 0x04c8, 0x04d0, 0x04d7, 0x04de, + 0x04e5, 0x04ee, 0x04ee, 0x04ee, 0x04f8, 0x0506, 0x0511, 0x0515, + 0x051d, 0x0527, 0x0527, 0x0546, 0x054e, 0x055a, 0x0563, 0x0569, + 0x0572, 0x057a, 0x0580, 0x0588, 0x0590, 0x0599, 0x05a1, 0x05b4, + 0x05ba, 0x05c9, 0x05d3, 0x05dd, 0x05e7, 0x05ee, 0x05f2, 0x05f6, + 0x05fa, 0x0609, 0x060e, 0x0614, 0x0619, 0x062c, 0x063f, 0x0648, + 0x0652, 0x065a, 0x0676, 0x067f, 0x068a, 0x06b5, 0x06bd, 0x06c1, + // Entry C0 - FF + 0x06c9, 0x06cf, 0x06cf, 0x06d9, 0x06e2, 0x06e2, 0x06ea, 0x06f1, + 0x06f7, 0x070b, 0x0713, 0x071a, 0x0723, 0x072d, 0x0739, 0x0744, + 0x0744, 0x074e, 0x075b, 0x0767, 0x076f, 0x0777, 0x0780, 0x0780, + 0x0798, 0x07a7, 0x07a7, 0x07ae, 0x07bb, 0x07bb, 0x07db, 0x07e1, + 0x07e1, 0x07e5, 0x07ef, 0x07fb, 0x0801, 0x0816, 0x0825, 0x082d, + 0x0833, 0x083e, 0x0856, 0x085d, 0x0864, 0x086f, 0x0878, 0x087f, + 0x087f, 0x0882, 0x088b, 0x0899, 0x08a8, 0x08b3, 0x08bf, 0x08e1, + 0x08fd, 0x0905, 0x090e, 0x0915, 0x091b, 0x091b, 0x0922, 0x0928, + // Entry 100 - 13F + 0x0941, 0x0948, 0x0952, + }, + }, + { // vi + viRegionStr, + viRegionIdx, + }, + { // vun + "AndoraFalme za KiarabuAfuganistaniAntigua na BarbudaAnguillaAlbaniaArmen" + + "iaAngolaAjentinaSamoa ya MarekaniAustriaAustraliaArubaAzabajaniBosni" + + "a na HezegovinaBabadosiBangladeshiUbelgijiBukinafasoBulgariaBahareni" + + "BurundiBeniniBermudaBruneiBoliviaBraziliBahamaButaniBotswanaBelarusi" + + "BelizeKanadaJamhuri ya Kidemokrasia ya KongoJamhuri ya Afrika ya Kat" + + "iKongoUswisiKodivaaVisiwa vya CookChileKameruniChinaKolombiaKostarik" + + "aKubaKepuvedeKuprosiJamhuri ya ChekiUjerumaniJibutiDenmakiDominikaJa" + + "mhuri ya DominikaAljeriaEkwadoEstoniaMisriEritreaHispaniaUhabeshiUfi" + + "niFijiVisiwa vya FalklandMikronesiaUfaransaGaboniUingerezaGrenadaJoj" + + "iaGwiyana ya UfaransaGhanaJibraltaGrinlandiGambiaGineGwadelupeGinekw" + + "etaUgirikiGwatemalaGwamGinebisauGuyanaHondurasiKorasiaHaitiHungariaI" + + "ndonesiaAyalandiIsraeliIndiaEneo la Uingereza katika Bahari HindiIra" + + "kiUajemiAislandiItaliaJamaikaYordaniJapaniKenyaKirigizistaniKambodia" + + "KiribatiKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiV" + + "isiwa vya KaymanKazakistaniLaosiLebanoniSantalusiaLishenteniSirilank" + + "aLiberiaLesotoLitwaniaLasembagiLativiaLibyaMorokoMonakoMoldovaBukini" + + "Visiwa vya MarshalMasedoniaMaliMyamaMongoliaVisiwa vya Mariana vya K" + + "askaziniMartinikiMoritaniaMontserratiMaltaMorisiModivuMalawiMeksikoM" + + "alesiaMsumbijiNamibiaNyukaledoniaNijeriKisiwa cha NorfokNijeriaNikar" + + "agwaUholanziNorweNepaliNauruNiueNyuzilandiOmaniPanamaPeruPolinesia y" + + "a UfaransaPapuaFilipinoPakistaniPolandiSantapieri na MikeloniPitkair" + + "niPwetorikoUkingo wa Magharibi na Ukanda wa Gaza wa PalestinaUrenoPa" + + "lauParagwaiKatariRiyunioniRomaniaUrusiRwandaSaudiVisiwa vya SolomonS" + + "helisheliSudaniUswidiSingapooSantahelenaSloveniaSlovakiaSiera LeoniS" + + "amarinoSenegaliSomaliaSurinamuSao Tome na PrincipeElsavadoSiriaUswaz" + + "iVisiwa vya Turki na KaikoChadiTogoTailandiTajikistaniTokelauTimori " + + "ya MasharikiTurukimenistaniTunisiaTongaUturukiTrinidad na TobagoTuva" + + "luTaiwaniTanzaniaUkrainiUgandaMarekaniUrugwaiUzibekistaniVatikaniSan" + + "tavisenti na GrenadiniVenezuelaVisiwa vya Virgin vya UingerezaVisiwa" + + " vya Virgin vya MarekaniVietinamuVanuatuWalis na FutunaSamoaYemeniMa" + + "yotteAfrika KusiniZambiaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x0016, 0x0022, 0x0034, 0x003c, 0x0043, + 0x004a, 0x0050, 0x0050, 0x0058, 0x0069, 0x0070, 0x0079, 0x007e, + 0x007e, 0x0087, 0x009b, 0x00a3, 0x00ae, 0x00b6, 0x00c0, 0x00c8, + 0x00d0, 0x00d7, 0x00dd, 0x00dd, 0x00e4, 0x00ea, 0x00f1, 0x00f1, + 0x00f8, 0x00fe, 0x0104, 0x0104, 0x010c, 0x0114, 0x011a, 0x0120, + 0x0120, 0x0140, 0x0159, 0x015e, 0x0164, 0x016b, 0x017a, 0x017f, + 0x0187, 0x018c, 0x0194, 0x0194, 0x019d, 0x01a1, 0x01a9, 0x01a9, + 0x01a9, 0x01b0, 0x01c0, 0x01c9, 0x01c9, 0x01cf, 0x01d6, 0x01de, + // Entry 40 - 7F + 0x01f1, 0x01f8, 0x01f8, 0x01fe, 0x0205, 0x020a, 0x020a, 0x0211, + 0x0219, 0x0221, 0x0221, 0x0226, 0x022a, 0x023d, 0x0247, 0x0247, + 0x024f, 0x0255, 0x025e, 0x0265, 0x026a, 0x027d, 0x027d, 0x0282, + 0x028a, 0x0293, 0x0299, 0x029d, 0x02a6, 0x02af, 0x02b6, 0x02b6, + 0x02bf, 0x02c3, 0x02cc, 0x02d2, 0x02d2, 0x02d2, 0x02db, 0x02e2, + 0x02e7, 0x02ef, 0x02ef, 0x02f8, 0x0300, 0x0307, 0x0307, 0x030c, + 0x0331, 0x0336, 0x033c, 0x0344, 0x034a, 0x034a, 0x0351, 0x0358, + 0x035e, 0x0363, 0x0370, 0x0378, 0x0380, 0x0386, 0x0399, 0x03a8, + // Entry 80 - BF + 0x03b4, 0x03bb, 0x03cc, 0x03d7, 0x03dc, 0x03e4, 0x03ee, 0x03f8, + 0x0401, 0x0408, 0x040e, 0x0416, 0x041f, 0x0426, 0x042b, 0x0431, + 0x0437, 0x043e, 0x043e, 0x043e, 0x0444, 0x0456, 0x045f, 0x0463, + 0x0468, 0x0470, 0x0470, 0x0490, 0x0499, 0x04a2, 0x04ad, 0x04b2, + 0x04b8, 0x04be, 0x04c4, 0x04cb, 0x04d2, 0x04da, 0x04e1, 0x04ed, + 0x04f3, 0x0504, 0x050b, 0x0514, 0x051c, 0x0521, 0x0527, 0x052c, + 0x0530, 0x053a, 0x053f, 0x0545, 0x0549, 0x055e, 0x0563, 0x056b, + 0x0574, 0x057b, 0x0591, 0x059a, 0x05a3, 0x05d5, 0x05da, 0x05df, + // Entry C0 - FF + 0x05e7, 0x05ed, 0x05ed, 0x05f6, 0x05fd, 0x05fd, 0x0602, 0x0608, + 0x060d, 0x061f, 0x0629, 0x062f, 0x0635, 0x063d, 0x0648, 0x0650, + 0x0650, 0x0658, 0x0663, 0x066b, 0x0673, 0x067a, 0x0682, 0x0682, + 0x0696, 0x069e, 0x069e, 0x06a3, 0x06a9, 0x06a9, 0x06c2, 0x06c7, + 0x06c7, 0x06cb, 0x06d3, 0x06de, 0x06e5, 0x06f8, 0x0707, 0x070e, + 0x0713, 0x071a, 0x072c, 0x0732, 0x0739, 0x0741, 0x0748, 0x074e, + 0x074e, 0x0756, 0x075d, 0x0769, 0x0771, 0x078a, 0x0793, 0x07b2, + 0x07d0, 0x07d9, 0x07e0, 0x07ef, 0x07f4, 0x07f4, 0x07fa, 0x0801, + // Entry 100 - 13F + 0x080e, 0x0814, 0x081c, + }, + }, + { // wae + "HimmelfártsinslaAndorraVereinigti ArabiÅ¡e EmiratAfganiÅ¡tanAntigua und Ba" + + "rbudaAnguillaAlbanieArmenieAngolaAntarktisArgentinieAmerikaniÅ¡ Samoa" + + "ÖštriÄAustralieArubaAlandinsläAserbaidÅ¡anBosnie und HerzegovinaBarb" + + "adosBangladeÅ¡BelgieBurkina FasoBulgarieBaÄrainBurundiBeninSt. Bartho" + + "lomäus-InslaBermudaBruneiBoliwieBrasilieBahamasBhutanBouvetinslaBots" + + "wanaWísrusslandBelizeKanadaKokosinsläKongo-KinshasaZentralafrikaniÅ¡i" + + " RebublikKongo BrazzavilleSchwizElfebeiküštaCookinsläTÅ¡ileKamerunChi" + + "naKolumbieClipperton InslaCosta RicaKubaKap VerdeWienäÄtsinsläZypreT" + + "Å¡eÄieTitÅ¡landDiego GarciaDÅ¡ibutiDänemarkDoninicaDominikaniÅ¡i Rebubl" + + "ikAlgerieCeuta und MelillaEcuadorEÅ¡tlandEgypteWeÅ¡tsaharaEritreaSchpa" + + "nieEthiopieEuropäiÅ¡i UnioFinnlandFidÅ¡iFalklandinsläMikronesieFäröeFr" + + "ankriÄGabonEnglandGrenadaGeorgieFranzösiÅ¡ GuianaGuernseyGanaGibralta" + + "rGrönlandGambiaGineaGuadeloupeEquatorialgineaGriÄelandSüdgeorgie und" + + " d’südliÄe SenwiÄinsläGuatemalaGuamGinea BissauGuyanaSonderverwaltig" + + "szona HongkongHeard- und McDonald-InsläHondurasKroatieHaitiUngareKan" + + "ariÅ¡e InsläIndonesieIrlandIsraelIsle of ManIndieBritiÅ¡es Territorium" + + " em indiÅ¡e OzeanIrakIranIslandItalieJerseyJamaikaJordanieJapanKenyaK" + + "irgiÅ¡tanKambodÅ¡aKiribatiKomoreSt. Kitts und NevisNordkoreaSüdkoreaKu" + + "weitKaimaninsläKasaÄstanLaosLibanonSt. LuciaLieÄteÅ¡teiSri LankaLiber" + + "iaLesothoLitaueLuxeburgLettlandLübieMarokoMonagoMoldauMontenegroSt. " + + "MartinMadagaskarMarÅ¡alinsläMazedonieMaliBurmaMongoleiSonderverwaltig" + + "szona MakauNördliÄi MarianeMartiniqueMauretanieMonserratMaltaMauriti" + + "usMalediweMalawiMexikoMalaysiaMosambikNamibiaNiwkaledonieNigerNorfol" + + "kinslaNigeriaNicaraguaHolandNorwägeNepalNauruNiueNiwsélandOmanPanama" + + "PeruFranzösiÅ¡ PolinesiePapua NiwgineaPhilippinePakiÅ¡tanPoleSt. Pierr" + + "e und MiquelonPitcairnPuerto RicoPaleÅ¡tinaPortugalPalauParaguaiKatar" + + "Ãœssers OzeanieRéunionRumänieSerbieRusslandRuandaSaudi ArabieSalomon" + + "eSeÄelleSudanSchwedeSingapurSt. HelenaSlowenieSvalbard und Jan Mayen" + + "SlowakeiSierra LeoneSan MarinoSenegalSomaliaSurinameSão Tomé and Prí" + + "ncipeEl SalvadorSürieSwasilandTristan da CunhaTurks- und Caicosinslä" + + "TÅ¡adFranzösiÅ¡i Süd- und AntarktisgebietTogoThailandTadÅ¡ikistanTokela" + + "uOÅ¡ttimorTurkmeniÅ¡tanTunesieTongaTürkeiTrinidad und TobagoTuvaluTaiw" + + "anTansaniaUkraineUgandaAmerikaniÅ¡ OzeanieAmerikaUrugauyUsbekiÅ¡tanVat" + + "ikanSt. Vincent und d’GrenadineVenezuelaBritiÅ¡i JungfröiwinsläAmerik" + + "aniÅ¡i JungfröiwinsläVietnamVanuatuWallis und FutunaSamoaJémeMoyetteS" + + "üdafrikaSambiaSimbabweUnbekannti RegioWäldAfrikaNordamerikaSüdameri" + + "kaOzeanieWeÅ¡tafrikaZentralamerikaOÅ¡tafrikaNordafrikaMittelafrikaSüdl" + + "iÄs AfrikaAmerikaniÅ¡ KontinäntNördliÄs AmerikaKaribikOÅ¡tasieSüdasieS" + + "üdoÅ¡tasieSüdeuropaAuÅ¡tralie und NiwsélandMelanesieMikronesiÅ¡es Inse" + + "lgebietPolinesieAsieZentralasieWeÅ¡tasieEuropaOÅ¡teuropaNordeuropaWeÅ¡t" + + "europaLatíamerika", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0011, 0x0018, 0x0032, 0x003d, 0x0050, 0x0058, 0x005f, + 0x0066, 0x006c, 0x0075, 0x007f, 0x0090, 0x0099, 0x00a2, 0x00a7, + 0x00b2, 0x00be, 0x00d4, 0x00dc, 0x00e6, 0x00ec, 0x00f8, 0x0100, + 0x0108, 0x010f, 0x0114, 0x012b, 0x0132, 0x0138, 0x013f, 0x013f, + 0x0147, 0x014e, 0x0154, 0x015f, 0x0167, 0x0173, 0x0179, 0x017f, + 0x018a, 0x0198, 0x01b3, 0x01c4, 0x01ca, 0x01d8, 0x01e2, 0x01e8, + 0x01ef, 0x01f4, 0x01fc, 0x020c, 0x0216, 0x021a, 0x0223, 0x0223, + 0x0233, 0x0238, 0x0240, 0x0249, 0x0255, 0x025d, 0x0266, 0x026e, + // Entry 40 - 7F + 0x0284, 0x028b, 0x029c, 0x02a3, 0x02ab, 0x02b1, 0x02bc, 0x02c3, + 0x02cb, 0x02d3, 0x02e3, 0x02eb, 0x02f1, 0x02ff, 0x0309, 0x0310, + 0x0319, 0x031e, 0x0325, 0x032c, 0x0333, 0x0345, 0x034d, 0x0351, + 0x035a, 0x0363, 0x0369, 0x036e, 0x0378, 0x0387, 0x0391, 0x03bc, + 0x03c5, 0x03c9, 0x03d5, 0x03db, 0x03f8, 0x0412, 0x041a, 0x0421, + 0x0426, 0x042c, 0x043c, 0x0445, 0x044b, 0x0451, 0x045c, 0x0461, + 0x0487, 0x048b, 0x048f, 0x0495, 0x049b, 0x04a1, 0x04a8, 0x04b0, + 0x04b5, 0x04ba, 0x04c4, 0x04cd, 0x04d5, 0x04db, 0x04ee, 0x04f7, + // Entry 80 - BF + 0x0500, 0x0506, 0x0512, 0x051c, 0x0520, 0x0527, 0x0530, 0x053c, + 0x0545, 0x054c, 0x0553, 0x0559, 0x0561, 0x0569, 0x056f, 0x0575, + 0x057b, 0x0581, 0x058b, 0x0595, 0x059f, 0x05ac, 0x05b5, 0x05b9, + 0x05be, 0x05c6, 0x05e0, 0x05f2, 0x05fc, 0x0606, 0x060f, 0x0614, + 0x061d, 0x0625, 0x062b, 0x0631, 0x0639, 0x0641, 0x0648, 0x0654, + 0x0659, 0x0665, 0x066c, 0x0675, 0x067b, 0x0683, 0x0688, 0x068d, + 0x0691, 0x069b, 0x069f, 0x06a5, 0x06a9, 0x06be, 0x06cc, 0x06d6, + 0x06df, 0x06e3, 0x06fa, 0x0702, 0x070d, 0x0717, 0x071f, 0x0724, + // Entry C0 - FF + 0x072c, 0x0731, 0x0740, 0x0748, 0x0750, 0x0756, 0x075e, 0x0764, + 0x0770, 0x0778, 0x0780, 0x0785, 0x078c, 0x0794, 0x079e, 0x07a6, + 0x07bc, 0x07c4, 0x07d0, 0x07da, 0x07e1, 0x07e8, 0x07f0, 0x07f0, + 0x0808, 0x0813, 0x0813, 0x0819, 0x0822, 0x0832, 0x0849, 0x084e, + 0x0874, 0x0878, 0x0880, 0x088c, 0x0893, 0x089c, 0x08a9, 0x08b0, + 0x08b5, 0x08bc, 0x08cf, 0x08d5, 0x08db, 0x08e3, 0x08ea, 0x08f0, + 0x0903, 0x090a, 0x0911, 0x091c, 0x0923, 0x0940, 0x0949, 0x0962, + 0x097f, 0x0986, 0x098d, 0x099e, 0x09a3, 0x09a3, 0x09a8, 0x09af, + // Entry 100 - 13F + 0x09b9, 0x09bf, 0x09c7, 0x09d7, 0x09dc, 0x09e2, 0x09ed, 0x09f8, + 0x09ff, 0x0a0a, 0x0a18, 0x0a22, 0x0a2c, 0x0a38, 0x0a48, 0x0a5e, + 0x0a70, 0x0a77, 0x0a7f, 0x0a87, 0x0a93, 0x0a9d, 0x0ab6, 0x0abf, + 0x0ad8, 0x0ae1, 0x0ae5, 0x0af0, 0x0af9, 0x0aff, 0x0b09, 0x0b13, + 0x0b1e, 0x0b2a, + }, + }, + { // xog + "AndoraEmireetiAfaganisitaniAntigwa ni BarabudaAngwilaAlibaniyaArameniyaA" + + "ngolaArigentinaSamowa omumerikaAwusituriyaAwusitureliyaArubaAzerebay" + + "ijaaniBoziniya HezegovinaBarabadosiBangaladesiBubirigiBurukina FasoB" + + "ulugariyaBaareeniBurundiBeniniBeremudaBurunayiBoliviyaBuraziiriBaham" + + "asiButaaniBotiswanaBelarusiBelizeKanadaKongo - ZayireLipabulika ya S" + + "enturafirikiKongoSwitizirandiKote DivwaEbizinga bya KkukiCileKameruu" + + "niCayinaKolombyaKosita RikaCubaEbizinga bya Kepu VerediSipuriyaLipab" + + "ulika ya CeekaBudaakiJjibutiDenimaakaDominikaLipabulika ya DominikaA" + + "ligeryaEkwadoEsitoniyaMisiriEritureyaSipeyiniEsyopyaFinilandiFijiEbi" + + "izinga bya FalikalandiMikuronezyaBufalansaGaboniBungerezaGurenadaGyo" + + "gyaGuyana enfalansaGanaGiburalitaGurenelandiGambyaGiniGwadalupeGayan" + + "a yaku ekwetaBuyonaaniGwatemalaGwamuGini-BisawuGayanaHundurasiKurowe" + + "syaHayitiHangareYindonezyaAyalandiYisirayeriBuyindiEbizinga bya Cago" + + "YiraakaYiraaniAyisirandiYitaleJamayikaYorodaniJapaniKenyaKirigizisit" + + "aaniKambodyaKiribatiEbizinga bya KomoroSenti Kitisi ne NevisiKoreya " + + "eya mumambukaKoreya eya mumaserengetaKuwetiEbizinga bya KayimaaniKaz" + + "akisitaaniLawosiLebanoniSenti LuciyaLicitensitayiniSirilankaLiberyaL" + + "esosoLisuwenyaLukisembaagaLativyaLibyaMorokoMonakoMolodovaMadagasika" + + "Bizinga bya MarisoMasedoniyaMaliMyanimaMongoliyaBizinga bya Mariyana" + + " ebyamumambukaMaritiniikiMawulitenyaMonteseraatiMalitaMawulisyasiEbi" + + "zinga bya MalidiveMalawiMekisikoMalezyaMozambiikiNamibiyaKaledonya m" + + "upyaNijeKizinga ky’eNorofokoNayijeryaNikaraguwaHolandiNoweNepaloNawu" + + "ruNiyuweNiyuziirandiOmaaniPanamaPeruPolinesiya enfalansaPapwa Nyugin" + + "iEbizinga bya FiripinoPakisitaaniPolandiSenti Piyere ni MikeloniPiti" + + "keeniPotorikoPalesitayini ni GazaPotugaaliPalawuParagwayiKataaLeyuny" + + "oniLomaniyaLasaRwandaSawudarebyaEbizanga bya SolomooniSesereSudaaniS" + + "wideniSingapowaSenti HerenaSirovenyaSirovakyaSiyeralewoneSanimarinoS" + + "enegaaloSomaliyaSurinaamuSanitome ni PurincipeEl salivadoSiriyaSwazi" + + "randiEbizinga bya Taaka ni KayikosiCaadiTogoTayirandiTajikisitaaniTo" + + "kelawuTimowaTakimenesitaaniTunisyaTongaTtakeTurindaadi ni TobagoTuva" + + "luTayiwaniYukurayineYugandaAmerikaWurugwayiWuzibekisitaaniVatikaaniS" + + "enti Vinsenti ni GurendadiiniVenzweraEbizinga bya Virigini ebitwalib" + + "wa BungerezaEbizinga bya Virigini eby’AmerikaVyetinaamuVanawuwatuWal" + + "isi ni FutunaSamowaYemeniMayotteSawusafirikaZambyaZimbabwe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0006, 0x000e, 0x001b, 0x002e, 0x0035, 0x003e, + 0x0047, 0x004d, 0x004d, 0x0057, 0x0067, 0x0072, 0x007f, 0x0084, + 0x0084, 0x0092, 0x00a5, 0x00af, 0x00ba, 0x00c2, 0x00cf, 0x00d9, + 0x00e1, 0x00e8, 0x00ee, 0x00ee, 0x00f6, 0x00fe, 0x0106, 0x0106, + 0x010f, 0x0117, 0x011e, 0x011e, 0x0127, 0x012f, 0x0135, 0x013b, + 0x013b, 0x0149, 0x0164, 0x0169, 0x0175, 0x017f, 0x0191, 0x0195, + 0x019e, 0x01a4, 0x01ac, 0x01ac, 0x01b7, 0x01bb, 0x01d3, 0x01d3, + 0x01d3, 0x01db, 0x01ee, 0x01f5, 0x01f5, 0x01fc, 0x0205, 0x020d, + // Entry 40 - 7F + 0x0223, 0x022b, 0x022b, 0x0231, 0x023a, 0x0240, 0x0240, 0x0249, + 0x0251, 0x0258, 0x0258, 0x0261, 0x0265, 0x027e, 0x0289, 0x0289, + 0x0292, 0x0298, 0x02a1, 0x02a9, 0x02af, 0x02bf, 0x02bf, 0x02c3, + 0x02cd, 0x02d8, 0x02de, 0x02e2, 0x02eb, 0x02fd, 0x0306, 0x0306, + 0x030f, 0x0314, 0x031f, 0x0325, 0x0325, 0x0325, 0x032e, 0x0337, + 0x033d, 0x0344, 0x0344, 0x034e, 0x0356, 0x0360, 0x0360, 0x0367, + 0x0378, 0x037f, 0x0386, 0x0390, 0x0396, 0x0396, 0x039e, 0x03a6, + 0x03ac, 0x03b1, 0x03c0, 0x03c8, 0x03d0, 0x03e3, 0x03f9, 0x040d, + // Entry 80 - BF + 0x0425, 0x042b, 0x0441, 0x044e, 0x0454, 0x045c, 0x0468, 0x0477, + 0x0480, 0x0487, 0x048d, 0x0496, 0x04a2, 0x04a9, 0x04ae, 0x04b4, + 0x04ba, 0x04c2, 0x04c2, 0x04c2, 0x04cc, 0x04de, 0x04e8, 0x04ec, + 0x04f3, 0x04fc, 0x04fc, 0x051e, 0x0529, 0x0534, 0x0540, 0x0546, + 0x0551, 0x0566, 0x056c, 0x0574, 0x057b, 0x0585, 0x058d, 0x059c, + 0x05a0, 0x05b6, 0x05bf, 0x05c9, 0x05d0, 0x05d4, 0x05da, 0x05e0, + 0x05e6, 0x05f2, 0x05f8, 0x05fe, 0x0602, 0x0616, 0x0623, 0x0638, + 0x0643, 0x064a, 0x0662, 0x066b, 0x0673, 0x0687, 0x0690, 0x0696, + // Entry C0 - FF + 0x069f, 0x06a4, 0x06a4, 0x06ad, 0x06b5, 0x06b5, 0x06b9, 0x06bf, + 0x06ca, 0x06e0, 0x06e6, 0x06ed, 0x06f4, 0x06fd, 0x0709, 0x0712, + 0x0712, 0x071b, 0x0727, 0x0731, 0x073a, 0x0742, 0x074b, 0x074b, + 0x0760, 0x076b, 0x076b, 0x0771, 0x077b, 0x077b, 0x0799, 0x079e, + 0x079e, 0x07a2, 0x07ab, 0x07b8, 0x07c0, 0x07c6, 0x07d5, 0x07dc, + 0x07e1, 0x07e6, 0x07fa, 0x0800, 0x0808, 0x0808, 0x0812, 0x0819, + 0x0819, 0x0820, 0x0829, 0x0838, 0x0841, 0x085f, 0x0867, 0x0892, + 0x08b5, 0x08bf, 0x08c9, 0x08d9, 0x08df, 0x08df, 0x08e5, 0x08ec, + // Entry 100 - 13F + 0x08f8, 0x08fe, 0x0906, + }, + }, + { // yav + "AÅ‹túlaimiláat i paaláapAfkanistáŋAÅ‹tíka na PalpútaAÅ‹kílaAlpaníAlmaníaAÅ‹k" + + "úlaAlsaÅ‹tínSámua u AmelíkaOtilísOtalalíAlúpaAsÉ›lpaisáŋPusiní-É›lkofí" + + "naPalpatósPaÅ‹kalatÉ›sPÉ›lsíikPulikínafásóPulukalíiPalɛŋPúlúndíPenɛŋPÉ›l" + + "mútaPulunéyPolífiaPilesílPahámasPutaÅ‹PosuánaPelalúsPelíseKánátakitɔŋ" + + " kí kongóSantalafilíikKongósuwíisKótifualÉ›KúukeSilíKemelúnSíineKÉ”lÉ”Ì" + + "mbíaKóstálíkakúpaKápfÉ›lsíplÉ›kitɔŋ kí cÉ›Ìknsámansíputítanemálktúmúnék" + + "ekitɔŋ kí tumunikÉ›ÌÅ‹AlselíekuatÉ›ÌlÉ›stoniisípitelitéepanyáetiopífÉ›nlá" + + "ndfísimaluwínmikolonesífelensíkapÉ”ÌÅ‹ingilíískelenáatsÉ”lsíikuyáan u f" + + "elensíkanásílpalatáalkuluÉ›nlándkambíikiinékuatelúupkinéekuatolialkil" + + "É›ÌÉ›kkuatemalákuamiÉ›kiinépisaókuyáanÉ”ndúlasKolowasíiayítiÉ”ngilíɛndon" + + "esíililándísilayÉ›ÌlÉ›ÌÉ›ndKɔɔÌm kí ndián yi ngilísilákiláŋisláanditalí" + + "samayíiksÉ”ltanísapÉ”ÌɔŋkéniakilikisistáŋKámbósekilipatíKÉ”mÉ”ÌÉ”lsÉ›ÌÅ‹kil" + + "istÉ”Ìf eniÉ›ÌfkÉ”lé u muÉ›nÉ›ÌkÉ”lé wu mbátkowéetKáyímanÉ›kasaksitáŋlawósl" + + "ipáŋsÉ›ÌÅ‹tÉ›ÌlusílístÉ›Ìnsitáyinsilíláŋkalipélialesotólitiyaníliksambúu" + + "lletonílipíimalóokmonakómoltafímatakaskáalílmalasáalmasetuánmalímiaÅ‹" + + "máalmongolíil maliyanÉ› u muÉ›nÉ›ÌmaltiníikmolitanímɔŋsilámálÉ›Ìtmolísma" + + "letíifmalawímÉ›ksíikmalesímosambíknamipínufÉ›Ìl kaletonínisÉ›ÌÉ›lil nÉ”Ìl" + + "fÉ”ÌlÉ”knisélianikalakánitililáandnÉ”lfÉ›ÌÉ›snepáalnawulúniyuwénufÉ›Ìl sel" + + "áandomáŋpanamápelúpolinesí u felensípapuasí nufÉ›Ìl kiinéfilipíinpak" + + "istáŋpÉ”lÉ”ÌÉ”nysÉ›ÌÅ‹piÉ›Ìl e mikelÉ”ÌÅ‹pitikÉ›ÌÉ›línÉ›Ìpólótolíkokitɔŋ ki pal" + + "É›stíinpÉ”ltukáalpalawúpalakúékatáalelewuniÉ”ÌÅ‹ulumaníulusíuluándáalap" + + "ísawutíitil salomÉ”ÌÅ‹sesÉ›ÌÉ›lsutáaÅ‹suÉ›ÌtsingapúulsÉ›ÌÅ‹tÉ›Ì elÉ›ÌÉ›nÉ›silof" + + "enísilofakísieláleyÉ”ÌÉ”nsan malínosenekáalsomalísulináamsáwó tomé e p" + + "elensípesalfatÉ”ÌÉ”lsuasiláandtúluk na káyiikSáattokótayiláandtasikist" + + "áaÅ‹tokelótimÉ”ÌÉ”l u nipálÉ›ÌntulukmenisitáaÅ‹tunusítÉ”ÌÅ‹katulukíitilini" + + "táat na tupákÉ”tufalútayiwáantaÅ‹saníukilÉ›ÌÉ›nukándaamálíkaulukuéyusupe" + + "kistáaÅ‹fatikáaÅ‹sÉ›ÌÅ‹ fɛŋsáŋ elekelenatíinfenesuweláFilisíin ungilíspi" + + "ndisúlÉ›Ì pi amálíkafiÉ›tnáamfanuatúwalíis na futúnasamowáyémÉ›nmayÉ”ÌÉ”t" + + "afilí mbátÉ›Ìsaambíisimbapuwé", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0008, 0x001b, 0x0027, 0x003b, 0x0043, 0x004a, + 0x0052, 0x005a, 0x005a, 0x0064, 0x0075, 0x007c, 0x0084, 0x008a, + 0x008a, 0x0097, 0x00a9, 0x00b2, 0x00be, 0x00c7, 0x00d6, 0x00e0, + 0x00e7, 0x00f1, 0x00f8, 0x00f8, 0x0101, 0x0109, 0x0111, 0x0111, + 0x0119, 0x0121, 0x0127, 0x0127, 0x012f, 0x0137, 0x013e, 0x0146, + 0x0146, 0x0158, 0x0166, 0x016c, 0x0173, 0x017e, 0x0184, 0x0189, + 0x0191, 0x0197, 0x01a4, 0x01a4, 0x01b0, 0x01b5, 0x01bd, 0x01bd, + 0x01bd, 0x01c4, 0x01d6, 0x01dd, 0x01dd, 0x01e5, 0x01ee, 0x01f9, + // Entry 40 - 7F + 0x0212, 0x0219, 0x0219, 0x0223, 0x022a, 0x0231, 0x0231, 0x0238, + 0x023e, 0x0245, 0x0245, 0x024e, 0x0253, 0x025b, 0x0266, 0x0266, + 0x026e, 0x0277, 0x0281, 0x028a, 0x0292, 0x02a4, 0x02a4, 0x02a9, + 0x02b6, 0x02c2, 0x02c9, 0x02cf, 0x02d9, 0x02e8, 0x02f2, 0x02f2, + 0x02fc, 0x0303, 0x030f, 0x0316, 0x0316, 0x0316, 0x031f, 0x0329, + 0x032f, 0x0337, 0x0337, 0x0341, 0x0349, 0x0355, 0x0355, 0x035d, + 0x037b, 0x0380, 0x0386, 0x038e, 0x0394, 0x0394, 0x039d, 0x03a6, + 0x03b1, 0x03b7, 0x03c5, 0x03ce, 0x03d7, 0x03e2, 0x03fd, 0x040f, + // Entry 80 - BF + 0x041e, 0x0425, 0x0430, 0x043c, 0x0442, 0x0449, 0x045a, 0x046c, + 0x0478, 0x0480, 0x0487, 0x0490, 0x049b, 0x04a2, 0x04a8, 0x04af, + 0x04b6, 0x04be, 0x04be, 0x04be, 0x04ca, 0x04d6, 0x04df, 0x04e4, + 0x04ee, 0x04f6, 0x04f6, 0x050e, 0x0518, 0x0521, 0x052b, 0x0534, + 0x053a, 0x0543, 0x054a, 0x0553, 0x055a, 0x0563, 0x056a, 0x057c, + 0x0586, 0x0598, 0x05a0, 0x05a9, 0x05b5, 0x05c1, 0x05c8, 0x05cf, + 0x05d6, 0x05e7, 0x05ed, 0x05f4, 0x05f9, 0x060d, 0x0625, 0x062e, + 0x0638, 0x0644, 0x0660, 0x0673, 0x0680, 0x0696, 0x06a1, 0x06a8, + // Entry C0 - FF + 0x06b1, 0x06b8, 0x06b8, 0x06c5, 0x06cd, 0x06cd, 0x06d3, 0x06dc, + 0x06eb, 0x06f9, 0x0703, 0x070b, 0x0712, 0x071c, 0x0734, 0x073d, + 0x073d, 0x0746, 0x0756, 0x0761, 0x076a, 0x0771, 0x077a, 0x077a, + 0x0793, 0x07a0, 0x07a0, 0x07a0, 0x07ab, 0x07ab, 0x07bc, 0x07c1, + 0x07c1, 0x07c6, 0x07d0, 0x07dd, 0x07e4, 0x07fc, 0x080d, 0x0814, + 0x081d, 0x0825, 0x083c, 0x0843, 0x084c, 0x0855, 0x0860, 0x0867, + 0x0867, 0x0870, 0x0878, 0x0886, 0x0890, 0x08b1, 0x08bc, 0x08ce, + 0x08e8, 0x08f2, 0x08fa, 0x090c, 0x0913, 0x0913, 0x091a, 0x0924, + // Entry 100 - 13F + 0x0934, 0x093c, 0x0946, + }, + }, + { // yi + "×ַנד×רע×ַפֿגה×ַניסט×ַן×ַנטיגוע ×ון ב×ַרבודע×ַלב×Ö·× ×™×¢×ַרמעניע×Ö·× ×’×לע×ַנט×" + + "ַרקטיקע×ַרגענטינעעסטרייך×ויסטר×ַליע×ַרוב×ַב×סניע הערצעג×ווינעב×ַרב×" + + "ַד×סב×ַנגל×ַדעשבעלגיעבורקינע פֿ×ַס×בולג×ַריעבורונדיבעניןבערמודעברונ" + + "ייב×ליוויעבר×ַזילב×Ö·×”×ַמ×ַסבהוט×ַןב×צוו×ַנעבעל×ַרוסבעליזק×Ö·× ×ַדעק×× " + + "×’×־קינש×ַזעצענטר×ַל־×ַפֿריק×ַנישע רעפּובליקשווייץהעלפֿ×Ö· נדביין ב×ר" + + "טןקוק ×ינזלעןטשילעק×ַמערוןכינעק×ל×מביעק×סט×Ö· ריק×ַקוב×ַק×ַפּווערדיש" + + "×¢ ×ינזלעןקור×ַס×Ö·×טשעכיידייטשל×ַנדדזשיבוטידענמ×ַרקד×מיניקעד×מיניק×Ö·" + + "נישע רעפּובליקעקוו×ַד×רעסטל×ַנדעגיפּטןעריטרעעשפּ×ַניעעטי×פּיע×ייר×פ" + + "ּעישער פֿ×ַרב×ַנדפֿינל×ַנדפֿידזשיפֿ×ַלקל×ַנד ×ינזלעןמיקר×נעזיעפֿ×ַר" + + "× ×ינזלעןפֿר×ַנקרייךג×ַב×ןפֿ×ַר×ייניגטע קעניגרייךגרענ×ַד×ַגרוזיעפֿר" + + "×ַנצויזישע גוי×ַנעגערנזיגה×ַנעגיבר×ַלט×ַרגרינל×ַנדג×ַמביעגינעגוו×ַד" + + "עלופעקוו×ַט×רישע גינעגריכנל×ַנדגוו×ַטעמ×ַלעגוו×Ö·×גינע־ביס×ַוגוי×Ö·× ×¢" + + "×”×נדור×ַסקר××ַטיעה×ַיטי×ונגערןק×Ö·× ×ַרישע ×ינזלען×ינד×× ×¢×–×™×¢×ירל×ַנדי" + + "שר×ל×ינדיע×יר×ַן×יסל×ַנד×יט×ַליעדזשערזידזש×ַמייקעי×ַפּ×ַןקעניעק×ַמב" + + "×דיעקיריב×ַטיק×מ×ר×סקיימ×ַן ×ינזלעןל×Ö·×סלבנוןליכטנשטייןסרי־ל×ַנק×ַל" + + "יבעריעלעס×ט×ליטעלוקסעמבורגלעטל×ַנדליביעמ×ַר×ק×מ×× ×ַק×מ×לד×וועמ×נטענ" + + "עגר×מ×ַד×Ö·×’×ַסק×ַרמ×ַרש×ַל ×ינזלעןמ×ַקעד×ניעמ×ַלימי×ַנמ×ַרמ×× ×’×ליימ" + + "×ַרטיניקמ×ַריט×ַניעמ×נטסער×ַטמ×ַלט×ַמ×ריציוסמ×ַלדיווןמ×ַל×ַווימעקסי" + + "קעמ×ַלייזיעמ××–×ַמביקנ×ַמיביענײַ ק×ַלעד×ניעניזשערנ×רפֿ×לק ×ינזלניגער" + + "יעניק×ַר×ַגועה×ל×ַנדנ×רוועגיענעפּ×ַלניו זיל×ַנדפּ×Ö·× ×ַמ×ַפּערופֿר×Ö·" + + "נצויזישע פּ×לינעזיעפּ×ַפּו×Ö· נײַ גינעפֿיליפּינעןפּ×ַקיסט×ַןפּוילןפּ" + + "יטקערן ×ינזלעןפּ×רט×־ריק×פּ×רטוג×ַלפּ×ַר×ַגווײַק×ַט×ַררע×וני×ןרומענ" + + "יעסערביערוסל×ַנדרוו×ַנדעס×ל×מ×ן ×ינזלעןסיישעלסוד×ַןשוועדןסינג×ַפּור" + + "סט העלענעסל×וועניעסל×וו×ַקייסיערע לע×נעס×ַן מ×ַרינ×סענעג×ַלס×מ×ַליע" + + "סורינ×Ö·×דרו×־סוד×ַןס×Ö·× ×˜×מע ×ון פּרינסיפּעעל ס×ַלוו×ַד×רסיריעסוו×Ö·" + + "זיל×ַנדטש×ַדט××’×טייל×ַנדטורקמעניסט×ַןטוניסיעט×× ×’×ַטערקייטריניד×ַד ×" + + "ון ט×ב×Ö·×’×טו×וו×ַלוט×Ö·× ×–×Ö·× ×™×¢×וקר×Ö·×™× ×¢×וג×ַנדעפֿ×ַר×ייניגטע שט×ַטן×" + + "ורוגווייוו×ַטיק×ַן שט×ָטווענעזועלעוויעטנ×Ö·×וו×ַנו×ַטוס×ַמ××ַק×ס×וו×" + + "תימןמ×Ö·×™×טדרו×Ö¾×ַפֿריקעז×ַמביעזימב×ַבווע×ומב×ַוו×וסטער ר×Ö·×™×ןוועלט×" + + "ַפֿריקעצפון־×ַמעריקעדרו×Ö¾×ַמעריקע×קע×ַניעצענטר×ַל־×ַמעריקע×ַמעריקעצ" + + "פונדיקע ×ַמעריקעק×ַר×Ö·×יבעמזרח ×ַזיעדרו×Ö¾×ַזיעדרו×־מזרח ×ַזיעדרו×Ö¾×" + + "ייר×פּעפּ×לינעזיע×ַזיעצענטר×ַל־×ַזיעמערב־×Ö·×–×™×¢×ייר×פּעמזרח־×ייר×פּע" + + "צפֿון־×ייר×פּעמערב־×ייר×פּעל×ַטיין־×ַמעריקע", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x000e, 0x000e, 0x002c, 0x0054, 0x0054, 0x0066, + 0x0076, 0x0084, 0x009c, 0x00b0, 0x00b0, 0x00be, 0x00d4, 0x00e2, + 0x00e2, 0x00e2, 0x0107, 0x011b, 0x0131, 0x013d, 0x0158, 0x016a, + 0x016a, 0x0178, 0x0182, 0x0182, 0x0190, 0x019c, 0x01ac, 0x01ac, + 0x01ba, 0x01ce, 0x01dc, 0x01dc, 0x01ee, 0x01fe, 0x0208, 0x0218, + 0x0218, 0x0234, 0x0273, 0x0273, 0x027f, 0x02a5, 0x02ba, 0x02c4, + 0x02d4, 0x02dc, 0x02ec, 0x02ec, 0x0303, 0x030d, 0x0336, 0x0348, + 0x0348, 0x0348, 0x0354, 0x0368, 0x0368, 0x0378, 0x0388, 0x0398, + // Entry 40 - 7F + 0x03c5, 0x03c5, 0x03c5, 0x03d7, 0x03e7, 0x03f5, 0x03f5, 0x0403, + 0x0413, 0x0423, 0x0450, 0x0462, 0x0470, 0x0495, 0x04a9, 0x04c4, + 0x04da, 0x04e6, 0x0513, 0x0525, 0x0531, 0x055a, 0x0566, 0x0572, + 0x0588, 0x059a, 0x05a8, 0x05b0, 0x05c4, 0x05e5, 0x05f9, 0x05f9, + 0x0611, 0x061d, 0x0633, 0x0641, 0x0641, 0x0641, 0x0653, 0x0663, + 0x066f, 0x067d, 0x06a0, 0x06b4, 0x06c4, 0x06ce, 0x06ce, 0x06da, + 0x06da, 0x06da, 0x06e6, 0x06f6, 0x0706, 0x0714, 0x0728, 0x0728, + 0x0738, 0x0742, 0x0742, 0x0754, 0x0766, 0x0774, 0x0774, 0x0774, + // Entry 80 - BF + 0x0774, 0x0774, 0x0791, 0x0791, 0x079b, 0x07a5, 0x07a5, 0x07b9, + 0x07cf, 0x07dd, 0x07e9, 0x07f1, 0x0805, 0x0815, 0x081f, 0x082d, + 0x083b, 0x084b, 0x085f, 0x085f, 0x087b, 0x089a, 0x08ae, 0x08b8, + 0x08ca, 0x08da, 0x08da, 0x08da, 0x08ec, 0x0902, 0x0916, 0x0924, + 0x0934, 0x0946, 0x0958, 0x0966, 0x0978, 0x098a, 0x099a, 0x09b5, + 0x09c1, 0x09dc, 0x09ea, 0x0a00, 0x0a0e, 0x0a20, 0x0a2e, 0x0a2e, + 0x0a2e, 0x0a43, 0x0a43, 0x0a57, 0x0a61, 0x0a90, 0x0ab2, 0x0ac8, + 0x0ade, 0x0aea, 0x0aea, 0x0b09, 0x0b1f, 0x0b1f, 0x0b33, 0x0b33, + // Entry C0 - FF + 0x0b4b, 0x0b59, 0x0b59, 0x0b69, 0x0b77, 0x0b83, 0x0b93, 0x0ba3, + 0x0ba3, 0x0bc0, 0x0bcc, 0x0bd8, 0x0be4, 0x0bf8, 0x0c09, 0x0c1b, + 0x0c1b, 0x0c2f, 0x0c44, 0x0c5b, 0x0c6b, 0x0c7b, 0x0c8b, 0x0ca1, + 0x0cce, 0x0ce9, 0x0ce9, 0x0cf3, 0x0d0b, 0x0d0b, 0x0d0b, 0x0d15, + 0x0d15, 0x0d1d, 0x0d2d, 0x0d2d, 0x0d2d, 0x0d2d, 0x0d47, 0x0d55, + 0x0d61, 0x0d6d, 0x0d95, 0x0da7, 0x0da7, 0x0dbb, 0x0dcd, 0x0ddd, + 0x0ddd, 0x0e04, 0x0e16, 0x0e16, 0x0e35, 0x0e35, 0x0e49, 0x0e49, + 0x0e49, 0x0e5b, 0x0e6f, 0x0e6f, 0x0e7d, 0x0e8b, 0x0e93, 0x0e9f, + // Entry 100 - 13F + 0x0eb9, 0x0ec7, 0x0edb, 0x0f04, 0x0f0e, 0x0f1e, 0x0f38, 0x0f52, + 0x0f62, 0x0f62, 0x0f84, 0x0f84, 0x0f84, 0x0f84, 0x0f84, 0x0f94, + 0x0fb5, 0x0fc9, 0x0fdc, 0x0ff0, 0x100d, 0x1027, 0x1027, 0x1027, + 0x1027, 0x103b, 0x1045, 0x1061, 0x1075, 0x1085, 0x109f, 0x10bb, + 0x10d5, 0x10f5, + }, + }, + { // yo + "OrílẹÌède ÀàndóràOrílẹÌède Ẹmirate ti Awá»n ArabuOrílẹÌède ÀfùgànístánìOr" + + "ílẹÌède Ààntígúà àti BáríbúdàOrílẹÌède ÀàngúlílàOrílẹÌède Àlùbàníán" + + "ìOrílẹÌède AméníàOrílẹÌède ÀàngólàOrílẹÌède AgentínàSámóánì ti Oríl" + + "ẹÌède ÀméríkàOrílẹÌède AsítíríàOrílẹÌède ÃstràlìáOrílẹÌède ÃrúbàOr" + + "ílẹÌède AsẹÌbájánìOrílẹÌède Bá»Ì€síníà àti ẸtisẹgófínàOrílẹÌède Bábád" + + "ósìOrílẹÌède BángáládésìOrílẹÌède Bégíá»ÌmùOrílẹÌède Bùùkíná FasòOrí" + + "lẹÌède BùùgáríàOrílẹÌède BáránìOrílẹÌède BùùrúndìOrílẹÌède Bẹ̀nẹ̀Orí" + + "lẹÌède BémúdàOrílẹÌède BúrúnẹÌlìOrílẹÌède Bá»Ì€lífíyàOrílẹÌède Bàràsíl" + + "ìOrílẹÌède BàhámásìOrílẹÌède BútánìOrílẹÌède Bá»Ì€tìsúwánàOrílẹÌède B" + + "élárúsìOrílẹÌède Bèlísẹ̀OrílẹÌède KánádàOrilẹÌède KóngòOrílẹÌède Àr" + + "in gùngun ÃfíríkàOrílẹÌède KóngòOrílẹÌède switiá¹£ilandiOrílẹÌède Kóút" + + "è foràOrílẹÌède Etíokun KùúkùOrílẹÌède ṣílèOrílẹÌède KamerúúnìOrílẹ" + + "Ìède ṣáínàOrílẹÌède KòlómíbìaOrílẹÌède Kuusita RíkàOrílẹÌède KúbàOr" + + "ílẹÌède Etíokun Kápé féndèOrílẹÌède KúrúsìOrílẹÌède ṣẹÌẹÌkìOrílẹÌèd" + + "e GemaniOrílẹÌède Díbá»ÌótìOrílẹÌède DẹÌmákìOrílẹÌède DòmíníkàOrilẹÌè" + + "de DòmíníkánìOrílẹÌède ÀlùgèríánìOrílẹÌède EkuádòOrílẹÌède EsitoniaO" + + "rílẹÌède ÉgípítìOrílẹÌède EritiraOrílẹÌède SipaniOrílẹÌède EtopiaOrí" + + "lẹÌède FilandiOrílẹÌède FijiOrílẹÌède Etikun FakalandiOrílẹÌède Mako" + + "ronesiaOrílẹÌède FaranseOrílẹÌède GabonOrílẹÌède OmobabirinOrílẹÌède" + + " GenadaOrílẹÌède Gá»giaOrílẹÌède Firená¹£i GuanaOrílẹÌède GanaOrílẹÌède" + + " GibarataraOrílẹÌède GerelandiOrílẹÌède GambiaOrílẹÌède GeneOrílẹÌèd" + + "e GadelopeOrílẹÌède Ekutoria GiniOrílẹÌède GeriisiOrílẹÌède Guatemal" + + "aOrílẹÌède GuamuOrílẹÌède Gene-BusauOrílẹÌède GuyanaOrílẹÌède Hondur" + + "asiOrílẹÌède KòróátíàOrílẹÌède HaatiOrílẹÌède HungariOrílẹÌède Indon" + + "esiaOrílẹÌède AilandiOrílẹÌède IserẹliOrílẹÌède IndiaOrílẹÌède Etíku" + + "n Ãndíánì ti ÃŒlú BírítísìOrílẹÌède IrakiOrílẹÌède IraniOrílẹÌède Aá¹£i" + + "landiOrílẹÌède ItaliyiOrílẹÌède JamaikaOrílẹÌède Já»daniOrílẹÌède Jap" + + "aniOrílẹÌède KenyaOrílẹÌède Kuriá¹£isitaniOrílẹÌède KàmùbódíàOrílẹÌède" + + " KiribatiOrílẹÌède KòmòrósìOrílẹÌède Kiiti ati NeefiOrílẹÌède Guusu " + + "Ká»riaOrílẹÌède Ariwa Ká»riaOrílẹÌède KuwetiOrílẹÌède Etíokun KámánìOr" + + "ílẹÌède Kaá¹£aá¹£ataniOrílẹÌède LaosiOrílẹÌède LebanoniOrílẹÌède Luá¹£iaO" + + "rílẹÌède LẹṣitẹnisiteniOrílẹÌède Siri LankaOrílẹÌède LaberiaOrílẹÌèd" + + "e LesotoOrílẹÌède LituaniaOrílẹÌède LusemogiOrílẹÌède LatifiaOrílẹÌè" + + "de LibiyaOrílẹÌède MorokoOrílẹÌède MonakoOrílẹÌède ModofiaOrílẹÌède " + + "MadasikaOrílẹÌède Etikun MáṣaliOrílẹÌède MasidoniaOrílẹÌède MaliOríl" + + "ẹÌède ManamariOrílẹÌède MogoliaOrílẹÌède Etikun Guusu MarianaOrílẹ" + + "Ìède MatinikuwiOrílẹÌède MaritaniaOrílẹÌède MotseratiOrílẹÌède Mala" + + "taOrílẹÌède MaritiusiOrílẹÌède MaladifiOrílẹÌède MalawiOrílẹÌède Mes" + + "ikoOrílẹÌède MalasiaOrílẹÌède Moá¹£amibikuOrílẹÌède NamibiaOrílẹÌède K" + + "aledonia TitunOrílẹÌède NàìjáOrílẹÌède Etikun Ná»ÌúfókìOrílẹÌède Nàìj" + + "íríàOrílẹÌède NIkaraguaOrílẹÌède NedalandiOrílẹÌède Ná»á»wiiOrílẹÌède" + + " NepaOrílẹÌède NauruOrílẹÌède NiueOrílẹÌède á¹£ilandi TitunOrílẹÌède Ọ" + + "á»maOrílẹÌède PanamaOrílẹÌède PeruOrílẹÌède Firená¹£i PolinesiaOrílẹÌ" + + "ède Paapu ti GiiniOrílẹÌède filipiniOrílẹÌède PakisitanOrílẹÌède Po" + + "landiOrílẹÌède Pẹẹri ati mikuloniOrílẹÌède PikariniOrílẹÌède Pá»to Ri" + + "koOrílẹÌède Iwá»orun Pakisitian ati Gaá¹£aOrílẹÌède Pá»tugiOrílẹÌède Paa" + + "luOrílẹÌède ParaguyeOrílẹÌède KotaOrílẹÌède RiuniyanOrílẹÌède Romani" + + "yaOrílẹÌède Rá»á¹£iaOrílẹÌède RuwandaOrílẹÌède Saudi ArabiaOrílẹÌède Et" + + "ikun SolomoniOrílẹÌède seṣẹlẹsiOrílẹÌède SudaniOrílẹÌède SwidiniOríl" + + "ẹÌède SingapoOrílẹÌède HẹlenaOrílẹÌède SilofaniaOrílẹÌède Silofaki" + + "aOrílẹÌède Siria looniOrílẹÌède Sani MarinoOrílẹÌède SẹnẹgaOrílẹÌède" + + " SomaliaOrílẹÌède SurinamiOrílẹÌède Sao tomi ati piriiá¹£ipiOrílẹÌède " + + "ẸẹsáfádòOrílẹÌède SiriaOrílẹÌède Saá¹£ilandOrílẹÌède Tá»á»ki ati Etiku" + + "n Kaká»siOrílẹÌède ṣààdìOrílẹÌède TogoOrílẹÌède TailandiOrílẹÌède Tak" + + "isitaniOrílẹÌède TokelauOrílẹÌède ÃŒlàOòrùn Tímá»Ì€OrílẹÌède Tá»á»kimenis" + + "itaOrílẹÌède Tuniá¹£iaOrílẹÌède TongaOrílẹÌède Tá»á»kiOrílẹÌède Tirinida" + + " ati TobagaOrílẹÌède TufaluOrílẹÌède TaiwaniOrílẹÌède Taná¹£aniaOrílẹÌ" + + "ède UkariniOrílẹÌède UgandaOrílẹÌède Orilẹede AmerikaOrílẹÌède Nrug" + + "uayiOrílẹÌède Ná¹£ibẹkisitaniOrílẹÌède FatikaniOrílẹÌède Fisẹnnti ati " + + "GenadinaOrílẹÌède FẹnẹṣuẹlaOrílẹÌède Etíkun Fágínì ti ìlú BírítísìOr" + + "ílẹÌède Etikun Fagini ti AmẹrikaOrílẹÌède FẹtinamiOrílẹÌède Faniatu" + + "OrílẹÌède Wali ati futunaOrílẹÌède Samá»OrílẹÌède yemeniOrílẹÌède May" + + "oteOrílẹÌède Ariwa AfirikaOrílẹÌède á¹£amibiaOrílẹÌède á¹£imibabe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x001a, 0x0042, 0x0063, 0x0091, 0x00ae, 0x00cd, + 0x00e5, 0x00ff, 0x00ff, 0x0118, 0x0141, 0x015c, 0x0177, 0x018e, + 0x018e, 0x01ad, 0x01e2, 0x01fd, 0x021c, 0x0239, 0x0259, 0x0275, + 0x028d, 0x02a8, 0x02c3, 0x02c3, 0x02db, 0x02f9, 0x0317, 0x0317, + 0x0332, 0x034d, 0x0365, 0x0365, 0x0386, 0x03a1, 0x03bc, 0x03d4, + 0x03d4, 0x03e9, 0x0411, 0x0427, 0x0444, 0x0461, 0x0481, 0x0498, + 0x04b3, 0x04cc, 0x04e8, 0x04e8, 0x0505, 0x051a, 0x0540, 0x0540, + 0x0540, 0x0558, 0x0577, 0x058c, 0x058c, 0x05a9, 0x05c4, 0x05df, + // Entry 40 - 7F + 0x05fc, 0x061b, 0x061b, 0x0632, 0x0649, 0x0663, 0x0663, 0x0679, + 0x068e, 0x06a3, 0x06a3, 0x06b9, 0x06cc, 0x06eb, 0x0705, 0x0705, + 0x071b, 0x072f, 0x0748, 0x075d, 0x0773, 0x0791, 0x0791, 0x07a4, + 0x07bd, 0x07d5, 0x07ea, 0x07fd, 0x0814, 0x0830, 0x0846, 0x0846, + 0x085e, 0x0872, 0x088b, 0x08a0, 0x08a0, 0x08a0, 0x08b8, 0x08d4, + 0x08e8, 0x08fe, 0x08fe, 0x0916, 0x092c, 0x0944, 0x0944, 0x0958, + 0x0990, 0x09a4, 0x09b8, 0x09d1, 0x09e7, 0x09e7, 0x09fd, 0x0a14, + 0x0a29, 0x0a3d, 0x0a5a, 0x0a77, 0x0a8e, 0x0aa9, 0x0ac7, 0x0ae3, + // Entry 80 - BF + 0x0aff, 0x0b14, 0x0b35, 0x0b52, 0x0b66, 0x0b7d, 0x0b93, 0x0bb6, + 0x0bcf, 0x0be5, 0x0bfa, 0x0c11, 0x0c28, 0x0c3e, 0x0c53, 0x0c68, + 0x0c7d, 0x0c93, 0x0c93, 0x0c93, 0x0caa, 0x0cc9, 0x0ce1, 0x0cf4, + 0x0d0b, 0x0d21, 0x0d21, 0x0d44, 0x0d5d, 0x0d75, 0x0d8d, 0x0da2, + 0x0dba, 0x0dd1, 0x0de6, 0x0dfb, 0x0e11, 0x0e2c, 0x0e42, 0x0e60, + 0x0e77, 0x0e9b, 0x0eb7, 0x0ecf, 0x0ee7, 0x0f00, 0x0f13, 0x0f27, + 0x0f3a, 0x0f58, 0x0f6f, 0x0f84, 0x0f97, 0x0fb9, 0x0fd6, 0x0fed, + 0x1005, 0x101b, 0x1040, 0x1057, 0x1071, 0x109f, 0x10b6, 0x10ca, + // Entry C0 - FF + 0x10e1, 0x10f4, 0x10f4, 0x110b, 0x1122, 0x1122, 0x113a, 0x1150, + 0x116b, 0x1189, 0x11a6, 0x11bb, 0x11d1, 0x11e7, 0x11fe, 0x1216, + 0x1216, 0x122e, 0x1248, 0x1262, 0x127b, 0x1291, 0x12a8, 0x12a8, + 0x12cf, 0x12ed, 0x12ed, 0x1301, 0x131a, 0x131a, 0x1346, 0x135f, + 0x135f, 0x1372, 0x1389, 0x13a2, 0x13b8, 0x13dd, 0x13fd, 0x1415, + 0x1429, 0x1441, 0x1463, 0x1478, 0x148e, 0x14a7, 0x14bd, 0x14d2, + 0x14d2, 0x14f3, 0x150a, 0x152a, 0x1541, 0x1567, 0x1587, 0x15bd, + 0x15e6, 0x15ff, 0x1615, 0x1633, 0x1648, 0x1648, 0x165d, 0x1672, + // Entry 100 - 13F + 0x168e, 0x16a6, 0x16bf, + }, + }, + { // yo-BJ + "OrílÉ›Ìède ÀàndóràOrílÉ›Ìède Æmirate ti AwÉ”n ArabuOrílÉ›Ìède ÀfùgànístánìOr" + + "ílÉ›Ìède Ààntígúà àti BáríbúdàOrílÉ›Ìède ÀàngúlílàOrílÉ›Ìède Àlùbàníán" + + "ìOrílÉ›Ìède AméníàOrílÉ›Ìède ÀàngólàOrílÉ›Ìède AgentínàSámóánì ti Oríl" + + "É›Ìède ÀméríkàOrílÉ›Ìède AsítíríàOrílÉ›Ìède ÃstràlìáOrílÉ›Ìède ÃrúbàOrí" + + "lÉ›Ìède AsÉ›ÌbájánìOrílÉ›Ìède Bɔ̀síníà àti ÆtisÉ›gófínàOrílÉ›Ìède Bábádós" + + "ìOrílÉ›Ìède BángáládésìOrílÉ›Ìède BégíɔÌmùOrílÉ›Ìède Bùùkíná FasòOrílÉ›" + + "Ìède BùùgáríàOrílÉ›Ìède BáránìOrílÉ›Ìède BùùrúndìOrílÉ›Ìède Bɛ̀nɛ̀Oríl" + + "É›Ìède BémúdàOrílÉ›Ìède BúrúnÉ›ÌlìOrílÉ›Ìède Bɔ̀lífíyàOrílÉ›Ìède Bàràsíl" + + "ìOrílÉ›Ìède BàhámásìOrílÉ›Ìède BútánìOrílÉ›Ìède Bɔ̀tìsúwánàOrílÉ›Ìède B" + + "élárúsìOrílÉ›Ìède Bèlísɛ̀OrílÉ›Ìède KánádàOrilÉ›Ìède KóngòOrílÉ›Ìède Àr" + + "in gùngun ÃfíríkàOrílÉ›Ìède KóngòOrílÉ›Ìède switishilandiOrílÉ›Ìède Kóú" + + "tè foràOrílÉ›Ìède Etíokun KùúkùOrílÉ›Ìède shílèOrílÉ›Ìède KamerúúnìOríl" + + "É›Ìède sháínàOrílÉ›Ìède KòlómíbìaOrílÉ›Ìède Kuusita RíkàOrílÉ›Ìède Kúbà" + + "OrílÉ›Ìède Etíokun Kápé féndèOrílÉ›Ìède KúrúsìOrílÉ›Ìède shÉ›ÌÉ›ÌkìOrílÉ›Ì" + + "ède GemaniOrílÉ›Ìède DíbÉ”ÌótìOrílÉ›Ìède DÉ›ÌmákìOrílÉ›Ìède DòmíníkàOril" + + "É›Ìède DòmíníkánìOrílÉ›Ìède ÀlùgèríánìOrílÉ›Ìède EkuádòOrílÉ›Ìède Esito" + + "niaOrílÉ›Ìède ÉgípítìOrílÉ›Ìède EritiraOrílÉ›Ìède SipaniOrílÉ›Ìède Etopi" + + "aOrílÉ›Ìède FilandiOrílÉ›Ìède FijiOrílÉ›Ìède Etikun FakalandiOrílÉ›Ìède " + + "MakoronesiaOrílÉ›Ìède FaranseOrílÉ›Ìède GabonOrílÉ›Ìède OmobabirinOrílÉ›" + + "Ìède GenadaOrílÉ›Ìède GÉ”giaOrílÉ›Ìède Firenshi GuanaOrílÉ›Ìède GanaOrí" + + "lÉ›Ìède GibarataraOrílÉ›Ìède GerelandiOrílÉ›Ìède GambiaOrílÉ›Ìède GeneOr" + + "ílÉ›Ìède GadelopeOrílÉ›Ìède Ekutoria GiniOrílÉ›Ìède GeriisiOrílÉ›Ìède G" + + "uatemalaOrílÉ›Ìède GuamuOrílÉ›Ìède Gene-BusauOrílÉ›Ìède GuyanaOrílÉ›Ìède" + + " HondurasiOrílÉ›Ìède KòróátíàOrílÉ›Ìède HaatiOrílÉ›Ìède HungariOrílÉ›Ìèd" + + "e IndonesiaOrílÉ›Ìède AilandiOrílÉ›Ìède IserÉ›liOrílÉ›Ìède IndiaOrílÉ›Ìèd" + + "e Etíkun Ãndíánì ti ÃŒlú BírítísìOrílÉ›Ìède IrakiOrílÉ›Ìède IraniOrílÉ›Ì" + + "ède AshilandiOrílÉ›Ìède ItaliyiOrílÉ›Ìède JamaikaOrílÉ›Ìède JÉ”daniOríl" + + "É›Ìède JapaniOrílÉ›Ìède KenyaOrílÉ›Ìède KurishisitaniOrílÉ›Ìède Kàmùbód" + + "íàOrílÉ›Ìède KiribatiOrílÉ›Ìède KòmòrósìOrílÉ›Ìède Kiiti ati NeefiOríl" + + "É›Ìède Guusu KÉ”riaOrílÉ›Ìède Ariwa KÉ”riaOrílÉ›Ìède KuwetiOrílÉ›Ìède Etí" + + "okun KámánìOrílÉ›Ìède KashashataniOrílÉ›Ìède LaosiOrílÉ›Ìède LebanoniOr" + + "ílÉ›Ìède LushiaOrílÉ›Ìède LÉ›shitÉ›nisiteniOrílÉ›Ìède Siri LankaOrílÉ›Ìèd" + + "e LaberiaOrílÉ›Ìède LesotoOrílÉ›Ìède LituaniaOrílÉ›Ìède LusemogiOrílÉ›Ìè" + + "de LatifiaOrílÉ›Ìède LibiyaOrílÉ›Ìède MorokoOrílÉ›Ìède MonakoOrílÉ›Ìède " + + "ModofiaOrílÉ›Ìède MadasikaOrílÉ›Ìède Etikun MáshaliOrílÉ›Ìède Masidonia" + + "OrílÉ›Ìède MaliOrílÉ›Ìède ManamariOrílÉ›Ìède MogoliaOrílÉ›Ìède Etikun Gu" + + "usu MarianaOrílÉ›Ìède MatinikuwiOrílÉ›Ìède MaritaniaOrílÉ›Ìède Motserat" + + "iOrílÉ›Ìède MalataOrílÉ›Ìède MaritiusiOrílÉ›Ìède MaladifiOrílÉ›Ìède Mala" + + "wiOrílÉ›Ìède MesikoOrílÉ›Ìède MalasiaOrílÉ›Ìède MoshamibikuOrílÉ›Ìède Na" + + "mibiaOrílÉ›Ìède Kaledonia TitunOrílÉ›Ìède NàìjáOrílÉ›Ìède Etikun NÉ”Ìúfó" + + "kìOrílÉ›Ìède NàìjíríàOrílÉ›Ìède NIkaraguaOrílÉ›Ìède NedalandiOrílÉ›Ìède " + + "NɔɔwiiOrílÉ›Ìède NepaOrílÉ›Ìède NauruOrílÉ›Ìède NiueOrílÉ›Ìède shilandi " + + "TitunOrílÉ›Ìède ƆɔmaOrílÉ›Ìède PanamaOrílÉ›Ìède PeruOrílÉ›Ìède Firenshi " + + "PolinesiaOrílÉ›Ìède Paapu ti GiiniOrílÉ›Ìède filipiniOrílÉ›Ìède Pakisit" + + "anOrílÉ›Ìède PolandiOrílÉ›Ìède Pɛɛri ati mikuloniOrílÉ›Ìède PikariniOrí" + + "lÉ›Ìède PÉ”to RikoOrílÉ›Ìède IwÉ”orun Pakisitian ati GashaOrílÉ›Ìède PÉ”tu" + + "giOrílÉ›Ìède PaaluOrílÉ›Ìède ParaguyeOrílÉ›Ìède KotaOrílÉ›Ìède RiuniyanO" + + "rílÉ›Ìède RomaniyaOrílÉ›Ìède RÉ”shiaOrílÉ›Ìède RuwandaOrílÉ›Ìède Saudi Ar" + + "abiaOrílÉ›Ìède Etikun SolomoniOrílÉ›Ìède seshÉ›lÉ›siOrílÉ›Ìède SudaniOríl" + + "É›Ìède SwidiniOrílÉ›Ìède SingapoOrílÉ›Ìède HÉ›lenaOrílÉ›Ìède SilofaniaOr" + + "ílÉ›Ìède SilofakiaOrílÉ›Ìède Siria looniOrílÉ›Ìède Sani MarinoOrílÉ›Ìèd" + + "e SÉ›nÉ›gaOrílÉ›Ìède SomaliaOrílÉ›Ìède SurinamiOrílÉ›Ìède Sao tomi ati pi" + + "riishipiOrílÉ›Ìède ÆÉ›sáfádòOrílÉ›Ìède SiriaOrílÉ›Ìède SashilandOrílÉ›Ìèd" + + "e Tɔɔki ati Etikun KakÉ”siOrílÉ›Ìède shààdìOrílÉ›Ìède TogoOrílÉ›Ìède Tai" + + "landiOrílÉ›Ìède TakisitaniOrílÉ›Ìède TokelauOrílÉ›Ìède ÃŒlàOòrùn Tímɔ̀Or" + + "ílÉ›Ìède TɔɔkimenisitaOrílÉ›Ìède TunishiaOrílÉ›Ìède TongaOrílÉ›Ìède Tɔɔ" + + "kiOrílÉ›Ìède Tirinida ati TobagaOrílÉ›Ìède TufaluOrílÉ›Ìède TaiwaniOríl" + + "É›Ìède TanshaniaOrílÉ›Ìède UkariniOrílÉ›Ìède UgandaOrílÉ›Ìède OrilÉ›ede " + + "AmerikaOrílÉ›Ìède NruguayiOrílÉ›Ìède NshibÉ›kisitaniOrílÉ›Ìède FatikaniO" + + "rílÉ›Ìède FisÉ›nnti ati GenadinaOrílÉ›Ìède FÉ›nÉ›shuÉ›laOrílÉ›Ìède Etíkun F" + + "ágínì ti ìlú BírítísìOrílÉ›Ìède Etikun Fagini ti AmÉ›rikaOrílÉ›Ìède FÉ›" + + "tinamiOrílÉ›Ìède FaniatuOrílÉ›Ìède Wali ati futunaOrílÉ›Ìède SamÉ”OrílÉ›Ì" + + "ède yemeniOrílÉ›Ìède MayoteOrílÉ›Ìède Ariwa AfirikaOrílÉ›Ìède shamibia" + + "OrílÉ›Ìède shimibabe", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0019, 0x003e, 0x005e, 0x008b, 0x00a7, 0x00c5, + 0x00dc, 0x00f5, 0x00f5, 0x010d, 0x0135, 0x014f, 0x0169, 0x017f, + 0x017f, 0x019c, 0x01cd, 0x01e7, 0x0205, 0x0220, 0x023f, 0x025a, + 0x0271, 0x028b, 0x02a3, 0x02a3, 0x02ba, 0x02d6, 0x02f2, 0x02f2, + 0x030c, 0x0326, 0x033d, 0x033d, 0x035c, 0x0376, 0x038f, 0x03a6, + 0x03a6, 0x03ba, 0x03e1, 0x03f6, 0x0411, 0x042d, 0x044c, 0x0461, + 0x047b, 0x0492, 0x04ad, 0x04ad, 0x04c9, 0x04dd, 0x0502, 0x0502, + 0x0502, 0x0519, 0x0534, 0x0548, 0x0548, 0x0563, 0x057c, 0x0596, + // Entry 40 - 7F + 0x05b2, 0x05d0, 0x05d0, 0x05e6, 0x05fc, 0x0615, 0x0615, 0x062a, + 0x063e, 0x0652, 0x0652, 0x0667, 0x0679, 0x0697, 0x06b0, 0x06b0, + 0x06c5, 0x06d8, 0x06f0, 0x0704, 0x0718, 0x0734, 0x0734, 0x0746, + 0x075e, 0x0775, 0x0789, 0x079b, 0x07b1, 0x07cc, 0x07e1, 0x07e1, + 0x07f8, 0x080b, 0x0823, 0x0837, 0x0837, 0x0837, 0x084e, 0x0869, + 0x087c, 0x0891, 0x0891, 0x08a8, 0x08bd, 0x08d3, 0x08d3, 0x08e6, + 0x091d, 0x0930, 0x0943, 0x095a, 0x096f, 0x096f, 0x0984, 0x0999, + 0x09ad, 0x09c0, 0x09db, 0x09f7, 0x0a0d, 0x0a27, 0x0a44, 0x0a5e, + // Entry 80 - BF + 0x0a78, 0x0a8c, 0x0aac, 0x0ac6, 0x0ad9, 0x0aef, 0x0b03, 0x0b22, + 0x0b3a, 0x0b4f, 0x0b63, 0x0b79, 0x0b8f, 0x0ba4, 0x0bb8, 0x0bcc, + 0x0be0, 0x0bf5, 0x0bf5, 0x0bf5, 0x0c0b, 0x0c28, 0x0c3f, 0x0c51, + 0x0c67, 0x0c7c, 0x0c7c, 0x0c9e, 0x0cb6, 0x0ccd, 0x0ce4, 0x0cf8, + 0x0d0f, 0x0d25, 0x0d39, 0x0d4d, 0x0d62, 0x0d7b, 0x0d90, 0x0dad, + 0x0dc3, 0x0de5, 0x0e00, 0x0e17, 0x0e2e, 0x0e44, 0x0e56, 0x0e69, + 0x0e7b, 0x0e97, 0x0eab, 0x0ebf, 0x0ed1, 0x0ef1, 0x0f0d, 0x0f23, + 0x0f3a, 0x0f4f, 0x0f71, 0x0f87, 0x0f9f, 0x0fca, 0x0fdf, 0x0ff2, + // Entry C0 - FF + 0x1008, 0x101a, 0x101a, 0x1030, 0x1046, 0x1046, 0x105b, 0x1070, + 0x108a, 0x10a7, 0x10c0, 0x10d4, 0x10e9, 0x10fe, 0x1113, 0x112a, + 0x112a, 0x1141, 0x115a, 0x1173, 0x1189, 0x119e, 0x11b4, 0x11b4, + 0x11d9, 0x11f4, 0x11f4, 0x1207, 0x121e, 0x121e, 0x1246, 0x125d, + 0x125d, 0x126f, 0x1285, 0x129d, 0x12b2, 0x12d5, 0x12f2, 0x1308, + 0x131b, 0x1330, 0x1351, 0x1365, 0x137a, 0x1391, 0x13a6, 0x13ba, + 0x13ba, 0x13d9, 0x13ef, 0x140c, 0x1422, 0x1446, 0x1461, 0x1496, + 0x14bd, 0x14d4, 0x14e9, 0x1506, 0x1519, 0x1519, 0x152d, 0x1541, + // Entry 100 - 13F + 0x155c, 0x1572, 0x1589, + }, + }, + { // yue + "阿森æ¾å³¶å®‰é“爾阿拉伯è¯åˆå¤§å…¬åœ‹é˜¿å¯Œæ±—安æç“œåŒå·´å¸ƒé”安圭拉阿爾巴尼亞亞美尼亞安哥拉å—極洲阿根廷美屬薩摩亞奧地利澳洲è·å±¬é˜¿é­¯å·´å¥§è˜­ç¾¤å³¶äºžå¡žæ‹œç„¶æ³¢æ–¯å°¼" + + "亞åŒé»‘塞哥維那巴è²å¤šå­ŸåŠ æ‹‰æ¯”利時布å‰ç´æ³•ç´¢ä¿åŠ åˆ©äºžå·´æž—蒲隆地è²å—è–巴瑟米百慕é”汶èŠçŽ»åˆ©ç¶­äºžè·è˜­åŠ å‹’比å€å·´è¥¿å·´å“ˆé¦¬ä¸ä¸¹å¸ƒå¨å³¶æ³¢æœ­é‚£ç™½ä¿„" + + "ç¾…æ–¯è²é‡Œæ–¯åŠ æ‹¿å¤§ç§‘科斯(基林)群島剛果(金å¤æ²™ï¼‰ä¸­éžå…±å’Œåœ‹å‰›æžœï¼ˆå¸ƒæ‹‰è–©ï¼‰ç‘žå£«è±¡ç‰™æµ·å²¸åº«å…‹ç¾¤å³¶æ™ºåˆ©å–€éº¥éš†ä¸­è¯äººæ°‘共和國哥倫比亞克里派頓" + + "島哥斯大黎加å¤å·´ç¶­å¾·è§’庫拉索è–誕島賽普勒斯æ·å…‹å…±å’Œåœ‹å¾·åœ‹è¿ªäºžå“¥åŠ è¥¿äºžå³¶å‰å¸ƒåœ°ä¸¹éº¥å¤šç±³å°¼å…‹å¤šæ˜Žå°¼åŠ å…±å’Œåœ‹é˜¿çˆ¾åŠåˆ©äºžä¼‘é”與梅利利亞厄瓜多" + + "愛沙尼亞埃åŠè¥¿æ’’哈拉厄利垂亞西ç­ç‰™è¡£ç´¢æ¯”亞æ­ç›ŸèŠ¬è˜­æ–æ¿Ÿç¦å…‹è˜­ç¾¤å³¶å¯†å…‹ç¾…尼西亞群島法羅群島法國加彭英國格瑞那é”喬治亞共和國法屬圭亞那根" + + "西島迦ç´ç›´å¸ƒç¾…陀格陵蘭甘比亞幾內亞瓜地洛普赤é“幾內亞希臘å—ä½æ²»äºžå³¶åŒå—æ¡‘å¨å¥‡ç¾¤å³¶ç“œåœ°é¦¬æ‹‰é—œå³¶å¹¾å…§äºžæ¯”索蓋亞那中è¯äººæ°‘共和國香港特別行" + + "政å€èµ«å¾·å³¶åŒéº¥å…‹å”ç´ç¾¤å³¶å®éƒ½æ‹‰æ–¯å…‹ç¾…埃西亞海地匈牙利加那利群島å°å°¼æ„›çˆ¾è˜­ä»¥è‰²åˆ—曼島å°åº¦è‹±å±¬å°åº¦æ´‹é ˜åœ°ä¼Šæ‹‰å…‹ä¼Šæœ—冰島義大利澤西島牙買加" + + "約旦日本肯亞å‰çˆ¾å‰æ–¯æŸ¬åŸ”寨å‰é‡Œå·´æ–¯è‘›æ‘©è–基茨åŒå°¼ç¶­æ–¯åŒ—韓å—韓科å¨ç‰¹é–‹æ›¼ç¾¤å³¶å“ˆè–©å…‹å¯®åœ‹é»Žå·´å«©è–露西亞列支敦斯登斯里蘭å¡è³´æ¯”瑞亞賴索托立" + + "陶宛盧森堡拉脫維亞利比亞摩洛哥摩ç´å“¥æ‘©çˆ¾å¤šç“¦è’™ç‰¹å…§å“¥ç¾…法屬è–馬ä¸é¦¬é”加斯加馬紹爾群島馬其頓馬利緬甸蒙å¤ä¸­è¯äººæ°‘共和國澳門特別行政å€åŒ—" + + "馬里亞ç´ç¾¤å³¶é¦¬ä¸å°¼å…‹å³¶èŒ…利塔尼亞蒙哲臘馬爾他模里西斯馬爾地夫馬拉å¨å¢¨è¥¿å“¥é¦¬ä¾†è¥¿äºžèŽ«ä¸‰æ¯”å…‹ç´ç±³æ¯”亞新喀里多尼亞尼日諾ç¦å…‹å³¶å¥ˆåŠåˆ©äºžå°¼åŠ " + + "拉瓜è·è˜­æŒªå¨å°¼æ³Šçˆ¾è«¾é­¯ç´åŸƒå³¶ç´è¥¿è˜­é˜¿æ›¼çŽ‹åœ‹å·´æ‹¿é¦¬ç§˜é­¯æ³•å±¬çŽ»é‡Œå°¼è¥¿äºžå·´å¸ƒäºžç´å¹¾å…§äºžè²å¾‹è³“巴基斯å¦æ³¢è˜­è–皮埃爾åŒå¯†å…‹éš†ç¾¤å³¶çš®ç‰¹è‚¯ç¾¤å³¶æ³¢å¤š" + + "黎å„å·´å‹’æ–¯å¦è‡ªæ²»å€è‘¡è„牙帛ç‰å·´æ‹‰åœ­å¡é”大洋洲邊疆群島留尼旺羅馬尼亞塞爾維亞俄羅斯盧安é”æ²™çƒåœ°é˜¿æ‹‰ä¼¯ç´¢ç¾…門群島塞席爾蘇丹瑞典新加å¡è–赫" + + "勒拿島斯洛維尼亞斯瓦爾巴特群島åŒæšé¦¬å»¶å³¶æ–¯æ´›ä¼å…‹ç…å­å±±è–馬利諾塞內加爾索馬利亞蘇利å—å—蘇丹è–多美åŒæ™®æž—西比薩爾瓦多è·å±¬è–馬ä¸æ•˜åˆ©äºžå²" + + "瓦濟蘭特里斯å¦é”庫尼亞群島土克斯åŠé–‹ç§‘斯群島查德法屬å—方屬地多哥泰國塔å‰å…‹æ‰˜å…‹å‹žç¾¤å³¶æ±å¸æ±¶åœŸåº«æ›¼çªå°¼è¥¿äºžæ±åŠ åœŸè€³å…¶åƒé‡Œé”åŒå¤šå·´å“¥å瓦" + + "é­¯å°ç£å¦å°šå°¼äºžçƒå…‹è˜­çƒå¹²é”美國本土外å°å³¶å¶¼ç¾Žåœ‹çƒæ‹‰åœ­çƒèŒ²åˆ¥å…‹æ¢µè’‚岡è–文森特åŒæ ¼æž—ç´ä¸æ–¯å§”內瑞拉英屬維京群島美屬維京群島越å—è¬é‚£æœç“¦åˆ©" + + "æ–¯åŒå¯Œåœ–ç´ç¾¤å³¶è–©æ‘©äºžç§‘索沃葉門馬約特å—éžå°šæ¯”亞辛巴å¨æœªçŸ¥å€åŸŸä¸–ç•Œéžæ´²åŒ—美洲å—美洲大洋洲西éžä¸­ç¾Žæ±éžåŒ—éžä¸­éžéžæ´²å—部美洲北美加勒比海æ±" + + "亞å—亞æ±å—亞å—æ­æ¾³æ´²åŒç´è¥¿è˜­ç¾Žæ‹‰å°¼è¥¿äºžå¯†å…‹ç¾…尼西亞玻里尼西亞亞洲中亞西亞æ­æ´²æ±æ­åŒ—æ­è¥¿æ­æ‹‰ä¸ç¾Žæ´²", + []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0015, 0x002d, 0x0036, 0x004b, 0x0054, 0x0063, + 0x006f, 0x0078, 0x0081, 0x008a, 0x0099, 0x00a2, 0x00a8, 0x00b7, + 0x00c3, 0x00cf, 0x00ed, 0x00f6, 0x00ff, 0x0108, 0x0117, 0x0123, + 0x0129, 0x0132, 0x0138, 0x0144, 0x014d, 0x0153, 0x015f, 0x0171, + 0x0177, 0x0180, 0x0186, 0x018f, 0x0198, 0x01a4, 0x01ad, 0x01b6, + 0x01d1, 0x01e6, 0x01f5, 0x020a, 0x0210, 0x021c, 0x0228, 0x022e, + 0x0237, 0x024c, 0x0258, 0x0267, 0x0276, 0x027c, 0x0285, 0x028e, + 0x0297, 0x02a3, 0x02b2, 0x02b8, 0x02cd, 0x02d6, 0x02dc, 0x02e8, + // Entry 40 - 7F + 0x02fd, 0x030c, 0x0321, 0x032a, 0x0336, 0x033c, 0x0348, 0x0354, + 0x035d, 0x0369, 0x036f, 0x0375, 0x037b, 0x038a, 0x03a2, 0x03ae, + 0x03b4, 0x03ba, 0x03c0, 0x03cc, 0x03de, 0x03ed, 0x03f6, 0x03fc, + 0x0408, 0x0411, 0x041a, 0x0423, 0x042f, 0x043e, 0x0444, 0x0468, + 0x0474, 0x047a, 0x0489, 0x0492, 0x04bc, 0x04da, 0x04e6, 0x04f5, + 0x04fb, 0x0504, 0x0513, 0x0519, 0x0522, 0x052b, 0x0531, 0x0537, + 0x054c, 0x0555, 0x055b, 0x0561, 0x056a, 0x0573, 0x057c, 0x0582, + 0x0588, 0x058e, 0x059a, 0x05a3, 0x05af, 0x05b5, 0x05ca, 0x05d0, + // Entry 80 - BF + 0x05d6, 0x05df, 0x05eb, 0x05f4, 0x05fa, 0x0603, 0x060f, 0x061e, + 0x062a, 0x0636, 0x063f, 0x0648, 0x0651, 0x065d, 0x0666, 0x066f, + 0x0678, 0x0684, 0x0693, 0x06a2, 0x06b1, 0x06c0, 0x06c9, 0x06cf, + 0x06d5, 0x06db, 0x0705, 0x071a, 0x0729, 0x0738, 0x0741, 0x074a, + 0x0756, 0x0762, 0x076b, 0x0774, 0x0780, 0x078c, 0x0798, 0x07aa, + 0x07b0, 0x07bc, 0x07c8, 0x07d4, 0x07da, 0x07e0, 0x07e9, 0x07ef, + 0x07f8, 0x0801, 0x080d, 0x0816, 0x081c, 0x0831, 0x0846, 0x084f, + 0x085b, 0x0861, 0x087f, 0x088e, 0x089a, 0x08af, 0x08b8, 0x08be, + // Entry C0 - FF + 0x08c7, 0x08cd, 0x08e2, 0x08eb, 0x08f7, 0x0903, 0x090c, 0x0915, + 0x0927, 0x0936, 0x093f, 0x0945, 0x094b, 0x0954, 0x0963, 0x0972, + 0x0996, 0x09a2, 0x09ab, 0x09b7, 0x09c3, 0x09cf, 0x09d8, 0x09e1, + 0x09f9, 0x0a05, 0x0a14, 0x0a1d, 0x0a29, 0x0a47, 0x0a62, 0x0a68, + 0x0a7a, 0x0a80, 0x0a86, 0x0a8f, 0x0a9e, 0x0aa7, 0x0ab0, 0x0abc, + 0x0ac2, 0x0acb, 0x0ae0, 0x0ae9, 0x0aef, 0x0afb, 0x0b04, 0x0b0d, + 0x0b25, 0x0b2b, 0x0b34, 0x0b40, 0x0b49, 0x0b67, 0x0b73, 0x0b85, + 0x0b97, 0x0b9d, 0x0ba6, 0x0bc1, 0x0bca, 0x0bd3, 0x0bd9, 0x0be2, + // Entry 100 - 13F + 0x0be8, 0x0bf1, 0x0bfa, 0x0c06, 0x0c0c, 0x0c12, 0x0c1b, 0x0c24, + 0x0c2d, 0x0c33, 0x0c39, 0x0c3f, 0x0c45, 0x0c4b, 0x0c57, 0x0c5d, + 0x0c63, 0x0c6f, 0x0c75, 0x0c7b, 0x0c84, 0x0c8a, 0x0c9c, 0x0cab, + 0x0cbd, 0x0ccc, 0x0cd2, 0x0cd8, 0x0cde, 0x0ce4, 0x0cea, 0x0cf0, + 0x0cf6, 0x0d02, + }, + }, + { // zgh + "â´°âµâ´·âµ“ⵔⴰâµâµ‰âµŽâ´°âµ”ⴰⵜⴰⴼⵖⴰâµâµ‰âµ™âµœâ´°âµâ´°âµâµœâµ‰â´³â´° â´· ⴱⵔⴱⵓⴷⴰⴰâµâ´³âµ‰âµâ´°â´°âµâ´±â´°âµâµ¢â´°â´°âµ”ⵎⵉâµâµ¢â´°â´°âµâ´³âµ“âµâ´°â´°âµ”ⵊⴰâµâµœâµ‰âµ" + + "ⵙⴰⵎⵡⴰ ⵜⴰⵎⵉⵔⵉⴽⴰâµâµ‰âµœâµâµâµŽâµ™â´°âµ“ⵙⵜⵔⴰâµâµ¢â´°â´°âµ”ⵓⴱⴰⴰⴷⵔⴰⴱⵉⵊⴰâµâ´±âµ“âµ™âµâ´° â´· ⵀⵉⵔⵙⵉⴽⴱⴰⵔⴱⴰⴷⴱⴰ" + + "âµâ´³âµâ´°â´·âµ‰âµ›â´±âµâµŠâµ‰â´½â´°â´±âµ“ⵔⴽⵉâµâ´° ⴼⴰⵙⵓⴱâµâµ–ⴰⵔⵢⴰⴱⵃⵔⴰⵢâµâ´±âµ“ⵔⵓâµâ´·âµ‰â´±âµ‰âµâµ‰âµâ´±âµ”ⵎⵓⴷⴰⴱⵔⵓâµâµ‰â´±âµ“âµâµ‰â´±" + + "ⵢⴰⴱⵔⴰⵣⵉâµâ´±â´°âµ€â´°âµŽâ´°âµ™â´±âµ€âµ“ⵜⴰâµâ´±âµ“ⵜⵙⵡⴰâµâ´°â´±âµ‰âµâ´°âµ”ⵓⵙⵢⴰⴱⵉâµâµ‰âµ£â´½â´°âµâ´°â´·â´°âµœâ´°â´³â´·âµ“â´·â´°âµâµœ ⵜⴰⴷⵉⵎⵓⵇ" + + "ⵔⴰⵜⵉⵜ ⵠⴽⵓâµâ´³âµ“ⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰâµâ´°âµŽâµŽâ´°âµ™âµœ ⵠⵉⴼⵔⵉⵇⵢⴰⴽⵓâµâ´³âµ“ⵙⵡⵉⵙⵔⴰⴽⵓⵜ ⴷⵉⴼⵡⴰⵔⵜⵉⴳ" + + "ⵣⵉⵔⵉⵠⵠⴽⵓⴽⵛⵛⵉâµâµ‰â´½â´°âµŽâµ‰âµ”ⵓâµâµ›âµ›âµ‰âµâµ¡â´°â´½âµ“âµâµ“ⵎⴱⵢⴰⴽⵓⵙⵜⴰ ⵔⵉⴽⴰⴽⵓⴱⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⴽⴰⴱⴱ" + + "ⵉⵔⴷⵉⵇⵓⴱⵔⵓⵙⵜⴰⴳⴷⵓⴷⴰâµâµœ ⵜⴰⵜⵛⵉⴽⵉⵜⴰâµâµŽâ´°âµâµ¢â´°â´·âµŠâµ‰â´±âµ“ⵜⵉⴷⴰâµâµŽâ´°âµ”ⴽⴷⵓⵎⵉâµâµ‰â´½âµœâ´°â´³â´·âµ“â´·â´°âµâµœ " + + "ⵜⴰⴷⵓⵎⵉâµâµ‰â´½âµœâ´·âµ£â´°âµ¢âµ”ⵉⴽⵡⴰⴷⵓⵔⵉⵙⵜⵓâµâµ¢â´°âµŽâµ‰âµšâµ•âµ‰âµ”ⵉⵜⵉⵔⵢⴰⵙⴱⴰâµâµ¢â´°âµ‰âµœâµ¢âµ“ⴱⵢⴰⴼⵉâµâµâ´°âµâ´·â´°â´¼âµ‰â´·âµŠ" + + "ⵉⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰâµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ”ⵓâµâµ‰âµ£âµ¢â´°â´¼âµ”â´°âµâµ™â´°â´³â´°â´±âµ“âµâµœâ´°â´³âµâ´·âµ‰âµœ ⵉⵎⵓâµâµâµ–âµ”âµâ´°âµŸâ´°âµŠâµ“ⵔⵊⵢⴰⴳⵡ" + + "ⵉⵢⴰⵠⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâµ–â´°âµâ´°â´°â´·âµ”â´°âµ” ⵠⵟⴰⵕⵉⵇⴳⵔⵉâµâ´°âµâ´·â´³â´°âµŽâ´±âµ¢â´°âµ–ⵉâµâµ¢â´°â´³âµ¡â´°â´·â´°âµâµ“ⴱⵖⵉâµâµ¢â´° âµ " + + "ⵉⴽⵡⴰⴷⵓⵔâµâµ¢âµ“âµâ´°âµâ´³âµ¡â´°âµœâµ‰âµŽâ´°âµâ´°â´³âµ¡â´°âµŽâµ–ⵉâµâµ¢â´° ⴱⵉⵙⴰⵡⴳⵡⵉⵢⴰâµâ´°âµ€âµ“âµâ´·âµ“ⵔⴰⵙⴽⵔⵡⴰⵜⵢⴰⵀⴰⵢⵜⵉⵀâµ" + + "ⵖⴰⵔⵢⴰⴰâµâ´·âµ“âµâµ‰âµ™âµ¢â´°âµ‰âµ”âµâ´°âµâ´·â´°âµ‰âµ™âµ”ⴰⵢⵉâµâµâµ€âµ‰âµâ´·âµœâ´°âµŽâµâ´°â´¹âµœ ⵜⴰâµâ´³âµâµ‰âµ£âµ‰âµœ ⵠⵓⴳⴰⵔⵓ ⴰⵀⵉâµâ´·âµ‰âµ" + + "ⵄⵉⵔⴰⵇⵉⵔⴰâµâµ‰âµ™âµâ´°âµâ´·âµ‰âµŸâ´°âµâµ¢â´°âµŠâ´°âµŽâ´°âµ¢â´½â´°âµâµ“ⵔⴷⵓâµâµâµ¢â´°â´±â´°âµâ´½âµ‰âµâµ¢â´°â´½âµ‰âµ”ⵖⵉⵣⵉⵙⵜⴰâµâ´½â´°âµŽâ´±âµ“ⴷⵢⴰⴽⵉ" + + "ⵔⵉⴱⴰⵜⵉⵇⵓⵎⵓⵔⵙⴰâµâ´½âµ”ⵉⵙ â´· âµâµ‰â´¼âµ‰âµ™â´½âµ“ⵔⵢⴰ ⵠⵉⵥⵥâµâµŽâ´¹â´½âµ“ⵔⵢⴰ ⵠⵉⴼⴼⵓⵙâµâ´½âµ¡âµ‰âµœâµœâµ‰â´³âµ£âµ‰âµ”ⵉâµ" + + " ⵠⴽⴰⵢⵎⴰâµâ´½â´°âµ£â´°âµ…ⵙⵜⴰâµâµâ´°âµ¡âµ™âµâµ“â´±âµâ´°âµâµ™â´°âµâµœâµâµ“ⵙⵉâµâµ‰â´½âµ‰âµâµ›âµœâ´°âµ¢âµâµ™âµ”ⵉâµâ´°âµâ´½â´°âµâµ‰â´±âµ‰âµ”ⵢⴰâµâµ‰âµšâµ“ⵟⵓâµ" + + "ⵉⵜⵡⴰâµâµ¢â´°âµâµ“ⴽⵙⴰâµâ´±âµ“ⵔⴳâµâ´°âµœâ´¼âµ¢â´°âµâµ‰â´±âµ¢â´°âµâµŽâµ–ⵔⵉⴱⵎⵓâµâ´°â´½âµ“ⵎⵓâµâ´·âµ“ⴼⵢⴰⵎⵓâµâµœâµ‰âµâµ‰â´³âµ”ⵓⵎⴰⴷⴰⵖⴰⵛⵇ" + + "ⴰⵔⵜⵉⴳⵣⵉⵔⵉⵠⵠⵎⴰⵔⵛⴰâµâµŽâ´°âµ™âµ‰â´·âµ“âµâµ¢â´°âµŽâ´°âµâµ‰âµŽâµ¢â´°âµâµŽâ´°âµ”ⵎâµâµ–ⵓâµâµ¢â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵎⴰⵔⵢⴰⵠⵠ" + + "ⵉⵥⵥâµâµŽâ´¹âµŽâ´°âµ”ⵜⵉâµâµ‰â´½âµŽâµ“ⵕⵉⵟⴰâµâµ¢â´°âµŽâµ“âµâµ™âµ‰âµ”ⴰⵜⵎⴰâµâµŸâ´°âµŽâµ“ⵔⵉⵙⵎⴰâµâ´·âµ‰â´¼âµŽâ´°âµâ´°âµ¡âµ‰âµŽâµ‰â´½âµ™âµ‰â´½âµŽâ´°âµâµ‰âµ£âµ¢â´°" + + "ⵎⵓⵣâµâ´±âµ‰âµ‡âµâ´°âµŽâµ‰â´±âµ¢â´°â´½â´°âµâµ‰â´·âµ“âµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜâµâµâµ‰âµŠâµ‰âµ”ⵜⵉⴳⵣⵉⵔⵉⵠⵠâµâµ“ⵔⴼⵓâµâ´½âµâµ‰âµŠâµ‰âµ”ⵢⴰâµâµ‰â´½" + + "ⴰⵔⴰⴳⵡⴰⵀⵓâµâ´°âµâ´·â´°âµâµâµ”ⵡⵉⵊâµâµ‰â´±â´°âµâµâ´°âµ¡âµ”ⵓâµâµ‰âµ¡âµ‰âµâµ¢âµ“ⵣⵉâµâ´°âµâ´·â´°âµ„ⵓⵎⴰâµâ´±â´°âµâ´°âµŽâ´°â´±âµ‰âµ”ⵓⴱⵓâµâµ‰âµâµ‰âµ£âµ¢" + + "â´° ⵜⴰⴼⵔⴰâµâµ™âµ‰âµ™âµœâ´±â´°â´±âµ¡â´° ⵖⵉâµâµ¢â´° ⵜⴰⵎⴰⵢâµâµ“ⵜⴼⵉâµâµ‰â´±â´±âµ‰âµâ´±â´°â´½âµ‰âµ™âµœâ´°âµâ´±âµ“âµâµ“âµâµ¢â´°âµ™â´°âµâ´±âµ¢âµ‰âµ” â´· ⵎ" + + "ⵉⴽâµâµ“âµâ´±âµ‰âµœâ´½â´°âµ¢âµ”âµâ´±âµ“ⵔⵜⵓ ⵔⵉⴽⵓⴰⴳⵎⵎⴰⴹ ⵠⵜⴰⴳⵓⵜ â´· ⵖⵣⵣⴰⴱⵕⵟⵇⵉⵣⴱⴰâµâ´°âµ¡â´±â´°âµ”ⴰⴳⵡⴰⵢⵇⴰⵜ" + + "ⴰⵔⵔⵉⵢⵓâµâµ¢âµ“âµâµ”ⵓⵎⴰâµâµ¢â´°âµ™âµ‰âµ”ⴱⵢⴰⵔⵓⵙⵢⴰⵔⵡⴰâµâ´·â´°âµ™âµ™â´°âµ„ⵓⴷⵉⵢⴰⵜⵉⴳⵣⵉⵔⵉⵠⵠⵙⴰâµâµ“ⵎⴰâµâµ™âµ™âµ‰âµ›âµ‰" + + "âµâµ™âµ™âµ“â´·â´°âµâµ™âµ™âµ¡âµ‰â´·âµ™âµâµ–ⴰⴼⵓⵔⴰⵙⴰâµâµœâµ‰âµâµ‰âµâµ™âµâµ“ⴼⵉâµâµ¢â´°âµ™âµâµ“ⴼⴰⴽⵢⴰⵙⵙⵉⵔⴰâµâµ¢âµ“âµâµ™â´°âµâµŽâ´°âµ”ⵉâµâµ“ⵙⵙⵉâµ" + + "ⵉⴳⴰâµâµšâµšâµ“ⵎⴰâµâµ™âµ“ⵔⵉâµâ´°âµŽâµ™âµ™âµ“ⴷⴰⵠⵠⵉⴼⴼⵓⵙⵙⴰⵡⵟⵓⵎⵉ â´· ⴱⵔⴰâµâµ™âµ‰â´±âµ™â´°âµâ´¼â´°â´·âµ“ⵔⵙⵓⵔⵢⴰⵙⵡⴰⵣⵉ" + + "âµâ´°âµâ´·â´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵠⵜⵓⵔⴽⵢⴰ â´· ⴽⴰⵢⴽⵜⵛⴰⴷⵟⵓⴳⵓⵟⴰⵢâµâ´°âµâ´·âµœâ´°â´·âµŠâ´°â´½âµ‰âµ™âµœâ´°âµâµŸâµ“â´½âµâ´°âµ¡âµœâµ‰âµŽâµ“âµ”" + + " âµ âµâµ‡â´±âµâµœâµœâµ“ⵔⴽⵎⴰâµâµ™âµœâ´°âµâµœâµ“âµâµ™âµŸâµ“âµâ´³â´°âµœâµ“ⵔⴽⵢⴰⵜⵔⵉâµâµ‰â´·â´°â´· â´· ⵟⵓⴱⴰⴳⵓⵜⵓⴼⴰâµâµ“ⵟⴰⵢⵡⴰâµâµŸâ´°âµâµ¥â´°" + + "âµâµ¢â´°âµ“ⴽⵔⴰâµâµ¢â´°âµ“âµ–â´°âµâ´·â´°âµ‰âµ¡âµ“âµâ´°â´½ ⵎⵓâµâµâµ‰âµ ⵠⵎⵉⵔⵉⴽⴰâµâµ“ⵔⵓⴳⵡⴰⵢⵓⵣⴱⴰⴽⵉⵙⵜⴰâµâ´°âµ¡â´°âµâ´½ ⵠⴼⴰ" + + "ⵜⵉⴽⴰâµâµ™â´°âµâ´¼â´°âµâµ™â´°âµ â´· ⴳⵔⵉâµâ´°â´·âµ‰âµâ´¼âµ‰âµâµ£âµ¡âµ‰âµâ´°âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠⵜⵉⵎⴳⴰⴷ âµ âµâµâ´³âµâµ‰âµ£âµœâµ‰â´³âµ£âµ‰âµ”ⵉⵠ" + + "ⵜⵉⵎⴳⴰⴷ ⵠⵉⵡⵓâµâ´°â´½ ⵎⵓâµâµâµ‰âµâ´¼âµ‰âµœâµâ´°âµŽâ´¼â´°âµâµ¡â´°âµŸâµ“ⵡⴰâµâµ‰âµ™ â´· ⴼⵓⵜⵓâµâ´°âµ™â´°âµŽâµ¡â´°âµ¢â´°âµŽâ´°âµâµŽâ´°âµ¢âµ“ⵟⴰⴼ" + + "ⵔⵉⵇⵢⴰ ⵠⵉⴼⴼⵓⵙⵣⴰⵎⴱⵢⴰⵣⵉⵎⴱⴰⴱⵡⵉ", + []uint16{ // 259 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0012, 0x0027, 0x0045, 0x006e, 0x0080, 0x0095, + 0x00aa, 0x00bc, 0x00bc, 0x00d4, 0x0105, 0x0114, 0x012c, 0x013b, + 0x013b, 0x0156, 0x017c, 0x018e, 0x01a9, 0x01bb, 0x01dd, 0x01f2, + 0x0204, 0x0219, 0x0228, 0x0228, 0x023a, 0x0249, 0x025e, 0x025e, + 0x0270, 0x0285, 0x0297, 0x0297, 0x02af, 0x02ca, 0x02d9, 0x02eb, + 0x02eb, 0x033f, 0x0390, 0x039f, 0x03b1, 0x03cd, 0x03f3, 0x0402, + 0x0417, 0x0429, 0x0441, 0x0441, 0x045d, 0x0469, 0x049e, 0x049e, + 0x049e, 0x04b0, 0x04e4, 0x04f9, 0x04f9, 0x050e, 0x0523, 0x0538, + // Entry 40 - 7F + 0x0572, 0x0581, 0x0581, 0x0596, 0x05ab, 0x05b7, 0x05b7, 0x05cf, + 0x05e1, 0x05f6, 0x05f6, 0x060e, 0x061d, 0x064c, 0x066a, 0x066a, + 0x067c, 0x068b, 0x06b0, 0x06c2, 0x06d4, 0x0705, 0x0705, 0x0711, + 0x0734, 0x0749, 0x075b, 0x076a, 0x0782, 0x07ab, 0x07bd, 0x07bd, + 0x07d8, 0x07e4, 0x0803, 0x0818, 0x0818, 0x0818, 0x0830, 0x0845, + 0x0854, 0x0869, 0x0869, 0x0884, 0x0899, 0x08ae, 0x08ae, 0x08bd, + 0x0915, 0x0927, 0x0933, 0x0945, 0x0957, 0x0957, 0x096c, 0x097e, + 0x0990, 0x099f, 0x09c0, 0x09d8, 0x09f0, 0x09ff, 0x0a28, 0x0a4e, + // Entry 80 - BF + 0x0a71, 0x0a80, 0x0aaf, 0x0aca, 0x0ad6, 0x0ae8, 0x0b00, 0x0b1e, + 0x0b36, 0x0b4b, 0x0b5d, 0x0b75, 0x0b93, 0x0ba5, 0x0bb4, 0x0bc6, + 0x0bd8, 0x0bf0, 0x0c0e, 0x0c0e, 0x0c2c, 0x0c5b, 0x0c76, 0x0c82, + 0x0c97, 0x0cac, 0x0cac, 0x0cf2, 0x0d0a, 0x0d25, 0x0d3d, 0x0d4c, + 0x0d5b, 0x0d6d, 0x0d7f, 0x0d91, 0x0da6, 0x0dbb, 0x0dd0, 0x0e04, + 0x0e16, 0x0e48, 0x0e5d, 0x0e78, 0x0e8d, 0x0e9f, 0x0eae, 0x0ebd, + 0x0ec9, 0x0ee7, 0x0ef6, 0x0f08, 0x0f14, 0x0f4e, 0x0f86, 0x0f9e, + 0x0fb6, 0x0fcb, 0x0ff7, 0x100f, 0x102b, 0x1062, 0x1074, 0x1083, + // Entry C0 - FF + 0x109b, 0x10aa, 0x10aa, 0x10c2, 0x10d7, 0x10e9, 0x10f8, 0x110a, + 0x1125, 0x1157, 0x1169, 0x117b, 0x118a, 0x11a2, 0x11ba, 0x11d2, + 0x11d2, 0x11ea, 0x1205, 0x1220, 0x1238, 0x124a, 0x125f, 0x1285, + 0x12b4, 0x12cc, 0x12cc, 0x12db, 0x12f9, 0x12f9, 0x1339, 0x1345, + 0x1345, 0x1351, 0x1366, 0x1387, 0x1399, 0x13bc, 0x13dd, 0x13e9, + 0x13f8, 0x140a, 0x1439, 0x144b, 0x145d, 0x1475, 0x148a, 0x149c, + 0x149c, 0x14db, 0x14f0, 0x150e, 0x1537, 0x156f, 0x1587, 0x15c9, + 0x161e, 0x1630, 0x1645, 0x166b, 0x167a, 0x167a, 0x1689, 0x1698, + // Entry 100 - 13F + 0x16c1, 0x16d3, 0x16eb, + }, + }, + { // zh + zhRegionStr, + zhRegionIdx, + }, + { // zh-Hant + zhHantRegionStr, + zhHantRegionIdx, + }, + { // zh-Hant-HK + "阿拉伯è¯åˆé…‹é•·åœ‹å®‰æ瓜和巴布é”阿魯巴阿塞拜疆波斯尼亞和黑塞哥維那巴巴多斯布基ç´æ³•ç´¢å¸ƒéš†è¿ªè²å¯§è–巴泰勒米鮑å¨ç‰¹å³¶åšèŒ¨ç“¦ç´ä¼¯åˆ©èŒ²å¯å¯æ–¯ç¾¤å³¶å‰›æžœ - " + + "金å¤æ²™å‰›æžœ - 布拉薩科特迪瓦克里ç€é “島哥斯é”黎加佛得角塞浦路斯å‰å¸ƒæ多米尼加共和國厄瓜多爾厄立特里亞埃塞俄比亞加蓬格林ç´é”格魯å‰äºž" + + "加ç´å²¡æ¯”亞å—ä½æ²»äºžå³¶èˆ‡å—æ¡‘å¨å¥‡ç¾¤å³¶å±åœ°é¦¬æ‹‰å¹¾å…§äºžæ¯”紹圭亞那洪都拉斯克羅地亞馬æ©å³¶è‹±å±¬å°åº¦æ´‹é ˜åœŸæ„大利肯雅科摩羅è–基茨和尼維斯è€æ’¾è–盧" + + "西亞列支敦士登利比里亞èŠç´¢æ‰˜é»‘山馬里毛里塔尼亞蒙特塞拉特馬耳他毛里裘斯馬爾代夫馬拉維莫桑比克尼日爾尼日利亞瑙魯阿曼法屬波利尼西亞巴布" + + "亞新幾內亞皮特凱æ©å³¶å¡å¡”爾盧旺é”沙特阿拉伯所羅門群島塞舌爾斯洛文尼亞斯瓦爾巴特群島åŠæšé¦¬å»¶å³¶å¡žæ‹‰åˆ©æ˜‚索馬里蘇里å—è–多美和普林西比斯å¨" + + "士蘭特克斯和凱科斯群島ä¹å¾—法屬å—部地å€å¤šå“¥å…±å’Œåœ‹æ¹¯åŠ åƒé‡Œé”和多巴哥圖瓦盧å¦æ¡‘尼亞è–文森特和格林ç´ä¸æ–¯è‹±å±¬ç¶­çˆ¾äº¬ç¾¤å³¶ç¾Žå±¬ç¶­çˆ¾äº¬ç¾¤å³¶ç“¦åŠª" + + "阿圖也門贊比亞津巴布韋中美洲加勒比波利尼西亞", + []uint16{ // 282 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0018, 0x0018, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x0036, + 0x0036, 0x0042, 0x0060, 0x006c, 0x006c, 0x006c, 0x007b, 0x007b, + 0x007b, 0x0084, 0x008a, 0x0099, 0x0099, 0x0099, 0x0099, 0x0099, + 0x0099, 0x0099, 0x0099, 0x00a5, 0x00b1, 0x00b1, 0x00ba, 0x00ba, + 0x00c9, 0x00db, 0x00db, 0x00ed, 0x00ed, 0x00f9, 0x00f9, 0x00f9, + 0x00f9, 0x00f9, 0x00f9, 0x0108, 0x0117, 0x0117, 0x0120, 0x0120, + 0x0120, 0x012c, 0x012c, 0x012c, 0x012c, 0x0135, 0x0135, 0x0135, + // Entry 40 - 7F + 0x014a, 0x014a, 0x014a, 0x0156, 0x0156, 0x0156, 0x0156, 0x0165, + 0x0165, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, + 0x0174, 0x017a, 0x017a, 0x0186, 0x0192, 0x0192, 0x0192, 0x0198, + 0x0198, 0x0198, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01a1, 0x01c5, + 0x01d1, 0x01d1, 0x01e0, 0x01e9, 0x01e9, 0x01e9, 0x01f5, 0x0201, + 0x0201, 0x0201, 0x0201, 0x0201, 0x0201, 0x0201, 0x020a, 0x020a, + 0x021f, 0x021f, 0x021f, 0x021f, 0x0228, 0x0228, 0x0228, 0x0228, + 0x0228, 0x022e, 0x022e, 0x022e, 0x022e, 0x0237, 0x024c, 0x024c, + // Entry 80 - BF + 0x024c, 0x024c, 0x024c, 0x024c, 0x0252, 0x0252, 0x025e, 0x026d, + 0x026d, 0x0279, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, + 0x0282, 0x0282, 0x0288, 0x0288, 0x0288, 0x0288, 0x0288, 0x028e, + 0x028e, 0x028e, 0x028e, 0x028e, 0x028e, 0x029d, 0x02ac, 0x02b5, + 0x02c1, 0x02cd, 0x02d6, 0x02d6, 0x02d6, 0x02e2, 0x02e2, 0x02e2, + 0x02eb, 0x02eb, 0x02f7, 0x02f7, 0x02f7, 0x02f7, 0x02f7, 0x02fd, + 0x02fd, 0x02fd, 0x0303, 0x0303, 0x0303, 0x0318, 0x032d, 0x032d, + 0x032d, 0x032d, 0x032d, 0x033c, 0x033c, 0x033c, 0x033c, 0x033c, + // Entry C0 - FF + 0x033c, 0x0345, 0x0345, 0x0345, 0x0345, 0x0345, 0x0345, 0x034e, + 0x035d, 0x036c, 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x0384, + 0x03a8, 0x03a8, 0x03b4, 0x03b4, 0x03b4, 0x03bd, 0x03c6, 0x03c6, + 0x03de, 0x03de, 0x03de, 0x03de, 0x03ea, 0x03ea, 0x0405, 0x040b, + 0x041d, 0x042c, 0x042c, 0x042c, 0x042c, 0x042c, 0x042c, 0x042c, + 0x0432, 0x0432, 0x0447, 0x0450, 0x0450, 0x045c, 0x045c, 0x045c, + 0x045c, 0x045c, 0x045c, 0x045c, 0x045c, 0x047a, 0x047a, 0x048f, + 0x04a4, 0x04a4, 0x04b0, 0x04b0, 0x04b0, 0x04b0, 0x04b6, 0x04b6, + // Entry 100 - 13F + 0x04b6, 0x04bf, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, 0x04cb, + 0x04cb, 0x04cb, 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04d4, 0x04d4, + 0x04d4, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, 0x04dd, + 0x04dd, 0x04ec, + }, + }, + { // zu + zuRegionStr, + zuRegionIdx, + }, +} + +var afRegionStr string = "" + // Size: 3003 bytes + "AscensioneilandAndorraVerenigde Arabiese EmirateAfganistanAntigua en Bar" + + "budaAnguillaAlbaniëArmeniëAngolaAntarktikaArgentiniëAmerikaans-SamoaOost" + + "enrykAustraliëArubaÃ…landeilandeAzerbeidjanBosnië en HerzegowinaBarbadosB" + + "angladesjBelgiëBurkina FasoBulgaryeBahreinBurundiBeninSint BarthélemyBer" + + "mudaBroeneiBoliviëKaribiese NederlandBrasiliëBahamasBhoetanBouvet-eiland" + + "BotswanaBelarusBelizeKanadaKokos-eilandeDemokratiese Republiek van die K" + + "ongoSentraal-Afrikaanse RepubliekKongo - BrazzavilleSwitserlandIvoorkusC" + + "ookeilandeChiliKameroenSjinaColombiëClippertoneilandCosta RicaKubaKaap V" + + "erdeCuraçaoKerseilandSiprusTjeggiese RepubliekDuitslandDiego GarciaDjibo" + + "etiDenemarkeDominicaDominikaanse RepubliekAlgeriëCeuta en MelillaEcuador" + + "EstlandEgipteWes-SaharaEritreaSpanjeEthiopiëEuropese UnieFinlandFidjiFal" + + "klandeilandeMikronesiëFaroëreilandeFrankrykGaboenVerenigde KoninkrykGren" + + "adaGeorgiëFrans-GuyanaGuernseyGhanaGibraltarGroenlandGambiëGuineeGuadelo" + + "upeEkwatoriaal-GuineeGriekelandSuid-Georgië en die Suidelike Sandwicheil" + + "andeGuatemalaGuamGuinee-BissauGuyanaHongkong SAS SjinaHeard- en McDonald" + + "eilandeHondurasKroasiëHaïtiHongaryeKanariese EilandeIndonesiëIerlandIsra" + + "elEiland ManIndiëBrits-Indiese OseaangebiedIrakIranYslandItaliëJerseyJam" + + "aikaJordaniëJapanKeniaKirgisiëKambodjaKiribatiComoreSt. Kitts en NevisNo" + + "ord-KoreaSuid-KoreaKoeweitKaaimanseilandeKazakstanLaosLibanonSt. LuciaLi" + + "echtensteinSri LankaLiberiëLesothoLitaueLuxemburgLetlandLibiëMarokkoMona" + + "coMoldowaMontenegroSt. MartinMadagaskarMarshalleilandeMacedoniëMaliMianm" + + "ar (Birma)MongoliëMacau SAS SjinaNoord-Mariane-eilandeMartiniqueMauritan" + + "iëMontserratMaltaMauritiusMalediveMalawiMeksikoMaleisiëMosambiekNamibiëN" + + "ieu-KaledoniëNigerNorfolkeilandNigeriëNicaraguaNederlandNoorweëNepalNaur" + + "uNiueNieu-SeelandOmanPanamaPeruFrans-PolinesiëPapoea-Nieu-GuineeFilippyn" + + "ePakistanPoleSt. Pierre en MiquelonPitcairneilandePuerto RicoPalestynse " + + "gebiedePortugalPalauParaguayKatarOmliggende OseaniëRéunionRoemeniëSerwië" + + "RuslandRwandaSaoedi-ArabiëSalomonseilandeSeychelleSoedanSwedeSingapoerSi" + + "nt HelenaSloweniëSvalbard en Jan MayenSlowakyeSierra LeoneSan MarinoSene" + + "galSomaliëSurinameSuid-SoedanSão Tomé en PríncipeEl SalvadorSint Maarten" + + "SiriëSwazilandTristan da CunhaTurks- en CaicoseilandeTsjadFranse Suideli" + + "ke GebiedeTogoThailandTadjikistanTokelauOos-TimorTurkmeniëTunisiëTongaTu" + + "rkyeTrinidad en TobagoTuvaluTaiwanTanzaniëOekraïneUgandaVS klein omligge" + + "nde eilandeVerenigde State van AmerikaUruguayOesbekistanVatikaanstadSt. " + + "Vincent en die GrenadineVenezuelaBritse Maagde-eilandeAmerikaanse Maagde" + + "-eilandeViëtnamVanuatuWallis en FutunaSamoaKosovoJemenMayotteSuid-Afrika" + + "ZambiëZimbabweOnbekende gebiedWêreldAfrikaNoord-AmerikaSuid-AmerikaOsean" + + "iëWes-AfrikaSentraal-AmerikaOos-AfrikaNoord-AfrikaMidde-AfrikaSuider-Afr" + + "ikaAmerikasNoordelike AmerikaKaribiesOos-AsiëSuid-AsiëSuidoos-AsiëSuid-E" + + "uropaAustralasiëMelanesiëMikronesiese streekPolinesiëAsiëSentraal-AsiëWe" + + "s-AsiëEuropaOos-EuropaNoord-EuropaWes-EuropaLatyns-Amerika" + +var afRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0016, 0x0030, 0x003a, 0x004c, 0x0054, 0x005c, + 0x0064, 0x006a, 0x0074, 0x007f, 0x008f, 0x0098, 0x00a2, 0x00a7, + 0x00b4, 0x00bf, 0x00d5, 0x00dd, 0x00e7, 0x00ee, 0x00fa, 0x0102, + 0x0109, 0x0110, 0x0115, 0x0125, 0x012c, 0x0133, 0x013b, 0x014e, + 0x0157, 0x015e, 0x0165, 0x0172, 0x017a, 0x0181, 0x0187, 0x018d, + 0x019a, 0x01be, 0x01db, 0x01ee, 0x01f9, 0x0201, 0x020c, 0x0211, + 0x0219, 0x021e, 0x0227, 0x0237, 0x0241, 0x0245, 0x024f, 0x0257, + 0x0261, 0x0267, 0x027a, 0x0283, 0x028f, 0x0297, 0x02a0, 0x02a8, + // Entry 40 - 7F + 0x02be, 0x02c6, 0x02d6, 0x02dd, 0x02e4, 0x02ea, 0x02f4, 0x02fb, + 0x0301, 0x030a, 0x0317, 0x031e, 0x0323, 0x0332, 0x033d, 0x034b, + 0x0353, 0x0359, 0x036c, 0x0373, 0x037b, 0x0387, 0x038f, 0x0394, + 0x039d, 0x03a6, 0x03ad, 0x03b3, 0x03bd, 0x03cf, 0x03d9, 0x0407, + 0x0410, 0x0414, 0x0421, 0x0427, 0x0439, 0x0452, 0x045a, 0x0462, + 0x0468, 0x0470, 0x0481, 0x048b, 0x0492, 0x0498, 0x04a2, 0x04a8, + 0x04c2, 0x04c6, 0x04ca, 0x04d0, 0x04d7, 0x04dd, 0x04e4, 0x04ed, + 0x04f2, 0x04f7, 0x0500, 0x0508, 0x0510, 0x0516, 0x0528, 0x0533, + // Entry 80 - BF + 0x053d, 0x0544, 0x0553, 0x055c, 0x0560, 0x0567, 0x0570, 0x057d, + 0x0586, 0x058e, 0x0595, 0x059b, 0x05a4, 0x05ab, 0x05b1, 0x05b8, + 0x05be, 0x05c5, 0x05cf, 0x05d9, 0x05e3, 0x05f2, 0x05fc, 0x0600, + 0x060f, 0x0618, 0x0627, 0x063c, 0x0646, 0x0651, 0x065b, 0x0660, + 0x0669, 0x0671, 0x0677, 0x067e, 0x0687, 0x0690, 0x0698, 0x06a7, + 0x06ac, 0x06b9, 0x06c1, 0x06ca, 0x06d3, 0x06db, 0x06e0, 0x06e5, + 0x06e9, 0x06f5, 0x06f9, 0x06ff, 0x0703, 0x0713, 0x0725, 0x072e, + 0x0736, 0x073a, 0x0750, 0x075f, 0x076a, 0x077c, 0x0784, 0x0789, + // Entry C0 - FF + 0x0791, 0x0796, 0x07a9, 0x07b1, 0x07ba, 0x07c1, 0x07c8, 0x07ce, + 0x07dc, 0x07eb, 0x07f4, 0x07fa, 0x07ff, 0x0808, 0x0813, 0x081c, + 0x0831, 0x0839, 0x0845, 0x084f, 0x0856, 0x085e, 0x0866, 0x0871, + 0x0888, 0x0893, 0x089f, 0x08a5, 0x08ae, 0x08be, 0x08d5, 0x08da, + 0x08f2, 0x08f6, 0x08fe, 0x0909, 0x0910, 0x0919, 0x0923, 0x092b, + 0x0930, 0x0936, 0x0948, 0x094e, 0x0954, 0x095d, 0x0966, 0x096c, + 0x0987, 0x09a2, 0x09a9, 0x09b4, 0x09c0, 0x09dc, 0x09e5, 0x09fa, + 0x0a14, 0x0a1c, 0x0a23, 0x0a33, 0x0a38, 0x0a3e, 0x0a43, 0x0a4a, + // Entry 100 - 13F + 0x0a55, 0x0a5c, 0x0a64, 0x0a74, 0x0a7b, 0x0a81, 0x0a8e, 0x0a9a, + 0x0aa2, 0x0aac, 0x0abc, 0x0ac6, 0x0ad2, 0x0ade, 0x0aeb, 0x0af3, + 0x0b05, 0x0b0d, 0x0b16, 0x0b20, 0x0b2d, 0x0b38, 0x0b44, 0x0b4e, + 0x0b61, 0x0b6b, 0x0b70, 0x0b7e, 0x0b87, 0x0b8d, 0x0b97, 0x0ba3, + 0x0bad, 0x0bbb, +} // Size: 604 bytes + +var amRegionStr string = "" + // Size: 5299 bytes + "አሴንሽን ደሴትአንዶራየተባበሩት አረብ ኤáˆáˆ¬á‰µáˆµáŠ áጋኒስታንአንቲጓ እና ባሩዳአንጉኢላአáˆá‰£áŠ’ያአርሜኒያአንáŒáˆ‹áŠ áŠ•á‰³áˆ­áŠ­á‰²" + + "ካአርጀንቲናየአሜሪካ ሳሞአኦስትሪያአá‹áˆµá‰µáˆ«áˆá‹«áŠ áˆ©á‰£á‹¨áŠ áˆ‹áŠ•á‹µ ደሴቶችአዘርባጃንቦስኒያ እና ሄርዞጎቪኒያባርቤዶስባንáŒ" + + "ላዲሽቤáˆáŒ„áˆá‰¡áˆ­áŠªáŠ“ á‹áˆ¶á‰¡áˆáŒŒáˆªá‹«á‰£áˆ…ሬንብሩንዲቤኒንቅዱስ በርቴሎሜቤርሙዳብሩኒቦሊቪያየካሪቢያን ኔዘርላንድስብራዚáˆá‰£áˆƒ" + + "ማስቡህታንቡቬት ደሴትቦትስዋናቤላሩስቤሊዘካናዳኮኮስ(ኬሊንáŒ) ደሴቶችኮንጎ-ኪንሻሳየመካከለኛዠአáሪካ ሪáብሊክኮን" + + "ጎ ብራዛቪáˆáˆµá‹Šá‹˜áˆ­áˆ‹áŠ•á‹µáŠ®á‰µ ዲቯርኩክ ደሴቶችቺሊካሜሩንቻይናኮሎáˆá‰¢á‹«áŠ­áˆŠáርቶን ደሴትኮስታ ሪካኩባኬᕠቬርዴኩራሳዎየ" + + "ገና ደሴትሳይá•áˆ¨áˆµá‰¼áŠ­ ሪá‘ብሊክጀርመንዲዬጎ ጋርሺያጂቡቲዴንማርክዶሚኒካዶሚኒክ ሪá‘ብሊክአáˆáŒ„ሪያሴኡታና ሜሊላኢኳዶር" + + "ኤስቶኒያáŒá‰¥áŒ½áˆá‹•áˆ«á‰£á‹Š ሳህራኤርትራስá”ንኢትዮጵያየአá‹áˆ®á“ ህብረትáŠáŠ•áˆ‹áŠ•á‹µáŠáŒ‚የáŽáŠ­áˆ‹áŠ•á‹µ ደሴቶችሚክሮኔዢያየá‹áˆ® ደሴቶ" + + "ችáˆáˆ¨áŠ•áˆ³á‹­áŒ‹á‰¦áŠ•áŠ¥áŠ•áŒáˆŠá‹áŒáˆ¬áŠ“ዳጆርጂያየáˆáˆ¨áŠ•áˆ³á‹­ ጉዊአናጉርáŠáˆ²áŒ‹áŠ“ጂብራáˆá‰°áˆ­áŒáˆªáŠ•áˆ‹áŠ•á‹µáŒ‹áˆá‰¢á‹«áŒŠáŠ’ጉዋደሉá•áŠ¢áŠ³á‰¶áˆªá‹«áˆ ጊ" + + "ኒáŒáˆªáŠ­á‹°á‰¡á‰¥ ጆርጂያ እና የደቡብ ሳንድዊች ደሴቶችጉዋቲማላጉዋáˆáŒŠáŠ’ ቢሳኦጉያናሆንጠኮንጠSAR ቻይናኽርድ ደሴቶ" + + "ችና ማክዶናáˆá‹µ ደሴቶችሆንዱራስክሮኤሽያሀይቲሀንጋሪየካናሪ ደሴቶችኢንዶኔዢያአየርላንድእስራኤáˆáŠ á‹­áˆ ኦá ማንህንድየ" + + "ብሪታኒያ ህንድ á‹á‰‚ያኖስ áŒá‹›á‰µáŠ¢áˆ«á‰…ኢራንአይስላንድጣሊያንጀርሲጃማይካጆርዳንጃá“ንኬንያኪርጊስታንካáˆá‰¦á‹²á‹«áŠªáˆªá‰£á‰²áŠ®áˆžáˆ®" + + "ስቅዱስ ኪትስ እና ኔቪስሰሜን ኮሪያደቡብ ኮሪያክዌትካይማን ደሴቶችካዛኪስታንላኦስሊባኖስሴንት ሉቺያሊችተንስታይንሲ" + + "ሪላንካላይቤሪያሌሶቶሊቱዌኒያሉክሰáˆá‰ áˆ­áŒáˆ‹á‰µá‰ªá‹«áˆŠá‰¢á‹«áˆžáˆ®áŠ®áˆžáŠ“ኮሞáˆá‹¶á‰«áˆžáŠ•á‰°áŠ”áŒáˆ®áˆ´áŠ•á‰µ ማርቲንማዳጋስካርማርሻሠአይላን" + + "ድመቄዶንያማሊማይናማር(በርማ)ሞንጎሊያማካኡ áˆá‹© የአስተዳደር ክáˆáˆ ቻይናየሰሜናዊ ማሪያና ደሴቶችማርቲኒክሞሪቴኒያ" + + "ሞንትሴራትማáˆá‰³áˆžáˆªáˆ¸áˆµáˆ›áˆá‹²á‰­áˆµáˆ›áˆ‹á‹ŠáˆœáŠ­áˆ²áŠ®áˆ›áˆŒá‹¢á‹«áˆžá‹›áˆá‰¢áŠ­áŠ“ሚቢያኒዠካሌዶኒያኒጀርኖርáŽáˆáŠ­ ደሴትናይጄሪያኒካራጓኔዘር" + + "ላንድኖርዌይኔá“áˆáŠ“ኡሩኒኡይኒዠዚላንድኦማንá“ናማá”ሩየáˆáˆ¨áŠ•áˆ³á‹­ á–ሊኔዢያá“á‘á‹‹ ኒዠጊኒáŠáˆŠá’ንስá“ኪስታንá–ላንድቅዱስ " + + "á’ዬር እና ሚኩኤሎንá’ትካኢርን አይስላንድá–ርታ ሪኮየááˆáˆµáŒ¤áˆ áŒá‹›á‰µá–ርቱጋáˆá“ላá‹á“ራጓይኳታርአá‹á‰µáˆ‹á‹­áŠ•áŒ ኦሽንያሪዩ" + + "ኒየንሮሜኒያሰርብያራሽያሩዋንዳሳá‹á‹µáŠ áˆ¨á‰¢á‹«áˆ°áˆŽáˆžáŠ• ደሴትሲሼáˆáˆµáˆ±á‹³áŠ•áˆµá‹Šá‹µáŠ•áˆ²áŠ•áŒ‹á–ርሴንት ሄለናስሎቬኒያስቫáˆá‰£áˆ­á‹µ እና" + + " ጃን ማየንስሎቫኪያሴራሊዮንሳን ማሪኖሴኔጋáˆáˆ±áˆ›áˆŒáˆ±áˆªáŠ“áˆá‹°á‰¡á‰¥ ሱዳንሳኦ ቶሜ እና á•áˆªáŠ•áˆ²á”ኤሠሳáˆá‰«á‹¶áˆ­áˆ²áŠ•á‰µ ማርተንሲ" + + "ሪያሱዋዚላንድትሪስታን ዲ ኩንሃየቱርኮችና የካኢኮስ ደሴቶችቻድየáˆáˆ¨áŠ•áˆ³á‹­ ደቡባዊ áŒá‹›á‰¶á‰½á‰¶áŒá‰³á‹­áˆ‹áŠ•á‹µá‰³áŒƒáŠªáˆµá‰³áŠ•á‰¶áŠ­áˆ‹" + + "á‹áˆáˆµáˆ«á‰… ሌስትቱርክሜኒስታንቱኒዚያቶንጋቱርክትሪናዳድ እና ቶቤጎቱቫሉታይዋንታንዛኒያዩክሬንዩጋንዳየዩ ኤስ ጠረá ላ" + + "á‹­ ያሉ ደሴቶችዩናይትድ ስቴትስኡራጓይኡá‹á‰¤áŠªáˆµá‰³áŠ•á‰«á‰²áŠ«áŠ• ከተማቅዱስ ቪንሴንት እና áŒáˆ¬áŠ“ዲንስቬንዙዌላየእንáŒáˆŠá‹ ቨ" + + "ርጂን ደሴቶችየአሜሪካ ቨርጂን ደሴቶችቬትናáˆá‰«áŠ‘አቱዋሊስ እና á‰á‰±áŠ“ ደሴቶችሳሞአኮሶቮየመንሜይኦቴደቡብ አáሪካዛáˆá‰¢" + + "á‹«á‹šáˆá‰§á‰¤á‹«áˆá‰³á‹ˆá‰€ ክáˆáˆá‹“ለáˆáŠ áሪካሰሜን አሜሪካደቡብ አሜሪካኦሽኒአáˆáˆµáˆ«á‰ƒá‹Š አáሪካመካከለኛዠአሜሪካáˆá‹•áˆ«á‰£á‹Š አá" + + "ሪካሰሜናዊ አáሪካመካከለኛዠአáሪካደቡባዊ አáሪካአሜሪካሰሜናዊ አሜሪካካሪቢያንáˆá‹•áˆ«á‰£á‹Š እሲያደቡባዊ እሲያáˆá‹•áˆ«á‰£" + + "á‹Š ደቡብ እሲያደቡባዊ አá‹áˆ®á“አá‹áˆµá‰µáˆ«áˆŠá‹«áˆœáˆ‹áŠ”ዥያየማይክሮኔዥያን ክáˆáˆá–ሊኔዥያእሲያመካከለኛዠእሲያáˆáˆµáˆ«á‰ƒá‹Š እሲያ" + + "አá‹áˆ®á“áˆá‹•áˆ«á‰£á‹Š አá‹áˆ®á“ሰሜናዊ አá‹áˆ®á“áˆáˆµáˆ«á‰ƒá‹Š አá‹áˆ®á“ላቲን አሜሪካ" + +var amRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0019, 0x0025, 0x0051, 0x0066, 0x0083, 0x0092, 0x00a1, + 0x00b0, 0x00bc, 0x00d1, 0x00e3, 0x00fc, 0x010b, 0x0120, 0x0129, + 0x0145, 0x0157, 0x0180, 0x018f, 0x01a1, 0x01ad, 0x01c0, 0x01cf, + 0x01db, 0x01e7, 0x01f0, 0x0209, 0x0215, 0x021e, 0x022a, 0x0252, + 0x025e, 0x026a, 0x0276, 0x0289, 0x0298, 0x02a4, 0x02ad, 0x02b6, + 0x02da, 0x02f0, 0x0322, 0x033b, 0x0350, 0x0360, 0x0373, 0x0379, + 0x0385, 0x038e, 0x039d, 0x03b9, 0x03c9, 0x03cf, 0x03df, 0x03eb, + 0x03fe, 0x040d, 0x0423, 0x042f, 0x0445, 0x044e, 0x045d, 0x0469, + // Entry 40 - 7F + 0x0485, 0x0494, 0x04aa, 0x04b6, 0x04c5, 0x04ce, 0x04e7, 0x04f3, + 0x04fc, 0x050b, 0x0527, 0x0536, 0x053c, 0x055b, 0x056d, 0x0583, + 0x0592, 0x059b, 0x05aa, 0x05b6, 0x05c2, 0x05e1, 0x05ed, 0x05f3, + 0x0605, 0x0617, 0x0623, 0x0629, 0x0638, 0x0651, 0x065a, 0x06a1, + 0x06b0, 0x06b9, 0x06c9, 0x06d2, 0x06f3, 0x072c, 0x073b, 0x074a, + 0x0753, 0x075f, 0x0778, 0x078a, 0x079c, 0x07ab, 0x07c2, 0x07cb, + 0x0801, 0x080a, 0x0813, 0x0825, 0x0831, 0x083a, 0x0846, 0x0852, + 0x085b, 0x0864, 0x0876, 0x0885, 0x0891, 0x089d, 0x08c1, 0x08d4, + // Entry 80 - BF + 0x08e7, 0x08f0, 0x0909, 0x091b, 0x0924, 0x0930, 0x0943, 0x095b, + 0x096a, 0x0979, 0x0982, 0x0991, 0x09a6, 0x09b2, 0x09bb, 0x09c4, + 0x09cd, 0x09d9, 0x09eb, 0x0a01, 0x0a13, 0x0a2f, 0x0a3e, 0x0a44, + 0x0a5e, 0x0a6d, 0x0aa7, 0x0ad0, 0x0adf, 0x0aee, 0x0b00, 0x0b09, + 0x0b15, 0x0b24, 0x0b2d, 0x0b39, 0x0b45, 0x0b54, 0x0b60, 0x0b76, + 0x0b7f, 0x0b98, 0x0ba7, 0x0bb3, 0x0bc5, 0x0bd1, 0x0bda, 0x0be3, + 0x0bec, 0x0bff, 0x0c08, 0x0c11, 0x0c17, 0x0c39, 0x0c50, 0x0c5f, + 0x0c6e, 0x0c7a, 0x0ca4, 0x0cc9, 0x0cd9, 0x0cf5, 0x0d04, 0x0d0d, + // Entry C0 - FF + 0x0d19, 0x0d22, 0x0d44, 0x0d53, 0x0d5f, 0x0d6b, 0x0d74, 0x0d80, + 0x0d95, 0x0dab, 0x0db7, 0x0dc0, 0x0dcc, 0x0ddb, 0x0dee, 0x0dfd, + 0x0e27, 0x0e36, 0x0e45, 0x0e55, 0x0e61, 0x0e6a, 0x0e76, 0x0e89, + 0x0ead, 0x0ec3, 0x0ed9, 0x0ee2, 0x0ef4, 0x0f11, 0x0f40, 0x0f46, + 0x0f72, 0x0f78, 0x0f87, 0x0f99, 0x0fa5, 0x0fbb, 0x0fd3, 0x0fdf, + 0x0fe8, 0x0ff1, 0x1011, 0x101a, 0x1026, 0x1035, 0x1041, 0x104d, + 0x107f, 0x109b, 0x10a7, 0x10bc, 0x10d2, 0x1105, 0x1114, 0x1140, + 0x1169, 0x1175, 0x1181, 0x11a8, 0x11b1, 0x11ba, 0x11c3, 0x11cf, + // Entry 100 - 13F + 0x11e5, 0x11f1, 0x11fd, 0x1216, 0x121f, 0x122b, 0x1241, 0x1257, + 0x1263, 0x127f, 0x129e, 0x12ba, 0x12d3, 0x12f2, 0x130b, 0x1317, + 0x1330, 0x133f, 0x1358, 0x136e, 0x1391, 0x13aa, 0x13bf, 0x13ce, + 0x13f3, 0x1402, 0x140b, 0x1427, 0x1440, 0x144c, 0x1468, 0x1481, + 0x149d, 0x14b3, +} // Size: 604 bytes + +var arRegionStr string = "" + // Size: 5340 bytes + "جزيرة أسينشيونأندوراالإمارات العربية المتحدةأÙغانستانأنتيغوا وبربوداأنغو" + + "يلاألبانياأرمينياأنغولاأنتاركتيكاالأرجنتينساموا الأمريكيةالنمساأستراليا" + + "أروباجزر آلاندأذربيجانالبوسنة والهرسكبربادوسبنجلاديشبلجيكابوركينا Ùاسوب" + + "لغارياالبحرينبورونديبنينسان بارتليميبرمودابرونايبوليÙياهولندا الكاريبية" + + "البرازيلالبهامابوتانجزيرة بوÙيهبتسوانابيلاروسبليزكنداجزر كوكوس (كيلينغ)" + + "الكونغو - كينشاساجمهورية Ø£Ùريقيا الوسطىالكونغو - برازاÙيلسويسراساحل الع" + + "اججزر كوكتشيليالكاميرونالصينكولومبياجزيرة كليبيرتونكوستاريكاكوباالرأس ا" + + "لأخضركوراساوجزيرة الكريسماسقبرصجمهورية التشيكألمانيادييغو غارسياجيبوتيا" + + "لدانمركدومينيكاجمهورية الدومينيكالجزائرسيوتا وميليلاالإكوادورإستونيامصر" + + "الصحراء الغربيةإريترياإسبانياإثيوبياالاتحاد الأوروبيÙنلنداÙيجيجزر Ùوكلا" + + "ندميكرونيزياجزر ÙاروÙرنساالجابونالمملكة المتحدةغريناداجورجياغويانا الÙر" + + "نسيةغيرنزيغاناجبل طارقغرينلاندغامبياغينياغوادلوبغينيا الإستوائيةاليونان" + + "جورجيا الجنوبية وجزر ساندويتش الجنوبيةغواتيمالاغوامغينيا بيساوغياناهونغ" + + " كونغ الصينيةجزيرة هيرد وجزر ماكدونالدهندوراسكرواتياهايتيهنغارياجزر الكن" + + "اريإندونيسياأيرلنداإسرائيلجزيرة مانالهندالإقليم البريطاني ÙÙŠ المحيط اله" + + "نديالعراقإيرانأيسلنداإيطالياجيرسيجامايكاالأردناليابانكينياقرغيزستانكمبو" + + "دياكيريباتيجزر القمرسانت كيتس ونيÙيسكوريا الشماليةكوريا الجنوبيةالكويتج" + + "زر الكايمنكازاخستانلاوسلبنانسانت لوسياليختنشتاينسريلانكاليبيرياليسوتولي" + + "توانيالوكسمبورغلاتÙياليبياالمغربموناكومولداÙياالجبل الأسودسانت مارتنمدغ" + + "شقرجزر المارشالمقدونياماليميانمار -بورمامنغوليامكاو الصينية (منطقة إدار" + + "ية خاصة)جزر ماريانا الشماليةمارتينيكموريتانيامونتسراتمالطاموريشيوسجزر ا" + + "لمالديÙملاويالمكسيكماليزياموزمبيقناميبياكاليدونيا الجديدةالنيجرجزيرة نو" + + "رÙوكنيجيريانيكاراغواهولنداالنرويجنيبالناورونيوينيوزيلنداعÙمانبنمابيروبو" + + "لينيزيا الÙرنسيةبابوا غينيا الجديدةالÙلبينباكستانبولنداسانت بيير وميكول" + + "ونجزر بيتكيرنبورتوريكوالأراضي الÙلسطينيةالبرتغالبالاوباراغوايقطرأوقيانو" + + "سيا النائيةروينيونرومانياصربياروسياروانداالمملكة العربية السعوديةجزر سل" + + "يمانسيشلالسودانالسويدسنغاÙورةسانت هيلناسلوÙينياسÙالبارد وجان مايانسلوÙا" + + "كياسيراليونسان مارينوالسنغالالصومالسورينامجنوب السودانساو تومي وبرينسيب" + + "يالسلÙادورسينت مارتنسورياسوازيلاندتريستان دي كونهاجزر توركس وكايكوستشاد" + + "الأقاليم الجنوبية الÙرنسيةتوغوتايلاندطاجيكستانتوكيلوتيمور الشرقيةتركمان" + + "ستانتونستونغاتركياترينيداد وتوباغوتوÙالوتايوانتنزانياأوكرانياأوغنداجزر " + + "الولايات المتحدة النائيةالولايات المتحدةأورغوايأوزبكستانالÙاتيكانسانت Ù" + + "نسنت وغرنادينÙنزويلاجزر Ùرجين البريطانيةجزر Ùرجين الأمريكيةÙيتنامÙانوات" + + "وجزر والس ÙˆÙوتوناسامواكوسوÙواليمنمايوتجنوب Ø£Ùريقيازامبيازيمبابويمنطقة غ" + + "ير معروÙةالعالمأÙريقياأمريكا الشماليةأمريكا الجنوبيةأوقيانوسياغرب Ø£Ùريق" + + "ياأمريكا الوسطىشرق Ø£Ùريقياشمال Ø£Ùريقياوسط Ø£ÙريقياأÙريقيا الجنوبيةالأمري" + + "كتانشمال أمريكاالكاريبيشرق آسياجنوب آسياجنوب شرق آسياجنوب أوروباأسترالا" + + "سياميلانيزياالجزر الميكرونيزيةبولينيزياآسياوسط آسياغرب آسياأوروباشرق أو" + + "روباشمال أوروباغرب أوروباأمريكا اللاتينية" + +var arRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0027, 0x0055, 0x0067, 0x0084, 0x0092, 0x00a0, + 0x00ae, 0x00ba, 0x00ce, 0x00e0, 0x00fd, 0x0109, 0x0119, 0x0123, + 0x0134, 0x0144, 0x0161, 0x016f, 0x017f, 0x018b, 0x01a2, 0x01b0, + 0x01be, 0x01cc, 0x01d4, 0x01eb, 0x01f7, 0x0203, 0x0211, 0x0230, + 0x0240, 0x024e, 0x0258, 0x026d, 0x027b, 0x0289, 0x0291, 0x0299, + 0x02b9, 0x02d8, 0x0302, 0x0323, 0x032f, 0x0342, 0x034f, 0x0359, + 0x036b, 0x0375, 0x0385, 0x03a2, 0x03b4, 0x03bc, 0x03d3, 0x03e1, + 0x03fe, 0x0406, 0x0421, 0x042f, 0x0446, 0x0452, 0x0462, 0x0472, + // Entry 40 - 7F + 0x0493, 0x04a1, 0x04ba, 0x04cc, 0x04da, 0x04e0, 0x04fd, 0x050b, + 0x0519, 0x0527, 0x0546, 0x0552, 0x055a, 0x056f, 0x0583, 0x0592, + 0x059c, 0x05aa, 0x05c7, 0x05d5, 0x05e1, 0x05fe, 0x060a, 0x0612, + 0x0621, 0x0631, 0x063d, 0x0647, 0x0655, 0x0674, 0x0682, 0x06ca, + 0x06dc, 0x06e4, 0x06f9, 0x0703, 0x0723, 0x0752, 0x0760, 0x076e, + 0x0778, 0x0786, 0x079b, 0x07ad, 0x07bb, 0x07c9, 0x07da, 0x07e4, + 0x0824, 0x0830, 0x083a, 0x0848, 0x0856, 0x0860, 0x086e, 0x087a, + 0x0888, 0x0892, 0x08a4, 0x08b2, 0x08c2, 0x08d3, 0x08f1, 0x090c, + // Entry 80 - BF + 0x0927, 0x0933, 0x0948, 0x095a, 0x0962, 0x096c, 0x097f, 0x0993, + 0x09a3, 0x09b1, 0x09bd, 0x09cd, 0x09df, 0x09eb, 0x09f5, 0x0a01, + 0x0a0d, 0x0a1d, 0x0a34, 0x0a47, 0x0a53, 0x0a6a, 0x0a78, 0x0a80, + 0x0a9a, 0x0aa8, 0x0ae2, 0x0b08, 0x0b18, 0x0b2a, 0x0b3a, 0x0b44, + 0x0b54, 0x0b6b, 0x0b75, 0x0b83, 0x0b91, 0x0b9f, 0x0bad, 0x0bce, + 0x0bda, 0x0bf1, 0x0bff, 0x0c11, 0x0c1d, 0x0c2b, 0x0c35, 0x0c3f, + 0x0c47, 0x0c59, 0x0c63, 0x0c6b, 0x0c73, 0x0c96, 0x0cba, 0x0cc8, + 0x0cd6, 0x0ce2, 0x0d04, 0x0d19, 0x0d2b, 0x0d4e, 0x0d5e, 0x0d68, + // Entry C0 - FF + 0x0d78, 0x0d7e, 0x0da1, 0x0daf, 0x0dbd, 0x0dc7, 0x0dd1, 0x0ddd, + 0x0e0b, 0x0e1e, 0x0e26, 0x0e34, 0x0e40, 0x0e50, 0x0e63, 0x0e73, + 0x0e97, 0x0ea7, 0x0eb7, 0x0eca, 0x0ed8, 0x0ee6, 0x0ef4, 0x0f0b, + 0x0f2d, 0x0f3f, 0x0f52, 0x0f5c, 0x0f6e, 0x0f8c, 0x0fac, 0x0fb4, + 0x0fe6, 0x0fee, 0x0ffc, 0x100e, 0x101a, 0x1033, 0x1047, 0x104f, + 0x1059, 0x1063, 0x1082, 0x108e, 0x109a, 0x10a8, 0x10b8, 0x10c4, + 0x10f9, 0x1118, 0x1126, 0x1138, 0x114a, 0x116e, 0x117c, 0x11a2, + 0x11c6, 0x11d2, 0x11e0, 0x11fe, 0x1208, 0x1214, 0x121e, 0x1228, + // Entry 100 - 13F + 0x123f, 0x124b, 0x125b, 0x1279, 0x1285, 0x1293, 0x12b0, 0x12cd, + 0x12e1, 0x12f6, 0x130f, 0x1324, 0x133b, 0x1350, 0x136f, 0x1383, + 0x1398, 0x13a8, 0x13b7, 0x13c8, 0x13e0, 0x13f5, 0x1409, 0x141b, + 0x143e, 0x1450, 0x1458, 0x1467, 0x1476, 0x1482, 0x1495, 0x14aa, + 0x14bd, 0x14dc, +} // Size: 604 bytes + +var azRegionStr string = "" + // Size: 3177 bytes + "YüksÉ™liÅŸ AdasıAndorraBirləşmiÅŸ ÆrÉ™b ÆmirliklÉ™riÆfqanıstanAntiqua vÉ™ Barb" + + "udaAngilaAlbaniyaErmÉ™nistanAnqolaAntarktikaArgentinaAmerika SamoasıAvstr" + + "iyaAvstraliyaArubaAland AdalarıAzÉ™rbaycanBosniya vÉ™ HersoqovinaBarbadosB" + + "anqladeÅŸBelçikaBurkina FasoBolqariyaBÉ™hreynBurundiBeninSan BartolomeyBer" + + "mudaBruneyBoliviyaKarib NiderlandıBraziliyaBaham AdalarıButanBuve AdasıB" + + "otsvanaBelarusBelizKanadaKokos AdalarıKonqo - KinÅŸasaMÉ™rkÉ™zi Afrika Resp" + + "ublikasıKonqo - BrazzavilÄ°sveçrÉ™Fil DiÅŸi SahiliKuk AdalarıÇiliKamerunÇin" + + "KolumbiyaKlipperton AdasıKosta RikaKubaKape VerdeKurasaoMilad AdasıKiprÇ" + + "exiyaAlmaniyaDieqo QarsiyaCibutiDanimarkaDominikaDominikan RespublikasıÆ" + + "lcÉ™zairSeuta vÉ™ MelilyaEkvadorEstoniyaMisirQÉ™rbi SaharaEritreyaÄ°spaniyaE" + + "fiopiyaAvropa BirliyiFinlandiyaFiciFolklend AdalarıMikroneziyaFarer Adal" + + "arıFransaQabonBirləşmiÅŸ KrallıqQrenadaGürcüstanFransız QviyanasıGernseyQ" + + "anaGibraltarQrenlandiyaQambiyaQvineyaQvadelupaEkvatorial QvineyaYunanıst" + + "anCÉ™nubi Corciya vÉ™ CÉ™nubi Sendviç AdalarıQvatemalaQuamQvineya-BisauQviy" + + "anaHonq Konq Xüsusi Ä°nzibati Ærazi ÇinHerd vÉ™ Mak Donald AdalarıHonduras" + + "XorvatiyaHaitiMacarıstanKanar AdalarıİndoneziyaÄ°rlandiyaÄ°srailMen AdasıH" + + "indistanBritaniya Hind Okeanı ÆrazisiÄ°raqÄ°ranÄ°slandiyaÄ°taliyaCersiYamayk" + + "aÄ°ordaniyaYaponiyaKeniyaQırğızıstanKambocaKiribatiKomor AdalarıSan Kits " + + "vÉ™ NevisÅžimali KoreyaCÉ™nubi KoreyaKüveytKayman AdalarıQazaxıstanLaosLiva" + + "nSan LüsiyaLixtenÅŸteynÅžri LankaLiberiyaLesotoLitvaLüksemburqLatviyaLiviy" + + "aMÉ™rakeÅŸMonakoMoldovaMonteneqroSan MartinMadaqaskarMarÅŸal AdalarıMakedon" + + "iyaMaliMyanmaMonqoliyaMakao Xüsusi Ä°nzibati Ærazi ÇinÅžimali Mariana Adal" + + "arıMartinikMavritaniyaMonseratMaltaMavrikiMaldiv AdalarıMalaviMeksikaMal" + + "ayziyaMozambikNamibiyaYeni KaledoniyaNigerNorfolk AdasıNigeriyaNikaraqua" + + "NiderlandNorveçNepalNauruNiueYeni ZelandiyaOmanPanamaPeruFransız Polinez" + + "iyasıPapua Yeni QvineyaFilippinPakistanPolÅŸaSan Pier vÉ™ MikelonPitkern A" + + "dalarıPuerto RikoFÉ™lÉ™stin ÆrazilÉ™riPortuqalPalauParaqvayQatarUzaq Okeani" + + "yaReunionRumıniyaSerbiyaRusiyaRuandaSÉ™udiyyÉ™ ÆrÉ™bistanıSolomon AdalarıSe" + + "yÅŸel AdalarıSudanÄ°sveçSinqapurMüqÉ™ddÉ™s YelenaSloveniyaSvalbard vÉ™ Yan Ma" + + "yenSlovakiyaSiera LeonSan MarinoSeneqalSomaliSurinamCÉ™nubi SudanSao Tome" + + " vÉ™ PrinsipSalvadorSint MaartenSuriyaSvazilendTristan da KunyaTurks vÉ™ K" + + "aikos AdalarıÇadFransa CÉ™nub ÆrazilÉ™riToqoTaylandTacikistanTokelauŞərqi " + + "TimorTürkmÉ™nistanTunisTonqaTürkiyaTrinidad vÉ™ TobaqoTuvaluTayvanTanzaniy" + + "aUkraynaUqandaBirləşmiÅŸ Åžtatlar Uzaq AdalarAmerika BirləşmiÅŸ ÅžtatlarıUru" + + "qvayÖzbÉ™kistanVatikanSan Vinsent vÉ™ QrenadaVenesuelaBritaniya Vircin Ada" + + "larıABÅž Vircin AdalarıVyetnamVanuatuUolis vÉ™ FutunaSamoaKosovoYÉ™mÉ™nMayot" + + "CÉ™nub AfrikaZambiyaZimbabveNamÉ™lum RegionDünyaAfrikaÅžimali AmerikaCÉ™nubi" + + " AmerikaOkeaniyaQÉ™rbi AfrikaMÉ™rkÉ™zi AmerikaŞərqi AfrikaÅžimali AfrikaMÉ™rk" + + "É™zi AfrikaCÉ™nubi AfrikaAmerikalarÅžimal AmerikasıKaribŞərqi AsiyaCÉ™nubi " + + "AsiyaCÉ™nub-Şərqi AsiyaCÉ™nubi AvropaAvstralaziyaMelaneziyaMikroneziya Reg" + + "ionuPolineziyaAsiyaMÉ™rkÉ™zi AsiyaQÉ™rbi AsiyaAvropaŞərqi AvropaÅžimali Avro" + + "paQÉ™rbi AvropaLatın Amerikası" + +var azRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x0019, 0x003a, 0x0046, 0x0059, 0x005f, 0x0067, + 0x0072, 0x0078, 0x0082, 0x008b, 0x009b, 0x00a3, 0x00ad, 0x00b2, + 0x00c0, 0x00cb, 0x00e2, 0x00ea, 0x00f4, 0x00fc, 0x0108, 0x0111, + 0x0119, 0x0120, 0x0125, 0x0133, 0x013a, 0x0140, 0x0148, 0x0159, + 0x0162, 0x0170, 0x0175, 0x0180, 0x0188, 0x018f, 0x0194, 0x019a, + 0x01a8, 0x01b8, 0x01d6, 0x01e7, 0x01f1, 0x0201, 0x020d, 0x0212, + 0x0219, 0x021d, 0x0226, 0x0237, 0x0241, 0x0245, 0x024f, 0x0256, + 0x0262, 0x0266, 0x026d, 0x0275, 0x0282, 0x0288, 0x0291, 0x0299, + // Entry 40 - 7F + 0x02b0, 0x02ba, 0x02cb, 0x02d2, 0x02da, 0x02df, 0x02ec, 0x02f4, + 0x02fd, 0x0305, 0x0313, 0x031d, 0x0321, 0x0332, 0x033d, 0x034b, + 0x0351, 0x0356, 0x036b, 0x0372, 0x037d, 0x0390, 0x0397, 0x039b, + 0x03a4, 0x03af, 0x03b6, 0x03bd, 0x03c6, 0x03d8, 0x03e3, 0x0410, + 0x0419, 0x041d, 0x042a, 0x0431, 0x0458, 0x0474, 0x047c, 0x0485, + 0x048a, 0x0495, 0x04a3, 0x04ae, 0x04b8, 0x04bf, 0x04c9, 0x04d2, + 0x04f1, 0x04f6, 0x04fb, 0x0505, 0x050d, 0x0512, 0x0519, 0x0523, + 0x052b, 0x0531, 0x0540, 0x0547, 0x054f, 0x055d, 0x056f, 0x057d, + // Entry 80 - BF + 0x058b, 0x0592, 0x05a1, 0x05ac, 0x05b0, 0x05b5, 0x05c0, 0x05cc, + 0x05d6, 0x05de, 0x05e4, 0x05e9, 0x05f4, 0x05fb, 0x0601, 0x060a, + 0x0610, 0x0617, 0x0621, 0x062b, 0x0635, 0x0645, 0x064f, 0x0653, + 0x0659, 0x0662, 0x0685, 0x069d, 0x06a5, 0x06b0, 0x06b8, 0x06bd, + 0x06c4, 0x06d3, 0x06d9, 0x06e0, 0x06e9, 0x06f1, 0x06f9, 0x0708, + 0x070d, 0x071b, 0x0723, 0x072c, 0x0735, 0x073c, 0x0741, 0x0746, + 0x074a, 0x0758, 0x075c, 0x0762, 0x0766, 0x077c, 0x078e, 0x0796, + 0x079e, 0x07a4, 0x07b8, 0x07c8, 0x07d3, 0x07e9, 0x07f1, 0x07f6, + // Entry C0 - FF + 0x07fe, 0x0803, 0x0810, 0x0817, 0x0820, 0x0827, 0x082d, 0x0833, + 0x084b, 0x085b, 0x086b, 0x0870, 0x0877, 0x087f, 0x0891, 0x089a, + 0x08b0, 0x08b9, 0x08c3, 0x08cd, 0x08d4, 0x08da, 0x08e1, 0x08ee, + 0x0902, 0x090a, 0x0916, 0x091c, 0x0925, 0x0935, 0x094e, 0x0952, + 0x096b, 0x096f, 0x0976, 0x0980, 0x0987, 0x0994, 0x09a2, 0x09a7, + 0x09ac, 0x09b4, 0x09c7, 0x09cd, 0x09d3, 0x09dc, 0x09e3, 0x09e9, + 0x0a0a, 0x0a29, 0x0a30, 0x0a3c, 0x0a43, 0x0a5a, 0x0a63, 0x0a7c, + 0x0a90, 0x0a97, 0x0a9e, 0x0aae, 0x0ab3, 0x0ab9, 0x0ac0, 0x0ac5, + // Entry 100 - 13F + 0x0ad2, 0x0ad9, 0x0ae1, 0x0af0, 0x0af6, 0x0afc, 0x0b0b, 0x0b1a, + 0x0b22, 0x0b2f, 0x0b40, 0x0b4e, 0x0b5c, 0x0b6c, 0x0b7a, 0x0b84, + 0x0b95, 0x0b9a, 0x0ba7, 0x0bb4, 0x0bc8, 0x0bd6, 0x0be2, 0x0bec, + 0x0bff, 0x0c09, 0x0c0e, 0x0c1d, 0x0c29, 0x0c2f, 0x0c3d, 0x0c4b, + 0x0c58, 0x0c69, +} // Size: 604 bytes + +var bgRegionStr string = "" + // Size: 5868 bytes + "оÑтров ВъзнеÑениеÐндораОбединени арабÑки емирÑтваÐфганиÑтанÐнтигуа и Бар" + + "будаÐнгуилаÐлбаниÑÐрмениÑÐнголаÐнтарктикаÐржентинаÐмериканÑка СамоаÐвÑÑ‚" + + "риÑÐвÑтралиÑÐрубаОландÑки оÑтровиÐзербайджанБоÑна и ХерцеговинаБарбадоÑ" + + "БангладешБелгиÑБуркина ФаÑоБългариÑБахрейнБурундиБенинСен БартелемиБерм" + + "удаБруней ДаруÑÑаламБоливиÑКарибÑка ÐидерландиÑБразилиÑБахамиБутаноÑтро" + + "в БувеБотÑванаБеларуÑБелизКанадаКокоÑови оÑтрови (оÑтрови Кийлинг)Конго" + + " (КиншаÑа)ЦентралноафриканÑка републикаКонго (Бразавил)ШвейцариÑКот д’Ив" + + "оароÑтрови КукЧилиКамерунКитайКолумбиÑоÑтров КлипертонКоÑта РикаКубаКаб" + + "о ВердеКюраÑаооÑтров РождеÑтвоКипърЧешка републикаГерманиÑДиего ГарÑиÑД" + + "жибутиДаниÑДоминикаДоминиканÑка републикаÐлжирСеута и МелиÑЕквадорЕÑтон" + + "иÑЕгипетЗападна СахараЕритреÑИÑпаниÑЕтиопиÑЕвропейÑки ÑъюзФинландиÑФидж" + + "иФолклендÑки оÑтровиМикронезиÑФарьорÑки оÑтровиФранциÑГабонОбединеното " + + "кралÑтвоГренадаГрузиÑФренÑка ГвианаГърнзиГанаГибралтарГренландиÑГамбиÑГ" + + "винеÑГваделупаЕкваториална ГвинеÑГърциÑЮжна Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ð¸Ñ Ð¸ Южни Сандвичеви " + + "оÑтровиГватемалаГуамГвинеÑ-БиÑауГаÑнаХонконг, СÐР на КитайоÑтров Хърд и" + + " оÑтрови МакдоналдХондураÑХърватиÑХаитиУнгариÑКанарÑки оÑтровиИндонезиÑИ" + + "рландиÑИзраелоÑтров МанИндиÑБританÑка Ñ‚ÐµÑ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² ИндийÑÐºÐ¸Ñ Ð¾ÐºÐµÐ°Ð½Ð˜Ñ€Ð°ÐºÐ˜Ñ€" + + "анИÑландиÑИталиÑДжърÑиЯмайкаЙорданиÑЯпониÑКениÑКиргизÑтанКамбоджаКириба" + + "тиКоморÑки оÑтровиСейнт ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑСеверна КореÑЮжна КореÑКувейтКайман" + + "ови оÑтровиКазахÑтанЛаоÑЛиванСейнт ЛуÑиÑЛихтенщайнШри ЛанкаЛибериÑЛеÑот" + + "оЛитваЛюкÑембургЛатвиÑЛибиÑМарокоМонакоМолдоваЧерна гораСен МартенМадаг" + + "аÑкарМаршалови оÑтровиМакедониÑМалиМианмар (Бирма)МонголиÑМакао, СÐР на" + + " КитайСеверни МарианÑки оÑтровиМартиникаМавританиÑМонтÑератМалтаМавриций" + + "МалдивиМалавиМекÑикоМалайзиÑМозамбикÐамибиÑÐова КаледониÑÐигероÑтров Ðо" + + "рфолкÐигериÑÐикарагуаÐидерландиÑÐорвегиÑÐепалÐауруÐиуеÐова ЗеландиÑОман" + + "ПанамаПеруФренÑка ПолинезиÑПапуа-Ðова ГвинеÑФилипиниПакиÑтанПолшаСен Пи" + + "ер и МикелонОÑтрови ПиткернПуерто РикоПалеÑтинÑки територииПортугалиÑПа" + + "лауПарагвайКатарОтдалечени оÑтрови на ОкеаниÑРеюнионРумъниÑСърбиÑРуÑиÑР" + + "уандаСаудитÑка ÐрабиÑСоломонови оÑтровиСейшелиСуданШвециÑСингапурСвета " + + "ЕленаСловениÑСвалбард и Ян МайенСловакиÑСиера ЛеонеСан МариноСенегалСом" + + "алиÑСуринамЮжен СуданСао Томе и ПринÑипиСалвадорСинт МартенСириÑСвазиле" + + "ндТриÑтан да КунÑоÑтрови Ð¢ÑŠÑ€ÐºÑ Ð¸ КайкоÑЧадФренÑки южни територииТогоТай" + + "ландТаджикиÑтанТокелауИзточен ТиморТуркмениÑтанТуниÑТонгаТурциÑТринидад" + + " и ТобагоТувалуТайванТанзаниÑУкрайнаУгандаОтдалечени оÑтрови на СÐЩСъеди" + + "нени щатиУругвайУзбекиÑтанВатиканСейнт ВинÑънт и ГренадиниВенецуелаБрит" + + "анÑки ВирджинÑки оÑтровиÐмериканÑки ВирджинÑки оÑтровиВиетнамВануатуУол" + + "Ð¸Ñ Ð¸ ФутунаСамоаКоÑовоЙеменМайотЮжна ÐфрикаЗамбиÑЗимбабвенепознат регио" + + "нСвÑÑ‚ÐфрикаСеверноамериканÑки континентЮжна ÐмерикаОкеаниÑЗападна Ðфирк" + + "аЦентрална ÐмерикаИзточна ÐфрикаСеверна ÐфрикаЦентрална ÐфрикаЮжноафрик" + + "анÑки регионÐмерикаСеверна ÐмерикаКарибÑки регионИзточна ÐзиÑЮжна ÐзиÑЮ" + + "гоизточна ÐзиÑЮжна ЕвропаÐвÑтралазиÑМеланезиÑМикронезийÑки регионПолине" + + "зиÑÐзиÑЦентрална ÐзиÑЗападна ÐзиÑЕвропаИзточна ЕвропаСеверна ЕвропаЗапа" + + "дна ЕвропаЛатинÑка Ðмерика" + +var bgRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0021, 0x002d, 0x005f, 0x0073, 0x0093, 0x00a1, 0x00af, + 0x00bd, 0x00c9, 0x00dd, 0x00ef, 0x0110, 0x011e, 0x0130, 0x013a, + 0x0159, 0x016f, 0x0193, 0x01a3, 0x01b5, 0x01c1, 0x01d8, 0x01e8, + 0x01f6, 0x0204, 0x020e, 0x0227, 0x0235, 0x0256, 0x0264, 0x028b, + 0x029b, 0x02a7, 0x02b1, 0x02c6, 0x02d6, 0x02e4, 0x02ee, 0x02fa, + 0x0339, 0x0354, 0x038d, 0x03aa, 0x03bc, 0x03d2, 0x03e7, 0x03ef, + 0x03fd, 0x0407, 0x0417, 0x0436, 0x0449, 0x0451, 0x0464, 0x0472, + 0x0491, 0x049b, 0x04b8, 0x04c8, 0x04df, 0x04ed, 0x04f7, 0x0507, + // Entry 40 - 7F + 0x0532, 0x053c, 0x0554, 0x0562, 0x0570, 0x057c, 0x0597, 0x05a5, + 0x05b3, 0x05c1, 0x05de, 0x05f0, 0x05fa, 0x061f, 0x0633, 0x0654, + 0x0662, 0x066c, 0x0693, 0x06a1, 0x06ad, 0x06c8, 0x06d4, 0x06dc, + 0x06ee, 0x0702, 0x070e, 0x071a, 0x072c, 0x0751, 0x075d, 0x07a6, + 0x07b8, 0x07c0, 0x07d7, 0x07e1, 0x0807, 0x0841, 0x0851, 0x0861, + 0x086b, 0x0879, 0x0898, 0x08aa, 0x08ba, 0x08c6, 0x08d9, 0x08e3, + 0x0929, 0x0931, 0x0939, 0x0949, 0x0955, 0x0961, 0x096d, 0x097d, + 0x0989, 0x0993, 0x09a7, 0x09b7, 0x09c7, 0x09e6, 0x0a07, 0x0a20, + // Entry 80 - BF + 0x0a33, 0x0a3f, 0x0a60, 0x0a72, 0x0a7a, 0x0a84, 0x0a99, 0x0aad, + 0x0abe, 0x0acc, 0x0ad8, 0x0ae2, 0x0af6, 0x0b02, 0x0b0c, 0x0b18, + 0x0b24, 0x0b32, 0x0b45, 0x0b58, 0x0b6c, 0x0b8d, 0x0b9f, 0x0ba7, + 0x0bc2, 0x0bd2, 0x0bf4, 0x0c24, 0x0c36, 0x0c4a, 0x0c5c, 0x0c66, + 0x0c76, 0x0c84, 0x0c90, 0x0c9e, 0x0cae, 0x0cbe, 0x0ccc, 0x0ce7, + 0x0cf1, 0x0d0c, 0x0d1a, 0x0d2c, 0x0d42, 0x0d52, 0x0d5c, 0x0d66, + 0x0d6e, 0x0d87, 0x0d8f, 0x0d9b, 0x0da3, 0x0dc4, 0x0de4, 0x0df4, + 0x0e04, 0x0e0e, 0x0e2f, 0x0e4c, 0x0e61, 0x0e8a, 0x0e9e, 0x0ea8, + // Entry C0 - FF + 0x0eb8, 0x0ec2, 0x0ef9, 0x0f07, 0x0f15, 0x0f21, 0x0f2b, 0x0f37, + 0x0f56, 0x0f79, 0x0f87, 0x0f91, 0x0f9d, 0x0fad, 0x0fc2, 0x0fd2, + 0x0ff5, 0x1005, 0x101a, 0x102d, 0x103b, 0x1049, 0x1057, 0x106a, + 0x108d, 0x109d, 0x10b2, 0x10bc, 0x10ce, 0x10ea, 0x1113, 0x1119, + 0x1143, 0x114b, 0x1159, 0x116f, 0x117d, 0x1196, 0x11ae, 0x11b8, + 0x11c2, 0x11ce, 0x11ee, 0x11fa, 0x1206, 0x1216, 0x1224, 0x1230, + 0x125f, 0x127a, 0x1288, 0x129c, 0x12aa, 0x12d9, 0x12eb, 0x1321, + 0x135b, 0x1369, 0x1377, 0x1391, 0x139b, 0x13a7, 0x13b1, 0x13bb, + // Entry 100 - 13F + 0x13d0, 0x13dc, 0x13ec, 0x1409, 0x1411, 0x141d, 0x1454, 0x146b, + 0x1479, 0x1494, 0x14b5, 0x14d0, 0x14eb, 0x150a, 0x1533, 0x1541, + 0x155e, 0x157b, 0x1592, 0x15a3, 0x15c0, 0x15d5, 0x15eb, 0x15fd, + 0x1624, 0x1636, 0x163e, 0x1659, 0x1670, 0x167c, 0x1697, 0x16b2, + 0x16cd, 0x16ec, +} // Size: 604 bytes + +var bnRegionStr string = "" + // Size: 9498 bytes + "অà§à¦¯à¦¾à¦¸à¦¸à§‡à¦¨à¦¶à¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦à§à¦¯à¦¾à¦¨à§à¦¡à§‹à¦°à¦¾à¦¸à¦‚যà§à¦•à§à¦¤ আরব আমিরাতআফগানিসà§à¦¤à¦¾à¦¨à¦à¦¨à§à¦Ÿà¦¿à¦—à§à¦¯à¦¼à¦¾ ও " + + "বারবà§à¦¡à¦¾à¦à§à¦¯à¦¾à¦™à§à¦—à§à¦‡à¦²à¦¾à¦†à¦²à¦¬à§à¦¯à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦†à¦°à§à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¾à¦…à§à¦¯à¦¾à¦™à§à¦—োলাঅà§à¦¯à¦¾à¦¨à§à¦Ÿà¦¾à¦°à§à¦•à¦Ÿà¦¿à¦•à¦¾à¦†à¦°à§à¦œà§‡à¦¨" + + "à§à¦Ÿà¦¿à¦¨à¦¾à¦†à¦®à§‡à¦°à¦¿à¦•à¦¾à¦¨ সামোয়াঅসà§à¦Ÿà§à¦°à¦¿à¦¯à¦¼à¦¾à¦…সà§à¦Ÿà§à¦°à§‡à¦²à¦¿à¦¯à¦¼à¦¾à¦†à¦°à§à¦¬à¦¾à¦†à¦²à¦¾à¦¨à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦†à¦œà¦¾à¦°à¦¬" + + "াইজানবসনিয়া ও হারà§à¦œà§‡à¦—োভিনাবারবাদোসবাংলাদেশবেলজিয়ামবà§à¦°à¦•à¦¿à¦¨à¦¾ ফাসোবà§à¦²à¦—ের" + + "িয়াবাহরাইনবà§à¦°à§à¦¨à§à¦¡à¦¿à¦¬à§‡à¦¨à¦¿à¦¨à¦¸à§‡à¦¨à§à¦Ÿ বারথেলিমিবারমà§à¦¡à¦¾à¦¬à§à¦°à§à¦¨à§‡à¦‡à¦¬à§‹à¦²à¦¿à¦­à¦¿à¦¯à¦¼à¦¾à¦•à§à¦¯à¦¾à¦°à¦¿à¦¬à¦¿" + + "য়ান নেদারলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸à¦¬à§à¦°à¦¾à¦œà¦¿à¦²à¦¬à¦¾à¦¹à¦¾à¦®à¦¾ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦­à§à¦Ÿà¦¾à¦¨à¦¬à§‹à¦­à§‡à¦Ÿ দà§à¦¬à§€à¦ªà¦¬à¦¤à¦¸à§‹à¦¯à¦¼à¦¾à¦¨à¦¾à¦¬à§‡à¦²" + + "োরà§à¦¶à¦¿à¦¯à¦¼à¦¾à¦¬à§‡à¦²à¦¿à¦œà¦•à¦¾à¦¨à¦¾à¦¡à¦¾à¦•à§‹à¦•à§‹à¦¸ (কিলিং)দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦•à¦™à§à¦—ো-কিনশাসামধà§à¦¯ আফà§à¦°à¦¿à¦•à¦¾à¦° প" + + "à§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦•à¦™à§à¦—ো - বà§à¦°à¦¾à¦œà¦¾à¦­à¦¿à¦²à¦¸à§à¦‡à¦œà¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦†à¦‡à¦­à¦°à¦¿ কোসà§à¦Ÿà¦•à§à¦• দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦šà¦¿à¦²à¦¿à¦•" + + "à§à¦¯à¦¾à¦®à§‡à¦°à§à¦¨à¦šà§€à¦¨à¦•à§‹à¦²à§‹à¦®à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦•à§à¦²à¦¿à¦ªà¦¾à¦°à¦Ÿà¦¨ আইলà§à¦¯à¦¾à¦¨à§à¦¡à¦•à§‹à¦¸à§à¦Ÿà¦¾à¦°à¦¿à¦•à¦¾à¦•à¦¿à¦‰à¦¬à¦¾à¦•à§‡à¦ªà¦­à¦¾à¦°à§à¦¦à§‡à¦•à¦¿à¦‰à¦°à¦¾" + + "সাওকà§à¦°à¦¿à¦¸à¦®à¦¾à¦¸ দà§à¦¬à§€à¦ªà¦¸à¦¾à¦‡à¦ªà§à¦°à¦¾à¦¸à¦šà§‡à¦• পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦œà¦¾à¦°à§à¦®à¦¾à¦¨à¦¿à¦¦à¦¿à¦¯à¦¼à§‡à¦—ো গারà§à¦¸à¦¿à¦¯à¦¼à¦¾à¦œà¦¿à¦¬à§à¦¤" + + "িডেনমারà§à¦•à¦¡à§‹à¦®à¦¿à¦¨à¦¿à¦•à¦¾à¦¡à§‹à¦®à§‡à¦¨à¦¿à¦•à¦¾à¦¨ পà§à¦°à¦œà¦¾à¦¤à¦¨à§à¦¤à§à¦°à¦†à¦²à¦œà§‡à¦°à¦¿à¦¯à¦¼à¦¾à¦•à§à¦‰à¦Ÿà¦¾ à¦à¦¬à¦‚ মেলিলাইকà§à¦¯à¦¼à§‡à¦¡" + + "রà¦à¦¸à§à¦¤à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¿à¦¶à¦°à¦ªà¦¶à§à¦šà¦¿à¦® সাহারাইরিতà§à¦°à¦¿à¦¯à¦¼à¦¾à¦¸à§à¦ªà§‡à¦¨à¦‡à¦«à¦¿à¦“পিয়াইউরোপীয় ইউনিয়নফি" + + "নলà§à¦¯à¦¾à¦¨à§à¦¡à¦«à¦¿à¦œà¦¿à¦«à¦•à¦²à§à¦¯à¦¾à¦¨à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦‡à¦•à§à¦°à§‹à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦«à§à¦¯à¦¾à¦°à¦“ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦«à§à¦°à¦¾à¦¨à§à¦¸" + + "গà§à¦¯à¦¾à¦¬à¦¨à¦¯à§à¦•à§à¦¤à¦°à¦¾à¦œà§à¦¯à¦—à§à¦°à§‡à¦¨à§‡à¦¡à¦¾à¦œà¦°à§à¦œà¦¿à¦¯à¦¼à¦¾à¦«à¦°à¦¾à¦¸à§€ গায়ানাগà§à¦°à¦¾à¦žà§à¦œà¦¿à¦˜à¦¾à¦¨à¦¾à¦œà¦¿à¦¬à§à¦°à¦¾à¦²à§à¦Ÿà¦¾à¦°à¦—à§" + + "রীনলà§à¦¯à¦¾à¦¨à§à¦¡à¦—ামà§à¦¬à¦¿à¦¯à¦¼à¦¾à¦—িনিগà§à¦¯à¦¼à¦¾à¦¦à§‡à¦²à§Œà¦ªà¦¨à¦¿à¦°à¦•à§à¦·à§€à¦¯à¦¼ গিনিগà§à¦°à§€à¦¸à¦¦à¦•à§à¦·à¦¿à¦£ জরà§à¦œà¦¿à¦¯à¦¼à¦¾ ও " + + "দকà§à¦·à¦¿à¦£ সà§à¦¯à¦¾à¦¨à§à¦¡à¦‰à¦‡à¦š দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦—োয়াতেমালাগà§à¦¯à¦¼à¦¾à¦®à¦—িনি-বিসাউগিয়ানাহংকং à¦à¦¸à¦" + + "আর চীনাহারà§à¦¡ দà§à¦¬à§€à¦ª à¦à¦¬à¦‚ মà§à¦¯à¦¾à¦•à¦¡à§‹à¦¨à¦¾à¦²à§à¦¡ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦¹à¦£à§à¦¡à§à¦°à¦¾à¦¸à¦•à§à¦°à§‹à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦¹à¦¾à¦‡à¦¤" + + "িহাঙà§à¦—েরিকà§à¦¯à¦¾à¦¨à¦¾à¦°à¦¿ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦‡à¦¨à§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦†à¦¯à¦¼à¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦‡à¦œà¦°à¦¾à¦¯à¦¼à§‡à¦²à¦†à¦‡à¦² অফ মà§à¦¯" + + "ানভারতবà§à¦°à¦¿à¦Ÿà¦¿à¦¶ ভারত মহাসাগরীয় অঞà§à¦šà¦²à¦‡à¦°à¦¾à¦•à¦‡à¦°à¦¾à¦¨à¦†à¦‡à¦¸à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦‡à¦¤à¦¾à¦²à§€à¦œà¦¾à¦°à§à¦¸à¦¿à¦œà¦¾à¦®à¦¾à¦‡à¦•" + + "াজরà§à¦¡à¦¨à¦œà¦¾à¦ªà¦¾à¦¨à¦•à§‡à¦¨à¦¿à¦¯à¦¼à¦¾à¦•à¦¿à¦°à§à¦—িজিয়াকমà§à¦¬à§‹à¦¡à¦¿à¦¯à¦¼à¦¾à¦•à¦¿à¦°à¦¿à¦¬à¦¾à¦¤à¦¿à¦•à¦®à§‹à¦°à§‹à¦¸à¦¸à§‡à¦¨à§à¦Ÿ কিটস ও নেভি" + + "সউতà§à¦¤à¦° কোরিয়াদকà§à¦·à¦¿à¦£ কোরিয়াকà§à¦¯à¦¼à§‡à¦¤à¦•à§‡à¦®à§à¦¯à¦¾à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦•à¦¾à¦œà¦¾à¦–সà§à¦¤à¦¾à¦¨à¦²à¦¾à¦“সলেবা" + + "ননসেনà§à¦Ÿ লà§à¦¸à¦¿à¦¯à¦¼à¦¾à¦²à¦¿à¦šà§‡à¦¨à¦¸à§à¦Ÿà§‡à¦‡à¦¨à¦¶à§à¦°à§€à¦²à¦™à§à¦•à¦¾à¦²à¦¾à¦‡à¦¬à§‡à¦°à¦¿à¦¯à¦¼à¦¾à¦²à§‡à¦¸à§‹à¦¥à§‹à¦²à¦¿à¦¥à§à¦¯à¦¼à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦²à¦¾à¦•à§à¦¸à§‡à¦®" + + "বারà§à¦—লাতà§à¦­à¦¿à¦¯à¦¼à¦¾à¦²à¦¿à¦¬à¦¿à¦¯à¦¼à¦¾à¦®à§‹à¦°à¦•à§à¦•à§‹à¦®à§‹à¦¨à¦¾à¦•à§‹à¦®à§‹à¦²à§à¦¦à¦¾à¦­à¦¿à¦¯à¦¼à¦¾à¦®à¦¨à§à¦Ÿà¦¿à¦¨à¦¿à¦—à§à¦°à§‹à¦¸à§‡à¦¨à§à¦Ÿ মারà§à¦Ÿà¦¿à¦¨à¦®" + + "াদাগাসà§à¦•à¦¾à¦°à¦®à¦¾à¦°à§à¦¶à¦¾à¦² দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à§à¦¯à¦¾à¦¸à¦¾à¦¡à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦®à¦¾à¦²à¦¿à¦®à¦¾à¦¯à¦¼à¦¾à¦¨à¦®à¦¾à¦° (বারà§à¦®à¦¾)মঙà§à¦—োলি" + + "য়ামà§à¦¯à¦¾à¦•à¦¾à¦“ à¦à¦¸ ঠআর চায়নাউতà§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ মারিয়ানা দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦Ÿà¦¿à¦¨à¦¿à¦•à¦®à¦°" + + "িতানিয়ামনà§à¦Ÿà¦¸à§‡à¦°à¦¾à¦Ÿà¦®à¦¾à¦²à§à¦Ÿà¦¾à¦®à¦°à¦¿à¦¶à¦¾à¦¸à¦®à¦¾à¦²à¦¦à§à¦¬à§€à¦ªà¦®à¦¾à¦²à¦¾à¦‰à¦‡à¦®à§‡à¦•à§à¦¸à¦¿à¦•à§‹à¦®à¦¾à¦²à¦¯à¦¼à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à§‹à¦œà¦¾à¦®à§à¦¬à¦¿" + + "কনামিবিয়ানিউ কà§à¦¯à¦¾à¦²à§‡à¦¡à§‹à¦¨à¦¿à¦¯à¦¼à¦¾à¦¨à¦¾à¦‡à¦œà¦¾à¦°à¦¨à¦¿à¦°à¦«à§‹à¦• দà§à¦¬à§€à¦ªà¦¨à¦¾à¦‡à¦œà§‡à¦°à¦¿à¦¯à¦¼à¦¾à¦¨à¦¿à¦•à¦¾à¦°à¦¾à¦—à§à¦¯à¦¼à¦¾à¦¨à§‡à¦¦à¦¾" + + "রলà§à¦¯à¦¾à¦¨à§à¦¡à¦¸à¦¨à¦°à¦“য়েনেপালনাউরà§à¦¨à¦¿à¦‰à¦¯à¦¼à§‡à¦¨à¦¿à¦‰à¦œà¦¿à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦“মানপানামাপিরà§à¦«à¦°à¦¾à¦¸à§€ পলিনেশি" + + "য়াপাপà§à¦¯à¦¼à¦¾ নিউ গিনিফিলিপাইনপাকিসà§à¦¤à¦¾à¦¨à¦ªà§‹à¦²à§à¦¯à¦¾à¦¨à§à¦¡à¦¸à§‡à¦¨à§à¦Ÿ পিয়ের ও মিকà§à¦¯à¦¼à§‡à¦²à¦¨à¦ª" + + "িটকেয়ারà§à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦ªà§à¦¯à¦¼à§‡à¦°à§à¦¤à§‹ রিকোফিলিসà§à¦¤à¦¿à¦¨ অঞà§à¦šà¦²à¦¸à¦®à§‚হপরà§à¦¤à§à¦—ালপালাউপà§à¦¯" + + "ারাগà§à¦¯à¦¼à§‡à¦•à¦¾à¦¤à¦¾à¦°à¦†à¦‰à¦Ÿà¦²à¦¾à¦‡à¦¨à¦¿à¦‚ ওসানিয়ারিইউনিয়নরà§à¦®à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦¸à¦¾à¦°à§à¦¬à¦¿à¦¯à¦¼à¦¾à¦°à¦¾à¦¶à¦¿à¦¯à¦¼à¦¾à¦°à§à¦¯à¦¼à¦¾" + + "নà§à¦¡à¦¾à¦¸à§Œà¦¦à¦¿ আরবসলোমন দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦¸à¦¿à¦¸à¦¿à¦²à¦¿à¦¸à§à¦¦à¦¾à¦¨à¦¸à§à¦‡à¦¡à§‡à¦¨à¦¸à¦¿à¦™à§à¦—াপà§à¦°à¦¸à§‡à¦¨à§à¦Ÿ হেলেনাসà§à¦²à§‹" + + "ভানিয়াসà§à¦¬à¦¾à¦²à¦¬à¦¾à¦°à§à¦¡ ও জান মেয়েনশà§à¦²à§‹à¦­à¦¾à¦•à¦¿à¦¯à¦¼à¦¾à¦¸à¦¿à¦¯à¦¼à§‡à¦°à¦¾à¦²à¦¿à¦“নসান মারিনোসেনেগালস" + + "োমালিয়াসà§à¦°à¦¿à¦¨à¦¾à¦®à¦¦à¦•à§à¦·à¦¿à¦¨ সà§à¦¦à¦¾à¦¨à¦¸à¦¾à¦“টোমা ও পà§à¦°à¦¿à¦¨à§à¦¸à¦¿à¦ªà¦¿à¦à¦² সালভেদরসিনà§à¦Ÿ মারà§à¦Ÿà§‡à¦¨" + + "সিরিয়াসোয়াজিলà§à¦¯à¦¾à¦¨à§à¦¡à¦Ÿà§à¦°à¦¿à¦¸à§à¦Ÿà¦¾à¦¨ ডা কà§à¦¨à¦¹à¦¾à¦¤à§à¦°à§à¦•à¦¸ ও কাইকোস দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦šà¦¾à¦¦à¦«à¦°" + + "াসী দকà§à¦·à¦¿à¦£à¦¾à¦žà§à¦šà¦²à¦Ÿà§‹à¦—োথাইলà§à¦¯à¦¾à¦¨à§à¦¡à¦¤à¦¾à¦œà¦¿à¦•à¦¸à§à¦¥à¦¾à¦¨à¦Ÿà§‹à¦•à§‡à¦²à¦¾à¦‰à¦¤à¦¿à¦®à§à¦°-লেসà§à¦¤à§‡à¦¤à§à¦°à§à¦•à¦®à§‡à¦¨à¦¿à¦¸à§à¦¤" + + "ানতিউনিশিয়াটোঙà§à¦—াতà§à¦°à¦¸à§à¦•à¦¤à§à¦°à¦¿à¦¨à¦¿à¦¨à¦¾à¦¦ ও টোবà§à¦¯à¦¾à¦—োটà§à¦­à¦¾à¦²à§à¦¤à¦¾à¦‡à¦“য়ানতাঞà§à¦œà¦¾à¦¨à¦¿à¦¯à¦¼à¦¾à¦‡" + + "উকà§à¦°à§‡à¦‡à¦¨à¦‰à¦—ানà§à¦¡à¦¾à¦¯à§à¦•à§à¦¤à¦°à¦¾à¦·à§à¦Ÿà§à¦°à§‡à¦° পারà§à¦¶à§à¦¬à¦¬à¦°à§à¦¤à§€ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦•à¦¿à¦¨ যà§à¦•à§à¦¤à¦°à¦¾à¦·à§à¦Ÿ" + + "à§à¦°à¦‰à¦°à§à¦—à§à¦¯à¦¼à§‡à¦‰à¦œà¦¬à§‡à¦•à¦¿à¦¸à§à¦¤à¦¾à¦¨à¦­à§à¦¯à¦¾à¦Ÿà¦¿à¦•à¦¾à¦¨ সিটিসেনà§à¦Ÿ ভিনসেনà§à¦Ÿ ও দà§à¦¯à¦¾ গà§à¦°à§‡à¦¨à¦¾à¦¡à¦¿à¦¨à¦¸à¦­à§‡à¦¨" + + "েজà§à¦¯à¦¼à§‡à¦²à¦¾à¦¬à§à¦°à¦¿à¦Ÿà¦¿à¦¶ ভারà§à¦œà¦¿à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦®à¦¾à¦°à§à¦•à¦¿à¦¨ ভারà§à¦œà¦¿à¦¨ দà§à¦¬à§€à¦ªà¦ªà§à¦žà§à¦œà¦­à¦¿à¦¯à¦¼à§‡à¦¤à¦¨à¦¾à¦®à¦­" + + "ানà§à¦¯à¦¼à¦¾à¦Ÿà§à¦“য়ালিস ও ফà§à¦Ÿà§à¦¨à¦¾à¦¸à¦¾à¦®à§‹à¦¯à¦¼à¦¾à¦•à¦¸à§‹à¦­à§‹à¦‡à¦¯à¦¼à§‡à¦®à§‡à¦¨à¦®à¦¾à¦¯à¦¼à§‹à¦¤à§à¦¤à§‡à¦¦à¦•à§à¦·à¦¿à¦£ আফà§à¦°à¦¿à¦•à¦¾à¦œà¦¾à¦®à§" + + "বিয়াজিমà§à¦¬à¦¾à¦¬à§‹à¦¯à¦¼à§‡à¦…জানা সà§à¦¥à¦¾à¦¨à¦ªà§ƒà¦¥à¦¿à¦¬à§€à¦†à¦«à§à¦°à¦¿à¦•à¦¾à¦‰à¦¤à§à¦¤à¦° আমেরিকাদকà§à¦·à¦¿à¦£ আমেরিকাওশি" + + "য়ানিয়াপশà§à¦šà¦¿à¦® আফà§à¦°à¦¿à¦•à¦¾à¦®à¦§à§à¦¯ আমেরিকাপূরà§à¦¬ আফà§à¦°à¦¿à¦•à¦¾à¦‰à¦¤à§à¦¤à¦° আফà§à¦°à¦¿à¦•à¦¾à¦®à¦§à§à¦¯ আফà§à¦°à¦¿" + + "কাদকà§à¦·à¦¿à¦¨ আফà§à¦°à¦¿à¦•à¦¾à¦†à¦®à§‡à¦°à¦¿à¦•à¦¾à¦¸à¦‰à¦¤à§à¦¤à¦°à¦¾à¦žà§à¦šà¦²à§€à¦¯à¦¼ আমেরিকাকà§à¦¯à¦¾à¦°à¦¾à¦¬à¦¿à¦¯à¦¼à¦¾à¦¨à¦ªà§‚রà§à¦¬ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦" + + "কà§à¦·à¦¿à¦£ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦à¦•à§à¦·à¦¿à¦£ পূরà§à¦¬ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦¦à¦•à§à¦·à¦¿à¦£ ইউরোপঅসà§à¦Ÿà§à¦°à¦¾à¦²à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à§à¦¯à¦¾à¦²à§‡à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾" + + "মà§à¦¯à¦¾à¦²à§‡à¦¨à¦¿à¦¶à¦¾ অঞà§à¦šà¦²à¦ªà¦²à¦¿à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦®à¦§à§à¦¯ à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦ªà¦¶à§à¦šà¦¿à¦® à¦à¦¶à¦¿à¦¯à¦¼à¦¾à¦‡à¦‰à¦°à§‹à¦ªà¦ªà§‚রà§à¦¬ ইউর" + + "োপউতà§à¦¤à¦° ইউরোপপশà§à¦šà¦¿à¦® ইউরোপলà§à¦¯à¦¾à¦Ÿà¦¿à¦¨ আমেরিকা" + +var bnRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x003a, 0x0058, 0x008a, 0x00ab, 0x00e3, 0x0104, 0x0125, + 0x0143, 0x0161, 0x018e, 0x01af, 0x01dd, 0x01fb, 0x021f, 0x022e, + 0x025f, 0x027d, 0x02bb, 0x02d3, 0x02eb, 0x0306, 0x0328, 0x0346, + 0x035b, 0x0373, 0x0382, 0x03ad, 0x03c2, 0x03d7, 0x03f2, 0x043e, + 0x0453, 0x0484, 0x0493, 0x04b2, 0x04cd, 0x04ee, 0x04fd, 0x050f, + 0x054e, 0x0573, 0x05ba, 0x05e7, 0x060e, 0x062d, 0x0655, 0x0661, + 0x067c, 0x0685, 0x06a6, 0x06dd, 0x06fb, 0x070a, 0x0725, 0x073d, + 0x0765, 0x077d, 0x07a8, 0x07c0, 0x07f1, 0x0803, 0x081b, 0x0833, + // Entry 40 - 7F + 0x0870, 0x088b, 0x08b7, 0x08cf, 0x08ed, 0x08f9, 0x091e, 0x093c, + 0x094b, 0x0966, 0x0994, 0x09b2, 0x09be, 0x09f8, 0x0a22, 0x0a53, + 0x0a68, 0x0a7a, 0x0a98, 0x0ab0, 0x0ac8, 0x0aed, 0x0b05, 0x0b11, + 0x0b32, 0x0b56, 0x0b71, 0x0b7d, 0x0b9b, 0x0bc3, 0x0bd2, 0x0c52, + 0x0c73, 0x0c85, 0x0ca1, 0x0cb6, 0x0cdf, 0x0d4c, 0x0d64, 0x0d88, + 0x0d97, 0x0daf, 0x0de6, 0x0e0a, 0x0e2e, 0x0e46, 0x0e66, 0x0e72, + 0x0ec3, 0x0ecf, 0x0edb, 0x0ef9, 0x0f08, 0x0f1a, 0x0f2f, 0x0f3e, + 0x0f4d, 0x0f62, 0x0f83, 0x0fa1, 0x0fb9, 0x0fcb, 0x0ffb, 0x1020, + // Entry 80 - BF + 0x1048, 0x105a, 0x108e, 0x10ac, 0x10b8, 0x10ca, 0x10ef, 0x1110, + 0x112b, 0x1149, 0x115b, 0x117f, 0x11a3, 0x11be, 0x11d3, 0x11e8, + 0x11fa, 0x121b, 0x123c, 0x1261, 0x1282, 0x12b6, 0x12dd, 0x12e9, + 0x1319, 0x1337, 0x1371, 0x13d3, 0x13ee, 0x140c, 0x1427, 0x1439, + 0x144b, 0x1463, 0x1475, 0x148d, 0x14ae, 0x14c9, 0x14e4, 0x1515, + 0x1527, 0x1549, 0x1567, 0x1588, 0x15af, 0x15c1, 0x15d0, 0x15df, + 0x15f1, 0x1615, 0x1621, 0x1633, 0x163f, 0x166d, 0x1699, 0x16b1, + 0x16cc, 0x16e7, 0x1729, 0x1769, 0x1791, 0x17c8, 0x17e0, 0x17ef, + // Entry C0 - FF + 0x1810, 0x181f, 0x1853, 0x186e, 0x1889, 0x18a4, 0x18b9, 0x18d4, + 0x18ea, 0x1918, 0x192a, 0x1939, 0x194b, 0x1966, 0x1988, 0x19a9, + 0x19e8, 0x1a09, 0x1a2a, 0x1a46, 0x1a5b, 0x1a76, 0x1a8b, 0x1aad, + 0x1ae5, 0x1b01, 0x1b26, 0x1b3b, 0x1b65, 0x1b97, 0x1bdf, 0x1be8, + 0x1c19, 0x1c25, 0x1c43, 0x1c61, 0x1c76, 0x1c98, 0x1cc2, 0x1ce0, + 0x1cf2, 0x1d04, 0x1d3c, 0x1d4e, 0x1d66, 0x1d87, 0x1d9f, 0x1db4, + 0x1e22, 0x1e5c, 0x1e74, 0x1e95, 0x1ebd, 0x1f15, 0x1f36, 0x1f80, + 0x1fca, 0x1fe5, 0x2000, 0x202c, 0x2041, 0x2050, 0x2065, 0x2080, + // Entry 100 - 13F + 0x20a8, 0x20c3, 0x20e4, 0x2103, 0x2115, 0x212a, 0x214f, 0x2177, + 0x2198, 0x21c0, 0x21e2, 0x2207, 0x222c, 0x224e, 0x2276, 0x228e, + 0x22cb, 0x22ef, 0x2311, 0x2336, 0x236b, 0x238d, 0x23b7, 0x23de, + 0x240c, 0x242a, 0x243c, 0x245b, 0x2480, 0x248f, 0x24ae, 0x24cd, + 0x24ef, 0x251a, +} // Size: 604 bytes + +var caRegionStr string = "" + // Size: 3150 bytes + "Illa de l’AscensióAndorraEmirats Àrabs UnitsAfganistanAntigua i BarbudaA" + + "nguillaAlbàniaArmèniaAngolaAntàrtidaArgentinaSamoa Nord-americanaÀustria" + + "AustràliaArubaIlles Ã…landAzerbaidjanBòsnia i HercegovinaBarbadosBangla D" + + "eshBèlgicaBurkina FasoBulgàriaBahrainBurundiBenínSaint BarthélemyBermude" + + "sBruneiBolíviaCarib NeerlandèsBrasilBahamesBhutanBouvetBotswanaBelarúsBe" + + "lizeCanadàIlles CocosCongo - KinshasaRepública CentreafricanaCongo - Bra" + + "zzavilleSuïssaCosta d’IvoriIlles CookXileCamerunXinaColòmbiaIlla Clipper" + + "tonCosta RicaCubaCap VerdCuraçaoIlla ChristmasXipreRepública TxecaAleman" + + "yaDiego GarciaDjiboutiDinamarcaDominicaRepública DominicanaAlgèriaCeuta " + + "i MelillaEquadorEstòniaEgipteSàhara OccidentalEritreaEspanyaEtiòpiaUnió " + + "EuropeaFinlàndiaFijiIlles MalvinesMicronèsiaIlles FèroeFrançaGabonRegne " + + "UnitGrenadaGeòrgiaGuaiana FrancesaGuernseyGhanaGibraltarGrenlàndiaGàmbia" + + "GuineaGuadeloupeGuinea EquatorialGrèciaIlles Geòrgia del Sud i Sandwich " + + "del SudGuatemalaGuamGuinea BissauGuyanaHong Kong (RAE Xina)Illa Heard i " + + "Illes McDonaldHonduresCroàciaHaitíHongriaIlles CanàriesIndonèsiaIrlandaI" + + "sraelIlla de ManÃndiaTerritori Britànic de l’Oceà ÃndicIraqIranIslàndiaI" + + "tàliaJerseyJamaicaJordàniaJapóKenyaKirguizistanCambodjaKiribatiComoresSa" + + "int Christopher i NevisCorea del NordCorea del SudKuwaitIlles CaimanKaza" + + "khstanLaosLíbanSaint LuciaLiechtensteinSri LankaLibèriaLesothoLituàniaLu" + + "xemburgLetòniaLíbiaMarrocMònacoMoldàviaMontenegroSaint MartinMadagascarI" + + "lles MarshallMacedòniaMaliMyanmar (Birmània)MongòliaMacau (RAE Xina)Ille" + + "s Mariannes del NordMartinicaMauritàniaMontserratMaltaMauriciMaldivesMal" + + "awiMèxicMalàisiaMoçambicNamíbiaNova CaledòniaNígerNorfolkNigèriaNicaragu" + + "aPaïsos BaixosNoruegaNepalNauruNiueNova ZelandaOmanPanamàPerúPolinèsia F" + + "rancesaPapua Nova GuineaFilipinesPakistanPolòniaSaint-Pierre-et-Miquelon" + + "Illes PitcairnPuerto RicoPalestinaPortugalPalauParaguaiQatarTerritoris a" + + "llunyats d’OceaniaIlla de la ReunióRomaniaSèrbiaRússiaRuandaAràbia Saudi" + + "taIlles SalomóSeychellesSudanSuèciaSingapurSaint HelenaEslovèniaSvalbard" + + " i Jan MayenEslovàquiaSierra LeoneSan MarinoSenegalSomàliaSurinamSudan d" + + "el SudSão Tomé i PríncipeEl SalvadorSint MaartenSíriaSwazilàndiaTristão " + + "da CunhaIlles Turks i CaicosTxadTerritoris Francesos del SudTogoTailàndi" + + "aTadjikistanTokelauTimor OrientalTurkmenistanTunísiaTongaTurquiaTrinitat" + + " i TobagoTuvaluTaiwanTanzàniaUcraïnaUgandaIlles Perifèriques Menors dels" + + " EUAEstats UnitsUruguaiUzbekistanCiutat del VaticàSaint Vincent i les Gr" + + "enadinesVeneçuelaIlles Verges BritàniquesIlles Verges Nord-americanesVie" + + "tnamVanuatuWallis i FutunaSamoaKosovoIemenMayotteRepública de Sud-àfrica" + + "ZàmbiaZimbàbueRegió desconegudaMónÀfricaAmèrica del NordAmèrica del SudO" + + "ceaniaÀfrica occidentalAmèrica CentralÀfrica orientalÀfrica septentriona" + + "lÀfrica centralÀfrica meridionalAmèricaAmèrica septentrionalCaribÀsia or" + + "ientalÀsia meridionalÀsia sud-orientalEuropa meridionalAustralàsiaMelanè" + + "siaRegió de la MicronèsiaPolinèsiaÀsiaÀsia centralÀsia occidentalEuropaE" + + "uropa orientalEuropa septentrionalEuropa occidentalAmèrica Llatina" + +var caRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x001c, 0x0030, 0x003a, 0x004b, 0x0053, 0x005b, + 0x0063, 0x0069, 0x0073, 0x007c, 0x0090, 0x0098, 0x00a2, 0x00a7, + 0x00b3, 0x00be, 0x00d3, 0x00db, 0x00e6, 0x00ee, 0x00fa, 0x0103, + 0x010a, 0x0111, 0x0117, 0x0128, 0x0130, 0x0136, 0x013e, 0x014f, + 0x0155, 0x015c, 0x0162, 0x0168, 0x0170, 0x0178, 0x017e, 0x0185, + 0x0190, 0x01a0, 0x01b9, 0x01cc, 0x01d3, 0x01e2, 0x01ec, 0x01f0, + 0x01f7, 0x01fb, 0x0204, 0x0213, 0x021d, 0x0221, 0x0229, 0x0231, + 0x023f, 0x0244, 0x0254, 0x025c, 0x0268, 0x0270, 0x0279, 0x0281, + // Entry 40 - 7F + 0x0296, 0x029e, 0x02ad, 0x02b4, 0x02bc, 0x02c2, 0x02d4, 0x02db, + 0x02e2, 0x02ea, 0x02f7, 0x0301, 0x0305, 0x0313, 0x031e, 0x032a, + 0x0331, 0x0336, 0x0340, 0x0347, 0x034f, 0x035f, 0x0367, 0x036c, + 0x0375, 0x0380, 0x0387, 0x038d, 0x0397, 0x03a8, 0x03af, 0x03d8, + 0x03e1, 0x03e5, 0x03f2, 0x03f8, 0x040c, 0x0427, 0x042f, 0x0437, + 0x043d, 0x0444, 0x0453, 0x045d, 0x0464, 0x046a, 0x0475, 0x047b, + 0x04a2, 0x04a6, 0x04aa, 0x04b3, 0x04ba, 0x04c0, 0x04c7, 0x04d0, + 0x04d5, 0x04da, 0x04e6, 0x04ee, 0x04f6, 0x04fd, 0x0516, 0x0524, + // Entry 80 - BF + 0x0531, 0x0537, 0x0543, 0x054d, 0x0551, 0x0557, 0x0562, 0x056f, + 0x0578, 0x0580, 0x0587, 0x0590, 0x0599, 0x05a1, 0x05a7, 0x05ad, + 0x05b4, 0x05bd, 0x05c7, 0x05d3, 0x05dd, 0x05eb, 0x05f5, 0x05f9, + 0x060c, 0x0615, 0x0625, 0x063d, 0x0646, 0x0651, 0x065b, 0x0660, + 0x0667, 0x066f, 0x0675, 0x067b, 0x0684, 0x068d, 0x0695, 0x06a4, + 0x06aa, 0x06b1, 0x06b9, 0x06c2, 0x06d0, 0x06d7, 0x06dc, 0x06e1, + 0x06e5, 0x06f1, 0x06f5, 0x06fc, 0x0701, 0x0714, 0x0725, 0x072e, + 0x0736, 0x073e, 0x0756, 0x0764, 0x076f, 0x0778, 0x0780, 0x0785, + // Entry C0 - FF + 0x078d, 0x0792, 0x07b2, 0x07c4, 0x07cb, 0x07d2, 0x07d9, 0x07df, + 0x07ee, 0x07fb, 0x0805, 0x080a, 0x0811, 0x0819, 0x0825, 0x082f, + 0x0843, 0x084e, 0x085a, 0x0864, 0x086b, 0x0873, 0x087a, 0x0887, + 0x089d, 0x08a8, 0x08b4, 0x08ba, 0x08c6, 0x08d7, 0x08eb, 0x08ef, + 0x090b, 0x090f, 0x0919, 0x0924, 0x092b, 0x0939, 0x0945, 0x094d, + 0x0952, 0x0959, 0x096a, 0x0970, 0x0976, 0x097f, 0x0987, 0x098d, + 0x09b0, 0x09bc, 0x09c3, 0x09cd, 0x09df, 0x09fd, 0x0a07, 0x0a20, + 0x0a3c, 0x0a43, 0x0a4a, 0x0a59, 0x0a5e, 0x0a64, 0x0a69, 0x0a70, + // Entry 100 - 13F + 0x0a89, 0x0a90, 0x0a99, 0x0aab, 0x0aaf, 0x0ab6, 0x0ac7, 0x0ad7, + 0x0ade, 0x0af0, 0x0b00, 0x0b10, 0x0b25, 0x0b34, 0x0b46, 0x0b4e, + 0x0b64, 0x0b69, 0x0b77, 0x0b87, 0x0b99, 0x0baa, 0x0bb6, 0x0bc0, + 0x0bd8, 0x0be2, 0x0be7, 0x0bf4, 0x0c04, 0x0c0a, 0x0c19, 0x0c2d, + 0x0c3e, 0x0c4e, +} // Size: 604 bytes + +var csRegionStr string = "" + // Size: 3211 bytes + "AscensionAndorraSpojené arabské emirátyAfghánistánAntigua a BarbudaAngui" + + "llaAlbánieArménieAngolaAntarktidaArgentinaAmerická SamoaRakouskoAustráli" + + "eArubaÃ…landyÃzerbájdžánBosna a HercegovinaBarbadosBangladéšBelgieBurkina" + + " FasoBulharskoBahrajnBurundiBeninSvatý BartolomÄ›jBermudyBrunejBolívieKar" + + "ibské NizozemskoBrazílieBahamyBhútánBouvetův ostrovBotswanaBÄ›loruskoBeli" + + "zeKanadaKokosové ostrovyKongo – KinshasaStÅ™edoafrická republikaKongo – B" + + "razzavilleÅ výcarskoPobÅ™eží slonovinyCookovy ostrovyChileKamerunČínaKolum" + + "bieClippertonův ostrovKostarikaKubaKapverdyCuraçaoVánoÄní ostrovKyprÄŒesk" + + "á republikaNÄ›meckoDiego GarcíaDžibutskoDánskoDominikaDominikánská repub" + + "likaAlžírskoCeuta a MelillaEkvádorEstonskoEgyptZápadní SaharaEritreaÅ pan" + + "Ä›lskoEtiopieEvropská unieFinskoFidžiFalklandské ostrovyMikronésieFaersk" + + "é ostrovyFrancieGabonVelká BritánieGrenadaGruzieFrancouzská GuyanaGuern" + + "seyGhanaGibraltarGrónskoGambieGuineaGuadeloupeRovníková GuineaŘeckoJižní" + + " Georgie a Jižní Sandwichovy ostrovyGuatemalaGuamGuinea-BissauGuyanaHong" + + "kong – ZAO ČínyHeardův ostrov a McDonaldovy ostrovyHondurasChorvatskoHai" + + "tiMaÄarskoKanárské ostrovyIndonésieIrskoIzraelOstrov ManIndieBritské ind" + + "ickooceánské územíIrákÃránIslandItálieJerseyJamajkaJordánskoJaponskoKeňa" + + "KyrgyzstánKambodžaKiribatiKomorySvatý KryÅ¡tof a NevisSeverní KoreaJižní " + + "KoreaKuvajtKajmanské ostrovyKazachstánLaosLibanonSvatá LucieLichtenÅ¡tejn" + + "skoSrí LankaLibérieLesothoLitvaLucemburskoLotyÅ¡skoLibyeMarokoMonakoMolda" + + "vskoÄŒerná HoraSvatý Martin (Francie)MadagaskarMarshallovy ostrovyMakedon" + + "ieMaliMyanmar (Barma)MongolskoMacao – ZAO ČínySeverní MarianyMartinikMau" + + "ritánieMontserratMaltaMauriciusMaledivyMalawiMexikoMalajsieMosambikNamib" + + "ieNová KaledonieNigerNorfolkNigérieNikaraguaNizozemskoNorskoNepálNauruNi" + + "ueNový ZélandOmánPanamaPeruFrancouzská PolynésiePapua-Nová GuineaFilipín" + + "yPákistánPolskoSaint-Pierre a MiquelonPitcairnovy ostrovyPortorikoPalest" + + "inská územíPortugalskoPalauParaguayKatarVnÄ›jší OceánieRéunionRumunskoSrb" + + "skoRuskoRwandaSaúdská ArábieÅ alamounovy ostrovySeychelySúdánÅ védskoSinga" + + "purSvatá HelenaSlovinskoÅ picberky a Jan MayenSlovenskoSierra LeoneSan Ma" + + "rinoSenegalSomálskoSurinamJižní SúdánSvatý Tomáš a Princův ostrovSalvado" + + "rSvatý Martin (Nizozemsko)SýrieSvazijskoTristan da CunhaTurks a CaicosÄŒa" + + "dFrancouzská jižní územíTogoThajskoTádžikistánTokelauVýchodní TimorTurkm" + + "enistánTuniskoTongaTureckoTrinidad a TobagoTuvaluTchaj-wanTanzanieUkraji" + + "naUgandaMenší odlehlé ostrovy USASpojené státyUruguayUzbekistánVatikánSv" + + "atý Vincenc a GrenadinyVenezuelaBritské Panenské ostrovyAmerické Panensk" + + "é ostrovyVietnamVanuatuWallis a FutunaSamoaKosovoJemenMayotteJihoafrick" + + "á republikaZambieZimbabweNeznámá oblastSvÄ›tAfrikaSeverní AmerikaJižní A" + + "merikaOceánieZápadní AfrikaStÅ™ední AmerikaVýchodní AfrikaSeverní AfrikaS" + + "tÅ™ední AfrikaJižní AfrikaAmerikaSeverní Amerika (oblast)KaribikVýchodní " + + "AsieJižní AsieJihovýchodní AsieJižní EvropaAustralasieMelanésieMikronési" + + "e (region)PolynésieAsieStÅ™ední AsieZápadní AsieEvropaVýchodní EvropaSeve" + + "rní EvropaZápadní EvropaLatinská Amerika" + +var csRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002a, 0x0037, 0x0048, 0x0050, 0x0058, + 0x0060, 0x0066, 0x0070, 0x0079, 0x0088, 0x0090, 0x009a, 0x009f, + 0x00a6, 0x00b5, 0x00c8, 0x00d0, 0x00db, 0x00e1, 0x00ed, 0x00f6, + 0x00fd, 0x0104, 0x0109, 0x011b, 0x0122, 0x0128, 0x0130, 0x0144, + 0x014d, 0x0153, 0x015b, 0x016b, 0x0173, 0x017d, 0x0183, 0x0189, + 0x019a, 0x01ac, 0x01c5, 0x01da, 0x01e5, 0x01f9, 0x0208, 0x020d, + 0x0214, 0x021a, 0x0222, 0x0236, 0x023f, 0x0243, 0x024b, 0x0253, + 0x0264, 0x0268, 0x0279, 0x0281, 0x028e, 0x0298, 0x029f, 0x02a7, + // Entry 40 - 7F + 0x02bf, 0x02c9, 0x02d8, 0x02e0, 0x02e8, 0x02ed, 0x02fd, 0x0304, + 0x030f, 0x0316, 0x0324, 0x032a, 0x0330, 0x0344, 0x034f, 0x035f, + 0x0366, 0x036b, 0x037b, 0x0382, 0x0388, 0x039b, 0x03a3, 0x03a8, + 0x03b1, 0x03b9, 0x03bf, 0x03c5, 0x03cf, 0x03e1, 0x03e7, 0x0414, + 0x041d, 0x0421, 0x042e, 0x0434, 0x044b, 0x0470, 0x0478, 0x0482, + 0x0487, 0x0490, 0x04a2, 0x04ac, 0x04b1, 0x04b7, 0x04c1, 0x04c6, + 0x04e8, 0x04ed, 0x04f3, 0x04f9, 0x0500, 0x0506, 0x050d, 0x0517, + 0x051f, 0x0524, 0x052f, 0x0538, 0x0540, 0x0546, 0x055d, 0x056b, + // Entry 80 - BF + 0x0578, 0x057e, 0x0590, 0x059b, 0x059f, 0x05a6, 0x05b2, 0x05c2, + 0x05cc, 0x05d4, 0x05db, 0x05e0, 0x05eb, 0x05f4, 0x05f9, 0x05ff, + 0x0605, 0x060e, 0x061a, 0x0631, 0x063b, 0x064e, 0x0657, 0x065b, + 0x066a, 0x0673, 0x0687, 0x0697, 0x069f, 0x06aa, 0x06b4, 0x06b9, + 0x06c2, 0x06ca, 0x06d0, 0x06d6, 0x06de, 0x06e6, 0x06ed, 0x06fc, + 0x0701, 0x0708, 0x0710, 0x0719, 0x0723, 0x0729, 0x072f, 0x0734, + 0x0738, 0x0745, 0x074a, 0x0750, 0x0754, 0x076b, 0x077d, 0x0786, + 0x0790, 0x0796, 0x07ad, 0x07c0, 0x07c9, 0x07dd, 0x07e8, 0x07ed, + // Entry C0 - FF + 0x07f5, 0x07fa, 0x080c, 0x0814, 0x081c, 0x0822, 0x0827, 0x082d, + 0x083e, 0x0852, 0x085a, 0x0861, 0x086a, 0x0872, 0x087f, 0x0888, + 0x089e, 0x08a7, 0x08b3, 0x08bd, 0x08c4, 0x08cd, 0x08d4, 0x08e3, + 0x0903, 0x090b, 0x0925, 0x092b, 0x0934, 0x0944, 0x0952, 0x0956, + 0x0972, 0x0976, 0x097d, 0x098b, 0x0992, 0x09a2, 0x09af, 0x09b6, + 0x09bb, 0x09c2, 0x09d3, 0x09d9, 0x09e2, 0x09ea, 0x09f2, 0x09f8, + 0x0a14, 0x0a23, 0x0a2a, 0x0a35, 0x0a3d, 0x0a57, 0x0a60, 0x0a7a, + 0x0a95, 0x0a9c, 0x0aa3, 0x0ab2, 0x0ab7, 0x0abd, 0x0ac2, 0x0ac9, + // Entry 100 - 13F + 0x0adf, 0x0ae5, 0x0aed, 0x0afd, 0x0b02, 0x0b08, 0x0b18, 0x0b27, + 0x0b2f, 0x0b3f, 0x0b50, 0x0b61, 0x0b70, 0x0b80, 0x0b8e, 0x0b95, + 0x0bae, 0x0bb5, 0x0bc4, 0x0bd0, 0x0be3, 0x0bf1, 0x0bfc, 0x0c06, + 0x0c1a, 0x0c24, 0x0c28, 0x0c36, 0x0c44, 0x0c4a, 0x0c5b, 0x0c6a, + 0x0c7a, 0x0c8b, +} // Size: 604 bytes + +var daRegionStr string = "" + // Size: 2932 bytes + "AscensionøenAndorraDe Forenede Arabiske EmiraterAfghanistanAntigua og Ba" + + "rbudaAnguillaAlbanienArmenienAngolaAntarktisArgentinaAmerikansk SamoaØst" + + "rigAustralienArubaÃ…landAserbajdsjanBosnien-HercegovinaBarbadosBangladesh" + + "BelgienBurkina FasoBulgarienBahrainBurundiBeninSaint BarthélemyBermudaBr" + + "uneiBoliviaDe Nederlandske AntillerBrasilienBahamasBhutanBouvetøenBotswa" + + "naHvideruslandBelizeCanadaCocosøerneCongo-KinshasaDen Centralafrikanske " + + "RepublikCongo-BrazzavilleSchweizElfenbenskystenCookøerneChileCamerounKin" + + "aColombiaClippertonøenCosta RicaCubaKap VerdeCuraçaoJuleøenCypernTjekkie" + + "tTysklandDiego GarciaDjiboutiDanmarkDominicaDen Dominikanske RepublikAlg" + + "erietCeuta og MelillaEcuadorEstlandEgyptenVestsaharaEritreaSpanienEtiopi" + + "enDen Europæiske UnionFinlandFijiFalklandsøerneMikronesiens Forenede Sta" + + "terFærøerneFrankrigGabonStorbritannienGrenadaGeorgienFransk GuyanaGuerns" + + "eyGhanaGibraltarGrønlandGambiaGuineaGuadeloupeÆkvatorialguineaGrækenland" + + "South Georgia og South Sandwich IslandsGuatemalaGuamGuinea-BissauGuyanaH" + + "ongkong SARHeard Island og McDonald IslandsHondurasKroatienHaitiUngarnKa" + + "nariske øerIndonesienIrlandIsraelIsle of ManIndienDet britiske territori" + + "um i Det Indiske OceanIrakIranIslandItalienJerseyJamaicaJordanJapanKenya" + + "KirgisistanCambodjaKiribatiComorerneSaint Kitts og NevisNordkoreaSydkore" + + "aKuwaitCaymanøerneKasakhstanLaosLibanonSaint LuciaLiechtensteinSri Lanka" + + "LiberiaLesothoLitauenLuxembourgLetlandLibyenMarokkoMonacoMoldovaMonteneg" + + "roSaint MartinMadagaskarMarshalløerneMakedonienMaliMyanmar (Burma)Mongol" + + "ietMacao SARNordmarianerneMartiniqueMauretanienMontserratMaltaMauritiusM" + + "aldiverneMalawiMexicoMalaysiaMozambiqueNamibiaNy KaledonienNigerNorfolk " + + "IslandNigeriaNicaraguaHollandNorgeNepalNauruNiueNew ZealandOmanPanamaPer" + + "uFransk PolynesienPapua Ny GuineaFilippinernePakistanPolenSaint Pierre o" + + "g MiquelonPitcairnPuerto RicoDe palæstinensiske omrÃ¥derPortugalPalauPara" + + "guayQatarYdre OceanienRéunionRumænienSerbienRuslandRwandaSaudi-ArabienSa" + + "lomonøerneSeychellerneSudanSverigeSingaporeSt. HelenaSlovenienSvalbard o" + + "g Jan MayenSlovakietSierra LeoneSan MarinoSenegalSomaliaSurinamSydsudanS" + + "ão Tomé og PríncipeEl SalvadorSint MaartenSyrienSwazilandTristan da Cun" + + "haTurks- og CaicosøerneTchadDe franske besiddelser i Det Sydlige Indiske" + + " OceanTogoThailandTadsjikistanTokelauTimor-LesteTurkmenistanTunesienTong" + + "aTyrkietTrinidad og TobagoTuvaluTaiwanTanzaniaUkraineUgandaAmerikanske o" + + "versøiske øerUSAUruguayUsbekistanVatikanstatenSaint Vincent og Grenadine" + + "rneVenezuelaDe Britiske JomfruøerDe Amerikanske JomfruøerVietnamVanuatuW" + + "allis og FutunaSamoaKosovoYemenMayotteSydafrikaZambiaZimbabweUkendt omrÃ¥" + + "deVerdenAfrikaNordamerikaSydamerikaOceanienVestafrikaMellemamerikaØstafr" + + "ikaNordafrikaCentralafrikaDet sydlige AfrikaAmerikaDet nordlige AmerikaC" + + "aribienØstasienSydasienSydøstasienSydeuropaAustralasienMelanesienMikrone" + + "sienPolynesienAsienCentralasienVestasienEuropaØsteuropaNordeuropaVesteur" + + "opaLatinamerika" + +var daRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000d, 0x0014, 0x0031, 0x003c, 0x004e, 0x0056, 0x005e, + 0x0066, 0x006c, 0x0075, 0x007e, 0x008e, 0x0095, 0x009f, 0x00a4, + 0x00aa, 0x00b6, 0x00c9, 0x00d1, 0x00db, 0x00e2, 0x00ee, 0x00f7, + 0x00fe, 0x0105, 0x010a, 0x011b, 0x0122, 0x0128, 0x012f, 0x0147, + 0x0150, 0x0157, 0x015d, 0x0167, 0x016f, 0x017b, 0x0181, 0x0187, + 0x0192, 0x01a0, 0x01be, 0x01cf, 0x01d6, 0x01e5, 0x01ef, 0x01f4, + 0x01fc, 0x0200, 0x0208, 0x0216, 0x0220, 0x0224, 0x022d, 0x0235, + 0x023d, 0x0243, 0x024b, 0x0253, 0x025f, 0x0267, 0x026e, 0x0276, + // Entry 40 - 7F + 0x028f, 0x0297, 0x02a7, 0x02ae, 0x02b5, 0x02bc, 0x02c6, 0x02cd, + 0x02d4, 0x02dc, 0x02f1, 0x02f8, 0x02fc, 0x030b, 0x0327, 0x0331, + 0x0339, 0x033e, 0x034c, 0x0353, 0x035b, 0x0368, 0x0370, 0x0375, + 0x037e, 0x0387, 0x038d, 0x0393, 0x039d, 0x03ae, 0x03b9, 0x03e0, + 0x03e9, 0x03ed, 0x03fa, 0x0400, 0x040c, 0x042c, 0x0434, 0x043c, + 0x0441, 0x0447, 0x0455, 0x045f, 0x0465, 0x046b, 0x0476, 0x047c, + 0x04a8, 0x04ac, 0x04b0, 0x04b6, 0x04bd, 0x04c3, 0x04ca, 0x04d0, + 0x04d5, 0x04da, 0x04e5, 0x04ed, 0x04f5, 0x04fe, 0x0512, 0x051b, + // Entry 80 - BF + 0x0523, 0x0529, 0x0535, 0x053f, 0x0543, 0x054a, 0x0555, 0x0562, + 0x056b, 0x0572, 0x0579, 0x0580, 0x058a, 0x0591, 0x0597, 0x059e, + 0x05a4, 0x05ab, 0x05b5, 0x05c1, 0x05cb, 0x05d9, 0x05e3, 0x05e7, + 0x05f6, 0x05ff, 0x0608, 0x0616, 0x0620, 0x062b, 0x0635, 0x063a, + 0x0643, 0x064d, 0x0653, 0x0659, 0x0661, 0x066b, 0x0672, 0x067f, + 0x0684, 0x0692, 0x0699, 0x06a2, 0x06a9, 0x06ae, 0x06b3, 0x06b8, + 0x06bc, 0x06c7, 0x06cb, 0x06d1, 0x06d5, 0x06e6, 0x06f5, 0x0701, + 0x0709, 0x070e, 0x0726, 0x072e, 0x0739, 0x0755, 0x075d, 0x0762, + // Entry C0 - FF + 0x076a, 0x076f, 0x077c, 0x0784, 0x078d, 0x0794, 0x079b, 0x07a1, + 0x07ae, 0x07bb, 0x07c7, 0x07cc, 0x07d3, 0x07dc, 0x07e6, 0x07ef, + 0x0804, 0x080d, 0x0819, 0x0823, 0x082a, 0x0831, 0x0838, 0x0840, + 0x0857, 0x0862, 0x086e, 0x0874, 0x087d, 0x088d, 0x08a3, 0x08a8, + 0x08da, 0x08de, 0x08e6, 0x08f2, 0x08f9, 0x0904, 0x0910, 0x0918, + 0x091d, 0x0924, 0x0936, 0x093c, 0x0942, 0x094a, 0x0951, 0x0957, + 0x0973, 0x0976, 0x097d, 0x0987, 0x0994, 0x09b1, 0x09ba, 0x09d0, + 0x09e9, 0x09f0, 0x09f7, 0x0a07, 0x0a0c, 0x0a12, 0x0a17, 0x0a1e, + // Entry 100 - 13F + 0x0a27, 0x0a2d, 0x0a35, 0x0a43, 0x0a49, 0x0a4f, 0x0a5a, 0x0a64, + 0x0a6c, 0x0a76, 0x0a83, 0x0a8d, 0x0a97, 0x0aa4, 0x0ab6, 0x0abd, + 0x0ad1, 0x0ad9, 0x0ae2, 0x0aea, 0x0af6, 0x0aff, 0x0b0b, 0x0b15, + 0x0b20, 0x0b2a, 0x0b2f, 0x0b3b, 0x0b44, 0x0b4a, 0x0b54, 0x0b5e, + 0x0b68, 0x0b74, +} // Size: 604 bytes + +var deRegionStr string = "" + // Size: 3082 bytes + "AscensionAndorraVereinigte Arabische EmirateAfghanistanAntigua und Barbu" + + "daAnguillaAlbanienArmenienAngolaAntarktisArgentinienAmerikanisch-SamoaÖs" + + "terreichAustralienArubaÃ…landinselnAserbaidschanBosnien und HerzegowinaBa" + + "rbadosBangladeschBelgienBurkina FasoBulgarienBahrainBurundiBeninSt. Bart" + + "hélemyBermudaBrunei DarussalamBolivienBonaire, Sint Eustatius und SabaBr" + + "asilienBahamasBhutanBouvetinselBotsuanaBelarusBelizeKanadaKokosinselnKon" + + "go-KinshasaZentralafrikanische RepublikKongo-BrazzavilleSchweizCôte d’Iv" + + "oireCookinselnChileKamerunChinaKolumbienClipperton-InselCosta RicaKubaKa" + + "p VerdeCuraçaoWeihnachtsinselZypernTschechische RepublikDeutschlandDiego" + + " GarciaDschibutiDänemarkDominicaDominikanische RepublikAlgerienCeuta und" + + " MelillaEcuadorEstlandÄgyptenWestsaharaEritreaSpanienÄthiopienEuropäisch" + + "e UnionFinnlandFidschiFalklandinselnMikronesienFäröerFrankreichGabunVere" + + "inigtes KönigreichGrenadaGeorgienFranzösisch-GuayanaGuernseyGhanaGibralt" + + "arGrönlandGambiaGuineaGuadeloupeÄquatorialguineaGriechenlandSüdgeorgien " + + "und die Südlichen SandwichinselnGuatemalaGuamGuinea-BissauGuyanaSonderve" + + "rwaltungszone HongkongHeard und McDonaldinselnHondurasKroatienHaitiUngar" + + "nKanarische InselnIndonesienIrlandIsraelIsle of ManIndienBritisches Terr" + + "itorium im Indischen OzeanIrakIranIslandItalienJerseyJamaikaJordanienJap" + + "anKeniaKirgisistanKambodschaKiribatiKomorenSt. Kitts und NevisNordkoreaS" + + "üdkoreaKuwaitKaimaninselnKasachstanLaosLibanonSt. LuciaLiechtensteinSri" + + " LankaLiberiaLesothoLitauenLuxemburgLettlandLibyenMarokkoMonacoRepublik " + + "MoldauMontenegroSt. MartinMadagaskarMarshallinselnMazedonienMaliMyanmarM" + + "ongoleiSonderverwaltungsregion MacauNördliche MarianenMartiniqueMauretan" + + "ienMontserratMaltaMauritiusMaledivenMalawiMexikoMalaysiaMosambikNamibiaN" + + "eukaledonienNigerNorfolkinselNigeriaNicaraguaNiederlandeNorwegenNepalNau" + + "ruNiueNeuseelandOmanPanamaPeruFranzösisch-PolynesienPapua-NeuguineaPhili" + + "ppinenPakistanPolenSt. Pierre und MiquelonPitcairninselnPuerto RicoPaläs" + + "tinensische AutonomiegebietePortugalPalauParaguayKatarÄußeres OzeanienRé" + + "unionRumänienSerbienRusslandRuandaSaudi-ArabienSalomonenSeychellenSudanS" + + "chwedenSingapurSt. HelenaSlowenienSvalbard und Jan MayenSlowakeiSierra L" + + "eoneSan MarinoSenegalSomaliaSurinameSüdsudanSão Tomé und PríncipeEl Salv" + + "adorSint MaartenSyrienSwasilandTristan da CunhaTurks- und CaicosinselnTs" + + "chadFranzösische Süd- und AntarktisgebieteTogoThailandTadschikistanTokel" + + "auTimor-LesteTurkmenistanTunesienTongaTürkeiTrinidad und TobagoTuvaluTai" + + "wanTansaniaUkraineUgandaAmerikanische ÃœberseeinselnVereinigte StaatenUru" + + "guayUsbekistanVatikanstadtSt. Vincent und die GrenadinenVenezuelaBritisc" + + "he JungferninselnAmerikanische JungferninselnVietnamVanuatuWallis und Fu" + + "tunaSamoaKosovoJemenMayotteSüdafrikaSambiaSimbabweUnbekannte RegionWeltA" + + "frikaNordamerikaSüdamerikaOzeanienWestafrikaMittelamerikaOstafrikaNordaf" + + "rikaZentralafrikaSüdliches AfrikaAmerikaNördliches AmerikaKaribikOstasie" + + "nSüdasienSüdostasienSüdeuropaAustralasienMelanesienMikronesisches Inselg" + + "ebietPolynesienAsienZentralasienWestasienEuropaOsteuropaNordeuropaWesteu" + + "ropaLateinamerika" + +var deRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x004a, 0x0052, 0x005a, + 0x0062, 0x0068, 0x0071, 0x007c, 0x008e, 0x0099, 0x00a3, 0x00a8, + 0x00b4, 0x00c1, 0x00d8, 0x00e0, 0x00eb, 0x00f2, 0x00fe, 0x0107, + 0x010e, 0x0115, 0x011a, 0x0129, 0x0130, 0x0141, 0x0149, 0x0169, + 0x0172, 0x0179, 0x017f, 0x018a, 0x0192, 0x0199, 0x019f, 0x01a5, + 0x01b0, 0x01be, 0x01da, 0x01eb, 0x01f2, 0x0202, 0x020c, 0x0211, + 0x0218, 0x021d, 0x0226, 0x0236, 0x0240, 0x0244, 0x024d, 0x0255, + 0x0264, 0x026a, 0x027f, 0x028a, 0x0296, 0x029f, 0x02a8, 0x02b0, + // Entry 40 - 7F + 0x02c7, 0x02cf, 0x02e0, 0x02e7, 0x02ee, 0x02f6, 0x0300, 0x0307, + 0x030e, 0x0318, 0x032a, 0x0332, 0x0339, 0x0347, 0x0352, 0x035a, + 0x0364, 0x0369, 0x0380, 0x0387, 0x038f, 0x03a3, 0x03ab, 0x03b0, + 0x03b9, 0x03c2, 0x03c8, 0x03ce, 0x03d8, 0x03e9, 0x03f5, 0x0423, + 0x042c, 0x0430, 0x043d, 0x0443, 0x0461, 0x0479, 0x0481, 0x0489, + 0x048e, 0x0494, 0x04a5, 0x04af, 0x04b5, 0x04bb, 0x04c6, 0x04cc, + 0x04f5, 0x04f9, 0x04fd, 0x0503, 0x050a, 0x0510, 0x0517, 0x0520, + 0x0525, 0x052a, 0x0535, 0x053f, 0x0547, 0x054e, 0x0561, 0x056a, + // Entry 80 - BF + 0x0573, 0x0579, 0x0585, 0x058f, 0x0593, 0x059a, 0x05a3, 0x05b0, + 0x05b9, 0x05c0, 0x05c7, 0x05ce, 0x05d7, 0x05df, 0x05e5, 0x05ec, + 0x05f2, 0x0601, 0x060b, 0x0615, 0x061f, 0x062d, 0x0637, 0x063b, + 0x0642, 0x064a, 0x0667, 0x067a, 0x0684, 0x068f, 0x0699, 0x069e, + 0x06a7, 0x06b0, 0x06b6, 0x06bc, 0x06c4, 0x06cc, 0x06d3, 0x06e0, + 0x06e5, 0x06f1, 0x06f8, 0x0701, 0x070c, 0x0714, 0x0719, 0x071e, + 0x0722, 0x072c, 0x0730, 0x0736, 0x073a, 0x0751, 0x0760, 0x076b, + 0x0773, 0x0778, 0x078f, 0x079d, 0x07a8, 0x07ca, 0x07d2, 0x07d7, + // Entry C0 - FF + 0x07df, 0x07e4, 0x07f6, 0x07fe, 0x0807, 0x080e, 0x0816, 0x081c, + 0x0829, 0x0832, 0x083c, 0x0841, 0x0849, 0x0851, 0x085b, 0x0864, + 0x087a, 0x0882, 0x088e, 0x0898, 0x089f, 0x08a6, 0x08ae, 0x08b7, + 0x08cf, 0x08da, 0x08e6, 0x08ec, 0x08f5, 0x0905, 0x091c, 0x0922, + 0x094a, 0x094e, 0x0956, 0x0963, 0x096a, 0x0975, 0x0981, 0x0989, + 0x098e, 0x0995, 0x09a8, 0x09ae, 0x09b4, 0x09bc, 0x09c3, 0x09c9, + 0x09e5, 0x09f7, 0x09fe, 0x0a08, 0x0a14, 0x0a32, 0x0a3b, 0x0a53, + 0x0a6f, 0x0a76, 0x0a7d, 0x0a8e, 0x0a93, 0x0a99, 0x0a9e, 0x0aa5, + // Entry 100 - 13F + 0x0aaf, 0x0ab5, 0x0abd, 0x0ace, 0x0ad2, 0x0ad8, 0x0ae3, 0x0aee, + 0x0af6, 0x0b00, 0x0b0d, 0x0b16, 0x0b20, 0x0b2d, 0x0b3e, 0x0b45, + 0x0b58, 0x0b5f, 0x0b67, 0x0b70, 0x0b7c, 0x0b86, 0x0b92, 0x0b9c, + 0x0bb6, 0x0bc0, 0x0bc5, 0x0bd1, 0x0bda, 0x0be0, 0x0be9, 0x0bf3, + 0x0bfd, 0x0c0a, +} // Size: 604 bytes + +var elRegionStr string = "" + // Size: 6223 bytes + "Îήσος ΑσενσιόνΑνδόÏαΗνωμένα ΑÏαβικά ΕμιÏάταΑφγανιστάνΑντίγκουα και ΜπαÏμ" + + "ποÏνταΑνγκουίλαΑλβανίαΑÏμενίαΑνγκόλαΑνταÏκτικήΑÏγεντινήΑμεÏικανική Σαμό" + + "αΑυστÏίαΑυστÏαλίαΑÏοÏμπαÎήσοι ΌλαντΑζεÏμπαϊτζάνΒοσνία - ΕÏζεγοβίνηΜπαÏμ" + + "πάντοςΜπανγκλαντέςΒέλγιοΜπουÏκίνα ΦάσοΒουλγαÏίαΜπαχÏέινΜπουÏοÏντιΜπενίν" + + "Άγιος ΒαÏθολομαίοςΒεÏμοÏδεςΜπÏουνέιΒολιβίαΟλλανδία ΚαÏαϊβικήςΒÏαζιλίαΜπ" + + "αχάμεςΜπουτάνÎήσος ΜπουβέΜποτσουάναΛευκοÏωσίαΜπελίζΚαναδάςÎήσοι Κόκος (" + + "Κίλινγκ)Κονγκό - ΚινσάσαΚεντÏοαφÏικανική ΔημοκÏατίαΚονγκό - ΜπÏαζαβίλΕλ" + + "βετίαΑκτή ΕλεφαντοστοÏÎήσοι ΚουκΧιλήΚαμεÏοÏνΚίναΚολομβίαÎήσος ΚλίπεÏτον" + + "Κόστα ΡίκαΚοÏβαΠÏάσινο ΑκÏωτήÏιοΚουÏασάοÎήσος των ΧÏιστουγέννωνΚÏÏ€ÏοςΤσ" + + "εχική ΔημοκÏατίαΓεÏμανίαÎτιέγκο ΓκαÏσίαΤζιμπουτίΔανίαÎτομίνικαΔομινικαν" + + "ή ΔημοκÏατίαΑλγεÏίαΘεοÏτα και ΜελίλαΕκουαδόÏΕσθονίαΑίγυπτοςΔυτική ΣαχάÏ" + + "αΕÏυθÏαίαΙσπανίαΑιθιοπίαΕυÏωπαϊκή ΈνωσηΦινλανδίαΦίτζιÎήσοι ΦόκλαντΜικÏο" + + "νησίαÎήσοι ΦεÏόεςΓαλλίαΓκαμπόνΗνωμένο ΒασίλειοΓÏενάδαΓεωÏγίαΓαλλική Γου" + + "ιάναΓκέÏνζιΓκάναΓιβÏαλτάÏΓÏοιλανδίαΓκάμπιαΓουινέαΓουαδελοÏπηΙσημεÏινή Γ" + + "ουινέαΕλλάδαÎήσοι Îότια ΓεωÏγία και Îότιες ΣάντουιτςΓουατεμάλαΓκουάμΓου" + + "ινέα ΜπισάουΓουιάναΧονγκ Κονγκ ΕΔΠ ΚίναςÎήσοι ΧεÏντ και ΜακντόναλντΟνδο" + + "ÏÏαΚÏοατίαΑϊτήΟυγγαÏίαΚανάÏιοι ÎήσοιΙνδονησίαΙÏλανδίαΙσÏαήλÎήσος ΜανΙνδ" + + "ίαΒÏετανικά Εδάφη Î™Î½Î´Î¹ÎºÎ¿Ï Î©ÎºÎµÎ±Î½Î¿ÏΙÏάκΙÏάνΙσλανδίαΙταλίαΤζέÏζιΤζαμάικαΙο" + + "ÏδανίαΙαπωνίαΚένυαΚιÏγιστάνΚαμπότζηΚιÏιμπάτιΚομόÏεςΆγιος ΧÏιστόφοÏος κα" + + "ι ÎέβιςΒόÏεια ΚοÏέαÎότια ΚοÏέαΚουβέιτÎήσοι ΚάιμανΚαζακστάνΛάοςΛίβανοςΑγ" + + "ία ΛουκίαΛιχτενστάινΣÏι ΛάνκαΛιβεÏίαΛεσότοΛιθουανίαΛουξεμβοÏÏγοΛετονίαΛ" + + "ιβÏηΜαÏόκοΜονακόΜολδαβίαΜαυÏοβοÏνιοΆγιος ΜαÏτίνος (Γαλλικό τμήμα)Μαδαγα" + + "σκάÏηÎήσοι ΜάÏσαλΠÏώην Γιουγκοσλαβική ΔημοκÏατία της ΜακεδονίαςΜάλιΜιαν" + + "μάÏ/ΒιÏμανίαΜογγολίαΜακάο ΕΔΠ ΚίναςÎήσοι Î’ÏŒÏειες ΜαÏιάνεςΜαÏτινίκαΜαυÏι" + + "τανίαΜονσεÏάτΜάλταΜαυÏίκιοςΜαλδίβεςΜαλάουιΜεξικόΜαλαισίαΜοζαμβίκηÎαμίμπ" + + "ιαÎέα ΚαληδονίαÎίγηÏαςÎήσος ÎÏŒÏφολκÎιγηÏίαÎικαÏάγουαΟλλανδίαÎοÏβηγίαÎεπ" + + "άλÎαουÏοÏÎιοÏεÎέα ΖηλανδίαΟμάνΠαναμάςΠεÏοÏΓαλλική ΠολυνησίαΠαποÏα Îέα Γ" + + "ουινέαΦιλιππίνεςΠακιστάνΠολωνίαΣεν Î Î¹ÎµÏ ÎºÎ±Î¹ ΜικελόνÎήσοι ΠίτκεÏνΠουέÏτο" + + " ΡίκοΠαλαιστινιακά ΕδάφηΠοÏτογαλίαΠαλάουΠαÏαγουάηΚατάÏΠεÏιφεÏειακή Ωκεαν" + + "ίαΡεϊνιόνΡουμανίαΣεÏβίαΡωσίαΡουάνταΣαουδική ΑÏαβίαÎήσοι ΣολομώντοςΣεϋχέ" + + "λλεςΣουδάνΣουηδίαΣιγκαποÏÏηΑγία ΕλένηΣλοβενίαΣβάλμπαÏντ και Γιαν Μαγιέν" + + "ΣλοβακίαΣιέÏα ΛεόνεΆγιος ΜαÏίνοςΣενεγάληΣομαλίαΣουÏινάμÎότιο ΣουδάνΣάο " + + "Τομέ και ΠÏίνσιπεΕλ ΣαλβαδόÏΆγιος ΜαÏτίνος (Ολλανδικό τμήμα)ΣυÏίαΣουαζι" + + "λάνδηΤÏιστάν ντα ΚοÏνιαÎήσοι ΤεÏκ και ΚάικοςΤσαντΓαλλικές πεÏιοχές του " + + "νοτίου ημισφαιÏίουΤόγκοΤαϊλάνδηΤατζικιστάνΤοκελάουΤιμόÏ-ΛέστεΤουÏκμενισ" + + "τάνΤυνησίαΤόνγκαΤουÏκίαΤÏινιντάντ και ΤομπάγκοΤουβαλοÏΤαϊβάνΤανζανίαΟυκ" + + "ÏανίαΟυγκάνταΑπομακÏυσμένες Îησίδες ΗΠΑΗνωμένες ΠολιτείεςΟυÏουγουάηΟυζμ" + + "πεκιστάνΒατικανόΆγιος Βικέντιος και ΓÏεναδίνεςΒενεζουέλαΒÏετανικές ΠαÏθ" + + "ένοι ÎήσοιΑμεÏικανικές ΠαÏθένοι ÎήσοιΒιετνάμΒανουάτουΟυάλις και ΦουτοÏν" + + "αΣαμόαΚόσοβοΥεμένηΜαγιότÎότια ΑφÏικήΖάμπιαΖιμπάμπουεΆγνωστη πεÏιοχήΚόσμ" + + "οςΑφÏικήΒόÏεια ΑμεÏικήÎότια ΑμεÏικήΩκεανίαΔυτική ΑφÏικήΚεντÏική ΑμεÏική" + + "Ανατολική ΑφÏικήΒόÏεια ΑφÏικήΜέση ΑφÏικήÎότιος ΑφÏικήΑμεÏικήΒόÏειος Αμε" + + "ÏικήΚαÏαϊβικήΑνατολική ΑσίαÎότια ΑσίαÎοτιοανατολική ΑσίαÎότια ΕυÏώπηΑυσ" + + "Ï„ÏαλασίαΜελανησίαΠεÏιοχή ΜικÏονησίαςΠολυνησίαΑσίαΚεντÏική ΑσίαΔυτική Ασ" + + "ίαΕυÏώπηΑνατολική ΕυÏώπηΒόÏεια ΕυÏώπηΔυτική ΕυÏώπηΛατινική ΑμεÏική" + +var elRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0027, 0x0053, 0x0067, 0x0097, 0x00a9, 0x00b7, + 0x00c5, 0x00d3, 0x00e7, 0x00f9, 0x011a, 0x0128, 0x013a, 0x0148, + 0x015d, 0x0175, 0x0198, 0x01ae, 0x01c6, 0x01d2, 0x01ed, 0x01ff, + 0x020f, 0x0223, 0x022f, 0x0252, 0x0264, 0x0274, 0x0282, 0x02a7, + 0x02b7, 0x02c7, 0x02d5, 0x02ec, 0x0300, 0x0314, 0x0320, 0x032e, + 0x0354, 0x0371, 0x03a6, 0x03c7, 0x03d5, 0x03f6, 0x0409, 0x0411, + 0x0421, 0x0429, 0x0439, 0x0456, 0x0469, 0x0473, 0x0494, 0x04a4, + 0x04d0, 0x04dc, 0x04ff, 0x050f, 0x052c, 0x053e, 0x0548, 0x055a, + // Entry 40 - 7F + 0x0583, 0x0591, 0x05b1, 0x05c1, 0x05cf, 0x05df, 0x05f8, 0x0608, + 0x0616, 0x0626, 0x0643, 0x0655, 0x065f, 0x0678, 0x068c, 0x06a3, + 0x06af, 0x06bd, 0x06dc, 0x06ea, 0x06f8, 0x0715, 0x0723, 0x072d, + 0x073f, 0x0753, 0x0761, 0x076f, 0x0785, 0x07a6, 0x07b2, 0x07fd, + 0x0811, 0x081d, 0x083a, 0x0848, 0x086f, 0x08a2, 0x08b0, 0x08be, + 0x08c6, 0x08d6, 0x08f1, 0x0903, 0x0913, 0x091f, 0x0930, 0x093a, + 0x0975, 0x097d, 0x0985, 0x0995, 0x09a1, 0x09ad, 0x09bd, 0x09cd, + 0x09db, 0x09e5, 0x09f7, 0x0a07, 0x0a19, 0x0a27, 0x0a5a, 0x0a71, + // Entry 80 - BF + 0x0a86, 0x0a94, 0x0aab, 0x0abd, 0x0ac5, 0x0ad3, 0x0ae8, 0x0afe, + 0x0b0f, 0x0b1d, 0x0b29, 0x0b3b, 0x0b53, 0x0b61, 0x0b6b, 0x0b77, + 0x0b83, 0x0b93, 0x0ba9, 0x0be0, 0x0bf6, 0x0c0d, 0x0c65, 0x0c6d, + 0x0c8c, 0x0c9c, 0x0cb8, 0x0ce2, 0x0cf4, 0x0d08, 0x0d18, 0x0d22, + 0x0d34, 0x0d44, 0x0d52, 0x0d5e, 0x0d6e, 0x0d80, 0x0d90, 0x0da9, + 0x0db7, 0x0dd0, 0x0dde, 0x0df2, 0x0e02, 0x0e12, 0x0e1c, 0x0e2a, + 0x0e34, 0x0e4b, 0x0e53, 0x0e61, 0x0e6b, 0x0e8c, 0x0eae, 0x0ec2, + 0x0ed2, 0x0ee0, 0x0f05, 0x0f1e, 0x0f35, 0x0f5a, 0x0f6e, 0x0f7a, + // Entry C0 - FF + 0x0f8c, 0x0f96, 0x0fbd, 0x0fcb, 0x0fdb, 0x0fe7, 0x0ff1, 0x0fff, + 0x101c, 0x103b, 0x104d, 0x1059, 0x1067, 0x107b, 0x108e, 0x109e, + 0x10cf, 0x10df, 0x10f4, 0x110d, 0x111d, 0x112b, 0x113b, 0x1152, + 0x1179, 0x118e, 0x11c9, 0x11d3, 0x11e9, 0x120b, 0x1232, 0x123c, + 0x1288, 0x1292, 0x12a2, 0x12b8, 0x12c8, 0x12dd, 0x12f7, 0x1305, + 0x1311, 0x131f, 0x134b, 0x135b, 0x1367, 0x1377, 0x1387, 0x1397, + 0x13c9, 0x13ec, 0x1400, 0x1418, 0x1428, 0x1461, 0x1475, 0x14a5, + 0x14d9, 0x14e7, 0x14f9, 0x151d, 0x1527, 0x1533, 0x153f, 0x154b, + // Entry 100 - 13F + 0x1562, 0x156e, 0x1582, 0x159f, 0x15ab, 0x15b7, 0x15d2, 0x15eb, + 0x15f9, 0x1612, 0x1631, 0x1650, 0x1669, 0x167e, 0x1697, 0x16a5, + 0x16c2, 0x16d4, 0x16ef, 0x1702, 0x1727, 0x173e, 0x1754, 0x1766, + 0x178b, 0x179d, 0x17a5, 0x17be, 0x17d3, 0x17df, 0x17fe, 0x1817, + 0x1830, 0x184f, +} // Size: 604 bytes + +var enRegionStr string = "" + // Size: 2920 bytes + "Ascension IslandAndorraUnited Arab EmiratesAfghanistanAntigua & BarbudaA" + + "nguillaAlbaniaArmeniaAngolaAntarcticaArgentinaAmerican SamoaAustriaAustr" + + "aliaArubaÃ…land IslandsAzerbaijanBosnia & HerzegovinaBarbadosBangladeshBe" + + "lgiumBurkina FasoBulgariaBahrainBurundiBeninSt. BarthélemyBermudaBruneiB" + + "oliviaCaribbean NetherlandsBrazilBahamasBhutanBouvet IslandBotswanaBelar" + + "usBelizeCanadaCocos (Keeling) IslandsCongo - KinshasaCentral African Rep" + + "ublicCongo - BrazzavilleSwitzerlandCôte d’IvoireCook IslandsChileCameroo" + + "nChinaColombiaClipperton IslandCosta RicaCubaCape VerdeCuraçaoChristmas " + + "IslandCyprusCzech RepublicGermanyDiego GarciaDjiboutiDenmarkDominicaDomi" + + "nican RepublicAlgeriaCeuta & MelillaEcuadorEstoniaEgyptWestern SaharaEri" + + "treaSpainEthiopiaEuropean UnionFinlandFijiFalkland IslandsMicronesiaFaro" + + "e IslandsFranceGabonUnited KingdomGrenadaGeorgiaFrench GuianaGuernseyGha" + + "naGibraltarGreenlandGambiaGuineaGuadeloupeEquatorial GuineaGreeceSouth G" + + "eorgia & South Sandwich IslandsGuatemalaGuamGuinea-BissauGuyanaHong Kong" + + " SAR ChinaHeard & McDonald IslandsHondurasCroatiaHaitiHungaryCanary Isla" + + "ndsIndonesiaIrelandIsraelIsle of ManIndiaBritish Indian Ocean TerritoryI" + + "raqIranIcelandItalyJerseyJamaicaJordanJapanKenyaKyrgyzstanCambodiaKiriba" + + "tiComorosSt. Kitts & NevisNorth KoreaSouth KoreaKuwaitCayman IslandsKaza" + + "khstanLaosLebanonSt. LuciaLiechtensteinSri LankaLiberiaLesothoLithuaniaL" + + "uxembourgLatviaLibyaMoroccoMonacoMoldovaMontenegroSt. MartinMadagascarMa" + + "rshall IslandsMacedoniaMaliMyanmar (Burma)MongoliaMacau SAR ChinaNorther" + + "n Mariana IslandsMartiniqueMauritaniaMontserratMaltaMauritiusMaldivesMal" + + "awiMexicoMalaysiaMozambiqueNamibiaNew CaledoniaNigerNorfolk IslandNigeri" + + "aNicaraguaNetherlandsNorwayNepalNauruNiueNew ZealandOmanPanamaPeruFrench" + + " PolynesiaPapua New GuineaPhilippinesPakistanPolandSt. Pierre & Miquelon" + + "Pitcairn IslandsPuerto RicoPalestinian TerritoriesPortugalPalauParaguayQ" + + "atarOutlying OceaniaRéunionRomaniaSerbiaRussiaRwandaSaudi ArabiaSolomon " + + "IslandsSeychellesSudanSwedenSingaporeSt. HelenaSloveniaSvalbard & Jan Ma" + + "yenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinameSouth SudanSão To" + + "mé & PríncipeEl SalvadorSint MaartenSyriaSwazilandTristan da CunhaTurks " + + "& Caicos IslandsChadFrench Southern TerritoriesTogoThailandTajikistanTok" + + "elauTimor-LesteTurkmenistanTunisiaTongaTurkeyTrinidad & TobagoTuvaluTaiw" + + "anTanzaniaUkraineUgandaU.S. Outlying IslandsUnited StatesUruguayUzbekist" + + "anVatican CitySt. Vincent & GrenadinesVenezuelaBritish Virgin IslandsU.S" + + ". Virgin IslandsVietnamVanuatuWallis & FutunaSamoaKosovoYemenMayotteSout" + + "h AfricaZambiaZimbabweUnknown RegionWorldAfricaNorth AmericaSouth Americ" + + "aOceaniaWestern AfricaCentral AmericaEastern AfricaNorthern AfricaMiddle" + + " AfricaSouthern AfricaAmericasNorthern AmericaCaribbeanEastern AsiaSouth" + + "ern AsiaSoutheast AsiaSouthern EuropeAustralasiaMelanesiaMicronesian Reg" + + "ionPolynesiaAsiaCentral AsiaWestern AsiaEuropeEastern EuropeNorthern Eur" + + "opeWestern EuropeLatin America" + +var enRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x002b, 0x0036, 0x0047, 0x004f, 0x0056, + 0x005d, 0x0063, 0x006d, 0x0076, 0x0084, 0x008b, 0x0094, 0x0099, + 0x00a7, 0x00b1, 0x00c5, 0x00cd, 0x00d7, 0x00de, 0x00ea, 0x00f2, + 0x00f9, 0x0100, 0x0105, 0x0114, 0x011b, 0x0121, 0x0128, 0x013d, + 0x0143, 0x014a, 0x0150, 0x015d, 0x0165, 0x016c, 0x0172, 0x0178, + 0x018f, 0x019f, 0x01b7, 0x01ca, 0x01d5, 0x01e5, 0x01f1, 0x01f6, + 0x01fe, 0x0203, 0x020b, 0x021c, 0x0226, 0x022a, 0x0234, 0x023c, + 0x024c, 0x0252, 0x0260, 0x0267, 0x0273, 0x027b, 0x0282, 0x028a, + // Entry 40 - 7F + 0x029c, 0x02a3, 0x02b2, 0x02b9, 0x02c0, 0x02c5, 0x02d3, 0x02da, + 0x02df, 0x02e7, 0x02f5, 0x02fc, 0x0300, 0x0310, 0x031a, 0x0327, + 0x032d, 0x0332, 0x0340, 0x0347, 0x034e, 0x035b, 0x0363, 0x0368, + 0x0371, 0x037a, 0x0380, 0x0386, 0x0390, 0x03a1, 0x03a7, 0x03cd, + 0x03d6, 0x03da, 0x03e7, 0x03ed, 0x0400, 0x0418, 0x0420, 0x0427, + 0x042c, 0x0433, 0x0441, 0x044a, 0x0451, 0x0457, 0x0462, 0x0467, + 0x0485, 0x0489, 0x048d, 0x0494, 0x0499, 0x049f, 0x04a6, 0x04ac, + 0x04b1, 0x04b6, 0x04c0, 0x04c8, 0x04d0, 0x04d7, 0x04e8, 0x04f3, + // Entry 80 - BF + 0x04fe, 0x0504, 0x0512, 0x051c, 0x0520, 0x0527, 0x0530, 0x053d, + 0x0546, 0x054d, 0x0554, 0x055d, 0x0567, 0x056d, 0x0572, 0x0579, + 0x057f, 0x0586, 0x0590, 0x059a, 0x05a4, 0x05b4, 0x05bd, 0x05c1, + 0x05d0, 0x05d8, 0x05e7, 0x05ff, 0x0609, 0x0613, 0x061d, 0x0622, + 0x062b, 0x0633, 0x0639, 0x063f, 0x0647, 0x0651, 0x0658, 0x0665, + 0x066a, 0x0678, 0x067f, 0x0688, 0x0693, 0x0699, 0x069e, 0x06a3, + 0x06a7, 0x06b2, 0x06b6, 0x06bc, 0x06c0, 0x06d0, 0x06e0, 0x06eb, + 0x06f3, 0x06f9, 0x070e, 0x071e, 0x0729, 0x0740, 0x0748, 0x074d, + // Entry C0 - FF + 0x0755, 0x075a, 0x076a, 0x0772, 0x0779, 0x077f, 0x0785, 0x078b, + 0x0797, 0x07a6, 0x07b0, 0x07b5, 0x07bb, 0x07c4, 0x07ce, 0x07d6, + 0x07ea, 0x07f2, 0x07fe, 0x0808, 0x080f, 0x0816, 0x081e, 0x0829, + 0x083f, 0x084a, 0x0856, 0x085b, 0x0864, 0x0874, 0x088a, 0x088e, + 0x08a9, 0x08ad, 0x08b5, 0x08bf, 0x08c6, 0x08d1, 0x08dd, 0x08e4, + 0x08e9, 0x08ef, 0x0900, 0x0906, 0x090c, 0x0914, 0x091b, 0x0921, + 0x0936, 0x0943, 0x094a, 0x0954, 0x0960, 0x0978, 0x0981, 0x0997, + 0x09aa, 0x09b1, 0x09b8, 0x09c7, 0x09cc, 0x09d2, 0x09d7, 0x09de, + // Entry 100 - 13F + 0x09ea, 0x09f0, 0x09f8, 0x0a06, 0x0a0b, 0x0a11, 0x0a1e, 0x0a2b, + 0x0a32, 0x0a40, 0x0a4f, 0x0a5d, 0x0a6c, 0x0a79, 0x0a88, 0x0a90, + 0x0aa0, 0x0aa9, 0x0ab5, 0x0ac2, 0x0ad0, 0x0adf, 0x0aea, 0x0af3, + 0x0b05, 0x0b0e, 0x0b12, 0x0b1e, 0x0b2a, 0x0b30, 0x0b3e, 0x0b4d, + 0x0b5b, 0x0b68, +} // Size: 604 bytes + +const enGBRegionStr string = "" + +var enGBRegionIdx = []uint16{ // 0 elements + +} // Size: 24 bytes + +var esRegionStr string = "" + // Size: 3107 bytes + "Isla de la AscensiónAndorraEmiratos Ãrabes UnidosAfganistánAntigua y Bar" + + "budaAnguilaAlbaniaArmeniaAngolaAntártidaArgentinaSamoa AmericanaAustriaA" + + "ustraliaArubaIslas Ã…landAzerbaiyánBosnia-HerzegovinaBarbadosBangladésBél" + + "gicaBurkina FasoBulgariaBaréinBurundiBenínSan BartoloméBermudasBrunéiBol" + + "iviaCaribe neerlandésBrasilBahamasButánIsla BouvetBotsuanaBielorrusiaBel" + + "iceCanadáIslas CocosRepública Democrática del CongoRepública Centroafric" + + "anaRepública del CongoSuizaCosta de MarfilIslas CookChileCamerúnChinaCol" + + "ombiaIsla ClippertonCosta RicaCubaCabo VerdeCurazaoIsla de NavidadChipre" + + "República ChecaAlemaniaDiego GarcíaYibutiDinamarcaDominicaRepública Domi" + + "nicanaArgeliaCeuta y MelillaEcuadorEstoniaEgiptoSáhara OccidentalEritrea" + + "EspañaEtiopíaUnión EuropeaFinlandiaFiyiIslas MalvinasMicronesiaIslas Fer" + + "oeFranciaGabónReino UnidoGranadaGeorgiaGuayana FrancesaGuerneseyGhanaGib" + + "raltarGroenlandiaGambiaGuineaGuadalupeGuinea EcuatorialGreciaIslas Georg" + + "ia del Sur y Sandwich del SurGuatemalaGuamGuinea-BisáuGuyanaRAE de Hong " + + "Kong (China)Islas Heard y McDonaldHondurasCroaciaHaitíHungríaCanariasInd" + + "onesiaIrlandaIsraelIsla de ManIndiaTerritorio Británico del Océano Ãndic" + + "oIrakIránIslandiaItaliaJerseyJamaicaJordaniaJapónKeniaKirguistánCamboyaK" + + "iribatiComorasSan Cristóbal y NievesCorea del NorteCorea del SurKuwaitIs" + + "las CaimánKazajistánLaosLíbanoSanta LucíaLiechtensteinSri LankaLiberiaLe" + + "sotoLituaniaLuxemburgoLetoniaLibiaMarruecosMónacoMoldaviaMontenegroSan M" + + "artínMadagascarIslas MarshallMacedoniaMaliMyanmar (Birmania)MongoliaRAE " + + "de Macao (China)Islas Marianas del NorteMartinicaMauritaniaMontserratMal" + + "taMauricioMaldivasMalauiMéxicoMalasiaMozambiqueNamibiaNueva CaledoniaNíg" + + "erIsla NorfolkNigeriaNicaraguaPaíses BajosNoruegaNepalNauruNiueNueva Zel" + + "andaOmánPanamáPerúPolinesia FrancesaPapúa Nueva GuineaFilipinasPakistánP" + + "oloniaSan Pedro y MiquelónIslas PitcairnPuerto RicoTerritorios Palestino" + + "sPortugalPalaosParaguayCatarTerritorios alejados de OceaníaReuniónRumaní" + + "aSerbiaRusiaRuandaArabia SaudíIslas SalomónSeychellesSudánSueciaSingapur" + + "Santa ElenaEsloveniaSvalbard y Jan MayenEslovaquiaSierra LeonaSan Marino" + + "SenegalSomaliaSurinamSudán del SurSanto Tomé y PríncipeEl SalvadorSint M" + + "aartenSiriaSuazilandiaTristán da CunhaIslas Turcas y CaicosChadTerritori" + + "os Australes FrancesesTogoTailandiaTayikistánTokelauTimor OrientalTurkme" + + "nistánTúnezTongaTurquíaTrinidad y TobagoTuvaluTaiwánTanzaniaUcraniaUgand" + + "aIslas menores alejadas de EE. UU.Estados UnidosUruguayUzbekistánCiudad " + + "del VaticanoSan Vicente y las GranadinasVenezuelaIslas Vírgenes Británic" + + "asIslas Vírgenes de EE. UU.VietnamVanuatuWallis y FutunaSamoaKosovoYemen" + + "MayotteSudáfricaZambiaZimbabueRegión desconocidaMundoÃfricaAmérica del N" + + "orteSudaméricaOceaníaÃfrica occidentalCentroaméricaÃfrica orientalÃfrica" + + " septentrionalÃfrica centralÃfrica meridionalAméricaNorteaméricaCaribeAs" + + "ia orientalAsia meridionalSudeste asiáticoEuropa meridionalAustralasiaMe" + + "lanesiaRegión de MicronesiaPolinesiaAsiaAsia centralAsia occidentalEurop" + + "aEuropa orientalEuropa septentrionalEuropa occidentalLatinoamérica" + +var esRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x001c, 0x0033, 0x003e, 0x004f, 0x0056, 0x005d, + 0x0064, 0x006a, 0x0074, 0x007d, 0x008c, 0x0093, 0x009c, 0x00a1, + 0x00ad, 0x00b8, 0x00ca, 0x00d2, 0x00dc, 0x00e4, 0x00f0, 0x00f8, + 0x00ff, 0x0106, 0x010c, 0x011a, 0x0122, 0x0129, 0x0130, 0x0142, + 0x0148, 0x014f, 0x0155, 0x0160, 0x0168, 0x0173, 0x0179, 0x0180, + 0x018b, 0x01ac, 0x01c5, 0x01d9, 0x01de, 0x01ed, 0x01f7, 0x01fc, + 0x0204, 0x0209, 0x0211, 0x0220, 0x022a, 0x022e, 0x0238, 0x023f, + 0x024e, 0x0254, 0x0264, 0x026c, 0x0279, 0x027f, 0x0288, 0x0290, + // Entry 40 - 7F + 0x02a5, 0x02ac, 0x02bb, 0x02c2, 0x02c9, 0x02cf, 0x02e1, 0x02e8, + 0x02ef, 0x02f7, 0x0305, 0x030e, 0x0312, 0x0320, 0x032a, 0x0335, + 0x033c, 0x0342, 0x034d, 0x0354, 0x035b, 0x036b, 0x0374, 0x0379, + 0x0382, 0x038d, 0x0393, 0x0399, 0x03a2, 0x03b3, 0x03b9, 0x03e1, + 0x03ea, 0x03ee, 0x03fb, 0x0401, 0x0419, 0x042f, 0x0437, 0x043e, + 0x0444, 0x044c, 0x0454, 0x045d, 0x0464, 0x046a, 0x0475, 0x047a, + 0x04a3, 0x04a7, 0x04ac, 0x04b4, 0x04ba, 0x04c0, 0x04c7, 0x04cf, + 0x04d5, 0x04da, 0x04e5, 0x04ec, 0x04f4, 0x04fb, 0x0512, 0x0521, + // Entry 80 - BF + 0x052e, 0x0534, 0x0541, 0x054c, 0x0550, 0x0557, 0x0563, 0x0570, + 0x0579, 0x0580, 0x0586, 0x058e, 0x0598, 0x059f, 0x05a4, 0x05ad, + 0x05b4, 0x05bc, 0x05c6, 0x05d1, 0x05db, 0x05e9, 0x05f2, 0x05f6, + 0x0608, 0x0610, 0x0624, 0x063c, 0x0645, 0x064f, 0x0659, 0x065e, + 0x0666, 0x066e, 0x0674, 0x067b, 0x0682, 0x068c, 0x0693, 0x06a2, + 0x06a8, 0x06b4, 0x06bb, 0x06c4, 0x06d1, 0x06d8, 0x06dd, 0x06e2, + 0x06e6, 0x06f3, 0x06f8, 0x06ff, 0x0704, 0x0716, 0x0729, 0x0732, + 0x073b, 0x0742, 0x0757, 0x0765, 0x0770, 0x0786, 0x078e, 0x0794, + // Entry C0 - FF + 0x079c, 0x07a1, 0x07c1, 0x07c9, 0x07d1, 0x07d7, 0x07dc, 0x07e2, + 0x07ef, 0x07fd, 0x0807, 0x080d, 0x0813, 0x081b, 0x0826, 0x082f, + 0x0843, 0x084d, 0x0859, 0x0863, 0x086a, 0x0871, 0x0878, 0x0886, + 0x089d, 0x08a8, 0x08b4, 0x08b9, 0x08c4, 0x08d5, 0x08ea, 0x08ee, + 0x090d, 0x0911, 0x091a, 0x0925, 0x092c, 0x093a, 0x0947, 0x094d, + 0x0952, 0x095a, 0x096b, 0x0971, 0x0978, 0x0980, 0x0987, 0x098d, + 0x09ae, 0x09bc, 0x09c3, 0x09ce, 0x09e1, 0x09fd, 0x0a06, 0x0a21, + 0x0a3b, 0x0a42, 0x0a49, 0x0a58, 0x0a5d, 0x0a63, 0x0a68, 0x0a6f, + // Entry 100 - 13F + 0x0a79, 0x0a7f, 0x0a87, 0x0a9a, 0x0a9f, 0x0aa6, 0x0ab8, 0x0ac3, + 0x0acb, 0x0add, 0x0aeb, 0x0afb, 0x0b10, 0x0b1f, 0x0b31, 0x0b39, + 0x0b46, 0x0b4c, 0x0b59, 0x0b68, 0x0b79, 0x0b8a, 0x0b95, 0x0b9e, + 0x0bb3, 0x0bbc, 0x0bc0, 0x0bcc, 0x0bdb, 0x0be1, 0x0bf0, 0x0c04, + 0x0c15, 0x0c23, +} // Size: 604 bytes + +const es419RegionStr string = "" + +var es419RegionIdx = []uint16{ // 0 elements + +} // Size: 24 bytes + +var etRegionStr string = "" + // Size: 2976 bytes + "Ascensioni saarAndorraAraabia ÃœhendemiraadidAfganistanAntigua ja Barbuda" + + "AnguillaAlbaaniaArmeeniaAngolaAntarktisArgentinaAmeerika SamoaAustriaAus" + + "traaliaArubaAhvenamaaAserbaidžaanBosnia ja HertsegoviinaBarbadosBanglade" + + "shBelgiaBurkina FasoBulgaariaBahreinBurundiBeninSaint BarthélemyBermudaB" + + "runeiBoliiviaHollandi Kariibi mere saaredBrasiiliaBahamaBhutanBouvet’ sa" + + "arBotswanaValgeveneBelizeKanadaKookossaaredKongo DVKesk-Aafrika Vabariik" + + "Kongo VabariikÅ veitsCôte d’IvoireCooki saaredTÅ¡iiliKamerunHiinaColombiaC" + + "lippertoni saarCosta RicaKuubaRoheneemesaaredCuraçaoJõulusaarKüprosTÅ¡ehh" + + "iSaksamaaDiego GarciaDjiboutiTaaniDominicaDominikaani VabariikAlžeeriaCe" + + "uta ja MelillaEcuadorEestiEgiptusLääne-SaharaEritreaHispaaniaEtioopiaEur" + + "oopa LiitSoomeFidžiFalklandi saaredMikroneesiaFääri saaredPrantsusmaaGab" + + "onSuurbritanniaGrenadaGruusiaPrantsuse GuajaanaGuernseyGhanaGibraltarGrö" + + "önimaaGambiaGuineaGuadeloupeEkvatoriaal-GuineaKreekaLõuna-Georgia ja Lõ" + + "una-Sandwichi saaredGuatemalaGuamGuinea-BissauGuyanaHongkongi erihaldusp" + + "iirkondHeardi ja McDonaldi saaredHondurasHorvaatiaHaitiUngariKanaari saa" + + "redIndoneesiaIirimaaIisraelMani saarIndiaBriti India ookeani alaIraakIra" + + "anIslandItaaliaJerseyJamaicaJordaaniaJaapanKeeniaKõrgõzstanKambodžaKirib" + + "atiKomooridSaint Kitts ja NevisPõhja-KoreaLõuna-KoreaKuveitKaimanisaared" + + "KasahstanLaosLiibanonSaint LuciaLiechtensteinSri LankaLibeeriaLesothoLee" + + "duLuksemburgLätiLiibüaMarokoMonacoMoldovaMontenegroSaint-MartinMadagaska" + + "rMarshalli SaaredMakedooniaMaliMyanmar (Birma)MongooliaMacau erihalduspi" + + "irkondPõhja-MariaanidMartiniqueMauritaaniaMontserratMaltaMauritiusMaldii" + + "vidMalawiMehhikoMalaisiaMosambiikNamiibiaUus-KaledooniaNigerNorfolkNigee" + + "riaNicaraguaHollandNorraNepalNauruNiueUus-MeremaaOmaanPanamaPeruuPrantsu" + + "se PolüneesiaPaapua Uus-GuineaFilipiinidPakistanPoolaSaint Pierre ja Miq" + + "uelonPitcairni saaredPuerto RicoPalestiina aladPortugalBelauParaguayKata" + + "rOkeaania hajasaaredRéunionRumeeniaSerbiaVenemaaRwandaSaudi AraabiaSaalo" + + "moni SaaredSeiÅ¡ellidSudaanRootsiSingapurSaint HelenaSloveeniaSvalbard ja" + + " Jan MayenSlovakkiaSierra LeoneSan MarinoSenegalSomaaliaSurinameLõuna-Su" + + "daanSão Tomé ja PríncipeEl SalvadorSint MaartenSüüriaSvaasimaaTristan da" + + " CunhaTurks ja CaicosTÅ¡aadPrantsuse LõunaaladTogoTaiTadžikistanTokelauId" + + "a-TimorTürkmenistanTuneesiaTongaTürgiTrinidad ja TobagoTuvaluTaiwanTansa" + + "aniaUkrainaUgandaÃœhendriikide hajasaaredAmeerika ÃœhendriigidUruguayUsbek" + + "istanVatikanSaint Vincent ja GrenadiinidVenezuelaBriti NeitsisaaredUSA N" + + "eitsisaaredVietnamVanuatuWallis ja FutunaSamoaKosovoJeemenMayotteLõuna-A" + + "afrika VabariikSambiaZimbabweTundmatu piirkondmaailmAafrikaPõhja-Ameerik" + + "aLõuna-AmeerikaOkeaaniaLääne-AafrikaKesk-AmeerikaIda-AafrikaPõhja-Aafrik" + + "aKesk-AafrikaLõuna-AafrikaAmeerikaAmeerika põhjaosaKariibi piirkondIda-A" + + "asiaLõuna-AasiaKagu-AasiaLõuna-EuroopaAustralaasiaMelaneesiaMikroneesia " + + "(piirkond)PolüneesiaAasiaKesk-AasiaLääne-AasiaEuroopaIda-EuroopaPõhja-Eu" + + "roopaLääne-EuroopaLadina-Ameerika" + +var etRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0016, 0x002d, 0x0037, 0x0049, 0x0051, 0x0059, + 0x0061, 0x0067, 0x0070, 0x0079, 0x0087, 0x008e, 0x0098, 0x009d, + 0x00a6, 0x00b3, 0x00ca, 0x00d2, 0x00dc, 0x00e2, 0x00ee, 0x00f7, + 0x00fe, 0x0105, 0x010a, 0x011b, 0x0122, 0x0128, 0x0130, 0x014c, + 0x0155, 0x015b, 0x0161, 0x016f, 0x0177, 0x0180, 0x0186, 0x018c, + 0x0198, 0x01a0, 0x01b5, 0x01c3, 0x01ca, 0x01da, 0x01e6, 0x01ed, + 0x01f4, 0x01f9, 0x0201, 0x0211, 0x021b, 0x0220, 0x022f, 0x0237, + 0x0241, 0x0248, 0x024f, 0x0257, 0x0263, 0x026b, 0x0270, 0x0278, + // Entry 40 - 7F + 0x028c, 0x0295, 0x02a5, 0x02ac, 0x02b1, 0x02b8, 0x02c6, 0x02cd, + 0x02d6, 0x02de, 0x02ea, 0x02ef, 0x02f5, 0x0305, 0x0310, 0x031e, + 0x0329, 0x032e, 0x033b, 0x0342, 0x0349, 0x035b, 0x0363, 0x0368, + 0x0371, 0x037c, 0x0382, 0x0388, 0x0392, 0x03a4, 0x03aa, 0x03d3, + 0x03dc, 0x03e0, 0x03ed, 0x03f3, 0x040e, 0x0428, 0x0430, 0x0439, + 0x043e, 0x0444, 0x0452, 0x045c, 0x0463, 0x046a, 0x0473, 0x0478, + 0x048f, 0x0494, 0x0499, 0x049f, 0x04a6, 0x04ac, 0x04b3, 0x04bc, + 0x04c2, 0x04c8, 0x04d4, 0x04dd, 0x04e5, 0x04ed, 0x0501, 0x050d, + // Entry 80 - BF + 0x0519, 0x051f, 0x052c, 0x0535, 0x0539, 0x0541, 0x054c, 0x0559, + 0x0562, 0x056a, 0x0571, 0x0576, 0x0580, 0x0585, 0x058c, 0x0592, + 0x0598, 0x059f, 0x05a9, 0x05b5, 0x05bf, 0x05cf, 0x05d9, 0x05dd, + 0x05ec, 0x05f5, 0x060c, 0x061c, 0x0626, 0x0631, 0x063b, 0x0640, + 0x0649, 0x0652, 0x0658, 0x065f, 0x0667, 0x0670, 0x0678, 0x0686, + 0x068b, 0x0692, 0x069a, 0x06a3, 0x06aa, 0x06af, 0x06b4, 0x06b9, + 0x06bd, 0x06c8, 0x06cd, 0x06d3, 0x06d8, 0x06ed, 0x06fe, 0x0708, + 0x0710, 0x0715, 0x072d, 0x073d, 0x0748, 0x0757, 0x075f, 0x0764, + // Entry C0 - FF + 0x076c, 0x0771, 0x0784, 0x078c, 0x0794, 0x079a, 0x07a1, 0x07a7, + 0x07b4, 0x07c4, 0x07ce, 0x07d4, 0x07da, 0x07e2, 0x07ee, 0x07f7, + 0x080c, 0x0815, 0x0821, 0x082b, 0x0832, 0x083a, 0x0842, 0x084f, + 0x0866, 0x0871, 0x087d, 0x0885, 0x088e, 0x089e, 0x08ad, 0x08b3, + 0x08c7, 0x08cb, 0x08ce, 0x08da, 0x08e1, 0x08ea, 0x08f7, 0x08ff, + 0x0904, 0x090a, 0x091c, 0x0922, 0x0928, 0x0931, 0x0938, 0x093e, + 0x0956, 0x096b, 0x0972, 0x097c, 0x0983, 0x099f, 0x09a8, 0x09ba, + 0x09ca, 0x09d1, 0x09d8, 0x09e8, 0x09ed, 0x09f3, 0x09f9, 0x0a00, + // Entry 100 - 13F + 0x0a17, 0x0a1d, 0x0a25, 0x0a36, 0x0a3c, 0x0a43, 0x0a52, 0x0a61, + 0x0a69, 0x0a78, 0x0a85, 0x0a90, 0x0a9e, 0x0aaa, 0x0ab8, 0x0ac0, + 0x0ad2, 0x0ae2, 0x0aeb, 0x0af7, 0x0b01, 0x0b0f, 0x0b1b, 0x0b25, + 0x0b3b, 0x0b46, 0x0b4b, 0x0b55, 0x0b62, 0x0b69, 0x0b74, 0x0b82, + 0x0b91, 0x0ba0, +} // Size: 604 bytes + +var faRegionStr string = "" + // Size: 4983 bytes + "جزایر آسنسیونآندوراامارات متحدهٔ عربیاÙغانستانآنتیگوا Ùˆ باربوداآنگویلاآل" + + "بانیارمنستانآنگولاجنوبگانآرژانتینساموآی امریکااتریشاسترالیاآروباجزایر Ø¢" + + "لاندجمهوری آذربایجانبوسنی Ùˆ هرزگوینباربادوسبنگلادشبلژیکبورکیناÙاسوبلغار" + + "ستانبحرینبوروندیبنینسن بارتلمیبرمودابرونئیبولیویجزایر کارائیب هلندبرزیل" + + "باهامابوتانجزیرهٔ بووهبوتسوانابلاروسبلیزکاناداجزایر کوکوسکنگو - کینشاسا" + + "جمهوری اÙریقای مرکزیکنگو - برازویلسوئیسساحل عاججزایر کوکشیلیکامرونچینکل" + + "مبیاجزایر کلیپرتونکاستاریکاکوباکیپ\u200cوردکوراسائوجزیرهٔ کریسمسقبرسجمه" + + "وری چکآلماندیه\u200cÚ¯Ùˆ گارسیاجیبوتیدانمارکدومینیکاجمهوری دومینیکنالجزای" + + "رسبته Ùˆ ملیلهاکوادوراستونیمصرصحرای غربیاریترهاسپانیااتیوپیاتحادیهٔ اروپ" + + "اÙنلاندÙیجیجزایر Ùالکلندمیکرونزیجزایر ÙاروÙرانسهگابنبریتانیاگرناداگرجست" + + "انگویان Ùرانسهگرنزیغناجبل\u200cالطارقگرینلندگامبیاگینهگوادلوپگینهٔ استو" + + "ایییونانجورجیای جنوبی Ùˆ جزایر ساندویچ جنوبیگواتمالاگوامگینهٔ بیسائوگویا" + + "نهنگ\u200cکنگ، ناحیهٔ ویژهٔ حکومتی چینجزیرهٔ هرد Ùˆ جزایر Ù…Ú©\u200cدونالد" + + "هندوراسکرواسیهائیتیمجارستانجزایر قناریاندونزیایرلنداسرائیلجزیرهٔ منهندق" + + "لمرو بریتانیا در اقیانوس هندعراقایرانایسلندایتالیاجرزیجامائیکااردنژاپنک" + + "نیاقرقیزستانکامبوجکیریباتیکوموروسنت کیتس Ùˆ نویسکرهٔ شمالیکرهٔ جنوبیکویت" + + "جزایر Ú©Ùیمنقزاقستانلائوسلبنانسنت لوسیالیختن\u200cاشتاینسری\u200cلانکالی" + + "بریالسوتولیتوانیلوکزامبورگلتونیلیبیمراکشموناکومولداویمونته\u200cنگروسنت" + + " مارتینماداگاسکارجزایر مارشالمقدونیهمالیمیانمار (برمه)مغولستانماکائو، نا" + + "حیهٔ ویژهٔ حکومتی چینجزایر ماریانای شمالیمارتینیکموریتانیمونت\u200cسرات" + + "مالتموریسمالدیومالاویمکزیکمالزیموزامبیکنامیبیاکالدونیای جدیدنیجرجزیرهٔ " + + "نورÙولکنیجریهنیکاراگوئههلندنروژنپالنائورونیوئهنیوزیلندعمانپاناماپروپلی" + + "\u200cنزی Ùرانسهپاپوا گینهٔ نوÙیلیپینپاکستانلهستانسن پیر Ùˆ میکلنجزایر Ù¾ÛŒ" + + "ت\u200cکرنپورتوریکوسرزمین\u200cهای Ùلسطینیپرتغالپالائوپاراگوئهقطربخش" + + "\u200cهای دوراÙتادهٔ اقیانوسیهرئونیونرومانیصربستانروسیهروانداعربستان سعو" + + "دیجزایر سلیمانسیشلسودانسوئدسنگاپورسنت هلناسلوونیاسوالبارد Ùˆ جان\u200cما" + + "یناسلواکیسیرالئونسان\u200cمارینوسنگالسومالیسورینامسودان جنوبیپرینسیپ Ùˆ " + + "سائوتومهالسالوادورسنت مارتنسوریهسوازیلندتریستان دا کوناجزایر تورکس Ùˆ کا" + + "یکوسچادقلمروهای جنوبی Ùرانسهتوگوتایلندتاجیکستانتوکلائوتیمور-لستهترکمنست" + + "انتونستونگاترکیهترینیداد Ùˆ توباگوتووالوتایوانتانزانیااوکرایناوگانداجزای" + + "ر دوراÙتادهٔ ایالات متحدهایالات متحدهاروگوئهازبکستانواتیکانسنت وینسنت Ùˆ" + + " گرنادین\u200cهاونزوئلاجزایر ویرجین بریتانیاجزایر ویرجین ایالات متحدهویت" + + "ناموانواتووالیس Ùˆ ÙوتوناساموآکوزوویمنمایوتاÙریقای جنوبیزامبیازیمبابوهنا" + + "حیهٔ نامشخصجهاناÙریقاامریکای شمالیامریکای جنوبیاقیانوسیهغرب اÙریقاامریک" + + "ای مرکزیشرق اÙریقاشمال اÙریقامرکز اÙریقاجنوب اÙریقاامریکاشمال امریکاکار" + + "ائیبشرق آسیاجنوب آسیاجنوب شرق آسیاجنوب اروپااسترالزیملانزیناحیهٔ میکرون" + + "زیپلی\u200cنزیآسیاآسیای مرکزیغرب آسیااروپاشرق اروپاشمال اروپاغرب اروپاا" + + "مریکای لاتین" + +var faRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0019, 0x0025, 0x0047, 0x0059, 0x0079, 0x0087, 0x0093, + 0x00a3, 0x00af, 0x00bd, 0x00cd, 0x00e6, 0x00f0, 0x0100, 0x010a, + 0x011f, 0x013e, 0x015a, 0x016a, 0x0178, 0x0182, 0x0198, 0x01aa, + 0x01b4, 0x01c2, 0x01ca, 0x01dd, 0x01e9, 0x01f5, 0x0201, 0x0223, + 0x022d, 0x0239, 0x0243, 0x0258, 0x0268, 0x0274, 0x027c, 0x0288, + 0x029d, 0x02b6, 0x02dc, 0x02f5, 0x02ff, 0x030e, 0x031f, 0x0327, + 0x0333, 0x0339, 0x0345, 0x0360, 0x0372, 0x037a, 0x0389, 0x0399, + 0x03b2, 0x03ba, 0x03cb, 0x03d5, 0x03ef, 0x03fb, 0x0409, 0x0419, + // Entry 40 - 7F + 0x0436, 0x0444, 0x045a, 0x0468, 0x0474, 0x047a, 0x048d, 0x0499, + 0x04a7, 0x04b3, 0x04ce, 0x04da, 0x04e2, 0x04fb, 0x050b, 0x051e, + 0x052a, 0x0532, 0x0542, 0x054e, 0x055c, 0x0573, 0x057d, 0x0583, + 0x0598, 0x05a6, 0x05b2, 0x05ba, 0x05c8, 0x05e1, 0x05eb, 0x062c, + 0x063c, 0x0644, 0x065b, 0x0665, 0x06a2, 0x06d7, 0x06e5, 0x06f1, + 0x06fd, 0x070d, 0x0722, 0x0730, 0x073c, 0x074a, 0x075b, 0x0761, + 0x0797, 0x079f, 0x07a9, 0x07b5, 0x07c3, 0x07cb, 0x07db, 0x07e3, + 0x07eb, 0x07f3, 0x0805, 0x0811, 0x0821, 0x082d, 0x0848, 0x085b, + // Entry 80 - BF + 0x086e, 0x0876, 0x088b, 0x089b, 0x08a5, 0x08af, 0x08c0, 0x08d9, + 0x08ec, 0x08f8, 0x0902, 0x0910, 0x0924, 0x092e, 0x0936, 0x0940, + 0x094c, 0x095a, 0x096f, 0x0982, 0x0996, 0x09ad, 0x09bb, 0x09c3, + 0x09dc, 0x09ec, 0x0a26, 0x0a4c, 0x0a5c, 0x0a6c, 0x0a7f, 0x0a87, + 0x0a91, 0x0a9d, 0x0aa9, 0x0ab3, 0x0abd, 0x0acd, 0x0adb, 0x0af6, + 0x0afe, 0x0b19, 0x0b25, 0x0b39, 0x0b41, 0x0b49, 0x0b51, 0x0b5d, + 0x0b67, 0x0b77, 0x0b7f, 0x0b8b, 0x0b91, 0x0bad, 0x0bc7, 0x0bd5, + 0x0be3, 0x0bef, 0x0c08, 0x0c22, 0x0c34, 0x0c58, 0x0c64, 0x0c70, + // Entry C0 - FF + 0x0c80, 0x0c86, 0x0cbd, 0x0ccb, 0x0cd7, 0x0ce5, 0x0cef, 0x0cfb, + 0x0d14, 0x0d2b, 0x0d33, 0x0d3d, 0x0d45, 0x0d53, 0x0d60, 0x0d6e, + 0x0d95, 0x0da3, 0x0db3, 0x0dc8, 0x0dd2, 0x0dde, 0x0dec, 0x0e01, + 0x0e23, 0x0e37, 0x0e48, 0x0e52, 0x0e62, 0x0e7e, 0x0ea3, 0x0ea9, + 0x0ed1, 0x0ed9, 0x0ee5, 0x0ef7, 0x0f05, 0x0f18, 0x0f2a, 0x0f32, + 0x0f3c, 0x0f46, 0x0f66, 0x0f72, 0x0f7e, 0x0f8e, 0x0f9c, 0x0faa, + 0x0fe1, 0x0ff8, 0x1006, 0x1016, 0x1024, 0x1050, 0x105e, 0x1086, + 0x10b5, 0x10c1, 0x10cf, 0x10e9, 0x10f3, 0x10fd, 0x1103, 0x110d, + // Entry 100 - 13F + 0x1126, 0x1132, 0x1142, 0x115b, 0x1163, 0x116f, 0x1188, 0x11a1, + 0x11b3, 0x11c6, 0x11df, 0x11f2, 0x1207, 0x121c, 0x1231, 0x123d, + 0x1252, 0x1260, 0x126f, 0x1280, 0x1298, 0x12ab, 0x12bb, 0x12c7, + 0x12e4, 0x12f3, 0x12fb, 0x1310, 0x131f, 0x1329, 0x133a, 0x134d, + 0x135e, 0x1377, +} // Size: 604 bytes + +var fiRegionStr string = "" + // Size: 2996 bytes + "Ascension-saariAndorraArabiemiirikunnatAfganistanAntigua ja BarbudaAngui" + + "llaAlbaniaArmeniaAngolaAntarktisArgentiinaAmerikan SamoaItävaltaAustrali" + + "aArubaAhvenanmaaAzerbaidžanBosnia ja HertsegovinaBarbadosBangladeshBelgi" + + "aBurkina FasoBulgariaBahrainBurundiBeninSaint-BarthélemyBermudaBruneiBol" + + "iviaKaribian AlankomaatBrasiliaBahamaBhutanBouvet’nsaariBotswanaValko-Ve" + + "näjäBelizeKanadaKookossaaret (Keelingsaaret)Kongon demokraattinen tasava" + + "ltaKeski-Afrikan tasavaltaKongon tasavaltaSveitsiNorsunluurannikkoCookin" + + "saaretChileKamerunKiinaKolumbiaClippertoninsaariCosta RicaKuubaKap Verde" + + "CuraçaoJoulusaariKyprosTÅ¡ekkiSaksaDiego GarciaDjiboutiTanskaDominicaDomi" + + "nikaaninen tasavaltaAlgeriaCeuta ja MelillaEcuadorViroEgyptiLänsi-Sahara" + + "EritreaEspanjaEtiopiaEuroopan unioniSuomiFidžiFalklandinsaaretMikronesia" + + "n liittovaltioFärsaaretRanskaGabonIso-BritanniaGrenadaGeorgiaRanskan Gua" + + "yanaGuernseyGhanaGibraltarGrönlantiGambiaGuineaGuadeloupePäiväntasaajan " + + "GuineaKreikkaEtelä-Georgia ja Eteläiset SandwichsaaretGuatemalaGuamGuine" + + "a-BissauGuyanaHongkong – Kiinan e.h.a.Heard ja McDonaldinsaaretHondurasK" + + "roatiaHaitiUnkariKanariansaaretIndonesiaIrlantiIsraelMansaariIntiaBritti" + + "läinen Intian valtameren alueIrakIranIslantiItaliaJerseyJamaikaJordaniaJ" + + "apaniKeniaKirgisiaKambodžaKiribatiKomoritSaint Kitts ja NevisPohjois-Kor" + + "eaEtelä-KoreaKuwaitCaymansaaretKazakstanLaosLibanonSaint LuciaLiechtenst" + + "einSri LankaLiberiaLesothoLiettuaLuxemburgLatviaLibyaMarokkoMonacoMoldov" + + "aMontenegroSaint-MartinMadagaskarMarshallinsaaretMakedoniaMaliMyanmar (B" + + "urma)MongoliaMacao – Kiinan e.h.a.Pohjois-MariaanitMartiniqueMauritaniaM" + + "ontserratMaltaMauritiusMalediivitMalawiMeksikoMalesiaMosambikNamibiaUusi" + + "-KaledoniaNigerNorfolkinsaariNigeriaNicaraguaAlankomaatNorjaNepalNauruNi" + + "ueUusi-SeelantiOmanPanamaPeruRanskan PolynesiaPapua-Uusi-GuineaFilippiin" + + "itPakistanPuolaSaint-Pierre ja MiquelonPitcairnPuerto RicoPalestiinalais" + + "alueetPortugaliPalauParaguayQatarulkomeriRéunionRomaniaSerbiaVenäjäRuand" + + "aSaudi-ArabiaSalomonsaaretSeychellitSudanRuotsiSingaporeSaint HelenaSlov" + + "eniaHuippuvuoret ja Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomali" + + "aSurinamEtelä-SudanSão Tomé ja PríncipeEl SalvadorSint MaartenSyyriaSwaz" + + "imaaTristan da CunhaTurks- ja CaicossaaretTÅ¡adRanskan eteläiset alueetTo" + + "goThaimaaTadžikistanTokelauItä-TimorTurkmenistanTunisiaTongaTurkkiTrinid" + + "ad ja TobagoTuvaluTaiwanTansaniaUkrainaUgandaYhdysvaltain erillissaaretY" + + "hdysvallatUruguayUzbekistanVatikaaniSaint Vincent ja GrenadiinitVenezuel" + + "aBrittiläiset NeitsytsaaretYhdysvaltain NeitsytsaaretVietnamVanuatuWalli" + + "s ja FutunaSamoaKosovoJemenMayotteEtelä-AfrikkaSambiaZimbabwetuntematon " + + "aluemaailmaAfrikkaPohjois-AmerikkaEtelä-AmerikkaOseaniaLänsi-AfrikkaVäli" + + "-AmerikkaItä-AfrikkaPohjois-AfrikkaKeski-Afrikkaeteläinen AfrikkaAmerikk" + + "apohjoinen AmerikkaKaribiaItä-AasiaEtelä-AasiaKaakkois-AasiaEtelä-Euroop" + + "paAustralaasiaMelanesiaMikronesiaPolynesiaAasiaKeski-AasiaLänsi-AasiaEur" + + "ooppaItä-EurooppaPohjois-EurooppaLänsi-EurooppaLatinalainen Amerikka" + +var fiRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0016, 0x0027, 0x0031, 0x0043, 0x004b, 0x0052, + 0x0059, 0x005f, 0x0068, 0x0072, 0x0080, 0x0089, 0x0092, 0x0097, + 0x00a1, 0x00ad, 0x00c3, 0x00cb, 0x00d5, 0x00db, 0x00e7, 0x00ef, + 0x00f6, 0x00fd, 0x0102, 0x0113, 0x011a, 0x0120, 0x0127, 0x013a, + 0x0142, 0x0148, 0x014e, 0x015d, 0x0165, 0x0173, 0x0179, 0x017f, + 0x019b, 0x01ba, 0x01d1, 0x01e1, 0x01e8, 0x01f9, 0x0205, 0x020a, + 0x0211, 0x0216, 0x021e, 0x022f, 0x0239, 0x023e, 0x0247, 0x024f, + 0x0259, 0x025f, 0x0266, 0x026b, 0x0277, 0x027f, 0x0285, 0x028d, + // Entry 40 - 7F + 0x02a5, 0x02ac, 0x02bc, 0x02c3, 0x02c7, 0x02cd, 0x02da, 0x02e1, + 0x02e8, 0x02ef, 0x02fe, 0x0303, 0x0309, 0x0319, 0x0331, 0x033b, + 0x0341, 0x0346, 0x0353, 0x035a, 0x0361, 0x0370, 0x0378, 0x037d, + 0x0386, 0x0390, 0x0396, 0x039c, 0x03a6, 0x03bd, 0x03c4, 0x03ef, + 0x03f8, 0x03fc, 0x0409, 0x040f, 0x0429, 0x0442, 0x044a, 0x0451, + 0x0456, 0x045c, 0x046a, 0x0473, 0x047a, 0x0480, 0x0488, 0x048d, + 0x04b1, 0x04b5, 0x04b9, 0x04c0, 0x04c6, 0x04cc, 0x04d3, 0x04db, + 0x04e1, 0x04e6, 0x04ee, 0x04f7, 0x04ff, 0x0506, 0x051a, 0x0527, + // Entry 80 - BF + 0x0533, 0x0539, 0x0545, 0x054e, 0x0552, 0x0559, 0x0564, 0x0571, + 0x057a, 0x0581, 0x0588, 0x058f, 0x0598, 0x059e, 0x05a3, 0x05aa, + 0x05b0, 0x05b7, 0x05c1, 0x05cd, 0x05d7, 0x05e7, 0x05f0, 0x05f4, + 0x0603, 0x060b, 0x0622, 0x0633, 0x063d, 0x0647, 0x0651, 0x0656, + 0x065f, 0x0669, 0x066f, 0x0676, 0x067d, 0x0685, 0x068c, 0x069a, + 0x069f, 0x06ad, 0x06b4, 0x06bd, 0x06c7, 0x06cc, 0x06d1, 0x06d6, + 0x06da, 0x06e7, 0x06eb, 0x06f1, 0x06f5, 0x0706, 0x0717, 0x0722, + 0x072a, 0x072f, 0x0747, 0x074f, 0x075a, 0x076e, 0x0777, 0x077c, + // Entry C0 - FF + 0x0784, 0x0789, 0x0791, 0x0799, 0x07a0, 0x07a6, 0x07ae, 0x07b4, + 0x07c0, 0x07cd, 0x07d7, 0x07dc, 0x07e2, 0x07eb, 0x07f7, 0x07ff, + 0x0818, 0x0820, 0x082c, 0x0836, 0x083d, 0x0844, 0x084b, 0x0857, + 0x086e, 0x0879, 0x0885, 0x088b, 0x0893, 0x08a3, 0x08b9, 0x08be, + 0x08d7, 0x08db, 0x08e2, 0x08ee, 0x08f5, 0x08ff, 0x090b, 0x0912, + 0x0917, 0x091d, 0x092f, 0x0935, 0x093b, 0x0943, 0x094a, 0x0950, + 0x096a, 0x0975, 0x097c, 0x0986, 0x098f, 0x09ab, 0x09b4, 0x09cf, + 0x09e9, 0x09f0, 0x09f7, 0x0a07, 0x0a0c, 0x0a12, 0x0a17, 0x0a1e, + // Entry 100 - 13F + 0x0a2c, 0x0a32, 0x0a3a, 0x0a49, 0x0a50, 0x0a57, 0x0a67, 0x0a76, + 0x0a7d, 0x0a8b, 0x0a99, 0x0aa5, 0x0ab4, 0x0ac1, 0x0ad3, 0x0adb, + 0x0aed, 0x0af4, 0x0afe, 0x0b0a, 0x0b18, 0x0b27, 0x0b33, 0x0b3c, + 0x0b46, 0x0b4f, 0x0b54, 0x0b5f, 0x0b6b, 0x0b73, 0x0b80, 0x0b90, + 0x0b9f, 0x0bb4, +} // Size: 604 bytes + +var filRegionStr string = "" + // Size: 3018 bytes + "Acsencion islandAndorraUnited Arab EmiratesAfghanistanAntigua and Barbud" + + "aAnguillaAlbaniaArmeniaAngolaAntarcticaArgentinaAmerican SamoaAustriaAus" + + "traliaArubaÃ…land IslandsAzerbaijanBosnia and HerzegovinaBarbadosBanglade" + + "shBelgiumBurkina FasoBulgariaBahrainBurundiBeninSaint BarthélemyBermudaB" + + "runeiBoliviaCaribbean NetherlandsBrazilBahamasBhutanBouvet IslandBotswan" + + "aBelarusBelizeCanadaCocos (Keeling) IslandsCongo - KinshasaCentral Afric" + + "an RepublicCongo - BrazzavilleSwitzerlandCôte d’IvoireCook IslandsChileC" + + "ameroonChinaColombiaClipperton IslandCosta RicaCubaCape VerdeCuraçaoChri" + + "stmas IslandCyprusCzech RepublicGermanyDiego GarciaDjiboutiDenmarkDomini" + + "caDominican RepublicAlgeriaCeuta and MelillaEcuadorEstoniaEgyptKanlurang" + + " SaharaEritreaSpainEthiopiaEuropean UnionFinlandFijiFalkland IslandsMicr" + + "onesiaFaroe IslandsFranceGabonUnited KingdomGrenadaGeorgiaFrench GuianaG" + + "uernseyGhanaGibraltarGreenlandGambiaGuineaGuadeloupeEquatorial GuineaGre" + + "eceSouth Georgia and the South Sandwich IslandsGuatemalaGuamGuinea-Bissa" + + "uGuyanaHong Kong SAR ChinaHeard Island and McDonald IslandsHondurasCroat" + + "iaHaitiHungaryCanary IslandIndonesiaIrelandIsraelIsle of ManIndiaBritish" + + " Indian Ocean TerritoryIraqIranIcelandItalyJerseyJamaicaJordanJapanKenya" + + "KyrgyzstanCambodiaKiribatiComorosSaint Kitts and NevisHilagang KoreaTimo" + + "g KoreaKuwaitCayman IslandsKazakhstanLaosLebanonSaint LuciaLiechtenstein" + + "Sri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMoroccoMonacoMoldov" + + "aMontenegroSaint MartinMadagascarMarshall IslandsMacedoniaMaliMyanmar (B" + + "urma)MongoliaMacau SAR ChinaNorthern Mariana IslandsMartiniqueMauritania" + + "MontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew" + + " CaledoniaNigerNorfolk IslandNigeriaNicaraguaNetherlandsNorwayNepalNauru" + + "NiueNew ZealandOmanPanamaPeruFrench PolynesiaPapua New GuineaPilipinasPa" + + "kistanPolandSaint Pierre and MiquelonPitcairn IslandsPuerto RicoPalestin" + + "ian TerritoriesPortugalPalauParaguayQatarOutlying OceaniaRéunionRomaniaS" + + "erbiaRussiaRwandaSaudi ArabiaSolomon IslandsSeychellesSudanSwedenSingapo" + + "reSaint HelenaSloveniaSvalbard and Jan MayenSlovakiaSierra LeoneSan Mari" + + "noSenegalSomaliaSurinameTimog SudanSão Tomé and PríncipeEl SalvadorSint " + + "MaartenSyriaSwazilandTristan de CunhaTurks and Caicos IslandsChadFrench " + + "Southern TerritoriesTogoThailandTajikistanTokelauTimor-LesteTurkmenistan" + + "TunisiaTongaTurkeyTrinidad and TobagoTuvaluTaiwanTanzaniaUkraineUgandaU." + + "S. Outlying IslandsEstados UnidosUruguayUzbekistanVatican CitySaint Vinc" + + "ent and the GrenadinesVenezuelaBritish Virgin IslandsU.S. Virgin Islands" + + "VietnamVanuatuWallis and FutunaSamoaKosovoYemenMayotteSouth AfricaZambia" + + "ZimbabweHindi Kilalang RehiyonMundoAfricaHilagang AmerikaTimog AmerikaOc" + + "eaniaKanlurang AfricaGitnang AmerikaSilangang AfricaHilagang AfricaGitna" + + "ng AfricaKatimugang AfricaAmericasNorthern AmericaCarribbeanSilangang As" + + "yaKatimugang AsyaTimog-Silangang AsyaKatimugang EuropeAustralasiaMelanes" + + "iaRehiyon ng MicronesiaPolynesiaAsyaGitnang AsyaKanlurang AsyaEuropeSila" + + "ngang EuropeHilagang EuropeKanlurang EuropeLatin America" + +var filRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x002b, 0x0036, 0x0049, 0x0051, 0x0058, + 0x005f, 0x0065, 0x006f, 0x0078, 0x0086, 0x008d, 0x0096, 0x009b, + 0x00a9, 0x00b3, 0x00c9, 0x00d1, 0x00db, 0x00e2, 0x00ee, 0x00f6, + 0x00fd, 0x0104, 0x0109, 0x011a, 0x0121, 0x0127, 0x012e, 0x0143, + 0x0149, 0x0150, 0x0156, 0x0163, 0x016b, 0x0172, 0x0178, 0x017e, + 0x0195, 0x01a5, 0x01bd, 0x01d0, 0x01db, 0x01eb, 0x01f7, 0x01fc, + 0x0204, 0x0209, 0x0211, 0x0222, 0x022c, 0x0230, 0x023a, 0x0242, + 0x0252, 0x0258, 0x0266, 0x026d, 0x0279, 0x0281, 0x0288, 0x0290, + // Entry 40 - 7F + 0x02a2, 0x02a9, 0x02ba, 0x02c1, 0x02c8, 0x02cd, 0x02dd, 0x02e4, + 0x02e9, 0x02f1, 0x02ff, 0x0306, 0x030a, 0x031a, 0x0324, 0x0331, + 0x0337, 0x033c, 0x034a, 0x0351, 0x0358, 0x0365, 0x036d, 0x0372, + 0x037b, 0x0384, 0x038a, 0x0390, 0x039a, 0x03ab, 0x03b1, 0x03dd, + 0x03e6, 0x03ea, 0x03f7, 0x03fd, 0x0410, 0x0431, 0x0439, 0x0440, + 0x0445, 0x044c, 0x0459, 0x0462, 0x0469, 0x046f, 0x047a, 0x047f, + 0x049d, 0x04a1, 0x04a5, 0x04ac, 0x04b1, 0x04b7, 0x04be, 0x04c4, + 0x04c9, 0x04ce, 0x04d8, 0x04e0, 0x04e8, 0x04ef, 0x0504, 0x0512, + // Entry 80 - BF + 0x051d, 0x0523, 0x0531, 0x053b, 0x053f, 0x0546, 0x0551, 0x055e, + 0x0567, 0x056e, 0x0575, 0x057e, 0x0588, 0x058e, 0x0593, 0x059a, + 0x05a0, 0x05a7, 0x05b1, 0x05bd, 0x05c7, 0x05d7, 0x05e0, 0x05e4, + 0x05f3, 0x05fb, 0x060a, 0x0622, 0x062c, 0x0636, 0x0640, 0x0645, + 0x064e, 0x0656, 0x065c, 0x0662, 0x066a, 0x0674, 0x067b, 0x0688, + 0x068d, 0x069b, 0x06a2, 0x06ab, 0x06b6, 0x06bc, 0x06c1, 0x06c6, + 0x06ca, 0x06d5, 0x06d9, 0x06df, 0x06e3, 0x06f3, 0x0703, 0x070c, + 0x0714, 0x071a, 0x0733, 0x0743, 0x074e, 0x0765, 0x076d, 0x0772, + // Entry C0 - FF + 0x077a, 0x077f, 0x078f, 0x0797, 0x079e, 0x07a4, 0x07aa, 0x07b0, + 0x07bc, 0x07cb, 0x07d5, 0x07da, 0x07e0, 0x07e9, 0x07f5, 0x07fd, + 0x0813, 0x081b, 0x0827, 0x0831, 0x0838, 0x083f, 0x0847, 0x0852, + 0x086a, 0x0875, 0x0881, 0x0886, 0x088f, 0x089f, 0x08b7, 0x08bb, + 0x08d6, 0x08da, 0x08e2, 0x08ec, 0x08f3, 0x08fe, 0x090a, 0x0911, + 0x0916, 0x091c, 0x092f, 0x0935, 0x093b, 0x0943, 0x094a, 0x0950, + 0x0965, 0x0973, 0x097a, 0x0984, 0x0990, 0x09b0, 0x09b9, 0x09cf, + 0x09e2, 0x09e9, 0x09f0, 0x0a01, 0x0a06, 0x0a0c, 0x0a11, 0x0a18, + // Entry 100 - 13F + 0x0a24, 0x0a2a, 0x0a32, 0x0a48, 0x0a4d, 0x0a53, 0x0a63, 0x0a70, + 0x0a77, 0x0a87, 0x0a96, 0x0aa6, 0x0ab5, 0x0ac3, 0x0ad4, 0x0adc, + 0x0aec, 0x0af6, 0x0b04, 0x0b13, 0x0b27, 0x0b38, 0x0b43, 0x0b4c, + 0x0b61, 0x0b6a, 0x0b6e, 0x0b7a, 0x0b88, 0x0b8e, 0x0b9e, 0x0bad, + 0x0bbd, 0x0bca, +} // Size: 604 bytes + +var frRegionStr string = "" + // Size: 3307 bytes + "ÃŽle de l’AscensionAndorreÉmirats arabes unisAfghanistanAntigua-et-Barbud" + + "aAnguillaAlbanieArménieAngolaAntarctiqueArgentineSamoa américainesAutric" + + "heAustralieArubaÃŽles Ã…landAzerbaïdjanBosnie-HerzégovineBarbadeBangladesh" + + "BelgiqueBurkina FasoBulgarieBahreïnBurundiBéninSaint-BarthélemyBermudesB" + + "runéi DarussalamBoliviePays-Bas caribéensBrésilBahamasBhoutanÃŽle BouvetB" + + "otswanaBiélorussieBelizeCanadaÃŽles CocosCongo-KinshasaRépublique centraf" + + "ricaineCongo-BrazzavilleSuisseCôte d’IvoireÃŽles CookChiliCamerounChineCo" + + "lombieÃŽle ClippertonCosta RicaCubaCap-VertCuraçaoÃŽle ChristmasChypreRépu" + + "blique tchèqueAllemagneDiego GarciaDjiboutiDanemarkDominiqueRépublique d" + + "ominicaineAlgérieCeuta et MelillaÉquateurEstonieÉgypteSahara occidentalÉ" + + "rythréeEspagneÉthiopieUnion européenneFinlandeFidjiÃŽles MalouinesÉtats f" + + "édérés de MicronésieÃŽles FéroéFranceGabonRoyaume-UniGrenadeGéorgieGuyan" + + "e françaiseGuerneseyGhanaGibraltarGroenlandGambieGuinéeGuadeloupeGuinée " + + "équatorialeGrèceGéorgie du Sud et îles Sandwich du SudGuatemalaGuamGuin" + + "ée-BissauGuyanaR.A.S. chinoise de Hong KongÃŽles Heard et McDonaldHondur" + + "asCroatieHaïtiHongrieÃŽles CanariesIndonésieIrlandeIsraëlÃŽle de ManIndeTe" + + "rritoire britannique de l’océan IndienIrakIranIslandeItalieJerseyJamaïqu" + + "eJordanieJaponKenyaKirghizistanCambodgeKiribatiComoresSaint-Christophe-e" + + "t-NiévèsCorée du NordCorée du SudKoweïtÃŽles CaïmansKazakhstanLaosLibanSa" + + "inte-LucieLiechtensteinSri LankaLibériaLesothoLituanieLuxembourgLettonie" + + "LibyeMarocMonacoMoldavieMonténégroSaint-MartinMadagascarÃŽles MarshallMac" + + "édoineMaliMyanmar (Birmanie)MongolieR.A.S. chinoise de MacaoÃŽles Marian" + + "nes du NordMartiniqueMauritanieMontserratMalteMauriceMaldivesMalawiMexiq" + + "ueMalaisieMozambiqueNamibieNouvelle-CalédonieNigerÃŽle NorfolkNigériaNica" + + "raguaPays-BasNorvègeNépalNauruNiueNouvelle-ZélandeOmanPanamaPérouPolynés" + + "ie françaisePapouasie-Nouvelle-GuinéePhilippinesPakistanPologneSaint-Pie" + + "rre-et-MiquelonÃŽles PitcairnPorto RicoTerritoires palestiniensPortugalPa" + + "laosParaguayQatarrégions éloignées de l’OcéanieLa RéunionRoumanieSerbieR" + + "ussieRwandaArabie saouditeÃŽles SalomonSeychellesSoudanSuèdeSingapourSain" + + "te-HélèneSlovénieSvalbard et Jan MayenSlovaquieSierra LeoneSaint-MarinSé" + + "négalSomalieSurinameSoudan du SudSao Tomé-et-PrincipeEl SalvadorSaint-Ma" + + "rtin (partie néerlandaise)SyrieSwazilandTristan da CunhaÃŽles Turques-et-" + + "CaïquesTchadTerres australes françaisesTogoThaïlandeTadjikistanTokélaouT" + + "imor orientalTurkménistanTunisieTongaTurquieTrinité-et-TobagoTuvaluTaïwa" + + "nTanzanieUkraineOugandaÃŽles mineures éloignées des États-UnisÉtats-UnisU" + + "ruguayOuzbékistanÉtat de la Cité du VaticanSaint-Vincent-et-les-Grenadin" + + "esVenezuelaÃŽles Vierges britanniquesÃŽles Vierges des États-UnisVietnamVa" + + "nuatuWallis-et-FutunaSamoaKosovoYémenMayotteAfrique du SudZambieZimbabwe" + + "région indéterminéeMondeAfriqueAmérique du NordAmérique du SudOcéanieAfr" + + "ique occidentaleAmérique centraleAfrique orientaleAfrique septentrionale" + + "Afrique centraleAfrique australeAmériquesAmérique septentrionaleCaraïbes" + + "Asie orientaleAsie du SudAsie du Sud-EstEurope méridionaleAustralasieMél" + + "anésierégion micronésiennePolynésieAsieAsie centraleAsie occidentaleEuro" + + "peEurope de l’EstEurope septentrionaleEurope occidentaleAmérique latine" + +var frRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x001c, 0x0030, 0x003b, 0x004d, 0x0055, 0x005c, + 0x0064, 0x006a, 0x0075, 0x007e, 0x0090, 0x0098, 0x00a1, 0x00a6, + 0x00b2, 0x00be, 0x00d1, 0x00d8, 0x00e2, 0x00ea, 0x00f6, 0x00fe, + 0x0106, 0x010d, 0x0113, 0x0124, 0x012c, 0x013e, 0x0145, 0x0158, + 0x015f, 0x0166, 0x016d, 0x0178, 0x0180, 0x018c, 0x0192, 0x0198, + 0x01a3, 0x01b1, 0x01cb, 0x01dc, 0x01e2, 0x01f2, 0x01fc, 0x0201, + 0x0209, 0x020e, 0x0216, 0x0225, 0x022f, 0x0233, 0x023b, 0x0243, + 0x0251, 0x0257, 0x026b, 0x0274, 0x0280, 0x0288, 0x0290, 0x0299, + // Entry 40 - 7F + 0x02b0, 0x02b8, 0x02c8, 0x02d1, 0x02d8, 0x02df, 0x02f0, 0x02fa, + 0x0301, 0x030a, 0x031b, 0x0323, 0x0328, 0x0337, 0x0357, 0x0364, + 0x036a, 0x036f, 0x037a, 0x0381, 0x0389, 0x039a, 0x03a3, 0x03a8, + 0x03b1, 0x03ba, 0x03c0, 0x03c7, 0x03d1, 0x03e5, 0x03eb, 0x0413, + 0x041c, 0x0420, 0x042e, 0x0434, 0x0450, 0x0467, 0x046f, 0x0476, + 0x047c, 0x0483, 0x0491, 0x049b, 0x04a2, 0x04a9, 0x04b4, 0x04b8, + 0x04e3, 0x04e7, 0x04eb, 0x04f2, 0x04f8, 0x04fe, 0x0507, 0x050f, + 0x0514, 0x0519, 0x0525, 0x052d, 0x0535, 0x053c, 0x0558, 0x0566, + // Entry 80 - BF + 0x0573, 0x057a, 0x0588, 0x0592, 0x0596, 0x059b, 0x05a7, 0x05b4, + 0x05bd, 0x05c5, 0x05cc, 0x05d4, 0x05de, 0x05e6, 0x05eb, 0x05f0, + 0x05f6, 0x05fe, 0x060a, 0x0616, 0x0620, 0x062e, 0x0638, 0x063c, + 0x064e, 0x0656, 0x066e, 0x0685, 0x068f, 0x0699, 0x06a3, 0x06a8, + 0x06af, 0x06b7, 0x06bd, 0x06c4, 0x06cc, 0x06d6, 0x06dd, 0x06f0, + 0x06f5, 0x0701, 0x0709, 0x0712, 0x071a, 0x0722, 0x0728, 0x072d, + 0x0731, 0x0742, 0x0746, 0x074c, 0x0752, 0x0767, 0x0781, 0x078c, + 0x0794, 0x079b, 0x07b3, 0x07c1, 0x07cb, 0x07e3, 0x07eb, 0x07f1, + // Entry C0 - FF + 0x07f9, 0x07fe, 0x0822, 0x082d, 0x0835, 0x083b, 0x0841, 0x0847, + 0x0856, 0x0863, 0x086d, 0x0873, 0x0879, 0x0882, 0x0891, 0x089a, + 0x08af, 0x08b8, 0x08c4, 0x08cf, 0x08d8, 0x08df, 0x08e7, 0x08f4, + 0x0909, 0x0914, 0x0937, 0x093c, 0x0945, 0x0955, 0x096e, 0x0973, + 0x098f, 0x0993, 0x099d, 0x09a8, 0x09b1, 0x09bf, 0x09cc, 0x09d3, + 0x09d8, 0x09df, 0x09f1, 0x09f7, 0x09fe, 0x0a06, 0x0a0d, 0x0a14, + 0x0a3e, 0x0a49, 0x0a50, 0x0a5c, 0x0a78, 0x0a97, 0x0aa0, 0x0aba, + 0x0ad7, 0x0ade, 0x0ae5, 0x0af5, 0x0afa, 0x0b00, 0x0b06, 0x0b0d, + // Entry 100 - 13F + 0x0b1b, 0x0b21, 0x0b29, 0x0b3f, 0x0b44, 0x0b4b, 0x0b5c, 0x0b6c, + 0x0b74, 0x0b87, 0x0b99, 0x0baa, 0x0bc0, 0x0bd0, 0x0be0, 0x0bea, + 0x0c02, 0x0c0b, 0x0c19, 0x0c24, 0x0c33, 0x0c46, 0x0c51, 0x0c5c, + 0x0c72, 0x0c7c, 0x0c80, 0x0c8d, 0x0c9d, 0x0ca3, 0x0cb4, 0x0cc9, + 0x0cdb, 0x0ceb, +} // Size: 604 bytes + +var frCARegionStr string = "" + // Size: 145 bytes + "BélarusÃŽles Cocos (Keeling)MicronésieSaint-Martin (France)MyanmarSaint-M" + + "artin (Pays-Bas)TokelauSaint-Vincent-et-les GrenadinesEurope orientale" + +var frCARegionIdx = []uint16{ // 287 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + // Entry 40 - 7F + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, + 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + // Entry 80 - BF + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x003d, 0x003d, 0x003d, 0x003d, 0x003d, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + // Entry C0 - FF + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, + 0x0044, 0x0044, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + // Entry 100 - 13F + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, + 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0081, 0x0091, +} // Size: 598 bytes + +var guRegionStr string = "" + // Size: 8654 bytes + "àªàª¸à«‡àª¨à«àª¶àª¨ આઇલેનà«àª¡àªàª‚ડોરાયà«àª¨àª¾àª‡àªŸà«‡àª¡ આરબ અમીરાતઅફઘાનિસà«àª¤àª¾àª¨àªàª¨à«àªŸà«€àª—à«àª† અને બરà«àª®à«àª¡àª¾àª" + + "ંગà«àªµàª¿àª²àª¾àª…લà«àª¬à«‡àª¨àª¿àª¯àª¾àª†àª°à«àª®à«‡àª¨àª¿àª¯àª¾àª…ંગોલાàªàª¨à«àªŸàª¾àª°à«àª•àªŸàª¿àª•àª¾àª†àª°à«àªœà«‡àª¨à«àªŸà«€àª¨àª¾àª…મેરીકન સમોઆઑસà«àªŸ" + + "à«àª°àª¿àª¯àª¾àª‘સà«àªŸà«àª°à«‡àª²àª¿àª¯àª¾àª…રà«àª¬àª¾àªàª²à«‡àª‚ડ ટાપà«àª“અàªàª°àª¬à«ˆàªœàª¾àª¨àª¬à«‹àª¸à«àª¨àª¿àª¯àª¾ અને હરà«àªà«‡àª—ોવિનાબારà«àª¬àª¾" + + "ડોસબાંગà«àª²àª¾àª¦à«‡àª¶àª¬à«‡àª²à«àªœà«€àª¯àª®àª¬à«àª°à«àª•àª¿àª¨àª¾ ફાસોબલà«àª—ેરિયાબેહરીનબà«àª°à«àª‚ડીબેનિનસેનà«àªŸ બાર" + + "à«àª¥à«‡àª²à«‡àª®à«€àª¬àª°à«àª®à«àª¡àª¾àª¬à«àª°à«àª¨à«‡àª‡àª¬à«‹àª²àª¿àªµàª¿àª¯àª¾àª•à«‡àª°à«‡àª¬àª¿àª¯àª¨ નેધરલેનà«àª¡à«àªàª¬à«àª°àª¾àªàª¿àª²àª¬àª¹àª¾àª®àª¾àª¸àª­à«‚ટાનબૌવ" + + "ેત આઇલેનà«àª¡àª¬à«‹àª¤à«àª¸à«àªµàª¾àª¨àª¾àª¬à«‡àª²àª¾àª°à«àª¸àª¬à«‡àª²à«€àªàª•à«‡àª¨à«‡àª¡àª¾àª•à«‹àª•à«‹àª (કીલીંગ) આઇલેનà«àª¡à«àª¸àª•à«‹àª‚ગો - " + + "કિંશાસાસેનà«àªŸà«àª°àª² આફà«àª°àª¿àª•àª¨ રીપબà«àª²àª¿àª•àª•à«‹àª‚ગો - બà«àª°àª¾àªàª¾àªµàª¿àª²à«‡àª¸à«àªµàª¿àªŸà«àªàª°à«àª²à«…નà«àª¡àª•à«‹àªŸ ડી" + + " આઇવરીકà«àª• આઇલેનà«àª¡à«àª¸àªšàª¿àª²à«€àª•à«…મરૂનચીનકોલમà«àª¬àª¿àª¯àª¾àª•à«àª²àª¿àªªàª°àªŸàª¨ આઇલેનà«àª¡àª•à«‹àª¸à«àªŸàª¾ રિકાકà«àª¯à«" + + "બાકૅપ વરà«àª¡à«‡àª•à«àª°àª¾àª•àª¾àª“કà«àª°àª¿àª¸àª®àª¸ આઇલેનà«àª¡àª¸àª¾àª¯àªªà«àª°àª¸àªšà«‡àª• રીપબà«àª²àª¿àª•àªœàª°à«àª®àª¨à«€àª¡àª¿àªàª—à«‹ ગારસિઆ" + + "જીબૌટીડેનમારà«àª•àª¡à«‹àª®àª¿àª¨àª¿àª•àª¾àª¡à«‹àª®àª¿àª¨àª¿àª•àª¨ રીપબà«àª²àª¿àª•àª…લà«àªœà«€àª°àª¿àª¯àª¾àª¸à«àª¯à«àªŸàª¾ અને મેલિલાàªàª•à«àªµàª¾" + + "ડોરàªàª¸à«àªŸà«‹àª¨àª¿àª¯àª¾àª‡àªœàª¿àªªà«àª¤àªªàª¶à«àªšàª¿àª®à«€ સહારાàªàª°àª¿àªŸà«àª°àª¿àª¯àª¾àª¸à«àªªà«‡àª¨àª‡àª¥àª¿àª“પિયાયà«àª°à«‹àªªàª¿àª¯àª¨ સંઘફિનલે" + + "નà«àª¡àª«à«€àªœà«€àª«à«‰àª•àª²à«‡àª¨à«àª¡ ટાપà«àª“માઇકà«àª°à«‹àª¨à«‡àª¶àª¿àª¯àª¾àª«à«…રો ટાપà«àª“ફà«àª°àª¾àª‚સગેબનયà«àª¨àª¾àª‡àªŸà«‡àª¡ કિંગડમગ" + + "à«àª°à«‡àª¨à«‡àª¡àª¾àªœà«àª¯à«‹àª°à«àªœà«€àª¯àª¾àª«à«àª°à«‡àª‚ચ ગયાનાગà«àªµà«‡àª°à«àª¨àª¸à«‡àª˜àª¾àª¨àª¾àªœà«€àª¬à«àª°àª¾àª²à«àªŸàª°àª—à«àª°à«€àª¨àª²à«‡àª¨à«àª¡àª—ેમà«àª¬àª¿àª¯àª¾" + + "ગિનીગà«àªµàª¾àª¡à«‡àª²à«‹àªªàª‡àª•à«àªµà«‡àªŸà«‹àª°àª¿àª¯àª² ગિનીગà«àª°à«€àª¸àª¦àª•à«àª·àª¿àª£ જà«àª¯à«‹àª°à«àªœà«€àª¯àª¾ અને દકà«àª·àª¿àª£ સેનà«àª¡àªµàª¿" + + "ચ આઇલેનà«àª¡à«àª¸àª—à«àªµàª¾àªŸà«‡àª®àª¾àª²àª¾àª—à«àªµàª¾àª®àª—િની-બિસાઉગયાનાહોંગકોંગ SAR ચીનહરà«àª¡ અને મેકડ" + + "ોનાલà«àª¡ આઇલેનà«àª¡à«àª¸àª¹à«‹àª¨à«àª¡à«àª°àª¸àª•à«àª°à«‹àªàª¶àª¿àª¯àª¾àª¹à«ˆàª¤àª¿àª¹àª‚ગેરીકૅનેરી ટાપà«àª“ઇનà«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¾àª†àª¯àª°à«" + + "લેનà«àª¡àª‡àªàª°àª¾àª‡àª²àª†àªˆàª² ઓફ મૅનભારતબà«àª°àª¿àªŸàª¿àª¶ ઇનà«àª¡àª¿àª¯àª¨ ઓશન ટેરિટરીઇરાકઈરાનઆઇસલેનà«àª¡àª‡àªŸ" + + "ાલીજરà«àª¸à«€àªœàª®à«ˆàª•àª¾àªœà«‹àª°à«àª¡àª¨àªœàª¾àªªàª¾àª¨àª•à«‡àª¨à«àª¯àª¾àª•àª¿àª°à«àª—િàªà«àª¸à«àª¤àª¾àª¨àª•àª‚બોડિયાકિરિબાટીકોમોરસસેનà«àªŸ" + + " કિટà«àª¸ અને નેવિસઉતà«àª¤àª° કોરિયાદકà«àª·àª¿àª£ કોરિયાકà«àªµà«ˆàª¤àª•à«‡àª®à«‡àª¨ ટાપà«àª“કàªàª¾àª•àª¿àª¸à«àª¤àª¾àª¨àª²àª¾àª“સલ" + + "ેબનોનસેનà«àªŸ લà«àª¸àª¿àª¯àª¾àª²à«ˆàªšàªŸà«‡àª‚સà«àªŸà«‡àª‡àª¨àª¶à«àª°à«€àª²àª‚કાલાઇબેરિયાલેસોથોલિથà«àª†àª¨àª¿àª¯àª¾àª²àª•à«àªàª®àª¬àª°à«àª—" + + "લાતà«àªµàª¿àª¯àª¾àª²àª¿àª¬àª¿àª¯àª¾àª®à«‹àª°à«‹àª•à«àª•à«‹àª®à«‹àª¨àª¾àª•à«‹àª®à«‹àª²àª¡à«‹àªµàª¾àª®à«‰àª¨à«àªŸà«‡àª‚નેગà«àª°à«‹àª¸à«‡àª¨à«àªŸ મારà«àªŸàª¿àª¨àª®à«‡àª¡àª¾àª—ાસà«àª•" + + "રમારà«àª¶àª² આઇલેનà«àª¡à«àª¸àª®à«‡àª¸à«‡àª¡à«‹àª¨àª¿àª¯àª¾àª®àª¾àª²à«€àª®à«àª¯àª¾àª‚માર (બરà«àª®àª¾)મંગોલિયામકાઉ SAR ચીનઉતà«" + + "તરીય મારિયાના આઇલેનà«àª¡à«àª¸àª®àª¾àª°à«àªŸà«€àª¨à«€àª•àª®à«Œàª°àª¿àªŸàª¾àª¨àª¿àª¯àª¾àª®à«‹àª‚ટસેરાતમાલà«àªŸàª¾àª®à«‹àª°àª¿àª¶àª¿àª¯àª¸àª®àª¾àª²àª¦àª¿" + + "વà«àª¸àª®àª¾àª²àª¾àªµà«€àª®à«‡àª•à«àª¸àª¿àª•à«‹àª®àª²à«‡àª¶àª¿àª¯àª¾àª®à«‹àªàª¾àª®à«àª¬àª¿àª•àª¨àª¾àª®àª¿àª¬àª¿àª¯àª¾àª¨à«àª¯à« સેલેડોનિયાનાઇજરનોરફૉક ટા" + + "પà«àª¨àª¾àª‡àªœà«€àª°à«€àª¯àª¾àª¨àª¿àª•àª¾àª°àª¾àª—à«àª†àª¨à«‡àª§àª°àª²à«‡àª¨à«àª¡àª¨à«‰àª°à«àªµà«‡àª¨à«‡àªªàª¾àª³àª¨à«Œàª°à«àª¨à«€àª¯à«àª¨à«àª¯à«àªà«€àª²à«‡àª¨à«àª¡àª“માનપનામાપે" + + "રà«àª«à«àª°à«‡àª‚ચ પોલિનેશિયાપાપà«àª† નà«àª¯à«‚ ગિનીફિલીપાઇનà«àª¸àªªàª¾àª•àª¿àª¸à«àª¤àª¾àª¨àªªà«‹àª²à«‡àª‚ડસેનà«àªŸ પિયર " + + "અને મીકà«àªµà«‡àª²àª¨àªªà«€àªŸàª•à«ˆàª°à«àª¨ આઇલેનà«àª¡à«àª¸àªªà«àª¯à«àª…રà«àªŸà«‹ રિકોપેલેસà«àªŸàª¿àª¨àª¿àª¯àª¨ ટેરિટરીપોરà«àªŸà«" + + "ગલપલાઉપેરાગà«àªµà«‡àª•àª¤àª¾àª°àª†àª‰àªŸàª²àª¾àªˆàª¨à«àª— ઓશનિયારીયà«àª¨àª¿àª¯àª¨àª°à«‹àª®àª¾àª¨àª¿àª¯àª¾àª¸àª°à«àª¬àª¿àª¯àª¾àª°àª¶àª¿àª¯àª¾àª°àªµàª¾àª‚ડાસા" + + "ઉદી અરેબિયાસોલોમન આઇલેનà«àª¡à«àª¸àª¸à«‡àª¶à«‡àª²à«àª¸àª¸à«àª¦àª¾àª¨àª¸à«àªµà«€àª¡àª¨àª¸àª¿àª‚ગાપà«àª°àª¸à«‡àª¨à«àªŸ હેલેનાસà«àª²à«‹àªµ" + + "ેનિયાસà«àªµàª¾àª²àª¬àª°à«àª¡ અને જેન મેયનસà«àª²à«‹àªµà«‡àª•àª¿àª¯àª¾àª¸à«€àªàª°àª¾ લેઓનસૅન મેરિનોસેનેગલસોમાલિય" + + "ાસà«àª°à«€àª¨àª¾àª®àª¦àª•à«àª·àª¿àª£ સà«àª¦àª¾àª¨àª¸àª¾àª“ ટૉમ અને પà«àª°àª¿àª‚સિપેàªàª² સેલà«àªµàª¾àª¡à«‹àª°àª¸àª¿àª‚ટ મારà«àªŸà«‡àª¨àª¸à«€àª°àª¿àª¯" + + "ાસà«àªµàª¾àªàª¿àª²à«‡àª¨à«àª¡àª¤à«àª°àª¿àª¸à«àª¤àª¾àª¨ દા કà«àª¨à«àª¹àª¾àª¤à«àª°à«àª•à«àª¸ અને કાઇકોસ ટાપà«àª“ચાડફà«àª°à«‡àª‚ચ સદરà«àª¨" + + " ટેરિટરીàªàªŸà«‹àª—ોથાઇલેંડતાજીકિસà«àª¤àª¾àª¨àªŸà«‹àª•à«‡àª²àª¾àª‰àª¤àª¿àª®à«‹àª°-લેસà«àª¤à«‡àª¤à«àª°à«àª•àª®à«‡àª¨àª¿àª¸à«àª¤àª¾àª¨àªŸà«àª¯à«àª¨àª¿àª¶àª¿" + + "યાટોંગાતà«àª°à«àª•à«€àªŸà«àª°àª¿àª¨à«€àª¦àª¾àª¦ અને ટોબેગોતà«àªµàª¾àª²à«àª¤àª¾àª‡àªµàª¾àª¨àª¤àª¾àª‚àªàª¾àª¨àª¿àª¯àª¾àª¯à«àª•à«àª°à«‡àª¨àª¯à«àª—ાંડાસં" + + "યà«àª•à«àª¤ રાજà«àª¯ આઉટલાઇંગ આયલેનà«àª¡à«àª¸àª¸àª‚યà«àª•àª¤ રાજà«àª¯ અમેરિકાઉરà«àª—à«àªµà«‡àª‰àªà«àª¬à«‡àª•àª¿àª¸à«àª¤àª¾àª¨àªµ" + + "ેટિકન સિટીસેનà«àªŸ વિનà«àª¸à«‡àªŸ અને ગà«àª°à«‡àª¨à«‡àª¡à«€àª¨à«àª¸àªµà«‡àª¨à«‡àªà«àªàª²àª¾àª¬à«àª°àª¿àªŸàª¿àª¶ વરà«àªœàª¿àª¨ ટાપà«àª“યà«" + + ".àªàª¸. વરà«àªœàª¿àª¨ ટાપà«àª“વિયેતનામવાનà«àª†àª¤à«àªµà«‡àª²à«€àª¸ અને ફà«àª¯à«àªŸà«àª¨àª¾àª¸àª®à«‹àª†àª•à«‹àª¸à«‹àªµà«‹àª¯à«‡àª®à«‡àª¨àª®à«‡àª¯à«‹àªŸàª¦àª•" + + "à«àª·àª¿àª£ આફà«àª°àª¿àª•àª¾àªàª¾àª®à«àª¬àª¿àª¯àª¾àªàª¿àª®à«àª¬àª¾àª¬à«àªµà«‡àª…જà«àªžàª¾àª¤ પà«àª°àª¦à«‡àª¶àªµàª¿àª¶à«àªµàª†àª«à«àª°àª¿àª•àª¾àª‰àª¤à«àª¤àª° અમેરિકાદક" + + "à«àª·àª¿àª£ અમેરિકાઓશનિયાપશà«àªšàª¿àª®à«€ આફà«àª°àª¿àª•àª¾àª®àª§à«àª¯ અમેરિકાપૂરà«àªµà«€àª¯ આફà«àª°àª¿àª•àª¾àª‰àª¤à«àª¤àª°à«€àª¯ આફ" + + "à«àª°àª¿àª•àª¾àª®àª§à«àª¯ આફà«àª°àª¿àª•àª¾àª¸àª§àª°à«àª¨ આફà«àª°àª¿àª•àª¾àª…મેરિકાઉતà«àª¤àª°à«€àª¯ અમેરિકાકેરિબિયનપૂરà«àªµà«€àª¯ àªàª¶" + + "િયાસરà«àª§àª¨ àªàª¶àª¿àª¯àª¾àª¦àª•à«àª·àª¿àª£àªªà«‚રà«àªµ àªàª¶àª¿àª¯àª¾àª¸àª§àª°à«àª¨ યà«àª°à«‹àªªàª“સà«àªŸà«àª°à«‡àª²à«‡àª¶àª¿àª¯àª¾àª®à«‡àª²àª¾àª¨à«‡àª¶àª¿àª¯àª¾àª®àª¾àªˆàª•à«" + + "રોનેશિયન કà«àª·à«‡àª¤à«àª°àªªà«‹àª²àª¿àª¨à«‡àª¶àª¿àª¯àª¾àªàª¶àª¿àª¯àª¾àª®àª§à«àª¯ àªàª¶àª¿àª¯àª¾àªªàª¶à«àªšàª¿àª®à«€ àªàª¶àª¿àª¯àª¾àª¯à«àª°à«‹àªªàªªà«‚રà«àªµà«€àª¯ યà«àª°" + + "ોપઉતà«àª¤àª°à«€àª¯ યà«àª°à«‹àªªàªªàª¶à«àªšàª¿àª® યà«àª°à«‹àªªàª²à«‡àªŸàª¿àª¨ અમેરિકા" + +var guRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x002b, 0x003d, 0x0072, 0x0093, 0x00cb, 0x00e3, 0x00fe, + 0x0119, 0x012b, 0x014f, 0x0170, 0x0192, 0x01ad, 0x01ce, 0x01dd, + 0x01fc, 0x0214, 0x0258, 0x0273, 0x0291, 0x02a9, 0x02ce, 0x02e9, + 0x02fb, 0x0310, 0x031f, 0x034d, 0x0362, 0x0377, 0x038f, 0x03c9, + 0x03de, 0x03f0, 0x03ff, 0x0424, 0x0442, 0x0457, 0x0466, 0x0478, + 0x04b8, 0x04df, 0x0526, 0x0556, 0x0580, 0x05a0, 0x05c5, 0x05d1, + 0x05e3, 0x05ec, 0x0607, 0x0635, 0x0654, 0x0666, 0x067f, 0x0694, + 0x06bf, 0x06d4, 0x06f6, 0x0708, 0x072a, 0x073c, 0x0754, 0x076c, + // Entry 40 - 7F + 0x079d, 0x07b8, 0x07e7, 0x07ff, 0x081a, 0x082c, 0x0851, 0x086c, + 0x087b, 0x0893, 0x08b5, 0x08cd, 0x08d9, 0x0901, 0x0928, 0x0944, + 0x0956, 0x0962, 0x098d, 0x09a5, 0x09c3, 0x09e5, 0x0a00, 0x0a0c, + 0x0a2a, 0x0a48, 0x0a60, 0x0a6c, 0x0a87, 0x0ab5, 0x0ac4, 0x0b47, + 0x0b65, 0x0b74, 0x0b90, 0x0b9f, 0x0bc5, 0x0c16, 0x0c2e, 0x0c49, + 0x0c55, 0x0c67, 0x0c89, 0x0caa, 0x0cc5, 0x0cd7, 0x0cf1, 0x0cfd, + 0x0d48, 0x0d54, 0x0d60, 0x0d78, 0x0d87, 0x0d96, 0x0da5, 0x0db7, + 0x0dc6, 0x0dd8, 0x0dff, 0x0e17, 0x0e2f, 0x0e41, 0x0e7a, 0x0e9c, + // Entry 80 - BF + 0x0ec1, 0x0ed0, 0x0eef, 0x0f0d, 0x0f19, 0x0f2b, 0x0f4d, 0x0f71, + 0x0f89, 0x0fa4, 0x0fb6, 0x0fd1, 0x0fec, 0x1004, 0x1016, 0x102e, + 0x1040, 0x1055, 0x107c, 0x10a1, 0x10bf, 0x10ed, 0x110b, 0x1117, + 0x1141, 0x1159, 0x1173, 0x11bd, 0x11d8, 0x11f6, 0x1211, 0x1223, + 0x123b, 0x1253, 0x1265, 0x127d, 0x1292, 0x12ad, 0x12c5, 0x12f0, + 0x12ff, 0x131e, 0x1339, 0x1354, 0x136f, 0x1381, 0x1390, 0x139c, + 0x13a8, 0x13c9, 0x13d5, 0x13e4, 0x13f0, 0x1421, 0x144a, 0x1468, + 0x1483, 0x1495, 0x14d4, 0x1508, 0x1530, 0x156a, 0x1582, 0x158e, + // Entry C0 - FF + 0x15a6, 0x15b2, 0x15e0, 0x15f8, 0x1610, 0x1625, 0x1634, 0x1646, + 0x166b, 0x1699, 0x16ae, 0x16bd, 0x16cf, 0x16e7, 0x1709, 0x1727, + 0x1763, 0x1781, 0x179d, 0x17b9, 0x17cb, 0x17e3, 0x17f8, 0x181a, + 0x1853, 0x1875, 0x1897, 0x18a9, 0x18ca, 0x18ff, 0x1941, 0x194a, + 0x1985, 0x1991, 0x19a6, 0x19c7, 0x19dc, 0x19fe, 0x1a28, 0x1a46, + 0x1a55, 0x1a67, 0x1a9f, 0x1ab1, 0x1ac3, 0x1ade, 0x1af3, 0x1b08, + 0x1b62, 0x1b9a, 0x1baf, 0x1bd3, 0x1bf2, 0x1c43, 0x1c5e, 0x1c96, + 0x1cc7, 0x1cdf, 0x1cf4, 0x1d26, 0x1d32, 0x1d44, 0x1d53, 0x1d62, + // Entry 100 - 13F + 0x1d8a, 0x1da2, 0x1dc0, 0x1de5, 0x1df4, 0x1e09, 0x1e2e, 0x1e56, + 0x1e68, 0x1e93, 0x1eb5, 0x1ee0, 0x1f0b, 0x1f2d, 0x1f52, 0x1f67, + 0x1f92, 0x1faa, 0x1fcf, 0x1fee, 0x201f, 0x203e, 0x2065, 0x2083, + 0x20c0, 0x20de, 0x20ed, 0x2109, 0x212e, 0x213d, 0x2162, 0x2187, + 0x21a9, 0x21ce, +} // Size: 604 bytes + +var heRegionStr string = "" + // Size: 4992 bytes + "×”××™ ×סנשן×נדורה×יחוד ×”×מירויות הערביות×פגניסטן×נטיגו××” וברבודה×נגילה×לבנ" + + "×™×”×רמניה×נגולה×נט×רקטיקה×רגנטינהסמו××” ×”×מריקנית×וסטריה×וסטרליה×רובה××™×™ " + + "×ולנד×זרבייג׳ןבוסניה והרצגובינהברבדוסבנגלדשבלגיהבורקינה פ×סובולגריהבחרי" + + "יןבורונדיבניןסנט ברתולומי×וברמודהברונייבוליביהה××™×™× ×”×§×¨×™×‘×™×™× ×”×”×•×œ× ×“×™×™×ב" + + "רזיל××™×™ בה×מהבהוטן××™×™ בובהבוטסוו×נהבל×רוסבליזקנדה××™×™ קוקוס (קילינג)קונג" + + "ו - קינש×סההרפובליקה של מרכז ×פריקהקונגו - ברז×וילשווייץחוף השנהב××™×™ קו" + + "קצ׳ילהקמרוןסיןקולומביהה××™ קליפרטוןקוסטה ריקהקובהכף ורדהקור×ס×ו××™ ×—×’ המו" + + "לדקפריסיןצ׳כיהגרמניהדייגו גרסיהג׳יבוטידנמרקדומיניקההרפובליקה הדומיניקני" + + "ת×לג׳יריהס×וטה ומלייה×קוודור×סטוניהמצרי×סהרה המערבית×ריתרי×הספרד×תיופיה" + + "×”×יחוד ×”×ירופיפינלנדפיג׳י××™×™ פוקלנדמיקרונזיה××™×™ פ×רוצרפתג×בוןהממלכה המ×" + + "וחדתגרנדהג×ורגיהגי×× ×” הצרפתיתגרנסיג×נהגיברלטרגרינלנדגמביהגיני×הגוו×דלופ" + + "×’×™× ×™××” המשווניתיווןג׳ורג׳יה הדרומית ו××™×™ סנדוויץ׳ הדרומיי×גו×טמלהגו×××’×™" + + "× ×™××”-ביס×וגי×נההונג קונג - מחוז מנהלי מיוחד של סיןה××™ הרד ו××™×™ מקדונלדה" + + "ונדורסקרו×טיהה×יטיהונגריהה××™×™× ×”×§× ×¨×™×™××ינדונזיה×ירלנדישר×לה××™ מ×ןהודוהט" + + "ריטוריה הבריטית ב×וקיינוס ההודיעיר×ק×יר×ן×יסלנד×יטליהג׳רסיג׳מייקהירדןיפ" + + "ןקניהקירגיזסטןקמבודיהקיריב×טיקומורוסנט קיטס ונוויסקורי××” הצפוניתקורי××” " + + "הדרומיתכווית××™×™ קיימןקזחסטןל×וסלבנוןסנט לוסיהליכטנשטייןסרי לנקהליבריהלס" + + "וטוליט×לוקסמבורגלטביהלובמרוקומונקומולדובהמונטנגרוסן מרטןמדגסקר××™×™ מרשלמ" + + "קדוניהמ×לימי×נמ×ר (בורמה)\u200eמונגוליהמק×ו - מחוז מנהלי מיוחד של סין××™" + + "×™ מרי×× ×” הצפוניי×מרטיניקמ×וריטניהמונסר×טמלטהמ×וריציוסה××™×™× ×”×ž×œ×“×™×‘×™×™×מל×" + + "ווימקסיקומלזיהמוזמביקנמיביהקלדוניה החדשהניז׳ר××™×™ נורפוקניגריהניקרגו×ההו" + + "לנדנורווגיהנפ×לנ×ורוניווהניו זילנדעומ×ןפנמהפרופולינזיה הצרפתיתפפו××” ×’×™× " + + "×™××” החדשהפיליפיני×פקיסטןפוליןסנט פייר ומיקלון××™×™ פיטקרןפו×רטו ריקוהשטחי" + + "× ×”×¤×œ×¡×˜×™× ×™×™×פורטוגלפ×ל×ופרגוו×יקט×ר×וקי×× ×™×” חיצוניתר×וניוןרומניהסרביהרו" + + "סיהרו×נדהערב הסעודית××™×™ שלמה××™×™ סיישלסודןשוודיהסינגפורסנט הלנהסלובניהסו" + + "ולב×רד וי×ן מ×ייןסלובקיהסיירה ל×ונהסן מרינוסנגלסומליהסורינ××“×¨×•× ×¡×•×“×Ÿ×¡×ו" + + " טומה ופרינסיפה×ל סלבדורסנט מ×רטןסוריהסווזילנדטריסטן דה קונה××™×™ טורקס וק" + + "×יקוסצ׳×דטריטוריות דרומיות של צרפתטוגות×ילנדטג׳יקיסטןטוקל×וטימור לסטהטו" + + "רקמניסטןתוניסיהטונגהטורקיהטרינידד וטובגוטובלוטייוו×ןטנזניה×וקר××™× ×”×וגנד" + + "×”××™×™× ×œ×—×•×£ ×רצות הברית×רצות הברית×ורוגוו××™×וזבקיסטןהוותיקןסנט וינסנט וה" + + "גרנדיני×ונצו×לה××™×™ הבתולה הבריטיי×××™×™ הבתולה של ×רצות הבריתוייטנ××ונו×ט" + + "ו××™×™ ווליס ופוטונהסמו×הקוסובותימןמ××™×•×˜×“×¨×•× ×פריקהזמביהזימב×בווה×זור ×œ× " + + "ידועהעול××פריקהצפון ××ž×¨×™×§×”×“×¨×•× ×מריקה×וקי×ניהמערב ×פריקהמרכז ×מריקהמזרח" + + " ×פריקהצפון ×פריקהמרכז ××¤×¨×™×§×”×“×¨×•× ×™×‘×©×ª ×פריקה×מריקה×מריקה הצפוניתה××™×™× ×”" + + "קריביי×מזרח ××¡×™×”×“×¨×•× ×סיהדרו×־מזרח ××¡×™×”×“×¨×•× ×ירופה×וסטרל×סיהמלנזיה×זור " + + "מיקרונזיהפולינזיה×סיהמרכז ×סיהמערב ×סיה×ירופהמזרח ×ירופהצפון ×ירופהמערב" + + " ×ירופה×מריקה הלטינית" + +var heRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0011, 0x001d, 0x0049, 0x0059, 0x0078, 0x0084, 0x0090, + 0x009c, 0x00a8, 0x00bc, 0x00cc, 0x00e9, 0x00f7, 0x0107, 0x0111, + 0x0122, 0x0134, 0x0155, 0x0161, 0x016d, 0x0177, 0x018e, 0x019c, + 0x01a8, 0x01b6, 0x01be, 0x01d9, 0x01e5, 0x01f1, 0x01ff, 0x022d, + 0x0237, 0x0248, 0x0252, 0x0261, 0x0273, 0x027f, 0x0287, 0x028f, + 0x02af, 0x02ca, 0x02f7, 0x0312, 0x031e, 0x032f, 0x033c, 0x0346, + 0x0350, 0x0356, 0x0366, 0x037d, 0x0390, 0x0398, 0x03a5, 0x03b3, + 0x03c7, 0x03d5, 0x03df, 0x03eb, 0x0400, 0x040e, 0x0418, 0x0428, + // Entry 40 - 7F + 0x0451, 0x0461, 0x0478, 0x0486, 0x0494, 0x049e, 0x04b5, 0x04c5, + 0x04cd, 0x04db, 0x04f6, 0x0502, 0x050c, 0x051f, 0x0531, 0x0540, + 0x0548, 0x0552, 0x056d, 0x0577, 0x0585, 0x059e, 0x05a8, 0x05b0, + 0x05be, 0x05cc, 0x05d6, 0x05e2, 0x05f2, 0x060f, 0x0617, 0x0661, + 0x066f, 0x0677, 0x068e, 0x0698, 0x06d6, 0x06fb, 0x0709, 0x0717, + 0x0721, 0x072f, 0x0748, 0x075a, 0x0766, 0x0770, 0x077d, 0x0785, + 0x07c4, 0x07ce, 0x07d8, 0x07e4, 0x07f0, 0x07fa, 0x0808, 0x0810, + 0x0816, 0x081e, 0x0830, 0x083e, 0x084e, 0x085a, 0x0876, 0x0891, + // Entry 80 - BF + 0x08ac, 0x08b6, 0x08c7, 0x08d3, 0x08db, 0x08e5, 0x08f6, 0x090a, + 0x0919, 0x0925, 0x092f, 0x0937, 0x0949, 0x0953, 0x0959, 0x0963, + 0x096d, 0x097b, 0x098b, 0x0998, 0x09a4, 0x09b3, 0x09c1, 0x09c9, + 0x09e7, 0x09f7, 0x0a2c, 0x0a50, 0x0a5e, 0x0a70, 0x0a7e, 0x0a86, + 0x0a98, 0x0ab5, 0x0ac1, 0x0acd, 0x0ad7, 0x0ae5, 0x0af1, 0x0b0a, + 0x0b14, 0x0b27, 0x0b33, 0x0b43, 0x0b4d, 0x0b5d, 0x0b65, 0x0b6f, + 0x0b79, 0x0b8a, 0x0b94, 0x0b9c, 0x0ba2, 0x0bc1, 0x0be3, 0x0bf5, + 0x0c01, 0x0c0b, 0x0c29, 0x0c3c, 0x0c51, 0x0c72, 0x0c80, 0x0c8a, + // Entry C0 - FF + 0x0c98, 0x0ca0, 0x0cbf, 0x0ccd, 0x0cd9, 0x0ce3, 0x0ced, 0x0cf9, + 0x0d0e, 0x0d1d, 0x0d2e, 0x0d36, 0x0d42, 0x0d50, 0x0d5f, 0x0d6d, + 0x0d91, 0x0d9f, 0x0db4, 0x0dc3, 0x0dcb, 0x0dd7, 0x0de3, 0x0df4, + 0x0e16, 0x0e27, 0x0e38, 0x0e42, 0x0e52, 0x0e6c, 0x0e8c, 0x0e94, + 0x0ec3, 0x0ecb, 0x0ed7, 0x0ee9, 0x0ef5, 0x0f08, 0x0f1c, 0x0f2a, + 0x0f34, 0x0f40, 0x0f5b, 0x0f65, 0x0f73, 0x0f7f, 0x0f8f, 0x0f9b, + 0x0fc2, 0x0fd7, 0x0fe9, 0x0ffb, 0x1009, 0x1031, 0x103f, 0x1063, + 0x1091, 0x109f, 0x10ab, 0x10cb, 0x10d5, 0x10e1, 0x10e9, 0x10f3, + // Entry 100 - 13F + 0x1108, 0x1112, 0x1124, 0x113a, 0x1144, 0x1150, 0x1165, 0x117a, + 0x118a, 0x119f, 0x11b4, 0x11c9, 0x11de, 0x11f3, 0x1211, 0x121d, + 0x1238, 0x1253, 0x1264, 0x1275, 0x1290, 0x12a5, 0x12b9, 0x12c5, + 0x12e0, 0x12f0, 0x12f8, 0x1309, 0x131a, 0x1326, 0x133b, 0x1350, + 0x1365, 0x1380, +} // Size: 604 bytes + +var hiRegionStr string = "" + // Size: 8717 bytes + "असेंशन दà¥à¤µà¥€à¤ªà¤à¤‚डोरासंयà¥à¤•à¥à¤¤ अरब अमीरातअफ़गानिसà¥à¤¤à¤¾à¤¨à¤à¤‚टिगà¥à¤† और बरबà¥à¤¡à¤¾à¤à¤‚गà¥à¤µà¤¿à¤²" + + "ाअलà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤…ंगोलाअंटारà¥à¤•à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤‚टीनाअमेरिकी समोआऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥" + + "टà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤…रूबाà¤à¤²à¥ˆà¤‚ड दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हअज़रबैजानबोसà¥à¤¨à¤¿à¤¯à¤¾ और हरà¥à¤œà¤¼à¥‡à¤—ोविनाबारबाडोसब" + + "ांगà¥à¤²à¤¾à¤¦à¥‡à¤¶à¤¬à¥‡à¤²à¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फ़ासोबà¥à¤²à¥à¤—ारियाबहरीनबà¥à¤°à¥à¤‚डीबेनिनसेंट बारà¥à¤¥à¥‡à¤²" + + "ेमीबरमूडाबà¥à¤°à¥‚नेईबोलीवियाकैरिबियन नीदरलैंडबà¥à¤°à¤¾à¤œà¤¼à¥€à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤¸à¤­à¥‚टानबोवेत दà¥à¤µà¥€" + + "पबोतà¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबेलीज़कनाडाकोकोस (कीलिंग) दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हकांगो - किंशासामध" + + "à¥à¤¯ अफ़à¥à¤°à¥€à¤•à¥€ गणराजà¥à¤¯à¤•à¤¾à¤‚गो – बà¥à¤°à¤¾à¤œà¤¼à¤¾à¤µà¤¿à¤²à¤¸à¥à¤µà¤¿à¤Ÿà¥à¤œà¤¼à¤°à¤²à¥ˆà¤‚डकोट डी आइवरकà¥à¤• दà¥à¤µà¥€à¤ª" + + "समूहचिलीकैमरूनचीनकोलंबियाकà¥à¤²à¤¿à¤ªà¤°à¥à¤Ÿà¤¨ दà¥à¤µà¥€à¤ªà¤•à¥‹à¤¸à¥à¤Ÿà¤¾à¤°à¤¿à¤•à¤¾à¤•à¥à¤¯à¥‚बाकेप वरà¥à¤¡à¤•à¥à¤¯à¥‚रा" + + "साओकà¥à¤°à¤¿à¤¸à¤®à¤¸ दà¥à¤µà¥€à¤ªà¤¸à¤¾à¤‡à¤ªà¥à¤°à¤¸à¤šà¥‡à¤• गणराजà¥à¤¯à¤œà¤°à¥à¤®à¤¨à¥€à¤¡à¤¿à¤à¤—ो गारà¥à¤¸à¤¿à¤¯à¤¾à¤œà¤¿à¤¬à¥‚तीडेनमारà¥à¤•à¤¡à¥‹" + + "मिनिकाडोमिनिकन गणराजà¥à¤¯à¤…लà¥à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥‡à¤‰à¤Ÿà¤¾ और मेलिलाइकà¥à¤µà¤¾à¤¡à¥‹à¤°à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¿à¤¸à¥à¤°à¤ªà¤¶" + + "à¥à¤šà¤¿à¤®à¥€ सहाराइरिटà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤¯à¥‹à¤ªà¤¿à¤¯à¤¾à¤¯à¥‚रोपीय संघफ़िनलैंडफ़िजीफ़ॉकलैंड दà¥à¤µ" + + "ीपसमूहमाइकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¤¼à¥‡à¤°à¥‹ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हफ़à¥à¤°à¤¾à¤‚सगैबॉनयूनाइटेड किंगडमगà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤œ" + + "ॉरà¥à¤œà¤¿à¤¯à¤¾à¤«à¤¼à¥à¤°à¥‡à¤‚च गयानागरà¥à¤¨à¤¸à¥€à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤°à¤—à¥à¤°à¥€à¤¨à¤²à¥ˆà¤‚डगामà¥à¤¬à¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾à¤¡à¥‡à¤²à¥‚प" + + "इकà¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गिनीयूनानदकà¥à¤·à¤¿à¤£ जॉरà¥à¤œà¤¿à¤¯à¤¾ और दकà¥à¤·à¤¿à¤£ सैंडविच दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हगà¥à¤µà¤¾à¤Ÿà¥‡" + + "मालागà¥à¤†à¤®à¤—िनी-बिसाउगयानाहाà¤à¤— काà¤à¤— (चीन विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤°)हरà¥à¤¡ दà¥à¤µ" + + "ीप और मैकडोनॉलà¥à¤¡ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हहोंडूरासकà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¥ˆà¤¤à¥€à¤¹à¤‚गरीकैनेरी दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हइं" + + "डोनेशियाआयरलैंडइसराइलआइल ऑफ़ मैनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंद महासागरीय कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•" + + "ईरानआइसलैंडइटलीजरà¥à¤¸à¥€à¤œà¤®à¥ˆà¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िज़सà¥à¤¤à¤¾à¤¨à¤•à¤‚बोडियाकिरिबात" + + "ीकोमोरोससेंट किटà¥à¤¸ और नेविसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥ˆà¤¤à¤•à¥‡à¤®à¥ˆà¤¨ दà¥à¤µà¥€à¤ªà¤¸à¤®" + + "ूहकज़ाखसà¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबनानसेंट लूसियालिचेंसà¥à¤Ÿà¥€à¤¨à¤¶à¥à¤°à¥€à¤²à¤‚कालाइबेरियालेसोथोलिथà¥" + + "आनियालगà¥à¤œà¤¼à¤®à¤¬à¤°à¥à¤—लातवियालीबियामोरकà¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¥‰à¤²à¥à¤¡à¥‹à¤µà¤¾à¤®à¥‹à¤‚टेनेगà¥à¤°à¥‹à¤¸à¥‡à¤‚ट मारà¥à¤Ÿ" + + "िनमेडागासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हमैसिडोनियामालीमà¥à¤¯à¤¾à¤‚मार (बरà¥à¤®à¤¾)मंगोलियामकाऊ" + + " (विशेष पà¥à¤°à¤¶à¤¾à¤¸à¤¨à¤¿à¤• कà¥à¤·à¥‡à¤¤à¥à¤° चीन)उतà¥à¤¤à¤°à¥€ मारियाना दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हमारà¥à¤Ÿà¥€à¤¨à¤¿à¤•à¤®à¥‰à¤°à¤¿à¤Ÿà¤¾à¤¨à¤¿" + + "यामोंटसेरातमालà¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¶à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µà¤®à¤²à¤¾à¤µà¥€à¤®à¥ˆà¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¼à¤¾à¤‚बिकनामीबियानà¥à¤¯à¥‚" + + " कैलेडोनियानाइजरनॉरफ़ॉक दà¥à¤µà¥€à¤ªà¤¨à¤¾à¤‡à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤†à¤¨à¥€à¤¦à¤°à¤²à¥ˆà¤‚डनॉरà¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾à¤‰à¤°à¥à¤¨" + + "ीयूनà¥à¤¯à¥‚ज़ीलैंडओमानपनामापेरूफ़à¥à¤°à¥‡à¤‚च पोलिनेशियापापà¥à¤† नà¥à¤¯à¥‚ गिनीफ़िलिपींसप" + + "ाकिसà¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¥ˆà¤‚डसेंट पिà¤à¤°à¥‡ और मिकà¥à¤µà¥‡à¤²à¤¾à¤¨à¤ªà¤¿à¤Ÿà¤•à¥ˆà¤°à¥à¤¨ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हपोरà¥à¤Ÿà¥‹ रिकोफ़िल" + + "िसà¥à¤¤à¥€à¤¨à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥à¤°à¥à¤¤à¤—ालपलाऊपेरागà¥à¤µà¥‡à¤•à¤¼à¤¤à¤°à¤†à¤‰à¤Ÿà¤²à¤¾à¤‡à¤‚ग ओशिनियारियूनियनरोमानिय" + + "ासरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरवांडासऊदी अरबसोलोमन दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हसेशेलà¥à¤¸à¤¸à¥‚डानसà¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गापà¥à¤°à¤¸à¥‡à¤‚" + + "ट हेलेनासà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¤¬à¤¾à¤°à¥à¤¡ और जान मायेनसà¥à¤²à¥‹à¤µà¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤à¤°à¤¾ लियोनसैन मेरी" + + "नोसेनेगलसोमालियासूरीनामदकà¥à¤·à¤¿à¤£ सूडानसाओ टोम और पà¥à¤°à¤¿à¤‚सिपेअल सलà¥à¤µà¤¾à¤¡à¥‹à¤°à¤¸à¤¿à¤‚ट" + + " मारà¥à¤Ÿà¤¿à¤¨à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¼à¥€à¤²à¥ˆà¤‚डतà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¾à¤¨ डा कà¥à¤¨à¤¾à¤¤à¥à¤°à¥à¤• और कैकोज़ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हचाडफ़" + + "à¥à¤°à¤¾à¤‚सीसी दकà¥à¤·à¤¿à¤£à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤Ÿà¥‹à¤—ोथाईलैंडताजिकिसà¥à¤¤à¤¾à¤¨à¤¤à¥‹à¤•à¥‡à¤²à¤¾à¤‰à¤¤à¤¿à¤®à¥‹à¤°-लेसà¥à¤¤à¤¤à¥à¤°à¥à¤•à¤®" + + "ेनिसà¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥‚नीशियाटोंगातà¥à¤°à¥à¤•à¥€à¤¤à¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ और टोबैगोतà¥à¤µà¤¾à¤²à¥‚ताइवानतंज़ानियाय" + + "ूकà¥à¤°à¥‡à¤¨à¤¯à¥à¤—ांडायू.à¤à¤¸. आउटलाइंग दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हसंयà¥à¤•à¥à¤¤ राजà¥à¤¯à¤‰à¤°à¥‚गà¥à¤µà¥‡à¤‰à¤œà¤¼à¥à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾" + + "नवेटिकन सिटीसेंट विंसेंट और गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤‡à¤‚सवेनेज़à¥à¤à¤²à¤¾à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वरà¥à¤œà¤¿à¤¨ दà¥à¤µà¥€à¤ªà¤¸" + + "मूहयू.à¤à¤¸. वरà¥à¤œà¤¿à¤¨ दà¥à¤µà¥€à¤ªà¤¸à¤®à¥‚हवियतनामवनà¥à¤†à¤¤à¥‚वालिस और फ़à¥à¤¯à¥‚चूनासमोआकोसोवोयमन" + + "मायोतेदकà¥à¤·à¤¿à¤£ अफ़à¥à¤°à¥€à¤•à¤¾à¤œà¤¼à¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤œà¤¼à¤¿à¤®à¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…जà¥à¤žà¤¾à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤µà¤¿à¤¶à¥à¤µà¤…फ़à¥à¤°à¥€à¤•à¤¾à¤‰à¤¤" + + "à¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओशिआनियापशà¥à¤šà¤¿à¤®à¥€ अफ़à¥à¤°à¥€à¤•à¤¾à¤®à¤§à¥à¤¯ अमेरिकापूरà¥à¤µà¥€ अफ" + + "़à¥à¤°à¥€à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफ़à¥à¤°à¥€à¤•à¤¾à¤®à¤§à¥à¤¯ अफ़à¥à¤°à¥€à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफ़à¥à¤°à¥€à¤•à¤¾à¤…मेरिकाज़उतà¥à¤¤à¤°à¥€ अमेर" + + "िकाकैरिबियनपूरà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£-पूरà¥à¤µ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ यूरोपऑसà¥" + + "टà¥à¤°à¥‡à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‡à¤²à¤¾à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤ˆ कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥‹à¤²à¥€à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤à¤¶à¤¿à¤¯à¤¾à¤®à¤§à¥à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥" + + "चिमी à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥‚रोपपूरà¥à¤µà¥€ यूरोपउतà¥à¤¤à¤°à¥€ यूरोपपशà¥à¤šà¤¿à¤®à¥€ यूरोपलैटिन अमेरिका" + +var hiRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0022, 0x0034, 0x0066, 0x008a, 0x00b9, 0x00d1, 0x00ec, + 0x0107, 0x0119, 0x013a, 0x0158, 0x017a, 0x0195, 0x01b6, 0x01c5, + 0x01f0, 0x020b, 0x024f, 0x0267, 0x0285, 0x029d, 0x02c5, 0x02e3, + 0x02f2, 0x0307, 0x0316, 0x0341, 0x0353, 0x0368, 0x0380, 0x03b1, + 0x03c9, 0x03db, 0x03ea, 0x0409, 0x0427, 0x043c, 0x044e, 0x045d, + 0x049d, 0x04c4, 0x04ff, 0x0531, 0x0558, 0x0575, 0x059a, 0x05a6, + 0x05b8, 0x05c1, 0x05d9, 0x0604, 0x0622, 0x0634, 0x064a, 0x0665, + 0x068a, 0x069f, 0x06be, 0x06d0, 0x06f8, 0x070a, 0x0722, 0x073a, + // Entry 40 - 7F + 0x0768, 0x0783, 0x07ac, 0x07c4, 0x07df, 0x07ee, 0x0813, 0x082e, + 0x083d, 0x0858, 0x0877, 0x088f, 0x089e, 0x08d2, 0x08f9, 0x0924, + 0x0939, 0x0948, 0x0973, 0x098b, 0x09a3, 0x09c8, 0x09da, 0x09e6, + 0x0a04, 0x0a1f, 0x0a37, 0x0a43, 0x0a5e, 0x0a8c, 0x0a9b, 0x0b12, + 0x0b30, 0x0b3c, 0x0b58, 0x0b67, 0x0bce, 0x0c2c, 0x0c44, 0x0c5f, + 0x0c6b, 0x0c7a, 0x0ca8, 0x0cc6, 0x0cdb, 0x0ced, 0x0d0a, 0x0d16, + 0x0d6a, 0x0d76, 0x0d82, 0x0d97, 0x0da3, 0x0db2, 0x0dc1, 0x0dd3, + 0x0de2, 0x0df4, 0x0e1b, 0x0e33, 0x0e4b, 0x0e60, 0x0e93, 0x0eb5, + // Entry 80 - BF + 0x0eda, 0x0ee9, 0x0f14, 0x0f32, 0x0f3e, 0x0f50, 0x0f6f, 0x0f8d, + 0x0fa5, 0x0fc0, 0x0fd2, 0x0fed, 0x100b, 0x1020, 0x1032, 0x1047, + 0x1059, 0x1071, 0x1092, 0x10b4, 0x10d2, 0x1100, 0x111e, 0x112a, + 0x1154, 0x116c, 0x11c6, 0x120d, 0x1228, 0x1246, 0x1261, 0x1273, + 0x1285, 0x1297, 0x12a6, 0x12be, 0x12d3, 0x12ee, 0x1306, 0x1331, + 0x1340, 0x1365, 0x1380, 0x139b, 0x13b3, 0x13c5, 0x13d4, 0x13e3, + 0x13ef, 0x1410, 0x141c, 0x142b, 0x1437, 0x146b, 0x1494, 0x14af, + 0x14ca, 0x14dc, 0x151b, 0x154f, 0x156e, 0x15a5, 0x15bd, 0x15c9, + // Entry C0 - FF + 0x15e1, 0x15ed, 0x161b, 0x1633, 0x164b, 0x1660, 0x1669, 0x167b, + 0x1691, 0x16bf, 0x16d4, 0x16e3, 0x16f5, 0x170d, 0x172c, 0x174a, + 0x1789, 0x17a7, 0x17c6, 0x17e2, 0x17f4, 0x180c, 0x1821, 0x1843, + 0x1879, 0x1898, 0x18ba, 0x18cc, 0x18ed, 0x191c, 0x1961, 0x196a, + 0x19b4, 0x19c0, 0x19d5, 0x19f6, 0x1a0b, 0x1a2a, 0x1a54, 0x1a72, + 0x1a81, 0x1a93, 0x1ac8, 0x1ada, 0x1aec, 0x1b07, 0x1b1c, 0x1b31, + 0x1b74, 0x1b99, 0x1bae, 0x1bd5, 0x1bf4, 0x1c3f, 0x1c5d, 0x1ca1, + 0x1cde, 0x1cf3, 0x1d05, 0x1d37, 0x1d43, 0x1d55, 0x1d5e, 0x1d70, + // Entry 100 - 13F + 0x1d9b, 0x1db6, 0x1dd7, 0x1dff, 0x1e0e, 0x1e26, 0x1e4b, 0x1e73, + 0x1e8b, 0x1eb9, 0x1edb, 0x1f06, 0x1f31, 0x1f56, 0x1f84, 0x1f9f, + 0x1fc7, 0x1fdf, 0x2001, 0x2026, 0x2058, 0x207d, 0x20a4, 0x20c2, + 0x2102, 0x2120, 0x212f, 0x214b, 0x2170, 0x217f, 0x21a1, 0x21c3, + 0x21e8, 0x220d, +} // Size: 604 bytes + +var hrRegionStr string = "" + // Size: 3096 bytes + "Otok AscensionAndoraUjedinjeni Arapski EmiratiAfganistanAntigua i Barbud" + + "aAngvilaAlbanijaArmenijaAngolaAntarktikaArgentinaAmeriÄka SamoaAustrijaA" + + "ustralijaArubaOtoci AlandAzerbajdžanBosna i HercegovinaBarbadosBangladeÅ¡" + + "BelgijaBurkina FasoBugarskaBahreinBurundiBeninSveti BartolomejBermudaBru" + + "nejBolivijaKaripski otoci NizozemskeBrazilBahamiButanOtok BouvetBocvanaB" + + "jelorusijaBelizeKanadaKokosovi (Keeling) OtociKongo - KinshasaSrednjoafr" + + "iÄka RepublikaKongo - BrazzavilleÅ vicarskaObala BjelokostiCookovi OtociÄŒ" + + "ileKamerunKinaKolumbijaOtok ClippertonKostarikaKubaZelenortska Republika" + + "CuraçaoBožićni OtokCiparÄŒeÅ¡ka RepublikaNjemaÄkaDiego GarciaDžibutiDanska" + + "DominikaDominikanska RepublikaAlžirCeuta i MelillaEkvadorEstonijaEgipatZ" + + "apadna SaharaEritrejaÅ panjolskaEtiopijaEuropska unijaFinskaFidžiFalkland" + + "ski OtociMikronezijaFarski OtociFrancuskaGabonVelika BritanijaGrenadaGru" + + "zijaFrancuska GvajanaGuernseyGanaGibraltarGrenlandGambijaGvinejaGuadalup" + + "aEkvatorska GvinejaGrÄkaJužna Georgija i Južni SendviÄki OtociGvatemalaG" + + "uamGvineja BisauGvajanaHong Kong PUP KinaOtoci Heard i McDonaldHondurasH" + + "rvatskaHaitiMaÄ‘arskaKanarski OtociIndonezijaIrskaIzraelOtok ManIndijaBri" + + "tanski Indijskooceanski TeritorijIrakIranIslandItalijaJerseyJamajkaJorda" + + "nJapanKenijaKirgistanKambodžaKiribatiKomoriSveti Kristofor i NevisSjever" + + "na KorejaJužna KorejaKuvajtKajmanski OtociKazahstanLaosLibanonSveta Luci" + + "jaLihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvaLuksemburgLatvijaLibijaMarokoMo" + + "nakoMoldavijaCrna GoraSveti MartinMadagaskarMarÅ¡alovi OtociMakedonijaMal" + + "iMijanmar (Burma)MongolijaMakao PUP KinaSjeverni Marijanski OtociMartini" + + "queMauritanijaMontserratMaltaMauricijusMaldiviMalaviMeksikoMalezijaMozam" + + "bikNamibijaNova KaledonijaNigerOtok NorfolkNigerijaNikaragvaNizozemskaNo" + + "rveÅ¡kaNepalNauruNiueNovi ZelandOmanPanamaPeruFrancuska PolinezijaPapua N" + + "ova GvinejaFilipiniPakistanPoljskaSveti Petar i MikelonOtoci PitcairnPor" + + "torikoPalestinsko PodruÄjePortugalPalauParagvajKatarOstala oceanijaReuni" + + "onRumunjskaSrbijaRusijaRuandaSaudijska ArabijaSalomonski OtociSejÅ¡eliSud" + + "anÅ vedskaSingapurSveta HelenaSlovenijaSvalbard i Jan MayenSlovaÄkaSijera" + + " LeoneSan MarinoSenegalSomalijaSurinamJužni SudanSveti Toma i PrincipSal" + + "vadorSint MaartenSirijaSvaziTristan da CunhaOtoci Turks i CaicosÄŒadFranc" + + "uske Južne i AntarktiÄke ZemljeTogoTajlandTadžikistanTokelauIstoÄni Timo" + + "rTurkmenistanTunisTongaTurskaTrinidad i TobagoTuvaluTajvanTanzanijaUkraj" + + "inaUgandaMali udaljeni otoci SAD-aSjedinjene AmeriÄke DržaveUrugvajUzbek" + + "istanSveta StolicaSveti Vincent i GrenadiniVenezuelaBritanski DjeviÄansk" + + "i OtociAmeriÄki DjeviÄanski OtociVijetnamVanuatuWallis i FutunaSamoaKoso" + + "voJemenMayotteJužnoafriÄka RepublikaZambijaZimbabvenepoznato podruÄjeSvi" + + "jetAfrikaSjevernoameriÄki kontinentJužna AmerikaOceanijaZapadna AfrikaCe" + + "ntralna AmerikaIstoÄna AfrikaSjeverna AfrikaSrediÅ¡nja AfrikaJužna Afrika" + + "AmerikeSjeverna AmerikaKaribiIstoÄna AzijaJužna AzijaJugoistoÄna AzijaJu" + + "žna EuropaAustralazijaMelanezijaMikronezijsko podruÄjePolinezijaAzijaSr" + + "ednja AzijaZapadna AzijaEuropaIstoÄna EuropaSjeverna EuropaZapadna Europ" + + "aLatinska Amerika" + +var hrRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0014, 0x002e, 0x0038, 0x0049, 0x0050, 0x0058, + 0x0060, 0x0066, 0x0070, 0x0079, 0x0088, 0x0090, 0x009a, 0x009f, + 0x00aa, 0x00b6, 0x00c9, 0x00d1, 0x00db, 0x00e2, 0x00ee, 0x00f6, + 0x00fd, 0x0104, 0x0109, 0x0119, 0x0120, 0x0126, 0x012e, 0x0147, + 0x014d, 0x0153, 0x0158, 0x0163, 0x016a, 0x0175, 0x017b, 0x0181, + 0x0199, 0x01a9, 0x01c2, 0x01d5, 0x01df, 0x01ef, 0x01fc, 0x0201, + 0x0208, 0x020c, 0x0215, 0x0224, 0x022d, 0x0231, 0x0246, 0x024e, + 0x025c, 0x0261, 0x0272, 0x027b, 0x0287, 0x028f, 0x0295, 0x029d, + // Entry 40 - 7F + 0x02b3, 0x02b9, 0x02c8, 0x02cf, 0x02d7, 0x02dd, 0x02eb, 0x02f3, + 0x02fe, 0x0306, 0x0314, 0x031a, 0x0320, 0x0331, 0x033c, 0x0348, + 0x0351, 0x0356, 0x0366, 0x036d, 0x0374, 0x0385, 0x038d, 0x0391, + 0x039a, 0x03a2, 0x03a9, 0x03b0, 0x03b9, 0x03cb, 0x03d1, 0x03fa, + 0x0403, 0x0407, 0x0414, 0x041b, 0x042d, 0x0443, 0x044b, 0x0453, + 0x0458, 0x0461, 0x046f, 0x0479, 0x047e, 0x0484, 0x048c, 0x0492, + 0x04b6, 0x04ba, 0x04be, 0x04c4, 0x04cb, 0x04d1, 0x04d8, 0x04de, + 0x04e3, 0x04e9, 0x04f2, 0x04fb, 0x0503, 0x0509, 0x0520, 0x052f, + // Entry 80 - BF + 0x053c, 0x0542, 0x0551, 0x055a, 0x055e, 0x0565, 0x0571, 0x057d, + 0x0587, 0x058f, 0x0595, 0x059a, 0x05a4, 0x05ab, 0x05b1, 0x05b7, + 0x05bd, 0x05c6, 0x05cf, 0x05db, 0x05e5, 0x05f5, 0x05ff, 0x0603, + 0x0613, 0x061c, 0x062a, 0x0643, 0x064d, 0x0658, 0x0662, 0x0667, + 0x0671, 0x0678, 0x067e, 0x0685, 0x068d, 0x0695, 0x069d, 0x06ac, + 0x06b1, 0x06bd, 0x06c5, 0x06ce, 0x06d8, 0x06e1, 0x06e6, 0x06eb, + 0x06ef, 0x06fa, 0x06fe, 0x0704, 0x0708, 0x071c, 0x072e, 0x0736, + 0x073e, 0x0745, 0x075a, 0x0768, 0x0771, 0x0786, 0x078e, 0x0793, + // Entry C0 - FF + 0x079b, 0x07a0, 0x07af, 0x07b6, 0x07bf, 0x07c5, 0x07cb, 0x07d1, + 0x07e2, 0x07f2, 0x07fa, 0x07ff, 0x0807, 0x080f, 0x081b, 0x0824, + 0x0838, 0x0841, 0x084d, 0x0857, 0x085e, 0x0866, 0x086d, 0x0879, + 0x088d, 0x0895, 0x08a1, 0x08a7, 0x08ac, 0x08bc, 0x08d0, 0x08d4, + 0x08fa, 0x08fe, 0x0905, 0x0911, 0x0918, 0x0926, 0x0932, 0x0937, + 0x093c, 0x0942, 0x0953, 0x0959, 0x095f, 0x0968, 0x0970, 0x0976, + 0x098f, 0x09ab, 0x09b2, 0x09bc, 0x09c9, 0x09e2, 0x09eb, 0x0a07, + 0x0a23, 0x0a2b, 0x0a32, 0x0a41, 0x0a46, 0x0a4c, 0x0a51, 0x0a58, + // Entry 100 - 13F + 0x0a70, 0x0a77, 0x0a7f, 0x0a92, 0x0a98, 0x0a9e, 0x0ab9, 0x0ac7, + 0x0acf, 0x0add, 0x0aee, 0x0afd, 0x0b0c, 0x0b1d, 0x0b2a, 0x0b31, + 0x0b41, 0x0b47, 0x0b55, 0x0b61, 0x0b73, 0x0b80, 0x0b8c, 0x0b96, + 0x0bad, 0x0bb7, 0x0bbc, 0x0bc9, 0x0bd6, 0x0bdc, 0x0beb, 0x0bfa, + 0x0c08, 0x0c18, +} // Size: 604 bytes + +var huRegionStr string = "" + // Size: 3337 bytes + "Ascension-szigetAndorraEgyesült Arab EmírségekAfganisztánAntigua és Barb" + + "udaAnguillaAlbániaÖrményországAngolaAntarktiszArgentínaAmerikai SzamoaAu" + + "sztriaAusztráliaArubaÃ…land-szigetekAzerbajdzsánBosznia-HercegovinaBarbad" + + "osBangladesBelgiumBurkina FasoBulgáriaBahreinBurundiBeninSaint-Barthélem" + + "yBermudaBruneiBolíviaHolland Karib-térségBrazíliaBahama-szigetekBhutánBo" + + "uvet-szigetBotswanaFehéroroszországBelizeKanadaKókusz-szigetekKongó - Ki" + + "nshasaKözép-afrikai KöztársaságKongó - BrazzavilleSvájcElefántcsontpartC" + + "ook-szigetekChileKamerunKínaKolumbiaClipperton-szigetCosta RicaKubaZöld-" + + "foki KöztársaságCuraçaoKarácsony-szigetCiprusCsehországNémetországDiego " + + "GarciaDzsibutiDániaDominikaDominikai KöztársaságAlgériaCeuta és MelillaE" + + "cuadorÉsztországEgyiptomNyugat-SzaharaEritreaSpanyolországEtiópiaEurópai" + + " UnióFinnországFidzsiFalkland-szigetekMikronéziaFeröer-szigetekFranciaor" + + "szágGabonEgyesült KirályságGrenadaGrúziaFrancia GuyanaGuernseyGhánaGibra" + + "ltárGrönlandGambiaGuineaGuadeloupeEgyenlítÅ‘i-GuineaGörögországDéli-Georg" + + "ia és Déli-Sandwich-szigetekGuatemalaGuamBissau-GuineaGuyanaHongkong SAR" + + " KínaHeard-sziget és McDonald-szigetekHondurasHorvátországHaitiMagyarors" + + "zágKanári-szigetekIndonéziaÃrországIzraelMan-szigetIndiaBrit Indiai-óceá" + + "ni TerületIrakIránIzlandOlaszországJerseyJamaicaJordániaJapánKenyaKirgiz" + + "isztánKambodzsaKiribatiComore-szigetekSaint Kitts és NevisÉszak-KoreaDél" + + "-KoreaKuvaitKajmán-szigetekKazahsztánLaoszLibanonSanta LuciaLiechtenstei" + + "nSrí LankaLibériaLesothoLitvániaLuxemburgLettországLíbiaMarokkóMonacoMol" + + "dovaMontenegróSaint MartinMadagaszkárMarshall-szigetekMacedóniaMaliMianm" + + "ar (Burma)MongóliaMakaó SAR KínaÉszaki Mariana-szigetekMartiniqueMauritá" + + "niaMontserratMáltaMauritiusMaldív-szigetekMalawiMexikóMalajziaMozambikNa" + + "míbiaÚj-KaledóniaNigerNorfolk-szigetNigériaNicaraguaHollandiaNorvégiaNep" + + "álNauruNiueÚj-ZélandOmánPanamaPeruFrancia PolinéziaPápua Új-GuineaFülöp" + + "-szigetekPakisztánLengyelországSaint Pierre és MiquelonPitcairn-szigetek" + + "Puerto RicoPalesztin TerületPortugáliaPalauParaguayKatarKülsÅ‘-ÓceániaReu" + + "nionRomániaSzerbiaOroszországRuandaSzaúd-ArábiaSalamon-szigetekSeychelle" + + "-szigetekSzudánSvédországSzingapúrSzent IlonaSzlovéniaSpitzbergák és Jan" + + " Mayen-szigetekSzlovákiaSierra LeoneSan MarinoSzenegálSzomáliaSurinameDé" + + "l-SzudánSao Tomé és PríncipeSalvadorSint MaartenSzíriaSzváziföldTristan " + + "da CunhaTurks- és Caicos-szigetekCsádFrancia Déli TerületekTogoThaiföldT" + + "ádzsikisztánTokelauKelet-TimorTürkmenisztánTunéziaTongaTörökországTrini" + + "dad és TobagoTuvaluTajvanTanzániaUkrajnaUgandaAmerikai Csendes-óceáni Sz" + + "igetekEgyesült ÃllamokUruguayÃœzbegisztánVatikánSaint Vincent és a Grenad" + + "ine-szigetekVenezuelaBrit Virgin-szigetekAmerikai Virgin-szigetekVietnam" + + "VanuatuWallis- és Futuna-szigetekSzamoaKoszovóJemenMayotteDél-afrikai Kö" + + "ztársaságZambiaZimbabweIsmeretlen körzetVilágAfrikaÉszak-AmerikaDél-Amer" + + "ikaÓceániaNyugat-AfrikaKözép-AmerikaKelet-AfrikaÉszak-AfrikaKözép-Afrika" + + "Afrika déli részeAmerikaAmerika északi részeKarib-térségKelet-ÃzsiaDél-Ã" + + "zsiaDélkelet-ÃzsiaDél-EurópaAusztrálázsiaMelanéziaMikronéziai régióPolin" + + "éziaÃzsiaKözép-ÃzsiaNyugat-ÃzsiaEurópaKelet-EurópaÉszak-EurópaNyugat-Eu" + + "rópaLatin-Amerika" + +var huRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x0031, 0x003d, 0x0050, 0x0058, 0x0060, + 0x006f, 0x0075, 0x007f, 0x0089, 0x0098, 0x00a0, 0x00ab, 0x00b0, + 0x00bf, 0x00cc, 0x00df, 0x00e7, 0x00f0, 0x00f7, 0x0103, 0x010c, + 0x0113, 0x011a, 0x011f, 0x0130, 0x0137, 0x013d, 0x0145, 0x015b, + 0x0164, 0x0173, 0x017a, 0x0187, 0x018f, 0x01a1, 0x01a7, 0x01ad, + 0x01bd, 0x01ce, 0x01ec, 0x0200, 0x0206, 0x0217, 0x0224, 0x0229, + 0x0230, 0x0235, 0x023d, 0x024e, 0x0258, 0x025c, 0x0275, 0x027d, + 0x028e, 0x0294, 0x029f, 0x02ac, 0x02b8, 0x02c0, 0x02c6, 0x02ce, + // Entry 40 - 7F + 0x02e6, 0x02ee, 0x02ff, 0x0306, 0x0312, 0x031a, 0x0328, 0x032f, + 0x033d, 0x0345, 0x0353, 0x035e, 0x0364, 0x0375, 0x0380, 0x0390, + 0x039e, 0x03a3, 0x03b8, 0x03bf, 0x03c6, 0x03d4, 0x03dc, 0x03e2, + 0x03ec, 0x03f5, 0x03fb, 0x0401, 0x040b, 0x041e, 0x042c, 0x0455, + 0x045e, 0x0462, 0x046f, 0x0475, 0x0487, 0x04a9, 0x04b1, 0x04bf, + 0x04c4, 0x04d1, 0x04e1, 0x04eb, 0x04f5, 0x04fb, 0x0505, 0x050a, + 0x0527, 0x052b, 0x0530, 0x0536, 0x0542, 0x0548, 0x054f, 0x0558, + 0x055e, 0x0563, 0x0570, 0x0579, 0x0581, 0x0590, 0x05a5, 0x05b1, + // Entry 80 - BF + 0x05bb, 0x05c1, 0x05d1, 0x05dc, 0x05e1, 0x05e8, 0x05f3, 0x0600, + 0x060a, 0x0612, 0x0619, 0x0622, 0x062b, 0x0636, 0x063c, 0x0644, + 0x064a, 0x0651, 0x065c, 0x0668, 0x0674, 0x0685, 0x068f, 0x0693, + 0x06a2, 0x06ab, 0x06bb, 0x06d3, 0x06dd, 0x06e8, 0x06f2, 0x06f8, + 0x0701, 0x0711, 0x0717, 0x071e, 0x0726, 0x072e, 0x0736, 0x0744, + 0x0749, 0x0757, 0x075f, 0x0768, 0x0771, 0x077a, 0x0780, 0x0785, + 0x0789, 0x0794, 0x0799, 0x079f, 0x07a3, 0x07b5, 0x07c6, 0x07d6, + 0x07e0, 0x07ee, 0x0807, 0x0818, 0x0823, 0x0835, 0x0840, 0x0845, + // Entry C0 - FF + 0x084d, 0x0852, 0x0863, 0x086a, 0x0872, 0x0879, 0x0885, 0x088b, + 0x0899, 0x08a9, 0x08bb, 0x08c2, 0x08ce, 0x08d8, 0x08e3, 0x08ed, + 0x0910, 0x091a, 0x0926, 0x0930, 0x0939, 0x0942, 0x094a, 0x0956, + 0x096d, 0x0975, 0x0981, 0x0988, 0x0994, 0x09a4, 0x09be, 0x09c3, + 0x09db, 0x09df, 0x09e8, 0x09f7, 0x09fe, 0x0a09, 0x0a18, 0x0a20, + 0x0a25, 0x0a33, 0x0a46, 0x0a4c, 0x0a52, 0x0a5b, 0x0a62, 0x0a68, + 0x0a8a, 0x0a9c, 0x0aa3, 0x0ab0, 0x0ab8, 0x0ade, 0x0ae7, 0x0afb, + 0x0b13, 0x0b1a, 0x0b21, 0x0b3c, 0x0b42, 0x0b4a, 0x0b4f, 0x0b56, + // Entry 100 - 13F + 0x0b71, 0x0b77, 0x0b7f, 0x0b91, 0x0b97, 0x0b9d, 0x0bab, 0x0bb7, + 0x0bc0, 0x0bcd, 0x0bdc, 0x0be8, 0x0bf5, 0x0c03, 0x0c16, 0x0c1d, + 0x0c33, 0x0c41, 0x0c4d, 0x0c58, 0x0c68, 0x0c74, 0x0c83, 0x0c8d, + 0x0ca1, 0x0cab, 0x0cb1, 0x0cbf, 0x0ccc, 0x0cd3, 0x0ce0, 0x0cee, + 0x0cfc, 0x0d09, +} // Size: 604 bytes + +var hyRegionStr string = "" + // Size: 6292 bytes + "Õ€Õ¡Õ´Õ¢Õ¡Ö€Õ±Õ´Õ¡Õ¶ Õ¯Õ²Õ¦Õ«Ô±Õ¶Õ¤Õ¸Ö€Ö€Õ¡Ô±Ö€Õ¡Õ¢Õ¡Õ¯Õ¡Õ¶ Õ„Õ«Õ¡ÖÕµÕ¡Õ¬ Ô·Õ´Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Ô±Ö†Õ²Õ¡Õ¶Õ½Õ¿Õ¡Õ¶Ô±Õ¶Õ¿Õ«Õ£Õ¸Ö‚Õ¡ Ö‡" + + " Ô²Õ¡Ö€Õ¢Õ¸Ö‚Õ¤Õ¡Ô±Õ¶Õ£Õ«Õ¬ÕµÕ¡Ô±Õ¬Õ¢Õ¡Õ¶Õ«Õ¡Õ€Õ¡ÕµÕ¡Õ½Õ¿Õ¡Õ¶Ô±Õ¶Õ£Õ¸Õ¬Õ¡Ô±Õ¶Õ¿Õ¡Ö€Õ¯Õ¿Õ«Õ¤Õ¡Ô±Ö€Õ£Õ¥Õ¶Õ¿Õ«Õ¶Õ¡Ô±Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ ÕÕ¡Õ´Õ¸Õ¡Ô±" + + "Õ¾Õ½Õ¿Ö€Õ«Õ¡Ô±Õ¾Õ½Õ¿Ö€Õ¡Õ¬Õ«Õ¡Ô±Ö€Õ¸Ö‚Õ¢Õ¡Ô±Õ¬Õ¡Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Õ¤Ö€Õ¢Õ¥Õ»Õ¡Õ¶Ô²Õ¸Õ½Õ¶Õ«Õ¡ Ö‡ Õ€Õ¥Ö€ÖÕ¥Õ£Õ¸Õ¾Õ«Õ¶Õ¡Ô²Õ¡Ö€Õ¢Õ¡Õ¤" + + "Õ¸Õ½Ô²Õ¡Õ¶Õ£Õ¬Õ¡Õ¤Õ¥Õ·Ô²Õ¥Õ¬Õ£Õ«Õ¡Ô²Õ¸Ö‚Ö€Õ¯Õ«Õ¶Õ¡ Õ–Õ¡Õ½Õ¸Ô²Õ¸Ö‚Õ¬Õ²Õ¡Ö€Õ«Õ¡Ô²Õ¡Õ°Ö€Õ¥ÕµÕ¶Ô²Õ¸Ö‚Ö€Õ¸Ö‚Õ¶Õ¤Õ«Ô²Õ¥Õ¶Õ«Õ¶ÕÕ¸Ö‚Ö€Õ¢ Ô²Õ¡Ö€Õ¤Õ¸" + + "Ö‚Õ²Õ«Õ´Õ¥Õ¸Õ½Ô²Õ¥Ö€Õ´Õ¸Ö‚Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô²Ö€Õ¸Ö‚Õ¶Õ¥ÕµÔ²Õ¸Õ¬Õ«Õ¾Õ«Õ¡Ô¿Õ¡Ö€Õ«Õ¢ÕµÕ¡Õ¶ Õ†Õ«Õ¤Õ¥Õ¼Õ¬Õ¡Õ¶Õ¤Õ¶Õ¥Ö€Ô²Ö€Õ¡Õ¦Õ«Õ¬Õ«Õ¡Ô²Õ¡Õ°" + + "Õ¡Õ´Õ¶Õ¥Ö€Ô²Õ¸Ö‚Õ©Õ¡Õ¶Ô²Õ¸Ö‚Õ¾Õ¥ Õ¯Õ²Õ¦Õ«Ô²Õ¸Õ©Õ½Õ¾Õ¡Õ¶Õ¡Ô²Õ¥Õ¬Õ¡Õ¼Õ¸Ö‚Õ½Ô²Õ¥Õ¬Õ«Õ¦Ô¿Õ¡Õ¶Õ¡Õ¤Õ¡Ô¿Õ¸Õ¯Õ¸Õ½ÕµÕ¡Õ¶ (Õ”Õ«Õ¬Õ«Õ¶Õ£) Õ¯Õ²Õ¦Õ«Õ¶" + + "Õ¥Ö€Ô¿Õ¸Õ¶Õ£Õ¸ - Ô¿Õ«Õ¶Õ·Õ¡Õ½Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô¿Õ¸Õ¶Õ£Õ¸ - Ô²Ö€Õ¡Õ¦Õ¡Õ¾Õ«Õ¬Õ‡Õ¾" + + "Õ¥ÕµÖÕ¡Ö€Õ«Õ¡Ô¿Õ¸Õ¿ Ô´Õ›Õ«Õ¾Õ¸Ö‚Õ¡Ö€Ô¿Õ¸Ö‚Õ¯Õ« Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ‰Õ«Õ¬Õ«Ô¿Õ¡Õ´Õ¥Ö€Õ¸Ö‚Õ¶Õ‰Õ«Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Ô¿Õ¸Õ¬Õ¸Ö‚Õ´Õ¢Õ«Õ¡Õ”Õ¬Õ«ÖƒÕ¥Ö€Õ©Õ¸Õ¶ " + + "Õ¯Õ²Õ¦Õ«Ô¿Õ¸Õ½Õ¿Õ¡ ՌիկաԿուբաԿաբո ÕŽÕ¥Ö€Õ¤Õ¥Ô¿ÕµÕ¸Ö‚Ö€Õ¡Õ½Õ¡Õ¸Ô¾Õ¶Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Ô¿Õ«ÕºÖ€Õ¸Õ½Õ‰Õ¥Õ­Õ«Õ¡Ô³Õ¥Ö€Õ´Õ¡Õ¶Õ«Õ¡Ô´Õ«" + + "Õ¥Õ£Õ¸ Ô³Õ¡Ö€Õ½Õ«Õ¡Õ‹Õ«Õ¢Õ¸Ö‚Õ¿Õ«Ô´Õ¡Õ¶Õ«Õ¡Ô´Õ¸Õ´Õ«Õ¶Õ«Õ¯Õ¡Ô´Õ¸Õ´Õ«Õ¶Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô±Õ¬ÕªÕ«Ö€ÕÕ¥Õ¸Ö‚Õ¿Õ¡ Ö‡ Õ„" + + "Õ¥Õ¬Õ«Õ¬ÕµÕ¡Ô·Õ¯Õ¾Õ¡Õ¤Õ¸Ö€Ô·Õ½Õ¿Õ¸Õ¶Õ«Õ¡ÔµÕ£Õ«ÕºÕ¿Õ¸Õ½Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ ÕÕ¡Õ°Õ¡Ö€Õ¡Ô·Ö€Õ«Õ¿Ö€Õ¥Õ¡Ô»Õ½ÕºÕ¡Õ¶Õ«Õ¡ÔµÕ©Õ¸Õ¾ÕºÕ«Õ¡ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡" + + "Õ¶ Õ„Õ«Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ–Õ«Õ¶Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Õ–Õ«Õ»Õ«Õ–Õ¸Õ¬Ö„Õ¬Õ¥Õ¶Õ¤ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ«Õ¯Ö€Õ¸Õ¶Õ¥Õ¦Õ«Õ¡Õ–Õ¡Ö€Õ¥Ö€ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ–Ö€" + + "Õ¡Õ¶Õ½Õ«Õ¡Ô³Õ¡Õ¢Õ¸Õ¶Õ„Õ¥Õ® Ô²Ö€Õ«Õ¿Õ¡Õ¶Õ«Õ¡Ô³Ö€Õ¥Õ¶Õ¡Õ¤Õ¡ÕŽÖ€Õ¡Õ½Õ¿Õ¡Õ¶Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯Õ¡Õ¶ Ô³Õ¾Õ«Õ¡Õ¶Õ¡Ô³Õ¥Ö€Õ¶Õ½Õ«Ô³Õ¡Õ¶Õ¡Õ‹Õ«Õ¢Ö€Õ¡Õ¬Õ©Õ¡" + + "Ö€Ô³Ö€Õ¥Õ¶Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô³Õ¡Õ´Õ¢Õ«Õ¡Ô³Õ¾Õ«Õ¶Õ¥Õ¡Ô³Õ¾Õ¡Õ¤Õ¥Õ¬Õ¸Ö‚ÕºÕ¡Õ€Õ¡Õ½Õ¡Ö€Õ¡Õ¯Õ¡Õ®Õ¡ÕµÕ«Õ¶ Ô³Õ¾Õ«Õ¶Õ¥Õ¡Õ€Õ¸Ö‚Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶" + + " Õ‹Õ¸Ö€Õ»Õ«Õ¡ Ö‡ Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¥Õ¶Õ¤Õ¾Õ«Õ¹ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô³Õ¾Õ¡Õ¿Õ¥Õ´Õ¡Õ¬Õ¡Ô³Õ¸Ö‚Õ¡Õ´Ô³Õ¾Õ«Õ¶Õ¥Õ¡-Ô²Õ«Õ½Õ¡Õ¸Ö‚Ô³Õ¡ÕµÕ¡Õ¶Õ¡Õ€" + + "Õ¸Õ¶Õ¯Õ¸Õ¶Õ£Õ« Õ€ÕŽÕ‡Õ€Õ¥Ö€Õ¤ Õ¯Õ²Õ¦Õ« Ö‡ Õ„Õ¡Õ¯Ô´Õ¸Õ¶Õ¡Õ¬Õ¤Õ« Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ€Õ¸Õ¶Õ¤Õ¸Ö‚Ö€Õ¡Õ½Ô½Õ¸Ö€Õ¾Õ¡Õ©Õ«Õ¡Õ€Õ¡Õ«Õ©Õ«Õ€Õ¸Ö‚Õ¶Õ£Õ¡Ö€Õ«" + + "Õ¡Ô¿Õ¡Õ¶Õ¡Ö€ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô»Õ¶Õ¤Õ¸Õ¶Õ¥Õ¦Õ«Õ¡Ô»Õ¼Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô»Õ½Ö€Õ¡ÕµÕ¥Õ¬Õ„Õ¥Õ¶ Õ¯Õ²Õ¦Õ«Õ€Õ¶Õ¤Õ¯Õ¡Õ½Õ¿Õ¡Õ¶Õ€Õ¶Õ¤Õ¯Õ¡Õ¯Õ¡Õ¶ Õ•Õ¾Õ¯Õ«" + + "Õ¡Õ¶Õ¸Õ½Õ¸Ö‚Õ´ Ô²Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ ÕÕ¡Ö€Õ¡Õ®Ö„Ô»Ö€Õ¡Ö„Ô»Ö€Õ¡Õ¶Ô»Õ½Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Ô»Õ¿Õ¡Õ¬Õ«Õ¡Õ‹Õ¥Ö€Õ½Õ«ÕƒÕ¡Õ´Õ¡ÕµÕ¯Õ¡Õ€Õ¸Ö€Õ¤Õ¡Õ¶Õ¡Õ¶ÕƒÕ¡ÕºÕ¸" + + "Õ¶Õ«Õ¡Õ”Õ¥Õ¶Õ«Õ¡Õ‚Ö€Õ²Õ¦Õ½Õ¿Õ¡Õ¶Ô¿Õ¡Õ´Õ¢Õ¸Õ»Õ¡Ô¿Õ«Ö€Õ«Õ¢Õ¡Õ¿Õ«Ô¿Õ¸Õ´Õ¸Ö€ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¥Õ¶Õ© Õ”Õ«Õ©Õ½ Ö‡ Õ†Õ¥Õ¾Õ«Õ½Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½" + + "Õ¡ÕµÕ«Õ¶ Ô¿Õ¸Ö€Õ¥Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô¿Õ¸Ö€Õ¥Õ¡Õ”Õ¸Ö‚Õ¾Õ¥ÕµÕ©Ô¿Õ¡ÕµÕ´Õ¡Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ‚Õ¡Õ¦Õ¡Õ­Õ½Õ¿Õ¡Õ¶Ô¼Õ¡Õ¸Õ½Ô¼Õ«Õ¢Õ¡Õ¶Õ¡Õ¶ÕÕ¥" + + "Õ¶Õ© Ô¼Õ¸Ö‚Õ½Õ«Õ¡Ô¼Õ«Õ­Õ¿Õ¥Õ¶Õ·Õ¿Õ¥ÕµÕ¶Õ‡Ö€Õ« Ô¼Õ¡Õ¶Õ¯Õ¡Ô¼Õ«Õ¢Õ¥Ö€Õ«Õ¡Ô¼Õ¥Õ½Õ¸Õ¿Õ¸Ô¼Õ«Õ¿Õ¾Õ¡Ô¼ÕµÕ¸Ö‚Ö„Õ½Õ¥Õ´Õ¢Õ¸Ö‚Ö€Õ£Ô¼Õ¡Õ¿Õ¾Õ«Õ¡Ô¼Õ«Õ¢Õ«Õ¡" + + "Õ„Õ¡Ö€Õ¸Õ¯Õ¯Õ¸Õ„Õ¸Õ¶Õ¡Õ¯Õ¸Õ„Õ¸Õ¬Õ¤Õ¸Õ¾Õ¡Õ‰Õ¥Õ¼Õ¶Õ¸Õ£Õ¸Ö€Õ«Õ¡ÕÕ¥Õ¶ Õ„Õ¡Ö€Õ¿Õ¥Õ¶Õ„Õ¡Õ¤Õ¡Õ£Õ¡Õ½Õ¯Õ¡Ö€Õ„Õ¡Ö€Õ·Õ¡Õ¬ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ¡Õ¯Õ¥" + + "Õ¤Õ¸Õ¶Õ«Õ¡Õ„Õ¡Õ¬Õ«Õ„ÕµÕ¡Õ¶Õ´Õ¡ (Ô²Õ«Ö€Õ´Õ¡)Õ„Õ¸Õ¶Õ²Õ¸Õ¬Õ«Õ¡Õ‰Õ«Õ¶Õ¡Õ½Õ¿Õ¡Õ¶Õ« Õ„Õ¡Õ¯Õ¡Õ¸ Õ€ÕŽÕ‡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Õ„Õ¡Ö€Õ«Õ¡Õ¶ÕµÕ¡Õ¶" + + " Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ„Õ¡Ö€Õ¿Õ«Õ¶Õ«Õ¯Õ¡Õ„Õ¡Õ¾Ö€Õ«Õ¿Õ¡Õ¶Õ«Õ¡Õ„Õ¸Õ¶Õ¿Õ½Õ¥Ö€Õ¡Õ¿Õ„Õ¡Õ¬Õ©Õ¡Õ„Õ¡Õ¾Ö€Õ«Õ¯Õ«Õ¸Õ½Õ„Õ¡Õ¬Õ¤Õ«Õ¾Õ¶Õ¥Ö€Õ„Õ¡Õ¬Õ¡Õ¾Õ«Õ„Õ¥Ö„Õ½Õ«Õ¯Õ¡" + + "Õ„Õ¡Õ¬Õ¡ÕµÕ¦Õ«Õ¡Õ„Õ¸Õ¦Õ¡Õ´Õ¢Õ«Õ¯Õ†Õ¡Õ´Õ«Õ¢Õ«Õ¡Õ†Õ¸Ö€ Ô¿Õ¡Õ¬Õ¥Õ¤Õ¸Õ¶Õ«Õ¡Õ†Õ«Õ£Õ¥Ö€Õ†Õ¸Ö€Ö†Õ¸Õ¬Õ¯ Õ¯Õ²Õ¦Õ«Õ†Õ«Õ£Õ¥Ö€Õ«Õ¡Õ†Õ«Õ¯Õ¡Ö€Õ¡Õ£Õ¸Ö‚Õ¡Õ†" + + "Õ«Õ¤Õ¥Õ¼Õ¬Õ¡Õ¶Õ¤Õ¶Õ¥Ö€Õ†Õ¸Ö€Õ¾Õ¥Õ£Õ«Õ¡Õ†Õ¥ÕºÕ¡Õ¬Õ†Õ¡Õ¸Ö‚Ö€Õ¸Ö‚Õ†Õ«Õ¸Ö‚Õ¥Õ†Õ¸Ö€ Ô¶Õ¥Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Õ•Õ´Õ¡Õ¶ÕŠÕ¡Õ¶Õ¡Õ´Õ¡ÕŠÕ¥Ö€Õ¸Ö‚Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯" + + "Õ¡Õ¶ ÕŠÕ¸Õ¬Õ«Õ¶Õ¥Õ¦Õ«Õ¡ÕŠÕ¡ÕºÕ¸Ö‚Õ¡ Õ†Õ¸Ö€ Ô³Õ¾Õ«Õ¶Õ¥Õ¡Õ–Õ«Õ¬Õ«ÕºÕ«Õ¶Õ¶Õ¥Ö€ÕŠÕ¡Õ¯Õ«Õ½Õ¿Õ¡Õ¶Ô¼Õ¥Õ°Õ¡Õ½Õ¿Õ¡Õ¶ÕÕ¥Õ¶ ÕŠÕ«Õ¥Õ¼ Ö‡ Õ„Õ«Ö„Õ¥Õ¬" + + "Õ¸Õ¶ÕŠÕ«Õ¿Õ¯Õ¥Õ¼Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕŠÕ¸Ö‚Õ¥Ö€Õ¿Õ¸ ՌիկոՊաղեստինյան Õ¿Õ¡Ö€Õ¡Õ®Ö„Õ¶Õ¥Ö€ÕŠÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ«Õ¡ÕŠÕ¡Õ¬Õ¡Õ¸Ö‚ÕŠÕ¡Ö€Õ¡" + + "Õ£Õ¾Õ¡ÕµÔ¿Õ¡Õ¿Õ¡Ö€Ô±Ö€Õ¿Õ¡Ö„Õ«Õ¶ ՕվկիանիաՌեյունիոնՌումինիաÕերբիաՌուսաստանՌուանդաÕÕ¡Õ¸Ö‚Õ¤ÕµÕ¡" + + "Õ¶ Ô±Ö€Õ¡Õ¢Õ«Õ¡ÕÕ¸Õ²Õ¸Õ´Õ¸Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¥ÕµÕ·Õ¥Õ¬ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕÕ¸Ö‚Õ¤Õ¡Õ¶Õ‡Õ¾Õ¥Õ¤Õ«Õ¡ÕÕ«Õ¶Õ£Õ¡ÕºÕ¸Ö‚Ö€ÕÕ¸Ö‚Ö€Õ¢ Õ€" + + "Õ¥Õ²Õ«Õ¶Õ¥Õ« Õ¯Õ²Õ¦Õ«ÕÕ¬Õ¸Õ¾Õ¥Õ¶Õ«Õ¡ÕÕ¾Õ¡Õ¬Õ¢Õ¡Ö€Õ¤ Ö‡ Õ…Õ¡Õ¶ Õ„Õ¡ÕµÕ¥Õ¶ÕÕ¬Õ¸Õ¾Õ¡Õ¯Õ«Õ¡ÕÕ«Õ¥Ö€Õ¡ Ô¼Õ¥Õ¸Õ¶Õ¥ÕÕ¡Õ¶ Õ„Õ¡Ö€Õ«Õ¶Õ¸ÕÕ¥Õ¶" + + "Õ¥Õ£Õ¡Õ¬ÕÕ¸Õ´Õ¡Õ¬Õ«ÕÕ¸Ö‚Ö€Õ«Õ¶Õ¡Õ´Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¸Ö‚Õ¤Õ¡Õ¶ÕÕ¡Õ¶ ÕÕ¸Õ´Õ¥ Ö‡ Õ“Ö€Õ«Õ¶Õ½Õ«ÖƒÕ«ÕÕ¡Õ¬Õ¾Õ¡Õ¤Õ¸Ö€ÕÕ«Õ¶Õ¿ Õ„Õ¡Ö€Õ¿Õ¥" + + "Õ¶ÕÕ«Ö€Õ«Õ¡ÕÕ¾Õ¡Õ¦Õ«Õ¬Õ¥Õ¶Õ¤ÕÖ€Õ«Õ½Õ¿Õ¡Õ¶ Õ¤Õ¡ Ô¿Õ¸Ö‚Õ¶ÕµÕ¡Ô¹Õ¨Ö€Ö„Õ½ Ö‡ Ô¿Õ¡ÕµÕ¯Õ¸Õ½ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Õ‰Õ¡Õ¤Õ–Ö€Õ¡Õ¶Õ½Õ«Õ¡Õ¯Õ¡Õ¶ Õ€Õ¡Ö€" + + "Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÕÕ¡Ö€Õ¡Õ®Ö„Õ¶Õ¥Ö€ÕÕ¸Õ£Õ¸Ô¹Õ¡Õ«Õ¬Õ¡Õ¶Õ¤ÕÕ¡Õ»Õ«Õ¯Õ½Õ¿Õ¡Õ¶ÕÕ¸Õ¯Õ¥Õ¬Õ¡Õ¸Ö‚Ô¹Õ«Õ´Õ¸Ö€-Ô¼Õ¥Õ½Õ¿Õ¥Ô¹Õ¸Ö‚Ö€Ö„Õ´Õ¥Õ¶Õ½Õ¿Õ¡Õ¶Ô¹Õ¸Ö‚Õ¶" + + "Õ«Õ½ÕÕ¸Õ¶Õ£Õ¡Ô¹Õ¸Ö‚Ö€Ö„Õ«Õ¡ÕÖ€Õ«Õ¶Õ«Õ¤Õ¡Õ¤ Ö‡ ÕÕ¸Õ¢Õ¡Õ£Õ¸ÕÕ¸Ö‚Õ¾Õ¡Õ¬Õ¸Ö‚Ô¹Õ¡ÕµÕ¾Õ¡Õ¶Ô¹Õ¡Õ¶Õ¦Õ¡Õ¶Õ«Õ¡ÕˆÖ‚Õ¯Ö€Õ¡Õ«Õ¶Õ¡ÕˆÖ‚Õ£Õ¡Õ¶Õ¤Õ¡Ô±Ö€Õ¿" + + "Õ¡Ö„Õ«Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ (Ô±Õ„Õ†)Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡ÕµÕ« Õ„Õ«Õ¡ÖÕµÕ¡Õ¬ Õ†Õ¡Õ°Õ¡Õ¶Õ£Õ¶Õ¥Ö€ÕˆÖ‚Ö€Õ¸Ö‚Õ£Õ¾Õ¡ÕµÕˆÖ‚Õ¦Õ¢Õ¥Õ¯Õ½Õ¿Õ¡Õ¶ÕŽÕ¡Õ¿Õ«Õ¯Õ¡Õ¶" + + " Ö„Õ¡Õ²Õ¡Ö„-ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶ÕÕ¥Õ¶Õ© ÕŽÕ«Õ¶Õ½Õ¥Õ¶Õ© Ö‡ Ô³Ö€Õ¥Õ¶Õ¡Õ¤Õ«Õ¶Õ¶Õ¥Ö€ÕŽÕ¥Õ¶Õ¥Õ½Õ¸Ö‚Õ¥Õ¬Õ¡Ô²Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ ÕŽÕ«Ö€Õ»Õ«Õ¶ÕµÕ¡" + + "Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ ÕŽÕ«Ö€Õ»Õ«Õ¶ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€ÕŽÕ«Õ¥Õ¿Õ¶Õ¡Õ´ÕŽÕ¡Õ¶Õ¸Ö‚Õ¡Õ¿Õ¸Ö‚ÕˆÖ‚Õ¸Õ¬Õ«Õ½ Ö‡ Õ–Õ¸Ö‚Õ¿Õ¸Ö‚Õ¶Õ¡ÕÕ¡" + + "Õ´Õ¸Õ¡Ô¿Õ¸Õ½Õ¸Õ¾Õ¸ÔµÕ´Õ¥Õ¶Õ„Õ¡ÕµÕ¸Õ¿Õ€Õ¡Ö€Õ¡Õ¾Õ¡Ö†Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ€Õ¡Õ¶Ö€Õ¡ÕºÕ¥Õ¿Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Ô¶Õ¡Õ´Õ¢Õ«Õ¡Ô¶Õ«Õ´Õ¢Õ¡Õ¢Õ¾Õ¥Ô±Õ¶Õ°Õ¡ÕµÕ¿ Õ¿Õ¡Ö€" + + "Õ¡Õ®Õ¡Õ·Ö€Õ»Õ¡Õ¶Ô±Õ·Õ­Õ¡Ö€Õ°Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Õ•Õ¾Õ¯Õ«Õ¡Õ¶Õ«Õ¡Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡" + + "Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Ô¿Õ¥Õ¶Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶" + + " Ô±Ö†Ö€Õ«Õ¯Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Ö†Ö€Õ«Õ¯Õ¡Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡ - Ô±Õ„Õ† Ö‡ Ô¿Õ¡Õ¶Õ¡Õ¤Õ¡Ô¿Õ¡Ö€Õ«Õ¢ÕµÕ¡Õ¶" + + " Õ¯Õ²Õ¦Õ«Õ¶Õ¥Ö€Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾-Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ Ô±Õ½Õ«Õ¡Õ€Õ¡Ö€Õ¡Õ¾Õ¡ÕµÕ«Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Õ¾" + + "Õ½Õ¿Ö€Õ¡Õ¬Õ«Õ¡ Ö‡ Õ†Õ¸Ö€ Ô¶Õ¥Õ¬Õ¡Õ¶Õ¤Õ«Õ¡Õ„Õ¥Õ¬Õ¡Õ¶Õ¥Õ¦Õ«Õ¡Õ„Õ«Õ¯Ö€Õ¸Õ¶Õ¥Õ¦Õ«Õ¡ÕµÕ« Õ¿Õ¡Ö€Õ¡Õ®Õ¡Õ·Ö€Õ»Õ¡Õ¶ÕŠÕ¸Õ¬Õ«Õ¶Õ¥Õ¦Õ«Õ¡Ô±Õ½Õ«Õ¡Ô¿Õ¥Õ¶" + + "Õ¿Ö€Õ¸Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ½Õ«Õ¡Ô±Ö€Ö‡Õ´Õ¿ÕµÕ¡Õ¶ Ô±Õ½Õ«Õ¡ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Ö€Ö‡Õ¥Õ¬ÕµÕ¡Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ€ÕµÕ¸Ö‚Õ½Õ«Õ½Õ¡ÕµÕ«Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô±Ö€Ö‡Õ´Õ¿Õµ" + + "Õ¡Õ¶ ÔµÕ¾Ö€Õ¸ÕºÕ¡Ô¼Õ¡Õ¿Õ«Õ¶Õ¡Õ¯Õ¡Õ¶ Ô±Õ´Õ¥Ö€Õ«Õ¯Õ¡" + +var hyRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001d, 0x002b, 0x0067, 0x0079, 0x009d, 0x00ab, 0x00b9, + 0x00c9, 0x00d5, 0x00e9, 0x00fb, 0x0118, 0x0126, 0x0138, 0x0144, + 0x0163, 0x0173, 0x0199, 0x01a9, 0x01bb, 0x01c7, 0x01e0, 0x01f2, + 0x0200, 0x0212, 0x021c, 0x023f, 0x0262, 0x0270, 0x027e, 0x02a7, + 0x02b7, 0x02c7, 0x02d3, 0x02e6, 0x02f6, 0x0306, 0x0310, 0x031c, + 0x034a, 0x0365, 0x03ab, 0x03c8, 0x03da, 0x03f1, 0x040a, 0x0412, + 0x0422, 0x0432, 0x0444, 0x045f, 0x0472, 0x047c, 0x048f, 0x04a1, + 0x04b8, 0x04c4, 0x04ce, 0x04de, 0x04f5, 0x0503, 0x050d, 0x051d, + // Entry 40 - 7F + 0x0550, 0x055a, 0x0578, 0x0586, 0x0594, 0x05a2, 0x05bf, 0x05cd, + 0x05db, 0x05e9, 0x060e, 0x0620, 0x0628, 0x064d, 0x0661, 0x0680, + 0x068e, 0x0698, 0x06af, 0x06bd, 0x06cb, 0x06ec, 0x06f8, 0x0700, + 0x0712, 0x0726, 0x0732, 0x073e, 0x0752, 0x0779, 0x078b, 0x07e4, + 0x07f6, 0x0800, 0x0819, 0x0825, 0x083c, 0x0874, 0x0886, 0x0896, + 0x08a0, 0x08b2, 0x08d1, 0x08e3, 0x08f3, 0x0901, 0x0910, 0x0922, + 0x096b, 0x0973, 0x097b, 0x098b, 0x0997, 0x09a1, 0x09af, 0x09bf, + 0x09cd, 0x09d7, 0x09e7, 0x09f5, 0x0a05, 0x0a24, 0x0a43, 0x0a64, + // Entry 80 - BF + 0x0a81, 0x0a8f, 0x0ab0, 0x0ac2, 0x0aca, 0x0ad8, 0x0aed, 0x0b03, + 0x0b14, 0x0b22, 0x0b2e, 0x0b38, 0x0b52, 0x0b5e, 0x0b68, 0x0b76, + 0x0b82, 0x0b90, 0x0ba4, 0x0bb7, 0x0bcb, 0x0bec, 0x0bfe, 0x0c06, + 0x0c1f, 0x0c2f, 0x0c53, 0x0c8b, 0x0c9d, 0x0cb1, 0x0cc3, 0x0ccd, + 0x0cdf, 0x0cf1, 0x0cfd, 0x0d0b, 0x0d1b, 0x0d2b, 0x0d39, 0x0d52, + 0x0d5c, 0x0d73, 0x0d81, 0x0d95, 0x0dad, 0x0dbd, 0x0dc7, 0x0dd5, + 0x0ddf, 0x0df6, 0x0dfe, 0x0e0a, 0x0e14, 0x0e3b, 0x0e5b, 0x0e6f, + 0x0e7f, 0x0e8f, 0x0eb0, 0x0ecd, 0x0ee4, 0x0f0d, 0x0f23, 0x0f2f, + // Entry C0 - FF + 0x0f3f, 0x0f49, 0x0f68, 0x0f7a, 0x0f8a, 0x0f96, 0x0fa8, 0x0fb6, + 0x0fd3, 0x0ff6, 0x1017, 0x1023, 0x102f, 0x1041, 0x1063, 0x1073, + 0x1098, 0x10a8, 0x10bd, 0x10d0, 0x10de, 0x10ea, 0x10fa, 0x1119, + 0x113c, 0x114c, 0x1161, 0x116b, 0x117d, 0x119d, 0x11c6, 0x11cc, + 0x1206, 0x120e, 0x121c, 0x122e, 0x123e, 0x1253, 0x126b, 0x1277, + 0x1281, 0x128f, 0x12af, 0x12bf, 0x12cb, 0x12db, 0x12eb, 0x12f9, + 0x131f, 0x1353, 0x1365, 0x1379, 0x13a7, 0x13d8, 0x13ec, 0x1422, + 0x1456, 0x1464, 0x1476, 0x1496, 0x14a0, 0x14ac, 0x14b4, 0x14be, + // Entry 100 - 13F + 0x14f7, 0x1503, 0x1513, 0x1536, 0x1542, 0x154e, 0x1573, 0x1594, + 0x15a4, 0x15c1, 0x15e6, 0x1603, 0x1626, 0x1649, 0x1668, 0x1676, + 0x16b4, 0x16d3, 0x16ec, 0x1707, 0x172b, 0x174a, 0x1777, 0x1789, + 0x17b8, 0x17ca, 0x17d2, 0x17f1, 0x180a, 0x1816, 0x1833, 0x1856, + 0x1873, 0x1894, +} // Size: 604 bytes + +var idRegionStr string = "" + // Size: 3036 bytes + "Pulau AscensionAndorraUni Emirat ArabAfganistanAntigua dan BarbudaAnguil" + + "laAlbaniaArmeniaAngolaAntarktikaArgentinaSamoa AmerikaAustriaAustraliaAr" + + "ubaKepulauan AlandAzerbaijanBosnia dan HerzegovinaBarbadosBangladeshBelg" + + "iaBurkina FasoBulgariaBahrainBurundiBeninSaint BarthelemyBermudaBruneiBo" + + "liviaKaribia BelandaBrasilBahamaBhutanPulau BouvetBotswanaBelarusBelizeK" + + "anadaKepulauan CocosKongo - KinshasaRepublik Afrika TengahKongo - Brazza" + + "villeSwissCote d’IvoireKepulauan CookCileKamerunTiongkokKolombiaPulau Cl" + + "ippertonKosta RikaKubaTanjung VerdeCuraçaoPulau ChristmasSiprusRepublik " + + "CheskaJermanDiego GarciaJibutiDenmarkDominikaRepublik DominikaAljazairCe" + + "uta dan MelillaEkuadorEstoniaMesirSahara BaratEritreaSpanyolEtiopiaUni E" + + "ropaFinlandiaFijiKepulauan MalvinasMikronesiaKepulauan FaroePrancisGabon" + + "InggrisGrenadaGeorgiaGuyana PrancisGuernseyGhanaGibraltarGrinlandiaGambi" + + "aGuineaGuadeloupeGuinea EkuatorialYunaniGeorgia Selatan & Kep. Sandwich " + + "SelatanGuatemalaGuamGuinea-BissauGuyanaHong Kong SAR TiongkokPulau Heard" + + " dan Kepulauan McDonaldHondurasKroasiaHaitiHungariaKepulauan CanaryIndon" + + "esiaIrlandiaIsraelPulau ManIndiaWilayah Inggris di Samudra HindiaIrakIra" + + "nIslandiaItaliaJerseyJamaikaYordaniaJepangKenyaKirgistanKambojaKiribatiK" + + "omoroSaint Kitts dan NevisKorea UtaraKorea SelatanKuwaitKepulauan Cayman" + + "KazakstanLaosLebanonSaint LuciaLiechtensteinSri LankaLiberiaLesothoLitua" + + "niaLuksemburgLatviaLibiaMarokoMonakoMoldovaMontenegroSaint MartinMadagas" + + "karKepulauan MarshallMakedoniaMaliMyanmar (Burma)MongoliaMakau SAR Tiong" + + "kokKepulauan Mariana UtaraMartinikMauritaniaMontserratMaltaMauritiusMala" + + "dewaMalawiMeksikoMalaysiaMozambikNamibiaKaledonia BaruNigerKepulauan Nor" + + "folkNigeriaNikaraguaBelandaNorwegiaNepalNauruNiueSelandia BaruOmanPanama" + + "PeruPolinesia PrancisPapua NuginiFilipinaPakistanPolandiaSaint Pierre da" + + "n MiquelonKepulauan PitcairnPuerto RikoWilayah PalestinaPortugalPalauPar" + + "aguayQatarOseania LuarRéunionRumaniaSerbiaRusiaRwandaArab SaudiKepulauan" + + " SolomonSeychellesSudanSwediaSingapuraSaint HelenaSloveniaKepulauan Sval" + + "bard dan Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomaliaSurinameSu" + + "dan SelatanSao Tome dan PrincipeEl SalvadorSint MaartenSuriahSwazilandTr" + + "istan da CunhaKepulauan Turks dan CaicosCadWilayah Kutub Selatan Prancis" + + "TogoThailandTajikistanTokelauTimor LesteTurkimenistanTunisiaTongaTurkiTr" + + "inidad dan TobagoTuvaluTaiwanTanzaniaUkrainaUgandaKepulauan Terluar A.S." + + "Amerika SerikatUruguayUzbekistanVatikanSaint Vincent dan GrenadinesVenez" + + "uelaKepulauan Virgin InggrisKepulauan Virgin A.S.VietnamVanuatuKepulauan" + + " Wallis dan FutunaSamoaKosovoYamanMayotteAfrika SelatanZambiaZimbabweWil" + + "ayah Tidak DikenalDuniaAfrikaAmerika UtaraAmerika SelatanOseaniaAfrika B" + + "agian BaratAmerika TengahAfrika Bagian TimurAfrika Bagian UtaraAfrika Ba" + + "gian TengahAfrika Bagian SelatanAmerikaAmerika Bagian UtaraKepulauan Kar" + + "ibiaAsia Bagian TimurAsia Bagian SelatanAsia TenggaraEropa Bagian Selata" + + "nAustralasiaMelanesiaWilayah MikronesiaPolinesiaAsiaAsia TengahAsia Bagi" + + "an BaratEropaEropa Bagian TimurEropa Bagian UtaraEropa Bagian BaratAmeri" + + "ka Latin" + +var idRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0016, 0x0025, 0x002f, 0x0042, 0x004a, 0x0051, + 0x0058, 0x005e, 0x0068, 0x0071, 0x007e, 0x0085, 0x008e, 0x0093, + 0x00a2, 0x00ac, 0x00c2, 0x00ca, 0x00d4, 0x00da, 0x00e6, 0x00ee, + 0x00f5, 0x00fc, 0x0101, 0x0111, 0x0118, 0x011e, 0x0125, 0x0134, + 0x013a, 0x0140, 0x0146, 0x0152, 0x015a, 0x0161, 0x0167, 0x016d, + 0x017c, 0x018c, 0x01a2, 0x01b5, 0x01ba, 0x01c9, 0x01d7, 0x01db, + 0x01e2, 0x01ea, 0x01f2, 0x0202, 0x020c, 0x0210, 0x021d, 0x0225, + 0x0234, 0x023a, 0x0249, 0x024f, 0x025b, 0x0261, 0x0268, 0x0270, + // Entry 40 - 7F + 0x0281, 0x0289, 0x029a, 0x02a1, 0x02a8, 0x02ad, 0x02b9, 0x02c0, + 0x02c7, 0x02ce, 0x02d7, 0x02e0, 0x02e4, 0x02f6, 0x0300, 0x030f, + 0x0316, 0x031b, 0x0322, 0x0329, 0x0330, 0x033e, 0x0346, 0x034b, + 0x0354, 0x035e, 0x0364, 0x036a, 0x0374, 0x0385, 0x038b, 0x03b2, + 0x03bb, 0x03bf, 0x03cc, 0x03d2, 0x03e8, 0x040a, 0x0412, 0x0419, + 0x041e, 0x0426, 0x0436, 0x043f, 0x0447, 0x044d, 0x0456, 0x045b, + 0x047c, 0x0480, 0x0484, 0x048c, 0x0492, 0x0498, 0x049f, 0x04a7, + 0x04ad, 0x04b2, 0x04bb, 0x04c2, 0x04ca, 0x04d0, 0x04e5, 0x04f0, + // Entry 80 - BF + 0x04fd, 0x0503, 0x0513, 0x051c, 0x0520, 0x0527, 0x0532, 0x053f, + 0x0548, 0x054f, 0x0556, 0x055e, 0x0568, 0x056e, 0x0573, 0x0579, + 0x057f, 0x0586, 0x0590, 0x059c, 0x05a6, 0x05b8, 0x05c1, 0x05c5, + 0x05d4, 0x05dc, 0x05ee, 0x0605, 0x060d, 0x0617, 0x0621, 0x0626, + 0x062f, 0x0637, 0x063d, 0x0644, 0x064c, 0x0654, 0x065b, 0x0669, + 0x066e, 0x067f, 0x0686, 0x068f, 0x0696, 0x069e, 0x06a3, 0x06a8, + 0x06ac, 0x06b9, 0x06bd, 0x06c3, 0x06c7, 0x06d8, 0x06e4, 0x06ec, + 0x06f4, 0x06fc, 0x0715, 0x0727, 0x0732, 0x0743, 0x074b, 0x0750, + // Entry C0 - FF + 0x0758, 0x075d, 0x0769, 0x0771, 0x0778, 0x077e, 0x0783, 0x0789, + 0x0793, 0x07a4, 0x07ae, 0x07b3, 0x07b9, 0x07c2, 0x07ce, 0x07d6, + 0x07f6, 0x07fe, 0x080a, 0x0814, 0x081b, 0x0822, 0x082a, 0x0837, + 0x084c, 0x0857, 0x0863, 0x0869, 0x0872, 0x0882, 0x089c, 0x089f, + 0x08bc, 0x08c0, 0x08c8, 0x08d2, 0x08d9, 0x08e4, 0x08f1, 0x08f8, + 0x08fd, 0x0902, 0x0915, 0x091b, 0x0921, 0x0929, 0x0930, 0x0936, + 0x094c, 0x095b, 0x0962, 0x096c, 0x0973, 0x098f, 0x0998, 0x09b0, + 0x09c5, 0x09cc, 0x09d3, 0x09ee, 0x09f3, 0x09f9, 0x09fe, 0x0a05, + // Entry 100 - 13F + 0x0a13, 0x0a19, 0x0a21, 0x0a36, 0x0a3b, 0x0a41, 0x0a4e, 0x0a5d, + 0x0a64, 0x0a77, 0x0a85, 0x0a98, 0x0aab, 0x0abf, 0x0ad4, 0x0adb, + 0x0aef, 0x0b00, 0x0b11, 0x0b24, 0x0b31, 0x0b45, 0x0b50, 0x0b59, + 0x0b6b, 0x0b74, 0x0b78, 0x0b83, 0x0b94, 0x0b99, 0x0bab, 0x0bbd, + 0x0bcf, 0x0bdc, +} // Size: 604 bytes + +var isRegionStr string = "" + // Size: 3306 bytes + "Ascension-eyjaAndorraSameinuðu arabísku furstadæminAfganistanAntígva og " + + "BarbúdaAngvillaAlbaníaArmeníaAngólaSuðurskautslandiðArgentínaBandaríska " + + "SamóaAusturríkiÃstralíaArúbaÃlandseyjarAserbaídsjanBosnía og Hersegóvína" + + "BarbadosBangladessBelgíaBúrkína FasóBúlgaríaBareinBúrúndíBenínSankti Bar" + + "tólómeusareyjarBermúdaeyjarBrúneiBólivíaKaríbahafshluti HollandsBrasilía" + + "BahamaeyjarBútanBouveteyjaBotsvanaHvíta-RússlandBelísKanadaKókoseyjar (K" + + "eeling)Kongó-KinshasaMið-AfríkulýðveldiðKongó-BrazzavilleSvissFílabeinss" + + "tröndinCooks-eyjarSíleKamerúnKínaKólumbíaClipperton-eyjaKostaríkaKúbaGræ" + + "nhöfðaeyjarCuracaoJólaeyKýpurTékklandÞýskalandDiego GarciaDjíbútíDanmörk" + + "DóminíkaDóminíska lýðveldiðAlsírCeuta og MelillaEkvadorEistlandEgyptalan" + + "dVestur-SaharaErítreaSpánnEþíópíaEvrópusambandiðFinnlandFídjíeyjarFalkla" + + "ndseyjarMíkrónesíaFæreyjarFrakklandGabonBretlandGrenadaGeorgíaFranska Gv" + + "æjanaGuernseyGanaGíbraltarGrænlandGambíaGíneaGvadelúpeyjarMiðbaugs-Gíne" + + "aGrikklandSuður-Georgía og Suður-SandvíkureyjarGvatemalaGvamGínea-BissáG" + + "væjanaSjálfstjórnarsvæðið Hong KongHeard og McDonaldseyjarHondúrasKróatí" + + "aHaítíUngverjalandKanaríeyjarIndónesíaÃrlandÃsraelMönIndlandBresku Indla" + + "ndshafseyjarÃrakÃranÃslandÃtalíaJerseyJamaíkaJórdaníaJapanKeníaKirgistan" + + "KambódíaKíribatíKómoreyjarSankti Kitts og NevisNorður-KóreaSuður-KóreaKú" + + "veitCaymaneyjarKasakstanLaosLíbanonSankti LúsíaLiechtensteinSrí LankaLíb" + + "eríaLesótóLitháenLúxemborgLettlandLíbíaMarokkóMónakóMoldóvaSvartfjallala" + + "ndSt. MartinMadagaskarMarshalleyjarMakedóníaMalíMjanmar (Búrma)MongólíaS" + + "jálfstjórnarsvæðið MakaóNorður-MaríanaeyjarMartiníkMáritaníaMontserratMa" + + "ltaMáritíusMaldíveyjarMalavíMexíkóMalasíaMósambíkNamibíaNýja-KaledóníaNí" + + "gerNorfolkeyjaNígeríaNíkaragvaHollandNoregurNepalNárúNiueNýja-SjálandÓma" + + "nPanamaPerúFranska PólýnesíaPapúa Nýja-GíneaFilippseyjarPakistanPóllandS" + + "ankti Pierre og MiquelonPitcairn-eyjarPúertó RíkóHeimastjórnarsvæði Pale" + + "stínumannaPortúgalPaláParagvæKatarYtri EyjaálfaRéunionRúmeníaSerbíaRússl" + + "andRúandaSádi-ArabíaSalómonseyjarSeychelles-eyjarSúdanSvíþjóðSingapúrSan" + + "kti HelenaSlóveníaSvalbarði og Jan MayenSlóvakíaSíerra LeóneSan MarínóSe" + + "negalSómalíaSúrínamSuður-SúdanSaó Tóme og PrinsípeEl SalvadorSankti Mart" + + "inSýrlandSvasílandTristan da CunhaTurks- og CaicoseyjarTsjadFrönsku suðl" + + "ægu landsvæðinTógóTaílandTadsjikistanTókeláTímor-LesteTúrkmenistanTúnis" + + "TongaTyrklandTrínidad og TóbagóTúvalúTaívanTansaníaÚkraínaÚgandaSmáeyjar" + + " BandaríkjannaBandaríkinÚrúgvæÚsbekistanVatíkaniðSankti Vinsent og Grena" + + "díneyjarVenesúelaBresku JómfrúaeyjarBandarísku JómfrúaeyjarVíetnamVanúat" + + "úWallis- og FútúnaeyjarSamóaKósóvóJemenMayotteSuður-AfríkaSambíaSimbabv" + + "eÓþekkt svæðiHeimurinnAfríkaNorður-AmeríkaSuður-AmeríkaEyjaálfaVestur-Af" + + "ríkaMið-AmeríkaAustur-AfríkaNorður-AfríkaMið-AfríkaSuðurhluti AfríkuAmer" + + "íkaAmeríka norðan MexikóKaríbahafiðAustur-AsíaSuður-AsíaSuðaustur-AsíaS" + + "uður-EvrópaÃstralasíaMelanesíaMíkrónesíusvæðiðPólýnesíaAsíaMið-AsíaVestu" + + "r-AsíaEvrópaAustur-EvrópaNorður-EvrópaVestur-EvrópaRómanska Ameríka" + +var isRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0015, 0x0036, 0x0040, 0x0054, 0x005c, 0x0064, + 0x006c, 0x0073, 0x0086, 0x0090, 0x00a2, 0x00ad, 0x00b7, 0x00bd, + 0x00c9, 0x00d6, 0x00ee, 0x00f6, 0x0100, 0x0107, 0x0116, 0x0120, + 0x0126, 0x0130, 0x0136, 0x0151, 0x015e, 0x0165, 0x016e, 0x0187, + 0x0190, 0x019b, 0x01a1, 0x01ab, 0x01b3, 0x01c3, 0x01c9, 0x01cf, + 0x01e4, 0x01f3, 0x020b, 0x021d, 0x0222, 0x0235, 0x0240, 0x0245, + 0x024d, 0x0252, 0x025c, 0x026b, 0x0275, 0x027a, 0x028b, 0x0292, + 0x0299, 0x029f, 0x02a8, 0x02b3, 0x02bf, 0x02c9, 0x02d1, 0x02db, + // Entry 40 - 7F + 0x02f3, 0x02f9, 0x0309, 0x0310, 0x0318, 0x0322, 0x032f, 0x0337, + 0x033d, 0x0348, 0x0359, 0x0361, 0x036d, 0x037b, 0x0388, 0x0391, + 0x039a, 0x039f, 0x03a7, 0x03ae, 0x03b6, 0x03c6, 0x03ce, 0x03d2, + 0x03dc, 0x03e5, 0x03ec, 0x03f2, 0x0400, 0x0410, 0x0419, 0x0442, + 0x044b, 0x044f, 0x045c, 0x0464, 0x0486, 0x049d, 0x04a6, 0x04af, + 0x04b6, 0x04c2, 0x04ce, 0x04d9, 0x04e0, 0x04e7, 0x04eb, 0x04f2, + 0x050a, 0x050f, 0x0514, 0x051b, 0x0523, 0x0529, 0x0531, 0x053b, + 0x0540, 0x0546, 0x054f, 0x0559, 0x0563, 0x056e, 0x0583, 0x0591, + // Entry 80 - BF + 0x059e, 0x05a5, 0x05b0, 0x05b9, 0x05bd, 0x05c5, 0x05d3, 0x05e0, + 0x05ea, 0x05f3, 0x05fb, 0x0603, 0x060d, 0x0615, 0x061c, 0x0624, + 0x062c, 0x0634, 0x0643, 0x064d, 0x0657, 0x0664, 0x066f, 0x0674, + 0x0684, 0x068e, 0x06ad, 0x06c2, 0x06cb, 0x06d6, 0x06e0, 0x06e5, + 0x06ef, 0x06fb, 0x0702, 0x070a, 0x0712, 0x071c, 0x0724, 0x0735, + 0x073b, 0x0746, 0x074f, 0x0759, 0x0760, 0x0767, 0x076c, 0x0772, + 0x0776, 0x0784, 0x0789, 0x078f, 0x0794, 0x07a8, 0x07bb, 0x07c7, + 0x07cf, 0x07d7, 0x07f0, 0x07fe, 0x080d, 0x0832, 0x083b, 0x0840, + // Entry C0 - FF + 0x0848, 0x084d, 0x085b, 0x0863, 0x086c, 0x0873, 0x087c, 0x0883, + 0x0890, 0x089e, 0x08ae, 0x08b4, 0x08bf, 0x08c8, 0x08d5, 0x08df, + 0x08f6, 0x0900, 0x090e, 0x091a, 0x0921, 0x092a, 0x0933, 0x0940, + 0x0957, 0x0962, 0x096f, 0x0977, 0x0981, 0x0991, 0x09a6, 0x09ab, + 0x09ca, 0x09d0, 0x09d8, 0x09e4, 0x09ec, 0x09f8, 0x0a05, 0x0a0b, + 0x0a10, 0x0a18, 0x0a2d, 0x0a35, 0x0a3c, 0x0a45, 0x0a4e, 0x0a55, + 0x0a6d, 0x0a78, 0x0a81, 0x0a8c, 0x0a97, 0x0ab7, 0x0ac1, 0x0ad6, + 0x0af0, 0x0af8, 0x0b01, 0x0b19, 0x0b1f, 0x0b28, 0x0b2d, 0x0b34, + // Entry 100 - 13F + 0x0b42, 0x0b49, 0x0b51, 0x0b61, 0x0b6a, 0x0b71, 0x0b81, 0x0b90, + 0x0b99, 0x0ba7, 0x0bb4, 0x0bc2, 0x0bd1, 0x0bdd, 0x0bf0, 0x0bf8, + 0x0c10, 0x0c1d, 0x0c29, 0x0c35, 0x0c45, 0x0c53, 0x0c5f, 0x0c69, + 0x0c7f, 0x0c8b, 0x0c90, 0x0c9a, 0x0ca6, 0x0cad, 0x0cbb, 0x0cca, + 0x0cd8, 0x0cea, +} // Size: 604 bytes + +var itRegionStr string = "" + // Size: 3033 bytes + "Isola AscensioneAndorraEmirati Arabi UnitiAfghanistanAntigua e BarbudaAn" + + "guillaAlbaniaArmeniaAngolaAntartideArgentinaSamoa americaneAustriaAustra" + + "liaArubaIsole Ã…landAzerbaigianBosnia ed ErzegovinaBarbadosBangladeshBelg" + + "ioBurkina FasoBulgariaBahreinBurundiBeninSaint-BarthélemyBermudaBruneiBo" + + "liviaCaraibi OlandesiBrasileBahamasBhutanIsola BouvetBotswanaBielorussia" + + "BelizeCanadaIsole Cocos (Keeling)Congo - KinshasaRepubblica Centrafrican" + + "aCongo-BrazzavilleSvizzeraCosta d’AvorioIsole CookCileCamerunCinaColombi" + + "aIsola di ClippertonCosta RicaCubaCapo VerdeCuraçaoIsola ChristmasCiproR" + + "epubblica CecaGermaniaDiego GarciaGibutiDanimarcaDominicaRepubblica Domi" + + "nicanaAlgeriaCeuta e MelillaEcuadorEstoniaEgittoSahara occidentaleEritre" + + "aSpagnaEtiopiaUnione EuropeaFinlandiaFigiIsole FalklandMicronesiaIsole F" + + "ær ØerFranciaGabonRegno UnitoGrenadaGeorgiaGuyana franceseGuernseyGhana" + + "GibilterraGroenlandiaGambiaGuineaGuadalupaGuinea EquatorialeGreciaGeorgi" + + "a del Sud e isole Sandwich australiGuatemalaGuamGuinea-BissauGuyanaRAS d" + + "i Hong KongIsole Heard e McDonaldHondurasCroaziaHaitiUngheriaIsole Canar" + + "ieIndonesiaIrlandaIsraeleIsola di ManIndiaTerritorio britannico dell’Oce" + + "ano IndianoIraqIranIslandaItaliaJerseyGiamaicaGiordaniaGiapponeKenyaKirg" + + "hizistanCambogiaKiribatiComoreSaint Kitts e NevisCorea del NordCorea del" + + " SudKuwaitIsole CaymanKazakistanLaosLibanoSaint LuciaLiechtensteinSri La" + + "nkaLiberiaLesothoLituaniaLussemburgoLettoniaLibiaMaroccoMonacoMoldaviaMo" + + "ntenegroSaint MartinMadagascarIsole MarshallRepubblica di MacedoniaMaliM" + + "yanmar (Birmania)MongoliaRAS di MacaoIsole Marianne settentrionaliMartin" + + "icaMauritaniaMontserratMaltaMauritiusMaldiveMalawiMessicoMalaysiaMozambi" + + "coNamibiaNuova CaledoniaNigerIsola NorfolkNigeriaNicaraguaPaesi BassiNor" + + "vegiaNepalNauruNiueNuova ZelandaOmanPanamáPerùPolinesia francesePapua Nu" + + "ova GuineaFilippinePakistanPoloniaSaint Pierre e MiquelonIsole PitcairnP" + + "ortoricoTerritori palestinesiPortogalloPalauParaguayQatarOceania lontana" + + "RiunioneRomaniaSerbiaRussiaRuandaArabia SauditaIsole SalomoneSeychellesS" + + "udanSveziaSingaporeSant’ElenaSloveniaSvalbard e Jan MayenSlovacchiaSierr" + + "a LeoneSan MarinoSenegalSomaliaSurinameSud SudanSão Tomé e PríncipeEl Sa" + + "lvadorSint MaartenSiriaSwazilandTristan da CunhaIsole Turks e CaicosCiad" + + "Terre australi francesiTogoThailandiaTagikistanTokelauTimor LesteTurkmen" + + "istanTunisiaTongaTurchiaTrinidad e TobagoTuvaluTaiwanTanzaniaUcrainaUgan" + + "daAltre isole americane del PacificoStati UnitiUruguayUzbekistanCittà de" + + "l VaticanoSaint Vincent e GrenadinesVenezuelaIsole Vergini BritannicheIs" + + "ole Vergini AmericaneVietnamVanuatuWallis e FutunaSamoaKosovoYemenMayott" + + "eSudafricaZambiaZimbabweRegione sconosciutaMondoAfricaNord AmericaAmeric" + + "a del SudOceaniaAfrica occidentaleAmerica CentraleAfrica orientaleNordaf" + + "ricaAfrica centraleAfrica del SudAmericheAmerica del NordCaraibiAsia ori" + + "entaleAsia del SudSud-est asiaticoEuropa meridionaleAustralasiaMelanesia" + + "Regione MicronesianaPolinesiaAsiaAsia centraleAsia occidentaleEuropaEuro" + + "pa orientaleEuropa settentrionaleEuropa occidentaleAmerica Latina" + +var itRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x002a, 0x0035, 0x0046, 0x004e, 0x0055, + 0x005c, 0x0062, 0x006b, 0x0074, 0x0083, 0x008a, 0x0093, 0x0098, + 0x00a4, 0x00af, 0x00c3, 0x00cb, 0x00d5, 0x00db, 0x00e7, 0x00ef, + 0x00f6, 0x00fd, 0x0102, 0x0113, 0x011a, 0x0120, 0x0127, 0x0137, + 0x013e, 0x0145, 0x014b, 0x0157, 0x015f, 0x016a, 0x0170, 0x0176, + 0x018b, 0x019b, 0x01b3, 0x01c4, 0x01cc, 0x01dc, 0x01e6, 0x01ea, + 0x01f1, 0x01f5, 0x01fd, 0x0210, 0x021a, 0x021e, 0x0228, 0x0230, + 0x023f, 0x0244, 0x0253, 0x025b, 0x0267, 0x026d, 0x0276, 0x027e, + // Entry 40 - 7F + 0x0293, 0x029a, 0x02a9, 0x02b0, 0x02b7, 0x02bd, 0x02cf, 0x02d6, + 0x02dc, 0x02e3, 0x02f1, 0x02fa, 0x02fe, 0x030c, 0x0316, 0x0325, + 0x032c, 0x0331, 0x033c, 0x0343, 0x034a, 0x0359, 0x0361, 0x0366, + 0x0370, 0x037b, 0x0381, 0x0387, 0x0390, 0x03a2, 0x03a8, 0x03d1, + 0x03da, 0x03de, 0x03eb, 0x03f1, 0x0401, 0x0417, 0x041f, 0x0426, + 0x042b, 0x0433, 0x0440, 0x0449, 0x0450, 0x0457, 0x0463, 0x0468, + 0x0493, 0x0497, 0x049b, 0x04a2, 0x04a8, 0x04ae, 0x04b6, 0x04bf, + 0x04c7, 0x04cc, 0x04d8, 0x04e0, 0x04e8, 0x04ee, 0x0501, 0x050f, + // Entry 80 - BF + 0x051c, 0x0522, 0x052e, 0x0538, 0x053c, 0x0542, 0x054d, 0x055a, + 0x0563, 0x056a, 0x0571, 0x0579, 0x0584, 0x058c, 0x0591, 0x0598, + 0x059e, 0x05a6, 0x05b0, 0x05bc, 0x05c6, 0x05d4, 0x05eb, 0x05ef, + 0x0601, 0x0609, 0x0615, 0x0632, 0x063b, 0x0645, 0x064f, 0x0654, + 0x065d, 0x0664, 0x066a, 0x0671, 0x0679, 0x0682, 0x0689, 0x0698, + 0x069d, 0x06aa, 0x06b1, 0x06ba, 0x06c5, 0x06cd, 0x06d2, 0x06d7, + 0x06db, 0x06e8, 0x06ec, 0x06f3, 0x06f8, 0x070a, 0x071c, 0x0725, + 0x072d, 0x0734, 0x074b, 0x0759, 0x0762, 0x0777, 0x0781, 0x0786, + // Entry C0 - FF + 0x078e, 0x0793, 0x07a2, 0x07aa, 0x07b1, 0x07b7, 0x07bd, 0x07c3, + 0x07d1, 0x07df, 0x07e9, 0x07ee, 0x07f4, 0x07fd, 0x0809, 0x0811, + 0x0825, 0x082f, 0x083b, 0x0845, 0x084c, 0x0853, 0x085b, 0x0864, + 0x087a, 0x0885, 0x0891, 0x0896, 0x089f, 0x08af, 0x08c3, 0x08c7, + 0x08de, 0x08e2, 0x08ec, 0x08f6, 0x08fd, 0x0908, 0x0914, 0x091b, + 0x0920, 0x0927, 0x0938, 0x093e, 0x0944, 0x094c, 0x0953, 0x0959, + 0x097b, 0x0986, 0x098d, 0x0997, 0x09aa, 0x09c4, 0x09cd, 0x09e6, + 0x09fd, 0x0a04, 0x0a0b, 0x0a1a, 0x0a1f, 0x0a25, 0x0a2a, 0x0a31, + // Entry 100 - 13F + 0x0a3a, 0x0a40, 0x0a48, 0x0a5b, 0x0a60, 0x0a66, 0x0a72, 0x0a81, + 0x0a88, 0x0a9a, 0x0aaa, 0x0aba, 0x0ac4, 0x0ad3, 0x0ae1, 0x0ae9, + 0x0af9, 0x0b00, 0x0b0e, 0x0b1a, 0x0b2a, 0x0b3c, 0x0b47, 0x0b50, + 0x0b64, 0x0b6d, 0x0b71, 0x0b7e, 0x0b8e, 0x0b94, 0x0ba4, 0x0bb9, + 0x0bcb, 0x0bd9, +} // Size: 604 bytes + +var jaRegionStr string = "" + // Size: 4809 bytes + "アセンション島アンドラアラブ首長国連邦アフガニスタンアンティグア・ãƒãƒ¼ãƒ–ーダアンギラアルãƒãƒ‹ã‚¢ã‚¢ãƒ«ãƒ¡ãƒ‹ã‚¢ã‚¢ãƒ³ã‚´ãƒ©å—極アルゼンãƒãƒ³ç±³é ˜ã‚µãƒ¢ã‚¢ã‚ªãƒ¼ã‚¹" + + "トリアオーストラリアアルãƒã‚ªãƒ¼ãƒ©ãƒ³ãƒ‰è«¸å³¶ã‚¢ã‚¼ãƒ«ãƒã‚¤ã‚¸ãƒ£ãƒ³ãƒœã‚¹ãƒ‹ã‚¢ãƒ»ãƒ˜ãƒ«ãƒ„ェゴビナãƒãƒ«ãƒãƒ‰ã‚¹ãƒãƒ³ã‚°ãƒ©ãƒ‡ã‚·ãƒ¥ãƒ™ãƒ«ã‚®ãƒ¼ãƒ–ルキナファソブルガリアãƒãƒ¼" + + "レーンブルンジベナンサン・ãƒãƒ«ãƒ†ãƒ«ãƒŸãƒ¼å³¶ãƒãƒŸãƒ¥ãƒ¼ãƒ€ãƒ–ルãƒã‚¤ãƒœãƒªãƒ“アオランダ領カリブブラジルãƒãƒãƒžãƒ–ータンブーベ島ボツワナベラルーシベリーズカ" + + "ナダココス(キーリング)諸島コンゴ民主共和国(キンシャサ)中央アフリカ共和国コンゴ共和国(ブラザビル)スイスコートジボワールクック諸島ãƒãƒªã‚«" + + "メルーン中国コロンビアクリッパートン島コスタリカキューãƒã‚«ãƒ¼ãƒœãƒ™ãƒ«ãƒ‡ã‚­ãƒ¥ãƒ©ã‚½ãƒ¼ã‚¯ãƒªã‚¹ãƒžã‚¹å³¶ã‚­ãƒ—ロスãƒã‚§ã‚³å…±å’Œå›½ãƒ‰ã‚¤ãƒ„ディエゴガルシア島ジブãƒ" + + "デンマークドミニカ国ドミニカ共和国アルジェリアセウタ・メリリャエクアドルエストニアエジプト西サãƒãƒ©ã‚¨ãƒªãƒˆãƒªã‚¢ã‚¹ãƒšã‚¤ãƒ³ã‚¨ãƒã‚ªãƒ”ア欧州連åˆãƒ•ã‚£ãƒ³" + + "ランドフィジーフォークランド諸島ミクロãƒã‚·ã‚¢é€£é‚¦ãƒ•ã‚§ãƒ­ãƒ¼è«¸å³¶ãƒ•ãƒ©ãƒ³ã‚¹ã‚¬ãƒœãƒ³ã‚¤ã‚®ãƒªã‚¹ã‚°ãƒ¬ãƒŠãƒ€ã‚¸ãƒ§ãƒ¼ã‚¸ã‚¢ä»é ˜ã‚®ã‚¢ãƒŠã‚¬ãƒ¼ãƒ³ã‚¸ãƒ¼ã‚¬ãƒ¼ãƒŠã‚¸ãƒ–ラルタルグ" + + "リーンランドガンビアギニアグアドループ赤é“ギニアギリシャå—ジョージア島・å—サンドイッãƒè«¸å³¶ã‚°ã‚¢ãƒ†ãƒžãƒ©ã‚°ã‚¢ãƒ ã‚®ãƒ‹ã‚¢ãƒ“サウガイアナ中è¯äººæ°‘共和国" + + "香港特別行政区ãƒãƒ¼ãƒ‰å³¶ãƒ»ãƒžã‚¯ãƒ‰ãƒŠãƒ«ãƒ‰è«¸å³¶ãƒ›ãƒ³ã‚¸ãƒ¥ãƒ©ã‚¹ã‚¯ãƒ­ã‚¢ãƒã‚¢ãƒã‚¤ãƒãƒãƒ³ã‚¬ãƒªãƒ¼ã‚«ãƒŠãƒªã‚¢è«¸å³¶ã‚¤ãƒ³ãƒ‰ãƒã‚·ã‚¢ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ã‚¤ã‚¹ãƒ©ã‚¨ãƒ«ãƒžãƒ³å³¶ã‚¤ãƒ³ãƒ‰è‹±é ˜" + + "インド洋地域イラクイランアイスランドイタリアジャージージャマイカヨルダン日本ケニアキルギスカンボジアキリãƒã‚¹ã‚³ãƒ¢ãƒ­ã‚»ãƒ³ãƒˆã‚¯ãƒªã‚¹ãƒˆãƒ•ã‚¡ãƒ¼ãƒ»ãƒã‚¤" + + "ビスæœé®®æ°‘主主義人民共和国大韓民国クウェートケイマン諸島カザフスタンラオスレãƒãƒŽãƒ³ã‚»ãƒ³ãƒˆãƒ«ã‚·ã‚¢ãƒªãƒ’テンシュタインスリランカリベリアレソトリト" + + "アニアルクセンブルグラトビアリビアモロッコモナコモルドãƒãƒ¢ãƒ³ãƒ†ãƒã‚°ãƒ­ã‚µãƒ³ãƒ»ãƒžãƒ«ã‚¿ãƒ³ãƒžãƒ€ã‚¬ã‚¹ã‚«ãƒ«ãƒžãƒ¼ã‚·ãƒ£ãƒ«è«¸å³¶ãƒžã‚±ãƒ‰ãƒ‹ã‚¢ãƒžãƒªãƒŸãƒ£ãƒ³ãƒžãƒ¼ãƒ¢ãƒ³ã‚´ãƒ«" + + "中è¯äººæ°‘共和国マカオ特別行政区北マリアナ諸島マルティニークモーリタニアモントセラトマルタモーリシャスモルディブマラウイメキシコマレーシアモザ" + + "ンビークナミビアニューカレドニアニジェールノーフォーク島ナイジェリアニカラグアオランダノルウェーãƒãƒ‘ールナウルニウエ島ニュージーランドオマー" + + "ンパナマペルーä»é ˜ãƒãƒªãƒã‚·ã‚¢ãƒ‘プアニューギニアフィリピンパキスタンãƒãƒ¼ãƒ©ãƒ³ãƒ‰ã‚µãƒ³ãƒ”エール島・ミクロン島ピトケアン諸島プエルトリコパレスãƒãƒŠãƒ" + + "ルトガルパラオパラグアイカタールオセアニア周辺地域レユニオン島ルーマニアセルビアロシアルワンダサウジアラビアソロモン諸島セーシェルスーダンス" + + "ウェーデンシンガãƒãƒ¼ãƒ«ã‚»ãƒ³ãƒˆãƒ˜ãƒ¬ãƒŠã‚¹ãƒ­ãƒ™ãƒ‹ã‚¢ã‚¹ãƒãƒ¼ãƒ«ãƒãƒ«è«¸å³¶ãƒ»ãƒ¤ãƒ³ãƒžã‚¤ã‚¨ãƒ³å³¶ã‚¹ãƒ­ãƒã‚­ã‚¢ã‚·ã‚¨ãƒ©ãƒ¬ã‚ªãƒã‚µãƒ³ãƒžãƒªãƒŽã‚»ãƒã‚¬ãƒ«ã‚½ãƒžãƒªã‚¢ã‚¹ãƒªãƒŠãƒ å—スーダ" + + "ンサントメ・プリンシペエルサルãƒãƒ‰ãƒ«ã‚·ãƒ³ãƒˆãƒ»ãƒžãƒ¼ãƒ«ãƒ†ãƒ³ã‚·ãƒªã‚¢ã‚¹ãƒ¯ã‚¸ãƒ©ãƒ³ãƒ‰ãƒˆãƒªã‚¹ã‚¿ãƒ³ãƒ»ãƒ€ãƒ»ã‚¯ãƒ¼ãƒ‹ãƒ£ã‚¿ãƒ¼ã‚¯ã‚¹ãƒ»ã‚«ã‚¤ã‚³ã‚¹è«¸å³¶ãƒãƒ£ãƒ‰ä»é ˜æ¥µå—諸島トー" + + "ゴタイタジキスタントケラウæ±ãƒ†ã‚£ãƒ¢ãƒ¼ãƒ«ãƒˆãƒ«ã‚¯ãƒ¡ãƒ‹ã‚¹ã‚¿ãƒ³ãƒãƒ¥ãƒ‹ã‚¸ã‚¢ãƒˆãƒ³ã‚¬ãƒˆãƒ«ã‚³ãƒˆãƒªãƒ‹ãƒ€ãƒ¼ãƒ‰ãƒ»ãƒˆãƒã‚´ãƒ„ãƒãƒ«å°æ¹¾ã‚¿ãƒ³ã‚¶ãƒ‹ã‚¢ã‚¦ã‚¯ãƒ©ã‚¤ãƒŠã‚¦ã‚¬ãƒ³ãƒ€ç±³é ˜å¤ª" + + "平洋諸島アメリカåˆè¡†å›½ã‚¦ãƒ«ã‚°ã‚¢ã‚¤ã‚¦ã‚ºãƒ™ã‚­ã‚¹ã‚¿ãƒ³ãƒãƒã‚«ãƒ³å¸‚国セントビンセント・グレナディーン諸島ベãƒã‚ºã‚¨ãƒ©è‹±é ˜ãƒ´ã‚¡ãƒ¼ã‚¸ãƒ³è«¸å³¶ç±³é ˜ãƒ´ã‚¡ãƒ¼ã‚¸ãƒ³è«¸å³¶" + + "ベトナムãƒãƒŒã‚¢ãƒ„ウォリス・フツナサモアコソボイエメンマヨット島å—アフリカザンビアジンãƒãƒ–エä¸æ˜Žãªåœ°åŸŸä¸–界アフリカ北アメリカ大陸å—アメリカオセ" + + "アニア西アフリカ中央アメリカæ±ã‚¢ãƒ•ãƒªã‚«åŒ—アフリカ中部アフリカå—部アフリカアメリカ大陸北アメリカカリブæ±ã‚¢ã‚¸ã‚¢å—アジアæ±å—アジアå—ヨーロッパオ" + + "ーストララシアメラãƒã‚·ã‚¢ãƒŸã‚¯ãƒ­ãƒã‚·ã‚¢ãƒãƒªãƒã‚·ã‚¢ã‚¢ã‚¸ã‚¢ä¸­å¤®ã‚¢ã‚¸ã‚¢è¥¿ã‚¢ã‚¸ã‚¢ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘æ±ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘北ヨーロッパ西ヨーロッパラテンアメリカ" + +var jaRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x0021, 0x0039, 0x004e, 0x0072, 0x007e, 0x008d, + 0x009c, 0x00a8, 0x00ae, 0x00c0, 0x00cf, 0x00e1, 0x00f6, 0x00ff, + 0x0114, 0x012c, 0x0150, 0x015f, 0x0174, 0x0180, 0x0195, 0x01a4, + 0x01b3, 0x01bf, 0x01c8, 0x01e6, 0x01f5, 0x0201, 0x020d, 0x0225, + 0x0231, 0x023a, 0x0246, 0x0252, 0x025e, 0x026d, 0x0279, 0x0282, + 0x02a2, 0x02cb, 0x02e6, 0x0309, 0x0312, 0x032a, 0x0339, 0x033f, + 0x034e, 0x0354, 0x0363, 0x037b, 0x038a, 0x0396, 0x03a8, 0x03b7, + 0x03c9, 0x03d5, 0x03e7, 0x03f0, 0x040b, 0x0414, 0x0423, 0x0432, + // Entry 40 - 7F + 0x0447, 0x0459, 0x0471, 0x0480, 0x048f, 0x049b, 0x04a7, 0x04b6, + 0x04c2, 0x04d1, 0x04dd, 0x04ef, 0x04fb, 0x0516, 0x052e, 0x0540, + 0x054c, 0x0555, 0x0561, 0x056d, 0x057c, 0x058b, 0x059a, 0x05a3, + 0x05b5, 0x05ca, 0x05d6, 0x05df, 0x05f1, 0x0600, 0x060c, 0x063f, + 0x064e, 0x0657, 0x0669, 0x0675, 0x069f, 0x06c6, 0x06d8, 0x06e7, + 0x06f0, 0x06ff, 0x0711, 0x0723, 0x0735, 0x0744, 0x074d, 0x0756, + 0x076e, 0x0777, 0x0780, 0x0792, 0x079e, 0x07ad, 0x07bc, 0x07c8, + 0x07ce, 0x07d7, 0x07e3, 0x07f2, 0x07fe, 0x0807, 0x0834, 0x0855, + // Entry 80 - BF + 0x0861, 0x0870, 0x0882, 0x0894, 0x089d, 0x08a9, 0x08bb, 0x08d6, + 0x08e5, 0x08f1, 0x08fa, 0x0909, 0x091e, 0x092a, 0x0933, 0x093f, + 0x0948, 0x0954, 0x0966, 0x097b, 0x098d, 0x09a2, 0x09b1, 0x09b7, + 0x09c6, 0x09d2, 0x09ff, 0x0a14, 0x0a29, 0x0a3b, 0x0a4d, 0x0a56, + 0x0a68, 0x0a77, 0x0a83, 0x0a8f, 0x0a9e, 0x0ab0, 0x0abc, 0x0ad4, + 0x0ae3, 0x0af8, 0x0b0a, 0x0b19, 0x0b25, 0x0b34, 0x0b40, 0x0b49, + 0x0b55, 0x0b6d, 0x0b79, 0x0b82, 0x0b8b, 0x0ba0, 0x0bbb, 0x0bca, + 0x0bd9, 0x0be8, 0x0c0f, 0x0c24, 0x0c36, 0x0c45, 0x0c54, 0x0c5d, + // Entry C0 - FF + 0x0c6c, 0x0c78, 0x0c93, 0x0ca5, 0x0cb4, 0x0cc0, 0x0cc9, 0x0cd5, + 0x0cea, 0x0cfc, 0x0d0b, 0x0d17, 0x0d29, 0x0d3b, 0x0d4d, 0x0d5c, + 0x0d8c, 0x0d9b, 0x0dad, 0x0dbc, 0x0dc8, 0x0dd4, 0x0de0, 0x0def, + 0x0e0d, 0x0e22, 0x0e3d, 0x0e46, 0x0e58, 0x0e7c, 0x0e9d, 0x0ea6, + 0x0eb8, 0x0ec1, 0x0ec7, 0x0ed9, 0x0ee5, 0x0ef7, 0x0f0f, 0x0f1e, + 0x0f27, 0x0f30, 0x0f4e, 0x0f57, 0x0f5d, 0x0f6c, 0x0f7b, 0x0f87, + 0x0f9c, 0x0fb1, 0x0fc0, 0x0fd5, 0x0fe7, 0x101d, 0x102c, 0x1047, + 0x1062, 0x106e, 0x107a, 0x1092, 0x109b, 0x10a4, 0x10b0, 0x10bf, + // Entry 100 - 13F + 0x10ce, 0x10da, 0x10e9, 0x10f8, 0x10fe, 0x110a, 0x111f, 0x112e, + 0x113d, 0x114c, 0x115e, 0x116d, 0x117c, 0x118e, 0x11a0, 0x11b2, + 0x11c1, 0x11ca, 0x11d6, 0x11e2, 0x11f1, 0x1203, 0x121b, 0x122a, + 0x123c, 0x124b, 0x1254, 0x1263, 0x126f, 0x127e, 0x1290, 0x12a2, + 0x12b4, 0x12c9, +} // Size: 604 bytes + +var kaRegionStr string = "" + // Size: 9496 bytes + "áƒáƒ›áƒáƒ¦áƒšáƒ”ბის კუნძულიáƒáƒœáƒ“áƒáƒ áƒáƒáƒ áƒáƒ‘თრგáƒáƒ”რთიáƒáƒœáƒ”ბული სáƒáƒáƒ›áƒ˜áƒ áƒáƒ”ბიáƒáƒ•áƒ¦áƒáƒœáƒ”თიáƒáƒœáƒ¢áƒ˜áƒ’ურდáƒ" + + " ბáƒáƒ áƒ‘უდáƒáƒáƒœáƒ’ილიáƒáƒáƒšáƒ‘áƒáƒœáƒ”თისáƒáƒ›áƒ®áƒ”თიáƒáƒœáƒ’áƒáƒšáƒáƒáƒœáƒ¢áƒáƒ áƒ¥áƒ¢áƒ˜áƒ™áƒáƒáƒ áƒ’ენტინáƒáƒáƒ›áƒ”რიკის სáƒáƒ›áƒáƒáƒáƒ•áƒ¡" + + "ტრიáƒáƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒ˜áƒáƒáƒ áƒ£áƒ‘áƒáƒáƒšáƒáƒœáƒ“ის კუნძულებიáƒáƒ–ერბáƒáƒ˜áƒ¯áƒáƒœáƒ˜áƒ‘áƒáƒ¡áƒœáƒ˜áƒ დრჰერცეგáƒáƒ•áƒ˜áƒœáƒáƒ‘áƒáƒ " + + "ბáƒáƒ“áƒáƒ¡áƒ˜áƒ‘áƒáƒœáƒ’ლáƒáƒ“ეშიბელგიáƒáƒ‘ურკინáƒ-ფáƒáƒ¡áƒáƒ‘ულგáƒáƒ áƒ”თიბáƒáƒ°áƒ áƒ”ინიბურუნდიბენინისენ-ბáƒ" + + "რთელმიბერმუდიბრუნეიბáƒáƒšáƒ˜áƒ•áƒ˜áƒáƒ™áƒáƒ áƒ˜áƒ‘ის ნიდერლáƒáƒœáƒ“ებიბრáƒáƒ–ილიáƒáƒ‘áƒáƒ°áƒáƒ›áƒ˜áƒ¡ კუნძულებ" + + "იბჰუტáƒáƒœáƒ˜áƒ‘უვებáƒáƒ¢áƒ¡áƒ•áƒáƒœáƒáƒ‘ელáƒáƒ áƒ£áƒ¡áƒ˜áƒ‘ელიზიკáƒáƒœáƒáƒ“áƒáƒ¥áƒáƒ¥áƒáƒ¡áƒ˜áƒ¡ კუნძულებიკáƒáƒœáƒ’რ- კინშáƒ" + + "სáƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ¤áƒ áƒ˜áƒ™áƒ˜áƒ¡ რესპუბლიკáƒáƒ™áƒáƒœáƒ’რ- ბრáƒáƒ–áƒáƒ•áƒ˜áƒšáƒ˜áƒ¨áƒ•áƒ”იცáƒáƒ áƒ˜áƒáƒ™áƒáƒ¢-დივუáƒáƒ áƒ˜áƒ™áƒ£" + + "კის კუნძულებიჩილეკáƒáƒ›áƒ”რუნიჩინეთიკáƒáƒšáƒ£áƒ›áƒ‘იáƒáƒ™áƒšáƒ˜áƒžáƒ”რტáƒáƒœáƒ˜áƒ¡ კუნძულიკáƒáƒ¡áƒ¢áƒ-რიკáƒáƒ™áƒ£" + + "ბáƒáƒ™áƒáƒ‘áƒ-ვერდეკიურáƒáƒ¡áƒáƒáƒ¨áƒáƒ‘ის კუნძულიკვიპრáƒáƒ¡áƒ˜áƒ©áƒ”ხეთის რესპუბლიკáƒáƒ’ერმáƒáƒœáƒ˜áƒáƒ“იე" + + "გáƒ-გáƒáƒ áƒ¡áƒ˜áƒáƒ¯áƒ˜áƒ‘უტიდáƒáƒœáƒ˜áƒáƒ“áƒáƒ›áƒ˜áƒœáƒ˜áƒ™áƒáƒ“áƒáƒ›áƒ˜áƒœáƒ˜áƒ™áƒ”ლთრრესპუბლიკáƒáƒáƒšáƒŸáƒ˜áƒ áƒ˜áƒ¡áƒ”უტრდრმელილ" + + "áƒáƒ”კვáƒáƒ“áƒáƒ áƒ˜áƒ”სტáƒáƒœáƒ”თიეგვიპტედáƒáƒ¡áƒáƒ•áƒšáƒ”თი სáƒáƒ°áƒáƒ áƒáƒ”რიტრეáƒáƒ”სპáƒáƒœáƒ”თიეთიáƒáƒžáƒ˜áƒáƒ”ვრáƒáƒ™áƒáƒ•áƒ¨" + + "ირიფინეთიფიჯიფáƒáƒšáƒ™áƒšáƒ”ნდის კუნძულებიმიკრáƒáƒœáƒ”ზიáƒáƒ¤áƒáƒ áƒ”რის კუნძულებისáƒáƒ¤áƒ áƒáƒœáƒ’ეთი" + + "გáƒáƒ‘áƒáƒœáƒ˜áƒ“იდი ბრიტáƒáƒœáƒ”თიგრენáƒáƒ“áƒáƒ¡áƒáƒ¥áƒáƒ áƒ—ველáƒáƒ¡áƒáƒ¤áƒ áƒáƒœáƒ’ეთის გვიáƒáƒœáƒáƒ’ერნსიგáƒáƒœáƒáƒ’იბრáƒ" + + "ლტáƒáƒ áƒ˜áƒ’რენლáƒáƒœáƒ“იáƒáƒ’áƒáƒ›áƒ‘იáƒáƒ’ვინეáƒáƒ’ვáƒáƒ“ელუპáƒáƒ”კვáƒáƒ¢áƒáƒ áƒ£áƒšáƒ˜ გვინეáƒáƒ¡áƒáƒ‘ერძნეთისáƒáƒ›áƒ®áƒ áƒ”თ" + + "ი გეáƒáƒ áƒ’ირდრსáƒáƒ›áƒ®áƒ áƒ”თ სენდვიჩის კუნძულებიგვáƒáƒ¢áƒ”მáƒáƒšáƒáƒ’უáƒáƒ›áƒ˜áƒ’ვინეáƒ-ბისáƒáƒ£áƒ’áƒáƒ˜áƒ" + + "ნáƒáƒ°áƒáƒœáƒ™áƒáƒœáƒ’ის სპეციáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ£áƒšáƒ˜ რეგიáƒáƒœáƒ˜ ჩინეთიჰერდი დრმáƒáƒ™áƒ“áƒáƒœáƒáƒš" + + "დის კუნძულებიჰáƒáƒœáƒ“ურáƒáƒ¡áƒ˜áƒ®áƒáƒ áƒ•áƒáƒ¢áƒ˜áƒáƒ°áƒáƒ˜áƒ¢áƒ˜áƒ£áƒœáƒ’რეთიკáƒáƒœáƒáƒ áƒ˜áƒ¡ კუნძულებიინდáƒáƒœáƒ”ზიáƒáƒ˜áƒ " + + "ლáƒáƒœáƒ“იáƒáƒ˜áƒ¡áƒ áƒáƒ”ლიმენის კუნძულიინდáƒáƒ”თიბრიტ. ტერიტ. ინდ. áƒáƒ™áƒ”áƒáƒœáƒ”შიერáƒáƒ§áƒ˜áƒ˜áƒ áƒáƒœáƒ˜áƒ˜" + + "სლáƒáƒœáƒ“იáƒáƒ˜áƒ¢áƒáƒšáƒ˜áƒáƒ¯áƒ”რსიიáƒáƒ›áƒáƒ˜áƒ™áƒáƒ˜áƒáƒ áƒ“áƒáƒœáƒ˜áƒáƒ˜áƒáƒžáƒáƒœáƒ˜áƒáƒ™áƒ”ნიáƒáƒ§áƒ˜áƒ áƒ’იზეთიკáƒáƒ›áƒ‘áƒáƒ¯áƒáƒ™áƒ˜áƒ áƒ˜áƒ‘áƒáƒ¢áƒ˜áƒ™" + + "áƒáƒ›áƒáƒ áƒ˜áƒ¡ კუნძულებისენტ-კიტსი დრნევისიჩრდილáƒáƒ”თი კáƒáƒ áƒ”áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი კáƒáƒ áƒ”áƒáƒ¥áƒ£áƒ•áƒ”ი" + + "თიკáƒáƒ˜áƒ›áƒáƒœáƒ˜áƒ¡ კუნძულებიყáƒáƒ–áƒáƒ®áƒ”თილáƒáƒáƒ¡áƒ˜áƒšáƒ˜áƒ‘áƒáƒœáƒ˜áƒ¡áƒ”ნტ-ლუსიáƒáƒšáƒ˜áƒ®áƒ¢áƒ”ნშტáƒáƒ˜áƒœáƒ˜áƒ¨áƒ áƒ˜-ლáƒáƒœáƒ™áƒ" + + "ლიბერიáƒáƒšáƒ”სáƒáƒ—áƒáƒšáƒ˜áƒ¢áƒ•áƒáƒšáƒ£áƒ¥áƒ¡áƒ”მბურგილáƒáƒ¢áƒ•áƒ˜áƒáƒšáƒ˜áƒ‘იáƒáƒ›áƒáƒ áƒáƒ™áƒáƒ›áƒáƒœáƒáƒ™áƒáƒ›áƒáƒšáƒ“áƒáƒ•áƒáƒ›áƒáƒœáƒ¢áƒ”ნეგრáƒáƒ¡" + + "ენ-მáƒáƒ áƒ¢áƒ”ნიმáƒáƒ“áƒáƒ’áƒáƒ¡áƒ™áƒáƒ áƒ˜áƒ›áƒáƒ áƒ¨áƒáƒšáƒ˜áƒ¡ კუნძულებიმáƒáƒ™áƒ”დáƒáƒœáƒ˜áƒáƒ›áƒáƒšáƒ˜áƒ›áƒ˜áƒáƒœáƒ›áƒáƒ áƒ˜ (ბირმáƒ)მáƒ" + + "ნღáƒáƒšáƒ”თიმáƒáƒ™áƒáƒáƒ¡ სპეციáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ£áƒšáƒ˜ რეგიáƒáƒœáƒ˜ ჩინეთიჩრდილáƒáƒ”თ მáƒáƒ áƒ˜áƒáƒœ" + + "áƒáƒ¡ კუნძულებიმáƒáƒ áƒ¢áƒ˜áƒœáƒ˜áƒ™áƒáƒ›áƒáƒ•áƒ áƒ˜áƒ¢áƒáƒœáƒ˜áƒáƒ›áƒáƒœáƒ¡áƒ”რáƒáƒ¢áƒ˜áƒ›áƒáƒšáƒ¢áƒáƒ›áƒáƒ•áƒ áƒ˜áƒ™áƒ˜áƒ›áƒáƒšáƒ“ივის რესპუბლიკ" + + "áƒáƒ›áƒáƒšáƒáƒ•áƒ˜áƒ›áƒ”ქსიკáƒáƒ›áƒáƒšáƒáƒ˜áƒ–იáƒáƒ›áƒáƒ–áƒáƒ›áƒ‘იკინáƒáƒ›áƒ˜áƒ‘იáƒáƒáƒ®áƒáƒšáƒ˜ კáƒáƒšáƒ”დáƒáƒœáƒ˜áƒáƒœáƒ˜áƒ’ერინáƒáƒ áƒ¤áƒáƒšáƒ™áƒ˜áƒ¡ კ" + + "უნძულინიგერიáƒáƒœáƒ˜áƒ™áƒáƒ áƒáƒ’უáƒáƒœáƒ˜áƒ“ერლáƒáƒœáƒ“ებინáƒáƒ áƒ•áƒ”გიáƒáƒœáƒ”პáƒáƒšáƒ˜áƒœáƒáƒ£áƒ áƒ£áƒœáƒ˜áƒ£áƒ”áƒáƒ®áƒáƒšáƒ˜ ზელáƒáƒœáƒ“ი" + + "áƒáƒáƒ›áƒáƒœáƒ˜áƒžáƒáƒœáƒáƒ›áƒáƒžáƒ”რუსáƒáƒ¤áƒ áƒáƒœáƒ’ეთის პáƒáƒšáƒ˜áƒœáƒ”ზიáƒáƒžáƒáƒžáƒ£áƒ-áƒáƒ®áƒáƒšáƒ˜ გვინეáƒáƒ¤áƒ˜áƒšáƒ˜áƒžáƒ˜áƒœáƒ”ბიპáƒáƒ™áƒ˜áƒ¡" + + "ტáƒáƒœáƒ˜áƒžáƒáƒšáƒáƒœáƒ”თისენ-პიერი დრმიკელáƒáƒœáƒ˜áƒžáƒ˜áƒ¢áƒ™áƒ”რნის კუნძულებიპუერტáƒ-რიკáƒáƒžáƒáƒšáƒ”სტი" + + "ნის ტერიტáƒáƒ áƒ˜áƒ”ბიპáƒáƒ áƒ¢áƒ£áƒ’áƒáƒšáƒ˜áƒáƒžáƒáƒšáƒáƒ£áƒžáƒáƒ áƒáƒ’ვáƒáƒ˜áƒ™áƒáƒ¢áƒáƒ áƒ˜áƒ¨áƒáƒ áƒ”ული áƒáƒ™áƒ”áƒáƒœáƒ”თირეუნიáƒáƒœáƒ˜áƒ áƒ£" + + "მინეთისერბეთირუსეთირუáƒáƒœáƒ“áƒáƒ¡áƒáƒ£áƒ“ის áƒáƒ áƒáƒ‘ეთისáƒáƒšáƒáƒ›áƒáƒœáƒ˜áƒ¡ კუნძულებისეიშელის კუნ" + + "ძულებისუდáƒáƒœáƒ˜áƒ¨áƒ•áƒ”დეთისინგáƒáƒžáƒ£áƒ áƒ˜áƒ¬áƒ›áƒ˜áƒœáƒ“რელენეს კუნძულისლáƒáƒ•áƒ”ნიáƒáƒ¨áƒžáƒ˜áƒªáƒ‘ერგენი დ" + + "რიáƒáƒœ-მáƒáƒ˜áƒ”ნისლáƒáƒ•áƒáƒ™áƒ”თისიერáƒ-ლეáƒáƒœáƒ”სáƒáƒœ-მáƒáƒ áƒ˜áƒœáƒáƒ¡áƒ”ნეგáƒáƒšáƒ˜áƒ¡áƒáƒ›áƒáƒšáƒ˜áƒ¡áƒ£áƒ áƒ˜áƒœáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒ®áƒ áƒ”" + + "თი სუდáƒáƒœáƒ˜áƒ¡áƒáƒœ-ტáƒáƒ›áƒ” დრპრინსიპისáƒáƒšáƒ•áƒáƒ“áƒáƒ áƒ˜áƒ¡áƒ˜áƒœáƒ¢-მáƒáƒ áƒ¢áƒ”ნისირიáƒáƒ¡áƒ•áƒáƒ–ილენდიტრისტ" + + "áƒáƒœ-დáƒ-კუნიáƒáƒ¢áƒ”რქსისრდრკáƒáƒ˜áƒ™áƒáƒ¡áƒ˜áƒ¡ კუნძულებიჩáƒáƒ“იფრáƒáƒœáƒ’ული სáƒáƒ›áƒ®áƒ áƒ”თის ტერიტáƒ" + + "რიებიტáƒáƒ’áƒáƒ¢áƒáƒ˜áƒšáƒáƒœáƒ“იტáƒáƒ¯áƒ˜áƒ™áƒ”თიტáƒáƒ™áƒ”ლáƒáƒ£áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი ტიმáƒáƒ áƒ˜áƒ—ურქმენეთიტუნისიტáƒáƒœáƒ’" + + "áƒáƒ—ურქეთიტრინიდáƒáƒ“ი დრტáƒáƒ‘áƒáƒ’áƒáƒ¢áƒ£áƒ•áƒáƒšáƒ£áƒ¢áƒáƒ˜áƒ•áƒáƒœáƒ˜áƒ¢áƒáƒœáƒ–áƒáƒœáƒ˜áƒáƒ£áƒ™áƒ áƒáƒ˜áƒœáƒáƒ£áƒ’áƒáƒœáƒ“áƒáƒáƒ¨áƒ¨-ის შáƒ" + + "რეული კუნძულებიáƒáƒ›áƒ”რიკის შეერთებული შტáƒáƒ¢áƒ”ბიურუგვáƒáƒ˜áƒ£áƒ–ბეკეთიქáƒáƒšáƒáƒ¥áƒ˜ ვáƒáƒ¢áƒ˜áƒ™áƒ" + + "ნისენტ-ვინსენტი დრგრენáƒáƒ“ინებივენესუელáƒáƒ‘რიტáƒáƒœáƒ”თის ვირჯინის კუნძულებიáƒáƒ¨" + + "შ-ის ვირჯინის კუნძულებივიეტნáƒáƒ›áƒ˜áƒ•áƒáƒœáƒ£áƒáƒ¢áƒ£áƒ£áƒáƒšáƒ˜áƒ¡áƒ˜ დრფუტუნáƒáƒ¡áƒáƒ›áƒáƒáƒ™áƒáƒ¡áƒáƒ•áƒáƒ˜áƒ”მენ" + + "იმáƒáƒ˜áƒáƒ¢áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თ áƒáƒ¤áƒ áƒ˜áƒ™áƒ˜áƒ¡ რესპუბლიკáƒáƒ–áƒáƒ›áƒ‘იáƒáƒ–იმბáƒáƒ‘ვეუცნáƒáƒ‘ი რეგიáƒáƒœáƒ˜áƒ›áƒ¡áƒáƒ¤áƒšáƒ˜áƒáƒáƒ¤" + + "რიკáƒáƒ©áƒ áƒ“ილáƒáƒ”თი áƒáƒ›áƒ”რიკáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ›áƒ”რიკáƒáƒáƒ™áƒ”áƒáƒœáƒ”თიდáƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ " + + "ი áƒáƒ›áƒ”რიკáƒáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ©áƒ áƒ“ილáƒáƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ¨áƒ£áƒ áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ¤áƒ áƒ˜áƒ™áƒáƒáƒ›" + + "ერიკებიáƒáƒ›áƒ”რიკის ჩრდილáƒáƒ”თიკáƒáƒ áƒ˜áƒ‘ის ზღვáƒáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–იáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი áƒáƒ–იáƒáƒ¡áƒáƒ›áƒ®" + + "რეთ-áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–იáƒáƒ¡áƒáƒ›áƒ®áƒ áƒ”თი ევრáƒáƒžáƒáƒáƒ•áƒ¡áƒ¢áƒ áƒáƒšáƒáƒ–იáƒáƒ›áƒ”ლáƒáƒœáƒ”ზიáƒáƒ›áƒ˜áƒ™áƒ áƒáƒœáƒ”ზიის რეგ" + + "იáƒáƒœáƒ˜áƒžáƒáƒšáƒ˜áƒœáƒ”ზიáƒáƒáƒ–იáƒáƒªáƒ”ნტრáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ–იáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი áƒáƒ–იáƒáƒ”ვრáƒáƒžáƒáƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თი ევრáƒáƒžáƒ" + + "ჩრდილáƒáƒ”თი ევრáƒáƒžáƒáƒ“áƒáƒ¡áƒáƒ•áƒšáƒ”თი ევრáƒáƒžáƒáƒšáƒáƒ—ინური áƒáƒ›áƒ”რიკáƒ" + +var kaRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0031, 0x0043, 0x009c, 0x00b4, 0x00e6, 0x00fb, 0x0113, + 0x0128, 0x013a, 0x0158, 0x0173, 0x019b, 0x01b0, 0x01cb, 0x01da, + 0x020b, 0x022c, 0x0267, 0x0282, 0x02a0, 0x02b2, 0x02d4, 0x02ef, + 0x0307, 0x031c, 0x032e, 0x0350, 0x0365, 0x0377, 0x038c, 0x03c6, + 0x03de, 0x040f, 0x0424, 0x0430, 0x0448, 0x0460, 0x0472, 0x0484, + 0x04b5, 0x04dc, 0x052f, 0x055c, 0x0577, 0x0596, 0x05c1, 0x05cd, + 0x05e5, 0x05f7, 0x060f, 0x0646, 0x0662, 0x066e, 0x068a, 0x06a2, + 0x06c7, 0x06df, 0x0713, 0x072b, 0x074d, 0x075f, 0x076e, 0x0786, + // Entry 40 - 7F + 0x07c6, 0x07d8, 0x0801, 0x0819, 0x0831, 0x0846, 0x0874, 0x0889, + 0x08a1, 0x08b6, 0x08d7, 0x08e9, 0x08f5, 0x092f, 0x094d, 0x097e, + 0x099c, 0x09ae, 0x09d6, 0x09eb, 0x0a09, 0x0a3d, 0x0a4f, 0x0a5b, + 0x0a79, 0x0a97, 0x0aa9, 0x0abb, 0x0ad6, 0x0b07, 0x0b25, 0x0ba8, + 0x0bc3, 0x0bd2, 0x0bf4, 0x0c06, 0x0c97, 0x0ceb, 0x0d06, 0x0d1e, + 0x0d2d, 0x0d42, 0x0d73, 0x0d8e, 0x0da6, 0x0dbb, 0x0de0, 0x0df5, + 0x0e37, 0x0e46, 0x0e55, 0x0e6d, 0x0e7f, 0x0e8e, 0x0ea3, 0x0ebb, + 0x0ed0, 0x0edf, 0x0efa, 0x0f0f, 0x0f27, 0x0f58, 0x0f8e, 0x0fb9, + // Entry 80 - BF + 0x0fe1, 0x0ff6, 0x102a, 0x1042, 0x1051, 0x1063, 0x107f, 0x10a3, + 0x10bc, 0x10d1, 0x10e3, 0x10f2, 0x1113, 0x1125, 0x1134, 0x1146, + 0x1158, 0x116d, 0x118b, 0x11aa, 0x11cb, 0x11ff, 0x121a, 0x1226, + 0x1250, 0x126b, 0x12f3, 0x1340, 0x135b, 0x1379, 0x1394, 0x13a3, + 0x13b8, 0x13ef, 0x1401, 0x1416, 0x142e, 0x1449, 0x145e, 0x1489, + 0x149b, 0x14cc, 0x14e1, 0x14fc, 0x1520, 0x1538, 0x154a, 0x1559, + 0x1565, 0x158d, 0x159c, 0x15ae, 0x15ba, 0x15f7, 0x1629, 0x1647, + 0x1662, 0x167a, 0x16b3, 0x16ea, 0x1709, 0x1749, 0x1767, 0x1776, + // Entry C0 - FF + 0x178e, 0x17a0, 0x17ce, 0x17e6, 0x17fe, 0x1813, 0x1825, 0x1837, + 0x185f, 0x1896, 0x18ca, 0x18dc, 0x18f1, 0x190c, 0x1947, 0x195f, + 0x19a4, 0x19bf, 0x19de, 0x19fa, 0x1a12, 0x1a24, 0x1a3c, 0x1a67, + 0x1a9d, 0x1ab8, 0x1ada, 0x1ae9, 0x1b07, 0x1b33, 0x1b87, 0x1b93, + 0x1be9, 0x1bf5, 0x1c0d, 0x1c25, 0x1c3a, 0x1c6e, 0x1c8c, 0x1c9e, + 0x1cad, 0x1cc2, 0x1cf7, 0x1d09, 0x1d1e, 0x1d36, 0x1d4b, 0x1d5d, + 0x1d9f, 0x1dec, 0x1e01, 0x1e19, 0x1e44, 0x1e92, 0x1ead, 0x1f00, + 0x1f45, 0x1f5d, 0x1f72, 0x1f9e, 0x1fad, 0x1fbf, 0x1fd1, 0x1fe3, + // Entry 100 - 13F + 0x202d, 0x203f, 0x2057, 0x207f, 0x2094, 0x20a6, 0x20d7, 0x2105, + 0x211d, 0x214b, 0x217f, 0x21b3, 0x21e1, 0x21fd, 0x2228, 0x2243, + 0x2277, 0x2299, 0x22c7, 0x22ec, 0x2330, 0x235b, 0x237c, 0x2397, + 0x23ce, 0x23e9, 0x23f5, 0x2420, 0x2448, 0x245a, 0x248e, 0x24bc, + 0x24ea, 0x2518, +} // Size: 604 bytes + +var kkRegionStr string = "" + // Size: 6084 bytes + "Ó˜Ñкенжін аралыÐндорраБіріккен Ðраб ӘмірліктеріÐуғанÑтанÐнтигуа мен Барбу" + + "даÐнгильÑÐлбаниÑÐрмениÑÐнголаÐнтарктикаÐргентинаÐмерикандық СамоаÐвÑтри" + + "ÑÐвÑтралиÑÐрубаÐланд аралдарыӘзірбайжанБоÑÐ½Ð¸Ñ Ð¶Ó™Ð½Ðµ ГерцеговинаБарбадоÑБ" + + "англадешБельгиÑБуркина-ФаÑоБолгариÑБахрейнБурундиБенинСен-БартелемиБерм" + + "уд аралдарыБрунейБоливиÑКариб ÐидерландыÑыБразилиÑБагам аралдарыБутанБу" + + "ве аралыБотÑванаБеларуÑÑŒÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Килинг) аралдарыКонгоОрталық " + + "Ðфрика РеÑпубликаÑыКонго-Браззавиль РеÑпубликаÑыШвейцариÑКот-д’ИвуарКук" + + " аралдарыЧилиКамерунҚытайКолумбиÑКлиппертон аралыКоÑта-РикаКубаКабо-Верд" + + "еКюраÑаоКриÑÑ‚Ð¼Ð°Ñ Ð°Ñ€Ð°Ð»Ñ‹ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ… РеÑпубликаÑыГерманиÑДиего-ГарÑиÑДжибутиДа" + + "ниÑДоминикаДоминикан РеÑпубликаÑÑ‹ÐлжирСеута мен МелильÑЭквадорЭÑтониÑМы" + + "ÑÑ‹Ñ€Ð‘Ð°Ñ‚Ñ‹Ñ Ð¡Ð°Ñ…Ð°Ñ€Ð°Ð­Ñ€Ð¸Ñ‚Ñ€ÐµÑИÑпаниÑЭфиопиÑЕуропалық ОдақФинлÑндиÑФиджиФолклен" + + "д аралдарыМикронезиÑФарер аралдарыФранциÑГабонБіріккен КорольдікГренада" + + "ГрузиÑФранцуз ГвианаÑыГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделуп" + + "аЭкваторлық ГвинеÑГрециÑОңтүÑтік Ð“ÐµÐ¾Ñ€Ð³Ð¸Ñ Ð¶Ó™Ð½Ðµ ОңтүÑтік Сандвич аралдары" + + "ГватемалаГуамГвинеÑ-БиÑауГайанаҚытай Халық РеÑпубликаÑының Гонг-Конг ар" + + "найы әкімшілік ауданыХерд аралы мен Макдональд аралдарыГондураÑХорватиÑ" + + "ГаитиВенгриÑКанар аралдарыИндонезиÑИрландиÑИзраильМÑн аралыҮндіÑтанҮнді" + + " мұхитындағы Британ аймағыИракИранИÑландиÑИталиÑДжерÑиЯмайкаИорданиÑЖапо" + + "ниÑКениÑҚырғызÑтанКамбоджаКирибатиКоморСент-ÐšÐ¸Ñ‚Ñ Ð¶Ó™Ð½Ðµ ÐевиÑСолтүÑтік Ко" + + "реÑОңтүÑтік КореÑКувейтКайман аралдарыҚазақÑтанЛаоÑЛиванСент-ЛюÑиÑЛихте" + + "нштейнШри-ЛанкаЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМороккоМонакоМолд" + + "оваЧерногориÑСен-МартенМадагаÑкарМаршалл аралдарыМакедониÑМалиМьÑнма (Б" + + "ирма)МоңғолиÑҚытай Халық РеÑпубликаÑының Макао арнайы әкімшілік ауданыС" + + "олтүÑтік Мариан аралдарыМартиникаМавританиÑМонтÑерратМальтаМаврикийМаль" + + "див РеÑпубликаÑыМалавиМекÑикаМалайзиÑМозамбикÐамибиÑЖаңа КаледониÑÐигер" + + "Ðорфолк аралыÐигериÑÐикарагуаÐидерландÐорвегиÑÐепалÐауруÐиуÑЖаңа Зеланд" + + "иÑОманПанамаПеруФранцуз ПолинезиÑÑыПапуа — Жаңа ГвинеÑФилиппинПәкіÑтанП" + + "ольшаСен-Пьер және МикелонПиткÑрн аралдарыПуÑрто-РикоПалеÑтина аймақтар" + + "ыПортугалиÑПалауПарагвайКатарÐÐ»Ñ‹Ñ ÐžÐºÐµÐ°Ð½Ð¸ÑРеюньонРумыниÑСербиÑРеÑейРуанд" + + "аСауд ÐрабиÑÑыСоломон аралдарыСейшель аралдарыСуданШвециÑСингапурӘулие " + + "Елена аралыСловениÑШпицберген мен Ян-МайенСловакиÑСьерра-ЛеонеСан-Марин" + + "оСенегалСомалиСуринамОңтүÑтік СуданСан-Томе мен ПринÑипиСальвадорСинт-Ðœ" + + "артенСириÑСвазилендТриÑтан-да-КуньÑÐ¢ÐµÑ€ÐºÑ Ð¶Ó™Ð½Ðµ ÐšÐ°Ð¹ÐºÐ¾Ñ Ð°Ñ€Ð°Ð»Ð´Ð°Ñ€Ñ‹Ð§Ð°Ð´Ð¤Ñ€Ð°Ð½Ñ†Ð¸Ñ" + + "ның оңтүÑтік аймақтарыТогоТайландТәжікÑтанТокелауТимор-ЛеÑтеТүрікменÑта" + + "нТуниÑТонгаТүркиÑТринидад пен ТобагоТувалуТайваньТанзаниÑУкраинаУгандаÐ" + + "ҚШ-Ñ‚Ñ‹Ò£ Ñыртқы кіші аралдарыÐҚШУругвайӨзбекÑтанВатиканСент-ВинÑент және " + + "Гренадин аралдарыВенеÑуÑлаБритандық Виргин аралдарыÐҚШ-Ñ‚Ñ‹Ò£ Виргин аралд" + + "Ð°Ñ€Ñ‹Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¿ÐµÐ½ ФутунаСамоаКоÑовоЙеменМайоттаОңтүÑтік Ðфрик" + + "а РеÑпубликаÑыЗамбиÑЗимбабвеБелгіÑіз аймақӘлемÐфрикаСолтүÑтік ÐмерикаОң" + + "Ñ‚Ò¯Ñтік ÐмерикаОкеаниÑÐ‘Ð°Ñ‚Ñ‹Ñ ÐфрикаОрталық ÐÐ¼ÐµÑ€Ð¸ÐºÐ°Ð¨Ñ‹Ò“Ñ‹Ñ ÐфрикаСолтүÑтік Ð" + + "фрикаОрталық ÐфрикаОңтүÑтік ÐфрикаСолтүÑтік және ОңтүÑтік ÐмерикаÐмерик" + + "аның ÑолтүÑÑ‚Ñ–Ð³Ñ–ÐšÐ°Ñ€Ð¸Ð±Ð¨Ñ‹Ò“Ñ‹Ñ ÐзиÑОңтүÑтік ÐзиÑОңтүÑтік-ÑˆÑ‹Ò“Ñ‹Ñ ÐзиÑОңтүÑтік " + + "ЕуропаÐвÑтралазиÑМеланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ð°Ð¹Ð¼Ð°Ò“Ñ‹ÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸ÑÐзиÑОрталық ÐзиÑБат" + + "Ñ‹Ñ ÐзиÑÐ•ÑƒÑ€Ð¾Ð¿Ð°Ð¨Ñ‹Ò“Ñ‹Ñ Ð•ÑƒÑ€Ð¾Ð¿Ð°Ð¡Ð¾Ð»Ñ‚Ò¯Ñтік Ð•ÑƒÑ€Ð¾Ð¿Ð°Ð‘Ð°Ñ‚Ñ‹Ñ Ð•ÑƒÑ€Ð¾Ð¿Ð°Ð›Ð°Ñ‚Ñ‹Ð½ ÐмерикаÑÑ‹" + +var kkRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0029, 0x0059, 0x006b, 0x008f, 0x009d, 0x00ab, + 0x00b9, 0x00c5, 0x00d9, 0x00eb, 0x010c, 0x011a, 0x012c, 0x0136, + 0x0151, 0x0165, 0x0191, 0x01a1, 0x01b3, 0x01c1, 0x01d8, 0x01e8, + 0x01f6, 0x0204, 0x020e, 0x0227, 0x0244, 0x0250, 0x025e, 0x0281, + 0x0291, 0x02ac, 0x02b6, 0x02c9, 0x02d9, 0x02e9, 0x02f3, 0x02ff, + 0x0329, 0x0333, 0x0367, 0x039f, 0x03b1, 0x03c7, 0x03de, 0x03e6, + 0x03f4, 0x03fe, 0x040e, 0x042d, 0x0440, 0x0448, 0x045b, 0x0469, + 0x0484, 0x048c, 0x04ab, 0x04bb, 0x04d2, 0x04e0, 0x04ea, 0x04fa, + // Entry 40 - 7F + 0x0525, 0x052f, 0x054f, 0x055d, 0x056b, 0x0575, 0x058c, 0x059a, + 0x05a8, 0x05b6, 0x05d1, 0x05e3, 0x05ed, 0x060e, 0x0622, 0x063d, + 0x064b, 0x0655, 0x0678, 0x0686, 0x0692, 0x06b1, 0x06bd, 0x06c5, + 0x06d7, 0x06eb, 0x06f7, 0x0703, 0x0715, 0x0736, 0x0742, 0x079b, + 0x07ad, 0x07b5, 0x07cc, 0x07d8, 0x084b, 0x088b, 0x089b, 0x08ab, + 0x08b5, 0x08c3, 0x08de, 0x08f0, 0x0900, 0x090e, 0x091f, 0x092f, + 0x0968, 0x0970, 0x0978, 0x0988, 0x0994, 0x09a0, 0x09ac, 0x09bc, + 0x09ca, 0x09d4, 0x09e8, 0x09f8, 0x0a08, 0x0a12, 0x0a37, 0x0a54, + // Entry 80 - BF + 0x0a6f, 0x0a7b, 0x0a98, 0x0aaa, 0x0ab2, 0x0abc, 0x0acf, 0x0ae5, + 0x0af6, 0x0b04, 0x0b10, 0x0b1a, 0x0b2e, 0x0b3a, 0x0b44, 0x0b52, + 0x0b5e, 0x0b6c, 0x0b80, 0x0b93, 0x0ba7, 0x0bc6, 0x0bd8, 0x0be0, + 0x0bf9, 0x0c09, 0x0c75, 0x0ca5, 0x0cb7, 0x0ccb, 0x0cdf, 0x0ceb, + 0x0cfb, 0x0d22, 0x0d2e, 0x0d3c, 0x0d4c, 0x0d5c, 0x0d6a, 0x0d85, + 0x0d8f, 0x0da8, 0x0db6, 0x0dc8, 0x0dda, 0x0dea, 0x0df4, 0x0dfe, + 0x0e06, 0x0e1f, 0x0e27, 0x0e33, 0x0e3b, 0x0e60, 0x0e84, 0x0e94, + 0x0ea4, 0x0eb0, 0x0ed7, 0x0ef6, 0x0f0b, 0x0f30, 0x0f44, 0x0f4e, + // Entry C0 - FF + 0x0f5e, 0x0f68, 0x0f7f, 0x0f8d, 0x0f9b, 0x0fa7, 0x0fb1, 0x0fbd, + 0x0fd6, 0x0ff5, 0x1014, 0x101e, 0x102a, 0x103a, 0x105a, 0x106a, + 0x1095, 0x10a5, 0x10bc, 0x10cf, 0x10dd, 0x10e9, 0x10f7, 0x1112, + 0x1139, 0x114b, 0x1160, 0x116a, 0x117c, 0x119a, 0x11cb, 0x11d1, + 0x1209, 0x1211, 0x121f, 0x1231, 0x123f, 0x1254, 0x126c, 0x1276, + 0x1280, 0x128c, 0x12b0, 0x12bc, 0x12ca, 0x12da, 0x12e8, 0x12f4, + 0x1328, 0x132e, 0x133c, 0x134e, 0x135c, 0x139e, 0x13b0, 0x13e0, + 0x140b, 0x1419, 0x1427, 0x1447, 0x1451, 0x145d, 0x1467, 0x1475, + // Entry 100 - 13F + 0x14ab, 0x14b7, 0x14c7, 0x14e2, 0x14ea, 0x14f6, 0x1517, 0x1536, + 0x1544, 0x155b, 0x1578, 0x158f, 0x15ae, 0x15c9, 0x15e6, 0x1621, + 0x164a, 0x1654, 0x1667, 0x1680, 0x16a4, 0x16c1, 0x16d7, 0x16e9, + 0x170a, 0x171c, 0x1724, 0x173b, 0x174e, 0x175a, 0x1771, 0x1790, + 0x17a7, 0x17c4, +} // Size: 604 bytes + +var kmRegionStr string = "" + // Size: 9048 bytes + "កោះ\u200bអាសáŸáž“សិនអង់ដូរ៉ាអារ៉ាប់រួមអាហ្វហ្គានីស្ážáž¶áž“អង់ទីគáŸážš áž“áž·áž„\u200bបាប" + + "ុយដាអង់កូឡាអាល់បានីអារមáŸáž“ីអង់ហ្គោឡាអង់ážáž¶áž€áŸ‹áž‘ិកអាហ្សង់ទីនសាម៉ូអាអាមáŸážšáž·áž€áž¢" + + "ូទ្រីសអូស្ážáŸ’រាលីអារូបាកោះ\u200bអាឡាំងអាហ៊្សែរបែហ្សង់បូស្នី និងហឺហ្សីហ្" + + "គូវីណាបារបាដូសបង់ក្លាដáŸážŸáŸ’ហបែលហ្ស៉ិកប៊ូរគីណាហ្វាសូប៊ុលហ្គារីបារ៉ែនប៊ូរុ" + + "នឌីបáŸážŽáž¶áŸ†áž„សង់ បាážáŸáž¡áŸáž˜áŸ‰áž¸áž”៊ឺមុយដាប្រ៊ុយណáŸáž”ូលីវីហុល្លង់ ការ៉ាប៊ីនប្រáŸážŸáŸŠáž¸áž›áž”" + + "ាហាម៉ាប៊ូážáž¶áž“កោះ\u200bប៊ូវ៉áŸážáž”áž»ážážŸáŸ’វាណាបáŸáž¡áž¶ážšáž»ážŸáŸ’សបáŸáž›áž¸áž áŸ’សកាណាដាកោះ\u200bកូ" + + "កូសកុងហ្គោ- គីនស្ហាសាសាធារណរដ្ឋអាហ្វ្រិកកណ្ដាលកុងហ្គោ - ប្រាហ្សាវីលស្វ" + + "ីសកូដឌីវáŸážšáž€áŸ„ះ\u200bážáž¼áž€ážŸáŸŠáž¸áž›áž¸áž€áž¶áž˜áŸážšáž¼áž“ចិនកូឡុំប៊ីកោះ\u200bឃ្លីភឺážáž»áž“កូស្ážáž¶ážš" + + "ីកាគុយបាកាបវែរកូរ៉ាកៅកោះ\u200bគ្រីស្មាសស៊ីពរáŸážŸáž¶áž’ារណរដ្ឋឆáŸáž€áž¢áž¶áž›áŸ’លឺម៉ង់ឌៀ" + + "ហ្គោហ្គាស៊ីហ្ស៊ីបូទីដាណឺម៉ាកដូមីនីកាសាធារណរដ្ឋដូមីនីកែនអាល់ហ្សáŸážšáž¸áž‡ážºážáž¶ " + + "áž“áž·áž„\u200bម៉áŸáž›áž¸áž¡áž¶áž¢áŸáž€áŸ’វាឌáŸážšáž¢áŸážŸáŸ’ážáž¼áž“ីអáŸáž áŸ’ស៊ីបសាហារ៉ាážáž¶áž„លិចអáŸážšáž¸áž‘្រាអáŸážŸáŸ’ប៉ាញ" + + "អáŸážáŸ’យូពីសហភាព\u200bអឺរ៉ុបហ្វាំងឡង់ហ្វីជីកោះ\u200bហ្វក់ឡែនមីក្រូនáŸážŸáŸŠáž¸áž€áŸ„" + + "ះ\u200bហ្វារ៉ូបារាំងហ្គាបុងចក្រភព\u200bអង់គ្លáŸážŸáž áŸ’គ្រីណាដាហ្សកហ្ស៉ីហ្គៀ" + + "ណាបារាំងហ្គáŸáž“ស៊ីហ្គាណាហ្គីប្រាលážáž¶áž áŸ’គ្រោអង់ឡង់ហ្គាំប៊ីហ្គីណáŸáž áŸ’គោដឺឡុបហ្" + + "គីណáŸáž¢áŸáž€áŸ’វាទáŸážšáž€áŸ’រិចកោះ\u200bហ្សកហ្ស៊ី\u200bážáž¶áž„\u200bážáŸ’បូង áž“áž·áž„\u200bសាន់" + + "វិច\u200bážáž¶áž„\u200bážáŸ’បូងហ្គាážáŸáž˜áŸ‰áž¶áž¡áž¶áž áŸ’គាំហ្គីណáŸáž”៊ីសូហ្គីយ៉ាណាហុងកុងកោះ" + + "\u200bហឺដ áž“áž·áž„\u200bម៉ាក់ដូណាល់ហុងឌួរ៉ាស់ក្រូអាážáž áŸƒáž‘ីហុងគ្រីកោះ\u200bកាណារ" + + "ីឥណ្ឌូណáŸážŸáŸŠáž¸áž¢áŸ€ážšáž¡áž„់អ៊ីស្រាអែលអែលអុហ្វមែនឥណ្ឌាដែន\u200bមហា\u200bសមុទ្រ" + + "\u200bឥណ្ឌា ចក្រភព\u200bអង់គ្លáŸážŸáž¢áŸŠáž¸ážšáŸ‰áž¶áž€áŸ‹áž¢áŸŠáž¸ážšáŸ‰áž„់អ៊ីស្លង់អ៊ីážáž¶áž›áž¸áž‡ážºážŸáŸŠáž¸áž…ាម៉ៃ" + + "កាហ៊្សកដានីជប៉ុនកáŸáž“យ៉ាគៀរហ្គីស្ážáž„់កម្ពុជាគិរិបាទីកុំម៉ូរ៉ូសសង់ឃីហនិង" + + "\u200bណáŸážœáž¸ážŸáž€áž¼ážšáŸ‰áŸ\u200bážáž¶áž„\u200bជើងកូរ៉áŸ\u200bážáž¶áž„\u200bážáŸ’បូងគុយវ៉ែážáž€áŸ„ះ" + + "\u200bកៃម៉ង់កាហ្សាក់ស្ážáž„់់ឡាវលីបង់សង់\u200bលូសៀលិចទáŸáž“ស្ážáŸ‚នស្រីលង្កាលីបáŸážš" + + "ីយ៉ាលើសូážáž¼áž›áž¸áž‘ុយអានីលុចហ្សំបួរឡាážážœáž¸áž™áŸ‰áž¶áž›áž¸áž”៊ីម៉ារ៉ុកម៉ូណាកូសាធារណរដ្ឋម៉ុល" + + "ដាវីម៉ុងážáŸážŽáŸáž áŸ’គ្រោសង់\u200bម៉ាទីនម៉ាដាហ្កាស្ការកោះ\u200bម៉ាស់សលម៉ាសáŸážŠáž¼" + + "នាម៉ាលីមីយ៉ាន់ម៉ា (ភូមា)ម៉ុងហ្គោលីម៉ាកាវកោះ\u200bម៉ារីណា\u200bážáž¶áž„" + + "\u200bជើងម៉ាទីនីកម៉ូរីážáž¶áž“ីម៉ុង\u200bសáŸážšáŸ‰áž„់ម៉ាល់ážáž¶áž˜áŸ‰áž¼ážšáž¸áž‘ុសម៉ាល់ឌីវម៉ាឡាវី" + + "ម៉ិចសិកម៉ាឡáŸážŸáŸŠáž¸áž˜áŸ‰áž¼áž áŸ’សាំប៊ិកណាមីប៊ីញូកាឡáŸážŠáž¼áž“ៀនីហ្សáŸážšáž€áŸ„ះ\u200bណáŸážšáž áŸ’វក់នី" + + "ហ្សáŸážšáž¸áž™áŸ‰áž¶áž“ីការ៉ាហ្គáŸážšáž áž»áž›áŸ’លង់នáŸážšážœáŸ‚សនáŸáž”៉ាល់ណូរូណៀនូវែលហ្សáŸáž¡áž„់អូម៉ង់ប៉ាណា" + + "ម៉ាប៉áŸážšáž¼áž”៉ូលី\u200bណáŸážŸáŸŠáž¸\u200bបារាំងប៉ាពួញ៉ូហ្គីណáŸáž áŸ’វីលីពីនប៉ាគីស្ážáž¶áž“áž”" + + "៉ូឡូញសង់ព្យែរ áž“áž·áž„\u200bមីគីឡុងកោះ\u200bភីážážáž¶ážšáž·áž“áž–áŸážšážáž¼ážšáž¸áž€áž¼ážŠáŸ‚áž“\u200bប៉ាលáŸ" + + "ស្ទីនពáŸážšáž‘ុយហ្កាល់ផៅឡូប៉ារ៉ាហ្គាយកាážáž¶ážáŸ†áž”ន់ជាយអូសáŸáž¢áž¶áž“ីរ៉áŸáž¢áŸŠáž»áž™áŸ‰áž»áž„រូម៉ានីស" + + "៊ែបរុស្ស៊ីរវ៉ាន់ដាអារ៉ាប៊ីសាអ៊ូឌីážáž€áŸ„ះ\u200bស៊ូឡូម៉ុងសីសែលស៊ូដង់ស៊ុយអែដ" + + "សិង្ហបុរីសង់\u200báž áŸáž¡áŸážŽáž¶ážŸáŸ’លូវáŸáž“ីស្វាប៊ឺហនិង\u200bហ្យង់ម៉ាយáŸáž“ស្លូវ៉ាគី" + + "សáŸážšáŸ‰áž¶áž¡áŸáž¢áž¼áž“សាន\u200bម៉ារីណូសáŸáž“áŸáž áŸ’កាល់សូម៉ាលីសូរីណាមស៊ូដង់\u200bážáž¶áž„" + + "\u200bážáŸ’បូងសៅ\u200bážáž¼áž˜áŸ áž“áž·áž„\u200bព្រីនស៊ីប៉áŸáž¢áŸ‚លសាល់វ៉ាឌáŸážšážŸáž¸áž„\u200bម៉ាធីន" + + "ស៊ីរីស្វាហ្ស៊ីឡង់ទ្រីស្ážáž„់\u200bដា\u200bចូនហាកោះ\u200bកៃកូស និងទូកឆាដដ" + + "ែន\u200bបារាំង\u200bážáž¶áž„\u200bážáŸ’បូងážáž¼áž áŸ’គោážáŸƒážáž¶áž‡áž¸áž‚ីស្ážáž„់ážáž¼ážáŸáž¡áŸ…ទីមáŸážšáž‘ួគមáŸáž“" + + "ីស្ážáž„់ទុយនáŸážŸáŸŠáž¸ážáž»áž„ហ្គាទួរគីទ្រីនីដាហនិង\u200bážáž¼áž”ាហ្គោទូវ៉ាលូážáŸƒážœáŸ‰áž¶áž“់ážáž„់" + + "ហ្សានីអ៊ុយក្រែនអ៊ូហ្កង់ដាកោះ\u200bអៅឡាយីង\u200bអាមáŸážšáž·áž€ážŸáž ážšážŠáŸ’ឋអាមáŸážšáž·áž€áž¢áŸŠáž»" + + "យរ៉ាហ្គាយអ៊ូហ្សបáŸáž‚ីស្ážáž„់ទីក្រុងវ៉ាទីកង់សាំង\u200bវីនសáŸáž“ áž“áž·áž„\u200bឌឹ" + + "\u200bហ្គ្រីណាឌីនីសវáŸáž“áŸáž áŸ’ស៊ុយឡាកោះ\u200bវឺជិន\u200bចក្រភព\u200bអង់គ្លáŸážŸáž€" + + "ោះ\u200bវឺជីន\u200bអាមáŸážšáž·áž€ážœáŸ€ážážŽáž¶áž˜ážœáŸ‰áž¶áž“ូអាទូវ៉ាលីស áž“áž·áž„\u200bហ្វូទូណាសា" + + "\u200bម៉ូអាកូសូវ៉ូយáŸáž˜áŸ‚នម៉ាយុážáž¢áž¶áž áŸ’វ្រិកážáž¶áž„ážáŸ’បូងហ្សាំប៊ីហ្ស៊ីមបាវ៉áŸážáŸ†áž”ន់មិ" + + "នស្គាល់ពិភពលោកអាហ្វ្រិកអាមáŸážšáž·áž€\u200bážáž¶áž„\u200bជើងអាមáŸážšáž·áž€\u200bážáž¶áž„\u200b" + + "ážáŸ’បូងអូសáŸáž¢áž¶áž“ីអាហ្វ្រិក\u200bážáž¶áž„\u200bលិចអាមáŸážšáž·áž€\u200bកណ្ដាលអាហ្វ្រិកážáž¶" + + "ងកើážáž¢áž¶áž áŸ’វ្រិក\u200bážáž¶áž„\u200bជើងអាហ្វ្រិក\u200bកណ្ážáž¶áž›áž¢áž¶áž áŸ’វ្រិកភាគážáž¶áž„ážáŸ’áž”" + + "ូងអាមáŸážšáž·áž€áž¢áž¶áž˜áŸážšáž·áž€\u200bភាគ\u200bážáž¶áž„\u200bជើងការ៉ាប៊ីនអាស៊ី\u200bážáž¶áž„" + + "\u200bកើážáž¢áž¶ážŸáŸŠáž¸\u200bážáž¶áž„\u200bážáŸ’បូងអាស៊ីអាគ្នáŸáž™áŸáž¢ážºážšáŸ‰áž»áž”\u200bážáž¶áž„\u200bážáŸ’បូ" + + "ងអូស្ážáŸ’រាឡាស៊ីមáŸáž¡áž¶ážŽáŸážŸáŸŠáž¸ážáŸ†áž”ន់\u200bមីក្រូណáŸážŸáŸŠáž¸áž”៉ូលីណáŸážŸáŸŠáž¸áž¢áž¶ážŸáŸŠáž¸áž¢áž¶ážŸáŸŠáž¸" + + "\u200bកណ្ដាលអាស៊ី\u200bážáž¶áž„\u200bលិចអឺរ៉ុបអឺរ៉ុប\u200bážáž¶áž„\u200bកើážáž¢ážºážšáŸ‰áž»áž”" + + "\u200bážáž¶áž„\u200bជើងអឺរ៉ុប\u200bážáž¶áž„\u200bលិចអាមáŸážšáž·áž€\u200bឡាទីន" + +var kmRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0024, 0x003c, 0x005a, 0x008a, 0x00c4, 0x00d9, 0x00f1, + 0x0106, 0x0121, 0x013f, 0x015d, 0x0187, 0x019c, 0x01ba, 0x01cc, + 0x01ea, 0x0217, 0x025d, 0x0275, 0x0299, 0x02b4, 0x02de, 0x02fc, + 0x030e, 0x0326, 0x0338, 0x035d, 0x0375, 0x038d, 0x039f, 0x03d0, + 0x03e8, 0x03fd, 0x040f, 0x0430, 0x044b, 0x0466, 0x047b, 0x048d, + 0x04a8, 0x04da, 0x0525, 0x055e, 0x056d, 0x0585, 0x059a, 0x05a9, + 0x05be, 0x05c7, 0x05df, 0x0606, 0x0624, 0x0633, 0x0645, 0x065a, + 0x0681, 0x0693, 0x06ba, 0x06d8, 0x06ff, 0x071a, 0x0732, 0x074a, + // Entry 40 - 7F + 0x0783, 0x07a1, 0x07cf, 0x07ea, 0x0802, 0x081a, 0x0841, 0x0859, + 0x0871, 0x0889, 0x08ad, 0x08c8, 0x08da, 0x08fe, 0x091f, 0x0940, + 0x0952, 0x0967, 0x0994, 0x09b2, 0x09cd, 0x09f1, 0x0a09, 0x0a1b, + 0x0a3c, 0x0a60, 0x0a78, 0x0a8a, 0x0aa5, 0x0ad2, 0x0ae1, 0x0b66, + 0x0b87, 0x0b96, 0x0bb7, 0x0bd2, 0x0be4, 0x0c27, 0x0c45, 0x0c5a, + 0x0c66, 0x0c7b, 0x0c99, 0x0cb7, 0x0cc9, 0x0ce7, 0x0d08, 0x0d17, + 0x0d81, 0x0d99, 0x0dae, 0x0dc6, 0x0ddb, 0x0dea, 0x0dff, 0x0e1a, + 0x0e29, 0x0e3b, 0x0e5f, 0x0e74, 0x0e8c, 0x0eaa, 0x0ed8, 0x0eff, + // Entry 80 - BF + 0x0f2c, 0x0f41, 0x0f5f, 0x0f89, 0x0f92, 0x0fa1, 0x0fb9, 0x0fda, + 0x0ff5, 0x1010, 0x1022, 0x103d, 0x105b, 0x1073, 0x1082, 0x1097, + 0x10ac, 0x10e2, 0x110c, 0x112a, 0x1154, 0x1175, 0x1190, 0x119f, + 0x11cc, 0x11ea, 0x11fc, 0x1235, 0x124d, 0x1268, 0x1289, 0x129e, + 0x12b6, 0x12ce, 0x12e3, 0x12f8, 0x1310, 0x1334, 0x1349, 0x1367, + 0x137c, 0x13a0, 0x13c1, 0x13e5, 0x13fa, 0x140c, 0x1421, 0x142d, + 0x1433, 0x1457, 0x1469, 0x1481, 0x1490, 0x14c6, 0x14f0, 0x150b, + 0x1529, 0x153b, 0x1575, 0x1599, 0x15b4, 0x15de, 0x1602, 0x160e, + // Entry C0 - FF + 0x162f, 0x163b, 0x166b, 0x1689, 0x169e, 0x16aa, 0x16bf, 0x16d7, + 0x1707, 0x172e, 0x173d, 0x174f, 0x1764, 0x177f, 0x179d, 0x17b5, + 0x17fb, 0x1816, 0x1834, 0x1855, 0x1873, 0x1888, 0x189d, 0x18cd, + 0x1910, 0x1937, 0x1955, 0x1964, 0x1988, 0x19be, 0x19ec, 0x19f5, + 0x1a31, 0x1a43, 0x1a49, 0x1a6a, 0x1a7c, 0x1a8b, 0x1aaf, 0x1ac7, + 0x1adc, 0x1aeb, 0x1b2b, 0x1b40, 0x1b55, 0x1b70, 0x1b8b, 0x1ba9, + 0x1be2, 0x1c09, 0x1c2d, 0x1c5a, 0x1c87, 0x1ce5, 0x1d09, 0x1d54, + 0x1d87, 0x1d99, 0x1db4, 0x1deb, 0x1e03, 0x1e18, 0x1e27, 0x1e39, + // Entry 100 - 13F + 0x1e6c, 0x1e84, 0x1ea5, 0x1ecf, 0x1ee4, 0x1eff, 0x1f2c, 0x1f5f, + 0x1f77, 0x1faa, 0x1fd4, 0x2001, 0x2034, 0x2064, 0x20a0, 0x20b5, + 0x20ee, 0x2109, 0x2130, 0x215d, 0x2184, 0x21b4, 0x21db, 0x21f6, + 0x2229, 0x2247, 0x2256, 0x227a, 0x22a1, 0x22b3, 0x22dd, 0x2307, + 0x2331, 0x2358, +} // Size: 604 bytes + +var knRegionStr string = "" + // Size: 9388 bytes + "ಅಸೆನà³à²¶à²¨à³ ದà³à²µà³€à²ªà²…ಂಡೋರಾಸಂಯà³à²•à³à²¤ ಅರಬೠಎಮಿರೇಟಸà³à²…ಫಘಾನಿಸà³à²¥à²¾à²¨à³à²†à²‚ಟಿಗà³à²µà²¾ ಮತà³à²¤à³ ಬರà³à²¬" + + "à³à²¡à²¾à²†à²‚ಗà³à²¯à²¿à²²à³à²²à²¾à²…ಲà³à²¬à³‡à²¨à²¿à²¯à²¾à²…ರà³à²®à³‡à²¨à²¿à²¯à²¾à²…ಂಗೋಲಾಅಂಟಾರà³à²Ÿà²¿à²•à²¾à²…ರà³à²œà³†à²‚ಟಿನಾಅಮೇರಿಕನೠಸಮೋವ" + + "ಾಆಸà³à²Ÿà³à²°à²¿à²¯à²¾à²†à²¸à³à²Ÿà³à²°à³‡à²²à²¿à²¯à²…ರà³à²¬à²¾à²†à²²à³à²¯à²¾à²‚ಡೠದà³à²µà³€à²ªà²—ಳà³à²…ಜರà³à²¬à³ˆà²œà²¾à²¨à³à²¬à³‹à²¸à³à²¨à²¿à²¯à²¾ ಮತà³à²¤à³ ಹರà³" + + "ಜೆಗೋವಿನಾಬಾರà³à²¬à²¡à³‹à²¸à³à²¬à²¾à²‚ಗà³à²²à²¾à²¦à³‡à²¶à³à²¬à³†à²²à³à²œà²¿à²¯à²®à³à²¬à³à²°à³à²•à²¿à²¨à²¾ ಫಾಸೋಬಲà³à²—ೇರಿಯಾಬಹರೈನà³à²¬à³à²°à³à²‚" + + "ಡಿಬೆನಿನà³à²¸à³‡à²‚ಟೠಬಾರà³à²¥à³†à²²à³†à²®à²¿à²¬à²°à³à²®à³à²¡à²¾à²¬à³à²°à³‚ನಿಬೊಲಿವಿಯಾಕೆರೀಬಿಯನೠನೆದರà³\u200cಲà³à²¯à²¾" + + "ಂಡà³à²¸à³à²¬à³à²°à³†à²œà²¿à²²à³à²¬à²¹à²¾à²®à²¾à²¸à³à²­à³‚ತಾನà³à²¬à³‹à²µà³†à²Ÿà³ ದà³à²µà³€à²ªà²¬à³‹à²Ÿà³à²¸à³\u200cವಾನಾಬೆಲಾರಸà³à²¬à³†à²²à²¿à²œà³à²•à³†à²¨" + + "ಡಾಕೊಕೊಸೠ(ಕೀಲಿಂಗà³) ದà³à²µà³€à²ªà²—ಳà³à²•à²¾à²‚ಗೋ - ಕಿನà³à²¶à²¾à²¸à²¾à²®à²§à³à²¯ ಆಫà³à²°à²¿à²•à²¾ ಗಣರಾಜà³à²¯à²•à²¾à²‚ಗೋ -" + + " ಬà³à²°à²¾à²œà²¾à²µà²¿à²²à³à²²à³‡à²¸à³à²µà²¿à²Ÿà³à²œà²°à³à²²à³à²¯à²¾à²‚ಡà³à²•à³‹à²¤à³\u200c ದಿವಾರà³\u200dಕà³à²•à³ ದà³à²µà³€à²ªà²—ಳà³à²šà²¿à²²à²¿à²•à³à²¯" + + "ಾಮರೋನà³à²šà³€à²¨à²¾à²•à³Šà²²à²‚ಬಿಯಾಕà³à²²à²¿à²ªà³à²ªà²°à³\u200cಟಾನೠದà³à²µà³€à²ªà²—ಳà³à²•à³Šà²¸à³à²Ÿà²¾ ರಿಕಾಕà³à²¯à³‚ಬಾಕೇಪೠವರ" + + "à³à²¡à³†à²•à³à²°à²¾à²•à²¾à²µà³à²•à³à²°à²¿à²¸à³à²®à²¸à³ ದà³à²µà³€à²ªà²¸à³ˆà²ªà³à²°à²¸à³à²šà³†à²•à³ ರಿಪಬà³à²²à²¿à²•à³à²œà²°à³à²®à²¨à²¿à²¡à³ˆà²—ೋ ಗಾರà³à²¸à²¿à²¯à²œà²¿à²¬à³‹à²Ÿ" + + "ಿಡೆನà³à²®à²¾à²°à³à²•à³à²¡à³Šà²®à²¿à²¨à²¿à²•à²¾à²¡à³Šà²®à³†à²¨à²¿à²•à²¨à³ ರಿಪಬà³à²²à²¿à²•à³à²…ಲà³à²—ೇರಿಯಾಸೆಯà³à²Ÿà²¾ ಹಾಗೂ ಮೆಲಿಲà³à²²à²¾à²ˆà²•à³" + + "ವೆಡಾರà³à²Žà²¸à³à²Ÿà³‹à²¨à²¿à²¯à²¾à²ˆà²œà²¿à²ªà³à²Ÿà³à²ªà²¶à³à²šà²¿à²® ಸಹಾರಾà²à²°à²¿à²Ÿà³à²°à²¿à²¯à²¾à²¸à³à²ªà³‡à²¨à³à²‡à²¥à²¿à²¯à³‹à²ªà²¿à²¯à²¾à²¯à³à²°à³‹à²ªà²¿à²¯à²¨à³ ಯೂ" + + "ನಿಯನà³à²«à²¿à²¨à³\u200cಲà³à²¯à²¾à²‚ಡà³à²«à²¿à²œà²¿à²«à²¾à²²à³à²•à³\u200cಲà³à²¯à²¾à²‚ಡೠದà³à²µà³€à²ªà²—ಳà³à²®à³ˆà²•à³à²°à³‹à²¨à³‡à²¶à²¿à²¯à²¾à²«à²°à³‹ " + + "ದà³à²µà³€à²ªà²—ಳà³à²«à³à²°à²¾à²¨à³à²¸à³à²—ೆಬೊನà³à²¬à³à²°à²¿à²Ÿà²¨à³/ಇಂಗà³à²²à³†à²‚ಡà³à²—à³à²°à³†à²¨à³†à²¡à²¾à²œà²¾à²°à³à²œà²¿à²¯à²¾à²«à³à²°à³†à²‚ಚೠಗಯಾನಾಗà³" + + "ರà³à²¨à³\u200cಸೆಘಾನಾಗಿಬà³à²°à²¾à²²à³à²Ÿà²°à³à²—à³à²°à³€à²¨à³\u200cಲà³à²¯à²¾à²‚ಡà³à²—à³à²¯à²¾à²‚ಬಿಯಾಗಿನಿಗà³à²¡à³†à²²à³‹à²ªà³à²ˆà²•à³" + + "ವೆಟೋರಿಯಲೠಗಿನಿಗà³à²°à³€à²¸à³à²¦à²•à³à²·à²¿à²£ ಜಾರà³à²œà²¿à²¯à²¾ ಮತà³à²¤à³ ದಕà³à²·à²¿à²£ ಸà³à²¯à²¾à²‚ಡà³\u200dವಿಚೠದà³à²µ" + + "ೀಪಗಳà³à²—à³à²µà²¾à²Ÿà³†à²®à²¾à²²à²¾à²—à³à²¯à²¾à²®à³à²—ಿನಿ-ಬಿಸà³à²¸à²¾à²µà³à²—ಯಾನಾಹಾಂಗೠಕಾಂಗೠSAR ಚೈನಾಹರà³à²¡à³ ದà³à²µà³€à²ª" + + " ಮತà³à²¤à³ ಮà³à²¯à²¾à²•à³\u200dಡೊನಾಲà³à²¡à³ ದà³à²µà³€à²ªà²—ಳà³à²¹à³Šà²‚ಡà³à²°à²¾à²¸à³à²•à³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¾à²¹à³ˆà²Ÿà²¿à²¹à²‚ಗಾರಿಕà³à²¯à²¾à²¨à²°à²¿" + + " ದà³à²µà³€à²ªà²—ಳà³à²‡à²‚ಡೋನೇಶಿಯಾà²à²°à³à²²à³†à²‚ಡà³à²‡à²¸à³à²°à³‡à²²à³à²à²²à³ ಆಫೠಮà³à²¯à²¾à²¨à³à²­à²¾à²°à²¤à²¬à³à²°à²¿à²Ÿà³€à²¶à³ ಇಂಡಿಯನೠಮಹಾ" + + "ಸಾಗರ ಪà³à²°à²¦à³‡à²¶à²‡à²°à²¾à²•à³à²‡à²°à²¾à²¨à³à²à²¸à³\u200cಲà³à²¯à²¾à²‚ಡà³à²‡à²Ÿà²²à²¿à²œà³†à²°à³à²¸à²¿à²œà²®à³ˆà²•à²¾à²œà³‹à²°à³à²¡à²¾à²¨à³à²œà²ªà²¾à²¨à³à²•à³€à²¨à³à²¯" + + "ಾಕಿರà³à²—ಿಸà³à²¥à²¾à²¨à³à²•à²¾à²‚ಬೋಡಿಯಾಕಿರಿಬಾತಿಕೊಮೊರೊಸà³à²¸à³‡à²‚ಟೠಕಿಟà³à²¸à³ ಮತà³à²¤à³ ನೆವಿಸà³à²‰à²¤à³à²¤à²° ಕ" + + "ೋರಿಯಾದಕà³à²·à²¿à²£ ಕೋರಿಯಾಕà³à²µà³ˆà²¤à³à²•à³‡à²®à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²•à²à²¾à²•à²¿à²¸à³à²¥à²¾à²¨à³à²²à²¾à²µà³‹à²¸à³à²²à³†à²¬à²¨à²¾à²¨à³à²¸à³‡à²‚ಟೠಲೂ" + + "ಸಿಯಾಲಿಚೆನà³\u200cಸà³à²Ÿà³ˆà²¨à³à²¶à³à²°à³€à²²à²‚ಕಾಲಿಬೇರಿಯಾಲೆಸೊಥೋಲಿಥà³à²µà³‡à²¨à²¿à²¯à²¾à²²à²•à³à²¸à²‚ಬರà³à²—à³à²²à²¾à²Ÿà³à²µà²¿" + + "ಯಾಲಿಬಿಯಾಮೊರಾಕà³à²•à³Šà²®à³Šà²¨à²¾à²•à³Šà²®à³Šà²²à³à²¡à³‹à²µà²¾à²®à³Šà²‚ಟೆನೆಗà³à²°à³‹à²¸à³‡à²‚ಟೠಮಾರà³à²Ÿà²¿à²¨à³à²®à²¡à²—ಾಸà³à²•à²°à³à²®à²¾à²°à³à²·à²²" + + "ೠದà³à²µà³€à²ªà²—ಳà³à²®à³à²¯à²¾à²¸à²¿à²¡à³‹à²¨à²¿à²¯à²¾à²®à²¾à²²à²¿à²®à²¯à²¨à³à²®à²¾à²°à³ (ಬರà³à²®à²¾)ಮೊಂಗೋಲಿಯಾಮಖಾವೠ(SAR) ಚೈನಾಉತà³" + + "ತರ ಮರಿಯಾನಾ ದà³à²µà³€à²ªà²—ಳà³à²®à²¾à²°à³à²Ÿà²¿à²¨à²¿à²•à³à²®à²¾à²°à²¿à²Ÿà³‡à²¨à²¿à²¯à²¾à²®à²¾à²‚ಟà³\u200cಸೆರೇಟà³à²®à²¾à²²à³à²Ÿà²¾à²®à²¾à²°à²¿à²¶à²¿à²¯à²¸" + + "à³à²®à²¾à²²à³à²¡à²¿à²µà³à²¸à³à²®à²²à²¾à²µà²¿à²®à³†à²•à³à²¸à²¿à²•à³Šà²®à²²à³‡à²¶à²¿à²¯à²¾à²®à³Šà²œà²¾à²‚ಬಿಕà³à²¨à²®à³€à²¬à²¿à²¯à²¾à²¨à³à²¯à³‚ ಕà³à²¯à²¾à²²à²¿à²¡à³‹à²¨à²¿à²¯à²¾à²¨à³ˆà²œà²°à³à²¨" + + "ಾರà³à²«à³‹à²•à³ ದà³à²µà³€à²ªà²¨à³ˆà²œà³€à²°à²¿à²¯à²¾à²¨à²¿à²•à²¾à²°à²¾à²—à³à²µà²¾à²¨à³†à²¦à²°à³\u200cಲà³à²¯à²¾à²‚ಡà³à²¸à³à²¨à²¾à²°à³à²µà³‡à²¨à³‡à²ªà²¾à²³à²¨à³Œà²°à³à²¨à²¿à²¯à³" + + "ನà³à²¯à³‚ಜಿಲೆಂಡà³à²“ಮನà³à²ªà²¨à²¾à²®à²¾à²ªà³†à²°à³à²«à³à²°à³†à²‚ಚೠಪಾಲಿನೇಷà³à²¯à²¾à²ªà²ªà³à²µà²¾ ನà³à²¯à³‚ಗಿನಿಯಾಫಿಲಿಫೈನà³à²¸à³à²ªà²¾" + + "ಕಿಸà³à²¤à²¾à²¨à²ªà³‹à²²à³à²¯à²¾à²‚ಡà³à²¸à³‡à²‚ಟೠಪಿಯರೆ ಮತà³à²¤à³ ಮಿಕೆಲನà³à²ªà²¿à²Ÿà³\u200cಕೈರà³à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²ªà³à²¯à³‚" + + "ರà³à²Ÿà³‹ ರಿಕೊಪà³à²¯à²¾à²²à³‡à²¸à³à²Ÿà³‡à²¨à²¿à²¯à²¨à³ ಪà³à²°à²¦à³‡à²¶à²ªà³‹à²°à³à²šà³à²—ಲà³à²ªà²²à²¾à²µà³à²ªà²°à²¾à²—à³à²µà³‡à²–ತಾರà³à²”ಟೠಲೈಯಿಂಗೠಓ" + + "ಷಿಯಾನಿಯಾರೀಯೂನಿಯನà³à²°à³Šà²®à³‡à²¨à²¿à²¯à²¾à²¸à³†à²°à³à²¬à²¿à²¯à²¾à²°à²·à³à²¯à²¾à²°à³à²µà²¾à²‚ಡಾಸೌದಿ ಅರೇಬಿಯಾಸೊಲೊಮನೠದà³à²µà³€à²ª" + + "ಗಳà³à²¸à³€à²¶à³†à²²à³à²²à³†à²¸à³à²¸à³‚ಡಾನà³à²¸à³à²µà³€à²¡à²¨à³à²¸à²¿à²‚ಗಾಪà³à²°à³à²¸à³‡à²‚ಟೠಹೆಲೆನಾಸà³à²²à³‹à²µà³‡à²¨à²¿à²¯à²¾à²¸à³à²µà²¾à²²à³à²¬à²¾à²°à³à²¡à³ " + + "ಮತà³à²¤à³ ಜಾನೠಮೆಯನà³à²¸à³à²²à³‹à²µà³‡à²•à²¿à²¯à²¾à²¸à²¿à²¯à³†à²°à³à²°à²¾ ಲಿಯೋನà³à²¸à³à²¯à²¾à²¨à³ ಮೆರಿನೋಸೆನೆಗಲà³à²¸à³Šà²®à²¾à²²à²¿à²¯à²¾à²¸" + + "à³à²°à²¿à²¨à²¾à²®à²¦à²•à³à²·à²¿à²£ ಸೂಡಾನà³à²¸à²¾à²µà³‹ ಟೋಮೠಮತà³à²¤à³ ಪà³à²°à²¿à²¨à³à²¸à²¿à²ªà²¿à²Žà²²à³ ಸಾಲà³à²µà³‡à²¡à²¾à²°à³à²¸à²¿à²‚ಟೠಮಾರà³à²Ÿ" + + "ೆನà³à²¸à²¿à²°à²¿à²¯à²¾à²¸à³à²µà²¾à²œà²¿à²²à³à²¯à²¾à²‚ಡà³à²Ÿà³à²°à²¿à²¸à³à²¤à²¨à³ ಡಾ ಕà³à²¨à³à²¹à²¾à²Ÿà²°à³à²•à³à²¸à³ ಮತà³à²¤à³ ಕೈಕೋಸೠದà³à²µà³€à²ªà²—ಳà³" + + "ಚಾದà³à²«à³à²°à³†à²‚ಚೠದಕà³à²·à²¿à²£ ಪà³à²°à²¦à³‡à²¶à²—ಳà³à²Ÿà³‹à²—ೋಥೈಲà³à²¯à²¾à²‚ಡà³à²¤à²œà²¾à²•à²¿à²¸à³à²¥à²¾à²¨à³à²Ÿà³Šà²•à³†à²²à²¾à²µà³à²ªà³‚ರà³à²µ ತಿಮೋ" + + "ರà³à²¤à³à²°à³à²•à³à²®à³‡à²¨à²¿à²¸à³à²¥à²¾à²¨à³à²Ÿà³à²¨à²¿à²¶à²¿à²¯à²¾à²Ÿà³Šà²‚ಗಟರà³à²•à²¿à²Ÿà³à²°à²¿à²¨à²¿à²¡à²¾à²¡à³ ಮತà³à²¤à³ ಟೊಬಾಗೊಟà³à²µà²¾à²²à³à²¥à³ˆà²µà²¾à²¨à³" + + "ತಾಂಜೇನಿಯಾಉಕà³à²°à³ˆà²¨à³à²‰à²—ಾಂಡಾಯà³à²Žà²¸à³\u200c. ಔಟà³\u200cಲೇಯಿಂಗೠದà³à²µà³€à²ªà²—ಳà³à²…ಮೇರಿಕಾ ಸಂ" + + "ಯà³à²•à³à²¤ ಸಂಸà³à²¥à²¾à²¨à²‰à²°à³à²—à³à²µà³‡à²‰à²œà³à²¬à³‡à²•à²¿à²¸à³à²¥à²¾à²¨à³à²µà³à²¯à²¾à²Ÿà²¿à²•à²¨à³à²¸à³‡à²‚ಟà³. ವಿನà³à²¸à³†à²‚ಟೠಮತà³à²¤à³ ಗà³à²°à³†à²¨" + + "ೆಡೈನà³à²¸à³à²µà³†à²¨à³†à²œà³à²µà³†à²²à²¾à²¬à³à²°à²¿à²Ÿà²¿à²·à³ ವರà³à²œà²¿à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²¯à³.ಎಸà³. ವರà³à²œà²¿à²¨à³ ದà³à²µà³€à²ªà²—ಳà³à²µà²¿à²¯à³‡" + + "ಟà³à²¨à²¾à²®à³à²µà²¨à³Œà²Ÿà³à²µà²¾à²²à²¿à²¸à³ ಮತà³à²¤à³ ಫà³à²Ÿà³à²¨à²¾à²¸à²®à³‹à²µà²¾à²•à³Šà²¸à³Šà²µà³Šà²¯à³†à²®à²¨à³à²®à²¯à³Šà²Ÿà³à²Ÿà³†à²¦à²•à³à²·à²¿à²£ ಆಫà³à²°à²¿à²•à²¾à²à²¾à²‚" + + "ಬಿಯಾಜಿಂಬಾಬà³à²µà³†à²…ಜà³à²žà²¾à²¤ ಪà³à²°à²¦à³‡à²¶à²ªà³à²°à²ªà²‚ಚಆಫà³à²°à²¿à²•à²¾à²‰à²¤à³à²¤à²° ಅಮೇರಿಕಾದಕà³à²·à²¿à²£ ಅಮೇರಿಕಾಓಶಿಯ" + + "ೇನಿಯಾಪಶà³à²šà²¿à²® ಆಫà³à²°à²¿à²•à²¾à²®à²§à³à²¯ ಅಮೇರಿಕಾಪೂರà³à²µ ಆಫà³à²°à²¿à²•à²¾à²‰à²¤à³à²¤à²° ಆಫà³à²°à²¿à²•à²¾à²®à²§à³à²¯ ಆಫà³à²°à²¿à²•à²¾à²†" + + "ಫà³à²°à²¿à²•à²¾à²¦ ದಕà³à²·à²¿à²£ ಭಾಗಅಮೆರಿಕಾಸà³à²…ಮೇರಿಕಾದ ಉತà³à²¤à²° ಭಾಗಕೆರೀಬಿಯನà³à²ªà³‚ರà³à²µ à²à²·à³à²¯à²¾à²¦à²•à³à²·à²¿" + + "ಣ à²à²·à³à²¯à²¾à²†à²—à³à²¨à³‡à²¯ à²à²·à³à²¯à²¾à²¦à²•à³à²·à²¿à²£ ಯೂರೋಪà³à²†à²¸à³à²Ÿà³à²°à³‡à²²à³‡à²·à³à²¯à²¾à²®à³†à²²à²¨à³‡à²·à²¿à²¯à²¾à²®à³ˆà²•à³à²°à³‹à²¨à³‡à²¶à²¿à²¯à²¨à³ ಪà³" + + "ರದೇಶಪಾಲಿನೇಷà³à²¯à²¾à²à²·à³à²¯à²¾à²®à²§à³à²¯ à²à²·à³à²¯à²¾à²ªà²¶à³à²šà²¿à²® à²à²·à³à²¯à²¾à²¯à³‚ರೋಪà³à²ªà³‚ರà³à²µ ಯೂರೋಪà³à²‰à²¤à³à²¤à²° ಯೂರೋಪ" + + "à³à²ªà²¶à³à²šà²¿à²® ಯೂರೋಪà³à²²à³à²¯à²¾à²Ÿà²¿à²¨à³ ಅಮೇರಿಕಾ" + +var knRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0028, 0x003a, 0x0075, 0x0099, 0x00d7, 0x00f5, 0x0110, + 0x012b, 0x013d, 0x015b, 0x0179, 0x01a1, 0x01bc, 0x01da, 0x01e9, + 0x021a, 0x0238, 0x0282, 0x029d, 0x02be, 0x02d9, 0x02fe, 0x0319, + 0x032b, 0x0340, 0x0352, 0x0380, 0x0395, 0x03a7, 0x03bf, 0x0408, + 0x0420, 0x0435, 0x0447, 0x0469, 0x048a, 0x049f, 0x04b1, 0x04c0, + 0x0503, 0x052d, 0x0565, 0x059b, 0x05cb, 0x05f0, 0x0615, 0x0621, + 0x063c, 0x0648, 0x0660, 0x06a3, 0x06c2, 0x06d4, 0x06f0, 0x0708, + 0x0733, 0x0748, 0x0770, 0x0782, 0x07a4, 0x07b6, 0x07d4, 0x07ec, + // Entry 40 - 7F + 0x0823, 0x083e, 0x0876, 0x0891, 0x08ac, 0x08c1, 0x08e3, 0x08fe, + 0x0910, 0x092b, 0x095c, 0x0980, 0x098c, 0x09cf, 0x09f3, 0x0a15, + 0x0a2d, 0x0a3f, 0x0a70, 0x0a88, 0x0aa0, 0x0ac5, 0x0ae0, 0x0aec, + 0x0b0d, 0x0b37, 0x0b52, 0x0b5e, 0x0b76, 0x0ba7, 0x0bb9, 0x0c45, + 0x0c63, 0x0c75, 0x0c9a, 0x0ca9, 0x0cd9, 0x0d4f, 0x0d6a, 0x0d88, + 0x0d94, 0x0da6, 0x0dd4, 0x0df2, 0x0e0a, 0x0e1f, 0x0e45, 0x0e51, + 0x0ea8, 0x0eb7, 0x0ec6, 0x0ee7, 0x0ef3, 0x0f05, 0x0f14, 0x0f2c, + 0x0f3b, 0x0f4d, 0x0f71, 0x0f8c, 0x0fa4, 0x0fbc, 0x1001, 0x1023, + // Entry 80 - BF + 0x1048, 0x105a, 0x1082, 0x10a3, 0x10b5, 0x10ca, 0x10ec, 0x1113, + 0x112b, 0x1143, 0x1155, 0x1173, 0x1191, 0x11a9, 0x11bb, 0x11d3, + 0x11e5, 0x11fd, 0x121e, 0x1246, 0x1261, 0x128f, 0x12b3, 0x12bf, + 0x12e9, 0x1304, 0x1326, 0x1364, 0x1382, 0x13a0, 0x13c4, 0x13d6, + 0x13f1, 0x140f, 0x141e, 0x1436, 0x144b, 0x1466, 0x147b, 0x14ac, + 0x14bb, 0x14e3, 0x14fb, 0x1519, 0x1546, 0x1558, 0x1567, 0x1573, + 0x157f, 0x15a0, 0x15ac, 0x15bb, 0x15c7, 0x15fb, 0x1629, 0x1647, + 0x1662, 0x167d, 0x16c2, 0x16fc, 0x1721, 0x1761, 0x177c, 0x178b, + // Entry C0 - FF + 0x17a0, 0x17af, 0x17ea, 0x1805, 0x181d, 0x1835, 0x1844, 0x1859, + 0x187b, 0x18a9, 0x18c7, 0x18d9, 0x18ee, 0x1909, 0x192b, 0x1949, + 0x199a, 0x19b8, 0x19e3, 0x1a08, 0x1a1d, 0x1a35, 0x1a4a, 0x1a6f, + 0x1ab7, 0x1adf, 0x1b07, 0x1b19, 0x1b40, 0x1b75, 0x1bc6, 0x1bd2, + 0x1c16, 0x1c22, 0x1c3d, 0x1c5e, 0x1c76, 0x1c98, 0x1cc8, 0x1ce0, + 0x1cec, 0x1cfb, 0x1d3c, 0x1d4e, 0x1d60, 0x1d7b, 0x1d90, 0x1da2, + 0x1df0, 0x1e31, 0x1e46, 0x1e6d, 0x1e88, 0x1ee9, 0x1f07, 0x1f4e, + 0x1f8e, 0x1fac, 0x1fbb, 0x1ff0, 0x1fff, 0x2011, 0x2020, 0x2035, + // Entry 100 - 13F + 0x205d, 0x2072, 0x208d, 0x20b2, 0x20c4, 0x20d9, 0x20fe, 0x2126, + 0x2141, 0x2169, 0x218b, 0x21b0, 0x21d5, 0x21f7, 0x222c, 0x2247, + 0x2279, 0x2294, 0x22b3, 0x22d5, 0x22f7, 0x231c, 0x2343, 0x235e, + 0x2398, 0x23b6, 0x23c5, 0x23e1, 0x2403, 0x2415, 0x2437, 0x2459, + 0x247e, 0x24ac, +} // Size: 604 bytes + +var koRegionStr string = "" + // Size: 3888 bytes + "어센션 섬안ë„ë¼ì•„ëžì—미리트아프가니스탄앤티가 바부다앵귈ë¼ì•Œë°”니아아르메니아앙골ë¼ë‚¨ê·¹ 대륙아르헨티나아메리칸 사모아오스트리아오스트레ì¼ë¦¬ì•„" + + "아루바올란드 ì œë„아제르바ì´ìž”보스니아 헤르체고비나바베ì´ë„스방글ë¼ë°ì‹œë²¨ê¸°ì—부르키나파소불가리아바레ì¸ë¶€ë£¬ë””베냉ìƒë°”르텔레미버뮤다브루나ì´" + + "볼리비아네ëœëž€ë“œë ¹ 카리브브ë¼ì§ˆë°”하마부탄부베섬보츠와나벨ë¼ë£¨ìŠ¤ë²¨ë¦¬ì¦ˆìºë‚˜ë‹¤ì½”코스 ì œë„콩고-킨샤사중앙 아프리카 공화국콩고스위스코트디부" + + "아르쿡 ì œë„칠레카메룬중국콜롬비아í´ë¦½í¼íŠ¼ 섬코스타리카쿠바카보베르ë°í€´ë¼ì†Œí¬ë¦¬ìŠ¤ë§ˆìŠ¤ì„¬í‚¤í”„로스체코ë…ì¼ë””ì—ê³  가르시아지부티ë´ë§ˆí¬ë„미니카" + + "ë„미니카 공화국알제리세우타 ë° ë©œë¦¬ì•¼ì—ì½°ë„르ì—스토니아ì´ì§‘트서사하ë¼ì—리트리아스페ì¸ì—티오피아유럽 연합핀란드피지í¬í´ëžœë“œ ì œë„미í¬ë¡œë„¤" + + "시아페로 ì œë„프랑스가봉ì˜êµ­ê·¸ë ˆë‚˜ë‹¤ì¡°ì§€ì•„프랑스령 기아나건지가나지브롤터그린란드ê°ë¹„아기니과들루프ì ë„ 기니그리스사우스조지아 사우스샌드" + + "위치 ì œë„과테ë§ë¼ê´Œê¸°ë‹ˆë¹„사우가ì´ì•„나í™ì½©(중국 특별행정구)허드 맥ë„ë„ë“œ ì œë„온ë‘ë¼ìŠ¤í¬ë¡œì•„í‹°ì•„ì•„ì´í‹°í—가리카나리아 ì œë„ì¸ë„네시아아ì¼" + + "랜드ì´ìŠ¤ë¼ì—˜ë§¨ 섬ì¸ë„ì˜êµ­ë ¹ ì¸ë„ì–‘ ì‹ë¯¼ì§€ì´ë¼í¬ì´ëž€ì•„ì´ìŠ¬ëž€ë“œì´íƒˆë¦¬ì•„저지ìžë©”ì´ì¹´ìš”르단ì¼ë³¸ì¼€ëƒí‚¤ë¥´ê¸°ìŠ¤ìŠ¤íƒ„캄보디아키리바시코모로세ì¸íŠ¸í‚¤" + + "츠 네비스조선민주주ì˜ì¸ë¯¼ê³µí™”국대한민국쿠웨ì´íŠ¸ì¼€ì´ë§¨ ì œë„ì¹´ìží스탄ë¼ì˜¤ìŠ¤ë ˆë°”논세ì¸íŠ¸ë£¨ì‹œì•„리히í…슈타ì¸ìŠ¤ë¦¬ëž‘ì¹´ë¼ì´ë² ë¦¬ì•„레소토리투아니아" + + "룩셈부르í¬ë¼íŠ¸ë¹„아리비아모로코모나코몰ë„바몬테네그로ìƒë§ˆë¥´íƒ±ë§ˆë‹¤ê°€ìŠ¤ì¹´ë¥´ë§ˆì…œ ì œë„마케ë„니아ë§ë¦¬ë¯¸ì–€ë§ˆëª½ê³¨ë§ˆì¹´ì˜¤(중국 특별행정구)ë¶ë§ˆë¦¬ì•„" + + "나제ë„마르티니í¬ëª¨ë¦¬íƒ€ë‹ˆëª¬íŠ¸ì„¸ë¼íŠ¸ëª°íƒ€ëª¨ë¦¬ì…”스몰디브ë§ë¼ìœ„멕시코ë§ë ˆì´ì‹œì•„모잠비í¬ë‚˜ë¯¸ë¹„아뉴칼레ë„니아니제르노í½ì„¬ë‚˜ì´ì§€ë¦¬ì•„니카ë¼ê³¼ë„¤ëœëž€ë“œ" + + "노르웨ì´ë„¤íŒ”나우루니우ì—뉴질랜드오만파나마페루프랑스령 í´ë¦¬ë„¤ì‹œì•„파푸아뉴기니필리핀파키스탄í´ëž€ë“œìƒí”¼ì—르 미í´ë¡±í•ì¼€ì–¸ 섬푸ì—르토리코팔레" + + "ìŠ¤íƒ€ì¸ ì§€êµ¬í¬ë¥´íˆ¬ê°ˆíŒ”ë¼ìš°íŒŒë¼ê³¼ì´ì¹´íƒ€ë¥´ì˜¤ì„¸ì•„니아 외곽리유니온루마니아세르비아러시아르완다사우디아ë¼ë¹„아솔로몬 ì œë„세ì´ì…¸ìˆ˜ë‹¨ìŠ¤ì›¨ë´ì‹±ê°€í¬" + + "르세ì¸íŠ¸í—¬ë ˆë‚˜ìŠ¬ë¡œë² ë‹ˆì•„스발바르제ë„-얀마웬섬슬로바키아시ì—ë¼ë¦¬ì˜¨ì‚°ë§ˆë¦¬ë…¸ì„¸ë„¤ê°ˆì†Œë§ë¦¬ì•„수리남남수단ìƒíˆ¬ë©” 프린시페엘살바ë„르신트마르턴시리" + + "아스와질란드트리스탄다쿠나터í¬ìŠ¤ ì¼€ì´ì»¤ìŠ¤ ì œë„차드프랑스 남부 지방토고태국타지키스탄토켈ë¼ìš°ë™í‹°ëª¨ë¥´íˆ¬ë¥´í¬ë©”니스탄튀니지통가터키트리니다" + + "ë“œ 토바고투발루대만탄ìžë‹ˆì•„ìš°í¬ë¼ì´ë‚˜ìš°ê°„다미국령 해외 ì œë„미국우루과ì´ìš°ì¦ˆë² í‚¤ìŠ¤íƒ„바티칸 시국세ì¸íŠ¸ë¹ˆì„¼íŠ¸ê·¸ë ˆë‚˜ë”˜ë² ë„¤ìˆ˜ì—˜ë¼ì˜êµ­ë ¹ 버진" + + "ì•„ì¼ëžœë“œë¯¸êµ­ë ¹ 버진아ì¼ëžœë“œë² íŠ¸ë‚¨ë°”누아투왈리스-푸투나 ì œë„사모아코소보예멘마요트남아프리카잠비아ì§ë°”브웨알려지지 ì•Šì€ ì§€ì—­ì„¸ê³„ì•„í”„ë¦¬ì¹´" + + "ë¶ì•„메리카남아메리카(남미)오세아니아서부 아프리카중앙 아메리카ë™ë¶€ 아프리카ë¶ë¶€ 아프리카중부 아프리카남부 아프리카아메리카 대륙ë¶ë¶€" + + " 아메리카카리브 ì œë„ë™ì•„시아남아시아ë™ë‚¨ì•„시아남유럽오스트랄ë¼ì‹œì•„ë©œë¼ë„¤ì‹œì•„미í¬ë¡œë„¤ì‹œì•„ 지역í´ë¦¬ë„¤ì‹œì•„아시아중앙 아시아서아시아유럽ë™ìœ ëŸ½ë¶" + + "유럽서유럽ë¼í‹´ 아메리카" + +var koRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000d, 0x0016, 0x0028, 0x003a, 0x004d, 0x0056, 0x0062, + 0x0071, 0x007a, 0x0087, 0x0096, 0x00ac, 0x00bb, 0x00d0, 0x00d9, + 0x00e9, 0x00fb, 0x011a, 0x0129, 0x0138, 0x0141, 0x0153, 0x015f, + 0x0168, 0x0171, 0x0177, 0x0189, 0x0192, 0x019e, 0x01aa, 0x01c3, + 0x01cc, 0x01d5, 0x01db, 0x01e4, 0x01f0, 0x01fc, 0x0205, 0x020e, + 0x021e, 0x022e, 0x024b, 0x0251, 0x025a, 0x026c, 0x0276, 0x027c, + 0x0285, 0x028b, 0x0297, 0x02a7, 0x02b6, 0x02bc, 0x02cb, 0x02d4, + 0x02e6, 0x02f2, 0x02f8, 0x02fe, 0x0314, 0x031d, 0x0326, 0x0332, + // Entry 40 - 7F + 0x0348, 0x0351, 0x0368, 0x0374, 0x0383, 0x038c, 0x0398, 0x03a7, + 0x03b0, 0x03bf, 0x03cc, 0x03d5, 0x03db, 0x03ee, 0x0400, 0x040d, + 0x0416, 0x041c, 0x0422, 0x042e, 0x0437, 0x044d, 0x0453, 0x0459, + 0x0465, 0x0471, 0x047a, 0x0480, 0x048c, 0x0499, 0x04a2, 0x04d1, + 0x04dd, 0x04e0, 0x04ef, 0x04fb, 0x0519, 0x0533, 0x053f, 0x054e, + 0x0557, 0x0560, 0x0573, 0x0582, 0x058e, 0x059a, 0x05a1, 0x05a7, + 0x05c4, 0x05cd, 0x05d3, 0x05e2, 0x05ee, 0x05f4, 0x0600, 0x0609, + 0x060f, 0x0615, 0x0627, 0x0633, 0x063f, 0x0648, 0x0661, 0x0682, + // Entry 80 - BF + 0x068e, 0x069a, 0x06aa, 0x06b9, 0x06c2, 0x06cb, 0x06dd, 0x06ef, + 0x06fb, 0x070a, 0x0713, 0x0722, 0x0731, 0x073d, 0x0746, 0x074f, + 0x0758, 0x0761, 0x0770, 0x077c, 0x078e, 0x079b, 0x07aa, 0x07b0, + 0x07b9, 0x07bf, 0x07e0, 0x07f5, 0x0804, 0x0810, 0x081f, 0x0825, + 0x0831, 0x083a, 0x0843, 0x084c, 0x085b, 0x0867, 0x0873, 0x0885, + 0x088e, 0x0897, 0x08a6, 0x08b2, 0x08be, 0x08ca, 0x08d0, 0x08d9, + 0x08e2, 0x08ee, 0x08f4, 0x08fd, 0x0903, 0x091f, 0x0931, 0x093a, + 0x0946, 0x094f, 0x0965, 0x0972, 0x0984, 0x099a, 0x09a6, 0x09af, + // Entry C0 - FF + 0x09bb, 0x09c4, 0x09da, 0x09e6, 0x09f2, 0x09fe, 0x0a07, 0x0a10, + 0x0a25, 0x0a35, 0x0a3e, 0x0a44, 0x0a4d, 0x0a59, 0x0a6b, 0x0a7a, + 0x0a99, 0x0aa8, 0x0ab7, 0x0ac3, 0x0acc, 0x0ad8, 0x0ae1, 0x0aea, + 0x0b00, 0x0b0f, 0x0b1e, 0x0b27, 0x0b36, 0x0b4b, 0x0b68, 0x0b6e, + 0x0b85, 0x0b8b, 0x0b91, 0x0ba0, 0x0bac, 0x0bb8, 0x0bcd, 0x0bd6, + 0x0bdc, 0x0be2, 0x0bfb, 0x0c04, 0x0c0a, 0x0c16, 0x0c25, 0x0c2e, + 0x0c45, 0x0c4b, 0x0c57, 0x0c69, 0x0c79, 0x0c97, 0x0ca6, 0x0cc2, + 0x0cde, 0x0ce7, 0x0cf3, 0x0d0d, 0x0d16, 0x0d1f, 0x0d25, 0x0d2e, + // Entry 100 - 13F + 0x0d3d, 0x0d46, 0x0d52, 0x0d6c, 0x0d72, 0x0d7e, 0x0d8d, 0x0da4, + 0x0db3, 0x0dc6, 0x0dd9, 0x0dec, 0x0dff, 0x0e12, 0x0e25, 0x0e38, + 0x0e4b, 0x0e5b, 0x0e67, 0x0e73, 0x0e82, 0x0e8b, 0x0ea0, 0x0eaf, + 0x0ec8, 0x0ed7, 0x0ee0, 0x0ef0, 0x0efc, 0x0f02, 0x0f0b, 0x0f14, + 0x0f1d, 0x0f30, +} // Size: 604 bytes + +var kyRegionStr string = "" + // Size: 5805 bytes + "ÐÑÑеншин аралыÐндорраБириккен Ðраб ЭмираттарыÐфганиÑтанÐнтигуа жана Барб" + + "удаÐнгуилаÐлбаниÑÐрмениÑÐнголаÐнтарктикаÐргентинаÐмерика СамоаÑÑ‹ÐвÑтриÑ" + + "ÐвÑтралиÑÐрубаÐланд аралдарыÐзербайжанБоÑÐ½Ð¸Ñ Ð¶Ð°Ð½Ð° ГерцеговинаБарбадоÑБа" + + "нгладешБельгиÑБуркина-ФаÑоБолгариÑБахрейнБурундиБенинСент БартелемиБерм" + + "уд аралдарыБрунейБоливиÑКариб ÐидерланддарыБразилиÑБагам аралдарыБутанБ" + + "уве аралдарыБотÑванаБеларуÑÑŒÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´Ð°ÐšÐ¾ÐºÐ¾Ñ (Килиӊ) аралдарыКонго-Кинш" + + "аÑаБорбордук Ðфрика РеÑпубликаÑыКонго-БраззавилШвейцариÑКот-д’ИвуарКук " + + "аралдарыЧилиКамерунКытайКолумбиÑКлиппертон аралыКоÑта-РикаКубаКапе Верд" + + "еКюраÑаоКриÑÐ¼Ð°Ñ Ð°Ñ€Ð°Ð»Ñ‹ÐšÐ¸Ð¿Ñ€Ð§ÐµÑ…Ð¸ÑГерманиÑДиего ГарÑиÑДжибутиДаниÑДоминикаД" + + "оминика РеÑпубликаÑÑ‹ÐлжирСеута жана МелиллаЭквадорЭÑтониÑЕгипетБатыш Са" + + "хараЭритреÑИÑпаниÑЭфиопиÑЕвропа БиримдигиФинлÑндиÑФиджиФолклÑнд аралдар" + + "ыМикронезиÑФарер аралдарыФранциÑГабонУлуу БританиÑГренадаГрузиÑГвиана (" + + "ФранциÑ)ГернÑиГанаГибралтарГренландиÑГамбиÑГвинеÑГваделупаЭкваториалдык" + + " ГвинеÑГрециÑТүштүк Ð–Ð¾Ñ€Ð¶Ð¸Ñ Ð¶Ð°Ð½Ð° Түштүк СÑндвич аралдарыГватемалаГуамГвин" + + "еÑ-БиÑауГайанаГонконг Кытай ÐÐÐХерд жана Макдоналд аралдарыГондураÑХорв" + + "атиÑГаитиВенгриÑКанар аралдарыИндонезиÑИрландиÑИзраильМÑн аралыИндиÑБри" + + "таниÑнын Ð˜Ð½Ð´Ð¸Ñ Ð¾ÐºÐµÐ°Ð½Ñ‹Ð½Ð´Ð°Ð³Ñ‹ аймагыИракИранИÑландиÑИталиÑЖерÑиЯмайкаИорда" + + "ниÑЯпониÑКениÑКыргызÑтанКамбоджаКирибатиКомороÑСент-ÐšÐ¸Ñ‚Ñ Ð¶Ð°Ð½Ð° ÐевиÑТүнд" + + "үк КореÑТүштүк КореÑКувейтКайман ÐралдарыКазакÑтанЛаоÑЛиванСент-ЛюÑиÑЛи" + + "хтенштейнШри-ЛанкаЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМароккоМонакоМ" + + "олдоваЧерногориÑСент-МартинМадагаÑкарМаршалл аралдарыМакедониÑМалиМьÑнм" + + "а (Бирма)МонголиÑМакау Кытай ÐÐÐТүндүк Мариана аралдарыМартиникаМаврита" + + "ниÑМонÑерратМальтаМаврикийМалдив аралдарыМалавиМекÑикаМалайзиÑМозамбикÐ" + + "амибиÑЖаӊы КаледониÑÐигерÐорфолк аралыÐигериÑÐикарагуаÐидерланддарÐорве" + + "гиÑÐепалÐауруÐиуÑЖаӊы ЗеландиÑОманПанамаПеруФранцуз ПолинезиÑÑыПапуа Жа" + + "ңы-ГвинеÑФиллипинПакиÑтанПольшаСен-Пьер жана МикелонПиткÑрн аралдарыПуÑ" + + "рто-РикоПалеÑтина аймактарыПортугалиÑПалауПарагвайКатарÐлыÑкы ОкеаниÑРе" + + "юнионРумыниÑСербиÑРоÑÑиÑРуандаСауд ÐрабиÑÑыСоломон аралдарыСейшелдерСуд" + + "анШвециÑСингапурЫйык ЕленаСловениÑСвалбард жана Жан МайенСловакиÑСьерра" + + "-ЛеонеСан МариноСенегалСомалиСуринамеТүштүк СуданСан-Томе жана ПринÑипиЭ" + + "л СалвадорСинт МаартенСириÑСвазилендТриÑтан да КуньÑÐ¢Ò¯Ñ€ÐºÑ Ð¶Ð°Ð½Ð° ÐšÐ°Ð¹ÐºÐ¾Ñ Ð°" + + "ралдарыЧадФранциÑнын Түштүктөгү аймактарыТогоТаиландТажикÑтанТокелауТим" + + "ор-ЛеÑтеТүркмөнÑтанТуниÑТонгаТүркиÑТринидад жана ТобагоТувалуТайваньТан" + + "заниÑУкраинаУгандаÐКШнын Ñырткы аралдарыÐмерика Кошмо ШтаттарыУругвайӨз" + + "бекÑтанВатиканСент-ВинÑент жана ГренадиналарВенеÑуÑлаВиргин аралдары (Б" + + "ританиÑ)Виргин аралдары (ÐКШ)Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¶Ð°Ð½Ð° ФутунаСамоаКоÑов" + + "оЙеменМайоттаТүштүк Ðфрика РеÑпубликаÑыЗамбиÑЗимбабвеБелгиÑиз регионДүй" + + "нөÐфрикаТүндүк ÐмерикаТүштүк ÐмерикаОкеаниÑБатыш ÐфрикаБорбордук Ðмерик" + + "аЧыгыш ÐфрикаТүндүк ÐфрикаБорбордук ÐфрикаТүштүк ÐфрикаÐмерикаТүндүк Ðм" + + "ерика (регион)Кариб аралдарыЧыгыш ÐзиÑТүштүк ÐзиÑТүштүк-Чыгыш ÐзиÑТүштү" + + "к ЕвропаÐвÑтралазиÑМеланезиÑÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ñ Ð ÐµÐ³Ð¸Ð¾Ð½ÑƒÐŸÐ¾Ð»Ð¸Ð½ÐµÐ·Ð¸ÑÐзиÑБорбор ÐзиÑБ" + + "атыш ÐзиÑЕвропаЧыгыш ЕвропаТүндүк ЕвропаБатыш ЕвропаЛатын ÐмерикаÑÑ‹" + +var kyRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0029, 0x0057, 0x006b, 0x0091, 0x009f, 0x00ad, + 0x00bb, 0x00c7, 0x00db, 0x00ed, 0x010a, 0x0118, 0x012a, 0x0134, + 0x014f, 0x0163, 0x018f, 0x019f, 0x01b1, 0x01bf, 0x01d6, 0x01e6, + 0x01f4, 0x0202, 0x020c, 0x0227, 0x0244, 0x0250, 0x025e, 0x0283, + 0x0293, 0x02ae, 0x02b8, 0x02d1, 0x02e1, 0x02f1, 0x02fb, 0x0307, + 0x032f, 0x0348, 0x0380, 0x039d, 0x03af, 0x03c5, 0x03dc, 0x03e4, + 0x03f2, 0x03fc, 0x040c, 0x042b, 0x043e, 0x0446, 0x0459, 0x0467, + 0x0480, 0x0488, 0x0492, 0x04a2, 0x04b9, 0x04c7, 0x04d1, 0x04e1, + // Entry 40 - 7F + 0x050a, 0x0514, 0x0536, 0x0544, 0x0552, 0x055e, 0x0575, 0x0583, + 0x0591, 0x059f, 0x05be, 0x05d0, 0x05da, 0x05fb, 0x060f, 0x062a, + 0x0638, 0x0642, 0x065b, 0x0669, 0x0675, 0x0692, 0x069e, 0x06a6, + 0x06b8, 0x06cc, 0x06d8, 0x06e4, 0x06f6, 0x071d, 0x0729, 0x0778, + 0x078a, 0x0792, 0x07a9, 0x07b5, 0x07d5, 0x080a, 0x081a, 0x082a, + 0x0834, 0x0842, 0x085d, 0x086f, 0x087f, 0x088d, 0x089e, 0x08a8, + 0x08ed, 0x08f5, 0x08fd, 0x090d, 0x0919, 0x0923, 0x092f, 0x093f, + 0x094b, 0x0955, 0x0969, 0x0979, 0x0989, 0x0997, 0x09bc, 0x09d3, + // Entry 80 - BF + 0x09ea, 0x09f6, 0x0a13, 0x0a25, 0x0a2d, 0x0a37, 0x0a4a, 0x0a60, + 0x0a71, 0x0a7f, 0x0a8b, 0x0a95, 0x0aa9, 0x0ab5, 0x0abf, 0x0acd, + 0x0ad9, 0x0ae7, 0x0afb, 0x0b10, 0x0b24, 0x0b43, 0x0b55, 0x0b5d, + 0x0b76, 0x0b86, 0x0ba2, 0x0bce, 0x0be0, 0x0bf4, 0x0c06, 0x0c12, + 0x0c22, 0x0c3f, 0x0c4b, 0x0c59, 0x0c69, 0x0c79, 0x0c87, 0x0ca2, + 0x0cac, 0x0cc5, 0x0cd3, 0x0ce5, 0x0cfd, 0x0d0d, 0x0d17, 0x0d21, + 0x0d29, 0x0d42, 0x0d4a, 0x0d56, 0x0d5e, 0x0d83, 0x0da3, 0x0db3, + 0x0dc3, 0x0dcf, 0x0df6, 0x0e15, 0x0e2a, 0x0e4f, 0x0e63, 0x0e6d, + // Entry C0 - FF + 0x0e7d, 0x0e87, 0x0ea2, 0x0eb0, 0x0ebe, 0x0eca, 0x0ed6, 0x0ee2, + 0x0efb, 0x0f1a, 0x0f2c, 0x0f36, 0x0f42, 0x0f52, 0x0f65, 0x0f75, + 0x0fa0, 0x0fb0, 0x0fc7, 0x0fda, 0x0fe8, 0x0ff4, 0x1004, 0x101b, + 0x1044, 0x1059, 0x1070, 0x107a, 0x108c, 0x10aa, 0x10db, 0x10e1, + 0x111d, 0x1125, 0x1133, 0x1145, 0x1153, 0x1168, 0x117e, 0x1188, + 0x1192, 0x119e, 0x11c4, 0x11d0, 0x11de, 0x11ee, 0x11fc, 0x1208, + 0x1232, 0x125c, 0x126a, 0x127c, 0x128a, 0x12c3, 0x12d5, 0x1305, + 0x132b, 0x1339, 0x1347, 0x1369, 0x1373, 0x137f, 0x1389, 0x1397, + // Entry 100 - 13F + 0x13c9, 0x13d5, 0x13e5, 0x1402, 0x140c, 0x1418, 0x1433, 0x144e, + 0x145c, 0x1473, 0x1494, 0x14ab, 0x14c4, 0x14e3, 0x14fc, 0x150a, + 0x1534, 0x154f, 0x1562, 0x1577, 0x1597, 0x15b0, 0x15c6, 0x15d8, + 0x15fb, 0x160d, 0x1615, 0x162a, 0x163d, 0x1649, 0x1660, 0x1679, + 0x1690, 0x16ad, +} // Size: 604 bytes + +var loRegionStr string = "" + // Size: 8043 bytes + "ເàºàº²àº°àº­àº²à»€àºŠàº™àºŠàº±àº™àº­àº±àº™àº”à»àº£àº²àºªàº°àº«àº°àº¥àº±àº”ອາຣັບເອມິເຣດອາຟàºàº²àº™àº´àºªàº–ານອາທິàºàº»àº§ ບາບູດາà»àº­àº™àºàº¸àºàº¥àº²à»" + + "ອວເບເນàºàº­àº²à»€àº¡à»€àº™àºàº­àº±àº™à»‚àºàº¥àº²à»àº­àº™àº•àº²àº”ຕິàºàº²àº­àº²à»€àºˆàº™àº—ິນາອາເມຣິàºàº² ຊາມົວໂອຕາລິàºàº­àº­àºªà»€àº•àº£à»€àº¥àº" + + "ອà»àº£àº¹àºšàº²àº«àº¡àº¹à»ˆà»€àºàº²àº°à»‚ອລັນອາເຊີໄບຈານບອດສະເນຠà»àº¥àº° à»àº®àºªà»‚àºàº§àºµàº™àº²àºšàº²àºšàº²à»‚ດສບັງàºàº°àº¥àº²à»€àº—ດà»àºš" + + "ລຊິàºà»€àºšàºµàºàº´àº™àº² ຟາໂຊບູລàºàº²àº£àº´àºšàº²à»€àº£àº™àºšàº¹àº£àº¸àº™àº”ິເບນິນເຊນ ບາເທເລມີເບີມິວດາບຣູໄນໂບລິເ" + + "ວàºàº„າຣິບບຽນ ເນເທີà»àº¥àº™àºšàº°à»€àº¥àºŠàºµàº™àºšàº²àº®àº²àº¡àº²àºªàºžàº¹àº–ານເàºàº²àº°àºšàº¹à»€àº§àº”ບອດສະວານາເບວບາຣຸສເບລີຊàº" + + "ານາດາຫມູ່ເàºàº²àº°à»‚àºà»‚àºàºªàº„ອງໂຠ- ຄິນຊາຊາສາທາລະນະລັດອາຟຣິàºàº²àºàº²àº‡àº„ອງໂຠ- ບຣາຊາວິວ" + + "ສະວິດເຊີà»àº¥àº™à»‚ຄຕີ ວົວà»àº¹à»ˆà»€àºàº²àº°àº„ຸàºàºˆàºµà»€àº¥àº„າເມຣູນຈີນໂຄລົມເບàºà»€àºàº²àº°àº„ລິບເປີຕັນໂຄສຕາ" + + " ຣິàºàº²àºàº¸àºàºšàº²à»€àº„ບ ເວີດຄູຣາຊາວເàºàº²àº°àº„ຣິສມາດໄຊປຣັສສາທາລະນະລັດເຊàºà»€àº¢àºàº¥àº°àº¡àº±àº™àº”ິເອໂຠàº" + + "າເຊàºàºˆàº´àºšàº¹àº•àº´à»€àº”ນມາàºà»‚ດມີນິຄາສາທາລະນະລັດ ໂດມິນິàºàº±àº™àº­àº±àº¥àºˆàº´à»€àº£àºà»€àºŠàº§àº•àº² à»àº¥àº°à»€àº¡àº¥àº´àº™àº¥àº²à»€" + + "ອàºàº§àº²àº”à»à»€àº­àºªà»‚ຕເນàºàº­àºµàº¢àº´àºšàºŠàº²àº®àº²àº£àº²àº•àº²à»€àº§àº±àº™àº•àº»àºà»€àº­àº£àº´à»€àº—ຣàºàºªàº°à»€àº›àº™àº­àºµàº—ິໂອເປàºàºªàº°àº«àº°àºžàº²àºšàº¢àº¹à»‚ຣບàºàº½" + + "àºàº¥àº±àº‡àºŸàº´àºˆàº´àº«àº¡àº¹à»ˆà»€àºàº²àº°àºŸàº­àºà»àº¥àº™à»„ມໂຄຣນີເຊàºàº«àº¡àº¹à»ˆà»€àºàº²àº°à»àºŸà»‚ຣàºàº£àº±à»ˆàº‡àºàº²àºšàº­àº™àºªàº°àº«àº°àº¥àº²àº”ຊະອະນາຈັàº" + + "ເàºàº£à»€àº™àº”າຈà»à»€àºˆàºà»€àºŸàº£àº™àºŠà»Œ àºàº¸àºàº­àº²àº™àº²à»€àºàºµàº™àºŠàºµàºàº²àº™àº²àºˆàº´àºšàºšàº£àº­àº™àº—າàºàº£àºµàº™à»àº¥àº™àºªàº²àº—າລະນະລັດà»àºàº¡à»€àºšàºàº" + + "ິນີàºàº»àº§àº”າລູບອີຄົວໂຕຣຽວ àºàºµàº™àºµàºàº£àºµàºŠà»àº¹à»ˆà»€àºàº²àº°àºˆà»à»€àºˆàº & ເຊົາ à»àºŠàº™àº§àº´àº”àºàº»àº§à»€àº—ມາລາàºàº§àº¡àºàº´" + + "ນີ-ບິສເຊົາàºàº²àºàº¢àº²àº™àº²àº®àº­àº‡àºàº»àº‡ ເຂດປົàºàº„ອງພິເສດ ຈີນà»àº¹à»ˆà»€àºàº²àº°à»€àº®àºµàº” & à»àº¡àº±àºà»‚ດນອລຮອນດູ" + + "ຣັສໂຄຣເອເທàºà»„ຮຕິຮັງàºàº²àº£àºµà»àº¹à»ˆà»€àºàº²àº°àº„ານາຣີອິນໂດເນເຊàºà»„ອຣ໌à»àº¥àº™àº­àº´àºªàº£àº²à»€àº­àº§à»€àº­àº§ ອອບ à»àº¡" + + "ນອິນເດàºà»€àº‚ດà»àº”ນບຣິທິສອິນດຽນໂອຊຽນອີຣັàºàº­àºµàº£à»ˆàº²àº™à»„ອສà»àº¥àº™àº­àº´àº•àº²àº¥àºµà»€àºˆàºµàºŠàºµàºˆàº²à»„ມຄາຈà»à»àº”ນàº" + + "ີ່ປຸ່ນເຄນຢາຄີàºàº´àºªàº–ານàºàº³àº›àº¹à»€àºˆàºàº„ິຣິບາທິໂຄໂມໂຣສເຊນ ຄິດ à»àº¥àº° ເນວິສເàºàº»àº²àº«àº¥àºµà»€à»œàº·àº­à»€" + + "àºàº»àº²àº«àº¥àºµà»ƒàº•à»‰àºàº¹à»€àº§àº”ເຄà»àº¡àº™ ໄອà»àº¥àº™àº„າຊັàºàºªàº°àº–ານລາວເລບານອນເຊນ ລູເຊàºàº¥àº´àº”ເທນສະຕາàºàºªàºµàº¥àº±àº‡" + + "àºàº²àº¥àº´à»€àºšàºµà»€àº£àºà»€àº¥à»‚ຊໂທລິທົວເນàºàº¥àº¸àºàºŠàº³àºšàº»àº§àº¥àº±àº”ເວàºàº¥àº´à»€àºšàºà»‚ມຣັອàºà»‚ຄໂມນາໂຄໂມນໂດວາມອນເຕເ" + + "ນໂàºàº£à»€àºŠàº™ ມາທິນມາດາàºàº²àºªàºàº²àº«àº¡àº¹à»ˆà»€àºàº²àº°àº¡àº²à»àºŠàº§à»àº¡àºŠàº´à»‚ດເນàºàº¡àº²àº¥àº´àº¡àº½àº™àº¡àº² (ເບີມາ)ມົງໂàºàº¥àºµàº¡àº²" + + "ເàºàº»à»‰àº² ເຂດປົàºàº„ອງພິເສດ ຈີນຫມູ່ເàºàº²àº°àº¡àº²à»àºŠàº§àº•àº­àº™à»€àº«àº™àº·àº­àº¡àº²àº•àº´àº™àºµàºàº¡àº»àº§àº£àº´à»€àº—ເນàºàº¡àº­àº™à»€àºŠàºµàº£àº²" + + "ດມອນທາມົວຣິຊຽສມັນດິຟມາລາວີà»àº¡àº±àºàºŠàºµà»‚àºàº¡àº²à»€àº¥à»€àºŠàºà»‚ມà»àºŠàº¡àºšàº´àºàº™àº²àº¡àºµà»€àºšàºàº™àº´àº§ ຄາເລໂດເນàºàº™" + + "ິເຈີເàºàº²àº°àº™à»à»‚ຟàºà»„ນຈີເຣàºàº™àº´àºàº„າຣາàºàº»àº§à»€àº™à»€àº—ີà»àº¥àº™àº™àº­àºà»àº§à»Šà»€àº™àº›àº²àº™àº™àº²àº­àº¹àº£àº¹àº™àºµàº­àº¹à»€àº­àº™àº´àº§àºŠàºµà»àº¥àº™à»‚" + + "ອມານພານາມາເປຣູເຟຣນຊ໌ ໂພລີນີເຊàºàº›àº²àº›àº»àº§àº™àº´àº§àºàºµàº™àºµàºŸàº´àº¥àº´àºšàº›àº´àº™àº›àº²àºàº´àºªàº–ານໂປໂລàºà»€àºŠàº™ ປີà»" + + "ອ ມິເàºàº§àº¥àº­àº™à»àº¹à»ˆà»€àºàº²àº°àºžàº´àº”à»àº„ນເພືອໂຕ ຣິໂàºàº”ິນà»àº”ນ ປາເລສຕິນຽນພອລທູໂàºàº›àº²à»€àº¥àº»àº²àºžàº²àº£àº²àºàº§" + + "àºàºàº²àº•àº²à»€àº‚ດຫ່າງໄàºà»‚ອຊີເນàºà»€àº£àº­àº¹àº™àº´àºàº»àº‡à»‚ຣມານີເຊີເບàºàº£àº±àº”ເຊàºàº£àº§àº±àº™àº”າຊາອຸດິ ອາຣາເບàºàº«àº¡" + + "ູ່ເàºàº²àº°à»‚ຊໂລມອນເຊເຊວເລສຊູດານສະວີເດັນສິງàºàº°à»‚ປເຊນ ເຮເລນາສະໂລເວເນàºàºªàº°àº§àº²àºšàº² à»àº¥àº°" + + " à»àº¢àº™ ມາເຢນສະໂລວາເàºàºà»€àºŠàºàº£àº² ລີໂອນà»àºŠàº™ ມາຣິໂນເຊນີໂàºàº¥à»‚ຊມາລີຊູຣິນາມຊູດານໃຕ້ເຊົາ" + + "ທູເມ à»àº¥àº° ພຣິນຊິບເອວ ຊà»àº§àº²àº”à»àºŠàº´àº™ ມາເທັນຊີເຣàºàºªàº°àº§àº²àºŠàº´à»àº¥àº™àº—ຣິສຕັນ ດາ àºàº±àº™àº®àº²à»àº¹à»ˆà»€" + + "àºàº²àº° ເທີຠà»àº¥àº° ໄຄໂຄສຊາດເຂດà»àº”ນທາງໃຕ້ຂອàºàº®àº±à»ˆàº‡à»‚ຕໂàºà»„ທທາຈິàºàº´àºªàº–ານໂຕເàºà»€àº¥àº»àº²àº—ິມà»-ເ" + + "ລສເຕເທີàºà»€àº¡àº™àº´àºªàº–ານຕູນິເຊàºàº—ອງàºàº²à»€àº—ີຄີທຣິນິà»àº”ດ à»àº¥àº° ໂທà»àºšà»‚àºàº•àº¹àº§àº²àº¥àº¹à»„ຕ້ຫວັນທານຊາ" + + "ເນàºàº¢àº¹à»€àº„ຣນອູàºàº²àº™àº”າà»àº¹à»ˆà»€àºàº²àº°àº®àº­àºšàº™àº­àºàº‚ອງສະຫະລັດຯສະຫະລັດອູຣຸàºàº§àºàº­àº¸àºªà»€àºšàºàº´àºªàº–ານນະຄອນ" + + " ວາຕິàºàº±àº™à»€àºŠàº™ ວິນເຊນ & ເàºàº£à»€àº™àº”ິນເວເນຊູເອລາà»àº¹à»ˆà»€àºàº²àº° ບຣິທິຊ ເວີຈິນà»àº¹à»ˆà»€àºàº²àº° ຢູເອ" + + "ສ ເວີຈິນຫວຽດນາມວານົວຕູວາລິສ à»àº¥àº° ຟຸຕູນາຊາມົວໂຄໂຊໂວເຢເມນມາຢັອດອາຟະລິàºàº²à»ƒàº•" + + "້à»àºŠàº¡à»€àºšàºàºŠàº´àº¡àºšàº±àºšà»€àº§àº‚ົງເຂດທີ່ບà»à»ˆàº®àº¹à»‰àºˆàº±àºà»‚ລàºàº­àº²àºŸàº£àº´àºàº²àº­àº²à»€àº¡àº¥àº´àºàº²à»€à»œàº·àº­àº­àº²à»€àº¡àº¥àº´àºàº²à»ƒàº•à»‰à»‚ອຊີ" + + "ອານີອາຟຣິàºàº²àº•àº²à»€àº§àº±àº™àº•àº»àºàº­àº²à»€àº¡àº¥àº´àºàº²àºàº²àº‡àº­àº²àºŸàº£àº´àºàº²àº•àº²à»€àº§àº±àº™àº­àº­àºàº­àº²àºŸàº£àº´àºàº²à»€à»œàº·àº­àº­àº²àºŸàº£àº´àºàº²àºàº²àº‡àº­àº²" + + "ຟຣິàºàº²à»ƒàº•à»‰àº­àº²à»€àº¡àº£àº´àºàº²àºžàº²àºà»€à»œàº·àº­àº­àº²à»€àº¡àº¥àºµàºàº²àº„າຣິບບຽນອາຊີຕາເວັນອອàºàº­àº²àºŠàºµà»„ຕ້ອາຊີຕາເວັນອ" + + "ອàºàºªà»ˆàº½àº‡à»„ຕ້ຢູໂຣບໃຕ້ໂອດສະຕາລີເມລານີເຊàºà»€àº‚ດໄມໂຄຣເນຊຽນໂພລີນີເຊàºàº­àº²àºŠàºµàº­àº²àºŠàºµàºàº²àº‡àº­àº²" + + "ຊີຕາເວັນຕົàºàº¢àº¹à»‚ຣບຢູໂຣບຕາເວັນອອàºàº¢àº¹à»‚ຣບເໜືອຢູໂຣບຕາເວັນຕົàºàº¥àº²àº•àº´àº™ ອາເມລິàºàº²" + +var loRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0024, 0x0039, 0x0072, 0x0093, 0x00bb, 0x00d3, 0x00eb, + 0x0100, 0x0115, 0x0133, 0x014e, 0x0176, 0x018b, 0x01a6, 0x01b8, + 0x01df, 0x01fd, 0x023b, 0x0250, 0x026e, 0x0280, 0x02a2, 0x02b7, + 0x02c6, 0x02db, 0x02ea, 0x030c, 0x0324, 0x0333, 0x0348, 0x0379, + 0x038e, 0x03a3, 0x03b2, 0x03cd, 0x03e8, 0x0400, 0x040f, 0x0421, + 0x0448, 0x046f, 0x04ae, 0x04d8, 0x04f9, 0x050f, 0x052d, 0x0539, + 0x054e, 0x0557, 0x056f, 0x0599, 0x05b5, 0x05c4, 0x05da, 0x05ef, + 0x0610, 0x0622, 0x064c, 0x0664, 0x0686, 0x0698, 0x06aa, 0x06c2, + // Entry 40 - 7F + 0x06ff, 0x0717, 0x0745, 0x075a, 0x0772, 0x0781, 0x07ae, 0x07c6, + 0x07d5, 0x07f0, 0x0814, 0x0826, 0x0832, 0x085c, 0x087a, 0x089e, + 0x08ad, 0x08bc, 0x08ec, 0x0901, 0x0910, 0x0938, 0x094a, 0x0956, + 0x0971, 0x0986, 0x09b9, 0x09c5, 0x09dd, 0x0a08, 0x0a14, 0x0a5a, + 0x0a75, 0x0a7e, 0x0aa0, 0x0ab5, 0x0afc, 0x0b3b, 0x0b53, 0x0b6b, + 0x0b77, 0x0b8c, 0x0bb3, 0x0bd1, 0x0be6, 0x0bfe, 0x0c1b, 0x0c2d, + 0x0c72, 0x0c81, 0x0c93, 0x0ca5, 0x0cb7, 0x0cc6, 0x0cd8, 0x0ce7, + 0x0cfc, 0x0d0b, 0x0d23, 0x0d38, 0x0d50, 0x0d65, 0x0d92, 0x0db3, + // Entry 80 - BF + 0x0dd1, 0x0de0, 0x0dff, 0x0e1d, 0x0e26, 0x0e3b, 0x0e54, 0x0e75, + 0x0e8a, 0x0ea2, 0x0eb4, 0x0ecc, 0x0ee4, 0x0ef6, 0x0f05, 0x0f1d, + 0x0f2f, 0x0f44, 0x0f62, 0x0f7b, 0x0f96, 0x0fbd, 0x0fd8, 0x0fe4, + 0x1005, 0x101a, 0x1064, 0x10a3, 0x10b8, 0x10d6, 0x10f1, 0x1100, + 0x1118, 0x112a, 0x113c, 0x1154, 0x1169, 0x1181, 0x1196, 0x11bb, + 0x11ca, 0x11e5, 0x11fa, 0x1218, 0x1230, 0x1242, 0x1251, 0x1263, + 0x1275, 0x128d, 0x129c, 0x12ae, 0x12ba, 0x12e8, 0x130c, 0x1324, + 0x133c, 0x134b, 0x137a, 0x13a1, 0x13c0, 0x13f1, 0x1406, 0x1418, + // Entry C0 - FF + 0x142d, 0x1439, 0x1469, 0x1484, 0x1496, 0x14a8, 0x14ba, 0x14cc, + 0x14f4, 0x1521, 0x1539, 0x1548, 0x1560, 0x1575, 0x1591, 0x15ac, + 0x15e2, 0x15fd, 0x161c, 0x1638, 0x164d, 0x165f, 0x1674, 0x168c, + 0x16c4, 0x16e0, 0x16fc, 0x170b, 0x1726, 0x1752, 0x178e, 0x1797, + 0x17d0, 0x17dc, 0x17e2, 0x1800, 0x1818, 0x1834, 0x1858, 0x186d, + 0x187c, 0x188b, 0x18c0, 0x18d2, 0x18e7, 0x18ff, 0x1911, 0x1926, + 0x196e, 0x1983, 0x1998, 0x19b9, 0x19de, 0x1a15, 0x1a33, 0x1a6e, + 0x1aa6, 0x1abb, 0x1ad0, 0x1afc, 0x1b0b, 0x1b1d, 0x1b2c, 0x1b3e, + // Entry 100 - 13F + 0x1b5f, 0x1b71, 0x1b89, 0x1bbf, 0x1bc8, 0x1bdd, 0x1c01, 0x1c22, + 0x1c3a, 0x1c6a, 0x1c8b, 0x1cbb, 0x1cdc, 0x1cfa, 0x1d18, 0x1d30, + 0x1d5d, 0x1d75, 0x1d9c, 0x1db1, 0x1ded, 0x1e05, 0x1e20, 0x1e3b, + 0x1e62, 0x1e7d, 0x1e89, 0x1e9e, 0x1ec5, 0x1ed4, 0x1efe, 0x1f19, + 0x1f43, 0x1f6b, +} // Size: 604 bytes + +var ltRegionStr string = "" + // Size: 3379 bytes + "Dangun Žengimo salaAndoraJungtiniai Arabų EmyrataiAfganistanasAntigva ir" + + " BarbudaAngilijaAlbanijaArmÄ—nijaAngolaAntarktidaArgentinaAmerikos SamoaA" + + "ustrijaAustralijaArubaAlandų SalosAzerbaidžanasBosnija ir HercegovinaBar" + + "badosasBangladeÅ¡asBelgijaBurkina FasasBulgarijaBahreinasBurundisBeninasS" + + "en BartelemiBermudaBrunÄ—jusBolivijaKaribų NyderlandaiBrazilijaBahamosBut" + + "anasBuvÄ— SalaBotsvanaBaltarusijaBelizasKanadaKokosų (Kilingo) SalosKonga" + + "s-KinÅ¡asaCentrinÄ—s Afrikos RespublikaKongas-BrazavilisÅ veicarijaDramblio" + + " Kaulo KrantasKuko SalosÄŒilÄ—KamerÅ«nasKinijaKolumbijaKlipertono salaKosta" + + " RikaKubaŽaliasis KyÅ¡ulysKiurasaoKalÄ—dų SalaKiprasÄŒekijaVokietijaDiego G" + + "arsijaDžibutisDanijaDominikaDominikos RespublikaAlžyrasSeuta ir MelilaEk" + + "vadorasEstijaEgiptasVakarų SacharaEritrÄ—jaIspanijaEtiopijaEuropos SÄ…jung" + + "aSuomijaFidžisFolklando SalosMikronezijaFarerų SalosPrancÅ«zijaGabonasDid" + + "žioji BritanijaGrenadaGruzijaPrancÅ«zijos GvianaGernsisGanaGibraltarasGr" + + "enlandijaGambijaGvinÄ—jaGvadelupaPusiaujo GvinÄ—jaGraikijaPietų Džordžija " + + "ir Pietų SandviÄo salosGvatemalaGuamasBisau GvinÄ—jaGajanaYpatingasis Adm" + + "inistracinis Kinijos Regionas HonkongasHerdo ir Makdonaldo SalosHondÅ«ras" + + "KroatijaHaitisVengrijaKanarų salosIndonezijaAirijaIzraelisMeno SalaIndij" + + "aIndijos Vandenyno Britų SritisIrakasIranasIslandijaItalijaDžersisJamaik" + + "aJordanijaJaponijaKenijaKirgizijaKambodžaKiribatisKomoraiSent Kitsas ir " + + "NevisÅ iaurÄ—s KorÄ—jaPietų KorÄ—jaKuveitasKaimanų SalosKazachstanasLaosasLi" + + "banasÅ ventoji LiucijaLichtenÅ¡teinasÅ ri LankaLiberijaLesotasLietuvaLiukse" + + "mburgasLatvijaLibijaMarokasMonakasMoldovaJuodkalnijaSen MartenasMadagask" + + "arasMarÅ¡alo SalosMakedonijaMalisMianmaras (Birma)MongolijaYpatingasis Ad" + + "ministracinis Kinijos Regionas MakaoMarianos Å iaurinÄ—s SalosMartinikaMau" + + "ritanijaMontseratasMaltaMauricijusMaldyvaiMalavisMeksikaMalaizijaMozambi" + + "kasNamibijaNaujoji KaledonijaNigerisNorfolko salaNigerijaNikaragvaNyderl" + + "andaiNorvegijaNepalasNauruNiujÄ—Naujoji ZelandijaOmanasPanamaPeruPrancÅ«zų" + + " PolinezijaPapua Naujoji GvinÄ—jaFilipinaiPakistanasLenkijaSen Pjeras ir " + + "MikelonasPitkernasPuerto RikasPalestinos teritorijaPortugalijaPalauParag" + + "vajusKatarasNuoÅ¡ali OkeanijaReunjonasRumunijaSerbijaRusijaRuandaSaudo Ar" + + "abijaSaliamono SalosSeiÅ¡eliaiSudanasÅ vedijaSingapÅ«rasÅ v. Elenos SalaSlov" + + "Ä—nijaSvalbardas ir Janas MajenasSlovakijaSiera LeonÄ—San MarinasSenegala" + + "sSomalisSurinamasPietų SudanasSan TomÄ— ir PrinsipÄ—SalvadorasSint Martena" + + "sSirijaSvazilandasTristanas da KunjaTerkso ir Kaikoso SalosÄŒadasPrancÅ«zi" + + "jos Pietų sritysTogasTailandasTadžikijaTokelauRytų TimorasTurkmÄ—nistanas" + + "TunisasTongaTurkijaTrinidadas ir TobagasTuvaluTaivanasTanzanijaUkrainaUg" + + "andaJungtinių Valstijų Mažosios Tolimosios SalosJungtinÄ—s ValstijosUrugv" + + "ajusUzbekistanasVatikano Miesto ValstybÄ—Å ventasis Vincentas ir Grenadina" + + "iVenesuelaDidžiosios Britanijos Mergelių SalosJungtinių Valstijų Mergeli" + + "ų SalosVietnamasVanuatuVolisas ir FutunaSamoaKosovasJemenasMajotasPietų" + + " AfrikaZambijaZimbabvÄ—nežinoma sritispasaulisAfrikaÅ iaurÄ—s AmerikaPietų " + + "AmerikaOkeanijaVakarų AfrikaCentrinÄ— AmerikaRytų AfrikaÅ iaurÄ—s AfrikaVid" + + "urio AfrikaPietinÄ— AfrikaAmerikaÅ iaurinÄ— AmerikaKaribaiRytų AzijaPietų A" + + "zijaPietryÄių AzijaPietų EuropaAustralazijaMelanezijaMikronezijos region" + + "asPolinezijaAzijaCentrinÄ— AzijaVakarų AzijaEuropaRytų EuropaÅ iaurÄ—s Euro" + + "paVakarų EuropaLotynų Amerika" + +var ltRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0014, 0x001a, 0x0034, 0x0040, 0x0052, 0x005a, 0x0062, + 0x006b, 0x0071, 0x007b, 0x0084, 0x0092, 0x009a, 0x00a4, 0x00a9, + 0x00b6, 0x00c4, 0x00da, 0x00e4, 0x00f0, 0x00f7, 0x0104, 0x010d, + 0x0116, 0x011e, 0x0125, 0x0132, 0x0139, 0x0142, 0x014a, 0x015d, + 0x0166, 0x016d, 0x0174, 0x017e, 0x0186, 0x0191, 0x0198, 0x019e, + 0x01b5, 0x01c4, 0x01e1, 0x01f2, 0x01fd, 0x0213, 0x021d, 0x0223, + 0x022d, 0x0233, 0x023c, 0x024b, 0x0255, 0x0259, 0x026b, 0x0273, + 0x0280, 0x0286, 0x028d, 0x0296, 0x02a3, 0x02ac, 0x02b2, 0x02ba, + // Entry 40 - 7F + 0x02ce, 0x02d6, 0x02e5, 0x02ee, 0x02f4, 0x02fb, 0x030a, 0x0313, + 0x031b, 0x0323, 0x0333, 0x033a, 0x0341, 0x0350, 0x035b, 0x0368, + 0x0373, 0x037a, 0x038d, 0x0394, 0x039b, 0x03ae, 0x03b5, 0x03b9, + 0x03c4, 0x03cf, 0x03d6, 0x03de, 0x03e7, 0x03f8, 0x0400, 0x042c, + 0x0435, 0x043b, 0x0449, 0x044f, 0x0485, 0x049e, 0x04a7, 0x04af, + 0x04b5, 0x04bd, 0x04ca, 0x04d4, 0x04da, 0x04e2, 0x04eb, 0x04f1, + 0x0510, 0x0516, 0x051c, 0x0525, 0x052c, 0x0534, 0x053b, 0x0544, + 0x054c, 0x0552, 0x055b, 0x0564, 0x056d, 0x0574, 0x0588, 0x0599, + // Entry 80 - BF + 0x05a7, 0x05af, 0x05bd, 0x05c9, 0x05cf, 0x05d6, 0x05e7, 0x05f6, + 0x0600, 0x0608, 0x060f, 0x0616, 0x0623, 0x062a, 0x0630, 0x0637, + 0x063e, 0x0645, 0x0650, 0x065c, 0x0668, 0x0676, 0x0680, 0x0685, + 0x0696, 0x069f, 0x06d1, 0x06eb, 0x06f4, 0x06ff, 0x070a, 0x070f, + 0x0719, 0x0721, 0x0728, 0x072f, 0x0738, 0x0742, 0x074a, 0x075c, + 0x0763, 0x0770, 0x0778, 0x0781, 0x078c, 0x0795, 0x079c, 0x07a1, + 0x07a7, 0x07b8, 0x07be, 0x07c4, 0x07c8, 0x07dd, 0x07f3, 0x07fc, + 0x0806, 0x080d, 0x0824, 0x082d, 0x0839, 0x084e, 0x0859, 0x085e, + // Entry C0 - FF + 0x0868, 0x086f, 0x0880, 0x0889, 0x0891, 0x0898, 0x089e, 0x08a4, + 0x08b1, 0x08c0, 0x08ca, 0x08d1, 0x08d9, 0x08e4, 0x08f4, 0x08fe, + 0x0919, 0x0922, 0x092e, 0x0939, 0x0942, 0x0949, 0x0952, 0x0960, + 0x0976, 0x0980, 0x098d, 0x0993, 0x099e, 0x09b0, 0x09c7, 0x09cd, + 0x09e7, 0x09ec, 0x09f5, 0x09ff, 0x0a06, 0x0a13, 0x0a22, 0x0a29, + 0x0a2e, 0x0a35, 0x0a4a, 0x0a50, 0x0a58, 0x0a61, 0x0a68, 0x0a6e, + 0x0a9d, 0x0ab1, 0x0aba, 0x0ac6, 0x0adf, 0x0b01, 0x0b0a, 0x0b30, + 0x0b54, 0x0b5d, 0x0b64, 0x0b75, 0x0b7a, 0x0b81, 0x0b88, 0x0b8f, + // Entry 100 - 13F + 0x0b9c, 0x0ba3, 0x0bac, 0x0bbc, 0x0bc4, 0x0bca, 0x0bdb, 0x0be9, + 0x0bf1, 0x0bff, 0x0c10, 0x0c1c, 0x0c2c, 0x0c3a, 0x0c49, 0x0c50, + 0x0c62, 0x0c69, 0x0c74, 0x0c80, 0x0c91, 0x0c9e, 0x0caa, 0x0cb4, + 0x0cc9, 0x0cd3, 0x0cd8, 0x0ce7, 0x0cf4, 0x0cfa, 0x0d06, 0x0d16, + 0x0d24, 0x0d33, +} // Size: 604 bytes + +var lvRegionStr string = "" + // Size: 3272 bytes + "DebesbraukÅ¡anas salaAndoraApvienotie ArÄbu EmirÄtiAfganistÄnaAntigva un " + + "BarbudaAngiljaAlbÄnijaArmÄ“nijaAngolaAntarktikaArgentÄ«naAmerikÄņu SamoaAu" + + "strijaAustrÄlijaArubaOlandes salasAzerbaidžÄnaBosnija un HercegovinaBarb" + + "adosaBangladeÅ¡aBeļģijaBurkinafasoBulgÄrijaBahreinaBurundiBeninaSenbartel" + + "mÄ«Bermudu salasBrunejaBolÄ«vijaNÄ«derlandes KarÄ«bu salasBrazÄ«lijaBahamu sa" + + "lasButÄnaBuvÄ“ salaBotsvÄnaBaltkrievijaBelizaKanÄdaKokosu jeb KÄ«linga sal" + + "asKongo-KinÅ¡asaCentrÄlÄfrikas RepublikaKongo - BrazavilaÅ veiceKotdivuÄra" + + "Kuka salasČīleKamerÅ«naĶīnaKolumbijaKlipertona salaKostarikaKubaKaboverde" + + "KirasaoZiemsvÄ“tku salaKipraÄŒehijaVÄcijaDjego Garsijas atolsDžibutijaDÄni" + + "jaDominikaDominikÄnaAlžīrijaSeÅ«ta un MeliljaEkvadoraIgaunijaÄ’Ä£ipteRietum" + + "sahÄraEritrejaSpÄnijaEtiopijaEiropas SavienÄ«baSomijaFidžiFolklenda salas" + + "MikronÄ“zijaFÄ“ru SalasFrancijaGabonaLielbritÄnijaGrenÄdaGruzijaFranÄu Gvi" + + "ÄnaGÄ“rnsijaGanaGibraltÄrsGrenlandeGambijaGvinejaGvadelupaEkvatoriÄlÄ Gv" + + "inejaGrieÄ·ijaDienviddžordžija un DienvidsendviÄu salasGvatemalaGuamaGvin" + + "eja-BisavaGajÄnaĶīnas Ä«paÅ¡Äs pÄrvaldes apgabals HonkongaHÄ“rda un Makdona" + + "lda salasHondurasaHorvÄtijaHaitiUngÄrijaKanÄriju salasIndonÄ“zijaĪrijaIzr" + + "aÄ“laMenaIndijaIndijas okeÄna Britu teritorijaIrÄkaIrÄnaĪslandeItÄlijaDžē" + + "rsijaJamaikaJordÄnijaJapÄnaKenijaKirgizstÄnaKambodžaKiribatiKomoru salas" + + "Sentkitsa un NevisaZiemeļkorejaDienvidkorejaKuveitaKaimanu salasKazahstÄ" + + "naLaosaLibÄnaSentlÅ«sijaLihtenÅ¡teinaÅ rilankaLibÄ“rijaLesotoLietuvaLuksembu" + + "rgaLatvijaLÄ«bijaMarokaMonakoMoldovaMelnkalneSenmartÄ“naMadagaskaraMÄrÅ¡ala" + + " salasMaÄ·edonijaMaliMjanma (Birma)MongolijaĶīnas Ä«paÅ¡Äs pÄrvaldes apgaba" + + "ls MakaoZiemeļu Marianas salasMartinikaMauritÄnijaMontserrataMaltaMaurÄ«c" + + "ijaMaldÄ«vijaMalÄvijaMeksikaMalaizijaMozambikaNamÄ«bijaJaunkaledonijaNigÄ“r" + + "aNorfolkas salaNigÄ“rijaNikaragvaNÄ«derlandeNorvÄ“Ä£ijaNepÄlaNauruNiueJaunzÄ“" + + "landeOmÄnaPanamaPeruFranÄu PolinÄ“zijaPapua-JaungvinejaFilipÄ«nasPakistÄna" + + "PolijaSenpjÄ“ra un MikelonaPitkÄ“rnaPuertorikoPalestÄ«naPortugÄlePalauParag" + + "vajaKataraOkeÄnijas attÄlÄs salasReinjonaRumÄnijaSerbijaKrievijaRuandaSa" + + "Å«da ArÄbijaZÄlamana salasÅ eiÅ¡elu salasSudÄnaZviedrijaSingapÅ«raSv.HelÄ“na" + + "s salaSlovÄ“nijaSvalbÄra un Jana Majena salaSlovÄkijaSjerraleoneSanmarÄ«no" + + "SenegÄlaSomÄlijaSurinamaDienvidsudÄnaSantome un PrinsipiSalvadoraSintmÄr" + + "tenaSÄ«rijaSvazilendaTristana da Kuņas salasTÄ“rksas un Kaikosas salasÄŒada" + + "Francijas DienvidjÅ«ru ZemesTogoTaizemeTadžikistÄnaTokelauAustrumtimoraTu" + + "rkmenistÄnaTunisijaTongaTurcijaTrinidÄda un TobÄgoTuvaluTaivÄnaTanzÄnija" + + "UkrainaUgandaASV AizjÅ«ras salasAmerikas SavienotÄs ValstisUrugvajaUzbeki" + + "stÄnaVatikÄnsSentvinsenta un GrenadÄ«nasVenecuÄ“laBritu VirdžīnasASV Virdž" + + "Ä«nasVjetnamaVanuatuVolisa un FutunaSamoaKosovaJemenaMajotaDienvidÄfrika" + + "s RepublikaZambijaZimbabvenezinÄms reÄ£ionspasauleÄ€frikaZiemeļamerikaDien" + + "vidamerikaOkeÄnijaRietumÄfrikaCentrÄlamerikaAustrumÄfrikaZiemeļÄfrikaVid" + + "usÄfrikaDienvidÄfrikaAmerikaAmerikas ziemeļu daļaKarÄ«bu jÅ«ras reÄ£ionsAus" + + "trumÄzijaDienvidÄzijaCentrÄlaustrumÄzijaDienvideiropaAustrÄlÄzijaMelanÄ“z" + + "ijaMikronÄ“zijas reÄ£ionsPolinÄ“zijaÄ€zijaCentrÄlÄzijaRietumÄzijaEiropaAustr" + + "umeiropaZiemeļeiropaRietumeiropaLatīņamerika" + +var lvRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0015, 0x001b, 0x0035, 0x0041, 0x0053, 0x005a, 0x0063, + 0x006c, 0x0072, 0x007c, 0x0086, 0x0097, 0x009f, 0x00aa, 0x00af, + 0x00bc, 0x00ca, 0x00e0, 0x00e9, 0x00f4, 0x00fd, 0x0108, 0x0112, + 0x011a, 0x0121, 0x0127, 0x0133, 0x0140, 0x0147, 0x0150, 0x016a, + 0x0174, 0x0180, 0x0187, 0x0191, 0x019a, 0x01a6, 0x01ac, 0x01b3, + 0x01cc, 0x01da, 0x01f4, 0x0205, 0x020c, 0x0217, 0x0221, 0x0227, + 0x0230, 0x0236, 0x023f, 0x024e, 0x0257, 0x025b, 0x0264, 0x026b, + 0x027b, 0x0280, 0x0287, 0x028e, 0x02a2, 0x02ac, 0x02b3, 0x02bb, + // Entry 40 - 7F + 0x02c6, 0x02d0, 0x02e1, 0x02e9, 0x02f1, 0x02f9, 0x0306, 0x030e, + 0x0316, 0x031e, 0x0330, 0x0336, 0x033c, 0x034b, 0x0357, 0x0362, + 0x036a, 0x0370, 0x037e, 0x0386, 0x038d, 0x039c, 0x03a5, 0x03a9, + 0x03b4, 0x03bd, 0x03c4, 0x03cb, 0x03d4, 0x03e9, 0x03f2, 0x041e, + 0x0427, 0x042c, 0x043a, 0x0441, 0x046f, 0x0489, 0x0492, 0x049c, + 0x04a1, 0x04aa, 0x04b9, 0x04c4, 0x04ca, 0x04d2, 0x04d6, 0x04dc, + 0x04fc, 0x0502, 0x0508, 0x0510, 0x0518, 0x0522, 0x0529, 0x0533, + 0x053a, 0x0540, 0x054c, 0x0555, 0x055d, 0x0569, 0x057c, 0x0589, + // Entry 80 - BF + 0x0596, 0x059d, 0x05aa, 0x05b5, 0x05ba, 0x05c1, 0x05cc, 0x05d9, + 0x05e2, 0x05eb, 0x05f1, 0x05f8, 0x0603, 0x060a, 0x0611, 0x0617, + 0x061d, 0x0624, 0x062d, 0x0638, 0x0643, 0x0652, 0x065d, 0x0661, + 0x066f, 0x0678, 0x06a3, 0x06ba, 0x06c3, 0x06cf, 0x06da, 0x06df, + 0x06e9, 0x06f3, 0x06fc, 0x0703, 0x070c, 0x0715, 0x071e, 0x072c, + 0x0733, 0x0741, 0x074a, 0x0753, 0x075e, 0x0769, 0x0770, 0x0775, + 0x0779, 0x0785, 0x078b, 0x0791, 0x0795, 0x07a8, 0x07b9, 0x07c3, + 0x07cd, 0x07d3, 0x07e8, 0x07f1, 0x07fb, 0x0805, 0x080f, 0x0814, + // Entry C0 - FF + 0x081d, 0x0823, 0x083d, 0x0845, 0x084e, 0x0855, 0x085d, 0x0863, + 0x0872, 0x0881, 0x0890, 0x0897, 0x08a0, 0x08aa, 0x08ba, 0x08c4, + 0x08e1, 0x08eb, 0x08f6, 0x0900, 0x0909, 0x0912, 0x091a, 0x0928, + 0x093b, 0x0944, 0x0950, 0x0957, 0x0961, 0x0979, 0x0993, 0x0998, + 0x09b4, 0x09b8, 0x09bf, 0x09cd, 0x09d4, 0x09e1, 0x09ef, 0x09f7, + 0x09fc, 0x0a03, 0x0a18, 0x0a1e, 0x0a26, 0x0a30, 0x0a37, 0x0a3d, + 0x0a50, 0x0a6c, 0x0a74, 0x0a80, 0x0a89, 0x0aa4, 0x0aae, 0x0abf, + 0x0ace, 0x0ad6, 0x0add, 0x0aed, 0x0af2, 0x0af8, 0x0afe, 0x0b04, + // Entry 100 - 13F + 0x0b1d, 0x0b24, 0x0b2c, 0x0b3e, 0x0b45, 0x0b4c, 0x0b5a, 0x0b68, + 0x0b71, 0x0b7e, 0x0b8d, 0x0b9b, 0x0ba9, 0x0bb5, 0x0bc3, 0x0bca, + 0x0be1, 0x0bf8, 0x0c05, 0x0c12, 0x0c27, 0x0c34, 0x0c42, 0x0c4d, + 0x0c63, 0x0c6e, 0x0c74, 0x0c82, 0x0c8e, 0x0c94, 0x0ca1, 0x0cae, + 0x0cba, 0x0cc8, +} // Size: 604 bytes + +var mkRegionStr string = "" + // Size: 6027 bytes + "ОÑтров ÐÑенÑионÐндораОбединети ÐрапÑки ЕмиратиÐвганиÑтанÐнтигва и Барбуд" + + "аÐнгвилаÐлбанијаЕрменијаÐнголаÐнтарктикÐргентинаÐмериканÑка СамоаÐвÑтри" + + "јаÐвÑтралијаÐрубаОландÑки оÑтровиÐзербејџанБоÑна и ХерцеговинаБарбадоÑБ" + + "англадешБелгијаБуркина ФаÑоБугаријаБахреинБурундиБенинСвети ВартоломејБ" + + "ермудиБрунејБоливијаКарипÑка ХоландијаБразилБахамиБутанОÑтров БувеБоцва" + + "наБелоруÑијаБелизеКанадаКокоÑови (Килиншки) ОÑтровиКонго - КиншаÑаЦентр" + + "алноафриканÑка РепубликаКонго - БразавилШвајцаријаБрегот на Слоновата К" + + "оÑкаКукови ОÑтровиЧилеКамерунКинаКолумбијаОÑтров КлипертонКоÑтарикаКуба" + + "Зелен ’РтКураÑаоБожиќен ОÑтровКипарРепублика ЧешкаГерманијаДиего ГарÑиј" + + "аÐибутиДанÑкаДоминикаДоминиканÑка РепубликаÐлжирСеута и МелиљаЕквадорЕÑ" + + "тонијаЕгипетЗападна СахараЕритрејаШпанијаЕтиопијаЕвропÑка унијаФинÑкаФи" + + "џиФолкландÑки ОÑтровиМикронезијаФарÑки ОÑтровиФранцијаГабонОбединето Кр" + + "алÑтвоГренадаГрузијаФранцуÑка ГвајанаГернзиГанаГибралтарГренландГамбија" + + "ГвинејаГвадалупеЕкваторÑка ГвинејаГрцијаЈужна Ðорџија и Јужни Сендвички" + + " ОÑтровиГватемалаГвамГвинеја-БиÑауГвајанаХонг Конг С.Ð.Р КинаОÑтров Херд" + + " и ОÑтрови МакдоналдХондураÑХрватÑкаХаитиУнгаријаКанарÑки ОÑтровиИндонез" + + "ијаИрÑкаИзраелОÑтров МанИндијаБританÑка ИндоокеанÑка ТериторијаИракИран" + + "ИÑландИталијаÐерÑиЈамајкаЈорданЈапонијаКенијаКиргиÑтанКамбоџаКирибатиКо" + + "морÑки ОÑтровиСвети КриÑтофер и ÐевиÑСеверна КорејаЈужна КорејаКувајтКа" + + "јманÑки ОÑтровиКазахÑтанЛаоÑЛибанСвета ЛуцијаЛихтенштајнШри ЛанкаЛибери" + + "јаЛеÑотоЛитванијаЛукÑембургЛатвијаЛибијаМарокоМонакоМолдавијаЦрна ГораС" + + "ент МартинМадагаÑкарМаршалÑки ОÑтровиМакедонијаМалиМјанмар (Бурма)Монго" + + "лијаМакао С.Ð.Р КинаСеверни МаријанÑки ОÑтровиМартиникМавританијаМонÑер" + + "атМалтаМаврициуÑМалдивиМалавиМекÑикоМалезијаМозамбикÐамибијаÐова Каледо" + + "нијаÐигерÐорфолшки ОÑтровÐигеријаÐикарагваХоландијаÐорвешкаÐепалÐауруÐи" + + "уеÐов ЗеландОманПанамаПеруФранцуÑка ПолинезијаПапуа Ðова ГвинејаФилипин" + + "иПакиÑтанПолÑкаСент Пјер и МикеланПиткернÑки ОÑтровиПорторикоПалеÑтинÑк" + + "и територииПортугалијаПалауПарагвајКатарЗавиÑни земји во ОкеанијаРијуни" + + "онРоманијаСрбијаРуÑијаРуандаСаудиÑка ÐрабијаСоломонÑки ОÑтровиСејшелиСу" + + "данШведÑкаСингапурСвета ЕленаСловенијаСвалбард и Жан МејенСловачкаСиера" + + " ЛеонеСан МариноСенегалСомалијаСуринамЈужен СуданСао Томе и ПринÑипеЕл С" + + "алвадорСвети МартинСиријаСвазилендТриÑтан да КуњаОÑтрови Ð¢ÑƒÑ€ÐºÑ Ð¸ КајкоÑ" + + "ЧадФранцуÑки Јужни територииТогоТајландТаџикиÑтанТокелауИÑточен Тимор (" + + "Тимор ЛеÑте)ТуркмениÑтанТуниÑТонгаТурцијаТринидад и ТобагоТувалуТајванТ" + + "анзанијаУкраинаУгандаÐмериканÑки територии во ПацификотСоединети Ðмерик" + + "анÑки ДржавиУругвајУзбекиÑтанВатиканСвети ВинÑент и ГренадинитеВенецуел" + + "аБританÑки ДевÑтвени ОÑтровиÐмериканÑки ДевÑтвени ОÑтровиВиетнамВануату" + + "Ð’Ð°Ð»Ð¸Ñ Ð¸ ФутунаСамоаКоÑовоЈеменМајотЈужноафриканÑка РепубликаЗамбијаЗимб" + + "абвеÐепознат регионСветÐфрикаСеверна ÐмерикаЈужна ÐмерикаОкеанијаЗападн" + + "а ÐфрикаЦентрална ÐмерикаИÑточна ÐфрикаСеверна ÐфрикаСредна ÐфрикаЈужна" + + " ÐфрикаÐмерикиСеверна континентална ÐмерикаКарибиИÑточна ÐзијаЈужна Ðзиј" + + "аЈугоиÑточна ÐзијаЈужна ЕвропаÐвÑтралазијаМеланезијаМикронезиÑки регион" + + "ПолинезијаÐзијаЦентрална ÐзијаЗападна ÐзијаЕвропаИÑточна ЕвропаСеверна " + + "ЕвропаЗападна ЕвропаЛатинÑка Ðмерика" + +var mkRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, + 0x00bb, 0x00c7, 0x00d9, 0x00eb, 0x010c, 0x011c, 0x0130, 0x013a, + 0x0159, 0x016d, 0x0191, 0x01a1, 0x01b3, 0x01c1, 0x01d8, 0x01e8, + 0x01f6, 0x0204, 0x020e, 0x022d, 0x023b, 0x0247, 0x0257, 0x027a, + 0x0286, 0x0292, 0x029c, 0x02b1, 0x02bf, 0x02d3, 0x02df, 0x02eb, + 0x031d, 0x0338, 0x0371, 0x038e, 0x03a2, 0x03d1, 0x03ec, 0x03f4, + 0x0402, 0x040a, 0x041c, 0x043b, 0x044d, 0x0455, 0x0467, 0x0475, + 0x0490, 0x049a, 0x04b7, 0x04c9, 0x04e2, 0x04ee, 0x04fa, 0x050a, + // Entry 40 - 7F + 0x0535, 0x053f, 0x0559, 0x0567, 0x0577, 0x0583, 0x059e, 0x05ae, + 0x05bc, 0x05cc, 0x05e7, 0x05f3, 0x05fb, 0x0620, 0x0636, 0x0651, + 0x0661, 0x066b, 0x068e, 0x069c, 0x06aa, 0x06cb, 0x06d7, 0x06df, + 0x06f1, 0x0701, 0x070f, 0x071d, 0x072f, 0x0752, 0x075e, 0x07a7, + 0x07b9, 0x07c1, 0x07da, 0x07e8, 0x080b, 0x0845, 0x0855, 0x0865, + 0x086f, 0x087f, 0x089e, 0x08b2, 0x08bc, 0x08c8, 0x08db, 0x08e7, + 0x0927, 0x092f, 0x0937, 0x0943, 0x0951, 0x095b, 0x0969, 0x0975, + 0x0985, 0x0991, 0x09a3, 0x09b1, 0x09c1, 0x09e0, 0x0a0b, 0x0a26, + // Entry 80 - BF + 0x0a3d, 0x0a49, 0x0a6a, 0x0a7c, 0x0a84, 0x0a8e, 0x0aa5, 0x0abb, + 0x0acc, 0x0adc, 0x0ae8, 0x0afa, 0x0b0e, 0x0b1c, 0x0b28, 0x0b34, + 0x0b40, 0x0b52, 0x0b63, 0x0b78, 0x0b8c, 0x0bad, 0x0bc1, 0x0bc9, + 0x0be4, 0x0bf6, 0x0c12, 0x0c44, 0x0c54, 0x0c6a, 0x0c7a, 0x0c84, + 0x0c96, 0x0ca4, 0x0cb0, 0x0cbe, 0x0cce, 0x0cde, 0x0cee, 0x0d0b, + 0x0d15, 0x0d34, 0x0d44, 0x0d56, 0x0d68, 0x0d78, 0x0d82, 0x0d8c, + 0x0d94, 0x0da7, 0x0daf, 0x0dbb, 0x0dc3, 0x0dea, 0x0e0c, 0x0e1c, + 0x0e2c, 0x0e38, 0x0e5b, 0x0e7e, 0x0e90, 0x0eb9, 0x0ecf, 0x0ed9, + // Entry C0 - FF + 0x0ee9, 0x0ef3, 0x0f22, 0x0f32, 0x0f42, 0x0f4e, 0x0f5a, 0x0f66, + 0x0f85, 0x0fa8, 0x0fb6, 0x0fc0, 0x0fce, 0x0fde, 0x0ff3, 0x1005, + 0x102a, 0x103a, 0x104f, 0x1062, 0x1070, 0x1080, 0x108e, 0x10a3, + 0x10c6, 0x10db, 0x10f2, 0x10fe, 0x1110, 0x112c, 0x1155, 0x115b, + 0x118b, 0x1193, 0x11a1, 0x11b5, 0x11c3, 0x11f4, 0x120c, 0x1216, + 0x1220, 0x122e, 0x124e, 0x125a, 0x1266, 0x1278, 0x1286, 0x1292, + 0x12d3, 0x1309, 0x1317, 0x132b, 0x1339, 0x136c, 0x137e, 0x13b2, + 0x13ea, 0x13f8, 0x1406, 0x1420, 0x142a, 0x1436, 0x1440, 0x144a, + // Entry 100 - 13F + 0x147b, 0x1489, 0x1499, 0x14b6, 0x14be, 0x14ca, 0x14e7, 0x1500, + 0x1510, 0x152b, 0x154c, 0x1567, 0x1582, 0x159b, 0x15b2, 0x15c0, + 0x15f8, 0x1604, 0x161d, 0x1632, 0x1653, 0x166a, 0x1682, 0x1696, + 0x16bb, 0x16cf, 0x16d9, 0x16f6, 0x170f, 0x171b, 0x1736, 0x1751, + 0x176c, 0x178b, +} // Size: 604 bytes + +var mlRegionStr string = "" + // Size: 9220 bytes + "അസൻഷൻ à´¦àµà´µàµ€à´ªàµà´…à´¨àµà´±àµ‹à´±à´¯àµà´£àµˆà´±àµà´±à´¡àµ അറബൠഎമിറൈറàµà´±àµ\u200cà´¸àµà´…à´«àµ\u200cഗാനിസàµà´¥à´¾àµ»à´†àµ»à´±à´¿" + + "à´—àµà´µà´¯àµà´‚ ബർബàµà´¡à´¯àµà´‚ആൻഗàµà´µà´¿à´²àµà´²à´…ൽബേനിയഅർമേനിയഅംഗോളഅൻറാർടàµà´Ÿà´¿à´•àµà´•à´…ർജൻറീനഅമേരികàµà´•" + + "ൻ സമോവഓസàµà´Ÿàµà´°à´¿à´¯à´“à´¸àµ\u200cà´Ÿàµà´°àµ‡à´²à´¿à´¯à´…റൂബഅലൻഡൠദàµà´µàµ€à´ªàµà´•àµ¾à´…സർബൈജാൻബോസàµà´¨à´¿à´¯à´¯àµà´‚ ഹെർ" + + "സഗോവിനയàµà´‚ബാർബഡോസàµà´¬à´‚à´—àµà´²à´¾à´¦àµ‡à´¶àµà´¬àµ†àµ½à´œà´¿à´¯à´‚à´¬àµàµ¼à´•àµà´•à´¿à´¨à´¾ ഫാസോബൾഗേറിയബഹàµà´±à´¿àµ»à´¬à´±àµà´£àµà´Ÿà´¿à´¬àµ†" + + "നിൻസെനàµà´±àµ ബാർതàµà´¤à´²à´®à´¿à´¬àµ¼à´®àµà´¡à´¬àµà´°àµ‚ണൈബൊളീവിയബൊണെയàµàµ¼, സിനàµà´±àµ à´¯àµà´¸àµà´±àµà´±àµ‡à´·àµà´¯à´¸àµ, സാ" + + "à´¬ à´Žà´¨àµà´¨à´¿à´µà´¬àµà´°à´¸àµ€àµ½à´¬à´¹à´¾à´®à´¾à´¸àµà´­àµ‚à´Ÿàµà´Ÿà´¾àµ»à´¬àµ—വെടàµà´Ÿàµ à´¦àµà´µàµ€à´ªàµà´¬àµ‹à´Ÿàµà´¸àµà´µà´¾à´¨à´¬àµ†à´²à´±àµ‚à´¸àµà´¬àµ†à´²àµ€à´¸àµà´•à´¾à´¨à´¡à´•" + + "ോകàµà´•à´¸àµ (കീലിംഗàµ) à´¦àµà´µàµ€à´ªàµà´•àµ¾à´•àµ‹à´‚ഗോ - കിൻഷാസസെൻടàµà´°àµ½ ആഫàµà´°à´¿à´•àµà´•àµ» റിപàµà´ªà´¬àµà´²à´¿à´•àµà´•àµ‹" + + "ംഗോ - à´¬àµà´°à´¾à´¸à´µà´¿à´²àµà´²à´¿à´¸àµà´µà´¿à´±àµà´±àµà´¸àµ¼à´²à´¾àµ»à´¡àµà´•àµ‹à´Ÿàµà´Ÿàµ à´¡à´¿ വാർകàµà´•àµà´•àµ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´šà´¿à´²à´¿à´•à´¾à´®à´±àµ‚ൺ" + + "ചൈനകൊളംബിയകàµà´²à´¿à´ªàµà´ªàµ†àµ¼à´Ÿàµà´Ÿàµ» à´¦àµà´µàµ€à´ªàµà´•àµ‹à´¸àµà´±àµà´±à´±à´¿à´•àµà´•à´•àµà´¯àµ‚ബകേപàµà´ªàµ വെർദെകàµà´±à´¾à´•à´¾à´µàµ‹à´•àµà´°" + + "à´¿à´¸àµà´®à´¸àµ à´¦àµà´µàµ€à´ªàµà´¸àµˆà´ªàµà´°à´¸àµà´šàµ†à´•àµà´•àµ റിപàµà´ªà´¬àµà´²à´¿à´•àµà´œàµ¼à´®à´¨à´¿à´¡àµ€à´—ോ à´—àµà´°à´¾à´·àµà´¯à´¦à´¿à´œà´¿à´¬àµ—à´Ÿàµà´Ÿà´¿à´¡àµ†àµ»à´®à´¾" + + "ർകàµà´•àµà´¡àµŠà´®à´¿à´¨à´¿à´•àµà´•à´¡àµŠà´®à´¿à´¨à´¿à´•àµà´•àµ» റിപàµà´ªà´¬àµà´²à´¿à´•àµà´…ൾജീരിയസെയൂതàµà´¤ ആൻഡൠമെലിയഇകàµà´µà´¡àµ‹àµ¼à´Žà´¸" + + "àµà´±àµà´±àµ‹à´£à´¿à´¯\u200dഈജിപàµà´¤àµà´ªà´¶àµà´šà´¿à´® സഹാറഎറിതàµà´°à´¿à´¯à´¸àµ\u200cപെയിൻഎതàµà´¯àµ‹à´ªàµà´¯à´¯àµ‚റോപàµà´¯àµ» " + + "യൂണിയൻഫിൻലാൻഡàµà´«à´¿à´œà´¿à´«à´¾à´•àµà´•àµ\u200cലാനàµà´±àµ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®àµˆà´•àµà´°àµ‹à´¨àµ‡à´·àµà´¯à´«à´±àµ‹ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´«àµ" + + "രാൻസàµà´—ാബൺയàµà´£àµˆà´±àµà´±à´¡àµ à´•à´¿à´‚à´—àµà´¡à´‚à´—àµà´°à´¨àµ‡à´¡à´œàµ‹àµ¼à´œàµà´œà´¿à´¯à´«àµà´°à´žàµà´šàµ ഗയാനഗേൺസിഘാനജിബàµà´°à´¾àµ¾à´Ÿàµà´Ÿ" + + "ർഗàµà´°àµ€àµ»à´²à´¾àµ»à´±àµà´—ാംബിയഗിനിയഗàµà´µà´¾à´¡à´²àµ‚à´ªàµà´ªàµà´‡à´•àµà´µà´±àµà´±àµ‹à´±à´¿à´¯àµ½ ഗിനിയഗàµà´°àµ€à´¸àµà´¦à´•àµà´·à´¿à´£ ജോർജàµà´œ" + + "ിയയàµà´‚ ദകàµà´·à´¿à´£ സാൻഡàµ\u200cവിചàµà´šàµ à´¦àµà´µàµ€à´ªàµà´•à´³àµà´‚à´—àµà´µà´¾à´Ÿàµà´Ÿà´¿à´®à´¾à´²à´—àµà´µà´¾à´‚ഗിനിയ-ബിസൗഗയാ" + + "നഹോങàµà´•àµ‹à´™àµà´™àµ (SAR) ചൈനഹിയേർഡàµà´‚ മകàµ\u200cഡൊണാൾഡൠദàµà´µàµ€à´ªàµà´•à´³àµà´‚ഹോണàµà´Ÿàµà´±à´¾à´¸àµà´•àµà´°" + + "ൊയേഷàµà´¯à´¹àµ†à´¯àµà´¤à´¿à´¹à´‚ഗറികാനറി à´¦àµà´µàµ€à´ªàµà´•àµ¾à´‡à´¨àµà´¤àµ‹à´¨àµ‡à´·àµà´¯à´…യർലാൻഡàµà´‡à´¸àµà´°à´¾à´¯àµ‡àµ½à´àµ½ ഓഫൠമാൻഇനàµ" + + "à´¤àµà´¯à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ ഇനàµà´¤àµà´¯àµ» മഹാസമàµà´¦àµà´° à´ªàµà´°à´¦àµ‡à´¶à´‚ഇറാഖàµà´‡à´±à´¾àµ»à´à´¸àµ\u200cലാനàµà´±àµà´‡à´±àµà´±à´²à´¿à´œ" + + "േഴàµà´¸à´¿à´œà´®àµˆà´•àµà´•à´œàµ‹àµ¼à´¦àµà´¦à´¾àµ»à´œà´ªàµà´ªà´¾àµ»à´•àµ†à´¨à´¿à´¯à´•à´¿àµ¼à´—à´¿à´¸àµà´¥à´¾àµ»à´•à´‚ബോഡിയകിരിബാടàµà´Ÿà´¿à´•àµ‹à´®àµŠà´±àµ‹à´¸àµà´¸àµ†à´¨àµà´±" + + "ൠകിറàµà´±àµ\u200cà´¸àµà´‚ നെവിസàµà´‚ഉതàµà´¤à´°à´•àµŠà´±à´¿à´¯à´¦à´•àµà´·à´¿à´£à´•àµŠà´±à´¿à´¯à´•àµà´µàµˆà´±àµà´±àµà´•àµ‡à´®à´¾àµ» à´¦àµà´µàµ€à´ªàµà´•àµ¾à´•à´¸" + + "ാഖിസàµà´¥à´¾àµ»à´²à´¾à´µàµ‹à´¸àµà´²àµ†à´¬à´¨àµ»à´¸àµ†àµ»à´±àµ ലൂസിയലിചàµà´šàµºà´¸àµà´±àµà´±àµˆàµ»à´¶àµà´°àµ€à´²à´™àµà´•à´²àµˆà´¬àµ€à´°à´¿à´¯à´²àµ†à´¸àµ‹à´¤àµ‹à´²à´¿à´¤àµà´µà´¾" + + "നിയലകàµà´¸à´‚ബർഗàµà´²à´¾à´±àµà´±àµà´µà´¿à´¯à´²à´¿à´¬à´¿à´¯à´®àµŠà´±àµ‹à´•àµà´•àµŠà´®àµŠà´£à´¾à´•àµà´•àµ‹à´®àµ¾à´¡àµ‹à´µà´®àµ‹à´£àµà´Ÿàµ†à´¨àµ†à´—àµà´°àµ‹à´¸àµ†àµ»à´±àµ മാർടàµ" + + "ടിൻമഡഗാസàµà´•àµ¼à´®à´¾àµ¼à´·àµ½\u200d\u200d à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®à´¾à´¸à´¿à´¡àµ‹à´£à´¿à´¯à´®à´¾à´²à´¿à´®àµà´¯à´¾àµ»à´®à´¾àµ¼ (ബർമàµà´®)മംഗോ" + + "ളിയമകàµà´•à´¾à´µàµ (SAR) ചൈനഉതàµà´¤à´° മറിയാനാ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´®à´¾àµ¼à´Ÿàµà´Ÿà´¿à´¨à´¿à´•àµà´•àµà´®àµ—റിറàµà´±à´¾à´¨à´¿à´¯à´®àµŠà´£àµ" + + "ടെസരതàµà´¤àµà´®à´¾àµ¾à´Ÿàµà´Ÿà´®àµ—റീഷàµà´¯à´¸àµà´®à´¾à´²à´¿à´¦àµà´µàµ€à´ªàµà´®à´²à´¾à´µà´¿à´®àµ†à´•àµà´¸à´¿à´•àµà´•àµ‹à´®à´²àµ‡à´·àµà´¯à´®àµŠà´¸à´¾à´‚ബികàµà´•àµà´¨à´®àµ€à´¬à´¿" + + "യപàµà´¤à´¿à´¯ കാലിഡോണിയനൈജർനോർഫോകൠദàµà´µàµ€à´ªàµà´¨àµˆà´œàµ€à´°à´¿à´¯à´¨à´¿à´•àµà´•à´°à´¾à´—àµà´µà´¨àµ†à´¤àµ¼à´²à´¾àµ»à´¡àµ\u200cà´¸àµà´¨àµ‹" + + "ർവെനേപàµà´ªà´¾àµ¾à´¨àµ—à´±àµà´¨àµà´¯àµ‚യിനàµà´¯àµ‚സിലാൻറàµà´’മാൻപനാമപെറàµà´«àµà´°à´žàµà´šàµ പോളിനേഷàµà´¯à´ªà´¾à´ªàµà´ªàµà´µ à´¨àµ" + + "യൂ ഗിനിയഫിലിപàµà´ªàµˆàµ»à´¸àµà´ªà´¾à´•àµà´•à´¿à´¸àµà´¥à´¾àµ»à´ªàµ‹à´³à´£àµà´Ÿàµà´¸àµ†à´¨àµà´±àµ പിയറിയàµà´‚ മികàµà´•à´²à´£àµà´‚പിറàµà´±àµ" + + "\u200cകെയàµ\u200cൻ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´ªàµà´¯àµ‚ർടàµà´Ÿàµ‹ റികàµà´•àµ‹à´ªà´¾à´²à´¸àµ\u200cതീൻ à´ªàµà´°à´¦àµ‡à´¶à´™àµà´™àµ¾à´ªàµ‹àµ¼à´šàµ" + + "à´šàµà´—ൽപലാവàµà´ªà´°à´¾à´—àµà´µàµ‡à´–à´¤àµà´¤àµ¼à´¦àµà´µàµ€à´ªà´¸à´®àµ‚ഹംറീയൂണിയൻറൊമാനിയസെർബിയറഷàµà´¯à´±àµà´µà´¾à´£àµà´Ÿà´¸àµ—ദി à´…à´±" + + "േബàµà´¯à´¸àµ‹à´³à´®àµ»\u200d à´¦àµà´µàµ€à´ªàµà´•àµ¾à´¸àµ†à´¯àµ\u200cഷെൽസàµà´¸àµà´¡à´¾àµ»à´¸àµà´µàµ€à´¡àµ»à´¸à´¿à´‚à´—à´ªàµà´ªàµàµ¼à´¸àµ†àµ»à´±àµ ഹെലീന" + + "à´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯à´¸àµà´µà´¾àµ½à´¬à´¾à´¡àµà´‚ ജാൻ മായേനàµà´‚à´¸àµà´²àµ‹à´µà´¾à´•àµà´¯à´¸à´¿à´¯àµ†à´± ലിയോൺസാൻ മറിനോസെനഗൽസോമാല" + + "ിയസàµà´°à´¿à´¨àµ†à´¯à´¿à´‚ദകàµà´·à´¿à´£ à´¸àµà´¡à´¾àµ»à´¸à´¾à´µàµ‹ ടോമàµà´‚ à´ªàµà´°à´¿àµ»à´¸à´¿à´ªàµ†à´¯àµà´‚എൽ സാൽവദോർസിനàµà´±àµ മാർടàµà´Ÿàµ†" + + "ൻസിറിയസàµà´µà´¾à´¸à´¿à´²à´¾àµ»à´±àµà´Ÿàµà´°à´¸àµà´±àµà´±àµ» à´¡ കൂനടർകàµà´•àµ\u200cà´¸àµà´‚ കെയàµ\u200cà´•àµà´•àµ‹ à´¦àµà´µàµ€à´ªàµà´•" + + "à´³àµà´‚ഛാഡàµà´«àµà´°à´žàµà´šàµ ദകàµà´·à´¿à´£ ഭൂപàµà´°à´¦àµ‡à´¶à´‚ടോഗോതായàµ\u200cലാൻഡàµà´¤à´¾à´œà´¿à´•àµà´•à´¿à´¸àµà´¥à´¾àµ»à´Ÿàµ‹à´•àµà´•àµ†à´²" + + "ൂതിമോർ-ലെസàµà´±àµà´±àµ†à´¤àµàµ¼à´•àµà´•àµà´®àµ†à´¨à´¿à´¸àµà´¥à´¾àµ»à´Ÿàµà´£àµ€à´·àµà´¯à´Ÿàµ‹à´‚à´—à´¤àµàµ¼à´•àµà´•à´¿à´Ÿàµà´°à´¿à´¨à´¿à´¡à´¾à´¡àµà´‚ à´Ÿàµà´¬à´¾à´—ോയàµà´‚" + + "à´Ÿàµà´µà´¾à´²àµà´¤à´¾à´¯àµ\u200cവാൻടാൻസാനിയഉകàµà´°àµ†à´¯àµ\u200cൻഉഗാണàµà´Ÿà´¯àµ.à´Žà´¸àµ. à´¦àµà´µàµ€à´ªà´¸à´®àµ‚ഹങàµà´™àµ¾à´…à´®" + + "േരികàµà´•àµ» à´à´•àµà´¯à´¨à´¾à´Ÿàµà´•àµ¾à´‰à´±àµà´—àµà´µàµ‡à´‰à´¸àµ\u200cബെകàµà´•à´¿à´¸àµà´¥à´¾àµ»à´µà´¤àµà´¤à´¿à´•àµà´•à´¾àµ»à´¸àµ†à´¨àµà´±àµ വിൻസെനàµà´±" + + "àµà´‚ à´—àµà´°à´¨àµ†à´¡àµˆàµ»à´¸àµà´‚വെനിസàµà´µàµ‡à´²à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ വെർജിൻ à´¦àµà´µàµ€à´ªàµà´•àµ¾à´¯àµ.à´Žà´¸àµ. വെർജിൻ à´¦àµà´µàµ€à´ªàµ" + + "കൾവിയറàµà´±àµà´¨à´¾à´‚വനàµà´µà´¾à´¤àµà´µà´¾à´²à´¿à´¸àµ ആനàµà´±àµ à´«àµà´¯àµ‚à´šàµà´¯àµà´¨à´¸à´®àµ‹à´µà´•àµŠà´¸àµ‹à´µàµŠà´¯àµ†à´®àµ»à´®à´¯àµ‹à´Ÿàµà´Ÿà´¿à´¦à´•àµà´·à´¿à´£à´¾à´«" + + "àµà´°à´¿à´•àµà´•à´¸à´¾à´‚ബിയസിംബാബàµ\u200cവേഅജàµà´žà´¾à´¤ à´ªàµà´°à´¦àµ‡à´¶à´‚ലോകംആഫàµà´°à´¿à´•àµà´•à´µà´Ÿà´•àµà´•àµ‡ അമേരികàµà´•à´¤àµ†" + + "à´•àµà´•àµ‡ അമേരികàµà´•à´“à´·àµà´¯à´¾à´¨à´¿à´¯à´ªà´¶àµà´šà´¿à´® ആഫàµà´°à´¿à´•àµà´•à´®à´¦àµà´§àµà´¯à´…മേരികàµà´•à´•à´¿à´´à´•àµà´•àµ» ആഫàµà´°à´¿à´•àµà´•à´‰à´¤àµà´¤" + + "രാഫàµà´°à´¿à´•àµà´•à´®à´¦àµà´§àµà´¯à´†à´«àµà´°à´¿à´•àµà´•à´¤àµ†à´•àµà´•àµ‡ ആഫàµà´°à´¿à´•àµà´•à´…മേരികàµà´•à´•àµ¾à´µà´Ÿà´•àµà´•àµ» അമേരികàµà´•à´•à´°àµ€à´¬à´¿à´¯àµ»" + + "à´•à´¿à´´à´•àµà´•àµ» à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ‡ à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ-à´•à´¿à´´à´•àµà´•àµ» à´à´·àµà´¯à´¤àµ†à´•àµà´•àµ‡ യൂറോപàµà´ªàµà´“à´¸àµ\u200cà´Ÿàµà´°àµ‡" + + "ലിയയàµà´‚ à´¨àµà´¯àµ‚സിലാൻഡàµà´‚മെലനേഷàµà´¯à´®àµˆà´•àµà´°àµ‹à´¨àµ‡à´·àµà´¯àµ» à´ªàµà´°à´¦àµ‡à´¶à´‚പോളിനേഷàµà´¯à´à´·àµà´¯à´®à´¦àµà´§àµà´¯àµ‡à´·àµà´¯" + + "പശàµà´šà´¿à´®àµ‡à´·àµà´¯à´¯àµ‚റോപàµà´ªàµà´•à´¿à´´à´•àµà´•àµ» യൂറോപàµà´ªàµà´µà´Ÿà´•àµà´•àµ‡ യൂറോപàµà´ªàµà´ªà´¶àµà´šà´¿à´® യൂറോപàµà´ªàµà´²à´¾à´±àµà´±à´¿" + + "നമേരികàµà´•" + +var mlRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0022, 0x0034, 0x0081, 0x00a8, 0x00df, 0x00fa, 0x010f, + 0x0124, 0x0133, 0x0157, 0x016c, 0x0194, 0x01ac, 0x01cd, 0x01d9, + 0x0201, 0x0219, 0x025c, 0x0274, 0x0292, 0x02a7, 0x02cf, 0x02e4, + 0x02f6, 0x030b, 0x031a, 0x0348, 0x0357, 0x0369, 0x037e, 0x03ed, + 0x03ff, 0x0414, 0x0429, 0x0454, 0x046f, 0x0484, 0x0496, 0x04a2, + 0x04e8, 0x050c, 0x055f, 0x0592, 0x05bf, 0x05e2, 0x060d, 0x0619, + 0x062b, 0x0634, 0x0649, 0x0683, 0x06a7, 0x06b6, 0x06d8, 0x06f0, + 0x071e, 0x0733, 0x0767, 0x0776, 0x0798, 0x07b6, 0x07d4, 0x07ef, + // Entry 40 - 7F + 0x082f, 0x0844, 0x0876, 0x088b, 0x08ac, 0x08c1, 0x08e0, 0x08f8, + 0x0910, 0x0928, 0x0953, 0x096b, 0x0977, 0x09b7, 0x09d8, 0x09fa, + 0x0a0f, 0x0a1b, 0x0a4c, 0x0a5e, 0x0a76, 0x0a98, 0x0aa7, 0x0ab0, + 0x0ad1, 0x0aef, 0x0b01, 0x0b10, 0x0b31, 0x0b65, 0x0b77, 0x0c02, + 0x0c23, 0x0c32, 0x0c4e, 0x0c5a, 0x0c88, 0x0ce1, 0x0cff, 0x0d1a, + 0x0d2c, 0x0d3b, 0x0d63, 0x0d81, 0x0d99, 0x0db1, 0x0dcb, 0x0ddd, + 0x0e43, 0x0e52, 0x0e5e, 0x0e7c, 0x0e8e, 0x0ea0, 0x0eb2, 0x0eca, + 0x0edc, 0x0eeb, 0x0f09, 0x0f1e, 0x0f3c, 0x0f54, 0x0f9b, 0x0fb9, + // Entry 80 - BF + 0x0fda, 0x0ff2, 0x101a, 0x1038, 0x104a, 0x1059, 0x1078, 0x109f, + 0x10b7, 0x10cc, 0x10de, 0x10f9, 0x1114, 0x112f, 0x113e, 0x1156, + 0x116e, 0x117d, 0x11a1, 0x11c9, 0x11e1, 0x120f, 0x122a, 0x1236, + 0x1260, 0x1275, 0x129a, 0x12d8, 0x12ff, 0x1320, 0x1344, 0x1356, + 0x1371, 0x138f, 0x139e, 0x13bc, 0x13ce, 0x13ef, 0x1401, 0x142c, + 0x1438, 0x1460, 0x1475, 0x1493, 0x14b7, 0x14c6, 0x14db, 0x14e7, + 0x14f9, 0x151a, 0x1526, 0x1532, 0x153e, 0x156f, 0x15a1, 0x15c2, + 0x15e3, 0x15f8, 0x163f, 0x167f, 0x16ad, 0x16e7, 0x1702, 0x1711, + // Entry C0 - FF + 0x1726, 0x1735, 0x1753, 0x176b, 0x1780, 0x1792, 0x179e, 0x17b3, + 0x17d2, 0x17fd, 0x181b, 0x182a, 0x183c, 0x1857, 0x1876, 0x1891, + 0x18cf, 0x18ea, 0x1909, 0x1922, 0x1931, 0x1946, 0x1961, 0x1983, + 0x19c4, 0x19e0, 0x1a0b, 0x1a1a, 0x1a3b, 0x1a64, 0x1abd, 0x1ac9, + 0x1b0d, 0x1b19, 0x1b37, 0x1b5e, 0x1b76, 0x1b9e, 0x1bce, 0x1be3, + 0x1bef, 0x1c04, 0x1c41, 0x1c53, 0x1c6b, 0x1c83, 0x1c9e, 0x1cb0, + 0x1ce9, 0x1d23, 0x1d38, 0x1d65, 0x1d83, 0x1dd6, 0x1df1, 0x1e3b, + 0x1e78, 0x1e96, 0x1eab, 0x1ee9, 0x1ef5, 0x1f07, 0x1f13, 0x1f28, + // Entry 100 - 13F + 0x1f52, 0x1f64, 0x1f82, 0x1faa, 0x1fb6, 0x1fce, 0x1ff9, 0x2024, + 0x203c, 0x2067, 0x2091, 0x20bf, 0x20e6, 0x2110, 0x213b, 0x2159, + 0x2184, 0x2199, 0x21bb, 0x21da, 0x220f, 0x223a, 0x2289, 0x22a1, + 0x22db, 0x22f6, 0x2302, 0x2320, 0x233e, 0x2356, 0x2384, 0x23af, + 0x23da, 0x2404, +} // Size: 604 bytes + +var mnRegionStr string = "" + // Size: 5487 bytes + "ÐÑкенÑион ÐралÐндорраÐрабын ÐÑгдÑÑн ЭмиратÐфганиÑтанÐнтигуа ба БарбудаÐн" + + "гилаÐлбаниÐрменÐнголÐнтарктикÐргентинÐмерикийн СамоаÐвÑтриÐвÑтралиÐруба" + + "Ðландын ÐрлуудÐзербайжанБоÑни ХерцеговинБарбадоÑБангладешБелгиБуркина Ñ„" + + "аÑоБолгарБахрейнБурундиБенинСент БартельмиБермудБрунейБоливиКарибын Ðид" + + "ерландБразилБагамБутанБуветын ÐрлуудБотÑванаБеларуÑÐ‘ÐµÐ»Ð¸Ð·ÐšÐ°Ð½Ð°Ð´ÐšÐ¾ÐºÐ¾Ñ (Кий" + + "линг) ÐрлуудКонго-КиншаÑаТөв Ðфрикийн Бүгд Ðайрамдах УлÑКонго Браззавил" + + "ьШвейцариКот д’ИвуарКүүкийн ÐрлуудЧилиКамерунХÑтадКолумбКлиппертон Ðрал" + + "КоÑта РикаКубаКапе ВердеКуракаоЗул Сарын ÐралКипрБүгд Ðайрамдах Чех УлÑ" + + "ГерманДиего ГарÑиаДжибутиДаниДоминикБүгд Ðайрамдах ДоминиканÐлжирСеута " + + "ба МелильÑЭквадорЭÑтонЕгипетБаруун СахарЭритриИÑпаниЭтиопЕвропын Холбоо" + + "ФинландФижиФолькландын ÐÑ€Ð»ÑƒÑƒÐ´ÐœÐ¸ÐºÑ€Ð¾Ð½ÐµÐ·Ð¸Ð¤Ð°Ñ€Ð¾Ñ ÐрлуудФранцГабонИх БританиГ" + + "ренадаГүржФранцын ГайанаГернÑиГанаГибралтарГренландГамбиГвинейГваделупЭ" + + "кваторын ГвинейГрекӨмнөд Жоржиа ба Өмнөд СÑндвичийн ÐрлуудГватемалГуамГ" + + "виней-БиÑауГайанаБÐÐ¥ÐУ-ын ТуÑгай захиргааны Ð±Ò¯Ñ Ð¥Ð¾Ð½Ð³ КонгХÑрд болон Мак" + + "доналд ÐрлуудГондураÑХорватГаитиУнгарКанарын арлуудИндонезиИрландИзраил" + + "ьМÑн ÐралЭнÑÑ‚Ñ…ÑгБританийн харьÑа ЭнÑÑ‚Ñ…Ñгийн далай дахь нутаг дÑвÑгÑрүүд" + + "ИракИранИÑландИталиЖерÑиЯмайкЙорданЯпонКениКыргызÑтанКамбожКирибатиКомо" + + "роÑСент-ÐšÐ¸Ñ‚Ñ‚Ñ Ð±Ð° ÐевиÑХойд СолонгоÑӨмнөд СолонгоÑКувейтКайманы ÐрлуудКа" + + "захÑтанЛаоÑЛиванСент ЛюÑиаЛихтенштейнШри ЛанкаЛибериЛеÑотоЛитваЛюкÑембу" + + "ргЛатвиЛивиМароккоМонакоМолдавМонтенегроСент-МартинМадагаÑкарМаршаллын " + + "ÐрлуудМакедонМалиМьÑнмар (Бурма)МонголБÐÐ¥ÐУ-ын ТуÑгай захиргааны Ð±Ò¯Ñ ÐœÐ°" + + "каоХойд Марианы ÐрлуудМартиникМавританиМонтÑерратМальтаМавритуÑМальдивМ" + + "алавиМекÑикМалайзМозамбикÐÐ°Ð¼Ð¸Ð±Ð¸Ð¨Ð¸Ð½Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ð¸ÐигерÐорфолк ÐрлуудÐигериÐи" + + "карагуаÐидерландÐорвегиБалбаÐауруÐиуÑÐ¨Ð¸Ð½Ñ Ð—ÐµÐ»Ð°Ð½Ð´ÐžÐ¼Ð°Ð½ÐŸÐ°Ð½Ð°Ð¼ÐŸÐµÑ€ÑƒÐ¤Ñ€Ð°Ð½Ñ†Ñ‹Ð½ По" + + "линезПапуа Ð¨Ð¸Ð½Ñ Ð“Ð²Ð¸Ð½ÐµÐ¹Ð¤Ð¸Ð»Ð¸Ð¿Ð¿Ð¸Ð½ÐŸÐ°ÐºÐ¸ÑтанПольшСÑнт Пьер ба МикелонПиткÑрн " + + "ÐрлуудПуÑрто РикоПалеÑтины нутаг дÑвÑгÑрүүдПортугалПалауПарагвайКатарÐо" + + "мхон далайг тойрÑон ÑƒÐ»Ñ Ð¾Ñ€Ð½ÑƒÑƒÐ´Ð ÐµÑŽÐ½ÑŒÐ¾Ð½Ð ÑƒÐ¼Ñ‹Ð½Ð¡ÐµÑ€Ð±Ð¸ÐžÑ€Ð¾ÑРуандаСаудын ÐрабСол" + + "омоны ÐрлуудСейшелСуданШведСингапурСент ХеленаСловениСвалбард ба Ян Май" + + "енСловакСьерра-ЛеонеСан-МариноСенегалСомалиСуринамӨмнөд СуданСан-Томе б" + + "а ПринÑипиЭль СальвадорСинт МартенСириСвазиландТриÑтан да КуньÑТурк ба " + + "КайкоÑын ÐрлуудЧадФранцын өмнөд газар нутагТогоТайландТажикиÑтанТокелау" + + "Тимор-ЛеÑтеТуркмениÑтанТуниÑТонгаТуркТринидад ба ТобагоТувалуТайванТанз" + + "аниУкрайнУгандаÐÐУ-ын тойрÑон арлуудÐмерикийн ÐÑгдÑÑн УлÑУругвайУзбекиÑ" + + "танВатикан хот улÑСÑнт ВинÑÑнт ба ГренадинВенеÑуÑлБританийн Виржиний ÐÑ€" + + "луудÐÐУ-ын Виржиний ÐÑ€Ð»ÑƒÑƒÐ´Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð±Ð° ФутунаСамоаКоÑовоЙеме" + + "нМайоттеӨмнөд Ðфрик тивЗамбиЗимбабвеТодорхойгүйДÑлхийÐфрикХойд ÐмерикӨм" + + "нөд ÐмерикÐомхон далайн орнуудБаруун ÐфрикТөв ÐмерикЗүүн ÐфрикХойд Ðфри" + + "кТөв ÐфрикӨмнөд ÐфрикÐмерикХойд Ðмерик тивКарибынЗүүн ÐзиӨмнөд ÐзиЗүүн " + + "Өмнөд ÐзиӨмнөд ЕвропÐвÑтралиазиМеланезиМикронезийн бүÑПолинезÐзиТөв Ðзи" + + "Баруун ÐзиЕвропЗүүн ЕвропХойд ЕвропБаруун ЕвропЛатин Ðмерик" + +var mnRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001b, 0x0029, 0x0051, 0x0065, 0x0087, 0x0093, 0x009f, + 0x00a9, 0x00b3, 0x00c5, 0x00d5, 0x00f2, 0x00fe, 0x010e, 0x0118, + 0x0133, 0x0147, 0x0166, 0x0176, 0x0188, 0x0192, 0x01a9, 0x01b5, + 0x01c3, 0x01d1, 0x01db, 0x01f6, 0x0202, 0x020e, 0x021a, 0x023b, + 0x0247, 0x0251, 0x025b, 0x0276, 0x0286, 0x0294, 0x029e, 0x02a8, + 0x02d0, 0x02e9, 0x0323, 0x0342, 0x0352, 0x0368, 0x0383, 0x038b, + 0x0399, 0x03a3, 0x03af, 0x03cc, 0x03df, 0x03e7, 0x03fa, 0x0408, + 0x0422, 0x042a, 0x0453, 0x045f, 0x0476, 0x0484, 0x048c, 0x049a, + // Entry 40 - 7F + 0x04c8, 0x04d2, 0x04f0, 0x04fe, 0x0508, 0x0514, 0x052b, 0x0537, + 0x0543, 0x054d, 0x0568, 0x0576, 0x057e, 0x05a1, 0x05b3, 0x05ca, + 0x05d4, 0x05de, 0x05f1, 0x05ff, 0x0607, 0x0622, 0x062e, 0x0636, + 0x0648, 0x0658, 0x0662, 0x066e, 0x067e, 0x069d, 0x06a5, 0x06ee, + 0x06fe, 0x0706, 0x071d, 0x0729, 0x0773, 0x07a6, 0x07b6, 0x07c2, + 0x07cc, 0x07d6, 0x07f1, 0x0801, 0x080d, 0x081b, 0x082a, 0x0838, + 0x08a0, 0x08a8, 0x08b0, 0x08bc, 0x08c6, 0x08d0, 0x08da, 0x08e6, + 0x08ee, 0x08f6, 0x090a, 0x0916, 0x0926, 0x0934, 0x0957, 0x0970, + // Entry 80 - BF + 0x098b, 0x0997, 0x09b2, 0x09c4, 0x09cc, 0x09d6, 0x09e9, 0x09ff, + 0x0a10, 0x0a1c, 0x0a28, 0x0a32, 0x0a46, 0x0a50, 0x0a58, 0x0a66, + 0x0a72, 0x0a7e, 0x0a92, 0x0aa7, 0x0abb, 0x0ada, 0x0ae8, 0x0af0, + 0x0b0b, 0x0b17, 0x0b5a, 0x0b7e, 0x0b8e, 0x0ba0, 0x0bb4, 0x0bc0, + 0x0bd0, 0x0bde, 0x0bea, 0x0bf6, 0x0c02, 0x0c12, 0x0c1e, 0x0c37, + 0x0c41, 0x0c5c, 0x0c68, 0x0c7a, 0x0c8c, 0x0c9a, 0x0ca4, 0x0cae, + 0x0cb6, 0x0ccb, 0x0cd3, 0x0cdd, 0x0ce5, 0x0d02, 0x0d22, 0x0d32, + 0x0d42, 0x0d4c, 0x0d71, 0x0d8c, 0x0da1, 0x0dd3, 0x0de3, 0x0ded, + // Entry C0 - FF + 0x0dfd, 0x0e07, 0x0e43, 0x0e51, 0x0e5b, 0x0e65, 0x0e6d, 0x0e79, + 0x0e8e, 0x0eab, 0x0eb7, 0x0ec1, 0x0ec9, 0x0ed9, 0x0eee, 0x0efc, + 0x0f21, 0x0f2d, 0x0f44, 0x0f57, 0x0f65, 0x0f71, 0x0f7f, 0x0f94, + 0x0fb9, 0x0fd2, 0x0fe7, 0x0fef, 0x1001, 0x101f, 0x104a, 0x1050, + 0x107f, 0x1087, 0x1095, 0x10a9, 0x10b7, 0x10cc, 0x10e4, 0x10ee, + 0x10f8, 0x1100, 0x1122, 0x112e, 0x113a, 0x1148, 0x1154, 0x1160, + 0x1187, 0x11af, 0x11bd, 0x11d1, 0x11ed, 0x121a, 0x122a, 0x125a, + 0x1283, 0x1291, 0x129f, 0x12bd, 0x12c7, 0x12d3, 0x12dd, 0x12eb, + // Entry 100 - 13F + 0x1307, 0x1311, 0x1321, 0x1337, 0x1343, 0x134d, 0x1362, 0x1379, + 0x139f, 0x13b6, 0x13c9, 0x13dc, 0x13ef, 0x1400, 0x1415, 0x1421, + 0x143d, 0x144b, 0x145a, 0x146b, 0x1485, 0x149a, 0x14b0, 0x14c0, + 0x14dd, 0x14eb, 0x14f1, 0x14fe, 0x1511, 0x151b, 0x152e, 0x1541, + 0x1558, 0x156f, +} // Size: 604 bytes + +var mrRegionStr string = "" + // Size: 8435 bytes + "अ\u200dॅसेनà¥à¤¶à¤¿à¤¯à¤¨ बेटअà¤à¤¡à¥‹à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब अमीरातअफगाणिसà¥à¤¤à¤¾à¤¨à¤…à¤à¤Ÿà¤¿à¤—à¥à¤µà¤¾ आणि बरà¥à¤¬" + + "à¥à¤¡à¤¾à¤…à¤à¤—à¥à¤µà¤¿à¤²à¤¾à¤…लà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤…रà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤…ंगोलाअंटारà¥à¤•à¥à¤Ÿà¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤‚टिनाअमेरिकन सामोआ" + + "ऑसà¥à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤‘सà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤…रà¥à¤¬à¤¾à¤…\u200dॅलà¤à¤¡ बेटेअà¤à¤°à¤¬à¥ˆà¤œà¤¾à¤¨à¤¬à¥‹à¤¸à¥à¤¨à¤¿à¤¯à¤¾ अणि हरà¥à¤œà¥‡à¤—ोव" + + "िनाबारà¥à¤¬à¤¾à¤¡à¥‹à¤¸à¤¬à¤¾à¤‚गलादेशबेलà¥à¤œà¤¿à¤¯à¤®à¤¬à¥à¤°à¥à¤•à¤¿à¤¨à¤¾ फासोबलà¥à¤—ेरियाबहारीनबà¥à¤°à¥à¤‚डीबेनिनस" + + "ेंट बारà¥à¤¥à¥‡à¤²à¥‡à¤®à¥€à¤¬à¤°à¥à¤®à¥à¤¡à¤¾à¤¬à¥à¤°à¥à¤¨à¥‡à¤ˆà¤¬à¥‹à¤²à¤¿à¤µà¥à¤¹à¤¿à¤¯à¤¾à¤•à¥…रिबियन नेदरलà¤à¤¡à¥à¤¸à¤¬à¥à¤°à¤¾à¤à¤¿à¤²à¤¬à¤¹à¤¾à¤®à¤¾à¤œà¤­" + + "ूतानबोउवेट बेटबोटà¥à¤¸à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबलिà¤à¤•à¥…नडाकोकोस (कीलिंग) बेटेकाà¤à¤—ो - किंश" + + "ासाकेंदà¥à¤°à¥€à¤¯ अफà¥à¤°à¤¿à¤•à¥€ पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•à¤•à¤¾à¤à¤—ो - बà¥à¤°à¤¾à¤à¤¾à¤µà¤¿à¤²à¥‡à¤¸à¥à¤µà¤¿à¤¤à¥à¤à¤°à¥à¤²à¤‚डआयवà¥à¤¹à¤°à¥€ क" + + "ोसà¥à¤Ÿà¤•à¥à¤• बेटेचिलीकॅमेरूनचीनकोलमà¥à¤¬à¤¿à¤¯à¤¾à¤•à¥à¤²à¤¿à¤ªà¤°à¤Ÿà¥‹à¤¨ बेटकोसà¥à¤Ÿà¤¾ रिकाकà¥à¤¯à¥‚बाकेप व" + + "à¥à¤¹à¤°à¥à¤¡à¥‡à¤•à¥à¤¯à¥à¤°à¤¾à¤¸à¤¾à¤“खà¥à¤°à¤¿à¤¸à¤®à¤¸ बेटसायपà¥à¤°à¤¸à¤à¥‡à¤• पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•à¤œà¤°à¥à¤®à¤¨à¥€à¤¦à¤¿à¤à¤—ो गारà¥à¤¸à¤¿à¤¯à¤¾à¤œà¤¿" + + "बौटीडेनà¥à¤®à¤¾à¤°à¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ पà¥à¤°à¤œà¤¾à¤¸à¤¤à¥à¤¤à¤¾à¤•à¤…लà¥à¤œà¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤¯à¥‚टा आणि मेलिलाइकà¥" + + "वाडोरà¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤‡à¤œà¤¿à¤ªà¥à¤¤à¤ªà¤¶à¥à¤šà¤¿à¤® सहाराà¤à¤°à¤¿à¤Ÿà¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤“पियायà¥à¤°à¥‹à¤ªà¥€à¤¯ संघफिनलं" + + "डफिजीफॉकलंड बेटेमायकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤«à¥‡à¤°à¥‹ बेटेफà¥à¤°à¤¾à¤¨à¥à¤¸à¤—ॅबॉनयà¥à¤¨à¤¾à¤¯à¤Ÿà¥‡à¤¡ किंगडमगà¥à¤°à¥‡à¤¨" + + "ेडाजॉरà¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¥‡à¤‚च गयानागà¥à¤µà¥‡à¤°à¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿà¤°à¤—à¥à¤°à¥€à¤¨à¤²à¤‚डगामà¥à¤¬à¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾" + + "डेलोउपेइकà¥à¤µà¥‡à¤Ÿà¥‹à¤°à¤¿à¤¯à¤² गिनीगà¥à¤°à¥€à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जॉरà¥à¤œà¤¿à¤¯à¤¾ आणि दकà¥à¤·à¤¿à¤£ सà¤à¤¡à¤µà¤¿à¤š बेटेगà¥à¤µà¤¾" + + "टेमालागà¥à¤†à¤®à¤—िनी-बिसाउगयानाहाà¤à¤—काà¤à¤— à¤à¤¸à¤à¤†à¤° चीनहरà¥à¤¡ आणि मॅकà¥à¤¡à¥‹à¤¨à¤¾à¤²à¥à¤¡ बेटेहो" + + "ंडà¥à¤°à¤¾à¤¸à¤•à¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤¹à¥ˆà¤¤à¥€à¤¹à¤‚गेरीकॅनरी बेटेइंडोनेशियाआयरà¥à¤²à¤‚डइसà¥à¤¤à¥à¤°à¤¾à¤‡à¤²à¤‡à¤¸à¥à¤²à¥‡ ऑफ " + + "मॅनभारतबà¥à¤°à¤¿à¤Ÿà¤¿à¤¶ हिंदी महासागर कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•à¤‡à¤°à¤¾à¤£à¤†à¤‡à¤¸à¤²à¤à¤¡à¤‡à¤Ÿà¤²à¥€à¤œà¤°à¥à¤¸à¥€à¤œà¤®à¥ˆà¤•à¤¾à¤œà¥‰à¤°à¥à¤¡à¤¨" + + "जपानकेनियाकिरगिà¤à¤¸à¥à¤¤à¤¾à¤¨à¤•à¤‚बोडियाकिरीबाटीकोमोरोजसेंट किटà¥à¤¸ आणि नेवà¥à¤¹à¤¿à¤¸à¤‰à¤¤à¥à¤¤" + + "र कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥‡à¤¤à¤•à¥‡à¤®à¤¨ बेटेकà¤à¤¾à¤•à¤¸à¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबनॉनसेंट लà¥à¤¯à¥‚सियालिक" + + "à¥à¤Ÿà¥‡à¤¨à¤¸à¥à¤Ÿà¤¾à¤‡à¤¨à¤¶à¥à¤°à¥€à¤²à¤‚कालायबेरियालेसोथोलिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤²à¤•à¥à¤à¥‡à¤‚बरà¥à¤—लातà¥à¤µà¤¿à¤¯à¤¾à¤²à¤¿à¤¬à¤¿à¤¯à¤¾à¤®à¥‹à¤°à¥‹" + + "कà¥à¤•à¥‹à¤®à¥‹à¤¨à¥…कोमोलà¥à¤¡à¥‹à¤µà¥à¤¹à¤¾à¤®à¥‹à¤‚टेनेगà¥à¤°à¥‹à¤¸à¥‡à¤‚ट मारà¥à¤Ÿà¤¿à¤¨à¤®à¤¾à¤¦à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² बेटेमॅसेडो" + + "नियामालीमà¥à¤¯à¤¾à¤¨à¤®à¤¾à¤° (बरà¥à¤®à¤¾)मंगोलियामकाओ à¤à¤¸à¤à¤†à¤° चीनउतà¥à¤¤à¤°à¥€ मारियाना बेटेमारà¥" + + "टिनिकमॉरिटानियामॉनà¥à¤Ÿà¥à¤¸à¥‡à¤°à¤¾à¤Ÿà¤®à¤¾à¤²à¥à¤Ÿà¤¾à¤®à¥‰à¤°à¤¿à¤¶à¤¸à¤®à¤¾à¤²à¤¦à¥€à¤µà¤®à¤²à¤¾à¤µà¥€à¤®à¥‡à¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¶à¤¿à¤¯à¤¾à¤®à¥‹à¤à¤¾à¤®à¥" + + "बिकनामिबियानà¥à¤¯à¥‚ कॅलेडोनियानाइजरनॉरफॉक बेटनायजेरियानिकारागà¥à¤µà¤¾à¤¨à¥‡à¤¦à¤°à¤²à¤à¤¡à¤¨à¥‰à¤°" + + "à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤³à¤¨à¤¾à¤‰à¤°à¥‚नीयूनà¥à¤¯à¥‚à¤à¥€à¤²à¤‚डओमानपनामापेरूफà¥à¤°à¥‡à¤‚च पॉलिनेशियापापà¥à¤† नà¥à¤¯à¥‚ गिन" + + "ीफिलिपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤ªà¥‹à¤²à¤‚डसेंट पियरे आणि मिकà¥à¤µà¥‡à¤²à¥‹à¤¨à¤ªà¤¿à¤Ÿà¤•à¥ˆà¤°à¥à¤¨ बेटेपà¥à¤¯à¥à¤à¤°à¥à¤¤à¥‹" + + " रिकोपॅलेसà¥à¤Ÿà¤¿à¤¨à¤¿à¤¯à¤¨ पà¥à¤°à¤¦à¥‡à¤¶à¤ªà¥‹à¤°à¥à¤¤à¥à¤—ालपलाऊपरागà¥à¤µà¥‡à¤•à¤¤à¤¾à¤°à¤†à¤‰à¤Ÿà¤²à¤¾à¤ˆà¤‚ग ओशनियारियà¥à¤¨à¤¿à¤¯à¤¨à¤°" + + "ोमानियासरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¤¶à¤¿à¤¯à¤¾à¤°à¤µà¤¾à¤‚डासौदी अरबसोलोमन बेटेसेशेलà¥à¤¸à¤¸à¥à¤¦à¤¾à¤¨à¤¸à¥à¤µà¥€à¤¡à¤¨à¤¸à¤¿à¤‚गापूर" + + "सेंट हेलेनासà¥à¤²à¥‹à¤µà¥à¤¹à¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤²à¤¬à¤°à¥à¤¡ आणि जान मायेनसà¥à¤²à¥‹à¤µà¥à¤¹à¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤à¤°à¤¾ लिओनसॅ" + + "न मरीनोसेनेगलसोमालियासà¥à¤°à¤¿à¤¨à¤¾à¤®à¤¦à¤•à¥à¤·à¤¿à¤£ सà¥à¤¦à¤¾à¤¨à¤¸à¤¾à¤“ टोम आणि पà¥à¤°à¤¿à¤‚सिपेअल सालà¥à¤µà¤¾" + + "डोरसिंट मारà¥à¤Ÿà¥‡à¤¨à¤¸à¥€à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤à¤¿à¤²à¤à¤¡à¤Ÿà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¨ दा कà¥à¤¨à¥à¤¹à¤¾à¤Ÿà¤°à¥à¤•à¥à¤¸ आणि कैकोस बेटेच" + + "ाडफà¥à¤°à¥‡à¤‚च दाकà¥à¤·à¤¿à¤£à¤¾à¤¤à¥à¤¯ पà¥à¤°à¤¦à¥‡à¤¶à¤Ÿà¥‹à¤—ोथायलंडताजिकिसà¥à¤¤à¤¾à¤¨à¤¤à¥‹à¤•à¥‡à¤²à¤¾à¤‰à¤ªà¥‚रà¥à¤µ तिमोरतà¥à¤°à¥" + + "कमेनिसà¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥‚निशियाटोंगातà¥à¤°à¥à¤•à¥€à¤¤à¥à¤°à¤¿à¤¨à¤¿à¤¦à¤¾à¤¦ आणि टोबॅगोटà¥à¤µà¤¾à¤²à¥à¤¤à¥ˆà¤µà¤¾à¤¨à¤Ÿà¤¾à¤‚à¤à¤¾à¤¨à¤¿à¤¯" + + "ायà¥à¤•à¥à¤°à¥‡à¤¨à¤¯à¥à¤—ांडायू.à¤à¤¸. आउटलाइंग बेटेयà¥à¤¨à¤¾à¤¯à¤Ÿà¥‡à¤¡ सà¥à¤Ÿà¥‡à¤Ÿà¥à¤¸à¤‰à¤°à¥à¤—à¥à¤µà¥‡à¤‰à¤à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤µ" + + "à¥à¤¹à¥…टिकन सिटीसेंट वà¥à¤¹à¤¿à¤¨à¥à¤¸à¥‡à¤‚ट आणि गà¥à¤°à¥‡à¤¨à¤¡à¤¾à¤‡à¤¨à¥à¤¸à¤µà¥à¤¹à¥‡à¤¨à¥‡à¤à¥à¤à¤²à¤¾à¤¬à¥à¤°à¤¿à¤Ÿà¤¿à¤¶ वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨" + + " बेटेयू.à¤à¤¸. वà¥à¤¹à¤°à¥à¤œà¤¿à¤¨ बेटेवà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¤µà¤¾à¤¨à¥à¤†à¤¤à¥à¤µà¤¾à¤²à¤¿à¤¸ आणि फà¥à¤¯à¥‚चूनासामोआकोसोवà¥à¤¹à¥‹" + + "येमेनमायोटà¥à¤Ÿà¥‡à¤¦à¤•à¥à¤·à¤¿à¤£ आफà¥à¤°à¤¿à¤•à¤¾à¤à¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤à¤¿à¤®à¥à¤¬à¤¾à¤¬à¥à¤µà¥‡à¤…जà¥à¤žà¤¾à¤¤ पà¥à¤°à¤¦à¥‡à¤¶à¤µà¤¿à¤¶à¥à¤µà¤†à¤«à¥à¤°à¤¿à¤•à¤¾" + + "उतà¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओशनियापशà¥à¤šà¤¿à¤® आफà¥à¤°à¤¿à¤•à¤¾à¤®à¤§à¥à¤¯ अमेरिकापूरà¥à¤µ आफà¥à¤°à¤¿" + + "काउतà¥à¤¤à¤° आफà¥à¤°à¤¿à¤•à¤¾à¤®à¤§à¥à¤¯ आफà¥à¤°à¤¿à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ आफà¥à¤°à¤¿à¤•à¤¾à¤…मेरिकाउतà¥à¤¤à¤°à¥€ अमेरिकाकॅरीबिय" + + "नपूरà¥à¤µ आशियादकà¥à¤·à¤¿à¤£ आशियादकà¥à¤·à¤¿à¤£ पूरà¥à¤µ आशियादकà¥à¤·à¤¿à¤£ यà¥à¤°à¥‹à¤ªà¤‘सà¥\u200dटà¥à¤°à¥‡à¤²à¥‡à¤¶" + + "ियामेलानेशियामायकà¥à¤°à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¨ पà¥à¤°à¤¦à¥‡à¤¶à¤ªà¥‰à¤²à¤¿à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤…शियामधà¥à¤¯ आशियापशà¥à¤šà¤¿à¤® आशिया" + + "यà¥à¤°à¥‹à¤ªà¤ªà¥‚रà¥à¤µ यà¥à¤°à¥‹à¤ªà¤‰à¤¤à¥à¤¤à¤° यà¥à¤°à¥‹à¤ªà¤ªà¤¶à¥à¤šà¤¿à¤® यà¥à¤°à¥‹à¤ªà¤²à¥…टिन अमेरिका" + +var mrRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x002b, 0x003d, 0x006f, 0x0090, 0x00c8, 0x00e0, 0x00fb, + 0x0116, 0x0128, 0x014c, 0x016a, 0x018f, 0x01aa, 0x01cb, 0x01da, + 0x01f9, 0x0211, 0x0255, 0x0270, 0x028b, 0x02a3, 0x02c8, 0x02e3, + 0x02f5, 0x030a, 0x0319, 0x0344, 0x0359, 0x036e, 0x038c, 0x03c0, + 0x03d5, 0x03e7, 0x03f6, 0x0412, 0x042d, 0x0442, 0x044e, 0x045d, + 0x048e, 0x04b5, 0x0505, 0x0535, 0x0559, 0x057e, 0x0594, 0x05a0, + 0x05b5, 0x05be, 0x05d9, 0x05fe, 0x061d, 0x062f, 0x064e, 0x0669, + 0x0688, 0x069d, 0x06c8, 0x06da, 0x0702, 0x0714, 0x072f, 0x0747, + // Entry 40 - 7F + 0x0781, 0x079c, 0x07cb, 0x07e3, 0x07fe, 0x0810, 0x0832, 0x084d, + 0x085c, 0x0874, 0x0893, 0x08a5, 0x08b1, 0x08d0, 0x08f7, 0x0910, + 0x0925, 0x0934, 0x095f, 0x0977, 0x098f, 0x09b1, 0x09cc, 0x09d8, + 0x09f6, 0x0a0e, 0x0a26, 0x0a32, 0x0a53, 0x0a81, 0x0a90, 0x0af8, + 0x0b16, 0x0b22, 0x0b3e, 0x0b4d, 0x0b7f, 0x0bc4, 0x0bdc, 0x0bf7, + 0x0c03, 0x0c15, 0x0c31, 0x0c4f, 0x0c64, 0x0c7f, 0x0c9f, 0x0cab, + 0x0cfc, 0x0d08, 0x0d14, 0x0d26, 0x0d32, 0x0d41, 0x0d50, 0x0d62, + 0x0d6e, 0x0d80, 0x0da1, 0x0db9, 0x0dd1, 0x0de6, 0x0e22, 0x0e44, + // Entry 80 - BF + 0x0e69, 0x0e78, 0x0e91, 0x0eac, 0x0eb8, 0x0eca, 0x0eef, 0x0f16, + 0x0f2e, 0x0f49, 0x0f5b, 0x0f76, 0x0f94, 0x0fac, 0x0fbe, 0x0fd6, + 0x0fe8, 0x1006, 0x1027, 0x1049, 0x1067, 0x1086, 0x10a4, 0x10b0, + 0x10da, 0x10f2, 0x1118, 0x1150, 0x116b, 0x1189, 0x11aa, 0x11bc, + 0x11ce, 0x11e0, 0x11ef, 0x1207, 0x121c, 0x1237, 0x124f, 0x127a, + 0x1289, 0x12a5, 0x12c0, 0x12de, 0x12f3, 0x1305, 0x1314, 0x1323, + 0x132f, 0x134a, 0x1356, 0x1365, 0x1371, 0x13a2, 0x13cb, 0x13e6, + 0x1401, 0x1410, 0x1452, 0x1477, 0x149f, 0x14d6, 0x14f1, 0x14fd, + // Entry C0 - FF + 0x1512, 0x151e, 0x1549, 0x1561, 0x1579, 0x158e, 0x159d, 0x15af, + 0x15c5, 0x15e4, 0x15f9, 0x1608, 0x161a, 0x1632, 0x1651, 0x1675, + 0x16b4, 0x16d8, 0x16f4, 0x170d, 0x171f, 0x1737, 0x174c, 0x176e, + 0x17a7, 0x17c9, 0x17eb, 0x17fd, 0x1818, 0x184a, 0x1883, 0x188c, + 0x18d3, 0x18df, 0x18f1, 0x1912, 0x1927, 0x1946, 0x1970, 0x198e, + 0x199d, 0x19af, 0x19e7, 0x19f9, 0x1a08, 0x1a23, 0x1a38, 0x1a4d, + 0x1a81, 0x1aaf, 0x1ac4, 0x1ae5, 0x1b0a, 0x1b61, 0x1b82, 0x1bbd, + 0x1bf1, 0x1c0c, 0x1c21, 0x1c53, 0x1c62, 0x1c7a, 0x1c89, 0x1ca1, + // Entry 100 - 13F + 0x1cc9, 0x1ce1, 0x1cff, 0x1d24, 0x1d33, 0x1d48, 0x1d6d, 0x1d95, + 0x1da7, 0x1dcf, 0x1df1, 0x1e16, 0x1e3b, 0x1e5d, 0x1e88, 0x1e9d, + 0x1ec5, 0x1edd, 0x1efc, 0x1f1e, 0x1f50, 0x1f72, 0x1f9c, 0x1fba, + 0x1ff4, 0x2012, 0x2021, 0x203d, 0x205f, 0x206e, 0x208d, 0x20ac, + 0x20ce, 0x20f3, +} // Size: 604 bytes + +var msRegionStr string = "" + // Size: 2946 bytes + "Pulau AscensionAndorraEmiriah Arab BersatuAfghanistanAntigua dan Barbuda" + + "AnguillaAlbaniaArmeniaAngolaAntartikaArgentinaSamoa AmerikaAustriaAustra" + + "liaArubaKepulauan AlandAzerbaijanBosnia dan HerzegovinaBarbadosBanglades" + + "hBelgiumBurkina FasoBulgariaBahrainBurundiBeninSaint BarthélemyBermudaBr" + + "uneiBoliviaBelanda CaribbeanBrazilBahamasBhutanPulau BouvetBotswanaBelar" + + "usBelizeKanadaKepulauan Cocos (Keeling)Congo - KinshasaRepublik Afrika T" + + "engahCongo - BrazzavilleSwitzerlandCote d’IvoireKepulauan CookChileCamer" + + "oonChinaColombiaPulau ClippertonCosta RicaCubaCape VerdeCuracaoPulau Kri" + + "smasCyprusRepublik CzechJermanDiego GarciaDjiboutiDenmarkDominicaRepubli" + + "k DominicaAlgeriaCeuta dan MelillaEcuadorEstoniaMesirSahara BaratEritrea" + + "SepanyolEthiopiaKesatuan EropahFinlandFijiKepulauan FalklandMicronesiaKe" + + "pulauan FaroePerancisGabonUnited KingdomGrenadaGeorgiaGuiana PerancisGue" + + "rnseyGhanaGibraltarGreenlandGambiaGuineaGuadeloupeGuinea KhatulistiwaGre" + + "eceKepulauan Georgia Selatan & Sandwich SelatanGuatemalaGuamGuinea Bissa" + + "uGuyanaHong Kong SAR ChinaKepulauan Heard & McDonaldHondurasCroatiaHaiti" + + "HungaryKepulauan CanaryIndonesiaIrelandIsraelIsle of ManIndiaWilayah Lau" + + "tan Hindi BritishIraqIranIcelandItaliJerseyJamaicaJordanJepunKenyaKyrgyz" + + "stanKembojaKiribatiComorosSaint Kitts dan NevisKorea UtaraKorea SelatanK" + + "uwaitKepulauan CaymanKazakhstanLaosLubnanSaint LuciaLiechtensteinSri Lan" + + "kaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMaghribiMonacoMoldovaMonte" + + "negroSaint MartinMadagaskarKepulauan MarshallMacedoniaMaliMyanmar (Burma" + + ")MongoliaMacau SAR ChinaKepulauan Mariana UtaraMartiniqueMauritaniaMonts" + + "erratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew Cale" + + "doniaNigerPulau NorfolkNigeriaNicaraguaBelandaNorwayNepalNauruNiueNew Ze" + + "alandOmanPanamaPeruPolinesia PerancisPapua New GuineaFilipinaPakistanPol" + + "andSaint Pierre dan MiquelonKepulauan PitcairnPuerto RicoWilayah Palesti" + + "nPortugalPalauParaguayQatarOceania TerpencilReunionRomaniaSerbiaRusiaRwa" + + "ndaArab SaudiKepulauan SolomonSeychellesSudanSwedenSingapuraSaint Helena" + + "SloveniaSvalbard dan Jan MayenSlovakiaSierra LeoneSan MarinoSenegalSomal" + + "iaSurinamSudan SelatanSao Tome dan PrincipeEl SalvadorSint MaartenSyriaS" + + "wazilandTristan da CunhaKepulauan Turks dan CaicosChadWilayah Selatan Pe" + + "rancisTogoThailandTajikistanTokelauTimor-LesteTurkmenistanTunisiaTongaTu" + + "rkiTrinidad dan TobagoTuvaluTaiwanTanzaniaUkraineUgandaKepulauan Terpenc" + + "il A.S.Amerika SyarikatUruguayUzbekistanKota VaticanSaint Vincent dan Gr" + + "enadinesVenezuelaKepulauan Virgin BritishKepulauan Virgin A.S.VietnamVan" + + "uatuWallis dan FutunaSamoaKosovoYamanMayotteAfrika SelatanZambiaZimbabwe" + + "Wilayah Tidak DiketahuiDuniaAfrikaAmerika UtaraAmerika SelatanOceaniaAfr" + + "ika BaratAmerika TengahAfrika TimurAfrika UtaraAfrika TengahSelatan Afri" + + "kaAmerikaUtara AmerikaCaribbeanAsia TimurAsia SelatanAsia TenggaraEropah" + + " SelatanAustralasiaMelanesiaWilayah MikronesiaPolinesiaAsiaAsia TengahAs" + + "ia BaratEropahEropah TimurEropah UtaraEropah BaratAmerika Latin" + +var msRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0016, 0x002a, 0x0035, 0x0048, 0x0050, 0x0057, + 0x005e, 0x0064, 0x006d, 0x0076, 0x0083, 0x008a, 0x0093, 0x0098, + 0x00a7, 0x00b1, 0x00c7, 0x00cf, 0x00d9, 0x00e0, 0x00ec, 0x00f4, + 0x00fb, 0x0102, 0x0107, 0x0118, 0x011f, 0x0125, 0x012c, 0x013d, + 0x0143, 0x014a, 0x0150, 0x015c, 0x0164, 0x016b, 0x0171, 0x0177, + 0x0190, 0x01a0, 0x01b6, 0x01c9, 0x01d4, 0x01e3, 0x01f1, 0x01f6, + 0x01fe, 0x0203, 0x020b, 0x021b, 0x0225, 0x0229, 0x0233, 0x023a, + 0x0247, 0x024d, 0x025b, 0x0261, 0x026d, 0x0275, 0x027c, 0x0284, + // Entry 40 - 7F + 0x0295, 0x029c, 0x02ad, 0x02b4, 0x02bb, 0x02c0, 0x02cc, 0x02d3, + 0x02db, 0x02e3, 0x02f2, 0x02f9, 0x02fd, 0x030f, 0x0319, 0x0328, + 0x0330, 0x0335, 0x0343, 0x034a, 0x0351, 0x0360, 0x0368, 0x036d, + 0x0376, 0x037f, 0x0385, 0x038b, 0x0395, 0x03a8, 0x03ae, 0x03da, + 0x03e3, 0x03e7, 0x03f4, 0x03fa, 0x040d, 0x0427, 0x042f, 0x0436, + 0x043b, 0x0442, 0x0452, 0x045b, 0x0462, 0x0468, 0x0473, 0x0478, + 0x0494, 0x0498, 0x049c, 0x04a3, 0x04a8, 0x04ae, 0x04b5, 0x04bb, + 0x04c0, 0x04c5, 0x04cf, 0x04d6, 0x04de, 0x04e5, 0x04fa, 0x0505, + // Entry 80 - BF + 0x0512, 0x0518, 0x0528, 0x0532, 0x0536, 0x053c, 0x0547, 0x0554, + 0x055d, 0x0564, 0x056b, 0x0574, 0x057e, 0x0584, 0x0589, 0x0591, + 0x0597, 0x059e, 0x05a8, 0x05b4, 0x05be, 0x05d0, 0x05d9, 0x05dd, + 0x05ec, 0x05f4, 0x0603, 0x061a, 0x0624, 0x062e, 0x0638, 0x063d, + 0x0646, 0x064e, 0x0654, 0x065a, 0x0662, 0x066c, 0x0673, 0x0680, + 0x0685, 0x0692, 0x0699, 0x06a2, 0x06a9, 0x06af, 0x06b4, 0x06b9, + 0x06bd, 0x06c8, 0x06cc, 0x06d2, 0x06d6, 0x06e8, 0x06f8, 0x0700, + 0x0708, 0x070e, 0x0727, 0x0739, 0x0744, 0x0754, 0x075c, 0x0761, + // Entry C0 - FF + 0x0769, 0x076e, 0x077f, 0x0786, 0x078d, 0x0793, 0x0798, 0x079e, + 0x07a8, 0x07b9, 0x07c3, 0x07c8, 0x07ce, 0x07d7, 0x07e3, 0x07eb, + 0x0801, 0x0809, 0x0815, 0x081f, 0x0826, 0x082d, 0x0834, 0x0841, + 0x0856, 0x0861, 0x086d, 0x0872, 0x087b, 0x088b, 0x08a5, 0x08a9, + 0x08c1, 0x08c5, 0x08cd, 0x08d7, 0x08de, 0x08e9, 0x08f5, 0x08fc, + 0x0901, 0x0906, 0x0919, 0x091f, 0x0925, 0x092d, 0x0934, 0x093a, + 0x0952, 0x0962, 0x0969, 0x0973, 0x097f, 0x099b, 0x09a4, 0x09bc, + 0x09d1, 0x09d8, 0x09df, 0x09f0, 0x09f5, 0x09fb, 0x0a00, 0x0a07, + // Entry 100 - 13F + 0x0a15, 0x0a1b, 0x0a23, 0x0a3a, 0x0a3f, 0x0a45, 0x0a52, 0x0a61, + 0x0a68, 0x0a74, 0x0a82, 0x0a8e, 0x0a9a, 0x0aa7, 0x0ab5, 0x0abc, + 0x0ac9, 0x0ad2, 0x0adc, 0x0ae8, 0x0af5, 0x0b03, 0x0b0e, 0x0b17, + 0x0b29, 0x0b32, 0x0b36, 0x0b41, 0x0b4b, 0x0b51, 0x0b5d, 0x0b69, + 0x0b75, 0x0b82, +} // Size: 604 bytes + +var myRegionStr string = "" + // Size: 10052 bytes + "အက်စ်စင်ရှီအွန်ကျွန်းအန်ဒိုရာယူအေအီးအာဖဂန်နစ္စá€á€”်အန်á€á€®á€‚ုအာနှင့်ဘာဘုဒါအန်" + + "ဂွီလာအဲလ်ဘာနီအာအာမေနီးယားအင်ဂိုလာအန္á€á€¬á€á€­á€€á€¡á€¬á€‚ျင်á€á€®á€¸á€”ားအမေရိကန် စမိုအဩစá€" + + "ြီးယားဩစá€á€¼á€±á€¸á€œá€»á€¡á€¬á€›á€¯á€˜á€¬á€¡á€¬á€œá€”်ကျွန်းအဇာဘိုင်ဂျန်ဘော့စနီးယား နှင့် ဟာဇီဂိုဘီ" + + "းနားဘာဘဒိုးစ်ဘင်္ဂလားဒေ့ရှ်ဘယ်လ်ဂျီယမ်ဘာကီနာ ဖာဆိုဘူဂေးရီးယားဘာရိန်းဘူ" + + "ရွန်ဒီဘီနင်စိန့်ဘာသီလီမိုင်ဘာမူဒါဘရူနိုင်းဘိုလီးဘီးယားကာရီဘီယံနယ်သာလန်" + + "ဘရာဇီးဘဟားမားဘူá€á€”်ဘူဗက်ကျွန်းဘော့စ်á€á€«á€”ာဘီလာရုစ်ဘေလီဇ်ကနေဒါကိုကိုး ကျွန" + + "်းစုကွန်ဂို-ကင်ရှာစအလယ်ပိုင်း အာဖရိက ပြည်ထောင်စုကွန်ဂို-ဘရာဇာဗီလ်ဆွစ်ဇ" + + "လန်အိုင်ဗရီကိုစ့်ကွá€á€º ကျွန်းစုá€á€»á€®á€œá€®á€€á€„်မရွန်းá€á€›á€¯á€á€ºá€€á€­á€¯á€œá€¶á€˜á€®á€šá€¬á€€á€œá€…်ပါá€á€”်ကျွ" + + "န်းကော့စ်á€á€¬á€›á€®á€€á€¬á€€á€»á€°á€¸á€˜á€¬á€¸á€á€±á€·á€•á€ºá€—ာဒူá€á€°á€›á€¬á€€á€¬á€¡á€­á€¯á€á€›á€…်စမá€á€º ကျွန်းဆိုက်ပရက်စ်á€á€»á€€á€º" + + " ပြည်ထောင်စုဂျာမá€á€®á€’ီအေဂိုဂရာစီအာဂျီဘူá€á€®á€’ိန်းမá€á€ºá€’ိုမီနီကာဒိုမီနီကန်အယ်လ်ဂ" + + "ျီးရီးယားဆယ်ဥá€á€¬á€”ှင့်မယ်လီလ်လာအီကွေဒေါအက်စá€á€­á€¯á€¸á€”ီးယားအီဂျစ်အနောက်ပိုင်း " + + "ဆာဟာရအီရီá€á€›á€®á€¡á€¬á€…ပိန်အီသီယိုးပီးယားဥရောပသမဂ္ဂဖင်လန်ဖီဂျီဖောက်ကလန် ကျွန်း" + + "စုမိုင်á€á€›á€­á€¯á€”ီရှားဖာရိုး ကျွန်းစုများပြင်သစ်ဂါဘွန်ယူနိုက်á€á€€á€ºá€€á€„်းဒမ်းဂရီ" + + "နာဒါဂျော်ဂျီယာပြင်သစ် ဂီယာနာဂွန်းဇီဂါနာဂျီဘရော်လ်á€á€¬á€‚ရင်းလန်းဂန်ဘီရာဂီး" + + "နီဂူအာဒီလုပ်အီကွေá€á€¬ ဂီရာနာဂရိá€á€±á€¬á€„် ဂျော်ဂျီယာ နှင့် á€á€±á€¬á€„် ဆင်းဒá€á€…်ဂျ် " + + "ကျွန်းစုများဂွာá€á€®á€™á€¬á€œá€¬á€‚ူအမ်ဂီရာနာ-ဘီစ်စာဥဂူရာနာá€á€›á€¯á€á€ºá အထူးအုပ်á€á€»á€¯á€•á€ºá€á€½á€„့" + + "်ရ ဟောင်ကောင်ဟá€á€ºá€€á€»á€½á€”်းနှင့်မက်ဒေါနယ်ကျွန်းစုဟွန်ဒူးရပ်စ်á€á€›á€­á€¯á€¡á€±á€¸á€›á€¾á€¬á€¸á€Ÿá€±á€" + + "ီဟန်ဂေရီကာနာရီကျွန်းစုအင်ဒိုနီးရှားအိုင်ယာလန်အစ္စရေးမန်ကျွန်းအိန္ဒိယဗြ" + + "ိá€á€­á€žá€»á€¾ အိန္ဒြိယ သမုဒ္ဒရာ ပိုင်နက်အီရá€á€ºá€¡á€®á€›á€”်အိုက်စလန်အီá€á€œá€®á€‚ျာစီဂျမေကာဂျ" + + "ော်ဒန်ဂျပန်ကင်ညာá€á€›á€°á€‚စ်စá€á€”်ကမ္ဘောဒီးယားá€á€®á€›á€®á€˜á€¬á€á€®á€€á€­á€¯á€™á€­á€¯á€›á€­á€¯á€…်စိန့်ကစ်နှင့်" + + "နီဗီစ်မြောက်ကိုရီးယားá€á€±á€¬á€„်ကိုရီးယားကူá€á€­á€á€ºá€€á€±á€™á€”် ကျွန်းစုကာဇက်စá€á€”်လာအိုလ" + + "က်ဘနွန်စိန့်လူစီအာလစ်á€á€ºá€‘င်စá€á€­á€¯á€„်သီရိလင်္ကာလိုင်ဘေးရီးယားလီဆိုသိုလစ်သူယ" + + "ေးနီးယားလူဇင်ဘá€á€ºá€œá€á€ºá€—ီးယားလီဗရာမော်ရိုကိုမိုနာကိုမောလ်ဒိုဗာမွန်á€á€®á€”ိဂရို" + + "းစိန့်မာá€á€„်မာဒါဂá€á€ºá€…ကာမာရှယ် ကျွန်းစုမာစီဒိုးနီးယားမာလီမြန်မာမွန်ဂိုးလီ" + + "းယားá€á€›á€¯á€á€ºá အထူးအုပ်á€á€»á€¯á€•á€ºá€á€½á€„့်ရ မကာအိုá€á€±á€¬á€„်ပိုင်းမာရီအာနာကျွန်းစုမာá€á€®á€”ီ" + + "ကီမောရီá€á€¬á€”ီအာမောင့်စဲရက်မောလ်á€á€¬á€™á€±á€¬á€ºá€›á€±á€›á€¾á€¬á€¸á€…်မော်လ်ဒိုက်မာလာá€á€®á€™á€€á€¹á€€á€†á€®á€€á€­á€¯á€™" + + "လေးရှားမိုဇန်ဘစ်နမ်မီးဘီးယားနယူး ကယ်လီဒိုနီးယားနိုင်ဂျာနောဖော့á€á€ºá€€á€»á€½á€”်း" + + "နိုင်ဂျီးရီးယားနီကာရာဂွာနယ်သာလန်နော်á€á€±á€”ီပေါနာဥူရူနီဥူအေနယူးဇီလန်အိုမန်" + + "ပနားမားပီရူးပြင်သစ် ပေါ်လီနေးရှားပါပူရာနယူးဂီနီဖိလစ်ပိုင်ပါကစ္စá€á€”်ပိုလ" + + "န်စိန့်ပီအဲရီနှင့်မီကွီလွန်ပစ်á€á€ºá€€á€­á€”်းကျွန်းစုပေါ်á€á€°á€›á€®á€€á€­á€¯á€•á€«á€œá€€á€ºá€…á€á€­á€¯á€„်း ပ" + + "ိုင်နက်ပေါ်á€á€°á€‚ီပလောင်ပါရာဂွေးကာá€á€¬á€žá€™á€¯á€’္ဒရာဒေသအပြင်ထွက်နေသောဒေသများရဲအူန" + + "ီရွန်ရိုမေးနီးယားဆားဘီးယားရုရှရá€á€”်ဒါဆော်ဒီအာရေးဗီးယားဆော်လမွန်ကျွန်းစု" + + "ဆေးရှလ်ဆူဒန်ဆွီဒင်စင်္ကာပူစိန့်ဟဲလီနာစလိုဗေးနီးယားစဗိုလ်ဘá€á€ºá€”ှင့်ဂျန်မေ" + + "ရန်စလိုဗေးကီးယားဆီအဲရာ လီအိုနီဆော့န်မာရီနိုဆီနီဂေါဆိုမာလီယာဆူရီနိမ်းမြ" + + "ောက်ဆူဒန်စိန့်á€á€­á€¯á€™á€®á€”ှင့်ပရင်စီပ့်အယ်လ်ဆာဗေးဒိုးဆင့်မာအာá€á€„်ဆီးရီးယားစွာ" + + "ဇီလန်ထရစ်á€á€”်ဒါကွန်ဟာá€á€á€ºá€…်နှင့်ကာအီကိုစ်ကျွန်းစုá€á€»á€’်ပြင်သစ် á€á€±á€¬á€„်ပိုင်း" + + " ပိုင်နက်များá€á€­á€¯á€‚ိုထိုင်းá€á€¬á€‚ျီကစ္စá€á€”်ထိုးá€á€«á€œá€°á€¡á€›á€¾á€±á€·á€á€®á€™á€±á€¬á€á€¬á€á€ºá€™á€®á€”့စ်á€á€”်á€á€°á€”ီ" + + "းရှားá€á€½á€”်ဂါá€á€°á€›á€€á€®á€‘ရိုင်နီဒá€á€ºá€”ှင့်á€á€­á€¯á€˜á€¬á€‚ိုထူးဗလူထိုင်á€á€™á€ºá€á€”်ဇန်းနီးယားယူက" + + "ရိန်းယူဂန္ဓာယူနိုက်á€á€€á€ºá€…á€á€­á€á€º အပြင်ထွက် နေသည့် သေးငယ်သောကျွန်းများယူနိုက" + + "်á€á€€á€ºá€…á€á€­á€á€ºá€¥á€›á€¯á€‚ွေးဥဘက်ကစ္စá€á€”်ဗာá€á€®á€€á€”်စီá€á€®á€¸á€…ိန့်ဗင့်ဆင့်နှင့် သည်ဂရဲနာဒင်း" + + "စ်ဗင်နီဇွဲလားဗြိá€á€­á€žá€»á€¾ ဗာဂျင်း ကျွန်းစုယူအက်စ် ဗာဂျင်း ကျွန်းစုဗီယက်နမ်" + + "ဗာနုအာá€á€°á€á€±á€«á€œá€…်နှင့်ဖူထူးနားဆာမိုအာကိုဆိုဗိုယီမင်မေအိုá€á€®á€á€±á€¬á€„်အာဖရိကဇမ်ဘ" + + "ီယာဇင်ဘာဘွေမသိ သို့မဟုá€á€º မရှိ သော နေရာကမ္ဘာအာဖရိကမြောက် အမေရိကá€á€±á€¬á€„် အမ" + + "ေရိကသမုဒ္ဒရာဒေသအနောက် အာဖရိကအလယ်ပိုင်း အမေရိကအရှေ့ပိုင်း အာဖရိကမြောက်ပ" + + "ိုင်း အာဖရိကအလယ်ပိုင်း အာဖရိကá€á€±á€¬á€„်ပိုင်း အာဖရိကအမေရိကများမြောက်ပိုင်း " + + "အမေရိကကာရီဘီယံအရှေ့ပိုင်း အာရှá€á€±á€¬á€„်ပိုင်း အာရှအရှေ့á€á€±á€¬á€„်ပိုင်းအာရှá€á€±á€¬á€„" + + "်ပိုင်း ဥရောပဩစá€á€¼á€±á€¸á€œá€»á€”ှင့် နယူးဇီလန်မီလာနီးရှားမိုင်á€á€›á€­á€¯á€”ီရှားနယ်ပိုလီ" + + "နီရှားအာရှအလယ် အာရှအနောက် အာရှဥရောပအရှေ့ပိုင်း ဥရောပမြောက်ပိုင်း ဥရောပ" + + "အနောက်ပိုင်း ဥရောပလက်á€á€„်အမေရိက" + +var myRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x003f, 0x0057, 0x006c, 0x0093, 0x00cf, 0x00e7, 0x0105, + 0x0123, 0x013b, 0x0153, 0x0177, 0x019f, 0x01ba, 0x01d2, 0x01e4, + 0x0205, 0x0229, 0x0282, 0x029d, 0x02c7, 0x02e8, 0x030a, 0x032b, + 0x0340, 0x0358, 0x0367, 0x0397, 0x03a9, 0x03c4, 0x03e8, 0x0418, + 0x042a, 0x043f, 0x044e, 0x046f, 0x048d, 0x04a5, 0x04b7, 0x04c6, + 0x04f4, 0x051f, 0x0572, 0x05a3, 0x05bb, 0x05e5, 0x060a, 0x0619, + 0x0634, 0x0643, 0x065e, 0x068b, 0x06af, 0x06c4, 0x06df, 0x06fa, + 0x0725, 0x0746, 0x0774, 0x0786, 0x07b0, 0x07c5, 0x07dd, 0x07f8, + // Entry 40 - 7F + 0x0816, 0x0843, 0x087f, 0x0897, 0x08c1, 0x08d3, 0x0907, 0x0922, + 0x0931, 0x095b, 0x0979, 0x098b, 0x099a, 0x09ce, 0x09fb, 0x0a32, + 0x0a47, 0x0a59, 0x0a8f, 0x0aa4, 0x0ac2, 0x0aea, 0x0aff, 0x0b0b, + 0x0b2f, 0x0b4a, 0x0b5f, 0x0b6e, 0x0b8c, 0x0bb4, 0x0bbd, 0x0c52, + 0x0c6d, 0x0c7c, 0x0ca4, 0x0cb6, 0x0d21, 0x0d7e, 0x0da2, 0x0dc3, + 0x0dcf, 0x0de4, 0x0e0e, 0x0e35, 0x0e53, 0x0e68, 0x0e83, 0x0e98, + 0x0efb, 0x0f0a, 0x0f19, 0x0f34, 0x0f43, 0x0f52, 0x0f64, 0x0f7c, + 0x0f8b, 0x0f9a, 0x0fb8, 0x0fdc, 0x0ff4, 0x1015, 0x104e, 0x107b, + // Entry 80 - BF + 0x10a5, 0x10b7, 0x10df, 0x10fa, 0x1109, 0x1121, 0x1142, 0x116c, + 0x118a, 0x11b4, 0x11cc, 0x11f6, 0x120e, 0x1229, 0x1238, 0x1256, + 0x126e, 0x128c, 0x12b3, 0x12d1, 0x12ef, 0x131a, 0x1344, 0x1350, + 0x1362, 0x138c, 0x13eb, 0x143c, 0x1454, 0x1475, 0x1496, 0x14ab, + 0x14cf, 0x14f0, 0x1502, 0x151d, 0x1535, 0x1550, 0x1574, 0x15ab, + 0x15c3, 0x15f0, 0x161d, 0x1638, 0x1650, 0x1662, 0x1671, 0x1683, + 0x1695, 0x16b0, 0x16c2, 0x16d7, 0x16e6, 0x1723, 0x174d, 0x176b, + 0x1786, 0x1798, 0x17e3, 0x1819, 0x183a, 0x1877, 0x188f, 0x18a1, + // Entry C0 - FF + 0x18b9, 0x18c5, 0x1925, 0x1943, 0x1967, 0x1982, 0x198e, 0x19a0, + 0x19d3, 0x1a06, 0x1a1b, 0x1a2a, 0x1a3c, 0x1a54, 0x1a75, 0x1a9c, + 0x1ae1, 0x1b08, 0x1b30, 0x1b57, 0x1b6c, 0x1b87, 0x1ba2, 0x1bc3, + 0x1c0b, 0x1c35, 0x1c56, 0x1c71, 0x1c89, 0x1cb6, 0x1d07, 0x1d13, + 0x1d6f, 0x1d81, 0x1d93, 0x1db7, 0x1dcf, 0x1ded, 0x1e14, 0x1e2f, + 0x1e41, 0x1e50, 0x1e98, 0x1eaa, 0x1ec2, 0x1ee9, 0x1f01, 0x1f16, + 0x1fac, 0x1fd9, 0x1fee, 0x200f, 0x2033, 0x2094, 0x20b5, 0x20fc, + 0x2140, 0x2158, 0x2170, 0x21a9, 0x21be, 0x21d9, 0x21e8, 0x21fd, + // Entry 100 - 13F + 0x221e, 0x2233, 0x224b, 0x2294, 0x22a3, 0x22b5, 0x22da, 0x22fc, + 0x231d, 0x2342, 0x2373, 0x23a7, 0x23de, 0x240f, 0x2443, 0x2461, + 0x2498, 0x24b0, 0x24de, 0x250c, 0x2548, 0x2579, 0x25bc, 0x25dd, + 0x2613, 0x2634, 0x2640, 0x2659, 0x2678, 0x2687, 0x26b8, 0x26ec, + 0x2720, 0x2744, +} // Size: 604 bytes + +var neRegionStr string = "" + // Size: 9020 bytes + "à¤à¤¸à¥à¤•à¥‡à¤¨à¥à¤¸à¤¨ टापà¥à¤…नà¥à¤¡à¥‹à¤°à¥à¤°à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ अरब इमिराटà¥à¤¸à¤…फगानिसà¥à¤¤à¤¾à¤¨à¤à¤¨à¥à¤Ÿà¤¿à¤—à¥à¤† र बारबà¥à¤¡à¤¾" + + "आङà¥à¤—à¥à¤‡à¤²à¤¾à¤…लà¥à¤¬à¤¾à¤¨à¤¿à¤¯à¤¾à¤†à¤°à¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤…ङà¥à¤—ोलाअनà¥à¤Ÿà¤¾à¤°à¤¤à¤¿à¤•à¤¾à¤…रà¥à¤œà¥‡à¤¨à¥à¤Ÿà¤¿à¤¨à¤¾à¤…मेरिकी समोआअषà¥à¤Ÿ" + + "à¥à¤°à¤¿à¤¯à¤¾à¤…षà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¾à¤†à¤°à¥‚बाअलानà¥à¤¡ टापà¥à¤¹à¤°à¥à¤…जरबैजानबोसà¥à¤¨à¤¿à¤¯à¤¾ à¤à¤£à¥à¤¡ हरà¥à¤œà¤—ोभिनियाब" + + "ारà¥à¤¬à¤¾à¤¡à¥‹à¤¸à¤¬à¤™à¥à¤—लादेशबेलà¥à¤œà¤¿à¤¯à¤®à¤¬à¤°à¥à¤•à¤¿à¤¨à¤¾ फासोबà¥à¤²à¥à¤—ेरियाबहराइनबà¥à¤°à¥‚णà¥à¤¡à¥€à¤¬à¥‡à¤¨à¤¿à¤¨à¤¸à¥‡à¤¨à¥" + + "ट बारà¥à¤¥à¤¾à¤²à¥‡à¤®à¥€à¤¬à¤°à¥à¤®à¥à¤¡à¤¾à¤¬à¥à¤°à¥à¤¨à¤¾à¤‡à¤¬à¥‹à¤²à¤¿à¤­à¤¿à¤¯à¤¾à¤•à¥à¤¯à¤¾à¤°à¤¿à¤µà¤¿à¤¯à¤¨ नेदरलà¥à¤¯à¤¾à¤£à¥à¤¡à¥à¤¸à¤¬à¥à¤°à¤¾à¤œà¤¿à¤²à¤¬à¤¹à¤¾à¤®à¤¾" + + "सभà¥à¤Ÿà¤¾à¤¨à¤¬à¥à¤­à¥‡à¤Ÿ टापà¥à¤¬à¥‹à¤Ÿà¥à¤¸à¥à¤µà¤¾à¤¨à¤¾à¤¬à¥‡à¤²à¤¾à¤°à¥‚सबेलिजकà¥à¤¯à¤¾à¤¨à¤¾à¤¡à¤¾à¤•à¥‹à¤•à¥‹à¤¸ (किलिंग) टापà¥à¤¹à¤°à¥à¤•à¥‹" + + "ङà¥à¤—ो-किनà¥à¤¶à¤¾à¤¸à¤¾à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ अफà¥à¤°à¤¿à¤•à¥€ गणतनà¥à¤¤à¥à¤°à¤•à¥‹à¤™à¥à¤—ो - बà¥à¤°à¤¾à¤œà¥à¤œà¤¾à¤­à¤¿à¤²à¥à¤²à¥‡à¤¸à¥à¤µà¤¿à¤œà¤°à¤²à¥" + + "याणà¥à¤¡à¤†à¤‡à¤­à¤°à¥€ कोसà¥à¤Ÿà¤•à¥à¤• टापà¥à¤¹à¤°à¥à¤šà¤¿à¤²à¥€à¤•à¥à¤¯à¤¾à¤®à¤°à¥‚नचीनकोलोमà¥à¤¬à¤¿à¤¯à¤¾à¤•à¥à¤²à¤¿à¤ªà¥à¤ªà¥‡à¤°à¥à¤Ÿà¤¨ टापà¥à¤•" + + "ोषà¥à¤Ÿà¤¾à¤°à¤¿à¤•à¤¾à¤•à¥à¤¯à¥à¤¬à¤¾à¤•à¥‡à¤ª भरà¥à¤¡à¥‡à¤•à¥à¤°à¤¾à¤•à¤¾à¤“कà¥à¤°à¤¿à¤·à¥à¤Ÿà¤®à¤¸ टापà¥à¤¸à¤¾à¤‡à¤ªà¥à¤°à¤¸à¤šà¥‡à¤• गणतनà¥à¤¤à¥à¤°à¤œà¤°à¥à¤®à¤¨à¥€" + + "डियगो गारà¥à¤¸à¤¿à¤¯à¤¾à¤¡à¤¿à¤œà¤¿à¤¬à¥à¤Ÿà¥€à¤¡à¥‡à¤¨à¤®à¤¾à¤°à¥à¤•à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¾à¤¡à¥‹à¤®à¤¿à¤¨à¤¿à¤•à¤¨ गणतनà¥à¤¤à¥à¤°à¤…लà¥à¤œà¥‡à¤°à¤¿à¤¯à¤¾à¤¸à¤¿à¤‰à¤Ÿà¤¾ " + + "र मेलिलाइकà¥à¤µà¤¡à¥‡à¤°à¤‡à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤‡à¤œà¤¿à¤ªà¥à¤Ÿà¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ साहाराà¤à¤°à¤¿à¤¤à¥à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤ªà¥‡à¤¨à¤‡à¤¥à¤¿à¤¯à¥‹à¤ªà¤¿à¤¯à¤¾à¤¯à¥à¤°" + + "ोपियन यà¥à¤¨à¤¿à¤¯à¤¨à¤«à¤¿à¤¨à¥à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤«à¤¿à¤œà¥€à¤«à¤•à¤²à¥à¤¯à¤¾à¤£à¥à¤¡ टापà¥à¤¹à¤°à¥à¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤«à¤¾à¤°à¥‹à¤° टापà¥à¤¹à¤°à¥" + + "फà¥à¤°à¤¾à¤¨à¥à¤¸à¤—ावोनबेलायतगà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¾à¤œà¤°à¥à¤œà¤¿à¤¯à¤¾à¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ गायनागà¥à¤à¤°à¥à¤¨à¤¸à¥‡à¤˜à¤¾à¤¨à¤¾à¤œà¤¿à¤¬à¥à¤°à¤¾à¤²à¥à¤Ÿ" + + "ारगà¥à¤°à¤¿à¤¨à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤—ामà¥à¤µà¤¿à¤¯à¤¾à¤—िनीगà¥à¤µà¤¾à¤¡à¥‡à¤²à¥à¤ªà¤­à¥‚-मधà¥à¤¯à¥€à¤¯ गिनीगà¥à¤°à¤¿à¤¸à¤¦à¤•à¥à¤·à¤¿à¤£ जरà¥à¤œà¤¿à¤¯à¤¾ र" + + " दकà¥à¤·à¤¿à¤£ सà¥à¤¯à¤¾à¤¨à¥à¤¡à¤µà¥€à¤š टापà¥à¤¹à¤°à¥‚गà¥à¤µà¤¾à¤Ÿà¥‡à¤®à¤¾à¤²à¤¾à¤—à¥à¤µà¤¾à¤®à¤—िनी-बिसाउगà¥à¤¯à¤¾à¤¨à¤¾à¤¹à¤™à¤•à¤™ चिनिया समा" + + "जवादी सà¥à¤µà¤¾à¤¯à¤¤à¥à¤¤ कà¥à¤·à¥‡à¤¤à¥à¤°à¤¹à¤°à¥à¤¡ टापॠà¤à¤£à¥à¤¡ मà¥à¤¯à¤¾à¤•à¤¡à¥‹à¤¨à¤¾à¤²à¥à¤¡ टापà¥à¤¹à¤°à¥à¤¹à¤¨à¥à¤¡à¥à¤°à¤¾à¤¸à¤•à¥à¤°à¥‹à¤" + + "शियाहैटीहङà¥à¤—ेरीकà¥à¤¯à¤¾à¤¨à¤¾à¤°à¥€ टापà¥à¤¹à¤°à¥‚इनà¥à¤¡à¥‹à¤¨à¥‡à¤¶à¤¿à¤¯à¤¾à¤†à¤¯à¤°à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤‡à¤œà¤°à¤¾à¤¯à¤²à¤†à¤‡à¤œà¥à¤²à¥‡ अफॠम" + + "à¥à¤¯à¤¾à¤¨à¤­à¤¾à¤°à¤¤à¤¬à¥‡à¤²à¤¾à¤¯à¤¤à¥€ हिनà¥à¤¦ महासागर कà¥à¤·à¥‡à¤¤à¥à¤°à¤‡à¤°à¤¾à¤•à¤‡à¤°à¤¾à¤¨à¤†à¤‡à¤¸à¥à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤‡à¤Ÿà¤¾à¤²à¥€à¤œà¤°à¥à¤¸à¥€à¤œà¤®à¤¾à¤‡" + + "काजोरà¥à¤¡à¤¨à¤œà¤¾à¤ªà¤¾à¤¨à¤•à¥‡à¤¨à¥à¤¯à¤¾à¤•à¤¿à¤°à¥à¤—िसà¥à¤¥à¤¾à¤¨à¤•à¤®à¥à¤¬à¥‹à¤¡à¤¿à¤¯à¤¾à¤•à¤¿à¤°à¤¿à¤¬à¤¾à¤Ÿà¥€à¤•à¥‹à¤®à¥‹à¤°à¥‹à¤¸à¤¸à¥‡à¤¨à¥à¤Ÿ किटà¥à¤¸ र ने" + + "भिसउतà¥à¤¤à¤° कोरियादकà¥à¤·à¤¿à¤£ कोरियाकà¥à¤µà¥‡à¤¤à¤•à¥‡à¤¯à¤®à¤¾à¤¨ टापà¥à¤•à¤¾à¤œà¤¾à¤•à¤¸à¥à¤¤à¤¾à¤¨à¤²à¤¾à¤“सलेबननसेनà¥à¤Ÿ ल" + + "à¥à¤¸à¤¿à¤¯à¤¾à¤²à¤¿à¤à¤–टेनà¥à¤¸à¥à¤Ÿà¤¾à¤‡à¤¨à¤¶à¥à¤°à¥€à¤²à¤™à¥à¤•à¤¾à¤²à¤¾à¤‡à¤¬à¥‡à¤°à¤¿à¤¯à¤¾à¤²à¥‡à¤¸à¥‹à¤¥à¥‹à¤²à¤¿à¤¥à¥à¤…नियालकà¥à¤œà¥‡à¤®à¤¬à¤°à¥à¤—लाटà¥à¤­à¤¿à¤¯à¤¾" + + "लिबियामोरोकà¥à¤•à¥‹à¤®à¥‹à¤¨à¤¾à¤•à¥‹à¤®à¤¾à¤²à¥à¤¡à¥‹à¤­à¤¾à¤®à¥‹à¤¨à¥à¤Ÿà¥‡à¤¨à¥‡à¤—à¥à¤°à¥‹à¤¸à¥‡à¤¨à¥à¤Ÿ मारà¥à¤Ÿà¤¿à¤¨à¤®à¤¡à¤¾à¤—ासà¥à¤•à¤°à¤®à¤¾à¤°à¥à¤¶à¤² ट" + + "ापà¥à¤¹à¤°à¥à¤®à¥à¤¯à¤¾à¤•à¥‡à¤¡à¥‹à¤¨à¤¿à¤¯à¤¾à¤®à¤¾à¤²à¥€à¤®à¥à¤¯à¤¾à¤¨à¥à¤®à¤¾à¤° (बरà¥à¤®à¤¾)मङà¥à¤—ोलियामकावो चिनिà¤à¤¯à¤¾ सà¥à¤µà¤¶à¤¾à¤¸à¤¿à¤¤" + + " कà¥à¤·à¥‡à¤¤à¥à¤°à¤‰à¤¤à¥à¤¤à¤°à¥€ मारिआना टापà¥à¤®à¤¾à¤°à¥à¤Ÿà¤¿à¤¨à¤¿à¤•à¤®à¤¾à¤‰à¤°à¤¿à¤Ÿà¤¾à¤¨à¤¿à¤¯à¤¾à¤®à¥‹à¤¨à¥à¤Ÿà¤¸à¥‡à¤°à¥à¤°à¤¾à¤Ÿà¤®à¤¾à¤²à¥à¤Ÿà¤¾à¤®à¤¾à¤‰à¤°à¤¿à¤Ÿà¤¸" + + "मालà¥à¤¦à¤¿à¤­à¥à¤¸à¤®à¤¾à¤²à¤¾à¤µà¥€à¤®à¥‡à¤•à¥à¤¸à¤¿à¤•à¥‹à¤®à¤²à¥‡à¤¸à¤¿à¤¯à¤¾à¤®à¥‹à¤œà¤¾à¤®à¥à¤¬à¤¿à¤•à¤¨à¤¾à¤®à¤¿à¤¬à¤¿à¤¯à¤¾à¤¨à¤¯à¤¾à¤ कालेडोनियानाइजरनोर" + + "फोलà¥à¤• टापà¥à¤¨à¤¾à¤‡à¤œà¥‡à¤°à¤¿à¤¯à¤¾à¤¨à¤¿à¤•à¤¾à¤°à¤¾à¤—à¥à¤µà¤¾à¤¨à¥‡à¤¦à¤°à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¥à¤¸à¤¨à¤°à¥à¤µà¥‡à¤¨à¥‡à¤ªà¤¾à¤²à¤¨à¤¾à¤‰à¤°à¥‚नियà¥à¤‡à¤¨à¥à¤¯à¥à¤œà¤¿à¤²à¥" + + "याणà¥à¤¡à¤“मनपनामापेरूफà¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ पोलिनेसियापपà¥à¤† नà¥à¤¯à¥‚ गाइनियाफिलिपिनà¥à¤¸à¤ªà¤¾à¤•à¤¿à¤¸à¥" + + "तानपोलà¥à¤¯à¤¾à¤£à¥à¤¡à¤¸à¥‡à¤¨à¥à¤Ÿ पिरà¥à¤°à¥‡ र मिकà¥à¤•à¥‡à¤²à¥‹à¤¨à¤ªà¤¿à¤Ÿà¤•à¤¾à¤‡à¤°à¥à¤¨ टापà¥à¤¹à¤°à¥à¤ªà¥à¤à¤°à¥à¤Ÿà¥‹ रिकोपà¥à¤¯à¤¾à¤²" + + "ेसà¥à¤Ÿà¤¨à¥€ भू-भागहरà¥à¤ªà¥‹à¤°à¥à¤šà¥à¤—लपलाउपà¥à¤¯à¤¾à¤°à¤¾à¤—à¥à¤µà¥‡à¤•à¤¤à¤¾à¤°à¤¬à¤¾à¤¹à¥à¤¯ ओसनियारियà¥à¤¨à¤¿à¤¯à¤¨à¤°à¥‹à¤®à¤¾à¤¨à¤¿à¤¯à¤¾" + + "सरà¥à¤¬à¤¿à¤¯à¤¾à¤°à¥‚सरवाणà¥à¤¡à¤¾à¤¸à¤¾à¤‰à¤¦à¥€ अरबसोलोमोन टापà¥à¤¹à¤°à¥à¤¸à¥‡à¤šà¥‡à¤²à¥‡à¤¸à¤¸à¥à¤¡à¤¾à¤¨à¤¸à¥à¤µà¤¿à¤¡à¥‡à¤¨à¤¸à¤¿à¤™à¥à¤—ापà¥à¤°à¤¸" + + "ेनà¥à¤Ÿ हेलेनासà¥à¤²à¥‹à¤­à¥‡à¤¨à¤¿à¤¯à¤¾à¤¸à¤­à¤¾à¤²à¥à¤¬à¤¾à¤°à¥à¤¡ र जान मायेनसà¥à¤²à¥‹à¤­à¤¾à¤•à¤¿à¤¯à¤¾à¤¸à¤¿à¤à¤°à¥à¤°à¤¾ लिओनसानॠ" + + "मारिनोसेनेगालसोमालियासà¥à¤°à¤¿à¤¨à¥‡à¤®à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ सà¥à¤¡à¤¾à¤¨à¤¸à¤¾à¤“ टोमे र पà¥à¤°à¤¿à¤¨à¥à¤¸à¤¿à¤ªà¤à¤²à¥ सालà¥à¤­" + + "ाडोरसिनà¥à¤Ÿ मारà¥à¤Ÿà¥‡à¤¨à¤¸à¤¿à¤°à¤¿à¤¯à¤¾à¤¸à¥à¤µà¤¾à¤œà¤¿à¤²à¥à¤¯à¤¾à¤£à¥à¤¡à¤Ÿà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤¾à¤¨ डा कà¥à¤¨à¥à¤¹à¤¾à¤¤à¥à¤°à¥à¤• र काइकोस " + + "टापà¥à¤šà¤¾à¤¡à¤«à¥à¤°à¤¾à¤¨à¥à¤¸à¥‡à¤²à¥€ दकà¥à¤·à¤¿à¤£à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤¹à¤°à¥à¤Ÿà¥‹à¤—ोथाइलà¥à¤¯à¤¾à¤£à¥à¤¡à¤¤à¤¾à¤œà¤¿à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤¤à¥‹à¤•à¥‡à¤²à¤¾à¤‰à¤Ÿà¤¿" + + "मोर-लेसà¥à¤Ÿà¥‡à¤¤à¥à¤°à¥à¤•à¤®à¥‡à¤¨à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤Ÿà¥à¤¯à¥à¤¨à¤¿à¤¸à¤¿à¤¯à¤¾à¤Ÿà¥‹à¤‚गाटरà¥à¤•à¥€à¤¤à¥à¤°à¤¿à¤¨à¤¿à¤¡à¤¾à¤¡ à¤à¤£à¥à¤¡ टोबागोतà¥à¤­à¤¾à¤²" + + "à¥à¤¤à¤¾à¤‡à¤µà¤¾à¤¨à¤¤à¤¾à¤¨à¥à¤œà¤¾à¤¨à¤¿à¤¯à¤¾à¤¯à¥à¤•à¥à¤°à¥‡à¤¨à¤¯à¥à¤—ाणà¥à¤¡à¤¾à¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ बाहà¥à¤¯ टापà¥à¤¹à¤°à¥à¤¸à¤‚यà¥à¤•à¥à¤¤ राज" + + "à¥à¤¯à¤‰à¤°à¥‚गà¥à¤µà¥‡à¤‰à¤œà¥à¤¬à¥‡à¤•à¤¿à¤¸à¥à¤¤à¤¾à¤¨à¤­à¥‡à¤Ÿà¤¿à¤•à¤¨ सिटीसेनà¥à¤Ÿ भिनà¥à¤¸à¥‡à¤¨à¥à¤Ÿ र गà¥à¤°à¥‡à¤¨à¤¾à¤¡à¤¿à¤¨à¥à¤¸à¤­à¥‡à¤¨à¥‡à¤œà¥à¤à¤²à¤¾" + + "बेलायती भरà¥à¤œà¤¿à¤¨ टापà¥à¤¹à¤°à¥à¤¸à¤‚यà¥à¤•à¥à¤¤ राजà¥à¤¯ भरà¥à¤œà¤¿à¤¨ टापà¥à¤¹à¤°à¥à¤­à¤¿à¤à¤¤à¤¨à¤¾à¤®à¤­à¤¾à¤¨à¥à¤†à¤¤à¥à¤µà¤¾à¤²à¤¿à¤¸ " + + "र फà¥à¤Ÿà¥à¤¨à¤¾à¤¸à¤¾à¤®à¥‹à¤†à¤•à¥‹à¤¸à¥‹à¤µà¥‹à¤¯à¥‡à¤®à¥‡à¤¨à¤®à¤¾à¤¯à¥‹à¤Ÿà¥à¤Ÿà¤¦à¤•à¥à¤·à¤¿à¤£ अफà¥à¤°à¤¿à¤•à¤¾à¤œà¤¾à¤®à¥à¤¬à¤¿à¤¯à¤¾à¤œà¤¿à¤®à¥à¤¬à¤¾à¤¬à¥‡à¤…जà¥à¤žà¤¾à¤¤ कà¥" + + "षेतà¥à¤°à¤µà¤¿à¤¶à¥à¤µà¤…फà¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤° अमेरिकादकà¥à¤·à¤¿à¤£ अमेरिकाओसनियापशà¥à¤šà¤¿à¤®à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤•à¥‡à¤¨à¥à¤¦" + + "à¥à¤°à¥€à¤¯ अमेरिकापूरà¥à¤µà¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤‰à¤¤à¥à¤¤à¤°à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤®à¤§à¥à¤¯ अफà¥à¤°à¤¿à¤•à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ अफà¥à¤°à¤¿à¤•à¤¾à¤…मे" + + "रिकासउतà¥à¤¤à¤°à¥€ अमेरिकाकà¥à¤¯à¤¾à¤°à¤¿à¤¬à¤¿à¤¯à¤¨à¤ªà¥‚रà¥à¤µà¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¦à¤•à¥à¤·à¤¿à¤£ पूरà¥à¤µà¥€ à¤à¤¶" + + "ियादकà¥à¤·à¤¿à¤£à¥€ यà¥à¤°à¥‹à¤ªà¤…षà¥à¤Ÿà¥à¤°à¤¾à¤²à¤¾à¤¸à¤¿à¤¯à¤¾à¤®à¥‡à¤²à¤¾à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤®à¤¾à¤‡à¤•à¥à¤°à¥‹à¤¨à¥‡à¤¸à¤¿à¤¯à¤¾à¤²à¥€ कà¥à¤·à¥‡à¤¤à¥à¤°à¤ªà¥‹à¤²à¤¿à¤¨à¥‡à¤¶à¤¿" + + "याà¤à¤¶à¤¿à¤¯à¤¾à¤•à¥‡à¤¨à¥à¤¦à¥à¤°à¥€à¤¯ à¤à¤¶à¤¿à¤¯à¤¾à¤ªà¤¶à¥à¤šà¤¿à¤®à¥€ à¤à¤¶à¤¿à¤¯à¤¾à¤¯à¥à¤°à¥‹à¤ªà¤ªà¥‚रà¥à¤µà¥€ यà¥à¤°à¥‹à¤ªà¤‰à¤¤à¥à¤¤à¤°à¥€ यà¥à¤°à¥‹à¤ªà¤ªà¤¶à¥à¤šà¤¿à¤®" + + "ी यà¥à¤°à¥‹à¤ªà¤²à¥à¤¯à¤¾à¤Ÿà¤¿à¤¨ अमेरिका" + +var neRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0028, 0x0043, 0x007b, 0x009c, 0x00ce, 0x00e6, 0x0101, + 0x011c, 0x0131, 0x014f, 0x0170, 0x0192, 0x01ad, 0x01ce, 0x01dd, + 0x0205, 0x021d, 0x0267, 0x0282, 0x029d, 0x02b5, 0x02d7, 0x02f5, + 0x0307, 0x031f, 0x032e, 0x035c, 0x0371, 0x0386, 0x039e, 0x03e4, + 0x03f9, 0x040b, 0x041a, 0x0436, 0x0454, 0x0469, 0x0478, 0x0490, + 0x04ca, 0x04f5, 0x053f, 0x057e, 0x05a5, 0x05c4, 0x05e3, 0x05ef, + 0x0607, 0x0610, 0x062e, 0x065f, 0x067d, 0x068f, 0x06a8, 0x06bd, + 0x06e5, 0x06fa, 0x071c, 0x072e, 0x0756, 0x076e, 0x0786, 0x079e, + // Entry 40 - 7F + 0x07cf, 0x07ea, 0x0810, 0x0825, 0x0840, 0x0852, 0x087a, 0x0895, + 0x08a4, 0x08bf, 0x08ea, 0x090b, 0x0917, 0x0948, 0x096f, 0x0994, + 0x09a9, 0x09b8, 0x09ca, 0x09e2, 0x09f7, 0x0a25, 0x0a3d, 0x0a49, + 0x0a6a, 0x0a8e, 0x0aa6, 0x0ab2, 0x0acd, 0x0af3, 0x0b02, 0x0b76, + 0x0b94, 0x0ba3, 0x0bbf, 0x0bd1, 0x0c38, 0x0c99, 0x0cb1, 0x0ccc, + 0x0cd8, 0x0ced, 0x0d1b, 0x0d3c, 0x0d5a, 0x0d6c, 0x0d98, 0x0da4, + 0x0df5, 0x0e01, 0x0e0d, 0x0e2e, 0x0e3d, 0x0e4c, 0x0e5e, 0x0e70, + 0x0e7f, 0x0e91, 0x0eb2, 0x0ecd, 0x0ee5, 0x0efa, 0x0f2d, 0x0f4f, + // Entry 80 - BF + 0x0f74, 0x0f83, 0x0fa2, 0x0fc0, 0x0fcc, 0x0fdb, 0x0ffd, 0x1027, + 0x1042, 0x105d, 0x106f, 0x108a, 0x10a8, 0x10c0, 0x10d2, 0x10ea, + 0x10fc, 0x1114, 0x1138, 0x115d, 0x1178, 0x11a0, 0x11c4, 0x11d0, + 0x11fd, 0x1218, 0x126c, 0x12a1, 0x12bc, 0x12dd, 0x1301, 0x1313, + 0x1328, 0x1343, 0x1355, 0x136d, 0x1382, 0x139d, 0x13b5, 0x13e0, + 0x13ef, 0x1414, 0x142f, 0x144d, 0x1474, 0x1483, 0x1492, 0x14a1, + 0x14b0, 0x14d7, 0x14e0, 0x14ef, 0x14fb, 0x1538, 0x1567, 0x1582, + 0x159d, 0x15b8, 0x15fa, 0x162b, 0x164d, 0x1688, 0x16a0, 0x16ac, + // Entry C0 - FF + 0x16ca, 0x16d6, 0x16f8, 0x1710, 0x1728, 0x173d, 0x1746, 0x175b, + 0x1774, 0x179f, 0x17b4, 0x17c3, 0x17d8, 0x17f3, 0x1815, 0x1833, + 0x186f, 0x188d, 0x18af, 0x18ce, 0x18e3, 0x18fb, 0x1910, 0x1935, + 0x196b, 0x1990, 0x19b5, 0x19c7, 0x19ee, 0x1a23, 0x1a56, 0x1a5f, + 0x1ab2, 0x1abe, 0x1adc, 0x1afd, 0x1b12, 0x1b34, 0x1b5e, 0x1b7c, + 0x1b8b, 0x1b9a, 0x1bd5, 0x1be7, 0x1bf9, 0x1c17, 0x1c2c, 0x1c44, + 0x1c8f, 0x1cb4, 0x1cc9, 0x1ced, 0x1d0c, 0x1d5d, 0x1d78, 0x1db6, + 0x1e04, 0x1e19, 0x1e2e, 0x1e54, 0x1e63, 0x1e75, 0x1e84, 0x1e99, + // Entry 100 - 13F + 0x1ec1, 0x1ed9, 0x1ef1, 0x1f19, 0x1f28, 0x1f3d, 0x1f62, 0x1f8a, + 0x1f9c, 0x1fc7, 0x1ff8, 0x2020, 0x2048, 0x206a, 0x2095, 0x20ad, + 0x20d5, 0x20f3, 0x2115, 0x213a, 0x216f, 0x2194, 0x21bb, 0x21d9, + 0x221c, 0x223a, 0x2249, 0x2274, 0x2299, 0x22a8, 0x22ca, 0x22ec, + 0x2311, 0x233c, +} // Size: 604 bytes + +var nlRegionStr string = "" + // Size: 3062 bytes + "AscensionAndorraVerenigde Arabische EmiratenAfghanistanAntigua en Barbud" + + "aAnguillaAlbaniëArmeniëAngolaAntarcticaArgentiniëAmerikaans-SamoaOostenr" + + "ijkAustraliëArubaÃ…landAzerbeidzjanBosnië en HerzegovinaBarbadosBanglades" + + "hBelgiëBurkina FasoBulgarijeBahreinBurundiBeninSaint-BarthélemyBermudaBr" + + "uneiBoliviaCaribisch NederlandBraziliëBahama’sBhutanBouveteilandBotswana" + + "BelarusBelizeCanadaCocoseilandenCongo-KinshasaCentraal-Afrikaanse Republ" + + "iekCongo-BrazzavilleZwitserlandIvoorkustCookeilandenChiliKameroenChinaCo" + + "lombiaClippertonCosta RicaCubaKaapverdiëCuraçaoChristmaseilandCyprusTsje" + + "chiëDuitslandDiego GarciaDjiboutiDenemarkenDominicaDominicaanse Republie" + + "kAlgerijeCeuta en MelillaEcuadorEstlandEgypteWestelijke SaharaEritreaSpa" + + "njeEthiopiëEuropese UnieFinlandFijiFalklandeilandenMicronesiaFaeröerFran" + + "krijkGabonVerenigd KoninkrijkGrenadaGeorgiëFrans-GuyanaGuernseyGhanaGibr" + + "altarGroenlandGambiaGuineeGuadeloupeEquatoriaal-GuineaGriekenlandZuid-Ge" + + "orgia en Zuidelijke SandwicheilandenGuatemalaGuamGuinee-BissauGuyanaHong" + + "kong SAR van ChinaHeard en McDonaldeilandenHondurasKroatiëHaïtiHongarije" + + "Canarische EilandenIndonesiëIerlandIsraëlIsle of ManIndiaBritse Gebieden" + + " in de Indische OceaanIrakIranIJslandItaliëJerseyJamaicaJordaniëJapanKen" + + "iaKirgiziëCambodjaKiribatiComorenSaint Kitts en NevisNoord-KoreaZuid-Kor" + + "eaKoeweitKaaimaneilandenKazachstanLaosLibanonSaint LuciaLiechtensteinSri" + + " LankaLiberiaLesothoLitouwenLuxemburgLetlandLibiëMarokkoMonacoMoldaviëMo" + + "ntenegroSaint-MartinMadagaskarMarshalleilandenMacedoniëMaliMyanmar (Birm" + + "a)MongoliëMacau SAR van ChinaNoordelijke MarianenMartiniqueMauritaniëMon" + + "tserratMaltaMauritiusMaldivenMalawiMexicoMaleisiëMozambiqueNamibiëNieuw-" + + "CaledoniëNigerNorfolkNigeriaNicaraguaNederlandNoorwegenNepalNauruNiueNie" + + "uw-ZeelandOmanPanamaPeruFrans-PolynesiëPapoea-Nieuw-GuineaFilipijnenPaki" + + "stanPolenSaint-Pierre en MiquelonPitcairneilandenPuerto RicoPalestijnse " + + "gebiedenPortugalPalauParaguayQataroverig OceaniëRéunionRoemeniëServiëRus" + + "landRwandaSaoedi-ArabiëSalomonseilandenSeychellenSoedanZwedenSingaporeSi" + + "nt-HelenaSloveniëSpitsbergen en Jan MayenSlowakijeSierra LeoneSan Marino" + + "SenegalSomaliëSurinameZuid-SoedanSao Tomé en PrincipeEl SalvadorSint-Maa" + + "rtenSyriëSwazilandTristan da CunhaTurks- en CaicoseilandenTsjaadFranse G" + + "ebieden in de zuidelijke Indische OceaanTogoThailandTadzjikistanTokelauO" + + "ost-TimorTurkmenistanTunesiëTongaTurkijeTrinidad en TobagoTuvaluTaiwanTa" + + "nzaniaOekraïneOegandaKleine afgelegen eilanden van de Verenigde StatenVe" + + "renigde StatenUruguayOezbekistanVaticaanstadSaint Vincent en de Grenadin" + + "esVenezuelaBritse MaagdeneilandenAmerikaanse MaagdeneilandenVietnamVanua" + + "tuWallis en FutunaSamoaKosovoJemenMayotteZuid-AfrikaZambiaZimbabweonbeke" + + "nd gebiedwereldAfrikaNoord-AmerikaZuid-AmerikaOceaniëWest-AfrikaMidden-A" + + "merikaOost-AfrikaNoord-AfrikaCentraal-AfrikaZuidelijk AfrikaAmerikaNoord" + + "elijk AmerikaCaribisch gebiedOost-AziëZuid-AziëZuidoost-AziëZuid-EuropaA" + + "ustralaziëMelanesiëMicronesische regioPolynesiëAziëCentraal-AziëWest-Azi" + + "ëEuropaOost-EuropaNoord-EuropaWest-EuropaLatijns-Amerika" + +var nlRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0049, 0x0051, 0x0059, + 0x0061, 0x0067, 0x0071, 0x007c, 0x008c, 0x0096, 0x00a0, 0x00a5, + 0x00ab, 0x00b7, 0x00cd, 0x00d5, 0x00df, 0x00e6, 0x00f2, 0x00fb, + 0x0102, 0x0109, 0x010e, 0x011f, 0x0126, 0x012c, 0x0133, 0x0146, + 0x014f, 0x0159, 0x015f, 0x016b, 0x0173, 0x017a, 0x0180, 0x0186, + 0x0193, 0x01a1, 0x01be, 0x01cf, 0x01da, 0x01e3, 0x01ef, 0x01f4, + 0x01fc, 0x0201, 0x0209, 0x0213, 0x021d, 0x0221, 0x022c, 0x0234, + 0x0243, 0x0249, 0x0252, 0x025b, 0x0267, 0x026f, 0x0279, 0x0281, + // Entry 40 - 7F + 0x0297, 0x029f, 0x02af, 0x02b6, 0x02bd, 0x02c3, 0x02d4, 0x02db, + 0x02e1, 0x02ea, 0x02f7, 0x02fe, 0x0302, 0x0312, 0x031c, 0x0324, + 0x032d, 0x0332, 0x0345, 0x034c, 0x0354, 0x0360, 0x0368, 0x036d, + 0x0376, 0x037f, 0x0385, 0x038b, 0x0395, 0x03a7, 0x03b2, 0x03dd, + 0x03e6, 0x03ea, 0x03f7, 0x03fd, 0x0413, 0x042c, 0x0434, 0x043c, + 0x0442, 0x044b, 0x045e, 0x0468, 0x046f, 0x0476, 0x0481, 0x0486, + 0x04ab, 0x04af, 0x04b3, 0x04ba, 0x04c1, 0x04c7, 0x04ce, 0x04d7, + 0x04dc, 0x04e1, 0x04ea, 0x04f2, 0x04fa, 0x0501, 0x0515, 0x0520, + // Entry 80 - BF + 0x052a, 0x0531, 0x0540, 0x054a, 0x054e, 0x0555, 0x0560, 0x056d, + 0x0576, 0x057d, 0x0584, 0x058c, 0x0595, 0x059c, 0x05a2, 0x05a9, + 0x05af, 0x05b8, 0x05c2, 0x05ce, 0x05d8, 0x05e8, 0x05f2, 0x05f6, + 0x0605, 0x060e, 0x0621, 0x0635, 0x063f, 0x064a, 0x0654, 0x0659, + 0x0662, 0x066a, 0x0670, 0x0676, 0x067f, 0x0689, 0x0691, 0x06a1, + 0x06a6, 0x06ad, 0x06b4, 0x06bd, 0x06c6, 0x06cf, 0x06d4, 0x06d9, + 0x06dd, 0x06ea, 0x06ee, 0x06f4, 0x06f8, 0x0708, 0x071b, 0x0725, + 0x072d, 0x0732, 0x074a, 0x075a, 0x0765, 0x0779, 0x0781, 0x0786, + // Entry C0 - FF + 0x078e, 0x0793, 0x07a2, 0x07aa, 0x07b3, 0x07ba, 0x07c1, 0x07c7, + 0x07d5, 0x07e5, 0x07ef, 0x07f5, 0x07fb, 0x0804, 0x080f, 0x0818, + 0x0830, 0x0839, 0x0845, 0x084f, 0x0856, 0x085e, 0x0866, 0x0871, + 0x0886, 0x0891, 0x089d, 0x08a3, 0x08ac, 0x08bc, 0x08d4, 0x08da, + 0x090a, 0x090e, 0x0916, 0x0922, 0x0929, 0x0933, 0x093f, 0x0947, + 0x094c, 0x0953, 0x0965, 0x096b, 0x0971, 0x0979, 0x0982, 0x0989, + 0x09ba, 0x09ca, 0x09d1, 0x09dc, 0x09e8, 0x0a06, 0x0a0f, 0x0a25, + 0x0a40, 0x0a47, 0x0a4e, 0x0a5e, 0x0a63, 0x0a69, 0x0a6e, 0x0a75, + // Entry 100 - 13F + 0x0a80, 0x0a86, 0x0a8e, 0x0a9d, 0x0aa3, 0x0aa9, 0x0ab6, 0x0ac2, + 0x0aca, 0x0ad5, 0x0ae3, 0x0aee, 0x0afa, 0x0b09, 0x0b19, 0x0b20, + 0x0b32, 0x0b42, 0x0b4c, 0x0b56, 0x0b64, 0x0b6f, 0x0b7b, 0x0b85, + 0x0b98, 0x0ba2, 0x0ba7, 0x0bb5, 0x0bbf, 0x0bc5, 0x0bd0, 0x0bdc, + 0x0be7, 0x0bf6, +} // Size: 604 bytes + +var noRegionStr string = "" + // Size: 2812 bytes + "AscensionAndorraDe forente arabiske emiraterAfghanistanAntigua og Barbud" + + "aAnguillaAlbaniaArmeniaAngolaAntarktisArgentinaAmerikansk SamoaØsterrike" + + "AustraliaArubaÃ…landAserbajdsjanBosnia-HercegovinaBarbadosBangladeshBelgi" + + "aBurkina FasoBulgariaBahrainBurundiBeninSaint-BarthélemyBermudaBruneiBol" + + "iviaKaribisk NederlandBrasilBahamasBhutanBouvetøyaBotswanaHviterusslandB" + + "elizeCanadaKokosøyeneKongo-KinshasaDen sentralafrikanske republikkKongo-" + + "BrazzavilleSveitsElfenbenskystenCookøyeneChileKamerunKinaColombiaClipper" + + "tonøyaCosta RicaCubaKapp VerdeCuraçaoChristmasøyaKyprosTsjekkiaTysklandD" + + "iego GarciaDjiboutiDanmarkDominicaDen dominikanske republikkAlgerieCeuta" + + " og MelillaEcuadorEstlandEgyptVest-SaharaEritreaSpaniaEtiopiaEUFinlandFi" + + "jiFalklandsøyeneMikronesiaføderasjonenFærøyeneFrankrikeGabonStorbritanni" + + "aGrenadaGeorgiaFransk GuyanaGuernseyGhanaGibraltarGrønlandGambiaGuineaGu" + + "adeloupeEkvatorial-GuineaHellasSør-Georgia og Sør-SandwichøyeneGuatemala" + + "GuamGuinea-BissauGuyanaHongkong S.A.R. KinaHeard- og McDonaldøyeneHondur" + + "asKroatiaHaitiUngarnKanariøyeneIndonesiaIrlandIsraelManIndiaDet britiske" + + " territoriet i IndiahavetIrakIranIslandItaliaJerseyJamaicaJordanJapanKen" + + "yaKirgisistanKambodsjaKiribatiKomoreneSaint Kitts og NevisNord-KoreaSør-" + + "KoreaKuwaitCaymanøyeneKasakhstanLaosLibanonSt. LuciaLiechtensteinSri Lan" + + "kaLiberiaLesothoLitauenLuxemburgLatviaLibyaMarokkoMonacoMoldovaMontenegr" + + "oSaint-MartinMadagaskarMarshalløyeneMakedoniaMaliMyanmar (Burma)Mongolia" + + "Macao S.A.R. KinaNord-MarianeneMartiniqueMauritaniaMontserratMaltaMaurit" + + "iusMaldiveneMalawiMexicoMalaysiaMosambikNamibiaNy-CaledoniaNigerNorfolkø" + + "yaNigeriaNicaraguaNederlandNorgeNepalNauruNiueNew ZealandOmanPanamaPeruF" + + "ransk PolynesiaPapua Ny-GuineaFilippinenePakistanPolenSt. Pierre og Miqu" + + "elonPitcairnPuerto RicoDet palestinske omrÃ¥detPortugalPalauParaguayQatar" + + "ytre OseaniaRéunionRomaniaSerbiaRusslandRwandaSaudi-ArabiaSalomonøyeneSe" + + "ychelleneSudanSverigeSingaporeSt. HelenaSloveniaSvalbard og Jan MayenSlo" + + "vakiaSierra LeoneSan MarinoSenegalSomaliaSurinamSør-SudanSão Tomé og Prí" + + "ncipeEl SalvadorSint MaartenSyriaSwazilandTristan da CunhaTurks- og Caic" + + "osøyeneTsjadDe franske sørterritorierTogoThailandTadsjikistanTokelauØst-" + + "TimorTurkmenistanTunisiaTongaTyrkiaTrinidad og TobagoTuvaluTaiwanTanzani" + + "aUkrainaUgandaUSAs ytre øyerUSAUruguayUsbekistanVatikanstatenSt. Vincent" + + " og GrenadineneVenezuelaDe britiske jomfruøyeneDe amerikanske jomfruøyen" + + "eVietnamVanuatuWallis og FutunaSamoaKosovoJemenMayotteSør-AfrikaZambiaZi" + + "mbabweukjent omrÃ¥deverdenAfrikaNord-AmerikaSør-AmerikaOseaniaVest-Afrika" + + "Mellom-AmerikaØst-AfrikaNord-AfrikaSentral-AfrikaSørlige AfrikaAmerikaNo" + + "rdlige AmerikaKaribiaØst-AsiaSør-AsiaSørøst-AsiaSør-EuropaAustralasiaMel" + + "anesiaMikronesiaPolynesiaAsiaSentral-AsiaVest-AsiaEuropaØst-EuropaNord-E" + + "uropaVest-EuropaLatin-Amerika" + +var noRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x002c, 0x0037, 0x0049, 0x0051, 0x0058, + 0x005f, 0x0065, 0x006e, 0x0077, 0x0087, 0x0091, 0x009a, 0x009f, + 0x00a5, 0x00b1, 0x00c3, 0x00cb, 0x00d5, 0x00db, 0x00e7, 0x00ef, + 0x00f6, 0x00fd, 0x0102, 0x0113, 0x011a, 0x0120, 0x0127, 0x0139, + 0x013f, 0x0146, 0x014c, 0x0156, 0x015e, 0x016b, 0x0171, 0x0177, + 0x0182, 0x0190, 0x01af, 0x01c0, 0x01c6, 0x01d5, 0x01df, 0x01e4, + 0x01eb, 0x01ef, 0x01f7, 0x0205, 0x020f, 0x0213, 0x021d, 0x0225, + 0x0232, 0x0238, 0x0240, 0x0248, 0x0254, 0x025c, 0x0263, 0x026b, + // Entry 40 - 7F + 0x0285, 0x028c, 0x029c, 0x02a3, 0x02aa, 0x02af, 0x02ba, 0x02c1, + 0x02c7, 0x02ce, 0x02d0, 0x02d7, 0x02db, 0x02ea, 0x0301, 0x030b, + 0x0314, 0x0319, 0x0326, 0x032d, 0x0334, 0x0341, 0x0349, 0x034e, + 0x0357, 0x0360, 0x0366, 0x036c, 0x0376, 0x0387, 0x038d, 0x03b0, + 0x03b9, 0x03bd, 0x03ca, 0x03d0, 0x03e4, 0x03fc, 0x0404, 0x040b, + 0x0410, 0x0416, 0x0422, 0x042b, 0x0431, 0x0437, 0x043a, 0x043f, + 0x0464, 0x0468, 0x046c, 0x0472, 0x0478, 0x047e, 0x0485, 0x048b, + 0x0490, 0x0495, 0x04a0, 0x04a9, 0x04b1, 0x04b9, 0x04cd, 0x04d7, + // Entry 80 - BF + 0x04e1, 0x04e7, 0x04f3, 0x04fd, 0x0501, 0x0508, 0x0511, 0x051e, + 0x0527, 0x052e, 0x0535, 0x053c, 0x0545, 0x054b, 0x0550, 0x0557, + 0x055d, 0x0564, 0x056e, 0x057a, 0x0584, 0x0592, 0x059b, 0x059f, + 0x05ae, 0x05b6, 0x05c7, 0x05d5, 0x05df, 0x05e9, 0x05f3, 0x05f8, + 0x0601, 0x060a, 0x0610, 0x0616, 0x061e, 0x0626, 0x062d, 0x0639, + 0x063e, 0x0649, 0x0650, 0x0659, 0x0662, 0x0667, 0x066c, 0x0671, + 0x0675, 0x0680, 0x0684, 0x068a, 0x068e, 0x069e, 0x06ad, 0x06b8, + 0x06c0, 0x06c5, 0x06db, 0x06e3, 0x06ee, 0x0706, 0x070e, 0x0713, + // Entry C0 - FF + 0x071b, 0x0720, 0x072c, 0x0734, 0x073b, 0x0741, 0x0749, 0x074f, + 0x075b, 0x0768, 0x0773, 0x0778, 0x077f, 0x0788, 0x0792, 0x079a, + 0x07af, 0x07b7, 0x07c3, 0x07cd, 0x07d4, 0x07db, 0x07e2, 0x07ec, + 0x0803, 0x080e, 0x081a, 0x081f, 0x0828, 0x0838, 0x084e, 0x0853, + 0x086d, 0x0871, 0x0879, 0x0885, 0x088c, 0x0896, 0x08a2, 0x08a9, + 0x08ae, 0x08b4, 0x08c6, 0x08cc, 0x08d2, 0x08da, 0x08e1, 0x08e7, + 0x08f6, 0x08f9, 0x0900, 0x090a, 0x0917, 0x0931, 0x093a, 0x0952, + 0x096d, 0x0974, 0x097b, 0x098b, 0x0990, 0x0996, 0x099b, 0x09a2, + // Entry 100 - 13F + 0x09ad, 0x09b3, 0x09bb, 0x09c9, 0x09cf, 0x09d5, 0x09e1, 0x09ed, + 0x09f4, 0x09ff, 0x0a0d, 0x0a18, 0x0a23, 0x0a31, 0x0a40, 0x0a47, + 0x0a57, 0x0a5e, 0x0a67, 0x0a70, 0x0a7d, 0x0a88, 0x0a93, 0x0a9c, + 0x0aa6, 0x0aaf, 0x0ab3, 0x0abf, 0x0ac8, 0x0ace, 0x0ad9, 0x0ae4, + 0x0aef, 0x0afc, +} // Size: 604 bytes + +var paRegionStr string = "" + // Size: 7688 bytes + "ਅਸੈਂਸ਼ਨ ਟਾਪੂਅੰਡੋਰਾਸੰਯà©à¨•à¨¤ ਅਰਬ ਅਮੀਰਾਤਅਫ਼ਗਾਨਿਸਤਾਨà¨à¨‚ਟੀਗà©à¨† ਅਤੇ ਬਾਰਬà©à¨¡à¨¾à¨…ੰਗà©à¨‡à¨²à¨¾" + + "ਅਲਬਾਨੀਆਅਰਮੀਨੀਆਅੰਗੋਲਾਅੰਟਾਰਕਟਿਕਾਅਰਜਨਟੀਨਾਅਮੈਰੀਕਨ ਸਮੋਆਆਸਟਰੀਆਆਸਟà©à¨°à©‡à¨²à©€à¨†à¨…ਰੂਬਾ" + + "ਅਲੈਂਡ ਟਾਪੂਅਜ਼ਰਬਾਈਜਾਨਬੋਸਨੀਆ ਅਤੇ ਹਰਜ਼ੇਗੋਵੀਨਾਬਾਰਬਾਡੋਸਬੰਗਲਾਦੇਸ਼ਬੈਲਜੀਅਮਬà©à¨°à¨•" + + "ੀਨਾ ਫ਼ਾਸੋਬà©à¨²à¨—ਾਰੀਆਬਹਿਰੀਨਬà©à¨°à©à©°à¨¡à©€à¨¬à©‡à¨¨à¨¿à¨¨à¨¸à©‡à¨‚ਟ ਬਾਰਥੇਲੇਮੀਬਰਮੂਡਾਬਰੂਨੇਈਬੋਲੀਵੀਆਕੈ" + + "ਰੇਬੀਆਈ ਨੀਦਰਲੈਂਡਬà©à¨°à¨¾à¨œà¨¼à©€à¨²à¨¬à¨¹à¨¾à¨®à¨¾à¨¸à¨­à©‚ਟਾਨਬੌਵੇਟ ਟਾਪੂਬੋਟਸਵਾਨਾਬੇਲਾਰੂਸਬੇਲੀਜ਼ਕੈਨੇਡ" + + "ਾਕੋਕੋਸ (ਕੀਲਿੰਗ) ਟਾਪੂਕਾਂਗੋ - ਕਿੰਸ਼ਾਸਾਕੇਂਦਰੀ ਅਫ਼ਰੀਕੀ ਗਣਰਾਜਕਾਂਗੋ - ਬà©à¨°à¨¾à¨œà¨¼" + + "ਾਵਿਲੇਸਵਿਟਜ਼ਰਲੈਂਡਕੋਟ ਡੀਵੋਆਰਕà©à©±à¨• ਟਾਪੂਚਿਲੀਕੈਮਰੂਨਚੀਨਕੋਲੰਬੀਆਕਲਿੱਪਰਟਨ ਟਾਪੂਕੋ" + + "ਸਟਾ ਰੀਕਾਕਿਊਬਾਕੇਪ ਵਰਡੇਕà©à¨°à¨¾à¨•à¨¾à¨“ਕà©à¨°à¨¿à¨¸à¨®à¨¿à¨¸ ਟਾਪੂਸਾਇਪà©à¨°à¨¸à¨šà©ˆà¨• ਗਣਰਾਜਜਰਮਨੀਡੀਇਗੋ ਗਾ" + + "ਰਸੀਆਜ਼ੀਬੂਤੀਡੈਨਮਾਰਕਡੋਮੀਨਿਕਾਡੋਮੀਨਿਕਾਈ ਗਣਰਾਜਅਲਜੀਰੀਆਸਿਓਟਾ ਅਤੇ ਮੇਲਿੱਲਾਇਕਵੇਡ" + + "ੋਰਇਸਟੋਨੀਆਮਿਸਰਪੱਛਮੀ ਸਹਾਰਾਇਰੀਟà©à¨°à¨¿à¨†à¨¸à¨ªà©‡à¨¨à¨‡à¨¥à©‹à¨ªà©€à¨†à¨¯à©‚ਰਪੀ ਯੂਨੀਅਨਫਿਨਲੈਂਡਫ਼ਿਜੀਫ਼ਾਕ" + + "ਲੈਂਡ ਟਾਪੂਮਾਇਕà©à¨°à©‹à¨¨à©‡à¨¸à¨¼à©€à¨†à¨«à©ˆà¨°à©‹ ਟਾਪੂਫ਼ਰਾਂਸਗਬੋਨਯੂਨਾਈਟਡ ਕਿੰਗਡਮਗà©à¨°à©‡à¨¨à¨¾à¨¡à¨¾à¨œà¨¾à¨°à¨œà©€à¨†à¨«" + + "਼ਰੈਂਚ ਗà©à¨†à¨¨à¨¾à¨—ਰਨਜੀਘਾਨਾਜਿਬਰਾਲਟਰਗà©à¨°à©€à¨¨à¨²à©ˆà¨‚ਡਗੈਂਬੀਆਗਿਨੀਗà©à¨†à¨¡à©‡à¨²à©‹à¨ªà¨­à©‚-ਖੰਡੀ ਗਿਨੀਗà©à¨°" + + "ੀਸਦੱਖਣੀ ਜਾਰਜੀਆ ਅਤੇ ਦੱਖਣੀ ਸੈਂਡਵਿਚ ਟਾਪੂਗà©à¨†à¨Ÿà©‡à¨®à¨¾à¨²à¨¾à¨—à©à¨†à¨®à¨—ਿਨੀ-ਬਿਸਾਉਗà©à¨¯à¨¾à¨¨à¨¾à¨¹à¨¾à¨‚ਗ" + + " ਕਾਂਗ à¨à¨¸à¨à¨†à¨° ਚੀਨਹਰਡ ਤੇ ਮੈਕਡੋਨਾਲਡ ਟਾਪੂਹੋਂਡà©à¨°à¨¸à¨•à¨°à©‹à¨à¨¸à¨¼à©€à¨†à¨¹à©ˆà¨¤à©€à¨¹à©°à¨—ਰੀਕੇਨਾਰੀ ਟਾਪੂਇ" + + "ੰਡੋਨੇਸ਼ੀਆਆਇਰਲੈਂਡਇਜ਼ਰਾਈਲਆਇਲ ਆਫ ਮੈਨਭਾਰਤਬਰਤਾਨਵੀ ਹਿੰਦ ਮਹਾਂਸਾਗਰ ਪà©à¨°à¨¦à©‡à¨¸à¨¼à¨‡à¨°à¨¾à¨•" + + "ਈਰਾਨਆਈਸਲੈਂਡਇਟਲੀਜਰਸੀਜਮਾਇਕਾਜਾਰਡਨਜਪਾਨਕੀਨੀਆਕਿਰਗਿਜ਼ਸਤਾਨਕੰਬੋਡੀਆਕਿਰਬਾਤੀਕੋਮੋਰੋ" + + "ਸਸੈਂਟ ਕਿਟਸ à¨à¨‚ਡ ਨੇਵਿਸਉੱਤਰੀ ਕੋਰੀਆਦੱਖਣੀ ਕੋਰੀਆਕà©à¨µà©ˆà¨¤à¨•à©‡à¨®à©ˆà¨¨ ਟਾਪੂਕਜ਼ਾਖਸਤਾਨਲਾਓਸ" + + "ਲੈਬਨਾਨਸੇਂਟ ਲੂਸੀਆਲਿਚੇਂਸਟਾਇਨਸà©à¨°à©€ ਲੰਕਾਲਾਈਬੀਰੀਆਲੇਸੋਥੋਲਿਥà©à¨†à¨¨à©€à¨†à¨²à¨•à¨œà¨¼à¨®à¨¬à¨°à¨—ਲਾਟਵੀ" + + "ਆਲੀਬੀਆਮੋਰੱਕੋਮੋਨਾਕੋਮੋਲਡੋਵਾਮੋਂਟੇਨੇਗਰੋਸੇਂਟ ਮਾਰਟਿਨਮੈਡਾਗਾਸਕਰਮਾਰਸ਼ਲ ਟਾਪੂਮੈਕਡ" + + "ੋਨੀਆਮਾਲੀਮਿਆਂਮਾਰ (ਬਰਮਾ)ਮੰਗੋਲੀਆਮਕਾਉ à¨à¨¸à¨à¨†à¨° ਚੀਨਉੱਤਰੀ ਮਾਰੀਆਨਾ ਟਾਪੂਮਾਰਟੀਨਿਕਮ" + + "ੋਰਿਟਾਨੀਆਮੋਂਟਸੇਰਾਤਮਾਲਟਾਮੌਰਿਸ਼ਸਮਾਲਦੀਵਮਲਾਵੀਮੈਕਸੀਕੋਮਲੇਸ਼ੀਆਮੋਜ਼ਾਮਬੀਕਨਾਮੀਬੀਆ" + + "ਨਿਊ ਕੈਲੇਡੋਨੀਆਨਾਈਜਰਨੋਰਫੌਕ ਟਾਪੂਨਾਈਜੀਰੀਆਨਿਕਾਰਾਗà©à¨†à¨¨à©€à¨¦à¨°à¨²à©ˆà¨‚ਡਨਾਰਵੇਨੇਪਾਲਨਾਉਰੂਨ" + + "ਿਯੂਨਿਊਜ਼ੀਲੈਂਡਓਮਾਨਪਨਾਮਾਪੇਰੂਫਰੈਂਚ ਪੋਲੀਨੇਸ਼ੀਆਪਾਪੂਆ ਨਿਊ ਗਿਨੀਫਿਲੀਪੀਂਸਪਾਕਿਸਤ" + + "ਾਨਪੋਲੈਂਡਸੈਂਟ ਪੀਅਰੇ à¨à¨‚ਡ ਮਿਕੇਲਨਪਿਟਕੇਰਨ ਟਾਪੂਪਿਊਰਟੋ ਰਿਕੋਫਿਲੀਸਤੀਨੀ ਖੇਤਰਪà©à¨°à¨¤" + + "ਗਾਲਪਲਾਉਪੈਰਾਗਵੇਕਤਰਆਊਟਲਾਇੰਗ ਓਸ਼ੀਨੀਆਰਿਯੂਨੀਅਨਰੋਮਾਨੀਆਸਰਬੀਆਰੂਸਰਵਾਂਡਾਸਾਊਦੀ ਅਰ" + + "ਬਸੋਲੋਮਨ ਟਾਪੂਸੇਸ਼ਲਸਸੂਡਾਨਸਵੀਡਨਸਿੰਗਾਪà©à¨°à¨¸à©‡à¨‚ਟ ਹੇਲੇਨਾਸਲੋਵੇਨੀਆਸਵਾਲਬਰਡ ਅਤੇ ਜਾਨ" + + " ਮਾਯੇਨਸਲੋਵਾਕੀਆਸਿà¨à¨°à¨¾ ਲਿਓਨਸੈਨ ਮਰੀਨੋਸੇਨੇਗਲਸੋਮਾਲੀਆਸੂਰੀਨਾਮਦੱਖਣੀ ਸੂਡਾਨਸਾਓ ਟੋਮ " + + "ਅਤੇ ਪà©à¨°à¨¿à©°à¨¸à©€à¨ªà©‡à¨…ਲ ਸਲਵਾਡੋਰਸਿੰਟ ਮਾਰਟੀਨਸੀਰੀਆਸਵਾਜ਼ੀਲੈਂਡਟà©à¨°à¨¿à¨¸à¨Ÿà¨¾à¨¨ ਦਾ ਕà©à©°à¨¹à¨¾à¨Ÿà©à¨°à¨•" + + "ਸ ਅਤੇ ਕੈਕੋਸ ਟਾਪੂਚਾਡਫਰੈਂਚ ਦੱਖਣੀ ਪà©à¨°à¨¦à©‡à¨¸à¨¼à¨Ÿà©‹à¨—ੋਥਾਈਲੈਂਡਤਾਜਿਕਿਸਤਾਨਟੋਕੇਲਾਉਤਿਮੋ" + + "ਰ-ਲੇਸਤੇਤà©à¨°à¨•à¨®à©‡à¨¨à¨¿à¨¸à¨¤à¨¾à¨¨à¨Ÿà¨¿à¨Šà¨¨à©€à¨¸à¨¼à©€à¨†à¨Ÿà©Œà¨‚ਗਾਤà©à¨°à¨•à©€à¨Ÿà©à¨°à¨¿à¨¨à©€à¨¡à¨¾à¨¡ ਅਤੇ ਟੋਬਾਗੋਟà©à¨µà¨¾à¨²à©‚ਤਾਇਵਾਨ" + + "ਤਨਜ਼ਾਨੀਆਯੂਕਰੇਨਯੂਗਾਂਡਾਯੂ.à¨à¨¸. ਦੂਰ-ਦà©à¨°à¨¾à¨¡à©‡ ਟਾਪੂਸੰਯà©à¨•à¨¤ ਰਾਜਉਰੂਗਵੇਉਜ਼ਬੇਕਿਸਤਾਨ" + + "ਵੈਟੀਕਨ ਸਿਟੀਸੇਂਟ ਵਿਨਸੈਂਟ à¨à¨‚ਡ ਗà©à¨°à©‡à¨¨à¨¾à¨¡à©€à¨¨à¨¸à¨µà©‡à¨¨à©‡à¨œà¨¼à©‚à¨à¨²à¨¾à¨¬à©à¨°à¨¿à¨Ÿà¨¿à¨¸à¨¼ ਵਰਜਿਨ ਟਾਪੂਯੂ " + + "à¨à¨¸ ਵਰਜਿਨ ਟਾਪੂਵੀਅਤਨਾਮਵਾਨੂਆਟੂਵਾਲਿਸ ਅਤੇ ਫੂਟੂਨਾਸਾਮੋਆਕੋਸੋਵੋਯਮਨਮਾਯੋਟੀਦੱਖਣੀ ਅ" + + "ਫਰੀਕਾਜ਼ਾਮਬੀਆਜ਼ਿੰਬਾਬਵੇਅਣਪਛਾਤਾ ਖੇਤਰਸੰਸਾਰਅਫ਼ਰੀਕਾਉੱਤਰ ਅਮਰੀਕਾਦੱਖਣੀ ਅਮਰੀਕਾਓਸ" + + "਼ੇਨੀਆਪੱਛਮੀ ਅਫ਼ਰੀਕਾਕੇਂਦਰੀ ਅਮਰੀਕਾਪੂਰਬੀ ਅਫ਼ਰੀਕਾਉੱਤਰੀ ਅਫ਼ਰੀਕਾਮੱਧ ਅਫ਼ਰੀਕਾਦੱ" + + "ਖਣੀ ਅਫ਼ਰੀਕਾਅਮਰੀਕਾਉੱਤਰੀ ਅਮਰੀਕਾਕੈਰੇਬੀਆਈਪੂਰਬੀ à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣੀ à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣ-ਪੂਰਬੀ " + + "à¨à¨¸à¨¼à©€à¨†à¨¦à©±à¨–ਣੀ ਯੂਰਪਆਸਟਰੇਲੇਸ਼ੀਆਮੇਲਾਨੇਸ਼ੀਆਮਾਇਕà©à¨°à©‹à¨¨à©‡à¨¸à¨¼à©€à¨†à¨ˆ ਖੇਤਰਪੋਲੀਨੇਸ਼ੀਆà¨à¨¸à¨¼à©€à¨†" + + "ਕੇਂਦਰੀ à¨à¨¸à¨¼à©€à¨†à¨ªà©±à¨›à¨®à©€ à¨à¨¸à¨¼à©€à¨†à¨¯à©‚ਰਪਪੂਰਬੀ ਯੂਰਪਉੱਤਰੀ ਯੂਰਪਪੱਛਮੀ ਯੂਰਪਲਾਤੀਨੀ ਅਮਰੀਕਾ" + +var paRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0022, 0x0034, 0x0063, 0x0084, 0x00b9, 0x00ce, 0x00e3, + 0x00f8, 0x010a, 0x0128, 0x0140, 0x0162, 0x0174, 0x018f, 0x019e, + 0x01ba, 0x01d8, 0x0216, 0x022e, 0x0249, 0x025e, 0x0283, 0x029b, + 0x02ad, 0x02c2, 0x02d1, 0x02f9, 0x030b, 0x031d, 0x0332, 0x0363, + 0x037b, 0x038d, 0x039c, 0x03b8, 0x03d0, 0x03e5, 0x03f7, 0x0409, + 0x043a, 0x0464, 0x049c, 0x04cf, 0x04f0, 0x050c, 0x0525, 0x0531, + 0x0543, 0x054c, 0x0561, 0x0586, 0x05a2, 0x05b1, 0x05c7, 0x05dc, + 0x0601, 0x0616, 0x062f, 0x063e, 0x0660, 0x0675, 0x068a, 0x06a2, + // Entry 40 - 7F + 0x06cd, 0x06e2, 0x0711, 0x0726, 0x073b, 0x0747, 0x0766, 0x077e, + 0x078a, 0x079c, 0x07be, 0x07d3, 0x07e2, 0x0807, 0x082e, 0x0847, + 0x0859, 0x0865, 0x088d, 0x08a5, 0x08b7, 0x08d9, 0x08e8, 0x08f4, + 0x090c, 0x0927, 0x0939, 0x0945, 0x095d, 0x097d, 0x098c, 0x09eb, + 0x0a06, 0x0a12, 0x0a2e, 0x0a40, 0x0a73, 0x0aac, 0x0ac1, 0x0ad9, + 0x0ae5, 0x0af4, 0x0b13, 0x0b31, 0x0b46, 0x0b5b, 0x0b75, 0x0b81, + 0x0bd2, 0x0bde, 0x0bea, 0x0bff, 0x0c0b, 0x0c17, 0x0c29, 0x0c38, + 0x0c44, 0x0c53, 0x0c74, 0x0c89, 0x0c9e, 0x0cb3, 0x0ce6, 0x0d05, + // Entry 80 - BF + 0x0d24, 0x0d33, 0x0d4f, 0x0d6a, 0x0d76, 0x0d88, 0x0da4, 0x0dc2, + 0x0ddb, 0x0df3, 0x0e05, 0x0e1d, 0x0e35, 0x0e47, 0x0e56, 0x0e68, + 0x0e7a, 0x0e8f, 0x0ead, 0x0ecc, 0x0ee7, 0x0f06, 0x0f1e, 0x0f2a, + 0x0f4e, 0x0f63, 0x0f89, 0x0fbb, 0x0fd3, 0x0fee, 0x1009, 0x1018, + 0x102d, 0x103f, 0x104e, 0x1063, 0x1078, 0x1093, 0x10a8, 0x10cd, + 0x10dc, 0x10fb, 0x1113, 0x112e, 0x1146, 0x1155, 0x1164, 0x1173, + 0x117f, 0x119d, 0x11a9, 0x11b8, 0x11c4, 0x11f2, 0x1218, 0x1230, + 0x1248, 0x125a, 0x1293, 0x12b5, 0x12d4, 0x12fc, 0x1311, 0x131d, + // Entry C0 - FF + 0x1332, 0x133b, 0x1369, 0x1381, 0x1396, 0x13a5, 0x13ae, 0x13c0, + 0x13d9, 0x13f8, 0x140a, 0x1419, 0x1428, 0x1440, 0x145f, 0x1477, + 0x14b0, 0x14c8, 0x14e4, 0x14fd, 0x150f, 0x1524, 0x1539, 0x1558, + 0x1591, 0x15ad, 0x15cc, 0x15db, 0x15f9, 0x1628, 0x165e, 0x1667, + 0x169c, 0x16a8, 0x16bd, 0x16db, 0x16f0, 0x170f, 0x1733, 0x174e, + 0x175d, 0x176c, 0x17a4, 0x17b6, 0x17c8, 0x17e0, 0x17f2, 0x1807, + 0x183f, 0x185b, 0x186d, 0x188e, 0x18ad, 0x18f8, 0x1916, 0x194b, + 0x1975, 0x198a, 0x199f, 0x19cb, 0x19da, 0x19ec, 0x19f5, 0x1a07, + // Entry 100 - 13F + 0x1a29, 0x1a3e, 0x1a59, 0x1a7b, 0x1a8a, 0x1a9f, 0x1abe, 0x1ae0, + 0x1af5, 0x1b1a, 0x1b3f, 0x1b64, 0x1b89, 0x1ba8, 0x1bcd, 0x1bdf, + 0x1c01, 0x1c19, 0x1c38, 0x1c57, 0x1c83, 0x1c9f, 0x1cc0, 0x1cde, + 0x1d15, 0x1d33, 0x1d42, 0x1d64, 0x1d83, 0x1d8f, 0x1dab, 0x1dc7, + 0x1de3, 0x1e08, +} // Size: 604 bytes + +var plRegionStr string = "" + // Size: 3142 bytes + "Wyspa WniebowstÄ…pieniaAndoraZjednoczone Emiraty ArabskieAfganistanAntigu" + + "a i BarbudaAnguillaAlbaniaArmeniaAngolaAntarktykaArgentynaSamoa AmerykaÅ„" + + "skieAustriaAustraliaArubaWyspy AlandzkieAzerbejdżanBoÅ›nia i HercegowinaB" + + "arbadosBangladeszBelgiaBurkina FasoBuÅ‚gariaBahrajnBurundiBeninSaint-Bart" + + "hélemyBermudyBrunei DarussalamBoliwiaNiderlandy KaraibskieBrazyliaBahamy" + + "BhutanWyspa BouvetaBotswanaBiaÅ‚oruÅ›BelizeKanadaWyspy KokosoweDemokratycz" + + "na Republika KongaRepublika ÅšrodkowoafrykaÅ„skaKongoSzwajcariaCôte d’Ivoi" + + "reWyspy CookaChileKamerunChinyKolumbiaClippertonKostarykaKubaRepublika Z" + + "ielonego PrzylÄ…dkaCuraçaoWyspa Bożego NarodzeniaCyprCzechyNiemcyDiego Ga" + + "rciaDżibutiDaniaDominikaDominikanaAlgieriaCeuta i MelillaEkwadorEstoniaE" + + "giptSahara ZachodniaErytreaHiszpaniaEtiopiaUnia EuropejskaFinlandiaFidżi" + + "FalklandyMikronezjaWyspy OwczeFrancjaGabonWielka BrytaniaGrenadaGruzjaGu" + + "jana FrancuskaGuernseyGhanaGibraltarGrenlandiaGambiaGwineaGwadelupaGwine" + + "a RównikowaGrecjaGeorgia PoÅ‚udniowa i Sandwich PoÅ‚udniowyGwatemalaGuamGw" + + "inea BissauGujanaSRA Hongkong (Chiny)Wyspy Heard i McDonaldaHondurasChor" + + "wacjaHaitiWÄ™gryWyspy KanaryjskieIndonezjaIrlandiaIzraelWyspa ManIndieBry" + + "tyjskie Terytorium Oceanu IndyjskiegoIrakIranIslandiaWÅ‚ochyJerseyJamajka" + + "JordaniaJaponiaKeniaKirgistanKambodżaKiribatiKomorySaint Kitts i NevisKo" + + "rea PółnocnaKorea PoÅ‚udniowaKuwejtKajmanyKazachstanLaosLibanSaint LuciaL" + + "iechtensteinSri LankaLiberiaLesothoLitwaLuksemburgÅotwaLibiaMarokoMonako" + + "MoÅ‚dawiaCzarnogóraSaint-MartinMadagaskarWyspy MarshallaMacedoniaMaliMjan" + + "ma (Birma)MongoliaSRA Makau (Chiny)Mariany PółnocneMartynikaMauretaniaMo" + + "ntserratMaltaMauritiusMalediwyMalawiMeksykMalezjaMozambikNamibiaNowa Kal" + + "edoniaNigerNorfolkNigeriaNikaraguaHolandiaNorwegiaNepalNauruNiueNowa Zel" + + "andiaOmanPanamaPeruPolinezja FrancuskaPapua-Nowa GwineaFilipinyPakistanP" + + "olskaSaint-Pierre i MiquelonPitcairnPortorykoTerytoria PalestyÅ„skiePortu" + + "galiaPalauParagwajKatarOceania inneReunionRumuniaSerbiaRosjaRwandaArabia" + + " SaudyjskaWyspy SalomonaSeszeleSudanSzwecjaSingapurWyspa ÅšwiÄ™tej HelenyS" + + "Å‚oweniaSvalbard i Jan MayenSÅ‚owacjaSierra LeoneSan MarinoSenegalSomalia" + + "SurinamSudan PoÅ‚udniowyWyspy ÅšwiÄ™tego Tomasza i KsiążęcaSalwadorSint Maa" + + "rtenSyriaSuaziTristan da CunhaTurks i CaicosCzadFrancuskie Terytoria PoÅ‚" + + "udniowe i AntarktyczneTogoTajlandiaTadżykistanTokelauTimor WschodniTurkm" + + "enistanTunezjaTongaTurcjaTrynidad i TobagoTuvaluTajwanTanzaniaUkrainaUga" + + "ndaDalekie Wyspy Mniejsze Stanów ZjednoczonychStany ZjednoczoneUrugwajUz" + + "bekistanWatykanSaint Vincent i GrenadynyWenezuelaBrytyjskie Wyspy Dziewi" + + "czeWyspy Dziewicze Stanów ZjednoczonychWietnamVanuatuWallis i FutunaSamo" + + "aKosowoJemenMajottaRepublika PoÅ‚udniowej AfrykiZambiaZimbabweNieznany re" + + "gionÅ›wiatAfrykaAmeryka PółnocnaAmeryka PoÅ‚udniowaOceaniaAfryka Zachodnia" + + "Ameryka ÅšrodkowaAfryka WschodniaAfryka PółnocnaAfryka ÅšrodkowaAfryka PoÅ‚" + + "udniowaAmerykaAmeryka Północna (USA, Kanada)KaraibyAzja WschodniaAzja Po" + + "Å‚udniowaAzja PoÅ‚udniowo-WschodniaEuropa PoÅ‚udniowaAustralazjaMelanezjaR" + + "egion MikronezjiPolinezjaAzjaAzja ÅšrodkowaAzja ZachodniaEuropaEuropa Wsc" + + "hodniaEuropa PółnocnaEuropa ZachodniaAmeryka ÅaciÅ„ska" + +var plRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0017, 0x001d, 0x0039, 0x0043, 0x0054, 0x005c, 0x0063, + 0x006a, 0x0070, 0x007a, 0x0083, 0x0096, 0x009d, 0x00a6, 0x00ab, + 0x00ba, 0x00c6, 0x00db, 0x00e3, 0x00ed, 0x00f3, 0x00ff, 0x0108, + 0x010f, 0x0116, 0x011b, 0x012c, 0x0133, 0x0144, 0x014b, 0x0160, + 0x0168, 0x016e, 0x0174, 0x0181, 0x0189, 0x0193, 0x0199, 0x019f, + 0x01ad, 0x01ca, 0x01e8, 0x01ed, 0x01f7, 0x0207, 0x0212, 0x0217, + 0x021e, 0x0223, 0x022b, 0x0235, 0x023e, 0x0242, 0x0260, 0x0268, + 0x0280, 0x0284, 0x028a, 0x0290, 0x029c, 0x02a4, 0x02a9, 0x02b1, + // Entry 40 - 7F + 0x02bb, 0x02c3, 0x02d2, 0x02d9, 0x02e0, 0x02e5, 0x02f5, 0x02fc, + 0x0305, 0x030c, 0x031b, 0x0324, 0x032a, 0x0333, 0x033d, 0x0348, + 0x034f, 0x0354, 0x0363, 0x036a, 0x0370, 0x0380, 0x0388, 0x038d, + 0x0396, 0x03a0, 0x03a6, 0x03ac, 0x03b5, 0x03c6, 0x03cc, 0x03f6, + 0x03ff, 0x0403, 0x0410, 0x0416, 0x042a, 0x0441, 0x0449, 0x0452, + 0x0457, 0x045d, 0x046e, 0x0477, 0x047f, 0x0485, 0x048e, 0x0493, + 0x04bb, 0x04bf, 0x04c3, 0x04cb, 0x04d2, 0x04d8, 0x04df, 0x04e7, + 0x04ee, 0x04f3, 0x04fc, 0x0505, 0x050d, 0x0513, 0x0526, 0x0536, + // Entry 80 - BF + 0x0547, 0x054d, 0x0554, 0x055e, 0x0562, 0x0567, 0x0572, 0x057f, + 0x0588, 0x058f, 0x0596, 0x059b, 0x05a5, 0x05ab, 0x05b0, 0x05b6, + 0x05bc, 0x05c5, 0x05d0, 0x05dc, 0x05e6, 0x05f5, 0x05fe, 0x0602, + 0x0610, 0x0618, 0x0629, 0x063b, 0x0644, 0x064e, 0x0658, 0x065d, + 0x0666, 0x066e, 0x0674, 0x067a, 0x0681, 0x0689, 0x0690, 0x069e, + 0x06a3, 0x06aa, 0x06b1, 0x06ba, 0x06c2, 0x06ca, 0x06cf, 0x06d4, + 0x06d8, 0x06e5, 0x06e9, 0x06ef, 0x06f3, 0x0706, 0x0717, 0x071f, + 0x0727, 0x072d, 0x0744, 0x074c, 0x0755, 0x076c, 0x0776, 0x077b, + // Entry C0 - FF + 0x0783, 0x0788, 0x0794, 0x079b, 0x07a2, 0x07a8, 0x07ad, 0x07b3, + 0x07c3, 0x07d1, 0x07d8, 0x07dd, 0x07e4, 0x07ec, 0x0802, 0x080b, + 0x081f, 0x0828, 0x0834, 0x083e, 0x0845, 0x084c, 0x0853, 0x0864, + 0x088a, 0x0892, 0x089e, 0x08a3, 0x08a8, 0x08b8, 0x08c6, 0x08ca, + 0x08f9, 0x08fd, 0x0906, 0x0912, 0x0919, 0x0927, 0x0933, 0x093a, + 0x093f, 0x0945, 0x0956, 0x095c, 0x0962, 0x096a, 0x0971, 0x0977, + 0x09a3, 0x09b4, 0x09bb, 0x09c5, 0x09cc, 0x09e5, 0x09ee, 0x0a08, + 0x0a2d, 0x0a34, 0x0a3b, 0x0a4a, 0x0a4f, 0x0a55, 0x0a5a, 0x0a61, + // Entry 100 - 13F + 0x0a7e, 0x0a84, 0x0a8c, 0x0a9b, 0x0aa1, 0x0aa7, 0x0ab9, 0x0acc, + 0x0ad3, 0x0ae3, 0x0af4, 0x0b04, 0x0b15, 0x0b25, 0x0b37, 0x0b3e, + 0x0b5e, 0x0b65, 0x0b73, 0x0b83, 0x0b9d, 0x0baf, 0x0bba, 0x0bc3, + 0x0bd4, 0x0bdd, 0x0be1, 0x0bef, 0x0bfd, 0x0c03, 0x0c13, 0x0c24, + 0x0c34, 0x0c46, +} // Size: 604 bytes + +var ptRegionStr string = "" + // Size: 3157 bytes + "Ilha de AscensãoAndorraEmirados Ãrabes UnidosAfeganistãoAntígua e Barbud" + + "aAnguillaAlbâniaArmêniaAngolaAntártidaArgentinaSamoa AmericanaÃustriaAus" + + "tráliaArubaIlhas Ã…landAzerbaijãoBósnia e HerzegovinaBarbadosBangladeshBé" + + "lgicaBurquina FasoBulgáriaBahreinBurundiBeninSão BartolomeuBermudasBrune" + + "iBolíviaPaíses Baixos CaribenhosBrasilBahamasButãoIlha BouvetBotsuanaBie" + + "lorrússiaBelizeCanadáIlhas Cocos (Keeling)Congo - KinshasaRepública Cent" + + "ro-AfricanaCongo - BrazzavilleSuíçaCosta do MarfimIlhas CookChileRepúbli" + + "ca dos CamarõesChinaColômbiaIlha de ClippertonCosta RicaCubaCabo VerdeCu" + + "raçaoIlha ChristmasChipreRepública TchecaAlemanhaDiego GarciaDjibutiDina" + + "marcaDominicaRepública DominicanaArgéliaCeuta e MelilhaEquadorEstôniaEgi" + + "toSaara OcidentalEritreiaEspanhaEtiópiaUnião EuropeiaFinlândiaFijiIlhas " + + "MalvinasMicronésiaIlhas FaroeFrançaGabãoReino UnidoGranadaGeórgiaGuiana " + + "FrancesaGuernseyGanaGibraltarGroenlândiaGâmbiaGuinéGuadalupeGuiné Equato" + + "rialGréciaIlhas Geórgia do Sul e Sandwich do SulGuatemalaGuamGuiné-Bissa" + + "uGuianaHong Kong, RAE da ChinaIlhas Heard e McDonaldHondurasCroáciaHaiti" + + "HungriaIlhas CanáriasIndonésiaIrlandaIsraelIlha de ManÃndiaTerritório Br" + + "itânico do Oceano ÃndicoIraqueIrãIslândiaItáliaJerseyJamaicaJordâniaJapã" + + "oQuêniaQuirguistãoCambojaQuiribatiComoresSão Cristóvão e NevisCoreia do " + + "NorteCoreia do SulKuwaitIlhas CaymanCazaquistãoLaosLíbanoSanta LúciaLiec" + + "htensteinSri LankaLibériaLesotoLituâniaLuxemburgoLetôniaLíbiaMarrocosMôn" + + "acoMoldáviaMontenegroSão MartinhoMadagascarIlhas MarshallMacedôniaMaliMi" + + "anmar (Birmânia)MongóliaMacau, RAE da ChinaIlhas Marianas do NorteMartin" + + "icaMauritâniaMontserratMaltaMaurícioMaldivasMalawiMéxicoMalásiaMoçambiqu" + + "eNamíbiaNova CaledôniaNígerIlha NorfolkNigériaNicaráguaHolandaNoruegaNep" + + "alNauruNiueNova ZelândiaOmãPanamáPeruPolinésia FrancesaPapua-Nova GuinéF" + + "ilipinasPaquistãoPolôniaSaint Pierre e MiquelonIlhas PitcairnPorto RicoT" + + "erritórios palestinosPortugalPalauParaguaiCatarOceania RemotaReuniãoRomê" + + "niaSérviaRússiaRuandaArábia SauditaIlhas SalomãoSeychellesSudãoSuéciaCin" + + "gapuraSanta HelenaEslovêniaSvalbard e Jan MayenEslováquiaSerra LeoaSan M" + + "arinoSenegalSomáliaSurinameSudão do SulSão Tomé e PríncipeEl SalvadorSin" + + "t MaartenSíriaSuazilândiaTristão da CunhaIlhas Turks e CaicosChadeTerrit" + + "órios Franceses do SulTogoTailândiaTajiquistãoTokelauTimor-LesteTurcome" + + "nistãoTunísiaTongaTurquiaTrinidad e TobagoTuvaluTaiwanTanzâniaUcrâniaUga" + + "ndaIlhas Menores Distantes dos EUAEstados UnidosUruguaiUzbequistãoCidade" + + " do VaticanoSão Vicente e GranadinasVenezuelaIlhas Virgens BritânicasIlh" + + "as Virgens dos EUAVietnãVanuatuWallis e FutunaSamoaKosovoIêmenMayotteÃfr" + + "ica do SulZâmbiaZimbábueRegião desconhecidaMundoÃfricaAmérica do NorteAm" + + "érica do SulOceaniaÃfrica OcidentalAmérica CentralÃfrica OrientalÃfrica" + + " do NorteÃfrica CentralÃfrica AustralAméricasAmérica SetentrionalCaribeÃ" + + "sia OrientalÃsia do SulSudeste AsiáticoEuropa do SulAustralásiaMelanésia" + + "Região da MicronésiaPolinésiaÃsiaÃsia CentralÃsia OcidentalEuropaEuropa " + + "OrientalEuropa SetentrionalEuropa OcidentalAmérica Latina" + +var ptRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0011, 0x0018, 0x002f, 0x003b, 0x004d, 0x0055, 0x005d, + 0x0065, 0x006b, 0x0075, 0x007e, 0x008d, 0x0095, 0x009f, 0x00a4, + 0x00b0, 0x00bb, 0x00d0, 0x00d8, 0x00e2, 0x00ea, 0x00f7, 0x0100, + 0x0107, 0x010e, 0x0113, 0x0122, 0x012a, 0x0130, 0x0138, 0x0151, + 0x0157, 0x015e, 0x0164, 0x016f, 0x0177, 0x0184, 0x018a, 0x0191, + 0x01a6, 0x01b6, 0x01d0, 0x01e3, 0x01ea, 0x01f9, 0x0203, 0x0208, + 0x0220, 0x0225, 0x022e, 0x0240, 0x024a, 0x024e, 0x0258, 0x0260, + 0x026e, 0x0274, 0x0285, 0x028d, 0x0299, 0x02a0, 0x02a9, 0x02b1, + // Entry 40 - 7F + 0x02c6, 0x02ce, 0x02dd, 0x02e4, 0x02ec, 0x02f1, 0x0300, 0x0308, + 0x030f, 0x0317, 0x0326, 0x0330, 0x0334, 0x0342, 0x034d, 0x0358, + 0x035f, 0x0365, 0x0370, 0x0377, 0x037f, 0x038e, 0x0396, 0x039a, + 0x03a3, 0x03af, 0x03b6, 0x03bc, 0x03c5, 0x03d6, 0x03dd, 0x0404, + 0x040d, 0x0411, 0x041e, 0x0424, 0x043b, 0x0451, 0x0459, 0x0461, + 0x0466, 0x046d, 0x047c, 0x0486, 0x048d, 0x0493, 0x049e, 0x04a4, + 0x04cc, 0x04d2, 0x04d6, 0x04df, 0x04e6, 0x04ec, 0x04f3, 0x04fc, + 0x0502, 0x0509, 0x0515, 0x051c, 0x0525, 0x052c, 0x0544, 0x0553, + // Entry 80 - BF + 0x0560, 0x0566, 0x0572, 0x057e, 0x0582, 0x0589, 0x0595, 0x05a2, + 0x05ab, 0x05b3, 0x05b9, 0x05c2, 0x05cc, 0x05d4, 0x05da, 0x05e2, + 0x05e9, 0x05f2, 0x05fc, 0x0609, 0x0613, 0x0621, 0x062b, 0x062f, + 0x0642, 0x064b, 0x065e, 0x0675, 0x067e, 0x0689, 0x0693, 0x0698, + 0x06a1, 0x06a9, 0x06af, 0x06b6, 0x06be, 0x06c9, 0x06d1, 0x06e0, + 0x06e6, 0x06f2, 0x06fa, 0x0704, 0x070b, 0x0712, 0x0717, 0x071c, + 0x0720, 0x072e, 0x0732, 0x0739, 0x073d, 0x0750, 0x0761, 0x076a, + 0x0774, 0x077c, 0x0793, 0x07a1, 0x07ab, 0x07c2, 0x07ca, 0x07cf, + // Entry C0 - FF + 0x07d7, 0x07dc, 0x07ea, 0x07f2, 0x07fa, 0x0801, 0x0808, 0x080e, + 0x081d, 0x082b, 0x0835, 0x083b, 0x0842, 0x084b, 0x0857, 0x0861, + 0x0875, 0x0880, 0x088a, 0x0894, 0x089b, 0x08a3, 0x08ab, 0x08b8, + 0x08ce, 0x08d9, 0x08e5, 0x08eb, 0x08f7, 0x0908, 0x091c, 0x0921, + 0x093e, 0x0942, 0x094c, 0x0958, 0x095f, 0x096a, 0x0978, 0x0980, + 0x0985, 0x098c, 0x099d, 0x09a3, 0x09a9, 0x09b2, 0x09ba, 0x09c0, + 0x09df, 0x09ed, 0x09f4, 0x0a00, 0x0a12, 0x0a2b, 0x0a34, 0x0a4d, + 0x0a62, 0x0a69, 0x0a70, 0x0a7f, 0x0a84, 0x0a8a, 0x0a90, 0x0a97, + // Entry 100 - 13F + 0x0aa5, 0x0aac, 0x0ab5, 0x0ac9, 0x0ace, 0x0ad5, 0x0ae6, 0x0af5, + 0x0afc, 0x0b0d, 0x0b1d, 0x0b2d, 0x0b3d, 0x0b4c, 0x0b5b, 0x0b64, + 0x0b79, 0x0b7f, 0x0b8d, 0x0b99, 0x0baa, 0x0bb7, 0x0bc3, 0x0bcd, + 0x0be3, 0x0bed, 0x0bf2, 0x0bff, 0x0c0e, 0x0c14, 0x0c23, 0x0c36, + 0x0c46, 0x0c55, +} // Size: 604 bytes + +var ptPTRegionStr string = "" + // Size: 687 bytes + "AnguilaArméniaAlandaBangladecheBarémBenimBaamasIlhas dos Cocos (Keeling)" + + "Congo-KinshasaCongo-BrazzavilleCamarõesCuraçauIlha do NatalRepública Che" + + "caJibutiDomínicaEstóniaIlhas FalklandIlhas FaroéGronelândiaGuameIrãoQuén" + + "iaSão Cristóvão e NevesIlhas CaimãoListenstaineSri LancaLetóniaMónacoMad" + + "agáscarMacedóniaMonserrateMauríciaMaláuiNova CaledóniaPaíses BaixosPolón" + + "iaSão Pedro e MiquelãoTerritórios palestinianosOceânia InsularRoméniaSei" + + "chelesSingapuraEslovéniaSão MarinhoSalvadorIlhas Turcas e CaicosToquelau" + + "TurquemenistãoTrindade e TobagoIlhas Menores Afastadas dos EUAUsbequistã" + + "oVietnameIémenMaioteZimbabuéOceâniaNorte de ÃfricaCaraíbasEuropa do Nort" + + "e" + +var ptPTRegionIdx = []uint16{ // 288 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0007, 0x0007, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0026, 0x0026, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, + 0x002b, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x004a, 0x0058, 0x0058, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x007a, + 0x0087, 0x0087, 0x0097, 0x0097, 0x0097, 0x009d, 0x009d, 0x00a6, + // Entry 40 - 7F + 0x00a6, 0x00a6, 0x00a6, 0x00a6, 0x00ae, 0x00ae, 0x00ae, 0x00ae, + 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00ae, 0x00bc, 0x00bc, 0x00c8, + 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, 0x00c8, + 0x00c8, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, + 0x00d4, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, 0x00d9, + 0x00d9, 0x00d9, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, 0x00de, + 0x00de, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00e5, 0x00fd, 0x00fd, + // Entry 80 - BF + 0x00fd, 0x00fd, 0x010a, 0x010a, 0x010a, 0x010a, 0x010a, 0x0116, + 0x011f, 0x011f, 0x011f, 0x011f, 0x011f, 0x0127, 0x0127, 0x0127, + 0x012e, 0x012e, 0x012e, 0x012e, 0x0139, 0x0139, 0x0143, 0x0143, + 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x0143, 0x014d, 0x014d, + 0x0156, 0x0156, 0x015d, 0x015d, 0x015d, 0x015d, 0x015d, 0x016c, + 0x016c, 0x016c, 0x016c, 0x016c, 0x017a, 0x017a, 0x017a, 0x017a, + 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, 0x017a, + 0x017a, 0x0182, 0x0198, 0x0198, 0x0198, 0x01b2, 0x01b2, 0x01b2, + // Entry C0 - FF + 0x01b2, 0x01b2, 0x01c2, 0x01c2, 0x01ca, 0x01ca, 0x01ca, 0x01ca, + 0x01ca, 0x01ca, 0x01d3, 0x01d3, 0x01d3, 0x01dc, 0x01dc, 0x01e6, + 0x01e6, 0x01e6, 0x01e6, 0x01f2, 0x01f2, 0x01f2, 0x01f2, 0x01f2, + 0x01f2, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x01fa, 0x020f, 0x020f, + 0x020f, 0x020f, 0x020f, 0x020f, 0x0217, 0x0217, 0x0226, 0x0226, + 0x0226, 0x0226, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, 0x0237, + 0x0256, 0x0256, 0x0256, 0x0262, 0x0262, 0x0262, 0x0262, 0x0262, + 0x0262, 0x026a, 0x026a, 0x026a, 0x026a, 0x026a, 0x0270, 0x0276, + // Entry 100 - 13F + 0x0276, 0x0276, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, + 0x0287, 0x0287, 0x0287, 0x0287, 0x0297, 0x0297, 0x0297, 0x0297, + 0x0297, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, + 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02a0, 0x02af, +} // Size: 600 bytes + +var roRegionStr string = "" + // Size: 3221 bytes + "Insula AscensionAndorraEmiratele Arabe UniteAfganistanAntigua È™i Barbuda" + + "AnguillaAlbaniaArmeniaAngolaAntarcticaArgentinaSamoa AmericanăAustriaAus" + + "traliaArubaInsulele Ã…landAzerbaidjanBosnia È™i HerÈ›egovinaBarbadosBanglad" + + "eshBelgiaBurkina FasoBulgariaBahrainBurundiBeninSfântul BartolomeuBermud" + + "aBruneiBoliviaInsulele Caraibe OlandezeBraziliaBahamasBhutanInsula Bouve" + + "tBotswanaBelarusBelizeCanadaInsulele Cocos (Keeling)Congo - KinshasaRepu" + + "blica CentrafricanăCongo - BrazzavilleElveÈ›iaCôte d’IvoireInsulele CookC" + + "hileCamerunChinaColumbiaInsula ClippertonCosta RicaCubaCapul VerdeCuraça" + + "oInsula ChristmasCipruRepublica CehăGermaniaDiego GarciaDjiboutiDanemarc" + + "aDominicaRepublica DominicanăAlgeriaCeuta È™i MelillaEcuadorEstoniaEgiptS" + + "ahara OccidentalăEritreeaSpaniaEtiopiaUniunea EuropeanăFinlandaFijiInsul" + + "ele FalklandMicroneziaInsulele FeroeFranÈ›aGabonRegatul UnitGrenadaGeorgi" + + "aGuyana FrancezăGuernseyGhanaGibraltarGroenlandaGambiaGuineeaGuadelupaGu" + + "ineea EcuatorialăGreciaGeorgia de Sud È™i Insulele Sandwich de SudGuatema" + + "laGuamGuineea-BissauGuyanaR.A.S. Hong Kong a ChineiInsula Heard È™i Insul" + + "ele McDonaldHondurasCroaÈ›iaHaitiUngariaInsulele CanareIndoneziaIrlandaIs" + + "raelInsula ManIndiaTeritoriul Britanic din Oceanul IndianIrakIranIslanda" + + "ItaliaJerseyJamaicaIordaniaJaponiaKenyaKârgâzstanCambodgiaKiribatiComore" + + "Saint Kitts È™i NevisCoreea de NordCoreea de SudKuweitInsulele CaymanKaza" + + "hstanLaosLibanSfânta LuciaLiechtensteinSri LankaLiberiaLesothoLituaniaLu" + + "xemburgLetoniaLibiaMarocMonacoRepublica MoldovaMuntenegruSfântul MartinM" + + "adagascarInsulele MarshallMacedoniaMaliMyanmar (Birmania)MongoliaR.A.S. " + + "Macao a ChineiInsulele Mariane de NordMartinicaMauritaniaMontserratMalta" + + "MauritiusMaldiveMalawiMexicMalaysiaMozambicNamibiaNoua CaledonieNigerIns" + + "ula NorfolkNigeriaNicaraguaȚările de JosNorvegiaNepalNauruNiueNoua Zeela" + + "ndăOmanPanamaPeruPolinezia FrancezăPapua-Noua GuineeFilipinePakistanPolo" + + "niaSaint-Pierre È™i MiquelonInsulele PitcairnPuerto RicoTeritoriile Pales" + + "tinienePortugaliaPalauParaguayQatarOceania PerifericăRéunionRomâniaSerbi" + + "aRusiaRwandaArabia SaudităInsulele SolomonSeychellesSudanSuediaSingapore" + + "Sfânta ElenaSloveniaSvalbard È™i Jan MayenSlovaciaSierra LeoneSan MarinoS" + + "enegalSomaliaSurinameSudanul de SudSao Tome È™i PrincipeEl SalvadorSint-M" + + "aartenSiriaSwazilandTristan da CunhaInsulele Turks È™i CaicosCiadTeritori" + + "ile Australe È™i Antarctice FrancezeTogoThailandaTadjikistanTokelauTimoru" + + "l de EstTurkmenistanTunisiaTongaTurciaTrinidad È™i TobagoTuvaluTaiwanTanz" + + "aniaUcrainaUgandaInsulele ÃŽndepărtate ale S.U.A.Statele Unite ale Americ" + + "iiUruguayUzbekistanStatul Cetății VaticanuluiSaint Vincent È™i Grenadinel" + + "eVenezuelaInsulele Virgine BritaniceInsulele Virgine S.U.A.VietnamVanuat" + + "uWallis È™i FutunaSamoaKosovoYemenMayotteAfrica de SudZambiaZimbabweRegiu" + + "ne necunoscutăLumeAfricaAmerica de NordAmerica de SudOceaniaAfrica Occid" + + "entalăAmerica CentralăAfrica OrientalăAfrica SeptentrionalăAfrica Centra" + + "lăAfrica MeridionalăAmericiAmerica SeptentrionalăCaraibeAsia OrientalăAs" + + "ia MeridionalăAsia de Sud-EstEuropa MeridionalăAustralasiaMelaneziaRegiu" + + "nea MicroneziaPolineziaAsiaAsia CentralăAsia OccidentalăEuropaEuropa Ori" + + "entalăEuropa SeptentrionalăEuropa OccidentalăAmerica Latină" + +var roRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x002c, 0x0036, 0x0049, 0x0051, 0x0058, + 0x005f, 0x0065, 0x006f, 0x0078, 0x0088, 0x008f, 0x0098, 0x009d, + 0x00ac, 0x00b7, 0x00ce, 0x00d6, 0x00e0, 0x00e6, 0x00f2, 0x00fa, + 0x0101, 0x0108, 0x010d, 0x0120, 0x0127, 0x012d, 0x0134, 0x014d, + 0x0155, 0x015c, 0x0162, 0x016f, 0x0177, 0x017e, 0x0184, 0x018a, + 0x01a2, 0x01b2, 0x01ca, 0x01dd, 0x01e5, 0x01f5, 0x0202, 0x0207, + 0x020e, 0x0213, 0x021b, 0x022c, 0x0236, 0x023a, 0x0245, 0x024d, + 0x025d, 0x0262, 0x0271, 0x0279, 0x0285, 0x028d, 0x0296, 0x029e, + // Entry 40 - 7F + 0x02b3, 0x02ba, 0x02cb, 0x02d2, 0x02d9, 0x02de, 0x02f1, 0x02f9, + 0x02ff, 0x0306, 0x0318, 0x0320, 0x0324, 0x0335, 0x033f, 0x034d, + 0x0354, 0x0359, 0x0365, 0x036c, 0x0373, 0x0383, 0x038b, 0x0390, + 0x0399, 0x03a3, 0x03a9, 0x03b0, 0x03b9, 0x03cd, 0x03d3, 0x03fe, + 0x0407, 0x040b, 0x0419, 0x041f, 0x0438, 0x045a, 0x0462, 0x046a, + 0x046f, 0x0476, 0x0485, 0x048e, 0x0495, 0x049b, 0x04a5, 0x04aa, + 0x04d0, 0x04d4, 0x04d8, 0x04df, 0x04e5, 0x04eb, 0x04f2, 0x04fa, + 0x0501, 0x0506, 0x0512, 0x051b, 0x0523, 0x0529, 0x053e, 0x054c, + // Entry 80 - BF + 0x0559, 0x055f, 0x056e, 0x0577, 0x057b, 0x0580, 0x058d, 0x059a, + 0x05a3, 0x05aa, 0x05b1, 0x05b9, 0x05c2, 0x05c9, 0x05ce, 0x05d3, + 0x05d9, 0x05ea, 0x05f4, 0x0603, 0x060d, 0x061e, 0x0627, 0x062b, + 0x063d, 0x0645, 0x065a, 0x0672, 0x067b, 0x0685, 0x068f, 0x0694, + 0x069d, 0x06a4, 0x06aa, 0x06af, 0x06b7, 0x06bf, 0x06c6, 0x06d4, + 0x06d9, 0x06e7, 0x06ee, 0x06f7, 0x0706, 0x070e, 0x0713, 0x0718, + 0x071c, 0x072a, 0x072e, 0x0734, 0x0738, 0x074b, 0x075c, 0x0764, + 0x076c, 0x0773, 0x078c, 0x079d, 0x07a8, 0x07c0, 0x07ca, 0x07cf, + // Entry C0 - FF + 0x07d7, 0x07dc, 0x07ef, 0x07f7, 0x07ff, 0x0805, 0x080a, 0x0810, + 0x081f, 0x082f, 0x0839, 0x083e, 0x0844, 0x084d, 0x085a, 0x0862, + 0x0878, 0x0880, 0x088c, 0x0896, 0x089d, 0x08a4, 0x08ac, 0x08ba, + 0x08cf, 0x08da, 0x08e6, 0x08eb, 0x08f4, 0x0904, 0x091d, 0x0921, + 0x094d, 0x0951, 0x095a, 0x0965, 0x096c, 0x097a, 0x0986, 0x098d, + 0x0992, 0x0998, 0x09ab, 0x09b1, 0x09b7, 0x09bf, 0x09c6, 0x09cc, + 0x09ed, 0x0a07, 0x0a0e, 0x0a18, 0x0a34, 0x0a51, 0x0a5a, 0x0a74, + 0x0a8b, 0x0a92, 0x0a99, 0x0aaa, 0x0aaf, 0x0ab5, 0x0aba, 0x0ac1, + // Entry 100 - 13F + 0x0ace, 0x0ad4, 0x0adc, 0x0af0, 0x0af4, 0x0afa, 0x0b09, 0x0b17, + 0x0b1e, 0x0b31, 0x0b42, 0x0b53, 0x0b69, 0x0b79, 0x0b8c, 0x0b93, + 0x0baa, 0x0bb1, 0x0bc0, 0x0bd1, 0x0be0, 0x0bf3, 0x0bfe, 0x0c07, + 0x0c1a, 0x0c23, 0x0c27, 0x0c35, 0x0c46, 0x0c4c, 0x0c5d, 0x0c73, + 0x0c86, 0x0c95, +} // Size: 604 bytes + +var ruRegionStr string = "" + // Size: 5817 bytes + "о-в ВознеÑениÑÐндорраОÐЭÐфганиÑтанÐнтигуа и БарбудаÐнгильÑÐлбаниÑÐрмениÑ" + + "ÐнголаÐнтарктидаÐргентинаÐмериканÑкое СамоаÐвÑтриÑÐвÑтралиÑÐрубаÐландÑк" + + "ие о-ваÐзербайджанБоÑÐ½Ð¸Ñ Ð¸ ГерцеговинаБарбадоÑБангладешБельгиÑБуркина-Ф" + + "аÑоБолгариÑБахрейнБурундиБенинСен-БартельмиБермудÑкие о-ваБруней-ДаруÑÑ" + + "аламБоливиÑБонÑйр, Синт-ЭÑÑ‚Ð°Ñ‚Ð¸ÑƒÑ Ð¸ СабаБразилиÑБагамÑкие о-ваБутано-в Б" + + "увеБотÑванаБеларуÑьБелизКанадаКокоÑовые о-ваКонго - КиншаÑаЦÐРКонго - Б" + + "раззавильШвейцариÑКот-д’Ивуаро-ва КукаЧилиКамерунКитайКолумбиÑо-в Клипп" + + "ертонКоÑта-РикаКубаКабо-ВердеКюраÑаоо-в РождеÑтваКипрЧехиÑГерманиÑДиего" + + "-ГарÑиÑДжибутиДаниÑДоминикаДоминиканÑÐºÐ°Ñ Ð ÐµÑпубликаÐлжирСеута и МелильÑЭ" + + "квадорЭÑтониÑÐ•Ð³Ð¸Ð¿ÐµÑ‚Ð—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ Ð¡Ð°Ñ…Ð°Ñ€Ð°Ð­Ñ€Ð¸Ñ‚Ñ€ÐµÑИÑпаниÑЭфиопиÑЕвропейÑкий Ñоюз" + + "ФинлÑндиÑФиджиФолклендÑкие о-ваФедеративные Штаты МикронезииФарерÑкие о" + + "-ваФранциÑГабонВеликобританиÑГренадаГрузиÑФранцузÑÐºÐ°Ñ Ð“Ð²Ð¸Ð°Ð½Ð°Ð“ÐµÑ€Ð½ÑиГанаГи" + + "бралтарГренландиÑГамбиÑГвинеÑÐ“Ð²Ð°Ð´ÐµÐ»ÑƒÐ¿Ð°Ð­ÐºÐ²Ð°Ñ‚Ð¾Ñ€Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑГрециÑÐ®Ð¶Ð½Ð°Ñ " + + "Ð“ÐµÐ¾Ñ€Ð³Ð¸Ñ Ð¸ Южные Сандвичевы о-ваГватемалаГуамГвинеÑ-БиÑауГайанаГонконг (" + + "Ñпециальный админиÑтративный район)о-ва Херд и МакдональдГондураÑХорват" + + "иÑГаитиВенгриÑКанарÑкие о-ваИндонезиÑИрландиÑИзраильо-в ÐœÑнИндиÑБританÑ" + + "ÐºÐ°Ñ Ñ‚ÐµÑ€Ñ€Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð² ИндийÑком океанеИракИранИÑландиÑИталиÑДжерÑиЯмайкаИорд" + + "аниÑЯпониÑКениÑКиргизиÑКамбоджаКирибатиКоморÑкие о-ваСент-ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑК" + + "ÐДРРеÑпублика КореÑКувейтКаймановы о-ваКазахÑтанЛаоÑЛиванСент-ЛюÑиÑЛихт" + + "енштейнШри-ЛанкаЛибериÑЛеÑотоЛитваЛюкÑембургЛатвиÑЛивиÑМароккоМонакоМол" + + "доваЧерногориÑСен-МартенМадагаÑкарМаршалловы о-ваМакедониÑМалиМьÑнма (Б" + + "ирма)МонголиÑМакао (Ñпециальный админиÑтративный район)Северные МарианÑ" + + "кие о-ваМартиникаМавританиÑМонтÑерратМальтаМаврикийМальдивыМалавиМекÑик" + + "аМалайзиÑМозамбикÐамибиÑÐÐ¾Ð²Ð°Ñ ÐšÐ°Ð»ÐµÐ´Ð¾Ð½Ð¸ÑÐигеро-в ÐорфолкÐигериÑÐикарагуа" + + "ÐидерландыÐорвегиÑÐепалÐауруÐиуÑÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ð¸ÑОманПанамаПеруФранцузÑкаÑ" + + " ПолинезиÑПапуа – ÐÐ¾Ð²Ð°Ñ Ð“Ð²Ð¸Ð½ÐµÑФилиппиныПакиÑтанПольшаСен-Пьер и Микелоно" + + "Ñтрова ПиткÑрнПуÑрто-РикоПалеÑтинÑкие территорииПортугалиÑПалауПарагвай" + + "КатарВнешнÑÑ ÐžÐºÐµÐ°Ð½Ð¸ÑРеюньонРумыниÑСербиÑРоÑÑиÑРуандаСаудовÑÐºÐ°Ñ ÐравиÑСо" + + "ломоновы о-ваСейшельÑкие о-ваСуданШвециÑСингапуро-в Св. ЕленыСловениÑШп" + + "ицберген и Ян-МайенСловакиÑСьерра-ЛеонеСан-МариноСенегалСомалиСуринамЮж" + + "ный СуданСан-Томе и ПринÑипиСальвадорСинт-МартенСириÑСвазилендТриÑтан-д" + + "а-КуньÑо-ва Ð¢Ñ‘Ñ€ÐºÑ Ð¸ КайкоÑЧадФранцузÑкие Южные ТерриторииТогоТаиландТад" + + "жикиÑтанТокелауВоÑточный ТиморТуркмениÑтанТуниÑТонгаТурциÑТринидад и То" + + "багоТувалуТайваньТанзаниÑУкраинаУгандаВнешние малые о-ва (СШÐ)Соединенн" + + "ые ШтатыУругвайУзбекиÑтанВатиканСент-ВинÑент и ГренадиныВенеÑуÑлаВиргин" + + "Ñкие о-ва (БританÑкие)ВиргинÑкие о-ва (СШÐ)Ð’ÑŒÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ£Ð¾Ð»Ð»Ð¸Ñ Ð¸ Футун" + + "аСамоаКоÑовоЙеменМайоттаЮÐРЗамбиÑЗимбабвеÐеизвеÑтный регионМирÐфрикаСев" + + "ÐµÑ€Ð½Ð°Ñ ÐÐ¼ÐµÑ€Ð¸ÐºÐ°Ð®Ð¶Ð½Ð°Ñ ÐмерикаОкеаниÑÐ—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐмерикаВоÑÑ‚" + + "Ð¾Ñ‡Ð½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ ÐÑ„Ñ€Ð¸ÐºÐ°Ð®Ð¶Ð½Ð°Ñ ÐфрикаÐмерикаСеверна" + + "Ñ Ðмерика – СШРи КанадаКарибыВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐзиÑÐ®Ð¶Ð½Ð°Ñ ÐзиÑЮго-ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ðзи" + + "ÑÐ®Ð¶Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°ÐвÑтралазиÑМеланезиÑМикронезиÑПолинезиÑÐзиÑСреднÑÑ ÐзиÑБли" + + "жний и Средний ВоÑтокЕвропаВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°Ð—Ð°Ð¿Ð°Ð´Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾" + + "паЛатинÑÐºÐ°Ñ Ðмерика" + +var ruRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001a, 0x0028, 0x002e, 0x0042, 0x0062, 0x0070, 0x007e, + 0x008c, 0x0098, 0x00ac, 0x00be, 0x00e1, 0x00ef, 0x0101, 0x010b, + 0x0125, 0x013b, 0x0161, 0x0171, 0x0183, 0x0191, 0x01a8, 0x01b8, + 0x01c6, 0x01d4, 0x01de, 0x01f7, 0x0213, 0x0234, 0x0242, 0x0275, + 0x0285, 0x029f, 0x02a9, 0x02b7, 0x02c7, 0x02d7, 0x02e1, 0x02ed, + 0x0307, 0x0322, 0x0328, 0x0349, 0x035b, 0x0371, 0x0381, 0x0389, + 0x0397, 0x03a1, 0x03b1, 0x03cb, 0x03de, 0x03e6, 0x03f9, 0x0407, + 0x041f, 0x0427, 0x0431, 0x0441, 0x0458, 0x0466, 0x0470, 0x0480, + // Entry 40 - 7F + 0x04af, 0x04b9, 0x04d5, 0x04e3, 0x04f1, 0x04fd, 0x051a, 0x0528, + 0x0536, 0x0544, 0x0563, 0x0575, 0x057f, 0x059f, 0x05d7, 0x05f1, + 0x05ff, 0x0609, 0x0625, 0x0633, 0x063f, 0x0662, 0x066e, 0x0676, + 0x0688, 0x069c, 0x06a8, 0x06b4, 0x06c6, 0x06ef, 0x06fb, 0x073f, + 0x0751, 0x0759, 0x0770, 0x077c, 0x07cf, 0x07f7, 0x0807, 0x0817, + 0x0821, 0x082f, 0x0849, 0x085b, 0x086b, 0x0879, 0x0885, 0x088f, + 0x08db, 0x08e3, 0x08eb, 0x08fb, 0x0907, 0x0913, 0x091f, 0x092f, + 0x093b, 0x0945, 0x0955, 0x0965, 0x0975, 0x098f, 0x09ae, 0x09b6, + // Entry 80 - BF + 0x09d5, 0x09e1, 0x09fb, 0x0a0d, 0x0a15, 0x0a1f, 0x0a32, 0x0a48, + 0x0a59, 0x0a67, 0x0a73, 0x0a7d, 0x0a91, 0x0a9d, 0x0aa7, 0x0ab5, + 0x0ac1, 0x0acf, 0x0ae3, 0x0af6, 0x0b0a, 0x0b26, 0x0b38, 0x0b40, + 0x0b59, 0x0b69, 0x0bb8, 0x0be5, 0x0bf7, 0x0c0b, 0x0c1f, 0x0c2b, + 0x0c3b, 0x0c4b, 0x0c57, 0x0c65, 0x0c75, 0x0c85, 0x0c93, 0x0cb0, + 0x0cba, 0x0cce, 0x0cdc, 0x0cee, 0x0d02, 0x0d12, 0x0d1c, 0x0d26, + 0x0d2e, 0x0d49, 0x0d51, 0x0d5d, 0x0d65, 0x0d8e, 0x0db4, 0x0dc6, + 0x0dd6, 0x0de2, 0x0e03, 0x0e20, 0x0e35, 0x0e62, 0x0e76, 0x0e80, + // Entry C0 - FF + 0x0e90, 0x0e9a, 0x0eb7, 0x0ec5, 0x0ed3, 0x0edf, 0x0eeb, 0x0ef7, + 0x0f18, 0x0f34, 0x0f52, 0x0f5c, 0x0f68, 0x0f78, 0x0f8e, 0x0f9e, + 0x0fc5, 0x0fd5, 0x0fec, 0x0fff, 0x100d, 0x1019, 0x1027, 0x103c, + 0x105f, 0x1071, 0x1086, 0x1090, 0x10a2, 0x10c0, 0x10e2, 0x10e8, + 0x111e, 0x1126, 0x1134, 0x114a, 0x1158, 0x1175, 0x118d, 0x1197, + 0x11a1, 0x11ad, 0x11cd, 0x11d9, 0x11e7, 0x11f7, 0x1205, 0x1211, + 0x123b, 0x125c, 0x126a, 0x127e, 0x128c, 0x12b9, 0x12cb, 0x12fe, + 0x1323, 0x1331, 0x133f, 0x135b, 0x1365, 0x1371, 0x137b, 0x1389, + // Entry 100 - 13F + 0x138f, 0x139b, 0x13ab, 0x13ce, 0x13d4, 0x13e0, 0x13ff, 0x1418, + 0x1426, 0x1443, 0x1468, 0x1487, 0x14a4, 0x14c7, 0x14de, 0x14ec, + 0x1526, 0x1532, 0x154d, 0x1560, 0x1582, 0x1599, 0x15af, 0x15c1, + 0x15d5, 0x15e7, 0x15ef, 0x1606, 0x1633, 0x163f, 0x165e, 0x167b, + 0x1698, 0x16b9, +} // Size: 604 bytes + +var siRegionStr string = "" + // Size: 9298 bytes + "ඇසෙන්ෂන් දිවයිනඇන්ඩà·à¶»à·à·€à¶‘ක්සත් අරà·à¶¶à·’ එමිර් රà·à¶¢à·Š\u200dයයඇෆ්ගනිස්ථà·à¶±à¶ºà¶‡à¶±à·Šà¶§à·’ග" + + "ුව෠සහ බà·à¶¶à·’යුඩà·à·€à¶‡à¶±à·Šà¶œà·”යිලà·à·€à¶‡à¶½à·Šà¶¶à·šà¶±à·’යà·à·€à¶†à¶»à·Šà¶¸à·šà¶±à·’යà·à·€à¶‡à¶±à·Šà¶œà·à¶½à·à·€à¶‡à¶±à·Šà¶§à·à¶šà·Šà¶§à·’කà·à·€à¶†à¶»à·Šà¶¢" + + "ෙන්ටිනà·à·€à¶‡à¶¸à¶»à·’කà·à¶±à·” à·ƒà·à¶¸à·à·€à·à·€à¶”ස්ට්\u200dරියà·à·€à¶•à·ƒà·Šà¶§à·Š\u200dරේලියà·à·€à¶…රුබà·à·€à¶•à¶½à¶±à·Šà¶©à·Š" + + " දූපත්අසර්බයිජà·à¶±à¶ºà¶¶à·œà·ƒà·Šà¶±à·’යà·à·€ සහ හර්සගොවීනà·à·€à¶¶à·à¶»à·Šà¶¶à¶©à·à·ƒà·Šà¶¶à¶‚ග්ලà·à¶¯à·šà·à¶ºà¶¶à·™à¶½à·Šà¶¢à·’යමබර්ක" + + "ින෠ෆà·à·ƒà·à¶¶à¶½à·Šà¶œà·šà¶»à·’යà·à·€à¶¶à·„රේන්බුරුන්දිබෙනින්à·à·à¶±à·Šà¶­ බර්තලෙමිබර්මියුඩà·à¶¶à·²à¶±à·à¶ºà·’බොල" + + "ීවියà·à·€à¶šà·à¶»à·’බියà·à¶±à·” නෙදර්ලන්තයබ්\u200dරසීලයබහමà·à·ƒà·Šà¶·à·–තà·à¶±à¶ºà¶¶à·”වට් දුපත්බොට්ස්ව" + + "à·à¶±à·à¶¶à·™à¶½à¶»à·”ස්බෙලීස්කà·à¶±à¶©à·à·€à¶šà·œà¶šà·à·ƒà·Š දූපත්කොංගො - කින්à·à·à·ƒà·à¶¸à¶°à·Š\u200dයම අප්" + + "\u200dරිකà·à¶±à·” ජනරජයකොංගො - බ්\u200dරසà·à·€à·’ල්ස්විස්ටර්ලන්තයකà·à¶§à·Š දි අයිවරිකුක" + + "à·Š දූපත්චිලීකà·à¶¸à¶»à·–න්චීනයකොළොම්බියà·à·€à¶šà·Šà¶½à·“පර්ටන් දූපතකොස්ටරිකà·à·€à¶šà·’යුබà·à·€à¶šà·šà¶´à·Š " + + "වර්ඩ්කුරකà·à·€à·à¶šà·Š\u200dරිස්මස් දූපතසයිප්\u200dරසයචෙක් ජනරජයජර්මනියදියà·à¶œà· " + + "ගà·à¶»à·Šà·ƒà·’යà·à¶¢à·’බුටිඩෙන්මà·à¶»à·Šà¶šà¶ºà¶©à·œà¶¸à·’නිකà·à·€à¶©à·œà¶¸à·’නික෠ජනරජයඇල්ජීරියà·à·€à·ƒà·™à¶ºà·”ට෠සහ මෙල" + + "ිල්ලà·à¶‰à¶šà·Šà·€à¶¯à·à¶»à¶ºà¶‘ස්තà·à¶±à·’යà·à·€à¶Šà¶¢à·’ප්තුවබටහිර සහරà·à·€à¶‘රිත්\u200dරියà·à·€à·ƒà·Šà¶´à·à¶¤à·Šà¶¤à¶ºà¶‰à¶­à·’ය" + + "à·à¶´à·’යà·à·€à¶ºà·”රà·à¶´à· සංගමයෆින්ලන්තයෆීජීෆà·à¶šà·Šà¶½à¶±à·Šà¶­ දූපත්මයික්\u200dරොනීසියà·à·€à·†à·à¶»à· " + + "දූපත්ප්\u200dරංà·à¶ºà¶œà·à¶¶à·œà¶±à·Šà¶‘ක්සත් රà·à¶¢à¶°à·à¶±à·’යග්\u200dරà·à¶±à¶©à·à·€à¶¢à·à¶»à·Šà¶¢à·’යà·à·€à¶´à·Š\u200dර" + + "ං෠ගයනà·à·€à¶œà¶»à·Šà¶±à·Šà·ƒà·’යà¶à·à¶±à·à·€à¶¢à·’බ්\u200dරà·à¶½à·Šà¶§à·à·€à¶œà·Š\u200dරීන්ලන්තයගà·à¶¸à·Šà¶¶à·’යà·à·€à¶œà·’ණියà·" + + "වග්වà·à¶©à¶½à·à¶´à·Šà·ƒà¶¸à¶š ගිනියà·à·€à¶œà·Š\u200dරීසියදකුණු ජà·à¶»à·Šà¶¢à·’යà·à·€ සහ දකුණු à·ƒà·à¶±à·Šà¶©à·Šà·€à·’ච් " + + "දූපත්ගà·à¶­à¶¸à·à¶½à·à·€à¶œà·”à·€à·à¶¸à·Šà¶œà·’නි බිසව්ගයනà·à·€à·„ොංකොං චීන විà·à·šà·‚ පරිපà·à¶½à¶± කලà·à¶´à¶ºà·„ර්ඩ් " + + "දූපත සහ මà·à¶šà·Šà¶©à·œà¶±à¶½à·Šà¶©à·Š දූපත්හොන්ඩුරà·à·ƒà·Šà¶šà·Š\u200dරොඒෂියà·à·€à·„යිටිහන්ගේරියà·à·€à¶šà·à¶±à¶»" + + "à·’ සූපත්ඉන්දුනීසියà·à·€à¶…යර්ලන්තයඊà·à·Š\u200dරà·à¶ºà¶½à¶ºà¶…යිල් ඔෆ් මෑන්ඉන්දියà·à·€à¶¶à·Š" + + "\u200dරිතà·à¶±à·Š\u200dය ඉන්දීය à·ƒà·à¶œà¶» බල ප්\u200dරදේà·à¶ºà¶‰à¶»à·à¶šà¶ºà¶‰à¶»à·à¶±à¶ºà¶…යිස්ලන්තයඉතà·à¶½" + + "ියජර්සිජà·à¶¸à·™à¶ºà·’කà·à·€à¶¢à·à¶»à·Šà¶¯à·à¶±à¶ºà¶¢à¶´à·à¶±à¶ºà¶šà·™à¶±à·Šà¶ºà·à·€à¶šà·’ර්ගිස්තà·à¶±à¶ºà¶šà·à¶¸à·Šà¶¶à·à¶¢à¶ºà¶šà·’රිබතිකොමොරà·à·ƒ" + + "à·Šà·à·à¶±à·Šà¶­ කිට්ස් සහ නේවිස්උතුරු කොරියà·à·€à¶¯à¶šà·”ණු කොරියà·à·€à¶šà·”වේටයකේමන් දූපත්කසකස" + + "්තà·à¶±à¶ºà¶½à·à¶•à·ƒà¶ºà¶½à·™à¶¶à¶±à¶±à¶ºà·à·à¶±à·Šà¶­ ලුසියà·à¶½à·’ක්ටන්ස්ටයින්à·à·Š\u200dරී ලංකà·à·€à¶½à¶ºà·’බීරියà·à·€à¶½à·™" + + "සතà·à¶½à·’තුවේනියà·à·€à¶½à¶šà·Šà·à¶¸à·Šà¶¶à¶»à·Šà¶œà·Šà¶½à·à¶§à·Šà·€à·’යà·à·€à¶½à·’බියà·à·€à¶¸à·œà¶»à·œà¶šà·Šà¶šà·à·€à¶¸à·œà¶±à·à¶šà·à·€à¶¸à·œà¶½à·Šà¶©à·à·€à·à·€à¶¸à·œà¶±à·Š" + + "ටෙනීග්\u200dරà·à·à·à¶±à·Šà¶­ මà·à¶»à·Šà¶§à·’න්මà·à¶©à¶œà·ƒà·Šà¶šà¶»à¶ºà¶¸à·à·‚ල් දූපත්මà·à·ƒà·’ඩà·à¶±à·’යà·à·€à¶¸à·à¶½à·’මියන්මà·" + + "රය (බුරුමය)මොන්ගà·à¶½à·’යà·à·€à¶¸à¶šà·à·€à·” චීන විà·à·šà·‚ පරිපà·à¶½à¶± කලà·à¶´à¶ºà¶‹à¶­à·”රු මරියà·à¶±à· දූපත්" + + "මර්ටිනික්මොරිටේනියà·à·€à¶¸à·œà¶±à·Šà·ƒà·™à¶»à·à¶§à·Šà¶¸à·à¶½à·Šà¶§à·à·€à¶¸à·”රුසියමà·à¶½ දිවයිනමලà·à·€à·’මෙක්සිකà·à·€à¶¸à·" + + "ලේසියà·à·€à¶¸à·œà·ƒà·à¶¸à·Šà¶¶à·’ක්නà·à¶¸à·“බියà·à·€à¶±à·€ කà·à¶½à·’ඩà·à¶±à·’යà·à·€à¶±à¶ºà·’ජර්නà·à·†à·à¶šà·Š දූපතනයිජීරියà·à·€à¶±à·’ක" + + "රගුවà·à·€à¶±à·™à¶¯à¶»à·Šà¶½à¶±à·Šà¶­à¶ºà¶±à·à¶»à·Šà·€à·šà¶±à·šà¶´à·à¶½à¶ºà¶±à·à·€à·”රුනියූනවසීලන්තයඕමà·à¶±à¶ºà¶´à·à¶±à¶¸à·à·€à¶´à·šà¶»à·”ප්\u200d" + + "රං෠පොලිනීසියà·à·€à¶´à·à¶´à·”ව෠නිව් ගිනියà·à·€à¶´à·’ලිපීනයපà·à¶šà·’ස්තà·à¶±à¶ºà¶´à·à¶½à¶±à·Šà¶­à¶ºà·à·à¶±à·Šà¶­ පියරේ" + + " සහ මà·à¶šà·à¶½à¶±à·Šà¶´à·’ට්කෙය්න් දූපත්පුවර්ට෠රිකà·à¶´à¶½à·ƒà·Šà¶­à·“න රà·à¶¢à·Š\u200dයයපෘතුගà·à¶½à¶ºà¶´à¶½à·à·€à·”" + + "පà·à¶»à¶œà·”වේකටà·à¶»à·Šà¶ˆà¶­ ඕෂනියà·à·€à¶»à·“යුනියන්රුමේනියà·à·€à·ƒà¶»à·Šà¶¶à·’යà·à·€à¶»à·”සියà·à·€à¶»à·”වන්ඩà·à·€à·ƒà·žà¶¯à·’ අර" + + "à·à¶¶à·’යසොලමන් දූපත්සීà·à·™à¶½à·Šà·ƒà·Šà·ƒà·–ඩà·à¶±à¶ºà·ƒà·Šà·€à·“ඩනයසිංගප්පූරුවà·à·à¶±à·Šà¶­ හෙලේනà·à·ƒà·Šà¶½à·à·€à·šà¶±à·’යà·" + + "වස්වෙල්බර්ඩ් සහ ජේන් මයේන්ස්ලà·à·€à·à¶šà·’යà·à·€à·ƒà·’යරà·à¶½à·’යà·à¶±à·Šà·ƒà·à¶±à·Š මà·à¶»à·’නà·à·ƒà·™à¶±à¶œà·à¶½à¶ºà·ƒà·à¶¸à·" + + "ලියà·à·€à·ƒà·”රිනà·à¶¸à¶ºà¶¯à¶šà·”ණු සුඩà·à¶±à¶ºà·ƒà·à¶• තà·à¶¸à·Š සහ ප්\u200dරින්සිප්එල් à·ƒà·à¶½à·Šà·€à¶¯à·à¶»à¶ºà·à·à¶±à·Š" + + "ත මà·à¶»à·Šà¶§à·™à¶±à·Šà·ƒà·’රියà·à·€à·ƒà·Šà·€à·à·ƒà·’ලන්තයට්\u200dරිස්ටන් ද කුන්හà·à¶§à¶»à·Šà¶šà·Šà·ƒà·Š සහ කයිකොස්" + + " දූපත්චà·à¶ à·Šà¶¯à¶šà·”ණු ප්\u200dරං෠දූපත් සමූහයටොගà·à¶­à·à¶ºà·’ලන්තයටජිකිස්තà·à¶±à¶ºà¶§à·œà¶šà¶½à·à·€à·”ටි" + + "මà·à¶»à·Š - ලෙස්ත්ටර්ක්මෙනිස්ථà·à¶±à¶ºà¶§à·’යුනීසියà·à·€à¶§à·œà¶‚ගà·à¶­à·”ර්කියට්\u200dරිනිඩෑඩ් සහ" + + " ටොබà·à¶œà·à¶§à·”à·€à·à¶½à·–තà·à¶ºà·’à·€à·à¶±à¶ºà¶§à·à¶±à·Šà·ƒà·à¶±à·’යà·à·€à¶ºà·”ක්රේනයඋගන්ඩà·à·€à¶‘ක්සත් ජනපද ඈත දූපත්එක්සත" + + "à·Š ජනපදයඋරුගුවේඋස්බෙකිස්ථà·à¶±à¶ºà·€à¶­à·’කà·à¶±à·” නගරයà·à·à¶±à·Šà¶­ වින්සන්ට් සහ ග්\u200dරෙනඩ" + + "ින්ස්වෙනිසියුලà·à·€à¶¶à·Š\u200dරිතà·à¶±à·Š\u200dය වර්ජින් දූපත්ඇමරිකà·à¶±à·” වර්ජින් දූ" + + "පත්වියට්නà·à¶¸à¶ºà·€à¶±à·”à·€à·à¶§à·”à·€à·à¶½à·’ස් සහ ෆුටුනà·à·ƒà·à¶¸à·à·€à·à¶šà·œà·ƒà·à·€à·à¶ºà·šà¶¸à¶±à¶ºà¶¸à¶ºà·à¶§à·Šà¶¯à¶šà·”ණු අප්" + + "\u200dරිකà·à·€à·ƒà·à¶¸à·Šà¶¶à·’යà·à·€à·ƒà·’ම්බà·à¶¶à·Šà·€à·šà·„ඳුන෠නොගත් කළà·à¶´à¶ºà¶½à·à¶šà¶ºà¶…ප්\u200dරිකà·à·€à¶‹à¶­à·”රු ඇ" + + "මෙරිකà·à·€à¶¯à¶šà·”ණු ඇමෙරිකà·à·€à¶•à·‚නියà·à·€à¶¶à¶§à·„ිරදිග අප්\u200dරිකà·à·€à¶¸à¶°à·Š\u200dයම ඇමෙරිකà·" + + "වපෙරදිග අප්\u200dරිකà·à·€à¶‹à¶­à·”රුදිග අප්\u200dරිකà·à·€à¶¸à¶°à·Š\u200dයම අප්\u200dරිකà·" + + "වදකුණුදිග අප්\u200dරිකà·à·€à¶‡à¶¸à¶»à·’කà·à·€à¶‹à¶­à·”රුදිග ඇමෙරිකà·à·€à¶šà·à¶»à·“බියන්නà·à¶œà·™à¶±à·„ිර ආසිය" + + "à·à·€à¶¯à¶šà·”ණු ආසියà·à·€à¶…ග්නිදිග ආසියà·à·€à¶¯à¶šà·”ණුදිග යුරà·à¶´à¶ºà¶•à·ƒà·Šà¶§à·Š\u200dරලේෂියà·à·€à¶¸à·™à¶½à¶±à·“සි" + + "යà·à·€à¶¸à¶ºà·’ක්\u200dරà·à¶±à·“සියà·à¶±à·” කළà·à¶´à¶ºà¶´à·œà¶½à·’නීසියà·à·€à¶†à·ƒà·’යà·à·€à¶¸à¶°à·Š\u200dයම ආසියà·à·€à¶¶à¶§à·„ිර" + + " ආසියà·à·€à¶ºà·”රà·à¶´à¶ºà¶±à·à¶œà·™à¶±à·„ිර යුරà·à¶´à¶ºà¶‹à¶­à·”රු යුරà·à¶´à¶ºà¶¶à¶§à·„ිර යුරà·à¶´à¶ºà¶½à¶­à·’න් ඇමෙරිකà·à·€" + +var siRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x002b, 0x0043, 0x008b, 0x00af, 0x00ed, 0x010b, 0x0129, + 0x0147, 0x015f, 0x0183, 0x01a7, 0x01d5, 0x01f6, 0x021d, 0x022f, + 0x0251, 0x0272, 0x02b6, 0x02d1, 0x02ef, 0x0307, 0x0329, 0x0347, + 0x0359, 0x0371, 0x0383, 0x03ab, 0x03c6, 0x03d8, 0x03f3, 0x0430, + 0x0448, 0x045a, 0x046c, 0x048b, 0x04a9, 0x04be, 0x04d0, 0x04e2, + 0x0504, 0x052e, 0x056f, 0x059f, 0x05c9, 0x05ef, 0x060b, 0x0617, + 0x062c, 0x0638, 0x0659, 0x0684, 0x06a2, 0x06b7, 0x06d3, 0x06e8, + 0x0713, 0x072e, 0x074a, 0x075f, 0x078a, 0x079c, 0x07ba, 0x07d5, + // Entry 40 - 7F + 0x07fd, 0x081b, 0x084d, 0x0865, 0x0883, 0x089b, 0x08ba, 0x08db, + 0x08f3, 0x0911, 0x0933, 0x094e, 0x095a, 0x0982, 0x09af, 0x09cb, + 0x09e0, 0x09f2, 0x0a1d, 0x0a38, 0x0a53, 0x0a75, 0x0a8d, 0x0a9c, + 0x0ac0, 0x0ae4, 0x0aff, 0x0b14, 0x0b2f, 0x0b4e, 0x0b66, 0x0bd7, + 0x0bef, 0x0c01, 0x0c1d, 0x0c2c, 0x0c7e, 0x0cd3, 0x0cf1, 0x0d12, + 0x0d21, 0x0d3f, 0x0d5e, 0x0d82, 0x0d9d, 0x0db8, 0x0dde, 0x0df6, + 0x0e57, 0x0e66, 0x0e75, 0x0e93, 0x0ea5, 0x0eb4, 0x0ecf, 0x0ee7, + 0x0ef6, 0x0f0b, 0x0f2f, 0x0f47, 0x0f5c, 0x0f74, 0x0fb0, 0x0fd5, + // Entry 80 - BF + 0x0ffa, 0x100c, 0x102b, 0x1046, 0x1055, 0x1067, 0x1089, 0x10b3, + 0x10d2, 0x10f0, 0x10ff, 0x1120, 0x1141, 0x115c, 0x1171, 0x118c, + 0x11a1, 0x11bc, 0x11e3, 0x120b, 0x1226, 0x1245, 0x1266, 0x1272, + 0x12a2, 0x12c3, 0x1312, 0x1347, 0x1362, 0x1383, 0x13a1, 0x13b6, + 0x13cb, 0x13e7, 0x13f6, 0x1411, 0x142c, 0x144a, 0x1465, 0x148d, + 0x149f, 0x14be, 0x14dc, 0x14f7, 0x1515, 0x1527, 0x1539, 0x154b, + 0x1557, 0x1572, 0x1581, 0x1593, 0x159f, 0x15d3, 0x1608, 0x1620, + 0x163e, 0x1653, 0x168f, 0x16bd, 0x16df, 0x170a, 0x1722, 0x1731, + // Entry C0 - FF + 0x1746, 0x1755, 0x1771, 0x178c, 0x17a7, 0x17bf, 0x17d4, 0x17ec, + 0x180b, 0x182d, 0x1845, 0x1857, 0x186c, 0x188d, 0x18af, 0x18d0, + 0x1915, 0x1936, 0x1957, 0x1976, 0x198b, 0x19a6, 0x19be, 0x19e0, + 0x1a1f, 0x1a44, 0x1a6c, 0x1a81, 0x1aa2, 0x1ad7, 0x1b19, 0x1b25, + 0x1b67, 0x1b73, 0x1b8e, 0x1baf, 0x1bc4, 0x1beb, 0x1c18, 0x1c39, + 0x1c48, 0x1c5d, 0x1c98, 0x1caa, 0x1cc2, 0x1ce3, 0x1cfb, 0x1d10, + 0x1d46, 0x1d68, 0x1d7d, 0x1da4, 0x1dc6, 0x1e1d, 0x1e3e, 0x1e85, + 0x1ec3, 0x1ede, 0x1ef3, 0x1f1f, 0x1f31, 0x1f43, 0x1f52, 0x1f61, + // Entry 100 - 13F + 0x1f8c, 0x1fa7, 0x1fc5, 0x1ff4, 0x2000, 0x201b, 0x2043, 0x206b, + 0x2080, 0x20b4, 0x20df, 0x210d, 0x2141, 0x216f, 0x21a3, 0x21b8, + 0x21e9, 0x2204, 0x222f, 0x2251, 0x227c, 0x22a7, 0x22d1, 0x22ef, + 0x232f, 0x2350, 0x2362, 0x2387, 0x23a9, 0x23bb, 0x23e6, 0x2408, + 0x242a, 0x2452, +} // Size: 604 bytes + +var skRegionStr string = "" + // Size: 3194 bytes + "AscensiónAndorraSpojené arabské emirátyAfganistanAntigua a BarbudaAnguil" + + "laAlbánskoArménskoAngolaAntarktídaArgentínaAmerická SamoaRakúskoAustráli" + + "aArubaÃ…landyAzerbajdžanBosna a HercegovinaBarbadosBangladéšBelgickoBurki" + + "na FasoBulharskoBahrajnBurundiBeninSvätý BartolomejBermudyBrunejBolíviaK" + + "aribské HolandskoBrazíliaBahamyBhutánBouvetov ostrovBotswanaBieloruskoBe" + + "lizeKanadaKokosové ostrovyKongo - KinshasaStredoafrická republikaKongo -" + + " BrazzavilleÅ vajÄiarskoPobrežie SlonovinyCookove ostrovyÄŒileKamerunČínaK" + + "olumbiaClippertonKostarikaKubaKapverdyCuraçaoVianoÄný ostrovCyprusÄŒeská " + + "republikaNemeckoDiego GarcíaDžibutskoDánskoDominikaDominikánska republik" + + "aAlžírskoCeuta a MelillaEkvádorEstónskoEgyptZápadná SaharaEritreaÅ paniel" + + "skoEtiópiaEurópska úniaFínskoFidžiFalklandyMikronéziaFaerské ostrovyFran" + + "cúzskoGabonSpojené kráľovstvoGrenadaGruzínskoFrancúzska GuayanaGuernseyG" + + "hanaGibraltárGrónskoGambiaGuineaGuadeloupeRovníková GuineaGréckoJužná Ge" + + "orgia a Južné Sandwichove ostrovyGuatemalaGuamGuinea-BissauGuayanaHongko" + + "ng – OAO ČínyHeardov ostrov a McDonaldove ostrovyHondurasChorvátskoHaiti" + + "MaÄarskoKanárske ostrovyIndonéziaÃrskoIzraelOstrov ManIndiaBritské indic" + + "kooceánske územieIrakIránIslandTalianskoJerseyJamajkaJordánskoJaponskoKe" + + "ňaKirgizskoKambodžaKiribatiKomorySvätý KriÅ¡tof a NevisSeverná KóreaJužn" + + "á KóreaKuvajtKajmanie ostrovyKazachstanLaosLibanonSvätá LuciaLichtenÅ¡ta" + + "jnskoSrí LankaLibériaLesothoLitvaLuxemburskoLotyÅ¡skoLíbyaMarokoMonakoMol" + + "davskoÄŒierna HoraSvätý MartinMadagaskarMarshallove ostrovyMacedónskoMali" + + "MjanmarskoMongolskoMacao – OAO ČínySeverné MariányMartinikMauritániaMont" + + "serratMaltaMauríciusMaldivyMalawiMexikoMalajziaMozambikNamíbiaNová Kaled" + + "óniaNigerNorfolkNigériaNikaraguaHolandskoNórskoNepálNauruNiueNový Zélan" + + "dOmánPanamaPeruFrancúzska PolynéziaPapua Nová GuineaFilipínyPakistanPoľs" + + "koSaint Pierre a MiquelonPitcairnove ostrovyPortorikoPalestínske územiaP" + + "ortugalskoPalauParaguajKatarostatné TichomorieRéunionRumunskoSrbskoRusko" + + "RwandaSaudská ArábiaÅ alamúnove ostrovySeychelySudánÅ védskoSingapurSvätá " + + "HelenaSlovinskoSvalbard a Jan MayenSlovenskoSierra LeoneSan MarínoSenega" + + "lSomálskoSurinamJužný SudánSvätý Tomáš a Princov ostrovSalvádorSint Maar" + + "tenSýriaSvazijskoTristan da CunhaTurks a CaicosÄŒadFrancúzske južné a ant" + + "arktické územiaTogoThajskoTadžikistanTokelauVýchodný TimorTurkménskoTuni" + + "skoTongaTureckoTrinidad a TobagoTuvaluTaiwanTanzániaUkrajinaUgandaMenÅ¡ie" + + " odľahlé ostrovy USASpojené Å¡tátyUruguajUzbekistanVatikánSvätý Vincent a" + + " GrenadínyVenezuelaBritské Panenské ostrovyAmerické Panenské ostrovyViet" + + "namVanuatuWallis a FutunaSamoaKosovoJemenMayotteJužná AfrikaZambiaZimbab" + + "weneznámy regiónsvetAfrikaSeverná AmerikaJužná AmerikaOceániazápadná Afr" + + "ikaStredná Amerikavýchodná Afrikaseverná Afrikastredná Afrikajužné územi" + + "a AfrikyAmerikaseverné územia AmerikyKaribikvýchodná Ãziajužná Ãziajuhov" + + "ýchodná Ãziajužná EurópaAustraláziaMelanéziaoblasÅ¥ MikronéziePolynéziaÃ" + + "ziastredná Ãziazápadná ÃziaEurópavýchodná Európaseverná Európazápadná Eu" + + "rópaLatinská Amerika" + +var skRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000a, 0x0011, 0x002b, 0x0035, 0x0046, 0x004e, 0x0057, + 0x0060, 0x0066, 0x0071, 0x007b, 0x008a, 0x0092, 0x009c, 0x00a1, + 0x00a8, 0x00b4, 0x00c7, 0x00cf, 0x00da, 0x00e2, 0x00ee, 0x00f7, + 0x00fe, 0x0105, 0x010a, 0x011c, 0x0123, 0x0129, 0x0131, 0x0144, + 0x014d, 0x0153, 0x015a, 0x0169, 0x0171, 0x017b, 0x0181, 0x0187, + 0x0198, 0x01a8, 0x01c0, 0x01d3, 0x01e0, 0x01f3, 0x0202, 0x0207, + 0x020e, 0x0214, 0x021c, 0x0226, 0x022f, 0x0233, 0x023b, 0x0243, + 0x0254, 0x025a, 0x026b, 0x0272, 0x027f, 0x0289, 0x0290, 0x0298, + // Entry 40 - 7F + 0x02af, 0x02b9, 0x02c8, 0x02d0, 0x02d9, 0x02de, 0x02ee, 0x02f5, + 0x0300, 0x0308, 0x0317, 0x031e, 0x0324, 0x032d, 0x0338, 0x0348, + 0x0353, 0x0358, 0x036d, 0x0374, 0x037e, 0x0391, 0x0399, 0x039e, + 0x03a8, 0x03b0, 0x03b6, 0x03bc, 0x03c6, 0x03d8, 0x03df, 0x040c, + 0x0415, 0x0419, 0x0426, 0x042d, 0x0444, 0x0468, 0x0470, 0x047b, + 0x0480, 0x0489, 0x049a, 0x04a4, 0x04aa, 0x04b0, 0x04ba, 0x04bf, + 0x04e0, 0x04e4, 0x04e9, 0x04ef, 0x04f8, 0x04fe, 0x0505, 0x050f, + 0x0517, 0x051c, 0x0525, 0x052e, 0x0536, 0x053c, 0x0554, 0x0563, + // Entry 80 - BF + 0x0571, 0x0577, 0x0587, 0x0591, 0x0595, 0x059c, 0x05a9, 0x05b9, + 0x05c3, 0x05cb, 0x05d2, 0x05d7, 0x05e2, 0x05eb, 0x05f1, 0x05f7, + 0x05fd, 0x0606, 0x0612, 0x0620, 0x062a, 0x063d, 0x0648, 0x064c, + 0x0656, 0x065f, 0x0673, 0x0684, 0x068c, 0x0697, 0x06a1, 0x06a6, + 0x06b0, 0x06b7, 0x06bd, 0x06c3, 0x06cb, 0x06d3, 0x06db, 0x06eb, + 0x06f0, 0x06f7, 0x06ff, 0x0708, 0x0711, 0x0718, 0x071e, 0x0723, + 0x0727, 0x0734, 0x0739, 0x073f, 0x0743, 0x0759, 0x076b, 0x0774, + 0x077c, 0x0783, 0x079a, 0x07ad, 0x07b6, 0x07ca, 0x07d5, 0x07da, + // Entry C0 - FF + 0x07e2, 0x07e7, 0x07fa, 0x0802, 0x080a, 0x0810, 0x0815, 0x081b, + 0x082b, 0x083f, 0x0847, 0x084d, 0x0856, 0x085e, 0x086c, 0x0875, + 0x0889, 0x0892, 0x089e, 0x08a9, 0x08b0, 0x08b9, 0x08c0, 0x08ce, + 0x08ee, 0x08f7, 0x0903, 0x0909, 0x0912, 0x0922, 0x0930, 0x0934, + 0x095e, 0x0962, 0x0969, 0x0975, 0x097c, 0x098c, 0x0997, 0x099e, + 0x09a3, 0x09aa, 0x09bb, 0x09c1, 0x09c7, 0x09d0, 0x09d8, 0x09de, + 0x09fb, 0x0a0b, 0x0a12, 0x0a1c, 0x0a24, 0x0a40, 0x0a49, 0x0a63, + 0x0a7e, 0x0a85, 0x0a8c, 0x0a9b, 0x0aa0, 0x0aa6, 0x0aab, 0x0ab2, + // Entry 100 - 13F + 0x0ac0, 0x0ac6, 0x0ace, 0x0ade, 0x0ae2, 0x0ae8, 0x0af8, 0x0b07, + 0x0b0f, 0x0b1f, 0x0b2f, 0x0b40, 0x0b4f, 0x0b5e, 0x0b74, 0x0b7b, + 0x0b93, 0x0b9a, 0x0baa, 0x0bb7, 0x0bcb, 0x0bda, 0x0be6, 0x0bf0, + 0x0c03, 0x0c0d, 0x0c12, 0x0c20, 0x0c2f, 0x0c36, 0x0c48, 0x0c58, + 0x0c69, 0x0c7a, +} // Size: 604 bytes + +var slRegionStr string = "" + // Size: 3188 bytes + "Otok AscensionAndoraZdruženi arabski emiratiAfganistanAntigva in Barbuda" + + "AngvilaAlbanijaArmenijaAngolaAntarktikaArgentinaAmeriÅ¡ka SamoaAvstrijaAv" + + "stralijaArubaÃ…landski otokiAzerbajdžanBosna in HercegovinaBarbadosBangla" + + "deÅ¡BelgijaBurkina FasoBolgarijaBahrajnBurundiBeninSaint BarthélemyBermud" + + "iBrunejBolivijaNizozemski KaribiBrazilijaBahamiButanBouvetov otokBocvana" + + "BelorusijaBelizeKanadaKokosovi otokiDemokratiÄna republika KongoCentraln" + + "oafriÅ¡ka republikaKongo - BrazzavilleÅ vicaSlonokoÅ¡Äena obalaCookovi otok" + + "iÄŒileKamerunKitajskaKolumbijaOtok ClippertonKostarikaKubaZelenortski oto" + + "kiCuraçaoBožiÄni otokCiperÄŒeÅ¡kaNemÄijaDiego GarciaDžibutiDanskaDominikaD" + + "ominikanska republikaAlžirijaCeuta in MelillaEkvadorEstonijaEgiptZahodna" + + " SaharaEritrejaÅ panijaEtiopijaEvropska unijaFinskaFidžiFalklandski otoki" + + "MikronezijaFerski otokiFrancijaGabonZdruženo kraljestvoGrenadaGruzijaFra" + + "ncoska GvajanaGuernseyGanaGibraltarGrenlandijaGambijaGvinejaGvadalupeEkv" + + "atorialna GvinejaGrÄijaJužna Georgia in Južni Sandwichevi otokiGvatemala" + + "GuamGvineja BissauGvajanaPosebno administrativno obmoÄje LR Kitajske Hon" + + "g KongHeardov otok in McDonaldovi otokiHondurasHrvaÅ¡kaHaitiMadžarskaKana" + + "rski otokiIndonezijaIrskaIzraelOtok ManIndijaBritansko ozemlje v Indijsk" + + "em oceanuIrakIranIslandijaItalijaJerseyJamajkaJordanijaJaponskaKenijaKir" + + "gizistanKambodžaKiribatiKomoriSaint Kitts in NevisSeverna KorejaJužna Ko" + + "rejaKuvajtKajmanski otokiKazahstanLaosLibanonSaint LuciaLihtenÅ¡tajnÅ rila" + + "nkaLiberijaLesotoLitvaLuksemburgLatvijaLibijaMarokoMonakoMoldavijaÄŒrna g" + + "oraSaint MartinMadagaskarMarshallovi otokiMakedonijaMaliMjanmar (Burma)M" + + "ongolijaPosebno administrativno obmoÄje LR Kitajske MacaoSeverni Marians" + + "ki otokiMartinikMavretanijaMontserratMaltaMauritiusMaldiviMalaviMehikaMa" + + "lezijaMozambikNamibijaNova KaledonijaNigerNorfolÅ¡ki otokNigerijaNikaragv" + + "aNizozemskaNorveÅ¡kaNepalNauruNiueNova ZelandijaOmanPanamaPeruFrancoska P" + + "olinezijaPapua Nova GvinejaFilipiniPakistanPoljskaSaint Pierre in Miquel" + + "onPitcairnPortorikoPalestinsko ozemljePortugalskaPalauParagvajKatarOstal" + + "a oceanijaReunionRomunijaSrbijaRusijaRuandaSaudova ArabijaSalomonovi oto" + + "kiSejÅ¡eliSudanÅ vedskaSingapurSveta HelenaSlovenijaSvalbard in Jan MayenS" + + "lovaÅ¡kaSierra LeoneSan MarinoSenegalSomalijaSurinamJužni SudanSao Tome i" + + "n PrincipeSalvadorSint MaartenSirijaSvaziTristan da CunhaOtoÄji Turks in" + + " CaicosÄŒadFrancosko južno ozemljeTogoTajskaTadžikistanTokelauVzhodni Tim" + + "orTurkmenistanTunizijaTongaTurÄijaTrinidad in TobagoTuvaluTajvanTanzanij" + + "aUkrajinaUgandaDruga ameriÅ¡ka ozemlja v Tihem oceanuZdružene države Amer" + + "ikeUrugvajUzbekistanVatikanSaint Vincent in GrenadineVenezuelaBritanski " + + "DeviÅ¡ki otokiAmeriÅ¡ki DeviÅ¡ki otokiVietnamVanuatuWallis in FutunaSamoaKo" + + "sovoJemenMayotteJužnoafriÅ¡ka republikaZambijaZimbabveNeznano ali nevelja" + + "vno obmoÄjeSvetAfrikaSeverna AmerikaJužna AmerikaOceanijaZahodna AfrikaS" + + "rednja AmerikaVzhodna AfrikaSeverna AfrikaSrednja AfrikaJužna AfrikaAmer" + + "ikesevernoameriÅ¡ka celinaKaribiVzhodna AzijaJužna AzijaJugovzhodna Azija" + + "Južna EvropaAvstralija in Nova ZelandijaMelanezijamikronezijska regijaPo" + + "linezijaAzijaOsrednja AzijaZahodna AzijaEvropaVzhodna EvropaSeverna Evro" + + "paZahodna EvropaLatinska Amerika" + +var slRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0014, 0x002d, 0x0037, 0x0049, 0x0050, 0x0058, + 0x0060, 0x0066, 0x0070, 0x0079, 0x0088, 0x0090, 0x009a, 0x009f, + 0x00ae, 0x00ba, 0x00ce, 0x00d6, 0x00e0, 0x00e7, 0x00f3, 0x00fc, + 0x0103, 0x010a, 0x010f, 0x0120, 0x0127, 0x012d, 0x0135, 0x0146, + 0x014f, 0x0155, 0x015a, 0x0167, 0x016e, 0x0178, 0x017e, 0x0184, + 0x0192, 0x01af, 0x01ca, 0x01dd, 0x01e3, 0x01f7, 0x0204, 0x0209, + 0x0210, 0x0218, 0x0221, 0x0230, 0x0239, 0x023d, 0x024e, 0x0256, + 0x0264, 0x0269, 0x0270, 0x0278, 0x0284, 0x028c, 0x0292, 0x029a, + // Entry 40 - 7F + 0x02b0, 0x02b9, 0x02c9, 0x02d0, 0x02d8, 0x02dd, 0x02eb, 0x02f3, + 0x02fb, 0x0303, 0x0311, 0x0317, 0x031d, 0x032e, 0x0339, 0x0345, + 0x034d, 0x0352, 0x0366, 0x036d, 0x0374, 0x0385, 0x038d, 0x0391, + 0x039a, 0x03a5, 0x03ac, 0x03b3, 0x03bc, 0x03d0, 0x03d7, 0x0401, + 0x040a, 0x040e, 0x041c, 0x0423, 0x0459, 0x047a, 0x0482, 0x048a, + 0x048f, 0x0499, 0x04a7, 0x04b1, 0x04b6, 0x04bc, 0x04c4, 0x04ca, + 0x04ee, 0x04f2, 0x04f6, 0x04ff, 0x0506, 0x050c, 0x0513, 0x051c, + 0x0524, 0x052a, 0x0535, 0x053e, 0x0546, 0x054c, 0x0560, 0x056e, + // Entry 80 - BF + 0x057b, 0x0581, 0x0590, 0x0599, 0x059d, 0x05a4, 0x05af, 0x05bb, + 0x05c4, 0x05cc, 0x05d2, 0x05d7, 0x05e1, 0x05e8, 0x05ee, 0x05f4, + 0x05fa, 0x0603, 0x060d, 0x0619, 0x0623, 0x0634, 0x063e, 0x0642, + 0x0651, 0x065a, 0x068c, 0x06a3, 0x06ab, 0x06b6, 0x06c0, 0x06c5, + 0x06ce, 0x06d5, 0x06db, 0x06e1, 0x06e9, 0x06f1, 0x06f9, 0x0708, + 0x070d, 0x071c, 0x0724, 0x072d, 0x0737, 0x0740, 0x0745, 0x074a, + 0x074e, 0x075c, 0x0760, 0x0766, 0x076a, 0x077e, 0x0790, 0x0798, + 0x07a0, 0x07a7, 0x07bf, 0x07c7, 0x07d0, 0x07e3, 0x07ee, 0x07f3, + // Entry C0 - FF + 0x07fb, 0x0800, 0x080f, 0x0816, 0x081e, 0x0824, 0x082a, 0x0830, + 0x083f, 0x084f, 0x0857, 0x085c, 0x0864, 0x086c, 0x0878, 0x0881, + 0x0896, 0x089f, 0x08ab, 0x08b5, 0x08bc, 0x08c4, 0x08cb, 0x08d7, + 0x08eb, 0x08f3, 0x08ff, 0x0905, 0x090a, 0x091a, 0x0931, 0x0935, + 0x094d, 0x0951, 0x0957, 0x0963, 0x096a, 0x0977, 0x0983, 0x098b, + 0x0990, 0x0998, 0x09aa, 0x09b0, 0x09b6, 0x09bf, 0x09c7, 0x09cd, + 0x09f3, 0x0a0c, 0x0a13, 0x0a1d, 0x0a24, 0x0a3e, 0x0a47, 0x0a5f, + 0x0a77, 0x0a7e, 0x0a85, 0x0a95, 0x0a9a, 0x0aa0, 0x0aa5, 0x0aac, + // Entry 100 - 13F + 0x0ac4, 0x0acb, 0x0ad3, 0x0af2, 0x0af6, 0x0afc, 0x0b0b, 0x0b19, + 0x0b21, 0x0b2f, 0x0b3e, 0x0b4c, 0x0b5a, 0x0b68, 0x0b75, 0x0b7c, + 0x0b93, 0x0b99, 0x0ba6, 0x0bb2, 0x0bc3, 0x0bd0, 0x0bec, 0x0bf6, + 0x0c0a, 0x0c14, 0x0c19, 0x0c27, 0x0c34, 0x0c3a, 0x0c48, 0x0c56, + 0x0c64, 0x0c74, +} // Size: 604 bytes + +var sqRegionStr string = "" + // Size: 3130 bytes + "Ishulli AsenshionAndorrëEmiratet e Bashkuara ArabeAfganistanAntigua e Ba" + + "rbudaAnguilëShqipëriArmeniAngolëAntarktikëArgjentinëSamoa AmerikaneAustr" + + "iAustraliArubëIshujt AlandëAzerbajxhanBosnjë-HercegovinëBarbadosBanglade" + + "shBelgjikëBurkina-FasoBullgariBahreinBurundBeninShën-BartolemeoBermudëBr" + + "unejBoliviKaraibet holandezeBrazilBahamasButanIshujt Bove’BotsuanëBjello" + + "rusiBelizëKanadaIshujt KokosëKongo-KinshasaRepublika Afrikano-QendroreKo" + + "ngo-BrazavilëZvicërBregu i FildishtëIshujt KukëKiliKamerunKinëKolumbiIsh" + + "ulli KlipërtonKosta-RikëKubëKepi i GjelbërKuraçaoIshulli i Krishtlindjes" + + "QiproRepublika ÇekeGjermaniDiego-GarsiaXhibutDanimarkëDominikëRepublika " + + "DominikaneAlgjeriTheuta e MelilaEkuadorEstoniEgjiptSaharaja PerëndimoreE" + + "ritreSpanjëEtiopiBashkimi EuropianFinlandëFixhiIshujt FolklandëMikronezi" + + "Ishujt FaroeFrancëGabonMbretëria e BashkuarGrenadëGjeorgjiGuajana France" + + "zeGuernsejGanëGjibraltarGrenlandëGambiGuineGuadalupeGuineja EkuatorialeG" + + "reqiXhorxha Jugore dhe Ishujt Senduiçë të JugutGuatemalëGuamGuine-BisauG" + + "uajanëRVAK i Hong KongutIshulli Hërd dhe Ishujt MekdonaldëHondurasKroaci" + + "HaitiHungariIshujt KanarieIndoneziIrlandëIzraelIshulli i ManitIndiTerrit" + + "ori Britanik i Oqeanit IndianIrakIranIslandëItaliXhersejXhamajkëJordaniJ" + + "aponiKeniaKirgistanKamboxhiaQiribatiKomoreShën-Kits dhe NevisKoreja e Ve" + + "riutKoreja e JugutKuvajtIshujt KajmanëKazakistanLaosLibanShën-LuçiaLihtë" + + "nshtajnSri-LankëLiberiLesotoLituaniLuksemburgLetoniLibiMarokMonakoMoldav" + + "iMali i ZiShën-MartinMadagaskarIshujt MarshallëMaqedoniMaliMianmar (Burm" + + "a)MongoliRVAK i MakaosIshujt e Marianës VerioreMartinikMauritaniMontsera" + + "tMaltëMauritiusMaldiveMalaviMeksikëMalajziMozambikNamibiKaledonia e ReNi" + + "gerIshulli NorfolkNigeriNikaraguaHolandëNorvegjiNepalNauruNiueZelanda e " + + "ReOmanPanamaPeruPolinezia FrancezePapua Guineja e ReFilipinePakistanPolo" + + "niShën-Peir dhe MikuelonIshujt PitkernëPorto-RikoTerritoret PalestinezeP" + + "ortugaliPalauParaguaiKatarOqeania e Largët (Lindja e Largët)ReunionRuman" + + "iSerbiRusiRuandëArabia SauditeIshujt SolomonëSishelSudanSuediSingaporShë" + + "n-HelenaSlloveniSvalbard e Zhan-MajenSllovakiSiera-LeoneSan-MarinoSenega" + + "liSomaliSurinamiSudani i JugutSao-Tome e PrinsipeEl SalvadorShën-Martin " + + "(Sint Maarten - pjesa e Mbretërisë së Holandës)SiriSuazilandëTristan-da-" + + "KunaIshujt Turke dhe KaikeÇadTerritoret Australiane FrancezeTogoTajlandë" + + "TaxhikistanTokelauTimori LindorTurkmenistanTuniziTongaTurqiTrinidad e To" + + "bagoTuvaluTajvanTanzaniUkrainëUgandëIshujt periferikë të SHBA-sëShtetet " + + "e Bashkuara të AmerikësUruguaiUzbekistanVatikanShën-Vinsent dhe Grenadin" + + "etVenezuelëIshujt e Virgjër BritanikëIshujt e Virgjër AmerikanëVietnamVa" + + "nuatuUollis e FutinaSamoaKosovëJemenMajotëAfrika e JugutZambiZimbabveI p" + + "anjohurBotaAfrikëAmerika e VeriutAmerika e JugutOqeaniAfrika Perëndimore" + + "Amerika QendroreAfrika LindoreAfrika VerioreAfrika e MesmeAfrika JugoreA" + + "merikëAmerika VerioreKaraibeAzia LindoreAzia JugoreAzia JuglindoreEuropa" + + " JugoreAustralaziaMelaneziaRajoni MikronezianPolineziaAziAzia QendroreAz" + + "ia PerëndimoreEuropëEuropa LindoreEuropa VerioreEuropa PerëndimoreAmerik" + + "a Latine" + +var sqRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0011, 0x0019, 0x0033, 0x003d, 0x004e, 0x0056, 0x005f, + 0x0065, 0x006c, 0x0077, 0x0082, 0x0091, 0x0097, 0x009f, 0x00a5, + 0x00b3, 0x00be, 0x00d2, 0x00da, 0x00e4, 0x00ed, 0x00f9, 0x0101, + 0x0108, 0x010e, 0x0113, 0x0123, 0x012b, 0x0131, 0x0137, 0x0149, + 0x014f, 0x0156, 0x015b, 0x0169, 0x0172, 0x017c, 0x0183, 0x0189, + 0x0197, 0x01a5, 0x01c0, 0x01d0, 0x01d7, 0x01e9, 0x01f5, 0x01f9, + 0x0200, 0x0205, 0x020c, 0x021e, 0x0229, 0x022e, 0x023d, 0x0245, + 0x025c, 0x0261, 0x0270, 0x0278, 0x0284, 0x028a, 0x0294, 0x029d, + // Entry 40 - 7F + 0x02b1, 0x02b8, 0x02c7, 0x02ce, 0x02d4, 0x02da, 0x02ef, 0x02f5, + 0x02fc, 0x0302, 0x0313, 0x031c, 0x0321, 0x0332, 0x033b, 0x0347, + 0x034e, 0x0353, 0x0368, 0x0370, 0x0378, 0x0388, 0x0390, 0x0395, + 0x039f, 0x03a9, 0x03ae, 0x03b3, 0x03bc, 0x03cf, 0x03d4, 0x0402, + 0x040c, 0x0410, 0x041b, 0x0423, 0x0435, 0x0459, 0x0461, 0x0467, + 0x046c, 0x0473, 0x0481, 0x0489, 0x0491, 0x0497, 0x04a6, 0x04aa, + 0x04cd, 0x04d1, 0x04d5, 0x04dd, 0x04e2, 0x04e9, 0x04f2, 0x04f9, + 0x04ff, 0x0504, 0x050d, 0x0516, 0x051e, 0x0524, 0x0538, 0x0547, + // Entry 80 - BF + 0x0555, 0x055b, 0x056a, 0x0574, 0x0578, 0x057d, 0x0589, 0x0596, + 0x05a0, 0x05a6, 0x05ac, 0x05b3, 0x05bd, 0x05c3, 0x05c7, 0x05cc, + 0x05d2, 0x05d9, 0x05e2, 0x05ee, 0x05f8, 0x0609, 0x0611, 0x0615, + 0x0624, 0x062b, 0x0638, 0x0652, 0x065a, 0x0663, 0x066c, 0x0672, + 0x067b, 0x0682, 0x0688, 0x0690, 0x0697, 0x069f, 0x06a5, 0x06b3, + 0x06b8, 0x06c7, 0x06cd, 0x06d6, 0x06de, 0x06e6, 0x06eb, 0x06f0, + 0x06f4, 0x0700, 0x0704, 0x070a, 0x070e, 0x0720, 0x0732, 0x073a, + 0x0742, 0x0748, 0x075f, 0x076f, 0x0779, 0x078f, 0x0798, 0x079d, + // Entry C0 - FF + 0x07a5, 0x07aa, 0x07ce, 0x07d5, 0x07db, 0x07e0, 0x07e4, 0x07eb, + 0x07f9, 0x0809, 0x080f, 0x0814, 0x0819, 0x0821, 0x082d, 0x0835, + 0x084a, 0x0852, 0x085d, 0x0867, 0x086f, 0x0875, 0x087d, 0x088b, + 0x089e, 0x08a9, 0x08e9, 0x08ed, 0x08f8, 0x0907, 0x091d, 0x0921, + 0x0940, 0x0944, 0x094d, 0x0958, 0x095f, 0x096c, 0x0978, 0x097e, + 0x0983, 0x0988, 0x0999, 0x099f, 0x09a5, 0x09ac, 0x09b4, 0x09bb, + 0x09da, 0x09fb, 0x0a02, 0x0a0c, 0x0a13, 0x0a2f, 0x0a39, 0x0a55, + 0x0a71, 0x0a78, 0x0a7f, 0x0a8e, 0x0a93, 0x0a9a, 0x0a9f, 0x0aa6, + // Entry 100 - 13F + 0x0ab4, 0x0ab9, 0x0ac1, 0x0acb, 0x0acf, 0x0ad6, 0x0ae6, 0x0af5, + 0x0afb, 0x0b0e, 0x0b1e, 0x0b2c, 0x0b3a, 0x0b48, 0x0b55, 0x0b5d, + 0x0b6c, 0x0b73, 0x0b7f, 0x0b8a, 0x0b99, 0x0ba6, 0x0bb1, 0x0bba, + 0x0bcc, 0x0bd5, 0x0bd8, 0x0be5, 0x0bf6, 0x0bfd, 0x0c0b, 0x0c19, + 0x0c2c, 0x0c3a, +} // Size: 604 bytes + +var srRegionStr string = "" + // Size: 5892 bytes + "ОÑтрво ÐÑенÑионÐндораУједињени ÐрапÑки ЕмиратиÐвганиÑтанÐнтигва и Барбуд" + + "аÐнгвилаÐлбанијаЈерменијаÐнголаÐнтарктикÐргентинаÐмеричка СамоаÐуÑтрија" + + "ÐуÑтралијаÐрубаОландÑка оÑтрваÐзербејџанБоÑна и ХерцеговинаБарбадоÑБанг" + + "ладешБелгијаБуркина ФаÑоБугарÑкаБахреинБурундиБенинСвети БартоломејБерм" + + "удаБрунејБоливијаКарипÑка ХоландијаБразилБахамиБутанОÑтрво БувеБоцванаБ" + + "елоруÑијаБелизеКанадаКокоÑова (Килингова) ОÑтрваКонго - КиншаÑаЦентралн" + + "оафричка РепубликаКонго - БразавилШвајцарÑкаОбала СлоновачеКукова ОÑтрв" + + "аЧилеКамерунКинаКолумбијаОÑтрво КлипертонКоÑтарикаКубаЗеленортÑка ОÑтрв" + + "аКураÑаоБожићно оÑтрвоКипарЧешкаÐемачкаДијего ГарÑијаÐибутиДанÑкаДомини" + + "каДоминиканÑка РепубликаÐлжирСеута и МелиљаЕквадорЕÑтонијаЕгипатЗападна" + + " СахараЕритрејаШпанијаЕтиопијаЕвропÑка УнијаФинÑкаФиџиФокландÑка оÑтрваМ" + + "икронезијаФарÑка ОÑтрваФранцуÑкаГабонВелика БританијаГренадаГрузијаФран" + + "цуÑка ГвајанаГурнÑиГанаГибралтарГренландГамбијаГвинејаГваделупеЕкватори" + + "јална ГвинејаГрчкаЈужна Ðорџија и Јужна Сендвич ОÑтрваГватемалаГуамГвин" + + "еја-БиÑаоГвајанаСÐР Хонгконг (Кина)ОÑтрва Херд и МекдоналдХондураÑХрват" + + "ÑкаХаитиМађарÑкаКанарÑка оÑтрваИндонезијаИрÑкаИзраелОÑтрво МанИндијаБри" + + "танÑка територија у ИндијÑком океануИракИранИÑландИталијаÐерÑиЈамајкаЈо" + + "рданЈапанКенијаКиргиÑтанКамбоџаКирибатиКоморÑка ОÑтрваСент ÐšÐ¸Ñ‚Ñ Ð¸ ÐевиÑ" + + "Северна КорејаЈужна КорејаКувајтКајманÑка ОÑтрваКазахÑтанЛаоÑЛибанСвета" + + " ЛуцијаЛихтенштајнШри ЛанкаЛиберијаЛеÑотоЛитванијаЛукÑембургЛетонијаЛиби" + + "јаМарокоМонакоМолдавијаЦрна ГораСент МартинМадагаÑкарМаршалÑка ОÑтрваМа" + + "кедонијаМалиМијанмар (Бурма)МонголијаСÐР Макао (Кина)Северна МаријанÑка" + + " ОÑтрваМартиникМауританијаМонÑератМалтаМаурицијуÑМалдивиМалавиМекÑикоМал" + + "езијаМозамбикÐамибијаÐова КаледонијаÐигерОÑтрво ÐорфокÐигеријаÐикарагва" + + "ХоландијаÐорвешкаÐепалÐауруÐиуеÐови ЗеландОманПанамаПеруФранцуÑка Полин" + + "езијаПапуа Ðова ГвинејаФилипиниПакиÑтанПољÑкаСен Пјер и МикелонПиткернП" + + "орторикоПалеÑтинÑке територијеПортугалПалауПарагвајКатарОкеанија (удаље" + + "на оÑтрва)РеинионРумунијаСрбијаРуÑијаРуандаСаудијÑка ÐрабијаСоломонÑка " + + "ОÑтрваСејшелиСуданШведÑкаСингапурСвета ЈеленаСловенијаСвалбард и Јан Ма" + + "јенСловачкаСијера ЛеонеСан МариноСенегалСомалијаСуринамЈужни СуданСао Т" + + "оме и ПринципеСалвадорСвети МартинСиријаСвазилендТриÑтан да КуњаОÑтрва " + + "Ð¢ÑƒÑ€ÐºÑ Ð¸ КаикоÑЧадФранцуÑке Јужне ТериторијеТогоТајландТаџикиÑтанТокелау" + + "ИÑточни ТиморТуркмениÑтанТуниÑТонгаТурÑкаТринидад и ТобагоТувалуТајванТ" + + "анзанијаУкрајинаУгандаУдаљена оÑтрва СÐДСједињене Ðмеричке ДржавеУругва" + + "јУзбекиÑтанВатиканСент ВинÑент и ГренадиниВенецуелаБританÑка ДевичанÑка" + + " ОÑтрваÐмеричка ДевичанÑка ОÑÑ‚Ñ€Ð²Ð°Ð’Ð¸Ñ˜ÐµÑ‚Ð½Ð°Ð¼Ð’Ð°Ð½ÑƒÐ°Ñ‚ÑƒÐ’Ð°Ð»Ð¸Ñ Ð¸ ФутунаСамоаКоÑов" + + "оЈеменМајотЈужноафричка РепубликаЗамбијаЗимбабвеÐепознат регионÑветÐфри" + + "каСеверноамерички континентЈужна ÐмерикаОкеанијаЗападна ÐфрикаЦентрална" + + " ÐмерикаИÑточна ÐфрикаСеверна ÐфрикаЦентрална ÐфрикаЈужна ÐфрикаСеверна " + + "и Јужна ÐмерикаСеверна ÐмерикаКарибиИÑточна ÐзијаЈужна ÐзијаЈугоиÑточна" + + " ÐзијаЈужна ЕвропаÐуÑтралија и Ðови ЗеландМеланезијаМикронезијÑки регион" + + "ПолинезијаÐзијаЦентрална ÐзијаЗападна ÐзијаЕвропаИÑточна ЕвропаСеверна " + + "ЕвропаЗападна ЕвропаЛатинÑка Ðмерика" + +var srRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001d, 0x0029, 0x0059, 0x006d, 0x008d, 0x009b, 0x00ab, + 0x00bd, 0x00c9, 0x00db, 0x00ed, 0x0108, 0x0118, 0x012c, 0x0136, + 0x0153, 0x0167, 0x018b, 0x019b, 0x01ad, 0x01bb, 0x01d2, 0x01e2, + 0x01f0, 0x01fe, 0x0208, 0x0227, 0x0235, 0x0241, 0x0251, 0x0274, + 0x0280, 0x028c, 0x0296, 0x02ab, 0x02b9, 0x02cd, 0x02d9, 0x02e5, + 0x0317, 0x0332, 0x0365, 0x0382, 0x0396, 0x03b3, 0x03cc, 0x03d4, + 0x03e2, 0x03ea, 0x03fc, 0x041b, 0x042d, 0x0435, 0x0458, 0x0466, + 0x0481, 0x048b, 0x0495, 0x04a3, 0x04be, 0x04ca, 0x04d6, 0x04e6, + // Entry 40 - 7F + 0x0511, 0x051b, 0x0535, 0x0543, 0x0553, 0x055f, 0x057a, 0x058a, + 0x0598, 0x05a8, 0x05c3, 0x05cf, 0x05d7, 0x05f8, 0x060e, 0x0627, + 0x0639, 0x0643, 0x0662, 0x0670, 0x067e, 0x069f, 0x06ab, 0x06b3, + 0x06c5, 0x06d5, 0x06e3, 0x06f1, 0x0703, 0x072c, 0x0736, 0x0779, + 0x078b, 0x0793, 0x07ac, 0x07ba, 0x07dc, 0x0807, 0x0817, 0x0827, + 0x0831, 0x0841, 0x085e, 0x0872, 0x087c, 0x0888, 0x089b, 0x08a7, + 0x08f1, 0x08f9, 0x0901, 0x090d, 0x091b, 0x0925, 0x0933, 0x093f, + 0x0949, 0x0955, 0x0967, 0x0975, 0x0985, 0x09a2, 0x09c1, 0x09dc, + // Entry 80 - BF + 0x09f3, 0x09ff, 0x0a1e, 0x0a30, 0x0a38, 0x0a42, 0x0a59, 0x0a6f, + 0x0a80, 0x0a90, 0x0a9c, 0x0aae, 0x0ac2, 0x0ad2, 0x0ade, 0x0aea, + 0x0af6, 0x0b08, 0x0b19, 0x0b2e, 0x0b42, 0x0b61, 0x0b75, 0x0b7d, + 0x0b9a, 0x0bac, 0x0bc8, 0x0bf8, 0x0c08, 0x0c1e, 0x0c2e, 0x0c38, + 0x0c4c, 0x0c5a, 0x0c66, 0x0c74, 0x0c84, 0x0c94, 0x0ca4, 0x0cc1, + 0x0ccb, 0x0ce4, 0x0cf4, 0x0d06, 0x0d18, 0x0d28, 0x0d32, 0x0d3c, + 0x0d44, 0x0d59, 0x0d61, 0x0d6d, 0x0d75, 0x0d9c, 0x0dbe, 0x0dce, + 0x0dde, 0x0dea, 0x0e0b, 0x0e19, 0x0e2b, 0x0e56, 0x0e66, 0x0e70, + // Entry C0 - FF + 0x0e80, 0x0e8a, 0x0eb8, 0x0ec6, 0x0ed6, 0x0ee2, 0x0eee, 0x0efa, + 0x0f1b, 0x0f3c, 0x0f4a, 0x0f54, 0x0f62, 0x0f72, 0x0f89, 0x0f9b, + 0x0fc0, 0x0fd0, 0x0fe7, 0x0ffa, 0x1008, 0x1018, 0x1026, 0x103b, + 0x105e, 0x106e, 0x1085, 0x1091, 0x10a3, 0x10bf, 0x10e6, 0x10ec, + 0x111e, 0x1126, 0x1134, 0x1148, 0x1156, 0x116f, 0x1187, 0x1191, + 0x119b, 0x11a7, 0x11c7, 0x11d3, 0x11df, 0x11f1, 0x1201, 0x120d, + 0x122f, 0x125f, 0x126d, 0x1281, 0x128f, 0x12bc, 0x12ce, 0x1302, + 0x1334, 0x1344, 0x1352, 0x136c, 0x1376, 0x1382, 0x138c, 0x1396, + // Entry 100 - 13F + 0x13c1, 0x13cf, 0x13df, 0x13fc, 0x1404, 0x1410, 0x1441, 0x145a, + 0x146a, 0x1485, 0x14a6, 0x14c1, 0x14dc, 0x14fb, 0x1512, 0x153d, + 0x155a, 0x1566, 0x157f, 0x1594, 0x15b5, 0x15cc, 0x15f9, 0x160d, + 0x1634, 0x1648, 0x1652, 0x166f, 0x1688, 0x1694, 0x16af, 0x16ca, + 0x16e5, 0x1704, +} // Size: 604 bytes + +var srLatnRegionStr string = "" + // Size: 3096 bytes + "Ostrvo AsensionAndoraUjedinjeni Arapski EmiratiAvganistanAntigva i Barbu" + + "daAngvilaAlbanijaJermenijaAngolaAntarktikArgentinaAmeriÄka SamoaAustrija" + + "AustralijaArubaOlandska ostrvaAzerbejdžanBosna i HercegovinaBarbadosBang" + + "ladeÅ¡BelgijaBurkina FasoBugarskaBahreinBurundiBeninSveti BartolomejBermu" + + "daBrunejBolivijaKaripska HolandijaBrazilBahamiButanOstrvo BuveBocvanaBel" + + "orusijaBelizeKanadaKokosova (Kilingova) OstrvaKongo - KinÅ¡asaCentralnoaf" + + "riÄka RepublikaKongo - BrazavilÅ vajcarskaObala SlonovaÄeKukova OstrvaÄŒil" + + "eKamerunKinaKolumbijaOstrvo KlipertonKostarikaKubaZelenortska OstrvaKura" + + "saoBožićno ostrvoKiparÄŒeÅ¡kaNemaÄkaDijego GarsijaDžibutiDanskaDominikaDom" + + "inikanska RepublikaAlžirSeuta i MeliljaEkvadorEstonijaEgipatZapadna Saha" + + "raEritrejaÅ panijaEtiopijaEvropska UnijaFinskaFidžiFoklandska ostrvaMikro" + + "nezijaFarska OstrvaFrancuskaGabonVelika BritanijaGrenadaGruzijaFrancuska" + + " GvajanaGurnsiGanaGibraltarGrenlandGambijaGvinejaGvadelupeEkvatorijalna " + + "GvinejaGrÄkaJužna Džordžija i Južna SendviÄ OstrvaGvatemalaGuamGvineja-B" + + "isaoGvajanaSAR Hongkong (Kina)Ostrva Herd i MekdonaldHondurasHrvatskaHai" + + "tiMaÄ‘arskaKanarska ostrvaIndonezijaIrskaIzraelOstrvo ManIndijaBritanska " + + "teritorija u Indijskom okeanuIrakIranIslandItalijaDžersiJamajkaJordanJap" + + "anKenijaKirgistanKambodžaKiribatiKomorska OstrvaSent Kits i NevisSeverna" + + " KorejaJužna KorejaKuvajtKajmanska OstrvaKazahstanLaosLibanSveta LucijaL" + + "ihtenÅ¡tajnÅ ri LankaLiberijaLesotoLitvanijaLuksemburgLetonijaLibijaMaroko" + + "MonakoMoldavijaCrna GoraSent MartinMadagaskarMarÅ¡alska OstrvaMakedonijaM" + + "aliMijanmar (Burma)MongolijaSAR Makao (Kina)Severna Marijanska OstrvaMar" + + "tinikMauritanijaMonseratMaltaMauricijusMaldiviMalaviMeksikoMalezijaMozam" + + "bikNamibijaNova KaledonijaNigerOstrvo NorfokNigerijaNikaragvaHolandijaNo" + + "rveÅ¡kaNepalNauruNiueNovi ZelandOmanPanamaPeruFrancuska PolinezijaPapua N" + + "ova GvinejaFilipiniPakistanPoljskaSen Pjer i MikelonPitkernPortorikoPale" + + "stinske teritorijePortugalPalauParagvajKatarOkeanija (udaljena ostrva)Re" + + "inionRumunijaSrbijaRusijaRuandaSaudijska ArabijaSolomonska OstrvaSejÅ¡eli" + + "SudanÅ vedskaSingapurSveta JelenaSlovenijaSvalbard i Jan MajenSlovaÄkaSij" + + "era LeoneSan MarinoSenegalSomalijaSurinamJužni SudanSao Tome i PrincipeS" + + "alvadorSveti MartinSirijaSvazilendTristan da KunjaOstrva Turks i KaikosÄŒ" + + "adFrancuske Južne TeritorijeTogoTajlandTadžikistanTokelauIstoÄni TimorTu" + + "rkmenistanTunisTongaTurskaTrinidad i TobagoTuvaluTajvanTanzanijaUkrajina" + + "UgandaUdaljena ostrva SADSjedinjene AmeriÄke DržaveUrugvajUzbekistanVati" + + "kanSent Vinsent i GrenadiniVenecuelaBritanska DeviÄanska OstrvaAmeriÄka " + + "DeviÄanska OstrvaVijetnamVanuatuValis i FutunaSamoaKosovoJemenMajotJužno" + + "afriÄka RepublikaZambijaZimbabveNepoznat regionsvetAfrikaSevernoameriÄki" + + " kontinentJužna AmerikaOkeanijaZapadna AfrikaCentralna AmerikaIstoÄna Af" + + "rikaSeverna AfrikaCentralna AfrikaJužna AfrikaSeverna i Južna AmerikaSev" + + "erna AmerikaKaribiIstoÄna AzijaJužna AzijaJugoistoÄna AzijaJužna EvropaA" + + "ustralija i Novi ZelandMelanezijaMikronezijski regionPolinezijaAzijaCent" + + "ralna AzijaZapadna AzijaEvropaIstoÄna EvropaSeverna EvropaZapadna Evropa" + + "Latinska Amerika" + +var srLatnRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000f, 0x0015, 0x002f, 0x0039, 0x004a, 0x0051, 0x0059, + 0x0062, 0x0068, 0x0071, 0x007a, 0x0089, 0x0091, 0x009b, 0x00a0, + 0x00af, 0x00bb, 0x00ce, 0x00d6, 0x00e0, 0x00e7, 0x00f3, 0x00fb, + 0x0102, 0x0109, 0x010e, 0x011e, 0x0125, 0x012b, 0x0133, 0x0145, + 0x014b, 0x0151, 0x0156, 0x0161, 0x0168, 0x0172, 0x0178, 0x017e, + 0x0199, 0x01a9, 0x01c4, 0x01d4, 0x01df, 0x01ef, 0x01fc, 0x0201, + 0x0208, 0x020c, 0x0215, 0x0225, 0x022e, 0x0232, 0x0244, 0x024b, + 0x025b, 0x0260, 0x0267, 0x026f, 0x027d, 0x0285, 0x028b, 0x0293, + // Entry 40 - 7F + 0x02a9, 0x02af, 0x02be, 0x02c5, 0x02cd, 0x02d3, 0x02e1, 0x02e9, + 0x02f1, 0x02f9, 0x0307, 0x030d, 0x0313, 0x0324, 0x032f, 0x033c, + 0x0345, 0x034a, 0x035a, 0x0361, 0x0368, 0x0379, 0x037f, 0x0383, + 0x038c, 0x0394, 0x039b, 0x03a2, 0x03ab, 0x03c0, 0x03c6, 0x03f1, + 0x03fa, 0x03fe, 0x040b, 0x0412, 0x0425, 0x043c, 0x0444, 0x044c, + 0x0451, 0x045a, 0x0469, 0x0473, 0x0478, 0x047e, 0x0488, 0x048e, + 0x04b5, 0x04b9, 0x04bd, 0x04c3, 0x04ca, 0x04d1, 0x04d8, 0x04de, + 0x04e3, 0x04e9, 0x04f2, 0x04fb, 0x0503, 0x0512, 0x0523, 0x0531, + // Entry 80 - BF + 0x053e, 0x0544, 0x0554, 0x055d, 0x0561, 0x0566, 0x0572, 0x057e, + 0x0588, 0x0590, 0x0596, 0x059f, 0x05a9, 0x05b1, 0x05b7, 0x05bd, + 0x05c3, 0x05cc, 0x05d5, 0x05e0, 0x05ea, 0x05fb, 0x0605, 0x0609, + 0x0619, 0x0622, 0x0632, 0x064b, 0x0653, 0x065e, 0x0666, 0x066b, + 0x0675, 0x067c, 0x0682, 0x0689, 0x0691, 0x0699, 0x06a1, 0x06b0, + 0x06b5, 0x06c2, 0x06ca, 0x06d3, 0x06dc, 0x06e5, 0x06ea, 0x06ef, + 0x06f3, 0x06fe, 0x0702, 0x0708, 0x070c, 0x0720, 0x0732, 0x073a, + 0x0742, 0x0749, 0x075b, 0x0762, 0x076b, 0x0781, 0x0789, 0x078e, + // Entry C0 - FF + 0x0796, 0x079b, 0x07b5, 0x07bc, 0x07c4, 0x07ca, 0x07d0, 0x07d6, + 0x07e7, 0x07f8, 0x0800, 0x0805, 0x080d, 0x0815, 0x0821, 0x082a, + 0x083e, 0x0847, 0x0853, 0x085d, 0x0864, 0x086c, 0x0873, 0x087f, + 0x0892, 0x089a, 0x08a6, 0x08ac, 0x08b5, 0x08c5, 0x08da, 0x08de, + 0x08f9, 0x08fd, 0x0904, 0x0910, 0x0917, 0x0925, 0x0931, 0x0936, + 0x093b, 0x0941, 0x0952, 0x0958, 0x095e, 0x0967, 0x096f, 0x0975, + 0x0988, 0x09a4, 0x09ab, 0x09b5, 0x09bc, 0x09d4, 0x09dd, 0x09f9, + 0x0a15, 0x0a1d, 0x0a24, 0x0a32, 0x0a37, 0x0a3d, 0x0a42, 0x0a47, + // Entry 100 - 13F + 0x0a5f, 0x0a66, 0x0a6e, 0x0a7d, 0x0a81, 0x0a87, 0x0aa1, 0x0aaf, + 0x0ab7, 0x0ac5, 0x0ad6, 0x0ae5, 0x0af3, 0x0b03, 0x0b10, 0x0b28, + 0x0b37, 0x0b3d, 0x0b4b, 0x0b57, 0x0b69, 0x0b76, 0x0b8e, 0x0b98, + 0x0bac, 0x0bb6, 0x0bbb, 0x0bca, 0x0bd7, 0x0bdd, 0x0bec, 0x0bfa, + 0x0c08, 0x0c18, +} // Size: 604 bytes + +var svRegionStr string = "" + // Size: 2900 bytes + "AscensionAndorraFörenade ArabemiratenAfghanistanAntigua och BarbudaAngui" + + "llaAlbanienArmenienAngolaAntarktisArgentinaAmerikanska SamoaÖsterrikeAus" + + "tralienArubaÃ…landAzerbajdzjanBosnien och HercegovinaBarbadosBangladeshBe" + + "lgienBurkina FasoBulgarienBahrainBurundiBeninS:t BarthélemyBermudaBrunei" + + "BoliviaKaribiska NederländernaBrasilienBahamasBhutanBouvetönBotswanaVitr" + + "ysslandBelizeKanadaKokosöarnaKongo-KinshasaCentralafrikanska republikenK" + + "ongo-BrazzavilleSchweizElfenbenskustenCooköarnaChileKamerunKinaColombiaC" + + "lippertonönCosta RicaKubaKap VerdeCuraçaoJulönCypernTjeckienTysklandDieg" + + "o GarciaDjiboutiDanmarkDominicaDominikanska republikenAlgerietCeuta och " + + "MelillaEcuadorEstlandEgyptenVästsaharaEritreaSpanienEtiopienEuropeiska u" + + "nionenFinlandFijiFalklandsöarnaMikronesienFäröarnaFrankrikeGabonStorbrit" + + "annienGrenadaGeorgienFranska GuyanaGuernseyGhanaGibraltarGrönlandGambiaG" + + "uineaGuadeloupeEkvatorialguineaGreklandSydgeorgien och SydsandwichöarnaG" + + "uatemalaGuamGuinea-BissauGuyanaHongkong, S.A.R. KinaHeardön och McDonald" + + "öarnaHondurasKroatienHaitiUngernKanarieöarnaIndonesienIrlandIsraelIsle " + + "of ManIndienBrittiska territoriet i Indiska oceanenIrakIranIslandItalien" + + "JerseyJamaicaJordanienJapanKenyaKirgizistanKambodjaKiribatiKomorernaS:t " + + "Kitts och NevisNordkoreaSydkoreaKuwaitCaymanöarnaKazakstanLaosLibanonS:t" + + " LuciaLiechtensteinSri LankaLiberiaLesothoLitauenLuxemburgLettlandLibyen" + + "MarockoMonacoMoldavienMontenegroS:t MartinMadagaskarMarshallöarnaMakedon" + + "ienMaliMyanmar (Burma)MongolietMacao, S.A.R. KinaNordmarianernaMartiniqu" + + "eMauretanienMontserratMaltaMauritiusMaldivernaMalawiMexikoMalaysiaMoçamb" + + "iqueNamibiaNya KaledonienNigerNorfolkönNigeriaNicaraguaNederländernaNorg" + + "eNepalNauruNiueNya ZeelandOmanPanamaPeruFranska PolynesienPapua Nya Guin" + + "eaFilippinernaPakistanPolenS:t Pierre och MiquelonPitcairnöarnaPuerto Ri" + + "coPalestinska territoriernaPortugalPalauParaguayQataryttre öar i Oceanie" + + "nRéunionRumänienSerbienRysslandRwandaSaudiarabienSalomonöarnaSeychellern" + + "aSudanSverigeSingaporeS:t HelenaSlovenienSvalbard och Jan MayenSlovakien" + + "Sierra LeoneSan MarinoSenegalSomaliaSurinamSydsudanSão Tomé och Príncipe" + + "El SalvadorSint MaartenSyrienSwazilandTristan da CunhaTurks- och Caicosö" + + "arnaTchadFranska sydterritoriernaTogoThailandTadzjikistanTokelauÖsttimor" + + "TurkmenistanTunisienTongaTurkietTrinidad och TobagoTuvaluTaiwanTanzaniaU" + + "krainaUgandaUSA:s yttre öarUSAUruguayUzbekistanVatikanstatenS:t Vincent " + + "och GrenadinernaVenezuelaBrittiska JungfruöarnaAmerikanska JungfruöarnaV" + + "ietnamVanuatuWallis- och FutunaöarnaSamoaKosovoJemenMayotteSydafrikaZamb" + + "iaZimbabweokänd regionvärldenAfrikaNordamerikaSydamerikaOceanienVästafri" + + "kaCentralamerikaÖstafrikaNordafrikaCentralafrikasödra AfrikaNord- och Sy" + + "damerikanorra AmerikaKaribienÖstasienSydasienSydostasienSydeuropaAustral" + + "asienMelanesienMikronesiska öarnaPolynesienAsienCentralasienVästasienEur" + + "opaÖsteuropaNordeuropaVästeuropaLatinamerika" + +var svRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x0010, 0x0026, 0x0031, 0x0044, 0x004c, 0x0054, + 0x005c, 0x0062, 0x006b, 0x0074, 0x0085, 0x008f, 0x0099, 0x009e, + 0x00a4, 0x00b0, 0x00c7, 0x00cf, 0x00d9, 0x00e0, 0x00ec, 0x00f5, + 0x00fc, 0x0103, 0x0108, 0x0117, 0x011e, 0x0124, 0x012b, 0x0143, + 0x014c, 0x0153, 0x0159, 0x0162, 0x016a, 0x0175, 0x017b, 0x0181, + 0x018c, 0x019a, 0x01b6, 0x01c7, 0x01ce, 0x01dd, 0x01e7, 0x01ec, + 0x01f3, 0x01f7, 0x01ff, 0x020c, 0x0216, 0x021a, 0x0223, 0x022b, + 0x0231, 0x0237, 0x023f, 0x0247, 0x0253, 0x025b, 0x0262, 0x026a, + // Entry 40 - 7F + 0x0281, 0x0289, 0x029a, 0x02a1, 0x02a8, 0x02af, 0x02ba, 0x02c1, + 0x02c8, 0x02d0, 0x02e2, 0x02e9, 0x02ed, 0x02fc, 0x0307, 0x0311, + 0x031a, 0x031f, 0x032d, 0x0334, 0x033c, 0x034a, 0x0352, 0x0357, + 0x0360, 0x0369, 0x036f, 0x0375, 0x037f, 0x038f, 0x0397, 0x03b8, + 0x03c1, 0x03c5, 0x03d2, 0x03d8, 0x03ed, 0x0408, 0x0410, 0x0418, + 0x041d, 0x0423, 0x0430, 0x043a, 0x0440, 0x0446, 0x0451, 0x0457, + 0x047e, 0x0482, 0x0486, 0x048c, 0x0493, 0x0499, 0x04a0, 0x04a9, + 0x04ae, 0x04b3, 0x04be, 0x04c6, 0x04ce, 0x04d7, 0x04ea, 0x04f3, + // Entry 80 - BF + 0x04fb, 0x0501, 0x050d, 0x0516, 0x051a, 0x0521, 0x052a, 0x0537, + 0x0540, 0x0547, 0x054e, 0x0555, 0x055e, 0x0566, 0x056c, 0x0573, + 0x0579, 0x0582, 0x058c, 0x0596, 0x05a0, 0x05ae, 0x05b8, 0x05bc, + 0x05cb, 0x05d4, 0x05e6, 0x05f4, 0x05fe, 0x0609, 0x0613, 0x0618, + 0x0621, 0x062b, 0x0631, 0x0637, 0x063f, 0x064a, 0x0651, 0x065f, + 0x0664, 0x066e, 0x0675, 0x067e, 0x068c, 0x0691, 0x0696, 0x069b, + 0x069f, 0x06aa, 0x06ae, 0x06b4, 0x06b8, 0x06ca, 0x06da, 0x06e6, + 0x06ee, 0x06f3, 0x070a, 0x0718, 0x0723, 0x073c, 0x0744, 0x0749, + // Entry C0 - FF + 0x0751, 0x0756, 0x076b, 0x0773, 0x077c, 0x0783, 0x078b, 0x0791, + 0x079d, 0x07aa, 0x07b6, 0x07bb, 0x07c2, 0x07cb, 0x07d5, 0x07de, + 0x07f4, 0x07fd, 0x0809, 0x0813, 0x081a, 0x0821, 0x0828, 0x0830, + 0x0848, 0x0853, 0x085f, 0x0865, 0x086e, 0x087e, 0x0895, 0x089a, + 0x08b2, 0x08b6, 0x08be, 0x08ca, 0x08d1, 0x08da, 0x08e6, 0x08ee, + 0x08f3, 0x08fa, 0x090d, 0x0913, 0x0919, 0x0921, 0x0928, 0x092e, + 0x093e, 0x0941, 0x0948, 0x0952, 0x095f, 0x097b, 0x0984, 0x099b, + 0x09b4, 0x09bb, 0x09c2, 0x09da, 0x09df, 0x09e5, 0x09ea, 0x09f1, + // Entry 100 - 13F + 0x09fa, 0x0a00, 0x0a08, 0x0a15, 0x0a1d, 0x0a23, 0x0a2e, 0x0a38, + 0x0a40, 0x0a4b, 0x0a59, 0x0a63, 0x0a6d, 0x0a7a, 0x0a87, 0x0a9b, + 0x0aa8, 0x0ab0, 0x0ab9, 0x0ac1, 0x0acc, 0x0ad5, 0x0ae1, 0x0aeb, + 0x0afe, 0x0b08, 0x0b0d, 0x0b19, 0x0b23, 0x0b29, 0x0b33, 0x0b3d, + 0x0b48, 0x0b54, +} // Size: 604 bytes + +var swRegionStr string = "" + // Size: 3104 bytes + "Kisiwa cha AscensionAndoraFalme za KiarabuAfghanistanAntigua na BarbudaA" + + "nguillaAlbaniaArmeniaAngolaAntaktikaAjentinaSamoa ya MarekaniAustriaAust" + + "raliaArubaVisiwa vya AlandiAzabajaniBosnia na HezegovinaBabadosiBanglade" + + "shiUbelgijiBukinafasoBulgariaBahareniBurundiBeninSantabathelemiBermudaBr" + + "uneiBoliviaUholanzi ya KaribianiBraziliBahamaBhutanKisiwa cha BouvetBots" + + "wanaBelarusiBelizeKanadaVisiwa vya Cocos (Keeling)Jamhuri ya Kidemokrasi" + + "a ya KongoJamhuri ya Afrika ya KatiKongo - BrazzavilleUswisiCôte d’Ivoir" + + "eVisiwa vya CookChileKameruniChinaKolombiaKisiwa cha ClippertonKostarika" + + "KubaKepuvedeKurakaoKisiwa cha KrismasiCyprusJamhuri ya ChekiUjerumaniDie" + + "go GarciaJibutiDenmarkDominikaJamhuri ya DominikaAljeriaCeuta na Melilla" + + "EkwadoEstoniaMisriSahara MagharibiEritreaHispaniaUhabeshiUmoja wa UlayaU" + + "finiFijiVisiwa vya FalklandMikronesiaVisiwa vya FaroeUfaransaGabonUinger" + + "ezaGrenadaJojiaGwiyana ya UfaransaGuernseyGhanaJibraltaGrinlandiGambiaGi" + + "neGwadelupeGinekwetaUgirikiJojia Kusini na Visiwa vya Sandwich KusiniGwa" + + "temalaGwamGinebisauGuyanaHong Kong SAR ChinaKisiwa cha Heard na Visiwa v" + + "ya McDonaldHondurasiKorasiaHaitiHungariaVisiwa vya KanariIndonesiaAyalan" + + "diIsraeliIsle of ManIndiaEneo la Uingereza katika Bahari HindiIrakiIranA" + + "islandiItaliaJerseyJamaikaYordaniJapaniKenyaKirigizistaniKambodiaKiribat" + + "iKomoroSantakitzi na NevisKorea KaskaziniKorea KusiniKuwaitiVisiwa vya K" + + "aymanKazakistaniLaosiLebanoniSantalusiaLiechtensteinSri LankaLiberiaLeso" + + "toLitwaniaLuxembourgLativiaLibyaMorokoMonakoMoldovaMontenegroSaint Marti" + + "nMadagaskaVisiwa vya MarshallMasedoniaMaliMyanmar (Burma)MongoliaMacau S" + + "AR ChinaVisiwa vya Mariana vya KaskaziniMartinikiMoritaniaMontserratiMal" + + "taMorisiMaldivesMalawiMeksikoMalesiaMsumbijiNamibiaNyukaledoniaNigerKisi" + + "wa cha NorfolkNigeriaNikaragwaUholanziNorweNepalNauruNiueNyuzilandiOmani" + + "PanamaPeruPolinesia ya UfaransaPapua New GuineaUfilipinoPakistaniPolandi" + + "Santapierre na MiquelonVisiwa vya PitcairnPuerto RicoMaeneo ya Palestina" + + "UrenoPalauParagwaiQatarOceania ya NjeRiyunioniRomaniaSerbiaUrusiRwandaSa" + + "udiVisiwa vya SolomonShelisheliSudaniUswidiSingaporeSantahelenaSloveniaS" + + "valbard na Jan MayenSlovakiaSiera LeoniSan MarinoSenegaliSomaliaSurinamu" + + "Sudani KusiniSão Tomé na PríncipeElsavadoSint MaartenSyriaUswaziTristan " + + "da CunhaVisiwa vya Turki na KaikoChadMaeneo ya Kusini ya UfaransaTogoTai" + + "landiTajikistaniTokelauTimor-LesteTurukimenistaniTunisiaTongaUturukiTrin" + + "idad na TobagoTuvaluTaiwanTanzaniaUkrainiUgandaVisiwa Vidogo vya Nje vya" + + " MarekaniMarekaniUrugwaiUzibekistaniVatikaniSantavisenti na GrenadiniVen" + + "ezuelaVisiwa vya Virgin vya UingerezaVisiwa vya Virgin vya MarekaniVietn" + + "amVanuatuWalis na FutunaSamoaKosovoYemeniMayotteAfrika KusiniZambiaZimba" + + "bweEneo lisilojulikanaDuniaAfrikaAmerika KaskaziniAmerika KusiniOceaniaA" + + "frika ya MagharibiAmerika ya KatiAfrika ya MasharikiAfrika ya KaskaziniA" + + "frika ya KatiAfrika ya KusiniAmerikaAmerika ya KaskaziniKaribianiAsia Ma" + + "sharikiAsia ya KusiniAsia ya Kusini MasharikiUlaya ya KusiniAustralasiaM" + + "elanesiaEneo la MikronesiaPolynesiaAsiaAsia ya KatiAsia ya MagharibiUlay" + + "aUlaya ya MasharikiUlaya ya KaskaziniUlaya ya MagharibiAmerika ya Kilati" + + "ni" + +var swRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0014, 0x001a, 0x002a, 0x0035, 0x0047, 0x004f, 0x0056, + 0x005d, 0x0063, 0x006c, 0x0074, 0x0085, 0x008c, 0x0095, 0x009a, + 0x00ab, 0x00b4, 0x00c8, 0x00d0, 0x00db, 0x00e3, 0x00ed, 0x00f5, + 0x00fd, 0x0104, 0x0109, 0x0117, 0x011e, 0x0124, 0x012b, 0x0140, + 0x0147, 0x014d, 0x0153, 0x0164, 0x016c, 0x0174, 0x017a, 0x0180, + 0x019a, 0x01ba, 0x01d3, 0x01e6, 0x01ec, 0x01fc, 0x020b, 0x0210, + 0x0218, 0x021d, 0x0225, 0x023a, 0x0243, 0x0247, 0x024f, 0x0256, + 0x0269, 0x026f, 0x027f, 0x0288, 0x0294, 0x029a, 0x02a1, 0x02a9, + // Entry 40 - 7F + 0x02bc, 0x02c3, 0x02d3, 0x02d9, 0x02e0, 0x02e5, 0x02f5, 0x02fc, + 0x0304, 0x030c, 0x031a, 0x031f, 0x0323, 0x0336, 0x0340, 0x0350, + 0x0358, 0x035d, 0x0366, 0x036d, 0x0372, 0x0385, 0x038d, 0x0392, + 0x039a, 0x03a3, 0x03a9, 0x03ad, 0x03b6, 0x03bf, 0x03c6, 0x03f0, + 0x03f9, 0x03fd, 0x0406, 0x040c, 0x041f, 0x0446, 0x044f, 0x0456, + 0x045b, 0x0463, 0x0474, 0x047d, 0x0485, 0x048c, 0x0497, 0x049c, + 0x04c1, 0x04c6, 0x04ca, 0x04d2, 0x04d8, 0x04de, 0x04e5, 0x04ec, + 0x04f2, 0x04f7, 0x0504, 0x050c, 0x0514, 0x051a, 0x052d, 0x053c, + // Entry 80 - BF + 0x0548, 0x054f, 0x0560, 0x056b, 0x0570, 0x0578, 0x0582, 0x058f, + 0x0598, 0x059f, 0x05a5, 0x05ad, 0x05b7, 0x05be, 0x05c3, 0x05c9, + 0x05cf, 0x05d6, 0x05e0, 0x05ec, 0x05f5, 0x0608, 0x0611, 0x0615, + 0x0624, 0x062c, 0x063b, 0x065b, 0x0664, 0x066d, 0x0678, 0x067d, + 0x0683, 0x068b, 0x0691, 0x0698, 0x069f, 0x06a7, 0x06ae, 0x06ba, + 0x06bf, 0x06d1, 0x06d8, 0x06e1, 0x06e9, 0x06ee, 0x06f3, 0x06f8, + 0x06fc, 0x0706, 0x070b, 0x0711, 0x0715, 0x072a, 0x073a, 0x0743, + 0x074c, 0x0753, 0x076a, 0x077d, 0x0788, 0x079b, 0x07a0, 0x07a5, + // Entry C0 - FF + 0x07ad, 0x07b2, 0x07c0, 0x07c9, 0x07d0, 0x07d6, 0x07db, 0x07e1, + 0x07e6, 0x07f8, 0x0802, 0x0808, 0x080e, 0x0817, 0x0822, 0x082a, + 0x083f, 0x0847, 0x0852, 0x085c, 0x0864, 0x086b, 0x0873, 0x0880, + 0x0897, 0x089f, 0x08ab, 0x08b0, 0x08b6, 0x08c6, 0x08df, 0x08e3, + 0x08ff, 0x0903, 0x090b, 0x0916, 0x091d, 0x0928, 0x0937, 0x093e, + 0x0943, 0x094a, 0x095c, 0x0962, 0x0968, 0x0970, 0x0977, 0x097d, + 0x099f, 0x09a7, 0x09ae, 0x09ba, 0x09c2, 0x09db, 0x09e4, 0x0a03, + 0x0a21, 0x0a28, 0x0a2f, 0x0a3e, 0x0a43, 0x0a49, 0x0a4f, 0x0a56, + // Entry 100 - 13F + 0x0a63, 0x0a69, 0x0a71, 0x0a84, 0x0a89, 0x0a8f, 0x0aa0, 0x0aae, + 0x0ab5, 0x0ac8, 0x0ad7, 0x0aea, 0x0afd, 0x0b0b, 0x0b1b, 0x0b22, + 0x0b36, 0x0b3f, 0x0b4d, 0x0b5b, 0x0b73, 0x0b82, 0x0b8d, 0x0b96, + 0x0ba8, 0x0bb1, 0x0bb5, 0x0bc1, 0x0bd2, 0x0bd7, 0x0be9, 0x0bfb, + 0x0c0d, 0x0c20, +} // Size: 604 bytes + +var taRegionStr string = "" + // Size: 9513 bytes + "அஷனà¯à®·à®¿à®¯à®©à¯ தீவà¯à®…னà¯à®Ÿà¯‹à®°à®¾à®à®•à¯à®•à®¿à®¯ அரப௠எமிரேடà¯à®¸à¯à®†à®ªà¯à®•à®¾à®©à®¿à®¸à¯à®¤à®¾à®©à¯à®†à®£à¯à®Ÿà®¿à®•à¯à®µà®¾ மறà¯à®±à¯à®®à¯" + + " பாரà¯à®ªà¯à®Ÿà®¾à®…à®™à¯à®•à¯à®¯à¯à®²à®¾à®…லà¯à®ªà¯‡à®©à®¿à®¯à®¾à®…à®°à¯à®®à¯‡à®©à®¿à®¯à®¾à®…à®™à¯à®•à¯‹à®²à®¾à®…ணà¯à®Ÿà®¾à®°à¯à®Ÿà®¿à®•à®¾à®…à®°à¯à®œà¯†à®©à¯à®Ÿà®¿à®©à®¾à®…மெரிகà¯" + + "க சமோவாஆஸà¯à®¤à®¿à®°à®¿à®¯à®¾à®†à®¸à¯à®¤à®¿à®°à¯‡à®²à®¿à®¯à®¾à®…ரூபாஆலநà¯à®¤à¯ தீவà¯à®•à®³à¯à®…சரà¯à®ªà¯ˆà®œà®¾à®©à¯à®ªà¯‹à®¸à¯à®©à®¿à®¯à®¾ & ஹெர" + + "à¯à®¸à®•à¯‹à®µà®¿à®©à®¾à®ªà®¾à®°à¯à®ªà®Ÿà¯‹à®¸à¯à®ªà®™à¯à®•à®³à®¾à®¤à¯‡à®·à¯à®ªà¯†à®²à¯à®œà®¿à®¯à®®à¯à®ªà¯à®°à¯à®•à®¿à®©à®¾ ஃபாஸோபலà¯à®•à¯‡à®°à®¿à®¯à®¾à®ªà®¹à¯à®°à¯ˆà®©à¯à®ªà¯à®°à¯" + + "ணà¯à®Ÿà®¿à®ªà¯†à®©à®¿à®©à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ பாரà¯à®¤à¯‡à®²à¯†à®®à®¿à®ªà¯†à®°à¯à®®à¯à®Ÿà®¾à®ªà¯à®°à¯‚னேயà¯à®ªà¯Šà®²à®¿à®µà®¿à®¯à®¾à®•à®°à¯€à®ªà®¿à®¯à®©à¯ நெதரà¯à®²à®¾à®¨" + + "à¯à®¤à¯à®ªà®¿à®°à¯‡à®šà®¿à®²à¯à®ªà®¹à®¾à®®à®¾à®¸à¯à®ªà¯‚டானà¯à®ªà¯Šà®µà¯‡à®Ÿà¯ தீவà¯à®•à®³à¯à®ªà¯‹à®Ÿà¯à®¸à¯à®µà®¾à®©à®¾à®ªà¯†à®²à®¾à®°à¯‚ஸà¯à®ªà¯†à®²à®¿à®¸à¯à®•à®©à®Ÿà®¾à®•à¯‹à®•à¯‹" + + "ஸ௠(கீலிஙà¯) தீவà¯à®•à®³à¯à®•à®¾à®™à¯à®•à¯‹ - கினà¯à®·à®¾à®šà®¾à®®à®¤à¯à®¤à®¿à®¯ ஆபà¯à®°à®¿à®•à¯à®•à®•à¯ கà¯à®Ÿà®¿à®¯à®°à®šà¯à®•à®¾à®™à¯à®•à¯‹ -" + + " பà¯à®°à®¾à®¸à®¾à®µà®¿à®²à¯à®²à¯‡à®¸à¯à®µà®¿à®Ÿà¯à®šà®°à¯à®²à®¾à®¨à¯à®¤à¯à®•à¯‹à®Ÿà¯ தி’வாயரà¯à®•à¯à®•à¯ தீவà¯à®•à®³à¯à®šà®¿à®²à®¿à®•à¯‡à®®à®°à¯‚னà¯à®šà¯€à®©à®¾à®•à¯Šà®²à®®" + + "à¯à®ªà®¿à®¯à®¾à®•à®¿à®²à®¿à®ªà¯à®ªà®°à¯à®Ÿà®©à¯ தீவà¯à®•à¯‹à®¸à¯à®Ÿà®¾à®°à®¿à®•à®¾à®•à®¿à®¯à¯‚பாகேப௠வெரà¯à®Ÿà¯‡à®•à¯à®°à®¾à®•à®µà¯à®•à®¿à®±à®¿à®¸à¯à®¤à¯à®®à®¸à¯ தீ" + + "வà¯à®šà¯ˆà®ªà¯à®°à®¸à¯à®šà¯†à®•à¯ கà¯à®Ÿà®¿à®¯à®°à®šà¯à®œà¯†à®°à¯à®®à®©à®¿à®Ÿà®¿à®¯à®•à¯‹ காரà¯à®·à®¿à®¯à®¾à®œà®¿à®ªà¯Œà®Ÿà¯à®Ÿà®¿à®Ÿà¯†à®©à¯à®®à®¾à®°à¯à®•à¯à®Ÿà¯Šà®®à®¿à®©à®¿à®•à®¾à®Ÿ" + + "ொமினிகன௠கà¯à®Ÿà®¿à®¯à®°à®šà¯à®…லà¯à®œà¯€à®°à®¿à®¯à®¾à®šà®¿à®¯à¯‚டா & மெலிலà¯à®²à®¾à®ˆà®•à¯à®µà®Ÿà®¾à®°à¯à®Žà®¸à¯à®Ÿà¯‹à®©à®¿à®¯à®¾à®Žà®•à®¿à®ªà¯à®¤à¯à®®à¯‡à®±" + + "à¯à®•à¯ சஹாராஎரிடà¯à®°à®¿à®¯à®¾à®¸à¯à®ªà¯†à®¯à®¿à®©à¯à®Žà®¤à®¿à®¯à¯‹à®ªà¯à®ªà®¿à®¯à®¾à®à®°à¯‹à®ªà¯à®ªà®¿à®¯ யூனியனà¯à®ªà®¿à®©à¯à®²à®¾à®¨à¯à®¤à¯à®ƒà®ªà®¿à®œà®¿à®ƒà®ª" + + "ாகà¯à®²à®¾à®¨à¯à®¤à¯ தீவà¯à®•à®³à¯à®®à¯ˆà®•à¯à®°à¯‹à®©à¯‡à®·à®¿à®¯à®¾à®ƒà®ªà®¾à®°à¯‹ தீவà¯à®•à®³à¯à®ªà®¿à®°à®¾à®©à¯à®¸à¯à®•à¯‡à®ªà®¾à®©à¯à®à®•à¯à®•à®¿à®¯ பேரரசà¯à®•" + + "ிரனெடாஜாரà¯à®œà®¿à®¯à®¾à®ªà®¿à®°à¯†à®žà¯à®šà¯ கயானாகெரà¯à®©à¯à®šà®¿à®•à®¾à®©à®¾à®œà®¿à®ªà¯à®°à®¾à®²à¯à®Ÿà®°à¯à®•à®¿à®°à¯€à®©à¯à®²à®¾à®¨à¯à®¤à¯à®•à®¾à®®à¯à®ªà®¿à®¯" + + "ாகினியாகà¯à®µà®¾à®¤à¯‡à®²à¯‹à®ªà¯à®ˆà®•à¯à®µà®Ÿà¯‹à®°à®¿à®¯à®²à¯ கினியாகிரீஸà¯à®¤à¯†à®©à¯ ஜியாரà¯à®œà®¿à®¯à®¾ மறà¯à®±à¯à®®à¯ தென௠" + + "சானà¯à®Ÿà¯à®µà®¿à®šà¯ தீவà¯à®•à®³à¯à®•à®µà¯à®¤à®®à®¾à®²à®¾à®•à¯à®µà®¾à®®à¯à®•à®¿à®©à®¿à®¯à®¾-பிஸà¯à®¸à®¾à®µà¯à®•à®¯à®¾à®©à®¾à®¹à®¾à®™à¯à®•à®¾à®™à¯ எஸà¯à®à®†à®°à¯ ச" + + "ீனாஹேரà¯à®Ÿà¯ மறà¯à®±à¯à®®à¯ மெகà¯à®Ÿà¯Šà®©à®¾à®²à¯à®Ÿà¯ தீவà¯à®•à®³à¯à®¹à¯‹à®£à¯à®Ÿà¯‚ராஸà¯à®•à¯à®°à¯‡à®·à®¿à®¯à®¾à®¹à¯ˆà®Ÿà¯à®Ÿà®¿à®¹à®™à¯à®•à¯‡à®°à®¿à®•" + + "ேனரி தீவà¯à®•à®³à¯à®‡à®¨à¯à®¤à¯‹à®©à¯‡à®šà®¿à®¯à®¾à®…யரà¯à®²à®¾à®¨à¯à®¤à¯à®‡à®¸à¯à®°à¯‡à®²à¯à®à®²à¯ ஆஃப௠மேனà¯à®‡à®¨à¯à®¤à®¿à®¯à®¾à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà®¿à®·à¯" + + " இநà¯à®¤à®¿à®¯à®ªà¯ பெரà¯à®™à¯à®•à®Ÿà®²à¯ பிரதேசமà¯à®ˆà®°à®¾à®•à¯à®ˆà®°à®¾à®©à¯à®à®¸à¯à®²à®¾à®¨à¯à®¤à¯à®‡à®¤à¯à®¤à®¾à®²à®¿à®œà¯†à®°à¯à®šà®¿à®œà®®à¯ˆà®•à®¾à®œà¯‹à®°à¯à®Ÿà®¾" + + "னà¯à®œà®ªà¯à®ªà®¾à®©à¯à®•à¯†à®©à¯à®¯à®¾à®•à®¿à®°à¯à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®•à®®à¯à®ªà¯‹à®Ÿà®¿à®¯à®¾à®•à®¿à®°à®¿à®ªà®Ÿà®¿à®•à¯‹à®®à®°à¯‹à®¸à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ கிடà¯à®¸à¯ & நெ" + + "விஸà¯à®µà®Ÿ கொரியாதென௠கொரியாகà¯à®µà¯ˆà®¤à¯à®•à¯†à®¯à¯à®®à¯†à®©à¯ தீவà¯à®•à®³à¯à®•à®¸à®•à®¸à¯à®¤à®¾à®©à¯à®²à®¾à®µà¯‹à®¸à¯à®²à¯†à®ªà®©à®¾à®©à¯à®šà¯†" + + "யினà¯à®Ÿà¯ லூசியாலிசà¯à®šà¯†à®£à¯à®¸à¯à®Ÿà¯†à®¯à¯à®©à¯à®‡à®²à®™à¯à®•à¯ˆà®²à¯ˆà®ªà¯€à®°à®¿à®¯à®¾à®²à¯†à®šà¯‹à®¤à¯‹à®²à®¿à®¤à¯à®µà¯‡à®©à®¿à®¯à®¾à®²à®•à¯à®¸à¯à®šà®®à¯à®ªà®°à¯" + + "கà¯à®²à®¾à®Ÿà¯à®µà®¿à®¯à®¾à®²à®¿à®ªà®¿à®¯à®¾à®®à¯Šà®°à®¾à®•à¯à®•à¯‹à®®à¯Šà®©à®¾à®•à¯à®•à¯‹à®®à®¾à®²à¯à®Ÿà¯‹à®µà®¾à®®à®¾à®©à¯à®Ÿà¯‡à®©à¯†à®•à¯à®°à¯‹à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ மாரà¯à®Ÿà¯à®Ÿà¯€à®©" + + "à¯à®®à®Ÿà®•à®¾à®¸à¯à®•à®°à¯à®®à®¾à®°à¯à®·à®²à¯ தீவà¯à®•à®³à¯à®®à®¾à®šà®¿à®Ÿà¯‹à®©à®¿à®¯à®¾à®®à®¾à®²à®¿à®®à®¿à®¯à®¾à®©à¯à®®à®¾à®°à¯ (பரà¯à®®à®¾)மஙà¯à®•à¯‹à®²à®¿à®¯à®¾à®®à®•à®¾à®µ" + + "௠எஸà¯à®à®†à®°à¯ சீனாவடகà¯à®•à¯ மரியானா தீவà¯à®•à®³à¯à®®à®¾à®°à¯à®Ÿà®¿à®©à®¿à®•à¯à®®à¯Œà®°à®¿à®Ÿà®¾à®©à®¿à®¯à®¾à®®à®¾à®£à¯à®Ÿà¯à®šà¯†à®°à®¾à®Ÿà¯à®®à®¾" + + "லà¯à®Ÿà®¾à®®à¯Šà®°à®¿à®šà®¿à®¯à®¸à¯à®®à®¾à®²à®¤à¯à®¤à¯€à®µà¯à®®à®²à®¾à®µà®¿à®®à¯†à®•à¯à®šà®¿à®•à¯‹à®®à®²à¯‡à®šà®¿à®¯à®¾à®®à¯Šà®šà®¾à®®à¯à®ªà®¿à®•à¯à®¨à®®à¯€à®ªà®¿à®¯à®¾à®¨à®¿à®¯à¯‚ கேலிடோ" + + "னியாநைஜரà¯à®¨à®¾à®°à¯à®ƒà®ªà¯‹à®•à¯ தீவà¯à®•à®³à¯à®¨à¯ˆà®œà¯€à®°à®¿à®¯à®¾à®¨à®¿à®•à®°à®•à¯à®µà®¾à®¨à¯†à®¤à®°à¯à®²à®¾à®¨à¯à®¤à¯à®¨à®¾à®°à¯à®µà¯‡à®¨à¯‡à®ªà®¾à®³à®®à¯à®¨à¯Œà®°à¯" + + "நியூநியூசிலாநà¯à®¤à¯à®“மனà¯à®ªà®©à®¾à®®à®¾à®ªà¯†à®°à¯à®ªà®¿à®°à¯†à®žà¯à®šà¯ பாலினேஷியாபபà¯à®ªà¯à®µà®¾ நியூ கினியாபில" + + "ிபà¯à®ªà¯ˆà®©à¯à®¸à¯à®ªà®¾à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®ªà¯‹à®²à®¨à¯à®¤à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ பியர௠& மிகà¯à®µà¯‡à®²à®¾à®©à¯à®ªà®¿à®Ÿà¯à®•à¯†à®¯à¯à®°à¯à®©à¯ தீவà¯" + + "களà¯à®ªà®¿à®¯à¯‚à®°à¯à®Ÿà¯‹ ரிகோபாலஸà¯à®¤à¯€à®©à®¿à®¯ பிரதேசஙà¯à®•à®³à¯à®ªà¯‹à®°à¯à®šà¯à®šà¯à®•à¯à®•à®²à¯à®ªà®¾à®²à¯‹à®ªà®°à®¾à®•à¯à®µà¯‡à®•à®¤à¯à®¤à®¾à®°à¯à®µ" + + "ெளிபà¯à®ªà¯à®± ஓஷியானியாரீயூனியனà¯à®°à¯à®®à¯‡à®©à®¿à®¯à®¾à®šà¯†à®°à¯à®ªà®¿à®¯à®¾à®°à®·à¯à®¯à®¾à®°à¯à®µà®¾à®©à¯à®Ÿà®¾à®šà®µà¯‚தி அரேபியாச" + + "ாலமன௠தீவà¯à®•à®³à¯à®šà¯€à®·à¯†à®²à¯à®¸à¯à®šà¯‚டானà¯à®¸à¯à®µà¯€à®Ÿà®©à¯à®šà®¿à®™à¯à®•à®ªà¯à®ªà¯‚à®°à¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ ஹெலெனாஸà¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®¾" + + "ஸà¯à®µà®²à¯à®ªà®¾à®°à¯à®Ÿà¯ & ஜான௠மேயனà¯à®¸à¯à®²à¯‹à®µà®¾à®•à®¿à®¯à®¾à®šà®¿à®¯à®¾à®°à®¾ லியோனà¯à®šà®¾à®©à¯ மரினோசெனெகலà¯à®šà¯‹à®®à®¾à®²à®¿" + + "யாசà¯à®°à®¿à®©à®¾à®®à¯à®¤à¯†à®±à¯à®•à¯ சூடானà¯à®šà®¾à®µà¯ தோம௠& பà¯à®°à®¿à®©à¯à®šà®¿à®ªà®¿à®Žà®²à¯ சாலà¯à®µà®Ÿà®¾à®°à¯à®šà®¿à®©à¯à®Ÿà¯ மாரà¯à®Ÿ" + + "ெனà¯à®šà®¿à®°à®¿à®¯à®¾à®¸à¯à®µà®¾à®¸à®¿à®²à®¾à®¨à¯à®¤à¯à®Ÿà®¿à®°à®¿à®¸à¯à®Ÿà®©à¯ டா கà¯à®©à¯à®¹à®¾à®Ÿà®°à¯à®•à¯à®¸à¯ & கைகோஸ௠தீவà¯à®•à®³à¯à®šà®¾à®Ÿà¯à®ªà®¿" + + "ரெஞà¯à®šà¯ தெறà¯à®•à¯ பிரதேசஙà¯à®•à®³à¯à®Ÿà¯‹à®•à¯‹à®¤à®¾à®¯à¯à®²à®¾à®¨à¯à®¤à¯à®¤à®¾à®œà®¿à®•à®¿à®¸à¯à®¤à®¾à®©à¯à®Ÿà¯‹à®•à¯‡à®²à¯‹à®¤à¯ˆà®®à¯‚à®°à¯-லெஸà¯à®¤à¯‡" + + "தà¯à®°à¯à®•à¯à®®à¯†à®©à®¿à®¸à¯à®¤à®¾à®©à¯à®Ÿà¯à®©à®¿à®šà®¿à®¯à®¾à®Ÿà¯‹à®™à¯à®•à®¾à®¤à¯à®°à¯à®•à¯à®•à®¿à®Ÿà¯à®°à®¿à®©à®¿à®Ÿà®¾à®Ÿà¯ & டொபாகோதà¯à®µà®¾à®²à¯‚தைவானà¯à®¤" + + "ானà¯à®šà®¾à®©à®¿à®¯à®¾à®‰à®•à¯à®°à¯ˆà®©à¯à®‰à®•à®¾à®£à¯à®Ÿà®¾à®¯à¯‚.எஸà¯. வெளிபà¯à®ªà¯à®± தீவà¯à®•à®³à¯à®…மெரிகà¯à®•à®¾à®‰à®°à¯à®•à¯à®µà¯‡à®‰à®¸à¯à®ªà¯†à®•" + + "ிஸà¯à®¤à®¾à®©à¯à®µà®¾à®Ÿà®¿à®•à®©à¯ நகரமà¯à®šà¯†à®¯à®¿à®©à¯à®Ÿà¯ வினà¯à®šà¯†à®©à¯à®Ÿà¯ & கிரெனடைனà¯à®¸à¯à®µà¯†à®©à®¿à®šà¯à®²à®¾à®ªà®¿à®°à®¿à®Ÿà¯à®Ÿà¯€à®·" + + "௠கனà¯à®©à®¿à®¤à¯ தீவà¯à®•à®³à¯à®¯à¯‚.எஸà¯. கனà¯à®©à®¿à®¤à¯ தீவà¯à®•à®³à¯à®µà®¿à®¯à®Ÿà¯à®¨à®¾à®®à¯à®µà®©à¯à®µà®¾à®Ÿà¯à®Ÿà¯à®µà®¾à®²à®¿à®¸à¯ மறà¯à®±à¯" + + "ம௠ஃபà¯à®Ÿà¯à®©à®¾à®šà®®à¯‹à®µà®¾à®•à¯Šà®šà¯‹à®µà¯‹à®à®®à®©à¯à®®à®¯à¯‹à®Ÿà¯à®¤à¯†à®©à¯ ஆபà¯à®ªà®¿à®°à®¿à®•à¯à®•à®¾à®œà®¾à®®à¯à®ªà®¿à®¯à®¾à®œà®¿à®®à¯à®ªà®¾à®ªà¯à®µà¯‡à®…றியபà¯" + + "படாத பிரதேசமà¯à®‰à®²à®•à®®à¯à®†à®ªà¯à®°à®¿à®•à¯à®•à®¾à®µà®Ÿ அமெரிகà¯à®•à®¾à®¤à¯†à®©à¯ அமெரிகà¯à®•à®¾à®“ஷியானியாமேறà¯à®•à¯ ஆ" + + "பà¯à®°à®¿à®•à¯à®•à®¾à®®à®¤à¯à®¤à®¿à®¯ அமெரிகà¯à®•à®¾à®•à®¿à®´à®•à¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®µà®Ÿà®•à¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®®à®¤à¯à®¤à®¿à®¯ ஆபà¯à®°à®¿à®•" + + "à¯à®•à®¾à®¤à¯†à®±à¯à®•à¯ ஆபà¯à®°à®¿à®•à¯à®•à®¾à®…மெரிகà¯à®•à®¾à®¸à¯à®µà®Ÿà®•à¯à®•à¯ அமெரிகà¯à®•à®¾à®•à®°à¯€à®ªà®¿à®¯à®©à¯à®•à®¿à®´à®•à¯à®•à¯ ஆசியாதெற" + + "à¯à®•à¯ ஆசியாதெனà¯à®•à®¿à®´à®•à¯à®•à¯ ஆசியாதெறà¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®†à®¸à¯à®¤à®¿à®°à®²à¯‡à®šà®¿à®¯à®¾à®®à¯†à®²à®©à¯‡à®·à®¿à®¯à®¾à®®à¯ˆà®•à¯à®°à¯‹ நே" + + "ஷியா பிரதேசமà¯à®ªà®¾à®²à®¿à®©à¯‡à®·à®¿à®¯à®¾à®†à®šà®¿à®¯à®¾à®®à®¤à¯à®¤à®¿à®¯ ஆசியாமேறà¯à®•à¯ ஆசியாà®à®°à¯‹à®ªà¯à®ªà®¾à®•à®¿à®´à®•à¯à®•à¯ à®à®°à¯‹" + + "பà¯à®ªà®¾à®µà®Ÿà®•à¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®®à¯‡à®±à¯à®•à¯ à®à®°à¯‹à®ªà¯à®ªà®¾à®²à®¤à¯à®¤à¯€à®©à¯ அமெரிகà¯à®•à®¾" + +var taRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0028, 0x003d, 0x0078, 0x009f, 0x00e9, 0x0104, 0x011f, + 0x013a, 0x014f, 0x0170, 0x0191, 0x01b9, 0x01d4, 0x01f5, 0x0204, + 0x022c, 0x024a, 0x0286, 0x02a1, 0x02bf, 0x02da, 0x0302, 0x031d, + 0x0332, 0x034a, 0x035c, 0x0393, 0x03ab, 0x03c3, 0x03db, 0x0415, + 0x042d, 0x0442, 0x0454, 0x047c, 0x049a, 0x04b2, 0x04c4, 0x04d0, + 0x050d, 0x053a, 0x0584, 0x05bd, 0x05ea, 0x060f, 0x0631, 0x063d, + 0x0652, 0x065e, 0x0679, 0x06aa, 0x06c8, 0x06da, 0x06f9, 0x070e, + 0x073c, 0x0751, 0x0776, 0x078b, 0x07b3, 0x07cb, 0x07e9, 0x0801, + // Entry 40 - 7F + 0x0835, 0x0850, 0x087d, 0x0895, 0x08b0, 0x08c5, 0x08e7, 0x0902, + 0x091a, 0x093b, 0x0969, 0x0987, 0x0996, 0x09cd, 0x09f1, 0x0a16, + 0x0a2e, 0x0a40, 0x0a65, 0x0a7a, 0x0a92, 0x0aba, 0x0ad2, 0x0ade, + 0x0aff, 0x0b23, 0x0b3b, 0x0b4d, 0x0b6b, 0x0b9f, 0x0bb1, 0x0c34, + 0x0c4c, 0x0c5e, 0x0c89, 0x0c98, 0x0cd3, 0x0d36, 0x0d54, 0x0d6c, + 0x0d7e, 0x0d93, 0x0db8, 0x0dd9, 0x0df7, 0x0e0c, 0x0e2f, 0x0e44, + 0x0eb3, 0x0ec2, 0x0ed1, 0x0eec, 0x0f01, 0x0f13, 0x0f22, 0x0f3a, + 0x0f4f, 0x0f61, 0x0f85, 0x0fa0, 0x0fb5, 0x0fca, 0x100a, 0x1023, + // Entry 80 - BF + 0x1042, 0x1054, 0x1082, 0x109d, 0x10af, 0x10c4, 0x10ef, 0x111f, + 0x1131, 0x1149, 0x115b, 0x1179, 0x11a0, 0x11b8, 0x11ca, 0x11e2, + 0x11fa, 0x1212, 0x1236, 0x126d, 0x1288, 0x12b3, 0x12d1, 0x12dd, + 0x130d, 0x1328, 0x135a, 0x1398, 0x13b6, 0x13d4, 0x13f8, 0x140a, + 0x1425, 0x1440, 0x144f, 0x1467, 0x147c, 0x149a, 0x14af, 0x14da, + 0x14e9, 0x151a, 0x1532, 0x154a, 0x156b, 0x157d, 0x1592, 0x159e, + 0x15aa, 0x15ce, 0x15da, 0x15e9, 0x15f5, 0x162c, 0x1661, 0x1685, + 0x16a3, 0x16b8, 0x1701, 0x173b, 0x1760, 0x17a0, 0x17c7, 0x17d3, + // Entry C0 - FF + 0x17e8, 0x17fd, 0x1834, 0x184f, 0x1867, 0x187f, 0x188e, 0x18a6, + 0x18cb, 0x18f3, 0x190b, 0x191d, 0x1932, 0x1953, 0x197e, 0x199c, + 0x19dc, 0x19fa, 0x1a1f, 0x1a3b, 0x1a50, 0x1a68, 0x1a80, 0x1aa5, + 0x1adf, 0x1b04, 0x1b2f, 0x1b41, 0x1b65, 0x1b9a, 0x1bda, 0x1be6, + 0x1c33, 0x1c3f, 0x1c5d, 0x1c81, 0x1c93, 0x1cb8, 0x1ce8, 0x1d00, + 0x1d12, 0x1d2a, 0x1d5d, 0x1d6f, 0x1d81, 0x1d9f, 0x1db4, 0x1dc9, + 0x1e0c, 0x1e27, 0x1e3c, 0x1e63, 0x1e88, 0x1ee3, 0x1efb, 0x1f45, + 0x1f82, 0x1f9d, 0x1fb8, 0x1ff6, 0x2005, 0x2017, 0x2023, 0x2032, + // Entry 100 - 13F + 0x2060, 0x2078, 0x2096, 0x20cd, 0x20dc, 0x20f7, 0x2119, 0x2141, + 0x215c, 0x218a, 0x21b8, 0x21e9, 0x2217, 0x2245, 0x2273, 0x2294, + 0x22c2, 0x22da, 0x22ff, 0x2321, 0x2352, 0x237a, 0x239e, 0x23b9, + 0x23f7, 0x2415, 0x2424, 0x2446, 0x2468, 0x247d, 0x24a8, 0x24d0, + 0x24f8, 0x2529, +} // Size: 604 bytes + +var teRegionStr string = "" + // Size: 9310 bytes + "ఎసెషనౠదీవిఅండొరà±à°°à°¾à°¯à±à°¨à±ˆà°Ÿà±†à°¡à± అరబౠఎమిరేటà±à°¸à±à°†à°«à±à°˜à°¨à°¿à°¸à±à°¤à°¾à°¨à±à°†à°‚à°Ÿà°¿à°—à±à°µà°¾ మరియౠబార" + + "à±à°¬à±à°¡à°¾à°†à°‚గవిలà±à°²à°¾à°…à°²à±à°¬à±‡à°¨à°¿à°¯à°¾à°†à°°à±à°®à±‡à°¨à°¿à°¯à°¾à°…ంగోలాఅంటారà±à°•à°Ÿà°¿à°•à°¾à°…à°°à±à°œà±†à°‚టీనాఅమెరికనౠసమ" + + "ోవాఆసà±à°Ÿà±à°°à°¿à°¯à°¾à°†à°¸à±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¾à°…à°°à±à°¬à°¾à°†à°²à±‡à°‚డౠదీవà±à°²à±à°…జరà±à°¬à±ˆà°œà°¾à°¨à±à°¬à±‹à°¸à±à°¨à°¿à°¯à°¾ మరియౠహెరà±" + + "జెగొవీనాబారà±à°¬à°¡à±‹à°¸à±à°¬à°‚à°—à±à°²à°¾à°¦à±‡à°¶à±à°¬à±†à°²à±à°œà°¿à°¯à°‚à°¬à±à°°à±à°•à°¿à°¨à°¾ ఫాసోబలà±à°—ేరియాబహà±à°°à±†à°¯à°¿à°¨à±à°¬à±à°°à±" + + "ండిబెనినà±à°¸à±†à°‚టౠబరà±à°¤à±‡à°²à±†à°®à±€à°¬à±†à°°à±à°®à±à°¡à°¾à°¬à±à°°à±‚నైబొలీవియాకరీబియనౠనెదరà±à°²à°¾à°‚à°¡à±à°¸à±à°¬à±à°°" + + "ెజిలà±à°¬à°¹à°¾à°®à°¾à°¸à±à°­à±‚టానà±à°¬à±Šà°µà±†à°Ÿà± దీవిబోటà±à°¸à±à°µà°¾à°¨à°¾à°¬à±†à°²à°¾à°°à°¸à±à°¬à±†à°²à°¿à°œà±à°•à±†à°¨à°¡à°¾à°•à±‹à°•à±‹à°¸à± (కీలిం" + + "à°—à±) దీవà±à°²à±à°•à°¾à°‚గో- à°•à°¿à°¨à±à°·à°¾à°¸à°¾à°¸à±†à°‚à°Ÿà±à°°à°²à± ఆఫà±à°°à°¿à°•à°¨à± రిపబà±à°²à°¿à°•à±à°•à°¾à°‚గో- à°¬à±à°°à°¾à°œà°¾à°µà°¿à°²à±à°²" + + "à°¿à°¸à±à°µà°¿à°Ÿà±à°œà°°à±à°²à°¾à°‚à°¡à±à°à°µà°°à±€ కోసà±à°Ÿà±à°•à±à°•à± దీవà±à°²à±à°šà°¿à°²à±€à°•à°¾à°®à±†à°°à±‚à°¨à±à°šà±ˆà°¨à°¾à°•à±Šà°²à°‚బియాకà±à°²à°¿à°ªà±à°ªà°°à±" + + "టనౠదీవికోసà±à°Ÿà°¾ రికాకà±à°¯à±‚బాకేపౠవెరà±à°¡à±‡à°•à±à°°à°¾à°•à°µà±‹à°•à±à°°à°¿à°¸à±à°®à°¸à± దీవిసైపà±à°°à°¸à±à°šà±†à°•à± à°°" + + "ిపబà±à°²à°¿à°•à±à°œà°°à±à°®à°¨à±€à°¡à°¿à°¯à°¾à°—ో గారà±à°¸à°¿à°¯à°¾à°œà°¿à°¬à±Œà°Ÿà°¿à°¡à±†à°¨à±à°®à°¾à°°à±à°•à±à°¡à±‹à°®à±†à°¨à°¿à°•à°¡à±Šà°®à±†à°¨à°¿à°•à°¨à± రిపబà±à°²à°¿à°•" + + "à±à°…à°²à±à°œà±€à°°à°¿à°¯à°¾à°¸à±à°¯à±‚à°Ÿà°¾ మరియౠమెలిలà±à°²à°¾à°ˆà°•à±à°µà°¡à°¾à°°à±à°Žà°¸à±à°Ÿà±‹à°¨à°¿à°¯à°¾à°ˆà°œà°¿à°ªà±à°Ÿà±à°ªà°¡à°®à°Ÿà°¿ సహారాఎరిట" + + "à±à°°à°¿à°¯à°¾à°¸à±à°ªà±†à°¯à°¿à°¨à±à°‡à°¥à°¿à°¯à±‹à°ªà°¿à°¯à°¾à°¯à±à°°à±‹à°ªà°¿à°¯à°¨à± à°¯à±à°¨à°¿à°¯à°¨à±à°«à°¿à°¨à±à°²à°¾à°‚à°¡à±à°«à°¿à°œà±€à°«à°¾à°•à±\u200cà°²à±à°¯à°¾à°‚à°¡à± " + + "దీవà±à°²à±à°®à±ˆà°•à±à°°à±‹à°¨à±‡à°¶à°¿à°¯à°«à°¾à°°à±‹ దీవà±à°²à±à°«à±à°°à°¾à°¨à±à°¸à±\u200cగాబనà±à°¯à±à°¨à±ˆà°Ÿà±†à°¡à± à°•à°¿à°‚à°—à±\u200cà°¡à°®à±" + + "à°—à±à°°à±†à°¨à±†à°¡à°¾à°œà°¾à°°à±à°œà°¿à°¯à°¾à°«à±à°°à±†à°‚చౠగియానాగà±à°µà±‡à°°à±à°¨à°¸à±‡à°˜à°¨à°¾à°œà°¿à°¬à±à°°à°¾à°²à±à°Ÿà°¾à°°à±à°—à±à°°à±€à°¨à±\u200cలాండ" + + "à±à°—ాంబియాగినియాగà±à°µà°¾à°¡à±‡à°²à±‹à°ªà±à°ˆà°•à±à°µà°Ÿà±‹à°°à°¿à°¯à°²à± గినియాగà±à°°à±€à°¸à±à°¦à°•à±à°·à°¿à°£ జారà±à°œà°¿à°¯à°¾ & దకà±à°·" + + "à°¿à°£ శాండà±à°µà°¿à°šà± దీవà±à°²à±à°—à±à°µà°¾à°Ÿà°¿à°®à°¾à°²à°—à±à°µà°¾à°®à±à°—ినియా-బిసà±à°¸à°¾à°µà±à°—యానాహాంకాంగౠఎసà±à°à°†à°°à±" + + " చైనాహెరà±à°¡à± & మెకౠడొనాలà±à°¡à± దీవà±à°²à±à°¹à±‹à°‚à°¡à±à°°à°¾à°¸à±à°•à±à°°à±‹à°¯à±‡à°·à°¿à°¯à°¾à°¹à±ˆà°Ÿà°¿à°¹à°‚గేరీకేనరీ దీవ" + + "à±à°²à±à°‡à°‚డోనేషియాà°à°°à±à°²à°¾à°‚à°¡à±à°‡à°œà±à°°à°¾à°¯à°¿à°²à±à°à°²à± ఆఫౠమానà±à°­à°¾à°°à°¤ దేశంబà±à°°à°¿à°Ÿà±€à°·à± భారతీయ సమà±" + + "à°¦à±à°°à°ªà± à°ªà±à°°à°¾à°‚తంఇరాకà±à°‡à°°à°¾à°¨à±à°à°¸à±à°²à°¾à°‚à°¡à±à°‡à°Ÿà°²à±€à°œà±†à°°à±à°¸à±€à°œà°®à±ˆà°•à°¾à°œà±‹à°°à±à°¡à°¾à°¨à±à°œà°ªà°¾à°¨à±à°•à±†à°¨à±à°¯à°¾à°•à°¿à°°à±à°—" + + "ిజిసà±à°¤à°¾à°¨à±à°•à°‚బోడియాకిరిబాటికొమొరోసà±à°¸à±†à°‚à°Ÿà± à°•à°¿à°Ÿà±à°Ÿà±à°¸à± మరియౠనెవిసà±à°‰à°¤à±à°¤à°° కొరి" + + "యాదకà±à°·à°¿à°£ కొరియాకà±à°µà±ˆà°Ÿà±à°•à±‡à°®à°¾à°¨à± దీవà±à°²à±à°•à°œà°•à°¸à±à°¤à°¾à°¨à±à°²à°¾à°µà±‹à°¸à±à°²à±†à°¬à°¨à°¾à°¨à±à°¸à±†à°‚టౠలూసియాలి" + + "à°•à±à°Ÿà±†à°¸à±à°Ÿà±‡à°¨à±à°¶à±à°°à±€à°²à°‚కలైబీరియాలెసోతోలిథà±à°µà±‡à°¨à°¿à°¯à°¾à°²à°•à±à°¸à°‚బరà±à°—à±à°²à°¾à°¤à±à°µà°¿à°¯à°¾à°²à°¿à°¬à°¿à°¯à°¾à°®à±Šà°°à°¾à°•" + + "à±à°•à±‹à°®à±Šà°¨à°¾à°•à±‹à°®à±‹à°²à±à°¡à±‹à°µà°¾à°®à±‹à°‚టేనేగà±à°°à±‹à°¸à±†à°‚టౠమారà±à°Ÿà°¿à°¨à±à°®à°¡à°—ాసà±à°•à°°à±à°®à°¾à°°à±à°·à°²à± దీవà±à°²à±à°®à±‡à°¸à°¿à°¡" + + "ోనియామాలిమయనà±à°®à°¾à°°à± (బరà±à°®à°¾)మంగోలియామాకావౠఎసà±à°à°†à°°à± చైనాఉతà±à°¤à°° మరియానా దీవà±" + + "à°²à±à°®à°¾à°°à±à°Ÿà°¿à°¨à°¿à°•à±à°®à±Œà°°à°¿à°Ÿà±‡à°¨à°¿à°¯à°¾à°®à±‹à°‚à°Ÿà±à°¸à±‡à°°à±à°°à°¾à°Ÿà±à°®à°¾à°²à±à°Ÿà°¾à°®à°¾à°°à°¿à°·à°¸à±à°®à°¾à°²à±à°¦à±€à°µà±à°²à±à°®à°¾à°²à°¾à°µà°¿à°®à±†à°•à±à°¸à°¿" + + "కోమలేషియామొజాంబికà±à°¨à°®à±€à°¬à°¿à°¯à°¾à°•à±à°°à±Šà°¤à±à°¤ కాలెడోనియానైజరà±à°¨à°¾à°°à±à°«à°¾à°•à± దీవినైజీరియాన" + + "ికరాగà±à°µà°¾à°¨à±†à°¦à°°à±à°²à°¾à°‚à°¡à±à°¸à±à°¨à°¾à°°à±à°µà±‡à°¨à±‡à°ªà°¾à°²à±à°¨à±Œà°°à±à°¨à°¿à°¯à±à°¨à±à°¯à±‚జిలాండà±à°’మనà±à°ªà°¨à°¾à°®à°¾à°ªà±†à°°à±‚à°«à±à°°à±†à°‚à°š" + + "ౠపోలినిషియాపాపà±à°µà°¾ à°¨à±à°¯à± గినియాఫిలిపà±à°ªà±€à°¨à±à°¸à±à°ªà°¾à°•à°¿à°¸à±à°¤à°¾à°¨à±à°ªà±‹à°²à°¾à°‚à°¡à±à°¸à±†à°‚టౠపియెర" + + "ౠమరియౠమికెలానà±à°ªà°¿à°Ÿà±\u200cకెయిరà±à°¨à± దీవà±à°²à±à°«à±à°¯à±‚à°°à±à°Ÿà±‹ రికోపాలసà±à°¤à±€à°¨à°¿à°¯à°¨à± à°ªà±à°°" + + "ాంతాలà±à°ªà±‹à°°à±à°šà±à°—à°²à±à°ªà°²à°¾à°µà±à°ªà°°à°¾à°—à±à°µà±‡à°•à°¤à°°à±à°’షీనియా బయటà±à°¨à±à°¨à°µà°¿à°°à°¿à°¯à±‚నియనà±à°°à±‹à°®à°¾à°¨à°¿à°¯à°¾à°¸à±†à°°à±à°¬" + + "ియారషà±à°¯à°¾à°°à±à°µà°¾à°‚డాసౌదీ అరేబియాసోలమనౠదీవà±à°²à±à°¸à±€à°·à±†à°²à±à°¸à±à°¸à±‚డానà±à°¸à±à°µà±€à°¡à°¨à±à°¸à°¿à°‚గపూరà±à°¸" + + "ెంటౠహెలినాసà±à°²à±‹à°µà±‡à°¨à°¿à°¯à°¾à°¸à±à°µà°¾à°²à±à°¬à°¾à°°à±à°¡à± మరియౠయానౠమాయేనà±à°¸à±à°²à±‹à°µà±‡à°•à°¿à°¯à°¾à°¸à°¿à°¯à±†à°°à±à°°à°¾ " + + "లియానà±à°¸à°¾à°¨à± మారినోసెనెగలà±à°¸à±‹à°®à°¾à°²à°¿à°¯à°¾à°¸à±à°°à°¿à°¨à°¾à°®à±à°¦à°•à±à°·à°¿à°£ సూడానà±à°¸à°¾à°µà±‹à°Ÿà±‹à°®à± మరియౠపà±" + + "à°°à°¿à°¨à±à°¸à°¿à°ªà±‡à°Žà°²à± సాలà±à°µà°¡à±‹à°°à±à°¸à°¿à°‚టౠమారà±à°Ÿà±†à°¨à±à°¸à°¿à°°à°¿à°¯à°¾à°¸à±à°µà°¾à°œà°¿à°²à±à°¯à°¾à°‚à°¡à±à°Ÿà±à°°à°¿à°¸à±à°Ÿà°¨à± à°¡ à°•à°¨à±à°¹" + + "ాతà±à°°à±à°•à± మరియౠకాలికోసౠదీవà±à°²à±à°šà°¾à°¦à±à°«à±à°°à±†à°‚చౠదకà±à°·à°¿à°£ à°ªà±à°°à°¾à°‚తాలà±à°Ÿà±‹à°—ోథాయిలాండà±" + + "తజికిసà±à°¤à°¾à°¨à±à°Ÿà±‹à°•à±‡à°²à°¾à°µà±à°Ÿà°¿à°®à±‹à°°à±-లెసà±à°Ÿà±†à°¤à±à°°à±à°•à°®à±‡à°¨à°¿à°¸à±à°¤à°¾à°¨à±à°Ÿà±à°¯à±à°¨à±€à°·à°¿à°¯à°¾à°Ÿà±‹à°‚గాటరà±à°•à±€à°Ÿà±à°°" + + "ినిడాడౠమరియౠటొబాగోటà±à°µà°¾à°²à±à°¤à±ˆà°µà°¾à°¨à±à°Ÿà°¾à°‚జానియాఉకà±à°°à±†à°¯à°¿à°¨à±à°‰à°—ాండాసంయà±à°•à±à°¤ రాజà±à°¯ " + + "అమెరికా బయట ఉనà±à°¨ దీవà±à°²à±à°…మెరికా సంయà±à°•à±à°¤ రాషà±à°Ÿà±à°°à°¾à°²à±à°‰à°°à±à°—à±à°µà±‡à°‰à°œà±à°¬à±†à°•à°¿à°¸à±à°¤à°¾à°¨à±à°µ" + + "ాటికనౠనగరంసెంటౠవినà±à°¸à±†à°‚టౠమరియౠగà±à°°à±†à°¨à°¡à±€à°¨à±à°¸à±à°µà±†à°¨à±à°œà±à°µà±‡à°²à°¾à°¬à±à°°à°¿à°Ÿà°¿à°·à± వరà±à°œà°¿à°¨à±" + + " దీవà±à°²à±à°¯à±.à°Žà°¸à±. వరà±à°œà°¿à°¨à± దీవà±à°²à±à°µà°¿à°¯à°¤à±à°¨à°¾à°‚వనాటà±à°µà°¾à°²à°¿à°¸à± మరియౠఫà±à°¯à±à°¤à±à°¯à±à°¨à°¾à°¸à°®à±‹à°µà°¾à°•à±Š" + + "సోవోయెమెనà±à°®à°¾à°¯à±Šà°Ÿà±à°Ÿà°¿à°¦à°•à±à°·à°¿à°£ ఆఫà±à°°à°¿à°•à°¾à°œà°¾à°‚బియాజింబాబà±à°µà±‡à°¤à±†à°²à°¿à°¯à°¨à°¿ à°ªà±à°°à°¾à°‚తంపà±à°°à°ªà°‚à°šà°‚" + + "ఆఫà±à°°à°¿à°•à°¾à°‰à°¤à±à°¤à°° అమెరికాదకà±à°·à°¿à°£ అమెరికాఒషీనియపశà±à°šà°¿à°® ఆఫà±à°°à°¿à°•à°¾ భూభాగంమధà±à°¯à°® అమె" + + "రికాతూరà±à°ªà± ఆఫà±à°°à°¿à°•à°¾à°‰à°¤à±à°¤à°° ఆఫà±à°°à°¿à°•à°¾à°®à°§à±à°¯à°® ఆఫà±à°°à°¿à°•à°¾à°¦à°•à±à°·à°¿à°£ ఆఫà±à°°à°¿à°•à°¾ భూభాగంఅమెరి" + + "కాలà±à°‰à°¤à±à°¤à°° అమెరికా భూభాగంకరిబà±à°¬à°¿à°¯à°¨à±à°¤à±‚à°°à±à°ªà± ఆసియాదకà±à°·à°¿à°£ ఆసియానైరà±à°¤à°¿ ఆసియా" + + "దకà±à°·à°¿à°£ యూరోపà±à°†à°¸à±à°Ÿà±à°°à±‡à°²à±‡à°¸à°¿à°¯à°¾à°®à±†à°²à°¨à±‡à°¶à°¿à°¯à°®à±ˆà°•à±à°°à±‹à°¨à±‡à°¶à°¿à°¯ à°ªà±à°°à°¾à°‚తంపాలినేషియాఆసియామధ" + + "à±à°¯ ఆసియాపడమటి ఆసియాయూరోపà±à°¤à±‚à°°à±à°ªà± యూరోపà±à°‰à°¤à±à°¤à°° యూరోపà±à°ªà°¶à±à°šà°¿à°® యూరోపà±à°²à°¾à°Ÿà°¿à°¨à± " + + "అమెరికా" + +var teRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x001f, 0x0037, 0x0078, 0x009c, 0x00dd, 0x00f8, 0x0113, + 0x012e, 0x0140, 0x0161, 0x017f, 0x01a7, 0x01c2, 0x01e3, 0x01f2, + 0x0217, 0x0235, 0x0282, 0x029d, 0x02bb, 0x02d3, 0x02f8, 0x0313, + 0x032e, 0x0343, 0x0355, 0x0380, 0x0398, 0x03aa, 0x03c2, 0x03ff, + 0x0417, 0x042c, 0x043e, 0x045d, 0x047b, 0x0490, 0x04a2, 0x04b1, + 0x04ee, 0x0517, 0x0564, 0x0599, 0x05c3, 0x05e2, 0x0601, 0x060d, + 0x0625, 0x0631, 0x0649, 0x067a, 0x0699, 0x06ab, 0x06ca, 0x06df, + 0x0707, 0x071c, 0x0744, 0x0756, 0x0781, 0x0793, 0x07b1, 0x07c6, + // Entry 40 - 7F + 0x07fd, 0x0818, 0x0853, 0x086b, 0x0886, 0x089b, 0x08ba, 0x08d5, + 0x08ed, 0x0908, 0x0939, 0x0954, 0x0960, 0x0997, 0x09b8, 0x09d7, + 0x09f2, 0x0a01, 0x0a35, 0x0a4d, 0x0a65, 0x0a8d, 0x0aa8, 0x0ab1, + 0x0ad5, 0x0af9, 0x0b0e, 0x0b20, 0x0b3e, 0x0b72, 0x0b84, 0x0bf3, + 0x0c0e, 0x0c20, 0x0c4b, 0x0c5a, 0x0c95, 0x0ce2, 0x0cfd, 0x0d1b, + 0x0d27, 0x0d39, 0x0d5b, 0x0d79, 0x0d91, 0x0dac, 0x0dcc, 0x0de5, + 0x0e3f, 0x0e4e, 0x0e5d, 0x0e75, 0x0e81, 0x0e93, 0x0ea2, 0x0eba, + 0x0ec9, 0x0edb, 0x0f05, 0x0f1d, 0x0f35, 0x0f4d, 0x0f98, 0x0fba, + // Entry 80 - BF + 0x0fdf, 0x0ff1, 0x1016, 0x1031, 0x1043, 0x1058, 0x107a, 0x109e, + 0x10b3, 0x10cb, 0x10dd, 0x10fb, 0x1119, 0x1131, 0x1143, 0x115b, + 0x116d, 0x1185, 0x11a6, 0x11ce, 0x11e9, 0x1211, 0x122f, 0x123b, + 0x1265, 0x127d, 0x12b2, 0x12ea, 0x1308, 0x1326, 0x134d, 0x135f, + 0x1374, 0x1392, 0x13a4, 0x13bc, 0x13d1, 0x13ec, 0x1401, 0x1435, + 0x1444, 0x1469, 0x1481, 0x149c, 0x14c0, 0x14d2, 0x14e4, 0x14f0, + 0x14fc, 0x151d, 0x1529, 0x1538, 0x1544, 0x1578, 0x15aa, 0x15ce, + 0x15ec, 0x1601, 0x164c, 0x1686, 0x16ab, 0x16eb, 0x1706, 0x1715, + // Entry C0 - FF + 0x172a, 0x1736, 0x1767, 0x1782, 0x179a, 0x17b2, 0x17c1, 0x17d6, + 0x17f8, 0x181d, 0x1835, 0x1847, 0x185c, 0x1874, 0x1896, 0x18b4, + 0x1908, 0x1926, 0x1951, 0x1970, 0x1985, 0x199d, 0x19b5, 0x19da, + 0x1a21, 0x1a46, 0x1a6e, 0x1a80, 0x1aa7, 0x1ad6, 0x1b24, 0x1b30, + 0x1b74, 0x1b80, 0x1b9b, 0x1bbc, 0x1bd4, 0x1bf9, 0x1c26, 0x1c44, + 0x1c53, 0x1c62, 0x1ca3, 0x1cb5, 0x1cc7, 0x1ce2, 0x1cfd, 0x1d0f, + 0x1d74, 0x1dbe, 0x1dd3, 0x1dfa, 0x1e1c, 0x1e79, 0x1e97, 0x1ed8, + 0x1f12, 0x1f2a, 0x1f39, 0x1f7a, 0x1f89, 0x1f9b, 0x1fad, 0x1fc5, + // Entry 100 - 13F + 0x1fed, 0x2002, 0x201d, 0x2048, 0x205d, 0x2072, 0x2097, 0x20bf, + 0x20d1, 0x210c, 0x2131, 0x2159, 0x217e, 0x21a3, 0x21de, 0x21f9, + 0x2231, 0x224f, 0x2271, 0x2293, 0x22b5, 0x22da, 0x2301, 0x2319, + 0x2350, 0x236e, 0x237d, 0x2399, 0x23b8, 0x23ca, 0x23ef, 0x2411, + 0x2436, 0x245e, +} // Size: 604 bytes + +var thRegionStr string = "" + // Size: 9015 bytes + "เà¸à¸²à¸°à¹à¸­à¸ªà¹€à¸‹à¸™à¸Šà¸±à¸™à¸­à¸±à¸™à¸”อร์ราสหรัà¸à¸­à¸²à¸«à¸£à¸±à¸šà¹€à¸­à¸¡à¸´à¹€à¸£à¸•à¸ªà¹Œà¸­à¸±à¸Ÿà¸à¸²à¸™à¸´à¸ªà¸–านà¹à¸­à¸™à¸•à¸´à¸à¸²à¹à¸¥à¸°à¸šà¸²à¸£à¹Œà¸šà¸¹à¸”าà¹" + + "องà¸à¸§à¸´à¸¥à¸¥à¸²à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢à¸­à¸²à¸£à¹Œà¹€à¸¡à¹€à¸™à¸µà¸¢à¹à¸­à¸‡à¹‚à¸à¸¥à¸²à¹à¸­à¸™à¸•à¸²à¸£à¹Œà¸à¸•à¸´à¸à¸²à¸­à¸²à¸£à¹Œà¹€à¸ˆà¸™à¸•à¸´à¸™à¸²à¸­à¹€à¸¡à¸£à¸´à¸à¸±à¸™à¸‹à¸²à¸¡à¸±à¸§" + + "ออสเตรียออสเตรเลียอารูบาหมู่เà¸à¸²à¸°à¹‚อลันด์อาเซอร์ไบจานบอสเนียà¹à¸¥à¸°à¹€à¸®à¸­à¸£à¹Œà¹€à¸‹à¹‚à¸" + + "วีนาบาร์เบโดสบังà¸à¸¥à¸²à¹€à¸—ศเบลเยียมบูร์à¸à¸´à¸™à¸²à¸Ÿà¸²à¹‚ซบัลà¹à¸à¹€à¸£à¸µà¸¢à¸šà¸²à¸«à¹Œà¹€à¸£à¸™à¸šà¸¸à¸£à¸¸à¸™à¸”ีเบนิน" + + "เซนต์บาร์เธเลมีเบอร์มิวดาบรูไนโบลิเวียเนเธอร์à¹à¸¥à¸™à¸”์à¹à¸„ริบเบียนบราซิลบาฮา" + + "มาสภูà¸à¸²à¸™à¹€à¸à¸²à¸°à¸šà¸¹à¹€à¸§à¸•à¸šà¸­à¸•à¸ªà¸§à¸²à¸™à¸²à¹€à¸šà¸¥à¸²à¸£à¸¸à¸ªà¹€à¸šà¸¥à¸µà¸‹à¹à¸„นาดาหมู่เà¸à¸²à¸°à¹‚คโคส (คีลิง)คองโà¸-" + + "à¸à¸´à¸™à¸Šà¸²à¸‹à¸²à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡à¸„องโà¸-บราซซาวิลสวิตเซอร์à¹à¸¥à¸™à¸”์ไอวอรี่โคสต์หม" + + "ู่เà¸à¸²à¸°à¸„ุà¸à¸Šà¸´à¸¥à¸µà¹à¸„เมอรูนจีนโคลอมเบียเà¸à¸²à¸°à¸„ลิปเปอร์ตันคอสตาริà¸à¸²à¸„ิวบาเคปเวิร" + + "์ดคูราเซาเà¸à¸²à¸°à¸„ริสต์มาสไซปรัสสาธารณรัà¸à¹€à¸Šà¹‡à¸à¹€à¸¢à¸­à¸£à¸¡à¸™à¸µà¸”ิเอโà¸à¸à¸²à¸£à¹Œà¹€à¸‹à¸µà¸¢à¸ˆà¸´à¸šà¸¹à¸•à¸µà¹€à¸”" + + "นมาร์à¸à¹‚ดมินิà¸à¸²à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¹‚ดมินิà¸à¸±à¸™à¹à¸­à¸¥à¸ˆà¸µà¹€à¸£à¸µà¸¢à¸‹à¸µà¹‚อตาà¹à¸¥à¸°à¹€à¸¡à¸¥à¸´à¸¥à¸¥à¸²à¹€à¸­à¸à¸§à¸²à¸”อร์เอสโ" + + "ตเนียอียิปต์ซาฮาราตะวันตà¸à¹€à¸­à¸£à¸´à¹€à¸—รียสเปนเอธิโอเปียสหภาพยุโรปฟินà¹à¸¥à¸™à¸”์ฟิจิ" + + "หมู่เà¸à¸²à¸°à¸Ÿà¸­à¸¥à¹Œà¸à¹à¸¥à¸™à¸”์ไมโครนีเซียหมู่เà¸à¸²à¸°à¹à¸Ÿà¹‚รà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸²à¸šà¸­à¸‡à¸ªà¸«à¸£à¸²à¸Šà¸­à¸²à¸“าจัà¸à¸£à¹€à¸à¸£" + + "เนดาจอร์เจียเฟรนช์เà¸à¸µà¸¢à¸™à¸²à¹€à¸à¸´à¸£à¹Œà¸™à¸‹à¸µà¸¢à¹Œà¸à¸²à¸™à¸²à¸¢à¸´à¸šà¸£à¸­à¸¥à¸•à¸²à¸£à¹Œà¸à¸£à¸µà¸™à¹à¸¥à¸™à¸”์à¹à¸à¸¡à¹€à¸šà¸µà¸¢à¸à¸´à¸™à¸µà¸à¸§" + + "าเดอลูปอิเควทอเรียลà¸à¸´à¸™à¸µà¸à¸£à¸µà¸‹à¹€à¸à¸²à¸°à¹€à¸‹à¸²à¸—์จอร์เจียà¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹€à¸‹à¸²à¸—์à¹à¸‹à¸™à¸”์วิชà¸à¸±" + + "วเตมาลาà¸à¸§à¸¡à¸à¸´à¸™à¸µ-บิสเซาà¸à¸²à¸¢à¸­à¸²à¸™à¸²à¹€à¸‚ตปà¸à¸„รองพิเศษฮ่องà¸à¸‡à¹à¸«à¹ˆà¸‡à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¸›à¸£à¸°à¸Šà¸²à¸Šà¸™à¸ˆà¸µ" + + "นเà¸à¸²à¸°à¹€à¸®à¸´à¸£à¹Œà¸”à¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹à¸¡à¸à¸”อนัลด์ฮอนดูรัสโครเอเชียเฮติฮังà¸à¸²à¸£à¸µà¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸„า" + + "นารีอินโดนีเซียไอร์à¹à¸¥à¸™à¸”์อิสราเอลเà¸à¸²à¸°à¹à¸¡à¸™à¸­à¸´à¸™à¹€à¸”ียบริติชอินเดียนโอเชียนเทร" + + "์ริทอรีอิรัà¸à¸­à¸´à¸«à¸£à¹ˆà¸²à¸™à¹„อซ์à¹à¸¥à¸™à¸”์อิตาลีเจอร์ซีย์จาเมà¸à¸²à¸ˆà¸­à¸£à¹Œà¹à¸”นà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™à¹€à¸„นยาคี" + + "ร์à¸à¸µà¸‹à¸ªà¸–านà¸à¸±à¸¡à¸žà¸¹à¸Šà¸²à¸„ิริบาสคอโมโรสเซนต์คิตส์à¹à¸¥à¸°à¹€à¸™à¸§à¸´à¸ªà¹€à¸à¸²à¸«à¸¥à¸µà¹€à¸«à¸™à¸·à¸­à¹€à¸à¸²à¸«à¸¥à¸µà¹ƒà¸•à¹‰à¸„ู" + + "เวตหมู่เà¸à¸²à¸°à¹€à¸„ย์à¹à¸¡à¸™à¸„าซัคสถานลาวเลบานอนเซนต์ลูเซียลิà¸à¹€à¸•à¸™à¸ªà¹„ตน์ศรีลังà¸à¸²à¹„ลบ" + + "ีเรียเลโซโทลิทัวเนียลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸à¸¥à¸±à¸•à¹€à¸§à¸µà¸¢à¸¥à¸´à¹€à¸šà¸µà¸¢à¹‚มร็อà¸à¹‚à¸à¹‚มนาโà¸à¸¡à¸­à¸¥à¹‚ดวามอนเ" + + "ตเนโà¸à¸£à¹€à¸‹à¸™à¸•à¹Œà¸¡à¸²à¸•à¸´à¸™à¸¡à¸²à¸”าà¸à¸±à¸ªà¸à¸²à¸£à¹Œà¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸¡à¸²à¸£à¹Œà¹à¸Šà¸¥à¸¥à¹Œà¸¡à¸²à¸‹à¸´à¹‚ดเนียมาลีเมียนม่าร์ (" + + "พม่า)มองโà¸à¹€à¸¥à¸µà¸¢à¹€à¸‚ตปà¸à¸„รองพิเศษมาเà¸à¹Šà¸²à¹à¸«à¹ˆà¸‡à¸ªà¸²à¸˜à¸²à¸£à¸“รัà¸à¸›à¸£à¸°à¸Šà¸²à¸Šà¸™à¸ˆà¸µà¸™à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸™à¸­à¸£à¹Œà¹€" + + "ทิร์นมาเรียนามาร์ตินีà¸à¸¡à¸­à¸£à¸´à¹€à¸•à¹€à¸™à¸µà¸¢à¸¡à¸­à¸™à¸•à¹Œà¹€à¸‹à¸­à¸£à¹Œà¸£à¸±à¸•à¸¡à¸­à¸¥à¸•à¸²à¸¡à¸­à¸£à¸´à¹€à¸Šà¸µà¸¢à¸ªà¸¡à¸±à¸¥à¸”ีฟส์มาล" + + "าวีเม็à¸à¸‹à¸´à¹‚à¸à¸¡à¸²à¹€à¸¥à¹€à¸‹à¸µà¸¢à¹‚มซัมบิà¸à¸™à¸²à¸¡à¸´à¹€à¸šà¸µà¸¢à¸™à¸´à¸§à¹à¸„ลิโดเนียไนเจอร์เà¸à¸²à¸°à¸™à¸­à¸£à¹Œà¸Ÿà¸­à¸¥à¹Œà¸à¹„น" + + "จีเรียนิà¸à¸²à¸£à¸²à¸à¸±à¸§à¹€à¸™à¹€à¸˜à¸­à¸£à¹Œà¹à¸¥à¸™à¸”์นอร์เวย์เนปาลนาอูรูนีอูเอนิวซีà¹à¸¥à¸™à¸”์โอมานปาน" + + "ามาเปรูเฟรนช์โปลินีเซียปาปัวนิวà¸à¸´à¸™à¸µà¸Ÿà¸´à¸¥à¸´à¸›à¸›à¸´à¸™à¸ªà¹Œà¸›à¸²à¸à¸µà¸ªà¸–านโปà¹à¸¥à¸™à¸”์à¹à¸‹à¸‡à¸›à¸µà¹à¸¢à¸£à¹Œà¹" + + "ละมีเà¸à¸­à¸¥à¸‡à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸žà¸´à¸•à¹à¸„ร์นเปอร์โตริโà¸à¸”ินà¹à¸”นปาเลสไตน์โปรตุเà¸à¸ªà¸›à¸²à¹€à¸¥à¸²à¸›à¸²à¸£à¸²à¸à¸§" + + "ัยà¸à¸²à¸•à¸²à¸£à¹Œà¹€à¸­à¸²à¸•à¹Œà¹„ลอิงโอเชียเนียเรอูนียงโรมาเนียเซอร์เบียรัสเซียรวันดาซาอุ" + + "ดีอาระเบียหมู่เà¸à¸²à¸°à¹‚ซโลมอนเซเชลส์ซูดานสวีเดนสิงคโปร์เซนต์เฮเลนาสโลวีเนี" + + "ยสฟาลบาร์à¹à¸¥à¸°à¸¢à¸²à¸™à¹„มเอนสโลวะเà¸à¸µà¸¢à¹€à¸‹à¸µà¸¢à¸£à¹Œà¸£à¸²à¸¥à¸µà¹‚อนซานมารีโนเซเนà¸à¸±à¸¥à¹‚ซมาเลียซูริ" + + "นาเมซูดานใต้เซาตูเมà¹à¸¥à¸°à¸›à¸£à¸´à¸™à¸‹à¸´à¸›à¸µà¹€à¸­à¸¥à¸‹à¸±à¸¥à¸§à¸²à¸”อร์เซนต์มาร์ตินซีเรียสวาซิà¹à¸¥à¸™à¸”์" + + "ทริสตัน เดอ คูนาหมู่เà¸à¸²à¸°à¹€à¸•à¸´à¸à¸ªà¹Œà¹à¸¥à¸°à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¹€à¸„คอสชาดเฟรนช์เซาเทิร์นเทร์ริ" + + "ทอรีส์โตโà¸à¹„ทยทาจิà¸à¸´à¸ªà¸–านโตเà¸à¹€à¸¥à¸²à¸•à¸´à¸¡à¸­à¸£à¹Œ-เลสเตเติร์à¸à¹€à¸¡à¸™à¸´à¸ªà¸–านตูนิเซียตองà¸à¸²à¸•" + + "ุรà¸à¸µà¸•à¸£à¸´à¸™à¸´à¹à¸”ดà¹à¸¥à¸°à¹‚ตเบโà¸à¸•à¸¹à¸§à¸²à¸¥à¸¹à¹„ต้หวันà¹à¸—นซาเนียยูเครนยูà¸à¸±à¸™à¸”าหมู่เà¸à¸²à¸°à¸£à¸­à¸šà¸™à¸­à¸" + + "ของสหรัà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸ªà¸«à¸£à¸±à¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸­à¸¸à¸£à¸¸à¸à¸§à¸±à¸¢à¸­à¸¸à¸‹à¹€à¸šà¸à¸´à¸ªà¸–านนครวาติà¸à¸±à¸™à¹€à¸‹à¸™à¸•à¹Œà¸§à¸´à¸™à¹€à¸‹à¸™à¸•à¹Œà¹" + + "ละเà¸à¸£à¸™à¸²à¸”ีนส์เวเนซุเอลาหมู่เà¸à¸²à¸°à¸šà¸£à¸´à¸•à¸´à¸Šà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸´à¸™à¸«à¸¡à¸¹à¹ˆà¹€à¸à¸²à¸°à¸¢à¸¹à¹€à¸­à¸ªà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸´à¸™à¹€à¸§à¸µà¸¢à¸”" + + "นามวานูอาตูวาลลิสà¹à¸¥à¸°à¸Ÿà¸¸à¸•à¸¹à¸™à¸²à¸‹à¸²à¸¡à¸±à¸§à¹‚คโซโวเยเมนมายอตà¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰à¹à¸‹à¸¡à¹€à¸šà¸µà¸¢à¸‹à¸´à¸¡à¸šà¸±à¸š" + + "เวภูมิภาคที่ไม่รู้จัà¸à¹‚ลà¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¹€à¸«à¸™à¸·à¸­à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¹ƒà¸•à¹‰à¹‚อเชียเนียà¹à¸­à¸Ÿà¸£à¸´à¸à¸²" + + "ตะวันตà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹€à¸«à¸™à¸·à¸­à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸­à¸™à¹ƒà¸•à¹‰à¸­" + + "เมริà¸à¸²à¸­à¹€à¸¡à¸£à¸´à¸à¸²à¸•à¸­à¸™à¹€à¸«à¸™à¸·à¸­à¹à¸„ริบเบียนเอเชียตะวันออà¸à¹€à¸­à¹€à¸Šà¸µà¸¢à¹ƒà¸•à¹‰à¹€à¸­à¹€à¸Šà¸µà¸¢à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸à¹€à¸‰" + + "ียงใต้ยุโรปใต้ออสตราเลเซียเมลานีเซียเขตไมโครนีเซียโปลินีเซียเอเชียเอเช" + + "ียà¸à¸¥à¸²à¸‡à¹€à¸­à¹€à¸Šà¸µà¸¢à¸•à¸°à¸§à¸±à¸™à¸•à¸à¸¢à¸¸à¹‚รปยุโรปตะวันออà¸à¸¢à¸¸à¹‚รปเหนือยุโรปตะวันตà¸à¸¥à¸°à¸•à¸´à¸™à¸­à¹€à¸¡à¸£à¸´à¸" + + "า" + +var thRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0027, 0x0042, 0x007e, 0x009f, 0x00d5, 0x00f0, 0x010b, + 0x0129, 0x013e, 0x0162, 0x0183, 0x01aa, 0x01c2, 0x01e0, 0x01f2, + 0x021f, 0x0243, 0x0288, 0x02a3, 0x02be, 0x02d6, 0x02fa, 0x0315, + 0x032a, 0x033f, 0x034e, 0x037b, 0x0399, 0x03a8, 0x03c0, 0x0402, + 0x0414, 0x0429, 0x0438, 0x0453, 0x046b, 0x0480, 0x048f, 0x04a1, + 0x04da, 0x04ff, 0x053b, 0x0566, 0x0590, 0x05b4, 0x05d5, 0x05e1, + 0x05f9, 0x0602, 0x061d, 0x064d, 0x0668, 0x0677, 0x0692, 0x06a7, + 0x06ce, 0x06e0, 0x0707, 0x071c, 0x0746, 0x0758, 0x0770, 0x0788, + // Entry 40 - 7F + 0x07be, 0x07d9, 0x0809, 0x0824, 0x083f, 0x0854, 0x087b, 0x0896, + 0x08a2, 0x08c0, 0x08de, 0x08f6, 0x0902, 0x0938, 0x0959, 0x097d, + 0x0995, 0x09a4, 0x09cb, 0x09e0, 0x09f8, 0x0a1c, 0x0a3a, 0x0a46, + 0x0a64, 0x0a7f, 0x0a94, 0x0aa0, 0x0abb, 0x0aeb, 0x0af7, 0x0b72, + 0x0b8d, 0x0b96, 0x0bb5, 0x0bca, 0x0c4b, 0x0ca8, 0x0cc0, 0x0cdb, + 0x0ce7, 0x0cfc, 0x0d26, 0x0d47, 0x0d62, 0x0d7a, 0x0d8f, 0x0da4, + 0x0e01, 0x0e10, 0x0e25, 0x0e40, 0x0e52, 0x0e6d, 0x0e7f, 0x0e94, + 0x0ea9, 0x0eb8, 0x0ed9, 0x0eee, 0x0f03, 0x0f18, 0x0f4e, 0x0f6f, + // Entry 80 - BF + 0x0f8a, 0x0f99, 0x0fc6, 0x0fe1, 0x0fea, 0x0fff, 0x1020, 0x1041, + 0x1059, 0x1071, 0x1083, 0x109e, 0x10c2, 0x10d7, 0x10e9, 0x1101, + 0x1113, 0x1128, 0x1146, 0x1164, 0x1185, 0x11b8, 0x11d6, 0x11e2, + 0x120f, 0x122a, 0x12ab, 0x12f9, 0x1314, 0x1332, 0x1359, 0x1368, + 0x1383, 0x139b, 0x13ad, 0x13c5, 0x13dd, 0x13f5, 0x140d, 0x1434, + 0x1449, 0x1470, 0x1488, 0x14a3, 0x14c7, 0x14df, 0x14ee, 0x1500, + 0x1512, 0x1530, 0x153f, 0x1551, 0x155d, 0x158d, 0x15b1, 0x15cf, + 0x15e7, 0x15fc, 0x1635, 0x1665, 0x1686, 0x16b3, 0x16cb, 0x16da, + // Entry C0 - FF + 0x16f2, 0x1704, 0x1740, 0x1758, 0x1770, 0x178b, 0x17a0, 0x17b2, + 0x17dc, 0x1809, 0x181e, 0x182d, 0x183f, 0x1857, 0x1878, 0x1893, + 0x18cc, 0x18e7, 0x190e, 0x1929, 0x193e, 0x1956, 0x196e, 0x1986, + 0x19bc, 0x19e0, 0x1a04, 0x1a16, 0x1a34, 0x1a60, 0x1aba, 0x1ac3, + 0x1b14, 0x1b20, 0x1b29, 0x1b47, 0x1b5c, 0x1b7e, 0x1ba8, 0x1bc0, + 0x1bcf, 0x1bde, 0x1c11, 0x1c23, 0x1c38, 0x1c53, 0x1c65, 0x1c7a, + 0x1cd1, 0x1cf5, 0x1d0d, 0x1d2e, 0x1d4c, 0x1d9a, 0x1db8, 0x1dfa, + 0x1e39, 0x1e51, 0x1e69, 0x1e96, 0x1ea5, 0x1eb7, 0x1ec6, 0x1ed5, + // Entry 100 - 13F + 0x1ef3, 0x1f08, 0x1f20, 0x1f59, 0x1f62, 0x1f77, 0x1f9b, 0x1fb9, + 0x1fd7, 0x2001, 0x2022, 0x204f, 0x2073, 0x2094, 0x20bb, 0x20d0, + 0x20fd, 0x211b, 0x2145, 0x2160, 0x21a2, 0x21ba, 0x21de, 0x21fc, + 0x2226, 0x2244, 0x2256, 0x2274, 0x229b, 0x22aa, 0x22d1, 0x22ef, + 0x2313, 0x2337, +} // Size: 604 bytes + +var trRegionStr string = "" + // Size: 3017 bytes + "Ascension AdasıAndorraBirleÅŸik Arap EmirlikleriAfganistanAntigua ve Barb" + + "udaAnguillaArnavutlukErmenistanAngolaAntarktikaArjantinAmerikan SamoasıA" + + "vusturyaAvustralyaArubaÃ…land AdalarıAzerbaycanBosna HersekBarbadosBangla" + + "deÅŸBelçikaBurkina FasoBulgaristanBahreynBurundiBeninSaint BarthelemyBerm" + + "udaBruneiBolivyaKarayip HollandaBrezilyaBahamalarButanBouvet AdasıBotsva" + + "naBeyaz RusyaBelizeKanadaCocos (Keeling) AdalarıKongo - KinÅŸasaOrta Afri" + + "ka CumhuriyetiKongo - BrazavilÄ°sviçreFildiÅŸi SahiliCook AdalarıŞiliKamer" + + "unÇinKolombiyaClipperton AdasıKosta RikaKübaCape VerdeCuraçaoChristmas A" + + "dasıKıbrısÇek CumhuriyetiAlmanyaDiego GarciaCibutiDanimarkaDominikaDomin" + + "ik CumhuriyetiCezayirSepte ve MelillaEkvadorEstonyaMısırBatı SaharaEritr" + + "eÄ°spanyaEtiyopyaAvrupa BirliÄŸiFinlandiyaFijiFalkland AdalarıMikronezyaFa" + + "roe AdalarıFransaGabonBirleÅŸik KrallıkGrenadaGürcistanFransız GuyanasıGu" + + "ernseyGanaCebelitarıkGrönlandGambiyaGineGuadalupeEkvator GinesiYunanista" + + "nGüney Georgia ve Güney Sandwich AdalarıGuatemalaGuamGine-BissauGuyanaÇi" + + "n Hong Kong ÖYBHeard Adası ve McDonald AdalarıHondurasHırvatistanHaitiMa" + + "caristanKanarya AdalarıEndonezyaÄ°rlandaÄ°srailMan AdasıHindistanBritanya " + + "Hint Okyanusu TopraklarıIrakÄ°ranÄ°zlandaÄ°talyaJerseyJamaikaÃœrdünJaponyaKe" + + "nyaKırgızistanKamboçyaKiribatiKomorlarSaint Kitts ve NevisKuzey KoreGüne" + + "y KoreKuveytCayman AdalarıKazakistanLaosLübnanSaint LuciaLiechtensteinSr" + + "i LankaLiberyaLesotoLitvanyaLüksemburgLetonyaLibyaFasMonakoMoldovaKarada" + + "ÄŸSaint MartinMadagaskarMarshall AdalarıMakedonyaMaliMyanmar (Burma)MoÄŸo" + + "listanÇin Makao ÖYBKuzey Mariana AdalarıMartinikMoritanyaMontserratMalta" + + "MauritiusMaldivlerMalaviMeksikaMalezyaMozambikNamibyaYeni KaledonyaNijer" + + "Norfolk AdasıNijeryaNikaraguaHollandaNorveçNepalNauruNiueYeni ZelandaUmm" + + "anPanamaPeruFransız PolinezyasıPapua Yeni GineFilipinlerPakistanPolonyaS" + + "aint Pierre ve MiquelonPitcairn AdalarıPorto RikoFilistin BölgeleriPorte" + + "kizPalauParaguayKatarUzak OkyanusyaRéunionRomanyaSırbistanRusyaRuandaSuu" + + "di ArabistanSolomon AdalarıSeyÅŸellerSudanÄ°sveçSingapurSaint HelenaSloven" + + "yaSvalbard ve Jan Mayen AdalarıSlovakyaSierra LeoneSan MarinoSenegalSoma" + + "liSurinamGüney SudanSão Tomé ve PríncipeEl SalvadorSint MaartenSuriyeSva" + + "zilandTristan da CunhaTurks ve Caicos AdalarıÇadFransız Güney Toprakları" + + "TogoTaylandTacikistanTokelauTimor-LesteTürkmenistanTunusTongaTürkiyeTrin" + + "idad ve TobagoTuvaluTayvanTanzanyaUkraynaUgandaABD Uzak AdalarıABDUrugua" + + "yÖzbekistanVatikanSaint Vincent ve GrenadinlerVenezuelaBritanya Virjin A" + + "dalarıABD Virjin AdalarıVietnamVanuatuWallis ve Futuna AdalarıSamoaKosov" + + "aYemenMayotteGüney AfrikaZambiyaZimbabveBilinmeyen BölgeDünyaAfrikaKuzey" + + " AmerikaGüney AmerikaOkyanusyaBatı AfrikaOrta AmerikaDoÄŸu AfrikaKuzey Af" + + "rikaOrta AfrikaAfrika’nın GüneyiAmerikaAmerika’nın KuzeyiKarayiplerDoÄŸu " + + "AsyaGüney AsyaGüneydoÄŸu AsyaGüney AvrupaAvustralasyaMelanezyaMikronezya " + + "BölgesiPolinezyaAsyaOrta AsyaBatı AsyaAvrupaDoÄŸu AvrupaKuzey AvrupaBatı " + + "AvrupaLatin Amerika" + +var trRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x0031, 0x003b, 0x004d, 0x0055, 0x005f, + 0x0069, 0x006f, 0x0079, 0x0081, 0x0092, 0x009b, 0x00a5, 0x00aa, + 0x00b9, 0x00c3, 0x00cf, 0x00d7, 0x00e1, 0x00e9, 0x00f5, 0x0100, + 0x0107, 0x010e, 0x0113, 0x0123, 0x012a, 0x0130, 0x0137, 0x0147, + 0x014f, 0x0158, 0x015d, 0x016a, 0x0172, 0x017d, 0x0183, 0x0189, + 0x01a1, 0x01b1, 0x01c8, 0x01d8, 0x01e1, 0x01f0, 0x01fd, 0x0202, + 0x0209, 0x020d, 0x0216, 0x0227, 0x0231, 0x0236, 0x0240, 0x0248, + 0x0258, 0x0260, 0x0270, 0x0277, 0x0283, 0x0289, 0x0292, 0x029a, + // Entry 40 - 7F + 0x02ad, 0x02b4, 0x02c4, 0x02cb, 0x02d2, 0x02d9, 0x02e5, 0x02eb, + 0x02f3, 0x02fb, 0x030a, 0x0314, 0x0318, 0x0329, 0x0333, 0x0341, + 0x0347, 0x034c, 0x035e, 0x0365, 0x036f, 0x0381, 0x0389, 0x038d, + 0x0399, 0x03a2, 0x03a9, 0x03ad, 0x03b6, 0x03c4, 0x03ce, 0x03f8, + 0x0401, 0x0405, 0x0410, 0x0416, 0x0429, 0x044a, 0x0452, 0x045e, + 0x0463, 0x046d, 0x047d, 0x0486, 0x048e, 0x0495, 0x049f, 0x04a8, + 0x04ca, 0x04ce, 0x04d3, 0x04db, 0x04e2, 0x04e8, 0x04ef, 0x04f6, + 0x04fd, 0x0502, 0x050f, 0x0518, 0x0520, 0x0528, 0x053c, 0x0546, + // Entry 80 - BF + 0x0551, 0x0557, 0x0566, 0x0570, 0x0574, 0x057b, 0x0586, 0x0593, + 0x059c, 0x05a3, 0x05a9, 0x05b1, 0x05bc, 0x05c3, 0x05c8, 0x05cb, + 0x05d1, 0x05d8, 0x05e0, 0x05ec, 0x05f6, 0x0607, 0x0610, 0x0614, + 0x0623, 0x062e, 0x063d, 0x0653, 0x065b, 0x0664, 0x066e, 0x0673, + 0x067c, 0x0685, 0x068b, 0x0692, 0x0699, 0x06a1, 0x06a8, 0x06b6, + 0x06bb, 0x06c9, 0x06d0, 0x06d9, 0x06e1, 0x06e8, 0x06ed, 0x06f2, + 0x06f6, 0x0702, 0x0707, 0x070d, 0x0711, 0x0726, 0x0735, 0x073f, + 0x0747, 0x074e, 0x0766, 0x0777, 0x0781, 0x0794, 0x079c, 0x07a1, + // Entry C0 - FF + 0x07a9, 0x07ae, 0x07bc, 0x07c4, 0x07cb, 0x07d5, 0x07da, 0x07e0, + 0x07ef, 0x07ff, 0x0809, 0x080e, 0x0815, 0x081d, 0x0829, 0x0831, + 0x084f, 0x0857, 0x0863, 0x086d, 0x0874, 0x087a, 0x0881, 0x088d, + 0x08a4, 0x08af, 0x08bb, 0x08c1, 0x08ca, 0x08da, 0x08f2, 0x08f6, + 0x0911, 0x0915, 0x091c, 0x0926, 0x092d, 0x0938, 0x0945, 0x094a, + 0x094f, 0x0957, 0x0969, 0x096f, 0x0975, 0x097d, 0x0984, 0x098a, + 0x099b, 0x099e, 0x09a5, 0x09b0, 0x09b7, 0x09d3, 0x09dc, 0x09f4, + 0x0a07, 0x0a0e, 0x0a15, 0x0a2e, 0x0a33, 0x0a39, 0x0a3e, 0x0a45, + // Entry 100 - 13F + 0x0a52, 0x0a59, 0x0a61, 0x0a72, 0x0a78, 0x0a7e, 0x0a8b, 0x0a99, + 0x0aa2, 0x0aae, 0x0aba, 0x0ac6, 0x0ad2, 0x0add, 0x0af2, 0x0af9, + 0x0b0e, 0x0b18, 0x0b22, 0x0b2d, 0x0b3d, 0x0b4a, 0x0b56, 0x0b5f, + 0x0b72, 0x0b7b, 0x0b7f, 0x0b88, 0x0b92, 0x0b98, 0x0ba4, 0x0bb0, + 0x0bbc, 0x0bc9, +} // Size: 604 bytes + +var ukRegionStr string = "" + // Size: 6084 bytes + "ОÑтрів ВознеÑіннÑÐндорраОбʼєднані ÐрабÑькі ЕміратиÐфганіÑтанÐнтигуа Ñ– Ба" + + "рбудаÐнгільÑÐлбаніÑВірменіÑÐнголаÐнтарктикаÐргентинаÐмериканÑьке СамоаÐ" + + "вÑтріÑÐвÑтраліÑÐрубаÐландÑькі оÑтровиÐзербайджанБоÑÐ½Ñ–Ñ Ñ– ГерцоговинаБар" + + "бадоÑБангладешБельгіÑБуркіна-ФаÑоБолгаріÑБахрейнБурундіБенінСен-Бартель" + + "міБермудÑькі оÑтровиБрунейБолівіÑÐідерландÑькі КарибÑькі оÑтровиБразилі" + + "ÑБагамÑькі ОÑтровиБутанОÑтрів БувеБотÑванаБілоруÑьБелізКанадаКокоÑові (" + + "Кілінгові) оÑтровиКонго – КіншаÑаЦентральноафриканÑька РеÑпублікаКонго " + + "– БраззавільШвейцаріÑКот-д’ІвуарОÑтрови КукаЧиліКамерунКитайКолумбіÑОÑ" + + "трів КліппертонКоÑта-РикаКубаКабо ВердеКюраÑаоОÑтрів РіздваКіпрЧехіÑÐім" + + "еччинаДієго-ГарÑÑ–ÑДжибутіДаніÑДомінікаДомініканÑька РеÑпублікаÐлжирСеут" + + "а Ñ– МелільÑЕквадорЕÑтоніÑЄгипетЗахідна СахараЕритреÑІÑпаніÑЕфіопіÑЄвроп" + + "ейÑький СоюзФінлÑндіÑФіджіФолклендÑькі оÑтровиМікронезіÑФарерÑькі оÑтро" + + "виФранціÑГабонВелика БританіÑГренадаГрузіÑФранцузька ГвіанаГернÑіГанаГі" + + "бралтарГренландіÑГамбіÑГвінеÑГваделупаЕкваторіальна ГвінеÑГреціÑПівденн" + + "а Ð”Ð¶Ð¾Ñ€Ð´Ð¶Ñ–Ñ Ñ‚Ð° Південні Сандвічеві оÑтровиГватемалаГуамГвінеÑ-БіÑауГаÑна" + + "Гонконг, О.Ð.Р. КитаюОÑтрови Херд Ñ– Мак-ДональдГондураÑХорватіÑГаїтіУго" + + "рщинаКанарÑькі оÑтровиІндонезіÑІрландіÑІзраїльОÑтрів МенІндіÑБританÑькі" + + " території в ІндійÑькому океаніІракІранІÑландіÑІталіÑДжерÑіЯмайкаЙордані" + + "ÑЯпоніÑКеніÑКиргизÑтанКамбоджаКірибатіКоморÑькі оÑтровиСент-ÐšÑ–Ñ‚Ñ Ñ– Ðеві" + + "ÑПівнічна КореÑПівденна КореÑКувейтКайманові оÑтровиКазахÑтанЛаоÑЛіванС" + + "ент-ЛюÑÑ–ÑЛіхтенштейнШрі-ЛанкаЛіберіÑЛеÑотоЛитваЛюкÑембургЛатвіÑЛівіÑМар" + + "оккоМонакоМолдоваЧорногоріÑСен-МартенМадагаÑкарМаршаллові ОÑтровиМакедо" + + "ніÑМаліМʼÑнма (Бірма)МонголіÑМакао, О.Ð.Р КитаюПівнічні МаріанÑькі оÑÑ‚Ñ€" + + "овиМартинікаМавританіÑМонтÑерратМальтаМаврикійМальдівиМалавіМекÑикаМала" + + "йзіÑМозамбікÐамібіÑÐова КаледоніÑÐігерОÑтрів ÐорфолкÐігеріÑÐікарагуаÐід" + + "ерландиÐорвегіÑÐепалÐауруÐіуеÐова ЗеландіÑОманПанамаПеруФранцузька Полі" + + "незіÑПапуа Ðова ГвінеÑФіліппіниПакиÑтанПольщаСен-Пʼєр Ñ– МікелонОÑтрови " + + "ПіткернПуерто-РикоПалеÑтинÑькі територіїПортугаліÑПалауПарагвайКатарВід" + + "далені оÑтрови ОкеаніїРеюньйонРумуніÑСербіÑРоÑÑ–ÑРуандаСаудівÑька ÐравіÑ" + + "Соломонові ОÑтровиСейшельÑькі оÑтровиСуданШвеціÑСінгапурОÑтрів СвÑтої Є" + + "лениСловеніÑОÑтрови Свальбард Ñ– Ян-МаєнСловаччинаСьєрра-ЛеонеСан-Марино" + + "СенегалСомаліСуринамПівденний СуданСан-Томе Ñ– ПрінÑіпіСальвадорСінт-Мар" + + "тенСиріÑСвазілендТріÑтан-да-КуньÑОÑтрови Ð¢ÐµÑ€ÐºÑ Ñ– КайкоÑЧадФранцузькі Пі" + + "вденні ТериторіїТогоТаїландТаджикиÑтанТокелауТимор-ЛештіТуркменіÑтанТун" + + "Ñ–ÑТонгаТуреччинаТринідад Ñ– ТобагоТувалуТайваньТанзаніÑУкраїнаУгандаВідд" + + "алені оÑтрови СШÐСШÐУругвайУзбекиÑтанВатиканСент-ВінÑент Ñ– ГренадиниВен" + + "еÑуелаБританÑькі ВіргінÑькі оÑтровиВіргінÑькі оÑтрови, СШÐВʼєтнамВануат" + + "ÑƒÐ’Ð¾Ð»Ð»Ñ–Ñ Ñ– ФутунаСамоаКоÑовоЄменМайоттаПівденно-ÐфриканÑька РеÑпублікаЗа" + + "мбіÑЗімбабвеÐевідомий регіонСвітÐфрикаПівнічна ÐмерикаПівденна ÐмерикаО" + + "кеаніÑЗахідна ÐфрикаЦентральна ÐмерикаСхідна ÐфрикаПівнічна ÐфрикаЦентр" + + "альна ÐфрикаПівденна ÐфрикаÐмерикаПівнічна Ðмерика (регіон)КарибÑький б" + + "аÑейнСхідна ÐзіÑПівденна ÐзіÑПівденно-Східна ÐзіÑПівденна ЄвропаÐвÑтрал" + + "азіÑМеланезіÑМікронезійÑький регіонПолінезіÑÐзіÑЦентральна ÐзіÑЗахідна " + + "ÐзіÑЄвропаСхідна ЄвропаПівнічна ЄвропаЗахідна ЄвропаЛатинÑька Ðмерика" + +var ukRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0021, 0x002f, 0x0061, 0x0075, 0x0095, 0x00a3, 0x00b1, + 0x00c1, 0x00cd, 0x00e1, 0x00f3, 0x0116, 0x0124, 0x0136, 0x0140, + 0x0161, 0x0177, 0x019d, 0x01ad, 0x01bf, 0x01cd, 0x01e4, 0x01f4, + 0x0202, 0x0210, 0x021a, 0x0233, 0x0256, 0x0262, 0x0270, 0x02ac, + 0x02bc, 0x02dd, 0x02e7, 0x02fc, 0x030c, 0x031c, 0x0326, 0x0332, + 0x0366, 0x0383, 0x03c2, 0x03e5, 0x03f7, 0x040d, 0x0424, 0x042c, + 0x043a, 0x0444, 0x0454, 0x0475, 0x0488, 0x0490, 0x04a3, 0x04b1, + 0x04ca, 0x04d2, 0x04dc, 0x04ee, 0x0505, 0x0513, 0x051d, 0x052d, + // Entry 40 - 7F + 0x055c, 0x0566, 0x0582, 0x0590, 0x059e, 0x05aa, 0x05c5, 0x05d3, + 0x05e1, 0x05ef, 0x0610, 0x0622, 0x062c, 0x0653, 0x0667, 0x0688, + 0x0696, 0x06a0, 0x06bd, 0x06cb, 0x06d7, 0x06f8, 0x0704, 0x070c, + 0x071e, 0x0732, 0x073e, 0x074a, 0x075c, 0x0783, 0x078f, 0x07ea, + 0x07fc, 0x0804, 0x081b, 0x0825, 0x0849, 0x0879, 0x0889, 0x0899, + 0x08a3, 0x08b3, 0x08d4, 0x08e6, 0x08f6, 0x0904, 0x0917, 0x0921, + 0x096f, 0x0977, 0x097f, 0x098f, 0x099b, 0x09a7, 0x09b3, 0x09c3, + 0x09cf, 0x09d9, 0x09ed, 0x09fd, 0x0a0d, 0x0a2e, 0x0a4d, 0x0a68, + // Entry 80 - BF + 0x0a83, 0x0a8f, 0x0ab0, 0x0ac2, 0x0aca, 0x0ad4, 0x0ae7, 0x0afd, + 0x0b0e, 0x0b1c, 0x0b28, 0x0b32, 0x0b46, 0x0b52, 0x0b5c, 0x0b6a, + 0x0b76, 0x0b84, 0x0b98, 0x0bab, 0x0bbf, 0x0be2, 0x0bf4, 0x0bfc, + 0x0c15, 0x0c25, 0x0c44, 0x0c78, 0x0c8a, 0x0c9e, 0x0cb2, 0x0cbe, + 0x0cce, 0x0cde, 0x0cea, 0x0cf8, 0x0d08, 0x0d18, 0x0d26, 0x0d41, + 0x0d4b, 0x0d66, 0x0d74, 0x0d86, 0x0d9a, 0x0daa, 0x0db4, 0x0dbe, + 0x0dc6, 0x0ddf, 0x0de7, 0x0df3, 0x0dfb, 0x0e22, 0x0e42, 0x0e54, + 0x0e64, 0x0e70, 0x0e91, 0x0eae, 0x0ec3, 0x0eee, 0x0f02, 0x0f0c, + // Entry C0 - FF + 0x0f1c, 0x0f26, 0x0f56, 0x0f66, 0x0f74, 0x0f80, 0x0f8a, 0x0f96, + 0x0fb7, 0x0fda, 0x0fff, 0x1009, 0x1015, 0x1025, 0x1049, 0x1059, + 0x108b, 0x109f, 0x10b6, 0x10c9, 0x10d7, 0x10e3, 0x10f1, 0x110e, + 0x1131, 0x1143, 0x1158, 0x1162, 0x1174, 0x1192, 0x11bb, 0x11c1, + 0x11f9, 0x1201, 0x120f, 0x1225, 0x1233, 0x1248, 0x1260, 0x126a, + 0x1274, 0x1286, 0x12a6, 0x12b2, 0x12c0, 0x12d0, 0x12de, 0x12ea, + 0x1312, 0x1318, 0x1326, 0x133a, 0x1348, 0x1375, 0x1387, 0x13bf, + 0x13ea, 0x13f8, 0x1406, 0x1422, 0x142c, 0x1438, 0x1440, 0x144e, + // Entry 100 - 13F + 0x148a, 0x1496, 0x14a6, 0x14c5, 0x14cd, 0x14d9, 0x14f8, 0x1517, + 0x1525, 0x1540, 0x1563, 0x157c, 0x1599, 0x15ba, 0x15d7, 0x15e5, + 0x1613, 0x1634, 0x1649, 0x1662, 0x1688, 0x16a5, 0x16bb, 0x16cd, + 0x16f8, 0x170a, 0x1712, 0x172f, 0x1746, 0x1752, 0x176b, 0x1788, + 0x17a3, 0x17c4, +} // Size: 604 bytes + +var urRegionStr string = "" + // Size: 5126 bytes + "اسینشن Ø¢Ø¦Ù„ÛŒÙ†ÚˆØ§Ù†ÚˆÙˆØ±Ø§Ù…ØªØ­Ø¯Û Ø¹Ø±Ø¨ اماراتاÙغانستانانٹیگوا اور باربوداانگوئیلاا" + + "لبانیÛآرمینیاانگولاانٹارکٹیکاارجنٹیناامریکی ساموآآسٹریاآسٹریلیااروباآلی" + + "Ù†Úˆ آئلینڈزآذربائجانبوسنیا اور ÛØ±Ø²ÛŒÚ¯ÙˆÙˆÛŒÙ†Ø§Ø¨Ø§Ø±Ø¨Ø§ÚˆÙˆØ³Ø¨Ù†Ú¯Ù„Û Ø¯ÛŒØ´Ø¨ÛŒÙ„Ø¬ÛŒÙ…Ø¨Ø±Ú©ÛŒÙ†Ø§ Ù" + + "اسوبلغاریÛبحرینبرونڈیبیننسینٹ برتھلیمیبرمودابرونئیبولیویاکریبیائی نیدرل" + + "ینڈزبرازیلبÛاماسبھوٹانبؤویٹ آئلینڈبوتسوانابیلاروسبیلائزکینیڈاکوکوس (کیل" + + "Ù†Ú¯) جزائرکانگو - کنشاساوسط اÙریقی جمÛوریÛکانگو - برازاویلےسوئٹزر لینڈکو" + + "Ù¹ ÚˆÛŒ آئیوریکک آئلینڈزچلیکیمرونچینکولمبیاکلپرٹن آئلینڈکوسٹا ریکاکیوباکیپ" + + " ورڈیکیوراکاؤکرسمس آئلینڈقبرصچیک جمÛوریÛجرمنیڈائجو گارسیاجبوتیڈنمارکڈومن" + + "یکاڈومنیکن جمÛوریÛالجیریاسیئوٹا اور میلیلاایکواڈوراسٹونیامصرمغربی صحارا" + + "اریٹیریاÛسپانیÛایتھوپیایوروپی یونینÙÙ† لینڈÙجیÙاکلینڈ جزائرمائکرونیشیاجز" + + "ائر ÙاروÙرانسگیبونسلطنت متحدÛگریناڈاجارجیاÙرینچ گیاناگوئرنسیگھاناجبل ال" + + "طارقگرین لینڈگامبیاگنیگواڈیلوپاستوائی گیانایونانجنوبی جارجیا اور جنوبی " + + "سینڈوچ جزائرگواٹے مالاگوآمگنی بساؤگیاناÛانگ کانگ SAR چینÛیئرڈ آئلینڈ او" + + "ر میکڈونالڈ آئلینڈزÛونڈاروسکروشیاÛیتیÛنگریکینری آئلینڈزانڈونیشیاآئرلینڈ" + + "اسرائیلآئل آ٠مینبھارتبرطانوی Ûندوستانی سمندری خطÛعراقایرانآئس لینڈاٹلی" + + "جرسیجمائیکااردنجاپانکینیاکرغزستانکمبوڈیاکریباتیکوموروسسینٹ کٹس اور نیوی" + + "سشمالی کوریاجنوبی کوریاکویتکیمین آئلینڈزقزاخستانلاؤسلبنانسینٹ لوسیالیشٹ" + + "نسٹائنسری لنکالائبیریالیسوتھولتھوانیالگژمبرگلٹویالیبیامراقشموناکومالدوو" + + "امونٹے نیگروسینٹ مارٹنمڈغاسکرمارشل آئلینڈزمقدونیÛمالیمیانمار (برما)منگو" + + "لیامکاؤ SAR چینشمالی ماریانا آئلینڈزمارٹینکموریطانیÛمونٹسیراٹمالٹاماریش" + + "سمالدیپملاویمیکسیکوملیشیاموزمبیقنامیبیانیو کلیڈونیانائجرنارÙÙˆÚ© آئلینڈنا" + + "ئجیریانکاراگووانیدر لینڈزناروےنیپالنؤرونیئونیوزی ینڈعمانپنامÛپیروÙرانسی" + + "سی پولینیشیاپاپوآ نیو Ú¯Ù†ÛŒÙلپائنیپاکستانپولینڈسینٹ پیئر اور میکلیئونپٹکا" + + "ئرن جزائرپیورٹو ریکوÙلسطینی خطےپرتگالپلاؤپیراگوئےقطربیرونی اوشیانیاری ÛŒ" + + "ونینرومانیاسربیاروسروانڈاسعودی عربسولومن آئلینڈزسشلیزسوڈانسویڈنسنگاپورس" + + "ینٹ Ûیلیناسلووینیاسوالبرڈ اور جان ماینسلوواکیÛسیئر لیونسان مارینوسینیگل" + + "صومالیÛسورینامجنوبی سوڈانساؤ ٹوم اور پرنسپےال سلواڈورسنٹ مارٹنشامسوازی " + + "لینڈٹرسٹن ڈا کیونÛاترکس اور کیکاؤس جزائرچاڈÙرانسیسی جنوبی خطےٹوگوتھائی " + + "لینڈتاجکستانٹوکیلاؤتیمور لیسٹترکمانستانتیونیسیاٹونگاترکیترینیداد اور ٹو" + + "باگوٹووالوتائیوانتنزانیÛÛŒÙˆÚ©Ø±ÛŒÙ†ÛŒÙˆÚ¯Ø§Ù†ÚˆØ§Ø§Ù…Ø±ÛŒÚ©Û Ø³Û’ باÛر Ú©Û’ چھوٹے جزائزریاست" + + "Ûائے متحدÛیوروگوئےازبکستانواٹیکن سٹیسینٹ ونسنٹ اور گرینیڈائنزوینزوئیلاب" + + "رٹش ورجن آئلینڈزامریکی ورجن آئلینڈزویتناموینوآٹوویلیز اور Ùیوٹیوناساموآ" + + "کوسووویمنمایوٹجنوبی اÙریقÛزامبیازمبابوےنامعلوم علاقÛدنیااÙریقÛشمالی امر" + + "یکÛجنوبی امریکÛاوشیانیامغربی اÙریقÛوسطی امریکÛمشرقی اÙریقÛشمالی اÙریقÛÙˆ" + + "سطی اÙریقÛجنوبی اÙØ±ÛŒÙ‚Û Ú©Û’ علاقÛامیریکازشمالی Ø§Ù…Ø±ÛŒÚ©Û Ú©Ø§ علاقÛکریبیائیمشر" + + "Ù‚ÛŒ ایشیاجنوبی ایشیاجنوب مشرقی ایشیاجنوبی یورپآسٹریلیشیامالینیشیامائکرون" + + "یشیائی علاقÛپولینیشیاایشیاوسطی ایشیامغربی ایشیایورپمشرقی یورپشمالی یورپ" + + "مغربی یورپلاطینی امریکÛ" + +var urRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0019, 0x0025, 0x0043, 0x0055, 0x0079, 0x0089, 0x0097, + 0x00a5, 0x00b1, 0x00c5, 0x00d5, 0x00ec, 0x00f8, 0x0108, 0x0112, + 0x012b, 0x013d, 0x0165, 0x0175, 0x0186, 0x0192, 0x01a7, 0x01b5, + 0x01bf, 0x01cb, 0x01d3, 0x01ec, 0x01f8, 0x0204, 0x0212, 0x0235, + 0x0241, 0x024d, 0x0259, 0x0270, 0x0280, 0x028e, 0x029a, 0x02a6, + 0x02c8, 0x02e1, 0x0303, 0x0322, 0x0337, 0x034f, 0x0362, 0x0368, + 0x0374, 0x037a, 0x0388, 0x03a1, 0x03b4, 0x03be, 0x03cd, 0x03dd, + 0x03f4, 0x03fc, 0x0411, 0x041b, 0x0432, 0x043c, 0x0448, 0x0456, + // Entry 40 - 7F + 0x0473, 0x0481, 0x04a1, 0x04b1, 0x04bf, 0x04c5, 0x04da, 0x04ea, + 0x04f8, 0x0508, 0x051f, 0x052c, 0x0532, 0x054b, 0x0561, 0x0574, + 0x057e, 0x0588, 0x059d, 0x05ab, 0x05b7, 0x05cc, 0x05da, 0x05e4, + 0x05f7, 0x0608, 0x0614, 0x061a, 0x062a, 0x0643, 0x064d, 0x068e, + 0x06a1, 0x06a9, 0x06b8, 0x06c2, 0x06de, 0x071e, 0x072e, 0x073a, + 0x0742, 0x074c, 0x0765, 0x0777, 0x0785, 0x0793, 0x07a5, 0x07af, + 0x07e4, 0x07ec, 0x07f6, 0x0805, 0x080d, 0x0815, 0x0823, 0x082b, + 0x0835, 0x083f, 0x084f, 0x085d, 0x086b, 0x0879, 0x089a, 0x08af, + // Entry 80 - BF + 0x08c4, 0x08cc, 0x08e5, 0x08f5, 0x08fd, 0x0907, 0x091a, 0x092e, + 0x093d, 0x094d, 0x095b, 0x096b, 0x0979, 0x0983, 0x098d, 0x0997, + 0x09a3, 0x09b1, 0x09c6, 0x09d9, 0x09e7, 0x0a00, 0x0a0e, 0x0a16, + 0x0a2f, 0x0a3d, 0x0a50, 0x0a78, 0x0a86, 0x0a98, 0x0aaa, 0x0ab4, + 0x0ac0, 0x0acc, 0x0ad6, 0x0ae4, 0x0af0, 0x0afe, 0x0b0c, 0x0b23, + 0x0b2d, 0x0b46, 0x0b56, 0x0b68, 0x0b7b, 0x0b85, 0x0b8f, 0x0b97, + 0x0b9f, 0x0bb0, 0x0bb8, 0x0bc2, 0x0bca, 0x0bed, 0x0c05, 0x0c13, + 0x0c21, 0x0c2d, 0x0c56, 0x0c6f, 0x0c84, 0x0c99, 0x0ca5, 0x0cad, + // Entry C0 - FF + 0x0cbd, 0x0cc3, 0x0ce0, 0x0cef, 0x0cfd, 0x0d07, 0x0d0d, 0x0d19, + 0x0d2a, 0x0d45, 0x0d4f, 0x0d59, 0x0d63, 0x0d71, 0x0d86, 0x0d96, + 0x0dbb, 0x0dcb, 0x0ddc, 0x0def, 0x0dfb, 0x0e09, 0x0e17, 0x0e2c, + 0x0e4d, 0x0e60, 0x0e71, 0x0e77, 0x0e8a, 0x0ea6, 0x0ecd, 0x0ed3, + 0x0ef5, 0x0efd, 0x0f10, 0x0f20, 0x0f2e, 0x0f41, 0x0f55, 0x0f65, + 0x0f6f, 0x0f77, 0x0f9b, 0x0fa7, 0x0fb5, 0x0fc3, 0x0fcf, 0x0fdd, + 0x1012, 0x102f, 0x103f, 0x104f, 0x1062, 0x1091, 0x10a3, 0x10c3, + 0x10e7, 0x10f3, 0x1101, 0x1123, 0x112d, 0x1139, 0x113f, 0x1149, + // Entry 100 - 13F + 0x1160, 0x116c, 0x117a, 0x1193, 0x119b, 0x11a7, 0x11be, 0x11d5, + 0x11e5, 0x11fc, 0x1211, 0x1228, 0x123f, 0x1254, 0x127b, 0x128b, + 0x12b2, 0x12c2, 0x12d7, 0x12ec, 0x130a, 0x131d, 0x1331, 0x1343, + 0x1368, 0x137a, 0x1384, 0x1397, 0x13ac, 0x13b4, 0x13c7, 0x13da, + 0x13ed, 0x1406, +} // Size: 604 bytes + +var uzRegionStr string = "" + // Size: 3194 bytes + "Me’roj oroliAndorraBirlashgan Arab AmirliklariAfgÊ»onistonAntigua va Barb" + + "adosAngilyaAlbaniyaArmanistonAngolaAntarktidaArgentinaAmerika SamoasiAvs" + + "triyaAvstraliyaArubaAland orollariOzarbayjonBosniya va GertsegovinaBarba" + + "dosBangladeshBelgiyaBurkina-FasoBolgariyaBahraynBurundiBeninSen-Bartelem" + + "iBermuda orollariBruneyBoliviyaBoneyr, Sint-Estatius va SabaBraziliyaBag" + + "ama orollariButanBuve oroliBotsvanaBelarusBelizKanadaKokos (Kiling) orol" + + "lariKongo – KinshasaMarkaziy Afrika RespublikasiKongo – BrazzavilShveyts" + + "ariyaKot-d’IvuarKuk orollariChiliKamerunXitoyKolumbiyaKlipperton oroliKo" + + "sta-RikaKubaKabo-VerdeKyurasaoRojdestvo oroliKiprChexiya RespublikasiGer" + + "maniyaDiyego-GarsiyaJibutiDaniyaDominikaDominikan RespublikasiJazoirSeut" + + "a va MelilyaEkvadorEstoniyaMisrG‘arbiy Sahroi KabirEritreyaIspaniyaEfiop" + + "iyaYevropa IttifoqiFinlandiyaFijiFolklend orollariMikroneziyaFarer oroll" + + "ariFransiyaGabonBirlashgan QirollikGrenadaGruziyaFransuz GvianasiGernsiG" + + "anaGibraltarGrenlandiyaGambiyaGvineyaGvadelupeEkvatorial GvineyaGretsiya" + + "Janubiy Georgiya va Janubiy Sendvich orollariGvatemalaGuamGvineya-BisauG" + + "ayanaGonkong (Xitoy MMH)Xerd va Makdonald orollariGondurasXorvatiyaGaiti" + + "VengriyaKanar orollariIndoneziyaIrlandiyaIsroilMen oroliHindistonBritani" + + "yaning Hind okeanidagi hududiIroqEronIslandiyaItaliyaJersiYamaykaIordani" + + "yaYaponiyaKeniyaQirgÊ»izistonKambodjaKiribatiKomor orollariSent-Kits va N" + + "evisShimoliy KoreyaJanubiy KoreyaQuvaytKayman orollariQozogÊ»istonLaosLiv" + + "anSent-LyusiyaLixtenshteynShri-LankaLiberiyaLesotoLitvaLyuksemburgLatviy" + + "aLiviyaMarokashMonakoMoldovaChernogoriyaSent-MartinMadagaskarMarshall or" + + "ollariMakedoniyaMaliMyanma (Birma)MongoliyaMakao (Xitoy MMH)Shimoliy Mar" + + "iana orollariMartinikaMavritaniyaMontserratMaltaMavrikiyMaldiv orollariM" + + "alaviMeksikaMalayziyaMozambikNamibiyaYangi KaledoniyaNigerNorfolk oroliN" + + "igeriyaNikaraguaNiderlandiyaNorvegiyaNepalNauruNiueYangi ZelandiyaUmmonP" + + "anamaPeruFransuz PolineziyasiPapua – Yangi GvineyaFilippinPokistonPolsha" + + "Sent-Pyer va MikelonPitkern orollariPuerto-RikoFalastin hududiPortugaliy" + + "aPalauParagvayQatarYondosh OkeaniyaReyunionRuminiyaSerbiyaRossiyaRuandaS" + + "audiya ArabistoniSolomon orollariSeyshel orollariSudanShvetsiyaSingapurM" + + "uqaddas Yelena oroliSloveniyaSvalbard va Yan-MayenSlovakiyaSyerra-LeoneS" + + "an-MarinoSenegalSomaliSurinamJanubiy SudanSan-Tome va PrinsipiSalvadorSi" + + "nt-MartenSuriyaSvazilendTristan-da-KunyaTurks va Kaykos orollariChadFran" + + "suz Janubiy hududlariTogoTailandTojikistonTokelauTimorTurkmanistonTunisT" + + "ongaTurkiyaTrinidad va TobagoTuvaluTayvanTanzaniyaUkrainaUgandaAQSH yond" + + "osh orollariQoÊ»shma ShtatlarUrugvayOÊ»zbekistonVatikanSent-Vinsent va Gre" + + "nadinVenesuelaBritaniya Virgin orollariAQSH Virgin orollariVyetnamVanuat" + + "uUollis va FutunaSamoaKosovoYamanMayottaJanubiy Afrika RespublikasiZambi" + + "yaZimbabveNoma’lum mintaqaDunyoAfrikaShimoliy AmerikaJanubiy AmerikaOkea" + + "niyaG‘arbiy AfrikaMarkaziy AmerikaSharqiy AfrikaShimoliy AfrikaMarkaziy " + + "AfrikaJanubiy AfrikaAmerikaShimoliy Amerika – AQSH va KanadaKarib havzas" + + "iSharqiy OsiyoJanubiy OsiyoJanubi-sharqiy OsiyoJanubiy YevropaAvstralazi" + + "yaMelaneziyaMikroneziya mintaqasiPolineziyaOsiyoMarkaziy OsiyoG‘arbiy Os" + + "iyoYevropaSharqiy YevropaShimoliy YevropaG‘arbiy YevropaLotin Amerikasi" + +var uzRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000e, 0x0015, 0x0030, 0x003c, 0x004f, 0x0056, 0x005e, + 0x0068, 0x006e, 0x0078, 0x0081, 0x0090, 0x0098, 0x00a2, 0x00a7, + 0x00b5, 0x00bf, 0x00d6, 0x00de, 0x00e8, 0x00ef, 0x00fb, 0x0104, + 0x010b, 0x0112, 0x0117, 0x0124, 0x0134, 0x013a, 0x0142, 0x015f, + 0x0168, 0x0177, 0x017c, 0x0186, 0x018e, 0x0195, 0x019a, 0x01a0, + 0x01b7, 0x01c9, 0x01e5, 0x01f8, 0x0204, 0x0211, 0x021d, 0x0222, + 0x0229, 0x022e, 0x0237, 0x0247, 0x0251, 0x0255, 0x025f, 0x0267, + 0x0276, 0x027a, 0x028e, 0x0297, 0x02a5, 0x02ab, 0x02b1, 0x02b9, + // Entry 40 - 7F + 0x02cf, 0x02d5, 0x02e5, 0x02ec, 0x02f4, 0x02f8, 0x030e, 0x0316, + 0x031e, 0x0326, 0x0336, 0x0340, 0x0344, 0x0355, 0x0360, 0x036e, + 0x0376, 0x037b, 0x038e, 0x0395, 0x039c, 0x03ac, 0x03b2, 0x03b6, + 0x03bf, 0x03ca, 0x03d1, 0x03d8, 0x03e1, 0x03f3, 0x03fb, 0x0428, + 0x0431, 0x0435, 0x0442, 0x0448, 0x045b, 0x0475, 0x047d, 0x0486, + 0x048b, 0x0493, 0x04a1, 0x04ab, 0x04b4, 0x04ba, 0x04c3, 0x04cc, + 0x04f0, 0x04f4, 0x04f8, 0x0501, 0x0508, 0x050d, 0x0514, 0x051d, + 0x0525, 0x052b, 0x0538, 0x0540, 0x0548, 0x0556, 0x0568, 0x0577, + // Entry 80 - BF + 0x0585, 0x058b, 0x059a, 0x05a6, 0x05aa, 0x05af, 0x05bb, 0x05c7, + 0x05d1, 0x05d9, 0x05df, 0x05e4, 0x05ef, 0x05f6, 0x05fc, 0x0604, + 0x060a, 0x0611, 0x061d, 0x0628, 0x0632, 0x0643, 0x064d, 0x0651, + 0x065f, 0x0668, 0x0679, 0x0692, 0x069b, 0x06a6, 0x06b0, 0x06b5, + 0x06bd, 0x06cc, 0x06d2, 0x06d9, 0x06e2, 0x06ea, 0x06f2, 0x0702, + 0x0707, 0x0714, 0x071c, 0x0725, 0x0731, 0x073a, 0x073f, 0x0744, + 0x0748, 0x0757, 0x075c, 0x0762, 0x0766, 0x077a, 0x0791, 0x0799, + 0x07a1, 0x07a7, 0x07bb, 0x07cb, 0x07d6, 0x07e5, 0x07f0, 0x07f5, + // Entry C0 - FF + 0x07fd, 0x0802, 0x0812, 0x081a, 0x0822, 0x0829, 0x0830, 0x0836, + 0x0848, 0x0858, 0x0868, 0x086d, 0x0876, 0x087e, 0x0893, 0x089c, + 0x08b1, 0x08ba, 0x08c6, 0x08d0, 0x08d7, 0x08dd, 0x08e4, 0x08f1, + 0x0905, 0x090d, 0x0918, 0x091e, 0x0927, 0x0937, 0x094f, 0x0953, + 0x096c, 0x0970, 0x0977, 0x0981, 0x0988, 0x098d, 0x0999, 0x099e, + 0x09a3, 0x09aa, 0x09bc, 0x09c2, 0x09c8, 0x09d1, 0x09d8, 0x09de, + 0x09f3, 0x0a04, 0x0a0b, 0x0a17, 0x0a1e, 0x0a36, 0x0a3f, 0x0a58, + 0x0a6c, 0x0a73, 0x0a7a, 0x0a8a, 0x0a8f, 0x0a95, 0x0a9a, 0x0aa1, + // Entry 100 - 13F + 0x0abc, 0x0ac3, 0x0acb, 0x0add, 0x0ae2, 0x0ae8, 0x0af8, 0x0b07, + 0x0b0f, 0x0b1f, 0x0b2f, 0x0b3d, 0x0b4c, 0x0b5b, 0x0b69, 0x0b70, + 0x0b93, 0x0ba0, 0x0bad, 0x0bba, 0x0bce, 0x0bdd, 0x0be9, 0x0bf3, + 0x0c08, 0x0c12, 0x0c17, 0x0c25, 0x0c34, 0x0c3b, 0x0c4a, 0x0c5a, + 0x0c6b, 0x0c7a, +} // Size: 604 bytes + +var viRegionStr string = "" + // Size: 3213 bytes + "Äảo AscensionAndorraCác Tiểu V.quốc Ả Rập T.nhấtAfghanistanAntigua và Ba" + + "rbudaAnguillaAlbaniArmeniaAngolaNam Cá»±cArgentinaÄảo Somoa thuá»™c MỹÃoÚcAr" + + "ubaQuần đảo Ã…landAzerbaijanBosnia và HerzegovinaBarbadosBangladeshBỉBurk" + + "ina FasoBungariBahrainBurundiBeninSt. BarthélemyBermudaBruneiBoliviaCa-r" + + "i-bê Hà LanBrazilBahamasBhutanÄảo BouvetBotswanaBelarusBelizeCanadaQuần " + + "đảo Cocos (Keeling)Congo - KinshasaCá»™ng hòa Trung PhiCongo - Brazzavill" + + "eThụy SÄ©Bá» Biển NgàQuần đảo CookChileCameroonTrung QuốcColombiaÄảo Clipp" + + "ertonCosta RicaCubaCape VerdeCuraçaoÄảo Giáng SinhSípCá»™ng hòa SécÄứcDieg" + + "o GarciaDjiboutiÄan MạchDominicaCá»™ng hòa DominicaAlgeriaCeuta và Melilla" + + "EcuadorEstoniaAi CậpTây SaharaEritreaTây Ban NhaEthiopiaLiên Minh Châu Â" + + "uPhần LanFijiQuần đảo FalklandMicronesiaQuần đảo FaroePhápGabonVÆ°Æ¡ng quố" + + "c AnhGrenadaGeorgiaGuiana thuá»™c PhápGuernseyGhanaGibraltarGreenlandGambi" + + "aGuineaGuadeloupeGuinea Xích ÄạoHy LạpQuần đảo Nam Georgia và Nam Sandwi" + + "chGuatemalaGuamGuinea-BissauGuyanaHồng Kông, Trung QuốcQuần đảo Heard và" + + " McDonaldHondurasCroatiaHaitiHungariQuần đảo CanaryIndonesiaAi-lenIsrael" + + "Äảo ManẤn Äá»™Thuá»™c địa Anh tại Ấn Äá»™ DÆ°Æ¡ngI-rắcIranIcelandÃJerseyJamaica" + + "JordanNhật BảnKenyaKyrgyzstanCampuchiaKiribatiComorosSt. Kitts và NevisT" + + "riá»u TiênHàn QuốcCô-oétQuần đảo CaymanKazakhstanLàoLi-băngSt. LuciaLiech" + + "tensteinSri LankaLiberiaLesothoLít-vaLuxembourgLatviaLi-biMa-rốcMonacoMo" + + "ldovaMontenegroSt. MartinMadagascarQuần đảo MarshallMacedoniaMaliMyanmar" + + " (Miến Äiện)Mông CổMacao, Trung QuốcQuần đảo Bắc MarianaMartiniqueMaurit" + + "aniaMontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibi" + + "aNew CaledoniaNigerÄảo NorfolkNigeriaNicaraguaHà LanNa UyNepalNauruNiueN" + + "ew ZealandOmanPanamaPeruPolynesia thuá»™c PhápPapua New GuineaPhilippinPak" + + "istanBa LanSaint Pierre và MiquelonQuần đảo PitcairnPuerto RicoLãnh thổ " + + "PalestineBồ Äào NhaPalauParaguayQatarVùng xa xôi thuá»™c Châu Äại DÆ°Æ¡ngRéu" + + "nionRomaniaSerbiaNgaRwandaẢ Rập Xê-útQuần đảo SolomonSeychellesSudanThụy" + + " ÄiểnSingaporeSt. HelenaSloveniaSvalbard và Jan MayenSlovakiaSierra Leon" + + "eSan MarinoSenegalSomaliSurinameNam SudanSão Tomé và PríncipeEl Salvador" + + "Sint MaartenSyriaSwazilandTristan da CunhaQuần đảo Turk và CaicosChadLãn" + + "h thổ miá»n nam nÆ°á»›c PhápTogoThái LanTajikistanTokelauÄông TimorTurkmenis" + + "tanTunisiaTongaThổ NhÄ© KỳTrinidad và TobagoTuvaluÄài LoanTanzaniaUkraina" + + "UgandaCác đảo nhá» xa t.tâm thuá»™c MỹHoa KỳUruguayUzbekistanThành VaticanS" + + "t. Vincent và GrenadinesVenezuelaQuần đảo Virgin thuá»™c AnhQuần đảo Virgi" + + "n thuá»™c MỹViệt NamVanuatuWallis và FutunaSamoaKosovoYemenMayotteNam PhiZ" + + "ambiaZimbabweVùng không xác địnhThế giá»›iChâu PhiBắc MỹNam MỹChâu Äại DÆ°Æ¡" + + "ngTây PhiTrung MỹÄông PhiBắc PhiTrung PhiMiá»n Nam Châu PhiChâu MỹMiá»n Bắ" + + "c Châu MỹCa-ri-bêÄông ÃNam ÃÄông Nam ÃNam ÂuÚc và New ZealandMelanesiaVù" + + "ng MicronesianPolynesiaChâu ÃTrung ÃTây ÃChâu ÂuÄông ÂuBắc ÂuTây ÂuChâu " + + "Mỹ La-tinh" + +var viRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0010, 0x0017, 0x003e, 0x0049, 0x005c, 0x0064, 0x006a, + 0x0071, 0x0077, 0x0080, 0x0089, 0x00a2, 0x00a5, 0x00a8, 0x00ad, + 0x00c1, 0x00cb, 0x00e1, 0x00e9, 0x00f3, 0x00f7, 0x0103, 0x010a, + 0x0111, 0x0118, 0x011d, 0x012c, 0x0133, 0x0139, 0x0140, 0x0151, + 0x0157, 0x015e, 0x0164, 0x0171, 0x0179, 0x0180, 0x0186, 0x018c, + 0x01a9, 0x01b9, 0x01ce, 0x01e1, 0x01eb, 0x01fb, 0x020d, 0x0212, + 0x021a, 0x0226, 0x022e, 0x023f, 0x0249, 0x024d, 0x0257, 0x025f, + 0x0271, 0x0275, 0x0285, 0x028b, 0x0297, 0x029f, 0x02aa, 0x02b2, + // Entry 40 - 7F + 0x02c6, 0x02cd, 0x02de, 0x02e5, 0x02ec, 0x02f4, 0x02ff, 0x0306, + 0x0312, 0x031a, 0x032e, 0x0338, 0x033c, 0x0352, 0x035c, 0x036f, + 0x0374, 0x0379, 0x038b, 0x0392, 0x0399, 0x03ad, 0x03b5, 0x03ba, + 0x03c3, 0x03cc, 0x03d2, 0x03d8, 0x03e2, 0x03f5, 0x03fd, 0x0427, + 0x0430, 0x0434, 0x0441, 0x0447, 0x0461, 0x0481, 0x0489, 0x0490, + 0x0495, 0x049c, 0x04b0, 0x04b9, 0x04bf, 0x04c5, 0x04cf, 0x04d9, + 0x0504, 0x050b, 0x050f, 0x0516, 0x0518, 0x051e, 0x0525, 0x052b, + 0x0537, 0x053c, 0x0546, 0x054f, 0x0557, 0x055e, 0x0571, 0x057e, + // Entry 80 - BF + 0x0589, 0x0591, 0x05a5, 0x05af, 0x05b3, 0x05bb, 0x05c4, 0x05d1, + 0x05da, 0x05e1, 0x05e8, 0x05ef, 0x05f9, 0x05ff, 0x0604, 0x060c, + 0x0612, 0x0619, 0x0623, 0x062d, 0x0637, 0x064d, 0x0656, 0x065a, + 0x0672, 0x067c, 0x068f, 0x06aa, 0x06b4, 0x06be, 0x06c8, 0x06cd, + 0x06d6, 0x06de, 0x06e4, 0x06ea, 0x06f2, 0x06fc, 0x0703, 0x0710, + 0x0715, 0x0723, 0x072a, 0x0733, 0x073a, 0x073f, 0x0744, 0x0749, + 0x074d, 0x0758, 0x075c, 0x0762, 0x0766, 0x077d, 0x078d, 0x0796, + 0x079e, 0x07a4, 0x07bd, 0x07d3, 0x07de, 0x07f3, 0x0801, 0x0806, + // Entry C0 - FF + 0x080e, 0x0813, 0x083d, 0x0845, 0x084c, 0x0852, 0x0855, 0x085b, + 0x086c, 0x0881, 0x088b, 0x0890, 0x089e, 0x08a7, 0x08b1, 0x08b9, + 0x08cf, 0x08d7, 0x08e3, 0x08ed, 0x08f4, 0x08fa, 0x0902, 0x090b, + 0x0923, 0x092e, 0x093a, 0x093f, 0x0948, 0x0958, 0x0975, 0x0979, + 0x099d, 0x09a1, 0x09aa, 0x09b4, 0x09bb, 0x09c7, 0x09d3, 0x09da, + 0x09df, 0x09ee, 0x0a01, 0x0a07, 0x0a11, 0x0a19, 0x0a20, 0x0a26, + 0x0a4e, 0x0a56, 0x0a5d, 0x0a67, 0x0a75, 0x0a8f, 0x0a98, 0x0ab8, + 0x0ad9, 0x0ae3, 0x0aea, 0x0afb, 0x0b00, 0x0b06, 0x0b0b, 0x0b12, + // Entry 100 - 13F + 0x0b19, 0x0b1f, 0x0b27, 0x0b40, 0x0b4c, 0x0b55, 0x0b5f, 0x0b67, + 0x0b7b, 0x0b83, 0x0b8d, 0x0b97, 0x0ba0, 0x0ba9, 0x0bbd, 0x0bc7, + 0x0bde, 0x0be7, 0x0bf0, 0x0bf6, 0x0c03, 0x0c0a, 0x0c1d, 0x0c26, + 0x0c37, 0x0c40, 0x0c48, 0x0c50, 0x0c57, 0x0c60, 0x0c6a, 0x0c73, + 0x0c7b, 0x0c8d, +} // Size: 604 bytes + +var zhRegionStr string = "" + // Size: 3307 bytes + "阿森æ¾å²›å®‰é“尔阿拉伯è”åˆé…‹é•¿å›½é˜¿å¯Œæ±—安æ瓜和巴布达安圭拉阿尔巴尼亚亚美尼亚安哥拉å—æžæ´²é˜¿æ ¹å»·ç¾Žå±žè¨æ‘©äºšå¥¥åœ°åˆ©æ¾³å¤§åˆ©äºšé˜¿é²å·´å¥¥å…°ç¾¤å²›é˜¿å¡žæ‹œç–†æ³¢æ–¯å°¼" + + "亚和黑塞哥维那巴巴多斯孟加拉国比利时布基纳法索ä¿åŠ åˆ©äºšå·´æž—布隆迪è´å®åœ£å·´æ³°å‹’米百慕大文莱玻利维亚è·å…°åŠ å‹’比区巴西巴哈马ä¸ä¸¹å¸ƒç»´å²›åšèŒ¨ç“¦çº³ç™½ä¿„" + + "罗斯伯利兹加拿大科科斯(基林)群岛刚果(金)中éžå…±å’Œå›½åˆšæžœï¼ˆå¸ƒï¼‰ç‘žå£«ç§‘特迪瓦库克群岛智利喀麦隆中国哥伦比亚克利ç€é¡¿å²›å“¥æ–¯è¾¾é»ŽåŠ å¤å·´ä½›å¾—角库拉" + + "索圣诞岛塞浦路斯æ·å…‹å…±å’Œå›½å¾·å›½è¿ªæˆˆåŠ è¥¿äºšå²›å‰å¸ƒæ丹麦多米尼克多米尼加共和国阿尔åŠåˆ©äºšä¼‘è¾¾åŠæ¢…利利亚厄瓜多尔爱沙尼亚埃åŠè¥¿æ’’哈拉厄立特里亚西ç­" + + "牙埃塞俄比亚欧盟芬兰æ–济ç¦å…‹å…°ç¾¤å²›å¯†å…‹ç½—尼西亚法罗群岛法国加蓬英国格林纳达格é²å‰äºšæ³•å±žåœ­äºšé‚£æ ¹è¥¿å²›åŠ çº³ç›´å¸ƒç½—陀格陵兰冈比亚几内亚瓜德罗普赤é“" + + "几内亚希腊å—乔治亚岛和å—æ¡‘å¨é½ç¾¤å²›å±åœ°é©¬æ‹‰å…³å²›å‡ å†…亚比ç»åœ­äºšé‚£ä¸­å›½é¦™æ¸¯ç‰¹åˆ«è¡Œæ”¿åŒºèµ«å¾·å²›å’Œéº¦å…‹å”纳群岛洪都拉斯克罗地亚海地匈牙利加纳利群岛å°åº¦" + + "尼西亚爱尔兰以色列曼岛å°åº¦è‹±å±žå°åº¦æ´‹é¢†åœ°ä¼Šæ‹‰å…‹ä¼Šæœ—冰岛æ„大利泽西岛牙买加约旦日本肯尼亚å‰å°”å‰æ–¯æ–¯å¦æŸ¬åŸ”寨基里巴斯科摩罗圣基茨和尼维斯æœé²œéŸ©å›½" + + "科å¨ç‰¹å¼€æ›¼ç¾¤å²›å“ˆè¨å…‹æ–¯å¦è€æŒé»Žå·´å«©åœ£å¢è¥¿äºšåˆ—支敦士登斯里兰å¡åˆ©æ¯”里亚莱索托立陶宛å¢æ£®å ¡æ‹‰è„±ç»´äºšåˆ©æ¯”亚摩洛哥摩纳哥摩尔多瓦黑山法属圣马ä¸é©¬è¾¾åŠ " + + "斯加马ç»å°”群岛马其顿马里缅甸蒙å¤ä¸­å›½æ¾³é—¨ç‰¹åˆ«è¡Œæ”¿åŒºåŒ—马里亚纳群岛马æ尼克毛里塔尼亚蒙特塞拉特马耳他毛里求斯马尔代夫马拉维墨西哥马æ¥è¥¿äºšèŽ«æ¡‘比" + + "克纳米比亚新喀里多尼亚尼日尔诺ç¦å…‹å²›å°¼æ—¥åˆ©äºšå°¼åŠ æ‹‰ç“œè·å…°æŒªå¨å°¼æ³Šå°”ç‘™é²çº½åŸƒæ–°è¥¿å…°é˜¿æ›¼å·´æ‹¿é©¬ç§˜é²æ³•å±žæ³¢åˆ©å°¼è¥¿äºšå·´å¸ƒäºšæ–°å‡ å†…亚è²å¾‹å®¾å·´åŸºæ–¯å¦æ³¢å…°" + + "圣皮埃尔和密克隆群岛皮特凯æ©ç¾¤å²›æ³¢å¤šé»Žå„å·´å‹’æ–¯å¦é¢†åœŸè‘¡è„牙帕劳巴拉圭å¡å¡”尔大洋洲边远群岛留尼汪罗马尼亚塞尔维亚俄罗斯å¢æ—ºè¾¾æ²™ç‰¹é˜¿æ‹‰ä¼¯æ‰€ç½—门群" + + "岛塞舌尔è‹ä¸¹ç‘žå…¸æ–°åŠ å¡åœ£èµ«å‹’拿斯洛文尼亚斯瓦尔巴特和扬马延斯洛ä¼å…‹å¡žæ‹‰åˆ©æ˜‚圣马力诺塞内加尔索马里è‹é‡Œå—å—è‹ä¸¹åœ£å¤šç¾Žå’Œæ™®æž—西比è¨å°”瓦多è·å±žåœ£é©¬" + + "ä¸å™åˆ©äºšæ–¯å¨å£«å…°ç‰¹é‡Œæ–¯å¦-达库尼亚群岛特克斯和凯科斯群岛ä¹å¾—法属å—部领地多哥泰国塔å‰å…‹æ–¯å¦æ‰˜å…‹åŠ³ä¸œå¸æ±¶åœŸåº“曼斯å¦çªå°¼æ–¯æ±¤åŠ åœŸè€³å…¶ç‰¹ç«‹å°¼è¾¾å’Œå¤š" + + "巴哥图瓦å¢å°æ¹¾å¦æ¡‘尼亚乌克兰乌干达美国本土外å°å²›å±¿ç¾Žå›½ä¹Œæ‹‰åœ­ä¹Œå…¹åˆ«å…‹æ–¯å¦æ¢µè’‚冈圣文森特和格林纳ä¸æ–¯å§”内瑞拉英属维京群岛美属维京群岛越å—瓦努阿" + + "图瓦利斯和富图纳è¨æ‘©äºšç§‘索沃也门马约特å—éžèµžæ¯”亚津巴布韦未知地区世界éžæ´²åŒ—美洲å—美洲大洋洲西éžä¸­ç¾Žæ´²ä¸œéžåŒ—éžä¸­éžå—部éžæ´²ç¾Žæ´²ç¾Žæ´²åŒ—部加勒比地" + + "区东亚å—亚东å—亚å—欧澳大拉西亚美拉尼西亚密克罗尼西亚地区玻利尼西亚亚洲中亚西亚欧洲东欧北欧西欧拉ä¸ç¾Žæ´²" + +var zhRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0015, 0x002d, 0x0036, 0x004b, 0x0054, 0x0063, + 0x006f, 0x0078, 0x0081, 0x008a, 0x0099, 0x00a2, 0x00ae, 0x00b7, + 0x00c3, 0x00cf, 0x00ed, 0x00f9, 0x0105, 0x010e, 0x011d, 0x0129, + 0x012f, 0x0138, 0x013e, 0x014d, 0x0156, 0x015c, 0x0168, 0x017a, + 0x0180, 0x0189, 0x018f, 0x0198, 0x01a4, 0x01b0, 0x01b9, 0x01c2, + 0x01dd, 0x01ec, 0x01fb, 0x020a, 0x0210, 0x021c, 0x0228, 0x022e, + 0x0237, 0x023d, 0x0249, 0x0258, 0x0267, 0x026d, 0x0276, 0x027f, + 0x0288, 0x0294, 0x02a3, 0x02a9, 0x02bb, 0x02c4, 0x02ca, 0x02d6, + // Entry 40 - 7F + 0x02eb, 0x02fa, 0x030f, 0x031b, 0x0327, 0x032d, 0x0339, 0x0348, + 0x0351, 0x0360, 0x0366, 0x036c, 0x0372, 0x0381, 0x0393, 0x039f, + 0x03a5, 0x03ab, 0x03b1, 0x03bd, 0x03c9, 0x03d8, 0x03e1, 0x03e7, + 0x03f3, 0x03fc, 0x0405, 0x040e, 0x041a, 0x0429, 0x042f, 0x0453, + 0x045f, 0x0465, 0x0474, 0x047d, 0x0498, 0x04b6, 0x04c2, 0x04ce, + 0x04d4, 0x04dd, 0x04ec, 0x04fb, 0x0504, 0x050d, 0x0513, 0x0519, + 0x052e, 0x0537, 0x053d, 0x0543, 0x054c, 0x0555, 0x055e, 0x0564, + 0x056a, 0x0573, 0x0585, 0x058e, 0x059a, 0x05a3, 0x05b8, 0x05be, + // Entry 80 - BF + 0x05c4, 0x05cd, 0x05d9, 0x05e8, 0x05ee, 0x05f7, 0x0603, 0x0612, + 0x061e, 0x062a, 0x0633, 0x063c, 0x0645, 0x0651, 0x065a, 0x0663, + 0x066c, 0x0678, 0x067e, 0x068d, 0x069c, 0x06ab, 0x06b4, 0x06ba, + 0x06c0, 0x06c6, 0x06e1, 0x06f6, 0x0702, 0x0711, 0x0720, 0x0729, + 0x0735, 0x0741, 0x074a, 0x0753, 0x075f, 0x076b, 0x0777, 0x0789, + 0x0792, 0x079e, 0x07aa, 0x07b6, 0x07bc, 0x07c2, 0x07cb, 0x07d1, + 0x07d7, 0x07e0, 0x07e6, 0x07ef, 0x07f5, 0x080a, 0x081f, 0x0828, + 0x0834, 0x083a, 0x0858, 0x086a, 0x0876, 0x0888, 0x0891, 0x0897, + // Entry C0 - FF + 0x08a0, 0x08a9, 0x08be, 0x08c7, 0x08d3, 0x08df, 0x08e8, 0x08f1, + 0x0900, 0x090f, 0x0918, 0x091e, 0x0924, 0x092d, 0x0939, 0x0948, + 0x0963, 0x096f, 0x097b, 0x0987, 0x0993, 0x099c, 0x09a5, 0x09ae, + 0x09c6, 0x09d2, 0x09e1, 0x09ea, 0x09f6, 0x0a15, 0x0a30, 0x0a36, + 0x0a48, 0x0a4e, 0x0a54, 0x0a63, 0x0a6c, 0x0a75, 0x0a84, 0x0a8d, + 0x0a93, 0x0a9c, 0x0ab4, 0x0abd, 0x0ac3, 0x0acf, 0x0ad8, 0x0ae1, + 0x0af9, 0x0aff, 0x0b08, 0x0b1a, 0x0b23, 0x0b41, 0x0b4d, 0x0b5f, + 0x0b71, 0x0b77, 0x0b83, 0x0b98, 0x0ba1, 0x0baa, 0x0bb0, 0x0bb9, + // Entry 100 - 13F + 0x0bbf, 0x0bc8, 0x0bd4, 0x0be0, 0x0be6, 0x0bec, 0x0bf5, 0x0bfe, + 0x0c07, 0x0c0d, 0x0c16, 0x0c1c, 0x0c22, 0x0c28, 0x0c34, 0x0c3a, + 0x0c46, 0x0c55, 0x0c5b, 0x0c61, 0x0c6a, 0x0c70, 0x0c7f, 0x0c8e, + 0x0ca6, 0x0cb5, 0x0cbb, 0x0cc1, 0x0cc7, 0x0ccd, 0x0cd3, 0x0cd9, + 0x0cdf, 0x0ceb, +} // Size: 604 bytes + +var zhHantRegionStr string = "" + // Size: 3315 bytes + "阿森æ¾å³¶å®‰é“爾阿拉伯è¯åˆå¤§å…¬åœ‹é˜¿å¯Œæ±—安地å¡åŠå·´å¸ƒé”安圭拉阿爾巴尼亞亞美尼亞安哥拉å—極洲阿根廷美屬薩摩亞奧地利澳洲è·å±¬é˜¿é­¯å·´å¥§è˜­ç¾¤å³¶äºžå¡žæ‹œç„¶æ³¢å£«å°¼" + + "亞與赫塞哥維ç´å·´è²å¤šå­ŸåŠ æ‹‰æ¯”利時布å‰ç´æ³•ç´¢ä¿åŠ åˆ©äºžå·´æž—蒲隆地è²å—è–巴瑟米百慕é”汶èŠçŽ»åˆ©ç¶­äºžè·è˜­åŠ å‹’比å€å·´è¥¿å·´å“ˆé¦¬ä¸ä¸¹å¸ƒå¨å³¶æ³¢æœ­é‚£ç™½ä¿„ç¾…æ–¯è²é‡Œ" + + "斯加拿大科科斯(基林)群島剛果(金å¤æ²™ï¼‰ä¸­éžå…±å’Œåœ‹å‰›æžœï¼ˆå¸ƒæ‹‰è–©ï¼‰ç‘žå£«è±¡ç‰™æµ·å²¸åº«å…‹ç¾¤å³¶æ™ºåˆ©å–€éº¥éš†ä¸­è¯äººæ°‘共和國哥倫比亞克里派頓島哥斯大黎加å¤å·´" + + "維德角庫拉索è–誕島賽普勒斯æ·å…‹å…±å’Œåœ‹å¾·åœ‹è¿ªäºžå“¥åŠ è¥¿äºžå³¶å‰å¸ƒåœ°ä¸¹éº¥å¤šç±³å°¼å…‹å¤šæ˜Žå°¼åŠ å…±å’Œåœ‹é˜¿çˆ¾åŠåˆ©äºžä¼‘é”與梅利利亞厄瓜多愛沙尼亞埃åŠè¥¿æ’’哈拉厄利" + + "垂亞西ç­ç‰™è¡£ç´¢æ¯”亞æ­ç›ŸèŠ¬è˜­æ–æ¿Ÿç¦å…‹è˜­ç¾¤å³¶å¯†å…‹ç¾…尼西亞群島法羅群島法國加彭英國格瑞那é”喬治亞共和國法屬圭亞那根西島迦ç´ç›´å¸ƒç¾…陀格陵蘭甘比亞幾內" + + "亞瓜地洛普赤é“幾內亞希臘å—喬治亞與å—三明治群島瓜地馬拉關島幾內亞比索蓋亞那中è¯äººæ°‘共和國香港特別行政å€èµ«å¾·å³¶å’Œéº¥å…‹å”ç´ç¾¤å³¶å®éƒ½æ‹‰æ–¯å…‹ç¾…埃西亞" + + "海地匈牙利加那利群島å°å°¼æ„›çˆ¾è˜­ä»¥è‰²åˆ—曼島å°åº¦è‹±å±¬å°åº¦æ´‹é ˜åœ°ä¼Šæ‹‰å…‹ä¼Šæœ—冰島義大利澤西島牙買加約旦日本肯亞å‰çˆ¾å‰æ–¯æŸ¬åŸ”寨å‰é‡Œå·´æ–¯è‘›æ‘©è–克里斯多ç¦" + + "åŠå°¼ç¶­æ–¯åŒ—韓å—韓科å¨ç‰¹é–‹æ›¼ç¾¤å³¶å“ˆè–©å…‹å¯®åœ‹é»Žå·´å«©è–露西亞列支敦斯登斯里蘭å¡è³´æ¯”瑞亞賴索托立陶宛盧森堡拉脫維亞利比亞摩洛哥摩ç´å“¥æ‘©çˆ¾å¤šç“¦è’™ç‰¹å…§å“¥" + + "羅法屬è–馬ä¸é¦¬é”加斯加馬紹爾群島馬其頓馬利緬甸蒙å¤ä¸­è¯äººæ°‘共和國澳門特別行政å€åŒ—馬里亞ç´ç¾¤å³¶é¦¬ä¸å°¼å…‹å³¶èŒ…利塔尼亞蒙哲臘馬爾他模里西斯馬爾地夫" + + "馬拉å¨å¢¨è¥¿å“¥é¦¬ä¾†è¥¿äºžèŽ«ä¸‰æ¯”å…‹ç´ç±³æ¯”亞新喀里多尼亞尼日諾ç¦å…‹å³¶å¥ˆåŠåˆ©äºžå°¼åŠ æ‹‰ç“œè·è˜­æŒªå¨å°¼æ³Šçˆ¾è«¾é­¯ç´åŸƒå³¶ç´è¥¿è˜­é˜¿æ›¼çŽ‹åœ‹å·´æ‹¿é¦¬ç§˜é­¯æ³•å±¬çŽ»é‡Œå°¼è¥¿äºžå·´" + + "布亞ç´å¹¾å…§äºžè²å¾‹è³“巴基斯å¦æ³¢è˜­è–皮埃爾和密克隆群島皮特肯群島波多黎å„å·´å‹’æ–¯å¦è‡ªæ²»å€è‘¡è„牙帛ç‰å·´æ‹‰åœ­å¡é”大洋洲邊疆群島留尼旺羅馬尼亞塞爾維亞俄" + + "羅斯盧安é”æ²™çƒåœ°é˜¿æ‹‰ä¼¯ç´¢ç¾…門群島塞席爾蘇丹瑞典新加å¡è–赫勒拿島斯洛維尼亞冷岸åŠå¤®éº¥æ©ç¾¤å³¶æ–¯æ´›ä¼å…‹ç…å­å±±è–馬利諾塞內加爾索馬利亞蘇利å—å—蘇丹è–" + + "多美普林西比薩爾瓦多è·å±¬è–馬ä¸æ•˜åˆ©äºžå²ç“¦æ¿Ÿè˜­ç‰¹é‡Œæ–¯å¦é”庫尼亞群島土克斯åŠé–‹ç§‘斯群島查德法屬å—方屬地多哥泰國塔å‰å…‹æ‰˜å…‹å‹žç¾¤å³¶æ±å¸æ±¶åœŸåº«æ›¼çªå°¼è¥¿" + + "亞æ±åŠ åœŸè€³å…¶åƒé‡Œé”åŠæ‰˜å·´å“¥å瓦魯å°ç£å¦å°šå°¼äºžçƒå…‹è˜­çƒå¹²é”美國本土外å°å³¶å¶¼ç¾Žåœ‹çƒæ‹‰åœ­çƒèŒ²åˆ¥å…‹æ¢µè’‚岡è–文森åŠæ ¼ç‘žé‚£ä¸å§”內瑞拉英屬維京群島美屬維京" + + "群島越å—è¬é‚£æœç“¦åˆ©æ–¯å’Œå¯Œåœ–ç´ç¾¤å³¶è–©æ‘©äºžç§‘索沃葉門馬約特å—éžå°šæ¯”亞辛巴å¨æœªçŸ¥å€åŸŸä¸–ç•Œéžæ´²åŒ—美洲å—美洲大洋洲西éžä¸­ç¾Žæ±éžåŒ—éžä¸­éžéžæ´²å—部美洲北美" + + "加勒比海æ±äºžå—亞æ±å—亞å—æ­æ¾³æ´²èˆ‡ç´è¥¿è˜­ç¾Žæ‹‰å°¼è¥¿äºžå¯†å…‹ç¾…尼西亞玻里尼西亞亞洲中亞西亞æ­æ´²æ±æ­åŒ—æ­è¥¿æ­æ‹‰ä¸ç¾Žæ´²" + +var zhHantRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x000c, 0x0015, 0x002d, 0x0036, 0x004b, 0x0054, 0x0063, + 0x006f, 0x0078, 0x0081, 0x008a, 0x0099, 0x00a2, 0x00a8, 0x00b7, + 0x00c3, 0x00cf, 0x00ed, 0x00f6, 0x00ff, 0x0108, 0x0117, 0x0123, + 0x0129, 0x0132, 0x0138, 0x0144, 0x014d, 0x0153, 0x015f, 0x0171, + 0x0177, 0x0180, 0x0186, 0x018f, 0x0198, 0x01a4, 0x01ad, 0x01b6, + 0x01d1, 0x01e6, 0x01f5, 0x020a, 0x0210, 0x021c, 0x0228, 0x022e, + 0x0237, 0x024c, 0x0258, 0x0267, 0x0276, 0x027c, 0x0285, 0x028e, + 0x0297, 0x02a3, 0x02b2, 0x02b8, 0x02cd, 0x02d6, 0x02dc, 0x02e8, + // Entry 40 - 7F + 0x02fd, 0x030c, 0x0321, 0x032a, 0x0336, 0x033c, 0x0348, 0x0354, + 0x035d, 0x0369, 0x036f, 0x0375, 0x037b, 0x038a, 0x03a2, 0x03ae, + 0x03b4, 0x03ba, 0x03c0, 0x03cc, 0x03de, 0x03ed, 0x03f6, 0x03fc, + 0x0408, 0x0411, 0x041a, 0x0423, 0x042f, 0x043e, 0x0444, 0x0465, + 0x0471, 0x0477, 0x0486, 0x048f, 0x04b9, 0x04d7, 0x04e3, 0x04f2, + 0x04f8, 0x0501, 0x0510, 0x0516, 0x051f, 0x0528, 0x052e, 0x0534, + 0x0549, 0x0552, 0x0558, 0x055e, 0x0567, 0x0570, 0x0579, 0x057f, + 0x0585, 0x058b, 0x0597, 0x05a0, 0x05ac, 0x05b2, 0x05d0, 0x05d6, + // Entry 80 - BF + 0x05dc, 0x05e5, 0x05f1, 0x05fa, 0x0600, 0x0609, 0x0615, 0x0624, + 0x0630, 0x063c, 0x0645, 0x064e, 0x0657, 0x0663, 0x066c, 0x0675, + 0x067e, 0x068a, 0x0699, 0x06a8, 0x06b7, 0x06c6, 0x06cf, 0x06d5, + 0x06db, 0x06e1, 0x070b, 0x0720, 0x072f, 0x073e, 0x0747, 0x0750, + 0x075c, 0x0768, 0x0771, 0x077a, 0x0786, 0x0792, 0x079e, 0x07b0, + 0x07b6, 0x07c2, 0x07ce, 0x07da, 0x07e0, 0x07e6, 0x07ef, 0x07f5, + 0x07fe, 0x0807, 0x0813, 0x081c, 0x0822, 0x0837, 0x084c, 0x0855, + 0x0861, 0x0867, 0x0885, 0x0894, 0x08a0, 0x08b5, 0x08be, 0x08c4, + // Entry C0 - FF + 0x08cd, 0x08d3, 0x08e8, 0x08f1, 0x08fd, 0x0909, 0x0912, 0x091b, + 0x092d, 0x093c, 0x0945, 0x094b, 0x0951, 0x095a, 0x0969, 0x0978, + 0x0990, 0x099c, 0x09a5, 0x09b1, 0x09bd, 0x09c9, 0x09d2, 0x09db, + 0x09f0, 0x09fc, 0x0a0b, 0x0a14, 0x0a20, 0x0a3e, 0x0a59, 0x0a5f, + 0x0a71, 0x0a77, 0x0a7d, 0x0a86, 0x0a95, 0x0a9e, 0x0aa7, 0x0ab3, + 0x0ab9, 0x0ac2, 0x0ad7, 0x0ae0, 0x0ae6, 0x0af2, 0x0afb, 0x0b04, + 0x0b1c, 0x0b22, 0x0b2b, 0x0b37, 0x0b40, 0x0b58, 0x0b64, 0x0b76, + 0x0b88, 0x0b8e, 0x0b97, 0x0bb2, 0x0bbb, 0x0bc4, 0x0bca, 0x0bd3, + // Entry 100 - 13F + 0x0bd9, 0x0be2, 0x0beb, 0x0bf7, 0x0bfd, 0x0c03, 0x0c0c, 0x0c15, + 0x0c1e, 0x0c24, 0x0c2a, 0x0c30, 0x0c36, 0x0c3c, 0x0c48, 0x0c4e, + 0x0c54, 0x0c60, 0x0c66, 0x0c6c, 0x0c75, 0x0c7b, 0x0c8d, 0x0c9c, + 0x0cae, 0x0cbd, 0x0cc3, 0x0cc9, 0x0ccf, 0x0cd5, 0x0cdb, 0x0ce1, + 0x0ce7, 0x0cf3, +} // Size: 604 bytes + +var zuRegionStr string = "" + // Size: 3556 bytes + "i-Ascension Islandi-Andorrai-United Arab Emiratesi-Afghanistani-Antigua " + + "and Barbudai-Anguillai-Albaniai-Armeniai-Angolai-Antarcticai-Argentinai-" + + "American Samoai-Austriai-Australiai-Arubai-Ã…land Islandsi-Azerbaijani-Bo" + + "snia ne-Herzegovinai-Barbadosi-Bangladeshi-Belgiumi-Burkina Fasoi-Bulgar" + + "iai-Bahraini-Burundii-Benini-Saint Barthélemyi-Bermudai-Bruneii-Boliviai" + + "-Caribbean Netherlandsi-Brazili-Bahamasi-Bhutani-Bouvet IslandiBotswanai" + + "-Belarusi-Belizei-Canadai-Cocos (Keeling) Islandsi-Congo - Kinshasai-Cen" + + "tral African Republici-Congo - Brazzavillei-Switzerlandi-Côte d’Ivoirei-" + + "Cook Islandsi-Chilei-Camerooni-Chinai-Colombiai-Clipperton Islandi-Costa" + + " Ricai-Cubai-Cape Verdei-Curaçaoi-Christmas Islandi-Cyprusi-Czech Republ" + + "ici-Germanyi-Diego Garciai-Djiboutii-Denmarki-Dominicai-Dominican Republ" + + "ici-Algeriai-Cueta ne-Melillai-Ecuadori-Estoniai-Egypti-Western Saharai-" + + "Eritreai-Spaini-Ethiopiai-European Unioni-Finlandi-Fijii-Falkland Island" + + "si-Micronesiai-Faroe Islandsi-Francei-Gaboni-United Kingdomi-Grenadai-Ge" + + "orgiai-French Guianai-Guernseyi-Ghanai-Gibraltari-Greenlandi-Gambiai-Gui" + + "neai-Guadeloupei-Equatorial Guineai-Greecei-South Georgia ne-South Sandw" + + "ich Islandsi-Guatemalai-Guami-Guinea-Bissaui-Guyanai-Hong Kong SAR China" + + "i-Heard Island ne-McDonald Islandsi-Hondurasi-Croatiai-Haitii-Hungaryi-C" + + "anary Islandsi-Indonesiai-Irelandkwa-Israeli-Isle of Mani-Indiai-British" + + " Indian Ocean Territoryi-Iraqi-Irani-Icelandi-Italyi-Jerseyi-Jamaicai-Jo" + + "rdani-Japani-Kenyai-Kyrgyzstani-Cambodiai-Kiribatii-Comorosi-Saint Kitts" + + " ne-Nevisi-North Koreai-South Koreai-Kuwaiti-Cayman Islandsi-Kazakhstani" + + "-Laosi-Lebanoni-Saint Luciai-Liechtensteini-Sri Lankai-LiberiaiLesothoi-" + + "Lithuaniai-Luxembourgi-Latviai-Libyai-Moroccoi-Monacoi-Moldovai-Monteneg" + + "roi-Saint Martini-Madagascari-Marshall Islandsi-MacedoniaiMalii-Myanmar " + + "(Burma)i-Mongoliai-Macau SAR Chinai-Northern Mariana Islandsi-Martinique" + + "i-Mauritaniai-Montserrati-Maltai-Mauritiusi-MaldivesiMalawii-Mexicoi-Mal" + + "aysiai-Mozambiquei-Namibiai-New Caledoniai-Nigeri-Norfolk Islandi-Nigeri" + + "ai-Nicaraguai-Netherlandsi-Norwayi-Nepali-Naurui-Niuei-New Zealandi-Oman" + + "i-Panamai-Perui-French Polynesiai-Papua New Guineai-Philippinesi-Pakista" + + "ni-Polandi-Saint Pierre kanye ne-Miqueloni-Pitcairn Islandsi-Puerto Rico" + + "i-Palestinian Territoriesi-Portugali-Palaui-Paraguayi-Qatari-Outlying Oc" + + "eaniai-Réunioni-Romaniai-Serbiai-Russiai-Rwandai-Saudi Arabiai-Solomon I" + + "slandsi-Seychellesi-Sudani-Swedeni-Singaporei-Saint Helenai-Sloveniai-Sv" + + "albard ne-Jan Mayeni-Slovakiai-Sierra Leonei-San Marinoi-Senegali-Somali" + + "ai-Surinamei-South Sudani-São Tomé kanye ne-Príncipei-El Salvadori-Sint " + + "Maarteni-Syriai-Swazilandi-Tristan da Cunhai-Turks and Caicos Islandsi-C" + + "hadi-French Southern Territoriesi-Togoi-Thailandi-Tajikistani-Tokelaui-T" + + "imor-Lestei-Turkmenistani-Tunisiai-Tongai-Turkeyi-Trinidad ne-Tobagoi-Tu" + + "valui-Taiwani-Tanzaniai-Ukrainei-Ugandai-U.S. Minor Outlying Islandsi-Un" + + "ited Statesi-Uruguayi-Uzbekistani-Vatican Cityi-Saint Vincent ne-Grenadi" + + "nesi-Venezuelai-British Virgin Islandsi-U.S. Virgin Islandsi-Vietnami-Va" + + "nuatui-Wallis ne-Futunai-Samoai-Kosovoi-Yemeni-Mayottei-South Africai-Za" + + "mbiaiZimbabweiSifunda esingaziwaumhlabai-Africai-North Americai-South Am" + + "ericai-Oceaniai-Western Africai-Central Americai-Eastern Africai-Norther" + + "n Africai-Middle Africai-Southern Africai-Americasi-Northern Americai-Ca" + + "ribbeani-Eastern Asiai-Southern Asiai-South-Eastern Asiai-Southern Europ" + + "ei-Australasiai-Melanesiai-Micronesian Regioni-Polynesiai-Asiai-Central " + + "Asiai-Western Asiai-Europei-Eastern Europei-Northern Europei-Western Eur" + + "opei-Latin America" + +var zuRegionIdx = []uint16{ // 290 elements + // Entry 0 - 3F + 0x0000, 0x0012, 0x001b, 0x0031, 0x003e, 0x0053, 0x005d, 0x0066, + 0x006f, 0x0077, 0x0083, 0x008e, 0x009e, 0x00a7, 0x00b2, 0x00b9, + 0x00c9, 0x00d5, 0x00ec, 0x00f6, 0x0102, 0x010b, 0x0119, 0x0123, + 0x012c, 0x0135, 0x013c, 0x014f, 0x0158, 0x0160, 0x0169, 0x0180, + 0x0188, 0x0191, 0x0199, 0x01a8, 0x01b1, 0x01ba, 0x01c2, 0x01ca, + 0x01e3, 0x01f5, 0x020f, 0x0224, 0x0231, 0x0243, 0x0251, 0x0258, + 0x0262, 0x0269, 0x0273, 0x0286, 0x0292, 0x0298, 0x02a4, 0x02ae, + 0x02c0, 0x02c8, 0x02d8, 0x02e1, 0x02ef, 0x02f9, 0x0302, 0x030c, + // Entry 40 - 7F + 0x0320, 0x0329, 0x033b, 0x0344, 0x034d, 0x0354, 0x0364, 0x036d, + 0x0374, 0x037e, 0x038e, 0x0397, 0x039d, 0x03af, 0x03bb, 0x03ca, + 0x03d2, 0x03d9, 0x03e9, 0x03f2, 0x03fb, 0x040a, 0x0414, 0x041b, + 0x0426, 0x0431, 0x0439, 0x0441, 0x044d, 0x0460, 0x0468, 0x0491, + 0x049c, 0x04a2, 0x04b1, 0x04b9, 0x04ce, 0x04f0, 0x04fa, 0x0503, + 0x050a, 0x0513, 0x0523, 0x052e, 0x0537, 0x0541, 0x054e, 0x0555, + 0x0575, 0x057b, 0x0581, 0x058a, 0x0591, 0x0599, 0x05a2, 0x05aa, + 0x05b1, 0x05b8, 0x05c4, 0x05ce, 0x05d8, 0x05e1, 0x05f7, 0x0604, + // Entry 80 - BF + 0x0611, 0x0619, 0x0629, 0x0635, 0x063b, 0x0644, 0x0651, 0x0660, + 0x066b, 0x0674, 0x067c, 0x0687, 0x0693, 0x069b, 0x06a2, 0x06ab, + 0x06b3, 0x06bc, 0x06c8, 0x06d6, 0x06e2, 0x06f4, 0x06ff, 0x0704, + 0x0715, 0x071f, 0x0730, 0x074a, 0x0756, 0x0762, 0x076e, 0x0775, + 0x0780, 0x078a, 0x0791, 0x0799, 0x07a3, 0x07af, 0x07b8, 0x07c7, + 0x07ce, 0x07de, 0x07e7, 0x07f2, 0x07ff, 0x0807, 0x080e, 0x0815, + 0x081b, 0x0828, 0x082e, 0x0836, 0x083c, 0x084e, 0x0860, 0x086d, + 0x0877, 0x087f, 0x089f, 0x08b1, 0x08be, 0x08d7, 0x08e1, 0x08e8, + // Entry C0 - FF + 0x08f2, 0x08f9, 0x090b, 0x0915, 0x091e, 0x0926, 0x092e, 0x0936, + 0x0944, 0x0955, 0x0961, 0x0968, 0x0970, 0x097b, 0x0989, 0x0993, + 0x09aa, 0x09b4, 0x09c2, 0x09ce, 0x09d7, 0x09e0, 0x09ea, 0x09f7, + 0x0a16, 0x0a23, 0x0a31, 0x0a38, 0x0a43, 0x0a55, 0x0a6f, 0x0a75, + 0x0a92, 0x0a98, 0x0aa2, 0x0aae, 0x0ab7, 0x0ac4, 0x0ad2, 0x0adb, + 0x0ae2, 0x0aea, 0x0afe, 0x0b06, 0x0b0e, 0x0b18, 0x0b21, 0x0b29, + 0x0b46, 0x0b55, 0x0b5e, 0x0b6a, 0x0b78, 0x0b95, 0x0ba0, 0x0bb8, + 0x0bcd, 0x0bd6, 0x0bdf, 0x0bf1, 0x0bf8, 0x0c00, 0x0c07, 0x0c10, + // Entry 100 - 13F + 0x0c1e, 0x0c26, 0x0c2f, 0x0c42, 0x0c49, 0x0c51, 0x0c60, 0x0c6f, + 0x0c78, 0x0c88, 0x0c99, 0x0ca9, 0x0cba, 0x0cc9, 0x0cda, 0x0ce4, + 0x0cf6, 0x0d01, 0x0d0f, 0x0d1e, 0x0d32, 0x0d43, 0x0d50, 0x0d5b, + 0x0d6f, 0x0d7a, 0x0d80, 0x0d8e, 0x0d9c, 0x0da4, 0x0db4, 0x0dc5, + 0x0dd5, 0x0de4, +} // Size: 604 bytes + +// Total size for region: 808304 bytes (808 KB) + +const numSupported = 220 + +var supported string = "" + // Size: 843 bytes + "af|agq|ak|am|ar|ar-EG|as|asa|ast|az|az-Cyrl|bas|be|bem|bez|bg|bm|bn|bo|b" + + "o-IN|br|brx|bs|bs-Cyrl|ca|ce|cgg|chr|ckb|cs|cy|da|dav|de|de-CH|dje|dsb|d" + + "ua|dyo|dz|ebu|ee|el|en|en-AU|en-GB|en-NZ|eo|es|es-419|es-CL|es-MX|et|eu|" + + "ewo|fa|fa-AF|ff|fi|fil|fo|fr|fr-CA|fr-CH|fur|fy|ga|gd|gl|gsw|gu|guz|gv|h" + + "a|haw|he|hi|hr|hsb|hu|hy|id|ig|ii|is|it|ja|jgo|jmc|ka|kab|kam|kde|kea|kh" + + "q|ki|kk|kkj|kl|kln|km|kn|ko|kok|ks|ksb|ksf|ksh|kw|ky|lag|lb|lg|lkt|ln|lo" + + "|lrc|lt|lu|luo|luy|lv|mas|mer|mfe|mg|mgh|mgo|mk|ml|mn|mr|ms|mt|mua|my|mz" + + "n|naq|nd|ne|nl|nmg|nn|nnh|no|nus|nyn|om|or|os|pa|pa-Arab|pl|prg|ps|pt|pt" + + "-PT|qu|rm|rn|ro|rof|ru|rw|rwk|sah|saq|sbp|se|se-FI|seh|ses|sg|shi|shi-La" + + "tn|si|sk|sl|smn|sn|so|sq|sr|sr-Latn|sv|sv-FI|sw|sw-CD|ta|te|teo|th|ti|to" + + "|tr|twq|tzm|ug|uk|ur|ur-IN|uz|uz-Arab|uz-Cyrl|vai|vai-Latn|vi|vun|wae|xo" + + "g|yav|yi|yo|yo-BJ|yue|zgh|zh|zh-Hant|zh-Hant-HK|zu|" + +// Dictionary entries of frequent languages +var ( + af = Dictionary{ // af + nil, + header{afLangStr, afLangIdx}, + header{afScriptStr, afScriptIdx}, + header{afRegionStr, afRegionIdx}, + } + am = Dictionary{ // am + nil, + header{amLangStr, amLangIdx}, + header{amScriptStr, amScriptIdx}, + header{amRegionStr, amRegionIdx}, + } + ar = Dictionary{ // ar + nil, + header{arLangStr, arLangIdx}, + header{arScriptStr, arScriptIdx}, + header{arRegionStr, arRegionIdx}, + } + az = Dictionary{ // az + nil, + header{azLangStr, azLangIdx}, + header{azScriptStr, azScriptIdx}, + header{azRegionStr, azRegionIdx}, + } + bg = Dictionary{ // bg + nil, + header{bgLangStr, bgLangIdx}, + header{bgScriptStr, bgScriptIdx}, + header{bgRegionStr, bgRegionIdx}, + } + bn = Dictionary{ // bn + nil, + header{bnLangStr, bnLangIdx}, + header{bnScriptStr, bnScriptIdx}, + header{bnRegionStr, bnRegionIdx}, + } + ca = Dictionary{ // ca + nil, + header{caLangStr, caLangIdx}, + header{caScriptStr, caScriptIdx}, + header{caRegionStr, caRegionIdx}, + } + cs = Dictionary{ // cs + nil, + header{csLangStr, csLangIdx}, + header{csScriptStr, csScriptIdx}, + header{csRegionStr, csRegionIdx}, + } + da = Dictionary{ // da + nil, + header{daLangStr, daLangIdx}, + header{daScriptStr, daScriptIdx}, + header{daRegionStr, daRegionIdx}, + } + de = Dictionary{ // de + nil, + header{deLangStr, deLangIdx}, + header{deScriptStr, deScriptIdx}, + header{deRegionStr, deRegionIdx}, + } + el = Dictionary{ // el + nil, + header{elLangStr, elLangIdx}, + header{elScriptStr, elScriptIdx}, + header{elRegionStr, elRegionIdx}, + } + en = Dictionary{ // en + nil, + header{enLangStr, enLangIdx}, + header{enScriptStr, enScriptIdx}, + header{enRegionStr, enRegionIdx}, + } + enGB = Dictionary{ // en-GB + &en, + header{enGBLangStr, enGBLangIdx}, + header{enGBScriptStr, enGBScriptIdx}, + header{enGBRegionStr, enGBRegionIdx}, + } + es = Dictionary{ // es + nil, + header{esLangStr, esLangIdx}, + header{esScriptStr, esScriptIdx}, + header{esRegionStr, esRegionIdx}, + } + es419 = Dictionary{ // es-419 + &es, + header{es419LangStr, es419LangIdx}, + header{es419ScriptStr, es419ScriptIdx}, + header{es419RegionStr, es419RegionIdx}, + } + et = Dictionary{ // et + nil, + header{etLangStr, etLangIdx}, + header{etScriptStr, etScriptIdx}, + header{etRegionStr, etRegionIdx}, + } + fa = Dictionary{ // fa + nil, + header{faLangStr, faLangIdx}, + header{faScriptStr, faScriptIdx}, + header{faRegionStr, faRegionIdx}, + } + fi = Dictionary{ // fi + nil, + header{fiLangStr, fiLangIdx}, + header{fiScriptStr, fiScriptIdx}, + header{fiRegionStr, fiRegionIdx}, + } + fil = Dictionary{ // fil + nil, + header{filLangStr, filLangIdx}, + header{filScriptStr, filScriptIdx}, + header{filRegionStr, filRegionIdx}, + } + fr = Dictionary{ // fr + nil, + header{frLangStr, frLangIdx}, + header{frScriptStr, frScriptIdx}, + header{frRegionStr, frRegionIdx}, + } + frCA = Dictionary{ // fr-CA + &fr, + header{frCALangStr, frCALangIdx}, + header{frCAScriptStr, frCAScriptIdx}, + header{frCARegionStr, frCARegionIdx}, + } + gu = Dictionary{ // gu + nil, + header{guLangStr, guLangIdx}, + header{guScriptStr, guScriptIdx}, + header{guRegionStr, guRegionIdx}, + } + he = Dictionary{ // he + nil, + header{heLangStr, heLangIdx}, + header{heScriptStr, heScriptIdx}, + header{heRegionStr, heRegionIdx}, + } + hi = Dictionary{ // hi + nil, + header{hiLangStr, hiLangIdx}, + header{hiScriptStr, hiScriptIdx}, + header{hiRegionStr, hiRegionIdx}, + } + hr = Dictionary{ // hr + nil, + header{hrLangStr, hrLangIdx}, + header{hrScriptStr, hrScriptIdx}, + header{hrRegionStr, hrRegionIdx}, + } + hu = Dictionary{ // hu + nil, + header{huLangStr, huLangIdx}, + header{huScriptStr, huScriptIdx}, + header{huRegionStr, huRegionIdx}, + } + hy = Dictionary{ // hy + nil, + header{hyLangStr, hyLangIdx}, + header{hyScriptStr, hyScriptIdx}, + header{hyRegionStr, hyRegionIdx}, + } + id = Dictionary{ // id + nil, + header{idLangStr, idLangIdx}, + header{idScriptStr, idScriptIdx}, + header{idRegionStr, idRegionIdx}, + } + is = Dictionary{ // is + nil, + header{isLangStr, isLangIdx}, + header{isScriptStr, isScriptIdx}, + header{isRegionStr, isRegionIdx}, + } + it = Dictionary{ // it + nil, + header{itLangStr, itLangIdx}, + header{itScriptStr, itScriptIdx}, + header{itRegionStr, itRegionIdx}, + } + ja = Dictionary{ // ja + nil, + header{jaLangStr, jaLangIdx}, + header{jaScriptStr, jaScriptIdx}, + header{jaRegionStr, jaRegionIdx}, + } + ka = Dictionary{ // ka + nil, + header{kaLangStr, kaLangIdx}, + header{kaScriptStr, kaScriptIdx}, + header{kaRegionStr, kaRegionIdx}, + } + kk = Dictionary{ // kk + nil, + header{kkLangStr, kkLangIdx}, + header{kkScriptStr, kkScriptIdx}, + header{kkRegionStr, kkRegionIdx}, + } + km = Dictionary{ // km + nil, + header{kmLangStr, kmLangIdx}, + header{kmScriptStr, kmScriptIdx}, + header{kmRegionStr, kmRegionIdx}, + } + kn = Dictionary{ // kn + nil, + header{knLangStr, knLangIdx}, + header{knScriptStr, knScriptIdx}, + header{knRegionStr, knRegionIdx}, + } + ko = Dictionary{ // ko + nil, + header{koLangStr, koLangIdx}, + header{koScriptStr, koScriptIdx}, + header{koRegionStr, koRegionIdx}, + } + ky = Dictionary{ // ky + nil, + header{kyLangStr, kyLangIdx}, + header{kyScriptStr, kyScriptIdx}, + header{kyRegionStr, kyRegionIdx}, + } + lo = Dictionary{ // lo + nil, + header{loLangStr, loLangIdx}, + header{loScriptStr, loScriptIdx}, + header{loRegionStr, loRegionIdx}, + } + lt = Dictionary{ // lt + nil, + header{ltLangStr, ltLangIdx}, + header{ltScriptStr, ltScriptIdx}, + header{ltRegionStr, ltRegionIdx}, + } + lv = Dictionary{ // lv + nil, + header{lvLangStr, lvLangIdx}, + header{lvScriptStr, lvScriptIdx}, + header{lvRegionStr, lvRegionIdx}, + } + mk = Dictionary{ // mk + nil, + header{mkLangStr, mkLangIdx}, + header{mkScriptStr, mkScriptIdx}, + header{mkRegionStr, mkRegionIdx}, + } + ml = Dictionary{ // ml + nil, + header{mlLangStr, mlLangIdx}, + header{mlScriptStr, mlScriptIdx}, + header{mlRegionStr, mlRegionIdx}, + } + mn = Dictionary{ // mn + nil, + header{mnLangStr, mnLangIdx}, + header{mnScriptStr, mnScriptIdx}, + header{mnRegionStr, mnRegionIdx}, + } + mr = Dictionary{ // mr + nil, + header{mrLangStr, mrLangIdx}, + header{mrScriptStr, mrScriptIdx}, + header{mrRegionStr, mrRegionIdx}, + } + ms = Dictionary{ // ms + nil, + header{msLangStr, msLangIdx}, + header{msScriptStr, msScriptIdx}, + header{msRegionStr, msRegionIdx}, + } + my = Dictionary{ // my + nil, + header{myLangStr, myLangIdx}, + header{myScriptStr, myScriptIdx}, + header{myRegionStr, myRegionIdx}, + } + ne = Dictionary{ // ne + nil, + header{neLangStr, neLangIdx}, + header{neScriptStr, neScriptIdx}, + header{neRegionStr, neRegionIdx}, + } + nl = Dictionary{ // nl + nil, + header{nlLangStr, nlLangIdx}, + header{nlScriptStr, nlScriptIdx}, + header{nlRegionStr, nlRegionIdx}, + } + no = Dictionary{ // no + nil, + header{noLangStr, noLangIdx}, + header{noScriptStr, noScriptIdx}, + header{noRegionStr, noRegionIdx}, + } + pa = Dictionary{ // pa + nil, + header{paLangStr, paLangIdx}, + header{paScriptStr, paScriptIdx}, + header{paRegionStr, paRegionIdx}, + } + pl = Dictionary{ // pl + nil, + header{plLangStr, plLangIdx}, + header{plScriptStr, plScriptIdx}, + header{plRegionStr, plRegionIdx}, + } + pt = Dictionary{ // pt + nil, + header{ptLangStr, ptLangIdx}, + header{ptScriptStr, ptScriptIdx}, + header{ptRegionStr, ptRegionIdx}, + } + ptPT = Dictionary{ // pt-PT + &pt, + header{ptPTLangStr, ptPTLangIdx}, + header{ptPTScriptStr, ptPTScriptIdx}, + header{ptPTRegionStr, ptPTRegionIdx}, + } + ro = Dictionary{ // ro + nil, + header{roLangStr, roLangIdx}, + header{roScriptStr, roScriptIdx}, + header{roRegionStr, roRegionIdx}, + } + ru = Dictionary{ // ru + nil, + header{ruLangStr, ruLangIdx}, + header{ruScriptStr, ruScriptIdx}, + header{ruRegionStr, ruRegionIdx}, + } + si = Dictionary{ // si + nil, + header{siLangStr, siLangIdx}, + header{siScriptStr, siScriptIdx}, + header{siRegionStr, siRegionIdx}, + } + sk = Dictionary{ // sk + nil, + header{skLangStr, skLangIdx}, + header{skScriptStr, skScriptIdx}, + header{skRegionStr, skRegionIdx}, + } + sl = Dictionary{ // sl + nil, + header{slLangStr, slLangIdx}, + header{slScriptStr, slScriptIdx}, + header{slRegionStr, slRegionIdx}, + } + sq = Dictionary{ // sq + nil, + header{sqLangStr, sqLangIdx}, + header{sqScriptStr, sqScriptIdx}, + header{sqRegionStr, sqRegionIdx}, + } + sr = Dictionary{ // sr + nil, + header{srLangStr, srLangIdx}, + header{srScriptStr, srScriptIdx}, + header{srRegionStr, srRegionIdx}, + } + srLatn = Dictionary{ // sr-Latn + nil, + header{srLatnLangStr, srLatnLangIdx}, + header{srLatnScriptStr, srLatnScriptIdx}, + header{srLatnRegionStr, srLatnRegionIdx}, + } + sv = Dictionary{ // sv + nil, + header{svLangStr, svLangIdx}, + header{svScriptStr, svScriptIdx}, + header{svRegionStr, svRegionIdx}, + } + sw = Dictionary{ // sw + nil, + header{swLangStr, swLangIdx}, + header{swScriptStr, swScriptIdx}, + header{swRegionStr, swRegionIdx}, + } + ta = Dictionary{ // ta + nil, + header{taLangStr, taLangIdx}, + header{taScriptStr, taScriptIdx}, + header{taRegionStr, taRegionIdx}, + } + te = Dictionary{ // te + nil, + header{teLangStr, teLangIdx}, + header{teScriptStr, teScriptIdx}, + header{teRegionStr, teRegionIdx}, + } + th = Dictionary{ // th + nil, + header{thLangStr, thLangIdx}, + header{thScriptStr, thScriptIdx}, + header{thRegionStr, thRegionIdx}, + } + tr = Dictionary{ // tr + nil, + header{trLangStr, trLangIdx}, + header{trScriptStr, trScriptIdx}, + header{trRegionStr, trRegionIdx}, + } + uk = Dictionary{ // uk + nil, + header{ukLangStr, ukLangIdx}, + header{ukScriptStr, ukScriptIdx}, + header{ukRegionStr, ukRegionIdx}, + } + ur = Dictionary{ // ur + nil, + header{urLangStr, urLangIdx}, + header{urScriptStr, urScriptIdx}, + header{urRegionStr, urRegionIdx}, + } + uz = Dictionary{ // uz + nil, + header{uzLangStr, uzLangIdx}, + header{uzScriptStr, uzScriptIdx}, + header{uzRegionStr, uzRegionIdx}, + } + vi = Dictionary{ // vi + nil, + header{viLangStr, viLangIdx}, + header{viScriptStr, viScriptIdx}, + header{viRegionStr, viRegionIdx}, + } + zh = Dictionary{ // zh + nil, + header{zhLangStr, zhLangIdx}, + header{zhScriptStr, zhScriptIdx}, + header{zhRegionStr, zhRegionIdx}, + } + zhHant = Dictionary{ // zh-Hant + nil, + header{zhHantLangStr, zhHantLangIdx}, + header{zhHantScriptStr, zhHantScriptIdx}, + header{zhHantRegionStr, zhHantRegionIdx}, + } + zu = Dictionary{ // zu + nil, + header{zuLangStr, zuLangIdx}, + header{zuScriptStr, zuScriptIdx}, + header{zuRegionStr, zuRegionIdx}, + } +) + +// Total size for 79 entries: 10112 bytes (10 KB) + +// Number of keys: 219 +var ( + selfIndex = tagIndex{ + "afakamarasazbebgbmbnbobrbscacecscydadedzeeeleneoeseteufafffifofrfygagdgl" + + "gugvhahehihrhuhyidigiiisitjakakikkklkmknkokskwkylblglnloltlulvmgmkml" + + "mnmrmsmtmyndnenlnnnoomorospaplpsptqurmrnrorurwsesgsiskslsnsosqsrsvsw" + + "tatethtitotrugukuruzviyiyozhzu", + "agqasaastbasbembezbrxcggchrckbdavdjedsbduadyoebuewofilfurgswguzhawhsbjgo" + + "jmckabkamkdekeakhqkkjklnkokksbksfkshlaglktlrcluoluymasmermfemghmgomu" + + "amznnaqnnhnusnynprgrofrwksahsaqsbpsehsesshismnteotwqtzmvaivunwaexogy" + + "avyuezgh", + "", + } + selfTagsLong = []string{ // 28 elements + "ar-001", + "az-Cyrl", + "bs-Cyrl", + "de-AT", + "de-CH", + "en-AU", + "en-CA", + "en-GB", + "en-US", + "es-419", + "es-ES", + "es-MX", + "fa-AF", + "fr-CA", + "fr-CH", + "nl-BE", + "pa-Arab", + "pt-BR", + "pt-PT", + "ro-MD", + "shi-Latn", + "sr-Latn", + "sw-CD", + "uz-Arab", + "uz-Cyrl", + "vai-Latn", + "zh-Hans", + "zh-Hant", + } +) + +var selfHeaders = [1]header{ + { // mul + "AfrikaansAkanአማርኛالعربيةঅসমীয়াazÉ™rbaycan diliбеларуÑкаÑбългарÑкиbamanak" + + "anবাংলাབོད་སà¾à½‘་brezhonegbosanskicatalàнохчийнÄeÅ¡tinaCymraegdanskDeut" + + "schརྫོང་à½EÊ‹egbeΕλληνικάEnglishesperantoespañoleestieuskaraÙارسیPulaa" + + "rsuomiføroysktfrançaisWest-FryskGaeilgeGàidhliggalegoગà«àªœàª°àª¾àª¤à«€GaelgHau" + + "saעבריתहिनà¥à¤¦à¥€hrvatskimagyarÕ°Õ¡ÕµÕ¥Ö€Õ¥Õ¶IndonesiaIgboꆈꌠꉙíslenskaitaliano日本" + + "語ქáƒáƒ áƒ—ულიGikuyuқазақ тіліkalaallisutážáŸ’មែរಕನà³à²¨à²¡í•œêµ­ì–´Ú©Ù²Ø´Ùرkernewekкыргы" + + "зчаLëtzebuergeschLugandalingálaລາວlietuviųTshilubalatvieÅ¡uMalagasyм" + + "акедонÑкиമലയാളംмонголमराठीBahasa MelayuMaltiဗမာisiNdebeleनेपालीNede" + + "rlandsnynorsknorsk bokmÃ¥lOromooଓଡ଼ିଆиронਪੰਜਾਬੀpolskiپښتوportuguêsRun" + + "asimirumantschIkirundiromânăруÑÑкийKinyarwandadavvisámegiellaSängöසි" + + "ංහලslovenÄinaslovenÅ¡ÄinachiShonaSoomaalishqipÑрпÑкиsvenskaKiswahil" + + "iதமிழà¯à°¤à±†à°²à±à°—à±à¹„ทยትáŒáˆ­áŠ›lea fakatongaTürkçeئۇيغۇرچەукраїнÑькаاردوo‘zbekTi" + + "ếng ViệtייִדישÈdè Yorùbá中文isiZuluAghemKipareasturianuÆàsàaIchibemb" + + "aHibenaबड़ोRukigaá£áŽ³áŽ©Ú©ÙˆØ±Ø¯ÛŒÛŒ ناوەندیKitaitaZarmaciinedolnoserbšćinaduá" + + "lájoolaKÄ©embuewondoFilipinofurlanSchwiizertüütschEkegusiiʻŌlelo Hawa" + + "iÊ»ihornjoserbšćinaNdaꞌaKimachameTaqbaylitKikambaChimakondekabuverdia" + + "nuKoyra ciinikakÉ”KalenjinकोंकणीKishambaarikpaKölschKɨlaangiLakȟólʼiy" + + "apiلۊری شومالیDholuoLuluhiaMaaKÄ©mÄ©rÅ©kreol morisienMakuametaʼMUNDAŊما" + + "زرونیKhoekhoegowabShwóŋò ngiembɔɔnThok NathRunyankoreprÅ«siskanKihor" + + "omboKiruwaÑаха тылаKisampurIshisangusenaKoyraboro senniⵜⴰⵛâµâµƒâµ‰âµœanarâš" + + "kielâKitesoTasawaq senniTamaziÉ£t n laá¹­laṣꕙꔤKyivunjoWalserOlusoganuas" + + "ue粵語ⵜⴰⵎⴰⵣⵉⵖⵜالعربية الرسمية الحديثةазәрбајҹан дилибоÑанÑкиÖsterreich" + + "isches DeutschSchweizer HochdeutschAustralian EnglishCanadian Englis" + + "hBritish EnglishAmerican Englishespañol latinoamericanoespañol de Es" + + "pañaespañol de Méxicoدریfrançais canadienfrançais suisseVlaamsپنجابی" + + "português do Brasilportuguês europeumoldoveneascăTashelḥiytSrpskohrv" + + "atskiKiswahili ya KongoاوزبیکЎзбекVai简体中文ç¹é«”中文", + []uint16{ // 220 elements + // Entry 0 - 3F + 0x0000, 0x0009, 0x000d, 0x0019, 0x0027, 0x003c, 0x004c, 0x0060, + 0x0072, 0x007b, 0x008a, 0x00a2, 0x00ab, 0x00b3, 0x00ba, 0x00c8, + 0x00d1, 0x00d8, 0x00dd, 0x00e4, 0x00f6, 0x00fd, 0x010d, 0x0114, + 0x011d, 0x0125, 0x012a, 0x0131, 0x013b, 0x0141, 0x0146, 0x014f, + 0x0158, 0x0162, 0x0169, 0x0172, 0x0178, 0x018d, 0x0192, 0x0197, + 0x01a1, 0x01b3, 0x01bb, 0x01c1, 0x01cf, 0x01d8, 0x01dc, 0x01e5, + 0x01ee, 0x01f6, 0x01ff, 0x0214, 0x021a, 0x022d, 0x0238, 0x0247, + 0x0256, 0x025f, 0x0269, 0x0271, 0x0281, 0x0290, 0x0297, 0x029f, + // Entry 40 - 7F + 0x02a8, 0x02b1, 0x02b9, 0x02c2, 0x02ca, 0x02de, 0x02f0, 0x02fc, + 0x030b, 0x0318, 0x031d, 0x0326, 0x0330, 0x0342, 0x034c, 0x0353, + 0x0360, 0x0366, 0x0375, 0x037d, 0x038f, 0x0395, 0x039d, 0x03a7, + 0x03af, 0x03b8, 0x03c0, 0x03c8, 0x03d6, 0x03e1, 0x03f1, 0x03f8, + 0x0407, 0x0412, 0x041f, 0x0427, 0x042f, 0x0434, 0x0440, 0x0447, + 0x0450, 0x045f, 0x0471, 0x047a, 0x0486, 0x0493, 0x049b, 0x04ab, + 0x04bf, 0x04c7, 0x04cf, 0x04dd, 0x04e9, 0x04f7, 0x04fd, 0x0504, + 0x0509, 0x050f, 0x0518, 0x0520, 0x0529, 0x052f, 0x053b, 0x0541, + // Entry 80 - BF + 0x054a, 0x0565, 0x056c, 0x0576, 0x0586, 0x058d, 0x0592, 0x0599, + 0x059f, 0x05a7, 0x05ad, 0x05bf, 0x05c7, 0x05d8, 0x05e9, 0x05f0, + 0x05f9, 0x0602, 0x0609, 0x0613, 0x061f, 0x062a, 0x062f, 0x0637, + 0x0649, 0x0652, 0x0657, 0x065e, 0x0667, 0x0676, 0x068b, 0x0691, + 0x0698, 0x069b, 0x06a4, 0x06b2, 0x06b7, 0x06bd, 0x06c4, 0x06d2, + 0x06df, 0x06f4, 0x06fd, 0x0707, 0x0711, 0x071a, 0x0720, 0x0731, + 0x0739, 0x0742, 0x0746, 0x0755, 0x076a, 0x0778, 0x077e, 0x078b, + 0x07a1, 0x07a7, 0x07af, 0x07b5, 0x07bc, 0x07c2, 0x07c8, 0x07e0, + // Entry C0 - FF + 0x080c, 0x0829, 0x0839, 0x0852, 0x0867, 0x0879, 0x0889, 0x0898, + 0x08a8, 0x08c0, 0x08d3, 0x08e6, 0x08ec, 0x08fe, 0x090e, 0x0914, + 0x0920, 0x0934, 0x0946, 0x0954, 0x0960, 0x096e, 0x0980, 0x098c, + 0x0996, 0x0999, 0x09a5, 0x09b1, + }, + }, +} + +// Total size for self: 4123 bytes (4 KB) + +// Total table size 1960456 bytes (1914KiB); checksum: BF1D5E0D diff --git a/vendor/golang.org/x/text/language/examples_test.go b/vendor/golang.org/x/text/language/examples_test.go new file mode 100644 index 00000000..05e712d7 --- /dev/null +++ b/vendor/golang.org/x/text/language/examples_test.go @@ -0,0 +1,396 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language_test + +import ( + "fmt" + + "golang.org/x/text/language" +) + +func ExampleCanonType() { + p := func(id string) { + fmt.Printf("Default(%s) -> %s\n", id, language.Make(id)) + fmt.Printf("BCP47(%s) -> %s\n", id, language.BCP47.Make(id)) + fmt.Printf("Macro(%s) -> %s\n", id, language.Macro.Make(id)) + fmt.Printf("All(%s) -> %s\n", id, language.All.Make(id)) + } + p("en-Latn") + p("sh") + p("zh-cmn") + p("bjd") + p("iw-Latn-fonipa-u-cu-usd") + // Output: + // Default(en-Latn) -> en-Latn + // BCP47(en-Latn) -> en + // Macro(en-Latn) -> en-Latn + // All(en-Latn) -> en + // Default(sh) -> sr-Latn + // BCP47(sh) -> sh + // Macro(sh) -> sh + // All(sh) -> sr-Latn + // Default(zh-cmn) -> cmn + // BCP47(zh-cmn) -> cmn + // Macro(zh-cmn) -> zh + // All(zh-cmn) -> zh + // Default(bjd) -> drl + // BCP47(bjd) -> drl + // Macro(bjd) -> bjd + // All(bjd) -> drl + // Default(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd + // BCP47(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd + // Macro(iw-Latn-fonipa-u-cu-usd) -> iw-Latn-fonipa-u-cu-usd + // All(iw-Latn-fonipa-u-cu-usd) -> he-Latn-fonipa-u-cu-usd +} + +func ExampleTag_Base() { + fmt.Println(language.Make("und").Base()) + fmt.Println(language.Make("und-US").Base()) + fmt.Println(language.Make("und-NL").Base()) + fmt.Println(language.Make("und-419").Base()) // Latin America + fmt.Println(language.Make("und-ZZ").Base()) + // Output: + // en Low + // en High + // nl High + // es Low + // en Low +} + +func ExampleTag_Script() { + en := language.Make("en") + sr := language.Make("sr") + sr_Latn := language.Make("sr_Latn") + fmt.Println(en.Script()) + fmt.Println(sr.Script()) + // Was a script explicitly specified? + _, c := sr.Script() + fmt.Println(c == language.Exact) + _, c = sr_Latn.Script() + fmt.Println(c == language.Exact) + // Output: + // Latn High + // Cyrl Low + // false + // true +} + +func ExampleTag_Region() { + ru := language.Make("ru") + en := language.Make("en") + fmt.Println(ru.Region()) + fmt.Println(en.Region()) + // Output: + // RU Low + // US Low +} + +func ExampleRegion_TLD() { + us := language.MustParseRegion("US") + gb := language.MustParseRegion("GB") + uk := language.MustParseRegion("UK") + bu := language.MustParseRegion("BU") + + fmt.Println(us.TLD()) + fmt.Println(gb.TLD()) + fmt.Println(uk.TLD()) + fmt.Println(bu.TLD()) + + fmt.Println(us.Canonicalize().TLD()) + fmt.Println(gb.Canonicalize().TLD()) + fmt.Println(uk.Canonicalize().TLD()) + fmt.Println(bu.Canonicalize().TLD()) + // Output: + // US + // UK + // UK + // ZZ language: region is not a valid ccTLD + // US + // UK + // UK + // MM +} + +func ExampleCompose() { + nl, _ := language.ParseBase("nl") + us, _ := language.ParseRegion("US") + de := language.Make("de-1901-u-co-phonebk") + jp := language.Make("ja-JP") + fi := language.Make("fi-x-ing") + + u, _ := language.ParseExtension("u-nu-arabic") + x, _ := language.ParseExtension("x-piglatin") + + // Combine a base language and region. + fmt.Println(language.Compose(nl, us)) + // Combine a base language and extension. + fmt.Println(language.Compose(nl, x)) + // Replace the region. + fmt.Println(language.Compose(jp, us)) + // Combine several tags. + fmt.Println(language.Compose(us, nl, u)) + + // Replace the base language of a tag. + fmt.Println(language.Compose(de, nl)) + fmt.Println(language.Compose(de, nl, u)) + // Remove the base language. + fmt.Println(language.Compose(de, language.Base{})) + // Remove all variants. + fmt.Println(language.Compose(de, []language.Variant{})) + // Remove all extensions. + fmt.Println(language.Compose(de, []language.Extension{})) + fmt.Println(language.Compose(fi, []language.Extension{})) + // Remove all variants and extensions. + fmt.Println(language.Compose(de.Raw())) + + // An error is gobbled or returned if non-nil. + fmt.Println(language.Compose(language.ParseRegion("ZA"))) + fmt.Println(language.Compose(language.ParseRegion("HH"))) + + // Compose uses the same Default canonicalization as Make. + fmt.Println(language.Compose(language.Raw.Parse("en-Latn-UK"))) + + // Call compose on a different CanonType for different results. + fmt.Println(language.All.Compose(language.Raw.Parse("en-Latn-UK"))) + + // Output: + // nl-US + // nl-x-piglatin + // ja-US + // nl-US-u-nu-arabic + // nl-1901-u-co-phonebk + // nl-1901-u-nu-arabic + // und-1901-u-co-phonebk + // de-u-co-phonebk + // de-1901 + // fi + // de + // und-ZA + // und language: subtag "HH" is well-formed but unknown + // en-Latn-GB + // en-GB +} + +func ExampleParse_errors() { + for _, s := range []string{"Foo", "Bar", "Foobar"} { + _, err := language.Parse(s) + if err != nil { + if inv, ok := err.(language.ValueError); ok { + fmt.Println(inv.Subtag()) + } else { + fmt.Println(s) + } + } + } + for _, s := range []string{"en", "aa-Uuuu", "AC", "ac-u"} { + _, err := language.Parse(s) + switch e := err.(type) { + case language.ValueError: + fmt.Printf("%s: culprit %q\n", s, e.Subtag()) + case nil: + // No error. + default: + // A syntax error. + fmt.Printf("%s: ill-formed\n", s) + } + } + // Output: + // foo + // Foobar + // aa-Uuuu: culprit "Uuuu" + // AC: culprit "ac" + // ac-u: ill-formed +} + +func ExampleParent() { + p := func(tag string) { + fmt.Printf("parent(%v): %v\n", tag, language.Make(tag).Parent()) + } + p("zh-CN") + + // Australian English inherits from World English. + p("en-AU") + + // If the tag has a different maximized script from its parent, a tag with + // this maximized script is inserted. This allows different language tags + // which have the same base language and script in common to inherit from + // a common set of settings. + p("zh-HK") + + // If the maximized script of the parent is not identical, CLDR will skip + // inheriting from it, as it means there will not be many entries in common + // and inheriting from it is nonsensical. + p("zh-Hant") + + // The parent of a tag with variants and extensions is the tag with all + // variants and extensions removed. + p("de-1994-u-co-phonebk") + + // Remove default script. + p("de-Latn-LU") + + // Output: + // parent(zh-CN): zh + // parent(en-AU): en-001 + // parent(zh-HK): zh-Hant + // parent(zh-Hant): und + // parent(de-1994-u-co-phonebk): de + // parent(de-Latn-LU): de +} + +// ExampleMatcher_bestMatch gives some examples of getting the best match of +// a set of tags to any of the tags of given set. +func ExampleMatcher() { + // This is the set of tags from which we want to pick the best match. These + // can be, for example, the supported languages for some package. + tags := []language.Tag{ + language.English, + language.BritishEnglish, + language.French, + language.Afrikaans, + language.BrazilianPortuguese, + language.EuropeanPortuguese, + language.Croatian, + language.SimplifiedChinese, + language.Raw.Make("iw-IL"), + language.Raw.Make("iw"), + language.Raw.Make("he"), + } + m := language.NewMatcher(tags) + + // A simple match. + fmt.Println(m.Match(language.Make("fr"))) + + // Australian English is closer to British than American English. + fmt.Println(m.Match(language.Make("en-AU"))) + + // Default to the first tag passed to the Matcher if there is no match. + fmt.Println(m.Match(language.Make("ar"))) + + // Get the default tag. + fmt.Println(m.Match()) + + fmt.Println("----") + + // Croatian speakers will likely understand Serbian written in Latin script. + fmt.Println(m.Match(language.Make("sr-Latn"))) + + // We match SimplifiedChinese, but with Low confidence. + fmt.Println(m.Match(language.TraditionalChinese)) + + // Serbian in Latin script is a closer match to Croatian than Traditional + // Chinese to Simplified Chinese. + fmt.Println(m.Match(language.TraditionalChinese, language.Make("sr-Latn"))) + + fmt.Println("----") + + // In case a multiple variants of a language are available, the most spoken + // variant is typically returned. + fmt.Println(m.Match(language.Portuguese)) + + // Pick the first value passed to Match in case of a tie. + fmt.Println(m.Match(language.Dutch, language.Make("fr-BE"), language.Make("af-NA"))) + fmt.Println(m.Match(language.Dutch, language.Make("af-NA"), language.Make("fr-BE"))) + + fmt.Println("----") + + // If a Matcher is initialized with a language and it's deprecated version, + // it will distinguish between them. + fmt.Println(m.Match(language.Raw.Make("iw"))) + + // However, for non-exact matches, it will treat deprecated versions as + // equivalent and consider other factors first. + fmt.Println(m.Match(language.Raw.Make("he-IL"))) + + fmt.Println("----") + + // User settings passed to the Unicode extension are ignored for matching + // and preserved in the returned tag. + fmt.Println(m.Match(language.Make("de-u-co-phonebk"), language.Make("fr-u-cu-frf"))) + + // Even if the matching language is different. + fmt.Println(m.Match(language.Make("de-u-co-phonebk"), language.Make("br-u-cu-frf"))) + + // If there is no matching language, the options of the first preferred tag are used. + fmt.Println(m.Match(language.Make("de-u-co-phonebk"))) + + // Output: + // fr 2 Exact + // en-GB 1 High + // en 0 No + // en 0 No + // ---- + // hr 6 High + // zh-Hans 7 Low + // hr 6 High + // ---- + // pt-BR 4 High + // fr 2 High + // af 3 High + // ---- + // iw 9 Exact + // iw-IL 8 Exact + // ---- + // fr-u-cu-frf 2 Exact + // fr-u-cu-frf 2 High + // en-u-co-phonebk 0 No +} + +func ExampleComprehends() { + // Various levels of comprehensibility. + fmt.Println(language.Comprehends(language.English, language.English)) + fmt.Println(language.Comprehends(language.AmericanEnglish, language.BritishEnglish)) + + // An explicit Und results in no match. + fmt.Println(language.Comprehends(language.English, language.Und)) + + fmt.Println("----") + + // There is usually no mutual comprehensibility between different scripts. + fmt.Println(language.Comprehends(language.Make("en-Dsrt"), language.English)) + + // One exception is for Traditional versus Simplified Chinese, albeit with + // a low confidence. + fmt.Println(language.Comprehends(language.TraditionalChinese, language.SimplifiedChinese)) + + fmt.Println("----") + + // A Swiss German speaker will often understand High German. + fmt.Println(language.Comprehends(language.Make("gsw"), language.Make("de"))) + + // The converse is not generally the case. + fmt.Println(language.Comprehends(language.Make("de"), language.Make("gsw"))) + + // Output: + // Exact + // High + // No + // ---- + // No + // Low + // ---- + // High + // No +} + +func ExampleTag_values() { + us := language.MustParseRegion("US") + en := language.MustParseBase("en") + + lang, _, region := language.AmericanEnglish.Raw() + fmt.Println(lang == en, region == us) + + lang, _, region = language.BritishEnglish.Raw() + fmt.Println(lang == en, region == us) + + // Tags can be compared for exact equivalence using '=='. + en_us, _ := language.Compose(en, us) + fmt.Println(en_us == language.AmericanEnglish) + + // Output: + // true true + // true false + // true +} diff --git a/vendor/golang.org/x/text/language/gen_common.go b/vendor/golang.org/x/text/language/gen_common.go new file mode 100644 index 00000000..83ce1801 --- /dev/null +++ b/vendor/golang.org/x/text/language/gen_common.go @@ -0,0 +1,20 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// This file contains code common to the maketables.go and the package code. + +// langAliasType is the type of an alias in langAliasMap. +type langAliasType int8 + +const ( + langDeprecated langAliasType = iota + langMacro + langLegacy + + langAliasTypeUnknown langAliasType = -1 +) diff --git a/vendor/golang.org/x/text/language/gen_index.go b/vendor/golang.org/x/text/language/gen_index.go new file mode 100644 index 00000000..eef555cd --- /dev/null +++ b/vendor/golang.org/x/text/language/gen_index.go @@ -0,0 +1,162 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// This file generates derivative tables based on the language package itself. + +import ( + "bytes" + "flag" + "fmt" + "io/ioutil" + "log" + "reflect" + "sort" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/language" + "golang.org/x/text/unicode/cldr" +) + +var ( + test = flag.Bool("test", false, + "test existing tables; can be used to compare web data with package data.") + + draft = flag.String("draft", + "contributed", + `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`) +) + +func main() { + gen.Init() + + // Read the CLDR zip file. + r := gen.OpenCLDRCoreZip() + defer r.Close() + + d := &cldr.Decoder{} + data, err := d.DecodeZip(r) + if err != nil { + log.Fatalf("DecodeZip: %v", err) + } + + w := gen.NewCodeWriter() + defer func() { + buf := &bytes.Buffer{} + + if _, err = w.WriteGo(buf, "language"); err != nil { + log.Fatalf("Error formatting file index.go: %v", err) + } + + // Since we're generating a table for our own package we need to rewrite + // doing the equivalent of go fmt -r 'language.b -> b'. Using + // bytes.Replace will do. + out := bytes.Replace(buf.Bytes(), []byte("language."), nil, -1) + if err := ioutil.WriteFile("index.go", out, 0600); err != nil { + log.Fatalf("Could not create file index.go: %v", err) + } + }() + + m := map[language.Tag]bool{} + for _, lang := range data.Locales() { + // We include all locales unconditionally to be consistent with en_US. + // We want en_US, even though it has no data associated with it. + + // TODO: put any of the languages for which no data exists at the end + // of the index. This allows all components based on ICU to use that + // as the cutoff point. + // if x := data.RawLDML(lang); false || + // x.LocaleDisplayNames != nil || + // x.Characters != nil || + // x.Delimiters != nil || + // x.Measurement != nil || + // x.Dates != nil || + // x.Numbers != nil || + // x.Units != nil || + // x.ListPatterns != nil || + // x.Collations != nil || + // x.Segmentations != nil || + // x.Rbnf != nil || + // x.Annotations != nil || + // x.Metadata != nil { + + // TODO: support POSIX natively, albeit non-standard. + tag := language.Make(strings.Replace(lang, "_POSIX", "-u-va-posix", 1)) + m[tag] = true + // } + } + // Include locales for plural rules, which uses a different structure. + for _, plurals := range data.Supplemental().Plurals { + for _, rules := range plurals.PluralRules { + for _, lang := range strings.Split(rules.Locales, " ") { + m[language.Make(lang)] = true + } + } + } + + var core, special []language.Tag + + for t := range m { + if x := t.Extensions(); len(x) != 0 && fmt.Sprint(x) != "[u-va-posix]" { + log.Fatalf("Unexpected extension %v in %v", x, t) + } + if len(t.Variants()) == 0 && len(t.Extensions()) == 0 { + core = append(core, t) + } else { + special = append(special, t) + } + } + + w.WriteComment(` + NumCompactTags is the number of common tags. The maximum tag is + NumCompactTags-1.`) + w.WriteConst("NumCompactTags", len(core)+len(special)) + + sort.Sort(byAlpha(special)) + w.WriteVar("specialTags", special) + + // TODO: order by frequency? + sort.Sort(byAlpha(core)) + + // Size computations are just an estimate. + w.Size += int(reflect.TypeOf(map[uint32]uint16{}).Size()) + w.Size += len(core) * 6 // size of uint32 and uint16 + + fmt.Fprintln(w) + fmt.Fprintln(w, "var coreTags = map[uint32]uint16{") + fmt.Fprintln(w, "0x0: 0, // und") + i := len(special) + 1 // Und and special tags already written. + for _, t := range core { + if t == language.Und { + continue + } + fmt.Fprint(w.Hash, t, i) + b, s, r := t.Raw() + fmt.Fprintf(w, "0x%s%s%s: %d, // %s\n", + getIndex(b, 3), // 3 is enough as it is guaranteed to be a compact number + getIndex(s, 2), + getIndex(r, 3), + i, t) + i++ + } + fmt.Fprintln(w, "}") +} + +// getIndex prints the subtag type and extracts its index of size nibble. +// If the index is less than n nibbles, the result is prefixed with 0s. +func getIndex(x interface{}, n int) string { + s := fmt.Sprintf("%#v", x) // s is of form Type{typeID: 0x00} + s = s[strings.Index(s, "0x")+2 : len(s)-1] + return strings.Repeat("0", n-len(s)) + s +} + +type byAlpha []language.Tag + +func (a byAlpha) Len() int { return len(a) } +func (a byAlpha) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byAlpha) Less(i, j int) bool { return a[i].String() < a[j].String() } diff --git a/vendor/golang.org/x/text/language/go1_1.go b/vendor/golang.org/x/text/language/go1_1.go new file mode 100644 index 00000000..380f4c09 --- /dev/null +++ b/vendor/golang.org/x/text/language/go1_1.go @@ -0,0 +1,38 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.2 + +package language + +import "sort" + +func sortStable(s sort.Interface) { + ss := stableSort{ + s: s, + pos: make([]int, s.Len()), + } + for i := range ss.pos { + ss.pos[i] = i + } + sort.Sort(&ss) +} + +type stableSort struct { + s sort.Interface + pos []int +} + +func (s *stableSort) Len() int { + return len(s.pos) +} + +func (s *stableSort) Less(i, j int) bool { + return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] +} + +func (s *stableSort) Swap(i, j int) { + s.s.Swap(i, j) + s.pos[i], s.pos[j] = s.pos[j], s.pos[i] +} diff --git a/vendor/golang.org/x/text/language/go1_2.go b/vendor/golang.org/x/text/language/go1_2.go new file mode 100644 index 00000000..38268c57 --- /dev/null +++ b/vendor/golang.org/x/text/language/go1_2.go @@ -0,0 +1,11 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.2 + +package language + +import "sort" + +var sortStable = sort.Stable diff --git a/vendor/golang.org/x/text/language/httpexample_test.go b/vendor/golang.org/x/text/language/httpexample_test.go new file mode 100644 index 00000000..40d0663c --- /dev/null +++ b/vendor/golang.org/x/text/language/httpexample_test.go @@ -0,0 +1,48 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language_test + +import ( + "fmt" + "net/http" + "strings" + + "golang.org/x/text/language" +) + +// matcher is a language.Matcher configured for all supported languages. +var matcher = language.NewMatcher([]language.Tag{ + language.BritishEnglish, + language.Norwegian, + language.German, +}) + +// handler is a http.HandlerFunc. +func handler(w http.ResponseWriter, r *http.Request) { + t, q, err := language.ParseAcceptLanguage(r.Header.Get("Accept-Language")) + // We ignore the error: the default language will be selected for t == nil. + tag, _, _ := matcher.Match(t...) + fmt.Printf("%5v (t: %6v; q: %3v; err: %v)\n", tag, t, q, err) +} + +func ExampleParseAcceptLanguage() { + for _, al := range []string{ + "nn;q=0.3, en-us;q=0.8, en,", + "gsw, en;q=0.7, en-US;q=0.8", + "gsw, nl, da", + "invalid", + } { + // Create dummy request with Accept-Language set and pass it to handler. + r, _ := http.NewRequest("GET", "example.com", strings.NewReader("Hello")) + r.Header.Set("Accept-Language", al) + handler(nil, r) + } + + // Output: + // en-GB (t: [ en en-US nn]; q: [ 1 0.8 0.3]; err: ) + // en-GB (t: [ gsw en-US en]; q: [ 1 0.8 0.7]; err: ) + // de (t: [ gsw nl da]; q: [ 1 1 1]; err: ) + // en-GB (t: []; q: []; err: language: tag is not well-formed) +} diff --git a/vendor/golang.org/x/text/language/index.go b/vendor/golang.org/x/text/language/index.go new file mode 100644 index 00000000..7fa9cc82 --- /dev/null +++ b/vendor/golang.org/x/text/language/index.go @@ -0,0 +1,762 @@ +// This file was generated by go generate; DO NOT EDIT + +package language + +// NumCompactTags is the number of common tags. The maximum tag is +// NumCompactTags-1. +const NumCompactTags = 747 + +var specialTags = []Tag{ // 2 elements + 0: {lang: 0x61, region: 0x6d, script: 0x0, pVariant: 0x5, pExt: 0xe, str: "ca-ES-valencia"}, + 1: {lang: 0x9b, region: 0x132, script: 0x0, pVariant: 0x5, pExt: 0x5, str: "en-US-u-va-posix"}, +} // Size: 72 bytes + +var coreTags = map[uint32]uint16{ + 0x0: 0, // und + 0x00a00000: 3, // af + 0x00a000d0: 4, // af-NA + 0x00a0015e: 5, // af-ZA + 0x00b00000: 6, // agq + 0x00b00051: 7, // agq-CM + 0x00d00000: 8, // ak + 0x00d0007e: 9, // ak-GH + 0x01100000: 10, // am + 0x0110006e: 11, // am-ET + 0x01500000: 12, // ar + 0x01500001: 13, // ar-001 + 0x01500022: 14, // ar-AE + 0x01500038: 15, // ar-BH + 0x01500061: 16, // ar-DJ + 0x01500066: 17, // ar-DZ + 0x0150006a: 18, // ar-EG + 0x0150006b: 19, // ar-EH + 0x0150006c: 20, // ar-ER + 0x01500095: 21, // ar-IL + 0x01500099: 22, // ar-IQ + 0x0150009f: 23, // ar-JO + 0x015000a6: 24, // ar-KM + 0x015000aa: 25, // ar-KW + 0x015000ae: 26, // ar-LB + 0x015000b7: 27, // ar-LY + 0x015000b8: 28, // ar-MA + 0x015000c7: 29, // ar-MR + 0x015000df: 30, // ar-OM + 0x015000eb: 31, // ar-PS + 0x015000f1: 32, // ar-QA + 0x01500106: 33, // ar-SA + 0x01500109: 34, // ar-SD + 0x01500113: 35, // ar-SO + 0x01500115: 36, // ar-SS + 0x0150011a: 37, // ar-SY + 0x0150011e: 38, // ar-TD + 0x01500126: 39, // ar-TN + 0x0150015b: 40, // ar-YE + 0x01c00000: 41, // as + 0x01c00097: 42, // as-IN + 0x01d00000: 43, // asa + 0x01d0012d: 44, // asa-TZ + 0x01f00000: 45, // ast + 0x01f0006d: 46, // ast-ES + 0x02400000: 47, // az + 0x0241e000: 48, // az-Cyrl + 0x0241e031: 49, // az-Cyrl-AZ + 0x02452000: 50, // az-Latn + 0x02452031: 51, // az-Latn-AZ + 0x02a00000: 52, // bas + 0x02a00051: 53, // bas-CM + 0x02f00000: 54, // be + 0x02f00046: 55, // be-BY + 0x03100000: 56, // bem + 0x0310015f: 57, // bem-ZM + 0x03300000: 58, // bez + 0x0330012d: 59, // bez-TZ + 0x03800000: 60, // bg + 0x03800037: 61, // bg-BG + 0x03c00000: 62, // bh + 0x04900000: 63, // bm + 0x049000c1: 64, // bm-ML + 0x04b00000: 65, // bn + 0x04b00034: 66, // bn-BD + 0x04b00097: 67, // bn-IN + 0x04c00000: 68, // bo + 0x04c00052: 69, // bo-CN + 0x04c00097: 70, // bo-IN + 0x05000000: 71, // br + 0x05000076: 72, // br-FR + 0x05300000: 73, // brx + 0x05300097: 74, // brx-IN + 0x05400000: 75, // bs + 0x0541e000: 76, // bs-Cyrl + 0x0541e032: 77, // bs-Cyrl-BA + 0x05452000: 78, // bs-Latn + 0x05452032: 79, // bs-Latn-BA + 0x06100000: 80, // ca + 0x06100021: 81, // ca-AD + 0x0610006d: 82, // ca-ES + 0x06100076: 83, // ca-FR + 0x0610009c: 84, // ca-IT + 0x06400000: 85, // ce + 0x06400104: 86, // ce-RU + 0x06600000: 87, // cgg + 0x0660012f: 88, // cgg-UG + 0x06c00000: 89, // chr + 0x06c00132: 90, // chr-US + 0x06f00000: 91, // ckb + 0x06f00099: 92, // ckb-IQ + 0x06f0009a: 93, // ckb-IR + 0x07900000: 94, // cs + 0x0790005d: 95, // cs-CZ + 0x07d00000: 96, // cu + 0x07d00104: 97, // cu-RU + 0x07f00000: 98, // cy + 0x07f00079: 99, // cy-GB + 0x08000000: 100, // da + 0x08000062: 101, // da-DK + 0x08000080: 102, // da-GL + 0x08300000: 103, // dav + 0x083000a2: 104, // dav-KE + 0x08500000: 105, // de + 0x0850002d: 106, // de-AT + 0x08500035: 107, // de-BE + 0x0850004d: 108, // de-CH + 0x0850005f: 109, // de-DE + 0x085000b0: 110, // de-LI + 0x085000b5: 111, // de-LU + 0x08800000: 112, // dje + 0x088000d2: 113, // dje-NE + 0x08b00000: 114, // dsb + 0x08b0005f: 115, // dsb-DE + 0x08f00000: 116, // dua + 0x08f00051: 117, // dua-CM + 0x09000000: 118, // dv + 0x09100000: 119, // dyo + 0x09100112: 120, // dyo-SN + 0x09300000: 121, // dz + 0x09300042: 122, // dz-BT + 0x09400000: 123, // ebu + 0x094000a2: 124, // ebu-KE + 0x09500000: 125, // ee + 0x0950007e: 126, // ee-GH + 0x09500120: 127, // ee-TG + 0x09a00000: 128, // el + 0x09a0005c: 129, // el-CY + 0x09a00085: 130, // el-GR + 0x09b00000: 131, // en + 0x09b00001: 132, // en-001 + 0x09b0001a: 133, // en-150 + 0x09b00024: 134, // en-AG + 0x09b00025: 135, // en-AI + 0x09b0002c: 136, // en-AS + 0x09b0002d: 137, // en-AT + 0x09b0002e: 138, // en-AU + 0x09b00033: 139, // en-BB + 0x09b00035: 140, // en-BE + 0x09b00039: 141, // en-BI + 0x09b0003c: 142, // en-BM + 0x09b00041: 143, // en-BS + 0x09b00045: 144, // en-BW + 0x09b00047: 145, // en-BZ + 0x09b00048: 146, // en-CA + 0x09b00049: 147, // en-CC + 0x09b0004d: 148, // en-CH + 0x09b0004f: 149, // en-CK + 0x09b00051: 150, // en-CM + 0x09b0005b: 151, // en-CX + 0x09b0005c: 152, // en-CY + 0x09b0005f: 153, // en-DE + 0x09b00060: 154, // en-DG + 0x09b00062: 155, // en-DK + 0x09b00063: 156, // en-DM + 0x09b0006c: 157, // en-ER + 0x09b00070: 158, // en-FI + 0x09b00071: 159, // en-FJ + 0x09b00072: 160, // en-FK + 0x09b00073: 161, // en-FM + 0x09b00079: 162, // en-GB + 0x09b0007a: 163, // en-GD + 0x09b0007d: 164, // en-GG + 0x09b0007e: 165, // en-GH + 0x09b0007f: 166, // en-GI + 0x09b00081: 167, // en-GM + 0x09b00088: 168, // en-GU + 0x09b0008a: 169, // en-GY + 0x09b0008b: 170, // en-HK + 0x09b00094: 171, // en-IE + 0x09b00095: 172, // en-IL + 0x09b00096: 173, // en-IM + 0x09b00097: 174, // en-IN + 0x09b00098: 175, // en-IO + 0x09b0009d: 176, // en-JE + 0x09b0009e: 177, // en-JM + 0x09b000a2: 178, // en-KE + 0x09b000a5: 179, // en-KI + 0x09b000a7: 180, // en-KN + 0x09b000ab: 181, // en-KY + 0x09b000af: 182, // en-LC + 0x09b000b2: 183, // en-LR + 0x09b000b3: 184, // en-LS + 0x09b000bd: 185, // en-MG + 0x09b000be: 186, // en-MH + 0x09b000c4: 187, // en-MO + 0x09b000c5: 188, // en-MP + 0x09b000c8: 189, // en-MS + 0x09b000c9: 190, // en-MT + 0x09b000ca: 191, // en-MU + 0x09b000cc: 192, // en-MW + 0x09b000ce: 193, // en-MY + 0x09b000d0: 194, // en-NA + 0x09b000d3: 195, // en-NF + 0x09b000d4: 196, // en-NG + 0x09b000d7: 197, // en-NL + 0x09b000db: 198, // en-NR + 0x09b000dd: 199, // en-NU + 0x09b000de: 200, // en-NZ + 0x09b000e4: 201, // en-PG + 0x09b000e5: 202, // en-PH + 0x09b000e6: 203, // en-PK + 0x09b000e9: 204, // en-PN + 0x09b000ea: 205, // en-PR + 0x09b000ee: 206, // en-PW + 0x09b00105: 207, // en-RW + 0x09b00107: 208, // en-SB + 0x09b00108: 209, // en-SC + 0x09b00109: 210, // en-SD + 0x09b0010a: 211, // en-SE + 0x09b0010b: 212, // en-SG + 0x09b0010c: 213, // en-SH + 0x09b0010d: 214, // en-SI + 0x09b00110: 215, // en-SL + 0x09b00115: 216, // en-SS + 0x09b00119: 217, // en-SX + 0x09b0011b: 218, // en-SZ + 0x09b0011d: 219, // en-TC + 0x09b00123: 220, // en-TK + 0x09b00127: 221, // en-TO + 0x09b0012a: 222, // en-TT + 0x09b0012b: 223, // en-TV + 0x09b0012d: 224, // en-TZ + 0x09b0012f: 225, // en-UG + 0x09b00131: 226, // en-UM + 0x09b00132: 227, // en-US + 0x09b00136: 228, // en-VC + 0x09b00139: 229, // en-VG + 0x09b0013a: 230, // en-VI + 0x09b0013c: 231, // en-VU + 0x09b0013f: 232, // en-WS + 0x09b0015e: 233, // en-ZA + 0x09b0015f: 234, // en-ZM + 0x09b00161: 235, // en-ZW + 0x09c00000: 236, // eo + 0x09c00001: 237, // eo-001 + 0x09d00000: 238, // es + 0x09d0001e: 239, // es-419 + 0x09d0002b: 240, // es-AR + 0x09d0003e: 241, // es-BO + 0x09d00040: 242, // es-BR + 0x09d00050: 243, // es-CL + 0x09d00053: 244, // es-CO + 0x09d00055: 245, // es-CR + 0x09d00058: 246, // es-CU + 0x09d00064: 247, // es-DO + 0x09d00067: 248, // es-EA + 0x09d00068: 249, // es-EC + 0x09d0006d: 250, // es-ES + 0x09d00084: 251, // es-GQ + 0x09d00087: 252, // es-GT + 0x09d0008d: 253, // es-HN + 0x09d00092: 254, // es-IC + 0x09d000cd: 255, // es-MX + 0x09d000d6: 256, // es-NI + 0x09d000e0: 257, // es-PA + 0x09d000e2: 258, // es-PE + 0x09d000e5: 259, // es-PH + 0x09d000ea: 260, // es-PR + 0x09d000ef: 261, // es-PY + 0x09d00118: 262, // es-SV + 0x09d00132: 263, // es-US + 0x09d00133: 264, // es-UY + 0x09d00138: 265, // es-VE + 0x09f00000: 266, // et + 0x09f00069: 267, // et-EE + 0x0a100000: 268, // eu + 0x0a10006d: 269, // eu-ES + 0x0a200000: 270, // ewo + 0x0a200051: 271, // ewo-CM + 0x0a400000: 272, // fa + 0x0a400023: 273, // fa-AF + 0x0a40009a: 274, // fa-IR + 0x0a600000: 275, // ff + 0x0a600051: 276, // ff-CM + 0x0a600082: 277, // ff-GN + 0x0a6000c7: 278, // ff-MR + 0x0a600112: 279, // ff-SN + 0x0a800000: 280, // fi + 0x0a800070: 281, // fi-FI + 0x0aa00000: 282, // fil + 0x0aa000e5: 283, // fil-PH + 0x0ad00000: 284, // fo + 0x0ad00062: 285, // fo-DK + 0x0ad00074: 286, // fo-FO + 0x0af00000: 287, // fr + 0x0af00035: 288, // fr-BE + 0x0af00036: 289, // fr-BF + 0x0af00039: 290, // fr-BI + 0x0af0003a: 291, // fr-BJ + 0x0af0003b: 292, // fr-BL + 0x0af00048: 293, // fr-CA + 0x0af0004a: 294, // fr-CD + 0x0af0004b: 295, // fr-CF + 0x0af0004c: 296, // fr-CG + 0x0af0004d: 297, // fr-CH + 0x0af0004e: 298, // fr-CI + 0x0af00051: 299, // fr-CM + 0x0af00061: 300, // fr-DJ + 0x0af00066: 301, // fr-DZ + 0x0af00076: 302, // fr-FR + 0x0af00078: 303, // fr-GA + 0x0af0007c: 304, // fr-GF + 0x0af00082: 305, // fr-GN + 0x0af00083: 306, // fr-GP + 0x0af00084: 307, // fr-GQ + 0x0af0008f: 308, // fr-HT + 0x0af000a6: 309, // fr-KM + 0x0af000b5: 310, // fr-LU + 0x0af000b8: 311, // fr-MA + 0x0af000b9: 312, // fr-MC + 0x0af000bc: 313, // fr-MF + 0x0af000bd: 314, // fr-MG + 0x0af000c1: 315, // fr-ML + 0x0af000c6: 316, // fr-MQ + 0x0af000c7: 317, // fr-MR + 0x0af000ca: 318, // fr-MU + 0x0af000d1: 319, // fr-NC + 0x0af000d2: 320, // fr-NE + 0x0af000e3: 321, // fr-PF + 0x0af000e8: 322, // fr-PM + 0x0af00100: 323, // fr-RE + 0x0af00105: 324, // fr-RW + 0x0af00108: 325, // fr-SC + 0x0af00112: 326, // fr-SN + 0x0af0011a: 327, // fr-SY + 0x0af0011e: 328, // fr-TD + 0x0af00120: 329, // fr-TG + 0x0af00126: 330, // fr-TN + 0x0af0013c: 331, // fr-VU + 0x0af0013d: 332, // fr-WF + 0x0af0015c: 333, // fr-YT + 0x0b600000: 334, // fur + 0x0b60009c: 335, // fur-IT + 0x0b900000: 336, // fy + 0x0b9000d7: 337, // fy-NL + 0x0ba00000: 338, // ga + 0x0ba00094: 339, // ga-IE + 0x0c200000: 340, // gd + 0x0c200079: 341, // gd-GB + 0x0c800000: 342, // gl + 0x0c80006d: 343, // gl-ES + 0x0d200000: 344, // gsw + 0x0d20004d: 345, // gsw-CH + 0x0d200076: 346, // gsw-FR + 0x0d2000b0: 347, // gsw-LI + 0x0d300000: 348, // gu + 0x0d300097: 349, // gu-IN + 0x0d700000: 350, // guw + 0x0d800000: 351, // guz + 0x0d8000a2: 352, // guz-KE + 0x0d900000: 353, // gv + 0x0d900096: 354, // gv-IM + 0x0dc00000: 355, // ha + 0x0dc0007e: 356, // ha-GH + 0x0dc000d2: 357, // ha-NE + 0x0dc000d4: 358, // ha-NG + 0x0de00000: 359, // haw + 0x0de00132: 360, // haw-US + 0x0e000000: 361, // he + 0x0e000095: 362, // he-IL + 0x0e100000: 363, // hi + 0x0e100097: 364, // hi-IN + 0x0ee00000: 365, // hr + 0x0ee00032: 366, // hr-BA + 0x0ee0008e: 367, // hr-HR + 0x0ef00000: 368, // hsb + 0x0ef0005f: 369, // hsb-DE + 0x0f200000: 370, // hu + 0x0f200090: 371, // hu-HU + 0x0f300000: 372, // hy + 0x0f300027: 373, // hy-AM + 0x0f800000: 374, // id + 0x0f800093: 375, // id-ID + 0x0fa00000: 376, // ig + 0x0fa000d4: 377, // ig-NG + 0x0fb00000: 378, // ii + 0x0fb00052: 379, // ii-CN + 0x10200000: 380, // is + 0x1020009b: 381, // is-IS + 0x10300000: 382, // it + 0x1030004d: 383, // it-CH + 0x1030009c: 384, // it-IT + 0x10300111: 385, // it-SM + 0x10400000: 386, // iu + 0x10700000: 387, // ja + 0x107000a0: 388, // ja-JP + 0x10900000: 389, // jbo + 0x10a00000: 390, // jgo + 0x10a00051: 391, // jgo-CM + 0x10c00000: 392, // jmc + 0x10c0012d: 393, // jmc-TZ + 0x10f00000: 394, // jv + 0x11100000: 395, // ka + 0x1110007b: 396, // ka-GE + 0x11300000: 397, // kab + 0x11300066: 398, // kab-DZ + 0x11500000: 399, // kaj + 0x11600000: 400, // kam + 0x116000a2: 401, // kam-KE + 0x11900000: 402, // kcg + 0x11b00000: 403, // kde + 0x11b0012d: 404, // kde-TZ + 0x11d00000: 405, // kea + 0x11d00059: 406, // kea-CV + 0x12800000: 407, // khq + 0x128000c1: 408, // khq-ML + 0x12b00000: 409, // ki + 0x12b000a2: 410, // ki-KE + 0x12f00000: 411, // kk + 0x12f000ac: 412, // kk-KZ + 0x13000000: 413, // kkj + 0x13000051: 414, // kkj-CM + 0x13100000: 415, // kl + 0x13100080: 416, // kl-GL + 0x13200000: 417, // kln + 0x132000a2: 418, // kln-KE + 0x13300000: 419, // km + 0x133000a4: 420, // km-KH + 0x13500000: 421, // kn + 0x13500097: 422, // kn-IN + 0x13600000: 423, // ko + 0x136000a8: 424, // ko-KP + 0x136000a9: 425, // ko-KR + 0x13800000: 426, // kok + 0x13800097: 427, // kok-IN + 0x14100000: 428, // ks + 0x14100097: 429, // ks-IN + 0x14200000: 430, // ksb + 0x1420012d: 431, // ksb-TZ + 0x14300000: 432, // ksf + 0x14300051: 433, // ksf-CM + 0x14400000: 434, // ksh + 0x1440005f: 435, // ksh-DE + 0x14500000: 436, // ku + 0x14a00000: 437, // kw + 0x14a00079: 438, // kw-GB + 0x14d00000: 439, // ky + 0x14d000a3: 440, // ky-KG + 0x15100000: 441, // lag + 0x1510012d: 442, // lag-TZ + 0x15400000: 443, // lb + 0x154000b5: 444, // lb-LU + 0x15a00000: 445, // lg + 0x15a0012f: 446, // lg-UG + 0x16100000: 447, // lkt + 0x16100132: 448, // lkt-US + 0x16400000: 449, // ln + 0x16400029: 450, // ln-AO + 0x1640004a: 451, // ln-CD + 0x1640004b: 452, // ln-CF + 0x1640004c: 453, // ln-CG + 0x16500000: 454, // lo + 0x165000ad: 455, // lo-LA + 0x16800000: 456, // lrc + 0x16800099: 457, // lrc-IQ + 0x1680009a: 458, // lrc-IR + 0x16900000: 459, // lt + 0x169000b4: 460, // lt-LT + 0x16b00000: 461, // lu + 0x16b0004a: 462, // lu-CD + 0x16d00000: 463, // luo + 0x16d000a2: 464, // luo-KE + 0x16e00000: 465, // luy + 0x16e000a2: 466, // luy-KE + 0x17000000: 467, // lv + 0x170000b6: 468, // lv-LV + 0x17a00000: 469, // mas + 0x17a000a2: 470, // mas-KE + 0x17a0012d: 471, // mas-TZ + 0x18000000: 472, // mer + 0x180000a2: 473, // mer-KE + 0x18200000: 474, // mfe + 0x182000ca: 475, // mfe-MU + 0x18300000: 476, // mg + 0x183000bd: 477, // mg-MG + 0x18400000: 478, // mgh + 0x184000cf: 479, // mgh-MZ + 0x18500000: 480, // mgo + 0x18500051: 481, // mgo-CM + 0x18c00000: 482, // mk + 0x18c000c0: 483, // mk-MK + 0x18d00000: 484, // ml + 0x18d00097: 485, // ml-IN + 0x18f00000: 486, // mn + 0x18f000c3: 487, // mn-MN + 0x19600000: 488, // mr + 0x19600097: 489, // mr-IN + 0x19a00000: 490, // ms + 0x19a0003d: 491, // ms-BN + 0x19a000ce: 492, // ms-MY + 0x19a0010b: 493, // ms-SG + 0x19b00000: 494, // mt + 0x19b000c9: 495, // mt-MT + 0x19d00000: 496, // mua + 0x19d00051: 497, // mua-CM + 0x1a500000: 498, // my + 0x1a5000c2: 499, // my-MM + 0x1a900000: 500, // mzn + 0x1a90009a: 501, // mzn-IR + 0x1ab00000: 502, // nah + 0x1ae00000: 503, // naq + 0x1ae000d0: 504, // naq-NA + 0x1af00000: 505, // nb + 0x1af000d8: 506, // nb-NO + 0x1af0010e: 507, // nb-SJ + 0x1b100000: 508, // nd + 0x1b100161: 509, // nd-ZW + 0x1b400000: 510, // ne + 0x1b400097: 511, // ne-IN + 0x1b4000d9: 512, // ne-NP + 0x1bd00000: 513, // nl + 0x1bd0002f: 514, // nl-AW + 0x1bd00035: 515, // nl-BE + 0x1bd0003f: 516, // nl-BQ + 0x1bd0005a: 517, // nl-CW + 0x1bd000d7: 518, // nl-NL + 0x1bd00114: 519, // nl-SR + 0x1bd00119: 520, // nl-SX + 0x1be00000: 521, // nmg + 0x1be00051: 522, // nmg-CM + 0x1bf00000: 523, // nn + 0x1bf000d8: 524, // nn-NO + 0x1c000000: 525, // nnh + 0x1c000051: 526, // nnh-CM + 0x1c100000: 527, // no + 0x1c500000: 528, // nqo + 0x1c600000: 529, // nr + 0x1c800000: 530, // nso + 0x1c900000: 531, // nus + 0x1c900115: 532, // nus-SS + 0x1cc00000: 533, // ny + 0x1ce00000: 534, // nyn + 0x1ce0012f: 535, // nyn-UG + 0x1d200000: 536, // om + 0x1d20006e: 537, // om-ET + 0x1d2000a2: 538, // om-KE + 0x1d300000: 539, // or + 0x1d300097: 540, // or-IN + 0x1d400000: 541, // os + 0x1d40007b: 542, // os-GE + 0x1d400104: 543, // os-RU + 0x1d700000: 544, // pa + 0x1d705000: 545, // pa-Arab + 0x1d7050e6: 546, // pa-Arab-PK + 0x1d72f000: 547, // pa-Guru + 0x1d72f097: 548, // pa-Guru-IN + 0x1db00000: 549, // pap + 0x1e700000: 550, // pl + 0x1e7000e7: 551, // pl-PL + 0x1ed00000: 552, // prg + 0x1ed00001: 553, // prg-001 + 0x1ee00000: 554, // ps + 0x1ee00023: 555, // ps-AF + 0x1ef00000: 556, // pt + 0x1ef00029: 557, // pt-AO + 0x1ef00040: 558, // pt-BR + 0x1ef0004d: 559, // pt-CH + 0x1ef00059: 560, // pt-CV + 0x1ef00084: 561, // pt-GQ + 0x1ef00089: 562, // pt-GW + 0x1ef000b5: 563, // pt-LU + 0x1ef000c4: 564, // pt-MO + 0x1ef000cf: 565, // pt-MZ + 0x1ef000ec: 566, // pt-PT + 0x1ef00116: 567, // pt-ST + 0x1ef00124: 568, // pt-TL + 0x1f100000: 569, // qu + 0x1f10003e: 570, // qu-BO + 0x1f100068: 571, // qu-EC + 0x1f1000e2: 572, // qu-PE + 0x1fc00000: 573, // rm + 0x1fc0004d: 574, // rm-CH + 0x20100000: 575, // rn + 0x20100039: 576, // rn-BI + 0x20300000: 577, // ro + 0x203000ba: 578, // ro-MD + 0x20300102: 579, // ro-RO + 0x20500000: 580, // rof + 0x2050012d: 581, // rof-TZ + 0x20700000: 582, // ru + 0x20700046: 583, // ru-BY + 0x207000a3: 584, // ru-KG + 0x207000ac: 585, // ru-KZ + 0x207000ba: 586, // ru-MD + 0x20700104: 587, // ru-RU + 0x2070012e: 588, // ru-UA + 0x20a00000: 589, // rw + 0x20a00105: 590, // rw-RW + 0x20b00000: 591, // rwk + 0x20b0012d: 592, // rwk-TZ + 0x20f00000: 593, // sah + 0x20f00104: 594, // sah-RU + 0x21000000: 595, // saq + 0x210000a2: 596, // saq-KE + 0x21400000: 597, // sbp + 0x2140012d: 598, // sbp-TZ + 0x21c00000: 599, // sdh + 0x21d00000: 600, // se + 0x21d00070: 601, // se-FI + 0x21d000d8: 602, // se-NO + 0x21d0010a: 603, // se-SE + 0x21f00000: 604, // seh + 0x21f000cf: 605, // seh-MZ + 0x22100000: 606, // ses + 0x221000c1: 607, // ses-ML + 0x22200000: 608, // sg + 0x2220004b: 609, // sg-CF + 0x22600000: 610, // shi + 0x22652000: 611, // shi-Latn + 0x226520b8: 612, // shi-Latn-MA + 0x226d2000: 613, // shi-Tfng + 0x226d20b8: 614, // shi-Tfng-MA + 0x22800000: 615, // si + 0x228000b1: 616, // si-LK + 0x22a00000: 617, // sk + 0x22a0010f: 618, // sk-SK + 0x22c00000: 619, // sl + 0x22c0010d: 620, // sl-SI + 0x23000000: 621, // sma + 0x23100000: 622, // smi + 0x23200000: 623, // smj + 0x23300000: 624, // smn + 0x23300070: 625, // smn-FI + 0x23500000: 626, // sms + 0x23600000: 627, // sn + 0x23600161: 628, // sn-ZW + 0x23800000: 629, // so + 0x23800061: 630, // so-DJ + 0x2380006e: 631, // so-ET + 0x238000a2: 632, // so-KE + 0x23800113: 633, // so-SO + 0x23a00000: 634, // sq + 0x23a00026: 635, // sq-AL + 0x23a000c0: 636, // sq-MK + 0x23a0014a: 637, // sq-XK + 0x23b00000: 638, // sr + 0x23b1e000: 639, // sr-Cyrl + 0x23b1e032: 640, // sr-Cyrl-BA + 0x23b1e0bb: 641, // sr-Cyrl-ME + 0x23b1e103: 642, // sr-Cyrl-RS + 0x23b1e14a: 643, // sr-Cyrl-XK + 0x23b52000: 644, // sr-Latn + 0x23b52032: 645, // sr-Latn-BA + 0x23b520bb: 646, // sr-Latn-ME + 0x23b52103: 647, // sr-Latn-RS + 0x23b5214a: 648, // sr-Latn-XK + 0x24000000: 649, // ss + 0x24100000: 650, // ssy + 0x24200000: 651, // st + 0x24700000: 652, // sv + 0x24700030: 653, // sv-AX + 0x24700070: 654, // sv-FI + 0x2470010a: 655, // sv-SE + 0x24800000: 656, // sw + 0x2480004a: 657, // sw-CD + 0x248000a2: 658, // sw-KE + 0x2480012d: 659, // sw-TZ + 0x2480012f: 660, // sw-UG + 0x24f00000: 661, // syr + 0x25100000: 662, // ta + 0x25100097: 663, // ta-IN + 0x251000b1: 664, // ta-LK + 0x251000ce: 665, // ta-MY + 0x2510010b: 666, // ta-SG + 0x25800000: 667, // te + 0x25800097: 668, // te-IN + 0x25a00000: 669, // teo + 0x25a000a2: 670, // teo-KE + 0x25a0012f: 671, // teo-UG + 0x25d00000: 672, // th + 0x25d00121: 673, // th-TH + 0x26100000: 674, // ti + 0x2610006c: 675, // ti-ER + 0x2610006e: 676, // ti-ET + 0x26200000: 677, // tig + 0x26400000: 678, // tk + 0x26400125: 679, // tk-TM + 0x26b00000: 680, // tn + 0x26c00000: 681, // to + 0x26c00127: 682, // to-TO + 0x26f00000: 683, // tr + 0x26f0005c: 684, // tr-CY + 0x26f00129: 685, // tr-TR + 0x27200000: 686, // ts + 0x27e00000: 687, // twq + 0x27e000d2: 688, // twq-NE + 0x28200000: 689, // tzm + 0x282000b8: 690, // tzm-MA + 0x28400000: 691, // ug + 0x28400052: 692, // ug-CN + 0x28600000: 693, // uk + 0x2860012e: 694, // uk-UA + 0x28c00000: 695, // ur + 0x28c00097: 696, // ur-IN + 0x28c000e6: 697, // ur-PK + 0x28d00000: 698, // uz + 0x28d05000: 699, // uz-Arab + 0x28d05023: 700, // uz-Arab-AF + 0x28d1e000: 701, // uz-Cyrl + 0x28d1e134: 702, // uz-Cyrl-UZ + 0x28d52000: 703, // uz-Latn + 0x28d52134: 704, // uz-Latn-UZ + 0x28e00000: 705, // vai + 0x28e52000: 706, // vai-Latn + 0x28e520b2: 707, // vai-Latn-LR + 0x28ed9000: 708, // vai-Vaii + 0x28ed90b2: 709, // vai-Vaii-LR + 0x28f00000: 710, // ve + 0x29200000: 711, // vi + 0x2920013b: 712, // vi-VN + 0x29700000: 713, // vo + 0x29700001: 714, // vo-001 + 0x29a00000: 715, // vun + 0x29a0012d: 716, // vun-TZ + 0x29b00000: 717, // wa + 0x29c00000: 718, // wae + 0x29c0004d: 719, // wae-CH + 0x2a400000: 720, // wo + 0x2a900000: 721, // xh + 0x2b100000: 722, // xog + 0x2b10012f: 723, // xog-UG + 0x2b700000: 724, // yav + 0x2b700051: 725, // yav-CM + 0x2b900000: 726, // yi + 0x2b900001: 727, // yi-001 + 0x2ba00000: 728, // yo + 0x2ba0003a: 729, // yo-BJ + 0x2ba000d4: 730, // yo-NG + 0x2bd00000: 731, // yue + 0x2bd0008b: 732, // yue-HK + 0x2c300000: 733, // zgh + 0x2c3000b8: 734, // zgh-MA + 0x2c400000: 735, // zh + 0x2c434000: 736, // zh-Hans + 0x2c434052: 737, // zh-Hans-CN + 0x2c43408b: 738, // zh-Hans-HK + 0x2c4340c4: 739, // zh-Hans-MO + 0x2c43410b: 740, // zh-Hans-SG + 0x2c435000: 741, // zh-Hant + 0x2c43508b: 742, // zh-Hant-HK + 0x2c4350c4: 743, // zh-Hant-MO + 0x2c43512c: 744, // zh-Hant-TW + 0x2c600000: 745, // zu + 0x2c60015e: 746, // zu-ZA +} + +// Total table size 4550 bytes (4KiB); checksum: B6D49547 diff --git a/vendor/golang.org/x/text/language/language.go b/vendor/golang.org/x/text/language/language.go new file mode 100644 index 00000000..3c190414 --- /dev/null +++ b/vendor/golang.org/x/text/language/language.go @@ -0,0 +1,975 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run maketables.go gen_common.go -output tables.go +//go:generate go run gen_index.go + +// Package language implements BCP 47 language tags and related functionality. +// +// The Tag type, which is used to represent languages, is agnostic to the +// meaning of its subtags. Tags are not fully canonicalized to preserve +// information that may be valuable in certain contexts. As a consequence, two +// different tags may represent identical languages. +// +// Initializing language- or locale-specific components usually consists of +// two steps. The first step is to select a display language based on the +// preferred languages of the user and the languages supported by an application. +// The second step is to create the language-specific services based on +// this selection. Each is discussed in more details below. +// +// Matching preferred against supported languages +// +// An application may support various languages. This list is typically limited +// by the languages for which there exists translations of the user interface. +// Similarly, a user may provide a list of preferred languages which is limited +// by the languages understood by this user. +// An application should use a Matcher to find the best supported language based +// on the user's preferred list. +// Matchers are aware of the intricacies of equivalence between languages. +// The default Matcher implementation takes into account things such as +// deprecated subtags, legacy tags, and mutual intelligibility between scripts +// and languages. +// +// A Matcher for English, Australian English, Danish, and standard Mandarin can +// be defined as follows: +// +// var matcher = language.NewMatcher([]language.Tag{ +// language.English, // The first language is used as fallback. +// language.MustParse("en-AU"), +// language.Danish, +// language.Chinese, +// }) +// +// The following code selects the best match for someone speaking Spanish and +// Norwegian: +// +// preferred := []language.Tag{ language.Spanish, language.Norwegian } +// tag, _, _ := matcher.Match(preferred...) +// +// In this case, the best match is Danish, as Danish is sufficiently a match to +// Norwegian to not have to fall back to the default. +// See ParseAcceptLanguage on how to handle the Accept-Language HTTP header. +// +// Selecting language-specific services +// +// One should always use the Tag returned by the Matcher to create an instance +// of any of the language-specific services provided by the text repository. +// This prevents the mixing of languages, such as having a different language for +// messages and display names, as well as improper casing or sorting order for +// the selected language. +// Using the returned Tag also allows user-defined settings, such as collation +// order or numbering system to be transparently passed as options. +// +// If you have language-specific data in your application, however, it will in +// most cases suffice to use the index returned by the matcher to identify +// the user language. +// The following loop provides an alternative in case this is not sufficient: +// +// supported := map[language.Tag]data{ +// language.English: enData, +// language.MustParse("en-AU"): enAUData, +// language.Danish: daData, +// language.Chinese: zhData, +// } +// tag, _, _ := matcher.Match(preferred...) +// for ; tag != language.Und; tag = tag.Parent() { +// if v, ok := supported[tag]; ok { +// return v +// } +// } +// return enData // should not reach here +// +// Repeatedly taking the Parent of the tag returned by Match will eventually +// match one of the tags used to initialize the Matcher. +// +// Canonicalization +// +// By default, only legacy and deprecated tags are converted into their +// canonical equivalent. All other information is preserved. This approach makes +// the confidence scores more accurate and allows matchers to distinguish +// between variants that are otherwise lost. +// +// As a consequence, two tags that should be treated as identical according to +// BCP 47 or CLDR, like "en-Latn" and "en", will be represented differently. The +// Matchers will handle such distinctions, though, and are aware of the +// equivalence relations. The CanonType type can be used to alter the +// canonicalization form. +// +// References +// +// BCP 47 - Tags for Identifying Languages +// http://tools.ietf.org/html/bcp47 +package language // import "golang.org/x/text/language" + +// TODO: Remove above NOTE after: +// - verifying that tables are dropped correctly (most notably matcher tables). + +import ( + "errors" + "fmt" + "strings" +) + +const ( + // maxCoreSize is the maximum size of a BCP 47 tag without variants and + // extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes. + maxCoreSize = 12 + + // max99thPercentileSize is a somewhat arbitrary buffer size that presumably + // is large enough to hold at least 99% of the BCP 47 tags. + max99thPercentileSize = 32 + + // maxSimpleUExtensionSize is the maximum size of a -u extension with one + // key-type pair. Equals len("-u-") + key (2) + dash + max value (8). + maxSimpleUExtensionSize = 14 +) + +// Tag represents a BCP 47 language tag. It is used to specify an instance of a +// specific language or locale. All language tag values are guaranteed to be +// well-formed. +type Tag struct { + lang langID + region regionID + script scriptID + pVariant byte // offset in str, includes preceding '-' + pExt uint16 // offset of first extension, includes preceding '-' + + // str is the string representation of the Tag. It will only be used if the + // tag has variants or extensions. + str string +} + +// Make is a convenience wrapper for Parse that omits the error. +// In case of an error, a sensible default is returned. +func Make(s string) Tag { + return Default.Make(s) +} + +// Make is a convenience wrapper for c.Parse that omits the error. +// In case of an error, a sensible default is returned. +func (c CanonType) Make(s string) Tag { + t, _ := c.Parse(s) + return t +} + +// Raw returns the raw base language, script and region, without making an +// attempt to infer their values. +func (t Tag) Raw() (b Base, s Script, r Region) { + return Base{t.lang}, Script{t.script}, Region{t.region} +} + +// equalTags compares language, script and region subtags only. +func (t Tag) equalTags(a Tag) bool { + return t.lang == a.lang && t.script == a.script && t.region == a.region +} + +// IsRoot returns true if t is equal to language "und". +func (t Tag) IsRoot() bool { + if int(t.pVariant) < len(t.str) { + return false + } + return t.equalTags(und) +} + +// private reports whether the Tag consists solely of a private use tag. +func (t Tag) private() bool { + return t.str != "" && t.pVariant == 0 +} + +// CanonType can be used to enable or disable various types of canonicalization. +type CanonType int + +const ( + // Replace deprecated base languages with their preferred replacements. + DeprecatedBase CanonType = 1 << iota + // Replace deprecated scripts with their preferred replacements. + DeprecatedScript + // Replace deprecated regions with their preferred replacements. + DeprecatedRegion + // Remove redundant scripts. + SuppressScript + // Normalize legacy encodings. This includes legacy languages defined in + // CLDR as well as bibliographic codes defined in ISO-639. + Legacy + // Map the dominant language of a macro language group to the macro language + // subtag. For example cmn -> zh. + Macro + // The CLDR flag should be used if full compatibility with CLDR is required. + // There are a few cases where language.Tag may differ from CLDR. To follow all + // of CLDR's suggestions, use All|CLDR. + CLDR + + // Raw can be used to Compose or Parse without Canonicalization. + Raw CanonType = 0 + + // Replace all deprecated tags with their preferred replacements. + Deprecated = DeprecatedBase | DeprecatedScript | DeprecatedRegion + + // All canonicalizations recommended by BCP 47. + BCP47 = Deprecated | SuppressScript + + // All canonicalizations. + All = BCP47 | Legacy | Macro + + // Default is the canonicalization used by Parse, Make and Compose. To + // preserve as much information as possible, canonicalizations that remove + // potentially valuable information are not included. The Matcher is + // designed to recognize similar tags that would be the same if + // they were canonicalized using All. + Default = Deprecated | Legacy + + canonLang = DeprecatedBase | Legacy | Macro + + // TODO: LikelyScript, LikelyRegion: suppress similar to ICU. +) + +// canonicalize returns the canonicalized equivalent of the tag and +// whether there was any change. +func (t Tag) canonicalize(c CanonType) (Tag, bool) { + if c == Raw { + return t, false + } + changed := false + if c&SuppressScript != 0 { + if t.lang < langNoIndexOffset && uint8(t.script) == suppressScript[t.lang] { + t.script = 0 + changed = true + } + } + if c&canonLang != 0 { + for { + if l, aliasType := normLang(t.lang); l != t.lang { + switch aliasType { + case langLegacy: + if c&Legacy != 0 { + if t.lang == _sh && t.script == 0 { + t.script = _Latn + } + t.lang = l + changed = true + } + case langMacro: + if c&Macro != 0 { + // We deviate here from CLDR. The mapping "nb" -> "no" + // qualifies as a typical Macro language mapping. However, + // for legacy reasons, CLDR maps "no", the macro language + // code for Norwegian, to the dominant variant "nb". This + // change is currently under consideration for CLDR as well. + // See http://unicode.org/cldr/trac/ticket/2698 and also + // http://unicode.org/cldr/trac/ticket/1790 for some of the + // practical implications. TODO: this check could be removed + // if CLDR adopts this change. + if c&CLDR == 0 || t.lang != _nb { + changed = true + t.lang = l + } + } + case langDeprecated: + if c&DeprecatedBase != 0 { + if t.lang == _mo && t.region == 0 { + t.region = _MD + } + t.lang = l + changed = true + // Other canonicalization types may still apply. + continue + } + } + } else if c&Legacy != 0 && t.lang == _no && c&CLDR != 0 { + t.lang = _nb + changed = true + } + break + } + } + if c&DeprecatedScript != 0 { + if t.script == _Qaai { + changed = true + t.script = _Zinh + } + } + if c&DeprecatedRegion != 0 { + if r := normRegion(t.region); r != 0 { + changed = true + t.region = r + } + } + return t, changed +} + +// Canonicalize returns the canonicalized equivalent of the tag. +func (c CanonType) Canonicalize(t Tag) (Tag, error) { + t, changed := t.canonicalize(c) + if changed { + t.remakeString() + } + return t, nil +} + +// Confidence indicates the level of certainty for a given return value. +// For example, Serbian may be written in Cyrillic or Latin script. +// The confidence level indicates whether a value was explicitly specified, +// whether it is typically the only possible value, or whether there is +// an ambiguity. +type Confidence int + +const ( + No Confidence = iota // full confidence that there was no match + Low // most likely value picked out of a set of alternatives + High // value is generally assumed to be the correct match + Exact // exact match or explicitly specified value +) + +var confName = []string{"No", "Low", "High", "Exact"} + +func (c Confidence) String() string { + return confName[c] +} + +// remakeString is used to update t.str in case lang, script or region changed. +// It is assumed that pExt and pVariant still point to the start of the +// respective parts. +func (t *Tag) remakeString() { + if t.str == "" { + return + } + extra := t.str[t.pVariant:] + if t.pVariant > 0 { + extra = extra[1:] + } + if t.equalTags(und) && strings.HasPrefix(extra, "x-") { + t.str = extra + t.pVariant = 0 + t.pExt = 0 + return + } + var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases. + b := buf[:t.genCoreBytes(buf[:])] + if extra != "" { + diff := len(b) - int(t.pVariant) + b = append(b, '-') + b = append(b, extra...) + t.pVariant = uint8(int(t.pVariant) + diff) + t.pExt = uint16(int(t.pExt) + diff) + } else { + t.pVariant = uint8(len(b)) + t.pExt = uint16(len(b)) + } + t.str = string(b) +} + +// genCoreBytes writes a string for the base languages, script and region tags +// to the given buffer and returns the number of bytes written. It will never +// write more than maxCoreSize bytes. +func (t *Tag) genCoreBytes(buf []byte) int { + n := t.lang.stringToBuf(buf[:]) + if t.script != 0 { + n += copy(buf[n:], "-") + n += copy(buf[n:], t.script.String()) + } + if t.region != 0 { + n += copy(buf[n:], "-") + n += copy(buf[n:], t.region.String()) + } + return n +} + +// String returns the canonical string representation of the language tag. +func (t Tag) String() string { + if t.str != "" { + return t.str + } + if t.script == 0 && t.region == 0 { + return t.lang.String() + } + buf := [maxCoreSize]byte{} + return string(buf[:t.genCoreBytes(buf[:])]) +} + +// Base returns the base language of the language tag. If the base language is +// unspecified, an attempt will be made to infer it from the context. +// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. +func (t Tag) Base() (Base, Confidence) { + if t.lang != 0 { + return Base{t.lang}, Exact + } + c := High + if t.script == 0 && !(Region{t.region}).IsCountry() { + c = Low + } + if tag, err := addTags(t); err == nil && tag.lang != 0 { + return Base{tag.lang}, c + } + return Base{0}, No +} + +// Script infers the script for the language tag. If it was not explicitly given, it will infer +// a most likely candidate. +// If more than one script is commonly used for a language, the most likely one +// is returned with a low confidence indication. For example, it returns (Cyrl, Low) +// for Serbian. +// If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined) +// as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks +// common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts. +// See http://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for +// unknown value in CLDR. (Zzzz, Exact) is returned if Zzzz was explicitly specified. +// Note that an inferred script is never guaranteed to be the correct one. Latin is +// almost exclusively used for Afrikaans, but Arabic has been used for some texts +// in the past. Also, the script that is commonly used may change over time. +// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. +func (t Tag) Script() (Script, Confidence) { + if t.script != 0 { + return Script{t.script}, Exact + } + sc, c := scriptID(_Zzzz), No + if t.lang < langNoIndexOffset { + if scr := scriptID(suppressScript[t.lang]); scr != 0 { + // Note: it is not always the case that a language with a suppress + // script value is only written in one script (e.g. kk, ms, pa). + if t.region == 0 { + return Script{scriptID(scr)}, High + } + sc, c = scr, High + } + } + if tag, err := addTags(t); err == nil { + if tag.script != sc { + sc, c = tag.script, Low + } + } else { + t, _ = (Deprecated | Macro).Canonicalize(t) + if tag, err := addTags(t); err == nil && tag.script != sc { + sc, c = tag.script, Low + } + } + return Script{sc}, c +} + +// Region returns the region for the language tag. If it was not explicitly given, it will +// infer a most likely candidate from the context. +// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change. +func (t Tag) Region() (Region, Confidence) { + if t.region != 0 { + return Region{t.region}, Exact + } + if t, err := addTags(t); err == nil { + return Region{t.region}, Low // TODO: differentiate between high and low. + } + t, _ = (Deprecated | Macro).Canonicalize(t) + if tag, err := addTags(t); err == nil { + return Region{tag.region}, Low + } + return Region{_ZZ}, No // TODO: return world instead of undetermined? +} + +// Variant returns the variants specified explicitly for this language tag. +// or nil if no variant was specified. +func (t Tag) Variants() []Variant { + v := []Variant{} + if int(t.pVariant) < int(t.pExt) { + for x, str := "", t.str[t.pVariant:t.pExt]; str != ""; { + x, str = nextToken(str) + v = append(v, Variant{x}) + } + } + return v +} + +// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a +// specific language are substituted with fields from the parent language. +// The parent for a language may change for newer versions of CLDR. +func (t Tag) Parent() Tag { + if t.str != "" { + // Strip the variants and extensions. + t, _ = Raw.Compose(t.Raw()) + if t.region == 0 && t.script != 0 && t.lang != 0 { + base, _ := addTags(Tag{lang: t.lang}) + if base.script == t.script { + return Tag{lang: t.lang} + } + } + return t + } + if t.lang != 0 { + if t.region != 0 { + maxScript := t.script + if maxScript == 0 { + max, _ := addTags(t) + maxScript = max.script + } + + for i := range parents { + if langID(parents[i].lang) == t.lang && scriptID(parents[i].maxScript) == maxScript { + for _, r := range parents[i].fromRegion { + if regionID(r) == t.region { + return Tag{ + lang: t.lang, + script: scriptID(parents[i].script), + region: regionID(parents[i].toRegion), + } + } + } + } + } + + // Strip the script if it is the default one. + base, _ := addTags(Tag{lang: t.lang}) + if base.script != maxScript { + return Tag{lang: t.lang, script: maxScript} + } + return Tag{lang: t.lang} + } else if t.script != 0 { + // The parent for an base-script pair with a non-default script is + // "und" instead of the base language. + base, _ := addTags(Tag{lang: t.lang}) + if base.script != t.script { + return und + } + return Tag{lang: t.lang} + } + } + return und +} + +// returns token t and the rest of the string. +func nextToken(s string) (t, tail string) { + p := strings.Index(s[1:], "-") + if p == -1 { + return s[1:], "" + } + p++ + return s[1:p], s[p:] +} + +// Extension is a single BCP 47 extension. +type Extension struct { + s string +} + +// String returns the string representation of the extension, including the +// type tag. +func (e Extension) String() string { + return e.s +} + +// ParseExtension parses s as an extension and returns it on success. +func ParseExtension(s string) (e Extension, err error) { + scan := makeScannerString(s) + var end int + if n := len(scan.token); n != 1 { + return Extension{}, errSyntax + } + scan.toLower(0, len(scan.b)) + end = parseExtension(&scan) + if end != len(s) { + return Extension{}, errSyntax + } + return Extension{string(scan.b)}, nil +} + +// Type returns the one-byte extension type of e. It returns 0 for the zero +// exception. +func (e Extension) Type() byte { + if e.s == "" { + return 0 + } + return e.s[0] +} + +// Tokens returns the list of tokens of e. +func (e Extension) Tokens() []string { + return strings.Split(e.s, "-") +} + +// Extension returns the extension of type x for tag t. It will return +// false for ok if t does not have the requested extension. The returned +// extension will be invalid in this case. +func (t Tag) Extension(x byte) (ext Extension, ok bool) { + for i := int(t.pExt); i < len(t.str)-1; { + var ext string + i, ext = getExtension(t.str, i) + if ext[0] == x { + return Extension{ext}, true + } + } + return Extension{string(x)}, false +} + +// Extensions returns all extensions of t. +func (t Tag) Extensions() []Extension { + e := []Extension{} + for i := int(t.pExt); i < len(t.str)-1; { + var ext string + i, ext = getExtension(t.str, i) + e = append(e, Extension{ext}) + } + return e +} + +// TypeForKey returns the type associated with the given key, where key and type +// are of the allowed values defined for the Unicode locale extension ('u') in +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// TypeForKey will traverse the inheritance chain to get the correct value. +func (t Tag) TypeForKey(key string) string { + if start, end, _ := t.findTypeForKey(key); end != start { + return t.str[start:end] + } + return "" +} + +var ( + errPrivateUse = errors.New("cannot set a key on a private use tag") + errInvalidArguments = errors.New("invalid key or type") +) + +// SetTypeForKey returns a new Tag with the key set to type, where key and type +// are of the allowed values defined for the Unicode locale extension ('u') in +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// An empty value removes an existing pair with the same key. +func (t Tag) SetTypeForKey(key, value string) (Tag, error) { + if t.private() { + return t, errPrivateUse + } + if len(key) != 2 { + return t, errInvalidArguments + } + + // Remove the setting if value is "". + if value == "" { + start, end, _ := t.findTypeForKey(key) + if start != end { + // Remove key tag and leading '-'. + start -= 4 + + // Remove a possible empty extension. + if (end == len(t.str) || t.str[end+2] == '-') && t.str[start-2] == '-' { + start -= 2 + } + if start == int(t.pVariant) && end == len(t.str) { + t.str = "" + t.pVariant, t.pExt = 0, 0 + } else { + t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:]) + } + } + return t, nil + } + + if len(value) < 3 || len(value) > 8 { + return t, errInvalidArguments + } + + var ( + buf [maxCoreSize + maxSimpleUExtensionSize]byte + uStart int // start of the -u extension. + ) + + // Generate the tag string if needed. + if t.str == "" { + uStart = t.genCoreBytes(buf[:]) + buf[uStart] = '-' + uStart++ + } + + // Create new key-type pair and parse it to verify. + b := buf[uStart:] + copy(b, "u-") + copy(b[2:], key) + b[4] = '-' + b = b[:5+copy(b[5:], value)] + scan := makeScanner(b) + if parseExtensions(&scan); scan.err != nil { + return t, scan.err + } + + // Assemble the replacement string. + if t.str == "" { + t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1) + t.str = string(buf[:uStart+len(b)]) + } else { + s := t.str + start, end, hasExt := t.findTypeForKey(key) + if start == end { + if hasExt { + b = b[2:] + } + t.str = fmt.Sprintf("%s-%s%s", s[:start], b, s[end:]) + } else { + t.str = fmt.Sprintf("%s%s%s", s[:start], value, s[end:]) + } + } + return t, nil +} + +// findKeyAndType returns the start and end position for the type corresponding +// to key or the point at which to insert the key-value pair if the type +// wasn't found. The hasExt return value reports whether an -u extension was present. +// Note: the extensions are typically very small and are likely to contain +// only one key-type pair. +func (t Tag) findTypeForKey(key string) (start, end int, hasExt bool) { + p := int(t.pExt) + if len(key) != 2 || p == len(t.str) || p == 0 { + return p, p, false + } + s := t.str + + // Find the correct extension. + for p++; s[p] != 'u'; p++ { + if s[p] > 'u' { + p-- + return p, p, false + } + if p = nextExtension(s, p); p == len(s) { + return len(s), len(s), false + } + } + // Proceed to the hyphen following the extension name. + p++ + + // curKey is the key currently being processed. + curKey := "" + + // Iterate over keys until we get the end of a section. + for { + // p points to the hyphen preceding the current token. + if p3 := p + 3; s[p3] == '-' { + // Found a key. + // Check whether we just processed the key that was requested. + if curKey == key { + return start, p, true + } + // Set to the next key and continue scanning type tokens. + curKey = s[p+1 : p3] + if curKey > key { + return p, p, true + } + // Start of the type token sequence. + start = p + 4 + // A type is at least 3 characters long. + p += 7 // 4 + 3 + } else { + // Attribute or type, which is at least 3 characters long. + p += 4 + } + // p points past the third character of a type or attribute. + max := p + 5 // maximum length of token plus hyphen. + if len(s) < max { + max = len(s) + } + for ; p < max && s[p] != '-'; p++ { + } + // Bail if we have exhausted all tokens or if the next token starts + // a new extension. + if p == len(s) || s[p+2] == '-' { + if curKey == key { + return start, p, true + } + return p, p, true + } + } +} + +// CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags +// for which data exists in the text repository. The index will change over time +// and should not be stored in persistent storage. Extensions, except for the +// 'va' type of the 'u' extension, are ignored. It will return 0, false if no +// compact tag exists, where 0 is the index for the root language (Und). +func CompactIndex(t Tag) (index int, ok bool) { + // TODO: perhaps give more frequent tags a lower index. + // TODO: we could make the indexes stable. This will excluded some + // possibilities for optimization, so don't do this quite yet. + b, s, r := t.Raw() + if len(t.str) > 0 { + if strings.HasPrefix(t.str, "x-") { + // We have no entries for user-defined tags. + return 0, false + } + if uint16(t.pVariant) != t.pExt { + // There are no tags with variants and an u-va type. + if t.TypeForKey("va") != "" { + return 0, false + } + t, _ = Raw.Compose(b, s, r, t.Variants()) + } else if _, ok := t.Extension('u'); ok { + // Strip all but the 'va' entry. + variant := t.TypeForKey("va") + t, _ = Raw.Compose(b, s, r) + t, _ = t.SetTypeForKey("va", variant) + } + if len(t.str) > 0 { + // We have some variants. + for i, s := range specialTags { + if s == t { + return i + 1, true + } + } + return 0, false + } + } + // No variants specified: just compare core components. + // The key has the form lllssrrr, where l, s, and r are nibbles for + // respectively the langID, scriptID, and regionID. + key := uint32(b.langID) << (8 + 12) + key |= uint32(s.scriptID) << 12 + key |= uint32(r.regionID) + x, ok := coreTags[key] + return int(x), ok +} + +// Base is an ISO 639 language code, used for encoding the base language +// of a language tag. +type Base struct { + langID +} + +// ParseBase parses a 2- or 3-letter ISO 639 code. +// It returns a ValueError if s is a well-formed but unknown language identifier +// or another error if another error occurred. +func ParseBase(s string) (Base, error) { + if n := len(s); n < 2 || 3 < n { + return Base{}, errSyntax + } + var buf [3]byte + l, err := getLangID(buf[:copy(buf[:], s)]) + return Base{l}, err +} + +// Script is a 4-letter ISO 15924 code for representing scripts. +// It is idiomatically represented in title case. +type Script struct { + scriptID +} + +// ParseScript parses a 4-letter ISO 15924 code. +// It returns a ValueError if s is a well-formed but unknown script identifier +// or another error if another error occurred. +func ParseScript(s string) (Script, error) { + if len(s) != 4 { + return Script{}, errSyntax + } + var buf [4]byte + sc, err := getScriptID(script, buf[:copy(buf[:], s)]) + return Script{sc}, err +} + +// Region is an ISO 3166-1 or UN M.49 code for representing countries and regions. +type Region struct { + regionID +} + +// EncodeM49 returns the Region for the given UN M.49 code. +// It returns an error if r is not a valid code. +func EncodeM49(r int) (Region, error) { + rid, err := getRegionM49(r) + return Region{rid}, err +} + +// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code. +// It returns a ValueError if s is a well-formed but unknown region identifier +// or another error if another error occurred. +func ParseRegion(s string) (Region, error) { + if n := len(s); n < 2 || 3 < n { + return Region{}, errSyntax + } + var buf [3]byte + r, err := getRegionID(buf[:copy(buf[:], s)]) + return Region{r}, err +} + +// IsCountry returns whether this region is a country or autonomous area. This +// includes non-standard definitions from CLDR. +func (r Region) IsCountry() bool { + if r.regionID == 0 || r.IsGroup() || r.IsPrivateUse() && r.regionID != _XK { + return false + } + return true +} + +// IsGroup returns whether this region defines a collection of regions. This +// includes non-standard definitions from CLDR. +func (r Region) IsGroup() bool { + if r.regionID == 0 { + return false + } + return int(regionInclusion[r.regionID]) < len(regionContainment) +} + +// Contains returns whether Region c is contained by Region r. It returns true +// if c == r. +func (r Region) Contains(c Region) bool { + return r.regionID.contains(c.regionID) +} + +func (r regionID) contains(c regionID) bool { + if r == c { + return true + } + g := regionInclusion[r] + if g >= nRegionGroups { + return false + } + m := regionContainment[g] + + d := regionInclusion[c] + b := regionInclusionBits[d] + + // A contained country may belong to multiple disjoint groups. Matching any + // of these indicates containment. If the contained region is a group, it + // must strictly be a subset. + if d >= nRegionGroups { + return b&m != 0 + } + return b&^m == 0 +} + +var errNoTLD = errors.New("language: region is not a valid ccTLD") + +// TLD returns the country code top-level domain (ccTLD). UK is returned for GB. +// In all other cases it returns either the region itself or an error. +// +// This method may return an error for a region for which there exists a +// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The +// region will already be canonicalized it was obtained from a Tag that was +// obtained using any of the default methods. +func (r Region) TLD() (Region, error) { + // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the + // difference between ISO 3166-1 and IANA ccTLD. + if r.regionID == _GB { + r = Region{_UK} + } + if (r.typ() & ccTLD) == 0 { + return Region{}, errNoTLD + } + return r, nil +} + +// Canonicalize returns the region or a possible replacement if the region is +// deprecated. It will not return a replacement for deprecated regions that +// are split into multiple regions. +func (r Region) Canonicalize() Region { + if cr := normRegion(r.regionID); cr != 0 { + return Region{cr} + } + return r +} + +// Variant represents a registered variant of a language as defined by BCP 47. +type Variant struct { + variant string +} + +// ParseVariant parses and returns a Variant. An error is returned if s is not +// a valid variant. +func ParseVariant(s string) (Variant, error) { + s = strings.ToLower(s) + if _, ok := variantIndex[s]; ok { + return Variant{s}, nil + } + return Variant{}, mkErrInvalid([]byte(s)) +} + +// String returns the string representation of the variant. +func (v Variant) String() string { + return v.variant +} diff --git a/vendor/golang.org/x/text/language/language_test.go b/vendor/golang.org/x/text/language/language_test.go new file mode 100644 index 00000000..00a63c7e --- /dev/null +++ b/vendor/golang.org/x/text/language/language_test.go @@ -0,0 +1,878 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "reflect" + "testing" + + "golang.org/x/text/internal/testtext" +) + +func TestTagSize(t *testing.T) { + id := Tag{} + typ := reflect.TypeOf(id) + if typ.Size() > 24 { + t.Errorf("size of Tag was %d; want 24", typ.Size()) + } +} + +func TestIsRoot(t *testing.T) { + loc := Tag{} + if !loc.IsRoot() { + t.Errorf("unspecified should be root.") + } + for i, tt := range parseTests() { + loc, _ := Parse(tt.in) + undef := tt.lang == "und" && tt.script == "" && tt.region == "" && tt.ext == "" + if loc.IsRoot() != undef { + t.Errorf("%d: was %v; want %v", i, loc.IsRoot(), undef) + } + } +} + +func TestEquality(t *testing.T) { + for i, tt := range parseTests()[48:49] { + s := tt.in + tag := Make(s) + t1 := Make(tag.String()) + if tag != t1 { + t.Errorf("%d:%s: equality test 1 failed\n got: %#v\nwant: %#v)", i, s, t1, tag) + } + t2, _ := Compose(tag) + if tag != t2 { + t.Errorf("%d:%s: equality test 2 failed\n got: %#v\nwant: %#v", i, s, t2, tag) + } + } +} + +func TestMakeString(t *testing.T) { + tests := []struct{ in, out string }{ + {"und", "und"}, + {"und", "und-CW"}, + {"nl", "nl-NL"}, + {"de-1901", "nl-1901"}, + {"de-1901", "de-Arab-1901"}, + {"x-a-b", "de-Arab-x-a-b"}, + {"x-a-b", "x-a-b"}, + } + for i, tt := range tests { + id, _ := Parse(tt.in) + mod, _ := Parse(tt.out) + id.setTagsFrom(mod) + for j := 0; j < 2; j++ { + id.remakeString() + if str := id.String(); str != tt.out { + t.Errorf("%d:%d: found %s; want %s", i, j, id.String(), tt.out) + } + } + // The bytes to string conversion as used in remakeString + // occasionally measures as more than one alloc, breaking this test. + // To alleviate this we set the number of runs to more than 1. + if n := testtext.AllocsPerRun(8, id.remakeString); n > 1 { + t.Errorf("%d: # allocs got %.1f; want <= 1", i, n) + } + } +} + +func TestCompactIndex(t *testing.T) { + tests := []struct { + tag string + index int + ok bool + }{ + // TODO: these values will change with each CLDR update. This issue + // will be solved if we decide to fix the indexes. + {"und", 0, true}, + {"ca-ES-valencia", 1, true}, + {"ca-ES-valencia-u-va-posix", 0, false}, + {"ca-ES-valencia-u-co-phonebk", 1, true}, + {"ca-ES-valencia-u-co-phonebk-va-posix", 0, false}, + {"x-klingon", 0, false}, + {"en-US", 227, true}, + {"en-US-u-va-posix", 2, true}, + {"en", 131, true}, + {"en-u-co-phonebk", 131, true}, + {"en-001", 132, true}, + {"sh", 0, false}, // We don't normalize. + } + for _, tt := range tests { + x, ok := CompactIndex(Raw.MustParse(tt.tag)) + if x != tt.index || ok != tt.ok { + t.Errorf("%s: got %d, %v; want %d %v", tt.tag, x, ok, tt.index, tt.ok) + } + } +} + +func TestBase(t *testing.T) { + tests := []struct { + loc, lang string + conf Confidence + }{ + {"und", "en", Low}, + {"x-abc", "und", No}, + {"en", "en", Exact}, + {"und-Cyrl", "ru", High}, + // If a region is not included, the official language should be English. + {"und-US", "en", High}, + // TODO: not-explicitly listed scripts should probably be und, No + // Modify addTags to return info on how the match was derived. + // {"und-Aghb", "und", No}, + } + for i, tt := range tests { + loc, _ := Parse(tt.loc) + lang, conf := loc.Base() + if lang.String() != tt.lang { + t.Errorf("%d: language was %s; want %s", i, lang, tt.lang) + } + if conf != tt.conf { + t.Errorf("%d: confidence was %d; want %d", i, conf, tt.conf) + } + } +} + +func TestParseBase(t *testing.T) { + tests := []struct { + in string + out string + ok bool + }{ + {"en", "en", true}, + {"EN", "en", true}, + {"nld", "nl", true}, + {"dut", "dut", true}, // bibliographic + {"aaj", "und", false}, // unknown + {"qaa", "qaa", true}, + {"a", "und", false}, + {"", "und", false}, + {"aaaa", "und", false}, + } + for i, tt := range tests { + x, err := ParseBase(tt.in) + if x.String() != tt.out || err == nil != tt.ok { + t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, x, err == nil, tt.out, tt.ok) + } + if y, _, _ := Raw.Make(tt.out).Raw(); x != y { + t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, x, y) + } + } +} + +func TestScript(t *testing.T) { + tests := []struct { + loc, scr string + conf Confidence + }{ + {"und", "Latn", Low}, + {"en-Latn", "Latn", Exact}, + {"en", "Latn", High}, + {"sr", "Cyrl", Low}, + {"kk", "Cyrl", High}, + {"kk-CN", "Arab", Low}, + {"cmn", "Hans", Low}, + {"ru", "Cyrl", High}, + {"ru-RU", "Cyrl", High}, + {"yue", "Hant", Low}, + {"x-abc", "Zzzz", Low}, + {"und-zyyy", "Zyyy", Exact}, + } + for i, tt := range tests { + loc, _ := Parse(tt.loc) + sc, conf := loc.Script() + if sc.String() != tt.scr { + t.Errorf("%d:%s: script was %s; want %s", i, tt.loc, sc, tt.scr) + } + if conf != tt.conf { + t.Errorf("%d:%s: confidence was %d; want %d", i, tt.loc, conf, tt.conf) + } + } +} + +func TestParseScript(t *testing.T) { + tests := []struct { + in string + out string + ok bool + }{ + {"Latn", "Latn", true}, + {"zzzz", "Zzzz", true}, + {"zyyy", "Zyyy", true}, + {"Latm", "Zzzz", false}, + {"Zzz", "Zzzz", false}, + {"", "Zzzz", false}, + {"Zzzxx", "Zzzz", false}, + } + for i, tt := range tests { + x, err := ParseScript(tt.in) + if x.String() != tt.out || err == nil != tt.ok { + t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, x, err == nil, tt.out, tt.ok) + } + if err == nil { + if _, y, _ := Raw.Make("und-" + tt.out).Raw(); x != y { + t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, x, y) + } + } + } +} + +func TestRegion(t *testing.T) { + tests := []struct { + loc, reg string + conf Confidence + }{ + {"und", "US", Low}, + {"en", "US", Low}, + {"zh-Hant", "TW", Low}, + {"en-US", "US", Exact}, + {"cmn", "CN", Low}, + {"ru", "RU", Low}, + {"yue", "HK", Low}, + {"x-abc", "ZZ", Low}, + } + for i, tt := range tests { + loc, _ := Raw.Parse(tt.loc) + reg, conf := loc.Region() + if reg.String() != tt.reg { + t.Errorf("%d:%s: region was %s; want %s", i, tt.loc, reg, tt.reg) + } + if conf != tt.conf { + t.Errorf("%d:%s: confidence was %d; want %d", i, tt.loc, conf, tt.conf) + } + } +} + +func TestEncodeM49(t *testing.T) { + tests := []struct { + m49 int + code string + ok bool + }{ + {1, "001", true}, + {840, "US", true}, + {899, "ZZ", false}, + } + for i, tt := range tests { + if r, err := EncodeM49(tt.m49); r.String() != tt.code || err == nil != tt.ok { + t.Errorf("%d:%d: was %s, %v; want %s, %v", i, tt.m49, r, err == nil, tt.code, tt.ok) + } + } + for i := 1; i <= 1000; i++ { + if r, err := EncodeM49(i); err == nil && r.M49() == 0 { + t.Errorf("%d has no error, but maps to undefined region", i) + } + } +} + +func TestParseRegion(t *testing.T) { + tests := []struct { + in string + out string + ok bool + }{ + {"001", "001", true}, + {"840", "US", true}, + {"899", "ZZ", false}, + {"USA", "US", true}, + {"US", "US", true}, + {"BC", "ZZ", false}, + {"C", "ZZ", false}, + {"CCCC", "ZZ", false}, + {"01", "ZZ", false}, + } + for i, tt := range tests { + r, err := ParseRegion(tt.in) + if r.String() != tt.out || err == nil != tt.ok { + t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tt.in, r, err == nil, tt.out, tt.ok) + } + if err == nil { + if _, _, y := Raw.Make("und-" + tt.out).Raw(); r != y { + t.Errorf("%d:%s: tag was %s; want %s", i, tt.in, r, y) + } + } + } +} + +func TestIsCountry(t *testing.T) { + tests := []struct { + reg string + country bool + }{ + {"US", true}, + {"001", false}, + {"958", false}, + {"419", false}, + {"203", true}, + {"020", true}, + {"900", false}, + {"999", false}, + {"QO", false}, + {"EU", false}, + {"AA", false}, + {"XK", true}, + } + for i, tt := range tests { + reg, _ := getRegionID([]byte(tt.reg)) + r := Region{reg} + if r.IsCountry() != tt.country { + t.Errorf("%d: IsCountry(%s) was %v; want %v", i, tt.reg, r.IsCountry(), tt.country) + } + } +} + +func TestIsGroup(t *testing.T) { + tests := []struct { + reg string + group bool + }{ + {"US", false}, + {"001", true}, + {"958", false}, + {"419", true}, + {"203", false}, + {"020", false}, + {"900", false}, + {"999", false}, + {"QO", true}, + {"EU", true}, + {"AA", false}, + {"XK", false}, + } + for i, tt := range tests { + reg, _ := getRegionID([]byte(tt.reg)) + r := Region{reg} + if r.IsGroup() != tt.group { + t.Errorf("%d: IsGroup(%s) was %v; want %v", i, tt.reg, r.IsGroup(), tt.group) + } + } +} + +func TestContains(t *testing.T) { + tests := []struct { + enclosing, contained string + contains bool + }{ + // A region contains itself. + {"US", "US", true}, + {"001", "001", true}, + + // Direct containment. + {"001", "002", true}, + {"039", "XK", true}, + {"150", "XK", true}, + {"EU", "AT", true}, + {"QO", "AQ", true}, + + // Indirect containemnt. + {"001", "US", true}, + {"001", "419", true}, + {"001", "013", true}, + + // No containment. + {"US", "001", false}, + {"155", "EU", false}, + } + for i, tt := range tests { + enc, _ := getRegionID([]byte(tt.enclosing)) + con, _ := getRegionID([]byte(tt.contained)) + r := Region{enc} + if got := r.Contains(Region{con}); got != tt.contains { + t.Errorf("%d: %s.Contains(%s) was %v; want %v", i, tt.enclosing, tt.contained, got, tt.contains) + } + } +} + +func TestRegionCanonicalize(t *testing.T) { + for i, tt := range []struct{ in, out string }{ + {"UK", "GB"}, + {"TP", "TL"}, + {"QU", "EU"}, + {"SU", "SU"}, + {"VD", "VN"}, + {"DD", "DE"}, + } { + r := MustParseRegion(tt.in) + want := MustParseRegion(tt.out) + if got := r.Canonicalize(); got != want { + t.Errorf("%d: got %v; want %v", i, got, want) + } + } +} + +func TestRegionTLD(t *testing.T) { + for _, tt := range []struct { + in, out string + ok bool + }{ + {"EH", "EH", true}, + {"FR", "FR", true}, + {"TL", "TL", true}, + + // In ccTLD before in ISO. + {"GG", "GG", true}, + + // Non-standard assignment of ccTLD to ISO code. + {"GB", "UK", true}, + + // Exceptionally reserved in ISO and valid ccTLD. + {"UK", "UK", true}, + {"AC", "AC", true}, + {"EU", "EU", true}, + {"SU", "SU", true}, + + // Exceptionally reserved in ISO and invalid ccTLD. + {"CP", "ZZ", false}, + {"DG", "ZZ", false}, + {"EA", "ZZ", false}, + {"FX", "ZZ", false}, + {"IC", "ZZ", false}, + {"TA", "ZZ", false}, + + // Transitionally reserved in ISO (e.g. deprecated) but valid ccTLD as + // it is still being phased out. + {"AN", "AN", true}, + {"TP", "TP", true}, + + // Transitionally reserved in ISO (e.g. deprecated) and invalid ccTLD. + // Defined in package language as it has a mapping in CLDR. + {"BU", "ZZ", false}, + {"CS", "ZZ", false}, + {"NT", "ZZ", false}, + {"YU", "ZZ", false}, + {"ZR", "ZZ", false}, + // Not defined in package: SF. + + // Indeterminately reserved in ISO. + // Defined in package language as it has a legacy mapping in CLDR. + {"DY", "ZZ", false}, + {"RH", "ZZ", false}, + {"VD", "ZZ", false}, + // Not defined in package: EW, FL, JA, LF, PI, RA, RB, RC, RI, RL, RM, + // RN, RP, WG, WL, WV, and YV. + + // Not assigned in ISO, but legacy definitions in CLDR. + {"DD", "ZZ", false}, + {"YD", "ZZ", false}, + + // Normal mappings but somewhat special status in ccTLD. + {"BL", "BL", true}, + {"MF", "MF", true}, + {"BV", "BV", true}, + {"SJ", "SJ", true}, + + // Have values when normalized, but not as is. + {"QU", "ZZ", false}, + + // ISO Private Use. + {"AA", "ZZ", false}, + {"QM", "ZZ", false}, + {"QO", "ZZ", false}, + {"XA", "ZZ", false}, + {"XK", "ZZ", false}, // Sometimes used for Kosovo, but invalid ccTLD. + } { + if tt.in == "" { + continue + } + + r := MustParseRegion(tt.in) + var want Region + if tt.out != "ZZ" { + want = MustParseRegion(tt.out) + } + tld, err := r.TLD() + if got := err == nil; got != tt.ok { + t.Errorf("error(%v): got %v; want %v", r, got, tt.ok) + } + if tld != want { + t.Errorf("TLD(%v): got %v; want %v", r, tld, want) + } + } +} + +func TestCanonicalize(t *testing.T) { + // TODO: do a full test using CLDR data in a separate regression test. + tests := []struct { + in, out string + option CanonType + }{ + {"en-Latn", "en", SuppressScript}, + {"sr-Cyrl", "sr-Cyrl", SuppressScript}, + {"sh", "sr-Latn", Legacy}, + {"sh-HR", "sr-Latn-HR", Legacy}, + {"sh-Cyrl-HR", "sr-Cyrl-HR", Legacy}, + {"tl", "fil", Legacy}, + {"no", "no", Legacy}, + {"no", "nb", Legacy | CLDR}, + {"cmn", "cmn", Legacy}, + {"cmn", "zh", Macro}, + {"cmn-u-co-stroke", "zh-u-co-stroke", Macro}, + {"yue", "yue", Macro}, + {"nb", "no", Macro}, + {"nb", "nb", Macro | CLDR}, + {"no", "no", Macro}, + {"no", "no", Macro | CLDR}, + {"iw", "he", DeprecatedBase}, + {"iw", "he", Deprecated | CLDR}, + {"mo", "ro-MD", Deprecated}, // Adopted by CLDR as of version 25. + {"alb", "sq", Legacy}, // bibliographic + {"dut", "nl", Legacy}, // bibliographic + // As of CLDR 25, mo is no longer considered a legacy mapping. + {"mo", "mo", Legacy | CLDR}, + {"und-AN", "und-AN", Deprecated}, + {"und-YD", "und-YE", DeprecatedRegion}, + {"und-YD", "und-YD", DeprecatedBase}, + {"und-Qaai", "und-Zinh", DeprecatedScript}, + {"und-Qaai", "und-Qaai", DeprecatedBase}, + {"drh", "mn", All}, // drh -> khk -> mn + } + for i, tt := range tests { + in, _ := Raw.Parse(tt.in) + in, _ = tt.option.Canonicalize(in) + if in.String() != tt.out { + t.Errorf("%d:%s: was %s; want %s", i, tt.in, in.String(), tt.out) + } + if int(in.pVariant) > int(in.pExt) || int(in.pExt) > len(in.str) { + t.Errorf("%d:%s:offsets %d <= %d <= %d must be true", i, tt.in, in.pVariant, in.pExt, len(in.str)) + } + } + // Test idempotence. + for _, base := range Supported.BaseLanguages() { + tag, _ := Raw.Compose(base) + got, _ := All.Canonicalize(tag) + want, _ := All.Canonicalize(got) + if got != want { + t.Errorf("idem(%s): got %s; want %s", tag, got, want) + } + } +} + +func TestTypeForKey(t *testing.T) { + tests := []struct{ key, in, out string }{ + {"co", "en", ""}, + {"co", "en-u-abc", ""}, + {"co", "en-u-co-phonebk", "phonebk"}, + {"co", "en-u-co-phonebk-cu-aud", "phonebk"}, + {"co", "x-foo-u-co-phonebk", ""}, + {"nu", "en-u-co-phonebk-nu-arabic", "arabic"}, + {"kc", "cmn-u-co-stroke", ""}, + } + for _, tt := range tests { + if v := Make(tt.in).TypeForKey(tt.key); v != tt.out { + t.Errorf("%q[%q]: was %q; want %q", tt.in, tt.key, v, tt.out) + } + } +} + +func TestSetTypeForKey(t *testing.T) { + tests := []struct { + key, value, in, out string + err bool + }{ + // replace existing value + {"co", "pinyin", "en-u-co-phonebk", "en-u-co-pinyin", false}, + {"co", "pinyin", "en-u-co-phonebk-cu-xau", "en-u-co-pinyin-cu-xau", false}, + {"co", "pinyin", "en-u-co-phonebk-v-xx", "en-u-co-pinyin-v-xx", false}, + {"co", "pinyin", "en-u-co-phonebk-x-x", "en-u-co-pinyin-x-x", false}, + {"nu", "arabic", "en-u-co-phonebk-nu-vaai", "en-u-co-phonebk-nu-arabic", false}, + // add to existing -u extension + {"co", "pinyin", "en-u-ca-gregory", "en-u-ca-gregory-co-pinyin", false}, + {"co", "pinyin", "en-u-ca-gregory-nu-vaai", "en-u-ca-gregory-co-pinyin-nu-vaai", false}, + {"co", "pinyin", "en-u-ca-gregory-v-va", "en-u-ca-gregory-co-pinyin-v-va", false}, + {"co", "pinyin", "en-u-ca-gregory-x-a", "en-u-ca-gregory-co-pinyin-x-a", false}, + {"ca", "gregory", "en-u-co-pinyin", "en-u-ca-gregory-co-pinyin", false}, + // remove pair + {"co", "", "en-u-co-phonebk", "en", false}, + {"co", "", "en-u-ca-gregory-co-phonebk", "en-u-ca-gregory", false}, + {"co", "", "en-u-co-phonebk-nu-arabic", "en-u-nu-arabic", false}, + {"co", "", "en", "en", false}, + // add -u extension + {"co", "pinyin", "en", "en-u-co-pinyin", false}, + {"co", "pinyin", "und", "und-u-co-pinyin", false}, + {"co", "pinyin", "en-a-aaa", "en-a-aaa-u-co-pinyin", false}, + {"co", "pinyin", "en-x-aaa", "en-u-co-pinyin-x-aaa", false}, + {"co", "pinyin", "en-v-aa", "en-u-co-pinyin-v-aa", false}, + {"co", "pinyin", "en-a-aaa-x-x", "en-a-aaa-u-co-pinyin-x-x", false}, + {"co", "pinyin", "en-a-aaa-v-va", "en-a-aaa-u-co-pinyin-v-va", false}, + // error on invalid values + {"co", "pinyinxxx", "en", "en", true}, + {"co", "piny.n", "en", "en", true}, + {"co", "pinyinxxx", "en-a-aaa", "en-a-aaa", true}, + {"co", "pinyinxxx", "en-u-aaa", "en-u-aaa", true}, + {"co", "pinyinxxx", "en-u-aaa-co-pinyin", "en-u-aaa-co-pinyin", true}, + {"co", "pinyi.", "en-u-aaa-co-pinyin", "en-u-aaa-co-pinyin", true}, + {"col", "pinyin", "en", "en", true}, + {"co", "cu", "en", "en", true}, + // error when setting on a private use tag + {"co", "phonebook", "x-foo", "x-foo", true}, + } + for i, tt := range tests { + tag := Make(tt.in) + if v, err := tag.SetTypeForKey(tt.key, tt.value); v.String() != tt.out { + t.Errorf("%d:%q[%q]=%q: was %q; want %q", i, tt.in, tt.key, tt.value, v, tt.out) + } else if (err != nil) != tt.err { + t.Errorf("%d:%q[%q]=%q: error was %v; want %v", i, tt.in, tt.key, tt.value, err != nil, tt.err) + } else if val := v.TypeForKey(tt.key); err == nil && val != tt.value { + t.Errorf("%d:%q[%q]==%q: was %v; want %v", i, tt.out, tt.key, tt.value, val, tt.value) + } + if len(tag.String()) <= 3 { + // Simulate a tag for which the string has not been set. + tag.str, tag.pExt, tag.pVariant = "", 0, 0 + if tag, err := tag.SetTypeForKey(tt.key, tt.value); err == nil { + if val := tag.TypeForKey(tt.key); err == nil && val != tt.value { + t.Errorf("%d:%q[%q]==%q: was %v; want %v", i, tt.out, tt.key, tt.value, val, tt.value) + } + } + } + } +} + +func TestFindKeyAndType(t *testing.T) { + // out is either the matched type in case of a match or the original + // string up till the insertion point. + tests := []struct { + key string + hasExt bool + in, out string + }{ + // Don't search past a private use extension. + {"co", false, "en-x-foo-u-co-pinyin", "en"}, + {"co", false, "x-foo-u-co-pinyin", ""}, + {"co", false, "en-s-fff-x-foo", "en-s-fff"}, + // Insertion points in absence of -u extension. + {"cu", false, "en", ""}, // t.str is "" + {"cu", false, "en-v-va", "en"}, + {"cu", false, "en-a-va", "en-a-va"}, + {"cu", false, "en-a-va-v-va", "en-a-va"}, + {"cu", false, "en-x-a", "en"}, + // Tags with the -u extension. + {"co", true, "en-u-co-standard", "standard"}, + {"co", true, "yue-u-co-pinyin", "pinyin"}, + {"co", true, "en-u-co-abc", "abc"}, + {"co", true, "en-u-co-abc-def", "abc-def"}, + {"co", true, "en-u-co-abc-def-x-foo", "abc-def"}, + {"co", true, "en-u-co-standard-nu-arab", "standard"}, + {"co", true, "yue-u-co-pinyin-nu-arab", "pinyin"}, + // Insertion points. + {"cu", true, "en-u-co-standard", "en-u-co-standard"}, + {"cu", true, "yue-u-co-pinyin-x-foo", "yue-u-co-pinyin"}, + {"cu", true, "en-u-co-abc", "en-u-co-abc"}, + {"cu", true, "en-u-nu-arabic", "en-u"}, + {"cu", true, "en-u-co-abc-def-nu-arabic", "en-u-co-abc-def"}, + } + for i, tt := range tests { + start, end, hasExt := Make(tt.in).findTypeForKey(tt.key) + if start != end { + res := tt.in[start:end] + if res != tt.out { + t.Errorf("%d:%s: was %q; want %q", i, tt.in, res, tt.out) + } + } else { + if hasExt != tt.hasExt { + t.Errorf("%d:%s: hasExt was %v; want %v", i, tt.in, hasExt, tt.hasExt) + continue + } + if tt.in[:start] != tt.out { + t.Errorf("%d:%s: insertion point was %q; want %q", i, tt.in, tt.in[:start], tt.out) + } + } + } +} + +func TestParent(t *testing.T) { + tests := []struct{ in, out string }{ + // Strip variants and extensions first + {"de-u-co-phonebk", "de"}, + {"de-1994", "de"}, + {"de-Latn-1994", "de"}, // remove superfluous script. + + // Ensure the canonical Tag for an entry is in the chain for base-script + // pairs. + {"zh-Hans", "zh"}, + + // Skip the script if it is the maximized version. CLDR files for the + // skipped tag are always empty. + {"zh-Hans-TW", "zh"}, + {"zh-Hans-CN", "zh"}, + + // Insert the script if the maximized script is not the same as the + // maximized script of the base language. + {"zh-TW", "zh-Hant"}, + {"zh-HK", "zh-Hant"}, + {"zh-Hant-TW", "zh-Hant"}, + {"zh-Hant-HK", "zh-Hant"}, + + // Non-default script skips to und. + // CLDR + {"az-Cyrl", "und"}, + {"bs-Cyrl", "und"}, + {"en-Dsrt", "und"}, + {"ha-Arab", "und"}, + {"mn-Mong", "und"}, + {"pa-Arab", "und"}, + {"shi-Latn", "und"}, + {"sr-Latn", "und"}, + {"uz-Arab", "und"}, + {"uz-Cyrl", "und"}, + {"vai-Latn", "und"}, + {"zh-Hant", "und"}, + // extra + {"nl-Cyrl", "und"}, + + // World english inherits from en-001. + {"en-150", "en-001"}, + {"en-AU", "en-001"}, + {"en-BE", "en-001"}, + {"en-GG", "en-001"}, + {"en-GI", "en-001"}, + {"en-HK", "en-001"}, + {"en-IE", "en-001"}, + {"en-IM", "en-001"}, + {"en-IN", "en-001"}, + {"en-JE", "en-001"}, + {"en-MT", "en-001"}, + {"en-NZ", "en-001"}, + {"en-PK", "en-001"}, + {"en-SG", "en-001"}, + + // Spanish in Latin-American countries have es-419 as parent. + {"es-AR", "es-419"}, + {"es-BO", "es-419"}, + {"es-CL", "es-419"}, + {"es-CO", "es-419"}, + {"es-CR", "es-419"}, + {"es-CU", "es-419"}, + {"es-DO", "es-419"}, + {"es-EC", "es-419"}, + {"es-GT", "es-419"}, + {"es-HN", "es-419"}, + {"es-MX", "es-419"}, + {"es-NI", "es-419"}, + {"es-PA", "es-419"}, + {"es-PE", "es-419"}, + {"es-PR", "es-419"}, + {"es-PY", "es-419"}, + {"es-SV", "es-419"}, + {"es-US", "es-419"}, + {"es-UY", "es-419"}, + {"es-VE", "es-419"}, + // exceptions (according to CLDR) + {"es-CW", "es"}, + + // Inherit from pt-PT, instead of pt for these countries. + {"pt-AO", "pt-PT"}, + {"pt-CV", "pt-PT"}, + {"pt-GW", "pt-PT"}, + {"pt-MO", "pt-PT"}, + {"pt-MZ", "pt-PT"}, + {"pt-ST", "pt-PT"}, + {"pt-TL", "pt-PT"}, + } + for _, tt := range tests { + tag := Raw.MustParse(tt.in) + if p := Raw.MustParse(tt.out); p != tag.Parent() { + t.Errorf("%s: was %v; want %v", tt.in, tag.Parent(), p) + } + } +} + +var ( + // Tags without error that don't need to be changed. + benchBasic = []string{ + "en", + "en-Latn", + "en-GB", + "za", + "zh-Hant", + "zh", + "zh-HK", + "ar-MK", + "en-CA", + "fr-CA", + "fr-CH", + "fr", + "lv", + "he-IT", + "tlh", + "ja", + "ja-Jpan", + "ja-Jpan-JP", + "de-1996", + "de-CH", + "sr", + "sr-Latn", + } + // Tags with extensions, not changes required. + benchExt = []string{ + "x-a-b-c-d", + "x-aa-bbbb-cccccccc-d", + "en-x_cc-b-bbb-a-aaa", + "en-c_cc-b-bbb-a-aaa-x-x", + "en-u-co-phonebk", + "en-Cyrl-u-co-phonebk", + "en-US-u-co-phonebk-cu-xau", + "en-nedix-u-co-phonebk", + "en-t-t0-abcd", + "en-t-nl-latn", + "en-t-t0-abcd-x-a", + } + // Change, but not memory allocation required. + benchSimpleChange = []string{ + "EN", + "i-klingon", + "en-latn", + "zh-cmn-Hans-CN", + "iw-NL", + } + // Change and memory allocation required. + benchChangeAlloc = []string{ + "en-c_cc-b-bbb-a-aaa", + "en-u-cu-xua-co-phonebk", + "en-u-cu-xua-co-phonebk-a-cd", + "en-u-def-abc-cu-xua-co-phonebk", + "en-t-en-Cyrl-NL-1994", + "en-t-en-Cyrl-NL-1994-t0-abc-def", + } + // Tags that result in errors. + benchErr = []string{ + // IllFormed + "x_A.-B-C_D", + "en-u-cu-co-phonebk", + "en-u-cu-xau-co", + "en-t-nl-abcd", + // Invalid + "xx", + "nl-Uuuu", + "nl-QB", + } + benchChange = append(benchSimpleChange, benchChangeAlloc...) + benchAll = append(append(append(benchBasic, benchExt...), benchChange...), benchErr...) +) + +func doParse(b *testing.B, tag []string) { + for i := 0; i < b.N; i++ { + // Use the modulo instead of looping over all tags so that we get a somewhat + // meaningful ns/op. + Parse(tag[i%len(tag)]) + } +} + +func BenchmarkParse(b *testing.B) { + doParse(b, benchAll) +} + +func BenchmarkParseBasic(b *testing.B) { + doParse(b, benchBasic) +} + +func BenchmarkParseError(b *testing.B) { + doParse(b, benchErr) +} + +func BenchmarkParseSimpleChange(b *testing.B) { + doParse(b, benchSimpleChange) +} + +func BenchmarkParseChangeAlloc(b *testing.B) { + doParse(b, benchChangeAlloc) +} diff --git a/vendor/golang.org/x/text/language/lookup.go b/vendor/golang.org/x/text/language/lookup.go new file mode 100644 index 00000000..1d80ac37 --- /dev/null +++ b/vendor/golang.org/x/text/language/lookup.go @@ -0,0 +1,396 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "bytes" + "fmt" + "sort" + "strconv" + + "golang.org/x/text/internal/tag" +) + +// findIndex tries to find the given tag in idx and returns a standardized error +// if it could not be found. +func findIndex(idx tag.Index, key []byte, form string) (index int, err error) { + if !tag.FixCase(form, key) { + return 0, errSyntax + } + i := idx.Index(key) + if i == -1 { + return 0, mkErrInvalid(key) + } + return i, nil +} + +func searchUint(imap []uint16, key uint16) int { + return sort.Search(len(imap), func(i int) bool { + return imap[i] >= key + }) +} + +type langID uint16 + +// getLangID returns the langID of s if s is a canonical subtag +// or langUnknown if s is not a canonical subtag. +func getLangID(s []byte) (langID, error) { + if len(s) == 2 { + return getLangISO2(s) + } + return getLangISO3(s) +} + +// mapLang returns the mapped langID of id according to mapping m. +func normLang(id langID) (langID, langAliasType) { + k := sort.Search(len(langAliasMap), func(i int) bool { + return langAliasMap[i].from >= uint16(id) + }) + if k < len(langAliasMap) && langAliasMap[k].from == uint16(id) { + return langID(langAliasMap[k].to), langAliasTypes[k] + } + return id, langAliasTypeUnknown +} + +// getLangISO2 returns the langID for the given 2-letter ISO language code +// or unknownLang if this does not exist. +func getLangISO2(s []byte) (langID, error) { + if !tag.FixCase("zz", s) { + return 0, errSyntax + } + if i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 { + return langID(i), nil + } + return 0, mkErrInvalid(s) +} + +const base = 'z' - 'a' + 1 + +func strToInt(s []byte) uint { + v := uint(0) + for i := 0; i < len(s); i++ { + v *= base + v += uint(s[i] - 'a') + } + return v +} + +// converts the given integer to the original ASCII string passed to strToInt. +// len(s) must match the number of characters obtained. +func intToStr(v uint, s []byte) { + for i := len(s) - 1; i >= 0; i-- { + s[i] = byte(v%base) + 'a' + v /= base + } +} + +// getLangISO3 returns the langID for the given 3-letter ISO language code +// or unknownLang if this does not exist. +func getLangISO3(s []byte) (langID, error) { + if tag.FixCase("und", s) { + // first try to match canonical 3-letter entries + for i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) { + if e := lang.Elem(i); e[3] == 0 && e[2] == s[2] { + // We treat "und" as special and always translate it to "unspecified". + // Note that ZZ and Zzzz are private use and are not treated as + // unspecified by default. + id := langID(i) + if id == nonCanonicalUnd { + return 0, nil + } + return id, nil + } + } + if i := altLangISO3.Index(s); i != -1 { + return langID(altLangIndex[altLangISO3.Elem(i)[3]]), nil + } + n := strToInt(s) + if langNoIndex[n/8]&(1<<(n%8)) != 0 { + return langID(n) + langNoIndexOffset, nil + } + // Check for non-canonical uses of ISO3. + for i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) { + if e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] { + return langID(i), nil + } + } + return 0, mkErrInvalid(s) + } + return 0, errSyntax +} + +// stringToBuf writes the string to b and returns the number of bytes +// written. cap(b) must be >= 3. +func (id langID) stringToBuf(b []byte) int { + if id >= langNoIndexOffset { + intToStr(uint(id)-langNoIndexOffset, b[:3]) + return 3 + } else if id == 0 { + return copy(b, "und") + } + l := lang[id<<2:] + if l[3] == 0 { + return copy(b, l[:3]) + } + return copy(b, l[:2]) +} + +// String returns the BCP 47 representation of the langID. +// Use b as variable name, instead of id, to ensure the variable +// used is consistent with that of Base in which this type is embedded. +func (b langID) String() string { + if b == 0 { + return "und" + } else if b >= langNoIndexOffset { + b -= langNoIndexOffset + buf := [3]byte{} + intToStr(uint(b), buf[:]) + return string(buf[:]) + } + l := lang.Elem(int(b)) + if l[3] == 0 { + return l[:3] + } + return l[:2] +} + +// ISO3 returns the ISO 639-3 language code. +func (b langID) ISO3() string { + if b == 0 || b >= langNoIndexOffset { + return b.String() + } + l := lang.Elem(int(b)) + if l[3] == 0 { + return l[:3] + } else if l[2] == 0 { + return altLangISO3.Elem(int(l[3]))[:3] + } + // This allocation will only happen for 3-letter ISO codes + // that are non-canonical BCP 47 language identifiers. + return l[0:1] + l[2:4] +} + +// IsPrivateUse reports whether this language code is reserved for private use. +func (b langID) IsPrivateUse() bool { + return langPrivateStart <= b && b <= langPrivateEnd +} + +type regionID uint16 + +// getRegionID returns the region id for s if s is a valid 2-letter region code +// or unknownRegion. +func getRegionID(s []byte) (regionID, error) { + if len(s) == 3 { + if isAlpha(s[0]) { + return getRegionISO3(s) + } + if i, err := strconv.ParseUint(string(s), 10, 10); err == nil { + return getRegionM49(int(i)) + } + } + return getRegionISO2(s) +} + +// getRegionISO2 returns the regionID for the given 2-letter ISO country code +// or unknownRegion if this does not exist. +func getRegionISO2(s []byte) (regionID, error) { + i, err := findIndex(regionISO, s, "ZZ") + if err != nil { + return 0, err + } + return regionID(i) + isoRegionOffset, nil +} + +// getRegionISO3 returns the regionID for the given 3-letter ISO country code +// or unknownRegion if this does not exist. +func getRegionISO3(s []byte) (regionID, error) { + if tag.FixCase("ZZZ", s) { + for i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) { + if e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] { + return regionID(i) + isoRegionOffset, nil + } + } + for i := 0; i < len(altRegionISO3); i += 3 { + if tag.Compare(altRegionISO3[i:i+3], s) == 0 { + return regionID(altRegionIDs[i/3]), nil + } + } + return 0, mkErrInvalid(s) + } + return 0, errSyntax +} + +func getRegionM49(n int) (regionID, error) { + if 0 < n && n <= 999 { + const ( + searchBits = 7 + regionBits = 9 + regionMask = 1<> searchBits + buf := fromM49[m49Index[idx]:m49Index[idx+1]] + val := uint16(n) << regionBits // we rely on bits shifting out + i := sort.Search(len(buf), func(i int) bool { + return buf[i] >= val + }) + if r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val { + return regionID(r & regionMask), nil + } + } + var e ValueError + fmt.Fprint(bytes.NewBuffer([]byte(e.v[:])), n) + return 0, e +} + +// normRegion returns a region if r is deprecated or 0 otherwise. +// TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ). +// TODO: consider mapping split up regions to new most populous one (like CLDR). +func normRegion(r regionID) regionID { + m := regionOldMap + k := sort.Search(len(m), func(i int) bool { + return m[i].from >= uint16(r) + }) + if k < len(m) && m[k].from == uint16(r) { + return regionID(m[k].to) + } + return 0 +} + +const ( + iso3166UserAssigned = 1 << iota + ccTLD + bcp47Region +) + +func (r regionID) typ() byte { + return regionTypes[r] +} + +// String returns the BCP 47 representation for the region. +// It returns "ZZ" for an unspecified region. +func (r regionID) String() string { + if r < isoRegionOffset { + if r == 0 { + return "ZZ" + } + return fmt.Sprintf("%03d", r.M49()) + } + r -= isoRegionOffset + return regionISO.Elem(int(r))[:2] +} + +// ISO3 returns the 3-letter ISO code of r. +// Note that not all regions have a 3-letter ISO code. +// In such cases this method returns "ZZZ". +func (r regionID) ISO3() string { + if r < isoRegionOffset { + return "ZZZ" + } + r -= isoRegionOffset + reg := regionISO.Elem(int(r)) + switch reg[2] { + case 0: + return altRegionISO3[reg[3]:][:3] + case ' ': + return "ZZZ" + } + return reg[0:1] + reg[2:4] +} + +// M49 returns the UN M.49 encoding of r, or 0 if this encoding +// is not defined for r. +func (r regionID) M49() int { + return int(m49[r]) +} + +// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This +// may include private-use tags that are assigned by CLDR and used in this +// implementation. So IsPrivateUse and IsCountry can be simultaneously true. +func (r regionID) IsPrivateUse() bool { + return r.typ()&iso3166UserAssigned != 0 +} + +type scriptID uint8 + +// getScriptID returns the script id for string s. It assumes that s +// is of the format [A-Z][a-z]{3}. +func getScriptID(idx tag.Index, s []byte) (scriptID, error) { + i, err := findIndex(idx, s, "Zzzz") + return scriptID(i), err +} + +// String returns the script code in title case. +// It returns "Zzzz" for an unspecified script. +func (s scriptID) String() string { + if s == 0 { + return "Zzzz" + } + return script.Elem(int(s)) +} + +// IsPrivateUse reports whether this script code is reserved for private use. +func (s scriptID) IsPrivateUse() bool { + return _Qaaa <= s && s <= _Qabx +} + +const ( + maxAltTaglen = len("en-US-POSIX") + maxLen = maxAltTaglen +) + +var ( + // grandfatheredMap holds a mapping from legacy and grandfathered tags to + // their base language or index to more elaborate tag. + grandfatheredMap = map[[maxLen]byte]int16{ + [maxLen]byte{'a', 'r', 't', '-', 'l', 'o', 'j', 'b', 'a', 'n'}: _jbo, // art-lojban + [maxLen]byte{'i', '-', 'a', 'm', 'i'}: _ami, // i-ami + [maxLen]byte{'i', '-', 'b', 'n', 'n'}: _bnn, // i-bnn + [maxLen]byte{'i', '-', 'h', 'a', 'k'}: _hak, // i-hak + [maxLen]byte{'i', '-', 'k', 'l', 'i', 'n', 'g', 'o', 'n'}: _tlh, // i-klingon + [maxLen]byte{'i', '-', 'l', 'u', 'x'}: _lb, // i-lux + [maxLen]byte{'i', '-', 'n', 'a', 'v', 'a', 'j', 'o'}: _nv, // i-navajo + [maxLen]byte{'i', '-', 'p', 'w', 'n'}: _pwn, // i-pwn + [maxLen]byte{'i', '-', 't', 'a', 'o'}: _tao, // i-tao + [maxLen]byte{'i', '-', 't', 'a', 'y'}: _tay, // i-tay + [maxLen]byte{'i', '-', 't', 's', 'u'}: _tsu, // i-tsu + [maxLen]byte{'n', 'o', '-', 'b', 'o', 'k'}: _nb, // no-bok + [maxLen]byte{'n', 'o', '-', 'n', 'y', 'n'}: _nn, // no-nyn + [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'f', 'r'}: _sfb, // sgn-BE-FR + [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'n', 'l'}: _vgt, // sgn-BE-NL + [maxLen]byte{'s', 'g', 'n', '-', 'c', 'h', '-', 'd', 'e'}: _sgg, // sgn-CH-DE + [maxLen]byte{'z', 'h', '-', 'g', 'u', 'o', 'y', 'u'}: _cmn, // zh-guoyu + [maxLen]byte{'z', 'h', '-', 'h', 'a', 'k', 'k', 'a'}: _hak, // zh-hakka + [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n', '-', 'n', 'a', 'n'}: _nan, // zh-min-nan + [maxLen]byte{'z', 'h', '-', 'x', 'i', 'a', 'n', 'g'}: _hsn, // zh-xiang + + // Grandfathered tags with no modern replacement will be converted as + // follows: + [maxLen]byte{'c', 'e', 'l', '-', 'g', 'a', 'u', 'l', 'i', 's', 'h'}: -1, // cel-gaulish + [maxLen]byte{'e', 'n', '-', 'g', 'b', '-', 'o', 'e', 'd'}: -2, // en-GB-oed + [maxLen]byte{'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'}: -3, // i-default + [maxLen]byte{'i', '-', 'e', 'n', 'o', 'c', 'h', 'i', 'a', 'n'}: -4, // i-enochian + [maxLen]byte{'i', '-', 'm', 'i', 'n', 'g', 'o'}: -5, // i-mingo + [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n'}: -6, // zh-min + + // CLDR-specific tag. + [maxLen]byte{'r', 'o', 'o', 't'}: 0, // root + [maxLen]byte{'e', 'n', '-', 'u', 's', '-', 'p', 'o', 's', 'i', 'x'}: -7, // en_US_POSIX" + } + + altTagIndex = [...]uint8{0, 17, 31, 45, 61, 74, 86, 102} + + altTags = "xtg-x-cel-gaulishen-GB-oxendicten-x-i-defaultund-x-i-enochiansee-x-i-mingonan-x-zh-minen-US-u-va-posix" +) + +func grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) { + if v, ok := grandfatheredMap[s]; ok { + if v < 0 { + return Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true + } + t.lang = langID(v) + return t, true + } + return t, false +} diff --git a/vendor/golang.org/x/text/language/lookup_test.go b/vendor/golang.org/x/text/language/lookup_test.go new file mode 100644 index 00000000..9833830c --- /dev/null +++ b/vendor/golang.org/x/text/language/lookup_test.go @@ -0,0 +1,457 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "testing" + + "golang.org/x/text/internal/tag" +) + +func b(s string) []byte { + return []byte(s) +} + +func TestLangID(t *testing.T) { + tests := []struct { + id, bcp47, iso3, norm string + err error + }{ + {id: "", bcp47: "und", iso3: "und", err: errSyntax}, + {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, + {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, + {id: " ", bcp47: "und", iso3: "und", err: errSyntax}, + {id: "xxx", bcp47: "und", iso3: "und", err: mkErrInvalid([]byte("xxx"))}, + {id: "und", bcp47: "und", iso3: "und"}, + {id: "aju", bcp47: "aju", iso3: "aju", norm: "jrb"}, + {id: "jrb", bcp47: "jrb", iso3: "jrb"}, + {id: "es", bcp47: "es", iso3: "spa"}, + {id: "spa", bcp47: "es", iso3: "spa"}, + {id: "ji", bcp47: "ji", iso3: "yid-", norm: "yi"}, + {id: "jw", bcp47: "jw", iso3: "jav-", norm: "jv"}, + {id: "ar", bcp47: "ar", iso3: "ara"}, + {id: "kw", bcp47: "kw", iso3: "cor"}, + {id: "arb", bcp47: "arb", iso3: "arb", norm: "ar"}, + {id: "ar", bcp47: "ar", iso3: "ara"}, + {id: "kur", bcp47: "ku", iso3: "kur"}, + {id: "nl", bcp47: "nl", iso3: "nld"}, + {id: "NL", bcp47: "nl", iso3: "nld"}, + {id: "gsw", bcp47: "gsw", iso3: "gsw"}, + {id: "gSW", bcp47: "gsw", iso3: "gsw"}, + {id: "und", bcp47: "und", iso3: "und"}, + {id: "sh", bcp47: "sh", iso3: "hbs", norm: "sr"}, + {id: "hbs", bcp47: "sh", iso3: "hbs", norm: "sr"}, + {id: "no", bcp47: "no", iso3: "nor", norm: "no"}, + {id: "nor", bcp47: "no", iso3: "nor", norm: "no"}, + {id: "cmn", bcp47: "cmn", iso3: "cmn", norm: "zh"}, + } + for i, tt := range tests { + want, err := getLangID(b(tt.id)) + if err != tt.err { + t.Errorf("%d:err(%s): found %q; want %q", i, tt.id, err, tt.err) + } + if err != nil { + continue + } + if id, _ := getLangISO2(b(tt.bcp47)); len(tt.bcp47) == 2 && want != id { + t.Errorf("%d:getISO2(%s): found %v; want %v", i, tt.bcp47, id, want) + } + if len(tt.iso3) == 3 { + if id, _ := getLangISO3(b(tt.iso3)); want != id { + t.Errorf("%d:getISO3(%s): found %q; want %q", i, tt.iso3, id, want) + } + if id, _ := getLangID(b(tt.iso3)); want != id { + t.Errorf("%d:getID3(%s): found %v; want %v", i, tt.iso3, id, want) + } + } + norm := want + if tt.norm != "" { + norm, _ = getLangID(b(tt.norm)) + } + id, _ := normLang(want) + if id != norm { + t.Errorf("%d:norm(%s): found %v; want %v", i, tt.id, id, norm) + } + if id := want.String(); tt.bcp47 != id { + t.Errorf("%d:String(): found %s; want %s", i, id, tt.bcp47) + } + if id := want.ISO3(); tt.iso3[:3] != id { + t.Errorf("%d:iso3(): found %s; want %s", i, id, tt.iso3[:3]) + } + } +} + +func TestGrandfathered(t *testing.T) { + for _, tt := range []struct{ in, out string }{ + {"art-lojban", "jbo"}, + {"i-ami", "ami"}, + {"i-bnn", "bnn"}, + {"i-hak", "hak"}, + {"i-klingon", "tlh"}, + {"i-lux", "lb"}, + {"i-navajo", "nv"}, + {"i-pwn", "pwn"}, + {"i-tao", "tao"}, + {"i-tay", "tay"}, + {"i-tsu", "tsu"}, + {"no-bok", "nb"}, + {"no-nyn", "nn"}, + {"sgn-BE-FR", "sfb"}, + {"sgn-BE-NL", "vgt"}, + {"sgn-CH-DE", "sgg"}, + {"sgn-ch-de", "sgg"}, + {"zh-guoyu", "cmn"}, + {"zh-hakka", "hak"}, + {"zh-min-nan", "nan"}, + {"zh-xiang", "hsn"}, + + // Grandfathered tags with no modern replacement will be converted as follows: + {"cel-gaulish", "xtg-x-cel-gaulish"}, + {"en-GB-oed", "en-GB-oxendict"}, + {"en-gb-oed", "en-GB-oxendict"}, + {"i-default", "en-x-i-default"}, + {"i-enochian", "und-x-i-enochian"}, + {"i-mingo", "see-x-i-mingo"}, + {"zh-min", "nan-x-zh-min"}, + + {"root", "und"}, + {"en_US_POSIX", "en-US-u-va-posix"}, + {"en_us_posix", "en-US-u-va-posix"}, + {"en-us-posix", "en-US-u-va-posix"}, + } { + got := Raw.Make(tt.in) + want := Raw.MustParse(tt.out) + if got != want { + t.Errorf("%s: got %q; want %q", tt.in, got, want) + } + } +} + +func TestRegionID(t *testing.T) { + tests := []struct { + in, out string + }{ + {"_ ", ""}, + {"_000", ""}, + {"419", "419"}, + {"AA", "AA"}, + {"ATF", "TF"}, + {"HV", "HV"}, + {"CT", "CT"}, + {"DY", "DY"}, + {"IC", "IC"}, + {"FQ", "FQ"}, + {"JT", "JT"}, + {"ZZ", "ZZ"}, + {"EU", "EU"}, + {"QO", "QO"}, + {"FX", "FX"}, + } + for i, tt := range tests { + if tt.in[0] == '_' { + id := tt.in[1:] + if _, err := getRegionID(b(id)); err == nil { + t.Errorf("%d:err(%s): found nil; want error", i, id) + } + continue + } + want, _ := getRegionID(b(tt.in)) + if s := want.String(); s != tt.out { + t.Errorf("%d:%s: found %q; want %q", i, tt.in, s, tt.out) + } + if len(tt.in) == 2 { + want, _ := getRegionISO2(b(tt.in)) + if s := want.String(); s != tt.out { + t.Errorf("%d:getISO2(%s): found %q; want %q", i, tt.in, s, tt.out) + } + } + } +} + +func TestRegionType(t *testing.T) { + for _, tt := range []struct { + r string + t byte + }{ + {"NL", bcp47Region | ccTLD}, + {"EU", bcp47Region | ccTLD}, // exceptionally reserved + {"AN", bcp47Region | ccTLD}, // transitionally reserved + + {"DD", bcp47Region}, // deleted in ISO, deprecated in BCP 47 + {"NT", bcp47Region}, // transitionally reserved, deprecated in BCP 47 + + {"XA", iso3166UserAssigned | bcp47Region}, + {"ZZ", iso3166UserAssigned | bcp47Region}, + {"AA", iso3166UserAssigned | bcp47Region}, + {"QO", iso3166UserAssigned | bcp47Region}, + {"QM", iso3166UserAssigned | bcp47Region}, + {"XK", iso3166UserAssigned | bcp47Region}, + + {"CT", 0}, // deleted in ISO, not in BCP 47, canonicalized in CLDR + } { + r := MustParseRegion(tt.r) + if tp := r.typ(); tp != tt.t { + t.Errorf("Type(%s): got %x; want %x", tt.r, tp, tt.t) + } + } +} + +func TestRegionISO3(t *testing.T) { + tests := []struct { + from, iso3, to string + }{ + {" ", "ZZZ", "ZZ"}, + {"000", "ZZZ", "ZZ"}, + {"AA", "AAA", ""}, + {"CT", "CTE", ""}, + {"DY", "DHY", ""}, + {"EU", "QUU", ""}, + {"HV", "HVO", ""}, + {"IC", "ZZZ", "ZZ"}, + {"JT", "JTN", ""}, + {"PZ", "PCZ", ""}, + {"QU", "QUU", "EU"}, + {"QO", "QOO", ""}, + {"YD", "YMD", ""}, + {"FQ", "ATF", "TF"}, + {"TF", "ATF", ""}, + {"FX", "FXX", ""}, + {"ZZ", "ZZZ", ""}, + {"419", "ZZZ", "ZZ"}, + } + for _, tt := range tests { + r, _ := getRegionID(b(tt.from)) + if s := r.ISO3(); s != tt.iso3 { + t.Errorf("iso3(%q): found %q; want %q", tt.from, s, tt.iso3) + } + if tt.iso3 == "" { + continue + } + want := tt.to + if tt.to == "" { + want = tt.from + } + r, _ = getRegionID(b(want)) + if id, _ := getRegionISO3(b(tt.iso3)); id != r { + t.Errorf("%s: found %q; want %q", tt.iso3, id, want) + } + } +} + +func TestRegionM49(t *testing.T) { + fromTests := []struct { + m49 int + id string + }{ + {0, ""}, + {-1, ""}, + {1000, ""}, + {10000, ""}, + + {001, "001"}, + {104, "MM"}, + {180, "CD"}, + {230, "ET"}, + {231, "ET"}, + {249, "FX"}, + {250, "FR"}, + {276, "DE"}, + {278, "DD"}, + {280, "DE"}, + {419, "419"}, + {626, "TL"}, + {736, "SD"}, + {840, "US"}, + {854, "BF"}, + {891, "CS"}, + {899, ""}, + {958, "AA"}, + {966, "QT"}, + {967, "EU"}, + {999, "ZZ"}, + } + for _, tt := range fromTests { + id, err := getRegionM49(tt.m49) + if want, have := err != nil, tt.id == ""; want != have { + t.Errorf("error(%d): have %v; want %v", tt.m49, have, want) + continue + } + r, _ := getRegionID(b(tt.id)) + if r != id { + t.Errorf("region(%d): have %s; want %s", tt.m49, id, r) + } + } + + toTests := []struct { + m49 int + id string + }{ + {0, "000"}, + {0, "IC"}, // Some codes don't have an ID + + {001, "001"}, + {104, "MM"}, + {104, "BU"}, + {180, "CD"}, + {180, "ZR"}, + {231, "ET"}, + {250, "FR"}, + {249, "FX"}, + {276, "DE"}, + {278, "DD"}, + {419, "419"}, + {626, "TL"}, + {626, "TP"}, + {729, "SD"}, + {826, "GB"}, + {840, "US"}, + {854, "BF"}, + {891, "YU"}, + {891, "CS"}, + {958, "AA"}, + {966, "QT"}, + {967, "EU"}, + {967, "QU"}, + {999, "ZZ"}, + // For codes that don't have an M49 code use the replacement value, + // if available. + {854, "HV"}, // maps to Burkino Faso + } + for _, tt := range toTests { + r, _ := getRegionID(b(tt.id)) + if r.M49() != tt.m49 { + t.Errorf("m49(%q): have %d; want %d", tt.id, r.M49(), tt.m49) + } + } +} + +func TestRegionDeprecation(t *testing.T) { + tests := []struct{ in, out string }{ + {"BU", "MM"}, + {"BUR", "MM"}, + {"CT", "KI"}, + {"DD", "DE"}, + {"DDR", "DE"}, + {"DY", "BJ"}, + {"FX", "FR"}, + {"HV", "BF"}, + {"JT", "UM"}, + {"MI", "UM"}, + {"NH", "VU"}, + {"NQ", "AQ"}, + {"PU", "UM"}, + {"PZ", "PA"}, + {"QU", "EU"}, + {"RH", "ZW"}, + {"TP", "TL"}, + {"UK", "GB"}, + {"VD", "VN"}, + {"WK", "UM"}, + {"YD", "YE"}, + {"NL", "NL"}, + } + for _, tt := range tests { + rIn, _ := getRegionID([]byte(tt.in)) + rOut, _ := getRegionISO2([]byte(tt.out)) + r := normRegion(rIn) + if rOut == rIn && r != 0 { + t.Errorf("%s: was %q; want %q", tt.in, r, tt.in) + } + if rOut != rIn && r != rOut { + t.Errorf("%s: was %q; want %q", tt.in, r, tt.out) + } + + } +} + +func TestGetScriptID(t *testing.T) { + idx := tag.Index("0000BbbbDdddEeeeZzzz\xff\xff\xff\xff") + tests := []struct { + in string + out scriptID + }{ + {" ", 0}, + {" ", 0}, + {" ", 0}, + {"", 0}, + {"Aaaa", 0}, + {"Bbbb", 1}, + {"Dddd", 2}, + {"dddd", 2}, + {"dDDD", 2}, + {"Eeee", 3}, + {"Zzzz", 4}, + } + for i, tt := range tests { + if id, err := getScriptID(idx, b(tt.in)); id != tt.out { + t.Errorf("%d:%s: found %d; want %d", i, tt.in, id, tt.out) + } else if id == 0 && err == nil { + t.Errorf("%d:%s: no error; expected one", i, tt.in) + } + } +} + +func TestIsPrivateUse(t *testing.T) { + type test struct { + s string + private bool + } + tests := []test{ + {"en", false}, + {"und", false}, + {"pzn", false}, + {"qaa", true}, + {"qtz", true}, + {"qua", false}, + } + for i, tt := range tests { + x, _ := getLangID([]byte(tt.s)) + if b := x.IsPrivateUse(); b != tt.private { + t.Errorf("%d: langID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) + } + } + tests = []test{ + {"001", false}, + {"419", false}, + {"899", false}, + {"900", false}, + {"957", false}, + {"958", true}, + {"AA", true}, + {"AC", false}, + {"EU", false}, // CLDR grouping, exceptionally reserved in ISO. + {"QU", true}, // Canonicalizes to EU, User-assigned in ISO. + {"QO", true}, // CLDR grouping, User-assigned in ISO. + {"QA", false}, + {"QM", true}, + {"QZ", true}, + {"XA", true}, + {"XK", true}, // Assigned to Kosovo in CLDR, User-assigned in ISO. + {"XZ", true}, + {"ZW", false}, + {"ZZ", true}, + } + for i, tt := range tests { + x, _ := getRegionID([]byte(tt.s)) + if b := x.IsPrivateUse(); b != tt.private { + t.Errorf("%d: regionID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) + } + } + tests = []test{ + {"Latn", false}, + {"Laaa", false}, // invalid + {"Qaaa", true}, + {"Qabx", true}, + {"Qaby", false}, + {"Zyyy", false}, + {"Zzzz", false}, + } + for i, tt := range tests { + x, _ := getScriptID(script, []byte(tt.s)) + if b := x.IsPrivateUse(); b != tt.private { + t.Errorf("%d: scriptID.IsPrivateUse(%s) was %v; want %v", i, tt.s, b, tt.private) + } + } +} diff --git a/vendor/golang.org/x/text/language/maketables.go b/vendor/golang.org/x/text/language/maketables.go new file mode 100644 index 00000000..2cc995b3 --- /dev/null +++ b/vendor/golang.org/x/text/language/maketables.go @@ -0,0 +1,1635 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// Language tag table generator. +// Data read from the web. + +package main + +import ( + "bufio" + "flag" + "fmt" + "io" + "io/ioutil" + "log" + "math" + "reflect" + "regexp" + "sort" + "strconv" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/tag" + "golang.org/x/text/unicode/cldr" +) + +var ( + test = flag.Bool("test", + false, + "test existing tables; can be used to compare web data with package data.") + outputFile = flag.String("output", + "tables.go", + "output file for generated tables") +) + +var comment = []string{ + ` +lang holds an alphabetically sorted list of ISO-639 language identifiers. +All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. +For 2-byte language identifiers, the two successive bytes have the following meaning: + - if the first letter of the 2- and 3-letter ISO codes are the same: + the second and third letter of the 3-letter ISO code. + - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. +For 3-byte language identifiers the 4th byte is 0.`, + ` +langNoIndex is a bit vector of all 3-letter language codes that are not used as an index +in lookup tables. The language ids for these language codes are derived directly +from the letters and are not consecutive.`, + ` +altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives +to 2-letter language codes that cannot be derived using the method described above. +Each 3-letter code is followed by its 1-byte langID.`, + ` +altLangIndex is used to convert indexes in altLangISO3 to langIDs.`, + ` +langAliasMap maps langIDs to their suggested replacements.`, + ` +script is an alphabetically sorted list of ISO 15924 codes. The index +of the script in the string, divided by 4, is the internal scriptID.`, + ` +isoRegionOffset needs to be added to the index of regionISO to obtain the regionID +for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for +the UN.M49 codes used for groups.)`, + ` +regionISO holds a list of alphabetically sorted 2-letter ISO region codes. +Each 2-letter codes is followed by two bytes with the following meaning: + - [A-Z}{2}: the first letter of the 2-letter code plus these two + letters form the 3-letter ISO code. + - 0, n: index into altRegionISO3.`, + ` +regionTypes defines the status of a region for various standards.`, + ` +m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are +codes indicating collections of regions.`, + ` +m49Index gives indexes into fromM49 based on the three most significant bits +of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in + fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] +for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. +The region code is stored in the 9 lsb of the indexed value.`, + ` +fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.`, + ` +altRegionISO3 holds a list of 3-letter region codes that cannot be +mapped to 2-letter codes using the default algorithm. This is a short list.`, + ` +altRegionIDs holds a list of regionIDs the positions of which match those +of the 3-letter ISO codes in altRegionISO3.`, + ` +variantNumSpecialized is the number of specialized variants in variants.`, + ` +suppressScript is an index from langID to the dominant script for that language, +if it exists. If a script is given, it should be suppressed from the language tag.`, + ` +likelyLang is a lookup table, indexed by langID, for the most likely +scripts and regions given incomplete information. If more entries exist for a +given language, region and script are the index and size respectively +of the list in likelyLangList.`, + ` +likelyLangList holds lists info associated with likelyLang.`, + ` +likelyRegion is a lookup table, indexed by regionID, for the most likely +languages and scripts given incomplete information. If more entries exist +for a given regionID, lang and script are the index and size respectively +of the list in likelyRegionList. +TODO: exclude containers and user-definable regions from the list.`, + ` +likelyRegionList holds lists info associated with likelyRegion.`, + ` +likelyScript is a lookup table, indexed by scriptID, for the most likely +languages and regions given a script.`, + ` +matchLang holds pairs of langIDs of base languages that are typically +mutually intelligible. Each pair is associated with a confidence and +whether the intelligibility goes one or both ways.`, + ` +matchScript holds pairs of scriptIDs where readers of one script +can typically also read the other. Each is associated with a confidence.`, + ` +nRegionGroups is the number of region groups.`, + ` +regionInclusion maps region identifiers to sets of regions in regionInclusionBits, +where each set holds all groupings that are directly connected in a region +containment graph.`, + ` +regionInclusionBits is an array of bit vectors where every vector represents +a set of region groupings. These sets are used to compute the distance +between two regions for the purpose of language matching.`, + ` +regionInclusionNext marks, for each entry in regionInclusionBits, the set of +all groups that are reachable from the groups set in the respective entry.`, +} + +// TODO: consider changing some of these structures to tries. This can reduce +// memory, but may increase the need for memory allocations. This could be +// mitigated if we can piggyback on language tags for common cases. + +func failOnError(e error) { + if e != nil { + log.Panic(e) + } +} + +type setType int + +const ( + Indexed setType = 1 + iota // all elements must be of same size + Linear +) + +type stringSet struct { + s []string + sorted, frozen bool + + // We often need to update values after the creation of an index is completed. + // We include a convenience map for keeping track of this. + update map[string]string + typ setType // used for checking. +} + +func (ss *stringSet) clone() stringSet { + c := *ss + c.s = append([]string(nil), c.s...) + return c +} + +func (ss *stringSet) setType(t setType) { + if ss.typ != t && ss.typ != 0 { + log.Panicf("type %d cannot be assigned as it was already %d", t, ss.typ) + } +} + +// parse parses a whitespace-separated string and initializes ss with its +// components. +func (ss *stringSet) parse(s string) { + scan := bufio.NewScanner(strings.NewReader(s)) + scan.Split(bufio.ScanWords) + for scan.Scan() { + ss.add(scan.Text()) + } +} + +func (ss *stringSet) assertChangeable() { + if ss.frozen { + log.Panic("attempt to modify a frozen stringSet") + } +} + +func (ss *stringSet) add(s string) { + ss.assertChangeable() + ss.s = append(ss.s, s) + ss.sorted = ss.frozen +} + +func (ss *stringSet) freeze() { + ss.compact() + ss.frozen = true +} + +func (ss *stringSet) compact() { + if ss.sorted { + return + } + a := ss.s + sort.Strings(a) + k := 0 + for i := 1; i < len(a); i++ { + if a[k] != a[i] { + a[k+1] = a[i] + k++ + } + } + ss.s = a[:k+1] + ss.sorted = ss.frozen +} + +type funcSorter struct { + fn func(a, b string) bool + sort.StringSlice +} + +func (s funcSorter) Less(i, j int) bool { + return s.fn(s.StringSlice[i], s.StringSlice[j]) +} + +func (ss *stringSet) sortFunc(f func(a, b string) bool) { + ss.compact() + sort.Sort(funcSorter{f, sort.StringSlice(ss.s)}) +} + +func (ss *stringSet) remove(s string) { + ss.assertChangeable() + if i, ok := ss.find(s); ok { + copy(ss.s[i:], ss.s[i+1:]) + ss.s = ss.s[:len(ss.s)-1] + } +} + +func (ss *stringSet) replace(ol, nu string) { + ss.s[ss.index(ol)] = nu + ss.sorted = ss.frozen +} + +func (ss *stringSet) index(s string) int { + ss.setType(Indexed) + i, ok := ss.find(s) + if !ok { + if i < len(ss.s) { + log.Panicf("find: item %q is not in list. Closest match is %q.", s, ss.s[i]) + } + log.Panicf("find: item %q is not in list", s) + + } + return i +} + +func (ss *stringSet) find(s string) (int, bool) { + ss.compact() + i := sort.SearchStrings(ss.s, s) + return i, i != len(ss.s) && ss.s[i] == s +} + +func (ss *stringSet) slice() []string { + ss.compact() + return ss.s +} + +func (ss *stringSet) updateLater(v, key string) { + if ss.update == nil { + ss.update = map[string]string{} + } + ss.update[v] = key +} + +// join joins the string and ensures that all entries are of the same length. +func (ss *stringSet) join() string { + ss.setType(Indexed) + n := len(ss.s[0]) + for _, s := range ss.s { + if len(s) != n { + log.Panicf("join: not all entries are of the same length: %q", s) + } + } + ss.s = append(ss.s, strings.Repeat("\xff", n)) + return strings.Join(ss.s, "") +} + +// ianaEntry holds information for an entry in the IANA Language Subtag Repository. +// All types use the same entry. +// See http://tools.ietf.org/html/bcp47#section-5.1 for a description of the various +// fields. +type ianaEntry struct { + typ string + description []string + scope string + added string + preferred string + deprecated string + suppressScript string + macro string + prefix []string +} + +type builder struct { + w *gen.CodeWriter + hw io.Writer // MultiWriter for w and w.Hash + data *cldr.CLDR + supp *cldr.SupplementalData + + // indices + locale stringSet // common locales + lang stringSet // canonical language ids (2 or 3 letter ISO codes) with data + langNoIndex stringSet // 3-letter ISO codes with no associated data + script stringSet // 4-letter ISO codes + region stringSet // 2-letter ISO or 3-digit UN M49 codes + variant stringSet // 4-8-alphanumeric variant code. + + // Region codes that are groups with their corresponding group IDs. + groups map[int]index + + // langInfo + registry map[string]*ianaEntry +} + +type index uint + +func newBuilder(w *gen.CodeWriter) *builder { + r := gen.OpenCLDRCoreZip() + defer r.Close() + d := &cldr.Decoder{} + data, err := d.DecodeZip(r) + failOnError(err) + b := builder{ + w: w, + hw: io.MultiWriter(w, w.Hash), + data: data, + supp: data.Supplemental(), + } + b.parseRegistry() + return &b +} + +func (b *builder) parseRegistry() { + r := gen.OpenIANAFile("assignments/language-subtag-registry") + defer r.Close() + b.registry = make(map[string]*ianaEntry) + + scan := bufio.NewScanner(r) + scan.Split(bufio.ScanWords) + var record *ianaEntry + for more := scan.Scan(); more; { + key := scan.Text() + more = scan.Scan() + value := scan.Text() + switch key { + case "Type:": + record = &ianaEntry{typ: value} + case "Subtag:", "Tag:": + if s := strings.SplitN(value, "..", 2); len(s) > 1 { + for a := s[0]; a <= s[1]; a = inc(a) { + b.addToRegistry(a, record) + } + } else { + b.addToRegistry(value, record) + } + case "Suppress-Script:": + record.suppressScript = value + case "Added:": + record.added = value + case "Deprecated:": + record.deprecated = value + case "Macrolanguage:": + record.macro = value + case "Preferred-Value:": + record.preferred = value + case "Prefix:": + record.prefix = append(record.prefix, value) + case "Scope:": + record.scope = value + case "Description:": + buf := []byte(value) + for more = scan.Scan(); more; more = scan.Scan() { + b := scan.Bytes() + if b[0] == '%' || b[len(b)-1] == ':' { + break + } + buf = append(buf, ' ') + buf = append(buf, b...) + } + record.description = append(record.description, string(buf)) + continue + default: + continue + } + more = scan.Scan() + } + if scan.Err() != nil { + log.Panic(scan.Err()) + } +} + +func (b *builder) addToRegistry(key string, entry *ianaEntry) { + if info, ok := b.registry[key]; ok { + if info.typ != "language" || entry.typ != "extlang" { + log.Fatalf("parseRegistry: tag %q already exists", key) + } + } else { + b.registry[key] = entry + } +} + +var commentIndex = make(map[string]string) + +func init() { + for _, s := range comment { + key := strings.TrimSpace(strings.SplitN(s, " ", 2)[0]) + commentIndex[key] = s + } +} + +func (b *builder) comment(name string) { + if s := commentIndex[name]; len(s) > 0 { + b.w.WriteComment(s) + } else { + fmt.Fprintln(b.w) + } +} + +func (b *builder) pf(f string, x ...interface{}) { + fmt.Fprintf(b.hw, f, x...) + fmt.Fprint(b.hw, "\n") +} + +func (b *builder) p(x ...interface{}) { + fmt.Fprintln(b.hw, x...) +} + +func (b *builder) addSize(s int) { + b.w.Size += s + b.pf("// Size: %d bytes", s) +} + +func (b *builder) writeConst(name string, x interface{}) { + b.comment(name) + b.w.WriteConst(name, x) +} + +// writeConsts computes f(v) for all v in values and writes the results +// as constants named _v to a single constant block. +func (b *builder) writeConsts(f func(string) int, values ...string) { + b.pf("const (") + for _, v := range values { + b.pf("\t_%s = %v", v, f(v)) + } + b.pf(")") +} + +// writeType writes the type of the given value, which must be a struct. +func (b *builder) writeType(value interface{}) { + b.comment(reflect.TypeOf(value).Name()) + b.w.WriteType(value) +} + +func (b *builder) writeSlice(name string, ss interface{}) { + b.writeSliceAddSize(name, 0, ss) +} + +func (b *builder) writeSliceAddSize(name string, extraSize int, ss interface{}) { + b.comment(name) + b.w.Size += extraSize + v := reflect.ValueOf(ss) + t := v.Type().Elem() + b.pf("// Size: %d bytes, %d elements", v.Len()*int(t.Size())+extraSize, v.Len()) + + fmt.Fprintf(b.w, "var %s = ", name) + b.w.WriteArray(ss) + b.p() +} + +type fromTo struct { + from, to uint16 +} + +func (b *builder) writeSortedMap(name string, ss *stringSet, index func(s string) uint16) { + ss.sortFunc(func(a, b string) bool { + return index(a) < index(b) + }) + m := []fromTo{} + for _, s := range ss.s { + m = append(m, fromTo{index(s), index(ss.update[s])}) + } + b.writeSlice(name, m) +} + +const base = 'z' - 'a' + 1 + +func strToInt(s string) uint { + v := uint(0) + for i := 0; i < len(s); i++ { + v *= base + v += uint(s[i] - 'a') + } + return v +} + +// converts the given integer to the original ASCII string passed to strToInt. +// len(s) must match the number of characters obtained. +func intToStr(v uint, s []byte) { + for i := len(s) - 1; i >= 0; i-- { + s[i] = byte(v%base) + 'a' + v /= base + } +} + +func (b *builder) writeBitVector(name string, ss []string) { + vec := make([]uint8, int(math.Ceil(math.Pow(base, float64(len(ss[0])))/8))) + for _, s := range ss { + v := strToInt(s) + vec[v/8] |= 1 << (v % 8) + } + b.writeSlice(name, vec) +} + +// TODO: convert this type into a list or two-stage trie. +func (b *builder) writeMapFunc(name string, m map[string]string, f func(string) uint16) { + b.comment(name) + v := reflect.ValueOf(m) + sz := v.Len() * (2 + int(v.Type().Key().Size())) + for _, k := range m { + sz += len(k) + } + b.addSize(sz) + keys := []string{} + b.pf(`var %s = map[string]uint16{`, name) + for k := range m { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + b.pf("\t%q: %v,", k, f(m[k])) + } + b.p("}") +} + +func (b *builder) writeMap(name string, m interface{}) { + b.comment(name) + v := reflect.ValueOf(m) + sz := v.Len() * (2 + int(v.Type().Key().Size()) + int(v.Type().Elem().Size())) + b.addSize(sz) + f := strings.FieldsFunc(fmt.Sprintf("%#v", m), func(r rune) bool { + return strings.IndexRune("{}, ", r) != -1 + }) + sort.Strings(f[1:]) + b.pf(`var %s = %s{`, name, f[0]) + for _, kv := range f[1:] { + b.pf("\t%s,", kv) + } + b.p("}") +} + +func (b *builder) langIndex(s string) uint16 { + if s == "und" { + return 0 + } + if i, ok := b.lang.find(s); ok { + return uint16(i) + } + return uint16(strToInt(s)) + uint16(len(b.lang.s)) +} + +// inc advances the string to its lexicographical successor. +func inc(s string) string { + const maxTagLength = 4 + var buf [maxTagLength]byte + intToStr(strToInt(strings.ToLower(s))+1, buf[:len(s)]) + for i := 0; i < len(s); i++ { + if s[i] <= 'Z' { + buf[i] -= 'a' - 'A' + } + } + return string(buf[:len(s)]) +} + +func (b *builder) parseIndices() { + meta := b.supp.Metadata + + for k, v := range b.registry { + var ss *stringSet + switch v.typ { + case "language": + if len(k) == 2 || v.suppressScript != "" || v.scope == "special" { + b.lang.add(k) + continue + } else { + ss = &b.langNoIndex + } + case "region": + ss = &b.region + case "script": + ss = &b.script + case "variant": + ss = &b.variant + default: + continue + } + ss.add(k) + } + // Include any language for which there is data. + for _, lang := range b.data.Locales() { + if x := b.data.RawLDML(lang); false || + x.LocaleDisplayNames != nil || + x.Characters != nil || + x.Delimiters != nil || + x.Measurement != nil || + x.Dates != nil || + x.Numbers != nil || + x.Units != nil || + x.ListPatterns != nil || + x.Collations != nil || + x.Segmentations != nil || + x.Rbnf != nil || + x.Annotations != nil || + x.Metadata != nil { + + from := strings.Split(lang, "_") + if lang := from[0]; lang != "root" { + b.lang.add(lang) + } + } + } + // Include locales for plural rules, which uses a different structure. + for _, plurals := range b.data.Supplemental().Plurals { + for _, rules := range plurals.PluralRules { + for _, lang := range strings.Split(rules.Locales, " ") { + if lang = strings.Split(lang, "_")[0]; lang != "root" { + b.lang.add(lang) + } + } + } + } + // Include languages in likely subtags. + for _, m := range b.supp.LikelySubtags.LikelySubtag { + from := strings.Split(m.From, "_") + b.lang.add(from[0]) + } + // Include ISO-639 alpha-3 bibliographic entries. + for _, a := range meta.Alias.LanguageAlias { + if a.Reason == "bibliographic" { + b.langNoIndex.add(a.Type) + } + } + // Include regions in territoryAlias (not all are in the IANA registry!) + for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { + if len(reg.Type) == 2 { + b.region.add(reg.Type) + } + } + + for _, s := range b.lang.s { + if len(s) == 3 { + b.langNoIndex.remove(s) + } + } + b.writeConst("numLanguages", len(b.lang.slice())+len(b.langNoIndex.slice())) + b.writeConst("numScripts", len(b.script.slice())) + b.writeConst("numRegions", len(b.region.slice())) + + // Add dummy codes at the start of each list to represent "unspecified". + b.lang.add("---") + b.script.add("----") + b.region.add("---") + + // common locales + b.locale.parse(meta.DefaultContent.Locales) +} + +func (b *builder) computeRegionGroups() { + b.groups = make(map[int]index) + + // Create group indices. + for i := 1; b.region.s[i][0] < 'A'; i++ { // Base M49 indices on regionID. + b.groups[i] = index(len(b.groups)) + } + for _, g := range b.supp.TerritoryContainment.Group { + group := b.region.index(g.Type) + if _, ok := b.groups[group]; !ok { + b.groups[group] = index(len(b.groups)) + } + } + if len(b.groups) > 32 { + log.Fatalf("only 32 groups supported, found %d", len(b.groups)) + } + b.writeConst("nRegionGroups", len(b.groups)) +} + +var langConsts = []string{ + "af", "am", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "es", + "et", "fa", "fi", "fil", "fr", "gu", "he", "hi", "hr", "hu", "hy", "id", "is", + "it", "ja", "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml", + "mn", "mo", "mr", "ms", "mul", "my", "nb", "ne", "nl", "no", "pa", "pl", "pt", + "ro", "ru", "sh", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th", + "tl", "tn", "tr", "uk", "ur", "uz", "vi", "zh", "zu", + + // constants for grandfathered tags (if not already defined) + "jbo", "ami", "bnn", "hak", "tlh", "lb", "nv", "pwn", "tao", "tay", "tsu", + "nn", "sfb", "vgt", "sgg", "cmn", "nan", "hsn", +} + +// writeLanguage generates all tables needed for language canonicalization. +func (b *builder) writeLanguage() { + meta := b.supp.Metadata + + b.writeConst("nonCanonicalUnd", b.lang.index("und")) + b.writeConsts(func(s string) int { return int(b.langIndex(s)) }, langConsts...) + b.writeConst("langPrivateStart", b.langIndex("qaa")) + b.writeConst("langPrivateEnd", b.langIndex("qtz")) + + // Get language codes that need to be mapped (overlong 3-letter codes, + // deprecated 2-letter codes, legacy and grandfathered tags.) + langAliasMap := stringSet{} + aliasTypeMap := map[string]langAliasType{} + + // altLangISO3 get the alternative ISO3 names that need to be mapped. + altLangISO3 := stringSet{} + // Add dummy start to avoid the use of index 0. + altLangISO3.add("---") + altLangISO3.updateLater("---", "aa") + + lang := b.lang.clone() + for _, a := range meta.Alias.LanguageAlias { + if a.Replacement == "" { + a.Replacement = "und" + } + // TODO: support mapping to tags + repl := strings.SplitN(a.Replacement, "_", 2)[0] + if a.Reason == "overlong" { + if len(a.Replacement) == 2 && len(a.Type) == 3 { + lang.updateLater(a.Replacement, a.Type) + } + } else if len(a.Type) <= 3 { + switch a.Reason { + case "macrolanguage": + aliasTypeMap[a.Type] = langMacro + case "deprecated": + // handled elsewhere + continue + case "bibliographic", "legacy": + if a.Type == "no" { + continue + } + aliasTypeMap[a.Type] = langLegacy + default: + log.Fatalf("new %s alias: %s", a.Reason, a.Type) + } + langAliasMap.add(a.Type) + langAliasMap.updateLater(a.Type, repl) + } + } + // Manually add the mapping of "nb" (Norwegian) to its macro language. + // This can be removed if CLDR adopts this change. + langAliasMap.add("nb") + langAliasMap.updateLater("nb", "no") + aliasTypeMap["nb"] = langMacro + + for k, v := range b.registry { + // Also add deprecated values for 3-letter ISO codes, which CLDR omits. + if v.typ == "language" && v.deprecated != "" && v.preferred != "" { + langAliasMap.add(k) + langAliasMap.updateLater(k, v.preferred) + aliasTypeMap[k] = langDeprecated + } + } + // Fix CLDR mappings. + lang.updateLater("tl", "tgl") + lang.updateLater("sh", "hbs") + lang.updateLater("mo", "mol") + lang.updateLater("no", "nor") + lang.updateLater("tw", "twi") + lang.updateLater("nb", "nob") + lang.updateLater("ak", "aka") + + // Ensure that each 2-letter code is matched with a 3-letter code. + for _, v := range lang.s[1:] { + s, ok := lang.update[v] + if !ok { + if s, ok = lang.update[langAliasMap.update[v]]; !ok { + continue + } + lang.update[v] = s + } + if v[0] != s[0] { + altLangISO3.add(s) + altLangISO3.updateLater(s, v) + } + } + + // Complete canonialized language tags. + lang.freeze() + for i, v := range lang.s { + // We can avoid these manual entries by using the IANI registry directly. + // Seems easier to update the list manually, as changes are rare. + // The panic in this loop will trigger if we miss an entry. + add := "" + if s, ok := lang.update[v]; ok { + if s[0] == v[0] { + add = s[1:] + } else { + add = string([]byte{0, byte(altLangISO3.index(s))}) + } + } else if len(v) == 3 { + add = "\x00" + } else { + log.Panicf("no data for long form of %q", v) + } + lang.s[i] += add + } + b.writeConst("lang", tag.Index(lang.join())) + + b.writeConst("langNoIndexOffset", len(b.lang.s)) + + // space of all valid 3-letter language identifiers. + b.writeBitVector("langNoIndex", b.langNoIndex.slice()) + + altLangIndex := []uint16{} + for i, s := range altLangISO3.slice() { + altLangISO3.s[i] += string([]byte{byte(len(altLangIndex))}) + if i > 0 { + idx := b.lang.index(altLangISO3.update[s]) + altLangIndex = append(altLangIndex, uint16(idx)) + } + } + b.writeConst("altLangISO3", tag.Index(altLangISO3.join())) + b.writeSlice("altLangIndex", altLangIndex) + + b.writeSortedMap("langAliasMap", &langAliasMap, b.langIndex) + types := make([]langAliasType, len(langAliasMap.s)) + for i, s := range langAliasMap.s { + types[i] = aliasTypeMap[s] + } + b.writeSlice("langAliasTypes", types) +} + +var scriptConsts = []string{ + "Latn", "Hani", "Hans", "Hant", "Qaaa", "Qaai", "Qabx", "Zinh", "Zyyy", + "Zzzz", +} + +func (b *builder) writeScript() { + b.writeConsts(b.script.index, scriptConsts...) + b.writeConst("script", tag.Index(b.script.join())) + + supp := make([]uint8, len(b.lang.slice())) + for i, v := range b.lang.slice()[1:] { + if sc := b.registry[v].suppressScript; sc != "" { + supp[i+1] = uint8(b.script.index(sc)) + } + } + b.writeSlice("suppressScript", supp) + + // There is only one deprecated script in CLDR. This value is hard-coded. + // We check here if the code must be updated. + for _, a := range b.supp.Metadata.Alias.ScriptAlias { + if a.Type != "Qaai" { + log.Panicf("unexpected deprecated stript %q", a.Type) + } + } +} + +func parseM49(s string) int16 { + if len(s) == 0 { + return 0 + } + v, err := strconv.ParseUint(s, 10, 10) + failOnError(err) + return int16(v) +} + +var regionConsts = []string{ + "001", "419", "BR", "CA", "ES", "GB", "MD", "PT", "UK", "US", + "ZZ", "XA", "XC", "XK", // Unofficial tag for Kosovo. +} + +func (b *builder) writeRegion() { + b.writeConsts(b.region.index, regionConsts...) + + isoOffset := b.region.index("AA") + m49map := make([]int16, len(b.region.slice())) + fromM49map := make(map[int16]int) + altRegionISO3 := "" + altRegionIDs := []uint16{} + + b.writeConst("isoRegionOffset", isoOffset) + + // 2-letter region lookup and mapping to numeric codes. + regionISO := b.region.clone() + regionISO.s = regionISO.s[isoOffset:] + regionISO.sorted = false + + regionTypes := make([]byte, len(b.region.s)) + + // Is the region valid BCP 47? + for s, e := range b.registry { + if len(s) == 2 && s == strings.ToUpper(s) { + i := b.region.index(s) + for _, d := range e.description { + if strings.Contains(d, "Private use") { + regionTypes[i] = iso3166UserAssgined + } + } + regionTypes[i] |= bcp47Region + } + } + + // Is the region a valid ccTLD? + r := gen.OpenIANAFile("domains/root/db") + defer r.Close() + + buf, err := ioutil.ReadAll(r) + failOnError(err) + re := regexp.MustCompile(`"/domains/root/db/([a-z]{2}).html"`) + for _, m := range re.FindAllSubmatch(buf, -1) { + i := b.region.index(strings.ToUpper(string(m[1]))) + regionTypes[i] |= ccTLD + } + + b.writeSlice("regionTypes", regionTypes) + + iso3Set := make(map[string]int) + update := func(iso2, iso3 string) { + i := regionISO.index(iso2) + if j, ok := iso3Set[iso3]; !ok && iso3[0] == iso2[0] { + regionISO.s[i] += iso3[1:] + iso3Set[iso3] = -1 + } else { + if ok && j >= 0 { + regionISO.s[i] += string([]byte{0, byte(j)}) + } else { + iso3Set[iso3] = len(altRegionISO3) + regionISO.s[i] += string([]byte{0, byte(len(altRegionISO3))}) + altRegionISO3 += iso3 + altRegionIDs = append(altRegionIDs, uint16(isoOffset+i)) + } + } + } + for _, tc := range b.supp.CodeMappings.TerritoryCodes { + i := regionISO.index(tc.Type) + isoOffset + if d := m49map[i]; d != 0 { + log.Panicf("%s found as a duplicate UN.M49 code of %03d", tc.Numeric, d) + } + m49 := parseM49(tc.Numeric) + m49map[i] = m49 + if r := fromM49map[m49]; r == 0 { + fromM49map[m49] = i + } else if r != i { + dep := b.registry[regionISO.s[r-isoOffset]].deprecated + if t := b.registry[tc.Type]; t != nil && dep != "" && (t.deprecated == "" || t.deprecated > dep) { + fromM49map[m49] = i + } + } + } + for _, ta := range b.supp.Metadata.Alias.TerritoryAlias { + if len(ta.Type) == 3 && ta.Type[0] <= '9' && len(ta.Replacement) == 2 { + from := parseM49(ta.Type) + if r := fromM49map[from]; r == 0 { + fromM49map[from] = regionISO.index(ta.Replacement) + isoOffset + } + } + } + for _, tc := range b.supp.CodeMappings.TerritoryCodes { + if len(tc.Alpha3) == 3 { + update(tc.Type, tc.Alpha3) + } + } + // This entries are not included in territoryCodes. Mostly 3-letter variants + // of deleted codes and an entry for QU. + for _, m := range []struct{ iso2, iso3 string }{ + {"CT", "CTE"}, + {"DY", "DHY"}, + {"HV", "HVO"}, + {"JT", "JTN"}, + {"MI", "MID"}, + {"NH", "NHB"}, + {"NQ", "ATN"}, + {"PC", "PCI"}, + {"PU", "PUS"}, + {"PZ", "PCZ"}, + {"RH", "RHO"}, + {"VD", "VDR"}, + {"WK", "WAK"}, + // These three-letter codes are used for others as well. + {"FQ", "ATF"}, + } { + update(m.iso2, m.iso3) + } + for i, s := range regionISO.s { + if len(s) != 4 { + regionISO.s[i] = s + " " + } + } + b.writeConst("regionISO", tag.Index(regionISO.join())) + b.writeConst("altRegionISO3", altRegionISO3) + b.writeSlice("altRegionIDs", altRegionIDs) + + // Create list of deprecated regions. + // TODO: consider inserting SF -> FI. Not included by CLDR, but is the only + // Transitionally-reserved mapping not included. + regionOldMap := stringSet{} + // Include regions in territoryAlias (not all are in the IANA registry!) + for _, reg := range b.supp.Metadata.Alias.TerritoryAlias { + if len(reg.Type) == 2 && reg.Reason == "deprecated" && len(reg.Replacement) == 2 { + regionOldMap.add(reg.Type) + regionOldMap.updateLater(reg.Type, reg.Replacement) + i, _ := regionISO.find(reg.Type) + j, _ := regionISO.find(reg.Replacement) + if k := m49map[i+isoOffset]; k == 0 { + m49map[i+isoOffset] = m49map[j+isoOffset] + } + } + } + b.writeSortedMap("regionOldMap", ®ionOldMap, func(s string) uint16 { + return uint16(b.region.index(s)) + }) + // 3-digit region lookup, groupings. + for i := 1; i < isoOffset; i++ { + m := parseM49(b.region.s[i]) + m49map[i] = m + fromM49map[m] = i + } + b.writeSlice("m49", m49map) + + const ( + searchBits = 7 + regionBits = 9 + ) + if len(m49map) >= 1< %d", len(m49map), 1<>searchBits] = int16(len(fromM49)) + } + b.writeSlice("m49Index", m49Index) + b.writeSlice("fromM49", fromM49) +} + +const ( + // TODO: put these lists in regionTypes as user data? Could be used for + // various optimizations and refinements and could be exposed in the API. + iso3166Except = "AC CP DG EA EU FX IC SU TA UK" + iso3166Trans = "AN BU CS NT TP YU ZR" // SF is not in our set of Regions. + // DY and RH are actually not deleted, but indeterminately reserved. + iso3166DelCLDR = "CT DD DY FQ HV JT MI NH NQ PC PU PZ RH VD WK YD" +) + +const ( + iso3166UserAssgined = 1 << iota + ccTLD + bcp47Region +) + +func find(list []string, s string) int { + for i, t := range list { + if t == s { + return i + } + } + return -1 +} + +// writeVariants generates per-variant information and creates a map from variant +// name to index value. We assign index values such that sorting multiple +// variants by index value will result in the correct order. +// There are two types of variants: specialized and general. Specialized variants +// are only applicable to certain language or language-script pairs. Generalized +// variants apply to any language. Generalized variants always sort after +// specialized variants. We will therefore always assign a higher index value +// to a generalized variant than any other variant. Generalized variants are +// sorted alphabetically among themselves. +// Specialized variants may also sort after other specialized variants. Such +// variants will be ordered after any of the variants they may follow. +// We assume that if a variant x is followed by a variant y, then for any prefix +// p of x, p-x is a prefix of y. This allows us to order tags based on the +// maximum of the length of any of its prefixes. +// TODO: it is possible to define a set of Prefix values on variants such that +// a total order cannot be defined to the point that this algorithm breaks. +// In other words, we cannot guarantee the same order of variants for the +// future using the same algorithm or for non-compliant combinations of +// variants. For this reason, consider using simple alphabetic sorting +// of variants and ignore Prefix restrictions altogether. +func (b *builder) writeVariant() { + generalized := stringSet{} + specialized := stringSet{} + specializedExtend := stringSet{} + // Collate the variants by type and check assumptions. + for _, v := range b.variant.slice() { + e := b.registry[v] + if len(e.prefix) == 0 { + generalized.add(v) + continue + } + c := strings.Split(e.prefix[0], "-") + hasScriptOrRegion := false + if len(c) > 1 { + _, hasScriptOrRegion = b.script.find(c[1]) + if !hasScriptOrRegion { + _, hasScriptOrRegion = b.region.find(c[1]) + + } + } + if len(c) == 1 || len(c) == 2 && hasScriptOrRegion { + // Variant is preceded by a language. + specialized.add(v) + continue + } + // Variant is preceded by another variant. + specializedExtend.add(v) + prefix := c[0] + "-" + if hasScriptOrRegion { + prefix += c[1] + } + for _, p := range e.prefix { + // Verify that the prefix minus the last element is a prefix of the + // predecessor element. + i := strings.LastIndex(p, "-") + pred := b.registry[p[i+1:]] + if find(pred.prefix, p[:i]) < 0 { + log.Fatalf("prefix %q for variant %q not consistent with predecessor spec", p, v) + } + // The sorting used below does not work in the general case. It works + // if we assume that variants that may be followed by others only have + // prefixes of the same length. Verify this. + count := strings.Count(p[:i], "-") + for _, q := range pred.prefix { + if c := strings.Count(q, "-"); c != count { + log.Fatalf("variant %q preceding %q has a prefix %q of size %d; want %d", p[i+1:], v, q, c, count) + } + } + if !strings.HasPrefix(p, prefix) { + log.Fatalf("prefix %q of variant %q should start with %q", p, v, prefix) + } + } + } + + // Sort extended variants. + a := specializedExtend.s + less := func(v, w string) bool { + // Sort by the maximum number of elements. + maxCount := func(s string) (max int) { + for _, p := range b.registry[s].prefix { + if c := strings.Count(p, "-"); c > max { + max = c + } + } + return + } + if cv, cw := maxCount(v), maxCount(w); cv != cw { + return cv < cw + } + // Sort by name as tie breaker. + return v < w + } + sort.Sort(funcSorter{less, sort.StringSlice(a)}) + specializedExtend.frozen = true + + // Create index from variant name to index. + variantIndex := make(map[string]uint8) + add := func(s []string) { + for _, v := range s { + variantIndex[v] = uint8(len(variantIndex)) + } + } + add(specialized.slice()) + add(specializedExtend.s) + numSpecialized := len(variantIndex) + add(generalized.slice()) + if n := len(variantIndex); n > 255 { + log.Fatalf("maximum number of variants exceeded: was %d; want <= 255", n) + } + b.writeMap("variantIndex", variantIndex) + b.writeConst("variantNumSpecialized", numSpecialized) +} + +func (b *builder) writeLanguageInfo() { +} + +// writeLikelyData writes tables that are used both for finding parent relations and for +// language matching. Each entry contains additional bits to indicate the status of the +// data to know when it cannot be used for parent relations. +func (b *builder) writeLikelyData() { + const ( + isList = 1 << iota + scriptInFrom + regionInFrom + ) + type ( // generated types + likelyScriptRegion struct { + region uint16 + script uint8 + flags uint8 + } + likelyLangScript struct { + lang uint16 + script uint8 + flags uint8 + } + likelyLangRegion struct { + lang uint16 + region uint16 + } + // likelyTag is used for getting likely tags for group regions, where + // the likely region might be a region contained in the group. + likelyTag struct { + lang uint16 + region uint16 + script uint8 + } + ) + var ( // generated variables + likelyRegionGroup = make([]likelyTag, len(b.groups)) + likelyLang = make([]likelyScriptRegion, len(b.lang.s)) + likelyRegion = make([]likelyLangScript, len(b.region.s)) + likelyScript = make([]likelyLangRegion, len(b.script.s)) + likelyLangList = []likelyScriptRegion{} + likelyRegionList = []likelyLangScript{} + ) + type fromTo struct { + from, to []string + } + langToOther := map[int][]fromTo{} + regionToOther := map[int][]fromTo{} + for _, m := range b.supp.LikelySubtags.LikelySubtag { + from := strings.Split(m.From, "_") + to := strings.Split(m.To, "_") + if len(to) != 3 { + log.Fatalf("invalid number of subtags in %q: found %d, want 3", m.To, len(to)) + } + if len(from) > 3 { + log.Fatalf("invalid number of subtags: found %d, want 1-3", len(from)) + } + if from[0] != to[0] && from[0] != "und" { + log.Fatalf("unexpected language change in expansion: %s -> %s", from, to) + } + if len(from) == 3 { + if from[2] != to[2] { + log.Fatalf("unexpected region change in expansion: %s -> %s", from, to) + } + if from[0] != "und" { + log.Fatalf("unexpected fully specified from tag: %s -> %s", from, to) + } + } + if len(from) == 1 || from[0] != "und" { + id := 0 + if from[0] != "und" { + id = b.lang.index(from[0]) + } + langToOther[id] = append(langToOther[id], fromTo{from, to}) + } else if len(from) == 2 && len(from[1]) == 4 { + sid := b.script.index(from[1]) + likelyScript[sid].lang = uint16(b.langIndex(to[0])) + likelyScript[sid].region = uint16(b.region.index(to[2])) + } else { + r := b.region.index(from[len(from)-1]) + if id, ok := b.groups[r]; ok { + if from[0] != "und" { + log.Fatalf("region changed unexpectedly: %s -> %s", from, to) + } + likelyRegionGroup[id].lang = uint16(b.langIndex(to[0])) + likelyRegionGroup[id].script = uint8(b.script.index(to[1])) + likelyRegionGroup[id].region = uint16(b.region.index(to[2])) + } else { + regionToOther[r] = append(regionToOther[r], fromTo{from, to}) + } + } + } + b.writeType(likelyLangRegion{}) + b.writeSlice("likelyScript", likelyScript) + + for id := range b.lang.s { + list := langToOther[id] + if len(list) == 1 { + likelyLang[id].region = uint16(b.region.index(list[0].to[2])) + likelyLang[id].script = uint8(b.script.index(list[0].to[1])) + } else if len(list) > 1 { + likelyLang[id].flags = isList + likelyLang[id].region = uint16(len(likelyLangList)) + likelyLang[id].script = uint8(len(list)) + for _, x := range list { + flags := uint8(0) + if len(x.from) > 1 { + if x.from[1] == x.to[2] { + flags = regionInFrom + } else { + flags = scriptInFrom + } + } + likelyLangList = append(likelyLangList, likelyScriptRegion{ + region: uint16(b.region.index(x.to[2])), + script: uint8(b.script.index(x.to[1])), + flags: flags, + }) + } + } + } + // TODO: merge suppressScript data with this table. + b.writeType(likelyScriptRegion{}) + b.writeSlice("likelyLang", likelyLang) + b.writeSlice("likelyLangList", likelyLangList) + + for id := range b.region.s { + list := regionToOther[id] + if len(list) == 1 { + likelyRegion[id].lang = uint16(b.langIndex(list[0].to[0])) + likelyRegion[id].script = uint8(b.script.index(list[0].to[1])) + if len(list[0].from) > 2 { + likelyRegion[id].flags = scriptInFrom + } + } else if len(list) > 1 { + likelyRegion[id].flags = isList + likelyRegion[id].lang = uint16(len(likelyRegionList)) + likelyRegion[id].script = uint8(len(list)) + for i, x := range list { + if len(x.from) == 2 && i != 0 || i > 0 && len(x.from) != 3 { + log.Fatalf("unspecified script must be first in list: %v at %d", x.from, i) + } + x := likelyLangScript{ + lang: uint16(b.langIndex(x.to[0])), + script: uint8(b.script.index(x.to[1])), + } + if len(list[0].from) > 2 { + x.flags = scriptInFrom + } + likelyRegionList = append(likelyRegionList, x) + } + } + } + b.writeType(likelyLangScript{}) + b.writeSlice("likelyRegion", likelyRegion) + b.writeSlice("likelyRegionList", likelyRegionList) + + b.writeType(likelyTag{}) + b.writeSlice("likelyRegionGroup", likelyRegionGroup) +} + +type mutualIntelligibility struct { + want, have uint16 + conf uint8 + oneway bool +} + +type scriptIntelligibility struct { + lang uint16 // langID or 0 if * + want, have uint8 + conf uint8 +} + +type sortByConf []mutualIntelligibility + +func (l sortByConf) Less(a, b int) bool { + return l[a].conf > l[b].conf +} + +func (l sortByConf) Swap(a, b int) { + l[a], l[b] = l[b], l[a] +} + +func (l sortByConf) Len() int { + return len(l) +} + +// toConf converts a percentage value [0, 100] to a confidence class. +func toConf(pct uint8) uint8 { + switch { + case pct == 100: + return 3 // Exact + case pct >= 90: + return 2 // High + case pct > 50: + return 1 // Low + default: + return 0 // No + } +} + +// writeMatchData writes tables with languages and scripts for which there is +// mutual intelligibility. The data is based on CLDR's languageMatching data. +// Note that we use a different algorithm than the one defined by CLDR and that +// we slightly modify the data. For example, we convert scores to confidence levels. +// We also drop all region-related data as we use a different algorithm to +// determine region equivalence. +func (b *builder) writeMatchData() { + b.writeType(mutualIntelligibility{}) + b.writeType(scriptIntelligibility{}) + lm := b.supp.LanguageMatching.LanguageMatches + cldr.MakeSlice(&lm).SelectAnyOf("type", "written") + + matchLang := []mutualIntelligibility{} + matchScript := []scriptIntelligibility{} + // Convert the languageMatch entries in lists keyed by desired language. + for _, m := range lm[0].LanguageMatch { + // Different versions of CLDR use different separators. + desired := strings.Replace(m.Desired, "-", "_", -1) + supported := strings.Replace(m.Supported, "-", "_", -1) + d := strings.Split(desired, "_") + s := strings.Split(supported, "_") + if len(d) != len(s) || len(d) > 2 { + // Skip all entries with regions and work around CLDR bug. + continue + } + pct, _ := strconv.ParseInt(m.Percent, 10, 8) + if len(d) == 2 && d[0] == s[0] && len(d[1]) == 4 { + // language-script pair. + lang := uint16(0) + if d[0] != "*" { + lang = uint16(b.langIndex(d[0])) + } + matchScript = append(matchScript, scriptIntelligibility{ + lang: lang, + want: uint8(b.script.index(d[1])), + have: uint8(b.script.index(s[1])), + conf: toConf(uint8(pct)), + }) + if m.Oneway != "true" { + matchScript = append(matchScript, scriptIntelligibility{ + lang: lang, + want: uint8(b.script.index(s[1])), + have: uint8(b.script.index(d[1])), + conf: toConf(uint8(pct)), + }) + } + } else if len(d) == 1 && d[0] != "*" { + if pct == 100 { + // nb == no is already handled by macro mapping. Check there + // really is only this case. + if d[0] != "no" || s[0] != "nb" { + log.Fatalf("unhandled equivalence %s == %s", s[0], d[0]) + } + continue + } + matchLang = append(matchLang, mutualIntelligibility{ + want: uint16(b.langIndex(d[0])), + have: uint16(b.langIndex(s[0])), + conf: uint8(pct), + oneway: m.Oneway == "true", + }) + } else { + // TODO: Handle other mappings. + a := []string{"*;*", "*_*;*_*", "es_MX;es_419"} + s := strings.Join([]string{desired, supported}, ";") + if i := sort.SearchStrings(a, s); i == len(a) || a[i] != s { + log.Printf("%q not handled", s) + } + } + } + sort.Stable(sortByConf(matchLang)) + // collapse percentage into confidence classes + for i, m := range matchLang { + matchLang[i].conf = toConf(m.conf) + } + b.writeSlice("matchLang", matchLang) + b.writeSlice("matchScript", matchScript) +} + +func (b *builder) writeRegionInclusionData() { + var ( + // mm holds for each group the set of groups with a distance of 1. + mm = make(map[int][]index) + + // containment holds for each group the transitive closure of + // containment of other groups. + containment = make(map[index][]index) + ) + for _, g := range b.supp.TerritoryContainment.Group { + group := b.region.index(g.Type) + groupIdx := b.groups[group] + for _, mem := range strings.Split(g.Contains, " ") { + r := b.region.index(mem) + mm[r] = append(mm[r], groupIdx) + if g, ok := b.groups[r]; ok { + mm[group] = append(mm[group], g) + containment[groupIdx] = append(containment[groupIdx], g) + } + } + } + + regionContainment := make([]uint32, len(b.groups)) + for _, g := range b.groups { + l := containment[g] + + // Compute the transitive closure of containment. + for i := 0; i < len(l); i++ { + l = append(l, containment[l[i]]...) + } + + // Compute the bitmask. + regionContainment[g] = 1 << g + for _, v := range l { + regionContainment[g] |= 1 << v + } + // log.Printf("%d: %X", g, regionContainment[g]) + } + b.writeSlice("regionContainment", regionContainment) + + regionInclusion := make([]uint8, len(b.region.s)) + bvs := make(map[uint32]index) + // Make the first bitvector positions correspond with the groups. + for r, i := range b.groups { + bv := uint32(1 << i) + for _, g := range mm[r] { + bv |= 1 << g + } + bvs[bv] = i + regionInclusion[r] = uint8(bvs[bv]) + } + for r := 1; r < len(b.region.s); r++ { + if _, ok := b.groups[r]; !ok { + bv := uint32(0) + for _, g := range mm[r] { + bv |= 1 << g + } + if bv == 0 { + // Pick the world for unspecified regions. + bv = 1 << b.groups[b.region.index("001")] + } + if _, ok := bvs[bv]; !ok { + bvs[bv] = index(len(bvs)) + } + regionInclusion[r] = uint8(bvs[bv]) + } + } + b.writeSlice("regionInclusion", regionInclusion) + regionInclusionBits := make([]uint32, len(bvs)) + for k, v := range bvs { + regionInclusionBits[v] = uint32(k) + } + // Add bit vectors for increasingly large distances until a fixed point is reached. + regionInclusionNext := []uint8{} + for i := 0; i < len(regionInclusionBits); i++ { + bits := regionInclusionBits[i] + next := bits + for i := uint(0); i < uint(len(b.groups)); i++ { + if bits&(1< 0) + } + } + } + + // Add entries for languages with mutual intelligibility as defined by CLDR's + // languageMatch data. + for _, ml := range matchLang { + update(ml.want, ml.have, Confidence(ml.conf), false) + if !ml.oneway { + update(ml.have, ml.want, Confidence(ml.conf), false) + } + } + + // Add entries for possible canonicalizations. This is an optimization to + // ensure that only one map lookup needs to be done at runtime per desired tag. + // First we match deprecated equivalents. If they are perfect equivalents + // (their canonicalization simply substitutes a different language code, but + // nothing else), the match confidence is Exact, otherwise it is High. + for i, lm := range langAliasMap { + if lm.from == _sh { + continue + } + + // If deprecated codes match and there is no fiddling with the script or + // or region, we consider it an exact match. + conf := Exact + if langAliasTypes[i] != langMacro { + if !isExactEquivalent(langID(lm.from)) { + conf = High + } + update(lm.to, lm.from, conf, true) + } + update(lm.from, lm.to, conf, true) + } + return m +} + +// getBest gets the best matching tag in m for any of the given tags, taking into +// account the order of preference of the given tags. +func (m *matcher) getBest(want ...Tag) (got *haveTag, orig Tag, c Confidence) { + best := bestMatch{} + for _, w := range want { + var max Tag + // Check for exact match first. + h := m.index[w.lang] + if w.lang != 0 { + // Base language is defined. + if h == nil { + continue + } + for i := range h.exact { + have := &h.exact[i] + if have.tag.equalsRest(w) { + return have, w, Exact + } + } + max, _ = w.canonicalize(Legacy | Deprecated) + max, _ = addTags(max) + } else { + // Base language is not defined. + if h != nil { + for i := range h.exact { + have := &h.exact[i] + if have.tag.equalsRest(w) { + return have, w, Exact + } + } + } + if w.script == 0 && w.region == 0 { + // We skip all tags matching und for approximate matching, including + // private tags. + continue + } + max, _ = addTags(w) + if h = m.index[max.lang]; h == nil { + continue + } + } + // Check for match based on maximized tag. + for i := range h.max { + have := &h.max[i] + best.update(have, w, max.script, max.region) + if best.conf == Exact { + for have.nextMax != 0 { + have = &h.max[have.nextMax] + best.update(have, w, max.script, max.region) + } + return best.have, best.want, High + } + } + } + if best.conf <= No { + if len(want) != 0 { + return nil, want[0], No + } + return nil, Tag{}, No + } + return best.have, best.want, best.conf +} + +// bestMatch accumulates the best match so far. +type bestMatch struct { + have *haveTag + want Tag + conf Confidence + // Cached results from applying tie-breaking rules. + origLang bool + origReg bool + regDist uint8 + origScript bool + parentDist uint8 // 255 if have is not an ancestor of want tag. +} + +// update updates the existing best match if the new pair is considered to be a +// better match. +// To determine if the given pair is a better match, it first computes the rough +// confidence level. If this surpasses the current match, it will replace it and +// update the tie-breaker rule cache. If there is a tie, it proceeds with applying +// a series of tie-breaker rules. If there is no conclusive winner after applying +// the tie-breaker rules, it leaves the current match as the preferred match. +func (m *bestMatch) update(have *haveTag, tag Tag, maxScript scriptID, maxRegion regionID) { + // Bail if the maximum attainable confidence is below that of the current best match. + c := have.conf + if c < m.conf { + return + } + if have.maxScript != maxScript { + // There is usually very little comprehension between different scripts. + // In a few cases there may still be Low comprehension. This possibility is + // pre-computed and stored in have.altScript. + if Low < m.conf || have.altScript != maxScript { + return + } + c = Low + } else if have.maxRegion != maxRegion { + // There is usually a small difference between languages across regions. + // We use the region distance (below) to disambiguate between equal matches. + if High < c { + c = High + } + } + + // We store the results of the computations of the tie-breaker rules along + // with the best match. There is no need to do the checks once we determine + // we have a winner, but we do still need to do the tie-breaker computations. + // We use "beaten" to keep track if we still need to do the checks. + beaten := false // true if the new pair defeats the current one. + if c != m.conf { + if c < m.conf { + return + } + beaten = true + } + + // Tie-breaker rules: + // We prefer if the pre-maximized language was specified and identical. + origLang := have.tag.lang == tag.lang && tag.lang != 0 + if !beaten && m.origLang != origLang { + if m.origLang { + return + } + beaten = true + } + + // We prefer if the pre-maximized region was specified and identical. + origReg := have.tag.region == tag.region && tag.region != 0 + if !beaten && m.origReg != origReg { + if m.origReg { + return + } + beaten = true + } + + // Next we prefer smaller distances between regions, as defined by regionDist. + regDist := regionDist(have.maxRegion, maxRegion, tag.lang) + if !beaten && m.regDist != regDist { + if regDist > m.regDist { + return + } + beaten = true + } + + // Next we prefer if the pre-maximized script was specified and identical. + origScript := have.tag.script == tag.script && tag.script != 0 + if !beaten && m.origScript != origScript { + if m.origScript { + return + } + beaten = true + } + + // Finally we prefer tags which have a closer parent relationship. + parentDist := parentDistance(have.tag.region, tag) + if !beaten && m.parentDist != parentDist { + if parentDist > m.parentDist { + return + } + beaten = true + } + + // Update m to the newly found best match. + if beaten { + m.have = have + m.want = tag + m.conf = c + m.origLang = origLang + m.origReg = origReg + m.origScript = origScript + m.regDist = regDist + m.parentDist = parentDist + } +} + +// parentDistance returns the number of times Parent must be called before the +// regions match. It is assumed that it has already been checked that lang and +// script are identical. If haveRegion does not occur in the ancestor chain of +// tag, it returns 255. +func parentDistance(haveRegion regionID, tag Tag) uint8 { + p := tag.Parent() + d := uint8(1) + for haveRegion != p.region { + if p.region == 0 { + return 255 + } + p = p.Parent() + d++ + } + return d +} + +// regionDist wraps regionDistance with some exceptions to the algorithmic distance. +func regionDist(a, b regionID, lang langID) uint8 { + if lang == _en { + // Two variants of non-US English are close to each other, regardless of distance. + if a != _US && b != _US { + return 2 + } + } + return uint8(regionDistance(a, b)) +} + +// regionDistance computes the distance between two regions based on the +// distance in the graph of region containments as defined in CLDR. It iterates +// over increasingly inclusive sets of groups, represented as bit vectors, until +// the source bit vector has bits in common with the destination vector. +func regionDistance(a, b regionID) int { + if a == b { + return 0 + } + p, q := regionInclusion[a], regionInclusion[b] + if p < nRegionGroups { + p, q = q, p + } + set := regionInclusionBits + if q < nRegionGroups && set[p]&(1< 0 { + return t.str[t.pVariant:t.pExt] + } + return t.str[t.pVariant:] +} + +// equalsRest compares everything except the language. +func (a Tag) equalsRest(b Tag) bool { + // TODO: don't include extensions in this comparison. To do this efficiently, + // though, we should handle private tags separately. + return a.script == b.script && a.region == b.region && a.variantOrPrivateTagStr() == b.variantOrPrivateTagStr() +} + +// isExactEquivalent returns true if canonicalizing the language will not alter +// the script or region of a tag. +func isExactEquivalent(l langID) bool { + for _, o := range notEquivalent { + if o == l { + return false + } + } + return true +} + +var notEquivalent []langID + +func init() { + // Create a list of all languages for which canonicalization may alter the + // script or region. + for _, lm := range langAliasMap { + tag := Tag{lang: langID(lm.from)} + if tag, _ = tag.canonicalize(All); tag.script != 0 || tag.region != 0 { + notEquivalent = append(notEquivalent, langID(lm.from)) + } + } +} diff --git a/vendor/golang.org/x/text/language/match_test.go b/vendor/golang.org/x/text/language/match_test.go new file mode 100644 index 00000000..57b16442 --- /dev/null +++ b/vendor/golang.org/x/text/language/match_test.go @@ -0,0 +1,392 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "bytes" + "flag" + "fmt" + "strings" + "testing" +) + +var verbose = flag.Bool("verbose", false, "set to true to print the internal tables of matchers") + +func TestAddLikelySubtags(t *testing.T) { + tests := []struct{ in, out string }{ + {"aa", "aa-Latn-ET"}, + {"aa-Latn", "aa-Latn-ET"}, + {"aa-Arab", "aa-Arab-ET"}, + {"aa-Arab-ER", "aa-Arab-ER"}, + {"kk", "kk-Cyrl-KZ"}, + {"kk-CN", "kk-Arab-CN"}, + {"cmn", "cmn"}, + {"zh-AU", "zh-Hant-AU"}, + {"zh-VN", "zh-Hant-VN"}, + {"zh-SG", "zh-Hans-SG"}, + {"zh-Hant", "zh-Hant-TW"}, + {"zh-Hani", "zh-Hani-CN"}, + {"und-Hani", "zh-Hani-CN"}, + {"und", "en-Latn-US"}, + {"und-GB", "en-Latn-GB"}, + {"und-CW", "pap-Latn-CW"}, + {"und-YT", "fr-Latn-YT"}, + {"und-Arab", "ar-Arab-EG"}, + {"und-AM", "hy-Armn-AM"}, + {"und-002", "en-Latn-NG"}, + {"und-Latn-002", "en-Latn-NG"}, + {"en-Latn-002", "en-Latn-NG"}, + {"en-002", "en-Latn-NG"}, + {"en-001", "en-Latn-US"}, + {"und-003", "en-Latn-US"}, + {"und-GB", "en-Latn-GB"}, + {"Latn-001", "en-Latn-US"}, + {"en-001", "en-Latn-US"}, + {"es-419", "es-Latn-419"}, + {"he-145", "he-Hebr-IL"}, + {"ky-145", "ky-Latn-TR"}, + {"kk", "kk-Cyrl-KZ"}, + // Don't specialize duplicate and ambiguous matches. + {"kk-034", "kk-Arab-034"}, // Matches IR and AF. Both are Arab. + {"ku-145", "ku-Latn-TR"}, // Matches IQ, TR, and LB, but kk -> TR. + {"und-Arab-CC", "ms-Arab-CC"}, + {"und-Arab-GB", "ks-Arab-GB"}, + {"und-Hans-CC", "zh-Hans-CC"}, + {"und-CC", "en-Latn-CC"}, + {"sr", "sr-Cyrl-RS"}, + {"sr-151", "sr-Latn-151"}, // Matches RO and RU. + // We would like addLikelySubtags to generate the same results if the input + // only changes by adding tags that would otherwise have been added + // by the expansion. + // In other words: + // und-AA -> xx-Scrp-AA implies und-Scrp-AA -> xx-Scrp-AA + // und-AA -> xx-Scrp-AA implies xx-AA -> xx-Scrp-AA + // und-Scrp -> xx-Scrp-AA implies und-Scrp-AA -> xx-Scrp-AA + // und-Scrp -> xx-Scrp-AA implies xx-Scrp -> xx-Scrp-AA + // xx -> xx-Scrp-AA implies xx-Scrp -> xx-Scrp-AA + // xx -> xx-Scrp-AA implies xx-AA -> xx-Scrp-AA + // + // The algorithm specified in + // http://unicode.org/reports/tr35/tr35-9.html#Supplemental_Data, + // Section C.10, does not handle the first case. For example, + // the CLDR data contains an entry und-BJ -> fr-Latn-BJ, but not + // there is no rule for und-Latn-BJ. According to spec, und-Latn-BJ + // would expand to en-Latn-BJ, violating the aforementioned principle. + // We deviate from the spec by letting und-Scrp-AA expand to xx-Scrp-AA + // if a rule of the form und-AA -> xx-Scrp-AA is defined. + // Note that as of version 23, CLDR has some explicitly specified + // entries that do not conform to these rules. The implementation + // will not correct these explicit inconsistencies. A later versions of CLDR + // is supposed to fix this. + {"und-Latn-BJ", "fr-Latn-BJ"}, + {"und-Bugi-ID", "bug-Bugi-ID"}, + // regions, scripts and languages without definitions + {"und-Arab-AA", "ar-Arab-AA"}, + {"und-Afak-RE", "fr-Afak-RE"}, + {"und-Arab-GB", "ks-Arab-GB"}, + {"abp-Arab-GB", "abp-Arab-GB"}, + // script has preference over region + {"und-Arab-NL", "ar-Arab-NL"}, + {"zza", "zza-Latn-TR"}, + // preserve variants and extensions + {"de-1901", "de-Latn-DE-1901"}, + {"de-x-abc", "de-Latn-DE-x-abc"}, + {"de-1901-x-abc", "de-Latn-DE-1901-x-abc"}, + {"x-abc", "x-abc"}, // TODO: is this the desired behavior? + } + for i, tt := range tests { + in, _ := Parse(tt.in) + out, _ := Parse(tt.out) + in, _ = in.addLikelySubtags() + if in.String() != out.String() { + t.Errorf("%d: add(%s) was %s; want %s", i, tt.in, in, tt.out) + } + } +} +func TestMinimize(t *testing.T) { + tests := []struct{ in, out string }{ + {"aa", "aa"}, + {"aa-Latn", "aa"}, + {"aa-Latn-ET", "aa"}, + {"aa-ET", "aa"}, + {"aa-Arab", "aa-Arab"}, + {"aa-Arab-ER", "aa-Arab-ER"}, + {"aa-Arab-ET", "aa-Arab"}, + {"und", "und"}, + {"und-Latn", "und"}, + {"und-Latn-US", "und"}, + {"en-Latn-US", "en"}, + {"cmn", "cmn"}, + {"cmn-Hans", "cmn-Hans"}, + {"cmn-Hant", "cmn-Hant"}, + {"zh-AU", "zh-AU"}, + {"zh-VN", "zh-VN"}, + {"zh-SG", "zh-SG"}, + {"zh-Hant", "zh-Hant"}, + {"zh-Hant-TW", "zh-TW"}, + {"zh-Hans", "zh"}, + {"zh-Hani", "zh-Hani"}, + {"und-Hans", "und-Hans"}, + {"und-Hani", "und-Hani"}, + + {"und-CW", "und-CW"}, + {"und-YT", "und-YT"}, + {"und-Arab", "und-Arab"}, + {"und-AM", "und-AM"}, + {"und-Arab-CC", "und-Arab-CC"}, + {"und-CC", "und-CC"}, + {"und-Latn-BJ", "und-BJ"}, + {"und-Bugi-ID", "und-Bugi"}, + {"bug-Bugi-ID", "bug-Bugi"}, + // regions, scripts and languages without definitions + {"und-Arab-AA", "und-Arab-AA"}, + // preserve variants and extensions + {"de-Latn-1901", "de-1901"}, + {"de-Latn-x-abc", "de-x-abc"}, + {"de-DE-1901-x-abc", "de-1901-x-abc"}, + {"x-abc", "x-abc"}, // TODO: is this the desired behavior? + } + for i, tt := range tests { + in, _ := Parse(tt.in) + out, _ := Parse(tt.out) + min, _ := in.minimize() + if min.String() != out.String() { + t.Errorf("%d: min(%s) was %s; want %s", i, tt.in, min, tt.out) + } + max, _ := min.addLikelySubtags() + if x, _ := in.addLikelySubtags(); x.String() != max.String() { + t.Errorf("%d: max(min(%s)) = %s; want %s", i, tt.in, max, x) + } + } +} + +func TestRegionDistance(t *testing.T) { + tests := []struct { + a, b string + d int + }{ + {"NL", "NL", 0}, + {"NL", "EU", 1}, + {"EU", "NL", 1}, + {"005", "005", 0}, + {"NL", "BE", 2}, + {"CO", "005", 1}, + {"005", "CO", 1}, + {"CO", "419", 2}, + {"419", "CO", 2}, + {"005", "419", 1}, + {"419", "005", 1}, + {"001", "013", 2}, + {"013", "001", 2}, + {"CO", "CW", 4}, + {"CO", "PW", 6}, + {"CO", "BV", 6}, + {"ZZ", "QQ", 2}, + } + for i, tt := range tests { + ra, _ := getRegionID([]byte(tt.a)) + rb, _ := getRegionID([]byte(tt.b)) + if d := regionDistance(ra, rb); d != tt.d { + t.Errorf("%d: d(%s, %s) = %v; want %v", i, tt.a, tt.b, d, tt.d) + } + } +} + +func TestParentDistance(t *testing.T) { + tests := []struct { + parent string + tag string + d uint8 + }{ + {"en-001", "en-AU", 1}, + {"pt-PT", "pt-AO", 1}, + {"pt", "pt-AO", 2}, + {"en-AU", "en-GB", 255}, + {"en-NL", "en-AU", 255}, + // Note that pt-BR and en-US are not automatically minimized. + {"pt-BR", "pt-AO", 255}, + {"en-US", "en-AU", 255}, + } + for _, tt := range tests { + r := Raw.MustParse(tt.parent).region + tag := Raw.MustParse(tt.tag) + if d := parentDistance(r, tag); d != tt.d { + t.Errorf("d(%s, %s) was %d; want %d", r, tag, d, tt.d) + } + } +} + +// Implementation of String methods for various types for debugging purposes. + +func (m *matcher) String() string { + w := &bytes.Buffer{} + fmt.Fprintln(w, "Default:", m.default_) + for tag, h := range m.index { + fmt.Fprintf(w, " %s: %v\n", tag, h) + } + return w.String() +} + +func (h *matchHeader) String() string { + w := &bytes.Buffer{} + fmt.Fprintf(w, "exact: ") + for _, h := range h.exact { + fmt.Fprintf(w, "%v, ", h) + } + fmt.Fprint(w, "; max: ") + for _, h := range h.max { + fmt.Fprintf(w, "%v, ", h) + } + return w.String() +} + +func (t haveTag) String() string { + return fmt.Sprintf("%v:%d:%v:%v-%v|%v", t.tag, t.index, t.conf, t.maxRegion, t.maxScript, t.altScript) +} + +// The test set for TestBestMatch is defined in data_test.go. +func TestBestMatch(t *testing.T) { + parse := func(list string) (out []Tag) { + for _, s := range strings.Split(list, ",") { + out = append(out, mk(strings.TrimSpace(s))) + } + return out + } + for i, tt := range matchTests { + supported := parse(tt.supported) + m := newMatcher(supported) + if *verbose { + fmt.Printf("%s:\n%v\n", tt.comment, m) + } + for _, tm := range tt.test { + tag, _, conf := m.Match(parse(tm.desired)...) + if tag.String() != tm.match { + t.Errorf("%d:%s: find %s in %q: have %s; want %s (%v)\n", i, tt.comment, tm.desired, tt.supported, tag, tm.match, conf) + } + } + } +} + +var benchHave = []Tag{ + mk("en"), + mk("en-GB"), + mk("za"), + mk("zh-Hant"), + mk("zh-Hans-CN"), + mk("zh"), + mk("zh-HK"), + mk("ar-MK"), + mk("en-CA"), + mk("fr-CA"), + mk("fr-US"), + mk("fr-CH"), + mk("fr"), + mk("lt"), + mk("lv"), + mk("iw"), + mk("iw-NL"), + mk("he"), + mk("he-IT"), + mk("tlh"), + mk("ja"), + mk("ja-Jpan"), + mk("ja-Jpan-JP"), + mk("de"), + mk("de-CH"), + mk("de-AT"), + mk("de-DE"), + mk("sr"), + mk("sr-Latn"), + mk("sr-Cyrl"), + mk("sr-ME"), +} + +var benchWant = [][]Tag{ + []Tag{ + mk("en"), + }, + []Tag{ + mk("en-AU"), + mk("de-HK"), + mk("nl"), + mk("fy"), + mk("lv"), + }, + []Tag{ + mk("en-AU"), + mk("de-HK"), + mk("nl"), + mk("fy"), + }, + []Tag{ + mk("ja-Hant"), + mk("da-HK"), + mk("nl"), + mk("zh-TW"), + }, + []Tag{ + mk("ja-Hant"), + mk("da-HK"), + mk("nl"), + mk("hr"), + }, +} + +func BenchmarkMatch(b *testing.B) { + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + for _, want := range benchWant { + m.getBest(want...) + } + } +} + +func BenchmarkMatchExact(b *testing.B) { + want := mk("en") + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want) + } +} + +func BenchmarkMatchAltLanguagePresent(b *testing.B) { + want := mk("hr") + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want) + } +} + +func BenchmarkMatchAltLanguageNotPresent(b *testing.B) { + want := mk("nn") + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want) + } +} + +func BenchmarkMatchAltScriptPresent(b *testing.B) { + want := mk("zh-Hant-CN") + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want) + } +} + +func BenchmarkMatchAltScriptNotPresent(b *testing.B) { + want := mk("fr-Cyrl") + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want) + } +} + +func BenchmarkMatchLimitedExact(b *testing.B) { + want := []Tag{mk("he-NL"), mk("iw-NL")} + m := newMatcher(benchHave) + for i := 0; i < b.N; i++ { + m.getBest(want...) + } +} diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go new file mode 100644 index 00000000..cfa28f56 --- /dev/null +++ b/vendor/golang.org/x/text/language/parse.go @@ -0,0 +1,859 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "bytes" + "errors" + "fmt" + "sort" + "strconv" + "strings" + + "golang.org/x/text/internal/tag" +) + +// isAlpha returns true if the byte is not a digit. +// b must be an ASCII letter or digit. +func isAlpha(b byte) bool { + return b > '9' +} + +// isAlphaNum returns true if the string contains only ASCII letters or digits. +func isAlphaNum(s []byte) bool { + for _, c := range s { + if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') { + return false + } + } + return true +} + +// errSyntax is returned by any of the parsing functions when the +// input is not well-formed, according to BCP 47. +// TODO: return the position at which the syntax error occurred? +var errSyntax = errors.New("language: tag is not well-formed") + +// ValueError is returned by any of the parsing functions when the +// input is well-formed but the respective subtag is not recognized +// as a valid value. +type ValueError struct { + v [8]byte +} + +func mkErrInvalid(s []byte) error { + var e ValueError + copy(e.v[:], s) + return e +} + +func (e ValueError) tag() []byte { + n := bytes.IndexByte(e.v[:], 0) + if n == -1 { + n = 8 + } + return e.v[:n] +} + +// Error implements the error interface. +func (e ValueError) Error() string { + return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag()) +} + +// Subtag returns the subtag for which the error occurred. +func (e ValueError) Subtag() string { + return string(e.tag()) +} + +// scanner is used to scan BCP 47 tokens, which are separated by _ or -. +type scanner struct { + b []byte + bytes [max99thPercentileSize]byte + token []byte + start int // start position of the current token + end int // end position of the current token + next int // next point for scan + err error + done bool +} + +func makeScannerString(s string) scanner { + scan := scanner{} + if len(s) <= len(scan.bytes) { + scan.b = scan.bytes[:copy(scan.bytes[:], s)] + } else { + scan.b = []byte(s) + } + scan.init() + return scan +} + +// makeScanner returns a scanner using b as the input buffer. +// b is not copied and may be modified by the scanner routines. +func makeScanner(b []byte) scanner { + scan := scanner{b: b} + scan.init() + return scan +} + +func (s *scanner) init() { + for i, c := range s.b { + if c == '_' { + s.b[i] = '-' + } + } + s.scan() +} + +// restToLower converts the string between start and end to lower case. +func (s *scanner) toLower(start, end int) { + for i := start; i < end; i++ { + c := s.b[i] + if 'A' <= c && c <= 'Z' { + s.b[i] += 'a' - 'A' + } + } +} + +func (s *scanner) setError(e error) { + if s.err == nil || (e == errSyntax && s.err != errSyntax) { + s.err = e + } +} + +// resizeRange shrinks or grows the array at position oldStart such that +// a new string of size newSize can fit between oldStart and oldEnd. +// Sets the scan point to after the resized range. +func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) { + s.start = oldStart + if end := oldStart + newSize; end != oldEnd { + diff := end - oldEnd + if end < cap(s.b) { + b := make([]byte, len(s.b)+diff) + copy(b, s.b[:oldStart]) + copy(b[end:], s.b[oldEnd:]) + s.b = b + } else { + s.b = append(s.b[end:], s.b[oldEnd:]...) + } + s.next = end + (s.next - s.end) + s.end = end + } +} + +// replace replaces the current token with repl. +func (s *scanner) replace(repl string) { + s.resizeRange(s.start, s.end, len(repl)) + copy(s.b[s.start:], repl) +} + +// gobble removes the current token from the input. +// Caller must call scan after calling gobble. +func (s *scanner) gobble(e error) { + s.setError(e) + if s.start == 0 { + s.b = s.b[:+copy(s.b, s.b[s.next:])] + s.end = 0 + } else { + s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])] + s.end = s.start - 1 + } + s.next = s.start +} + +// deleteRange removes the given range from s.b before the current token. +func (s *scanner) deleteRange(start, end int) { + s.setError(errSyntax) + s.b = s.b[:start+copy(s.b[start:], s.b[end:])] + diff := end - start + s.next -= diff + s.start -= diff + s.end -= diff +} + +// scan parses the next token of a BCP 47 string. Tokens that are larger +// than 8 characters or include non-alphanumeric characters result in an error +// and are gobbled and removed from the output. +// It returns the end position of the last token consumed. +func (s *scanner) scan() (end int) { + end = s.end + s.token = nil + for s.start = s.next; s.next < len(s.b); { + i := bytes.IndexByte(s.b[s.next:], '-') + if i == -1 { + s.end = len(s.b) + s.next = len(s.b) + i = s.end - s.start + } else { + s.end = s.next + i + s.next = s.end + 1 + } + token := s.b[s.start:s.end] + if i < 1 || i > 8 || !isAlphaNum(token) { + s.gobble(errSyntax) + continue + } + s.token = token + return end + } + if n := len(s.b); n > 0 && s.b[n-1] == '-' { + s.setError(errSyntax) + s.b = s.b[:len(s.b)-1] + } + s.done = true + return end +} + +// acceptMinSize parses multiple tokens of the given size or greater. +// It returns the end position of the last token consumed. +func (s *scanner) acceptMinSize(min int) (end int) { + end = s.end + s.scan() + for ; len(s.token) >= min; s.scan() { + end = s.end + } + return end +} + +// Parse parses the given BCP 47 string and returns a valid Tag. If parsing +// failed it returns an error and any part of the tag that could be parsed. +// If parsing succeeded but an unknown value was found, it returns +// ValueError. The Tag returned in this case is just stripped of the unknown +// value. All other values are preserved. It accepts tags in the BCP 47 format +// and extensions to this standard defined in +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// The resulting tag is canonicalized using the default canonicalization type. +func Parse(s string) (t Tag, err error) { + return Default.Parse(s) +} + +// Parse parses the given BCP 47 string and returns a valid Tag. If parsing +// failed it returns an error and any part of the tag that could be parsed. +// If parsing succeeded but an unknown value was found, it returns +// ValueError. The Tag returned in this case is just stripped of the unknown +// value. All other values are preserved. It accepts tags in the BCP 47 format +// and extensions to this standard defined in +// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers. +// The resulting tag is canonicalized using the the canonicalization type c. +func (c CanonType) Parse(s string) (t Tag, err error) { + // TODO: consider supporting old-style locale key-value pairs. + if s == "" { + return und, errSyntax + } + if len(s) <= maxAltTaglen { + b := [maxAltTaglen]byte{} + for i, c := range s { + // Generating invalid UTF-8 is okay as it won't match. + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } else if c == '_' { + c = '-' + } + b[i] = byte(c) + } + if t, ok := grandfathered(b); ok { + return t, nil + } + } + scan := makeScannerString(s) + t, err = parse(&scan, s) + t, changed := t.canonicalize(c) + if changed { + t.remakeString() + } + return t, err +} + +func parse(scan *scanner, s string) (t Tag, err error) { + t = und + var end int + if n := len(scan.token); n <= 1 { + scan.toLower(0, len(scan.b)) + if n == 0 || scan.token[0] != 'x' { + return t, errSyntax + } + end = parseExtensions(scan) + } else if n >= 4 { + return und, errSyntax + } else { // the usual case + t, end = parseTag(scan) + if n := len(scan.token); n == 1 { + t.pExt = uint16(end) + end = parseExtensions(scan) + } else if end < len(scan.b) { + scan.setError(errSyntax) + scan.b = scan.b[:end] + } + } + if int(t.pVariant) < len(scan.b) { + if end < len(s) { + s = s[:end] + } + if len(s) > 0 && tag.Compare(s, scan.b) == 0 { + t.str = s + } else { + t.str = string(scan.b) + } + } else { + t.pVariant, t.pExt = 0, 0 + } + return t, scan.err +} + +// parseTag parses language, script, region and variants. +// It returns a Tag and the end position in the input that was parsed. +func parseTag(scan *scanner) (t Tag, end int) { + var e error + // TODO: set an error if an unknown lang, script or region is encountered. + t.lang, e = getLangID(scan.token) + scan.setError(e) + scan.replace(t.lang.String()) + langStart := scan.start + end = scan.scan() + for len(scan.token) == 3 && isAlpha(scan.token[0]) { + // From http://tools.ietf.org/html/bcp47, - tags are equivalent + // to a tag of the form . + lang, e := getLangID(scan.token) + if lang != 0 { + t.lang = lang + copy(scan.b[langStart:], lang.String()) + scan.b[langStart+3] = '-' + scan.start = langStart + 4 + } + scan.gobble(e) + end = scan.scan() + } + if len(scan.token) == 4 && isAlpha(scan.token[0]) { + t.script, e = getScriptID(script, scan.token) + if t.script == 0 { + scan.gobble(e) + } + end = scan.scan() + } + if n := len(scan.token); n >= 2 && n <= 3 { + t.region, e = getRegionID(scan.token) + if t.region == 0 { + scan.gobble(e) + } else { + scan.replace(t.region.String()) + } + end = scan.scan() + } + scan.toLower(scan.start, len(scan.b)) + t.pVariant = byte(end) + end = parseVariants(scan, end, t) + t.pExt = uint16(end) + return t, end +} + +var separator = []byte{'-'} + +// parseVariants scans tokens as long as each token is a valid variant string. +// Duplicate variants are removed. +func parseVariants(scan *scanner, end int, t Tag) int { + start := scan.start + varIDBuf := [4]uint8{} + variantBuf := [4][]byte{} + varID := varIDBuf[:0] + variant := variantBuf[:0] + last := -1 + needSort := false + for ; len(scan.token) >= 4; scan.scan() { + // TODO: measure the impact of needing this conversion and redesign + // the data structure if there is an issue. + v, ok := variantIndex[string(scan.token)] + if !ok { + // unknown variant + // TODO: allow user-defined variants? + scan.gobble(mkErrInvalid(scan.token)) + continue + } + varID = append(varID, v) + variant = append(variant, scan.token) + if !needSort { + if last < int(v) { + last = int(v) + } else { + needSort = true + // There is no legal combinations of more than 7 variants + // (and this is by no means a useful sequence). + const maxVariants = 8 + if len(varID) > maxVariants { + break + } + } + } + end = scan.end + } + if needSort { + sort.Sort(variantsSort{varID, variant}) + k, l := 0, -1 + for i, v := range varID { + w := int(v) + if l == w { + // Remove duplicates. + continue + } + varID[k] = varID[i] + variant[k] = variant[i] + k++ + l = w + } + if str := bytes.Join(variant[:k], separator); len(str) == 0 { + end = start - 1 + } else { + scan.resizeRange(start, end, len(str)) + copy(scan.b[scan.start:], str) + end = scan.end + } + } + return end +} + +type variantsSort struct { + i []uint8 + v [][]byte +} + +func (s variantsSort) Len() int { + return len(s.i) +} + +func (s variantsSort) Swap(i, j int) { + s.i[i], s.i[j] = s.i[j], s.i[i] + s.v[i], s.v[j] = s.v[j], s.v[i] +} + +func (s variantsSort) Less(i, j int) bool { + return s.i[i] < s.i[j] +} + +type bytesSort [][]byte + +func (b bytesSort) Len() int { + return len(b) +} + +func (b bytesSort) Swap(i, j int) { + b[i], b[j] = b[j], b[i] +} + +func (b bytesSort) Less(i, j int) bool { + return bytes.Compare(b[i], b[j]) == -1 +} + +// parseExtensions parses and normalizes the extensions in the buffer. +// It returns the last position of scan.b that is part of any extension. +// It also trims scan.b to remove excess parts accordingly. +func parseExtensions(scan *scanner) int { + start := scan.start + exts := [][]byte{} + private := []byte{} + end := scan.end + for len(scan.token) == 1 { + extStart := scan.start + ext := scan.token[0] + end = parseExtension(scan) + extension := scan.b[extStart:end] + if len(extension) < 3 || (ext != 'x' && len(extension) < 4) { + scan.setError(errSyntax) + end = extStart + continue + } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) { + scan.b = scan.b[:end] + return end + } else if ext == 'x' { + private = extension + break + } + exts = append(exts, extension) + } + sort.Sort(bytesSort(exts)) + if len(private) > 0 { + exts = append(exts, private) + } + scan.b = scan.b[:start] + if len(exts) > 0 { + scan.b = append(scan.b, bytes.Join(exts, separator)...) + } else if start > 0 { + // Strip trailing '-'. + scan.b = scan.b[:start-1] + } + return end +} + +// parseExtension parses a single extension and returns the position of +// the extension end. +func parseExtension(scan *scanner) int { + start, end := scan.start, scan.end + switch scan.token[0] { + case 'u': + attrStart := end + scan.scan() + for last := []byte{}; len(scan.token) > 2; scan.scan() { + if bytes.Compare(scan.token, last) != -1 { + // Attributes are unsorted. Start over from scratch. + p := attrStart + 1 + scan.next = p + attrs := [][]byte{} + for scan.scan(); len(scan.token) > 2; scan.scan() { + attrs = append(attrs, scan.token) + end = scan.end + } + sort.Sort(bytesSort(attrs)) + copy(scan.b[p:], bytes.Join(attrs, separator)) + break + } + last = scan.token + end = scan.end + } + var last, key []byte + for attrEnd := end; len(scan.token) == 2; last = key { + key = scan.token + keyEnd := scan.end + end = scan.acceptMinSize(3) + // TODO: check key value validity + if keyEnd == end || bytes.Compare(key, last) != 1 { + // We have an invalid key or the keys are not sorted. + // Start scanning keys from scratch and reorder. + p := attrEnd + 1 + scan.next = p + keys := [][]byte{} + for scan.scan(); len(scan.token) == 2; { + keyStart, keyEnd := scan.start, scan.end + end = scan.acceptMinSize(3) + if keyEnd != end { + keys = append(keys, scan.b[keyStart:end]) + } else { + scan.setError(errSyntax) + end = keyStart + } + } + sort.Sort(bytesSort(keys)) + reordered := bytes.Join(keys, separator) + if e := p + len(reordered); e < end { + scan.deleteRange(e, end) + end = e + } + copy(scan.b[p:], bytes.Join(keys, separator)) + break + } + } + case 't': + scan.scan() + if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { + _, end = parseTag(scan) + scan.toLower(start, end) + } + for len(scan.token) == 2 && !isAlpha(scan.token[1]) { + end = scan.acceptMinSize(3) + } + case 'x': + end = scan.acceptMinSize(1) + default: + end = scan.acceptMinSize(2) + } + return end +} + +// Compose creates a Tag from individual parts, which may be of type Tag, Base, +// Script, Region, Variant, []Variant, Extension, []Extension or error. If a +// Base, Script or Region or slice of type Variant or Extension is passed more +// than once, the latter will overwrite the former. Variants and Extensions are +// accumulated, but if two extensions of the same type are passed, the latter +// will replace the former. A Tag overwrites all former values and typically +// only makes sense as the first argument. The resulting tag is returned after +// canonicalizing using the Default CanonType. If one or more errors are +// encountered, one of the errors is returned. +func Compose(part ...interface{}) (t Tag, err error) { + return Default.Compose(part...) +} + +// Compose creates a Tag from individual parts, which may be of type Tag, Base, +// Script, Region, Variant, []Variant, Extension, []Extension or error. If a +// Base, Script or Region or slice of type Variant or Extension is passed more +// than once, the latter will overwrite the former. Variants and Extensions are +// accumulated, but if two extensions of the same type are passed, the latter +// will replace the former. A Tag overwrites all former values and typically +// only makes sense as the first argument. The resulting tag is returned after +// canonicalizing using CanonType c. If one or more errors are encountered, +// one of the errors is returned. +func (c CanonType) Compose(part ...interface{}) (t Tag, err error) { + var b builder + if err = b.update(part...); err != nil { + return und, err + } + t, _ = b.tag.canonicalize(c) + + if len(b.ext) > 0 || len(b.variant) > 0 { + sort.Sort(sortVariant(b.variant)) + sort.Strings(b.ext) + if b.private != "" { + b.ext = append(b.ext, b.private) + } + n := maxCoreSize + tokenLen(b.variant...) + tokenLen(b.ext...) + buf := make([]byte, n) + p := t.genCoreBytes(buf) + t.pVariant = byte(p) + p += appendTokens(buf[p:], b.variant...) + t.pExt = uint16(p) + p += appendTokens(buf[p:], b.ext...) + t.str = string(buf[:p]) + } else if b.private != "" { + t.str = b.private + t.remakeString() + } + return +} + +type builder struct { + tag Tag + + private string // the x extension + ext []string + variant []string + + err error +} + +func (b *builder) addExt(e string) { + if e == "" { + } else if e[0] == 'x' { + b.private = e + } else { + b.ext = append(b.ext, e) + } +} + +var errInvalidArgument = errors.New("invalid Extension or Variant") + +func (b *builder) update(part ...interface{}) (err error) { + replace := func(l *[]string, s string, eq func(a, b string) bool) bool { + if s == "" { + b.err = errInvalidArgument + return true + } + for i, v := range *l { + if eq(v, s) { + (*l)[i] = s + return true + } + } + return false + } + for _, x := range part { + switch v := x.(type) { + case Tag: + b.tag.lang = v.lang + b.tag.region = v.region + b.tag.script = v.script + if v.str != "" { + b.variant = nil + for x, s := "", v.str[v.pVariant:v.pExt]; s != ""; { + x, s = nextToken(s) + b.variant = append(b.variant, x) + } + b.ext, b.private = nil, "" + for i, e := int(v.pExt), ""; i < len(v.str); { + i, e = getExtension(v.str, i) + b.addExt(e) + } + } + case Base: + b.tag.lang = v.langID + case Script: + b.tag.script = v.scriptID + case Region: + b.tag.region = v.regionID + case Variant: + if !replace(&b.variant, v.variant, func(a, b string) bool { return a == b }) { + b.variant = append(b.variant, v.variant) + } + case Extension: + if !replace(&b.ext, v.s, func(a, b string) bool { return a[0] == b[0] }) { + b.addExt(v.s) + } + case []Variant: + b.variant = nil + for _, x := range v { + b.update(x) + } + case []Extension: + b.ext, b.private = nil, "" + for _, e := range v { + b.update(e) + } + // TODO: support parsing of raw strings based on morphology or just extensions? + case error: + err = v + } + } + return +} + +func tokenLen(token ...string) (n int) { + for _, t := range token { + n += len(t) + 1 + } + return +} + +func appendTokens(b []byte, token ...string) int { + p := 0 + for _, t := range token { + b[p] = '-' + copy(b[p+1:], t) + p += 1 + len(t) + } + return p +} + +type sortVariant []string + +func (s sortVariant) Len() int { + return len(s) +} + +func (s sortVariant) Swap(i, j int) { + s[j], s[i] = s[i], s[j] +} + +func (s sortVariant) Less(i, j int) bool { + return variantIndex[s[i]] < variantIndex[s[j]] +} + +func findExt(list []string, x byte) int { + for i, e := range list { + if e[0] == x { + return i + } + } + return -1 +} + +// getExtension returns the name, body and end position of the extension. +func getExtension(s string, p int) (end int, ext string) { + if s[p] == '-' { + p++ + } + if s[p] == 'x' { + return len(s), s[p:] + } + end = nextExtension(s, p) + return end, s[p:end] +} + +// nextExtension finds the next extension within the string, searching +// for the -- pattern from position p. +// In the fast majority of cases, language tags will have at most +// one extension and extensions tend to be small. +func nextExtension(s string, p int) int { + for n := len(s) - 3; p < n; { + if s[p] == '-' { + if s[p+2] == '-' { + return p + } + p += 3 + } else { + p++ + } + } + return len(s) +} + +var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") + +// ParseAcceptLanguage parses the contents of a Accept-Language header as +// defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and +// a list of corresponding quality weights. It is more permissive than RFC 2616 +// and may return non-nil slices even if the input is not valid. +// The Tags will be sorted by highest weight first and then by first occurrence. +// Tags with a weight of zero will be dropped. An error will be returned if the +// input could not be parsed. +func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { + var entry string + for s != "" { + if entry, s = split(s, ','); entry == "" { + continue + } + + entry, weight := split(entry, ';') + + // Scan the language. + t, err := Parse(entry) + if err != nil { + id, ok := acceptFallback[entry] + if !ok { + return nil, nil, err + } + t = Tag{lang: id} + } + + // Scan the optional weight. + w := 1.0 + if weight != "" { + weight = consume(weight, 'q') + weight = consume(weight, '=') + // consume returns the empty string when a token could not be + // consumed, resulting in an error for ParseFloat. + if w, err = strconv.ParseFloat(weight, 32); err != nil { + return nil, nil, errInvalidWeight + } + // Drop tags with a quality weight of 0. + if w <= 0 { + continue + } + } + + tag = append(tag, t) + q = append(q, float32(w)) + } + sortStable(&tagSort{tag, q}) + return tag, q, nil +} + +// consume removes a leading token c from s and returns the result or the empty +// string if there is no such token. +func consume(s string, c byte) string { + if s == "" || s[0] != c { + return "" + } + return strings.TrimSpace(s[1:]) +} + +func split(s string, c byte) (head, tail string) { + if i := strings.IndexByte(s, c); i >= 0 { + return strings.TrimSpace(s[:i]), strings.TrimSpace(s[i+1:]) + } + return strings.TrimSpace(s), "" +} + +// Add hack mapping to deal with a small number of cases that that occur +// in Accept-Language (with reasonable frequency). +var acceptFallback = map[string]langID{ + "english": _en, + "deutsch": _de, + "italian": _it, + "french": _fr, + "*": _mul, // defined in the spec to match all languages. +} + +type tagSort struct { + tag []Tag + q []float32 +} + +func (s *tagSort) Len() int { + return len(s.q) +} + +func (s *tagSort) Less(i, j int) bool { + return s.q[i] > s.q[j] +} + +func (s *tagSort) Swap(i, j int) { + s.tag[i], s.tag[j] = s.tag[j], s.tag[i] + s.q[i], s.q[j] = s.q[j], s.q[i] +} diff --git a/vendor/golang.org/x/text/language/parse_test.go b/vendor/golang.org/x/text/language/parse_test.go new file mode 100644 index 00000000..9b40eb44 --- /dev/null +++ b/vendor/golang.org/x/text/language/parse_test.go @@ -0,0 +1,517 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +import ( + "bytes" + "strings" + "testing" + + "golang.org/x/text/internal/tag" +) + +type scanTest struct { + ok bool // true if scanning does not result in an error + in string + tok []string // the expected tokens +} + +var tests = []scanTest{ + {true, "", []string{}}, + {true, "1", []string{"1"}}, + {true, "en", []string{"en"}}, + {true, "root", []string{"root"}}, + {true, "maxchars", []string{"maxchars"}}, + {false, "bad/", []string{}}, + {false, "morethan8", []string{}}, + {false, "-", []string{}}, + {false, "----", []string{}}, + {false, "_", []string{}}, + {true, "en-US", []string{"en", "US"}}, + {true, "en_US", []string{"en", "US"}}, + {false, "en-US-", []string{"en", "US"}}, + {false, "en-US--", []string{"en", "US"}}, + {false, "en-US---", []string{"en", "US"}}, + {false, "en--US", []string{"en", "US"}}, + {false, "-en-US", []string{"en", "US"}}, + {false, "-en--US-", []string{"en", "US"}}, + {false, "-en--US-", []string{"en", "US"}}, + {false, "en-.-US", []string{"en", "US"}}, + {false, ".-en--US-.", []string{"en", "US"}}, + {false, "en-u.-US", []string{"en", "US"}}, + {true, "en-u1-US", []string{"en", "u1", "US"}}, + {true, "maxchar1_maxchar2-maxchar3", []string{"maxchar1", "maxchar2", "maxchar3"}}, + {false, "moreThan8-moreThan8-e", []string{"e"}}, +} + +func TestScan(t *testing.T) { + for i, tt := range tests { + scan := makeScannerString(tt.in) + for j := 0; !scan.done; j++ { + if j >= len(tt.tok) { + t.Errorf("%d: extra token %q", i, scan.token) + } else if tag.Compare(tt.tok[j], scan.token) != 0 { + t.Errorf("%d: token %d: found %q; want %q", i, j, scan.token, tt.tok[j]) + break + } + scan.scan() + } + if s := strings.Join(tt.tok, "-"); tag.Compare(s, bytes.Replace(scan.b, b("_"), b("-"), -1)) != 0 { + t.Errorf("%d: input: found %q; want %q", i, scan.b, s) + } + if (scan.err == nil) != tt.ok { + t.Errorf("%d: ok: found %v; want %v", i, scan.err == nil, tt.ok) + } + } +} + +func TestAcceptMinSize(t *testing.T) { + for i, tt := range tests { + // count number of successive tokens with a minimum size. + for sz := 1; sz <= 8; sz++ { + scan := makeScannerString(tt.in) + scan.end, scan.next = 0, 0 + end := scan.acceptMinSize(sz) + n := 0 + for i := 0; i < len(tt.tok) && len(tt.tok[i]) >= sz; i++ { + n += len(tt.tok[i]) + if i > 0 { + n++ + } + } + if end != n { + t.Errorf("%d:%d: found len %d; want %d", i, sz, end, n) + } + } + } +} + +type parseTest struct { + i int // the index of this test + in string + lang, script, region string + variants, ext string + extList []string // only used when more than one extension is present + invalid bool + rewrite bool // special rewrite not handled by parseTag + changed bool // string needed to be reformatted +} + +func parseTests() []parseTest { + tests := []parseTest{ + {in: "root", lang: "und"}, + {in: "und", lang: "und"}, + {in: "en", lang: "en"}, + {in: "xy", lang: "und", invalid: true}, + {in: "en-ZY", lang: "en", invalid: true}, + {in: "gsw", lang: "gsw"}, + {in: "sr_Latn", lang: "sr", script: "Latn"}, + {in: "af-Arab", lang: "af", script: "Arab"}, + {in: "nl-BE", lang: "nl", region: "BE"}, + {in: "es-419", lang: "es", region: "419"}, + {in: "und-001", lang: "und", region: "001"}, + {in: "de-latn-be", lang: "de", script: "Latn", region: "BE"}, + // Variants + {in: "de-1901", lang: "de", variants: "1901"}, + // Accept with unsuppressed script. + {in: "de-Latn-1901", lang: "de", script: "Latn", variants: "1901"}, + // Specialized. + {in: "sl-rozaj", lang: "sl", variants: "rozaj"}, + {in: "sl-rozaj-lipaw", lang: "sl", variants: "rozaj-lipaw"}, + {in: "sl-rozaj-biske", lang: "sl", variants: "rozaj-biske"}, + {in: "sl-rozaj-biske-1994", lang: "sl", variants: "rozaj-biske-1994"}, + {in: "sl-rozaj-1994", lang: "sl", variants: "rozaj-1994"}, + // Maximum number of variants while adhering to prefix rules. + {in: "sl-rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp", lang: "sl", variants: "rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp"}, + + // Sorting. + {in: "sl-1994-biske-rozaj", lang: "sl", variants: "rozaj-biske-1994", changed: true}, + {in: "sl-rozaj-biske-1994-alalc97-fonupa-fonipa-fonxsamp", lang: "sl", variants: "rozaj-biske-1994-alalc97-fonipa-fonupa-fonxsamp", changed: true}, + {in: "nl-fonxsamp-alalc97-fonipa-fonupa", lang: "nl", variants: "alalc97-fonipa-fonupa-fonxsamp", changed: true}, + + // Duplicates variants are removed, but not an error. + {in: "nl-fonupa-fonupa", lang: "nl", variants: "fonupa"}, + + // Variants that do not have correct prefixes. We still accept these. + {in: "de-Cyrl-1901", lang: "de", script: "Cyrl", variants: "1901"}, + {in: "sl-rozaj-lipaw-1994", lang: "sl", variants: "rozaj-lipaw-1994"}, + {in: "sl-1994-biske-rozaj-1994-biske-rozaj", lang: "sl", variants: "rozaj-biske-1994", changed: true}, + {in: "de-Cyrl-1901", lang: "de", script: "Cyrl", variants: "1901"}, + + // Invalid variant. + {in: "de-1902", lang: "de", variants: "", invalid: true}, + + {in: "EN_CYRL", lang: "en", script: "Cyrl"}, + // private use and extensions + {in: "x-a-b-c-d", ext: "x-a-b-c-d"}, + {in: "x_A.-B-C_D", ext: "x-b-c-d", invalid: true, changed: true}, + {in: "x-aa-bbbb-cccccccc-d", ext: "x-aa-bbbb-cccccccc-d"}, + {in: "en-c_cc-b-bbb-a-aaa", lang: "en", changed: true, extList: []string{"a-aaa", "b-bbb", "c-cc"}}, + {in: "en-x_cc-b-bbb-a-aaa", lang: "en", ext: "x-cc-b-bbb-a-aaa", changed: true}, + {in: "en-c_cc-b-bbb-a-aaa-x-x", lang: "en", changed: true, extList: []string{"a-aaa", "b-bbb", "c-cc", "x-x"}}, + {in: "en-v-c", lang: "en", ext: "", invalid: true}, + {in: "en-v-abcdefghi", lang: "en", ext: "", invalid: true}, + {in: "en-v-abc-x", lang: "en", ext: "v-abc", invalid: true}, + {in: "en-v-abc-x-", lang: "en", ext: "v-abc", invalid: true}, + {in: "en-v-abc-w-x-xx", lang: "en", extList: []string{"v-abc", "x-xx"}, invalid: true, changed: true}, + {in: "en-v-abc-w-y-yx", lang: "en", extList: []string{"v-abc", "y-yx"}, invalid: true, changed: true}, + {in: "en-v-c-abc", lang: "en", ext: "c-abc", invalid: true, changed: true}, + {in: "en-v-w-abc", lang: "en", ext: "w-abc", invalid: true, changed: true}, + {in: "en-v-x-abc", lang: "en", ext: "x-abc", invalid: true, changed: true}, + {in: "en-v-x-a", lang: "en", ext: "x-a", invalid: true, changed: true}, + {in: "en-9-aa-0-aa-z-bb-x-a", lang: "en", extList: []string{"0-aa", "9-aa", "z-bb", "x-a"}, changed: true}, + {in: "en-u-c", lang: "en", ext: "", invalid: true}, + {in: "en-u-co-phonebk", lang: "en", ext: "u-co-phonebk"}, + {in: "en-u-co-phonebk-ca", lang: "en", ext: "u-co-phonebk", invalid: true}, + {in: "en-u-nu-arabic-co-phonebk-ca", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, + {in: "en-u-nu-arabic-co-phonebk-ca-x", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, + {in: "en-u-nu-arabic-co-phonebk-ca-s", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, + {in: "en-u-nu-arabic-co-phonebk-ca-a12345678", lang: "en", ext: "u-co-phonebk-nu-arabic", invalid: true, changed: true}, + {in: "en-u-co-phonebook", lang: "en", ext: "", invalid: true}, + {in: "en-u-co-phonebook-cu-xau", lang: "en", ext: "u-cu-xau", invalid: true, changed: true}, + {in: "en-Cyrl-u-co-phonebk", lang: "en", script: "Cyrl", ext: "u-co-phonebk"}, + {in: "en-US-u-co-phonebk", lang: "en", region: "US", ext: "u-co-phonebk"}, + {in: "en-US-u-co-phonebk-cu-xau", lang: "en", region: "US", ext: "u-co-phonebk-cu-xau"}, + {in: "en-scotland-u-co-phonebk", lang: "en", variants: "scotland", ext: "u-co-phonebk"}, + {in: "en-u-cu-xua-co-phonebk", lang: "en", ext: "u-co-phonebk-cu-xua", changed: true}, + {in: "en-u-def-abc-cu-xua-co-phonebk", lang: "en", ext: "u-abc-def-co-phonebk-cu-xua", changed: true}, + {in: "en-u-def-abc", lang: "en", ext: "u-abc-def", changed: true}, + {in: "en-u-cu-xua-co-phonebk-a-cd", lang: "en", extList: []string{"a-cd", "u-co-phonebk-cu-xua"}, changed: true}, + // Invalid "u" extension. Drop invalid parts. + {in: "en-u-cu-co-phonebk", lang: "en", extList: []string{"u-co-phonebk"}, invalid: true, changed: true}, + {in: "en-u-cu-xau-co", lang: "en", extList: []string{"u-cu-xau"}, invalid: true}, + // We allow duplicate keys as the LDML spec does not explicitly prohibit it. + // TODO: Consider eliminating duplicates and returning an error. + {in: "en-u-cu-xau-co-phonebk-cu-xau", lang: "en", ext: "u-co-phonebk-cu-xau-cu-xau", changed: true}, + {in: "en-t-en-Cyrl-NL-fonipa", lang: "en", ext: "t-en-cyrl-nl-fonipa", changed: true}, + {in: "en-t-en-Cyrl-NL-fonipa-t0-abc-def", lang: "en", ext: "t-en-cyrl-nl-fonipa-t0-abc-def", changed: true}, + {in: "en-t-t0-abcd", lang: "en", ext: "t-t0-abcd"}, + // Not necessary to have changed here. + {in: "en-t-nl-abcd", lang: "en", ext: "t-nl", invalid: true}, + {in: "en-t-nl-latn", lang: "en", ext: "t-nl-latn"}, + {in: "en-t-t0-abcd-x-a", lang: "en", extList: []string{"t-t0-abcd", "x-a"}}, + // invalid + {in: "", lang: "und", invalid: true}, + {in: "-", lang: "und", invalid: true}, + {in: "x", lang: "und", invalid: true}, + {in: "x-", lang: "und", invalid: true}, + {in: "x--", lang: "und", invalid: true}, + {in: "a-a-b-c-d", lang: "und", invalid: true}, + {in: "en-", lang: "en", invalid: true}, + {in: "enne-", lang: "und", invalid: true}, + {in: "en.", lang: "und", invalid: true}, + {in: "en.-latn", lang: "und", invalid: true}, + {in: "en.-en", lang: "en", invalid: true}, + {in: "x-a-tooManyChars-c-d", ext: "x-a-c-d", invalid: true, changed: true}, + {in: "a-tooManyChars-c-d", lang: "und", invalid: true}, + // TODO: check key-value validity + // { in: "en-u-cu-xd", lang: "en", ext: "u-cu-xd", invalid: true }, + {in: "en-t-abcd", lang: "en", invalid: true}, + {in: "en-Latn-US-en", lang: "en", script: "Latn", region: "US", invalid: true}, + // rewrites (more tests in TestGrandfathered) + {in: "zh-min-nan", lang: "nan"}, + {in: "zh-yue", lang: "yue"}, + {in: "zh-xiang", lang: "hsn", rewrite: true}, + {in: "zh-guoyu", lang: "cmn", rewrite: true}, + {in: "iw", lang: "iw"}, + {in: "sgn-BE-FR", lang: "sfb", rewrite: true}, + {in: "i-klingon", lang: "tlh", rewrite: true}, + } + for i, tt := range tests { + tests[i].i = i + if tt.extList != nil { + tests[i].ext = strings.Join(tt.extList, "-") + } + if tt.ext != "" && tt.extList == nil { + tests[i].extList = []string{tt.ext} + } + } + return tests +} + +func TestParseExtensions(t *testing.T) { + for i, tt := range parseTests() { + if tt.ext == "" || tt.rewrite { + continue + } + scan := makeScannerString(tt.in) + if len(scan.b) > 1 && scan.b[1] != '-' { + scan.end = nextExtension(string(scan.b), 0) + scan.next = scan.end + 1 + scan.scan() + } + start := scan.start + scan.toLower(start, len(scan.b)) + parseExtensions(&scan) + ext := string(scan.b[start:]) + if ext != tt.ext { + t.Errorf("%d(%s): ext was %v; want %v", i, tt.in, ext, tt.ext) + } + if changed := !strings.HasPrefix(tt.in[start:], ext); changed != tt.changed { + t.Errorf("%d(%s): changed was %v; want %v", i, tt.in, changed, tt.changed) + } + } +} + +// partChecks runs checks for each part by calling the function returned by f. +func partChecks(t *testing.T, f func(*parseTest) (Tag, bool)) { + for i, tt := range parseTests() { + tag, skip := f(&tt) + if skip { + continue + } + if l, _ := getLangID(b(tt.lang)); l != tag.lang { + t.Errorf("%d: lang was %q; want %q", i, tag.lang, l) + } + if sc, _ := getScriptID(script, b(tt.script)); sc != tag.script { + t.Errorf("%d: script was %q; want %q", i, tag.script, sc) + } + if r, _ := getRegionID(b(tt.region)); r != tag.region { + t.Errorf("%d: region was %q; want %q", i, tag.region, r) + } + if tag.str == "" { + continue + } + p := int(tag.pVariant) + if p < int(tag.pExt) { + p++ + } + if s, g := tag.str[p:tag.pExt], tt.variants; s != g { + t.Errorf("%d: variants was %q; want %q", i, s, g) + } + p = int(tag.pExt) + if p > 0 && p < len(tag.str) { + p++ + } + if s, g := (tag.str)[p:], tt.ext; s != g { + t.Errorf("%d: extensions were %q; want %q", i, s, g) + } + } +} + +func TestParseTag(t *testing.T) { + partChecks(t, func(tt *parseTest) (id Tag, skip bool) { + if strings.HasPrefix(tt.in, "x-") || tt.rewrite { + return Tag{}, true + } + scan := makeScannerString(tt.in) + id, end := parseTag(&scan) + id.str = string(scan.b[:end]) + tt.ext = "" + tt.extList = []string{} + return id, false + }) +} + +func TestParse(t *testing.T) { + partChecks(t, func(tt *parseTest) (id Tag, skip bool) { + id, err := Raw.Parse(tt.in) + ext := "" + if id.str != "" { + if strings.HasPrefix(id.str, "x-") { + ext = id.str + } else if int(id.pExt) < len(id.str) && id.pExt > 0 { + ext = id.str[id.pExt+1:] + } + } + if tag, _ := Raw.Parse(id.String()); tag.String() != id.String() { + t.Errorf("%d:%s: reparse was %q; want %q", tt.i, tt.in, id.String(), tag.String()) + } + if ext != tt.ext { + t.Errorf("%d:%s: ext was %q; want %q", tt.i, tt.in, ext, tt.ext) + } + changed := id.str != "" && !strings.HasPrefix(tt.in, id.str) + if changed != tt.changed { + t.Errorf("%d:%s: changed was %v; want %v", tt.i, tt.in, changed, tt.changed) + } + if (err != nil) != tt.invalid { + t.Errorf("%d:%s: invalid was %v; want %v. Error: %v", tt.i, tt.in, err != nil, tt.invalid, err) + } + return id, false + }) +} + +func TestErrors(t *testing.T) { + mkInvalid := func(s string) error { + return mkErrInvalid([]byte(s)) + } + tests := []struct { + in string + out error + }{ + // invalid subtags. + {"ac", mkInvalid("ac")}, + {"AC", mkInvalid("ac")}, + {"aa-Uuuu", mkInvalid("Uuuu")}, + {"aa-AB", mkInvalid("AB")}, + // ill-formed wins over invalid. + {"ac-u", errSyntax}, + {"ac-u-ca", errSyntax}, + {"ac-u-ca-co-pinyin", errSyntax}, + {"noob", errSyntax}, + } + for _, tt := range tests { + _, err := Parse(tt.in) + if err != tt.out { + t.Errorf("%s: was %q; want %q", tt.in, err, tt.out) + } + } +} + +func TestCompose1(t *testing.T) { + partChecks(t, func(tt *parseTest) (id Tag, skip bool) { + l, _ := ParseBase(tt.lang) + s, _ := ParseScript(tt.script) + r, _ := ParseRegion(tt.region) + v := []Variant{} + for _, x := range strings.Split(tt.variants, "-") { + p, _ := ParseVariant(x) + v = append(v, p) + } + e := []Extension{} + for _, x := range tt.extList { + p, _ := ParseExtension(x) + e = append(e, p) + } + id, _ = Raw.Compose(l, s, r, v, e) + return id, false + }) +} + +func TestCompose2(t *testing.T) { + partChecks(t, func(tt *parseTest) (id Tag, skip bool) { + l, _ := ParseBase(tt.lang) + s, _ := ParseScript(tt.script) + r, _ := ParseRegion(tt.region) + p := []interface{}{l, s, r, s, r, l} + for _, x := range strings.Split(tt.variants, "-") { + v, _ := ParseVariant(x) + p = append(p, v) + } + for _, x := range tt.extList { + e, _ := ParseExtension(x) + p = append(p, e) + } + id, _ = Raw.Compose(p...) + return id, false + }) +} + +func TestCompose3(t *testing.T) { + partChecks(t, func(tt *parseTest) (id Tag, skip bool) { + id, _ = Raw.Parse(tt.in) + id, _ = Raw.Compose(id) + return id, false + }) +} + +func mk(s string) Tag { + return Raw.Make(s) +} + +func TestParseAcceptLanguage(t *testing.T) { + type res struct { + t Tag + q float32 + } + en := []res{{mk("en"), 1.0}} + tests := []struct { + out []res + in string + ok bool + }{ + {en, "en", true}, + {en, " en", true}, + {en, "en ", true}, + {en, " en ", true}, + {en, "en,", true}, + {en, ",en", true}, + {en, ",,,en,,,", true}, + {en, ",en;q=1", true}, + + // We allow an empty input, contrary to spec. + {nil, "", true}, + {[]res{{mk("aa"), 1}}, "aa;", true}, // allow unspecified weight + + // errors + {nil, ";", false}, + {nil, "$", false}, + {nil, "e;", false}, + {nil, "x;", false}, + {nil, "x", false}, + {nil, "ac", false}, // non-existing language + {nil, "aa;q", false}, + {nil, "aa;q=", false}, + {nil, "aa;q=.", false}, + + // odd fallbacks + { + []res{{mk("en"), 0.1}}, + " english ;q=.1", + true, + }, + { + []res{{mk("it"), 1.0}, {mk("de"), 1.0}, {mk("fr"), 1.0}}, + " italian, deutsch, french", + true, + }, + + // lists + { + []res{{mk("en"), 0.1}}, + "en;q=.1", + true, + }, + { + []res{{mk("mul"), 1.0}}, + "*", + true, + }, + { + []res{{mk("en"), 1.0}, {mk("de"), 1.0}}, + "en,de", + true, + }, + { + []res{{mk("en"), 1.0}, {mk("de"), .5}}, + "en,de;q=0.5", + true, + }, + { + []res{{mk("de"), 0.8}, {mk("en"), 0.5}}, + " en ; q = 0.5 , , de;q=0.8", + true, + }, + { + []res{{mk("en"), 1.0}, {mk("de"), 1.0}, {mk("fr"), 1.0}, {mk("tlh"), 1.0}}, + "en,de,fr,i-klingon", + true, + }, + // sorting + { + []res{{mk("tlh"), 0.4}, {mk("de"), 0.2}, {mk("fr"), 0.2}, {mk("en"), 0.1}}, + "en;q=0.1,de;q=0.2,fr;q=0.2,i-klingon;q=0.4", + true, + }, + // dropping + { + []res{{mk("fr"), 0.2}, {mk("en"), 0.1}}, + "en;q=0.1,de;q=0,fr;q=0.2,i-klingon;q=0.0", + true, + }, + } + for i, tt := range tests { + tags, qs, e := ParseAcceptLanguage(tt.in) + if e == nil != tt.ok { + t.Errorf("%d:%s:err: was %v; want %v", i, tt.in, e == nil, tt.ok) + } + for j, tag := range tags { + if out := tt.out[j]; !tag.equalTags(out.t) || qs[j] != out.q { + t.Errorf("%d:%s: was %s, %1f; want %s, %1f", i, tt.in, tag, qs[j], out.t, out.q) + break + } + } + } +} diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go new file mode 100644 index 00000000..5de0f856 --- /dev/null +++ b/vendor/golang.org/x/text/language/tables.go @@ -0,0 +1,2791 @@ +// This file was generated by go generate; DO NOT EDIT + +package language + +import "golang.org/x/text/internal/tag" + +// CLDRVersion is the CLDR version from which the tables in this package are derived. +const CLDRVersion = "29" + +const numLanguages = 8654 + +const numScripts = 230 + +const numRegions = 354 + +type fromTo struct { + from uint16 + to uint16 +} + +const nonCanonicalUnd = 649 +const ( + _af = 10 + _am = 17 + _ar = 21 + _az = 36 + _bg = 56 + _bn = 75 + _ca = 97 + _cs = 121 + _da = 128 + _de = 133 + _el = 154 + _en = 155 + _es = 157 + _et = 159 + _fa = 164 + _fi = 168 + _fil = 170 + _fr = 175 + _gu = 211 + _he = 224 + _hi = 225 + _hr = 238 + _hu = 242 + _hy = 243 + _id = 248 + _is = 258 + _it = 259 + _ja = 263 + _ka = 273 + _kk = 303 + _km = 307 + _kn = 309 + _ko = 310 + _ky = 333 + _lo = 357 + _lt = 361 + _lv = 368 + _mk = 396 + _ml = 397 + _mn = 399 + _mo = 402 + _mr = 406 + _ms = 410 + _mul = 414 + _my = 421 + _nb = 431 + _ne = 436 + _nl = 445 + _no = 449 + _pa = 471 + _pl = 487 + _pt = 495 + _ro = 515 + _ru = 519 + _sh = 549 + _si = 552 + _sk = 554 + _sl = 556 + _sq = 570 + _sr = 571 + _sv = 583 + _sw = 584 + _ta = 593 + _te = 600 + _th = 605 + _tl = 616 + _tn = 619 + _tr = 623 + _uk = 646 + _ur = 652 + _uz = 653 + _vi = 658 + _zh = 708 + _zu = 710 + _jbo = 265 + _ami = 1033 + _bnn = 1740 + _hak = 221 + _tlh = 13850 + _lb = 340 + _nv = 458 + _pwn = 11438 + _tao = 13571 + _tay = 13581 + _tsu = 14045 + _nn = 447 + _sfb = 13012 + _vgt = 15084 + _sgg = 13043 + _cmn = 2390 + _nan = 428 + _hsn = 240 +) + +const langPrivateStart = 0x2d09 + +const langPrivateEnd = 0x2f10 + +// lang holds an alphabetically sorted list of ISO-639 language identifiers. +// All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. +// For 2-byte language identifiers, the two successive bytes have the following meaning: +// - if the first letter of the 2- and 3-letter ISO codes are the same: +// the second and third letter of the 3-letter ISO code. +// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. +// For 3-byte language identifiers the 4th byte is 0. +var lang tag.Index = "" + // Size: 2856 bytes + "---\x00aaarabbkabr\x00ace\x00ach\x00ada\x00ady\x00aeveaeb\x00affragq\x00" + + "aho\x00akkaakk\x00aln\x00alt\x00ammhamo\x00anrgaoz\x00arraarc\x00arn\x00" + + "aro\x00arq\x00ary\x00arz\x00assmasa\x00ase\x00ast\x00atj\x00avvaawa\x00a" + + "yymazzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bax\x00bbc\x00bbj\x00bci" + + "\x00beelbej\x00bem\x00bew\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc" + + "\x00bgn\x00bgx\x00bhihbhb\x00bhi\x00bhk\x00bho\x00biisbik\x00bin\x00bjj" + + "\x00bjn\x00bkm\x00bku\x00blt\x00bmambmq\x00bnenboodbpy\x00bqi\x00bqv\x00" + + "brrebra\x00brh\x00brx\x00bsosbsq\x00bss\x00bto\x00btv\x00bua\x00buc\x00b" + + "ug\x00bum\x00bvb\x00byn\x00byv\x00bze\x00caatcch\x00ccp\x00ceheceb\x00cg" + + "g\x00chhachk\x00chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00ckb\x00cooscop" + + "\x00cps\x00crrecrj\x00crk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd" + + "\x00cuhucvhvcyymdaandak\x00dar\x00dav\x00dcc\x00deeuden\x00dgr\x00dje" + + "\x00dnj\x00doi\x00dsb\x00dtm\x00dtp\x00dty\x00dua\x00dvivdyo\x00dyu\x00d" + + "zzoebu\x00eeweefi\x00egl\x00egy\x00eky\x00elllenngeopoes\x00\x05esu\x00e" + + "tstett\x00euusewo\x00ext\x00faasfan\x00ffulffm\x00fiinfia\x00fil\x00fit" + + "\x00fjijfoaofon\x00frrafrc\x00frp\x00frr\x00frs\x00fud\x00fuq\x00fur\x00" + + "fuv\x00fvr\x00fyrygalegaa\x00gag\x00gan\x00gay\x00gbm\x00gbz\x00gcr\x00g" + + "dlagez\x00ggn\x00gil\x00gjk\x00gju\x00gllgglk\x00gnrngom\x00gon\x00gor" + + "\x00gos\x00got\x00grc\x00grt\x00gsw\x00guujgub\x00guc\x00gur\x00guw\x00g" + + "uz\x00gvlvgvr\x00gwi\x00haauhak\x00haw\x00haz\x00heebhiinhif\x00hil\x00h" + + "lu\x00hmd\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homohoc\x00hoj\x00hrrvhs" + + "b\x00hsn\x00htathuunhyyehzerianaiba\x00ibb\x00idndieleigboiiiiikpkikt" + + "\x00ilo\x00inndinh\x00iodoisslittaiukuiw\x00\x03izh\x00japnjam\x00jbo" + + "\x00jgo\x00ji\x00\x06jmc\x00jml\x00jut\x00jvavjwavkaatkaa\x00kab\x00kac" + + "\x00kaj\x00kam\x00kao\x00kbd\x00kcg\x00kck\x00kde\x00kdt\x00kea\x00ken" + + "\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgp\x00kha\x00khb\x00khn\x00khq\x00k" + + "ht\x00khw\x00kiikkiu\x00kjuakjg\x00kkazkkj\x00klalkln\x00kmhmkmb\x00knan" + + "koorkoi\x00kok\x00kos\x00kpe\x00kraukrc\x00kri\x00krj\x00krl\x00kru\x00k" + + "sasksb\x00ksf\x00ksh\x00kuurkum\x00kvomkvr\x00kvx\x00kw\x00\x01kxm\x00kx" + + "p\x00kyirlaatlab\x00lad\x00lag\x00lah\x00laj\x00lbtzlbe\x00lbw\x00lcp" + + "\x00lep\x00lez\x00lgugliimlif\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lmn" + + "\x00lmo\x00lninloaolol\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy" + + "\x00luz\x00lvavlwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00m" + + "an\x00mas\x00maz\x00mdf\x00mdh\x00mdr\x00men\x00mer\x00mfa\x00mfe\x00mgl" + + "gmgh\x00mgo\x00mgp\x00mgy\x00mhahmirimin\x00mis\x00mkkdmlalmls\x00mnonmn" + + "i\x00mnw\x00moolmoe\x00moh\x00mos\x00mrarmrd\x00mrj\x00mro\x00mssamtltmt" + + "r\x00mua\x00mul\x00mus\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00myyamyv\x00" + + "myx\x00myz\x00mzn\x00naaunah\x00nan\x00nap\x00naq\x00nbobnch\x00nddendc" + + "\x00nds\x00neepnew\x00ngdongl\x00nhe\x00nhw\x00nij\x00niu\x00njo\x00nlld" + + "nmg\x00nnnonnh\x00noornod\x00noe\x00non\x00nqo\x00nrblnsk\x00nso\x00nus" + + "\x00nvavnxq\x00nyyanym\x00nyn\x00nzi\x00occiojjiomrmorriosssosa\x00otk" + + "\x00paanpag\x00pal\x00pam\x00pap\x00pau\x00pcd\x00pcm\x00pdc\x00pdt\x00p" + + "eo\x00pfl\x00phn\x00pilipka\x00pko\x00plolpms\x00pnt\x00pon\x00pra\x00pr" + + "d\x00prg\x00psusptorpuu\x00quuequc\x00qug\x00raj\x00rcf\x00rej\x00rgn" + + "\x00ria\x00rif\x00rjs\x00rkt\x00rmohrmf\x00rmo\x00rmt\x00rmu\x00rnunrng" + + "\x00roonrob\x00rof\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00ryu\x00s" + + "aansaf\x00sah\x00saq\x00sas\x00sat\x00saz\x00sbp\x00scrdsck\x00scn\x00sc" + + "o\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00sei\x00ses\x00sgagsga" + + "\x00sgs\x00sh\x00\x02shi\x00shn\x00siinsid\x00sklkskr\x00sllvsli\x00sly" + + "\x00smmosma\x00smi\x00smj\x00smn\x00smp\x00sms\x00snnasnk\x00soomsou\x00" + + "sqqisrrpsrb\x00srn\x00srr\x00srx\x00ssswssy\x00stotstq\x00suunsuk\x00sus" + + "\x00svweswwaswb\x00swc\x00swg\x00swv\x00sxn\x00syl\x00syr\x00szl\x00taam" + + "taj\x00tbw\x00tcy\x00tdd\x00tdg\x00tdh\x00teeltem\x00teo\x00tet\x00tggkt" + + "hhathl\x00thq\x00thr\x00tiirtig\x00tiv\x00tkuktkl\x00tkr\x00tkt\x00tlglt" + + "ly\x00tmh\x00tnsntoontog\x00tpi\x00trurtru\x00trv\x00tssotsd\x00tsf\x00t" + + "sg\x00tsj\x00ttatttj\x00tts\x00ttt\x00tum\x00tvl\x00twwitwq\x00txg\x00ty" + + "ahtyv\x00tzm\x00udm\x00ugiguga\x00ukkruli\x00umb\x00und\x00unr\x00unx" + + "\x00urrduzzbvai\x00veenvec\x00vep\x00viievic\x00vls\x00vmf\x00vmw\x00voo" + + "lvot\x00vro\x00vun\x00walnwae\x00wal\x00war\x00wbp\x00wbq\x00wbr\x00wls" + + "\x00wni\x00woolwtm\x00wuu\x00xav\x00xcr\x00xhhoxlc\x00xld\x00xmf\x00xmn" + + "\x00xmr\x00xna\x00xnr\x00xog\x00xpr\x00xsa\x00xsr\x00yao\x00yap\x00yav" + + "\x00ybb\x00yiidyooryrl\x00yua\x00yue\x00zahazag\x00zbl\x00zdj\x00zea\x00" + + "zgh\x00zhhozmi\x00zuulzxx\x00zza\x00\xff\xff\xff\xff" + +const langNoIndexOffset = 713 + +// langNoIndex is a bit vector of all 3-letter language codes that are not used as an index +// in lookup tables. The language ids for these language codes are derived directly +// from the letters and are not consecutive. +// Size: 2197 bytes, 2197 elements +var langNoIndex = [2197]uint8{ + // Entry 0 - 3F + 0xff, 0xfd, 0xfd, 0xfe, 0xef, 0xf7, 0xbf, 0xd2, + 0xfb, 0xbf, 0xfe, 0xfa, 0xb7, 0x1d, 0x3c, 0x57, + 0x6f, 0x97, 0x73, 0xf8, 0xff, 0xef, 0xff, 0x70, + 0xaf, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x85, 0x62, + 0xe9, 0xbf, 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0x77, + 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, + 0xc9, 0xff, 0xff, 0xff, 0x4d, 0xb8, 0x0a, 0x6a, + 0x7e, 0xfa, 0xe3, 0xfe, 0x7e, 0xff, 0x77, 0xff, + // Entry 40 - 7F + 0xff, 0xff, 0xff, 0xdf, 0x2b, 0xf4, 0xf1, 0xe0, + 0x5d, 0xe7, 0x9f, 0x14, 0x07, 0x20, 0xdf, 0xed, + 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0xf7, + 0x7e, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0x5f, 0xfc, 0xdb, 0xfd, 0xbf, 0xb5, + 0x7b, 0xdf, 0x7f, 0xf7, 0xeb, 0xfe, 0xff, 0xa7, + 0xbd, 0xff, 0x7f, 0xf7, 0xff, 0xef, 0xef, 0xef, + 0xff, 0xff, 0x9f, 0xff, 0xff, 0xef, 0xff, 0xdf, + // Entry 80 - BF + 0xff, 0xff, 0xf3, 0xff, 0xfb, 0x2f, 0xff, 0xff, + 0xfb, 0xee, 0xff, 0xbd, 0xdb, 0xff, 0xdf, 0xf7, + 0xff, 0xfa, 0xfd, 0xff, 0x7e, 0xaf, 0x7b, 0xfe, + 0x7f, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff, + 0xff, 0xdf, 0xfb, 0xff, 0xfd, 0xfc, 0xfb, 0xff, + 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xbf, 0xfd, 0xd5, + 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c, + 0x08, 0x24, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80, + // Entry C0 - FF + 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, + 0x9b, 0x14, 0x88, 0xf6, 0x7b, 0xe7, 0x17, 0x56, + 0x55, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef, + 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, + 0xbc, 0x87, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35, + 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00, + 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x40, 0x00, 0x40, 0x92, 0x21, 0xd0, 0xbf, 0x5d, + // Entry 100 - 13F + 0xfd, 0xde, 0xfe, 0x5e, 0x00, 0x00, 0x02, 0x64, + 0x8d, 0x19, 0xc1, 0xdf, 0x79, 0x22, 0x00, 0x00, + 0x00, 0xdf, 0x6d, 0xdc, 0x26, 0xe5, 0xd9, 0xf3, + 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c, + 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f, + 0x56, 0x89, 0x5e, 0xb7, 0xec, 0xef, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xc0, 0x77, 0xda, 0x57, + 0x90, 0x69, 0x01, 0x2c, 0x96, 0x79, 0xe0, 0xff, + // Entry 140 - 17F + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x56, + 0x01, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x16, + 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09, + 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, + 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04, + 0x00, 0x00, 0x50, 0xd5, 0x2d, 0x00, 0x64, 0x35, + 0x24, 0x53, 0xf5, 0xd4, 0xbd, 0xe2, 0xcd, 0x03, + // Entry 180 - 1BF + 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x17, 0x39, 0x01, 0xdd, 0x57, 0x98, + 0x21, 0x98, 0xa5, 0x00, 0x00, 0x01, 0x40, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0xb0, 0xfe, + 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + // Entry 1C0 - 1FF + 0x00, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x20, 0x04, 0xa6, 0x08, 0x04, 0x00, 0x08, + 0x81, 0x50, 0x00, 0x00, 0x08, 0x11, 0x86, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x06, 0x55, + 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x60, + 0x3b, 0x83, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xbe, 0xdf, 0xff, 0xfe, 0xbf, + // Entry 200 - 23F + 0xdf, 0xc7, 0x83, 0x82, 0xc0, 0xff, 0xdf, 0x27, + 0xcf, 0x5f, 0xe7, 0x01, 0x10, 0x20, 0xb2, 0xc5, + 0xa4, 0x45, 0x25, 0x9b, 0x03, 0xcf, 0xf0, 0xdf, + 0x03, 0xc4, 0x08, 0x10, 0x01, 0x0e, 0x01, 0xe3, + 0x92, 0x54, 0xdb, 0x38, 0xf1, 0x7f, 0xf7, 0x6d, + 0xf9, 0xff, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, + 0x21, 0x12, 0x6c, 0x5f, 0xdd, 0x0f, 0x85, 0x4f, + 0x40, 0x40, 0x00, 0x04, 0xf9, 0xfd, 0xbd, 0xd4, + // Entry 240 - 27F + 0xe8, 0x13, 0xf4, 0x27, 0xa3, 0x0d, 0x00, 0x00, + 0x20, 0x7b, 0x39, 0x02, 0x05, 0x84, 0x00, 0xf0, + 0xbf, 0x7f, 0xda, 0x00, 0x18, 0x04, 0x81, 0x00, + 0x00, 0x00, 0x80, 0x10, 0x94, 0x1c, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, + 0x08, 0xb4, 0x7c, 0xa5, 0x0c, 0x40, 0x00, 0x00, + 0x11, 0x04, 0x04, 0x6c, 0x00, 0x20, 0x70, 0xff, + 0xfb, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x6e, + // Entry 280 - 2BF + 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, + 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51, + 0xe2, 0xff, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x02, 0x60, + 0xe5, 0x48, 0x14, 0x89, 0x20, 0xc0, 0x47, 0x80, + 0x07, 0x00, 0x00, 0x00, 0xcc, 0x50, 0x40, 0x24, + 0x85, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, + // Entry 2C0 - 2FF + 0x02, 0x50, 0x88, 0x11, 0x00, 0xd1, 0x6c, 0xee, + 0x50, 0x27, 0x1d, 0x11, 0x69, 0x06, 0x59, 0xe9, + 0x33, 0x08, 0x00, 0x20, 0x05, 0x40, 0x10, 0x00, + 0x00, 0x00, 0x50, 0x44, 0x96, 0x49, 0xd6, 0x5d, + 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, + 0x08, 0x00, 0x80, 0x00, 0x40, 0x45, 0x00, 0x01, + 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x04, 0x08, + 0xf8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x16, 0x00, + // Entry 300 - 33F + 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa2, + 0x01, 0x00, 0x00, 0x00, 0x12, 0x04, 0x00, 0x00, + 0x04, 0x10, 0xf0, 0x9d, 0x95, 0x13, 0x04, 0x80, + 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0, + 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00, + 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0xc0, + 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00, + // Entry 340 - 37F + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x00, 0xf8, 0x85, 0xe3, + 0xdd, 0xff, 0xff, 0xff, 0xbb, 0xff, 0x7f, 0xfb, + 0xff, 0xfc, 0xfe, 0xdf, 0xff, 0xff, 0xff, 0xf6, + 0xfb, 0xfe, 0xf7, 0x1f, 0xff, 0xb3, 0xed, 0xff, + 0xdb, 0xed, 0xff, 0xfe, 0xff, 0xfe, 0xdf, 0xff, + 0xff, 0xff, 0xf7, 0xff, 0xfd, 0xff, 0xff, 0xff, + 0xfd, 0xff, 0xdf, 0xaf, 0x9c, 0xff, 0xfb, 0xff, + // Entry 380 - 3BF + 0xff, 0xff, 0xff, 0xff, 0xef, 0xd2, 0xbb, 0xdf, + 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef, + 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xff, 0xff, + 0xef, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x5f, 0xd3, 0x7b, 0xfd, 0xd9, 0xdf, 0xef, + 0xbc, 0x18, 0x05, 0x2c, 0xff, 0x07, 0xf0, 0xff, + 0xf7, 0x5f, 0x00, 0x08, 0x00, 0xc3, 0x3d, 0x1b, + 0x06, 0xe6, 0x72, 0xf0, 0xdd, 0x3c, 0x7f, 0x44, + // Entry 3C0 - 3FF + 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xfd, 0xff, 0x57, + 0xf2, 0xff, 0x39, 0xff, 0xf2, 0x1e, 0x95, 0xf7, + 0xf7, 0xff, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, + 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11, + 0x84, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01, + 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10, + 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, + 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + // Entry 400 - 43F + 0xd7, 0x6f, 0xff, 0xff, 0xdf, 0x7d, 0xbb, 0xff, + 0xff, 0xff, 0xf7, 0xf3, 0xef, 0xff, 0xff, 0xf7, + 0xff, 0xdf, 0xdb, 0x7f, 0xff, 0xff, 0x7f, 0xff, + 0xff, 0xff, 0xef, 0xff, 0xbc, 0xff, 0xff, 0xfb, + 0xff, 0xfb, 0xff, 0xde, 0x76, 0xbd, 0xff, 0xf7, + 0xff, 0xff, 0xf7, 0xff, 0xff, 0xdf, 0xf3, 0xfe, + 0xef, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xde, + 0xf7, 0xbb, 0xef, 0xf7, 0xff, 0xfb, 0xbf, 0xdf, + // Entry 440 - 47F + 0xfd, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0x5f, 0x7d, + 0x7f, 0xff, 0xff, 0xf7, 0xe5, 0xfc, 0xff, 0xfd, + 0x7f, 0x7f, 0xff, 0x9e, 0xae, 0xff, 0xee, 0xff, + 0x7f, 0xf7, 0x7b, 0x02, 0x82, 0x04, 0xff, 0xf7, + 0xff, 0xbf, 0xd7, 0xef, 0xfe, 0xdf, 0xf7, 0xfe, + 0xe2, 0x8e, 0xe7, 0xff, 0xf7, 0xff, 0x56, 0xbd, + 0xcd, 0xff, 0xfb, 0xff, 0xff, 0xdf, 0xef, 0xff, + 0xe5, 0xdf, 0x7d, 0x0f, 0xa7, 0x51, 0x04, 0x44, + // Entry 480 - 4BF + 0x13, 0xd0, 0x5d, 0xaf, 0xa6, 0xfd, 0xb9, 0xff, + 0x63, 0x5d, 0x5b, 0xff, 0xff, 0xbf, 0x3f, 0x20, + 0x14, 0x00, 0x57, 0x51, 0x82, 0x65, 0xf5, 0x49, + 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05, + 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04, + 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x51, 0x60, 0x05, 0x04, 0x01, 0x00, 0x00, + 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1, + // Entry 4C0 - 4FF + 0xfd, 0x67, 0x4b, 0x06, 0x95, 0x06, 0x57, 0xed, + 0xfb, 0x4c, 0x9d, 0x7b, 0x83, 0x04, 0x62, 0x40, + 0x00, 0x15, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, + 0xf9, 0x4f, 0x10, 0x8c, 0xc9, 0x46, 0xde, 0xf7, + 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, + 0x01, 0x40, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x7d, + 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, + // Entry 500 - 53F + 0xb0, 0xff, 0x79, 0x7a, 0x04, 0x00, 0x00, 0x49, + 0x2d, 0x14, 0x27, 0x77, 0xed, 0xf1, 0xbf, 0xef, + 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xfc, + 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xf5, 0xff, + 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7f, 0x10, + 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9, + 0x5f, 0x05, 0x86, 0xef, 0xf5, 0x77, 0xbd, 0x3c, + 0x00, 0x00, 0x00, 0x43, 0x71, 0x42, 0x00, 0x40, + // Entry 540 - 57F + 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + // Entry 580 - 5BF + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d, + 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xde, 0xff, 0xbf, + 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x30, 0x95, 0xe3, 0x10, 0x00, 0x00, 0x00, + 0x11, 0x04, 0x16, 0x00, 0x01, 0x02, 0x00, 0x81, + 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, + // Entry 5C0 - 5FF + 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x7e, 0x02, + 0xaa, 0x10, 0x5d, 0xd8, 0x52, 0x00, 0x80, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x02, 0x02, + 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x50, 0x02, 0x20, + 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, + 0x00, 0x1f, 0xdf, 0xf2, 0xfd, 0xff, 0xfd, 0x3f, + 0x9f, 0x18, 0xcf, 0x9c, 0xbf, 0xaf, 0x5f, 0xfe, + // Entry 600 - 63F + 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xfd, + 0xb7, 0xf7, 0xff, 0xf3, 0xdf, 0xff, 0x6f, 0xf1, + 0x7b, 0xf1, 0x7f, 0xdf, 0x7f, 0xbf, 0xfe, 0xb7, + 0xee, 0x1c, 0xfb, 0xdb, 0xef, 0xdf, 0xff, 0xfd, + 0x7e, 0xbe, 0x57, 0xff, 0x6f, 0x81, 0x76, 0x1f, + 0xd4, 0x77, 0xf5, 0xfd, 0xff, 0xff, 0xeb, 0xfe, + 0xbf, 0x5f, 0x57, 0x1b, 0xeb, 0x5f, 0x50, 0x18, + 0x02, 0xfa, 0xff, 0x9d, 0x15, 0x97, 0x15, 0x0f, + // Entry 640 - 67F + 0x75, 0xc4, 0x7d, 0x81, 0x82, 0xf1, 0xd7, 0x7e, + 0xff, 0xff, 0xff, 0xef, 0xff, 0xfd, 0xdd, 0xde, + 0xfc, 0xfd, 0xf6, 0x5f, 0x7a, 0x1f, 0x40, 0x98, + 0x02, 0xff, 0xe3, 0xff, 0xf3, 0xd6, 0xf2, 0xff, + 0xfb, 0xdf, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4, + 0xf5, 0xbe, 0xff, 0xff, 0xf3, 0xf7, 0xff, 0xf7, + 0x7f, 0xff, 0xff, 0xbe, 0xdb, 0xf7, 0xd7, 0xf9, + 0xef, 0x2f, 0x80, 0xbf, 0xc5, 0xff, 0xff, 0xf3, + // Entry 680 - 6BF + 0x97, 0x9d, 0xff, 0xff, 0xf7, 0xcf, 0xfd, 0xbf, + 0xde, 0x7f, 0x06, 0x1d, 0x57, 0xff, 0xf8, 0xda, + 0x5d, 0xce, 0x7d, 0x16, 0xb9, 0xea, 0x69, 0xa0, + 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x48, + 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, + 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, + 0x04, 0x00, 0x10, 0x8c, 0x58, 0xd5, 0x0d, 0x0f, + // Entry 6C0 - 6FF + 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08, + 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, + 0x00, 0xdc, 0xff, 0xeb, 0x1f, 0x58, 0x08, 0x41, + 0x04, 0xa0, 0x04, 0x00, 0x30, 0x12, 0x40, 0x22, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xaf, + 0x6f, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, + // Entry 700 - 73F + 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x80, 0x86, 0xc2, 0x02, 0x00, 0x00, 0x00, 0x01, + 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79, + 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 740 - 77F + 0x00, 0x00, 0x00, 0xef, 0xf7, 0xfd, 0xcf, 0x7e, + 0xa0, 0x11, 0x10, 0x00, 0x00, 0x92, 0x01, 0x44, + 0xcd, 0xf9, 0x5e, 0x00, 0x01, 0x00, 0x30, 0x14, + 0x04, 0x55, 0x10, 0x01, 0x04, 0xf6, 0x3f, 0x7a, + 0x05, 0x04, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55, + 0x97, 0x7c, 0x9f, 0x71, 0xcc, 0x78, 0xd1, 0x43, + 0xf5, 0x57, 0x67, 0x14, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2c, 0xf7, 0xdb, 0x1f, 0x54, 0x60, + // Entry 780 - 7BF + 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0xaa, 0x01, + 0x00, 0x00, 0x30, 0x00, 0x24, 0x44, 0x00, 0x00, + 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, + 0xf5, 0xff, 0xd5, 0xd7, 0xbc, 0x70, 0xd6, 0x78, + 0x78, 0x15, 0x50, 0x00, 0xa4, 0x84, 0xe9, 0x41, + 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, + 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, + 0xff, 0xef, 0xff, 0x4f, 0x85, 0x53, 0xf4, 0xed, + // Entry 7C0 - 7FF + 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xf5, 0x42, + 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0xc0, 0x56, + 0xcc, 0x16, 0x9e, 0xfb, 0x35, 0x7d, 0xef, 0xff, + 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x5d, + 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, + 0x10, 0x20, 0x24, 0x00, 0xff, 0x3f, 0xdf, 0x67, + 0xfe, 0x01, 0x06, 0x88, 0x0a, 0x40, 0x16, 0x01, + 0x01, 0x15, 0x2b, 0x3e, 0x01, 0x00, 0x00, 0x10, + // Entry 800 - 83F + 0x90, 0x69, 0x45, 0x02, 0x02, 0x01, 0xe1, 0xbf, + 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa7, 0xd1, + 0x54, 0x9e, 0x44, 0xdf, 0xfd, 0x8f, 0x66, 0xb3, + 0x55, 0x20, 0xd4, 0xc3, 0xd8, 0x30, 0x3d, 0x80, + 0x00, 0x00, 0x00, 0x4c, 0xd4, 0x11, 0xc5, 0x84, + 0x6e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbf, 0xdb, + 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, + 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, + // Entry 840 - 87F + 0xf0, 0xfb, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, + 0x84, 0x00, 0x33, 0xc0, 0x23, 0x24, 0x00, 0x00, + 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0xc8, 0x14, 0xf1, + 0xef, 0xff, 0x7f, 0x16, 0x01, 0x01, 0x84, 0x50, + 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, + 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, + // Entry 880 - 8BF + 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24, + 0x0a, 0x00, 0x80, 0x00, 0x00, +} + +// altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives +// to 2-letter language codes that cannot be derived using the method described above. +// Each 3-letter code is followed by its 1-byte langID. +var altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff" + +// altLangIndex is used to convert indexes in altLangISO3 to langIDs. +// Size: 12 bytes, 6 elements +var altLangIndex = [6]uint16{ + 0x014a, 0x0225, 0x0105, 0x020a, 0x009d, 0x010b, +} + +// langAliasMap maps langIDs to their suggested replacements. +// Size: 640 bytes, 160 elements +var langAliasMap = [160]fromTo{ + 0: {from: 0xc4, to: 0xda}, + 1: {from: 0xff, to: 0xf8}, + 2: {from: 0x105, to: 0xe0}, + 3: {from: 0x10b, to: 0x2b9}, + 4: {from: 0x110, to: 0x10f}, + 5: {from: 0x192, to: 0x203}, + 6: {from: 0x1af, to: 0x1c1}, + 7: {from: 0x225, to: 0x23b}, + 8: {from: 0x268, to: 0xaa}, + 9: {from: 0x274, to: 0x252}, + 10: {from: 0x27d, to: 0xd}, + 11: {from: 0x2d5, to: 0x2db}, + 12: {from: 0x326, to: 0x93}, + 13: {from: 0x3c7, to: 0x1c48}, + 14: {from: 0x3e8, to: 0x23a}, + 15: {from: 0x3f9, to: 0x23a}, + 16: {from: 0x484, to: 0x15}, + 17: {from: 0x48f, to: 0xf3}, + 18: {from: 0x4d5, to: 0x1f38}, + 19: {from: 0x54a, to: 0x23}, + 20: {from: 0x550, to: 0x2732}, + 21: {from: 0x55c, to: 0x24}, + 22: {from: 0x57d, to: 0xa1}, + 23: {from: 0x5a3, to: 0x26}, + 24: {from: 0x5ac, to: 0x42}, + 25: {from: 0x615, to: 0x5a7}, + 26: {from: 0x65a, to: 0xc7a}, + 27: {from: 0x786, to: 0x1a5}, + 28: {from: 0x7cd, to: 0x16e}, + 29: {from: 0x7d4, to: 0x59}, + 30: {from: 0x855, to: 0x30b9}, + 31: {from: 0x8cf, to: 0x2c4}, + 32: {from: 0x90c, to: 0x23f1}, + 33: {from: 0x915, to: 0x95a}, + 34: {from: 0x932, to: 0x24f}, + 35: {from: 0x953, to: 0x3fc0}, + 36: {from: 0x956, to: 0x2c4}, + 37: {from: 0x995, to: 0x2b3e}, + 38: {from: 0x9c5, to: 0x2f18}, + 39: {from: 0xa50, to: 0x73}, + 40: {from: 0xa9f, to: 0x79}, + 41: {from: 0xb5f, to: 0x8a}, + 42: {from: 0xb6e, to: 0x1a2}, + 43: {from: 0xb8f, to: 0xb92}, + 44: {from: 0xb95, to: 0x2c8}, + 45: {from: 0xc76, to: 0x1df1}, + 46: {from: 0xc85, to: 0x2c31}, + 47: {from: 0xcd0, to: 0x1bd}, + 48: {from: 0xe67, to: 0x9f}, + 49: {from: 0xe9b, to: 0x179}, + 50: {from: 0xf37, to: 0xfc}, + 51: {from: 0x1010, to: 0xd}, + 52: {from: 0x11bb, to: 0xaf}, + 53: {from: 0x1207, to: 0xa6}, + 54: {from: 0x12b6, to: 0xb32}, + 55: {from: 0x12ba, to: 0x1d2}, + 56: {from: 0x12c9, to: 0x145c}, + 57: {from: 0x1317, to: 0x111}, + 58: {from: 0x131a, to: 0x85}, + 59: {from: 0x133a, to: 0x3a46}, + 60: {from: 0x1401, to: 0xcc}, + 61: {from: 0x145f, to: 0x9a}, + 62: {from: 0x1497, to: 0x278f}, + 63: {from: 0x14af, to: 0xca}, + 64: {from: 0x14be, to: 0xcd6}, + 65: {from: 0x1511, to: 0x12bb}, + 66: {from: 0x15a0, to: 0x154d}, + 67: {from: 0x15ad, to: 0x168a}, + 68: {from: 0x1621, to: 0x23f}, + 69: {from: 0x1710, to: 0x1a98}, + 70: {from: 0x180b, to: 0x2947}, + 71: {from: 0x1821, to: 0x102}, + 72: {from: 0x18f1, to: 0x104}, + 73: {from: 0x191d, to: 0x12ac}, + 74: {from: 0x1dcf, to: 0x3548}, + 75: {from: 0x1dd4, to: 0x1e74}, + 76: {from: 0x1df1, to: 0x18f}, + 77: {from: 0x1e7a, to: 0x145}, + 78: {from: 0x1e85, to: 0x13b}, + 79: {from: 0x1e89, to: 0x122}, + 80: {from: 0x1e90, to: 0x138}, + 81: {from: 0x1ea6, to: 0x1f82}, + 82: {from: 0x1ecc, to: 0x147}, + 83: {from: 0x1f30, to: 0x8d}, + 84: {from: 0x1f65, to: 0x12f8}, + 85: {from: 0x1f7d, to: 0x4235}, + 86: {from: 0x1f8b, to: 0x371a}, + 87: {from: 0x1fc4, to: 0x8d}, + 88: {from: 0x1fce, to: 0x8d}, + 89: {from: 0x1ff9, to: 0x6c1}, + 90: {from: 0x20ad, to: 0x2fbd}, + 91: {from: 0x2119, to: 0x30fc}, + 92: {from: 0x2209, to: 0x170}, + 93: {from: 0x227b, to: 0x18c}, + 94: {from: 0x2287, to: 0x189}, + 95: {from: 0x2291, to: 0x19a}, + 96: {from: 0x22e7, to: 0x8f2}, + 97: {from: 0x2340, to: 0x69}, + 98: {from: 0x23d5, to: 0x179}, + 99: {from: 0x2460, to: 0x244b}, + 100: {from: 0x2490, to: 0x1f4}, + 101: {from: 0x24be, to: 0x3a46}, + 102: {from: 0x24fc, to: 0x244b}, + 103: {from: 0x2520, to: 0x40ef}, + 104: {from: 0x2686, to: 0x25ce}, + 105: {from: 0x26ab, to: 0x1b4}, + 106: {from: 0x271d, to: 0x2b3e}, + 107: {from: 0x28b1, to: 0x1d1}, + 108: {from: 0x2993, to: 0x1d3}, + 109: {from: 0x29d6, to: 0x3a46}, + 110: {from: 0x2a93, to: 0x1ee}, + 111: {from: 0x2aaa, to: 0x32e}, + 112: {from: 0x2ade, to: 0xa4}, + 113: {from: 0x2adf, to: 0xa4}, + 114: {from: 0x2b96, to: 0x183}, + 115: {from: 0x2b9f, to: 0x1763}, + 116: {from: 0x2bb1, to: 0x2b2c}, + 117: {from: 0x2bb8, to: 0x152}, + 118: {from: 0x2beb, to: 0x37}, + 119: {from: 0x2bfc, to: 0x2019}, + 120: {from: 0x2c37, to: 0x2c32}, + 121: {from: 0x2c86, to: 0x2c6e}, + 122: {from: 0x2f2a, to: 0x1f1}, + 123: {from: 0x30fd, to: 0x3125}, + 124: {from: 0x31c1, to: 0x203}, + 125: {from: 0x3285, to: 0x1667}, + 126: {from: 0x337d, to: 0x22a}, + 127: {from: 0x33ef, to: 0x132}, + 128: {from: 0x340d, to: 0x215}, + 129: {from: 0x3494, to: 0x248}, + 130: {from: 0x3557, to: 0x8d}, + 131: {from: 0x35ad, to: 0x3689}, + 132: {from: 0x35c2, to: 0x2a32}, + 133: {from: 0x35c6, to: 0x4c}, + 134: {from: 0x35c9, to: 0x2fbf}, + 135: {from: 0x3603, to: 0x373d}, + 136: {from: 0x3629, to: 0x3d57}, + 137: {from: 0x363c, to: 0x376e}, + 138: {from: 0x364b, to: 0x1d3b}, + 139: {from: 0x364c, to: 0x2c31}, + 140: {from: 0x36f3, to: 0x26a}, + 141: {from: 0x38e5, to: 0xb28}, + 142: {from: 0x390f, to: 0xe91}, + 143: {from: 0x3a30, to: 0x28d}, + 144: {from: 0x3d54, to: 0x7f}, + 145: {from: 0x3f9f, to: 0x828}, + 146: {from: 0x4055, to: 0x30a}, + 147: {from: 0x4090, to: 0x3cf7}, + 148: {from: 0x410f, to: 0x13a}, + 149: {from: 0x4162, to: 0x3462}, + 150: {from: 0x4164, to: 0x86}, + 151: {from: 0x4246, to: 0x30b9}, + 152: {from: 0x427a, to: 0x2b9}, + 153: {from: 0x4361, to: 0x21a0}, + 154: {from: 0x4374, to: 0x2473}, + 155: {from: 0x43a7, to: 0x4645}, + 156: {from: 0x4445, to: 0x4437}, + 157: {from: 0x44d5, to: 0x44dc}, + 158: {from: 0x46ad, to: 0x19a}, + 159: {from: 0x473e, to: 0x2be}, +} + +// Size: 160 bytes, 160 elements +var langAliasTypes = [160]langAliasType{ + // Entry 0 - 3F + 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, 1, + 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, 0, 2, + 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 2, + 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0, 1, + // Entry 40 - 7F + 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, 0, 1, 1, 1, 1, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 2, 2, 2, + 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, + 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 2, 1, + // Entry 80 - BF + 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, + 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, +} + +const ( + _Latn = 82 + _Hani = 50 + _Hans = 52 + _Hant = 53 + _Qaaa = 131 + _Qaai = 139 + _Qabx = 180 + _Zinh = 224 + _Zyyy = 229 + _Zzzz = 230 +) + +// script is an alphabetically sorted list of ISO 15924 codes. The index +// of the script in the string, divided by 4, is the internal scriptID. +var script tag.Index = "" + // Size: 928 bytes + "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + + "BrahBraiBugiBuhdCakmCansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgyd" + + "EgyhEgypElbaEthiGeokGeorGlagGothGranGrekGujrGuruHanbHangHaniHanoHansHant" + + "HatrHebrHiraHluwHmngHrktHungIndsItalJamoJavaJpanJurcKaliKanaKharKhmrKhoj" + + "KitlKitsKndaKoreKpelKthiLanaLaooLatfLatgLatnLekeLepcLimbLinaLinbLisuLoma" + + "LyciLydiMahjMandManiMarcMayaMendMercMeroMlymModiMongMoonMrooMteiMultMymr" + + "NarbNbatNewaNkgbNkooNshuOgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlp" + + "PhlvPhnxPiqdPlrdPrtiQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaam" + + "QaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabe" + + "QabfQabgQabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabw" + + "QabxRjngRoroRunrSamrSaraSarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrc" + + "SyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirh" + + "UgarVaiiVispWaraWoleXpeoXsuxYiiiZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff" + + "\xff" + +// suppressScript is an index from langID to the dominant script for that language, +// if it exists. If a script is given, it should be suppressed from the language tag. +// Size: 713 bytes, 713 elements +var suppressScript = [713]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x27, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 40 - 7F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, + // Entry 80 - BF + 0x52, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2d, 0x52, 0x52, 0x52, 0x00, 0x52, + 0x00, 0x52, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x52, 0x52, 0x00, 0x52, + 0x00, 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry C0 - FF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x2e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x37, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x52, + 0x00, 0x52, 0x52, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, + // Entry 100 - 13F + 0x00, 0x00, 0x52, 0x52, 0x00, 0x37, 0x00, 0x41, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x52, 0x00, 0x46, 0x00, 0x4a, 0x4b, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 140 - 17F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x4f, 0x00, 0x00, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, + // Entry 180 - 1BF + 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x1e, 0x64, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x52, + 0x00, 0x52, 0x00, 0x52, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x00, 0x52, + // Entry 1C0 - 1FF + 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x52, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x75, 0x00, 0x00, 0x00, 0x2f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x52, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + // Entry 200 - 23F + 0x00, 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x52, 0x00, 0x52, 0x00, 0x00, 0x52, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 240 - 27F + 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x52, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd0, 0x52, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, + 0x00, 0x27, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, + 0x52, 0x00, 0x52, 0x52, 0x52, 0x00, 0x52, 0x52, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + // Entry 280 - 2BF + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x52, + 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Entry 2C0 - 2FF + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, + 0x00, +} + +const ( + _001 = 1 + _419 = 30 + _BR = 64 + _CA = 72 + _ES = 109 + _GB = 121 + _MD = 186 + _PT = 236 + _UK = 304 + _US = 306 + _ZZ = 354 + _XA = 320 + _XC = 322 + _XK = 330 +) + +// isoRegionOffset needs to be added to the index of regionISO to obtain the regionID +// for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for +// the UN.M49 codes used for groups.) +const isoRegionOffset = 31 + +// regionTypes defines the status of a region for various standards. +// Size: 355 bytes, 355 elements +var regionTypes = [355]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 40 - 7F + 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, + 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + // Entry 80 - BF + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + // Entry C0 - FF + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, + 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, 0x06, 0x06, + 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, + 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + // Entry 100 - 13F + 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, + // Entry 140 - 17F + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x04, 0x06, 0x06, 0x04, 0x06, 0x06, + 0x04, 0x06, 0x05, +} + +// regionISO holds a list of alphabetically sorted 2-letter ISO region codes. +// Each 2-letter codes is followed by two bytes with the following meaning: +// - [A-Z}{2}: the first letter of the 2-letter code plus these two +// letters form the 3-letter ISO code. +// - 0, n: index into altRegionISO3. +var regionISO tag.Index = "" + // Size: 1300 bytes + "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + + "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + + "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + + "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + + "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03FIINFJJIFKLKFMSMFOROFQ" + + "\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGRRC" + + "GS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSRIM" + + "MNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00\x09" + + "KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTULUUX" + + "LVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQMRRT" + + "MSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOORNPPL" + + "NQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00\x12" + + "PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTTQU" + + "\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYCSD" + + "DNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYRSZ" + + "WZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTVUV" + + "TWWNTZZAUAKRUGGAUK UMMIUSSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVUUTWFLF" + + "WKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXOOOXPPP" + + "XQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAFZMMBZR" + + "ARZWWEZZZZ\xff\xff\xff\xff" + +// altRegionISO3 holds a list of 3-letter region codes that cannot be +// mapped to 2-letter codes using the default algorithm. This is a short list. +var altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" + +// altRegionIDs holds a list of regionIDs the positions of which match those +// of the 3-letter ISO codes in altRegionISO3. +// Size: 22 bytes, 11 elements +var altRegionIDs = [11]uint16{ + 0x0056, 0x006f, 0x0086, 0x00a6, 0x00a8, 0x00ab, 0x00e8, 0x0103, + 0x011f, 0x015c, 0x00da, +} + +// Size: 80 bytes, 20 elements +var regionOldMap = [20]fromTo{ + 0: {from: 0x43, to: 0xc2}, + 1: {from: 0x57, to: 0xa5}, + 2: {from: 0x5e, to: 0x5f}, + 3: {from: 0x65, to: 0x3a}, + 4: {from: 0x77, to: 0x76}, + 5: {from: 0x91, to: 0x36}, + 6: {from: 0xa1, to: 0x131}, + 7: {from: 0xbf, to: 0x131}, + 8: {from: 0xd5, to: 0x13c}, + 9: {from: 0xda, to: 0x2a}, + 10: {from: 0xed, to: 0x131}, + 11: {from: 0xf0, to: 0xe0}, + 12: {from: 0xfa, to: 0x6f}, + 13: {from: 0x101, to: 0x161}, + 14: {from: 0x128, to: 0x124}, + 15: {from: 0x130, to: 0x79}, + 16: {from: 0x137, to: 0x13b}, + 17: {from: 0x13e, to: 0x131}, + 18: {from: 0x15a, to: 0x15b}, + 19: {from: 0x160, to: 0x4a}, +} + +// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are +// codes indicating collections of regions. +// Size: 710 bytes, 355 elements +var m49 = [355]int16{ + // Entry 0 - 3F + 0, 1, 2, 3, 5, 9, 11, 13, + 14, 15, 17, 18, 19, 21, 29, 30, + 34, 35, 39, 53, 54, 57, 61, 142, + 143, 145, 150, 151, 154, 155, 419, 958, + 0, 20, 784, 4, 28, 660, 8, 51, + 530, 24, 10, 32, 16, 40, 36, 533, + 248, 31, 70, 52, 50, 56, 854, 100, + 48, 108, 204, 652, 60, 96, 68, 535, + // Entry 40 - 7F + 76, 44, 64, 104, 74, 72, 112, 84, + 124, 166, 180, 140, 178, 756, 384, 184, + 152, 120, 156, 170, 0, 188, 891, 296, + 192, 132, 531, 162, 196, 203, 278, 276, + 0, 262, 208, 212, 214, 204, 12, 0, + 218, 233, 818, 732, 232, 724, 231, 967, + 246, 242, 238, 583, 234, 0, 250, 249, + 266, 826, 308, 268, 254, 831, 288, 292, + // Entry 80 - BF + 304, 270, 324, 312, 226, 300, 239, 320, + 316, 624, 328, 344, 334, 340, 191, 332, + 348, 854, 0, 360, 372, 376, 833, 356, + 86, 368, 364, 352, 380, 832, 388, 400, + 392, 581, 404, 417, 116, 296, 174, 659, + 408, 410, 414, 136, 398, 418, 422, 662, + 438, 144, 430, 426, 440, 442, 428, 434, + 504, 492, 498, 499, 663, 450, 584, 581, + // Entry C0 - FF + 807, 466, 104, 496, 446, 580, 474, 478, + 500, 470, 480, 462, 454, 484, 458, 508, + 516, 540, 562, 574, 566, 548, 558, 528, + 578, 524, 10, 520, 536, 570, 554, 512, + 591, 0, 604, 258, 598, 608, 586, 616, + 666, 612, 630, 275, 620, 581, 585, 600, + 591, 634, 959, 960, 961, 962, 963, 964, + 965, 966, 967, 968, 969, 970, 971, 972, + // Entry 100 - 13F + 638, 716, 642, 688, 643, 646, 682, 90, + 690, 729, 752, 702, 654, 705, 744, 703, + 694, 674, 686, 706, 740, 728, 678, 810, + 222, 534, 760, 748, 0, 796, 148, 260, + 768, 764, 762, 772, 626, 795, 788, 776, + 626, 792, 780, 798, 158, 834, 804, 800, + 826, 581, 840, 858, 860, 336, 670, 704, + 862, 92, 850, 704, 548, 876, 581, 882, + // Entry 140 - 17F + 973, 974, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, + 997, 998, 720, 887, 175, 891, 710, 894, + 180, 716, 999, +} + +// m49Index gives indexes into fromM49 based on the three most significant bits +// of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in +// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] +// for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. +// The region code is stored in the 9 lsb of the indexed value. +// Size: 18 bytes, 9 elements +var m49Index = [9]int16{ + 0, 59, 107, 142, 180, 219, 258, 290, + 332, +} + +// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details. +// Size: 664 bytes, 332 elements +var fromM49 = [332]uint16{ + // Entry 0 - 3F + 0x0201, 0x0402, 0x0603, 0x0823, 0x0a04, 0x1026, 0x1205, 0x142a, + 0x1606, 0x1866, 0x1a07, 0x1c08, 0x1e09, 0x202c, 0x220a, 0x240b, + 0x260c, 0x2821, 0x2a0d, 0x3029, 0x3824, 0x3a0e, 0x3c0f, 0x3e31, + 0x402b, 0x4410, 0x4611, 0x482e, 0x4e12, 0x502d, 0x5841, 0x6038, + 0x6434, 0x6627, 0x6833, 0x6a13, 0x6c14, 0x7035, 0x7215, 0x783c, + 0x7a16, 0x8042, 0x883e, 0x8c32, 0x9045, 0x9444, 0x9840, 0xa847, + 0xac98, 0xb507, 0xb939, 0xc03d, 0xc837, 0xd0c2, 0xd839, 0xe046, + 0xe8a4, 0xf051, 0xf848, 0x0859, 0x10ab, 0x184b, 0x1c17, 0x1e18, + // Entry 40 - 7F + 0x20b1, 0x2219, 0x291e, 0x2c1a, 0x2e1b, 0x3050, 0x341c, 0x361d, + 0x3852, 0x3d2c, 0x445b, 0x4c49, 0x5453, 0x5ca6, 0x5f5c, 0x644c, + 0x684a, 0x704f, 0x7855, 0x7e8e, 0x8058, 0x885c, 0x965d, 0x983a, + 0xa062, 0xa863, 0xac64, 0xb468, 0xbd18, 0xc484, 0xcc6e, 0xce6e, + 0xd06c, 0xd269, 0xd474, 0xdc72, 0xde86, 0xe471, 0xec70, 0xf030, + 0xf277, 0xf476, 0xfc7c, 0x04e3, 0x091f, 0x0c61, 0x1478, 0x187b, + 0x1c81, 0x26eb, 0x285f, 0x2c5e, 0x305f, 0x407e, 0x487f, 0x50a5, + 0x5885, 0x6080, 0x687a, 0x7083, 0x7888, 0x8087, 0x8882, 0x908a, + // Entry 80 - BF + 0x988f, 0x9c8c, 0xa135, 0xa88d, 0xb08b, 0xb890, 0xc09b, 0xc897, + 0xd093, 0xd89a, 0xe099, 0xe894, 0xf095, 0xf89c, 0x004e, 0x089e, + 0x10a0, 0x1cac, 0x209f, 0x28a2, 0x30a8, 0x34a9, 0x3caa, 0x42a3, + 0x44ad, 0x461e, 0x4cae, 0x54b3, 0x58b6, 0x5cb2, 0x64b7, 0x6cb0, + 0x70b4, 0x74b5, 0x7cc4, 0x84bd, 0x8ccc, 0x94ce, 0x9ccb, 0xa4c1, + 0xacc9, 0xb4c6, 0xbcc7, 0xc0ca, 0xc8cd, 0xd8b9, 0xe0c3, 0xe4ba, + 0xe6bb, 0xe8c8, 0xf0b8, 0xf8cf, 0x00df, 0x08d0, 0x10db, 0x18d9, + 0x20d7, 0x2428, 0x265a, 0x2a2f, 0x2d19, 0x2e3f, 0x30dc, 0x38d1, + // Entry C0 - FF + 0x493c, 0x54de, 0x5cd6, 0x64d2, 0x6cd4, 0x74dd, 0x7cd3, 0x84d8, + 0x88c5, 0x8b31, 0x8e73, 0x90be, 0x92ee, 0x94e6, 0x9ee0, 0xace4, + 0xb0ef, 0xb8e2, 0xc0e5, 0xc8e9, 0xd0e7, 0xd8ec, 0xe089, 0xe524, + 0xecea, 0xf4f1, 0xfd00, 0x0502, 0x0704, 0x0d05, 0x183b, 0x1d0c, + 0x26a7, 0x2825, 0x2caf, 0x2ebc, 0x34e8, 0x3d36, 0x4511, 0x4d16, + 0x5506, 0x5d12, 0x6103, 0x6508, 0x6d10, 0x7d0b, 0x7f0f, 0x813b, + 0x830d, 0x8513, 0x8d5e, 0x9961, 0xa15a, 0xa86d, 0xb115, 0xb309, + 0xb86b, 0xc109, 0xc914, 0xd10e, 0xd91b, 0xe10a, 0xe84d, 0xf11a, + // Entry 100 - 13F + 0xf522, 0xf921, 0x0120, 0x0923, 0x1127, 0x192a, 0x2022, 0x2926, + 0x3129, 0x3725, 0x391d, 0x3d2b, 0x412f, 0x492e, 0x4ec0, 0x5517, + 0x646a, 0x7479, 0x7e7d, 0x809d, 0x8296, 0x852d, 0x9132, 0xa53a, + 0xac36, 0xb533, 0xb934, 0xbd38, 0xd93d, 0xe53f, 0xed5b, 0xef5b, + 0xf656, 0xfd5f, 0x7c1f, 0x7ef2, 0x80f3, 0x82f4, 0x84f5, 0x86f6, + 0x88f7, 0x8af8, 0x8cf9, 0x8e6f, 0x90fb, 0x92fc, 0x94fd, 0x96fe, + 0x98ff, 0x9b40, 0x9d41, 0x9f42, 0xa143, 0xa344, 0xa545, 0xa746, + 0xa947, 0xab48, 0xad49, 0xaf4a, 0xb14b, 0xb34c, 0xb54d, 0xb74e, + // Entry 140 - 17F + 0xb94f, 0xbb50, 0xbd51, 0xbf52, 0xc153, 0xc354, 0xc555, 0xc756, + 0xc957, 0xcb58, 0xcd59, 0xcf62, +} + +// Size: 1444 bytes +var variantIndex = map[string]uint8{ + "1606nict": 0x0, + "1694acad": 0x1, + "1901": 0x2, + "1959acad": 0x3, + "1994": 0x45, + "1996": 0x4, + "abl1943": 0x5, + "alalc97": 0x47, + "aluku": 0x6, + "ao1990": 0x7, + "arevela": 0x8, + "arevmda": 0x9, + "baku1926": 0xa, + "balanka": 0xb, + "barla": 0xc, + "basiceng": 0xd, + "bauddha": 0xe, + "biscayan": 0xf, + "biske": 0x40, + "bohoric": 0x10, + "boont": 0x11, + "colb1945": 0x12, + "cornu": 0x13, + "dajnko": 0x14, + "ekavsk": 0x15, + "emodeng": 0x16, + "fonipa": 0x48, + "fonupa": 0x49, + "fonxsamp": 0x4a, + "hepburn": 0x17, + "heploc": 0x46, + "hognorsk": 0x18, + "ijekavsk": 0x19, + "itihasa": 0x1a, + "jauer": 0x1b, + "jyutping": 0x1c, + "kkcor": 0x1d, + "kociewie": 0x1e, + "kscor": 0x1f, + "laukika": 0x20, + "lipaw": 0x41, + "luna1918": 0x21, + "metelko": 0x22, + "monoton": 0x23, + "ndyuka": 0x24, + "nedis": 0x25, + "newfound": 0x26, + "njiva": 0x42, + "nulik": 0x27, + "osojs": 0x43, + "oxendict": 0x28, + "pamaka": 0x29, + "petr1708": 0x2a, + "pinyin": 0x2b, + "polyton": 0x2c, + "puter": 0x2d, + "rigik": 0x2e, + "rozaj": 0x2f, + "rumgr": 0x30, + "scotland": 0x31, + "scouse": 0x32, + "simple": 0x4b, + "solba": 0x44, + "sotav": 0x33, + "surmiran": 0x34, + "sursilv": 0x35, + "sutsilv": 0x36, + "tarask": 0x37, + "uccor": 0x38, + "ucrcor": 0x39, + "ulster": 0x3a, + "unifon": 0x3b, + "vaidika": 0x3c, + "valencia": 0x3d, + "vallader": 0x3e, + "wadegile": 0x3f, +} + +// variantNumSpecialized is the number of specialized variants in variants. +const variantNumSpecialized = 71 + +// nRegionGroups is the number of region groups. +const nRegionGroups = 32 + +type likelyLangRegion struct { + lang uint16 + region uint16 +} + +// likelyScript is a lookup table, indexed by scriptID, for the most likely +// languages and regions given a script. +// Size: 928 bytes, 232 elements +var likelyScript = [232]likelyLangRegion{ + 1: {lang: 0xa6, region: 0x82}, + 3: {lang: 0x159, region: 0x104}, + 4: {lang: 0xc, region: 0x97}, + 5: {lang: 0x15, region: 0x6a}, + 7: {lang: 0x16, region: 0x9a}, + 8: {lang: 0xf3, region: 0x27}, + 9: {lang: 0x8, region: 0x9a}, + 10: {lang: 0x27, region: 0x93}, + 11: {lang: 0x2b, region: 0x51}, + 12: {lang: 0x55, region: 0xb2}, + 13: {lang: 0x2c, region: 0x93}, + 14: {lang: 0x4b, region: 0x34}, + 15: {lang: 0x20d, region: 0x97}, + 17: {lang: 0x2c4, region: 0x12c}, + 18: {lang: 0x1e5, region: 0x97}, + 19: {lang: 0xaf, region: 0x76}, + 20: {lang: 0x5b, region: 0x93}, + 21: {lang: 0x47, region: 0xe5}, + 22: {lang: 0x63, region: 0x34}, + 23: {lang: 0x73, region: 0x48}, + 24: {lang: 0x2a8, region: 0x129}, + 25: {lang: 0x6e, region: 0x13b}, + 26: {lang: 0x6c, region: 0x132}, + 28: {lang: 0x71, region: 0x6a}, + 29: {lang: 0xd0, region: 0x5c}, + 30: {lang: 0x207, region: 0x104}, + 32: {lang: 0xe1, region: 0x97}, + 34: {lang: 0xaf, region: 0x76}, + 37: {lang: 0x98, region: 0x6a}, + 38: {lang: 0x23a, region: 0x26}, + 39: {lang: 0x11, region: 0x6e}, + 41: {lang: 0x111, region: 0x7b}, + 42: {lang: 0x7d, region: 0x37}, + 43: {lang: 0xcf, region: 0x12e}, + 44: {lang: 0x20d, region: 0x97}, + 45: {lang: 0x9a, region: 0x85}, + 46: {lang: 0xd3, region: 0x97}, + 47: {lang: 0x1d7, region: 0x97}, + 48: {lang: 0x2c4, region: 0x12c}, + 49: {lang: 0x136, region: 0xa9}, + 50: {lang: 0x2c4, region: 0x52}, + 51: {lang: 0xe9, region: 0xe5}, + 52: {lang: 0x2c4, region: 0x52}, + 53: {lang: 0x2c4, region: 0x12c}, + 54: {lang: 0x18b, region: 0x99}, + 55: {lang: 0xe0, region: 0x95}, + 56: {lang: 0x107, region: 0xa0}, + 57: {lang: 0xe4, region: 0x129}, + 58: {lang: 0xe8, region: 0xad}, + 60: {lang: 0xf2, region: 0x90}, + 62: {lang: 0xa0, region: 0x9c}, + 63: {lang: 0x136, region: 0xa9}, + 64: {lang: 0x10f, region: 0x93}, + 65: {lang: 0x107, region: 0xa0}, + 67: {lang: 0x99, region: 0xc2}, + 68: {lang: 0x107, region: 0xa0}, + 69: {lang: 0x1eb, region: 0xe6}, + 70: {lang: 0x133, region: 0xa4}, + 71: {lang: 0x21a, region: 0x97}, + 74: {lang: 0x135, region: 0x97}, + 75: {lang: 0x136, region: 0xa9}, + 77: {lang: 0x40, region: 0x97}, + 78: {lang: 0x1c2, region: 0x121}, + 79: {lang: 0x165, region: 0xad}, + 84: {lang: 0x158, region: 0x97}, + 85: {lang: 0x15c, region: 0x97}, + 86: {lang: 0x14f, region: 0x85}, + 87: {lang: 0xd0, region: 0x85}, + 88: {lang: 0x15e, region: 0x52}, + 90: {lang: 0x2aa, region: 0x129}, + 91: {lang: 0x2ab, region: 0x129}, + 92: {lang: 0xe1, region: 0x97}, + 93: {lang: 0x1a8, region: 0x9a}, + 94: {lang: 0x2ad, region: 0x52}, + 95: {lang: 0x4c, region: 0x52}, + 97: {lang: 0x17f, region: 0x110}, + 98: {lang: 0x2ae, region: 0x109}, + 99: {lang: 0x2ae, region: 0x109}, + 100: {lang: 0x18d, region: 0x97}, + 101: {lang: 0x196, region: 0x97}, + 102: {lang: 0x18f, region: 0x52}, + 104: {lang: 0x199, region: 0x34}, + 105: {lang: 0x190, region: 0x97}, + 106: {lang: 0x22b, region: 0xe6}, + 107: {lang: 0x1a5, region: 0xc2}, + 108: {lang: 0x2af, region: 0x106}, + 109: {lang: 0x16, region: 0x9f}, + 110: {lang: 0x1b5, region: 0xd9}, + 112: {lang: 0x179, region: 0x82}, + 114: {lang: 0x223, region: 0x94}, + 115: {lang: 0x212, region: 0x97}, + 116: {lang: 0x1d6, region: 0xc3}, + 117: {lang: 0x1d3, region: 0x97}, + 118: {lang: 0x1d5, region: 0x132}, + 119: {lang: 0x238, region: 0x113}, + 120: {lang: 0x16, region: 0x11a}, + 121: {lang: 0x7c, region: 0xc2}, + 122: {lang: 0x147, region: 0x104}, + 123: {lang: 0x172, region: 0x52}, + 124: {lang: 0x1d9, region: 0x9a}, + 125: {lang: 0x1d9, region: 0x52}, + 127: {lang: 0x1e3, region: 0xae}, + 129: {lang: 0xe5, region: 0x52}, + 130: {lang: 0x2b2, region: 0x9a}, + 181: {lang: 0x1f6, region: 0x93}, + 183: {lang: 0x1c4, region: 0x10a}, + 184: {lang: 0x234, region: 0x95}, + 186: {lang: 0x2b3, region: 0x15b}, + 187: {lang: 0x213, region: 0x97}, + 188: {lang: 0x1e, region: 0x132}, + 189: {lang: 0x9b, region: 0x79}, + 190: {lang: 0x20d, region: 0x97}, + 191: {lang: 0x20d, region: 0x97}, + 192: {lang: 0x21a, region: 0x97}, + 193: {lang: 0x228, region: 0xb1}, + 194: {lang: 0x23c, region: 0x97}, + 195: {lang: 0x244, region: 0x93}, + 196: {lang: 0x24e, region: 0x34}, + 197: {lang: 0x24f, region: 0x99}, + 201: {lang: 0x253, region: 0xe5}, + 202: {lang: 0x8a, region: 0x97}, + 203: {lang: 0x255, region: 0x52}, + 204: {lang: 0x126, region: 0x52}, + 205: {lang: 0x251, region: 0x97}, + 206: {lang: 0x27f, region: 0x52}, + 207: {lang: 0x48, region: 0x13b}, + 208: {lang: 0x258, region: 0x97}, + 210: {lang: 0x2c3, region: 0xb8}, + 211: {lang: 0xaa, region: 0xe5}, + 212: {lang: 0x90, region: 0xcb}, + 213: {lang: 0x25d, region: 0x121}, + 214: {lang: 0x4c, region: 0x52}, + 215: {lang: 0x177, region: 0x97}, + 216: {lang: 0x285, region: 0x11a}, + 217: {lang: 0x28e, region: 0xb2}, + 219: {lang: 0xec, region: 0x97}, + 221: {lang: 0x1e1, region: 0x9a}, + 222: {lang: 0xe, region: 0x99}, + 223: {lang: 0xfb, region: 0x52}, +} + +type likelyScriptRegion struct { + region uint16 + script uint8 + flags uint8 +} + +// likelyLang is a lookup table, indexed by langID, for the most likely +// scripts and regions given incomplete information. If more entries exist for a +// given language, region and script are the index and size respectively +// of the list in likelyLangList. +// Size: 2852 bytes, 713 elements +var likelyLang = [713]likelyScriptRegion{ + 0: {region: 0x132, script: 0x52, flags: 0x0}, + 1: {region: 0x6e, script: 0x52, flags: 0x0}, + 2: {region: 0x7b, script: 0x1e, flags: 0x0}, + 3: {region: 0x7e, script: 0x52, flags: 0x0}, + 4: {region: 0x93, script: 0x52, flags: 0x0}, + 5: {region: 0x12f, script: 0x52, flags: 0x0}, + 6: {region: 0x7e, script: 0x52, flags: 0x0}, + 7: {region: 0x104, script: 0x1e, flags: 0x0}, + 8: {region: 0x9a, script: 0x9, flags: 0x0}, + 9: {region: 0x126, script: 0x5, flags: 0x0}, + 10: {region: 0x15e, script: 0x52, flags: 0x0}, + 11: {region: 0x51, script: 0x52, flags: 0x0}, + 12: {region: 0x97, script: 0x4, flags: 0x0}, + 13: {region: 0x7e, script: 0x52, flags: 0x0}, + 14: {region: 0x99, script: 0xde, flags: 0x0}, + 15: {region: 0x14a, script: 0x52, flags: 0x0}, + 16: {region: 0x104, script: 0x1e, flags: 0x0}, + 17: {region: 0x6e, script: 0x27, flags: 0x0}, + 18: {region: 0xd4, script: 0x52, flags: 0x0}, + 20: {region: 0x93, script: 0x52, flags: 0x0}, + 21: {region: 0x6a, script: 0x5, flags: 0x0}, + 22: {region: 0x0, script: 0x3, flags: 0x1}, + 23: {region: 0x50, script: 0x52, flags: 0x0}, + 24: {region: 0x3e, script: 0x52, flags: 0x0}, + 25: {region: 0x66, script: 0x5, flags: 0x0}, + 26: {region: 0xb8, script: 0x5, flags: 0x0}, + 27: {region: 0x6a, script: 0x5, flags: 0x0}, + 28: {region: 0x97, script: 0xe, flags: 0x0}, + 29: {region: 0x12d, script: 0x52, flags: 0x0}, + 30: {region: 0x132, script: 0xbc, flags: 0x0}, + 31: {region: 0x6d, script: 0x52, flags: 0x0}, + 32: {region: 0x48, script: 0x52, flags: 0x0}, + 33: {region: 0x104, script: 0x1e, flags: 0x0}, + 34: {region: 0x97, script: 0x20, flags: 0x0}, + 35: {region: 0x3e, script: 0x52, flags: 0x0}, + 36: {region: 0x3, script: 0x5, flags: 0x1}, + 37: {region: 0x104, script: 0x1e, flags: 0x0}, + 38: {region: 0xe6, script: 0x5, flags: 0x0}, + 39: {region: 0x93, script: 0x52, flags: 0x0}, + 40: {region: 0xd9, script: 0x20, flags: 0x0}, + 41: {region: 0x2d, script: 0x52, flags: 0x0}, + 42: {region: 0x51, script: 0x52, flags: 0x0}, + 43: {region: 0x51, script: 0xb, flags: 0x0}, + 44: {region: 0x93, script: 0x52, flags: 0x0}, + 45: {region: 0x51, script: 0x52, flags: 0x0}, + 46: {region: 0x4e, script: 0x52, flags: 0x0}, + 47: {region: 0x46, script: 0x1e, flags: 0x0}, + 48: {region: 0x109, script: 0x5, flags: 0x0}, + 49: {region: 0x15f, script: 0x52, flags: 0x0}, + 50: {region: 0x93, script: 0x52, flags: 0x0}, + 51: {region: 0x12d, script: 0x52, flags: 0x0}, + 52: {region: 0x51, script: 0x52, flags: 0x0}, + 53: {region: 0x97, script: 0xcd, flags: 0x0}, + 54: {region: 0xe6, script: 0x5, flags: 0x0}, + 55: {region: 0x97, script: 0x20, flags: 0x0}, + 56: {region: 0x37, script: 0x1e, flags: 0x0}, + 57: {region: 0x97, script: 0x20, flags: 0x0}, + 58: {region: 0xe6, script: 0x5, flags: 0x0}, + 59: {region: 0x129, script: 0x2d, flags: 0x0}, + 61: {region: 0x97, script: 0x20, flags: 0x0}, + 62: {region: 0x97, script: 0x20, flags: 0x0}, + 63: {region: 0xe5, script: 0x52, flags: 0x0}, + 64: {region: 0x97, script: 0x20, flags: 0x0}, + 65: {region: 0x13c, script: 0x52, flags: 0x0}, + 66: {region: 0xe5, script: 0x52, flags: 0x0}, + 67: {region: 0xd4, script: 0x52, flags: 0x0}, + 68: {region: 0x97, script: 0x20, flags: 0x0}, + 69: {region: 0x93, script: 0x52, flags: 0x0}, + 70: {region: 0x51, script: 0x52, flags: 0x0}, + 71: {region: 0xe5, script: 0x52, flags: 0x0}, + 72: {region: 0x13b, script: 0xcf, flags: 0x0}, + 73: {region: 0xc1, script: 0x52, flags: 0x0}, + 74: {region: 0xc1, script: 0x52, flags: 0x0}, + 75: {region: 0x34, script: 0xe, flags: 0x0}, + 76: {region: 0x52, script: 0xd6, flags: 0x0}, + 77: {region: 0x97, script: 0xe, flags: 0x0}, + 78: {region: 0x9a, script: 0x5, flags: 0x0}, + 79: {region: 0x4e, script: 0x52, flags: 0x0}, + 80: {region: 0x76, script: 0x52, flags: 0x0}, + 81: {region: 0x97, script: 0x20, flags: 0x0}, + 82: {region: 0xe6, script: 0x5, flags: 0x0}, + 83: {region: 0x97, script: 0x20, flags: 0x0}, + 84: {region: 0x32, script: 0x52, flags: 0x0}, + 85: {region: 0xb2, script: 0xc, flags: 0x0}, + 86: {region: 0x51, script: 0x52, flags: 0x0}, + 87: {region: 0xe5, script: 0x52, flags: 0x0}, + 88: {region: 0xe6, script: 0x20, flags: 0x0}, + 89: {region: 0x104, script: 0x1e, flags: 0x0}, + 90: {region: 0x15c, script: 0x52, flags: 0x0}, + 91: {region: 0x93, script: 0x52, flags: 0x0}, + 92: {region: 0x51, script: 0x52, flags: 0x0}, + 93: {region: 0x84, script: 0x52, flags: 0x0}, + 94: {region: 0x6c, script: 0x27, flags: 0x0}, + 95: {region: 0x51, script: 0x52, flags: 0x0}, + 96: {region: 0xc1, script: 0x52, flags: 0x0}, + 97: {region: 0x6d, script: 0x52, flags: 0x0}, + 98: {region: 0xd4, script: 0x52, flags: 0x0}, + 99: {region: 0x8, script: 0x2, flags: 0x1}, + 100: {region: 0x104, script: 0x1e, flags: 0x0}, + 101: {region: 0xe5, script: 0x52, flags: 0x0}, + 102: {region: 0x12f, script: 0x52, flags: 0x0}, + 103: {region: 0x88, script: 0x52, flags: 0x0}, + 104: {region: 0x73, script: 0x52, flags: 0x0}, + 105: {region: 0x104, script: 0x1e, flags: 0x0}, + 106: {region: 0x132, script: 0x52, flags: 0x0}, + 107: {region: 0x48, script: 0x52, flags: 0x0}, + 108: {region: 0x132, script: 0x1a, flags: 0x0}, + 109: {region: 0xa4, script: 0x5, flags: 0x0}, + 110: {region: 0x13b, script: 0x19, flags: 0x0}, + 111: {region: 0x99, script: 0x5, flags: 0x0}, + 112: {region: 0x76, script: 0x52, flags: 0x0}, + 113: {region: 0x6a, script: 0x1c, flags: 0x0}, + 114: {region: 0xe5, script: 0x52, flags: 0x0}, + 115: {region: 0x48, script: 0x17, flags: 0x0}, + 116: {region: 0x48, script: 0x17, flags: 0x0}, + 117: {region: 0x48, script: 0x17, flags: 0x0}, + 118: {region: 0x48, script: 0x17, flags: 0x0}, + 119: {region: 0x48, script: 0x17, flags: 0x0}, + 120: {region: 0x108, script: 0x52, flags: 0x0}, + 121: {region: 0x5d, script: 0x52, flags: 0x0}, + 122: {region: 0xe7, script: 0x52, flags: 0x0}, + 123: {region: 0x48, script: 0x17, flags: 0x0}, + 124: {region: 0xc2, script: 0x79, flags: 0x0}, + 125: {region: 0xa, script: 0x2, flags: 0x1}, + 126: {region: 0x104, script: 0x1e, flags: 0x0}, + 127: {region: 0x79, script: 0x52, flags: 0x0}, + 128: {region: 0x62, script: 0x52, flags: 0x0}, + 129: {region: 0x132, script: 0x52, flags: 0x0}, + 130: {region: 0x104, script: 0x1e, flags: 0x0}, + 131: {region: 0xa2, script: 0x52, flags: 0x0}, + 132: {region: 0x97, script: 0x5, flags: 0x0}, + 133: {region: 0x5f, script: 0x52, flags: 0x0}, + 134: {region: 0x48, script: 0x52, flags: 0x0}, + 135: {region: 0x48, script: 0x52, flags: 0x0}, + 136: {region: 0xd2, script: 0x52, flags: 0x0}, + 137: {region: 0x4e, script: 0x52, flags: 0x0}, + 138: {region: 0x97, script: 0x5, flags: 0x0}, + 139: {region: 0x5f, script: 0x52, flags: 0x0}, + 140: {region: 0xc1, script: 0x52, flags: 0x0}, + 141: {region: 0xce, script: 0x52, flags: 0x0}, + 142: {region: 0xd9, script: 0x20, flags: 0x0}, + 143: {region: 0x51, script: 0x52, flags: 0x0}, + 144: {region: 0xcb, script: 0xd4, flags: 0x0}, + 145: {region: 0x112, script: 0x52, flags: 0x0}, + 146: {region: 0x36, script: 0x52, flags: 0x0}, + 147: {region: 0x42, script: 0xd6, flags: 0x0}, + 148: {region: 0xa2, script: 0x52, flags: 0x0}, + 149: {region: 0x7e, script: 0x52, flags: 0x0}, + 150: {region: 0xd4, script: 0x52, flags: 0x0}, + 151: {region: 0x9c, script: 0x52, flags: 0x0}, + 152: {region: 0x6a, script: 0x25, flags: 0x0}, + 153: {region: 0xc2, script: 0x43, flags: 0x0}, + 154: {region: 0x85, script: 0x2d, flags: 0x0}, + 155: {region: 0xc, script: 0x2, flags: 0x1}, + 156: {region: 0x1, script: 0x52, flags: 0x0}, + 157: {region: 0x6d, script: 0x52, flags: 0x0}, + 158: {region: 0x132, script: 0x52, flags: 0x0}, + 159: {region: 0x69, script: 0x52, flags: 0x0}, + 160: {region: 0x9c, script: 0x3e, flags: 0x0}, + 161: {region: 0x6d, script: 0x52, flags: 0x0}, + 162: {region: 0x51, script: 0x52, flags: 0x0}, + 163: {region: 0x6d, script: 0x52, flags: 0x0}, + 164: {region: 0x9a, script: 0x5, flags: 0x0}, + 165: {region: 0x84, script: 0x52, flags: 0x0}, + 166: {region: 0xe, script: 0x2, flags: 0x1}, + 167: {region: 0xc1, script: 0x52, flags: 0x0}, + 168: {region: 0x70, script: 0x52, flags: 0x0}, + 169: {region: 0x109, script: 0x5, flags: 0x0}, + 170: {region: 0xe5, script: 0x52, flags: 0x0}, + 171: {region: 0x10a, script: 0x52, flags: 0x0}, + 172: {region: 0x71, script: 0x52, flags: 0x0}, + 173: {region: 0x74, script: 0x52, flags: 0x0}, + 174: {region: 0x3a, script: 0x52, flags: 0x0}, + 175: {region: 0x76, script: 0x52, flags: 0x0}, + 176: {region: 0x132, script: 0x52, flags: 0x0}, + 177: {region: 0x76, script: 0x52, flags: 0x0}, + 178: {region: 0x5f, script: 0x52, flags: 0x0}, + 179: {region: 0x5f, script: 0x52, flags: 0x0}, + 180: {region: 0x13d, script: 0x52, flags: 0x0}, + 181: {region: 0xd2, script: 0x52, flags: 0x0}, + 182: {region: 0x9c, script: 0x52, flags: 0x0}, + 183: {region: 0xd4, script: 0x52, flags: 0x0}, + 184: {region: 0x109, script: 0x52, flags: 0x0}, + 185: {region: 0xd7, script: 0x52, flags: 0x0}, + 186: {region: 0x94, script: 0x52, flags: 0x0}, + 187: {region: 0x7e, script: 0x52, flags: 0x0}, + 188: {region: 0xba, script: 0x52, flags: 0x0}, + 189: {region: 0x52, script: 0x34, flags: 0x0}, + 190: {region: 0x93, script: 0x52, flags: 0x0}, + 191: {region: 0x97, script: 0x20, flags: 0x0}, + 192: {region: 0x9a, script: 0x5, flags: 0x0}, + 193: {region: 0x7c, script: 0x52, flags: 0x0}, + 194: {region: 0x79, script: 0x52, flags: 0x0}, + 195: {region: 0x6e, script: 0x27, flags: 0x0}, + 196: {region: 0xd9, script: 0x20, flags: 0x0}, + 197: {region: 0xa5, script: 0x52, flags: 0x0}, + 198: {region: 0xe6, script: 0x5, flags: 0x0}, + 199: {region: 0xe6, script: 0x5, flags: 0x0}, + 200: {region: 0x6d, script: 0x52, flags: 0x0}, + 201: {region: 0x9a, script: 0x5, flags: 0x0}, + 202: {region: 0xef, script: 0x52, flags: 0x0}, + 203: {region: 0x97, script: 0x20, flags: 0x0}, + 204: {region: 0x97, script: 0xd0, flags: 0x0}, + 205: {region: 0x93, script: 0x52, flags: 0x0}, + 206: {region: 0xd7, script: 0x52, flags: 0x0}, + 207: {region: 0x12e, script: 0x2b, flags: 0x0}, + 208: {region: 0x10, script: 0x2, flags: 0x1}, + 209: {region: 0x97, script: 0xe, flags: 0x0}, + 210: {region: 0x4d, script: 0x52, flags: 0x0}, + 211: {region: 0x97, script: 0x2e, flags: 0x0}, + 212: {region: 0x40, script: 0x52, flags: 0x0}, + 213: {region: 0x53, script: 0x52, flags: 0x0}, + 214: {region: 0x7e, script: 0x52, flags: 0x0}, + 216: {region: 0xa2, script: 0x52, flags: 0x0}, + 217: {region: 0x96, script: 0x52, flags: 0x0}, + 218: {region: 0xd9, script: 0x20, flags: 0x0}, + 219: {region: 0x48, script: 0x52, flags: 0x0}, + 220: {region: 0x12, script: 0x3, flags: 0x1}, + 221: {region: 0x52, script: 0x34, flags: 0x0}, + 222: {region: 0x132, script: 0x52, flags: 0x0}, + 223: {region: 0x23, script: 0x5, flags: 0x0}, + 224: {region: 0x95, script: 0x37, flags: 0x0}, + 225: {region: 0x97, script: 0x20, flags: 0x0}, + 226: {region: 0x71, script: 0x52, flags: 0x0}, + 227: {region: 0xe5, script: 0x52, flags: 0x0}, + 228: {region: 0x129, script: 0x39, flags: 0x0}, + 229: {region: 0x52, script: 0x81, flags: 0x0}, + 230: {region: 0xe6, script: 0x5, flags: 0x0}, + 231: {region: 0x97, script: 0x20, flags: 0x0}, + 232: {region: 0xad, script: 0x3a, flags: 0x0}, + 233: {region: 0xe5, script: 0x52, flags: 0x0}, + 234: {region: 0xe6, script: 0x5, flags: 0x0}, + 235: {region: 0xe4, script: 0x52, flags: 0x0}, + 236: {region: 0x97, script: 0x20, flags: 0x0}, + 237: {region: 0x97, script: 0x20, flags: 0x0}, + 238: {region: 0x8e, script: 0x52, flags: 0x0}, + 239: {region: 0x5f, script: 0x52, flags: 0x0}, + 240: {region: 0x52, script: 0x34, flags: 0x0}, + 241: {region: 0x8f, script: 0x52, flags: 0x0}, + 242: {region: 0x90, script: 0x52, flags: 0x0}, + 243: {region: 0x27, script: 0x8, flags: 0x0}, + 244: {region: 0xd0, script: 0x52, flags: 0x0}, + 245: {region: 0x76, script: 0x52, flags: 0x0}, + 246: {region: 0xce, script: 0x52, flags: 0x0}, + 247: {region: 0xd4, script: 0x52, flags: 0x0}, + 248: {region: 0x93, script: 0x52, flags: 0x0}, + 250: {region: 0xd4, script: 0x52, flags: 0x0}, + 251: {region: 0x52, script: 0xdf, flags: 0x0}, + 252: {region: 0x132, script: 0x52, flags: 0x0}, + 253: {region: 0x48, script: 0x52, flags: 0x0}, + 254: {region: 0xe5, script: 0x52, flags: 0x0}, + 255: {region: 0x93, script: 0x52, flags: 0x0}, + 256: {region: 0x104, script: 0x1e, flags: 0x0}, + 258: {region: 0x9b, script: 0x52, flags: 0x0}, + 259: {region: 0x9c, script: 0x52, flags: 0x0}, + 260: {region: 0x48, script: 0x17, flags: 0x0}, + 261: {region: 0x95, script: 0x37, flags: 0x0}, + 262: {region: 0x104, script: 0x52, flags: 0x0}, + 263: {region: 0xa0, script: 0x41, flags: 0x0}, + 264: {region: 0x9e, script: 0x52, flags: 0x0}, + 266: {region: 0x51, script: 0x52, flags: 0x0}, + 267: {region: 0x12e, script: 0x37, flags: 0x0}, + 268: {region: 0x12d, script: 0x52, flags: 0x0}, + 269: {region: 0xd9, script: 0x20, flags: 0x0}, + 270: {region: 0x62, script: 0x52, flags: 0x0}, + 271: {region: 0x93, script: 0x52, flags: 0x0}, + 272: {region: 0x93, script: 0x52, flags: 0x0}, + 273: {region: 0x7b, script: 0x29, flags: 0x0}, + 274: {region: 0x134, script: 0x1e, flags: 0x0}, + 275: {region: 0x66, script: 0x52, flags: 0x0}, + 276: {region: 0xc2, script: 0x52, flags: 0x0}, + 277: {region: 0xd4, script: 0x52, flags: 0x0}, + 278: {region: 0xa2, script: 0x52, flags: 0x0}, + 279: {region: 0xc1, script: 0x52, flags: 0x0}, + 280: {region: 0x104, script: 0x1e, flags: 0x0}, + 281: {region: 0xd4, script: 0x52, flags: 0x0}, + 282: {region: 0x161, script: 0x52, flags: 0x0}, + 283: {region: 0x12d, script: 0x52, flags: 0x0}, + 284: {region: 0x121, script: 0xd5, flags: 0x0}, + 285: {region: 0x59, script: 0x52, flags: 0x0}, + 286: {region: 0x51, script: 0x52, flags: 0x0}, + 287: {region: 0x4e, script: 0x52, flags: 0x0}, + 288: {region: 0x97, script: 0x20, flags: 0x0}, + 289: {region: 0x97, script: 0x20, flags: 0x0}, + 290: {region: 0x4a, script: 0x52, flags: 0x0}, + 291: {region: 0x93, script: 0x52, flags: 0x0}, + 292: {region: 0x40, script: 0x52, flags: 0x0}, + 293: {region: 0x97, script: 0x52, flags: 0x0}, + 294: {region: 0x52, script: 0xcc, flags: 0x0}, + 295: {region: 0x97, script: 0x20, flags: 0x0}, + 296: {region: 0xc1, script: 0x52, flags: 0x0}, + 297: {region: 0x97, script: 0x6b, flags: 0x0}, + 298: {region: 0xe6, script: 0x5, flags: 0x0}, + 299: {region: 0xa2, script: 0x52, flags: 0x0}, + 300: {region: 0x129, script: 0x52, flags: 0x0}, + 301: {region: 0xd0, script: 0x52, flags: 0x0}, + 302: {region: 0xad, script: 0x4f, flags: 0x0}, + 303: {region: 0x15, script: 0x6, flags: 0x1}, + 304: {region: 0x51, script: 0x52, flags: 0x0}, + 305: {region: 0x80, script: 0x52, flags: 0x0}, + 306: {region: 0xa2, script: 0x52, flags: 0x0}, + 307: {region: 0xa4, script: 0x46, flags: 0x0}, + 308: {region: 0x29, script: 0x52, flags: 0x0}, + 309: {region: 0x97, script: 0x4a, flags: 0x0}, + 310: {region: 0xa9, script: 0x4b, flags: 0x0}, + 311: {region: 0x104, script: 0x1e, flags: 0x0}, + 312: {region: 0x97, script: 0x20, flags: 0x0}, + 313: {region: 0x73, script: 0x52, flags: 0x0}, + 314: {region: 0xb2, script: 0x52, flags: 0x0}, + 316: {region: 0x104, script: 0x1e, flags: 0x0}, + 317: {region: 0x110, script: 0x52, flags: 0x0}, + 318: {region: 0xe5, script: 0x52, flags: 0x0}, + 319: {region: 0x104, script: 0x52, flags: 0x0}, + 320: {region: 0x97, script: 0x20, flags: 0x0}, + 321: {region: 0x97, script: 0x5, flags: 0x0}, + 322: {region: 0x12d, script: 0x52, flags: 0x0}, + 323: {region: 0x51, script: 0x52, flags: 0x0}, + 324: {region: 0x5f, script: 0x52, flags: 0x0}, + 325: {region: 0x1b, script: 0x3, flags: 0x1}, + 326: {region: 0x104, script: 0x1e, flags: 0x0}, + 327: {region: 0x104, script: 0x1e, flags: 0x0}, + 328: {region: 0x93, script: 0x52, flags: 0x0}, + 329: {region: 0xe6, script: 0x5, flags: 0x0}, + 330: {region: 0x79, script: 0x52, flags: 0x0}, + 331: {region: 0x121, script: 0xd5, flags: 0x0}, + 332: {region: 0xe6, script: 0x5, flags: 0x0}, + 333: {region: 0x1e, script: 0x5, flags: 0x1}, + 334: {region: 0x135, script: 0x52, flags: 0x0}, + 335: {region: 0x85, script: 0x56, flags: 0x0}, + 336: {region: 0x95, script: 0x37, flags: 0x0}, + 337: {region: 0x12d, script: 0x52, flags: 0x0}, + 338: {region: 0xe6, script: 0x5, flags: 0x0}, + 339: {region: 0x12f, script: 0x52, flags: 0x0}, + 340: {region: 0xb5, script: 0x52, flags: 0x0}, + 341: {region: 0x104, script: 0x1e, flags: 0x0}, + 342: {region: 0x93, script: 0x52, flags: 0x0}, + 343: {region: 0x52, script: 0xd5, flags: 0x0}, + 344: {region: 0x97, script: 0x54, flags: 0x0}, + 345: {region: 0x104, script: 0x1e, flags: 0x0}, + 346: {region: 0x12f, script: 0x52, flags: 0x0}, + 347: {region: 0xd7, script: 0x52, flags: 0x0}, + 348: {region: 0x23, script: 0x2, flags: 0x1}, + 349: {region: 0x9c, script: 0x52, flags: 0x0}, + 350: {region: 0x52, script: 0x58, flags: 0x0}, + 351: {region: 0x93, script: 0x52, flags: 0x0}, + 352: {region: 0x9a, script: 0x5, flags: 0x0}, + 353: {region: 0x132, script: 0x52, flags: 0x0}, + 354: {region: 0x97, script: 0xd0, flags: 0x0}, + 355: {region: 0x9c, script: 0x52, flags: 0x0}, + 356: {region: 0x4a, script: 0x52, flags: 0x0}, + 357: {region: 0xad, script: 0x4f, flags: 0x0}, + 358: {region: 0x4a, script: 0x52, flags: 0x0}, + 359: {region: 0x15f, script: 0x52, flags: 0x0}, + 360: {region: 0x9a, script: 0x5, flags: 0x0}, + 361: {region: 0xb4, script: 0x52, flags: 0x0}, + 362: {region: 0xb6, script: 0x52, flags: 0x0}, + 363: {region: 0x4a, script: 0x52, flags: 0x0}, + 364: {region: 0x4a, script: 0x52, flags: 0x0}, + 365: {region: 0xa2, script: 0x52, flags: 0x0}, + 366: {region: 0xa2, script: 0x52, flags: 0x0}, + 367: {region: 0x9a, script: 0x5, flags: 0x0}, + 368: {region: 0xb6, script: 0x52, flags: 0x0}, + 369: {region: 0x121, script: 0xd5, flags: 0x0}, + 370: {region: 0x52, script: 0x34, flags: 0x0}, + 371: {region: 0x129, script: 0x52, flags: 0x0}, + 372: {region: 0x93, script: 0x52, flags: 0x0}, + 373: {region: 0x51, script: 0x52, flags: 0x0}, + 374: {region: 0x97, script: 0x20, flags: 0x0}, + 375: {region: 0x97, script: 0x20, flags: 0x0}, + 376: {region: 0x93, script: 0x52, flags: 0x0}, + 377: {region: 0x25, script: 0x3, flags: 0x1}, + 378: {region: 0xa2, script: 0x52, flags: 0x0}, + 379: {region: 0xcd, script: 0x52, flags: 0x0}, + 380: {region: 0x104, script: 0x1e, flags: 0x0}, + 381: {region: 0xe5, script: 0x52, flags: 0x0}, + 382: {region: 0x93, script: 0x52, flags: 0x0}, + 383: {region: 0x110, script: 0x52, flags: 0x0}, + 384: {region: 0xa2, script: 0x52, flags: 0x0}, + 385: {region: 0x121, script: 0x5, flags: 0x0}, + 386: {region: 0xca, script: 0x52, flags: 0x0}, + 387: {region: 0xbd, script: 0x52, flags: 0x0}, + 388: {region: 0xcf, script: 0x52, flags: 0x0}, + 389: {region: 0x51, script: 0x52, flags: 0x0}, + 390: {region: 0xd9, script: 0x20, flags: 0x0}, + 391: {region: 0x12d, script: 0x52, flags: 0x0}, + 392: {region: 0xbe, script: 0x52, flags: 0x0}, + 393: {region: 0xde, script: 0x52, flags: 0x0}, + 394: {region: 0x93, script: 0x52, flags: 0x0}, + 395: {region: 0x99, script: 0x36, flags: 0x0}, + 396: {region: 0xc0, script: 0x1e, flags: 0x0}, + 397: {region: 0x97, script: 0x64, flags: 0x0}, + 398: {region: 0x109, script: 0x52, flags: 0x0}, + 399: {region: 0x28, script: 0x3, flags: 0x1}, + 400: {region: 0x97, script: 0xe, flags: 0x0}, + 401: {region: 0xc2, script: 0x6b, flags: 0x0}, + 403: {region: 0x48, script: 0x52, flags: 0x0}, + 404: {region: 0x48, script: 0x52, flags: 0x0}, + 405: {region: 0x36, script: 0x52, flags: 0x0}, + 406: {region: 0x97, script: 0x20, flags: 0x0}, + 407: {region: 0xd9, script: 0x20, flags: 0x0}, + 408: {region: 0x104, script: 0x1e, flags: 0x0}, + 409: {region: 0x34, script: 0x68, flags: 0x0}, + 410: {region: 0x2b, script: 0x3, flags: 0x1}, + 411: {region: 0xc9, script: 0x52, flags: 0x0}, + 412: {region: 0x97, script: 0x20, flags: 0x0}, + 413: {region: 0x51, script: 0x52, flags: 0x0}, + 415: {region: 0x132, script: 0x52, flags: 0x0}, + 416: {region: 0xe6, script: 0x5, flags: 0x0}, + 417: {region: 0xc1, script: 0x52, flags: 0x0}, + 418: {region: 0x97, script: 0x20, flags: 0x0}, + 419: {region: 0x93, script: 0x52, flags: 0x0}, + 420: {region: 0x161, script: 0x52, flags: 0x0}, + 421: {region: 0xc2, script: 0x6b, flags: 0x0}, + 422: {region: 0x104, script: 0x1e, flags: 0x0}, + 423: {region: 0x12f, script: 0x52, flags: 0x0}, + 424: {region: 0x9a, script: 0x5d, flags: 0x0}, + 425: {region: 0x9a, script: 0x5, flags: 0x0}, + 426: {region: 0xdb, script: 0x52, flags: 0x0}, + 428: {region: 0x52, script: 0x34, flags: 0x0}, + 429: {region: 0x9c, script: 0x52, flags: 0x0}, + 430: {region: 0xd0, script: 0x52, flags: 0x0}, + 431: {region: 0xd8, script: 0x52, flags: 0x0}, + 432: {region: 0xcd, script: 0x52, flags: 0x0}, + 433: {region: 0x161, script: 0x52, flags: 0x0}, + 434: {region: 0xcf, script: 0x52, flags: 0x0}, + 435: {region: 0x5f, script: 0x52, flags: 0x0}, + 436: {region: 0xd9, script: 0x20, flags: 0x0}, + 437: {region: 0xd9, script: 0x20, flags: 0x0}, + 438: {region: 0xd0, script: 0x52, flags: 0x0}, + 439: {region: 0xcf, script: 0x52, flags: 0x0}, + 440: {region: 0xcd, script: 0x52, flags: 0x0}, + 441: {region: 0xcd, script: 0x52, flags: 0x0}, + 442: {region: 0x93, script: 0x52, flags: 0x0}, + 443: {region: 0xdd, script: 0x52, flags: 0x0}, + 444: {region: 0x97, script: 0x52, flags: 0x0}, + 445: {region: 0xd7, script: 0x52, flags: 0x0}, + 446: {region: 0x51, script: 0x52, flags: 0x0}, + 447: {region: 0xd8, script: 0x52, flags: 0x0}, + 448: {region: 0x51, script: 0x52, flags: 0x0}, + 449: {region: 0xd8, script: 0x52, flags: 0x0}, + 450: {region: 0x121, script: 0x4e, flags: 0x0}, + 451: {region: 0x97, script: 0x20, flags: 0x0}, + 452: {region: 0x10a, script: 0xb7, flags: 0x0}, + 453: {region: 0x82, script: 0x70, flags: 0x0}, + 454: {region: 0x15e, script: 0x52, flags: 0x0}, + 455: {region: 0x48, script: 0x17, flags: 0x0}, + 456: {region: 0x15e, script: 0x52, flags: 0x0}, + 457: {region: 0x115, script: 0x52, flags: 0x0}, + 458: {region: 0x132, script: 0x52, flags: 0x0}, + 459: {region: 0x52, script: 0x52, flags: 0x0}, + 460: {region: 0xcc, script: 0x52, flags: 0x0}, + 461: {region: 0x12d, script: 0x52, flags: 0x0}, + 462: {region: 0x12f, script: 0x52, flags: 0x0}, + 463: {region: 0x7e, script: 0x52, flags: 0x0}, + 464: {region: 0x76, script: 0x52, flags: 0x0}, + 466: {region: 0x6e, script: 0x52, flags: 0x0}, + 467: {region: 0x97, script: 0x75, flags: 0x0}, + 468: {region: 0x7b, script: 0x1e, flags: 0x0}, + 469: {region: 0x132, script: 0x76, flags: 0x0}, + 470: {region: 0xc3, script: 0x74, flags: 0x0}, + 471: {region: 0x2e, script: 0x3, flags: 0x1}, + 472: {region: 0xe5, script: 0x52, flags: 0x0}, + 473: {region: 0x31, script: 0x2, flags: 0x1}, + 474: {region: 0xe5, script: 0x52, flags: 0x0}, + 475: {region: 0x2f, script: 0x52, flags: 0x0}, + 476: {region: 0xee, script: 0x52, flags: 0x0}, + 477: {region: 0x76, script: 0x52, flags: 0x0}, + 478: {region: 0xd4, script: 0x52, flags: 0x0}, + 479: {region: 0x132, script: 0x52, flags: 0x0}, + 480: {region: 0x48, script: 0x52, flags: 0x0}, + 481: {region: 0x9a, script: 0xdd, flags: 0x0}, + 482: {region: 0x5f, script: 0x52, flags: 0x0}, + 483: {region: 0xae, script: 0x7f, flags: 0x0}, + 485: {region: 0x97, script: 0x12, flags: 0x0}, + 486: {region: 0xa2, script: 0x52, flags: 0x0}, + 487: {region: 0xe7, script: 0x52, flags: 0x0}, + 488: {region: 0x9c, script: 0x52, flags: 0x0}, + 489: {region: 0x85, script: 0x2d, flags: 0x0}, + 490: {region: 0x73, script: 0x52, flags: 0x0}, + 491: {region: 0xe6, script: 0x45, flags: 0x0}, + 492: {region: 0x9a, script: 0x5, flags: 0x0}, + 493: {region: 0x1, script: 0x52, flags: 0x0}, + 494: {region: 0x23, script: 0x5, flags: 0x0}, + 495: {region: 0x40, script: 0x52, flags: 0x0}, + 496: {region: 0x78, script: 0x52, flags: 0x0}, + 497: {region: 0xe2, script: 0x52, flags: 0x0}, + 498: {region: 0x87, script: 0x52, flags: 0x0}, + 499: {region: 0x68, script: 0x52, flags: 0x0}, + 500: {region: 0x97, script: 0x20, flags: 0x0}, + 501: {region: 0x100, script: 0x52, flags: 0x0}, + 502: {region: 0x93, script: 0x52, flags: 0x0}, + 503: {region: 0x9c, script: 0x52, flags: 0x0}, + 504: {region: 0x97, script: 0x52, flags: 0x0}, + 505: {region: 0x33, script: 0x2, flags: 0x1}, + 506: {region: 0xd9, script: 0x20, flags: 0x0}, + 507: {region: 0x34, script: 0xe, flags: 0x0}, + 508: {region: 0x4d, script: 0x52, flags: 0x0}, + 509: {region: 0x70, script: 0x52, flags: 0x0}, + 510: {region: 0x4d, script: 0x52, flags: 0x0}, + 511: {region: 0x9a, script: 0x5, flags: 0x0}, + 512: {region: 0x10a, script: 0x52, flags: 0x0}, + 513: {region: 0x39, script: 0x52, flags: 0x0}, + 514: {region: 0xcf, script: 0x52, flags: 0x0}, + 515: {region: 0x102, script: 0x52, flags: 0x0}, + 516: {region: 0x93, script: 0x52, flags: 0x0}, + 517: {region: 0x12d, script: 0x52, flags: 0x0}, + 518: {region: 0x71, script: 0x52, flags: 0x0}, + 519: {region: 0x104, script: 0x1e, flags: 0x0}, + 520: {region: 0x12e, script: 0x1e, flags: 0x0}, + 521: {region: 0x107, script: 0x52, flags: 0x0}, + 522: {region: 0x105, script: 0x52, flags: 0x0}, + 523: {region: 0x12d, script: 0x52, flags: 0x0}, + 524: {region: 0xa0, script: 0x44, flags: 0x0}, + 525: {region: 0x97, script: 0x20, flags: 0x0}, + 526: {region: 0x7e, script: 0x52, flags: 0x0}, + 527: {region: 0x104, script: 0x1e, flags: 0x0}, + 528: {region: 0xa2, script: 0x52, flags: 0x0}, + 529: {region: 0x93, script: 0x52, flags: 0x0}, + 530: {region: 0x97, script: 0x52, flags: 0x0}, + 531: {region: 0x97, script: 0xbb, flags: 0x0}, + 532: {region: 0x12d, script: 0x52, flags: 0x0}, + 533: {region: 0x9c, script: 0x52, flags: 0x0}, + 534: {region: 0x97, script: 0x20, flags: 0x0}, + 535: {region: 0x9c, script: 0x52, flags: 0x0}, + 536: {region: 0x79, script: 0x52, flags: 0x0}, + 537: {region: 0x48, script: 0x52, flags: 0x0}, + 538: {region: 0x35, script: 0x4, flags: 0x1}, + 539: {region: 0x9c, script: 0x52, flags: 0x0}, + 540: {region: 0x9a, script: 0x5, flags: 0x0}, + 541: {region: 0xd8, script: 0x52, flags: 0x0}, + 542: {region: 0x4e, script: 0x52, flags: 0x0}, + 543: {region: 0xcf, script: 0x52, flags: 0x0}, + 544: {region: 0xcd, script: 0x52, flags: 0x0}, + 545: {region: 0xc1, script: 0x52, flags: 0x0}, + 546: {region: 0x4b, script: 0x52, flags: 0x0}, + 547: {region: 0x94, script: 0x72, flags: 0x0}, + 548: {region: 0xb4, script: 0x52, flags: 0x0}, + 550: {region: 0xb8, script: 0xd2, flags: 0x0}, + 551: {region: 0xc2, script: 0x6b, flags: 0x0}, + 552: {region: 0xb1, script: 0xc1, flags: 0x0}, + 553: {region: 0x6e, script: 0x52, flags: 0x0}, + 554: {region: 0x10f, script: 0x52, flags: 0x0}, + 555: {region: 0xe6, script: 0x5, flags: 0x0}, + 556: {region: 0x10d, script: 0x52, flags: 0x0}, + 557: {region: 0xe7, script: 0x52, flags: 0x0}, + 558: {region: 0x93, script: 0x52, flags: 0x0}, + 559: {region: 0x13f, script: 0x52, flags: 0x0}, + 560: {region: 0x10a, script: 0x52, flags: 0x0}, + 562: {region: 0x10a, script: 0x52, flags: 0x0}, + 563: {region: 0x70, script: 0x52, flags: 0x0}, + 564: {region: 0x95, script: 0xb8, flags: 0x0}, + 565: {region: 0x70, script: 0x52, flags: 0x0}, + 566: {region: 0x161, script: 0x52, flags: 0x0}, + 567: {region: 0xc1, script: 0x52, flags: 0x0}, + 568: {region: 0x113, script: 0x52, flags: 0x0}, + 569: {region: 0x121, script: 0xd5, flags: 0x0}, + 570: {region: 0x26, script: 0x52, flags: 0x0}, + 571: {region: 0x39, script: 0x5, flags: 0x1}, + 572: {region: 0x97, script: 0xc2, flags: 0x0}, + 573: {region: 0x114, script: 0x52, flags: 0x0}, + 574: {region: 0x112, script: 0x52, flags: 0x0}, + 575: {region: 0x97, script: 0x20, flags: 0x0}, + 576: {region: 0x15e, script: 0x52, flags: 0x0}, + 577: {region: 0x6c, script: 0x52, flags: 0x0}, + 578: {region: 0x15e, script: 0x52, flags: 0x0}, + 579: {region: 0x5f, script: 0x52, flags: 0x0}, + 580: {region: 0x93, script: 0x52, flags: 0x0}, + 581: {region: 0x12d, script: 0x52, flags: 0x0}, + 582: {region: 0x82, script: 0x52, flags: 0x0}, + 583: {region: 0x10a, script: 0x52, flags: 0x0}, + 584: {region: 0x12d, script: 0x52, flags: 0x0}, + 585: {region: 0x15c, script: 0x5, flags: 0x0}, + 586: {region: 0x4a, script: 0x52, flags: 0x0}, + 587: {region: 0x5f, script: 0x52, flags: 0x0}, + 588: {region: 0x97, script: 0x20, flags: 0x0}, + 589: {region: 0x93, script: 0x52, flags: 0x0}, + 590: {region: 0x34, script: 0xe, flags: 0x0}, + 591: {region: 0x99, script: 0xc5, flags: 0x0}, + 592: {region: 0xe7, script: 0x52, flags: 0x0}, + 593: {region: 0x97, script: 0xcd, flags: 0x0}, + 594: {region: 0xd9, script: 0x20, flags: 0x0}, + 595: {region: 0xe5, script: 0x52, flags: 0x0}, + 596: {region: 0x97, script: 0x4a, flags: 0x0}, + 597: {region: 0x52, script: 0xcb, flags: 0x0}, + 598: {region: 0xd9, script: 0x20, flags: 0x0}, + 599: {region: 0xd9, script: 0x20, flags: 0x0}, + 600: {region: 0x97, script: 0xd0, flags: 0x0}, + 601: {region: 0x110, script: 0x52, flags: 0x0}, + 602: {region: 0x12f, script: 0x52, flags: 0x0}, + 603: {region: 0x124, script: 0x52, flags: 0x0}, + 604: {region: 0x3e, script: 0x3, flags: 0x1}, + 605: {region: 0x121, script: 0xd5, flags: 0x0}, + 606: {region: 0xd9, script: 0x20, flags: 0x0}, + 607: {region: 0xd9, script: 0x20, flags: 0x0}, + 608: {region: 0xd9, script: 0x20, flags: 0x0}, + 609: {region: 0x6e, script: 0x27, flags: 0x0}, + 610: {region: 0x6c, script: 0x27, flags: 0x0}, + 611: {region: 0xd4, script: 0x52, flags: 0x0}, + 612: {region: 0x125, script: 0x52, flags: 0x0}, + 613: {region: 0x123, script: 0x52, flags: 0x0}, + 614: {region: 0x31, script: 0x52, flags: 0x0}, + 615: {region: 0xd9, script: 0x20, flags: 0x0}, + 616: {region: 0xe5, script: 0x52, flags: 0x0}, + 617: {region: 0x31, script: 0x52, flags: 0x0}, + 618: {region: 0xd2, script: 0x52, flags: 0x0}, + 619: {region: 0x15e, script: 0x52, flags: 0x0}, + 620: {region: 0x127, script: 0x52, flags: 0x0}, + 621: {region: 0xcc, script: 0x52, flags: 0x0}, + 622: {region: 0xe4, script: 0x52, flags: 0x0}, + 623: {region: 0x129, script: 0x52, flags: 0x0}, + 624: {region: 0x129, script: 0x52, flags: 0x0}, + 625: {region: 0x12c, script: 0x52, flags: 0x0}, + 626: {region: 0x15e, script: 0x52, flags: 0x0}, + 627: {region: 0x85, script: 0x2d, flags: 0x0}, + 628: {region: 0xd9, script: 0x20, flags: 0x0}, + 629: {region: 0xe5, script: 0x52, flags: 0x0}, + 630: {region: 0x42, script: 0xd6, flags: 0x0}, + 631: {region: 0x104, script: 0x1e, flags: 0x0}, + 632: {region: 0x12f, script: 0x52, flags: 0x0}, + 633: {region: 0x121, script: 0xd5, flags: 0x0}, + 634: {region: 0x31, script: 0x52, flags: 0x0}, + 635: {region: 0xcc, script: 0x52, flags: 0x0}, + 636: {region: 0x12b, script: 0x52, flags: 0x0}, + 638: {region: 0xd2, script: 0x52, flags: 0x0}, + 639: {region: 0x52, script: 0xce, flags: 0x0}, + 640: {region: 0xe3, script: 0x52, flags: 0x0}, + 641: {region: 0x104, script: 0x1e, flags: 0x0}, + 642: {region: 0xb8, script: 0x52, flags: 0x0}, + 643: {region: 0x104, script: 0x1e, flags: 0x0}, + 644: {region: 0x41, script: 0x4, flags: 0x1}, + 645: {region: 0x11a, script: 0xd8, flags: 0x0}, + 646: {region: 0x12e, script: 0x1e, flags: 0x0}, + 647: {region: 0x73, script: 0x52, flags: 0x0}, + 648: {region: 0x29, script: 0x52, flags: 0x0}, + 650: {region: 0x45, script: 0x3, flags: 0x1}, + 651: {region: 0x97, script: 0xe, flags: 0x0}, + 652: {region: 0xe6, script: 0x5, flags: 0x0}, + 653: {region: 0x48, script: 0x4, flags: 0x1}, + 654: {region: 0xb2, script: 0xd9, flags: 0x0}, + 655: {region: 0x15e, script: 0x52, flags: 0x0}, + 656: {region: 0x9c, script: 0x52, flags: 0x0}, + 657: {region: 0x104, script: 0x52, flags: 0x0}, + 658: {region: 0x13b, script: 0x52, flags: 0x0}, + 659: {region: 0x119, script: 0x52, flags: 0x0}, + 660: {region: 0x35, script: 0x52, flags: 0x0}, + 661: {region: 0x5f, script: 0x52, flags: 0x0}, + 662: {region: 0xcf, script: 0x52, flags: 0x0}, + 663: {region: 0x1, script: 0x52, flags: 0x0}, + 664: {region: 0x104, script: 0x52, flags: 0x0}, + 665: {region: 0x69, script: 0x52, flags: 0x0}, + 666: {region: 0x12d, script: 0x52, flags: 0x0}, + 667: {region: 0x35, script: 0x52, flags: 0x0}, + 668: {region: 0x4d, script: 0x52, flags: 0x0}, + 669: {region: 0x6e, script: 0x27, flags: 0x0}, + 670: {region: 0xe5, script: 0x52, flags: 0x0}, + 671: {region: 0x2e, script: 0x52, flags: 0x0}, + 672: {region: 0x97, script: 0xd0, flags: 0x0}, + 673: {region: 0x97, script: 0x20, flags: 0x0}, + 674: {region: 0x13d, script: 0x52, flags: 0x0}, + 675: {region: 0xa6, script: 0x5, flags: 0x0}, + 676: {region: 0x112, script: 0x52, flags: 0x0}, + 677: {region: 0x97, script: 0x20, flags: 0x0}, + 678: {region: 0x52, script: 0x34, flags: 0x0}, + 679: {region: 0x40, script: 0x52, flags: 0x0}, + 680: {region: 0x129, script: 0x18, flags: 0x0}, + 681: {region: 0x15e, script: 0x52, flags: 0x0}, + 682: {region: 0x129, script: 0x5a, flags: 0x0}, + 683: {region: 0x129, script: 0x5b, flags: 0x0}, + 684: {region: 0x7b, script: 0x29, flags: 0x0}, + 685: {region: 0x52, script: 0x5e, flags: 0x0}, + 686: {region: 0x109, script: 0x62, flags: 0x0}, + 687: {region: 0x106, script: 0x6c, flags: 0x0}, + 688: {region: 0x97, script: 0x20, flags: 0x0}, + 689: {region: 0x12f, script: 0x52, flags: 0x0}, + 690: {region: 0x9a, script: 0x82, flags: 0x0}, + 691: {region: 0x15b, script: 0xba, flags: 0x0}, + 692: {region: 0xd9, script: 0x20, flags: 0x0}, + 693: {region: 0xcf, script: 0x52, flags: 0x0}, + 694: {region: 0x73, script: 0x52, flags: 0x0}, + 695: {region: 0x51, script: 0x52, flags: 0x0}, + 696: {region: 0x51, script: 0x52, flags: 0x0}, + 697: {region: 0x1, script: 0x37, flags: 0x0}, + 698: {region: 0xd4, script: 0x52, flags: 0x0}, + 699: {region: 0x40, script: 0x52, flags: 0x0}, + 700: {region: 0xcd, script: 0x52, flags: 0x0}, + 701: {region: 0x4c, script: 0x3, flags: 0x1}, + 702: {region: 0x52, script: 0x52, flags: 0x0}, + 703: {region: 0x109, script: 0x52, flags: 0x0}, + 705: {region: 0xa6, script: 0x5, flags: 0x0}, + 706: {region: 0xd7, script: 0x52, flags: 0x0}, + 707: {region: 0xb8, script: 0xd2, flags: 0x0}, + 708: {region: 0x4f, script: 0x14, flags: 0x1}, + 709: {region: 0xce, script: 0x52, flags: 0x0}, + 710: {region: 0x15e, script: 0x52, flags: 0x0}, + 712: {region: 0x129, script: 0x52, flags: 0x0}, +} + +// likelyLangList holds lists info associated with likelyLang. +// Size: 396 bytes, 99 elements +var likelyLangList = [99]likelyScriptRegion{ + 0: {region: 0x9a, script: 0x7, flags: 0x0}, + 1: {region: 0x9f, script: 0x6d, flags: 0x2}, + 2: {region: 0x11a, script: 0x78, flags: 0x2}, + 3: {region: 0x31, script: 0x52, flags: 0x0}, + 4: {region: 0x99, script: 0x5, flags: 0x4}, + 5: {region: 0x9a, script: 0x5, flags: 0x4}, + 6: {region: 0x104, script: 0x1e, flags: 0x4}, + 7: {region: 0x9a, script: 0x5, flags: 0x2}, + 8: {region: 0x97, script: 0xe, flags: 0x0}, + 9: {region: 0x34, script: 0x16, flags: 0x2}, + 10: {region: 0x104, script: 0x1e, flags: 0x0}, + 11: {region: 0x37, script: 0x2a, flags: 0x2}, + 12: {region: 0x132, script: 0x52, flags: 0x0}, + 13: {region: 0x79, script: 0xbd, flags: 0x2}, + 14: {region: 0x112, script: 0x52, flags: 0x0}, + 15: {region: 0x82, script: 0x1, flags: 0x2}, + 16: {region: 0x5c, script: 0x1d, flags: 0x0}, + 17: {region: 0x85, script: 0x57, flags: 0x2}, + 18: {region: 0xd4, script: 0x52, flags: 0x0}, + 19: {region: 0x51, script: 0x5, flags: 0x4}, + 20: {region: 0x109, script: 0x5, flags: 0x4}, + 21: {region: 0xac, script: 0x1e, flags: 0x0}, + 22: {region: 0x23, script: 0x5, flags: 0x4}, + 23: {region: 0x52, script: 0x5, flags: 0x4}, + 24: {region: 0x9a, script: 0x5, flags: 0x4}, + 25: {region: 0xc3, script: 0x5, flags: 0x4}, + 26: {region: 0x52, script: 0x5, flags: 0x2}, + 27: {region: 0x129, script: 0x52, flags: 0x0}, + 28: {region: 0xae, script: 0x5, flags: 0x4}, + 29: {region: 0x99, script: 0x5, flags: 0x2}, + 30: {region: 0xa3, script: 0x1e, flags: 0x0}, + 31: {region: 0x52, script: 0x5, flags: 0x4}, + 32: {region: 0x129, script: 0x52, flags: 0x4}, + 33: {region: 0x52, script: 0x5, flags: 0x2}, + 34: {region: 0x129, script: 0x52, flags: 0x2}, + 35: {region: 0xd9, script: 0x20, flags: 0x0}, + 36: {region: 0x97, script: 0x55, flags: 0x2}, + 37: {region: 0x81, script: 0x52, flags: 0x0}, + 38: {region: 0x82, script: 0x70, flags: 0x4}, + 39: {region: 0x82, script: 0x70, flags: 0x2}, + 40: {region: 0xc3, script: 0x1e, flags: 0x0}, + 41: {region: 0x52, script: 0x66, flags: 0x4}, + 42: {region: 0x52, script: 0x66, flags: 0x2}, + 43: {region: 0xce, script: 0x52, flags: 0x0}, + 44: {region: 0x49, script: 0x5, flags: 0x4}, + 45: {region: 0x93, script: 0x5, flags: 0x4}, + 46: {region: 0x97, script: 0x2f, flags: 0x0}, + 47: {region: 0xe6, script: 0x5, flags: 0x4}, + 48: {region: 0xe6, script: 0x5, flags: 0x2}, + 49: {region: 0x9a, script: 0x7c, flags: 0x0}, + 50: {region: 0x52, script: 0x7d, flags: 0x2}, + 51: {region: 0xb8, script: 0xd2, flags: 0x0}, + 52: {region: 0xd7, script: 0x52, flags: 0x4}, + 53: {region: 0xe6, script: 0x5, flags: 0x0}, + 54: {region: 0x97, script: 0x20, flags: 0x2}, + 55: {region: 0x97, script: 0x47, flags: 0x2}, + 56: {region: 0x97, script: 0xc0, flags: 0x2}, + 57: {region: 0x103, script: 0x1e, flags: 0x0}, + 58: {region: 0xbb, script: 0x52, flags: 0x4}, + 59: {region: 0x102, script: 0x52, flags: 0x4}, + 60: {region: 0x104, script: 0x52, flags: 0x4}, + 61: {region: 0x129, script: 0x52, flags: 0x4}, + 62: {region: 0x122, script: 0x1e, flags: 0x0}, + 63: {region: 0xe6, script: 0x5, flags: 0x4}, + 64: {region: 0xe6, script: 0x5, flags: 0x2}, + 65: {region: 0x52, script: 0x5, flags: 0x0}, + 66: {region: 0xac, script: 0x1e, flags: 0x4}, + 67: {region: 0xc3, script: 0x1e, flags: 0x4}, + 68: {region: 0xac, script: 0x1e, flags: 0x2}, + 69: {region: 0x97, script: 0xe, flags: 0x0}, + 70: {region: 0xd9, script: 0x20, flags: 0x4}, + 71: {region: 0xd9, script: 0x20, flags: 0x2}, + 72: {region: 0x134, script: 0x52, flags: 0x0}, + 73: {region: 0x23, script: 0x5, flags: 0x4}, + 74: {region: 0x52, script: 0x1e, flags: 0x4}, + 75: {region: 0x23, script: 0x5, flags: 0x2}, + 76: {region: 0x8b, script: 0x35, flags: 0x0}, + 77: {region: 0x52, script: 0x34, flags: 0x4}, + 78: {region: 0x52, script: 0x34, flags: 0x2}, + 79: {region: 0x52, script: 0x34, flags: 0x0}, + 80: {region: 0x2e, script: 0x35, flags: 0x4}, + 81: {region: 0x3d, script: 0x35, flags: 0x4}, + 82: {region: 0x79, script: 0x35, flags: 0x4}, + 83: {region: 0x7c, script: 0x35, flags: 0x4}, + 84: {region: 0x8b, script: 0x35, flags: 0x4}, + 85: {region: 0x93, script: 0x35, flags: 0x4}, + 86: {region: 0xc4, script: 0x35, flags: 0x4}, + 87: {region: 0xce, script: 0x35, flags: 0x4}, + 88: {region: 0xe0, script: 0x35, flags: 0x4}, + 89: {region: 0xe3, script: 0x35, flags: 0x4}, + 90: {region: 0xe5, script: 0x35, flags: 0x4}, + 91: {region: 0x114, script: 0x35, flags: 0x4}, + 92: {region: 0x121, script: 0x35, flags: 0x4}, + 93: {region: 0x12c, script: 0x35, flags: 0x4}, + 94: {region: 0x132, script: 0x35, flags: 0x4}, + 95: {region: 0x13b, script: 0x35, flags: 0x4}, + 96: {region: 0x12c, script: 0x11, flags: 0x2}, + 97: {region: 0x12c, script: 0x30, flags: 0x2}, + 98: {region: 0x12c, script: 0x35, flags: 0x2}, +} + +type likelyLangScript struct { + lang uint16 + script uint8 + flags uint8 +} + +// likelyRegion is a lookup table, indexed by regionID, for the most likely +// languages and scripts given incomplete information. If more entries exist +// for a given regionID, lang and script are the index and size respectively +// of the list in likelyRegionList. +// TODO: exclude containers and user-definable regions from the list. +// Size: 1420 bytes, 355 elements +var likelyRegion = [355]likelyLangScript{ + 33: {lang: 0x61, script: 0x52, flags: 0x0}, + 34: {lang: 0x15, script: 0x5, flags: 0x0}, + 35: {lang: 0x0, script: 0x2, flags: 0x1}, + 38: {lang: 0x2, script: 0x2, flags: 0x1}, + 39: {lang: 0x4, script: 0x2, flags: 0x1}, + 41: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 42: {lang: 0x0, script: 0x52, flags: 0x0}, + 43: {lang: 0x9d, script: 0x52, flags: 0x0}, + 44: {lang: 0x22f, script: 0x52, flags: 0x0}, + 45: {lang: 0x85, script: 0x52, flags: 0x0}, + 47: {lang: 0x1bd, script: 0x52, flags: 0x0}, + 48: {lang: 0x247, script: 0x52, flags: 0x0}, + 49: {lang: 0x24, script: 0x52, flags: 0x0}, + 50: {lang: 0x6, script: 0x2, flags: 0x1}, + 52: {lang: 0x4b, script: 0xe, flags: 0x0}, + 53: {lang: 0x1bd, script: 0x52, flags: 0x0}, + 54: {lang: 0xaf, script: 0x52, flags: 0x0}, + 55: {lang: 0x38, script: 0x1e, flags: 0x0}, + 56: {lang: 0x15, script: 0x5, flags: 0x0}, + 57: {lang: 0x201, script: 0x52, flags: 0x0}, + 58: {lang: 0xaf, script: 0x52, flags: 0x0}, + 59: {lang: 0xaf, script: 0x52, flags: 0x0}, + 61: {lang: 0x19a, script: 0x52, flags: 0x0}, + 62: {lang: 0x9d, script: 0x52, flags: 0x0}, + 63: {lang: 0x1db, script: 0x52, flags: 0x0}, + 64: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 66: {lang: 0x8, script: 0x2, flags: 0x1}, + 68: {lang: 0x0, script: 0x52, flags: 0x0}, + 70: {lang: 0x2f, script: 0x1e, flags: 0x0}, + 72: {lang: 0x2b9, script: 0x37, flags: 0x2}, + 73: {lang: 0x19a, script: 0x5, flags: 0x2}, + 74: {lang: 0x248, script: 0x52, flags: 0x0}, + 75: {lang: 0xaf, script: 0x52, flags: 0x0}, + 76: {lang: 0xaf, script: 0x52, flags: 0x0}, + 77: {lang: 0x85, script: 0x52, flags: 0x0}, + 78: {lang: 0xaf, script: 0x52, flags: 0x0}, + 80: {lang: 0x9d, script: 0x52, flags: 0x0}, + 81: {lang: 0xaf, script: 0x52, flags: 0x0}, + 82: {lang: 0xa, script: 0x5, flags: 0x1}, + 83: {lang: 0x9d, script: 0x52, flags: 0x0}, + 84: {lang: 0x0, script: 0x52, flags: 0x0}, + 85: {lang: 0x9d, script: 0x52, flags: 0x0}, + 88: {lang: 0x9d, script: 0x52, flags: 0x0}, + 89: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 90: {lang: 0x1db, script: 0x52, flags: 0x0}, + 92: {lang: 0xf, script: 0x2, flags: 0x1}, + 93: {lang: 0x79, script: 0x52, flags: 0x0}, + 95: {lang: 0x85, script: 0x52, flags: 0x0}, + 97: {lang: 0x1, script: 0x52, flags: 0x0}, + 98: {lang: 0x80, script: 0x52, flags: 0x0}, + 100: {lang: 0x9d, script: 0x52, flags: 0x0}, + 102: {lang: 0x11, script: 0x2, flags: 0x1}, + 103: {lang: 0x9d, script: 0x52, flags: 0x0}, + 104: {lang: 0x9d, script: 0x52, flags: 0x0}, + 105: {lang: 0x9f, script: 0x52, flags: 0x0}, + 106: {lang: 0x15, script: 0x5, flags: 0x0}, + 107: {lang: 0x15, script: 0x5, flags: 0x0}, + 108: {lang: 0x261, script: 0x27, flags: 0x0}, + 109: {lang: 0x9d, script: 0x52, flags: 0x0}, + 110: {lang: 0x13, script: 0x2, flags: 0x1}, + 112: {lang: 0xa8, script: 0x52, flags: 0x0}, + 113: {lang: 0xe2, script: 0x20, flags: 0x2}, + 116: {lang: 0xad, script: 0x52, flags: 0x0}, + 118: {lang: 0xaf, script: 0x52, flags: 0x0}, + 120: {lang: 0xaf, script: 0x52, flags: 0x0}, + 121: {lang: 0x15, script: 0x2, flags: 0x1}, + 123: {lang: 0x17, script: 0x3, flags: 0x1}, + 124: {lang: 0xaf, script: 0x52, flags: 0x0}, + 126: {lang: 0xd, script: 0x52, flags: 0x0}, + 128: {lang: 0x131, script: 0x52, flags: 0x0}, + 130: {lang: 0xaf, script: 0x52, flags: 0x0}, + 131: {lang: 0xaf, script: 0x52, flags: 0x0}, + 132: {lang: 0x9d, script: 0x52, flags: 0x0}, + 133: {lang: 0x1a, script: 0x2, flags: 0x1}, + 134: {lang: 0x0, script: 0x52, flags: 0x0}, + 135: {lang: 0x9d, script: 0x52, flags: 0x0}, + 137: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 139: {lang: 0x2c4, script: 0x35, flags: 0x0}, + 140: {lang: 0x0, script: 0x52, flags: 0x0}, + 141: {lang: 0x9d, script: 0x52, flags: 0x0}, + 142: {lang: 0xee, script: 0x52, flags: 0x0}, + 143: {lang: 0xf1, script: 0x52, flags: 0x0}, + 144: {lang: 0xf2, script: 0x52, flags: 0x0}, + 146: {lang: 0x9d, script: 0x52, flags: 0x0}, + 147: {lang: 0x1c, script: 0x2, flags: 0x1}, + 149: {lang: 0xe0, script: 0x37, flags: 0x0}, + 151: {lang: 0x1e, script: 0x3, flags: 0x1}, + 153: {lang: 0x15, script: 0x5, flags: 0x0}, + 154: {lang: 0x21, script: 0x2, flags: 0x1}, + 155: {lang: 0x102, script: 0x52, flags: 0x0}, + 156: {lang: 0x103, script: 0x52, flags: 0x0}, + 159: {lang: 0x15, script: 0x5, flags: 0x0}, + 160: {lang: 0x107, script: 0x41, flags: 0x0}, + 162: {lang: 0x248, script: 0x52, flags: 0x0}, + 163: {lang: 0x14d, script: 0x1e, flags: 0x0}, + 164: {lang: 0x23, script: 0x3, flags: 0x1}, + 166: {lang: 0x26, script: 0x2, flags: 0x1}, + 168: {lang: 0x136, script: 0x4b, flags: 0x0}, + 169: {lang: 0x136, script: 0x4b, flags: 0x0}, + 170: {lang: 0x15, script: 0x5, flags: 0x0}, + 172: {lang: 0x207, script: 0x1e, flags: 0x0}, + 173: {lang: 0x28, script: 0x2, flags: 0x1}, + 174: {lang: 0x15, script: 0x5, flags: 0x0}, + 176: {lang: 0x85, script: 0x52, flags: 0x0}, + 177: {lang: 0x228, script: 0xc1, flags: 0x0}, + 179: {lang: 0x242, script: 0x52, flags: 0x0}, + 180: {lang: 0x169, script: 0x52, flags: 0x0}, + 181: {lang: 0xaf, script: 0x52, flags: 0x0}, + 182: {lang: 0x170, script: 0x52, flags: 0x0}, + 183: {lang: 0x15, script: 0x5, flags: 0x0}, + 184: {lang: 0x2a, script: 0x2, flags: 0x1}, + 185: {lang: 0xaf, script: 0x52, flags: 0x0}, + 186: {lang: 0x2c, script: 0x2, flags: 0x1}, + 187: {lang: 0x23b, script: 0x52, flags: 0x0}, + 188: {lang: 0xaf, script: 0x52, flags: 0x0}, + 189: {lang: 0x183, script: 0x52, flags: 0x0}, + 192: {lang: 0x2e, script: 0x2, flags: 0x1}, + 193: {lang: 0x49, script: 0x52, flags: 0x0}, + 194: {lang: 0x30, script: 0x2, flags: 0x1}, + 195: {lang: 0x32, script: 0x2, flags: 0x1}, + 196: {lang: 0x34, script: 0x2, flags: 0x1}, + 198: {lang: 0xaf, script: 0x52, flags: 0x0}, + 199: {lang: 0x36, script: 0x2, flags: 0x1}, + 201: {lang: 0x19b, script: 0x52, flags: 0x0}, + 202: {lang: 0x38, script: 0x3, flags: 0x1}, + 203: {lang: 0x90, script: 0xd4, flags: 0x0}, + 205: {lang: 0x9d, script: 0x52, flags: 0x0}, + 206: {lang: 0x19a, script: 0x52, flags: 0x0}, + 207: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 208: {lang: 0xa, script: 0x52, flags: 0x0}, + 209: {lang: 0xaf, script: 0x52, flags: 0x0}, + 210: {lang: 0xdc, script: 0x52, flags: 0x0}, + 212: {lang: 0xdc, script: 0x5, flags: 0x2}, + 214: {lang: 0x9d, script: 0x52, flags: 0x0}, + 215: {lang: 0x1bd, script: 0x52, flags: 0x0}, + 216: {lang: 0x1af, script: 0x52, flags: 0x0}, + 217: {lang: 0x1b4, script: 0x20, flags: 0x0}, + 223: {lang: 0x15, script: 0x5, flags: 0x0}, + 224: {lang: 0x9d, script: 0x52, flags: 0x0}, + 226: {lang: 0x9d, script: 0x52, flags: 0x0}, + 227: {lang: 0xaf, script: 0x52, flags: 0x0}, + 228: {lang: 0x26e, script: 0x52, flags: 0x0}, + 229: {lang: 0xaa, script: 0x52, flags: 0x0}, + 230: {lang: 0x3b, script: 0x3, flags: 0x1}, + 231: {lang: 0x3e, script: 0x2, flags: 0x1}, + 232: {lang: 0xaf, script: 0x52, flags: 0x0}, + 234: {lang: 0x9d, script: 0x52, flags: 0x0}, + 235: {lang: 0x15, script: 0x5, flags: 0x0}, + 236: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 238: {lang: 0x1dc, script: 0x52, flags: 0x0}, + 239: {lang: 0xca, script: 0x52, flags: 0x0}, + 241: {lang: 0x15, script: 0x5, flags: 0x0}, + 256: {lang: 0xaf, script: 0x52, flags: 0x0}, + 258: {lang: 0x40, script: 0x2, flags: 0x1}, + 259: {lang: 0x23b, script: 0x1e, flags: 0x0}, + 260: {lang: 0x42, script: 0x2, flags: 0x1}, + 261: {lang: 0x20a, script: 0x52, flags: 0x0}, + 262: {lang: 0x15, script: 0x5, flags: 0x0}, + 264: {lang: 0xaf, script: 0x52, flags: 0x0}, + 265: {lang: 0x15, script: 0x5, flags: 0x0}, + 266: {lang: 0x44, script: 0x2, flags: 0x1}, + 269: {lang: 0x22c, script: 0x52, flags: 0x0}, + 270: {lang: 0x1af, script: 0x52, flags: 0x0}, + 271: {lang: 0x46, script: 0x2, flags: 0x1}, + 273: {lang: 0x103, script: 0x52, flags: 0x0}, + 274: {lang: 0xaf, script: 0x52, flags: 0x0}, + 275: {lang: 0x238, script: 0x52, flags: 0x0}, + 276: {lang: 0x1bd, script: 0x52, flags: 0x0}, + 278: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 280: {lang: 0x9d, script: 0x52, flags: 0x0}, + 282: {lang: 0x48, script: 0x2, flags: 0x1}, + 286: {lang: 0xaf, script: 0x52, flags: 0x0}, + 287: {lang: 0xaf, script: 0x52, flags: 0x0}, + 288: {lang: 0xaf, script: 0x52, flags: 0x0}, + 289: {lang: 0x4a, script: 0x3, flags: 0x1}, + 290: {lang: 0x4d, script: 0x2, flags: 0x1}, + 291: {lang: 0x265, script: 0x52, flags: 0x0}, + 292: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 293: {lang: 0x264, script: 0x52, flags: 0x0}, + 294: {lang: 0x4f, script: 0x2, flags: 0x1}, + 295: {lang: 0x26c, script: 0x52, flags: 0x0}, + 297: {lang: 0x51, script: 0x4, flags: 0x1}, + 299: {lang: 0x27c, script: 0x52, flags: 0x0}, + 300: {lang: 0x55, script: 0x2, flags: 0x1}, + 301: {lang: 0x248, script: 0x52, flags: 0x0}, + 302: {lang: 0x57, script: 0x3, flags: 0x1}, + 303: {lang: 0x248, script: 0x52, flags: 0x0}, + 306: {lang: 0x2b9, script: 0x37, flags: 0x2}, + 307: {lang: 0x9d, script: 0x52, flags: 0x0}, + 308: {lang: 0x28d, script: 0x52, flags: 0x0}, + 309: {lang: 0x103, script: 0x52, flags: 0x0}, + 312: {lang: 0x9d, script: 0x52, flags: 0x0}, + 315: {lang: 0x292, script: 0x52, flags: 0x0}, + 316: {lang: 0x41, script: 0x52, flags: 0x0}, + 317: {lang: 0xaf, script: 0x52, flags: 0x0}, + 319: {lang: 0x22f, script: 0x52, flags: 0x0}, + 330: {lang: 0x5a, script: 0x2, flags: 0x1}, + 347: {lang: 0x15, script: 0x5, flags: 0x0}, + 348: {lang: 0x5c, script: 0x2, flags: 0x1}, + 353: {lang: 0x236, script: 0x52, flags: 0x0}, +} + +// likelyRegionList holds lists info associated with likelyRegion. +// Size: 376 bytes, 94 elements +var likelyRegionList = [94]likelyLangScript{ + 0: {lang: 0xa4, script: 0x5, flags: 0x0}, + 1: {lang: 0x264, script: 0x52, flags: 0x0}, + 2: {lang: 0x23a, script: 0x52, flags: 0x0}, + 3: {lang: 0x18c, script: 0x1e, flags: 0x0}, + 4: {lang: 0xf3, script: 0x8, flags: 0x0}, + 5: {lang: 0x145, script: 0x52, flags: 0x0}, + 6: {lang: 0x54, script: 0x52, flags: 0x0}, + 7: {lang: 0x23b, script: 0x1e, flags: 0x0}, + 8: {lang: 0x93, script: 0xd6, flags: 0x0}, + 9: {lang: 0x1b4, script: 0x20, flags: 0x0}, + 10: {lang: 0x2c4, script: 0x34, flags: 0x0}, + 11: {lang: 0x284, script: 0x5, flags: 0x0}, + 12: {lang: 0x2bd, script: 0x35, flags: 0x0}, + 13: {lang: 0x2be, script: 0x52, flags: 0x0}, + 14: {lang: 0x157, script: 0xd5, flags: 0x0}, + 15: {lang: 0x9a, script: 0x2d, flags: 0x0}, + 16: {lang: 0x26f, script: 0x52, flags: 0x0}, + 17: {lang: 0x15, script: 0x5, flags: 0x0}, + 18: {lang: 0xaf, script: 0x52, flags: 0x0}, + 19: {lang: 0x11, script: 0x27, flags: 0x0}, + 20: {lang: 0x9b, script: 0x52, flags: 0x0}, + 21: {lang: 0x141, script: 0x5, flags: 0x2}, + 22: {lang: 0x2b9, script: 0x37, flags: 0x2}, + 23: {lang: 0x111, script: 0x29, flags: 0x0}, + 24: {lang: 0x2, script: 0x1e, flags: 0x0}, + 25: {lang: 0x145, script: 0x52, flags: 0x0}, + 26: {lang: 0x9a, script: 0x2d, flags: 0x0}, + 27: {lang: 0x18c, script: 0x1e, flags: 0x0}, + 28: {lang: 0xf8, script: 0x52, flags: 0x0}, + 29: {lang: 0x19a, script: 0x5, flags: 0x0}, + 30: {lang: 0xe1, script: 0x20, flags: 0x0}, + 31: {lang: 0x28c, script: 0x5, flags: 0x0}, + 32: {lang: 0x129, script: 0x6b, flags: 0x0}, + 33: {lang: 0xa4, script: 0x5, flags: 0x0}, + 34: {lang: 0x264, script: 0x52, flags: 0x0}, + 35: {lang: 0x133, script: 0x46, flags: 0x0}, + 36: {lang: 0x6d, script: 0x5, flags: 0x0}, + 37: {lang: 0x11c, script: 0xd5, flags: 0x0}, + 38: {lang: 0x15, script: 0x5, flags: 0x0}, + 39: {lang: 0xaf, script: 0x52, flags: 0x0}, + 40: {lang: 0x165, script: 0x4f, flags: 0x0}, + 41: {lang: 0x11c, script: 0xd5, flags: 0x0}, + 42: {lang: 0x15, script: 0x5, flags: 0x0}, + 43: {lang: 0xaf, script: 0x52, flags: 0x0}, + 44: {lang: 0x203, script: 0x52, flags: 0x0}, + 45: {lang: 0x286, script: 0x1e, flags: 0x0}, + 46: {lang: 0x18c, script: 0x1e, flags: 0x0}, + 47: {lang: 0x23a, script: 0x52, flags: 0x0}, + 48: {lang: 0x1a5, script: 0x6b, flags: 0x0}, + 49: {lang: 0x114, script: 0x52, flags: 0x0}, + 50: {lang: 0x18f, script: 0x1e, flags: 0x0}, + 51: {lang: 0x12f, script: 0x5, flags: 0x0}, + 52: {lang: 0x2c4, script: 0x35, flags: 0x0}, + 53: {lang: 0x1ef, script: 0x52, flags: 0x0}, + 54: {lang: 0x15, script: 0x5, flags: 0x0}, + 55: {lang: 0xaf, script: 0x52, flags: 0x0}, + 56: {lang: 0x182, script: 0x52, flags: 0x0}, + 57: {lang: 0x28c, script: 0x5, flags: 0x0}, + 58: {lang: 0x40, script: 0x20, flags: 0x0}, + 59: {lang: 0x28c, script: 0x5, flags: 0x0}, + 60: {lang: 0x28c, script: 0x5, flags: 0x0}, + 61: {lang: 0x58, script: 0x20, flags: 0x0}, + 62: {lang: 0x1e7, script: 0x52, flags: 0x0}, + 63: {lang: 0x2f, script: 0x1e, flags: 0x0}, + 64: {lang: 0x203, script: 0x52, flags: 0x0}, + 65: {lang: 0x38, script: 0x1e, flags: 0x0}, + 66: {lang: 0x207, script: 0x1e, flags: 0x0}, + 67: {lang: 0x13f, script: 0x52, flags: 0x0}, + 68: {lang: 0x247, script: 0x52, flags: 0x0}, + 69: {lang: 0x2b9, script: 0x37, flags: 0x0}, + 70: {lang: 0x22a, script: 0x52, flags: 0x0}, + 71: {lang: 0x286, script: 0x1e, flags: 0x0}, + 72: {lang: 0x15, script: 0x5, flags: 0x0}, + 73: {lang: 0xaf, script: 0x52, flags: 0x0}, + 74: {lang: 0x25d, script: 0xd5, flags: 0x0}, + 75: {lang: 0x181, script: 0x5, flags: 0x0}, + 76: {lang: 0x191, script: 0x6b, flags: 0x0}, + 77: {lang: 0x25c, script: 0x1e, flags: 0x0}, + 78: {lang: 0xa4, script: 0x5, flags: 0x0}, + 79: {lang: 0x15, script: 0x5, flags: 0x0}, + 80: {lang: 0xaf, script: 0x52, flags: 0x0}, + 81: {lang: 0x26f, script: 0x52, flags: 0x0}, + 82: {lang: 0x24, script: 0x5, flags: 0x0}, + 83: {lang: 0x118, script: 0x1e, flags: 0x0}, + 84: {lang: 0x3b, script: 0x2d, flags: 0x0}, + 85: {lang: 0x2c4, script: 0x35, flags: 0x0}, + 86: {lang: 0x271, script: 0x52, flags: 0x0}, + 87: {lang: 0x286, script: 0x1e, flags: 0x0}, + 88: {lang: 0x2b9, script: 0x37, flags: 0x0}, + 89: {lang: 0x1e7, script: 0x52, flags: 0x0}, + 90: {lang: 0x23a, script: 0x52, flags: 0x0}, + 91: {lang: 0x23b, script: 0x1e, flags: 0x0}, + 92: {lang: 0xaf, script: 0x52, flags: 0x0}, + 93: {lang: 0x249, script: 0x5, flags: 0x0}, +} + +type likelyTag struct { + lang uint16 + region uint16 + script uint8 +} + +// Size: 192 bytes, 32 elements +var likelyRegionGroup = [32]likelyTag{ + 1: {lang: 0x9b, region: 0xd4, script: 0x52}, + 2: {lang: 0x9b, region: 0x132, script: 0x52}, + 3: {lang: 0x1ef, region: 0x40, script: 0x52}, + 4: {lang: 0x9b, region: 0x2e, script: 0x52}, + 5: {lang: 0x9b, region: 0xd4, script: 0x52}, + 6: {lang: 0x9d, region: 0xcd, script: 0x52}, + 7: {lang: 0x248, region: 0x12d, script: 0x52}, + 8: {lang: 0x15, region: 0x6a, script: 0x5}, + 9: {lang: 0x248, region: 0x4a, script: 0x52}, + 10: {lang: 0x9b, region: 0x15e, script: 0x52}, + 11: {lang: 0x9b, region: 0x132, script: 0x52}, + 12: {lang: 0x9b, region: 0x132, script: 0x52}, + 13: {lang: 0x9d, region: 0x58, script: 0x52}, + 14: {lang: 0x2c4, region: 0x52, script: 0x34}, + 15: {lang: 0xe1, region: 0x97, script: 0x20}, + 16: {lang: 0xf8, region: 0x93, script: 0x52}, + 17: {lang: 0x103, region: 0x9c, script: 0x52}, + 18: {lang: 0x9b, region: 0x2e, script: 0x52}, + 19: {lang: 0x9b, region: 0xe4, script: 0x52}, + 20: {lang: 0x9b, region: 0x88, script: 0x52}, + 21: {lang: 0x22f, region: 0x13f, script: 0x52}, + 22: {lang: 0x2c4, region: 0x52, script: 0x34}, + 23: {lang: 0x28d, region: 0x134, script: 0x52}, + 24: {lang: 0x15, region: 0x106, script: 0x5}, + 25: {lang: 0x207, region: 0x104, script: 0x1e}, + 26: {lang: 0x207, region: 0x104, script: 0x1e}, + 27: {lang: 0x9b, region: 0x79, script: 0x52}, + 28: {lang: 0x85, region: 0x5f, script: 0x52}, + 29: {lang: 0x9d, region: 0x1e, script: 0x52}, + 30: {lang: 0x9b, region: 0x98, script: 0x52}, + 31: {lang: 0x9b, region: 0x79, script: 0x52}, +} + +type mutualIntelligibility struct { + want uint16 + have uint16 + conf uint8 + oneway bool +} + +type scriptIntelligibility struct { + lang uint16 + want uint8 + have uint8 + conf uint8 +} + +// matchLang holds pairs of langIDs of base languages that are typically +// mutually intelligible. Each pair is associated with a confidence and +// whether the intelligibility goes one or both ways. +// Size: 708 bytes, 118 elements +var matchLang = [118]mutualIntelligibility{ + 0: {want: 0x1c1, have: 0x1af, conf: 0x2, oneway: false}, + 1: {want: 0x145, have: 0x6f, conf: 0x2, oneway: false}, + 2: {want: 0xee, have: 0x54, conf: 0x2, oneway: false}, + 3: {want: 0x225, have: 0x54, conf: 0x2, oneway: false}, + 4: {want: 0x23b, have: 0x54, conf: 0x2, oneway: false}, + 5: {want: 0x225, have: 0xee, conf: 0x2, oneway: false}, + 6: {want: 0x23b, have: 0xee, conf: 0x2, oneway: false}, + 7: {want: 0x225, have: 0x23b, conf: 0x2, oneway: false}, + 8: {want: 0x241, have: 0x1, conf: 0x2, oneway: false}, + 9: {want: 0xd2, have: 0x85, conf: 0x2, oneway: true}, + 10: {want: 0x154, have: 0x85, conf: 0x2, oneway: true}, + 11: {want: 0x80, have: 0x1c1, conf: 0x2, oneway: false}, + 12: {want: 0x80, have: 0x1af, conf: 0x2, oneway: false}, + 13: {want: 0x6f, have: 0x145, conf: 0x2, oneway: false}, + 14: {want: 0x2, have: 0x207, conf: 0x2, oneway: true}, + 15: {want: 0x5, have: 0x9b, conf: 0x2, oneway: true}, + 16: {want: 0xa, have: 0x1bd, conf: 0x2, oneway: true}, + 17: {want: 0xd, have: 0x9b, conf: 0x2, oneway: true}, + 18: {want: 0x23, have: 0x9d, conf: 0x2, oneway: true}, + 19: {want: 0x24, have: 0x207, conf: 0x2, oneway: true}, + 20: {want: 0x2f, have: 0x207, conf: 0x2, oneway: true}, + 21: {want: 0x31, have: 0x9b, conf: 0x2, oneway: true}, + 22: {want: 0x3c, have: 0xe1, conf: 0x2, oneway: true}, + 23: {want: 0x4b, have: 0x9b, conf: 0x2, oneway: true}, + 24: {want: 0x50, have: 0xaf, conf: 0x2, oneway: true}, + 25: {want: 0x65, have: 0xaa, conf: 0x2, oneway: true}, + 26: {want: 0x6c, have: 0x9b, conf: 0x2, oneway: true}, + 27: {want: 0x6f, have: 0x15, conf: 0x2, oneway: true}, + 28: {want: 0x70, have: 0xaf, conf: 0x2, oneway: true}, + 29: {want: 0x78, have: 0xaf, conf: 0x2, oneway: true}, + 30: {want: 0x7f, have: 0x9b, conf: 0x2, oneway: true}, + 31: {want: 0x95, have: 0x9b, conf: 0x2, oneway: true}, + 32: {want: 0x9c, have: 0x9b, conf: 0x2, oneway: true}, + 33: {want: 0x9f, have: 0xa8, conf: 0x2, oneway: true}, + 34: {want: 0xa1, have: 0x9d, conf: 0x2, oneway: true}, + 35: {want: 0xad, have: 0x80, conf: 0x2, oneway: true}, + 36: {want: 0xb9, have: 0x1bd, conf: 0x2, oneway: true}, + 37: {want: 0xba, have: 0x9b, conf: 0x2, oneway: true}, + 38: {want: 0xbb, have: 0x9b, conf: 0x2, oneway: true}, + 39: {want: 0xc2, have: 0x9b, conf: 0x2, oneway: true}, + 40: {want: 0xc8, have: 0x9d, conf: 0x2, oneway: true}, + 41: {want: 0xca, have: 0x9d, conf: 0x2, oneway: true}, + 42: {want: 0xd3, have: 0xe1, conf: 0x2, oneway: true}, + 43: {want: 0xdc, have: 0x9b, conf: 0x2, oneway: true}, + 44: {want: 0xde, have: 0x9b, conf: 0x2, oneway: true}, + 45: {want: 0xf1, have: 0xaf, conf: 0x2, oneway: true}, + 46: {want: 0xf3, have: 0x207, conf: 0x2, oneway: true}, + 47: {want: 0xf5, have: 0x9b, conf: 0x2, oneway: true}, + 48: {want: 0xfa, have: 0x9b, conf: 0x2, oneway: true}, + 49: {want: 0x102, have: 0x9b, conf: 0x2, oneway: true}, + 50: {want: 0x10f, have: 0xf8, conf: 0x2, oneway: true}, + 51: {want: 0x111, have: 0x9b, conf: 0x2, oneway: true}, + 52: {want: 0x122, have: 0xaf, conf: 0x2, oneway: true}, + 53: {want: 0x12f, have: 0x207, conf: 0x2, oneway: true}, + 54: {want: 0x133, have: 0x9b, conf: 0x2, oneway: true}, + 55: {want: 0x135, have: 0x9b, conf: 0x2, oneway: true}, + 56: {want: 0x13d, have: 0x9b, conf: 0x2, oneway: true}, + 57: {want: 0x145, have: 0x26f, conf: 0x2, oneway: true}, + 58: {want: 0x14d, have: 0x207, conf: 0x2, oneway: true}, + 59: {want: 0x14e, have: 0x103, conf: 0x2, oneway: true}, + 60: {want: 0x15a, have: 0x9b, conf: 0x2, oneway: true}, + 61: {want: 0x164, have: 0xaf, conf: 0x2, oneway: true}, + 62: {want: 0x165, have: 0x9b, conf: 0x2, oneway: true}, + 63: {want: 0x167, have: 0x9b, conf: 0x2, oneway: true}, + 64: {want: 0x16c, have: 0xaf, conf: 0x2, oneway: true}, + 65: {want: 0x182, have: 0x9b, conf: 0x2, oneway: true}, + 66: {want: 0x183, have: 0xaf, conf: 0x2, oneway: true}, + 67: {want: 0x189, have: 0x9b, conf: 0x2, oneway: true}, + 68: {want: 0x18c, have: 0x38, conf: 0x2, oneway: true}, + 69: {want: 0x18d, have: 0x9b, conf: 0x2, oneway: true}, + 70: {want: 0x18f, have: 0x207, conf: 0x2, oneway: true}, + 71: {want: 0x196, have: 0xe1, conf: 0x2, oneway: true}, + 72: {want: 0x19a, have: 0xf8, conf: 0x2, oneway: true}, + 73: {want: 0x19b, have: 0x9b, conf: 0x2, oneway: true}, + 74: {want: 0x1a5, have: 0x9b, conf: 0x2, oneway: true}, + 75: {want: 0x1b4, have: 0x9b, conf: 0x2, oneway: true}, + 76: {want: 0x1bf, have: 0x1af, conf: 0x2, oneway: false}, + 77: {want: 0x1bf, have: 0x1c1, conf: 0x2, oneway: true}, + 78: {want: 0x1c8, have: 0x9b, conf: 0x2, oneway: true}, + 79: {want: 0x1cc, have: 0x9b, conf: 0x2, oneway: true}, + 80: {want: 0x1ce, have: 0x9b, conf: 0x2, oneway: true}, + 81: {want: 0x1d0, have: 0xaf, conf: 0x2, oneway: true}, + 82: {want: 0x1d2, have: 0x9b, conf: 0x2, oneway: true}, + 83: {want: 0x1d3, have: 0x9b, conf: 0x2, oneway: true}, + 84: {want: 0x1d7, have: 0x9b, conf: 0x2, oneway: true}, + 85: {want: 0x1de, have: 0x9b, conf: 0x2, oneway: true}, + 86: {want: 0x1ee, have: 0x9b, conf: 0x2, oneway: true}, + 87: {want: 0x1f1, have: 0x9d, conf: 0x2, oneway: true}, + 88: {want: 0x1fc, have: 0x85, conf: 0x2, oneway: true}, + 89: {want: 0x201, have: 0x9b, conf: 0x2, oneway: true}, + 90: {want: 0x20a, have: 0xaf, conf: 0x2, oneway: true}, + 91: {want: 0x20d, have: 0xe1, conf: 0x2, oneway: true}, + 92: {want: 0x21a, have: 0x9b, conf: 0x2, oneway: true}, + 93: {want: 0x228, have: 0x9b, conf: 0x2, oneway: true}, + 94: {want: 0x236, have: 0x9b, conf: 0x2, oneway: true}, + 95: {want: 0x238, have: 0x9b, conf: 0x2, oneway: true}, + 96: {want: 0x23a, have: 0x9b, conf: 0x2, oneway: true}, + 97: {want: 0x242, have: 0x9b, conf: 0x2, oneway: true}, + 98: {want: 0x244, have: 0xf8, conf: 0x2, oneway: true}, + 99: {want: 0x248, have: 0x9b, conf: 0x2, oneway: true}, + 100: {want: 0x251, have: 0x9b, conf: 0x2, oneway: true}, + 101: {want: 0x258, have: 0x9b, conf: 0x2, oneway: true}, + 102: {want: 0x25c, have: 0x207, conf: 0x2, oneway: true}, + 103: {want: 0x261, have: 0x9b, conf: 0x2, oneway: true}, + 104: {want: 0x264, have: 0x207, conf: 0x2, oneway: true}, + 105: {want: 0x361a, have: 0x9b, conf: 0x2, oneway: true}, + 106: {want: 0x26b, have: 0x9b, conf: 0x2, oneway: true}, + 107: {want: 0x26c, have: 0x9b, conf: 0x2, oneway: true}, + 108: {want: 0x277, have: 0x207, conf: 0x2, oneway: true}, + 109: {want: 0x27b, have: 0x9b, conf: 0x2, oneway: true}, + 110: {want: 0x284, have: 0x2c4, conf: 0x2, oneway: true}, + 111: {want: 0x28c, have: 0x9b, conf: 0x2, oneway: true}, + 112: {want: 0x28d, have: 0x207, conf: 0x2, oneway: true}, + 113: {want: 0x2a4, have: 0xaf, conf: 0x2, oneway: true}, + 114: {want: 0x2a9, have: 0x9b, conf: 0x2, oneway: true}, + 115: {want: 0x2b9, have: 0x9b, conf: 0x2, oneway: true}, + 116: {want: 0x2ba, have: 0x9b, conf: 0x2, oneway: true}, + 117: {want: 0x2c6, have: 0x9b, conf: 0x2, oneway: true}, +} + +// matchScript holds pairs of scriptIDs where readers of one script +// can typically also read the other. Each is associated with a confidence. +// Size: 24 bytes, 4 elements +var matchScript = [4]scriptIntelligibility{ + 0: {lang: 0x23b, want: 0x52, have: 0x1e, conf: 0x2}, + 1: {lang: 0x23b, want: 0x1e, have: 0x52, conf: 0x2}, + 2: {lang: 0x0, want: 0x34, have: 0x35, conf: 0x1}, + 3: {lang: 0x0, want: 0x35, have: 0x34, conf: 0x1}, +} + +// Size: 128 bytes, 32 elements +var regionContainment = [32]uint32{ + 0xffffffff, 0x000007a2, 0x00003044, 0x00000008, + 0x403c0010, 0x00000020, 0x00000040, 0x00000080, + 0x00000100, 0x00000200, 0x00000400, 0x2000384c, + 0x00001000, 0x00002000, 0x00004000, 0x00008000, + 0x00010000, 0x00020000, 0x00040000, 0x00080000, + 0x00100000, 0x00200000, 0x01c1c000, 0x00800000, + 0x01000000, 0x1e020000, 0x04000000, 0x08000000, + 0x10000000, 0x20002048, 0x40000000, 0x80000000, +} + +// regionInclusion maps region identifiers to sets of regions in regionInclusionBits, +// where each set holds all groupings that are directly connected in a region +// containment graph. +// Size: 355 bytes, 355 elements +var regionInclusion = [355]uint8{ + // Entry 0 - 3F + 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x25, 0x22, 0x23, + 0x25, 0x26, 0x21, 0x27, 0x28, 0x29, 0x2a, 0x25, + 0x2b, 0x23, 0x22, 0x25, 0x24, 0x29, 0x2c, 0x2d, + 0x23, 0x2e, 0x2c, 0x25, 0x2f, 0x30, 0x27, 0x25, + // Entry 40 - 7F + 0x27, 0x25, 0x24, 0x30, 0x21, 0x31, 0x32, 0x33, + 0x2f, 0x21, 0x26, 0x26, 0x26, 0x34, 0x2c, 0x28, + 0x27, 0x26, 0x35, 0x27, 0x21, 0x33, 0x22, 0x20, + 0x25, 0x2c, 0x25, 0x21, 0x36, 0x2d, 0x34, 0x29, + 0x21, 0x2e, 0x37, 0x25, 0x25, 0x20, 0x38, 0x38, + 0x27, 0x37, 0x38, 0x38, 0x2e, 0x39, 0x2e, 0x1f, + 0x37, 0x3a, 0x27, 0x3b, 0x2b, 0x20, 0x29, 0x34, + 0x26, 0x37, 0x25, 0x23, 0x27, 0x2b, 0x2c, 0x22, + // Entry 80 - BF + 0x2f, 0x2c, 0x2c, 0x25, 0x26, 0x39, 0x21, 0x33, + 0x3b, 0x2c, 0x27, 0x35, 0x21, 0x33, 0x39, 0x25, + 0x2d, 0x20, 0x38, 0x30, 0x37, 0x23, 0x2b, 0x24, + 0x21, 0x23, 0x24, 0x2b, 0x39, 0x2b, 0x25, 0x23, + 0x35, 0x20, 0x2e, 0x3c, 0x30, 0x3b, 0x2e, 0x25, + 0x35, 0x35, 0x23, 0x25, 0x3c, 0x30, 0x23, 0x25, + 0x34, 0x24, 0x2c, 0x31, 0x37, 0x29, 0x37, 0x38, + 0x38, 0x34, 0x32, 0x22, 0x25, 0x2e, 0x3b, 0x20, + // Entry C0 - FF + 0x22, 0x2c, 0x30, 0x35, 0x35, 0x3b, 0x25, 0x2c, + 0x25, 0x39, 0x2e, 0x24, 0x2e, 0x33, 0x30, 0x2e, + 0x31, 0x3a, 0x2c, 0x2a, 0x2c, 0x20, 0x33, 0x29, + 0x2b, 0x24, 0x20, 0x3b, 0x23, 0x28, 0x2a, 0x23, + 0x33, 0x20, 0x27, 0x28, 0x3a, 0x30, 0x24, 0x2d, + 0x2f, 0x28, 0x25, 0x23, 0x39, 0x20, 0x3b, 0x27, + 0x20, 0x23, 0x20, 0x20, 0x1e, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + // Entry 100 - 13F + 0x2e, 0x20, 0x2d, 0x22, 0x32, 0x2e, 0x23, 0x3a, + 0x2e, 0x38, 0x37, 0x30, 0x2c, 0x39, 0x2b, 0x2d, + 0x2c, 0x22, 0x2c, 0x2e, 0x27, 0x2e, 0x26, 0x32, + 0x33, 0x25, 0x23, 0x31, 0x21, 0x25, 0x26, 0x21, + 0x2c, 0x30, 0x3c, 0x28, 0x30, 0x3c, 0x38, 0x28, + 0x30, 0x23, 0x25, 0x28, 0x35, 0x2e, 0x32, 0x2e, + 0x20, 0x21, 0x2f, 0x27, 0x3c, 0x22, 0x25, 0x20, + 0x27, 0x25, 0x25, 0x30, 0x3a, 0x28, 0x20, 0x28, + // Entry 140 - 17F + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x23, 0x23, 0x2e, 0x22, 0x31, 0x2e, + 0x26, 0x2e, 0x20, +} + +// regionInclusionBits is an array of bit vectors where every vector represents +// a set of region groupings. These sets are used to compute the distance +// between two regions for the purpose of language matching. +// Size: 288 bytes, 72 elements +var regionInclusionBits = [72]uint32{ + // Entry 0 - 1F + 0x82400813, 0x000007a3, 0x00003844, 0x20000808, + 0x403c0011, 0x00000022, 0x20000844, 0x00000082, + 0x00000102, 0x00000202, 0x00000402, 0x2000384d, + 0x00001804, 0x20002804, 0x00404000, 0x00408000, + 0x00410000, 0x02020000, 0x00040010, 0x00080010, + 0x00100010, 0x00200010, 0x01c1c001, 0x00c00000, + 0x01400000, 0x1e020001, 0x06000000, 0x0a000000, + 0x12000000, 0x20002848, 0x40000010, 0x80000001, + // Entry 20 - 3F + 0x00000001, 0x40000000, 0x00020000, 0x01000000, + 0x00008000, 0x00002000, 0x00000200, 0x00000008, + 0x00200000, 0x90000000, 0x00040000, 0x08000000, + 0x00000020, 0x84000000, 0x00000080, 0x00001000, + 0x00010000, 0x00000400, 0x04000000, 0x00000040, + 0x10000000, 0x00004000, 0x81000000, 0x88000000, + 0x00000100, 0x80020000, 0x00080000, 0x00100000, + 0x00800000, 0xffffffff, 0x82400fb3, 0xc27c0813, + // Entry 40 - 5F + 0xa240385f, 0x83c1c813, 0x9e420813, 0x92000001, + 0x86000001, 0x81400001, 0x8a000001, 0x82020001, +} + +// regionInclusionNext marks, for each entry in regionInclusionBits, the set of +// all groups that are reachable from the groups set in the respective entry. +// Size: 72 bytes, 72 elements +var regionInclusionNext = [72]uint8{ + // Entry 0 - 3F + 0x3d, 0x3e, 0x0b, 0x0b, 0x3f, 0x01, 0x0b, 0x01, + 0x01, 0x01, 0x01, 0x40, 0x0b, 0x0b, 0x16, 0x16, + 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x41, 0x16, + 0x16, 0x42, 0x19, 0x19, 0x19, 0x0b, 0x04, 0x00, + 0x00, 0x1e, 0x11, 0x18, 0x0f, 0x0d, 0x09, 0x03, + 0x15, 0x43, 0x12, 0x1b, 0x05, 0x44, 0x07, 0x0c, + 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x45, 0x46, + 0x08, 0x47, 0x13, 0x14, 0x17, 0x3d, 0x3d, 0x3d, + // Entry 40 - 7F + 0x3d, 0x3d, 0x3d, 0x42, 0x42, 0x41, 0x42, 0x42, +} + +type parentRel struct { + lang uint16 + script uint8 + maxScript uint8 + toRegion uint16 + fromRegion []uint16 +} + +// Size: 412 bytes, 5 elements +var parents = [5]parentRel{ + 0: {lang: 0x9b, script: 0x0, maxScript: 0x52, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x24, 0x25, 0x2e, 0x33, 0x35, 0x3c, 0x41, 0x45, 0x47, 0x48, 0x49, 0x4f, 0x51, 0x5b, 0x5c, 0x60, 0x63, 0x6c, 0x71, 0x72, 0x73, 0x79, 0x7a, 0x7d, 0x7e, 0x7f, 0x81, 0x8a, 0x8b, 0x94, 0x95, 0x96, 0x97, 0x98, 0x9d, 0x9e, 0xa2, 0xa5, 0xa7, 0xab, 0xaf, 0xb2, 0xb3, 0xbd, 0xc4, 0xc8, 0xc9, 0xca, 0xcc, 0xce, 0xd0, 0xd3, 0xd4, 0xdb, 0xdd, 0xde, 0xe4, 0xe5, 0xe6, 0xe9, 0xee, 0x105, 0x107, 0x108, 0x109, 0x10b, 0x10c, 0x110, 0x115, 0x119, 0x11b, 0x11d, 0x123, 0x127, 0x12a, 0x12b, 0x12d, 0x12f, 0x136, 0x139, 0x13c, 0x13f, 0x15e, 0x15f, 0x161}}, + 1: {lang: 0x9b, script: 0x0, maxScript: 0x52, toRegion: 0x1a, fromRegion: []uint16{0x2d, 0x4d, 0x5f, 0x62, 0x70, 0xd7, 0x10a, 0x10d}}, + 2: {lang: 0x9d, script: 0x0, maxScript: 0x52, toRegion: 0x1e, fromRegion: []uint16{0x2b, 0x3e, 0x40, 0x50, 0x53, 0x55, 0x58, 0x64, 0x68, 0x87, 0x8d, 0xcd, 0xd6, 0xe0, 0xe2, 0xea, 0xef, 0x118, 0x132, 0x133, 0x138}}, + 3: {lang: 0x1ef, script: 0x0, maxScript: 0x52, toRegion: 0xec, fromRegion: []uint16{0x29, 0x4d, 0x59, 0x84, 0x89, 0xb5, 0xc4, 0xcf, 0x116, 0x124}}, + 4: {lang: 0x2c4, script: 0x35, maxScript: 0x35, toRegion: 0x8b, fromRegion: []uint16{0xc4}}, +} + +// Total table size 20315 bytes (19KiB); checksum: C16EF251 diff --git a/vendor/golang.org/x/text/language/tags.go b/vendor/golang.org/x/text/language/tags.go new file mode 100644 index 00000000..de30155a --- /dev/null +++ b/vendor/golang.org/x/text/language/tags.go @@ -0,0 +1,143 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package language + +// TODO: Various sets of commonly use tags and regions. + +// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. +// It simplifies safe initialization of Tag values. +func MustParse(s string) Tag { + t, err := Parse(s) + if err != nil { + panic(err) + } + return t +} + +// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed. +// It simplifies safe initialization of Tag values. +func (c CanonType) MustParse(s string) Tag { + t, err := c.Parse(s) + if err != nil { + panic(err) + } + return t +} + +// MustParseBase is like ParseBase, but panics if the given base cannot be parsed. +// It simplifies safe initialization of Base values. +func MustParseBase(s string) Base { + b, err := ParseBase(s) + if err != nil { + panic(err) + } + return b +} + +// MustParseScript is like ParseScript, but panics if the given script cannot be +// parsed. It simplifies safe initialization of Script values. +func MustParseScript(s string) Script { + scr, err := ParseScript(s) + if err != nil { + panic(err) + } + return scr +} + +// MustParseRegion is like ParseRegion, but panics if the given region cannot be +// parsed. It simplifies safe initialization of Region values. +func MustParseRegion(s string) Region { + r, err := ParseRegion(s) + if err != nil { + panic(err) + } + return r +} + +var ( + und = Tag{} + + Und Tag = Tag{} + + Afrikaans Tag = Tag{lang: _af} // af + Amharic Tag = Tag{lang: _am} // am + Arabic Tag = Tag{lang: _ar} // ar + ModernStandardArabic Tag = Tag{lang: _ar, region: _001} // ar-001 + Azerbaijani Tag = Tag{lang: _az} // az + Bulgarian Tag = Tag{lang: _bg} // bg + Bengali Tag = Tag{lang: _bn} // bn + Catalan Tag = Tag{lang: _ca} // ca + Czech Tag = Tag{lang: _cs} // cs + Danish Tag = Tag{lang: _da} // da + German Tag = Tag{lang: _de} // de + Greek Tag = Tag{lang: _el} // el + English Tag = Tag{lang: _en} // en + AmericanEnglish Tag = Tag{lang: _en, region: _US} // en-US + BritishEnglish Tag = Tag{lang: _en, region: _GB} // en-GB + Spanish Tag = Tag{lang: _es} // es + EuropeanSpanish Tag = Tag{lang: _es, region: _ES} // es-ES + LatinAmericanSpanish Tag = Tag{lang: _es, region: _419} // es-419 + Estonian Tag = Tag{lang: _et} // et + Persian Tag = Tag{lang: _fa} // fa + Finnish Tag = Tag{lang: _fi} // fi + Filipino Tag = Tag{lang: _fil} // fil + French Tag = Tag{lang: _fr} // fr + CanadianFrench Tag = Tag{lang: _fr, region: _CA} // fr-CA + Gujarati Tag = Tag{lang: _gu} // gu + Hebrew Tag = Tag{lang: _he} // he + Hindi Tag = Tag{lang: _hi} // hi + Croatian Tag = Tag{lang: _hr} // hr + Hungarian Tag = Tag{lang: _hu} // hu + Armenian Tag = Tag{lang: _hy} // hy + Indonesian Tag = Tag{lang: _id} // id + Icelandic Tag = Tag{lang: _is} // is + Italian Tag = Tag{lang: _it} // it + Japanese Tag = Tag{lang: _ja} // ja + Georgian Tag = Tag{lang: _ka} // ka + Kazakh Tag = Tag{lang: _kk} // kk + Khmer Tag = Tag{lang: _km} // km + Kannada Tag = Tag{lang: _kn} // kn + Korean Tag = Tag{lang: _ko} // ko + Kirghiz Tag = Tag{lang: _ky} // ky + Lao Tag = Tag{lang: _lo} // lo + Lithuanian Tag = Tag{lang: _lt} // lt + Latvian Tag = Tag{lang: _lv} // lv + Macedonian Tag = Tag{lang: _mk} // mk + Malayalam Tag = Tag{lang: _ml} // ml + Mongolian Tag = Tag{lang: _mn} // mn + Marathi Tag = Tag{lang: _mr} // mr + Malay Tag = Tag{lang: _ms} // ms + Burmese Tag = Tag{lang: _my} // my + Nepali Tag = Tag{lang: _ne} // ne + Dutch Tag = Tag{lang: _nl} // nl + Norwegian Tag = Tag{lang: _no} // no + Punjabi Tag = Tag{lang: _pa} // pa + Polish Tag = Tag{lang: _pl} // pl + Portuguese Tag = Tag{lang: _pt} // pt + BrazilianPortuguese Tag = Tag{lang: _pt, region: _BR} // pt-BR + EuropeanPortuguese Tag = Tag{lang: _pt, region: _PT} // pt-PT + Romanian Tag = Tag{lang: _ro} // ro + Russian Tag = Tag{lang: _ru} // ru + Sinhala Tag = Tag{lang: _si} // si + Slovak Tag = Tag{lang: _sk} // sk + Slovenian Tag = Tag{lang: _sl} // sl + Albanian Tag = Tag{lang: _sq} // sq + Serbian Tag = Tag{lang: _sr} // sr + SerbianLatin Tag = Tag{lang: _sr, script: _Latn} // sr-Latn + Swedish Tag = Tag{lang: _sv} // sv + Swahili Tag = Tag{lang: _sw} // sw + Tamil Tag = Tag{lang: _ta} // ta + Telugu Tag = Tag{lang: _te} // te + Thai Tag = Tag{lang: _th} // th + Turkish Tag = Tag{lang: _tr} // tr + Ukrainian Tag = Tag{lang: _uk} // uk + Urdu Tag = Tag{lang: _ur} // ur + Uzbek Tag = Tag{lang: _uz} // uz + Vietnamese Tag = Tag{lang: _vi} // vi + Chinese Tag = Tag{lang: _zh} // zh + SimplifiedChinese Tag = Tag{lang: _zh, script: _Hans} // zh-Hans + TraditionalChinese Tag = Tag{lang: _zh, script: _Hant} // zh-Hant + Zulu Tag = Tag{lang: _zu} // zu +) diff --git a/vendor/golang.org/x/text/message/catalog.go b/vendor/golang.org/x/text/message/catalog.go new file mode 100644 index 00000000..41c31f4c --- /dev/null +++ b/vendor/golang.org/x/text/message/catalog.go @@ -0,0 +1,113 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package message + +// TODO: some types in this file will need to be made public at some time. +// Documentation and method names will reflect this by using the exported name. + +import ( + "sync" + + "golang.org/x/text/internal" + "golang.org/x/text/internal/format" + "golang.org/x/text/language" +) + +// DefaultCatalog is used by SetString. +var DefaultCatalog *Catalog = newCatalog() + +// SetString calls SetString on the default Catalog. +func SetString(tag language.Tag, key string, msg string) error { + return DefaultCatalog.SetString(tag, key, msg) +} + +// TODO: +// // SetSelect is a shorthand for DefaultCatalog.SetSelect. +// func SetSelect(tag language.Tag, key string, s ...format.Statement) error { +// return DefaultCatalog.SetSelect(tag, key, s...) +// } + +type msgMap map[string]format.Statement + +// A Catalog holds translations for messages for supported languages. +type Catalog struct { + index map[language.Tag]msgMap + + mutex sync.Mutex // For locking all operations. +} + +// Printer creates a Printer that uses c. +func (c *Catalog) Printer(tag language.Tag) *Printer { + // TODO: pre-create indexes for tag lookup. + return &Printer{ + tag: tag, + cat: c, + } +} + +// NewCatalog returns a new Catalog. If a message is not present in a Catalog, +// the fallback Catalogs will be used in order as an alternative source. +func newCatalog(fallback ...*Catalog) *Catalog { + // TODO: implement fallback. + return &Catalog{ + index: map[language.Tag]msgMap{}, + } +} + +// Languages returns a slice of all languages for which the Catalog contains +// variants. +func (c *Catalog) Languages() []language.Tag { + c.mutex.Lock() + defer c.mutex.Unlock() + + tags := []language.Tag{} + for t, _ := range c.index { + tags = append(tags, t) + } + internal.SortTags(tags) + return tags +} + +// SetString sets the translation for the given language and key. +func (c *Catalog) SetString(tag language.Tag, key string, msg string) error { + return c.set(tag, key, format.String(msg)) +} + +func (c *Catalog) get(tag language.Tag, key string) (msg string, ok bool) { + c.mutex.Lock() + defer c.mutex.Unlock() + + for ; ; tag = tag.Parent() { + if msgs, ok := c.index[tag]; ok { + if statement, ok := msgs[key]; ok { + // TODO: use type switches when we implement selecting. + msg := string(statement.(format.String)) + return msg, true + } + } + if tag == language.Und { + break + } + } + return "", false +} + +func (c *Catalog) set(tag language.Tag, key string, s ...format.Statement) error { + if len(s) != 1 { + // TODO: handle errors properly when we process statement sequences. + panic("statement sequence should be of length 1") + } + + c.mutex.Lock() + defer c.mutex.Unlock() + + m := c.index[tag] + if m == nil { + m = map[string]format.Statement{} + c.index[tag] = m + } + m[key] = s[0] + return nil +} diff --git a/vendor/golang.org/x/text/message/catalog_test.go b/vendor/golang.org/x/text/message/catalog_test.go new file mode 100644 index 00000000..3b693c95 --- /dev/null +++ b/vendor/golang.org/x/text/message/catalog_test.go @@ -0,0 +1,98 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package message + +import ( + "reflect" + "testing" + + "golang.org/x/text/internal" + "golang.org/x/text/language" +) + +type entry struct{ tag, key, msg string } + +var testCases = []struct { + desc string + cat []entry + lookup []entry +}{{ + desc: "empty catalog", + lookup: []entry{ + {"en", "key", ""}, + {"en", "", ""}, + {"nl", "", ""}, + }, +}, { + desc: "one entry", + cat: []entry{ + {"en", "hello", "Hello!"}, + }, + lookup: []entry{ + {"und", "hello", ""}, + {"nl", "hello", ""}, + {"en", "hello", "Hello!"}, + {"en-US", "hello", "Hello!"}, + {"en-GB", "hello", "Hello!"}, + {"en-oxendict", "hello", "Hello!"}, + {"en-oxendict-u-ms-metric", "hello", "Hello!"}, + }, +}, { + desc: "hierarchical languages", + cat: []entry{ + {"en", "hello", "Hello!"}, + {"en-GB", "hello", "Hellø!"}, + {"en-US", "hello", "Howdy!"}, + {"en", "greetings", "Greetings!"}, + }, + lookup: []entry{ + {"und", "hello", ""}, + {"nl", "hello", ""}, + {"en", "hello", "Hello!"}, + {"en-US", "hello", "Howdy!"}, + {"en-GB", "hello", "Hellø!"}, + {"en-oxendict", "hello", "Hello!"}, + {"en-US-oxendict-u-ms-metric", "hello", "Howdy!"}, + + {"und", "greetings", ""}, + {"nl", "greetings", ""}, + {"en", "greetings", "Greetings!"}, + {"en-US", "greetings", "Greetings!"}, + {"en-GB", "greetings", "Greetings!"}, + {"en-oxendict", "greetings", "Greetings!"}, + {"en-US-oxendict-u-ms-metric", "greetings", "Greetings!"}, + }, +}} + +func initCat(entries []entry) (*Catalog, []language.Tag) { + tags := []language.Tag{} + cat := newCatalog() + for _, e := range entries { + tag := language.MustParse(e.tag) + tags = append(tags, tag) + cat.SetString(tag, e.key, e.msg) + } + return cat, internal.UniqueTags(tags) +} + +func TestCatalog(t *testing.T) { + for _, tc := range testCases { + cat, wantTags := initCat(tc.cat) + + // languages + if got := cat.Languages(); !reflect.DeepEqual(got, wantTags) { + t.Errorf("%s:Languages: got %v; want %v", tc.desc, got, wantTags) + } + + // Lookup + for _, e := range tc.lookup { + tag := language.MustParse(e.tag) + msg, ok := cat.get(tag, e.key) + if okWant := e.msg != ""; ok != okWant || msg != e.msg { + t.Errorf("%s:Lookup(%s, %s) = %s, %v; want %s, %v", tc.desc, tag, e.key, msg, ok, e.msg, okWant) + } + } + } +} diff --git a/vendor/golang.org/x/text/message/message.go b/vendor/golang.org/x/text/message/message.go new file mode 100644 index 00000000..32ff3ef9 --- /dev/null +++ b/vendor/golang.org/x/text/message/message.go @@ -0,0 +1,185 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package message implements formatted I/O for localized strings with functions +// analogous to the fmt's print functions. +// +// NOTE: Under construction. See https://golang.org/design/12750-localization +// and its corresponding proposal issue https://golang.org/issues/12750. +package message // import "golang.org/x/text/message" + +import ( + "fmt" + "io" + "strings" + + "golang.org/x/text/internal/format" + "golang.org/x/text/language" +) + +// A Printer implements language-specific formatted I/O analogous to the fmt +// package. Only one goroutine may use a Printer at the same time. +type Printer struct { + tag language.Tag + + cat *Catalog + + // NOTE: limiting one goroutine per Printer allows for many optimizations + // and simplifications. We can consider removing this restriction down the + // road if it the benefits do not seem to outweigh the disadvantages. +} + +// NewPrinter returns a Printer that formats messages tailored to language t. +func NewPrinter(t language.Tag) *Printer { + return DefaultCatalog.Printer(t) +} + +// Sprint is like fmt.Sprint, but using language-specific formatting. +func (p *Printer) Sprint(a ...interface{}) string { + return fmt.Sprint(p.bindArgs(a)...) +} + +// Fprint is like fmt.Fprint, but using language-specific formatting. +func (p *Printer) Fprint(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprint(w, p.bindArgs(a)...) +} + +// Print is like fmt.Print, but using language-specific formatting. +func (p *Printer) Print(a ...interface{}) (n int, err error) { + return fmt.Print(p.bindArgs(a)...) +} + +// Sprintln is like fmt.Sprintln, but using language-specific formatting. +func (p *Printer) Sprintln(a ...interface{}) string { + return fmt.Sprintln(p.bindArgs(a)...) +} + +// Fprintln is like fmt.Fprintln, but using language-specific formatting. +func (p *Printer) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, p.bindArgs(a)...) +} + +// Println is like fmt.Println, but using language-specific formatting. +func (p *Printer) Println(a ...interface{}) (n int, err error) { + return fmt.Println(p.bindArgs(a)...) +} + +// Sprintf is like fmt.Sprintf, but using language-specific formatting. +func (p *Printer) Sprintf(key Reference, a ...interface{}) string { + msg, hasSub := p.lookup(key) + if !hasSub { + return fmt.Sprintf(msg) // work around limitation of fmt + } + return fmt.Sprintf(msg, p.bindArgs(a)...) +} + +// Fprintf is like fmt.Fprintf, but using language-specific formatting. +func (p *Printer) Fprintf(w io.Writer, key Reference, a ...interface{}) (n int, err error) { + msg, hasSub := p.lookup(key) + if !hasSub { + return fmt.Fprintf(w, msg) // work around limitation of fmt + } + return fmt.Fprintf(w, msg, p.bindArgs(a)...) +} + +// Printf is like fmt.Printf, but using language-specific formatting. +func (p *Printer) Printf(key Reference, a ...interface{}) (n int, err error) { + msg, hasSub := p.lookup(key) + if !hasSub { + return fmt.Printf(msg) // work around limitation of fmt + } + return fmt.Printf(msg, p.bindArgs(a)...) +} + +func (p *Printer) lookup(r Reference) (msg string, hasSub bool) { + var id string + switch v := r.(type) { + case string: + id, msg = v, v + case key: + id, msg = v.id, v.fallback + default: + panic("key argument is not a Reference") + } + if s, ok := p.cat.get(p.tag, id); ok { + msg = s + } + // fmt does not allow all arguments to be dropped in a format string. It + // only allows arguments to be dropped if at least one of the substitutions + // uses the positional marker (e.g. %[1]s). This hack works around this. + // TODO: This is only an approximation of the parsing of substitution + // patterns. Make more precise once we know if we can get by with fmt's + // formatting, which may not be the case. + for i := 0; i < len(msg)-1; i++ { + if msg[i] == '%' { + for i++; i < len(msg); i++ { + if strings.IndexByte("[]#+- *01234567890.", msg[i]) < 0 { + break + } + } + if i < len(msg) && msg[i] != '%' { + hasSub = true + break + } + } + } + return msg, hasSub +} + +// A Reference is a string or a message reference. +type Reference interface { +} + +// Key creates a message Reference for a message where the given id is used for +// message lookup and the fallback is returned when no matches are found. +func Key(id string, fallback string) Reference { + return key{id, fallback} +} + +type key struct { + id, fallback string +} + +// bindArgs wraps arguments with implementation of fmt.Formatter, if needed. +func (p *Printer) bindArgs(a []interface{}) []interface{} { + out := make([]interface{}, len(a)) + for i, x := range a { + switch v := x.(type) { + case fmt.Formatter: + // Wrap the value with a Formatter that augments the State with + // language-specific attributes. + out[i] = &value{v, p} + + // NOTE: as we use fmt.Formatter, we can't distinguish between + // regular and localized formatters, so we always need to wrap it. + + // TODO: handle + // - numbers + // - lists + // - time? + default: + out[i] = x + } + } + return out +} + +// state implements "golang.org/x/text/internal/format".State. +type state struct { + fmt.State + p *Printer +} + +func (s *state) Language() language.Tag { return s.p.tag } + +var _ format.State = &state{} + +type value struct { + x fmt.Formatter + p *Printer +} + +func (v *value) Format(s fmt.State, verb rune) { + v.x.Format(&state{s, v.p}, verb) +} diff --git a/vendor/golang.org/x/text/message/message_test.go b/vendor/golang.org/x/text/message/message_test.go new file mode 100644 index 00000000..f7dba8d0 --- /dev/null +++ b/vendor/golang.org/x/text/message/message_test.go @@ -0,0 +1,149 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package message + +import ( + "bytes" + "fmt" + "io" + "testing" + + "golang.org/x/text/internal/format" + "golang.org/x/text/language" +) + +type formatFunc func(s fmt.State, v rune) + +func (f formatFunc) Format(s fmt.State, v rune) { f(s, v) } + +func TestBinding(t *testing.T) { + testCases := []struct { + tag string + value interface{} + want string + }{ + {"en", 1, "1"}, + {"en", "2", "2"}, + { // Language is passed. + "en", + formatFunc(func(fs fmt.State, v rune) { + s := fs.(format.State) + io.WriteString(s, s.Language().String()) + }), + "en", + }, + } + for i, tc := range testCases { + p := NewPrinter(language.MustParse(tc.tag)) + if got := p.Sprint(tc.value); got != tc.want { + t.Errorf("%d:%s:Sprint(%v) = %q; want %q", i, tc.tag, tc.value, got, tc.want) + } + var buf bytes.Buffer + p.Fprint(&buf, tc.value) + if got := buf.String(); got != tc.want { + t.Errorf("%d:%s:Fprint(%v) = %q; want %q", i, tc.tag, tc.value, got, tc.want) + } + } +} + +func TestFormatSelection(t *testing.T) { + type test struct { + tag string + key Reference + args []interface{} + want string + } + empty := []interface{}{} + joe := []interface{}{"Joe"} + joeAndMary := []interface{}{"Joe", "Mary"} + + testCases := []struct { + desc string + cat []entry + test []test + }{{ + desc: "empty", + test: []test{ + {"en", "key", empty, "key"}, + {"en", "", empty, ""}, + {"nl", "", empty, ""}, + }, + }, { + desc: "hierarchical languages", + cat: []entry{ + {"en", "hello %s", "Hello %s!"}, + {"en-GB", "hello %s", "Hellø %s!"}, + {"en-US", "hello %s", "Howdy %s!"}, + {"en", "greetings %s and %s", "Greetings %s and %s!"}, + }, + test: []test{ + {"und", "hello %s", joe, "hello Joe"}, + {"nl", "hello %s", joe, "hello Joe"}, + {"en", "hello %s", joe, "Hello Joe!"}, + {"en-US", "hello %s", joe, "Howdy Joe!"}, + {"en-GB", "hello %s", joe, "Hellø Joe!"}, + {"en-oxendict", "hello %s", joe, "Hello Joe!"}, + {"en-US-oxendict-u-ms-metric", "hello %s", joe, "Howdy Joe!"}, + + {"und", "greetings %s and %s", joeAndMary, "greetings Joe and Mary"}, + {"nl", "greetings %s and %s", joeAndMary, "greetings Joe and Mary"}, + {"en", "greetings %s and %s", joeAndMary, "Greetings Joe and Mary!"}, + {"en-US", "greetings %s and %s", joeAndMary, "Greetings Joe and Mary!"}, + {"en-GB", "greetings %s and %s", joeAndMary, "Greetings Joe and Mary!"}, + {"en-oxendict", "greetings %s and %s", joeAndMary, "Greetings Joe and Mary!"}, + {"en-US-oxendict-u-ms-metric", "greetings %s and %s", joeAndMary, "Greetings Joe and Mary!"}, + }, + }, { + desc: "references", + cat: []entry{ + {"en", "hello", "Hello!"}, + }, + test: []test{ + {"en", "hello", empty, "Hello!"}, + {"en", Key("hello", "fallback"), empty, "Hello!"}, + {"en", Key("xxx", "fallback"), empty, "fallback"}, + {"und", Key("hello", "fallback"), empty, "fallback"}, + }, + }, { + desc: "zero substitution", // work around limitation of fmt + cat: []entry{ + {"en", "hello %s", "Hello!"}, + {"en", "hi %s and %s", "Hello %[2]s!"}, + }, + test: []test{ + {"en", "hello %s", joe, "Hello!"}, + {"en", "hello %s", joeAndMary, "Hello!"}, + {"en", "hi %s and %s", joeAndMary, "Hello Mary!"}, + // The following tests resolve to the fallback string. + {"und", "hello", joeAndMary, "hello"}, + {"und", "hello %%%%", joeAndMary, "hello %%"}, + {"und", "hello %#%%4.2% ", joeAndMary, "hello %% "}, + {"und", "hello %s", joeAndMary, "hello Joe%!(EXTRA string=Mary)"}, + {"und", "hello %+%%s", joeAndMary, "hello %Joe%!(EXTRA string=Mary)"}, + {"und", "hello %-42%%s ", joeAndMary, "hello %Joe %!(EXTRA string=Mary)"}, + }, + }} + + for _, tc := range testCases { + cat, _ := initCat(tc.cat) + + for i, pt := range tc.test { + p := cat.Printer(language.MustParse(pt.tag)) + + if got := p.Sprintf(pt.key, pt.args...); got != pt.want { + t.Errorf("%s:%d:Sprintf(%s, %v) = %s; want %s", + tc.desc, i, pt.key, pt.args, got, pt.want) + continue // Next error will likely be the same. + } + + w := &bytes.Buffer{} + p.Fprintf(w, pt.key, pt.args...) + if got := w.String(); got != pt.want { + t.Errorf("%s:%d:Fprintf(%s, %v) = %s; want %s", + tc.desc, i, pt.key, pt.args, got, pt.want) + } + } + } +} diff --git a/vendor/golang.org/x/text/runes/cond.go b/vendor/golang.org/x/text/runes/cond.go new file mode 100644 index 00000000..ae7a9215 --- /dev/null +++ b/vendor/golang.org/x/text/runes/cond.go @@ -0,0 +1,126 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runes + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// Note: below we pass invalid UTF-8 to the tIn and tNotIn transformers as is. +// This is done for various reasons: +// - To retain the semantics of the Nop transformer: if input is passed to a Nop +// one would expect it to be unchanged. +// - It would be very expensive to pass a converted RuneError to a transformer: +// a transformer might need more source bytes after RuneError, meaning that +// the only way to pass it safely is to create a new buffer and manage the +// intermingling of RuneErrors and normal input. +// - Many transformers leave ill-formed UTF-8 as is, so this is not +// inconsistent. Generally ill-formed UTF-8 is only replaced if it is a +// logical consequence of the operation (as for Map) or if it otherwise would +// pose security concerns (as for Remove). +// - An alternative would be to return an error on ill-formed UTF-8, but this +// would be inconsistent with other operations. + +// If returns a transformer that applies tIn to consecutive runes for which +// s.Contains(r) and tNotIn to consecutive runes for which !s.Contains(r). Reset +// is called on tIn and tNotIn at the start of each run. A Nop transformer will +// substitute a nil value passed to tIn or tNotIn. Invalid UTF-8 is translated +// to RuneError to determine which transformer to apply, but is passed as is to +// the respective transformer. +func If(s Set, tIn, tNotIn transform.Transformer) Transformer { + if tIn == nil && tNotIn == nil { + return Transformer{transform.Nop} + } + if tIn == nil { + tIn = transform.Nop + } + if tNotIn == nil { + tNotIn = transform.Nop + } + a := &cond{ + tIn: tIn, + tNotIn: tNotIn, + f: s.Contains, + } + a.Reset() + return Transformer{a} +} + +type cond struct { + tIn, tNotIn transform.Transformer + f func(rune) bool + check func(rune) bool // current check to perform + t transform.Transformer // current transformer to use +} + +// Reset implements transform.Transformer. +func (t *cond) Reset() { + t.check = t.is + t.t = t.tIn + t.t.Reset() // notIn will be reset on first usage. +} + +func (t *cond) is(r rune) bool { + if t.f(r) { + return true + } + t.check = t.isNot + t.t = t.tNotIn + t.tNotIn.Reset() + return false +} + +func (t *cond) isNot(r rune) bool { + if !t.f(r) { + return true + } + t.check = t.is + t.t = t.tIn + t.tIn.Reset() + return false +} + +func (t *cond) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + p := 0 + for nSrc < len(src) && err == nil { + // Don't process too much at a time, as the work might be wasted if the + // destination buffer isn't large enough to hold the result or a + // transform returns an error early. + const maxChunk = 4096 + max := len(src) + if n := nSrc + maxChunk; n < len(src) { + max = n + } + atEnd := false + size := 0 + current := t.t + for ; p < max; p += size { + var r rune + r, size = utf8.DecodeRune(src[p:]) + if r == utf8.RuneError && size == 1 { + if !atEOF && !utf8.FullRune(src[p:]) { + err = transform.ErrShortSrc + break + } + } + if !t.check(r) { + // The next rune will be the start of a new run. + atEnd = true + break + } + } + nDst2, nSrc2, err2 := current.Transform(dst[nDst:], src[nSrc:p], atEnd || (atEOF && p == len(src))) + nDst += nDst2 + nSrc += nSrc2 + if err2 != nil { + return nDst, nSrc, err2 + } + // At this point either err != nil or t.check will pass for the rune at p. + p = nSrc + size + } + return nDst, nSrc, err +} diff --git a/vendor/golang.org/x/text/runes/cond_test.go b/vendor/golang.org/x/text/runes/cond_test.go new file mode 100644 index 00000000..6b65cc7d --- /dev/null +++ b/vendor/golang.org/x/text/runes/cond_test.go @@ -0,0 +1,233 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runes + +import ( + "strings" + "testing" + "unicode" + + "golang.org/x/text/cases" + "golang.org/x/text/language" + "golang.org/x/text/transform" +) + +var ( + toUpper = cases.Upper(language.Und) + toLower = cases.Lower(language.Und) +) + +func TestPredicate(t *testing.T) { + testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { + return If(Predicate(func(r rune) bool { + return unicode.Is(rt, r) + }), t, f) + }) +} + +func TestIn(t *testing.T) { + testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { + return If(In(rt), t, f) + }) +} + +func TestNotIn(t *testing.T) { + testConditional(t, func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer { + return If(NotIn(rt), f, t) + }) +} + +func testConditional(t *testing.T, f func(rt *unicode.RangeTable, t, f transform.Transformer) transform.Transformer) { + lower := f(unicode.Latin, toLower, toLower) + + for i, tt := range []transformTest{{ + desc: "empty", + szDst: large, + atEOF: true, + in: "", + out: "", + outFull: "", + t: lower, + }, { + desc: "small", + szDst: 1, + atEOF: true, + in: "B", + out: "b", + outFull: "b", + t: lower, + }, { + desc: "short dst", + szDst: 2, + atEOF: true, + in: "AAA", + out: "aa", + outFull: "aaa", + err: transform.ErrShortDst, + t: lower, + }, { + desc: "short dst writing error", + szDst: 1, + atEOF: false, + in: "A\x80", + out: "a", + outFull: "a\x80", + err: transform.ErrShortDst, + t: lower, + }, { + desc: "short dst writing incomplete rune", + szDst: 2, + atEOF: true, + in: "Σ\xc2", + out: "Σ", + outFull: "Σ\xc2", + err: transform.ErrShortDst, + t: f(unicode.Latin, toLower, nil), + }, { + desc: "short dst, longer", + szDst: 5, + atEOF: true, + in: "Hellø", + out: "Hell", + outFull: "Hellø", + err: transform.ErrShortDst, + // idem is used to test short buffers by forcing processing of full-rune increments. + t: f(unicode.Latin, Map(idem), nil), + }, { + desc: "short dst, longer, writing error", + szDst: 6, + atEOF: false, + in: "\x80Hello\x80", + out: "\x80Hello", + outFull: "\x80Hello\x80", + err: transform.ErrShortDst, + t: f(unicode.Latin, Map(idem), nil), + }, { + desc: "short src", + szDst: 2, + atEOF: false, + in: "A\xc2", + out: "a", + outFull: "a\xc2", + err: transform.ErrShortSrc, + t: lower, + }, { + desc: "invalid input, atEOF", + szDst: large, + atEOF: true, + in: "\x80", + out: "\x80", + outFull: "\x80", + t: lower, + }, { + desc: "invalid input, !atEOF", + szDst: large, + atEOF: false, + in: "\x80", + out: "\x80", + outFull: "\x80", + t: lower, + }, { + desc: "invalid input, incomplete rune atEOF", + szDst: large, + atEOF: true, + in: "\xc2", + out: "\xc2", + outFull: "\xc2", + t: lower, + }, { + desc: "nop", + szDst: large, + atEOF: true, + in: "Hello World!", + out: "Hello World!", + outFull: "Hello World!", + t: f(unicode.Latin, nil, nil), + }, { + desc: "nop in", + szDst: large, + atEOF: true, + in: "THIS IS α ΤΕΣΤ", + out: "this is α ΤΕΣΤ", + outFull: "this is α ΤΕΣΤ", + t: f(unicode.Greek, nil, toLower), + }, { + desc: "nop not in", + szDst: large, + atEOF: true, + in: "THIS IS α ΤΕΣΤ", + out: "this is α ΤΕΣΤ", + outFull: "this is α ΤΕΣΤ", + t: f(unicode.Latin, toLower, nil), + }, { + desc: "pass atEOF is true when at end", + szDst: large, + atEOF: true, + in: "hello", + out: "HELLO", + outFull: "HELLO", + t: f(unicode.Latin, upperAtEOF{}, nil), + }, { + desc: "pass atEOF is true when at end of segment", + szDst: large, + atEOF: true, + in: "hello ", + out: "HELLO ", + outFull: "HELLO ", + t: f(unicode.Latin, upperAtEOF{}, nil), + }, { + desc: "don't pass atEOF is true when atEOF is false", + szDst: large, + atEOF: false, + in: "hello", + out: "", + outFull: "HELLO", + t: f(unicode.Latin, upperAtEOF{}, nil), + err: transform.ErrShortSrc, + }, { + desc: "large input ASCII", + szDst: 12000, + atEOF: false, + in: strings.Repeat("HELLO", 2000), + out: strings.Repeat("hello", 2000), + outFull: strings.Repeat("hello", 2000), + t: lower, + err: nil, + }, { + desc: "large input non-ASCII", + szDst: 12000, + atEOF: false, + in: strings.Repeat("\u3333", 2000), + out: strings.Repeat("\u3333", 2000), + outFull: strings.Repeat("\u3333", 2000), + t: lower, + err: nil, + }} { + tt.check(t, i) + } +} + +// upperAtEOF is a strange Transformer that converts text to uppercase, but only +// if atEOF is true. +type upperAtEOF struct{ transform.NopResetter } + +func (upperAtEOF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if !atEOF { + return 0, 0, transform.ErrShortSrc + } + return toUpper.Transform(dst, src, atEOF) +} + +func BenchmarkConditional(b *testing.B) { + dst := make([]byte, len(input)) + src := []byte(input) + + r := If(In(unicode.Hangul), transform.Nop, transform.Nop) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + r.Transform(dst, src, true) + } +} diff --git a/vendor/golang.org/x/text/runes/example_test.go b/vendor/golang.org/x/text/runes/example_test.go new file mode 100644 index 00000000..a60bfd9d --- /dev/null +++ b/vendor/golang.org/x/text/runes/example_test.go @@ -0,0 +1,60 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runes_test + +import ( + "fmt" + "unicode" + + "golang.org/x/text/runes" + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" + "golang.org/x/text/width" +) + +func ExampleRemove() { + t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) + s, _, _ := transform.String(t, "résumé") + fmt.Println(s) + + // Output: + // resume +} + +func ExampleMap() { + replaceHyphens := runes.Map(func(r rune) rune { + if unicode.Is(unicode.Hyphen, r) { + return '|' + } + return r + }) + s, _, _ := transform.String(replaceHyphens, "a-bâ€c⸗dï¹£e") + fmt.Println(s) + + // Output: + // a|b|c|d|e +} + +func ExampleIn() { + // Convert Latin characters to their canonical form, while keeping other + // width distinctions. + t := runes.If(runes.In(unicode.Latin), width.Fold, nil) + s, _, _ := transform.String(t, "アルアノリウ tech / アルアノリウ tech") + fmt.Println(s) + + // Output: + // アルアノリウ tech / アルアノリウ tech +} + +func ExampleIf() { + // Widen everything but ASCII. + isASCII := func(r rune) bool { return r <= unicode.MaxASCII } + t := runes.If(runes.Predicate(isASCII), nil, width.Widen) + s, _, _ := transform.String(t, "アルアノリウ tech / 中國 / 5â‚©") + fmt.Println(s) + + // Output: + // アルアノリウ tech / 中國 / 5₩ +} diff --git a/vendor/golang.org/x/text/runes/runes.go b/vendor/golang.org/x/text/runes/runes.go new file mode 100644 index 00000000..bb17f475 --- /dev/null +++ b/vendor/golang.org/x/text/runes/runes.go @@ -0,0 +1,278 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package runes provide transforms for UTF-8 encoded text. +package runes // import "golang.org/x/text/runes" + +import ( + "unicode" + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// A Set is a collection of runes. +type Set interface { + // Contains returns true if r is contained in the set. + Contains(r rune) bool +} + +type setFunc func(rune) bool + +func (s setFunc) Contains(r rune) bool { + return s(r) +} + +// Note: using funcs here instead of wrapping types result in cleaner +// documentation and a smaller API. + +// In creates a Set with a Contains method that returns true for all runes in +// the given RangeTable. +func In(rt *unicode.RangeTable) Set { + return setFunc(func(r rune) bool { return unicode.Is(rt, r) }) +} + +// In creates a Set with a Contains method that returns true for all runes not +// in the given RangeTable. +func NotIn(rt *unicode.RangeTable) Set { + return setFunc(func(r rune) bool { return !unicode.Is(rt, r) }) +} + +// Predicate creates a Set with a Contains method that returns f(r). +func Predicate(f func(rune) bool) Set { + return setFunc(f) +} + +// Transformer implements the transform.Transformer interface. +type Transformer struct { + transform.Transformer +} + +// Bytes returns a new byte slice with the result of converting b using t. It +// calls Reset on t. It returns nil if any error was found. This can only happen +// if an error-producing Transformer is passed to If. +func (t Transformer) Bytes(b []byte) []byte { + b, _, err := transform.Bytes(t, b) + if err != nil { + return nil + } + return b +} + +// String returns a string with the result of converting s using t. It calls +// Reset on t. It returns the empty string if any error was found. This can only +// happen if an error-producing Transformer is passed to If. +func (t Transformer) String(s string) string { + s, _, err := transform.String(t, s) + if err != nil { + return "" + } + return s +} + +// TODO: +// - Copy: copying strings and bytes in whole-rune units. +// - Validation (maybe) +// - Well-formed-ness (maybe) + +const runeErrorString = string(utf8.RuneError) + +// Remove returns a Transformer that removes runes r for which s.Contains(r). +// Illegal input bytes are replaced by RuneError before being passed to f. +func Remove(s Set) Transformer { + if f, ok := s.(setFunc); ok { + // This little trick cuts the running time of BenchmarkRemove for sets + // created by Predicate roughly in half. + // TODO: special-case RangeTables as well. + return Transformer{remove(f)} + } + return Transformer{remove(s.Contains)} +} + +// TODO: remove transform.RemoveFunc. + +type remove func(r rune) bool + +func (remove) Reset() {} + +// Transform implements transform.Transformer. +func (t remove) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for r, size := rune(0), 0; nSrc < len(src); { + if r = rune(src[nSrc]); r < utf8.RuneSelf { + size = 1 + } else { + r, size = utf8.DecodeRune(src[nSrc:]) + + if size == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + // We replace illegal bytes with RuneError. Not doing so might + // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. + // The resulting byte sequence may subsequently contain runes + // for which t(r) is true that were passed unnoticed. + if !t(utf8.RuneError) { + if nDst+3 > len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst+0] = runeErrorString[0] + dst[nDst+1] = runeErrorString[1] + dst[nDst+2] = runeErrorString[2] + nDst += 3 + } + nSrc++ + continue + } + } + + if t(r) { + nSrc += size + continue + } + if nDst+size > len(dst) { + err = transform.ErrShortDst + break + } + for i := 0; i < size; i++ { + dst[nDst] = src[nSrc] + nDst++ + nSrc++ + } + } + return +} + +// Map returns a Transformer that maps the runes in the input using the given +// mapping. Illegal bytes in the input are converted to utf8.RuneError before +// being passed to the mapping func. +func Map(mapping func(rune) rune) Transformer { + return Transformer{mapper(mapping)} +} + +type mapper func(rune) rune + +func (mapper) Reset() {} + +// Transform implements transform.Transformer. +func (t mapper) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + var replacement rune + var b [utf8.UTFMax]byte + + for r, size := rune(0), 0; nSrc < len(src); { + if r = rune(src[nSrc]); r < utf8.RuneSelf { + if replacement = t(r); replacement < utf8.RuneSelf { + if nDst == len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst] = byte(replacement) + nDst++ + nSrc++ + continue + } + size = 1 + } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + + if replacement = t(utf8.RuneError); replacement == utf8.RuneError { + if nDst+3 > len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst+0] = runeErrorString[0] + dst[nDst+1] = runeErrorString[1] + dst[nDst+2] = runeErrorString[2] + nDst += 3 + nSrc++ + continue + } + } else if replacement = t(r); replacement == r { + if nDst+size > len(dst) { + err = transform.ErrShortDst + break + } + for i := 0; i < size; i++ { + dst[nDst] = src[nSrc] + nDst++ + nSrc++ + } + continue + } + + n := utf8.EncodeRune(b[:], replacement) + + if nDst+n > len(dst) { + err = transform.ErrShortDst + break + } + for i := 0; i < n; i++ { + dst[nDst] = b[i] + nDst++ + } + nSrc += size + } + return +} + +// ReplaceIllFormed returns a transformer that replaces all input bytes that are +// not part of a well-formed UTF-8 code sequence with utf8.RuneError. +func ReplaceIllFormed() Transformer { + return Transformer{&replaceIllFormed{}} +} + +type replaceIllFormed struct{ transform.NopResetter } + +func (t replaceIllFormed) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for nSrc < len(src) { + r, size := utf8.DecodeRune(src[nSrc:]) + + // Look for an ASCII rune. + if r < utf8.RuneSelf { + if nDst == len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst] = byte(r) + nDst++ + nSrc++ + continue + } + + // Look for a valid non-ASCII rune. + if r != utf8.RuneError || size != 1 { + if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { + err = transform.ErrShortDst + break + } + nDst += size + nSrc += size + continue + } + + // Look for short source data. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + + // We have an invalid rune. + if nDst+3 > len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst+0] = runeErrorString[0] + dst[nDst+1] = runeErrorString[1] + dst[nDst+2] = runeErrorString[2] + nDst += 3 + nSrc++ + } + return nDst, nSrc, err +} diff --git a/vendor/golang.org/x/text/runes/runes_test.go b/vendor/golang.org/x/text/runes/runes_test.go new file mode 100644 index 00000000..91d22a22 --- /dev/null +++ b/vendor/golang.org/x/text/runes/runes_test.go @@ -0,0 +1,583 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runes + +import ( + "strings" + "testing" + "unicode/utf8" + + "golang.org/x/text/internal/testtext" + "golang.org/x/text/transform" +) + +type transformTest struct { + desc string + szDst int + atEOF bool + repl string + in string + out string // result string of first call to Transform + outFull string // transform of entire input string + err error + + t transform.Transformer +} + +const large = 10240 + +func (tt *transformTest) check(t *testing.T, i int) { + if tt.t == nil { + return + } + dst := make([]byte, tt.szDst) + src := []byte(tt.in) + nDst, nSrc, err := tt.t.Transform(dst, src, tt.atEOF) + if err != tt.err { + t.Errorf("%d:%s:error: got %v; want %v", i, tt.desc, err, tt.err) + } + if got := string(dst[:nDst]); got != tt.out { + t.Errorf("%d:%s:out: got %q; want %q", i, tt.desc, got, tt.out) + } + + // Calls tt.t.Transform for the remainder of the input. We use this to test + // the nSrc return value. + out := make([]byte, large) + n := copy(out, dst[:nDst]) + nDst, _, _ = tt.t.Transform(out[n:], src[nSrc:], true) + if got, want := string(out[:n+nDst]), tt.outFull; got != want { + t.Errorf("%d:%s:outFull: got %q; want %q", i, tt.desc, got, want) + } +} + +func idem(r rune) rune { return r } + +func TestMap(t *testing.T) { + runes := []rune{'a', 'ç', '中', '\U00012345', 'a'} + // Default mapper used for this test. + rotate := Map(func(r rune) rune { + for i, m := range runes { + if m == r { + return runes[i+1] + } + } + return r + }) + + for i, tt := range []transformTest{{ + desc: "empty", + szDst: large, + atEOF: true, + in: "", + out: "", + outFull: "", + t: rotate, + }, { + desc: "no change", + szDst: 1, + atEOF: true, + in: "b", + out: "b", + outFull: "b", + t: rotate, + }, { + desc: "short dst", + szDst: 2, + atEOF: true, + in: "aaaa", + out: "ç", + outFull: "çççç", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short dst ascii, no change", + szDst: 2, + atEOF: true, + in: "bbb", + out: "bb", + outFull: "bbb", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short dst writing error", + szDst: 2, + atEOF: false, + in: "a\x80", + out: "ç", + outFull: "ç\ufffd", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short dst writing incomplete rune", + szDst: 2, + atEOF: true, + in: "a\xc0", + out: "ç", + outFull: "ç\ufffd", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short dst, longer", + szDst: 5, + atEOF: true, + in: "Hellø", + out: "Hell", + outFull: "Hellø", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short dst, single", + szDst: 1, + atEOF: false, + in: "ø", + out: "", + outFull: "ø", + err: transform.ErrShortDst, + t: Map(idem), + }, { + desc: "short dst, longer, writing error", + szDst: 8, + atEOF: false, + in: "\x80Hello\x80", + out: "\ufffdHello", + outFull: "\ufffdHello\ufffd", + err: transform.ErrShortDst, + t: rotate, + }, { + desc: "short src", + szDst: 2, + atEOF: false, + in: "a\xc2", + out: "ç", + outFull: "ç\ufffd", + err: transform.ErrShortSrc, + t: rotate, + }, { + desc: "invalid input, atEOF", + szDst: large, + atEOF: true, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: rotate, + }, { + desc: "invalid input, !atEOF", + szDst: large, + atEOF: false, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: rotate, + }, { + desc: "invalid input, incomplete rune atEOF", + szDst: large, + atEOF: true, + in: "\xc0", + out: "\ufffd", + outFull: "\ufffd", + t: rotate, + }, { + desc: "misc correct", + szDst: large, + atEOF: true, + in: "a\U00012345 ç!", + out: "ça 中!", + outFull: "ça 中!", + t: rotate, + }, { + desc: "misc correct and invalid", + szDst: large, + atEOF: true, + in: "Hello\x80 w\x80orl\xc0d!\xc0", + out: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + t: rotate, + }, { + desc: "misc correct and invalid, short src", + szDst: large, + atEOF: false, + in: "Hello\x80 w\x80orl\xc0d!\xc2", + out: "Hello\ufffd w\ufffdorl\ufffdd!", + outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + err: transform.ErrShortSrc, + t: rotate, + }, { + desc: "misc correct and invalid, short src, replacing RuneError", + szDst: large, + atEOF: false, + in: "Hel\ufffdlo\x80 w\x80orl\xc0d!\xc2", + out: "Hel?lo? w?orl?d!", + outFull: "Hel?lo? w?orl?d!?", + err: transform.ErrShortSrc, + t: Map(func(r rune) rune { + if r == utf8.RuneError { + return '?' + } + return r + }), + }} { + tt.check(t, i) + } +} + +func TestRemove(t *testing.T) { + remove := Remove(Predicate(func(r rune) bool { + return strings.ContainsRune("aeiou\u0300\uFF24\U00012345", r) + })) + + for i, tt := range []transformTest{ + 0: { + szDst: large, + atEOF: true, + in: "", + out: "", + outFull: "", + t: remove, + }, + 1: { + szDst: 0, + atEOF: true, + in: "aaaa", + out: "", + outFull: "", + t: remove, + }, + 2: { + szDst: 1, + atEOF: true, + in: "aaaa", + out: "", + outFull: "", + t: remove, + }, + 3: { + szDst: 1, + atEOF: true, + in: "baaaa", + out: "b", + outFull: "b", + t: remove, + }, + 4: { + szDst: 2, + atEOF: true, + in: "açaaa", + out: "ç", + outFull: "ç", + t: remove, + }, + 5: { + szDst: 2, + atEOF: true, + in: "aaaç", + out: "ç", + outFull: "ç", + t: remove, + }, + 6: { + szDst: 2, + atEOF: false, + in: "a\x80", + out: "", + outFull: "\ufffd", + err: transform.ErrShortDst, + t: remove, + }, + 7: { + szDst: 1, + atEOF: true, + in: "a\xc0", + out: "", + outFull: "\ufffd", + err: transform.ErrShortDst, + t: remove, + }, + 8: { + szDst: 1, + atEOF: false, + in: "a\xc2", + out: "", + outFull: "\ufffd", + err: transform.ErrShortSrc, + t: remove, + }, + 9: { + szDst: large, + atEOF: true, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: remove, + }, + 10: { + szDst: large, + atEOF: false, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: remove, + }, + 11: { + szDst: large, + atEOF: true, + in: "\xc0", + out: "\ufffd", + outFull: "\ufffd", + t: remove, + }, + 12: { + szDst: large, + atEOF: true, + in: "Hello \U00012345world!", + out: "Hll wrld!", + outFull: "Hll wrld!", + t: remove, + }, + 13: { + szDst: large, + atEOF: true, + in: "Hello\x80 w\x80orl\xc0d!\xc0", + out: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", + outFull: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", + t: remove, + }, + 14: { + szDst: large, + atEOF: false, + in: "Hello\x80 w\x80orl\xc0d!\xc2", + out: "Hll\ufffd w\ufffdrl\ufffdd!", + outFull: "Hll\ufffd w\ufffdrl\ufffdd!\ufffd", + err: transform.ErrShortSrc, + t: remove, + }, + 15: { + szDst: large, + atEOF: false, + in: "Hel\ufffdlo\x80 w\x80orl\xc0d!\xc2", + out: "Hello world!", + outFull: "Hello world!", + err: transform.ErrShortSrc, + t: Remove(Predicate(func(r rune) bool { return r == utf8.RuneError })), + }, + 16: { + szDst: 4, + atEOF: true, + in: "Hellø", + out: "Hll", + outFull: "Hllø", + err: transform.ErrShortDst, + t: remove, + }, + 17: { + szDst: 4, + atEOF: false, + in: "Hellø", + out: "Hll", + outFull: "Hllø", + err: transform.ErrShortDst, + t: remove, + }, + 18: { + szDst: 8, + atEOF: false, + in: "\x80Hello\uFF24\x80", + out: "\ufffdHll", + outFull: "\ufffdHll\ufffd", + err: transform.ErrShortDst, + t: remove, + }, + } { + tt.check(t, i) + } +} + +func TestReplaceIllFormed(t *testing.T) { + replace := ReplaceIllFormed() + + for i, tt := range []transformTest{ + 0: { + szDst: large, + atEOF: true, + in: "", + out: "", + outFull: "", + t: replace, + }, + 1: { + szDst: 1, + atEOF: true, + in: "aa", + out: "a", + outFull: "aa", + err: transform.ErrShortDst, + t: replace, + }, + 2: { + szDst: 1, + atEOF: true, + in: "a\x80", + out: "a", + outFull: "a\ufffd", + err: transform.ErrShortDst, + t: replace, + }, + 3: { + szDst: 1, + atEOF: true, + in: "a\xc0", + out: "a", + outFull: "a\ufffd", + err: transform.ErrShortDst, + t: replace, + }, + 4: { + szDst: large, + atEOF: true, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: replace, + }, + 5: { + szDst: large, + atEOF: false, + in: "\x80", + out: "\ufffd", + outFull: "\ufffd", + t: replace, + }, + 6: { + szDst: large, + atEOF: true, + in: "\xc2", + out: "\ufffd", + outFull: "\ufffd", + t: replace, + }, + 7: { + szDst: large, + atEOF: false, + in: "\xc2", + out: "", + outFull: "\ufffd", + err: transform.ErrShortSrc, + t: replace, + }, + 8: { + szDst: large, + atEOF: true, + in: "Hello world!", + out: "Hello world!", + outFull: "Hello world!", + t: replace, + }, + 9: { + szDst: large, + atEOF: true, + in: "Hello\x80 w\x80orl\xc2d!\xc2", + out: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + t: replace, + }, + 10: { + szDst: large, + atEOF: false, + in: "Hello\x80 w\x80orl\xc2d!\xc2", + out: "Hello\ufffd w\ufffdorl\ufffdd!", + outFull: "Hello\ufffd w\ufffdorl\ufffdd!\ufffd", + err: transform.ErrShortSrc, + t: replace, + }, + 16: { + szDst: 10, + atEOF: false, + in: "\x80Hello\x80", + out: "\ufffdHello", + outFull: "\ufffdHello\ufffd", + err: transform.ErrShortDst, + t: replace, + }, + } { + tt.check(t, i) + } +} + +func TestMapAlloc(t *testing.T) { + if n := testtext.AllocsPerRun(3, func() { + Map(idem).Transform(nil, nil, false) + }); n > 0 { + t.Errorf("got %f; want 0", n) + } +} + +func rmNop(r rune) bool { return false } + +func TestRemoveAlloc(t *testing.T) { + if n := testtext.AllocsPerRun(3, func() { + Remove(Predicate(rmNop)).Transform(nil, nil, false) + }); n > 0 { + t.Errorf("got %f; want 0", n) + } +} + +func TestReplaceIllFormedAlloc(t *testing.T) { + if n := testtext.AllocsPerRun(3, func() { + ReplaceIllFormed().Transform(nil, nil, false) + }); n > 0 { + t.Errorf("got %f; want 0", n) + } +} + +func BenchmarkRemove(b *testing.B) { + dst := make([]byte, len(input)) + src := []byte(input) + + r := Remove(Predicate(func(r rune) bool { return r == 'e' })) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + r.Transform(dst, src, true) + } +} + +func BenchmarkMapAll(b *testing.B) { + dst := make([]byte, 2*len(input)) + src := []byte(input) + + r := Map(func(r rune) rune { return 'a' }) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + r.Transform(dst, src, true) + } +} + +func BenchmarkMapNone(b *testing.B) { + dst := make([]byte, 2*len(input)) + src := []byte(input) + + r := Map(func(r rune) rune { return r }) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + r.Transform(dst, src, true) + } +} + +func BenchmarkReplaceIllFormed(b *testing.B) { + dst := make([]byte, 2*len(input)) + src := []byte(input) + + t := ReplaceIllFormed() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + t.Transform(dst, src, true) + } +} + +var ( + input = strings.Repeat("Thé qüick brøwn føx jumps øver the lazy døg. ", 100) +) diff --git a/vendor/golang.org/x/text/search/index.go b/vendor/golang.org/x/text/search/index.go new file mode 100644 index 00000000..64820ad9 --- /dev/null +++ b/vendor/golang.org/x/text/search/index.go @@ -0,0 +1,47 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Note: this file is identical to the file text/collate/index.go. Both files +// will be removed when the new colltab package is finished and in use. + +package search + +// tableIndex holds information for constructing a table +// for a certain locale based on the main table. +type tableIndex struct { + lookupOffset uint32 + valuesOffset uint32 +} + +func (t tableIndex) TrieIndex() []uint16 { + return mainLookup[:] +} + +func (t tableIndex) TrieValues() []uint32 { + return mainValues[:] +} + +func (t tableIndex) FirstBlockOffsets() (lookup, value uint16) { + return uint16(t.lookupOffset), uint16(t.valuesOffset) +} + +func (t tableIndex) ExpandElems() []uint32 { + return mainExpandElem[:] +} + +func (t tableIndex) ContractTries() []struct{ l, h, n, i uint8 } { + return mainCTEntries[:] +} + +func (t tableIndex) ContractElems() []uint32 { + return mainContractElem[:] +} + +func (t tableIndex) MaxContractLen() int { + return 18 // TODO: generate +} + +func (t tableIndex) VariableTop() uint32 { + return varTop +} diff --git a/vendor/golang.org/x/text/search/pattern.go b/vendor/golang.org/x/text/search/pattern.go new file mode 100644 index 00000000..439d1d7f --- /dev/null +++ b/vendor/golang.org/x/text/search/pattern.go @@ -0,0 +1,156 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package search + +import ( + "golang.org/x/text/collate/colltab" + newcolltab "golang.org/x/text/internal/colltab" +) + +// TODO: handle variable primary weights? + +func (p *Pattern) deleteEmptyElements() { + k := 0 + for _, e := range p.ce { + if !isIgnorable(p.m, e) { + p.ce[k] = e + k++ + } + } + p.ce = p.ce[:k] +} + +func isIgnorable(m *Matcher, e colltab.Elem) bool { + if e.Primary() > 0 { + return false + } + if e.Secondary() > 0 { + if !m.ignoreDiacritics { + return false + } + // Primary value is 0 and ignoreDiacritics is true. In this case we + // ignore the tertiary element, as it only pertains to the modifier. + return true + } + // TODO: further distinguish once we have the new implementation. + if !(m.ignoreWidth || m.ignoreCase) && e.Tertiary() > 0 { + return false + } + // TODO: we ignore the Quaternary level for now. + return true +} + +// TODO: Use a Boyer-Moore-like algorithm (probably Sunday) for searching. + +func (p *Pattern) forwardSearch(it *newcolltab.Iter) (start, end int) { + for start := 0; it.Next(); it.Reset(start) { + nextStart := it.End() + if end := p.searchOnce(it); end != -1 { + return start, end + } + start = nextStart + } + return -1, -1 +} + +func (p *Pattern) anchoredForwardSearch(it *newcolltab.Iter) (start, end int) { + if it.Next() { + if end := p.searchOnce(it); end != -1 { + return 0, end + } + } + return -1, -1 +} + +// next advances to the next weight in a pattern. f must return one of the +// weights of a collation element. next will advance to the first non-zero +// weight and return this weight and true if it exists, or 0, false otherwise. +func (p *Pattern) next(i *int, f func(colltab.Elem) int) (weight int, ok bool) { + for *i < len(p.ce) { + v := f(p.ce[*i]) + *i++ + if v != 0 { + // Skip successive ignorable values. + for ; *i < len(p.ce) && f(p.ce[*i]) == 0; *i++ { + } + return v, true + } + } + return 0, false +} + +// TODO: remove this function once Elem is internal and Tertiary returns int. +func tertiary(e colltab.Elem) int { + return int(e.Tertiary()) +} + +// searchOnce tries to match the pattern s.p at the text position i. s.buf needs +// to be filled with collation elements of the first segment, where n is the +// number of source bytes consumed for this segment. It will return the end +// position of the match or -1. +func (p *Pattern) searchOnce(it *newcolltab.Iter) (end int) { + var pLevel [4]int + + m := p.m + for { + k := 0 + for ; k < it.N; k++ { + if v := it.Elems[k].Primary(); v > 0 { + if w, ok := p.next(&pLevel[0], colltab.Elem.Primary); !ok || v != w { + return -1 + } + } + + if !m.ignoreDiacritics { + if v := it.Elems[k].Secondary(); v > 0 { + if w, ok := p.next(&pLevel[1], colltab.Elem.Secondary); !ok || v != w { + return -1 + } + } + } else if it.Elems[k].Primary() == 0 { + // We ignore tertiary values of collation elements of the + // secondary level. + continue + } + + // TODO: distinguish between case and width. This will be easier to + // implement after we moved to the new collation implementation. + if !m.ignoreWidth && !m.ignoreCase { + if v := it.Elems[k].Tertiary(); v > 0 { + if w, ok := p.next(&pLevel[2], tertiary); !ok || int(v) != w { + return -1 + } + } + } + // TODO: check quaternary weight + } + it.Discard() // Remove the current segment from the buffer. + + // Check for completion. + switch { + // If any of these cases match, we are not at the end. + case pLevel[0] < len(p.ce): + case !m.ignoreDiacritics && pLevel[1] < len(p.ce): + case !(m.ignoreWidth || m.ignoreCase) && pLevel[2] < len(p.ce): + default: + // At this point, both the segment and pattern has matched fully. + // However, the segment may still be have trailing modifiers. + // This can be verified by another call to next. + end = it.End() + if it.Next() && it.Elems[0].Primary() == 0 { + if !m.ignoreDiacritics { + return -1 + } + end = it.End() + } + return end + } + + // Fill the buffer with the next batch of collation elements. + if !it.Next() { + return -1 + } + } +} diff --git a/vendor/golang.org/x/text/search/pattern_test.go b/vendor/golang.org/x/text/search/pattern_test.go new file mode 100644 index 00000000..931fa656 --- /dev/null +++ b/vendor/golang.org/x/text/search/pattern_test.go @@ -0,0 +1,357 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package search + +import ( + "reflect" + "strings" + "testing" + + "golang.org/x/text/language" +) + +func TestCompile(t *testing.T) { + for i, tc := range []struct { + desc string + pattern string + options []Option + n int + }{{ + desc: "empty", + pattern: "", + n: 0, + }, { + desc: "single", + pattern: "a", + n: 1, + }, { + desc: "keep modifier", + pattern: "a\u0300", // U+0300: COMBINING GRAVE ACCENT + n: 2, + }, { + desc: "remove modifier", + pattern: "a\u0300", // U+0300: COMBINING GRAVE ACCENT + options: []Option{IgnoreDiacritics}, + n: 1, + }, { + desc: "single with double collation element", + pattern: "ä", + n: 2, + }, { + desc: "leading variable", + pattern: " a", + n: 2, + }, { + desc: "trailing variable", + pattern: "aa ", + n: 3, + }, { + desc: "leading and trailing variable", + pattern: " äb ", + n: 5, + }, { + desc: "keep interior variable", + pattern: " ä b ", + n: 6, + }, { + desc: "keep interior variables", + pattern: " b ä ", + n: 7, + }, { + desc: "remove ignoreables (zero-weights across the board)", + pattern: "\u009Db\u009Dä\u009D", // U+009D: OPERATING SYSTEM COMMAND + n: 3, + }} { + m := New(language.Und, tc.options...) + p := m.CompileString(tc.pattern) + if len(p.ce) != tc.n { + t.Errorf("%d:%s: Compile(%+q): got %d; want %d", i, tc.desc, tc.pattern, len(p.ce), tc.n) + } + } +} + +func TestNorm(t *testing.T) { + // U+0300: COMBINING GRAVE ACCENT (CCC=230) + // U+031B: COMBINING HORN (CCC=216) + for _, tc := range []struct { + desc string + a string + b string + want bool // a and b compile into the same pattern? + }{{ + "simple", + "eee\u0300\u031b", + "eee\u031b\u0300", + true, + }, { + "large number of modifiers in pattern", + strings.Repeat("\u0300", 29) + "\u0318", + "\u0318" + strings.Repeat("\u0300", 29), + true, + }, { + "modifier overflow in pattern", + strings.Repeat("\u0300", 30) + "\u0318", + "\u0318" + strings.Repeat("\u0300", 30), + false, + }} { + m := New(language.Und) + a := m.CompileString(tc.a) + b := m.CompileString(tc.b) + if got := reflect.DeepEqual(a, b); got != tc.want { + t.Errorf("Compile(a) == Compile(b) == %v; want %v", got, tc.want) + } + } +} + +func TestForwardSearch(t *testing.T) { + for i, tc := range []struct { + desc string + tag string + options []Option + pattern string + text string + want []int + }{{ + // The semantics of an empty search is to match nothing. + // TODO: change this to be in line with strings.Index? It is quite a + // different beast, so not sure yet. + + desc: "empty pattern and text", + tag: "und", + pattern: "", + text: "", + want: nil, // TODO: consider: []int{0, 0}, + }, { + desc: "non-empty pattern and empty text", + tag: "und", + pattern: " ", + text: "", + want: nil, + }, { + desc: "empty pattern and non-empty text", + tag: "und", + pattern: "", + text: "abc", + want: nil, // TODO: consider: []int{0, 0, 1, 1, 2, 2, 3, 3}, + }, { + // Variable-only patterns. We don't support variables at the moment, + // but verify that, given this, the behavior is indeed as expected. + + desc: "exact match of variable", + tag: "und", + pattern: " ", + text: " ", + want: []int{0, 1}, + }, { + desc: "variables not handled by default", + tag: "und", + pattern: "- ", + text: " -", + want: nil, // Would be (1, 2) for a median match with variable}. + }, { + desc: "multiple subsequent identical variables", + tag: "und", + pattern: " ", + text: " ", + want: []int{0, 1, 1, 2, 2, 3, 3, 4}, + }, { + desc: "text with variables", + tag: "und", + options: []Option{IgnoreDiacritics}, + pattern: "abc", + text: "3 abc 3", + want: []int{2, 5}, + }, { + desc: "pattern with interior variables", + tag: "und", + options: []Option{IgnoreDiacritics}, + pattern: "a b c", + text: "3 a b c abc a b c 3", + want: []int{2, 7}, // Would have 3 matches using variable. + + // TODO: Different variable handling settings. + }, { + // Options. + + desc: "match all levels", + tag: "und", + pattern: "Abc", + text: "abcAbcABCÃbcábc", + want: []int{3, 6}, + }, { + desc: "ignore diacritics in text", + tag: "und", + options: []Option{IgnoreDiacritics}, + pattern: "Abc", + text: "Ãbc", + want: []int{0, 4}, + }, { + desc: "ignore diacritics in pattern", + tag: "und", + options: []Option{IgnoreDiacritics}, + pattern: "Ãbc", + text: "Abc", + want: []int{0, 3}, + }, { + desc: "ignore diacritics", + tag: "und", + options: []Option{IgnoreDiacritics}, + pattern: "Abc", + text: "abcAbcABCÃbcábc", + want: []int{3, 6, 9, 13}, + }, { + desc: "ignore case", + tag: "und", + options: []Option{IgnoreCase}, + pattern: "Abc", + text: "abcAbcABCÃbcábc", + want: []int{0, 3, 3, 6, 6, 9}, + }, { + desc: "ignore case and diacritics", + tag: "und", + options: []Option{IgnoreCase, IgnoreDiacritics}, + pattern: "Abc", + text: "abcAbcABCÃbcábc", + want: []int{0, 3, 3, 6, 6, 9, 9, 13, 13, 17}, + }, { + desc: "ignore width to fullwidth", + tag: "und", + options: []Option{IgnoreWidth}, + pattern: "abc", + text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C + want: []int{4, 13}, + }, { + // TODO: distinguish between case and width. + desc: "don't ignore width to fullwidth, ignoring only case", + tag: "und", + options: []Option{IgnoreCase}, + pattern: "abc", + text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C + want: []int{4, 13}, + }, { + desc: "ignore width to fullwidth and diacritics", + tag: "und", + options: []Option{IgnoreWidth, IgnoreDiacritics}, + pattern: "abc", + text: "123 \uFF41\uFF42\uFF43 123", // U+FF41-3: FULLWIDTH LATIN SMALL LETTER A-C + want: []int{4, 13}, + }, { + desc: "whole grapheme, single rune", + tag: "und", + pattern: "eee", + text: "123 eeé 123", + want: nil, + }, { + // Note: rules on when to apply contractions may, for certain languages, + // differ between search and collation. For example, "ch" is not + // considered a contraction for the purpose of searching in Spanish. + // Therefore, be careful picking this test. + desc: "whole grapheme, contractions", + tag: "da", + pattern: "aba", + // Fails at the primary level, because "aa" is a contraction. + text: "123 abaa 123", + want: []int{}, + }, { + desc: "whole grapheme, trailing modifier", + tag: "und", + pattern: "eee", + text: "123 eee\u0300 123", // U+0300: COMBINING GRAVE ACCENT + want: nil, + }, { + // Language-specific matching. + + desc: "", + tag: "da", + options: []Option{IgnoreCase}, + pattern: "Ã…rhus", + text: "AarhusÃ…rhus Ã…rhus ", + want: []int{0, 6, 6, 12, 14, 20}, + }, { + desc: "", + tag: "da", + options: []Option{IgnoreCase}, + pattern: "Aarhus", + text: "Ã…rhus Aarhus", + want: []int{0, 6, 7, 13}, + }, { + desc: "", + tag: "en", // Ã… does not match A for English. + options: []Option{IgnoreCase}, + pattern: "Aarhus", + text: "Ã…rhus", + want: nil, + }, { + desc: "ignore modifier in text", + options: []Option{IgnoreDiacritics}, + tag: "und", + pattern: "eee", + text: "123 eee\u0300 123", // U+0300: COMBINING GRAVE ACCENT + want: []int{4, 9}, // Matches on grapheme boundary. + }, { + desc: "ignore multiple modifiers in text", + options: []Option{IgnoreDiacritics}, + tag: "und", + pattern: "eee", + text: "123 eee\u0300\u0300 123", // U+0300: COMBINING GRAVE ACCENT + want: []int{4, 11}, // Matches on grapheme boundary. + }, { + desc: "ignore modifier in pattern", + options: []Option{IgnoreDiacritics}, + tag: "und", + pattern: "eee\u0300", // U+0300: COMBINING GRAVE ACCENT + text: "123 eee 123", + want: []int{4, 7}, + }, { + desc: "ignore multiple modifiers in pattern", + options: []Option{IgnoreDiacritics}, + tag: "und", + pattern: "eee\u0300\u0300", // U+0300: COMBINING GRAVE ACCENT + text: "123 eee 123", + want: []int{4, 7}, + }, { + desc: "match non-normalized pattern", + tag: "und", + // U+0300: COMBINING GRAVE ACCENT (CCC=230) + // U+031B: COMBINING HORN (CCC=216) + pattern: "eee\u0300\u031b", + text: "123 eee\u031b\u0300 123", + want: []int{4, 11}, + }, { + desc: "match non-normalized text", + tag: "und", + // U+0300: COMBINING GRAVE ACCENT (CCC=230) + // U+031B: COMBINING HORN (CCC=216) + pattern: "eee\u031b\u0300", + text: "123 eee\u0300\u031b 123", + want: []int{4, 11}, + }} { + m := New(language.MustParse(tc.tag), tc.options...) + p := m.CompileString(tc.pattern) + for j := 0; j < len(tc.text); { + start, end := p.IndexString(tc.text[j:]) + if start == -1 && end == -1 { + j++ + continue + } + start += j + end += j + j = end + if len(tc.want) == 0 { + t.Errorf("%d:%s: found unexpected result [%d %d]", i, tc.desc, start, end) + break + } + if tc.want[0] != start || tc.want[1] != end { + t.Errorf("%d:%s: got [%d %d]; want %v", i, tc.desc, start, end, tc.want[:2]) + tc.want = tc.want[2:] + break + } + tc.want = tc.want[2:] + } + if len(tc.want) != 0 { + t.Errorf("%d:%s: %d extra results", i, tc.desc, len(tc.want)/2) + } + } +} diff --git a/vendor/golang.org/x/text/search/search.go b/vendor/golang.org/x/text/search/search.go new file mode 100644 index 00000000..0ad15347 --- /dev/null +++ b/vendor/golang.org/x/text/search/search.go @@ -0,0 +1,238 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run ../collate/maketables.go -cldr=23 -unicode=6.2.0 -types=search,searchjl -package=search + +// Package search provides language-specific search and string matching. +// +// Natural language matching can be intricate. For example, Danish will insist +// "Ã…rhus" and "Aarhus" are the same name and Turkish will match I to ı (note +// the lack of a dot) in a case-insensitive match. This package handles such +// language-specific details. +// +// Text passed to any of the calls in this message does not need to be +// normalized. +package search // import "golang.org/x/text/search" + +import ( + "strings" + + "golang.org/x/text/collate/colltab" + newcolltab "golang.org/x/text/internal/colltab" + "golang.org/x/text/language" +) + +// An Option configures a Matcher. +type Option func(*Matcher) + +var ( + // WholeWord restricts matches to complete words. The default is to match at + // the character level. + WholeWord Option = nil + + // Exact requires that two strings are their exact equivalent. For example + // Ã¥ would not match aa in Danish. It overrides any of the ignore options. + Exact Option = nil + + // Loose causes case, diacritics and width to be ignored. + Loose Option = loose + + // IgnoreCase enables case-insensitive search. + IgnoreCase Option = ignoreCase + + // IgnoreDiacritics causes diacritics to be ignored ("ö" == "o"). + IgnoreDiacritics Option = ignoreDiacritics + + // IgnoreWidth equates narrow with wide variants. + IgnoreWidth Option = ignoreWidth +) + +func ignoreDiacritics(m *Matcher) { m.ignoreDiacritics = true } +func ignoreCase(m *Matcher) { m.ignoreCase = true } +func ignoreWidth(m *Matcher) { m.ignoreWidth = true } +func loose(m *Matcher) { + ignoreDiacritics(m) + ignoreCase(m) + ignoreWidth(m) +} + +var ( + // Supported lists the languages for which search differs from its parent. + Supported language.Coverage + + tags []language.Tag +) + +func init() { + ids := strings.Split(availableLocales, ",") + tags = make([]language.Tag, len(ids)) + for i, s := range ids { + tags[i] = language.Raw.MustParse(s) + } + Supported = language.NewCoverage(tags) +} + +// New returns a new Matcher for the given language and options. +func New(t language.Tag, opts ...Option) *Matcher { + m := &Matcher{ + w: colltab.Init(locales[newcolltab.MatchLang(t, tags)]), + } + for _, f := range opts { + f(m) + } + return m +} + +// A Matcher implements language-specific string matching. +type Matcher struct { + w colltab.Weighter + ignoreCase bool + ignoreWidth bool + ignoreDiacritics bool +} + +// An IndexOption specifies how the Index methods of Pattern or Matcher should +// match the input. +type IndexOption byte + +const ( + // Anchor restricts the search to the start (or end for Backwards) of the + // text. + Anchor IndexOption = 1 << iota + + // Backwards starts the search from the end of the text. + Backwards + + anchorBackwards = Anchor | Backwards +) + +// Index reports the start and end position of the first occurrence of pat in b +// or -1, -1 if pat is not present. +func (m *Matcher) Index(b, pat []byte, opts ...IndexOption) (start, end int) { + // TODO: implement optimized version that does not use a pattern. + return m.Compile(pat).Index(b, opts...) +} + +// IndexString reports the start and end position of the first occurrence of pat +// in s or -1, -1 if pat is not present. +func (m *Matcher) IndexString(s, pat string, opts ...IndexOption) (start, end int) { + // TODO: implement optimized version that does not use a pattern. + return m.CompileString(pat).IndexString(s, opts...) +} + +// Equal reports whether a and b are equivalent. +func (m *Matcher) Equal(a, b []byte) bool { + _, end := m.Index(a, b, Anchor) + return end == len(a) +} + +// EqualString reports whether a and b are equivalent. +func (m *Matcher) EqualString(a, b string) bool { + _, end := m.IndexString(a, b, Anchor) + return end == len(a) +} + +// Compile compiles and returns a pattern that can be used for faster searching. +func (m *Matcher) Compile(b []byte) *Pattern { + p := &Pattern{m: m} + iter := newcolltab.Iter{Weighter: m.w} + for iter.SetInput(b); iter.Next(); { + } + p.ce = iter.Elems + p.deleteEmptyElements() + return p +} + +// CompileString compiles and returns a pattern that can be used for faster +// searching. +func (m *Matcher) CompileString(s string) *Pattern { + p := &Pattern{m: m} + iter := newcolltab.Iter{Weighter: m.w} + for iter.SetInputString(s); iter.Next(); { + } + p.ce = iter.Elems + p.deleteEmptyElements() + return p +} + +// A Pattern is a compiled search string. It is safe for concurrent use. +type Pattern struct { + m *Matcher + ce []colltab.Elem +} + +// Design note (TODO remove): +// The cost of retrieving collation elements for each rune, which is used for +// search as well, is not trivial. Also, algorithms like Boyer-Moore and +// Sunday require some additional precomputing. + +// Index reports the start and end position of the first occurrence of p in b +// or -1, -1 if p is not present. +func (p *Pattern) Index(b []byte, opts ...IndexOption) (start, end int) { + // Pick a large enough buffer such that we likely do not need to allocate + // and small enough to not cause too much overhead initializing. + var buf [8]colltab.Elem + + it := &newcolltab.Iter{ + Weighter: p.m.w, + Elems: buf[:0], + } + it.SetInput(b) + + var optMask IndexOption + for _, o := range opts { + optMask |= o + } + + switch optMask { + case 0: + return p.forwardSearch(it) + case Anchor: + return p.anchoredForwardSearch(it) + case Backwards, anchorBackwards: + panic("TODO: implement") + default: + panic("unrecognized option") + } +} + +// IndexString reports the start and end position of the first occurrence of p +// in s or -1, -1 if p is not present. +func (p *Pattern) IndexString(s string, opts ...IndexOption) (start, end int) { + // Pick a large enough buffer such that we likely do not need to allocate + // and small enough to not cause too much overhead initializing. + var buf [8]colltab.Elem + + it := &newcolltab.Iter{ + Weighter: p.m.w, + Elems: buf[:0], + } + it.SetInputString(s) + + var optMask IndexOption + for _, o := range opts { + optMask |= o + } + + switch optMask { + case 0: + return p.forwardSearch(it) + case Anchor: + return p.anchoredForwardSearch(it) + case Backwards, anchorBackwards: + panic("TODO: implement") + default: + panic("unrecognized option") + } +} + +// TODO: +// - Maybe IndexAll methods (probably not necessary). +// - Some way to match patterns in a Reader (a bit tricky). +// - Some fold transformer that folds text to comparable text, based on the +// search options. This is a common technique, though very different from the +// collation-based design of this package. It has a somewhat different use +// case, so probably makes sense to support both. Should probably be in a +// different package, though, as it uses completely different kind of tables +// (based on norm, cases, width and range tables.) diff --git a/vendor/golang.org/x/text/search/tables.go b/vendor/golang.org/x/text/search/tables.go new file mode 100644 index 00000000..3573b687 --- /dev/null +++ b/vendor/golang.org/x/text/search/tables.go @@ -0,0 +1,12448 @@ +// This file was generated by go generate; DO NOT EDIT + +package search + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "6.2.0" + +// CLDRVersion is the CLDR version from which the tables in this package are derived. +const CLDRVersion = "23" + +var availableLocales = "und,az,bs,ca,cs,da,de,en,en-US,es,fi,fo,fr,he,hr,is,kl,ko,ko-u-co-searchjl,nb,nn,se,sk,sr-Latn,sv,tr" + +const varTop = 0x30e + +var locales = [...]tableIndex{ + { // und + lookupOffset: 0x1a, + valuesOffset: 0x1b4, + }, + { // az + lookupOffset: 0x20, + valuesOffset: 0x1c8, + }, + { // bs + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // ca + lookupOffset: 0x21, + valuesOffset: 0x1da, + }, + { // cs + lookupOffset: 0x23, + valuesOffset: 0x1de, + }, + { // da + lookupOffset: 0x26, + valuesOffset: 0x1e8, + }, + { // de + lookupOffset: 0x28, + valuesOffset: 0x1f2, + }, + { // en + lookupOffset: 0x1a, + valuesOffset: 0x1b4, + }, + { // en-US + lookupOffset: 0x1a, + valuesOffset: 0x1b4, + }, + { // es + lookupOffset: 0x29, + valuesOffset: 0x1f8, + }, + { // fi + lookupOffset: 0x2f, + valuesOffset: 0x1fb, + }, + { // fo + lookupOffset: 0x26, + valuesOffset: 0x1e8, + }, + { // fr + lookupOffset: 0x1a, + valuesOffset: 0x1b4, + }, + { // he + lookupOffset: 0x31, + valuesOffset: 0x20b, + }, + { // hr + lookupOffset: 0x33, + valuesOffset: 0x210, + }, + { // is + lookupOffset: 0x35, + valuesOffset: 0x217, + }, + { // kl + lookupOffset: 0x36, + valuesOffset: 0x221, + }, + { // ko + lookupOffset: 0x38, + valuesOffset: 0x1b4, + }, + { // ko-u-co-searchjl + lookupOffset: 0x3b, + valuesOffset: 0x0, + }, + { // nb + lookupOffset: 0x26, + valuesOffset: 0x22f, + }, + { // nn + lookupOffset: 0x26, + valuesOffset: 0x22f, + }, + { // se + lookupOffset: 0x3e, + valuesOffset: 0x231, + }, + { // sk + lookupOffset: 0x40, + valuesOffset: 0x23d, + }, + { // sr-Latn + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // sv + lookupOffset: 0x42, + valuesOffset: 0x244, + }, + { // tr + lookupOffset: 0x48, + valuesOffset: 0x24c, + }, +} + +// mainExpandElem: 10841 entries, 43364 bytes +var mainExpandElem = [10841]uint32{ + // Block 0, offset 0x0 + 0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A, + 0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A, + 0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A, + 0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84, + 0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, + 0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, + // Block 1, offset 0x40 + 0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684, + 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484, + 0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F, + 0x00000006, 0x0003F484, 0x0062C284, 0x0063B884, + // Block 2, offset 0x80 + 0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, + 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084, + 0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84, + 0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20, + 0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620, + 0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620, + 0xAE604502, 0x00000002, 0x40063820, 0xAE603202, + // Block 3, offset 0xc0 + 0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502, + 0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402, + 0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402, + 0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402, + 0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402, + 0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402, + 0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402, + 0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402, + 0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002, + 0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002, + 0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020, + // Block 4, offset 0x100 + 0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20, + 0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420, + 0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620, + 0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20, + 0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20, + 0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220, + 0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20, + 0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20, + 0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020, + 0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20, + 0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402, + // Block 5, offset 0x140 + 0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402, + 0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402, + 0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402, + 0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802, + 0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802, + 0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002, + 0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402, + 0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602, + 0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802, + 0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02, + 0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002, + // Block 6, offset 0x180 + 0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002, + 0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002, + 0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002, + 0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002, + 0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002, + 0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002, + 0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002, + 0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002, + 0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002, + 0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002, + 0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20, + // Block 7, offset 0x1c0 + 0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20, + 0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20, + 0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20, + 0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20, + 0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20, + 0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E, + 0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002, + 0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002, + 0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002, + 0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002, + 0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20, + // Block 8, offset 0x200 + 0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20, + 0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20, + 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20, + 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20, + 0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20, + 0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20, + 0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20, + 0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20, + 0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20, + 0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20, + 0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802, + // Block 9, offset 0x240 + 0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02, + 0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02, + 0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02, + 0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002, + 0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202, + 0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402, + 0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602, + 0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802, + 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802, + 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02, + 0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002, + // Block 10, offset 0x280 + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002, + 0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002, + 0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002, + 0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002, + 0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002, + 0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E, + 0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003, + 0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003, + // Block 11, offset 0x2c0 + 0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E, + 0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003, + 0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E, + 0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002, + 0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002, + 0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002, + 0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002, + 0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86, + // Block 12, offset 0x300 + 0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020, + 0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020, + 0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020, + 0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020, + 0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020, + 0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020, + 0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, + 0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, + 0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020, + 0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020, + 0xA0015002, 0x00000002, 0x4029D020, 0xA0015102, + // Block 13, offset 0x340 + 0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302, + 0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502, + 0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604, + 0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802, + 0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02, + 0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02, + 0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02, + 0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002, + 0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202, + 0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402, + 0x00000002, 0x4029D020, 0xA0016502, 0x00000002, + // Block 14, offset 0x380 + 0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002, + 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, + 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, + 0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002, + 0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002, + 0x4029D020, 0xA0017202, 0x00000002, 0x4029D020, + // Block 15, offset 0x3c0 + 0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020, + 0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020, + 0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003, + 0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86, + 0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02, + 0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102, + 0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302, + 0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502, + 0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702, + 0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902, + 0x00000002, 0x4029D220, 0xA0014A02, 0x00000002, + // Block 16, offset 0x400 + 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002, + 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002, + 0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002, + 0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002, + 0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002, + 0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002, + 0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002, + 0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002, + 0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002, + 0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002, + 0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220, + // Block 17, offset 0x440 + 0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220, + 0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220, + 0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220, + 0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220, + 0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220, + 0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, + // Block 18, offset 0x480 + 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, + 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02, + 0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002, + 0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202, + 0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402, + 0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602, + 0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E, + 0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003, + 0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86, + 0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002, + 0x00000002, 0x4029D420, 0xA0014102, 0x00000002, + // Block 19, offset 0x4c0 + 0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002, + 0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002, + 0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002, + 0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002, + 0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002, + 0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002, + 0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002, + 0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002, + 0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002, + 0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002, + 0x4029D420, 0xA0015602, 0x00000002, 0x0029D484, + // Block 20, offset 0x500 + 0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420, + 0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420, + 0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420, + 0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420, + 0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420, + 0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420, + 0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420, + 0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420, + 0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420, + 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, + 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + // Block 21, offset 0x540 + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002, + 0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202, + 0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402, + 0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602, + 0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E, + 0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86, + // Block 22, offset 0x580 + 0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002, + 0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202, + 0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402, + 0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602, + 0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802, + 0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02, + 0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02, + 0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02, + 0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002, + 0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202, + 0x00000002, 0x4029D620, 0xA0015302, 0x00000002, + // Block 23, offset 0x5c0 + 0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002, + 0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002, + 0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002, + 0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002, + 0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002, + 0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002, + 0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002, + 0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002, + 0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002, + 0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002, + 0x4029D620, 0xA0016702, 0x00000002, 0x4029D620, + // Block 24, offset 0x600 + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620, + 0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620, + 0xA0017502, 0x00000002, 0x4029D620, 0xA0017702, + // Block 25, offset 0x640 + 0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E, + 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002, + 0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002, + 0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002, + 0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002, + 0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002, + 0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002, + 0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002, + 0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002, + 0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002, + 0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820, + // Block 26, offset 0x680 + 0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820, + 0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820, + 0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820, + 0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820, + 0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820, + 0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820, + 0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820, + 0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820, + 0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820, + 0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820, + 0xA0016302, 0x00000002, 0x4029D820, 0xA0016402, + // Block 27, offset 0x6c0 + 0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602, + 0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202, + 0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402, + 0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702, + 0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02, + 0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102, + 0x00000002, 0x4029DA20, 0xA0014202, 0x00000002, + // Block 28, offset 0x700 + 0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002, + 0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002, + 0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002, + 0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002, + 0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002, + 0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002, + 0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002, + 0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002, + 0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002, + 0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002, + 0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20, + // Block 29, offset 0x740 + 0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20, + 0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20, + 0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20, + 0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20, + 0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20, + 0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20, + 0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20, + 0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20, + 0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, + 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, + 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, + // Block 30, offset 0x780 + 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, + 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202, + 0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402, + 0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702, + 0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86, + 0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20, + 0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20, + 0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20, + 0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20, + 0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20, + 0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902, + // Block 31, offset 0x7c0 + 0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02, + 0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02, + 0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02, + 0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102, + 0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302, + 0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502, + 0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604, + 0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802, + 0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02, + 0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02, + 0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002, + // Block 32, offset 0x800 + 0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002, + 0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002, + 0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002, + 0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002, + 0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002, + 0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002, + 0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20, + // Block 33, offset 0x840 + 0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20, + 0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20, + 0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20, + 0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20, + 0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20, + 0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20, + 0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20, + 0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20, + 0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20, + 0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20, + 0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202, + // Block 34, offset 0x880 + 0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402, + 0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602, + 0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702, + 0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902, + 0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02, + 0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02, + 0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02, + 0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102, + 0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302, + 0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502, + 0x00000002, 0x4029DE20, 0xA0016602, 0x00000002, + // Block 35, offset 0x8c0 + 0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002, + 0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002, + 0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002, + 0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002, + 0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002, + 0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20, + // Block 36, offset 0x900 + 0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202, + 0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88, + 0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02, + 0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20, + 0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402, + 0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02, + 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88, + 0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502, + 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20, + 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02, + 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402, + // Block 37, offset 0x940 + 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20, + 0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20, + 0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20, + 0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202, + 0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702, + 0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88, + 0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002, + 0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002, + 0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02, + 0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20, + 0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902, + // Block 38, offset 0x980 + 0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02, + 0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402, + 0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502, + 0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702, + 0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002, + 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88, + 0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02, + 0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20, + 0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF, + 0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C, + 0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84, + // Block 39, offset 0x9c0 + 0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A, + 0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C, + 0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A, + 0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904, + 0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003, + 0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914, + 0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202, + 0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004, + 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A, + 0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771, + 0x00000002, 0x002BDE84, 0x002EE284, 0x00000002, + // Block 40, offset 0xa00 + 0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002, + 0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002, + 0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003, + 0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904, + 0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A, + 0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88, + 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88, + 0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88, + 0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002, + 0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002, + 0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88, + // Block 41, offset 0xa40 + 0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88, + 0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88, + 0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D, + 0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20, + 0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202, + 0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84, + 0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C, + 0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002, + 0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C, + 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D, + 0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D, + // Block 42, offset 0xa80 + 0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102, + 0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202, + 0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602, + 0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002, + 0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802, + 0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02, + 0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02, + 0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904, + 0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904, + 0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04, + 0x00000002, 0x002C628A, 0xA0013A04, 0x00000002, + // Block 43, offset 0xac0 + 0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C, + 0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284, + 0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003, + 0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A, + 0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284, + 0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888, + 0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888, + 0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888, + 0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888, + 0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003, + 0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003, + // Block 44, offset 0xb00 + 0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02, + 0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003, + 0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02, + 0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002, + 0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002, + 0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002, + 0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002, + 0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002, + 0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003, + 0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602, + 0xAE603702, 0x00000002, 0x402C9820, 0xACA05902, + // Block 45, offset 0xb40 + 0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02, + 0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02, + 0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003, + 0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02, + 0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888, + 0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888, + 0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888, + 0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888, + 0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003, + 0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802, + 0x00000002, 0x002C9888, 0xADC07802, 0x00000002, + // Block 46, offset 0xb80 + 0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003, + 0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202, + 0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04, + 0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A, + 0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003, + 0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84, + 0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002, + 0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002, + 0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002, + 0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002, + 0x402D2220, 0xAE604102, 0x00000002, 0x002D2288, + // Block 47, offset 0xbc0 + 0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288, + 0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288, + 0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288, + 0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A, + 0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A, + 0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003, + 0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D, + 0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888, + 0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888, + 0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888, + 0xAE604702, 0x00000002, 0x402D6820, 0xAE605202, + // Block 48, offset 0xc00 + 0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602, + 0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002, + 0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902, + 0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02, + 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02, + 0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20, + 0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20, + 0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20, + 0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, + 0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20, + 0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102, + // Block 49, offset 0xc40 + 0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702, + 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88, + 0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002, + 0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002, + 0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002, + 0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002, + 0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002, + 0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002, + 0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002, + 0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002, + 0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88, + // Block 50, offset 0xc80 + 0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D, + 0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88, + 0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20, + 0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20, + 0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20, + 0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84, + 0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20, + 0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20, + 0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C, + 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D, + 0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C, + // Block 51, offset 0xcc0 + 0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003, + 0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202, + 0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102, + 0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602, + 0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002, + 0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002, + 0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002, + 0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002, + 0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002, + 0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002, + 0x402E2220, 0xA0013902, 0x00000002, 0x402E2220, + // Block 52, offset 0xd00 + 0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288, + 0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A, + 0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002, + 0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D, + 0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202, + 0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202, + 0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002, + 0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C, + 0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C, + 0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C, + 0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C, + // Block 53, offset 0xd40 + 0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C, + 0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D, + 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002, + 0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002, + 0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002, + 0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002, + 0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002, + 0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002, + 0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002, + 0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002, + 0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20, + // Block 54, offset 0xd80 + 0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20, + 0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D, + 0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002, + 0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002, + 0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002, + 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002, + 0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003, + 0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003, + 0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02, + 0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02, + // Block 55, offset 0xdc0 + 0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003, + 0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102, + 0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702, + 0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702, + 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002, + 0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002, + 0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003, + 0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02, + 0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003, + 0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02, + 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02, + // Block 56, offset 0xe00 + 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288, + 0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003, + 0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402, + 0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402, + 0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002, + 0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003, + 0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902, + 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288, + 0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003, + 0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02, + 0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02, + // Block 57, offset 0xe40 + 0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288, + 0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288, + 0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288, + 0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288, + 0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003, + 0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802, + 0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003, + 0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802, + 0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003, + 0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802, + 0xADC07002, 0x00000003, 0x002EE288, 0xAD806802, + // Block 58, offset 0xe80 + 0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288, + 0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003, + 0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904, + 0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003, + 0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D, + 0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A, + 0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202, + 0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202, + 0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002, + 0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D, + 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D, + // Block 59, offset 0xec0 + 0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684, + 0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88, + 0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88, + 0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88, + 0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88, + 0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A, + 0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88, + 0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88, + 0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88, + 0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003, + 0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002, + // Block 60, offset 0xf00 + 0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002, + 0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003, + 0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C, + 0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C, + 0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620, + 0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620, + 0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202, + 0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02, + 0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102, + 0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688, + 0xAE604102, 0xAE605202, 0x00000002, 0x402FE620, + // Block 61, offset 0xf40 + 0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620, + 0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684, + 0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620, + 0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620, + 0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202, + 0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702, + 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04, + 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04, + 0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D, + 0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003, + 0x002FE684, 0xA0013904, 0x002FE684, 0x00000003, + // Block 62, offset 0xf80 + 0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04, + 0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88, + 0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20, + 0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20, + 0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20, + 0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20, + 0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20, + 0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20, + 0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84, + 0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84, + 0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A, + // Block 63, offset 0xfc0 + 0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003, + 0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684, + 0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884, + 0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84, + 0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202, + 0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502, + 0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, + 0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02, + 0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102, + 0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302, + 0x00000002, 0x40306C20, 0xAE604702, 0x00000002, + // Block 64, offset 0x1000 + 0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202, + 0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20, + 0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502, + 0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88, + 0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02, + 0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20, + 0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20, + 0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20, + 0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202, + 0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902, + 0x00000002, 0x40306C20, 0xAE605B02, 0x00000002, + // Block 65, offset 0x1040 + 0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702, + 0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20, + 0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20, + 0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20, + 0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20, + 0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20, + 0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202, + 0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88, + 0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02, + 0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20, + 0xAD806802, 0xAE606402, 0x00000003, 0x00306C88, + // Block 66, offset 0x1080 + 0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002, + 0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20, + 0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20, + 0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20, + 0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20, + 0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D, + 0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002, + 0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002, + 0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C, + 0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004, + 0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, + // Block 67, offset 0x10c0 + 0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084, + 0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202, + 0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502, + 0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02, + 0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302, + 0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702, + 0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202, + 0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002, + 0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702, + 0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202, + 0x00000002, 0x0030F688, 0xAE605202, 0x00000002, + // Block 68, offset 0x1100 + 0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002, + 0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002, + 0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002, + 0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002, + 0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002, + 0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002, + 0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002, + 0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002, + 0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002, + 0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002, + 0x00312A88, 0xAE603202, 0x00000002, 0x40312A20, + // Block 69, offset 0x1140 + 0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20, + 0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20, + 0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20, + 0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20, + 0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84, + 0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488, + 0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288, + 0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003, + 0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202, + 0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + // Block 70, offset 0x1180 + 0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004, + 0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, + 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + 0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004, + 0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + 0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002, + 0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003, + 0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02, + 0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02, + 0x00000004, 0x00325288, 0xAE602A02, 0xAE603202, + // Block 71, offset 0x11c0 + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003, + 0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02, + 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003, + 0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02, + 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003, + 0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202, + 0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202, + 0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288, + 0xAE603502, 0x00000003, 0x40325220, 0xAE603502, + // Block 72, offset 0x1200 + 0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288, + 0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220, + 0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002, + 0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002, + 0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002, + 0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202, + 0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20, + 0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502, + 0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02, + 0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88, + 0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20, + // Block 73, offset 0x1240 + 0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502, + 0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202, + 0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502, + 0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202, + 0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888, + 0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888, + 0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602202, 0xAE604502, + // Block 74, offset 0x1280 + 0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820, + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, + 0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02, + 0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820, + 0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820, + 0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202, + 0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004, + 0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502, + 0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004, + 0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02, + // Block 75, offset 0x12c0 + 0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888, + 0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888, + 0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002, + 0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02, + 0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502, + 0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820, + 0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002, + 0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002, + 0x40326C20, 0xAE602202, 0x00000002, 0x00326C88, + // Block 76, offset 0x1300 + 0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003, + 0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202, + 0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003, + 0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202, + 0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88, + 0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003, + 0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02, + 0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003, + 0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02, + 0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88, + 0xAE603202, 0x00000002, 0x40326C20, 0xAE603502, + // Block 77, offset 0x1340 + 0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702, + 0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502, + 0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702, + 0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20, + 0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502, + 0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02, + 0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A, + 0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002, + 0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202, + 0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20, + 0xAE602202, 0xAE603502, 0x00000003, 0x00327C88, + // Block 78, offset 0x1380 + 0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002, + 0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202, + 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502, + 0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202, + 0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502, + 0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02, + 0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202, + 0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820, + 0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502, + 0x00000002, 0x40329820, 0xAE602A02, 0x00000002, + // Block 79, offset 0x13c0 + 0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202, + 0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502, + 0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888, + 0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002, + 0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002, + 0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002, + 0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002, + 0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003, + 0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702, + 0xAE603502, 0x00000003, 0x40329820, 0xAE604702, + // Block 80, offset 0x1400 + 0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888, + 0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288, + 0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, + // Block 81, offset 0x1440 + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, + 0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002, + 0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02, + // Block 82, offset 0x1480 + 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003, + 0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202, + 0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202, + 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288, + 0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002, + 0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02, + 0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02, + 0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284, + 0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220, + 0xAE603502, 0x00000002, 0x0033B288, 0xAE603502, + // Block 83, offset 0x14c0 + 0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702, + 0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702, + 0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502, + 0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02, + 0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02, + 0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02, + 0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202, + 0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502, + 0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202, + 0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02, + 0x00000002, 0x40389A20, 0xA1509202, 0x00000002, + // Block 84, offset 0x1500 + 0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002, + 0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002, + 0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002, + 0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02, + 0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202, + 0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202, + 0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202, + 0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202, + 0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502, + 0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202, + 0x00000002, 0x4038B620, 0xA1509202, 0x00000002, + // Block 85, offset 0x1540 + 0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002, + 0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002, + 0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20, + 0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099, + 0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097, + 0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097, + 0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097, + 0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099, + 0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098, + 0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A, + 0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699, + // Block 86, offset 0x1580 + 0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898, + 0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A, + 0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A, + 0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A, + 0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A, + 0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A, + 0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99, + 0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A, + 0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099, + 0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897, + 0x00000002, 0x00393099, 0x003A9899, 0x00000002, + // Block 87, offset 0x15c0 + 0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A, + 0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, + 0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99, + 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97, + 0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699, + 0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497, + 0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697, + 0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97, + 0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699, + 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497, + 0x00000003, 0x00395697, 0x003A4E97, 0x00397297, + // Block 88, offset 0x1600 + 0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699, + 0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099, + 0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499, + 0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A, + 0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003, + 0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99, + 0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003, + 0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499, + 0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003, + 0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A, + 0x003A749A, 0x003A409A, 0x00000003, 0x0039C697, + // Block 89, offset 0x1640 + 0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99, + 0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699, + 0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099, + 0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697, + 0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299, + 0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699, + 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099, + 0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899, + 0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099, + 0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899, + 0x003A4E99, 0x00397499, 0x00000003, 0x0039C897, + // Block 90, offset 0x1680 + 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99, + 0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99, + 0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099, + 0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003, + 0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A, + 0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, + 0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A, + 0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A, + 0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97, + 0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99, + 0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99, + // Block 91, offset 0x16c0 + 0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97, + 0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697, + 0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299, + 0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699, + 0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97, + 0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A, + 0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97, + 0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003, + 0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99, + 0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003, + 0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003, + // Block 92, offset 0x1700 + 0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497, + 0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003, + 0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A, + 0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003, + 0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99, + 0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003, + 0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99, + 0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002, + 0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002, + 0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002, + 0x003A4099, 0x00392899, 0x00000002, 0x003A409A, + // Block 93, offset 0x1740 + 0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003, + 0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497, + 0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003, + 0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297, + 0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003, + 0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299, + 0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003, + 0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97, + 0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003, + 0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04, + 0x00000003, 0x003A4E97, 0x00396497, 0x00397297, + // Block 94, offset 0x1780 + 0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97, + 0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099, + 0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97, + 0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A, + 0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003, + 0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497, + 0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003, + 0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497, + 0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003, + 0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499, + 0x003A4E99, 0x00000003, 0x003A5699, 0x00396499, + // Block 95, offset 0x17c0 + 0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003, + 0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299, + 0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003, + 0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99, + 0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003, + 0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02, + 0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A, + 0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099, + 0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097, + 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99, + 0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099, + // Block 96, offset 0x1800 + 0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04, + 0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04, + 0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04, + 0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904, + 0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904, + 0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102, + 0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102, + 0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102, + 0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102, + 0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102, + 0x00000002, 0x40403020, 0xA070F102, 0x00000002, + // Block 97, offset 0x1840 + 0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002, + 0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002, + 0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002, + 0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002, + 0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002, + 0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002, + 0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002, + 0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002, + 0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002, + 0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002, + 0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20, + // Block 98, offset 0x1880 + 0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020, + 0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020, + 0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220, + 0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220, + 0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220, + 0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420, + 0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420, + 0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620, + 0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620, + 0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620, + 0x40498C20, 0x00000002, 0x40491820, 0x40498420, + // Block 99, offset 0x18c0 + 0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820, + 0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20, + 0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620, + 0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20, + 0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420, + 0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820, + 0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20, + 0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620, + 0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20, + 0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420, + 0x00000002, 0x40492020, 0x40498620, 0x00000002, + // Block 100, offset 0x1900 + 0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002, + 0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002, + 0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002, + 0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002, + 0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002, + 0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002, + 0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002, + 0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002, + 0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002, + 0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002, + 0x40492820, 0x40498820, 0x00000002, 0x40492820, + // Block 101, offset 0x1940 + 0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20, + 0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20, + 0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20, + 0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20, + 0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20, + 0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20, + 0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20, + 0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20, + 0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020, + 0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020, + 0x40498A20, 0x00000002, 0x40493020, 0x40498C20, + // Block 102, offset 0x1980 + 0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620, + 0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20, + 0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420, + 0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820, + 0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20, + 0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620, + 0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20, + 0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420, + 0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820, + 0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20, + 0x00000002, 0x40493A20, 0x40498420, 0x00000002, + // Block 103, offset 0x19c0 + 0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002, + 0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002, + 0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002, + 0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002, + 0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002, + 0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002, + 0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002, + 0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002, + 0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002, + 0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002, + 0x40494220, 0x40498620, 0x00000002, 0x40494220, + // Block 104, offset 0x1a00 + 0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220, + 0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420, + 0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420, + 0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620, + 0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620, + 0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620, + 0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820, + 0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820, + 0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20, + 0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20, + 0x40498820, 0x00000002, 0x40494A20, 0x40498A20, + // Block 105, offset 0x1a40 + 0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420, + 0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820, + 0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20, + 0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620, + 0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20, + 0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420, + 0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820, + 0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20, + 0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620, + 0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20, + 0x00000002, 0x40495220, 0x40498C20, 0x00000002, + // Block 106, offset 0x1a80 + 0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002, + 0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002, + 0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002, + 0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002, + 0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002, + 0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002, + 0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002, + 0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002, + 0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002, + 0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002, + 0x40495C20, 0x40498420, 0x00000002, 0x40495C20, + // Block 107, offset 0x1ac0 + 0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20, + 0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20, + 0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20, + 0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20, + 0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020, + 0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020, + 0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220, + 0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220, + 0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220, + 0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420, + 0x40498620, 0x00000002, 0x40496420, 0x40498820, + // Block 108, offset 0x1b00 + 0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20, + 0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620, + 0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20, + 0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420, + 0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820, + 0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20, + 0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620, + 0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20, + 0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620, + 0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20, + 0x00000002, 0x40499020, 0x4049EC20, 0x00000002, + // Block 109, offset 0x1b40 + 0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002, + 0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002, + 0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002, + 0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002, + 0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002, + 0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002, + 0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002, + 0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002, + 0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002, + 0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002, + 0x40499820, 0x4049EE20, 0x00000002, 0x40499A20, + // Block 110, offset 0x1b80 + 0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20, + 0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20, + 0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20, + 0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20, + 0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20, + 0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20, + 0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20, + 0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020, + 0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020, + 0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220, + 0x4049E620, 0x00000002, 0x4049A220, 0x4049E820, + // Block 111, offset 0x1bc0 + 0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20, + 0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620, + 0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20, + 0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20, + 0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820, + 0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20, + 0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620, + 0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20, + 0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20, + 0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820, + 0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002, + // Block 112, offset 0x1c00 + 0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002, + 0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002, + 0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002, + 0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002, + 0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002, + 0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002, + 0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002, + 0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002, + 0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002, + 0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002, + 0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220, + // Block 113, offset 0x1c40 + 0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420, + 0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420, + 0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620, + 0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620, + 0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620, + 0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820, + 0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820, + 0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20, + 0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20, + 0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20, + 0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620, + // Block 114, offset 0x1c80 + 0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20, + 0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20, + 0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820, + 0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20, + 0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620, + 0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20, + 0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20, + 0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820, + 0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20, + 0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84, + 0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84, + // Block 115, offset 0x1cc0 + 0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003, + 0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84, + 0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003, + 0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84, + 0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003, + 0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620, + 0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20, + 0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20, + 0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820, + 0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20, + 0x00000002, 0x4049C620, 0x4049EE20, 0x00000002, + // Block 116, offset 0x1d00 + 0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002, + 0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002, + 0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002, + 0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002, + 0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002, + 0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002, + 0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002, + 0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002, + 0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002, + 0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002, + 0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620, + // Block 117, offset 0x1d40 + 0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620, + 0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820, + 0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820, + 0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820, + 0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20, + 0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20, + 0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20, + 0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20, + 0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20, + 0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20, + 0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220, + // Block 118, offset 0x1d80 + 0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820, + 0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20, + 0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620, + 0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20, + 0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220, + 0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820, + 0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20, + 0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620, + 0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20, + 0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220, + 0x00000002, 0x404A0620, 0x404A6620, 0x00000002, + // Block 119, offset 0x1dc0 + 0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002, + 0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002, + 0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002, + 0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002, + 0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002, + 0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002, + 0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002, + 0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002, + 0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002, + 0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002, + 0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020, + // Block 120, offset 0x1e00 + 0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020, + 0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020, + 0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220, + 0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220, + 0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420, + 0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420, + 0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420, + 0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620, + 0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620, + 0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820, + 0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20, + // Block 121, offset 0x1e40 + 0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620, + 0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20, + 0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220, + 0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820, + 0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20, + 0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620, + 0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20, + 0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220, + 0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820, + 0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20, + 0x00000002, 0x404A2020, 0x404A6220, 0x00000002, + // Block 122, offset 0x1e80 + 0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002, + 0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002, + 0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002, + 0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002, + 0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002, + 0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002, + 0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002, + 0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002, + 0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002, + 0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002, + 0x404A2820, 0x404A6620, 0x00000002, 0x404A2820, + // Block 123, offset 0x1ec0 + 0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20, + 0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20, + 0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20, + 0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20, + 0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20, + 0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20, + 0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20, + 0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020, + 0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020, + 0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020, + 0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20, + // Block 124, offset 0x1f00 + 0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220, + 0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820, + 0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20, + 0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620, + 0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20, + 0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220, + 0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820, + 0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20, + 0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620, + 0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20, + 0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002, + // Block 125, offset 0x1f40 + 0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002, + 0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002, + 0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002, + 0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002, + 0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002, + 0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002, + 0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002, + 0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002, + 0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002, + 0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002, + 0x404A4220, 0x404A6220, 0x00000002, 0x404A4220, + // Block 126, offset 0x1f80 + 0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420, + 0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420, + 0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420, + 0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620, + 0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620, + 0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820, + 0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820, + 0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820, + 0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20, + 0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20, + 0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820, + // Block 127, offset 0x1fc0 + 0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20, + 0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620, + 0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20, + 0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220, + 0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820, + 0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820, + 0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020, + 0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020, + 0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020, + 0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020, + 0x00000002, 0x404AD020, 0x404B0020, 0x00000002, + // Block 128, offset 0x2000 + 0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002, + 0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002, + 0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002, + 0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002, + 0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304, + 0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84, + 0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003, + 0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904, + 0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04, + 0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84, + 0x00000002, 0x005AE084, 0xA0013904, 0x00000002, + // Block 129, offset 0x2040 + 0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002, + 0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002, + 0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002, + 0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002, + 0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002, + 0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002, + 0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002, + 0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002, + 0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002, + 0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002, + 0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84, + // Block 130, offset 0x2080 + 0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084, + 0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284, + 0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684, + 0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684, + 0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904, + 0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904, + 0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904, + 0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904, + 0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904, + 0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904, + 0x00000002, 0x005B3A84, 0xA0013904, 0x00000002, + // Block 131, offset 0x20c0 + 0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002, + 0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002, + 0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002, + 0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002, + 0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002, + 0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002, + 0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002, + 0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002, + 0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002, + 0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002, + 0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84, + // Block 132, offset 0x2100 + 0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84, + 0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084, + 0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084, + 0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884, + 0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284, + 0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486, + 0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886, + 0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C, + 0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C, + 0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C, + 0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C, + // Block 133, offset 0x2140 + 0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C, + 0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C, + 0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802, + 0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C, + 0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C, + 0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C, + 0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C, + 0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802, + 0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C, + 0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C, + 0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C, + // Block 134, offset 0x2180 + 0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C, + 0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002, + 0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C, + 0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C, + 0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006, + 0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C, + 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C, + 0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C, + 0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C, + 0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002, + 0x00658691, 0xA0812802, 0x00000004, 0x0065869C, + // Block 135, offset 0x21c0 + 0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C, + 0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C, + 0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004, + 0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E, + 0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C, + 0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002, + 0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C, + 0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002, + 0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004, + 0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C, + 0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C, + // Block 136, offset 0x2200 + 0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802, + 0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C, + 0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802, + 0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802, + 0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C, + 0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002, + 0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002, + 0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004, + 0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E, + 0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E, + 0xA0812802, 0x00000002, 0x00659A91, 0xA0812802, + // Block 137, offset 0x2240 + 0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802, + 0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E, + 0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C, + 0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C, + 0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802, + 0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902, + 0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C, + 0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C, + 0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C, + 0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E, + 0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802, + // Block 138, offset 0x2280 + 0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902, + 0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C, + 0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C, + 0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C, + 0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002, + 0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002, + 0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C, + 0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C, + 0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C, + 0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C, + 0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802, + // Block 139, offset 0x22c0 + 0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902, + 0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C, + 0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C, + 0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C, + 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C, + 0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003, + 0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C, + 0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002, + 0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002, + 0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C, + 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C, + // Block 140, offset 0x2300 + 0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C, + 0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005, + 0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004, + 0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C, + 0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003, + 0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C, + 0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C, + 0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C, + 0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C, + 0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C, + 0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C, + // Block 141, offset 0x2340 + 0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C, + 0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, + 0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C, + 0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C, + 0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C, + 0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006, + 0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C, + 0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C, + 0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491, + 0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84, + 0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04, + // Block 142, offset 0x2380 + 0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04, + 0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04, + 0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04, + 0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04, + 0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04, + 0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904, + 0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904, + 0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904, + 0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904, + 0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04, + 0x00000002, 0x00862E84, 0xA0013904, 0x00000002, + // Block 143, offset 0x23c0 + 0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002, + 0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002, + 0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002, + 0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002, + 0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002, + 0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002, + 0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002, + 0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002, + 0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002, + 0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002, + 0x00864A84, 0xA0013904, 0x00000002, 0x00864C84, + // Block 144, offset 0x2400 + 0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284, + 0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084, + 0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884, + 0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484, + 0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84, + 0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684, + 0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684, + 0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084, + 0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C, + 0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904, + 0x00000002, 0x02E4B684, 0xA0013904, 0x00000002, + // Block 145, offset 0x2440 + 0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002, + 0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002, + 0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002, + 0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002, + 0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002, + 0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002, + 0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002, + 0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002, + 0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002, + 0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002, + 0x032C3884, 0xA0013904, 0x00000002, 0x032DD084, + // Block 146, offset 0x2480 + 0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84, + 0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884, + 0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484, + 0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84, + 0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884, + 0xA0013A04, 0x00000002, 0xA000AD18, 0xA000BA18, 0x00000002, 0xA000B218, + 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, 0x00000002, 0x00393C99, + 0x003A8E99, 0x00000002, 0x00393C9A, 0x003A8E9A, 0x00000002, 0x00395699, + 0x003A8E99, 0x00000002, 0x0039569A, 0x003A8E9A, 0x00000002, 0x00395899, + 0x003A8E99, 0x00000002, 0x0039589A, 0x003A8E9A, 0x00000002, 0x00396499, + 0x003A8E99, 0x00000002, 0x0039649A, 0x003A8E9A, + // Block 147, offset 0x24c0 + 0x00000002, 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A, 0x003A8E9A, + 0x00000002, 0x00397499, 0x003A8E99, 0x00000002, 0x0039749A, 0x003A8E9A, + 0x00000002, 0x0039C699, 0x003A8E99, 0x00000002, 0x0039C69A, 0x003A8E9A, + 0x00000002, 0x0039C899, 0x003A8E99, 0x00000002, 0x0039C89A, 0x003A8E9A, + 0x00000002, 0x0039DC99, 0x003A8E99, 0x00000002, 0x0039DC9A, 0x003A8E9A, + 0x00000002, 0x0039DE99, 0x003A8E99, 0x00000002, 0x0039DE9A, 0x003A8E9A, + 0x00000002, 0x0039E699, 0x003A8E99, 0x00000002, 0x0039E69A, 0x003A8E9A, + 0x00000002, 0x0039EE99, 0x003A8E99, 0x00000002, 0x0039EE9A, 0x003A8E9A, + 0x00000002, 0x0039F099, 0x003A8E99, 0x00000002, 0x0039F09A, 0x003A8E9A, + 0x00000002, 0x0039FC99, 0x003A8E99, 0x00000002, 0x0039FC9A, 0x003A8E9A, + 0x00000002, 0x003A1299, 0x003A8E99, 0x00000002, + // Block 148, offset 0x2500 + 0x003A129A, 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99, 0x00000002, + 0x003A1A9A, 0x003A8E9A, 0x00000002, 0x003A4099, 0x003A8E99, 0x00000002, + 0x003A409A, 0x003A8E9A, 0x00000002, 0x003A4E9A, 0x003A8E9A, 0x00000002, + 0x003A5699, 0x003A8E99, 0x00000002, 0x003A569A, 0x003A8E9A, 0x00000002, + 0x003A689A, 0x003A8E9A, 0x00000002, 0x003A8E99, 0xA000D119, 0x00000002, + 0x003A8E9A, 0xA000D11A, 0x00000002, 0x003A9099, 0x003A8E99, 0x00000002, + 0x003A909A, 0x003A8E9A, 0x00000002, 0x4062AC20, 0x4062AC20, 0x00000002, + 0x4062AC20, 0x4062BE20, 0x00000002, 0x4062B020, 0x4062C420, 0x00000002, + 0x4062B020, 0x4062D020, 0x00000002, 0x4062B220, 0x4062B220, 0x00000002, + 0x4062B620, 0x4062AC20, 0x00000002, 0x4062B620, 0x4062B820, 0x00000002, + 0x4062B620, 0x4062BA20, 0x00000002, 0x4062B620, + // Block 149, offset 0x2540 + 0x4062BE20, 0x00000002, 0x4062B620, 0x4062CC20, 0x00000002, 0x4062B620, + 0x4062CE20, 0x00000002, 0x4062B620, 0x4062D020, 0x00000002, 0x4062BA20, + 0x4062BA20, 0x00000002, 0x4062BA20, 0x4062BE20, 0x00000002, 0x4062BE20, + 0x4062BE20, 0x00000002, 0x4062C420, 0x4062C420, 0x00000002, 0x4063A820, + 0x4063D020, 0x00000002, 0x4063AC20, 0x4063D020, 0x00000002, 0x4063B020, + 0x4063D020, 0x00000002, 0x4063B420, 0x4063D020, 0x00000002, 0x4063B820, + 0x4063A820, 0x00000003, 0x4063B820, 0x4063A820, 0x4063D020, 0x00000002, + 0x4063B820, 0x4063D020, 0x00000002, 0x4063C220, 0x4063CE20, 0x00000003, + 0x4063C220, 0x4063CE20, 0x4063D020, 0x00000002, 0x4063C220, 0x4063D020, + 0x00000003, 0x0003F484, 0x002D9A8A, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002F5684, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 150, offset 0x2580 + 0x002F568A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F684, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0030F68A, 0x0003F69F, 0x00000002, 0x002C0A9D, + 0x002F569C, 0x00000002, 0x402C3C20, 0xAE603202, 0x00000002, 0x002C3C83, + 0xAE603202, 0x00000002, 0x402D6A20, 0xAE604702, 0x00000002, 0x002D6A83, + 0xAE604702, 0x00000002, 0x402D6A20, 0xAE605202, 0x00000002, 0x002D6A83, + 0xAE605202, 0x00000002, 0x002D9883, 0xAE603202, 0x00000002, 0x002D9883, + 0xAE603502, 0x00000002, 0x002D9883, 0xAE603702, 0x00000002, 0x002D9883, + 0xAE603C02, 0x00000002, 0x002D9883, 0xAE604102, 0x00000002, 0x002D9883, + 0xAE604702, 0x00000003, 0x002D9883, 0xAE604702, 0xAE603202, 0x00000002, + 0x002D9883, 0xAE604E02, 0x00000002, 0x002D9883, 0xACA05902, 0x00000002, + 0x002D9883, 0xAE605B02, 0x00000002, 0x002D9883, + // Block 151, offset 0x25c0 + 0xAE606402, 0x00000002, 0x002D9883, 0xAE606502, 0x00000002, 0x002D9883, + 0xAE606702, 0x00000002, 0x002D9883, 0xADC07002, 0x00000002, 0x002D9883, + 0xADC07A02, 0x00000002, 0x002D9A8A, 0x002D9A9F, 0x00000003, 0x002D9A8A, + 0x002D9A8A, 0x002D9A9F, 0x00000002, 0x002D9A8A, 0x002DCC8A, 0x00000002, + 0x002D9A9D, 0x00306C9D, 0x00000002, 0x002D9A8A, 0x0030BE9F, 0x00000002, + 0x002D9A84, 0x0030F69F, 0x00000002, 0x002D9A8A, 0x0030F69F, 0x00000002, + 0x002E229C, 0x0030F69C, 0x00000002, 0x402EE420, 0xAE604E02, 0x00000002, + 0x002EE483, 0xAE604E02, 0x00000002, 0x402EE420, 0xAE605B02, 0x00000002, + 0x002EE483, 0xAE605B02, 0x00000002, 0x40306E20, 0xAE603202, 0x00000002, + 0x00306E83, 0xAE603202, 0x00000002, 0x40306E20, 0xAE603502, 0x00000002, + 0x00306E83, 0xAE603502, 0x00000002, 0x40306E20, + // Block 152, offset 0x2600 + 0xAE604102, 0x00000002, 0x00306E83, 0xAE604102, 0x00000002, 0x40306E20, + 0xAE605B02, 0x00000002, 0x00306E83, 0xAE605B02, 0x00000002, 0x0030BE8A, + 0x002D9A9F, 0x00000003, 0x0030BE8A, 0x002D9A8A, 0x002D9A9F, 0x00000002, + 0x0030F684, 0x002D9A9F, 0x00000002, 0x0030F68A, 0x002D9A9F, 0x00000003, + 0x0030F684, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x0030F68A, 0x002D9A8A, + 0x002D9A9F, 0x00000002, 0x402BE020, 0xAE603702, 0x00000002, 0x002BE083, + 0xAE603702, 0x00000002, 0x402BE020, 0xAE603C02, 0x00000002, 0x002BE083, + 0xAE603C02, 0x00000002, 0x402BE020, 0xAE604302, 0x00000002, 0x002BE083, + 0xAE604302, 0x00000002, 0x402C9A20, 0xAE603C02, 0x00000002, 0x002C9A83, + 0xAE603C02, 0x00000002, 0x402C9A20, 0xAE605B02, 0x00000002, 0x002C9A83, + 0xAE605B02, 0x00000002, 0x402D9C20, 0xAE604702, + // Block 153, offset 0x2640 + 0x00000002, 0x002D9C83, 0xAE604702, 0x00000002, 0x402EE420, 0xAE603C02, + 0x00000002, 0x002EE483, 0xAE603C02, 0x00000002, 0x402EE420, 0xAD806802, + 0x00000002, 0x002EE483, 0xAD806802, 0x00000002, 0x402FE820, 0xAE605202, + 0x00000002, 0x002FE883, 0xAE605202, 0x00000002, 0x40306E20, 0xAE604702, + 0x00000002, 0x00306E83, 0xAE604702, 0x00000002, 0x40306E20, 0xAE604E02, + 0x00000002, 0x00306E83, 0xAE604E02, 0x00000002, 0x40306E20, 0xAD806802, + 0x00000002, 0x00306E83, 0xAD806802, 0x00000002, 0x002C6294, 0xA0013914, + 0x00000002, 0x00302C83, 0x402D6820, 0x00000002, 0x00302C89, 0x002D6888, + 0x00000002, 0x40310021, 0xAE603202, 0x00000002, 0x003100A3, 0xAE603202, + 0x00000002, 0x40310021, 0xAE603502, 0x00000002, 0x003100A3, 0xAE603502, + 0x00000002, 0x40310021, 0xAE604102, 0x00000002, + // Block 154, offset 0x2680 + 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02, 0x00000002, + 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202, 0x00000002, + 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02, 0x00000002, + 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02, 0x00000002, + 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202, 0x00000002, + 0x00320E83, 0xAE603202, 0x00000002, 0x40320E21, 0xAE604E02, 0x00000002, + 0x00320EA3, 0xAE604E02, 0x00000002, 0x40320E21, 0xAE605B02, 0x00000002, + 0x00320EA3, 0xAE605B02, 0x00000002, 0x40321020, 0xAE603202, 0x00000002, + 0x00321083, 0xAE603202, 0x00000002, 0x402BDE21, 0x002C9888, 0x00000002, + 0x002BDEA3, 0x002C9888, 0x00000003, 0x402BDE21, 0x002C9888, 0xAE605B02, + 0x00000003, 0x002BDEA3, 0x002C9888, 0xAE605B02, + // Block 155, offset 0x26c0 + 0x00000002, 0x402EE221, 0x002C9888, 0x00000002, 0x002EE2A3, 0x002C9888, + 0x00000003, 0x402EE221, 0x002C9888, 0xAE604E02, 0x00000003, 0x002EE2A3, + 0x002C9888, 0xAE604E02, 0x00000003, 0x402EE221, 0x002C9888, 0xAE605B02, + 0x00000003, 0x002EE2A3, 0x002C9888, 0xAE605B02, 0x00000002, 0x40306C21, + 0x002C9888, 0x00000002, 0x00306CA3, 0x002C9888, 0x00000003, 0x40306C21, + 0x002C9888, 0xAE603202, 0x00000003, 0x00306CA3, 0x002C9888, 0xAE603202, + 0x00000003, 0x40306C21, 0x002C9888, 0xAE603502, 0x00000003, 0x00306CA3, + 0x002C9888, 0xAE603502, 0x00000003, 0x40306C21, 0x002C9888, 0xAE604102, + 0x00000003, 0x00306CA3, 0x002C9888, 0xAE604102, 0x00000003, 0x40306C21, + 0x002C9888, 0xAE605B02, 0x00000003, 0x00306CA3, 0x002C9888, 0xAE605B02, + 0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F, + // Block 156, offset 0x2700 + 0x00000003, 0x0003F484, 0x0030E28A, 0x0003F69F, 0x00000002, 0x002DFE9C, + 0x0030E29D, 0x00000002, 0x002E829C, 0x0030E29D, 0x00000002, 0x002E829D, + 0x0030E29D, 0x00000002, 0x002E9E9C, 0x0030E29D, 0x00000002, 0x002F2C9C, + 0x0030E29D, 0x00000002, 0x40302C21, 0x402D6820, 0x00000002, 0x00302CA3, + 0x402D6820, 0x00000002, 0x4030BE21, 0xAE603202, 0x00000002, 0x0030BEA3, + 0xAE603202, 0x00000002, 0x4030BE21, 0xAE603502, 0x00000002, 0x0030BEA3, + 0xAE603502, 0x00000002, 0x4030BE21, 0xAE603C02, 0x00000002, 0x0030BEA3, + 0xAE603C02, 0x00000002, 0x4030BE21, 0xAE604302, 0x00000002, 0x4030BE21, + 0xAE604702, 0x00000002, 0x0030BEA3, 0xAE604702, 0x00000002, 0x4030BE21, + 0xAE605202, 0x00000002, 0x0030BEA3, 0xAE605202, 0x00000002, 0x4030BE21, + 0xADC07002, 0x00000002, 0x0030BEA3, 0xADC07002, + // Block 157, offset 0x2740 + 0x00000002, 0x0030E29D, 0x002C0A9C, 0x00000002, 0x0030E29D, 0x002C3A9D, + 0x00000002, 0x0030E28C, 0x00312A8C, 0x00000002, 0x40320E20, 0xAE605B02, + 0x00000002, 0x00320E83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, + 0x00000002, 0x00320EA3, 0xAE603202, 0x00000002, 0x40321020, 0xAE605B02, + 0x00000002, 0x00321083, 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, + 0x00000002, 0x003210A3, 0xAE603202, 0x00000002, 0x40321023, 0xAE603202, + 0x00000002, 0x003210E3, 0xAE603202, 0x00000002, 0x40321023, 0xAE603C02, + 0x00000002, 0x003210E3, 0xAE603C02, 0x00000002, 0x40321023, 0xAE604702, + 0x00000002, 0x003210E3, 0xAE604702, 0x00000002, 0x40321023, 0xAE605B02, + 0x00000002, 0x003210E3, 0xAE605B02, 0x00000002, 0x40321023, 0xAD806802, + 0x00000002, 0x003210E3, 0xAD806802, 0x00000002, + // Block 158, offset 0x2780 + 0x0032769C, 0x0030E29D, 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, + 0x002C3E83, 0xACA05602, 0x00000002, 0x402C0820, 0xAE603702, 0x00000002, + 0x002C0883, 0xAE603702, 0x00000002, 0x402C0820, 0xAE603C02, 0x00000002, + 0x002C0883, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE603C02, 0x00000002, + 0x002D0683, 0xAE603C02, 0x00000002, 0x402D0620, 0xAE605B02, 0x00000002, + 0x002D0683, 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, 0x00000002, + 0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, 0x00000002, + 0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, 0x00000002, + 0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, 0x00000002, + 0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, 0x00000002, + 0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, + // Block 159, offset 0x27c0 + 0xAE604702, 0x00000002, 0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, + 0xAE604E02, 0x00000002, 0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, + 0xAD806802, 0x00000002, 0x0030BC83, 0xAD806802, 0x00000002, 0x40320E20, + 0xAE604E02, 0x00000002, 0x00320E83, 0xAE604E02, 0x00000002, 0x4062AC20, + 0x4062B020, 0x00000002, 0x4062AC20, 0x4062B220, 0x00000002, 0x4062AC20, + 0x4062B620, 0x00000002, 0x4062AC20, 0x4062BA20, 0x00000003, 0x4062AC20, + 0x4062BE20, 0x4062AC20, 0x00000002, 0x4062AC20, 0x4062C820, 0x00000002, + 0x4062AC20, 0x4062CA20, 0x00000002, 0x4062AC20, 0x4062D020, 0x00000002, + 0x4062B020, 0x4062AC20, 0x00000002, 0x4062B020, 0x4062B020, 0x00000002, + 0x4062B020, 0x4062B220, 0x00000002, 0x4062B020, 0x4062BA20, 0x00000002, + 0x4062B020, 0x4062BE20, 0x00000002, 0x4062B020, + // Block 160, offset 0x2800 + 0x4062CC20, 0x00000002, 0x4062B220, 0x4062AC20, 0x00000002, 0x4062B220, + 0x4062B620, 0x00000003, 0x4062B620, 0x4062AC20, 0x4062BE20, 0x00000002, + 0x4062B620, 0x4062B020, 0x00000002, 0x4062B620, 0x4062B220, 0x00000003, + 0x4062B620, 0x4062B220, 0x4062D020, 0x00000002, 0x4062B620, 0x4062B620, + 0x00000003, 0x4062B620, 0x4062B820, 0x4062AC20, 0x00000003, 0x4062B620, + 0x4062B820, 0x4062BE20, 0x00000003, 0x4062B620, 0x4062BA20, 0x4062BE20, + 0x00000003, 0x4062B620, 0x4062BA20, 0x4062C220, 0x00000003, 0x4062B620, + 0x4062BA20, 0x4062D020, 0x00000003, 0x4062B620, 0x4062BE20, 0x4062BE20, + 0x00000002, 0x4062B620, 0x4062C220, 0x00000002, 0x4062B620, 0x4062CA20, + 0x00000002, 0x4062B820, 0x4062AC20, 0x00000002, 0x4062B820, 0x4062B620, + 0x00000002, 0x4062B820, 0x4062BA20, 0x00000002, + // Block 161, offset 0x2840 + 0x4062B820, 0x4062BE20, 0x00000003, 0x4062B820, 0x4062BE20, 0x4062BE20, + 0x00000002, 0x4062B820, 0x4062C220, 0x00000002, 0x4062B820, 0x4062C820, + 0x00000002, 0x4062B820, 0x4062D020, 0x00000002, 0x4062BA20, 0x4062AC20, + 0x00000002, 0x4062BA20, 0x4062B020, 0x00000002, 0x4062BA20, 0x4062B220, + 0x00000002, 0x4062BA20, 0x4062B620, 0x00000003, 0x4062BA20, 0x4062BA20, + 0x4062C220, 0x00000003, 0x4062BA20, 0x4062BE20, 0x4062AC20, 0x00000003, + 0x4062BA20, 0x4062BE20, 0x4062B220, 0x00000003, 0x4062BA20, 0x4062BE20, + 0x4062BA20, 0x00000003, 0x4062BA20, 0x4062BE20, 0x4062BE20, 0x00000003, + 0x4062BA20, 0x4062BE20, 0x4062C420, 0x00000002, 0x4062BA20, 0x4062C220, + 0x00000002, 0x4062BA20, 0x4062C420, 0x00000002, 0x4062BA20, 0x4062C820, + 0x00000002, 0x4062BA20, 0x4062CC20, 0x00000002, + // Block 162, offset 0x2880 + 0x4062BA20, 0x4062CE20, 0x00000002, 0x4062BA20, 0x4062D020, 0x00000002, + 0x4062BE20, 0x4062AC20, 0x00000002, 0x4062BE20, 0x4062B020, 0x00000002, + 0x4062BE20, 0x4062B220, 0x00000002, 0x4062BE20, 0x4062B620, 0x00000002, + 0x4062BE20, 0x4062B820, 0x00000002, 0x4062BE20, 0x4062BA20, 0x00000003, + 0x4062BE20, 0x4062BA20, 0x4062AC20, 0x00000003, 0x4062BE20, 0x4062BE20, + 0x4062BE20, 0x00000002, 0x4062BE20, 0x4062C220, 0x00000002, 0x4062BE20, + 0x4062C420, 0x00000002, 0x4062BE20, 0x4062C820, 0x00000002, 0x4062BE20, + 0x4062CA20, 0x00000002, 0x4062BE20, 0x4062CC20, 0x00000002, 0x4062BE20, + 0x4062CE20, 0x00000002, 0x4062BE20, 0x4062D020, 0x00000002, 0x4062C220, + 0x4062AC20, 0x00000003, 0x4062C220, 0x4062AC20, 0x4062AC20, 0x00000002, + 0x4062C220, 0x4062B220, 0x00000002, 0x4062C220, + // Block 163, offset 0x28c0 + 0x4062B820, 0x00000002, 0x4062C220, 0x4062BA20, 0x00000002, 0x4062C220, + 0x4062BE20, 0x00000002, 0x4062C220, 0x4062C220, 0x00000002, 0x4062C220, + 0x4062C420, 0x00000002, 0x4062C220, 0x4062C820, 0x00000002, 0x4062C220, + 0x4062CA20, 0x00000002, 0x4062C220, 0x4062CC20, 0x00000002, 0x4062C220, + 0x4062CE20, 0x00000002, 0x4062C420, 0x4062C220, 0x00000002, 0x4062C820, + 0x4062CA20, 0x00000002, 0x4062C820, 0x4062D020, 0x00000002, 0x4062CE20, + 0x4062BA20, 0x00000002, 0x4062CE20, 0x4062C220, 0x00000002, 0x4062D020, + 0x4062B020, 0x00000002, 0x4062D020, 0x4062B620, 0x00000002, 0x4062D020, + 0x4062B820, 0x00000002, 0x4062D020, 0x4062BA20, 0x00000002, 0x4062D020, + 0x4062D020, 0x00000002, 0x4063A820, 0x4063B820, 0x00000002, 0x4063A820, + 0x4063C220, 0x00000002, 0x4063A820, 0x4063CC20, + // Block 164, offset 0x2900 + 0x00000002, 0x4063AC20, 0x4063B820, 0x00000002, 0x4063AC20, 0x4063C020, + 0x00000002, 0x4063AC20, 0x4063C220, 0x00000002, 0x4063B020, 0x4063B820, + 0x00000002, 0x4063B020, 0x4063C220, 0x00000002, 0x4063B020, 0x4063CC20, + 0x00000002, 0x4063B420, 0x4063AC20, 0x00000002, 0x4063B420, 0x4063B820, + 0x00000002, 0x4063B420, 0x4063C220, 0x00000002, 0x4063B820, 0x4063AC20, + 0x00000003, 0x4063B820, 0x4063AC20, 0x4063D020, 0x00000002, 0x4063B820, + 0x4063B020, 0x00000003, 0x4063B820, 0x4063B020, 0x4063D020, 0x00000003, + 0x4063B820, 0x4063B420, 0x4063D020, 0x00000002, 0x4063B820, 0x4063B820, + 0x00000002, 0x4063B820, 0x4063C220, 0x00000002, 0x4063C020, 0x4063AC20, + 0x00000003, 0x4063C020, 0x4063AC20, 0x4063D020, 0x00000002, 0x4063C020, + 0x4063B420, 0x00000002, 0x4063C020, 0x4063B820, + // Block 165, offset 0x2940 + 0x00000002, 0x4063C020, 0x4063D020, 0x00000002, 0x4063C220, 0x4063A820, + 0x00000003, 0x4063C220, 0x4063A820, 0x4063D020, 0x00000003, 0x4063C220, + 0x4063B020, 0x4063CC20, 0x00000003, 0x4063C220, 0x4063B420, 0x4063D020, + 0x00000002, 0x4063C220, 0x4063C220, 0x00000002, 0x4063CA20, 0x4063A820, + 0x00000002, 0x4063CA20, 0x4063B020, 0x00000003, 0x4063CA20, 0x4063B020, + 0x4063D020, 0x00000002, 0x4063CA20, 0x4063B420, 0x00000003, 0x4063CA20, + 0x4063B420, 0x4063D020, 0x00000002, 0x4063CA20, 0x4063C220, 0x00000002, + 0x4063CA20, 0x4063D020, 0x00000002, 0x4063CC20, 0x4063C220, 0x00000002, + 0x4063CC20, 0x4063CC20, 0x00000002, 0x4063CE20, 0x4063C220, 0x00000002, + 0x4063D020, 0x4063A820, 0x00000002, 0x4063D020, 0x4063AC20, 0x00000002, + 0x4063D020, 0x4063B820, 0x00000002, 0x4063D020, + // Block 166, offset 0x2980 + 0x4063C220, 0x00000002, 0x4063D020, 0x4063CC20, 0x00000002, 0x0062AC86, + 0x0063A886, 0x00000002, 0x0062B086, 0x0063A886, 0x00000002, 0x0062B286, + 0x0063A886, 0x00000002, 0x0062B686, 0x0063A886, 0x00000002, 0x0062B886, + 0x0063A886, 0x00000002, 0x0062BA86, 0x0063A886, 0x00000002, 0x0062BE86, + 0x0063A886, 0x00000002, 0x0062C286, 0x0063A886, 0x00000002, 0x0062C286, + 0x0063C286, 0x00000002, 0x0062C486, 0x0063A886, 0x00000002, 0x0062C886, + 0x0063A886, 0x00000002, 0x0062CA86, 0x0063A886, 0x00000002, 0x0062CC86, + 0x0063A886, 0x00000002, 0x0062CE86, 0x0063A886, 0x00000002, 0x0062D086, + 0x0063A886, 0x00000002, 0x40302A20, 0xAE605202, 0x00000002, 0x00302A83, + 0xAE605202, 0x00000002, 0x40320820, 0xAE603202, 0x00000002, 0x00320883, + 0xAE603202, 0x00000002, 0x40320A20, 0xAE603202, + // Block 167, offset 0x29c0 + 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20, 0xAE605B02, + 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603702, + 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21, 0xAE603C02, + 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, 0x40321022, 0xAE603202, + 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, 0x40321022, 0xAE604702, + 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, 0x40321022, 0xAE605B02, + 0x00000002, 0x003210C3, 0xAE605B02, 0x00000002, 0x40321022, 0xAD806802, + 0x00000002, 0x003210C3, 0xAD806802, 0x00000002, 0x40321023, 0xAE603502, + 0x00000002, 0x003210E3, 0xAE603502, 0x00000002, 0x40321023, 0xAE604E02, + 0x00000002, 0x003210E3, 0xAE604E02, 0x00000002, 0x40321023, 0xAE606402, + 0x00000002, 0x003210E3, 0xAE606402, 0x00000002, + // Block 168, offset 0x2a00 + 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002, 0x00000002, + 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02, 0x00000002, + 0x402BE220, 0xAE605B02, 0x00000002, 0x002BE283, 0xAE605B02, 0x00000002, + 0x402EE620, 0xAE603202, 0x00000002, 0x002EE683, 0xAE603202, 0x00000002, + 0x402EE620, 0xAE603502, 0x00000002, 0x002EE683, 0xAE603502, 0x00000002, + 0x402EE620, 0xAE604E02, 0x00000002, 0x002EE683, 0xAE604E02, 0x00000002, + 0x402EE620, 0xAE606402, 0x00000002, 0x002EE683, 0xAE606402, 0x00000002, + 0x402EE620, 0xADC07002, 0x00000002, 0x002EE683, 0xADC07002, 0x00000002, + 0x0030BE83, 0xAE604E02, 0x00000002, 0x0030BE83, 0xADC07002, 0x00000002, + 0x40321020, 0xAE604E02, 0x00000002, 0x00321083, 0xAE604E02, 0x00000002, + 0x40321024, 0xAE603202, 0x00000002, 0x00321103, + // Block 169, offset 0x2a40 + 0xAE603202, 0x00000002, 0x40321024, 0xAE603502, 0x00000002, 0x00321103, + 0xAE603502, 0x00000002, 0x40321024, 0xAE604E02, 0x00000002, 0x00321103, + 0xAE604E02, 0x00000002, 0x40321024, 0xAE606402, 0x00000002, 0x00321103, + 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002, 0x00321103, + 0xADC07002, +} + +// mainContractElem: 1125 entries, 4500 bytes +var mainContractElem = [1125]uint32{ + // Block 0, offset 0x0 + 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01, + 0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288, + 0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220, + 0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20, + 0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488, + 0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20, + 0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620, + 0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688, + 0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20, + 0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20, + 0x40358220, 0x40358A20, 0x00357288, 0x00357A88, + // Block 1, offset 0x40 + 0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288, + 0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020, + 0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88, + 0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620, + 0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20, + 0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020, + 0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220, + 0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220, + 0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20, + 0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420, + 0x40452820, 0x40452420, 0x40452620, 0x40498420, + // Block 2, offset 0x80 + 0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC, + 0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926, + 0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980, + 0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA, + 0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34, + 0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E, + 0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8, + 0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884, + 0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE, + 0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938, + 0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974, + // Block 3, offset 0xc0 + 0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE, + 0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28, + 0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82, + 0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC, + 0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820, + 0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2, + 0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C, + 0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986, + 0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0, + 0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A, + 0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76, + // Block 4, offset 0x100 + 0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0, + 0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A, + 0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6, + 0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920, + 0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A, + 0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4, + 0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E, + 0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88, + 0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2, + 0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20, + 0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA, + // Block 5, offset 0x140 + 0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914, + 0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E, + 0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8, + 0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22, + 0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C, + 0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6, + 0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30, + 0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60, + 0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8, + 0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32, + 0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E, + // Block 6, offset 0x180 + 0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1, + 0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB, + 0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81, + 0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9, + 0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53, + 0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD, + 0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1, + 0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66, + 0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE, + 0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38, + 0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74, + // Block 7, offset 0x1c0 + 0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7, + 0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1, + 0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87, + 0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF, + 0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59, + 0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3, + 0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9, + 0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C, + 0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4, + 0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E, + 0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A, + // Block 8, offset 0x200 + 0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED, + 0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7, + 0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C, + 0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86, + 0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0, + 0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A, + 0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94, + 0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE, + 0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48, + 0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2, + 0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20, + // Block 9, offset 0x240 + 0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C, + 0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6, + 0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10, + 0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A, + 0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4, + 0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E, + 0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78, + 0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2, + 0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50, + 0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA, + 0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6, + // Block 10, offset 0x280 + 0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40, + 0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A, + 0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4, + 0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E, + 0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8, + 0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26, + 0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80, + 0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA, + 0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34, + 0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E, + 0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA, + // Block 11, offset 0x2c0 + 0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24, + 0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E, + 0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8, + 0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56, + 0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0, + 0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A, + 0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64, + 0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE, + 0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18, + 0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72, + 0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE, + // Block 12, offset 0x300 + 0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011, + 0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017, + 0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591, + 0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20, + 0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20, + 0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20, + 0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420, + 0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x40094220, + 0x40094420, 0x40393820, 0x40393A21, 0x40393A22, 0x40393A23, 0x403A7420, + 0x403A7621, 0x403A9020, 0x403A9221, 0x402C3A20, 0x402C3C20, 0x002C3A88, + 0x002C3C83, 0x402D2220, 0x402D2420, 0x002D2288, + // Block 13, offset 0x340 + 0x002D2483, 0x002D9883, 0x002D9A83, 0x402EE220, 0x402EE420, 0x002EE288, + 0x002EE483, 0x402FE620, 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20, + 0x40306E20, 0x00306C88, 0x00306E83, 0x402E2220, 0x402E2420, 0x402E2420, + 0x002E2288, 0x002E2483, 0x002E2483, 0x402BDE20, 0x402BE020, 0x002BDE88, + 0x002BE083, 0x402C6220, 0x402C6420, 0x002C6288, 0x002C6483, 0x402C9820, + 0x402C9A20, 0x402C9C20, 0x002C9888, 0x002C9A83, 0x002C9C83, 0x402D9A20, + 0x402D9C20, 0x002D9A88, 0x002D9C83, 0x402E9E20, 0x402EA020, 0x002E9E88, + 0x002EA083, 0x402F7A20, 0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40302C20, + 0x40302E20, 0x00302C88, 0x00302E83, 0x40306C20, 0x40306E20, 0x40307020, + 0x00306C88, 0x00306E83, 0x00307083, 0x40310020, 0x40310220, 0x00310088, + 0x00310283, 0x40312A20, 0x40312C20, 0x00312A88, + // Block 14, offset 0x380 + 0x00312C83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3, + 0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88, + 0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22, + 0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288, + 0x00320EA3, 0x00320EC3, 0x402BDE20, 0xE00026B2, 0x002BDE88, 0xE00026B5, + 0x402EE220, 0xE00026C0, 0x002EE288, 0xE00026C3, 0x40306C20, 0xE00026D6, + 0x00306C88, 0xE00026D9, 0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, + 0x00320E83, 0x00320C83, 0x402EE220, 0x40321023, 0x40321020, 0x40321022, + 0x002EE288, 0x003210E3, 0x00321083, 0x003210C3, 0x402C3A20, 0x402C3E20, + 0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, 0x402C6220, 0x402C6420, + 0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, + // Block 15, offset 0x3c0 + 0x002C6486, 0x002C6484, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, + 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x002E9E88, + 0x002EA086, 0x002EA084, 0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, + 0x002BDE88, 0x002C0883, 0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, + 0x002C9888, 0x002D0683, 0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, + 0x402EE220, 0x402F2A20, 0x40320E20, 0x002EE288, 0x002F2A83, 0x00320E83, + 0x40306C20, 0x4030BC20, 0x00306C88, 0x0030BC83, 0x40310020, 0x40312820, + 0x00310088, 0x00312883, 0x002DFE88, 0x002F56A3, 0x402BDE20, 0x40320C21, + 0x40321020, 0x002BDE88, 0x00320CA3, 0x00321083, 0x4062AC20, 0x4062AC21, + 0x4062B220, 0x4062B221, 0x4062BA20, 0x4062BA21, 0x4062BE20, 0x4062BE21, + 0x4062C420, 0x4062C421, 0x402BDE20, 0x40320C21, + // Block 16, offset 0x400 + 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083, 0x003210A4, + 0x003210A3, 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, 0x40320E20, + 0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, 0x00320E83, + 0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, 0x402C5E20, + 0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, 0x002D2288, + 0x002D6483, 0x402DFE20, 0x402E2020, 0x002DFE88, 0x002E2083, 0x402E9E20, + 0x402EE021, 0x402EE022, 0x002E9E88, 0x002EE0A3, 0x002EE0C3, 0x402FE620, + 0x40302A20, 0x002FE688, 0x00302A83, 0x40312A20, 0x40320620, 0x00312A88, + 0x00320683, 0x402EE220, 0x40321023, 0x40321022, 0x40321020, 0x40321021, + 0x40321024, 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3, + 0x00321103, 0x402BDE20, 0x402BE020, 0x402BE220, + // Block 17, offset 0x440 + 0x002BDE88, 0x002BE083, 0x002BE283, 0x402E2220, 0xE0000CFB, 0x402E2420, + 0x402E2620, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E2483, 0x002E2683, + 0xE0000D01, 0x402EE220, 0x402EE420, 0x402EE620, 0x002EE288, 0x002EE483, + 0x002EE683, 0x402F7A20, 0x402F7C20, 0x402F7E20, 0x002F7A88, 0x002F7C83, + 0x002F7E83, 0x402C9820, 0x40320E22, 0x002C9888, 0x00320EC3, 0x402EE220, + 0x40321024, 0x40321020, 0x40321022, 0x002EE288, 0x00321103, 0x00321083, + 0x003210C3, +} + +// mainValues: 37888 entries, 151552 bytes +// Block 2 is the null block. +var mainValues = [37888]uint32{ + // Block 0x0, offset 0x0 + 0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000, + 0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000, + 0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420, + 0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000, + 0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000, + 0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000, + 0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000, + 0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000, + 0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20, + 0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220, + 0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820, + 0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220, + 0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220, + 0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20, + 0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220, + 0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420, + // Block 0x1, offset 0x40 + 0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88, + 0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288, + 0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88, + 0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288, + 0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688, + 0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288, + 0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820, + 0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620, + 0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20, + 0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220, + 0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20, + 0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220, + 0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620, + 0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220, + 0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20, + 0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000, + 0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000, + 0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000, + 0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000, + 0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000, + 0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000, + 0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000, + 0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000, + 0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020, + 0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20, + 0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020, + 0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620, + 0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294, + 0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620, + 0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220, + 0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620, + // Block 0x4, offset 0x100 + 0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969, + 0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53, + 0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20, + 0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43, + 0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94, + 0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20, + 0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed, + 0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b, + 0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966, + 0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d, + 0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d, + 0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40, + 0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91, + 0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20, + 0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea, + 0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114, + // Block 0x5, offset 0x140 + 0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8, + 0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35, + 0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47, + 0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83, + 0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43, + 0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29, + 0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17, + 0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf, + 0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7, + 0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18, + 0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d, + 0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57, + 0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404, + 0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c, + 0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8, + 0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04, + // Block 0x6, offset 0x180 + 0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51, + 0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d, + 0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20, + 0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d, + 0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f, + 0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9, + 0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c, + 0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44, + 0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96, + 0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620, + 0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c, + 0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6, + 0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036, + 0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b, + 0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d, + 0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64, + // Block 0x7, offset 0x1c0 + 0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220, + 0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88, + 0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488, + 0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888, + 0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488, + 0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688, + 0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220, + 0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088, + 0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020, + 0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488, + 0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220, + 0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f, + 0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888, + 0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488, + 0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620, + 0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420, + // Block 0x8, offset 0x200 + 0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20, + 0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a, + 0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a, + 0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d, + 0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3, + 0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006, + 0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e, + 0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e, + 0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef, + 0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb, + 0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d, + 0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f, + 0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404, + 0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488, + 0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950, + 0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15, + // Block 0x9, offset 0x240 + 0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992, + 0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65, + 0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f, + 0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d, + 0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb, + 0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056, + 0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2, + 0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1, + 0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220, + 0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c, + 0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5, + 0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01, + 0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126, + 0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420, + 0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488, + 0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20, + // Block 0xa, offset 0x280 + 0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88, + 0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220, + 0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20, + 0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020, + 0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20, + 0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20, + 0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220, + 0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20, + 0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820, + 0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20, + 0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220, + 0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020, + 0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820, + 0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20, + 0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20, + 0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020, + // Block 0xb, offset 0x2c0 + 0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820, + 0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420, + 0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20, + 0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820, + 0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020, + 0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220, + 0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20, + 0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20, + 0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca, + 0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf, + 0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18, + 0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820, + 0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94, + 0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294, + 0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620, + 0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020, + // Block 0xc, offset 0x300 + 0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820, + 0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020, + 0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820, + 0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020, + 0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420, + 0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20, + 0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420, + 0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020, + 0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694, + 0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620, + 0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20, + 0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420, + 0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20, + 0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420, + 0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20, + 0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420, + // Block 0xd, offset 0x340 + 0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02, + 0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202, + 0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02, + 0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502, + 0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202, + 0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002, + 0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802, + 0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002, + 0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002, + 0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602, + 0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002, + 0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002, + 0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002, + 0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102, + 0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002, + 0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02, + // Block 0xe, offset 0x380 + 0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202, + 0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002, + 0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02, + 0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000, + 0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002, + 0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02, + 0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02, + 0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002, + 0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef, + 0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836, + 0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741, + 0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b, + 0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620, + 0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020, + 0x03ba: 0x00326c84, 0x03bb: 0x40329220, + 0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220, + // Block 0xf, offset 0x3c0 + 0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620, + 0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a, + 0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492, + 0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688, + 0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888, + 0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288, + 0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88, + 0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88, + 0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88, + 0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2, + 0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337, + 0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620, + 0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820, + 0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220, + 0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20, + // Block 0x10, offset 0x400 + 0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20, + 0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20, + 0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef, + 0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368, + 0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a, + 0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364, + 0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220, + 0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420, + 0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820, + 0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420, + 0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820, + 0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620, + 0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20, + 0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888, + 0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220, + 0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488, + // Block 0x11, offset 0x440 + 0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288, + 0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688, + 0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288, + 0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488, + 0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092, + 0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071, + 0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488, + 0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88, + 0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1, + 0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071, + 0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071, + 0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488, + 0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092, + 0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071, + 0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420, + 0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20, + // Block 0x12, offset 0x480 + 0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1, + 0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071, + 0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071, + 0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420, + 0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220, + 0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620, + 0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220, + 0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420, + 0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20, + 0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620, + 0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020, + 0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20, + 0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20, + 0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20, + 0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20, + 0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820, + // Block 0x13, offset 0x4c0 + 0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302, + 0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02, + 0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20, + 0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020, + 0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20, + 0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20, + 0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820, + 0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020, + 0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20, + 0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820, + 0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420, + 0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220, + 0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20, + 0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20, + 0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420, + 0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20, + // Block 0x14, offset 0x500 + 0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088, + 0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288, + 0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288, + 0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020, + 0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220, + 0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20, + 0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220, + 0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220, + 0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2, + 0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620, + 0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620, + 0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db, + 0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20, + 0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220, + 0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220, + 0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420, + // Block 0x15, offset 0x540 + 0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020, + 0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020, + 0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20, + 0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620, + 0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620, + 0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820, + 0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220, + 0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020, + 0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20, + 0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20, + 0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688, + 0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88, + 0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688, + 0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88, + // Block 0x16, offset 0x580 + 0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688, + 0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88, + 0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688, + 0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88, + 0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688, + 0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88, + 0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020, + 0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220, + 0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620, + 0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20, + 0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620, + 0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20, + 0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620, + 0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20, + 0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620, + 0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20, + // Block 0x17, offset 0x5c0 + 0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620, + 0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404, + 0x05c9: 0x40026e20, 0x05ca: 0x40021c20, + 0x05cf: 0x4027e420, + 0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000, + 0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000, + 0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000, + 0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000, + 0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000, + 0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000, + 0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000, + 0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000, + 0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802, + 0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02, + 0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02, + 0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502, + // Block 0x18, offset 0x600 + 0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820, + 0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02, + 0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620, + 0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20, + 0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420, + 0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99, + 0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099, + 0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420, + 0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20, + 0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20, + 0x0634: 0x40055e20, + // Block 0x19, offset 0x640 + 0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000, + 0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20, + 0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620, + 0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020, + 0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000, + 0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000, + 0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420, + 0x065e: 0x40027020, 0x065f: 0x4002cc20, + 0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020, + 0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151, + 0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820, + 0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820, + 0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620, + 0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620, + 0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820, + 0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020, + // Block 0x1a, offset 0x680 + 0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20, + 0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820, + 0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202, + 0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202, + 0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02, + 0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202, + 0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602, + 0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002, + 0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db, + 0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3, + 0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20, + 0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020, + 0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20, + 0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404, + 0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20, + 0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220, + // Block 0x1b, offset 0x6c0 + 0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620, + 0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20, + 0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220, + 0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20, + 0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20, + 0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420, + 0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20, + 0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20, + 0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220, + 0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420, + 0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020, + 0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20, + 0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220, + 0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620, + 0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20, + 0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20, + // Block 0x1c, offset 0x700 + 0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20, + 0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20, + 0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420, + 0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620, + 0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800, + 0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000, + 0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000, + 0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000, + 0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000, + 0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000, + 0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000, + 0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20, + 0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de, + 0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6, + 0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420, + 0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020, + // Block 0x1d, offset 0x740 + 0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220, + 0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20, + 0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220, + 0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000, + 0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420, + 0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20, + 0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420, + 0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20, + 0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420, + 0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812, + 0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220, + 0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c, + 0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602, + 0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02, + 0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02, + 0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202, + // Block 0x1e, offset 0x780 + 0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000, + 0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000, + 0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000, + 0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20, + 0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20, + 0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20, + 0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20, + 0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20, + 0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20, + 0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220, + 0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20, + 0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220, + 0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20, + 0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820, + 0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20, + 0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420, + // Block 0x1f, offset 0x7c0 + 0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220, + 0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20, + 0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20, + 0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20, + 0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20, + 0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220, + 0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20, + 0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420, + 0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020, + 0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820, + 0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020, + 0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820, + 0x07f0: 0x403b7a20, 0x07f1: 0x403b6420, + // Block 0x20, offset 0x800 + 0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4, + 0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc, + 0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20, + 0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620, + 0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20, + 0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620, + 0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20, + 0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620, + 0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20, + 0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620, + 0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302, + 0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702, + 0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02, + 0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20, + 0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000, + // Block 0x21, offset 0x840 + 0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20, + 0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620, + 0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20, + 0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620, + 0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20, + 0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b, + 0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d, + 0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802, + 0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902, + 0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02, + 0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02, + 0x086c: 0xae609e02, 0x086d: 0xae60a102, + 0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420, + 0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20, + 0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420, + 0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20, + // Block 0x22, offset 0x880 + 0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20, + 0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420, + 0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20, + 0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420, + 0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20, + 0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420, + 0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002, + 0x089e: 0x40056820, + // Block 0x23, offset 0x8c0 + 0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20, + 0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420, + 0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20, + 0x08ec: 0x40393620, + // Block 0x24, offset 0x900 + 0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402, + 0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000, + 0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000, + 0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000, + 0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02, + 0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02, + 0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502, + // Block 0x25, offset 0x940 + 0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402, + 0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20, + 0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420, + 0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020, + 0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820, + 0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020, + 0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20, + 0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620, + 0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020, + 0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820, + 0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20, + 0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820, + 0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020, + 0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620, + 0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20, + 0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620, + // Block 0x26, offset 0x980 + 0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20, + 0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20, + 0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620, + 0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020, + 0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502, + 0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420, + 0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827, + 0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836, + 0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420, + 0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8, + 0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592, + 0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856, + 0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220, + 0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20, + 0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220, + 0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220, + // Block 0x27, offset 0x9c0 + 0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402, + 0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020, + 0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820, + 0x09cc: 0x40408c20, 0x09cf: 0x40409020, + 0x09d0: 0x40409220, 0x09d3: 0x40409420, + 0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20, + 0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420, + 0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20, + 0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420, + 0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20, + 0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220, + 0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20, + 0x09f0: 0x4040cc20, 0x09f2: 0x4040d020, + 0x09f6: 0x4040d420, 0x09f7: 0x4040d620, + 0x09f8: 0x4040d820, 0x09f9: 0x4040da20, + 0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020, + // Block 0x28, offset 0xa00 + 0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820, + 0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191, + 0x0a08: 0x4040f220, 0x0a0b: 0x4040f420, + 0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845, + 0x0a17: 0x4040fa20, + 0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848, + 0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20, + 0x0a26: 0xe000016d, 0x0a27: 0xe00001fb, + 0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595, + 0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859, + 0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20, + 0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620, + 0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20, + // Block 0x29, offset 0xa40 + 0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402, + 0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020, + 0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220, + 0x0a4f: 0x40411420, + 0x0a50: 0x40410a20, 0x0a53: 0x40410420, + 0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020, + 0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820, + 0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020, + 0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820, + 0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020, + 0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620, + 0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20, + 0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a, + 0x0a75: 0x40415620, 0x0a76: 0xe000184b, + 0x0a78: 0x40411620, 0x0a79: 0x40411820, + 0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20, + // Block 0x2a, offset 0xa80 + 0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220, + 0x0a87: 0x40416420, + 0x0a88: 0x40416620, 0x0a8b: 0x40416820, + 0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6, + 0x0a91: 0x40411a20, + 0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854, + 0x0a9c: 0x40415820, 0x0a9e: 0xe0001857, + 0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe, + 0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598, + 0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c, + 0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20, + 0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020, + // Block 0x2b, offset 0xac0 + 0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402, + 0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420, + 0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20, + 0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620, + 0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20, + 0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420, + 0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20, + 0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420, + 0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20, + 0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420, + 0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20, + 0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220, + 0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220, + 0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20, + 0x0af8: 0x4041ce20, 0x0af9: 0x4041d020, + 0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820, + // Block 0x2c, offset 0xb00 + 0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020, + 0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20, + 0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020, + 0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa, + 0x0b10: 0x40416e20, + 0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620, + 0x0b26: 0xe0000173, 0x0b27: 0xe0000201, + 0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b, + 0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f, + 0x0b30: 0x40057420, 0x0b31: 0x4027ee20, + // Block 0x2d, offset 0xb40 + 0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402, + 0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20, + 0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220, + 0x0b4c: 0x40420620, 0x0b4f: 0x40420a20, + 0x0b50: 0x40420c20, 0x0b53: 0x40420e20, + 0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620, + 0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20, + 0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620, + 0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20, + 0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620, + 0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20, + 0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420, + 0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20, + 0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420, + 0x0b78: 0x40425620, 0x0b79: 0x40425820, + 0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20, + // Block 0x2e, offset 0xb80 + 0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620, + 0x0b84: 0x40426820, 0x0b87: 0xc05d01e1, + 0x0b88: 0x40427020, 0x0b8b: 0x40427220, + 0x0b8c: 0x40427420, 0x0b8d: 0x8209213b, + 0x0b96: 0x40427820, 0x0b97: 0x40427a20, + 0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620, + 0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20, + 0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204, + 0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e, + 0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862, + 0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20, + 0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620, + // Block 0x2f, offset 0xbc0 + 0x0bc2: 0xa000f302, 0x0bc3: 0x40429620, + 0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220, + 0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820, + 0x0bce: 0x40428a20, 0x0bcf: 0x40428c20, + 0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220, + 0x0bd4: 0x40429420, 0x0bd5: 0x40429820, + 0x0bd9: 0x40429a20, 0x0bda: 0x40429c20, + 0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020, + 0x0be3: 0x4042a220, + 0x0be4: 0x4042a420, + 0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820, + 0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20, + 0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620, + 0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020, + 0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420, + 0x0bfe: 0x4042c620, 0x0bff: 0x4042c820, + // Block 0x30, offset 0xc00 + 0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20, + 0x0c06: 0xc0630261, 0x0c07: 0xc06602b1, + 0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820, + 0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e, + 0x0c10: 0x40427c20, + 0x0c17: 0x4042de20, + 0x0c26: 0xe0000179, 0x0c27: 0xe0000207, + 0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1, + 0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865, + 0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20, + 0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620, + 0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20, + // Block 0x31, offset 0xc40 + 0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402, + 0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420, + 0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20, + 0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620, + 0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20, + 0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420, + 0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20, + 0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820, + 0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020, + 0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820, + 0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20, + 0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620, + 0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820, + 0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220, + 0x0c78: 0x40434420, 0x0c79: 0x40434620, + 0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20, + // Block 0x32, offset 0xc80 + 0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620, + 0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020, + 0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620, + 0x0c8c: 0x40436820, 0x0c8d: 0x820921b5, + 0x0c95: 0x825421b6, 0x0c96: 0x825b21b7, + 0x0c98: 0x40430c20, 0x0c99: 0x40431220, + 0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20, + 0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a, + 0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4, + 0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868, + 0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402, + 0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20, + // Block 0x33, offset 0xcc0 + 0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402, + 0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420, + 0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20, + 0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620, + 0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20, + 0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420, + 0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20, + 0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420, + 0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20, + 0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420, + 0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20, + 0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220, + 0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420, + 0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20, + 0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220, + 0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311, + // Block 0x34, offset 0xd00 + 0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820, + 0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220, + 0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820, + 0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe, + 0x0d15: 0x4043fe20, 0x0d16: 0x40440020, + 0x0d1e: 0x4043d620, + 0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20, + 0x0d26: 0xe0000182, 0x0d27: 0xe0000213, + 0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7, + 0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b, + 0x0d31: 0x4043da20, 0x0d32: 0x4043dc20, + // Block 0x35, offset 0xd40 + 0x0d42: 0xa000f302, 0x0d43: 0xa000f402, + 0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620, + 0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20, + 0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820, + 0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20, + 0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620, + 0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20, + 0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620, + 0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20, + 0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620, + 0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20, + 0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620, + 0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620, + 0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020, + 0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20, + 0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220, + // Block 0x36, offset 0xd80 + 0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20, + 0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401, + 0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20, + 0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c, + 0x0d97: 0x40448e20, + 0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020, + 0x0da6: 0xe0000185, 0x0da7: 0xe0000216, + 0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa, + 0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e, + 0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020, + 0x0db4: 0x40286220, 0x0db5: 0x40286420, + 0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869, + 0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863, + // Block 0x37, offset 0xdc0 + 0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402, + 0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620, + 0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20, + 0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620, + 0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20, + 0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420, + 0x0dda: 0x4044b620, 0x0ddb: 0x4044b820, + 0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020, + 0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820, + 0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020, + 0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820, + 0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020, + 0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620, + 0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20, + 0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620, + 0x0dfd: 0x4044f820, + // Block 0x38, offset 0xe00 + 0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020, + 0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620, + 0x0e0a: 0x82092295, + 0x0e0f: 0x40450820, + 0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020, + 0x0e14: 0x40451220, 0x0e16: 0x40451420, + 0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220, + 0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20, + 0x0e32: 0x40451820, 0x0e33: 0x40451c20, + 0x0e34: 0x40057620, + // Block 0x39, offset 0xe40 + 0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420, + 0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20, + 0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420, + 0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20, + 0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420, + 0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20, + 0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420, + 0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20, + 0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420, + 0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20, + 0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420, + 0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20, + 0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420, + 0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20, + 0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1, + 0x0e7f: 0x4027f420, + // Block 0x3a, offset 0xe80 + 0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1, + 0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02, + 0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302, + 0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820, + 0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420, + 0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732, + 0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20, + // Block 0x3b, offset 0xec0 + 0x0ec1: 0x40499220, 0x0ec2: 0x40499420, + 0x0ec4: 0x40499620, 0x0ec7: 0x40499820, + 0x0ec8: 0x40499a20, 0x0eca: 0x40499e20, + 0x0ecd: 0x4049a220, + 0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20, + 0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020, + 0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820, + 0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20, + 0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220, + 0x0eea: 0x40499c20, 0x0eeb: 0x4049c420, + 0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20, + 0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220, + 0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20, + 0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020, + 0x0efc: 0x4049e220, 0x0efd: 0x4049e420, + // Block 0x3c, offset 0xf00 + 0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541, + 0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20, + 0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902, + 0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641, + 0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423, + 0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735, + 0x0f18: 0xe00007e1, 0x0f19: 0xe0000886, + 0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020, + // Block 0x3d, offset 0xf40 + 0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220, + 0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820, + 0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420, + 0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20, + 0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420, + 0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20, + 0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20, + 0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620, + 0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426, + 0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738, + 0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f, + 0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693, + 0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3, + 0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000, + 0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220, + 0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000, + // Block 0x3e, offset 0xf80 + 0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4, + 0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020, + 0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20, + 0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820, + 0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420, + 0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6, + 0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020, + 0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20, + 0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20, + 0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20, + 0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20, + 0x0fac: 0x404aec20, + 0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d, + 0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620, + 0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597, + 0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402, + // Block 0x3f, offset 0xfc0 + 0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000, + 0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000, + 0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420, + 0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020, + 0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7, + 0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220, + 0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20, + 0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20, + 0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620, + 0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9, + 0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220, + 0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20, + 0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1, + 0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020, + 0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005, + 0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020, + // Block 0x40, offset 0x1000 + 0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820, + 0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20, + 0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620, + 0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20, + 0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620, + 0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220, + 0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20, + // Block 0x41, offset 0x1040 + 0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220, + 0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220, + 0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20, + 0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20, + 0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620, + 0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20, + 0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20, + 0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20, + 0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620, + 0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620, + 0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84, + 0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20, + 0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20, + 0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202, + 0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20, + 0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e, + // Block 0x42, offset 0x1080 + 0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432, + 0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744, + 0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420, + 0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20, + 0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020, + 0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820, + 0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20, + 0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620, + 0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820, + 0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20, + 0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020, + 0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20, + 0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020, + 0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20, + 0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420, + 0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020, + 0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620, + 0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820, + 0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220, + 0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435, + 0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747, + 0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620, + 0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20, + 0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488, + 0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888, + 0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888, + 0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88, + 0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088, + 0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088, + 0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088, + 0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488, + // Block 0x44, offset 0x1100 + 0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88, + 0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288, + 0x110d: 0x00383c88, + 0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220, + 0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620, + 0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620, + 0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20, + 0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20, + 0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20, + 0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20, + 0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220, + 0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20, + 0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020, + 0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020, + 0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020, + // Block 0x45, offset 0x1140 + 0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220, + 0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20, + 0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220, + 0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20, + 0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220, + 0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20, + 0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220, + 0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20, + 0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220, + 0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20, + 0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220, + 0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20, + 0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220, + 0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20, + 0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220, + 0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20, + // Block 0x46, offset 0x1180 + 0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220, + 0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20, + 0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220, + 0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20, + 0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220, + 0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20, + 0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220, + 0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420, + 0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20, + 0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420, + 0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20, + 0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420, + 0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20, + 0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420, + 0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20, + 0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20, + 0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420, + 0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20, + 0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420, + 0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20, + 0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420, + 0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20, + 0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420, + 0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20, + 0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420, + 0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20, + 0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220, + 0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20, + 0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220, + 0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20, + 0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220, + // Block 0x48, offset 0x1200 + 0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20, + 0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220, + 0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20, + 0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220, + 0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20, + 0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220, + 0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20, + 0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220, + 0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20, + 0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220, + 0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20, + 0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220, + 0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20, + 0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220, + 0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20, + 0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220, + // Block 0x49, offset 0x1240 + 0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420, + 0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20, + 0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420, + 0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20, + 0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620, + 0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20, + 0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620, + 0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20, + 0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020, + 0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820, + 0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020, + 0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820, + 0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220, + 0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20, + 0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020, + 0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820, + // Block 0x4a, offset 0x1280 + 0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220, + 0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20, + 0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020, + 0x128c: 0x403ce220, 0x128d: 0x403ce420, + 0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20, + 0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220, + 0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820, + 0x129c: 0x403cfa20, 0x129d: 0x403cfc20, + 0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420, + 0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20, + 0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20, + 0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620, + 0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20, + 0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620, + 0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020, + 0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220, + 0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20, + 0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020, + 0x12cc: 0x403d6220, 0x12cd: 0x403d6420, + 0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20, + 0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420, + 0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20, + 0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620, + 0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020, + 0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820, + 0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220, + 0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20, + 0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020, + 0x12f4: 0x403db220, 0x12f5: 0x403db420, + 0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20, + 0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220, + // Block 0x4c, offset 0x1300 + 0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820, + 0x1304: 0x403dca20, 0x1305: 0x403dcc20, + 0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420, + 0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20, + 0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420, + 0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20, + 0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220, + 0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20, + 0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020, + 0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820, + 0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020, + 0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820, + 0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020, + 0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820, + 0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20, + 0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620, + // Block 0x4d, offset 0x1340 + 0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020, + 0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820, + 0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220, + 0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20, + 0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020, + 0x1354: 0x403e8220, 0x1355: 0x403e8420, + 0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20, + 0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420, + 0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420, + 0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20, + 0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620, + 0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20, + 0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620, + 0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20, + 0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820, + 0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020, + // Block 0x4e, offset 0x1380 + 0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620, + 0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20, + 0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620, + 0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20, + 0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20, + 0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620, + 0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620, + 0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02, + 0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20, + 0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020, + 0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7, + 0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff, + 0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820, + 0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020, + 0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820, + 0x13bc: 0x40287a20, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620, + 0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420, + 0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620, + 0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20, + 0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20, + 0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420, + 0x13d8: 0x4006b620, 0x13d9: 0x4006b820, + 0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20, + 0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420, + 0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20, + 0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420, + 0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20, + 0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420, + 0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20, + 0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420, + // Block 0x50, offset 0x1400 + 0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20, + 0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420, + 0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20, + 0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420, + 0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20, + 0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420, + 0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20, + 0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420, + 0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20, + 0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420, + 0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20, + 0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420, + 0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20, + 0x1434: 0x40551e20, + // Block 0x51, offset 0x1440 + 0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420, + 0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20, + 0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420, + 0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20, + 0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420, + 0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20, + 0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420, + 0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20, + 0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420, + 0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20, + 0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420, + 0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20, + 0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420, + 0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20, + 0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420, + 0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20, + // Block 0x52, offset 0x1480 + 0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420, + 0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20, + 0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420, + 0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20, + 0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420, + 0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20, + 0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420, + 0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20, + 0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420, + 0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20, + 0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420, + 0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20, + 0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420, + 0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20, + 0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420, + 0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420, + 0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20, + 0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420, + 0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20, + 0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420, + 0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20, + 0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420, + 0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20, + 0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420, + 0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20, + 0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420, + 0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20, + 0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420, + 0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20, + 0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420, + 0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20, + // Block 0x54, offset 0x1500 + 0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420, + 0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20, + 0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420, + 0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20, + 0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420, + 0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20, + 0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420, + 0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20, + 0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420, + 0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20, + 0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420, + 0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20, + 0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420, + 0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20, + 0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420, + 0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20, + // Block 0x55, offset 0x1540 + 0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420, + 0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20, + 0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420, + 0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20, + 0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420, + 0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20, + 0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420, + 0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20, + 0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420, + 0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20, + 0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420, + 0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20, + 0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420, + 0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20, + 0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420, + 0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20, + // Block 0x56, offset 0x1580 + 0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420, + 0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20, + 0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420, + 0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20, + 0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420, + 0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20, + 0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420, + 0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20, + 0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420, + 0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20, + 0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420, + 0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20, + 0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420, + 0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20, + 0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420, + 0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420, + 0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20, + 0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420, + 0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20, + 0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620, + 0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20, + 0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220, + 0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20, + 0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220, + 0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20, + 0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420, + 0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20, + 0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420, + 0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20, + 0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420, + 0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20, + // Block 0x58, offset 0x1600 + 0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420, + 0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20, + 0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420, + 0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20, + 0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420, + 0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20, + 0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420, + 0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20, + 0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420, + 0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20, + 0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420, + 0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20, + 0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420, + 0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20, + 0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420, + 0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20, + // Block 0x59, offset 0x1640 + 0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420, + 0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20, + 0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420, + 0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20, + 0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420, + 0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20, + 0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420, + 0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20, + 0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420, + 0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20, + 0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420, + 0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20, + 0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420, + 0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20, + 0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420, + 0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20, + // Block 0x5a, offset 0x1680 + 0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420, + 0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20, + 0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420, + 0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20, + 0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420, + 0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20, + 0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420, + 0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20, + 0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420, + 0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20, + 0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420, + 0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820, + 0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020, + 0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820, + 0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020, + 0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20, + 0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220, + 0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20, + 0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220, + 0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20, + 0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220, + 0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820, + 0x16dc: 0x40040a20, + 0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420, + 0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036, + 0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220, + 0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220, + 0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048, + 0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20, + 0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057, + 0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060, + // Block 0x5c, offset 0x1700 + 0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420, + 0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820, + 0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075, + 0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020, + 0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a, + 0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620, + 0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b, + 0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20, + 0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820, + 0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1, + 0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220, + 0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096, + 0x1730: 0xe0002039, + // Block 0x5d, offset 0x1740 + 0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20, + 0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420, + 0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20, + 0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220, + 0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20, + 0x1754: 0x8209264e, + 0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420, + 0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20, + 0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420, + 0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20, + 0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420, + 0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20, + // Block 0x5e, offset 0x1780 + 0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20, + 0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620, + 0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20, + 0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620, + 0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20, + 0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620, + 0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20, + 0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620, + 0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20, + 0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20, + 0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220, + 0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20, + 0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220, + 0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20, + 0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220, + 0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20, + 0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220, + 0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20, + 0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420, + 0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20, + 0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420, + 0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20, + 0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020, + 0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820, + 0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020, + // Block 0x60, offset 0x1800 + 0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820, + 0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402, + 0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02, + 0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02, + 0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000, + 0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20, + 0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620, + 0x181c: 0x404fea20, 0x181d: 0xae605f02, + 0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b, + 0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d, + 0x1828: 0xe00007f9, 0x1829: 0xe000089e, + 0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e, + 0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750, + 0x1838: 0xe00007fc, 0x1839: 0xe00008a1, + // Block 0x61, offset 0x1840 + 0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020, + 0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420, + 0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000, + 0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20, + 0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d, + 0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f, + 0x1858: 0xe000080b, 0x1859: 0xe00008b0, + 0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20, + 0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220, + 0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420, + 0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20, + 0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420, + 0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220, + 0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20, + 0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020, + // Block 0x62, offset 0x1880 + 0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620, + 0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420, + 0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220, + 0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20, + 0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620, + 0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220, + 0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20, + 0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20, + 0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420, + 0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220, + 0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20, + 0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420, + 0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820, + 0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20, + 0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20, + 0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220, + 0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820, + 0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620, + 0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420, + 0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20, + 0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620, + 0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20, + 0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820, + 0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20, + 0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020, + 0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820, + 0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020, + 0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820, + // Block 0x64, offset 0x1900 + 0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020, + 0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820, + 0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020, + 0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820, + 0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020, + 0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820, + 0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020, + 0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820, + 0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020, + 0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820, + 0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020, + 0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820, + 0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020, + 0x1934: 0x405aa220, 0x1935: 0x405aa420, + // Block 0x65, offset 0x1940 + 0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820, + 0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020, + 0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820, + 0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020, + 0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820, + 0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020, + 0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820, + 0x195c: 0x404c4a20, + 0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220, + 0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20, + 0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220, + 0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20, + 0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220, + 0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102, + // Block 0x66, offset 0x1980 + 0x1980: 0x4007a620, + 0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f, + 0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3, + 0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877, + 0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620, + 0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20, + 0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620, + 0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20, + 0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620, + 0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20, + 0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620, + 0x19ac: 0x40506820, 0x19ad: 0x40506a20, + 0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220, + 0x19b4: 0x40507420, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20, + 0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420, + 0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20, + 0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420, + 0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20, + 0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420, + 0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20, + 0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420, + 0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20, + 0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420, + 0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20, + 0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420, + 0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20, + 0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420, + 0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420, + 0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20, + 0x1a08: 0x4050fe20, 0x1a09: 0x40510020, + 0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417, + 0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729, + 0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225, + 0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025, + 0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820, + 0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020, + 0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820, + 0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020, + 0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820, + 0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020, + 0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820, + 0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20, + 0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220, + 0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20, + 0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220, + 0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20, + 0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1, + 0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20, + 0x1a5e: 0x40036620, 0x1a5f: 0x40036820, + 0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820, + 0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020, + 0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820, + 0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020, + 0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820, + 0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020, + 0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820, + 0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820, + 0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020, + 0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820, + 0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020, + 0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20, + 0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420, + 0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884, + 0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20, + 0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20, + 0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420, + 0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20, + 0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20, + 0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020, + 0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902, + 0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02, + 0x1abc: 0xae611e02, 0x1abf: 0xadc00000, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a, + 0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c, + 0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d, + 0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d, + 0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f, + 0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880, + 0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820, + 0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20, + 0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020, + 0x1aec: 0x4005d020, 0x1aed: 0x4005d220, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702, + 0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821, + 0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821, + 0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20, + 0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220, + 0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20, + 0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620, + 0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20, + 0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820, + 0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020, + 0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20, + 0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220, + 0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020, + 0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620, + 0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20, + 0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20, + 0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620, + 0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20, + 0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444, + 0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756, + 0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20, + 0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420, + 0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620, + 0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20, + 0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000, + 0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000, + 0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000, + 0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20, + 0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420, + 0x1b7c: 0x40081620, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420, + 0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20, + 0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620, + 0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20, + 0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620, + 0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20, + 0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20, + 0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20, + 0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420, + 0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20, + 0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419, + 0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020, + 0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a, + 0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c, + 0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020, + 0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84, + 0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220, + 0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620, + 0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884, + 0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84, + 0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284, + 0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620, + 0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84, + 0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220, + 0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820, + 0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84, + 0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084, + 0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4, + 0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20, + 0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420, + 0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220, + 0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20, + 0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220, + 0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20, + 0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420, + 0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20, + 0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620, + 0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20, + 0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420, + 0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20, + 0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420, + 0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102, + 0x1c3b: 0x40031420, + 0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c, + 0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e, + 0x1c48: 0xe00007ea, 0x1c49: 0xe000088f, + 0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20, + 0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450, + 0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762, + 0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020, + 0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820, + 0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020, + 0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820, + 0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020, + 0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820, + 0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020, + 0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820, + 0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020, + 0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20, + 0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420, + 0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000, + 0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000, + 0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000, + 0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000, + 0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000, + 0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000, + 0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084, + 0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084, + 0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402, + 0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420, + 0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020, + 0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620, + 0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20, + 0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820, + 0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20, + 0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420, + 0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20, + 0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20, + 0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420, + 0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20, + 0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220, + 0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d, + 0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d, + 0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20, + 0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94, + 0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94, + 0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294, + 0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94, + 0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94, + 0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94, + 0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94, + 0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94, + 0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95, + 0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695, + 0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20, + 0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20, + 0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20, + 0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420, + 0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20, + 0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220, + 0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620, + 0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020, + 0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20, + 0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20, + 0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620, + 0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294, + 0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94, + 0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894, + 0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94, + 0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94, + 0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894, + 0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494, + 0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494, + 0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94, + 0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94, + // Block 0x76, offset 0x1d80 + 0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02, + 0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02, + 0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02, + 0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002, + 0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4, + 0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50, + 0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699, + 0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745, + 0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5, + 0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895, + 0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f, + 0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b, + 0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89, + 0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1, + 0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b, + 0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49, + 0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f, + 0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89, + 0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd, + 0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7, + 0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f, + 0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46, + 0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8, + 0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb, + 0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef, + 0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27, + 0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78, + 0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e, + 0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1, + 0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31, + 0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa, + 0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1, + 0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff, + 0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50, + 0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36, + 0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90, + 0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae, + 0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090, + 0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096, + 0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042, + 0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9, + 0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4, + 0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9, + 0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120, + 0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150, + 0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d, + 0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70, + 0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620, + 0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986, + 0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c, + 0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934, + 0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe, + 0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916, + 0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e, + 0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59, + 0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f, + 0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71, + 0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75, + 0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41, + 0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1, + 0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9, + 0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59, + 0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71, + 0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79, + 0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a, + 0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a, + 0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072, + 0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105, + 0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c, + 0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07, + 0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1, + 0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3, + 0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5, + 0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7, + 0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e, + 0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236, + 0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242, + 0x1edc: 0xe0001224, 0x1edd: 0xe000123a, + 0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae, + 0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0, + 0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2, + 0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4, + 0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327, + 0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f, + 0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b, + 0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390, + 0x1f04: 0xe0001372, 0x1f05: 0xe0001388, + 0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394, + 0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c, + 0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca, + 0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2, + 0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce, + 0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6, + 0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463, + 0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475, + 0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467, + 0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479, + 0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246, + 0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337, + 0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da, + 0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9, + 0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db, + 0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce, + 0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0, + 0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6, + 0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8, + 0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb, + 0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd, + 0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b, + 0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d, + 0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470, + 0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482, + 0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214, + 0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a, + 0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0, + 0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5, + 0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1, + 0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd, + 0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba, + 0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352, + 0x1f96: 0xe0001349, 0x1f97: 0xe000135a, + 0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a, + 0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3, + 0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5, + 0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd, + 0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd, + 0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20, + 0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa, + 0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6, + 0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492, + 0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284, + 0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b, + 0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000, + 0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000, + 0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20, + 0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820, + 0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20, + 0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820, + 0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420, + 0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620, + 0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000, + 0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b, + 0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04, + 0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404, + 0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820, + 0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20, + // Block 0x80, offset 0x2000 + 0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820, + 0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04, + 0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420, + 0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620, + 0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420, + 0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6, + 0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620, + 0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284, + 0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000, + 0x2024: 0xa0000000, + 0x202a: 0xa0000000, 0x202b: 0xa0000000, + 0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000, + 0x2030: 0x0029cc94, 0x2031: 0x002d9a94, + 0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94, + 0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94, + 0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94, + // Block 0x81, offset 0x2040 + 0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295, + 0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95, + 0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95, + 0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695, + 0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695, + 0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295, + 0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695, + 0x205c: 0x00302c95, + 0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20, + 0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620, + 0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20, + 0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420, + 0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20, + 0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420, + 0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20, + // Block 0x82, offset 0x2080 + 0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02, + 0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002, + 0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102, + 0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202, + 0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202, + 0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502, + 0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102, + 0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002, + 0x20b0: 0xae605f02, + // Block 0x83, offset 0x20c0 + 0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04, + 0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a, + 0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b, + 0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202, + 0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285, + 0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220, + 0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b, + 0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820, + 0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20, + 0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20, + 0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d, + 0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885, + 0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b, + 0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484, + 0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95, + 0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b, + // Block 0x84, offset 0x2100 + 0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20, + 0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885, + 0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20, + 0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220, + 0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb, + 0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab, + 0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf, + 0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e, + 0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a, + 0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb, + 0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a, + 0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a, + 0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04, + 0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6, + 0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404, + 0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284, + // Block 0x85, offset 0x2140 + 0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88, + 0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420, + 0x2148: 0x40288620, 0x2149: 0xe00001e2, + 0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20, + 0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220, + 0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9, + 0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20, + 0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620, + 0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20, + 0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620, + 0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20, + 0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420, + 0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20, + 0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420, + 0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20, + // Block 0x86, offset 0x2180 + 0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420, + 0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20, + 0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420, + 0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2, + 0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20, + 0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620, + 0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20, + 0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620, + 0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20, + 0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620, + 0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20, + 0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620, + 0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20, + 0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620, + 0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20, + 0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20, + 0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420, + 0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20, + 0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220, + 0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220, + 0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20, + 0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420, + 0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020, + 0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820, + 0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20, + 0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420, + 0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04, + 0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20, + 0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420, + 0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20, + 0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420, + // Block 0x88, offset 0x2200 + 0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20, + 0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb, + 0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420, + 0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20, + 0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420, + 0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20, + 0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420, + 0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20, + 0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020, + 0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820, + 0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020, + 0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7, + 0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620, + 0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20, + 0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20, + 0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620, + // Block 0x89, offset 0x2240 + 0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20, + 0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20, + 0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220, + 0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20, + 0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220, + 0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20, + 0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220, + 0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20, + 0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220, + 0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20, + 0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220, + 0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140, + 0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20, + 0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220, + 0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20, + 0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420, + // Block 0x8a, offset 0x2280 + 0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20, + 0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420, + 0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20, + 0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420, + 0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20, + 0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420, + 0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20, + 0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420, + 0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134, + 0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20, + 0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146, + 0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420, + 0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20, + 0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420, + 0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20, + 0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420, + // Block 0x8b, offset 0x22c0 + 0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20, + 0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420, + 0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20, + 0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420, + 0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20, + 0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420, + 0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20, + 0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420, + 0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20, + 0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420, + 0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820, + 0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020, + 0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820, + 0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020, + 0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820, + 0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020, + // Block 0x8c, offset 0x2300 + 0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820, + 0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020, + 0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820, + 0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020, + 0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820, + 0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020, + 0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820, + 0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020, + 0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820, + 0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020, + 0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820, + 0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020, + 0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820, + 0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020, + 0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820, + 0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020, + // Block 0x8d, offset 0x2340 + 0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820, + 0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020, + 0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820, + 0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020, + 0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820, + 0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020, + 0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820, + 0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020, + 0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820, + 0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020, + 0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820, + 0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020, + 0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820, + 0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020, + 0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820, + 0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020, + // Block 0x8e, offset 0x2380 + 0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820, + 0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020, + 0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820, + 0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020, + 0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820, + 0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020, + 0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820, + 0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020, + 0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820, + 0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020, + 0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820, + 0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020, + 0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020, + 0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820, + 0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020, + 0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820, + 0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020, + 0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820, + 0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020, + 0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820, + 0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020, + 0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620, + // Block 0x90, offset 0x2400 + 0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20, + 0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620, + 0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20, + 0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486, + 0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86, + 0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606, + 0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606, + 0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606, + 0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404, + 0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404, + 0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f, + // Block 0x91, offset 0x2440 + 0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033, + 0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047, + 0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04, + 0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04, + 0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404, + 0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404, + 0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404, + 0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404, + 0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404, + 0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404, + 0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404, + 0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404, + 0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404, + 0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c, + 0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c, + 0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c, + // Block 0x92, offset 0x2480 + 0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c, + 0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c, + 0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c, + 0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c, + 0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286, + 0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886, + 0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286, + 0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86, + 0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86, + 0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686, + 0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6, + 0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2, + 0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe, + 0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286, + 0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86, + 0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420, + 0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20, + 0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420, + 0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20, + 0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420, + 0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20, + 0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420, + 0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20, + 0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420, + 0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20, + 0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420, + 0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20, + 0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420, + 0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20, + 0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420, + 0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20, + // Block 0x94, offset 0x2500 + 0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420, + 0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20, + 0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420, + 0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20, + 0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420, + 0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20, + 0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420, + 0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20, + 0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420, + 0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20, + 0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420, + 0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20, + 0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420, + 0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20, + 0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420, + 0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20, + // Block 0x95, offset 0x2540 + 0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420, + 0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20, + 0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420, + 0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20, + 0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420, + 0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20, + 0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420, + 0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20, + 0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420, + 0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20, + 0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420, + 0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20, + 0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420, + 0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20, + 0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420, + 0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20, + // Block 0x96, offset 0x2580 + 0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420, + 0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20, + 0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420, + 0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20, + 0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420, + 0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20, + 0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420, + 0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20, + 0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420, + 0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20, + 0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420, + 0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20, + 0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420, + 0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20, + 0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420, + 0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420, + 0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20, + 0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420, + 0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20, + 0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420, + 0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20, + 0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420, + 0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20, + 0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420, + 0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20, + 0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420, + 0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20, + 0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820, + 0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020, + 0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420, + 0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20, + // Block 0x98, offset 0x2600 + 0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420, + 0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20, + 0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420, + 0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20, + 0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420, + 0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20, + 0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420, + 0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20, + 0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420, + 0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20, + 0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420, + 0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220, + 0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20, + 0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620, + 0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20, + 0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620, + // Block 0x99, offset 0x2640 + 0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20, + 0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620, + 0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820, + 0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020, + 0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220, + 0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20, + 0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220, + 0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20, + 0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220, + 0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20, + 0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220, + 0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20, + 0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220, + 0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20, + 0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220, + 0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20, + // Block 0x9a, offset 0x2680 + 0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220, + 0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20, + 0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220, + 0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20, + 0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220, + 0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20, + 0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220, + 0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20, + 0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220, + 0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20, + 0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220, + 0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20, + 0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220, + 0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20, + 0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220, + 0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20, + // Block 0x9b, offset 0x26c0 + 0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420, + 0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20, + 0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420, + 0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20, + 0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420, + 0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20, + 0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420, + 0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20, + 0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420, + 0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20, + 0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420, + 0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20, + 0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420, + 0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20, + 0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420, + 0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20, + // Block 0x9c, offset 0x2700 + 0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420, + 0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20, + 0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420, + 0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20, + 0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420, + 0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20, + 0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420, + 0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20, + 0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420, + 0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20, + 0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20, + 0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620, + 0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20, + 0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086, + 0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886, + 0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486, + 0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86, + 0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086, + 0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886, + 0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0, + 0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420, + 0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20, + 0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420, + 0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20, + 0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420, + 0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20, + 0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420, + 0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20, + 0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420, + 0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20, + 0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420, + // Block 0x9e, offset 0x2780 + 0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20, + 0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020, + 0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820, + 0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020, + 0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820, + 0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020, + 0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820, + 0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020, + 0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820, + 0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620, + 0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20, + 0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620, + 0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420, + 0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20, + 0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420, + 0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20, + 0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420, + 0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20, + 0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420, + 0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20, + 0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420, + 0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20, + 0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420, + 0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20, + 0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420, + 0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20, + 0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420, + 0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20, + 0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420, + 0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20, + 0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420, + // Block 0xa0, offset 0x2800 + 0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20, + 0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420, + 0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20, + 0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420, + 0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20, + 0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420, + 0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20, + 0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420, + 0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20, + 0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420, + 0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20, + 0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420, + 0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20, + 0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420, + 0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20, + 0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420, + // Block 0xa1, offset 0x2840 + 0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20, + 0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420, + 0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20, + 0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420, + 0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20, + 0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420, + 0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20, + 0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420, + 0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20, + 0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420, + 0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20, + 0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420, + 0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20, + 0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420, + 0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20, + 0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420, + // Block 0xa2, offset 0x2880 + 0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20, + 0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420, + 0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20, + 0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420, + 0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20, + 0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420, + 0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20, + 0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420, + 0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20, + 0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420, + 0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20, + 0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420, + 0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20, + 0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420, + 0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20, + 0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420, + 0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20, + 0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420, + 0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20, + 0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420, + 0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20, + 0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420, + 0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20, + 0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420, + 0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20, + 0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420, + 0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20, + 0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420, + 0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20, + 0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420, + 0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20, + // Block 0xa4, offset 0x2900 + 0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420, + 0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20, + 0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420, + 0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20, + 0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420, + 0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20, + 0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420, + 0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20, + 0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420, + 0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20, + 0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420, + 0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20, + 0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420, + 0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20, + 0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420, + 0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20, + // Block 0xa5, offset 0x2940 + 0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420, + 0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20, + 0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420, + 0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20, + 0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420, + 0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20, + 0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820, + 0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020, + 0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820, + 0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020, + 0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820, + 0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020, + 0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820, + 0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020, + 0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820, + 0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020, + // Block 0xa6, offset 0x2980 + 0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820, + 0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020, + 0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820, + 0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020, + 0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820, + 0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020, + 0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20, + 0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820, + 0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020, + 0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820, + 0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020, + 0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820, + 0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020, + 0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820, + 0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020, + 0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20, + 0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420, + 0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20, + 0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220, + 0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20, + 0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220, + 0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20, + 0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220, + 0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20, + 0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220, + 0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20, + 0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220, + 0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20, + 0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220, + 0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20, + 0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20, + 0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220, + 0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20, + 0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220, + 0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20, + 0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220, + 0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20, + 0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220, + 0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20, + 0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220, + 0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20, + 0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220, + 0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20, + 0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20, + 0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420, + 0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420, + 0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20, + 0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420, + 0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20, + 0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420, + 0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20, + 0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420, + 0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20, + 0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420, + 0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20, + 0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420, + 0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20, + 0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420, + 0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20, + 0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420, + 0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20, + // Block 0xaa, offset 0x2a80 + 0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420, + 0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20, + 0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420, + 0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20, + 0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420, + 0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20, + 0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420, + 0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20, + 0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220, + 0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20, + 0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220, + 0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20, + 0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220, + 0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20, + 0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220, + 0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220, + 0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20, + 0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220, + 0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20, + 0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220, + 0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20, + 0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220, + 0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20, + 0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220, + 0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20, + 0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220, + 0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20, + 0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220, + 0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20, + 0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220, + 0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220, + 0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20, + 0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220, + 0x2b0c: 0x40172420, + 0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20, + 0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420, + 0x2b18: 0x40173620, 0x2b19: 0x40173820, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88, + 0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688, + 0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88, + 0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688, + 0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88, + 0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688, + 0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88, + 0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688, + 0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88, + 0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688, + 0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88, + 0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488, + 0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20, + 0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620, + 0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20, + 0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620, + // Block 0xae, offset 0x2b80 + 0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20, + 0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620, + 0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20, + 0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620, + 0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20, + 0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620, + 0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20, + 0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420, + 0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688, + 0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888, + 0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088, + 0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088, + 0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20, + 0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420, + 0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620, + 0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888, + // Block 0xaf, offset 0x2bc0 + 0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20, + 0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020, + 0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620, + 0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20, + 0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20, + 0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420, + 0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820, + 0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020, + 0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420, + 0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820, + 0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20, + 0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020, + 0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820, + 0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420, + 0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20, + 0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420, + // Block 0xb0, offset 0x2c00 + 0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20, + 0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020, + 0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20, + 0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020, + 0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420, + 0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20, + 0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220, + 0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20, + 0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020, + 0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20, + 0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88, + 0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02, + 0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620, + 0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620, + 0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420, + 0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820, + 0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820, + 0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20, + 0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020, + 0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020, + 0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020, + 0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420, + 0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20, + 0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220, + 0x2c6d: 0x40383c20, + 0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220, + 0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20, + 0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220, + 0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20, + // Block 0xb2, offset 0x2c80 + 0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420, + 0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20, + 0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420, + 0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20, + 0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420, + 0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20, + 0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620, + 0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20, + 0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620, + 0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620, + 0x2caf: 0x403c2c20, + 0x2cb0: 0x4005e620, + 0x2cbf: 0xa0900000, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20, + 0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20, + 0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20, + 0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20, + 0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620, + 0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20, + 0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20, + 0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420, + 0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20, + 0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220, + 0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20, + 0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020, + 0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820, + 0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620, + 0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20, + 0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420, + 0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20, + 0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220, + 0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820, + 0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020, + 0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620, + 0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5, + 0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42, + 0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87, + 0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada, + 0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33, + 0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9, + 0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c, + 0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620, + 0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20, + 0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020, + 0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420, + 0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20, + 0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620, + 0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620, + 0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20, + 0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20, + 0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620, + 0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020, + 0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020, + 0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20, + 0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20, + 0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220, + // Block 0xb6, offset 0x2d80 + 0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484, + 0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a, + 0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413, + 0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684, + 0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484, + 0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428, + 0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284, + 0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84, + 0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884, + 0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c, + 0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445, + 0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284, + 0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451, + 0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a, + 0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d, + 0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466, + // Block 0xb7, offset 0x2dc0 + 0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084, + 0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c, + 0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84, + 0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478, + 0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84, + 0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e, + 0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84, + 0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084, + 0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487, + 0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d, + 0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490, + 0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496, + 0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84, + // Block 0xb8, offset 0x2e00 + 0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84, + 0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084, + 0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684, + 0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084, + 0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284, + 0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284, + 0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84, + 0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84, + 0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84, + 0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084, + 0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084, + 0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84, + 0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484, + 0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684, + 0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684, + 0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684, + // Block 0xb9, offset 0x2e40 + 0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84, + 0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84, + 0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084, + 0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684, + 0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884, + 0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84, + 0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284, + 0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284, + 0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84, + 0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484, + 0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84, + 0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684, + 0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884, + 0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084, + 0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84, + 0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684, + // Block 0xba, offset 0x2e80 + 0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484, + 0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684, + 0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084, + 0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884, + 0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484, + 0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84, + 0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084, + 0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684, + 0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284, + 0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84, + 0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284, + 0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484, + 0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684, + 0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84, + 0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084, + 0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84, + // Block 0xbb, offset 0x2ec0 + 0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84, + 0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684, + 0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284, + 0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084, + 0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84, + 0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084, + 0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020, + 0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820, + 0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020, + // Block 0xbc, offset 0x2f00 + 0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220, + 0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3, + 0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220, + 0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20, + 0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20, + 0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620, + 0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20, + 0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20, + 0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459, + 0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b, + 0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302, + 0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702, + 0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020, + 0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220, + 0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20, + 0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620, + // Block 0xbd, offset 0x2f40 + 0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d, + 0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d, + 0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e, + 0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e, + 0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e, + 0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e, + 0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e, + 0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e, + 0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d, + 0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240, + 0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e, + 0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e, + 0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a, + 0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0, + 0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e, + 0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e, + // Block 0xbe, offset 0x2f80 + 0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d, + 0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d, + 0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e, + 0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e, + 0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e, + 0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d, + 0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20, + 0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616, + 0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f, + 0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f, + 0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291, + 0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691, + 0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91, + 0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91, + 0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291, + 0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691, + // Block 0xbf, offset 0x2fc0 + 0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f, + 0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243, + 0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291, + 0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91, + 0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d, + 0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3, + 0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291, + 0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691, + 0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f, + 0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f, + 0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91, + 0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091, + 0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891, + 0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a, + 0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20, + 0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616, + // Block 0xc0, offset 0x3000 + 0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20, + 0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820, + 0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420, + 0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20, + 0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620, + 0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420, + 0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020, + 0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820, + 0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820, + 0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020, + 0x302c: 0x4065fc20, 0x302d: 0x40663e20, + 0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884, + 0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284, + 0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684, + 0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84, + // Block 0xc1, offset 0x3040 + 0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84, + 0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284, + 0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84, + 0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884, + 0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084, + 0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884, + 0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084, + 0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884, + 0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084, + 0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284, + 0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84, + 0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84, + 0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84, + 0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84, + 0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884, + 0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84, + // Block 0xc2, offset 0x3080 + 0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884, + 0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84, + 0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84, + 0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884, + 0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894, + 0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94, + 0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294, + 0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494, + 0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d, + 0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389, + 0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b, + 0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392, + 0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398, + 0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499, + 0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020, + // Block 0xc3, offset 0x30c0 + 0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820, + 0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020, + 0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820, + 0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020, + 0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820, + 0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020, + 0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820, + 0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020, + 0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820, + 0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f, + 0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f, + 0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f, + 0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f, + // Block 0xc4, offset 0x3100 + 0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404, + 0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404, + 0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404, + 0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051, + 0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065, + 0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d, + 0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1, + 0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c, + 0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404, + 0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404, + 0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404, + 0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404, + 0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404, + 0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404, + 0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404, + 0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404, + // Block 0xc5, offset 0x3140 + 0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404, + 0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86, + 0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d, + 0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841, + 0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606, + 0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606, + 0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606, + 0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606, + 0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686, + 0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286, + 0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86, + 0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606, + 0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606, + 0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606, + 0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606, + 0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20, + // Block 0xc6, offset 0x3180 + 0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686, + 0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686, + 0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686, + 0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86, + 0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86, + 0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86, + 0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686, + 0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086, + 0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686, + 0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86, + 0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86, + 0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886, + 0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606, + 0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606, + 0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606, + 0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606, + // Block 0xc7, offset 0x31c0 + 0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04, + 0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04, + 0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404, + 0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14, + 0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93, + 0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693, + 0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93, + 0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693, + 0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93, + 0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693, + 0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93, + 0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693, + 0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93, + 0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893, + 0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093, + 0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693, + // Block 0xc8, offset 0x3200 + 0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d, + 0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b, + 0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170, + 0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183, + 0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d, + 0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2, + 0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1, + 0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5, + 0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f, + 0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c, + 0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264, + 0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d, + 0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad, + 0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da, + 0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9, + 0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c, + // Block 0xc9, offset 0x3240 + 0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311, + 0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325, + 0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c, + 0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b, + 0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e, + 0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d, + 0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04, + 0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04, + 0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404, + 0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404, + 0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404, + 0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404, + 0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d, + 0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c, + 0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c, + 0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431, + // Block 0xca, offset 0x3280 + 0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c, + 0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d, + 0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c, + 0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c, + 0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3, + 0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c, + 0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c, + 0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e, + 0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42, + 0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d, + 0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a, + 0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15, + 0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c, + 0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c, + 0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c, + 0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d, + 0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a, + 0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d, + 0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c, + 0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c, + 0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d, + 0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c, + 0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8, + 0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04, + 0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04, + 0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404, + 0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404, + 0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404, + 0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404, + 0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404, + 0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf, + // Block 0xcc, offset 0x3300 + 0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820, + 0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020, + 0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820, + 0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020, + 0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820, + 0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020, + 0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820, + 0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020, + 0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820, + 0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020, + 0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820, + 0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020, + 0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820, + 0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020, + 0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820, + 0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020, + // Block 0xcd, offset 0x3340 + 0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620, + 0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20, + 0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620, + 0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20, + 0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620, + 0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20, + 0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620, + 0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20, + 0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620, + 0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20, + 0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620, + 0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20, + 0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620, + 0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20, + 0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620, + 0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20, + // Block 0xce, offset 0x3380 + 0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620, + 0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20, + 0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620, + 0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20, + 0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620, + 0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20, + 0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620, + 0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20, + 0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620, + 0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20, + 0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620, + 0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20, + 0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620, + 0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20, + 0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620, + 0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620, + 0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20, + 0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620, + 0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20, + 0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620, + 0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20, + 0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620, + 0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20, + 0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620, + 0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20, + 0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620, + 0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20, + 0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620, + 0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20, + 0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620, + 0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20, + // Block 0xd0, offset 0x3400 + 0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620, + 0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20, + 0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620, + 0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20, + 0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620, + 0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20, + 0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620, + 0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20, + 0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620, + 0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20, + 0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620, + 0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20, + 0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620, + 0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20, + 0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620, + 0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20, + // Block 0xd1, offset 0x3440 + 0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620, + 0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20, + 0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620, + 0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20, + 0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620, + 0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20, + 0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620, + 0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20, + 0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620, + 0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20, + 0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620, + 0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20, + 0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620, + 0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20, + 0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620, + 0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20, + // Block 0xd2, offset 0x3480 + 0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620, + 0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20, + 0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620, + 0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20, + 0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620, + 0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20, + 0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620, + 0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20, + 0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620, + 0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20, + 0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620, + 0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20, + 0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620, + 0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20, + 0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620, + 0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620, + 0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20, + 0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620, + 0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20, + 0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620, + 0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20, + 0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620, + 0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20, + 0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620, + 0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20, + 0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620, + 0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20, + 0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620, + 0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20, + 0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620, + 0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20, + // Block 0xd4, offset 0x3500 + 0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620, + 0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20, + 0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620, + 0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20, + 0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620, + 0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20, + 0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620, + 0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20, + 0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620, + 0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20, + 0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620, + 0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20, + 0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620, + 0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20, + 0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620, + 0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20, + // Block 0xd5, offset 0x3540 + 0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620, + 0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20, + 0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620, + 0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20, + 0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620, + 0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20, + 0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620, + 0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20, + 0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620, + 0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20, + 0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620, + 0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20, + 0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620, + 0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20, + 0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620, + 0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20, + // Block 0xd6, offset 0x3580 + 0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620, + 0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20, + 0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620, + 0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20, + 0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620, + 0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20, + 0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620, + 0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20, + 0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620, + 0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20, + 0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620, + 0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20, + 0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620, + 0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20, + 0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620, + 0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620, + 0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20, + 0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620, + 0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20, + 0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620, + 0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20, + 0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620, + 0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20, + 0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620, + 0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20, + 0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620, + 0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20, + 0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620, + 0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20, + 0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620, + 0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20, + // Block 0xd8, offset 0x3600 + 0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620, + 0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20, + 0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620, + 0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20, + 0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620, + 0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20, + 0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620, + 0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20, + 0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620, + 0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20, + 0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620, + 0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20, + 0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620, + 0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20, + 0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620, + 0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20, + // Block 0xd9, offset 0x3640 + 0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620, + 0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20, + 0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620, + 0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20, + 0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620, + 0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20, + 0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620, + 0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20, + 0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620, + 0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20, + 0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620, + 0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20, + 0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620, + 0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20, + 0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620, + 0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20, + // Block 0xda, offset 0x3680 + 0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620, + 0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20, + 0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620, + 0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20, + 0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620, + 0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20, + 0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620, + 0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20, + 0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620, + 0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20, + 0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620, + 0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20, + 0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620, + 0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20, + 0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620, + 0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620, + 0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20, + 0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620, + 0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20, + 0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620, + 0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20, + 0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620, + 0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20, + 0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620, + 0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20, + 0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620, + 0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20, + 0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620, + 0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20, + 0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620, + 0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20, + // Block 0xdc, offset 0x3700 + 0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620, + 0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20, + 0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620, + 0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20, + 0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620, + 0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20, + 0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620, + 0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20, + 0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620, + 0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20, + 0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620, + 0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20, + 0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620, + 0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20, + 0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620, + 0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20, + // Block 0xdd, offset 0x3740 + 0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620, + 0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20, + 0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620, + 0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20, + 0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620, + 0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20, + 0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620, + 0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20, + 0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620, + 0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20, + 0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620, + 0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20, + 0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620, + 0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20, + 0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620, + 0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20, + // Block 0xde, offset 0x3780 + 0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620, + 0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20, + 0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620, + 0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20, + 0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620, + 0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20, + 0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620, + 0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20, + 0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620, + 0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20, + 0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620, + 0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20, + 0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620, + 0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20, + 0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620, + 0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620, + 0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20, + 0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620, + 0x37cc: 0x406f5820, + 0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620, + 0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20, + 0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620, + 0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20, + 0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620, + 0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20, + 0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620, + 0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20, + 0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620, + 0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20, + 0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620, + 0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20, + // Block 0xe0, offset 0x3800 + 0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620, + 0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20, + 0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20, + 0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420, + 0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20, + 0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420, + 0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20, + 0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420, + 0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20, + 0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420, + 0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20, + 0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420, + 0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020, + 0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20, + // Block 0xe1, offset 0x3840 + 0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620, + 0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20, + 0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620, + 0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20, + 0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620, + 0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20, + 0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620, + 0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20, + 0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620, + 0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20, + 0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620, + 0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20, + 0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620, + 0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20, + 0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620, + 0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20, + // Block 0xe2, offset 0x3880 + 0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620, + 0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20, + 0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620, + 0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20, + 0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620, + 0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20, + 0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620, + 0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20, + 0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620, + 0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20, + 0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620, + 0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20, + 0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620, + 0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20, + 0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620, + 0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620, + 0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20, + 0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620, + 0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20, + 0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620, + 0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20, + 0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620, + 0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20, + 0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620, + 0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20, + 0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620, + 0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20, + 0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620, + 0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20, + 0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620, + 0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20, + // Block 0xe4, offset 0x3900 + 0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620, + 0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20, + 0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620, + 0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20, + 0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620, + 0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20, + 0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620, + 0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20, + 0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620, + 0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20, + 0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620, + 0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20, + 0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620, + 0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20, + 0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620, + 0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20, + // Block 0xe5, offset 0x3940 + 0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620, + 0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20, + 0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620, + 0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820, + 0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb, + 0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107, + 0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113, + 0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f, + 0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453, + 0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765, + 0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284, + // Block 0xe6, offset 0x3980 + 0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20, + 0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420, + 0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220, + 0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20, + 0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620, + 0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220, + 0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820, + 0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420, + 0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20, + 0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820, + 0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84, + 0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402, + 0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020, + 0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9, + 0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0, + 0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220, + // Block 0xe7, offset 0x39c0 + 0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220, + 0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220, + 0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020, + 0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20, + 0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020, + 0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420, + 0x39df: 0x84e61b67, + 0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020, + 0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820, + 0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020, + 0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820, + 0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020, + 0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820, + 0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020, + 0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020, + 0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820, + 0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020, + 0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820, + 0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020, + 0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820, + 0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020, + 0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820, + 0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020, + 0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820, + 0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020, + 0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820, + 0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220, + 0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020, + 0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820, + 0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020, + 0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820, + 0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020, + 0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820, + 0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020, + 0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820, + 0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420, + 0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20, + 0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20, + 0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220, + 0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc, + 0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02, + 0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11, + 0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620, + 0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220, + 0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820, + 0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e, + 0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620, + 0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20, + 0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20, + 0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820, + 0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220, + 0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220, + 0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20, + 0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220, + 0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20, + 0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220, + 0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92, + 0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05, + 0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4, + 0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688, + 0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20, + 0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20, + 0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2, + 0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf, + 0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088, + // Block 0xec, offset 0x3b00 + 0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020, + 0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20, + // Block 0xed, offset 0x3b40 + 0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020, + 0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820, + 0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302, + 0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620, + 0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20, + 0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620, + 0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20, + 0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620, + 0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20, + 0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620, + 0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620, + 0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20, + 0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20, + 0x3b78: 0x4027f020, 0x3b79: 0x40075c20, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020, + 0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820, + 0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820, + 0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020, + 0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820, + 0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220, + 0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420, + 0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820, + 0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020, + 0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20, + 0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20, + 0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820, + 0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020, + 0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20, + 0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220, + 0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20, + 0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220, + 0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20, + 0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220, + 0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20, + 0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220, + 0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20, + 0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220, + 0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20, + 0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220, + 0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20, + 0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220, + 0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20, + 0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220, + // Block 0xf0, offset 0x3c00 + 0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20, + 0x3c04: 0x8209233e, + 0x3c0e: 0x40031020, 0x3c0f: 0x40031220, + 0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411, + 0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723, + 0x3c18: 0xe00007cf, 0x3c19: 0xe0000874, + 0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000, + 0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000, + 0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000, + 0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000, + 0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684, + 0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684, + 0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f, + 0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741, + 0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420, + 0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20, + 0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420, + 0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20, + 0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420, + 0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20, + 0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420, + 0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20, + 0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02, + 0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020, + 0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020, + 0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820, + 0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020, + 0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820, + // Block 0xf2, offset 0x3c80 + 0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020, + 0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820, + 0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020, + 0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820, + 0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8, + 0x3c9f: 0x40038420, + 0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020, + 0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820, + 0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020, + 0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820, + 0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020, + 0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820, + 0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020, + 0x3cbc: 0x4063a220, + // Block 0xf3, offset 0x3cc0 + 0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402, + 0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820, + 0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020, + 0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820, + 0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020, + 0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820, + 0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020, + 0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820, + 0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020, + 0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820, + 0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220, + 0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20, + 0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102, + 0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820, + 0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220, + 0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420, + // Block 0xf4, offset 0x3d00 + 0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220, + 0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020, + 0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20, + 0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020, + 0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447, + 0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759, + 0x3d18: 0xe0000805, 0x3d19: 0xe00008aa, + 0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820, + // Block 0xf5, offset 0x3d40 + 0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220, + 0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20, + 0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220, + 0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20, + 0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220, + 0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20, + 0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220, + 0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20, + 0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220, + 0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20, + 0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20, + 0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220, + 0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20, + 0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020, + 0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820, + 0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020, + 0x3d8c: 0x40522220, 0x3d8d: 0x40522420, + 0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441, + 0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753, + 0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4, + 0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20, + 0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420, + 0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020, + 0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20, + 0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20, + 0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20, + 0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20, + 0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620, + 0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20, + 0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620, + 0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20, + 0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620, + 0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20, + 0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620, + 0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20, + 0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620, + 0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20, + 0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620, + 0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20, + 0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b, + 0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f, + 0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671, + 0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02, + // Block 0xf8, offset 0x3e00 + 0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020, + 0x3e1b: 0x404a7220, + 0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020, + 0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20, + 0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220, + 0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20, + 0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220, + 0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620, + 0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4, + // Block 0xf9, offset 0x3e40 + 0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220, + 0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820, + 0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020, + 0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620, + 0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220, + 0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820, + 0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820, + 0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20, + 0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820, + 0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20, + // Block 0xfa, offset 0x3e80 + 0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420, + 0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20, + 0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420, + 0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20, + 0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420, + 0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20, + 0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620, + 0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20, + 0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20, + 0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220, + 0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220, + 0x3eac: 0xa000fa02, 0x3ead: 0x820922d3, + 0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e, + 0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720, + 0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871, + // Block 0xfb, offset 0x3ec0 + 0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20, + 0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420, + 0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20, + 0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420, + // Block 0xfc, offset 0x3f00 + 0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20, + 0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220, + 0x3f0b: 0x40651420, + 0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20, + 0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420, + 0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20, + 0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420, + 0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20, + 0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420, + 0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20, + 0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420, + 0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20, + 0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420, + 0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20, + 0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420, + // Block 0xfd, offset 0x3f40 + 0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020, + 0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820, + 0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20, + 0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20, + 0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20, + 0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20, + 0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420, + 0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20, + 0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20, + 0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20, + 0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820, + 0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20, + 0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20, + 0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20, + 0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820, + 0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820, + // Block 0xfe, offset 0x3f80 + 0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820, + 0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420, + 0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420, + 0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20, + 0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620, + 0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20, + 0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20, + 0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20, + 0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20, + 0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20, + 0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620, + 0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420, + 0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20, + 0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20, + 0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20, + 0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20, + // Block 0xff, offset 0x3fc0 + 0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20, + 0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420, + 0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20, + 0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020, + 0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220, + 0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20, + 0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420, + 0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020, + 0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20, + 0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20, + 0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420, + 0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420, + 0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020, + 0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820, + 0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420, + 0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420, + // Block 0x100, offset 0x4000 + 0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820, + 0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220, + 0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820, + 0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020, + 0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020, + 0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420, + 0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20, + 0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20, + 0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20, + 0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20, + 0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20, + 0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020, + 0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20, + 0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620, + 0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220, + 0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420, + // Block 0x101, offset 0x4040 + 0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20, + 0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620, + 0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620, + 0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20, + 0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620, + 0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420, + 0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20, + 0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20, + 0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620, + 0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20, + 0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820, + 0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20, + 0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220, + 0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20, + 0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820, + 0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20, + // Block 0x102, offset 0x4080 + 0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220, + 0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420, + 0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220, + 0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020, + 0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20, + 0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820, + 0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20, + 0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20, + 0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220, + 0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020, + 0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20, + 0x40ac: 0x4885dc20, 0x40ad: 0x43043020, + 0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020, + 0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420, + 0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420, + 0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820, + // Block 0x103, offset 0x40c0 + 0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220, + 0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20, + 0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420, + 0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420, + 0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620, + 0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220, + 0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20, + 0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20, + 0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620, + 0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620, + 0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820, + 0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620, + 0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420, + 0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20, + 0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620, + 0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220, + // Block 0x104, offset 0x4100 + 0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420, + 0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620, + 0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620, + 0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420, + 0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020, + 0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620, + 0x4118: 0x433e8620, 0x4119: 0x433f1c20, + // Block 0x105, offset 0x4140 + 0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99, + 0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404, + 0x4153: 0xf0000404, + 0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404, + 0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514, + 0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885, + 0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685, + 0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f, + 0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4, + 0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3, + 0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505, + 0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518, + 0x417c: 0xe0001521, 0x417e: 0xe0001524, + // Block 0x106, offset 0x4180 + 0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530, + 0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539, + 0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9, + 0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404, + 0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99, + 0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099, + 0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299, + 0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99, + 0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299, + 0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99, + 0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499, + 0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99, + 0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899, + 0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699, + 0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99, + 0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99, + // Block 0x107, offset 0x41c0 + 0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699, + 0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899, + 0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699, + 0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99, + 0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99, + 0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299, + 0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99, + 0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899, + 0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98, + 0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99, + 0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99, + 0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99, + 0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20, + 0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220, + 0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20, + 0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220, + // Block 0x108, offset 0x4200 + 0x4200: 0x40073420, 0x4201: 0x40073620, + 0x4213: 0x003a269a, + 0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a, + 0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a, + 0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499, + 0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099, + 0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898, + 0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556, + 0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c, + 0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592, + 0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc, + 0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4, + 0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298, + // Block 0x109, offset 0x4240 + 0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0, + 0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a, + 0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a, + 0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a, + 0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a, + 0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a, + 0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a, + 0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a, + 0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a, + 0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a, + 0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a, + 0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a, + 0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a, + 0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a, + 0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a, + 0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a, + // Block 0x10a, offset 0x4280 + 0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a, + 0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a, + 0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a, + 0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a, + 0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a, + 0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a, + 0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a, + 0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006, + 0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012, + 0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d, + 0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919, + 0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919, + 0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919, + 0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919, + 0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919, + 0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919, + // Block 0x10b, offset 0x42c0 + 0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919, + 0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919, + 0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919, + 0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919, + 0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919, + 0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c, + 0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580, + 0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717, + 0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717, + 0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717, + 0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717, + 0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717, + 0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717, + 0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717, + 0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717, + 0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717, + // Block 0x10c, offset 0x4300 + 0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717, + 0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717, + 0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717, + 0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717, + 0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717, + 0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717, + 0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717, + 0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574, + 0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818, + 0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818, + 0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818, + 0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818, + 0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818, + 0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a, + 0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a, + 0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a, + // Block 0x10d, offset 0x4340 + 0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a, + 0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a, + 0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a, + 0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a, + 0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919, + 0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919, + 0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919, + 0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919, + 0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919, + 0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919, + 0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919, + 0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717, + 0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717, + 0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818, + 0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818, + 0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220, + // Block 0x10e, offset 0x4380 + 0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8, + 0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600, + 0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631, + 0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a, + 0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e, + 0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e, + 0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676, + 0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6, + 0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2, + 0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7, + 0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb, + 0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b, + // Block 0x10f, offset 0x43c0 + 0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741, + 0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771, + 0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799, + 0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1, + 0x43d2: 0xe0001780, 0x43d3: 0xe00017d9, + 0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9, + 0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1, + 0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc, + 0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608, + 0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625, + 0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be, + 0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec, + 0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd, + 0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b, + 0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727, + 0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d, + // Block 0x110, offset 0x4400 + 0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723, + 0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1, + 0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2, + 0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2, + 0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614, + 0x443c: 0x40282e20, 0x443d: 0x40071620, + // Block 0x111, offset 0x4440 + 0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000, + 0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000, + 0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000, + 0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000, + 0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96, + 0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496, + 0x4458: 0x0004b696, 0x4459: 0xf0001616, + 0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000, + 0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000, + 0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696, + 0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96, + 0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96, + 0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96, + // Block 0x112, offset 0x4480 + 0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896, + 0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896, + 0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484, + 0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684, + 0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f, + 0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f, + 0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f, + 0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f, + 0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f, + 0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f, + 0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f, + 0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000, + 0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18, + 0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618, + 0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18, + // Block 0x113, offset 0x44c0 + 0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a, + 0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a, + 0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097, + 0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a, + 0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a, + 0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697, + 0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897, + 0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497, + 0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297, + 0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497, + 0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a, + 0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a, + 0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697, + 0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897, + 0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97, + 0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97, + // Block 0x114, offset 0x4500 + 0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697, + 0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897, + 0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97, + 0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097, + 0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97, + 0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297, + 0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97, + 0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097, + 0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97, + 0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697, + 0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897, + 0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a, + 0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097, + 0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738, + 0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a, + 0x453c: 0xf0001919, 0x453f: 0xa0000000, + // Block 0x115, offset 0x4540 + 0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83, + 0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283, + 0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883, + 0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283, + 0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283, + 0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83, + 0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283, + 0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483, + 0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89, + 0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289, + 0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89, + 0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289, + 0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689, + 0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289, + 0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883, + 0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683, + // Block 0x116, offset 0x4580 + 0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83, + 0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283, + 0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83, + 0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283, + 0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683, + 0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283, + 0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83, + 0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883, + 0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692, + 0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690, + 0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090, + 0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90, + 0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92, + 0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492, + 0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92, + 0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492, + // Block 0x117, offset 0x45c0 + 0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92, + 0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492, + 0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92, + 0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492, + 0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92, + 0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692, + 0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92, + 0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912, + 0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892, + 0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292, + 0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692, + 0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92, + 0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92, + 0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292, + 0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92, + 0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092, + // Block 0x118, offset 0x4600 + 0x4602: 0x0063a892, 0x4603: 0x0063aa92, + 0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292, + 0x460a: 0x0063b492, 0x460b: 0x0063b692, + 0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92, + 0x4612: 0x0063c092, 0x4613: 0x0063c292, + 0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92, + 0x461a: 0x0063cc92, 0x461b: 0x0063ce92, + 0x461c: 0x0063d092, + 0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683, + 0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883, + 0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692, + 0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492, + 0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000, + 0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85, + // Block 0x119, offset 0x4640 + 0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020, + 0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820, + 0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020, + 0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620, + 0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20, + 0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620, + 0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20, + 0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620, + 0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20, + 0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420, + 0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20, + 0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420, + 0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20, + 0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420, + 0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20, + 0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020, + // Block 0x11a, offset 0x4680 + 0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820, + 0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020, + 0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820, + 0x468c: 0x4073aa20, 0x468d: 0x4073ac20, + 0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420, + 0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20, + 0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420, + 0x469c: 0x4073c620, 0x469d: 0x4073c820, + // Block 0x11b, offset 0x46c0 + 0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020, + 0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820, + 0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020, + 0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820, + 0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020, + 0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820, + 0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020, + 0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820, + 0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020, + 0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820, + 0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020, + 0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820, + 0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020, + 0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820, + 0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020, + 0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820, + // Block 0x11c, offset 0x4700 + 0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020, + 0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820, + 0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020, + 0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820, + 0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020, + 0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820, + 0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020, + 0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820, + 0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020, + 0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820, + 0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020, + 0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820, + 0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020, + 0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820, + 0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20, + // Block 0x11d, offset 0x4740 + 0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220, + 0x4747: 0xe000026a, + 0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb, + 0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf, + 0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020, + 0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820, + 0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020, + 0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820, + 0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020, + 0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820, + 0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020, + 0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820, + 0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020, + 0x4777: 0x401afe20, + 0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620, + 0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20, + // Block 0x11e, offset 0x4780 + 0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe, + 0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20, + 0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220, + 0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604, + 0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020, + 0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820, + 0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385, + 0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607, + 0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020, + 0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820, + 0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020, + 0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820, + 0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a, + 0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620, + 0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420, + 0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20, + // Block 0x11f, offset 0x47c0 + 0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420, + 0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20, + 0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6, + 0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820, + 0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020, + 0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820, + // Block 0x120, offset 0x4800 + 0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020, + 0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820, + 0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020, + 0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820, + 0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020, + 0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820, + 0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020, + 0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820, + 0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020, + 0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820, + 0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020, + 0x483c: 0x401ba220, 0x483d: 0xadc13802, + // Block 0x121, offset 0x4840 + 0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20, + 0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620, + 0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20, + 0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620, + 0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20, + 0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620, + 0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20, + 0x485c: 0x4070f020, + 0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820, + 0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020, + 0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820, + 0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020, + 0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820, + 0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020, + 0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820, + 0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020, + // Block 0x122, offset 0x4880 + 0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820, + 0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020, + 0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820, + 0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020, + 0x4890: 0x40715220, + // Block 0x123, offset 0x48c0 + 0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20, + 0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620, + 0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20, + 0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620, + 0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20, + 0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620, + 0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20, + 0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420, + 0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820, + 0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20, + 0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420, + 0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20, + 0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420, + // Block 0x124, offset 0x4900 + 0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20, + 0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420, + 0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20, + // Block 0x125, offset 0x4940 + 0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620, + 0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20, + 0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620, + 0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20, + 0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620, + 0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20, + 0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620, + 0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420, + 0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220, + 0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20, + 0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220, + 0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20, + 0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220, + 0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20, + 0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220, + 0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20, + // Block 0x126, offset 0x4980 + 0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220, + 0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20, + 0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220, + 0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20, + 0x4994: 0x40295c20, 0x4995: 0x40295e20, + // Block 0x127, offset 0x49c0 + 0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288, + 0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88, + 0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288, + 0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88, + 0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288, + 0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88, + 0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288, + 0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88, + 0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288, + 0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88, + 0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220, + 0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20, + 0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220, + 0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20, + 0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220, + 0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20, + // Block 0x128, offset 0x4a00 + 0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220, + 0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20, + 0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220, + 0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20, + 0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220, + 0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20, + 0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220, + 0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20, + 0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220, + 0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20, + 0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220, + 0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20, + 0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220, + 0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20, + 0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220, + 0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20, + // Block 0x129, offset 0x4a40 + 0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220, + 0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20, + 0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220, + 0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20, + 0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220, + 0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20, + 0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220, + 0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620, + 0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea, + 0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702, + 0x4a68: 0xe00007ae, 0x4a69: 0xe0000853, + // Block 0x12a, offset 0x4a80 + 0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620, + 0x4a84: 0x4074c820, 0x4a85: 0x4074ca20, + 0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020, + 0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820, + 0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020, + 0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820, + 0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020, + 0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820, + 0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020, + 0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820, + 0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020, + 0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820, + 0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020, + 0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620, + 0x4ab8: 0x40752820, + 0x4abc: 0x40752a20, 0x4abf: 0x40752c20, + // Block 0x12b, offset 0x4ac0 + 0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820, + 0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020, + 0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820, + 0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020, + 0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820, + 0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620, + 0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820, + 0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020, + // Block 0x12c, offset 0x4b00 + 0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220, + 0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20, + 0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220, + 0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20, + 0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220, + 0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220, + 0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489, + 0x4b1f: 0x4003c820, + 0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20, + 0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220, + 0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20, + 0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220, + 0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20, + 0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220, + 0x4b38: 0x40718420, 0x4b39: 0x40718620, + 0x4b3f: 0x4003bc20, + // Block 0x12d, offset 0x4b40 + 0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad, + 0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9, + 0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5, + 0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1, + 0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0, + 0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec, + 0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8, + 0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420, + 0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620, + 0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20, + 0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620, + 0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20, + 0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420, + 0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20, + 0x4b7e: 0x40864e20, 0x4b7f: 0x40865020, + // Block 0x12e, offset 0x4b80 + 0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220, + 0x4b85: 0x4048c420, 0x4b86: 0x4048c620, + 0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402, + 0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020, + 0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620, + 0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20, + 0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420, + 0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20, + 0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420, + 0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20, + 0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420, + 0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20, + 0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02, + 0x4bbf: 0x82092487, + // Block 0x12f, offset 0x4bc0 + 0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573, + 0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20, + 0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20, + 0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620, + 0x4bd8: 0x40061220, + 0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420, + 0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20, + 0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420, + 0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20, + 0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420, + 0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20, + 0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420, + 0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20, + // Block 0x130, offset 0x4c00 + 0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20, + 0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620, + 0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20, + 0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620, + 0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20, + 0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620, + 0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20, + 0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620, + 0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20, + 0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620, + 0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20, + 0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420, + 0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20, + 0x4c34: 0x4075ce20, 0x4c35: 0x4075d020, + 0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20, + 0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220, + // Block 0x131, offset 0x4c40 + 0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420, + 0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20, + 0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420, + 0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20, + 0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420, + 0x4c54: 0x40762620, 0x4c55: 0x40762820, + 0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561, + 0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820, + 0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020, + 0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820, + 0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020, + 0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820, + 0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20, + 0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564, + 0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020, + // Block 0x132, offset 0x4c80 + 0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20, + 0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020, + 0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420, + 0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820, + 0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20, + 0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2, + 0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8, + 0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce, + 0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020, + 0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4, + 0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da, + 0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20, + 0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0, + 0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6, + 0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec, + 0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420, + // Block 0x133, offset 0x4cc0 + 0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820, + 0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20, + 0x4cc8: 0x405b7e20, + // Block 0x134, offset 0x4d00 + 0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc, + 0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5, + 0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20, + 0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420, + 0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20, + 0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420, + 0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20, + 0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220, + // Block 0x135, offset 0x4d40 + 0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220, + 0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820, + 0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020, + 0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820, + 0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020, + 0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820, + 0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020, + 0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820, + 0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020, + 0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820, + 0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020, + 0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820, + 0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020, + 0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20, + 0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420, + 0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20, + // Block 0x136, offset 0x4d80 + 0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420, + 0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820, + 0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020, + 0x4d8c: 0x40060220, 0x4d8d: 0x40060420, + 0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4, + 0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea, + 0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220, + 0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20, + 0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220, + 0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6, + 0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637, + 0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3, + // Block 0x137, offset 0x4dc0 + 0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20, + 0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620, + 0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20, + 0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620, + 0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20, + 0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620, + 0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20, + 0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220, + 0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20, + 0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220, + 0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e, + 0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020, + 0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820, + 0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020, + 0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620, + 0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620, + // Block 0x138, offset 0x4e00 + 0x4e00: 0x40034c20, 0x4e01: 0x40034e20, + 0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20, + 0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620, + 0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20, + 0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620, + 0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20, + 0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620, + 0x4e28: 0x40731820, + 0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456, + 0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768, + 0x4e38: 0xe0000814, 0x4e39: 0xe00008b9, + // Block 0x139, offset 0x4e40 + 0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020, + 0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820, + 0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020, + 0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820, + 0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020, + 0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820, + 0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020, + 0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820, + 0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020, + 0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820, + 0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020, + 0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820, + 0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0, + 0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246, + 0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7, + 0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b, + // Block 0x13a, offset 0x4e80 + 0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20, + // Block 0x13b, offset 0x4ec0 + 0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820, + 0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020, + 0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820, + 0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020, + 0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820, + 0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020, + 0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820, + 0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020, + 0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820, + 0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020, + 0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820, + 0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020, + 0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820, + 0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020, + 0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820, + 0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020, + // Block 0x13c, offset 0x4f00 + 0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820, + 0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20, + 0x4f08: 0x40039a20, + 0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495, + 0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789, + 0x4f18: 0xe0000832, 0x4f19: 0xe00008dd, + // Block 0x13d, offset 0x4f40 + 0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020, + 0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820, + 0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620, + 0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20, + 0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620, + 0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20, + 0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620, + 0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20, + 0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620, + 0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020, + 0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302, + 0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420, + 0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20, + 0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102, + // Block 0x13e, offset 0x4f80 + 0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498, + 0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c, + 0x4f88: 0xe0000835, 0x4f89: 0xe00008e0, + // Block 0x13f, offset 0x4fc0 + 0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20, + 0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220, + 0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20, + 0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220, + 0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20, + 0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220, + 0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20, + 0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220, + 0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20, + 0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220, + 0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20, + 0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220, + 0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20, + 0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220, + 0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20, + 0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220, + // Block 0x140, offset 0x5000 + 0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20, + 0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220, + 0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20, + 0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220, + 0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20, + 0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220, + 0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20, + 0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220, + 0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20, + 0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220, + 0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20, + 0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220, + 0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20, + 0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220, + 0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20, + 0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220, + // Block 0x141, offset 0x5040 + 0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20, + 0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220, + 0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20, + 0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220, + 0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20, + 0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220, + 0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20, + 0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220, + 0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20, + 0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220, + 0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20, + 0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220, + 0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20, + 0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220, + 0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20, + 0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220, + // Block 0x142, offset 0x5080 + 0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20, + 0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220, + 0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20, + 0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220, + 0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20, + 0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220, + 0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20, + 0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220, + 0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20, + 0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220, + 0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20, + 0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220, + 0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20, + 0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220, + 0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20, + 0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220, + // Block 0x143, offset 0x50c0 + 0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20, + 0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220, + 0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20, + 0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220, + 0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20, + 0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220, + 0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20, + 0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220, + 0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20, + 0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220, + 0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20, + 0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220, + 0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20, + 0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220, + 0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20, + 0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220, + // Block 0x144, offset 0x5100 + 0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20, + 0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220, + 0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20, + 0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220, + 0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20, + 0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220, + 0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20, + 0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220, + 0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20, + 0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220, + 0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20, + 0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220, + 0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20, + 0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220, + 0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20, + 0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220, + // Block 0x145, offset 0x5140 + 0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20, + 0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220, + 0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20, + 0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220, + 0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20, + 0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220, + 0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20, + 0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220, + 0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20, + 0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220, + 0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20, + 0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220, + 0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20, + 0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220, + 0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20, + 0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220, + // Block 0x146, offset 0x5180 + 0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20, + 0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220, + 0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20, + 0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220, + 0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20, + 0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220, + 0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20, + 0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220, + 0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20, + 0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220, + 0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20, + 0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220, + 0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20, + 0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220, + 0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20, + 0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220, + // Block 0x147, offset 0x51c0 + 0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20, + 0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220, + 0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20, + 0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220, + 0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20, + 0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220, + 0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20, + 0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220, + 0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20, + 0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220, + 0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20, + 0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220, + 0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20, + 0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220, + 0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20, + 0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220, + // Block 0x148, offset 0x5200 + 0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20, + 0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220, + 0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20, + 0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220, + 0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20, + 0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220, + 0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20, + 0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220, + 0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20, + 0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220, + 0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20, + 0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220, + 0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20, + 0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220, + 0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20, + 0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220, + // Block 0x149, offset 0x5240 + 0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20, + 0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220, + 0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20, + 0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220, + 0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20, + 0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220, + 0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20, + 0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220, + 0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20, + 0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220, + 0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20, + 0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220, + 0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20, + 0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220, + 0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20, + 0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220, + // Block 0x14a, offset 0x5280 + 0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20, + 0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220, + 0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20, + 0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220, + 0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20, + 0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220, + 0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20, + 0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220, + 0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20, + 0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220, + 0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20, + 0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220, + 0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20, + 0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220, + 0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20, + 0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220, + // Block 0x14b, offset 0x52c0 + 0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20, + 0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220, + 0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20, + 0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220, + 0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20, + 0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220, + 0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20, + 0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220, + 0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20, + 0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220, + 0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20, + 0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220, + 0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20, + 0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220, + 0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20, + 0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220, + // Block 0x14c, offset 0x5300 + 0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20, + 0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220, + 0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20, + 0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220, + 0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20, + 0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220, + 0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20, + 0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220, + 0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20, + 0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220, + 0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20, + 0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020, + // Block 0x14d, offset 0x5340 + 0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610, + 0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2, + 0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf, + 0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a, + 0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823, + 0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465, + 0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a, + 0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a, + 0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d, + 0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f, + 0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce, + 0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474, + 0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220, + 0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a, + 0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480, + 0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555, + // Block 0x14e, offset 0x5380 + 0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786, + 0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4, + 0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483, + 0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b, + 0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e, + 0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620, + 0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20, + 0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220, + 0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820, + 0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020, + // Block 0x14f, offset 0x53c0 + 0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820, + 0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020, + 0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820, + 0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020, + 0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820, + 0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020, + 0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820, + 0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020, + 0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820, + 0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020, + 0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820, + 0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020, + 0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820, + 0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020, + 0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820, + 0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020, + // Block 0x150, offset 0x5400 + 0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820, + 0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020, + 0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820, + 0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020, + 0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820, + 0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020, + 0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820, + 0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020, + 0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820, + 0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020, + 0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820, + 0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020, + 0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820, + 0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020, + 0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820, + 0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020, + // Block 0x151, offset 0x5440 + 0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820, + 0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020, + 0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820, + 0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020, + 0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820, + 0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020, + 0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820, + 0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020, + 0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820, + 0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020, + 0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820, + 0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020, + 0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820, + 0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020, + 0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820, + 0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020, + // Block 0x152, offset 0x5480 + 0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820, + 0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020, + 0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820, + 0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020, + 0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820, + 0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020, + 0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820, + 0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020, + 0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820, + 0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020, + 0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820, + 0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020, + 0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820, + 0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020, + 0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820, + 0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020, + // Block 0x153, offset 0x54c0 + 0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820, + 0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020, + 0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820, + 0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020, + 0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820, + 0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020, + 0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820, + 0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020, + 0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820, + 0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020, + 0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820, + 0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020, + 0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820, + 0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020, + 0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820, + 0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020, + // Block 0x154, offset 0x5500 + 0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820, + 0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020, + 0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820, + 0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020, + 0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820, + 0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020, + 0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820, + 0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020, + 0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820, + 0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020, + 0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820, + 0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020, + 0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820, + 0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020, + 0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820, + 0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020, + // Block 0x155, offset 0x5540 + 0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820, + 0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020, + 0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820, + 0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020, + 0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820, + 0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020, + 0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820, + 0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020, + 0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820, + 0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020, + 0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820, + 0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020, + 0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820, + 0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020, + 0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820, + 0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020, + // Block 0x156, offset 0x5580 + 0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820, + 0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020, + 0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820, + 0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020, + 0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820, + 0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020, + 0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820, + 0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020, + 0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820, + 0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020, + 0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820, + 0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020, + 0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820, + 0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020, + 0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820, + 0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020, + // Block 0x157, offset 0x55c0 + 0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820, + 0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020, + 0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820, + 0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020, + 0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820, + 0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020, + 0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820, + 0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020, + 0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820, + 0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020, + 0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820, + 0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020, + 0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820, + 0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020, + 0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820, + 0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020, + // Block 0x158, offset 0x5600 + 0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820, + 0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020, + 0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820, + 0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020, + 0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820, + 0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020, + 0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820, + 0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020, + 0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820, + 0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020, + 0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820, + 0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020, + 0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820, + 0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020, + 0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820, + 0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020, + // Block 0x159, offset 0x5640 + 0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820, + 0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020, + 0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820, + 0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020, + 0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820, + 0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020, + 0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820, + 0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020, + 0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820, + 0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020, + 0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820, + 0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020, + 0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820, + 0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020, + 0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820, + 0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020, + // Block 0x15a, offset 0x5680 + 0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820, + 0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020, + 0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820, + 0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020, + 0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820, + 0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020, + 0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820, + 0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020, + 0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820, + 0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020, + 0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820, + 0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020, + 0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820, + 0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020, + 0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820, + 0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020, + // Block 0x15b, offset 0x56c0 + 0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820, + 0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020, + 0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820, + 0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020, + 0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820, + 0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020, + 0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820, + 0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020, + 0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820, + 0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020, + 0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820, + 0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020, + 0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820, + 0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020, + 0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820, + 0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020, + // Block 0x15c, offset 0x5700 + 0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820, + 0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020, + 0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820, + 0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020, + 0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820, + 0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020, + 0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820, + 0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020, + 0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820, + 0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020, + 0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820, + 0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020, + 0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820, + 0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020, + 0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820, + 0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020, + // Block 0x15d, offset 0x5740 + 0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820, + 0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020, + 0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820, + 0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020, + 0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820, + 0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020, + 0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820, + 0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020, + 0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820, + 0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020, + 0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820, + 0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020, + 0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820, + 0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020, + 0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820, + 0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020, + // Block 0x15e, offset 0x5780 + 0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820, + 0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020, + 0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820, + 0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020, + 0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820, + 0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020, + 0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820, + 0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020, + 0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820, + 0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020, + 0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820, + 0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020, + 0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820, + 0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020, + 0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820, + 0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020, + // Block 0x15f, offset 0x57c0 + 0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820, + 0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020, + 0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820, + 0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020, + 0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820, + 0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020, + 0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820, + 0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020, + 0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820, + 0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020, + 0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820, + 0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20, + // Block 0x160, offset 0x5800 + 0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020, + 0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820, + 0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020, + 0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820, + 0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020, + 0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820, + 0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020, + 0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820, + 0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020, + 0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820, + 0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020, + 0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820, + 0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020, + 0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820, + 0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020, + 0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820, + // Block 0x161, offset 0x5840 + 0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020, + 0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820, + 0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020, + 0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820, + 0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020, + 0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820, + 0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020, + 0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820, + 0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020, + 0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820, + 0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020, + 0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820, + 0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020, + 0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820, + 0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020, + 0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820, + // Block 0x162, offset 0x5880 + 0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020, + 0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820, + 0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020, + 0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820, + 0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020, + 0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820, + 0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020, + 0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820, + 0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020, + 0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820, + 0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020, + 0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820, + 0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020, + 0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820, + 0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020, + 0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820, + // Block 0x163, offset 0x58c0 + 0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020, + 0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820, + 0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020, + 0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820, + 0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020, + 0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820, + 0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020, + 0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820, + 0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020, + 0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820, + 0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020, + 0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820, + 0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020, + 0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820, + 0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020, + 0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820, + // Block 0x164, offset 0x5900 + 0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020, + 0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820, + 0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020, + 0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820, + 0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020, + 0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820, + 0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020, + 0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820, + 0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020, + 0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820, + 0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020, + 0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820, + 0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020, + 0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820, + 0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020, + 0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820, + // Block 0x165, offset 0x5940 + 0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020, + 0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820, + 0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020, + 0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820, + 0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020, + 0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820, + 0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020, + 0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820, + 0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020, + 0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820, + 0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020, + 0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820, + 0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020, + 0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820, + 0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020, + 0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820, + // Block 0x166, offset 0x5980 + 0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020, + 0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820, + 0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020, + 0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820, + 0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020, + 0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820, + 0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020, + 0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820, + 0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020, + 0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820, + 0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020, + 0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820, + 0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020, + 0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820, + 0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020, + 0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820, + // Block 0x167, offset 0x59c0 + 0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020, + 0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820, + 0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020, + 0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820, + 0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020, + 0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820, + 0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020, + 0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820, + 0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020, + 0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820, + 0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020, + 0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820, + 0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020, + 0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820, + 0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020, + 0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820, + // Block 0x168, offset 0x5a00 + 0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020, + 0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820, + 0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020, + 0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820, + 0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020, + 0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820, + 0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020, + 0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820, + 0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020, + 0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820, + 0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020, + 0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820, + 0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020, + 0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820, + 0x5a38: 0x4062aa20, + // Block 0x169, offset 0x5a40 + 0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20, + 0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220, + 0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20, + 0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220, + 0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484, + 0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020, + 0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820, + 0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020, + 0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820, + 0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20, + 0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620, + 0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20, + 0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620, + 0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20, + 0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620, + 0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84, + // Block 0x16a, offset 0x5a80 + 0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420, + 0x5a84: 0x40703620, + 0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20, + 0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620, + 0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20, + 0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620, + 0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20, + 0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620, + 0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20, + 0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620, + 0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20, + 0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620, + 0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20, + 0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420, + // Block 0x16b, offset 0x5ac0 + 0x5acf: 0x40709620, + 0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20, + 0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620, + 0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20, + 0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620, + // Block 0x16c, offset 0x5b00 + 0x5b00: 0x00657c91, 0x5b01: 0x0065c28e, + // Block 0x16d, offset 0x5b40 + 0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20, + 0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220, + 0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20, + 0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220, + 0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20, + 0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220, + 0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20, + 0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220, + 0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20, + 0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220, + 0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20, + 0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220, + 0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20, + 0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220, + 0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20, + 0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220, + // Block 0x16e, offset 0x5b80 + 0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20, + 0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220, + 0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20, + 0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220, + 0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20, + 0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220, + 0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20, + 0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220, + 0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20, + 0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220, + 0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20, + 0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220, + 0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20, + 0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220, + 0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20, + 0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220, + // Block 0x16f, offset 0x5bc0 + 0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20, + 0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220, + 0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20, + 0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220, + 0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20, + 0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220, + 0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20, + 0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220, + 0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20, + 0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220, + 0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20, + 0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220, + 0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20, + 0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220, + 0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20, + 0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220, + // Block 0x170, offset 0x5c00 + 0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20, + 0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220, + 0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20, + 0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220, + 0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20, + 0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220, + 0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20, + 0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220, + 0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20, + 0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220, + 0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20, + 0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220, + 0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20, + 0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20, + // Block 0x171, offset 0x5c40 + 0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620, + 0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20, + 0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620, + 0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20, + 0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620, + 0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20, + 0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620, + 0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20, + 0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620, + 0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20, + 0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620, + 0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20, + 0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620, + 0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20, + 0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820, + 0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020, + // Block 0x172, offset 0x5c80 + 0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820, + 0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020, + 0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820, + 0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020, + 0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820, + 0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020, + 0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820, + 0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220, + 0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220, + 0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000, + 0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020, + 0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000, + 0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000, + 0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000, + 0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000, + 0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000, + // Block 0x173, offset 0x5cc0 + 0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420, + 0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000, + 0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000, + 0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20, + 0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620, + 0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20, + 0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620, + 0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20, + 0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620, + 0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20, + 0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000, + 0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620, + 0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20, + 0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620, + 0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20, + 0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20, + // Block 0x174, offset 0x5d00 + 0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220, + 0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20, + 0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220, + 0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20, + 0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220, + 0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20, + 0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220, + 0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620, + // Block 0x175, offset 0x5d40 + 0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20, + 0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620, + 0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20, + 0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620, + 0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20, + 0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620, + 0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20, + 0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620, + 0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20, + 0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620, + 0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20, + 0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620, + 0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20, + 0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620, + 0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20, + 0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620, + // Block 0x176, offset 0x5d80 + 0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000, + 0x5d84: 0xae600000, 0x5d85: 0x401f6c20, + // Block 0x177, offset 0x5dc0 + 0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820, + 0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020, + 0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820, + 0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020, + 0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820, + 0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020, + 0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820, + 0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020, + 0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820, + 0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020, + 0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820, + 0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020, + 0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820, + 0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020, + 0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820, + 0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020, + // Block 0x178, offset 0x5e00 + 0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820, + 0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020, + 0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820, + 0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020, + 0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820, + 0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20, + 0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576, + 0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e, + 0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20, + 0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620, + 0x5e30: 0x4029c820, 0x5e31: 0x4029ca20, + // Block 0x179, offset 0x5e40 + 0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b, + 0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b, + 0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b, + 0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b, + 0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b, + 0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b, + 0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85, + 0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885, + 0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85, + 0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85, + 0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85, + 0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85, + 0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85, + 0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b, + 0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b, + 0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b, + // Block 0x17a, offset 0x5e80 + 0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b, + 0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b, + 0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b, + 0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85, + 0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885, + 0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85, + 0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85, + 0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85, + 0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85, + 0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85, + 0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b, + 0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b, + 0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b, + 0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b, + 0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b, + 0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b, + // Block 0x17b, offset 0x5ec0 + 0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85, + 0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885, + 0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85, + 0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85, + 0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85, + 0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85, + 0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85, + 0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b, + 0x5ee2: 0x002d228b, + 0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b, + 0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b, + 0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b, + 0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b, + 0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85, + 0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885, + 0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85, + // Block 0x17c, offset 0x5f00 + 0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85, + 0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85, + 0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85, + 0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85, + 0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b, + 0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b, + 0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b, + 0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b, + 0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b, + 0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b, + 0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85, + 0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885, + 0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85, + 0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85, + 0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85, + 0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85, + // Block 0x17d, offset 0x5f40 + 0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85, + 0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b, + 0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b, + 0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b, + 0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b, + 0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b, + 0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b, + 0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85, + 0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885, + 0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85, + 0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85, + 0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85, + 0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85, + 0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85, + 0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b, + 0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b, + // Block 0x17e, offset 0x5f80 + 0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b, + 0x5f84: 0x002e828b, 0x5f86: 0x002ee28b, + 0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b, + 0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b, + 0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85, + 0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885, + 0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85, + 0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85, + 0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85, + 0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85, + 0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85, + 0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b, + 0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b, + 0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b, + 0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b, + 0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b, + // Block 0x17f, offset 0x5fc0 + 0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b, + 0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85, + 0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885, + 0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85, + 0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85, + 0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85, + 0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85, + 0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85, + 0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b, + 0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b, + 0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b, + 0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b, + 0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b, + 0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b, + 0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85, + 0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885, + // Block 0x180, offset 0x6000 + 0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85, + 0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85, + 0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85, + 0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85, + 0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85, + 0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b, + 0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b, + 0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b, + 0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b, + 0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b, + 0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b, + 0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85, + 0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885, + 0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85, + 0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85, + 0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85, + // Block 0x181, offset 0x6040 + 0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85, + 0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85, + 0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b, + 0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b, + 0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b, + 0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b, + 0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b, + 0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b, + 0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85, + 0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885, + 0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85, + 0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85, + 0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85, + 0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85, + 0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85, + 0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b, + // Block 0x182, offset 0x6080 + 0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b, + 0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b, + 0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b, + 0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b, + 0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b, + 0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85, + 0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885, + 0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85, + 0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85, + 0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85, + 0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85, + 0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85, + 0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b, + 0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b, + 0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b, + 0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b, + // Block 0x183, offset 0x60c0 + 0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b, + 0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b, + 0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85, + 0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885, + 0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85, + 0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85, + 0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85, + 0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85, + 0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85, + 0x60e4: 0x002da285, 0x60e5: 0x002dd485, + 0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b, + 0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b, + 0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b, + 0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b, + 0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b, + 0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b, + // Block 0x184, offset 0x6100 + 0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485, + 0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485, + 0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085, + 0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85, + 0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85, + 0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85, + 0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85, + 0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85, + 0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b, + 0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b, + 0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b, + 0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b, + 0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b, + 0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b, + 0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485, + 0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85, + // Block 0x185, offset 0x6140 + 0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85, + 0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685, + 0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85, + 0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685, + 0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85, + 0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85, + 0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85, + 0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b, + 0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b, + 0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b, + 0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b, + 0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b, + 0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b, + 0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485, + 0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485, + 0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085, + // Block 0x186, offset 0x6180 + 0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85, + 0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85, + 0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85, + 0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85, + 0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85, + 0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b, + 0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b, + 0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b, + 0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b, + 0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b, + 0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b, + 0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485, + 0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85, + 0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85, + 0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685, + 0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85, + // Block 0x187, offset 0x61c0 + 0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685, + 0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85, + 0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85, + 0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85, + 0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b, + 0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b, + 0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b, + 0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b, + 0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b, + 0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b, + 0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485, + 0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485, + 0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085, + 0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85, + 0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85, + 0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85, + // Block 0x188, offset 0x6200 + 0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85, + 0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85, + 0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85, + 0x620e: 0x0029cc85, 0x620f: 0x0029ce85, + 0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685, + 0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85, + 0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285, + 0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85, + 0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85, + 0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685, + 0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85, + 0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285, + 0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85, + 0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85, + 0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685, + 0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85, + // Block 0x189, offset 0x6240 + 0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885, + 0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285, + 0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085, + 0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85, + 0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485, + 0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485, + 0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085, + 0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085, + 0x6261: 0x00393c85, 0x6262: 0x00396485, + 0x6264: 0x003a6885, 0x6267: 0x00397285, + 0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085, + 0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85, + 0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285, + 0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485, + 0x6279: 0x0039de85, 0x627b: 0x0039f085, + // Block 0x18a, offset 0x6280 + 0x6282: 0x00396485, + 0x6287: 0x00397285, + 0x6289: 0x003a9085, 0x628b: 0x003a4085, + 0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85, + 0x6291: 0x0039dc85, 0x6292: 0x003a1285, + 0x6294: 0x0039c885, 0x6297: 0x00397485, + 0x6299: 0x0039de85, 0x629b: 0x0039f085, + 0x629d: 0x003a5885, 0x629f: 0x003a1085, + 0x62a1: 0x00393c85, 0x62a2: 0x00396485, + 0x62a4: 0x003a6885, 0x62a7: 0x00397285, + 0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85, + 0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85, + 0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285, + 0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485, + 0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085, + 0x62bc: 0x00393a85, 0x62be: 0x0039fe85, + // Block 0x18b, offset 0x62c0 + 0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885, + 0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285, + 0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085, + 0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85, + 0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485, + 0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485, + 0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085, + 0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885, + 0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285, + 0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085, + 0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85, + 0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485, + 0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485, + 0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085, + // Block 0x18c, offset 0x6300 + 0x6330: 0x40070a20, 0x6331: 0x40070c20, + // Block 0x18d, offset 0x6340 + 0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420, + 0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20, + 0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420, + 0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20, + 0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420, + 0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20, + 0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420, + 0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20, + 0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420, + 0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20, + 0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420, + 0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20, + 0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420, + 0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20, + 0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420, + // Block 0x18e, offset 0x6380 + 0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20, + 0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420, + 0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20, + 0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420, + 0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20, + 0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420, + 0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20, + 0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420, + 0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20, + 0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420, + 0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20, + 0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420, + 0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20, + 0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420, + 0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20, + 0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420, + // Block 0x18f, offset 0x63c0 + 0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20, + 0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420, + 0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20, + 0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420, + 0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20, + 0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420, + 0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20, + 0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420, + 0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20, + 0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020, + 0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820, + 0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020, + 0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620, + // Block 0x190, offset 0x6400 + 0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20, + 0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420, + 0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20, + 0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420, + 0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20, + 0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220, + 0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20, + 0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220, + // Block 0x191, offset 0x6440 + 0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04, + 0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04, + 0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04, + 0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04, + 0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04, + 0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04, + 0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04, + 0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04, + 0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04, + 0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c, + 0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c, + 0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d, + 0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d, + 0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d, + 0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d, + // Block 0x192, offset 0x6480 + 0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d, + 0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d, + 0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d, + 0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d, + 0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c, + 0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c, + 0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c, + 0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c, + 0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c, + 0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c, + 0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414, + 0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d, + 0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d, + 0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d, + 0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d, + // Block 0x193, offset 0x64c0 + 0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d, + 0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d, + 0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81, + 0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0, + 0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4, + 0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b, + 0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0, + // Block 0x194, offset 0x6500 + 0x6526: 0x40110c20, 0x6527: 0x40110e20, + 0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620, + 0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20, + 0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620, + 0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20, + 0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620, + 0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20, + // Block 0x195, offset 0x6540 + 0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c, + 0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c, + 0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c, + 0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c, + 0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c, + 0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c, + 0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c, + 0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c, + 0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c, + 0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c, + 0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c, + 0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c, + // Block 0x196, offset 0x6580 + 0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404, + 0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404, + 0x6588: 0xf0000404, + 0x6590: 0x02bf2e86, 0x6591: 0x02a7de86, + // Block 0x197, offset 0x65c0 + 0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20, + 0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220, + 0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20, + 0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220, + 0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20, + 0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220, + 0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20, + 0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220, + 0x65e0: 0x40214420, + 0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20, + 0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220, + 0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20, + 0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220, + // Block 0x198, offset 0x6600 + 0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20, + 0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220, + 0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20, + 0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220, + 0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20, + 0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220, + 0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20, + 0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220, + 0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20, + 0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220, + 0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20, + 0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220, + 0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20, + 0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220, + 0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20, + 0x663c: 0x4021dc20, + // Block 0x199, offset 0x6640 + 0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420, + 0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20, + 0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420, + 0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20, + 0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420, + 0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20, + 0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420, + 0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20, + 0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420, + 0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20, + 0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420, + 0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20, + 0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420, + // Block 0x19a, offset 0x6680 + 0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20, + 0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220, + 0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820, + 0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020, + 0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820, + 0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020, + 0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820, + 0x66b0: 0x40227a20, + // Block 0x19b, offset 0x66c0 + 0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220, + 0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20, + 0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220, + 0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20, + 0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220, + 0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20, + 0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220, + 0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20, + 0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220, + 0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20, + 0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220, + 0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20, + 0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220, + 0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20, + 0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220, + 0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820, + // Block 0x19c, offset 0x6700 + 0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20, + 0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620, + 0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20, + 0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620, + 0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20, + 0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620, + 0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20, + 0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620, + 0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20, + 0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620, + 0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20, + 0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620, + 0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20, + 0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620, + 0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20, + 0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620, + // Block 0x19d, offset 0x6740 + 0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20, + 0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620, + 0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20, + 0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620, + 0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20, + 0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620, + 0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20, + 0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620, + 0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20, + 0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620, + 0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20, + 0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620, + 0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20, + 0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620, + 0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20, + 0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620, + // Block 0x19e, offset 0x6780 + 0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20, + 0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620, + 0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20, + 0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620, + 0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20, + 0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620, + 0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20, + 0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620, + 0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20, + 0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620, + 0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20, + 0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620, + 0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20, + 0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620, + 0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20, + 0x67bc: 0x40246e20, + // Block 0x19f, offset 0x67c0 + 0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620, + 0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20, + 0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620, + 0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20, + 0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620, + 0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20, + 0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620, + 0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20, + 0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620, + 0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20, + 0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620, + 0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20, + 0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620, + 0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20, + 0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620, + 0x67fc: 0x4024e820, 0x67fd: 0x4024ea20, + // Block 0x1a0, offset 0x6800 + 0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220, + 0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20, + 0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220, + 0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20, + 0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220, + 0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20, + 0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220, + // Block 0x1a1, offset 0x6840 + 0x687b: 0x40252420, + 0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20, + // Block 0x1a2, offset 0x6880 + 0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420, + 0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20, + 0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420, + 0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20, + 0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420, + 0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20, + 0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420, + 0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20, + 0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420, + 0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20, + 0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420, + 0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20, + 0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420, + 0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20, + 0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420, + 0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20, + // Block 0x1a3, offset 0x68c0 + 0x68c0: 0x4025ae20, + 0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420, + 0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20, + 0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420, + // Block 0x1a4, offset 0x6900 + 0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20, + 0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420, + 0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20, + 0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420, + 0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20, + 0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420, + 0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20, + 0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420, + 0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20, + 0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420, + 0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20, + 0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420, + 0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20, + 0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420, + 0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20, + 0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420, + // Block 0x1a5, offset 0x6940 + 0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20, + 0x6944: 0x40264e20, 0x6945: 0x40265020, + // Block 0x1a6, offset 0x6980 + 0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820, + 0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020, + 0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820, + 0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020, + 0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820, + 0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020, + 0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820, + 0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020, + 0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820, + 0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020, + 0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820, + 0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020, + 0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820, + 0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020, + 0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820, + 0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020, + // Block 0x1a7, offset 0x69c0 + 0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820, + 0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020, + 0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820, + 0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020, + 0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820, + 0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020, + 0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820, + 0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020, + 0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820, + 0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020, + 0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820, + 0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020, + 0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820, + // Block 0x1a8, offset 0x6a00 + 0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420, + 0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420, + 0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20, + 0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820, + 0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220, + 0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20, + 0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20, + 0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20, + 0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20, + 0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820, + 0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20, + 0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620, + 0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20, + 0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20, + 0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20, + 0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020, + // Block 0x1a9, offset 0x6a40 + 0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620, + 0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220, + 0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20, + 0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820, + 0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820, + 0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220, + 0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20, + 0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420, + 0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620, + 0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20, + 0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20, + 0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20, + 0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20, + 0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020, + 0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820, + 0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620, + // Block 0x1aa, offset 0x6a80 + 0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20, + 0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220, + 0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020, + 0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420, + 0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220, + 0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020, + 0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620, + 0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220, + 0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820, + 0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820, + 0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20, + 0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20, + 0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620, + 0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020, + 0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020, + 0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420, + // Block 0x1ab, offset 0x6ac0 + 0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220, + 0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820, + 0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620, + 0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220, + 0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20, + 0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220, + 0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20, + 0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420, + 0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20, + 0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20, + 0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020, + 0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220, + 0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420, + 0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20, + 0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820, + 0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20, + // Block 0x1ac, offset 0x6b00 + 0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220, + 0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820, + 0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620, + 0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20, + 0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220, + 0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420, + 0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20, + 0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620, + 0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020, + 0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820, + 0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20, + 0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820, + 0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620, + 0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420, + 0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220, + 0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020, + // Block 0x1ad, offset 0x6b40 + 0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220, + 0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20, + 0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20, + 0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820, + 0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20, + 0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620, + 0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20, + 0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20, + 0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220, + 0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020, + 0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20, + 0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420, + 0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20, + 0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20, + 0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420, + 0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020, + // Block 0x1ae, offset 0x6b80 + 0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620, + 0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20, + 0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220, + 0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220, + 0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220, + 0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820, + 0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20, + 0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20, + 0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820, + 0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620, + 0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420, + 0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220, + 0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020, + 0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220, + 0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220, + 0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20, + // Block 0x1af, offset 0x6bc0 + 0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020, + 0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20, + 0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20, + 0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020, + 0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020, + 0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20, + 0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820, + 0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020, + 0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220, + 0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020, + 0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220, + 0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20, + 0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620, + 0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420, + 0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420, + 0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620, + // Block 0x1b0, offset 0x6c00 + 0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620, + 0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20, + 0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020, + 0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20, + 0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20, + 0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220, + 0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20, + 0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020, + // Block 0x1b1, offset 0x6c40 + 0x6c41: 0xa0000000, + 0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000, + 0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000, + 0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000, + 0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000, + 0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000, + 0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000, + 0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000, + 0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000, + // Block 0x1b2, offset 0x6c80 + 0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000, + 0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000, + 0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000, + 0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000, + 0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000, + 0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000, + 0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000, + 0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000, + 0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000, + 0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000, + 0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000, + 0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000, + 0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000, + 0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000, + 0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000, + 0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000, + // Block 0x1b3, offset 0x6cc0 + 0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000, + 0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000, + 0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000, + 0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000, + 0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000, + 0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000, + 0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000, + 0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000, + 0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000, + 0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000, + 0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000, + 0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000, + // Block 0x1b4, offset 0x6d00 + 0x6d00: 0xa0000000, 0x6d01: 0xa0000000, 0x6d02: 0xa0000000, 0x6d03: 0xa0000000, + 0x6d04: 0xa0000000, 0x6d05: 0xa0000000, 0x6d06: 0xa0000000, 0x6d07: 0xa0000000, + 0x6d08: 0xa0000000, 0x6d09: 0x40020020, 0x6d0a: 0x40020220, 0x6d0b: 0x40020420, + 0x6d0c: 0x40020620, 0x6d0d: 0x40020820, 0x6d0e: 0xa0000000, 0x6d0f: 0xa0000000, + 0x6d10: 0xa0000000, 0x6d11: 0xa0000000, 0x6d12: 0xa0000000, 0x6d13: 0xa0000000, + 0x6d14: 0xa0000000, 0x6d15: 0xa0000000, 0x6d16: 0xa0000000, 0x6d17: 0xa0000000, + 0x6d18: 0xa0000000, 0x6d19: 0xa0000000, 0x6d1a: 0xa0000000, 0x6d1b: 0xa0000000, + 0x6d1c: 0xa0000000, 0x6d1d: 0xa0000000, 0x6d1e: 0xa0000000, 0x6d1f: 0xa0000000, + 0x6d20: 0x40021220, 0x6d21: 0x4002ba20, 0x6d22: 0x4003e020, 0x6d23: 0x4004ea20, + 0x6d24: 0x4027de20, 0x6d25: 0x4004ec20, 0x6d26: 0x4004e620, 0x6d27: 0x4003d220, + 0x6d28: 0x4003f420, 0x6d29: 0x4003f620, 0x6d2a: 0x4004d820, 0x6d2b: 0x40093820, + 0x6d2c: 0x40024020, 0x6d2d: 0x40021a20, 0x6d2e: 0x4002e420, 0x6d2f: 0x4004e220, + 0x6d30: 0x4029cc20, 0x6d31: 0x4029ce20, 0x6d32: 0x4029d020, 0x6d33: 0x4029d220, + 0x6d34: 0x4029d420, 0x6d35: 0x4029d620, 0x6d36: 0x4029d820, 0x6d37: 0x4029da20, + 0x6d38: 0x4029dc20, 0x6d39: 0x4029de20, 0x6d3a: 0x40026c20, 0x6d3b: 0x40026220, + 0x6d3c: 0x40094020, 0x6d3d: 0xc32f0851, 0x6d3e: 0x40094420, 0x6d3f: 0x4002c420, + // Block 0x1b5, offset 0x6d40 + 0x6d40: 0x4004d620, 0x6d41: 0x002bde88, 0x6d42: 0x002c0a88, 0x6d43: 0x002c3a88, + 0x6d44: 0x002c6288, 0x6d45: 0x002c9888, 0x6d46: 0x002d0888, 0x6d47: 0x002d2288, + 0x6d48: 0x002d6888, 0x6d49: 0x002d9a88, 0x6d4a: 0x002dcc88, 0x6d4b: 0x002dfe88, + 0x6d4c: 0xc0030002, 0x6d4d: 0x002e8288, 0x6d4e: 0x002e9e88, 0x6d4f: 0x002ee288, + 0x6d50: 0x002f2c88, 0x6d51: 0x002f5688, 0x6d52: 0x002f7a88, 0x6d53: 0x002fe688, + 0x6d54: 0x00302c88, 0x6d55: 0x00306c88, 0x6d56: 0x0030be88, 0x6d57: 0x0030e288, + 0x6d58: 0x0030f688, 0x6d59: 0x00310088, 0x6d5a: 0x00312a88, 0x6d5b: 0x4003f820, + 0x6d5c: 0x4004e420, 0x6d5d: 0x4003fa20, 0x6d5e: 0x40062420, 0x6d5f: 0x40021620, + 0x6d60: 0x40061e20, 0x6d61: 0x402bde20, 0x6d62: 0x402c0a20, 0x6d63: 0x402c3a20, + 0x6d64: 0x402c6220, 0x6d65: 0x402c9820, 0x6d66: 0x402d0820, 0x6d67: 0x402d2220, + 0x6d68: 0x402d6820, 0x6d69: 0x402d9a20, 0x6d6a: 0x402dcc20, 0x6d6b: 0x402dfe20, + 0x6d6c: 0xc0000002, 0x6d6d: 0x402e8220, 0x6d6e: 0x402e9e20, 0x6d6f: 0x402ee220, + 0x6d70: 0x402f2c20, 0x6d71: 0x402f5620, 0x6d72: 0x402f7a20, 0x6d73: 0x402fe620, + 0x6d74: 0x40302c20, 0x6d75: 0x40306c20, 0x6d76: 0x4030be20, 0x6d77: 0x4030e220, + 0x6d78: 0x4030f620, 0x6d79: 0x40310020, 0x6d7a: 0x40312a20, 0x6d7b: 0x4003fc20, + 0x6d7c: 0x40094820, 0x6d7d: 0x4003fe20, 0x6d7e: 0x40094c20, 0x6d7f: 0xa0000000, + // Block 0x1b6, offset 0x6d80 + 0x6d80: 0x40055620, 0x6d81: 0xa1809102, 0x6d82: 0xa1909002, 0x6d83: 0x40055820, + 0x6d84: 0xae600000, 0x6d85: 0xadc00000, 0x6d86: 0x40055a20, 0x6d87: 0xa1208d02, + 0x6d90: 0x40389020, 0x6d91: 0x40389220, 0x6d92: 0x40389420, 0x6d93: 0x40389620, + 0x6d94: 0x40389820, 0x6d95: 0x40389a20, 0x6d96: 0x40389c20, 0x6d97: 0x40389e20, + 0x6d98: 0x4038a020, 0x6d99: 0x4038a220, 0x6d9a: 0x0038a499, 0x6d9b: 0x4038a420, + 0x6d9c: 0x4038a620, 0x6d9d: 0x0038a899, 0x6d9e: 0x4038a820, 0x6d9f: 0x0038aa99, + 0x6da0: 0x4038aa20, 0x6da1: 0x4038ac20, 0x6da2: 0x4038ae20, 0x6da3: 0x0038b099, + 0x6da4: 0x4038b020, 0x6da5: 0x0038b299, 0x6da6: 0x4038b220, 0x6da7: 0x4038b420, + 0x6da8: 0x4038b620, 0x6da9: 0x4038b820, 0x6daa: 0x4038ba20, + 0x6db0: 0xe00014ff, 0x6db1: 0xe0001502, 0x6db2: 0xe0001511, 0x6db3: 0xa0002102, + 0x6db4: 0xa0002202, + // Block 0x1b7, offset 0x6dc0 + 0x6dc0: 0xa0000000, 0x6dc1: 0xa0000000, 0x6dc2: 0xa0000000, 0x6dc3: 0xa0000000, + 0x6dc4: 0xa0000000, 0x6dc6: 0x40096620, 0x6dc7: 0x40096a20, + 0x6dc8: 0x40070820, 0x6dc9: 0x4004f220, 0x6dca: 0x4004f620, 0x6dcb: 0x4027e620, + 0x6dcc: 0x40024820, 0x6dcd: 0x40024a20, 0x6dce: 0x40070e20, 0x6dcf: 0x40071020, + 0x6dd0: 0xae600000, 0x6dd1: 0xae600000, 0x6dd2: 0xae600000, 0x6dd3: 0xae600000, + 0x6dd4: 0xae600000, 0x6dd5: 0xae600000, 0x6dd6: 0xae600000, 0x6dd7: 0xae600000, + 0x6dd8: 0xa1e00000, 0x6dd9: 0xa1f00000, 0x6dda: 0xa2000000, 0x6ddb: 0x40026420, + 0x6dde: 0x40027020, 0x6ddf: 0x4002cc20, + 0x6de0: 0x403aa220, 0x6de1: 0x40391c20, 0x6de2: 0x40393a21, 0x6de3: 0x40393a22, + 0x6de4: 0x403a7621, 0x6de5: 0x40393a23, 0x6de6: 0x403a9221, 0x6de7: 0xc3310151, + 0x6de8: 0x40393c20, 0x6de9: 0x403a6a21, 0x6dea: 0x40395620, 0x6deb: 0x40395820, + 0x6dec: 0x40396420, 0x6ded: 0x40397220, 0x6dee: 0x40397420, 0x6def: 0x40398820, + 0x6df0: 0x40398a20, 0x6df1: 0x4039a420, 0x6df2: 0x4039a620, 0x6df3: 0x4039c620, + 0x6df4: 0x4039c820, 0x6df5: 0x4039dc20, 0x6df6: 0x4039de20, 0x6df7: 0x4039e620, + 0x6df8: 0x4039e820, 0x6df9: 0x4039ee20, 0x6dfa: 0x4039f020, 0x6dfb: 0x403a3820, + 0x6dfc: 0x403a3a20, 0x6dfd: 0x403a9c20, 0x6dfe: 0x403a9e20, 0x6dff: 0x403aa020, + // Block 0x1b8, offset 0x6e00 + 0x6e00: 0xa0002302, 0x6e01: 0x4039fc20, 0x6e02: 0x403a1220, 0x6e03: 0x403a1a20, + 0x6e04: 0x403a4020, 0x6e05: 0x403a4e20, 0x6e06: 0x403a5620, 0x6e07: 0x403a6820, + 0x6e08: 0xc3350171, 0x6e09: 0x403a9222, 0x6e0a: 0xc3370171, 0x6e0b: 0xa1b0a202, + 0x6e0c: 0xa1c0a502, 0x6e0d: 0xa1d0a902, 0x6e0e: 0xa1e0ad02, 0x6e0f: 0xa1f0b202, + 0x6e10: 0xa200b602, 0x6e11: 0xa210ba02, 0x6e12: 0xa220bc02, 0x6e13: 0xae60bd02, + 0x6e14: 0xae60be02, 0x6e15: 0xadc0bf02, 0x6e16: 0xadc0c102, 0x6e17: 0xae60c202, + 0x6e18: 0xae60c302, 0x6e19: 0xae60c402, 0x6e1a: 0xae60c502, 0x6e1b: 0xae60c602, + 0x6e1c: 0xadc0c702, 0x6e1d: 0xae60c802, 0x6e1e: 0xae60c902, 0x6e1f: 0xadc0c002, + 0x6e20: 0xe000015e, 0x6e21: 0xe00001e6, 0x6e22: 0xe0000301, 0x6e23: 0xe00003db, + 0x6e24: 0xe00004b6, 0x6e25: 0xe0000580, 0x6e26: 0xe000064b, 0x6e27: 0xe00006f3, + 0x6e28: 0xe000079f, 0x6e29: 0xe0000844, 0x6e2a: 0x4004ee20, 0x6e2b: 0x40024c20, + 0x6e2c: 0x40024e20, 0x6e2d: 0x4004de20, 0x6e2e: 0x40393a20, 0x6e2f: 0x403a1020, + 0x6e30: 0xa230d102, 0x6e31: 0x40392420, 0x6e32: 0x40392220, 0x6e33: 0x40392a20, + 0x6e34: 0x00391c84, 0x6e35: 0xf0000404, 0x6e36: 0xf0000404, 0x6e37: 0xf0000404, + 0x6e38: 0xf0000404, 0x6e39: 0x40395a20, 0x6e3a: 0x40395c20, 0x6e3b: 0x40393e20, + 0x6e3c: 0x40395e20, 0x6e3d: 0x40396020, 0x6e3e: 0x40394020, 0x6e3f: 0x40396220, + // Block 0x1b9, offset 0x6e40 + 0x6e40: 0xe00017e4, 0x6e41: 0x403a6c20, 0x6e42: 0xe00017e1, 0x6e43: 0x403a6e20, + 0x6e44: 0x403a7620, 0x6e45: 0x403a7820, 0x6e46: 0x403a7a20, 0x6e47: 0x403a7c20, + 0x6e48: 0x403a7e20, 0x6e49: 0x403a8020, 0x6e4a: 0x403a8220, 0x6e4b: 0x403a8420, + 0x6e4c: 0x403a9220, 0x6e4d: 0x403a9420, 0x6e4e: 0x403a9620, 0x6e4f: 0x403a8620, + 0x6e50: 0x403a9820, 0x6e51: 0x403a9a20, 0x6e52: 0x403aaa20, 0x6e53: 0xe0001800, + 0x6e54: 0x4002e820, 0x6e55: 0x403a7220, 0x6e56: 0xae600000, 0x6e57: 0xae600000, + 0x6e58: 0xae600000, 0x6e59: 0xae600000, 0x6e5a: 0xae600000, 0x6e5b: 0xae600000, + 0x6e5c: 0xae600000, 0x6e5d: 0xa0000000, 0x6e5e: 0x40071220, 0x6e5f: 0xae600000, + 0x6e60: 0xae600000, 0x6e61: 0xae600000, 0x6e62: 0xae600000, 0x6e63: 0xadc00000, + 0x6e64: 0xae600000, 0x6e65: 0x003a7483, 0x6e66: 0x003a9083, 0x6e67: 0xae600000, + 0x6e68: 0xae600000, 0x6e69: 0x40071420, 0x6e6a: 0xadc00000, 0x6e6b: 0xae600000, + 0x6e6c: 0xae600000, 0x6e6d: 0xadc00000, 0x6e6e: 0x40399e20, 0x6e6f: 0x4039ba20, + 0x6e70: 0xe0000161, 0x6e71: 0xe00001e9, 0x6e72: 0xe0000304, 0x6e73: 0xe00003de, + 0x6e74: 0xe00004b9, 0x6e75: 0xe0000583, 0x6e76: 0xe000064e, 0x6e77: 0xe00006f6, + 0x6e78: 0xe00007a2, 0x6e79: 0xe0000847, 0x6e7a: 0x4039d020, 0x6e7b: 0x4039e420, + 0x6e7c: 0x4039f420, 0x6e7d: 0xe0001553, 0x6e7e: 0xe0001779, 0x6e7f: 0x403a7020, + // Block 0x1ba, offset 0x6e80 + 0x6e81: 0x40491020, 0x6e82: 0x40491220, 0x6e83: 0x40491420, + 0x6e84: 0x40491620, 0x6e85: 0x40491820, 0x6e86: 0x40491a20, 0x6e87: 0x40491c20, + 0x6e88: 0x40491e20, 0x6e89: 0x40492020, 0x6e8a: 0x40492220, 0x6e8b: 0x40492420, + 0x6e8c: 0x40492620, 0x6e8d: 0x40492820, 0x6e8e: 0x40492a20, 0x6e8f: 0x40492c20, + 0x6e90: 0x40492e20, 0x6e91: 0x40493020, 0x6e92: 0x40493220, 0x6e93: 0x40493420, + 0x6e94: 0x40493620, 0x6e95: 0x40493820, 0x6e96: 0x40493a20, 0x6e97: 0x40493c20, + 0x6e98: 0x40493e20, 0x6e99: 0x40494020, 0x6e9a: 0x40494220, 0x6e9b: 0x40494420, + 0x6e9c: 0x40494620, 0x6e9d: 0x40494820, 0x6e9e: 0x40494a20, 0x6e9f: 0x40494c20, + 0x6ea0: 0x40494e20, 0x6ea1: 0x40495020, 0x6ea2: 0x40495220, 0x6ea3: 0x40495420, + 0x6ea4: 0x40495620, 0x6ea5: 0x40495820, 0x6ea6: 0x40495a20, 0x6ea7: 0x40495c20, + 0x6ea8: 0x40495e20, 0x6ea9: 0x40496020, 0x6eaa: 0x40496220, 0x6eab: 0x40496420, + 0x6eac: 0x40496620, 0x6ead: 0x40496820, 0x6eae: 0x40496a20, 0x6eaf: 0x40496c20, + 0x6eb0: 0x40496e20, 0x6eb1: 0x40497020, 0x6eb2: 0x40497220, 0x6eb3: 0x40497420, + 0x6eb4: 0x40497620, 0x6eb5: 0x40497820, 0x6eb6: 0x40497a20, 0x6eb7: 0x40497c20, + 0x6eb8: 0x826724bf, 0x6eb9: 0x826724c0, 0x6eba: 0xa0002402, + 0x6ebf: 0x4027f420, + // Block 0x1bb, offset 0x6ec0 + 0x6ec0: 0x4062ac20, 0x6ec1: 0xe0002526, 0x6ec2: 0x4062b020, 0x6ec3: 0x4062b220, + 0x6ec4: 0xe0002532, 0x6ec5: 0x4062b620, 0x6ec6: 0x4062b820, 0x6ec7: 0x4062ba20, + 0x6ec8: 0xe000254a, 0x6ec9: 0x4062be20, 0x6eca: 0xe0002550, 0x6ecb: 0x4062c220, + 0x6ecc: 0x4062c420, 0x6ecd: 0xe0002553, 0x6ece: 0x4062c820, 0x6ecf: 0x4062ca20, + 0x6ed0: 0x4062cc20, 0x6ed1: 0x4062ce20, 0x6ed2: 0x4062d020, 0x6ed3: 0x4062d220, + 0x6ed4: 0x4062d420, 0x6ed5: 0x4062d620, 0x6ed6: 0x4062d820, 0x6ed7: 0x4062da20, + 0x6ed8: 0x4062dc20, 0x6ed9: 0x4062de20, 0x6eda: 0x4062e020, 0x6edb: 0x4062e220, + 0x6edc: 0x4062e420, 0x6edd: 0x4062e620, 0x6ede: 0x4062e820, 0x6edf: 0x4062ea20, + 0x6ee0: 0x4062ec20, 0x6ee1: 0x4062ee20, 0x6ee2: 0x4062f020, 0x6ee3: 0x4062f220, + 0x6ee4: 0x4062f420, 0x6ee5: 0x4062f620, 0x6ee6: 0x4062f820, 0x6ee7: 0x4062fa20, + 0x6ee8: 0x4062fc20, 0x6ee9: 0x4062fe20, 0x6eea: 0x40630020, 0x6eeb: 0x40630220, + 0x6eec: 0x40630420, 0x6eed: 0x40630620, 0x6eee: 0x40630820, 0x6eef: 0x40630a20, + 0x6ef0: 0x40630c20, 0x6ef1: 0x40630e20, 0x6ef2: 0x40631020, 0x6ef3: 0x40631220, + 0x6ef4: 0x40631420, 0x6ef5: 0x40631620, 0x6ef6: 0x40631820, 0x6ef7: 0x40631a20, + 0x6ef8: 0x40631c20, 0x6ef9: 0x40631e20, 0x6efa: 0x40632020, 0x6efb: 0x40632220, + 0x6efc: 0x40632420, 0x6efd: 0x40632620, 0x6efe: 0x40632820, 0x6eff: 0x40632a20, + // Block 0x1bc, offset 0x6f00 + 0x6f00: 0x40632c20, 0x6f01: 0x40632e20, 0x6f02: 0x40633020, 0x6f03: 0x40633220, + 0x6f04: 0x40633420, 0x6f05: 0x40633620, 0x6f06: 0x40633820, 0x6f07: 0x40633a20, + 0x6f08: 0x40633c20, 0x6f09: 0x40633e20, 0x6f0a: 0x40634020, 0x6f0b: 0x40634220, + 0x6f0c: 0x40634420, 0x6f0d: 0x40634620, 0x6f0e: 0x40634820, 0x6f0f: 0x40634a20, + 0x6f10: 0x40634c20, 0x6f11: 0x40634e20, 0x6f12: 0x40635020, 0x6f13: 0x40635220, + 0x6f14: 0x40635420, 0x6f15: 0x40635620, 0x6f16: 0x40635820, 0x6f17: 0x40635a20, + 0x6f18: 0x40635c20, 0x6f19: 0x40635e20, 0x6f1a: 0x40636020, 0x6f1b: 0x40636220, + 0x6f1c: 0x40636420, 0x6f1d: 0x40636620, 0x6f1e: 0x40636820, 0x6f1f: 0x4063a420, + 0x6f20: 0x4063a620, 0x6f21: 0x4063a820, 0x6f22: 0xe0002556, 0x6f23: 0x4063ac20, + 0x6f24: 0xe0002559, 0x6f25: 0x4063b020, 0x6f26: 0xe000255c, 0x6f27: 0x4063b420, + 0x6f28: 0xe000255f, 0x6f29: 0x4063b820, 0x6f2a: 0xe0002562, 0x6f2b: 0xe0002565, + 0x6f2c: 0xe0002569, 0x6f2d: 0x4063c020, 0x6f2e: 0x4063c220, 0x6f2f: 0xe000256c, + 0x6f30: 0xe000256f, 0x6f31: 0xe0002573, 0x6f32: 0x4063ca20, 0x6f33: 0x4063cc20, + 0x6f34: 0x4063ce20, 0x6f35: 0x4063d020, 0x6f36: 0x4063d220, 0x6f37: 0x4063d420, + 0x6f38: 0x4063d620, 0x6f39: 0x4063d820, 0x6f3a: 0x4063da20, 0x6f3b: 0x4063dc20, + 0x6f3c: 0x4063de20, 0x6f3d: 0x4063e020, 0x6f3e: 0x4063e220, 0x6f3f: 0x4063e420, + // Block 0x1bd, offset 0x6f40 + 0x6f40: 0x4063e620, 0x6f41: 0x4063e820, 0x6f42: 0x4063ea20, 0x6f43: 0x4063ec20, + 0x6f44: 0x4063ee20, 0x6f45: 0x4063f020, 0x6f46: 0x4063f220, 0x6f47: 0x4063f420, + 0x6f48: 0x4063f620, 0x6f49: 0x4063f820, 0x6f4a: 0x4063fa20, 0x6f4b: 0x4063fc20, + 0x6f4c: 0x4063fe20, 0x6f4d: 0x40640020, 0x6f4e: 0x40640220, 0x6f4f: 0x40640420, + 0x6f50: 0x40640620, 0x6f51: 0x40640820, 0x6f52: 0x40640a20, 0x6f53: 0x40640c20, + 0x6f54: 0x40640e20, 0x6f55: 0x40641020, 0x6f56: 0x40641220, 0x6f57: 0x40641420, + 0x6f58: 0x40641620, 0x6f59: 0x40641820, 0x6f5a: 0x40641a20, 0x6f5b: 0x40641c20, + 0x6f5c: 0x40641e20, 0x6f5d: 0x40642020, 0x6f5e: 0x40642220, 0x6f5f: 0x40642420, + 0x6f60: 0x40642620, 0x6f61: 0x40642820, 0x6f62: 0x40642a20, 0x6f63: 0x40642c20, + 0x6f64: 0x40642e20, 0x6f65: 0x40643020, 0x6f66: 0x40643220, 0x6f67: 0x40643420, + 0x6f68: 0x4062ac20, 0x6f69: 0xe0002526, 0x6f6a: 0xe0002529, 0x6f6b: 0x4062b020, + 0x6f6c: 0xe000252c, 0x6f6d: 0xe000252f, 0x6f6e: 0x4062b220, 0x6f6f: 0x4062b620, + 0x6f70: 0xe0002535, 0x6f71: 0xe0002538, 0x6f72: 0xe000253b, 0x6f73: 0xe000253e, + 0x6f74: 0xe0002541, 0x6f75: 0xe0002544, 0x6f76: 0xe0002547, 0x6f77: 0x4062b820, + 0x6f78: 0x4062ba20, 0x6f79: 0xe000254d, 0x6f7a: 0x4062be20, 0x6f7b: 0xe0002550, + 0x6f7c: 0x4062c220, 0x6f7d: 0x4062c420, 0x6f7e: 0x4062c820, 0x6f7f: 0x4062ca20, + // Block 0x1be, offset 0x6f80 + 0x6f80: 0x4062cc20, 0x6f81: 0x4062ce20, 0x6f82: 0x4062d020, 0x6f83: 0x40649a20, + 0x6f84: 0x40649c20, 0x6f85: 0x40649e20, 0x6f86: 0x4064a020, 0x6f87: 0x4064a220, + 0x6f88: 0x4064a420, 0x6f89: 0x4064a620, 0x6f8a: 0x4064a820, 0x6f8b: 0x4064aa20, + 0x6f8c: 0x4064ac20, 0x6f8d: 0x4064ae20, 0x6f8e: 0x4064b020, 0x6f8f: 0x4064b220, + 0x6f90: 0x4064b420, 0x6f91: 0x4064b620, 0x6f92: 0x4064b820, 0x6f93: 0x4064ba20, + 0x6f94: 0x4064bc20, 0x6f95: 0x4064be20, 0x6f96: 0x4064c020, 0x6f97: 0x4064c220, + 0x6f98: 0x4064c420, 0x6f99: 0x4064c620, 0x6f9a: 0x4064c820, 0x6f9b: 0x4064ca20, + 0x6f9c: 0x4064cc20, 0x6f9d: 0x4064ce20, 0x6f9e: 0x4064d020, 0x6f9f: 0x4064d220, + 0x6fa0: 0x4064d420, 0x6fa1: 0x4064d620, 0x6fa2: 0x4064d820, 0x6fa3: 0x4064da20, + 0x6fa4: 0x4064dc20, 0x6fa5: 0x4064de20, 0x6fa6: 0x4064e020, 0x6fa7: 0x4064e220, + 0x6fa8: 0x4064e420, 0x6fa9: 0x4064e620, 0x6faa: 0x4064e820, 0x6fab: 0x4064ea20, + 0x6fac: 0x4064ec20, 0x6fad: 0x4064ee20, 0x6fae: 0x4064f020, 0x6faf: 0x4064f220, + 0x6fb0: 0x4064f420, 0x6fb1: 0x4064f620, 0x6fb2: 0x4064f820, 0x6fb3: 0x4064fa20, + 0x6fb4: 0x4064fc20, 0x6fb5: 0x4064fe20, 0x6fb6: 0x40650020, 0x6fb7: 0x40650220, + 0x6fb8: 0x40650420, 0x6fb9: 0x40650620, 0x6fba: 0x40650820, 0x6fbb: 0x40650a20, + 0x6fbc: 0x40650c20, 0x6fbd: 0x40650e20, 0x6fbe: 0x40651020, 0x6fbf: 0x40651220, + // Block 0x1bf, offset 0x6fc0 + 0x6fc0: 0x4009a620, 0x6fc1: 0xe00000f5, 0x6fc2: 0x4009a820, 0x6fc3: 0x4009aa20, + 0x6fc4: 0xe00000f8, 0x6fc5: 0x4009ac20, 0x6fc6: 0x4009ae20, 0x6fc7: 0xe00000fb, + 0x6fc8: 0x4009b020, 0x6fc9: 0xe00000fe, 0x6fca: 0x4009b220, 0x6fcb: 0x4009b420, + 0x6fcc: 0x4009b620, 0x6fcd: 0x4009b820, 0x6fce: 0x4009ba20, 0x6fcf: 0x4009bc20, + 0x6fd0: 0x4009be20, 0x6fd1: 0x4009c020, 0x6fd2: 0x4009c220, 0x6fd3: 0x4009c420, + 0x6fd4: 0x4009c620, 0x6fd5: 0x4009c820, 0x6fd6: 0x4009ca20, 0x6fd7: 0x4009cc20, + 0x6fd8: 0x4009ce20, 0x6fd9: 0x4009d020, 0x6fda: 0x4009d220, 0x6fdb: 0x4009d420, + 0x6fdc: 0x4009d620, 0x6fdd: 0x4009d820, 0x6fde: 0x4009da20, 0x6fdf: 0x4009dc20, + 0x6fe0: 0x40094420, 0x6fe1: 0x4009de20, 0x6fe2: 0xe0000104, 0x6fe3: 0x4009e020, + 0x6fe4: 0x4009e220, 0x6fe5: 0x4009e420, 0x6fe6: 0x4009e620, 0x6fe7: 0x4009e820, + 0x6fe8: 0x4009ea20, 0x6fe9: 0x4009ec20, 0x6fea: 0x4009ee20, 0x6feb: 0x4009f020, + 0x6fec: 0x4009f220, 0x6fed: 0xe0000101, 0x6fee: 0xe00000e1, 0x6fef: 0xe00000e7, + 0x6ff0: 0xe0000107, 0x6ff1: 0xe000010a, 0x6ff2: 0x4009f420, 0x6ff3: 0x4009f620, + 0x6ff4: 0xe000010d, 0x6ff5: 0xe0000110, 0x6ff6: 0x4009f820, 0x6ff7: 0x4009fa20, + 0x6ff8: 0xe0000113, 0x6ff9: 0xe0000116, 0x6ffa: 0x4009fc20, 0x6ffb: 0x4009fe20, + 0x6ffc: 0x400a0020, 0x6ffd: 0x400a0220, 0x6ffe: 0x400a0420, 0x6fff: 0x400a0620, + // Block 0x1c0, offset 0x7000 + 0x7000: 0x40073420, 0x7001: 0x40073620, + 0x7013: 0x003a269a, + 0x7014: 0x003a2699, 0x7015: 0x003a2697, 0x7016: 0x003a2698, 0x7017: 0x003a7c9a, + 0x7018: 0x003a7c99, 0x7019: 0x003a7a9a, 0x701a: 0x003a7a99, 0x701b: 0x003a7e9a, + 0x701c: 0x003a7e99, 0x701d: 0xf0001a1a, 0x701e: 0x003a849a, 0x701f: 0x003a8499, + 0x7020: 0x003a789a, 0x7021: 0x003a7899, 0x7022: 0x003a809a, 0x7023: 0x003a8099, + 0x7024: 0x003a989a, 0x7025: 0x003a9899, 0x7026: 0x003a9897, 0x7027: 0x003a9898, + 0x7028: 0x003a92c3, 0x7029: 0x003a92c4, 0x702a: 0xe0001559, 0x702b: 0xe0001556, + 0x702c: 0xe0001589, 0x702d: 0xe0001586, 0x702e: 0xe000158f, 0x702f: 0xe000158c, + 0x7030: 0xe000159b, 0x7031: 0xe0001598, 0x7032: 0xe0001595, 0x7033: 0xe0001592, + 0x7034: 0xe00015a1, 0x7035: 0xe000159e, 0x7036: 0xe00015bf, 0x7037: 0xe00015bc, + 0x7038: 0xe00015b9, 0x7039: 0xe00015ad, 0x703a: 0xe00015a7, 0x703b: 0xe00015a4, + 0x703c: 0x003a929a, 0x703d: 0x003a9299, 0x703e: 0x003a9297, 0x703f: 0x003a9298, + // Block 0x1c1, offset 0x7040 + 0x7040: 0xe000155f, 0x7041: 0xe0001565, 0x7042: 0xe000157a, 0x7043: 0xe00015b0, + 0x7044: 0xe00015b6, 0x7045: 0xf0001a1a, 0x7046: 0xf0001a1a, 0x7047: 0xf0001a1a, + 0x7048: 0xf0001a1a, 0x7049: 0xe00024ab, 0x704a: 0xf0001a1a, 0x704b: 0xf0001a1a, + 0x704c: 0xf0001a1a, 0x704d: 0xf0001a1a, 0x704e: 0xf0001a1a, 0x704f: 0xe00024b1, + 0x7050: 0xf0001a1a, 0x7051: 0xf0001a1a, 0x7052: 0xf0001a1a, 0x7053: 0xe00024b7, + 0x7054: 0xf0001a1a, 0x7055: 0xf0001a1a, 0x7056: 0xf0001a1a, 0x7057: 0xf0001a1a, + 0x7058: 0xf0001a1a, 0x7059: 0xf0001a1a, 0x705a: 0xf0001a1a, 0x705b: 0xf0001a1a, + 0x705c: 0xf0001a1a, 0x705d: 0xf0001a1a, 0x705e: 0xf0001a1a, 0x705f: 0xf0001a1a, + 0x7060: 0xf0001a1a, 0x7061: 0xf0001a1a, 0x7062: 0xf0001a1a, 0x7063: 0xf0001a1a, + 0x7064: 0xf0001a1a, 0x7065: 0xf0001a1a, 0x7066: 0xf0001a1a, 0x7067: 0xf0001a1a, + 0x7068: 0xf0001a1a, 0x7069: 0xf0001a1a, 0x706a: 0xf0001a1a, 0x706b: 0xf0001a1a, + 0x706c: 0xf0001a1a, 0x706d: 0xf0001a1a, 0x706e: 0xf0001a1a, 0x706f: 0xf0001a1a, + 0x7070: 0xf0001a1a, 0x7071: 0xe00024f9, 0x7072: 0xf0001a1a, 0x7073: 0xf0001a1a, + 0x7074: 0xf0001a1a, 0x7075: 0xe00024ff, 0x7076: 0xf0001a1a, 0x7077: 0xf0001a1a, + 0x7078: 0xf0001a1a, 0x7079: 0xf0001a1a, 0x707a: 0xf0001a1a, 0x707b: 0xf0001a1a, + 0x707c: 0xf0001a1a, 0x707d: 0xe0002505, 0x707e: 0xf0001a1a, 0x707f: 0xf0001a1a, + // Block 0x1c2, offset 0x7080 + 0x7080: 0xf0001a1a, 0x7081: 0xf0001a1a, 0x7082: 0xf0001a1a, 0x7083: 0xe000250b, + 0x7084: 0xf0001a1a, 0x7085: 0xf0001a1a, 0x7086: 0xf0001a1a, 0x7087: 0xf0001a1a, + 0x7088: 0xf0001a1a, 0x7089: 0xe000250e, 0x708a: 0xf0001a1a, 0x708b: 0xf0001a1a, + 0x708c: 0xf0001a1a, 0x708d: 0xf0001a1a, 0x708e: 0xf0001a1a, 0x708f: 0xe0002514, + 0x7090: 0xf0001a1a, 0x7091: 0xf0001a1a, 0x7092: 0xf0001a1a, 0x7093: 0xe0002517, + 0x7094: 0xf0001a1a, 0x7095: 0xf0001a1a, 0x7096: 0xf0001a1a, 0x7097: 0xf0001a1a, + 0x7098: 0xf0001a1a, 0x7099: 0xe0002523, 0x709a: 0xf0001a1a, 0x709b: 0xf0001a1a, + 0x709c: 0xf0001a1a, 0x709d: 0xe000251d, 0x709e: 0xe0000003, 0x709f: 0xe0000006, + 0x70a0: 0xe0000009, 0x70a1: 0xe000000c, 0x70a2: 0xe000000f, 0x70a3: 0xe0000012, + 0x70a4: 0xe000156b, 0x70a5: 0xe000156e, 0x70a6: 0xe0001577, 0x70a7: 0xe000157d, + 0x70a8: 0xe00015aa, 0x70a9: 0xe00015b3, 0x70aa: 0xf0001919, 0x70ab: 0xf0001919, + 0x70ac: 0xf0001919, 0x70ad: 0xf0001919, 0x70ae: 0xe00024a8, 0x70af: 0xf0001919, + 0x70b0: 0xf0001919, 0x70b1: 0xf0001919, 0x70b2: 0xf0001919, 0x70b3: 0xf0001919, + 0x70b4: 0xe00024ae, 0x70b5: 0xf0001919, 0x70b6: 0xf0001919, 0x70b7: 0xf0001919, + 0x70b8: 0xf0001919, 0x70b9: 0xf0001919, 0x70ba: 0xe00024b4, 0x70bb: 0xf0001919, + 0x70bc: 0xe00024f6, 0x70bd: 0xf0001919, 0x70be: 0xe00024fc, 0x70bf: 0xf0001919, + // Block 0x1c3, offset 0x70c0 + 0x70c0: 0xf0001919, 0x70c1: 0xf0001919, 0x70c2: 0xf0001919, 0x70c3: 0xe0002502, + 0x70c4: 0xf0001919, 0x70c5: 0xf0001919, 0x70c6: 0xe0002508, 0x70c7: 0xf0001919, + 0x70c8: 0xf0001919, 0x70c9: 0xf0001919, 0x70ca: 0xf0001919, 0x70cb: 0xf0001919, + 0x70cc: 0xf0001919, 0x70cd: 0xf0001919, 0x70ce: 0xe0002511, 0x70cf: 0xf0001919, + 0x70d0: 0xe000251a, 0x70d1: 0xf0001919, 0x70d2: 0xf0001919, 0x70d3: 0xf0001919, + 0x70d4: 0xf0001919, 0x70d5: 0xe0002520, 0x70d6: 0xf0001919, 0x70d7: 0xe000155c, + 0x70d8: 0xe0001562, 0x70d9: 0xe0001568, 0x70da: 0xe0001571, 0x70db: 0xe0001580, + 0x70dc: 0xf0001717, 0x70dd: 0xf0001717, 0x70de: 0xf0001717, 0x70df: 0xf0001717, + 0x70e0: 0xf0001717, 0x70e1: 0xf0001717, 0x70e2: 0xf0001717, 0x70e3: 0xf0001717, + 0x70e4: 0xf0001717, 0x70e5: 0xf0001717, 0x70e6: 0xf0001717, 0x70e7: 0xf0001717, + 0x70e8: 0xf0001717, 0x70e9: 0xf0001717, 0x70ea: 0xf0001717, 0x70eb: 0xf0001717, + 0x70ec: 0xf0001717, 0x70ed: 0xf0001717, 0x70ee: 0xf0001717, 0x70ef: 0xf0001717, + 0x70f0: 0xf0001717, 0x70f1: 0xf0001717, 0x70f2: 0xf0001717, 0x70f3: 0xf0001717, + 0x70f4: 0xf0001717, 0x70f5: 0xf0001717, 0x70f6: 0xf0001717, 0x70f7: 0xf0001717, + 0x70f8: 0xf0001717, 0x70f9: 0xf0001717, 0x70fa: 0xf0001717, 0x70fb: 0xf0001717, + 0x70fc: 0xf0001717, 0x70fd: 0xf0001717, 0x70fe: 0xf0001717, 0x70ff: 0xf0001717, + // Block 0x1c4, offset 0x7100 + 0x7100: 0xf0001717, 0x7101: 0xf0001717, 0x7102: 0xf0001717, 0x7103: 0xf0001717, + 0x7104: 0xf0001717, 0x7105: 0xf0001717, 0x7106: 0xf0001717, 0x7107: 0xf0001717, + 0x7108: 0xf0001717, 0x7109: 0xf0001717, 0x710a: 0xf0001717, 0x710b: 0xf0001717, + 0x710c: 0xf0001717, 0x710d: 0xf0001717, 0x710e: 0xf0001717, 0x710f: 0xf0001717, + 0x7110: 0xf0001717, 0x7111: 0xf0001717, 0x7112: 0xf0001717, 0x7113: 0xf0001717, + 0x7114: 0xf0001717, 0x7115: 0xf0001717, 0x7116: 0xf0001717, 0x7117: 0xf0001717, + 0x7118: 0xf0001717, 0x7119: 0xf0001717, 0x711a: 0xf0001717, 0x711b: 0xf0001717, + 0x711c: 0xf0001717, 0x711d: 0xf0001717, 0x711e: 0xf0001717, 0x711f: 0xe0001574, + 0x7120: 0xe0001583, 0x7121: 0xf0001818, 0x7122: 0xf0001818, 0x7123: 0xf0001818, + 0x7124: 0xf0001818, 0x7125: 0xf0001818, 0x7126: 0xf0001818, 0x7127: 0xf0001818, + 0x7128: 0xf0001818, 0x7129: 0xf0001818, 0x712a: 0xf0001818, 0x712b: 0xf0001818, + 0x712c: 0xf0001818, 0x712d: 0xf0001818, 0x712e: 0xf0001818, 0x712f: 0xf0001818, + 0x7130: 0xf0001818, 0x7131: 0xf0001818, 0x7132: 0xe000249f, 0x7133: 0xe00024a2, + 0x7134: 0xe00024a5, 0x7135: 0xe00024e7, 0x7136: 0xf0001a1a, 0x7137: 0xe00024ed, + 0x7138: 0xf0001a1a, 0x7139: 0xe00024f3, 0x713a: 0xf0001a1a, 0x713b: 0xe00024cf, + 0x713c: 0xf0001a1a, 0x713d: 0xe00024d5, 0x713e: 0xf0001a1a, 0x713f: 0xe00024c3, + // Block 0x1c5, offset 0x7140 + 0x7140: 0xf0001a1a, 0x7141: 0xe00024bd, 0x7142: 0xf0001a1a, 0x7143: 0xe00024c9, + 0x7144: 0xf0001a1a, 0x7145: 0xe00024db, 0x7146: 0xf0001a1a, 0x7147: 0xe00024e1, + 0x7148: 0xf0001a1a, 0x7149: 0xf0001a1a, 0x714a: 0xf0001a1a, 0x714b: 0xf0001a1a, + 0x714c: 0xf0001a1a, 0x714d: 0xf0001a1a, 0x714e: 0xf0001a1a, 0x714f: 0xf0001a1a, + 0x7150: 0xf0001a1a, 0x7151: 0xe00024e4, 0x7152: 0xf0001919, 0x7153: 0xe00024ea, + 0x7154: 0xf0001919, 0x7155: 0xe00024f0, 0x7156: 0xf0001919, 0x7157: 0xe00024cc, + 0x7158: 0xf0001919, 0x7159: 0xe00024d2, 0x715a: 0xf0001919, 0x715b: 0xe00024c0, + 0x715c: 0xf0001919, 0x715d: 0xe00024ba, 0x715e: 0xf0001919, 0x715f: 0xe00024c6, + 0x7160: 0xf0001919, 0x7161: 0xe00024d8, 0x7162: 0xf0001919, 0x7163: 0xe00024de, + 0x7164: 0xf0001919, 0x7165: 0xf0001919, 0x7166: 0xf0001919, 0x7167: 0xf0001919, + 0x7168: 0xf0001919, 0x7169: 0xf0001919, 0x716a: 0xf0001919, 0x716b: 0xf0001919, + 0x716c: 0xf0001919, 0x716d: 0xf0001717, 0x716e: 0xf0001717, 0x716f: 0xf0001717, + 0x7170: 0xf0001717, 0x7171: 0xf0001717, 0x7172: 0xf0001717, 0x7173: 0xf0001717, + 0x7174: 0xf0001818, 0x7175: 0xf0001818, 0x7176: 0xf0001818, 0x7177: 0xf0001818, + 0x7178: 0xf0001818, 0x7179: 0xf0001818, 0x717a: 0xf0001818, 0x717b: 0xf0001818, + 0x717c: 0xf0001919, 0x717d: 0xf0001a1a, 0x717e: 0x4004c020, 0x717f: 0x4004c220, + // Block 0x1c6, offset 0x7180 + 0x7180: 0x00391c9a, 0x7181: 0x00393aa4, 0x7182: 0x00393aa3, 0x7183: 0x00393ac4, + 0x7184: 0x00393ac3, 0x7185: 0x003a76a4, 0x7186: 0x003a76a3, 0x7187: 0x00393ae4, + 0x7188: 0x00393ae3, 0x7189: 0x003a92a6, 0x718a: 0x003a92a5, 0x718b: 0x003a92a3, + 0x718c: 0x003a92a4, 0x718d: 0x00393884, 0x718e: 0x00393883, 0x718f: 0x00393c9a, + 0x7190: 0x00393c99, 0x7191: 0x00393c97, 0x7192: 0x00393c98, 0x7193: 0x003a6aa4, + 0x7194: 0x003a6aa3, 0x7195: 0x0039569a, 0x7196: 0x00395699, 0x7197: 0x00395697, + 0x7198: 0x00395698, 0x7199: 0x0039589a, 0x719a: 0x00395899, 0x719b: 0x00395897, + 0x719c: 0x00395898, 0x719d: 0x0039649a, 0x719e: 0x00396499, 0x719f: 0x00396497, + 0x71a0: 0x00396498, 0x71a1: 0x0039729a, 0x71a2: 0x00397299, 0x71a3: 0x00397297, + 0x71a4: 0x00397298, 0x71a5: 0x0039749a, 0x71a6: 0x00397499, 0x71a7: 0x00397497, + 0x71a8: 0x00397498, 0x71a9: 0x0039889a, 0x71aa: 0x00398899, 0x71ab: 0x00398a9a, + 0x71ac: 0x00398a99, 0x71ad: 0x0039a49a, 0x71ae: 0x0039a499, 0x71af: 0x0039a69a, + 0x71b0: 0x0039a699, 0x71b1: 0x0039c69a, 0x71b2: 0x0039c699, 0x71b3: 0x0039c697, + 0x71b4: 0x0039c698, 0x71b5: 0x0039c89a, 0x71b6: 0x0039c899, 0x71b7: 0x0039c897, + 0x71b8: 0x0039c898, 0x71b9: 0x0039dc9a, 0x71ba: 0x0039dc99, 0x71bb: 0x0039dc97, + 0x71bc: 0x0039dc98, 0x71bd: 0x0039de9a, 0x71be: 0x0039de99, 0x71bf: 0x0039de97, + // Block 0x1c7, offset 0x71c0 + 0x71c0: 0x0039de98, 0x71c1: 0x0039e69a, 0x71c2: 0x0039e699, 0x71c3: 0x0039e697, + 0x71c4: 0x0039e698, 0x71c5: 0x0039e89a, 0x71c6: 0x0039e899, 0x71c7: 0x0039e897, + 0x71c8: 0x0039e898, 0x71c9: 0x0039ee9a, 0x71ca: 0x0039ee99, 0x71cb: 0x0039ee97, + 0x71cc: 0x0039ee98, 0x71cd: 0x0039f09a, 0x71ce: 0x0039f099, 0x71cf: 0x0039f097, + 0x71d0: 0x0039f098, 0x71d1: 0x0039fc9a, 0x71d2: 0x0039fc99, 0x71d3: 0x0039fc97, + 0x71d4: 0x0039fc98, 0x71d5: 0x003a129a, 0x71d6: 0x003a1299, 0x71d7: 0x003a1297, + 0x71d8: 0x003a1298, 0x71d9: 0x003a1a9a, 0x71da: 0x003a1a99, 0x71db: 0x003a1a97, + 0x71dc: 0x003a1a98, 0x71dd: 0x003a409a, 0x71de: 0x003a4099, 0x71df: 0x003a4097, + 0x71e0: 0x003a4098, 0x71e1: 0x003a4e9a, 0x71e2: 0x003a4e99, 0x71e3: 0x003a4e97, + 0x71e4: 0x003a4e98, 0x71e5: 0x003a569a, 0x71e6: 0x003a5699, 0x71e7: 0x003a5697, + 0x71e8: 0x003a5698, 0x71e9: 0x003a6886, 0x71ea: 0x003a6885, 0x71eb: 0x003a6883, + 0x71ec: 0x003a6884, 0x71ed: 0x003a7485, 0x71ee: 0x003a7484, 0x71ef: 0x003a92c6, + 0x71f0: 0x003a92c5, 0x71f1: 0x003a9087, 0x71f2: 0x003a9086, 0x71f3: 0x003a9084, + 0x71f4: 0x003a9085, 0x71f5: 0xe0001732, 0x71f6: 0xe000172f, 0x71f7: 0xe0001738, + 0x71f8: 0xe0001735, 0x71f9: 0xe000173e, 0x71fa: 0xe000173b, 0x71fb: 0xf0001a1a, + 0x71fc: 0xf0001919, 0x71ff: 0xa0000000, + // Block 0x1c8, offset 0x7200 + 0x7200: 0xa0000000, 0x7201: 0xa0000000, 0x7202: 0xa0000000, 0x7203: 0xa0000000, + 0x7204: 0xa0000000, 0x7205: 0xa0000000, 0x7206: 0xa0000000, 0x7207: 0xa0000000, + 0x7208: 0xa0000000, 0x7209: 0x40020020, 0x720a: 0x40020220, 0x720b: 0x40020420, + 0x720c: 0x40020620, 0x720d: 0x40020820, 0x720e: 0xa0000000, 0x720f: 0xa0000000, + 0x7210: 0xa0000000, 0x7211: 0xa0000000, 0x7212: 0xa0000000, 0x7213: 0xa0000000, + 0x7214: 0xa0000000, 0x7215: 0xa0000000, 0x7216: 0xa0000000, 0x7217: 0xa0000000, + 0x7218: 0xa0000000, 0x7219: 0xa0000000, 0x721a: 0xa0000000, 0x721b: 0xa0000000, + 0x721c: 0xa0000000, 0x721d: 0xa0000000, 0x721e: 0xa0000000, 0x721f: 0xa0000000, + 0x7220: 0x40021220, 0x7221: 0x4002ba20, 0x7222: 0x4003e020, 0x7223: 0x4004ea20, + 0x7224: 0x4027de20, 0x7225: 0x4004ec20, 0x7226: 0x4004e620, 0x7227: 0x4003d220, + 0x7228: 0x4003f420, 0x7229: 0x4003f620, 0x722a: 0x4004d820, 0x722b: 0x40093820, + 0x722c: 0x40024020, 0x722d: 0x40021a20, 0x722e: 0x4002e420, 0x722f: 0x4004e220, + 0x7230: 0x4029cc20, 0x7231: 0x4029ce20, 0x7232: 0x4029d020, 0x7233: 0x4029d220, + 0x7234: 0x4029d420, 0x7235: 0x4029d620, 0x7236: 0x4029d820, 0x7237: 0x4029da20, + 0x7238: 0x4029dc20, 0x7239: 0x4029de20, 0x723a: 0x40026c20, 0x723b: 0x40026220, + 0x723c: 0x40094020, 0x723d: 0xc32f0851, 0x723e: 0x40094420, 0x723f: 0x4002c420, + // Block 0x1c9, offset 0x7240 + 0x7240: 0x4004d620, 0x7241: 0x002bde88, 0x7242: 0x002c0a88, 0x7243: 0xc33b0871, + 0x7244: 0x002c6288, 0x7245: 0x002c9888, 0x7246: 0x002d0888, 0x7247: 0xc33f00d1, + 0x7248: 0x002d6888, 0x7249: 0xc3410891, 0x724a: 0x002dcc88, 0x724b: 0x002dfe88, + 0x724c: 0xc0030002, 0x724d: 0x002e8288, 0x724e: 0x002e9e88, 0x724f: 0xc3450071, + 0x7250: 0x002f2c88, 0x7251: 0x002e0083, 0x7252: 0x002f7a88, 0x7253: 0xc3490871, + 0x7254: 0x00302c88, 0x7255: 0xc34d0071, 0x7256: 0x0030be88, 0x7257: 0x0030e288, + 0x7258: 0x002d6a83, 0x7259: 0x00310088, 0x725a: 0x00312a88, 0x725b: 0x4003f820, + 0x725c: 0x4004e420, 0x725d: 0x4003fa20, 0x725e: 0x40062420, 0x725f: 0x40021620, + 0x7260: 0x40061e20, 0x7261: 0x402bde20, 0x7262: 0x402c0a20, 0x7263: 0xc3390871, + 0x7264: 0x402c6220, 0x7265: 0x402c9820, 0x7266: 0x402d0820, 0x7267: 0xc33d00d1, + 0x7268: 0x402d6820, 0x7269: 0x402d9a20, 0x726a: 0x402dcc20, 0x726b: 0x402dfe20, + 0x726c: 0xc0000002, 0x726d: 0x402e8220, 0x726e: 0x402e9e20, 0x726f: 0xc3430071, + 0x7270: 0x402f2c20, 0x7271: 0x402e0020, 0x7272: 0x402f7a20, 0x7273: 0xc3470871, + 0x7274: 0x40302c20, 0x7275: 0xc34b0071, 0x7276: 0x4030be20, 0x7277: 0x4030e220, + 0x7278: 0x402d6a20, 0x7279: 0x40310020, 0x727a: 0x40312a20, 0x727b: 0x4003fc20, + 0x727c: 0x40094820, 0x727d: 0x4003fe20, 0x727e: 0x40094c20, 0x727f: 0xa0000000, + // Block 0x1ca, offset 0x7280 + 0x7280: 0xe00008f5, 0x7281: 0xe00008ef, 0x7282: 0xe0000921, 0x7283: 0xe0000969, + 0x7284: 0xe000095b, 0x7285: 0xe000094d, 0x7286: 0xe00009dd, 0x7287: 0x002c3c83, + 0x7288: 0xe0000ae8, 0x7289: 0xe0000ae2, 0x728a: 0xe0000af4, 0x728b: 0xe0000b20, + 0x728c: 0xe00025a2, 0x728d: 0xe000259f, 0x728e: 0xe00025a8, 0x728f: 0xe00025ae, + 0x7290: 0xe0000ab3, 0x7291: 0xe0000d63, 0x7292: 0xe0000d9a, 0x7293: 0xe0000d94, + 0x7294: 0xe0000da6, 0x7295: 0xe0000de6, 0x7296: 0x002ee483, 0x7297: 0x40093e20, + 0x7298: 0xe0000e12, 0x7299: 0xe0000fe1, 0x729a: 0xe0000fdb, 0x729b: 0xe0000fed, + 0x729c: 0x00306e83, 0x729d: 0xe0001102, 0x729e: 0x00318888, 0x729f: 0xe0000f7b, + 0x72a0: 0xe00008f2, 0x72a1: 0xe00008ec, 0x72a2: 0xe000091e, 0x72a3: 0xe0000966, + 0x72a4: 0xe0000958, 0x72a5: 0xe000094a, 0x72a6: 0xe00009d5, 0x72a7: 0x402c3c20, + 0x72a8: 0xe0000ae5, 0x72a9: 0xe0000adf, 0x72aa: 0xe0000af1, 0x72ab: 0xe0000b1d, + 0x72ac: 0xe0000c28, 0x72ad: 0xe0000c22, 0x72ae: 0xe0000c34, 0x72af: 0xe0000c40, + 0x72b0: 0xe0000aad, 0x72b1: 0xe0000d60, 0x72b2: 0xe0000d97, 0x72b3: 0xe0000d91, + 0x72b4: 0xe0000da3, 0x72b5: 0xe0000de3, 0x72b6: 0x402ee420, 0x72b7: 0x40093c20, + 0x72b8: 0xe0000e0f, 0x72b9: 0xe0000fde, 0x72ba: 0xe0000fd8, 0x72bb: 0xe0000fea, + 0x72bc: 0x40306e20, 0x72bd: 0xe00010ff, 0x72be: 0x40318820, 0x72bf: 0xe0001114, + // Block 0x1cb, offset 0x72c0 + 0x72c0: 0xe0000983, 0x72c1: 0xe0000980, 0x72c2: 0xe00008fb, 0x72c3: 0xe00008f8, + 0x72c4: 0xe000097d, 0x72c5: 0xe000097a, 0x72c6: 0xe0000a38, 0x72c7: 0xe0000a35, + 0x72c8: 0xe0000a3e, 0x72c9: 0xe0000a3b, 0x72ca: 0xe0000a4a, 0x72cb: 0xe0000a47, + 0x72cc: 0xe0000a44, 0x72cd: 0xe0000a41, 0x72ce: 0xe0000a86, 0x72cf: 0xe0000a83, + 0x72d0: 0xe0000aaa, 0x72d1: 0xe0000aa7, 0x72d2: 0xe0000b46, 0x72d3: 0xe0000b43, + 0x72d4: 0xe0000aee, 0x72d5: 0xe0000aeb, 0x72d6: 0xe0000b2c, 0x72d7: 0xe0000b29, + 0x72d8: 0xe0000b40, 0x72d9: 0xe0000b3d, 0x72da: 0xe0000b1a, 0x72db: 0xe0000b17, + 0x72dc: 0xe0000bb8, 0x72dd: 0xe0000bb5, 0x72de: 0x002d2483, 0x72df: 0x402d2420, + 0x72e0: 0xe0000bc4, 0x72e1: 0xe0000bc1, 0x72e2: 0xe0000bca, 0x72e3: 0xe0000bc7, + 0x72e4: 0xe0000bee, 0x72e5: 0xe0000beb, 0x72e6: 0xe0000c1b, 0x72e7: 0xe0000c18, + 0x72e8: 0xe00025b5, 0x72e9: 0xe0000c4e, 0x72ea: 0xe00025bb, 0x72eb: 0xe0000c5d, + 0x72ec: 0xe00025a5, 0x72ed: 0xe0000c2e, 0x72ee: 0xe00025b8, 0x72ef: 0xe0000c57, + 0x72f0: 0x002d9a83, 0x72f1: 0x402d9820, 0x72f2: 0xe00025d4, 0x72f3: 0xf0000404, + 0x72f4: 0xe0000c8a, 0x72f5: 0xe0000c87, 0x72f6: 0xe0000c9f, 0x72f7: 0xe0000c9c, + 0x72f8: 0x402f7220, 0x72f9: 0xe0000ccc, 0x72fa: 0xe0000cc9, 0x72fb: 0xe0000cd8, + 0x72fc: 0xe0000cd5, 0x72fd: 0xe0000cd2, 0x72fe: 0xe0000ccf, 0x72ff: 0xe0000d04, + // Block 0x1cc, offset 0x7300 + 0x7300: 0xe0000cfe, 0x7301: 0xe0000cf8, 0x7302: 0xe0000cf5, 0x7303: 0xe0000d51, + 0x7304: 0xe0000d4e, 0x7305: 0xe0000d6f, 0x7306: 0xe0000d6c, 0x7307: 0xe0000d5d, + 0x7308: 0xe0000d5a, 0x7309: 0xf0000404, 0x730a: 0x002eda88, 0x730b: 0x402eda20, + 0x730c: 0xe0000e2e, 0x730d: 0xe0000e2b, 0x730e: 0xe0000da0, 0x730f: 0xe0000d9d, + 0x7310: 0xe0000de0, 0x7311: 0xe0000ddd, 0x7312: 0xe0000e93, 0x7313: 0xe0000e8f, + 0x7314: 0xe0000eca, 0x7315: 0xe0000ec7, 0x7316: 0xe0000edc, 0x7317: 0xe0000ed9, + 0x7318: 0xe0000ed0, 0x7319: 0xe0000ecd, 0x731a: 0xe0000f1f, 0x731b: 0xe0000f1c, + 0x731c: 0xe0000f2d, 0x731d: 0xe0000f2a, 0x731e: 0x002fe883, 0x731f: 0x402fe820, + 0x7320: 0xe0000f33, 0x7321: 0xe0000f30, 0x7322: 0xe0000f99, 0x7323: 0xe0000f96, + 0x7324: 0xe0000f8a, 0x7325: 0xe0000f87, 0x7326: 0x00303688, 0x7327: 0x40303620, + 0x7328: 0xe000102b, 0x7329: 0xe0001028, 0x732a: 0xe000103f, 0x732b: 0xe000103c, + 0x732c: 0xe0000fe7, 0x732d: 0xe0000fe4, 0x732e: 0xe0000ff9, 0x732f: 0xe0000ff6, + 0x7330: 0xe0001025, 0x7331: 0xe0001022, 0x7332: 0xe0001039, 0x7333: 0xe0001036, + 0x7334: 0xe00010d8, 0x7335: 0xe00010d5, 0x7336: 0xe000110e, 0x7337: 0xe000110b, + 0x7338: 0xe0001117, 0x7339: 0xe000113b, 0x733a: 0xe0001138, 0x733b: 0xe000114d, + 0x733c: 0xe000114a, 0x733d: 0xe0001147, 0x733e: 0xe0001144, 0x733f: 0xe0000f64, + // Block 0x1cd, offset 0x7340 + 0x7340: 0x402c1a20, 0x7341: 0x002c2a88, 0x7342: 0x002c3288, 0x7343: 0x402c3220, + 0x7344: 0x0031c488, 0x7345: 0x4031c420, 0x7346: 0x002efa88, 0x7347: 0x002c4e88, + 0x7348: 0x402c4e20, 0x7349: 0x002c7288, 0x734a: 0x002c7a88, 0x734b: 0x002c8488, + 0x734c: 0x402c8420, 0x734d: 0xe000115c, 0x734e: 0x002cae88, 0x734f: 0x002c9a83, + 0x7350: 0x002cc288, 0x7351: 0x002d1688, 0x7352: 0x402d1620, 0x7353: 0x002d4488, + 0x7354: 0x002d5888, 0x7355: 0x402d7820, 0x7356: 0x002dc288, 0x7357: 0x002db688, + 0x7358: 0x002e0a88, 0x7359: 0x402e0a20, 0x735a: 0x402e3820, 0x735b: 0x402e7220, + 0x735c: 0x0030a088, 0x735d: 0x002eb488, 0x735e: 0x402ebc20, 0x735f: 0x002f1088, + 0x7360: 0xe0000e56, 0x7361: 0xe0000e53, 0x7362: 0x002d6088, 0x7363: 0x402d6020, + 0x7364: 0x002f3e88, 0x7365: 0x402f3e20, 0x7366: 0x002f8288, 0x7367: 0x0031b488, + 0x7368: 0x4031b420, 0x7369: 0x00300888, 0x736a: 0x40301220, 0x736b: 0x40304220, + 0x736c: 0x00304a88, 0x736d: 0x40304a20, 0x736e: 0x00305288, 0x736f: 0xe000105f, + 0x7370: 0xe000105c, 0x7371: 0x0030b488, 0x7372: 0x0030cc88, 0x7373: 0x00311888, + 0x7374: 0x40311820, 0x7375: 0x00313488, 0x7376: 0x40313420, 0x7377: 0x00316488, + 0x7378: 0x00316e88, 0x7379: 0x40316e20, 0x737a: 0x40317820, 0x737b: 0x4031a620, + 0x737c: 0x0031bc88, 0x737d: 0x4031bc20, 0x737e: 0xe0000fc9, 0x737f: 0x40319420, + // Block 0x1ce, offset 0x7380 + 0x7380: 0x40321220, 0x7381: 0x40321a20, 0x7382: 0x40322220, 0x7383: 0x40322a20, + 0x7384: 0xe0000ad5, 0x7385: 0xe0000ad1, 0x7386: 0xe0000acd, 0x7387: 0xf0000a0a, + 0x7388: 0xf000040a, 0x7389: 0xf0000404, 0x738a: 0xf0000a0a, 0x738b: 0xf000040a, + 0x738c: 0xf0000404, 0x738d: 0xe0000947, 0x738e: 0xe0000944, 0x738f: 0xe00025ab, + 0x7390: 0xe0000c3a, 0x7391: 0xe0000dcc, 0x7392: 0xe0000dc9, 0x7393: 0xe0000ff3, + 0x7394: 0xe0000ff0, 0x7395: 0xe0002607, 0x7396: 0xe0002604, 0x7397: 0xe00025f5, + 0x7398: 0xe00025f2, 0x7399: 0xe0002601, 0x739a: 0xe00025fe, 0x739b: 0xe00025fb, + 0x739c: 0xe00025f8, 0x739d: 0x402cae20, 0x739e: 0xe0000962, 0x739f: 0xe000095e, + 0x73a0: 0xe0000976, 0x73a1: 0xe0000972, 0x73a2: 0xe00009f4, 0x73a3: 0xe00009ef, + 0x73a4: 0x002d3a88, 0x73a5: 0x402d3a20, 0x73a6: 0xe0000bbe, 0x73a7: 0xe0000bbb, + 0x73a8: 0xe0000c99, 0x73a9: 0xe0000c96, 0x73aa: 0xe0000e20, 0x73ab: 0xe0000e1d, + 0x73ac: 0xe0000e27, 0x73ad: 0xe0000e23, 0x73ae: 0xe0001162, 0x73af: 0xe000115f, + 0x73b0: 0xe0000c8d, 0x73b1: 0xf0000a0a, 0x73b2: 0xf000040a, 0x73b3: 0xf0000404, + 0x73b4: 0xe0000bac, 0x73b5: 0xe0000ba9, 0x73b6: 0x002d7888, 0x73b7: 0x00319488, + 0x73b8: 0xe0000d57, 0x73b9: 0xe0000d54, 0x73ba: 0xe0000954, 0x73bb: 0xe0000950, + 0x73bc: 0xe00009ea, 0x73bd: 0xe00009e5, 0x73be: 0xe0000e19, 0x73bf: 0xe0000e15, + // Block 0x1cf, offset 0x73c0 + 0x73c0: 0xe000098f, 0x73c1: 0xe000098c, 0x73c2: 0xe0000995, 0x73c3: 0xe0000992, + 0x73c4: 0xe0000b62, 0x73c5: 0xe0000b5f, 0x73c6: 0xe0000b68, 0x73c7: 0xe0000b65, + 0x73c8: 0xe00025c1, 0x73c9: 0xe0000c69, 0x73ca: 0xe00025c4, 0x73cb: 0xe0000c6f, + 0x73cc: 0xe0000e4a, 0x73cd: 0xe0000e47, 0x73ce: 0xe0000e50, 0x73cf: 0xe0000e4d, + 0x73d0: 0xe0000ee8, 0x73d1: 0xe0000ee5, 0x73d2: 0xe0000eee, 0x73d3: 0xe0000eeb, + 0x73d4: 0xe0001053, 0x73d5: 0xe0001050, 0x73d6: 0xe0001059, 0x73d7: 0xe0001056, + 0x73d8: 0xe0000f61, 0x73d9: 0xe0000f5e, 0x73da: 0xe0000fa5, 0x73db: 0xe0000fa2, + 0x73dc: 0x00312288, 0x73dd: 0x40312220, 0x73de: 0xe0000bf4, 0x73df: 0xe0000bf1, + 0x73e0: 0x002ebc88, 0x73e1: 0x402c8c20, 0x73e2: 0x002f2288, 0x73e3: 0x402f2220, + 0x73e4: 0x00314088, 0x73e5: 0x40314020, 0x73e6: 0xe000096f, 0x73e7: 0xe000096c, + 0x73e8: 0xe0000b32, 0x73e9: 0xe0000b2f, 0x73ea: 0xe00025ef, 0x73eb: 0xe00025ec, + 0x73ec: 0xe0000dfd, 0x73ed: 0xe0000df9, 0x73ee: 0xe0000e04, 0x73ef: 0xe0000e01, + 0x73f0: 0xe0000e0b, 0x73f1: 0xe0000e07, 0x73f2: 0xe0001129, 0x73f3: 0xe0001126, + 0x73f4: 0x402e5e20, 0x73f5: 0x402ed020, 0x73f6: 0x40305a20, 0x73f7: 0x402dd420, + 0x73f8: 0xe0000abf, 0x73f9: 0xe0000ec4, 0x73fa: 0x002be888, 0x73fb: 0x002c4488, + 0x73fc: 0x402c4420, 0x73fd: 0x002e3888, 0x73fe: 0x00303e88, 0x73ff: 0x402ffc20, + // Block 0x1d0, offset 0x7400 + 0x7400: 0x40315820, 0x7401: 0x0031d488, 0x7402: 0x4031d420, 0x7403: 0x002c1a88, + 0x7404: 0x00307c88, 0x7405: 0x0030da88, 0x7406: 0x002ca288, 0x7407: 0x402ca220, + 0x7408: 0x002dde88, 0x7409: 0x402dde20, 0x740a: 0x002f6a88, 0x740b: 0x402f6a20, + 0x740c: 0x002f8e88, 0x740d: 0x402f8e20, 0x740e: 0x00311088, 0x740f: 0x40311020, + 0x7410: 0x402bf020, 0x7411: 0x402bf820, 0x7412: 0x402c0220, 0x7413: 0x402c2a20, + 0x7414: 0x402efa20, 0x7415: 0x402c5620, 0x7416: 0x402c7220, 0x7417: 0x402c7a20, + 0x7418: 0x402ccc20, 0x7419: 0x402c9a20, 0x741a: 0x402cd420, 0x741b: 0x402cc220, + 0x741c: 0x402cdc20, 0x741d: 0x402ce820, 0x741e: 0x402cf020, 0x741f: 0x402dee20, + 0x7420: 0x402d4420, 0x7421: 0x402d2a20, 0x7422: 0x402d3220, 0x7423: 0x402d5820, + 0x7424: 0x402d0020, 0x7425: 0x40308820, 0x7426: 0x402d8020, 0x7427: 0x402d8e20, + 0x7428: 0x402db620, 0x7429: 0x402dc220, 0x742a: 0x402daa20, 0x742b: 0x402e4220, + 0x742c: 0x402e4a20, 0x742d: 0x402e5420, 0x742e: 0x402e6820, 0x742f: 0x4030a020, + 0x7430: 0x4030ac20, 0x7431: 0x402e9020, 0x7432: 0x402eb420, 0x7433: 0x402ec820, + 0x7434: 0x402ea620, 0x7435: 0x402f1020, 0x7436: 0x402eee20, 0x7437: 0x402f1a20, + 0x7438: 0x402f4c20, 0x7439: 0x402f9820, 0x743a: 0x402fa220, 0x743b: 0x402fac20, + 0x743c: 0x402fb620, 0x743d: 0x402fbe20, 0x743e: 0x402fc620, 0x743f: 0x402fd020, + // Block 0x1d1, offset 0x7440 + 0x7440: 0xe00009b1, 0x7441: 0xe00009ae, 0x7442: 0xe0000a22, 0x7443: 0xe0000a1f, + 0x7444: 0xe0000a28, 0x7445: 0xe0000a25, 0x7446: 0xe0000a2e, 0x7447: 0xe0000a2b, + 0x7448: 0xe0002590, 0x7449: 0xe000258d, 0x744a: 0xe0000a8c, 0x744b: 0xe0000a89, + 0x744c: 0xe0000a98, 0x744d: 0xe0000a95, 0x744e: 0xe0000aa4, 0x744f: 0xe0000aa1, + 0x7450: 0xe0000a92, 0x7451: 0xe0000a8f, 0x7452: 0xe0000a9e, 0x7453: 0xe0000a9b, + 0x7454: 0xe0000b55, 0x7455: 0xe0000b51, 0x7456: 0xe0000b4d, 0x7457: 0xe0000b49, + 0x7458: 0xe0000b7c, 0x7459: 0xe0000b79, 0x745a: 0xe0000b82, 0x745b: 0xe0000b7f, + 0x745c: 0xe0000b39, 0x745d: 0xe0000b35, 0x745e: 0xe0000b8c, 0x745f: 0xe0000b89, + 0x7460: 0xe0000bd0, 0x7461: 0xe0000bcd, 0x7462: 0xe0000c00, 0x7463: 0xe0000bfd, + 0x7464: 0xe0000c0c, 0x7465: 0xe0000c09, 0x7466: 0xe0000bfa, 0x7467: 0xe0000bf7, + 0x7468: 0xe0000c06, 0x7469: 0xe0000c03, 0x746a: 0xe0000c12, 0x746b: 0xe0000c0f, + 0x746c: 0xe00025ca, 0x746d: 0xe0000c7b, 0x746e: 0xe00025b1, 0x746f: 0xe0000c46, + 0x7470: 0xe0000c93, 0x7471: 0xe0000c90, 0x7472: 0xe0000cab, 0x7473: 0xe0000ca8, + 0x7474: 0xe0000cb1, 0x7475: 0xe0000cae, 0x7476: 0xe0000cde, 0x7477: 0xe0000cdb, + 0x7478: 0xe0000ce5, 0x7479: 0xe0000ce1, 0x747a: 0xe0000cf2, 0x747b: 0xe0000cef, + 0x747c: 0xe0000cec, 0x747d: 0xe0000ce9, 0x747e: 0xe0000d1e, 0x747f: 0xe0000d1b, + // Block 0x1d2, offset 0x7480 + 0x7480: 0xe0000d24, 0x7481: 0xe0000d21, 0x7482: 0xe0000d2a, 0x7483: 0xe0000d27, + 0x7484: 0xe0000d69, 0x7485: 0xe0000d66, 0x7486: 0xe0000d7b, 0x7487: 0xe0000d78, + 0x7488: 0xe0000d87, 0x7489: 0xe0000d84, 0x748a: 0xe0000d81, 0x748b: 0xe0000d7e, + 0x748c: 0xe0000ded, 0x748d: 0xe0000de9, 0x748e: 0xe00025e9, 0x748f: 0xe00025e6, + 0x7490: 0xe0000e3d, 0x7491: 0xe0000e39, 0x7492: 0xe0000e35, 0x7493: 0xe0000e31, + 0x7494: 0xe0000ea7, 0x7495: 0xe0000ea4, 0x7496: 0xe0000ead, 0x7497: 0xe0000eaa, + 0x7498: 0xe0000ed6, 0x7499: 0xe0000ed3, 0x749a: 0xe0000ef4, 0x749b: 0xe0000ef1, + 0x749c: 0xe0000efb, 0x749d: 0xe0000ef7, 0x749e: 0xe0000f02, 0x749f: 0xe0000eff, + 0x74a0: 0xe0000f41, 0x74a1: 0xe0000f3e, 0x74a2: 0xe0000f53, 0x74a3: 0xe0000f50, + 0x74a4: 0xe0000f26, 0x74a5: 0xe0000f22, 0x74a6: 0xe0000f3a, 0x74a7: 0xe0000f36, + 0x74a8: 0xe0000f5a, 0x74a9: 0xe0000f56, 0x74aa: 0xe0000f93, 0x74ab: 0xe0000f90, + 0x74ac: 0xe0000f9f, 0x74ad: 0xe0000f9c, 0x74ae: 0xe0000fb1, 0x74af: 0xe0000fae, + 0x74b0: 0xe0000fab, 0x74b1: 0xe0000fa8, 0x74b2: 0xe0001093, 0x74b3: 0xe0001090, + 0x74b4: 0xe000109f, 0x74b5: 0xe000109c, 0x74b6: 0xe0001099, 0x74b7: 0xe0001096, + 0x74b8: 0xe0001032, 0x74b9: 0xe000102e, 0x74ba: 0xe0002607, 0x74bb: 0xe0002604, + 0x74bc: 0xe00010a9, 0x74bd: 0xe00010a6, 0x74be: 0xe00010af, 0x74bf: 0xe00010ac, + // Block 0x1d3, offset 0x74c0 + 0x74c0: 0xe00010d2, 0x74c1: 0xe00010cf, 0x74c2: 0xe00010cc, 0x74c3: 0xe00010c9, + 0x74c4: 0xe00010e1, 0x74c5: 0xe00010de, 0x74c6: 0xe00010e7, 0x74c7: 0xe00010e4, + 0x74c8: 0xe00010ed, 0x74c9: 0xe00010ea, 0x74ca: 0xe000259c, 0x74cb: 0xe0002599, + 0x74cc: 0xe0002596, 0x74cd: 0xe0002593, 0x74ce: 0xe0001123, 0x74cf: 0xe0001120, + 0x74d0: 0xe0001141, 0x74d1: 0xe000113e, 0x74d2: 0xe0001153, 0x74d3: 0xe0001150, + 0x74d4: 0xe0001159, 0x74d5: 0xe0001156, 0x74d6: 0xe0000c15, 0x74d7: 0xe0000f8d, + 0x74d8: 0xe00010db, 0x74d9: 0xe0001111, 0x74da: 0xf0000404, 0x74db: 0xe0000f70, + 0x74dc: 0x40300420, 0x74dd: 0x40300620, 0x74de: 0xe0000f7f, 0x74df: 0x402c9620, + 0x74e0: 0xe000099b, 0x74e1: 0xe0000998, 0x74e2: 0xe0000989, 0x74e3: 0xe0000986, + 0x74e4: 0xe0000928, 0x74e5: 0xe0000924, 0x74e6: 0xe0000930, 0x74e7: 0xe000092c, + 0x74e8: 0xe0000940, 0x74e9: 0xe000093c, 0x74ea: 0xe0000938, 0x74eb: 0xe0000934, + 0x74ec: 0xe00009aa, 0x74ed: 0xe00009a6, 0x74ee: 0xe0000902, 0x74ef: 0xe00008fe, + 0x74f0: 0xe000090a, 0x74f1: 0xe0000906, 0x74f2: 0xe000091a, 0x74f3: 0xe0000916, + 0x74f4: 0xe0000912, 0x74f5: 0xe000090e, 0x74f6: 0xe00009a2, 0x74f7: 0xe000099e, + 0x74f8: 0xe0000b6e, 0x74f9: 0xe0000b6b, 0x74fa: 0xe0000b5c, 0x74fb: 0xe0000b59, + 0x74fc: 0xe0000b26, 0x74fd: 0xe0000b23, 0x74fe: 0xe0000afb, 0x74ff: 0xe0000af7, + // Block 0x1d4, offset 0x7500 + 0x7500: 0xe0000b03, 0x7501: 0xe0000aff, 0x7502: 0xe0000b13, 0x7503: 0xe0000b0f, + 0x7504: 0xe0000b0b, 0x7505: 0xe0000b07, 0x7506: 0xe0000b75, 0x7507: 0xe0000b71, + 0x7508: 0xe00025be, 0x7509: 0xe0000c63, 0x750a: 0xe00025c7, 0x750b: 0xe0000c75, + 0x750c: 0xe0000e84, 0x750d: 0xe0000e81, 0x750e: 0xe0000e44, 0x750f: 0xe0000e41, + 0x7510: 0xe0000dad, 0x7511: 0xe0000da9, 0x7512: 0xe0000db5, 0x7513: 0xe0000db1, + 0x7514: 0xe0000dc5, 0x7515: 0xe0000dc1, 0x7516: 0xe0000dbd, 0x7517: 0xe0000db9, + 0x7518: 0xe0000e8b, 0x7519: 0xe0000e87, 0x751a: 0xe0000e5d, 0x751b: 0xe0000e59, + 0x751c: 0xe0000e65, 0x751d: 0xe0000e61, 0x751e: 0xe0000e75, 0x751f: 0xe0000e71, + 0x7520: 0xe0000e6d, 0x7521: 0xe0000e69, 0x7522: 0xe0000e7d, 0x7523: 0xe0000e79, + 0x7524: 0xe000108d, 0x7525: 0xe000108a, 0x7526: 0xe000104d, 0x7527: 0xe000104a, + 0x7528: 0xe0001066, 0x7529: 0xe0001062, 0x752a: 0xe000106e, 0x752b: 0xe000106a, + 0x752c: 0xe000107e, 0x752d: 0xe000107a, 0x752e: 0xe0001076, 0x752f: 0xe0001072, + 0x7530: 0xe0001086, 0x7531: 0xe0001082, 0x7532: 0xe0001108, 0x7533: 0xe0001105, + 0x7534: 0xe0001135, 0x7535: 0xe0001132, 0x7536: 0xe000112f, 0x7537: 0xe000112c, + 0x7538: 0xe000111d, 0x7539: 0xe000111a, 0x753a: 0xe0000d0a, 0x753b: 0xe0000d07, + 0x753c: 0x0030d888, 0x753d: 0x4030d820, 0x753e: 0x00312088, 0x753f: 0x40312020, + // Block 0x1d5, offset 0x7540 + 0x7540: 0x00093685, 0x7541: 0x40083620, 0x7542: 0x40083820, 0x7543: 0x40083a20, + 0x7544: 0x40083c20, 0x7545: 0x002c628b, 0x7546: 0x002c6285, 0x7547: 0x002c9885, + 0x7548: 0x002d9a85, 0x7549: 0x002dcc85, 0x754a: 0x40083e20, 0x754b: 0x400a6e20, + 0x754c: 0x40084020, 0x754d: 0xe00009c4, 0x754e: 0x402d1e20, 0x754f: 0x40084220, + 0x7550: 0xe00002cb, 0x7551: 0xe00002d3, 0x7552: 0xe00002b2, 0x7553: 0xe00002bb, + 0x7554: 0xe00003cd, 0x7555: 0xe00002c3, 0x7556: 0xe00003d1, 0x7557: 0xe00004ab, + 0x7558: 0xe0000579, 0x7559: 0xe00002c7, 0x755a: 0xe0000640, 0x755b: 0xe00002cf, + 0x755c: 0xe00004af, 0x755d: 0xe0000644, 0x755e: 0xe0000798, 0x755f: 0xf0001e1e, + 0x7560: 0x002d9a8a, 0x7561: 0xe00025cd, 0x7562: 0xe00025d0, 0x7563: 0xe00025da, + 0x7564: 0x0030be8a, 0x7565: 0xe000260a, 0x7566: 0xe000260d, 0x7567: 0xe00010bb, + 0x7568: 0xe00025e0, 0x7569: 0x0030f68a, 0x756a: 0xe0002614, 0x756b: 0xe000261b, + 0x756c: 0x002e228a, 0x756d: 0x002c3a8a, 0x756e: 0x002c628a, 0x756f: 0x002e828a, + 0x7570: 0x002d9a84, 0x7571: 0xf0001f04, 0x7572: 0xf0000404, 0x7573: 0xf0001f04, + 0x7574: 0x0030be84, 0x7575: 0xf0001f04, 0x7576: 0xf0000404, 0x7577: 0xe00010b6, + 0x7578: 0xe00025dd, 0x7579: 0x0030f684, 0x757a: 0xe0002611, 0x757b: 0xe0002617, + 0x757c: 0x002e2284, 0x757d: 0x002c3a84, 0x757e: 0x002c6284, 0x757f: 0x002e8284, + // Block 0x1d6, offset 0x7580 + 0x7580: 0xe0000024, 0x7581: 0xe0000029, 0x7582: 0xe000002e, 0x7583: 0xe0000033, + 0x7584: 0xe0000038, 0x7585: 0xe000003d, 0x7586: 0xe0000042, 0x7587: 0xe0000047, + 0x7588: 0xf0001f04, 0x7589: 0xf0001f04, 0x758a: 0xf0001f04, 0x758b: 0xf0001f04, + 0x758c: 0xf0001f04, 0x758d: 0xf0001f04, 0x758e: 0xf0001f04, 0x758f: 0xf0001f04, + 0x7590: 0xf0001f04, 0x7591: 0xf0000404, 0x7592: 0xf0000404, 0x7593: 0xf0000404, + 0x7594: 0xf0000404, 0x7595: 0xf0000404, 0x7596: 0xf0000404, 0x7597: 0xf0000404, + 0x7598: 0xf0000404, 0x7599: 0xf0000404, 0x759a: 0xf0000404, 0x759b: 0xf0000404, + 0x759c: 0xf0000404, 0x759d: 0xf0000404, 0x759e: 0xf0000404, 0x759f: 0xf0000404, + 0x75a0: 0xf0000404, 0x75a1: 0xf0000404, 0x75a2: 0xf0000404, 0x75a3: 0xf0000404, + 0x75a4: 0xf0000404, 0x75a5: 0xf0000404, 0x75a6: 0xf0000404, 0x75a7: 0xf0000404, + 0x75a8: 0xf0000404, 0x75a9: 0xf0000404, 0x75aa: 0xf0000404, 0x75ab: 0xf0000404, + 0x75ac: 0xe000257a, 0x75ad: 0xf0000404, 0x75ae: 0xf0000404, 0x75af: 0xf0000404, + 0x75b0: 0xf0000404, 0x75b1: 0xf0000404, 0x75b2: 0xf0000404, 0x75b3: 0xe0002582, + 0x75b4: 0xf0000404, 0x75b5: 0xf0000404, 0x75b6: 0x002bde8c, 0x75b7: 0x002c0a8c, + 0x75b8: 0x002c3a8c, 0x75b9: 0x002c628c, 0x75ba: 0x002c988c, 0x75bb: 0x002d088c, + 0x75bc: 0x002d228c, 0x75bd: 0x002d688c, 0x75be: 0x002d9a8c, 0x75bf: 0x002dcc8c, + // Block 0x1d7, offset 0x75c0 + 0x75c0: 0xe000230b, 0x75c1: 0xe00022f8, 0x75c2: 0xe00022fc, 0x75c3: 0xe0002311, + 0x75c4: 0xe0002316, 0x75c5: 0xe000231d, 0x75c6: 0xe0002321, 0x75c7: 0xe0002325, + 0x75c8: 0xe000232b, 0x75c9: 0xf0001c1c, 0x75ca: 0xe0002330, 0x75cb: 0xe000233c, + 0x75cc: 0xe0002340, 0x75cd: 0xe0002337, 0x75ce: 0xe0002346, 0x75cf: 0xe000234b, + 0x75d0: 0xe000234f, 0x75d1: 0xe0002353, 0x75d2: 0xf0001c1c, 0x75d3: 0xe000235e, + 0x75d4: 0xe0002358, 0x75d5: 0xf0001c1c, 0x75d6: 0xe0002363, 0x75d7: 0xe000236d, + 0x75d8: 0xf0001f04, 0x75d9: 0xf0001f04, 0x75da: 0xf0001f04, 0x75db: 0xf0001f04, + 0x75dc: 0xf0001f04, 0x75dd: 0xf0001f04, 0x75de: 0xf0001f04, 0x75df: 0xf0001f04, + 0x75e0: 0xf0001f04, 0x75e1: 0xf0001f04, 0x75e2: 0xf0000404, 0x75e3: 0xf0000404, + 0x75e4: 0xf0000404, 0x75e5: 0xf0000404, 0x75e6: 0xf0000404, 0x75e7: 0xf0000404, + 0x75e8: 0xf0000404, 0x75e9: 0xf0000404, 0x75ea: 0xf0000404, 0x75eb: 0xf0000404, + 0x75ec: 0xf0000404, 0x75ed: 0xf0000404, 0x75ee: 0xf0000404, 0x75ef: 0xf0000404, + 0x75f0: 0xf0000404, 0x75f1: 0xe0000c1e, 0x75f2: 0xf0001c1c, 0x75f3: 0xf0001d1d, + 0x75f4: 0xe0000a31, 0x75f5: 0xf0001d1c, 0x75f6: 0xf0001c1c, 0x75f7: 0xf0001c1c, + 0x75f8: 0xe0000ac2, 0x75f9: 0xe0000ac6, 0x75fa: 0xe00025d7, 0x75fb: 0xf0001c1c, + 0x75fc: 0xf0001c1c, 0x75fd: 0xf0001c1c, 0x75fe: 0xf0001c1c, 0x75ff: 0xe0002431, + // Block 0x1d8, offset 0x7600 + 0x7600: 0xf0001d1c, 0x7601: 0xf0001d1d, 0x7602: 0xe00009b7, 0x7603: 0xe000258a, + 0x7604: 0xf0001c1c, 0x7605: 0xf0001c1c, 0x7606: 0xe0000a66, 0x7607: 0xe0000a7a, + 0x7608: 0xf0001d1c, 0x7609: 0xf0001c1d, 0x760a: 0xf0001c1c, 0x760b: 0xf0001d1d, + 0x760c: 0xf0001c1c, 0x760d: 0xf0001d1d, 0x760e: 0xf0001d1d, 0x760f: 0xf0001c1c, + 0x7610: 0xf0001c1c, 0x7611: 0xf0001c1c, 0x7612: 0xe0000d0d, 0x7613: 0xe00025e3, + 0x7614: 0xf0001c1c, 0x7615: 0xe0000d3a, 0x7616: 0xe0000d46, 0x7617: 0xf0001d1d, + 0x7618: 0xe0000eb0, 0x7619: 0xe0000eb8, 0x761a: 0xf0001d1d, 0x761b: 0xf0001c1c, + 0x761c: 0xf0001c1d, 0x761d: 0xf0001c1d, 0x761e: 0xe00010b2, 0x761f: 0xe00009c8, + 0x7620: 0xf0001f04, 0x7621: 0xf0001f04, 0x7622: 0xf0001f04, 0x7623: 0xf0001f04, + 0x7624: 0xf0001f04, 0x7625: 0xf0001f04, 0x7626: 0xf0001f04, 0x7627: 0xf0001f04, + 0x7628: 0xf0001f04, 0x7629: 0xf0000404, 0x762a: 0xf0000404, 0x762b: 0xf0000404, + 0x762c: 0xf0000404, 0x762d: 0xf0000404, 0x762e: 0xf0000404, 0x762f: 0xf0000404, + 0x7630: 0xf0000404, 0x7631: 0xf0000404, 0x7632: 0xf0000404, 0x7633: 0xf0000404, + 0x7634: 0xf0000404, 0x7635: 0xf0000404, 0x7636: 0xf0000404, 0x7637: 0xf0000404, + 0x7638: 0xf0000404, 0x7639: 0xf0000404, 0x763a: 0xf0000404, 0x763b: 0xf0000404, + 0x763c: 0xf0000404, 0x763d: 0xf0000404, 0x763e: 0xf0000404, 0x763f: 0xe0000bdf, + // Block 0x1d9, offset 0x7640 + 0x7640: 0xf0001f04, 0x7641: 0xf0001f04, 0x7642: 0xf0001f04, 0x7643: 0xf0001f04, + 0x7644: 0xf0001f04, 0x7645: 0xf0001f04, 0x7646: 0xf0001f04, 0x7647: 0xf0001f04, + 0x7648: 0xf0001f04, 0x7649: 0xf0001f04, 0x764a: 0xf0001f04, + 0x7650: 0xf0000a04, 0x7651: 0xf0000a04, 0x7652: 0xf0000a04, 0x7653: 0xf0000a04, + 0x7654: 0xf0000a04, 0x7655: 0xf0000a04, 0x7656: 0xf0000a04, 0x7657: 0xf0000a04, + 0x7658: 0xe0002576, 0x7659: 0xf0000a04, 0x765a: 0xf0000a04, 0x765b: 0xf0000a04, + 0x765c: 0xf0000a04, 0x765d: 0xf0000a04, 0x765e: 0xf0000a04, 0x765f: 0xf0000a04, + 0x7660: 0xe000257e, 0x7661: 0xf0000a04, 0x7662: 0xf0000a04, 0x7663: 0xf0000a04, + 0x7664: 0xf0000a04, 0x7665: 0xf0000a04, 0x7666: 0xf0000a04, 0x7667: 0xe0002586, + 0x7668: 0xf0000a04, 0x7669: 0xf0000a04, 0x766a: 0xf0000a04, 0x766b: 0x002c3a8c, + 0x766c: 0x002f7a8c, 0x766d: 0xf0000c0c, 0x766e: 0xf0000c0c, + 0x7670: 0x002bde9d, 0x7671: 0x002c0a9d, 0x7672: 0x002c3a9d, 0x7673: 0x002c629d, + 0x7674: 0x002c989d, 0x7675: 0x002d089d, 0x7676: 0x002d229d, 0x7677: 0x002d689d, + 0x7678: 0x002d9a9d, 0x7679: 0x002dcc9d, 0x767a: 0x002dfe9d, 0x767b: 0x002e229d, + 0x767c: 0x002e829d, 0x767d: 0x002e9e9d, 0x767e: 0x002ee29d, 0x767f: 0x002f2c9d, + // Block 0x1da, offset 0x7680 + 0x7680: 0xa0000000, 0x7681: 0xa0000000, 0x7682: 0xa0000000, 0x7683: 0xa0000000, + 0x7684: 0xa0000000, 0x7685: 0xa0000000, 0x7686: 0xa0000000, 0x7687: 0xa0000000, + 0x7688: 0xa0000000, 0x7689: 0x40020020, 0x768a: 0x40020220, 0x768b: 0x40020420, + 0x768c: 0x40020620, 0x768d: 0x40020820, 0x768e: 0xa0000000, 0x768f: 0xa0000000, + 0x7690: 0xa0000000, 0x7691: 0xa0000000, 0x7692: 0xa0000000, 0x7693: 0xa0000000, + 0x7694: 0xa0000000, 0x7695: 0xa0000000, 0x7696: 0xa0000000, 0x7697: 0xa0000000, + 0x7698: 0xa0000000, 0x7699: 0xa0000000, 0x769a: 0xa0000000, 0x769b: 0xa0000000, + 0x769c: 0xa0000000, 0x769d: 0xa0000000, 0x769e: 0xa0000000, 0x769f: 0xa0000000, + 0x76a0: 0x40021220, 0x76a1: 0x4002ba20, 0x76a2: 0x4003e020, 0x76a3: 0x4004ea20, + 0x76a4: 0x4027de20, 0x76a5: 0x4004ec20, 0x76a6: 0x4004e620, 0x76a7: 0x4003d220, + 0x76a8: 0x4003f420, 0x76a9: 0x4003f620, 0x76aa: 0x4004d820, 0x76ab: 0x40093820, + 0x76ac: 0x40024020, 0x76ad: 0x40021a20, 0x76ae: 0x4002e420, 0x76af: 0x4004e220, + 0x76b0: 0x4029cc20, 0x76b1: 0x4029ce20, 0x76b2: 0x4029d020, 0x76b3: 0x4029d220, + 0x76b4: 0x4029d420, 0x76b5: 0x4029d620, 0x76b6: 0x4029d820, 0x76b7: 0x4029da20, + 0x76b8: 0x4029dc20, 0x76b9: 0x4029de20, 0x76ba: 0x40026c20, 0x76bb: 0x40026220, + 0x76bc: 0x40094020, 0x76bd: 0xc32f0851, 0x76be: 0x40094420, 0x76bf: 0x4002c420, + // Block 0x1db, offset 0x76c0 + 0x76c0: 0x4004d620, 0x76c1: 0x002bde88, 0x76c2: 0x002c0a88, 0x76c3: 0x002c3a88, + 0x76c4: 0x002c6288, 0x76c5: 0x002c9888, 0x76c6: 0x002d0888, 0x76c7: 0x002d2288, + 0x76c8: 0x002d6888, 0x76c9: 0x002d9a88, 0x76ca: 0x002dcc88, 0x76cb: 0x002dfe88, + 0x76cc: 0xc3520002, 0x76cd: 0x002e8288, 0x76ce: 0x002e9e88, 0x76cf: 0x002ee288, + 0x76d0: 0x002f2c88, 0x76d1: 0x002f5688, 0x76d2: 0x002f7a88, 0x76d3: 0x002fe688, + 0x76d4: 0x00302c88, 0x76d5: 0x00306c88, 0x76d6: 0x0030be88, 0x76d7: 0x0030e288, + 0x76d8: 0x0030f688, 0x76d9: 0x00310088, 0x76da: 0x00312a88, 0x76db: 0x4003f820, + 0x76dc: 0x4004e420, 0x76dd: 0x4003fa20, 0x76de: 0x40062420, 0x76df: 0x40021620, + 0x76e0: 0x40061e20, 0x76e1: 0x402bde20, 0x76e2: 0x402c0a20, 0x76e3: 0x402c3a20, + 0x76e4: 0x402c6220, 0x76e5: 0x402c9820, 0x76e6: 0x402d0820, 0x76e7: 0x402d2220, + 0x76e8: 0x402d6820, 0x76e9: 0x402d9a20, 0x76ea: 0x402dcc20, 0x76eb: 0x402dfe20, + 0x76ec: 0xc34f0002, 0x76ed: 0x402e8220, 0x76ee: 0x402e9e20, 0x76ef: 0x402ee220, + 0x76f0: 0x402f2c20, 0x76f1: 0x402f5620, 0x76f2: 0x402f7a20, 0x76f3: 0x402fe620, + 0x76f4: 0x40302c20, 0x76f5: 0x40306c20, 0x76f6: 0x4030be20, 0x76f7: 0x4030e220, + 0x76f8: 0x4030f620, 0x76f9: 0x40310020, 0x76fa: 0x40312a20, 0x76fb: 0x4003fc20, + 0x76fc: 0x40094820, 0x76fd: 0x4003fe20, 0x76fe: 0x40094c20, 0x76ff: 0xa0000000, + // Block 0x1dc, offset 0x7700 + 0x7700: 0xe0000983, 0x7701: 0xe0000980, 0x7702: 0xe00008fb, 0x7703: 0xe00008f8, + 0x7704: 0xe000097d, 0x7705: 0xe000097a, 0x7706: 0xe0000a38, 0x7707: 0xe0000a35, + 0x7708: 0xe0000a3e, 0x7709: 0xe0000a3b, 0x770a: 0xe0000a4a, 0x770b: 0xe0000a47, + 0x770c: 0xe0000a44, 0x770d: 0xe0000a41, 0x770e: 0xe0000a86, 0x770f: 0xe0000a83, + 0x7710: 0xe0000aaa, 0x7711: 0xe0000aa7, 0x7712: 0xe0000b46, 0x7713: 0xe0000b43, + 0x7714: 0xe0000aee, 0x7715: 0xe0000aeb, 0x7716: 0xe0000b2c, 0x7717: 0xe0000b29, + 0x7718: 0xe0000b40, 0x7719: 0xe0000b3d, 0x771a: 0xe0000b1a, 0x771b: 0xe0000b17, + 0x771c: 0xe0000bb8, 0x771d: 0xe0000bb5, 0x771e: 0xe0000bb2, 0x771f: 0xe0000baf, + 0x7720: 0xe0000bc4, 0x7721: 0xe0000bc1, 0x7722: 0xe0000bca, 0x7723: 0xe0000bc7, + 0x7724: 0xe0000bee, 0x7725: 0xe0000beb, 0x7726: 0xe0000c1b, 0x7727: 0xe0000c18, + 0x7728: 0xe0000c51, 0x7729: 0xe0000c4e, 0x772a: 0xe0000c60, 0x772b: 0xe0000c5d, + 0x772c: 0xe0000c31, 0x772d: 0xe0000c2e, 0x772e: 0xe0000c5a, 0x772f: 0xe0000c57, + 0x7730: 0xe0000c54, 0x7731: 0x402da220, 0x7732: 0xf0000a0a, 0x7733: 0xf0000404, + 0x7734: 0xe0000c8a, 0x7735: 0xe0000c87, 0x7736: 0xe0000c9f, 0x7737: 0xe0000c9c, + 0x7738: 0x402f7220, 0x7739: 0xe0000ccc, 0x773a: 0xe0000cc9, 0x773b: 0xe0000cd8, + 0x773c: 0xe0000cd5, 0x773d: 0xe0000cd2, 0x773e: 0xe0000ccf, 0x773f: 0x002e2483, + // Block 0x1dd, offset 0x7740 + 0x7740: 0x402e2420, 0x7741: 0xe0000cf8, 0x7742: 0xe0000cf5, 0x7743: 0xe0000d51, + 0x7744: 0xe0000d4e, 0x7745: 0xe0000d6f, 0x7746: 0xe0000d6c, 0x7747: 0xe0000d5d, + 0x7748: 0xe0000d5a, 0x7749: 0xf0000404, 0x774a: 0x002eda88, 0x774b: 0x402eda20, + 0x774c: 0xe0000e2e, 0x774d: 0xe0000e2b, 0x774e: 0xe0000da0, 0x774f: 0xe0000d9d, + 0x7750: 0xe0000de0, 0x7751: 0xe0000ddd, 0x7752: 0xe0000e93, 0x7753: 0xe0000e8f, + 0x7754: 0xe0000eca, 0x7755: 0xe0000ec7, 0x7756: 0xe0000edc, 0x7757: 0xe0000ed9, + 0x7758: 0xe0000ed0, 0x7759: 0xe0000ecd, 0x775a: 0xe0000f1f, 0x775b: 0xe0000f1c, + 0x775c: 0xe0000f2d, 0x775d: 0xe0000f2a, 0x775e: 0xe0000f47, 0x775f: 0xe0000f44, + 0x7760: 0xe0000f33, 0x7761: 0xe0000f30, 0x7762: 0xe0000f99, 0x7763: 0xe0000f96, + 0x7764: 0xe0000f8a, 0x7765: 0xe0000f87, 0x7766: 0x00303688, 0x7767: 0x40303620, + 0x7768: 0xe000102b, 0x7769: 0xe0001028, 0x776a: 0xe000103f, 0x776b: 0xe000103c, + 0x776c: 0xe0000fe7, 0x776d: 0xe0000fe4, 0x776e: 0xe0000ff9, 0x776f: 0xe0000ff6, + 0x7770: 0xe0001025, 0x7771: 0xe0001022, 0x7772: 0xe0001039, 0x7773: 0xe0001036, + 0x7774: 0xe00010d8, 0x7775: 0xe00010d5, 0x7776: 0xe000110e, 0x7777: 0xe000110b, + 0x7778: 0xe0001117, 0x7779: 0xe000113b, 0x777a: 0xe0001138, 0x777b: 0xe000114d, + 0x777c: 0xe000114a, 0x777d: 0xe0001147, 0x777e: 0xe0001144, 0x777f: 0xe0000f64, + // Block 0x1de, offset 0x7780 + 0x7780: 0xa0000000, 0x7781: 0xa0000000, 0x7782: 0xa0000000, 0x7783: 0xa0000000, + 0x7784: 0xa0000000, 0x7785: 0xa0000000, 0x7786: 0xa0000000, 0x7787: 0xa0000000, + 0x7788: 0xa0000000, 0x7789: 0x40020020, 0x778a: 0x40020220, 0x778b: 0x40020420, + 0x778c: 0x40020620, 0x778d: 0x40020820, 0x778e: 0xa0000000, 0x778f: 0xa0000000, + 0x7790: 0xa0000000, 0x7791: 0xa0000000, 0x7792: 0xa0000000, 0x7793: 0xa0000000, + 0x7794: 0xa0000000, 0x7795: 0xa0000000, 0x7796: 0xa0000000, 0x7797: 0xa0000000, + 0x7798: 0xa0000000, 0x7799: 0xa0000000, 0x779a: 0xa0000000, 0x779b: 0xa0000000, + 0x779c: 0xa0000000, 0x779d: 0xa0000000, 0x779e: 0xa0000000, 0x779f: 0xa0000000, + 0x77a0: 0x40021220, 0x77a1: 0x4002ba20, 0x77a2: 0x4003e020, 0x77a3: 0x4004ea20, + 0x77a4: 0x4027de20, 0x77a5: 0x4004ec20, 0x77a6: 0x4004e620, 0x77a7: 0x4003d220, + 0x77a8: 0x4003f420, 0x77a9: 0x4003f620, 0x77aa: 0x4004d820, 0x77ab: 0x40093820, + 0x77ac: 0x40024020, 0x77ad: 0x40021a20, 0x77ae: 0x4002e420, 0x77af: 0x4004e220, + 0x77b0: 0x4029cc20, 0x77b1: 0x4029ce20, 0x77b2: 0x4029d020, 0x77b3: 0x4029d220, + 0x77b4: 0x4029d420, 0x77b5: 0x4029d620, 0x77b6: 0x4029d820, 0x77b7: 0x4029da20, + 0x77b8: 0x4029dc20, 0x77b9: 0x4029de20, 0x77ba: 0x40026c20, 0x77bb: 0x40026220, + 0x77bc: 0x40094020, 0x77bd: 0xc32f0851, 0x77be: 0x40094420, 0x77bf: 0x4002c420, + // Block 0x1df, offset 0x77c0 + 0x77c0: 0x4004d620, 0x77c1: 0xc35708b1, 0x77c2: 0x002c0a88, 0x77c3: 0xc33b08d1, + 0x77c4: 0xc35b08d1, 0x77c5: 0xc36008f1, 0x77c6: 0x002d0888, 0x77c7: 0x002d2288, + 0x77c8: 0x002d6888, 0x77c9: 0xc36508b1, 0x77ca: 0x002dcc88, 0x77cb: 0x002dfe88, + 0x77cc: 0xc0030002, 0x77cd: 0x002e8288, 0x77ce: 0xc36908d1, 0x77cf: 0xc34508b1, + 0x77d0: 0x002f2c88, 0x77d1: 0x002f5688, 0x77d2: 0xc36d08d1, 0x77d3: 0xc34908d1, + 0x77d4: 0xc37108d1, 0x77d5: 0xc3760921, 0x77d6: 0x0030be88, 0x77d7: 0x0030e288, + 0x77d8: 0x0030f688, 0x77d9: 0xc37b08b1, 0x77da: 0xc37f08d1, 0x77db: 0x4003f820, + 0x77dc: 0x4004e420, 0x77dd: 0x4003fa20, 0x77de: 0x40062420, 0x77df: 0x40021620, + 0x77e0: 0x40061e20, 0x77e1: 0xc35508b1, 0x77e2: 0x402c0a20, 0x77e3: 0xc33908d1, + 0x77e4: 0xc35908d1, 0x77e5: 0xc35d08f1, 0x77e6: 0x402d0820, 0x77e7: 0x402d2220, + 0x77e8: 0x402d6820, 0x77e9: 0xc36308b1, 0x77ea: 0x402dcc20, 0x77eb: 0x402dfe20, + 0x77ec: 0xc0000002, 0x77ed: 0x402e8220, 0x77ee: 0xc36708d1, 0x77ef: 0xc34308b1, + 0x77f0: 0x402f2c20, 0x77f1: 0x402f5620, 0x77f2: 0xc36b08d1, 0x77f3: 0xc34708d1, + 0x77f4: 0xc36f08d1, 0x77f5: 0xc3730921, 0x77f6: 0x4030be20, 0x77f7: 0x4030e220, + 0x77f8: 0x4030f620, 0x77f9: 0xc37908b1, 0x77fa: 0xc37d08d1, 0x77fb: 0x4003fc20, + 0x77fc: 0x40094820, 0x77fd: 0x4003fe20, 0x77fe: 0x40094c20, 0x77ff: 0xa0000000, + // Block 0x1e0, offset 0x7800 + 0x7800: 0xe00008f5, 0x7801: 0x002be083, 0x7802: 0xe0000921, 0x7803: 0xe0000969, + 0x7804: 0xe000095b, 0x7805: 0xe000094d, 0x7806: 0xe00009dd, 0x7807: 0xe0000a53, + 0x7808: 0xe0000ae8, 0x7809: 0x002c9a83, 0x780a: 0xe0000af4, 0x780b: 0xe0000b20, + 0x780c: 0xe0000c2b, 0x780d: 0x002d9c83, 0x780e: 0xe0000c37, 0x780f: 0xe0000c43, + 0x7810: 0xe0000ab3, 0x7811: 0xe0000d63, 0x7812: 0xe0000d9a, 0x7813: 0x002ee483, + 0x7814: 0xe0000da6, 0x7815: 0xe0000de6, 0x7816: 0xe0000dd2, 0x7817: 0x40093e20, + 0x7818: 0xe0000e12, 0x7819: 0xe0000fe1, 0x781a: 0x00306e83, 0x781b: 0xe0000fed, + 0x781c: 0xe0000fff, 0x781d: 0x00310283, 0x781e: 0x00318888, 0x781f: 0xe0000f7b, + 0x7820: 0xe00008f2, 0x7821: 0x402be020, 0x7822: 0xe000091e, 0x7823: 0xe0000966, + 0x7824: 0xe0000958, 0x7825: 0xe000094a, 0x7826: 0xe00009d5, 0x7827: 0xe0000a4d, + 0x7828: 0xe0000ae5, 0x7829: 0x402c9a20, 0x782a: 0xe0000af1, 0x782b: 0xe0000b1d, + 0x782c: 0xe0000c28, 0x782d: 0x402d9c20, 0x782e: 0xe0000c34, 0x782f: 0xe0000c40, + 0x7830: 0xe0000aad, 0x7831: 0xe0000d60, 0x7832: 0xe0000d97, 0x7833: 0x402ee420, + 0x7834: 0xe0000da3, 0x7835: 0xe0000de3, 0x7836: 0xe0000dcf, 0x7837: 0x40093c20, + 0x7838: 0xe0000e0f, 0x7839: 0xe0000fde, 0x783a: 0x40306e20, 0x783b: 0xe0000fea, + 0x783c: 0xe0000ffc, 0x783d: 0x40310220, 0x783e: 0x40318820, 0x783f: 0xe0001114, + // Block 0x1e1, offset 0x7840 + 0x7840: 0xe0000983, 0x7841: 0xe0000980, 0x7842: 0xe00008fb, 0x7843: 0xe00008f8, + 0x7844: 0xe000097d, 0x7845: 0xe000097a, 0x7846: 0xe0000a38, 0x7847: 0xe0000a35, + 0x7848: 0xe0000a3e, 0x7849: 0xe0000a3b, 0x784a: 0xe0000a4a, 0x784b: 0xe0000a47, + 0x784c: 0x002c3c83, 0x784d: 0x402c3c20, 0x784e: 0x002c6483, 0x784f: 0x402c6420, + 0x7850: 0xe0000aaa, 0x7851: 0xe0000aa7, 0x7852: 0xe0000b46, 0x7853: 0xe0000b43, + 0x7854: 0xe0000aee, 0x7855: 0xe0000aeb, 0x7856: 0xe0000b2c, 0x7857: 0xe0000b29, + 0x7858: 0xe0000b40, 0x7859: 0xe0000b3d, 0x785a: 0x002c9c83, 0x785b: 0x402c9c20, + 0x785c: 0xe0000bb8, 0x785d: 0xe0000bb5, 0x785e: 0xe0000bb2, 0x785f: 0xe0000baf, + 0x7860: 0xe0000bc4, 0x7861: 0xe0000bc1, 0x7862: 0xe0000bca, 0x7863: 0xe0000bc7, + 0x7864: 0xe0000bee, 0x7865: 0xe0000beb, 0x7866: 0xe0000c1b, 0x7867: 0xe0000c18, + 0x7868: 0xe0000c51, 0x7869: 0xe0000c4e, 0x786a: 0xe0000c60, 0x786b: 0xe0000c5d, + 0x786c: 0xe0000c31, 0x786d: 0xe0000c2e, 0x786e: 0xe0000c5a, 0x786f: 0xe0000c57, + 0x7870: 0xe0000c54, 0x7871: 0x402da220, 0x7872: 0xf0000a0a, 0x7873: 0xf0000404, + 0x7874: 0xe0000c8a, 0x7875: 0xe0000c87, 0x7876: 0xe0000c9f, 0x7877: 0xe0000c9c, + 0x7878: 0x402f7220, 0x7879: 0xe0000ccc, 0x787a: 0xe0000cc9, 0x787b: 0xe0000cd8, + 0x787c: 0xe0000cd5, 0x787d: 0xe0000cd2, 0x787e: 0xe0000ccf, 0x787f: 0xe0000d04, + // Block 0x1e2, offset 0x7880 + 0x7880: 0xe0000cfe, 0x7881: 0xe0000cf8, 0x7882: 0xe0000cf5, 0x7883: 0xe0000d51, + 0x7884: 0xe0000d4e, 0x7885: 0xe0000d6f, 0x7886: 0xe0000d6c, 0x7887: 0x002ea083, + 0x7888: 0x402ea020, 0x7889: 0xf0000404, 0x788a: 0x002eda88, 0x788b: 0x402eda20, + 0x788c: 0xe0000e2e, 0x788d: 0xe0000e2b, 0x788e: 0xe0000da0, 0x788f: 0xe0000d9d, + 0x7890: 0xe0000de0, 0x7891: 0xe0000ddd, 0x7892: 0xe0000e93, 0x7893: 0xe0000e8f, + 0x7894: 0xe0000eca, 0x7895: 0xe0000ec7, 0x7896: 0xe0000edc, 0x7897: 0xe0000ed9, + 0x7898: 0x002f7c83, 0x7899: 0x402f7c20, 0x789a: 0xe0000f1f, 0x789b: 0xe0000f1c, + 0x789c: 0xe0000f2d, 0x789d: 0xe0000f2a, 0x789e: 0xe0000f47, 0x789f: 0xe0000f44, + 0x78a0: 0x002fe883, 0x78a1: 0x402fe820, 0x78a2: 0xe0000f99, 0x78a3: 0xe0000f96, + 0x78a4: 0x00302e83, 0x78a5: 0x40302e20, 0x78a6: 0x00303688, 0x78a7: 0x40303620, + 0x78a8: 0xe000102b, 0x78a9: 0xe0001028, 0x78aa: 0xe000103f, 0x78ab: 0xe000103c, + 0x78ac: 0xe0000fe7, 0x78ad: 0xe0000fe4, 0x78ae: 0x00307083, 0x78af: 0x40307020, + 0x78b0: 0xe0001025, 0x78b1: 0xe0001022, 0x78b2: 0xe0001039, 0x78b3: 0xe0001036, + 0x78b4: 0xe00010d8, 0x78b5: 0xe00010d5, 0x78b6: 0xe000110e, 0x78b7: 0xe000110b, + 0x78b8: 0xe0001117, 0x78b9: 0xe000113b, 0x78ba: 0xe0001138, 0x78bb: 0xe000114d, + 0x78bc: 0xe000114a, 0x78bd: 0x00312c83, 0x78be: 0x40312c20, 0x78bf: 0xe0000f64, + // Block 0x1e3, offset 0x78c0 + 0x78c0: 0x40321220, 0x78c1: 0x40321a20, 0x78c2: 0x40322220, 0x78c3: 0x40322a20, + 0x78c4: 0xe0000ad5, 0x78c5: 0xe0000ad1, 0x78c6: 0xe0000acd, 0x78c7: 0xf0000a0a, + 0x78c8: 0xf000040a, 0x78c9: 0xf0000404, 0x78ca: 0xf0000a0a, 0x78cb: 0xf000040a, + 0x78cc: 0xf0000404, 0x78cd: 0xe0000947, 0x78ce: 0xe0000944, 0x78cf: 0xe0000c3d, + 0x78d0: 0xe0000c3a, 0x78d1: 0xe0000dcc, 0x78d2: 0xe0000dc9, 0x78d3: 0xe0000ff3, + 0x78d4: 0xe0000ff0, 0x78d5: 0xe000101e, 0x78d6: 0xe000101a, 0x78d7: 0xe0002658, + 0x78d8: 0xe0002655, 0x78d9: 0xe0001016, 0x78da: 0xe0001012, 0x78db: 0xe000100e, + 0x78dc: 0xe000100a, 0x78dd: 0x402cae20, 0x78de: 0xe0000962, 0x78df: 0xe000095e, + 0x78e0: 0xe0000976, 0x78e1: 0xe0000972, 0x78e2: 0xe00009f4, 0x78e3: 0xe00009ef, + 0x78e4: 0x002d3a88, 0x78e5: 0x402d3a20, 0x78e6: 0xe0000bbe, 0x78e7: 0xe0000bbb, + 0x78e8: 0xe0000c99, 0x78e9: 0xe0000c96, 0x78ea: 0xe0000e20, 0x78eb: 0xe0000e1d, + 0x78ec: 0xe0000e27, 0x78ed: 0xe0000e23, 0x78ee: 0xe0001162, 0x78ef: 0xe000115f, + 0x78f0: 0xe0000c8d, 0x78f1: 0xf0000a0a, 0x78f2: 0xf000040a, 0x78f3: 0xf0000404, + 0x78f4: 0xe0000bac, 0x78f5: 0xe0000ba9, 0x78f6: 0x002d7888, 0x78f7: 0x00319488, + 0x78f8: 0xe0000d57, 0x78f9: 0xe0000d54, 0x78fa: 0xe000262e, 0x78fb: 0xe000262b, + 0x78fc: 0xe00009ea, 0x78fd: 0xe00009e5, 0x78fe: 0xe0000e19, 0x78ff: 0xe0000e15, + // Block 0x1e4, offset 0x7900 + 0x7900: 0xe00009b1, 0x7901: 0xe00009ae, 0x7902: 0xe0000a22, 0x7903: 0xe0000a1f, + 0x7904: 0xe0000a28, 0x7905: 0xe0000a25, 0x7906: 0xe0000a2e, 0x7907: 0xe0000a2b, + 0x7908: 0xe0000a5a, 0x7909: 0xe0000a56, 0x790a: 0xe0000a8c, 0x790b: 0xe0000a89, + 0x790c: 0xe0000a98, 0x790d: 0xe0000a95, 0x790e: 0xe0000aa4, 0x790f: 0xe0000aa1, + 0x7910: 0xe0000a92, 0x7911: 0xe0000a8f, 0x7912: 0xe0000a9e, 0x7913: 0xe0000a9b, + 0x7914: 0xe0000b55, 0x7915: 0xe0000b51, 0x7916: 0xe000263a, 0x7917: 0xe0002637, + 0x7918: 0xe0000b7c, 0x7919: 0xe0000b79, 0x791a: 0xe0000b82, 0x791b: 0xe0000b7f, + 0x791c: 0xe0000b39, 0x791d: 0xe0000b35, 0x791e: 0xe0000b8c, 0x791f: 0xe0000b89, + 0x7920: 0xe0000bd0, 0x7921: 0xe0000bcd, 0x7922: 0xe0000c00, 0x7923: 0xe0000bfd, + 0x7924: 0xe0000c0c, 0x7925: 0xe0000c09, 0x7926: 0xe0000bfa, 0x7927: 0xe0000bf7, + 0x7928: 0xe0000c06, 0x7929: 0xe0000c03, 0x792a: 0xe0000c12, 0x792b: 0xe0000c0f, + 0x792c: 0xe0000c7e, 0x792d: 0xe0000c7b, 0x792e: 0xe0002640, 0x792f: 0xe000263d, + 0x7930: 0xe0000c93, 0x7931: 0xe0000c90, 0x7932: 0xe0000cab, 0x7933: 0xe0000ca8, + 0x7934: 0xe0000cb1, 0x7935: 0xe0000cae, 0x7936: 0xe0000cde, 0x7937: 0xe0000cdb, + 0x7938: 0xe0000ce5, 0x7939: 0xe0000ce1, 0x793a: 0xe0000cf2, 0x793b: 0xe0000cef, + 0x793c: 0xe0000cec, 0x793d: 0xe0000ce9, 0x793e: 0xe0000d1e, 0x793f: 0xe0000d1b, + // Block 0x1e5, offset 0x7940 + 0x7940: 0xe0000d24, 0x7941: 0xe0000d21, 0x7942: 0xe0000d2a, 0x7943: 0xe0000d27, + 0x7944: 0xe0000d69, 0x7945: 0xe0000d66, 0x7946: 0xe0000d7b, 0x7947: 0xe0000d78, + 0x7948: 0xe0000d87, 0x7949: 0xe0000d84, 0x794a: 0xe0000d81, 0x794b: 0xe0000d7e, + 0x794c: 0xe00025e9, 0x794d: 0xe00025e6, 0x794e: 0xe0000df5, 0x794f: 0xe0000df1, + 0x7950: 0xe0000e3d, 0x7951: 0xe0000e39, 0x7952: 0xe00025ef, 0x7953: 0xe00025ec, + 0x7954: 0xe0000ea7, 0x7955: 0xe0000ea4, 0x7956: 0xe0000ead, 0x7957: 0xe0000eaa, + 0x7958: 0xe0000ed6, 0x7959: 0xe0000ed3, 0x795a: 0xe0000ef4, 0x795b: 0xe0000ef1, + 0x795c: 0xe0000efb, 0x795d: 0xe0000ef7, 0x795e: 0xe0000f02, 0x795f: 0xe0000eff, + 0x7960: 0xe0000f41, 0x7961: 0xe0000f3e, 0x7962: 0xe0000f53, 0x7963: 0xe0000f50, + 0x7964: 0xe0000f26, 0x7965: 0xe0000f22, 0x7966: 0xe0002652, 0x7967: 0xe000264f, + 0x7968: 0xe0000f5a, 0x7969: 0xe0000f56, 0x796a: 0xe0000f93, 0x796b: 0xe0000f90, + 0x796c: 0xe0000f9f, 0x796d: 0xe0000f9c, 0x796e: 0xe0000fb1, 0x796f: 0xe0000fae, + 0x7970: 0xe0000fab, 0x7971: 0xe0000fa8, 0x7972: 0xe0001093, 0x7973: 0xe0001090, + 0x7974: 0xe000109f, 0x7975: 0xe000109c, 0x7976: 0xe0001099, 0x7977: 0xe0001096, + 0x7978: 0xe000265e, 0x7979: 0xe000265b, 0x797a: 0xe0001046, 0x797b: 0xe0001042, + 0x797c: 0xe00010a9, 0x797d: 0xe00010a6, 0x797e: 0xe00010af, 0x797f: 0xe00010ac, + // Block 0x1e6, offset 0x7980 + 0x7980: 0xe00010d2, 0x7981: 0xe00010cf, 0x7982: 0xe00010cc, 0x7983: 0xe00010c9, + 0x7984: 0xe00010e1, 0x7985: 0xe00010de, 0x7986: 0xe00010e7, 0x7987: 0xe00010e4, + 0x7988: 0xe00010ed, 0x7989: 0xe00010ea, 0x798a: 0xe00010fc, 0x798b: 0xe00010f9, + 0x798c: 0xe00010f6, 0x798d: 0xe00010f3, 0x798e: 0xe0001123, 0x798f: 0xe0001120, + 0x7990: 0xe0001141, 0x7991: 0xe000113e, 0x7992: 0xe0001153, 0x7993: 0xe0001150, + 0x7994: 0xe0001159, 0x7995: 0xe0001156, 0x7996: 0xe0000c15, 0x7997: 0xe0000f8d, + 0x7998: 0xe00010db, 0x7999: 0xe0001111, 0x799a: 0xf0000404, 0x799b: 0xe0000f70, + 0x799c: 0x40300420, 0x799d: 0x40300620, 0x799e: 0xe0000f7f, 0x799f: 0x402c9620, + 0x79a0: 0xe000099b, 0x79a1: 0xe0000998, 0x79a2: 0xe0000989, 0x79a3: 0xe0000986, + 0x79a4: 0xe0002628, 0x79a5: 0xe0002625, 0x79a6: 0xe0000930, 0x79a7: 0xe000092c, + 0x79a8: 0xe0000940, 0x79a9: 0xe000093c, 0x79aa: 0xe0000938, 0x79ab: 0xe0000934, + 0x79ac: 0xe00009aa, 0x79ad: 0xe00009a6, 0x79ae: 0xe0002622, 0x79af: 0xe000261f, + 0x79b0: 0xe000090a, 0x79b1: 0xe0000906, 0x79b2: 0xe000091a, 0x79b3: 0xe0000916, + 0x79b4: 0xe0000912, 0x79b5: 0xe000090e, 0x79b6: 0xe00009a2, 0x79b7: 0xe000099e, + 0x79b8: 0xe0000b6e, 0x79b9: 0xe0000b6b, 0x79ba: 0xe0000b5c, 0x79bb: 0xe0000b59, + 0x79bc: 0xe0000b26, 0x79bd: 0xe0000b23, 0x79be: 0xe0002634, 0x79bf: 0xe0002631, + // Block 0x1e7, offset 0x79c0 + 0x79c0: 0xe0000b03, 0x79c1: 0xe0000aff, 0x79c2: 0xe0000b13, 0x79c3: 0xe0000b0f, + 0x79c4: 0xe0000b0b, 0x79c5: 0xe0000b07, 0x79c6: 0xe0000b75, 0x79c7: 0xe0000b71, + 0x79c8: 0xe0000c66, 0x79c9: 0xe0000c63, 0x79ca: 0xe0000c78, 0x79cb: 0xe0000c75, + 0x79cc: 0xe0000e84, 0x79cd: 0xe0000e81, 0x79ce: 0xe0000e44, 0x79cf: 0xe0000e41, + 0x79d0: 0xe0002646, 0x79d1: 0xe0002643, 0x79d2: 0xe0000db5, 0x79d3: 0xe0000db1, + 0x79d4: 0xe0000dc5, 0x79d5: 0xe0000dc1, 0x79d6: 0xe0000dbd, 0x79d7: 0xe0000db9, + 0x79d8: 0xe0000e8b, 0x79d9: 0xe0000e87, 0x79da: 0xe000264c, 0x79db: 0xe0002649, + 0x79dc: 0xe0000e65, 0x79dd: 0xe0000e61, 0x79de: 0xe0000e75, 0x79df: 0xe0000e71, + 0x79e0: 0xe0000e6d, 0x79e1: 0xe0000e69, 0x79e2: 0xe0000e7d, 0x79e3: 0xe0000e79, + 0x79e4: 0xe000108d, 0x79e5: 0xe000108a, 0x79e6: 0xe000104d, 0x79e7: 0xe000104a, + 0x79e8: 0xe0002664, 0x79e9: 0xe0002661, 0x79ea: 0xe000106e, 0x79eb: 0xe000106a, + 0x79ec: 0xe000107e, 0x79ed: 0xe000107a, 0x79ee: 0xe0001076, 0x79ef: 0xe0001072, + 0x79f0: 0xe0001086, 0x79f1: 0xe0001082, 0x79f2: 0xe0001108, 0x79f3: 0xe0001105, + 0x79f4: 0xe0001135, 0x79f5: 0xe0001132, 0x79f6: 0xe000112f, 0x79f7: 0xe000112c, + 0x79f8: 0xe000111d, 0x79f9: 0xe000111a, 0x79fa: 0xe0000d0a, 0x79fb: 0xe0000d07, + 0x79fc: 0x0030d888, 0x79fd: 0x4030d820, 0x79fe: 0x00312088, 0x79ff: 0x40312020, + // Block 0x1e8, offset 0x7a00 + 0x7a00: 0xa0000000, 0x7a01: 0xa0000000, 0x7a02: 0xa0000000, 0x7a03: 0xa0000000, + 0x7a04: 0xa0000000, 0x7a05: 0xa0000000, 0x7a06: 0xa0000000, 0x7a07: 0xa0000000, + 0x7a08: 0xa0000000, 0x7a09: 0x40020020, 0x7a0a: 0x40020220, 0x7a0b: 0x40020420, + 0x7a0c: 0x40020620, 0x7a0d: 0x40020820, 0x7a0e: 0xa0000000, 0x7a0f: 0xa0000000, + 0x7a10: 0xa0000000, 0x7a11: 0xa0000000, 0x7a12: 0xa0000000, 0x7a13: 0xa0000000, + 0x7a14: 0xa0000000, 0x7a15: 0xa0000000, 0x7a16: 0xa0000000, 0x7a17: 0xa0000000, + 0x7a18: 0xa0000000, 0x7a19: 0xa0000000, 0x7a1a: 0xa0000000, 0x7a1b: 0xa0000000, + 0x7a1c: 0xa0000000, 0x7a1d: 0xa0000000, 0x7a1e: 0xa0000000, 0x7a1f: 0xa0000000, + 0x7a20: 0x40021220, 0x7a21: 0x4002ba20, 0x7a22: 0x4003e020, 0x7a23: 0x4004ea20, + 0x7a24: 0x4027de20, 0x7a25: 0x4004ec20, 0x7a26: 0x4004e620, 0x7a27: 0x4003d220, + 0x7a28: 0x4003f420, 0x7a29: 0x4003f620, 0x7a2a: 0x4004d820, 0x7a2b: 0x40093820, + 0x7a2c: 0x40024020, 0x7a2d: 0x40021a20, 0x7a2e: 0x4002e420, 0x7a2f: 0x4004e220, + 0x7a30: 0x4029cc20, 0x7a31: 0x4029ce20, 0x7a32: 0x4029d020, 0x7a33: 0x4029d220, + 0x7a34: 0x4029d420, 0x7a35: 0x4029d620, 0x7a36: 0x4029d820, 0x7a37: 0x4029da20, + 0x7a38: 0x4029dc20, 0x7a39: 0x4029de20, 0x7a3a: 0x40026c20, 0x7a3b: 0x40026220, + 0x7a3c: 0x40094020, 0x7a3d: 0xc32f0851, 0x7a3e: 0x40094420, 0x7a3f: 0x4002c420, + // Block 0x1e9, offset 0x7a40 + 0x7a40: 0x4004d620, 0x7a41: 0xc38b09c3, 0x7a42: 0x002c0a88, 0x7a43: 0x002c3a88, + 0x7a44: 0x002c6288, 0x7a45: 0xc3920a11, 0x7a46: 0x002d0888, 0x7a47: 0x002d2288, + 0x7a48: 0x002d6888, 0x7a49: 0x002d9a88, 0x7a4a: 0x002dcc88, 0x7a4b: 0x002dfe88, + 0x7a4c: 0xc0030002, 0x7a4d: 0x002e8288, 0x7a4e: 0x002e9e88, 0x7a4f: 0xc3970951, + 0x7a50: 0x002f2c88, 0x7a51: 0x002f5688, 0x7a52: 0x002f7a88, 0x7a53: 0x002fe688, + 0x7a54: 0x00302c88, 0x7a55: 0xc3840951, 0x7a56: 0x0030be88, 0x7a57: 0x0030e288, + 0x7a58: 0x0030f688, 0x7a59: 0x00310088, 0x7a5a: 0x00312a88, 0x7a5b: 0x4003f820, + 0x7a5c: 0x4004e420, 0x7a5d: 0x4003fa20, 0x7a5e: 0x40062420, 0x7a5f: 0x40021620, + 0x7a60: 0x40061e20, 0x7a61: 0xc3870982, 0x7a62: 0x402c0a20, 0x7a63: 0x402c3a20, + 0x7a64: 0x402c6220, 0x7a65: 0xc3900a11, 0x7a66: 0x402d0820, 0x7a67: 0x402d2220, + 0x7a68: 0x402d6820, 0x7a69: 0x402d9a20, 0x7a6a: 0x402dcc20, 0x7a6b: 0x402dfe20, + 0x7a6c: 0xc0000002, 0x7a6d: 0x402e8220, 0x7a6e: 0x402e9e20, 0x7a6f: 0xc3940951, + 0x7a70: 0x402f2c20, 0x7a71: 0x402f5620, 0x7a72: 0x402f7a20, 0x7a73: 0x402fe620, + 0x7a74: 0x40302c20, 0x7a75: 0xc3810951, 0x7a76: 0x4030be20, 0x7a77: 0x4030e220, + 0x7a78: 0x4030f620, 0x7a79: 0x40310020, 0x7a7a: 0x40312a20, 0x7a7b: 0x4003fc20, + 0x7a7c: 0x40094820, 0x7a7d: 0x4003fe20, 0x7a7e: 0x40094c20, 0x7a7f: 0xa0000000, + // Block 0x1ea, offset 0x7a80 + 0x7a80: 0xe00008f5, 0x7a81: 0xe00008ef, 0x7a82: 0xe0000921, 0x7a83: 0xe0000969, + 0x7a84: 0x00320ca3, 0x7a85: 0x00321083, 0x7a86: 0x00320c83, 0x7a87: 0xe0000a53, + 0x7a88: 0xe0000ae8, 0x7a89: 0xe0000ae2, 0x7a8a: 0xe0000af4, 0x7a8b: 0xe0000b20, + 0x7a8c: 0xe0000c2b, 0x7a8d: 0xe0000c25, 0x7a8e: 0xe0000c37, 0x7a8f: 0xe0000c43, + 0x7a90: 0x002c62c3, 0x7a91: 0xe0000d63, 0x7a92: 0xe0000d9a, 0x7a93: 0xe0000d94, + 0x7a94: 0xe0000da6, 0x7a95: 0xe0000de6, 0x7a96: 0x00320ea3, 0x7a97: 0x40093e20, + 0x7a98: 0x00320e83, 0x7a99: 0xe0000fe1, 0x7a9a: 0xe0000fdb, 0x7a9b: 0xe0000fed, + 0x7a9c: 0x003100a3, 0x7a9d: 0xe0001102, 0x7a9e: 0xe000266d, 0x7a9f: 0xe0000f7b, + 0x7aa0: 0xe00008f2, 0x7aa1: 0xe00008ec, 0x7aa2: 0xe000091e, 0x7aa3: 0xe0000966, + 0x7aa4: 0x40320c21, 0x7aa5: 0x40321020, 0x7aa6: 0x40320c20, 0x7aa7: 0xe0000a4d, + 0x7aa8: 0xe0000ae5, 0x7aa9: 0xe0000adf, 0x7aaa: 0xe0000af1, 0x7aab: 0xe0000b1d, + 0x7aac: 0xe0000c28, 0x7aad: 0xe0000c22, 0x7aae: 0xe0000c34, 0x7aaf: 0xe0000c40, + 0x7ab0: 0x402c6222, 0x7ab1: 0xe0000d60, 0x7ab2: 0xe0000d97, 0x7ab3: 0xe0000d91, + 0x7ab4: 0xe0000da3, 0x7ab5: 0xe0000de3, 0x7ab6: 0x40320e21, 0x7ab7: 0x40093c20, + 0x7ab8: 0x40320e20, 0x7ab9: 0xe0000fde, 0x7aba: 0xe0000fd8, 0x7abb: 0xe0000fea, + 0x7abc: 0x40310021, 0x7abd: 0xe00010ff, 0x7abe: 0xe000266a, 0x7abf: 0xe0001114, + // Block 0x1eb, offset 0x7ac0 + 0x7ac0: 0xe0000983, 0x7ac1: 0xe0000980, 0x7ac2: 0xe00008fb, 0x7ac3: 0xe00008f8, + 0x7ac4: 0xe000097d, 0x7ac5: 0xe000097a, 0x7ac6: 0xe0000a38, 0x7ac7: 0xe0000a35, + 0x7ac8: 0xe0000a3e, 0x7ac9: 0xe0000a3b, 0x7aca: 0xe0000a4a, 0x7acb: 0xe0000a47, + 0x7acc: 0xe0000a44, 0x7acd: 0xe0000a41, 0x7ace: 0xe0000a86, 0x7acf: 0xe0000a83, + 0x7ad0: 0x002c62a3, 0x7ad1: 0x402c6221, 0x7ad2: 0xe0000b46, 0x7ad3: 0xe0000b43, + 0x7ad4: 0xe0000aee, 0x7ad5: 0xe0000aeb, 0x7ad6: 0xe0000b2c, 0x7ad7: 0xe0000b29, + 0x7ad8: 0x00320cc3, 0x7ad9: 0x40320c22, 0x7ada: 0xe0000b1a, 0x7adb: 0xe0000b17, + 0x7adc: 0xe0000bb8, 0x7add: 0xe0000bb5, 0x7ade: 0xe0000bb2, 0x7adf: 0xe0000baf, + 0x7ae0: 0xe0000bc4, 0x7ae1: 0xe0000bc1, 0x7ae2: 0xe0000bca, 0x7ae3: 0xe0000bc7, + 0x7ae4: 0xe0000bee, 0x7ae5: 0xe0000beb, 0x7ae6: 0xe0000c1b, 0x7ae7: 0xe0000c18, + 0x7ae8: 0xe0000c51, 0x7ae9: 0xe0000c4e, 0x7aea: 0xe0000c60, 0x7aeb: 0xe0000c5d, + 0x7aec: 0xe0000c31, 0x7aed: 0xe0000c2e, 0x7aee: 0xe0000c5a, 0x7aef: 0xe0000c57, + 0x7af0: 0xe0000c54, 0x7af1: 0x402da220, 0x7af2: 0xf0000a0a, 0x7af3: 0xf0000404, + 0x7af4: 0xe0000c8a, 0x7af5: 0xe0000c87, 0x7af6: 0xe0000c9f, 0x7af7: 0xe0000c9c, + 0x7af8: 0x402f7220, 0x7af9: 0xe0000ccc, 0x7afa: 0xe0000cc9, 0x7afb: 0xe0000cd8, + 0x7afc: 0xe0000cd5, 0x7afd: 0xe0000cd2, 0x7afe: 0xe0000ccf, 0x7aff: 0xe0000d04, + // Block 0x1ec, offset 0x7b00 + 0x7b00: 0xe0000cfe, 0x7b01: 0xe0000cf8, 0x7b02: 0xe0000cf5, 0x7b03: 0xe0000d51, + 0x7b04: 0xe0000d4e, 0x7b05: 0xe0000d6f, 0x7b06: 0xe0000d6c, 0x7b07: 0xe0000d5d, + 0x7b08: 0xe0000d5a, 0x7b09: 0xf0000404, 0x7b0a: 0x002eda88, 0x7b0b: 0x402eda20, + 0x7b0c: 0xe0000e2e, 0x7b0d: 0xe0000e2b, 0x7b0e: 0xe0000da0, 0x7b0f: 0xe0000d9d, + 0x7b10: 0x00320ec3, 0x7b11: 0x40320e22, 0x7b12: 0x00320ee3, 0x7b13: 0x40320e23, + 0x7b14: 0xe0000eca, 0x7b15: 0xe0000ec7, 0x7b16: 0xe0000edc, 0x7b17: 0xe0000ed9, + 0x7b18: 0xe0000ed0, 0x7b19: 0xe0000ecd, 0x7b1a: 0xe0000f1f, 0x7b1b: 0xe0000f1c, + 0x7b1c: 0xe0000f2d, 0x7b1d: 0xe0000f2a, 0x7b1e: 0xe0000f47, 0x7b1f: 0xe0000f44, + 0x7b20: 0xe0000f33, 0x7b21: 0xe0000f30, 0x7b22: 0xe0000f99, 0x7b23: 0xe0000f96, + 0x7b24: 0xe0000f8a, 0x7b25: 0xe0000f87, 0x7b26: 0x00303688, 0x7b27: 0x40303620, + 0x7b28: 0xe000102b, 0x7b29: 0xe0001028, 0x7b2a: 0xe000103f, 0x7b2b: 0xe000103c, + 0x7b2c: 0xe0000fe7, 0x7b2d: 0xe0000fe4, 0x7b2e: 0xe0000ff9, 0x7b2f: 0xe0000ff6, + 0x7b30: 0x003100c3, 0x7b31: 0x40310022, 0x7b32: 0xe0001039, 0x7b33: 0xe0001036, + 0x7b34: 0xe00010d8, 0x7b35: 0xe00010d5, 0x7b36: 0xe000110e, 0x7b37: 0xe000110b, + 0x7b38: 0xe0001117, 0x7b39: 0xe000113b, 0x7b3a: 0xe0001138, 0x7b3b: 0xe000114d, + 0x7b3c: 0xe000114a, 0x7b3d: 0xe0001147, 0x7b3e: 0xe0001144, 0x7b3f: 0xe0000f64, + // Block 0x1ed, offset 0x7b40 + 0x7b40: 0x40321220, 0x7b41: 0x40321a20, 0x7b42: 0x40322220, 0x7b43: 0x40322a20, + 0x7b44: 0xe0000ad5, 0x7b45: 0xe0000ad1, 0x7b46: 0xe0000acd, 0x7b47: 0xf0000a0a, + 0x7b48: 0xf000040a, 0x7b49: 0xf0000404, 0x7b4a: 0xf0000a0a, 0x7b4b: 0xf000040a, + 0x7b4c: 0xf0000404, 0x7b4d: 0xe0000947, 0x7b4e: 0xe0000944, 0x7b4f: 0xe0000c3d, + 0x7b50: 0xe0000c3a, 0x7b51: 0xe0000dcc, 0x7b52: 0xe0000dc9, 0x7b53: 0xe0000ff3, + 0x7b54: 0xe0000ff0, 0x7b55: 0xe0002685, 0x7b56: 0xe0002682, 0x7b57: 0xe0002673, + 0x7b58: 0xe0002670, 0x7b59: 0xe000267f, 0x7b5a: 0xe000267c, 0x7b5b: 0xe0002679, + 0x7b5c: 0xe0002676, 0x7b5d: 0x402cae20, 0x7b5e: 0xe0002697, 0x7b5f: 0xe0002694, + 0x7b60: 0xe0000976, 0x7b61: 0xe0000972, 0x7b62: 0xe0002691, 0x7b63: 0xe000268e, + 0x7b64: 0x002d3a88, 0x7b65: 0x402d3a20, 0x7b66: 0xe0000bbe, 0x7b67: 0xe0000bbb, + 0x7b68: 0xe0000c99, 0x7b69: 0xe0000c96, 0x7b6a: 0xe0000e20, 0x7b6b: 0xe0000e1d, + 0x7b6c: 0xe0000e27, 0x7b6d: 0xe0000e23, 0x7b6e: 0xe0001162, 0x7b6f: 0xe000115f, + 0x7b70: 0xe0000c8d, 0x7b71: 0xf0000a0a, 0x7b72: 0xf000040a, 0x7b73: 0xf0000404, + 0x7b74: 0xe0000bac, 0x7b75: 0xe0000ba9, 0x7b76: 0x002d7888, 0x7b77: 0x00319488, + 0x7b78: 0xe0000d57, 0x7b79: 0xe0000d54, 0x7b7a: 0xe00026af, 0x7b7b: 0xe00026ac, + 0x7b7c: 0xe000268b, 0x7b7d: 0xe0002688, 0x7b7e: 0xe000269d, 0x7b7f: 0xe000269a, + // Block 0x1ee, offset 0x7b80 + 0x7b80: 0xe000098f, 0x7b81: 0xe000098c, 0x7b82: 0xe0000995, 0x7b83: 0xe0000992, + 0x7b84: 0xe0000b62, 0x7b85: 0xe0000b5f, 0x7b86: 0xe0000b68, 0x7b87: 0xe0000b65, + 0x7b88: 0xe0000c6c, 0x7b89: 0xe0000c69, 0x7b8a: 0xe0000c72, 0x7b8b: 0xe0000c6f, + 0x7b8c: 0xe0000e4a, 0x7b8d: 0xe0000e47, 0x7b8e: 0xe0000e50, 0x7b8f: 0xe0000e4d, + 0x7b90: 0xe0000ee8, 0x7b91: 0xe0000ee5, 0x7b92: 0xe0000eee, 0x7b93: 0xe0000eeb, + 0x7b94: 0xe0001053, 0x7b95: 0xe0001050, 0x7b96: 0xe0001059, 0x7b97: 0xe0001056, + 0x7b98: 0xe0000f61, 0x7b99: 0xe0000f5e, 0x7b9a: 0xe0000fa5, 0x7b9b: 0xe0000fa2, + 0x7b9c: 0x00312288, 0x7b9d: 0x40312220, 0x7b9e: 0xe0000bf4, 0x7b9f: 0xe0000bf1, + 0x7ba0: 0x002ebc88, 0x7ba1: 0x402c8c20, 0x7ba2: 0x002f2288, 0x7ba3: 0x402f2220, + 0x7ba4: 0x00314088, 0x7ba5: 0x40314020, 0x7ba6: 0xe000096f, 0x7ba7: 0xe000096c, + 0x7ba8: 0xe0000b32, 0x7ba9: 0xe0000b2f, 0x7baa: 0xe00026a9, 0x7bab: 0xe00026a6, + 0x7bac: 0xe0000dfd, 0x7bad: 0xe0000df9, 0x7bae: 0xe0000e04, 0x7baf: 0xe0000e01, + 0x7bb0: 0xe0000e0b, 0x7bb1: 0xe0000e07, 0x7bb2: 0xe0001129, 0x7bb3: 0xe0001126, + 0x7bb4: 0x402e5e20, 0x7bb5: 0x402ed020, 0x7bb6: 0x40305a20, 0x7bb7: 0x402dd420, + 0x7bb8: 0xe0000abf, 0x7bb9: 0xe0000ec4, 0x7bba: 0x002be888, 0x7bbb: 0x002c4488, + 0x7bbc: 0x402c4420, 0x7bbd: 0x002e3888, 0x7bbe: 0x00303e88, 0x7bbf: 0x402ffc20, + // Block 0x1ef, offset 0x7bc0 + 0x7bc0: 0x402c2820, 0x7bc1: 0x402c7020, 0x7bc2: 0x402d1420, 0x7bc3: 0x402d4220, + 0x7bc4: 0x402e0820, 0x7bc5: 0x402e5220, 0x7bc6: 0x402e8e20, 0x7bc7: 0x402ec620, + 0x7bc8: 0x402f3c20, 0x7bc9: 0x402faa20, 0x7bca: 0x402ff220, 0x7bcb: 0x40301020, + 0x7bcc: 0x4030ca20, 0x7bcd: 0x4030fe20, 0x7bce: 0x40313e20, 0x7bcf: 0x402bea20, + 0x7bd0: 0x402c0020, 0x7bd1: 0x402c8220, 0x7bd2: 0x402caa20, 0x7bd3: 0x402cca20, + 0x7bd4: 0x402ce420, 0x7bd5: 0x402cc020, 0x7bd6: 0x402dc020, 0x7bd7: 0x402f0620, + 0x7bd8: 0x40302220, 0x7bd9: 0x40308620, 0x7bda: 0x40317620, 0x7bdb: 0x002c0294, + 0x7bdc: 0x002c3a94, 0x7bdd: 0x002c5694, 0x7bde: 0xe0002667, 0x7bdf: 0x002cdc94, + 0x7be0: 0x002d0894, 0x7be1: 0x002dee94, 0x7be2: 0x002d2a94, 0x7be3: 0x00308894, + 0x7be4: 0x002db694, 0x7be5: 0x002dc294, 0x7be6: 0x002daa94, 0x7be7: 0x002dbe94, + 0x7be8: 0x002de694, 0x7be9: 0x002e5494, 0x7bea: 0x002e5294, 0x7beb: 0x002e2a94, + 0x7bec: 0x002e9094, 0x7bed: 0x0030ac94, 0x7bee: 0x002eb494, 0x7bef: 0x002ec894, + 0x7bf0: 0x002ea694, 0x7bf1: 0x002f1094, 0x7bf2: 0x002f4c94, 0x7bf3: 0x002ff494, + 0x7bf4: 0x00300894, 0x7bf5: 0x00304294, 0x7bf6: 0x00307c94, 0x7bf7: 0x0030b494, + 0x7bf8: 0x00307494, 0x7bf9: 0x0030cc94, 0x7bfa: 0x0030da94, 0x7bfb: 0x00312a94, + 0x7bfc: 0x00314894, 0x7bfd: 0x00315094, 0x7bfe: 0x00316494, 0x7bff: 0x00326a94, + // Block 0x1f0, offset 0x7c00 + 0x7c00: 0xe0000d24, 0x7c01: 0xe0000d21, 0x7c02: 0xe0000d2a, 0x7c03: 0xe0000d27, + 0x7c04: 0xe0000d69, 0x7c05: 0xe0000d66, 0x7c06: 0xe0000d7b, 0x7c07: 0xe0000d78, + 0x7c08: 0xe0000d87, 0x7c09: 0xe0000d84, 0x7c0a: 0xe0000d81, 0x7c0b: 0xe0000d7e, + 0x7c0c: 0xe0000ded, 0x7c0d: 0xe0000de9, 0x7c0e: 0xe00026a3, 0x7c0f: 0xe00026a0, + 0x7c10: 0xe0000e3d, 0x7c11: 0xe0000e39, 0x7c12: 0xe0000e35, 0x7c13: 0xe0000e31, + 0x7c14: 0xe0000ea7, 0x7c15: 0xe0000ea4, 0x7c16: 0xe0000ead, 0x7c17: 0xe0000eaa, + 0x7c18: 0xe0000ed6, 0x7c19: 0xe0000ed3, 0x7c1a: 0xe0000ef4, 0x7c1b: 0xe0000ef1, + 0x7c1c: 0xe0000efb, 0x7c1d: 0xe0000ef7, 0x7c1e: 0xe0000f02, 0x7c1f: 0xe0000eff, + 0x7c20: 0xe0000f41, 0x7c21: 0xe0000f3e, 0x7c22: 0xe0000f53, 0x7c23: 0xe0000f50, + 0x7c24: 0xe0000f26, 0x7c25: 0xe0000f22, 0x7c26: 0xe0000f3a, 0x7c27: 0xe0000f36, + 0x7c28: 0xe0000f5a, 0x7c29: 0xe0000f56, 0x7c2a: 0xe0000f93, 0x7c2b: 0xe0000f90, + 0x7c2c: 0xe0000f9f, 0x7c2d: 0xe0000f9c, 0x7c2e: 0xe0000fb1, 0x7c2f: 0xe0000fae, + 0x7c30: 0xe0000fab, 0x7c31: 0xe0000fa8, 0x7c32: 0xe0001093, 0x7c33: 0xe0001090, + 0x7c34: 0xe000109f, 0x7c35: 0xe000109c, 0x7c36: 0xe0001099, 0x7c37: 0xe0001096, + 0x7c38: 0xe0001032, 0x7c39: 0xe000102e, 0x7c3a: 0xe0002685, 0x7c3b: 0xe0002682, + 0x7c3c: 0xe00010a9, 0x7c3d: 0xe00010a6, 0x7c3e: 0xe00010af, 0x7c3f: 0xe00010ac, + // Block 0x1f1, offset 0x7c40 + 0x7c40: 0xe00009bc, 0x7c41: 0xe00009c0, 0x7c42: 0x002c3a8b, 0x7c43: 0xf0000a04, + 0x7c44: 0x40081c20, 0x7c45: 0xe0000a5e, 0x7c46: 0xe0000a62, 0x7c47: 0x002cc28a, + 0x7c48: 0x40081e20, 0x7c49: 0xf0000a04, 0x7c4a: 0x002d2285, 0x7c4b: 0x002d688b, + 0x7c4c: 0x002d688b, 0x7c4d: 0x002d688b, 0x7c4e: 0x002d6885, 0x7c4f: 0xf0000202, + 0x7c50: 0x002d9a8b, 0x7c51: 0x002d9a8b, 0x7c52: 0x002e228b, 0x7c53: 0x002e2285, + 0x7c54: 0x40082020, 0x7c55: 0x002e9e8b, 0x7c56: 0xf000040a, 0x7c57: 0x40082220, + 0x7c58: 0x40082420, 0x7c59: 0x002f2c8b, 0x7c5a: 0x002f568b, 0x7c5b: 0x002f7a8b, + 0x7c5c: 0x002f7a8b, 0x7c5d: 0x002f7a8b, 0x7c5e: 0x40082620, 0x7c5f: 0x40082820, + 0x7c60: 0xf0001414, 0x7c61: 0xe0000fbd, 0x7c62: 0xf0001414, 0x7c63: 0x40082a20, + 0x7c64: 0x00312a8b, 0x7c65: 0x40082c20, 0x7c66: 0x0032a288, 0x7c67: 0x40082e20, + 0x7c68: 0x00312a8b, 0x7c69: 0x40083020, 0x7c6a: 0x002dfe88, 0x7c6b: 0x00321083, + 0x7c6c: 0x002c0a8b, 0x7c6d: 0x002c3a8b, 0x7c6e: 0x40083220, 0x7c6f: 0x002c9885, + 0x7c70: 0x002c988b, 0x7c71: 0x002d088b, 0x7c72: 0x002d1e88, 0x7c73: 0x002e828b, + 0x7c74: 0x002ee285, 0x7c75: 0x00389084, 0x7c76: 0x00389284, 0x7c77: 0x00389484, + 0x7c78: 0x00389684, 0x7c79: 0x002d9a85, 0x7c7a: 0x40083420, 0x7c7b: 0xe0000b95, + 0x7c7c: 0x00327e85, 0x7c7d: 0x00325685, 0x7c7e: 0x0032568b, 0x7c7f: 0x00327e8b, + // Block 0x1f2, offset 0x7c80 + 0x7c80: 0xa0000000, 0x7c81: 0xa0000000, 0x7c82: 0xa0000000, 0x7c83: 0xa0000000, + 0x7c84: 0xa0000000, 0x7c85: 0xa0000000, 0x7c86: 0xa0000000, 0x7c87: 0xa0000000, + 0x7c88: 0xa0000000, 0x7c89: 0x40020020, 0x7c8a: 0x40020220, 0x7c8b: 0x40020420, + 0x7c8c: 0x40020620, 0x7c8d: 0x40020820, 0x7c8e: 0xa0000000, 0x7c8f: 0xa0000000, + 0x7c90: 0xa0000000, 0x7c91: 0xa0000000, 0x7c92: 0xa0000000, 0x7c93: 0xa0000000, + 0x7c94: 0xa0000000, 0x7c95: 0xa0000000, 0x7c96: 0xa0000000, 0x7c97: 0xa0000000, + 0x7c98: 0xa0000000, 0x7c99: 0xa0000000, 0x7c9a: 0xa0000000, 0x7c9b: 0xa0000000, + 0x7c9c: 0xa0000000, 0x7c9d: 0xa0000000, 0x7c9e: 0xa0000000, 0x7c9f: 0xa0000000, + 0x7ca0: 0x40021220, 0x7ca1: 0x4002ba20, 0x7ca2: 0x4003e020, 0x7ca3: 0x4004ea20, + 0x7ca4: 0x4027de20, 0x7ca5: 0x4004ec20, 0x7ca6: 0x4004e620, 0x7ca7: 0x4003d220, + 0x7ca8: 0x4003f420, 0x7ca9: 0x4003f620, 0x7caa: 0x4004d820, 0x7cab: 0x40093820, + 0x7cac: 0x40024020, 0x7cad: 0x40021a20, 0x7cae: 0x4002e420, 0x7caf: 0x4004e220, + 0x7cb0: 0x4029cc20, 0x7cb1: 0x4029ce20, 0x7cb2: 0x4029d020, 0x7cb3: 0x4029d220, + 0x7cb4: 0x4029d420, 0x7cb5: 0x4029d620, 0x7cb6: 0x4029d820, 0x7cb7: 0x4029da20, + 0x7cb8: 0x4029dc20, 0x7cb9: 0x4029de20, 0x7cba: 0x40026c20, 0x7cbb: 0x40026220, + 0x7cbc: 0x40094020, 0x7cbd: 0xc32f0851, 0x7cbe: 0x40094420, 0x7cbf: 0x4002c420, + // Block 0x1f3, offset 0x7cc0 + 0x7cc0: 0x4004d620, 0x7cc1: 0xc39c0071, 0x7cc2: 0x002c0a88, 0x7cc3: 0x002c3a88, + 0x7cc4: 0x002c6288, 0x7cc5: 0x002c9888, 0x7cc6: 0x002d0888, 0x7cc7: 0x002d2288, + 0x7cc8: 0x002d6888, 0x7cc9: 0x002d9a88, 0x7cca: 0x002dcc88, 0x7ccb: 0x002dfe88, + 0x7ccc: 0xc0030002, 0x7ccd: 0x002e8288, 0x7cce: 0x002e9e88, 0x7ccf: 0xc3a00071, + 0x7cd0: 0x002f2c88, 0x7cd1: 0x002f5688, 0x7cd2: 0x002f7a88, 0x7cd3: 0x002fe688, + 0x7cd4: 0x00302c88, 0x7cd5: 0xc3a40071, 0x7cd6: 0x0030be88, 0x7cd7: 0x0030e288, + 0x7cd8: 0x0030f688, 0x7cd9: 0x00310088, 0x7cda: 0x00312a88, 0x7cdb: 0x4003f820, + 0x7cdc: 0x4004e420, 0x7cdd: 0x4003fa20, 0x7cde: 0x40062420, 0x7cdf: 0x40021620, + 0x7ce0: 0x40061e20, 0x7ce1: 0xc39a0071, 0x7ce2: 0x402c0a20, 0x7ce3: 0x402c3a20, + 0x7ce4: 0x402c6220, 0x7ce5: 0x402c9820, 0x7ce6: 0x402d0820, 0x7ce7: 0x402d2220, + 0x7ce8: 0x402d6820, 0x7ce9: 0x402d9a20, 0x7cea: 0x402dcc20, 0x7ceb: 0x402dfe20, + 0x7cec: 0xc0000002, 0x7ced: 0x402e8220, 0x7cee: 0x402e9e20, 0x7cef: 0xc39e0071, + 0x7cf0: 0x402f2c20, 0x7cf1: 0x402f5620, 0x7cf2: 0x402f7a20, 0x7cf3: 0x402fe620, + 0x7cf4: 0x40302c20, 0x7cf5: 0xc3a20071, 0x7cf6: 0x4030be20, 0x7cf7: 0x4030e220, + 0x7cf8: 0x4030f620, 0x7cf9: 0x40310020, 0x7cfa: 0x40312a20, 0x7cfb: 0x4003fc20, + 0x7cfc: 0x40094820, 0x7cfd: 0x4003fe20, 0x7cfe: 0x40094c20, 0x7cff: 0xa0000000, + // Block 0x1f4, offset 0x7d00 + 0x7d00: 0xe00008f5, 0x7d01: 0xe00008ef, 0x7d02: 0xe0000921, 0x7d03: 0xe0000969, + 0x7d04: 0xe00026b5, 0x7d05: 0xe000094d, 0x7d06: 0xe00009dd, 0x7d07: 0xe0000a53, + 0x7d08: 0xe0000ae8, 0x7d09: 0xe0000ae2, 0x7d0a: 0xe0000af4, 0x7d0b: 0xe0000b20, + 0x7d0c: 0xe0000c2b, 0x7d0d: 0xe0000c25, 0x7d0e: 0xe0000c37, 0x7d0f: 0xe0000c43, + 0x7d10: 0xe0000ab3, 0x7d11: 0xe0000d63, 0x7d12: 0xe0000d9a, 0x7d13: 0xe0000d94, + 0x7d14: 0xe0000da6, 0x7d15: 0xe0000de6, 0x7d16: 0xe00026c3, 0x7d17: 0x40093e20, + 0x7d18: 0xe0000e12, 0x7d19: 0xe0000fe1, 0x7d1a: 0xe0000fdb, 0x7d1b: 0xe0000fed, + 0x7d1c: 0xe00026d9, 0x7d1d: 0xe0001102, 0x7d1e: 0x00318888, 0x7d1f: 0xe0000f7b, + 0x7d20: 0xe00008f2, 0x7d21: 0xe00008ec, 0x7d22: 0xe000091e, 0x7d23: 0xe0000966, + 0x7d24: 0xe00026b2, 0x7d25: 0xe000094a, 0x7d26: 0xe00009d5, 0x7d27: 0xe0000a4d, + 0x7d28: 0xe0000ae5, 0x7d29: 0xe0000adf, 0x7d2a: 0xe0000af1, 0x7d2b: 0xe0000b1d, + 0x7d2c: 0xe0000c28, 0x7d2d: 0xe0000c22, 0x7d2e: 0xe0000c34, 0x7d2f: 0xe0000c40, + 0x7d30: 0xe0000aad, 0x7d31: 0xe0000d60, 0x7d32: 0xe0000d97, 0x7d33: 0xe0000d91, + 0x7d34: 0xe0000da3, 0x7d35: 0xe0000de3, 0x7d36: 0xe00026c0, 0x7d37: 0x40093c20, + 0x7d38: 0xe0000e0f, 0x7d39: 0xe0000fde, 0x7d3a: 0xe0000fd8, 0x7d3b: 0xe0000fea, + 0x7d3c: 0xe00026d6, 0x7d3d: 0xe00010ff, 0x7d3e: 0x40318820, 0x7d3f: 0xe0001114, + // Block 0x1f5, offset 0x7d40 + 0x7d40: 0x40321220, 0x7d41: 0x40321a20, 0x7d42: 0x40322220, 0x7d43: 0x40322a20, + 0x7d44: 0xe0000ad5, 0x7d45: 0xe0000ad1, 0x7d46: 0xe0000acd, 0x7d47: 0xf0000a0a, + 0x7d48: 0xf000040a, 0x7d49: 0xf0000404, 0x7d4a: 0xf0000a0a, 0x7d4b: 0xf000040a, + 0x7d4c: 0xf0000404, 0x7d4d: 0xe0000947, 0x7d4e: 0xe0000944, 0x7d4f: 0xe0000c3d, + 0x7d50: 0xe0000c3a, 0x7d51: 0xe0000dcc, 0x7d52: 0xe0000dc9, 0x7d53: 0xe0000ff3, + 0x7d54: 0xe0000ff0, 0x7d55: 0xe00026f8, 0x7d56: 0xe00026f4, 0x7d57: 0xe00026e0, + 0x7d58: 0xe00026dc, 0x7d59: 0xe00026f0, 0x7d5a: 0xe00026ec, 0x7d5b: 0xe00026e8, + 0x7d5c: 0xe00026e4, 0x7d5d: 0x402cae20, 0x7d5e: 0xe00026bc, 0x7d5f: 0xe00026b8, + 0x7d60: 0xe0000976, 0x7d61: 0xe0000972, 0x7d62: 0xe00009f4, 0x7d63: 0xe00009ef, + 0x7d64: 0x002d3a88, 0x7d65: 0x402d3a20, 0x7d66: 0xe0000bbe, 0x7d67: 0xe0000bbb, + 0x7d68: 0xe0000c99, 0x7d69: 0xe0000c96, 0x7d6a: 0xe0000e20, 0x7d6b: 0xe0000e1d, + 0x7d6c: 0xe0000e27, 0x7d6d: 0xe0000e23, 0x7d6e: 0xe0001162, 0x7d6f: 0xe000115f, + 0x7d70: 0xe0000c8d, 0x7d71: 0xf0000a0a, 0x7d72: 0xf000040a, 0x7d73: 0xf0000404, + 0x7d74: 0xe0000bac, 0x7d75: 0xe0000ba9, 0x7d76: 0x002d7888, 0x7d77: 0x00319488, + 0x7d78: 0xe0000d57, 0x7d79: 0xe0000d54, 0x7d7a: 0xe0000954, 0x7d7b: 0xe0000950, + 0x7d7c: 0xe00009ea, 0x7d7d: 0xe00009e5, 0x7d7e: 0xe0000e19, 0x7d7f: 0xe0000e15, + // Block 0x1f6, offset 0x7d80 + 0x7d80: 0xe000098f, 0x7d81: 0xe000098c, 0x7d82: 0xe0000995, 0x7d83: 0xe0000992, + 0x7d84: 0xe0000b62, 0x7d85: 0xe0000b5f, 0x7d86: 0xe0000b68, 0x7d87: 0xe0000b65, + 0x7d88: 0xe0000c6c, 0x7d89: 0xe0000c69, 0x7d8a: 0xe0000c72, 0x7d8b: 0xe0000c6f, + 0x7d8c: 0xe0000e4a, 0x7d8d: 0xe0000e47, 0x7d8e: 0xe0000e50, 0x7d8f: 0xe0000e4d, + 0x7d90: 0xe0000ee8, 0x7d91: 0xe0000ee5, 0x7d92: 0xe0000eee, 0x7d93: 0xe0000eeb, + 0x7d94: 0xe0001053, 0x7d95: 0xe0001050, 0x7d96: 0xe0001059, 0x7d97: 0xe0001056, + 0x7d98: 0xe0000f61, 0x7d99: 0xe0000f5e, 0x7d9a: 0xe0000fa5, 0x7d9b: 0xe0000fa2, + 0x7d9c: 0x00312288, 0x7d9d: 0x40312220, 0x7d9e: 0xe0000bf4, 0x7d9f: 0xe0000bf1, + 0x7da0: 0x002ebc88, 0x7da1: 0x402c8c20, 0x7da2: 0x002f2288, 0x7da3: 0x402f2220, + 0x7da4: 0x00314088, 0x7da5: 0x40314020, 0x7da6: 0xe000096f, 0x7da7: 0xe000096c, + 0x7da8: 0xe0000b32, 0x7da9: 0xe0000b2f, 0x7daa: 0xe00026d2, 0x7dab: 0xe00026ce, + 0x7dac: 0xe0000dfd, 0x7dad: 0xe0000df9, 0x7dae: 0xe0000e04, 0x7daf: 0xe0000e01, + 0x7db0: 0xe0000e0b, 0x7db1: 0xe0000e07, 0x7db2: 0xe0001129, 0x7db3: 0xe0001126, + 0x7db4: 0x402e5e20, 0x7db5: 0x402ed020, 0x7db6: 0x40305a20, 0x7db7: 0x402dd420, + 0x7db8: 0xe0000abf, 0x7db9: 0xe0000ec4, 0x7dba: 0x002be888, 0x7dbb: 0x002c4488, + 0x7dbc: 0x402c4420, 0x7dbd: 0x002e3888, 0x7dbe: 0x00303e88, 0x7dbf: 0x402ffc20, + // Block 0x1f7, offset 0x7dc0 + 0x7dc0: 0xe0000d24, 0x7dc1: 0xe0000d21, 0x7dc2: 0xe0000d2a, 0x7dc3: 0xe0000d27, + 0x7dc4: 0xe0000d69, 0x7dc5: 0xe0000d66, 0x7dc6: 0xe0000d7b, 0x7dc7: 0xe0000d78, + 0x7dc8: 0xe0000d87, 0x7dc9: 0xe0000d84, 0x7dca: 0xe0000d81, 0x7dcb: 0xe0000d7e, + 0x7dcc: 0xe0000ded, 0x7dcd: 0xe0000de9, 0x7dce: 0xe00026ca, 0x7dcf: 0xe00026c6, + 0x7dd0: 0xe0000e3d, 0x7dd1: 0xe0000e39, 0x7dd2: 0xe0000e35, 0x7dd3: 0xe0000e31, + 0x7dd4: 0xe0000ea7, 0x7dd5: 0xe0000ea4, 0x7dd6: 0xe0000ead, 0x7dd7: 0xe0000eaa, + 0x7dd8: 0xe0000ed6, 0x7dd9: 0xe0000ed3, 0x7dda: 0xe0000ef4, 0x7ddb: 0xe0000ef1, + 0x7ddc: 0xe0000efb, 0x7ddd: 0xe0000ef7, 0x7dde: 0xe0000f02, 0x7ddf: 0xe0000eff, + 0x7de0: 0xe0000f41, 0x7de1: 0xe0000f3e, 0x7de2: 0xe0000f53, 0x7de3: 0xe0000f50, + 0x7de4: 0xe0000f26, 0x7de5: 0xe0000f22, 0x7de6: 0xe0000f3a, 0x7de7: 0xe0000f36, + 0x7de8: 0xe0000f5a, 0x7de9: 0xe0000f56, 0x7dea: 0xe0000f93, 0x7deb: 0xe0000f90, + 0x7dec: 0xe0000f9f, 0x7ded: 0xe0000f9c, 0x7dee: 0xe0000fb1, 0x7def: 0xe0000fae, + 0x7df0: 0xe0000fab, 0x7df1: 0xe0000fa8, 0x7df2: 0xe0001093, 0x7df3: 0xe0001090, + 0x7df4: 0xe000109f, 0x7df5: 0xe000109c, 0x7df6: 0xe0001099, 0x7df7: 0xe0001096, + 0x7df8: 0xe0001032, 0x7df9: 0xe000102e, 0x7dfa: 0xe00026f8, 0x7dfb: 0xe00026f4, + 0x7dfc: 0xe00010a9, 0x7dfd: 0xe00010a6, 0x7dfe: 0xe00010af, 0x7dff: 0xe00010ac, + // Block 0x1f8, offset 0x7e00 + 0x7e00: 0xa0000000, 0x7e01: 0xa0000000, 0x7e02: 0xa0000000, 0x7e03: 0xa0000000, + 0x7e04: 0xa0000000, 0x7e05: 0xa0000000, 0x7e06: 0xa0000000, 0x7e07: 0xa0000000, + 0x7e08: 0xa0000000, 0x7e09: 0x40020020, 0x7e0a: 0x40020220, 0x7e0b: 0x40020420, + 0x7e0c: 0x40020620, 0x7e0d: 0x40020820, 0x7e0e: 0xa0000000, 0x7e0f: 0xa0000000, + 0x7e10: 0xa0000000, 0x7e11: 0xa0000000, 0x7e12: 0xa0000000, 0x7e13: 0xa0000000, + 0x7e14: 0xa0000000, 0x7e15: 0xa0000000, 0x7e16: 0xa0000000, 0x7e17: 0xa0000000, + 0x7e18: 0xa0000000, 0x7e19: 0xa0000000, 0x7e1a: 0xa0000000, 0x7e1b: 0xa0000000, + 0x7e1c: 0xa0000000, 0x7e1d: 0xa0000000, 0x7e1e: 0xa0000000, 0x7e1f: 0xa0000000, + 0x7e20: 0x40021220, 0x7e21: 0x4002ba20, 0x7e22: 0x4003e020, 0x7e23: 0x4004ea20, + 0x7e24: 0x4027de20, 0x7e25: 0x4004ec20, 0x7e26: 0x4004e620, 0x7e27: 0x4003d220, + 0x7e28: 0x4003f420, 0x7e29: 0x4003f620, 0x7e2a: 0x4004d820, 0x7e2b: 0x40093820, + 0x7e2c: 0x40024020, 0x7e2d: 0x40021a20, 0x7e2e: 0x4002e420, 0x7e2f: 0x4004e220, + 0x7e30: 0x4029cc20, 0x7e31: 0x4029ce20, 0x7e32: 0x4029d020, 0x7e33: 0x4029d220, + 0x7e34: 0x4029d420, 0x7e35: 0x4029d620, 0x7e36: 0x4029d820, 0x7e37: 0x4029da20, + 0x7e38: 0x4029dc20, 0x7e39: 0x4029de20, 0x7e3a: 0x40026c20, 0x7e3b: 0x40026220, + 0x7e3c: 0x40094020, 0x7e3d: 0xc32f0851, 0x7e3e: 0x40094420, 0x7e3f: 0x4002c420, + // Block 0x1f9, offset 0x7e40 + 0x7e40: 0x4004d620, 0x7e41: 0x002bde88, 0x7e42: 0x002c0a88, 0x7e43: 0x002c3a88, + 0x7e44: 0x002c6288, 0x7e45: 0x002c9888, 0x7e46: 0x002d0888, 0x7e47: 0x002d2288, + 0x7e48: 0x002d6888, 0x7e49: 0x002d9a88, 0x7e4a: 0x002dcc88, 0x7e4b: 0x002dfe88, + 0x7e4c: 0xc0030002, 0x7e4d: 0x002e8288, 0x7e4e: 0xc3690a31, 0x7e4f: 0x002ee288, + 0x7e50: 0x002f2c88, 0x7e51: 0x002f5688, 0x7e52: 0x002f7a88, 0x7e53: 0x002fe688, + 0x7e54: 0x00302c88, 0x7e55: 0x00306c88, 0x7e56: 0x0030be88, 0x7e57: 0x0030e288, + 0x7e58: 0x0030f688, 0x7e59: 0x00310088, 0x7e5a: 0x00312a88, 0x7e5b: 0x4003f820, + 0x7e5c: 0x4004e420, 0x7e5d: 0x4003fa20, 0x7e5e: 0x40062420, 0x7e5f: 0x40021620, + 0x7e60: 0x40061e20, 0x7e61: 0x402bde20, 0x7e62: 0x402c0a20, 0x7e63: 0x402c3a20, + 0x7e64: 0x402c6220, 0x7e65: 0x402c9820, 0x7e66: 0x402d0820, 0x7e67: 0x402d2220, + 0x7e68: 0x402d6820, 0x7e69: 0x402d9a20, 0x7e6a: 0x402dcc20, 0x7e6b: 0x402dfe20, + 0x7e6c: 0xc0000002, 0x7e6d: 0x402e8220, 0x7e6e: 0xc3670a31, 0x7e6f: 0x402ee220, + 0x7e70: 0x402f2c20, 0x7e71: 0x402f5620, 0x7e72: 0x402f7a20, 0x7e73: 0x402fe620, + 0x7e74: 0x40302c20, 0x7e75: 0x40306c20, 0x7e76: 0x4030be20, 0x7e77: 0x4030e220, + 0x7e78: 0x4030f620, 0x7e79: 0x40310020, 0x7e7a: 0x40312a20, 0x7e7b: 0x4003fc20, + 0x7e7c: 0x40094820, 0x7e7d: 0x4003fe20, 0x7e7e: 0x40094c20, 0x7e7f: 0xa0000000, + // Block 0x1fa, offset 0x7e80 + 0x7e80: 0xe00008f5, 0x7e81: 0xe00008ef, 0x7e82: 0xe0000921, 0x7e83: 0xe0000969, + 0x7e84: 0xe000095b, 0x7e85: 0xe000094d, 0x7e86: 0xe00009dd, 0x7e87: 0xe0000a53, + 0x7e88: 0xe0000ae8, 0x7e89: 0xe0000ae2, 0x7e8a: 0xe0000af4, 0x7e8b: 0xe0000b20, + 0x7e8c: 0xe0000c2b, 0x7e8d: 0xe0000c25, 0x7e8e: 0xe0000c37, 0x7e8f: 0xe0000c43, + 0x7e90: 0xe0000ab3, 0x7e91: 0x002ea083, 0x7e92: 0xe0000d9a, 0x7e93: 0xe0000d94, + 0x7e94: 0xe0000da6, 0x7e95: 0xe0000de6, 0x7e96: 0xe0000dd2, 0x7e97: 0x40093e20, + 0x7e98: 0xe0000e12, 0x7e99: 0xe0000fe1, 0x7e9a: 0xe0000fdb, 0x7e9b: 0xe0000fed, + 0x7e9c: 0xe0000fff, 0x7e9d: 0xe0001102, 0x7e9e: 0x00318888, 0x7e9f: 0xe0000f7b, + 0x7ea0: 0xe00008f2, 0x7ea1: 0xe00008ec, 0x7ea2: 0xe000091e, 0x7ea3: 0xe0000966, + 0x7ea4: 0xe0000958, 0x7ea5: 0xe000094a, 0x7ea6: 0xe00009d5, 0x7ea7: 0xe0000a4d, + 0x7ea8: 0xe0000ae5, 0x7ea9: 0xe0000adf, 0x7eaa: 0xe0000af1, 0x7eab: 0xe0000b1d, + 0x7eac: 0xe0000c28, 0x7ead: 0xe0000c22, 0x7eae: 0xe0000c34, 0x7eaf: 0xe0000c40, + 0x7eb0: 0xe0000aad, 0x7eb1: 0x402ea020, 0x7eb2: 0xe0000d97, 0x7eb3: 0xe0000d91, + 0x7eb4: 0xe0000da3, 0x7eb5: 0xe0000de3, 0x7eb6: 0xe0000dcf, 0x7eb7: 0x40093c20, + 0x7eb8: 0xe0000e0f, 0x7eb9: 0xe0000fde, 0x7eba: 0xe0000fd8, 0x7ebb: 0xe0000fea, + 0x7ebc: 0xe0000ffc, 0x7ebd: 0xe00010ff, 0x7ebe: 0x40318820, 0x7ebf: 0xe0001114, + // Block 0x1fb, offset 0x7ec0 + 0x7ec0: 0xa0000000, 0x7ec1: 0xa0000000, 0x7ec2: 0xa0000000, 0x7ec3: 0xa0000000, + 0x7ec4: 0xa0000000, 0x7ec5: 0xa0000000, 0x7ec6: 0xa0000000, 0x7ec7: 0xa0000000, + 0x7ec8: 0xa0000000, 0x7ec9: 0x40020020, 0x7eca: 0x40020220, 0x7ecb: 0x40020420, + 0x7ecc: 0x40020620, 0x7ecd: 0x40020820, 0x7ece: 0xa0000000, 0x7ecf: 0xa0000000, + 0x7ed0: 0xa0000000, 0x7ed1: 0xa0000000, 0x7ed2: 0xa0000000, 0x7ed3: 0xa0000000, + 0x7ed4: 0xa0000000, 0x7ed5: 0xa0000000, 0x7ed6: 0xa0000000, 0x7ed7: 0xa0000000, + 0x7ed8: 0xa0000000, 0x7ed9: 0xa0000000, 0x7eda: 0xa0000000, 0x7edb: 0xa0000000, + 0x7edc: 0xa0000000, 0x7edd: 0xa0000000, 0x7ede: 0xa0000000, 0x7edf: 0xa0000000, + 0x7ee0: 0x40021220, 0x7ee1: 0x4002ba20, 0x7ee2: 0x4003e020, 0x7ee3: 0x4004ea20, + 0x7ee4: 0x4027de20, 0x7ee5: 0x4004ec20, 0x7ee6: 0x4004e620, 0x7ee7: 0x4003d220, + 0x7ee8: 0x4003f420, 0x7ee9: 0x4003f620, 0x7eea: 0x4004d820, 0x7eeb: 0x40093820, + 0x7eec: 0x40024020, 0x7eed: 0x40021a20, 0x7eee: 0x4002e420, 0x7eef: 0x4004e220, + 0x7ef0: 0x4029cc20, 0x7ef1: 0x4029ce20, 0x7ef2: 0x4029d020, 0x7ef3: 0x4029d220, + 0x7ef4: 0x4029d420, 0x7ef5: 0x4029d620, 0x7ef6: 0x4029d820, 0x7ef7: 0x4029da20, + 0x7ef8: 0x4029dc20, 0x7ef9: 0x4029de20, 0x7efa: 0x40026c20, 0x7efb: 0x40026220, + 0x7efc: 0x40094020, 0x7efd: 0xc32f0851, 0x7efe: 0x40094420, 0x7eff: 0x4002c420, + // Block 0x1fc, offset 0x7f00 + 0x7f00: 0x4004d620, 0x7f01: 0xc3a90a51, 0x7f02: 0x002c0a88, 0x7f03: 0x002c3a88, + 0x7f04: 0x002c6288, 0x7f05: 0x002c9888, 0x7f06: 0x002d0888, 0x7f07: 0x002d2288, + 0x7f08: 0x002d6888, 0x7f09: 0x002d9a88, 0x7f0a: 0x002dcc88, 0x7f0b: 0x002dfe88, + 0x7f0c: 0xc0030002, 0x7f0d: 0x002e8288, 0x7f0e: 0x002e9e88, 0x7f0f: 0xc3b00a81, + 0x7f10: 0x002f2c88, 0x7f11: 0x002f5688, 0x7f12: 0x002f7a88, 0x7f13: 0x002fe688, + 0x7f14: 0x00302c88, 0x7f15: 0xc3840951, 0x7f16: 0x0030be88, 0x7f17: 0x0030bea3, + 0x7f18: 0x0030f688, 0x7f19: 0x00310088, 0x7f1a: 0x00312a88, 0x7f1b: 0x4003f820, + 0x7f1c: 0x4004e420, 0x7f1d: 0x4003fa20, 0x7f1e: 0x40062420, 0x7f1f: 0x40021620, + 0x7f20: 0x40061e20, 0x7f21: 0xc3a60a51, 0x7f22: 0x402c0a20, 0x7f23: 0x402c3a20, + 0x7f24: 0x402c6220, 0x7f25: 0x402c9820, 0x7f26: 0x402d0820, 0x7f27: 0x402d2220, + 0x7f28: 0x402d6820, 0x7f29: 0x402d9a20, 0x7f2a: 0x402dcc20, 0x7f2b: 0x402dfe20, + 0x7f2c: 0xc0000002, 0x7f2d: 0x402e8220, 0x7f2e: 0x402e9e20, 0x7f2f: 0xc3ac0a81, + 0x7f30: 0x402f2c20, 0x7f31: 0x402f5620, 0x7f32: 0x402f7a20, 0x7f33: 0x402fe620, + 0x7f34: 0x40302c20, 0x7f35: 0xc3810951, 0x7f36: 0x4030be20, 0x7f37: 0x4030be21, + 0x7f38: 0x4030f620, 0x7f39: 0x40310020, 0x7f3a: 0x40312a20, 0x7f3b: 0x4003fc20, + 0x7f3c: 0x40094820, 0x7f3d: 0x4003fe20, 0x7f3e: 0x40094c20, 0x7f3f: 0xa0000000, + // Block 0x1fd, offset 0x7f40 + 0x7f40: 0xe00008f5, 0x7f41: 0xe00008ef, 0x7f42: 0xe0000921, 0x7f43: 0xe0000969, + 0x7f44: 0x00320e83, 0x7f45: 0x00320c83, 0x7f46: 0x00320ea3, 0x7f47: 0xe0000a53, + 0x7f48: 0xe0000ae8, 0x7f49: 0xe0000ae2, 0x7f4a: 0xe0000af4, 0x7f4b: 0xe0000b20, + 0x7f4c: 0xe0000c2b, 0x7f4d: 0xe0000c25, 0x7f4e: 0xe0000c37, 0x7f4f: 0xe0000c43, + 0x7f50: 0x002c62a3, 0x7f51: 0xe0000d63, 0x7f52: 0xe0000d9a, 0x7f53: 0xe0000d94, + 0x7f54: 0xe0000da6, 0x7f55: 0x003210e3, 0x7f56: 0x00321083, 0x7f57: 0x40093e20, + 0x7f58: 0x003210a3, 0x7f59: 0xe0000fe1, 0x7f5a: 0xe0000fdb, 0x7f5b: 0xe0000fed, + 0x7f5c: 0x003100a3, 0x7f5d: 0xe0001102, 0x7f5e: 0xe0002716, 0x7f5f: 0xe0000f7b, + 0x7f60: 0xe00008f2, 0x7f61: 0xe00008ec, 0x7f62: 0xe000091e, 0x7f63: 0xe0000966, + 0x7f64: 0x40320e20, 0x7f65: 0x40320c20, 0x7f66: 0x40320e21, 0x7f67: 0xe0000a4d, + 0x7f68: 0xe0000ae5, 0x7f69: 0xe0000adf, 0x7f6a: 0xe0000af1, 0x7f6b: 0xe0000b1d, + 0x7f6c: 0xe0000c28, 0x7f6d: 0xe0000c22, 0x7f6e: 0xe0000c34, 0x7f6f: 0xe0000c40, + 0x7f70: 0x402c6221, 0x7f71: 0xe0000d60, 0x7f72: 0xe0000d97, 0x7f73: 0xe0000d91, + 0x7f74: 0xe0000da3, 0x7f75: 0x40321023, 0x7f76: 0x40321020, 0x7f77: 0x40093c20, + 0x7f78: 0x40321021, 0x7f79: 0xe0000fde, 0x7f7a: 0xe0000fd8, 0x7f7b: 0xe0000fea, + 0x7f7c: 0x40310021, 0x7f7d: 0xe00010ff, 0x7f7e: 0xe0002713, 0x7f7f: 0xe0001114, + // Block 0x1fe, offset 0x7f80 + 0x7f80: 0xe0000983, 0x7f81: 0xe0000980, 0x7f82: 0xe00008fb, 0x7f83: 0xe00008f8, + 0x7f84: 0xe000097d, 0x7f85: 0xe000097a, 0x7f86: 0xe0000a38, 0x7f87: 0xe0000a35, + 0x7f88: 0xe0000a3e, 0x7f89: 0xe0000a3b, 0x7f8a: 0xe0000a4a, 0x7f8b: 0xe0000a47, + 0x7f8c: 0xe0000a44, 0x7f8d: 0xe0000a41, 0x7f8e: 0xe0000a86, 0x7f8f: 0xe0000a83, + 0x7f90: 0x002c62c3, 0x7f91: 0x402c6222, 0x7f92: 0xe0000b46, 0x7f93: 0xe0000b43, + 0x7f94: 0xe0000aee, 0x7f95: 0xe0000aeb, 0x7f96: 0xe0000b2c, 0x7f97: 0xe0000b29, + 0x7f98: 0xe0000b40, 0x7f99: 0xe0000b3d, 0x7f9a: 0xe0000b1a, 0x7f9b: 0xe0000b17, + 0x7f9c: 0xe0000bb8, 0x7f9d: 0xe0000bb5, 0x7f9e: 0xe0000bb2, 0x7f9f: 0xe0000baf, + 0x7fa0: 0xe0000bc4, 0x7fa1: 0xe0000bc1, 0x7fa2: 0xe0000bca, 0x7fa3: 0xe0000bc7, + 0x7fa4: 0xe0000bee, 0x7fa5: 0xe0000beb, 0x7fa6: 0xe0000c1b, 0x7fa7: 0xe0000c18, + 0x7fa8: 0xe0000c51, 0x7fa9: 0xe0000c4e, 0x7faa: 0xe0000c60, 0x7fab: 0xe0000c5d, + 0x7fac: 0xe0000c31, 0x7fad: 0xe0000c2e, 0x7fae: 0xe0000c5a, 0x7faf: 0xe0000c57, + 0x7fb0: 0xe0000c54, 0x7fb1: 0x402da220, 0x7fb2: 0xf0000a0a, 0x7fb3: 0xf0000404, + 0x7fb4: 0xe0000c8a, 0x7fb5: 0xe0000c87, 0x7fb6: 0xe0000c9f, 0x7fb7: 0xe0000c9c, + 0x7fb8: 0x402f7220, 0x7fb9: 0xe0000ccc, 0x7fba: 0xe0000cc9, 0x7fbb: 0xe0000cd8, + 0x7fbc: 0xe0000cd5, 0x7fbd: 0xe0000cd2, 0x7fbe: 0xe0000ccf, 0x7fbf: 0xe0000d04, + // Block 0x1ff, offset 0x7fc0 + 0x7fc0: 0xe0000cfe, 0x7fc1: 0xe0000cf8, 0x7fc2: 0xe0000cf5, 0x7fc3: 0xe0000d51, + 0x7fc4: 0xe0000d4e, 0x7fc5: 0xe0000d6f, 0x7fc6: 0xe0000d6c, 0x7fc7: 0xe0000d5d, + 0x7fc8: 0xe0000d5a, 0x7fc9: 0xf0000404, 0x7fca: 0x002e9ea3, 0x7fcb: 0x402e9e21, + 0x7fcc: 0xe0000e2e, 0x7fcd: 0xe0000e2b, 0x7fce: 0xe0000da0, 0x7fcf: 0xe0000d9d, + 0x7fd0: 0x003210c3, 0x7fd1: 0x40321022, 0x7fd2: 0x00321103, 0x7fd3: 0x40321024, + 0x7fd4: 0xe0000eca, 0x7fd5: 0xe0000ec7, 0x7fd6: 0xe0000edc, 0x7fd7: 0xe0000ed9, + 0x7fd8: 0xe0000ed0, 0x7fd9: 0xe0000ecd, 0x7fda: 0xe0000f1f, 0x7fdb: 0xe0000f1c, + 0x7fdc: 0xe0000f2d, 0x7fdd: 0xe0000f2a, 0x7fde: 0xe0000f47, 0x7fdf: 0xe0000f44, + 0x7fe0: 0xe0000f33, 0x7fe1: 0xe0000f30, 0x7fe2: 0xe0000f99, 0x7fe3: 0xe0000f96, + 0x7fe4: 0xe0000f8a, 0x7fe5: 0xe0000f87, 0x7fe6: 0x00303688, 0x7fe7: 0x40303620, + 0x7fe8: 0xe000102b, 0x7fe9: 0xe0001028, 0x7fea: 0xe000103f, 0x7feb: 0xe000103c, + 0x7fec: 0xe0000fe7, 0x7fed: 0xe0000fe4, 0x7fee: 0xe0000ff9, 0x7fef: 0xe0000ff6, + 0x7ff0: 0x003100c3, 0x7ff1: 0x40310022, 0x7ff2: 0xe0001039, 0x7ff3: 0xe0001036, + 0x7ff4: 0xe0002728, 0x7ff5: 0xe0002725, 0x7ff6: 0xe000110e, 0x7ff7: 0xe000110b, + 0x7ff8: 0xe0001117, 0x7ff9: 0xe000113b, 0x7ffa: 0xe0001138, 0x7ffb: 0xe000114d, + 0x7ffc: 0xe000114a, 0x7ffd: 0xe0001147, 0x7ffe: 0xe0001144, 0x7fff: 0xe0000f64, + // Block 0x200, offset 0x8000 + 0x8000: 0x40321220, 0x8001: 0x40321a20, 0x8002: 0x40322220, 0x8003: 0x40322a20, + 0x8004: 0xe0000ad5, 0x8005: 0xe0000ad1, 0x8006: 0xe0000acd, 0x8007: 0xf0000a0a, + 0x8008: 0xf000040a, 0x8009: 0xf0000404, 0x800a: 0xf0000a0a, 0x800b: 0xf000040a, + 0x800c: 0xf0000404, 0x800d: 0xe0000947, 0x800e: 0xe0000944, 0x800f: 0xe0000c3d, + 0x8010: 0xe0000c3a, 0x8011: 0xe0000dcc, 0x8012: 0xe0000dc9, 0x8013: 0xe0000ff3, + 0x8014: 0xe0000ff0, 0x8015: 0xe0002685, 0x8016: 0xe0002682, 0x8017: 0xe0002673, + 0x8018: 0xe0002670, 0x8019: 0xe000267f, 0x801a: 0xe000267c, 0x801b: 0xe0002679, + 0x801c: 0xe0002676, 0x801d: 0x402cae20, 0x801e: 0xe000274c, 0x801f: 0xe0002749, + 0x8020: 0xe0000976, 0x8021: 0xe0000972, 0x8022: 0xe00026a9, 0x8023: 0xe00026a6, + 0x8024: 0x002d3a88, 0x8025: 0x402d3a20, 0x8026: 0xe0000bbe, 0x8027: 0xe0000bbb, + 0x8028: 0xe0000c99, 0x8029: 0xe0000c96, 0x802a: 0xe0000e20, 0x802b: 0xe0000e1d, + 0x802c: 0xe0000e27, 0x802d: 0xe0000e23, 0x802e: 0xe0001162, 0x802f: 0xe000115f, + 0x8030: 0xe0000c8d, 0x8031: 0xf0000a0a, 0x8032: 0xf000040a, 0x8033: 0xf0000404, + 0x8034: 0xe0000bac, 0x8035: 0xe0000ba9, 0x8036: 0x002d7888, 0x8037: 0x00319488, + 0x8038: 0xe0000d57, 0x8039: 0xe0000d54, 0x803a: 0xe000268b, 0x803b: 0xe0002688, + 0x803c: 0xe0002752, 0x803d: 0xe000274f, 0x803e: 0xe000275e, 0x803f: 0xe000275b, + // Block 0x201, offset 0x8040 + 0x8040: 0xe000098f, 0x8041: 0xe000098c, 0x8042: 0xe0000995, 0x8043: 0xe0000992, + 0x8044: 0xe0000b62, 0x8045: 0xe0000b5f, 0x8046: 0xe0000b68, 0x8047: 0xe0000b65, + 0x8048: 0xe0000c6c, 0x8049: 0xe0000c69, 0x804a: 0xe0000c72, 0x804b: 0xe0000c6f, + 0x804c: 0xe0000e4a, 0x804d: 0xe0000e47, 0x804e: 0xe0000e50, 0x804f: 0xe0000e4d, + 0x8050: 0xe0000ee8, 0x8051: 0xe0000ee5, 0x8052: 0xe0000eee, 0x8053: 0xe0000eeb, + 0x8054: 0xe0001053, 0x8055: 0xe0001050, 0x8056: 0xe0001059, 0x8057: 0xe0001056, + 0x8058: 0xe0000f61, 0x8059: 0xe0000f5e, 0x805a: 0xe0000fa5, 0x805b: 0xe0000fa2, + 0x805c: 0x00312288, 0x805d: 0x40312220, 0x805e: 0xe0000bf4, 0x805f: 0xe0000bf1, + 0x8060: 0x002ebc88, 0x8061: 0x402c8c20, 0x8062: 0x002f2288, 0x8063: 0x402f2220, + 0x8064: 0x00314088, 0x8065: 0x40314020, 0x8066: 0xe000096f, 0x8067: 0xe000096c, + 0x8068: 0xe0000b32, 0x8069: 0xe0000b2f, 0x806a: 0xe0002758, 0x806b: 0xe0002755, + 0x806c: 0xe0002776, 0x806d: 0xe0002773, 0x806e: 0xe0000e04, 0x806f: 0xe0000e01, + 0x8070: 0xe0000e0b, 0x8071: 0xe0000e07, 0x8072: 0xe0001129, 0x8073: 0xe0001126, + 0x8074: 0x402e5e20, 0x8075: 0x402ed020, 0x8076: 0x40305a20, 0x8077: 0x402dd420, + 0x8078: 0xe0000abf, 0x8079: 0xe0000ec4, 0x807a: 0x002be888, 0x807b: 0x002c4488, + 0x807c: 0x402c4420, 0x807d: 0x002e3888, 0x807e: 0x00303e88, 0x807f: 0x402ffc20, + // Block 0x202, offset 0x8080 + 0x8080: 0xe0000d24, 0x8081: 0xe0000d21, 0x8082: 0xe0000d2a, 0x8083: 0xe0000d27, + 0x8084: 0xe0000d69, 0x8085: 0xe0000d66, 0x8086: 0xe0000d7b, 0x8087: 0xe0000d78, + 0x8088: 0xe0000d87, 0x8089: 0xe0000d84, 0x808a: 0xe0000d81, 0x808b: 0xe0000d7e, + 0x808c: 0xe0002764, 0x808d: 0xe0002761, 0x808e: 0xe0002770, 0x808f: 0xe000276d, + 0x8090: 0xe0000e3d, 0x8091: 0xe0000e39, 0x8092: 0xe0000e35, 0x8093: 0xe0000e31, + 0x8094: 0xe0000ea7, 0x8095: 0xe0000ea4, 0x8096: 0xe0000ead, 0x8097: 0xe0000eaa, + 0x8098: 0xe0000ed6, 0x8099: 0xe0000ed3, 0x809a: 0xe0000ef4, 0x809b: 0xe0000ef1, + 0x809c: 0xe0000efb, 0x809d: 0xe0000ef7, 0x809e: 0xe0000f02, 0x809f: 0xe0000eff, + 0x80a0: 0xe0000f41, 0x80a1: 0xe0000f3e, 0x80a2: 0xe0000f53, 0x80a3: 0xe0000f50, + 0x80a4: 0xe0000f26, 0x80a5: 0xe0000f22, 0x80a6: 0xe0000f3a, 0x80a7: 0xe0000f36, + 0x80a8: 0xe0000f5a, 0x80a9: 0xe0000f56, 0x80aa: 0xe0000f93, 0x80ab: 0xe0000f90, + 0x80ac: 0xe0000f9f, 0x80ad: 0xe0000f9c, 0x80ae: 0xe0000fb1, 0x80af: 0xe0000fae, + 0x80b0: 0xe0000fab, 0x80b1: 0xe0000fa8, 0x80b2: 0xe0001093, 0x80b3: 0xe0001090, + 0x80b4: 0xe000109f, 0x80b5: 0xe000109c, 0x80b6: 0xe0001099, 0x80b7: 0xe0001096, + 0x80b8: 0xe0001032, 0x80b9: 0xe000102e, 0x80ba: 0xe0002685, 0x80bb: 0xe0002682, + 0x80bc: 0xe00010a9, 0x80bd: 0xe00010a6, 0x80be: 0xe00010af, 0x80bf: 0xe00010ac, + // Block 0x203, offset 0x80c0 + 0x80c0: 0xe0002722, 0x80c1: 0xe000271f, 0x80c2: 0xe000271c, 0x80c3: 0xe0002719, + 0x80c4: 0xe0002731, 0x80c5: 0xe000272e, 0x80c6: 0xe0002737, 0x80c7: 0xe0002734, + 0x80c8: 0xe000273d, 0x80c9: 0xe000273a, 0x80ca: 0xe00010fc, 0x80cb: 0xe00010f9, + 0x80cc: 0xe00010f6, 0x80cd: 0xe00010f3, 0x80ce: 0xe0001123, 0x80cf: 0xe0001120, + 0x80d0: 0xe0001141, 0x80d1: 0xe000113e, 0x80d2: 0xe0001153, 0x80d3: 0xe0001150, + 0x80d4: 0xe0001159, 0x80d5: 0xe0001156, 0x80d6: 0xe0000c15, 0x80d7: 0xe0000f8d, + 0x80d8: 0xe000272b, 0x80d9: 0xe0001111, 0x80da: 0xf0000404, 0x80db: 0xe0000f70, + 0x80dc: 0x40300420, 0x80dd: 0x40300620, 0x80de: 0xe0000f7f, 0x80df: 0x402c9620, + 0x80e0: 0xe000099b, 0x80e1: 0xe0000998, 0x80e2: 0xe0000989, 0x80e3: 0xe0000986, + 0x80e4: 0xe0000928, 0x80e5: 0xe0000924, 0x80e6: 0xe0000930, 0x80e7: 0xe000092c, + 0x80e8: 0xe0000940, 0x80e9: 0xe000093c, 0x80ea: 0xe0000938, 0x80eb: 0xe0000934, + 0x80ec: 0xe00009aa, 0x80ed: 0xe00009a6, 0x80ee: 0xe0000902, 0x80ef: 0xe00008fe, + 0x80f0: 0xe000090a, 0x80f1: 0xe0000906, 0x80f2: 0xe000091a, 0x80f3: 0xe0000916, + 0x80f4: 0xe0000912, 0x80f5: 0xe000090e, 0x80f6: 0xe00009a2, 0x80f7: 0xe000099e, + 0x80f8: 0xe0000b6e, 0x80f9: 0xe0000b6b, 0x80fa: 0xe0000b5c, 0x80fb: 0xe0000b59, + 0x80fc: 0xe0000b26, 0x80fd: 0xe0000b23, 0x80fe: 0xe0000afb, 0x80ff: 0xe0000af7, + // Block 0x204, offset 0x8100 + 0x8100: 0xe0000b03, 0x8101: 0xe0000aff, 0x8102: 0xe0000b13, 0x8103: 0xe0000b0f, + 0x8104: 0xe0000b0b, 0x8105: 0xe0000b07, 0x8106: 0xe0000b75, 0x8107: 0xe0000b71, + 0x8108: 0xe0000c66, 0x8109: 0xe0000c63, 0x810a: 0xe0000c78, 0x810b: 0xe0000c75, + 0x810c: 0xe0000e84, 0x810d: 0xe0000e81, 0x810e: 0xe0000e44, 0x810f: 0xe0000e41, + 0x8110: 0xe0000dad, 0x8111: 0xe0000da9, 0x8112: 0xe0000db5, 0x8113: 0xe0000db1, + 0x8114: 0xe0000dc5, 0x8115: 0xe0000dc1, 0x8116: 0xe000276a, 0x8117: 0xe0002767, + 0x8118: 0xe0000e8b, 0x8119: 0xe0000e87, 0x811a: 0xe0000e5d, 0x811b: 0xe0000e59, + 0x811c: 0xe0000e65, 0x811d: 0xe0000e61, 0x811e: 0xe0000e75, 0x811f: 0xe0000e71, + 0x8120: 0xe000277c, 0x8121: 0xe0002779, 0x8122: 0xe0000e7d, 0x8123: 0xe0000e79, + 0x8124: 0xe000108d, 0x8125: 0xe000108a, 0x8126: 0xe000104d, 0x8127: 0xe000104a, + 0x8128: 0xe0001066, 0x8129: 0xe0001062, 0x812a: 0xe000106e, 0x812b: 0xe000106a, + 0x812c: 0xe000107e, 0x812d: 0xe000107a, 0x812e: 0xe0001076, 0x812f: 0xe0001072, + 0x8130: 0xe0001086, 0x8131: 0xe0001082, 0x8132: 0xe0001108, 0x8133: 0xe0001105, + 0x8134: 0xe0001135, 0x8135: 0xe0001132, 0x8136: 0xe000112f, 0x8137: 0xe000112c, + 0x8138: 0xe000111d, 0x8139: 0xe000111a, 0x813a: 0xe0000d0a, 0x813b: 0xe0000d07, + 0x813c: 0x0030d888, 0x813d: 0x4030d820, 0x813e: 0x00312088, 0x813f: 0x40312020, + // Block 0x205, offset 0x8140 + 0x8140: 0xe00009bc, 0x8141: 0xe00009c0, 0x8142: 0x002c3a8b, 0x8143: 0xf0000a04, + 0x8144: 0x40081c20, 0x8145: 0xe0000a5e, 0x8146: 0xe0000a62, 0x8147: 0x002cc28a, + 0x8148: 0x40081e20, 0x8149: 0xf0000a04, 0x814a: 0x002d2285, 0x814b: 0x002d688b, + 0x814c: 0x002d688b, 0x814d: 0x002d688b, 0x814e: 0x002d6885, 0x814f: 0xf0000202, + 0x8150: 0x002d9a8b, 0x8151: 0x002d9a8b, 0x8152: 0x002e228b, 0x8153: 0x002e2285, + 0x8154: 0x40082020, 0x8155: 0x002e9e8b, 0x8156: 0xf000040a, 0x8157: 0x40082220, + 0x8158: 0x40082420, 0x8159: 0x002f2c8b, 0x815a: 0x002f568b, 0x815b: 0x002f7a8b, + 0x815c: 0x002f7a8b, 0x815d: 0x002f7a8b, 0x815e: 0x40082620, 0x815f: 0x40082820, + 0x8160: 0xf0001414, 0x8161: 0xe0000fbd, 0x8162: 0xf0001414, 0x8163: 0x40082a20, + 0x8164: 0x00312a8b, 0x8165: 0x40082c20, 0x8166: 0x0032a288, 0x8167: 0x40082e20, + 0x8168: 0x00312a8b, 0x8169: 0x40083020, 0x816a: 0x002dfe88, 0x816b: 0x00320c83, + 0x816c: 0x002c0a8b, 0x816d: 0x002c3a8b, 0x816e: 0x40083220, 0x816f: 0x002c9885, + 0x8170: 0x002c988b, 0x8171: 0x002d088b, 0x8172: 0x002d1e88, 0x8173: 0x002e828b, + 0x8174: 0x002ee285, 0x8175: 0x00389084, 0x8176: 0x00389284, 0x8177: 0x00389484, + 0x8178: 0x00389684, 0x8179: 0x002d9a85, 0x817a: 0x40083420, 0x817b: 0xe0000b95, + 0x817c: 0x00327e85, 0x817d: 0x00325685, 0x817e: 0x0032568b, 0x817f: 0x00327e8b, + // Block 0x206, offset 0x8180 + 0x8180: 0xe0000024, 0x8181: 0xe0000029, 0x8182: 0xe000002e, 0x8183: 0xe0000033, + 0x8184: 0xe0000038, 0x8185: 0xe000003d, 0x8186: 0xe0000042, 0x8187: 0xe0000047, + 0x8188: 0xf0001f04, 0x8189: 0xf0001f04, 0x818a: 0xf0001f04, 0x818b: 0xf0001f04, + 0x818c: 0xf0001f04, 0x818d: 0xf0001f04, 0x818e: 0xf0001f04, 0x818f: 0xf0001f04, + 0x8190: 0xf0001f04, 0x8191: 0xf0000404, 0x8192: 0xf0000404, 0x8193: 0xf0000404, + 0x8194: 0xf0000404, 0x8195: 0xf0000404, 0x8196: 0xf0000404, 0x8197: 0xf0000404, + 0x8198: 0xf0000404, 0x8199: 0xf0000404, 0x819a: 0xf0000404, 0x819b: 0xf0000404, + 0x819c: 0xf0000404, 0x819d: 0xf0000404, 0x819e: 0xf0000404, 0x819f: 0xf0000404, + 0x81a0: 0xf0000404, 0x81a1: 0xf0000404, 0x81a2: 0xf0000404, 0x81a3: 0xf0000404, + 0x81a4: 0xf0000404, 0x81a5: 0xf0000404, 0x81a6: 0xf0000404, 0x81a7: 0xf0000404, + 0x81a8: 0xf0000404, 0x81a9: 0xf0000404, 0x81aa: 0xf0000404, 0x81ab: 0xf0000404, + 0x81ac: 0xf0000404, 0x81ad: 0xf0000404, 0x81ae: 0xf0000404, 0x81af: 0xf0000404, + 0x81b0: 0xf0000404, 0x81b1: 0xf0000404, 0x81b2: 0xe00026fc, 0x81b3: 0xf0000404, + 0x81b4: 0xf0000404, 0x81b5: 0xf0000404, 0x81b6: 0x002bde8c, 0x81b7: 0x002c0a8c, + 0x81b8: 0x002c3a8c, 0x81b9: 0x002c628c, 0x81ba: 0x002c988c, 0x81bb: 0x002d088c, + 0x81bc: 0x002d228c, 0x81bd: 0x002d688c, 0x81be: 0x002d9a8c, 0x81bf: 0x002dcc8c, + // Block 0x207, offset 0x81c0 + 0x81c0: 0xf0001d1c, 0x81c1: 0xf0001d1c, 0x81c2: 0xf0001d1c, 0x81c3: 0xf0001d1c, + 0x81c4: 0xf0001d1c, 0x81c5: 0xf0001d1d, 0x81c6: 0xf0001d1d, 0x81c7: 0xf0001d1d, + 0x81c8: 0xe0000a6b, 0x81c9: 0xe0000cb4, 0x81ca: 0xf0001d1c, 0x81cb: 0xf0001d1c, + 0x81cc: 0xf0001d1c, 0x81cd: 0xf0001c1c, 0x81ce: 0xf0001c1c, 0x81cf: 0xf0001c1c, + 0x81d0: 0xf0001c1d, 0x81d1: 0xe0000cb9, 0x81d2: 0xe0000d36, 0x81d3: 0xe0000be3, + 0x81d4: 0xe0000fc5, 0x81d5: 0xf0001c1c, 0x81d6: 0xf0001c1c, 0x81d7: 0xf0001c1c, + 0x81d8: 0xf0001c1c, 0x81d9: 0xf0001c1c, 0x81da: 0xf0001c1c, 0x81db: 0xf0001c1c, + 0x81dc: 0xf0001c1c, 0x81dd: 0xf0001c1c, 0x81de: 0xf0001c1c, 0x81df: 0xe0000d3e, + 0x81e0: 0xe0000a72, 0x81e1: 0xf0001c1c, 0x81e2: 0xe0000cbd, 0x81e3: 0xe0000d42, + 0x81e4: 0xe0000a76, 0x81e5: 0xf0001c1c, 0x81e6: 0xe0000cc1, 0x81e7: 0xe0000d2d, + 0x81e8: 0xe0000d31, 0x81e9: 0xf0001c1d, 0x81ea: 0xe0000cc5, 0x81eb: 0xe0000d4a, + 0x81ec: 0xe0000be7, 0x81ed: 0xe0000f0b, 0x81ee: 0xe0000f0f, 0x81ef: 0xe0000f15, + 0x81f0: 0xf0001c1c, 0x81f1: 0xf0001c1c, 0x81f2: 0xf0001c1c, 0x81f3: 0xf0001c1c, + 0x81f4: 0xf0001d1c, 0x81f5: 0xf0001d1c, 0x81f6: 0xf0001d1c, 0x81f7: 0xf0001d1c, + 0x81f8: 0xf0001d1c, 0x81f9: 0xf0001d1d, 0x81fa: 0xe0002710, 0x81fb: 0xe000270d, + 0x81fc: 0xe000277f, 0x81fd: 0xe0002707, 0x81fe: 0xe0002704, 0x81ff: 0xe000270a, + // Block 0x208, offset 0x8200 + 0x8200: 0xf0001d1c, 0x8201: 0xf0001d1d, 0x8202: 0xe00009b7, 0x8203: 0xf0001c1d, + 0x8204: 0xf0001c1c, 0x8205: 0xf0001c1c, 0x8206: 0xe0000a66, 0x8207: 0xe0000a7a, + 0x8208: 0xf0001d1c, 0x8209: 0xf0001c1d, 0x820a: 0xf0001c1c, 0x820b: 0xf0001d1d, + 0x820c: 0xf0001c1c, 0x820d: 0xf0001d1d, 0x820e: 0xf0001d1d, 0x820f: 0xf0001c1c, + 0x8210: 0xf0001c1c, 0x8211: 0xf0001c1c, 0x8212: 0xe0000d0d, 0x8213: 0xf0001c1c, + 0x8214: 0xf0001c1c, 0x8215: 0xe0000d3a, 0x8216: 0xe0000d46, 0x8217: 0xf0001d1d, + 0x8218: 0xe0000eb0, 0x8219: 0xe0000eb8, 0x821a: 0xf0001d1d, 0x821b: 0xf0001c1c, + 0x821c: 0xf0001c1d, 0x821d: 0xe0002740, 0x821e: 0xe00010b2, 0x821f: 0xe00009c8, + 0x8220: 0xf0001f04, 0x8221: 0xf0001f04, 0x8222: 0xf0001f04, 0x8223: 0xf0001f04, + 0x8224: 0xf0001f04, 0x8225: 0xf0001f04, 0x8226: 0xf0001f04, 0x8227: 0xf0001f04, + 0x8228: 0xf0001f04, 0x8229: 0xf0000404, 0x822a: 0xf0000404, 0x822b: 0xf0000404, + 0x822c: 0xf0000404, 0x822d: 0xf0000404, 0x822e: 0xf0000404, 0x822f: 0xf0000404, + 0x8230: 0xf0000404, 0x8231: 0xf0000404, 0x8232: 0xf0000404, 0x8233: 0xf0000404, + 0x8234: 0xf0000404, 0x8235: 0xf0000404, 0x8236: 0xf0000404, 0x8237: 0xf0000404, + 0x8238: 0xf0000404, 0x8239: 0xf0000404, 0x823a: 0xf0000404, 0x823b: 0xf0000404, + 0x823c: 0xf0000404, 0x823d: 0xf0000404, 0x823e: 0xf0000404, 0x823f: 0xe0000bdf, + // Block 0x209, offset 0x8240 + 0x8240: 0xf0001f04, 0x8241: 0xf0001f04, 0x8242: 0xf0001f04, 0x8243: 0xf0001f04, + 0x8244: 0xf0001f04, 0x8245: 0xf0001f04, 0x8246: 0xf0001f04, 0x8247: 0xf0001f04, + 0x8248: 0xf0001f04, 0x8249: 0xf0001f04, 0x824a: 0xf0001f04, + 0x8250: 0xf0000a04, 0x8251: 0xf0000a04, 0x8252: 0xf0000a04, 0x8253: 0xf0000a04, + 0x8254: 0xf0000a04, 0x8255: 0xf0000a04, 0x8256: 0xf0000a04, 0x8257: 0xf0000a04, + 0x8258: 0xf0000a04, 0x8259: 0xf0000a04, 0x825a: 0xf0000a04, 0x825b: 0xf0000a04, + 0x825c: 0xf0000a04, 0x825d: 0xf0000a04, 0x825e: 0xf0000a04, 0x825f: 0xf0000a04, + 0x8260: 0xf0000a04, 0x8261: 0xf0000a04, 0x8262: 0xf0000a04, 0x8263: 0xf0000a04, + 0x8264: 0xf0000a04, 0x8265: 0xf0000a04, 0x8266: 0xe0002700, 0x8267: 0xf0000a04, + 0x8268: 0xf0000a04, 0x8269: 0xf0000a04, 0x826a: 0xf0000a04, 0x826b: 0x002c3a8c, + 0x826c: 0x002f7a8c, 0x826d: 0xf0000c0c, 0x826e: 0xe0002746, + 0x8270: 0x002bde9d, 0x8271: 0x002c0a9d, 0x8272: 0x002c3a9d, 0x8273: 0x002c629d, + 0x8274: 0x002c989d, 0x8275: 0x002d089d, 0x8276: 0x002d229d, 0x8277: 0x002d689d, + 0x8278: 0x002d9a9d, 0x8279: 0x002dcc9d, 0x827a: 0x002dfe9d, 0x827b: 0x002e229d, + 0x827c: 0x002e829d, 0x827d: 0x002e9e9d, 0x827e: 0x002ee29d, 0x827f: 0x002f2c9d, + // Block 0x20a, offset 0x8280 + 0x8280: 0x002f569d, 0x8281: 0x002f7a9d, 0x8282: 0x002fe69d, 0x8283: 0x00302c9d, + 0x8284: 0x00306c9d, 0x8285: 0x0030be9d, 0x8286: 0x0030e29d, 0x8287: 0x0030f69d, + 0x8288: 0x0031009d, 0x8289: 0x00312a9d, 0x828a: 0xf0001d1d, 0x828b: 0xf0001d1d, + 0x828c: 0xf0001d1d, 0x828d: 0xf0001d1d, 0x828e: 0xe0000ebc, 0x828f: 0xe0002743, + 0x8290: 0x002bde8c, 0x8291: 0x002c0a8c, 0x8292: 0x002c3a8c, 0x8293: 0x002c628c, + 0x8294: 0x002c988c, 0x8295: 0x002d088c, 0x8296: 0x002d228c, 0x8297: 0x002d688c, + 0x8298: 0x002d9a8c, 0x8299: 0x002dcc8c, 0x829a: 0x002dfe8c, 0x829b: 0x002e228c, + 0x829c: 0x002e828c, 0x829d: 0x002e9e8c, 0x829e: 0x002ee28c, 0x829f: 0x002f2c8c, + 0x82a0: 0x002f568c, 0x82a1: 0x002f7a8c, 0x82a2: 0x002fe68c, 0x82a3: 0x00302c8c, + 0x82a4: 0x00306c8c, 0x82a5: 0x0030be8c, 0x82a6: 0x0030e28c, 0x82a7: 0x0030f68c, + 0x82a8: 0x0031008c, 0x82a9: 0x00312a8c, 0x82aa: 0xf0001414, 0x82ab: 0xf0001414, + 0x82b0: 0x002bde9d, 0x82b1: 0x002c0a9d, 0x82b2: 0x002c3a9d, 0x82b3: 0x002c629d, + 0x82b4: 0x002c989d, 0x82b5: 0x002d089d, 0x82b6: 0x002d229d, 0x82b7: 0x002d689d, + 0x82b8: 0x002d9a9d, 0x82b9: 0x002dcc9d, 0x82ba: 0x002dfe9d, 0x82bb: 0x002e229d, + 0x82bc: 0x002e829d, 0x82bd: 0x002e9e9d, 0x82be: 0x002ee29d, 0x82bf: 0x002f2c9d, + // Block 0x20b, offset 0x82c0 + 0x82c0: 0xa0000000, 0x82c1: 0xa0000000, 0x82c2: 0xa0000000, 0x82c3: 0xa0000000, + 0x82c4: 0xa0000000, 0x82c5: 0xa0000000, 0x82c6: 0xa0000000, 0x82c7: 0xa0000000, + 0x82c8: 0xa0000000, 0x82c9: 0x40020020, 0x82ca: 0x40020220, 0x82cb: 0x40020420, + 0x82cc: 0x40020620, 0x82cd: 0x40020820, 0x82ce: 0xa0000000, 0x82cf: 0xa0000000, + 0x82d0: 0xa0000000, 0x82d1: 0xa0000000, 0x82d2: 0xa0000000, 0x82d3: 0xa0000000, + 0x82d4: 0xa0000000, 0x82d5: 0xa0000000, 0x82d6: 0xa0000000, 0x82d7: 0xa0000000, + 0x82d8: 0xa0000000, 0x82d9: 0xa0000000, 0x82da: 0xa0000000, 0x82db: 0xa0000000, + 0x82dc: 0xa0000000, 0x82dd: 0xa0000000, 0x82de: 0xa0000000, 0x82df: 0xa0000000, + 0x82e0: 0x40021220, 0x82e1: 0x4002ba20, 0x82e2: 0xa0002402, 0x82e3: 0x4004ea20, + 0x82e4: 0x4027de20, 0x82e5: 0x4004ec20, 0x82e6: 0x4004e620, 0x82e7: 0xa0002202, + 0x82e8: 0x4003f420, 0x82e9: 0x4003f620, 0x82ea: 0x4004d820, 0x82eb: 0x40093820, + 0x82ec: 0x40024020, 0x82ed: 0x40021a20, 0x82ee: 0x4002e420, 0x82ef: 0x4004e220, + 0x82f0: 0x4029cc20, 0x82f1: 0x4029ce20, 0x82f2: 0x4029d020, 0x82f3: 0x4029d220, + 0x82f4: 0x4029d420, 0x82f5: 0x4029d620, 0x82f6: 0x4029d820, 0x82f7: 0x4029da20, + 0x82f8: 0x4029dc20, 0x82f9: 0x4029de20, 0x82fa: 0x40026c20, 0x82fb: 0x40026220, + 0x82fc: 0x40094020, 0x82fd: 0xc32f0851, 0x82fe: 0x40094420, 0x82ff: 0x4002c420, + // Block 0x20c, offset 0x8300 + 0x8300: 0x4004d620, 0x8301: 0x002bde88, 0x8302: 0x002c0a88, 0x8303: 0x002c3a88, + 0x8304: 0x002c6288, 0x8305: 0x002c9888, 0x8306: 0x002d0888, 0x8307: 0x002d2288, + 0x8308: 0x002d6888, 0x8309: 0x002d9a88, 0x830a: 0x002dcc88, 0x830b: 0x002dfe88, + 0x830c: 0xc0030002, 0x830d: 0x002e8288, 0x830e: 0x002e9e88, 0x830f: 0x002ee288, + 0x8310: 0x002f2c88, 0x8311: 0x002f5688, 0x8312: 0x002f7a88, 0x8313: 0x002fe688, + 0x8314: 0x00302c88, 0x8315: 0x00306c88, 0x8316: 0x0030be88, 0x8317: 0x0030e288, + 0x8318: 0x0030f688, 0x8319: 0x00310088, 0x831a: 0x00312a88, 0x831b: 0x4003f820, + 0x831c: 0x4004e420, 0x831d: 0x4003fa20, 0x831e: 0x40062420, 0x831f: 0x40021620, + 0x8320: 0x40061e20, 0x8321: 0x402bde20, 0x8322: 0x402c0a20, 0x8323: 0x402c3a20, + 0x8324: 0x402c6220, 0x8325: 0x402c9820, 0x8326: 0x402d0820, 0x8327: 0x402d2220, + 0x8328: 0x402d6820, 0x8329: 0x402d9a20, 0x832a: 0x402dcc20, 0x832b: 0x402dfe20, + 0x832c: 0xc0000002, 0x832d: 0x402e8220, 0x832e: 0x402e9e20, 0x832f: 0x402ee220, + 0x8330: 0x402f2c20, 0x8331: 0x402f5620, 0x8332: 0x402f7a20, 0x8333: 0x402fe620, + 0x8334: 0x40302c20, 0x8335: 0x40306c20, 0x8336: 0x4030be20, 0x8337: 0x4030e220, + 0x8338: 0x4030f620, 0x8339: 0x40310020, 0x833a: 0x40312a20, 0x833b: 0x4003fc20, + 0x833c: 0x40094820, 0x833d: 0x4003fe20, 0x833e: 0x40094c20, 0x833f: 0xa0000000, + // Block 0x20d, offset 0x8340 + 0x8340: 0x40055620, 0x8341: 0xa1809102, 0x8342: 0xa1909002, 0x8343: 0x40055820, + 0x8344: 0xae600000, 0x8345: 0xadc00000, 0x8346: 0x40055a20, 0x8347: 0xa1208d02, + 0x8350: 0x40389020, 0x8351: 0x40389220, 0x8352: 0x40389420, 0x8353: 0x40389620, + 0x8354: 0x40389820, 0x8355: 0x40389a20, 0x8356: 0x40389c20, 0x8357: 0x40389e20, + 0x8358: 0x4038a020, 0x8359: 0x4038a220, 0x835a: 0x0038a499, 0x835b: 0x4038a420, + 0x835c: 0x4038a620, 0x835d: 0x0038a899, 0x835e: 0x4038a820, 0x835f: 0x0038aa99, + 0x8360: 0x4038aa20, 0x8361: 0x4038ac20, 0x8362: 0x4038ae20, 0x8363: 0x0038b099, + 0x8364: 0x4038b020, 0x8365: 0x0038b299, 0x8366: 0x4038b220, 0x8367: 0x4038b420, + 0x8368: 0x4038b620, 0x8369: 0x4038b820, 0x836a: 0x4038ba20, + 0x8370: 0xe00014ff, 0x8371: 0xe0001502, 0x8372: 0xe0001511, 0x8373: 0xa0002102, + 0x8374: 0xa0002302, + // Block 0x20e, offset 0x8380 + 0x8380: 0xa0002502, 0x8381: 0x4039fc20, 0x8382: 0x403a1220, 0x8383: 0x403a1a20, + 0x8384: 0x403a4020, 0x8385: 0x403a4e20, 0x8386: 0x403a5620, 0x8387: 0x403a6820, + 0x8388: 0xc3350171, 0x8389: 0x403a9222, 0x838a: 0xc3370171, 0x838b: 0xa1b0a202, + 0x838c: 0xa1c0a502, 0x838d: 0xa1d0a902, 0x838e: 0xa1e0ad02, 0x838f: 0xa1f0b202, + 0x8390: 0xa200b602, 0x8391: 0xa210ba02, 0x8392: 0xa220bc02, 0x8393: 0xae60bd02, + 0x8394: 0xae60be02, 0x8395: 0xadc0bf02, 0x8396: 0xadc0c102, 0x8397: 0xae60c202, + 0x8398: 0xae60c302, 0x8399: 0xae60c402, 0x839a: 0xae60c502, 0x839b: 0xae60c602, + 0x839c: 0xadc0c702, 0x839d: 0xae60c802, 0x839e: 0xae60c902, 0x839f: 0xadc0c002, + 0x83a0: 0xe000015e, 0x83a1: 0xe00001e6, 0x83a2: 0xe0000301, 0x83a3: 0xe00003db, + 0x83a4: 0xe00004b6, 0x83a5: 0xe0000580, 0x83a6: 0xe000064b, 0x83a7: 0xe00006f3, + 0x83a8: 0xe000079f, 0x83a9: 0xe0000844, 0x83aa: 0x4004ee20, 0x83ab: 0x40024c20, + 0x83ac: 0x40024e20, 0x83ad: 0x4004de20, 0x83ae: 0x40393a20, 0x83af: 0x403a1020, + 0x83b0: 0xa230d102, 0x83b1: 0x40392420, 0x83b2: 0x40392220, 0x83b3: 0x40392a20, + 0x83b4: 0x00391c84, 0x83b5: 0xf0000404, 0x83b6: 0xf0000404, 0x83b7: 0xf0000404, + 0x83b8: 0xf0000404, 0x83b9: 0x40395a20, 0x83ba: 0x40395c20, 0x83bb: 0x40393e20, + 0x83bc: 0x40395e20, 0x83bd: 0x40396020, 0x83be: 0x40394020, 0x83bf: 0x40396220, + // Block 0x20f, offset 0x83c0 + 0x83c1: 0x40491020, 0x83c2: 0x40491220, 0x83c3: 0x40491420, + 0x83c4: 0x40491620, 0x83c5: 0x40491820, 0x83c6: 0x40491a20, 0x83c7: 0x40491c20, + 0x83c8: 0x40491e20, 0x83c9: 0x40492020, 0x83ca: 0x40492220, 0x83cb: 0x40492420, + 0x83cc: 0x40492620, 0x83cd: 0x40492820, 0x83ce: 0x40492a20, 0x83cf: 0x40492c20, + 0x83d0: 0x40492e20, 0x83d1: 0x40493020, 0x83d2: 0x40493220, 0x83d3: 0x40493420, + 0x83d4: 0x40493620, 0x83d5: 0x40493820, 0x83d6: 0x40493a20, 0x83d7: 0x40493c20, + 0x83d8: 0x40493e20, 0x83d9: 0x40494020, 0x83da: 0x40494220, 0x83db: 0x40494420, + 0x83dc: 0x40494620, 0x83dd: 0x40494820, 0x83de: 0x40494a20, 0x83df: 0x40494c20, + 0x83e0: 0x40494e20, 0x83e1: 0x40495020, 0x83e2: 0x40495220, 0x83e3: 0x40495420, + 0x83e4: 0x40495620, 0x83e5: 0x40495820, 0x83e6: 0x40495a20, 0x83e7: 0x40495c20, + 0x83e8: 0x40495e20, 0x83e9: 0x40496020, 0x83ea: 0x40496220, 0x83eb: 0x40496420, + 0x83ec: 0x40496620, 0x83ed: 0x40496820, 0x83ee: 0x40496a20, 0x83ef: 0x40496c20, + 0x83f0: 0x40496e20, 0x83f1: 0x40497020, 0x83f2: 0x40497220, 0x83f3: 0x40497420, + 0x83f4: 0x40497620, 0x83f5: 0x40497820, 0x83f6: 0x40497a20, 0x83f7: 0x40497c20, + 0x83f8: 0x826724bf, 0x83f9: 0x826724c0, 0x83fa: 0xa0002602, + 0x83ff: 0x4027f420, + // Block 0x210, offset 0x8400 + 0x8400: 0xa0000000, 0x8401: 0xa0000000, 0x8402: 0xa0000000, 0x8403: 0xa0000000, + 0x8404: 0xa0000000, 0x8405: 0xa0000000, 0x8406: 0xa0000000, 0x8407: 0xa0000000, + 0x8408: 0xa0000000, 0x8409: 0x40020020, 0x840a: 0x40020220, 0x840b: 0x40020420, + 0x840c: 0x40020620, 0x840d: 0x40020820, 0x840e: 0xa0000000, 0x840f: 0xa0000000, + 0x8410: 0xa0000000, 0x8411: 0xa0000000, 0x8412: 0xa0000000, 0x8413: 0xa0000000, + 0x8414: 0xa0000000, 0x8415: 0xa0000000, 0x8416: 0xa0000000, 0x8417: 0xa0000000, + 0x8418: 0xa0000000, 0x8419: 0xa0000000, 0x841a: 0xa0000000, 0x841b: 0xa0000000, + 0x841c: 0xa0000000, 0x841d: 0xa0000000, 0x841e: 0xa0000000, 0x841f: 0xa0000000, + 0x8420: 0x40021220, 0x8421: 0x4002ba20, 0x8422: 0x4003e020, 0x8423: 0x4004ea20, + 0x8424: 0x4027de20, 0x8425: 0x4004ec20, 0x8426: 0x4004e620, 0x8427: 0x4003d220, + 0x8428: 0x4003f420, 0x8429: 0x4003f620, 0x842a: 0x4004d820, 0x842b: 0x40093820, + 0x842c: 0x40024020, 0x842d: 0x40021a20, 0x842e: 0x4002e420, 0x842f: 0x4004e220, + 0x8430: 0x4029cc20, 0x8431: 0x4029ce20, 0x8432: 0x4029d020, 0x8433: 0x4029d220, + 0x8434: 0x4029d420, 0x8435: 0x4029d620, 0x8436: 0x4029d820, 0x8437: 0x4029da20, + 0x8438: 0x4029dc20, 0x8439: 0x4029de20, 0x843a: 0x40026c20, 0x843b: 0x40026220, + 0x843c: 0x40094020, 0x843d: 0xc32f0851, 0x843e: 0x40094420, 0x843f: 0x4002c420, + // Block 0x211, offset 0x8440 + 0x8440: 0x4004d620, 0x8441: 0x002bde88, 0x8442: 0x002c0a88, 0x8443: 0xc3b708f1, + 0x8444: 0xc3bd0b13, 0x8445: 0x002c9888, 0x8446: 0x002d0888, 0x8447: 0x002d2288, + 0x8448: 0x002d6888, 0x8449: 0x002d9a88, 0x844a: 0x002dcc88, 0x844b: 0x002dfe88, + 0x844c: 0xc3c60be4, 0x844d: 0x002e8288, 0x844e: 0xc3cb0c52, 0x844f: 0x002ee288, + 0x8450: 0x002f2c88, 0x8451: 0x002f5688, 0x8452: 0x002f7a88, 0x8453: 0xc34908d1, + 0x8454: 0x00302c88, 0x8455: 0x00306c88, 0x8456: 0x0030be88, 0x8457: 0x0030e288, + 0x8458: 0x0030f688, 0x8459: 0x00310088, 0x845a: 0xc37f08d1, 0x845b: 0x4003f820, + 0x845c: 0x4004e420, 0x845d: 0x4003fa20, 0x845e: 0x40062420, 0x845f: 0x40021620, + 0x8460: 0x40061e20, 0x8461: 0x402bde20, 0x8462: 0x402c0a20, 0x8463: 0xc3b408f1, + 0x8464: 0xc3ba0ac2, 0x8465: 0x402c9820, 0x8466: 0x402d0820, 0x8467: 0x402d2220, + 0x8468: 0x402d6820, 0x8469: 0x402d9a20, 0x846a: 0x402dcc20, 0x846b: 0x402dfe20, + 0x846c: 0xc3c20b93, 0x846d: 0x402e8220, 0x846e: 0xc3670c41, 0x846f: 0x402ee220, + 0x8470: 0x402f2c20, 0x8471: 0x402f5620, 0x8472: 0x402f7a20, 0x8473: 0xc34708d1, + 0x8474: 0x40302c20, 0x8475: 0x40306c20, 0x8476: 0x4030be20, 0x8477: 0x4030e220, + 0x8478: 0x4030f620, 0x8479: 0x40310020, 0x847a: 0xc37d08d1, 0x847b: 0x4003fc20, + 0x847c: 0x40094820, 0x847d: 0x4003fe20, 0x847e: 0x40094c20, 0x847f: 0xa0000000, + // Block 0x212, offset 0x8480 + 0x8480: 0xe0000983, 0x8481: 0xe0000980, 0x8482: 0xe00008fb, 0x8483: 0xe00008f8, + 0x8484: 0xe000097d, 0x8485: 0xe000097a, 0x8486: 0x002c3e83, 0x8487: 0x402c3e20, + 0x8488: 0xe0000a3e, 0x8489: 0xe0000a3b, 0x848a: 0xe0000a4a, 0x848b: 0xe0000a47, + 0x848c: 0x002c3c83, 0x848d: 0x402c3c20, 0x848e: 0xe0000a86, 0x848f: 0xe0000a83, + 0x8490: 0x002c6683, 0x8491: 0x402c6620, 0x8492: 0xe0000b46, 0x8493: 0xe0000b43, + 0x8494: 0xe0000aee, 0x8495: 0xe0000aeb, 0x8496: 0xe0000b2c, 0x8497: 0xe0000b29, + 0x8498: 0xe0000b40, 0x8499: 0xe0000b3d, 0x849a: 0xe0000b1a, 0x849b: 0xe0000b17, + 0x849c: 0xe0000bb8, 0x849d: 0xe0000bb5, 0x849e: 0xe0000bb2, 0x849f: 0xe0000baf, + 0x84a0: 0xe0000bc4, 0x84a1: 0xe0000bc1, 0x84a2: 0xe0000bca, 0x84a3: 0xe0000bc7, + 0x84a4: 0xe0000bee, 0x84a5: 0xe0000beb, 0x84a6: 0xe0000c1b, 0x84a7: 0xe0000c18, + 0x84a8: 0xe0000c51, 0x84a9: 0xe0000c4e, 0x84aa: 0xe0000c60, 0x84ab: 0xe0000c5d, + 0x84ac: 0xe0000c31, 0x84ad: 0xe0000c2e, 0x84ae: 0xe0000c5a, 0x84af: 0xe0000c57, + 0x84b0: 0xe0000c54, 0x84b1: 0x402da220, 0x84b2: 0xf0000a0a, 0x84b3: 0xf0000404, + 0x84b4: 0xe0000c8a, 0x84b5: 0xe0000c87, 0x84b6: 0xe0000c9f, 0x84b7: 0xe0000c9c, + 0x84b8: 0x402f7220, 0x84b9: 0xe0000ccc, 0x84ba: 0xe0000cc9, 0x84bb: 0xe0000cd8, + 0x84bc: 0xe0000cd5, 0x84bd: 0xe0000cd2, 0x84be: 0xe0000ccf, 0x84bf: 0xe0000d04, + // Block 0x213, offset 0x84c0 + 0x84c0: 0xe0000cfe, 0x84c1: 0xe0000cf8, 0x84c2: 0xe0000cf5, 0x84c3: 0xe0000d51, + 0x84c4: 0xe0000d4e, 0x84c5: 0xe0000d6f, 0x84c6: 0xe0000d6c, 0x84c7: 0xe0000d5d, + 0x84c8: 0xe0000d5a, 0x84c9: 0xf0000404, 0x84ca: 0x002eda88, 0x84cb: 0x402eda20, + 0x84cc: 0xe0000e2e, 0x84cd: 0xe0000e2b, 0x84ce: 0xe0000da0, 0x84cf: 0xe0000d9d, + 0x84d0: 0xe0000de0, 0x84d1: 0xe0000ddd, 0x84d2: 0xe0000e93, 0x84d3: 0xe0000e8f, + 0x84d4: 0xe0000eca, 0x84d5: 0xe0000ec7, 0x84d6: 0xe0000edc, 0x84d7: 0xe0000ed9, + 0x84d8: 0xe0000ed0, 0x84d9: 0xe0000ecd, 0x84da: 0xe0000f1f, 0x84db: 0xe0000f1c, + 0x84dc: 0xe0000f2d, 0x84dd: 0xe0000f2a, 0x84de: 0xe0000f47, 0x84df: 0xe0000f44, + 0x84e0: 0x002fe883, 0x84e1: 0x402fe820, 0x84e2: 0xe0000f99, 0x84e3: 0xe0000f96, + 0x84e4: 0xe0000f8a, 0x84e5: 0xe0000f87, 0x84e6: 0x00303688, 0x84e7: 0x40303620, + 0x84e8: 0xe000102b, 0x84e9: 0xe0001028, 0x84ea: 0xe000103f, 0x84eb: 0xe000103c, + 0x84ec: 0xe0000fe7, 0x84ed: 0xe0000fe4, 0x84ee: 0xe0000ff9, 0x84ef: 0xe0000ff6, + 0x84f0: 0xe0001025, 0x84f1: 0xe0001022, 0x84f2: 0xe0001039, 0x84f3: 0xe0001036, + 0x84f4: 0xe00010d8, 0x84f5: 0xe00010d5, 0x84f6: 0xe000110e, 0x84f7: 0xe000110b, + 0x84f8: 0xe0001117, 0x84f9: 0xe000113b, 0x84fa: 0xe0001138, 0x84fb: 0xe000114d, + 0x84fc: 0xe000114a, 0x84fd: 0x00312c83, 0x84fe: 0x40312c20, 0x84ff: 0xe0000f64, + // Block 0x214, offset 0x8500 + 0x8500: 0x40321220, 0x8501: 0x40321a20, 0x8502: 0x40322220, 0x8503: 0x40322a20, + 0x8504: 0x002c6487, 0x8505: 0x002c6485, 0x8506: 0x002c6483, 0x8507: 0x002e2487, + 0x8508: 0x002e2485, 0x8509: 0x002e2483, 0x850a: 0x002ea087, 0x850b: 0x002ea085, + 0x850c: 0x002ea083, 0x850d: 0xe0000947, 0x850e: 0xe0000944, 0x850f: 0xe0000c3d, + 0x8510: 0xe0000c3a, 0x8511: 0xe0000dcc, 0x8512: 0xe0000dc9, 0x8513: 0xe0000ff3, + 0x8514: 0xe0000ff0, 0x8515: 0xe000101e, 0x8516: 0xe000101a, 0x8517: 0xe0001006, + 0x8518: 0xe0001002, 0x8519: 0xe0001016, 0x851a: 0xe0001012, 0x851b: 0xe000100e, + 0x851c: 0xe000100a, 0x851d: 0x402cae20, 0x851e: 0xe0000962, 0x851f: 0xe000095e, + 0x8520: 0xe0000976, 0x8521: 0xe0000972, 0x8522: 0xe00009f4, 0x8523: 0xe00009ef, + 0x8524: 0x002d3a88, 0x8525: 0x402d3a20, 0x8526: 0xe0000bbe, 0x8527: 0xe0000bbb, + 0x8528: 0xe0000c99, 0x8529: 0xe0000c96, 0x852a: 0xe0000e20, 0x852b: 0xe0000e1d, + 0x852c: 0xe0000e27, 0x852d: 0xe0000e23, 0x852e: 0xe0001162, 0x852f: 0xe000115f, + 0x8530: 0xe0000c8d, 0x8531: 0xf0000a0a, 0x8532: 0xf000040a, 0x8533: 0xf0000404, + 0x8534: 0xe0000bac, 0x8535: 0xe0000ba9, 0x8536: 0x002d7888, 0x8537: 0x00319488, + 0x8538: 0xe0000d57, 0x8539: 0xe0000d54, 0x853a: 0xe0000954, 0x853b: 0xe0000950, + 0x853c: 0xe00009ea, 0x853d: 0xe00009e5, 0x853e: 0xe0000e19, 0x853f: 0xe0000e15, + // Block 0x215, offset 0x8540 + 0x8540: 0xe00009b1, 0x8541: 0xe00009ae, 0x8542: 0xe0000a22, 0x8543: 0xe0000a1f, + 0x8544: 0xe0000a28, 0x8545: 0xe0000a25, 0x8546: 0xe0000a2e, 0x8547: 0xe0000a2b, + 0x8548: 0xe0002785, 0x8549: 0xe0002782, 0x854a: 0xe0000a8c, 0x854b: 0xe0000a89, + 0x854c: 0xe0000a98, 0x854d: 0xe0000a95, 0x854e: 0xe0000aa4, 0x854f: 0xe0000aa1, + 0x8550: 0xe0000a92, 0x8551: 0xe0000a8f, 0x8552: 0xe0000a9e, 0x8553: 0xe0000a9b, + 0x8554: 0xe0000b55, 0x8555: 0xe0000b51, 0x8556: 0xe0000b4d, 0x8557: 0xe0000b49, + 0x8558: 0xe0000b7c, 0x8559: 0xe0000b79, 0x855a: 0xe0000b82, 0x855b: 0xe0000b7f, + 0x855c: 0xe0000b39, 0x855d: 0xe0000b35, 0x855e: 0xe0000b8c, 0x855f: 0xe0000b89, + 0x8560: 0xe0000bd0, 0x8561: 0xe0000bcd, 0x8562: 0xe0000c00, 0x8563: 0xe0000bfd, + 0x8564: 0xe0000c0c, 0x8565: 0xe0000c09, 0x8566: 0xe0000bfa, 0x8567: 0xe0000bf7, + 0x8568: 0xe0000c06, 0x8569: 0xe0000c03, 0x856a: 0xe0000c12, 0x856b: 0xe0000c0f, + 0x856c: 0xe0000c7e, 0x856d: 0xe0000c7b, 0x856e: 0xe0000c4a, 0x856f: 0xe0000c46, + 0x8570: 0xe0000c93, 0x8571: 0xe0000c90, 0x8572: 0xe0000cab, 0x8573: 0xe0000ca8, + 0x8574: 0xe0000cb1, 0x8575: 0xe0000cae, 0x8576: 0xe0000cde, 0x8577: 0xe0000cdb, + 0x8578: 0xe0000ce5, 0x8579: 0xe0000ce1, 0x857a: 0xe0000cf2, 0x857b: 0xe0000cef, + 0x857c: 0xe0000cec, 0x857d: 0xe0000ce9, 0x857e: 0xe0000d1e, 0x857f: 0xe0000d1b, + // Block 0x216, offset 0x8580 + 0x8580: 0xe0000d24, 0x8581: 0xe0000d21, 0x8582: 0xe0000d2a, 0x8583: 0xe0000d27, + 0x8584: 0xe0000d69, 0x8585: 0xe0000d66, 0x8586: 0xe0000d7b, 0x8587: 0xe0000d78, + 0x8588: 0xe0000d87, 0x8589: 0xe0000d84, 0x858a: 0xe0000d81, 0x858b: 0xe0000d7e, + 0x858c: 0xe0000ded, 0x858d: 0xe0000de9, 0x858e: 0xe0000df5, 0x858f: 0xe0000df1, + 0x8590: 0xe0000e3d, 0x8591: 0xe0000e39, 0x8592: 0xe0000e35, 0x8593: 0xe0000e31, + 0x8594: 0xe0000ea7, 0x8595: 0xe0000ea4, 0x8596: 0xe0000ead, 0x8597: 0xe0000eaa, + 0x8598: 0xe0000ed6, 0x8599: 0xe0000ed3, 0x859a: 0xe0000ef4, 0x859b: 0xe0000ef1, + 0x859c: 0xe0000efb, 0x859d: 0xe0000ef7, 0x859e: 0xe0000f02, 0x859f: 0xe0000eff, + 0x85a0: 0xe0000f41, 0x85a1: 0xe0000f3e, 0x85a2: 0xe0000f53, 0x85a3: 0xe0000f50, + 0x85a4: 0xe0000f26, 0x85a5: 0xe0000f22, 0x85a6: 0xe0002652, 0x85a7: 0xe000264f, + 0x85a8: 0xe0000f5a, 0x85a9: 0xe0000f56, 0x85aa: 0xe0000f93, 0x85ab: 0xe0000f90, + 0x85ac: 0xe0000f9f, 0x85ad: 0xe0000f9c, 0x85ae: 0xe0000fb1, 0x85af: 0xe0000fae, + 0x85b0: 0xe0000fab, 0x85b1: 0xe0000fa8, 0x85b2: 0xe0001093, 0x85b3: 0xe0001090, + 0x85b4: 0xe000109f, 0x85b5: 0xe000109c, 0x85b6: 0xe0001099, 0x85b7: 0xe0001096, + 0x85b8: 0xe0001032, 0x85b9: 0xe000102e, 0x85ba: 0xe0001046, 0x85bb: 0xe0001042, + 0x85bc: 0xe00010a9, 0x85bd: 0xe00010a6, 0x85be: 0xe00010af, 0x85bf: 0xe00010ac, + // Block 0x217, offset 0x85c0 + 0x85c0: 0xa0000000, 0x85c1: 0xa0000000, 0x85c2: 0xa0000000, 0x85c3: 0xa0000000, + 0x85c4: 0xa0000000, 0x85c5: 0xa0000000, 0x85c6: 0xa0000000, 0x85c7: 0xa0000000, + 0x85c8: 0xa0000000, 0x85c9: 0x40020020, 0x85ca: 0x40020220, 0x85cb: 0x40020420, + 0x85cc: 0x40020620, 0x85cd: 0x40020820, 0x85ce: 0xa0000000, 0x85cf: 0xa0000000, + 0x85d0: 0xa0000000, 0x85d1: 0xa0000000, 0x85d2: 0xa0000000, 0x85d3: 0xa0000000, + 0x85d4: 0xa0000000, 0x85d5: 0xa0000000, 0x85d6: 0xa0000000, 0x85d7: 0xa0000000, + 0x85d8: 0xa0000000, 0x85d9: 0xa0000000, 0x85da: 0xa0000000, 0x85db: 0xa0000000, + 0x85dc: 0xa0000000, 0x85dd: 0xa0000000, 0x85de: 0xa0000000, 0x85df: 0xa0000000, + 0x85e0: 0x40021220, 0x85e1: 0x4002ba20, 0x85e2: 0x4003e020, 0x85e3: 0x4004ea20, + 0x85e4: 0x4027de20, 0x85e5: 0x4004ec20, 0x85e6: 0x4004e620, 0x85e7: 0x4003d220, + 0x85e8: 0x4003f420, 0x85e9: 0x4003f620, 0x85ea: 0x4004d820, 0x85eb: 0x40093820, + 0x85ec: 0x40024020, 0x85ed: 0x40021a20, 0x85ee: 0x4002e420, 0x85ef: 0x4004e220, + 0x85f0: 0x4029cc20, 0x85f1: 0x4029ce20, 0x85f2: 0x4029d020, 0x85f3: 0x4029d220, + 0x85f4: 0x4029d420, 0x85f5: 0x4029d620, 0x85f6: 0x4029d820, 0x85f7: 0x4029da20, + 0x85f8: 0x4029dc20, 0x85f9: 0x4029de20, 0x85fa: 0x40026c20, 0x85fb: 0x40026220, + 0x85fc: 0x40094020, 0x85fd: 0xc32f0851, 0x85fe: 0x40094420, 0x85ff: 0x4002c420, + // Block 0x218, offset 0x8600 + 0x8600: 0x4004d620, 0x8601: 0xc3d20c71, 0x8602: 0x002c0a88, 0x8603: 0x002c3a88, + 0x8604: 0x002c6288, 0x8605: 0xc3d808b1, 0x8606: 0x002d0888, 0x8607: 0x002d2288, + 0x8608: 0x002d6888, 0x8609: 0xc3dc08b1, 0x860a: 0x002dcc88, 0x860b: 0x002dfe88, + 0x860c: 0xc0030002, 0x860d: 0x002e8288, 0x860e: 0x002e9e88, 0x860f: 0xc3e10cb1, + 0x8610: 0x002f2c88, 0x8611: 0x002f5688, 0x8612: 0x002f7a88, 0x8613: 0x002fe688, + 0x8614: 0x00302c88, 0x8615: 0xc3e608b1, 0x8616: 0x0030be88, 0x8617: 0x0030e288, + 0x8618: 0x0030f688, 0x8619: 0xc3ea08b1, 0x861a: 0x00312a88, 0x861b: 0x4003f820, + 0x861c: 0x4004e420, 0x861d: 0x4003fa20, 0x861e: 0x40062420, 0x861f: 0x40021620, + 0x8620: 0x40061e20, 0x8621: 0xc3ce0c71, 0x8622: 0x402c0a20, 0x8623: 0x402c3a20, + 0x8624: 0x402c6220, 0x8625: 0xc3d608b1, 0x8626: 0x402d0820, 0x8627: 0x402d2220, + 0x8628: 0x402d6820, 0x8629: 0xc3da08b1, 0x862a: 0x402dcc20, 0x862b: 0x402dfe20, + 0x862c: 0xc0000002, 0x862d: 0x402e8220, 0x862e: 0x402e9e20, 0x862f: 0xc3de0cb1, + 0x8630: 0x402f2c20, 0x8631: 0x402f5620, 0x8632: 0x402f7a20, 0x8633: 0x402fe620, + 0x8634: 0x40302c20, 0x8635: 0xc3e408b1, 0x8636: 0x4030be20, 0x8637: 0x4030e220, + 0x8638: 0x4030f620, 0x8639: 0xc3e808b1, 0x863a: 0x40312a20, 0x863b: 0x4003fc20, + 0x863c: 0x40094820, 0x863d: 0x4003fe20, 0x863e: 0x40094c20, 0x863f: 0xa0000000, + // Block 0x219, offset 0x8640 + 0x8640: 0xe00008f5, 0x8641: 0x002c0883, 0x8642: 0xe0000921, 0x8643: 0xe0000969, + 0x8644: 0x00320ca3, 0x8645: 0x00321083, 0x8646: 0x00320c83, 0x8647: 0xe0000a53, + 0x8648: 0xe0000ae8, 0x8649: 0x002d0683, 0x864a: 0xe0000af4, 0x864b: 0xe0000b20, + 0x864c: 0xe0000c2b, 0x864d: 0x002dca83, 0x864e: 0xe0000c37, 0x864f: 0xe0000c43, + 0x8650: 0x002c6483, 0x8651: 0xe0000d63, 0x8652: 0xe0000d9a, 0x8653: 0x002f2a83, + 0x8654: 0xe0000da6, 0x8655: 0xe0000de6, 0x8656: 0x00320e83, 0x8657: 0x40093e20, + 0x8658: 0x00320ea3, 0x8659: 0xe0000fe1, 0x865a: 0x0030bc83, 0x865b: 0xe0000fed, + 0x865c: 0xe0000fff, 0x865d: 0x00312883, 0x865e: 0x00318888, 0x865f: 0xe0000f7b, + 0x8660: 0xe00008f2, 0x8661: 0x402c0820, 0x8662: 0xe000091e, 0x8663: 0xe0000966, + 0x8664: 0x40320c21, 0x8665: 0x40321020, 0x8666: 0x40320c20, 0x8667: 0xe0000a4d, + 0x8668: 0xe0000ae5, 0x8669: 0x402d0620, 0x866a: 0xe0000af1, 0x866b: 0xe0000b1d, + 0x866c: 0xe0000c28, 0x866d: 0x402dca20, 0x866e: 0xe0000c34, 0x866f: 0xe0000c40, + 0x8670: 0x402c6420, 0x8671: 0xe0000d60, 0x8672: 0xe0000d97, 0x8673: 0x402f2a20, + 0x8674: 0xe0000da3, 0x8675: 0xe0000de3, 0x8676: 0x40320e20, 0x8677: 0x40093c20, + 0x8678: 0x40320e21, 0x8679: 0xe0000fde, 0x867a: 0x4030bc20, 0x867b: 0xe0000fea, + 0x867c: 0xe0000ffc, 0x867d: 0x40312820, 0x867e: 0x40318820, 0x867f: 0xe0001114, + // Block 0x21a, offset 0x8680 + 0x8680: 0xe0000983, 0x8681: 0xe0000980, 0x8682: 0xe00008fb, 0x8683: 0xe00008f8, + 0x8684: 0xe000097d, 0x8685: 0xe000097a, 0x8686: 0xe0000a38, 0x8687: 0xe0000a35, + 0x8688: 0xe0000a3e, 0x8689: 0xe0000a3b, 0x868a: 0xe0000a4a, 0x868b: 0xe0000a47, + 0x868c: 0xe0000a44, 0x868d: 0xe0000a41, 0x868e: 0xe0000a86, 0x868f: 0xe0000a83, + 0x8690: 0x002c62a3, 0x8691: 0x402c6221, 0x8692: 0xe0000b46, 0x8693: 0xe0000b43, + 0x8694: 0xe0000aee, 0x8695: 0xe0000aeb, 0x8696: 0xe0000b2c, 0x8697: 0xe0000b29, + 0x8698: 0xe0000b40, 0x8699: 0xe0000b3d, 0x869a: 0xe0000b1a, 0x869b: 0xe0000b17, + 0x869c: 0xe0000bb8, 0x869d: 0xe0000bb5, 0x869e: 0xe0000bb2, 0x869f: 0xe0000baf, + 0x86a0: 0xe0000bc4, 0x86a1: 0xe0000bc1, 0x86a2: 0xe0000bca, 0x86a3: 0xe0000bc7, + 0x86a4: 0xe0000bee, 0x86a5: 0xe0000beb, 0x86a6: 0xe0000c1b, 0x86a7: 0xe0000c18, + 0x86a8: 0xe0000c51, 0x86a9: 0xe0000c4e, 0x86aa: 0xe0000c60, 0x86ab: 0xe0000c5d, + 0x86ac: 0xe0000c31, 0x86ad: 0xe0000c2e, 0x86ae: 0xe0000c5a, 0x86af: 0xe0000c57, + 0x86b0: 0xe0000c54, 0x86b1: 0x402da220, 0x86b2: 0xf0000a0a, 0x86b3: 0xf0000404, + 0x86b4: 0xe0000c8a, 0x86b5: 0xe0000c87, 0x86b6: 0xe0000c9f, 0x86b7: 0xe0000c9c, + 0x86b8: 0x402f7220, 0x86b9: 0xe0000ccc, 0x86ba: 0xe0000cc9, 0x86bb: 0xe0000cd8, + 0x86bc: 0xe0000cd5, 0x86bd: 0xe0000cd2, 0x86be: 0xe0000ccf, 0x86bf: 0xe0000d04, + // Block 0x21b, offset 0x86c0 + 0x86c0: 0x40321220, 0x86c1: 0x40321a20, 0x86c2: 0x40322220, 0x86c3: 0x40322a20, + 0x86c4: 0xe0000ad5, 0x86c5: 0xe0000ad1, 0x86c6: 0xe0000acd, 0x86c7: 0xf0000a0a, + 0x86c8: 0xf000040a, 0x86c9: 0xf0000404, 0x86ca: 0xf0000a0a, 0x86cb: 0xf000040a, + 0x86cc: 0xf0000404, 0x86cd: 0xe0000947, 0x86ce: 0xe0000944, 0x86cf: 0xe0000c3d, + 0x86d0: 0xe0000c3a, 0x86d1: 0xe0000dcc, 0x86d2: 0xe0000dc9, 0x86d3: 0xe0000ff3, + 0x86d4: 0xe0000ff0, 0x86d5: 0xe000101e, 0x86d6: 0xe000101a, 0x86d7: 0xe00027c1, + 0x86d8: 0xe00027be, 0x86d9: 0xe0001016, 0x86da: 0xe0001012, 0x86db: 0xe000100e, + 0x86dc: 0xe000100a, 0x86dd: 0x402cae20, 0x86de: 0xe0002697, 0x86df: 0xe0002694, + 0x86e0: 0xe0000976, 0x86e1: 0xe0000972, 0x86e2: 0xe0002691, 0x86e3: 0xe000268e, + 0x86e4: 0x002d3a88, 0x86e5: 0x402d3a20, 0x86e6: 0xe0000bbe, 0x86e7: 0xe0000bbb, + 0x86e8: 0xe0000c99, 0x86e9: 0xe0000c96, 0x86ea: 0xe0000e20, 0x86eb: 0xe0000e1d, + 0x86ec: 0xe0000e27, 0x86ed: 0xe0000e23, 0x86ee: 0xe0001162, 0x86ef: 0xe000115f, + 0x86f0: 0xe0000c8d, 0x86f1: 0xf0000a0a, 0x86f2: 0xf000040a, 0x86f3: 0xf0000404, + 0x86f4: 0xe0000bac, 0x86f5: 0xe0000ba9, 0x86f6: 0x002d7888, 0x86f7: 0x00319488, + 0x86f8: 0xe0000d57, 0x86f9: 0xe0000d54, 0x86fa: 0xe00026af, 0x86fb: 0xe00026ac, + 0x86fc: 0xe000268b, 0x86fd: 0xe0002688, 0x86fe: 0xe0002752, 0x86ff: 0xe000274f, + // Block 0x21c, offset 0x8700 + 0x8700: 0xe000098f, 0x8701: 0xe000098c, 0x8702: 0xe0000995, 0x8703: 0xe0000992, + 0x8704: 0xe0000b62, 0x8705: 0xe0000b5f, 0x8706: 0xe0000b68, 0x8707: 0xe0000b65, + 0x8708: 0xe0000c6c, 0x8709: 0xe0000c69, 0x870a: 0xe0000c72, 0x870b: 0xe0000c6f, + 0x870c: 0xe0000e4a, 0x870d: 0xe0000e47, 0x870e: 0xe0000e50, 0x870f: 0xe0000e4d, + 0x8710: 0xe0000ee8, 0x8711: 0xe0000ee5, 0x8712: 0xe0000eee, 0x8713: 0xe0000eeb, + 0x8714: 0xe0001053, 0x8715: 0xe0001050, 0x8716: 0xe0001059, 0x8717: 0xe0001056, + 0x8718: 0xe0000f61, 0x8719: 0xe0000f5e, 0x871a: 0xe0000fa5, 0x871b: 0xe0000fa2, + 0x871c: 0x00312288, 0x871d: 0x40312220, 0x871e: 0xe0000bf4, 0x871f: 0xe0000bf1, + 0x8720: 0x002ebc88, 0x8721: 0x402c8c20, 0x8722: 0x002f2288, 0x8723: 0x402f2220, + 0x8724: 0x00314088, 0x8725: 0x40314020, 0x8726: 0xe000096f, 0x8727: 0xe000096c, + 0x8728: 0xe0000b32, 0x8729: 0xe0000b2f, 0x872a: 0xe000274c, 0x872b: 0xe0002749, + 0x872c: 0xe0000dfd, 0x872d: 0xe0000df9, 0x872e: 0xe0000e04, 0x872f: 0xe0000e01, + 0x8730: 0xe0000e0b, 0x8731: 0xe0000e07, 0x8732: 0xe0001129, 0x8733: 0xe0001126, + 0x8734: 0x402e5e20, 0x8735: 0x402ed020, 0x8736: 0x40305a20, 0x8737: 0x402dd420, + 0x8738: 0xe0000abf, 0x8739: 0xe0000ec4, 0x873a: 0x002be888, 0x873b: 0x002c4488, + 0x873c: 0x402c4420, 0x873d: 0x002e3888, 0x873e: 0x00303e88, 0x873f: 0x402ffc20, + // Block 0x21d, offset 0x8740 + 0x8740: 0xe00009b1, 0x8741: 0xe00009ae, 0x8742: 0xe0000a22, 0x8743: 0xe0000a1f, + 0x8744: 0xe0000a28, 0x8745: 0xe0000a25, 0x8746: 0xe0000a2e, 0x8747: 0xe0000a2b, + 0x8748: 0xe0000a5a, 0x8749: 0xe0000a56, 0x874a: 0xe0000a8c, 0x874b: 0xe0000a89, + 0x874c: 0xe0000a98, 0x874d: 0xe0000a95, 0x874e: 0xe0000aa4, 0x874f: 0xe0000aa1, + 0x8750: 0xe0000a92, 0x8751: 0xe0000a8f, 0x8752: 0xe0000a9e, 0x8753: 0xe0000a9b, + 0x8754: 0xe0000b55, 0x8755: 0xe0000b51, 0x8756: 0xe000279d, 0x8757: 0xe000279a, + 0x8758: 0xe0000b7c, 0x8759: 0xe0000b79, 0x875a: 0xe0000b82, 0x875b: 0xe0000b7f, + 0x875c: 0xe0000b39, 0x875d: 0xe0000b35, 0x875e: 0xe0000b8c, 0x875f: 0xe0000b89, + 0x8760: 0xe0000bd0, 0x8761: 0xe0000bcd, 0x8762: 0xe0000c00, 0x8763: 0xe0000bfd, + 0x8764: 0xe0000c0c, 0x8765: 0xe0000c09, 0x8766: 0xe0000bfa, 0x8767: 0xe0000bf7, + 0x8768: 0xe0000c06, 0x8769: 0xe0000c03, 0x876a: 0xe0000c12, 0x876b: 0xe0000c0f, + 0x876c: 0xe0000c7e, 0x876d: 0xe0000c7b, 0x876e: 0xe00027a3, 0x876f: 0xe00027a0, + 0x8770: 0xe0000c93, 0x8771: 0xe0000c90, 0x8772: 0xe0000cab, 0x8773: 0xe0000ca8, + 0x8774: 0xe0000cb1, 0x8775: 0xe0000cae, 0x8776: 0xe0000cde, 0x8777: 0xe0000cdb, + 0x8778: 0xe0000ce5, 0x8779: 0xe0000ce1, 0x877a: 0xe0000cf2, 0x877b: 0xe0000cef, + 0x877c: 0xe0000cec, 0x877d: 0xe0000ce9, 0x877e: 0xe0000d1e, 0x877f: 0xe0000d1b, + // Block 0x21e, offset 0x8780 + 0x8780: 0xe0000d24, 0x8781: 0xe0000d21, 0x8782: 0xe0000d2a, 0x8783: 0xe0000d27, + 0x8784: 0xe0000d69, 0x8785: 0xe0000d66, 0x8786: 0xe0000d7b, 0x8787: 0xe0000d78, + 0x8788: 0xe0000d87, 0x8789: 0xe0000d84, 0x878a: 0xe0000d81, 0x878b: 0xe0000d7e, + 0x878c: 0xe00027af, 0x878d: 0xe00027ac, 0x878e: 0xe00027d3, 0x878f: 0xe00027d0, + 0x8790: 0xe0000e3d, 0x8791: 0xe0000e39, 0x8792: 0xe00027b5, 0x8793: 0xe00027b2, + 0x8794: 0xe0000ea7, 0x8795: 0xe0000ea4, 0x8796: 0xe0000ead, 0x8797: 0xe0000eaa, + 0x8798: 0xe0000ed6, 0x8799: 0xe0000ed3, 0x879a: 0xe0000ef4, 0x879b: 0xe0000ef1, + 0x879c: 0xe0000efb, 0x879d: 0xe0000ef7, 0x879e: 0xe0000f02, 0x879f: 0xe0000eff, + 0x87a0: 0xe0000f41, 0x87a1: 0xe0000f3e, 0x87a2: 0xe0000f53, 0x87a3: 0xe0000f50, + 0x87a4: 0xe0000f26, 0x87a5: 0xe0000f22, 0x87a6: 0xe0000f3a, 0x87a7: 0xe0000f36, + 0x87a8: 0xe0000f5a, 0x87a9: 0xe0000f56, 0x87aa: 0xe0000f93, 0x87ab: 0xe0000f90, + 0x87ac: 0xe0000f9f, 0x87ad: 0xe0000f9c, 0x87ae: 0xe0000fb1, 0x87af: 0xe0000fae, + 0x87b0: 0xe0000fab, 0x87b1: 0xe0000fa8, 0x87b2: 0xe0001093, 0x87b3: 0xe0001090, + 0x87b4: 0xe000109f, 0x87b5: 0xe000109c, 0x87b6: 0xe0001099, 0x87b7: 0xe0001096, + 0x87b8: 0xe00027c7, 0x87b9: 0xe00027c4, 0x87ba: 0xe0001046, 0x87bb: 0xe0001042, + 0x87bc: 0xe00010a9, 0x87bd: 0xe00010a6, 0x87be: 0xe00010af, 0x87bf: 0xe00010ac, + // Block 0x21f, offset 0x87c0 + 0x87c0: 0xe00010d2, 0x87c1: 0xe00010cf, 0x87c2: 0xe00010cc, 0x87c3: 0xe00010c9, + 0x87c4: 0xe00010e1, 0x87c5: 0xe00010de, 0x87c6: 0xe00010e7, 0x87c7: 0xe00010e4, + 0x87c8: 0xe00010ed, 0x87c9: 0xe00010ea, 0x87ca: 0xe00010fc, 0x87cb: 0xe00010f9, + 0x87cc: 0xe00010f6, 0x87cd: 0xe00010f3, 0x87ce: 0xe0001123, 0x87cf: 0xe0001120, + 0x87d0: 0xe0001141, 0x87d1: 0xe000113e, 0x87d2: 0xe0001153, 0x87d3: 0xe0001150, + 0x87d4: 0xe0001159, 0x87d5: 0xe0001156, 0x87d6: 0xe0000c15, 0x87d7: 0xe0000f8d, + 0x87d8: 0xe00010db, 0x87d9: 0xe0001111, 0x87da: 0xf0000404, 0x87db: 0xe0000f70, + 0x87dc: 0x40300420, 0x87dd: 0x40300620, 0x87de: 0xe0000f7f, 0x87df: 0x402c9620, + 0x87e0: 0xe000099b, 0x87e1: 0xe0000998, 0x87e2: 0xe0000989, 0x87e3: 0xe0000986, + 0x87e4: 0xe0002791, 0x87e5: 0xe000278e, 0x87e6: 0xe0000930, 0x87e7: 0xe000092c, + 0x87e8: 0xe0000940, 0x87e9: 0xe000093c, 0x87ea: 0xe0000938, 0x87eb: 0xe0000934, + 0x87ec: 0xe00009aa, 0x87ed: 0xe00009a6, 0x87ee: 0xe000278b, 0x87ef: 0xe0002788, + 0x87f0: 0xe000090a, 0x87f1: 0xe0000906, 0x87f2: 0xe000091a, 0x87f3: 0xe0000916, + 0x87f4: 0xe0000912, 0x87f5: 0xe000090e, 0x87f6: 0xe00009a2, 0x87f7: 0xe000099e, + 0x87f8: 0xe0000b6e, 0x87f9: 0xe0000b6b, 0x87fa: 0xe0000b5c, 0x87fb: 0xe0000b59, + 0x87fc: 0xe0000b26, 0x87fd: 0xe0000b23, 0x87fe: 0xe0002797, 0x87ff: 0xe0002794, + // Block 0x220, offset 0x8800 + 0x8800: 0xe0000b03, 0x8801: 0xe0000aff, 0x8802: 0xe0000b13, 0x8803: 0xe0000b0f, + 0x8804: 0xe0000b0b, 0x8805: 0xe0000b07, 0x8806: 0xe0000b75, 0x8807: 0xe0000b71, + 0x8808: 0xe0000c66, 0x8809: 0xe0000c63, 0x880a: 0xe0000c78, 0x880b: 0xe0000c75, + 0x880c: 0xe0000e84, 0x880d: 0xe0000e81, 0x880e: 0xe0000e44, 0x880f: 0xe0000e41, + 0x8810: 0xe00027a9, 0x8811: 0xe00027a6, 0x8812: 0xe0000db5, 0x8813: 0xe0000db1, + 0x8814: 0xe0000dc5, 0x8815: 0xe0000dc1, 0x8816: 0xe0000dbd, 0x8817: 0xe0000db9, + 0x8818: 0xe0000e8b, 0x8819: 0xe0000e87, 0x881a: 0xe00027bb, 0x881b: 0xe00027b8, + 0x881c: 0xe0000e65, 0x881d: 0xe0000e61, 0x881e: 0xe0000e75, 0x881f: 0xe0000e71, + 0x8820: 0xe0000e6d, 0x8821: 0xe0000e69, 0x8822: 0xe0000e7d, 0x8823: 0xe0000e79, + 0x8824: 0xe000108d, 0x8825: 0xe000108a, 0x8826: 0xe000104d, 0x8827: 0xe000104a, + 0x8828: 0xe00027cd, 0x8829: 0xe00027ca, 0x882a: 0xe000106e, 0x882b: 0xe000106a, + 0x882c: 0xe000107e, 0x882d: 0xe000107a, 0x882e: 0xe0001076, 0x882f: 0xe0001072, + 0x8830: 0xe0001086, 0x8831: 0xe0001082, 0x8832: 0xe0001108, 0x8833: 0xe0001105, + 0x8834: 0xe0001135, 0x8835: 0xe0001132, 0x8836: 0xe000112f, 0x8837: 0xe000112c, + 0x8838: 0xe000111d, 0x8839: 0xe000111a, 0x883a: 0xe0000d0a, 0x883b: 0xe0000d07, + 0x883c: 0x0030d888, 0x883d: 0x4030d820, 0x883e: 0x00312088, 0x883f: 0x40312020, + // Block 0x221, offset 0x8840 + 0x8840: 0xa0000000, 0x8841: 0xa0000000, 0x8842: 0xa0000000, 0x8843: 0xa0000000, + 0x8844: 0xa0000000, 0x8845: 0xa0000000, 0x8846: 0xa0000000, 0x8847: 0xa0000000, + 0x8848: 0xa0000000, 0x8849: 0x40020020, 0x884a: 0x40020220, 0x884b: 0x40020420, + 0x884c: 0x40020620, 0x884d: 0x40020820, 0x884e: 0xa0000000, 0x884f: 0xa0000000, + 0x8850: 0xa0000000, 0x8851: 0xa0000000, 0x8852: 0xa0000000, 0x8853: 0xa0000000, + 0x8854: 0xa0000000, 0x8855: 0xa0000000, 0x8856: 0xa0000000, 0x8857: 0xa0000000, + 0x8858: 0xa0000000, 0x8859: 0xa0000000, 0x885a: 0xa0000000, 0x885b: 0xa0000000, + 0x885c: 0xa0000000, 0x885d: 0xa0000000, 0x885e: 0xa0000000, 0x885f: 0xa0000000, + 0x8860: 0x40021220, 0x8861: 0x4002ba20, 0x8862: 0x4003e020, 0x8863: 0x4004ea20, + 0x8864: 0x4027de20, 0x8865: 0x4004ec20, 0x8866: 0x4004e620, 0x8867: 0x4003d220, + 0x8868: 0x4003f420, 0x8869: 0x4003f620, 0x886a: 0x4004d820, 0x886b: 0x40093820, + 0x886c: 0x40024020, 0x886d: 0x40021a20, 0x886e: 0x4002e420, 0x886f: 0x4004e220, + 0x8870: 0x4029cc20, 0x8871: 0x4029ce20, 0x8872: 0x4029d020, 0x8873: 0x4029d220, + 0x8874: 0x4029d420, 0x8875: 0x4029d620, 0x8876: 0x4029d820, 0x8877: 0x4029da20, + 0x8878: 0x4029dc20, 0x8879: 0x4029de20, 0x887a: 0x40026c20, 0x887b: 0x40026220, + 0x887c: 0x40094020, 0x887d: 0xc32f0851, 0x887e: 0x40094420, 0x887f: 0x4002c420, + // Block 0x222, offset 0x8880 + 0x8880: 0x4004d620, 0x8881: 0xc3f10a51, 0x8882: 0x002c0a88, 0x8883: 0x002c3a88, + 0x8884: 0x002c6288, 0x8885: 0xc3920a11, 0x8886: 0x002d0888, 0x8887: 0x002d2288, + 0x8888: 0x002d6888, 0x8889: 0x002d9a88, 0x888a: 0x002dcc88, 0x888b: 0xc3ec0ce1, + 0x888c: 0xc0030002, 0x888d: 0x002e8288, 0x888e: 0x002e9e88, 0x888f: 0xc3970951, + 0x8890: 0x002f2c88, 0x8891: 0x002f5688, 0x8892: 0x002f7a88, 0x8893: 0x002fe688, + 0x8894: 0x00302c88, 0x8895: 0xc3840951, 0x8896: 0x0030be88, 0x8897: 0x0030e288, + 0x8898: 0x0030f688, 0x8899: 0x00310088, 0x889a: 0x00312a88, 0x889b: 0x4003f820, + 0x889c: 0x4004e420, 0x889d: 0x4003fa20, 0x889e: 0x40062420, 0x889f: 0x40021620, + 0x88a0: 0x40061e20, 0x88a1: 0xc3ee0a51, 0x88a2: 0x402c0a20, 0x88a3: 0x402c3a20, + 0x88a4: 0x402c6220, 0x88a5: 0xc3900a11, 0x88a6: 0x402d0820, 0x88a7: 0x402d2220, + 0x88a8: 0x402d6820, 0x88a9: 0x402d9a20, 0x88aa: 0x402dcc20, 0x88ab: 0x402dfe20, + 0x88ac: 0xc0000002, 0x88ad: 0x402e8220, 0x88ae: 0x402e9e20, 0x88af: 0xc3940951, + 0x88b0: 0x402f2c20, 0x88b1: 0x402f5620, 0x88b2: 0x402f7a20, 0x88b3: 0x402fe620, + 0x88b4: 0x40302c20, 0x88b5: 0xc3810951, 0x88b6: 0x4030be20, 0x88b7: 0x4030e220, + 0x88b8: 0x4030f620, 0x88b9: 0x40310020, 0x88ba: 0x40312a20, 0x88bb: 0x4003fc20, + 0x88bc: 0x40094820, 0x88bd: 0x4003fe20, 0x88be: 0x40094c20, 0x88bf: 0xa0000000, + // Block 0x223, offset 0x88c0 + 0x88c0: 0xe0000983, 0x88c1: 0xe0000980, 0x88c2: 0xe00008fb, 0x88c3: 0xe00008f8, + 0x88c4: 0xe000097d, 0x88c5: 0xe000097a, 0x88c6: 0xe0000a38, 0x88c7: 0xe0000a35, + 0x88c8: 0xe0000a3e, 0x88c9: 0xe0000a3b, 0x88ca: 0xe0000a4a, 0x88cb: 0xe0000a47, + 0x88cc: 0xe0000a44, 0x88cd: 0xe0000a41, 0x88ce: 0xe0000a86, 0x88cf: 0xe0000a83, + 0x88d0: 0x002c62a3, 0x88d1: 0x402c6221, 0x88d2: 0xe0000b46, 0x88d3: 0xe0000b43, + 0x88d4: 0xe0000aee, 0x88d5: 0xe0000aeb, 0x88d6: 0xe0000b2c, 0x88d7: 0xe0000b29, + 0x88d8: 0x00320cc3, 0x88d9: 0x40320c22, 0x88da: 0xe0000b1a, 0x88db: 0xe0000b17, + 0x88dc: 0xe0000bb8, 0x88dd: 0xe0000bb5, 0x88de: 0xe0000bb2, 0x88df: 0xe0000baf, + 0x88e0: 0xe0000bc4, 0x88e1: 0xe0000bc1, 0x88e2: 0xe0000bca, 0x88e3: 0xe0000bc7, + 0x88e4: 0xe0000bee, 0x88e5: 0xe0000beb, 0x88e6: 0xe0000c1b, 0x88e7: 0xe0000c18, + 0x88e8: 0xe0000c51, 0x88e9: 0xe0000c4e, 0x88ea: 0xe0000c60, 0x88eb: 0xe0000c5d, + 0x88ec: 0xe0000c31, 0x88ed: 0xe0000c2e, 0x88ee: 0xe0000c5a, 0x88ef: 0xe0000c57, + 0x88f0: 0xe0000c54, 0x88f1: 0x402da220, 0x88f2: 0xf0000a0a, 0x88f3: 0xf0000404, + 0x88f4: 0xe0000c8a, 0x88f5: 0xe0000c87, 0x88f6: 0xe0000c9f, 0x88f7: 0xe0000c9c, + 0x88f8: 0x402f5621, 0x88f9: 0xe0000ccc, 0x88fa: 0xe0000cc9, 0x88fb: 0xe0000cd8, + 0x88fc: 0xe0000cd5, 0x88fd: 0xe0000cd2, 0x88fe: 0xe0000ccf, 0x88ff: 0xe0000d04, + // Block 0x224, offset 0x8900 + 0x8900: 0x4062ac20, 0x8901: 0xe0002526, 0x8902: 0x4062b020, 0x8903: 0x4062b220, + 0x8904: 0xe0002532, 0x8905: 0x4062b620, 0x8906: 0x4062b820, 0x8907: 0x4062ba20, + 0x8908: 0xe000254a, 0x8909: 0x4062be20, 0x890a: 0xe0002550, 0x890b: 0x4062c220, + 0x890c: 0x4062c420, 0x890d: 0xe0002553, 0x890e: 0x4062c820, 0x890f: 0x4062ca20, + 0x8910: 0x4062cc20, 0x8911: 0x4062ce20, 0x8912: 0x4062d020, 0x8913: 0xe00027ef, + 0x8914: 0xe00027f2, 0x8915: 0xe00027f5, 0x8916: 0xe00027f8, 0x8917: 0xe0002801, + 0x8918: 0xe000280b, 0x8919: 0xe0002815, 0x891a: 0xe0002547, 0x891b: 0xe0002830, + 0x891c: 0xe000283c, 0x891d: 0xe0002846, 0x891e: 0xe000284f, 0x891f: 0xe0002852, + 0x8920: 0xe0002855, 0x8921: 0xe000254d, 0x8922: 0xe000285f, 0x8923: 0xe0002863, + 0x8924: 0xe0002867, 0x8925: 0xe000286b, 0x8926: 0xe000286f, 0x8927: 0xe0002876, + 0x8928: 0xe0002879, 0x8929: 0xe000287c, 0x892a: 0xe000287f, 0x892b: 0xe0002873, + 0x892c: 0xe000285b, 0x892d: 0xe0002885, 0x892e: 0xe0002888, 0x892f: 0xe000288b, + 0x8930: 0xe000288e, 0x8931: 0xe0002891, 0x8932: 0xe0002894, 0x8933: 0xe0002897, + 0x8934: 0xe000289b, 0x8935: 0xe000289f, 0x8936: 0xe00028a2, 0x8937: 0xe00028a5, + 0x8938: 0xe00028a8, 0x8939: 0xe00028ab, 0x893a: 0xe00028ae, 0x893b: 0xe00028b1, + 0x893c: 0x40632420, 0x893d: 0x40632620, 0x893e: 0x40632820, 0x893f: 0x40632a20, + // Block 0x225, offset 0x8940 + 0x8940: 0x40632c20, 0x8941: 0xe00028b4, 0x8942: 0xe00028bb, 0x8943: 0xe00028be, + 0x8944: 0xe00028c1, 0x8945: 0xe00028c4, 0x8946: 0x40633820, 0x8947: 0xe00028c7, + 0x8948: 0xe00028ca, 0x8949: 0xe00028cd, 0x894a: 0xe00028d3, 0x894b: 0xe00028d6, + 0x894c: 0x40634420, 0x894d: 0xe00028d9, 0x894e: 0x40634820, 0x894f: 0x40634a20, + 0x8950: 0x40634c20, 0x8951: 0x40634e20, 0x8952: 0xe00028dc, 0x8953: 0xe00028df, + 0x8954: 0x40635420, 0x8955: 0x40635620, 0x8956: 0xe00028e2, 0x8957: 0xe00028e5, + 0x8958: 0xe00028f4, 0x8959: 0x40635e20, 0x895a: 0xe00027d9, 0x895b: 0xe00027fb, + 0x895c: 0xe000252c, 0x895d: 0xe000252f, 0x895e: 0xe0002804, 0x895f: 0x4063a420, + 0x8960: 0x4063a620, 0x8961: 0x4063a820, 0x8962: 0xe0002556, 0x8963: 0x4063ac20, + 0x8964: 0xe0002559, 0x8965: 0x4063b020, 0x8966: 0xe000255c, 0x8967: 0x4063b420, + 0x8968: 0xe000255f, 0x8969: 0x4063b820, 0x896a: 0xe0002562, 0x896b: 0xe0002565, + 0x896c: 0xe0002569, 0x896d: 0x4063c020, 0x896e: 0x4063c220, 0x896f: 0xe000256c, + 0x8970: 0xe000256f, 0x8971: 0xe0002573, 0x8972: 0x4063ca20, 0x8973: 0x4063cc20, + 0x8974: 0x4063ce20, 0x8975: 0x4063d020, 0x8976: 0xe00028f7, 0x8977: 0xe00028fa, + 0x8978: 0xe0002900, 0x8979: 0xe0002903, 0x897a: 0xe0002909, 0x897b: 0xe000290c, + 0x897c: 0xe000290f, 0x897d: 0xe0002915, 0x897e: 0xe0002918, 0x897f: 0xe0002922, + // Block 0x226, offset 0x8980 + 0x8980: 0xe0002925, 0x8981: 0xe0002929, 0x8982: 0xe000292d, 0x8983: 0xe0002930, + 0x8984: 0xe0002933, 0x8985: 0xe0002936, 0x8986: 0xe000293a, 0x8987: 0xe000293d, + 0x8988: 0xe0002940, 0x8989: 0xe0002943, 0x898a: 0xe0002946, 0x898b: 0xe000294a, + 0x898c: 0xe000294e, 0x898d: 0xe0002952, 0x898e: 0xe0002955, 0x898f: 0xe0002958, + 0x8990: 0xe000295b, 0x8991: 0xe000295f, 0x8992: 0xe0002962, 0x8993: 0xe0002966, + 0x8994: 0xe0002969, 0x8995: 0xe000296c, 0x8996: 0xe000296f, 0x8997: 0xe0002972, + 0x8998: 0xe0002975, 0x8999: 0xe0002978, 0x899a: 0xe000297b, 0x899b: 0xe000297e, + 0x899c: 0xe0002981, 0x899d: 0x40642020, 0x899e: 0x40642220, 0x899f: 0x40642420, + 0x89a0: 0x40642620, 0x89a1: 0x40642820, 0x89a2: 0x40642a20, 0x89a3: 0xe00028fd, + 0x89a4: 0xe0002906, 0x89a5: 0xe0002912, 0x89a6: 0xe000291b, 0x89a7: 0xe000291e, + 0x89a8: 0x4062ac20, 0x89a9: 0xe0002526, 0x89aa: 0xe0002529, 0x89ab: 0x4062b020, + 0x89ac: 0xe000252c, 0x89ad: 0xe000252f, 0x89ae: 0x4062b220, 0x89af: 0x4062b620, + 0x89b0: 0xe0002535, 0x89b1: 0xe0002538, 0x89b2: 0xe000253b, 0x89b3: 0xe000253e, + 0x89b4: 0xe0002541, 0x89b5: 0xe0002544, 0x89b6: 0xe0002547, 0x89b7: 0x4062b820, + 0x89b8: 0x4062ba20, 0x89b9: 0xe000254d, 0x89ba: 0x4062be20, 0x89bb: 0xe0002550, + 0x89bc: 0x4062c220, 0x89bd: 0x4062c420, 0x89be: 0x4062c820, 0x89bf: 0x4062ca20, + // Block 0x227, offset 0x89c0 + 0x89c0: 0x4062cc20, 0x89c1: 0x4062ce20, 0x89c2: 0x4062d020, 0x89c3: 0xe00027dc, + 0x89c4: 0xe00027e2, 0x89c5: 0xe00027ef, 0x89c6: 0xe00027f5, 0x89c7: 0xe00027fb, + 0x89c8: 0x4064a420, 0x89c9: 0xe00027fe, 0x89ca: 0xe0002801, 0x89cb: 0xe0002804, + 0x89cc: 0xe0002807, 0x89cd: 0xe000280b, 0x89ce: 0xe000280e, 0x89cf: 0xe0002811, + 0x89d0: 0xe0002815, 0x89d1: 0xe0002818, 0x89d2: 0xe000281c, 0x89d3: 0xe0002820, + 0x89d4: 0xe0002828, 0x89d5: 0xe0002824, 0x89d6: 0xe000282c, 0x89d7: 0x4064c220, + 0x89d8: 0xe0002833, 0x89d9: 0x4064c620, 0x89da: 0xe0002836, 0x89db: 0xe0002839, + 0x89dc: 0xe000283c, 0x89dd: 0xe000283f, 0x89de: 0xe0002842, 0x89df: 0x4064d220, + 0x89e0: 0xe0002849, 0x89e1: 0xe000284c, 0x89e2: 0xe0002846, 0x89e3: 0xe0002858, + 0x89e4: 0xe000287f, 0x89e5: 0xe0002882, 0x89e6: 0xe0002873, 0x89e7: 0xe0002885, + 0x89e8: 0xe000288b, 0x89e9: 0xe000288e, 0x89ea: 0xe0002894, 0x89eb: 0x4064ea20, + 0x89ec: 0xe00028b4, 0x89ed: 0xe00028b7, 0x89ee: 0xe00028c7, 0x89ef: 0xe00028d0, + 0x89f0: 0x4064f420, 0x89f1: 0x4064f620, 0x89f2: 0x4064f820, 0x89f3: 0xe00028e2, + 0x89f4: 0xe00028e5, 0x89f5: 0xe00028e8, 0x89f6: 0xe00028eb, 0x89f7: 0xe00028ee, + 0x89f8: 0xe00028f1, 0x89f9: 0x40650620, 0x89fa: 0xe00027d6, 0x89fb: 0xe00027df, + 0x89fc: 0xe00027e6, 0x89fd: 0xe00027e9, 0x89fe: 0xe00027ec, 0x89ff: 0xe00027f2, + // Block 0x228, offset 0x8a00 + 0x8a00: 0xc3f40cf1, 0x8a01: 0x4062ac21, 0x8a02: 0x4062b020, 0x8a03: 0xc3f60d21, + 0x8a04: 0x4062b221, 0x8a05: 0x4062b620, 0x8a06: 0x4062b820, 0x8a07: 0xc3f80d51, + 0x8a08: 0x4062ba21, 0x8a09: 0xc3fa0d81, 0x8a0a: 0x4062be21, 0x8a0b: 0x4062c220, + 0x8a0c: 0xc3fc0db1, 0x8a0d: 0x4062c421, 0x8a0e: 0x4062c820, 0x8a0f: 0x4062ca20, + 0x8a10: 0x4062cc20, 0x8a11: 0x4062ce20, 0x8a12: 0x4062d020, 0x8a13: 0x4062d220, + 0x8a14: 0x4062d420, 0x8a15: 0x4062d620, 0x8a16: 0x4062d820, 0x8a17: 0x4062da20, + 0x8a18: 0x4062dc20, 0x8a19: 0x4062de20, 0x8a1a: 0x4062e020, 0x8a1b: 0x4062e220, + 0x8a1c: 0x4062e420, 0x8a1d: 0x4062e620, 0x8a1e: 0x4062e820, 0x8a1f: 0x4062ea20, + 0x8a20: 0x4062ec20, 0x8a21: 0x4062ee20, 0x8a22: 0x4062f020, 0x8a23: 0x4062f220, + 0x8a24: 0x4062f420, 0x8a25: 0x4062f620, 0x8a26: 0x4062f820, 0x8a27: 0x4062fa20, + 0x8a28: 0x4062fc20, 0x8a29: 0x4062fe20, 0x8a2a: 0x40630020, 0x8a2b: 0x40630220, + 0x8a2c: 0x40630420, 0x8a2d: 0x40630620, 0x8a2e: 0x40630820, 0x8a2f: 0x40630a20, + 0x8a30: 0x40630c20, 0x8a31: 0x40630e20, 0x8a32: 0x40631020, 0x8a33: 0x40631220, + 0x8a34: 0x40631420, 0x8a35: 0x40631620, 0x8a36: 0x40631820, 0x8a37: 0x40631a20, + 0x8a38: 0x40631c20, 0x8a39: 0x40631e20, 0x8a3a: 0x40632020, 0x8a3b: 0x40632220, + 0x8a3c: 0x40632420, 0x8a3d: 0x40632620, 0x8a3e: 0x40632820, 0x8a3f: 0x40632a20, + // Block 0x229, offset 0x8a40 + 0x8a40: 0x40632c20, 0x8a41: 0x40632e20, 0x8a42: 0x40633020, 0x8a43: 0x40633220, + 0x8a44: 0x40633420, 0x8a45: 0x40633620, 0x8a46: 0x40633820, 0x8a47: 0x40633a20, + 0x8a48: 0x40633c20, 0x8a49: 0x40633e20, 0x8a4a: 0x40634020, 0x8a4b: 0x40634220, + 0x8a4c: 0x40634420, 0x8a4d: 0x40634620, 0x8a4e: 0x40634820, 0x8a4f: 0x40634a20, + 0x8a50: 0x40634c20, 0x8a51: 0x40634e20, 0x8a52: 0x40635020, 0x8a53: 0x40635220, + 0x8a54: 0x40635420, 0x8a55: 0x40635620, 0x8a56: 0x40635820, 0x8a57: 0x40635a20, + 0x8a58: 0x40635c20, 0x8a59: 0x40635e20, 0x8a5a: 0x40636020, 0x8a5b: 0x40636220, + 0x8a5c: 0x40636420, 0x8a5d: 0x40636620, 0x8a5e: 0x40636820, 0x8a5f: 0x4063a420, + 0x8a60: 0x4063a620, 0x8a61: 0xa0002502, 0x8a62: 0xa0002602, 0x8a63: 0xa0002702, + 0x8a64: 0xa0002802, 0x8a65: 0xa0002902, 0x8a66: 0xa0002a02, 0x8a67: 0xa0002b02, + 0x8a68: 0xa0002c02, 0x8a69: 0xa0002d02, 0x8a6a: 0xa0002e02, 0x8a6b: 0xa0002f02, + 0x8a6c: 0xa0003002, 0x8a6d: 0xa0003102, 0x8a6e: 0xa0003202, 0x8a6f: 0xa0003302, + 0x8a70: 0xa0003402, 0x8a71: 0xa0003502, 0x8a72: 0xa0003602, 0x8a73: 0xa0003702, + 0x8a74: 0xa0003802, 0x8a75: 0xa0003902, 0x8a76: 0x4063d220, 0x8a77: 0x4063d420, + 0x8a78: 0x4063d620, 0x8a79: 0x4063d820, 0x8a7a: 0x4063da20, 0x8a7b: 0x4063dc20, + 0x8a7c: 0x4063de20, 0x8a7d: 0x4063e020, 0x8a7e: 0x4063e220, 0x8a7f: 0x4063e420, + // Block 0x22a, offset 0x8a80 + 0x8a80: 0x4063e620, 0x8a81: 0x4063e820, 0x8a82: 0x4063ea20, 0x8a83: 0x4063ec20, + 0x8a84: 0x4063ee20, 0x8a85: 0x4063f020, 0x8a86: 0x4063f220, 0x8a87: 0x4063f420, + 0x8a88: 0x4063f620, 0x8a89: 0x4063f820, 0x8a8a: 0x4063fa20, 0x8a8b: 0x4063fc20, + 0x8a8c: 0x4063fe20, 0x8a8d: 0x40640020, 0x8a8e: 0x40640220, 0x8a8f: 0x40640420, + 0x8a90: 0x40640620, 0x8a91: 0x40640820, 0x8a92: 0x40640a20, 0x8a93: 0x40640c20, + 0x8a94: 0x40640e20, 0x8a95: 0x40641020, 0x8a96: 0x40641220, 0x8a97: 0x40641420, + 0x8a98: 0x40641620, 0x8a99: 0x40641820, 0x8a9a: 0x40641a20, 0x8a9b: 0x40641c20, + 0x8a9c: 0x40641e20, 0x8a9d: 0x40642020, 0x8a9e: 0x40642220, 0x8a9f: 0x40642420, + 0x8aa0: 0x40642620, 0x8aa1: 0x40642820, 0x8aa2: 0x40642a20, 0x8aa3: 0x40642c20, + 0x8aa4: 0x40642e20, 0x8aa5: 0x40643020, 0x8aa6: 0x40643220, 0x8aa7: 0x40643420, + 0x8aa8: 0xa0003a02, 0x8aa9: 0xa0003b02, 0x8aaa: 0xa0003c02, 0x8aab: 0xa0003d02, + 0x8aac: 0xa0003e02, 0x8aad: 0xa0003f02, 0x8aae: 0xa0004002, 0x8aaf: 0xa0004102, + 0x8ab0: 0xa0004202, 0x8ab1: 0xa0004302, 0x8ab2: 0xa0004402, 0x8ab3: 0xa0004502, + 0x8ab4: 0xa0004602, 0x8ab5: 0xa0004702, 0x8ab6: 0xa0004802, 0x8ab7: 0xa0004902, + 0x8ab8: 0xa0004a02, 0x8ab9: 0xa0004b02, 0x8aba: 0xa0004c02, 0x8abb: 0xa0004d02, + 0x8abc: 0xa0004e02, 0x8abd: 0xa0004f02, 0x8abe: 0xa0005002, 0x8abf: 0xa0005102, + // Block 0x22b, offset 0x8ac0 + 0x8ac0: 0xa0005202, 0x8ac1: 0xa0005302, 0x8ac2: 0xa0005402, 0x8ac3: 0x40649a20, + 0x8ac4: 0x40649c20, 0x8ac5: 0x40649e20, 0x8ac6: 0x4064a020, 0x8ac7: 0x4064a220, + 0x8ac8: 0x4064a420, 0x8ac9: 0x4064a620, 0x8aca: 0x4064a820, 0x8acb: 0x4064aa20, + 0x8acc: 0x4064ac20, 0x8acd: 0x4064ae20, 0x8ace: 0x4064b020, 0x8acf: 0x4064b220, + 0x8ad0: 0x4064b420, 0x8ad1: 0x4064b620, 0x8ad2: 0x4064b820, 0x8ad3: 0x4064ba20, + 0x8ad4: 0x4064bc20, 0x8ad5: 0x4064be20, 0x8ad6: 0x4064c020, 0x8ad7: 0x4064c220, + 0x8ad8: 0x4064c420, 0x8ad9: 0x4064c620, 0x8ada: 0x4064c820, 0x8adb: 0x4064ca20, + 0x8adc: 0x4064cc20, 0x8add: 0x4064ce20, 0x8ade: 0x4064d020, 0x8adf: 0x4064d220, + 0x8ae0: 0x4064d420, 0x8ae1: 0x4064d620, 0x8ae2: 0x4064d820, 0x8ae3: 0x4064da20, + 0x8ae4: 0x4064dc20, 0x8ae5: 0x4064de20, 0x8ae6: 0x4064e020, 0x8ae7: 0x4064e220, + 0x8ae8: 0x4064e420, 0x8ae9: 0x4064e620, 0x8aea: 0x4064e820, 0x8aeb: 0x4064ea20, + 0x8aec: 0x4064ec20, 0x8aed: 0x4064ee20, 0x8aee: 0x4064f020, 0x8aef: 0x4064f220, + 0x8af0: 0x4064f420, 0x8af1: 0x4064f620, 0x8af2: 0x4064f820, 0x8af3: 0x4064fa20, + 0x8af4: 0x4064fc20, 0x8af5: 0x4064fe20, 0x8af6: 0x40650020, 0x8af7: 0x40650220, + 0x8af8: 0x40650420, 0x8af9: 0x40650620, 0x8afa: 0x40650820, 0x8afb: 0x40650a20, + 0x8afc: 0x40650c20, 0x8afd: 0x40650e20, 0x8afe: 0x40651020, 0x8aff: 0x40651220, + // Block 0x22c, offset 0x8b00 + 0x8b05: 0x4065da20, 0x8b06: 0x4065dc20, 0x8b07: 0x4065de20, + 0x8b08: 0x4065e020, 0x8b09: 0x4065e420, 0x8b0a: 0x4065e620, 0x8b0b: 0x4065e820, + 0x8b0c: 0x4065ea20, 0x8b0d: 0x4065ec20, 0x8b0e: 0x4065ee20, 0x8b0f: 0x4065f420, + 0x8b10: 0x4065f620, 0x8b11: 0x4065f820, 0x8b12: 0x4065fa20, 0x8b13: 0x4065fe20, + 0x8b14: 0x40660020, 0x8b15: 0x40660220, 0x8b16: 0x40660420, 0x8b17: 0x40660620, + 0x8b18: 0x40660820, 0x8b19: 0x40660a20, 0x8b1a: 0x40661220, 0x8b1b: 0x40661420, + 0x8b1c: 0x40661820, 0x8b1d: 0x40661a20, 0x8b1e: 0x40661e20, 0x8b1f: 0x40662020, + 0x8b20: 0x40662220, 0x8b21: 0x40662420, 0x8b22: 0x40662620, 0x8b23: 0x40662820, + 0x8b24: 0x40662a20, 0x8b25: 0x40662e20, 0x8b26: 0x40663620, 0x8b27: 0x40663820, + 0x8b28: 0x40663a20, 0x8b29: 0x40663c20, 0x8b2a: 0x4065e220, 0x8b2b: 0x4065f020, + 0x8b2c: 0x4065fc20, 0x8b2d: 0x40663e20, + 0x8b31: 0x0062ac84, 0x8b32: 0x0062aca3, 0x8b33: 0x00646884, + 0x8b34: 0x0062b084, 0x8b35: 0x00646c84, 0x8b36: 0x00646e84, 0x8b37: 0x0062b284, + 0x8b38: 0x0062b2a3, 0x8b39: 0x0062b684, 0x8b3a: 0x00647484, 0x8b3b: 0x00647684, + 0x8b3c: 0x00647884, 0x8b3d: 0x00647a84, 0x8b3e: 0x00647c84, 0x8b3f: 0x00647e84, + // Block 0x22d, offset 0x8b40 + 0x8b40: 0x0062e084, 0x8b41: 0x0062b884, 0x8b42: 0x0062ba84, 0x8b43: 0x0062baa3, + 0x8b44: 0x0062ee84, 0x8b45: 0x0062be84, 0x8b46: 0x0062bea3, 0x8b47: 0x0062c284, + 0x8b48: 0x0062c484, 0x8b49: 0x0062c4a3, 0x8b4a: 0x0062c884, 0x8b4b: 0x0062ca84, + 0x8b4c: 0x0062cc84, 0x8b4d: 0x0062ce84, 0x8b4e: 0x0062d084, 0x8b4f: 0x0063a884, + 0x8b50: 0x0063aa84, 0x8b51: 0x0063ac84, 0x8b52: 0x0063ae84, 0x8b53: 0x0063b084, + 0x8b54: 0x0063b284, 0x8b55: 0x0063b484, 0x8b56: 0x0063b684, 0x8b57: 0x0063b884, + 0x8b58: 0x0063ba84, 0x8b59: 0x0063bc84, 0x8b5a: 0x0063be84, 0x8b5b: 0x0063c084, + 0x8b5c: 0x0063c284, 0x8b5d: 0x0063c484, 0x8b5e: 0x0063c684, 0x8b5f: 0x0063c884, + 0x8b60: 0x0063ca84, 0x8b61: 0x0063cc84, 0x8b62: 0x0063ce84, 0x8b63: 0x0063d084, + 0x8b64: 0x0063a684, 0x8b65: 0x0062d484, 0x8b66: 0x0062d684, 0x8b67: 0x0064a284, + 0x8b68: 0x0064a484, 0x8b69: 0x0064ac84, 0x8b6a: 0x0064b084, 0x8b6b: 0x0064ba84, + 0x8b6c: 0x0064c284, 0x8b6d: 0x0064c684, 0x8b6e: 0x0062e484, 0x8b6f: 0x0064ce84, + 0x8b70: 0x0064d284, 0x8b71: 0x0062e684, 0x8b72: 0x0062e884, 0x8b73: 0x0062ec84, + 0x8b74: 0x0062f084, 0x8b75: 0x0062f284, 0x8b76: 0x0062fa84, 0x8b77: 0x0062fe84, + 0x8b78: 0x00630284, 0x8b79: 0x00630484, 0x8b7a: 0x00630684, 0x8b7b: 0x00630884, + 0x8b7c: 0x00630a84, 0x8b7d: 0x00631084, 0x8b7e: 0x00631884, 0x8b7f: 0x00632c84, + // Block 0x22e, offset 0x8b80 + 0x8b80: 0xf0000404, 0x8b81: 0xf0000404, 0x8b82: 0xf0000404, 0x8b83: 0xf0000404, + 0x8b84: 0x02aa9e86, 0x8b85: 0x02bcf886, 0x8b86: 0x02cb0e86, 0x8b87: 0x02f71e86, + 0x8b88: 0xe00002e3, 0x8b89: 0xe00003d8, 0x8b8a: 0xe00004b3, 0x8b8b: 0xe000057d, + 0x8b8c: 0xe0000648, 0x8b8d: 0xe00006f0, 0x8b8e: 0xe000079c, 0x8b8f: 0xe0000841, + 0x8b90: 0xe0000ec0, 0x8b91: 0xf0000606, 0x8b92: 0xf0000606, 0x8b93: 0xf0000606, + 0x8b94: 0xf0000606, 0x8b95: 0xf0000606, 0x8b96: 0xf0000606, 0x8b97: 0xf0000606, + 0x8b98: 0xf0000606, 0x8b99: 0xf0000606, 0x8b9a: 0xf0000606, 0x8b9b: 0xf0000606, + 0x8b9c: 0xf0000606, 0x8b9d: 0xf0000606, 0x8b9e: 0xf0000606, 0x8b9f: 0xf0000606, + 0x8ba0: 0x0062ac86, 0x8ba1: 0x0062b086, 0x8ba2: 0x0062b286, 0x8ba3: 0x0062b686, + 0x8ba4: 0x0062b886, 0x8ba5: 0x0062ba86, 0x8ba6: 0x0062be86, 0x8ba7: 0x0062c286, + 0x8ba8: 0x0062c486, 0x8ba9: 0x0062c886, 0x8baa: 0x0062ca86, 0x8bab: 0x0062cc86, + 0x8bac: 0x0062ce86, 0x8bad: 0x0062d086, 0x8bae: 0xe0002984, 0x8baf: 0xe0002987, + 0x8bb0: 0xe000298a, 0x8bb1: 0xe000298d, 0x8bb2: 0xe0002990, 0x8bb3: 0xe0002993, + 0x8bb4: 0xe0002996, 0x8bb5: 0xe0002999, 0x8bb6: 0xe000299f, 0x8bb7: 0xe00029a2, + 0x8bb8: 0xe00029a5, 0x8bb9: 0xe00029a8, 0x8bba: 0xe00029ab, 0x8bbb: 0xe00029ae, + 0x8bbc: 0xe0002127, 0x8bbd: 0xe0002122, 0x8bbe: 0xe000299c, 0x8bbf: 0x4027ac20, + // Block 0x22f, offset 0x8bc0 + 0x8bc0: 0xa0000000, 0x8bc1: 0xa0000000, 0x8bc2: 0xa0000000, 0x8bc3: 0xa0000000, + 0x8bc4: 0xa0000000, 0x8bc5: 0xa0000000, 0x8bc6: 0xa0000000, 0x8bc7: 0xa0000000, + 0x8bc8: 0xa0000000, 0x8bc9: 0x40020020, 0x8bca: 0x40020220, 0x8bcb: 0x40020420, + 0x8bcc: 0x40020620, 0x8bcd: 0x40020820, 0x8bce: 0xa0000000, 0x8bcf: 0xa0000000, + 0x8bd0: 0xa0000000, 0x8bd1: 0xa0000000, 0x8bd2: 0xa0000000, 0x8bd3: 0xa0000000, + 0x8bd4: 0xa0000000, 0x8bd5: 0xa0000000, 0x8bd6: 0xa0000000, 0x8bd7: 0xa0000000, + 0x8bd8: 0xa0000000, 0x8bd9: 0xa0000000, 0x8bda: 0xa0000000, 0x8bdb: 0xa0000000, + 0x8bdc: 0xa0000000, 0x8bdd: 0xa0000000, 0x8bde: 0xa0000000, 0x8bdf: 0xa0000000, + 0x8be0: 0x40021220, 0x8be1: 0x4002ba20, 0x8be2: 0x4003e020, 0x8be3: 0x4004ea20, + 0x8be4: 0x4027de20, 0x8be5: 0x4004ec20, 0x8be6: 0x4004e620, 0x8be7: 0x4003d220, + 0x8be8: 0x4003f420, 0x8be9: 0x4003f620, 0x8bea: 0x4004d820, 0x8beb: 0x40093820, + 0x8bec: 0x40024020, 0x8bed: 0x40021a20, 0x8bee: 0x4002e420, 0x8bef: 0x4004e220, + 0x8bf0: 0x4029cc20, 0x8bf1: 0x4029ce20, 0x8bf2: 0x4029d020, 0x8bf3: 0x4029d220, + 0x8bf4: 0x4029d420, 0x8bf5: 0x4029d620, 0x8bf6: 0x4029d820, 0x8bf7: 0x4029da20, + 0x8bf8: 0x4029dc20, 0x8bf9: 0x4029de20, 0x8bfa: 0x40026c20, 0x8bfb: 0x40026220, + 0x8bfc: 0x40094020, 0x8bfd: 0xc32f0851, 0x8bfe: 0x40094420, 0x8bff: 0x4002c420, + // Block 0x230, offset 0x8c00 + 0x8c00: 0x4004d620, 0x8c01: 0xc40209c3, 0x8c02: 0x002c0a88, 0x8c03: 0x002c3a88, + 0x8c04: 0x002c6288, 0x8c05: 0xc3920a11, 0x8c06: 0x002d0888, 0x8c07: 0x002d2288, + 0x8c08: 0x002d6888, 0x8c09: 0x002d9a88, 0x8c0a: 0x002dcc88, 0x8c0b: 0x002dfe88, + 0x8c0c: 0xc0030002, 0x8c0d: 0x002e8288, 0x8c0e: 0x002e9e88, 0x8c0f: 0xc3970951, + 0x8c10: 0x002f2c88, 0x8c11: 0x002f5688, 0x8c12: 0x002f7a88, 0x8c13: 0x002fe688, + 0x8c14: 0x00302c88, 0x8c15: 0xc3840951, 0x8c16: 0x0030be88, 0x8c17: 0x0030e288, + 0x8c18: 0x0030f688, 0x8c19: 0x00310088, 0x8c1a: 0x00312a88, 0x8c1b: 0x4003f820, + 0x8c1c: 0x4004e420, 0x8c1d: 0x4003fa20, 0x8c1e: 0x40062420, 0x8c1f: 0x40021620, + 0x8c20: 0x40061e20, 0x8c21: 0xc3fe0982, 0x8c22: 0x402c0a20, 0x8c23: 0x402c3a20, + 0x8c24: 0x402c6220, 0x8c25: 0xc3900a11, 0x8c26: 0x402d0820, 0x8c27: 0x402d2220, + 0x8c28: 0x402d6820, 0x8c29: 0x402d9a20, 0x8c2a: 0x402dcc20, 0x8c2b: 0x402dfe20, + 0x8c2c: 0xc0000002, 0x8c2d: 0x402e8220, 0x8c2e: 0x402e9e20, 0x8c2f: 0xc3940951, + 0x8c30: 0x402f2c20, 0x8c31: 0x402f5620, 0x8c32: 0x402f7a20, 0x8c33: 0x402fe620, + 0x8c34: 0x40302c20, 0x8c35: 0xc3810951, 0x8c36: 0x4030be20, 0x8c37: 0x4030e220, + 0x8c38: 0x4030f620, 0x8c39: 0x40310020, 0x8c3a: 0x40312a20, 0x8c3b: 0x4003fc20, + 0x8c3c: 0x40094820, 0x8c3d: 0x4003fe20, 0x8c3e: 0x40094c20, 0x8c3f: 0xa0000000, + // Block 0x231, offset 0x8c40 + 0x8c40: 0xa0000000, 0x8c41: 0xa0000000, 0x8c42: 0xa0000000, 0x8c43: 0xa0000000, + 0x8c44: 0xa0000000, 0x8c45: 0xa0000000, 0x8c46: 0xa0000000, 0x8c47: 0xa0000000, + 0x8c48: 0xa0000000, 0x8c49: 0x40020020, 0x8c4a: 0x40020220, 0x8c4b: 0x40020420, + 0x8c4c: 0x40020620, 0x8c4d: 0x40020820, 0x8c4e: 0xa0000000, 0x8c4f: 0xa0000000, + 0x8c50: 0xa0000000, 0x8c51: 0xa0000000, 0x8c52: 0xa0000000, 0x8c53: 0xa0000000, + 0x8c54: 0xa0000000, 0x8c55: 0xa0000000, 0x8c56: 0xa0000000, 0x8c57: 0xa0000000, + 0x8c58: 0xa0000000, 0x8c59: 0xa0000000, 0x8c5a: 0xa0000000, 0x8c5b: 0xa0000000, + 0x8c5c: 0xa0000000, 0x8c5d: 0xa0000000, 0x8c5e: 0xa0000000, 0x8c5f: 0xa0000000, + 0x8c60: 0x40021220, 0x8c61: 0x4002ba20, 0x8c62: 0x4003e020, 0x8c63: 0x4004ea20, + 0x8c64: 0x4027de20, 0x8c65: 0x4004ec20, 0x8c66: 0x4004e620, 0x8c67: 0x4003d220, + 0x8c68: 0x4003f420, 0x8c69: 0x4003f620, 0x8c6a: 0x4004d820, 0x8c6b: 0x40093820, + 0x8c6c: 0x40024020, 0x8c6d: 0x40021a20, 0x8c6e: 0x4002e420, 0x8c6f: 0x4004e220, + 0x8c70: 0x4029cc20, 0x8c71: 0x4029ce20, 0x8c72: 0x4029d020, 0x8c73: 0x4029d220, + 0x8c74: 0x4029d420, 0x8c75: 0x4029d620, 0x8c76: 0x4029d820, 0x8c77: 0x4029da20, + 0x8c78: 0x4029dc20, 0x8c79: 0x4029de20, 0x8c7a: 0x40026c20, 0x8c7b: 0x40026220, + 0x8c7c: 0x40094020, 0x8c7d: 0xc32f0851, 0x8c7e: 0x40094420, 0x8c7f: 0x4002c420, + // Block 0x232, offset 0x8c80 + 0x8c80: 0x4004d620, 0x8c81: 0xc40d0de1, 0x8c82: 0x002c0a88, 0x8c83: 0xc41508d1, + 0x8c84: 0x002c6288, 0x8c85: 0x002c9888, 0x8c86: 0x002d0888, 0x8c87: 0xc41d08d1, + 0x8c88: 0x002d6888, 0x8c89: 0x002d9a88, 0x8c8a: 0x002dcc88, 0x8c8b: 0xc42108d1, + 0x8c8c: 0xc0030002, 0x8c8d: 0x002e8288, 0x8c8e: 0xc4260e31, 0x8c8f: 0xc4370e61, + 0x8c90: 0x002f2c88, 0x8c91: 0x002f5688, 0x8c92: 0x002f7a88, 0x8c93: 0xc42b08d1, + 0x8c94: 0x00302c88, 0x8c95: 0xc3840951, 0x8c96: 0x0030be88, 0x8c97: 0x0030e288, + 0x8c98: 0x0030f688, 0x8c99: 0x00310088, 0x8c9a: 0xc42f08d1, 0x8c9b: 0x4003f820, + 0x8c9c: 0x4004e420, 0x8c9d: 0x4003fa20, 0x8c9e: 0x40062420, 0x8c9f: 0x40021620, + 0x8ca0: 0x40061e20, 0x8ca1: 0xc4070de1, 0x8ca2: 0x402c0a20, 0x8ca3: 0xc41308d1, + 0x8ca4: 0x402c6220, 0x8ca5: 0x402c9820, 0x8ca6: 0x402d0820, 0x8ca7: 0xc41b08d1, + 0x8ca8: 0x402d6820, 0x8ca9: 0x402d9a20, 0x8caa: 0x402dcc20, 0x8cab: 0xc41f08d1, + 0x8cac: 0xc0000002, 0x8cad: 0x402e8220, 0x8cae: 0xc4230e31, 0x8caf: 0xc4310e61, + 0x8cb0: 0x402f2c20, 0x8cb1: 0x402f5620, 0x8cb2: 0x402f7a20, 0x8cb3: 0xc42908d1, + 0x8cb4: 0x40302c20, 0x8cb5: 0xc3810951, 0x8cb6: 0x4030be20, 0x8cb7: 0x4030e220, + 0x8cb8: 0x4030f620, 0x8cb9: 0x40310020, 0x8cba: 0xc42d08d1, 0x8cbb: 0x4003fc20, + 0x8cbc: 0x40094820, 0x8cbd: 0x4003fe20, 0x8cbe: 0x40094c20, 0x8cbf: 0xa0000000, + // Block 0x233, offset 0x8cc0 + 0x8cc0: 0xe00008f5, 0x8cc1: 0x002c0883, 0x8cc2: 0xe0000921, 0x8cc3: 0x00320ea3, + 0x8cc4: 0x00320e83, 0x8cc5: 0x00320c83, 0x8cc6: 0x00320a83, 0x8cc7: 0xe0000a53, + 0x8cc8: 0xe0000ae8, 0x8cc9: 0xe0000ae2, 0x8cca: 0xe0000af4, 0x8ccb: 0xe0000b20, + 0x8ccc: 0xe0000c2b, 0x8ccd: 0xe0000c25, 0x8cce: 0xe0000c37, 0x8ccf: 0xe0000c43, + 0x8cd0: 0x002c96a3, 0x8cd1: 0x002ee0c3, 0x8cd2: 0xe0000d9a, 0x8cd3: 0xe0000d94, + 0x8cd4: 0x003210e3, 0x8cd5: 0x003210c3, 0x8cd6: 0x00321083, 0x8cd7: 0x40093e20, + 0x8cd8: 0x00320883, 0x8cd9: 0xe0000fe1, 0x8cda: 0xe0000fdb, 0x8cdb: 0xe0000fed, + 0x8cdc: 0x003100a3, 0x8cdd: 0xe0001102, 0x8cde: 0x00306aa3, 0x8cdf: 0xe0000f7b, + 0x8ce0: 0xe00008f2, 0x8ce1: 0x402c0820, 0x8ce2: 0xe000091e, 0x8ce3: 0x40320e21, + 0x8ce4: 0x40320e20, 0x8ce5: 0x40320c20, 0x8ce6: 0x40320a20, 0x8ce7: 0xe0000a4d, + 0x8ce8: 0xe0000ae5, 0x8ce9: 0xe0000adf, 0x8cea: 0xe0000af1, 0x8ceb: 0xe0000b1d, + 0x8cec: 0xe0000c28, 0x8ced: 0xe0000c22, 0x8cee: 0xe0000c34, 0x8cef: 0xe0000c40, + 0x8cf0: 0x402c9621, 0x8cf1: 0x402ee022, 0x8cf2: 0xe0000d97, 0x8cf3: 0xe0000d91, + 0x8cf4: 0x40321023, 0x8cf5: 0x40321022, 0x8cf6: 0x40321020, 0x8cf7: 0x40093c20, + 0x8cf8: 0x40320820, 0x8cf9: 0xe0000fde, 0x8cfa: 0xe0000fd8, 0x8cfb: 0xe0000fea, + 0x8cfc: 0x40310021, 0x8cfd: 0xe00010ff, 0x8cfe: 0x40306a21, 0x8cff: 0xe0001114, + // Block 0x234, offset 0x8d00 + 0x8d00: 0xe0000983, 0x8d01: 0xe0000980, 0x8d02: 0xe00008fb, 0x8d03: 0xe00008f8, + 0x8d04: 0xe000097d, 0x8d05: 0xe000097a, 0x8d06: 0xe0000a38, 0x8d07: 0xe0000a35, + 0x8d08: 0xe0000a3e, 0x8d09: 0xe0000a3b, 0x8d0a: 0xe0000a4a, 0x8d0b: 0xe0000a47, + 0x8d0c: 0x002c5c83, 0x8d0d: 0x402c5c20, 0x8d0e: 0xe0000a86, 0x8d0f: 0xe0000a83, + 0x8d10: 0x002c9683, 0x8d11: 0x402c9620, 0x8d12: 0xe0000b46, 0x8d13: 0xe0000b43, + 0x8d14: 0xe0000aee, 0x8d15: 0xe0000aeb, 0x8d16: 0xe0000b2c, 0x8d17: 0xe0000b29, + 0x8d18: 0xe0000b40, 0x8d19: 0xe0000b3d, 0x8d1a: 0xe0000b1a, 0x8d1b: 0xe0000b17, + 0x8d1c: 0xe0000bb8, 0x8d1d: 0xe0000bb5, 0x8d1e: 0xe0000bb2, 0x8d1f: 0xe0000baf, + 0x8d20: 0xe0000bc4, 0x8d21: 0xe0000bc1, 0x8d22: 0xe0000bca, 0x8d23: 0xe0000bc7, + 0x8d24: 0xe0000bee, 0x8d25: 0xe0000beb, 0x8d26: 0xe0000c1b, 0x8d27: 0xe0000c18, + 0x8d28: 0xe0000c51, 0x8d29: 0xe0000c4e, 0x8d2a: 0xe0000c60, 0x8d2b: 0xe0000c5d, + 0x8d2c: 0xe0000c31, 0x8d2d: 0xe0000c2e, 0x8d2e: 0xe0000c5a, 0x8d2f: 0xe0000c57, + 0x8d30: 0xe0000c54, 0x8d31: 0x402da220, 0x8d32: 0xf0000a0a, 0x8d33: 0xf0000404, + 0x8d34: 0xe0000c8a, 0x8d35: 0xe0000c87, 0x8d36: 0xe0000c9f, 0x8d37: 0xe0000c9c, + 0x8d38: 0x402f7220, 0x8d39: 0xe0000ccc, 0x8d3a: 0xe0000cc9, 0x8d3b: 0xe0000cd8, + 0x8d3c: 0xe0000cd5, 0x8d3d: 0xe0000cd2, 0x8d3e: 0xe0000ccf, 0x8d3f: 0xe0000d04, + // Block 0x235, offset 0x8d40 + 0x8d40: 0xe0000cfe, 0x8d41: 0xe0000cf8, 0x8d42: 0xe0000cf5, 0x8d43: 0x002ee0a3, + 0x8d44: 0x402ee021, 0x8d45: 0xe0000d6f, 0x8d46: 0xe0000d6c, 0x8d47: 0xe0000d5d, + 0x8d48: 0xe0000d5a, 0x8d49: 0xf0000404, 0x8d4a: 0x002ee083, 0x8d4b: 0x402ee020, + 0x8d4c: 0xe0000e2e, 0x8d4d: 0xe0000e2b, 0x8d4e: 0xe0000da0, 0x8d4f: 0xe0000d9d, + 0x8d50: 0x003210a3, 0x8d51: 0x40321021, 0x8d52: 0x003208a3, 0x8d53: 0x40320821, + 0x8d54: 0xe0000eca, 0x8d55: 0xe0000ec7, 0x8d56: 0xe0000edc, 0x8d57: 0xe0000ed9, + 0x8d58: 0xe0000ed0, 0x8d59: 0xe0000ecd, 0x8d5a: 0xe0000f1f, 0x8d5b: 0xe0000f1c, + 0x8d5c: 0xe0000f2d, 0x8d5d: 0xe0000f2a, 0x8d5e: 0xe0000f47, 0x8d5f: 0xe0000f44, + 0x8d60: 0x00302a83, 0x8d61: 0x40302a20, 0x8d62: 0xe0000f99, 0x8d63: 0xe0000f96, + 0x8d64: 0xe0000f8a, 0x8d65: 0xe0000f87, 0x8d66: 0x00306a83, 0x8d67: 0x40306a20, + 0x8d68: 0xe000102b, 0x8d69: 0xe0001028, 0x8d6a: 0xe000103f, 0x8d6b: 0xe000103c, + 0x8d6c: 0xe0000fe7, 0x8d6d: 0xe0000fe4, 0x8d6e: 0xe0000ff9, 0x8d6f: 0xe0000ff6, + 0x8d70: 0x003100c3, 0x8d71: 0x40310022, 0x8d72: 0xe0001039, 0x8d73: 0xe0001036, + 0x8d74: 0xe00010d8, 0x8d75: 0xe00010d5, 0x8d76: 0xe000110e, 0x8d77: 0xe000110b, + 0x8d78: 0xe0001117, 0x8d79: 0xe000113b, 0x8d7a: 0xe0001138, 0x8d7b: 0xe000114d, + 0x8d7c: 0xe000114a, 0x8d7d: 0x00320683, 0x8d7e: 0x40320620, 0x8d7f: 0xe0000f64, + // Block 0x236, offset 0x8d80 + 0x8d80: 0x402c1a20, 0x8d81: 0x002c2a88, 0x8d82: 0x002c3288, 0x8d83: 0x402c3220, + 0x8d84: 0x0031c488, 0x8d85: 0x4031c420, 0x8d86: 0x002efa88, 0x8d87: 0x002c4e88, + 0x8d88: 0x402c4e20, 0x8d89: 0x002c7288, 0x8d8a: 0x002c7a88, 0x8d8b: 0x002c8488, + 0x8d8c: 0x402c8420, 0x8d8d: 0xe000115c, 0x8d8e: 0x002cae88, 0x8d8f: 0x002cb888, + 0x8d90: 0x002cc288, 0x8d91: 0x002d1688, 0x8d92: 0x402d1620, 0x8d93: 0x002d4488, + 0x8d94: 0x002d5888, 0x8d95: 0x402d7820, 0x8d96: 0x002dc288, 0x8d97: 0x002db688, + 0x8d98: 0x002e0a88, 0x8d99: 0x402e0a20, 0x8d9a: 0x402e3820, 0x8d9b: 0x402e7220, + 0x8d9c: 0x0030a088, 0x8d9d: 0x002eb488, 0x8d9e: 0x402ebc20, 0x8d9f: 0x002f1088, + 0x8da0: 0xe0000e56, 0x8da1: 0xe0000e53, 0x8da2: 0x002d6088, 0x8da3: 0x402d6020, + 0x8da4: 0x002f3e88, 0x8da5: 0x402f3e20, 0x8da6: 0x002f8288, 0x8da7: 0x0031b488, + 0x8da8: 0x4031b420, 0x8da9: 0x00300888, 0x8daa: 0x40301220, 0x8dab: 0x40304220, + 0x8dac: 0x00304a88, 0x8dad: 0x40304a20, 0x8dae: 0x00305288, 0x8daf: 0xe000105f, + 0x8db0: 0xe000105c, 0x8db1: 0x0030b488, 0x8db2: 0x0030cc88, 0x8db3: 0x00311888, + 0x8db4: 0x40311820, 0x8db5: 0x00313488, 0x8db6: 0x40313420, 0x8db7: 0xc41908d1, + 0x8db8: 0x00316e88, 0x8db9: 0x40316e20, 0x8dba: 0x40317820, 0x8dbb: 0x4031a620, + 0x8dbc: 0x0031bc88, 0x8dbd: 0x4031bc20, 0x8dbe: 0xe0000fc9, 0x8dbf: 0x40319420, + // Block 0x237, offset 0x8dc0 + 0x8dc0: 0x40321220, 0x8dc1: 0x40321a20, 0x8dc2: 0x40322220, 0x8dc3: 0x40322a20, + 0x8dc4: 0xe0000ad5, 0x8dc5: 0xe0000ad1, 0x8dc6: 0xe0000acd, 0x8dc7: 0xf0000a0a, + 0x8dc8: 0xf000040a, 0x8dc9: 0xf0000404, 0x8dca: 0xf0000a0a, 0x8dcb: 0xf000040a, + 0x8dcc: 0xf0000404, 0x8dcd: 0xe0000947, 0x8dce: 0xe0000944, 0x8dcf: 0xe0000c3d, + 0x8dd0: 0xe0000c3a, 0x8dd1: 0xe0000dcc, 0x8dd2: 0xe0000dc9, 0x8dd3: 0xe0000ff3, + 0x8dd4: 0xe0000ff0, 0x8dd5: 0xe0002685, 0x8dd6: 0xe0002682, 0x8dd7: 0xe0002673, + 0x8dd8: 0xe0002670, 0x8dd9: 0xe000267f, 0x8dda: 0xe000267c, 0x8ddb: 0xe0002679, + 0x8ddc: 0xe0002676, 0x8ddd: 0x402cae20, 0x8dde: 0xe000274c, 0x8ddf: 0xe0002749, + 0x8de0: 0xe0002697, 0x8de1: 0xe0002694, 0x8de2: 0xe00029c6, 0x8de3: 0xe00029c3, + 0x8de4: 0x002d6683, 0x8de5: 0x402d6620, 0x8de6: 0x002d6483, 0x8de7: 0x402d6420, + 0x8de8: 0x002e2083, 0x8de9: 0x402e2020, 0x8dea: 0x00321103, 0x8deb: 0x40321024, + 0x8dec: 0xe0002a08, 0x8ded: 0xe0002a05, 0x8dee: 0x002c6083, 0x8def: 0x402c6020, + 0x8df0: 0xe0000c8d, 0x8df1: 0xf0000a0a, 0x8df2: 0xf000040a, 0x8df3: 0xf0000404, + 0x8df4: 0xe0000bac, 0x8df5: 0xe0000ba9, 0x8df6: 0x002d7888, 0x8df7: 0x00319488, + 0x8df8: 0xe0000d57, 0x8df9: 0xe0000d54, 0x8dfa: 0xe000268b, 0x8dfb: 0xe0002688, + 0x8dfc: 0xe00029c0, 0x8dfd: 0xe00029bd, 0x8dfe: 0xe00029ba, 0x8dff: 0xe00029b7, + // Block 0x238, offset 0x8e00 + 0x8e00: 0xe000098f, 0x8e01: 0xe000098c, 0x8e02: 0xe0000995, 0x8e03: 0xe0000992, + 0x8e04: 0xe0000b62, 0x8e05: 0xe0000b5f, 0x8e06: 0xe0000b68, 0x8e07: 0xe0000b65, + 0x8e08: 0xe0000c6c, 0x8e09: 0xe0000c69, 0x8e0a: 0xe0000c72, 0x8e0b: 0xe0000c6f, + 0x8e0c: 0xe0000e4a, 0x8e0d: 0xe0000e47, 0x8e0e: 0xe0000e50, 0x8e0f: 0xe0000e4d, + 0x8e10: 0xe0000ee8, 0x8e11: 0xe0000ee5, 0x8e12: 0xe0000eee, 0x8e13: 0xe0000eeb, + 0x8e14: 0xe0001053, 0x8e15: 0xe0001050, 0x8e16: 0xe0001059, 0x8e17: 0xe0001056, + 0x8e18: 0xe0000f61, 0x8e19: 0xe0000f5e, 0x8e1a: 0xe0000fa5, 0x8e1b: 0xe0000fa2, + 0x8e1c: 0x00312288, 0x8e1d: 0x40312220, 0x8e1e: 0xe0000bf4, 0x8e1f: 0xe0000bf1, + 0x8e20: 0x002ebc88, 0x8e21: 0x402c8c20, 0x8e22: 0x002f2288, 0x8e23: 0x402f2220, + 0x8e24: 0x00314088, 0x8e25: 0x40314020, 0x8e26: 0x00320ca3, 0x8e27: 0x40320c21, + 0x8e28: 0xe0000b32, 0x8e29: 0xe0000b2f, 0x8e2a: 0xe0002758, 0x8e2b: 0xe0002755, + 0x8e2c: 0xe00029e4, 0x8e2d: 0xe00029e1, 0x8e2e: 0xe0000e04, 0x8e2f: 0xe0000e01, + 0x8e30: 0xe0000e0b, 0x8e31: 0xe0000e07, 0x8e32: 0xe0001129, 0x8e33: 0xe0001126, + 0x8e34: 0x402e5e20, 0x8e35: 0x402ed020, 0x8e36: 0x40305a20, 0x8e37: 0x402dd420, + 0x8e38: 0xe0000abf, 0x8e39: 0xe0000ec4, 0x8e3a: 0x002be888, 0x8e3b: 0x002c4488, + 0x8e3c: 0x402c4420, 0x8e3d: 0x002e3888, 0x8e3e: 0x00303e88, 0x8e3f: 0x402ffc20, + // Block 0x239, offset 0x8e40 + 0x8e40: 0x402f8220, 0x8e41: 0x402fd820, 0x8e42: 0x402ff420, 0x8e43: 0x40300820, + 0x8e44: 0x402df620, 0x8e45: 0x40301a20, 0x8e46: 0x40302420, 0x8e47: 0x40306420, + 0x8e48: 0x40305220, 0x8e49: 0x40307c20, 0x8e4a: 0x4030b420, 0x8e4b: 0x4030cc20, + 0x8e4c: 0x4030da20, 0x8e4d: 0x4030ee20, 0x8e4e: 0x402e7a20, 0x8e4f: 0x40310820, + 0x8e50: 0x40314820, 0x8e51: 0x40315020, 0x8e52: 0xc41708d1, 0x8e53: 0x40318020, + 0x8e54: 0x4031cc20, 0x8e55: 0x4031e820, 0x8e56: 0x40320a20, 0x8e57: 0x40323220, + 0x8e58: 0x40323a20, 0x8e59: 0x402c1220, 0x8e5a: 0x402cf820, 0x8e5b: 0x402d4c20, + 0x8e5c: 0x402d7020, 0x8e5d: 0x402de620, 0x8e5e: 0x402e1a20, 0x8e5f: 0x402e2a20, + 0x8e60: 0x402f6220, 0x8e61: 0x4031fa20, 0x8e62: 0x40320220, 0x8e63: 0xe0000aca, + 0x8e64: 0xe0000adc, 0x8e65: 0xe0000ad9, 0x8e66: 0xe0000fcc, 0x8e67: 0xe0000fcf, + 0x8e68: 0xe0000fba, 0x8e69: 0xe0000ba1, 0x8e6a: 0xe0000d11, 0x8e6b: 0xe0000d18, + 0x8e6c: 0x40324220, 0x8e6d: 0x40324a20, 0x8e6e: 0x40309020, 0x8e6f: 0x40309820, + 0x8e70: 0x002d6894, 0x8e71: 0x002d8094, 0x8e72: 0x002dcc94, 0x8e73: 0x002f7a94, + 0x8e74: 0x002f9894, 0x8e75: 0x002fac94, 0x8e76: 0x002fd894, 0x8e77: 0x0030e294, + 0x8e78: 0x00310094, 0x8e79: 0x40064020, 0x8e7a: 0x40064420, 0x8e7b: 0x402d9620, + 0x8e7c: 0x4031de20, 0x8e7d: 0x402d9820, 0x8e7e: 0x4031e220, 0x8e7f: 0x4031f020, + // Block 0x23a, offset 0x8e80 + 0x8e80: 0xe0000d24, 0x8e81: 0xe0000d21, 0x8e82: 0xe0000d2a, 0x8e83: 0xe0000d27, + 0x8e84: 0xe0000d69, 0x8e85: 0xe0000d66, 0x8e86: 0xe0000d7b, 0x8e87: 0xe0000d78, + 0x8e88: 0xe0000d87, 0x8e89: 0xe0000d84, 0x8e8a: 0xe0000d81, 0x8e8b: 0xe0000d7e, + 0x8e8c: 0xe00029d8, 0x8e8d: 0xe00029d5, 0x8e8e: 0xe00029de, 0x8e8f: 0xe00029db, + 0x8e90: 0xe0000e3d, 0x8e91: 0xe0000e39, 0x8e92: 0xe0000e35, 0x8e93: 0xe0000e31, + 0x8e94: 0xe0000ea7, 0x8e95: 0xe0000ea4, 0x8e96: 0xe0000ead, 0x8e97: 0xe0000eaa, + 0x8e98: 0xe0000ed6, 0x8e99: 0xe0000ed3, 0x8e9a: 0xe0000ef4, 0x8e9b: 0xe0000ef1, + 0x8e9c: 0xe0000efb, 0x8e9d: 0xe0000ef7, 0x8e9e: 0xe0000f02, 0x8e9f: 0xe0000eff, + 0x8ea0: 0xe0000f41, 0x8ea1: 0xe0000f3e, 0x8ea2: 0xe0000f53, 0x8ea3: 0xe0000f50, + 0x8ea4: 0xe0000f26, 0x8ea5: 0xe0000f22, 0x8ea6: 0xe00029b4, 0x8ea7: 0xe00029b1, + 0x8ea8: 0xe0000f5a, 0x8ea9: 0xe0000f56, 0x8eaa: 0xe0000f93, 0x8eab: 0xe0000f90, + 0x8eac: 0xe0000f9f, 0x8ead: 0xe0000f9c, 0x8eae: 0xe0000fb1, 0x8eaf: 0xe0000fae, + 0x8eb0: 0xe0000fab, 0x8eb1: 0xe0000fa8, 0x8eb2: 0xe0001093, 0x8eb3: 0xe0001090, + 0x8eb4: 0xe000109f, 0x8eb5: 0xe000109c, 0x8eb6: 0xe0001099, 0x8eb7: 0xe0001096, + 0x8eb8: 0xe0001032, 0x8eb9: 0xe000102e, 0x8eba: 0xe0002685, 0x8ebb: 0xe0002682, + 0x8ebc: 0xe00010a9, 0x8ebd: 0xe00010a6, 0x8ebe: 0xe00010af, 0x8ebf: 0xe00010ac, + // Block 0x23b, offset 0x8ec0 + 0x8ec0: 0xe00010d2, 0x8ec1: 0xe00010cf, 0x8ec2: 0xe00010cc, 0x8ec3: 0xe00010c9, + 0x8ec4: 0xe00010e1, 0x8ec5: 0xe00010de, 0x8ec6: 0xe00010e7, 0x8ec7: 0xe00010e4, + 0x8ec8: 0xe00010ed, 0x8ec9: 0xe00010ea, 0x8eca: 0xe00010fc, 0x8ecb: 0xe00010f9, + 0x8ecc: 0xe00010f6, 0x8ecd: 0xe00010f3, 0x8ece: 0xe0001123, 0x8ecf: 0xe0001120, + 0x8ed0: 0xe0001141, 0x8ed1: 0xe000113e, 0x8ed2: 0xe0001153, 0x8ed3: 0xe0001150, + 0x8ed4: 0xe0001159, 0x8ed5: 0xe0001156, 0x8ed6: 0xe0000c15, 0x8ed7: 0xe0000f8d, + 0x8ed8: 0xe00010db, 0x8ed9: 0xe0001111, 0x8eda: 0xf0000404, 0x8edb: 0xe0000f70, + 0x8edc: 0x40300420, 0x8edd: 0x40300620, 0x8ede: 0xe0000f7f, 0x8edf: 0x402c9620, + 0x8ee0: 0xe000099b, 0x8ee1: 0xe0000998, 0x8ee2: 0xe0000989, 0x8ee3: 0xe0000986, + 0x8ee4: 0xe0002791, 0x8ee5: 0xe000278e, 0x8ee6: 0xe0000930, 0x8ee7: 0xe000092c, + 0x8ee8: 0xe0000940, 0x8ee9: 0xe000093c, 0x8eea: 0xe00029d2, 0x8eeb: 0xe00029cf, + 0x8eec: 0xe00009aa, 0x8eed: 0xe00009a6, 0x8eee: 0xe000278b, 0x8eef: 0xe0002788, + 0x8ef0: 0xe000090a, 0x8ef1: 0xe0000906, 0x8ef2: 0xe000091a, 0x8ef3: 0xe0000916, + 0x8ef4: 0xe00029cc, 0x8ef5: 0xe00029c9, 0x8ef6: 0xe00009a2, 0x8ef7: 0xe000099e, + 0x8ef8: 0xe0000b6e, 0x8ef9: 0xe0000b6b, 0x8efa: 0xe0000b5c, 0x8efb: 0xe0000b59, + 0x8efc: 0xe0000b26, 0x8efd: 0xe0000b23, 0x8efe: 0xe0000afb, 0x8eff: 0xe0000af7, + // Block 0x23c, offset 0x8f00 + 0x8f00: 0xe0000b03, 0x8f01: 0xe0000aff, 0x8f02: 0xe0000b13, 0x8f03: 0xe0000b0f, + 0x8f04: 0xe0000b0b, 0x8f05: 0xe0000b07, 0x8f06: 0xe0000b75, 0x8f07: 0xe0000b71, + 0x8f08: 0xe0000c66, 0x8f09: 0xe0000c63, 0x8f0a: 0xe0000c78, 0x8f0b: 0xe0000c75, + 0x8f0c: 0xe0000e84, 0x8f0d: 0xe0000e81, 0x8f0e: 0xe0000e44, 0x8f0f: 0xe0000e41, + 0x8f10: 0xe0002764, 0x8f11: 0xe0002761, 0x8f12: 0xe00029f0, 0x8f13: 0xe00029ed, + 0x8f14: 0xe00029fc, 0x8f15: 0xe00029f9, 0x8f16: 0xe00029f6, 0x8f17: 0xe00029f3, + 0x8f18: 0xe0002a02, 0x8f19: 0xe00029ff, 0x8f1a: 0xe0000e5d, 0x8f1b: 0xe0000e59, + 0x8f1c: 0xe0000e65, 0x8f1d: 0xe0000e61, 0x8f1e: 0xe0000e75, 0x8f1f: 0xe0000e71, + 0x8f20: 0xe00029ea, 0x8f21: 0xe00029e7, 0x8f22: 0xe0000e7d, 0x8f23: 0xe0000e79, + 0x8f24: 0xe000108d, 0x8f25: 0xe000108a, 0x8f26: 0xe000104d, 0x8f27: 0xe000104a, + 0x8f28: 0xe0001066, 0x8f29: 0xe0001062, 0x8f2a: 0xe000106e, 0x8f2b: 0xe000106a, + 0x8f2c: 0xe000107e, 0x8f2d: 0xe000107a, 0x8f2e: 0xe0001076, 0x8f2f: 0xe0001072, + 0x8f30: 0xe0001086, 0x8f31: 0xe0001082, 0x8f32: 0xe0001108, 0x8f33: 0xe0001105, + 0x8f34: 0xe0001135, 0x8f35: 0xe0001132, 0x8f36: 0xe000112f, 0x8f37: 0xe000112c, + 0x8f38: 0xe000111d, 0x8f39: 0xe000111a, 0x8f3a: 0xe0000d0a, 0x8f3b: 0xe0000d07, + 0x8f3c: 0x0030d888, 0x8f3d: 0x4030d820, 0x8f3e: 0x00312088, 0x8f3f: 0x40312020, + // Block 0x23d, offset 0x8f40 + 0x8f40: 0xa0000000, 0x8f41: 0xa0000000, 0x8f42: 0xa0000000, 0x8f43: 0xa0000000, + 0x8f44: 0xa0000000, 0x8f45: 0xa0000000, 0x8f46: 0xa0000000, 0x8f47: 0xa0000000, + 0x8f48: 0xa0000000, 0x8f49: 0x40020020, 0x8f4a: 0x40020220, 0x8f4b: 0x40020420, + 0x8f4c: 0x40020620, 0x8f4d: 0x40020820, 0x8f4e: 0xa0000000, 0x8f4f: 0xa0000000, + 0x8f50: 0xa0000000, 0x8f51: 0xa0000000, 0x8f52: 0xa0000000, 0x8f53: 0xa0000000, + 0x8f54: 0xa0000000, 0x8f55: 0xa0000000, 0x8f56: 0xa0000000, 0x8f57: 0xa0000000, + 0x8f58: 0xa0000000, 0x8f59: 0xa0000000, 0x8f5a: 0xa0000000, 0x8f5b: 0xa0000000, + 0x8f5c: 0xa0000000, 0x8f5d: 0xa0000000, 0x8f5e: 0xa0000000, 0x8f5f: 0xa0000000, + 0x8f60: 0x40021220, 0x8f61: 0x4002ba20, 0x8f62: 0x4003e020, 0x8f63: 0x4004ea20, + 0x8f64: 0x4027de20, 0x8f65: 0x4004ec20, 0x8f66: 0x4004e620, 0x8f67: 0x4003d220, + 0x8f68: 0x4003f420, 0x8f69: 0x4003f620, 0x8f6a: 0x4004d820, 0x8f6b: 0x40093820, + 0x8f6c: 0x40024020, 0x8f6d: 0x40021a20, 0x8f6e: 0x4002e420, 0x8f6f: 0x4004e220, + 0x8f70: 0x4029cc20, 0x8f71: 0x4029ce20, 0x8f72: 0x4029d020, 0x8f73: 0x4029d220, + 0x8f74: 0x4029d420, 0x8f75: 0x4029d620, 0x8f76: 0x4029d820, 0x8f77: 0x4029da20, + 0x8f78: 0x4029dc20, 0x8f79: 0x4029de20, 0x8f7a: 0x40026c20, 0x8f7b: 0x40026220, + 0x8f7c: 0x40094020, 0x8f7d: 0xc32f0851, 0x8f7e: 0x40094420, 0x8f7f: 0x4002c420, + // Block 0x23e, offset 0x8f80 + 0x8f80: 0x4004d620, 0x8f81: 0xc4400cb1, 0x8f82: 0x002c0a88, 0x8f83: 0xc33b08d1, + 0x8f84: 0xc35b08d1, 0x8f85: 0xc36008f1, 0x8f86: 0x002d0888, 0x8f87: 0x002d2288, + 0x8f88: 0x002d6888, 0x8f89: 0xc36508b1, 0x8f8a: 0x002dcc88, 0x8f8b: 0x002dfe88, + 0x8f8c: 0xc4480eb3, 0x8f8d: 0x002e8288, 0x8f8e: 0xc36908d1, 0x8f8f: 0xc4500f21, + 0x8f90: 0x002f2c88, 0x8f91: 0x002f5688, 0x8f92: 0xc45608f1, 0x8f93: 0xc34908d1, + 0x8f94: 0xc37108d1, 0x8f95: 0xc3760921, 0x8f96: 0x0030be88, 0x8f97: 0x0030e288, + 0x8f98: 0x0030f688, 0x8f99: 0xc37b08b1, 0x8f9a: 0xc37f08d1, 0x8f9b: 0x4003f820, + 0x8f9c: 0x4004e420, 0x8f9d: 0x4003fa20, 0x8f9e: 0x40062420, 0x8f9f: 0x40021620, + 0x8fa0: 0x40061e20, 0x8fa1: 0xc43d0cb1, 0x8fa2: 0x402c0a20, 0x8fa3: 0xc33908d1, + 0x8fa4: 0xc35908d1, 0x8fa5: 0xc35d08f1, 0x8fa6: 0x402d0820, 0x8fa7: 0x402d2220, + 0x8fa8: 0x402d6820, 0x8fa9: 0xc36308b1, 0x8faa: 0x402dcc20, 0x8fab: 0x402dfe20, + 0x8fac: 0xc4430eb3, 0x8fad: 0x402e8220, 0x8fae: 0xc36708d1, 0x8faf: 0xc44d0f21, + 0x8fb0: 0x402f2c20, 0x8fb1: 0x402f5620, 0x8fb2: 0xc45308f1, 0x8fb3: 0xc34708d1, + 0x8fb4: 0xc36f08d1, 0x8fb5: 0xc3730921, 0x8fb6: 0x4030be20, 0x8fb7: 0x4030e220, + 0x8fb8: 0x4030f620, 0x8fb9: 0xc37908b1, 0x8fba: 0xc37d08d1, 0x8fbb: 0x4003fc20, + 0x8fbc: 0x40094820, 0x8fbd: 0x4003fe20, 0x8fbe: 0x40094c20, 0x8fbf: 0xa0000000, + // Block 0x23f, offset 0x8fc0 + 0x8fc0: 0xe00008f5, 0x8fc1: 0x002be083, 0x8fc2: 0xe0000921, 0x8fc3: 0xe0000969, + 0x8fc4: 0x002be283, 0x8fc5: 0xe000094d, 0x8fc6: 0xe00009dd, 0x8fc7: 0xe0000a53, + 0x8fc8: 0xe0000ae8, 0x8fc9: 0x002c9a83, 0x8fca: 0xe0000af4, 0x8fcb: 0xe0000b20, + 0x8fcc: 0xe0000c2b, 0x8fcd: 0x002d9c83, 0x8fce: 0xe0000c37, 0x8fcf: 0xe0000c43, + 0x8fd0: 0xe0000ab3, 0x8fd1: 0xe0000d63, 0x8fd2: 0xe0000d9a, 0x8fd3: 0x002ee483, + 0x8fd4: 0x002ee683, 0x8fd5: 0xe0000de6, 0x8fd6: 0xe0000dd2, 0x8fd7: 0x40093e20, + 0x8fd8: 0xe0000e12, 0x8fd9: 0xe0000fe1, 0x8fda: 0x00306e83, 0x8fdb: 0xe0000fed, + 0x8fdc: 0xe0000fff, 0x8fdd: 0x00310283, 0x8fde: 0x00318888, 0x8fdf: 0xe0000f7b, + 0x8fe0: 0xe00008f2, 0x8fe1: 0x402be020, 0x8fe2: 0xe000091e, 0x8fe3: 0xe0000966, + 0x8fe4: 0x402be220, 0x8fe5: 0xe000094a, 0x8fe6: 0xe00009d5, 0x8fe7: 0xe0000a4d, + 0x8fe8: 0xe0000ae5, 0x8fe9: 0x402c9a20, 0x8fea: 0xe0000af1, 0x8feb: 0xe0000b1d, + 0x8fec: 0xe0000c28, 0x8fed: 0x402d9c20, 0x8fee: 0xe0000c34, 0x8fef: 0xe0000c40, + 0x8ff0: 0xe0000aad, 0x8ff1: 0xe0000d60, 0x8ff2: 0xe0000d97, 0x8ff3: 0x402ee420, + 0x8ff4: 0x402ee620, 0x8ff5: 0xe0000de3, 0x8ff6: 0xe0000dcf, 0x8ff7: 0x40093c20, + 0x8ff8: 0xe0000e0f, 0x8ff9: 0xe0000fde, 0x8ffa: 0x40306e20, 0x8ffb: 0xe0000fea, + 0x8ffc: 0xe0000ffc, 0x8ffd: 0x40310220, 0x8ffe: 0x40318820, 0x8fff: 0xe0001114, + // Block 0x240, offset 0x9000 + 0x9000: 0xe0000983, 0x9001: 0xe0000980, 0x9002: 0xe00008fb, 0x9003: 0xe00008f8, + 0x9004: 0xe000097d, 0x9005: 0xe000097a, 0x9006: 0xe0000a38, 0x9007: 0xe0000a35, + 0x9008: 0xe0000a3e, 0x9009: 0xe0000a3b, 0x900a: 0xe0000a4a, 0x900b: 0xe0000a47, + 0x900c: 0x002c3c83, 0x900d: 0x402c3c20, 0x900e: 0x002c6483, 0x900f: 0x402c6420, + 0x9010: 0xe0000aaa, 0x9011: 0xe0000aa7, 0x9012: 0xe0000b46, 0x9013: 0xe0000b43, + 0x9014: 0xe0000aee, 0x9015: 0xe0000aeb, 0x9016: 0xe0000b2c, 0x9017: 0xe0000b29, + 0x9018: 0xe0000b40, 0x9019: 0xe0000b3d, 0x901a: 0x002c9c83, 0x901b: 0x402c9c20, + 0x901c: 0xe0000bb8, 0x901d: 0xe0000bb5, 0x901e: 0xe0000bb2, 0x901f: 0xe0000baf, + 0x9020: 0xe0000bc4, 0x9021: 0xe0000bc1, 0x9022: 0xe0000bca, 0x9023: 0xe0000bc7, + 0x9024: 0xe0000bee, 0x9025: 0xe0000beb, 0x9026: 0xe0000c1b, 0x9027: 0xe0000c18, + 0x9028: 0xe0000c51, 0x9029: 0xe0000c4e, 0x902a: 0xe0000c60, 0x902b: 0xe0000c5d, + 0x902c: 0xe0000c31, 0x902d: 0xe0000c2e, 0x902e: 0xe0000c5a, 0x902f: 0xe0000c57, + 0x9030: 0xe0000c54, 0x9031: 0x402da220, 0x9032: 0xf0000a0a, 0x9033: 0xf0000404, + 0x9034: 0xe0000c8a, 0x9035: 0xe0000c87, 0x9036: 0xe0000c9f, 0x9037: 0xe0000c9c, + 0x9038: 0x402f7220, 0x9039: 0x002e2483, 0x903a: 0x402e2420, 0x903b: 0xe0000cd8, + 0x903c: 0xe0000cd5, 0x903d: 0x002e2683, 0x903e: 0x402e2620, 0x903f: 0xe0000d04, + // Block 0x241, offset 0x9040 + 0x9040: 0xe0000cfe, 0x9041: 0xe0000cf8, 0x9042: 0xe0000cf5, 0x9043: 0xe0000d51, + 0x9044: 0xe0000d4e, 0x9045: 0xe0000d6f, 0x9046: 0xe0000d6c, 0x9047: 0x002ea083, + 0x9048: 0x402ea020, 0x9049: 0xf0000404, 0x904a: 0x002eda88, 0x904b: 0x402eda20, + 0x904c: 0xe0000e2e, 0x904d: 0xe0000e2b, 0x904e: 0xe0000da0, 0x904f: 0xe0000d9d, + 0x9050: 0xe0000de0, 0x9051: 0xe0000ddd, 0x9052: 0xe0000e93, 0x9053: 0xe0000e8f, + 0x9054: 0x002f7c83, 0x9055: 0x402f7c20, 0x9056: 0xe0000edc, 0x9057: 0xe0000ed9, + 0x9058: 0x002f7e83, 0x9059: 0x402f7e20, 0x905a: 0xe0000f1f, 0x905b: 0xe0000f1c, + 0x905c: 0xe0000f2d, 0x905d: 0xe0000f2a, 0x905e: 0xe0000f47, 0x905f: 0xe0000f44, + 0x9060: 0x002fe883, 0x9061: 0x402fe820, 0x9062: 0xe0000f99, 0x9063: 0xe0000f96, + 0x9064: 0x00302e83, 0x9065: 0x40302e20, 0x9066: 0x00303688, 0x9067: 0x40303620, + 0x9068: 0xe000102b, 0x9069: 0xe0001028, 0x906a: 0xe000103f, 0x906b: 0xe000103c, + 0x906c: 0xe0000fe7, 0x906d: 0xe0000fe4, 0x906e: 0x00307083, 0x906f: 0x40307020, + 0x9070: 0xe0001025, 0x9071: 0xe0001022, 0x9072: 0xe0001039, 0x9073: 0xe0001036, + 0x9074: 0xe00010d8, 0x9075: 0xe00010d5, 0x9076: 0xe000110e, 0x9077: 0xe000110b, + 0x9078: 0xe0001117, 0x9079: 0xe000113b, 0x907a: 0xe0001138, 0x907b: 0xe000114d, + 0x907c: 0xe000114a, 0x907d: 0x00312c83, 0x907e: 0x40312c20, 0x907f: 0xe0000f64, + // Block 0x242, offset 0x9080 + 0x9080: 0x40321220, 0x9081: 0x40321a20, 0x9082: 0x40322220, 0x9083: 0x40322a20, + 0x9084: 0xe0000ad5, 0x9085: 0xe0000ad1, 0x9086: 0xe0000acd, 0x9087: 0xf0000a0a, + 0x9088: 0xf000040a, 0x9089: 0xf0000404, 0x908a: 0xf0000a0a, 0x908b: 0xf000040a, + 0x908c: 0xf0000404, 0x908d: 0xe0000947, 0x908e: 0xe0000944, 0x908f: 0xe0000c3d, + 0x9090: 0xe0000c3a, 0x9091: 0xe0000dcc, 0x9092: 0xe0000dc9, 0x9093: 0xe0000ff3, + 0x9094: 0xe0000ff0, 0x9095: 0xe000101e, 0x9096: 0xe000101a, 0x9097: 0xe0002658, + 0x9098: 0xe0002655, 0x9099: 0xe0001016, 0x909a: 0xe0001012, 0x909b: 0xe000100e, + 0x909c: 0xe000100a, 0x909d: 0x402cae20, 0x909e: 0xe0002a0e, 0x909f: 0xe0002a0b, + 0x90a0: 0xe0000976, 0x90a1: 0xe0000972, 0x90a2: 0xe00009f4, 0x90a3: 0xe00009ef, + 0x90a4: 0x002d3a88, 0x90a5: 0x402d3a20, 0x90a6: 0xe0000bbe, 0x90a7: 0xe0000bbb, + 0x90a8: 0xe0000c99, 0x90a9: 0xe0000c96, 0x90aa: 0xe0000e20, 0x90ab: 0xe0000e1d, + 0x90ac: 0xe0000e27, 0x90ad: 0xe0000e23, 0x90ae: 0xe0001162, 0x90af: 0xe000115f, + 0x90b0: 0xe0000c8d, 0x90b1: 0xf0000a0a, 0x90b2: 0xf000040a, 0x90b3: 0xf0000404, + 0x90b4: 0xe0000bac, 0x90b5: 0xe0000ba9, 0x90b6: 0x002d7888, 0x90b7: 0x00319488, + 0x90b8: 0xe0000d57, 0x90b9: 0xe0000d54, 0x90ba: 0xe000262e, 0x90bb: 0xe000262b, + 0x90bc: 0xe00009ea, 0x90bd: 0xe00009e5, 0x90be: 0xe0000e19, 0x90bf: 0xe0000e15, + // Block 0x243, offset 0x90c0 + 0x90c0: 0xe0000b03, 0x90c1: 0xe0000aff, 0x90c2: 0xe0000b13, 0x90c3: 0xe0000b0f, + 0x90c4: 0xe0000b0b, 0x90c5: 0xe0000b07, 0x90c6: 0xe0000b75, 0x90c7: 0xe0000b71, + 0x90c8: 0xe0000c66, 0x90c9: 0xe0000c63, 0x90ca: 0xe0000c78, 0x90cb: 0xe0000c75, + 0x90cc: 0xe0000e84, 0x90cd: 0xe0000e81, 0x90ce: 0xe0000e44, 0x90cf: 0xe0000e41, + 0x90d0: 0xe0002a14, 0x90d1: 0xe0002a11, 0x90d2: 0xe0002a1a, 0x90d3: 0xe0002a17, + 0x90d4: 0xe0002a26, 0x90d5: 0xe0002a23, 0x90d6: 0xe0002a20, 0x90d7: 0xe0002a1d, + 0x90d8: 0xe0002a2c, 0x90d9: 0xe0002a29, 0x90da: 0xe000264c, 0x90db: 0xe0002649, + 0x90dc: 0xe0000e65, 0x90dd: 0xe0000e61, 0x90de: 0xe0000e75, 0x90df: 0xe0000e71, + 0x90e0: 0xe0000e6d, 0x90e1: 0xe0000e69, 0x90e2: 0xe0000e7d, 0x90e3: 0xe0000e79, + 0x90e4: 0xe000108d, 0x90e5: 0xe000108a, 0x90e6: 0xe000104d, 0x90e7: 0xe000104a, + 0x90e8: 0xe0002664, 0x90e9: 0xe0002661, 0x90ea: 0xe000106e, 0x90eb: 0xe000106a, + 0x90ec: 0xe000107e, 0x90ed: 0xe000107a, 0x90ee: 0xe0001076, 0x90ef: 0xe0001072, + 0x90f0: 0xe0001086, 0x90f1: 0xe0001082, 0x90f2: 0xe0001108, 0x90f3: 0xe0001105, + 0x90f4: 0xe0001135, 0x90f5: 0xe0001132, 0x90f6: 0xe000112f, 0x90f7: 0xe000112c, + 0x90f8: 0xe000111d, 0x90f9: 0xe000111a, 0x90fa: 0xe0000d0a, 0x90fb: 0xe0000d07, + 0x90fc: 0x0030d888, 0x90fd: 0x4030d820, 0x90fe: 0x00312088, 0x90ff: 0x40312020, + // Block 0x244, offset 0x9100 + 0x9100: 0xa0000000, 0x9101: 0xa0000000, 0x9102: 0xa0000000, 0x9103: 0xa0000000, + 0x9104: 0xa0000000, 0x9105: 0xa0000000, 0x9106: 0xa0000000, 0x9107: 0xa0000000, + 0x9108: 0xa0000000, 0x9109: 0x40020020, 0x910a: 0x40020220, 0x910b: 0x40020420, + 0x910c: 0x40020620, 0x910d: 0x40020820, 0x910e: 0xa0000000, 0x910f: 0xa0000000, + 0x9110: 0xa0000000, 0x9111: 0xa0000000, 0x9112: 0xa0000000, 0x9113: 0xa0000000, + 0x9114: 0xa0000000, 0x9115: 0xa0000000, 0x9116: 0xa0000000, 0x9117: 0xa0000000, + 0x9118: 0xa0000000, 0x9119: 0xa0000000, 0x911a: 0xa0000000, 0x911b: 0xa0000000, + 0x911c: 0xa0000000, 0x911d: 0xa0000000, 0x911e: 0xa0000000, 0x911f: 0xa0000000, + 0x9120: 0x40021220, 0x9121: 0x4002ba20, 0x9122: 0x4003e020, 0x9123: 0x4004ea20, + 0x9124: 0x4027de20, 0x9125: 0x4004ec20, 0x9126: 0x4004e620, 0x9127: 0x4003d220, + 0x9128: 0x4003f420, 0x9129: 0x4003f620, 0x912a: 0x4004d820, 0x912b: 0x40093820, + 0x912c: 0x40024020, 0x912d: 0x40021a20, 0x912e: 0x4002e420, 0x912f: 0x4004e220, + 0x9130: 0x4029cc20, 0x9131: 0x4029ce20, 0x9132: 0x4029d020, 0x9133: 0x4029d220, + 0x9134: 0x4029d420, 0x9135: 0x4029d620, 0x9136: 0x4029d820, 0x9137: 0x4029da20, + 0x9138: 0x4029dc20, 0x9139: 0x4029de20, 0x913a: 0x40026c20, 0x913b: 0x40026220, + 0x913c: 0x40094020, 0x913d: 0xc32f0851, 0x913e: 0x40094420, 0x913f: 0x4002c420, + // Block 0x245, offset 0x9140 + 0x9140: 0x4004d620, 0x9141: 0xc3a90a51, 0x9142: 0x002c0a88, 0x9143: 0x002c3a88, + 0x9144: 0x002c6288, 0x9145: 0xc45b0a11, 0x9146: 0x002d0888, 0x9147: 0x002d2288, + 0x9148: 0x002d6888, 0x9149: 0x002d9a88, 0x914a: 0x002dcc88, 0x914b: 0x002dfe88, + 0x914c: 0xc0030002, 0x914d: 0x002e8288, 0x914e: 0x002e9e88, 0x914f: 0xc4610f41, + 0x9150: 0x002f2c88, 0x9151: 0x002f5688, 0x9152: 0x002f7a88, 0x9153: 0x002fe688, + 0x9154: 0x00302c88, 0x9155: 0xc3840951, 0x9156: 0x0030be83, 0x9157: 0x0030bea3, + 0x9158: 0x0030f688, 0x9159: 0x00310088, 0x915a: 0x00312a88, 0x915b: 0x4003f820, + 0x915c: 0x4004e420, 0x915d: 0x4003fa20, 0x915e: 0x40062420, 0x915f: 0x40021620, + 0x9160: 0x40061e20, 0x9161: 0xc3a60a51, 0x9162: 0x402c0a20, 0x9163: 0x402c3a20, + 0x9164: 0x402c6220, 0x9165: 0xc4590a11, 0x9166: 0x402d0820, 0x9167: 0x402d2220, + 0x9168: 0x402d6820, 0x9169: 0x402d9a20, 0x916a: 0x402dcc20, 0x916b: 0x402dfe20, + 0x916c: 0xc0000002, 0x916d: 0x402e8220, 0x916e: 0x402e9e20, 0x916f: 0xc45d0f41, + 0x9170: 0x402f2c20, 0x9171: 0x402f5620, 0x9172: 0x402f7a20, 0x9173: 0x402fe620, + 0x9174: 0x40302c20, 0x9175: 0xc3810951, 0x9176: 0x4030be20, 0x9177: 0x4030be21, + 0x9178: 0x4030f620, 0x9179: 0x40310020, 0x917a: 0x40312a20, 0x917b: 0x4003fc20, + 0x917c: 0x40094820, 0x917d: 0x4003fe20, 0x917e: 0x40094c20, 0x917f: 0xa0000000, + // Block 0x246, offset 0x9180 + 0x9180: 0xe00008f5, 0x9181: 0xe00008ef, 0x9182: 0xe0000921, 0x9183: 0xe0000969, + 0x9184: 0x00320e83, 0x9185: 0x00320c83, 0x9186: 0x00320ea3, 0x9187: 0xe0000a53, + 0x9188: 0xe0000ae8, 0x9189: 0xe0000ae2, 0x918a: 0xe0000af4, 0x918b: 0xe0000b20, + 0x918c: 0xe0000c2b, 0x918d: 0xe0000c25, 0x918e: 0xe0000c37, 0x918f: 0xe0000c43, + 0x9190: 0x002c62c3, 0x9191: 0xe0000d63, 0x9192: 0xe0000d9a, 0x9193: 0xe0000d94, + 0x9194: 0x00321103, 0x9195: 0xe0000de6, 0x9196: 0x00321083, 0x9197: 0x40093e20, + 0x9198: 0x003210a3, 0x9199: 0xe0000fe1, 0x919a: 0xe0000fdb, 0x919b: 0xe0000fed, + 0x919c: 0x003100a3, 0x919d: 0xe0001102, 0x919e: 0xe000266d, 0x919f: 0xe0000f7b, + 0x91a0: 0xe00008f2, 0x91a1: 0xe00008ec, 0x91a2: 0xe000091e, 0x91a3: 0xe0000966, + 0x91a4: 0x40320e20, 0x91a5: 0x40320c20, 0x91a6: 0x40320e21, 0x91a7: 0xe0000a4d, + 0x91a8: 0xe0000ae5, 0x91a9: 0xe0000adf, 0x91aa: 0xe0000af1, 0x91ab: 0xe0000b1d, + 0x91ac: 0xe0000c28, 0x91ad: 0xe0000c22, 0x91ae: 0xe0000c34, 0x91af: 0xe0000c40, + 0x91b0: 0x402c6222, 0x91b1: 0xe0000d60, 0x91b2: 0xe0000d97, 0x91b3: 0xe0000d91, + 0x91b4: 0x40321024, 0x91b5: 0xe0000de3, 0x91b6: 0x40321020, 0x91b7: 0x40093c20, + 0x91b8: 0x40321021, 0x91b9: 0xe0000fde, 0x91ba: 0xe0000fd8, 0x91bb: 0xe0000fea, + 0x91bc: 0x40310021, 0x91bd: 0xe00010ff, 0x91be: 0xe000266a, 0x91bf: 0xe0001114, + // Block 0x247, offset 0x91c0 + 0x91c0: 0xe0000983, 0x91c1: 0xe0000980, 0x91c2: 0xe00008fb, 0x91c3: 0xe00008f8, + 0x91c4: 0xe000097d, 0x91c5: 0xe000097a, 0x91c6: 0xe0000a38, 0x91c7: 0xe0000a35, + 0x91c8: 0xe0000a3e, 0x91c9: 0xe0000a3b, 0x91ca: 0xe0000a4a, 0x91cb: 0xe0000a47, + 0x91cc: 0xe0000a44, 0x91cd: 0xe0000a41, 0x91ce: 0xe0000a86, 0x91cf: 0xe0000a83, + 0x91d0: 0x002c62a3, 0x91d1: 0x402c6221, 0x91d2: 0xe0000b46, 0x91d3: 0xe0000b43, + 0x91d4: 0xe0000aee, 0x91d5: 0xe0000aeb, 0x91d6: 0xe0000b2c, 0x91d7: 0xe0000b29, + 0x91d8: 0x00320ec3, 0x91d9: 0x40320e22, 0x91da: 0xe0000b1a, 0x91db: 0xe0000b17, + 0x91dc: 0xe0000bb8, 0x91dd: 0xe0000bb5, 0x91de: 0xe0000bb2, 0x91df: 0xe0000baf, + 0x91e0: 0xe0000bc4, 0x91e1: 0xe0000bc1, 0x91e2: 0xe0000bca, 0x91e3: 0xe0000bc7, + 0x91e4: 0xe0000bee, 0x91e5: 0xe0000beb, 0x91e6: 0xe0000c1b, 0x91e7: 0xe0000c18, + 0x91e8: 0xe0000c51, 0x91e9: 0xe0000c4e, 0x91ea: 0xe0000c60, 0x91eb: 0xe0000c5d, + 0x91ec: 0xe0000c31, 0x91ed: 0xe0000c2e, 0x91ee: 0xe0000c5a, 0x91ef: 0xe0000c57, + 0x91f0: 0xe0000c54, 0x91f1: 0x402da220, 0x91f2: 0xf0000a0a, 0x91f3: 0xf0000404, + 0x91f4: 0xe0000c8a, 0x91f5: 0xe0000c87, 0x91f6: 0xe0000c9f, 0x91f7: 0xe0000c9c, + 0x91f8: 0x402f7220, 0x91f9: 0xe0000ccc, 0x91fa: 0xe0000cc9, 0x91fb: 0xe0000cd8, + 0x91fc: 0xe0000cd5, 0x91fd: 0xe0000cd2, 0x91fe: 0xe0000ccf, 0x91ff: 0xe0000d04, + // Block 0x248, offset 0x9200 + 0x9200: 0xe0000cfe, 0x9201: 0xe0000cf8, 0x9202: 0xe0000cf5, 0x9203: 0xe0000d51, + 0x9204: 0xe0000d4e, 0x9205: 0xe0000d6f, 0x9206: 0xe0000d6c, 0x9207: 0xe0000d5d, + 0x9208: 0xe0000d5a, 0x9209: 0xf0000404, 0x920a: 0x002eda88, 0x920b: 0x402eda20, + 0x920c: 0xe0000e2e, 0x920d: 0xe0000e2b, 0x920e: 0xe0000da0, 0x920f: 0xe0000d9d, + 0x9210: 0x003210c3, 0x9211: 0x40321022, 0x9212: 0x003210e3, 0x9213: 0x40321023, + 0x9214: 0xe0000eca, 0x9215: 0xe0000ec7, 0x9216: 0xe0000edc, 0x9217: 0xe0000ed9, + 0x9218: 0xe0000ed0, 0x9219: 0xe0000ecd, 0x921a: 0xe0000f1f, 0x921b: 0xe0000f1c, + 0x921c: 0xe0000f2d, 0x921d: 0xe0000f2a, 0x921e: 0xe0000f47, 0x921f: 0xe0000f44, + 0x9220: 0xe0000f33, 0x9221: 0xe0000f30, 0x9222: 0xe0000f99, 0x9223: 0xe0000f96, + 0x9224: 0xe0000f8a, 0x9225: 0xe0000f87, 0x9226: 0x00303688, 0x9227: 0x40303620, + 0x9228: 0xe000102b, 0x9229: 0xe0001028, 0x922a: 0xe000103f, 0x922b: 0xe000103c, + 0x922c: 0xe0000fe7, 0x922d: 0xe0000fe4, 0x922e: 0xe0000ff9, 0x922f: 0xe0000ff6, + 0x9230: 0x003100c3, 0x9231: 0x40310022, 0x9232: 0xe0001039, 0x9233: 0xe0001036, + 0x9234: 0xe0002728, 0x9235: 0xe0002725, 0x9236: 0xe000110e, 0x9237: 0xe000110b, + 0x9238: 0xe0001117, 0x9239: 0xe000113b, 0x923a: 0xe0001138, 0x923b: 0xe000114d, + 0x923c: 0xe000114a, 0x923d: 0xe0001147, 0x923e: 0xe0001144, 0x923f: 0xe0000f64, + // Block 0x249, offset 0x9240 + 0x9240: 0xe000098f, 0x9241: 0xe000098c, 0x9242: 0xe0000995, 0x9243: 0xe0000992, + 0x9244: 0xe0000b62, 0x9245: 0xe0000b5f, 0x9246: 0xe0000b68, 0x9247: 0xe0000b65, + 0x9248: 0xe0000c6c, 0x9249: 0xe0000c69, 0x924a: 0xe0000c72, 0x924b: 0xe0000c6f, + 0x924c: 0xe0000e4a, 0x924d: 0xe0000e47, 0x924e: 0xe0000e50, 0x924f: 0xe0000e4d, + 0x9250: 0xe0000ee8, 0x9251: 0xe0000ee5, 0x9252: 0xe0000eee, 0x9253: 0xe0000eeb, + 0x9254: 0xe0001053, 0x9255: 0xe0001050, 0x9256: 0xe0001059, 0x9257: 0xe0001056, + 0x9258: 0xe0000f61, 0x9259: 0xe0000f5e, 0x925a: 0xe0000fa5, 0x925b: 0xe0000fa2, + 0x925c: 0x00312288, 0x925d: 0x40312220, 0x925e: 0xe0000bf4, 0x925f: 0xe0000bf1, + 0x9260: 0x002ebc88, 0x9261: 0x402c8c20, 0x9262: 0x002f2288, 0x9263: 0x402f2220, + 0x9264: 0x00314088, 0x9265: 0x40314020, 0x9266: 0xe000096f, 0x9267: 0xe000096c, + 0x9268: 0xe0000b32, 0x9269: 0xe0000b2f, 0x926a: 0xe0002758, 0x926b: 0xe0002755, + 0x926c: 0xe0000dfd, 0x926d: 0xe0000df9, 0x926e: 0xe0000e04, 0x926f: 0xe0000e01, + 0x9270: 0xe0000e0b, 0x9271: 0xe0000e07, 0x9272: 0xe0001129, 0x9273: 0xe0001126, + 0x9274: 0x402e5e20, 0x9275: 0x402ed020, 0x9276: 0x40305a20, 0x9277: 0x402dd420, + 0x9278: 0xe0000abf, 0x9279: 0xe0000ec4, 0x927a: 0x002be888, 0x927b: 0x002c4488, + 0x927c: 0x402c4420, 0x927d: 0x002e3888, 0x927e: 0x00303e88, 0x927f: 0x402ffc20, + // Block 0x24a, offset 0x9280 + 0x9280: 0xe0000d24, 0x9281: 0xe0000d21, 0x9282: 0xe0000d2a, 0x9283: 0xe0000d27, + 0x9284: 0xe0000d69, 0x9285: 0xe0000d66, 0x9286: 0xe0000d7b, 0x9287: 0xe0000d78, + 0x9288: 0xe0000d87, 0x9289: 0xe0000d84, 0x928a: 0xe0000d81, 0x928b: 0xe0000d7e, + 0x928c: 0xe0000ded, 0x928d: 0xe0000de9, 0x928e: 0xe0002a38, 0x928f: 0xe0002a35, + 0x9290: 0xe0000e3d, 0x9291: 0xe0000e39, 0x9292: 0xe0000e35, 0x9293: 0xe0000e31, + 0x9294: 0xe0000ea7, 0x9295: 0xe0000ea4, 0x9296: 0xe0000ead, 0x9297: 0xe0000eaa, + 0x9298: 0xe0000ed6, 0x9299: 0xe0000ed3, 0x929a: 0xe0000ef4, 0x929b: 0xe0000ef1, + 0x929c: 0xe0000efb, 0x929d: 0xe0000ef7, 0x929e: 0xe0000f02, 0x929f: 0xe0000eff, + 0x92a0: 0xe0000f41, 0x92a1: 0xe0000f3e, 0x92a2: 0xe0000f53, 0x92a3: 0xe0000f50, + 0x92a4: 0xe0000f26, 0x92a5: 0xe0000f22, 0x92a6: 0xe0000f3a, 0x92a7: 0xe0000f36, + 0x92a8: 0xe0000f5a, 0x92a9: 0xe0000f56, 0x92aa: 0xe0000f93, 0x92ab: 0xe0000f90, + 0x92ac: 0xe0000f9f, 0x92ad: 0xe0000f9c, 0x92ae: 0xe0000fb1, 0x92af: 0xe0000fae, + 0x92b0: 0xe0000fab, 0x92b1: 0xe0000fa8, 0x92b2: 0xe0001093, 0x92b3: 0xe0001090, + 0x92b4: 0xe000109f, 0x92b5: 0xe000109c, 0x92b6: 0xe0001099, 0x92b7: 0xe0001096, + 0x92b8: 0xe0001032, 0x92b9: 0xe000102e, 0x92ba: 0xe0002685, 0x92bb: 0xe0002682, + 0x92bc: 0xe0002a2f, 0x92bd: 0xe00010a6, 0x92be: 0xe0002a32, 0x92bf: 0xe00010ac, + // Block 0x24b, offset 0x92c0 + 0x92c0: 0xe0000b03, 0x92c1: 0xe0000aff, 0x92c2: 0xe0000b13, 0x92c3: 0xe0000b0f, + 0x92c4: 0xe0000b0b, 0x92c5: 0xe0000b07, 0x92c6: 0xe0000b75, 0x92c7: 0xe0000b71, + 0x92c8: 0xe0000c66, 0x92c9: 0xe0000c63, 0x92ca: 0xe0000c78, 0x92cb: 0xe0000c75, + 0x92cc: 0xe0000e84, 0x92cd: 0xe0000e81, 0x92ce: 0xe0000e44, 0x92cf: 0xe0000e41, + 0x92d0: 0xe0002a3e, 0x92d1: 0xe0002a3b, 0x92d2: 0xe0002a44, 0x92d3: 0xe0002a41, + 0x92d4: 0xe0002a50, 0x92d5: 0xe0002a4d, 0x92d6: 0xe0002a4a, 0x92d7: 0xe0002a47, + 0x92d8: 0xe0002a56, 0x92d9: 0xe0002a53, 0x92da: 0xe0000e5d, 0x92db: 0xe0000e59, + 0x92dc: 0xe0000e65, 0x92dd: 0xe0000e61, 0x92de: 0xe0000e75, 0x92df: 0xe0000e71, + 0x92e0: 0xe0000e6d, 0x92e1: 0xe0000e69, 0x92e2: 0xe0000e7d, 0x92e3: 0xe0000e79, + 0x92e4: 0xe000108d, 0x92e5: 0xe000108a, 0x92e6: 0xe000104d, 0x92e7: 0xe000104a, + 0x92e8: 0xe0001066, 0x92e9: 0xe0001062, 0x92ea: 0xe000106e, 0x92eb: 0xe000106a, + 0x92ec: 0xe000107e, 0x92ed: 0xe000107a, 0x92ee: 0xe0001076, 0x92ef: 0xe0001072, + 0x92f0: 0xe0001086, 0x92f1: 0xe0001082, 0x92f2: 0xe0001108, 0x92f3: 0xe0001105, + 0x92f4: 0xe0001135, 0x92f5: 0xe0001132, 0x92f6: 0xe000112f, 0x92f7: 0xe000112c, + 0x92f8: 0xe000111d, 0x92f9: 0xe000111a, 0x92fa: 0xe0000d0a, 0x92fb: 0xe0000d07, + 0x92fc: 0x0030d888, 0x92fd: 0x4030d820, 0x92fe: 0x00312088, 0x92ff: 0x40312020, + // Block 0x24c, offset 0x9300 + 0x9300: 0xa0000000, 0x9301: 0xa0000000, 0x9302: 0xa0000000, 0x9303: 0xa0000000, + 0x9304: 0xa0000000, 0x9305: 0xa0000000, 0x9306: 0xa0000000, 0x9307: 0xa0000000, + 0x9308: 0xa0000000, 0x9309: 0x40020020, 0x930a: 0x40020220, 0x930b: 0x40020420, + 0x930c: 0x40020620, 0x930d: 0x40020820, 0x930e: 0xa0000000, 0x930f: 0xa0000000, + 0x9310: 0xa0000000, 0x9311: 0xa0000000, 0x9312: 0xa0000000, 0x9313: 0xa0000000, + 0x9314: 0xa0000000, 0x9315: 0xa0000000, 0x9316: 0xa0000000, 0x9317: 0xa0000000, + 0x9318: 0xa0000000, 0x9319: 0xa0000000, 0x931a: 0xa0000000, 0x931b: 0xa0000000, + 0x931c: 0xa0000000, 0x931d: 0xa0000000, 0x931e: 0xa0000000, 0x931f: 0xa0000000, + 0x9320: 0x40021220, 0x9321: 0x4002ba20, 0x9322: 0x4003e020, 0x9323: 0x4004ea20, + 0x9324: 0x4027de20, 0x9325: 0x4004ec20, 0x9326: 0x4004e620, 0x9327: 0x4003d220, + 0x9328: 0x4003f420, 0x9329: 0x4003f620, 0x932a: 0x4004d820, 0x932b: 0x40093820, + 0x932c: 0x40024020, 0x932d: 0x40021a20, 0x932e: 0x4002e420, 0x932f: 0x4004e220, + 0x9330: 0x4029cc20, 0x9331: 0x4029ce20, 0x9332: 0x4029d020, 0x9333: 0x4029d220, + 0x9334: 0x4029d420, 0x9335: 0x4029d620, 0x9336: 0x4029d820, 0x9337: 0x4029da20, + 0x9338: 0x4029dc20, 0x9339: 0x4029de20, 0x933a: 0x40026c20, 0x933b: 0x40026220, + 0x933c: 0x40094020, 0x933d: 0xc32f0851, 0x933e: 0x40094420, 0x933f: 0x4002c420, + // Block 0x24d, offset 0x9340 + 0x9340: 0x4004d620, 0x9341: 0x002bde88, 0x9342: 0x002c0a88, 0x9343: 0xc33b0871, + 0x9344: 0x002c6288, 0x9345: 0x002c9888, 0x9346: 0x002d0888, 0x9347: 0xc33f00d1, + 0x9348: 0x002d6888, 0x9349: 0xc3410891, 0x934a: 0x002dcc88, 0x934b: 0x002dfe88, + 0x934c: 0xc0030002, 0x934d: 0x002e8288, 0x934e: 0x002e9e88, 0x934f: 0xc3450071, + 0x9350: 0x002f2c88, 0x9351: 0x002f5688, 0x9352: 0x002f7a88, 0x9353: 0xc3490871, + 0x9354: 0x00302c88, 0x9355: 0xc34d0071, 0x9356: 0x0030be88, 0x9357: 0x0030e288, + 0x9358: 0x0030f688, 0x9359: 0x00310088, 0x935a: 0x00312a88, 0x935b: 0x4003f820, + 0x935c: 0x4004e420, 0x935d: 0x4003fa20, 0x935e: 0x40062420, 0x935f: 0x40021620, + 0x9360: 0x40061e20, 0x9361: 0x402bde20, 0x9362: 0x402c0a20, 0x9363: 0xc3390871, + 0x9364: 0x402c6220, 0x9365: 0x402c9820, 0x9366: 0x402d0820, 0x9367: 0xc33d00d1, + 0x9368: 0x402d6820, 0x9369: 0x402d9a20, 0x936a: 0x402dcc20, 0x936b: 0x402dfe20, + 0x936c: 0xc0000002, 0x936d: 0x402e8220, 0x936e: 0x402e9e20, 0x936f: 0xc3430071, + 0x9370: 0x402f2c20, 0x9371: 0x402f5620, 0x9372: 0x402f7a20, 0x9373: 0xc3470871, + 0x9374: 0x40302c20, 0x9375: 0xc34b0071, 0x9376: 0x4030be20, 0x9377: 0x4030e220, + 0x9378: 0x4030f620, 0x9379: 0x40310020, 0x937a: 0x40312a20, 0x937b: 0x4003fc20, + 0x937c: 0x40094820, 0x937d: 0x4003fe20, 0x937e: 0x40094c20, 0x937f: 0xa0000000, + // Block 0x24e, offset 0x9380 + 0x9380: 0x00093685, 0x9381: 0x40083620, 0x9382: 0x40083820, 0x9383: 0x40083a20, + 0x9384: 0x40083c20, 0x9385: 0x002c628b, 0x9386: 0x002c6285, 0x9387: 0x002c9885, + 0x9388: 0x002d9a85, 0x9389: 0x002dcc85, 0x938a: 0x40083e20, 0x938b: 0x400a6e20, + 0x938c: 0x40084020, 0x938d: 0xe00009c4, 0x938e: 0x402d1e20, 0x938f: 0x40084220, + 0x9390: 0xe00002cb, 0x9391: 0xe00002d3, 0x9392: 0xe00002b2, 0x9393: 0xe00002bb, + 0x9394: 0xe00003cd, 0x9395: 0xe00002c3, 0x9396: 0xe00003d1, 0x9397: 0xe00004ab, + 0x9398: 0xe0000579, 0x9399: 0xe00002c7, 0x939a: 0xe0000640, 0x939b: 0xe00002cf, + 0x939c: 0xe00004af, 0x939d: 0xe0000644, 0x939e: 0xe0000798, 0x939f: 0xf0001e1e, + 0x93a0: 0x002d9a8a, 0x93a1: 0xe00025cd, 0x93a2: 0xe00025d0, 0x93a3: 0xe00025da, + 0x93a4: 0x0030be8a, 0x93a5: 0xe000260a, 0x93a6: 0xe000260d, 0x93a7: 0xe00010bb, + 0x93a8: 0xe00025e0, 0x93a9: 0x0030f68a, 0x93aa: 0xe0002614, 0x93ab: 0xe000261b, + 0x93ac: 0x002e228a, 0x93ad: 0x002c3a8a, 0x93ae: 0x002c628a, 0x93af: 0x002e828a, + 0x93b0: 0x002d9a84, 0x93b1: 0xf0001f04, 0x93b2: 0xf0000404, 0x93b3: 0xf0001f04, + 0x93b4: 0x0030be84, 0x93b5: 0xf0001f04, 0x93b6: 0xf0000404, 0x93b7: 0xe00010b6, + 0x93b8: 0xf0001f04, 0x93b9: 0x0030f684, 0x93ba: 0xf0001f04, 0x93bb: 0xf0000404, + 0x93bc: 0x002e2284, 0x93bd: 0x002c3a84, 0x93be: 0x002c6284, 0x93bf: 0x002e8284, + // Block 0x24f, offset 0x93c0 + 0x93c0: 0xf0001f04, 0x93c1: 0xf0001f04, 0x93c2: 0xf0001f04, 0x93c3: 0xf0001f04, + 0x93c4: 0xf0001f04, 0x93c5: 0xf0001f04, 0x93c6: 0xf0001f04, 0x93c7: 0xf0001f04, + 0x93c8: 0xf0001f04, 0x93c9: 0xf0001f04, 0x93ca: 0xf0001f04, + 0x93d0: 0xf0000a04, 0x93d1: 0xf0000a04, 0x93d2: 0xf0000a04, 0x93d3: 0xf0000a04, + 0x93d4: 0xf0000a04, 0x93d5: 0xf0000a04, 0x93d6: 0xf0000a04, 0x93d7: 0xf0000a04, + 0x93d8: 0xe0002576, 0x93d9: 0xf0000a04, 0x93da: 0xf0000a04, 0x93db: 0xf0000a04, + 0x93dc: 0xf0000a04, 0x93dd: 0xf0000a04, 0x93de: 0xf0000a04, 0x93df: 0xf0000a04, + 0x93e0: 0xf0000a04, 0x93e1: 0xf0000a04, 0x93e2: 0xf0000a04, 0x93e3: 0xf0000a04, + 0x93e4: 0xf0000a04, 0x93e5: 0xf0000a04, 0x93e6: 0xf0000a04, 0x93e7: 0xf0000a04, + 0x93e8: 0xf0000a04, 0x93e9: 0xf0000a04, 0x93ea: 0xf0000a04, 0x93eb: 0x002c3a8c, + 0x93ec: 0x002f7a8c, 0x93ed: 0xf0000c0c, 0x93ee: 0xf0000c0c, + 0x93f0: 0x002bde9d, 0x93f1: 0x002c0a9d, 0x93f2: 0x002c3a9d, 0x93f3: 0x002c629d, + 0x93f4: 0x002c989d, 0x93f5: 0x002d089d, 0x93f6: 0x002d229d, 0x93f7: 0x002d689d, + 0x93f8: 0x002d9a9d, 0x93f9: 0x002dcc9d, 0x93fa: 0x002dfe9d, 0x93fb: 0x002e229d, + 0x93fc: 0x002e829d, 0x93fd: 0x002e9e9d, 0x93fe: 0x002ee29d, 0x93ff: 0x002f2c9d, +} + +// mainLookup: 4864 entries, 9728 bytes +// Block 0 is the null block. +var mainLookup = [4864]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26, + 0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e, + 0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36, + 0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e, + // Block 0x4, offset 0x100 + 0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46, + 0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e, + 0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56, + 0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e, + 0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66, + 0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d, + 0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74, + 0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c, + // Block 0x5, offset 0x140 + 0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84, + 0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c, + 0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94, + 0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c, + 0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4, + 0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa, + 0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2, + 0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9, + // Block 0x6, offset 0x180 + 0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1, + 0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9, + // Block 0x7, offset 0x1c0 + 0x1f7: 0xca, + // Block 0x8, offset 0x200 + 0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2, + 0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda, + 0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2, + 0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea, + 0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2, + 0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8, + // Block 0x9, offset 0x240 + 0x25e: 0xf9, 0x25f: 0xfa, + // Block 0xa, offset 0x280 + 0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe, + 0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106, + 0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e, + 0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e, + 0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124, + 0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127, + 0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b, + 0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f, + 0x2f0: 0x130, 0x2f1: 0x131, + 0x2f9: 0x132, + // Block 0xc, offset 0x300 + 0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a, + 0x31a: 0x13b, 0x31b: 0x13c, + // Block 0xd, offset 0x340 + 0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144, + 0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a, + 0x350: 0x14b, 0x351: 0x14c, + // Block 0xe, offset 0x380 + 0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154, + 0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c, + 0x390: 0x15d, + // Block 0xf, offset 0x3c0 + 0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165, + 0x3e8: 0x166, + 0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169, + // Block 0x10, offset 0x400 + 0x400: 0x16a, + // Block 0x11, offset 0x440 + 0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172, + 0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176, + 0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e, + 0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186, + // Block 0x12, offset 0x480 + 0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192, + 0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198, + 0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f, + 0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5, + // Block 0x14, offset 0x500 + 0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad, + 0x528: 0x1ae, + // Block 0x15, offset 0x540 + 0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, + // Block 0x16, offset 0x580 + 0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1, + // Block 0x17, offset 0x5c0 + 0x5e0: 0x14, + // Block 0x18, offset 0x600 + 0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06, + 0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e, + 0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16, + 0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e, + 0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05, + 0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08, + 0x630: 0x13, 0x633: 0x15, + // Block 0x19, offset 0x640 + 0x660: 0x1f, 0x661: 0x20, 0x662: 0x21, 0x663: 0x22, 0x664: 0x23, 0x665: 0x24, 0x666: 0x25, 0x667: 0x26, + 0x668: 0x27, 0x669: 0x28, 0x66a: 0x29, 0x66b: 0x2a, 0x66c: 0x2b, 0x66d: 0x2c, 0x66e: 0x2d, 0x66f: 0x2e, + 0x670: 0x2f, 0x671: 0x30, 0x672: 0x31, 0x673: 0x32, 0x674: 0x33, 0x675: 0x34, 0x676: 0x35, 0x677: 0x36, + 0x678: 0x1b8, 0x679: 0x38, 0x67a: 0x39, 0x67b: 0x3a, 0x67c: 0x3b, 0x67d: 0x3c, 0x67e: 0x3d, 0x67f: 0x3e, + // Block 0x1a, offset 0x680 + 0x680: 0x3f, 0x681: 0x40, 0x682: 0x41, 0x683: 0x42, 0x684: 0x1b9, 0x685: 0x1ba, 0x686: 0x1bb, 0x687: 0x1bc, + 0x688: 0x47, 0x689: 0x48, 0x68a: 0x49, 0x68b: 0x4a, 0x68c: 0x4b, 0x68d: 0x4c, 0x68e: 0x4d, 0x68f: 0x4e, + 0x690: 0x4f, 0x691: 0x50, 0x692: 0x51, 0x693: 0x52, 0x694: 0x53, 0x695: 0x54, 0x696: 0x55, 0x697: 0x56, + 0x698: 0x57, 0x699: 0x58, 0x69a: 0x59, 0x69b: 0x5a, 0x69c: 0x5b, 0x69d: 0x5c, 0x69e: 0x5d, 0x69f: 0x5e, + 0x6a0: 0x5f, 0x6a1: 0x60, 0x6a2: 0x61, 0x6a3: 0x62, 0x6a4: 0x63, 0x6a5: 0x64, 0x6a6: 0x65, 0x6a7: 0x66, + 0x6a8: 0x67, 0x6a9: 0x68, 0x6aa: 0x69, 0x6ac: 0x6a, 0x6ad: 0x6b, 0x6ae: 0x6c, 0x6af: 0x6d, + 0x6b0: 0x6e, 0x6b1: 0x6f, 0x6b3: 0x70, 0x6b4: 0x71, 0x6b5: 0x72, 0x6b6: 0x73, 0x6b7: 0x74, + 0x6b8: 0x75, 0x6b9: 0x76, 0x6ba: 0x77, 0x6bb: 0x78, 0x6bc: 0x79, 0x6bd: 0x7a, 0x6be: 0x7b, 0x6bf: 0x7c, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x7d, 0x6c1: 0x7e, 0x6c2: 0x7f, 0x6c3: 0x80, 0x6c4: 0x81, 0x6c5: 0x82, 0x6c6: 0x83, 0x6c7: 0x84, + 0x6c8: 0x85, 0x6c9: 0x1bd, 0x6ca: 0x87, 0x6cb: 0x88, 0x6cc: 0x89, 0x6cd: 0x8a, 0x6ce: 0x8b, 0x6cf: 0x8c, + 0x6d0: 0x8d, 0x6d1: 0x8e, 0x6d2: 0x8f, 0x6d3: 0x90, 0x6d4: 0x91, 0x6d5: 0x92, 0x6d6: 0x93, 0x6d7: 0x94, + 0x6d8: 0x95, 0x6d9: 0x96, 0x6da: 0x97, 0x6db: 0x98, 0x6dc: 0x99, 0x6dd: 0x9a, 0x6de: 0x9b, 0x6df: 0x9c, + 0x6e0: 0x9d, 0x6e1: 0x9e, 0x6e2: 0x9f, 0x6e3: 0xa0, 0x6e4: 0xa1, 0x6e5: 0xa2, 0x6e6: 0xa3, 0x6e7: 0xa4, + 0x6e8: 0xa5, 0x6e9: 0xa6, 0x6ea: 0xa7, 0x6eb: 0xa8, 0x6ec: 0xa9, 0x6ed: 0xaa, + 0x6f0: 0xab, 0x6f1: 0xac, 0x6f2: 0xad, 0x6f3: 0xae, 0x6f4: 0xaf, 0x6f5: 0xb0, 0x6f6: 0xb1, 0x6f7: 0xb2, + 0x6f8: 0xb3, 0x6fa: 0xb4, 0x6fb: 0xb5, 0x6fc: 0xb6, 0x6fd: 0xb7, 0x6fe: 0xb8, 0x6ff: 0xb9, + // Block 0x1c, offset 0x700 + 0x724: 0xfb, 0x725: 0xfc, 0x726: 0xfd, 0x727: 0xfe, + 0x728: 0xff, 0x729: 0x100, 0x72a: 0x101, 0x72b: 0x102, 0x72c: 0x103, 0x72d: 0x104, 0x72e: 0x105, 0x72f: 0x1be, + 0x730: 0x1bf, 0x731: 0x1c0, 0x732: 0x1c1, 0x733: 0x1c2, 0x734: 0x1c3, 0x735: 0x10c, 0x736: 0x10d, 0x737: 0x10e, + 0x738: 0x10f, 0x739: 0x110, 0x73a: 0x1c4, 0x73b: 0x1c5, 0x73c: 0x113, 0x73d: 0x114, 0x73e: 0x115, 0x73f: 0x116, + // Block 0x1d, offset 0x740 + 0x742: 0x01, 0x743: 0x02, 0x744: 0x03, 0x745: 0x04, 0x746: 0x05, 0x747: 0x06, + 0x748: 0x07, 0x749: 0x08, 0x74a: 0x09, 0x74b: 0x0a, 0x74c: 0x0b, 0x74d: 0x0c, 0x74e: 0x0d, 0x74f: 0x0e, + 0x750: 0x0f, 0x751: 0x10, 0x752: 0x11, 0x753: 0x12, 0x754: 0x13, 0x755: 0x14, 0x756: 0x15, 0x757: 0x1b4, + 0x758: 0x1b5, 0x759: 0x1b6, 0x75a: 0x19, 0x75b: 0x1b7, 0x75c: 0x1b, 0x75d: 0x1c, 0x75e: 0x1d, 0x75f: 0x1e, + 0x760: 0x17, 0x761: 0x18, 0x762: 0x19, 0x763: 0x04, 0x764: 0x05, + 0x76a: 0x06, 0x76d: 0x07, 0x76f: 0x1a, + 0x770: 0x13, 0x773: 0x15, + // Block 0x1e, offset 0x780 + 0x780: 0x3f, 0x781: 0x40, 0x782: 0x41, 0x783: 0x42, 0x784: 0x1b9, 0x785: 0x1ba, 0x786: 0x1bb, 0x787: 0x1bc, + 0x788: 0x47, 0x789: 0x48, 0x78a: 0x49, 0x78b: 0x4a, 0x78c: 0x4b, 0x78d: 0x4c, 0x78e: 0x4d, 0x78f: 0x4e, + 0x790: 0x4f, 0x791: 0x50, 0x792: 0x51, 0x793: 0x52, 0x794: 0x53, 0x795: 0x54, 0x796: 0x55, 0x797: 0x56, + 0x798: 0x57, 0x799: 0x58, 0x79a: 0x59, 0x79b: 0x5a, 0x79c: 0x5b, 0x79d: 0x5c, 0x79e: 0x5d, 0x79f: 0x5e, + 0x7a0: 0x5f, 0x7a1: 0x60, 0x7a2: 0x61, 0x7a3: 0x62, 0x7a4: 0x63, 0x7a5: 0x64, 0x7a6: 0x65, 0x7a7: 0x66, + 0x7a8: 0x67, 0x7a9: 0x68, 0x7aa: 0x69, 0x7ac: 0x6a, 0x7ad: 0x6b, 0x7ae: 0x6c, 0x7af: 0x6d, + 0x7b0: 0x6e, 0x7b1: 0x6f, 0x7b3: 0x70, 0x7b4: 0x71, 0x7b5: 0x72, 0x7b6: 0x73, 0x7b7: 0x74, + 0x7b8: 0x1cf, 0x7b9: 0x1d0, 0x7ba: 0x1d1, 0x7bb: 0x1d2, 0x7bc: 0x79, 0x7bd: 0x7a, 0x7be: 0x7b, 0x7bf: 0x7c, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x7d, 0x7c1: 0x7e, 0x7c2: 0x7f, 0x7c3: 0x80, 0x7c4: 0x81, 0x7c5: 0x1d3, 0x7c6: 0x83, 0x7c7: 0x84, + 0x7c8: 0x85, 0x7c9: 0x1bd, 0x7ca: 0x87, 0x7cb: 0x88, 0x7cc: 0x89, 0x7cd: 0x8a, 0x7ce: 0x8b, 0x7cf: 0x8c, + 0x7d0: 0x8d, 0x7d1: 0x8e, 0x7d2: 0x1d4, 0x7d3: 0x90, 0x7d4: 0x91, 0x7d5: 0x92, 0x7d6: 0x93, 0x7d7: 0x94, + 0x7d8: 0x95, 0x7d9: 0x96, 0x7da: 0x97, 0x7db: 0x98, 0x7dc: 0x99, 0x7dd: 0x9a, 0x7de: 0x9b, 0x7df: 0x9c, + 0x7e0: 0x9d, 0x7e1: 0x9e, 0x7e2: 0x9f, 0x7e3: 0xa0, 0x7e4: 0xa1, 0x7e5: 0xa2, 0x7e6: 0xa3, 0x7e7: 0xa4, + 0x7e8: 0xa5, 0x7e9: 0xa6, 0x7ea: 0xa7, 0x7eb: 0xa8, 0x7ec: 0xa9, 0x7ed: 0xaa, + 0x7f0: 0xab, 0x7f1: 0xac, 0x7f2: 0xad, 0x7f3: 0xae, 0x7f4: 0xaf, 0x7f5: 0xb0, 0x7f6: 0xb1, 0x7f7: 0xb2, + 0x7f8: 0xb3, 0x7fa: 0xb4, 0x7fb: 0xb5, 0x7fc: 0xb6, 0x7fd: 0xb7, 0x7fe: 0xb8, 0x7ff: 0xb9, + // Block 0x20, offset 0x800 + 0x800: 0xba, 0x801: 0xbb, 0x802: 0xbc, 0x803: 0xbd, 0x804: 0xbe, 0x805: 0xbf, 0x806: 0xc0, 0x807: 0xc1, + 0x808: 0xc2, 0x809: 0xc3, 0x80a: 0xc4, 0x80b: 0xc5, 0x80c: 0xc6, 0x80d: 0x1d5, 0x80e: 0xc8, 0x80f: 0x1d6, + // Block 0x21, offset 0x840 + 0x840: 0x18b, 0x841: 0x18c, 0x842: 0x18d, 0x843: 0x18e, 0x844: 0x1d7, 0x845: 0x190, 0x846: 0x191, 0x847: 0x192, + 0x848: 0x193, 0x849: 0x194, 0x84c: 0x195, 0x84d: 0x196, 0x84e: 0x197, 0x84f: 0x198, + 0x850: 0x199, 0x851: 0x19a, 0x852: 0x19b, 0x853: 0x19c, 0x854: 0x19d, 0x855: 0x19e, 0x857: 0x19f, + 0x858: 0x1a0, 0x859: 0x1a1, 0x85a: 0x1a2, 0x85b: 0x1a3, 0x85c: 0x1a4, 0x85d: 0x1a5, + // Block 0x22, offset 0x880 + 0x890: 0x09, 0x891: 0x0a, 0x892: 0x0b, 0x893: 0x0c, 0x896: 0x0d, + 0x89b: 0x0e, 0x89d: 0x0f, 0x89e: 0x10, 0x89f: 0x1f, + 0x8af: 0x12, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x01, 0x8c3: 0x1c8, 0x8c4: 0x1c9, 0x8c5: 0x1ca, 0x8c6: 0x1cb, 0x8c7: 0x1cc, + 0x8c8: 0x1cd, 0x8c9: 0x1ce, 0x8ca: 0x09, 0x8cb: 0x0a, 0x8cc: 0x0b, 0x8cd: 0x0c, 0x8ce: 0x0d, 0x8cf: 0x0e, + 0x8d0: 0x0f, 0x8d1: 0x10, 0x8d2: 0x11, 0x8d3: 0x12, 0x8d4: 0x13, 0x8d5: 0x14, 0x8d6: 0x15, 0x8d7: 0x1b4, + 0x8d8: 0x1b5, 0x8d9: 0x1b6, 0x8da: 0x19, 0x8db: 0x1b7, 0x8dc: 0x1b, 0x8dd: 0x1c, 0x8de: 0x1d, 0x8df: 0x1e, + 0x8e0: 0x17, 0x8e1: 0x1c, 0x8e2: 0x1d, 0x8e3: 0x1e, 0x8e4: 0x05, + 0x8ea: 0x06, 0x8ed: 0x07, 0x8ef: 0x1a, + 0x8f0: 0x20, 0x8f3: 0x15, + // Block 0x24, offset 0x900 + 0x902: 0x01, 0x903: 0x02, 0x904: 0x1da, 0x905: 0x1db, 0x906: 0x05, 0x907: 0x06, + 0x908: 0x07, 0x909: 0x08, 0x90a: 0x09, 0x90b: 0x0a, 0x90c: 0x0b, 0x90d: 0x0c, 0x90e: 0x0d, 0x90f: 0x0e, + 0x910: 0x0f, 0x911: 0x10, 0x912: 0x11, 0x913: 0x12, 0x914: 0x13, 0x915: 0x14, 0x916: 0x15, 0x917: 0x1b4, + 0x918: 0x1b5, 0x919: 0x1b6, 0x91a: 0x19, 0x91b: 0x1b7, 0x91c: 0x1b, 0x91d: 0x1c, 0x91e: 0x1d, 0x91f: 0x1e, + 0x920: 0x17, 0x921: 0x18, 0x922: 0x19, 0x923: 0x04, 0x924: 0x05, + 0x92a: 0x06, 0x92d: 0x07, 0x92f: 0x1a, + 0x930: 0x13, 0x933: 0x15, + // Block 0x25, offset 0x940 + 0x940: 0x3f, 0x941: 0x40, 0x942: 0x41, 0x943: 0x42, 0x944: 0x1b9, 0x945: 0x1ba, 0x946: 0x1bb, 0x947: 0x1bc, + 0x948: 0x47, 0x949: 0x48, 0x94a: 0x49, 0x94b: 0x4a, 0x94c: 0x4b, 0x94d: 0x4c, 0x94e: 0x4d, 0x94f: 0x4e, + 0x950: 0x4f, 0x951: 0x50, 0x952: 0x51, 0x953: 0x52, 0x954: 0x53, 0x955: 0x54, 0x956: 0x55, 0x957: 0x56, + 0x958: 0x57, 0x959: 0x58, 0x95a: 0x59, 0x95b: 0x5a, 0x95c: 0x5b, 0x95d: 0x5c, 0x95e: 0x5d, 0x95f: 0x5e, + 0x960: 0x5f, 0x961: 0x60, 0x962: 0x61, 0x963: 0x62, 0x964: 0x63, 0x965: 0x64, 0x966: 0x65, 0x967: 0x66, + 0x968: 0x67, 0x969: 0x68, 0x96a: 0x69, 0x96c: 0x6a, 0x96d: 0x6b, 0x96e: 0x6c, 0x96f: 0x6d, + 0x970: 0x6e, 0x971: 0x6f, 0x973: 0x70, 0x974: 0x71, 0x975: 0x72, 0x976: 0x73, 0x977: 0x74, + 0x978: 0x1e2, 0x979: 0x1e3, 0x97a: 0x1e4, 0x97b: 0x1e5, 0x97c: 0x79, 0x97d: 0x7a, 0x97e: 0x7b, 0x97f: 0x7c, + // Block 0x26, offset 0x980 + 0x982: 0x01, 0x983: 0x1de, 0x984: 0x1df, 0x985: 0x1e0, 0x986: 0x05, 0x987: 0x1e1, + 0x988: 0x07, 0x989: 0x08, 0x98a: 0x09, 0x98b: 0x0a, 0x98c: 0x0b, 0x98d: 0x0c, 0x98e: 0x0d, 0x98f: 0x0e, + 0x990: 0x0f, 0x991: 0x10, 0x992: 0x11, 0x993: 0x12, 0x994: 0x13, 0x995: 0x14, 0x996: 0x15, 0x997: 0x1b4, + 0x998: 0x1b5, 0x999: 0x1b6, 0x99a: 0x19, 0x99b: 0x1b7, 0x99c: 0x1b, 0x99d: 0x1c, 0x99e: 0x1d, 0x99f: 0x1e, + 0x9a0: 0x17, 0x9a1: 0x23, 0x9a2: 0x19, 0x9a3: 0x04, 0x9a4: 0x05, + 0x9aa: 0x06, 0x9ad: 0x07, 0x9af: 0x1a, + 0x9b0: 0x13, 0x9b3: 0x15, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x3f, 0x9c1: 0x40, 0x9c2: 0x41, 0x9c3: 0x42, 0x9c4: 0x1b9, 0x9c5: 0x1ba, 0x9c6: 0x1bb, 0x9c7: 0x1bc, + 0x9c8: 0x47, 0x9c9: 0x48, 0x9ca: 0x49, 0x9cb: 0x4a, 0x9cc: 0x4b, 0x9cd: 0x4c, 0x9ce: 0x4d, 0x9cf: 0x4e, + 0x9d0: 0x4f, 0x9d1: 0x50, 0x9d2: 0x51, 0x9d3: 0x52, 0x9d4: 0x53, 0x9d5: 0x54, 0x9d6: 0x55, 0x9d7: 0x56, + 0x9d8: 0x57, 0x9d9: 0x58, 0x9da: 0x59, 0x9db: 0x5a, 0x9dc: 0x5b, 0x9dd: 0x5c, 0x9de: 0x5d, 0x9df: 0x5e, + 0x9e0: 0x5f, 0x9e1: 0x60, 0x9e2: 0x61, 0x9e3: 0x62, 0x9e4: 0x63, 0x9e5: 0x64, 0x9e6: 0x65, 0x9e7: 0x66, + 0x9e8: 0x67, 0x9e9: 0x68, 0x9ea: 0x69, 0x9ec: 0x6a, 0x9ed: 0x6b, 0x9ee: 0x6c, 0x9ef: 0x6d, + 0x9f0: 0x6e, 0x9f1: 0x6f, 0x9f3: 0x70, 0x9f4: 0x71, 0x9f5: 0x72, 0x9f6: 0x1ed, 0x9f7: 0x74, + 0x9f8: 0x75, 0x9f9: 0x1ee, 0x9fa: 0x77, 0x9fb: 0x78, 0x9fc: 0x79, 0x9fd: 0x7a, 0x9fe: 0x7b, 0x9ff: 0x7c, + // Block 0x28, offset 0xa00 + 0xa00: 0x7d, 0xa01: 0x7e, 0xa02: 0x7f, 0xa03: 0x80, 0xa04: 0x1ef, 0xa05: 0x82, 0xa06: 0x83, 0xa07: 0x84, + 0xa08: 0x85, 0xa09: 0x1bd, 0xa0a: 0x87, 0xa0b: 0x88, 0xa0c: 0x89, 0xa0d: 0x8a, 0xa0e: 0x8b, 0xa0f: 0x8c, + 0xa10: 0x8d, 0xa11: 0x8e, 0xa12: 0x8f, 0xa13: 0x90, 0xa14: 0x91, 0xa15: 0x92, 0xa16: 0x93, 0xa17: 0x94, + 0xa18: 0x95, 0xa19: 0x96, 0xa1a: 0x97, 0xa1b: 0x98, 0xa1c: 0x99, 0xa1d: 0x9a, 0xa1e: 0x9b, 0xa1f: 0x9c, + 0xa20: 0x9d, 0xa21: 0x9e, 0xa22: 0x9f, 0xa23: 0xa0, 0xa24: 0xa1, 0xa25: 0xa2, 0xa26: 0xa3, 0xa27: 0xa4, + 0xa28: 0xa5, 0xa29: 0xa6, 0xa2a: 0xa7, 0xa2b: 0xa8, 0xa2c: 0xa9, 0xa2d: 0xaa, + 0xa30: 0xab, 0xa31: 0xac, 0xa32: 0xad, 0xa33: 0xae, 0xa34: 0xaf, 0xa35: 0xb0, 0xa36: 0xb1, 0xa37: 0xb2, + 0xa38: 0xb3, 0xa3a: 0xb4, 0xa3b: 0xb5, 0xa3c: 0xb6, 0xa3d: 0xb7, 0xa3e: 0xb8, 0xa3f: 0xb9, + // Block 0x29, offset 0xa40 + 0xa42: 0x01, 0xa43: 0x1e8, 0xa44: 0x1e9, 0xa45: 0x1ea, 0xa46: 0x05, 0xa47: 0x1eb, + 0xa48: 0x1ec, 0xa49: 0x08, 0xa4a: 0x09, 0xa4b: 0x0a, 0xa4c: 0x0b, 0xa4d: 0x0c, 0xa4e: 0x0d, 0xa4f: 0x0e, + 0xa50: 0x0f, 0xa51: 0x10, 0xa52: 0x11, 0xa53: 0x12, 0xa54: 0x13, 0xa55: 0x14, 0xa56: 0x15, 0xa57: 0x1b4, + 0xa58: 0x1b5, 0xa59: 0x1b6, 0xa5a: 0x19, 0xa5b: 0x1b7, 0xa5c: 0x1b, 0xa5d: 0x1c, 0xa5e: 0x1d, 0xa5f: 0x1e, + 0xa60: 0x17, 0xa61: 0x25, 0xa62: 0x26, 0xa63: 0x04, 0xa64: 0x05, + 0xa6a: 0x06, 0xa6d: 0x07, 0xa6f: 0x1a, + 0xa70: 0x13, 0xa73: 0x15, + // Block 0x2a, offset 0xa80 + 0xa80: 0x3f, 0xa81: 0x40, 0xa82: 0x41, 0xa83: 0x42, 0xa84: 0x1b9, 0xa85: 0x1ba, 0xa86: 0x1bb, 0xa87: 0x1bc, + 0xa88: 0x47, 0xa89: 0x48, 0xa8a: 0x49, 0xa8b: 0x4a, 0xa8c: 0x4b, 0xa8d: 0x4c, 0xa8e: 0x4d, 0xa8f: 0x4e, + 0xa90: 0x4f, 0xa91: 0x50, 0xa92: 0x51, 0xa93: 0x52, 0xa94: 0x53, 0xa95: 0x54, 0xa96: 0x55, 0xa97: 0x56, + 0xa98: 0x57, 0xa99: 0x58, 0xa9a: 0x59, 0xa9b: 0x5a, 0xa9c: 0x5b, 0xa9d: 0x5c, 0xa9e: 0x5d, 0xa9f: 0x5e, + 0xaa0: 0x5f, 0xaa1: 0x60, 0xaa2: 0x61, 0xaa3: 0x62, 0xaa4: 0x63, 0xaa5: 0x64, 0xaa6: 0x65, 0xaa7: 0x66, + 0xaa8: 0x67, 0xaa9: 0x68, 0xaaa: 0x69, 0xaac: 0x6a, 0xaad: 0x6b, 0xaae: 0x6c, 0xaaf: 0x6d, + 0xab0: 0x6e, 0xab1: 0x6f, 0xab3: 0x70, 0xab4: 0x71, 0xab5: 0x72, 0xab6: 0x73, 0xab7: 0x74, + 0xab8: 0x75, 0xab9: 0x1f5, 0xaba: 0x77, 0xabb: 0x78, 0xabc: 0x79, 0xabd: 0x7a, 0xabe: 0x7b, 0xabf: 0x7c, + // Block 0x2b, offset 0xac0 + 0xac2: 0x01, 0xac3: 0x1f2, 0xac4: 0x03, 0xac5: 0x04, 0xac6: 0x05, 0xac7: 0x1f3, + 0xac8: 0x1f4, 0xac9: 0x08, 0xaca: 0x09, 0xacb: 0x0a, 0xacc: 0x0b, 0xacd: 0x0c, 0xace: 0x0d, 0xacf: 0x0e, + 0xad0: 0x0f, 0xad1: 0x10, 0xad2: 0x11, 0xad3: 0x12, 0xad4: 0x13, 0xad5: 0x14, 0xad6: 0x15, 0xad7: 0x1b4, + 0xad8: 0x1b5, 0xad9: 0x1b6, 0xada: 0x19, 0xadb: 0x1b7, 0xadc: 0x1b, 0xadd: 0x1c, 0xade: 0x1d, 0xadf: 0x1e, + 0xae0: 0x17, 0xae1: 0x28, 0xae2: 0x19, 0xae3: 0x04, 0xae4: 0x05, + 0xaea: 0x06, 0xaed: 0x07, 0xaef: 0x1a, + 0xaf0: 0x13, 0xaf3: 0x15, + // Block 0x2c, offset 0xb00 + 0xb02: 0x01, 0xb03: 0x1f8, 0xb04: 0x03, 0xb05: 0x04, 0xb06: 0x05, 0xb07: 0x06, + 0xb08: 0x07, 0xb09: 0x08, 0xb0a: 0x09, 0xb0b: 0x0a, 0xb0c: 0x0b, 0xb0d: 0x0c, 0xb0e: 0x0d, 0xb0f: 0x0e, + 0xb10: 0x0f, 0xb11: 0x10, 0xb12: 0x11, 0xb13: 0x12, 0xb14: 0x13, 0xb15: 0x14, 0xb16: 0x15, 0xb17: 0x1b4, + 0xb18: 0x1b5, 0xb19: 0x1b6, 0xb1a: 0x19, 0xb1b: 0x1b7, 0xb1c: 0x1b, 0xb1d: 0x1c, 0xb1e: 0x1d, 0xb1f: 0x1e, + 0xb20: 0x17, 0xb21: 0x18, 0xb22: 0x19, 0xb23: 0x04, 0xb24: 0x05, + 0xb2a: 0x06, 0xb2d: 0x07, 0xb2f: 0x1a, + 0xb30: 0x13, 0xb33: 0x15, + // Block 0x2d, offset 0xb40 + 0xb40: 0x3f, 0xb41: 0x40, 0xb42: 0x41, 0xb43: 0x42, 0xb44: 0x1b9, 0xb45: 0x1ba, 0xb46: 0x1bb, 0xb47: 0x1bc, + 0xb48: 0x47, 0xb49: 0x48, 0xb4a: 0x49, 0xb4b: 0x4a, 0xb4c: 0x4b, 0xb4d: 0x4c, 0xb4e: 0x4d, 0xb4f: 0x4e, + 0xb50: 0x4f, 0xb51: 0x50, 0xb52: 0x51, 0xb53: 0x52, 0xb54: 0x53, 0xb55: 0x54, 0xb56: 0x55, 0xb57: 0x56, + 0xb58: 0x57, 0xb59: 0x58, 0xb5a: 0x59, 0xb5b: 0x5a, 0xb5c: 0x5b, 0xb5d: 0x5c, 0xb5e: 0x5d, 0xb5f: 0x5e, + 0xb60: 0x5f, 0xb61: 0x60, 0xb62: 0x61, 0xb63: 0x62, 0xb64: 0x63, 0xb65: 0x64, 0xb66: 0x65, 0xb67: 0x66, + 0xb68: 0x67, 0xb69: 0x68, 0xb6a: 0x69, 0xb6c: 0x6a, 0xb6d: 0x6b, 0xb6e: 0x6c, 0xb6f: 0x6d, + 0xb70: 0x6e, 0xb71: 0x6f, 0xb73: 0x70, 0xb74: 0x71, 0xb75: 0x72, 0xb76: 0x1ed, 0xb77: 0x74, + 0xb78: 0x75, 0xb79: 0x200, 0xb7a: 0x201, 0xb7b: 0x202, 0xb7c: 0x79, 0xb7d: 0x7a, 0xb7e: 0x7b, 0xb7f: 0x7c, + // Block 0x2e, offset 0xb80 + 0xb80: 0x7d, 0xb81: 0x7e, 0xb82: 0x7f, 0xb83: 0x80, 0xb84: 0x203, 0xb85: 0x82, 0xb86: 0x83, 0xb87: 0x84, + 0xb88: 0x85, 0xb89: 0x1bd, 0xb8a: 0x87, 0xb8b: 0x88, 0xb8c: 0x89, 0xb8d: 0x8a, 0xb8e: 0x8b, 0xb8f: 0x8c, + 0xb90: 0x8d, 0xb91: 0x8e, 0xb92: 0x204, 0xb93: 0x90, 0xb94: 0x91, 0xb95: 0x92, 0xb96: 0x93, 0xb97: 0x94, + 0xb98: 0x95, 0xb99: 0x96, 0xb9a: 0x97, 0xb9b: 0x98, 0xb9c: 0x99, 0xb9d: 0x9a, 0xb9e: 0x9b, 0xb9f: 0x9c, + 0xba0: 0x9d, 0xba1: 0x9e, 0xba2: 0x9f, 0xba3: 0xa0, 0xba4: 0xa1, 0xba5: 0xa2, 0xba6: 0xa3, 0xba7: 0xa4, + 0xba8: 0xa5, 0xba9: 0xa6, 0xbaa: 0xa7, 0xbab: 0xa8, 0xbac: 0xa9, 0xbad: 0xaa, + 0xbb0: 0xab, 0xbb1: 0xac, 0xbb2: 0xad, 0xbb3: 0xae, 0xbb4: 0xaf, 0xbb5: 0xb0, 0xbb6: 0xb1, 0xbb7: 0xb2, + 0xbb8: 0xb3, 0xbba: 0xb4, 0xbbb: 0xb5, 0xbbc: 0xb6, 0xbbd: 0xb7, 0xbbe: 0xb8, 0xbbf: 0xb9, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0xba, 0xbc1: 0xbb, 0xbc2: 0xbc, 0xbc3: 0xbd, 0xbc4: 0xbe, 0xbc5: 0xbf, 0xbc6: 0xc0, 0xbc7: 0xc1, + 0xbc8: 0xc2, 0xbc9: 0xc3, 0xbca: 0xc4, 0xbcb: 0xc5, 0xbcc: 0xc6, 0xbcd: 0xc7, 0xbce: 0x205, 0xbcf: 0x206, + // Block 0x30, offset 0xc00 + 0xc00: 0x18b, 0xc01: 0x18c, 0xc02: 0x18d, 0xc03: 0x18e, 0xc04: 0x207, 0xc05: 0x208, 0xc06: 0x191, 0xc07: 0x192, + 0xc08: 0x193, 0xc09: 0x194, 0xc0c: 0x195, 0xc0d: 0x196, 0xc0e: 0x197, 0xc0f: 0x198, + 0xc10: 0x199, 0xc11: 0x19a, 0xc12: 0x19b, 0xc13: 0x19c, 0xc14: 0x19d, 0xc15: 0x19e, 0xc17: 0x19f, + 0xc18: 0x1a0, 0xc19: 0x1a1, 0xc1a: 0x1a2, 0xc1b: 0x1a3, 0xc1c: 0x1a4, 0xc1d: 0x1a5, + // Block 0x31, offset 0xc40 + 0xc50: 0x09, 0xc51: 0x0a, 0xc52: 0x0b, 0xc53: 0x0c, 0xc56: 0x0d, + 0xc5b: 0x0e, 0xc5d: 0x0f, 0xc5e: 0x10, 0xc5f: 0x2e, + 0xc6f: 0x12, + // Block 0x32, offset 0xc80 + 0xc82: 0x01, 0xc83: 0x1fb, 0xc84: 0x1fc, 0xc85: 0x1fd, 0xc86: 0x05, 0xc87: 0x1fe, + 0xc88: 0x1ff, 0xc89: 0x08, 0xc8a: 0x09, 0xc8b: 0x0a, 0xc8c: 0x0b, 0xc8d: 0x0c, 0xc8e: 0x0d, 0xc8f: 0x0e, + 0xc90: 0x0f, 0xc91: 0x10, 0xc92: 0x11, 0xc93: 0x12, 0xc94: 0x13, 0xc95: 0x14, 0xc96: 0x15, 0xc97: 0x1b4, + 0xc98: 0x1b5, 0xc99: 0x1b6, 0xc9a: 0x19, 0xc9b: 0x1b7, 0xc9c: 0x1b, 0xc9d: 0x1c, 0xc9e: 0x1d, 0xc9f: 0x1e, + 0xca0: 0x17, 0xca1: 0x2b, 0xca2: 0x2c, 0xca3: 0x2d, 0xca4: 0x05, + 0xcaa: 0x06, 0xcad: 0x07, 0xcaf: 0x1a, + 0xcb0: 0x2f, 0xcb3: 0x15, + // Block 0x33, offset 0xcc0 + 0xce0: 0x1f, 0xce1: 0x20, 0xce2: 0x21, 0xce3: 0x22, 0xce4: 0x23, 0xce5: 0x24, 0xce6: 0x25, 0xce7: 0x26, + 0xce8: 0x27, 0xce9: 0x28, 0xcea: 0x29, 0xceb: 0x2a, 0xcec: 0x2b, 0xced: 0x2c, 0xcee: 0x2d, 0xcef: 0x2e, + 0xcf0: 0x2f, 0xcf1: 0x30, 0xcf2: 0x31, 0xcf3: 0x32, 0xcf4: 0x33, 0xcf5: 0x34, 0xcf6: 0x35, 0xcf7: 0x36, + 0xcf8: 0x20d, 0xcf9: 0x38, 0xcfa: 0x39, 0xcfb: 0x3a, 0xcfc: 0x3b, 0xcfd: 0x3c, 0xcfe: 0x3d, 0xcff: 0x3e, + // Block 0x34, offset 0xd00 + 0xd02: 0x01, 0xd03: 0x02, 0xd04: 0x03, 0xd05: 0x04, 0xd06: 0x05, 0xd07: 0x06, + 0xd08: 0x07, 0xd09: 0x08, 0xd0a: 0x09, 0xd0b: 0x0a, 0xd0c: 0x0b, 0xd0d: 0x0c, 0xd0e: 0x0d, 0xd0f: 0x0e, + 0xd10: 0x0f, 0xd11: 0x10, 0xd12: 0x11, 0xd13: 0x12, 0xd14: 0x13, 0xd15: 0x14, 0xd16: 0x15, 0xd17: 0x20b, + 0xd18: 0x1b5, 0xd19: 0x20c, 0xd1a: 0x19, 0xd1b: 0x1b7, 0xd1c: 0x1b, 0xd1d: 0x1c, 0xd1e: 0x1d, 0xd1f: 0x1e, + 0xd20: 0x31, 0xd21: 0x18, 0xd22: 0x19, 0xd23: 0x04, 0xd24: 0x05, + 0xd2a: 0x06, 0xd2d: 0x07, 0xd2f: 0x1a, + 0xd30: 0x13, 0xd33: 0x15, + // Block 0x35, offset 0xd40 + 0xd40: 0x3f, 0xd41: 0x40, 0xd42: 0x41, 0xd43: 0x42, 0xd44: 0x1b9, 0xd45: 0x1ba, 0xd46: 0x1bb, 0xd47: 0x1bc, + 0xd48: 0x47, 0xd49: 0x48, 0xd4a: 0x49, 0xd4b: 0x4a, 0xd4c: 0x4b, 0xd4d: 0x4c, 0xd4e: 0x4d, 0xd4f: 0x4e, + 0xd50: 0x4f, 0xd51: 0x50, 0xd52: 0x51, 0xd53: 0x52, 0xd54: 0x53, 0xd55: 0x54, 0xd56: 0x55, 0xd57: 0x56, + 0xd58: 0x57, 0xd59: 0x58, 0xd5a: 0x59, 0xd5b: 0x5a, 0xd5c: 0x5b, 0xd5d: 0x5c, 0xd5e: 0x5d, 0xd5f: 0x5e, + 0xd60: 0x5f, 0xd61: 0x60, 0xd62: 0x61, 0xd63: 0x62, 0xd64: 0x63, 0xd65: 0x64, 0xd66: 0x65, 0xd67: 0x66, + 0xd68: 0x67, 0xd69: 0x68, 0xd6a: 0x69, 0xd6c: 0x6a, 0xd6d: 0x6b, 0xd6e: 0x6c, 0xd6f: 0x6d, + 0xd70: 0x6e, 0xd71: 0x6f, 0xd73: 0x70, 0xd74: 0x71, 0xd75: 0x72, 0xd76: 0x73, 0xd77: 0x74, + 0xd78: 0x213, 0xd79: 0x214, 0xd7a: 0x77, 0xd7b: 0x78, 0xd7c: 0x79, 0xd7d: 0x7a, 0xd7e: 0x7b, 0xd7f: 0x7c, + // Block 0x36, offset 0xd80 + 0xd82: 0x01, 0xd83: 0x02, 0xd84: 0x210, 0xd85: 0x211, 0xd86: 0x05, 0xd87: 0x212, + 0xd88: 0x07, 0xd89: 0x08, 0xd8a: 0x09, 0xd8b: 0x0a, 0xd8c: 0x0b, 0xd8d: 0x0c, 0xd8e: 0x0d, 0xd8f: 0x0e, + 0xd90: 0x0f, 0xd91: 0x10, 0xd92: 0x11, 0xd93: 0x12, 0xd94: 0x13, 0xd95: 0x14, 0xd96: 0x15, 0xd97: 0x1b4, + 0xd98: 0x1b5, 0xd99: 0x1b6, 0xd9a: 0x19, 0xd9b: 0x1b7, 0xd9c: 0x1b, 0xd9d: 0x1c, 0xd9e: 0x1d, 0xd9f: 0x1e, + 0xda0: 0x17, 0xda1: 0x33, 0xda2: 0x19, 0xda3: 0x04, 0xda4: 0x05, + 0xdaa: 0x06, 0xdad: 0x07, 0xdaf: 0x1a, + 0xdb0: 0x13, 0xdb3: 0x15, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x3f, 0xdc1: 0x40, 0xdc2: 0x41, 0xdc3: 0x42, 0xdc4: 0x1b9, 0xdc5: 0x1ba, 0xdc6: 0x1bb, 0xdc7: 0x1bc, + 0xdc8: 0x47, 0xdc9: 0x48, 0xdca: 0x49, 0xdcb: 0x4a, 0xdcc: 0x4b, 0xdcd: 0x4c, 0xdce: 0x4d, 0xdcf: 0x4e, + 0xdd0: 0x4f, 0xdd1: 0x50, 0xdd2: 0x51, 0xdd3: 0x52, 0xdd4: 0x53, 0xdd5: 0x54, 0xdd6: 0x55, 0xdd7: 0x56, + 0xdd8: 0x57, 0xdd9: 0x58, 0xdda: 0x59, 0xddb: 0x5a, 0xddc: 0x5b, 0xddd: 0x5c, 0xdde: 0x5d, 0xddf: 0x5e, + 0xde0: 0x5f, 0xde1: 0x60, 0xde2: 0x61, 0xde3: 0x62, 0xde4: 0x63, 0xde5: 0x64, 0xde6: 0x65, 0xde7: 0x66, + 0xde8: 0x67, 0xde9: 0x68, 0xdea: 0x69, 0xdec: 0x6a, 0xded: 0x6b, 0xdee: 0x6c, 0xdef: 0x6d, + 0xdf0: 0x6e, 0xdf1: 0x6f, 0xdf3: 0x70, 0xdf4: 0x71, 0xdf5: 0x72, 0xdf6: 0x1ed, 0xdf7: 0x74, + 0xdf8: 0x21b, 0xdf9: 0x21c, 0xdfa: 0x21d, 0xdfb: 0x21e, 0xdfc: 0x79, 0xdfd: 0x7a, 0xdfe: 0x7b, 0xdff: 0x7c, + // Block 0x38, offset 0xe00 + 0xe02: 0x01, 0xe03: 0x217, 0xe04: 0x218, 0xe05: 0x04, 0xe06: 0x05, 0xe07: 0x219, + 0xe08: 0x21a, 0xe09: 0x08, 0xe0a: 0x09, 0xe0b: 0x0a, 0xe0c: 0x0b, 0xe0d: 0x0c, 0xe0e: 0x0d, 0xe0f: 0x0e, + 0xe10: 0x0f, 0xe11: 0x10, 0xe12: 0x11, 0xe13: 0x12, 0xe14: 0x13, 0xe15: 0x14, 0xe16: 0x15, 0xe17: 0x1b4, + 0xe18: 0x1b5, 0xe19: 0x1b6, 0xe1a: 0x19, 0xe1b: 0x1b7, 0xe1c: 0x1b, 0xe1d: 0x1c, 0xe1e: 0x1d, 0xe1f: 0x1e, + 0xe20: 0x17, 0xe21: 0x35, 0xe22: 0x26, 0xe23: 0x04, 0xe24: 0x05, + 0xe2a: 0x06, 0xe2d: 0x07, 0xe2f: 0x1a, + 0xe30: 0x13, 0xe33: 0x15, + // Block 0x39, offset 0xe40 + 0xe42: 0x01, 0xe43: 0x1e8, 0xe44: 0x221, 0xe45: 0x1ea, 0xe46: 0x05, 0xe47: 0x1eb, + 0xe48: 0x1ec, 0xe49: 0x08, 0xe4a: 0x09, 0xe4b: 0x0a, 0xe4c: 0x0b, 0xe4d: 0x0c, 0xe4e: 0x0d, 0xe4f: 0x0e, + 0xe50: 0x0f, 0xe51: 0x10, 0xe52: 0x11, 0xe53: 0x12, 0xe54: 0x13, 0xe55: 0x14, 0xe56: 0x15, 0xe57: 0x1b4, + 0xe58: 0x1b5, 0xe59: 0x1b6, 0xe5a: 0x19, 0xe5b: 0x1b7, 0xe5c: 0x1b, 0xe5d: 0x1c, 0xe5e: 0x1d, 0xe5f: 0x1e, + 0xe60: 0x17, 0xe61: 0x25, 0xe62: 0x26, 0xe63: 0x04, 0xe64: 0x05, + 0xe6a: 0x06, 0xe6d: 0x07, 0xe6f: 0x1a, + 0xe70: 0x13, 0xe73: 0x15, + // Block 0x3a, offset 0xe80 + 0xe80: 0x3f, 0xe81: 0x40, 0xe82: 0x41, 0xe83: 0x42, 0xe84: 0x222, 0xe85: 0x223, 0xe86: 0x224, 0xe87: 0x225, + 0xe88: 0x47, 0xe89: 0x48, 0xe8a: 0x49, 0xe8b: 0x4a, 0xe8c: 0x4b, 0xe8d: 0x4c, 0xe8e: 0x4d, 0xe8f: 0x4e, + 0xe90: 0x4f, 0xe91: 0x50, 0xe92: 0x51, 0xe93: 0x52, 0xe94: 0x53, 0xe95: 0x54, 0xe96: 0x55, 0xe97: 0x56, + 0xe98: 0x57, 0xe99: 0x58, 0xe9a: 0x59, 0xe9b: 0x5a, 0xe9c: 0x5b, 0xe9d: 0x5c, 0xe9e: 0x5d, 0xe9f: 0x5e, + 0xea0: 0x5f, 0xea1: 0x60, 0xea2: 0x61, 0xea3: 0x62, 0xea4: 0x63, 0xea5: 0x64, 0xea6: 0x65, 0xea7: 0x66, + 0xea8: 0x67, 0xea9: 0x68, 0xeaa: 0x69, 0xeac: 0x6a, 0xead: 0x6b, 0xeae: 0x6c, 0xeaf: 0x6d, + 0xeb0: 0x6e, 0xeb1: 0x6f, 0xeb3: 0x70, 0xeb4: 0x71, 0xeb5: 0x72, 0xeb6: 0x73, 0xeb7: 0x74, + 0xeb8: 0x75, 0xeb9: 0x76, 0xeba: 0x77, 0xebb: 0x78, 0xebc: 0x79, 0xebd: 0x7a, 0xebe: 0x7b, 0xebf: 0x7c, + // Block 0x3b, offset 0xec0 + 0xec2: 0x01, 0xec3: 0x02, 0xec4: 0x03, 0xec5: 0x04, 0xec6: 0x05, 0xec7: 0x06, + 0xec8: 0x07, 0xec9: 0x08, 0xeca: 0x09, 0xecb: 0x0a, 0xecc: 0x0b, 0xecd: 0x0c, 0xece: 0x0d, 0xecf: 0x0e, + 0xed0: 0x0f, 0xed1: 0x10, 0xed2: 0x11, 0xed3: 0x12, 0xed4: 0x13, 0xed5: 0x14, 0xed6: 0x15, 0xed7: 0x1b4, + 0xed8: 0x1b5, 0xed9: 0x1b6, 0xeda: 0x19, 0xedb: 0x1b7, 0xedc: 0x1b, 0xedd: 0x1c, 0xede: 0x1d, 0xedf: 0x1e, + 0xee0: 0x17, 0xee1: 0x38, 0xee2: 0x19, 0xee3: 0x04, 0xee4: 0x05, + 0xeea: 0x06, 0xeed: 0x07, 0xeef: 0x1a, + 0xef0: 0x13, 0xef3: 0x15, + // Block 0x3c, offset 0xf00 + 0xf00: 0x3f, 0xf01: 0x40, 0xf02: 0x41, 0xf03: 0x42, 0xf04: 0x226, 0xf05: 0x227, 0xf06: 0x228, 0xf07: 0x229, + 0xf08: 0x47, 0xf09: 0x48, 0xf0a: 0x49, 0xf0b: 0x4a, 0xf0c: 0x4b, 0xf0d: 0x4c, 0xf0e: 0x4d, 0xf0f: 0x4e, + 0xf10: 0x4f, 0xf11: 0x50, 0xf12: 0x51, 0xf13: 0x52, 0xf14: 0x53, 0xf15: 0x54, 0xf16: 0x55, 0xf17: 0x56, + 0xf18: 0x57, 0xf19: 0x58, 0xf1a: 0x59, 0xf1b: 0x5a, 0xf1c: 0x5b, 0xf1d: 0x5c, 0xf1e: 0x5d, 0xf1f: 0x5e, + 0xf20: 0x5f, 0xf21: 0x60, 0xf22: 0x61, 0xf23: 0x62, 0xf24: 0x63, 0xf25: 0x64, 0xf26: 0x65, 0xf27: 0x66, + 0xf28: 0x67, 0xf29: 0x68, 0xf2a: 0x69, 0xf2c: 0x6a, 0xf2d: 0x6b, 0xf2e: 0x6c, 0xf2f: 0x6d, + 0xf30: 0x6e, 0xf31: 0x6f, 0xf33: 0x70, 0xf34: 0x71, 0xf35: 0x72, 0xf36: 0x73, 0xf37: 0x74, + 0xf38: 0x75, 0xf39: 0x76, 0xf3a: 0x77, 0xf3b: 0x78, 0xf3c: 0x79, 0xf3d: 0x7a, 0xf3e: 0x7b, 0xf3f: 0x7c, + // Block 0x3d, offset 0xf40 + 0xf40: 0xba, 0xf41: 0xbb, 0xf42: 0xbc, 0xf43: 0xbd, 0xf44: 0x22a, 0xf45: 0x22b, 0xf46: 0xc0, 0xf47: 0xc1, + 0xf48: 0xc2, 0xf49: 0x22c, 0xf4a: 0xc4, 0xf4b: 0xc5, 0xf4c: 0xc6, 0xf4d: 0xc7, 0xf4e: 0xc8, 0xf4f: 0xc9, + // Block 0x3e, offset 0xf80 + 0xf82: 0x01, 0xf83: 0x02, 0xf84: 0x03, 0xf85: 0x04, 0xf86: 0x05, 0xf87: 0x06, + 0xf88: 0x07, 0xf89: 0x08, 0xf8a: 0x09, 0xf8b: 0x0a, 0xf8c: 0x0b, 0xf8d: 0x0c, 0xf8e: 0x0d, 0xf8f: 0x0e, + 0xf90: 0x0f, 0xf91: 0x10, 0xf92: 0x11, 0xf93: 0x12, 0xf94: 0x13, 0xf95: 0x14, 0xf96: 0x15, 0xf97: 0x1b4, + 0xf98: 0x1b5, 0xf99: 0x1b6, 0xf9a: 0x19, 0xf9b: 0x1b7, 0xf9c: 0x1b, 0xf9d: 0x1c, 0xf9e: 0x1d, 0xf9f: 0x1e, + 0xfa0: 0x17, 0xfa1: 0x3a, 0xfa2: 0x03, 0xfa3: 0x3b, 0xfa4: 0x05, + 0xfaa: 0x06, 0xfad: 0x07, 0xfaf: 0x1a, + 0xfb0: 0x13, 0xfb3: 0x15, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x3f, 0xfc1: 0x40, 0xfc2: 0x41, 0xfc3: 0x42, 0xfc4: 0x1b9, 0xfc5: 0x1ba, 0xfc6: 0x1bb, 0xfc7: 0x1bc, + 0xfc8: 0x47, 0xfc9: 0x48, 0xfca: 0x49, 0xfcb: 0x4a, 0xfcc: 0x4b, 0xfcd: 0x4c, 0xfce: 0x4d, 0xfcf: 0x4e, + 0xfd0: 0x4f, 0xfd1: 0x50, 0xfd2: 0x51, 0xfd3: 0x52, 0xfd4: 0x53, 0xfd5: 0x54, 0xfd6: 0x55, 0xfd7: 0x56, + 0xfd8: 0x57, 0xfd9: 0x58, 0xfda: 0x59, 0xfdb: 0x5a, 0xfdc: 0x5b, 0xfdd: 0x5c, 0xfde: 0x5d, 0xfdf: 0x5e, + 0xfe0: 0x5f, 0xfe1: 0x60, 0xfe2: 0x61, 0xfe3: 0x62, 0xfe4: 0x63, 0xfe5: 0x64, 0xfe6: 0x65, 0xfe7: 0x66, + 0xfe8: 0x67, 0xfe9: 0x68, 0xfea: 0x69, 0xfec: 0x6a, 0xfed: 0x6b, 0xfee: 0x6c, 0xfef: 0x6d, + 0xff0: 0x6e, 0xff1: 0x6f, 0xff3: 0x70, 0xff4: 0x71, 0xff5: 0x72, 0xff6: 0x1ed, 0xff7: 0x74, + 0xff8: 0x75, 0xff9: 0x238, 0xffa: 0x239, 0xffb: 0x23a, 0xffc: 0x79, 0xffd: 0x7a, 0xffe: 0x7b, 0xfff: 0x7c, + // Block 0x40, offset 0x1000 + 0x1000: 0x7d, 0x1001: 0x7e, 0x1002: 0x7f, 0x1003: 0x80, 0x1004: 0x203, 0x1005: 0x82, 0x1006: 0x83, 0x1007: 0x84, + 0x1008: 0x85, 0x1009: 0x1bd, 0x100a: 0x87, 0x100b: 0x88, 0x100c: 0x89, 0x100d: 0x8a, 0x100e: 0x8b, 0x100f: 0x8c, + 0x1010: 0x8d, 0x1011: 0x8e, 0x1012: 0x8f, 0x1013: 0x90, 0x1014: 0x91, 0x1015: 0x92, 0x1016: 0x93, 0x1017: 0x94, + 0x1018: 0x95, 0x1019: 0x96, 0x101a: 0x97, 0x101b: 0x98, 0x101c: 0x99, 0x101d: 0x9a, 0x101e: 0x9b, 0x101f: 0x9c, + 0x1020: 0x9d, 0x1021: 0x9e, 0x1022: 0x9f, 0x1023: 0xa0, 0x1024: 0xa1, 0x1025: 0xa2, 0x1026: 0xa3, 0x1027: 0xa4, + 0x1028: 0xa5, 0x1029: 0xa6, 0x102a: 0xa7, 0x102b: 0xa8, 0x102c: 0xa9, 0x102d: 0xaa, + 0x1030: 0xab, 0x1031: 0xac, 0x1032: 0xad, 0x1033: 0xae, 0x1034: 0xaf, 0x1035: 0xb0, 0x1036: 0xb1, 0x1037: 0xb2, + 0x1038: 0xb3, 0x103a: 0xb4, 0x103b: 0xb5, 0x103c: 0xb6, 0x103d: 0xb7, 0x103e: 0xb8, 0x103f: 0xb9, + // Block 0x41, offset 0x1040 + 0x1042: 0x01, 0x1043: 0x231, 0x1044: 0x232, 0x1045: 0x233, 0x1046: 0x234, 0x1047: 0x235, + 0x1048: 0x236, 0x1049: 0x08, 0x104a: 0x237, 0x104b: 0x0a, 0x104c: 0x0b, 0x104d: 0x0c, 0x104e: 0x0d, 0x104f: 0x0e, + 0x1050: 0x0f, 0x1051: 0x10, 0x1052: 0x11, 0x1053: 0x12, 0x1054: 0x13, 0x1055: 0x14, 0x1056: 0x15, 0x1057: 0x1b4, + 0x1058: 0x1b5, 0x1059: 0x1b6, 0x105a: 0x19, 0x105b: 0x1b7, 0x105c: 0x1b, 0x105d: 0x1c, 0x105e: 0x1d, 0x105f: 0x1e, + 0x1060: 0x17, 0x1061: 0x3d, 0x1062: 0x3e, 0x1063: 0x04, 0x1064: 0x05, + 0x106a: 0x06, 0x106d: 0x07, 0x106f: 0x1a, + 0x1070: 0x13, 0x1073: 0x15, + // Block 0x42, offset 0x1080 + 0x1080: 0x3f, 0x1081: 0x40, 0x1082: 0x41, 0x1083: 0x42, 0x1084: 0x1b9, 0x1085: 0x1ba, 0x1086: 0x1bb, 0x1087: 0x1bc, + 0x1088: 0x47, 0x1089: 0x48, 0x108a: 0x49, 0x108b: 0x4a, 0x108c: 0x4b, 0x108d: 0x4c, 0x108e: 0x4d, 0x108f: 0x4e, + 0x1090: 0x4f, 0x1091: 0x50, 0x1092: 0x51, 0x1093: 0x52, 0x1094: 0x53, 0x1095: 0x54, 0x1096: 0x55, 0x1097: 0x56, + 0x1098: 0x57, 0x1099: 0x58, 0x109a: 0x59, 0x109b: 0x5a, 0x109c: 0x5b, 0x109d: 0x5c, 0x109e: 0x5d, 0x109f: 0x5e, + 0x10a0: 0x5f, 0x10a1: 0x60, 0x10a2: 0x61, 0x10a3: 0x62, 0x10a4: 0x63, 0x10a5: 0x64, 0x10a6: 0x65, 0x10a7: 0x66, + 0x10a8: 0x67, 0x10a9: 0x68, 0x10aa: 0x69, 0x10ac: 0x6a, 0x10ad: 0x6b, 0x10ae: 0x6c, 0x10af: 0x6d, + 0x10b0: 0x6e, 0x10b1: 0x6f, 0x10b3: 0x70, 0x10b4: 0x71, 0x10b5: 0x72, 0x10b6: 0x73, 0x10b7: 0x74, + 0x10b8: 0x1e2, 0x10b9: 0x1e3, 0x10ba: 0x1e4, 0x10bb: 0x241, 0x10bc: 0x79, 0x10bd: 0x7a, 0x10be: 0x7b, 0x10bf: 0x7c, + // Block 0x43, offset 0x10c0 + 0x10c2: 0x01, 0x10c3: 0x23d, 0x10c4: 0x23e, 0x10c5: 0x23f, 0x10c6: 0x05, 0x10c7: 0x240, + 0x10c8: 0x07, 0x10c9: 0x08, 0x10ca: 0x09, 0x10cb: 0x0a, 0x10cc: 0x0b, 0x10cd: 0x0c, 0x10ce: 0x0d, 0x10cf: 0x0e, + 0x10d0: 0x0f, 0x10d1: 0x10, 0x10d2: 0x11, 0x10d3: 0x12, 0x10d4: 0x13, 0x10d5: 0x14, 0x10d6: 0x15, 0x10d7: 0x1b4, + 0x10d8: 0x1b5, 0x10d9: 0x1b6, 0x10da: 0x19, 0x10db: 0x1b7, 0x10dc: 0x1b, 0x10dd: 0x1c, 0x10de: 0x1d, 0x10df: 0x1e, + 0x10e0: 0x17, 0x10e1: 0x40, 0x10e2: 0x19, 0x10e3: 0x04, 0x10e4: 0x05, + 0x10ea: 0x06, 0x10ed: 0x07, 0x10ef: 0x1a, + 0x10f0: 0x13, 0x10f3: 0x15, + // Block 0x44, offset 0x1100 + 0x1100: 0x3f, 0x1101: 0x40, 0x1102: 0x41, 0x1103: 0x42, 0x1104: 0x1b9, 0x1105: 0x1ba, 0x1106: 0x1bb, 0x1107: 0x1bc, + 0x1108: 0x47, 0x1109: 0x48, 0x110a: 0x49, 0x110b: 0x4a, 0x110c: 0x4b, 0x110d: 0x4c, 0x110e: 0x4d, 0x110f: 0x4e, + 0x1110: 0x4f, 0x1111: 0x50, 0x1112: 0x51, 0x1113: 0x52, 0x1114: 0x53, 0x1115: 0x54, 0x1116: 0x55, 0x1117: 0x56, + 0x1118: 0x57, 0x1119: 0x58, 0x111a: 0x59, 0x111b: 0x5a, 0x111c: 0x5b, 0x111d: 0x5c, 0x111e: 0x5d, 0x111f: 0x5e, + 0x1120: 0x5f, 0x1121: 0x60, 0x1122: 0x61, 0x1123: 0x62, 0x1124: 0x63, 0x1125: 0x64, 0x1126: 0x65, 0x1127: 0x66, + 0x1128: 0x67, 0x1129: 0x68, 0x112a: 0x69, 0x112c: 0x6a, 0x112d: 0x6b, 0x112e: 0x6c, 0x112f: 0x6d, + 0x1130: 0x6e, 0x1131: 0x6f, 0x1133: 0x70, 0x1134: 0x71, 0x1135: 0x72, 0x1136: 0x1ed, 0x1137: 0x74, + 0x1138: 0x75, 0x1139: 0x248, 0x113a: 0x201, 0x113b: 0x249, 0x113c: 0x79, 0x113d: 0x7a, 0x113e: 0x7b, 0x113f: 0x7c, + // Block 0x45, offset 0x1140 + 0x1142: 0x01, 0x1143: 0x244, 0x1144: 0x245, 0x1145: 0x246, 0x1146: 0x05, 0x1147: 0x1fe, + 0x1148: 0x247, 0x1149: 0x08, 0x114a: 0x09, 0x114b: 0x0a, 0x114c: 0x0b, 0x114d: 0x0c, 0x114e: 0x0d, 0x114f: 0x0e, + 0x1150: 0x0f, 0x1151: 0x10, 0x1152: 0x11, 0x1153: 0x12, 0x1154: 0x13, 0x1155: 0x14, 0x1156: 0x15, 0x1157: 0x1b4, + 0x1158: 0x1b5, 0x1159: 0x1b6, 0x115a: 0x19, 0x115b: 0x1b7, 0x115c: 0x1b, 0x115d: 0x1c, 0x115e: 0x1d, 0x115f: 0x1e, + 0x1160: 0x17, 0x1161: 0x42, 0x1162: 0x2c, 0x1163: 0x2d, 0x1164: 0x05, + 0x116a: 0x06, 0x116d: 0x07, 0x116f: 0x1a, + 0x1170: 0x2f, 0x1173: 0x15, + // Block 0x46, offset 0x1180 + 0x1180: 0x3f, 0x1181: 0x40, 0x1182: 0x41, 0x1183: 0x42, 0x1184: 0x1b9, 0x1185: 0x1ba, 0x1186: 0x1bb, 0x1187: 0x1bc, + 0x1188: 0x47, 0x1189: 0x48, 0x118a: 0x49, 0x118b: 0x4a, 0x118c: 0x4b, 0x118d: 0x4c, 0x118e: 0x4d, 0x118f: 0x4e, + 0x1190: 0x4f, 0x1191: 0x50, 0x1192: 0x51, 0x1193: 0x52, 0x1194: 0x53, 0x1195: 0x54, 0x1196: 0x55, 0x1197: 0x56, + 0x1198: 0x57, 0x1199: 0x58, 0x119a: 0x59, 0x119b: 0x5a, 0x119c: 0x5b, 0x119d: 0x5c, 0x119e: 0x5d, 0x119f: 0x5e, + 0x11a0: 0x5f, 0x11a1: 0x60, 0x11a2: 0x61, 0x11a3: 0x62, 0x11a4: 0x63, 0x11a5: 0x64, 0x11a6: 0x65, 0x11a7: 0x66, + 0x11a8: 0x67, 0x11a9: 0x68, 0x11aa: 0x69, 0x11ac: 0x6a, 0x11ad: 0x6b, 0x11ae: 0x6c, 0x11af: 0x6d, + 0x11b0: 0x6e, 0x11b1: 0x6f, 0x11b3: 0x70, 0x11b4: 0x71, 0x11b5: 0x72, 0x11b6: 0x73, 0x11b7: 0x74, + 0x11b8: 0x1cf, 0x11b9: 0x1d0, 0x11ba: 0x77, 0x11bb: 0x1d2, 0x11bc: 0x79, 0x11bd: 0x7a, 0x11be: 0x7b, 0x11bf: 0x7c, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x7d, 0x11c1: 0x7e, 0x11c2: 0x7f, 0x11c3: 0x80, 0x11c4: 0x81, 0x11c5: 0x24c, 0x11c6: 0x83, 0x11c7: 0x84, + 0x11c8: 0x85, 0x11c9: 0x1bd, 0x11ca: 0x87, 0x11cb: 0x88, 0x11cc: 0x89, 0x11cd: 0x8a, 0x11ce: 0x8b, 0x11cf: 0x8c, + 0x11d0: 0x8d, 0x11d1: 0x8e, 0x11d2: 0x8f, 0x11d3: 0x90, 0x11d4: 0x91, 0x11d5: 0x92, 0x11d6: 0x93, 0x11d7: 0x94, + 0x11d8: 0x95, 0x11d9: 0x96, 0x11da: 0x97, 0x11db: 0x98, 0x11dc: 0x99, 0x11dd: 0x9a, 0x11de: 0x9b, 0x11df: 0x9c, + 0x11e0: 0x9d, 0x11e1: 0x9e, 0x11e2: 0x9f, 0x11e3: 0xa0, 0x11e4: 0xa1, 0x11e5: 0xa2, 0x11e6: 0xa3, 0x11e7: 0xa4, + 0x11e8: 0xa5, 0x11e9: 0xa6, 0x11ea: 0xa7, 0x11eb: 0xa8, 0x11ec: 0xa9, 0x11ed: 0xaa, + 0x11f0: 0xab, 0x11f1: 0xac, 0x11f2: 0xad, 0x11f3: 0xae, 0x11f4: 0xaf, 0x11f5: 0xb0, 0x11f6: 0xb1, 0x11f7: 0xb2, + 0x11f8: 0xb3, 0x11fa: 0xb4, 0x11fb: 0xb5, 0x11fc: 0xb6, 0x11fd: 0xb7, 0x11fe: 0xb8, 0x11ff: 0xb9, + // Block 0x48, offset 0x1200 + 0x1200: 0xba, 0x1201: 0xbb, 0x1202: 0xbc, 0x1203: 0xbd, 0x1204: 0xbe, 0x1205: 0xbf, 0x1206: 0xc0, 0x1207: 0xc1, + 0x1208: 0xc2, 0x1209: 0xc3, 0x120a: 0xc4, 0x120b: 0xc5, 0x120c: 0xc6, 0x120d: 0x1d5, 0x120e: 0xc8, 0x120f: 0xc9, + // Block 0x49, offset 0x1240 + 0x1240: 0x18b, 0x1241: 0x18c, 0x1242: 0x18d, 0x1243: 0x18e, 0x1244: 0x24d, 0x1245: 0x190, 0x1246: 0x191, 0x1247: 0x192, + 0x1248: 0x193, 0x1249: 0x194, 0x124c: 0x195, 0x124d: 0x196, 0x124e: 0x197, 0x124f: 0x198, + 0x1250: 0x199, 0x1251: 0x19a, 0x1252: 0x19b, 0x1253: 0x19c, 0x1254: 0x19d, 0x1255: 0x19e, 0x1257: 0x19f, + 0x1258: 0x1a0, 0x1259: 0x1a1, 0x125a: 0x1a2, 0x125b: 0x1a3, 0x125c: 0x1a4, 0x125d: 0x1a5, + // Block 0x4a, offset 0x1280 + 0x1290: 0x09, 0x1291: 0x0a, 0x1292: 0x0b, 0x1293: 0x0c, 0x1296: 0x0d, + 0x129b: 0x0e, 0x129d: 0x0f, 0x129e: 0x10, 0x129f: 0x47, + 0x12af: 0x12, + // Block 0x4b, offset 0x12c0 + 0x12c2: 0x01, 0x12c3: 0x1c8, 0x12c4: 0x1c9, 0x12c5: 0x1ca, 0x12c6: 0x05, 0x12c7: 0x1cc, + 0x12c8: 0x1cd, 0x12c9: 0x08, 0x12ca: 0x09, 0x12cb: 0x0a, 0x12cc: 0x0b, 0x12cd: 0x0c, 0x12ce: 0x0d, 0x12cf: 0x0e, + 0x12d0: 0x0f, 0x12d1: 0x10, 0x12d2: 0x11, 0x12d3: 0x12, 0x12d4: 0x13, 0x12d5: 0x14, 0x12d6: 0x15, 0x12d7: 0x1b4, + 0x12d8: 0x1b5, 0x12d9: 0x1b6, 0x12da: 0x19, 0x12db: 0x1b7, 0x12dc: 0x1b, 0x12dd: 0x1c, 0x12de: 0x1d, 0x12df: 0x1e, + 0x12e0: 0x17, 0x12e1: 0x44, 0x12e2: 0x45, 0x12e3: 0x46, 0x12e4: 0x05, + 0x12ea: 0x06, 0x12ed: 0x07, 0x12ef: 0x1a, + 0x12f0: 0x48, 0x12f3: 0x15, +} + +// mainCTEntries: 248 entries, 992 bytes +var mainCTEntries = [248]struct{ l, h, n, i uint8 }{ + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x88, 0x88, 0, 2}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x88, 0x88, 0, 1}, + {0xCD, 0x1, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x81, 0x81, 0, 1}, + {0x81, 0x81, 0, 2}, + {0xCC, 0x0, 1, 255}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8F, 0x8F, 0, 1}, + {0xD9, 0x0, 1, 255}, + {0x93, 0x95, 0, 1}, + {0xD9, 0x0, 1, 255}, + {0x94, 0x94, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xA7, 0x1, 1, 255}, + {0xA6, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 2, 255}, + {0xAD, 0x1, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x96, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0x97, 0x97, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xAF, 0x1, 1, 255}, + {0xAE, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xAE, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB1, 0x0, 1, 255}, + {0x96, 0x96, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 1, 255}, + {0x95, 0x95, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 2, 255}, + {0x95, 0x96, 0, 3}, + {0x82, 0x0, 1, 2}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 1, 255}, + {0x95, 0x95, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xB5, 0x1, 1, 255}, + {0xB4, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xB4, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 3, 255}, + {0x9F, 0x9F, 0, 4}, + {0x8F, 0x0, 1, 3}, + {0x8A, 0x8A, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 1, 255}, + {0x8A, 0x8A, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 1, 255}, + {0x8A, 0x8A, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB8, 0x0, 1, 255}, + {0x81, 0xAE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB8, 0x0, 1, 255}, + {0xB2, 0xB2, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xBB, 0xC, 1, 255}, + {0xBA, 0x0, 12, 255}, + {0xAD, 0xAE, 0, 26}, + {0xAA, 0xAB, 0, 24}, + {0xA7, 0xA7, 0, 23}, + {0xA5, 0xA5, 0, 22}, + {0xA1, 0xA3, 0, 19}, + {0x99, 0x9F, 0, 12}, + {0x94, 0x97, 0, 8}, + {0x8D, 0x8D, 0, 7}, + {0x8A, 0x8A, 0, 6}, + {0x87, 0x88, 0, 4}, + {0x84, 0x84, 0, 3}, + {0x81, 0x82, 0, 1}, + {0x9C, 0x9F, 0, 28}, + {0xE0, 0x0, 1, 255}, + {0xBA, 0x0, 1, 255}, + {0xB2, 0xB2, 0, 1}, + {0xEA, 0x0, 1, 255}, + {0xAA, 0x0, 1, 255}, + {0x80, 0xAF, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x7, 1, 255}, + {0xBD, 0x0, 1, 255}, + {0xB1, 0x0, 1, 255}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x2, 1, 255}, + {0xBD, 0x0, 2, 255}, + {0xB4, 0xB4, 0, 2}, + {0xB2, 0xB2, 0, 1}, + {0x80, 0x80, 0, 3}, + {0x80, 0x81, 0, 4}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x2, 1, 255}, + {0xBD, 0x0, 2, 255}, + {0xB4, 0xB4, 0, 2}, + {0xB2, 0xB2, 0, 1}, + {0x80, 0x80, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAE, 0xAE, 0, 1}, + {0xF0, 0x0, 1, 255}, + {0x91, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0xA7, 0xA7, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xB5, 0xB5, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA7, 0xA7, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x87, 0x87, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8C, 0x8C, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8A, 0x8A, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8B, 0x8B, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x61, 0x61, 0, 3}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x61, 0x61, 0, 4}, + {0x41, 0x41, 0, 3}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA8, 0xA8, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x83, 0x83, 0, 1}, + {0xC5, 0x2, 1, 255}, + {0x7A, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xBE, 0xBE, 0, 2}, + {0xC5, 0x4, 1, 255}, + {0x7A, 0x2, 1, 255}, + {0x5A, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 2}, + {0xBD, 0xBE, 0, 3}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6A, 0x6A, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6A, 0x6A, 0, 4}, + {0x4A, 0x4A, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0x6A, 0x6A, 0, 1}, + {0x6A, 0x6A, 0, 2}, + {0x4A, 0x4A, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8A, 0x8A, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x88, 0x88, 0, 2}, + {0x81, 0x81, 0, 1}, + {0x27, 0x27, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0x80, 0x80, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0x83, 0x83, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0x87, 0x87, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0x89, 0x89, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0x8A, 0x8A, 0, 5}, + {0x87, 0x88, 0, 3}, + {0x83, 0x83, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x83, 0x83, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0xA8, 0xA8, 0, 5}, + {0x8B, 0x8B, 0, 4}, + {0x88, 0x88, 0, 3}, + {0x82, 0x83, 0, 1}, + {0xCE, 0x3, 1, 255}, + {0xCC, 0x1, 2, 255}, + {0xC2, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0x8C, 0x8C, 0, 3}, + {0x81, 0x81, 0, 2}, + {0x87, 0x87, 0, 4}, + {0xCC, 0x0, 1, 255}, + {0x81, 0x82, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x82, 0x82, 0, 1}, +} + +// Total size of mainTable is 210136 bytes diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule.go b/vendor/golang.org/x/text/secure/bidirule/bidirule.go new file mode 100644 index 00000000..277257fd --- /dev/null +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule.go @@ -0,0 +1,290 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package bidirule implements the Bidi Rule defined by RFC 5893. +// +// This package is under development. The API may change without notice and +// without preserving backward compatibility. +package bidirule + +import ( + "errors" + "unicode/utf8" + + "golang.org/x/text/transform" + "golang.org/x/text/unicode/bidi" +) + +// This file contains an implementation of RFC 5893: Right-to-Left Scripts for +// Internationalized Domain Names for Applications (IDNA) +// +// A label is an individual component of a domain name. Labels are usually +// shown separated by dots; for example, the domain name "www.example.com" is +// composed of three labels: "www", "example", and "com". +// +// An RTL label is a label that contains at least one character of class R, AL, +// or AN. An LTR label is any label that is not an RTL label. +// +// A "Bidi domain name" is a domain name that contains at least one RTL label. +// +// The following guarantees can be made based on the above: +// +// o In a domain name consisting of only labels that satisfy the rule, +// the requirements of Section 3 are satisfied. Note that even LTR +// labels and pure ASCII labels have to be tested. +// +// o In a domain name consisting of only LDH labels (as defined in the +// Definitions document [RFC5890]) and labels that satisfy the rule, +// the requirements of Section 3 are satisfied as long as a label +// that starts with an ASCII digit does not come after a +// right-to-left label. +// +// No guarantee is given for other combinations. + +// ErrInvalid indicates a label is invalid according to the Bidi Rule. +var ErrInvalid = errors.New("bidirule: failed Bidi Rule") + +type ruleState uint8 + +const ( + ruleInitial ruleState = iota + ruleLTR + ruleLTRFinal + ruleRTL + ruleRTLFinal + ruleInvalid +) + +type ruleTransition struct { + next ruleState + mask uint16 +} + +var transitions = [...][2]ruleTransition{ + // [2.1] The first character must be a character with Bidi property L, R, or + // AL. If it has the R or AL property, it is an RTL label; if it has the L + // property, it is an LTR label. + ruleInitial: { + {ruleLTRFinal, 1 << bidi.L}, + {ruleRTLFinal, 1< 0 { + return + } + + r := New() + src := []byte(tc.in) + + n, err := r.Span(src[:tc.pSrc], tc.pSrc == len(tc.in)) + if err != tc.err0 { + t.Errorf("err0 was %v; want %v", err, tc.err0) + } + if n != tc.nSrc { + t.Fatalf("nSrc was %d; want %d", n, tc.nSrc) + } + + n, err = r.Span(src[n:], true) + if err != tc.err { + t.Errorf("error was %v; want %v", err, tc.err) + } + if got := n + tc.nSrc; got != tc.n { + t.Errorf("n was %d; want %d", got, tc.n) + } + }) +} + +func TestTransform(t *testing.T) { + doTests(t, func(t *testing.T, tc ruleTest) { + r := New() + + src := []byte(tc.in) + dst := make([]byte, len(tc.in)) + if tc.szDst > 0 { + dst = make([]byte, tc.szDst) + } + + // First transform operates on a zero-length string for most tests. + nDst, nSrc, err := r.Transform(dst, src[:tc.pSrc], tc.pSrc == len(tc.in)) + if err != tc.err0 { + t.Errorf("err0 was %v; want %v", err, tc.err0) + } + if nDst != nSrc { + t.Fatalf("nDst (%d) and nSrc (%d) should match", nDst, nSrc) + } + if nSrc != tc.nSrc { + t.Fatalf("nSrc was %d; want %d", nSrc, tc.nSrc) + } + + dst1 := make([]byte, len(tc.in)) + copy(dst1, dst[:nDst]) + + nDst, nSrc, err = r.Transform(dst1[nDst:], src[nSrc:], true) + if err != tc.err { + t.Errorf("error was %v; want %v", err, tc.err) + } + if nDst != nSrc { + t.Fatalf("nDst (%d) and nSrc (%d) should match", nDst, nSrc) + } + n := nSrc + tc.nSrc + if n != tc.n { + t.Fatalf("n was %d; want %d", n, tc.n) + } + if got, want := string(dst1[:n]), tc.in[:tc.n]; got != want { + t.Errorf("got %+q; want %+q", got, want) + } + }) +} diff --git a/vendor/golang.org/x/text/secure/bidirule/go1_6_test.go b/vendor/golang.org/x/text/secure/bidirule/go1_6_test.go new file mode 100644 index 00000000..a7799cd5 --- /dev/null +++ b/vendor/golang.org/x/text/secure/bidirule/go1_6_test.go @@ -0,0 +1,24 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.7 + +package bidirule + +import ( + "fmt" + "testing" +) + +// doTests runs all tests without using t.Run. As a result, context may be +// missing, but at least all tests are run. +func doTests(t *testing.T, fn func(t *testing.T, tc ruleTest)) { + for rule, cases := range testCases { + for i, tc := range cases { + name := fmt.Sprintf("%d/%d:%+q:%s", rule, i, tc.in, tc.in) + t.Log("Testing ", name) + fn(t, tc) + } + } +} diff --git a/vendor/golang.org/x/text/secure/bidirule/go1_7_test.go b/vendor/golang.org/x/text/secure/bidirule/go1_7_test.go new file mode 100644 index 00000000..ae5a169a --- /dev/null +++ b/vendor/golang.org/x/text/secure/bidirule/go1_7_test.go @@ -0,0 +1,66 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.7 + +package bidirule + +import ( + "fmt" + "testing" +) + +func doTests(t *testing.T, fn func(t *testing.T, tc ruleTest)) { + for rule, cases := range testCases { + for i, tc := range cases { + name := fmt.Sprintf("%d/%d:%+q:%s", rule, i, tc.in, tc.in) + t.Run(name, func(t *testing.T) { + fn(t, tc) + }) + } + } +} + +var benchData = []struct{ name, data string }{ + {"ascii", "Scheveningen"}, + {"arabic", "دبي"}, + {"hangul", "다ìŒê³¼"}, +} + +func doBench(b *testing.B, fn func(b *testing.B, data string)) { + for _, d := range benchData { + b.Run(d.name, func(b *testing.B) { fn(b, d.data) }) + } +} + +func BenchmarkSpan(b *testing.B) { + r := New() + doBench(b, func(b *testing.B, str string) { + b.SetBytes(int64(len(str))) + data := []byte(str) + for i := 0; i < b.N; i++ { + r.Reset() + r.Span(data, true) + } + }) +} + +func BenchmarkDirectionASCII(b *testing.B) { + doBench(b, func(b *testing.B, str string) { + b.SetBytes(int64(len(str))) + data := []byte(str) + for i := 0; i < b.N; i++ { + Direction(data) + } + }) +} + +func BenchmarkDirectionStringASCII(b *testing.B) { + doBench(b, func(b *testing.B, str string) { + b.SetBytes(int64(len(str))) + for i := 0; i < b.N; i++ { + DirectionString(str) + } + }) +} diff --git a/vendor/golang.org/x/text/secure/doc.go b/vendor/golang.org/x/text/secure/doc.go new file mode 100644 index 00000000..e531c354 --- /dev/null +++ b/vendor/golang.org/x/text/secure/doc.go @@ -0,0 +1,6 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// secure is a repository of text security related packages. +package secure // import "golang.org/x/text/secure" diff --git a/vendor/golang.org/x/text/secure/precis/benchmark_test.go b/vendor/golang.org/x/text/secure/precis/benchmark_test.go new file mode 100644 index 00000000..83bae4bf --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/benchmark_test.go @@ -0,0 +1,78 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.7 + +package precis + +import "testing" + +var benchData = []struct{ name, str string }{ + {"ASCII", "Malvolio"}, + {"NotNormalized", "abcdefg\u0301\u031f"}, + {"Arabic", "دبي"}, + {"Hangul", "ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½"}, +} + +var benchProfiles = []struct { + name string + p *Profile +}{ + {"FreeForm", NewFreeform()}, + {"Nickname", Nickname}, + {"OpaqueString", OpaqueString}, + {"UsernameCaseMapped", UsernameCaseMapped}, + {"UsernameCasePreserved", UsernameCasePreserved}, +} + +func doBench(b *testing.B, f func(b *testing.B, p *Profile, s string)) { + for _, bp := range benchProfiles { + for _, d := range benchData { + b.Run(bp.name+"/"+d.name, func(b *testing.B) { + f(b, bp.p, d.str) + }) + } + } +} + +func BenchmarkString(b *testing.B) { + doBench(b, func(b *testing.B, p *Profile, s string) { + for i := 0; i < b.N; i++ { + p.String(s) + } + }) +} + +func BenchmarkBytes(b *testing.B) { + doBench(b, func(b *testing.B, p *Profile, s string) { + src := []byte(s) + b.ResetTimer() + for i := 0; i < b.N; i++ { + p.Bytes(src) + } + }) +} + +func BenchmarkAppend(b *testing.B) { + doBench(b, func(b *testing.B, p *Profile, s string) { + src := []byte(s) + dst := make([]byte, 0, 4096) + b.ResetTimer() + for i := 0; i < b.N; i++ { + p.Append(dst, src) + } + }) +} + +func BenchmarkTransform(b *testing.B) { + doBench(b, func(b *testing.B, p *Profile, s string) { + src := []byte(s) + dst := make([]byte, 2*len(s)) + t := p.NewTransformer() + b.ResetTimer() + for i := 0; i < b.N; i++ { + t.Transform(dst, src, true) + } + }) +} diff --git a/vendor/golang.org/x/text/secure/precis/class.go b/vendor/golang.org/x/text/secure/precis/class.go new file mode 100644 index 00000000..f6b56413 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/class.go @@ -0,0 +1,36 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "unicode/utf8" +) + +// TODO: Add contextual character rules from Appendix A of RFC5892. + +// A class is a set of characters that match certain derived properties. The +// PRECIS framework defines two classes: The Freeform class and the Identifier +// class. The freeform class should be used for profiles where expressiveness is +// prioritized over safety such as nicknames or passwords. The identifier class +// should be used for profiles where safety is the first priority such as +// addressable network labels and usernames. +type class struct { + validFrom property +} + +// Contains satisfies the runes.Set interface and returns whether the given rune +// is a member of the class. +func (c class) Contains(r rune) bool { + b := make([]byte, 4) + n := utf8.EncodeRune(b, r) + + trieval, _ := dpTrie.lookup(b[:n]) + return c.validFrom <= property(trieval) +} + +var ( + identifier = &class{validFrom: pValid} + freeform = &class{validFrom: idDisOrFreePVal} +) diff --git a/vendor/golang.org/x/text/secure/precis/class_test.go b/vendor/golang.org/x/text/secure/precis/class_test.go new file mode 100644 index 00000000..fbaf6457 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/class_test.go @@ -0,0 +1,50 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "testing" + + "golang.org/x/text/runes" +) + +// Compile-time regression test to ensure that Class is a Set +var _ runes.Set = (*class)(nil) + +// Ensure that certain characters are (or are not) in the identifer class. +func TestClassContains(t *testing.T) { + tests := []struct { + name string + class *class + allowed []rune + disallowed []rune + }{ + { + name: "Identifier", + class: identifier, + allowed: []rune("Aa0\u0021\u007e\u00df\u3007"), + disallowed: []rune("\u2150\u2100\u2200\u3164\u2190\u2600\u303b\u1e9b"), + }, + { + name: "Freeform", + class: freeform, + allowed: []rune("Aa0\u0021\u007e\u00df\u3007 \u2150\u2100\u2200\u2190\u2600\u1e9b"), + disallowed: []rune("\u3164\u303b"), + }, + } + + for _, rt := range tests { + for _, r := range rt.allowed { + if !rt.class.Contains(r) { + t.Errorf("Class %s should contain %U", rt.name, r) + } + } + for _, r := range rt.disallowed { + if rt.class.Contains(r) { + t.Errorf("Class %s should not contain %U", rt.name, r) + } + } + } +} diff --git a/vendor/golang.org/x/text/secure/precis/context.go b/vendor/golang.org/x/text/secure/precis/context.go new file mode 100644 index 00000000..2dcaf29d --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/context.go @@ -0,0 +1,139 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import "errors" + +// This file contains tables and code related to context rules. + +type catBitmap uint16 + +const ( + // These bits, once set depending on the current value, are never unset. + bJapanese catBitmap = 1 << iota + bArabicIndicDigit + bExtendedArabicIndicDigit + + // These bits are set on each iteration depending on the current value. + bJoinStart + bJoinMid + bJoinEnd + bVirama + bLatinSmallL + bGreek + bHebrew + + // These bits indicated which of the permanent bits need to be set at the + // end of the checks. + bMustHaveJapn + + permanent = bJapanese | bArabicIndicDigit | bExtendedArabicIndicDigit | bMustHaveJapn +) + +const finalShift = 10 + +var errContext = errors.New("precis: contextual rule violated") + +func init() { + // Programmatically set these required bits as, manually setting them seems + // too error prone. + for i, ct := range categoryTransitions { + categoryTransitions[i].keep |= permanent + categoryTransitions[i].accept |= ct.term + } +} + +var categoryTransitions = []struct { + keep catBitmap // mask selecting which bits to keep from the previous state + set catBitmap // mask for which bits to set for this transition + + // These bitmaps are used for rules that require lookahead. + // term&accept == term must be true, which is enforced programmatically. + term catBitmap // bits accepted as termination condition + accept catBitmap // bits that pass, but not sufficient as termination + + // The rule function cannot take a *context as an argument, as it would + // cause the context to escape, adding significant overhead. + rule func(beforeBits catBitmap) (doLookahead bool, err error) +}{ + joiningL: {set: bJoinStart}, + joiningD: {set: bJoinStart | bJoinEnd}, + joiningT: {keep: bJoinStart, set: bJoinMid}, + joiningR: {set: bJoinEnd}, + viramaModifier: {set: bVirama}, + viramaJoinT: {set: bVirama | bJoinMid}, + latinSmallL: {set: bLatinSmallL}, + greek: {set: bGreek}, + greekJoinT: {set: bGreek | bJoinMid}, + hebrew: {set: bHebrew}, + hebrewJoinT: {set: bHebrew | bJoinMid}, + japanese: {set: bJapanese}, + katakanaMiddleDot: {set: bMustHaveJapn}, + + zeroWidthNonJoiner: { + term: bJoinEnd, + accept: bJoinMid, + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bVirama != 0 { + return false, nil + } + if before&bJoinStart == 0 { + return false, errContext + } + return true, nil + }, + }, + zeroWidthJoiner: { + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bVirama == 0 { + err = errContext + } + return false, err + }, + }, + middleDot: { + term: bLatinSmallL, + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bLatinSmallL == 0 { + return false, errContext + } + return true, nil + }, + }, + greekLowerNumeralSign: { + set: bGreek, + term: bGreek, + rule: func(before catBitmap) (doLookAhead bool, err error) { + return true, nil + }, + }, + hebrewPreceding: { + set: bHebrew, + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bHebrew == 0 { + err = errContext + } + return false, err + }, + }, + arabicIndicDigit: { + set: bArabicIndicDigit, + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bExtendedArabicIndicDigit != 0 { + err = errContext + } + return false, err + }, + }, + extendedArabicIndicDigit: { + set: bExtendedArabicIndicDigit, + rule: func(before catBitmap) (doLookAhead bool, err error) { + if before&bArabicIndicDigit != 0 { + err = errContext + } + return false, err + }, + }, +} diff --git a/vendor/golang.org/x/text/secure/precis/doc.go b/vendor/golang.org/x/text/secure/precis/doc.go new file mode 100644 index 00000000..48500fe1 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/doc.go @@ -0,0 +1,14 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package precis contains types and functions for the preparation, +// enforcement, and comparison of internationalized strings ("PRECIS") as +// defined in RFC 7564. It also contains several pre-defined profiles for +// passwords, nicknames, and usernames as defined in RFC 7613 and RFC 7700. +// +// BE ADVISED: This package is under construction and the API may change in +// backwards incompatible ways and without notice. +package precis // import "golang.org/x/text/secure/precis" + +//go:generate go run gen.go gen_trieval.go diff --git a/vendor/golang.org/x/text/secure/precis/enforce_test.go b/vendor/golang.org/x/text/secure/precis/enforce_test.go new file mode 100644 index 00000000..f60f4e31 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/enforce_test.go @@ -0,0 +1,280 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "reflect" + "testing" + + "golang.org/x/text/secure/bidirule" +) + +type testCase struct { + input string + output string + err error +} + +var testCases = []struct { + name string + p *Profile + cases []testCase +}{ + {"Basic", NewFreeform(), []testCase{ + {"e\u0301\u031f", "\u00e9\u031f", nil}, // normalize + }}, + + {"Context Rule 1", NewFreeform(), []testCase{ + // Rule 1: zero-width non-joiner (U+200C) + // From RFC: + // False + // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True; + // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C + // (Joining_Type:T)*(Joining_Type:{R,D})) Then True; + // + // Example runes for different joining types: + // Join L: U+A872; PHAGS-PA SUPERFIXED LETTER RA + // Join D: U+062C; HAH WITH DOT BELOW + // Join T: U+0610; ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM + // Join R: U+0627; ALEF + // Virama: U+0A4D; GURMUKHI SIGN VIRAMA + // Virama and Join T: U+0ACD; GUJARATI SIGN VIRAMA + {"\u200c", "", errContext}, + {"\u200ca", "", errContext}, + {"a\u200c", "", errContext}, + {"\u200c\u0627", "", errContext}, // missing JoinStart + {"\u062c\u200c", "", errContext}, // missing JoinEnd + {"\u0610\u200c\u0610\u0627", "", errContext}, // missing JoinStart + {"\u062c\u0610\u200c\u0610", "", errContext}, // missing JoinEnd + + // Variants of: D T* U+200c T* R + {"\u062c\u200c\u0627", "\u062c\u200c\u0627", nil}, + {"\u062c\u0610\u200c\u0610\u0627", "\u062c\u0610\u200c\u0610\u0627", nil}, + {"\u062c\u0610\u0610\u200c\u0610\u0610\u0627", "\u062c\u0610\u0610\u200c\u0610\u0610\u0627", nil}, + {"\u062c\u0610\u200c\u0627", "\u062c\u0610\u200c\u0627", nil}, + {"\u062c\u200c\u0610\u0627", "\u062c\u200c\u0610\u0627", nil}, + + // Variants of: L T* U+200c T* D + {"\ua872\u200c\u062c", "\ua872\u200c\u062c", nil}, + {"\ua872\u0610\u200c\u0610\u062c", "\ua872\u0610\u200c\u0610\u062c", nil}, + {"\ua872\u0610\u0610\u200c\u0610\u0610\u062c", "\ua872\u0610\u0610\u200c\u0610\u0610\u062c", nil}, + {"\ua872\u0610\u200c\u062c", "\ua872\u0610\u200c\u062c", nil}, + {"\ua872\u200c\u0610\u062c", "\ua872\u200c\u0610\u062c", nil}, + + // Virama + {"\u0a4d\u200c", "\u0a4d\u200c", nil}, + {"\ua872\u0a4d\u200c", "\ua872\u0a4d\u200c", nil}, + {"\ua872\u0a4d\u0610\u200c", "", errContext}, + {"\ua872\u0a4d\u0610\u200c", "", errContext}, + + {"\u0acd\u200c", "\u0acd\u200c", nil}, + {"\ua872\u0acd\u200c", "\ua872\u0acd\u200c", nil}, + {"\ua872\u0acd\u0610\u200c", "", errContext}, + {"\ua872\u0acd\u0610\u200c", "", errContext}, + + // Using Virama as join T + {"\ua872\u0acd\u200c\u062c", "\ua872\u0acd\u200c\u062c", nil}, + {"\ua872\u200c\u0acd\u062c", "\ua872\u200c\u0acd\u062c", nil}, + }}, + + {"Context Rule 2", NewFreeform(), []testCase{ + // Rule 2: zero-width joiner (U+200D) + {"\u200d", "", errContext}, + {"\u200da", "", errContext}, + {"a\u200d", "", errContext}, + + {"\u0a4d\u200d", "\u0a4d\u200d", nil}, + {"\ua872\u0a4d\u200d", "\ua872\u0a4d\u200d", nil}, + {"\u0a4da\u200d", "", errContext}, + }}, + + {"Context Rule 3", NewFreeform(), []testCase{ + // Rule 3: middle dot + {"·", "", errContext}, + {"l·", "", errContext}, + {"·l", "", errContext}, + {"a·", "", errContext}, + {"l·a", "", errContext}, + {"a·a", "", errContext}, + {"l·l", "l·l", nil}, + {"al·la", "al·la", nil}, + }}, + + {"Context Rule 4", NewFreeform(), []testCase{ + // Rule 4: Greek lower numeral U+0375 + {"͵", "", errContext}, + {"͵a", "", errContext}, + {"α͵", "", errContext}, + {"͵α", "͵α", nil}, + {"α͵α", "α͵α", nil}, + {"͵͵α", "͵͵α", nil}, // The numeric sign is itself Greek. + {"α͵͵α", "α͵͵α", nil}, + }}, + + {"Context Rule 5+6", NewFreeform(), []testCase{ + // Rule 5+6: Hebrew preceding + // U+05f3: Geresh + {"׳", "", errContext}, + {"׳ה", "", errContext}, + {"a׳b", "", errContext}, + {"ש׳", "ש׳", nil}, // U+05e9 U+05f3 + {"ש׳׳׳", "ש׳׳׳", nil}, // U+05e9 U+05f3 + + // U+05f4: Gershayim + {"×´", "", errContext}, + {"×´×”", "", errContext}, + {"a×´b", "", errContext}, + {"ש״", "ש״", nil}, // U+05e9 U+05f4 + {"ש״״״", "ש״״״", nil}, // U+05e9 U+05f4 + {"aש״״״", "aש״״״", nil}, // U+05e9 U+05f4 + }}, + + {"Context Rule 7", NewFreeform(), []testCase{ + // Rule 7: Katakana middle Dot + {"・", "", errContext}, + {"abc・", "", errContext}, + {"・def", "", errContext}, + {"abc・def", "", errContext}, + {"aヅc・def", "aヅc・def", nil}, + {"abc・dã¶f", "abc・dã¶f", nil}, + {"âºbc・def", "âºbc・def", nil}, + }}, + + {"Context Rule 8+9", NewFreeform(), []testCase{ + // Rule 8+9: Arabic Indic Digit + {"١٢٣٤٥۶", "", errContext}, + {"Û±Û²Û³Û´ÛµÙ¦", "", errContext}, + {"١٢٣٤٥", "١٢٣٤٥", nil}, + {"Û±Û²Û³Û´Ûµ", "Û±Û²Û³Û´Ûµ", nil}, + }}, + + {"Nickname", Nickname, []testCase{ + {" Swan of Avon ", "Swan of Avon", nil}, + {"", "", errEmptyString}, + {" ", "", errEmptyString}, + {" ", "", errEmptyString}, + {"a\u00A0a\u1680a\u2000a\u2001a\u2002a\u2003a\u2004a\u2005a\u2006a\u2007a\u2008a\u2009a\u200Aa\u202Fa\u205Fa\u3000a", "a a a a a a a a a a a a a a a a a", nil}, + {"Foo", "Foo", nil}, + {"foo", "foo", nil}, + {"Foo Bar", "Foo Bar", nil}, + {"foo bar", "foo bar", nil}, + {"\u03C3", "\u03C3", nil}, + // Greek final sigma is left as is (do not fold!) + {"\u03C2", "\u03C2", nil}, + {"\u265A", "♚", nil}, + {"Richard \u2163", "Richard IV", nil}, + {"\u212B", "Ã…", nil}, + {"\uFB00", "ff", nil}, // because of NFKC + {"שa", "שa", nil}, // no bidi rule + {"ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½", "ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½", nil}, + }}, + {"OpaqueString", OpaqueString, []testCase{ + {" Swan of Avon ", " Swan of Avon ", nil}, + {"", "", errEmptyString}, + {" ", " ", nil}, + {" ", " ", nil}, + {"a\u00A0a\u1680a\u2000a\u2001a\u2002a\u2003a\u2004a\u2005a\u2006a\u2007a\u2008a\u2009a\u200Aa\u202Fa\u205Fa\u3000a", "a a a a a a a a a a a a a a a a a", nil}, + {"Foo", "Foo", nil}, + {"foo", "foo", nil}, + {"Foo Bar", "Foo Bar", nil}, + {"foo bar", "foo bar", nil}, + {"\u03C3", "\u03C3", nil}, + {"Richard \u2163", "Richard \u2163", nil}, + {"\u212B", "Ã…", nil}, + {"Jack of \u2666s", "Jack of \u2666s", nil}, + {"my cat is a \u0009by", "", errDisallowedRune}, + {"שa", "שa", nil}, // no bidi rule + }}, + {"UsernameCaseMapped", UsernameCaseMapped, []testCase{ + // TODO: Should this work? + // {UsernameCaseMapped, "", "", errDisallowedRune}, + {"juliet@example.com", "juliet@example.com", nil}, + {"fussball", "fussball", nil}, + {"fu\u00DFball", "fussball", nil}, + {"\u03C0", "\u03C0", nil}, + {"\u03A3", "\u03C3", nil}, + {"\u03C3", "\u03C3", nil}, + {"\u03C2", "\u03C3", nil}, + {"\u0049", "\u0069", nil}, + {"\u0049", "\u0069", nil}, + {"\u03D2", "", errDisallowedRune}, + {"\u03B0", "\u03B0", nil}, + {"foo bar", "", bidirule.ErrInvalid}, + {"♚", "", bidirule.ErrInvalid}, + {"\u007E", "", bidirule.ErrInvalid}, // disallowed by bidi rule + {"a", "a", nil}, + {"!", "", bidirule.ErrInvalid}, // disallowed by bidi rule + {"²", "", bidirule.ErrInvalid}, + {"\t", "", bidirule.ErrInvalid}, + {"\n", "", bidirule.ErrInvalid}, + {"\u26D6", "", bidirule.ErrInvalid}, + {"\u26FF", "", bidirule.ErrInvalid}, + {"\uFB00", "ff", nil}, // Side effect of case folding. + {"\u1680", "", bidirule.ErrInvalid}, + {" ", "", bidirule.ErrInvalid}, + {" ", "", bidirule.ErrInvalid}, + {"\u01C5", "", errDisallowedRune}, + {"\u16EE", "", errDisallowedRune}, // Nl RUNIC ARLAUG SYMBOL + {"\u0488", "", bidirule.ErrInvalid}, // Me COMBINING CYRILLIC HUNDRED THOUSANDS SIGN + {"\u212B", "\u00e5", nil}, // Angstrom sign, NFC -> U+00E5 + {"A\u030A", "Ã¥", nil}, // A + ring + {"\u00C5", "Ã¥", nil}, // A with ring + {"\u00E7", "ç", nil}, // c cedille + {"\u0063\u0327", "ç", nil}, // c + cedille + {"\u0158", "Å™", nil}, + {"\u0052\u030C", "Å™", nil}, + + {"\u1E61", "\u1E61", nil}, // LATIN SMALL LETTER S WITH DOT ABOVE + // U+1e9B: case folded. + {"ẛ", "\u1E61", nil}, // LATIN SMALL LETTER LONG S WITH DOT ABOVE + + // Confusable characters ARE allowed and should NOT be mapped. + {"\u0410", "\u0430", nil}, // CYRILLIC CAPITAL LETTER A + + // Full width should be mapped to the canonical decomposition. + {"AB", "ab", nil}, + {"שc", "", bidirule.ErrInvalid}, // bidi rule + + }}, + {"UsernameCasePreserved", UsernameCasePreserved, []testCase{ + {"ABC", "ABC", nil}, + {"AB", "AB", nil}, + {"שc", "", bidirule.ErrInvalid}, // bidi rule + {"\uFB00", "", errDisallowedRune}, + {"\u212B", "\u00c5", nil}, // Angstrom sign, NFC -> U+00E5 + {"ẛ", "", errDisallowedRune}, // LATIN SMALL LETTER LONG S WITH DOT ABOVE + }}, +} + +func TestString(t *testing.T) { + doTests(t, func(t *testing.T, p *Profile, tc testCase) { + if e, err := p.String(tc.input); tc.err != err || e != tc.output { + t.Errorf("got %+q (err: %v); want %+q (err: %v)", e, err, tc.output, tc.err) + } + }) +} + +func TestBytes(t *testing.T) { + doTests(t, func(t *testing.T, p *Profile, tc testCase) { + if e, err := p.Bytes([]byte(tc.input)); tc.err != err || string(e) != tc.output { + t.Errorf("got %+q (err: %v); want %+q (err: %v)", string(e), err, tc.output, tc.err) + } + }) + // Test that calling Bytes with something that doesn't transform returns a + // copy. + orig := []byte("hello") + b, _ := NewFreeform().Bytes(orig) + if reflect.ValueOf(b).Pointer() == reflect.ValueOf(orig).Pointer() { + t.Error("original and result are the same slice; should be a copy") + } +} + +func TestAppend(t *testing.T) { + doTests(t, func(t *testing.T, p *Profile, tc testCase) { + if e, err := p.Append(nil, []byte(tc.input)); tc.err != err || string(e) != tc.output { + t.Errorf("got %+q (err: %v); want %+q (err: %v)", string(e), err, tc.output, tc.err) + } + }) +} diff --git a/vendor/golang.org/x/text/secure/precis/gen.go b/vendor/golang.org/x/text/secure/precis/gen.go new file mode 100644 index 00000000..dba9004a --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/gen.go @@ -0,0 +1,310 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Unicode table generator. +// Data read from the web. + +// +build ignore + +package main + +import ( + "flag" + "log" + "unicode" + "unicode/utf8" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/triegen" + "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/norm" + "golang.org/x/text/unicode/rangetable" +) + +var outputFile = flag.String("output", "tables.go", "output file for generated tables; default tables.go") + +var assigned, disallowedRunes *unicode.RangeTable + +var runeCategory = map[rune]category{} + +var overrides = map[category]category{ + viramaModifier: viramaJoinT, + greek: greekJoinT, + hebrew: hebrewJoinT, +} + +func setCategory(r rune, cat category) { + if c, ok := runeCategory[r]; ok { + if override, ok := overrides[c]; cat == joiningT && ok { + cat = override + } else { + log.Fatalf("%U: multiple categories for rune (%v and %v)", r, c, cat) + } + } + runeCategory[r] = cat +} + +func init() { + if numCategories > 1<= 0x0021 && r <= 0x007e: // Is ASCII 7 + p = pValid + case unicode.In(r, disallowedRunes, unicode.Cc): + p = disallowed + case hasCompat(r): + p = idDisOrFreePVal + case isLetterDigits(r): + p = pValid + case isIdDisAndFreePVal(r): + p = idDisOrFreePVal + default: + p = disallowed + } + cat := runeCategory[r] + // Don't set category for runes that are disallowed. + if p == disallowed { + cat = exceptions[r].cat + } + propTrie.Insert(r, uint64(p)|uint64(cat)) + } + sz, err := propTrie.Gen(w) + if err != nil { + log.Fatal(err) + } + w.Size += sz +} diff --git a/vendor/golang.org/x/text/secure/precis/gen_trieval.go b/vendor/golang.org/x/text/secure/precis/gen_trieval.go new file mode 100644 index 00000000..308510c9 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/gen_trieval.go @@ -0,0 +1,68 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// entry is the entry of a trie table +// 7..6 property (unassigned, disallowed, maybe, valid) +// 5..0 category +type entry uint8 + +const ( + propShift = 6 + propMask = 0xc0 + catMask = 0x3f +) + +func (e entry) property() property { return property(e & propMask) } +func (e entry) category() category { return category(e & catMask) } + +type property uint8 + +// The order of these constants matter. A Profile may consider runes to be +// allowed either from pValid or idDisOrFreePVal. +const ( + unassigned property = iota << propShift + disallowed + idDisOrFreePVal // disallowed for Identifier, pValid for FreeForm + pValid +) + +// compute permutations of all properties and specialCategories. +type category uint8 + +const ( + other category = iota + + // Special rune types + joiningL + joiningD + joiningT + joiningR + viramaModifier + viramaJoinT // Virama + JoiningT + latinSmallL // U+006c + greek + greekJoinT // Greek + JoiningT + hebrew + hebrewJoinT // Hebrew + JoiningT + japanese // hirigana, katakana, han + + // Special rune types associated with contextual rules defined in + // https://tools.ietf.org/html/rfc5892#appendix-A. + // ContextO + zeroWidthNonJoiner // rule 1 + zeroWidthJoiner // rule 2 + // ContextJ + middleDot // rule 3 + greekLowerNumeralSign // rule 4 + hebrewPreceding // rule 5 and 6 + katakanaMiddleDot // rule 7 + arabicIndicDigit // rule 8 + extendedArabicIndicDigit // rule 9 + + numCategories +) diff --git a/vendor/golang.org/x/text/secure/precis/go1_6_test.go b/vendor/golang.org/x/text/secure/precis/go1_6_test.go new file mode 100644 index 00000000..663617dd --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/go1_6_test.go @@ -0,0 +1,24 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.7 + +package precis + +import ( + "fmt" + "testing" +) + +// doTests runs all tests without using t.Run. As a result, context may be +// missing, but at least all tests are run. +func doTests(t *testing.T, fn func(t *testing.T, p *Profile, tc testCase)) { + for _, g := range testCases { + for i, tc := range g.cases { + name := fmt.Sprintf("%s:%d:%+q", g.name, i, tc.input) + t.Log("Testing ", name) + fn(t, g.p, tc) + } + } +} diff --git a/vendor/golang.org/x/text/secure/precis/go1_7_test.go b/vendor/golang.org/x/text/secure/precis/go1_7_test.go new file mode 100644 index 00000000..05779f38 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/go1_7_test.go @@ -0,0 +1,23 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.7 + +package precis + +import ( + "fmt" + "testing" +) + +func doTests(t *testing.T, fn func(t *testing.T, p *Profile, tc testCase)) { + for _, g := range testCases { + for i, tc := range g.cases { + name := fmt.Sprintf("%s:%d:%+q", g.name, i, tc.input) + t.Run(name, func(t *testing.T) { + fn(t, g.p, tc) + }) + } + } +} diff --git a/vendor/golang.org/x/text/secure/precis/nickname.go b/vendor/golang.org/x/text/secure/precis/nickname.go new file mode 100644 index 00000000..cd54b9e6 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/nickname.go @@ -0,0 +1,70 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "unicode" + "unicode/utf8" + + "golang.org/x/text/transform" +) + +type nickAdditionalMapping struct { + // TODO: This transformer needs to be stateless somehow… + notStart bool + prevSpace bool +} + +func (t *nickAdditionalMapping) Reset() { + t.prevSpace = false + t.notStart = false +} + +func (t *nickAdditionalMapping) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // RFC 7700 §2.1. Rules + // + // 2. Additional Mapping Rule: The additional mapping rule consists of + // the following sub-rules. + // + // 1. Any instances of non-ASCII space MUST be mapped to ASCII + // space (U+0020); a non-ASCII space is any Unicode code point + // having a general category of "Zs", naturally with the + // exception of U+0020. + // + // 2. Any instances of the ASCII space character at the beginning + // or end of a nickname MUST be removed (e.g., "stpeter " is + // mapped to "stpeter"). + // + // 3. Interior sequences of more than one ASCII space character + // MUST be mapped to a single ASCII space character (e.g., + // "St Peter" is mapped to "St Peter"). + + for nSrc < len(src) { + r, size := utf8.DecodeRune(src[nSrc:]) + if size == 0 { // Incomplete UTF-8 encoding + if !atEOF { + return nDst, nSrc, transform.ErrShortSrc + } + size = 1 + } + if unicode.Is(unicode.Zs, r) { + t.prevSpace = true + } else { + if t.prevSpace && t.notStart { + dst[nDst] = ' ' + nDst += 1 + } + if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { + nDst += size + return nDst, nSrc, transform.ErrShortDst + } + nDst += size + t.prevSpace = false + t.notStart = true + } + nSrc += size + } + return nDst, nSrc, nil +} diff --git a/vendor/golang.org/x/text/secure/precis/options.go b/vendor/golang.org/x/text/secure/precis/options.go new file mode 100644 index 00000000..ec63783e --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/options.go @@ -0,0 +1,106 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "golang.org/x/text/cases" + "golang.org/x/text/runes" + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" + "golang.org/x/text/width" +) + +// An Option is used to define the behavior and rules of a Profile. +type Option func(*options) + +type options struct { + // Preparation options + foldWidth bool + + // Enforcement options + cases transform.Transformer + disallow runes.Set + norm norm.Form + additional []func() transform.Transformer + width *width.Transformer + disallowEmpty bool + bidiRule bool + + // Comparison options + ignorecase bool +} + +func getOpts(o ...Option) (res options) { + for _, f := range o { + f(&res) + } + return +} + +var ( + // The IgnoreCase option causes the profile to perform a case insensitive + // comparison during the PRECIS comparison step. + IgnoreCase Option = ignoreCase + + // The FoldWidth option causes the profile to map non-canonical wide and + // narrow variants to their decomposition mapping. This is useful for + // profiles that are based on the identifier class which would otherwise + // disallow such characters. + FoldWidth Option = foldWidth + + // The DisallowEmpty option causes the enforcement step to return an error if + // the resulting string would be empty. + DisallowEmpty Option = disallowEmpty + + // The BidiRule option causes the Bidi Rule defined in RFC 5893 to be + // applied. + BidiRule Option = bidiRule +) + +var ( + ignoreCase = func(o *options) { + o.ignorecase = true + } + foldWidth = func(o *options) { + o.foldWidth = true + } + disallowEmpty = func(o *options) { + o.disallowEmpty = true + } + bidiRule = func(o *options) { + o.bidiRule = true + } +) + +// The AdditionalMapping option defines the additional mapping rule for the +// Profile by applying Transformer's in sequence. +func AdditionalMapping(t ...func() transform.Transformer) Option { + return func(o *options) { + o.additional = t + } +} + +// The Norm option defines a Profile's normalization rule. Defaults to NFC. +func Norm(f norm.Form) Option { + return func(o *options) { + o.norm = f + } +} + +// The FoldCase option defines a Profile's case mapping rule. Options can be +// provided to determine the type of case folding used. +func FoldCase(opts ...cases.Option) Option { + return func(o *options) { + o.cases = cases.Fold(opts...) + } +} + +// The Disallow option further restricts a Profile's allowed characters beyond +// what is disallowed by the underlying string class. +func Disallow(set runes.Set) Option { + return func(o *options) { + o.disallow = set + } +} diff --git a/vendor/golang.org/x/text/secure/precis/profile.go b/vendor/golang.org/x/text/secure/precis/profile.go new file mode 100644 index 00000000..fd5c422f --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/profile.go @@ -0,0 +1,330 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "errors" + "unicode/utf8" + + "golang.org/x/text/runes" + "golang.org/x/text/secure/bidirule" + "golang.org/x/text/transform" + "golang.org/x/text/width" +) + +var ( + errDisallowedRune = errors.New("precis: disallowed rune encountered") +) + +var dpTrie = newDerivedPropertiesTrie(0) + +// A Profile represents a set of rules for normalizing and validating strings in +// the PRECIS framework. +type Profile struct { + options + class *class +} + +// NewIdentifier creates a new PRECIS profile based on the Identifier string +// class. Profiles created from this class are suitable for use where safety is +// prioritized over expressiveness like network identifiers, user accounts, chat +// rooms, and file names. +func NewIdentifier(opts ...Option) *Profile { + return &Profile{ + options: getOpts(opts...), + class: identifier, + } +} + +// NewFreeform creates a new PRECIS profile based on the Freeform string class. +// Profiles created from this class are suitable for use where expressiveness is +// prioritized over safety like passwords, and display-elements such as +// nicknames in a chat room. +func NewFreeform(opts ...Option) *Profile { + return &Profile{ + options: getOpts(opts...), + class: freeform, + } +} + +// NewTransformer creates a new transform.Transformer that performs the PRECIS +// preparation and enforcement steps on the given UTF-8 encoded bytes. +func (p *Profile) NewTransformer() *Transformer { + var ts []transform.Transformer + + // These transforms are applied in the order defined in + // https://tools.ietf.org/html/rfc7564#section-7 + + if p.options.foldWidth { + ts = append(ts, width.Fold) + } + + for _, f := range p.options.additional { + ts = append(ts, f()) + } + + if p.options.cases != nil { + ts = append(ts, p.options.cases) + } + + ts = append(ts, p.options.norm) + + if p.options.bidiRule { + ts = append(ts, bidirule.New()) + } + + ts = append(ts, &checker{p: p, allowed: p.Allowed()}) + + // TODO: Add the disallow empty rule with a dummy transformer? + + return &Transformer{transform.Chain(ts...)} +} + +var errEmptyString = errors.New("precis: transformation resulted in empty string") + +type buffers struct { + src []byte + buf [2][]byte + next int +} + +func (b *buffers) init(n int) { + b.buf[0] = make([]byte, 0, n) + b.buf[1] = make([]byte, 0, n) +} + +func (b *buffers) apply(t transform.Transformer) (err error) { + // TODO: use Span, once available. + x := b.next & 1 + b.src, _, err = transform.Append(t, b.buf[x][:0], b.src) + b.buf[x] = b.src + b.next++ + return err +} + +func (b *buffers) enforce(p *Profile, src []byte) (str []byte, err error) { + b.src = src + + // These transforms are applied in the order defined in + // https://tools.ietf.org/html/rfc7564#section-7 + + // TODO: allow different width transforms options. + if p.options.foldWidth { + // TODO: use Span, once available. + if err = b.apply(width.Fold); err != nil { + return nil, err + } + } + for _, f := range p.options.additional { + if err = b.apply(f()); err != nil { + return nil, err + } + } + if p.options.cases != nil { + if err = b.apply(p.options.cases); err != nil { + return nil, err + } + } + if n := p.norm.QuickSpan(b.src); n < len(b.src) { + x := b.next & 1 + n = copy(b.buf[x], b.src[:n]) + b.src, _, err = transform.Append(p.norm, b.buf[x][:n], b.src[n:]) + b.buf[x] = b.src + b.next++ + if err != nil { + return nil, err + } + } + if p.options.bidiRule { + if err := b.apply(bidirule.New()); err != nil { + return nil, err + } + } + c := checker{p: p} + if _, err := c.span(b.src, true); err != nil { + return nil, err + } + if p.disallow != nil { + for i := 0; i < len(b.src); { + r, size := utf8.DecodeRune(b.src[i:]) + if p.disallow.Contains(r) { + return nil, errDisallowedRune + } + i += size + } + } + + // TODO: Add the disallow empty rule with a dummy transformer? + + if p.options.disallowEmpty && len(b.src) == 0 { + return nil, errEmptyString + } + return b.src, nil +} + +// Append appends the result of applying p to src writing the result to dst. +// It returns an error if the input string is invalid. +func (p *Profile) Append(dst, src []byte) ([]byte, error) { + var buf buffers + buf.init(8 + len(src) + len(src)>>2) + b, err := buf.enforce(p, src) + if err != nil { + return nil, err + } + return append(dst, b...), nil +} + +// Bytes returns a new byte slice with the result of applying the profile to b. +func (p *Profile) Bytes(b []byte) ([]byte, error) { + var buf buffers + buf.init(8 + len(b) + len(b)>>2) + b, err := buf.enforce(p, b) + if err != nil { + return nil, err + } + if buf.next == 0 { + c := make([]byte, len(b)) + copy(c, b) + return c, nil + } + return b, nil +} + +// String returns a string with the result of applying the profile to s. +func (p *Profile) String(s string) (string, error) { + var buf buffers + buf.init(8 + len(s) + len(s)>>2) + b, err := buf.enforce(p, []byte(s)) + if err != nil { + return "", err + } + return string(b), nil +} + +// Compare enforces both strings, and then compares them for bit-string identity +// (byte-for-byte equality). If either string cannot be enforced, the comparison +// is false. +func (p *Profile) Compare(a, b string) bool { + a, err := p.String(a) + if err != nil { + return false + } + b, err = p.String(b) + if err != nil { + return false + } + + // TODO: This is out of order. Need to extract the transformation logic and + // put this in where the normal case folding would go (but only for + // comparison). + if p.options.ignorecase { + a = width.Fold.String(a) + b = width.Fold.String(a) + } + + return a == b +} + +// Allowed returns a runes.Set containing every rune that is a member of the +// underlying profile's string class and not disallowed by any profile specific +// rules. +func (p *Profile) Allowed() runes.Set { + if p.options.disallow != nil { + return runes.Predicate(func(r rune) bool { + return p.class.Contains(r) && !p.options.disallow.Contains(r) + }) + } + return p.class +} + +type checker struct { + p *Profile + allowed runes.Set + + beforeBits catBitmap + termBits catBitmap + acceptBits catBitmap +} + +func (c *checker) Reset() { + c.beforeBits = 0 + c.termBits = 0 + c.acceptBits = 0 +} + +func (c *checker) span(src []byte, atEOF bool) (n int, err error) { + for n < len(src) { + e, sz := dpTrie.lookup(src[n:]) + d := categoryTransitions[category(e&catMask)] + if sz == 0 { + if !atEOF { + return n, transform.ErrShortSrc + } + return n, errDisallowedRune + } + if property(e) < c.p.class.validFrom { + if d.rule == nil { + return n, errDisallowedRune + } + doLookAhead, err := d.rule(c.beforeBits) + if err != nil { + return n, err + } + if doLookAhead { + c.beforeBits &= d.keep + c.beforeBits |= d.set + // We may still have a lookahead rule which we will require to + // complete (by checking termBits == 0) before setting the new + // bits. + if c.termBits != 0 && (!c.checkLookahead() || c.termBits == 0) { + return n, err + } + c.termBits = d.term + c.acceptBits = d.accept + n += sz + continue + } + } + c.beforeBits &= d.keep + c.beforeBits |= d.set + if c.termBits != 0 && !c.checkLookahead() { + return n, errContext + } + n += sz + } + if m := c.beforeBits >> finalShift; c.beforeBits&m != m || c.termBits != 0 { + err = errContext + } + return n, err +} + +func (c *checker) checkLookahead() bool { + switch { + case c.beforeBits&c.termBits != 0: + c.termBits = 0 + c.acceptBits = 0 + case c.beforeBits&c.acceptBits != 0: + default: + return false + } + return true +} + +// TODO: we may get rid of this transform if transform.Chain understands +// something like a Spanner interface. +func (c checker) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + short := false + if len(dst) < len(src) { + src = src[:len(dst)] + atEOF = false + short = true + } + nSrc, err = c.span(src, atEOF) + nDst = copy(dst, src[:nSrc]) + if short && (err == transform.ErrShortSrc || err == nil) { + err = transform.ErrShortDst + } + return nDst, nSrc, err +} diff --git a/vendor/golang.org/x/text/secure/precis/profiles.go b/vendor/golang.org/x/text/secure/precis/profiles.go new file mode 100644 index 00000000..ad50ae85 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/profiles.go @@ -0,0 +1,56 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "unicode" + + "golang.org/x/text/runes" + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" +) + +var ( + Nickname *Profile = nickname // Implements the Nickname profile specified in RFC 7700. + UsernameCaseMapped *Profile = usernameCaseMap // Implements the UsernameCaseMapped profile specified in RFC 7613. + UsernameCasePreserved *Profile = usernameNoCaseMap // Implements the UsernameCasePreserved profile specified in RFC 7613. + OpaqueString *Profile = opaquestring // Implements the OpaqueString profile defined in RFC 7613 for passwords and other secure labels. +) + +// TODO: mvl: "Ultimately, I would manually define the structs for the internal +// profiles. This avoid pulling in unneeded tables when they are not used." +var ( + nickname = NewFreeform( + AdditionalMapping(func() transform.Transformer { + return &nickAdditionalMapping{} + }), + IgnoreCase, + Norm(norm.NFKC), + DisallowEmpty, + ) + usernameCaseMap = NewIdentifier( + FoldWidth, + FoldCase(), + Norm(norm.NFC), + BidiRule, + ) + usernameNoCaseMap = NewIdentifier( + FoldWidth, + Norm(norm.NFC), + BidiRule, + ) + opaquestring = NewFreeform( + AdditionalMapping(func() transform.Transformer { + return runes.Map(func(r rune) rune { + if unicode.Is(unicode.Zs, r) { + return ' ' + } + return r + }) + }), + Norm(norm.NFC), + DisallowEmpty, + ) +) diff --git a/vendor/golang.org/x/text/secure/precis/tables.go b/vendor/golang.org/x/text/secure/precis/tables.go new file mode 100644 index 00000000..a9b500de --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/tables.go @@ -0,0 +1,3788 @@ +// This file was generated by go generate; DO NOT EDIT + +package precis + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +// 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 *derivedPropertiesTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return derivedPropertiesValues[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 := derivedPropertiesIndex[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 := derivedPropertiesIndex[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 = derivedPropertiesIndex[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 := derivedPropertiesIndex[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 = derivedPropertiesIndex[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 = derivedPropertiesIndex[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 *derivedPropertiesTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return derivedPropertiesValues[c0] + } + i := derivedPropertiesIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = derivedPropertiesIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = derivedPropertiesIndex[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 *derivedPropertiesTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return derivedPropertiesValues[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 := derivedPropertiesIndex[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 := derivedPropertiesIndex[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 = derivedPropertiesIndex[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 := derivedPropertiesIndex[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 = derivedPropertiesIndex[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 = derivedPropertiesIndex[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 *derivedPropertiesTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return derivedPropertiesValues[c0] + } + i := derivedPropertiesIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = derivedPropertiesIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = derivedPropertiesIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// derivedPropertiesTrie. Total size: 25344 bytes (24.75 KiB). Checksum: c5b977d76d42d8a. +type derivedPropertiesTrie struct{} + +func newDerivedPropertiesTrie(i int) *derivedPropertiesTrie { + return &derivedPropertiesTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *derivedPropertiesTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(derivedPropertiesValues[n<<6+uint32(b)]) + } +} + +// derivedPropertiesValues: 324 blocks, 20736 entries, 20736 bytes +// The third block is the zero block. +var derivedPropertiesValues = [20736]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x0040, 0x01: 0x0040, 0x02: 0x0040, 0x03: 0x0040, 0x04: 0x0040, 0x05: 0x0040, + 0x06: 0x0040, 0x07: 0x0040, 0x08: 0x0040, 0x09: 0x0040, 0x0a: 0x0040, 0x0b: 0x0040, + 0x0c: 0x0040, 0x0d: 0x0040, 0x0e: 0x0040, 0x0f: 0x0040, 0x10: 0x0040, 0x11: 0x0040, + 0x12: 0x0040, 0x13: 0x0040, 0x14: 0x0040, 0x15: 0x0040, 0x16: 0x0040, 0x17: 0x0040, + 0x18: 0x0040, 0x19: 0x0040, 0x1a: 0x0040, 0x1b: 0x0040, 0x1c: 0x0040, 0x1d: 0x0040, + 0x1e: 0x0040, 0x1f: 0x0040, 0x20: 0x0080, 0x21: 0x00c0, 0x22: 0x00c0, 0x23: 0x00c0, + 0x24: 0x00c0, 0x25: 0x00c0, 0x26: 0x00c0, 0x27: 0x00c0, 0x28: 0x00c0, 0x29: 0x00c0, + 0x2a: 0x00c0, 0x2b: 0x00c0, 0x2c: 0x00c0, 0x2d: 0x00c0, 0x2e: 0x00c0, 0x2f: 0x00c0, + 0x30: 0x00c0, 0x31: 0x00c0, 0x32: 0x00c0, 0x33: 0x00c0, 0x34: 0x00c0, 0x35: 0x00c0, + 0x36: 0x00c0, 0x37: 0x00c0, 0x38: 0x00c0, 0x39: 0x00c0, 0x3a: 0x00c0, 0x3b: 0x00c0, + 0x3c: 0x00c0, 0x3d: 0x00c0, 0x3e: 0x00c0, 0x3f: 0x00c0, + // Block 0x1, offset 0x40 + 0x40: 0x00c0, 0x41: 0x00c0, 0x42: 0x00c0, 0x43: 0x00c0, 0x44: 0x00c0, 0x45: 0x00c0, + 0x46: 0x00c0, 0x47: 0x00c0, 0x48: 0x00c0, 0x49: 0x00c0, 0x4a: 0x00c0, 0x4b: 0x00c0, + 0x4c: 0x00c0, 0x4d: 0x00c0, 0x4e: 0x00c0, 0x4f: 0x00c0, 0x50: 0x00c0, 0x51: 0x00c0, + 0x52: 0x00c0, 0x53: 0x00c0, 0x54: 0x00c0, 0x55: 0x00c0, 0x56: 0x00c0, 0x57: 0x00c0, + 0x58: 0x00c0, 0x59: 0x00c0, 0x5a: 0x00c0, 0x5b: 0x00c0, 0x5c: 0x00c0, 0x5d: 0x00c0, + 0x5e: 0x00c0, 0x5f: 0x00c0, 0x60: 0x00c0, 0x61: 0x00c0, 0x62: 0x00c0, 0x63: 0x00c0, + 0x64: 0x00c0, 0x65: 0x00c0, 0x66: 0x00c0, 0x67: 0x00c0, 0x68: 0x00c0, 0x69: 0x00c0, + 0x6a: 0x00c0, 0x6b: 0x00c0, 0x6c: 0x00c7, 0x6d: 0x00c0, 0x6e: 0x00c0, 0x6f: 0x00c0, + 0x70: 0x00c0, 0x71: 0x00c0, 0x72: 0x00c0, 0x73: 0x00c0, 0x74: 0x00c0, 0x75: 0x00c0, + 0x76: 0x00c0, 0x77: 0x00c0, 0x78: 0x00c0, 0x79: 0x00c0, 0x7a: 0x00c0, 0x7b: 0x00c0, + 0x7c: 0x00c0, 0x7d: 0x00c0, 0x7e: 0x00c0, 0x7f: 0x0040, + // 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: 0x0080, 0xe1: 0x0080, 0xe2: 0x0080, 0xe3: 0x0080, + 0xe4: 0x0080, 0xe5: 0x0080, 0xe6: 0x0080, 0xe7: 0x0080, 0xe8: 0x0080, 0xe9: 0x0080, + 0xea: 0x0080, 0xeb: 0x0080, 0xec: 0x0080, 0xed: 0x0040, 0xee: 0x0080, 0xef: 0x0080, + 0xf0: 0x0080, 0xf1: 0x0080, 0xf2: 0x0080, 0xf3: 0x0080, 0xf4: 0x0080, 0xf5: 0x0080, + 0xf6: 0x0080, 0xf7: 0x004f, 0xf8: 0x0080, 0xf9: 0x0080, 0xfa: 0x0080, 0xfb: 0x0080, + 0xfc: 0x0080, 0xfd: 0x0080, 0xfe: 0x0080, 0xff: 0x0080, + // Block 0x4, offset 0x100 + 0x100: 0x00c0, 0x101: 0x00c0, 0x102: 0x00c0, 0x103: 0x00c0, 0x104: 0x00c0, 0x105: 0x00c0, + 0x106: 0x00c0, 0x107: 0x00c0, 0x108: 0x00c0, 0x109: 0x00c0, 0x10a: 0x00c0, 0x10b: 0x00c0, + 0x10c: 0x00c0, 0x10d: 0x00c0, 0x10e: 0x00c0, 0x10f: 0x00c0, 0x110: 0x00c0, 0x111: 0x00c0, + 0x112: 0x00c0, 0x113: 0x00c0, 0x114: 0x00c0, 0x115: 0x00c0, 0x116: 0x00c0, 0x117: 0x0080, + 0x118: 0x00c0, 0x119: 0x00c0, 0x11a: 0x00c0, 0x11b: 0x00c0, 0x11c: 0x00c0, 0x11d: 0x00c0, + 0x11e: 0x00c0, 0x11f: 0x00c0, 0x120: 0x00c0, 0x121: 0x00c0, 0x122: 0x00c0, 0x123: 0x00c0, + 0x124: 0x00c0, 0x125: 0x00c0, 0x126: 0x00c0, 0x127: 0x00c0, 0x128: 0x00c0, 0x129: 0x00c0, + 0x12a: 0x00c0, 0x12b: 0x00c0, 0x12c: 0x00c0, 0x12d: 0x00c0, 0x12e: 0x00c0, 0x12f: 0x00c0, + 0x130: 0x00c0, 0x131: 0x00c0, 0x132: 0x00c0, 0x133: 0x00c0, 0x134: 0x00c0, 0x135: 0x00c0, + 0x136: 0x00c0, 0x137: 0x0080, 0x138: 0x00c0, 0x139: 0x00c0, 0x13a: 0x00c0, 0x13b: 0x00c0, + 0x13c: 0x00c0, 0x13d: 0x00c0, 0x13e: 0x00c0, 0x13f: 0x00c0, + // Block 0x5, offset 0x140 + 0x140: 0x00c0, 0x141: 0x00c0, 0x142: 0x00c0, 0x143: 0x00c0, 0x144: 0x00c0, 0x145: 0x00c0, + 0x146: 0x00c0, 0x147: 0x00c0, 0x148: 0x00c0, 0x149: 0x00c0, 0x14a: 0x00c0, 0x14b: 0x00c0, + 0x14c: 0x00c0, 0x14d: 0x00c0, 0x14e: 0x00c0, 0x14f: 0x00c0, 0x150: 0x00c0, 0x151: 0x00c0, + 0x152: 0x00c0, 0x153: 0x00c0, 0x154: 0x00c0, 0x155: 0x00c0, 0x156: 0x00c0, 0x157: 0x00c0, + 0x158: 0x00c0, 0x159: 0x00c0, 0x15a: 0x00c0, 0x15b: 0x00c0, 0x15c: 0x00c0, 0x15d: 0x00c0, + 0x15e: 0x00c0, 0x15f: 0x00c0, 0x160: 0x00c0, 0x161: 0x00c0, 0x162: 0x00c0, 0x163: 0x00c0, + 0x164: 0x00c0, 0x165: 0x00c0, 0x166: 0x00c0, 0x167: 0x00c0, 0x168: 0x00c0, 0x169: 0x00c0, + 0x16a: 0x00c0, 0x16b: 0x00c0, 0x16c: 0x00c0, 0x16d: 0x00c0, 0x16e: 0x00c0, 0x16f: 0x00c0, + 0x170: 0x00c0, 0x171: 0x00c0, 0x172: 0x0080, 0x173: 0x0080, 0x174: 0x00c0, 0x175: 0x00c0, + 0x176: 0x00c0, 0x177: 0x00c0, 0x178: 0x00c0, 0x179: 0x00c0, 0x17a: 0x00c0, 0x17b: 0x00c0, + 0x17c: 0x00c0, 0x17d: 0x00c0, 0x17e: 0x00c0, 0x17f: 0x0080, + // Block 0x6, offset 0x180 + 0x180: 0x0080, 0x181: 0x00c0, 0x182: 0x00c0, 0x183: 0x00c0, 0x184: 0x00c0, 0x185: 0x00c0, + 0x186: 0x00c0, 0x187: 0x00c0, 0x188: 0x00c0, 0x189: 0x0080, 0x18a: 0x00c0, 0x18b: 0x00c0, + 0x18c: 0x00c0, 0x18d: 0x00c0, 0x18e: 0x00c0, 0x18f: 0x00c0, 0x190: 0x00c0, 0x191: 0x00c0, + 0x192: 0x00c0, 0x193: 0x00c0, 0x194: 0x00c0, 0x195: 0x00c0, 0x196: 0x00c0, 0x197: 0x00c0, + 0x198: 0x00c0, 0x199: 0x00c0, 0x19a: 0x00c0, 0x19b: 0x00c0, 0x19c: 0x00c0, 0x19d: 0x00c0, + 0x19e: 0x00c0, 0x19f: 0x00c0, 0x1a0: 0x00c0, 0x1a1: 0x00c0, 0x1a2: 0x00c0, 0x1a3: 0x00c0, + 0x1a4: 0x00c0, 0x1a5: 0x00c0, 0x1a6: 0x00c0, 0x1a7: 0x00c0, 0x1a8: 0x00c0, 0x1a9: 0x00c0, + 0x1aa: 0x00c0, 0x1ab: 0x00c0, 0x1ac: 0x00c0, 0x1ad: 0x00c0, 0x1ae: 0x00c0, 0x1af: 0x00c0, + 0x1b0: 0x00c0, 0x1b1: 0x00c0, 0x1b2: 0x00c0, 0x1b3: 0x00c0, 0x1b4: 0x00c0, 0x1b5: 0x00c0, + 0x1b6: 0x00c0, 0x1b7: 0x00c0, 0x1b8: 0x00c0, 0x1b9: 0x00c0, 0x1ba: 0x00c0, 0x1bb: 0x00c0, + 0x1bc: 0x00c0, 0x1bd: 0x00c0, 0x1be: 0x00c0, 0x1bf: 0x0080, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x00c0, 0x1c1: 0x00c0, 0x1c2: 0x00c0, 0x1c3: 0x00c0, 0x1c4: 0x00c0, 0x1c5: 0x00c0, + 0x1c6: 0x00c0, 0x1c7: 0x00c0, 0x1c8: 0x00c0, 0x1c9: 0x00c0, 0x1ca: 0x00c0, 0x1cb: 0x00c0, + 0x1cc: 0x00c0, 0x1cd: 0x00c0, 0x1ce: 0x00c0, 0x1cf: 0x00c0, 0x1d0: 0x00c0, 0x1d1: 0x00c0, + 0x1d2: 0x00c0, 0x1d3: 0x00c0, 0x1d4: 0x00c0, 0x1d5: 0x00c0, 0x1d6: 0x00c0, 0x1d7: 0x00c0, + 0x1d8: 0x00c0, 0x1d9: 0x00c0, 0x1da: 0x00c0, 0x1db: 0x00c0, 0x1dc: 0x00c0, 0x1dd: 0x00c0, + 0x1de: 0x00c0, 0x1df: 0x00c0, 0x1e0: 0x00c0, 0x1e1: 0x00c0, 0x1e2: 0x00c0, 0x1e3: 0x00c0, + 0x1e4: 0x00c0, 0x1e5: 0x00c0, 0x1e6: 0x00c0, 0x1e7: 0x00c0, 0x1e8: 0x00c0, 0x1e9: 0x00c0, + 0x1ea: 0x00c0, 0x1eb: 0x00c0, 0x1ec: 0x00c0, 0x1ed: 0x00c0, 0x1ee: 0x00c0, 0x1ef: 0x00c0, + 0x1f0: 0x00c0, 0x1f1: 0x00c0, 0x1f2: 0x00c0, 0x1f3: 0x00c0, 0x1f4: 0x00c0, 0x1f5: 0x00c0, + 0x1f6: 0x00c0, 0x1f7: 0x00c0, 0x1f8: 0x00c0, 0x1f9: 0x00c0, 0x1fa: 0x00c0, 0x1fb: 0x00c0, + 0x1fc: 0x00c0, 0x1fd: 0x00c0, 0x1fe: 0x00c0, 0x1ff: 0x00c0, + // Block 0x8, offset 0x200 + 0x200: 0x00c0, 0x201: 0x00c0, 0x202: 0x00c0, 0x203: 0x00c0, 0x204: 0x0080, 0x205: 0x0080, + 0x206: 0x0080, 0x207: 0x0080, 0x208: 0x0080, 0x209: 0x0080, 0x20a: 0x0080, 0x20b: 0x0080, + 0x20c: 0x0080, 0x20d: 0x00c0, 0x20e: 0x00c0, 0x20f: 0x00c0, 0x210: 0x00c0, 0x211: 0x00c0, + 0x212: 0x00c0, 0x213: 0x00c0, 0x214: 0x00c0, 0x215: 0x00c0, 0x216: 0x00c0, 0x217: 0x00c0, + 0x218: 0x00c0, 0x219: 0x00c0, 0x21a: 0x00c0, 0x21b: 0x00c0, 0x21c: 0x00c0, 0x21d: 0x00c0, + 0x21e: 0x00c0, 0x21f: 0x00c0, 0x220: 0x00c0, 0x221: 0x00c0, 0x222: 0x00c0, 0x223: 0x00c0, + 0x224: 0x00c0, 0x225: 0x00c0, 0x226: 0x00c0, 0x227: 0x00c0, 0x228: 0x00c0, 0x229: 0x00c0, + 0x22a: 0x00c0, 0x22b: 0x00c0, 0x22c: 0x00c0, 0x22d: 0x00c0, 0x22e: 0x00c0, 0x22f: 0x00c0, + 0x230: 0x00c0, 0x231: 0x0080, 0x232: 0x0080, 0x233: 0x0080, 0x234: 0x00c0, 0x235: 0x00c0, + 0x236: 0x00c0, 0x237: 0x00c0, 0x238: 0x00c0, 0x239: 0x00c0, 0x23a: 0x00c0, 0x23b: 0x00c0, + 0x23c: 0x00c0, 0x23d: 0x00c0, 0x23e: 0x00c0, 0x23f: 0x00c0, + // Block 0x9, offset 0x240 + 0x240: 0x00c0, 0x241: 0x00c0, 0x242: 0x00c0, 0x243: 0x00c0, 0x244: 0x00c0, 0x245: 0x00c0, + 0x246: 0x00c0, 0x247: 0x00c0, 0x248: 0x00c0, 0x249: 0x00c0, 0x24a: 0x00c0, 0x24b: 0x00c0, + 0x24c: 0x00c0, 0x24d: 0x00c0, 0x24e: 0x00c0, 0x24f: 0x00c0, 0x250: 0x00c0, 0x251: 0x00c0, + 0x252: 0x00c0, 0x253: 0x00c0, 0x254: 0x00c0, 0x255: 0x00c0, 0x256: 0x00c0, 0x257: 0x00c0, + 0x258: 0x00c0, 0x259: 0x00c0, 0x25a: 0x00c0, 0x25b: 0x00c0, 0x25c: 0x00c0, 0x25d: 0x00c0, + 0x25e: 0x00c0, 0x25f: 0x00c0, 0x260: 0x00c0, 0x261: 0x00c0, 0x262: 0x00c0, 0x263: 0x00c0, + 0x264: 0x00c0, 0x265: 0x00c0, 0x266: 0x00c0, 0x267: 0x00c0, 0x268: 0x00c0, 0x269: 0x00c0, + 0x26a: 0x00c0, 0x26b: 0x00c0, 0x26c: 0x00c0, 0x26d: 0x00c0, 0x26e: 0x00c0, 0x26f: 0x00c0, + 0x270: 0x0080, 0x271: 0x0080, 0x272: 0x0080, 0x273: 0x0080, 0x274: 0x0080, 0x275: 0x0080, + 0x276: 0x0080, 0x277: 0x0080, 0x278: 0x0080, 0x279: 0x00c0, 0x27a: 0x00c0, 0x27b: 0x00c0, + 0x27c: 0x00c0, 0x27d: 0x00c0, 0x27e: 0x00c0, 0x27f: 0x00c0, + // Block 0xa, offset 0x280 + 0x280: 0x00c0, 0x281: 0x00c0, 0x282: 0x0080, 0x283: 0x0080, 0x284: 0x0080, 0x285: 0x0080, + 0x286: 0x00c0, 0x287: 0x00c0, 0x288: 0x00c0, 0x289: 0x00c0, 0x28a: 0x00c0, 0x28b: 0x00c0, + 0x28c: 0x00c0, 0x28d: 0x00c0, 0x28e: 0x00c0, 0x28f: 0x00c0, 0x290: 0x00c0, 0x291: 0x00c0, + 0x292: 0x0080, 0x293: 0x0080, 0x294: 0x0080, 0x295: 0x0080, 0x296: 0x0080, 0x297: 0x0080, + 0x298: 0x0080, 0x299: 0x0080, 0x29a: 0x0080, 0x29b: 0x0080, 0x29c: 0x0080, 0x29d: 0x0080, + 0x29e: 0x0080, 0x29f: 0x0080, 0x2a0: 0x0080, 0x2a1: 0x0080, 0x2a2: 0x0080, 0x2a3: 0x0080, + 0x2a4: 0x0080, 0x2a5: 0x0080, 0x2a6: 0x0080, 0x2a7: 0x0080, 0x2a8: 0x0080, 0x2a9: 0x0080, + 0x2aa: 0x0080, 0x2ab: 0x0080, 0x2ac: 0x00c0, 0x2ad: 0x0080, 0x2ae: 0x00c0, 0x2af: 0x0080, + 0x2b0: 0x0080, 0x2b1: 0x0080, 0x2b2: 0x0080, 0x2b3: 0x0080, 0x2b4: 0x0080, 0x2b5: 0x0080, + 0x2b6: 0x0080, 0x2b7: 0x0080, 0x2b8: 0x0080, 0x2b9: 0x0080, 0x2ba: 0x0080, 0x2bb: 0x0080, + 0x2bc: 0x0080, 0x2bd: 0x0080, 0x2be: 0x0080, 0x2bf: 0x0080, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x00c3, 0x2c1: 0x00c3, 0x2c2: 0x00c3, 0x2c3: 0x00c3, 0x2c4: 0x00c3, 0x2c5: 0x00c3, + 0x2c6: 0x00c3, 0x2c7: 0x00c3, 0x2c8: 0x00c3, 0x2c9: 0x00c3, 0x2ca: 0x00c3, 0x2cb: 0x00c3, + 0x2cc: 0x00c3, 0x2cd: 0x00c3, 0x2ce: 0x00c3, 0x2cf: 0x00c3, 0x2d0: 0x00c3, 0x2d1: 0x00c3, + 0x2d2: 0x00c3, 0x2d3: 0x00c3, 0x2d4: 0x00c3, 0x2d5: 0x00c3, 0x2d6: 0x00c3, 0x2d7: 0x00c3, + 0x2d8: 0x00c3, 0x2d9: 0x00c3, 0x2da: 0x00c3, 0x2db: 0x00c3, 0x2dc: 0x00c3, 0x2dd: 0x00c3, + 0x2de: 0x00c3, 0x2df: 0x00c3, 0x2e0: 0x00c3, 0x2e1: 0x00c3, 0x2e2: 0x00c3, 0x2e3: 0x00c3, + 0x2e4: 0x00c3, 0x2e5: 0x00c3, 0x2e6: 0x00c3, 0x2e7: 0x00c3, 0x2e8: 0x00c3, 0x2e9: 0x00c3, + 0x2ea: 0x00c3, 0x2eb: 0x00c3, 0x2ec: 0x00c3, 0x2ed: 0x00c3, 0x2ee: 0x00c3, 0x2ef: 0x00c3, + 0x2f0: 0x00c3, 0x2f1: 0x00c3, 0x2f2: 0x00c3, 0x2f3: 0x00c3, 0x2f4: 0x00c3, 0x2f5: 0x00c3, + 0x2f6: 0x00c3, 0x2f7: 0x00c3, 0x2f8: 0x00c3, 0x2f9: 0x00c3, 0x2fa: 0x00c3, 0x2fb: 0x00c3, + 0x2fc: 0x00c3, 0x2fd: 0x00c3, 0x2fe: 0x00c3, 0x2ff: 0x00c3, + // Block 0xc, offset 0x300 + 0x300: 0x0083, 0x301: 0x0083, 0x302: 0x00c3, 0x303: 0x0083, 0x304: 0x0083, 0x305: 0x00c3, + 0x306: 0x00c3, 0x307: 0x00c3, 0x308: 0x00c3, 0x309: 0x00c3, 0x30a: 0x00c3, 0x30b: 0x00c3, + 0x30c: 0x00c3, 0x30d: 0x00c3, 0x30e: 0x00c3, 0x30f: 0x0040, 0x310: 0x00c3, 0x311: 0x00c3, + 0x312: 0x00c3, 0x313: 0x00c3, 0x314: 0x00c3, 0x315: 0x00c3, 0x316: 0x00c3, 0x317: 0x00c3, + 0x318: 0x00c3, 0x319: 0x00c3, 0x31a: 0x00c3, 0x31b: 0x00c3, 0x31c: 0x00c3, 0x31d: 0x00c3, + 0x31e: 0x00c3, 0x31f: 0x00c3, 0x320: 0x00c3, 0x321: 0x00c3, 0x322: 0x00c3, 0x323: 0x00c3, + 0x324: 0x00c3, 0x325: 0x00c3, 0x326: 0x00c3, 0x327: 0x00c3, 0x328: 0x00c3, 0x329: 0x00c3, + 0x32a: 0x00c3, 0x32b: 0x00c3, 0x32c: 0x00c3, 0x32d: 0x00c3, 0x32e: 0x00c3, 0x32f: 0x00c3, + 0x330: 0x00c8, 0x331: 0x00c8, 0x332: 0x00c8, 0x333: 0x00c8, 0x334: 0x0080, 0x335: 0x0050, + 0x336: 0x00c8, 0x337: 0x00c8, 0x33a: 0x0088, 0x33b: 0x00c8, + 0x33c: 0x00c8, 0x33d: 0x00c8, 0x33e: 0x0080, 0x33f: 0x00c8, + // Block 0xd, offset 0x340 + 0x344: 0x0088, 0x345: 0x0080, + 0x346: 0x00c8, 0x347: 0x0080, 0x348: 0x00c8, 0x349: 0x00c8, 0x34a: 0x00c8, + 0x34c: 0x00c8, 0x34e: 0x00c8, 0x34f: 0x00c8, 0x350: 0x00c8, 0x351: 0x00c8, + 0x352: 0x00c8, 0x353: 0x00c8, 0x354: 0x00c8, 0x355: 0x00c8, 0x356: 0x00c8, 0x357: 0x00c8, + 0x358: 0x00c8, 0x359: 0x00c8, 0x35a: 0x00c8, 0x35b: 0x00c8, 0x35c: 0x00c8, 0x35d: 0x00c8, + 0x35e: 0x00c8, 0x35f: 0x00c8, 0x360: 0x00c8, 0x361: 0x00c8, 0x363: 0x00c8, + 0x364: 0x00c8, 0x365: 0x00c8, 0x366: 0x00c8, 0x367: 0x00c8, 0x368: 0x00c8, 0x369: 0x00c8, + 0x36a: 0x00c8, 0x36b: 0x00c8, 0x36c: 0x00c8, 0x36d: 0x00c8, 0x36e: 0x00c8, 0x36f: 0x00c8, + 0x370: 0x00c8, 0x371: 0x00c8, 0x372: 0x00c8, 0x373: 0x00c8, 0x374: 0x00c8, 0x375: 0x00c8, + 0x376: 0x00c8, 0x377: 0x00c8, 0x378: 0x00c8, 0x379: 0x00c8, 0x37a: 0x00c8, 0x37b: 0x00c8, + 0x37c: 0x00c8, 0x37d: 0x00c8, 0x37e: 0x00c8, 0x37f: 0x00c8, + // Block 0xe, offset 0x380 + 0x380: 0x00c8, 0x381: 0x00c8, 0x382: 0x00c8, 0x383: 0x00c8, 0x384: 0x00c8, 0x385: 0x00c8, + 0x386: 0x00c8, 0x387: 0x00c8, 0x388: 0x00c8, 0x389: 0x00c8, 0x38a: 0x00c8, 0x38b: 0x00c8, + 0x38c: 0x00c8, 0x38d: 0x00c8, 0x38e: 0x00c8, 0x38f: 0x00c8, 0x390: 0x0088, 0x391: 0x0088, + 0x392: 0x0088, 0x393: 0x0088, 0x394: 0x0088, 0x395: 0x0088, 0x396: 0x0088, 0x397: 0x00c8, + 0x398: 0x00c8, 0x399: 0x00c8, 0x39a: 0x00c8, 0x39b: 0x00c8, 0x39c: 0x00c8, 0x39d: 0x00c8, + 0x39e: 0x00c8, 0x39f: 0x00c8, 0x3a0: 0x00c8, 0x3a1: 0x00c8, 0x3a2: 0x00c0, 0x3a3: 0x00c0, + 0x3a4: 0x00c0, 0x3a5: 0x00c0, 0x3a6: 0x00c0, 0x3a7: 0x00c0, 0x3a8: 0x00c0, 0x3a9: 0x00c0, + 0x3aa: 0x00c0, 0x3ab: 0x00c0, 0x3ac: 0x00c0, 0x3ad: 0x00c0, 0x3ae: 0x00c0, 0x3af: 0x00c0, + 0x3b0: 0x0088, 0x3b1: 0x0088, 0x3b2: 0x0088, 0x3b3: 0x00c8, 0x3b4: 0x0088, 0x3b5: 0x0088, + 0x3b6: 0x0088, 0x3b7: 0x00c8, 0x3b8: 0x00c8, 0x3b9: 0x0088, 0x3ba: 0x00c8, 0x3bb: 0x00c8, + 0x3bc: 0x00c8, 0x3bd: 0x00c8, 0x3be: 0x00c8, 0x3bf: 0x00c8, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x00c0, 0x3c1: 0x00c0, 0x3c2: 0x0080, 0x3c3: 0x00c3, 0x3c4: 0x00c3, 0x3c5: 0x00c3, + 0x3c6: 0x00c3, 0x3c7: 0x00c3, 0x3c8: 0x0083, 0x3c9: 0x0083, 0x3ca: 0x00c0, 0x3cb: 0x00c0, + 0x3cc: 0x00c0, 0x3cd: 0x00c0, 0x3ce: 0x00c0, 0x3cf: 0x00c0, 0x3d0: 0x00c0, 0x3d1: 0x00c0, + 0x3d2: 0x00c0, 0x3d3: 0x00c0, 0x3d4: 0x00c0, 0x3d5: 0x00c0, 0x3d6: 0x00c0, 0x3d7: 0x00c0, + 0x3d8: 0x00c0, 0x3d9: 0x00c0, 0x3da: 0x00c0, 0x3db: 0x00c0, 0x3dc: 0x00c0, 0x3dd: 0x00c0, + 0x3de: 0x00c0, 0x3df: 0x00c0, 0x3e0: 0x00c0, 0x3e1: 0x00c0, 0x3e2: 0x00c0, 0x3e3: 0x00c0, + 0x3e4: 0x00c0, 0x3e5: 0x00c0, 0x3e6: 0x00c0, 0x3e7: 0x00c0, 0x3e8: 0x00c0, 0x3e9: 0x00c0, + 0x3ea: 0x00c0, 0x3eb: 0x00c0, 0x3ec: 0x00c0, 0x3ed: 0x00c0, 0x3ee: 0x00c0, 0x3ef: 0x00c0, + 0x3f0: 0x00c0, 0x3f1: 0x00c0, 0x3f2: 0x00c0, 0x3f3: 0x00c0, 0x3f4: 0x00c0, 0x3f5: 0x00c0, + 0x3f6: 0x00c0, 0x3f7: 0x00c0, 0x3f8: 0x00c0, 0x3f9: 0x00c0, 0x3fa: 0x00c0, 0x3fb: 0x00c0, + 0x3fc: 0x00c0, 0x3fd: 0x00c0, 0x3fe: 0x00c0, 0x3ff: 0x00c0, + // Block 0x10, offset 0x400 + 0x400: 0x00c0, 0x401: 0x00c0, 0x402: 0x00c0, 0x403: 0x00c0, 0x404: 0x00c0, 0x405: 0x00c0, + 0x406: 0x00c0, 0x407: 0x00c0, 0x408: 0x00c0, 0x409: 0x00c0, 0x40a: 0x00c0, 0x40b: 0x00c0, + 0x40c: 0x00c0, 0x40d: 0x00c0, 0x40e: 0x00c0, 0x40f: 0x00c0, 0x410: 0x00c0, 0x411: 0x00c0, + 0x412: 0x00c0, 0x413: 0x00c0, 0x414: 0x00c0, 0x415: 0x00c0, 0x416: 0x00c0, 0x417: 0x00c0, + 0x418: 0x00c0, 0x419: 0x00c0, 0x41a: 0x00c0, 0x41b: 0x00c0, 0x41c: 0x00c0, 0x41d: 0x00c0, + 0x41e: 0x00c0, 0x41f: 0x00c0, 0x420: 0x00c0, 0x421: 0x00c0, 0x422: 0x00c0, 0x423: 0x00c0, + 0x424: 0x00c0, 0x425: 0x00c0, 0x426: 0x00c0, 0x427: 0x00c0, 0x428: 0x00c0, 0x429: 0x00c0, + 0x42a: 0x00c0, 0x42b: 0x00c0, 0x42c: 0x00c0, 0x42d: 0x00c0, 0x42e: 0x00c0, 0x42f: 0x00c0, + 0x431: 0x00c0, 0x432: 0x00c0, 0x433: 0x00c0, 0x434: 0x00c0, 0x435: 0x00c0, + 0x436: 0x00c0, 0x437: 0x00c0, 0x438: 0x00c0, 0x439: 0x00c0, 0x43a: 0x00c0, 0x43b: 0x00c0, + 0x43c: 0x00c0, 0x43d: 0x00c0, 0x43e: 0x00c0, 0x43f: 0x00c0, + // Block 0x11, offset 0x440 + 0x440: 0x00c0, 0x441: 0x00c0, 0x442: 0x00c0, 0x443: 0x00c0, 0x444: 0x00c0, 0x445: 0x00c0, + 0x446: 0x00c0, 0x447: 0x00c0, 0x448: 0x00c0, 0x449: 0x00c0, 0x44a: 0x00c0, 0x44b: 0x00c0, + 0x44c: 0x00c0, 0x44d: 0x00c0, 0x44e: 0x00c0, 0x44f: 0x00c0, 0x450: 0x00c0, 0x451: 0x00c0, + 0x452: 0x00c0, 0x453: 0x00c0, 0x454: 0x00c0, 0x455: 0x00c0, 0x456: 0x00c0, + 0x459: 0x00c0, 0x45a: 0x0080, 0x45b: 0x0080, 0x45c: 0x0080, 0x45d: 0x0080, + 0x45e: 0x0080, 0x45f: 0x0080, 0x461: 0x00c0, 0x462: 0x00c0, 0x463: 0x00c0, + 0x464: 0x00c0, 0x465: 0x00c0, 0x466: 0x00c0, 0x467: 0x00c0, 0x468: 0x00c0, 0x469: 0x00c0, + 0x46a: 0x00c0, 0x46b: 0x00c0, 0x46c: 0x00c0, 0x46d: 0x00c0, 0x46e: 0x00c0, 0x46f: 0x00c0, + 0x470: 0x00c0, 0x471: 0x00c0, 0x472: 0x00c0, 0x473: 0x00c0, 0x474: 0x00c0, 0x475: 0x00c0, + 0x476: 0x00c0, 0x477: 0x00c0, 0x478: 0x00c0, 0x479: 0x00c0, 0x47a: 0x00c0, 0x47b: 0x00c0, + 0x47c: 0x00c0, 0x47d: 0x00c0, 0x47e: 0x00c0, 0x47f: 0x00c0, + // Block 0x12, offset 0x480 + 0x480: 0x00c0, 0x481: 0x00c0, 0x482: 0x00c0, 0x483: 0x00c0, 0x484: 0x00c0, 0x485: 0x00c0, + 0x486: 0x00c0, 0x487: 0x0080, 0x489: 0x0080, 0x48a: 0x0080, + 0x48d: 0x0080, 0x48e: 0x0080, 0x48f: 0x0080, 0x491: 0x00cb, + 0x492: 0x00cb, 0x493: 0x00cb, 0x494: 0x00cb, 0x495: 0x00cb, 0x496: 0x00cb, 0x497: 0x00cb, + 0x498: 0x00cb, 0x499: 0x00cb, 0x49a: 0x00cb, 0x49b: 0x00cb, 0x49c: 0x00cb, 0x49d: 0x00cb, + 0x49e: 0x00cb, 0x49f: 0x00cb, 0x4a0: 0x00cb, 0x4a1: 0x00cb, 0x4a2: 0x00cb, 0x4a3: 0x00cb, + 0x4a4: 0x00cb, 0x4a5: 0x00cb, 0x4a6: 0x00cb, 0x4a7: 0x00cb, 0x4a8: 0x00cb, 0x4a9: 0x00cb, + 0x4aa: 0x00cb, 0x4ab: 0x00cb, 0x4ac: 0x00cb, 0x4ad: 0x00cb, 0x4ae: 0x00cb, 0x4af: 0x00cb, + 0x4b0: 0x00cb, 0x4b1: 0x00cb, 0x4b2: 0x00cb, 0x4b3: 0x00cb, 0x4b4: 0x00cb, 0x4b5: 0x00cb, + 0x4b6: 0x00cb, 0x4b7: 0x00cb, 0x4b8: 0x00cb, 0x4b9: 0x00cb, 0x4ba: 0x00cb, 0x4bb: 0x00cb, + 0x4bc: 0x00cb, 0x4bd: 0x00cb, 0x4be: 0x008a, 0x4bf: 0x00cb, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x008a, 0x4c1: 0x00cb, 0x4c2: 0x00cb, 0x4c3: 0x008a, 0x4c4: 0x00cb, 0x4c5: 0x00cb, + 0x4c6: 0x008a, 0x4c7: 0x00cb, + 0x4d0: 0x00ca, 0x4d1: 0x00ca, + 0x4d2: 0x00ca, 0x4d3: 0x00ca, 0x4d4: 0x00ca, 0x4d5: 0x00ca, 0x4d6: 0x00ca, 0x4d7: 0x00ca, + 0x4d8: 0x00ca, 0x4d9: 0x00ca, 0x4da: 0x00ca, 0x4db: 0x00ca, 0x4dc: 0x00ca, 0x4dd: 0x00ca, + 0x4de: 0x00ca, 0x4df: 0x00ca, 0x4e0: 0x00ca, 0x4e1: 0x00ca, 0x4e2: 0x00ca, 0x4e3: 0x00ca, + 0x4e4: 0x00ca, 0x4e5: 0x00ca, 0x4e6: 0x00ca, 0x4e7: 0x00ca, 0x4e8: 0x00ca, 0x4e9: 0x00ca, + 0x4ea: 0x00ca, + 0x4f0: 0x00ca, 0x4f1: 0x00ca, 0x4f2: 0x00ca, 0x4f3: 0x0051, 0x4f4: 0x0051, + // Block 0x14, offset 0x500 + 0x500: 0x0040, 0x501: 0x0040, 0x502: 0x0040, 0x503: 0x0040, 0x504: 0x0040, 0x505: 0x0040, + 0x506: 0x0080, 0x507: 0x0080, 0x508: 0x0080, 0x509: 0x0080, 0x50a: 0x0080, 0x50b: 0x0080, + 0x50c: 0x0080, 0x50d: 0x0080, 0x50e: 0x0080, 0x50f: 0x0080, 0x510: 0x00c3, 0x511: 0x00c3, + 0x512: 0x00c3, 0x513: 0x00c3, 0x514: 0x00c3, 0x515: 0x00c3, 0x516: 0x00c3, 0x517: 0x00c3, + 0x518: 0x00c3, 0x519: 0x00c3, 0x51a: 0x00c3, 0x51b: 0x0080, 0x51c: 0x0040, + 0x51e: 0x0080, 0x51f: 0x0080, 0x520: 0x00c2, 0x521: 0x00c0, 0x522: 0x00c4, 0x523: 0x00c4, + 0x524: 0x00c4, 0x525: 0x00c4, 0x526: 0x00c2, 0x527: 0x00c4, 0x528: 0x00c2, 0x529: 0x00c4, + 0x52a: 0x00c2, 0x52b: 0x00c2, 0x52c: 0x00c2, 0x52d: 0x00c2, 0x52e: 0x00c2, 0x52f: 0x00c4, + 0x530: 0x00c4, 0x531: 0x00c4, 0x532: 0x00c4, 0x533: 0x00c2, 0x534: 0x00c2, 0x535: 0x00c2, + 0x536: 0x00c2, 0x537: 0x00c2, 0x538: 0x00c2, 0x539: 0x00c2, 0x53a: 0x00c2, 0x53b: 0x00c2, + 0x53c: 0x00c2, 0x53d: 0x00c2, 0x53e: 0x00c2, 0x53f: 0x00c2, + // Block 0x15, offset 0x540 + 0x540: 0x0040, 0x541: 0x00c2, 0x542: 0x00c2, 0x543: 0x00c2, 0x544: 0x00c2, 0x545: 0x00c2, + 0x546: 0x00c2, 0x547: 0x00c2, 0x548: 0x00c4, 0x549: 0x00c2, 0x54a: 0x00c2, 0x54b: 0x00c3, + 0x54c: 0x00c3, 0x54d: 0x00c3, 0x54e: 0x00c3, 0x54f: 0x00c3, 0x550: 0x00c3, 0x551: 0x00c3, + 0x552: 0x00c3, 0x553: 0x00c3, 0x554: 0x00c3, 0x555: 0x00c3, 0x556: 0x00c3, 0x557: 0x00c3, + 0x558: 0x00c3, 0x559: 0x00c3, 0x55a: 0x00c3, 0x55b: 0x00c3, 0x55c: 0x00c3, 0x55d: 0x00c3, + 0x55e: 0x00c3, 0x55f: 0x00c3, 0x560: 0x0053, 0x561: 0x0053, 0x562: 0x0053, 0x563: 0x0053, + 0x564: 0x0053, 0x565: 0x0053, 0x566: 0x0053, 0x567: 0x0053, 0x568: 0x0053, 0x569: 0x0053, + 0x56a: 0x0080, 0x56b: 0x0080, 0x56c: 0x0080, 0x56d: 0x0080, 0x56e: 0x00c2, 0x56f: 0x00c2, + 0x570: 0x00c3, 0x571: 0x00c4, 0x572: 0x00c4, 0x573: 0x00c4, 0x574: 0x00c0, 0x575: 0x0084, + 0x576: 0x0084, 0x577: 0x0084, 0x578: 0x0082, 0x579: 0x00c2, 0x57a: 0x00c2, 0x57b: 0x00c2, + 0x57c: 0x00c2, 0x57d: 0x00c2, 0x57e: 0x00c2, 0x57f: 0x00c2, + // Block 0x16, offset 0x580 + 0x580: 0x00c2, 0x581: 0x00c2, 0x582: 0x00c2, 0x583: 0x00c2, 0x584: 0x00c2, 0x585: 0x00c2, + 0x586: 0x00c2, 0x587: 0x00c2, 0x588: 0x00c4, 0x589: 0x00c4, 0x58a: 0x00c4, 0x58b: 0x00c4, + 0x58c: 0x00c4, 0x58d: 0x00c4, 0x58e: 0x00c4, 0x58f: 0x00c4, 0x590: 0x00c4, 0x591: 0x00c4, + 0x592: 0x00c4, 0x593: 0x00c4, 0x594: 0x00c4, 0x595: 0x00c4, 0x596: 0x00c4, 0x597: 0x00c4, + 0x598: 0x00c4, 0x599: 0x00c4, 0x59a: 0x00c2, 0x59b: 0x00c2, 0x59c: 0x00c2, 0x59d: 0x00c2, + 0x59e: 0x00c2, 0x59f: 0x00c2, 0x5a0: 0x00c2, 0x5a1: 0x00c2, 0x5a2: 0x00c2, 0x5a3: 0x00c2, + 0x5a4: 0x00c2, 0x5a5: 0x00c2, 0x5a6: 0x00c2, 0x5a7: 0x00c2, 0x5a8: 0x00c2, 0x5a9: 0x00c2, + 0x5aa: 0x00c2, 0x5ab: 0x00c2, 0x5ac: 0x00c2, 0x5ad: 0x00c2, 0x5ae: 0x00c2, 0x5af: 0x00c2, + 0x5b0: 0x00c2, 0x5b1: 0x00c2, 0x5b2: 0x00c2, 0x5b3: 0x00c2, 0x5b4: 0x00c2, 0x5b5: 0x00c2, + 0x5b6: 0x00c2, 0x5b7: 0x00c2, 0x5b8: 0x00c2, 0x5b9: 0x00c2, 0x5ba: 0x00c2, 0x5bb: 0x00c2, + 0x5bc: 0x00c2, 0x5bd: 0x00c2, 0x5be: 0x00c2, 0x5bf: 0x00c2, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x00c4, 0x5c1: 0x00c2, 0x5c2: 0x00c2, 0x5c3: 0x00c4, 0x5c4: 0x00c4, 0x5c5: 0x00c4, + 0x5c6: 0x00c4, 0x5c7: 0x00c4, 0x5c8: 0x00c4, 0x5c9: 0x00c4, 0x5ca: 0x00c4, 0x5cb: 0x00c4, + 0x5cc: 0x00c2, 0x5cd: 0x00c4, 0x5ce: 0x00c2, 0x5cf: 0x00c4, 0x5d0: 0x00c2, 0x5d1: 0x00c2, + 0x5d2: 0x00c4, 0x5d3: 0x00c4, 0x5d4: 0x0080, 0x5d5: 0x00c4, 0x5d6: 0x00c3, 0x5d7: 0x00c3, + 0x5d8: 0x00c3, 0x5d9: 0x00c3, 0x5da: 0x00c3, 0x5db: 0x00c3, 0x5dc: 0x00c3, 0x5dd: 0x0040, + 0x5de: 0x0080, 0x5df: 0x00c3, 0x5e0: 0x00c3, 0x5e1: 0x00c3, 0x5e2: 0x00c3, 0x5e3: 0x00c3, + 0x5e4: 0x00c3, 0x5e5: 0x00c0, 0x5e6: 0x00c0, 0x5e7: 0x00c3, 0x5e8: 0x00c3, 0x5e9: 0x0080, + 0x5ea: 0x00c3, 0x5eb: 0x00c3, 0x5ec: 0x00c3, 0x5ed: 0x00c3, 0x5ee: 0x00c4, 0x5ef: 0x00c4, + 0x5f0: 0x0054, 0x5f1: 0x0054, 0x5f2: 0x0054, 0x5f3: 0x0054, 0x5f4: 0x0054, 0x5f5: 0x0054, + 0x5f6: 0x0054, 0x5f7: 0x0054, 0x5f8: 0x0054, 0x5f9: 0x0054, 0x5fa: 0x00c2, 0x5fb: 0x00c2, + 0x5fc: 0x00c2, 0x5fd: 0x00c0, 0x5fe: 0x00c0, 0x5ff: 0x00c2, + // Block 0x18, offset 0x600 + 0x600: 0x0080, 0x601: 0x0080, 0x602: 0x0080, 0x603: 0x0080, 0x604: 0x0080, 0x605: 0x0080, + 0x606: 0x0080, 0x607: 0x0080, 0x608: 0x0080, 0x609: 0x0080, 0x60a: 0x0080, 0x60b: 0x0080, + 0x60c: 0x0080, 0x60d: 0x0080, 0x60f: 0x0040, 0x610: 0x00c4, 0x611: 0x00c3, + 0x612: 0x00c2, 0x613: 0x00c2, 0x614: 0x00c2, 0x615: 0x00c4, 0x616: 0x00c4, 0x617: 0x00c4, + 0x618: 0x00c4, 0x619: 0x00c4, 0x61a: 0x00c2, 0x61b: 0x00c2, 0x61c: 0x00c2, 0x61d: 0x00c2, + 0x61e: 0x00c4, 0x61f: 0x00c2, 0x620: 0x00c2, 0x621: 0x00c2, 0x622: 0x00c2, 0x623: 0x00c2, + 0x624: 0x00c2, 0x625: 0x00c2, 0x626: 0x00c2, 0x627: 0x00c2, 0x628: 0x00c4, 0x629: 0x00c2, + 0x62a: 0x00c4, 0x62b: 0x00c2, 0x62c: 0x00c4, 0x62d: 0x00c2, 0x62e: 0x00c2, 0x62f: 0x00c4, + 0x630: 0x00c3, 0x631: 0x00c3, 0x632: 0x00c3, 0x633: 0x00c3, 0x634: 0x00c3, 0x635: 0x00c3, + 0x636: 0x00c3, 0x637: 0x00c3, 0x638: 0x00c3, 0x639: 0x00c3, 0x63a: 0x00c3, 0x63b: 0x00c3, + 0x63c: 0x00c3, 0x63d: 0x00c3, 0x63e: 0x00c3, 0x63f: 0x00c3, + // Block 0x19, offset 0x640 + 0x640: 0x00c3, 0x641: 0x00c3, 0x642: 0x00c3, 0x643: 0x00c3, 0x644: 0x00c3, 0x645: 0x00c3, + 0x646: 0x00c3, 0x647: 0x00c3, 0x648: 0x00c3, 0x649: 0x00c3, 0x64a: 0x00c3, + 0x64d: 0x00c4, 0x64e: 0x00c2, 0x64f: 0x00c2, 0x650: 0x00c2, 0x651: 0x00c2, + 0x652: 0x00c2, 0x653: 0x00c2, 0x654: 0x00c2, 0x655: 0x00c2, 0x656: 0x00c2, 0x657: 0x00c2, + 0x658: 0x00c2, 0x659: 0x00c4, 0x65a: 0x00c4, 0x65b: 0x00c4, 0x65c: 0x00c2, 0x65d: 0x00c2, + 0x65e: 0x00c2, 0x65f: 0x00c2, 0x660: 0x00c2, 0x661: 0x00c2, 0x662: 0x00c2, 0x663: 0x00c2, + 0x664: 0x00c2, 0x665: 0x00c2, 0x666: 0x00c2, 0x667: 0x00c2, 0x668: 0x00c2, 0x669: 0x00c2, + 0x66a: 0x00c2, 0x66b: 0x00c4, 0x66c: 0x00c4, 0x66d: 0x00c2, 0x66e: 0x00c2, 0x66f: 0x00c2, + 0x670: 0x00c2, 0x671: 0x00c4, 0x672: 0x00c2, 0x673: 0x00c4, 0x674: 0x00c4, 0x675: 0x00c2, + 0x676: 0x00c2, 0x677: 0x00c2, 0x678: 0x00c4, 0x679: 0x00c4, 0x67a: 0x00c2, 0x67b: 0x00c2, + 0x67c: 0x00c2, 0x67d: 0x00c2, 0x67e: 0x00c2, 0x67f: 0x00c2, + // Block 0x1a, offset 0x680 + 0x680: 0x00c0, 0x681: 0x00c0, 0x682: 0x00c0, 0x683: 0x00c0, 0x684: 0x00c0, 0x685: 0x00c0, + 0x686: 0x00c0, 0x687: 0x00c0, 0x688: 0x00c0, 0x689: 0x00c0, 0x68a: 0x00c0, 0x68b: 0x00c0, + 0x68c: 0x00c0, 0x68d: 0x00c0, 0x68e: 0x00c0, 0x68f: 0x00c0, 0x690: 0x00c0, 0x691: 0x00c0, + 0x692: 0x00c0, 0x693: 0x00c0, 0x694: 0x00c0, 0x695: 0x00c0, 0x696: 0x00c0, 0x697: 0x00c0, + 0x698: 0x00c0, 0x699: 0x00c0, 0x69a: 0x00c0, 0x69b: 0x00c0, 0x69c: 0x00c0, 0x69d: 0x00c0, + 0x69e: 0x00c0, 0x69f: 0x00c0, 0x6a0: 0x00c0, 0x6a1: 0x00c0, 0x6a2: 0x00c0, 0x6a3: 0x00c0, + 0x6a4: 0x00c0, 0x6a5: 0x00c0, 0x6a6: 0x00c3, 0x6a7: 0x00c3, 0x6a8: 0x00c3, 0x6a9: 0x00c3, + 0x6aa: 0x00c3, 0x6ab: 0x00c3, 0x6ac: 0x00c3, 0x6ad: 0x00c3, 0x6ae: 0x00c3, 0x6af: 0x00c3, + 0x6b0: 0x00c3, 0x6b1: 0x00c0, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x00c0, 0x6c1: 0x00c0, 0x6c2: 0x00c0, 0x6c3: 0x00c0, 0x6c4: 0x00c0, 0x6c5: 0x00c0, + 0x6c6: 0x00c0, 0x6c7: 0x00c0, 0x6c8: 0x00c0, 0x6c9: 0x00c0, 0x6ca: 0x00c2, 0x6cb: 0x00c2, + 0x6cc: 0x00c2, 0x6cd: 0x00c2, 0x6ce: 0x00c2, 0x6cf: 0x00c2, 0x6d0: 0x00c2, 0x6d1: 0x00c2, + 0x6d2: 0x00c2, 0x6d3: 0x00c2, 0x6d4: 0x00c2, 0x6d5: 0x00c2, 0x6d6: 0x00c2, 0x6d7: 0x00c2, + 0x6d8: 0x00c2, 0x6d9: 0x00c2, 0x6da: 0x00c2, 0x6db: 0x00c2, 0x6dc: 0x00c2, 0x6dd: 0x00c2, + 0x6de: 0x00c2, 0x6df: 0x00c2, 0x6e0: 0x00c2, 0x6e1: 0x00c2, 0x6e2: 0x00c2, 0x6e3: 0x00c2, + 0x6e4: 0x00c2, 0x6e5: 0x00c2, 0x6e6: 0x00c2, 0x6e7: 0x00c2, 0x6e8: 0x00c2, 0x6e9: 0x00c2, + 0x6ea: 0x00c2, 0x6eb: 0x00c3, 0x6ec: 0x00c3, 0x6ed: 0x00c3, 0x6ee: 0x00c3, 0x6ef: 0x00c3, + 0x6f0: 0x00c3, 0x6f1: 0x00c3, 0x6f2: 0x00c3, 0x6f3: 0x00c3, 0x6f4: 0x00c0, 0x6f5: 0x00c0, + 0x6f6: 0x0080, 0x6f7: 0x0080, 0x6f8: 0x0080, 0x6f9: 0x0080, 0x6fa: 0x0040, + // Block 0x1c, offset 0x700 + 0x700: 0x00c0, 0x701: 0x00c0, 0x702: 0x00c0, 0x703: 0x00c0, 0x704: 0x00c0, 0x705: 0x00c0, + 0x706: 0x00c0, 0x707: 0x00c0, 0x708: 0x00c0, 0x709: 0x00c0, 0x70a: 0x00c0, 0x70b: 0x00c0, + 0x70c: 0x00c0, 0x70d: 0x00c0, 0x70e: 0x00c0, 0x70f: 0x00c0, 0x710: 0x00c0, 0x711: 0x00c0, + 0x712: 0x00c0, 0x713: 0x00c0, 0x714: 0x00c0, 0x715: 0x00c0, 0x716: 0x00c3, 0x717: 0x00c3, + 0x718: 0x00c3, 0x719: 0x00c3, 0x71a: 0x00c0, 0x71b: 0x00c3, 0x71c: 0x00c3, 0x71d: 0x00c3, + 0x71e: 0x00c3, 0x71f: 0x00c3, 0x720: 0x00c3, 0x721: 0x00c3, 0x722: 0x00c3, 0x723: 0x00c3, + 0x724: 0x00c0, 0x725: 0x00c3, 0x726: 0x00c3, 0x727: 0x00c3, 0x728: 0x00c0, 0x729: 0x00c3, + 0x72a: 0x00c3, 0x72b: 0x00c3, 0x72c: 0x00c3, 0x72d: 0x00c3, + 0x730: 0x0080, 0x731: 0x0080, 0x732: 0x0080, 0x733: 0x0080, 0x734: 0x0080, 0x735: 0x0080, + 0x736: 0x0080, 0x737: 0x0080, 0x738: 0x0080, 0x739: 0x0080, 0x73a: 0x0080, 0x73b: 0x0080, + 0x73c: 0x0080, 0x73d: 0x0080, 0x73e: 0x0080, + // Block 0x1d, offset 0x740 + 0x740: 0x00c4, 0x741: 0x00c2, 0x742: 0x00c2, 0x743: 0x00c2, 0x744: 0x00c2, 0x745: 0x00c2, + 0x746: 0x00c4, 0x747: 0x00c4, 0x748: 0x00c2, 0x749: 0x00c4, 0x74a: 0x00c2, 0x74b: 0x00c2, + 0x74c: 0x00c2, 0x74d: 0x00c2, 0x74e: 0x00c2, 0x74f: 0x00c2, 0x750: 0x00c2, 0x751: 0x00c2, + 0x752: 0x00c2, 0x753: 0x00c2, 0x754: 0x00c4, 0x755: 0x00c2, 0x756: 0x00c0, 0x757: 0x00c0, + 0x758: 0x00c0, 0x759: 0x00c3, 0x75a: 0x00c3, 0x75b: 0x00c3, + 0x75e: 0x0080, + // Block 0x1e, offset 0x780 + 0x7a0: 0x00c2, 0x7a1: 0x00c2, 0x7a2: 0x00c2, 0x7a3: 0x00c2, + 0x7a4: 0x00c2, 0x7a5: 0x00c2, 0x7a6: 0x00c2, 0x7a7: 0x00c2, 0x7a8: 0x00c2, 0x7a9: 0x00c2, + 0x7aa: 0x00c4, 0x7ab: 0x00c4, 0x7ac: 0x00c4, 0x7ad: 0x00c0, 0x7ae: 0x00c4, 0x7af: 0x00c2, + 0x7b0: 0x00c2, 0x7b1: 0x00c4, 0x7b2: 0x00c4, 0x7b3: 0x00c2, 0x7b4: 0x00c2, + 0x7b6: 0x00c2, 0x7b7: 0x00c2, 0x7b8: 0x00c2, 0x7b9: 0x00c4, 0x7ba: 0x00c2, 0x7bb: 0x00c2, + 0x7bc: 0x00c2, 0x7bd: 0x00c2, + // Block 0x1f, offset 0x7c0 + 0x7d4: 0x00c3, 0x7d5: 0x00c3, 0x7d6: 0x00c3, 0x7d7: 0x00c3, + 0x7d8: 0x00c3, 0x7d9: 0x00c3, 0x7da: 0x00c3, 0x7db: 0x00c3, 0x7dc: 0x00c3, 0x7dd: 0x00c3, + 0x7de: 0x00c3, 0x7df: 0x00c3, 0x7e0: 0x00c3, 0x7e1: 0x00c3, 0x7e2: 0x0040, 0x7e3: 0x00c3, + 0x7e4: 0x00c3, 0x7e5: 0x00c3, 0x7e6: 0x00c3, 0x7e7: 0x00c3, 0x7e8: 0x00c3, 0x7e9: 0x00c3, + 0x7ea: 0x00c3, 0x7eb: 0x00c3, 0x7ec: 0x00c3, 0x7ed: 0x00c3, 0x7ee: 0x00c3, 0x7ef: 0x00c3, + 0x7f0: 0x00c3, 0x7f1: 0x00c3, 0x7f2: 0x00c3, 0x7f3: 0x00c3, 0x7f4: 0x00c3, 0x7f5: 0x00c3, + 0x7f6: 0x00c3, 0x7f7: 0x00c3, 0x7f8: 0x00c3, 0x7f9: 0x00c3, 0x7fa: 0x00c3, 0x7fb: 0x00c3, + 0x7fc: 0x00c3, 0x7fd: 0x00c3, 0x7fe: 0x00c3, 0x7ff: 0x00c3, + // Block 0x20, offset 0x800 + 0x800: 0x00c3, 0x801: 0x00c3, 0x802: 0x00c3, 0x803: 0x00c0, 0x804: 0x00c0, 0x805: 0x00c0, + 0x806: 0x00c0, 0x807: 0x00c0, 0x808: 0x00c0, 0x809: 0x00c0, 0x80a: 0x00c0, 0x80b: 0x00c0, + 0x80c: 0x00c0, 0x80d: 0x00c0, 0x80e: 0x00c0, 0x80f: 0x00c0, 0x810: 0x00c0, 0x811: 0x00c0, + 0x812: 0x00c0, 0x813: 0x00c0, 0x814: 0x00c0, 0x815: 0x00c0, 0x816: 0x00c0, 0x817: 0x00c0, + 0x818: 0x00c0, 0x819: 0x00c0, 0x81a: 0x00c0, 0x81b: 0x00c0, 0x81c: 0x00c0, 0x81d: 0x00c0, + 0x81e: 0x00c0, 0x81f: 0x00c0, 0x820: 0x00c0, 0x821: 0x00c0, 0x822: 0x00c0, 0x823: 0x00c0, + 0x824: 0x00c0, 0x825: 0x00c0, 0x826: 0x00c0, 0x827: 0x00c0, 0x828: 0x00c0, 0x829: 0x00c0, + 0x82a: 0x00c0, 0x82b: 0x00c0, 0x82c: 0x00c0, 0x82d: 0x00c0, 0x82e: 0x00c0, 0x82f: 0x00c0, + 0x830: 0x00c0, 0x831: 0x00c0, 0x832: 0x00c0, 0x833: 0x00c0, 0x834: 0x00c0, 0x835: 0x00c0, + 0x836: 0x00c0, 0x837: 0x00c0, 0x838: 0x00c0, 0x839: 0x00c0, 0x83a: 0x00c3, 0x83b: 0x00c0, + 0x83c: 0x00c3, 0x83d: 0x00c0, 0x83e: 0x00c0, 0x83f: 0x00c0, + // Block 0x21, offset 0x840 + 0x840: 0x00c0, 0x841: 0x00c3, 0x842: 0x00c3, 0x843: 0x00c3, 0x844: 0x00c3, 0x845: 0x00c3, + 0x846: 0x00c3, 0x847: 0x00c3, 0x848: 0x00c3, 0x849: 0x00c0, 0x84a: 0x00c0, 0x84b: 0x00c0, + 0x84c: 0x00c0, 0x84d: 0x00c6, 0x84e: 0x00c0, 0x84f: 0x00c0, 0x850: 0x00c0, 0x851: 0x00c3, + 0x852: 0x00c3, 0x853: 0x00c3, 0x854: 0x00c3, 0x855: 0x00c3, 0x856: 0x00c3, 0x857: 0x00c3, + 0x858: 0x0080, 0x859: 0x0080, 0x85a: 0x0080, 0x85b: 0x0080, 0x85c: 0x0080, 0x85d: 0x0080, + 0x85e: 0x0080, 0x85f: 0x0080, 0x860: 0x00c0, 0x861: 0x00c0, 0x862: 0x00c3, 0x863: 0x00c3, + 0x864: 0x0080, 0x865: 0x0080, 0x866: 0x00c0, 0x867: 0x00c0, 0x868: 0x00c0, 0x869: 0x00c0, + 0x86a: 0x00c0, 0x86b: 0x00c0, 0x86c: 0x00c0, 0x86d: 0x00c0, 0x86e: 0x00c0, 0x86f: 0x00c0, + 0x870: 0x0080, 0x871: 0x00c0, 0x872: 0x00c0, 0x873: 0x00c0, 0x874: 0x00c0, 0x875: 0x00c0, + 0x876: 0x00c0, 0x877: 0x00c0, 0x878: 0x00c0, 0x879: 0x00c0, 0x87a: 0x00c0, 0x87b: 0x00c0, + 0x87c: 0x00c0, 0x87d: 0x00c0, 0x87e: 0x00c0, 0x87f: 0x00c0, + // Block 0x22, offset 0x880 + 0x880: 0x00c0, 0x881: 0x00c3, 0x882: 0x00c0, 0x883: 0x00c0, 0x885: 0x00c0, + 0x886: 0x00c0, 0x887: 0x00c0, 0x888: 0x00c0, 0x889: 0x00c0, 0x88a: 0x00c0, 0x88b: 0x00c0, + 0x88c: 0x00c0, 0x88f: 0x00c0, 0x890: 0x00c0, + 0x893: 0x00c0, 0x894: 0x00c0, 0x895: 0x00c0, 0x896: 0x00c0, 0x897: 0x00c0, + 0x898: 0x00c0, 0x899: 0x00c0, 0x89a: 0x00c0, 0x89b: 0x00c0, 0x89c: 0x00c0, 0x89d: 0x00c0, + 0x89e: 0x00c0, 0x89f: 0x00c0, 0x8a0: 0x00c0, 0x8a1: 0x00c0, 0x8a2: 0x00c0, 0x8a3: 0x00c0, + 0x8a4: 0x00c0, 0x8a5: 0x00c0, 0x8a6: 0x00c0, 0x8a7: 0x00c0, 0x8a8: 0x00c0, + 0x8aa: 0x00c0, 0x8ab: 0x00c0, 0x8ac: 0x00c0, 0x8ad: 0x00c0, 0x8ae: 0x00c0, 0x8af: 0x00c0, + 0x8b0: 0x00c0, 0x8b2: 0x00c0, + 0x8b6: 0x00c0, 0x8b7: 0x00c0, 0x8b8: 0x00c0, 0x8b9: 0x00c0, + 0x8bc: 0x00c3, 0x8bd: 0x00c0, 0x8be: 0x00c0, 0x8bf: 0x00c0, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x00c0, 0x8c1: 0x00c3, 0x8c2: 0x00c3, 0x8c3: 0x00c3, 0x8c4: 0x00c3, + 0x8c7: 0x00c0, 0x8c8: 0x00c0, 0x8cb: 0x00c0, + 0x8cc: 0x00c0, 0x8cd: 0x00c6, 0x8ce: 0x00c0, + 0x8d7: 0x00c0, + 0x8dc: 0x0080, 0x8dd: 0x0080, + 0x8df: 0x0080, 0x8e0: 0x00c0, 0x8e1: 0x00c0, 0x8e2: 0x00c3, 0x8e3: 0x00c3, + 0x8e6: 0x00c0, 0x8e7: 0x00c0, 0x8e8: 0x00c0, 0x8e9: 0x00c0, + 0x8ea: 0x00c0, 0x8eb: 0x00c0, 0x8ec: 0x00c0, 0x8ed: 0x00c0, 0x8ee: 0x00c0, 0x8ef: 0x00c0, + 0x8f0: 0x00c0, 0x8f1: 0x00c0, 0x8f2: 0x0080, 0x8f3: 0x0080, 0x8f4: 0x0080, 0x8f5: 0x0080, + 0x8f6: 0x0080, 0x8f7: 0x0080, 0x8f8: 0x0080, 0x8f9: 0x0080, 0x8fa: 0x0080, 0x8fb: 0x0080, + // Block 0x24, offset 0x900 + 0x901: 0x00c3, 0x902: 0x00c3, 0x903: 0x00c0, 0x905: 0x00c0, + 0x906: 0x00c0, 0x907: 0x00c0, 0x908: 0x00c0, 0x909: 0x00c0, 0x90a: 0x00c0, + 0x90f: 0x00c0, 0x910: 0x00c0, + 0x913: 0x00c0, 0x914: 0x00c0, 0x915: 0x00c0, 0x916: 0x00c0, 0x917: 0x00c0, + 0x918: 0x00c0, 0x919: 0x00c0, 0x91a: 0x00c0, 0x91b: 0x00c0, 0x91c: 0x00c0, 0x91d: 0x00c0, + 0x91e: 0x00c0, 0x91f: 0x00c0, 0x920: 0x00c0, 0x921: 0x00c0, 0x922: 0x00c0, 0x923: 0x00c0, + 0x924: 0x00c0, 0x925: 0x00c0, 0x926: 0x00c0, 0x927: 0x00c0, 0x928: 0x00c0, + 0x92a: 0x00c0, 0x92b: 0x00c0, 0x92c: 0x00c0, 0x92d: 0x00c0, 0x92e: 0x00c0, 0x92f: 0x00c0, + 0x930: 0x00c0, 0x932: 0x00c0, 0x933: 0x0080, 0x935: 0x00c0, + 0x936: 0x0080, 0x938: 0x00c0, 0x939: 0x00c0, + 0x93c: 0x00c3, 0x93e: 0x00c0, 0x93f: 0x00c0, + // Block 0x25, offset 0x940 + 0x940: 0x00c0, 0x941: 0x00c3, 0x942: 0x00c3, + 0x947: 0x00c3, 0x948: 0x00c3, 0x94b: 0x00c3, + 0x94c: 0x00c3, 0x94d: 0x00c6, 0x951: 0x00c3, + 0x959: 0x0080, 0x95a: 0x0080, 0x95b: 0x0080, 0x95c: 0x00c0, + 0x95e: 0x0080, + 0x966: 0x00c0, 0x967: 0x00c0, 0x968: 0x00c0, 0x969: 0x00c0, + 0x96a: 0x00c0, 0x96b: 0x00c0, 0x96c: 0x00c0, 0x96d: 0x00c0, 0x96e: 0x00c0, 0x96f: 0x00c0, + 0x970: 0x00c3, 0x971: 0x00c3, 0x972: 0x00c0, 0x973: 0x00c0, 0x974: 0x00c0, 0x975: 0x00c3, + // Block 0x26, offset 0x980 + 0x981: 0x00c3, 0x982: 0x00c3, 0x983: 0x00c0, 0x985: 0x00c0, + 0x986: 0x00c0, 0x987: 0x00c0, 0x988: 0x00c0, 0x989: 0x00c0, 0x98a: 0x00c0, 0x98b: 0x00c0, + 0x98c: 0x00c0, 0x98d: 0x00c0, 0x98f: 0x00c0, 0x990: 0x00c0, 0x991: 0x00c0, + 0x993: 0x00c0, 0x994: 0x00c0, 0x995: 0x00c0, 0x996: 0x00c0, 0x997: 0x00c0, + 0x998: 0x00c0, 0x999: 0x00c0, 0x99a: 0x00c0, 0x99b: 0x00c0, 0x99c: 0x00c0, 0x99d: 0x00c0, + 0x99e: 0x00c0, 0x99f: 0x00c0, 0x9a0: 0x00c0, 0x9a1: 0x00c0, 0x9a2: 0x00c0, 0x9a3: 0x00c0, + 0x9a4: 0x00c0, 0x9a5: 0x00c0, 0x9a6: 0x00c0, 0x9a7: 0x00c0, 0x9a8: 0x00c0, + 0x9aa: 0x00c0, 0x9ab: 0x00c0, 0x9ac: 0x00c0, 0x9ad: 0x00c0, 0x9ae: 0x00c0, 0x9af: 0x00c0, + 0x9b0: 0x00c0, 0x9b2: 0x00c0, 0x9b3: 0x00c0, 0x9b5: 0x00c0, + 0x9b6: 0x00c0, 0x9b7: 0x00c0, 0x9b8: 0x00c0, 0x9b9: 0x00c0, + 0x9bc: 0x00c3, 0x9bd: 0x00c0, 0x9be: 0x00c0, 0x9bf: 0x00c0, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x00c0, 0x9c1: 0x00c3, 0x9c2: 0x00c3, 0x9c3: 0x00c3, 0x9c4: 0x00c3, 0x9c5: 0x00c3, + 0x9c7: 0x00c3, 0x9c8: 0x00c3, 0x9c9: 0x00c0, 0x9cb: 0x00c0, + 0x9cc: 0x00c0, 0x9cd: 0x00c6, 0x9d0: 0x00c0, + 0x9e0: 0x00c0, 0x9e1: 0x00c0, 0x9e2: 0x00c3, 0x9e3: 0x00c3, + 0x9e6: 0x00c0, 0x9e7: 0x00c0, 0x9e8: 0x00c0, 0x9e9: 0x00c0, + 0x9ea: 0x00c0, 0x9eb: 0x00c0, 0x9ec: 0x00c0, 0x9ed: 0x00c0, 0x9ee: 0x00c0, 0x9ef: 0x00c0, + 0x9f0: 0x0080, 0x9f1: 0x0080, + 0x9f9: 0x00c0, + // Block 0x28, offset 0xa00 + 0xa01: 0x00c3, 0xa02: 0x00c0, 0xa03: 0x00c0, 0xa05: 0x00c0, + 0xa06: 0x00c0, 0xa07: 0x00c0, 0xa08: 0x00c0, 0xa09: 0x00c0, 0xa0a: 0x00c0, 0xa0b: 0x00c0, + 0xa0c: 0x00c0, 0xa0f: 0x00c0, 0xa10: 0x00c0, + 0xa13: 0x00c0, 0xa14: 0x00c0, 0xa15: 0x00c0, 0xa16: 0x00c0, 0xa17: 0x00c0, + 0xa18: 0x00c0, 0xa19: 0x00c0, 0xa1a: 0x00c0, 0xa1b: 0x00c0, 0xa1c: 0x00c0, 0xa1d: 0x00c0, + 0xa1e: 0x00c0, 0xa1f: 0x00c0, 0xa20: 0x00c0, 0xa21: 0x00c0, 0xa22: 0x00c0, 0xa23: 0x00c0, + 0xa24: 0x00c0, 0xa25: 0x00c0, 0xa26: 0x00c0, 0xa27: 0x00c0, 0xa28: 0x00c0, + 0xa2a: 0x00c0, 0xa2b: 0x00c0, 0xa2c: 0x00c0, 0xa2d: 0x00c0, 0xa2e: 0x00c0, 0xa2f: 0x00c0, + 0xa30: 0x00c0, 0xa32: 0x00c0, 0xa33: 0x00c0, 0xa35: 0x00c0, + 0xa36: 0x00c0, 0xa37: 0x00c0, 0xa38: 0x00c0, 0xa39: 0x00c0, + 0xa3c: 0x00c3, 0xa3d: 0x00c0, 0xa3e: 0x00c0, 0xa3f: 0x00c3, + // Block 0x29, offset 0xa40 + 0xa40: 0x00c0, 0xa41: 0x00c3, 0xa42: 0x00c3, 0xa43: 0x00c3, 0xa44: 0x00c3, + 0xa47: 0x00c0, 0xa48: 0x00c0, 0xa4b: 0x00c0, + 0xa4c: 0x00c0, 0xa4d: 0x00c6, + 0xa56: 0x00c3, 0xa57: 0x00c0, + 0xa5c: 0x0080, 0xa5d: 0x0080, + 0xa5f: 0x00c0, 0xa60: 0x00c0, 0xa61: 0x00c0, 0xa62: 0x00c3, 0xa63: 0x00c3, + 0xa66: 0x00c0, 0xa67: 0x00c0, 0xa68: 0x00c0, 0xa69: 0x00c0, + 0xa6a: 0x00c0, 0xa6b: 0x00c0, 0xa6c: 0x00c0, 0xa6d: 0x00c0, 0xa6e: 0x00c0, 0xa6f: 0x00c0, + 0xa70: 0x0080, 0xa71: 0x00c0, 0xa72: 0x0080, 0xa73: 0x0080, 0xa74: 0x0080, 0xa75: 0x0080, + 0xa76: 0x0080, 0xa77: 0x0080, + // Block 0x2a, offset 0xa80 + 0xa82: 0x00c3, 0xa83: 0x00c0, 0xa85: 0x00c0, + 0xa86: 0x00c0, 0xa87: 0x00c0, 0xa88: 0x00c0, 0xa89: 0x00c0, 0xa8a: 0x00c0, + 0xa8e: 0x00c0, 0xa8f: 0x00c0, 0xa90: 0x00c0, + 0xa92: 0x00c0, 0xa93: 0x00c0, 0xa94: 0x00c0, 0xa95: 0x00c0, + 0xa99: 0x00c0, 0xa9a: 0x00c0, 0xa9c: 0x00c0, + 0xa9e: 0x00c0, 0xa9f: 0x00c0, 0xaa3: 0x00c0, + 0xaa4: 0x00c0, 0xaa8: 0x00c0, 0xaa9: 0x00c0, + 0xaaa: 0x00c0, 0xaae: 0x00c0, 0xaaf: 0x00c0, + 0xab0: 0x00c0, 0xab1: 0x00c0, 0xab2: 0x00c0, 0xab3: 0x00c0, 0xab4: 0x00c0, 0xab5: 0x00c0, + 0xab6: 0x00c0, 0xab7: 0x00c0, 0xab8: 0x00c0, 0xab9: 0x00c0, + 0xabe: 0x00c0, 0xabf: 0x00c0, + // Block 0x2b, offset 0xac0 + 0xac0: 0x00c3, 0xac1: 0x00c0, 0xac2: 0x00c0, + 0xac6: 0x00c0, 0xac7: 0x00c0, 0xac8: 0x00c0, 0xaca: 0x00c0, 0xacb: 0x00c0, + 0xacc: 0x00c0, 0xacd: 0x00c6, 0xad0: 0x00c0, + 0xad7: 0x00c0, + 0xae6: 0x00c0, 0xae7: 0x00c0, 0xae8: 0x00c0, 0xae9: 0x00c0, + 0xaea: 0x00c0, 0xaeb: 0x00c0, 0xaec: 0x00c0, 0xaed: 0x00c0, 0xaee: 0x00c0, 0xaef: 0x00c0, + 0xaf0: 0x0080, 0xaf1: 0x0080, 0xaf2: 0x0080, 0xaf3: 0x0080, 0xaf4: 0x0080, 0xaf5: 0x0080, + 0xaf6: 0x0080, 0xaf7: 0x0080, 0xaf8: 0x0080, 0xaf9: 0x0080, 0xafa: 0x0080, + // Block 0x2c, offset 0xb00 + 0xb00: 0x00c3, 0xb01: 0x00c0, 0xb02: 0x00c0, 0xb03: 0x00c0, 0xb05: 0x00c0, + 0xb06: 0x00c0, 0xb07: 0x00c0, 0xb08: 0x00c0, 0xb09: 0x00c0, 0xb0a: 0x00c0, 0xb0b: 0x00c0, + 0xb0c: 0x00c0, 0xb0e: 0x00c0, 0xb0f: 0x00c0, 0xb10: 0x00c0, + 0xb12: 0x00c0, 0xb13: 0x00c0, 0xb14: 0x00c0, 0xb15: 0x00c0, 0xb16: 0x00c0, 0xb17: 0x00c0, + 0xb18: 0x00c0, 0xb19: 0x00c0, 0xb1a: 0x00c0, 0xb1b: 0x00c0, 0xb1c: 0x00c0, 0xb1d: 0x00c0, + 0xb1e: 0x00c0, 0xb1f: 0x00c0, 0xb20: 0x00c0, 0xb21: 0x00c0, 0xb22: 0x00c0, 0xb23: 0x00c0, + 0xb24: 0x00c0, 0xb25: 0x00c0, 0xb26: 0x00c0, 0xb27: 0x00c0, 0xb28: 0x00c0, + 0xb2a: 0x00c0, 0xb2b: 0x00c0, 0xb2c: 0x00c0, 0xb2d: 0x00c0, 0xb2e: 0x00c0, 0xb2f: 0x00c0, + 0xb30: 0x00c0, 0xb31: 0x00c0, 0xb32: 0x00c0, 0xb33: 0x00c0, 0xb34: 0x00c0, 0xb35: 0x00c0, + 0xb36: 0x00c0, 0xb37: 0x00c0, 0xb38: 0x00c0, 0xb39: 0x00c0, + 0xb3d: 0x00c0, 0xb3e: 0x00c3, 0xb3f: 0x00c3, + // Block 0x2d, offset 0xb40 + 0xb40: 0x00c3, 0xb41: 0x00c0, 0xb42: 0x00c0, 0xb43: 0x00c0, 0xb44: 0x00c0, + 0xb46: 0x00c3, 0xb47: 0x00c3, 0xb48: 0x00c3, 0xb4a: 0x00c3, 0xb4b: 0x00c3, + 0xb4c: 0x00c3, 0xb4d: 0x00c6, + 0xb55: 0x00c3, 0xb56: 0x00c3, + 0xb58: 0x00c0, 0xb59: 0x00c0, 0xb5a: 0x00c0, + 0xb60: 0x00c0, 0xb61: 0x00c0, 0xb62: 0x00c3, 0xb63: 0x00c3, + 0xb66: 0x00c0, 0xb67: 0x00c0, 0xb68: 0x00c0, 0xb69: 0x00c0, + 0xb6a: 0x00c0, 0xb6b: 0x00c0, 0xb6c: 0x00c0, 0xb6d: 0x00c0, 0xb6e: 0x00c0, 0xb6f: 0x00c0, + 0xb78: 0x0080, 0xb79: 0x0080, 0xb7a: 0x0080, 0xb7b: 0x0080, + 0xb7c: 0x0080, 0xb7d: 0x0080, 0xb7e: 0x0080, 0xb7f: 0x0080, + // Block 0x2e, offset 0xb80 + 0xb80: 0x00c0, 0xb81: 0x00c3, 0xb82: 0x00c0, 0xb83: 0x00c0, 0xb85: 0x00c0, + 0xb86: 0x00c0, 0xb87: 0x00c0, 0xb88: 0x00c0, 0xb89: 0x00c0, 0xb8a: 0x00c0, 0xb8b: 0x00c0, + 0xb8c: 0x00c0, 0xb8e: 0x00c0, 0xb8f: 0x00c0, 0xb90: 0x00c0, + 0xb92: 0x00c0, 0xb93: 0x00c0, 0xb94: 0x00c0, 0xb95: 0x00c0, 0xb96: 0x00c0, 0xb97: 0x00c0, + 0xb98: 0x00c0, 0xb99: 0x00c0, 0xb9a: 0x00c0, 0xb9b: 0x00c0, 0xb9c: 0x00c0, 0xb9d: 0x00c0, + 0xb9e: 0x00c0, 0xb9f: 0x00c0, 0xba0: 0x00c0, 0xba1: 0x00c0, 0xba2: 0x00c0, 0xba3: 0x00c0, + 0xba4: 0x00c0, 0xba5: 0x00c0, 0xba6: 0x00c0, 0xba7: 0x00c0, 0xba8: 0x00c0, + 0xbaa: 0x00c0, 0xbab: 0x00c0, 0xbac: 0x00c0, 0xbad: 0x00c0, 0xbae: 0x00c0, 0xbaf: 0x00c0, + 0xbb0: 0x00c0, 0xbb1: 0x00c0, 0xbb2: 0x00c0, 0xbb3: 0x00c0, 0xbb5: 0x00c0, + 0xbb6: 0x00c0, 0xbb7: 0x00c0, 0xbb8: 0x00c0, 0xbb9: 0x00c0, + 0xbbc: 0x00c3, 0xbbd: 0x00c0, 0xbbe: 0x00c0, 0xbbf: 0x00c3, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x00c0, 0xbc1: 0x00c0, 0xbc2: 0x00c0, 0xbc3: 0x00c0, 0xbc4: 0x00c0, + 0xbc6: 0x00c3, 0xbc7: 0x00c0, 0xbc8: 0x00c0, 0xbca: 0x00c0, 0xbcb: 0x00c0, + 0xbcc: 0x00c3, 0xbcd: 0x00c6, + 0xbd5: 0x00c0, 0xbd6: 0x00c0, + 0xbde: 0x00c0, 0xbe0: 0x00c0, 0xbe1: 0x00c0, 0xbe2: 0x00c3, 0xbe3: 0x00c3, + 0xbe6: 0x00c0, 0xbe7: 0x00c0, 0xbe8: 0x00c0, 0xbe9: 0x00c0, + 0xbea: 0x00c0, 0xbeb: 0x00c0, 0xbec: 0x00c0, 0xbed: 0x00c0, 0xbee: 0x00c0, 0xbef: 0x00c0, + 0xbf1: 0x00c0, 0xbf2: 0x00c0, + // Block 0x30, offset 0xc00 + 0xc01: 0x00c3, 0xc02: 0x00c0, 0xc03: 0x00c0, 0xc05: 0x00c0, + 0xc06: 0x00c0, 0xc07: 0x00c0, 0xc08: 0x00c0, 0xc09: 0x00c0, 0xc0a: 0x00c0, 0xc0b: 0x00c0, + 0xc0c: 0x00c0, 0xc0e: 0x00c0, 0xc0f: 0x00c0, 0xc10: 0x00c0, + 0xc12: 0x00c0, 0xc13: 0x00c0, 0xc14: 0x00c0, 0xc15: 0x00c0, 0xc16: 0x00c0, 0xc17: 0x00c0, + 0xc18: 0x00c0, 0xc19: 0x00c0, 0xc1a: 0x00c0, 0xc1b: 0x00c0, 0xc1c: 0x00c0, 0xc1d: 0x00c0, + 0xc1e: 0x00c0, 0xc1f: 0x00c0, 0xc20: 0x00c0, 0xc21: 0x00c0, 0xc22: 0x00c0, 0xc23: 0x00c0, + 0xc24: 0x00c0, 0xc25: 0x00c0, 0xc26: 0x00c0, 0xc27: 0x00c0, 0xc28: 0x00c0, 0xc29: 0x00c0, + 0xc2a: 0x00c0, 0xc2b: 0x00c0, 0xc2c: 0x00c0, 0xc2d: 0x00c0, 0xc2e: 0x00c0, 0xc2f: 0x00c0, + 0xc30: 0x00c0, 0xc31: 0x00c0, 0xc32: 0x00c0, 0xc33: 0x00c0, 0xc34: 0x00c0, 0xc35: 0x00c0, + 0xc36: 0x00c0, 0xc37: 0x00c0, 0xc38: 0x00c0, 0xc39: 0x00c0, 0xc3a: 0x00c0, + 0xc3d: 0x00c0, 0xc3e: 0x00c0, 0xc3f: 0x00c0, + // Block 0x31, offset 0xc40 + 0xc40: 0x00c0, 0xc41: 0x00c3, 0xc42: 0x00c3, 0xc43: 0x00c3, 0xc44: 0x00c3, + 0xc46: 0x00c0, 0xc47: 0x00c0, 0xc48: 0x00c0, 0xc4a: 0x00c0, 0xc4b: 0x00c0, + 0xc4c: 0x00c0, 0xc4d: 0x00c6, 0xc4e: 0x00c0, 0xc4f: 0x0080, + 0xc54: 0x00c0, 0xc55: 0x00c0, 0xc56: 0x00c0, 0xc57: 0x00c0, + 0xc58: 0x0080, 0xc59: 0x0080, 0xc5a: 0x0080, 0xc5b: 0x0080, 0xc5c: 0x0080, 0xc5d: 0x0080, + 0xc5e: 0x0080, 0xc5f: 0x00c0, 0xc60: 0x00c0, 0xc61: 0x00c0, 0xc62: 0x00c3, 0xc63: 0x00c3, + 0xc66: 0x00c0, 0xc67: 0x00c0, 0xc68: 0x00c0, 0xc69: 0x00c0, + 0xc6a: 0x00c0, 0xc6b: 0x00c0, 0xc6c: 0x00c0, 0xc6d: 0x00c0, 0xc6e: 0x00c0, 0xc6f: 0x00c0, + 0xc70: 0x0080, 0xc71: 0x0080, 0xc72: 0x0080, 0xc73: 0x0080, 0xc74: 0x0080, 0xc75: 0x0080, + 0xc76: 0x0080, 0xc77: 0x0080, 0xc78: 0x0080, 0xc79: 0x0080, 0xc7a: 0x00c0, 0xc7b: 0x00c0, + 0xc7c: 0x00c0, 0xc7d: 0x00c0, 0xc7e: 0x00c0, 0xc7f: 0x00c0, + // Block 0x32, offset 0xc80 + 0xc82: 0x00c0, 0xc83: 0x00c0, 0xc85: 0x00c0, + 0xc86: 0x00c0, 0xc87: 0x00c0, 0xc88: 0x00c0, 0xc89: 0x00c0, 0xc8a: 0x00c0, 0xc8b: 0x00c0, + 0xc8c: 0x00c0, 0xc8d: 0x00c0, 0xc8e: 0x00c0, 0xc8f: 0x00c0, 0xc90: 0x00c0, 0xc91: 0x00c0, + 0xc92: 0x00c0, 0xc93: 0x00c0, 0xc94: 0x00c0, 0xc95: 0x00c0, 0xc96: 0x00c0, + 0xc9a: 0x00c0, 0xc9b: 0x00c0, 0xc9c: 0x00c0, 0xc9d: 0x00c0, + 0xc9e: 0x00c0, 0xc9f: 0x00c0, 0xca0: 0x00c0, 0xca1: 0x00c0, 0xca2: 0x00c0, 0xca3: 0x00c0, + 0xca4: 0x00c0, 0xca5: 0x00c0, 0xca6: 0x00c0, 0xca7: 0x00c0, 0xca8: 0x00c0, 0xca9: 0x00c0, + 0xcaa: 0x00c0, 0xcab: 0x00c0, 0xcac: 0x00c0, 0xcad: 0x00c0, 0xcae: 0x00c0, 0xcaf: 0x00c0, + 0xcb0: 0x00c0, 0xcb1: 0x00c0, 0xcb3: 0x00c0, 0xcb4: 0x00c0, 0xcb5: 0x00c0, + 0xcb6: 0x00c0, 0xcb7: 0x00c0, 0xcb8: 0x00c0, 0xcb9: 0x00c0, 0xcba: 0x00c0, 0xcbb: 0x00c0, + 0xcbd: 0x00c0, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x00c0, 0xcc1: 0x00c0, 0xcc2: 0x00c0, 0xcc3: 0x00c0, 0xcc4: 0x00c0, 0xcc5: 0x00c0, + 0xcc6: 0x00c0, 0xcca: 0x00c6, + 0xccf: 0x00c0, 0xcd0: 0x00c0, 0xcd1: 0x00c0, + 0xcd2: 0x00c3, 0xcd3: 0x00c3, 0xcd4: 0x00c3, 0xcd6: 0x00c3, + 0xcd8: 0x00c0, 0xcd9: 0x00c0, 0xcda: 0x00c0, 0xcdb: 0x00c0, 0xcdc: 0x00c0, 0xcdd: 0x00c0, + 0xcde: 0x00c0, 0xcdf: 0x00c0, + 0xce6: 0x00c0, 0xce7: 0x00c0, 0xce8: 0x00c0, 0xce9: 0x00c0, + 0xcea: 0x00c0, 0xceb: 0x00c0, 0xcec: 0x00c0, 0xced: 0x00c0, 0xcee: 0x00c0, 0xcef: 0x00c0, + 0xcf2: 0x00c0, 0xcf3: 0x00c0, 0xcf4: 0x0080, + // Block 0x34, offset 0xd00 + 0xd01: 0x00c0, 0xd02: 0x00c0, 0xd03: 0x00c0, 0xd04: 0x00c0, 0xd05: 0x00c0, + 0xd06: 0x00c0, 0xd07: 0x00c0, 0xd08: 0x00c0, 0xd09: 0x00c0, 0xd0a: 0x00c0, 0xd0b: 0x00c0, + 0xd0c: 0x00c0, 0xd0d: 0x00c0, 0xd0e: 0x00c0, 0xd0f: 0x00c0, 0xd10: 0x00c0, 0xd11: 0x00c0, + 0xd12: 0x00c0, 0xd13: 0x00c0, 0xd14: 0x00c0, 0xd15: 0x00c0, 0xd16: 0x00c0, 0xd17: 0x00c0, + 0xd18: 0x00c0, 0xd19: 0x00c0, 0xd1a: 0x00c0, 0xd1b: 0x00c0, 0xd1c: 0x00c0, 0xd1d: 0x00c0, + 0xd1e: 0x00c0, 0xd1f: 0x00c0, 0xd20: 0x00c0, 0xd21: 0x00c0, 0xd22: 0x00c0, 0xd23: 0x00c0, + 0xd24: 0x00c0, 0xd25: 0x00c0, 0xd26: 0x00c0, 0xd27: 0x00c0, 0xd28: 0x00c0, 0xd29: 0x00c0, + 0xd2a: 0x00c0, 0xd2b: 0x00c0, 0xd2c: 0x00c0, 0xd2d: 0x00c0, 0xd2e: 0x00c0, 0xd2f: 0x00c0, + 0xd30: 0x00c0, 0xd31: 0x00c3, 0xd32: 0x00c0, 0xd33: 0x0080, 0xd34: 0x00c3, 0xd35: 0x00c3, + 0xd36: 0x00c3, 0xd37: 0x00c3, 0xd38: 0x00c3, 0xd39: 0x00c3, 0xd3a: 0x00c6, + 0xd3f: 0x0080, + // Block 0x35, offset 0xd40 + 0xd40: 0x00c0, 0xd41: 0x00c0, 0xd42: 0x00c0, 0xd43: 0x00c0, 0xd44: 0x00c0, 0xd45: 0x00c0, + 0xd46: 0x00c0, 0xd47: 0x00c3, 0xd48: 0x00c3, 0xd49: 0x00c3, 0xd4a: 0x00c3, 0xd4b: 0x00c3, + 0xd4c: 0x00c3, 0xd4d: 0x00c3, 0xd4e: 0x00c3, 0xd4f: 0x0080, 0xd50: 0x00c0, 0xd51: 0x00c0, + 0xd52: 0x00c0, 0xd53: 0x00c0, 0xd54: 0x00c0, 0xd55: 0x00c0, 0xd56: 0x00c0, 0xd57: 0x00c0, + 0xd58: 0x00c0, 0xd59: 0x00c0, 0xd5a: 0x0080, 0xd5b: 0x0080, + // Block 0x36, offset 0xd80 + 0xd81: 0x00c0, 0xd82: 0x00c0, 0xd84: 0x00c0, + 0xd87: 0x00c0, 0xd88: 0x00c0, 0xd8a: 0x00c0, + 0xd8d: 0x00c0, + 0xd94: 0x00c0, 0xd95: 0x00c0, 0xd96: 0x00c0, 0xd97: 0x00c0, + 0xd99: 0x00c0, 0xd9a: 0x00c0, 0xd9b: 0x00c0, 0xd9c: 0x00c0, 0xd9d: 0x00c0, + 0xd9e: 0x00c0, 0xd9f: 0x00c0, 0xda1: 0x00c0, 0xda2: 0x00c0, 0xda3: 0x00c0, + 0xda5: 0x00c0, 0xda7: 0x00c0, + 0xdaa: 0x00c0, 0xdab: 0x00c0, 0xdad: 0x00c0, 0xdae: 0x00c0, 0xdaf: 0x00c0, + 0xdb0: 0x00c0, 0xdb1: 0x00c3, 0xdb2: 0x00c0, 0xdb3: 0x0080, 0xdb4: 0x00c3, 0xdb5: 0x00c3, + 0xdb6: 0x00c3, 0xdb7: 0x00c3, 0xdb8: 0x00c3, 0xdb9: 0x00c3, 0xdbb: 0x00c3, + 0xdbc: 0x00c3, 0xdbd: 0x00c0, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x00c0, 0xdc1: 0x00c0, 0xdc2: 0x00c0, 0xdc3: 0x00c0, 0xdc4: 0x00c0, + 0xdc6: 0x00c0, 0xdc8: 0x00c3, 0xdc9: 0x00c3, 0xdca: 0x00c3, 0xdcb: 0x00c3, + 0xdcc: 0x00c3, 0xdcd: 0x00c3, 0xdd0: 0x00c0, 0xdd1: 0x00c0, + 0xdd2: 0x00c0, 0xdd3: 0x00c0, 0xdd4: 0x00c0, 0xdd5: 0x00c0, 0xdd6: 0x00c0, 0xdd7: 0x00c0, + 0xdd8: 0x00c0, 0xdd9: 0x00c0, 0xddc: 0x0080, 0xddd: 0x0080, + 0xdde: 0x00c0, 0xddf: 0x00c0, + // Block 0x38, offset 0xe00 + 0xe00: 0x00c0, 0xe01: 0x0080, 0xe02: 0x0080, 0xe03: 0x0080, 0xe04: 0x0080, 0xe05: 0x0080, + 0xe06: 0x0080, 0xe07: 0x0080, 0xe08: 0x0080, 0xe09: 0x0080, 0xe0a: 0x0080, 0xe0b: 0x00c0, + 0xe0c: 0x0080, 0xe0d: 0x0080, 0xe0e: 0x0080, 0xe0f: 0x0080, 0xe10: 0x0080, 0xe11: 0x0080, + 0xe12: 0x0080, 0xe13: 0x0080, 0xe14: 0x0080, 0xe15: 0x0080, 0xe16: 0x0080, 0xe17: 0x0080, + 0xe18: 0x00c3, 0xe19: 0x00c3, 0xe1a: 0x0080, 0xe1b: 0x0080, 0xe1c: 0x0080, 0xe1d: 0x0080, + 0xe1e: 0x0080, 0xe1f: 0x0080, 0xe20: 0x00c0, 0xe21: 0x00c0, 0xe22: 0x00c0, 0xe23: 0x00c0, + 0xe24: 0x00c0, 0xe25: 0x00c0, 0xe26: 0x00c0, 0xe27: 0x00c0, 0xe28: 0x00c0, 0xe29: 0x00c0, + 0xe2a: 0x0080, 0xe2b: 0x0080, 0xe2c: 0x0080, 0xe2d: 0x0080, 0xe2e: 0x0080, 0xe2f: 0x0080, + 0xe30: 0x0080, 0xe31: 0x0080, 0xe32: 0x0080, 0xe33: 0x0080, 0xe34: 0x0080, 0xe35: 0x00c3, + 0xe36: 0x0080, 0xe37: 0x00c3, 0xe38: 0x0080, 0xe39: 0x00c3, 0xe3a: 0x0080, 0xe3b: 0x0080, + 0xe3c: 0x0080, 0xe3d: 0x0080, 0xe3e: 0x00c0, 0xe3f: 0x00c0, + // Block 0x39, offset 0xe40 + 0xe40: 0x00c0, 0xe41: 0x00c0, 0xe42: 0x00c0, 0xe43: 0x0080, 0xe44: 0x00c0, 0xe45: 0x00c0, + 0xe46: 0x00c0, 0xe47: 0x00c0, 0xe49: 0x00c0, 0xe4a: 0x00c0, 0xe4b: 0x00c0, + 0xe4c: 0x00c0, 0xe4d: 0x0080, 0xe4e: 0x00c0, 0xe4f: 0x00c0, 0xe50: 0x00c0, 0xe51: 0x00c0, + 0xe52: 0x0080, 0xe53: 0x00c0, 0xe54: 0x00c0, 0xe55: 0x00c0, 0xe56: 0x00c0, 0xe57: 0x0080, + 0xe58: 0x00c0, 0xe59: 0x00c0, 0xe5a: 0x00c0, 0xe5b: 0x00c0, 0xe5c: 0x0080, 0xe5d: 0x00c0, + 0xe5e: 0x00c0, 0xe5f: 0x00c0, 0xe60: 0x00c0, 0xe61: 0x00c0, 0xe62: 0x00c0, 0xe63: 0x00c0, + 0xe64: 0x00c0, 0xe65: 0x00c0, 0xe66: 0x00c0, 0xe67: 0x00c0, 0xe68: 0x00c0, 0xe69: 0x0080, + 0xe6a: 0x00c0, 0xe6b: 0x00c0, 0xe6c: 0x00c0, + 0xe71: 0x00c3, 0xe72: 0x00c3, 0xe73: 0x0083, 0xe74: 0x00c3, 0xe75: 0x0083, + 0xe76: 0x0083, 0xe77: 0x0083, 0xe78: 0x0083, 0xe79: 0x0083, 0xe7a: 0x00c3, 0xe7b: 0x00c3, + 0xe7c: 0x00c3, 0xe7d: 0x00c3, 0xe7e: 0x00c3, 0xe7f: 0x00c0, + // Block 0x3a, offset 0xe80 + 0xe80: 0x00c3, 0xe81: 0x0083, 0xe82: 0x00c3, 0xe83: 0x00c3, 0xe84: 0x00c6, 0xe85: 0x0080, + 0xe86: 0x00c3, 0xe87: 0x00c3, 0xe88: 0x00c0, 0xe89: 0x00c0, 0xe8a: 0x00c0, 0xe8b: 0x00c0, + 0xe8c: 0x00c0, 0xe8d: 0x00c3, 0xe8e: 0x00c3, 0xe8f: 0x00c3, 0xe90: 0x00c3, 0xe91: 0x00c3, + 0xe92: 0x00c3, 0xe93: 0x0083, 0xe94: 0x00c3, 0xe95: 0x00c3, 0xe96: 0x00c3, 0xe97: 0x00c3, + 0xe99: 0x00c3, 0xe9a: 0x00c3, 0xe9b: 0x00c3, 0xe9c: 0x00c3, 0xe9d: 0x0083, + 0xe9e: 0x00c3, 0xe9f: 0x00c3, 0xea0: 0x00c3, 0xea1: 0x00c3, 0xea2: 0x0083, 0xea3: 0x00c3, + 0xea4: 0x00c3, 0xea5: 0x00c3, 0xea6: 0x00c3, 0xea7: 0x0083, 0xea8: 0x00c3, 0xea9: 0x00c3, + 0xeaa: 0x00c3, 0xeab: 0x00c3, 0xeac: 0x0083, 0xead: 0x00c3, 0xeae: 0x00c3, 0xeaf: 0x00c3, + 0xeb0: 0x00c3, 0xeb1: 0x00c3, 0xeb2: 0x00c3, 0xeb3: 0x00c3, 0xeb4: 0x00c3, 0xeb5: 0x00c3, + 0xeb6: 0x00c3, 0xeb7: 0x00c3, 0xeb8: 0x00c3, 0xeb9: 0x0083, 0xeba: 0x00c3, 0xebb: 0x00c3, + 0xebc: 0x00c3, 0xebe: 0x0080, 0xebf: 0x0080, + // Block 0x3b, offset 0xec0 + 0xec0: 0x0080, 0xec1: 0x0080, 0xec2: 0x0080, 0xec3: 0x0080, 0xec4: 0x0080, 0xec5: 0x0080, + 0xec6: 0x00c3, 0xec7: 0x0080, 0xec8: 0x0080, 0xec9: 0x0080, 0xeca: 0x0080, 0xecb: 0x0080, + 0xecc: 0x0080, 0xece: 0x0080, 0xecf: 0x0080, 0xed0: 0x0080, 0xed1: 0x0080, + 0xed2: 0x0080, 0xed3: 0x0080, 0xed4: 0x0080, 0xed5: 0x0080, 0xed6: 0x0080, 0xed7: 0x0080, + 0xed8: 0x0080, 0xed9: 0x0080, 0xeda: 0x0080, + // Block 0x3c, offset 0xf00 + 0xf00: 0x00c0, 0xf01: 0x00c0, 0xf02: 0x00c0, 0xf03: 0x00c0, 0xf04: 0x00c0, 0xf05: 0x00c0, + 0xf06: 0x00c0, 0xf07: 0x00c0, 0xf08: 0x00c0, 0xf09: 0x00c0, 0xf0a: 0x00c0, 0xf0b: 0x00c0, + 0xf0c: 0x00c0, 0xf0d: 0x00c0, 0xf0e: 0x00c0, 0xf0f: 0x00c0, 0xf10: 0x00c0, 0xf11: 0x00c0, + 0xf12: 0x00c0, 0xf13: 0x00c0, 0xf14: 0x00c0, 0xf15: 0x00c0, 0xf16: 0x00c0, 0xf17: 0x00c0, + 0xf18: 0x00c0, 0xf19: 0x00c0, 0xf1a: 0x00c0, 0xf1b: 0x00c0, 0xf1c: 0x00c0, 0xf1d: 0x00c0, + 0xf1e: 0x00c0, 0xf1f: 0x00c0, 0xf20: 0x00c0, 0xf21: 0x00c0, 0xf22: 0x00c0, 0xf23: 0x00c0, + 0xf24: 0x00c0, 0xf25: 0x00c0, 0xf26: 0x00c0, 0xf27: 0x00c0, 0xf28: 0x00c0, 0xf29: 0x00c0, + 0xf2a: 0x00c0, 0xf2b: 0x00c0, 0xf2c: 0x00c0, 0xf2d: 0x00c3, 0xf2e: 0x00c3, 0xf2f: 0x00c3, + 0xf30: 0x00c3, 0xf31: 0x00c0, 0xf32: 0x00c3, 0xf33: 0x00c3, 0xf34: 0x00c3, 0xf35: 0x00c3, + 0xf36: 0x00c3, 0xf37: 0x00c3, 0xf38: 0x00c0, 0xf39: 0x00c6, 0xf3a: 0x00c6, 0xf3b: 0x00c0, + 0xf3c: 0x00c0, 0xf3d: 0x00c3, 0xf3e: 0x00c3, 0xf3f: 0x00c0, + // Block 0x3d, offset 0xf40 + 0xf40: 0x00c0, 0xf41: 0x00c0, 0xf42: 0x00c0, 0xf43: 0x00c0, 0xf44: 0x00c0, 0xf45: 0x00c0, + 0xf46: 0x00c0, 0xf47: 0x00c0, 0xf48: 0x00c0, 0xf49: 0x00c0, 0xf4a: 0x0080, 0xf4b: 0x0080, + 0xf4c: 0x0080, 0xf4d: 0x0080, 0xf4e: 0x0080, 0xf4f: 0x0080, 0xf50: 0x00c0, 0xf51: 0x00c0, + 0xf52: 0x00c0, 0xf53: 0x00c0, 0xf54: 0x00c0, 0xf55: 0x00c0, 0xf56: 0x00c0, 0xf57: 0x00c0, + 0xf58: 0x00c3, 0xf59: 0x00c3, 0xf5a: 0x00c0, 0xf5b: 0x00c0, 0xf5c: 0x00c0, 0xf5d: 0x00c0, + 0xf5e: 0x00c3, 0xf5f: 0x00c3, 0xf60: 0x00c3, 0xf61: 0x00c0, 0xf62: 0x00c0, 0xf63: 0x00c0, + 0xf64: 0x00c0, 0xf65: 0x00c0, 0xf66: 0x00c0, 0xf67: 0x00c0, 0xf68: 0x00c0, 0xf69: 0x00c0, + 0xf6a: 0x00c0, 0xf6b: 0x00c0, 0xf6c: 0x00c0, 0xf6d: 0x00c0, 0xf6e: 0x00c0, 0xf6f: 0x00c0, + 0xf70: 0x00c0, 0xf71: 0x00c3, 0xf72: 0x00c3, 0xf73: 0x00c3, 0xf74: 0x00c3, 0xf75: 0x00c0, + 0xf76: 0x00c0, 0xf77: 0x00c0, 0xf78: 0x00c0, 0xf79: 0x00c0, 0xf7a: 0x00c0, 0xf7b: 0x00c0, + 0xf7c: 0x00c0, 0xf7d: 0x00c0, 0xf7e: 0x00c0, 0xf7f: 0x00c0, + // Block 0x3e, offset 0xf80 + 0xf80: 0x00c0, 0xf81: 0x00c0, 0xf82: 0x00c3, 0xf83: 0x00c0, 0xf84: 0x00c0, 0xf85: 0x00c3, + 0xf86: 0x00c3, 0xf87: 0x00c0, 0xf88: 0x00c0, 0xf89: 0x00c0, 0xf8a: 0x00c0, 0xf8b: 0x00c0, + 0xf8c: 0x00c0, 0xf8d: 0x00c3, 0xf8e: 0x00c0, 0xf8f: 0x00c0, 0xf90: 0x00c0, 0xf91: 0x00c0, + 0xf92: 0x00c0, 0xf93: 0x00c0, 0xf94: 0x00c0, 0xf95: 0x00c0, 0xf96: 0x00c0, 0xf97: 0x00c0, + 0xf98: 0x00c0, 0xf99: 0x00c0, 0xf9a: 0x00c0, 0xf9b: 0x00c0, 0xf9c: 0x00c0, 0xf9d: 0x00c3, + 0xf9e: 0x0080, 0xf9f: 0x0080, 0xfa0: 0x00c0, 0xfa1: 0x00c0, 0xfa2: 0x00c0, 0xfa3: 0x00c0, + 0xfa4: 0x00c0, 0xfa5: 0x00c0, 0xfa6: 0x00c0, 0xfa7: 0x00c0, 0xfa8: 0x00c0, 0xfa9: 0x00c0, + 0xfaa: 0x00c0, 0xfab: 0x00c0, 0xfac: 0x00c0, 0xfad: 0x00c0, 0xfae: 0x00c0, 0xfaf: 0x00c0, + 0xfb0: 0x00c0, 0xfb1: 0x00c0, 0xfb2: 0x00c0, 0xfb3: 0x00c0, 0xfb4: 0x00c0, 0xfb5: 0x00c0, + 0xfb6: 0x00c0, 0xfb7: 0x00c0, 0xfb8: 0x00c0, 0xfb9: 0x00c0, 0xfba: 0x00c0, 0xfbb: 0x00c0, + 0xfbc: 0x00c0, 0xfbd: 0x00c0, 0xfbe: 0x00c0, 0xfbf: 0x00c0, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x00c0, 0xfc1: 0x00c0, 0xfc2: 0x00c0, 0xfc3: 0x00c0, 0xfc4: 0x00c0, 0xfc5: 0x00c0, + 0xfc7: 0x00c0, + 0xfcd: 0x00c0, 0xfd0: 0x00c0, 0xfd1: 0x00c0, + 0xfd2: 0x00c0, 0xfd3: 0x00c0, 0xfd4: 0x00c0, 0xfd5: 0x00c0, 0xfd6: 0x00c0, 0xfd7: 0x00c0, + 0xfd8: 0x00c0, 0xfd9: 0x00c0, 0xfda: 0x00c0, 0xfdb: 0x00c0, 0xfdc: 0x00c0, 0xfdd: 0x00c0, + 0xfde: 0x00c0, 0xfdf: 0x00c0, 0xfe0: 0x00c0, 0xfe1: 0x00c0, 0xfe2: 0x00c0, 0xfe3: 0x00c0, + 0xfe4: 0x00c0, 0xfe5: 0x00c0, 0xfe6: 0x00c0, 0xfe7: 0x00c0, 0xfe8: 0x00c0, 0xfe9: 0x00c0, + 0xfea: 0x00c0, 0xfeb: 0x00c0, 0xfec: 0x00c0, 0xfed: 0x00c0, 0xfee: 0x00c0, 0xfef: 0x00c0, + 0xff0: 0x00c0, 0xff1: 0x00c0, 0xff2: 0x00c0, 0xff3: 0x00c0, 0xff4: 0x00c0, 0xff5: 0x00c0, + 0xff6: 0x00c0, 0xff7: 0x00c0, 0xff8: 0x00c0, 0xff9: 0x00c0, 0xffa: 0x00c0, 0xffb: 0x0080, + 0xffc: 0x0080, 0xffd: 0x00c0, 0xffe: 0x00c0, 0xfff: 0x00c0, + // Block 0x40, offset 0x1000 + 0x1000: 0x0040, 0x1001: 0x0040, 0x1002: 0x0040, 0x1003: 0x0040, 0x1004: 0x0040, 0x1005: 0x0040, + 0x1006: 0x0040, 0x1007: 0x0040, 0x1008: 0x0040, 0x1009: 0x0040, 0x100a: 0x0040, 0x100b: 0x0040, + 0x100c: 0x0040, 0x100d: 0x0040, 0x100e: 0x0040, 0x100f: 0x0040, 0x1010: 0x0040, 0x1011: 0x0040, + 0x1012: 0x0040, 0x1013: 0x0040, 0x1014: 0x0040, 0x1015: 0x0040, 0x1016: 0x0040, 0x1017: 0x0040, + 0x1018: 0x0040, 0x1019: 0x0040, 0x101a: 0x0040, 0x101b: 0x0040, 0x101c: 0x0040, 0x101d: 0x0040, + 0x101e: 0x0040, 0x101f: 0x0040, 0x1020: 0x0040, 0x1021: 0x0040, 0x1022: 0x0040, 0x1023: 0x0040, + 0x1024: 0x0040, 0x1025: 0x0040, 0x1026: 0x0040, 0x1027: 0x0040, 0x1028: 0x0040, 0x1029: 0x0040, + 0x102a: 0x0040, 0x102b: 0x0040, 0x102c: 0x0040, 0x102d: 0x0040, 0x102e: 0x0040, 0x102f: 0x0040, + 0x1030: 0x0040, 0x1031: 0x0040, 0x1032: 0x0040, 0x1033: 0x0040, 0x1034: 0x0040, 0x1035: 0x0040, + 0x1036: 0x0040, 0x1037: 0x0040, 0x1038: 0x0040, 0x1039: 0x0040, 0x103a: 0x0040, 0x103b: 0x0040, + 0x103c: 0x0040, 0x103d: 0x0040, 0x103e: 0x0040, 0x103f: 0x0040, + // Block 0x41, offset 0x1040 + 0x1040: 0x00c0, 0x1041: 0x00c0, 0x1042: 0x00c0, 0x1043: 0x00c0, 0x1044: 0x00c0, 0x1045: 0x00c0, + 0x1046: 0x00c0, 0x1047: 0x00c0, 0x1048: 0x00c0, 0x104a: 0x00c0, 0x104b: 0x00c0, + 0x104c: 0x00c0, 0x104d: 0x00c0, 0x1050: 0x00c0, 0x1051: 0x00c0, + 0x1052: 0x00c0, 0x1053: 0x00c0, 0x1054: 0x00c0, 0x1055: 0x00c0, 0x1056: 0x00c0, + 0x1058: 0x00c0, 0x105a: 0x00c0, 0x105b: 0x00c0, 0x105c: 0x00c0, 0x105d: 0x00c0, + 0x1060: 0x00c0, 0x1061: 0x00c0, 0x1062: 0x00c0, 0x1063: 0x00c0, + 0x1064: 0x00c0, 0x1065: 0x00c0, 0x1066: 0x00c0, 0x1067: 0x00c0, 0x1068: 0x00c0, 0x1069: 0x00c0, + 0x106a: 0x00c0, 0x106b: 0x00c0, 0x106c: 0x00c0, 0x106d: 0x00c0, 0x106e: 0x00c0, 0x106f: 0x00c0, + 0x1070: 0x00c0, 0x1071: 0x00c0, 0x1072: 0x00c0, 0x1073: 0x00c0, 0x1074: 0x00c0, 0x1075: 0x00c0, + 0x1076: 0x00c0, 0x1077: 0x00c0, 0x1078: 0x00c0, 0x1079: 0x00c0, 0x107a: 0x00c0, 0x107b: 0x00c0, + 0x107c: 0x00c0, 0x107d: 0x00c0, 0x107e: 0x00c0, 0x107f: 0x00c0, + // Block 0x42, offset 0x1080 + 0x1080: 0x00c0, 0x1081: 0x00c0, 0x1082: 0x00c0, 0x1083: 0x00c0, 0x1084: 0x00c0, 0x1085: 0x00c0, + 0x1086: 0x00c0, 0x1087: 0x00c0, 0x1088: 0x00c0, 0x108a: 0x00c0, 0x108b: 0x00c0, + 0x108c: 0x00c0, 0x108d: 0x00c0, 0x1090: 0x00c0, 0x1091: 0x00c0, + 0x1092: 0x00c0, 0x1093: 0x00c0, 0x1094: 0x00c0, 0x1095: 0x00c0, 0x1096: 0x00c0, 0x1097: 0x00c0, + 0x1098: 0x00c0, 0x1099: 0x00c0, 0x109a: 0x00c0, 0x109b: 0x00c0, 0x109c: 0x00c0, 0x109d: 0x00c0, + 0x109e: 0x00c0, 0x109f: 0x00c0, 0x10a0: 0x00c0, 0x10a1: 0x00c0, 0x10a2: 0x00c0, 0x10a3: 0x00c0, + 0x10a4: 0x00c0, 0x10a5: 0x00c0, 0x10a6: 0x00c0, 0x10a7: 0x00c0, 0x10a8: 0x00c0, 0x10a9: 0x00c0, + 0x10aa: 0x00c0, 0x10ab: 0x00c0, 0x10ac: 0x00c0, 0x10ad: 0x00c0, 0x10ae: 0x00c0, 0x10af: 0x00c0, + 0x10b0: 0x00c0, 0x10b2: 0x00c0, 0x10b3: 0x00c0, 0x10b4: 0x00c0, 0x10b5: 0x00c0, + 0x10b8: 0x00c0, 0x10b9: 0x00c0, 0x10ba: 0x00c0, 0x10bb: 0x00c0, + 0x10bc: 0x00c0, 0x10bd: 0x00c0, 0x10be: 0x00c0, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x00c0, 0x10c2: 0x00c0, 0x10c3: 0x00c0, 0x10c4: 0x00c0, 0x10c5: 0x00c0, + 0x10c8: 0x00c0, 0x10c9: 0x00c0, 0x10ca: 0x00c0, 0x10cb: 0x00c0, + 0x10cc: 0x00c0, 0x10cd: 0x00c0, 0x10ce: 0x00c0, 0x10cf: 0x00c0, 0x10d0: 0x00c0, 0x10d1: 0x00c0, + 0x10d2: 0x00c0, 0x10d3: 0x00c0, 0x10d4: 0x00c0, 0x10d5: 0x00c0, 0x10d6: 0x00c0, + 0x10d8: 0x00c0, 0x10d9: 0x00c0, 0x10da: 0x00c0, 0x10db: 0x00c0, 0x10dc: 0x00c0, 0x10dd: 0x00c0, + 0x10de: 0x00c0, 0x10df: 0x00c0, 0x10e0: 0x00c0, 0x10e1: 0x00c0, 0x10e2: 0x00c0, 0x10e3: 0x00c0, + 0x10e4: 0x00c0, 0x10e5: 0x00c0, 0x10e6: 0x00c0, 0x10e7: 0x00c0, 0x10e8: 0x00c0, 0x10e9: 0x00c0, + 0x10ea: 0x00c0, 0x10eb: 0x00c0, 0x10ec: 0x00c0, 0x10ed: 0x00c0, 0x10ee: 0x00c0, 0x10ef: 0x00c0, + 0x10f0: 0x00c0, 0x10f1: 0x00c0, 0x10f2: 0x00c0, 0x10f3: 0x00c0, 0x10f4: 0x00c0, 0x10f5: 0x00c0, + 0x10f6: 0x00c0, 0x10f7: 0x00c0, 0x10f8: 0x00c0, 0x10f9: 0x00c0, 0x10fa: 0x00c0, 0x10fb: 0x00c0, + 0x10fc: 0x00c0, 0x10fd: 0x00c0, 0x10fe: 0x00c0, 0x10ff: 0x00c0, + // Block 0x44, offset 0x1100 + 0x1100: 0x00c0, 0x1101: 0x00c0, 0x1102: 0x00c0, 0x1103: 0x00c0, 0x1104: 0x00c0, 0x1105: 0x00c0, + 0x1106: 0x00c0, 0x1107: 0x00c0, 0x1108: 0x00c0, 0x1109: 0x00c0, 0x110a: 0x00c0, 0x110b: 0x00c0, + 0x110c: 0x00c0, 0x110d: 0x00c0, 0x110e: 0x00c0, 0x110f: 0x00c0, 0x1110: 0x00c0, + 0x1112: 0x00c0, 0x1113: 0x00c0, 0x1114: 0x00c0, 0x1115: 0x00c0, + 0x1118: 0x00c0, 0x1119: 0x00c0, 0x111a: 0x00c0, 0x111b: 0x00c0, 0x111c: 0x00c0, 0x111d: 0x00c0, + 0x111e: 0x00c0, 0x111f: 0x00c0, 0x1120: 0x00c0, 0x1121: 0x00c0, 0x1122: 0x00c0, 0x1123: 0x00c0, + 0x1124: 0x00c0, 0x1125: 0x00c0, 0x1126: 0x00c0, 0x1127: 0x00c0, 0x1128: 0x00c0, 0x1129: 0x00c0, + 0x112a: 0x00c0, 0x112b: 0x00c0, 0x112c: 0x00c0, 0x112d: 0x00c0, 0x112e: 0x00c0, 0x112f: 0x00c0, + 0x1130: 0x00c0, 0x1131: 0x00c0, 0x1132: 0x00c0, 0x1133: 0x00c0, 0x1134: 0x00c0, 0x1135: 0x00c0, + 0x1136: 0x00c0, 0x1137: 0x00c0, 0x1138: 0x00c0, 0x1139: 0x00c0, 0x113a: 0x00c0, 0x113b: 0x00c0, + 0x113c: 0x00c0, 0x113d: 0x00c0, 0x113e: 0x00c0, 0x113f: 0x00c0, + // Block 0x45, offset 0x1140 + 0x1140: 0x00c0, 0x1141: 0x00c0, 0x1142: 0x00c0, 0x1143: 0x00c0, 0x1144: 0x00c0, 0x1145: 0x00c0, + 0x1146: 0x00c0, 0x1147: 0x00c0, 0x1148: 0x00c0, 0x1149: 0x00c0, 0x114a: 0x00c0, 0x114b: 0x00c0, + 0x114c: 0x00c0, 0x114d: 0x00c0, 0x114e: 0x00c0, 0x114f: 0x00c0, 0x1150: 0x00c0, 0x1151: 0x00c0, + 0x1152: 0x00c0, 0x1153: 0x00c0, 0x1154: 0x00c0, 0x1155: 0x00c0, 0x1156: 0x00c0, 0x1157: 0x00c0, + 0x1158: 0x00c0, 0x1159: 0x00c0, 0x115a: 0x00c0, 0x115d: 0x00c3, + 0x115e: 0x00c3, 0x115f: 0x00c3, 0x1160: 0x0080, 0x1161: 0x0080, 0x1162: 0x0080, 0x1163: 0x0080, + 0x1164: 0x0080, 0x1165: 0x0080, 0x1166: 0x0080, 0x1167: 0x0080, 0x1168: 0x0080, 0x1169: 0x0080, + 0x116a: 0x0080, 0x116b: 0x0080, 0x116c: 0x0080, 0x116d: 0x0080, 0x116e: 0x0080, 0x116f: 0x0080, + 0x1170: 0x0080, 0x1171: 0x0080, 0x1172: 0x0080, 0x1173: 0x0080, 0x1174: 0x0080, 0x1175: 0x0080, + 0x1176: 0x0080, 0x1177: 0x0080, 0x1178: 0x0080, 0x1179: 0x0080, 0x117a: 0x0080, 0x117b: 0x0080, + 0x117c: 0x0080, + // Block 0x46, offset 0x1180 + 0x1180: 0x00c0, 0x1181: 0x00c0, 0x1182: 0x00c0, 0x1183: 0x00c0, 0x1184: 0x00c0, 0x1185: 0x00c0, + 0x1186: 0x00c0, 0x1187: 0x00c0, 0x1188: 0x00c0, 0x1189: 0x00c0, 0x118a: 0x00c0, 0x118b: 0x00c0, + 0x118c: 0x00c0, 0x118d: 0x00c0, 0x118e: 0x00c0, 0x118f: 0x00c0, 0x1190: 0x0080, 0x1191: 0x0080, + 0x1192: 0x0080, 0x1193: 0x0080, 0x1194: 0x0080, 0x1195: 0x0080, 0x1196: 0x0080, 0x1197: 0x0080, + 0x1198: 0x0080, 0x1199: 0x0080, + 0x11a0: 0x00c0, 0x11a1: 0x00c0, 0x11a2: 0x00c0, 0x11a3: 0x00c0, + 0x11a4: 0x00c0, 0x11a5: 0x00c0, 0x11a6: 0x00c0, 0x11a7: 0x00c0, 0x11a8: 0x00c0, 0x11a9: 0x00c0, + 0x11aa: 0x00c0, 0x11ab: 0x00c0, 0x11ac: 0x00c0, 0x11ad: 0x00c0, 0x11ae: 0x00c0, 0x11af: 0x00c0, + 0x11b0: 0x00c0, 0x11b1: 0x00c0, 0x11b2: 0x00c0, 0x11b3: 0x00c0, 0x11b4: 0x00c0, 0x11b5: 0x00c0, + 0x11b6: 0x00c0, 0x11b7: 0x00c0, 0x11b8: 0x00c0, 0x11b9: 0x00c0, 0x11ba: 0x00c0, 0x11bb: 0x00c0, + 0x11bc: 0x00c0, 0x11bd: 0x00c0, 0x11be: 0x00c0, 0x11bf: 0x00c0, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x00c0, 0x11c1: 0x00c0, 0x11c2: 0x00c0, 0x11c3: 0x00c0, 0x11c4: 0x00c0, 0x11c5: 0x00c0, + 0x11c6: 0x00c0, 0x11c7: 0x00c0, 0x11c8: 0x00c0, 0x11c9: 0x00c0, 0x11ca: 0x00c0, 0x11cb: 0x00c0, + 0x11cc: 0x00c0, 0x11cd: 0x00c0, 0x11ce: 0x00c0, 0x11cf: 0x00c0, 0x11d0: 0x00c0, 0x11d1: 0x00c0, + 0x11d2: 0x00c0, 0x11d3: 0x00c0, 0x11d4: 0x00c0, 0x11d5: 0x00c0, 0x11d6: 0x00c0, 0x11d7: 0x00c0, + 0x11d8: 0x00c0, 0x11d9: 0x00c0, 0x11da: 0x00c0, 0x11db: 0x00c0, 0x11dc: 0x00c0, 0x11dd: 0x00c0, + 0x11de: 0x00c0, 0x11df: 0x00c0, 0x11e0: 0x00c0, 0x11e1: 0x00c0, 0x11e2: 0x00c0, 0x11e3: 0x00c0, + 0x11e4: 0x00c0, 0x11e5: 0x00c0, 0x11e6: 0x00c0, 0x11e7: 0x00c0, 0x11e8: 0x00c0, 0x11e9: 0x00c0, + 0x11ea: 0x00c0, 0x11eb: 0x00c0, 0x11ec: 0x00c0, 0x11ed: 0x00c0, 0x11ee: 0x00c0, 0x11ef: 0x00c0, + 0x11f0: 0x00c0, 0x11f1: 0x00c0, 0x11f2: 0x00c0, 0x11f3: 0x00c0, 0x11f4: 0x00c0, 0x11f5: 0x00c0, + 0x11f8: 0x00c0, 0x11f9: 0x00c0, 0x11fa: 0x00c0, 0x11fb: 0x00c0, + 0x11fc: 0x00c0, 0x11fd: 0x00c0, + // Block 0x48, offset 0x1200 + 0x1200: 0x0080, 0x1201: 0x00c0, 0x1202: 0x00c0, 0x1203: 0x00c0, 0x1204: 0x00c0, 0x1205: 0x00c0, + 0x1206: 0x00c0, 0x1207: 0x00c0, 0x1208: 0x00c0, 0x1209: 0x00c0, 0x120a: 0x00c0, 0x120b: 0x00c0, + 0x120c: 0x00c0, 0x120d: 0x00c0, 0x120e: 0x00c0, 0x120f: 0x00c0, 0x1210: 0x00c0, 0x1211: 0x00c0, + 0x1212: 0x00c0, 0x1213: 0x00c0, 0x1214: 0x00c0, 0x1215: 0x00c0, 0x1216: 0x00c0, 0x1217: 0x00c0, + 0x1218: 0x00c0, 0x1219: 0x00c0, 0x121a: 0x00c0, 0x121b: 0x00c0, 0x121c: 0x00c0, 0x121d: 0x00c0, + 0x121e: 0x00c0, 0x121f: 0x00c0, 0x1220: 0x00c0, 0x1221: 0x00c0, 0x1222: 0x00c0, 0x1223: 0x00c0, + 0x1224: 0x00c0, 0x1225: 0x00c0, 0x1226: 0x00c0, 0x1227: 0x00c0, 0x1228: 0x00c0, 0x1229: 0x00c0, + 0x122a: 0x00c0, 0x122b: 0x00c0, 0x122c: 0x00c0, 0x122d: 0x00c0, 0x122e: 0x00c0, 0x122f: 0x00c0, + 0x1230: 0x00c0, 0x1231: 0x00c0, 0x1232: 0x00c0, 0x1233: 0x00c0, 0x1234: 0x00c0, 0x1235: 0x00c0, + 0x1236: 0x00c0, 0x1237: 0x00c0, 0x1238: 0x00c0, 0x1239: 0x00c0, 0x123a: 0x00c0, 0x123b: 0x00c0, + 0x123c: 0x00c0, 0x123d: 0x00c0, 0x123e: 0x00c0, 0x123f: 0x00c0, + // Block 0x49, offset 0x1240 + 0x1240: 0x00c0, 0x1241: 0x00c0, 0x1242: 0x00c0, 0x1243: 0x00c0, 0x1244: 0x00c0, 0x1245: 0x00c0, + 0x1246: 0x00c0, 0x1247: 0x00c0, 0x1248: 0x00c0, 0x1249: 0x00c0, 0x124a: 0x00c0, 0x124b: 0x00c0, + 0x124c: 0x00c0, 0x124d: 0x00c0, 0x124e: 0x00c0, 0x124f: 0x00c0, 0x1250: 0x00c0, 0x1251: 0x00c0, + 0x1252: 0x00c0, 0x1253: 0x00c0, 0x1254: 0x00c0, 0x1255: 0x00c0, 0x1256: 0x00c0, 0x1257: 0x00c0, + 0x1258: 0x00c0, 0x1259: 0x00c0, 0x125a: 0x00c0, 0x125b: 0x00c0, 0x125c: 0x00c0, 0x125d: 0x00c0, + 0x125e: 0x00c0, 0x125f: 0x00c0, 0x1260: 0x00c0, 0x1261: 0x00c0, 0x1262: 0x00c0, 0x1263: 0x00c0, + 0x1264: 0x00c0, 0x1265: 0x00c0, 0x1266: 0x00c0, 0x1267: 0x00c0, 0x1268: 0x00c0, 0x1269: 0x00c0, + 0x126a: 0x00c0, 0x126b: 0x00c0, 0x126c: 0x00c0, 0x126d: 0x0080, 0x126e: 0x0080, 0x126f: 0x00c0, + 0x1270: 0x00c0, 0x1271: 0x00c0, 0x1272: 0x00c0, 0x1273: 0x00c0, 0x1274: 0x00c0, 0x1275: 0x00c0, + 0x1276: 0x00c0, 0x1277: 0x00c0, 0x1278: 0x00c0, 0x1279: 0x00c0, 0x127a: 0x00c0, 0x127b: 0x00c0, + 0x127c: 0x00c0, 0x127d: 0x00c0, 0x127e: 0x00c0, 0x127f: 0x00c0, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0080, 0x1281: 0x00c0, 0x1282: 0x00c0, 0x1283: 0x00c0, 0x1284: 0x00c0, 0x1285: 0x00c0, + 0x1286: 0x00c0, 0x1287: 0x00c0, 0x1288: 0x00c0, 0x1289: 0x00c0, 0x128a: 0x00c0, 0x128b: 0x00c0, + 0x128c: 0x00c0, 0x128d: 0x00c0, 0x128e: 0x00c0, 0x128f: 0x00c0, 0x1290: 0x00c0, 0x1291: 0x00c0, + 0x1292: 0x00c0, 0x1293: 0x00c0, 0x1294: 0x00c0, 0x1295: 0x00c0, 0x1296: 0x00c0, 0x1297: 0x00c0, + 0x1298: 0x00c0, 0x1299: 0x00c0, 0x129a: 0x00c0, 0x129b: 0x0080, 0x129c: 0x0080, + 0x12a0: 0x00c0, 0x12a1: 0x00c0, 0x12a2: 0x00c0, 0x12a3: 0x00c0, + 0x12a4: 0x00c0, 0x12a5: 0x00c0, 0x12a6: 0x00c0, 0x12a7: 0x00c0, 0x12a8: 0x00c0, 0x12a9: 0x00c0, + 0x12aa: 0x00c0, 0x12ab: 0x00c0, 0x12ac: 0x00c0, 0x12ad: 0x00c0, 0x12ae: 0x00c0, 0x12af: 0x00c0, + 0x12b0: 0x00c0, 0x12b1: 0x00c0, 0x12b2: 0x00c0, 0x12b3: 0x00c0, 0x12b4: 0x00c0, 0x12b5: 0x00c0, + 0x12b6: 0x00c0, 0x12b7: 0x00c0, 0x12b8: 0x00c0, 0x12b9: 0x00c0, 0x12ba: 0x00c0, 0x12bb: 0x00c0, + 0x12bc: 0x00c0, 0x12bd: 0x00c0, 0x12be: 0x00c0, 0x12bf: 0x00c0, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x00c0, 0x12c1: 0x00c0, 0x12c2: 0x00c0, 0x12c3: 0x00c0, 0x12c4: 0x00c0, 0x12c5: 0x00c0, + 0x12c6: 0x00c0, 0x12c7: 0x00c0, 0x12c8: 0x00c0, 0x12c9: 0x00c0, 0x12ca: 0x00c0, 0x12cb: 0x00c0, + 0x12cc: 0x00c0, 0x12cd: 0x00c0, 0x12ce: 0x00c0, 0x12cf: 0x00c0, 0x12d0: 0x00c0, 0x12d1: 0x00c0, + 0x12d2: 0x00c0, 0x12d3: 0x00c0, 0x12d4: 0x00c0, 0x12d5: 0x00c0, 0x12d6: 0x00c0, 0x12d7: 0x00c0, + 0x12d8: 0x00c0, 0x12d9: 0x00c0, 0x12da: 0x00c0, 0x12db: 0x00c0, 0x12dc: 0x00c0, 0x12dd: 0x00c0, + 0x12de: 0x00c0, 0x12df: 0x00c0, 0x12e0: 0x00c0, 0x12e1: 0x00c0, 0x12e2: 0x00c0, 0x12e3: 0x00c0, + 0x12e4: 0x00c0, 0x12e5: 0x00c0, 0x12e6: 0x00c0, 0x12e7: 0x00c0, 0x12e8: 0x00c0, 0x12e9: 0x00c0, + 0x12ea: 0x00c0, 0x12eb: 0x0080, 0x12ec: 0x0080, 0x12ed: 0x0080, 0x12ee: 0x0080, 0x12ef: 0x0080, + 0x12f0: 0x0080, 0x12f1: 0x00c0, 0x12f2: 0x00c0, 0x12f3: 0x00c0, 0x12f4: 0x00c0, 0x12f5: 0x00c0, + 0x12f6: 0x00c0, 0x12f7: 0x00c0, 0x12f8: 0x00c0, + // Block 0x4c, offset 0x1300 + 0x1300: 0x00c0, 0x1301: 0x00c0, 0x1302: 0x00c0, 0x1303: 0x00c0, 0x1304: 0x00c0, 0x1305: 0x00c0, + 0x1306: 0x00c0, 0x1307: 0x00c0, 0x1308: 0x00c0, 0x1309: 0x00c0, 0x130a: 0x00c0, 0x130b: 0x00c0, + 0x130c: 0x00c0, 0x130e: 0x00c0, 0x130f: 0x00c0, 0x1310: 0x00c0, 0x1311: 0x00c0, + 0x1312: 0x00c3, 0x1313: 0x00c3, 0x1314: 0x00c6, + 0x1320: 0x00c0, 0x1321: 0x00c0, 0x1322: 0x00c0, 0x1323: 0x00c0, + 0x1324: 0x00c0, 0x1325: 0x00c0, 0x1326: 0x00c0, 0x1327: 0x00c0, 0x1328: 0x00c0, 0x1329: 0x00c0, + 0x132a: 0x00c0, 0x132b: 0x00c0, 0x132c: 0x00c0, 0x132d: 0x00c0, 0x132e: 0x00c0, 0x132f: 0x00c0, + 0x1330: 0x00c0, 0x1331: 0x00c0, 0x1332: 0x00c3, 0x1333: 0x00c3, 0x1334: 0x00c6, 0x1335: 0x0080, + 0x1336: 0x0080, + // Block 0x4d, offset 0x1340 + 0x1340: 0x00c0, 0x1341: 0x00c0, 0x1342: 0x00c0, 0x1343: 0x00c0, 0x1344: 0x00c0, 0x1345: 0x00c0, + 0x1346: 0x00c0, 0x1347: 0x00c0, 0x1348: 0x00c0, 0x1349: 0x00c0, 0x134a: 0x00c0, 0x134b: 0x00c0, + 0x134c: 0x00c0, 0x134d: 0x00c0, 0x134e: 0x00c0, 0x134f: 0x00c0, 0x1350: 0x00c0, 0x1351: 0x00c0, + 0x1352: 0x00c3, 0x1353: 0x00c3, + 0x1360: 0x00c0, 0x1361: 0x00c0, 0x1362: 0x00c0, 0x1363: 0x00c0, + 0x1364: 0x00c0, 0x1365: 0x00c0, 0x1366: 0x00c0, 0x1367: 0x00c0, 0x1368: 0x00c0, 0x1369: 0x00c0, + 0x136a: 0x00c0, 0x136b: 0x00c0, 0x136c: 0x00c0, 0x136e: 0x00c0, 0x136f: 0x00c0, + 0x1370: 0x00c0, 0x1372: 0x00c3, 0x1373: 0x00c3, + // Block 0x4e, offset 0x1380 + 0x1380: 0x00c0, 0x1381: 0x00c0, 0x1382: 0x00c0, 0x1383: 0x00c0, 0x1384: 0x00c0, 0x1385: 0x00c0, + 0x1386: 0x00c0, 0x1387: 0x00c0, 0x1388: 0x00c0, 0x1389: 0x00c0, 0x138a: 0x00c0, 0x138b: 0x00c0, + 0x138c: 0x00c0, 0x138d: 0x00c0, 0x138e: 0x00c0, 0x138f: 0x00c0, 0x1390: 0x00c0, 0x1391: 0x00c0, + 0x1392: 0x00c0, 0x1393: 0x00c0, 0x1394: 0x00c0, 0x1395: 0x00c0, 0x1396: 0x00c0, 0x1397: 0x00c0, + 0x1398: 0x00c0, 0x1399: 0x00c0, 0x139a: 0x00c0, 0x139b: 0x00c0, 0x139c: 0x00c0, 0x139d: 0x00c0, + 0x139e: 0x00c0, 0x139f: 0x00c0, 0x13a0: 0x00c0, 0x13a1: 0x00c0, 0x13a2: 0x00c0, 0x13a3: 0x00c0, + 0x13a4: 0x00c0, 0x13a5: 0x00c0, 0x13a6: 0x00c0, 0x13a7: 0x00c0, 0x13a8: 0x00c0, 0x13a9: 0x00c0, + 0x13aa: 0x00c0, 0x13ab: 0x00c0, 0x13ac: 0x00c0, 0x13ad: 0x00c0, 0x13ae: 0x00c0, 0x13af: 0x00c0, + 0x13b0: 0x00c0, 0x13b1: 0x00c0, 0x13b2: 0x00c0, 0x13b3: 0x00c0, 0x13b4: 0x0040, 0x13b5: 0x0040, + 0x13b6: 0x00c0, 0x13b7: 0x00c3, 0x13b8: 0x00c3, 0x13b9: 0x00c3, 0x13ba: 0x00c3, 0x13bb: 0x00c3, + 0x13bc: 0x00c3, 0x13bd: 0x00c3, 0x13be: 0x00c0, 0x13bf: 0x00c0, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x00c0, 0x13c1: 0x00c0, 0x13c2: 0x00c0, 0x13c3: 0x00c0, 0x13c4: 0x00c0, 0x13c5: 0x00c0, + 0x13c6: 0x00c3, 0x13c7: 0x00c0, 0x13c8: 0x00c0, 0x13c9: 0x00c3, 0x13ca: 0x00c3, 0x13cb: 0x00c3, + 0x13cc: 0x00c3, 0x13cd: 0x00c3, 0x13ce: 0x00c3, 0x13cf: 0x00c3, 0x13d0: 0x00c3, 0x13d1: 0x00c3, + 0x13d2: 0x00c6, 0x13d3: 0x00c3, 0x13d4: 0x0080, 0x13d5: 0x0080, 0x13d6: 0x0080, 0x13d7: 0x00c0, + 0x13d8: 0x0080, 0x13d9: 0x0080, 0x13da: 0x0080, 0x13db: 0x0080, 0x13dc: 0x00c0, 0x13dd: 0x00c3, + 0x13e0: 0x00c0, 0x13e1: 0x00c0, 0x13e2: 0x00c0, 0x13e3: 0x00c0, + 0x13e4: 0x00c0, 0x13e5: 0x00c0, 0x13e6: 0x00c0, 0x13e7: 0x00c0, 0x13e8: 0x00c0, 0x13e9: 0x00c0, + 0x13f0: 0x0080, 0x13f1: 0x0080, 0x13f2: 0x0080, 0x13f3: 0x0080, 0x13f4: 0x0080, 0x13f5: 0x0080, + 0x13f6: 0x0080, 0x13f7: 0x0080, 0x13f8: 0x0080, 0x13f9: 0x0080, + // Block 0x50, offset 0x1400 + 0x1400: 0x0080, 0x1401: 0x0080, 0x1402: 0x0080, 0x1403: 0x0080, 0x1404: 0x0080, 0x1405: 0x0080, + 0x1406: 0x0080, 0x1407: 0x0082, 0x1408: 0x0080, 0x1409: 0x0080, 0x140a: 0x0080, 0x140b: 0x0040, + 0x140c: 0x0040, 0x140d: 0x0040, 0x140e: 0x0040, 0x1410: 0x00c0, 0x1411: 0x00c0, + 0x1412: 0x00c0, 0x1413: 0x00c0, 0x1414: 0x00c0, 0x1415: 0x00c0, 0x1416: 0x00c0, 0x1417: 0x00c0, + 0x1418: 0x00c0, 0x1419: 0x00c0, + 0x1420: 0x00c2, 0x1421: 0x00c2, 0x1422: 0x00c2, 0x1423: 0x00c2, + 0x1424: 0x00c2, 0x1425: 0x00c2, 0x1426: 0x00c2, 0x1427: 0x00c2, 0x1428: 0x00c2, 0x1429: 0x00c2, + 0x142a: 0x00c2, 0x142b: 0x00c2, 0x142c: 0x00c2, 0x142d: 0x00c2, 0x142e: 0x00c2, 0x142f: 0x00c2, + 0x1430: 0x00c2, 0x1431: 0x00c2, 0x1432: 0x00c2, 0x1433: 0x00c2, 0x1434: 0x00c2, 0x1435: 0x00c2, + 0x1436: 0x00c2, 0x1437: 0x00c2, 0x1438: 0x00c2, 0x1439: 0x00c2, 0x143a: 0x00c2, 0x143b: 0x00c2, + 0x143c: 0x00c2, 0x143d: 0x00c2, 0x143e: 0x00c2, 0x143f: 0x00c2, + // Block 0x51, offset 0x1440 + 0x1440: 0x00c2, 0x1441: 0x00c2, 0x1442: 0x00c2, 0x1443: 0x00c2, 0x1444: 0x00c2, 0x1445: 0x00c2, + 0x1446: 0x00c2, 0x1447: 0x00c2, 0x1448: 0x00c2, 0x1449: 0x00c2, 0x144a: 0x00c2, 0x144b: 0x00c2, + 0x144c: 0x00c2, 0x144d: 0x00c2, 0x144e: 0x00c2, 0x144f: 0x00c2, 0x1450: 0x00c2, 0x1451: 0x00c2, + 0x1452: 0x00c2, 0x1453: 0x00c2, 0x1454: 0x00c2, 0x1455: 0x00c2, 0x1456: 0x00c2, 0x1457: 0x00c2, + 0x1458: 0x00c2, 0x1459: 0x00c2, 0x145a: 0x00c2, 0x145b: 0x00c2, 0x145c: 0x00c2, 0x145d: 0x00c2, + 0x145e: 0x00c2, 0x145f: 0x00c2, 0x1460: 0x00c2, 0x1461: 0x00c2, 0x1462: 0x00c2, 0x1463: 0x00c2, + 0x1464: 0x00c2, 0x1465: 0x00c2, 0x1466: 0x00c2, 0x1467: 0x00c2, 0x1468: 0x00c2, 0x1469: 0x00c2, + 0x146a: 0x00c2, 0x146b: 0x00c2, 0x146c: 0x00c2, 0x146d: 0x00c2, 0x146e: 0x00c2, 0x146f: 0x00c2, + 0x1470: 0x00c2, 0x1471: 0x00c2, 0x1472: 0x00c2, 0x1473: 0x00c2, 0x1474: 0x00c2, 0x1475: 0x00c2, + 0x1476: 0x00c2, 0x1477: 0x00c2, + // Block 0x52, offset 0x1480 + 0x1480: 0x00c0, 0x1481: 0x00c0, 0x1482: 0x00c0, 0x1483: 0x00c0, 0x1484: 0x00c0, 0x1485: 0x00c3, + 0x1486: 0x00c3, 0x1487: 0x00c2, 0x1488: 0x00c2, 0x1489: 0x00c2, 0x148a: 0x00c2, 0x148b: 0x00c2, + 0x148c: 0x00c2, 0x148d: 0x00c2, 0x148e: 0x00c2, 0x148f: 0x00c2, 0x1490: 0x00c2, 0x1491: 0x00c2, + 0x1492: 0x00c2, 0x1493: 0x00c2, 0x1494: 0x00c2, 0x1495: 0x00c2, 0x1496: 0x00c2, 0x1497: 0x00c2, + 0x1498: 0x00c2, 0x1499: 0x00c2, 0x149a: 0x00c2, 0x149b: 0x00c2, 0x149c: 0x00c2, 0x149d: 0x00c2, + 0x149e: 0x00c2, 0x149f: 0x00c2, 0x14a0: 0x00c2, 0x14a1: 0x00c2, 0x14a2: 0x00c2, 0x14a3: 0x00c2, + 0x14a4: 0x00c2, 0x14a5: 0x00c2, 0x14a6: 0x00c2, 0x14a7: 0x00c2, 0x14a8: 0x00c2, 0x14a9: 0x00c3, + 0x14aa: 0x00c2, + 0x14b0: 0x00c0, 0x14b1: 0x00c0, 0x14b2: 0x00c0, 0x14b3: 0x00c0, 0x14b4: 0x00c0, 0x14b5: 0x00c0, + 0x14b6: 0x00c0, 0x14b7: 0x00c0, 0x14b8: 0x00c0, 0x14b9: 0x00c0, 0x14ba: 0x00c0, 0x14bb: 0x00c0, + 0x14bc: 0x00c0, 0x14bd: 0x00c0, 0x14be: 0x00c0, 0x14bf: 0x00c0, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x00c0, 0x14c1: 0x00c0, 0x14c2: 0x00c0, 0x14c3: 0x00c0, 0x14c4: 0x00c0, 0x14c5: 0x00c0, + 0x14c6: 0x00c0, 0x14c7: 0x00c0, 0x14c8: 0x00c0, 0x14c9: 0x00c0, 0x14ca: 0x00c0, 0x14cb: 0x00c0, + 0x14cc: 0x00c0, 0x14cd: 0x00c0, 0x14ce: 0x00c0, 0x14cf: 0x00c0, 0x14d0: 0x00c0, 0x14d1: 0x00c0, + 0x14d2: 0x00c0, 0x14d3: 0x00c0, 0x14d4: 0x00c0, 0x14d5: 0x00c0, 0x14d6: 0x00c0, 0x14d7: 0x00c0, + 0x14d8: 0x00c0, 0x14d9: 0x00c0, 0x14da: 0x00c0, 0x14db: 0x00c0, 0x14dc: 0x00c0, 0x14dd: 0x00c0, + 0x14de: 0x00c0, 0x14df: 0x00c0, 0x14e0: 0x00c0, 0x14e1: 0x00c0, 0x14e2: 0x00c0, 0x14e3: 0x00c0, + 0x14e4: 0x00c0, 0x14e5: 0x00c0, 0x14e6: 0x00c0, 0x14e7: 0x00c0, 0x14e8: 0x00c0, 0x14e9: 0x00c0, + 0x14ea: 0x00c0, 0x14eb: 0x00c0, 0x14ec: 0x00c0, 0x14ed: 0x00c0, 0x14ee: 0x00c0, 0x14ef: 0x00c0, + 0x14f0: 0x00c0, 0x14f1: 0x00c0, 0x14f2: 0x00c0, 0x14f3: 0x00c0, 0x14f4: 0x00c0, 0x14f5: 0x00c0, + // Block 0x54, offset 0x1500 + 0x1500: 0x00c0, 0x1501: 0x00c0, 0x1502: 0x00c0, 0x1503: 0x00c0, 0x1504: 0x00c0, 0x1505: 0x00c0, + 0x1506: 0x00c0, 0x1507: 0x00c0, 0x1508: 0x00c0, 0x1509: 0x00c0, 0x150a: 0x00c0, 0x150b: 0x00c0, + 0x150c: 0x00c0, 0x150d: 0x00c0, 0x150e: 0x00c0, 0x150f: 0x00c0, 0x1510: 0x00c0, 0x1511: 0x00c0, + 0x1512: 0x00c0, 0x1513: 0x00c0, 0x1514: 0x00c0, 0x1515: 0x00c0, 0x1516: 0x00c0, 0x1517: 0x00c0, + 0x1518: 0x00c0, 0x1519: 0x00c0, 0x151a: 0x00c0, 0x151b: 0x00c0, 0x151c: 0x00c0, 0x151d: 0x00c0, + 0x151e: 0x00c0, 0x1520: 0x00c3, 0x1521: 0x00c3, 0x1522: 0x00c3, 0x1523: 0x00c0, + 0x1524: 0x00c0, 0x1525: 0x00c0, 0x1526: 0x00c0, 0x1527: 0x00c3, 0x1528: 0x00c3, 0x1529: 0x00c0, + 0x152a: 0x00c0, 0x152b: 0x00c0, + 0x1530: 0x00c0, 0x1531: 0x00c0, 0x1532: 0x00c3, 0x1533: 0x00c0, 0x1534: 0x00c0, 0x1535: 0x00c0, + 0x1536: 0x00c0, 0x1537: 0x00c0, 0x1538: 0x00c0, 0x1539: 0x00c3, 0x153a: 0x00c3, 0x153b: 0x00c3, + // Block 0x55, offset 0x1540 + 0x1540: 0x0080, 0x1544: 0x0080, 0x1545: 0x0080, + 0x1546: 0x00c0, 0x1547: 0x00c0, 0x1548: 0x00c0, 0x1549: 0x00c0, 0x154a: 0x00c0, 0x154b: 0x00c0, + 0x154c: 0x00c0, 0x154d: 0x00c0, 0x154e: 0x00c0, 0x154f: 0x00c0, 0x1550: 0x00c0, 0x1551: 0x00c0, + 0x1552: 0x00c0, 0x1553: 0x00c0, 0x1554: 0x00c0, 0x1555: 0x00c0, 0x1556: 0x00c0, 0x1557: 0x00c0, + 0x1558: 0x00c0, 0x1559: 0x00c0, 0x155a: 0x00c0, 0x155b: 0x00c0, 0x155c: 0x00c0, 0x155d: 0x00c0, + 0x155e: 0x00c0, 0x155f: 0x00c0, 0x1560: 0x00c0, 0x1561: 0x00c0, 0x1562: 0x00c0, 0x1563: 0x00c0, + 0x1564: 0x00c0, 0x1565: 0x00c0, 0x1566: 0x00c0, 0x1567: 0x00c0, 0x1568: 0x00c0, 0x1569: 0x00c0, + 0x156a: 0x00c0, 0x156b: 0x00c0, 0x156c: 0x00c0, 0x156d: 0x00c0, + 0x1570: 0x00c0, 0x1571: 0x00c0, 0x1572: 0x00c0, 0x1573: 0x00c0, 0x1574: 0x00c0, + // Block 0x56, offset 0x1580 + 0x1580: 0x00c0, 0x1581: 0x00c0, 0x1582: 0x00c0, 0x1583: 0x00c0, 0x1584: 0x00c0, 0x1585: 0x00c0, + 0x1586: 0x00c0, 0x1587: 0x00c0, 0x1588: 0x00c0, 0x1589: 0x00c0, 0x158a: 0x00c0, 0x158b: 0x00c0, + 0x158c: 0x00c0, 0x158d: 0x00c0, 0x158e: 0x00c0, 0x158f: 0x00c0, 0x1590: 0x00c0, 0x1591: 0x00c0, + 0x1592: 0x00c0, 0x1593: 0x00c0, 0x1594: 0x00c0, 0x1595: 0x00c0, 0x1596: 0x00c0, 0x1597: 0x00c0, + 0x1598: 0x00c0, 0x1599: 0x00c0, 0x159a: 0x00c0, 0x159b: 0x00c0, 0x159c: 0x00c0, 0x159d: 0x00c0, + 0x159e: 0x00c0, 0x159f: 0x00c0, 0x15a0: 0x00c0, 0x15a1: 0x00c0, 0x15a2: 0x00c0, 0x15a3: 0x00c0, + 0x15a4: 0x00c0, 0x15a5: 0x00c0, 0x15a6: 0x00c0, 0x15a7: 0x00c0, 0x15a8: 0x00c0, 0x15a9: 0x00c0, + 0x15aa: 0x00c0, 0x15ab: 0x00c0, + 0x15b0: 0x00c0, 0x15b1: 0x00c0, 0x15b2: 0x00c0, 0x15b3: 0x00c0, 0x15b4: 0x00c0, 0x15b5: 0x00c0, + 0x15b6: 0x00c0, 0x15b7: 0x00c0, 0x15b8: 0x00c0, 0x15b9: 0x00c0, 0x15ba: 0x00c0, 0x15bb: 0x00c0, + 0x15bc: 0x00c0, 0x15bd: 0x00c0, 0x15be: 0x00c0, 0x15bf: 0x00c0, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x00c0, 0x15c1: 0x00c0, 0x15c2: 0x00c0, 0x15c3: 0x00c0, 0x15c4: 0x00c0, 0x15c5: 0x00c0, + 0x15c6: 0x00c0, 0x15c7: 0x00c0, 0x15c8: 0x00c0, 0x15c9: 0x00c0, + 0x15d0: 0x00c0, 0x15d1: 0x00c0, + 0x15d2: 0x00c0, 0x15d3: 0x00c0, 0x15d4: 0x00c0, 0x15d5: 0x00c0, 0x15d6: 0x00c0, 0x15d7: 0x00c0, + 0x15d8: 0x00c0, 0x15d9: 0x00c0, 0x15da: 0x0080, + 0x15de: 0x0080, 0x15df: 0x0080, 0x15e0: 0x0080, 0x15e1: 0x0080, 0x15e2: 0x0080, 0x15e3: 0x0080, + 0x15e4: 0x0080, 0x15e5: 0x0080, 0x15e6: 0x0080, 0x15e7: 0x0080, 0x15e8: 0x0080, 0x15e9: 0x0080, + 0x15ea: 0x0080, 0x15eb: 0x0080, 0x15ec: 0x0080, 0x15ed: 0x0080, 0x15ee: 0x0080, 0x15ef: 0x0080, + 0x15f0: 0x0080, 0x15f1: 0x0080, 0x15f2: 0x0080, 0x15f3: 0x0080, 0x15f4: 0x0080, 0x15f5: 0x0080, + 0x15f6: 0x0080, 0x15f7: 0x0080, 0x15f8: 0x0080, 0x15f9: 0x0080, 0x15fa: 0x0080, 0x15fb: 0x0080, + 0x15fc: 0x0080, 0x15fd: 0x0080, 0x15fe: 0x0080, 0x15ff: 0x0080, + // Block 0x58, offset 0x1600 + 0x1600: 0x00c0, 0x1601: 0x00c0, 0x1602: 0x00c0, 0x1603: 0x00c0, 0x1604: 0x00c0, 0x1605: 0x00c0, + 0x1606: 0x00c0, 0x1607: 0x00c0, 0x1608: 0x00c0, 0x1609: 0x00c0, 0x160a: 0x00c0, 0x160b: 0x00c0, + 0x160c: 0x00c0, 0x160d: 0x00c0, 0x160e: 0x00c0, 0x160f: 0x00c0, 0x1610: 0x00c0, 0x1611: 0x00c0, + 0x1612: 0x00c0, 0x1613: 0x00c0, 0x1614: 0x00c0, 0x1615: 0x00c0, 0x1616: 0x00c0, 0x1617: 0x00c3, + 0x1618: 0x00c3, 0x1619: 0x00c0, 0x161a: 0x00c0, 0x161b: 0x00c3, + 0x161e: 0x0080, 0x161f: 0x0080, 0x1620: 0x00c0, 0x1621: 0x00c0, 0x1622: 0x00c0, 0x1623: 0x00c0, + 0x1624: 0x00c0, 0x1625: 0x00c0, 0x1626: 0x00c0, 0x1627: 0x00c0, 0x1628: 0x00c0, 0x1629: 0x00c0, + 0x162a: 0x00c0, 0x162b: 0x00c0, 0x162c: 0x00c0, 0x162d: 0x00c0, 0x162e: 0x00c0, 0x162f: 0x00c0, + 0x1630: 0x00c0, 0x1631: 0x00c0, 0x1632: 0x00c0, 0x1633: 0x00c0, 0x1634: 0x00c0, 0x1635: 0x00c0, + 0x1636: 0x00c0, 0x1637: 0x00c0, 0x1638: 0x00c0, 0x1639: 0x00c0, 0x163a: 0x00c0, 0x163b: 0x00c0, + 0x163c: 0x00c0, 0x163d: 0x00c0, 0x163e: 0x00c0, 0x163f: 0x00c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x00c0, 0x1641: 0x00c0, 0x1642: 0x00c0, 0x1643: 0x00c0, 0x1644: 0x00c0, 0x1645: 0x00c0, + 0x1646: 0x00c0, 0x1647: 0x00c0, 0x1648: 0x00c0, 0x1649: 0x00c0, 0x164a: 0x00c0, 0x164b: 0x00c0, + 0x164c: 0x00c0, 0x164d: 0x00c0, 0x164e: 0x00c0, 0x164f: 0x00c0, 0x1650: 0x00c0, 0x1651: 0x00c0, + 0x1652: 0x00c0, 0x1653: 0x00c0, 0x1654: 0x00c0, 0x1655: 0x00c0, 0x1656: 0x00c3, 0x1657: 0x00c0, + 0x1658: 0x00c3, 0x1659: 0x00c3, 0x165a: 0x00c3, 0x165b: 0x00c3, 0x165c: 0x00c3, 0x165d: 0x00c3, + 0x165e: 0x00c3, 0x1660: 0x00c6, 0x1661: 0x00c0, 0x1662: 0x00c3, 0x1663: 0x00c0, + 0x1664: 0x00c0, 0x1665: 0x00c3, 0x1666: 0x00c3, 0x1667: 0x00c3, 0x1668: 0x00c3, 0x1669: 0x00c3, + 0x166a: 0x00c3, 0x166b: 0x00c3, 0x166c: 0x00c3, 0x166d: 0x00c0, 0x166e: 0x00c0, 0x166f: 0x00c0, + 0x1670: 0x00c0, 0x1671: 0x00c0, 0x1672: 0x00c0, 0x1673: 0x00c3, 0x1674: 0x00c3, 0x1675: 0x00c3, + 0x1676: 0x00c3, 0x1677: 0x00c3, 0x1678: 0x00c3, 0x1679: 0x00c3, 0x167a: 0x00c3, 0x167b: 0x00c3, + 0x167c: 0x00c3, 0x167f: 0x00c3, + // Block 0x5a, offset 0x1680 + 0x1680: 0x00c0, 0x1681: 0x00c0, 0x1682: 0x00c0, 0x1683: 0x00c0, 0x1684: 0x00c0, 0x1685: 0x00c0, + 0x1686: 0x00c0, 0x1687: 0x00c0, 0x1688: 0x00c0, 0x1689: 0x00c0, + 0x1690: 0x00c0, 0x1691: 0x00c0, + 0x1692: 0x00c0, 0x1693: 0x00c0, 0x1694: 0x00c0, 0x1695: 0x00c0, 0x1696: 0x00c0, 0x1697: 0x00c0, + 0x1698: 0x00c0, 0x1699: 0x00c0, + 0x16a0: 0x0080, 0x16a1: 0x0080, 0x16a2: 0x0080, 0x16a3: 0x0080, + 0x16a4: 0x0080, 0x16a5: 0x0080, 0x16a6: 0x0080, 0x16a7: 0x00c0, 0x16a8: 0x0080, 0x16a9: 0x0080, + 0x16aa: 0x0080, 0x16ab: 0x0080, 0x16ac: 0x0080, 0x16ad: 0x0080, + 0x16b0: 0x00c3, 0x16b1: 0x00c3, 0x16b2: 0x00c3, 0x16b3: 0x00c3, 0x16b4: 0x00c3, 0x16b5: 0x00c3, + 0x16b6: 0x00c3, 0x16b7: 0x00c3, 0x16b8: 0x00c3, 0x16b9: 0x00c3, 0x16ba: 0x00c3, 0x16bb: 0x00c3, + 0x16bc: 0x00c3, 0x16bd: 0x00c3, 0x16be: 0x0083, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x00c3, 0x16c1: 0x00c3, 0x16c2: 0x00c3, 0x16c3: 0x00c3, 0x16c4: 0x00c0, 0x16c5: 0x00c0, + 0x16c6: 0x00c0, 0x16c7: 0x00c0, 0x16c8: 0x00c0, 0x16c9: 0x00c0, 0x16ca: 0x00c0, 0x16cb: 0x00c0, + 0x16cc: 0x00c0, 0x16cd: 0x00c0, 0x16ce: 0x00c0, 0x16cf: 0x00c0, 0x16d0: 0x00c0, 0x16d1: 0x00c0, + 0x16d2: 0x00c0, 0x16d3: 0x00c0, 0x16d4: 0x00c0, 0x16d5: 0x00c0, 0x16d6: 0x00c0, 0x16d7: 0x00c0, + 0x16d8: 0x00c0, 0x16d9: 0x00c0, 0x16da: 0x00c0, 0x16db: 0x00c0, 0x16dc: 0x00c0, 0x16dd: 0x00c0, + 0x16de: 0x00c0, 0x16df: 0x00c0, 0x16e0: 0x00c0, 0x16e1: 0x00c0, 0x16e2: 0x00c0, 0x16e3: 0x00c0, + 0x16e4: 0x00c0, 0x16e5: 0x00c0, 0x16e6: 0x00c0, 0x16e7: 0x00c0, 0x16e8: 0x00c0, 0x16e9: 0x00c0, + 0x16ea: 0x00c0, 0x16eb: 0x00c0, 0x16ec: 0x00c0, 0x16ed: 0x00c0, 0x16ee: 0x00c0, 0x16ef: 0x00c0, + 0x16f0: 0x00c0, 0x16f1: 0x00c0, 0x16f2: 0x00c0, 0x16f3: 0x00c0, 0x16f4: 0x00c3, 0x16f5: 0x00c0, + 0x16f6: 0x00c3, 0x16f7: 0x00c3, 0x16f8: 0x00c3, 0x16f9: 0x00c3, 0x16fa: 0x00c3, 0x16fb: 0x00c0, + 0x16fc: 0x00c3, 0x16fd: 0x00c0, 0x16fe: 0x00c0, 0x16ff: 0x00c0, + // Block 0x5c, offset 0x1700 + 0x1700: 0x00c0, 0x1701: 0x00c0, 0x1702: 0x00c3, 0x1703: 0x00c0, 0x1704: 0x00c5, 0x1705: 0x00c0, + 0x1706: 0x00c0, 0x1707: 0x00c0, 0x1708: 0x00c0, 0x1709: 0x00c0, 0x170a: 0x00c0, 0x170b: 0x00c0, + 0x1710: 0x00c0, 0x1711: 0x00c0, + 0x1712: 0x00c0, 0x1713: 0x00c0, 0x1714: 0x00c0, 0x1715: 0x00c0, 0x1716: 0x00c0, 0x1717: 0x00c0, + 0x1718: 0x00c0, 0x1719: 0x00c0, 0x171a: 0x0080, 0x171b: 0x0080, 0x171c: 0x0080, 0x171d: 0x0080, + 0x171e: 0x0080, 0x171f: 0x0080, 0x1720: 0x0080, 0x1721: 0x0080, 0x1722: 0x0080, 0x1723: 0x0080, + 0x1724: 0x0080, 0x1725: 0x0080, 0x1726: 0x0080, 0x1727: 0x0080, 0x1728: 0x0080, 0x1729: 0x0080, + 0x172a: 0x0080, 0x172b: 0x00c3, 0x172c: 0x00c3, 0x172d: 0x00c3, 0x172e: 0x00c3, 0x172f: 0x00c3, + 0x1730: 0x00c3, 0x1731: 0x00c3, 0x1732: 0x00c3, 0x1733: 0x00c3, 0x1734: 0x0080, 0x1735: 0x0080, + 0x1736: 0x0080, 0x1737: 0x0080, 0x1738: 0x0080, 0x1739: 0x0080, 0x173a: 0x0080, 0x173b: 0x0080, + 0x173c: 0x0080, + // Block 0x5d, offset 0x1740 + 0x1740: 0x00c3, 0x1741: 0x00c3, 0x1742: 0x00c0, 0x1743: 0x00c0, 0x1744: 0x00c0, 0x1745: 0x00c0, + 0x1746: 0x00c0, 0x1747: 0x00c0, 0x1748: 0x00c0, 0x1749: 0x00c0, 0x174a: 0x00c0, 0x174b: 0x00c0, + 0x174c: 0x00c0, 0x174d: 0x00c0, 0x174e: 0x00c0, 0x174f: 0x00c0, 0x1750: 0x00c0, 0x1751: 0x00c0, + 0x1752: 0x00c0, 0x1753: 0x00c0, 0x1754: 0x00c0, 0x1755: 0x00c0, 0x1756: 0x00c0, 0x1757: 0x00c0, + 0x1758: 0x00c0, 0x1759: 0x00c0, 0x175a: 0x00c0, 0x175b: 0x00c0, 0x175c: 0x00c0, 0x175d: 0x00c0, + 0x175e: 0x00c0, 0x175f: 0x00c0, 0x1760: 0x00c0, 0x1761: 0x00c0, 0x1762: 0x00c3, 0x1763: 0x00c3, + 0x1764: 0x00c3, 0x1765: 0x00c3, 0x1766: 0x00c0, 0x1767: 0x00c0, 0x1768: 0x00c3, 0x1769: 0x00c3, + 0x176a: 0x00c5, 0x176b: 0x00c6, 0x176c: 0x00c3, 0x176d: 0x00c3, 0x176e: 0x00c0, 0x176f: 0x00c0, + 0x1770: 0x00c0, 0x1771: 0x00c0, 0x1772: 0x00c0, 0x1773: 0x00c0, 0x1774: 0x00c0, 0x1775: 0x00c0, + 0x1776: 0x00c0, 0x1777: 0x00c0, 0x1778: 0x00c0, 0x1779: 0x00c0, 0x177a: 0x00c0, 0x177b: 0x00c0, + 0x177c: 0x00c0, 0x177d: 0x00c0, 0x177e: 0x00c0, 0x177f: 0x00c0, + // Block 0x5e, offset 0x1780 + 0x1780: 0x00c0, 0x1781: 0x00c0, 0x1782: 0x00c0, 0x1783: 0x00c0, 0x1784: 0x00c0, 0x1785: 0x00c0, + 0x1786: 0x00c0, 0x1787: 0x00c0, 0x1788: 0x00c0, 0x1789: 0x00c0, 0x178a: 0x00c0, 0x178b: 0x00c0, + 0x178c: 0x00c0, 0x178d: 0x00c0, 0x178e: 0x00c0, 0x178f: 0x00c0, 0x1790: 0x00c0, 0x1791: 0x00c0, + 0x1792: 0x00c0, 0x1793: 0x00c0, 0x1794: 0x00c0, 0x1795: 0x00c0, 0x1796: 0x00c0, 0x1797: 0x00c0, + 0x1798: 0x00c0, 0x1799: 0x00c0, 0x179a: 0x00c0, 0x179b: 0x00c0, 0x179c: 0x00c0, 0x179d: 0x00c0, + 0x179e: 0x00c0, 0x179f: 0x00c0, 0x17a0: 0x00c0, 0x17a1: 0x00c0, 0x17a2: 0x00c0, 0x17a3: 0x00c0, + 0x17a4: 0x00c0, 0x17a5: 0x00c0, 0x17a6: 0x00c3, 0x17a7: 0x00c0, 0x17a8: 0x00c3, 0x17a9: 0x00c3, + 0x17aa: 0x00c0, 0x17ab: 0x00c0, 0x17ac: 0x00c0, 0x17ad: 0x00c3, 0x17ae: 0x00c0, 0x17af: 0x00c3, + 0x17b0: 0x00c3, 0x17b1: 0x00c3, 0x17b2: 0x00c5, 0x17b3: 0x00c5, + 0x17bc: 0x0080, 0x17bd: 0x0080, 0x17be: 0x0080, 0x17bf: 0x0080, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x00c0, 0x17c1: 0x00c0, 0x17c2: 0x00c0, 0x17c3: 0x00c0, 0x17c4: 0x00c0, 0x17c5: 0x00c0, + 0x17c6: 0x00c0, 0x17c7: 0x00c0, 0x17c8: 0x00c0, 0x17c9: 0x00c0, 0x17ca: 0x00c0, 0x17cb: 0x00c0, + 0x17cc: 0x00c0, 0x17cd: 0x00c0, 0x17ce: 0x00c0, 0x17cf: 0x00c0, 0x17d0: 0x00c0, 0x17d1: 0x00c0, + 0x17d2: 0x00c0, 0x17d3: 0x00c0, 0x17d4: 0x00c0, 0x17d5: 0x00c0, 0x17d6: 0x00c0, 0x17d7: 0x00c0, + 0x17d8: 0x00c0, 0x17d9: 0x00c0, 0x17da: 0x00c0, 0x17db: 0x00c0, 0x17dc: 0x00c0, 0x17dd: 0x00c0, + 0x17de: 0x00c0, 0x17df: 0x00c0, 0x17e0: 0x00c0, 0x17e1: 0x00c0, 0x17e2: 0x00c0, 0x17e3: 0x00c0, + 0x17e4: 0x00c0, 0x17e5: 0x00c0, 0x17e6: 0x00c0, 0x17e7: 0x00c0, 0x17e8: 0x00c0, 0x17e9: 0x00c0, + 0x17ea: 0x00c0, 0x17eb: 0x00c0, 0x17ec: 0x00c3, 0x17ed: 0x00c3, 0x17ee: 0x00c3, 0x17ef: 0x00c3, + 0x17f0: 0x00c3, 0x17f1: 0x00c3, 0x17f2: 0x00c3, 0x17f3: 0x00c3, 0x17f4: 0x00c0, 0x17f5: 0x00c0, + 0x17f6: 0x00c3, 0x17f7: 0x00c3, 0x17fb: 0x0080, + 0x17fc: 0x0080, 0x17fd: 0x0080, 0x17fe: 0x0080, 0x17ff: 0x0080, + // Block 0x60, offset 0x1800 + 0x1800: 0x00c0, 0x1801: 0x00c0, 0x1802: 0x00c0, 0x1803: 0x00c0, 0x1804: 0x00c0, 0x1805: 0x00c0, + 0x1806: 0x00c0, 0x1807: 0x00c0, 0x1808: 0x00c0, 0x1809: 0x00c0, + 0x180d: 0x00c0, 0x180e: 0x00c0, 0x180f: 0x00c0, 0x1810: 0x00c0, 0x1811: 0x00c0, + 0x1812: 0x00c0, 0x1813: 0x00c0, 0x1814: 0x00c0, 0x1815: 0x00c0, 0x1816: 0x00c0, 0x1817: 0x00c0, + 0x1818: 0x00c0, 0x1819: 0x00c0, 0x181a: 0x00c0, 0x181b: 0x00c0, 0x181c: 0x00c0, 0x181d: 0x00c0, + 0x181e: 0x00c0, 0x181f: 0x00c0, 0x1820: 0x00c0, 0x1821: 0x00c0, 0x1822: 0x00c0, 0x1823: 0x00c0, + 0x1824: 0x00c0, 0x1825: 0x00c0, 0x1826: 0x00c0, 0x1827: 0x00c0, 0x1828: 0x00c0, 0x1829: 0x00c0, + 0x182a: 0x00c0, 0x182b: 0x00c0, 0x182c: 0x00c0, 0x182d: 0x00c0, 0x182e: 0x00c0, 0x182f: 0x00c0, + 0x1830: 0x00c0, 0x1831: 0x00c0, 0x1832: 0x00c0, 0x1833: 0x00c0, 0x1834: 0x00c0, 0x1835: 0x00c0, + 0x1836: 0x00c0, 0x1837: 0x00c0, 0x1838: 0x00c0, 0x1839: 0x00c0, 0x183a: 0x00c0, 0x183b: 0x00c0, + 0x183c: 0x00c0, 0x183d: 0x00c0, 0x183e: 0x0080, 0x183f: 0x0080, + // Block 0x61, offset 0x1840 + 0x1840: 0x00c0, 0x1841: 0x00c0, 0x1842: 0x00c0, 0x1843: 0x00c0, 0x1844: 0x00c0, 0x1845: 0x00c0, + 0x1846: 0x00c0, 0x1847: 0x00c0, 0x1848: 0x00c0, + // Block 0x62, offset 0x1880 + 0x1880: 0x0080, 0x1881: 0x0080, 0x1882: 0x0080, 0x1883: 0x0080, 0x1884: 0x0080, 0x1885: 0x0080, + 0x1886: 0x0080, 0x1887: 0x0080, + 0x1890: 0x00c3, 0x1891: 0x00c3, + 0x1892: 0x00c3, 0x1893: 0x0080, 0x1894: 0x00c3, 0x1895: 0x00c3, 0x1896: 0x00c3, 0x1897: 0x00c3, + 0x1898: 0x00c3, 0x1899: 0x00c3, 0x189a: 0x00c3, 0x189b: 0x00c3, 0x189c: 0x00c3, 0x189d: 0x00c3, + 0x189e: 0x00c3, 0x189f: 0x00c3, 0x18a0: 0x00c3, 0x18a1: 0x00c0, 0x18a2: 0x00c3, 0x18a3: 0x00c3, + 0x18a4: 0x00c3, 0x18a5: 0x00c3, 0x18a6: 0x00c3, 0x18a7: 0x00c3, 0x18a8: 0x00c3, 0x18a9: 0x00c0, + 0x18aa: 0x00c0, 0x18ab: 0x00c0, 0x18ac: 0x00c0, 0x18ad: 0x00c3, 0x18ae: 0x00c0, 0x18af: 0x00c0, + 0x18b0: 0x00c0, 0x18b1: 0x00c0, 0x18b2: 0x00c0, 0x18b3: 0x00c0, 0x18b4: 0x00c3, 0x18b5: 0x00c0, + 0x18b6: 0x00c0, 0x18b8: 0x00c3, 0x18b9: 0x00c3, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x00c0, 0x18c1: 0x00c0, 0x18c2: 0x00c0, 0x18c3: 0x00c0, 0x18c4: 0x00c0, 0x18c5: 0x00c0, + 0x18c6: 0x00c0, 0x18c7: 0x00c0, 0x18c8: 0x00c0, 0x18c9: 0x00c0, 0x18ca: 0x00c0, 0x18cb: 0x00c0, + 0x18cc: 0x00c0, 0x18cd: 0x00c0, 0x18ce: 0x00c0, 0x18cf: 0x00c0, 0x18d0: 0x00c0, 0x18d1: 0x00c0, + 0x18d2: 0x00c0, 0x18d3: 0x00c0, 0x18d4: 0x00c0, 0x18d5: 0x00c0, 0x18d6: 0x00c0, 0x18d7: 0x00c0, + 0x18d8: 0x00c0, 0x18d9: 0x00c0, 0x18da: 0x00c0, 0x18db: 0x00c0, 0x18dc: 0x00c0, 0x18dd: 0x00c0, + 0x18de: 0x00c0, 0x18df: 0x00c0, 0x18e0: 0x00c0, 0x18e1: 0x00c0, 0x18e2: 0x00c0, 0x18e3: 0x00c0, + 0x18e4: 0x00c0, 0x18e5: 0x00c0, 0x18e6: 0x00c8, 0x18e7: 0x00c8, 0x18e8: 0x00c8, 0x18e9: 0x00c8, + 0x18ea: 0x00c8, 0x18eb: 0x00c0, 0x18ec: 0x0080, 0x18ed: 0x0080, 0x18ee: 0x0080, 0x18ef: 0x00c0, + 0x18f0: 0x0080, 0x18f1: 0x0080, 0x18f2: 0x0080, 0x18f3: 0x0080, 0x18f4: 0x0080, 0x18f5: 0x0080, + 0x18f6: 0x0080, 0x18f7: 0x0080, 0x18f8: 0x0080, 0x18f9: 0x0080, 0x18fa: 0x0080, 0x18fb: 0x00c0, + 0x18fc: 0x0080, 0x18fd: 0x0080, 0x18fe: 0x0080, 0x18ff: 0x0080, + // Block 0x64, offset 0x1900 + 0x1900: 0x0080, 0x1901: 0x0080, 0x1902: 0x0080, 0x1903: 0x0080, 0x1904: 0x0080, 0x1905: 0x0080, + 0x1906: 0x0080, 0x1907: 0x0080, 0x1908: 0x0080, 0x1909: 0x0080, 0x190a: 0x0080, 0x190b: 0x0080, + 0x190c: 0x0080, 0x190d: 0x0080, 0x190e: 0x00c0, 0x190f: 0x0080, 0x1910: 0x0080, 0x1911: 0x0080, + 0x1912: 0x0080, 0x1913: 0x0080, 0x1914: 0x0080, 0x1915: 0x0080, 0x1916: 0x0080, 0x1917: 0x0080, + 0x1918: 0x0080, 0x1919: 0x0080, 0x191a: 0x0080, 0x191b: 0x0080, 0x191c: 0x0080, 0x191d: 0x0088, + 0x191e: 0x0088, 0x191f: 0x0088, 0x1920: 0x0088, 0x1921: 0x0088, 0x1922: 0x0080, 0x1923: 0x0080, + 0x1924: 0x0080, 0x1925: 0x0080, 0x1926: 0x0088, 0x1927: 0x0088, 0x1928: 0x0088, 0x1929: 0x0088, + 0x192a: 0x0088, 0x192b: 0x00c0, 0x192c: 0x00c0, 0x192d: 0x00c0, 0x192e: 0x00c0, 0x192f: 0x00c0, + 0x1930: 0x00c0, 0x1931: 0x00c0, 0x1932: 0x00c0, 0x1933: 0x00c0, 0x1934: 0x00c0, 0x1935: 0x00c0, + 0x1936: 0x00c0, 0x1937: 0x00c0, 0x1938: 0x0080, 0x1939: 0x00c0, 0x193a: 0x00c0, 0x193b: 0x00c0, + 0x193c: 0x00c0, 0x193d: 0x00c0, 0x193e: 0x00c0, 0x193f: 0x00c0, + // Block 0x65, offset 0x1940 + 0x1940: 0x00c0, 0x1941: 0x00c0, 0x1942: 0x00c0, 0x1943: 0x00c0, 0x1944: 0x00c0, 0x1945: 0x00c0, + 0x1946: 0x00c0, 0x1947: 0x00c0, 0x1948: 0x00c0, 0x1949: 0x00c0, 0x194a: 0x00c0, 0x194b: 0x00c0, + 0x194c: 0x00c0, 0x194d: 0x00c0, 0x194e: 0x00c0, 0x194f: 0x00c0, 0x1950: 0x00c0, 0x1951: 0x00c0, + 0x1952: 0x00c0, 0x1953: 0x00c0, 0x1954: 0x00c0, 0x1955: 0x00c0, 0x1956: 0x00c0, 0x1957: 0x00c0, + 0x1958: 0x00c0, 0x1959: 0x00c0, 0x195a: 0x00c0, 0x195b: 0x0080, 0x195c: 0x0080, 0x195d: 0x0080, + 0x195e: 0x0080, 0x195f: 0x0080, 0x1960: 0x0080, 0x1961: 0x0080, 0x1962: 0x0080, 0x1963: 0x0080, + 0x1964: 0x0080, 0x1965: 0x0080, 0x1966: 0x0080, 0x1967: 0x0080, 0x1968: 0x0080, 0x1969: 0x0080, + 0x196a: 0x0080, 0x196b: 0x0080, 0x196c: 0x0080, 0x196d: 0x0080, 0x196e: 0x0080, 0x196f: 0x0080, + 0x1970: 0x0080, 0x1971: 0x0080, 0x1972: 0x0080, 0x1973: 0x0080, 0x1974: 0x0080, 0x1975: 0x0080, + 0x1976: 0x0080, 0x1977: 0x0080, 0x1978: 0x0080, 0x1979: 0x0080, 0x197a: 0x0080, 0x197b: 0x0080, + 0x197c: 0x0080, 0x197d: 0x0080, 0x197e: 0x0080, 0x197f: 0x0088, + // Block 0x66, offset 0x1980 + 0x1980: 0x00c3, 0x1981: 0x00c3, 0x1982: 0x00c3, 0x1983: 0x00c3, 0x1984: 0x00c3, 0x1985: 0x00c3, + 0x1986: 0x00c3, 0x1987: 0x00c3, 0x1988: 0x00c3, 0x1989: 0x00c3, 0x198a: 0x00c3, 0x198b: 0x00c3, + 0x198c: 0x00c3, 0x198d: 0x00c3, 0x198e: 0x00c3, 0x198f: 0x00c3, 0x1990: 0x00c3, 0x1991: 0x00c3, + 0x1992: 0x00c3, 0x1993: 0x00c3, 0x1994: 0x00c3, 0x1995: 0x00c3, 0x1996: 0x00c3, 0x1997: 0x00c3, + 0x1998: 0x00c3, 0x1999: 0x00c3, 0x199a: 0x00c3, 0x199b: 0x00c3, 0x199c: 0x00c3, 0x199d: 0x00c3, + 0x199e: 0x00c3, 0x199f: 0x00c3, 0x19a0: 0x00c3, 0x19a1: 0x00c3, 0x19a2: 0x00c3, 0x19a3: 0x00c3, + 0x19a4: 0x00c3, 0x19a5: 0x00c3, 0x19a6: 0x00c3, 0x19a7: 0x00c3, 0x19a8: 0x00c3, 0x19a9: 0x00c3, + 0x19aa: 0x00c3, 0x19ab: 0x00c3, 0x19ac: 0x00c3, 0x19ad: 0x00c3, 0x19ae: 0x00c3, 0x19af: 0x00c3, + 0x19b0: 0x00c3, 0x19b1: 0x00c3, 0x19b2: 0x00c3, 0x19b3: 0x00c3, 0x19b4: 0x00c3, 0x19b5: 0x00c3, + 0x19bb: 0x00c3, + 0x19bc: 0x00c3, 0x19bd: 0x00c3, 0x19be: 0x00c3, 0x19bf: 0x00c3, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x00c0, 0x19c1: 0x00c0, 0x19c2: 0x00c0, 0x19c3: 0x00c0, 0x19c4: 0x00c0, 0x19c5: 0x00c0, + 0x19c6: 0x00c0, 0x19c7: 0x00c0, 0x19c8: 0x00c0, 0x19c9: 0x00c0, 0x19ca: 0x00c0, 0x19cb: 0x00c0, + 0x19cc: 0x00c0, 0x19cd: 0x00c0, 0x19ce: 0x00c0, 0x19cf: 0x00c0, 0x19d0: 0x00c0, 0x19d1: 0x00c0, + 0x19d2: 0x00c0, 0x19d3: 0x00c0, 0x19d4: 0x00c0, 0x19d5: 0x00c0, 0x19d6: 0x00c0, 0x19d7: 0x00c0, + 0x19d8: 0x00c0, 0x19d9: 0x00c0, 0x19da: 0x0080, 0x19db: 0x0080, 0x19dc: 0x00c0, 0x19dd: 0x00c0, + 0x19de: 0x00c0, 0x19df: 0x00c0, 0x19e0: 0x00c0, 0x19e1: 0x00c0, 0x19e2: 0x00c0, 0x19e3: 0x00c0, + 0x19e4: 0x00c0, 0x19e5: 0x00c0, 0x19e6: 0x00c0, 0x19e7: 0x00c0, 0x19e8: 0x00c0, 0x19e9: 0x00c0, + 0x19ea: 0x00c0, 0x19eb: 0x00c0, 0x19ec: 0x00c0, 0x19ed: 0x00c0, 0x19ee: 0x00c0, 0x19ef: 0x00c0, + 0x19f0: 0x00c0, 0x19f1: 0x00c0, 0x19f2: 0x00c0, 0x19f3: 0x00c0, 0x19f4: 0x00c0, 0x19f5: 0x00c0, + 0x19f6: 0x00c0, 0x19f7: 0x00c0, 0x19f8: 0x00c0, 0x19f9: 0x00c0, 0x19fa: 0x00c0, 0x19fb: 0x00c0, + 0x19fc: 0x00c0, 0x19fd: 0x00c0, 0x19fe: 0x00c0, 0x19ff: 0x00c0, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x00c8, 0x1a01: 0x00c8, 0x1a02: 0x00c8, 0x1a03: 0x00c8, 0x1a04: 0x00c8, 0x1a05: 0x00c8, + 0x1a06: 0x00c8, 0x1a07: 0x00c8, 0x1a08: 0x00c8, 0x1a09: 0x00c8, 0x1a0a: 0x00c8, 0x1a0b: 0x00c8, + 0x1a0c: 0x00c8, 0x1a0d: 0x00c8, 0x1a0e: 0x00c8, 0x1a0f: 0x00c8, 0x1a10: 0x00c8, 0x1a11: 0x00c8, + 0x1a12: 0x00c8, 0x1a13: 0x00c8, 0x1a14: 0x00c8, 0x1a15: 0x00c8, + 0x1a18: 0x00c8, 0x1a19: 0x00c8, 0x1a1a: 0x00c8, 0x1a1b: 0x00c8, 0x1a1c: 0x00c8, 0x1a1d: 0x00c8, + 0x1a20: 0x00c8, 0x1a21: 0x00c8, 0x1a22: 0x00c8, 0x1a23: 0x00c8, + 0x1a24: 0x00c8, 0x1a25: 0x00c8, 0x1a26: 0x00c8, 0x1a27: 0x00c8, 0x1a28: 0x00c8, 0x1a29: 0x00c8, + 0x1a2a: 0x00c8, 0x1a2b: 0x00c8, 0x1a2c: 0x00c8, 0x1a2d: 0x00c8, 0x1a2e: 0x00c8, 0x1a2f: 0x00c8, + 0x1a30: 0x00c8, 0x1a31: 0x00c8, 0x1a32: 0x00c8, 0x1a33: 0x00c8, 0x1a34: 0x00c8, 0x1a35: 0x00c8, + 0x1a36: 0x00c8, 0x1a37: 0x00c8, 0x1a38: 0x00c8, 0x1a39: 0x00c8, 0x1a3a: 0x00c8, 0x1a3b: 0x00c8, + 0x1a3c: 0x00c8, 0x1a3d: 0x00c8, 0x1a3e: 0x00c8, 0x1a3f: 0x00c8, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x00c8, 0x1a41: 0x00c8, 0x1a42: 0x00c8, 0x1a43: 0x00c8, 0x1a44: 0x00c8, 0x1a45: 0x00c8, + 0x1a48: 0x00c8, 0x1a49: 0x00c8, 0x1a4a: 0x00c8, 0x1a4b: 0x00c8, + 0x1a4c: 0x00c8, 0x1a4d: 0x00c8, 0x1a50: 0x00c8, 0x1a51: 0x00c8, + 0x1a52: 0x00c8, 0x1a53: 0x00c8, 0x1a54: 0x00c8, 0x1a55: 0x00c8, 0x1a56: 0x00c8, 0x1a57: 0x00c8, + 0x1a59: 0x00c8, 0x1a5b: 0x00c8, 0x1a5d: 0x00c8, + 0x1a5f: 0x00c8, 0x1a60: 0x00c8, 0x1a61: 0x00c8, 0x1a62: 0x00c8, 0x1a63: 0x00c8, + 0x1a64: 0x00c8, 0x1a65: 0x00c8, 0x1a66: 0x00c8, 0x1a67: 0x00c8, 0x1a68: 0x00c8, 0x1a69: 0x00c8, + 0x1a6a: 0x00c8, 0x1a6b: 0x00c8, 0x1a6c: 0x00c8, 0x1a6d: 0x00c8, 0x1a6e: 0x00c8, 0x1a6f: 0x00c8, + 0x1a70: 0x00c8, 0x1a71: 0x0088, 0x1a72: 0x00c8, 0x1a73: 0x0088, 0x1a74: 0x00c8, 0x1a75: 0x0088, + 0x1a76: 0x00c8, 0x1a77: 0x0088, 0x1a78: 0x00c8, 0x1a79: 0x0088, 0x1a7a: 0x00c8, 0x1a7b: 0x0088, + 0x1a7c: 0x00c8, 0x1a7d: 0x0088, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x00c8, 0x1a81: 0x00c8, 0x1a82: 0x00c8, 0x1a83: 0x00c8, 0x1a84: 0x00c8, 0x1a85: 0x00c8, + 0x1a86: 0x00c8, 0x1a87: 0x00c8, 0x1a88: 0x0088, 0x1a89: 0x0088, 0x1a8a: 0x0088, 0x1a8b: 0x0088, + 0x1a8c: 0x0088, 0x1a8d: 0x0088, 0x1a8e: 0x0088, 0x1a8f: 0x0088, 0x1a90: 0x00c8, 0x1a91: 0x00c8, + 0x1a92: 0x00c8, 0x1a93: 0x00c8, 0x1a94: 0x00c8, 0x1a95: 0x00c8, 0x1a96: 0x00c8, 0x1a97: 0x00c8, + 0x1a98: 0x0088, 0x1a99: 0x0088, 0x1a9a: 0x0088, 0x1a9b: 0x0088, 0x1a9c: 0x0088, 0x1a9d: 0x0088, + 0x1a9e: 0x0088, 0x1a9f: 0x0088, 0x1aa0: 0x00c8, 0x1aa1: 0x00c8, 0x1aa2: 0x00c8, 0x1aa3: 0x00c8, + 0x1aa4: 0x00c8, 0x1aa5: 0x00c8, 0x1aa6: 0x00c8, 0x1aa7: 0x00c8, 0x1aa8: 0x0088, 0x1aa9: 0x0088, + 0x1aaa: 0x0088, 0x1aab: 0x0088, 0x1aac: 0x0088, 0x1aad: 0x0088, 0x1aae: 0x0088, 0x1aaf: 0x0088, + 0x1ab0: 0x00c8, 0x1ab1: 0x00c8, 0x1ab2: 0x00c8, 0x1ab3: 0x00c8, 0x1ab4: 0x00c8, + 0x1ab6: 0x00c8, 0x1ab7: 0x00c8, 0x1ab8: 0x00c8, 0x1ab9: 0x00c8, 0x1aba: 0x00c8, 0x1abb: 0x0088, + 0x1abc: 0x0088, 0x1abd: 0x0088, 0x1abe: 0x0088, 0x1abf: 0x0088, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x0088, 0x1ac1: 0x0088, 0x1ac2: 0x00c8, 0x1ac3: 0x00c8, 0x1ac4: 0x00c8, + 0x1ac6: 0x00c8, 0x1ac7: 0x00c8, 0x1ac8: 0x00c8, 0x1ac9: 0x0088, 0x1aca: 0x00c8, 0x1acb: 0x0088, + 0x1acc: 0x0088, 0x1acd: 0x0088, 0x1ace: 0x0088, 0x1acf: 0x0088, 0x1ad0: 0x00c8, 0x1ad1: 0x00c8, + 0x1ad2: 0x00c8, 0x1ad3: 0x0088, 0x1ad6: 0x00c8, 0x1ad7: 0x00c8, + 0x1ad8: 0x00c8, 0x1ad9: 0x00c8, 0x1ada: 0x00c8, 0x1adb: 0x0088, 0x1add: 0x0088, + 0x1ade: 0x0088, 0x1adf: 0x0088, 0x1ae0: 0x00c8, 0x1ae1: 0x00c8, 0x1ae2: 0x00c8, 0x1ae3: 0x0088, + 0x1ae4: 0x00c8, 0x1ae5: 0x00c8, 0x1ae6: 0x00c8, 0x1ae7: 0x00c8, 0x1ae8: 0x00c8, 0x1ae9: 0x00c8, + 0x1aea: 0x00c8, 0x1aeb: 0x0088, 0x1aec: 0x00c8, 0x1aed: 0x0088, 0x1aee: 0x0088, 0x1aef: 0x0088, + 0x1af2: 0x00c8, 0x1af3: 0x00c8, 0x1af4: 0x00c8, + 0x1af6: 0x00c8, 0x1af7: 0x00c8, 0x1af8: 0x00c8, 0x1af9: 0x0088, 0x1afa: 0x00c8, 0x1afb: 0x0088, + 0x1afc: 0x0088, 0x1afd: 0x0088, 0x1afe: 0x0088, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x0080, 0x1b01: 0x0080, 0x1b02: 0x0080, 0x1b03: 0x0080, 0x1b04: 0x0080, 0x1b05: 0x0080, + 0x1b06: 0x0080, 0x1b07: 0x0080, 0x1b08: 0x0080, 0x1b09: 0x0080, 0x1b0a: 0x0080, 0x1b0b: 0x0040, + 0x1b0c: 0x004d, 0x1b0d: 0x004e, 0x1b0e: 0x0040, 0x1b0f: 0x0040, 0x1b10: 0x0080, 0x1b11: 0x0080, + 0x1b12: 0x0080, 0x1b13: 0x0080, 0x1b14: 0x0080, 0x1b15: 0x0080, 0x1b16: 0x0080, 0x1b17: 0x0080, + 0x1b18: 0x0080, 0x1b19: 0x0080, 0x1b1a: 0x0080, 0x1b1b: 0x0080, 0x1b1c: 0x0080, 0x1b1d: 0x0080, + 0x1b1e: 0x0080, 0x1b1f: 0x0080, 0x1b20: 0x0080, 0x1b21: 0x0080, 0x1b22: 0x0080, 0x1b23: 0x0080, + 0x1b24: 0x0080, 0x1b25: 0x0080, 0x1b26: 0x0080, 0x1b27: 0x0080, 0x1b28: 0x0040, 0x1b29: 0x0040, + 0x1b2a: 0x0040, 0x1b2b: 0x0040, 0x1b2c: 0x0040, 0x1b2d: 0x0040, 0x1b2e: 0x0040, 0x1b2f: 0x0080, + 0x1b30: 0x0080, 0x1b31: 0x0080, 0x1b32: 0x0080, 0x1b33: 0x0080, 0x1b34: 0x0080, 0x1b35: 0x0080, + 0x1b36: 0x0080, 0x1b37: 0x0080, 0x1b38: 0x0080, 0x1b39: 0x0080, 0x1b3a: 0x0080, 0x1b3b: 0x0080, + 0x1b3c: 0x0080, 0x1b3d: 0x0080, 0x1b3e: 0x0080, 0x1b3f: 0x0080, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x0080, 0x1b41: 0x0080, 0x1b42: 0x0080, 0x1b43: 0x0080, 0x1b44: 0x0080, 0x1b45: 0x0080, + 0x1b46: 0x0080, 0x1b47: 0x0080, 0x1b48: 0x0080, 0x1b49: 0x0080, 0x1b4a: 0x0080, 0x1b4b: 0x0080, + 0x1b4c: 0x0080, 0x1b4d: 0x0080, 0x1b4e: 0x0080, 0x1b4f: 0x0080, 0x1b50: 0x0080, 0x1b51: 0x0080, + 0x1b52: 0x0080, 0x1b53: 0x0080, 0x1b54: 0x0080, 0x1b55: 0x0080, 0x1b56: 0x0080, 0x1b57: 0x0080, + 0x1b58: 0x0080, 0x1b59: 0x0080, 0x1b5a: 0x0080, 0x1b5b: 0x0080, 0x1b5c: 0x0080, 0x1b5d: 0x0080, + 0x1b5e: 0x0080, 0x1b5f: 0x0080, 0x1b60: 0x0040, 0x1b61: 0x0040, 0x1b62: 0x0040, 0x1b63: 0x0040, + 0x1b64: 0x0040, 0x1b66: 0x0040, 0x1b67: 0x0040, 0x1b68: 0x0040, 0x1b69: 0x0040, + 0x1b6a: 0x0040, 0x1b6b: 0x0040, 0x1b6c: 0x0040, 0x1b6d: 0x0040, 0x1b6e: 0x0040, 0x1b6f: 0x0040, + 0x1b70: 0x0080, 0x1b71: 0x0080, 0x1b74: 0x0080, 0x1b75: 0x0080, + 0x1b76: 0x0080, 0x1b77: 0x0080, 0x1b78: 0x0080, 0x1b79: 0x0080, 0x1b7a: 0x0080, 0x1b7b: 0x0080, + 0x1b7c: 0x0080, 0x1b7d: 0x0080, 0x1b7e: 0x0080, 0x1b7f: 0x0080, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x0080, 0x1b81: 0x0080, 0x1b82: 0x0080, 0x1b83: 0x0080, 0x1b84: 0x0080, 0x1b85: 0x0080, + 0x1b86: 0x0080, 0x1b87: 0x0080, 0x1b88: 0x0080, 0x1b89: 0x0080, 0x1b8a: 0x0080, 0x1b8b: 0x0080, + 0x1b8c: 0x0080, 0x1b8d: 0x0080, 0x1b8e: 0x0080, 0x1b90: 0x0080, 0x1b91: 0x0080, + 0x1b92: 0x0080, 0x1b93: 0x0080, 0x1b94: 0x0080, 0x1b95: 0x0080, 0x1b96: 0x0080, 0x1b97: 0x0080, + 0x1b98: 0x0080, 0x1b99: 0x0080, 0x1b9a: 0x0080, 0x1b9b: 0x0080, 0x1b9c: 0x0080, + 0x1ba0: 0x0080, 0x1ba1: 0x0080, 0x1ba2: 0x0080, 0x1ba3: 0x0080, + 0x1ba4: 0x0080, 0x1ba5: 0x0080, 0x1ba6: 0x0080, 0x1ba7: 0x0080, 0x1ba8: 0x0080, 0x1ba9: 0x0080, + 0x1baa: 0x0080, 0x1bab: 0x0080, 0x1bac: 0x0080, 0x1bad: 0x0080, 0x1bae: 0x0080, 0x1baf: 0x0080, + 0x1bb0: 0x0080, 0x1bb1: 0x0080, 0x1bb2: 0x0080, 0x1bb3: 0x0080, 0x1bb4: 0x0080, 0x1bb5: 0x0080, + 0x1bb6: 0x0080, 0x1bb7: 0x0080, 0x1bb8: 0x0080, 0x1bb9: 0x0080, 0x1bba: 0x0080, 0x1bbb: 0x0080, + 0x1bbc: 0x0080, 0x1bbd: 0x0080, 0x1bbe: 0x0080, + // Block 0x6f, offset 0x1bc0 + 0x1bd0: 0x00c3, 0x1bd1: 0x00c3, + 0x1bd2: 0x00c3, 0x1bd3: 0x00c3, 0x1bd4: 0x00c3, 0x1bd5: 0x00c3, 0x1bd6: 0x00c3, 0x1bd7: 0x00c3, + 0x1bd8: 0x00c3, 0x1bd9: 0x00c3, 0x1bda: 0x00c3, 0x1bdb: 0x00c3, 0x1bdc: 0x00c3, 0x1bdd: 0x0083, + 0x1bde: 0x0083, 0x1bdf: 0x0083, 0x1be0: 0x0083, 0x1be1: 0x00c3, 0x1be2: 0x0083, 0x1be3: 0x0083, + 0x1be4: 0x0083, 0x1be5: 0x00c3, 0x1be6: 0x00c3, 0x1be7: 0x00c3, 0x1be8: 0x00c3, 0x1be9: 0x00c3, + 0x1bea: 0x00c3, 0x1beb: 0x00c3, 0x1bec: 0x00c3, 0x1bed: 0x00c3, 0x1bee: 0x00c3, 0x1bef: 0x00c3, + 0x1bf0: 0x00c3, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x0080, 0x1c01: 0x0080, 0x1c02: 0x0080, 0x1c03: 0x0080, 0x1c04: 0x0080, 0x1c05: 0x0080, + 0x1c06: 0x0080, 0x1c07: 0x0080, 0x1c08: 0x0080, 0x1c09: 0x0080, 0x1c0a: 0x0080, 0x1c0b: 0x0080, + 0x1c0c: 0x0080, 0x1c0d: 0x0080, 0x1c0e: 0x0080, 0x1c0f: 0x0080, 0x1c10: 0x0080, 0x1c11: 0x0080, + 0x1c12: 0x0080, 0x1c13: 0x0080, 0x1c14: 0x0080, 0x1c15: 0x0080, 0x1c16: 0x0080, 0x1c17: 0x0080, + 0x1c18: 0x0080, 0x1c19: 0x0080, 0x1c1a: 0x0080, 0x1c1b: 0x0080, 0x1c1c: 0x0080, 0x1c1d: 0x0080, + 0x1c1e: 0x0080, 0x1c1f: 0x0080, 0x1c20: 0x0080, 0x1c21: 0x0080, 0x1c22: 0x0080, 0x1c23: 0x0080, + 0x1c24: 0x0080, 0x1c25: 0x0080, 0x1c26: 0x0088, 0x1c27: 0x0080, 0x1c28: 0x0080, 0x1c29: 0x0080, + 0x1c2a: 0x0080, 0x1c2b: 0x0080, 0x1c2c: 0x0080, 0x1c2d: 0x0080, 0x1c2e: 0x0080, 0x1c2f: 0x0080, + 0x1c30: 0x0080, 0x1c31: 0x0080, 0x1c32: 0x00c0, 0x1c33: 0x0080, 0x1c34: 0x0080, 0x1c35: 0x0080, + 0x1c36: 0x0080, 0x1c37: 0x0080, 0x1c38: 0x0080, 0x1c39: 0x0080, 0x1c3a: 0x0080, 0x1c3b: 0x0080, + 0x1c3c: 0x0080, 0x1c3d: 0x0080, 0x1c3e: 0x0080, 0x1c3f: 0x0080, + // Block 0x71, offset 0x1c40 + 0x1c40: 0x0080, 0x1c41: 0x0080, 0x1c42: 0x0080, 0x1c43: 0x0080, 0x1c44: 0x0080, 0x1c45: 0x0080, + 0x1c46: 0x0080, 0x1c47: 0x0080, 0x1c48: 0x0080, 0x1c49: 0x0080, 0x1c4a: 0x0080, 0x1c4b: 0x0080, + 0x1c4c: 0x0080, 0x1c4d: 0x0080, 0x1c4e: 0x00c0, 0x1c4f: 0x0080, 0x1c50: 0x0080, 0x1c51: 0x0080, + 0x1c52: 0x0080, 0x1c53: 0x0080, 0x1c54: 0x0080, 0x1c55: 0x0080, 0x1c56: 0x0080, 0x1c57: 0x0080, + 0x1c58: 0x0080, 0x1c59: 0x0080, 0x1c5a: 0x0080, 0x1c5b: 0x0080, 0x1c5c: 0x0080, 0x1c5d: 0x0080, + 0x1c5e: 0x0080, 0x1c5f: 0x0080, 0x1c60: 0x0080, 0x1c61: 0x0080, 0x1c62: 0x0080, 0x1c63: 0x0080, + 0x1c64: 0x0080, 0x1c65: 0x0080, 0x1c66: 0x0080, 0x1c67: 0x0080, 0x1c68: 0x0080, 0x1c69: 0x0080, + 0x1c6a: 0x0080, 0x1c6b: 0x0080, 0x1c6c: 0x0080, 0x1c6d: 0x0080, 0x1c6e: 0x0080, 0x1c6f: 0x0080, + 0x1c70: 0x0080, 0x1c71: 0x0080, 0x1c72: 0x0080, 0x1c73: 0x0080, 0x1c74: 0x0080, 0x1c75: 0x0080, + 0x1c76: 0x0080, 0x1c77: 0x0080, 0x1c78: 0x0080, 0x1c79: 0x0080, 0x1c7a: 0x0080, 0x1c7b: 0x0080, + 0x1c7c: 0x0080, 0x1c7d: 0x0080, 0x1c7e: 0x0080, 0x1c7f: 0x0080, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x0080, 0x1c81: 0x0080, 0x1c82: 0x0080, 0x1c83: 0x00c0, 0x1c84: 0x00c0, 0x1c85: 0x0080, + 0x1c86: 0x0080, 0x1c87: 0x0080, 0x1c88: 0x0080, 0x1c89: 0x0080, 0x1c8a: 0x0080, 0x1c8b: 0x0080, + 0x1c90: 0x0080, 0x1c91: 0x0080, + 0x1c92: 0x0080, 0x1c93: 0x0080, 0x1c94: 0x0080, 0x1c95: 0x0080, 0x1c96: 0x0080, 0x1c97: 0x0080, + 0x1c98: 0x0080, 0x1c99: 0x0080, 0x1c9a: 0x0080, 0x1c9b: 0x0080, 0x1c9c: 0x0080, 0x1c9d: 0x0080, + 0x1c9e: 0x0080, 0x1c9f: 0x0080, 0x1ca0: 0x0080, 0x1ca1: 0x0080, 0x1ca2: 0x0080, 0x1ca3: 0x0080, + 0x1ca4: 0x0080, 0x1ca5: 0x0080, 0x1ca6: 0x0080, 0x1ca7: 0x0080, 0x1ca8: 0x0080, 0x1ca9: 0x0080, + 0x1caa: 0x0080, 0x1cab: 0x0080, 0x1cac: 0x0080, 0x1cad: 0x0080, 0x1cae: 0x0080, 0x1caf: 0x0080, + 0x1cb0: 0x0080, 0x1cb1: 0x0080, 0x1cb2: 0x0080, 0x1cb3: 0x0080, 0x1cb4: 0x0080, 0x1cb5: 0x0080, + 0x1cb6: 0x0080, 0x1cb7: 0x0080, 0x1cb8: 0x0080, 0x1cb9: 0x0080, 0x1cba: 0x0080, 0x1cbb: 0x0080, + 0x1cbc: 0x0080, 0x1cbd: 0x0080, 0x1cbe: 0x0080, 0x1cbf: 0x0080, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x0080, 0x1cc1: 0x0080, 0x1cc2: 0x0080, 0x1cc3: 0x0080, 0x1cc4: 0x0080, 0x1cc5: 0x0080, + 0x1cc6: 0x0080, 0x1cc7: 0x0080, 0x1cc8: 0x0080, 0x1cc9: 0x0080, 0x1cca: 0x0080, 0x1ccb: 0x0080, + 0x1ccc: 0x0080, 0x1ccd: 0x0080, 0x1cce: 0x0080, 0x1ccf: 0x0080, 0x1cd0: 0x0080, 0x1cd1: 0x0080, + 0x1cd2: 0x0080, 0x1cd3: 0x0080, 0x1cd4: 0x0080, 0x1cd5: 0x0080, 0x1cd6: 0x0080, 0x1cd7: 0x0080, + 0x1cd8: 0x0080, 0x1cd9: 0x0080, 0x1cda: 0x0080, 0x1cdb: 0x0080, 0x1cdc: 0x0080, 0x1cdd: 0x0080, + 0x1cde: 0x0080, 0x1cdf: 0x0080, 0x1ce0: 0x0080, 0x1ce1: 0x0080, 0x1ce2: 0x0080, 0x1ce3: 0x0080, + 0x1ce4: 0x0080, 0x1ce5: 0x0080, 0x1ce6: 0x0080, 0x1ce7: 0x0080, 0x1ce8: 0x0080, 0x1ce9: 0x0080, + 0x1cea: 0x0080, 0x1ceb: 0x0080, 0x1cec: 0x0080, 0x1ced: 0x0080, 0x1cee: 0x0080, 0x1cef: 0x0080, + 0x1cf0: 0x0080, 0x1cf1: 0x0080, 0x1cf2: 0x0080, 0x1cf3: 0x0080, 0x1cf4: 0x0080, 0x1cf5: 0x0080, + 0x1cf6: 0x0080, 0x1cf7: 0x0080, 0x1cf8: 0x0080, 0x1cf9: 0x0080, 0x1cfa: 0x0080, 0x1cfb: 0x0080, + 0x1cfc: 0x0080, 0x1cfd: 0x0080, 0x1cfe: 0x0080, 0x1cff: 0x0080, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x0080, 0x1d01: 0x0080, 0x1d02: 0x0080, 0x1d03: 0x0080, 0x1d04: 0x0080, 0x1d05: 0x0080, + 0x1d06: 0x0080, 0x1d07: 0x0080, 0x1d08: 0x0080, 0x1d09: 0x0080, 0x1d0a: 0x0080, 0x1d0b: 0x0080, + 0x1d0c: 0x0080, 0x1d0d: 0x0080, 0x1d0e: 0x0080, 0x1d0f: 0x0080, 0x1d10: 0x0080, 0x1d11: 0x0080, + 0x1d12: 0x0080, 0x1d13: 0x0080, 0x1d14: 0x0080, 0x1d15: 0x0080, 0x1d16: 0x0080, 0x1d17: 0x0080, + 0x1d18: 0x0080, 0x1d19: 0x0080, 0x1d1a: 0x0080, 0x1d1b: 0x0080, 0x1d1c: 0x0080, 0x1d1d: 0x0080, + 0x1d1e: 0x0080, 0x1d1f: 0x0080, 0x1d20: 0x0080, 0x1d21: 0x0080, 0x1d22: 0x0080, 0x1d23: 0x0080, + 0x1d24: 0x0080, 0x1d25: 0x0080, 0x1d26: 0x0080, 0x1d27: 0x0080, 0x1d28: 0x0080, 0x1d29: 0x0080, + 0x1d2a: 0x0080, 0x1d2b: 0x0080, 0x1d2c: 0x0080, 0x1d2d: 0x0080, 0x1d2e: 0x0080, 0x1d2f: 0x0080, + 0x1d30: 0x0080, 0x1d31: 0x0080, 0x1d32: 0x0080, 0x1d33: 0x0080, 0x1d34: 0x0080, 0x1d35: 0x0080, + 0x1d36: 0x0080, 0x1d37: 0x0080, 0x1d38: 0x0080, 0x1d39: 0x0080, 0x1d3a: 0x0080, 0x1d3b: 0x0080, + 0x1d3c: 0x0080, 0x1d3d: 0x0080, 0x1d3e: 0x0080, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x0080, 0x1d41: 0x0080, 0x1d42: 0x0080, 0x1d43: 0x0080, 0x1d44: 0x0080, 0x1d45: 0x0080, + 0x1d46: 0x0080, 0x1d47: 0x0080, 0x1d48: 0x0080, 0x1d49: 0x0080, 0x1d4a: 0x0080, 0x1d4b: 0x0080, + 0x1d4c: 0x0080, 0x1d4d: 0x0080, 0x1d4e: 0x0080, 0x1d4f: 0x0080, 0x1d50: 0x0080, 0x1d51: 0x0080, + 0x1d52: 0x0080, 0x1d53: 0x0080, 0x1d54: 0x0080, 0x1d55: 0x0080, 0x1d56: 0x0080, 0x1d57: 0x0080, + 0x1d58: 0x0080, 0x1d59: 0x0080, 0x1d5a: 0x0080, 0x1d5b: 0x0080, 0x1d5c: 0x0080, 0x1d5d: 0x0080, + 0x1d5e: 0x0080, 0x1d5f: 0x0080, 0x1d60: 0x0080, 0x1d61: 0x0080, 0x1d62: 0x0080, 0x1d63: 0x0080, + 0x1d64: 0x0080, 0x1d65: 0x0080, 0x1d66: 0x0080, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x0080, 0x1d81: 0x0080, 0x1d82: 0x0080, 0x1d83: 0x0080, 0x1d84: 0x0080, 0x1d85: 0x0080, + 0x1d86: 0x0080, 0x1d87: 0x0080, 0x1d88: 0x0080, 0x1d89: 0x0080, 0x1d8a: 0x0080, + 0x1da0: 0x0080, 0x1da1: 0x0080, 0x1da2: 0x0080, 0x1da3: 0x0080, + 0x1da4: 0x0080, 0x1da5: 0x0080, 0x1da6: 0x0080, 0x1da7: 0x0080, 0x1da8: 0x0080, 0x1da9: 0x0080, + 0x1daa: 0x0080, 0x1dab: 0x0080, 0x1dac: 0x0080, 0x1dad: 0x0080, 0x1dae: 0x0080, 0x1daf: 0x0080, + 0x1db0: 0x0080, 0x1db1: 0x0080, 0x1db2: 0x0080, 0x1db3: 0x0080, 0x1db4: 0x0080, 0x1db5: 0x0080, + 0x1db6: 0x0080, 0x1db7: 0x0080, 0x1db8: 0x0080, 0x1db9: 0x0080, 0x1dba: 0x0080, 0x1dbb: 0x0080, + 0x1dbc: 0x0080, 0x1dbd: 0x0080, 0x1dbe: 0x0080, 0x1dbf: 0x0080, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0x0080, 0x1dc1: 0x0080, 0x1dc2: 0x0080, 0x1dc3: 0x0080, 0x1dc4: 0x0080, 0x1dc5: 0x0080, + 0x1dc6: 0x0080, 0x1dc7: 0x0080, 0x1dc8: 0x0080, 0x1dc9: 0x0080, 0x1dca: 0x0080, 0x1dcb: 0x0080, + 0x1dcc: 0x0080, 0x1dcd: 0x0080, 0x1dce: 0x0080, 0x1dcf: 0x0080, 0x1dd0: 0x0080, 0x1dd1: 0x0080, + 0x1dd2: 0x0080, 0x1dd3: 0x0080, 0x1dd4: 0x0080, 0x1dd5: 0x0080, 0x1dd6: 0x0080, 0x1dd7: 0x0080, + 0x1dd8: 0x0080, 0x1dd9: 0x0080, 0x1dda: 0x0080, 0x1ddb: 0x0080, 0x1ddc: 0x0080, 0x1ddd: 0x0080, + 0x1dde: 0x0080, 0x1ddf: 0x0080, 0x1de0: 0x0080, 0x1de1: 0x0080, 0x1de2: 0x0080, 0x1de3: 0x0080, + 0x1de4: 0x0080, 0x1de5: 0x0080, 0x1de6: 0x0080, 0x1de7: 0x0080, 0x1de8: 0x0080, 0x1de9: 0x0080, + 0x1dea: 0x0080, 0x1deb: 0x0080, 0x1dec: 0x0080, 0x1ded: 0x0080, 0x1dee: 0x0080, 0x1def: 0x0080, + 0x1df0: 0x0080, 0x1df1: 0x0080, 0x1df2: 0x0080, 0x1df3: 0x0080, + 0x1df6: 0x0080, 0x1df7: 0x0080, 0x1df8: 0x0080, 0x1df9: 0x0080, 0x1dfa: 0x0080, 0x1dfb: 0x0080, + 0x1dfc: 0x0080, 0x1dfd: 0x0080, 0x1dfe: 0x0080, 0x1dff: 0x0080, + // Block 0x78, offset 0x1e00 + 0x1e00: 0x0080, 0x1e01: 0x0080, 0x1e02: 0x0080, 0x1e03: 0x0080, 0x1e04: 0x0080, 0x1e05: 0x0080, + 0x1e06: 0x0080, 0x1e07: 0x0080, 0x1e08: 0x0080, 0x1e09: 0x0080, 0x1e0a: 0x0080, 0x1e0b: 0x0080, + 0x1e0c: 0x0080, 0x1e0d: 0x0080, 0x1e0e: 0x0080, 0x1e0f: 0x0080, 0x1e10: 0x0080, 0x1e11: 0x0080, + 0x1e12: 0x0080, 0x1e13: 0x0080, 0x1e14: 0x0080, 0x1e15: 0x0080, + 0x1e18: 0x0080, 0x1e19: 0x0080, 0x1e1a: 0x0080, 0x1e1b: 0x0080, 0x1e1c: 0x0080, 0x1e1d: 0x0080, + 0x1e1e: 0x0080, 0x1e1f: 0x0080, 0x1e20: 0x0080, 0x1e21: 0x0080, 0x1e22: 0x0080, 0x1e23: 0x0080, + 0x1e24: 0x0080, 0x1e25: 0x0080, 0x1e26: 0x0080, 0x1e27: 0x0080, 0x1e28: 0x0080, 0x1e29: 0x0080, + 0x1e2a: 0x0080, 0x1e2b: 0x0080, 0x1e2c: 0x0080, 0x1e2d: 0x0080, 0x1e2e: 0x0080, 0x1e2f: 0x0080, + 0x1e30: 0x0080, 0x1e31: 0x0080, 0x1e32: 0x0080, 0x1e33: 0x0080, 0x1e34: 0x0080, 0x1e35: 0x0080, + 0x1e36: 0x0080, 0x1e37: 0x0080, 0x1e38: 0x0080, 0x1e39: 0x0080, + 0x1e3d: 0x0080, 0x1e3e: 0x0080, 0x1e3f: 0x0080, + // Block 0x79, offset 0x1e40 + 0x1e40: 0x0080, 0x1e41: 0x0080, 0x1e42: 0x0080, 0x1e43: 0x0080, 0x1e44: 0x0080, 0x1e45: 0x0080, + 0x1e46: 0x0080, 0x1e47: 0x0080, 0x1e48: 0x0080, 0x1e4a: 0x0080, 0x1e4b: 0x0080, + 0x1e4c: 0x0080, 0x1e4d: 0x0080, 0x1e4e: 0x0080, 0x1e4f: 0x0080, 0x1e50: 0x0080, 0x1e51: 0x0080, + 0x1e6c: 0x0080, 0x1e6d: 0x0080, 0x1e6e: 0x0080, 0x1e6f: 0x0080, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0x00c0, 0x1e81: 0x00c0, 0x1e82: 0x00c0, 0x1e83: 0x00c0, 0x1e84: 0x00c0, 0x1e85: 0x00c0, + 0x1e86: 0x00c0, 0x1e87: 0x00c0, 0x1e88: 0x00c0, 0x1e89: 0x00c0, 0x1e8a: 0x00c0, 0x1e8b: 0x00c0, + 0x1e8c: 0x00c0, 0x1e8d: 0x00c0, 0x1e8e: 0x00c0, 0x1e8f: 0x00c0, 0x1e90: 0x00c0, 0x1e91: 0x00c0, + 0x1e92: 0x00c0, 0x1e93: 0x00c0, 0x1e94: 0x00c0, 0x1e95: 0x00c0, 0x1e96: 0x00c0, 0x1e97: 0x00c0, + 0x1e98: 0x00c0, 0x1e99: 0x00c0, 0x1e9a: 0x00c0, 0x1e9b: 0x00c0, 0x1e9c: 0x00c0, 0x1e9d: 0x00c0, + 0x1e9e: 0x00c0, 0x1e9f: 0x00c0, 0x1ea0: 0x00c0, 0x1ea1: 0x00c0, 0x1ea2: 0x00c0, 0x1ea3: 0x00c0, + 0x1ea4: 0x00c0, 0x1ea5: 0x00c0, 0x1ea6: 0x00c0, 0x1ea7: 0x00c0, 0x1ea8: 0x00c0, 0x1ea9: 0x00c0, + 0x1eaa: 0x00c0, 0x1eab: 0x00c0, 0x1eac: 0x00c0, 0x1ead: 0x00c0, 0x1eae: 0x00c0, + 0x1eb0: 0x00c0, 0x1eb1: 0x00c0, 0x1eb2: 0x00c0, 0x1eb3: 0x00c0, 0x1eb4: 0x00c0, 0x1eb5: 0x00c0, + 0x1eb6: 0x00c0, 0x1eb7: 0x00c0, 0x1eb8: 0x00c0, 0x1eb9: 0x00c0, 0x1eba: 0x00c0, 0x1ebb: 0x00c0, + 0x1ebc: 0x00c0, 0x1ebd: 0x00c0, 0x1ebe: 0x00c0, 0x1ebf: 0x00c0, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0x00c0, 0x1ec1: 0x00c0, 0x1ec2: 0x00c0, 0x1ec3: 0x00c0, 0x1ec4: 0x00c0, 0x1ec5: 0x00c0, + 0x1ec6: 0x00c0, 0x1ec7: 0x00c0, 0x1ec8: 0x00c0, 0x1ec9: 0x00c0, 0x1eca: 0x00c0, 0x1ecb: 0x00c0, + 0x1ecc: 0x00c0, 0x1ecd: 0x00c0, 0x1ece: 0x00c0, 0x1ecf: 0x00c0, 0x1ed0: 0x00c0, 0x1ed1: 0x00c0, + 0x1ed2: 0x00c0, 0x1ed3: 0x00c0, 0x1ed4: 0x00c0, 0x1ed5: 0x00c0, 0x1ed6: 0x00c0, 0x1ed7: 0x00c0, + 0x1ed8: 0x00c0, 0x1ed9: 0x00c0, 0x1eda: 0x00c0, 0x1edb: 0x00c0, 0x1edc: 0x00c0, 0x1edd: 0x00c0, + 0x1ede: 0x00c0, 0x1ee0: 0x00c0, 0x1ee1: 0x00c0, 0x1ee2: 0x00c0, 0x1ee3: 0x00c0, + 0x1ee4: 0x00c0, 0x1ee5: 0x00c0, 0x1ee6: 0x00c0, 0x1ee7: 0x00c0, 0x1ee8: 0x00c0, 0x1ee9: 0x00c0, + 0x1eea: 0x00c0, 0x1eeb: 0x00c0, 0x1eec: 0x00c0, 0x1eed: 0x00c0, 0x1eee: 0x00c0, 0x1eef: 0x00c0, + 0x1ef0: 0x00c0, 0x1ef1: 0x00c0, 0x1ef2: 0x00c0, 0x1ef3: 0x00c0, 0x1ef4: 0x00c0, 0x1ef5: 0x00c0, + 0x1ef6: 0x00c0, 0x1ef7: 0x00c0, 0x1ef8: 0x00c0, 0x1ef9: 0x00c0, 0x1efa: 0x00c0, 0x1efb: 0x00c0, + 0x1efc: 0x0080, 0x1efd: 0x0080, 0x1efe: 0x00c0, 0x1eff: 0x00c0, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0x00c0, 0x1f01: 0x00c0, 0x1f02: 0x00c0, 0x1f03: 0x00c0, 0x1f04: 0x00c0, 0x1f05: 0x00c0, + 0x1f06: 0x00c0, 0x1f07: 0x00c0, 0x1f08: 0x00c0, 0x1f09: 0x00c0, 0x1f0a: 0x00c0, 0x1f0b: 0x00c0, + 0x1f0c: 0x00c0, 0x1f0d: 0x00c0, 0x1f0e: 0x00c0, 0x1f0f: 0x00c0, 0x1f10: 0x00c0, 0x1f11: 0x00c0, + 0x1f12: 0x00c0, 0x1f13: 0x00c0, 0x1f14: 0x00c0, 0x1f15: 0x00c0, 0x1f16: 0x00c0, 0x1f17: 0x00c0, + 0x1f18: 0x00c0, 0x1f19: 0x00c0, 0x1f1a: 0x00c0, 0x1f1b: 0x00c0, 0x1f1c: 0x00c0, 0x1f1d: 0x00c0, + 0x1f1e: 0x00c0, 0x1f1f: 0x00c0, 0x1f20: 0x00c0, 0x1f21: 0x00c0, 0x1f22: 0x00c0, 0x1f23: 0x00c0, + 0x1f24: 0x00c0, 0x1f25: 0x0080, 0x1f26: 0x0080, 0x1f27: 0x0080, 0x1f28: 0x0080, 0x1f29: 0x0080, + 0x1f2a: 0x0080, 0x1f2b: 0x00c0, 0x1f2c: 0x00c0, 0x1f2d: 0x00c0, 0x1f2e: 0x00c0, 0x1f2f: 0x00c3, + 0x1f30: 0x00c3, 0x1f31: 0x00c3, 0x1f32: 0x00c0, 0x1f33: 0x00c0, + 0x1f39: 0x0080, 0x1f3a: 0x0080, 0x1f3b: 0x0080, + 0x1f3c: 0x0080, 0x1f3d: 0x0080, 0x1f3e: 0x0080, 0x1f3f: 0x0080, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0x00c0, 0x1f41: 0x00c0, 0x1f42: 0x00c0, 0x1f43: 0x00c0, 0x1f44: 0x00c0, 0x1f45: 0x00c0, + 0x1f46: 0x00c0, 0x1f47: 0x00c0, 0x1f48: 0x00c0, 0x1f49: 0x00c0, 0x1f4a: 0x00c0, 0x1f4b: 0x00c0, + 0x1f4c: 0x00c0, 0x1f4d: 0x00c0, 0x1f4e: 0x00c0, 0x1f4f: 0x00c0, 0x1f50: 0x00c0, 0x1f51: 0x00c0, + 0x1f52: 0x00c0, 0x1f53: 0x00c0, 0x1f54: 0x00c0, 0x1f55: 0x00c0, 0x1f56: 0x00c0, 0x1f57: 0x00c0, + 0x1f58: 0x00c0, 0x1f59: 0x00c0, 0x1f5a: 0x00c0, 0x1f5b: 0x00c0, 0x1f5c: 0x00c0, 0x1f5d: 0x00c0, + 0x1f5e: 0x00c0, 0x1f5f: 0x00c0, 0x1f60: 0x00c0, 0x1f61: 0x00c0, 0x1f62: 0x00c0, 0x1f63: 0x00c0, + 0x1f64: 0x00c0, 0x1f65: 0x00c0, 0x1f67: 0x00c0, + 0x1f6d: 0x00c0, + 0x1f70: 0x00c0, 0x1f71: 0x00c0, 0x1f72: 0x00c0, 0x1f73: 0x00c0, 0x1f74: 0x00c0, 0x1f75: 0x00c0, + 0x1f76: 0x00c0, 0x1f77: 0x00c0, 0x1f78: 0x00c0, 0x1f79: 0x00c0, 0x1f7a: 0x00c0, 0x1f7b: 0x00c0, + 0x1f7c: 0x00c0, 0x1f7d: 0x00c0, 0x1f7e: 0x00c0, 0x1f7f: 0x00c0, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0x00c0, 0x1f81: 0x00c0, 0x1f82: 0x00c0, 0x1f83: 0x00c0, 0x1f84: 0x00c0, 0x1f85: 0x00c0, + 0x1f86: 0x00c0, 0x1f87: 0x00c0, 0x1f88: 0x00c0, 0x1f89: 0x00c0, 0x1f8a: 0x00c0, 0x1f8b: 0x00c0, + 0x1f8c: 0x00c0, 0x1f8d: 0x00c0, 0x1f8e: 0x00c0, 0x1f8f: 0x00c0, 0x1f90: 0x00c0, 0x1f91: 0x00c0, + 0x1f92: 0x00c0, 0x1f93: 0x00c0, 0x1f94: 0x00c0, 0x1f95: 0x00c0, 0x1f96: 0x00c0, 0x1f97: 0x00c0, + 0x1f98: 0x00c0, 0x1f99: 0x00c0, 0x1f9a: 0x00c0, 0x1f9b: 0x00c0, 0x1f9c: 0x00c0, 0x1f9d: 0x00c0, + 0x1f9e: 0x00c0, 0x1f9f: 0x00c0, 0x1fa0: 0x00c0, 0x1fa1: 0x00c0, 0x1fa2: 0x00c0, 0x1fa3: 0x00c0, + 0x1fa4: 0x00c0, 0x1fa5: 0x00c0, 0x1fa6: 0x00c0, 0x1fa7: 0x00c0, + 0x1faf: 0x0080, + 0x1fb0: 0x0080, + 0x1fbf: 0x00c6, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x00c0, 0x1fc1: 0x00c0, 0x1fc2: 0x00c0, 0x1fc3: 0x00c0, 0x1fc4: 0x00c0, 0x1fc5: 0x00c0, + 0x1fc6: 0x00c0, 0x1fc7: 0x00c0, 0x1fc8: 0x00c0, 0x1fc9: 0x00c0, 0x1fca: 0x00c0, 0x1fcb: 0x00c0, + 0x1fcc: 0x00c0, 0x1fcd: 0x00c0, 0x1fce: 0x00c0, 0x1fcf: 0x00c0, 0x1fd0: 0x00c0, 0x1fd1: 0x00c0, + 0x1fd2: 0x00c0, 0x1fd3: 0x00c0, 0x1fd4: 0x00c0, 0x1fd5: 0x00c0, 0x1fd6: 0x00c0, + 0x1fe0: 0x00c0, 0x1fe1: 0x00c0, 0x1fe2: 0x00c0, 0x1fe3: 0x00c0, + 0x1fe4: 0x00c0, 0x1fe5: 0x00c0, 0x1fe6: 0x00c0, 0x1fe8: 0x00c0, 0x1fe9: 0x00c0, + 0x1fea: 0x00c0, 0x1feb: 0x00c0, 0x1fec: 0x00c0, 0x1fed: 0x00c0, 0x1fee: 0x00c0, + 0x1ff0: 0x00c0, 0x1ff1: 0x00c0, 0x1ff2: 0x00c0, 0x1ff3: 0x00c0, 0x1ff4: 0x00c0, 0x1ff5: 0x00c0, + 0x1ff6: 0x00c0, 0x1ff8: 0x00c0, 0x1ff9: 0x00c0, 0x1ffa: 0x00c0, 0x1ffb: 0x00c0, + 0x1ffc: 0x00c0, 0x1ffd: 0x00c0, 0x1ffe: 0x00c0, + // Block 0x80, offset 0x2000 + 0x2000: 0x00c0, 0x2001: 0x00c0, 0x2002: 0x00c0, 0x2003: 0x00c0, 0x2004: 0x00c0, 0x2005: 0x00c0, + 0x2006: 0x00c0, 0x2008: 0x00c0, 0x2009: 0x00c0, 0x200a: 0x00c0, 0x200b: 0x00c0, + 0x200c: 0x00c0, 0x200d: 0x00c0, 0x200e: 0x00c0, 0x2010: 0x00c0, 0x2011: 0x00c0, + 0x2012: 0x00c0, 0x2013: 0x00c0, 0x2014: 0x00c0, 0x2015: 0x00c0, 0x2016: 0x00c0, + 0x2018: 0x00c0, 0x2019: 0x00c0, 0x201a: 0x00c0, 0x201b: 0x00c0, 0x201c: 0x00c0, 0x201d: 0x00c0, + 0x201e: 0x00c0, 0x2020: 0x00c3, 0x2021: 0x00c3, 0x2022: 0x00c3, 0x2023: 0x00c3, + 0x2024: 0x00c3, 0x2025: 0x00c3, 0x2026: 0x00c3, 0x2027: 0x00c3, 0x2028: 0x00c3, 0x2029: 0x00c3, + 0x202a: 0x00c3, 0x202b: 0x00c3, 0x202c: 0x00c3, 0x202d: 0x00c3, 0x202e: 0x00c3, 0x202f: 0x00c3, + 0x2030: 0x00c3, 0x2031: 0x00c3, 0x2032: 0x00c3, 0x2033: 0x00c3, 0x2034: 0x00c3, 0x2035: 0x00c3, + 0x2036: 0x00c3, 0x2037: 0x00c3, 0x2038: 0x00c3, 0x2039: 0x00c3, 0x203a: 0x00c3, 0x203b: 0x00c3, + 0x203c: 0x00c3, 0x203d: 0x00c3, 0x203e: 0x00c3, 0x203f: 0x00c3, + // Block 0x81, offset 0x2040 + 0x2040: 0x0080, 0x2041: 0x0080, 0x2042: 0x0080, 0x2043: 0x0080, 0x2044: 0x0080, 0x2045: 0x0080, + 0x2046: 0x0080, 0x2047: 0x0080, 0x2048: 0x0080, 0x2049: 0x0080, 0x204a: 0x0080, 0x204b: 0x0080, + 0x204c: 0x0080, 0x204d: 0x0080, 0x204e: 0x0080, 0x204f: 0x0080, 0x2050: 0x0080, 0x2051: 0x0080, + 0x2052: 0x0080, 0x2053: 0x0080, 0x2054: 0x0080, 0x2055: 0x0080, 0x2056: 0x0080, 0x2057: 0x0080, + 0x2058: 0x0080, 0x2059: 0x0080, 0x205a: 0x0080, 0x205b: 0x0080, 0x205c: 0x0080, 0x205d: 0x0080, + 0x205e: 0x0080, 0x205f: 0x0080, 0x2060: 0x0080, 0x2061: 0x0080, 0x2062: 0x0080, 0x2063: 0x0080, + 0x2064: 0x0080, 0x2065: 0x0080, 0x2066: 0x0080, 0x2067: 0x0080, 0x2068: 0x0080, 0x2069: 0x0080, + 0x206a: 0x0080, 0x206b: 0x0080, 0x206c: 0x0080, 0x206d: 0x0080, 0x206e: 0x0080, 0x206f: 0x00c0, + 0x2070: 0x0080, 0x2071: 0x0080, 0x2072: 0x0080, 0x2073: 0x0080, 0x2074: 0x0080, 0x2075: 0x0080, + 0x2076: 0x0080, 0x2077: 0x0080, 0x2078: 0x0080, 0x2079: 0x0080, 0x207a: 0x0080, 0x207b: 0x0080, + 0x207c: 0x0080, 0x207d: 0x0080, 0x207e: 0x0080, 0x207f: 0x0080, + // Block 0x82, offset 0x2080 + 0x2080: 0x0080, 0x2081: 0x0080, 0x2082: 0x0080, 0x2083: 0x0080, 0x2084: 0x0080, + // Block 0x83, offset 0x20c0 + 0x20c0: 0x008c, 0x20c1: 0x008c, 0x20c2: 0x008c, 0x20c3: 0x008c, 0x20c4: 0x008c, 0x20c5: 0x008c, + 0x20c6: 0x008c, 0x20c7: 0x008c, 0x20c8: 0x008c, 0x20c9: 0x008c, 0x20ca: 0x008c, 0x20cb: 0x008c, + 0x20cc: 0x008c, 0x20cd: 0x008c, 0x20ce: 0x008c, 0x20cf: 0x008c, 0x20d0: 0x008c, 0x20d1: 0x008c, + 0x20d2: 0x008c, 0x20d3: 0x008c, 0x20d4: 0x008c, 0x20d5: 0x008c, 0x20d6: 0x008c, 0x20d7: 0x008c, + 0x20d8: 0x008c, 0x20d9: 0x008c, 0x20db: 0x008c, 0x20dc: 0x008c, 0x20dd: 0x008c, + 0x20de: 0x008c, 0x20df: 0x008c, 0x20e0: 0x008c, 0x20e1: 0x008c, 0x20e2: 0x008c, 0x20e3: 0x008c, + 0x20e4: 0x008c, 0x20e5: 0x008c, 0x20e6: 0x008c, 0x20e7: 0x008c, 0x20e8: 0x008c, 0x20e9: 0x008c, + 0x20ea: 0x008c, 0x20eb: 0x008c, 0x20ec: 0x008c, 0x20ed: 0x008c, 0x20ee: 0x008c, 0x20ef: 0x008c, + 0x20f0: 0x008c, 0x20f1: 0x008c, 0x20f2: 0x008c, 0x20f3: 0x008c, 0x20f4: 0x008c, 0x20f5: 0x008c, + 0x20f6: 0x008c, 0x20f7: 0x008c, 0x20f8: 0x008c, 0x20f9: 0x008c, 0x20fa: 0x008c, 0x20fb: 0x008c, + 0x20fc: 0x008c, 0x20fd: 0x008c, 0x20fe: 0x008c, 0x20ff: 0x008c, + // Block 0x84, offset 0x2100 + 0x2100: 0x008c, 0x2101: 0x008c, 0x2102: 0x008c, 0x2103: 0x008c, 0x2104: 0x008c, 0x2105: 0x008c, + 0x2106: 0x008c, 0x2107: 0x008c, 0x2108: 0x008c, 0x2109: 0x008c, 0x210a: 0x008c, 0x210b: 0x008c, + 0x210c: 0x008c, 0x210d: 0x008c, 0x210e: 0x008c, 0x210f: 0x008c, 0x2110: 0x008c, 0x2111: 0x008c, + 0x2112: 0x008c, 0x2113: 0x008c, 0x2114: 0x008c, 0x2115: 0x008c, 0x2116: 0x008c, 0x2117: 0x008c, + 0x2118: 0x008c, 0x2119: 0x008c, 0x211a: 0x008c, 0x211b: 0x008c, 0x211c: 0x008c, 0x211d: 0x008c, + 0x211e: 0x008c, 0x211f: 0x008c, 0x2120: 0x008c, 0x2121: 0x008c, 0x2122: 0x008c, 0x2123: 0x008c, + 0x2124: 0x008c, 0x2125: 0x008c, 0x2126: 0x008c, 0x2127: 0x008c, 0x2128: 0x008c, 0x2129: 0x008c, + 0x212a: 0x008c, 0x212b: 0x008c, 0x212c: 0x008c, 0x212d: 0x008c, 0x212e: 0x008c, 0x212f: 0x008c, + 0x2130: 0x008c, 0x2131: 0x008c, 0x2132: 0x008c, 0x2133: 0x008c, + // Block 0x85, offset 0x2140 + 0x2140: 0x008c, 0x2141: 0x008c, 0x2142: 0x008c, 0x2143: 0x008c, 0x2144: 0x008c, 0x2145: 0x008c, + 0x2146: 0x008c, 0x2147: 0x008c, 0x2148: 0x008c, 0x2149: 0x008c, 0x214a: 0x008c, 0x214b: 0x008c, + 0x214c: 0x008c, 0x214d: 0x008c, 0x214e: 0x008c, 0x214f: 0x008c, 0x2150: 0x008c, 0x2151: 0x008c, + 0x2152: 0x008c, 0x2153: 0x008c, 0x2154: 0x008c, 0x2155: 0x008c, 0x2156: 0x008c, 0x2157: 0x008c, + 0x2158: 0x008c, 0x2159: 0x008c, 0x215a: 0x008c, 0x215b: 0x008c, 0x215c: 0x008c, 0x215d: 0x008c, + 0x215e: 0x008c, 0x215f: 0x008c, 0x2160: 0x008c, 0x2161: 0x008c, 0x2162: 0x008c, 0x2163: 0x008c, + 0x2164: 0x008c, 0x2165: 0x008c, 0x2166: 0x008c, 0x2167: 0x008c, 0x2168: 0x008c, 0x2169: 0x008c, + 0x216a: 0x008c, 0x216b: 0x008c, 0x216c: 0x008c, 0x216d: 0x008c, 0x216e: 0x008c, 0x216f: 0x008c, + 0x2170: 0x008c, 0x2171: 0x008c, 0x2172: 0x008c, 0x2173: 0x008c, 0x2174: 0x008c, 0x2175: 0x008c, + 0x2176: 0x008c, 0x2177: 0x008c, 0x2178: 0x008c, 0x2179: 0x008c, 0x217a: 0x008c, 0x217b: 0x008c, + 0x217c: 0x008c, 0x217d: 0x008c, 0x217e: 0x008c, 0x217f: 0x008c, + // Block 0x86, offset 0x2180 + 0x2180: 0x008c, 0x2181: 0x008c, 0x2182: 0x008c, 0x2183: 0x008c, 0x2184: 0x008c, 0x2185: 0x008c, + 0x2186: 0x008c, 0x2187: 0x008c, 0x2188: 0x008c, 0x2189: 0x008c, 0x218a: 0x008c, 0x218b: 0x008c, + 0x218c: 0x008c, 0x218d: 0x008c, 0x218e: 0x008c, 0x218f: 0x008c, 0x2190: 0x008c, 0x2191: 0x008c, + 0x2192: 0x008c, 0x2193: 0x008c, 0x2194: 0x008c, 0x2195: 0x008c, + 0x21b0: 0x0080, 0x21b1: 0x0080, 0x21b2: 0x0080, 0x21b3: 0x0080, 0x21b4: 0x0080, 0x21b5: 0x0080, + 0x21b6: 0x0080, 0x21b7: 0x0080, 0x21b8: 0x0080, 0x21b9: 0x0080, 0x21ba: 0x0080, 0x21bb: 0x0080, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x0080, 0x21c1: 0x0080, 0x21c2: 0x0080, 0x21c3: 0x0080, 0x21c4: 0x0080, 0x21c5: 0x00cc, + 0x21c6: 0x00c0, 0x21c7: 0x00cc, 0x21c8: 0x0080, 0x21c9: 0x0080, 0x21ca: 0x0080, 0x21cb: 0x0080, + 0x21cc: 0x0080, 0x21cd: 0x0080, 0x21ce: 0x0080, 0x21cf: 0x0080, 0x21d0: 0x0080, 0x21d1: 0x0080, + 0x21d2: 0x0080, 0x21d3: 0x0080, 0x21d4: 0x0080, 0x21d5: 0x0080, 0x21d6: 0x0080, 0x21d7: 0x0080, + 0x21d8: 0x0080, 0x21d9: 0x0080, 0x21da: 0x0080, 0x21db: 0x0080, 0x21dc: 0x0080, 0x21dd: 0x0080, + 0x21de: 0x0080, 0x21df: 0x0080, 0x21e0: 0x0080, 0x21e1: 0x008c, 0x21e2: 0x008c, 0x21e3: 0x008c, + 0x21e4: 0x008c, 0x21e5: 0x008c, 0x21e6: 0x008c, 0x21e7: 0x008c, 0x21e8: 0x008c, 0x21e9: 0x008c, + 0x21ea: 0x00c3, 0x21eb: 0x00c3, 0x21ec: 0x00c3, 0x21ed: 0x00c3, 0x21ee: 0x0040, 0x21ef: 0x0040, + 0x21f0: 0x0080, 0x21f1: 0x0040, 0x21f2: 0x0040, 0x21f3: 0x0040, 0x21f4: 0x0040, 0x21f5: 0x0040, + 0x21f6: 0x0080, 0x21f7: 0x0080, 0x21f8: 0x008c, 0x21f9: 0x008c, 0x21fa: 0x008c, 0x21fb: 0x0040, + 0x21fc: 0x00c0, 0x21fd: 0x0080, 0x21fe: 0x0080, 0x21ff: 0x0080, + // Block 0x88, offset 0x2200 + 0x2201: 0x00cc, 0x2202: 0x00cc, 0x2203: 0x00cc, 0x2204: 0x00cc, 0x2205: 0x00cc, + 0x2206: 0x00cc, 0x2207: 0x00cc, 0x2208: 0x00cc, 0x2209: 0x00cc, 0x220a: 0x00cc, 0x220b: 0x00cc, + 0x220c: 0x00cc, 0x220d: 0x00cc, 0x220e: 0x00cc, 0x220f: 0x00cc, 0x2210: 0x00cc, 0x2211: 0x00cc, + 0x2212: 0x00cc, 0x2213: 0x00cc, 0x2214: 0x00cc, 0x2215: 0x00cc, 0x2216: 0x00cc, 0x2217: 0x00cc, + 0x2218: 0x00cc, 0x2219: 0x00cc, 0x221a: 0x00cc, 0x221b: 0x00cc, 0x221c: 0x00cc, 0x221d: 0x00cc, + 0x221e: 0x00cc, 0x221f: 0x00cc, 0x2220: 0x00cc, 0x2221: 0x00cc, 0x2222: 0x00cc, 0x2223: 0x00cc, + 0x2224: 0x00cc, 0x2225: 0x00cc, 0x2226: 0x00cc, 0x2227: 0x00cc, 0x2228: 0x00cc, 0x2229: 0x00cc, + 0x222a: 0x00cc, 0x222b: 0x00cc, 0x222c: 0x00cc, 0x222d: 0x00cc, 0x222e: 0x00cc, 0x222f: 0x00cc, + 0x2230: 0x00cc, 0x2231: 0x00cc, 0x2232: 0x00cc, 0x2233: 0x00cc, 0x2234: 0x00cc, 0x2235: 0x00cc, + 0x2236: 0x00cc, 0x2237: 0x00cc, 0x2238: 0x00cc, 0x2239: 0x00cc, 0x223a: 0x00cc, 0x223b: 0x00cc, + 0x223c: 0x00cc, 0x223d: 0x00cc, 0x223e: 0x00cc, 0x223f: 0x00cc, + // Block 0x89, offset 0x2240 + 0x2240: 0x00cc, 0x2241: 0x00cc, 0x2242: 0x00cc, 0x2243: 0x00cc, 0x2244: 0x00cc, 0x2245: 0x00cc, + 0x2246: 0x00cc, 0x2247: 0x00cc, 0x2248: 0x00cc, 0x2249: 0x00cc, 0x224a: 0x00cc, 0x224b: 0x00cc, + 0x224c: 0x00cc, 0x224d: 0x00cc, 0x224e: 0x00cc, 0x224f: 0x00cc, 0x2250: 0x00cc, 0x2251: 0x00cc, + 0x2252: 0x00cc, 0x2253: 0x00cc, 0x2254: 0x00cc, 0x2255: 0x00cc, 0x2256: 0x00cc, + 0x2259: 0x00c3, 0x225a: 0x00c3, 0x225b: 0x0080, 0x225c: 0x0080, 0x225d: 0x00cc, + 0x225e: 0x00cc, 0x225f: 0x008c, 0x2260: 0x0080, 0x2261: 0x00cc, 0x2262: 0x00cc, 0x2263: 0x00cc, + 0x2264: 0x00cc, 0x2265: 0x00cc, 0x2266: 0x00cc, 0x2267: 0x00cc, 0x2268: 0x00cc, 0x2269: 0x00cc, + 0x226a: 0x00cc, 0x226b: 0x00cc, 0x226c: 0x00cc, 0x226d: 0x00cc, 0x226e: 0x00cc, 0x226f: 0x00cc, + 0x2270: 0x00cc, 0x2271: 0x00cc, 0x2272: 0x00cc, 0x2273: 0x00cc, 0x2274: 0x00cc, 0x2275: 0x00cc, + 0x2276: 0x00cc, 0x2277: 0x00cc, 0x2278: 0x00cc, 0x2279: 0x00cc, 0x227a: 0x00cc, 0x227b: 0x00cc, + 0x227c: 0x00cc, 0x227d: 0x00cc, 0x227e: 0x00cc, 0x227f: 0x00cc, + // Block 0x8a, offset 0x2280 + 0x2280: 0x00cc, 0x2281: 0x00cc, 0x2282: 0x00cc, 0x2283: 0x00cc, 0x2284: 0x00cc, 0x2285: 0x00cc, + 0x2286: 0x00cc, 0x2287: 0x00cc, 0x2288: 0x00cc, 0x2289: 0x00cc, 0x228a: 0x00cc, 0x228b: 0x00cc, + 0x228c: 0x00cc, 0x228d: 0x00cc, 0x228e: 0x00cc, 0x228f: 0x00cc, 0x2290: 0x00cc, 0x2291: 0x00cc, + 0x2292: 0x00cc, 0x2293: 0x00cc, 0x2294: 0x00cc, 0x2295: 0x00cc, 0x2296: 0x00cc, 0x2297: 0x00cc, + 0x2298: 0x00cc, 0x2299: 0x00cc, 0x229a: 0x00cc, 0x229b: 0x00cc, 0x229c: 0x00cc, 0x229d: 0x00cc, + 0x229e: 0x00cc, 0x229f: 0x00cc, 0x22a0: 0x00cc, 0x22a1: 0x00cc, 0x22a2: 0x00cc, 0x22a3: 0x00cc, + 0x22a4: 0x00cc, 0x22a5: 0x00cc, 0x22a6: 0x00cc, 0x22a7: 0x00cc, 0x22a8: 0x00cc, 0x22a9: 0x00cc, + 0x22aa: 0x00cc, 0x22ab: 0x00cc, 0x22ac: 0x00cc, 0x22ad: 0x00cc, 0x22ae: 0x00cc, 0x22af: 0x00cc, + 0x22b0: 0x00cc, 0x22b1: 0x00cc, 0x22b2: 0x00cc, 0x22b3: 0x00cc, 0x22b4: 0x00cc, 0x22b5: 0x00cc, + 0x22b6: 0x00cc, 0x22b7: 0x00cc, 0x22b8: 0x00cc, 0x22b9: 0x00cc, 0x22ba: 0x00cc, 0x22bb: 0x00d2, + 0x22bc: 0x00c0, 0x22bd: 0x00cc, 0x22be: 0x00cc, 0x22bf: 0x008c, + // Block 0x8b, offset 0x22c0 + 0x22c5: 0x00c0, + 0x22c6: 0x00c0, 0x22c7: 0x00c0, 0x22c8: 0x00c0, 0x22c9: 0x00c0, 0x22ca: 0x00c0, 0x22cb: 0x00c0, + 0x22cc: 0x00c0, 0x22cd: 0x00c0, 0x22ce: 0x00c0, 0x22cf: 0x00c0, 0x22d0: 0x00c0, 0x22d1: 0x00c0, + 0x22d2: 0x00c0, 0x22d3: 0x00c0, 0x22d4: 0x00c0, 0x22d5: 0x00c0, 0x22d6: 0x00c0, 0x22d7: 0x00c0, + 0x22d8: 0x00c0, 0x22d9: 0x00c0, 0x22da: 0x00c0, 0x22db: 0x00c0, 0x22dc: 0x00c0, 0x22dd: 0x00c0, + 0x22de: 0x00c0, 0x22df: 0x00c0, 0x22e0: 0x00c0, 0x22e1: 0x00c0, 0x22e2: 0x00c0, 0x22e3: 0x00c0, + 0x22e4: 0x00c0, 0x22e5: 0x00c0, 0x22e6: 0x00c0, 0x22e7: 0x00c0, 0x22e8: 0x00c0, 0x22e9: 0x00c0, + 0x22ea: 0x00c0, 0x22eb: 0x00c0, 0x22ec: 0x00c0, 0x22ed: 0x00c0, + 0x22f1: 0x0080, 0x22f2: 0x0080, 0x22f3: 0x0080, 0x22f4: 0x0080, 0x22f5: 0x0080, + 0x22f6: 0x0080, 0x22f7: 0x0080, 0x22f8: 0x0080, 0x22f9: 0x0080, 0x22fa: 0x0080, 0x22fb: 0x0080, + 0x22fc: 0x0080, 0x22fd: 0x0080, 0x22fe: 0x0080, 0x22ff: 0x0080, + // Block 0x8c, offset 0x2300 + 0x2300: 0x0080, 0x2301: 0x0080, 0x2302: 0x0080, 0x2303: 0x0080, 0x2304: 0x0080, 0x2305: 0x0080, + 0x2306: 0x0080, 0x2307: 0x0080, 0x2308: 0x0080, 0x2309: 0x0080, 0x230a: 0x0080, 0x230b: 0x0080, + 0x230c: 0x0080, 0x230d: 0x0080, 0x230e: 0x0080, 0x230f: 0x0080, 0x2310: 0x0080, 0x2311: 0x0080, + 0x2312: 0x0080, 0x2313: 0x0080, 0x2314: 0x0080, 0x2315: 0x0080, 0x2316: 0x0080, 0x2317: 0x0080, + 0x2318: 0x0080, 0x2319: 0x0080, 0x231a: 0x0080, 0x231b: 0x0080, 0x231c: 0x0080, 0x231d: 0x0080, + 0x231e: 0x0080, 0x231f: 0x0080, 0x2320: 0x0080, 0x2321: 0x0080, 0x2322: 0x0080, 0x2323: 0x0080, + 0x2324: 0x0040, 0x2325: 0x0080, 0x2326: 0x0080, 0x2327: 0x0080, 0x2328: 0x0080, 0x2329: 0x0080, + 0x232a: 0x0080, 0x232b: 0x0080, 0x232c: 0x0080, 0x232d: 0x0080, 0x232e: 0x0080, 0x232f: 0x0080, + 0x2330: 0x0080, 0x2331: 0x0080, 0x2332: 0x0080, 0x2333: 0x0080, 0x2334: 0x0080, 0x2335: 0x0080, + 0x2336: 0x0080, 0x2337: 0x0080, 0x2338: 0x0080, 0x2339: 0x0080, 0x233a: 0x0080, 0x233b: 0x0080, + 0x233c: 0x0080, 0x233d: 0x0080, 0x233e: 0x0080, 0x233f: 0x0080, + // Block 0x8d, offset 0x2340 + 0x2340: 0x0080, 0x2341: 0x0080, 0x2342: 0x0080, 0x2343: 0x0080, 0x2344: 0x0080, 0x2345: 0x0080, + 0x2346: 0x0080, 0x2347: 0x0080, 0x2348: 0x0080, 0x2349: 0x0080, 0x234a: 0x0080, 0x234b: 0x0080, + 0x234c: 0x0080, 0x234d: 0x0080, 0x234e: 0x0080, 0x2350: 0x0080, 0x2351: 0x0080, + 0x2352: 0x0080, 0x2353: 0x0080, 0x2354: 0x0080, 0x2355: 0x0080, 0x2356: 0x0080, 0x2357: 0x0080, + 0x2358: 0x0080, 0x2359: 0x0080, 0x235a: 0x0080, 0x235b: 0x0080, 0x235c: 0x0080, 0x235d: 0x0080, + 0x235e: 0x0080, 0x235f: 0x0080, 0x2360: 0x00c0, 0x2361: 0x00c0, 0x2362: 0x00c0, 0x2363: 0x00c0, + 0x2364: 0x00c0, 0x2365: 0x00c0, 0x2366: 0x00c0, 0x2367: 0x00c0, 0x2368: 0x00c0, 0x2369: 0x00c0, + 0x236a: 0x00c0, 0x236b: 0x00c0, 0x236c: 0x00c0, 0x236d: 0x00c0, 0x236e: 0x00c0, 0x236f: 0x00c0, + 0x2370: 0x00c0, 0x2371: 0x00c0, 0x2372: 0x00c0, 0x2373: 0x00c0, 0x2374: 0x00c0, 0x2375: 0x00c0, + 0x2376: 0x00c0, 0x2377: 0x00c0, 0x2378: 0x00c0, 0x2379: 0x00c0, 0x237a: 0x00c0, + // Block 0x8e, offset 0x2380 + 0x2380: 0x0080, 0x2381: 0x0080, 0x2382: 0x0080, 0x2383: 0x0080, 0x2384: 0x0080, 0x2385: 0x0080, + 0x2386: 0x0080, 0x2387: 0x0080, 0x2388: 0x0080, 0x2389: 0x0080, 0x238a: 0x0080, 0x238b: 0x0080, + 0x238c: 0x0080, 0x238d: 0x0080, 0x238e: 0x0080, 0x238f: 0x0080, 0x2390: 0x0080, 0x2391: 0x0080, + 0x2392: 0x0080, 0x2393: 0x0080, 0x2394: 0x0080, 0x2395: 0x0080, 0x2396: 0x0080, 0x2397: 0x0080, + 0x2398: 0x0080, 0x2399: 0x0080, 0x239a: 0x0080, 0x239b: 0x0080, 0x239c: 0x0080, 0x239d: 0x0080, + 0x239e: 0x0080, 0x239f: 0x0080, 0x23a0: 0x0080, 0x23a1: 0x0080, 0x23a2: 0x0080, 0x23a3: 0x0080, + 0x23b0: 0x00cc, 0x23b1: 0x00cc, 0x23b2: 0x00cc, 0x23b3: 0x00cc, 0x23b4: 0x00cc, 0x23b5: 0x00cc, + 0x23b6: 0x00cc, 0x23b7: 0x00cc, 0x23b8: 0x00cc, 0x23b9: 0x00cc, 0x23ba: 0x00cc, 0x23bb: 0x00cc, + 0x23bc: 0x00cc, 0x23bd: 0x00cc, 0x23be: 0x00cc, 0x23bf: 0x00cc, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x0080, 0x23c1: 0x0080, 0x23c2: 0x0080, 0x23c3: 0x0080, 0x23c4: 0x0080, 0x23c5: 0x0080, + 0x23c6: 0x0080, 0x23c7: 0x0080, 0x23c8: 0x0080, 0x23c9: 0x0080, 0x23ca: 0x0080, 0x23cb: 0x0080, + 0x23cc: 0x0080, 0x23cd: 0x0080, 0x23ce: 0x0080, 0x23cf: 0x0080, 0x23d0: 0x0080, 0x23d1: 0x0080, + 0x23d2: 0x0080, 0x23d3: 0x0080, 0x23d4: 0x0080, 0x23d5: 0x0080, 0x23d6: 0x0080, 0x23d7: 0x0080, + 0x23d8: 0x0080, 0x23d9: 0x0080, 0x23da: 0x0080, 0x23db: 0x0080, 0x23dc: 0x0080, 0x23dd: 0x0080, + 0x23de: 0x0080, 0x23e0: 0x0080, 0x23e1: 0x0080, 0x23e2: 0x0080, 0x23e3: 0x0080, + 0x23e4: 0x0080, 0x23e5: 0x0080, 0x23e6: 0x0080, 0x23e7: 0x0080, 0x23e8: 0x0080, 0x23e9: 0x0080, + 0x23ea: 0x0080, 0x23eb: 0x0080, 0x23ec: 0x0080, 0x23ed: 0x0080, 0x23ee: 0x0080, 0x23ef: 0x0080, + 0x23f0: 0x0080, 0x23f1: 0x0080, 0x23f2: 0x0080, 0x23f3: 0x0080, 0x23f4: 0x0080, 0x23f5: 0x0080, + 0x23f6: 0x0080, 0x23f7: 0x0080, 0x23f8: 0x0080, 0x23f9: 0x0080, 0x23fa: 0x0080, 0x23fb: 0x0080, + 0x23fc: 0x0080, 0x23fd: 0x0080, 0x23fe: 0x0080, 0x23ff: 0x0080, + // Block 0x90, offset 0x2400 + 0x2400: 0x0080, 0x2401: 0x0080, 0x2402: 0x0080, 0x2403: 0x0080, 0x2404: 0x0080, 0x2405: 0x0080, + 0x2406: 0x0080, 0x2407: 0x0080, 0x2408: 0x0080, 0x2409: 0x0080, 0x240a: 0x0080, 0x240b: 0x0080, + 0x240c: 0x0080, 0x240d: 0x0080, 0x240e: 0x0080, 0x240f: 0x0080, 0x2410: 0x008c, 0x2411: 0x008c, + 0x2412: 0x008c, 0x2413: 0x008c, 0x2414: 0x008c, 0x2415: 0x008c, 0x2416: 0x008c, 0x2417: 0x008c, + 0x2418: 0x008c, 0x2419: 0x008c, 0x241a: 0x008c, 0x241b: 0x008c, 0x241c: 0x008c, 0x241d: 0x008c, + 0x241e: 0x008c, 0x241f: 0x008c, 0x2420: 0x008c, 0x2421: 0x008c, 0x2422: 0x008c, 0x2423: 0x008c, + 0x2424: 0x008c, 0x2425: 0x008c, 0x2426: 0x008c, 0x2427: 0x008c, 0x2428: 0x008c, 0x2429: 0x008c, + 0x242a: 0x008c, 0x242b: 0x008c, 0x242c: 0x008c, 0x242d: 0x008c, 0x242e: 0x008c, 0x242f: 0x008c, + 0x2430: 0x008c, 0x2431: 0x008c, 0x2432: 0x008c, 0x2433: 0x008c, 0x2434: 0x008c, 0x2435: 0x008c, + 0x2436: 0x008c, 0x2437: 0x008c, 0x2438: 0x008c, 0x2439: 0x008c, 0x243a: 0x008c, 0x243b: 0x008c, + 0x243c: 0x008c, 0x243d: 0x008c, 0x243e: 0x008c, + // Block 0x91, offset 0x2440 + 0x2440: 0x008c, 0x2441: 0x008c, 0x2442: 0x008c, 0x2443: 0x008c, 0x2444: 0x008c, 0x2445: 0x008c, + 0x2446: 0x008c, 0x2447: 0x008c, 0x2448: 0x008c, 0x2449: 0x008c, 0x244a: 0x008c, 0x244b: 0x008c, + 0x244c: 0x008c, 0x244d: 0x008c, 0x244e: 0x008c, 0x244f: 0x008c, 0x2450: 0x008c, 0x2451: 0x008c, + 0x2452: 0x008c, 0x2453: 0x008c, 0x2454: 0x008c, 0x2455: 0x008c, 0x2456: 0x008c, 0x2457: 0x008c, + 0x2458: 0x0080, 0x2459: 0x0080, 0x245a: 0x0080, 0x245b: 0x0080, 0x245c: 0x0080, 0x245d: 0x0080, + 0x245e: 0x0080, 0x245f: 0x0080, 0x2460: 0x0080, 0x2461: 0x0080, 0x2462: 0x0080, 0x2463: 0x0080, + 0x2464: 0x0080, 0x2465: 0x0080, 0x2466: 0x0080, 0x2467: 0x0080, 0x2468: 0x0080, 0x2469: 0x0080, + 0x246a: 0x0080, 0x246b: 0x0080, 0x246c: 0x0080, 0x246d: 0x0080, 0x246e: 0x0080, 0x246f: 0x0080, + 0x2470: 0x0080, 0x2471: 0x0080, 0x2472: 0x0080, 0x2473: 0x0080, 0x2474: 0x0080, 0x2475: 0x0080, + 0x2476: 0x0080, 0x2477: 0x0080, 0x2478: 0x0080, 0x2479: 0x0080, 0x247a: 0x0080, 0x247b: 0x0080, + 0x247c: 0x0080, 0x247d: 0x0080, 0x247e: 0x0080, 0x247f: 0x0080, + // Block 0x92, offset 0x2480 + 0x2480: 0x00cc, 0x2481: 0x00cc, 0x2482: 0x00cc, 0x2483: 0x00cc, 0x2484: 0x00cc, 0x2485: 0x00cc, + 0x2486: 0x00cc, 0x2487: 0x00cc, 0x2488: 0x00cc, 0x2489: 0x00cc, 0x248a: 0x00cc, 0x248b: 0x00cc, + 0x248c: 0x00cc, 0x248d: 0x00cc, 0x248e: 0x00cc, 0x248f: 0x00cc, 0x2490: 0x00cc, 0x2491: 0x00cc, + 0x2492: 0x00cc, 0x2493: 0x00cc, 0x2494: 0x00cc, 0x2495: 0x00cc, 0x2496: 0x00cc, 0x2497: 0x00cc, + 0x2498: 0x00cc, 0x2499: 0x00cc, 0x249a: 0x00cc, 0x249b: 0x00cc, 0x249c: 0x00cc, 0x249d: 0x00cc, + 0x249e: 0x00cc, 0x249f: 0x00cc, 0x24a0: 0x00cc, 0x24a1: 0x00cc, 0x24a2: 0x00cc, 0x24a3: 0x00cc, + 0x24a4: 0x00cc, 0x24a5: 0x00cc, 0x24a6: 0x00cc, 0x24a7: 0x00cc, 0x24a8: 0x00cc, 0x24a9: 0x00cc, + 0x24aa: 0x00cc, 0x24ab: 0x00cc, 0x24ac: 0x00cc, 0x24ad: 0x00cc, 0x24ae: 0x00cc, 0x24af: 0x00cc, + 0x24b0: 0x00cc, 0x24b1: 0x00cc, 0x24b2: 0x00cc, 0x24b3: 0x00cc, 0x24b4: 0x00cc, 0x24b5: 0x00cc, + 0x24b6: 0x00cc, 0x24b7: 0x00cc, 0x24b8: 0x00cc, 0x24b9: 0x00cc, 0x24ba: 0x00cc, 0x24bb: 0x00cc, + 0x24bc: 0x00cc, 0x24bd: 0x00cc, 0x24be: 0x00cc, 0x24bf: 0x00cc, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x00cc, 0x24c1: 0x00cc, 0x24c2: 0x00cc, 0x24c3: 0x00cc, 0x24c4: 0x00cc, 0x24c5: 0x00cc, + 0x24c6: 0x00cc, 0x24c7: 0x00cc, 0x24c8: 0x00cc, 0x24c9: 0x00cc, 0x24ca: 0x00cc, 0x24cb: 0x00cc, + 0x24cc: 0x00cc, 0x24cd: 0x00cc, 0x24ce: 0x00cc, 0x24cf: 0x00cc, 0x24d0: 0x00cc, 0x24d1: 0x00cc, + 0x24d2: 0x00cc, 0x24d3: 0x00cc, 0x24d4: 0x00cc, 0x24d5: 0x00cc, 0x24d6: 0x00cc, 0x24d7: 0x00cc, + 0x24d8: 0x00cc, 0x24d9: 0x00cc, 0x24da: 0x00cc, 0x24db: 0x00cc, 0x24dc: 0x00cc, 0x24dd: 0x00cc, + 0x24de: 0x00cc, 0x24df: 0x00cc, 0x24e0: 0x00cc, 0x24e1: 0x00cc, 0x24e2: 0x00cc, 0x24e3: 0x00cc, + 0x24e4: 0x00cc, 0x24e5: 0x00cc, 0x24e6: 0x00cc, 0x24e7: 0x00cc, 0x24e8: 0x00cc, 0x24e9: 0x00cc, + 0x24ea: 0x00cc, 0x24eb: 0x00cc, 0x24ec: 0x00cc, 0x24ed: 0x00cc, 0x24ee: 0x00cc, 0x24ef: 0x00cc, + 0x24f0: 0x00cc, 0x24f1: 0x00cc, 0x24f2: 0x00cc, 0x24f3: 0x00cc, 0x24f4: 0x00cc, 0x24f5: 0x00cc, + // Block 0x94, offset 0x2500 + 0x2500: 0x00cc, 0x2501: 0x00cc, 0x2502: 0x00cc, 0x2503: 0x00cc, 0x2504: 0x00cc, 0x2505: 0x00cc, + 0x2506: 0x00cc, 0x2507: 0x00cc, 0x2508: 0x00cc, 0x2509: 0x00cc, 0x250a: 0x00cc, 0x250b: 0x00cc, + 0x250c: 0x00cc, 0x250d: 0x00cc, 0x250e: 0x00cc, 0x250f: 0x00cc, 0x2510: 0x00cc, 0x2511: 0x00cc, + 0x2512: 0x00cc, 0x2513: 0x00cc, 0x2514: 0x00cc, 0x2515: 0x00cc, + // Block 0x95, offset 0x2540 + 0x2540: 0x00c0, 0x2541: 0x00c0, 0x2542: 0x00c0, 0x2543: 0x00c0, 0x2544: 0x00c0, 0x2545: 0x00c0, + 0x2546: 0x00c0, 0x2547: 0x00c0, 0x2548: 0x00c0, 0x2549: 0x00c0, 0x254a: 0x00c0, 0x254b: 0x00c0, + 0x254c: 0x00c0, 0x2550: 0x0080, 0x2551: 0x0080, + 0x2552: 0x0080, 0x2553: 0x0080, 0x2554: 0x0080, 0x2555: 0x0080, 0x2556: 0x0080, 0x2557: 0x0080, + 0x2558: 0x0080, 0x2559: 0x0080, 0x255a: 0x0080, 0x255b: 0x0080, 0x255c: 0x0080, 0x255d: 0x0080, + 0x255e: 0x0080, 0x255f: 0x0080, 0x2560: 0x0080, 0x2561: 0x0080, 0x2562: 0x0080, 0x2563: 0x0080, + 0x2564: 0x0080, 0x2565: 0x0080, 0x2566: 0x0080, 0x2567: 0x0080, 0x2568: 0x0080, 0x2569: 0x0080, + 0x256a: 0x0080, 0x256b: 0x0080, 0x256c: 0x0080, 0x256d: 0x0080, 0x256e: 0x0080, 0x256f: 0x0080, + 0x2570: 0x0080, 0x2571: 0x0080, 0x2572: 0x0080, 0x2573: 0x0080, 0x2574: 0x0080, 0x2575: 0x0080, + 0x2576: 0x0080, 0x2577: 0x0080, 0x2578: 0x0080, 0x2579: 0x0080, 0x257a: 0x0080, 0x257b: 0x0080, + 0x257c: 0x0080, 0x257d: 0x0080, 0x257e: 0x0080, 0x257f: 0x0080, + // Block 0x96, offset 0x2580 + 0x2580: 0x0080, 0x2581: 0x0080, 0x2582: 0x0080, 0x2583: 0x0080, 0x2584: 0x0080, 0x2585: 0x0080, + 0x2586: 0x0080, + 0x2590: 0x00c0, 0x2591: 0x00c0, + 0x2592: 0x00c0, 0x2593: 0x00c0, 0x2594: 0x00c0, 0x2595: 0x00c0, 0x2596: 0x00c0, 0x2597: 0x00c0, + 0x2598: 0x00c0, 0x2599: 0x00c0, 0x259a: 0x00c0, 0x259b: 0x00c0, 0x259c: 0x00c0, 0x259d: 0x00c0, + 0x259e: 0x00c0, 0x259f: 0x00c0, 0x25a0: 0x00c0, 0x25a1: 0x00c0, 0x25a2: 0x00c0, 0x25a3: 0x00c0, + 0x25a4: 0x00c0, 0x25a5: 0x00c0, 0x25a6: 0x00c0, 0x25a7: 0x00c0, 0x25a8: 0x00c0, 0x25a9: 0x00c0, + 0x25aa: 0x00c0, 0x25ab: 0x00c0, 0x25ac: 0x00c0, 0x25ad: 0x00c0, 0x25ae: 0x00c0, 0x25af: 0x00c0, + 0x25b0: 0x00c0, 0x25b1: 0x00c0, 0x25b2: 0x00c0, 0x25b3: 0x00c0, 0x25b4: 0x00c0, 0x25b5: 0x00c0, + 0x25b6: 0x00c0, 0x25b7: 0x00c0, 0x25b8: 0x00c0, 0x25b9: 0x00c0, 0x25ba: 0x00c0, 0x25bb: 0x00c0, + 0x25bc: 0x00c0, 0x25bd: 0x00c0, 0x25be: 0x0080, 0x25bf: 0x0080, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x00c0, 0x25c1: 0x00c0, 0x25c2: 0x00c0, 0x25c3: 0x00c0, 0x25c4: 0x00c0, 0x25c5: 0x00c0, + 0x25c6: 0x00c0, 0x25c7: 0x00c0, 0x25c8: 0x00c0, 0x25c9: 0x00c0, 0x25ca: 0x00c0, 0x25cb: 0x00c0, + 0x25cc: 0x00c0, 0x25cd: 0x0080, 0x25ce: 0x0080, 0x25cf: 0x0080, 0x25d0: 0x00c0, 0x25d1: 0x00c0, + 0x25d2: 0x00c0, 0x25d3: 0x00c0, 0x25d4: 0x00c0, 0x25d5: 0x00c0, 0x25d6: 0x00c0, 0x25d7: 0x00c0, + 0x25d8: 0x00c0, 0x25d9: 0x00c0, 0x25da: 0x00c0, 0x25db: 0x00c0, 0x25dc: 0x00c0, 0x25dd: 0x00c0, + 0x25de: 0x00c0, 0x25df: 0x00c0, 0x25e0: 0x00c0, 0x25e1: 0x00c0, 0x25e2: 0x00c0, 0x25e3: 0x00c0, + 0x25e4: 0x00c0, 0x25e5: 0x00c0, 0x25e6: 0x00c0, 0x25e7: 0x00c0, 0x25e8: 0x00c0, 0x25e9: 0x00c0, + 0x25ea: 0x00c0, 0x25eb: 0x00c0, + // Block 0x98, offset 0x2600 + 0x2600: 0x00c0, 0x2601: 0x00c0, 0x2602: 0x00c0, 0x2603: 0x00c0, 0x2604: 0x00c0, 0x2605: 0x00c0, + 0x2606: 0x00c0, 0x2607: 0x00c0, 0x2608: 0x00c0, 0x2609: 0x00c0, 0x260a: 0x00c0, 0x260b: 0x00c0, + 0x260c: 0x00c0, 0x260d: 0x00c0, 0x260e: 0x00c0, 0x260f: 0x00c0, 0x2610: 0x00c0, 0x2611: 0x00c0, + 0x2612: 0x00c0, 0x2613: 0x00c0, 0x2614: 0x00c0, 0x2615: 0x00c0, 0x2616: 0x00c0, 0x2617: 0x00c0, + 0x2618: 0x00c0, 0x2619: 0x00c0, 0x261a: 0x00c0, 0x261b: 0x00c0, 0x261c: 0x00c0, 0x261d: 0x00c0, + 0x261e: 0x00c0, 0x261f: 0x00c0, 0x2620: 0x00c0, 0x2621: 0x00c0, 0x2622: 0x00c0, 0x2623: 0x00c0, + 0x2624: 0x00c0, 0x2625: 0x00c0, 0x2626: 0x00c0, 0x2627: 0x00c0, 0x2628: 0x00c0, 0x2629: 0x00c0, + 0x262a: 0x00c0, 0x262b: 0x00c0, 0x262c: 0x00c0, 0x262d: 0x00c0, 0x262e: 0x00c0, 0x262f: 0x00c3, + 0x2630: 0x0083, 0x2631: 0x0083, 0x2632: 0x0083, 0x2633: 0x0080, 0x2634: 0x00c3, 0x2635: 0x00c3, + 0x2636: 0x00c3, 0x2637: 0x00c3, 0x2638: 0x00c3, 0x2639: 0x00c3, 0x263a: 0x00c3, 0x263b: 0x00c3, + 0x263c: 0x00c3, 0x263d: 0x00c3, 0x263e: 0x0080, 0x263f: 0x00c0, + // Block 0x99, offset 0x2640 + 0x2640: 0x00c0, 0x2641: 0x00c0, 0x2642: 0x00c0, 0x2643: 0x00c0, 0x2644: 0x00c0, 0x2645: 0x00c0, + 0x2646: 0x00c0, 0x2647: 0x00c0, 0x2648: 0x00c0, 0x2649: 0x00c0, 0x264a: 0x00c0, 0x264b: 0x00c0, + 0x264c: 0x00c0, 0x264d: 0x00c0, 0x264e: 0x00c0, 0x264f: 0x00c0, 0x2650: 0x00c0, 0x2651: 0x00c0, + 0x2652: 0x00c0, 0x2653: 0x00c0, 0x2654: 0x00c0, 0x2655: 0x00c0, 0x2656: 0x00c0, 0x2657: 0x00c0, + 0x2658: 0x00c0, 0x2659: 0x00c0, 0x265a: 0x00c0, 0x265b: 0x00c0, 0x265c: 0x0080, 0x265d: 0x0080, + 0x265e: 0x00c3, 0x265f: 0x00c3, 0x2660: 0x00c0, 0x2661: 0x00c0, 0x2662: 0x00c0, 0x2663: 0x00c0, + 0x2664: 0x00c0, 0x2665: 0x00c0, 0x2666: 0x00c0, 0x2667: 0x00c0, 0x2668: 0x00c0, 0x2669: 0x00c0, + 0x266a: 0x00c0, 0x266b: 0x00c0, 0x266c: 0x00c0, 0x266d: 0x00c0, 0x266e: 0x00c0, 0x266f: 0x00c0, + 0x2670: 0x00c0, 0x2671: 0x00c0, 0x2672: 0x00c0, 0x2673: 0x00c0, 0x2674: 0x00c0, 0x2675: 0x00c0, + 0x2676: 0x00c0, 0x2677: 0x00c0, 0x2678: 0x00c0, 0x2679: 0x00c0, 0x267a: 0x00c0, 0x267b: 0x00c0, + 0x267c: 0x00c0, 0x267d: 0x00c0, 0x267e: 0x00c0, 0x267f: 0x00c0, + // Block 0x9a, offset 0x2680 + 0x2680: 0x00c0, 0x2681: 0x00c0, 0x2682: 0x00c0, 0x2683: 0x00c0, 0x2684: 0x00c0, 0x2685: 0x00c0, + 0x2686: 0x00c0, 0x2687: 0x00c0, 0x2688: 0x00c0, 0x2689: 0x00c0, 0x268a: 0x00c0, 0x268b: 0x00c0, + 0x268c: 0x00c0, 0x268d: 0x00c0, 0x268e: 0x00c0, 0x268f: 0x00c0, 0x2690: 0x00c0, 0x2691: 0x00c0, + 0x2692: 0x00c0, 0x2693: 0x00c0, 0x2694: 0x00c0, 0x2695: 0x00c0, 0x2696: 0x00c0, 0x2697: 0x00c0, + 0x2698: 0x00c0, 0x2699: 0x00c0, 0x269a: 0x00c0, 0x269b: 0x00c0, 0x269c: 0x00c0, 0x269d: 0x00c0, + 0x269e: 0x00c0, 0x269f: 0x00c0, 0x26a0: 0x00c0, 0x26a1: 0x00c0, 0x26a2: 0x00c0, 0x26a3: 0x00c0, + 0x26a4: 0x00c0, 0x26a5: 0x00c0, 0x26a6: 0x0080, 0x26a7: 0x0080, 0x26a8: 0x0080, 0x26a9: 0x0080, + 0x26aa: 0x0080, 0x26ab: 0x0080, 0x26ac: 0x0080, 0x26ad: 0x0080, 0x26ae: 0x0080, 0x26af: 0x0080, + 0x26b0: 0x00c3, 0x26b1: 0x00c3, 0x26b2: 0x0080, 0x26b3: 0x0080, 0x26b4: 0x0080, 0x26b5: 0x0080, + 0x26b6: 0x0080, 0x26b7: 0x0080, + // Block 0x9b, offset 0x26c0 + 0x26c0: 0x0080, 0x26c1: 0x0080, 0x26c2: 0x0080, 0x26c3: 0x0080, 0x26c4: 0x0080, 0x26c5: 0x0080, + 0x26c6: 0x0080, 0x26c7: 0x0080, 0x26c8: 0x0080, 0x26c9: 0x0080, 0x26ca: 0x0080, 0x26cb: 0x0080, + 0x26cc: 0x0080, 0x26cd: 0x0080, 0x26ce: 0x0080, 0x26cf: 0x0080, 0x26d0: 0x0080, 0x26d1: 0x0080, + 0x26d2: 0x0080, 0x26d3: 0x0080, 0x26d4: 0x0080, 0x26d5: 0x0080, 0x26d6: 0x0080, 0x26d7: 0x00c0, + 0x26d8: 0x00c0, 0x26d9: 0x00c0, 0x26da: 0x00c0, 0x26db: 0x00c0, 0x26dc: 0x00c0, 0x26dd: 0x00c0, + 0x26de: 0x00c0, 0x26df: 0x00c0, 0x26e0: 0x0080, 0x26e1: 0x0080, 0x26e2: 0x00c0, 0x26e3: 0x00c0, + 0x26e4: 0x00c0, 0x26e5: 0x00c0, 0x26e6: 0x00c0, 0x26e7: 0x00c0, 0x26e8: 0x00c0, 0x26e9: 0x00c0, + 0x26ea: 0x00c0, 0x26eb: 0x00c0, 0x26ec: 0x00c0, 0x26ed: 0x00c0, 0x26ee: 0x00c0, 0x26ef: 0x00c0, + 0x26f0: 0x00c0, 0x26f1: 0x00c0, 0x26f2: 0x00c0, 0x26f3: 0x00c0, 0x26f4: 0x00c0, 0x26f5: 0x00c0, + 0x26f6: 0x00c0, 0x26f7: 0x00c0, 0x26f8: 0x00c0, 0x26f9: 0x00c0, 0x26fa: 0x00c0, 0x26fb: 0x00c0, + 0x26fc: 0x00c0, 0x26fd: 0x00c0, 0x26fe: 0x00c0, 0x26ff: 0x00c0, + // Block 0x9c, offset 0x2700 + 0x2700: 0x00c0, 0x2701: 0x00c0, 0x2702: 0x00c0, 0x2703: 0x00c0, 0x2704: 0x00c0, 0x2705: 0x00c0, + 0x2706: 0x00c0, 0x2707: 0x00c0, 0x2708: 0x00c0, 0x2709: 0x00c0, 0x270a: 0x00c0, 0x270b: 0x00c0, + 0x270c: 0x00c0, 0x270d: 0x00c0, 0x270e: 0x00c0, 0x270f: 0x00c0, 0x2710: 0x00c0, 0x2711: 0x00c0, + 0x2712: 0x00c0, 0x2713: 0x00c0, 0x2714: 0x00c0, 0x2715: 0x00c0, 0x2716: 0x00c0, 0x2717: 0x00c0, + 0x2718: 0x00c0, 0x2719: 0x00c0, 0x271a: 0x00c0, 0x271b: 0x00c0, 0x271c: 0x00c0, 0x271d: 0x00c0, + 0x271e: 0x00c0, 0x271f: 0x00c0, 0x2720: 0x00c0, 0x2721: 0x00c0, 0x2722: 0x00c0, 0x2723: 0x00c0, + 0x2724: 0x00c0, 0x2725: 0x00c0, 0x2726: 0x00c0, 0x2727: 0x00c0, 0x2728: 0x00c0, 0x2729: 0x00c0, + 0x272a: 0x00c0, 0x272b: 0x00c0, 0x272c: 0x00c0, 0x272d: 0x00c0, 0x272e: 0x00c0, 0x272f: 0x00c0, + 0x2730: 0x0080, 0x2731: 0x00c0, 0x2732: 0x00c0, 0x2733: 0x00c0, 0x2734: 0x00c0, 0x2735: 0x00c0, + 0x2736: 0x00c0, 0x2737: 0x00c0, 0x2738: 0x00c0, 0x2739: 0x00c0, 0x273a: 0x00c0, 0x273b: 0x00c0, + 0x273c: 0x00c0, 0x273d: 0x00c0, 0x273e: 0x00c0, 0x273f: 0x00c0, + // Block 0x9d, offset 0x2740 + 0x2740: 0x00c0, 0x2741: 0x00c0, 0x2742: 0x00c0, 0x2743: 0x00c0, 0x2744: 0x00c0, 0x2745: 0x00c0, + 0x2746: 0x00c0, 0x2747: 0x00c0, 0x2748: 0x00c0, 0x2749: 0x0080, 0x274a: 0x0080, 0x274b: 0x00c0, + 0x274c: 0x00c0, 0x274d: 0x00c0, 0x274e: 0x00c0, 0x274f: 0x00c0, 0x2750: 0x00c0, 0x2751: 0x00c0, + 0x2752: 0x00c0, 0x2753: 0x00c0, 0x2754: 0x00c0, 0x2755: 0x00c0, 0x2756: 0x00c0, 0x2757: 0x00c0, + 0x2758: 0x00c0, 0x2759: 0x00c0, 0x275a: 0x00c0, 0x275b: 0x00c0, 0x275c: 0x00c0, 0x275d: 0x00c0, + 0x275e: 0x00c0, 0x275f: 0x00c0, 0x2760: 0x00c0, 0x2761: 0x00c0, 0x2762: 0x00c0, 0x2763: 0x00c0, + 0x2764: 0x00c0, 0x2765: 0x00c0, 0x2766: 0x00c0, 0x2767: 0x00c0, 0x2768: 0x00c0, 0x2769: 0x00c0, + 0x276a: 0x00c0, 0x276b: 0x00c0, 0x276c: 0x00c0, 0x276d: 0x00c0, 0x276e: 0x00c0, + 0x2770: 0x00c0, 0x2771: 0x00c0, 0x2772: 0x00c0, 0x2773: 0x00c0, 0x2774: 0x00c0, 0x2775: 0x00c0, + 0x2776: 0x00c0, 0x2777: 0x00c0, + // Block 0x9e, offset 0x2780 + 0x27b7: 0x00c0, 0x27b8: 0x0080, 0x27b9: 0x0080, 0x27ba: 0x00c0, 0x27bb: 0x00c0, + 0x27bc: 0x00c0, 0x27bd: 0x00c0, 0x27be: 0x00c0, 0x27bf: 0x00c0, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x00c0, 0x27c1: 0x00c0, 0x27c2: 0x00c3, 0x27c3: 0x00c0, 0x27c4: 0x00c0, 0x27c5: 0x00c0, + 0x27c6: 0x00c6, 0x27c7: 0x00c0, 0x27c8: 0x00c0, 0x27c9: 0x00c0, 0x27ca: 0x00c0, 0x27cb: 0x00c3, + 0x27cc: 0x00c0, 0x27cd: 0x00c0, 0x27ce: 0x00c0, 0x27cf: 0x00c0, 0x27d0: 0x00c0, 0x27d1: 0x00c0, + 0x27d2: 0x00c0, 0x27d3: 0x00c0, 0x27d4: 0x00c0, 0x27d5: 0x00c0, 0x27d6: 0x00c0, 0x27d7: 0x00c0, + 0x27d8: 0x00c0, 0x27d9: 0x00c0, 0x27da: 0x00c0, 0x27db: 0x00c0, 0x27dc: 0x00c0, 0x27dd: 0x00c0, + 0x27de: 0x00c0, 0x27df: 0x00c0, 0x27e0: 0x00c0, 0x27e1: 0x00c0, 0x27e2: 0x00c0, 0x27e3: 0x00c0, + 0x27e4: 0x00c0, 0x27e5: 0x00c3, 0x27e6: 0x00c3, 0x27e7: 0x00c0, 0x27e8: 0x0080, 0x27e9: 0x0080, + 0x27ea: 0x0080, 0x27eb: 0x0080, + 0x27f0: 0x0080, 0x27f1: 0x0080, 0x27f2: 0x0080, 0x27f3: 0x0080, 0x27f4: 0x0080, 0x27f5: 0x0080, + 0x27f6: 0x0080, 0x27f7: 0x0080, 0x27f8: 0x0080, 0x27f9: 0x0080, + // Block 0xa0, offset 0x2800 + 0x2800: 0x00c2, 0x2801: 0x00c2, 0x2802: 0x00c2, 0x2803: 0x00c2, 0x2804: 0x00c2, 0x2805: 0x00c2, + 0x2806: 0x00c2, 0x2807: 0x00c2, 0x2808: 0x00c2, 0x2809: 0x00c2, 0x280a: 0x00c2, 0x280b: 0x00c2, + 0x280c: 0x00c2, 0x280d: 0x00c2, 0x280e: 0x00c2, 0x280f: 0x00c2, 0x2810: 0x00c2, 0x2811: 0x00c2, + 0x2812: 0x00c2, 0x2813: 0x00c2, 0x2814: 0x00c2, 0x2815: 0x00c2, 0x2816: 0x00c2, 0x2817: 0x00c2, + 0x2818: 0x00c2, 0x2819: 0x00c2, 0x281a: 0x00c2, 0x281b: 0x00c2, 0x281c: 0x00c2, 0x281d: 0x00c2, + 0x281e: 0x00c2, 0x281f: 0x00c2, 0x2820: 0x00c2, 0x2821: 0x00c2, 0x2822: 0x00c2, 0x2823: 0x00c2, + 0x2824: 0x00c2, 0x2825: 0x00c2, 0x2826: 0x00c2, 0x2827: 0x00c2, 0x2828: 0x00c2, 0x2829: 0x00c2, + 0x282a: 0x00c2, 0x282b: 0x00c2, 0x282c: 0x00c2, 0x282d: 0x00c2, 0x282e: 0x00c2, 0x282f: 0x00c2, + 0x2830: 0x00c2, 0x2831: 0x00c2, 0x2832: 0x00c1, 0x2833: 0x00c0, 0x2834: 0x0080, 0x2835: 0x0080, + 0x2836: 0x0080, 0x2837: 0x0080, + // Block 0xa1, offset 0x2840 + 0x2840: 0x00c0, 0x2841: 0x00c0, 0x2842: 0x00c0, 0x2843: 0x00c0, 0x2844: 0x00c6, 0x2845: 0x00c3, + 0x284e: 0x0080, 0x284f: 0x0080, 0x2850: 0x00c0, 0x2851: 0x00c0, + 0x2852: 0x00c0, 0x2853: 0x00c0, 0x2854: 0x00c0, 0x2855: 0x00c0, 0x2856: 0x00c0, 0x2857: 0x00c0, + 0x2858: 0x00c0, 0x2859: 0x00c0, + 0x2860: 0x00c3, 0x2861: 0x00c3, 0x2862: 0x00c3, 0x2863: 0x00c3, + 0x2864: 0x00c3, 0x2865: 0x00c3, 0x2866: 0x00c3, 0x2867: 0x00c3, 0x2868: 0x00c3, 0x2869: 0x00c3, + 0x286a: 0x00c3, 0x286b: 0x00c3, 0x286c: 0x00c3, 0x286d: 0x00c3, 0x286e: 0x00c3, 0x286f: 0x00c3, + 0x2870: 0x00c3, 0x2871: 0x00c3, 0x2872: 0x00c0, 0x2873: 0x00c0, 0x2874: 0x00c0, 0x2875: 0x00c0, + 0x2876: 0x00c0, 0x2877: 0x00c0, 0x2878: 0x0080, 0x2879: 0x0080, 0x287a: 0x0080, 0x287b: 0x00c0, + 0x287c: 0x0080, 0x287d: 0x00c0, + // Block 0xa2, offset 0x2880 + 0x2880: 0x00c0, 0x2881: 0x00c0, 0x2882: 0x00c0, 0x2883: 0x00c0, 0x2884: 0x00c0, 0x2885: 0x00c0, + 0x2886: 0x00c0, 0x2887: 0x00c0, 0x2888: 0x00c0, 0x2889: 0x00c0, 0x288a: 0x00c0, 0x288b: 0x00c0, + 0x288c: 0x00c0, 0x288d: 0x00c0, 0x288e: 0x00c0, 0x288f: 0x00c0, 0x2890: 0x00c0, 0x2891: 0x00c0, + 0x2892: 0x00c0, 0x2893: 0x00c0, 0x2894: 0x00c0, 0x2895: 0x00c0, 0x2896: 0x00c0, 0x2897: 0x00c0, + 0x2898: 0x00c0, 0x2899: 0x00c0, 0x289a: 0x00c0, 0x289b: 0x00c0, 0x289c: 0x00c0, 0x289d: 0x00c0, + 0x289e: 0x00c0, 0x289f: 0x00c0, 0x28a0: 0x00c0, 0x28a1: 0x00c0, 0x28a2: 0x00c0, 0x28a3: 0x00c0, + 0x28a4: 0x00c0, 0x28a5: 0x00c0, 0x28a6: 0x00c3, 0x28a7: 0x00c3, 0x28a8: 0x00c3, 0x28a9: 0x00c3, + 0x28aa: 0x00c3, 0x28ab: 0x00c3, 0x28ac: 0x00c3, 0x28ad: 0x00c3, 0x28ae: 0x0080, 0x28af: 0x0080, + 0x28b0: 0x00c0, 0x28b1: 0x00c0, 0x28b2: 0x00c0, 0x28b3: 0x00c0, 0x28b4: 0x00c0, 0x28b5: 0x00c0, + 0x28b6: 0x00c0, 0x28b7: 0x00c0, 0x28b8: 0x00c0, 0x28b9: 0x00c0, 0x28ba: 0x00c0, 0x28bb: 0x00c0, + 0x28bc: 0x00c0, 0x28bd: 0x00c0, 0x28be: 0x00c0, 0x28bf: 0x00c0, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x00c0, 0x28c1: 0x00c0, 0x28c2: 0x00c0, 0x28c3: 0x00c0, 0x28c4: 0x00c0, 0x28c5: 0x00c0, + 0x28c6: 0x00c0, 0x28c7: 0x00c3, 0x28c8: 0x00c3, 0x28c9: 0x00c3, 0x28ca: 0x00c3, 0x28cb: 0x00c3, + 0x28cc: 0x00c3, 0x28cd: 0x00c3, 0x28ce: 0x00c3, 0x28cf: 0x00c3, 0x28d0: 0x00c3, 0x28d1: 0x00c3, + 0x28d2: 0x00c0, 0x28d3: 0x00c5, + 0x28df: 0x0080, 0x28e0: 0x0040, 0x28e1: 0x0040, 0x28e2: 0x0040, 0x28e3: 0x0040, + 0x28e4: 0x0040, 0x28e5: 0x0040, 0x28e6: 0x0040, 0x28e7: 0x0040, 0x28e8: 0x0040, 0x28e9: 0x0040, + 0x28ea: 0x0040, 0x28eb: 0x0040, 0x28ec: 0x0040, 0x28ed: 0x0040, 0x28ee: 0x0040, 0x28ef: 0x0040, + 0x28f0: 0x0040, 0x28f1: 0x0040, 0x28f2: 0x0040, 0x28f3: 0x0040, 0x28f4: 0x0040, 0x28f5: 0x0040, + 0x28f6: 0x0040, 0x28f7: 0x0040, 0x28f8: 0x0040, 0x28f9: 0x0040, 0x28fa: 0x0040, 0x28fb: 0x0040, + 0x28fc: 0x0040, + // Block 0xa4, offset 0x2900 + 0x2900: 0x00c3, 0x2901: 0x00c3, 0x2902: 0x00c3, 0x2903: 0x00c0, 0x2904: 0x00c0, 0x2905: 0x00c0, + 0x2906: 0x00c0, 0x2907: 0x00c0, 0x2908: 0x00c0, 0x2909: 0x00c0, 0x290a: 0x00c0, 0x290b: 0x00c0, + 0x290c: 0x00c0, 0x290d: 0x00c0, 0x290e: 0x00c0, 0x290f: 0x00c0, 0x2910: 0x00c0, 0x2911: 0x00c0, + 0x2912: 0x00c0, 0x2913: 0x00c0, 0x2914: 0x00c0, 0x2915: 0x00c0, 0x2916: 0x00c0, 0x2917: 0x00c0, + 0x2918: 0x00c0, 0x2919: 0x00c0, 0x291a: 0x00c0, 0x291b: 0x00c0, 0x291c: 0x00c0, 0x291d: 0x00c0, + 0x291e: 0x00c0, 0x291f: 0x00c0, 0x2920: 0x00c0, 0x2921: 0x00c0, 0x2922: 0x00c0, 0x2923: 0x00c0, + 0x2924: 0x00c0, 0x2925: 0x00c0, 0x2926: 0x00c0, 0x2927: 0x00c0, 0x2928: 0x00c0, 0x2929: 0x00c0, + 0x292a: 0x00c0, 0x292b: 0x00c0, 0x292c: 0x00c0, 0x292d: 0x00c0, 0x292e: 0x00c0, 0x292f: 0x00c0, + 0x2930: 0x00c0, 0x2931: 0x00c0, 0x2932: 0x00c0, 0x2933: 0x00c3, 0x2934: 0x00c0, 0x2935: 0x00c0, + 0x2936: 0x00c3, 0x2937: 0x00c3, 0x2938: 0x00c3, 0x2939: 0x00c3, 0x293a: 0x00c0, 0x293b: 0x00c0, + 0x293c: 0x00c3, 0x293d: 0x00c0, 0x293e: 0x00c0, 0x293f: 0x00c0, + // Block 0xa5, offset 0x2940 + 0x2940: 0x00c5, 0x2941: 0x0080, 0x2942: 0x0080, 0x2943: 0x0080, 0x2944: 0x0080, 0x2945: 0x0080, + 0x2946: 0x0080, 0x2947: 0x0080, 0x2948: 0x0080, 0x2949: 0x0080, 0x294a: 0x0080, 0x294b: 0x0080, + 0x294c: 0x0080, 0x294d: 0x0080, 0x294f: 0x00c0, 0x2950: 0x00c0, 0x2951: 0x00c0, + 0x2952: 0x00c0, 0x2953: 0x00c0, 0x2954: 0x00c0, 0x2955: 0x00c0, 0x2956: 0x00c0, 0x2957: 0x00c0, + 0x2958: 0x00c0, 0x2959: 0x00c0, + 0x295e: 0x0080, 0x295f: 0x0080, 0x2960: 0x00c0, 0x2961: 0x00c0, 0x2962: 0x00c0, 0x2963: 0x00c0, + 0x2964: 0x00c0, 0x2965: 0x00c3, 0x2966: 0x00c0, 0x2967: 0x00c0, 0x2968: 0x00c0, 0x2969: 0x00c0, + 0x296a: 0x00c0, 0x296b: 0x00c0, 0x296c: 0x00c0, 0x296d: 0x00c0, 0x296e: 0x00c0, 0x296f: 0x00c0, + 0x2970: 0x00c0, 0x2971: 0x00c0, 0x2972: 0x00c0, 0x2973: 0x00c0, 0x2974: 0x00c0, 0x2975: 0x00c0, + 0x2976: 0x00c0, 0x2977: 0x00c0, 0x2978: 0x00c0, 0x2979: 0x00c0, 0x297a: 0x00c0, 0x297b: 0x00c0, + 0x297c: 0x00c0, 0x297d: 0x00c0, 0x297e: 0x00c0, + // Block 0xa6, offset 0x2980 + 0x2980: 0x00c0, 0x2981: 0x00c0, 0x2982: 0x00c0, 0x2983: 0x00c0, 0x2984: 0x00c0, 0x2985: 0x00c0, + 0x2986: 0x00c0, 0x2987: 0x00c0, 0x2988: 0x00c0, 0x2989: 0x00c0, 0x298a: 0x00c0, 0x298b: 0x00c0, + 0x298c: 0x00c0, 0x298d: 0x00c0, 0x298e: 0x00c0, 0x298f: 0x00c0, 0x2990: 0x00c0, 0x2991: 0x00c0, + 0x2992: 0x00c0, 0x2993: 0x00c0, 0x2994: 0x00c0, 0x2995: 0x00c0, 0x2996: 0x00c0, 0x2997: 0x00c0, + 0x2998: 0x00c0, 0x2999: 0x00c0, 0x299a: 0x00c0, 0x299b: 0x00c0, 0x299c: 0x00c0, 0x299d: 0x00c0, + 0x299e: 0x00c0, 0x299f: 0x00c0, 0x29a0: 0x00c0, 0x29a1: 0x00c0, 0x29a2: 0x00c0, 0x29a3: 0x00c0, + 0x29a4: 0x00c0, 0x29a5: 0x00c0, 0x29a6: 0x00c0, 0x29a7: 0x00c0, 0x29a8: 0x00c0, 0x29a9: 0x00c3, + 0x29aa: 0x00c3, 0x29ab: 0x00c3, 0x29ac: 0x00c3, 0x29ad: 0x00c3, 0x29ae: 0x00c3, 0x29af: 0x00c0, + 0x29b0: 0x00c0, 0x29b1: 0x00c3, 0x29b2: 0x00c3, 0x29b3: 0x00c0, 0x29b4: 0x00c0, 0x29b5: 0x00c3, + 0x29b6: 0x00c3, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x00c0, 0x29c1: 0x00c0, 0x29c2: 0x00c0, 0x29c3: 0x00c3, 0x29c4: 0x00c0, 0x29c5: 0x00c0, + 0x29c6: 0x00c0, 0x29c7: 0x00c0, 0x29c8: 0x00c0, 0x29c9: 0x00c0, 0x29ca: 0x00c0, 0x29cb: 0x00c0, + 0x29cc: 0x00c3, 0x29cd: 0x00c0, 0x29d0: 0x00c0, 0x29d1: 0x00c0, + 0x29d2: 0x00c0, 0x29d3: 0x00c0, 0x29d4: 0x00c0, 0x29d5: 0x00c0, 0x29d6: 0x00c0, 0x29d7: 0x00c0, + 0x29d8: 0x00c0, 0x29d9: 0x00c0, 0x29dc: 0x0080, 0x29dd: 0x0080, + 0x29de: 0x0080, 0x29df: 0x0080, 0x29e0: 0x00c0, 0x29e1: 0x00c0, 0x29e2: 0x00c0, 0x29e3: 0x00c0, + 0x29e4: 0x00c0, 0x29e5: 0x00c0, 0x29e6: 0x00c0, 0x29e7: 0x00c0, 0x29e8: 0x00c0, 0x29e9: 0x00c0, + 0x29ea: 0x00c0, 0x29eb: 0x00c0, 0x29ec: 0x00c0, 0x29ed: 0x00c0, 0x29ee: 0x00c0, 0x29ef: 0x00c0, + 0x29f0: 0x00c0, 0x29f1: 0x00c0, 0x29f2: 0x00c0, 0x29f3: 0x00c0, 0x29f4: 0x00c0, 0x29f5: 0x00c0, + 0x29f6: 0x00c0, 0x29f7: 0x0080, 0x29f8: 0x0080, 0x29f9: 0x0080, 0x29fa: 0x00c0, 0x29fb: 0x00c0, + 0x29fc: 0x00c3, 0x29fd: 0x00c0, 0x29fe: 0x00c0, 0x29ff: 0x00c0, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x00c0, 0x2a01: 0x00c0, 0x2a02: 0x00c0, 0x2a03: 0x00c0, 0x2a04: 0x00c0, 0x2a05: 0x00c0, + 0x2a06: 0x00c0, 0x2a07: 0x00c0, 0x2a08: 0x00c0, 0x2a09: 0x00c0, 0x2a0a: 0x00c0, 0x2a0b: 0x00c0, + 0x2a0c: 0x00c0, 0x2a0d: 0x00c0, 0x2a0e: 0x00c0, 0x2a0f: 0x00c0, 0x2a10: 0x00c0, 0x2a11: 0x00c0, + 0x2a12: 0x00c0, 0x2a13: 0x00c0, 0x2a14: 0x00c0, 0x2a15: 0x00c0, 0x2a16: 0x00c0, 0x2a17: 0x00c0, + 0x2a18: 0x00c0, 0x2a19: 0x00c0, 0x2a1a: 0x00c0, 0x2a1b: 0x00c0, 0x2a1c: 0x00c0, 0x2a1d: 0x00c0, + 0x2a1e: 0x00c0, 0x2a1f: 0x00c0, 0x2a20: 0x00c0, 0x2a21: 0x00c0, 0x2a22: 0x00c0, 0x2a23: 0x00c0, + 0x2a24: 0x00c0, 0x2a25: 0x00c0, 0x2a26: 0x00c0, 0x2a27: 0x00c0, 0x2a28: 0x00c0, 0x2a29: 0x00c0, + 0x2a2a: 0x00c0, 0x2a2b: 0x00c0, 0x2a2c: 0x00c0, 0x2a2d: 0x00c0, 0x2a2e: 0x00c0, 0x2a2f: 0x00c0, + 0x2a30: 0x00c3, 0x2a31: 0x00c0, 0x2a32: 0x00c3, 0x2a33: 0x00c3, 0x2a34: 0x00c3, 0x2a35: 0x00c0, + 0x2a36: 0x00c0, 0x2a37: 0x00c3, 0x2a38: 0x00c3, 0x2a39: 0x00c0, 0x2a3a: 0x00c0, 0x2a3b: 0x00c0, + 0x2a3c: 0x00c0, 0x2a3d: 0x00c0, 0x2a3e: 0x00c3, 0x2a3f: 0x00c3, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x00c0, 0x2a41: 0x00c3, 0x2a42: 0x00c0, + 0x2a5b: 0x00c0, 0x2a5c: 0x00c0, 0x2a5d: 0x00c0, + 0x2a5e: 0x0080, 0x2a5f: 0x0080, 0x2a60: 0x00c0, 0x2a61: 0x00c0, 0x2a62: 0x00c0, 0x2a63: 0x00c0, + 0x2a64: 0x00c0, 0x2a65: 0x00c0, 0x2a66: 0x00c0, 0x2a67: 0x00c0, 0x2a68: 0x00c0, 0x2a69: 0x00c0, + 0x2a6a: 0x00c0, 0x2a6b: 0x00c0, 0x2a6c: 0x00c3, 0x2a6d: 0x00c3, 0x2a6e: 0x00c0, 0x2a6f: 0x00c0, + 0x2a70: 0x0080, 0x2a71: 0x0080, 0x2a72: 0x00c0, 0x2a73: 0x00c0, 0x2a74: 0x00c0, 0x2a75: 0x00c0, + 0x2a76: 0x00c6, + // Block 0xaa, offset 0x2a80 + 0x2a81: 0x00c0, 0x2a82: 0x00c0, 0x2a83: 0x00c0, 0x2a84: 0x00c0, 0x2a85: 0x00c0, + 0x2a86: 0x00c0, 0x2a89: 0x00c0, 0x2a8a: 0x00c0, 0x2a8b: 0x00c0, + 0x2a8c: 0x00c0, 0x2a8d: 0x00c0, 0x2a8e: 0x00c0, 0x2a91: 0x00c0, + 0x2a92: 0x00c0, 0x2a93: 0x00c0, 0x2a94: 0x00c0, 0x2a95: 0x00c0, 0x2a96: 0x00c0, + 0x2aa0: 0x00c0, 0x2aa1: 0x00c0, 0x2aa2: 0x00c0, 0x2aa3: 0x00c0, + 0x2aa4: 0x00c0, 0x2aa5: 0x00c0, 0x2aa6: 0x00c0, 0x2aa8: 0x00c0, 0x2aa9: 0x00c0, + 0x2aaa: 0x00c0, 0x2aab: 0x00c0, 0x2aac: 0x00c0, 0x2aad: 0x00c0, 0x2aae: 0x00c0, + 0x2ab0: 0x00c0, 0x2ab1: 0x00c0, 0x2ab2: 0x00c0, 0x2ab3: 0x00c0, 0x2ab4: 0x00c0, 0x2ab5: 0x00c0, + 0x2ab6: 0x00c0, 0x2ab7: 0x00c0, 0x2ab8: 0x00c0, 0x2ab9: 0x00c0, 0x2aba: 0x00c0, 0x2abb: 0x00c0, + 0x2abc: 0x00c0, 0x2abd: 0x00c0, 0x2abe: 0x00c0, 0x2abf: 0x00c0, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x00c0, 0x2ac1: 0x00c0, 0x2ac2: 0x00c0, 0x2ac3: 0x00c0, 0x2ac4: 0x00c0, 0x2ac5: 0x00c0, + 0x2ac6: 0x00c0, 0x2ac7: 0x00c0, 0x2ac8: 0x00c0, 0x2ac9: 0x00c0, 0x2aca: 0x00c0, 0x2acb: 0x00c0, + 0x2acc: 0x00c0, 0x2acd: 0x00c0, 0x2ace: 0x00c0, 0x2acf: 0x00c0, 0x2ad0: 0x00c0, 0x2ad1: 0x00c0, + 0x2ad2: 0x00c0, 0x2ad3: 0x00c0, 0x2ad4: 0x00c0, 0x2ad5: 0x00c0, 0x2ad6: 0x00c0, 0x2ad7: 0x00c0, + 0x2ad8: 0x00c0, 0x2ad9: 0x00c0, 0x2ada: 0x00c0, 0x2adb: 0x0080, 0x2adc: 0x0080, 0x2add: 0x0080, + 0x2ade: 0x0080, 0x2adf: 0x0080, 0x2ae0: 0x00c0, 0x2ae1: 0x00c0, 0x2ae2: 0x00c0, 0x2ae3: 0x00c0, + 0x2ae4: 0x00c0, 0x2ae5: 0x00c8, + 0x2af0: 0x00c0, 0x2af1: 0x00c0, 0x2af2: 0x00c0, 0x2af3: 0x00c0, 0x2af4: 0x00c0, 0x2af5: 0x00c0, + 0x2af6: 0x00c0, 0x2af7: 0x00c0, 0x2af8: 0x00c0, 0x2af9: 0x00c0, 0x2afa: 0x00c0, 0x2afb: 0x00c0, + 0x2afc: 0x00c0, 0x2afd: 0x00c0, 0x2afe: 0x00c0, 0x2aff: 0x00c0, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x00c0, 0x2b01: 0x00c0, 0x2b02: 0x00c0, 0x2b03: 0x00c0, 0x2b04: 0x00c0, 0x2b05: 0x00c0, + 0x2b06: 0x00c0, 0x2b07: 0x00c0, 0x2b08: 0x00c0, 0x2b09: 0x00c0, 0x2b0a: 0x00c0, 0x2b0b: 0x00c0, + 0x2b0c: 0x00c0, 0x2b0d: 0x00c0, 0x2b0e: 0x00c0, 0x2b0f: 0x00c0, 0x2b10: 0x00c0, 0x2b11: 0x00c0, + 0x2b12: 0x00c0, 0x2b13: 0x00c0, 0x2b14: 0x00c0, 0x2b15: 0x00c0, 0x2b16: 0x00c0, 0x2b17: 0x00c0, + 0x2b18: 0x00c0, 0x2b19: 0x00c0, 0x2b1a: 0x00c0, 0x2b1b: 0x00c0, 0x2b1c: 0x00c0, 0x2b1d: 0x00c0, + 0x2b1e: 0x00c0, 0x2b1f: 0x00c0, 0x2b20: 0x00c0, 0x2b21: 0x00c0, 0x2b22: 0x00c0, 0x2b23: 0x00c0, + 0x2b24: 0x00c0, 0x2b25: 0x00c3, 0x2b26: 0x00c0, 0x2b27: 0x00c0, 0x2b28: 0x00c3, 0x2b29: 0x00c0, + 0x2b2a: 0x00c0, 0x2b2b: 0x0080, 0x2b2c: 0x00c0, 0x2b2d: 0x00c6, + 0x2b30: 0x00c0, 0x2b31: 0x00c0, 0x2b32: 0x00c0, 0x2b33: 0x00c0, 0x2b34: 0x00c0, 0x2b35: 0x00c0, + 0x2b36: 0x00c0, 0x2b37: 0x00c0, 0x2b38: 0x00c0, 0x2b39: 0x00c0, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x00c0, 0x2b41: 0x00c0, 0x2b42: 0x00c0, 0x2b43: 0x00c0, 0x2b44: 0x00c0, 0x2b45: 0x00c0, + 0x2b46: 0x00c0, 0x2b47: 0x00c0, 0x2b48: 0x00c0, 0x2b49: 0x00c0, 0x2b4a: 0x00c0, 0x2b4b: 0x00c0, + 0x2b4c: 0x00c0, 0x2b4d: 0x00c0, 0x2b4e: 0x00c0, 0x2b4f: 0x00c0, 0x2b50: 0x00c0, 0x2b51: 0x00c0, + 0x2b52: 0x00c0, 0x2b53: 0x00c0, 0x2b54: 0x00c0, 0x2b55: 0x00c0, 0x2b56: 0x00c0, 0x2b57: 0x00c0, + 0x2b58: 0x00c0, 0x2b59: 0x00c0, 0x2b5a: 0x00c0, 0x2b5b: 0x00c0, 0x2b5c: 0x00c0, 0x2b5d: 0x00c0, + 0x2b5e: 0x00c0, 0x2b5f: 0x00c0, 0x2b60: 0x00c0, 0x2b61: 0x00c0, 0x2b62: 0x00c0, 0x2b63: 0x00c0, + 0x2b70: 0x0040, 0x2b71: 0x0040, 0x2b72: 0x0040, 0x2b73: 0x0040, 0x2b74: 0x0040, 0x2b75: 0x0040, + 0x2b76: 0x0040, 0x2b77: 0x0040, 0x2b78: 0x0040, 0x2b79: 0x0040, 0x2b7a: 0x0040, 0x2b7b: 0x0040, + 0x2b7c: 0x0040, 0x2b7d: 0x0040, 0x2b7e: 0x0040, 0x2b7f: 0x0040, + // Block 0xae, offset 0x2b80 + 0x2b80: 0x0040, 0x2b81: 0x0040, 0x2b82: 0x0040, 0x2b83: 0x0040, 0x2b84: 0x0040, 0x2b85: 0x0040, + 0x2b86: 0x0040, 0x2b8b: 0x0040, + 0x2b8c: 0x0040, 0x2b8d: 0x0040, 0x2b8e: 0x0040, 0x2b8f: 0x0040, 0x2b90: 0x0040, 0x2b91: 0x0040, + 0x2b92: 0x0040, 0x2b93: 0x0040, 0x2b94: 0x0040, 0x2b95: 0x0040, 0x2b96: 0x0040, 0x2b97: 0x0040, + 0x2b98: 0x0040, 0x2b99: 0x0040, 0x2b9a: 0x0040, 0x2b9b: 0x0040, 0x2b9c: 0x0040, 0x2b9d: 0x0040, + 0x2b9e: 0x0040, 0x2b9f: 0x0040, 0x2ba0: 0x0040, 0x2ba1: 0x0040, 0x2ba2: 0x0040, 0x2ba3: 0x0040, + 0x2ba4: 0x0040, 0x2ba5: 0x0040, 0x2ba6: 0x0040, 0x2ba7: 0x0040, 0x2ba8: 0x0040, 0x2ba9: 0x0040, + 0x2baa: 0x0040, 0x2bab: 0x0040, 0x2bac: 0x0040, 0x2bad: 0x0040, 0x2bae: 0x0040, 0x2baf: 0x0040, + 0x2bb0: 0x0040, 0x2bb1: 0x0040, 0x2bb2: 0x0040, 0x2bb3: 0x0040, 0x2bb4: 0x0040, 0x2bb5: 0x0040, + 0x2bb6: 0x0040, 0x2bb7: 0x0040, 0x2bb8: 0x0040, 0x2bb9: 0x0040, 0x2bba: 0x0040, 0x2bbb: 0x0040, + // Block 0xaf, offset 0x2bc0 + 0x2bc0: 0x008c, 0x2bc1: 0x008c, 0x2bc2: 0x008c, 0x2bc3: 0x008c, 0x2bc4: 0x008c, 0x2bc5: 0x008c, + 0x2bc6: 0x008c, 0x2bc7: 0x008c, 0x2bc8: 0x008c, 0x2bc9: 0x008c, 0x2bca: 0x008c, 0x2bcb: 0x008c, + 0x2bcc: 0x008c, 0x2bcd: 0x008c, 0x2bce: 0x00cc, 0x2bcf: 0x00cc, 0x2bd0: 0x008c, 0x2bd1: 0x00cc, + 0x2bd2: 0x008c, 0x2bd3: 0x00cc, 0x2bd4: 0x00cc, 0x2bd5: 0x008c, 0x2bd6: 0x008c, 0x2bd7: 0x008c, + 0x2bd8: 0x008c, 0x2bd9: 0x008c, 0x2bda: 0x008c, 0x2bdb: 0x008c, 0x2bdc: 0x008c, 0x2bdd: 0x008c, + 0x2bde: 0x008c, 0x2bdf: 0x00cc, 0x2be0: 0x008c, 0x2be1: 0x00cc, 0x2be2: 0x008c, 0x2be3: 0x00cc, + 0x2be4: 0x00cc, 0x2be5: 0x008c, 0x2be6: 0x008c, 0x2be7: 0x00cc, 0x2be8: 0x00cc, 0x2be9: 0x00cc, + 0x2bea: 0x008c, 0x2beb: 0x008c, 0x2bec: 0x008c, 0x2bed: 0x008c, 0x2bee: 0x008c, 0x2bef: 0x008c, + 0x2bf0: 0x008c, 0x2bf1: 0x008c, 0x2bf2: 0x008c, 0x2bf3: 0x008c, 0x2bf4: 0x008c, 0x2bf5: 0x008c, + 0x2bf6: 0x008c, 0x2bf7: 0x008c, 0x2bf8: 0x008c, 0x2bf9: 0x008c, 0x2bfa: 0x008c, 0x2bfb: 0x008c, + 0x2bfc: 0x008c, 0x2bfd: 0x008c, 0x2bfe: 0x008c, 0x2bff: 0x008c, + // Block 0xb0, offset 0x2c00 + 0x2c00: 0x008c, 0x2c01: 0x008c, 0x2c02: 0x008c, 0x2c03: 0x008c, 0x2c04: 0x008c, 0x2c05: 0x008c, + 0x2c06: 0x008c, 0x2c07: 0x008c, 0x2c08: 0x008c, 0x2c09: 0x008c, 0x2c0a: 0x008c, 0x2c0b: 0x008c, + 0x2c0c: 0x008c, 0x2c0d: 0x008c, 0x2c0e: 0x008c, 0x2c0f: 0x008c, 0x2c10: 0x008c, 0x2c11: 0x008c, + 0x2c12: 0x008c, 0x2c13: 0x008c, 0x2c14: 0x008c, 0x2c15: 0x008c, 0x2c16: 0x008c, 0x2c17: 0x008c, + 0x2c18: 0x008c, 0x2c19: 0x008c, 0x2c1a: 0x008c, 0x2c1b: 0x008c, 0x2c1c: 0x008c, 0x2c1d: 0x008c, + 0x2c1e: 0x008c, 0x2c1f: 0x008c, 0x2c20: 0x008c, 0x2c21: 0x008c, 0x2c22: 0x008c, 0x2c23: 0x008c, + 0x2c24: 0x008c, 0x2c25: 0x008c, 0x2c26: 0x008c, 0x2c27: 0x008c, 0x2c28: 0x008c, 0x2c29: 0x008c, + 0x2c2a: 0x008c, 0x2c2b: 0x008c, 0x2c2c: 0x008c, 0x2c2d: 0x008c, + 0x2c30: 0x008c, 0x2c31: 0x008c, 0x2c32: 0x008c, 0x2c33: 0x008c, 0x2c34: 0x008c, 0x2c35: 0x008c, + 0x2c36: 0x008c, 0x2c37: 0x008c, 0x2c38: 0x008c, 0x2c39: 0x008c, 0x2c3a: 0x008c, 0x2c3b: 0x008c, + 0x2c3c: 0x008c, 0x2c3d: 0x008c, 0x2c3e: 0x008c, 0x2c3f: 0x008c, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x008c, 0x2c41: 0x008c, 0x2c42: 0x008c, 0x2c43: 0x008c, 0x2c44: 0x008c, 0x2c45: 0x008c, + 0x2c46: 0x008c, 0x2c47: 0x008c, 0x2c48: 0x008c, 0x2c49: 0x008c, 0x2c4a: 0x008c, 0x2c4b: 0x008c, + 0x2c4c: 0x008c, 0x2c4d: 0x008c, 0x2c4e: 0x008c, 0x2c4f: 0x008c, 0x2c50: 0x008c, 0x2c51: 0x008c, + 0x2c52: 0x008c, 0x2c53: 0x008c, 0x2c54: 0x008c, 0x2c55: 0x008c, 0x2c56: 0x008c, 0x2c57: 0x008c, + 0x2c58: 0x008c, 0x2c59: 0x008c, + // Block 0xb2, offset 0x2c80 + 0x2c80: 0x0080, 0x2c81: 0x0080, 0x2c82: 0x0080, 0x2c83: 0x0080, 0x2c84: 0x0080, 0x2c85: 0x0080, + 0x2c86: 0x0080, + 0x2c93: 0x0080, 0x2c94: 0x0080, 0x2c95: 0x0080, 0x2c96: 0x0080, 0x2c97: 0x0080, + 0x2c9d: 0x008a, + 0x2c9e: 0x00cb, 0x2c9f: 0x008a, 0x2ca0: 0x008a, 0x2ca1: 0x008a, 0x2ca2: 0x008a, 0x2ca3: 0x008a, + 0x2ca4: 0x008a, 0x2ca5: 0x008a, 0x2ca6: 0x008a, 0x2ca7: 0x008a, 0x2ca8: 0x008a, 0x2ca9: 0x008a, + 0x2caa: 0x008a, 0x2cab: 0x008a, 0x2cac: 0x008a, 0x2cad: 0x008a, 0x2cae: 0x008a, 0x2caf: 0x008a, + 0x2cb0: 0x008a, 0x2cb1: 0x008a, 0x2cb2: 0x008a, 0x2cb3: 0x008a, 0x2cb4: 0x008a, 0x2cb5: 0x008a, + 0x2cb6: 0x008a, 0x2cb8: 0x008a, 0x2cb9: 0x008a, 0x2cba: 0x008a, 0x2cbb: 0x008a, + 0x2cbc: 0x008a, 0x2cbe: 0x008a, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x008a, 0x2cc1: 0x008a, 0x2cc3: 0x008a, 0x2cc4: 0x008a, + 0x2cc6: 0x008a, 0x2cc7: 0x008a, 0x2cc8: 0x008a, 0x2cc9: 0x008a, 0x2cca: 0x008a, 0x2ccb: 0x008a, + 0x2ccc: 0x008a, 0x2ccd: 0x008a, 0x2cce: 0x008a, 0x2ccf: 0x008a, 0x2cd0: 0x0080, 0x2cd1: 0x0080, + 0x2cd2: 0x0080, 0x2cd3: 0x0080, 0x2cd4: 0x0080, 0x2cd5: 0x0080, 0x2cd6: 0x0080, 0x2cd7: 0x0080, + 0x2cd8: 0x0080, 0x2cd9: 0x0080, 0x2cda: 0x0080, 0x2cdb: 0x0080, 0x2cdc: 0x0080, 0x2cdd: 0x0080, + 0x2cde: 0x0080, 0x2cdf: 0x0080, 0x2ce0: 0x0080, 0x2ce1: 0x0080, 0x2ce2: 0x0080, 0x2ce3: 0x0080, + 0x2ce4: 0x0080, 0x2ce5: 0x0080, 0x2ce6: 0x0080, 0x2ce7: 0x0080, 0x2ce8: 0x0080, 0x2ce9: 0x0080, + 0x2cea: 0x0080, 0x2ceb: 0x0080, 0x2cec: 0x0080, 0x2ced: 0x0080, 0x2cee: 0x0080, 0x2cef: 0x0080, + 0x2cf0: 0x0080, 0x2cf1: 0x0080, 0x2cf2: 0x0080, 0x2cf3: 0x0080, 0x2cf4: 0x0080, 0x2cf5: 0x0080, + 0x2cf6: 0x0080, 0x2cf7: 0x0080, 0x2cf8: 0x0080, 0x2cf9: 0x0080, 0x2cfa: 0x0080, 0x2cfb: 0x0080, + 0x2cfc: 0x0080, 0x2cfd: 0x0080, 0x2cfe: 0x0080, 0x2cff: 0x0080, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x0080, 0x2d01: 0x0080, + 0x2d13: 0x0080, 0x2d14: 0x0080, 0x2d15: 0x0080, 0x2d16: 0x0080, 0x2d17: 0x0080, + 0x2d18: 0x0080, 0x2d19: 0x0080, 0x2d1a: 0x0080, 0x2d1b: 0x0080, 0x2d1c: 0x0080, 0x2d1d: 0x0080, + 0x2d1e: 0x0080, 0x2d1f: 0x0080, 0x2d20: 0x0080, 0x2d21: 0x0080, 0x2d22: 0x0080, 0x2d23: 0x0080, + 0x2d24: 0x0080, 0x2d25: 0x0080, 0x2d26: 0x0080, 0x2d27: 0x0080, 0x2d28: 0x0080, 0x2d29: 0x0080, + 0x2d2a: 0x0080, 0x2d2b: 0x0080, 0x2d2c: 0x0080, 0x2d2d: 0x0080, 0x2d2e: 0x0080, 0x2d2f: 0x0080, + 0x2d30: 0x0080, 0x2d31: 0x0080, 0x2d32: 0x0080, 0x2d33: 0x0080, 0x2d34: 0x0080, 0x2d35: 0x0080, + 0x2d36: 0x0080, 0x2d37: 0x0080, 0x2d38: 0x0080, 0x2d39: 0x0080, 0x2d3a: 0x0080, 0x2d3b: 0x0080, + 0x2d3c: 0x0080, 0x2d3d: 0x0080, 0x2d3e: 0x0080, 0x2d3f: 0x0080, + // Block 0xb5, offset 0x2d40 + 0x2d50: 0x0080, 0x2d51: 0x0080, + 0x2d52: 0x0080, 0x2d53: 0x0080, 0x2d54: 0x0080, 0x2d55: 0x0080, 0x2d56: 0x0080, 0x2d57: 0x0080, + 0x2d58: 0x0080, 0x2d59: 0x0080, 0x2d5a: 0x0080, 0x2d5b: 0x0080, 0x2d5c: 0x0080, 0x2d5d: 0x0080, + 0x2d5e: 0x0080, 0x2d5f: 0x0080, 0x2d60: 0x0080, 0x2d61: 0x0080, 0x2d62: 0x0080, 0x2d63: 0x0080, + 0x2d64: 0x0080, 0x2d65: 0x0080, 0x2d66: 0x0080, 0x2d67: 0x0080, 0x2d68: 0x0080, 0x2d69: 0x0080, + 0x2d6a: 0x0080, 0x2d6b: 0x0080, 0x2d6c: 0x0080, 0x2d6d: 0x0080, 0x2d6e: 0x0080, 0x2d6f: 0x0080, + 0x2d70: 0x0080, 0x2d71: 0x0080, 0x2d72: 0x0080, 0x2d73: 0x0080, 0x2d74: 0x0080, 0x2d75: 0x0080, + 0x2d76: 0x0080, 0x2d77: 0x0080, 0x2d78: 0x0080, 0x2d79: 0x0080, 0x2d7a: 0x0080, 0x2d7b: 0x0080, + 0x2d7c: 0x0080, 0x2d7d: 0x0080, 0x2d7e: 0x0080, 0x2d7f: 0x0080, + // Block 0xb6, offset 0x2d80 + 0x2d80: 0x0080, 0x2d81: 0x0080, 0x2d82: 0x0080, 0x2d83: 0x0080, 0x2d84: 0x0080, 0x2d85: 0x0080, + 0x2d86: 0x0080, 0x2d87: 0x0080, 0x2d88: 0x0080, 0x2d89: 0x0080, 0x2d8a: 0x0080, 0x2d8b: 0x0080, + 0x2d8c: 0x0080, 0x2d8d: 0x0080, 0x2d8e: 0x0080, 0x2d8f: 0x0080, + 0x2d92: 0x0080, 0x2d93: 0x0080, 0x2d94: 0x0080, 0x2d95: 0x0080, 0x2d96: 0x0080, 0x2d97: 0x0080, + 0x2d98: 0x0080, 0x2d99: 0x0080, 0x2d9a: 0x0080, 0x2d9b: 0x0080, 0x2d9c: 0x0080, 0x2d9d: 0x0080, + 0x2d9e: 0x0080, 0x2d9f: 0x0080, 0x2da0: 0x0080, 0x2da1: 0x0080, 0x2da2: 0x0080, 0x2da3: 0x0080, + 0x2da4: 0x0080, 0x2da5: 0x0080, 0x2da6: 0x0080, 0x2da7: 0x0080, 0x2da8: 0x0080, 0x2da9: 0x0080, + 0x2daa: 0x0080, 0x2dab: 0x0080, 0x2dac: 0x0080, 0x2dad: 0x0080, 0x2dae: 0x0080, 0x2daf: 0x0080, + 0x2db0: 0x0080, 0x2db1: 0x0080, 0x2db2: 0x0080, 0x2db3: 0x0080, 0x2db4: 0x0080, 0x2db5: 0x0080, + 0x2db6: 0x0080, 0x2db7: 0x0080, 0x2db8: 0x0080, 0x2db9: 0x0080, 0x2dba: 0x0080, 0x2dbb: 0x0080, + 0x2dbc: 0x0080, 0x2dbd: 0x0080, 0x2dbe: 0x0080, 0x2dbf: 0x0080, + // Block 0xb7, offset 0x2dc0 + 0x2dc0: 0x0080, 0x2dc1: 0x0080, 0x2dc2: 0x0080, 0x2dc3: 0x0080, 0x2dc4: 0x0080, 0x2dc5: 0x0080, + 0x2dc6: 0x0080, 0x2dc7: 0x0080, + 0x2df0: 0x0080, 0x2df1: 0x0080, 0x2df2: 0x0080, 0x2df3: 0x0080, 0x2df4: 0x0080, 0x2df5: 0x0080, + 0x2df6: 0x0080, 0x2df7: 0x0080, 0x2df8: 0x0080, 0x2df9: 0x0080, 0x2dfa: 0x0080, 0x2dfb: 0x0080, + 0x2dfc: 0x0080, 0x2dfd: 0x0080, + // Block 0xb8, offset 0x2e00 + 0x2e00: 0x0040, 0x2e01: 0x0040, 0x2e02: 0x0040, 0x2e03: 0x0040, 0x2e04: 0x0040, 0x2e05: 0x0040, + 0x2e06: 0x0040, 0x2e07: 0x0040, 0x2e08: 0x0040, 0x2e09: 0x0040, 0x2e0a: 0x0040, 0x2e0b: 0x0040, + 0x2e0c: 0x0040, 0x2e0d: 0x0040, 0x2e0e: 0x0040, 0x2e0f: 0x0040, 0x2e10: 0x0080, 0x2e11: 0x0080, + 0x2e12: 0x0080, 0x2e13: 0x0080, 0x2e14: 0x0080, 0x2e15: 0x0080, 0x2e16: 0x0080, 0x2e17: 0x0080, + 0x2e18: 0x0080, 0x2e19: 0x0080, + 0x2e20: 0x00c3, 0x2e21: 0x00c3, 0x2e22: 0x00c3, 0x2e23: 0x00c3, + 0x2e24: 0x00c3, 0x2e25: 0x00c3, 0x2e26: 0x00c3, 0x2e27: 0x00c3, 0x2e28: 0x00c3, 0x2e29: 0x00c3, + 0x2e2a: 0x00c3, 0x2e2b: 0x00c3, 0x2e2c: 0x00c3, 0x2e2d: 0x00c3, 0x2e2e: 0x00c3, 0x2e2f: 0x00c3, + 0x2e30: 0x0080, 0x2e31: 0x0080, 0x2e32: 0x0080, 0x2e33: 0x0080, 0x2e34: 0x0080, 0x2e35: 0x0080, + 0x2e36: 0x0080, 0x2e37: 0x0080, 0x2e38: 0x0080, 0x2e39: 0x0080, 0x2e3a: 0x0080, 0x2e3b: 0x0080, + 0x2e3c: 0x0080, 0x2e3d: 0x0080, 0x2e3e: 0x0080, 0x2e3f: 0x0080, + // Block 0xb9, offset 0x2e40 + 0x2e40: 0x0080, 0x2e41: 0x0080, 0x2e42: 0x0080, 0x2e43: 0x0080, 0x2e44: 0x0080, 0x2e45: 0x0080, + 0x2e46: 0x0080, 0x2e47: 0x0080, 0x2e48: 0x0080, 0x2e49: 0x0080, 0x2e4a: 0x0080, 0x2e4b: 0x0080, + 0x2e4c: 0x0080, 0x2e4d: 0x0080, 0x2e4e: 0x0080, 0x2e4f: 0x0080, 0x2e50: 0x0080, 0x2e51: 0x0080, + 0x2e52: 0x0080, 0x2e54: 0x0080, 0x2e55: 0x0080, 0x2e56: 0x0080, 0x2e57: 0x0080, + 0x2e58: 0x0080, 0x2e59: 0x0080, 0x2e5a: 0x0080, 0x2e5b: 0x0080, 0x2e5c: 0x0080, 0x2e5d: 0x0080, + 0x2e5e: 0x0080, 0x2e5f: 0x0080, 0x2e60: 0x0080, 0x2e61: 0x0080, 0x2e62: 0x0080, 0x2e63: 0x0080, + 0x2e64: 0x0080, 0x2e65: 0x0080, 0x2e66: 0x0080, 0x2e68: 0x0080, 0x2e69: 0x0080, + 0x2e6a: 0x0080, 0x2e6b: 0x0080, + 0x2e70: 0x0080, 0x2e71: 0x0080, 0x2e72: 0x0080, 0x2e73: 0x00c0, 0x2e74: 0x0080, + 0x2e76: 0x0080, 0x2e77: 0x0080, 0x2e78: 0x0080, 0x2e79: 0x0080, 0x2e7a: 0x0080, 0x2e7b: 0x0080, + 0x2e7c: 0x0080, 0x2e7d: 0x0080, 0x2e7e: 0x0080, 0x2e7f: 0x0080, + // Block 0xba, offset 0x2e80 + 0x2e80: 0x0080, 0x2e81: 0x0080, 0x2e82: 0x0080, 0x2e83: 0x0080, 0x2e84: 0x0080, 0x2e85: 0x0080, + 0x2e86: 0x0080, 0x2e87: 0x0080, 0x2e88: 0x0080, 0x2e89: 0x0080, 0x2e8a: 0x0080, 0x2e8b: 0x0080, + 0x2e8c: 0x0080, 0x2e8d: 0x0080, 0x2e8e: 0x0080, 0x2e8f: 0x0080, 0x2e90: 0x0080, 0x2e91: 0x0080, + 0x2e92: 0x0080, 0x2e93: 0x0080, 0x2e94: 0x0080, 0x2e95: 0x0080, 0x2e96: 0x0080, 0x2e97: 0x0080, + 0x2e98: 0x0080, 0x2e99: 0x0080, 0x2e9a: 0x0080, 0x2e9b: 0x0080, 0x2e9c: 0x0080, 0x2e9d: 0x0080, + 0x2e9e: 0x0080, 0x2e9f: 0x0080, 0x2ea0: 0x0080, 0x2ea1: 0x0080, 0x2ea2: 0x0080, 0x2ea3: 0x0080, + 0x2ea4: 0x0080, 0x2ea5: 0x0080, 0x2ea6: 0x0080, 0x2ea7: 0x0080, 0x2ea8: 0x0080, 0x2ea9: 0x0080, + 0x2eaa: 0x0080, 0x2eab: 0x0080, 0x2eac: 0x0080, 0x2ead: 0x0080, 0x2eae: 0x0080, 0x2eaf: 0x0080, + 0x2eb0: 0x0080, 0x2eb1: 0x0080, 0x2eb2: 0x0080, 0x2eb3: 0x0080, 0x2eb4: 0x0080, 0x2eb5: 0x0080, + 0x2eb6: 0x0080, 0x2eb7: 0x0080, 0x2eb8: 0x0080, 0x2eb9: 0x0080, 0x2eba: 0x0080, 0x2ebb: 0x0080, + 0x2ebc: 0x0080, 0x2ebf: 0x0040, + // Block 0xbb, offset 0x2ec0 + 0x2ec1: 0x0080, 0x2ec2: 0x0080, 0x2ec3: 0x0080, 0x2ec4: 0x0080, 0x2ec5: 0x0080, + 0x2ec6: 0x0080, 0x2ec7: 0x0080, 0x2ec8: 0x0080, 0x2ec9: 0x0080, 0x2eca: 0x0080, 0x2ecb: 0x0080, + 0x2ecc: 0x0080, 0x2ecd: 0x0080, 0x2ece: 0x0080, 0x2ecf: 0x0080, 0x2ed0: 0x0080, 0x2ed1: 0x0080, + 0x2ed2: 0x0080, 0x2ed3: 0x0080, 0x2ed4: 0x0080, 0x2ed5: 0x0080, 0x2ed6: 0x0080, 0x2ed7: 0x0080, + 0x2ed8: 0x0080, 0x2ed9: 0x0080, 0x2eda: 0x0080, 0x2edb: 0x0080, 0x2edc: 0x0080, 0x2edd: 0x0080, + 0x2ede: 0x0080, 0x2edf: 0x0080, 0x2ee0: 0x0080, 0x2ee1: 0x0080, 0x2ee2: 0x0080, 0x2ee3: 0x0080, + 0x2ee4: 0x0080, 0x2ee5: 0x0080, 0x2ee6: 0x0080, 0x2ee7: 0x0080, 0x2ee8: 0x0080, 0x2ee9: 0x0080, + 0x2eea: 0x0080, 0x2eeb: 0x0080, 0x2eec: 0x0080, 0x2eed: 0x0080, 0x2eee: 0x0080, 0x2eef: 0x0080, + 0x2ef0: 0x0080, 0x2ef1: 0x0080, 0x2ef2: 0x0080, 0x2ef3: 0x0080, 0x2ef4: 0x0080, 0x2ef5: 0x0080, + 0x2ef6: 0x0080, 0x2ef7: 0x0080, 0x2ef8: 0x0080, 0x2ef9: 0x0080, 0x2efa: 0x0080, 0x2efb: 0x0080, + 0x2efc: 0x0080, 0x2efd: 0x0080, 0x2efe: 0x0080, 0x2eff: 0x0080, + // Block 0xbc, offset 0x2f00 + 0x2f00: 0x0080, 0x2f01: 0x0080, 0x2f02: 0x0080, 0x2f03: 0x0080, 0x2f04: 0x0080, 0x2f05: 0x0080, + 0x2f06: 0x0080, 0x2f07: 0x0080, 0x2f08: 0x0080, 0x2f09: 0x0080, 0x2f0a: 0x0080, 0x2f0b: 0x0080, + 0x2f0c: 0x0080, 0x2f0d: 0x0080, 0x2f0e: 0x0080, 0x2f0f: 0x0080, 0x2f10: 0x0080, 0x2f11: 0x0080, + 0x2f12: 0x0080, 0x2f13: 0x0080, 0x2f14: 0x0080, 0x2f15: 0x0080, 0x2f16: 0x0080, 0x2f17: 0x0080, + 0x2f18: 0x0080, 0x2f19: 0x0080, 0x2f1a: 0x0080, 0x2f1b: 0x0080, 0x2f1c: 0x0080, 0x2f1d: 0x0080, + 0x2f1e: 0x0080, 0x2f1f: 0x0080, 0x2f20: 0x0080, 0x2f21: 0x0080, 0x2f22: 0x0080, 0x2f23: 0x0080, + 0x2f24: 0x0080, 0x2f25: 0x0080, 0x2f26: 0x008c, 0x2f27: 0x008c, 0x2f28: 0x008c, 0x2f29: 0x008c, + 0x2f2a: 0x008c, 0x2f2b: 0x008c, 0x2f2c: 0x008c, 0x2f2d: 0x008c, 0x2f2e: 0x008c, 0x2f2f: 0x008c, + 0x2f30: 0x0080, 0x2f31: 0x008c, 0x2f32: 0x008c, 0x2f33: 0x008c, 0x2f34: 0x008c, 0x2f35: 0x008c, + 0x2f36: 0x008c, 0x2f37: 0x008c, 0x2f38: 0x008c, 0x2f39: 0x008c, 0x2f3a: 0x008c, 0x2f3b: 0x008c, + 0x2f3c: 0x008c, 0x2f3d: 0x008c, 0x2f3e: 0x008c, 0x2f3f: 0x008c, + // Block 0xbd, offset 0x2f40 + 0x2f40: 0x008c, 0x2f41: 0x008c, 0x2f42: 0x008c, 0x2f43: 0x008c, 0x2f44: 0x008c, 0x2f45: 0x008c, + 0x2f46: 0x008c, 0x2f47: 0x008c, 0x2f48: 0x008c, 0x2f49: 0x008c, 0x2f4a: 0x008c, 0x2f4b: 0x008c, + 0x2f4c: 0x008c, 0x2f4d: 0x008c, 0x2f4e: 0x008c, 0x2f4f: 0x008c, 0x2f50: 0x008c, 0x2f51: 0x008c, + 0x2f52: 0x008c, 0x2f53: 0x008c, 0x2f54: 0x008c, 0x2f55: 0x008c, 0x2f56: 0x008c, 0x2f57: 0x008c, + 0x2f58: 0x008c, 0x2f59: 0x008c, 0x2f5a: 0x008c, 0x2f5b: 0x008c, 0x2f5c: 0x008c, 0x2f5d: 0x008c, + 0x2f5e: 0x0080, 0x2f5f: 0x0080, 0x2f60: 0x0040, 0x2f61: 0x0080, 0x2f62: 0x0080, 0x2f63: 0x0080, + 0x2f64: 0x0080, 0x2f65: 0x0080, 0x2f66: 0x0080, 0x2f67: 0x0080, 0x2f68: 0x0080, 0x2f69: 0x0080, + 0x2f6a: 0x0080, 0x2f6b: 0x0080, 0x2f6c: 0x0080, 0x2f6d: 0x0080, 0x2f6e: 0x0080, 0x2f6f: 0x0080, + 0x2f70: 0x0080, 0x2f71: 0x0080, 0x2f72: 0x0080, 0x2f73: 0x0080, 0x2f74: 0x0080, 0x2f75: 0x0080, + 0x2f76: 0x0080, 0x2f77: 0x0080, 0x2f78: 0x0080, 0x2f79: 0x0080, 0x2f7a: 0x0080, 0x2f7b: 0x0080, + 0x2f7c: 0x0080, 0x2f7d: 0x0080, 0x2f7e: 0x0080, + // Block 0xbe, offset 0x2f80 + 0x2f82: 0x0080, 0x2f83: 0x0080, 0x2f84: 0x0080, 0x2f85: 0x0080, + 0x2f86: 0x0080, 0x2f87: 0x0080, 0x2f8a: 0x0080, 0x2f8b: 0x0080, + 0x2f8c: 0x0080, 0x2f8d: 0x0080, 0x2f8e: 0x0080, 0x2f8f: 0x0080, + 0x2f92: 0x0080, 0x2f93: 0x0080, 0x2f94: 0x0080, 0x2f95: 0x0080, 0x2f96: 0x0080, 0x2f97: 0x0080, + 0x2f9a: 0x0080, 0x2f9b: 0x0080, 0x2f9c: 0x0080, + 0x2fa0: 0x0080, 0x2fa1: 0x0080, 0x2fa2: 0x0080, 0x2fa3: 0x0080, + 0x2fa4: 0x0080, 0x2fa5: 0x0080, 0x2fa6: 0x0080, 0x2fa8: 0x0080, 0x2fa9: 0x0080, + 0x2faa: 0x0080, 0x2fab: 0x0080, 0x2fac: 0x0080, 0x2fad: 0x0080, 0x2fae: 0x0080, + 0x2fb9: 0x0040, 0x2fba: 0x0040, 0x2fbb: 0x0040, + 0x2fbc: 0x0080, 0x2fbd: 0x0080, + // Block 0xbf, offset 0x2fc0 + 0x2fc0: 0x00c0, 0x2fc1: 0x00c0, 0x2fc2: 0x00c0, 0x2fc3: 0x00c0, 0x2fc4: 0x00c0, 0x2fc5: 0x00c0, + 0x2fc6: 0x00c0, 0x2fc7: 0x00c0, 0x2fc8: 0x00c0, 0x2fc9: 0x00c0, 0x2fca: 0x00c0, 0x2fcb: 0x00c0, + 0x2fcd: 0x00c0, 0x2fce: 0x00c0, 0x2fcf: 0x00c0, 0x2fd0: 0x00c0, 0x2fd1: 0x00c0, + 0x2fd2: 0x00c0, 0x2fd3: 0x00c0, 0x2fd4: 0x00c0, 0x2fd5: 0x00c0, 0x2fd6: 0x00c0, 0x2fd7: 0x00c0, + 0x2fd8: 0x00c0, 0x2fd9: 0x00c0, 0x2fda: 0x00c0, 0x2fdb: 0x00c0, 0x2fdc: 0x00c0, 0x2fdd: 0x00c0, + 0x2fde: 0x00c0, 0x2fdf: 0x00c0, 0x2fe0: 0x00c0, 0x2fe1: 0x00c0, 0x2fe2: 0x00c0, 0x2fe3: 0x00c0, + 0x2fe4: 0x00c0, 0x2fe5: 0x00c0, 0x2fe6: 0x00c0, 0x2fe8: 0x00c0, 0x2fe9: 0x00c0, + 0x2fea: 0x00c0, 0x2feb: 0x00c0, 0x2fec: 0x00c0, 0x2fed: 0x00c0, 0x2fee: 0x00c0, 0x2fef: 0x00c0, + 0x2ff0: 0x00c0, 0x2ff1: 0x00c0, 0x2ff2: 0x00c0, 0x2ff3: 0x00c0, 0x2ff4: 0x00c0, 0x2ff5: 0x00c0, + 0x2ff6: 0x00c0, 0x2ff7: 0x00c0, 0x2ff8: 0x00c0, 0x2ff9: 0x00c0, 0x2ffa: 0x00c0, + 0x2ffc: 0x00c0, 0x2ffd: 0x00c0, 0x2fff: 0x00c0, + // Block 0xc0, offset 0x3000 + 0x3000: 0x00c0, 0x3001: 0x00c0, 0x3002: 0x00c0, 0x3003: 0x00c0, 0x3004: 0x00c0, 0x3005: 0x00c0, + 0x3006: 0x00c0, 0x3007: 0x00c0, 0x3008: 0x00c0, 0x3009: 0x00c0, 0x300a: 0x00c0, 0x300b: 0x00c0, + 0x300c: 0x00c0, 0x300d: 0x00c0, 0x3010: 0x00c0, 0x3011: 0x00c0, + 0x3012: 0x00c0, 0x3013: 0x00c0, 0x3014: 0x00c0, 0x3015: 0x00c0, 0x3016: 0x00c0, 0x3017: 0x00c0, + 0x3018: 0x00c0, 0x3019: 0x00c0, 0x301a: 0x00c0, 0x301b: 0x00c0, 0x301c: 0x00c0, 0x301d: 0x00c0, + // Block 0xc1, offset 0x3040 + 0x3040: 0x00c0, 0x3041: 0x00c0, 0x3042: 0x00c0, 0x3043: 0x00c0, 0x3044: 0x00c0, 0x3045: 0x00c0, + 0x3046: 0x00c0, 0x3047: 0x00c0, 0x3048: 0x00c0, 0x3049: 0x00c0, 0x304a: 0x00c0, 0x304b: 0x00c0, + 0x304c: 0x00c0, 0x304d: 0x00c0, 0x304e: 0x00c0, 0x304f: 0x00c0, 0x3050: 0x00c0, 0x3051: 0x00c0, + 0x3052: 0x00c0, 0x3053: 0x00c0, 0x3054: 0x00c0, 0x3055: 0x00c0, 0x3056: 0x00c0, 0x3057: 0x00c0, + 0x3058: 0x00c0, 0x3059: 0x00c0, 0x305a: 0x00c0, 0x305b: 0x00c0, 0x305c: 0x00c0, 0x305d: 0x00c0, + 0x305e: 0x00c0, 0x305f: 0x00c0, 0x3060: 0x00c0, 0x3061: 0x00c0, 0x3062: 0x00c0, 0x3063: 0x00c0, + 0x3064: 0x00c0, 0x3065: 0x00c0, 0x3066: 0x00c0, 0x3067: 0x00c0, 0x3068: 0x00c0, 0x3069: 0x00c0, + 0x306a: 0x00c0, 0x306b: 0x00c0, 0x306c: 0x00c0, 0x306d: 0x00c0, 0x306e: 0x00c0, 0x306f: 0x00c0, + 0x3070: 0x00c0, 0x3071: 0x00c0, 0x3072: 0x00c0, 0x3073: 0x00c0, 0x3074: 0x00c0, 0x3075: 0x00c0, + 0x3076: 0x00c0, 0x3077: 0x00c0, 0x3078: 0x00c0, 0x3079: 0x00c0, 0x307a: 0x00c0, + // Block 0xc2, offset 0x3080 + 0x3080: 0x0080, 0x3081: 0x0080, 0x3082: 0x0080, + 0x3087: 0x0080, 0x3088: 0x0080, 0x3089: 0x0080, 0x308a: 0x0080, 0x308b: 0x0080, + 0x308c: 0x0080, 0x308d: 0x0080, 0x308e: 0x0080, 0x308f: 0x0080, 0x3090: 0x0080, 0x3091: 0x0080, + 0x3092: 0x0080, 0x3093: 0x0080, 0x3094: 0x0080, 0x3095: 0x0080, 0x3096: 0x0080, 0x3097: 0x0080, + 0x3098: 0x0080, 0x3099: 0x0080, 0x309a: 0x0080, 0x309b: 0x0080, 0x309c: 0x0080, 0x309d: 0x0080, + 0x309e: 0x0080, 0x309f: 0x0080, 0x30a0: 0x0080, 0x30a1: 0x0080, 0x30a2: 0x0080, 0x30a3: 0x0080, + 0x30a4: 0x0080, 0x30a5: 0x0080, 0x30a6: 0x0080, 0x30a7: 0x0080, 0x30a8: 0x0080, 0x30a9: 0x0080, + 0x30aa: 0x0080, 0x30ab: 0x0080, 0x30ac: 0x0080, 0x30ad: 0x0080, 0x30ae: 0x0080, 0x30af: 0x0080, + 0x30b0: 0x0080, 0x30b1: 0x0080, 0x30b2: 0x0080, 0x30b3: 0x0080, + 0x30b7: 0x0080, 0x30b8: 0x0080, 0x30b9: 0x0080, 0x30ba: 0x0080, 0x30bb: 0x0080, + 0x30bc: 0x0080, 0x30bd: 0x0080, 0x30be: 0x0080, 0x30bf: 0x0080, + // Block 0xc3, offset 0x30c0 + 0x30c0: 0x0088, 0x30c1: 0x0088, 0x30c2: 0x0088, 0x30c3: 0x0088, 0x30c4: 0x0088, 0x30c5: 0x0088, + 0x30c6: 0x0088, 0x30c7: 0x0088, 0x30c8: 0x0088, 0x30c9: 0x0088, 0x30ca: 0x0088, 0x30cb: 0x0088, + 0x30cc: 0x0088, 0x30cd: 0x0088, 0x30ce: 0x0088, 0x30cf: 0x0088, 0x30d0: 0x0088, 0x30d1: 0x0088, + 0x30d2: 0x0088, 0x30d3: 0x0088, 0x30d4: 0x0088, 0x30d5: 0x0088, 0x30d6: 0x0088, 0x30d7: 0x0088, + 0x30d8: 0x0088, 0x30d9: 0x0088, 0x30da: 0x0088, 0x30db: 0x0088, 0x30dc: 0x0088, 0x30dd: 0x0088, + 0x30de: 0x0088, 0x30df: 0x0088, 0x30e0: 0x0088, 0x30e1: 0x0088, 0x30e2: 0x0088, 0x30e3: 0x0088, + 0x30e4: 0x0088, 0x30e5: 0x0088, 0x30e6: 0x0088, 0x30e7: 0x0088, 0x30e8: 0x0088, 0x30e9: 0x0088, + 0x30ea: 0x0088, 0x30eb: 0x0088, 0x30ec: 0x0088, 0x30ed: 0x0088, 0x30ee: 0x0088, 0x30ef: 0x0088, + 0x30f0: 0x0088, 0x30f1: 0x0088, 0x30f2: 0x0088, 0x30f3: 0x0088, 0x30f4: 0x0088, 0x30f5: 0x0088, + 0x30f6: 0x0088, 0x30f7: 0x0088, 0x30f8: 0x0088, 0x30f9: 0x0088, 0x30fa: 0x0088, 0x30fb: 0x0088, + 0x30fc: 0x0088, 0x30fd: 0x0088, 0x30fe: 0x0088, 0x30ff: 0x0088, + // Block 0xc4, offset 0x3100 + 0x3100: 0x0088, 0x3101: 0x0088, 0x3102: 0x0088, 0x3103: 0x0088, 0x3104: 0x0088, 0x3105: 0x0088, + 0x3106: 0x0088, 0x3107: 0x0088, 0x3108: 0x0088, 0x3109: 0x0088, 0x310a: 0x0088, 0x310b: 0x0088, + 0x310c: 0x0088, 0x310d: 0x0088, 0x310e: 0x0088, 0x3110: 0x0080, 0x3111: 0x0080, + 0x3112: 0x0080, 0x3113: 0x0080, 0x3114: 0x0080, 0x3115: 0x0080, 0x3116: 0x0080, 0x3117: 0x0080, + 0x3118: 0x0080, 0x3119: 0x0080, 0x311a: 0x0080, 0x311b: 0x0080, + 0x3120: 0x0088, + // Block 0xc5, offset 0x3140 + 0x3150: 0x0080, 0x3151: 0x0080, + 0x3152: 0x0080, 0x3153: 0x0080, 0x3154: 0x0080, 0x3155: 0x0080, 0x3156: 0x0080, 0x3157: 0x0080, + 0x3158: 0x0080, 0x3159: 0x0080, 0x315a: 0x0080, 0x315b: 0x0080, 0x315c: 0x0080, 0x315d: 0x0080, + 0x315e: 0x0080, 0x315f: 0x0080, 0x3160: 0x0080, 0x3161: 0x0080, 0x3162: 0x0080, 0x3163: 0x0080, + 0x3164: 0x0080, 0x3165: 0x0080, 0x3166: 0x0080, 0x3167: 0x0080, 0x3168: 0x0080, 0x3169: 0x0080, + 0x316a: 0x0080, 0x316b: 0x0080, 0x316c: 0x0080, 0x316d: 0x0080, 0x316e: 0x0080, 0x316f: 0x0080, + 0x3170: 0x0080, 0x3171: 0x0080, 0x3172: 0x0080, 0x3173: 0x0080, 0x3174: 0x0080, 0x3175: 0x0080, + 0x3176: 0x0080, 0x3177: 0x0080, 0x3178: 0x0080, 0x3179: 0x0080, 0x317a: 0x0080, 0x317b: 0x0080, + 0x317c: 0x0080, 0x317d: 0x00c3, + // Block 0xc6, offset 0x3180 + 0x3180: 0x00c0, 0x3181: 0x00c0, 0x3182: 0x00c0, 0x3183: 0x00c0, 0x3184: 0x00c0, 0x3185: 0x00c0, + 0x3186: 0x00c0, 0x3187: 0x00c0, 0x3188: 0x00c0, 0x3189: 0x00c0, 0x318a: 0x00c0, 0x318b: 0x00c0, + 0x318c: 0x00c0, 0x318d: 0x00c0, 0x318e: 0x00c0, 0x318f: 0x00c0, 0x3190: 0x00c0, 0x3191: 0x00c0, + 0x3192: 0x00c0, 0x3193: 0x00c0, 0x3194: 0x00c0, 0x3195: 0x00c0, 0x3196: 0x00c0, 0x3197: 0x00c0, + 0x3198: 0x00c0, 0x3199: 0x00c0, 0x319a: 0x00c0, 0x319b: 0x00c0, 0x319c: 0x00c0, + 0x31a0: 0x00c0, 0x31a1: 0x00c0, 0x31a2: 0x00c0, 0x31a3: 0x00c0, + 0x31a4: 0x00c0, 0x31a5: 0x00c0, 0x31a6: 0x00c0, 0x31a7: 0x00c0, 0x31a8: 0x00c0, 0x31a9: 0x00c0, + 0x31aa: 0x00c0, 0x31ab: 0x00c0, 0x31ac: 0x00c0, 0x31ad: 0x00c0, 0x31ae: 0x00c0, 0x31af: 0x00c0, + 0x31b0: 0x00c0, 0x31b1: 0x00c0, 0x31b2: 0x00c0, 0x31b3: 0x00c0, 0x31b4: 0x00c0, 0x31b5: 0x00c0, + 0x31b6: 0x00c0, 0x31b7: 0x00c0, 0x31b8: 0x00c0, 0x31b9: 0x00c0, 0x31ba: 0x00c0, 0x31bb: 0x00c0, + 0x31bc: 0x00c0, 0x31bd: 0x00c0, 0x31be: 0x00c0, 0x31bf: 0x00c0, + // Block 0xc7, offset 0x31c0 + 0x31c0: 0x00c0, 0x31c1: 0x00c0, 0x31c2: 0x00c0, 0x31c3: 0x00c0, 0x31c4: 0x00c0, 0x31c5: 0x00c0, + 0x31c6: 0x00c0, 0x31c7: 0x00c0, 0x31c8: 0x00c0, 0x31c9: 0x00c0, 0x31ca: 0x00c0, 0x31cb: 0x00c0, + 0x31cc: 0x00c0, 0x31cd: 0x00c0, 0x31ce: 0x00c0, 0x31cf: 0x00c0, 0x31d0: 0x00c0, + 0x31e0: 0x00c3, 0x31e1: 0x0080, 0x31e2: 0x0080, 0x31e3: 0x0080, + 0x31e4: 0x0080, 0x31e5: 0x0080, 0x31e6: 0x0080, 0x31e7: 0x0080, 0x31e8: 0x0080, 0x31e9: 0x0080, + 0x31ea: 0x0080, 0x31eb: 0x0080, 0x31ec: 0x0080, 0x31ed: 0x0080, 0x31ee: 0x0080, 0x31ef: 0x0080, + 0x31f0: 0x0080, 0x31f1: 0x0080, 0x31f2: 0x0080, 0x31f3: 0x0080, 0x31f4: 0x0080, 0x31f5: 0x0080, + 0x31f6: 0x0080, 0x31f7: 0x0080, 0x31f8: 0x0080, 0x31f9: 0x0080, 0x31fa: 0x0080, 0x31fb: 0x0080, + // Block 0xc8, offset 0x3200 + 0x3200: 0x00c0, 0x3201: 0x00c0, 0x3202: 0x00c0, 0x3203: 0x00c0, 0x3204: 0x00c0, 0x3205: 0x00c0, + 0x3206: 0x00c0, 0x3207: 0x00c0, 0x3208: 0x00c0, 0x3209: 0x00c0, 0x320a: 0x00c0, 0x320b: 0x00c0, + 0x320c: 0x00c0, 0x320d: 0x00c0, 0x320e: 0x00c0, 0x320f: 0x00c0, 0x3210: 0x00c0, 0x3211: 0x00c0, + 0x3212: 0x00c0, 0x3213: 0x00c0, 0x3214: 0x00c0, 0x3215: 0x00c0, 0x3216: 0x00c0, 0x3217: 0x00c0, + 0x3218: 0x00c0, 0x3219: 0x00c0, 0x321a: 0x00c0, 0x321b: 0x00c0, 0x321c: 0x00c0, 0x321d: 0x00c0, + 0x321e: 0x00c0, 0x321f: 0x00c0, 0x3220: 0x0080, 0x3221: 0x0080, 0x3222: 0x0080, 0x3223: 0x0080, + 0x3230: 0x00c0, 0x3231: 0x00c0, 0x3232: 0x00c0, 0x3233: 0x00c0, 0x3234: 0x00c0, 0x3235: 0x00c0, + 0x3236: 0x00c0, 0x3237: 0x00c0, 0x3238: 0x00c0, 0x3239: 0x00c0, 0x323a: 0x00c0, 0x323b: 0x00c0, + 0x323c: 0x00c0, 0x323d: 0x00c0, 0x323e: 0x00c0, 0x323f: 0x00c0, + // Block 0xc9, offset 0x3240 + 0x3240: 0x00c0, 0x3241: 0x0080, 0x3242: 0x00c0, 0x3243: 0x00c0, 0x3244: 0x00c0, 0x3245: 0x00c0, + 0x3246: 0x00c0, 0x3247: 0x00c0, 0x3248: 0x00c0, 0x3249: 0x00c0, 0x324a: 0x0080, + 0x3250: 0x00c0, 0x3251: 0x00c0, + 0x3252: 0x00c0, 0x3253: 0x00c0, 0x3254: 0x00c0, 0x3255: 0x00c0, 0x3256: 0x00c0, 0x3257: 0x00c0, + 0x3258: 0x00c0, 0x3259: 0x00c0, 0x325a: 0x00c0, 0x325b: 0x00c0, 0x325c: 0x00c0, 0x325d: 0x00c0, + 0x325e: 0x00c0, 0x325f: 0x00c0, 0x3260: 0x00c0, 0x3261: 0x00c0, 0x3262: 0x00c0, 0x3263: 0x00c0, + 0x3264: 0x00c0, 0x3265: 0x00c0, 0x3266: 0x00c0, 0x3267: 0x00c0, 0x3268: 0x00c0, 0x3269: 0x00c0, + 0x326a: 0x00c0, 0x326b: 0x00c0, 0x326c: 0x00c0, 0x326d: 0x00c0, 0x326e: 0x00c0, 0x326f: 0x00c0, + 0x3270: 0x00c0, 0x3271: 0x00c0, 0x3272: 0x00c0, 0x3273: 0x00c0, 0x3274: 0x00c0, 0x3275: 0x00c0, + 0x3276: 0x00c3, 0x3277: 0x00c3, 0x3278: 0x00c3, 0x3279: 0x00c3, 0x327a: 0x00c3, + // Block 0xca, offset 0x3280 + 0x3280: 0x00c0, 0x3281: 0x00c0, 0x3282: 0x00c0, 0x3283: 0x00c0, 0x3284: 0x00c0, 0x3285: 0x00c0, + 0x3286: 0x00c0, 0x3287: 0x00c0, 0x3288: 0x00c0, 0x3289: 0x00c0, 0x328a: 0x00c0, 0x328b: 0x00c0, + 0x328c: 0x00c0, 0x328d: 0x00c0, 0x328e: 0x00c0, 0x328f: 0x00c0, 0x3290: 0x00c0, 0x3291: 0x00c0, + 0x3292: 0x00c0, 0x3293: 0x00c0, 0x3294: 0x00c0, 0x3295: 0x00c0, 0x3296: 0x00c0, 0x3297: 0x00c0, + 0x3298: 0x00c0, 0x3299: 0x00c0, 0x329a: 0x00c0, 0x329b: 0x00c0, 0x329c: 0x00c0, 0x329d: 0x00c0, + 0x329f: 0x0080, 0x32a0: 0x00c0, 0x32a1: 0x00c0, 0x32a2: 0x00c0, 0x32a3: 0x00c0, + 0x32a4: 0x00c0, 0x32a5: 0x00c0, 0x32a6: 0x00c0, 0x32a7: 0x00c0, 0x32a8: 0x00c0, 0x32a9: 0x00c0, + 0x32aa: 0x00c0, 0x32ab: 0x00c0, 0x32ac: 0x00c0, 0x32ad: 0x00c0, 0x32ae: 0x00c0, 0x32af: 0x00c0, + 0x32b0: 0x00c0, 0x32b1: 0x00c0, 0x32b2: 0x00c0, 0x32b3: 0x00c0, 0x32b4: 0x00c0, 0x32b5: 0x00c0, + 0x32b6: 0x00c0, 0x32b7: 0x00c0, 0x32b8: 0x00c0, 0x32b9: 0x00c0, 0x32ba: 0x00c0, 0x32bb: 0x00c0, + 0x32bc: 0x00c0, 0x32bd: 0x00c0, 0x32be: 0x00c0, 0x32bf: 0x00c0, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x00c0, 0x32c1: 0x00c0, 0x32c2: 0x00c0, 0x32c3: 0x00c0, + 0x32c8: 0x00c0, 0x32c9: 0x00c0, 0x32ca: 0x00c0, 0x32cb: 0x00c0, + 0x32cc: 0x00c0, 0x32cd: 0x00c0, 0x32ce: 0x00c0, 0x32cf: 0x00c0, 0x32d0: 0x0080, 0x32d1: 0x0080, + 0x32d2: 0x0080, 0x32d3: 0x0080, 0x32d4: 0x0080, 0x32d5: 0x0080, + // Block 0xcc, offset 0x3300 + 0x3300: 0x00c0, 0x3301: 0x00c0, 0x3302: 0x00c0, 0x3303: 0x00c0, 0x3304: 0x00c0, 0x3305: 0x00c0, + 0x3306: 0x00c0, 0x3307: 0x00c0, 0x3308: 0x00c0, 0x3309: 0x00c0, 0x330a: 0x00c0, 0x330b: 0x00c0, + 0x330c: 0x00c0, 0x330d: 0x00c0, 0x330e: 0x00c0, 0x330f: 0x00c0, 0x3310: 0x00c0, 0x3311: 0x00c0, + 0x3312: 0x00c0, 0x3313: 0x00c0, 0x3314: 0x00c0, 0x3315: 0x00c0, 0x3316: 0x00c0, 0x3317: 0x00c0, + 0x3318: 0x00c0, 0x3319: 0x00c0, 0x331a: 0x00c0, 0x331b: 0x00c0, 0x331c: 0x00c0, 0x331d: 0x00c0, + 0x3320: 0x00c0, 0x3321: 0x00c0, 0x3322: 0x00c0, 0x3323: 0x00c0, + 0x3324: 0x00c0, 0x3325: 0x00c0, 0x3326: 0x00c0, 0x3327: 0x00c0, 0x3328: 0x00c0, 0x3329: 0x00c0, + 0x3330: 0x00c0, 0x3331: 0x00c0, 0x3332: 0x00c0, 0x3333: 0x00c0, 0x3334: 0x00c0, 0x3335: 0x00c0, + 0x3336: 0x00c0, 0x3337: 0x00c0, 0x3338: 0x00c0, 0x3339: 0x00c0, 0x333a: 0x00c0, 0x333b: 0x00c0, + 0x333c: 0x00c0, 0x333d: 0x00c0, 0x333e: 0x00c0, 0x333f: 0x00c0, + // Block 0xcd, offset 0x3340 + 0x3340: 0x00c0, 0x3341: 0x00c0, 0x3342: 0x00c0, 0x3343: 0x00c0, 0x3344: 0x00c0, 0x3345: 0x00c0, + 0x3346: 0x00c0, 0x3347: 0x00c0, 0x3348: 0x00c0, 0x3349: 0x00c0, 0x334a: 0x00c0, 0x334b: 0x00c0, + 0x334c: 0x00c0, 0x334d: 0x00c0, 0x334e: 0x00c0, 0x334f: 0x00c0, 0x3350: 0x00c0, 0x3351: 0x00c0, + 0x3352: 0x00c0, 0x3353: 0x00c0, + 0x3358: 0x00c0, 0x3359: 0x00c0, 0x335a: 0x00c0, 0x335b: 0x00c0, 0x335c: 0x00c0, 0x335d: 0x00c0, + 0x335e: 0x00c0, 0x335f: 0x00c0, 0x3360: 0x00c0, 0x3361: 0x00c0, 0x3362: 0x00c0, 0x3363: 0x00c0, + 0x3364: 0x00c0, 0x3365: 0x00c0, 0x3366: 0x00c0, 0x3367: 0x00c0, 0x3368: 0x00c0, 0x3369: 0x00c0, + 0x336a: 0x00c0, 0x336b: 0x00c0, 0x336c: 0x00c0, 0x336d: 0x00c0, 0x336e: 0x00c0, 0x336f: 0x00c0, + 0x3370: 0x00c0, 0x3371: 0x00c0, 0x3372: 0x00c0, 0x3373: 0x00c0, 0x3374: 0x00c0, 0x3375: 0x00c0, + 0x3376: 0x00c0, 0x3377: 0x00c0, 0x3378: 0x00c0, 0x3379: 0x00c0, 0x337a: 0x00c0, 0x337b: 0x00c0, + // Block 0xce, offset 0x3380 + 0x3380: 0x00c0, 0x3381: 0x00c0, 0x3382: 0x00c0, 0x3383: 0x00c0, 0x3384: 0x00c0, 0x3385: 0x00c0, + 0x3386: 0x00c0, 0x3387: 0x00c0, 0x3388: 0x00c0, 0x3389: 0x00c0, 0x338a: 0x00c0, 0x338b: 0x00c0, + 0x338c: 0x00c0, 0x338d: 0x00c0, 0x338e: 0x00c0, 0x338f: 0x00c0, 0x3390: 0x00c0, 0x3391: 0x00c0, + 0x3392: 0x00c0, 0x3393: 0x00c0, 0x3394: 0x00c0, 0x3395: 0x00c0, 0x3396: 0x00c0, 0x3397: 0x00c0, + 0x3398: 0x00c0, 0x3399: 0x00c0, 0x339a: 0x00c0, 0x339b: 0x00c0, 0x339c: 0x00c0, 0x339d: 0x00c0, + 0x339e: 0x00c0, 0x339f: 0x00c0, 0x33a0: 0x00c0, 0x33a1: 0x00c0, 0x33a2: 0x00c0, 0x33a3: 0x00c0, + 0x33a4: 0x00c0, 0x33a5: 0x00c0, 0x33a6: 0x00c0, 0x33a7: 0x00c0, + 0x33b0: 0x00c0, 0x33b1: 0x00c0, 0x33b2: 0x00c0, 0x33b3: 0x00c0, 0x33b4: 0x00c0, 0x33b5: 0x00c0, + 0x33b6: 0x00c0, 0x33b7: 0x00c0, 0x33b8: 0x00c0, 0x33b9: 0x00c0, 0x33ba: 0x00c0, 0x33bb: 0x00c0, + 0x33bc: 0x00c0, 0x33bd: 0x00c0, 0x33be: 0x00c0, 0x33bf: 0x00c0, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x00c0, 0x33c1: 0x00c0, 0x33c2: 0x00c0, 0x33c3: 0x00c0, 0x33c4: 0x00c0, 0x33c5: 0x00c0, + 0x33c6: 0x00c0, 0x33c7: 0x00c0, 0x33c8: 0x00c0, 0x33c9: 0x00c0, 0x33ca: 0x00c0, 0x33cb: 0x00c0, + 0x33cc: 0x00c0, 0x33cd: 0x00c0, 0x33ce: 0x00c0, 0x33cf: 0x00c0, 0x33d0: 0x00c0, 0x33d1: 0x00c0, + 0x33d2: 0x00c0, 0x33d3: 0x00c0, 0x33d4: 0x00c0, 0x33d5: 0x00c0, 0x33d6: 0x00c0, 0x33d7: 0x00c0, + 0x33d8: 0x00c0, 0x33d9: 0x00c0, 0x33da: 0x00c0, 0x33db: 0x00c0, 0x33dc: 0x00c0, 0x33dd: 0x00c0, + 0x33de: 0x00c0, 0x33df: 0x00c0, 0x33e0: 0x00c0, 0x33e1: 0x00c0, 0x33e2: 0x00c0, 0x33e3: 0x00c0, + 0x33ef: 0x0080, + // Block 0xd0, offset 0x3400 + 0x3400: 0x00c0, 0x3401: 0x00c0, 0x3402: 0x00c0, 0x3403: 0x00c0, 0x3404: 0x00c0, 0x3405: 0x00c0, + 0x3406: 0x00c0, 0x3407: 0x00c0, 0x3408: 0x00c0, 0x3409: 0x00c0, 0x340a: 0x00c0, 0x340b: 0x00c0, + 0x340c: 0x00c0, 0x340d: 0x00c0, 0x340e: 0x00c0, 0x340f: 0x00c0, 0x3410: 0x00c0, 0x3411: 0x00c0, + 0x3412: 0x00c0, 0x3413: 0x00c0, 0x3414: 0x00c0, 0x3415: 0x00c0, 0x3416: 0x00c0, 0x3417: 0x00c0, + 0x3418: 0x00c0, 0x3419: 0x00c0, 0x341a: 0x00c0, 0x341b: 0x00c0, 0x341c: 0x00c0, 0x341d: 0x00c0, + 0x341e: 0x00c0, 0x341f: 0x00c0, 0x3420: 0x00c0, 0x3421: 0x00c0, 0x3422: 0x00c0, 0x3423: 0x00c0, + 0x3424: 0x00c0, 0x3425: 0x00c0, 0x3426: 0x00c0, 0x3427: 0x00c0, 0x3428: 0x00c0, 0x3429: 0x00c0, + 0x342a: 0x00c0, 0x342b: 0x00c0, 0x342c: 0x00c0, 0x342d: 0x00c0, 0x342e: 0x00c0, 0x342f: 0x00c0, + 0x3430: 0x00c0, 0x3431: 0x00c0, 0x3432: 0x00c0, 0x3433: 0x00c0, 0x3434: 0x00c0, 0x3435: 0x00c0, + 0x3436: 0x00c0, + // Block 0xd1, offset 0x3440 + 0x3440: 0x00c0, 0x3441: 0x00c0, 0x3442: 0x00c0, 0x3443: 0x00c0, 0x3444: 0x00c0, 0x3445: 0x00c0, + 0x3446: 0x00c0, 0x3447: 0x00c0, 0x3448: 0x00c0, 0x3449: 0x00c0, 0x344a: 0x00c0, 0x344b: 0x00c0, + 0x344c: 0x00c0, 0x344d: 0x00c0, 0x344e: 0x00c0, 0x344f: 0x00c0, 0x3450: 0x00c0, 0x3451: 0x00c0, + 0x3452: 0x00c0, 0x3453: 0x00c0, 0x3454: 0x00c0, 0x3455: 0x00c0, + 0x3460: 0x00c0, 0x3461: 0x00c0, 0x3462: 0x00c0, 0x3463: 0x00c0, + 0x3464: 0x00c0, 0x3465: 0x00c0, 0x3466: 0x00c0, 0x3467: 0x00c0, + // Block 0xd2, offset 0x3480 + 0x3480: 0x00c0, 0x3481: 0x00c0, 0x3482: 0x00c0, 0x3483: 0x00c0, 0x3484: 0x00c0, 0x3485: 0x00c0, + 0x3488: 0x00c0, 0x348a: 0x00c0, 0x348b: 0x00c0, + 0x348c: 0x00c0, 0x348d: 0x00c0, 0x348e: 0x00c0, 0x348f: 0x00c0, 0x3490: 0x00c0, 0x3491: 0x00c0, + 0x3492: 0x00c0, 0x3493: 0x00c0, 0x3494: 0x00c0, 0x3495: 0x00c0, 0x3496: 0x00c0, 0x3497: 0x00c0, + 0x3498: 0x00c0, 0x3499: 0x00c0, 0x349a: 0x00c0, 0x349b: 0x00c0, 0x349c: 0x00c0, 0x349d: 0x00c0, + 0x349e: 0x00c0, 0x349f: 0x00c0, 0x34a0: 0x00c0, 0x34a1: 0x00c0, 0x34a2: 0x00c0, 0x34a3: 0x00c0, + 0x34a4: 0x00c0, 0x34a5: 0x00c0, 0x34a6: 0x00c0, 0x34a7: 0x00c0, 0x34a8: 0x00c0, 0x34a9: 0x00c0, + 0x34aa: 0x00c0, 0x34ab: 0x00c0, 0x34ac: 0x00c0, 0x34ad: 0x00c0, 0x34ae: 0x00c0, 0x34af: 0x00c0, + 0x34b0: 0x00c0, 0x34b1: 0x00c0, 0x34b2: 0x00c0, 0x34b3: 0x00c0, 0x34b4: 0x00c0, 0x34b5: 0x00c0, + 0x34b7: 0x00c0, 0x34b8: 0x00c0, + 0x34bc: 0x00c0, 0x34bf: 0x00c0, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x00c0, 0x34c1: 0x00c0, 0x34c2: 0x00c0, 0x34c3: 0x00c0, 0x34c4: 0x00c0, 0x34c5: 0x00c0, + 0x34c6: 0x00c0, 0x34c7: 0x00c0, 0x34c8: 0x00c0, 0x34c9: 0x00c0, 0x34ca: 0x00c0, 0x34cb: 0x00c0, + 0x34cc: 0x00c0, 0x34cd: 0x00c0, 0x34ce: 0x00c0, 0x34cf: 0x00c0, 0x34d0: 0x00c0, 0x34d1: 0x00c0, + 0x34d2: 0x00c0, 0x34d3: 0x00c0, 0x34d4: 0x00c0, 0x34d5: 0x00c0, 0x34d7: 0x0080, + 0x34d8: 0x0080, 0x34d9: 0x0080, 0x34da: 0x0080, 0x34db: 0x0080, 0x34dc: 0x0080, 0x34dd: 0x0080, + 0x34de: 0x0080, 0x34df: 0x0080, 0x34e0: 0x00c0, 0x34e1: 0x00c0, 0x34e2: 0x00c0, 0x34e3: 0x00c0, + 0x34e4: 0x00c0, 0x34e5: 0x00c0, 0x34e6: 0x00c0, 0x34e7: 0x00c0, 0x34e8: 0x00c0, 0x34e9: 0x00c0, + 0x34ea: 0x00c0, 0x34eb: 0x00c0, 0x34ec: 0x00c0, 0x34ed: 0x00c0, 0x34ee: 0x00c0, 0x34ef: 0x00c0, + 0x34f0: 0x00c0, 0x34f1: 0x00c0, 0x34f2: 0x00c0, 0x34f3: 0x00c0, 0x34f4: 0x00c0, 0x34f5: 0x00c0, + 0x34f6: 0x00c0, 0x34f7: 0x0080, 0x34f8: 0x0080, 0x34f9: 0x0080, 0x34fa: 0x0080, 0x34fb: 0x0080, + 0x34fc: 0x0080, 0x34fd: 0x0080, 0x34fe: 0x0080, 0x34ff: 0x0080, + // Block 0xd4, offset 0x3500 + 0x3500: 0x00c0, 0x3501: 0x00c0, 0x3502: 0x00c0, 0x3503: 0x00c0, 0x3504: 0x00c0, 0x3505: 0x00c0, + 0x3506: 0x00c0, 0x3507: 0x00c0, 0x3508: 0x00c0, 0x3509: 0x00c0, 0x350a: 0x00c0, 0x350b: 0x00c0, + 0x350c: 0x00c0, 0x350d: 0x00c0, 0x350e: 0x00c0, 0x350f: 0x00c0, 0x3510: 0x00c0, 0x3511: 0x00c0, + 0x3512: 0x00c0, 0x3513: 0x00c0, 0x3514: 0x00c0, 0x3515: 0x00c0, 0x3516: 0x00c0, 0x3517: 0x00c0, + 0x3518: 0x00c0, 0x3519: 0x00c0, 0x351a: 0x00c0, 0x351b: 0x00c0, 0x351c: 0x00c0, 0x351d: 0x00c0, + 0x351e: 0x00c0, + 0x3527: 0x0080, 0x3528: 0x0080, 0x3529: 0x0080, + 0x352a: 0x0080, 0x352b: 0x0080, 0x352c: 0x0080, 0x352d: 0x0080, 0x352e: 0x0080, 0x352f: 0x0080, + // Block 0xd5, offset 0x3540 + 0x3560: 0x00c0, 0x3561: 0x00c0, 0x3562: 0x00c0, 0x3563: 0x00c0, + 0x3564: 0x00c0, 0x3565: 0x00c0, 0x3566: 0x00c0, 0x3567: 0x00c0, 0x3568: 0x00c0, 0x3569: 0x00c0, + 0x356a: 0x00c0, 0x356b: 0x00c0, 0x356c: 0x00c0, 0x356d: 0x00c0, 0x356e: 0x00c0, 0x356f: 0x00c0, + 0x3570: 0x00c0, 0x3571: 0x00c0, 0x3572: 0x00c0, 0x3574: 0x00c0, 0x3575: 0x00c0, + 0x357b: 0x0080, + 0x357c: 0x0080, 0x357d: 0x0080, 0x357e: 0x0080, 0x357f: 0x0080, + // Block 0xd6, offset 0x3580 + 0x3580: 0x00c0, 0x3581: 0x00c0, 0x3582: 0x00c0, 0x3583: 0x00c0, 0x3584: 0x00c0, 0x3585: 0x00c0, + 0x3586: 0x00c0, 0x3587: 0x00c0, 0x3588: 0x00c0, 0x3589: 0x00c0, 0x358a: 0x00c0, 0x358b: 0x00c0, + 0x358c: 0x00c0, 0x358d: 0x00c0, 0x358e: 0x00c0, 0x358f: 0x00c0, 0x3590: 0x00c0, 0x3591: 0x00c0, + 0x3592: 0x00c0, 0x3593: 0x00c0, 0x3594: 0x00c0, 0x3595: 0x00c0, 0x3596: 0x0080, 0x3597: 0x0080, + 0x3598: 0x0080, 0x3599: 0x0080, 0x359a: 0x0080, 0x359b: 0x0080, + 0x359f: 0x0080, 0x35a0: 0x00c0, 0x35a1: 0x00c0, 0x35a2: 0x00c0, 0x35a3: 0x00c0, + 0x35a4: 0x00c0, 0x35a5: 0x00c0, 0x35a6: 0x00c0, 0x35a7: 0x00c0, 0x35a8: 0x00c0, 0x35a9: 0x00c0, + 0x35aa: 0x00c0, 0x35ab: 0x00c0, 0x35ac: 0x00c0, 0x35ad: 0x00c0, 0x35ae: 0x00c0, 0x35af: 0x00c0, + 0x35b0: 0x00c0, 0x35b1: 0x00c0, 0x35b2: 0x00c0, 0x35b3: 0x00c0, 0x35b4: 0x00c0, 0x35b5: 0x00c0, + 0x35b6: 0x00c0, 0x35b7: 0x00c0, 0x35b8: 0x00c0, 0x35b9: 0x00c0, + 0x35bf: 0x0080, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x00c0, 0x35c1: 0x00c0, 0x35c2: 0x00c0, 0x35c3: 0x00c0, 0x35c4: 0x00c0, 0x35c5: 0x00c0, + 0x35c6: 0x00c0, 0x35c7: 0x00c0, 0x35c8: 0x00c0, 0x35c9: 0x00c0, 0x35ca: 0x00c0, 0x35cb: 0x00c0, + 0x35cc: 0x00c0, 0x35cd: 0x00c0, 0x35ce: 0x00c0, 0x35cf: 0x00c0, 0x35d0: 0x00c0, 0x35d1: 0x00c0, + 0x35d2: 0x00c0, 0x35d3: 0x00c0, 0x35d4: 0x00c0, 0x35d5: 0x00c0, 0x35d6: 0x00c0, 0x35d7: 0x00c0, + 0x35d8: 0x00c0, 0x35d9: 0x00c0, 0x35da: 0x00c0, 0x35db: 0x00c0, 0x35dc: 0x00c0, 0x35dd: 0x00c0, + 0x35de: 0x00c0, 0x35df: 0x00c0, 0x35e0: 0x00c0, 0x35e1: 0x00c0, 0x35e2: 0x00c0, 0x35e3: 0x00c0, + 0x35e4: 0x00c0, 0x35e5: 0x00c0, 0x35e6: 0x00c0, 0x35e7: 0x00c0, 0x35e8: 0x00c0, 0x35e9: 0x00c0, + 0x35ea: 0x00c0, 0x35eb: 0x00c0, 0x35ec: 0x00c0, 0x35ed: 0x00c0, 0x35ee: 0x00c0, 0x35ef: 0x00c0, + 0x35f0: 0x00c0, 0x35f1: 0x00c0, 0x35f2: 0x00c0, 0x35f3: 0x00c0, 0x35f4: 0x00c0, 0x35f5: 0x00c0, + 0x35f6: 0x00c0, 0x35f7: 0x00c0, + 0x35fc: 0x0080, 0x35fd: 0x0080, 0x35fe: 0x00c0, 0x35ff: 0x00c0, + // Block 0xd8, offset 0x3600 + 0x3600: 0x00c0, 0x3601: 0x00c3, 0x3602: 0x00c3, 0x3603: 0x00c3, 0x3605: 0x00c3, + 0x3606: 0x00c3, + 0x360c: 0x00c3, 0x360d: 0x00c3, 0x360e: 0x00c3, 0x360f: 0x00c3, 0x3610: 0x00c0, 0x3611: 0x00c0, + 0x3612: 0x00c0, 0x3613: 0x00c0, 0x3615: 0x00c0, 0x3616: 0x00c0, 0x3617: 0x00c0, + 0x3619: 0x00c0, 0x361a: 0x00c0, 0x361b: 0x00c0, 0x361c: 0x00c0, 0x361d: 0x00c0, + 0x361e: 0x00c0, 0x361f: 0x00c0, 0x3620: 0x00c0, 0x3621: 0x00c0, 0x3622: 0x00c0, 0x3623: 0x00c0, + 0x3624: 0x00c0, 0x3625: 0x00c0, 0x3626: 0x00c0, 0x3627: 0x00c0, 0x3628: 0x00c0, 0x3629: 0x00c0, + 0x362a: 0x00c0, 0x362b: 0x00c0, 0x362c: 0x00c0, 0x362d: 0x00c0, 0x362e: 0x00c0, 0x362f: 0x00c0, + 0x3630: 0x00c0, 0x3631: 0x00c0, 0x3632: 0x00c0, 0x3633: 0x00c0, + 0x3638: 0x00c3, 0x3639: 0x00c3, 0x363a: 0x00c3, + 0x363f: 0x00c6, + // Block 0xd9, offset 0x3640 + 0x3640: 0x0080, 0x3641: 0x0080, 0x3642: 0x0080, 0x3643: 0x0080, 0x3644: 0x0080, 0x3645: 0x0080, + 0x3646: 0x0080, 0x3647: 0x0080, + 0x3650: 0x0080, 0x3651: 0x0080, + 0x3652: 0x0080, 0x3653: 0x0080, 0x3654: 0x0080, 0x3655: 0x0080, 0x3656: 0x0080, 0x3657: 0x0080, + 0x3658: 0x0080, + 0x3660: 0x00c0, 0x3661: 0x00c0, 0x3662: 0x00c0, 0x3663: 0x00c0, + 0x3664: 0x00c0, 0x3665: 0x00c0, 0x3666: 0x00c0, 0x3667: 0x00c0, 0x3668: 0x00c0, 0x3669: 0x00c0, + 0x366a: 0x00c0, 0x366b: 0x00c0, 0x366c: 0x00c0, 0x366d: 0x00c0, 0x366e: 0x00c0, 0x366f: 0x00c0, + 0x3670: 0x00c0, 0x3671: 0x00c0, 0x3672: 0x00c0, 0x3673: 0x00c0, 0x3674: 0x00c0, 0x3675: 0x00c0, + 0x3676: 0x00c0, 0x3677: 0x00c0, 0x3678: 0x00c0, 0x3679: 0x00c0, 0x367a: 0x00c0, 0x367b: 0x00c0, + 0x367c: 0x00c0, 0x367d: 0x0080, 0x367e: 0x0080, 0x367f: 0x0080, + // Block 0xda, offset 0x3680 + 0x3680: 0x00c0, 0x3681: 0x00c0, 0x3682: 0x00c0, 0x3683: 0x00c0, 0x3684: 0x00c0, 0x3685: 0x00c0, + 0x3686: 0x00c0, 0x3687: 0x00c0, 0x3688: 0x00c0, 0x3689: 0x00c0, 0x368a: 0x00c0, 0x368b: 0x00c0, + 0x368c: 0x00c0, 0x368d: 0x00c0, 0x368e: 0x00c0, 0x368f: 0x00c0, 0x3690: 0x00c0, 0x3691: 0x00c0, + 0x3692: 0x00c0, 0x3693: 0x00c0, 0x3694: 0x00c0, 0x3695: 0x00c0, 0x3696: 0x00c0, 0x3697: 0x00c0, + 0x3698: 0x00c0, 0x3699: 0x00c0, 0x369a: 0x00c0, 0x369b: 0x00c0, 0x369c: 0x00c0, 0x369d: 0x0080, + 0x369e: 0x0080, 0x369f: 0x0080, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x00c2, 0x36c1: 0x00c2, 0x36c2: 0x00c2, 0x36c3: 0x00c2, 0x36c4: 0x00c2, 0x36c5: 0x00c4, + 0x36c6: 0x00c0, 0x36c7: 0x00c4, 0x36c8: 0x0080, 0x36c9: 0x00c4, 0x36ca: 0x00c4, 0x36cb: 0x00c0, + 0x36cc: 0x00c0, 0x36cd: 0x00c1, 0x36ce: 0x00c4, 0x36cf: 0x00c4, 0x36d0: 0x00c4, 0x36d1: 0x00c4, + 0x36d2: 0x00c4, 0x36d3: 0x00c2, 0x36d4: 0x00c2, 0x36d5: 0x00c2, 0x36d6: 0x00c2, 0x36d7: 0x00c1, + 0x36d8: 0x00c2, 0x36d9: 0x00c2, 0x36da: 0x00c2, 0x36db: 0x00c2, 0x36dc: 0x00c2, 0x36dd: 0x00c4, + 0x36de: 0x00c2, 0x36df: 0x00c2, 0x36e0: 0x00c2, 0x36e1: 0x00c4, 0x36e2: 0x00c0, 0x36e3: 0x00c0, + 0x36e4: 0x00c4, 0x36e5: 0x00c3, 0x36e6: 0x00c3, + 0x36eb: 0x0082, 0x36ec: 0x0082, 0x36ed: 0x0082, 0x36ee: 0x0082, 0x36ef: 0x0084, + 0x36f0: 0x0080, 0x36f1: 0x0080, 0x36f2: 0x0080, 0x36f3: 0x0080, 0x36f4: 0x0080, 0x36f5: 0x0080, + 0x36f6: 0x0080, + // Block 0xdc, offset 0x3700 + 0x3700: 0x00c0, 0x3701: 0x00c0, 0x3702: 0x00c0, 0x3703: 0x00c0, 0x3704: 0x00c0, 0x3705: 0x00c0, + 0x3706: 0x00c0, 0x3707: 0x00c0, 0x3708: 0x00c0, 0x3709: 0x00c0, 0x370a: 0x00c0, 0x370b: 0x00c0, + 0x370c: 0x00c0, 0x370d: 0x00c0, 0x370e: 0x00c0, 0x370f: 0x00c0, 0x3710: 0x00c0, 0x3711: 0x00c0, + 0x3712: 0x00c0, 0x3713: 0x00c0, 0x3714: 0x00c0, 0x3715: 0x00c0, 0x3716: 0x00c0, 0x3717: 0x00c0, + 0x3718: 0x00c0, 0x3719: 0x00c0, 0x371a: 0x00c0, 0x371b: 0x00c0, 0x371c: 0x00c0, 0x371d: 0x00c0, + 0x371e: 0x00c0, 0x371f: 0x00c0, 0x3720: 0x00c0, 0x3721: 0x00c0, 0x3722: 0x00c0, 0x3723: 0x00c0, + 0x3724: 0x00c0, 0x3725: 0x00c0, 0x3726: 0x00c0, 0x3727: 0x00c0, 0x3728: 0x00c0, 0x3729: 0x00c0, + 0x372a: 0x00c0, 0x372b: 0x00c0, 0x372c: 0x00c0, 0x372d: 0x00c0, 0x372e: 0x00c0, 0x372f: 0x00c0, + 0x3730: 0x00c0, 0x3731: 0x00c0, 0x3732: 0x00c0, 0x3733: 0x00c0, 0x3734: 0x00c0, 0x3735: 0x00c0, + 0x3739: 0x0080, 0x373a: 0x0080, 0x373b: 0x0080, + 0x373c: 0x0080, 0x373d: 0x0080, 0x373e: 0x0080, 0x373f: 0x0080, + // Block 0xdd, offset 0x3740 + 0x3740: 0x00c0, 0x3741: 0x00c0, 0x3742: 0x00c0, 0x3743: 0x00c0, 0x3744: 0x00c0, 0x3745: 0x00c0, + 0x3746: 0x00c0, 0x3747: 0x00c0, 0x3748: 0x00c0, 0x3749: 0x00c0, 0x374a: 0x00c0, 0x374b: 0x00c0, + 0x374c: 0x00c0, 0x374d: 0x00c0, 0x374e: 0x00c0, 0x374f: 0x00c0, 0x3750: 0x00c0, 0x3751: 0x00c0, + 0x3752: 0x00c0, 0x3753: 0x00c0, 0x3754: 0x00c0, 0x3755: 0x00c0, + 0x3758: 0x0080, 0x3759: 0x0080, 0x375a: 0x0080, 0x375b: 0x0080, 0x375c: 0x0080, 0x375d: 0x0080, + 0x375e: 0x0080, 0x375f: 0x0080, 0x3760: 0x00c0, 0x3761: 0x00c0, 0x3762: 0x00c0, 0x3763: 0x00c0, + 0x3764: 0x00c0, 0x3765: 0x00c0, 0x3766: 0x00c0, 0x3767: 0x00c0, 0x3768: 0x00c0, 0x3769: 0x00c0, + 0x376a: 0x00c0, 0x376b: 0x00c0, 0x376c: 0x00c0, 0x376d: 0x00c0, 0x376e: 0x00c0, 0x376f: 0x00c0, + 0x3770: 0x00c0, 0x3771: 0x00c0, 0x3772: 0x00c0, + 0x3778: 0x0080, 0x3779: 0x0080, 0x377a: 0x0080, 0x377b: 0x0080, + 0x377c: 0x0080, 0x377d: 0x0080, 0x377e: 0x0080, 0x377f: 0x0080, + // Block 0xde, offset 0x3780 + 0x3780: 0x00c2, 0x3781: 0x00c4, 0x3782: 0x00c2, 0x3783: 0x00c4, 0x3784: 0x00c4, 0x3785: 0x00c4, + 0x3786: 0x00c2, 0x3787: 0x00c2, 0x3788: 0x00c2, 0x3789: 0x00c4, 0x378a: 0x00c2, 0x378b: 0x00c2, + 0x378c: 0x00c4, 0x378d: 0x00c2, 0x378e: 0x00c4, 0x378f: 0x00c4, 0x3790: 0x00c2, 0x3791: 0x00c4, + 0x3799: 0x0080, 0x379a: 0x0080, 0x379b: 0x0080, 0x379c: 0x0080, + 0x37a9: 0x0084, + 0x37aa: 0x0084, 0x37ab: 0x0084, 0x37ac: 0x0084, 0x37ad: 0x0082, 0x37ae: 0x0082, 0x37af: 0x0080, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x00c0, 0x37c1: 0x00c0, 0x37c2: 0x00c0, 0x37c3: 0x00c0, 0x37c4: 0x00c0, 0x37c5: 0x00c0, + 0x37c6: 0x00c0, 0x37c7: 0x00c0, 0x37c8: 0x00c0, 0x37c9: 0x00c0, 0x37ca: 0x00c0, 0x37cb: 0x00c0, + 0x37cc: 0x00c0, 0x37cd: 0x00c0, 0x37ce: 0x00c0, 0x37cf: 0x00c0, 0x37d0: 0x00c0, 0x37d1: 0x00c0, + 0x37d2: 0x00c0, 0x37d3: 0x00c0, 0x37d4: 0x00c0, 0x37d5: 0x00c0, 0x37d6: 0x00c0, 0x37d7: 0x00c0, + 0x37d8: 0x00c0, 0x37d9: 0x00c0, 0x37da: 0x00c0, 0x37db: 0x00c0, 0x37dc: 0x00c0, 0x37dd: 0x00c0, + 0x37de: 0x00c0, 0x37df: 0x00c0, 0x37e0: 0x00c0, 0x37e1: 0x00c0, 0x37e2: 0x00c0, 0x37e3: 0x00c0, + 0x37e4: 0x00c0, 0x37e5: 0x00c0, 0x37e6: 0x00c0, 0x37e7: 0x00c0, 0x37e8: 0x00c0, 0x37e9: 0x00c0, + 0x37ea: 0x00c0, 0x37eb: 0x00c0, 0x37ec: 0x00c0, 0x37ed: 0x00c0, 0x37ee: 0x00c0, 0x37ef: 0x00c0, + 0x37f0: 0x00c0, 0x37f1: 0x00c0, 0x37f2: 0x00c0, + // Block 0xe0, offset 0x3800 + 0x3800: 0x00c0, 0x3801: 0x00c0, 0x3802: 0x00c0, 0x3803: 0x00c0, 0x3804: 0x00c0, 0x3805: 0x00c0, + 0x3806: 0x00c0, 0x3807: 0x00c0, 0x3808: 0x00c0, 0x3809: 0x00c0, 0x380a: 0x00c0, 0x380b: 0x00c0, + 0x380c: 0x00c0, 0x380d: 0x00c0, 0x380e: 0x00c0, 0x380f: 0x00c0, 0x3810: 0x00c0, 0x3811: 0x00c0, + 0x3812: 0x00c0, 0x3813: 0x00c0, 0x3814: 0x00c0, 0x3815: 0x00c0, 0x3816: 0x00c0, 0x3817: 0x00c0, + 0x3818: 0x00c0, 0x3819: 0x00c0, 0x381a: 0x00c0, 0x381b: 0x00c0, 0x381c: 0x00c0, 0x381d: 0x00c0, + 0x381e: 0x00c0, 0x381f: 0x00c0, 0x3820: 0x00c0, 0x3821: 0x00c0, 0x3822: 0x00c0, 0x3823: 0x00c0, + 0x3824: 0x00c0, 0x3825: 0x00c0, 0x3826: 0x00c0, 0x3827: 0x00c0, 0x3828: 0x00c0, 0x3829: 0x00c0, + 0x382a: 0x00c0, 0x382b: 0x00c0, 0x382c: 0x00c0, 0x382d: 0x00c0, 0x382e: 0x00c0, 0x382f: 0x00c0, + 0x3830: 0x00c0, 0x3831: 0x00c0, 0x3832: 0x00c0, + 0x383a: 0x0080, 0x383b: 0x0080, + 0x383c: 0x0080, 0x383d: 0x0080, 0x383e: 0x0080, 0x383f: 0x0080, + // Block 0xe1, offset 0x3840 + 0x3860: 0x0080, 0x3861: 0x0080, 0x3862: 0x0080, 0x3863: 0x0080, + 0x3864: 0x0080, 0x3865: 0x0080, 0x3866: 0x0080, 0x3867: 0x0080, 0x3868: 0x0080, 0x3869: 0x0080, + 0x386a: 0x0080, 0x386b: 0x0080, 0x386c: 0x0080, 0x386d: 0x0080, 0x386e: 0x0080, 0x386f: 0x0080, + 0x3870: 0x0080, 0x3871: 0x0080, 0x3872: 0x0080, 0x3873: 0x0080, 0x3874: 0x0080, 0x3875: 0x0080, + 0x3876: 0x0080, 0x3877: 0x0080, 0x3878: 0x0080, 0x3879: 0x0080, 0x387a: 0x0080, 0x387b: 0x0080, + 0x387c: 0x0080, 0x387d: 0x0080, 0x387e: 0x0080, + // Block 0xe2, offset 0x3880 + 0x3880: 0x00c0, 0x3881: 0x00c3, 0x3882: 0x00c0, 0x3883: 0x00c0, 0x3884: 0x00c0, 0x3885: 0x00c0, + 0x3886: 0x00c0, 0x3887: 0x00c0, 0x3888: 0x00c0, 0x3889: 0x00c0, 0x388a: 0x00c0, 0x388b: 0x00c0, + 0x388c: 0x00c0, 0x388d: 0x00c0, 0x388e: 0x00c0, 0x388f: 0x00c0, 0x3890: 0x00c0, 0x3891: 0x00c0, + 0x3892: 0x00c0, 0x3893: 0x00c0, 0x3894: 0x00c0, 0x3895: 0x00c0, 0x3896: 0x00c0, 0x3897: 0x00c0, + 0x3898: 0x00c0, 0x3899: 0x00c0, 0x389a: 0x00c0, 0x389b: 0x00c0, 0x389c: 0x00c0, 0x389d: 0x00c0, + 0x389e: 0x00c0, 0x389f: 0x00c0, 0x38a0: 0x00c0, 0x38a1: 0x00c0, 0x38a2: 0x00c0, 0x38a3: 0x00c0, + 0x38a4: 0x00c0, 0x38a5: 0x00c0, 0x38a6: 0x00c0, 0x38a7: 0x00c0, 0x38a8: 0x00c0, 0x38a9: 0x00c0, + 0x38aa: 0x00c0, 0x38ab: 0x00c0, 0x38ac: 0x00c0, 0x38ad: 0x00c0, 0x38ae: 0x00c0, 0x38af: 0x00c0, + 0x38b0: 0x00c0, 0x38b1: 0x00c0, 0x38b2: 0x00c0, 0x38b3: 0x00c0, 0x38b4: 0x00c0, 0x38b5: 0x00c0, + 0x38b6: 0x00c0, 0x38b7: 0x00c0, 0x38b8: 0x00c3, 0x38b9: 0x00c3, 0x38ba: 0x00c3, 0x38bb: 0x00c3, + 0x38bc: 0x00c3, 0x38bd: 0x00c3, 0x38be: 0x00c3, 0x38bf: 0x00c3, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x00c3, 0x38c1: 0x00c3, 0x38c2: 0x00c3, 0x38c3: 0x00c3, 0x38c4: 0x00c3, 0x38c5: 0x00c3, + 0x38c6: 0x00c6, 0x38c7: 0x0080, 0x38c8: 0x0080, 0x38c9: 0x0080, 0x38ca: 0x0080, 0x38cb: 0x0080, + 0x38cc: 0x0080, 0x38cd: 0x0080, + 0x38d2: 0x0080, 0x38d3: 0x0080, 0x38d4: 0x0080, 0x38d5: 0x0080, 0x38d6: 0x0080, 0x38d7: 0x0080, + 0x38d8: 0x0080, 0x38d9: 0x0080, 0x38da: 0x0080, 0x38db: 0x0080, 0x38dc: 0x0080, 0x38dd: 0x0080, + 0x38de: 0x0080, 0x38df: 0x0080, 0x38e0: 0x0080, 0x38e1: 0x0080, 0x38e2: 0x0080, 0x38e3: 0x0080, + 0x38e4: 0x0080, 0x38e5: 0x0080, 0x38e6: 0x00c0, 0x38e7: 0x00c0, 0x38e8: 0x00c0, 0x38e9: 0x00c0, + 0x38ea: 0x00c0, 0x38eb: 0x00c0, 0x38ec: 0x00c0, 0x38ed: 0x00c0, 0x38ee: 0x00c0, 0x38ef: 0x00c0, + 0x38ff: 0x00c6, + // Block 0xe4, offset 0x3900 + 0x3900: 0x00c3, 0x3901: 0x00c3, 0x3902: 0x00c0, 0x3903: 0x00c0, 0x3904: 0x00c0, 0x3905: 0x00c0, + 0x3906: 0x00c0, 0x3907: 0x00c0, 0x3908: 0x00c0, 0x3909: 0x00c0, 0x390a: 0x00c0, 0x390b: 0x00c0, + 0x390c: 0x00c0, 0x390d: 0x00c0, 0x390e: 0x00c0, 0x390f: 0x00c0, 0x3910: 0x00c0, 0x3911: 0x00c0, + 0x3912: 0x00c0, 0x3913: 0x00c0, 0x3914: 0x00c0, 0x3915: 0x00c0, 0x3916: 0x00c0, 0x3917: 0x00c0, + 0x3918: 0x00c0, 0x3919: 0x00c0, 0x391a: 0x00c0, 0x391b: 0x00c0, 0x391c: 0x00c0, 0x391d: 0x00c0, + 0x391e: 0x00c0, 0x391f: 0x00c0, 0x3920: 0x00c0, 0x3921: 0x00c0, 0x3922: 0x00c0, 0x3923: 0x00c0, + 0x3924: 0x00c0, 0x3925: 0x00c0, 0x3926: 0x00c0, 0x3927: 0x00c0, 0x3928: 0x00c0, 0x3929: 0x00c0, + 0x392a: 0x00c0, 0x392b: 0x00c0, 0x392c: 0x00c0, 0x392d: 0x00c0, 0x392e: 0x00c0, 0x392f: 0x00c0, + 0x3930: 0x00c0, 0x3931: 0x00c0, 0x3932: 0x00c0, 0x3933: 0x00c3, 0x3934: 0x00c3, 0x3935: 0x00c3, + 0x3936: 0x00c3, 0x3937: 0x00c0, 0x3938: 0x00c0, 0x3939: 0x00c6, 0x393a: 0x00c3, 0x393b: 0x0080, + 0x393c: 0x0080, 0x393d: 0x0040, 0x393e: 0x0080, 0x393f: 0x0080, + // Block 0xe5, offset 0x3940 + 0x3940: 0x0080, 0x3941: 0x0080, + 0x3950: 0x00c0, 0x3951: 0x00c0, + 0x3952: 0x00c0, 0x3953: 0x00c0, 0x3954: 0x00c0, 0x3955: 0x00c0, 0x3956: 0x00c0, 0x3957: 0x00c0, + 0x3958: 0x00c0, 0x3959: 0x00c0, 0x395a: 0x00c0, 0x395b: 0x00c0, 0x395c: 0x00c0, 0x395d: 0x00c0, + 0x395e: 0x00c0, 0x395f: 0x00c0, 0x3960: 0x00c0, 0x3961: 0x00c0, 0x3962: 0x00c0, 0x3963: 0x00c0, + 0x3964: 0x00c0, 0x3965: 0x00c0, 0x3966: 0x00c0, 0x3967: 0x00c0, 0x3968: 0x00c0, + 0x3970: 0x00c0, 0x3971: 0x00c0, 0x3972: 0x00c0, 0x3973: 0x00c0, 0x3974: 0x00c0, 0x3975: 0x00c0, + 0x3976: 0x00c0, 0x3977: 0x00c0, 0x3978: 0x00c0, 0x3979: 0x00c0, + // Block 0xe6, offset 0x3980 + 0x3980: 0x00c3, 0x3981: 0x00c3, 0x3982: 0x00c3, 0x3983: 0x00c0, 0x3984: 0x00c0, 0x3985: 0x00c0, + 0x3986: 0x00c0, 0x3987: 0x00c0, 0x3988: 0x00c0, 0x3989: 0x00c0, 0x398a: 0x00c0, 0x398b: 0x00c0, + 0x398c: 0x00c0, 0x398d: 0x00c0, 0x398e: 0x00c0, 0x398f: 0x00c0, 0x3990: 0x00c0, 0x3991: 0x00c0, + 0x3992: 0x00c0, 0x3993: 0x00c0, 0x3994: 0x00c0, 0x3995: 0x00c0, 0x3996: 0x00c0, 0x3997: 0x00c0, + 0x3998: 0x00c0, 0x3999: 0x00c0, 0x399a: 0x00c0, 0x399b: 0x00c0, 0x399c: 0x00c0, 0x399d: 0x00c0, + 0x399e: 0x00c0, 0x399f: 0x00c0, 0x39a0: 0x00c0, 0x39a1: 0x00c0, 0x39a2: 0x00c0, 0x39a3: 0x00c0, + 0x39a4: 0x00c0, 0x39a5: 0x00c0, 0x39a6: 0x00c0, 0x39a7: 0x00c3, 0x39a8: 0x00c3, 0x39a9: 0x00c3, + 0x39aa: 0x00c3, 0x39ab: 0x00c3, 0x39ac: 0x00c0, 0x39ad: 0x00c3, 0x39ae: 0x00c3, 0x39af: 0x00c3, + 0x39b0: 0x00c3, 0x39b1: 0x00c3, 0x39b2: 0x00c3, 0x39b3: 0x00c6, 0x39b4: 0x00c6, + 0x39b6: 0x00c0, 0x39b7: 0x00c0, 0x39b8: 0x00c0, 0x39b9: 0x00c0, 0x39ba: 0x00c0, 0x39bb: 0x00c0, + 0x39bc: 0x00c0, 0x39bd: 0x00c0, 0x39be: 0x00c0, 0x39bf: 0x00c0, + // Block 0xe7, offset 0x39c0 + 0x39c0: 0x0080, 0x39c1: 0x0080, 0x39c2: 0x0080, 0x39c3: 0x0080, + 0x39d0: 0x00c0, 0x39d1: 0x00c0, + 0x39d2: 0x00c0, 0x39d3: 0x00c0, 0x39d4: 0x00c0, 0x39d5: 0x00c0, 0x39d6: 0x00c0, 0x39d7: 0x00c0, + 0x39d8: 0x00c0, 0x39d9: 0x00c0, 0x39da: 0x00c0, 0x39db: 0x00c0, 0x39dc: 0x00c0, 0x39dd: 0x00c0, + 0x39de: 0x00c0, 0x39df: 0x00c0, 0x39e0: 0x00c0, 0x39e1: 0x00c0, 0x39e2: 0x00c0, 0x39e3: 0x00c0, + 0x39e4: 0x00c0, 0x39e5: 0x00c0, 0x39e6: 0x00c0, 0x39e7: 0x00c0, 0x39e8: 0x00c0, 0x39e9: 0x00c0, + 0x39ea: 0x00c0, 0x39eb: 0x00c0, 0x39ec: 0x00c0, 0x39ed: 0x00c0, 0x39ee: 0x00c0, 0x39ef: 0x00c0, + 0x39f0: 0x00c0, 0x39f1: 0x00c0, 0x39f2: 0x00c0, 0x39f3: 0x00c3, 0x39f4: 0x0080, 0x39f5: 0x0080, + 0x39f6: 0x00c0, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x00c3, 0x3a01: 0x00c3, 0x3a02: 0x00c0, 0x3a03: 0x00c0, 0x3a04: 0x00c0, 0x3a05: 0x00c0, + 0x3a06: 0x00c0, 0x3a07: 0x00c0, 0x3a08: 0x00c0, 0x3a09: 0x00c0, 0x3a0a: 0x00c0, 0x3a0b: 0x00c0, + 0x3a0c: 0x00c0, 0x3a0d: 0x00c0, 0x3a0e: 0x00c0, 0x3a0f: 0x00c0, 0x3a10: 0x00c0, 0x3a11: 0x00c0, + 0x3a12: 0x00c0, 0x3a13: 0x00c0, 0x3a14: 0x00c0, 0x3a15: 0x00c0, 0x3a16: 0x00c0, 0x3a17: 0x00c0, + 0x3a18: 0x00c0, 0x3a19: 0x00c0, 0x3a1a: 0x00c0, 0x3a1b: 0x00c0, 0x3a1c: 0x00c0, 0x3a1d: 0x00c0, + 0x3a1e: 0x00c0, 0x3a1f: 0x00c0, 0x3a20: 0x00c0, 0x3a21: 0x00c0, 0x3a22: 0x00c0, 0x3a23: 0x00c0, + 0x3a24: 0x00c0, 0x3a25: 0x00c0, 0x3a26: 0x00c0, 0x3a27: 0x00c0, 0x3a28: 0x00c0, 0x3a29: 0x00c0, + 0x3a2a: 0x00c0, 0x3a2b: 0x00c0, 0x3a2c: 0x00c0, 0x3a2d: 0x00c0, 0x3a2e: 0x00c0, 0x3a2f: 0x00c0, + 0x3a30: 0x00c0, 0x3a31: 0x00c0, 0x3a32: 0x00c0, 0x3a33: 0x00c0, 0x3a34: 0x00c0, 0x3a35: 0x00c0, + 0x3a36: 0x00c3, 0x3a37: 0x00c3, 0x3a38: 0x00c3, 0x3a39: 0x00c3, 0x3a3a: 0x00c3, 0x3a3b: 0x00c3, + 0x3a3c: 0x00c3, 0x3a3d: 0x00c3, 0x3a3e: 0x00c3, 0x3a3f: 0x00c0, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x00c5, 0x3a41: 0x00c0, 0x3a42: 0x00c0, 0x3a43: 0x00c0, 0x3a44: 0x00c0, 0x3a45: 0x0080, + 0x3a46: 0x0080, 0x3a47: 0x0080, 0x3a48: 0x0080, 0x3a49: 0x0080, 0x3a4a: 0x00c3, 0x3a4b: 0x00c3, + 0x3a4c: 0x00c3, 0x3a4d: 0x0080, 0x3a50: 0x00c0, 0x3a51: 0x00c0, + 0x3a52: 0x00c0, 0x3a53: 0x00c0, 0x3a54: 0x00c0, 0x3a55: 0x00c0, 0x3a56: 0x00c0, 0x3a57: 0x00c0, + 0x3a58: 0x00c0, 0x3a59: 0x00c0, 0x3a5a: 0x00c0, 0x3a5b: 0x0080, 0x3a5c: 0x00c0, 0x3a5d: 0x0080, + 0x3a5e: 0x0080, 0x3a5f: 0x0080, 0x3a61: 0x0080, 0x3a62: 0x0080, 0x3a63: 0x0080, + 0x3a64: 0x0080, 0x3a65: 0x0080, 0x3a66: 0x0080, 0x3a67: 0x0080, 0x3a68: 0x0080, 0x3a69: 0x0080, + 0x3a6a: 0x0080, 0x3a6b: 0x0080, 0x3a6c: 0x0080, 0x3a6d: 0x0080, 0x3a6e: 0x0080, 0x3a6f: 0x0080, + 0x3a70: 0x0080, 0x3a71: 0x0080, 0x3a72: 0x0080, 0x3a73: 0x0080, 0x3a74: 0x0080, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x00c0, 0x3a81: 0x00c0, 0x3a82: 0x00c0, 0x3a83: 0x00c0, 0x3a84: 0x00c0, 0x3a85: 0x00c0, + 0x3a86: 0x00c0, 0x3a87: 0x00c0, 0x3a88: 0x00c0, 0x3a89: 0x00c0, 0x3a8a: 0x00c0, 0x3a8b: 0x00c0, + 0x3a8c: 0x00c0, 0x3a8d: 0x00c0, 0x3a8e: 0x00c0, 0x3a8f: 0x00c0, 0x3a90: 0x00c0, 0x3a91: 0x00c0, + 0x3a93: 0x00c0, 0x3a94: 0x00c0, 0x3a95: 0x00c0, 0x3a96: 0x00c0, 0x3a97: 0x00c0, + 0x3a98: 0x00c0, 0x3a99: 0x00c0, 0x3a9a: 0x00c0, 0x3a9b: 0x00c0, 0x3a9c: 0x00c0, 0x3a9d: 0x00c0, + 0x3a9e: 0x00c0, 0x3a9f: 0x00c0, 0x3aa0: 0x00c0, 0x3aa1: 0x00c0, 0x3aa2: 0x00c0, 0x3aa3: 0x00c0, + 0x3aa4: 0x00c0, 0x3aa5: 0x00c0, 0x3aa6: 0x00c0, 0x3aa7: 0x00c0, 0x3aa8: 0x00c0, 0x3aa9: 0x00c0, + 0x3aaa: 0x00c0, 0x3aab: 0x00c0, 0x3aac: 0x00c0, 0x3aad: 0x00c0, 0x3aae: 0x00c0, 0x3aaf: 0x00c3, + 0x3ab0: 0x00c3, 0x3ab1: 0x00c3, 0x3ab2: 0x00c0, 0x3ab3: 0x00c0, 0x3ab4: 0x00c3, 0x3ab5: 0x00c5, + 0x3ab6: 0x00c3, 0x3ab7: 0x00c3, 0x3ab8: 0x0080, 0x3ab9: 0x0080, 0x3aba: 0x0080, 0x3abb: 0x0080, + 0x3abc: 0x0080, 0x3abd: 0x0080, 0x3abe: 0x00c3, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x00c0, 0x3ac1: 0x00c0, 0x3ac2: 0x00c0, 0x3ac3: 0x00c0, 0x3ac4: 0x00c0, 0x3ac5: 0x00c0, + 0x3ac6: 0x00c0, 0x3ac8: 0x00c0, 0x3aca: 0x00c0, 0x3acb: 0x00c0, + 0x3acc: 0x00c0, 0x3acd: 0x00c0, 0x3acf: 0x00c0, 0x3ad0: 0x00c0, 0x3ad1: 0x00c0, + 0x3ad2: 0x00c0, 0x3ad3: 0x00c0, 0x3ad4: 0x00c0, 0x3ad5: 0x00c0, 0x3ad6: 0x00c0, 0x3ad7: 0x00c0, + 0x3ad8: 0x00c0, 0x3ad9: 0x00c0, 0x3ada: 0x00c0, 0x3adb: 0x00c0, 0x3adc: 0x00c0, 0x3add: 0x00c0, + 0x3adf: 0x00c0, 0x3ae0: 0x00c0, 0x3ae1: 0x00c0, 0x3ae2: 0x00c0, 0x3ae3: 0x00c0, + 0x3ae4: 0x00c0, 0x3ae5: 0x00c0, 0x3ae6: 0x00c0, 0x3ae7: 0x00c0, 0x3ae8: 0x00c0, 0x3ae9: 0x0080, + 0x3af0: 0x00c0, 0x3af1: 0x00c0, 0x3af2: 0x00c0, 0x3af3: 0x00c0, 0x3af4: 0x00c0, 0x3af5: 0x00c0, + 0x3af6: 0x00c0, 0x3af7: 0x00c0, 0x3af8: 0x00c0, 0x3af9: 0x00c0, 0x3afa: 0x00c0, 0x3afb: 0x00c0, + 0x3afc: 0x00c0, 0x3afd: 0x00c0, 0x3afe: 0x00c0, 0x3aff: 0x00c0, + // Block 0xec, offset 0x3b00 + 0x3b00: 0x00c0, 0x3b01: 0x00c0, 0x3b02: 0x00c0, 0x3b03: 0x00c0, 0x3b04: 0x00c0, 0x3b05: 0x00c0, + 0x3b06: 0x00c0, 0x3b07: 0x00c0, 0x3b08: 0x00c0, 0x3b09: 0x00c0, 0x3b0a: 0x00c0, 0x3b0b: 0x00c0, + 0x3b0c: 0x00c0, 0x3b0d: 0x00c0, 0x3b0e: 0x00c0, 0x3b0f: 0x00c0, 0x3b10: 0x00c0, 0x3b11: 0x00c0, + 0x3b12: 0x00c0, 0x3b13: 0x00c0, 0x3b14: 0x00c0, 0x3b15: 0x00c0, 0x3b16: 0x00c0, 0x3b17: 0x00c0, + 0x3b18: 0x00c0, 0x3b19: 0x00c0, 0x3b1a: 0x00c0, 0x3b1b: 0x00c0, 0x3b1c: 0x00c0, 0x3b1d: 0x00c0, + 0x3b1e: 0x00c0, 0x3b1f: 0x00c3, 0x3b20: 0x00c0, 0x3b21: 0x00c0, 0x3b22: 0x00c0, 0x3b23: 0x00c3, + 0x3b24: 0x00c3, 0x3b25: 0x00c3, 0x3b26: 0x00c3, 0x3b27: 0x00c3, 0x3b28: 0x00c3, 0x3b29: 0x00c3, + 0x3b2a: 0x00c6, + 0x3b30: 0x00c0, 0x3b31: 0x00c0, 0x3b32: 0x00c0, 0x3b33: 0x00c0, 0x3b34: 0x00c0, 0x3b35: 0x00c0, + 0x3b36: 0x00c0, 0x3b37: 0x00c0, 0x3b38: 0x00c0, 0x3b39: 0x00c0, + // Block 0xed, offset 0x3b40 + 0x3b40: 0x00c3, 0x3b41: 0x00c3, 0x3b42: 0x00c0, 0x3b43: 0x00c0, 0x3b45: 0x00c0, + 0x3b46: 0x00c0, 0x3b47: 0x00c0, 0x3b48: 0x00c0, 0x3b49: 0x00c0, 0x3b4a: 0x00c0, 0x3b4b: 0x00c0, + 0x3b4c: 0x00c0, 0x3b4f: 0x00c0, 0x3b50: 0x00c0, + 0x3b53: 0x00c0, 0x3b54: 0x00c0, 0x3b55: 0x00c0, 0x3b56: 0x00c0, 0x3b57: 0x00c0, + 0x3b58: 0x00c0, 0x3b59: 0x00c0, 0x3b5a: 0x00c0, 0x3b5b: 0x00c0, 0x3b5c: 0x00c0, 0x3b5d: 0x00c0, + 0x3b5e: 0x00c0, 0x3b5f: 0x00c0, 0x3b60: 0x00c0, 0x3b61: 0x00c0, 0x3b62: 0x00c0, 0x3b63: 0x00c0, + 0x3b64: 0x00c0, 0x3b65: 0x00c0, 0x3b66: 0x00c0, 0x3b67: 0x00c0, 0x3b68: 0x00c0, + 0x3b6a: 0x00c0, 0x3b6b: 0x00c0, 0x3b6c: 0x00c0, 0x3b6d: 0x00c0, 0x3b6e: 0x00c0, 0x3b6f: 0x00c0, + 0x3b70: 0x00c0, 0x3b72: 0x00c0, 0x3b73: 0x00c0, 0x3b75: 0x00c0, + 0x3b76: 0x00c0, 0x3b77: 0x00c0, 0x3b78: 0x00c0, 0x3b79: 0x00c0, + 0x3b7c: 0x00c3, 0x3b7d: 0x00c0, 0x3b7e: 0x00c0, 0x3b7f: 0x00c0, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x00c3, 0x3b81: 0x00c0, 0x3b82: 0x00c0, 0x3b83: 0x00c0, 0x3b84: 0x00c0, + 0x3b87: 0x00c0, 0x3b88: 0x00c0, 0x3b8b: 0x00c0, + 0x3b8c: 0x00c0, 0x3b8d: 0x00c5, 0x3b90: 0x00c0, + 0x3b97: 0x00c0, + 0x3b9d: 0x00c0, + 0x3b9e: 0x00c0, 0x3b9f: 0x00c0, 0x3ba0: 0x00c0, 0x3ba1: 0x00c0, 0x3ba2: 0x00c0, 0x3ba3: 0x00c0, + 0x3ba6: 0x00c3, 0x3ba7: 0x00c3, 0x3ba8: 0x00c3, 0x3ba9: 0x00c3, + 0x3baa: 0x00c3, 0x3bab: 0x00c3, 0x3bac: 0x00c3, + 0x3bb0: 0x00c3, 0x3bb1: 0x00c3, 0x3bb2: 0x00c3, 0x3bb3: 0x00c3, 0x3bb4: 0x00c3, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0x00c0, 0x3bc1: 0x00c0, 0x3bc2: 0x00c0, 0x3bc3: 0x00c0, 0x3bc4: 0x00c0, 0x3bc5: 0x00c0, + 0x3bc6: 0x00c0, 0x3bc7: 0x00c0, 0x3bc8: 0x00c0, 0x3bc9: 0x00c0, 0x3bca: 0x00c0, 0x3bcb: 0x00c0, + 0x3bcc: 0x00c0, 0x3bcd: 0x00c0, 0x3bce: 0x00c0, 0x3bcf: 0x00c0, 0x3bd0: 0x00c0, 0x3bd1: 0x00c0, + 0x3bd2: 0x00c0, 0x3bd3: 0x00c0, 0x3bd4: 0x00c0, 0x3bd5: 0x00c0, 0x3bd6: 0x00c0, 0x3bd7: 0x00c0, + 0x3bd8: 0x00c0, 0x3bd9: 0x00c0, 0x3bda: 0x00c0, 0x3bdb: 0x00c0, 0x3bdc: 0x00c0, 0x3bdd: 0x00c0, + 0x3bde: 0x00c0, 0x3bdf: 0x00c0, 0x3be0: 0x00c0, 0x3be1: 0x00c0, 0x3be2: 0x00c0, 0x3be3: 0x00c0, + 0x3be4: 0x00c0, 0x3be5: 0x00c0, 0x3be6: 0x00c0, 0x3be7: 0x00c0, 0x3be8: 0x00c0, 0x3be9: 0x00c0, + 0x3bea: 0x00c0, 0x3beb: 0x00c0, 0x3bec: 0x00c0, 0x3bed: 0x00c0, 0x3bee: 0x00c0, 0x3bef: 0x00c0, + 0x3bf0: 0x00c0, 0x3bf1: 0x00c0, 0x3bf2: 0x00c0, 0x3bf3: 0x00c0, 0x3bf4: 0x00c0, 0x3bf5: 0x00c0, + 0x3bf6: 0x00c0, 0x3bf7: 0x00c0, 0x3bf8: 0x00c3, 0x3bf9: 0x00c3, 0x3bfa: 0x00c3, 0x3bfb: 0x00c3, + 0x3bfc: 0x00c3, 0x3bfd: 0x00c3, 0x3bfe: 0x00c3, 0x3bff: 0x00c3, + // Block 0xf0, offset 0x3c00 + 0x3c00: 0x00c0, 0x3c01: 0x00c0, 0x3c02: 0x00c6, 0x3c03: 0x00c3, 0x3c04: 0x00c3, 0x3c05: 0x00c0, + 0x3c06: 0x00c3, 0x3c07: 0x00c0, 0x3c08: 0x00c0, 0x3c09: 0x00c0, 0x3c0a: 0x00c0, 0x3c0b: 0x0080, + 0x3c0c: 0x0080, 0x3c0d: 0x0080, 0x3c0e: 0x0080, 0x3c0f: 0x0080, 0x3c10: 0x00c0, 0x3c11: 0x00c0, + 0x3c12: 0x00c0, 0x3c13: 0x00c0, 0x3c14: 0x00c0, 0x3c15: 0x00c0, 0x3c16: 0x00c0, 0x3c17: 0x00c0, + 0x3c18: 0x00c0, 0x3c19: 0x00c0, 0x3c1b: 0x0080, 0x3c1d: 0x0080, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0x00c0, 0x3c41: 0x00c0, 0x3c42: 0x00c0, 0x3c43: 0x00c0, 0x3c44: 0x00c0, 0x3c45: 0x00c0, + 0x3c46: 0x00c0, 0x3c47: 0x00c0, 0x3c48: 0x00c0, 0x3c49: 0x00c0, 0x3c4a: 0x00c0, 0x3c4b: 0x00c0, + 0x3c4c: 0x00c0, 0x3c4d: 0x00c0, 0x3c4e: 0x00c0, 0x3c4f: 0x00c0, 0x3c50: 0x00c0, 0x3c51: 0x00c0, + 0x3c52: 0x00c0, 0x3c53: 0x00c0, 0x3c54: 0x00c0, 0x3c55: 0x00c0, 0x3c56: 0x00c0, 0x3c57: 0x00c0, + 0x3c58: 0x00c0, 0x3c59: 0x00c0, 0x3c5a: 0x00c0, 0x3c5b: 0x00c0, 0x3c5c: 0x00c0, 0x3c5d: 0x00c0, + 0x3c5e: 0x00c0, 0x3c5f: 0x00c0, 0x3c60: 0x00c0, 0x3c61: 0x00c0, 0x3c62: 0x00c0, 0x3c63: 0x00c0, + 0x3c64: 0x00c0, 0x3c65: 0x00c0, 0x3c66: 0x00c0, 0x3c67: 0x00c0, 0x3c68: 0x00c0, 0x3c69: 0x00c0, + 0x3c6a: 0x00c0, 0x3c6b: 0x00c0, 0x3c6c: 0x00c0, 0x3c6d: 0x00c0, 0x3c6e: 0x00c0, 0x3c6f: 0x00c0, + 0x3c70: 0x00c0, 0x3c71: 0x00c0, 0x3c72: 0x00c0, 0x3c73: 0x00c3, 0x3c74: 0x00c3, 0x3c75: 0x00c3, + 0x3c76: 0x00c3, 0x3c77: 0x00c3, 0x3c78: 0x00c3, 0x3c79: 0x00c0, 0x3c7a: 0x00c3, 0x3c7b: 0x00c0, + 0x3c7c: 0x00c0, 0x3c7d: 0x00c0, 0x3c7e: 0x00c0, 0x3c7f: 0x00c3, + // Block 0xf2, offset 0x3c80 + 0x3c80: 0x00c3, 0x3c81: 0x00c0, 0x3c82: 0x00c6, 0x3c83: 0x00c3, 0x3c84: 0x00c0, 0x3c85: 0x00c0, + 0x3c86: 0x0080, 0x3c87: 0x00c0, + 0x3c90: 0x00c0, 0x3c91: 0x00c0, + 0x3c92: 0x00c0, 0x3c93: 0x00c0, 0x3c94: 0x00c0, 0x3c95: 0x00c0, 0x3c96: 0x00c0, 0x3c97: 0x00c0, + 0x3c98: 0x00c0, 0x3c99: 0x00c0, + // Block 0xf3, offset 0x3cc0 + 0x3cc0: 0x00c0, 0x3cc1: 0x00c0, 0x3cc2: 0x00c0, 0x3cc3: 0x00c0, 0x3cc4: 0x00c0, 0x3cc5: 0x00c0, + 0x3cc6: 0x00c0, 0x3cc7: 0x00c0, 0x3cc8: 0x00c0, 0x3cc9: 0x00c0, 0x3cca: 0x00c0, 0x3ccb: 0x00c0, + 0x3ccc: 0x00c0, 0x3ccd: 0x00c0, 0x3cce: 0x00c0, 0x3ccf: 0x00c0, 0x3cd0: 0x00c0, 0x3cd1: 0x00c0, + 0x3cd2: 0x00c0, 0x3cd3: 0x00c0, 0x3cd4: 0x00c0, 0x3cd5: 0x00c0, 0x3cd6: 0x00c0, 0x3cd7: 0x00c0, + 0x3cd8: 0x00c0, 0x3cd9: 0x00c0, 0x3cda: 0x00c0, 0x3cdb: 0x00c0, 0x3cdc: 0x00c0, 0x3cdd: 0x00c0, + 0x3cde: 0x00c0, 0x3cdf: 0x00c0, 0x3ce0: 0x00c0, 0x3ce1: 0x00c0, 0x3ce2: 0x00c0, 0x3ce3: 0x00c0, + 0x3ce4: 0x00c0, 0x3ce5: 0x00c0, 0x3ce6: 0x00c0, 0x3ce7: 0x00c0, 0x3ce8: 0x00c0, 0x3ce9: 0x00c0, + 0x3cea: 0x00c0, 0x3ceb: 0x00c0, 0x3cec: 0x00c0, 0x3ced: 0x00c0, 0x3cee: 0x00c0, 0x3cef: 0x00c0, + 0x3cf0: 0x00c0, 0x3cf1: 0x00c0, 0x3cf2: 0x00c3, 0x3cf3: 0x00c3, 0x3cf4: 0x00c3, 0x3cf5: 0x00c3, + 0x3cf8: 0x00c0, 0x3cf9: 0x00c0, 0x3cfa: 0x00c0, 0x3cfb: 0x00c0, + 0x3cfc: 0x00c3, 0x3cfd: 0x00c3, 0x3cfe: 0x00c0, 0x3cff: 0x00c6, + // Block 0xf4, offset 0x3d00 + 0x3d00: 0x00c3, 0x3d01: 0x0080, 0x3d02: 0x0080, 0x3d03: 0x0080, 0x3d04: 0x0080, 0x3d05: 0x0080, + 0x3d06: 0x0080, 0x3d07: 0x0080, 0x3d08: 0x0080, 0x3d09: 0x0080, 0x3d0a: 0x0080, 0x3d0b: 0x0080, + 0x3d0c: 0x0080, 0x3d0d: 0x0080, 0x3d0e: 0x0080, 0x3d0f: 0x0080, 0x3d10: 0x0080, 0x3d11: 0x0080, + 0x3d12: 0x0080, 0x3d13: 0x0080, 0x3d14: 0x0080, 0x3d15: 0x0080, 0x3d16: 0x0080, 0x3d17: 0x0080, + 0x3d18: 0x00c0, 0x3d19: 0x00c0, 0x3d1a: 0x00c0, 0x3d1b: 0x00c0, 0x3d1c: 0x00c3, 0x3d1d: 0x00c3, + // Block 0xf5, offset 0x3d40 + 0x3d40: 0x00c0, 0x3d41: 0x00c0, 0x3d42: 0x00c0, 0x3d43: 0x00c0, 0x3d44: 0x00c0, 0x3d45: 0x00c0, + 0x3d46: 0x00c0, 0x3d47: 0x00c0, 0x3d48: 0x00c0, 0x3d49: 0x00c0, 0x3d4a: 0x00c0, 0x3d4b: 0x00c0, + 0x3d4c: 0x00c0, 0x3d4d: 0x00c0, 0x3d4e: 0x00c0, 0x3d4f: 0x00c0, 0x3d50: 0x00c0, 0x3d51: 0x00c0, + 0x3d52: 0x00c0, 0x3d53: 0x00c0, 0x3d54: 0x00c0, 0x3d55: 0x00c0, 0x3d56: 0x00c0, 0x3d57: 0x00c0, + 0x3d58: 0x00c0, 0x3d59: 0x00c0, 0x3d5a: 0x00c0, 0x3d5b: 0x00c0, 0x3d5c: 0x00c0, 0x3d5d: 0x00c0, + 0x3d5e: 0x00c0, 0x3d5f: 0x00c0, 0x3d60: 0x00c0, 0x3d61: 0x00c0, 0x3d62: 0x00c0, 0x3d63: 0x00c0, + 0x3d64: 0x00c0, 0x3d65: 0x00c0, 0x3d66: 0x00c0, 0x3d67: 0x00c0, 0x3d68: 0x00c0, 0x3d69: 0x00c0, + 0x3d6a: 0x00c0, 0x3d6b: 0x00c0, 0x3d6c: 0x00c0, 0x3d6d: 0x00c0, 0x3d6e: 0x00c0, 0x3d6f: 0x00c0, + 0x3d70: 0x00c0, 0x3d71: 0x00c0, 0x3d72: 0x00c0, 0x3d73: 0x00c3, 0x3d74: 0x00c3, 0x3d75: 0x00c3, + 0x3d76: 0x00c3, 0x3d77: 0x00c3, 0x3d78: 0x00c3, 0x3d79: 0x00c3, 0x3d7a: 0x00c3, 0x3d7b: 0x00c0, + 0x3d7c: 0x00c0, 0x3d7d: 0x00c3, 0x3d7e: 0x00c0, 0x3d7f: 0x00c6, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0x00c3, 0x3d81: 0x0080, 0x3d82: 0x0080, 0x3d83: 0x0080, 0x3d84: 0x00c0, + 0x3d90: 0x00c0, 0x3d91: 0x00c0, + 0x3d92: 0x00c0, 0x3d93: 0x00c0, 0x3d94: 0x00c0, 0x3d95: 0x00c0, 0x3d96: 0x00c0, 0x3d97: 0x00c0, + 0x3d98: 0x00c0, 0x3d99: 0x00c0, + 0x3da0: 0x0080, 0x3da1: 0x0080, 0x3da2: 0x0080, 0x3da3: 0x0080, + 0x3da4: 0x0080, 0x3da5: 0x0080, 0x3da6: 0x0080, 0x3da7: 0x0080, 0x3da8: 0x0080, 0x3da9: 0x0080, + 0x3daa: 0x0080, 0x3dab: 0x0080, 0x3dac: 0x0080, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0x00c0, 0x3dc1: 0x00c0, 0x3dc2: 0x00c0, 0x3dc3: 0x00c0, 0x3dc4: 0x00c0, 0x3dc5: 0x00c0, + 0x3dc6: 0x00c0, 0x3dc7: 0x00c0, 0x3dc8: 0x00c0, 0x3dc9: 0x00c0, 0x3dca: 0x00c0, 0x3dcb: 0x00c0, + 0x3dcc: 0x00c0, 0x3dcd: 0x00c0, 0x3dce: 0x00c0, 0x3dcf: 0x00c0, 0x3dd0: 0x00c0, 0x3dd1: 0x00c0, + 0x3dd2: 0x00c0, 0x3dd3: 0x00c0, 0x3dd4: 0x00c0, 0x3dd5: 0x00c0, 0x3dd6: 0x00c0, 0x3dd7: 0x00c0, + 0x3dd8: 0x00c0, 0x3dd9: 0x00c0, 0x3dda: 0x00c0, 0x3ddb: 0x00c0, 0x3ddc: 0x00c0, 0x3ddd: 0x00c0, + 0x3dde: 0x00c0, 0x3ddf: 0x00c0, 0x3de0: 0x00c0, 0x3de1: 0x00c0, 0x3de2: 0x00c0, 0x3de3: 0x00c0, + 0x3de4: 0x00c0, 0x3de5: 0x00c0, 0x3de6: 0x00c0, 0x3de7: 0x00c0, 0x3de8: 0x00c0, 0x3de9: 0x00c0, + 0x3dea: 0x00c0, 0x3deb: 0x00c3, 0x3dec: 0x00c0, 0x3ded: 0x00c3, 0x3dee: 0x00c0, 0x3def: 0x00c0, + 0x3df0: 0x00c3, 0x3df1: 0x00c3, 0x3df2: 0x00c3, 0x3df3: 0x00c3, 0x3df4: 0x00c3, 0x3df5: 0x00c3, + 0x3df6: 0x00c5, 0x3df7: 0x00c3, + // Block 0xf8, offset 0x3e00 + 0x3e00: 0x00c0, 0x3e01: 0x00c0, 0x3e02: 0x00c0, 0x3e03: 0x00c0, 0x3e04: 0x00c0, 0x3e05: 0x00c0, + 0x3e06: 0x00c0, 0x3e07: 0x00c0, 0x3e08: 0x00c0, 0x3e09: 0x00c0, + // Block 0xf9, offset 0x3e40 + 0x3e40: 0x00c0, 0x3e41: 0x00c0, 0x3e42: 0x00c0, 0x3e43: 0x00c0, 0x3e44: 0x00c0, 0x3e45: 0x00c0, + 0x3e46: 0x00c0, 0x3e47: 0x00c0, 0x3e48: 0x00c0, 0x3e49: 0x00c0, 0x3e4a: 0x00c0, 0x3e4b: 0x00c0, + 0x3e4c: 0x00c0, 0x3e4d: 0x00c0, 0x3e4e: 0x00c0, 0x3e4f: 0x00c0, 0x3e50: 0x00c0, 0x3e51: 0x00c0, + 0x3e52: 0x00c0, 0x3e53: 0x00c0, 0x3e54: 0x00c0, 0x3e55: 0x00c0, 0x3e56: 0x00c0, 0x3e57: 0x00c0, + 0x3e58: 0x00c0, 0x3e59: 0x00c0, 0x3e5d: 0x00c3, + 0x3e5e: 0x00c3, 0x3e5f: 0x00c3, 0x3e60: 0x00c0, 0x3e61: 0x00c0, 0x3e62: 0x00c3, 0x3e63: 0x00c3, + 0x3e64: 0x00c3, 0x3e65: 0x00c3, 0x3e66: 0x00c0, 0x3e67: 0x00c3, 0x3e68: 0x00c3, 0x3e69: 0x00c3, + 0x3e6a: 0x00c3, 0x3e6b: 0x00c6, + 0x3e70: 0x00c0, 0x3e71: 0x00c0, 0x3e72: 0x00c0, 0x3e73: 0x00c0, 0x3e74: 0x00c0, 0x3e75: 0x00c0, + 0x3e76: 0x00c0, 0x3e77: 0x00c0, 0x3e78: 0x00c0, 0x3e79: 0x00c0, 0x3e7a: 0x0080, 0x3e7b: 0x0080, + 0x3e7c: 0x0080, 0x3e7d: 0x0080, 0x3e7e: 0x0080, 0x3e7f: 0x0080, + // Block 0xfa, offset 0x3e80 + 0x3ea0: 0x00c0, 0x3ea1: 0x00c0, 0x3ea2: 0x00c0, 0x3ea3: 0x00c0, + 0x3ea4: 0x00c0, 0x3ea5: 0x00c0, 0x3ea6: 0x00c0, 0x3ea7: 0x00c0, 0x3ea8: 0x00c0, 0x3ea9: 0x00c0, + 0x3eaa: 0x00c0, 0x3eab: 0x00c0, 0x3eac: 0x00c0, 0x3ead: 0x00c0, 0x3eae: 0x00c0, 0x3eaf: 0x00c0, + 0x3eb0: 0x00c0, 0x3eb1: 0x00c0, 0x3eb2: 0x00c0, 0x3eb3: 0x00c0, 0x3eb4: 0x00c0, 0x3eb5: 0x00c0, + 0x3eb6: 0x00c0, 0x3eb7: 0x00c0, 0x3eb8: 0x00c0, 0x3eb9: 0x00c0, 0x3eba: 0x00c0, 0x3ebb: 0x00c0, + 0x3ebc: 0x00c0, 0x3ebd: 0x00c0, 0x3ebe: 0x00c0, 0x3ebf: 0x00c0, + // Block 0xfb, offset 0x3ec0 + 0x3ec0: 0x00c0, 0x3ec1: 0x00c0, 0x3ec2: 0x00c0, 0x3ec3: 0x00c0, 0x3ec4: 0x00c0, 0x3ec5: 0x00c0, + 0x3ec6: 0x00c0, 0x3ec7: 0x00c0, 0x3ec8: 0x00c0, 0x3ec9: 0x00c0, 0x3eca: 0x00c0, 0x3ecb: 0x00c0, + 0x3ecc: 0x00c0, 0x3ecd: 0x00c0, 0x3ece: 0x00c0, 0x3ecf: 0x00c0, 0x3ed0: 0x00c0, 0x3ed1: 0x00c0, + 0x3ed2: 0x00c0, 0x3ed3: 0x00c0, 0x3ed4: 0x00c0, 0x3ed5: 0x00c0, 0x3ed6: 0x00c0, 0x3ed7: 0x00c0, + 0x3ed8: 0x00c0, 0x3ed9: 0x00c0, 0x3eda: 0x00c0, 0x3edb: 0x00c0, 0x3edc: 0x00c0, 0x3edd: 0x00c0, + 0x3ede: 0x00c0, 0x3edf: 0x00c0, 0x3ee0: 0x00c0, 0x3ee1: 0x00c0, 0x3ee2: 0x00c0, 0x3ee3: 0x00c0, + 0x3ee4: 0x00c0, 0x3ee5: 0x00c0, 0x3ee6: 0x00c0, 0x3ee7: 0x00c0, 0x3ee8: 0x00c0, 0x3ee9: 0x00c0, + 0x3eea: 0x0080, 0x3eeb: 0x0080, 0x3eec: 0x0080, 0x3eed: 0x0080, 0x3eee: 0x0080, 0x3eef: 0x0080, + 0x3ef0: 0x0080, 0x3ef1: 0x0080, 0x3ef2: 0x0080, + 0x3eff: 0x00c0, + // Block 0xfc, offset 0x3f00 + 0x3f00: 0x00c0, 0x3f01: 0x00c0, 0x3f02: 0x00c0, 0x3f03: 0x00c0, 0x3f04: 0x00c0, 0x3f05: 0x00c0, + 0x3f06: 0x00c0, 0x3f07: 0x00c0, 0x3f08: 0x00c0, 0x3f09: 0x00c0, 0x3f0a: 0x00c0, 0x3f0b: 0x00c0, + 0x3f0c: 0x00c0, 0x3f0d: 0x00c0, 0x3f0e: 0x00c0, 0x3f0f: 0x00c0, 0x3f10: 0x00c0, 0x3f11: 0x00c0, + 0x3f12: 0x00c0, 0x3f13: 0x00c0, 0x3f14: 0x00c0, 0x3f15: 0x00c0, 0x3f16: 0x00c0, 0x3f17: 0x00c0, + 0x3f18: 0x00c0, 0x3f19: 0x00c0, 0x3f1a: 0x00c0, 0x3f1b: 0x00c0, 0x3f1c: 0x00c0, 0x3f1d: 0x00c0, + 0x3f1e: 0x00c0, 0x3f1f: 0x00c0, 0x3f20: 0x00c0, 0x3f21: 0x00c0, 0x3f22: 0x00c0, 0x3f23: 0x00c0, + 0x3f24: 0x00c0, 0x3f25: 0x00c0, 0x3f26: 0x00c0, 0x3f27: 0x00c0, 0x3f28: 0x00c0, 0x3f29: 0x00c0, + 0x3f2a: 0x00c0, 0x3f2b: 0x00c0, 0x3f2c: 0x00c0, 0x3f2d: 0x00c0, 0x3f2e: 0x00c0, 0x3f2f: 0x00c0, + 0x3f30: 0x00c0, 0x3f31: 0x00c0, 0x3f32: 0x00c0, 0x3f33: 0x00c0, 0x3f34: 0x00c0, 0x3f35: 0x00c0, + 0x3f36: 0x00c0, 0x3f37: 0x00c0, 0x3f38: 0x00c0, + // Block 0xfd, offset 0x3f40 + 0x3f40: 0x00c0, 0x3f41: 0x00c0, 0x3f42: 0x00c0, 0x3f43: 0x00c0, 0x3f44: 0x00c0, 0x3f45: 0x00c0, + 0x3f46: 0x00c0, 0x3f47: 0x00c0, 0x3f48: 0x00c0, 0x3f4a: 0x00c0, 0x3f4b: 0x00c0, + 0x3f4c: 0x00c0, 0x3f4d: 0x00c0, 0x3f4e: 0x00c0, 0x3f4f: 0x00c0, 0x3f50: 0x00c0, 0x3f51: 0x00c0, + 0x3f52: 0x00c0, 0x3f53: 0x00c0, 0x3f54: 0x00c0, 0x3f55: 0x00c0, 0x3f56: 0x00c0, 0x3f57: 0x00c0, + 0x3f58: 0x00c0, 0x3f59: 0x00c0, 0x3f5a: 0x00c0, 0x3f5b: 0x00c0, 0x3f5c: 0x00c0, 0x3f5d: 0x00c0, + 0x3f5e: 0x00c0, 0x3f5f: 0x00c0, 0x3f60: 0x00c0, 0x3f61: 0x00c0, 0x3f62: 0x00c0, 0x3f63: 0x00c0, + 0x3f64: 0x00c0, 0x3f65: 0x00c0, 0x3f66: 0x00c0, 0x3f67: 0x00c0, 0x3f68: 0x00c0, 0x3f69: 0x00c0, + 0x3f6a: 0x00c0, 0x3f6b: 0x00c0, 0x3f6c: 0x00c0, 0x3f6d: 0x00c0, 0x3f6e: 0x00c0, 0x3f6f: 0x00c0, + 0x3f70: 0x00c3, 0x3f71: 0x00c3, 0x3f72: 0x00c3, 0x3f73: 0x00c3, 0x3f74: 0x00c3, 0x3f75: 0x00c3, + 0x3f76: 0x00c3, 0x3f78: 0x00c3, 0x3f79: 0x00c3, 0x3f7a: 0x00c3, 0x3f7b: 0x00c3, + 0x3f7c: 0x00c3, 0x3f7d: 0x00c3, 0x3f7e: 0x00c0, 0x3f7f: 0x00c6, + // Block 0xfe, offset 0x3f80 + 0x3f80: 0x00c0, 0x3f81: 0x0080, 0x3f82: 0x0080, 0x3f83: 0x0080, 0x3f84: 0x0080, 0x3f85: 0x0080, + 0x3f90: 0x00c0, 0x3f91: 0x00c0, + 0x3f92: 0x00c0, 0x3f93: 0x00c0, 0x3f94: 0x00c0, 0x3f95: 0x00c0, 0x3f96: 0x00c0, 0x3f97: 0x00c0, + 0x3f98: 0x00c0, 0x3f99: 0x00c0, 0x3f9a: 0x0080, 0x3f9b: 0x0080, 0x3f9c: 0x0080, 0x3f9d: 0x0080, + 0x3f9e: 0x0080, 0x3f9f: 0x0080, 0x3fa0: 0x0080, 0x3fa1: 0x0080, 0x3fa2: 0x0080, 0x3fa3: 0x0080, + 0x3fa4: 0x0080, 0x3fa5: 0x0080, 0x3fa6: 0x0080, 0x3fa7: 0x0080, 0x3fa8: 0x0080, 0x3fa9: 0x0080, + 0x3faa: 0x0080, 0x3fab: 0x0080, 0x3fac: 0x0080, + 0x3fb0: 0x0080, 0x3fb1: 0x0080, 0x3fb2: 0x00c0, 0x3fb3: 0x00c0, 0x3fb4: 0x00c0, 0x3fb5: 0x00c0, + 0x3fb6: 0x00c0, 0x3fb7: 0x00c0, 0x3fb8: 0x00c0, 0x3fb9: 0x00c0, 0x3fba: 0x00c0, 0x3fbb: 0x00c0, + 0x3fbc: 0x00c0, 0x3fbd: 0x00c0, 0x3fbe: 0x00c0, 0x3fbf: 0x00c0, + // Block 0xff, offset 0x3fc0 + 0x3fc0: 0x00c0, 0x3fc1: 0x00c0, 0x3fc2: 0x00c0, 0x3fc3: 0x00c0, 0x3fc4: 0x00c0, 0x3fc5: 0x00c0, + 0x3fc6: 0x00c0, 0x3fc7: 0x00c0, 0x3fc8: 0x00c0, 0x3fc9: 0x00c0, 0x3fca: 0x00c0, 0x3fcb: 0x00c0, + 0x3fcc: 0x00c0, 0x3fcd: 0x00c0, 0x3fce: 0x00c0, 0x3fcf: 0x00c0, + 0x3fd2: 0x00c3, 0x3fd3: 0x00c3, 0x3fd4: 0x00c3, 0x3fd5: 0x00c3, 0x3fd6: 0x00c3, 0x3fd7: 0x00c3, + 0x3fd8: 0x00c3, 0x3fd9: 0x00c3, 0x3fda: 0x00c3, 0x3fdb: 0x00c3, 0x3fdc: 0x00c3, 0x3fdd: 0x00c3, + 0x3fde: 0x00c3, 0x3fdf: 0x00c3, 0x3fe0: 0x00c3, 0x3fe1: 0x00c3, 0x3fe2: 0x00c3, 0x3fe3: 0x00c3, + 0x3fe4: 0x00c3, 0x3fe5: 0x00c3, 0x3fe6: 0x00c3, 0x3fe7: 0x00c3, 0x3fe9: 0x00c0, + 0x3fea: 0x00c3, 0x3feb: 0x00c3, 0x3fec: 0x00c3, 0x3fed: 0x00c3, 0x3fee: 0x00c3, 0x3fef: 0x00c3, + 0x3ff0: 0x00c3, 0x3ff1: 0x00c0, 0x3ff2: 0x00c3, 0x3ff3: 0x00c3, 0x3ff4: 0x00c0, 0x3ff5: 0x00c3, + 0x3ff6: 0x00c3, + // Block 0x100, offset 0x4000 + 0x4000: 0x00c0, 0x4001: 0x00c0, 0x4002: 0x00c0, 0x4003: 0x00c0, 0x4004: 0x00c0, 0x4005: 0x00c0, + 0x4006: 0x00c0, 0x4007: 0x00c0, 0x4008: 0x00c0, 0x4009: 0x00c0, 0x400a: 0x00c0, 0x400b: 0x00c0, + 0x400c: 0x00c0, 0x400d: 0x00c0, 0x400e: 0x00c0, 0x400f: 0x00c0, 0x4010: 0x00c0, 0x4011: 0x00c0, + 0x4012: 0x00c0, 0x4013: 0x00c0, 0x4014: 0x00c0, 0x4015: 0x00c0, 0x4016: 0x00c0, 0x4017: 0x00c0, + 0x4018: 0x00c0, 0x4019: 0x00c0, + // Block 0x101, offset 0x4040 + 0x4040: 0x0080, 0x4041: 0x0080, 0x4042: 0x0080, 0x4043: 0x0080, 0x4044: 0x0080, 0x4045: 0x0080, + 0x4046: 0x0080, 0x4047: 0x0080, 0x4048: 0x0080, 0x4049: 0x0080, 0x404a: 0x0080, 0x404b: 0x0080, + 0x404c: 0x0080, 0x404d: 0x0080, 0x404e: 0x0080, 0x404f: 0x0080, 0x4050: 0x0080, 0x4051: 0x0080, + 0x4052: 0x0080, 0x4053: 0x0080, 0x4054: 0x0080, 0x4055: 0x0080, 0x4056: 0x0080, 0x4057: 0x0080, + 0x4058: 0x0080, 0x4059: 0x0080, 0x405a: 0x0080, 0x405b: 0x0080, 0x405c: 0x0080, 0x405d: 0x0080, + 0x405e: 0x0080, 0x405f: 0x0080, 0x4060: 0x0080, 0x4061: 0x0080, 0x4062: 0x0080, 0x4063: 0x0080, + 0x4064: 0x0080, 0x4065: 0x0080, 0x4066: 0x0080, 0x4067: 0x0080, 0x4068: 0x0080, 0x4069: 0x0080, + 0x406a: 0x0080, 0x406b: 0x0080, 0x406c: 0x0080, 0x406d: 0x0080, 0x406e: 0x0080, + 0x4070: 0x0080, 0x4071: 0x0080, 0x4072: 0x0080, 0x4073: 0x0080, 0x4074: 0x0080, + // Block 0x102, offset 0x4080 + 0x4080: 0x00c0, 0x4081: 0x00c0, 0x4082: 0x00c0, 0x4083: 0x00c0, + // Block 0x103, offset 0x40c0 + 0x40c0: 0x00c0, 0x40c1: 0x00c0, 0x40c2: 0x00c0, 0x40c3: 0x00c0, 0x40c4: 0x00c0, 0x40c5: 0x00c0, + 0x40c6: 0x00c0, 0x40c7: 0x00c0, 0x40c8: 0x00c0, 0x40c9: 0x00c0, 0x40ca: 0x00c0, 0x40cb: 0x00c0, + 0x40cc: 0x00c0, 0x40cd: 0x00c0, 0x40ce: 0x00c0, 0x40cf: 0x00c0, 0x40d0: 0x00c0, 0x40d1: 0x00c0, + 0x40d2: 0x00c0, 0x40d3: 0x00c0, 0x40d4: 0x00c0, 0x40d5: 0x00c0, 0x40d6: 0x00c0, 0x40d7: 0x00c0, + 0x40d8: 0x00c0, 0x40d9: 0x00c0, 0x40da: 0x00c0, 0x40db: 0x00c0, 0x40dc: 0x00c0, 0x40dd: 0x00c0, + 0x40de: 0x00c0, 0x40df: 0x00c0, 0x40e0: 0x00c0, 0x40e1: 0x00c0, 0x40e2: 0x00c0, 0x40e3: 0x00c0, + 0x40e4: 0x00c0, 0x40e5: 0x00c0, 0x40e6: 0x00c0, 0x40e7: 0x00c0, 0x40e8: 0x00c0, 0x40e9: 0x00c0, + 0x40ea: 0x00c0, 0x40eb: 0x00c0, 0x40ec: 0x00c0, 0x40ed: 0x00c0, 0x40ee: 0x00c0, + // Block 0x104, offset 0x4100 + 0x4100: 0x00c0, 0x4101: 0x00c0, 0x4102: 0x00c0, 0x4103: 0x00c0, 0x4104: 0x00c0, 0x4105: 0x00c0, + 0x4106: 0x00c0, + // Block 0x105, offset 0x4140 + 0x4140: 0x00c0, 0x4141: 0x00c0, 0x4142: 0x00c0, 0x4143: 0x00c0, 0x4144: 0x00c0, 0x4145: 0x00c0, + 0x4146: 0x00c0, 0x4147: 0x00c0, 0x4148: 0x00c0, 0x4149: 0x00c0, 0x414a: 0x00c0, 0x414b: 0x00c0, + 0x414c: 0x00c0, 0x414d: 0x00c0, 0x414e: 0x00c0, 0x414f: 0x00c0, 0x4150: 0x00c0, 0x4151: 0x00c0, + 0x4152: 0x00c0, 0x4153: 0x00c0, 0x4154: 0x00c0, 0x4155: 0x00c0, 0x4156: 0x00c0, 0x4157: 0x00c0, + 0x4158: 0x00c0, 0x4159: 0x00c0, 0x415a: 0x00c0, 0x415b: 0x00c0, 0x415c: 0x00c0, 0x415d: 0x00c0, + 0x415e: 0x00c0, 0x4160: 0x00c0, 0x4161: 0x00c0, 0x4162: 0x00c0, 0x4163: 0x00c0, + 0x4164: 0x00c0, 0x4165: 0x00c0, 0x4166: 0x00c0, 0x4167: 0x00c0, 0x4168: 0x00c0, 0x4169: 0x00c0, + 0x416e: 0x0080, 0x416f: 0x0080, + // Block 0x106, offset 0x4180 + 0x4190: 0x00c0, 0x4191: 0x00c0, + 0x4192: 0x00c0, 0x4193: 0x00c0, 0x4194: 0x00c0, 0x4195: 0x00c0, 0x4196: 0x00c0, 0x4197: 0x00c0, + 0x4198: 0x00c0, 0x4199: 0x00c0, 0x419a: 0x00c0, 0x419b: 0x00c0, 0x419c: 0x00c0, 0x419d: 0x00c0, + 0x419e: 0x00c0, 0x419f: 0x00c0, 0x41a0: 0x00c0, 0x41a1: 0x00c0, 0x41a2: 0x00c0, 0x41a3: 0x00c0, + 0x41a4: 0x00c0, 0x41a5: 0x00c0, 0x41a6: 0x00c0, 0x41a7: 0x00c0, 0x41a8: 0x00c0, 0x41a9: 0x00c0, + 0x41aa: 0x00c0, 0x41ab: 0x00c0, 0x41ac: 0x00c0, 0x41ad: 0x00c0, + 0x41b0: 0x00c3, 0x41b1: 0x00c3, 0x41b2: 0x00c3, 0x41b3: 0x00c3, 0x41b4: 0x00c3, 0x41b5: 0x0080, + // Block 0x107, offset 0x41c0 + 0x41c0: 0x00c0, 0x41c1: 0x00c0, 0x41c2: 0x00c0, 0x41c3: 0x00c0, 0x41c4: 0x00c0, 0x41c5: 0x00c0, + 0x41c6: 0x00c0, 0x41c7: 0x00c0, 0x41c8: 0x00c0, 0x41c9: 0x00c0, 0x41ca: 0x00c0, 0x41cb: 0x00c0, + 0x41cc: 0x00c0, 0x41cd: 0x00c0, 0x41ce: 0x00c0, 0x41cf: 0x00c0, 0x41d0: 0x00c0, 0x41d1: 0x00c0, + 0x41d2: 0x00c0, 0x41d3: 0x00c0, 0x41d4: 0x00c0, 0x41d5: 0x00c0, 0x41d6: 0x00c0, 0x41d7: 0x00c0, + 0x41d8: 0x00c0, 0x41d9: 0x00c0, 0x41da: 0x00c0, 0x41db: 0x00c0, 0x41dc: 0x00c0, 0x41dd: 0x00c0, + 0x41de: 0x00c0, 0x41df: 0x00c0, 0x41e0: 0x00c0, 0x41e1: 0x00c0, 0x41e2: 0x00c0, 0x41e3: 0x00c0, + 0x41e4: 0x00c0, 0x41e5: 0x00c0, 0x41e6: 0x00c0, 0x41e7: 0x00c0, 0x41e8: 0x00c0, 0x41e9: 0x00c0, + 0x41ea: 0x00c0, 0x41eb: 0x00c0, 0x41ec: 0x00c0, 0x41ed: 0x00c0, 0x41ee: 0x00c0, 0x41ef: 0x00c0, + 0x41f0: 0x00c3, 0x41f1: 0x00c3, 0x41f2: 0x00c3, 0x41f3: 0x00c3, 0x41f4: 0x00c3, 0x41f5: 0x00c3, + 0x41f6: 0x00c3, 0x41f7: 0x0080, 0x41f8: 0x0080, 0x41f9: 0x0080, 0x41fa: 0x0080, 0x41fb: 0x0080, + 0x41fc: 0x0080, 0x41fd: 0x0080, 0x41fe: 0x0080, 0x41ff: 0x0080, + // Block 0x108, offset 0x4200 + 0x4200: 0x00c0, 0x4201: 0x00c0, 0x4202: 0x00c0, 0x4203: 0x00c0, 0x4204: 0x0080, 0x4205: 0x0080, + 0x4210: 0x00c0, 0x4211: 0x00c0, + 0x4212: 0x00c0, 0x4213: 0x00c0, 0x4214: 0x00c0, 0x4215: 0x00c0, 0x4216: 0x00c0, 0x4217: 0x00c0, + 0x4218: 0x00c0, 0x4219: 0x00c0, 0x421b: 0x0080, 0x421c: 0x0080, 0x421d: 0x0080, + 0x421e: 0x0080, 0x421f: 0x0080, 0x4220: 0x0080, 0x4221: 0x0080, 0x4223: 0x00c0, + 0x4224: 0x00c0, 0x4225: 0x00c0, 0x4226: 0x00c0, 0x4227: 0x00c0, 0x4228: 0x00c0, 0x4229: 0x00c0, + 0x422a: 0x00c0, 0x422b: 0x00c0, 0x422c: 0x00c0, 0x422d: 0x00c0, 0x422e: 0x00c0, 0x422f: 0x00c0, + 0x4230: 0x00c0, 0x4231: 0x00c0, 0x4232: 0x00c0, 0x4233: 0x00c0, 0x4234: 0x00c0, 0x4235: 0x00c0, + 0x4236: 0x00c0, 0x4237: 0x00c0, + 0x423d: 0x00c0, 0x423e: 0x00c0, 0x423f: 0x00c0, + // Block 0x109, offset 0x4240 + 0x4240: 0x00c0, 0x4241: 0x00c0, 0x4242: 0x00c0, 0x4243: 0x00c0, 0x4244: 0x00c0, 0x4245: 0x00c0, + 0x4246: 0x00c0, 0x4247: 0x00c0, 0x4248: 0x00c0, 0x4249: 0x00c0, 0x424a: 0x00c0, 0x424b: 0x00c0, + 0x424c: 0x00c0, 0x424d: 0x00c0, 0x424e: 0x00c0, 0x424f: 0x00c0, + // Block 0x10a, offset 0x4280 + 0x4280: 0x00c0, 0x4281: 0x00c0, 0x4282: 0x00c0, 0x4283: 0x00c0, 0x4284: 0x00c0, + 0x4290: 0x00c0, 0x4291: 0x00c0, + 0x4292: 0x00c0, 0x4293: 0x00c0, 0x4294: 0x00c0, 0x4295: 0x00c0, 0x4296: 0x00c0, 0x4297: 0x00c0, + 0x4298: 0x00c0, 0x4299: 0x00c0, 0x429a: 0x00c0, 0x429b: 0x00c0, 0x429c: 0x00c0, 0x429d: 0x00c0, + 0x429e: 0x00c0, 0x429f: 0x00c0, 0x42a0: 0x00c0, 0x42a1: 0x00c0, 0x42a2: 0x00c0, 0x42a3: 0x00c0, + 0x42a4: 0x00c0, 0x42a5: 0x00c0, 0x42a6: 0x00c0, 0x42a7: 0x00c0, 0x42a8: 0x00c0, 0x42a9: 0x00c0, + 0x42aa: 0x00c0, 0x42ab: 0x00c0, 0x42ac: 0x00c0, 0x42ad: 0x00c0, 0x42ae: 0x00c0, 0x42af: 0x00c0, + 0x42b0: 0x00c0, 0x42b1: 0x00c0, 0x42b2: 0x00c0, 0x42b3: 0x00c0, 0x42b4: 0x00c0, 0x42b5: 0x00c0, + 0x42b6: 0x00c0, 0x42b7: 0x00c0, 0x42b8: 0x00c0, 0x42b9: 0x00c0, 0x42ba: 0x00c0, 0x42bb: 0x00c0, + 0x42bc: 0x00c0, 0x42bd: 0x00c0, 0x42be: 0x00c0, + // Block 0x10b, offset 0x42c0 + 0x42cf: 0x00c3, 0x42d0: 0x00c3, 0x42d1: 0x00c3, + 0x42d2: 0x00c3, 0x42d3: 0x00c0, 0x42d4: 0x00c0, 0x42d5: 0x00c0, 0x42d6: 0x00c0, 0x42d7: 0x00c0, + 0x42d8: 0x00c0, 0x42d9: 0x00c0, 0x42da: 0x00c0, 0x42db: 0x00c0, 0x42dc: 0x00c0, 0x42dd: 0x00c0, + 0x42de: 0x00c0, 0x42df: 0x00c0, + // Block 0x10c, offset 0x4300 + 0x4320: 0x00c0, + // Block 0x10d, offset 0x4340 + 0x4340: 0x00c0, 0x4341: 0x00c0, 0x4342: 0x00c0, 0x4343: 0x00c0, 0x4344: 0x00c0, 0x4345: 0x00c0, + 0x4346: 0x00c0, 0x4347: 0x00c0, 0x4348: 0x00c0, 0x4349: 0x00c0, 0x434a: 0x00c0, 0x434b: 0x00c0, + 0x434c: 0x00c0, 0x434d: 0x00c0, 0x434e: 0x00c0, 0x434f: 0x00c0, 0x4350: 0x00c0, 0x4351: 0x00c0, + 0x4352: 0x00c0, 0x4353: 0x00c0, 0x4354: 0x00c0, 0x4355: 0x00c0, 0x4356: 0x00c0, 0x4357: 0x00c0, + 0x4358: 0x00c0, 0x4359: 0x00c0, 0x435a: 0x00c0, 0x435b: 0x00c0, 0x435c: 0x00c0, 0x435d: 0x00c0, + 0x435e: 0x00c0, 0x435f: 0x00c0, 0x4360: 0x00c0, 0x4361: 0x00c0, 0x4362: 0x00c0, 0x4363: 0x00c0, + 0x4364: 0x00c0, 0x4365: 0x00c0, 0x4366: 0x00c0, 0x4367: 0x00c0, 0x4368: 0x00c0, 0x4369: 0x00c0, + 0x436a: 0x00c0, 0x436b: 0x00c0, 0x436c: 0x00c0, + // Block 0x10e, offset 0x4380 + 0x4380: 0x00cc, 0x4381: 0x00cc, + // Block 0x10f, offset 0x43c0 + 0x43c0: 0x00c0, 0x43c1: 0x00c0, 0x43c2: 0x00c0, 0x43c3: 0x00c0, 0x43c4: 0x00c0, 0x43c5: 0x00c0, + 0x43c6: 0x00c0, 0x43c7: 0x00c0, 0x43c8: 0x00c0, 0x43c9: 0x00c0, 0x43ca: 0x00c0, 0x43cb: 0x00c0, + 0x43cc: 0x00c0, 0x43cd: 0x00c0, 0x43ce: 0x00c0, 0x43cf: 0x00c0, 0x43d0: 0x00c0, 0x43d1: 0x00c0, + 0x43d2: 0x00c0, 0x43d3: 0x00c0, 0x43d4: 0x00c0, 0x43d5: 0x00c0, 0x43d6: 0x00c0, 0x43d7: 0x00c0, + 0x43d8: 0x00c0, 0x43d9: 0x00c0, 0x43da: 0x00c0, 0x43db: 0x00c0, 0x43dc: 0x00c0, 0x43dd: 0x00c0, + 0x43de: 0x00c0, 0x43df: 0x00c0, 0x43e0: 0x00c0, 0x43e1: 0x00c0, 0x43e2: 0x00c0, 0x43e3: 0x00c0, + 0x43e4: 0x00c0, 0x43e5: 0x00c0, 0x43e6: 0x00c0, 0x43e7: 0x00c0, 0x43e8: 0x00c0, 0x43e9: 0x00c0, + 0x43ea: 0x00c0, + 0x43f0: 0x00c0, 0x43f1: 0x00c0, 0x43f2: 0x00c0, 0x43f3: 0x00c0, 0x43f4: 0x00c0, 0x43f5: 0x00c0, + 0x43f6: 0x00c0, 0x43f7: 0x00c0, 0x43f8: 0x00c0, 0x43f9: 0x00c0, 0x43fa: 0x00c0, 0x43fb: 0x00c0, + 0x43fc: 0x00c0, + // Block 0x110, offset 0x4400 + 0x4400: 0x00c0, 0x4401: 0x00c0, 0x4402: 0x00c0, 0x4403: 0x00c0, 0x4404: 0x00c0, 0x4405: 0x00c0, + 0x4406: 0x00c0, 0x4407: 0x00c0, 0x4408: 0x00c0, + 0x4410: 0x00c0, 0x4411: 0x00c0, + 0x4412: 0x00c0, 0x4413: 0x00c0, 0x4414: 0x00c0, 0x4415: 0x00c0, 0x4416: 0x00c0, 0x4417: 0x00c0, + 0x4418: 0x00c0, 0x4419: 0x00c0, 0x441c: 0x0080, 0x441d: 0x00c3, + 0x441e: 0x00c3, 0x441f: 0x0080, 0x4420: 0x0040, 0x4421: 0x0040, 0x4422: 0x0040, 0x4423: 0x0040, + // Block 0x111, offset 0x4440 + 0x4440: 0x0080, 0x4441: 0x0080, 0x4442: 0x0080, 0x4443: 0x0080, 0x4444: 0x0080, 0x4445: 0x0080, + 0x4446: 0x0080, 0x4447: 0x0080, 0x4448: 0x0080, 0x4449: 0x0080, 0x444a: 0x0080, 0x444b: 0x0080, + 0x444c: 0x0080, 0x444d: 0x0080, 0x444e: 0x0080, 0x444f: 0x0080, 0x4450: 0x0080, 0x4451: 0x0080, + 0x4452: 0x0080, 0x4453: 0x0080, 0x4454: 0x0080, 0x4455: 0x0080, 0x4456: 0x0080, 0x4457: 0x0080, + 0x4458: 0x0080, 0x4459: 0x0080, 0x445a: 0x0080, 0x445b: 0x0080, 0x445c: 0x0080, 0x445d: 0x0080, + 0x445e: 0x0080, 0x445f: 0x0080, 0x4460: 0x0080, 0x4461: 0x0080, 0x4462: 0x0080, 0x4463: 0x0080, + 0x4464: 0x0080, 0x4465: 0x0080, 0x4466: 0x0080, 0x4467: 0x0080, 0x4468: 0x0080, 0x4469: 0x0080, + 0x446a: 0x0080, 0x446b: 0x0080, 0x446c: 0x0080, 0x446d: 0x0080, 0x446e: 0x0080, 0x446f: 0x0080, + 0x4470: 0x0080, 0x4471: 0x0080, 0x4472: 0x0080, 0x4473: 0x0080, 0x4474: 0x0080, 0x4475: 0x0080, + // Block 0x112, offset 0x4480 + 0x4480: 0x0080, 0x4481: 0x0080, 0x4482: 0x0080, 0x4483: 0x0080, 0x4484: 0x0080, 0x4485: 0x0080, + 0x4486: 0x0080, 0x4487: 0x0080, 0x4488: 0x0080, 0x4489: 0x0080, 0x448a: 0x0080, 0x448b: 0x0080, + 0x448c: 0x0080, 0x448d: 0x0080, 0x448e: 0x0080, 0x448f: 0x0080, 0x4490: 0x0080, 0x4491: 0x0080, + 0x4492: 0x0080, 0x4493: 0x0080, 0x4494: 0x0080, 0x4495: 0x0080, 0x4496: 0x0080, 0x4497: 0x0080, + 0x4498: 0x0080, 0x4499: 0x0080, 0x449a: 0x0080, 0x449b: 0x0080, 0x449c: 0x0080, 0x449d: 0x0080, + 0x449e: 0x0080, 0x449f: 0x0080, 0x44a0: 0x0080, 0x44a1: 0x0080, 0x44a2: 0x0080, 0x44a3: 0x0080, + 0x44a4: 0x0080, 0x44a5: 0x0080, 0x44a6: 0x0080, 0x44a9: 0x0080, + 0x44aa: 0x0080, 0x44ab: 0x0080, 0x44ac: 0x0080, 0x44ad: 0x0080, 0x44ae: 0x0080, 0x44af: 0x0080, + 0x44b0: 0x0080, 0x44b1: 0x0080, 0x44b2: 0x0080, 0x44b3: 0x0080, 0x44b4: 0x0080, 0x44b5: 0x0080, + 0x44b6: 0x0080, 0x44b7: 0x0080, 0x44b8: 0x0080, 0x44b9: 0x0080, 0x44ba: 0x0080, 0x44bb: 0x0080, + 0x44bc: 0x0080, 0x44bd: 0x0080, 0x44be: 0x0080, 0x44bf: 0x0080, + // Block 0x113, offset 0x44c0 + 0x44c0: 0x0080, 0x44c1: 0x0080, 0x44c2: 0x0080, 0x44c3: 0x0080, 0x44c4: 0x0080, 0x44c5: 0x0080, + 0x44c6: 0x0080, 0x44c7: 0x0080, 0x44c8: 0x0080, 0x44c9: 0x0080, 0x44ca: 0x0080, 0x44cb: 0x0080, + 0x44cc: 0x0080, 0x44cd: 0x0080, 0x44ce: 0x0080, 0x44cf: 0x0080, 0x44d0: 0x0080, 0x44d1: 0x0080, + 0x44d2: 0x0080, 0x44d3: 0x0080, 0x44d4: 0x0080, 0x44d5: 0x0080, 0x44d6: 0x0080, 0x44d7: 0x0080, + 0x44d8: 0x0080, 0x44d9: 0x0080, 0x44da: 0x0080, 0x44db: 0x0080, 0x44dc: 0x0080, 0x44dd: 0x0080, + 0x44de: 0x0080, 0x44df: 0x0080, 0x44e0: 0x0080, 0x44e1: 0x0080, 0x44e2: 0x0080, 0x44e3: 0x0080, + 0x44e4: 0x0080, 0x44e5: 0x00c0, 0x44e6: 0x00c0, 0x44e7: 0x00c3, 0x44e8: 0x00c3, 0x44e9: 0x00c3, + 0x44ea: 0x0080, 0x44eb: 0x0080, 0x44ec: 0x0080, 0x44ed: 0x00c0, 0x44ee: 0x00c0, 0x44ef: 0x00c0, + 0x44f0: 0x00c0, 0x44f1: 0x00c0, 0x44f2: 0x00c0, 0x44f3: 0x0040, 0x44f4: 0x0040, 0x44f5: 0x0040, + 0x44f6: 0x0040, 0x44f7: 0x0040, 0x44f8: 0x0040, 0x44f9: 0x0040, 0x44fa: 0x0040, 0x44fb: 0x00c3, + 0x44fc: 0x00c3, 0x44fd: 0x00c3, 0x44fe: 0x00c3, 0x44ff: 0x00c3, + // Block 0x114, offset 0x4500 + 0x4500: 0x00c3, 0x4501: 0x00c3, 0x4502: 0x00c3, 0x4503: 0x0080, 0x4504: 0x0080, 0x4505: 0x00c3, + 0x4506: 0x00c3, 0x4507: 0x00c3, 0x4508: 0x00c3, 0x4509: 0x00c3, 0x450a: 0x00c3, 0x450b: 0x00c3, + 0x450c: 0x0080, 0x450d: 0x0080, 0x450e: 0x0080, 0x450f: 0x0080, 0x4510: 0x0080, 0x4511: 0x0080, + 0x4512: 0x0080, 0x4513: 0x0080, 0x4514: 0x0080, 0x4515: 0x0080, 0x4516: 0x0080, 0x4517: 0x0080, + 0x4518: 0x0080, 0x4519: 0x0080, 0x451a: 0x0080, 0x451b: 0x0080, 0x451c: 0x0080, 0x451d: 0x0080, + 0x451e: 0x0080, 0x451f: 0x0080, 0x4520: 0x0080, 0x4521: 0x0080, 0x4522: 0x0080, 0x4523: 0x0080, + 0x4524: 0x0080, 0x4525: 0x0080, 0x4526: 0x0080, 0x4527: 0x0080, 0x4528: 0x0080, 0x4529: 0x0080, + 0x452a: 0x00c3, 0x452b: 0x00c3, 0x452c: 0x00c3, 0x452d: 0x00c3, 0x452e: 0x0080, 0x452f: 0x0080, + 0x4530: 0x0080, 0x4531: 0x0080, 0x4532: 0x0080, 0x4533: 0x0080, 0x4534: 0x0080, 0x4535: 0x0080, + 0x4536: 0x0080, 0x4537: 0x0080, 0x4538: 0x0080, 0x4539: 0x0080, 0x453a: 0x0080, 0x453b: 0x0080, + 0x453c: 0x0080, 0x453d: 0x0080, 0x453e: 0x0080, 0x453f: 0x0080, + // Block 0x115, offset 0x4540 + 0x4540: 0x0080, 0x4541: 0x0080, 0x4542: 0x0080, 0x4543: 0x0080, 0x4544: 0x0080, 0x4545: 0x0080, + 0x4546: 0x0080, 0x4547: 0x0080, 0x4548: 0x0080, 0x4549: 0x0080, 0x454a: 0x0080, 0x454b: 0x0080, + 0x454c: 0x0080, 0x454d: 0x0080, 0x454e: 0x0080, 0x454f: 0x0080, 0x4550: 0x0080, 0x4551: 0x0080, + 0x4552: 0x0080, 0x4553: 0x0080, 0x4554: 0x0080, 0x4555: 0x0080, 0x4556: 0x0080, 0x4557: 0x0080, + 0x4558: 0x0080, 0x4559: 0x0080, 0x455a: 0x0080, 0x455b: 0x0080, 0x455c: 0x0080, 0x455d: 0x0080, + 0x455e: 0x0080, 0x455f: 0x0080, 0x4560: 0x0080, 0x4561: 0x0080, 0x4562: 0x0080, 0x4563: 0x0080, + 0x4564: 0x0080, 0x4565: 0x0080, 0x4566: 0x0080, 0x4567: 0x0080, 0x4568: 0x0080, + // Block 0x116, offset 0x4580 + 0x4580: 0x0088, 0x4581: 0x0088, 0x4582: 0x00c9, 0x4583: 0x00c9, 0x4584: 0x00c9, 0x4585: 0x0088, + // Block 0x117, offset 0x45c0 + 0x45c0: 0x0080, 0x45c1: 0x0080, 0x45c2: 0x0080, 0x45c3: 0x0080, 0x45c4: 0x0080, 0x45c5: 0x0080, + 0x45c6: 0x0080, 0x45c7: 0x0080, 0x45c8: 0x0080, 0x45c9: 0x0080, 0x45ca: 0x0080, 0x45cb: 0x0080, + 0x45cc: 0x0080, 0x45cd: 0x0080, 0x45ce: 0x0080, 0x45cf: 0x0080, 0x45d0: 0x0080, 0x45d1: 0x0080, + 0x45d2: 0x0080, 0x45d3: 0x0080, 0x45d4: 0x0080, 0x45d5: 0x0080, 0x45d6: 0x0080, + 0x45e0: 0x0080, 0x45e1: 0x0080, 0x45e2: 0x0080, 0x45e3: 0x0080, + 0x45e4: 0x0080, 0x45e5: 0x0080, 0x45e6: 0x0080, 0x45e7: 0x0080, 0x45e8: 0x0080, 0x45e9: 0x0080, + 0x45ea: 0x0080, 0x45eb: 0x0080, 0x45ec: 0x0080, 0x45ed: 0x0080, 0x45ee: 0x0080, 0x45ef: 0x0080, + 0x45f0: 0x0080, 0x45f1: 0x0080, + // Block 0x118, offset 0x4600 + 0x4600: 0x0080, 0x4601: 0x0080, 0x4602: 0x0080, 0x4603: 0x0080, 0x4604: 0x0080, 0x4605: 0x0080, + 0x4606: 0x0080, 0x4607: 0x0080, 0x4608: 0x0080, 0x4609: 0x0080, 0x460a: 0x0080, 0x460b: 0x0080, + 0x460c: 0x0080, 0x460d: 0x0080, 0x460e: 0x0080, 0x460f: 0x0080, 0x4610: 0x0080, 0x4611: 0x0080, + 0x4612: 0x0080, 0x4613: 0x0080, 0x4614: 0x0080, 0x4616: 0x0080, 0x4617: 0x0080, + 0x4618: 0x0080, 0x4619: 0x0080, 0x461a: 0x0080, 0x461b: 0x0080, 0x461c: 0x0080, 0x461d: 0x0080, + 0x461e: 0x0080, 0x461f: 0x0080, 0x4620: 0x0080, 0x4621: 0x0080, 0x4622: 0x0080, 0x4623: 0x0080, + 0x4624: 0x0080, 0x4625: 0x0080, 0x4626: 0x0080, 0x4627: 0x0080, 0x4628: 0x0080, 0x4629: 0x0080, + 0x462a: 0x0080, 0x462b: 0x0080, 0x462c: 0x0080, 0x462d: 0x0080, 0x462e: 0x0080, 0x462f: 0x0080, + 0x4630: 0x0080, 0x4631: 0x0080, 0x4632: 0x0080, 0x4633: 0x0080, 0x4634: 0x0080, 0x4635: 0x0080, + 0x4636: 0x0080, 0x4637: 0x0080, 0x4638: 0x0080, 0x4639: 0x0080, 0x463a: 0x0080, 0x463b: 0x0080, + 0x463c: 0x0080, 0x463d: 0x0080, 0x463e: 0x0080, 0x463f: 0x0080, + // Block 0x119, offset 0x4640 + 0x4640: 0x0080, 0x4641: 0x0080, 0x4642: 0x0080, 0x4643: 0x0080, 0x4644: 0x0080, 0x4645: 0x0080, + 0x4646: 0x0080, 0x4647: 0x0080, 0x4648: 0x0080, 0x4649: 0x0080, 0x464a: 0x0080, 0x464b: 0x0080, + 0x464c: 0x0080, 0x464d: 0x0080, 0x464e: 0x0080, 0x464f: 0x0080, 0x4650: 0x0080, 0x4651: 0x0080, + 0x4652: 0x0080, 0x4653: 0x0080, 0x4654: 0x0080, 0x4655: 0x0080, 0x4656: 0x0080, 0x4657: 0x0080, + 0x4658: 0x0080, 0x4659: 0x0080, 0x465a: 0x0080, 0x465b: 0x0080, 0x465c: 0x0080, + 0x465e: 0x0080, 0x465f: 0x0080, 0x4662: 0x0080, + 0x4665: 0x0080, 0x4666: 0x0080, 0x4669: 0x0080, + 0x466a: 0x0080, 0x466b: 0x0080, 0x466c: 0x0080, 0x466e: 0x0080, 0x466f: 0x0080, + 0x4670: 0x0080, 0x4671: 0x0080, 0x4672: 0x0080, 0x4673: 0x0080, 0x4674: 0x0080, 0x4675: 0x0080, + 0x4676: 0x0080, 0x4677: 0x0080, 0x4678: 0x0080, 0x4679: 0x0080, 0x467b: 0x0080, + 0x467d: 0x0080, 0x467e: 0x0080, 0x467f: 0x0080, + // Block 0x11a, offset 0x4680 + 0x4680: 0x0080, 0x4681: 0x0080, 0x4682: 0x0080, 0x4683: 0x0080, 0x4685: 0x0080, + 0x4686: 0x0080, 0x4687: 0x0080, 0x4688: 0x0080, 0x4689: 0x0080, 0x468a: 0x0080, 0x468b: 0x0080, + 0x468c: 0x0080, 0x468d: 0x0080, 0x468e: 0x0080, 0x468f: 0x0080, 0x4690: 0x0080, 0x4691: 0x0080, + 0x4692: 0x0080, 0x4693: 0x0080, 0x4694: 0x0080, 0x4695: 0x0080, 0x4696: 0x0080, 0x4697: 0x0080, + 0x4698: 0x0080, 0x4699: 0x0080, 0x469a: 0x0080, 0x469b: 0x0080, 0x469c: 0x0080, 0x469d: 0x0080, + 0x469e: 0x0080, 0x469f: 0x0080, 0x46a0: 0x0080, 0x46a1: 0x0080, 0x46a2: 0x0080, 0x46a3: 0x0080, + 0x46a4: 0x0080, 0x46a5: 0x0080, 0x46a6: 0x0080, 0x46a7: 0x0080, 0x46a8: 0x0080, 0x46a9: 0x0080, + 0x46aa: 0x0080, 0x46ab: 0x0080, 0x46ac: 0x0080, 0x46ad: 0x0080, 0x46ae: 0x0080, 0x46af: 0x0080, + 0x46b0: 0x0080, 0x46b1: 0x0080, 0x46b2: 0x0080, 0x46b3: 0x0080, 0x46b4: 0x0080, 0x46b5: 0x0080, + 0x46b6: 0x0080, 0x46b7: 0x0080, 0x46b8: 0x0080, 0x46b9: 0x0080, 0x46ba: 0x0080, 0x46bb: 0x0080, + 0x46bc: 0x0080, 0x46bd: 0x0080, 0x46be: 0x0080, 0x46bf: 0x0080, + // Block 0x11b, offset 0x46c0 + 0x46c0: 0x0080, 0x46c1: 0x0080, 0x46c2: 0x0080, 0x46c3: 0x0080, 0x46c4: 0x0080, 0x46c5: 0x0080, + 0x46c7: 0x0080, 0x46c8: 0x0080, 0x46c9: 0x0080, 0x46ca: 0x0080, + 0x46cd: 0x0080, 0x46ce: 0x0080, 0x46cf: 0x0080, 0x46d0: 0x0080, 0x46d1: 0x0080, + 0x46d2: 0x0080, 0x46d3: 0x0080, 0x46d4: 0x0080, 0x46d6: 0x0080, 0x46d7: 0x0080, + 0x46d8: 0x0080, 0x46d9: 0x0080, 0x46da: 0x0080, 0x46db: 0x0080, 0x46dc: 0x0080, + 0x46de: 0x0080, 0x46df: 0x0080, 0x46e0: 0x0080, 0x46e1: 0x0080, 0x46e2: 0x0080, 0x46e3: 0x0080, + 0x46e4: 0x0080, 0x46e5: 0x0080, 0x46e6: 0x0080, 0x46e7: 0x0080, 0x46e8: 0x0080, 0x46e9: 0x0080, + 0x46ea: 0x0080, 0x46eb: 0x0080, 0x46ec: 0x0080, 0x46ed: 0x0080, 0x46ee: 0x0080, 0x46ef: 0x0080, + 0x46f0: 0x0080, 0x46f1: 0x0080, 0x46f2: 0x0080, 0x46f3: 0x0080, 0x46f4: 0x0080, 0x46f5: 0x0080, + 0x46f6: 0x0080, 0x46f7: 0x0080, 0x46f8: 0x0080, 0x46f9: 0x0080, 0x46fb: 0x0080, + 0x46fc: 0x0080, 0x46fd: 0x0080, 0x46fe: 0x0080, + // Block 0x11c, offset 0x4700 + 0x4700: 0x0080, 0x4701: 0x0080, 0x4702: 0x0080, 0x4703: 0x0080, 0x4704: 0x0080, + 0x4706: 0x0080, 0x470a: 0x0080, 0x470b: 0x0080, + 0x470c: 0x0080, 0x470d: 0x0080, 0x470e: 0x0080, 0x470f: 0x0080, 0x4710: 0x0080, + 0x4712: 0x0080, 0x4713: 0x0080, 0x4714: 0x0080, 0x4715: 0x0080, 0x4716: 0x0080, 0x4717: 0x0080, + 0x4718: 0x0080, 0x4719: 0x0080, 0x471a: 0x0080, 0x471b: 0x0080, 0x471c: 0x0080, 0x471d: 0x0080, + 0x471e: 0x0080, 0x471f: 0x0080, 0x4720: 0x0080, 0x4721: 0x0080, 0x4722: 0x0080, 0x4723: 0x0080, + 0x4724: 0x0080, 0x4725: 0x0080, 0x4726: 0x0080, 0x4727: 0x0080, 0x4728: 0x0080, 0x4729: 0x0080, + 0x472a: 0x0080, 0x472b: 0x0080, 0x472c: 0x0080, 0x472d: 0x0080, 0x472e: 0x0080, 0x472f: 0x0080, + 0x4730: 0x0080, 0x4731: 0x0080, 0x4732: 0x0080, 0x4733: 0x0080, 0x4734: 0x0080, 0x4735: 0x0080, + 0x4736: 0x0080, 0x4737: 0x0080, 0x4738: 0x0080, 0x4739: 0x0080, 0x473a: 0x0080, 0x473b: 0x0080, + 0x473c: 0x0080, 0x473d: 0x0080, 0x473e: 0x0080, 0x473f: 0x0080, + // Block 0x11d, offset 0x4740 + 0x4740: 0x0080, 0x4741: 0x0080, 0x4742: 0x0080, 0x4743: 0x0080, 0x4744: 0x0080, 0x4745: 0x0080, + 0x4746: 0x0080, 0x4747: 0x0080, 0x4748: 0x0080, 0x4749: 0x0080, 0x474a: 0x0080, 0x474b: 0x0080, + 0x474c: 0x0080, 0x474d: 0x0080, 0x474e: 0x0080, 0x474f: 0x0080, 0x4750: 0x0080, 0x4751: 0x0080, + 0x4752: 0x0080, 0x4753: 0x0080, 0x4754: 0x0080, 0x4755: 0x0080, 0x4756: 0x0080, 0x4757: 0x0080, + 0x4758: 0x0080, 0x4759: 0x0080, 0x475a: 0x0080, 0x475b: 0x0080, 0x475c: 0x0080, 0x475d: 0x0080, + 0x475e: 0x0080, 0x475f: 0x0080, 0x4760: 0x0080, 0x4761: 0x0080, 0x4762: 0x0080, 0x4763: 0x0080, + 0x4764: 0x0080, 0x4765: 0x0080, 0x4768: 0x0080, 0x4769: 0x0080, + 0x476a: 0x0080, 0x476b: 0x0080, 0x476c: 0x0080, 0x476d: 0x0080, 0x476e: 0x0080, 0x476f: 0x0080, + 0x4770: 0x0080, 0x4771: 0x0080, 0x4772: 0x0080, 0x4773: 0x0080, 0x4774: 0x0080, 0x4775: 0x0080, + 0x4776: 0x0080, 0x4777: 0x0080, 0x4778: 0x0080, 0x4779: 0x0080, 0x477a: 0x0080, 0x477b: 0x0080, + 0x477c: 0x0080, 0x477d: 0x0080, 0x477e: 0x0080, 0x477f: 0x0080, + // Block 0x11e, offset 0x4780 + 0x4780: 0x0080, 0x4781: 0x0080, 0x4782: 0x0080, 0x4783: 0x0080, 0x4784: 0x0080, 0x4785: 0x0080, + 0x4786: 0x0080, 0x4787: 0x0080, 0x4788: 0x0080, 0x4789: 0x0080, 0x478a: 0x0080, 0x478b: 0x0080, + 0x478e: 0x0080, 0x478f: 0x0080, 0x4790: 0x0080, 0x4791: 0x0080, + 0x4792: 0x0080, 0x4793: 0x0080, 0x4794: 0x0080, 0x4795: 0x0080, 0x4796: 0x0080, 0x4797: 0x0080, + 0x4798: 0x0080, 0x4799: 0x0080, 0x479a: 0x0080, 0x479b: 0x0080, 0x479c: 0x0080, 0x479d: 0x0080, + 0x479e: 0x0080, 0x479f: 0x0080, 0x47a0: 0x0080, 0x47a1: 0x0080, 0x47a2: 0x0080, 0x47a3: 0x0080, + 0x47a4: 0x0080, 0x47a5: 0x0080, 0x47a6: 0x0080, 0x47a7: 0x0080, 0x47a8: 0x0080, 0x47a9: 0x0080, + 0x47aa: 0x0080, 0x47ab: 0x0080, 0x47ac: 0x0080, 0x47ad: 0x0080, 0x47ae: 0x0080, 0x47af: 0x0080, + 0x47b0: 0x0080, 0x47b1: 0x0080, 0x47b2: 0x0080, 0x47b3: 0x0080, 0x47b4: 0x0080, 0x47b5: 0x0080, + 0x47b6: 0x0080, 0x47b7: 0x0080, 0x47b8: 0x0080, 0x47b9: 0x0080, 0x47ba: 0x0080, 0x47bb: 0x0080, + 0x47bc: 0x0080, 0x47bd: 0x0080, 0x47be: 0x0080, 0x47bf: 0x0080, + // Block 0x11f, offset 0x47c0 + 0x47c0: 0x00c3, 0x47c1: 0x00c3, 0x47c2: 0x00c3, 0x47c3: 0x00c3, 0x47c4: 0x00c3, 0x47c5: 0x00c3, + 0x47c6: 0x00c3, 0x47c7: 0x00c3, 0x47c8: 0x00c3, 0x47c9: 0x00c3, 0x47ca: 0x00c3, 0x47cb: 0x00c3, + 0x47cc: 0x00c3, 0x47cd: 0x00c3, 0x47ce: 0x00c3, 0x47cf: 0x00c3, 0x47d0: 0x00c3, 0x47d1: 0x00c3, + 0x47d2: 0x00c3, 0x47d3: 0x00c3, 0x47d4: 0x00c3, 0x47d5: 0x00c3, 0x47d6: 0x00c3, 0x47d7: 0x00c3, + 0x47d8: 0x00c3, 0x47d9: 0x00c3, 0x47da: 0x00c3, 0x47db: 0x00c3, 0x47dc: 0x00c3, 0x47dd: 0x00c3, + 0x47de: 0x00c3, 0x47df: 0x00c3, 0x47e0: 0x00c3, 0x47e1: 0x00c3, 0x47e2: 0x00c3, 0x47e3: 0x00c3, + 0x47e4: 0x00c3, 0x47e5: 0x00c3, 0x47e6: 0x00c3, 0x47e7: 0x00c3, 0x47e8: 0x00c3, 0x47e9: 0x00c3, + 0x47ea: 0x00c3, 0x47eb: 0x00c3, 0x47ec: 0x00c3, 0x47ed: 0x00c3, 0x47ee: 0x00c3, 0x47ef: 0x00c3, + 0x47f0: 0x00c3, 0x47f1: 0x00c3, 0x47f2: 0x00c3, 0x47f3: 0x00c3, 0x47f4: 0x00c3, 0x47f5: 0x00c3, + 0x47f6: 0x00c3, 0x47f7: 0x0080, 0x47f8: 0x0080, 0x47f9: 0x0080, 0x47fa: 0x0080, 0x47fb: 0x00c3, + 0x47fc: 0x00c3, 0x47fd: 0x00c3, 0x47fe: 0x00c3, 0x47ff: 0x00c3, + // Block 0x120, offset 0x4800 + 0x4800: 0x00c3, 0x4801: 0x00c3, 0x4802: 0x00c3, 0x4803: 0x00c3, 0x4804: 0x00c3, 0x4805: 0x00c3, + 0x4806: 0x00c3, 0x4807: 0x00c3, 0x4808: 0x00c3, 0x4809: 0x00c3, 0x480a: 0x00c3, 0x480b: 0x00c3, + 0x480c: 0x00c3, 0x480d: 0x00c3, 0x480e: 0x00c3, 0x480f: 0x00c3, 0x4810: 0x00c3, 0x4811: 0x00c3, + 0x4812: 0x00c3, 0x4813: 0x00c3, 0x4814: 0x00c3, 0x4815: 0x00c3, 0x4816: 0x00c3, 0x4817: 0x00c3, + 0x4818: 0x00c3, 0x4819: 0x00c3, 0x481a: 0x00c3, 0x481b: 0x00c3, 0x481c: 0x00c3, 0x481d: 0x00c3, + 0x481e: 0x00c3, 0x481f: 0x00c3, 0x4820: 0x00c3, 0x4821: 0x00c3, 0x4822: 0x00c3, 0x4823: 0x00c3, + 0x4824: 0x00c3, 0x4825: 0x00c3, 0x4826: 0x00c3, 0x4827: 0x00c3, 0x4828: 0x00c3, 0x4829: 0x00c3, + 0x482a: 0x00c3, 0x482b: 0x00c3, 0x482c: 0x00c3, 0x482d: 0x0080, 0x482e: 0x0080, 0x482f: 0x0080, + 0x4830: 0x0080, 0x4831: 0x0080, 0x4832: 0x0080, 0x4833: 0x0080, 0x4834: 0x0080, 0x4835: 0x00c3, + 0x4836: 0x0080, 0x4837: 0x0080, 0x4838: 0x0080, 0x4839: 0x0080, 0x483a: 0x0080, 0x483b: 0x0080, + 0x483c: 0x0080, 0x483d: 0x0080, 0x483e: 0x0080, 0x483f: 0x0080, + // Block 0x121, offset 0x4840 + 0x4840: 0x0080, 0x4841: 0x0080, 0x4842: 0x0080, 0x4843: 0x0080, 0x4844: 0x00c3, 0x4845: 0x0080, + 0x4846: 0x0080, 0x4847: 0x0080, 0x4848: 0x0080, 0x4849: 0x0080, 0x484a: 0x0080, 0x484b: 0x0080, + 0x485b: 0x00c3, 0x485c: 0x00c3, 0x485d: 0x00c3, + 0x485e: 0x00c3, 0x485f: 0x00c3, 0x4861: 0x00c3, 0x4862: 0x00c3, 0x4863: 0x00c3, + 0x4864: 0x00c3, 0x4865: 0x00c3, 0x4866: 0x00c3, 0x4867: 0x00c3, 0x4868: 0x00c3, 0x4869: 0x00c3, + 0x486a: 0x00c3, 0x486b: 0x00c3, 0x486c: 0x00c3, 0x486d: 0x00c3, 0x486e: 0x00c3, 0x486f: 0x00c3, + // Block 0x122, offset 0x4880 + 0x4880: 0x00c3, 0x4881: 0x00c3, 0x4882: 0x00c3, 0x4883: 0x00c3, 0x4884: 0x00c3, 0x4885: 0x00c3, + 0x4886: 0x00c3, 0x4888: 0x00c3, 0x4889: 0x00c3, 0x488a: 0x00c3, 0x488b: 0x00c3, + 0x488c: 0x00c3, 0x488d: 0x00c3, 0x488e: 0x00c3, 0x488f: 0x00c3, 0x4890: 0x00c3, 0x4891: 0x00c3, + 0x4892: 0x00c3, 0x4893: 0x00c3, 0x4894: 0x00c3, 0x4895: 0x00c3, 0x4896: 0x00c3, 0x4897: 0x00c3, + 0x4898: 0x00c3, 0x489b: 0x00c3, 0x489c: 0x00c3, 0x489d: 0x00c3, + 0x489e: 0x00c3, 0x489f: 0x00c3, 0x48a0: 0x00c3, 0x48a1: 0x00c3, 0x48a3: 0x00c3, + 0x48a4: 0x00c3, 0x48a6: 0x00c3, 0x48a7: 0x00c3, 0x48a8: 0x00c3, 0x48a9: 0x00c3, + 0x48aa: 0x00c3, + // Block 0x123, offset 0x48c0 + 0x48c0: 0x00c0, 0x48c1: 0x00c0, 0x48c2: 0x00c0, 0x48c3: 0x00c0, 0x48c4: 0x00c0, + 0x48c7: 0x0080, 0x48c8: 0x0080, 0x48c9: 0x0080, 0x48ca: 0x0080, 0x48cb: 0x0080, + 0x48cc: 0x0080, 0x48cd: 0x0080, 0x48ce: 0x0080, 0x48cf: 0x0080, 0x48d0: 0x00c3, 0x48d1: 0x00c3, + 0x48d2: 0x00c3, 0x48d3: 0x00c3, 0x48d4: 0x00c3, 0x48d5: 0x00c3, 0x48d6: 0x00c3, + // Block 0x124, offset 0x4900 + 0x4900: 0x00c2, 0x4901: 0x00c2, 0x4902: 0x00c2, 0x4903: 0x00c2, 0x4904: 0x00c2, 0x4905: 0x00c2, + 0x4906: 0x00c2, 0x4907: 0x00c2, 0x4908: 0x00c2, 0x4909: 0x00c2, 0x490a: 0x00c2, 0x490b: 0x00c2, + 0x490c: 0x00c2, 0x490d: 0x00c2, 0x490e: 0x00c2, 0x490f: 0x00c2, 0x4910: 0x00c2, 0x4911: 0x00c2, + 0x4912: 0x00c2, 0x4913: 0x00c2, 0x4914: 0x00c2, 0x4915: 0x00c2, 0x4916: 0x00c2, 0x4917: 0x00c2, + 0x4918: 0x00c2, 0x4919: 0x00c2, 0x491a: 0x00c2, 0x491b: 0x00c2, 0x491c: 0x00c2, 0x491d: 0x00c2, + 0x491e: 0x00c2, 0x491f: 0x00c2, 0x4920: 0x00c2, 0x4921: 0x00c2, 0x4922: 0x00c2, 0x4923: 0x00c2, + 0x4924: 0x00c2, 0x4925: 0x00c2, 0x4926: 0x00c2, 0x4927: 0x00c2, 0x4928: 0x00c2, 0x4929: 0x00c2, + 0x492a: 0x00c2, 0x492b: 0x00c2, 0x492c: 0x00c2, 0x492d: 0x00c2, 0x492e: 0x00c2, 0x492f: 0x00c2, + 0x4930: 0x00c2, 0x4931: 0x00c2, 0x4932: 0x00c2, 0x4933: 0x00c2, 0x4934: 0x00c2, 0x4935: 0x00c2, + 0x4936: 0x00c2, 0x4937: 0x00c2, 0x4938: 0x00c2, 0x4939: 0x00c2, 0x493a: 0x00c2, 0x493b: 0x00c2, + 0x493c: 0x00c2, 0x493d: 0x00c2, 0x493e: 0x00c2, 0x493f: 0x00c2, + // Block 0x125, offset 0x4940 + 0x4940: 0x00c2, 0x4941: 0x00c2, 0x4942: 0x00c2, 0x4943: 0x00c2, 0x4944: 0x00c3, 0x4945: 0x00c3, + 0x4946: 0x00c3, 0x4947: 0x00c3, 0x4948: 0x00c3, 0x4949: 0x00c3, 0x494a: 0x00c3, + 0x4950: 0x00c0, 0x4951: 0x00c0, + 0x4952: 0x00c0, 0x4953: 0x00c0, 0x4954: 0x00c0, 0x4955: 0x00c0, 0x4956: 0x00c0, 0x4957: 0x00c0, + 0x4958: 0x00c0, 0x4959: 0x00c0, + 0x495e: 0x0080, 0x495f: 0x0080, + // Block 0x126, offset 0x4980 + 0x4980: 0x0080, 0x4981: 0x0080, 0x4982: 0x0080, 0x4983: 0x0080, 0x4985: 0x0080, + 0x4986: 0x0080, 0x4987: 0x0080, 0x4988: 0x0080, 0x4989: 0x0080, 0x498a: 0x0080, 0x498b: 0x0080, + 0x498c: 0x0080, 0x498d: 0x0080, 0x498e: 0x0080, 0x498f: 0x0080, 0x4990: 0x0080, 0x4991: 0x0080, + 0x4992: 0x0080, 0x4993: 0x0080, 0x4994: 0x0080, 0x4995: 0x0080, 0x4996: 0x0080, 0x4997: 0x0080, + 0x4998: 0x0080, 0x4999: 0x0080, 0x499a: 0x0080, 0x499b: 0x0080, 0x499c: 0x0080, 0x499d: 0x0080, + 0x499e: 0x0080, 0x499f: 0x0080, 0x49a1: 0x0080, 0x49a2: 0x0080, + 0x49a4: 0x0080, 0x49a7: 0x0080, 0x49a9: 0x0080, + 0x49aa: 0x0080, 0x49ab: 0x0080, 0x49ac: 0x0080, 0x49ad: 0x0080, 0x49ae: 0x0080, 0x49af: 0x0080, + 0x49b0: 0x0080, 0x49b1: 0x0080, 0x49b2: 0x0080, 0x49b4: 0x0080, 0x49b5: 0x0080, + 0x49b6: 0x0080, 0x49b7: 0x0080, 0x49b9: 0x0080, 0x49bb: 0x0080, + // Block 0x127, offset 0x49c0 + 0x49c2: 0x0080, + 0x49c7: 0x0080, 0x49c9: 0x0080, 0x49cb: 0x0080, + 0x49cd: 0x0080, 0x49ce: 0x0080, 0x49cf: 0x0080, 0x49d1: 0x0080, + 0x49d2: 0x0080, 0x49d4: 0x0080, 0x49d7: 0x0080, + 0x49d9: 0x0080, 0x49db: 0x0080, 0x49dd: 0x0080, + 0x49df: 0x0080, 0x49e1: 0x0080, 0x49e2: 0x0080, + 0x49e4: 0x0080, 0x49e7: 0x0080, 0x49e8: 0x0080, 0x49e9: 0x0080, + 0x49ea: 0x0080, 0x49ec: 0x0080, 0x49ed: 0x0080, 0x49ee: 0x0080, 0x49ef: 0x0080, + 0x49f0: 0x0080, 0x49f1: 0x0080, 0x49f2: 0x0080, 0x49f4: 0x0080, 0x49f5: 0x0080, + 0x49f6: 0x0080, 0x49f7: 0x0080, 0x49f9: 0x0080, 0x49fa: 0x0080, 0x49fb: 0x0080, + 0x49fc: 0x0080, 0x49fe: 0x0080, + // Block 0x128, offset 0x4a00 + 0x4a00: 0x0080, 0x4a01: 0x0080, 0x4a02: 0x0080, 0x4a03: 0x0080, 0x4a04: 0x0080, 0x4a05: 0x0080, + 0x4a06: 0x0080, 0x4a07: 0x0080, 0x4a08: 0x0080, 0x4a09: 0x0080, 0x4a0b: 0x0080, + 0x4a0c: 0x0080, 0x4a0d: 0x0080, 0x4a0e: 0x0080, 0x4a0f: 0x0080, 0x4a10: 0x0080, 0x4a11: 0x0080, + 0x4a12: 0x0080, 0x4a13: 0x0080, 0x4a14: 0x0080, 0x4a15: 0x0080, 0x4a16: 0x0080, 0x4a17: 0x0080, + 0x4a18: 0x0080, 0x4a19: 0x0080, 0x4a1a: 0x0080, 0x4a1b: 0x0080, + 0x4a21: 0x0080, 0x4a22: 0x0080, 0x4a23: 0x0080, + 0x4a25: 0x0080, 0x4a26: 0x0080, 0x4a27: 0x0080, 0x4a28: 0x0080, 0x4a29: 0x0080, + 0x4a2b: 0x0080, 0x4a2c: 0x0080, 0x4a2d: 0x0080, 0x4a2e: 0x0080, 0x4a2f: 0x0080, + 0x4a30: 0x0080, 0x4a31: 0x0080, 0x4a32: 0x0080, 0x4a33: 0x0080, 0x4a34: 0x0080, 0x4a35: 0x0080, + 0x4a36: 0x0080, 0x4a37: 0x0080, 0x4a38: 0x0080, 0x4a39: 0x0080, 0x4a3a: 0x0080, 0x4a3b: 0x0080, + // Block 0x129, offset 0x4a40 + 0x4a70: 0x0080, 0x4a71: 0x0080, + // Block 0x12a, offset 0x4a80 + 0x4a80: 0x0080, 0x4a81: 0x0080, 0x4a82: 0x0080, 0x4a83: 0x0080, 0x4a84: 0x0080, 0x4a85: 0x0080, + 0x4a86: 0x0080, 0x4a87: 0x0080, 0x4a88: 0x0080, 0x4a89: 0x0080, 0x4a8a: 0x0080, 0x4a8b: 0x0080, + 0x4a8c: 0x0080, 0x4a8d: 0x0080, 0x4a8e: 0x0080, 0x4a8f: 0x0080, 0x4a90: 0x0080, 0x4a91: 0x0080, + 0x4a92: 0x0080, 0x4a93: 0x0080, 0x4a94: 0x0080, 0x4a95: 0x0080, 0x4a96: 0x0080, 0x4a97: 0x0080, + 0x4a98: 0x0080, 0x4a99: 0x0080, 0x4a9a: 0x0080, 0x4a9b: 0x0080, 0x4a9c: 0x0080, 0x4a9d: 0x0080, + 0x4a9e: 0x0080, 0x4a9f: 0x0080, 0x4aa0: 0x0080, 0x4aa1: 0x0080, 0x4aa2: 0x0080, 0x4aa3: 0x0080, + 0x4aa4: 0x0080, 0x4aa5: 0x0080, 0x4aa6: 0x0080, 0x4aa7: 0x0080, 0x4aa8: 0x0080, 0x4aa9: 0x0080, + 0x4aaa: 0x0080, 0x4aab: 0x0080, + 0x4ab0: 0x0080, 0x4ab1: 0x0080, 0x4ab2: 0x0080, 0x4ab3: 0x0080, 0x4ab4: 0x0080, 0x4ab5: 0x0080, + 0x4ab6: 0x0080, 0x4ab7: 0x0080, 0x4ab8: 0x0080, 0x4ab9: 0x0080, 0x4aba: 0x0080, 0x4abb: 0x0080, + 0x4abc: 0x0080, 0x4abd: 0x0080, 0x4abe: 0x0080, 0x4abf: 0x0080, + // Block 0x12b, offset 0x4ac0 + 0x4ac0: 0x0080, 0x4ac1: 0x0080, 0x4ac2: 0x0080, 0x4ac3: 0x0080, 0x4ac4: 0x0080, 0x4ac5: 0x0080, + 0x4ac6: 0x0080, 0x4ac7: 0x0080, 0x4ac8: 0x0080, 0x4ac9: 0x0080, 0x4aca: 0x0080, 0x4acb: 0x0080, + 0x4acc: 0x0080, 0x4acd: 0x0080, 0x4ace: 0x0080, 0x4acf: 0x0080, 0x4ad0: 0x0080, 0x4ad1: 0x0080, + 0x4ad2: 0x0080, 0x4ad3: 0x0080, + 0x4ae0: 0x0080, 0x4ae1: 0x0080, 0x4ae2: 0x0080, 0x4ae3: 0x0080, + 0x4ae4: 0x0080, 0x4ae5: 0x0080, 0x4ae6: 0x0080, 0x4ae7: 0x0080, 0x4ae8: 0x0080, 0x4ae9: 0x0080, + 0x4aea: 0x0080, 0x4aeb: 0x0080, 0x4aec: 0x0080, 0x4aed: 0x0080, 0x4aee: 0x0080, + 0x4af1: 0x0080, 0x4af2: 0x0080, 0x4af3: 0x0080, 0x4af4: 0x0080, 0x4af5: 0x0080, + 0x4af6: 0x0080, 0x4af7: 0x0080, 0x4af8: 0x0080, 0x4af9: 0x0080, 0x4afa: 0x0080, 0x4afb: 0x0080, + 0x4afc: 0x0080, 0x4afd: 0x0080, 0x4afe: 0x0080, 0x4aff: 0x0080, + // Block 0x12c, offset 0x4b00 + 0x4b01: 0x0080, 0x4b02: 0x0080, 0x4b03: 0x0080, 0x4b04: 0x0080, 0x4b05: 0x0080, + 0x4b06: 0x0080, 0x4b07: 0x0080, 0x4b08: 0x0080, 0x4b09: 0x0080, 0x4b0a: 0x0080, 0x4b0b: 0x0080, + 0x4b0c: 0x0080, 0x4b0d: 0x0080, 0x4b0e: 0x0080, 0x4b0f: 0x0080, 0x4b11: 0x0080, + 0x4b12: 0x0080, 0x4b13: 0x0080, 0x4b14: 0x0080, 0x4b15: 0x0080, 0x4b16: 0x0080, 0x4b17: 0x0080, + 0x4b18: 0x0080, 0x4b19: 0x0080, 0x4b1a: 0x0080, 0x4b1b: 0x0080, 0x4b1c: 0x0080, 0x4b1d: 0x0080, + 0x4b1e: 0x0080, 0x4b1f: 0x0080, 0x4b20: 0x0080, 0x4b21: 0x0080, 0x4b22: 0x0080, 0x4b23: 0x0080, + 0x4b24: 0x0080, 0x4b25: 0x0080, 0x4b26: 0x0080, 0x4b27: 0x0080, 0x4b28: 0x0080, 0x4b29: 0x0080, + 0x4b2a: 0x0080, 0x4b2b: 0x0080, 0x4b2c: 0x0080, 0x4b2d: 0x0080, 0x4b2e: 0x0080, 0x4b2f: 0x0080, + 0x4b30: 0x0080, 0x4b31: 0x0080, 0x4b32: 0x0080, 0x4b33: 0x0080, 0x4b34: 0x0080, 0x4b35: 0x0080, + // Block 0x12d, offset 0x4b40 + 0x4b40: 0x0080, 0x4b41: 0x0080, 0x4b42: 0x0080, 0x4b43: 0x0080, 0x4b44: 0x0080, 0x4b45: 0x0080, + 0x4b46: 0x0080, 0x4b47: 0x0080, 0x4b48: 0x0080, 0x4b49: 0x0080, 0x4b4a: 0x0080, 0x4b4b: 0x0080, + 0x4b4c: 0x0080, 0x4b50: 0x0080, 0x4b51: 0x0080, + 0x4b52: 0x0080, 0x4b53: 0x0080, 0x4b54: 0x0080, 0x4b55: 0x0080, 0x4b56: 0x0080, 0x4b57: 0x0080, + 0x4b58: 0x0080, 0x4b59: 0x0080, 0x4b5a: 0x0080, 0x4b5b: 0x0080, 0x4b5c: 0x0080, 0x4b5d: 0x0080, + 0x4b5e: 0x0080, 0x4b5f: 0x0080, 0x4b60: 0x0080, 0x4b61: 0x0080, 0x4b62: 0x0080, 0x4b63: 0x0080, + 0x4b64: 0x0080, 0x4b65: 0x0080, 0x4b66: 0x0080, 0x4b67: 0x0080, 0x4b68: 0x0080, 0x4b69: 0x0080, + 0x4b6a: 0x0080, 0x4b6b: 0x0080, 0x4b6c: 0x0080, 0x4b6d: 0x0080, 0x4b6e: 0x0080, + 0x4b70: 0x0080, 0x4b71: 0x0080, 0x4b72: 0x0080, 0x4b73: 0x0080, 0x4b74: 0x0080, 0x4b75: 0x0080, + 0x4b76: 0x0080, 0x4b77: 0x0080, 0x4b78: 0x0080, 0x4b79: 0x0080, 0x4b7a: 0x0080, 0x4b7b: 0x0080, + 0x4b7c: 0x0080, 0x4b7d: 0x0080, 0x4b7e: 0x0080, 0x4b7f: 0x0080, + // Block 0x12e, offset 0x4b80 + 0x4b80: 0x0080, 0x4b81: 0x0080, 0x4b82: 0x0080, 0x4b83: 0x0080, 0x4b84: 0x0080, 0x4b85: 0x0080, + 0x4b86: 0x0080, 0x4b87: 0x0080, 0x4b88: 0x0080, 0x4b89: 0x0080, 0x4b8a: 0x0080, 0x4b8b: 0x0080, + 0x4b8c: 0x0080, 0x4b8d: 0x0080, 0x4b8e: 0x0080, 0x4b8f: 0x0080, 0x4b90: 0x0080, 0x4b91: 0x0080, + 0x4b92: 0x0080, 0x4b93: 0x0080, 0x4b94: 0x0080, 0x4b95: 0x0080, 0x4b96: 0x0080, 0x4b97: 0x0080, + 0x4b98: 0x0080, 0x4b99: 0x0080, 0x4b9a: 0x0080, 0x4b9b: 0x0080, 0x4b9c: 0x0080, 0x4b9d: 0x0080, + 0x4b9e: 0x0080, 0x4b9f: 0x0080, 0x4ba0: 0x0080, 0x4ba1: 0x0080, 0x4ba2: 0x0080, 0x4ba3: 0x0080, + 0x4ba4: 0x0080, 0x4ba5: 0x0080, 0x4ba6: 0x0080, 0x4ba7: 0x0080, 0x4ba8: 0x0080, 0x4ba9: 0x0080, + 0x4baa: 0x0080, 0x4bab: 0x0080, 0x4bac: 0x0080, + // Block 0x12f, offset 0x4bc0 + 0x4be6: 0x0080, 0x4be7: 0x0080, 0x4be8: 0x0080, 0x4be9: 0x0080, + 0x4bea: 0x0080, 0x4beb: 0x0080, 0x4bec: 0x0080, 0x4bed: 0x0080, 0x4bee: 0x0080, 0x4bef: 0x0080, + 0x4bf0: 0x0080, 0x4bf1: 0x0080, 0x4bf2: 0x0080, 0x4bf3: 0x0080, 0x4bf4: 0x0080, 0x4bf5: 0x0080, + 0x4bf6: 0x0080, 0x4bf7: 0x0080, 0x4bf8: 0x0080, 0x4bf9: 0x0080, 0x4bfa: 0x0080, 0x4bfb: 0x0080, + 0x4bfc: 0x0080, 0x4bfd: 0x0080, 0x4bfe: 0x0080, 0x4bff: 0x0080, + // Block 0x130, offset 0x4c00 + 0x4c00: 0x008c, 0x4c01: 0x0080, 0x4c02: 0x0080, + 0x4c10: 0x0080, 0x4c11: 0x0080, + 0x4c12: 0x0080, 0x4c13: 0x0080, 0x4c14: 0x0080, 0x4c15: 0x0080, 0x4c16: 0x0080, 0x4c17: 0x0080, + 0x4c18: 0x0080, 0x4c19: 0x0080, 0x4c1a: 0x0080, 0x4c1b: 0x0080, 0x4c1c: 0x0080, 0x4c1d: 0x0080, + 0x4c1e: 0x0080, 0x4c1f: 0x0080, 0x4c20: 0x0080, 0x4c21: 0x0080, 0x4c22: 0x0080, 0x4c23: 0x0080, + 0x4c24: 0x0080, 0x4c25: 0x0080, 0x4c26: 0x0080, 0x4c27: 0x0080, 0x4c28: 0x0080, 0x4c29: 0x0080, + 0x4c2a: 0x0080, 0x4c2b: 0x0080, 0x4c2c: 0x0080, 0x4c2d: 0x0080, 0x4c2e: 0x0080, 0x4c2f: 0x0080, + 0x4c30: 0x0080, 0x4c31: 0x0080, 0x4c32: 0x0080, 0x4c33: 0x0080, 0x4c34: 0x0080, 0x4c35: 0x0080, + 0x4c36: 0x0080, 0x4c37: 0x0080, 0x4c38: 0x0080, 0x4c39: 0x0080, 0x4c3a: 0x0080, 0x4c3b: 0x0080, + // Block 0x131, offset 0x4c40 + 0x4c40: 0x0080, 0x4c41: 0x0080, 0x4c42: 0x0080, 0x4c43: 0x0080, 0x4c44: 0x0080, 0x4c45: 0x0080, + 0x4c46: 0x0080, 0x4c47: 0x0080, 0x4c48: 0x0080, + 0x4c50: 0x0080, 0x4c51: 0x0080, + // Block 0x132, offset 0x4c80 + 0x4c80: 0x0080, 0x4c81: 0x0080, 0x4c82: 0x0080, 0x4c83: 0x0080, 0x4c84: 0x0080, 0x4c85: 0x0080, + 0x4c86: 0x0080, 0x4c87: 0x0080, 0x4c88: 0x0080, 0x4c89: 0x0080, 0x4c8a: 0x0080, 0x4c8b: 0x0080, + 0x4c8c: 0x0080, 0x4c8d: 0x0080, 0x4c8e: 0x0080, 0x4c8f: 0x0080, 0x4c90: 0x0080, 0x4c91: 0x0080, + 0x4c92: 0x0080, + 0x4ca0: 0x0080, 0x4ca1: 0x0080, 0x4ca2: 0x0080, 0x4ca3: 0x0080, + 0x4ca4: 0x0080, 0x4ca5: 0x0080, 0x4ca6: 0x0080, 0x4ca7: 0x0080, 0x4ca8: 0x0080, 0x4ca9: 0x0080, + 0x4caa: 0x0080, 0x4cab: 0x0080, 0x4cac: 0x0080, + 0x4cb0: 0x0080, 0x4cb1: 0x0080, 0x4cb2: 0x0080, 0x4cb3: 0x0080, 0x4cb4: 0x0080, 0x4cb5: 0x0080, + 0x4cb6: 0x0080, + // Block 0x133, offset 0x4cc0 + 0x4cc0: 0x0080, 0x4cc1: 0x0080, 0x4cc2: 0x0080, 0x4cc3: 0x0080, 0x4cc4: 0x0080, 0x4cc5: 0x0080, + 0x4cc6: 0x0080, 0x4cc7: 0x0080, 0x4cc8: 0x0080, 0x4cc9: 0x0080, 0x4cca: 0x0080, 0x4ccb: 0x0080, + 0x4ccc: 0x0080, 0x4ccd: 0x0080, 0x4cce: 0x0080, 0x4ccf: 0x0080, 0x4cd0: 0x0080, 0x4cd1: 0x0080, + 0x4cd2: 0x0080, 0x4cd3: 0x0080, 0x4cd4: 0x0080, 0x4cd5: 0x0080, 0x4cd6: 0x0080, 0x4cd7: 0x0080, + 0x4cd8: 0x0080, 0x4cd9: 0x0080, 0x4cda: 0x0080, 0x4cdb: 0x0080, 0x4cdc: 0x0080, 0x4cdd: 0x0080, + 0x4cde: 0x0080, 0x4cdf: 0x0080, 0x4ce0: 0x0080, 0x4ce1: 0x0080, 0x4ce2: 0x0080, 0x4ce3: 0x0080, + 0x4ce4: 0x0080, 0x4ce5: 0x0080, 0x4ce6: 0x0080, 0x4ce7: 0x0080, 0x4ce8: 0x0080, 0x4ce9: 0x0080, + 0x4cea: 0x0080, 0x4ceb: 0x0080, 0x4cec: 0x0080, 0x4ced: 0x0080, 0x4cee: 0x0080, 0x4cef: 0x0080, + 0x4cf0: 0x0080, 0x4cf1: 0x0080, 0x4cf2: 0x0080, 0x4cf3: 0x0080, + // Block 0x134, offset 0x4d00 + 0x4d00: 0x0080, 0x4d01: 0x0080, 0x4d02: 0x0080, 0x4d03: 0x0080, 0x4d04: 0x0080, 0x4d05: 0x0080, + 0x4d06: 0x0080, 0x4d07: 0x0080, 0x4d08: 0x0080, 0x4d09: 0x0080, 0x4d0a: 0x0080, 0x4d0b: 0x0080, + 0x4d0c: 0x0080, 0x4d0d: 0x0080, 0x4d0e: 0x0080, 0x4d0f: 0x0080, 0x4d10: 0x0080, 0x4d11: 0x0080, + 0x4d12: 0x0080, 0x4d13: 0x0080, 0x4d14: 0x0080, + // Block 0x135, offset 0x4d40 + 0x4d40: 0x0080, 0x4d41: 0x0080, 0x4d42: 0x0080, 0x4d43: 0x0080, 0x4d44: 0x0080, 0x4d45: 0x0080, + 0x4d46: 0x0080, 0x4d47: 0x0080, 0x4d48: 0x0080, 0x4d49: 0x0080, 0x4d4a: 0x0080, 0x4d4b: 0x0080, + 0x4d50: 0x0080, 0x4d51: 0x0080, + 0x4d52: 0x0080, 0x4d53: 0x0080, 0x4d54: 0x0080, 0x4d55: 0x0080, 0x4d56: 0x0080, 0x4d57: 0x0080, + 0x4d58: 0x0080, 0x4d59: 0x0080, 0x4d5a: 0x0080, 0x4d5b: 0x0080, 0x4d5c: 0x0080, 0x4d5d: 0x0080, + 0x4d5e: 0x0080, 0x4d5f: 0x0080, 0x4d60: 0x0080, 0x4d61: 0x0080, 0x4d62: 0x0080, 0x4d63: 0x0080, + 0x4d64: 0x0080, 0x4d65: 0x0080, 0x4d66: 0x0080, 0x4d67: 0x0080, 0x4d68: 0x0080, 0x4d69: 0x0080, + 0x4d6a: 0x0080, 0x4d6b: 0x0080, 0x4d6c: 0x0080, 0x4d6d: 0x0080, 0x4d6e: 0x0080, 0x4d6f: 0x0080, + 0x4d70: 0x0080, 0x4d71: 0x0080, 0x4d72: 0x0080, 0x4d73: 0x0080, 0x4d74: 0x0080, 0x4d75: 0x0080, + 0x4d76: 0x0080, 0x4d77: 0x0080, 0x4d78: 0x0080, 0x4d79: 0x0080, 0x4d7a: 0x0080, 0x4d7b: 0x0080, + 0x4d7c: 0x0080, 0x4d7d: 0x0080, 0x4d7e: 0x0080, 0x4d7f: 0x0080, + // Block 0x136, offset 0x4d80 + 0x4d80: 0x0080, 0x4d81: 0x0080, 0x4d82: 0x0080, 0x4d83: 0x0080, 0x4d84: 0x0080, 0x4d85: 0x0080, + 0x4d86: 0x0080, 0x4d87: 0x0080, + 0x4d90: 0x0080, 0x4d91: 0x0080, + 0x4d92: 0x0080, 0x4d93: 0x0080, 0x4d94: 0x0080, 0x4d95: 0x0080, 0x4d96: 0x0080, 0x4d97: 0x0080, + 0x4d98: 0x0080, 0x4d99: 0x0080, + 0x4da0: 0x0080, 0x4da1: 0x0080, 0x4da2: 0x0080, 0x4da3: 0x0080, + 0x4da4: 0x0080, 0x4da5: 0x0080, 0x4da6: 0x0080, 0x4da7: 0x0080, 0x4da8: 0x0080, 0x4da9: 0x0080, + 0x4daa: 0x0080, 0x4dab: 0x0080, 0x4dac: 0x0080, 0x4dad: 0x0080, 0x4dae: 0x0080, 0x4daf: 0x0080, + 0x4db0: 0x0080, 0x4db1: 0x0080, 0x4db2: 0x0080, 0x4db3: 0x0080, 0x4db4: 0x0080, 0x4db5: 0x0080, + 0x4db6: 0x0080, 0x4db7: 0x0080, 0x4db8: 0x0080, 0x4db9: 0x0080, 0x4dba: 0x0080, 0x4dbb: 0x0080, + 0x4dbc: 0x0080, 0x4dbd: 0x0080, 0x4dbe: 0x0080, 0x4dbf: 0x0080, + // Block 0x137, offset 0x4dc0 + 0x4dc0: 0x0080, 0x4dc1: 0x0080, 0x4dc2: 0x0080, 0x4dc3: 0x0080, 0x4dc4: 0x0080, 0x4dc5: 0x0080, + 0x4dc6: 0x0080, 0x4dc7: 0x0080, + 0x4dd0: 0x0080, 0x4dd1: 0x0080, + 0x4dd2: 0x0080, 0x4dd3: 0x0080, 0x4dd4: 0x0080, 0x4dd5: 0x0080, 0x4dd6: 0x0080, 0x4dd7: 0x0080, + 0x4dd8: 0x0080, 0x4dd9: 0x0080, 0x4dda: 0x0080, 0x4ddb: 0x0080, 0x4ddc: 0x0080, 0x4ddd: 0x0080, + 0x4dde: 0x0080, 0x4ddf: 0x0080, 0x4de0: 0x0080, 0x4de1: 0x0080, 0x4de2: 0x0080, 0x4de3: 0x0080, + 0x4de4: 0x0080, 0x4de5: 0x0080, 0x4de6: 0x0080, 0x4de7: 0x0080, 0x4de8: 0x0080, 0x4de9: 0x0080, + 0x4dea: 0x0080, 0x4deb: 0x0080, 0x4dec: 0x0080, 0x4ded: 0x0080, + // Block 0x138, offset 0x4e00 + 0x4e10: 0x0080, 0x4e11: 0x0080, + 0x4e12: 0x0080, 0x4e13: 0x0080, 0x4e14: 0x0080, 0x4e15: 0x0080, 0x4e16: 0x0080, 0x4e17: 0x0080, + 0x4e18: 0x0080, 0x4e19: 0x0080, 0x4e1a: 0x0080, 0x4e1b: 0x0080, 0x4e1c: 0x0080, 0x4e1d: 0x0080, + 0x4e1e: 0x0080, 0x4e20: 0x0080, 0x4e21: 0x0080, 0x4e22: 0x0080, 0x4e23: 0x0080, + 0x4e24: 0x0080, 0x4e25: 0x0080, 0x4e26: 0x0080, 0x4e27: 0x0080, + 0x4e30: 0x0080, 0x4e33: 0x0080, 0x4e34: 0x0080, 0x4e35: 0x0080, + 0x4e36: 0x0080, 0x4e37: 0x0080, 0x4e38: 0x0080, 0x4e39: 0x0080, 0x4e3a: 0x0080, 0x4e3b: 0x0080, + 0x4e3c: 0x0080, 0x4e3d: 0x0080, 0x4e3e: 0x0080, + // Block 0x139, offset 0x4e40 + 0x4e40: 0x0080, 0x4e41: 0x0080, 0x4e42: 0x0080, 0x4e43: 0x0080, 0x4e44: 0x0080, 0x4e45: 0x0080, + 0x4e46: 0x0080, 0x4e47: 0x0080, 0x4e48: 0x0080, 0x4e49: 0x0080, 0x4e4a: 0x0080, 0x4e4b: 0x0080, + 0x4e50: 0x0080, 0x4e51: 0x0080, + 0x4e52: 0x0080, 0x4e53: 0x0080, 0x4e54: 0x0080, 0x4e55: 0x0080, 0x4e56: 0x0080, 0x4e57: 0x0080, + 0x4e58: 0x0080, 0x4e59: 0x0080, 0x4e5a: 0x0080, 0x4e5b: 0x0080, 0x4e5c: 0x0080, 0x4e5d: 0x0080, + 0x4e5e: 0x0080, + // Block 0x13a, offset 0x4e80 + 0x4e80: 0x0080, 0x4e81: 0x0080, 0x4e82: 0x0080, 0x4e83: 0x0080, 0x4e84: 0x0080, 0x4e85: 0x0080, + 0x4e86: 0x0080, 0x4e87: 0x0080, 0x4e88: 0x0080, 0x4e89: 0x0080, 0x4e8a: 0x0080, 0x4e8b: 0x0080, + 0x4e8c: 0x0080, 0x4e8d: 0x0080, 0x4e8e: 0x0080, 0x4e8f: 0x0080, 0x4e90: 0x0080, 0x4e91: 0x0080, + // Block 0x13b, offset 0x4ec0 + 0x4ec0: 0x0080, + // Block 0x13c, offset 0x4f00 + 0x4f00: 0x00cc, 0x4f01: 0x00cc, 0x4f02: 0x00cc, 0x4f03: 0x00cc, 0x4f04: 0x00cc, 0x4f05: 0x00cc, + 0x4f06: 0x00cc, 0x4f07: 0x00cc, 0x4f08: 0x00cc, 0x4f09: 0x00cc, 0x4f0a: 0x00cc, 0x4f0b: 0x00cc, + 0x4f0c: 0x00cc, 0x4f0d: 0x00cc, 0x4f0e: 0x00cc, 0x4f0f: 0x00cc, 0x4f10: 0x00cc, 0x4f11: 0x00cc, + 0x4f12: 0x00cc, 0x4f13: 0x00cc, 0x4f14: 0x00cc, 0x4f15: 0x00cc, 0x4f16: 0x00cc, + // Block 0x13d, offset 0x4f40 + 0x4f40: 0x00cc, 0x4f41: 0x00cc, 0x4f42: 0x00cc, 0x4f43: 0x00cc, 0x4f44: 0x00cc, 0x4f45: 0x00cc, + 0x4f46: 0x00cc, 0x4f47: 0x00cc, 0x4f48: 0x00cc, 0x4f49: 0x00cc, 0x4f4a: 0x00cc, 0x4f4b: 0x00cc, + 0x4f4c: 0x00cc, 0x4f4d: 0x00cc, 0x4f4e: 0x00cc, 0x4f4f: 0x00cc, 0x4f50: 0x00cc, 0x4f51: 0x00cc, + 0x4f52: 0x00cc, 0x4f53: 0x00cc, 0x4f54: 0x00cc, 0x4f55: 0x00cc, 0x4f56: 0x00cc, 0x4f57: 0x00cc, + 0x4f58: 0x00cc, 0x4f59: 0x00cc, 0x4f5a: 0x00cc, 0x4f5b: 0x00cc, 0x4f5c: 0x00cc, 0x4f5d: 0x00cc, + 0x4f5e: 0x00cc, 0x4f5f: 0x00cc, 0x4f60: 0x00cc, 0x4f61: 0x00cc, 0x4f62: 0x00cc, 0x4f63: 0x00cc, + 0x4f64: 0x00cc, 0x4f65: 0x00cc, 0x4f66: 0x00cc, 0x4f67: 0x00cc, 0x4f68: 0x00cc, 0x4f69: 0x00cc, + 0x4f6a: 0x00cc, 0x4f6b: 0x00cc, 0x4f6c: 0x00cc, 0x4f6d: 0x00cc, 0x4f6e: 0x00cc, 0x4f6f: 0x00cc, + 0x4f70: 0x00cc, 0x4f71: 0x00cc, 0x4f72: 0x00cc, 0x4f73: 0x00cc, 0x4f74: 0x00cc, + // Block 0x13e, offset 0x4f80 + 0x4f80: 0x00cc, 0x4f81: 0x00cc, 0x4f82: 0x00cc, 0x4f83: 0x00cc, 0x4f84: 0x00cc, 0x4f85: 0x00cc, + 0x4f86: 0x00cc, 0x4f87: 0x00cc, 0x4f88: 0x00cc, 0x4f89: 0x00cc, 0x4f8a: 0x00cc, 0x4f8b: 0x00cc, + 0x4f8c: 0x00cc, 0x4f8d: 0x00cc, 0x4f8e: 0x00cc, 0x4f8f: 0x00cc, 0x4f90: 0x00cc, 0x4f91: 0x00cc, + 0x4f92: 0x00cc, 0x4f93: 0x00cc, 0x4f94: 0x00cc, 0x4f95: 0x00cc, 0x4f96: 0x00cc, 0x4f97: 0x00cc, + 0x4f98: 0x00cc, 0x4f99: 0x00cc, 0x4f9a: 0x00cc, 0x4f9b: 0x00cc, 0x4f9c: 0x00cc, 0x4f9d: 0x00cc, + 0x4fa0: 0x00cc, 0x4fa1: 0x00cc, 0x4fa2: 0x00cc, 0x4fa3: 0x00cc, + 0x4fa4: 0x00cc, 0x4fa5: 0x00cc, 0x4fa6: 0x00cc, 0x4fa7: 0x00cc, 0x4fa8: 0x00cc, 0x4fa9: 0x00cc, + 0x4faa: 0x00cc, 0x4fab: 0x00cc, 0x4fac: 0x00cc, 0x4fad: 0x00cc, 0x4fae: 0x00cc, 0x4faf: 0x00cc, + 0x4fb0: 0x00cc, 0x4fb1: 0x00cc, 0x4fb2: 0x00cc, 0x4fb3: 0x00cc, 0x4fb4: 0x00cc, 0x4fb5: 0x00cc, + 0x4fb6: 0x00cc, 0x4fb7: 0x00cc, 0x4fb8: 0x00cc, 0x4fb9: 0x00cc, 0x4fba: 0x00cc, 0x4fbb: 0x00cc, + 0x4fbc: 0x00cc, 0x4fbd: 0x00cc, 0x4fbe: 0x00cc, 0x4fbf: 0x00cc, + // Block 0x13f, offset 0x4fc0 + 0x4fc0: 0x00cc, 0x4fc1: 0x00cc, 0x4fc2: 0x00cc, 0x4fc3: 0x00cc, 0x4fc4: 0x00cc, 0x4fc5: 0x00cc, + 0x4fc6: 0x00cc, 0x4fc7: 0x00cc, 0x4fc8: 0x00cc, 0x4fc9: 0x00cc, 0x4fca: 0x00cc, 0x4fcb: 0x00cc, + 0x4fcc: 0x00cc, 0x4fcd: 0x00cc, 0x4fce: 0x00cc, 0x4fcf: 0x00cc, 0x4fd0: 0x00cc, 0x4fd1: 0x00cc, + 0x4fd2: 0x00cc, 0x4fd3: 0x00cc, 0x4fd4: 0x00cc, 0x4fd5: 0x00cc, 0x4fd6: 0x00cc, 0x4fd7: 0x00cc, + 0x4fd8: 0x00cc, 0x4fd9: 0x00cc, 0x4fda: 0x00cc, 0x4fdb: 0x00cc, 0x4fdc: 0x00cc, 0x4fdd: 0x00cc, + 0x4fde: 0x00cc, 0x4fdf: 0x00cc, 0x4fe0: 0x00cc, 0x4fe1: 0x00cc, + // Block 0x140, offset 0x5000 + 0x5000: 0x008c, 0x5001: 0x008c, 0x5002: 0x008c, 0x5003: 0x008c, 0x5004: 0x008c, 0x5005: 0x008c, + 0x5006: 0x008c, 0x5007: 0x008c, 0x5008: 0x008c, 0x5009: 0x008c, 0x500a: 0x008c, 0x500b: 0x008c, + 0x500c: 0x008c, 0x500d: 0x008c, 0x500e: 0x008c, 0x500f: 0x008c, 0x5010: 0x008c, 0x5011: 0x008c, + 0x5012: 0x008c, 0x5013: 0x008c, 0x5014: 0x008c, 0x5015: 0x008c, 0x5016: 0x008c, 0x5017: 0x008c, + 0x5018: 0x008c, 0x5019: 0x008c, 0x501a: 0x008c, 0x501b: 0x008c, 0x501c: 0x008c, 0x501d: 0x008c, + // Block 0x141, offset 0x5040 + 0x5041: 0x0040, + 0x5060: 0x0040, 0x5061: 0x0040, 0x5062: 0x0040, 0x5063: 0x0040, + 0x5064: 0x0040, 0x5065: 0x0040, 0x5066: 0x0040, 0x5067: 0x0040, 0x5068: 0x0040, 0x5069: 0x0040, + 0x506a: 0x0040, 0x506b: 0x0040, 0x506c: 0x0040, 0x506d: 0x0040, 0x506e: 0x0040, 0x506f: 0x0040, + 0x5070: 0x0040, 0x5071: 0x0040, 0x5072: 0x0040, 0x5073: 0x0040, 0x5074: 0x0040, 0x5075: 0x0040, + 0x5076: 0x0040, 0x5077: 0x0040, 0x5078: 0x0040, 0x5079: 0x0040, 0x507a: 0x0040, 0x507b: 0x0040, + 0x507c: 0x0040, 0x507d: 0x0040, 0x507e: 0x0040, 0x507f: 0x0040, + // Block 0x142, offset 0x5080 + 0x5080: 0x0040, 0x5081: 0x0040, 0x5082: 0x0040, 0x5083: 0x0040, 0x5084: 0x0040, 0x5085: 0x0040, + 0x5086: 0x0040, 0x5087: 0x0040, 0x5088: 0x0040, 0x5089: 0x0040, 0x508a: 0x0040, 0x508b: 0x0040, + 0x508c: 0x0040, 0x508d: 0x0040, 0x508e: 0x0040, 0x508f: 0x0040, 0x5090: 0x0040, 0x5091: 0x0040, + 0x5092: 0x0040, 0x5093: 0x0040, 0x5094: 0x0040, 0x5095: 0x0040, 0x5096: 0x0040, 0x5097: 0x0040, + 0x5098: 0x0040, 0x5099: 0x0040, 0x509a: 0x0040, 0x509b: 0x0040, 0x509c: 0x0040, 0x509d: 0x0040, + 0x509e: 0x0040, 0x509f: 0x0040, 0x50a0: 0x0040, 0x50a1: 0x0040, 0x50a2: 0x0040, 0x50a3: 0x0040, + 0x50a4: 0x0040, 0x50a5: 0x0040, 0x50a6: 0x0040, 0x50a7: 0x0040, 0x50a8: 0x0040, 0x50a9: 0x0040, + 0x50aa: 0x0040, 0x50ab: 0x0040, 0x50ac: 0x0040, 0x50ad: 0x0040, 0x50ae: 0x0040, 0x50af: 0x0040, + // Block 0x143, offset 0x50c0 + 0x50c0: 0x0040, 0x50c1: 0x0040, 0x50c2: 0x0040, 0x50c3: 0x0040, 0x50c4: 0x0040, 0x50c5: 0x0040, + 0x50c6: 0x0040, 0x50c7: 0x0040, 0x50c8: 0x0040, 0x50c9: 0x0040, 0x50ca: 0x0040, 0x50cb: 0x0040, + 0x50cc: 0x0040, 0x50cd: 0x0040, 0x50ce: 0x0040, 0x50cf: 0x0040, 0x50d0: 0x0040, 0x50d1: 0x0040, + 0x50d2: 0x0040, 0x50d3: 0x0040, 0x50d4: 0x0040, 0x50d5: 0x0040, 0x50d6: 0x0040, 0x50d7: 0x0040, + 0x50d8: 0x0040, 0x50d9: 0x0040, 0x50da: 0x0040, 0x50db: 0x0040, 0x50dc: 0x0040, 0x50dd: 0x0040, + 0x50de: 0x0040, 0x50df: 0x0040, 0x50e0: 0x0040, 0x50e1: 0x0040, 0x50e2: 0x0040, 0x50e3: 0x0040, + 0x50e4: 0x0040, 0x50e5: 0x0040, 0x50e6: 0x0040, 0x50e7: 0x0040, 0x50e8: 0x0040, 0x50e9: 0x0040, + 0x50ea: 0x0040, 0x50eb: 0x0040, 0x50ec: 0x0040, 0x50ed: 0x0040, 0x50ee: 0x0040, 0x50ef: 0x0040, + 0x50f0: 0x0040, 0x50f1: 0x0040, 0x50f2: 0x0040, 0x50f3: 0x0040, 0x50f4: 0x0040, 0x50f5: 0x0040, + 0x50f6: 0x0040, 0x50f7: 0x0040, 0x50f8: 0x0040, 0x50f9: 0x0040, 0x50fa: 0x0040, 0x50fb: 0x0040, + 0x50fc: 0x0040, 0x50fd: 0x0040, +} + +// derivedPropertiesIndex: 36 blocks, 2304 entries, 4608 bytes +// Block 0 is the zero block. +var derivedPropertiesIndex = [2304]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc6: 0x05, 0xc7: 0x06, + 0xc8: 0x05, 0xc9: 0x05, 0xca: 0x07, 0xcb: 0x08, 0xcc: 0x09, 0xcd: 0x0a, 0xce: 0x0b, 0xcf: 0x0c, + 0xd0: 0x05, 0xd1: 0x05, 0xd2: 0x0d, 0xd3: 0x05, 0xd4: 0x0e, 0xd5: 0x0f, 0xd6: 0x10, 0xd7: 0x11, + 0xd8: 0x12, 0xd9: 0x13, 0xda: 0x14, 0xdb: 0x15, 0xdc: 0x16, 0xdd: 0x17, 0xde: 0x18, 0xdf: 0x19, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x0a, 0xec: 0x0a, 0xed: 0x0b, 0xee: 0x0c, 0xef: 0x0d, + 0xf0: 0x1d, 0xf3: 0x20, 0xf4: 0x21, + // Block 0x4, offset 0x100 + 0x120: 0x1a, 0x121: 0x1b, 0x122: 0x1c, 0x123: 0x1d, 0x124: 0x1e, 0x125: 0x1f, 0x126: 0x20, 0x127: 0x21, + 0x128: 0x22, 0x129: 0x23, 0x12a: 0x24, 0x12b: 0x25, 0x12c: 0x26, 0x12d: 0x27, 0x12e: 0x28, 0x12f: 0x29, + 0x130: 0x2a, 0x131: 0x2b, 0x132: 0x2c, 0x133: 0x2d, 0x134: 0x2e, 0x135: 0x2f, 0x136: 0x30, 0x137: 0x31, + 0x138: 0x32, 0x139: 0x33, 0x13a: 0x34, 0x13b: 0x35, 0x13c: 0x36, 0x13d: 0x37, 0x13e: 0x38, 0x13f: 0x39, + // Block 0x5, offset 0x140 + 0x140: 0x3a, 0x141: 0x3b, 0x142: 0x3c, 0x143: 0x3d, 0x144: 0x3e, 0x145: 0x3e, 0x146: 0x3e, 0x147: 0x3e, + 0x148: 0x05, 0x149: 0x3f, 0x14a: 0x40, 0x14b: 0x41, 0x14c: 0x42, 0x14d: 0x43, 0x14e: 0x44, 0x14f: 0x45, + 0x150: 0x46, 0x151: 0x05, 0x152: 0x05, 0x153: 0x05, 0x154: 0x05, 0x155: 0x05, 0x156: 0x05, 0x157: 0x05, + 0x158: 0x05, 0x159: 0x47, 0x15a: 0x48, 0x15b: 0x49, 0x15c: 0x4a, 0x15d: 0x4b, 0x15e: 0x4c, 0x15f: 0x4d, + 0x160: 0x4e, 0x161: 0x4f, 0x162: 0x50, 0x163: 0x51, 0x164: 0x52, 0x165: 0x53, 0x166: 0x54, 0x167: 0x55, + 0x168: 0x56, 0x169: 0x57, 0x16a: 0x58, 0x16c: 0x59, 0x16d: 0x5a, 0x16e: 0x5b, 0x16f: 0x5c, + 0x170: 0x5d, 0x171: 0x5e, 0x172: 0x5f, 0x173: 0x60, 0x174: 0x61, 0x175: 0x62, 0x176: 0x63, 0x177: 0x64, + 0x178: 0x05, 0x179: 0x05, 0x17a: 0x65, 0x17b: 0x05, 0x17c: 0x66, 0x17d: 0x67, 0x17e: 0x68, 0x17f: 0x69, + // Block 0x6, offset 0x180 + 0x180: 0x6a, 0x181: 0x6b, 0x182: 0x6c, 0x183: 0x6d, 0x184: 0x6e, 0x185: 0x6f, 0x186: 0x70, 0x187: 0x71, + 0x188: 0x71, 0x189: 0x71, 0x18a: 0x71, 0x18b: 0x71, 0x18c: 0x71, 0x18d: 0x71, 0x18e: 0x71, 0x18f: 0x72, + 0x190: 0x73, 0x191: 0x74, 0x192: 0x71, 0x193: 0x71, 0x194: 0x71, 0x195: 0x71, 0x196: 0x71, 0x197: 0x71, + 0x198: 0x71, 0x199: 0x71, 0x19a: 0x71, 0x19b: 0x71, 0x19c: 0x71, 0x19d: 0x71, 0x19e: 0x71, 0x19f: 0x71, + 0x1a0: 0x71, 0x1a1: 0x71, 0x1a2: 0x71, 0x1a3: 0x71, 0x1a4: 0x71, 0x1a5: 0x71, 0x1a6: 0x71, 0x1a7: 0x71, + 0x1a8: 0x71, 0x1a9: 0x71, 0x1aa: 0x71, 0x1ab: 0x71, 0x1ac: 0x71, 0x1ad: 0x75, 0x1ae: 0x76, 0x1af: 0x77, + 0x1b0: 0x78, 0x1b1: 0x79, 0x1b2: 0x05, 0x1b3: 0x7a, 0x1b4: 0x7b, 0x1b5: 0x7c, 0x1b6: 0x7d, 0x1b7: 0x7e, + 0x1b8: 0x7f, 0x1b9: 0x80, 0x1ba: 0x81, 0x1bb: 0x82, 0x1bc: 0x83, 0x1bd: 0x83, 0x1be: 0x83, 0x1bf: 0x84, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x85, 0x1c1: 0x86, 0x1c2: 0x87, 0x1c3: 0x88, 0x1c4: 0x89, 0x1c5: 0x8a, 0x1c6: 0x8b, 0x1c7: 0x8c, + 0x1c8: 0x8d, 0x1c9: 0x71, 0x1ca: 0x71, 0x1cb: 0x8e, 0x1cc: 0x83, 0x1cd: 0x8f, 0x1ce: 0x71, 0x1cf: 0x71, + 0x1d0: 0x90, 0x1d1: 0x90, 0x1d2: 0x90, 0x1d3: 0x90, 0x1d4: 0x90, 0x1d5: 0x90, 0x1d6: 0x90, 0x1d7: 0x90, + 0x1d8: 0x90, 0x1d9: 0x90, 0x1da: 0x90, 0x1db: 0x90, 0x1dc: 0x90, 0x1dd: 0x90, 0x1de: 0x90, 0x1df: 0x90, + 0x1e0: 0x90, 0x1e1: 0x90, 0x1e2: 0x90, 0x1e3: 0x90, 0x1e4: 0x90, 0x1e5: 0x90, 0x1e6: 0x90, 0x1e7: 0x90, + 0x1e8: 0x90, 0x1e9: 0x90, 0x1ea: 0x90, 0x1eb: 0x90, 0x1ec: 0x90, 0x1ed: 0x90, 0x1ee: 0x90, 0x1ef: 0x90, + 0x1f0: 0x90, 0x1f1: 0x90, 0x1f2: 0x90, 0x1f3: 0x90, 0x1f4: 0x90, 0x1f5: 0x90, 0x1f6: 0x90, 0x1f7: 0x90, + 0x1f8: 0x90, 0x1f9: 0x90, 0x1fa: 0x90, 0x1fb: 0x90, 0x1fc: 0x90, 0x1fd: 0x90, 0x1fe: 0x90, 0x1ff: 0x90, + // Block 0x8, offset 0x200 + 0x200: 0x90, 0x201: 0x90, 0x202: 0x90, 0x203: 0x90, 0x204: 0x90, 0x205: 0x90, 0x206: 0x90, 0x207: 0x90, + 0x208: 0x90, 0x209: 0x90, 0x20a: 0x90, 0x20b: 0x90, 0x20c: 0x90, 0x20d: 0x90, 0x20e: 0x90, 0x20f: 0x90, + 0x210: 0x90, 0x211: 0x90, 0x212: 0x90, 0x213: 0x90, 0x214: 0x90, 0x215: 0x90, 0x216: 0x90, 0x217: 0x90, + 0x218: 0x90, 0x219: 0x90, 0x21a: 0x90, 0x21b: 0x90, 0x21c: 0x90, 0x21d: 0x90, 0x21e: 0x90, 0x21f: 0x90, + 0x220: 0x90, 0x221: 0x90, 0x222: 0x90, 0x223: 0x90, 0x224: 0x90, 0x225: 0x90, 0x226: 0x90, 0x227: 0x90, + 0x228: 0x90, 0x229: 0x90, 0x22a: 0x90, 0x22b: 0x90, 0x22c: 0x90, 0x22d: 0x90, 0x22e: 0x90, 0x22f: 0x90, + 0x230: 0x90, 0x231: 0x90, 0x232: 0x90, 0x233: 0x90, 0x234: 0x90, 0x235: 0x90, 0x236: 0x91, 0x237: 0x71, + 0x238: 0x90, 0x239: 0x90, 0x23a: 0x90, 0x23b: 0x90, 0x23c: 0x90, 0x23d: 0x90, 0x23e: 0x90, 0x23f: 0x90, + // Block 0x9, offset 0x240 + 0x240: 0x90, 0x241: 0x90, 0x242: 0x90, 0x243: 0x90, 0x244: 0x90, 0x245: 0x90, 0x246: 0x90, 0x247: 0x90, + 0x248: 0x90, 0x249: 0x90, 0x24a: 0x90, 0x24b: 0x90, 0x24c: 0x90, 0x24d: 0x90, 0x24e: 0x90, 0x24f: 0x90, + 0x250: 0x90, 0x251: 0x90, 0x252: 0x90, 0x253: 0x90, 0x254: 0x90, 0x255: 0x90, 0x256: 0x90, 0x257: 0x90, + 0x258: 0x90, 0x259: 0x90, 0x25a: 0x90, 0x25b: 0x90, 0x25c: 0x90, 0x25d: 0x90, 0x25e: 0x90, 0x25f: 0x90, + 0x260: 0x90, 0x261: 0x90, 0x262: 0x90, 0x263: 0x90, 0x264: 0x90, 0x265: 0x90, 0x266: 0x90, 0x267: 0x90, + 0x268: 0x90, 0x269: 0x90, 0x26a: 0x90, 0x26b: 0x90, 0x26c: 0x90, 0x26d: 0x90, 0x26e: 0x90, 0x26f: 0x90, + 0x270: 0x90, 0x271: 0x90, 0x272: 0x90, 0x273: 0x90, 0x274: 0x90, 0x275: 0x90, 0x276: 0x90, 0x277: 0x90, + 0x278: 0x90, 0x279: 0x90, 0x27a: 0x90, 0x27b: 0x90, 0x27c: 0x90, 0x27d: 0x90, 0x27e: 0x90, 0x27f: 0x90, + // Block 0xa, offset 0x280 + 0x280: 0x90, 0x281: 0x90, 0x282: 0x90, 0x283: 0x90, 0x284: 0x90, 0x285: 0x90, 0x286: 0x90, 0x287: 0x90, + 0x288: 0x90, 0x289: 0x90, 0x28a: 0x90, 0x28b: 0x90, 0x28c: 0x90, 0x28d: 0x90, 0x28e: 0x90, 0x28f: 0x90, + 0x290: 0x90, 0x291: 0x90, 0x292: 0x90, 0x293: 0x90, 0x294: 0x90, 0x295: 0x90, 0x296: 0x90, 0x297: 0x90, + 0x298: 0x90, 0x299: 0x90, 0x29a: 0x90, 0x29b: 0x90, 0x29c: 0x90, 0x29d: 0x90, 0x29e: 0x90, 0x29f: 0x90, + 0x2a0: 0x90, 0x2a1: 0x90, 0x2a2: 0x90, 0x2a3: 0x90, 0x2a4: 0x90, 0x2a5: 0x90, 0x2a6: 0x90, 0x2a7: 0x90, + 0x2a8: 0x90, 0x2a9: 0x90, 0x2aa: 0x90, 0x2ab: 0x90, 0x2ac: 0x90, 0x2ad: 0x90, 0x2ae: 0x90, 0x2af: 0x90, + 0x2b0: 0x90, 0x2b1: 0x90, 0x2b2: 0x90, 0x2b3: 0x90, 0x2b4: 0x90, 0x2b5: 0x90, 0x2b6: 0x90, 0x2b7: 0x90, + 0x2b8: 0x90, 0x2b9: 0x90, 0x2ba: 0x90, 0x2bb: 0x90, 0x2bc: 0x90, 0x2bd: 0x90, 0x2be: 0x90, 0x2bf: 0x92, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x05, 0x2c1: 0x05, 0x2c2: 0x05, 0x2c3: 0x05, 0x2c4: 0x05, 0x2c5: 0x05, 0x2c6: 0x05, 0x2c7: 0x05, + 0x2c8: 0x05, 0x2c9: 0x05, 0x2ca: 0x05, 0x2cb: 0x05, 0x2cc: 0x05, 0x2cd: 0x05, 0x2ce: 0x05, 0x2cf: 0x05, + 0x2d0: 0x05, 0x2d1: 0x05, 0x2d2: 0x93, 0x2d3: 0x94, 0x2d4: 0x05, 0x2d5: 0x05, 0x2d6: 0x05, 0x2d7: 0x05, + 0x2d8: 0x95, 0x2d9: 0x96, 0x2da: 0x97, 0x2db: 0x98, 0x2dc: 0x99, 0x2dd: 0x9a, 0x2de: 0x9b, 0x2df: 0x9c, + 0x2e0: 0x9d, 0x2e1: 0x9e, 0x2e2: 0x05, 0x2e3: 0x9f, 0x2e4: 0xa0, 0x2e5: 0xa1, 0x2e6: 0xa2, 0x2e7: 0xa3, + 0x2e8: 0xa4, 0x2e9: 0xa5, 0x2ea: 0xa6, 0x2eb: 0xa7, 0x2ec: 0xa8, 0x2ed: 0xa9, 0x2ee: 0x05, 0x2ef: 0xaa, + 0x2f0: 0x05, 0x2f1: 0x05, 0x2f2: 0x05, 0x2f3: 0x05, 0x2f4: 0x05, 0x2f5: 0x05, 0x2f6: 0x05, 0x2f7: 0x05, + 0x2f8: 0x05, 0x2f9: 0x05, 0x2fa: 0x05, 0x2fb: 0x05, 0x2fc: 0x05, 0x2fd: 0x05, 0x2fe: 0x05, 0x2ff: 0x05, + // Block 0xc, offset 0x300 + 0x300: 0x05, 0x301: 0x05, 0x302: 0x05, 0x303: 0x05, 0x304: 0x05, 0x305: 0x05, 0x306: 0x05, 0x307: 0x05, + 0x308: 0x05, 0x309: 0x05, 0x30a: 0x05, 0x30b: 0x05, 0x30c: 0x05, 0x30d: 0x05, 0x30e: 0x05, 0x30f: 0x05, + 0x310: 0x05, 0x311: 0x05, 0x312: 0x05, 0x313: 0x05, 0x314: 0x05, 0x315: 0x05, 0x316: 0x05, 0x317: 0x05, + 0x318: 0x05, 0x319: 0x05, 0x31a: 0x05, 0x31b: 0x05, 0x31c: 0x05, 0x31d: 0x05, 0x31e: 0x05, 0x31f: 0x05, + 0x320: 0x05, 0x321: 0x05, 0x322: 0x05, 0x323: 0x05, 0x324: 0x05, 0x325: 0x05, 0x326: 0x05, 0x327: 0x05, + 0x328: 0x05, 0x329: 0x05, 0x32a: 0x05, 0x32b: 0x05, 0x32c: 0x05, 0x32d: 0x05, 0x32e: 0x05, 0x32f: 0x05, + 0x330: 0x05, 0x331: 0x05, 0x332: 0x05, 0x333: 0x05, 0x334: 0x05, 0x335: 0x05, 0x336: 0x05, 0x337: 0x05, + 0x338: 0x05, 0x339: 0x05, 0x33a: 0x05, 0x33b: 0x05, 0x33c: 0x05, 0x33d: 0x05, 0x33e: 0x05, 0x33f: 0x05, + // Block 0xd, offset 0x340 + 0x340: 0x05, 0x341: 0x05, 0x342: 0x05, 0x343: 0x05, 0x344: 0x05, 0x345: 0x05, 0x346: 0x05, 0x347: 0x05, + 0x348: 0x05, 0x349: 0x05, 0x34a: 0x05, 0x34b: 0x05, 0x34c: 0x05, 0x34d: 0x05, 0x34e: 0x05, 0x34f: 0x05, + 0x350: 0x05, 0x351: 0x05, 0x352: 0x05, 0x353: 0x05, 0x354: 0x05, 0x355: 0x05, 0x356: 0x05, 0x357: 0x05, + 0x358: 0x05, 0x359: 0x05, 0x35a: 0x05, 0x35b: 0x05, 0x35c: 0x05, 0x35d: 0x05, 0x35e: 0xab, 0x35f: 0xac, + // Block 0xe, offset 0x380 + 0x380: 0x3e, 0x381: 0x3e, 0x382: 0x3e, 0x383: 0x3e, 0x384: 0x3e, 0x385: 0x3e, 0x386: 0x3e, 0x387: 0x3e, + 0x388: 0x3e, 0x389: 0x3e, 0x38a: 0x3e, 0x38b: 0x3e, 0x38c: 0x3e, 0x38d: 0x3e, 0x38e: 0x3e, 0x38f: 0x3e, + 0x390: 0x3e, 0x391: 0x3e, 0x392: 0x3e, 0x393: 0x3e, 0x394: 0x3e, 0x395: 0x3e, 0x396: 0x3e, 0x397: 0x3e, + 0x398: 0x3e, 0x399: 0x3e, 0x39a: 0x3e, 0x39b: 0x3e, 0x39c: 0x3e, 0x39d: 0x3e, 0x39e: 0x3e, 0x39f: 0x3e, + 0x3a0: 0x3e, 0x3a1: 0x3e, 0x3a2: 0x3e, 0x3a3: 0x3e, 0x3a4: 0x3e, 0x3a5: 0x3e, 0x3a6: 0x3e, 0x3a7: 0x3e, + 0x3a8: 0x3e, 0x3a9: 0x3e, 0x3aa: 0x3e, 0x3ab: 0x3e, 0x3ac: 0x3e, 0x3ad: 0x3e, 0x3ae: 0x3e, 0x3af: 0x3e, + 0x3b0: 0x3e, 0x3b1: 0x3e, 0x3b2: 0x3e, 0x3b3: 0x3e, 0x3b4: 0x3e, 0x3b5: 0x3e, 0x3b6: 0x3e, 0x3b7: 0x3e, + 0x3b8: 0x3e, 0x3b9: 0x3e, 0x3ba: 0x3e, 0x3bb: 0x3e, 0x3bc: 0x3e, 0x3bd: 0x3e, 0x3be: 0x3e, 0x3bf: 0x3e, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x3e, 0x3c1: 0x3e, 0x3c2: 0x3e, 0x3c3: 0x3e, 0x3c4: 0x3e, 0x3c5: 0x3e, 0x3c6: 0x3e, 0x3c7: 0x3e, + 0x3c8: 0x3e, 0x3c9: 0x3e, 0x3ca: 0x3e, 0x3cb: 0x3e, 0x3cc: 0x3e, 0x3cd: 0x3e, 0x3ce: 0x3e, 0x3cf: 0x3e, + 0x3d0: 0x3e, 0x3d1: 0x3e, 0x3d2: 0x3e, 0x3d3: 0x3e, 0x3d4: 0x3e, 0x3d5: 0x3e, 0x3d6: 0x3e, 0x3d7: 0x3e, + 0x3d8: 0x3e, 0x3d9: 0x3e, 0x3da: 0x3e, 0x3db: 0x3e, 0x3dc: 0x3e, 0x3dd: 0x3e, 0x3de: 0x3e, 0x3df: 0x3e, + 0x3e0: 0x3e, 0x3e1: 0x3e, 0x3e2: 0x3e, 0x3e3: 0x3e, 0x3e4: 0x83, 0x3e5: 0x83, 0x3e6: 0x83, 0x3e7: 0x83, + 0x3e8: 0xad, 0x3e9: 0xae, 0x3ea: 0x83, 0x3eb: 0xaf, 0x3ec: 0xb0, 0x3ed: 0xb1, 0x3ee: 0x71, 0x3ef: 0xb2, + 0x3f0: 0x71, 0x3f1: 0x71, 0x3f2: 0x71, 0x3f3: 0x71, 0x3f4: 0x71, 0x3f5: 0xb3, 0x3f6: 0xb4, 0x3f7: 0xb5, + 0x3f8: 0xb6, 0x3f9: 0xb7, 0x3fa: 0x71, 0x3fb: 0xb8, 0x3fc: 0xb9, 0x3fd: 0xba, 0x3fe: 0xbb, 0x3ff: 0xbc, + // Block 0x10, offset 0x400 + 0x400: 0xbd, 0x401: 0xbe, 0x402: 0x05, 0x403: 0xbf, 0x404: 0xc0, 0x405: 0xc1, 0x406: 0xc2, 0x407: 0xc3, + 0x40a: 0xc4, 0x40b: 0xc5, 0x40c: 0xc6, 0x40d: 0xc7, 0x40e: 0xc8, 0x40f: 0xc9, + 0x410: 0x05, 0x411: 0x05, 0x412: 0xca, 0x413: 0xcb, 0x414: 0xcc, 0x415: 0xcd, + 0x418: 0x05, 0x419: 0x05, 0x41a: 0x05, 0x41b: 0x05, 0x41c: 0xce, 0x41d: 0xcf, + 0x420: 0xd0, 0x421: 0xd1, 0x422: 0xd2, 0x423: 0xd3, 0x424: 0xd4, 0x426: 0xd5, 0x427: 0xb4, + 0x428: 0xd6, 0x429: 0xd7, 0x42a: 0xd8, 0x42b: 0xd9, 0x42c: 0xda, 0x42d: 0xdb, 0x42e: 0xdc, + 0x430: 0x05, 0x431: 0x5f, 0x432: 0xdd, 0x433: 0xde, + 0x439: 0xdf, + // Block 0x11, offset 0x440 + 0x440: 0xe0, 0x441: 0xe1, 0x442: 0xe2, 0x443: 0xe3, 0x444: 0xe4, 0x445: 0xe5, 0x446: 0xe6, 0x447: 0xe7, + 0x448: 0xe8, 0x44a: 0xe9, 0x44b: 0xea, 0x44c: 0xeb, 0x44d: 0xec, + 0x450: 0xed, 0x451: 0xee, 0x452: 0xef, 0x453: 0xf0, 0x456: 0xf1, 0x457: 0xf2, + 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0xf5, 0x45b: 0xf6, 0x45c: 0xf7, + 0x462: 0xf8, 0x463: 0xf9, + 0x46b: 0xfa, + 0x470: 0xfb, 0x471: 0xfc, 0x472: 0xfd, + // Block 0x12, offset 0x480 + 0x480: 0x05, 0x481: 0x05, 0x482: 0x05, 0x483: 0x05, 0x484: 0x05, 0x485: 0x05, 0x486: 0x05, 0x487: 0x05, + 0x488: 0x05, 0x489: 0x05, 0x48a: 0x05, 0x48b: 0x05, 0x48c: 0x05, 0x48d: 0x05, 0x48e: 0xfe, + 0x490: 0x71, 0x491: 0xff, 0x492: 0x05, 0x493: 0x05, 0x494: 0x05, 0x495: 0x100, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x05, 0x4c1: 0x05, 0x4c2: 0x05, 0x4c3: 0x05, 0x4c4: 0x05, 0x4c5: 0x05, 0x4c6: 0x05, 0x4c7: 0x05, + 0x4c8: 0x05, 0x4c9: 0x05, 0x4ca: 0x05, 0x4cb: 0x05, 0x4cc: 0x05, 0x4cd: 0x05, 0x4ce: 0x05, 0x4cf: 0x05, + 0x4d0: 0x101, + // Block 0x14, offset 0x500 + 0x510: 0x05, 0x511: 0x05, 0x512: 0x05, 0x513: 0x05, 0x514: 0x05, 0x515: 0x05, 0x516: 0x05, 0x517: 0x05, + 0x518: 0x05, 0x519: 0x102, + // Block 0x15, offset 0x540 + 0x560: 0x05, 0x561: 0x05, 0x562: 0x05, 0x563: 0x05, 0x564: 0x05, 0x565: 0x05, 0x566: 0x05, 0x567: 0x05, + 0x568: 0xfa, 0x569: 0x103, 0x56b: 0x104, 0x56c: 0x105, 0x56d: 0x106, 0x56e: 0x107, + 0x57c: 0x05, 0x57d: 0x108, 0x57e: 0x109, 0x57f: 0x10a, + // Block 0x16, offset 0x580 + 0x580: 0x05, 0x581: 0x05, 0x582: 0x05, 0x583: 0x05, 0x584: 0x05, 0x585: 0x05, 0x586: 0x05, 0x587: 0x05, + 0x588: 0x05, 0x589: 0x05, 0x58a: 0x05, 0x58b: 0x05, 0x58c: 0x05, 0x58d: 0x05, 0x58e: 0x05, 0x58f: 0x05, + 0x590: 0x05, 0x591: 0x05, 0x592: 0x05, 0x593: 0x05, 0x594: 0x05, 0x595: 0x05, 0x596: 0x05, 0x597: 0x05, + 0x598: 0x05, 0x599: 0x05, 0x59a: 0x05, 0x59b: 0x05, 0x59c: 0x05, 0x59d: 0x05, 0x59e: 0x05, 0x59f: 0x10b, + 0x5a0: 0x05, 0x5a1: 0x05, 0x5a2: 0x05, 0x5a3: 0x05, 0x5a4: 0x05, 0x5a5: 0x05, 0x5a6: 0x05, 0x5a7: 0x05, + 0x5a8: 0x05, 0x5a9: 0x05, 0x5aa: 0x05, 0x5ab: 0xdd, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x10c, + 0x5f0: 0x05, 0x5f1: 0x10d, 0x5f2: 0x10e, + // Block 0x18, offset 0x600 + 0x600: 0x71, 0x601: 0x71, 0x602: 0x71, 0x603: 0x10f, 0x604: 0x110, 0x605: 0x111, 0x606: 0x112, 0x607: 0x113, + 0x608: 0xc1, 0x609: 0x114, 0x60c: 0x71, 0x60d: 0x115, + 0x610: 0x71, 0x611: 0x116, 0x612: 0x117, 0x613: 0x118, 0x614: 0x119, 0x615: 0x11a, 0x616: 0x71, 0x617: 0x71, + 0x618: 0x71, 0x619: 0x71, 0x61a: 0x11b, 0x61b: 0x71, 0x61c: 0x71, 0x61d: 0x71, 0x61e: 0x71, 0x61f: 0x11c, + 0x620: 0x71, 0x621: 0x71, 0x622: 0x71, 0x623: 0x71, 0x624: 0x71, 0x625: 0x71, 0x626: 0x71, 0x627: 0x71, + 0x628: 0x11d, 0x629: 0x11e, 0x62a: 0x11f, + // Block 0x19, offset 0x640 + 0x640: 0x120, + 0x660: 0x05, 0x661: 0x05, 0x662: 0x05, 0x663: 0x121, 0x664: 0x122, 0x665: 0x123, + 0x678: 0x124, 0x679: 0x125, 0x67a: 0x126, 0x67b: 0x127, + // Block 0x1a, offset 0x680 + 0x680: 0x128, 0x681: 0x71, 0x682: 0x129, 0x683: 0x12a, 0x684: 0x12b, 0x685: 0x128, 0x686: 0x12c, 0x687: 0x12d, + 0x688: 0x12e, 0x689: 0x12f, 0x68c: 0x71, 0x68d: 0x71, 0x68e: 0x71, 0x68f: 0x71, + 0x690: 0x71, 0x691: 0x71, 0x692: 0x71, 0x693: 0x71, 0x694: 0x71, 0x695: 0x71, 0x696: 0x71, 0x697: 0x71, + 0x698: 0x71, 0x699: 0x71, 0x69a: 0x71, 0x69b: 0x130, 0x69c: 0x71, 0x69d: 0x131, 0x69e: 0x71, 0x69f: 0x132, + 0x6a0: 0x133, 0x6a1: 0x134, 0x6a2: 0x135, 0x6a4: 0x136, 0x6a5: 0x137, 0x6a6: 0x138, 0x6a7: 0x139, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x90, 0x6c1: 0x90, 0x6c2: 0x90, 0x6c3: 0x90, 0x6c4: 0x90, 0x6c5: 0x90, 0x6c6: 0x90, 0x6c7: 0x90, + 0x6c8: 0x90, 0x6c9: 0x90, 0x6ca: 0x90, 0x6cb: 0x90, 0x6cc: 0x90, 0x6cd: 0x90, 0x6ce: 0x90, 0x6cf: 0x90, + 0x6d0: 0x90, 0x6d1: 0x90, 0x6d2: 0x90, 0x6d3: 0x90, 0x6d4: 0x90, 0x6d5: 0x90, 0x6d6: 0x90, 0x6d7: 0x90, + 0x6d8: 0x90, 0x6d9: 0x90, 0x6da: 0x90, 0x6db: 0x13a, 0x6dc: 0x90, 0x6dd: 0x90, 0x6de: 0x90, 0x6df: 0x90, + 0x6e0: 0x90, 0x6e1: 0x90, 0x6e2: 0x90, 0x6e3: 0x90, 0x6e4: 0x90, 0x6e5: 0x90, 0x6e6: 0x90, 0x6e7: 0x90, + 0x6e8: 0x90, 0x6e9: 0x90, 0x6ea: 0x90, 0x6eb: 0x90, 0x6ec: 0x90, 0x6ed: 0x90, 0x6ee: 0x90, 0x6ef: 0x90, + 0x6f0: 0x90, 0x6f1: 0x90, 0x6f2: 0x90, 0x6f3: 0x90, 0x6f4: 0x90, 0x6f5: 0x90, 0x6f6: 0x90, 0x6f7: 0x90, + 0x6f8: 0x90, 0x6f9: 0x90, 0x6fa: 0x90, 0x6fb: 0x90, 0x6fc: 0x90, 0x6fd: 0x90, 0x6fe: 0x90, 0x6ff: 0x90, + // Block 0x1c, offset 0x700 + 0x700: 0x90, 0x701: 0x90, 0x702: 0x90, 0x703: 0x90, 0x704: 0x90, 0x705: 0x90, 0x706: 0x90, 0x707: 0x90, + 0x708: 0x90, 0x709: 0x90, 0x70a: 0x90, 0x70b: 0x90, 0x70c: 0x90, 0x70d: 0x90, 0x70e: 0x90, 0x70f: 0x90, + 0x710: 0x90, 0x711: 0x90, 0x712: 0x90, 0x713: 0x90, 0x714: 0x90, 0x715: 0x90, 0x716: 0x90, 0x717: 0x90, + 0x718: 0x90, 0x719: 0x90, 0x71a: 0x90, 0x71b: 0x90, 0x71c: 0x13b, 0x71d: 0x90, 0x71e: 0x90, 0x71f: 0x90, + 0x720: 0x13c, 0x721: 0x90, 0x722: 0x90, 0x723: 0x90, 0x724: 0x90, 0x725: 0x90, 0x726: 0x90, 0x727: 0x90, + 0x728: 0x90, 0x729: 0x90, 0x72a: 0x90, 0x72b: 0x90, 0x72c: 0x90, 0x72d: 0x90, 0x72e: 0x90, 0x72f: 0x90, + 0x730: 0x90, 0x731: 0x90, 0x732: 0x90, 0x733: 0x90, 0x734: 0x90, 0x735: 0x90, 0x736: 0x90, 0x737: 0x90, + 0x738: 0x90, 0x739: 0x90, 0x73a: 0x90, 0x73b: 0x90, 0x73c: 0x90, 0x73d: 0x90, 0x73e: 0x90, 0x73f: 0x90, + // Block 0x1d, offset 0x740 + 0x740: 0x90, 0x741: 0x90, 0x742: 0x90, 0x743: 0x90, 0x744: 0x90, 0x745: 0x90, 0x746: 0x90, 0x747: 0x90, + 0x748: 0x90, 0x749: 0x90, 0x74a: 0x90, 0x74b: 0x90, 0x74c: 0x90, 0x74d: 0x90, 0x74e: 0x90, 0x74f: 0x90, + 0x750: 0x90, 0x751: 0x90, 0x752: 0x90, 0x753: 0x90, 0x754: 0x90, 0x755: 0x90, 0x756: 0x90, 0x757: 0x90, + 0x758: 0x90, 0x759: 0x90, 0x75a: 0x90, 0x75b: 0x90, 0x75c: 0x90, 0x75d: 0x90, 0x75e: 0x90, 0x75f: 0x90, + 0x760: 0x90, 0x761: 0x90, 0x762: 0x90, 0x763: 0x90, 0x764: 0x90, 0x765: 0x90, 0x766: 0x90, 0x767: 0x90, + 0x768: 0x90, 0x769: 0x90, 0x76a: 0x90, 0x76b: 0x90, 0x76c: 0x90, 0x76d: 0x90, 0x76e: 0x90, 0x76f: 0x90, + 0x770: 0x90, 0x771: 0x90, 0x772: 0x90, 0x773: 0x90, 0x774: 0x90, 0x775: 0x90, 0x776: 0x90, 0x777: 0x90, + 0x778: 0x90, 0x779: 0x90, 0x77a: 0x13d, + // Block 0x1e, offset 0x780 + 0x7a0: 0x83, 0x7a1: 0x83, 0x7a2: 0x83, 0x7a3: 0x83, 0x7a4: 0x83, 0x7a5: 0x83, 0x7a6: 0x83, 0x7a7: 0x83, + 0x7a8: 0x13e, + // Block 0x1f, offset 0x7c0 + 0x7d0: 0x0e, 0x7d1: 0x0f, 0x7d2: 0x10, 0x7d3: 0x11, 0x7d4: 0x12, 0x7d6: 0x13, 0x7d7: 0x0a, + 0x7d8: 0x14, 0x7db: 0x15, 0x7dd: 0x16, 0x7de: 0x17, 0x7df: 0x18, + 0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07, + 0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x19, 0x7eb: 0x1a, 0x7ec: 0x1b, 0x7ef: 0x1c, + // Block 0x20, offset 0x800 + 0x800: 0x13f, 0x801: 0x3e, 0x804: 0x3e, 0x805: 0x3e, 0x806: 0x3e, 0x807: 0x140, + // Block 0x21, offset 0x840 + 0x840: 0x3e, 0x841: 0x3e, 0x842: 0x3e, 0x843: 0x3e, 0x844: 0x3e, 0x845: 0x3e, 0x846: 0x3e, 0x847: 0x3e, + 0x848: 0x3e, 0x849: 0x3e, 0x84a: 0x3e, 0x84b: 0x3e, 0x84c: 0x3e, 0x84d: 0x3e, 0x84e: 0x3e, 0x84f: 0x3e, + 0x850: 0x3e, 0x851: 0x3e, 0x852: 0x3e, 0x853: 0x3e, 0x854: 0x3e, 0x855: 0x3e, 0x856: 0x3e, 0x857: 0x3e, + 0x858: 0x3e, 0x859: 0x3e, 0x85a: 0x3e, 0x85b: 0x3e, 0x85c: 0x3e, 0x85d: 0x3e, 0x85e: 0x3e, 0x85f: 0x3e, + 0x860: 0x3e, 0x861: 0x3e, 0x862: 0x3e, 0x863: 0x3e, 0x864: 0x3e, 0x865: 0x3e, 0x866: 0x3e, 0x867: 0x3e, + 0x868: 0x3e, 0x869: 0x3e, 0x86a: 0x3e, 0x86b: 0x3e, 0x86c: 0x3e, 0x86d: 0x3e, 0x86e: 0x3e, 0x86f: 0x3e, + 0x870: 0x3e, 0x871: 0x3e, 0x872: 0x3e, 0x873: 0x3e, 0x874: 0x3e, 0x875: 0x3e, 0x876: 0x3e, 0x877: 0x3e, + 0x878: 0x3e, 0x879: 0x3e, 0x87a: 0x3e, 0x87b: 0x3e, 0x87c: 0x3e, 0x87d: 0x3e, 0x87e: 0x3e, 0x87f: 0x141, + // Block 0x22, offset 0x880 + 0x8a0: 0x1e, + 0x8b0: 0x0c, 0x8b1: 0x0c, 0x8b2: 0x0c, 0x8b3: 0x0c, 0x8b4: 0x0c, 0x8b5: 0x0c, 0x8b6: 0x0c, 0x8b7: 0x0c, + 0x8b8: 0x0c, 0x8b9: 0x0c, 0x8ba: 0x0c, 0x8bb: 0x0c, 0x8bc: 0x0c, 0x8bd: 0x0c, 0x8be: 0x0c, 0x8bf: 0x1f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0c, 0x8c1: 0x0c, 0x8c2: 0x0c, 0x8c3: 0x0c, 0x8c4: 0x0c, 0x8c5: 0x0c, 0x8c6: 0x0c, 0x8c7: 0x0c, + 0x8c8: 0x0c, 0x8c9: 0x0c, 0x8ca: 0x0c, 0x8cb: 0x0c, 0x8cc: 0x0c, 0x8cd: 0x0c, 0x8ce: 0x0c, 0x8cf: 0x1f, +} + +// Total table size 25344 bytes (24KiB); checksum: 811C9DC5 diff --git a/vendor/golang.org/x/text/secure/precis/tables_test.go b/vendor/golang.org/x/text/secure/precis/tables_test.go new file mode 100644 index 00000000..b4f152c0 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/tables_test.go @@ -0,0 +1,69 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import ( + "testing" + "unicode" + "unicode/utf8" + + "golang.org/x/text/runes" + "golang.org/x/text/unicode/rangetable" +) + +type tableTest struct { + rangeTable *unicode.RangeTable + prop property +} + +var exceptions = runes.Predicate(func(r rune) bool { + switch uint32(r) { + case 0x00DF, 0x03C2, 0x06FD, 0x06FE, 0x0F0B, 0x3007, 0x00B7, 0x0375, 0x05F3, + 0x05F4, 0x30FB, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, + 0x0667, 0x0668, 0x0669, 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, + 0x06F6, 0x06F7, 0x06F8, 0x06F9, 0x0640, 0x07FA, 0x302E, 0x302F, 0x3031, + 0x3032, 0x3033, 0x3034, 0x3035, 0x303B: + return true + default: + return false + } +}) + +// Ensure that ceratain properties were generated correctly. +func TestTable(t *testing.T) { + tests := []tableTest{ + tableTest{ + rangetable.Merge( + unicode.Lt, unicode.Nl, unicode.No, // Other letter digits + unicode.Me, // Modifiers + unicode.Zs, // Spaces + unicode.So, // Symbols + unicode.Pi, unicode.Pf, // Punctuation + ), + idDisOrFreePVal, + }, + tableTest{ + rangetable.New(0x30000, 0x30101, 0xDFFFF), + unassigned, + }, + } + + assigned := rangetable.Assigned(UnicodeVersion) + + for _, test := range tests { + rangetable.Visit(test.rangeTable, func(r rune) { + if !unicode.In(r, assigned) { + return + } + b := make([]byte, 4) + n := utf8.EncodeRune(b, r) + trieval, _ := dpTrie.lookup(b[:n]) + p := entry(trieval).property() + if p != test.prop && !exceptions.Contains(r) { + t.Errorf("%U: got %+x; want %+x", r, test.prop, p) + } + }) + } +} diff --git a/vendor/golang.org/x/text/secure/precis/transformer.go b/vendor/golang.org/x/text/secure/precis/transformer.go new file mode 100644 index 00000000..97ce5e75 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/transformer.go @@ -0,0 +1,32 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package precis + +import "golang.org/x/text/transform" + +// Transformer implements the transform.Transformer interface. +type Transformer struct { + t transform.Transformer +} + +// Reset implements the transform.Transformer interface. +func (t Transformer) Reset() { t.t.Reset() } + +// Transform implements the transform.Transformer interface. +func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return t.t.Transform(dst, src, atEOF) +} + +// Bytes returns a new byte slice with the result of applying t to b. +func (t Transformer) Bytes(b []byte) []byte { + b, _, _ = transform.Bytes(t, b) + return b +} + +// String returns a string with the result of applying t to s. +func (t Transformer) String(s string) string { + s, _, _ = transform.String(t, s) + return s +} diff --git a/vendor/golang.org/x/text/secure/precis/trieval.go b/vendor/golang.org/x/text/secure/precis/trieval.go new file mode 100644 index 00000000..fed7d759 --- /dev/null +++ b/vendor/golang.org/x/text/secure/precis/trieval.go @@ -0,0 +1,64 @@ +// This file was generated by go generate; DO NOT EDIT + +package precis + +// entry is the entry of a trie table +// 7..6 property (unassigned, disallowed, maybe, valid) +// 5..0 category +type entry uint8 + +const ( + propShift = 6 + propMask = 0xc0 + catMask = 0x3f +) + +func (e entry) property() property { return property(e & propMask) } +func (e entry) category() category { return category(e & catMask) } + +type property uint8 + +// The order of these constants matter. A Profile may consider runes to be +// allowed either from pValid or idDisOrFreePVal. +const ( + unassigned property = iota << propShift + disallowed + idDisOrFreePVal // disallowed for Identifier, pValid for FreeForm + pValid +) + +// compute permutations of all properties and specialCategories. +type category uint8 + +const ( + other category = iota + + // Special rune types + joiningL + joiningD + joiningT + joiningR + viramaModifier + viramaJoinT // Virama + JoiningT + latinSmallL // U+006c + greek + greekJoinT // Greek + JoiningT + hebrew + hebrewJoinT // Hebrew + JoiningT + japanese // hirigana, katakana, han + + // Special rune types associated with contextual rules defined in + // https://tools.ietf.org/html/rfc5892#appendix-A. + // ContextO + zeroWidthNonJoiner // rule 1 + zeroWidthJoiner // rule 2 + // ContextJ + middleDot // rule 3 + greekLowerNumeralSign // rule 4 + hebrewPreceding // rule 5 and 6 + katakanaMiddleDot // rule 7 + arabicIndicDigit // rule 8 + extendedArabicIndicDigit // rule 9 + + numCategories +) diff --git a/vendor/golang.org/x/text/transform/examples_test.go b/vendor/golang.org/x/text/transform/examples_test.go new file mode 100644 index 00000000..f2e284db --- /dev/null +++ b/vendor/golang.org/x/text/transform/examples_test.go @@ -0,0 +1,37 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package transform_test + +import ( + "fmt" + "unicode" + + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" +) + +func ExampleRemoveFunc() { + input := []byte(`tschüß; до ÑвиданиÑ`) + + b := make([]byte, len(input)) + + t := transform.RemoveFunc(unicode.IsSpace) + n, _, _ := t.Transform(b, input, true) + fmt.Println(string(b[:n])) + + t = transform.RemoveFunc(func(r rune) bool { + return !unicode.Is(unicode.Latin, r) + }) + n, _, _ = t.Transform(b, input, true) + fmt.Println(string(b[:n])) + + n, _, _ = t.Transform(b, norm.NFD.Bytes(input), true) + fmt.Println(string(b[:n])) + + // Output: + // tschüß;доÑÐ²Ð¸Ð´Ð°Ð½Ð¸Ñ + // tschüß + // tschuß +} diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go new file mode 100644 index 00000000..0c2f730e --- /dev/null +++ b/vendor/golang.org/x/text/transform/transform.go @@ -0,0 +1,661 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package transform provides reader and writer wrappers that transform the +// bytes passing through as well as various transformations. Example +// transformations provided by other packages include normalization and +// conversion between character sets. +package transform // import "golang.org/x/text/transform" + +import ( + "bytes" + "errors" + "io" + "unicode/utf8" +) + +var ( + // ErrShortDst means that the destination buffer was too short to + // receive all of the transformed bytes. + ErrShortDst = errors.New("transform: short destination buffer") + + // ErrShortSrc means that the source buffer has insufficient data to + // complete the transformation. + ErrShortSrc = errors.New("transform: short source buffer") + + // errInconsistentByteCount means that Transform returned success (nil + // error) but also returned nSrc inconsistent with the src argument. + errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") + + // errShortInternal means that an internal buffer is not large enough + // to make progress and the Transform operation must be aborted. + errShortInternal = errors.New("transform: short internal buffer") +) + +// Transformer transforms bytes. +type Transformer interface { + // Transform writes to dst the transformed bytes read from src, and + // returns the number of dst bytes written and src bytes read. The + // atEOF argument tells whether src represents the last bytes of the + // input. + // + // Callers should always process the nDst bytes produced and account + // for the nSrc bytes consumed before considering the error err. + // + // A nil error means that all of the transformed bytes (whether freshly + // transformed from src or left over from previous Transform calls) + // were written to dst. A nil error can be returned regardless of + // whether atEOF is true. If err is nil then nSrc must equal len(src); + // the converse is not necessarily true. + // + // ErrShortDst means that dst was too short to receive all of the + // transformed bytes. ErrShortSrc means that src had insufficient data + // to complete the transformation. If both conditions apply, then + // either error may be returned. Other than the error conditions listed + // here, implementations are free to report other errors that arise. + Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) + + // Reset resets the state and allows a Transformer to be reused. + Reset() +} + +// NopResetter can be embedded by implementations of Transformer to add a nop +// Reset method. +type NopResetter struct{} + +// Reset implements the Reset method of the Transformer interface. +func (NopResetter) Reset() {} + +// Reader wraps another io.Reader by transforming the bytes read. +type Reader struct { + r io.Reader + t Transformer + err error + + // dst[dst0:dst1] contains bytes that have been transformed by t but + // not yet copied out via Read. + dst []byte + dst0, dst1 int + + // src[src0:src1] contains bytes that have been read from r but not + // yet transformed through t. + src []byte + src0, src1 int + + // transformComplete is whether the transformation is complete, + // regardless of whether or not it was successful. + transformComplete bool +} + +const defaultBufSize = 4096 + +// NewReader returns a new Reader that wraps r by transforming the bytes read +// via t. It calls Reset on t. +func NewReader(r io.Reader, t Transformer) *Reader { + t.Reset() + return &Reader{ + r: r, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Read implements the io.Reader interface. +func (r *Reader) Read(p []byte) (int, error) { + n, err := 0, error(nil) + for { + // Copy out any transformed bytes and return the final error if we are done. + if r.dst0 != r.dst1 { + n = copy(p, r.dst[r.dst0:r.dst1]) + r.dst0 += n + if r.dst0 == r.dst1 && r.transformComplete { + return n, r.err + } + return n, nil + } else if r.transformComplete { + return 0, r.err + } + + // Try to transform some source bytes, or to flush the transformer if we + // are out of source bytes. We do this even if r.r.Read returned an error. + // As the io.Reader documentation says, "process the n > 0 bytes returned + // before considering the error". + if r.src0 != r.src1 || r.err != nil { + r.dst0 = 0 + r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) + r.src0 += n + + switch { + case err == nil: + if r.src0 != r.src1 { + r.err = errInconsistentByteCount + } + // The Transform call was successful; we are complete if we + // cannot read more bytes into src. + r.transformComplete = r.err != nil + continue + case err == ErrShortDst && (r.dst1 != 0 || n != 0): + // Make room in dst by copying out, and try again. + continue + case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: + // Read more bytes into src via the code below, and try again. + default: + r.transformComplete = true + // The reader error (r.err) takes precedence over the + // transformer error (err) unless r.err is nil or io.EOF. + if r.err == nil || r.err == io.EOF { + r.err = err + } + continue + } + } + + // Move any untransformed source bytes to the start of the buffer + // and read more bytes. + if r.src0 != 0 { + r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) + } + n, r.err = r.r.Read(r.src[r.src1:]) + r.src1 += n + } +} + +// TODO: implement ReadByte (and ReadRune??). + +// Writer wraps another io.Writer by transforming the bytes read. +// The user needs to call Close to flush unwritten bytes that may +// be buffered. +type Writer struct { + w io.Writer + t Transformer + dst []byte + + // src[:n] contains bytes that have not yet passed through t. + src []byte + n int +} + +// NewWriter returns a new Writer that wraps w by transforming the bytes written +// via t. It calls Reset on t. +func NewWriter(w io.Writer, t Transformer) *Writer { + t.Reset() + return &Writer{ + w: w, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Write implements the io.Writer interface. If there are not enough +// bytes available to complete a Transform, the bytes will be buffered +// for the next write. Call Close to convert the remaining bytes. +func (w *Writer) Write(data []byte) (n int, err error) { + src := data + if w.n > 0 { + // Append bytes from data to the last remainder. + // TODO: limit the amount copied on first try. + n = copy(w.src[w.n:], data) + w.n += n + src = w.src[:w.n] + } + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, false) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return n, werr + } + src = src[nSrc:] + if w.n == 0 { + n += nSrc + } else if len(src) <= n { + // Enough bytes from w.src have been consumed. We make src point + // to data instead to reduce the copying. + w.n = 0 + n -= len(src) + src = data[n:] + if n < len(data) && (err == nil || err == ErrShortSrc) { + continue + } + } + switch err { + case ErrShortDst: + // This error is okay as long as we are making progress. + if nDst > 0 || nSrc > 0 { + continue + } + case ErrShortSrc: + if len(src) < len(w.src) { + m := copy(w.src, src) + // If w.n > 0, bytes from data were already copied to w.src and n + // was already set to the number of bytes consumed. + if w.n == 0 { + n += m + } + w.n = m + err = nil + } else if nDst > 0 || nSrc > 0 { + // Not enough buffer to store the remainder. Keep processing as + // long as there is progress. Without this case, transforms that + // require a lookahead larger than the buffer may result in an + // error. This is not something one may expect to be common in + // practice, but it may occur when buffers are set to small + // sizes during testing. + continue + } + case nil: + if w.n > 0 { + err = errInconsistentByteCount + } + } + return n, err + } +} + +// Close implements the io.Closer interface. +func (w *Writer) Close() error { + src := w.src[:w.n] + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, true) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return werr + } + if err != ErrShortDst { + return err + } + src = src[nSrc:] + } +} + +type nop struct{ NopResetter } + +func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + err = ErrShortDst + } + return n, n, err +} + +type discard struct{ NopResetter } + +func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return 0, len(src), nil +} + +var ( + // Discard is a Transformer for which all Transform calls succeed + // by consuming all bytes and writing nothing. + Discard Transformer = discard{} + + // Nop is a Transformer that copies src to dst. + Nop Transformer = nop{} +) + +// chain is a sequence of links. A chain with N Transformers has N+1 links and +// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst +// buffers given to chain.Transform and the middle N-1 buffers are intermediate +// buffers owned by the chain. The i'th link transforms bytes from the i'th +// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer +// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). +type chain struct { + link []link + err error + // errStart is the index at which the error occurred plus 1. Processing + // errStart at this level at the next call to Transform. As long as + // errStart > 0, chain will not consume any more source bytes. + errStart int +} + +func (c *chain) fatalError(errIndex int, err error) { + if i := errIndex + 1; i > c.errStart { + c.errStart = i + c.err = err + } +} + +type link struct { + t Transformer + // b[p:n] holds the bytes to be transformed by t. + b []byte + p int + n int +} + +func (l *link) src() []byte { + return l.b[l.p:l.n] +} + +func (l *link) dst() []byte { + return l.b[l.n:] +} + +// Chain returns a Transformer that applies t in sequence. +func Chain(t ...Transformer) Transformer { + if len(t) == 0 { + return nop{} + } + c := &chain{link: make([]link, len(t)+1)} + for i, tt := range t { + c.link[i].t = tt + } + // Allocate intermediate buffers. + b := make([][defaultBufSize]byte, len(t)-1) + for i := range b { + c.link[i+1].b = b[i][:] + } + return c +} + +// Reset resets the state of Chain. It calls Reset on all the Transformers. +func (c *chain) Reset() { + for i, l := range c.link { + if l.t != nil { + l.t.Reset() + } + c.link[i].p, c.link[i].n = 0, 0 + } +} + +// Transform applies the transformers of c in sequence. +func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Set up src and dst in the chain. + srcL := &c.link[0] + dstL := &c.link[len(c.link)-1] + srcL.b, srcL.p, srcL.n = src, 0, len(src) + dstL.b, dstL.n = dst, 0 + var lastFull, needProgress bool // for detecting progress + + // i is the index of the next Transformer to apply, for i in [low, high]. + // low is the lowest index for which c.link[low] may still produce bytes. + // high is the highest index for which c.link[high] has a Transformer. + // The error returned by Transform determines whether to increase or + // decrease i. We try to completely fill a buffer before converting it. + for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { + in, out := &c.link[i], &c.link[i+1] + nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) + out.n += nDst + in.p += nSrc + if i > 0 && in.p == in.n { + in.p, in.n = 0, 0 + } + needProgress, lastFull = lastFull, false + switch err0 { + case ErrShortDst: + // Process the destination buffer next. Return if we are already + // at the high index. + if i == high { + return dstL.n, srcL.p, ErrShortDst + } + if out.n != 0 { + i++ + // If the Transformer at the next index is not able to process any + // source bytes there is nothing that can be done to make progress + // and the bytes will remain unprocessed. lastFull is used to + // detect this and break out of the loop with a fatal error. + lastFull = true + continue + } + // The destination buffer was too small, but is completely empty. + // Return a fatal error as this transformation can never complete. + c.fatalError(i, errShortInternal) + case ErrShortSrc: + if i == 0 { + // Save ErrShortSrc in err. All other errors take precedence. + err = ErrShortSrc + break + } + // Source bytes were depleted before filling up the destination buffer. + // Verify we made some progress, move the remaining bytes to the errStart + // and try to get more source bytes. + if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { + // There were not enough source bytes to proceed while the source + // buffer cannot hold any more bytes. Return a fatal error as this + // transformation can never complete. + c.fatalError(i, errShortInternal) + break + } + // in.b is an internal buffer and we can make progress. + in.p, in.n = 0, copy(in.b, in.src()) + fallthrough + case nil: + // if i == low, we have depleted the bytes at index i or any lower levels. + // In that case we increase low and i. In all other cases we decrease i to + // fetch more bytes before proceeding to the next index. + if i > low { + i-- + continue + } + default: + c.fatalError(i, err0) + } + // Exhausted level low or fatal error: increase low and continue + // to process the bytes accepted so far. + i++ + low = i + } + + // If c.errStart > 0, this means we found a fatal error. We will clear + // all upstream buffers. At this point, no more progress can be made + // downstream, as Transform would have bailed while handling ErrShortDst. + if c.errStart > 0 { + for i := 1; i < c.errStart; i++ { + c.link[i].p, c.link[i].n = 0, 0 + } + err, c.errStart, c.err = c.err, 0, nil + } + return dstL.n, srcL.p, err +} + +// RemoveFunc returns a Transformer that removes from the input all runes r for +// which f(r) is true. Illegal bytes in the input are replaced by RuneError. +func RemoveFunc(f func(r rune) bool) Transformer { + return removeF(f) +} + +type removeF func(r rune) bool + +func (removeF) Reset() {} + +// Transform implements the Transformer interface. +func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { + + if r = rune(src[0]); r < utf8.RuneSelf { + sz = 1 + } else { + r, sz = utf8.DecodeRune(src) + + if sz == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src) { + err = ErrShortSrc + break + } + // We replace illegal bytes with RuneError. Not doing so might + // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. + // The resulting byte sequence may subsequently contain runes + // for which t(r) is true that were passed unnoticed. + if !t(r) { + if nDst+3 > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], "\uFFFD") + } + nSrc++ + continue + } + } + + if !t(r) { + if nDst+sz > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], src[:sz]) + } + nSrc += sz + } + return +} + +// grow returns a new []byte that is longer than b, and copies the first n bytes +// of b to the start of the new slice. +func grow(b []byte, n int) []byte { + m := len(b) + if m <= 32 { + m = 64 + } else if m <= 256 { + m *= 2 + } else { + m += m >> 1 + } + buf := make([]byte, m) + copy(buf, b[:n]) + return buf +} + +const initialBufSize = 128 + +// String returns a string with the result of converting s[:n] using t, where +// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. +func String(t Transformer, s string) (result string, n int, err error) { + t.Reset() + if s == "" { + // Fast path for the common case for empty input. Results in about a + // 86% reduction of running time for BenchmarkStringLowerEmpty. + if _, _, err := t.Transform(nil, nil, true); err == nil { + return "", 0, nil + } + } + + // Allocate only once. Note that both dst and src escape when passed to + // Transform. + buf := [2 * initialBufSize]byte{} + dst := buf[:initialBufSize:initialBufSize] + src := buf[initialBufSize : 2*initialBufSize] + + // The input string s is transformed in multiple chunks (starting with a + // chunk size of initialBufSize). nDst and nSrc are per-chunk (or + // per-Transform-call) indexes, pDst and pSrc are overall indexes. + nDst, nSrc := 0, 0 + pDst, pSrc := 0, 0 + + // pPrefix is the length of a common prefix: the first pPrefix bytes of the + // result will equal the first pPrefix bytes of s. It is not guaranteed to + // be the largest such value, but if pPrefix, len(result) and len(s) are + // all equal after the final transform (i.e. calling Transform with atEOF + // being true returned nil error) then we don't need to allocate a new + // result string. + pPrefix := 0 + for { + // Invariant: pDst == pPrefix && pSrc == pPrefix. + + n := copy(src, s[pSrc:]) + nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // TODO: let transformers implement an optional Spanner interface, akin + // to norm's QuickSpan. This would even allow us to avoid any allocation. + if !bytes.Equal(dst[:nDst], src[:nSrc]) { + break + } + pPrefix = pSrc + if err == ErrShortDst { + // A buffer can only be short if a transformer modifies its input. + break + } else if err == ErrShortSrc { + if nSrc == 0 { + // No progress was made. + break + } + // Equal so far and !atEOF, so continue checking. + } else if err != nil || pPrefix == len(s) { + return string(s[:pPrefix]), pPrefix, err + } + } + // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. + + // We have transformed the first pSrc bytes of the input s to become pDst + // transformed bytes. Those transformed bytes are discontiguous: the first + // pPrefix of them equal s[:pPrefix] and the last nDst of them equal + // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so + // that they become one contiguous slice: dst[:pDst]. + if pPrefix != 0 { + newDst := dst + if pDst > len(newDst) { + newDst = make([]byte, len(s)+nDst-nSrc) + } + copy(newDst[pPrefix:pDst], dst[:nDst]) + copy(newDst[:pPrefix], s[:pPrefix]) + dst = newDst + } + + // Prevent duplicate Transform calls with atEOF being true at the end of + // the input. Also return if we have an unrecoverable error. + if (err == nil && pSrc == len(s)) || + (err != nil && err != ErrShortDst && err != ErrShortSrc) { + return string(dst[:pDst]), pSrc, err + } + + // Transform the remaining input, growing dst and src buffers as necessary. + for { + n := copy(src, s[pSrc:]) + nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can + // make progress. This may avoid excessive allocations. + if err == ErrShortDst { + if nDst == 0 { + dst = grow(dst, pDst) + } + } else if err == ErrShortSrc { + if nSrc == 0 { + src = grow(src, 0) + } + } else if err != nil || pSrc == len(s) { + return string(dst[:pDst]), pSrc, err + } + } +} + +// Bytes returns a new byte slice with the result of converting b[:n] using t, +// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. +func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { + return doAppend(t, 0, make([]byte, len(b)), b) +} + +// Append appends the result of converting src[:n] using t to dst, where +// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. +func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { + if len(dst) == cap(dst) { + n := len(src) + len(dst) // It is okay for this to be 0. + b := make([]byte, n) + dst = b[:copy(b, dst)] + } + return doAppend(t, len(dst), dst[:cap(dst)], src) +} + +func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { + t.Reset() + pSrc := 0 + for { + nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) + pDst += nDst + pSrc += nSrc + if err != ErrShortDst { + return dst[:pDst], pSrc, err + } + + // Grow the destination buffer, but do not grow as long as we can make + // progress. This may avoid excessive allocations. + if nDst == 0 { + dst = grow(dst, pDst) + } + } +} diff --git a/vendor/golang.org/x/text/transform/transform_test.go b/vendor/golang.org/x/text/transform/transform_test.go new file mode 100644 index 00000000..771633d1 --- /dev/null +++ b/vendor/golang.org/x/text/transform/transform_test.go @@ -0,0 +1,1317 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package transform + +import ( + "bytes" + "errors" + "fmt" + "io/ioutil" + "strconv" + "strings" + "testing" + "time" + "unicode/utf8" + + "golang.org/x/text/internal/testtext" +) + +type lowerCaseASCII struct{ NopResetter } + +func (lowerCaseASCII) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := len(src) + if n > len(dst) { + n, err = len(dst), ErrShortDst + } + for i, c := range src[:n] { + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } + dst[i] = c + } + return n, n, err +} + +// lowerCaseASCIILookahead lowercases the string and reports ErrShortSrc as long +// as the input is not atEOF. +type lowerCaseASCIILookahead struct{ NopResetter } + +func (lowerCaseASCIILookahead) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := len(src) + if n > len(dst) { + n, err = len(dst), ErrShortDst + } + for i, c := range src[:n] { + if 'A' <= c && c <= 'Z' { + c += 'a' - 'A' + } + dst[i] = c + } + if !atEOF { + err = ErrShortSrc + } + return n, n, err +} + +var errYouMentionedX = errors.New("you mentioned X") + +type dontMentionX struct{ NopResetter } + +func (dontMentionX) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := len(src) + if n > len(dst) { + n, err = len(dst), ErrShortDst + } + for i, c := range src[:n] { + if c == 'X' { + return i, i, errYouMentionedX + } + dst[i] = c + } + return n, n, err +} + +var errAtEnd = errors.New("error after all text") + +type errorAtEnd struct{ NopResetter } + +func (errorAtEnd) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + return n, n, ErrShortDst + } + if atEOF { + return n, n, errAtEnd + } + return n, n, nil +} + +type replaceWithConstant struct { + replacement string + written int +} + +func (t *replaceWithConstant) Reset() { + t.written = 0 +} + +func (t *replaceWithConstant) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if atEOF { + nDst = copy(dst, t.replacement[t.written:]) + t.written += nDst + if t.written < len(t.replacement) { + err = ErrShortDst + } + } + return nDst, len(src), err +} + +type addAnXAtTheEnd struct{ NopResetter } + +func (addAnXAtTheEnd) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + return n, n, ErrShortDst + } + if !atEOF { + return n, n, nil + } + if len(dst) == n { + return n, n, ErrShortDst + } + dst[n] = 'X' + return n + 1, n, nil +} + +// doublerAtEOF is a strange Transformer that transforms "this" to "tthhiiss", +// but only if atEOF is true. +type doublerAtEOF struct{ NopResetter } + +func (doublerAtEOF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if !atEOF { + return 0, 0, ErrShortSrc + } + for i, c := range src { + if 2*i+2 >= len(dst) { + return 2 * i, i, ErrShortDst + } + dst[2*i+0] = c + dst[2*i+1] = c + } + return 2 * len(src), len(src), nil +} + +// rleDecode and rleEncode implement a toy run-length encoding: "aabbbbbbbbbb" +// is encoded as "2a10b". The decoding is assumed to not contain any numbers. + +type rleDecode struct{ NopResetter } + +func (rleDecode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { +loop: + for len(src) > 0 { + n := 0 + for i, c := range src { + if '0' <= c && c <= '9' { + n = 10*n + int(c-'0') + continue + } + if i == 0 { + return nDst, nSrc, errors.New("rleDecode: bad input") + } + if n > len(dst) { + return nDst, nSrc, ErrShortDst + } + for j := 0; j < n; j++ { + dst[j] = c + } + dst, src = dst[n:], src[i+1:] + nDst, nSrc = nDst+n, nSrc+i+1 + continue loop + } + if atEOF { + return nDst, nSrc, errors.New("rleDecode: bad input") + } + return nDst, nSrc, ErrShortSrc + } + return nDst, nSrc, nil +} + +type rleEncode struct { + NopResetter + + // allowStutter means that "xxxxxxxx" can be encoded as "5x3x" + // instead of always as "8x". + allowStutter bool +} + +func (e rleEncode) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for len(src) > 0 { + n, c0 := len(src), src[0] + for i, c := range src[1:] { + if c != c0 { + n = i + 1 + break + } + } + if n == len(src) && !atEOF && !e.allowStutter { + return nDst, nSrc, ErrShortSrc + } + s := strconv.Itoa(n) + if len(s) >= len(dst) { + return nDst, nSrc, ErrShortDst + } + copy(dst, s) + dst[len(s)] = c0 + dst, src = dst[len(s)+1:], src[n:] + nDst, nSrc = nDst+len(s)+1, nSrc+n + } + return nDst, nSrc, nil +} + +// trickler consumes all input bytes, but writes a single byte at a time to dst. +type trickler []byte + +func (t *trickler) Reset() { + *t = nil +} + +func (t *trickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + *t = append(*t, src...) + if len(*t) == 0 { + return 0, 0, nil + } + if len(dst) == 0 { + return 0, len(src), ErrShortDst + } + dst[0] = (*t)[0] + *t = (*t)[1:] + if len(*t) > 0 { + err = ErrShortDst + } + return 1, len(src), err +} + +// delayedTrickler is like trickler, but delays writing output to dst. This is +// highly unlikely to be relevant in practice, but it seems like a good idea +// to have some tolerance as long as progress can be detected. +type delayedTrickler []byte + +func (t *delayedTrickler) Reset() { + *t = nil +} + +func (t *delayedTrickler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if len(*t) > 0 && len(dst) > 0 { + dst[0] = (*t)[0] + *t = (*t)[1:] + nDst = 1 + } + *t = append(*t, src...) + if len(*t) > 0 { + err = ErrShortDst + } + return nDst, len(src), err +} + +type testCase struct { + desc string + t Transformer + src string + dstSize int + srcSize int + ioSize int + wantStr string + wantErr error + wantIter int // number of iterations taken; 0 means we don't care. +} + +func (t testCase) String() string { + return tstr(t.t) + "; " + t.desc +} + +func tstr(t Transformer) string { + if stringer, ok := t.(fmt.Stringer); ok { + return stringer.String() + } + s := fmt.Sprintf("%T", t) + return s[1+strings.Index(s, "."):] +} + +func (c chain) String() string { + buf := &bytes.Buffer{} + buf.WriteString("Chain(") + for i, l := range c.link[:len(c.link)-1] { + if i != 0 { + fmt.Fprint(buf, ", ") + } + buf.WriteString(tstr(l.t)) + } + buf.WriteString(")") + return buf.String() +} + +var testCases = []testCase{ + { + desc: "empty", + t: lowerCaseASCII{}, + src: "", + dstSize: 100, + srcSize: 100, + wantStr: "", + }, + + { + desc: "basic", + t: lowerCaseASCII{}, + src: "Hello WORLD.", + dstSize: 100, + srcSize: 100, + wantStr: "hello world.", + }, + + { + desc: "small dst", + t: lowerCaseASCII{}, + src: "Hello WORLD.", + dstSize: 3, + srcSize: 100, + wantStr: "hello world.", + }, + + { + desc: "small src", + t: lowerCaseASCII{}, + src: "Hello WORLD.", + dstSize: 100, + srcSize: 4, + wantStr: "hello world.", + }, + + { + desc: "small buffers", + t: lowerCaseASCII{}, + src: "Hello WORLD.", + dstSize: 3, + srcSize: 4, + wantStr: "hello world.", + }, + + { + desc: "very small buffers", + t: lowerCaseASCII{}, + src: "Hello WORLD.", + dstSize: 1, + srcSize: 1, + wantStr: "hello world.", + }, + + { + desc: "small dst with lookahead", + t: lowerCaseASCIILookahead{}, + src: "Hello WORLD.", + dstSize: 3, + srcSize: 100, + wantStr: "hello world.", + }, + + { + desc: "small src with lookahead", + t: lowerCaseASCIILookahead{}, + src: "Hello WORLD.", + dstSize: 100, + srcSize: 4, + wantStr: "hello world.", + }, + + { + desc: "small buffers with lookahead", + t: lowerCaseASCIILookahead{}, + src: "Hello WORLD.", + dstSize: 3, + srcSize: 4, + wantStr: "hello world.", + }, + + { + desc: "very small buffers with lookahead", + t: lowerCaseASCIILookahead{}, + src: "Hello WORLD.", + dstSize: 1, + srcSize: 2, + wantStr: "hello world.", + }, + + { + desc: "user error", + t: dontMentionX{}, + src: "The First Rule of Transform Club: don't mention Mister X, ever.", + dstSize: 100, + srcSize: 100, + wantStr: "The First Rule of Transform Club: don't mention Mister ", + wantErr: errYouMentionedX, + }, + + { + desc: "user error at end", + t: errorAtEnd{}, + src: "All goes well until it doesn't.", + dstSize: 100, + srcSize: 100, + wantStr: "All goes well until it doesn't.", + wantErr: errAtEnd, + }, + + { + desc: "user error at end, incremental", + t: errorAtEnd{}, + src: "All goes well until it doesn't.", + dstSize: 10, + srcSize: 10, + wantStr: "All goes well until it doesn't.", + wantErr: errAtEnd, + }, + + { + desc: "replace entire non-empty string with one byte", + t: &replaceWithConstant{replacement: "X"}, + src: "none of this will be copied", + dstSize: 1, + srcSize: 10, + wantStr: "X", + }, + + { + desc: "replace entire empty string with one byte", + t: &replaceWithConstant{replacement: "X"}, + src: "", + dstSize: 1, + srcSize: 10, + wantStr: "X", + }, + + { + desc: "replace entire empty string with seven bytes", + t: &replaceWithConstant{replacement: "ABCDEFG"}, + src: "", + dstSize: 3, + srcSize: 10, + wantStr: "ABCDEFG", + }, + + { + desc: "add an X (initialBufSize-1)", + t: addAnXAtTheEnd{}, + src: aaa[:initialBufSize-1], + dstSize: 10, + srcSize: 10, + wantStr: aaa[:initialBufSize-1] + "X", + }, + + { + desc: "add an X (initialBufSize+0)", + t: addAnXAtTheEnd{}, + src: aaa[:initialBufSize+0], + dstSize: 10, + srcSize: 10, + wantStr: aaa[:initialBufSize+0] + "X", + }, + + { + desc: "add an X (initialBufSize+1)", + t: addAnXAtTheEnd{}, + src: aaa[:initialBufSize+1], + dstSize: 10, + srcSize: 10, + wantStr: aaa[:initialBufSize+1] + "X", + }, + + { + desc: "small buffers", + t: dontMentionX{}, + src: "The First Rule of Transform Club: don't mention Mister X, ever.", + dstSize: 10, + srcSize: 10, + wantStr: "The First Rule of Transform Club: don't mention Mister ", + wantErr: errYouMentionedX, + }, + + { + desc: "very small buffers", + t: dontMentionX{}, + src: "The First Rule of Transform Club: don't mention Mister X, ever.", + dstSize: 1, + srcSize: 1, + wantStr: "The First Rule of Transform Club: don't mention Mister ", + wantErr: errYouMentionedX, + }, + + { + desc: "only transform at EOF", + t: doublerAtEOF{}, + src: "this", + dstSize: 100, + srcSize: 100, + wantStr: "tthhiiss", + }, + + { + desc: "basic", + t: rleDecode{}, + src: "1a2b3c10d11e0f1g", + dstSize: 100, + srcSize: 100, + wantStr: "abbcccddddddddddeeeeeeeeeeeg", + }, + + { + desc: "long", + t: rleDecode{}, + src: "12a23b34c45d56e99z", + dstSize: 100, + srcSize: 100, + wantStr: strings.Repeat("a", 12) + + strings.Repeat("b", 23) + + strings.Repeat("c", 34) + + strings.Repeat("d", 45) + + strings.Repeat("e", 56) + + strings.Repeat("z", 99), + }, + + { + desc: "tight buffers", + t: rleDecode{}, + src: "1a2b3c10d11e0f1g", + dstSize: 11, + srcSize: 3, + wantStr: "abbcccddddddddddeeeeeeeeeeeg", + }, + + { + desc: "short dst", + t: rleDecode{}, + src: "1a2b3c10d11e0f1g", + dstSize: 10, + srcSize: 3, + wantStr: "abbcccdddddddddd", + wantErr: ErrShortDst, + }, + + { + desc: "short src", + t: rleDecode{}, + src: "1a2b3c10d11e0f1g", + dstSize: 11, + srcSize: 2, + ioSize: 2, + wantStr: "abbccc", + wantErr: ErrShortSrc, + }, + + { + desc: "basic", + t: rleEncode{}, + src: "abbcccddddddddddeeeeeeeeeeeg", + dstSize: 100, + srcSize: 100, + wantStr: "1a2b3c10d11e1g", + }, + + { + desc: "long", + t: rleEncode{}, + src: strings.Repeat("a", 12) + + strings.Repeat("b", 23) + + strings.Repeat("c", 34) + + strings.Repeat("d", 45) + + strings.Repeat("e", 56) + + strings.Repeat("z", 99), + dstSize: 100, + srcSize: 100, + wantStr: "12a23b34c45d56e99z", + }, + + { + desc: "tight buffers", + t: rleEncode{}, + src: "abbcccddddddddddeeeeeeeeeeeg", + dstSize: 3, + srcSize: 12, + wantStr: "1a2b3c10d11e1g", + }, + + { + desc: "short dst", + t: rleEncode{}, + src: "abbcccddddddddddeeeeeeeeeeeg", + dstSize: 2, + srcSize: 12, + wantStr: "1a2b3c", + wantErr: ErrShortDst, + }, + + { + desc: "short src", + t: rleEncode{}, + src: "abbcccddddddddddeeeeeeeeeeeg", + dstSize: 3, + srcSize: 11, + ioSize: 11, + wantStr: "1a2b3c10d", + wantErr: ErrShortSrc, + }, + + { + desc: "allowStutter = false", + t: rleEncode{allowStutter: false}, + src: "aaaabbbbbbbbccccddddd", + dstSize: 10, + srcSize: 10, + wantStr: "4a8b4c5d", + }, + + { + desc: "allowStutter = true", + t: rleEncode{allowStutter: true}, + src: "aaaabbbbbbbbccccddddd", + dstSize: 10, + srcSize: 10, + ioSize: 10, + wantStr: "4a6b2b4c4d1d", + }, + + { + desc: "trickler", + t: &trickler{}, + src: "abcdefghijklm", + dstSize: 3, + srcSize: 15, + wantStr: "abcdefghijklm", + }, + + { + desc: "delayedTrickler", + t: &delayedTrickler{}, + src: "abcdefghijklm", + dstSize: 3, + srcSize: 15, + wantStr: "abcdefghijklm", + }, +} + +func TestReader(t *testing.T) { + for _, tc := range testCases { + testtext.Run(t, tc.desc, func(t *testing.T) { + r := NewReader(strings.NewReader(tc.src), tc.t) + // Differently sized dst and src buffers are not part of the + // exported API. We override them manually. + r.dst = make([]byte, tc.dstSize) + r.src = make([]byte, tc.srcSize) + got, err := ioutil.ReadAll(r) + str := string(got) + if str != tc.wantStr || err != tc.wantErr { + t.Errorf("\ngot %q, %v\nwant %q, %v", str, err, tc.wantStr, tc.wantErr) + } + }) + } +} + +func TestWriter(t *testing.T) { + tests := append(testCases, chainTests()...) + for _, tc := range tests { + sizes := []int{1, 2, 3, 4, 5, 10, 100, 1000} + if tc.ioSize > 0 { + sizes = []int{tc.ioSize} + } + for _, sz := range sizes { + testtext.Run(t, fmt.Sprintf("%s/%d", tc.desc, sz), func(t *testing.T) { + bb := &bytes.Buffer{} + w := NewWriter(bb, tc.t) + // Differently sized dst and src buffers are not part of the + // exported API. We override them manually. + w.dst = make([]byte, tc.dstSize) + w.src = make([]byte, tc.srcSize) + src := make([]byte, sz) + var err error + for b := tc.src; len(b) > 0 && err == nil; { + n := copy(src, b) + b = b[n:] + m := 0 + m, err = w.Write(src[:n]) + if m != n && err == nil { + t.Errorf("did not consume all bytes %d < %d", m, n) + } + } + if err == nil { + err = w.Close() + } + str := bb.String() + if str != tc.wantStr || err != tc.wantErr { + t.Errorf("\ngot %q, %v\nwant %q, %v", str, err, tc.wantStr, tc.wantErr) + } + }) + } + } +} + +func TestNop(t *testing.T) { + testCases := []struct { + str string + dstSize int + err error + }{ + {"", 0, nil}, + {"", 10, nil}, + {"a", 0, ErrShortDst}, + {"a", 1, nil}, + {"a", 10, nil}, + } + for i, tc := range testCases { + dst := make([]byte, tc.dstSize) + nDst, nSrc, err := Nop.Transform(dst, []byte(tc.str), true) + want := tc.str + if tc.dstSize < len(want) { + want = want[:tc.dstSize] + } + if got := string(dst[:nDst]); got != want || err != tc.err || nSrc != nDst { + t.Errorf("%d:\ngot %q, %d, %v\nwant %q, %d, %v", i, got, nSrc, err, want, nDst, tc.err) + } + } +} + +func TestDiscard(t *testing.T) { + testCases := []struct { + str string + dstSize int + }{ + {"", 0}, + {"", 10}, + {"a", 0}, + {"ab", 10}, + } + for i, tc := range testCases { + nDst, nSrc, err := Discard.Transform(make([]byte, tc.dstSize), []byte(tc.str), true) + if nDst != 0 || nSrc != len(tc.str) || err != nil { + t.Errorf("%d:\ngot %q, %d, %v\nwant 0, %d, nil", i, nDst, nSrc, err, len(tc.str)) + } + } +} + +// mkChain creates a Chain transformer. x must be alternating between transformer +// and bufSize, like T, (sz, T)* +func mkChain(x ...interface{}) *chain { + t := []Transformer{} + for i := 0; i < len(x); i += 2 { + t = append(t, x[i].(Transformer)) + } + c := Chain(t...).(*chain) + for i, j := 1, 1; i < len(x); i, j = i+2, j+1 { + c.link[j].b = make([]byte, x[i].(int)) + } + return c +} + +func chainTests() []testCase { + return []testCase{ + { + desc: "nil error", + t: mkChain(rleEncode{}, 100, lowerCaseASCII{}), + src: "ABB", + dstSize: 100, + srcSize: 100, + wantStr: "1a2b", + wantErr: nil, + wantIter: 1, + }, + + { + desc: "short dst buffer", + t: mkChain(lowerCaseASCII{}, 3, rleDecode{}), + src: "1a2b3c10d11e0f1g", + dstSize: 10, + srcSize: 3, + wantStr: "abbcccdddddddddd", + wantErr: ErrShortDst, + }, + + { + desc: "short internal dst buffer", + t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), + src: "1a2b3c10d11e0f1g", + dstSize: 100, + srcSize: 3, + wantStr: "abbcccdddddddddd", + wantErr: errShortInternal, + }, + + { + desc: "short internal dst buffer from input", + t: mkChain(rleDecode{}, 10, Nop), + src: "1a2b3c10d11e0f1g", + dstSize: 100, + srcSize: 3, + wantStr: "abbcccdddddddddd", + wantErr: errShortInternal, + }, + + { + desc: "empty short internal dst buffer", + t: mkChain(lowerCaseASCII{}, 3, rleDecode{}, 10, Nop), + src: "4a7b11e0f1g", + dstSize: 100, + srcSize: 3, + wantStr: "aaaabbbbbbb", + wantErr: errShortInternal, + }, + + { + desc: "empty short internal dst buffer from input", + t: mkChain(rleDecode{}, 10, Nop), + src: "4a7b11e0f1g", + dstSize: 100, + srcSize: 3, + wantStr: "aaaabbbbbbb", + wantErr: errShortInternal, + }, + + { + desc: "short internal src buffer after full dst buffer", + t: mkChain(Nop, 5, rleEncode{}, 10, Nop), + src: "cccccddddd", + dstSize: 100, + srcSize: 100, + wantStr: "", + wantErr: errShortInternal, + wantIter: 1, + }, + + { + desc: "short internal src buffer after short dst buffer; test lastFull", + t: mkChain(rleDecode{}, 5, rleEncode{}, 4, Nop), + src: "2a1b4c6d", + dstSize: 100, + srcSize: 100, + wantStr: "2a1b", + wantErr: errShortInternal, + }, + + { + desc: "short internal src buffer after successful complete fill", + t: mkChain(Nop, 3, rleDecode{}), + src: "123a4b", + dstSize: 4, + srcSize: 3, + wantStr: "", + wantErr: errShortInternal, + wantIter: 1, + }, + + { + desc: "short internal src buffer after short dst buffer; test lastFull", + t: mkChain(rleDecode{}, 5, rleEncode{}), + src: "2a1b4c6d", + dstSize: 4, + srcSize: 100, + wantStr: "2a1b", + wantErr: errShortInternal, + }, + + { + desc: "short src buffer", + t: mkChain(rleEncode{}, 5, Nop), + src: "abbcccddddeeeee", + dstSize: 4, + srcSize: 4, + ioSize: 4, + wantStr: "1a2b3c", + wantErr: ErrShortSrc, + }, + + { + desc: "process all in one go", + t: mkChain(rleEncode{}, 5, Nop), + src: "abbcccddddeeeeeffffff", + dstSize: 100, + srcSize: 100, + wantStr: "1a2b3c4d5e6f", + wantErr: nil, + wantIter: 1, + }, + + { + desc: "complete processing downstream after error", + t: mkChain(dontMentionX{}, 2, rleDecode{}, 5, Nop), + src: "3a4b5eX", + dstSize: 100, + srcSize: 100, + ioSize: 100, + wantStr: "aaabbbbeeeee", + wantErr: errYouMentionedX, + }, + + { + desc: "return downstream fatal errors first (followed by short dst)", + t: mkChain(dontMentionX{}, 8, rleDecode{}, 4, Nop), + src: "3a4b5eX", + dstSize: 100, + srcSize: 100, + ioSize: 100, + wantStr: "aaabbbb", + wantErr: errShortInternal, + }, + + { + desc: "return downstream fatal errors first (followed by short src)", + t: mkChain(dontMentionX{}, 5, Nop, 1, rleDecode{}), + src: "1a5bX", + dstSize: 100, + srcSize: 100, + ioSize: 100, + wantStr: "", + wantErr: errShortInternal, + }, + + { + desc: "short internal", + t: mkChain(Nop, 11, rleEncode{}, 3, Nop), + src: "abbcccddddddddddeeeeeeeeeeeg", + dstSize: 3, + srcSize: 100, + wantStr: "1a2b3c10d", + wantErr: errShortInternal, + }, + } +} + +func doTransform(tc testCase) (res string, iter int, err error) { + tc.t.Reset() + dst := make([]byte, tc.dstSize) + out, in := make([]byte, 0, 2*len(tc.src)), []byte(tc.src) + for { + iter++ + src, atEOF := in, true + if len(src) > tc.srcSize { + src, atEOF = src[:tc.srcSize], false + } + nDst, nSrc, err := tc.t.Transform(dst, src, atEOF) + out = append(out, dst[:nDst]...) + in = in[nSrc:] + switch { + case err == nil && len(in) != 0: + case err == ErrShortSrc && nSrc > 0: + case err == ErrShortDst && (nDst > 0 || nSrc > 0): + default: + return string(out), iter, err + } + } +} + +func TestChain(t *testing.T) { + if c, ok := Chain().(nop); !ok { + t.Errorf("empty chain: %v; want Nop", c) + } + + // Test Chain for a single Transformer. + for _, tc := range testCases { + tc.t = Chain(tc.t) + str, _, err := doTransform(tc) + if str != tc.wantStr || err != tc.wantErr { + t.Errorf("%s:\ngot %q, %v\nwant %q, %v", tc, str, err, tc.wantStr, tc.wantErr) + } + } + + tests := chainTests() + sizes := []int{1, 2, 3, 4, 5, 7, 10, 100, 1000} + addTest := func(tc testCase, t *chain) { + if t.link[0].t != tc.t && tc.wantErr == ErrShortSrc { + tc.wantErr = errShortInternal + } + if t.link[len(t.link)-2].t != tc.t && tc.wantErr == ErrShortDst { + tc.wantErr = errShortInternal + } + tc.t = t + tests = append(tests, tc) + } + for _, tc := range testCases { + for _, sz := range sizes { + tt := tc + tt.dstSize = sz + addTest(tt, mkChain(tc.t, tc.dstSize, Nop)) + addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 2, Nop)) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop)) + if sz >= tc.dstSize && (tc.wantErr != ErrShortDst || sz == tc.dstSize) { + addTest(tt, mkChain(Nop, tc.srcSize, tc.t)) + addTest(tt, mkChain(Nop, 100, Nop, tc.srcSize, tc.t)) + } + } + } + for _, tc := range testCases { + tt := tc + tt.dstSize = 1 + tt.wantStr = "" + addTest(tt, mkChain(tc.t, tc.dstSize, Discard)) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Discard)) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, tc.dstSize, Discard)) + } + for _, tc := range testCases { + tt := tc + tt.dstSize = 100 + tt.wantStr = strings.Replace(tc.src, "0f", "", -1) + // Chain encoders and decoders. + if _, ok := tc.t.(rleEncode); ok && tc.wantErr == nil { + addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 1000, rleDecode{})) + addTest(tt, mkChain(tc.t, tc.dstSize, Nop, tc.dstSize, rleDecode{})) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{})) + // decoding needs larger destinations + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, rleDecode{}, 100, Nop)) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleDecode{}, 100, Nop)) + } else if _, ok := tc.t.(rleDecode); ok && tc.wantErr == nil { + // The internal buffer size may need to be the sum of the maximum segment + // size of the two encoders! + addTest(tt, mkChain(tc.t, 2*tc.dstSize, rleEncode{})) + addTest(tt, mkChain(tc.t, tc.dstSize, Nop, 101, rleEncode{})) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 100, rleEncode{})) + addTest(tt, mkChain(Nop, tc.srcSize, tc.t, tc.dstSize, Nop, 200, rleEncode{}, 100, Nop)) + } + } + for _, tc := range tests { + str, iter, err := doTransform(tc) + mi := tc.wantIter != 0 && tc.wantIter != iter + if str != tc.wantStr || err != tc.wantErr || mi { + t.Errorf("%s:\ngot iter:%d, %q, %v\nwant iter:%d, %q, %v", tc, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) + } + break + } +} + +func TestRemoveFunc(t *testing.T) { + filter := RemoveFunc(func(r rune) bool { + return strings.IndexRune("ab\u0300\u1234,", r) != -1 + }) + tests := []testCase{ + { + src: ",", + wantStr: "", + }, + + { + src: "c", + wantStr: "c", + }, + + { + src: "\u2345", + wantStr: "\u2345", + }, + + { + src: "tschüß", + wantStr: "tschüß", + }, + + { + src: ",до,ÑвиданиÑ,", + wantStr: "доÑвиданиÑ", + }, + + { + src: "a\xbd\xb2=\xbc ⌘", + wantStr: "\uFFFD\uFFFD=\uFFFD ⌘", + }, + + { + // If we didn't replace illegal bytes with RuneError, the result + // would be \u0300 or the code would need to be more complex. + src: "\xcc\u0300\x80", + wantStr: "\uFFFD\uFFFD", + }, + + { + src: "\xcc\u0300\x80", + dstSize: 3, + wantStr: "\uFFFD\uFFFD", + wantIter: 2, + }, + + { + // Test a long buffer greater than the internal buffer size + src: "hello\xcc\xcc\xccworld", + srcSize: 13, + wantStr: "hello\uFFFD\uFFFD\uFFFDworld", + wantIter: 1, + }, + + { + src: "\u2345", + dstSize: 2, + wantStr: "", + wantErr: ErrShortDst, + }, + + { + src: "\xcc", + dstSize: 2, + wantStr: "", + wantErr: ErrShortDst, + }, + + { + src: "\u0300", + dstSize: 2, + srcSize: 1, + wantStr: "", + wantErr: ErrShortSrc, + }, + + { + t: RemoveFunc(func(r rune) bool { + return r == utf8.RuneError + }), + src: "\xcc\u0300\x80", + wantStr: "\u0300", + }, + } + + for _, tc := range tests { + tc.desc = tc.src + if tc.t == nil { + tc.t = filter + } + if tc.dstSize == 0 { + tc.dstSize = 100 + } + if tc.srcSize == 0 { + tc.srcSize = 100 + } + str, iter, err := doTransform(tc) + mi := tc.wantIter != 0 && tc.wantIter != iter + if str != tc.wantStr || err != tc.wantErr || mi { + t.Errorf("%+q:\ngot iter:%d, %+q, %v\nwant iter:%d, %+q, %v", tc.src, iter, str, err, tc.wantIter, tc.wantStr, tc.wantErr) + } + + tc.src = str + idem, _, _ := doTransform(tc) + if str != idem { + t.Errorf("%+q: found %+q; want %+q", tc.src, idem, str) + } + } +} + +func testString(t *testing.T, f func(Transformer, string) (string, int, error)) { + for _, tt := range append(testCases, chainTests()...) { + if tt.desc == "allowStutter = true" { + // We don't have control over the buffer size, so we eliminate tests + // that depend on a specific buffer size being set. + continue + } + if tt.wantErr == ErrShortDst || tt.wantErr == ErrShortSrc { + // The result string will be different. + continue + } + testtext.Run(t, tt.desc, func(t *testing.T) { + got, n, err := f(tt.t, tt.src) + if tt.wantErr != err { + t.Errorf("error: got %v; want %v", err, tt.wantErr) + } + // Check that err == nil implies that n == len(tt.src). Note that vice + // versa isn't necessarily true. + if err == nil && n != len(tt.src) { + t.Errorf("err == nil: got %d bytes, want %d", n, err) + } + if got != tt.wantStr { + t.Errorf("string: got %q; want %q", got, tt.wantStr) + } + }) + } +} + +func TestBytes(t *testing.T) { + testString(t, func(z Transformer, s string) (string, int, error) { + b, n, err := Bytes(z, []byte(s)) + return string(b), n, err + }) +} + +func TestAppend(t *testing.T) { + // Create a bunch of subtests for different buffer sizes. + testCases := [][]byte{ + nil, + make([]byte, 0, 0), + make([]byte, 0, 1), + make([]byte, 1, 1), + make([]byte, 1, 5), + make([]byte, 100, 100), + make([]byte, 100, 200), + } + for _, tc := range testCases { + testString(t, func(z Transformer, s string) (string, int, error) { + b, n, err := Append(z, tc, []byte(s)) + return string(b[len(tc):]), n, err + }) + } +} + +func TestString(t *testing.T) { + testtext.Run(t, "transform", func(t *testing.T) { testString(t, String) }) + + // Overrun the internal destination buffer. + for i, s := range []string{ + aaa[:1*initialBufSize-1], + aaa[:1*initialBufSize+0], + aaa[:1*initialBufSize+1], + AAA[:1*initialBufSize-1], + AAA[:1*initialBufSize+0], + AAA[:1*initialBufSize+1], + AAA[:2*initialBufSize-1], + AAA[:2*initialBufSize+0], + AAA[:2*initialBufSize+1], + aaa[:1*initialBufSize-2] + "A", + aaa[:1*initialBufSize-1] + "A", + aaa[:1*initialBufSize+0] + "A", + aaa[:1*initialBufSize+1] + "A", + } { + testtext.Run(t, fmt.Sprint("dst buffer test using lower/", i), func(t *testing.T) { + got, _, _ := String(lowerCaseASCII{}, s) + if want := strings.ToLower(s); got != want { + t.Errorf("got %s (%d); want %s (%d)", got, len(got), want, len(want)) + } + }) + } + + // Overrun the internal source buffer. + for i, s := range []string{ + aaa[:1*initialBufSize-1], + aaa[:1*initialBufSize+0], + aaa[:1*initialBufSize+1], + aaa[:2*initialBufSize+1], + aaa[:2*initialBufSize+0], + aaa[:2*initialBufSize+1], + } { + testtext.Run(t, fmt.Sprint("src buffer test using rleEncode/", i), func(t *testing.T) { + got, _, _ := String(rleEncode{}, s) + if want := fmt.Sprintf("%da", len(s)); got != want { + t.Errorf("got %s (%d); want %s (%d)", got, len(got), want, len(want)) + } + }) + } + + // Test allocations for non-changing strings. + // Note we still need to allocate a single buffer. + for i, s := range []string{ + "", + "123456789", + aaa[:initialBufSize-1], + aaa[:initialBufSize+0], + aaa[:initialBufSize+1], + aaa[:10*initialBufSize], + } { + testtext.Run(t, fmt.Sprint("alloc/", i), func(t *testing.T) { + if n := testtext.AllocsPerRun(5, func() { String(&lowerCaseASCIILookahead{}, s) }); n > 1 { + t.Errorf("#allocs was %f; want 1", n) + } + }) + } +} + +// TestBytesAllocation tests that buffer growth stays limited with the trickler +// transformer, which behaves oddly but within spec. In case buffer growth is +// not correctly handled, the test will either panic with a failed allocation or +// thrash. To ensure the tests terminate under the last condition, we time out +// after some sufficiently long period of time. +func TestBytesAllocation(t *testing.T) { + done := make(chan bool) + go func() { + in := bytes.Repeat([]byte{'a'}, 1000) + tr := trickler(make([]byte, 1)) + Bytes(&tr, in) + done <- true + }() + select { + case <-done: + case <-time.After(3 * time.Second): + t.Error("time out, likely due to excessive allocation") + } +} + +// TestStringAllocation tests that buffer growth stays limited with the trickler +// transformer, which behaves oddly but within spec. In case buffer growth is +// not correctly handled, the test will either panic with a failed allocation or +// thrash. To ensure the tests terminate under the last condition, we time out +// after some sufficiently long period of time. +func TestStringAllocation(t *testing.T) { + done := make(chan bool) + go func() { + tr := trickler(make([]byte, 1)) + String(&tr, aaa[:1000]) + done <- true + }() + select { + case <-done: + case <-time.After(3 * time.Second): + t.Error("time out, likely due to excessive allocation") + } +} + +func BenchmarkStringLowerEmpty(b *testing.B) { + for i := 0; i < b.N; i++ { + String(&lowerCaseASCIILookahead{}, "") + } +} + +func BenchmarkStringLowerIdentical(b *testing.B) { + for i := 0; i < b.N; i++ { + String(&lowerCaseASCIILookahead{}, aaa[:4096]) + } +} + +func BenchmarkStringLowerChanged(b *testing.B) { + for i := 0; i < b.N; i++ { + String(&lowerCaseASCIILookahead{}, AAA[:4096]) + } +} + +var ( + aaa = strings.Repeat("a", 4096) + AAA = strings.Repeat("A", 4096) +) diff --git a/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go new file mode 100644 index 00000000..3fc4a625 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/bidi.go @@ -0,0 +1,198 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go gen_trieval.go gen_ranges.go + +// Package bidi contains functionality for bidirectional text support. +// +// See http://www.unicode.org/reports/tr9. +// +// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways +// and without notice. +package bidi // import "golang.org/x/text/unicode/bidi" + +// TODO: +// The following functionality would not be hard to implement, but hinges on +// the definition of a Segmenter interface. For now this is up to the user. +// - Iterate over paragraphs +// - Segmenter to iterate over runs directly from a given text. +// Also: +// - Transformer for reordering? +// - Transformer (validator, really) for Bidi Rule. + +// This API tries to avoid dealing with embedding levels for now. Under the hood +// these will be computed, but the question is to which extent the user should +// know they exist. We should at some point allow the user to specify an +// embedding hierarchy, though. + +// A Direction indicates the overall flow of text. +type Direction int + +const ( + // LeftToRight indicates the text contains no right-to-left characters and + // that either there are some left-to-right characters or the option + // DefaultDirection(LeftToRight) was passed. + LeftToRight Direction = iota + + // RightToLeft indicates the text contains no left-to-right characters and + // that either there are some right-to-left characters or the option + // DefaultDirection(RightToLeft) was passed. + RightToLeft + + // Mixed indicates text contains both left-to-right and right-to-left + // characters. + Mixed + + // Neutral means that text contains no left-to-right and right-to-left + // characters and that no default direction has been set. + Neutral +) + +type options struct{} + +// An Option is an option for Bidi processing. +type Option func(*options) + +// ICU allows the user to define embedding levels. This may be used, for example, +// to use hierarchical structure of markup languages to define embeddings. +// The following option may be a way to expose this functionality in this API. +// // LevelFunc sets a function that associates nesting levels with the given text. +// // The levels function will be called with monotonically increasing values for p. +// func LevelFunc(levels func(p int) int) Option { +// panic("unimplemented") +// } + +// DefaultDirection sets the default direction for a Paragraph. The direction is +// overridden if the text contains directional characters. +func DefaultDirection(d Direction) Option { + panic("unimplemented") +} + +// A Paragraph holds a single Paragraph for Bidi processing. +type Paragraph struct { + // buffers +} + +// SetBytes configures p for the given paragraph text. It replaces text +// previously set by SetBytes or SetString. If b contains a paragraph separator +// it will only process the first paragraph and report the number of bytes +// consumed from b including this separator. Error may be non-nil if options are +// given. +func (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) { + panic("unimplemented") +} + +// SetString configures p for the given paragraph text. It replaces text +// previously set by SetBytes or SetString. If b contains a paragraph separator +// it will only process the first paragraph and report the number of bytes +// consumed from b including this separator. Error may be non-nil if options are +// given. +func (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) { + panic("unimplemented") +} + +// IsLeftToRight reports whether the principle direction of rendering for this +// paragraphs is left-to-right. If this returns false, the principle direction +// of rendering is right-to-left. +func (p *Paragraph) IsLeftToRight() bool { + panic("unimplemented") +} + +// Direction returns the direction of the text of this paragraph. +// +// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. +func (p *Paragraph) Direction() Direction { + panic("unimplemented") +} + +// RunAt reports the Run at the given position of the input text. +// +// This method can be used for computing line breaks on paragraphs. +func (p *Paragraph) RunAt(pos int) Run { + panic("unimplemented") +} + +// Order computes the visual ordering of all the runs in a Paragraph. +func (p *Paragraph) Order() (Ordering, error) { + panic("unimplemented") +} + +// Line computes the visual ordering of runs for a single line starting and +// ending at the given positions in the original text. +func (p *Paragraph) Line(start, end int) (Ordering, error) { + panic("unimplemented") +} + +// An Ordering holds the computed visual order of runs of a Paragraph. Calling +// SetBytes or SetString on the originating Paragraph invalidates an Ordering. +// The methods of an Ordering should only be called by one goroutine at a time. +type Ordering struct{} + +// Direction reports the directionality of the runs. +// +// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. +func (o *Ordering) Direction() Direction { + panic("unimplemented") +} + +// NumRuns returns the number of runs. +func (o *Ordering) NumRuns() int { + panic("unimplemented") +} + +// Run returns the ith run within the ordering. +func (o *Ordering) Run(i int) Run { + panic("unimplemented") +} + +// TODO: perhaps with options. +// // Reorder creates a reader that reads the runes in visual order per character. +// // Modifiers remain after the runes they modify. +// func (l *Runs) Reorder() io.Reader { +// panic("unimplemented") +// } + +// A Run is a continuous sequence of characters of a single direction. +type Run struct { +} + +// String returns the text of the run in its original order. +func (r *Run) String() string { + panic("unimplemented") +} + +// Bytes returns the text of the run in its original order. +func (r *Run) Bytes() []byte { + panic("unimplemented") +} + +// TODO: methods for +// - Display order +// - headers and footers +// - bracket replacement. + +// Direction reports the direction of the run. +func (r *Run) Direction() Direction { + panic("unimplemented") +} + +// Position of the Run within the text passed to SetBytes or SetString of the +// originating Paragraph value. +func (r *Run) Pos() (start, end int) { + panic("unimplemented") +} + +// AppendReverse reverses the order of characters of in, appends them to out, +// and returns the result. Modifiers will still follow the runes they modify. +// Brackets are replaced with their counterparts. +func AppendReverse(out, in []byte) []byte { + panic("unimplemented") +} + +// ReverseString reverses the order of characters in s and returns a new string. +// Modifiers will still follow the runes they modify. Brackets are replaced with +// their counterparts. +func ReverseString(s string) string { + panic("unimplemented") +} diff --git a/vendor/golang.org/x/text/unicode/bidi/bracket.go b/vendor/golang.org/x/text/unicode/bidi/bracket.go new file mode 100644 index 00000000..e88119d1 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/bracket.go @@ -0,0 +1,307 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import ( + "container/list" + "fmt" + "sort" +) + +// This file contains a port of the reference implementation of the +// Bidi Parentheses Algorithm: +// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java +// +// The implementation in this file covers definitions BD14-BD16 and rule N0 +// of UAX#9. +// +// Some preprocessing is done for each rune before data is passed to this +// algorithm: +// - opening and closing brackets are identified +// - a bracket pair type, like '(' and ')' is assigned a unique identifier that +// is identical for the opening and closing bracket. It is left to do these +// mappings. +// - The BPA algorithm requires that bracket characters that are canonical +// equivalents of each other be able to be substituted for each other. +// It is the responsibility of the caller to do this canonicalization. +// +// In implementing BD16, this implementation departs slightly from the "logical" +// algorithm defined in UAX#9. In particular, the stack referenced there +// supports operations that go beyond a "basic" stack. An equivalent +// implementation based on a linked list is used here. + +// Bidi_Paired_Bracket_Type +// BD14. An opening paired bracket is a character whose +// Bidi_Paired_Bracket_Type property value is Open. +// +// BD15. A closing paired bracket is a character whose +// Bidi_Paired_Bracket_Type property value is Close. +type bracketType byte + +const ( + bpNone bracketType = iota + bpOpen + bpClose +) + +// bracketPair holds a pair of index values for opening and closing bracket +// location of a bracket pair. +type bracketPair struct { + opener int + closer int +} + +func (b *bracketPair) String() string { + return fmt.Sprintf("(%v, %v)", b.opener, b.closer) +} + +// bracketPairs is a slice of bracketPairs with a sort.Interface implementation. +type bracketPairs []bracketPair + +func (b bracketPairs) Len() int { return len(b) } +func (b bracketPairs) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener } + +// resolvePairedBrackets runs the paired bracket part of the UBA algorithm. +// +// For each rune, it takes the indexes into the original string, the class the +// bracket type (in pairTypes) and the bracket identifier (pairValues). It also +// takes the direction type for the start-of-sentence and the embedding level. +// +// The identifiers for bracket types are the rune of the canonicalized opening +// bracket for brackets (open or close) or 0 for runes that are not brackets. +func resolvePairedBrackets(s *isolatingRunSequence) { + p := bracketPairer{ + sos: s.sos, + openers: list.New(), + codesIsolatedRun: s.types, + indexes: s.indexes, + } + dirEmbed := L + if s.level&1 != 0 { + dirEmbed = R + } + p.locateBrackets(s.p.pairTypes, s.p.pairValues) + p.resolveBrackets(dirEmbed) +} + +type bracketPairer struct { + sos Class // direction corresponding to start of sequence + + // The following is a restatement of BD 16 using non-algorithmic language. + // + // A bracket pair is a pair of characters consisting of an opening + // paired bracket and a closing paired bracket such that the + // Bidi_Paired_Bracket property value of the former equals the latter, + // subject to the following constraints. + // - both characters of a pair occur in the same isolating run sequence + // - the closing character of a pair follows the opening character + // - any bracket character can belong at most to one pair, the earliest possible one + // - any bracket character not part of a pair is treated like an ordinary character + // - pairs may nest properly, but their spans may not overlap otherwise + + // Bracket characters with canonical decompositions are supposed to be + // treated as if they had been normalized, to allow normalized and non- + // normalized text to give the same result. In this implementation that step + // is pushed out to the caller. The caller has to ensure that the pairValue + // slices contain the rune of the opening bracket after normalization for + // any opening or closing bracket. + + openers *list.List // list of positions for opening brackets + + // bracket pair positions sorted by location of opening bracket + pairPositions bracketPairs + + codesIsolatedRun []Class // directional bidi codes for an isolated run + indexes []int // array of index values into the original string + +} + +// matchOpener reports whether characters at given positions form a matching +// bracket pair. +func (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool { + return pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]] +} + +// locateBrackets locates matching bracket pairs according to BD16. +// +// This implementation uses a linked list instead of a stack, because, while +// elements are added at the front (like a push) they are not generally removed +// in atomic 'pop' operations, reducing the benefit of the stack archetype. +func (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) { + // traverse the run + // do that explicitly (not in a for-each) so we can record position + for i, index := range p.indexes { + + // look at the bracket type for each character + switch pairTypes[index] { + case bpNone: + // continue scanning + + case bpOpen: + // remember opener location, most recent first + p.openers.PushFront(i) + + case bpClose: + // see if there is a match + count := 0 + for elem := p.openers.Front(); elem != nil; elem = elem.Next() { + count++ + opener := elem.Value.(int) + if p.matchOpener(pairValues, opener, i) { + // if the opener matches, add nested pair to the ordered list + p.pairPositions = append(p.pairPositions, bracketPair{opener, i}) + // remove up to and including matched opener + for ; count > 0; count-- { + p.openers.Remove(p.openers.Front()) + } + break + } + } + sort.Sort(p.pairPositions) + // if we get here, the closing bracket matched no openers + // and gets ignored + } + } +} + +// Bracket pairs within an isolating run sequence are processed as units so +// that both the opening and the closing paired bracket in a pair resolve to +// the same direction. +// +// N0. Process bracket pairs in an isolating run sequence sequentially in +// the logical order of the text positions of the opening paired brackets +// using the logic given below. Within this scope, bidirectional types EN +// and AN are treated as R. +// +// Identify the bracket pairs in the current isolating run sequence +// according to BD16. For each bracket-pair element in the list of pairs of +// text positions: +// +// a Inspect the bidirectional types of the characters enclosed within the +// bracket pair. +// +// b If any strong type (either L or R) matching the embedding direction is +// found, set the type for both brackets in the pair to match the embedding +// direction. +// +// o [ e ] o -> o e e e o +// +// o [ o e ] -> o e o e e +// +// o [ NI e ] -> o e NI e e +// +// c Otherwise, if a strong type (opposite the embedding direction) is +// found, test for adjacent strong types as follows: 1 First, check +// backwards before the opening paired bracket until the first strong type +// (L, R, or sos) is found. If that first preceding strong type is opposite +// the embedding direction, then set the type for both brackets in the pair +// to that type. 2 Otherwise, set the type for both brackets in the pair to +// the embedding direction. +// +// o [ o ] e -> o o o o e +// +// o [ o NI ] o -> o o o NI o o +// +// e [ o ] o -> e e o e o +// +// e [ o ] e -> e e o e e +// +// e ( o [ o ] NI ) e -> e e o o o o NI e e +// +// d Otherwise, do not set the type for the current bracket pair. Note that +// if the enclosed text contains no strong types the paired brackets will +// both resolve to the same level when resolved individually using rules N1 +// and N2. +// +// e ( NI ) o -> e ( NI ) o + +// getStrongTypeN0 maps character's directional code to strong type as required +// by rule N0. +// +// TODO: have separate type for "strong" directionality. +func (p *bracketPairer) getStrongTypeN0(index int) Class { + switch p.codesIsolatedRun[index] { + // in the scope of N0, number types are treated as R + case EN, AN, AL, R: + return R + case L: + return L + default: + return ON + } +} + +// classifyPairContent reports the strong types contained inside a Bracket Pair, +// assuming the given embedding direction. +// +// It returns ON if no strong type is found. If a single strong type is found, +// it returns this this type. Otherwise it returns the embedding direction. +// +// TODO: use separate type for "strong" directionality. +func (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class { + dirOpposite := ON + for i := loc.opener + 1; i < loc.closer; i++ { + dir := p.getStrongTypeN0(i) + if dir == ON { + continue + } + if dir == dirEmbed { + return dir // type matching embedding direction found + } + dirOpposite = dir + } + // return ON if no strong type found, or class opposite to dirEmbed + return dirOpposite +} + +// classBeforePair determines which strong types are present before a Bracket +// Pair. Return R or L if strong type found, otherwise ON. +func (p *bracketPairer) classBeforePair(loc bracketPair) Class { + for i := loc.opener - 1; i >= 0; i-- { + if dir := p.getStrongTypeN0(i); dir != ON { + return dir + } + } + // no strong types found, return sos + return p.sos +} + +// assignBracketType implements rule N0 for a single bracket pair. +func (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class) { + // rule "N0, a", inspect contents of pair + dirPair := p.classifyPairContent(loc, dirEmbed) + + // dirPair is now L, R, or N (no strong type found) + + // the following logical tests are performed out of order compared to + // the statement of the rules but yield the same results + if dirPair == ON { + return // case "d" - nothing to do + } + + if dirPair != dirEmbed { + // case "c": strong type found, opposite - check before (c.1) + dirPair = p.classBeforePair(loc) + if dirPair == dirEmbed || dirPair == ON { + // no strong opposite type found before - use embedding (c.2) + dirPair = dirEmbed + } + } + // else: case "b", strong type found matching embedding, + // no explicit action needed, as dirPair is already set to embedding + // direction + + // set the bracket types to the type found + p.codesIsolatedRun[loc.opener] = dirPair + p.codesIsolatedRun[loc.closer] = dirPair +} + +// resolveBrackets implements rule N0 for a list of pairs. +func (p *bracketPairer) resolveBrackets(dirEmbed Class) { + for _, loc := range p.pairPositions { + p.assignBracketType(loc, dirEmbed) + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go new file mode 100644 index 00000000..381f30ad --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -0,0 +1,1055 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import "log" + +// This implementation is a port based on the reference implementation found at: +// http://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/ +// +// described in Unicode Bidirectional Algorithm (UAX #9). +// +// Input: +// There are two levels of input to the algorithm, since clients may prefer to +// supply some information from out-of-band sources rather than relying on the +// default behavior. +// +// - Bidi class array +// - Bidi class array, with externally supplied base line direction +// +// Output: +// Output is separated into several stages: +// +// - levels array over entire paragraph +// - reordering array over entire paragraph +// - levels array over line +// - reordering array over line +// +// Note that for conformance to the Unicode Bidirectional Algorithm, +// implementations are only required to generate correct reordering and +// character directionality (odd or even levels) over a line. Generating +// identical level arrays over a line is not required. Bidi explicit format +// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and +// positions as long as the rest of the input is properly reordered. +// +// As the algorithm is defined to operate on a single paragraph at a time, this +// implementation is written to handle single paragraphs. Thus rule P1 is +// presumed by this implementation-- the data provided to the implementation is +// assumed to be a single paragraph, and either contains no 'B' codes, or a +// single 'B' code at the end of the input. 'B' is allowed as input to +// illustrate how the algorithm assigns it a level. +// +// Also note that rules L3 and L4 depend on the rendering engine that uses the +// result of the bidi algorithm. This implementation assumes that the rendering +// engine expects combining marks in visual order (e.g. to the left of their +// base character in RTL runs) and that it adjusts the glyphs used to render +// mirrored characters that are in RTL runs so that they render appropriately. + +// level is the embedding level of a character. Even embedding levels indicate +// left-to-right order and odd levels indicate right-to-left order. The special +// level of -1 is reserved for undefined order. +type level int8 + +const implicitLevel level = -1 + +// in returns if x is equal to any of the values in set. +func (c Class) in(set ...Class) bool { + for _, s := range set { + if c == s { + return true + } + } + return false +} + +// A paragraph contains the state of a paragraph. +type paragraph struct { + initialTypes []Class + + // Arrays of properties needed for paired bracket evaluation in N0 + pairTypes []bracketType // paired Bracket types for paragraph + pairValues []rune // rune for opening bracket or pbOpen and pbClose; 0 for pbNone + + embeddingLevel level // default: = implicitLevel; + + // at the paragraph levels + resultTypes []Class + resultLevels []level + + // Index of matching PDI for isolate initiator characters. For other + // characters, the value of matchingPDI will be set to -1. For isolate + // initiators with no matching PDI, matchingPDI will be set to the length of + // the input string. + matchingPDI []int + + // Index of matching isolate initiator for PDI characters. For other + // characters, and for PDIs with no matching isolate initiator, the value of + // matchingIsolateInitiator will be set to -1. + matchingIsolateInitiator []int +} + +// newParagraph initializes a paragraph. The user needs to supply a few arrays +// corresponding to the preprocessed text input. The types correspond to the +// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for +// each rune. pairValues provides a unique bracket class identifier for each +// rune (suggested is the rune of the open bracket for opening and matching +// close brackets, after normalization). The embedding levels are optional, but +// may be supplied to encode embedding levels of styled text. +// +// TODO: return an error. +func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) *paragraph { + validateTypes(types) + validatePbTypes(pairTypes) + validatePbValues(pairValues, pairTypes) + validateParagraphEmbeddingLevel(levels) + + p := ¶graph{ + initialTypes: append([]Class(nil), types...), + embeddingLevel: levels, + + pairTypes: pairTypes, + pairValues: pairValues, + + resultTypes: append([]Class(nil), types...), + } + p.run() + return p +} + +func (p *paragraph) Len() int { return len(p.initialTypes) } + +// The algorithm. Does not include line-based processing (Rules L1, L2). +// These are applied later in the line-based phase of the algorithm. +func (p *paragraph) run() { + p.determineMatchingIsolates() + + // 1) determining the paragraph level + // Rule P1 is the requirement for entering this algorithm. + // Rules P2, P3. + // If no externally supplied paragraph embedding level, use default. + if p.embeddingLevel == implicitLevel { + p.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len()) + } + + // Initialize result levels to paragraph embedding level. + p.resultLevels = make([]level, p.Len()) + setLevels(p.resultLevels, p.embeddingLevel) + + // 2) Explicit levels and directions + // Rules X1-X8. + p.determineExplicitEmbeddingLevels() + + // Rule X9. + // We do not remove the embeddings, the overrides, the PDFs, and the BNs + // from the string explicitly. But they are not copied into isolating run + // sequences when they are created, so they are removed for all + // practical purposes. + + // Rule X10. + // Run remainder of algorithm one isolating run sequence at a time + for _, seq := range p.determineIsolatingRunSequences() { + // 3) resolving weak types + // Rules W1-W7. + seq.resolveWeakTypes() + + // 4a) resolving paired brackets + // Rule N0 + resolvePairedBrackets(seq) + + // 4b) resolving neutral types + // Rules N1-N3. + seq.resolveNeutralTypes() + + // 5) resolving implicit embedding levels + // Rules I1, I2. + seq.resolveImplicitLevels() + + // Apply the computed levels and types + seq.applyLevelsAndTypes() + } + + // Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and + // BNs. This is for convenience, so the resulting level array will have + // a value for every character. + p.assignLevelsToCharactersRemovedByX9() +} + +// determineMatchingIsolates determines the matching PDI for each isolate +// initiator and vice versa. +// +// Definition BD9. +// +// At the end of this function: +// +// - The member variable matchingPDI is set to point to the index of the +// matching PDI character for each isolate initiator character. If there is +// no matching PDI, it is set to the length of the input text. For other +// characters, it is set to -1. +// - The member variable matchingIsolateInitiator is set to point to the +// index of the matching isolate initiator character for each PDI character. +// If there is no matching isolate initiator, or the character is not a PDI, +// it is set to -1. +func (p *paragraph) determineMatchingIsolates() { + p.matchingPDI = make([]int, p.Len()) + p.matchingIsolateInitiator = make([]int, p.Len()) + + for i := range p.matchingIsolateInitiator { + p.matchingIsolateInitiator[i] = -1 + } + + for i := range p.matchingPDI { + p.matchingPDI[i] = -1 + + if t := p.resultTypes[i]; t.in(LRI, RLI, FSI) { + depthCounter := 1 + for j := i + 1; j < p.Len(); j++ { + if u := p.resultTypes[j]; u.in(LRI, RLI, FSI) { + depthCounter++ + } else if u == PDI { + if depthCounter--; depthCounter == 0 { + p.matchingPDI[i] = j + p.matchingIsolateInitiator[j] = i + break + } + } + } + if p.matchingPDI[i] == -1 { + p.matchingPDI[i] = p.Len() + } + } + } +} + +// determineParagraphEmbeddingLevel reports the resolved paragraph direction of +// the substring limited by the given range [start, end). +// +// Determines the paragraph level based on rules P2, P3. This is also used +// in rule X5c to find if an FSI should resolve to LRI or RLI. +func (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level { + var strongType Class = unknownClass + + // Rule P2. + for i := start; i < end; i++ { + if t := p.resultTypes[i]; t.in(L, AL, R) { + strongType = t + break + } else if t.in(FSI, LRI, RLI) { + i = p.matchingPDI[i] // skip over to the matching PDI + if i > end { + log.Panic("assert (i <= end)") + } + } + } + // Rule P3. + switch strongType { + case unknownClass: // none found + // default embedding level when no strong types found is 0. + return 0 + case L: + return 0 + default: // AL, R + return 1 + } +} + +const maxDepth = 125 + +// This stack will store the embedding levels and override and isolated +// statuses +type directionalStatusStack struct { + stackCounter int + embeddingLevelStack [maxDepth + 1]level + overrideStatusStack [maxDepth + 1]Class + isolateStatusStack [maxDepth + 1]bool +} + +func (s *directionalStatusStack) empty() { s.stackCounter = 0 } +func (s *directionalStatusStack) pop() { s.stackCounter-- } +func (s *directionalStatusStack) depth() int { return s.stackCounter } + +func (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) { + s.embeddingLevelStack[s.stackCounter] = level + s.overrideStatusStack[s.stackCounter] = overrideStatus + s.isolateStatusStack[s.stackCounter] = isolateStatus + s.stackCounter++ +} + +func (s *directionalStatusStack) lastEmbeddingLevel() level { + return s.embeddingLevelStack[s.stackCounter-1] +} + +func (s *directionalStatusStack) lastDirectionalOverrideStatus() Class { + return s.overrideStatusStack[s.stackCounter-1] +} + +func (s *directionalStatusStack) lastDirectionalIsolateStatus() bool { + return s.isolateStatusStack[s.stackCounter-1] +} + +// Determine explicit levels using rules X1 - X8 +func (p *paragraph) determineExplicitEmbeddingLevels() { + var stack directionalStatusStack + var overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int + + // Rule X1. + stack.push(p.embeddingLevel, ON, false) + + for i, t := range p.resultTypes { + // Rules X2, X3, X4, X5, X5a, X5b, X5c + switch t { + case RLE, LRE, RLO, LRO, RLI, LRI, FSI: + isIsolate := t.in(RLI, LRI, FSI) + isRTL := t.in(RLE, RLO, RLI) + + // override if this is an FSI that resolves to RLI + if t == FSI { + isRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1) + } + if isIsolate { + p.resultLevels[i] = stack.lastEmbeddingLevel() + } + + var newLevel level + if isRTL { + // least greater odd + newLevel = (stack.lastEmbeddingLevel() + 1) | 1 + } else { + // least greater even + newLevel = (stack.lastEmbeddingLevel() + 2) &^ 1 + } + + if newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 { + if isIsolate { + validIsolateCount++ + } + // Push new embedding level, override status, and isolated + // status. + // No check for valid stack counter, since the level check + // suffices. + switch t { + case LRO: + stack.push(newLevel, L, isIsolate) + case RLO: + stack.push(newLevel, R, isIsolate) + default: + stack.push(newLevel, ON, isIsolate) + } + // Not really part of the spec + if !isIsolate { + p.resultLevels[i] = newLevel + } + } else { + // This is an invalid explicit formatting character, + // so apply the "Otherwise" part of rules X2-X5b. + if isIsolate { + overflowIsolateCount++ + } else { // !isIsolate + if overflowIsolateCount == 0 { + overflowEmbeddingCount++ + } + } + } + + // Rule X6a + case PDI: + if overflowIsolateCount > 0 { + overflowIsolateCount-- + } else if validIsolateCount == 0 { + // do nothing + } else { + overflowEmbeddingCount = 0 + for !stack.lastDirectionalIsolateStatus() { + stack.pop() + } + stack.pop() + validIsolateCount-- + } + p.resultLevels[i] = stack.lastEmbeddingLevel() + + // Rule X7 + case PDF: + // Not really part of the spec + p.resultLevels[i] = stack.lastEmbeddingLevel() + + if overflowIsolateCount > 0 { + // do nothing + } else if overflowEmbeddingCount > 0 { + overflowEmbeddingCount-- + } else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 { + stack.pop() + } + + case B: // paragraph separator. + // Rule X8. + + // These values are reset for clarity, in this implementation B + // can only occur as the last code in the array. + stack.empty() + overflowIsolateCount = 0 + overflowEmbeddingCount = 0 + validIsolateCount = 0 + p.resultLevels[i] = p.embeddingLevel + + default: + p.resultLevels[i] = stack.lastEmbeddingLevel() + if stack.lastDirectionalOverrideStatus() != ON { + p.resultTypes[i] = stack.lastDirectionalOverrideStatus() + } + } + } +} + +type isolatingRunSequence struct { + p *paragraph + + indexes []int // indexes to the original string + + types []Class // type of each character using the index + resolvedLevels []level // resolved levels after application of rules + level level + sos, eos Class +} + +func (i *isolatingRunSequence) Len() int { return len(i.indexes) } + +func maxLevel(a, b level) level { + if a > b { + return a + } + return b +} + +// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types, +// either L or R, for each isolating run sequence. +func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { + length := len(indexes) + types := make([]Class, length) + for i, x := range indexes { + types[i] = p.resultTypes[x] + } + + // assign level, sos and eos + prevChar := indexes[0] - 1 + for prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) { + prevChar-- + } + prevLevel := p.embeddingLevel + if prevChar >= 0 { + prevLevel = p.resultLevels[prevChar] + } + + var succLevel level + lastType := types[length-1] + if lastType.in(LRI, RLI, FSI) { + succLevel = p.embeddingLevel + } else { + // the first character after the end of run sequence + limit := indexes[length-1] + 1 + for ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ { + + } + succLevel = p.embeddingLevel + if limit < p.Len() { + succLevel = p.resultLevels[limit] + } + } + level := p.resultLevels[indexes[0]] + return &isolatingRunSequence{ + p: p, + indexes: indexes, + types: types, + level: level, + sos: typeForLevel(maxLevel(prevLevel, level)), + eos: typeForLevel(maxLevel(succLevel, level)), + } +} + +// Resolving weak types Rules W1-W7. +// +// Note that some weak types (EN, AN) remain after this processing is +// complete. +func (s *isolatingRunSequence) resolveWeakTypes() { + + // on entry, only these types remain + s.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI) + + // Rule W1. + // Changes all NSMs. + preceedingCharacterType := s.sos + for i, t := range s.types { + if t == NSM { + s.types[i] = preceedingCharacterType + } else { + if t.in(LRI, RLI, FSI, PDI) { + preceedingCharacterType = ON + } + preceedingCharacterType = t + } + } + + // Rule W2. + // EN does not change at the start of the run, because sos != AL. + for i, t := range s.types { + if t == EN { + for j := i - 1; j >= 0; j-- { + if t := s.types[j]; t.in(L, R, AL) { + if t == AL { + s.types[i] = AN + } + break + } + } + } + } + + // Rule W3. + for i, t := range s.types { + if t == AL { + s.types[i] = R + } + } + + // Rule W4. + // Since there must be values on both sides for this rule to have an + // effect, the scan skips the first and last value. + // + // Although the scan proceeds left to right, and changes the type + // values in a way that would appear to affect the computations + // later in the scan, there is actually no problem. A change in the + // current value can only affect the value to its immediate right, + // and only affect it if it is ES or CS. But the current value can + // only change if the value to its right is not ES or CS. Thus + // either the current value will not change, or its change will have + // no effect on the remainder of the analysis. + + for i := 1; i < s.Len()-1; i++ { + t := s.types[i] + if t == ES || t == CS { + prevSepType := s.types[i-1] + succSepType := s.types[i+1] + if prevSepType == EN && succSepType == EN { + s.types[i] = EN + } else if s.types[i] == CS && prevSepType == AN && succSepType == AN { + s.types[i] = AN + } + } + } + + // Rule W5. + for i, t := range s.types { + if t == ET { + // locate end of sequence + runStart := i + runEnd := s.findRunLimit(runStart, ET) + + // check values at ends of sequence + t := s.sos + if runStart > 0 { + t = s.types[runStart-1] + } + if t != EN { + t = s.eos + if runEnd < len(s.types) { + t = s.types[runEnd] + } + } + if t == EN { + setTypes(s.types[runStart:runEnd], EN) + } + // continue at end of sequence + i = runEnd + } + } + + // Rule W6. + for i, t := range s.types { + if t.in(ES, ET, CS) { + s.types[i] = ON + } + } + + // Rule W7. + for i, t := range s.types { + if t == EN { + // set default if we reach start of run + prevStrongType := s.sos + for j := i - 1; j >= 0; j-- { + t = s.types[j] + if t == L || t == R { // AL's have been changed to R + prevStrongType = t + break + } + } + if prevStrongType == L { + s.types[i] = L + } + } + } +} + +// 6) resolving neutral types Rules N1-N2. +func (s *isolatingRunSequence) resolveNeutralTypes() { + + // on entry, only these types can be in resultTypes + s.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI) + + for i, t := range s.types { + switch t { + case WS, ON, B, S, RLI, LRI, FSI, PDI: + // find bounds of run of neutrals + runStart := i + runEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI) + + // determine effective types at ends of run + var leadType, trailType Class + + // Note that the character found can only be L, R, AN, or + // EN. + if runStart == 0 { + leadType = s.sos + } else { + leadType = s.types[runStart-1] + if leadType.in(AN, EN) { + leadType = R + } + } + if runEnd == len(s.types) { + trailType = s.eos + } else { + trailType = s.types[runEnd] + if trailType.in(AN, EN) { + trailType = R + } + } + + var resolvedType Class + if leadType == trailType { + // Rule N1. + resolvedType = leadType + } else { + // Rule N2. + // Notice the embedding level of the run is used, not + // the paragraph embedding level. + resolvedType = typeForLevel(s.level) + } + + setTypes(s.types[runStart:runEnd], resolvedType) + + // skip over run of (former) neutrals + i = runEnd + } + } +} + +func setLevels(levels []level, newLevel level) { + for i := range levels { + levels[i] = newLevel + } +} + +func setTypes(types []Class, newType Class) { + for i := range types { + types[i] = newType + } +} + +// 7) resolving implicit embedding levels Rules I1, I2. +func (s *isolatingRunSequence) resolveImplicitLevels() { + + // on entry, only these types can be in resultTypes + s.assertOnly(L, R, EN, AN) + + s.resolvedLevels = make([]level, len(s.types)) + setLevels(s.resolvedLevels, s.level) + + if (s.level & 1) == 0 { // even level + for i, t := range s.types { + // Rule I1. + if t == L { + // no change + } else if t == R { + s.resolvedLevels[i] += 1 + } else { // t == AN || t == EN + s.resolvedLevels[i] += 2 + } + } + } else { // odd level + for i, t := range s.types { + // Rule I2. + if t == R { + // no change + } else { // t == L || t == AN || t == EN + s.resolvedLevels[i] += 1 + } + } + } +} + +// Applies the levels and types resolved in rules W1-I2 to the +// resultLevels array. +func (s *isolatingRunSequence) applyLevelsAndTypes() { + for i, x := range s.indexes { + s.p.resultTypes[x] = s.types[i] + s.p.resultLevels[x] = s.resolvedLevels[i] + } +} + +// Return the limit of the run consisting only of the types in validSet +// starting at index. This checks the value at index, and will return +// index if that value is not in validSet. +func (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int { +loop: + for ; index < len(s.types); index++ { + t := s.types[index] + for _, valid := range validSet { + if t == valid { + continue loop + } + } + return index // didn't find a match in validSet + } + return len(s.types) +} + +// Algorithm validation. Assert that all values in types are in the +// provided set. +func (s *isolatingRunSequence) assertOnly(codes ...Class) { +loop: + for i, t := range s.types { + for _, c := range codes { + if t == c { + continue loop + } + } + log.Panicf("invalid bidi code %s present in assertOnly at position %d", t, s.indexes[i]) + } +} + +// determineLevelRuns returns an array of level runs. Each level run is +// described as an array of indexes into the input string. +// +// Determines the level runs. Rule X9 will be applied in determining the +// runs, in the way that makes sure the characters that are supposed to be +// removed are not included in the runs. +func (p *paragraph) determineLevelRuns() [][]int { + run := []int{} + allRuns := [][]int{} + currentLevel := implicitLevel + + for i := range p.initialTypes { + if !isRemovedByX9(p.initialTypes[i]) { + if p.resultLevels[i] != currentLevel { + // we just encountered a new run; wrap up last run + if currentLevel >= 0 { // only wrap it up if there was a run + allRuns = append(allRuns, run) + run = nil + } + // Start new run + currentLevel = p.resultLevels[i] + } + run = append(run, i) + } + } + // Wrap up the final run, if any + if len(run) > 0 { + allRuns = append(allRuns, run) + } + return allRuns +} + +// Definition BD13. Determine isolating run sequences. +func (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence { + levelRuns := p.determineLevelRuns() + + // Compute the run that each character belongs to + runForCharacter := make([]int, p.Len()) + for i, run := range levelRuns { + for _, index := range run { + runForCharacter[index] = i + } + } + + sequences := []*isolatingRunSequence{} + + var currentRunSequence []int + + for _, run := range levelRuns { + first := run[0] + if p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 { + currentRunSequence = nil + // int run = i; + for { + // Copy this level run into currentRunSequence + currentRunSequence = append(currentRunSequence, run...) + + last := currentRunSequence[len(currentRunSequence)-1] + lastT := p.initialTypes[last] + if lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() { + run = levelRuns[runForCharacter[p.matchingPDI[last]]] + } else { + break + } + } + sequences = append(sequences, p.isolatingRunSequence(currentRunSequence)) + } + } + return sequences +} + +// Assign level information to characters removed by rule X9. This is for +// ease of relating the level information to the original input data. Note +// that the levels assigned to these codes are arbitrary, they're chosen so +// as to avoid breaking level runs. +func (p *paragraph) assignLevelsToCharactersRemovedByX9() { + for i, t := range p.initialTypes { + if t.in(LRE, RLE, LRO, RLO, PDF, BN) { + p.resultTypes[i] = t + p.resultLevels[i] = -1 + } + } + // now propagate forward the levels information (could have + // propagated backward, the main thing is not to introduce a level + // break where one doesn't already exist). + + if p.resultLevels[0] == -1 { + p.resultLevels[0] = p.embeddingLevel + } + for i := 1; i < len(p.initialTypes); i++ { + if p.resultLevels[i] == -1 { + p.resultLevels[i] = p.resultLevels[i-1] + } + } + // Embedding information is for informational purposes only so need not be + // adjusted. +} + +// +// Output +// + +// getLevels computes levels array breaking lines at offsets in linebreaks. +// Rule L1. +// +// The linebreaks array must include at least one value. The values must be +// in strictly increasing order (no duplicates) between 1 and the length of +// the text, inclusive. The last value must be the length of the text. +func (p *paragraph) getLevels(linebreaks []int) []level { + // Note that since the previous processing has removed all + // P, S, and WS values from resultTypes, the values referred to + // in these rules are the initial types, before any processing + // has been applied (including processing of overrides). + // + // This example implementation has reinserted explicit format codes + // and BN, in order that the levels array correspond to the + // initial text. Their final placement is not normative. + // These codes are treated like WS in this implementation, + // so they don't interrupt sequences of WS. + + validateLineBreaks(linebreaks, p.Len()) + + result := append([]level(nil), p.resultLevels...) + + // don't worry about linebreaks since if there is a break within + // a series of WS values preceding S, the linebreak itself + // causes the reset. + for i, t := range p.initialTypes { + if t.in(B, S) { + // Rule L1, clauses one and two. + result[i] = p.embeddingLevel + + // Rule L1, clause three. + for j := i - 1; j >= 0; j-- { + if isWhitespace(p.initialTypes[j]) { // including format codes + result[j] = p.embeddingLevel + } else { + break + } + } + } + } + + // Rule L1, clause four. + start := 0 + for _, limit := range linebreaks { + for j := limit - 1; j >= start; j-- { + if isWhitespace(p.initialTypes[j]) { // including format codes + result[j] = p.embeddingLevel + } else { + break + } + } + start = limit + } + + return result +} + +// getReordering returns the reordering of lines from a visual index to a +// logical index for line breaks at the given offsets. +// +// Lines are concatenated from left to right. So for example, the fifth +// character from the left on the third line is +// +// getReordering(linebreaks)[linebreaks[1] + 4] +// +// (linebreaks[1] is the position after the last character of the second +// line, which is also the index of the first character on the third line, +// and adding four gets the fifth character from the left). +// +// The linebreaks array must include at least one value. The values must be +// in strictly increasing order (no duplicates) between 1 and the length of +// the text, inclusive. The last value must be the length of the text. +func (p *paragraph) getReordering(linebreaks []int) []int { + validateLineBreaks(linebreaks, p.Len()) + + return computeMultilineReordering(p.getLevels(linebreaks), linebreaks) +} + +// Return multiline reordering array for a given level array. Reordering +// does not occur across a line break. +func computeMultilineReordering(levels []level, linebreaks []int) []int { + result := make([]int, len(levels)) + + start := 0 + for _, limit := range linebreaks { + tempLevels := make([]level, limit-start) + copy(tempLevels, levels[start:]) + + for j, order := range computeReordering(tempLevels) { + result[start+j] = order + start + } + start = limit + } + return result +} + +// Return reordering array for a given level array. This reorders a single +// line. The reordering is a visual to logical map. For example, the +// leftmost char is string.charAt(order[0]). Rule L2. +func computeReordering(levels []level) []int { + result := make([]int, len(levels)) + // initialize order + for i := range result { + result[i] = i + } + + // locate highest level found on line. + // Note the rules say text, but no reordering across line bounds is + // performed, so this is sufficient. + highestLevel := level(0) + lowestOddLevel := level(maxDepth + 2) + for _, level := range levels { + if level > highestLevel { + highestLevel = level + } + if level&1 != 0 && level < lowestOddLevel { + lowestOddLevel = level + } + } + + for level := highestLevel; level >= lowestOddLevel; level-- { + for i := 0; i < len(levels); i++ { + if levels[i] >= level { + // find range of text at or above this level + start := i + limit := i + 1 + for limit < len(levels) && levels[limit] >= level { + limit++ + } + + for j, k := start, limit-1; j < k; j, k = j+1, k-1 { + result[j], result[k] = result[k], result[j] + } + // skip to end of level run + i = limit + } + } + } + + return result +} + +// isWhitespace reports whether the type is considered a whitespace type for the +// line break rules. +func isWhitespace(c Class) bool { + switch c { + case LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS: + return true + } + return false +} + +// isRemovedByX9 reports whether the type is one of the types removed in X9. +func isRemovedByX9(c Class) bool { + switch c { + case LRE, RLE, LRO, RLO, PDF, BN: + return true + } + return false +} + +// typeForLevel reports the strong type (L or R) corresponding to the level. +func typeForLevel(level level) Class { + if (level & 0x1) == 0 { + return L + } + return R +} + +// TODO: change validation to not panic + +func validateTypes(types []Class) { + if len(types) == 0 { + log.Panic("types is null") + } + for i, t := range types[:len(types)-1] { + if t == B { + log.Panicf("B type before end of paragraph at index: %d", i) + } + } +} + +func validateParagraphEmbeddingLevel(embeddingLevel level) { + if embeddingLevel != implicitLevel && + embeddingLevel != 0 && + embeddingLevel != 1 { + log.Panicf("illegal paragraph embedding level: %d", embeddingLevel) + } +} + +func validateLineBreaks(linebreaks []int, textLength int) { + prev := 0 + for i, next := range linebreaks { + if next <= prev { + log.Panicf("bad linebreak: %d at index: %d", next, i) + } + prev = next + } + if prev != textLength { + log.Panicf("last linebreak was %d, want %d", prev, textLength) + } +} + +func validatePbTypes(pairTypes []bracketType) { + if len(pairTypes) == 0 { + log.Panic("pairTypes is null") + } + for i, pt := range pairTypes { + switch pt { + case bpNone, bpOpen, bpClose: + default: + log.Panicf("illegal pairType value at %d: %v", i, pairTypes[i]) + } + } +} + +func validatePbValues(pairValues []rune, pairTypes []bracketType) { + if pairValues == nil { + log.Panic("pairValues is null") + } + if len(pairTypes) != len(pairValues) { + log.Panic("pairTypes is different length from pairValues") + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/core_test.go b/vendor/golang.org/x/text/unicode/bidi/core_test.go new file mode 100644 index 00000000..d0dfbd88 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/core_test.go @@ -0,0 +1,224 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import ( + "flag" + "fmt" + "log" + "strconv" + "strings" + "testing" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/testtext" + "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/norm" +) + +var testLevels = flag.Bool("levels", false, "enable testing of levels") + +// TestBidiCore performs the tests in BidiTest.txt. +// See http://www.unicode.org/Public/UCD/latest/ucd/BidiTest.txt. +func TestBidiCore(t *testing.T) { + testtext.SkipIfNotLong(t) + + r := gen.OpenUCDFile("BidiTest.txt") + defer r.Close() + + var wantLevels, wantOrder []string + p := ucd.New(r, ucd.Part(func(p *ucd.Parser) { + s := strings.Split(p.String(0), ":") + switch s[0] { + case "Levels": + wantLevels = strings.Fields(s[1]) + case "Reorder": + wantOrder = strings.Fields(s[1]) + default: + log.Fatalf("Unknown part %q.", s[0]) + } + })) + + for p.Next() { + types := []Class{} + for _, s := range p.Strings(0) { + types = append(types, bidiClass[s]) + } + // We ignore the bracketing part of the algorithm. + pairTypes := make([]bracketType, len(types)) + pairValues := make([]rune, len(types)) + + for i := uint(0); i < 3; i++ { + if p.Uint(1)&(1< 0x0F { + log.Fatalf("Too many Class constants (%#x > 0x0F).", numClass) + } + w := gen.NewCodeWriter() + defer w.WriteGoFile(*outputFile, "bidi") + + gen.WriteUnicodeVersion(w) + + t := triegen.NewTrie("bidi") + + // Build data about bracket mapping. These bits need to be or-ed with + // any other bits. + orMask := map[rune]uint64{} + + xorMap := map[rune]int{} + xorMasks := []rune{0} // First value is no-op. + + ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) { + r1 := p.Rune(0) + r2 := p.Rune(1) + xor := r1 ^ r2 + if _, ok := xorMap[xor]; !ok { + xorMap[xor] = len(xorMasks) + xorMasks = append(xorMasks, xor) + } + entry := uint64(xorMap[xor]) << xorMaskShift + switch p.String(2) { + case "o": + entry |= openMask + case "c", "n": + default: + log.Fatalf("Unknown bracket class %q.", p.String(2)) + } + orMask[r1] = entry + }) + + w.WriteComment(` + xorMasks contains masks to be xor-ed with brackets to get the reverse + version.`) + w.WriteVar("xorMasks", xorMasks) + + done := map[rune]bool{} + + insert := func(r rune, c Class) { + if !done[r] { + t.Insert(r, orMask[r]|uint64(c)) + done[r] = true + } + } + + // Insert the derived BiDi properties. + ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) { + r := p.Rune(0) + class, ok := bidiClass[p.String(1)] + if !ok { + log.Fatalf("%U: Unknown BiDi class %q", r, p.String(1)) + } + insert(r, class) + }) + visitDefaults(insert) + + // TODO: use sparse blocks. This would reduce table size considerably + // from the looks of it. + + sz, err := t.Gen(w) + if err != nil { + log.Fatal(err) + } + w.Size += sz +} + +// dummy values to make methods in gen_common compile. The real versions +// will be generated by this file to tables.go. +var ( + xorMasks []rune +) diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go new file mode 100644 index 00000000..51bd68fa --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/gen_ranges.go @@ -0,0 +1,57 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "unicode" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/rangetable" +) + +// These tables are hand-extracted from: +// http://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt +func visitDefaults(fn func(r rune, c Class)) { + // first write default values for ranges listed above. + visitRunes(fn, AL, []rune{ + 0x0600, 0x07BF, // Arabic + 0x08A0, 0x08FF, // Arabic Extended-A + 0xFB50, 0xFDCF, // Arabic Presentation Forms + 0xFDF0, 0xFDFF, + 0xFE70, 0xFEFF, + 0x0001EE00, 0x0001EEFF, // Arabic Mathematical Alpha Symbols + }) + visitRunes(fn, R, []rune{ + 0x0590, 0x05FF, // Hebrew + 0x07C0, 0x089F, // Nko et al. + 0xFB1D, 0xFB4F, + 0x00010800, 0x00010FFF, // Cypriot Syllabary et. al. + 0x0001E800, 0x0001EDFF, + 0x0001EF00, 0x0001EFFF, + }) + visitRunes(fn, ET, []rune{ // European Terminator + 0x20A0, 0x20Cf, // Currency symbols + }) + rangetable.Visit(unicode.Noncharacter_Code_Point, func(r rune) { + fn(r, BN) // Boundary Neutral + }) + ucd.Parse(gen.OpenUCDFile("DerivedCoreProperties.txt"), func(p *ucd.Parser) { + if p.String(1) == "Default_Ignorable_Code_Point" { + fn(p.Rune(0), BN) // Boundary Neutral + } + }) +} + +func visitRunes(fn func(r rune, c Class), c Class, runes []rune) { + for i := 0; i < len(runes); i += 2 { + lo, hi := runes[i], runes[i+1] + for j := lo; j <= hi; j++ { + fn(j, c) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go b/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go new file mode 100644 index 00000000..9cb99428 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/gen_trieval.go @@ -0,0 +1,64 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// Class is the Unicode BiDi class. Each rune has a single class. +type Class uint + +const ( + L Class = iota // LeftToRight + R // RightToLeft + EN // EuropeanNumber + ES // EuropeanSeparator + ET // EuropeanTerminator + AN // ArabicNumber + CS // CommonSeparator + B // ParagraphSeparator + S // SegmentSeparator + WS // WhiteSpace + ON // OtherNeutral + BN // BoundaryNeutral + NSM // NonspacingMark + AL // ArabicLetter + Control // Control LRO - PDI + + numClass + + LRO // LeftToRightOverride + RLO // RightToLeftOverride + LRE // LeftToRightEmbedding + RLE // RightToLeftEmbedding + PDF // PopDirectionalFormat + LRI // LeftToRightIsolate + RLI // RightToLeftIsolate + FSI // FirstStrongIsolate + PDI // PopDirectionalIsolate + + unknownClass = ^Class(0) +) + +var controlToClass = map[rune]Class{ + 0x202D: LRO, // LeftToRightOverride, + 0x202E: RLO, // RightToLeftOverride, + 0x202A: LRE, // LeftToRightEmbedding, + 0x202B: RLE, // RightToLeftEmbedding, + 0x202C: PDF, // PopDirectionalFormat, + 0x2066: LRI, // LeftToRightIsolate, + 0x2067: RLI, // RightToLeftIsolate, + 0x2068: FSI, // FirstStrongIsolate, + 0x2069: PDI, // PopDirectionalIsolate, +} + +// A trie entry has the following bits: +// 7..5 XOR mask for brackets +// 4 1: Bracket open, 0: Bracket close +// 3..0 Class type + +const ( + openMask = 0x10 + xorMaskShift = 5 +) diff --git a/vendor/golang.org/x/text/unicode/bidi/prop.go b/vendor/golang.org/x/text/unicode/bidi/prop.go new file mode 100644 index 00000000..7c9484e1 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/prop.go @@ -0,0 +1,206 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import "unicode/utf8" + +// Properties provides access to BiDi properties of runes. +type Properties struct { + entry uint8 + last uint8 +} + +var trie = newBidiTrie(0) + +// TODO: using this for bidirule reduces the running time by about 5%. Consider +// if this is worth exposing or if we can find a way to speed up the Class +// method. +// +// // CompactClass is like Class, but maps all of the BiDi control classes +// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control. +// func (p Properties) CompactClass() Class { +// return Class(p.entry & 0x0F) +// } + +// Class returns the Bidi class for p. +func (p Properties) Class() Class { + c := Class(p.entry & 0x0F) + if c == Control { + c = controlByteToClass[p.last&0xF] + } + return c +} + +// IsBracket reports whether the rune is a bracket. +func (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 } + +// IsOpeningBracket reports whether the rune is an opening bracket. +// IsBracket must return true. +func (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 } + +// TODO: find a better API and expose. +func (p Properties) reverseBracket(r rune) rune { + return xorMasks[p.entry>>xorMaskShift] ^ r +} + +var controlByteToClass = [16]Class{ + 0xD: LRO, // U+202D LeftToRightOverride, + 0xE: RLO, // U+202E RightToLeftOverride, + 0xA: LRE, // U+202A LeftToRightEmbedding, + 0xB: RLE, // U+202B RightToLeftEmbedding, + 0xC: PDF, // U+202C PopDirectionalFormat, + 0x6: LRI, // U+2066 LeftToRightIsolate, + 0x7: RLI, // U+2067 RightToLeftIsolate, + 0x8: FSI, // U+2068 FirstStrongIsolate, + 0x9: PDI, // U+2069 PopDirectionalIsolate, +} + +// LookupRune returns properties for r. +func LookupRune(r rune) (p Properties, size int) { + var buf [4]byte + n := utf8.EncodeRune(buf[:], r) + return Lookup(buf[:n]) +} + +// TODO: these lookup methods are based on the generated trie code. The returned +// sizes have slightly different semantics from the generated code, in that it +// always returns size==1 for an illegal UTF-8 byte (instead of the length +// of the maximum invalid subsequence). Most Transformers, like unicode/norm, +// leave invalid UTF-8 untouched, in which case it has performance benefits to +// do so (without changing the semantics). Bidi requires the semantics used here +// for the bidirule implementation to be compatible with the Go semantics. +// They ultimately should perhaps be adopted by all trie implementations, for +// convenience sake. +// This unrolled code also boosts performance of the secure/bidirule package by +// about 30%. +// So, to remove this code: +// - add option to trie generator to define return type. +// - always return 1 byte size for ill-formed UTF-8 runes. + +// Lookup returns properties for the first rune in s and the width in bytes of +// its encoding. The size will be 0 if s does not hold enough bytes to complete +// the encoding. +func Lookup(s []byte) (p Properties, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return Properties{entry: bidiValues[c0]}, 1 + case c0 < 0xC2: + return Properties{}, 1 + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4 + } + // Illegal rune + return Properties{}, 1 +} + +// LookupString returns properties for the first rune in s and the width in +// bytes of its encoding. The size will be 0 if s does not hold enough bytes to +// complete the encoding. +func LookupString(s string) (p Properties, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return Properties{entry: bidiValues[c0]}, 1 + case c0 < 0xC2: + return Properties{}, 1 + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return Properties{}, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return Properties{}, 1 + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return Properties{}, 1 + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return Properties{}, 1 + } + return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4 + } + // Illegal rune + return Properties{}, 1 +} diff --git a/vendor/golang.org/x/text/unicode/bidi/ranges_test.go b/vendor/golang.org/x/text/unicode/bidi/ranges_test.go new file mode 100644 index 00000000..a1b313e9 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/ranges_test.go @@ -0,0 +1,53 @@ +// This file was generated by go generate; DO NOT EDIT + +package bidi + +import ( + "unicode" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/rangetable" +) + +// These tables are hand-extracted from: +// http://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt +func visitDefaults(fn func(r rune, c Class)) { + // first write default values for ranges listed above. + visitRunes(fn, AL, []rune{ + 0x0600, 0x07BF, // Arabic + 0x08A0, 0x08FF, // Arabic Extended-A + 0xFB50, 0xFDCF, // Arabic Presentation Forms + 0xFDF0, 0xFDFF, + 0xFE70, 0xFEFF, + 0x0001EE00, 0x0001EEFF, // Arabic Mathematical Alpha Symbols + }) + visitRunes(fn, R, []rune{ + 0x0590, 0x05FF, // Hebrew + 0x07C0, 0x089F, // Nko et al. + 0xFB1D, 0xFB4F, + 0x00010800, 0x00010FFF, // Cypriot Syllabary et. al. + 0x0001E800, 0x0001EDFF, + 0x0001EF00, 0x0001EFFF, + }) + visitRunes(fn, ET, []rune{ // European Terminator + 0x20A0, 0x20Cf, // Currency symbols + }) + rangetable.Visit(unicode.Noncharacter_Code_Point, func(r rune) { + fn(r, BN) // Boundary Neutral + }) + ucd.Parse(gen.OpenUCDFile("DerivedCoreProperties.txt"), func(p *ucd.Parser) { + if p.String(1) == "Default_Ignorable_Code_Point" { + fn(p.Rune(0), BN) // Boundary Neutral + } + }) +} + +func visitRunes(fn func(r rune, c Class), c Class, runes []rune) { + for i := 0; i < len(runes); i += 2 { + lo, hi := runes[i], runes[i+1] + for j := lo; j <= hi; j++ { + fn(j, c) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/bidi/tables.go b/vendor/golang.org/x/text/unicode/bidi/tables.go new file mode 100644 index 00000000..2d4dde07 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables.go @@ -0,0 +1,1779 @@ +// This file was generated by go generate; DO NOT EDIT + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// 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 *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[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 *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 222 blocks, 14208 entries, 14208 bytes +// The third block is the zero block. +var bidiValues = [14208]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001, + 0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001, + 0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001, + 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001, + 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001, + 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001, + // Block 0x18, offset 0x600 + 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001, + 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001, + 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001, + 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d, + 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d, + 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, + 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa01: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa8a: 0x000c, + 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c, + 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c, + 0xaff: 0x0004, + // Block 0x2c, offset 0xb00 + 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c, + 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c, + // Block 0x2d, offset 0xb40 + 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c, + 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c, + 0xb7c: 0x000c, + // Block 0x2e, offset 0xb80 + 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c, + 0xb8c: 0x000c, 0xb8d: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbd8: 0x000c, 0xbd9: 0x000c, + 0xbf5: 0x000c, + 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a, + 0xbfc: 0x003a, 0xbfd: 0x002a, + // Block 0x30, offset 0xc00 + 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c, + 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c, + 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c, + // Block 0x31, offset 0xc40 + 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c, + 0xc46: 0x000c, 0xc47: 0x000c, + 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c, + 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c, + 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c, + 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c, + 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c, + 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c, + 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, + // Block 0x32, offset 0xc80 + 0xc86: 0x000c, + // Block 0x33, offset 0xcc0 + 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c, + 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c, + 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c, + 0xcfd: 0x000c, 0xcfe: 0x000c, + // Block 0x34, offset 0xd00 + 0xd18: 0x000c, 0xd19: 0x000c, + 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c, + 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, + // Block 0x35, offset 0xd40 + 0xd42: 0x000c, 0xd45: 0x000c, + 0xd46: 0x000c, + 0xd4d: 0x000c, + 0xd5d: 0x000c, + // Block 0x36, offset 0xd80 + 0xd9d: 0x000c, + 0xd9e: 0x000c, 0xd9f: 0x000c, + // Block 0x37, offset 0xdc0 + 0xdd0: 0x000a, 0xdd1: 0x000a, + 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a, + 0xdd8: 0x000a, 0xdd9: 0x000a, + // Block 0x38, offset 0xe00 + 0xe00: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0009, + 0xe5b: 0x007a, 0xe5c: 0x006a, + // Block 0x3a, offset 0xe80 + 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c, + 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf34: 0x000c, 0xf35: 0x000c, + 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c, + 0xf3c: 0x000c, 0xf3d: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c, + 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c, + 0xf52: 0x000c, 0xf53: 0x000c, + 0xf5b: 0x0004, 0xf5d: 0x000c, + 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a, + 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a, + // Block 0x3e, offset 0xf80 + 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a, + 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b, + // Block 0x3f, offset 0xfc0 + 0xfc5: 0x000c, + 0xfc6: 0x000c, + 0xfe9: 0x000c, + // Block 0x40, offset 0x1000 + 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c, + 0x1027: 0x000c, 0x1028: 0x000c, + 0x1032: 0x000c, + 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c, + // Block 0x41, offset 0x1040 + 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a, + // Block 0x42, offset 0x1080 + 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a, + 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a, + 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a, + 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a, + 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a, + 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10d7: 0x000c, + 0x10d8: 0x000c, 0x10db: 0x000c, + // Block 0x44, offset 0x1100 + 0x1116: 0x000c, + 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c, + 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c, + 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c, + 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c, + 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c, + 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c, + 0x113c: 0x000c, 0x113f: 0x000c, + // Block 0x45, offset 0x1140 + 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c, + // Block 0x46, offset 0x1180 + 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c, + 0x11b4: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, + 0x11bc: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c2: 0x000c, + 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c, + 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, + 0x1222: 0x000c, 0x1223: 0x000c, + 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c, + 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c, + // Block 0x49, offset 0x1240 + 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c, + 0x126d: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, + // Block 0x4a, offset 0x1280 + 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c, + 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c, + 0x12b6: 0x000c, 0x12b7: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x000c, 0x12d1: 0x000c, + 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c, + 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c, + 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c, + 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c, + 0x12ed: 0x000c, + 0x12f4: 0x000c, + 0x12f8: 0x000c, 0x12f9: 0x000c, + // Block 0x4c, offset 0x1300 + 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c, + 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c, + 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c, + 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c, + 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c, + 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c, + 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c, + 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c, + 0x133b: 0x000c, + 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c, + // Block 0x4d, offset 0x1340 + 0x137d: 0x000a, 0x137f: 0x000a, + // Block 0x4e, offset 0x1380 + 0x1380: 0x000a, 0x1381: 0x000a, + 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a, + 0x139d: 0x000a, + 0x139e: 0x000a, 0x139f: 0x000a, + 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a, + 0x13bd: 0x000a, 0x13be: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009, + 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b, + 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a, + 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a, + 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a, + 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007, + 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006, + 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a, + 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a, + 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a, + 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a, + 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b, + 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e, + 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b, + 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002, + 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003, + 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a, + // Block 0x51, offset 0x1440 + 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002, + 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003, + 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a, + 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004, + 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004, + 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004, + 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004, + 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004, + 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004, + // Block 0x52, offset 0x1480 + 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004, + 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004, + 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c, + 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c, + 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c, + 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c, + 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c, + 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c, + 0x14b0: 0x000c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a, + 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a, + 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a, + 0x14d8: 0x000a, + 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a, + 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a, + 0x14ee: 0x0004, + 0x14fa: 0x000a, 0x14fb: 0x000a, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, + 0x150a: 0x000a, 0x150b: 0x000a, + 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a, + 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, + // Block 0x55, offset 0x1540 + 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a, + 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a, + 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a, + 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a, + 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a, + 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a, + 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a, + 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a, + 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + // Block 0x59, offset 0x1640 + 0x167b: 0x000a, + 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a, + // Block 0x5a, offset 0x1680 + 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a, + 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a, + 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a, + 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a, + 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a, + 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a, + 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a, + 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a, + 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a, + 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a, + 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a, + 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a, + 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a, + 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a, + 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a, + 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a, + 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a, + 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, + 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a, + 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a, + 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a, + 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a, + 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a, + 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a, + // Block 0x5e, offset 0x1780 + 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a, + 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002, + 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002, + 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002, + 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002, + // Block 0x5f, offset 0x17c0 + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a, + 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a, + 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a, + 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a, + 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a, + 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a, + 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a, + 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a, + 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a, + 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a, + 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba, + 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, + 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, + 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, + 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a, + 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, + 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a, + 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a, + 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a, + 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a, + 0x1a2a: 0x000a, 0x1a2f: 0x000c, + 0x1a30: 0x000c, 0x1a31: 0x000c, + 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a, + 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a, + // Block 0x69, offset 0x1a40 + 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c, + 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c, + 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c, + 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c, + 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c, + 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a, + 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a, + 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a, + 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a, + 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a, + 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a, + 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a, + 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a, + 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a, + 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a, + 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a, + 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a, + 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a, + 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a, + 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a, + 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a, + 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a, + 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a, + 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a, + 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a, + 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a, + 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a, + 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a, + 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c, + 0x1c30: 0x000a, + 0x1c36: 0x000a, 0x1c37: 0x000a, + 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a, + 0x1c60: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1cbb: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a, + 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a, + 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a, + 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a, + 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a, + 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d1d: 0x000a, + 0x1d1e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d50: 0x000a, 0x1d51: 0x000a, + 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a, + 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a, + 0x1d5e: 0x000a, 0x1d5f: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a, + 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a, + 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e5e: 0x000a, 0x1e5f: 0x000a, + 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e90: 0x000a, 0x1e91: 0x000a, + 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a, + 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a, + 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a, + 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a, + 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a, + 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a, + 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a, + 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a, + 0x1ec6: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f6f: 0x000c, + 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c, + 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c, + 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a, + // Block 0x7e, offset 0x1f80 + 0x1f9e: 0x000c, 0x1f9f: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1ff0: 0x000c, 0x1ff1: 0x000c, + // Block 0x80, offset 0x2000 + 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a, + 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a, + 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a, + 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a, + 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a, + 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a, + // Block 0x81, offset 0x2040 + 0x2048: 0x000a, + // Block 0x82, offset 0x2080 + 0x2082: 0x000c, + 0x2086: 0x000c, 0x208b: 0x000c, + 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a, + 0x20aa: 0x000a, 0x20ab: 0x000a, + 0x20b8: 0x0004, 0x20b9: 0x0004, + // Block 0x83, offset 0x20c0 + 0x20f4: 0x000a, 0x20f5: 0x000a, + 0x20f6: 0x000a, 0x20f7: 0x000a, + // Block 0x84, offset 0x2100 + 0x2104: 0x000c, 0x2105: 0x000c, + 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c, + 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c, + 0x2130: 0x000c, 0x2131: 0x000c, + // Block 0x85, offset 0x2140 + 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c, + 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c, + // Block 0x86, offset 0x2180 + 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c, + 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c, + 0x21f3: 0x000c, + 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c, + 0x21fc: 0x000c, + // Block 0x88, offset 0x2200 + 0x2225: 0x000c, + // Block 0x89, offset 0x2240 + 0x2269: 0x000c, + 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c, + 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c, + 0x2276: 0x000c, + // Block 0x8a, offset 0x2280 + 0x2283: 0x000c, + 0x228c: 0x000c, + 0x22bc: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c, + 0x22f7: 0x000c, 0x22f8: 0x000c, + 0x22fe: 0x000c, 0x22ff: 0x000c, + // Block 0x8c, offset 0x2300 + 0x2301: 0x000c, + 0x232c: 0x000c, 0x232d: 0x000c, + 0x2336: 0x000c, + // Block 0x8d, offset 0x2340 + 0x2365: 0x000c, 0x2368: 0x000c, + 0x236d: 0x000c, + // Block 0x8e, offset 0x2380 + 0x239d: 0x0001, + 0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001, + 0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003, + 0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001, + 0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001, + 0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001, + 0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001, + 0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001, + 0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d, + 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, + 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, + 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, + 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, + 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d, + // Block 0x90, offset 0x2400 + 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, + 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, + 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d, + 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d, + 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d, + 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d, + 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d, + 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a, + // Block 0x91, offset 0x2440 + 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d, + 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d, + 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b, + 0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b, + 0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b, + 0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b, + 0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b, + 0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b, + 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d, + 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d, + 0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d, + // Block 0x92, offset 0x2480 + 0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c, + 0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c, + 0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a, + 0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a, + 0x2498: 0x000a, 0x2499: 0x000a, + 0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c, + 0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c, + 0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c, + 0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a, + 0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a, + 0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a, + 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a, + 0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a, + 0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a, + 0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a, + 0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003, + 0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004, + 0x24ea: 0x0004, 0x24eb: 0x000a, + 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d, + 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d, + 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d, + // Block 0x94, offset 0x2500 + 0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d, + 0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d, + 0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d, + 0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d, + 0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d, + 0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d, + 0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d, + 0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d, + 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d, + 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d, + 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b, + // Block 0x95, offset 0x2540 + 0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004, + 0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003, + 0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002, + 0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002, + 0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a, + 0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a, + 0x257b: 0x005a, + 0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a, + // Block 0x96, offset 0x2580 + 0x2580: 0x000a, + 0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a, + 0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a, + 0x25a4: 0x000a, 0x25a5: 0x000a, + // Block 0x97, offset 0x25c0 + 0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a, + 0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a, + 0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a, + 0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b, + 0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a, + 0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b, + // Block 0x98, offset 0x2600 + 0x2601: 0x000a, + // Block 0x99, offset 0x2640 + 0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a, + 0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a, + 0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a, + 0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a, + 0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a, + 0x2660: 0x000a, + // Block 0x9a, offset 0x2680 + 0x26bd: 0x000c, + // Block 0x9b, offset 0x26c0 + 0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002, + 0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002, + 0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002, + 0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002, + 0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002, + // Block 0x9c, offset 0x2700 + 0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001, + 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001, + 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001, + 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001, + 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001, + 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001, + 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001, + 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001, + 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001, + 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001, + 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001, + 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c, + 0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001, + 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001, + 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001, + 0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001, + 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001, + 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001, + 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a, + 0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005, + 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005, + 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005, + 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005, + 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005, + 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001, + // Block 0xa3, offset 0x28c0 + 0x28c1: 0x000c, + 0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c, + 0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c, + // Block 0xa4, offset 0x2900 + 0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c, + 0x2906: 0x000c, + 0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a, + 0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a, + 0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a, + 0x2924: 0x000a, 0x2925: 0x000a, + 0x293f: 0x000c, + // Block 0xa5, offset 0x2940 + 0x2940: 0x000c, 0x2941: 0x000c, + 0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c, + 0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, + // Block 0xa6, offset 0x2980 + 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, + 0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c, + 0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c, + 0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29f3: 0x000c, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x000c, 0x2a01: 0x000c, + 0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c, + 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, + // Block 0xa9, offset 0x2a40 + 0x2a4a: 0x000c, 0x2a4b: 0x000c, + 0x2a4c: 0x000c, + // Block 0xaa, offset 0x2a80 + 0x2aaf: 0x000c, + 0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c, + 0x2ab6: 0x000c, 0x2ab7: 0x000c, + 0x2abe: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2adf: 0x000c, 0x2ae3: 0x000c, + 0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c, + 0x2aea: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x000c, 0x2b01: 0x000c, + 0x2b3c: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x000c, + 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, + 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c, + 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c, + 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c, + 0x2bc6: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c, + 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c, + 0x2c3f: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c, + 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x000c, + 0x2cdc: 0x000c, 0x2cdd: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c, + 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, + 0x2d3d: 0x000c, 0x2d3f: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x000c, + 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a, + 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a, + 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a, + // Block 0xb6, offset 0x2d80 + 0x2dab: 0x000c, 0x2dad: 0x000c, + 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c, + 0x2db7: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2ddd: 0x000c, + 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c, + 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c, + 0x2dea: 0x000c, 0x2deb: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c, + 0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c, + 0x2e3c: 0x000c, 0x2e3d: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c, + 0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c, + 0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c, + 0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c, + 0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c, + 0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c, + 0x2e76: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c, + 0x2ef6: 0x000c, + // Block 0xbc, offset 0x2f00 + 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c, + 0x2f12: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f5d: 0x000c, + 0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b, + // Block 0xbe, offset 0x2f80 + 0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c, + 0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b, + 0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c, + 0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c, + 0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c, + 0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a, + // Block 0xc1, offset 0x3040 + 0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a, + 0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a, + 0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a, + 0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a, + // Block 0xc2, offset 0x3080 + 0x309b: 0x000a, + // Block 0xc3, offset 0x30c0 + 0x30d5: 0x000a, + // Block 0xc4, offset 0x3100 + 0x310f: 0x000a, + // Block 0xc5, offset 0x3140 + 0x3149: 0x000a, + // Block 0xc6, offset 0x3180 + 0x3183: 0x000a, + 0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002, + 0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002, + 0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002, + 0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002, + 0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002, + 0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002, + 0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002, + 0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002, + 0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002, + // Block 0xc7, offset 0x31c0 + 0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c, + 0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c, + 0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c, + 0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c, + 0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c, + 0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c, + 0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c, + 0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c, + 0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c, + 0x31f6: 0x000c, 0x31fb: 0x000c, + 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c, + 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c, + 0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c, + 0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c, + 0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c, + 0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c, + 0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c, + 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, + 0x3235: 0x000c, + // Block 0xc9, offset 0x3240 + 0x3244: 0x000c, + 0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c, + 0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c, + 0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c, + 0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c, + // Block 0xca, offset 0x3280 + 0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c, + 0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c, + 0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c, + 0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c, + 0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c, + 0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c, + 0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c, + 0x32aa: 0x000c, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001, + 0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001, + 0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c, + 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001, + 0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001, + 0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001, + 0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001, + 0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001, + 0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001, + 0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001, + 0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001, + // Block 0xcc, offset 0x3300 + 0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c, + 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001, + 0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001, + 0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001, + 0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001, + 0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001, + 0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001, + 0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001, + 0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001, + 0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001, + 0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001, + // Block 0xcd, offset 0x3340 + 0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d, + 0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d, + 0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d, + 0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d, + 0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d, + 0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d, + 0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d, + 0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d, + 0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d, + 0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d, + 0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d, + // Block 0xce, offset 0x3380 + 0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a, + 0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a, + 0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a, + 0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a, + 0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a, + 0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a, + 0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a, + 0x33aa: 0x000a, 0x33ab: 0x000a, + 0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a, + 0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a, + 0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a, + 0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a, + 0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a, + 0x33d2: 0x000a, 0x33d3: 0x000a, + 0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a, + 0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a, + 0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a, + 0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a, + 0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a, + 0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a, + // Block 0xd0, offset 0x3400 + 0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a, + 0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a, + 0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a, + 0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a, + 0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a, + 0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a, + 0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a, + 0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a, + 0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a, + // Block 0xd1, offset 0x3440 + 0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002, + 0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a, + 0x344c: 0x000a, + // Block 0xd2, offset 0x3480 + 0x34aa: 0x000a, 0x34ab: 0x000a, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a, + 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a, + 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a, + 0x34d2: 0x000a, + 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a, + 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a, + 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, + 0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a, + 0x34f6: 0x000a, + // Block 0xd4, offset 0x3500 + 0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a, + 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a, + 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a, + 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, + // Block 0xd5, offset 0x3540 + 0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a, + 0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a, + 0x3550: 0x000a, 0x3551: 0x000a, + 0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a, + 0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a, + 0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a, + 0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a, + 0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a, + 0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a, + 0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a, + 0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a, + // Block 0xd6, offset 0x3580 + 0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a, + 0x3586: 0x000a, 0x3587: 0x000a, + 0x3590: 0x000a, 0x3591: 0x000a, + 0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a, + 0x3598: 0x000a, 0x3599: 0x000a, + 0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a, + 0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a, + 0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a, + 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a, + 0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a, + 0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a, + 0x35c6: 0x000a, 0x35c7: 0x000a, + 0x35d0: 0x000a, 0x35d1: 0x000a, + 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a, + 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a, + 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a, + 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a, + 0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a, + // Block 0xd8, offset 0x3600 + 0x3610: 0x000a, 0x3611: 0x000a, + 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a, + 0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a, + 0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a, + 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, + 0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a, + 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a, + 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, + // Block 0xd9, offset 0x3640 + 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a, + 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a, + 0x3650: 0x000a, 0x3651: 0x000a, + 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a, + 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a, + 0x365e: 0x000a, + // Block 0xda, offset 0x3680 + 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a, + 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a, + 0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a, + // Block 0xdb, offset 0x36c0 + 0x36fe: 0x000b, 0x36ff: 0x000b, + // Block 0xdc, offset 0x3700 + 0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b, + 0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b, + 0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b, + 0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b, + 0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b, + 0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b, + 0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b, + 0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b, + 0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b, + 0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b, + 0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b, + // Block 0xdd, offset 0x3740 + 0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c, + 0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c, + 0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c, + 0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c, + 0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c, + 0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c, + 0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c, + 0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c, + 0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b, + 0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b, + 0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b, +} + +// bidiIndex: 24 blocks, 1536 entries, 1536 bytes +// Block 0 is the zero block. +var bidiIndex = [1536]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28, + 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30, + // Block 0x5, offset 0x140 + 0x140: 0x31, 0x141: 0x32, 0x142: 0x33, + 0x14d: 0x34, 0x14e: 0x35, + 0x150: 0x36, + 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b, + 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40, + 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47, + 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a, + 0x17e: 0x4b, 0x17f: 0x4c, + // Block 0x6, offset 0x180 + 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54, + 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59, + 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54, + 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60, + 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62, + 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65, + 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68, + 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71, + 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77, + // Block 0x8, offset 0x200 + 0x237: 0x54, + // Block 0x9, offset 0x240 + 0x252: 0x78, 0x253: 0x79, + 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f, + 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b, + // Block 0xa, offset 0x280 + 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f, + 0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98, + 0x2cb: 0x99, 0x2cd: 0x9a, + 0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b, + 0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b, + 0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b, + 0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b, + // Block 0xc, offset 0x300 + 0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7, + 0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab, + 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1, + 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5, + 0x330: 0xb6, 0x332: 0xb7, + // Block 0xd, offset 0x340 + 0x36b: 0xb8, 0x36c: 0xb9, + 0x37e: 0xba, + // Block 0xe, offset 0x380 + 0x3b2: 0xbb, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xbc, 0x3c6: 0xbd, + 0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf, + 0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4, + 0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7, + // Block 0x10, offset 0x400 + 0x400: 0xc8, + 0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b, + 0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b, + 0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b, + 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b, + // Block 0x11, offset 0x440 + 0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0, + 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54, + 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54, + 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2, + 0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36, + 0x47f: 0xd9, + // Block 0x12, offset 0x480 + 0x4bf: 0xd9, + // Block 0x13, offset 0x4c0 + 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b, + 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f, + 0x4ef: 0x10, + 0x4ff: 0x10, + // Block 0x14, offset 0x500 + 0x50f: 0x10, + 0x51f: 0x10, + 0x52f: 0x10, + 0x53f: 0x10, + // Block 0x15, offset 0x540 + 0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb, + 0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda, + 0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda, + 0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda, + 0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda, + 0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda, + 0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda, + 0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda, + // Block 0x16, offset 0x580 + 0x58f: 0x10, + 0x59f: 0x10, + 0x5a0: 0x13, + 0x5af: 0x10, + 0x5bf: 0x10, + // Block 0x17, offset 0x5c0 + 0x5cf: 0x10, +} + +// Total table size 15800 bytes (15KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/bidi/tables_test.go b/vendor/golang.org/x/text/unicode/bidi/tables_test.go new file mode 100644 index 00000000..356a4a58 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables_test.go @@ -0,0 +1,82 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package bidi + +import ( + "testing" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/testtext" + "golang.org/x/text/internal/ucd" +) + +var labels = []string{ + AL: "AL", + AN: "AN", + B: "B", + BN: "BN", + CS: "CS", + EN: "EN", + ES: "ES", + ET: "ET", + L: "L", + NSM: "NSM", + ON: "ON", + R: "R", + S: "S", + WS: "WS", + + LRO: "LRO", + RLO: "RLO", + LRE: "LRE", + RLE: "RLE", + PDF: "PDF", + LRI: "LRI", + RLI: "RLI", + FSI: "FSI", + PDI: "PDI", +} + +func TestTables(t *testing.T) { + testtext.SkipIfNotLong(t) + + ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) { + r1 := p.Rune(0) + want := p.Rune(1) + + e, _ := LookupRune(r1) + if got := e.reverseBracket(r1); got != want { + t.Errorf("Reverse(%U) = %U; want %U", r1, got, want) + } + }) + + done := map[rune]bool{} + test := func(name string, r rune, want string) { + str := string(r) + e, _ := LookupString(str) + if got := labels[e.Class()]; got != want { + t.Errorf("%s:%U: got %s; want %s", name, r, got, want) + } + if e2, sz := LookupRune(r); e != e2 || sz != len(str) { + t.Errorf("LookupRune(%U) = %v, %d; want %v, %d", r, e2, e, sz, len(str)) + } + if e2, sz := Lookup([]byte(str)); e != e2 || sz != len(str) { + t.Errorf("Lookup(%U) = %v, %d; want %v, %d", r, e2, e, sz, len(str)) + } + done[r] = true + } + + // Insert the derived BiDi properties. + ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) { + r := p.Rune(0) + test("derived", r, p.String(1)) + }) + visitDefaults(func(r rune, c Class) { + if !done[r] { + test("default", r, labels[c]) + } + }) + +} diff --git a/vendor/golang.org/x/text/unicode/bidi/trieval.go b/vendor/golang.org/x/text/unicode/bidi/trieval.go new file mode 100644 index 00000000..bebd855e --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/trieval.go @@ -0,0 +1,60 @@ +// This file was generated by go generate; DO NOT EDIT + +package bidi + +// Class is the Unicode BiDi class. Each rune has a single class. +type Class uint + +const ( + L Class = iota // LeftToRight + R // RightToLeft + EN // EuropeanNumber + ES // EuropeanSeparator + ET // EuropeanTerminator + AN // ArabicNumber + CS // CommonSeparator + B // ParagraphSeparator + S // SegmentSeparator + WS // WhiteSpace + ON // OtherNeutral + BN // BoundaryNeutral + NSM // NonspacingMark + AL // ArabicLetter + Control // Control LRO - PDI + + numClass + + LRO // LeftToRightOverride + RLO // RightToLeftOverride + LRE // LeftToRightEmbedding + RLE // RightToLeftEmbedding + PDF // PopDirectionalFormat + LRI // LeftToRightIsolate + RLI // RightToLeftIsolate + FSI // FirstStrongIsolate + PDI // PopDirectionalIsolate + + unknownClass = ^Class(0) +) + +var controlToClass = map[rune]Class{ + 0x202D: LRO, // LeftToRightOverride, + 0x202E: RLO, // RightToLeftOverride, + 0x202A: LRE, // LeftToRightEmbedding, + 0x202B: RLE, // RightToLeftEmbedding, + 0x202C: PDF, // PopDirectionalFormat, + 0x2066: LRI, // LeftToRightIsolate, + 0x2067: RLI, // RightToLeftIsolate, + 0x2068: FSI, // FirstStrongIsolate, + 0x2069: PDI, // PopDirectionalIsolate, +} + +// A trie entry has the following bits: +// 7..5 XOR mask for brackets +// 4 1: Bracket open, 0: Bracket close +// 3..0 Class type + +const ( + openMask = 0x10 + xorMaskShift = 5 +) diff --git a/vendor/golang.org/x/text/unicode/cldr/base.go b/vendor/golang.org/x/text/unicode/cldr/base.go new file mode 100644 index 00000000..21821791 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/cldr/base.go @@ -0,0 +1,110 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package cldr provides a parser for LDML and related XML formats. +// This package is inteded to be used by the table generation tools +// for the various internationalization-related packages. +// As the XML types are generated from the CLDR DTD, and as the CLDR standard +// is periodically amended, this package may change considerably over time. +// This mostly means that data may appear and disappear between versions. +// That is, old code should keep compiling for newer versions, but data +// may have moved or changed. +// CLDR version 22 is the first version supported by this package. +// Older versions may not work. +package cldr + +import ( + "encoding/xml" + "regexp" + "strconv" +) + +// Elem is implemented by every XML element. +type Elem interface { + setEnclosing(Elem) + setName(string) + enclosing() Elem + + GetCommon() *Common +} + +type hidden struct { + CharData string `xml:",chardata"` + Alias *struct { + Common + Source string `xml:"source,attr"` + Path string `xml:"path,attr"` + } `xml:"alias"` + Def *struct { + Common + Choice string `xml:"choice,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + } `xml:"default"` +} + +// Common holds several of the most common attributes and sub elements +// of an XML element. +type Common struct { + XMLName xml.Name + name string + enclElem Elem + Type string `xml:"type,attr,omitempty"` + Reference string `xml:"reference,attr,omitempty"` + Alt string `xml:"alt,attr,omitempty"` + ValidSubLocales string `xml:"validSubLocales,attr,omitempty"` + Draft string `xml:"draft,attr,omitempty"` + hidden +} + +// Default returns the default type to select from the enclosed list +// or "" if no default value is specified. +func (e *Common) Default() string { + if e.Def == nil { + return "" + } + if e.Def.Choice != "" { + return e.Def.Choice + } else if e.Def.Type != "" { + // Type is still used by the default element in collation. + return e.Def.Type + } + return "" +} + +// GetCommon returns e. It is provided such that Common implements Elem. +func (e *Common) GetCommon() *Common { + return e +} + +// Data returns the character data accumulated for this element. +func (e *Common) Data() string { + e.CharData = charRe.ReplaceAllStringFunc(e.CharData, replaceUnicode) + return e.CharData +} + +func (e *Common) setName(s string) { + e.name = s +} + +func (e *Common) enclosing() Elem { + return e.enclElem +} + +func (e *Common) setEnclosing(en Elem) { + e.enclElem = en +} + +// Escape characters that can be escaped without further escaping the string. +var charRe = regexp.MustCompile(`&#x[0-9a-fA-F]*;|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\[abtnvfr]`) + +// replaceUnicode converts hexadecimal Unicode codepoint notations to a one-rune string. +// It assumes the input string is correctly formatted. +func replaceUnicode(s string) string { + if s[1] == '#' { + r, _ := strconv.ParseInt(s[3:len(s)-1], 16, 32) + return string(r) + } + r, _, _, _ := strconv.UnquoteChar(s, 0) + return string(r) +} diff --git a/vendor/golang.org/x/text/unicode/cldr/cldr.go b/vendor/golang.org/x/text/unicode/cldr/cldr.go new file mode 100644 index 00000000..ea3fe139 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/cldr/cldr.go @@ -0,0 +1,130 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run makexml.go -output xml.go + +// Package cldr provides a parser for LDML and related XML formats. +// This package is inteded to be used by the table generation tools +// for the various internationalization-related packages. +// As the XML types are generated from the CLDR DTD, and as the CLDR standard +// is periodically amended, this package may change considerably over time. +// This mostly means that data may appear and disappear between versions. +// That is, old code should keep compiling for newer versions, but data +// may have moved or changed. +// CLDR version 22 is the first version supported by this package. +// Older versions may not work. +package cldr // import "golang.org/x/text/unicode/cldr" + +import ( + "fmt" + "sort" +) + +// CLDR provides access to parsed data of the Unicode Common Locale Data Repository. +type CLDR struct { + parent map[string][]string + locale map[string]*LDML + resolved map[string]*LDML + bcp47 *LDMLBCP47 + supp *SupplementalData +} + +func makeCLDR() *CLDR { + return &CLDR{ + parent: make(map[string][]string), + locale: make(map[string]*LDML), + resolved: make(map[string]*LDML), + bcp47: &LDMLBCP47{}, + supp: &SupplementalData{}, + } +} + +// BCP47 returns the parsed BCP47 LDML data. If no such data was parsed, nil is returned. +func (cldr *CLDR) BCP47() *LDMLBCP47 { + return nil +} + +// Draft indicates the draft level of an element. +type Draft int + +const ( + Approved Draft = iota + Contributed + Provisional + Unconfirmed +) + +var drafts = []string{"unconfirmed", "provisional", "contributed", "approved", ""} + +// ParseDraft returns the Draft value corresponding to the given string. The +// empty string corresponds to Approved. +func ParseDraft(level string) (Draft, error) { + if level == "" { + return Approved, nil + } + for i, s := range drafts { + if level == s { + return Unconfirmed - Draft(i), nil + } + } + return Approved, fmt.Errorf("cldr: unknown draft level %q", level) +} + +func (d Draft) String() string { + return drafts[len(drafts)-1-int(d)] +} + +// SetDraftLevel sets which draft levels to include in the evaluated LDML. +// Any draft element for which the draft level is higher than lev will be excluded. +// If multiple draft levels are available for a single element, the one with the +// lowest draft level will be selected, unless preferDraft is true, in which case +// the highest draft will be chosen. +// It is assumed that the underlying LDML is canonicalized. +func (cldr *CLDR) SetDraftLevel(lev Draft, preferDraft bool) { + // TODO: implement + cldr.resolved = make(map[string]*LDML) +} + +// RawLDML returns the LDML XML for id in unresolved form. +// id must be one of the strings returned by Locales. +func (cldr *CLDR) RawLDML(loc string) *LDML { + return cldr.locale[loc] +} + +// LDML returns the fully resolved LDML XML for loc, which must be one of +// the strings returned by Locales. +func (cldr *CLDR) LDML(loc string) (*LDML, error) { + return cldr.resolve(loc) +} + +// Supplemental returns the parsed supplemental data. If no such data was parsed, +// nil is returned. +func (cldr *CLDR) Supplemental() *SupplementalData { + return cldr.supp +} + +// Locales returns the locales for which there exist files. +// Valid sublocales for which there is no file are not included. +// The root locale is always sorted first. +func (cldr *CLDR) Locales() []string { + loc := []string{"root"} + hasRoot := false + for l, _ := range cldr.locale { + if l == "root" { + hasRoot = true + continue + } + loc = append(loc, l) + } + sort.Strings(loc[1:]) + if !hasRoot { + return loc[1:] + } + return loc +} + +// Get fills in the fields of x based on the XPath path. +func Get(e Elem, path string) (res Elem, err error) { + return walkXPath(e, path) +} diff --git a/vendor/golang.org/x/text/unicode/cldr/cldr_test.go b/vendor/golang.org/x/text/unicode/cldr/cldr_test.go new file mode 100644 index 00000000..951028d7 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/cldr/cldr_test.go @@ -0,0 +1,27 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cldr + +import "testing" + +func TestParseDraft(t *testing.T) { + tests := []struct { + in string + draft Draft + err bool + }{ + {"unconfirmed", Unconfirmed, false}, + {"provisional", Provisional, false}, + {"contributed", Contributed, false}, + {"approved", Approved, false}, + {"", Approved, false}, + {"foo", Approved, true}, + } + for _, tt := range tests { + if d, err := ParseDraft(tt.in); d != tt.draft || (err != nil) != tt.err { + t.Errorf("%q: was %v, %v; want %v, %v", tt.in, d, err != nil, tt.draft, tt.err) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/cldr/collate.go b/vendor/golang.org/x/text/unicode/cldr/collate.go new file mode 100644 index 00000000..80ee28d7 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/cldr/collate.go @@ -0,0 +1,359 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cldr + +import ( + "bufio" + "encoding/xml" + "errors" + "fmt" + "strconv" + "strings" + "unicode" + "unicode/utf8" +) + +// RuleProcessor can be passed to Collator's Process method, which +// parses the rules and calls the respective method for each rule found. +type RuleProcessor interface { + Reset(anchor string, before int) error + Insert(level int, str, context, extend string) error + Index(id string) +} + +const ( + // cldrIndex is a Unicode-reserved sentinel value used to mark the start + // of a grouping within an index. + // We ignore any rule that starts with this rune. + // See http://unicode.org/reports/tr35/#Collation_Elements for details. + cldrIndex = "\uFDD0" + + // specialAnchor is the format in which to represent logical reset positions, + // such as "first tertiary ignorable". + specialAnchor = "<%s/>" +) + +// Process parses the rules for the tailorings of this collation +// and calls the respective methods of p for each rule found. +func (c Collation) Process(p RuleProcessor) (err error) { + if len(c.Cr) > 0 { + if len(c.Cr) > 1 { + return fmt.Errorf("multiple cr elements, want 0 or 1") + } + return processRules(p, c.Cr[0].Data()) + } + if c.Rules.Any != nil { + return c.processXML(p) + } + return errors.New("no tailoring data") +} + +// processRules parses rules in the Collation Rule Syntax defined in +// http://www.unicode.org/reports/tr35/tr35-collation.html#Collation_Tailorings. +func processRules(p RuleProcessor, s string) (err error) { + chk := func(s string, e error) string { + if err == nil { + err = e + } + return s + } + i := 0 // Save the line number for use after the loop. + scanner := bufio.NewScanner(strings.NewReader(s)) + for ; scanner.Scan() && err == nil; i++ { + for s := skipSpace(scanner.Text()); s != "" && s[0] != '#'; s = skipSpace(s) { + level := 5 + var ch byte + switch ch, s = s[0], s[1:]; ch { + case '&': // followed by or '[' ']' + if s = skipSpace(s); consume(&s, '[') { + s = chk(parseSpecialAnchor(p, s)) + } else { + s = chk(parseAnchor(p, 0, s)) + } + case '<': // sort relation '<'{1,4}, optionally followed by '*'. + for level = 1; consume(&s, '<'); level++ { + } + if level > 4 { + err = fmt.Errorf("level %d > 4", level) + } + fallthrough + case '=': // identity relation, optionally followed by *. + if consume(&s, '*') { + s = chk(parseSequence(p, level, s)) + } else { + s = chk(parseOrder(p, level, s)) + } + default: + chk("", fmt.Errorf("illegal operator %q", ch)) + break + } + } + } + if chk("", scanner.Err()); err != nil { + return fmt.Errorf("%d: %v", i, err) + } + return nil +} + +// parseSpecialAnchor parses the anchor syntax which is either of the form +// ['before' ] +// or +// [

* [ []] +// The header contains the number of bytes in the decomposition (excluding this +// length byte). The two most significant bits of this length byte correspond +// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1. +// The byte sequence is followed by a trailing and leading CCC if the values +// for these are not zero. The value of v determines which ccc are appended +// to the sequences. For v < firstCCC, there are none, for v >= firstCCC, +// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC +// there is an additional leading ccc. The value of tccc itself is the +// trailing CCC shifted left 2 bits. The two least-significant bits of tccc +// are the number of trailing non-starters. + +const ( + qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo + headerLenMask = 0x3F // extract the length value from the header byte + headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte +) + +// Properties provides access to normalization properties of a rune. +type Properties struct { + pos uint8 // start position in reorderBuffer; used in composition.go + size uint8 // length of UTF-8 encoding of this rune + ccc uint8 // leading canonical combining class (ccc if not decomposition) + tccc uint8 // trailing canonical combining class (ccc if not decomposition) + nLead uint8 // number of leading non-starters. + flags qcInfo // quick check flags + index uint16 +} + +// functions dispatchable per form +type lookupFunc func(b input, i int) Properties + +// formInfo holds Form-specific functions and tables. +type formInfo struct { + form Form + composing, compatibility bool // form type + info lookupFunc + nextMain iterFunc +} + +var formTable []*formInfo + +func init() { + formTable = make([]*formInfo, 4) + + for i := range formTable { + f := &formInfo{} + formTable[i] = f + f.form = Form(i) + if Form(i) == NFKD || Form(i) == NFKC { + f.compatibility = true + f.info = lookupInfoNFKC + } else { + f.info = lookupInfoNFC + } + f.nextMain = nextDecomposed + if Form(i) == NFC || Form(i) == NFKC { + f.nextMain = nextComposed + f.composing = true + } + } +} + +// We do not distinguish between boundaries for NFC, NFD, etc. to avoid +// unexpected behavior for the user. For example, in NFD, there is a boundary +// after 'a'. However, 'a' might combine with modifiers, so from the application's +// perspective it is not a good boundary. We will therefore always use the +// boundaries for the combining variants. + +// BoundaryBefore returns true if this rune starts a new segment and +// cannot combine with any rune on the left. +func (p Properties) BoundaryBefore() bool { + if p.ccc == 0 && !p.combinesBackward() { + return true + } + // We assume that the CCC of the first character in a decomposition + // is always non-zero if different from info.ccc and that we can return + // false at this point. This is verified by maketables. + return false +} + +// BoundaryAfter returns true if runes cannot combine with or otherwise +// interact with this or previous runes. +func (p Properties) BoundaryAfter() bool { + // TODO: loosen these conditions. + return p.isInert() +} + +// We pack quick check data in 4 bits: +// 5: Combines forward (0 == false, 1 == true) +// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) +// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. +// 1..0: Number of trailing non-starters. +// +// When all 4 bits are zero, the character is inert, meaning it is never +// influenced by normalization. +type qcInfo uint8 + +func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } +func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } + +func (p Properties) combinesForward() bool { return p.flags&0x20 != 0 } +func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe +func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD + +func (p Properties) isInert() bool { + return p.flags&qcInfoMask == 0 && p.ccc == 0 +} + +func (p Properties) multiSegment() bool { + return p.index >= firstMulti && p.index < endMulti +} + +func (p Properties) nLeadingNonStarters() uint8 { + return p.nLead +} + +func (p Properties) nTrailingNonStarters() uint8 { + return uint8(p.flags & 0x03) +} + +// Decomposition returns the decomposition for the underlying rune +// or nil if there is none. +func (p Properties) Decomposition() []byte { + // TODO: create the decomposition for Hangul? + if p.index == 0 { + return nil + } + i := p.index + n := decomps[i] & headerLenMask + i++ + return decomps[i : i+uint16(n)] +} + +// Size returns the length of UTF-8 encoding of the rune. +func (p Properties) Size() int { + return int(p.size) +} + +// CCC returns the canonical combining class of the underlying rune. +func (p Properties) CCC() uint8 { + if p.index >= firstCCCZeroExcept { + return 0 + } + return ccc[p.ccc] +} + +// LeadCCC returns the CCC of the first rune in the decomposition. +// If there is no decomposition, LeadCCC equals CCC. +func (p Properties) LeadCCC() uint8 { + return ccc[p.ccc] +} + +// TrailCCC returns the CCC of the last rune in the decomposition. +// If there is no decomposition, TrailCCC equals CCC. +func (p Properties) TrailCCC() uint8 { + return ccc[p.tccc] +} + +// Recomposition +// We use 32-bit keys instead of 64-bit for the two codepoint keys. +// This clips off the bits of three entries, but we know this will not +// result in a collision. In the unlikely event that changes to +// UnicodeData.txt introduce collisions, the compiler will catch it. +// Note that the recomposition map for NFC and NFKC are identical. + +// combine returns the combined rune or 0 if it doesn't exist. +func combine(a, b rune) rune { + key := uint32(uint16(a))<<16 + uint32(uint16(b)) + return recompMap[key] +} + +func lookupInfoNFC(b input, i int) Properties { + v, sz := b.charinfoNFC(i) + return compInfo(v, sz) +} + +func lookupInfoNFKC(b input, i int) Properties { + v, sz := b.charinfoNFKC(i) + return compInfo(v, sz) +} + +// Properties returns properties for the first rune in s. +func (f Form) Properties(s []byte) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookup(s)) + } + return compInfo(nfkcData.lookup(s)) +} + +// PropertiesString returns properties for the first rune in s. +func (f Form) PropertiesString(s string) Properties { + if f == NFC || f == NFD { + return compInfo(nfcData.lookupString(s)) + } + return compInfo(nfkcData.lookupString(s)) +} + +// compInfo converts the information contained in v and sz +// to a Properties. See the comment at the top of the file +// for more information on the format. +func compInfo(v uint16, sz int) Properties { + if v == 0 { + return Properties{size: uint8(sz)} + } else if v >= 0x8000 { + p := Properties{ + size: uint8(sz), + ccc: uint8(v), + tccc: uint8(v), + flags: qcInfo(v >> 8), + } + if p.ccc > 0 || p.combinesBackward() { + p.nLead = uint8(p.flags & 0x3) + } + return p + } + // has decomposition + h := decomps[v] + f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4 + p := Properties{size: uint8(sz), flags: f, index: v} + if v >= firstCCC { + v += uint16(h&headerLenMask) + 1 + c := decomps[v] + p.tccc = c >> 2 + p.flags |= qcInfo(c & 0x3) + if v >= firstLeadingCCC { + p.nLead = c & 0x3 + if v >= firstStarterWithNLead { + // We were tricked. Remove the decomposition. + p.flags &= 0x03 + p.index = 0 + return p + } + p.ccc = decomps[v+1] + } + } + return p +} diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo_test.go b/vendor/golang.org/x/text/unicode/norm/forminfo_test.go new file mode 100644 index 00000000..e15ba9be --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/forminfo_test.go @@ -0,0 +1,54 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build test + +package norm + +import "testing" + +func TestProperties(t *testing.T) { + var d runeData + CK := [2]string{"C", "K"} + for k, r := 1, rune(0); r < 0x2ffff; r++ { + if k < len(testData) && r == testData[k].r { + d = testData[k] + k++ + } + s := string(r) + for j, p := range []Properties{NFC.PropertiesString(s), NFKC.PropertiesString(s)} { + f := d.f[j] + if p.CCC() != d.ccc { + t.Errorf("%U: ccc(%s): was %d; want %d %X", r, CK[j], p.CCC(), d.ccc, p.index) + } + if p.isYesC() != (f.qc == Yes) { + t.Errorf("%U: YesC(%s): was %v; want %v", r, CK[j], p.isYesC(), f.qc == Yes) + } + if p.combinesBackward() != (f.qc == Maybe) { + t.Errorf("%U: combines backwards(%s): was %v; want %v", r, CK[j], p.combinesBackward(), f.qc == Maybe) + } + if p.nLeadingNonStarters() != d.nLead { + t.Errorf("%U: nLead(%s): was %d; want %d %#v %#v", r, CK[j], p.nLeadingNonStarters(), d.nLead, p, d) + } + if p.nTrailingNonStarters() != d.nTrail { + t.Errorf("%U: nTrail(%s): was %d; want %d %#v %#v", r, CK[j], p.nTrailingNonStarters(), d.nTrail, p, d) + } + if p.combinesForward() != f.combinesForward { + t.Errorf("%U: combines forward(%s): was %v; want %v %#v", r, CK[j], p.combinesForward(), f.combinesForward, p) + } + // Skip Hangul as it is algorithmically computed. + if r >= hangulBase && r < hangulEnd { + continue + } + if p.hasDecomposition() { + if has := f.decomposition != ""; !has { + t.Errorf("%U: hasDecomposition(%s): was %v; want %v", r, CK[j], p.hasDecomposition(), has) + } + if string(p.Decomposition()) != f.decomposition { + t.Errorf("%U: decomp(%s): was %+q; want %+q", r, CK[j], p.Decomposition(), f.decomposition) + } + } + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go new file mode 100644 index 00000000..045d4ccc --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/input.go @@ -0,0 +1,105 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "unicode/utf8" + +type input struct { + str string + bytes []byte +} + +func inputBytes(str []byte) input { + return input{bytes: str} +} + +func inputString(str string) input { + return input{str: str} +} + +func (in *input) setBytes(str []byte) { + in.str = "" + in.bytes = str +} + +func (in *input) setString(str string) { + in.str = str + in.bytes = nil +} + +func (in *input) _byte(p int) byte { + if in.bytes == nil { + return in.str[p] + } + return in.bytes[p] +} + +func (in *input) skipASCII(p, max int) int { + if in.bytes == nil { + for ; p < max && in.str[p] < utf8.RuneSelf; p++ { + } + } else { + for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ { + } + } + return p +} + +func (in *input) skipContinuationBytes(p int) int { + if in.bytes == nil { + for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ { + } + } else { + for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ { + } + } + return p +} + +func (in *input) appendSlice(buf []byte, b, e int) []byte { + if in.bytes != nil { + return append(buf, in.bytes[b:e]...) + } + for i := b; i < e; i++ { + buf = append(buf, in.str[i]) + } + return buf +} + +func (in *input) copySlice(buf []byte, b, e int) int { + if in.bytes == nil { + return copy(buf, in.str[b:e]) + } + return copy(buf, in.bytes[b:e]) +} + +func (in *input) charinfoNFC(p int) (uint16, int) { + if in.bytes == nil { + return nfcData.lookupString(in.str[p:]) + } + return nfcData.lookup(in.bytes[p:]) +} + +func (in *input) charinfoNFKC(p int) (uint16, int) { + if in.bytes == nil { + return nfkcData.lookupString(in.str[p:]) + } + return nfkcData.lookup(in.bytes[p:]) +} + +func (in *input) hangul(p int) (r rune) { + if in.bytes == nil { + if !isHangulString(in.str[p:]) { + return 0 + } + r, _ = utf8.DecodeRuneInString(in.str[p:]) + } else { + if !isHangul(in.bytes[p:]) { + return 0 + } + r, _ = utf8.DecodeRune(in.bytes[p:]) + } + return r +} diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go new file mode 100644 index 00000000..0a42a72d --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/iter.go @@ -0,0 +1,450 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "fmt" + "unicode/utf8" +) + +// MaxSegmentSize is the maximum size of a byte buffer needed to consider any +// sequence of starter and non-starter runes for the purpose of normalization. +const MaxSegmentSize = maxByteBufferSize + +// An Iter iterates over a string or byte slice, while normalizing it +// to a given Form. +type Iter struct { + rb reorderBuffer + buf [maxByteBufferSize]byte + info Properties // first character saved from previous iteration + next iterFunc // implementation of next depends on form + asciiF iterFunc + + p int // current position in input source + multiSeg []byte // remainder of multi-segment decomposition +} + +type iterFunc func(*Iter) []byte + +// Init initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) Init(f Form, src []byte) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.init(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIBytes + i.info = i.rb.f.info(i.rb.src, i.p) +} + +// InitString initializes i to iterate over src after normalizing it to Form f. +func (i *Iter) InitString(f Form, src string) { + i.p = 0 + if len(src) == 0 { + i.setDone() + i.rb.nsrc = 0 + return + } + i.multiSeg = nil + i.rb.initString(f, src) + i.next = i.rb.f.nextMain + i.asciiF = nextASCIIString + i.info = i.rb.f.info(i.rb.src, i.p) +} + +// Seek sets the segment to be returned by the next call to Next to start +// at position p. It is the responsibility of the caller to set p to the +// start of a UTF8 rune. +func (i *Iter) Seek(offset int64, whence int) (int64, error) { + var abs int64 + switch whence { + case 0: + abs = offset + case 1: + abs = int64(i.p) + offset + case 2: + abs = int64(i.rb.nsrc) + offset + default: + return 0, fmt.Errorf("norm: invalid whence") + } + if abs < 0 { + return 0, fmt.Errorf("norm: negative position") + } + if int(abs) >= i.rb.nsrc { + i.setDone() + return int64(i.p), nil + } + i.p = int(abs) + i.multiSeg = nil + i.next = i.rb.f.nextMain + i.info = i.rb.f.info(i.rb.src, i.p) + return abs, nil +} + +// returnSlice returns a slice of the underlying input type as a byte slice. +// If the underlying is of type []byte, it will simply return a slice. +// If the underlying is of type string, it will copy the slice to the buffer +// and return that. +func (i *Iter) returnSlice(a, b int) []byte { + if i.rb.src.bytes == nil { + return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])] + } + return i.rb.src.bytes[a:b] +} + +// Pos returns the byte position at which the next call to Next will commence processing. +func (i *Iter) Pos() int { + return i.p +} + +func (i *Iter) setDone() { + i.next = nextDone + i.p = i.rb.nsrc +} + +// Done returns true if there is no more input to process. +func (i *Iter) Done() bool { + return i.p >= i.rb.nsrc +} + +// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input. +// For any input a and b for which f(a) == f(b), subsequent calls +// to Next will return the same segments. +// Modifying runes are grouped together with the preceding starter, if such a starter exists. +// Although not guaranteed, n will typically be the smallest possible n. +func (i *Iter) Next() []byte { + return i.next(i) +} + +func nextASCIIBytes(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + i.setDone() + return i.rb.src.bytes[i.p:p] + } + if i.rb.src.bytes[p] < utf8.RuneSelf { + p0 := i.p + i.p = p + return i.rb.src.bytes[p0:p] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextASCIIString(i *Iter) []byte { + p := i.p + 1 + if p >= i.rb.nsrc { + i.buf[0] = i.rb.src.str[i.p] + i.setDone() + return i.buf[:1] + } + if i.rb.src.str[p] < utf8.RuneSelf { + i.buf[0] = i.rb.src.str[i.p] + i.p = p + return i.buf[:1] + } + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) +} + +func nextHangul(i *Iter) []byte { + p := i.p + next := p + hangulUTF8Size + if next >= i.rb.nsrc { + i.setDone() + } else if i.rb.src.hangul(next) == 0 { + i.info = i.rb.f.info(i.rb.src, i.p) + i.next = i.rb.f.nextMain + return i.next(i) + } + i.p = next + return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))] +} + +func nextDone(i *Iter) []byte { + return nil +} + +// nextMulti is used for iterating over multi-segment decompositions +// for decomposing normal forms. +func nextMulti(i *Iter) []byte { + j := 0 + d := i.multiSeg + // skip first rune + for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ { + } + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.multiSeg = d[j:] + return d[:j] + } + j += int(info.size) + } + // treat last segment as normal decomposition + i.next = i.rb.f.nextMain + return i.next(i) +} + +// nextMultiNorm is used for iterating over multi-segment decompositions +// for composing normal forms. +func nextMultiNorm(i *Iter) []byte { + j := 0 + d := i.multiSeg + for j < len(d) { + info := i.rb.f.info(input{bytes: d}, j) + if info.BoundaryBefore() { + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + i.rb.ss.first(info) + i.rb.insertUnsafe(input{bytes: d}, j, info) + i.multiSeg = d[j+int(info.size):] + return seg + } + i.rb.ss.next(info) + i.rb.insertUnsafe(input{bytes: d}, j, info) + j += int(info.size) + } + i.multiSeg = nil + i.next = nextComposed + return doNormComposed(i) +} + +// nextDecomposed is the implementation of Next for forms NFD and NFKD. +func nextDecomposed(i *Iter) (next []byte) { + outp := 0 + inCopyStart, outCopyStart := i.p, 0 + ss := mkStreamSafe(i.info) + for { + if sz := int(i.info.size); sz <= 1 { + p := i.p + i.p++ // ASCII or illegal byte. Either way, advance by 1. + if i.p >= i.rb.nsrc { + i.setDone() + return i.returnSlice(p, i.p) + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.next = i.asciiF + return i.returnSlice(p, i.p) + } + outp++ + } else if d := i.info.Decomposition(); d != nil { + // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero. + // Case 1: there is a leftover to copy. In this case the decomposition + // must begin with a modifier and should always be appended. + // Case 2: no leftover. Simply return d if followed by a ccc == 0 value. + p := outp + len(d) + if outp > 0 { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + if p > len(i.buf) { + return i.buf[:outp] + } + } else if i.info.multiSegment() { + // outp must be 0 as multi-segment decompositions always + // start a new segment. + if i.multiSeg == nil { + i.multiSeg = d + i.next = nextMulti + return nextMulti(i) + } + // We are in the last segment. Treat as normal decomposition. + d = i.multiSeg + i.multiSeg = nil + p = len(d) + } + prevCC := i.info.tccc + if i.p += sz; i.p >= i.rb.nsrc { + i.setDone() + i.info = Properties{} // Force BoundaryBefore to succeed. + } else { + i.info = i.rb.f.info(i.rb.src, i.p) + } + switch ss.next(i.info) { + case ssOverflow: + i.next = nextCGJDecompose + fallthrough + case ssStarter: + if outp > 0 { + copy(i.buf[outp:], d) + return i.buf[:p] + } + return d + } + copy(i.buf[outp:], d) + outp = p + inCopyStart, outCopyStart = i.p, outp + if i.info.ccc < prevCC { + goto doNorm + } + continue + } else if r := i.rb.src.hangul(i.p); r != 0 { + outp = decomposeHangul(i.buf[:], r) + i.p += hangulUTF8Size + inCopyStart, outCopyStart = i.p, outp + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src.hangul(i.p) != 0 { + i.next = nextHangul + return i.buf[:outp] + } + } else { + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + } + if i.p >= i.rb.nsrc { + i.setDone() + break + } + prevCC := i.info.tccc + i.info = i.rb.f.info(i.rb.src, i.p) + if v := ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJDecompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + if outCopyStart == 0 { + return i.returnSlice(inCopyStart, i.p) + } else if inCopyStart < i.p { + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + } + return i.buf[:outp] +doNorm: + // Insert what we have decomposed so far in the reorderBuffer. + // As we will only reorder, there will always be enough room. + i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p) + i.rb.insertDecomposed(i.buf[0:outp]) + return doNormDecomposed(i) +} + +func doNormDecomposed(i *Iter) []byte { + for { + if s := i.rb.ss.next(i.info); s == ssOverflow { + i.next = nextCGJDecompose + break + } + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if i.info.ccc == 0 { + break + } + } + // new segment or too many combining characters: exit normalization + return i.buf[:i.rb.flushCopy(i.buf[:])] +} + +func nextCGJDecompose(i *Iter) []byte { + i.rb.ss = 0 + i.rb.insertCGJ() + i.next = nextDecomposed + buf := doNormDecomposed(i) + return buf +} + +// nextComposed is the implementation of Next for forms NFC and NFKC. +func nextComposed(i *Iter) []byte { + outp, startp := 0, i.p + var prevCC uint8 + ss := mkStreamSafe(i.info) + for { + if !i.info.isYesC() { + goto doNorm + } + prevCC = i.info.tccc + sz := int(i.info.size) + if sz == 0 { + sz = 1 // illegal rune: copy byte-by-byte + } + p := outp + sz + if p > len(i.buf) { + break + } + outp = p + i.p += sz + if i.p >= i.rb.nsrc { + i.setDone() + break + } else if i.rb.src._byte(i.p) < utf8.RuneSelf { + i.next = i.asciiF + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if v := ss.next(i.info); v == ssStarter { + break + } else if v == ssOverflow { + i.next = nextCGJCompose + break + } + if i.info.ccc < prevCC { + goto doNorm + } + } + return i.returnSlice(startp, i.p) +doNorm: + i.p = startp + i.info = i.rb.f.info(i.rb.src, i.p) + if i.info.multiSegment() { + d := i.info.Decomposition() + info := i.rb.f.info(input{bytes: d}, 0) + i.rb.insertUnsafe(input{bytes: d}, 0, info) + i.multiSeg = d[int(info.size):] + i.next = nextMultiNorm + return nextMultiNorm(i) + } + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} + +func doNormComposed(i *Iter) []byte { + // First rune should already be inserted. + for { + if i.p += int(i.info.size); i.p >= i.rb.nsrc { + i.setDone() + break + } + i.info = i.rb.f.info(i.rb.src, i.p) + if s := i.rb.ss.next(i.info); s == ssStarter { + break + } else if s == ssOverflow { + i.next = nextCGJCompose + break + } + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + } + i.rb.compose() + seg := i.buf[:i.rb.flushCopy(i.buf[:])] + return seg +} + +func nextCGJCompose(i *Iter) []byte { + i.rb.ss = 0 // instead of first + i.rb.insertCGJ() + i.next = nextComposed + // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter, + // even if they are not. This is particularly dubious for U+FF9E and UFF9A. + // If we ever change that, insert a check here. + i.rb.ss.first(i.info) + i.rb.insertUnsafe(i.rb.src, i.p, i.info) + return doNormComposed(i) +} diff --git a/vendor/golang.org/x/text/unicode/norm/iter_test.go b/vendor/golang.org/x/text/unicode/norm/iter_test.go new file mode 100644 index 00000000..e2aa6f25 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/iter_test.go @@ -0,0 +1,98 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "strings" + "testing" +) + +func doIterNorm(f Form, s string) []byte { + acc := []byte{} + i := Iter{} + i.InitString(f, s) + for !i.Done() { + acc = append(acc, i.Next()...) + } + return acc +} + +func TestIterNext(t *testing.T) { + runNormTests(t, "IterNext", func(f Form, out []byte, s string) []byte { + return doIterNorm(f, string(append(out, s...))) + }) +} + +type SegmentTest struct { + in string + out []string +} + +var segmentTests = []SegmentTest{ + {"\u1E0A\u0323a", []string{"\x44\u0323\u0307", "a", ""}}, + {rep('a', segSize), append(strings.Split(rep('a', segSize), ""), "")}, + {rep('a', segSize+2), append(strings.Split(rep('a', segSize+2), ""), "")}, + {rep('a', segSize) + "\u0300aa", + append(strings.Split(rep('a', segSize-1), ""), "a\u0300", "a", "a", "")}, + + // U+0f73 is NOT treated as a starter as it is a modifier + {"a" + grave(29) + "\u0f73", []string{"a" + grave(29), cgj + "\u0f73"}}, + {"a\u0f73", []string{"a\u0f73"}}, + + // U+ff9e is treated as a non-starter. + // TODO: should we? Note that this will only affect iteration, as whether + // or not we do so does not affect the normalization output and will either + // way result in consistent iteration output. + {"a" + grave(30) + "\uff9e", []string{"a" + grave(30), cgj + "\uff9e"}}, + {"a\uff9e", []string{"a\uff9e"}}, +} + +var segmentTestsK = []SegmentTest{ + {"\u3332", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u3099", ""}}, + // last segment of multi-segment decomposition needs normalization + {"\u3332\u093C", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u093C\u3099", ""}}, + {"\u320E", []string{"\x28", "\uAC00", "\x29"}}, + + // last segment should be copied to start of buffer. + {"\ufdfa", []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645", ""}}, + {"\ufdfa" + grave(30), []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645" + grave(30), ""}}, + {"\uFDFA" + grave(64), []string{"\u0635", "\u0644", "\u0649", " ", "\u0627", "\u0644", "\u0644", "\u0647", " ", "\u0639", "\u0644", "\u064a", "\u0647", " ", "\u0648", "\u0633", "\u0644", "\u0645" + grave(30), cgj + grave(30), cgj + grave(4), ""}}, + + // Hangul and Jamo are grouped togeter. + {"\uAC00", []string{"\u1100\u1161", ""}}, + {"\uAC01", []string{"\u1100\u1161\u11A8", ""}}, + {"\u1100\u1161", []string{"\u1100\u1161", ""}}, +} + +// Note that, by design, segmentation is equal for composing and decomposing forms. +func TestIterSegmentation(t *testing.T) { + segmentTest(t, "SegmentTestD", NFD, segmentTests) + segmentTest(t, "SegmentTestC", NFC, segmentTests) + segmentTest(t, "SegmentTestKD", NFKD, segmentTestsK) + segmentTest(t, "SegmentTestKC", NFKC, segmentTestsK) +} + +func segmentTest(t *testing.T, name string, f Form, tests []SegmentTest) { + iter := Iter{} + for i, tt := range tests { + iter.InitString(f, tt.in) + for j, seg := range tt.out { + if seg == "" { + if !iter.Done() { + res := string(iter.Next()) + t.Errorf(`%s:%d:%d: expected Done()==true, found segment %+q`, name, i, j, res) + } + continue + } + if iter.Done() { + t.Errorf("%s:%d:%d: Done()==true, want false", name, i, j) + } + seg = f.String(seg) + if res := string(iter.Next()); res != seg { + t.Errorf(`%s:%d:%d" segment was %+q (%d); want %+q (%d)`, name, i, j, pc(res), len(res), pc(seg), len(seg)) + } + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/maketables.go b/vendor/golang.org/x/text/unicode/norm/maketables.go new file mode 100644 index 00000000..07bdff6b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/maketables.go @@ -0,0 +1,978 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// Normalization table generator. +// Data read from the web. +// See forminfo.go for a description of the trie values associated with each rune. + +package main + +import ( + "bytes" + "flag" + "fmt" + "io" + "log" + "sort" + "strconv" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/triegen" + "golang.org/x/text/internal/ucd" +) + +func main() { + gen.Init() + loadUnicodeData() + compactCCC() + loadCompositionExclusions() + completeCharFields(FCanonical) + completeCharFields(FCompatibility) + computeNonStarterCounts() + verifyComputed() + printChars() + if *test { + testDerived() + printTestdata() + } else { + makeTables() + } +} + +var ( + tablelist = flag.String("tables", + "all", + "comma-separated list of which tables to generate; "+ + "can be 'decomp', 'recomp', 'info' and 'all'") + test = flag.Bool("test", + false, + "test existing tables against DerivedNormalizationProps and generate test data for regression testing") + verbose = flag.Bool("verbose", + false, + "write data to stdout as it is parsed") +) + +const MaxChar = 0x10FFFF // anything above this shouldn't exist + +// Quick Check properties of runes allow us to quickly +// determine whether a rune may occur in a normal form. +// For a given normal form, a rune may be guaranteed to occur +// verbatim (QC=Yes), may or may not combine with another +// rune (QC=Maybe), or may not occur (QC=No). +type QCResult int + +const ( + QCUnknown QCResult = iota + QCYes + QCNo + QCMaybe +) + +func (r QCResult) String() string { + switch r { + case QCYes: + return "Yes" + case QCNo: + return "No" + case QCMaybe: + return "Maybe" + } + return "***UNKNOWN***" +} + +const ( + FCanonical = iota // NFC or NFD + FCompatibility // NFKC or NFKD + FNumberOfFormTypes +) + +const ( + MComposed = iota // NFC or NFKC + MDecomposed // NFD or NFKD + MNumberOfModes +) + +// This contains only the properties we're interested in. +type Char struct { + name string + codePoint rune // if zero, this index is not a valid code point. + ccc uint8 // canonical combining class + origCCC uint8 + excludeInComp bool // from CompositionExclusions.txt + compatDecomp bool // it has a compatibility expansion + + nTrailingNonStarters uint8 + nLeadingNonStarters uint8 // must be equal to trailing if non-zero + + forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility + + state State +} + +var chars = make([]Char, MaxChar+1) +var cccMap = make(map[uint8]uint8) + +func (c Char) String() string { + buf := new(bytes.Buffer) + + fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name) + fmt.Fprintf(buf, " ccc: %v\n", c.ccc) + fmt.Fprintf(buf, " excludeInComp: %v\n", c.excludeInComp) + fmt.Fprintf(buf, " compatDecomp: %v\n", c.compatDecomp) + fmt.Fprintf(buf, " state: %v\n", c.state) + fmt.Fprintf(buf, " NFC:\n") + fmt.Fprint(buf, c.forms[FCanonical]) + fmt.Fprintf(buf, " NFKC:\n") + fmt.Fprint(buf, c.forms[FCompatibility]) + + return buf.String() +} + +// In UnicodeData.txt, some ranges are marked like this: +// 3400;;Lo;0;L;;;;;N;;;;; +// 4DB5;;Lo;0;L;;;;;N;;;;; +// parseCharacter keeps a state variable indicating the weirdness. +type State int + +const ( + SNormal State = iota // known to be zero for the type + SFirst + SLast + SMissing +) + +var lastChar = rune('\u0000') + +func (c Char) isValid() bool { + return c.codePoint != 0 && c.state != SMissing +} + +type FormInfo struct { + quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed + verified [MNumberOfModes]bool // index: MComposed or MDecomposed + + combinesForward bool // May combine with rune on the right + combinesBackward bool // May combine with rune on the left + isOneWay bool // Never appears in result + inDecomp bool // Some decompositions result in this char. + decomp Decomposition + expandedDecomp Decomposition +} + +func (f FormInfo) String() string { + buf := bytes.NewBuffer(make([]byte, 0)) + + fmt.Fprintf(buf, " quickCheck[C]: %v\n", f.quickCheck[MComposed]) + fmt.Fprintf(buf, " quickCheck[D]: %v\n", f.quickCheck[MDecomposed]) + fmt.Fprintf(buf, " cmbForward: %v\n", f.combinesForward) + fmt.Fprintf(buf, " cmbBackward: %v\n", f.combinesBackward) + fmt.Fprintf(buf, " isOneWay: %v\n", f.isOneWay) + fmt.Fprintf(buf, " inDecomp: %v\n", f.inDecomp) + fmt.Fprintf(buf, " decomposition: %X\n", f.decomp) + fmt.Fprintf(buf, " expandedDecomp: %X\n", f.expandedDecomp) + + return buf.String() +} + +type Decomposition []rune + +func parseDecomposition(s string, skipfirst bool) (a []rune, err error) { + decomp := strings.Split(s, " ") + if len(decomp) > 0 && skipfirst { + decomp = decomp[1:] + } + for _, d := range decomp { + point, err := strconv.ParseUint(d, 16, 64) + if err != nil { + return a, err + } + a = append(a, rune(point)) + } + return a, nil +} + +func loadUnicodeData() { + f := gen.OpenUCDFile("UnicodeData.txt") + defer f.Close() + p := ucd.New(f) + for p.Next() { + r := p.Rune(ucd.CodePoint) + char := &chars[r] + + char.ccc = uint8(p.Uint(ucd.CanonicalCombiningClass)) + decmap := p.String(ucd.DecompMapping) + + exp, err := parseDecomposition(decmap, false) + isCompat := false + if err != nil { + if len(decmap) > 0 { + exp, err = parseDecomposition(decmap, true) + if err != nil { + log.Fatalf(`%U: bad decomp |%v|: "%s"`, r, decmap, err) + } + isCompat = true + } + } + + char.name = p.String(ucd.Name) + char.codePoint = r + char.forms[FCompatibility].decomp = exp + if !isCompat { + char.forms[FCanonical].decomp = exp + } else { + char.compatDecomp = true + } + if len(decmap) > 0 { + char.forms[FCompatibility].decomp = exp + } + } + if err := p.Err(); err != nil { + log.Fatal(err) + } +} + +// compactCCC converts the sparse set of CCC values to a continguous one, +// reducing the number of bits needed from 8 to 6. +func compactCCC() { + m := make(map[uint8]uint8) + for i := range chars { + c := &chars[i] + m[c.ccc] = 0 + } + cccs := []int{} + for v, _ := range m { + cccs = append(cccs, int(v)) + } + sort.Ints(cccs) + for i, c := range cccs { + cccMap[uint8(i)] = uint8(c) + m[uint8(c)] = uint8(i) + } + for i := range chars { + c := &chars[i] + c.origCCC = c.ccc + c.ccc = m[c.ccc] + } + if len(m) >= 1<<6 { + log.Fatalf("too many difference CCC values: %d >= 64", len(m)) + } +} + +// CompositionExclusions.txt has form: +// 0958 # ... +// See http://unicode.org/reports/tr44/ for full explanation +func loadCompositionExclusions() { + f := gen.OpenUCDFile("CompositionExclusions.txt") + defer f.Close() + p := ucd.New(f) + for p.Next() { + c := &chars[p.Rune(0)] + if c.excludeInComp { + log.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint) + } + c.excludeInComp = true + } + if e := p.Err(); e != nil { + log.Fatal(e) + } +} + +// hasCompatDecomp returns true if any of the recursive +// decompositions contains a compatibility expansion. +// In this case, the character may not occur in NFK*. +func hasCompatDecomp(r rune) bool { + c := &chars[r] + if c.compatDecomp { + return true + } + for _, d := range c.forms[FCompatibility].decomp { + if hasCompatDecomp(d) { + return true + } + } + return false +} + +// Hangul related constants. +const ( + HangulBase = 0xAC00 + HangulEnd = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28) + + JamoLBase = 0x1100 + JamoLEnd = 0x1113 + JamoVBase = 0x1161 + JamoVEnd = 0x1176 + JamoTBase = 0x11A8 + JamoTEnd = 0x11C3 + + JamoLVTCount = 19 * 21 * 28 + JamoTCount = 28 +) + +func isHangul(r rune) bool { + return HangulBase <= r && r < HangulEnd +} + +func isHangulWithoutJamoT(r rune) bool { + if !isHangul(r) { + return false + } + r -= HangulBase + return r < JamoLVTCount && r%JamoTCount == 0 +} + +func ccc(r rune) uint8 { + return chars[r].ccc +} + +// Insert a rune in a buffer, ordered by Canonical Combining Class. +func insertOrdered(b Decomposition, r rune) Decomposition { + n := len(b) + b = append(b, 0) + cc := ccc(r) + if cc > 0 { + // Use bubble sort. + for ; n > 0; n-- { + if ccc(b[n-1]) <= cc { + break + } + b[n] = b[n-1] + } + } + b[n] = r + return b +} + +// Recursively decompose. +func decomposeRecursive(form int, r rune, d Decomposition) Decomposition { + dcomp := chars[r].forms[form].decomp + if len(dcomp) == 0 { + return insertOrdered(d, r) + } + for _, c := range dcomp { + d = decomposeRecursive(form, c, d) + } + return d +} + +func completeCharFields(form int) { + // Phase 0: pre-expand decomposition. + for i := range chars { + f := &chars[i].forms[form] + if len(f.decomp) == 0 { + continue + } + exp := make(Decomposition, 0) + for _, c := range f.decomp { + exp = decomposeRecursive(form, c, exp) + } + f.expandedDecomp = exp + } + + // Phase 1: composition exclusion, mark decomposition. + for i := range chars { + c := &chars[i] + f := &c.forms[form] + + // Marks script-specific exclusions and version restricted. + f.isOneWay = c.excludeInComp + + // Singletons + f.isOneWay = f.isOneWay || len(f.decomp) == 1 + + // Non-starter decompositions + if len(f.decomp) > 1 { + chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0 + f.isOneWay = f.isOneWay || chk + } + + // Runes that decompose into more than two runes. + f.isOneWay = f.isOneWay || len(f.decomp) > 2 + + if form == FCompatibility { + f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint) + } + + for _, r := range f.decomp { + chars[r].forms[form].inDecomp = true + } + } + + // Phase 2: forward and backward combining. + for i := range chars { + c := &chars[i] + f := &c.forms[form] + + if !f.isOneWay && len(f.decomp) == 2 { + f0 := &chars[f.decomp[0]].forms[form] + f1 := &chars[f.decomp[1]].forms[form] + if !f0.isOneWay { + f0.combinesForward = true + } + if !f1.isOneWay { + f1.combinesBackward = true + } + } + if isHangulWithoutJamoT(rune(i)) { + f.combinesForward = true + } + } + + // Phase 3: quick check values. + for i := range chars { + c := &chars[i] + f := &c.forms[form] + + switch { + case len(f.decomp) > 0: + f.quickCheck[MDecomposed] = QCNo + case isHangul(rune(i)): + f.quickCheck[MDecomposed] = QCNo + default: + f.quickCheck[MDecomposed] = QCYes + } + switch { + case f.isOneWay: + f.quickCheck[MComposed] = QCNo + case (i & 0xffff00) == JamoLBase: + f.quickCheck[MComposed] = QCYes + if JamoLBase <= i && i < JamoLEnd { + f.combinesForward = true + } + if JamoVBase <= i && i < JamoVEnd { + f.quickCheck[MComposed] = QCMaybe + f.combinesBackward = true + f.combinesForward = true + } + if JamoTBase <= i && i < JamoTEnd { + f.quickCheck[MComposed] = QCMaybe + f.combinesBackward = true + } + case !f.combinesBackward: + f.quickCheck[MComposed] = QCYes + default: + f.quickCheck[MComposed] = QCMaybe + } + } +} + +func computeNonStarterCounts() { + // Phase 4: leading and trailing non-starter count + for i := range chars { + c := &chars[i] + + runes := []rune{rune(i)} + // We always use FCompatibility so that the CGJ insertion points do not + // change for repeated normalizations with different forms. + if exp := c.forms[FCompatibility].expandedDecomp; len(exp) > 0 { + runes = exp + } + // We consider runes that combine backwards to be non-starters for the + // purpose of Stream-Safe Text Processing. + for _, r := range runes { + if cr := &chars[r]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { + break + } + c.nLeadingNonStarters++ + } + for i := len(runes) - 1; i >= 0; i-- { + if cr := &chars[runes[i]]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward { + break + } + c.nTrailingNonStarters++ + } + if c.nTrailingNonStarters > 3 { + log.Fatalf("%U: Decomposition with more than 3 (%d) trailing modifiers (%U)", i, c.nTrailingNonStarters, runes) + } + + if isHangul(rune(i)) { + c.nTrailingNonStarters = 2 + if isHangulWithoutJamoT(rune(i)) { + c.nTrailingNonStarters = 1 + } + } + + if l, t := c.nLeadingNonStarters, c.nTrailingNonStarters; l > 0 && l != t { + log.Fatalf("%U: number of leading and trailing non-starters should be equal (%d vs %d)", i, l, t) + } + if t := c.nTrailingNonStarters; t > 3 { + log.Fatalf("%U: number of trailing non-starters is %d > 3", t) + } + } +} + +func printBytes(w io.Writer, b []byte, name string) { + fmt.Fprintf(w, "// %s: %d bytes\n", name, len(b)) + fmt.Fprintf(w, "var %s = [...]byte {", name) + for i, c := range b { + switch { + case i%64 == 0: + fmt.Fprintf(w, "\n// Bytes %x - %x\n", i, i+63) + case i%8 == 0: + fmt.Fprintf(w, "\n") + } + fmt.Fprintf(w, "0x%.2X, ", c) + } + fmt.Fprint(w, "\n}\n\n") +} + +// See forminfo.go for format. +func makeEntry(f *FormInfo, c *Char) uint16 { + e := uint16(0) + if r := c.codePoint; HangulBase <= r && r < HangulEnd { + e |= 0x40 + } + if f.combinesForward { + e |= 0x20 + } + if f.quickCheck[MDecomposed] == QCNo { + e |= 0x4 + } + switch f.quickCheck[MComposed] { + case QCYes: + case QCNo: + e |= 0x10 + case QCMaybe: + e |= 0x18 + default: + log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed]) + } + e |= uint16(c.nTrailingNonStarters) + return e +} + +// decompSet keeps track of unique decompositions, grouped by whether +// the decomposition is followed by a trailing and/or leading CCC. +type decompSet [7]map[string]bool + +const ( + normalDecomp = iota + firstMulti + firstCCC + endMulti + firstLeadingCCC + firstCCCZeroExcept + firstStarterWithNLead + lastDecomp +) + +var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "firstStarterWithNLead", "lastDecomp"} + +func makeDecompSet() decompSet { + m := decompSet{} + for i := range m { + m[i] = make(map[string]bool) + } + return m +} +func (m *decompSet) insert(key int, s string) { + m[key][s] = true +} + +func printCharInfoTables(w io.Writer) int { + mkstr := func(r rune, f *FormInfo) (int, string) { + d := f.expandedDecomp + s := string([]rune(d)) + if max := 1 << 6; len(s) >= max { + const msg = "%U: too many bytes in decomposition: %d >= %d" + log.Fatalf(msg, r, len(s), max) + } + head := uint8(len(s)) + if f.quickCheck[MComposed] != QCYes { + head |= 0x40 + } + if f.combinesForward { + head |= 0x80 + } + s = string([]byte{head}) + s + + lccc := ccc(d[0]) + tccc := ccc(d[len(d)-1]) + cc := ccc(r) + if cc != 0 && lccc == 0 && tccc == 0 { + log.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc) + } + if tccc < lccc && lccc != 0 { + const msg = "%U: lccc (%d) must be <= tcc (%d)" + log.Fatalf(msg, r, lccc, tccc) + } + index := normalDecomp + nTrail := chars[r].nTrailingNonStarters + if tccc > 0 || lccc > 0 || nTrail > 0 { + tccc <<= 2 + tccc |= nTrail + s += string([]byte{tccc}) + index = endMulti + for _, r := range d[1:] { + if ccc(r) == 0 { + index = firstCCC + } + } + if lccc > 0 { + s += string([]byte{lccc}) + if index == firstCCC { + log.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r) + } + index = firstLeadingCCC + } + if cc != lccc { + if cc != 0 { + log.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc) + } + index = firstCCCZeroExcept + } + } else if len(d) > 1 { + index = firstMulti + } + return index, s + } + + decompSet := makeDecompSet() + const nLeadStr = "\x00\x01" // 0-byte length and tccc with nTrail. + decompSet.insert(firstStarterWithNLead, nLeadStr) + + // Store the uniqued decompositions in a byte buffer, + // preceded by their byte length. + for _, c := range chars { + for _, f := range c.forms { + if len(f.expandedDecomp) == 0 { + continue + } + if f.combinesBackward { + log.Fatalf("%U: combinesBackward and decompose", c.codePoint) + } + index, s := mkstr(c.codePoint, &f) + decompSet.insert(index, s) + } + } + + decompositions := bytes.NewBuffer(make([]byte, 0, 10000)) + size := 0 + positionMap := make(map[string]uint16) + decompositions.WriteString("\000") + fmt.Fprintln(w, "const (") + for i, m := range decompSet { + sa := []string{} + for s := range m { + sa = append(sa, s) + } + sort.Strings(sa) + for _, s := range sa { + p := decompositions.Len() + decompositions.WriteString(s) + positionMap[s] = uint16(p) + } + if cname[i] != "" { + fmt.Fprintf(w, "%s = 0x%X\n", cname[i], decompositions.Len()) + } + } + fmt.Fprintln(w, "maxDecomp = 0x8000") + fmt.Fprintln(w, ")") + b := decompositions.Bytes() + printBytes(w, b, "decomps") + size += len(b) + + varnames := []string{"nfc", "nfkc"} + for i := 0; i < FNumberOfFormTypes; i++ { + trie := triegen.NewTrie(varnames[i]) + + for r, c := range chars { + f := c.forms[i] + d := f.expandedDecomp + if len(d) != 0 { + _, key := mkstr(c.codePoint, &f) + trie.Insert(rune(r), uint64(positionMap[key])) + if c.ccc != ccc(d[0]) { + // We assume the lead ccc of a decomposition !=0 in this case. + if ccc(d[0]) == 0 { + log.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc) + } + } + } else if c.nLeadingNonStarters > 0 && len(f.expandedDecomp) == 0 && c.ccc == 0 && !f.combinesBackward { + // Handle cases where it can't be detected that the nLead should be equal + // to nTrail. + trie.Insert(c.codePoint, uint64(positionMap[nLeadStr])) + } else if v := makeEntry(&f, &c)<<8 | uint16(c.ccc); v != 0 { + trie.Insert(c.codePoint, uint64(0x8000|v)) + } + } + sz, err := trie.Gen(w, triegen.Compact(&normCompacter{name: varnames[i]})) + if err != nil { + log.Fatal(err) + } + size += sz + } + return size +} + +func contains(sa []string, s string) bool { + for _, a := range sa { + if a == s { + return true + } + } + return false +} + +func makeTables() { + w := &bytes.Buffer{} + + size := 0 + if *tablelist == "" { + return + } + list := strings.Split(*tablelist, ",") + if *tablelist == "all" { + list = []string{"recomp", "info"} + } + + // Compute maximum decomposition size. + max := 0 + for _, c := range chars { + if n := len(string(c.forms[FCompatibility].expandedDecomp)); n > max { + max = n + } + } + + fmt.Fprintln(w, "const (") + fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.") + fmt.Fprintf(w, "\tVersion = %q\n", gen.UnicodeVersion()) + fmt.Fprintln(w) + fmt.Fprintln(w, "\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform") + fmt.Fprintln(w, "\t// may need to write atomically for any Form. Making a destination buffer at") + fmt.Fprintln(w, "\t// least this size ensures that Transform can always make progress and that") + fmt.Fprintln(w, "\t// the user does not need to grow the buffer on an ErrShortDst.") + fmt.Fprintf(w, "\tMaxTransformChunkSize = %d+maxNonStarters*4\n", len(string(0x034F))+max) + fmt.Fprintln(w, ")\n") + + // Print the CCC remap table. + size += len(cccMap) + fmt.Fprintf(w, "var ccc = [%d]uint8{", len(cccMap)) + for i := 0; i < len(cccMap); i++ { + if i%8 == 0 { + fmt.Fprintln(w) + } + fmt.Fprintf(w, "%3d, ", cccMap[uint8(i)]) + } + fmt.Fprintln(w, "\n}\n") + + if contains(list, "info") { + size += printCharInfoTables(w) + } + + if contains(list, "recomp") { + // Note that we use 32 bit keys, instead of 64 bit. + // This clips the bits of three entries, but we know + // this won't cause a collision. The compiler will catch + // any changes made to UnicodeData.txt that introduces + // a collision. + // Note that the recomposition map for NFC and NFKC + // are identical. + + // Recomposition map + nrentries := 0 + for _, c := range chars { + f := c.forms[FCanonical] + if !f.isOneWay && len(f.decomp) > 0 { + nrentries++ + } + } + sz := nrentries * 8 + size += sz + fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz) + fmt.Fprintln(w, "var recompMap = map[uint32]rune{") + for i, c := range chars { + f := c.forms[FCanonical] + d := f.decomp + if !f.isOneWay && len(d) > 0 { + key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1])) + fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i) + } + } + fmt.Fprintf(w, "}\n\n") + } + + fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size) + gen.WriteGoFile("tables.go", "norm", w.Bytes()) +} + +func printChars() { + if *verbose { + for _, c := range chars { + if !c.isValid() || c.state == SMissing { + continue + } + fmt.Println(c) + } + } +} + +// verifyComputed does various consistency tests. +func verifyComputed() { + for i, c := range chars { + for _, f := range c.forms { + isNo := (f.quickCheck[MDecomposed] == QCNo) + if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) { + log.Fatalf("%U: NF*D QC must be No if rune decomposes", i) + } + + isMaybe := f.quickCheck[MComposed] == QCMaybe + if f.combinesBackward != isMaybe { + log.Fatalf("%U: NF*C QC must be Maybe if combinesBackward", i) + } + if len(f.decomp) > 0 && f.combinesForward && isMaybe { + log.Fatalf("%U: NF*C QC must be Yes or No if combinesForward and decomposes", i) + } + + if len(f.expandedDecomp) != 0 { + continue + } + if a, b := c.nLeadingNonStarters > 0, (c.ccc > 0 || f.combinesBackward); a != b { + // We accept these runes to be treated differently (it only affects + // segment breaking in iteration, most likely on improper use), but + // reconsider if more characters are added. + // U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;;;; + // U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;;;; + // U+3133 HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; + // U+318E HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; + // U+FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; + // U+FFDC HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; + if i != 0xFF9E && i != 0xFF9F && !(0x3133 <= i && i <= 0x318E) && !(0xFFA3 <= i && i <= 0xFFDC) { + log.Fatalf("%U: nLead was %v; want %v", i, a, b) + } + } + } + nfc := c.forms[FCanonical] + nfkc := c.forms[FCompatibility] + if nfc.combinesBackward != nfkc.combinesBackward { + log.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint) + } + } +} + +// Use values in DerivedNormalizationProps.txt to compare against the +// values we computed. +// DerivedNormalizationProps.txt has form: +// 00C0..00C5 ; NFD_QC; N # ... +// 0374 ; NFD_QC; N # ... +// See http://unicode.org/reports/tr44/ for full explanation +func testDerived() { + f := gen.OpenUCDFile("DerivedNormalizationProps.txt") + defer f.Close() + p := ucd.New(f) + for p.Next() { + r := p.Rune(0) + c := &chars[r] + + var ftype, mode int + qt := p.String(1) + switch qt { + case "NFC_QC": + ftype, mode = FCanonical, MComposed + case "NFD_QC": + ftype, mode = FCanonical, MDecomposed + case "NFKC_QC": + ftype, mode = FCompatibility, MComposed + case "NFKD_QC": + ftype, mode = FCompatibility, MDecomposed + default: + continue + } + var qr QCResult + switch p.String(2) { + case "Y": + qr = QCYes + case "N": + qr = QCNo + case "M": + qr = QCMaybe + default: + log.Fatalf(`Unexpected quick check value "%s"`, p.String(2)) + } + if got := c.forms[ftype].quickCheck[mode]; got != qr { + log.Printf("%U: FAILED %s (was %v need %v)\n", r, qt, got, qr) + } + c.forms[ftype].verified[mode] = true + } + if err := p.Err(); err != nil { + log.Fatal(err) + } + // Any unspecified value must be QCYes. Verify this. + for i, c := range chars { + for j, fd := range c.forms { + for k, qr := range fd.quickCheck { + if !fd.verified[k] && qr != QCYes { + m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n" + log.Printf(m, i, j, k, qr, c.name) + } + } + } + } +} + +var testHeader = `const ( + Yes = iota + No + Maybe +) + +type formData struct { + qc uint8 + combinesForward bool + decomposition string +} + +type runeData struct { + r rune + ccc uint8 + nLead uint8 + nTrail uint8 + f [2]formData // 0: canonical; 1: compatibility +} + +func f(qc uint8, cf bool, dec string) [2]formData { + return [2]formData{{qc, cf, dec}, {qc, cf, dec}} +} + +func g(qc, qck uint8, cf, cfk bool, d, dk string) [2]formData { + return [2]formData{{qc, cf, d}, {qck, cfk, dk}} +} + +var testData = []runeData{ +` + +func printTestdata() { + type lastInfo struct { + ccc uint8 + nLead uint8 + nTrail uint8 + f string + } + + last := lastInfo{} + w := &bytes.Buffer{} + fmt.Fprintf(w, testHeader) + for r, c := range chars { + f := c.forms[FCanonical] + qc, cf, d := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) + f = c.forms[FCompatibility] + qck, cfk, dk := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp) + s := "" + if d == dk && qc == qck && cf == cfk { + s = fmt.Sprintf("f(%s, %v, %q)", qc, cf, d) + } else { + s = fmt.Sprintf("g(%s, %s, %v, %v, %q, %q)", qc, qck, cf, cfk, d, dk) + } + current := lastInfo{c.ccc, c.nLeadingNonStarters, c.nTrailingNonStarters, s} + if last != current { + fmt.Fprintf(w, "\t{0x%x, %d, %d, %d, %s},\n", r, c.origCCC, c.nLeadingNonStarters, c.nTrailingNonStarters, s) + last = current + } + } + fmt.Fprintln(w, "}") + gen.WriteGoFile("data_test.go", "norm", w.Bytes()) +} diff --git a/vendor/golang.org/x/text/unicode/norm/norm_test.go b/vendor/golang.org/x/text/unicode/norm/norm_test.go new file mode 100644 index 00000000..12dacfcf --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/norm_test.go @@ -0,0 +1,14 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm_test + +import ( + "testing" +) + +func TestPlaceHolder(t *testing.T) { + // Does nothing, just allows the Makefile to be canonical + // while waiting for the package itself to be written. +} diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go new file mode 100644 index 00000000..eb5596f8 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -0,0 +1,576 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run maketables.go triegen.go +//go:generate go run maketables.go triegen.go -test + +// Package norm contains types and functions for normalizing Unicode strings. +package norm // import "golang.org/x/text/unicode/norm" + +import "unicode/utf8" + +// A Form denotes a canonical representation of Unicode code points. +// The Unicode-defined normalization and equivalence forms are: +// +// NFC Unicode Normalization Form C +// NFD Unicode Normalization Form D +// NFKC Unicode Normalization Form KC +// NFKD Unicode Normalization Form KD +// +// For a Form f, this documentation uses the notation f(x) to mean +// the bytes or string x converted to the given form. +// A position n in x is called a boundary if conversion to the form can +// proceed independently on both sides: +// f(x) == append(f(x[0:n]), f(x[n:])...) +// +// References: http://unicode.org/reports/tr15/ and +// http://unicode.org/notes/tn5/. +type Form int + +const ( + NFC Form = iota + NFD + NFKC + NFKD +) + +// Bytes returns f(b). May return b if f(b) = b. +func (f Form) Bytes(b []byte) []byte { + src := inputBytes(b) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return b + } + out := make([]byte, n, len(b)) + copy(out, b[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush} + return doAppendInner(&rb, n) +} + +// String returns f(s). +func (f Form) String(s string) string { + src := inputString(s) + ft := formTable[f] + n, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return s + } + out := make([]byte, n, len(s)) + copy(out, s[0:n]) + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush} + return string(doAppendInner(&rb, n)) +} + +// IsNormal returns true if b == f(b). +func (f Form) IsNormal(b []byte) bool { + src := inputBytes(b) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(b), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)} + rb.setFlusher(nil, cmpNormalBytes) + for bp < len(b) { + rb.out = b[bp:] + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true) + } + return true +} + +func cmpNormalBytes(rb *reorderBuffer) bool { + b := rb.out + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if int(info.size) > len(b) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if b[0] != rb.byte[p] { + return false + } + b = b[1:] + } + } + return true +} + +// IsNormalString returns true if s == f(s). +func (f Form) IsNormalString(s string) bool { + src := inputString(s) + ft := formTable[f] + bp, ok := ft.quickSpan(src, 0, len(s), true) + if ok { + return true + } + rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)} + rb.setFlusher(nil, func(rb *reorderBuffer) bool { + for i := 0; i < rb.nrune; i++ { + info := rb.rune[i] + if bp+int(info.size) > len(s) { + return false + } + p := info.pos + pe := p + info.size + for ; p < pe; p++ { + if s[bp] != rb.byte[p] { + return false + } + bp++ + } + } + return true + }) + for bp < len(s) { + if bp = decomposeSegment(&rb, bp, true); bp < 0 { + return false + } + bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true) + } + return true +} + +// patchTail fixes a case where a rune may be incorrectly normalized +// if it is followed by illegal continuation bytes. It returns the +// patched buffer and whether the decomposition is still in progress. +func patchTail(rb *reorderBuffer) bool { + info, p := lastRuneStart(&rb.f, rb.out) + if p == -1 || info.size == 0 { + return true + } + end := p + int(info.size) + extra := len(rb.out) - end + if extra > 0 { + // Potentially allocating memory. However, this only + // happens with ill-formed UTF-8. + x := make([]byte, 0) + x = append(x, rb.out[len(rb.out)-extra:]...) + rb.out = rb.out[:end] + decomposeToLastBoundary(rb) + rb.doFlush() + rb.out = append(rb.out, x...) + return false + } + buf := rb.out[p:] + rb.out = rb.out[:p] + decomposeToLastBoundary(rb) + if s := rb.ss.next(info); s == ssStarter { + rb.doFlush() + rb.ss.first(info) + } else if s == ssOverflow { + rb.doFlush() + rb.insertCGJ() + rb.ss = 0 + } + rb.insertUnsafe(inputBytes(buf), 0, info) + return true +} + +func appendQuick(rb *reorderBuffer, i int) int { + if rb.nsrc == i { + return i + } + end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true) + rb.out = rb.src.appendSlice(rb.out, i, end) + return end +} + +// Append returns f(append(out, b...)). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) Append(out []byte, src ...byte) []byte { + return f.doAppend(out, inputBytes(src), len(src)) +} + +func (f Form) doAppend(out []byte, src input, n int) []byte { + if n == 0 { + return out + } + ft := formTable[f] + // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer. + if len(out) == 0 { + p, _ := ft.quickSpan(src, 0, n, true) + out = src.appendSlice(out, 0, p) + if p == n { + return out + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush} + return doAppendInner(&rb, p) + } + rb := reorderBuffer{f: *ft, src: src, nsrc: n} + return doAppend(&rb, out, 0) +} + +func doAppend(rb *reorderBuffer, out []byte, p int) []byte { + rb.setFlusher(out, appendFlush) + src, n := rb.src, rb.nsrc + doMerge := len(out) > 0 + if q := src.skipContinuationBytes(p); q > p { + // Move leading non-starters to destination. + rb.out = src.appendSlice(rb.out, p, q) + p = q + doMerge = patchTail(rb) + } + fd := &rb.f + if doMerge { + var info Properties + if p < n { + info = fd.info(src, p) + if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { + if p == 0 { + decomposeToLastBoundary(rb) + } + p = decomposeSegment(rb, p, true) + } + } + if info.size == 0 { + rb.doFlush() + // Append incomplete UTF-8 encoding. + return src.appendSlice(rb.out, p, n) + } + if rb.nrune > 0 { + return doAppendInner(rb, p) + } + } + p = appendQuick(rb, p) + return doAppendInner(rb, p) +} + +func doAppendInner(rb *reorderBuffer, p int) []byte { + for n := rb.nsrc; p < n; { + p = decomposeSegment(rb, p, true) + p = appendQuick(rb, p) + } + return rb.out +} + +// AppendString returns f(append(out, []byte(s))). +// The buffer out must be nil, empty, or equal to f(out). +func (f Form) AppendString(out []byte, src string) []byte { + return f.doAppend(out, inputString(src), len(src)) +} + +// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpan(b []byte) int { + n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true) + return n +} + +// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and +// whether any non-normalized parts were found. If atEOF is false, n will +// not point past the last segment if this segment might be become +// non-normalized by appending other runes. +func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) { + var lastCC uint8 + ss := streamSafe(0) + lastSegStart := i + for n = end; i < n; { + if j := src.skipASCII(i, n); i != j { + i = j + lastSegStart = i - 1 + lastCC = 0 + ss = 0 + continue + } + info := f.info(src, i) + if info.size == 0 { + if atEOF { + // include incomplete runes + return n, true + } + return lastSegStart, true + } + // This block needs to be before the next, because it is possible to + // have an overflow for runes that are starters (e.g. with U+FF9E). + switch ss.next(info) { + case ssStarter: + ss.first(info) + lastSegStart = i + case ssOverflow: + return lastSegStart, false + case ssSuccess: + if lastCC > info.ccc { + return lastSegStart, false + } + } + if f.composing { + if !info.isYesC() { + break + } + } else { + if !info.isYesD() { + break + } + } + lastCC = info.ccc + i += int(info.size) + } + if i == n { + if !atEOF { + n = lastSegStart + } + return n, true + } + return lastSegStart, false +} + +// QuickSpanString returns a boundary n such that b[0:n] == f(s[0:n]). +// It is not guaranteed to return the largest such n. +func (f Form) QuickSpanString(s string) int { + n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true) + return n +} + +// FirstBoundary returns the position i of the first boundary in b +// or -1 if b contains no boundary. +func (f Form) FirstBoundary(b []byte) int { + return f.firstBoundary(inputBytes(b), len(b)) +} + +func (f Form) firstBoundary(src input, nsrc int) int { + i := src.skipContinuationBytes(0) + if i >= nsrc { + return -1 + } + fd := formTable[f] + ss := streamSafe(0) + // We should call ss.first here, but we can't as the first rune is + // skipped already. This means FirstBoundary can't really determine + // CGJ insertion points correctly. Luckily it doesn't have to. + for { + info := fd.info(src, i) + if info.size == 0 { + return -1 + } + if s := ss.next(info); s != ssSuccess { + return i + } + i += int(info.size) + if i >= nsrc { + if !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc + } + } +} + +// FirstBoundaryInString returns the position i of the first boundary in s +// or -1 if s contains no boundary. +func (f Form) FirstBoundaryInString(s string) int { + return f.firstBoundary(inputString(s), len(s)) +} + +// NextBoundary reports the index of the boundary between the first and next +// segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundary(b []byte, atEOF bool) int { + return f.nextBoundary(inputBytes(b), len(b), atEOF) +} + +// NextBoundaryInString reports the index of the boundary between the first and +// next segment in b or -1 if atEOF is false and there are not enough bytes to +// determine this boundary. +func (f Form) NextBoundaryInString(s string, atEOF bool) int { + return f.nextBoundary(inputString(s), len(s), atEOF) +} + +func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int { + if nsrc == 0 { + if atEOF { + return 0 + } + return -1 + } + fd := formTable[f] + info := fd.info(src, 0) + if info.size == 0 { + if atEOF { + return 1 + } + return -1 + } + ss := streamSafe(0) + ss.first(info) + + for i := int(info.size); i < nsrc; i += int(info.size) { + info = fd.info(src, i) + if info.size == 0 { + if atEOF { + return i + } + return -1 + } + if s := ss.next(info); s != ssSuccess { + return i + } + } + if !atEOF && !info.BoundaryAfter() && !ss.isMax() { + return -1 + } + return nsrc +} + +// LastBoundary returns the position i of the last boundary in b +// or -1 if b contains no boundary. +func (f Form) LastBoundary(b []byte) int { + return lastBoundary(formTable[f], b) +} + +func lastBoundary(fd *formInfo, b []byte) int { + i := len(b) + info, p := lastRuneStart(fd, b) + if p == -1 { + return -1 + } + if info.size == 0 { // ends with incomplete rune + if p == 0 { // starts with incomplete rune + return -1 + } + i = p + info, p = lastRuneStart(fd, b[:i]) + if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter + return i + } + } + if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8 + return i + } + if info.BoundaryAfter() { + return i + } + ss := streamSafe(0) + v := ss.backwards(info) + for i = p; i >= 0 && v != ssStarter; i = p { + info, p = lastRuneStart(fd, b[:i]) + if v = ss.backwards(info); v == ssOverflow { + break + } + if p+int(info.size) != i { + if p == -1 { // no boundary found + return -1 + } + return i // boundary after an illegal UTF-8 encoding + } + } + return i +} + +// decomposeSegment scans the first segment in src into rb. It inserts 0x034f +// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters +// and returns the number of bytes consumed from src or iShortDst or iShortSrc. +func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { + // Force one character to be consumed. + info := rb.f.info(rb.src, sp) + if info.size == 0 { + return 0 + } + if rb.nrune > 0 { + if s := rb.ss.next(info); s == ssStarter { + goto end + } else if s == ssOverflow { + rb.insertCGJ() + goto end + } + } else { + rb.ss.first(info) + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + for { + sp += int(info.size) + if sp >= rb.nsrc { + if !atEOF && !info.BoundaryAfter() { + return int(iShortSrc) + } + break + } + info = rb.f.info(rb.src, sp) + if info.size == 0 { + if !atEOF { + return int(iShortSrc) + } + break + } + if s := rb.ss.next(info); s == ssStarter { + break + } else if s == ssOverflow { + rb.insertCGJ() + break + } + if err := rb.insertFlush(rb.src, sp, info); err != iSuccess { + return int(err) + } + } +end: + if !rb.doFlush() { + return int(iShortDst) + } + return sp +} + +// lastRuneStart returns the runeInfo and position of the last +// rune in buf or the zero runeInfo and -1 if no rune was found. +func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) { + p := len(buf) - 1 + for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- { + } + if p < 0 { + return Properties{}, -1 + } + return fd.info(inputBytes(buf), p), p +} + +// decomposeToLastBoundary finds an open segment at the end of the buffer +// and scans it into rb. Returns the buffer minus the last segment. +func decomposeToLastBoundary(rb *reorderBuffer) { + fd := &rb.f + info, i := lastRuneStart(fd, rb.out) + if int(info.size) != len(rb.out)-i { + // illegal trailing continuation bytes + return + } + if info.BoundaryAfter() { + return + } + var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order + padd := 0 + ss := streamSafe(0) + p := len(rb.out) + for { + add[padd] = info + v := ss.backwards(info) + if v == ssOverflow { + // Note that if we have an overflow, it the string we are appending to + // is not correctly normalized. In this case the behavior is undefined. + break + } + padd++ + p -= int(info.size) + if v == ssStarter || p < 0 { + break + } + info, i = lastRuneStart(fd, rb.out[:p]) + if int(info.size) != p-i { + break + } + } + rb.ss = ss + // Copy bytes for insertion as we may need to overwrite rb.out. + var buf [maxBufferSize * utf8.UTFMax]byte + cp := buf[:copy(buf[:], rb.out[p:])] + rb.out = rb.out[:p] + for padd--; padd >= 0; padd-- { + info = add[padd] + rb.insertUnsafe(inputBytes(cp), 0, info) + cp = cp[info.size:] + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/normalize_test.go b/vendor/golang.org/x/text/unicode/norm/normalize_test.go new file mode 100644 index 00000000..6e92abbe --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/normalize_test.go @@ -0,0 +1,1195 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "bytes" + "flag" + "fmt" + "io" + "log" + "strings" + "testing" + "unicode/utf8" +) + +var ( + testn = flag.Int("testn", -1, "specific test number to run or -1 for all") +) + +// pc replaces any rune r that is repeated n times, for n > 1, with r{n}. +func pc(s string) []byte { + b := bytes.NewBuffer(make([]byte, 0, len(s))) + for i := 0; i < len(s); { + r, sz := utf8.DecodeRuneInString(s[i:]) + n := 0 + if sz == 1 { + // Special-case one-byte case to handle repetition for invalid UTF-8. + for c := s[i]; i+n < len(s) && s[i+n] == c; n++ { + } + } else { + for _, r2 := range s[i:] { + if r2 != r { + break + } + n++ + } + } + b.WriteString(s[i : i+sz]) + if n > 1 { + fmt.Fprintf(b, "{%d}", n) + } + i += sz * n + } + return b.Bytes() +} + +// pidx finds the index from which two strings start to differ, plus context. +// It returns the index and ellipsis if the index is greater than 0. +func pidx(a, b string) (i int, prefix string) { + for ; i < len(a) && i < len(b) && a[i] == b[i]; i++ { + } + if i < 8 { + return 0, "" + } + i -= 3 // ensure taking at least one full rune before the difference. + for k := i - 7; i > k && !utf8.RuneStart(a[i]); i-- { + } + return i, "..." +} + +type PositionTest struct { + input string + pos int + buffer string // expected contents of reorderBuffer, if applicable +} + +type positionFunc func(rb *reorderBuffer, s string) (int, []byte) + +func runPosTests(t *testing.T, name string, f Form, fn positionFunc, tests []PositionTest) { + rb := reorderBuffer{} + rb.init(f, nil) + for i, test := range tests { + rb.reset() + rb.src = inputString(test.input) + rb.nsrc = len(test.input) + pos, out := fn(&rb, test.input) + if pos != test.pos { + t.Errorf("%s:%d: position is %d; want %d", name, i, pos, test.pos) + } + if outs := string(out); outs != test.buffer { + k, pfx := pidx(outs, test.buffer) + t.Errorf("%s:%d: buffer \nwas %s%+q; \nwant %s%+q", name, i, pfx, pc(outs[k:]), pfx, pc(test.buffer[k:])) + } + } +} + +func grave(n int) string { + return rep(0x0300, n) +} + +func rep(r rune, n int) string { + return strings.Repeat(string(r), n) +} + +const segSize = maxByteBufferSize + +var cgj = GraphemeJoiner + +var decomposeSegmentTests = []PositionTest{ + // illegal runes + {"\xC2", 0, ""}, + {"\xC0", 1, "\xC0"}, + {"\u00E0\x80", 2, "\u0061\u0300"}, + // starter + {"a", 1, "a"}, + {"ab", 1, "a"}, + // starter + composing + {"a\u0300", 3, "a\u0300"}, + {"a\u0300b", 3, "a\u0300"}, + // with decomposition + {"\u00C0", 2, "A\u0300"}, + {"\u00C0b", 2, "A\u0300"}, + // long + {grave(31), 60, grave(30) + cgj}, + {"a" + grave(31), 61, "a" + grave(30) + cgj}, + + // Stability tests: see http://www.unicode.org/review/pr-29.html. + // U+0300 COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;;;; + // U+0B47 ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; + // U+0B3E ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; + // U+1100 HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;; + // U+1161 HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; + {"\u0B47\u0300\u0B3E", 8, "\u0B47\u0300\u0B3E"}, + {"\u1100\u0300\u1161", 8, "\u1100\u0300\u1161"}, + {"\u0B47\u0B3E", 6, "\u0B47\u0B3E"}, + {"\u1100\u1161", 6, "\u1100\u1161"}, + + // U+04DA MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; + // Sequence of decomposing characters that are starters and modifiers. + {"\u0d4a" + strings.Repeat("\u0d3e", 31), 90, "\u0d46" + strings.Repeat("\u0d3e", 30) + cgj}, + + {grave(30), 60, grave(30)}, + // U+FF9E is a starter, but decomposes to U+3099, which is not. + {grave(30) + "\uff9e", 60, grave(30) + cgj}, + // ends with incomplete UTF-8 encoding + {"\xCC", 0, ""}, + {"\u0300\xCC", 2, "\u0300"}, +} + +func decomposeSegmentF(rb *reorderBuffer, s string) (int, []byte) { + rb.initString(NFD, s) + rb.setFlusher(nil, appendFlush) + p := decomposeSegment(rb, 0, true) + return p, rb.out +} + +func TestDecomposeSegment(t *testing.T) { + runPosTests(t, "TestDecomposeSegment", NFC, decomposeSegmentF, decomposeSegmentTests) +} + +var firstBoundaryTests = []PositionTest{ + // no boundary + {"", -1, ""}, + {"\u0300", -1, ""}, + {"\x80\x80", -1, ""}, + // illegal runes + {"\xff", 0, ""}, + {"\u0300\xff", 2, ""}, + {"\u0300\xc0\x80\x80", 2, ""}, + // boundaries + {"a", 0, ""}, + {"\u0300a", 2, ""}, + // Hangul + {"\u1103\u1161", 0, ""}, + {"\u110B\u1173\u11B7", 0, ""}, + {"\u1161\u110B\u1173\u11B7", 3, ""}, + {"\u1173\u11B7\u1103\u1161", 6, ""}, + // too many combining characters. + {grave(maxNonStarters - 1), -1, ""}, + {grave(maxNonStarters), 60, ""}, + {grave(maxNonStarters + 1), 60, ""}, +} + +func firstBoundaryF(rb *reorderBuffer, s string) (int, []byte) { + return rb.f.form.FirstBoundary([]byte(s)), nil +} + +func firstBoundaryStringF(rb *reorderBuffer, s string) (int, []byte) { + return rb.f.form.FirstBoundaryInString(s), nil +} + +func TestFirstBoundary(t *testing.T) { + runPosTests(t, "TestFirstBoundary", NFC, firstBoundaryF, firstBoundaryTests) + runPosTests(t, "TestFirstBoundaryInString", NFC, firstBoundaryStringF, firstBoundaryTests) +} + +func TestNextBoundary(t *testing.T) { + testCases := []struct { + input string + atEOF bool + want int + }{ + // no boundary + {"", true, 0}, + {"", false, -1}, + {"\u0300", true, 2}, + {"\u0300", false, -1}, + {"\x80\x80", true, 1}, + {"\x80\x80", false, 1}, + // illegal runes + {"\xff", false, 1}, + {"\u0300\xff", false, 2}, + {"\u0300\xc0\x80\x80", false, 2}, + {"\xc2\x80\x80", false, 2}, + {"\xc2", false, -1}, + {"\xc2", true, 1}, + {"a\u0300\xc2", false, -1}, + {"a\u0300\xc2", true, 3}, + // boundaries + {"a", true, 1}, + {"a", false, -1}, + {"aa", false, 1}, + {"\u0300", true, 2}, + {"\u0300", false, -1}, + {"\u0300a", false, 2}, + // Hangul + {"\u1103\u1161", true, 6}, + {"\u1103\u1161", false, -1}, + {"\u110B\u1173\u11B7", false, -1}, + {"\u110B\u1173\u11B7\u110B\u1173\u11B7", false, 9}, + {"\u1161\u110B\u1173\u11B7", false, 3}, + {"\u1173\u11B7\u1103\u1161", false, 6}, + // too many combining characters. + {grave(maxNonStarters - 1), false, -1}, + {grave(maxNonStarters), false, 60}, + {grave(maxNonStarters + 1), false, 60}, + } + + for _, tc := range testCases { + if got := NFC.NextBoundary([]byte(tc.input), tc.atEOF); got != tc.want { + t.Errorf("NextBoundary(%+q, %v) = %d; want %d", tc.input, tc.atEOF, got, tc.want) + } + if got := NFC.NextBoundaryInString(tc.input, tc.atEOF); got != tc.want { + t.Errorf("NextBoundaryInString(%+q, %v) = %d; want %d", tc.input, tc.atEOF, got, tc.want) + } + } +} + +var decomposeToLastTests = []PositionTest{ + // ends with inert character + {"Hello!", 6, ""}, + {"\u0632", 2, ""}, + {"a\u0301\u0635", 5, ""}, + // ends with non-inert starter + {"a", 0, "a"}, + {"a\u0301a", 3, "a"}, + {"a\u0301\u03B9", 3, "\u03B9"}, + {"a\u0327", 0, "a\u0327"}, + // illegal runes + {"\xFF", 1, ""}, + {"aa\xFF", 3, ""}, + {"\xC0\x80\x80", 3, ""}, + {"\xCC\x80\x80", 3, ""}, + // ends with incomplete UTF-8 encoding + {"a\xCC", 2, ""}, + // ends with combining characters + {"\u0300\u0301", 0, "\u0300\u0301"}, + {"a\u0300\u0301", 0, "a\u0300\u0301"}, + {"a\u0301\u0308", 0, "a\u0301\u0308"}, + {"a\u0308\u0301", 0, "a\u0308\u0301"}, + {"aaaa\u0300\u0301", 3, "a\u0300\u0301"}, + {"\u0300a\u0300\u0301", 2, "a\u0300\u0301"}, + {"\u00C0", 0, "A\u0300"}, + {"a\u00C0", 1, "A\u0300"}, + // decomposing + {"a\u0300\u00E0", 3, "a\u0300"}, + // multisegment decompositions (flushes leading segments) + {"a\u0300\uFDC0", 7, "\u064A"}, + {"\uFDC0" + grave(29), 4, "\u064A" + grave(29)}, + {"\uFDC0" + grave(30), 4, "\u064A" + grave(30)}, + {"\uFDC0" + grave(31), 5, grave(30)}, + {"\uFDFA" + grave(14), 31, "\u0645" + grave(14)}, + // Overflow + {"\u00E0" + grave(29), 0, "a" + grave(30)}, + {"\u00E0" + grave(30), 2, grave(30)}, + // Hangul + {"a\u1103", 1, "\u1103"}, + {"a\u110B", 1, "\u110B"}, + {"a\u110B\u1173", 1, "\u110B\u1173"}, + // See comment in composition.go:compBoundaryAfter. + {"a\u110B\u1173\u11B7", 1, "\u110B\u1173\u11B7"}, + {"a\uC73C", 1, "\u110B\u1173"}, + {"다ìŒ", 3, "\u110B\u1173\u11B7"}, + {"다", 0, "\u1103\u1161"}, + {"\u1103\u1161\u110B\u1173\u11B7", 6, "\u110B\u1173\u11B7"}, + {"\u110B\u1173\u11B7\u1103\u1161", 9, "\u1103\u1161"}, + {"다ìŒìŒ", 6, "\u110B\u1173\u11B7"}, + {"ìŒë‹¤ë‹¤", 6, "\u1103\u1161"}, + // maximized buffer + {"a" + grave(30), 0, "a" + grave(30)}, + // Buffer overflow + {"a" + grave(31), 3, grave(30)}, + // weird UTF-8 + {"a\u0300\u11B7", 0, "a\u0300\u11B7"}, +} + +func decomposeToLast(rb *reorderBuffer, s string) (int, []byte) { + rb.setFlusher([]byte(s), appendFlush) + decomposeToLastBoundary(rb) + buf := rb.flush(nil) + return len(rb.out), buf +} + +func TestDecomposeToLastBoundary(t *testing.T) { + runPosTests(t, "TestDecomposeToLastBoundary", NFKC, decomposeToLast, decomposeToLastTests) +} + +var lastBoundaryTests = []PositionTest{ + // ends with inert character + {"Hello!", 6, ""}, + {"\u0632", 2, ""}, + // ends with non-inert starter + {"a", 0, ""}, + // illegal runes + {"\xff", 1, ""}, + {"aa\xff", 3, ""}, + {"a\xff\u0300", 1, ""}, // TODO: should probably be 2. + {"\xc0\x80\x80", 3, ""}, + {"\xc0\x80\x80\u0300", 3, ""}, + // ends with incomplete UTF-8 encoding + {"\xCC", -1, ""}, + {"\xE0\x80", -1, ""}, + {"\xF0\x80\x80", -1, ""}, + {"a\xCC", 0, ""}, + {"\x80\xCC", 1, ""}, + {"\xCC\xCC", 1, ""}, + // ends with combining characters + {"a\u0300\u0301", 0, ""}, + {"aaaa\u0300\u0301", 3, ""}, + {"\u0300a\u0300\u0301", 2, ""}, + {"\u00C2", 0, ""}, + {"a\u00C2", 1, ""}, + // decomposition may recombine + {"\u0226", 0, ""}, + // no boundary + {"", -1, ""}, + {"\u0300\u0301", -1, ""}, + {"\u0300", -1, ""}, + {"\x80\x80", -1, ""}, + {"\x80\x80\u0301", -1, ""}, + // Hangul + {"다ìŒ", 3, ""}, + {"다", 0, ""}, + {"\u1103\u1161\u110B\u1173\u11B7", 6, ""}, + {"\u110B\u1173\u11B7\u1103\u1161", 9, ""}, + // too many combining characters. + {grave(maxNonStarters - 1), -1, ""}, + // May still be preceded with a non-starter. + {grave(maxNonStarters), -1, ""}, + // May still need to insert a cgj after the last combiner. + {grave(maxNonStarters + 1), 2, ""}, + {grave(maxNonStarters + 2), 4, ""}, + + {"a" + grave(maxNonStarters-1), 0, ""}, + {"a" + grave(maxNonStarters), 0, ""}, + // May still need to insert a cgj after the last combiner. + {"a" + grave(maxNonStarters+1), 3, ""}, + {"a" + grave(maxNonStarters+2), 5, ""}, +} + +func lastBoundaryF(rb *reorderBuffer, s string) (int, []byte) { + return rb.f.form.LastBoundary([]byte(s)), nil +} + +func TestLastBoundary(t *testing.T) { + runPosTests(t, "TestLastBoundary", NFC, lastBoundaryF, lastBoundaryTests) +} + +var quickSpanTests = []PositionTest{ + {"", 0, ""}, + // starters + {"a", 1, ""}, + {"abc", 3, ""}, + {"\u043Eb", 3, ""}, + // incomplete last rune. + {"\xCC", 1, ""}, + {"a\xCC", 2, ""}, + // incorrectly ordered combining characters + {"\u0300\u0316", 0, ""}, + {"\u0300\u0316cd", 0, ""}, + // have a maximum number of combining characters. + {rep(0x035D, 30) + "\u035B", 0, ""}, + {"a" + rep(0x035D, 30) + "\u035B", 0, ""}, + {"ÆŸ" + rep(0x035D, 30) + "\u035B", 0, ""}, + {"aa" + rep(0x035D, 30) + "\u035B", 1, ""}, + {rep(0x035D, 30) + cgj + "\u035B", 64, ""}, + {"a" + rep(0x035D, 30) + cgj + "\u035B", 65, ""}, + {"ÆŸ" + rep(0x035D, 30) + cgj + "\u035B", 66, ""}, + {"aa" + rep(0x035D, 30) + cgj + "\u035B", 66, ""}, +} + +var quickSpanNFDTests = []PositionTest{ + // needs decomposing + {"\u00C0", 0, ""}, + {"abc\u00C0", 3, ""}, + // correctly ordered combining characters + {"\u0300", 2, ""}, + {"ab\u0300", 4, ""}, + {"ab\u0300cd", 6, ""}, + {"\u0300cd", 4, ""}, + {"\u0316\u0300", 4, ""}, + {"ab\u0316\u0300", 6, ""}, + {"ab\u0316\u0300cd", 8, ""}, + {"ab\u0316\u0300\u00C0", 6, ""}, + {"\u0316\u0300cd", 6, ""}, + {"\u043E\u0308b", 5, ""}, + // incorrectly ordered combining characters + {"ab\u0300\u0316", 1, ""}, // TODO: we could skip 'b' as well. + {"ab\u0300\u0316cd", 1, ""}, + // Hangul + {"ê°™ì€", 0, ""}, +} + +var quickSpanNFCTests = []PositionTest{ + // okay composed + {"\u00C0", 2, ""}, + {"abc\u00C0", 5, ""}, + // correctly ordered combining characters + {"ab\u0300", 1, ""}, + {"ab\u0300cd", 1, ""}, + {"ab\u0316\u0300", 1, ""}, + {"ab\u0316\u0300cd", 1, ""}, + {"\u00C0\u035D", 4, ""}, + // we do not special case leading combining characters + {"\u0300cd", 0, ""}, + {"\u0300", 0, ""}, + {"\u0316\u0300", 0, ""}, + {"\u0316\u0300cd", 0, ""}, + // incorrectly ordered combining characters + {"ab\u0300\u0316", 1, ""}, + {"ab\u0300\u0316cd", 1, ""}, + // Hangul + {"ê°™ì€", 6, ""}, + // We return the start of the violating segment in case of overflow. + {grave(30) + "\uff9e", 0, ""}, + {grave(30), 0, ""}, +} + +func doQuickSpan(rb *reorderBuffer, s string) (int, []byte) { + return rb.f.form.QuickSpan([]byte(s)), nil +} + +func doQuickSpanString(rb *reorderBuffer, s string) (int, []byte) { + return rb.f.form.QuickSpanString(s), nil +} + +func TestQuickSpan(t *testing.T) { + runPosTests(t, "TestQuickSpanNFD1", NFD, doQuickSpan, quickSpanTests) + runPosTests(t, "TestQuickSpanNFD2", NFD, doQuickSpan, quickSpanNFDTests) + runPosTests(t, "TestQuickSpanNFC1", NFC, doQuickSpan, quickSpanTests) + runPosTests(t, "TestQuickSpanNFC2", NFC, doQuickSpan, quickSpanNFCTests) + + runPosTests(t, "TestQuickSpanStringNFD1", NFD, doQuickSpanString, quickSpanTests) + runPosTests(t, "TestQuickSpanStringNFD2", NFD, doQuickSpanString, quickSpanNFDTests) + runPosTests(t, "TestQuickSpanStringNFC1", NFC, doQuickSpanString, quickSpanTests) + runPosTests(t, "TestQuickSpanStringNFC2", NFC, doQuickSpanString, quickSpanNFCTests) +} + +var isNormalTests = []PositionTest{ + {"", 1, ""}, + // illegal runes + {"\xff", 1, ""}, + // starters + {"a", 1, ""}, + {"abc", 1, ""}, + {"\u043Eb", 1, ""}, + // incorrectly ordered combining characters + {"\u0300\u0316", 0, ""}, + {"ab\u0300\u0316", 0, ""}, + {"ab\u0300\u0316cd", 0, ""}, + {"\u0300\u0316cd", 0, ""}, +} +var isNormalNFDTests = []PositionTest{ + // needs decomposing + {"\u00C0", 0, ""}, + {"abc\u00C0", 0, ""}, + // correctly ordered combining characters + {"\u0300", 1, ""}, + {"ab\u0300", 1, ""}, + {"ab\u0300cd", 1, ""}, + {"\u0300cd", 1, ""}, + {"\u0316\u0300", 1, ""}, + {"ab\u0316\u0300", 1, ""}, + {"ab\u0316\u0300cd", 1, ""}, + {"\u0316\u0300cd", 1, ""}, + {"\u043E\u0308b", 1, ""}, + // Hangul + {"ê°™ì€", 0, ""}, +} +var isNormalNFCTests = []PositionTest{ + // okay composed + {"\u00C0", 1, ""}, + {"abc\u00C0", 1, ""}, + // need reordering + {"a\u0300", 0, ""}, + {"a\u0300cd", 0, ""}, + {"a\u0316\u0300", 0, ""}, + {"a\u0316\u0300cd", 0, ""}, + // correctly ordered combining characters + {"ab\u0300", 1, ""}, + {"ab\u0300cd", 1, ""}, + {"ab\u0316\u0300", 1, ""}, + {"ab\u0316\u0300cd", 1, ""}, + {"\u00C0\u035D", 1, ""}, + {"\u0300", 1, ""}, + {"\u0316\u0300cd", 1, ""}, + // Hangul + {"ê°™ì€", 1, ""}, +} + +var isNormalNFKXTests = []PositionTest{ + // Special case. + {"\u00BC", 0, ""}, +} + +func isNormalF(rb *reorderBuffer, s string) (int, []byte) { + if rb.f.form.IsNormal([]byte(s)) { + return 1, nil + } + return 0, nil +} + +func isNormalStringF(rb *reorderBuffer, s string) (int, []byte) { + if rb.f.form.IsNormalString(s) { + return 1, nil + } + return 0, nil +} + +func TestIsNormal(t *testing.T) { + runPosTests(t, "TestIsNormalNFD1", NFD, isNormalF, isNormalTests) + runPosTests(t, "TestIsNormalNFD2", NFD, isNormalF, isNormalNFDTests) + runPosTests(t, "TestIsNormalNFC1", NFC, isNormalF, isNormalTests) + runPosTests(t, "TestIsNormalNFC2", NFC, isNormalF, isNormalNFCTests) + runPosTests(t, "TestIsNormalNFKD1", NFKD, isNormalF, isNormalTests) + runPosTests(t, "TestIsNormalNFKD2", NFKD, isNormalF, isNormalNFDTests) + runPosTests(t, "TestIsNormalNFKD3", NFKD, isNormalF, isNormalNFKXTests) + runPosTests(t, "TestIsNormalNFKC1", NFKC, isNormalF, isNormalTests) + runPosTests(t, "TestIsNormalNFKC2", NFKC, isNormalF, isNormalNFCTests) + runPosTests(t, "TestIsNormalNFKC3", NFKC, isNormalF, isNormalNFKXTests) +} + +func TestIsNormalString(t *testing.T) { + runPosTests(t, "TestIsNormalNFD1", NFD, isNormalStringF, isNormalTests) + runPosTests(t, "TestIsNormalNFD2", NFD, isNormalStringF, isNormalNFDTests) + runPosTests(t, "TestIsNormalNFC1", NFC, isNormalStringF, isNormalTests) + runPosTests(t, "TestIsNormalNFC2", NFC, isNormalStringF, isNormalNFCTests) +} + +type AppendTest struct { + left string + right string + out string +} + +type appendFunc func(f Form, out []byte, s string) []byte + +var fstr = []string{"NFC", "NFD", "NFKC", "NFKD"} + +func runNormTests(t *testing.T, name string, fn appendFunc) { + for f := NFC; f <= NFKD; f++ { + runAppendTests(t, name, f, fn, normTests[f]) + } +} + +func runAppendTests(t *testing.T, name string, f Form, fn appendFunc, tests []AppendTest) { + for i, test := range tests { + if *testn >= 0 && i != *testn { + continue + } + out := []byte(test.left) + have := string(fn(f, out, test.right)) + if len(have) != len(test.out) { + t.Errorf("%s.%s:%d: length is %d; want %d (%+q vs %+q)", fstr[f], name, i, len(have), len(test.out), pc(have), pc(test.out)) + } + if have != test.out { + k, pf := pidx(have, test.out) + t.Errorf("%s.%s:%d: \nwas %s%+q; \nwant %s%+q", fstr[f], name, i, pf, pc(have[k:]), pf, pc(test.out[k:])) + } + + // Bootstrap by normalizing input. Ensures that the various variants + // behave the same. + for g := NFC; g <= NFKD; g++ { + if f == g { + continue + } + want := g.String(test.left + test.right) + have := string(fn(g, g.AppendString(nil, test.left), test.right)) + if len(have) != len(want) { + t.Errorf("%s(%s.%s):%d: length is %d; want %d (%+q vs %+q)", fstr[g], fstr[f], name, i, len(have), len(want), pc(have), pc(want)) + } + if have != want { + k, pf := pidx(have, want) + t.Errorf("%s(%s.%s):%d: \nwas %s%+q; \nwant %s%+q", fstr[g], fstr[f], name, i, pf, pc(have[k:]), pf, pc(want[k:])) + } + } + } +} + +var normTests = [][]AppendTest{ + appendTestsNFC, + appendTestsNFD, + appendTestsNFKC, + appendTestsNFKD, +} + +var appendTestsNFC = []AppendTest{ + {"", ascii, ascii}, + {"", txt_all, txt_all}, + {"\uff9e", grave(30), "\uff9e" + grave(29) + cgj + grave(1)}, + {grave(30), "\uff9e", grave(30) + cgj + "\uff9e"}, + + // Tests designed for Iter. + { // ordering of non-composing combining characters + "", + "\u0305\u0316", + "\u0316\u0305", + }, + { // segment overflow + "", + "a" + rep(0x0305, maxNonStarters+4) + "\u0316", + "a" + rep(0x0305, maxNonStarters) + cgj + "\u0316" + rep(0x305, 4), + }, + + { // Combine across non-blocking non-starters. + // U+0327 COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; + // U+0325 COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; + "", "a\u0327\u0325", "\u1e01\u0327", + }, + + { // Jamo V+T does not combine. + "", + "\u1161\u11a8", + "\u1161\u11a8", + }, + + // Stability tests: see http://www.unicode.org/review/pr-29.html. + {"", "\u0b47\u0300\u0b3e", "\u0b47\u0300\u0b3e"}, + {"", "\u1100\u0300\u1161", "\u1100\u0300\u1161"}, + {"", "\u0b47\u0b3e", "\u0b4b"}, + {"", "\u1100\u1161", "\uac00"}, + + // U+04DA MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; + { // 0d4a starts a new segment. + "", + "\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\u0d3e", 15), + "\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\u0d3e", 15), + }, + + { // Split combining characters. + // TODO: don't insert CGJ before starters. + "", + "\u0d46" + strings.Repeat("\u0d3e", 31), + "\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e", + }, + + { // Split combining characters. + "", + "\u0d4a" + strings.Repeat("\u0d3e", 30), + "\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e", + }, +} + +var appendTestsNFD = []AppendTest{ +// TODO: Move some of the tests here. +} + +var appendTestsNFKC = []AppendTest{ + // empty buffers + {"", "", ""}, + {"a", "", "a"}, + {"", "a", "a"}, + {"", "\u0041\u0307\u0304", "\u01E0"}, + // segment split across buffers + {"", "a\u0300b", "\u00E0b"}, + {"a", "\u0300b", "\u00E0b"}, + {"a", "\u0300\u0316", "\u00E0\u0316"}, + {"a", "\u0316\u0300", "\u00E0\u0316"}, + {"a", "\u0300a\u0300", "\u00E0\u00E0"}, + {"a", "\u0300a\u0300a\u0300", "\u00E0\u00E0\u00E0"}, + {"a", "\u0300aaa\u0300aaa\u0300", "\u00E0aa\u00E0aa\u00E0"}, + {"a\u0300", "\u0327", "\u00E0\u0327"}, + {"a\u0327", "\u0300", "\u00E0\u0327"}, + {"a\u0316", "\u0300", "\u00E0\u0316"}, + {"\u0041\u0307", "\u0304", "\u01E0"}, + // Hangul + {"", "\u110B\u1173", "\uC73C"}, + {"", "\u1103\u1161", "\uB2E4"}, + {"", "\u110B\u1173\u11B7", "\uC74C"}, + {"", "\u320E", "\x28\uAC00\x29"}, + {"", "\x28\u1100\u1161\x29", "\x28\uAC00\x29"}, + {"\u1103", "\u1161", "\uB2E4"}, + {"\u110B", "\u1173\u11B7", "\uC74C"}, + {"\u110B\u1173", "\u11B7", "\uC74C"}, + {"\uC73C", "\u11B7", "\uC74C"}, + // UTF-8 encoding split across buffers + {"a\xCC", "\x80", "\u00E0"}, + {"a\xCC", "\x80b", "\u00E0b"}, + {"a\xCC", "\x80a\u0300", "\u00E0\u00E0"}, + {"a\xCC", "\x80\x80", "\u00E0\x80"}, + {"a\xCC", "\x80\xCC", "\u00E0\xCC"}, + {"a\u0316\xCC", "\x80a\u0316\u0300", "\u00E0\u0316\u00E0\u0316"}, + // ending in incomplete UTF-8 encoding + {"", "\xCC", "\xCC"}, + {"a", "\xCC", "a\xCC"}, + {"a", "b\xCC", "ab\xCC"}, + {"\u0226", "\xCC", "\u0226\xCC"}, + // illegal runes + {"", "\x80", "\x80"}, + {"", "\x80\x80\x80", "\x80\x80\x80"}, + {"", "\xCC\x80\x80\x80", "\xCC\x80\x80\x80"}, + {"", "a\x80", "a\x80"}, + {"", "a\x80\x80\x80", "a\x80\x80\x80"}, + {"", "a\x80\x80\x80\x80\x80\x80", "a\x80\x80\x80\x80\x80\x80"}, + {"a", "\x80\x80\x80", "a\x80\x80\x80"}, + // overflow + {"", strings.Repeat("\x80", 33), strings.Repeat("\x80", 33)}, + {strings.Repeat("\x80", 33), "", strings.Repeat("\x80", 33)}, + {strings.Repeat("\x80", 33), strings.Repeat("\x80", 33), strings.Repeat("\x80", 66)}, + // overflow of combining characters + {"", grave(34), grave(30) + cgj + grave(4)}, + {"", grave(36), grave(30) + cgj + grave(6)}, + {grave(29), grave(5), grave(30) + cgj + grave(4)}, + {grave(30), grave(4), grave(30) + cgj + grave(4)}, + {grave(30), grave(3), grave(30) + cgj + grave(3)}, + {grave(30) + "\xCC", "\x80", grave(30) + cgj + grave(1)}, + {"", "\uFDFA" + grave(14), "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064a\u0647 \u0648\u0633\u0644\u0645" + grave(14)}, + {"", "\uFDFA" + grave(28) + "\u0316", "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064a\u0647 \u0648\u0633\u0644\u0645\u0316" + grave(28)}, + // - First rune has a trailing non-starter. + {"\u00d5", grave(30), "\u00d5" + grave(29) + cgj + grave(1)}, + // - U+FF9E decomposes into a non-starter in compatibility mode. A CGJ must be + // inserted even when FF9E starts a new segment. + {"\uff9e", grave(30), "\u3099" + grave(29) + cgj + grave(1)}, + {grave(30), "\uff9e", grave(30) + cgj + "\u3099"}, + // - Many non-starter decompositions in a row causing overflow. + {"", rep(0x340, 31), rep(0x300, 30) + cgj + "\u0300"}, + {"", rep(0xFF9E, 31), rep(0x3099, 30) + cgj + "\u3099"}, + // weird UTF-8 + {"\u00E0\xE1", "\x86", "\u00E0\xE1\x86"}, + {"a\u0300\u11B7", "\u0300", "\u00E0\u11B7\u0300"}, + {"a\u0300\u11B7\u0300", "\u0300", "\u00E0\u11B7\u0300\u0300"}, + {"\u0300", "\xF8\x80\x80\x80\x80\u0300", "\u0300\xF8\x80\x80\x80\x80\u0300"}, + {"\u0300", "\xFC\x80\x80\x80\x80\x80\u0300", "\u0300\xFC\x80\x80\x80\x80\x80\u0300"}, + {"\xF8\x80\x80\x80\x80\u0300", "\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"}, + {"\xFC\x80\x80\x80\x80\x80\u0300", "\u0300", "\xFC\x80\x80\x80\x80\x80\u0300\u0300"}, + {"\xF8\x80\x80\x80", "\x80\u0300\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"}, + + {"", strings.Repeat("a\u0316\u0300", 6), strings.Repeat("\u00E0\u0316", 6)}, + // large input. + {"", strings.Repeat("a\u0300\u0316", 4000), strings.Repeat("\u00E0\u0316", 4000)}, + {"", strings.Repeat("\x80\x80", 4000), strings.Repeat("\x80\x80", 4000)}, + {"", "\u0041\u0307\u0304", "\u01E0"}, +} + +var appendTestsNFKD = []AppendTest{ + {"", "a" + grave(64), "a" + grave(30) + cgj + grave(30) + cgj + grave(4)}, + + { // segment overflow on unchanged character + "", + "a" + grave(64) + "\u0316", + "a" + grave(30) + cgj + grave(30) + cgj + "\u0316" + grave(4), + }, + { // segment overflow on unchanged character + start value + "", + "a" + grave(98) + "\u0316", + "a" + grave(30) + cgj + grave(30) + cgj + grave(30) + cgj + "\u0316" + grave(8), + }, + { // segment overflow on decomposition. (U+0340 decomposes to U+0300.) + "", + "a" + grave(59) + "\u0340", + "a" + grave(30) + cgj + grave(30), + }, + { // segment overflow on non-starter decomposition + "", + "a" + grave(33) + "\u0340" + grave(30) + "\u0320", + "a" + grave(30) + cgj + grave(30) + cgj + "\u0320" + grave(4), + }, + { // start value after ASCII overflow + "", + rep('a', segSize) + grave(32) + "\u0320", + rep('a', segSize) + grave(30) + cgj + "\u0320" + grave(2), + }, + { // Jamo overflow + "", + "\u1100\u1161" + grave(30) + "\u0320" + grave(2), + "\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), + }, + { // Hangul + "", + "\uac00", + "\u1100\u1161", + }, + { // Hangul overflow + "", + "\uac00" + grave(32) + "\u0320", + "\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), + }, + { // Hangul overflow in Hangul mode. + "", + "\uac00\uac00" + grave(32) + "\u0320", + "\u1100\u1161\u1100\u1161" + grave(29) + cgj + "\u0320" + grave(3), + }, + { // Hangul overflow in Hangul mode. + "", + strings.Repeat("\uac00", 3) + grave(32) + "\u0320", + strings.Repeat("\u1100\u1161", 3) + grave(29) + cgj + "\u0320" + grave(3), + }, + { // start value after cc=0 + "", + "您您" + grave(34) + "\u0320", + "您您" + grave(30) + cgj + "\u0320" + grave(4), + }, + { // start value after normalization + "", + "\u0300\u0320a" + grave(34) + "\u0320", + "\u0320\u0300a" + grave(30) + cgj + "\u0320" + grave(4), + }, +} + +func TestAppend(t *testing.T) { + runNormTests(t, "Append", func(f Form, out []byte, s string) []byte { + return f.Append(out, []byte(s)...) + }) +} + +func TestAppendString(t *testing.T) { + runNormTests(t, "AppendString", func(f Form, out []byte, s string) []byte { + return f.AppendString(out, s) + }) +} + +func TestBytes(t *testing.T) { + runNormTests(t, "Bytes", func(f Form, out []byte, s string) []byte { + buf := []byte{} + buf = append(buf, out...) + buf = append(buf, s...) + return f.Bytes(buf) + }) +} + +func TestString(t *testing.T) { + runNormTests(t, "String", func(f Form, out []byte, s string) []byte { + outs := string(out) + s + return []byte(f.String(outs)) + }) +} + +func appendBench(f Form, in []byte) func() { + buf := make([]byte, 0, 4*len(in)) + return func() { + f.Append(buf, in...) + } +} + +func bytesBench(f Form, in []byte) func() { + return func() { + f.Bytes(in) + } +} + +func iterBench(f Form, in []byte) func() { + iter := Iter{} + return func() { + iter.Init(f, in) + for !iter.Done() { + iter.Next() + } + } +} + +func transformBench(f Form, in []byte) func() { + buf := make([]byte, 4*len(in)) + return func() { + if _, n, err := f.Transform(buf, in, true); err != nil || len(in) != n { + log.Panic(n, len(in), err) + } + } +} + +func readerBench(f Form, in []byte) func() { + buf := make([]byte, 4*len(in)) + return func() { + r := f.Reader(bytes.NewReader(in)) + var err error + for err == nil { + _, err = r.Read(buf) + } + if err != io.EOF { + panic("") + } + } +} + +func writerBench(f Form, in []byte) func() { + buf := make([]byte, 0, 4*len(in)) + return func() { + r := f.Writer(bytes.NewBuffer(buf)) + if _, err := r.Write(in); err != nil { + panic("") + } + } +} + +func appendBenchmarks(bm []func(), f Form, in []byte) []func() { + bm = append(bm, appendBench(f, in)) + bm = append(bm, iterBench(f, in)) + bm = append(bm, transformBench(f, in)) + bm = append(bm, readerBench(f, in)) + bm = append(bm, writerBench(f, in)) + return bm +} + +func doFormBenchmark(b *testing.B, inf, f Form, s string) { + b.StopTimer() + in := inf.Bytes([]byte(s)) + bm := appendBenchmarks(nil, f, in) + b.SetBytes(int64(len(in) * len(bm))) + b.StartTimer() + for i := 0; i < b.N; i++ { + for _, fn := range bm { + fn() + } + } +} + +func doSingle(b *testing.B, f func(Form, []byte) func(), s []byte) { + b.StopTimer() + fn := f(NFC, s) + b.SetBytes(int64(len(s))) + b.StartTimer() + for i := 0; i < b.N; i++ { + fn() + } +} + +var ( + smallNoChange = []byte("nörmalization") + smallChange = []byte("No\u0308rmalization") + ascii = strings.Repeat("There is nothing to change here! ", 500) +) + +func lowerBench(f Form, in []byte) func() { + // Use package strings instead of bytes as it doesn't allocate memory + // if there aren't any changes. + s := string(in) + return func() { + strings.ToLower(s) + } +} + +func BenchmarkLowerCaseNoChange(b *testing.B) { + doSingle(b, lowerBench, smallNoChange) +} +func BenchmarkLowerCaseChange(b *testing.B) { + doSingle(b, lowerBench, smallChange) +} + +func quickSpanBench(f Form, in []byte) func() { + return func() { + f.QuickSpan(in) + } +} + +func BenchmarkQuickSpanChangeNFC(b *testing.B) { + doSingle(b, quickSpanBench, smallNoChange) +} + +func BenchmarkBytesNoChangeNFC(b *testing.B) { + doSingle(b, bytesBench, smallNoChange) +} +func BenchmarkBytesChangeNFC(b *testing.B) { + doSingle(b, bytesBench, smallChange) +} + +func BenchmarkAppendNoChangeNFC(b *testing.B) { + doSingle(b, appendBench, smallNoChange) +} +func BenchmarkAppendChangeNFC(b *testing.B) { + doSingle(b, appendBench, smallChange) +} +func BenchmarkAppendLargeNFC(b *testing.B) { + doSingle(b, appendBench, txt_all_bytes) +} + +func BenchmarkIterNoChangeNFC(b *testing.B) { + doSingle(b, iterBench, smallNoChange) +} +func BenchmarkIterChangeNFC(b *testing.B) { + doSingle(b, iterBench, smallChange) +} +func BenchmarkIterLargeNFC(b *testing.B) { + doSingle(b, iterBench, txt_all_bytes) +} + +func BenchmarkTransformNoChangeNFC(b *testing.B) { + doSingle(b, transformBench, smallNoChange) +} +func BenchmarkTransformChangeNFC(b *testing.B) { + doSingle(b, transformBench, smallChange) +} +func BenchmarkTransformLargeNFC(b *testing.B) { + doSingle(b, transformBench, txt_all_bytes) +} + +func BenchmarkNormalizeAsciiNFC(b *testing.B) { + doFormBenchmark(b, NFC, NFC, ascii) +} +func BenchmarkNormalizeAsciiNFD(b *testing.B) { + doFormBenchmark(b, NFC, NFD, ascii) +} +func BenchmarkNormalizeAsciiNFKC(b *testing.B) { + doFormBenchmark(b, NFC, NFKC, ascii) +} +func BenchmarkNormalizeAsciiNFKD(b *testing.B) { + doFormBenchmark(b, NFC, NFKD, ascii) +} + +func BenchmarkNormalizeNFC2NFC(b *testing.B) { + doFormBenchmark(b, NFC, NFC, txt_all) +} +func BenchmarkNormalizeNFC2NFD(b *testing.B) { + doFormBenchmark(b, NFC, NFD, txt_all) +} +func BenchmarkNormalizeNFD2NFC(b *testing.B) { + doFormBenchmark(b, NFD, NFC, txt_all) +} +func BenchmarkNormalizeNFD2NFD(b *testing.B) { + doFormBenchmark(b, NFD, NFD, txt_all) +} + +// Hangul is often special-cased, so we test it separately. +func BenchmarkNormalizeHangulNFC2NFC(b *testing.B) { + doFormBenchmark(b, NFC, NFC, txt_kr) +} +func BenchmarkNormalizeHangulNFC2NFD(b *testing.B) { + doFormBenchmark(b, NFC, NFD, txt_kr) +} +func BenchmarkNormalizeHangulNFD2NFC(b *testing.B) { + doFormBenchmark(b, NFD, NFC, txt_kr) +} +func BenchmarkNormalizeHangulNFD2NFD(b *testing.B) { + doFormBenchmark(b, NFD, NFD, txt_kr) +} + +var forms = []Form{NFC, NFD, NFKC, NFKD} + +func doTextBenchmark(b *testing.B, s string) { + b.StopTimer() + in := []byte(s) + bm := []func(){} + for _, f := range forms { + bm = appendBenchmarks(bm, f, in) + } + b.SetBytes(int64(len(s) * len(bm))) + b.StartTimer() + for i := 0; i < b.N; i++ { + for _, f := range bm { + f() + } + } +} + +func BenchmarkCanonicalOrdering(b *testing.B) { + doTextBenchmark(b, txt_canon) +} +func BenchmarkExtendedLatin(b *testing.B) { + doTextBenchmark(b, txt_vn) +} +func BenchmarkMiscTwoByteUtf8(b *testing.B) { + doTextBenchmark(b, twoByteUtf8) +} +func BenchmarkMiscThreeByteUtf8(b *testing.B) { + doTextBenchmark(b, threeByteUtf8) +} +func BenchmarkHangul(b *testing.B) { + doTextBenchmark(b, txt_kr) +} +func BenchmarkJapanese(b *testing.B) { + doTextBenchmark(b, txt_jp) +} +func BenchmarkChinese(b *testing.B) { + doTextBenchmark(b, txt_cn) +} +func BenchmarkOverflow(b *testing.B) { + doTextBenchmark(b, overflow) +} + +var overflow = string(bytes.Repeat([]byte("\u035D"), 4096)) + "\u035B" + +// Tests sampled from the Canonical ordering tests (Part 2) of +// http://unicode.org/Public/UNIDATA/NormalizationTest.txt +const txt_canon = `\u0061\u0315\u0300\u05AE\u0300\u0062 \u0061\u0300\u0315\u0300\u05AE\u0062 +\u0061\u0302\u0315\u0300\u05AE\u0062 \u0061\u0307\u0315\u0300\u05AE\u0062 +\u0061\u0315\u0300\u05AE\u030A\u0062 \u0061\u059A\u0316\u302A\u031C\u0062 +\u0061\u032E\u059A\u0316\u302A\u0062 \u0061\u0338\u093C\u0334\u0062 +\u0061\u059A\u0316\u302A\u0339 \u0061\u0341\u0315\u0300\u05AE\u0062 +\u0061\u0348\u059A\u0316\u302A\u0062 \u0061\u0361\u0345\u035D\u035C\u0062 +\u0061\u0366\u0315\u0300\u05AE\u0062 \u0061\u0315\u0300\u05AE\u0486\u0062 +\u0061\u05A4\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0613\u0062 +\u0061\u0315\u0300\u05AE\u0615\u0062 \u0061\u0617\u0315\u0300\u05AE\u0062 +\u0061\u0619\u0618\u064D\u064E\u0062 \u0061\u0315\u0300\u05AE\u0654\u0062 +\u0061\u0315\u0300\u05AE\u06DC\u0062 \u0061\u0733\u0315\u0300\u05AE\u0062 +\u0061\u0744\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0745\u0062 +\u0061\u09CD\u05B0\u094D\u3099\u0062 \u0061\u0E38\u0E48\u0E38\u0C56\u0062 +\u0061\u0EB8\u0E48\u0E38\u0E49\u0062 \u0061\u0F72\u0F71\u0EC8\u0F71\u0062 +\u0061\u1039\u05B0\u094D\u3099\u0062 \u0061\u05B0\u094D\u3099\u1A60\u0062 +\u0061\u3099\u093C\u0334\u1BE6\u0062 \u0061\u3099\u093C\u0334\u1C37\u0062 +\u0061\u1CD9\u059A\u0316\u302A\u0062 \u0061\u2DED\u0315\u0300\u05AE\u0062 +\u0061\u2DEF\u0315\u0300\u05AE\u0062 \u0061\u302D\u302E\u059A\u0316\u0062` + +// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/ +const txt_vn = `Vá»›i các Ä‘iá»u kiện sau: Ghi nhận công của tác giả. +Nếu bạn sá»­ dụng, chuyển đổi, hoặc xây dá»±ng dá»± án từ +ná»™i dung được chia sẻ này, bạn phải áp dụng giấy phép này hoặc +má»™t giấy phép khác có các Ä‘iá»u khoản tÆ°Æ¡ng tá»± nhÆ° giấy phép này +cho dá»± án của bạn. Hiểu rằng: Miá»…n — Bất kỳ các Ä‘iá»u kiện nào +trên đây cÅ©ng có thể được miá»…n bá» nếu bạn được sá»± cho phép của +ngÆ°á»i sở hữu bản quyá»n. Phạm vi công chúng — Khi tác phẩm hoặc +bất kỳ chÆ°Æ¡ng nào của tác phẩm đã trong vùng dành cho công +chúng theo quy định của pháp luật thì tình trạng của nó không +bị ảnh hưởng bởi giấy phép trong bất kỳ trÆ°á»ng hợp nào.` + +// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru +const txt_ru = `При обÑзательном Ñоблюдении Ñледующих уÑловий: +Attribution — Ð’Ñ‹ должны атрибутировать произведение (указывать +автора и иÑточник) в порÑдке, предуÑмотренном автором или +лицензиаром (но только так, чтобы никоим образом не подразумевалоÑÑŒ, +что они поддерживают Ð²Ð°Ñ Ð¸Ð»Ð¸ иÑпользование вами данного произведениÑ). +Υπό τις ακόλουθες Ï€Ïοϋποθέσεις:` + +// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/ +const txt_gr = `ΑναφοÏά ΔημιουÏÎ³Î¿Ï â€” Θα Ï€Ïέπει να κάνετε την αναφοÏά στο έÏγο με τον +Ï„Ïόπο που έχει οÏιστεί από το δημιουÏγό ή το χοÏηγοÏντο την άδεια +(χωÏίς όμως να εννοείται με οποιονδήποτε Ï„Ïόπο ότι εγκÏίνουν εσάς ή +τη χÏήση του έÏγου από εσάς). ΠαÏόμοια Διανομή — Εάν αλλοιώσετε, +Ï„Ïοποποιήσετε ή δημιουÏγήσετε πεÏαιτέÏω βασισμένοι στο έÏγο θα +μποÏείτε να διανέμετε το έÏγο που θα Ï€ÏοκÏψει μόνο με την ίδια ή +παÏόμοια άδεια.` + +// Taken from http://creativecommons.org/licenses/by-sa/3.0/deed.ar +const txt_ar = `بموجب الشروط التالية نسب المصن٠— يجب عليك أن +تنسب العمل بالطريقة التي تحددها المؤل٠أو المرخص (ولكن ليس بأي حال من +الأحوال أن توحي وتقترح بتحول أو استخدامك للعمل). +المشاركة على قدم المساواة — إذا كنت يعدل ØŒ والتغيير ØŒ أو الاستÙادة +من هذا العمل ØŒ قد ينتج عن توزيع العمل إلا ÙÙŠ ظل تشابه او تطابق ÙÙ‰ واحد +لهذا الترخيص.` + +// Taken from http://creativecommons.org/licenses/by-sa/1.0/il/ +const txt_il = `בכפוף לתנ××™× ×”×‘××™×: ייחוס — עליך לייחס ×ת היצירה (לתת קרדיט) ב×ופן +המצויין על-ידי היוצר ×ו מעניק הרישיון (×ך ×œ× ×‘×©×•× ×ופן המרמז על כך +×©×”× ×ª×•×ž×›×™× ×‘×š ×ו בשימוש שלך ביצירה). שיתוף ×–×”×” — ×× ×ª×—×œ×™×˜/×™ לשנות, +לעבד ×ו ליצור יצירה נגזרת בהסתמך על יצירה זו, תוכל/×™ להפיץ ×ת יצירתך +החדשה רק תחת ×ותו הרישיון ×ו רישיון דומה לרישיון ×–×”.` + +const twoByteUtf8 = txt_ru + txt_gr + txt_ar + txt_il + +// Taken from http://creativecommons.org/licenses/by-sa/2.0/kr/ +const txt_kr = `다ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ 합니다: 저작ìží‘œì‹œ +(Attribution) — 저작ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ 방법으로 ì €ìž‘ë¬¼ì˜ +ì›ì €ìž‘ìžë¥¼ 표시하여야 합니다(그러나 ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜ +ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ 추천한다는 ì˜ë¯¸ë¡œ 표시해서는 안ë©ë‹ˆë‹¤). +ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ — ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ 만든 ì´ì°¨ì  저작물ì—는 본 +ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ 합니다.` + +// Taken from http://creativecommons.org/licenses/by-sa/3.0/th/ +const txt_th = `ภายใต้เงื่อนไข ดังต่อไปนี้ : à¹à¸ªà¸”งที่มา — คุณต้องà¹à¸ªà¸”งที่ +มาของงานดังà¸à¸¥à¹ˆà¸²à¸§ ตามรูปà¹à¸šà¸šà¸—ี่ผู้สร้างสรรค์หรือผู้อนุà¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ +ไม่ใช่ในลัà¸à¸©à¸“ะที่ว่า พวà¸à¹€à¸‚าสนับสนุนคุณหรือสนับสนุนà¸à¸²à¸£à¸—ี่ +คุณนำงานไปใช้) อนุà¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™ — หาà¸à¸„ุณดัดà¹à¸›à¸¥à¸‡ เปลี่ยนรูป หรื +อต่อเติมงานนี้ คุณต้องใช้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”ียวà¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—ี่เหมื +อนà¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—ี่ใช้à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—่านั้น` + +const threeByteUtf8 = txt_th + +// Taken from http://creativecommons.org/licenses/by-sa/2.0/jp/ +const txt_jp = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ +表示 — ã‚ãªãŸã¯åŽŸè‘—作者ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’表示ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 +継承 — ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“を改変ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€ +ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿ +頒布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚` + +// http://creativecommons.org/licenses/by-sa/2.5/cn/ +const txt_cn = `您å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€ +广播或通过信æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“ +对本作å“进行商业性使用 惟须éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š +ç½²å — 您必须按照作者或者许å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“进行署å。 +相åŒæ–¹å¼å…±äº« — 如果您改å˜ã€è½¬æ¢æœ¬ä½œå“或者以本作å“为基础进行创作, +您åªèƒ½é‡‡ç”¨ä¸Žæœ¬å议相åŒçš„许å¯åè®®å‘布基于本作å“的演绎作å“。` + +const txt_cjk = txt_cn + txt_jp + txt_kr +const txt_all = txt_vn + twoByteUtf8 + threeByteUtf8 + txt_cjk + +var txt_all_bytes = []byte(txt_all) diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go new file mode 100644 index 00000000..4fa0e04b --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/readwriter.go @@ -0,0 +1,126 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import "io" + +type normWriter struct { + rb reorderBuffer + w io.Writer + buf []byte +} + +// Write implements the standard write interface. If the last characters are +// not at a normalization boundary, the bytes will be buffered for the next +// write. The remaining bytes will be written on close. +func (w *normWriter) Write(data []byte) (n int, err error) { + // Process data in pieces to keep w.buf size bounded. + const chunk = 4000 + + for len(data) > 0 { + // Normalize into w.buf. + m := len(data) + if m > chunk { + m = chunk + } + w.rb.src = inputBytes(data[:m]) + w.rb.nsrc = m + w.buf = doAppend(&w.rb, w.buf, 0) + data = data[m:] + n += m + + // Write out complete prefix, save remainder. + // Note that lastBoundary looks back at most 31 runes. + i := lastBoundary(&w.rb.f, w.buf) + if i == -1 { + i = 0 + } + if i > 0 { + if _, err = w.w.Write(w.buf[:i]); err != nil { + break + } + bn := copy(w.buf, w.buf[i:]) + w.buf = w.buf[:bn] + } + } + return n, err +} + +// Close forces data that remains in the buffer to be written. +func (w *normWriter) Close() error { + if len(w.buf) > 0 { + _, err := w.w.Write(w.buf) + if err != nil { + return err + } + } + return nil +} + +// Writer returns a new writer that implements Write(b) +// by writing f(b) to w. The returned writer may use an +// an internal buffer to maintain state across Write calls. +// Calling its Close method writes any buffered data to w. +func (f Form) Writer(w io.Writer) io.WriteCloser { + wr := &normWriter{rb: reorderBuffer{}, w: w} + wr.rb.init(f, nil) + return wr +} + +type normReader struct { + rb reorderBuffer + r io.Reader + inbuf []byte + outbuf []byte + bufStart int + lastBoundary int + err error +} + +// Read implements the standard read interface. +func (r *normReader) Read(p []byte) (int, error) { + for { + if r.lastBoundary-r.bufStart > 0 { + n := copy(p, r.outbuf[r.bufStart:r.lastBoundary]) + r.bufStart += n + if r.lastBoundary-r.bufStart > 0 { + return n, nil + } + return n, r.err + } + if r.err != nil { + return 0, r.err + } + outn := copy(r.outbuf, r.outbuf[r.lastBoundary:]) + r.outbuf = r.outbuf[0:outn] + r.bufStart = 0 + + n, err := r.r.Read(r.inbuf) + r.rb.src = inputBytes(r.inbuf[0:n]) + r.rb.nsrc, r.err = n, err + if n > 0 { + r.outbuf = doAppend(&r.rb, r.outbuf, 0) + } + if err == io.EOF { + r.lastBoundary = len(r.outbuf) + } else { + r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf) + if r.lastBoundary == -1 { + r.lastBoundary = 0 + } + } + } + panic("should not reach here") +} + +// Reader returns a new reader that implements Read +// by reading data from r and returning f(data). +func (f Form) Reader(r io.Reader) io.Reader { + const chunk = 4000 + buf := make([]byte, chunk) + rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf} + rr.rb.init(f, buf) + return rr +} diff --git a/vendor/golang.org/x/text/unicode/norm/readwriter_test.go b/vendor/golang.org/x/text/unicode/norm/readwriter_test.go new file mode 100644 index 00000000..b7756ba2 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/readwriter_test.go @@ -0,0 +1,56 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "bytes" + "fmt" + "testing" +) + +var bufSizes = []int{1, 2, 3, 4, 5, 6, 7, 8, 100, 101, 102, 103, 4000, 4001, 4002, 4003} + +func readFunc(size int) appendFunc { + return func(f Form, out []byte, s string) []byte { + out = append(out, s...) + r := f.Reader(bytes.NewBuffer(out)) + buf := make([]byte, size) + result := []byte{} + for n, err := 0, error(nil); err == nil; { + n, err = r.Read(buf) + result = append(result, buf[:n]...) + } + return result + } +} + +func TestReader(t *testing.T) { + for _, s := range bufSizes { + name := fmt.Sprintf("TestReader%d", s) + runNormTests(t, name, readFunc(s)) + } +} + +func writeFunc(size int) appendFunc { + return func(f Form, out []byte, s string) []byte { + in := append(out, s...) + result := new(bytes.Buffer) + w := f.Writer(result) + buf := make([]byte, size) + for n := 0; len(in) > 0; in = in[n:] { + n = copy(buf, in) + _, _ = w.Write(buf[:n]) + } + w.Close() + return result.Bytes() + } +} + +func TestWriter(t *testing.T) { + for _, s := range bufSizes { + name := fmt.Sprintf("TestWriter%d", s) + runNormTests(t, name, writeFunc(s)) + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/tables.go b/vendor/golang.org/x/text/unicode/norm/tables.go new file mode 100644 index 00000000..a56697b5 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables.go @@ -0,0 +1,7627 @@ +// This file was generated by go generate; DO NOT EDIT + +package norm + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "9.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [55]uint8{ + 0, 1, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 84, 91, 103, 107, 118, 122, 129, 130, + 132, 202, 214, 216, 218, 220, 222, 224, + 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x186D + firstCCC = 0x2C9E + endMulti = 0x2F60 + firstLeadingCCC = 0x4A44 + firstCCCZeroExcept = 0x4A5A + firstStarterWithNLead = 0x4A81 + lastDecomp = 0x4A83 + maxDecomp = 0x8000 +) + +// decomps: 19075 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42, + 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, + 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, + 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, + 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, + 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, + // Bytes 100 - 13f + 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42, + 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F, + 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9, + 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42, + 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB, + 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, + 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42, + 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42, + 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F, + 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE, + 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42, + // Bytes 180 - 1bf + 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97, + 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE, + 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42, + 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F, + 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE, + 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42, + 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8, + 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE, + // Bytes 1c0 - 1ff + 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42, + 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7, + 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE, + 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42, + 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF, + 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF, + 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42, + 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87, + // Bytes 200 - 23f + 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF, + 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42, + 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90, + 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7, + 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42, + 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2, + 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8, + 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42, + // Bytes 240 - 27f + 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB, + 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8, + 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42, + 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3, + 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8, + 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42, + 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81, + 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9, + // Bytes 280 - 2bf + 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42, + 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89, + 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9, + 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42, + 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE, + 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA, + 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42, + 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C, + // Bytes 2c0 - 2ff + 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA, + 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42, + 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9, + 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA, + 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42, + 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81, + 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB, + 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42, + // Bytes 300 - 33f + 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90, + 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43, + 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43, + 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43, + 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43, + 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43, + 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43, + 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43, + // Bytes 340 - 37f + 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43, + 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43, + 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43, + 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43, + 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43, + 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43, + 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43, + 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43, + // Bytes 380 - 3bf + 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43, + 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43, + 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43, + 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43, + 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43, + 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43, + 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43, + 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43, + // Bytes 3c0 - 3ff + 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43, + 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, + 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, + 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, + 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, + 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43, + 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43, + 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43, + // Bytes 400 - 43f + 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43, + 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43, + 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43, + 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43, + 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43, + 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43, + 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43, + 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, + // Bytes 440 - 47f + 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, + 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, + 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, + 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, + 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, + 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, + 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, + 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, + // Bytes 480 - 4bf + 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43, + 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43, + 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43, + 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43, + 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43, + 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43, + 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43, + 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43, + // Bytes 4c0 - 4ff + 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43, + 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43, + 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43, + 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43, + 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43, + 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43, + 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43, + 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43, + // Bytes 500 - 53f + 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43, + 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43, + 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43, + 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43, + 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43, + 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43, + 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43, + 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43, + // Bytes 540 - 57f + 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43, + 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43, + 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43, + 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43, + 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43, + 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43, + 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43, + 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43, + // Bytes 580 - 5bf + 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43, + 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43, + 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43, + 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43, + 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43, + 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43, + 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43, + 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43, + // Bytes 5c0 - 5ff + 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43, + 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43, + 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43, + 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43, + 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43, + 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43, + 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43, + 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43, + // Bytes 600 - 63f + 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43, + 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43, + 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43, + 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43, + 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43, + 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43, + 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43, + 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43, + // Bytes 640 - 67f + 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43, + 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43, + 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43, + 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43, + 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43, + 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43, + 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43, + 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43, + // Bytes 680 - 6bf + 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43, + 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43, + 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43, + 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43, + 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43, + 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43, + 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43, + 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43, + // Bytes 6c0 - 6ff + 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43, + 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43, + 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43, + 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43, + 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43, + 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43, + 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43, + 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43, + // Bytes 700 - 73f + 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43, + 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43, + 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43, + 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43, + 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43, + 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43, + 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43, + 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43, + // Bytes 740 - 77f + 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43, + 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43, + 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43, + 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43, + 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43, + 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43, + 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43, + 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43, + // Bytes 780 - 7bf + 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43, + 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43, + 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43, + 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43, + 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43, + 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43, + 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43, + 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43, + // Bytes 7c0 - 7ff + 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43, + 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43, + 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43, + 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43, + 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43, + 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43, + 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43, + 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43, + // Bytes 800 - 83f + 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43, + 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43, + 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43, + 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43, + 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43, + 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43, + 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43, + 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43, + // Bytes 840 - 87f + 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43, + 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43, + 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43, + 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43, + 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43, + 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43, + 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43, + 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43, + // Bytes 880 - 8bf + 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43, + 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43, + 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43, + 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43, + 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43, + 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43, + 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43, + 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43, + // Bytes 8c0 - 8ff + 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43, + 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43, + 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43, + 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43, + 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43, + 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43, + 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43, + 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43, + // Bytes 900 - 93f + 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43, + 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43, + 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43, + 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43, + 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43, + 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43, + 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43, + 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43, + // Bytes 940 - 97f + 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43, + 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43, + 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43, + 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43, + 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43, + 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43, + 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43, + 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43, + // Bytes 980 - 9bf + 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43, + 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43, + 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43, + 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43, + 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43, + 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43, + 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43, + 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43, + // Bytes 9c0 - 9ff + 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43, + 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43, + 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43, + 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43, + 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43, + 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43, + 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43, + 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43, + // Bytes a00 - a3f + 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43, + 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43, + 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43, + 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43, + 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43, + 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43, + 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43, + 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43, + // Bytes a40 - a7f + 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43, + 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43, + 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43, + 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43, + 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43, + 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43, + 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43, + 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43, + // Bytes a80 - abf + 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43, + 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43, + 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43, + 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43, + 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43, + 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43, + 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43, + 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43, + // Bytes ac0 - aff + 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43, + 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43, + 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43, + 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43, + 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43, + 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43, + 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43, + 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43, + // Bytes b00 - b3f + 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43, + 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43, + 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43, + 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43, + 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43, + 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43, + 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43, + 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43, + // Bytes b40 - b7f + 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43, + 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43, + 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43, + 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43, + 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43, + 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43, + 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43, + 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43, + // Bytes b80 - bbf + 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43, + 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43, + 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43, + 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43, + 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43, + 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43, + 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43, + 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43, + // Bytes bc0 - bff + 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43, + 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43, + 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43, + 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43, + 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43, + 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43, + 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43, + 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43, + // Bytes c00 - c3f + 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43, + 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43, + 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43, + 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43, + 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43, + 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43, + 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43, + 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43, + // Bytes c40 - c7f + 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43, + 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43, + 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43, + 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43, + 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43, + 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43, + 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43, + 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43, + // Bytes c80 - cbf + 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43, + 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43, + 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43, + 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43, + 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43, + 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43, + 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43, + 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43, + // Bytes cc0 - cff + 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43, + 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43, + 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43, + 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43, + 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43, + 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43, + 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43, + 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43, + // Bytes d00 - d3f + 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43, + 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43, + 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43, + 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43, + 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43, + 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43, + 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43, + 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43, + // Bytes d40 - d7f + 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43, + 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43, + 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43, + 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43, + 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43, + 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43, + 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43, + 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43, + // Bytes d80 - dbf + 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43, + 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43, + 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43, + 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43, + 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43, + 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43, + 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43, + 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43, + // Bytes dc0 - dff + 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43, + 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43, + 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43, + 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43, + 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43, + 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43, + 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43, + 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43, + // Bytes e00 - e3f + 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43, + 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43, + 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43, + 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43, + 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43, + 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43, + 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43, + 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43, + // Bytes e40 - e7f + 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43, + 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43, + 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43, + 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43, + 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43, + 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43, + 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43, + 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43, + // Bytes e80 - ebf + 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43, + 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43, + 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43, + 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43, + 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43, + 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43, + 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43, + 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43, + // Bytes ec0 - eff + 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43, + 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43, + 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43, + 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43, + 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43, + 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43, + 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43, + 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43, + // Bytes f00 - f3f + 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43, + 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43, + 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43, + 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43, + 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43, + 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43, + 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43, + 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43, + // Bytes f40 - f7f + 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43, + 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43, + 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43, + 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43, + 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43, + 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43, + 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43, + 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43, + // Bytes f80 - fbf + 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43, + 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43, + 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43, + 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43, + 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43, + 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43, + 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43, + 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43, + // Bytes fc0 - fff + 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43, + 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43, + 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43, + 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43, + 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43, + 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43, + 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43, + 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43, + // Bytes 1000 - 103f + 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43, + 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43, + 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43, + 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43, + 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43, + 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43, + 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43, + 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43, + // Bytes 1040 - 107f + 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43, + 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43, + 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43, + 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43, + 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43, + 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43, + 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43, + 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43, + // Bytes 1080 - 10bf + 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43, + 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43, + 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43, + 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43, + 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43, + 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43, + 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43, + 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43, + // Bytes 10c0 - 10ff + 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43, + 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43, + 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43, + 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43, + 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43, + 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43, + 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43, + 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43, + // Bytes 1100 - 113f + 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43, + 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43, + 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43, + 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43, + 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43, + 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43, + 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43, + 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43, + // Bytes 1140 - 117f + 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43, + 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43, + 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43, + 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43, + 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43, + 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43, + 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43, + 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43, + // Bytes 1180 - 11bf + 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43, + 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43, + 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43, + 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43, + 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43, + 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43, + 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43, + 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43, + // Bytes 11c0 - 11ff + 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43, + 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43, + 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43, + 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43, + 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43, + 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43, + 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43, + 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43, + // Bytes 1200 - 123f + 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43, + 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43, + 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43, + 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43, + 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43, + 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43, + 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43, + 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43, + // Bytes 1240 - 127f + 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43, + 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43, + 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43, + 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43, + 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43, + 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43, + 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43, + 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43, + // Bytes 1280 - 12bf + 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43, + 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43, + 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43, + 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43, + 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43, + 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43, + 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43, + 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43, + // Bytes 12c0 - 12ff + 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43, + 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43, + 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43, + 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43, + 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43, + 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43, + 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43, + 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43, + // Bytes 1300 - 133f + 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43, + 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43, + 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43, + 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43, + 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43, + 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43, + 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43, + 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43, + // Bytes 1340 - 137f + 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43, + 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43, + 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43, + 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43, + 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43, + 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43, + 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43, + 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43, + // Bytes 1380 - 13bf + 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43, + 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43, + 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43, + 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43, + 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43, + 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43, + 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43, + 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43, + // Bytes 13c0 - 13ff + 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43, + 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43, + 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43, + 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43, + 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43, + 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43, + 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43, + 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43, + // Bytes 1400 - 143f + 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43, + 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43, + 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43, + 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43, + 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43, + 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43, + 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43, + 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43, + // Bytes 1440 - 147f + 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43, + 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, + 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, + 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, + 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, + 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, + 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, + 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, + // Bytes 1480 - 14bf + 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, + 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, + 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, + 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, + 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, + 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, + 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, + 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, + // Bytes 14c0 - 14ff + 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, + 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, + 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, + 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, + 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, + 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, + 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, + 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, + // Bytes 1500 - 153f + 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, + 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, + 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, + 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, + 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, + 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, + 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, + 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, + // Bytes 1540 - 157f + 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, + 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, + 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, + 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, + 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, + 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, + 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, + 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, + // Bytes 1580 - 15bf + 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, + 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, + 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, + 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, + 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, + 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, + 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, + 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, + // Bytes 15c0 - 15ff + 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, + 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, + 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, + 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, + 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, + 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, + 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, + 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, + // Bytes 1600 - 163f + 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, + 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, + 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, + 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, + 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, + 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, + 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, + 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43, + // Bytes 1640 - 167f + 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44, + 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94, + 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0, + 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA, + 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0, + 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44, + 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93, + 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0, + // Bytes 1680 - 16bf + 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88, + 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1, + 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44, + 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86, + 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0, + 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94, + 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2, + 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44, + // Bytes 16c0 - 16ff + 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80, + 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0, + 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93, + 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3, + 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44, + 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A, + 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0, + 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA, + // Bytes 1700 - 173f + 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3, + 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44, + 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE, + 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0, + 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB, + 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4, + 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44, + 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2, + // Bytes 1740 - 177f + 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0, + 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84, + 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5, + 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44, + 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89, + 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0, + 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A, + 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5, + // Bytes 1780 - 17bf + 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44, + 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2, + 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0, + 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A, + 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6, + 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44, + 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93, + 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0, + // Bytes 17c0 - 17ff + 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7, + 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6, + 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44, + 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5, + 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0, + 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92, + 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7, + 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44, + // Bytes 1800 - 183f + 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2, + 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0, + 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92, + 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8, + 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44, + 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85, + 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0, + 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A, + // Bytes 1840 - 187f + 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9, + 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44, + 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84, + 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0, + 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92, + 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21, + 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30, + 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42, + // Bytes 1880 - 18bf + 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31, + 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31, + 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42, + 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39, + 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32, + 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42, + 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35, + 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32, + // Bytes 18c0 - 18ff + 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42, + 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31, + 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33, + 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42, + 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39, + 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34, + 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42, + 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35, + // Bytes 1900 - 193f + 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34, + 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42, + 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C, + 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37, + 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42, + 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D, + 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41, + 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42, + // Bytes 1940 - 197f + 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A, + 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48, + 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42, + 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A, + 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49, + 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42, + 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A, + 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D, + // Bytes 1980 - 19bf + 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + // Bytes 19c0 - 19ff + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + // Bytes 1a00 - 1a3f + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + // Bytes 1a40 - 1a7f + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + // Bytes 1a80 - 1abf + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + // Bytes 1ac0 - 1aff + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + // Bytes 1b00 - 1b3f + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + // Bytes 1b40 - 1b7f + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + // Bytes 1b80 - 1bbf + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + // Bytes 1bc0 - 1bff + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + // Bytes 1c00 - 1c3f + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + // Bytes 1c40 - 1c7f + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + // Bytes 1c80 - 1cbf + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + // Bytes 1cc0 - 1cff + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + // Bytes 1d00 - 1d3f + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + // Bytes 1d40 - 1d7f + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + // Bytes 1d80 - 1dbf + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + // Bytes 1dc0 - 1dff + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + // Bytes 1e00 - 1e3f + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + // Bytes 1e40 - 1e7f + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + // Bytes 1e80 - 1ebf + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + // Bytes 1ec0 - 1eff + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + // Bytes 1f00 - 1f3f + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + // Bytes 1f40 - 1f7f + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + // Bytes 1f80 - 1fbf + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + // Bytes 1fc0 - 1fff + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + // Bytes 2000 - 203f + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + // Bytes 2040 - 207f + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + // Bytes 2080 - 20bf + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + // Bytes 20c0 - 20ff + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + // Bytes 2100 - 213f + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + // Bytes 2140 - 217f + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + // Bytes 2180 - 21bf + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + // Bytes 21c0 - 21ff + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2200 - 223f + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + // Bytes 2240 - 227f + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + // Bytes 2280 - 22bf + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + // Bytes 22c0 - 22ff + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + // Bytes 2300 - 233f + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + // Bytes 2340 - 237f + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + // Bytes 2380 - 23bf + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + // Bytes 23c0 - 23ff + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + // Bytes 2400 - 243f + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + // Bytes 2440 - 247f + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + // Bytes 2480 - 24bf + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + // Bytes 24c0 - 24ff + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2500 - 253f + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + // Bytes 2540 - 257f + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + // Bytes 2580 - 25bf + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + // Bytes 25c0 - 25ff + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + // Bytes 2600 - 263f + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + // Bytes 2640 - 267f + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + // Bytes 2680 - 26bf + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + // Bytes 26c0 - 26ff + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, + // Bytes 2700 - 273f + 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, + 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, + 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, + 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, + 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, + 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + // Bytes 2740 - 277f + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, + // Bytes 2780 - 27bf + 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, + 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, + // Bytes 27c0 - 27ff + 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, + 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, + 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, + 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, + 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, + 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, + // Bytes 2800 - 283f + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, + 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, + 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, + 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, + // Bytes 2840 - 287f + 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, + 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, + 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, + 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, + 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, + 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, + // Bytes 2880 - 28bf + 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, + 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, + 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, + 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, + // Bytes 28c0 - 28ff + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, + 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, + 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, + 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, + // Bytes 2900 - 293f + 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, + 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, + // Bytes 2940 - 297f + 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, + 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, + 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, + // Bytes 2980 - 29bf + 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, + 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, + 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, + 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, + 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, + // Bytes 29c0 - 29ff + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, + 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, + 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, + // Bytes 2a00 - 2a3f + 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, + 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, + 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2a40 - 2a7f + 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, + 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, + // Bytes 2a80 - 2abf + 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, + 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, + 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, + 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, + 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + // Bytes 2ac0 - 2aff + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, + 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, + 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, + // Bytes 2b00 - 2b3f + 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, + 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, + // Bytes 2b40 - 2b7f + 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, + 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, + // Bytes 2b80 - 2bbf + 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, + 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, + 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, + // Bytes 2bc0 - 2bff + 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, + 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, + 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, + 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, + 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, + 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, + 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, + // Bytes 2c40 - 2c7f + 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, + 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, + // Bytes 2c80 - 2cbf + 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, + 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, + 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, + 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, + 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, + 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2cc0 - 2cff + 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, + 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, + 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, + 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, + 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, + // Bytes 2d00 - 2d3f + 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, + 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, + 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, + 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, + 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + // Bytes 2d40 - 2d7f + 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, + 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, + // Bytes 2d80 - 2dbf + 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, + 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, + 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, + 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, + 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, + 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, + 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, + 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, + // Bytes 2dc0 - 2dff + 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, + 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, + 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, + 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, + 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, + 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44, + 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC, + 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9, + // Bytes 2e00 - 2e3f + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, + 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e40 - 2e7f + 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, + 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, + // Bytes 2e80 - 2ebf + 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, + 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, + 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, + 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, + 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, + 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, + 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 2ec0 - 2eff + 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83, + 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, + 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, + 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, + 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82, + 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, + // Bytes 2f00 - 2f3f + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, + 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F, + 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95, + // Bytes 2f40 - 2f7f + 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, + 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, + 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, + 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, + 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81, + 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41, + // Bytes 2f80 - 2fbf + 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9, + 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC, + 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03, + 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8, + 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42, + 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5, + 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC, + 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03, + // Bytes 2fc0 - 2fff + 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87, + 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44, + 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5, + 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC, + 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03, + 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83, + 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45, + 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9, + // Bytes 3000 - 303f + 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC, + 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03, + 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8, + 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45, + 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9, + 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC, + 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03, + 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87, + // Bytes 3040 - 307f + 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47, + 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9, + 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC, + 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03, + 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7, + 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49, + 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9, + 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC, + // Bytes 3080 - 30bf + 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03, + 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87, + 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49, + 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9, + 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC, + 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03, + 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82, + 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B, + // Bytes 30c0 - 30ff + 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5, + 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC, + 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03, + 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7, + 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C, + 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9, + 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC, + 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03, + // Bytes 3100 - 313f + 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83, + 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E, + 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5, + 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC, + 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03, + 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81, + 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F, + 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9, + // Bytes 3140 - 317f + 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC, + 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03, + 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87, + 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52, + 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9, + 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC, + 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03, + 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82, + // Bytes 3180 - 31bf + 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53, + 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5, + 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC, + 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03, + 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7, + 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54, + 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9, + 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC, + // Bytes 31c0 - 31ff + 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03, + 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A, + 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55, + 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9, + 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC, + 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03, + 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD, + 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56, + // Bytes 3200 - 323f + 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5, + 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC, + 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03, + 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88, + 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58, + 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9, + 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC, + 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03, + // Bytes 3240 - 327f + 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84, + 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59, + 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9, + 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC, + 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03, + 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C, + 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, + 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9, + // Bytes 3280 - 32bf + 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC, + 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03, + 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C, + 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61, + 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5, + 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC, + 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03, + 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81, + // Bytes 32c0 - 32ff + 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63, + 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9, + 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC, + 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03, + 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD, + 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65, + 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9, + 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC, + // Bytes 3300 - 333f + 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03, + 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89, + 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65, + 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9, + 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC, + 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03, + 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81, + 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67, + // Bytes 3340 - 337f + 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9, + 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, + 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03, + 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87, + 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68, + 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5, + 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC, + 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03, + // Bytes 3380 - 33bf + 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81, + 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69, + 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9, + 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC, + 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03, + 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91, + 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69, + 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5, + // Bytes 33c0 - 33ff + 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC, + 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03, + 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3, + 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B, + 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9, + 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC, + 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03, + 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81, + // Bytes 3400 - 343f + 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D, + 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9, + 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC, + 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03, + 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3, + 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E, + 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5, + 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC, + // Bytes 3440 - 347f + 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03, + 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B, + 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F, + 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9, + 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC, + 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03, + 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C, + 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72, + // Bytes 3480 - 34bf + 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5, + 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC, + 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03, + 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7, + 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74, + 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9, + 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC, + 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03, + // Bytes 34c0 - 34ff + 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1, + 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75, + 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9, + 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC, + 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03, + 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C, + 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75, + 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5, + // Bytes 3500 - 353f + 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC, + 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03, + 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83, + 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77, + 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9, + 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC, + 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03, + 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3, + // Bytes 3540 - 357f + 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78, + 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9, + 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC, + 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03, + 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87, + 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79, + 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9, + 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC, + // Bytes 3580 - 35bf + 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03, + 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C, + 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, + 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80, + 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04, + 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86, + 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84, + 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04, + // Bytes 35c0 - 35ff + 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6, + 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81, + 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04, + 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92, + 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85, + // Bytes 3600 - 363f + 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04, + 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F, + // Bytes 3640 - 367f + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5, + 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84, + 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04, + 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9, + 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81, + 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04, + // Bytes 3680 - 36bf + 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85, + 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7, + 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80, + 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04, + 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9, + 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82, + // Bytes 36c0 - 36ff + 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04, + 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81, + 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94, + 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04, + 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85, + 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86, + 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04, + 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92, + // Bytes 3700 - 373f + 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81, + 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3740 - 377f + 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84, + 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04, + 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A, + 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04, + 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, + // Bytes 3780 - 37bf + 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD, + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5, + 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86, + 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04, + 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6, + // Bytes 37c0 - 37ff + 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04, + 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8, + 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88, + 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04, + 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83, + 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86, + 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04, + // Bytes 3800 - 383f + 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87, + 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88, + 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04, + 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4, + 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, + 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04, + 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8, + 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88, + // Bytes 3840 - 387f + 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04, + 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7, + 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94, + 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04, + 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92, + 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94, + 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + // Bytes 3880 - 38bf + 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, + 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA, + 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, + 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41, + // Bytes 38c0 - 38ff + 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC, + 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7, + 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, + 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA, + 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45, + 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, + // Bytes 3900 - 393f + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7, + 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F, + 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC, + 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83, + // Bytes 3940 - 397f + 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC, + 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, + 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, + 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + // Bytes 3980 - 39bf + 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, + 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, + 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53, + 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, + 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3, + 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC, + 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, + // Bytes 39c0 - 39ff + 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55, + 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + // Bytes 3a00 - 3a3f + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, + 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA, + 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, + // Bytes 3a40 - 3a7f + 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61, + 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3, + 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC, + 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, + 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, + 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65, + // Bytes 3a80 - 3abf + 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, + 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3, + 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC, + 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F, + 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC, + // Bytes 3ac0 - 3aff + 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, + 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA, + 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, + 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, + 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, + // Bytes 3b00 - 3b3f + 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, + 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, + 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, + 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72, + 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC, + 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C, + 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC, + // Bytes 3b40 - 3b7f + 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, + 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC, + 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, + // Bytes 3b80 - 3bbf + 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA, + 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1, + 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE, + 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, + 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, + 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, + // Bytes 3bc0 - 3bff + 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3c00 - 3c3f + 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3c40 - 3c7f + 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3c80 - 3cbf + 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, + // Bytes 3cc0 - 3cff + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, + 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + // Bytes 3d00 - 3d3f + 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3d40 - 3d7f + 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + // Bytes 3d80 - 3dbf + 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + // Bytes 3dc0 - 3dff + 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + // Bytes 3e00 - 3e3f + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + // Bytes 3e40 - 3e7f + 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA, + // Bytes 3e80 - 3ebf + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA, + 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA, + 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA, + // Bytes 3ec0 - 3eff + 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA, + 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA, + 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09, + 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85, + 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11, + // Bytes 3f00 - 3f3f + 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f40 - 3f7f + 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 3f80 - 3fbf + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D, + // Bytes 3fc0 - 3fff + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4000 - 403f + 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4040 - 407f + 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 4080 - 40bf + 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D, + 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D, + // Bytes 40c0 - 40ff + 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D, + 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D, + 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + // Bytes 4100 - 413f + 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + // Bytes 4140 - 417f + 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, + // Bytes 4180 - 41bf + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + // Bytes 41c0 - 41ff + 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, + 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, + 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, + 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, + 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, + 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + // Bytes 4200 - 423f + 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, + 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, + 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, + 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF, + 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, + 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, + // Bytes 4240 - 427f + 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, + 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, + 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2, + 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43, + 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84, + 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20, + 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9, + 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC, + // Bytes 4280 - 42bf + 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43, + 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94, + 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20, + 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5, + 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD, + 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43, + 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D, + 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20, + // Bytes 42c0 - 42ff + 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D, + 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9, + 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43, + 0x73, 0xCC, 0x87, 0xC9, 0x43, 0xE1, 0x85, 0xA1, + 0x01, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x43, 0xE1, + 0x85, 0xA3, 0x01, 0x43, 0xE1, 0x85, 0xA4, 0x01, + 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x43, 0xE1, 0x85, + 0xA6, 0x01, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x43, + // Bytes 4300 - 433f + 0xE1, 0x85, 0xA8, 0x01, 0x43, 0xE1, 0x85, 0xA9, + 0x01, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x43, 0xE1, + 0x85, 0xAB, 0x01, 0x43, 0xE1, 0x85, 0xAC, 0x01, + 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x43, 0xE1, 0x85, + 0xAE, 0x01, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x43, + 0xE1, 0x85, 0xB0, 0x01, 0x43, 0xE1, 0x85, 0xB1, + 0x01, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x43, 0xE1, + 0x85, 0xB3, 0x01, 0x43, 0xE1, 0x85, 0xB4, 0x01, + // Bytes 4340 - 437f + 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x43, 0xE1, 0x86, + 0xAA, 0x01, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x43, + 0xE1, 0x86, 0xAD, 0x01, 0x43, 0xE1, 0x86, 0xB0, + 0x01, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x43, 0xE1, + 0x86, 0xB2, 0x01, 0x43, 0xE1, 0x86, 0xB3, 0x01, + 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x43, 0xE1, 0x86, + 0xB5, 0x01, 0x44, 0x20, 0xE3, 0x82, 0x99, 0x0D, + 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, 0x44, 0xC2, + // Bytes 4380 - 43bf + 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, 0x91, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x9F, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, + 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x44, 0xCE, + 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB1, 0xCC, + 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, 0x81, 0xC9, + // Bytes 43c0 - 43ff + 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x44, 0xCE, + 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xBF, 0xCC, + 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, 0x81, 0xC9, + 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x44, 0xD7, + 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, 0x90, 0xD6, + 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0x92, 0xD6, + // Bytes 4400 - 443f + 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, 0x95, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, 0x99, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + // Bytes 4440 - 447f + 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0x9C, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA3, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, 0x44, 0xD7, + 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA7, 0xD6, + 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, 0x41, + // Bytes 4480 - 44bf + 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, 0x44, 0xD7, + 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, 0xA9, 0xD7, + 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, 0x41, + 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, 0x44, 0xD8, + 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, 0xA7, 0xD9, + 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x94, 0xC9, + 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x44, 0xD8, + 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, 0xB1, 0xD9, + // Bytes 44c0 - 44ff + 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, 0x8B, 0x59, + 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, 0x44, 0xD9, + 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, 0x80, 0xD9, + 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, 0x91, 0x71, + 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, 0x44, 0xD9, + 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x88, 0xD9, + 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, 0xB0, 0x79, + 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x44, 0xDB, + // Bytes 4500 - 453f + 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x95, 0xD9, + 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x80, + 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xCA, + 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCA, 0x45, + 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x45, 0x20, + 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x94, + 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, + // Bytes 4540 - 457f + 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCD, 0x82, + 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, 0x72, + 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x72, 0x45, + 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x45, 0x20, + 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, + 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x91, + 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, 0x9D, 0xCC, + 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, + // Bytes 4580 - 45bf + 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, 0x88, 0xCC, + 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, + 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, + 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, 0x8E, 0xD9, + 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, 0x8F, 0xD9, + 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, 0x90, 0xD9, + 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, 0xE0, 0xA4, + // Bytes 45c0 - 45ff + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, + 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, + 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, + // Bytes 4600 - 463f + 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, + 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, + // Bytes 4640 - 467f + 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, + 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, + 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, + 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, 0xE3, 0x82, + 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, 0x97, 0xF0, + 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x85, + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, + // Bytes 4680 - 46bf + 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, + 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, 0xE0, 0xBE, + 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, + 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, + // Bytes 46c0 - 46ff + 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, 0xAE, + 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, 0x4C, 0xF0, + 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, + 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, + 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, + // Bytes 4700 - 473f + 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, + 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, + 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, + 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x83, 0x41, + 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, 0x86, 0xC9, + 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, 0x41, 0xCC, + 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, 0xC9, 0x83, + 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, 0xCC, 0xA7, + // Bytes 4740 - 477f + 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, 0x83, 0x45, + 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, 0xA3, 0xB5, + 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, 0x49, 0xCC, + 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, 0xB5, 0x83, + 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, 0xCC, 0x83, + 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, 0x83, 0x4F, + 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, 0x88, 0xC9, + 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, 0x4F, 0xCC, + // Bytes 4780 - 47bf + 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, 0xA5, 0x83, + 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, 0xCC, 0x81, + 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, 0x83, 0x53, + 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, 0x83, 0xC9, + 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, 0x55, 0xCC, + 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, 0xAD, 0x83, + 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, 0xCC, 0x86, + 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, 0x83, 0x61, + // Bytes 47c0 - 47ff + 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, 0x8A, 0xC9, + 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, 0x63, 0xCC, + 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, 0xC9, 0x83, + 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, 0xCC, 0xA3, + 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, 0x83, 0x69, + 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, 0xA3, 0xB5, + 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, 0x6F, 0xCC, + 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, 0xC9, 0x83, + // Bytes 4800 - 483f + 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, 0xCC, 0x88, + 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, 0x83, 0x6F, + 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0xA8, 0xA5, + 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, 0x73, 0xCC, + 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, 0xC9, 0x83, + 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, 0xCC, 0x83, + 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, 0x83, 0x75, + 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, 0x9B, 0xAD, + // Bytes 4840 - 487f + 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, 0x84, 0xCE, + 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x95, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, 0x84, 0xCE, + 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x99, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, 0x84, 0xCE, + 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA5, 0xCC, + // Bytes 4880 - 48bf + 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, + 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x93, 0xC9, + 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, 0x84, 0xCE, + 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, 0x84, 0xCE, + // Bytes 48c0 - 48ff + 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, 0x84, 0xCE, + 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, + 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x94, 0xC9, + 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, 0x84, 0xCE, + 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x85, 0xCC, + 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x93, 0xC9, + // Bytes 4900 - 493f + 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, 0x89, 0xCC, + 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x93, 0xC9, + 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, 0x84, 0xCF, + 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, 0x91, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x91, 0xCC, + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x91, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x91, 0xCC, + // Bytes 4940 - 497f + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x91, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x91, 0xCC, + 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x97, 0xCC, + // Bytes 4980 - 49bf + 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xA9, 0xCC, + 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + // Bytes 49c0 - 49ff + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB1, 0xCC, + 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + // Bytes 4a00 - 4a3f + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB7, 0xCC, + 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, 0x89, 0xCC, + // Bytes 4a40 - 4a7f + 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, 0x80, 0xC9, + 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, 0x42, 0xCC, + 0x93, 0xC9, 0x32, 0x44, 0xCC, 0x88, 0xCC, 0x81, + 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, + 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, + 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, + // Bytes 4a80 - 4abf + 0x26, 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: ad355b768fddb1b6. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 44: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 44 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 46 blocks, 2944 entries, 5888 bytes +// The third block is the zero block. +var nfcValues = [2944]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x471e, 0xc3: 0x2f79, 0xc4: 0x472d, 0xc5: 0x4732, + 0xc6: 0xa000, 0xc7: 0x473c, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x4741, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x4755, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x475f, 0xd5: 0x4764, 0xd6: 0x4773, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x47a5, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x47af, 0xe3: 0x3285, + 0xe4: 0x47be, 0xe5: 0x47c3, 0xe6: 0xa000, 0xe7: 0x47cd, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x47d2, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x47e6, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x47f0, 0xf5: 0x47f5, + 0xf6: 0x4804, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x4836, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x4723, 0x103: 0x47b4, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x4746, 0x113: 0x47d7, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, + // Block 0x5, offset 0x140 + 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, + 0x14c: 0x4769, 0x14d: 0x47fa, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x478c, 0x15b: 0x481d, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x4791, 0x161: 0x4822, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x479b, 0x169: 0x482c, + 0x16a: 0x47a0, 0x16b: 0x4831, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x4782, 0x1ab: 0x4813, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4728, 0x1e7: 0x47b9, 0x1e8: 0x4750, 0x1e9: 0x47e1, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x476e, 0x1ef: 0x47ff, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x4a44, 0x241: 0x4a49, 0x242: 0x9932, 0x243: 0x4a4e, 0x244: 0x4a53, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x35a1, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x4894, 0x2ad: 0x3697, 0x2ae: 0x48be, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b, + 0x2c6: 0xa000, 0x2c7: 0x3709, + 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3733, 0x302: 0x37b7, + 0x310: 0x370f, 0x311: 0x3793, + 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd, + 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf, + 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed, + 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805, + 0x338: 0x3787, 0x339: 0x380b, + // Block 0xd, offset 0x340 + 0x351: 0x812d, + 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132, + 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132, + 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d, + 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132, + 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132, + 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a, + 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f, + 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116, + 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c, + 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x812d, + 0x3b0: 0x811e, + // Block 0xf, offset 0x3c0 + 0x3c5: 0xa000, + 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000, + 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000, + 0x3d2: 0x2d4e, + 0x3f4: 0x8102, 0x3f5: 0x9900, + 0x3fa: 0xa000, 0x3fb: 0x2d56, + 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000, + // Block 0x10, offset 0x400 + 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2, + 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0, + 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df, + 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85, + 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93, + 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c, + 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370, + 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a, + 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de, + 0x436: 0x475a, 0x437: 0x47eb, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7, + 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc, + // Block 0x11, offset 0x440 + 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a, + 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e, + 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9, + 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465, + 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x4787, 0x45b: 0x4818, 0x45c: 0x3997, 0x45d: 0x3b26, + 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4796, 0x463: 0x4827, + 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b, + 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4, + 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f, + 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49, + 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519, + // Block 0x12, offset 0x480 + 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532, + 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541, + 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582, + 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6, + 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1, + 0x4a0: 0x4737, 0x4a1: 0x47c8, 0x4a2: 0x2f83, 0x4a3: 0x328f, + 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15, + 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23, + 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a, + 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x474b, 0x4b9: 0x47dc, 0x4ba: 0x3000, 0x4bb: 0x330c, + 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70, + 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1, + 0x4cc: 0x477d, 0x4cd: 0x480e, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf, + 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6, + 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5, + 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11, + 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73, + 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a, + 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578, + 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a, + // Block 0x14, offset 0x500 + 0x500: 0x489a, 0x501: 0x48a0, 0x502: 0x49b4, 0x503: 0x49cc, 0x504: 0x49bc, 0x505: 0x49d4, + 0x506: 0x49c4, 0x507: 0x49dc, 0x508: 0x4840, 0x509: 0x4846, 0x50a: 0x4924, 0x50b: 0x493c, + 0x50c: 0x492c, 0x50d: 0x4944, 0x50e: 0x4934, 0x50f: 0x494c, 0x510: 0x48ac, 0x511: 0x48b2, + 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0, + 0x518: 0x484c, 0x519: 0x4852, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00, + 0x520: 0x48c4, 0x521: 0x48ca, 0x522: 0x49e4, 0x523: 0x49fc, + 0x524: 0x49ec, 0x525: 0x4a04, 0x526: 0x49f4, 0x527: 0x4a0c, 0x528: 0x4858, 0x529: 0x485e, + 0x52a: 0x4954, 0x52b: 0x496c, 0x52c: 0x495c, 0x52d: 0x4974, 0x52e: 0x4964, 0x52f: 0x497c, + 0x530: 0x48dc, 0x531: 0x48e2, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38, + 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x4864, 0x539: 0x486a, 0x53a: 0x3d18, 0x53b: 0x3d30, + 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40, + // Block 0x15, offset 0x540 + 0x540: 0x48e8, 0x541: 0x48ee, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60, + 0x548: 0x4870, 0x549: 0x4876, 0x54a: 0x3d48, 0x54b: 0x3d58, + 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x48fa, 0x551: 0x4900, + 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8, + 0x559: 0x487c, 0x55b: 0x3d68, 0x55d: 0x3d70, + 0x55f: 0x3d78, 0x560: 0x4912, 0x561: 0x4918, 0x562: 0x4a14, 0x563: 0x4a2c, + 0x564: 0x4a1c, 0x565: 0x4a34, 0x566: 0x4a24, 0x567: 0x4a3c, 0x568: 0x4882, 0x569: 0x4888, + 0x56a: 0x4984, 0x56b: 0x499c, 0x56c: 0x498c, 0x56d: 0x49a4, 0x56e: 0x4994, 0x56f: 0x49ac, + 0x570: 0x488e, 0x571: 0x43b4, 0x572: 0x3691, 0x573: 0x43ba, 0x574: 0x48b8, 0x575: 0x43c0, + 0x576: 0x36a3, 0x577: 0x43c6, 0x578: 0x36c1, 0x579: 0x43cc, 0x57a: 0x36d9, 0x57b: 0x43d2, + 0x57c: 0x4906, 0x57d: 0x43d8, + // Block 0x16, offset 0x580 + 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac, + 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee, + 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0, + 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2, + 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134, + 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a, + 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88, + 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a, + 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98, + 0x5b6: 0x48a6, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x4384, + 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0, + 0x5c6: 0x48d0, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x438a, 0x5ca: 0x360d, 0x5cb: 0x4390, + 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af, + 0x5d2: 0x3e00, 0x5d3: 0x457a, 0x5d6: 0x36bb, 0x5d7: 0x3e10, + 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4396, 0x5dd: 0x3ba4, + 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x4582, + 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b, + 0x5ea: 0x364f, 0x5eb: 0x43a2, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x437e, 0x5ef: 0x0081, + 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8, + 0x5f6: 0x491e, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x439c, 0x5fa: 0x366d, 0x5fb: 0x43ae, + 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100, + // Block 0x18, offset 0x600 + 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000, + 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b, + 0x60d: 0xa000, + 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29, + 0x624: 0xa000, 0x625: 0xa000, + 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a, + 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45, + 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000, + 0x63c: 0xa000, 0x63d: 0xa000, + // Block 0x19, offset 0x640 + 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d, + 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b, + 0x651: 0xa000, + 0x652: 0xa000, + 0x662: 0xa000, + 0x668: 0xa000, 0x669: 0xa000, + 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5, + 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000, + // Block 0x1a, offset 0x680 + 0x686: 0xa000, 0x68b: 0xa000, + 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000, + 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000, + 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000, + 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60, + 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78, + 0x6af: 0xa000, + 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000, + 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000, + 0x6bc: 0x3fc0, 0x6bd: 0x3fc8, + // Block 0x1b, offset 0x6c0 + 0x6d4: 0x3f00, + 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000, + 0x6de: 0x3fd0, + 0x6e6: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000, + 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000, + 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000, + 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000, + // Block 0x1c, offset 0x700 + 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040, + 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050, + 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060, + 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080, + 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0, + 0x72f: 0xa000, + 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8, + 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0, + 0x73d: 0xa000, 0x73e: 0x40c8, + // Block 0x1d, offset 0x740 + 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb, + 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943, + 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3, + 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43, + 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87, + 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283, + 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f, + 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853, + 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b, + 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b, + 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b, + // Block 0x1e, offset 0x780 + 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b, + 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f, + 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7, + 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127, + 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357, + 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873, + 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3, + 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b, + 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57, + 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb, + 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f, + 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3, + 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83, + 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193, + 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b, + 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b, + 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f, + 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b, + 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753, + 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777, + 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73, + // Block 0x20, offset 0x800 + 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3, + 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47, + 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af, + 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df, + 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817, + 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3, + 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457, + 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b, + 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27, + 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f, + 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b, + // Block 0x21, offset 0x840 + 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03, + 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27, + 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af, + 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3, + 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb, + 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353, + 0x865: 0x1407, 0x866: 0x1433, + 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7, + 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897, + 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93, + 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3, + // Block 0x22, offset 0x880 + 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b, + 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f, + 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f, + 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f, + 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff, + 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f, + 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f, + 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3, + 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7, + 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963, + 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b, + 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb, + 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf, + 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f, + 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013, + 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f, + 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b, + 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b, + 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb, + 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343, + 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f, + // Block 0x24, offset 0x900 + 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b, + 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b, + 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2, + 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809, + 0x918: 0x1617, 0x919: 0x1627, + // Block 0x25, offset 0x940 + 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757, + 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773, + 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3, + 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf, + 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff, + 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f, + 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867, + 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af, + 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93, + 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3, + 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917, + // Block 0x26, offset 0x980 + 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f, + 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983, + 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf, + 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3, + 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef, + 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23, + 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37, + 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63, + 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f, + 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692, + 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb, + 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f, + 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6, + 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9, + 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83, + 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3, + 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf, + 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7, + 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f, + 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b, + 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f, + // Block 0x28, offset 0xa00 + 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87, + 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb, + 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7, + 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663, + 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd, + 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7, + 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b, + 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f, + 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7, + 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700, + 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb, + // Block 0x29, offset 0xa40 + 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23, + 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53, + 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714, + 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b, + 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719, + 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728, + 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37, + 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57, + 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737, + 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741, + 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff, + 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637, + 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f, + 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093, + 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782, + 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3, + 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7, + 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133, + 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa, + 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4, + 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197, + // Block 0x2b, offset 0xac0 + 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7, + 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7, + 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b, + 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd, + 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f, + 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f, + 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273, + 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677, + 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7, + 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb, + 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f, + // Block 0x2c, offset 0xb00 + 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5, + 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa, + 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b, + 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7, + 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665, + 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f, + 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477, + 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693, + 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb, + 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b, + 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b, + // Block 0x2d, offset 0xb40 + 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567, + 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7, + 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7, + 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef, + 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30, + 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33, + 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f, + 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46, + 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c, + 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54, + // Block 0x5, offset 0x140 + 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a, + 0x14d: 0x5b, + 0x15c: 0x5c, 0x15f: 0x5d, + 0x162: 0x5e, 0x164: 0x5f, + 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65, + 0x170: 0x66, 0x173: 0x67, 0x177: 0x68, + 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15, + // Block 0x6, offset 0x180 + 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d, + 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70, + 0x1ab: 0x71, + 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77, + 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a, + // Block 0x8, offset 0x200 + 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d, + 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83, + 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86, + 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87, + 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88, + // Block 0x9, offset 0x240 + 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89, + 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a, + 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b, + 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c, + 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d, + 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87, + 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88, + 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89, + // Block 0xa, offset 0x280 + 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a, + 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b, + 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c, + 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d, + 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87, + 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88, + 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89, + 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b, + 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c, + 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d, + 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e, + // Block 0xc, offset 0x300 + 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e, + 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91, + 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95, + 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b, + // Block 0xd, offset 0x340 + 0x347: 0x9c, + 0x34b: 0x9d, 0x34d: 0x9e, + 0x368: 0x9f, 0x36b: 0xa0, + // Block 0xe, offset 0x380 + 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4, + 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7, + 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac, + 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae, + 0x3b0: 0x73, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xaf, 0x3ec: 0xb0, + // Block 0x10, offset 0x400 + 0x432: 0xb1, + // Block 0x11, offset 0x440 + 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4, + 0x449: 0xb5, + // Block 0x12, offset 0x480 + 0x480: 0xb6, + 0x4a3: 0xb7, 0x4a5: 0xb8, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xb9, + // Block 0x14, offset 0x500 + 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a, + 0x528: 0x2b, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 142 entries, 284 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae} + +// nfcSparseValues: 688 entries, 2752 bytes +var nfcSparseValues = [688]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x4778, lo: 0xa0, hi: 0xa1}, + {value: 0x47aa, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x48d6, lo: 0x8a, hi: 0x8a}, + {value: 0x48f4, lo: 0x8b, hi: 0x8b}, + {value: 0x36c7, lo: 0x8c, hi: 0x8c}, + {value: 0x36df, lo: 0x8d, hi: 0x8d}, + {value: 0x490c, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x36fd, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xd, offset 0x62 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x67 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x69 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x7a + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x82 + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x45b2, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x89 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x8c + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x45f2, lo: 0x9c, hi: 0x9d}, + {value: 0x4602, lo: 0x9f, hi: 0x9f}, + // Block 0x14, offset 0x93 + {value: 0x0000, lo: 0x03}, + {value: 0x462a, lo: 0xb3, hi: 0xb3}, + {value: 0x4632, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x97 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x460a, lo: 0x99, hi: 0x9b}, + {value: 0x4622, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x9b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x9d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x9f + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x463a, lo: 0x9c, hi: 0x9c}, + {value: 0x4642, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0xa8 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xac + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xb3 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xb8 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xbb + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xc5 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xc7 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xce + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xd6 + {value: 0x0000, lo: 0x02}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xd9 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xdb + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x24, offset 0xdd + {value: 0x0000, lo: 0x01}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xdf + {value: 0x0000, lo: 0x04}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xe4 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a66, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a6f, lo: 0xb5, hi: 0xb5}, + {value: 0x464a, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x4652, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xf5 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a78, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0x101 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0x103 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x109 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x10b + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x10d + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x10f + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x111 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x115 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x118 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x11d + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x120 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x123 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x127 + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x12c + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x135 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x137 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x13a + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x13c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x147 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x157 + {value: 0x0004, lo: 0x03}, + {value: 0x0433, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x15b + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x3f, offset 0x169 + {value: 0x427b, lo: 0x02}, + {value: 0x01b8, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x40, offset 0x16c + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x172 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x178 + {value: 0x6408, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x183 + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x187 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x189 + {value: 0x0000, lo: 0x01}, + {value: 0x4573, lo: 0x9c, hi: 0x9c}, + // Block 0x46, offset 0x18b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x47, offset 0x18d + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x48, offset 0x18f + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x49, offset 0x191 + {value: 0x0000, lo: 0x05}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xaf}, + // Block 0x4a, offset 0x197 + {value: 0x0000, lo: 0x03}, + {value: 0x4a81, lo: 0xb3, hi: 0xb3}, + {value: 0x4a81, lo: 0xb5, hi: 0xb6}, + {value: 0x4a81, lo: 0xba, hi: 0xbf}, + // Block 0x4b, offset 0x19b + {value: 0x0000, lo: 0x01}, + {value: 0x4a81, lo: 0x8f, hi: 0xa3}, + // Block 0x4c, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4d, offset 0x19f + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4e, offset 0x1a7 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4f, offset 0x1ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x50, offset 0x1ae + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x51, offset 0x1b0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x52, offset 0x1b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x53, offset 0x1b4 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x54, offset 0x1b7 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x55, offset 0x1b9 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x56, offset 0x1bb + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x57, offset 0x1bd + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x58, offset 0x1bf + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x59, offset 0x1c5 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x5a, offset 0x1c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x5b, offset 0x1ca + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5c, offset 0x1d1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5d, offset 0x1d7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5e, offset 0x1dd + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5f, offset 0x1e5 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x60, offset 0x1eb + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x61, offset 0x1f1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x62, offset 0x1f7 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x63, offset 0x1fb + {value: 0x0006, lo: 0x0d}, + {value: 0x4426, lo: 0x9d, hi: 0x9d}, + {value: 0x8115, lo: 0x9e, hi: 0x9e}, + {value: 0x4498, lo: 0x9f, hi: 0x9f}, + {value: 0x4486, lo: 0xaa, hi: 0xab}, + {value: 0x458a, lo: 0xac, hi: 0xac}, + {value: 0x4592, lo: 0xad, hi: 0xad}, + {value: 0x43de, lo: 0xae, hi: 0xb1}, + {value: 0x43fc, lo: 0xb2, hi: 0xb4}, + {value: 0x4414, lo: 0xb5, hi: 0xb6}, + {value: 0x4420, lo: 0xb8, hi: 0xb8}, + {value: 0x442c, lo: 0xb9, hi: 0xbb}, + {value: 0x4444, lo: 0xbc, hi: 0xbc}, + {value: 0x444a, lo: 0xbe, hi: 0xbe}, + // Block 0x64, offset 0x209 + {value: 0x0006, lo: 0x08}, + {value: 0x4450, lo: 0x80, hi: 0x81}, + {value: 0x445c, lo: 0x83, hi: 0x84}, + {value: 0x446e, lo: 0x86, hi: 0x89}, + {value: 0x4492, lo: 0x8a, hi: 0x8a}, + {value: 0x440e, lo: 0x8b, hi: 0x8b}, + {value: 0x43f6, lo: 0x8c, hi: 0x8c}, + {value: 0x443e, lo: 0x8d, hi: 0x8d}, + {value: 0x4468, lo: 0x8e, hi: 0x8e}, + // Block 0x65, offset 0x212 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x66, offset 0x215 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x67, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x68, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x69, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x6a, offset 0x21f + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xa0, hi: 0xa6}, + {value: 0x812d, lo: 0xa7, hi: 0xad}, + {value: 0x8132, lo: 0xae, hi: 0xaf}, + // Block 0x6b, offset 0x223 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6c, offset 0x228 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6d, offset 0x22a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6e, offset 0x22c + {value: 0x0000, lo: 0x04}, + {value: 0x4a81, lo: 0x9e, hi: 0x9f}, + {value: 0x4a81, lo: 0xa3, hi: 0xa3}, + {value: 0x4a81, lo: 0xa5, hi: 0xa6}, + {value: 0x4a81, lo: 0xaa, hi: 0xaf}, + // Block 0x6f, offset 0x231 + {value: 0x0000, lo: 0x05}, + {value: 0x4a81, lo: 0x82, hi: 0x87}, + {value: 0x4a81, lo: 0x8a, hi: 0x8f}, + {value: 0x4a81, lo: 0x92, hi: 0x97}, + {value: 0x4a81, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x70, offset 0x237 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x71, offset 0x239 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x72, offset 0x23b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x73, offset 0x23d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x243 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x75, offset 0x246 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x76, offset 0x249 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x77, offset 0x251 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x78, offset 0x258 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x79, offset 0x25b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x7a, offset 0x25e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x7b, offset 0x260 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x7c, offset 0x268 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x7d, offset 0x26b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7e, offset 0x272 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7f, offset 0x275 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x80, offset 0x27b + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x81, offset 0x27d + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x82, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x83, offset 0x282 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x84, offset 0x284 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x85, offset 0x286 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x86, offset 0x288 + {value: 0x0000, lo: 0x0c}, + {value: 0x4662, lo: 0x9e, hi: 0x9e}, + {value: 0x466c, lo: 0x9f, hi: 0x9f}, + {value: 0x46a0, lo: 0xa0, hi: 0xa0}, + {value: 0x46ae, lo: 0xa1, hi: 0xa1}, + {value: 0x46bc, lo: 0xa2, hi: 0xa2}, + {value: 0x46ca, lo: 0xa3, hi: 0xa3}, + {value: 0x46d8, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x295 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x4676, lo: 0xbb, hi: 0xbb}, + {value: 0x4680, lo: 0xbc, hi: 0xbc}, + {value: 0x46e6, lo: 0xbd, hi: 0xbd}, + {value: 0x4702, lo: 0xbe, hi: 0xbe}, + {value: 0x46f4, lo: 0xbf, hi: 0xbf}, + // Block 0x88, offset 0x29f + {value: 0x0000, lo: 0x01}, + {value: 0x4710, lo: 0x80, hi: 0x80}, + // Block 0x89, offset 0x2a1 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x8a, offset 0x2a3 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x8b, offset 0x2a9 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x8c, offset 0x2ab + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x8d, offset 0x2ae + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: 146925fc21092b17. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 90: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 90 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 92 blocks, 5888 entries, 11776 bytes +// The third block is the zero block. +var nfkcValues = [5888]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x471e, 0xc3: 0x2f79, 0xc4: 0x472d, 0xc5: 0x4732, + 0xc6: 0xa000, 0xc7: 0x473c, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x4741, 0xcb: 0x2ffb, + 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x4755, 0xd1: 0x3104, + 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x475f, 0xd5: 0x4764, 0xd6: 0x4773, + 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x47a5, 0xdd: 0x3235, + 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x47af, 0xe3: 0x3285, + 0xe4: 0x47be, 0xe5: 0x47c3, 0xe6: 0xa000, 0xe7: 0x47cd, 0xe8: 0x32ee, 0xe9: 0x32f3, + 0xea: 0x47d2, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x47e6, + 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x47f0, 0xf5: 0x47f5, + 0xf6: 0x4804, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3, + 0xfc: 0x4836, 0xfd: 0x3550, 0xff: 0x3569, + // Block 0x4, offset 0x100 + 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x4723, 0x103: 0x47b4, 0x104: 0x2f9c, 0x105: 0x32a8, + 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6, + 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5, + 0x112: 0x4746, 0x113: 0x47d7, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302, + 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339, + 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352, + 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e, + 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6, + 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0, + 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc, + 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac, + // Block 0x5, offset 0x140 + 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118, + 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c, + 0x14c: 0x4769, 0x14d: 0x47fa, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c, + 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483, + 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x478c, 0x15b: 0x481d, 0x15c: 0x317c, 0x15d: 0x348d, + 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x4791, 0x161: 0x4822, 0x162: 0x31a4, 0x163: 0x34ba, + 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x479b, 0x169: 0x482c, + 0x16a: 0x47a0, 0x16b: 0x4831, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2, + 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528, + 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267, + 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2dee, 0x185: 0x2df4, + 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a, + 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140, + 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8, + 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50, + 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5, + 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf, + 0x1aa: 0x4782, 0x1ab: 0x4813, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd, + 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334, + 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46, + 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316, + 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac, + 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479, + 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6, + 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5, + 0x1de: 0x305a, 0x1df: 0x3366, + 0x1e6: 0x4728, 0x1e7: 0x47b9, 0x1e8: 0x4750, 0x1e9: 0x47e1, + 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x476e, 0x1ef: 0x47ff, + 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f, + // Block 0x8, offset 0x200 + 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132, + 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932, + 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932, + 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d, + 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d, + 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d, + 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d, + 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d, + 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d, + 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132, + // Block 0x9, offset 0x240 + 0x240: 0x4a44, 0x241: 0x4a49, 0x242: 0x9932, 0x243: 0x4a4e, 0x244: 0x4a53, 0x245: 0x9936, + 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132, + 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132, + 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132, + 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135, + 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132, + 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132, + 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132, + 0x274: 0x0170, + 0x27a: 0x42a5, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x425a, 0x285: 0x4511, + 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625, + 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x4894, 0x2ad: 0x3697, 0x2ae: 0x48be, 0x2af: 0x36a9, + 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x48d6, 0x2cb: 0x48f4, + 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x490c, 0x2d0: 0x01be, 0x2d1: 0x01d0, + 0x2d2: 0x01ac, 0x2d3: 0x43a2, 0x2d4: 0x43a8, 0x2d5: 0x01fa, 0x2d6: 0x01e8, + 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7, + 0x2f9: 0x01a6, + // Block 0xc, offset 0x300 + 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b, + 0x306: 0xa000, 0x307: 0x3709, + 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3733, 0x342: 0x37b7, + 0x350: 0x370f, 0x351: 0x3793, + 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd, + 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf, + 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed, + 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805, + 0x378: 0x3787, 0x379: 0x380b, + // Block 0xe, offset 0x380 + 0x387: 0x1d61, + 0x391: 0x812d, + 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132, + 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132, + 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d, + 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132, + 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132, + 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a, + 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f, + 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116, + 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c, + 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132, + 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132, + 0x3de: 0x8132, 0x3df: 0x812d, + 0x3f0: 0x811e, 0x3f5: 0x1d84, + 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000, + 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000, + 0x412: 0x2d4e, + 0x434: 0x8102, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2d56, + 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8, + 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107, + 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0, + 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9, + 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be, + 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5, + 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa, + 0x46a: 0x01fd, + 0x478: 0x020c, + // Block 0x12, offset 0x480 + 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101, + 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116, + 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128, + 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137, + 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec, + 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5, + 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2, + 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0, + 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df, + 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85, + 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93, + 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c, + 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370, + 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a, + 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de, + 0x4f6: 0x475a, 0x4f7: 0x47eb, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7, + 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc, + // Block 0x14, offset 0x500 + 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a, + 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e, + 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9, + 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465, + 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x4787, 0x51b: 0x4818, 0x51c: 0x3997, 0x51d: 0x3b26, + 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4796, 0x523: 0x4827, + 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b, + 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4, + 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f, + 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49, + 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519, + // Block 0x15, offset 0x540 + 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532, + 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541, + 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582, + 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6, + 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7, + 0x560: 0x4737, 0x561: 0x47c8, 0x562: 0x2f83, 0x563: 0x328f, + 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15, + 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23, + 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a, + 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x474b, 0x579: 0x47dc, 0x57a: 0x3000, 0x57b: 0x330c, + 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69, + // Block 0x16, offset 0x580 + 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70, + 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1, + 0x58c: 0x477d, 0x58d: 0x480e, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf, + 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6, + 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5, + 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11, + 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73, + 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a, + 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578, + 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x489a, 0x5c1: 0x48a0, 0x5c2: 0x49b4, 0x5c3: 0x49cc, 0x5c4: 0x49bc, 0x5c5: 0x49d4, + 0x5c6: 0x49c4, 0x5c7: 0x49dc, 0x5c8: 0x4840, 0x5c9: 0x4846, 0x5ca: 0x4924, 0x5cb: 0x493c, + 0x5cc: 0x492c, 0x5cd: 0x4944, 0x5ce: 0x4934, 0x5cf: 0x494c, 0x5d0: 0x48ac, 0x5d1: 0x48b2, + 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0, + 0x5d8: 0x484c, 0x5d9: 0x4852, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00, + 0x5e0: 0x48c4, 0x5e1: 0x48ca, 0x5e2: 0x49e4, 0x5e3: 0x49fc, + 0x5e4: 0x49ec, 0x5e5: 0x4a04, 0x5e6: 0x49f4, 0x5e7: 0x4a0c, 0x5e8: 0x4858, 0x5e9: 0x485e, + 0x5ea: 0x4954, 0x5eb: 0x496c, 0x5ec: 0x495c, 0x5ed: 0x4974, 0x5ee: 0x4964, 0x5ef: 0x497c, + 0x5f0: 0x48dc, 0x5f1: 0x48e2, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38, + 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x4864, 0x5f9: 0x486a, 0x5fa: 0x3d18, 0x5fb: 0x3d30, + 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40, + // Block 0x18, offset 0x600 + 0x600: 0x48e8, 0x601: 0x48ee, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60, + 0x608: 0x4870, 0x609: 0x4876, 0x60a: 0x3d48, 0x60b: 0x3d58, + 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x48fa, 0x611: 0x4900, + 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8, + 0x619: 0x487c, 0x61b: 0x3d68, 0x61d: 0x3d70, + 0x61f: 0x3d78, 0x620: 0x4912, 0x621: 0x4918, 0x622: 0x4a14, 0x623: 0x4a2c, + 0x624: 0x4a1c, 0x625: 0x4a34, 0x626: 0x4a24, 0x627: 0x4a3c, 0x628: 0x4882, 0x629: 0x4888, + 0x62a: 0x4984, 0x62b: 0x499c, 0x62c: 0x498c, 0x62d: 0x49a4, 0x62e: 0x4994, 0x62f: 0x49ac, + 0x630: 0x488e, 0x631: 0x43b4, 0x632: 0x3691, 0x633: 0x43ba, 0x634: 0x48b8, 0x635: 0x43c0, + 0x636: 0x36a3, 0x637: 0x43c6, 0x638: 0x36c1, 0x639: 0x43cc, 0x63a: 0x36d9, 0x63b: 0x43d2, + 0x63c: 0x4906, 0x63d: 0x43d8, + // Block 0x19, offset 0x640 + 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac, + 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee, + 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0, + 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2, + 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134, + 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a, + 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88, + 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a, + 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98, + 0x676: 0x48a6, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x4384, + 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287, + // Block 0x1a, offset 0x680 + 0x680: 0x42a0, 0x681: 0x4518, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0, + 0x686: 0x48d0, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x438a, 0x68a: 0x360d, 0x68b: 0x4390, + 0x68c: 0x3619, 0x68d: 0x451f, 0x68e: 0x4526, 0x68f: 0x452d, 0x690: 0x36b5, 0x691: 0x36af, + 0x692: 0x3e00, 0x693: 0x457a, 0x696: 0x36bb, 0x697: 0x3e10, + 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4396, 0x69d: 0x4534, + 0x69e: 0x453b, 0x69f: 0x4542, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x4582, + 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b, + 0x6aa: 0x364f, 0x6ab: 0x43a2, 0x6ac: 0x3649, 0x6ad: 0x450a, 0x6ae: 0x4511, 0x6af: 0x0081, + 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8, + 0x6b6: 0x491e, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x439c, 0x6ba: 0x366d, 0x6bb: 0x43ae, + 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8, + 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051, + 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053, + 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d, + 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065, + 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8, + 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075, + 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b, + 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215, + 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98, + 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0, + // Block 0x1c, offset 0x700 + 0x700: 0x0463, 0x705: 0x0049, + 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095, + 0x710: 0x222e, 0x711: 0x223a, + 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8, + 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0, + 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963, + 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071, + 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b, + 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62, + 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50, + 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b, + // Block 0x1d, offset 0x740 + 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000, + 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b, + 0x74d: 0xa000, + 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29, + 0x764: 0xa000, 0x765: 0xa000, + 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a, + 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45, + 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000, + 0x77c: 0xa000, 0x77d: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d, + 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b, + 0x791: 0xa000, + 0x792: 0xa000, + 0x7a2: 0xa000, + 0x7a8: 0xa000, 0x7a9: 0xa000, + 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5, + 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000, + // Block 0x1f, offset 0x7c0 + 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029, + 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882, + 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894, + 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c, + 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84, + 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a, + // Block 0x20, offset 0x800 + 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8, + 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb, + 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60, + 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78, + 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8, + 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10, + 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28, + 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40, + 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58, + 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d, + 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055, + // Block 0x21, offset 0x840 + 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713, + 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab, + 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803, + 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887, + 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db, + 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb, + 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b, + 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7, + 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33, + 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63, + 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f, + // Block 0x22, offset 0x880 + 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb, + 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b, + 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb, + 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3, + 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f, + 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83, + 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7, + 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f, + 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf, + 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f, + 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3, + 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb, + 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b, + 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b, + 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf, + 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f, + 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f, + 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503, + 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f, + 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f, + 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593, + // Block 0x24, offset 0x900 + 0x906: 0xa000, 0x90b: 0xa000, + 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000, + 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000, + 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000, + 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60, + 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78, + 0x92f: 0xa000, + 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000, + 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000, + 0x93c: 0x3fc0, 0x93d: 0x3fc8, + // Block 0x25, offset 0x940 + 0x954: 0x3f00, + 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x4372, 0x95c: 0x4378, 0x95d: 0xa000, + 0x95e: 0x3fd0, 0x95f: 0x26b4, + 0x966: 0xa000, + 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000, + 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000, + 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000, + 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000, + // Block 0x26, offset 0x980 + 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040, + 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050, + 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060, + 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080, + 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0, + 0x9af: 0xa000, + 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8, + 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0, + 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337, + 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f, + 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x42dc, 0x9d0: 0x42e1, 0x9d1: 0x42e6, + 0x9d2: 0x42eb, 0x9d3: 0x42f0, 0x9d4: 0x42f5, 0x9d5: 0x42fa, 0x9d6: 0x42ff, 0x9d7: 0x4304, + 0x9d8: 0x4309, 0x9d9: 0x430e, 0x9da: 0x4313, 0x9db: 0x4318, 0x9dc: 0x431d, 0x9dd: 0x4322, + 0x9de: 0x4327, 0x9df: 0x432c, 0x9e0: 0x4331, 0x9e1: 0x4336, 0x9e2: 0x433b, 0x9e3: 0x4340, + 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef, + 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403, + 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383, + 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b, + 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab, + // Block 0x28, offset 0xa00 + 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb, + 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7, + 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3, + 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7, + 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff, + 0xa1e: 0x098f, 0xa1f: 0x072f, + // Block 0x29, offset 0xa40 + 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072, + 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096, + 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741, + 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780, + 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac, + 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108, + 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0, + 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e, + 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144, + 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114, + 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6, + // Block 0x2a, offset 0xa80 + 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03, + 0xa86: 0x0ca7, 0xa87: 0x10c7, + 0xa90: 0x1bc4, 0xa91: 0x18a9, + 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb, + 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3, + 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327, + 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b, + 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20, + 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50, + 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88, + 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58, + // Block 0x2b, offset 0xac0 + 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af, + 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f, + 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b, + 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f, + 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f, + 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b, + 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f, + 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b, + 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee, + 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900, + 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912, + // Block 0x2c, offset 0xb00 + 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11, + 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0, + 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3, + 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7, + 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f, + 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b, + 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543, + 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b, + 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f, + 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597, + 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3, + // Block 0x2d, offset 0xb40 + 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a, + 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2, + 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6, + 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c, + 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6, + 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da, + 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8, + 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51, + 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920, + 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06, + 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de, + // Block 0x2e, offset 0xb80 + 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c, + 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90, + 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6, + 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984, + 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07, + 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4, + 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2, + 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a, + 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47, + 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701, + 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969, + 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35, + 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c, + 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9, + 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0, + 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40, + 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996, + 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad, + 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38, + 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b, + 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984, + // Block 0x30, offset 0xc00 + 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd, + 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e, + 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e, + 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990, + 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4, + 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee, + 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186, + 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0, + 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258, + 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e, + 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10, + // Block 0x31, offset 0xc40 + 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb, + 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943, + 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3, + 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43, + 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87, + 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283, + 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f, + 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853, + 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b, + 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b, + 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b, + // Block 0x32, offset 0xc80 + 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b, + 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f, + 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7, + 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127, + 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357, + 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873, + 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3, + 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b, + 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57, + 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb, + 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f, + 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3, + 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83, + 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193, + 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b, + 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b, + 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f, + 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b, + 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753, + 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777, + 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73, + // Block 0x34, offset 0xd00 + 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3, + 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47, + 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af, + 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df, + 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817, + 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3, + 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457, + 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b, + 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27, + 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f, + 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b, + // Block 0x35, offset 0xd40 + 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03, + 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27, + 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af, + 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3, + 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb, + 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353, + 0xd65: 0x1407, 0xd66: 0x1433, + 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7, + 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897, + 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93, + 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3, + // Block 0x36, offset 0xd80 + 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b, + 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f, + 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f, + 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f, + 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff, + 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f, + 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f, + 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3, + 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7, + 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963, + 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b, + 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb, + 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf, + 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f, + 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013, + 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f, + 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b, + 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b, + 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb, + 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343, + 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f, + // Block 0x38, offset 0xe00 + 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b, + 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b, + 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2, + 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809, + 0xe18: 0x1617, 0xe19: 0x1627, + // Block 0x39, offset 0xe40 + 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f, + 0xe46: 0x1a5f, + 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70, + 0xe5d: 0x4426, + 0xe5e: 0x8115, 0xe5f: 0x4498, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221, + 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017, + 0xe6a: 0x4486, 0xe6b: 0x448c, 0xe6c: 0x458a, 0xe6d: 0x4592, 0xe6e: 0x43de, 0xe6f: 0x43e4, + 0xe70: 0x43ea, 0xe71: 0x43f0, 0xe72: 0x43fc, 0xe73: 0x4402, 0xe74: 0x4408, 0xe75: 0x4414, + 0xe76: 0x441a, 0xe78: 0x4420, 0xe79: 0x442c, 0xe7a: 0x4432, 0xe7b: 0x4438, + 0xe7c: 0x4444, 0xe7e: 0x444a, + // Block 0x3a, offset 0xe80 + 0xe80: 0x4450, 0xe81: 0x4456, 0xe83: 0x445c, 0xe84: 0x4462, + 0xe86: 0x446e, 0xe87: 0x4474, 0xe88: 0x447a, 0xe89: 0x4480, 0xe8a: 0x4492, 0xe8b: 0x440e, + 0xe8c: 0x43f6, 0xe8d: 0x443e, 0xe8e: 0x4468, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299, + 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5, + 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab, + 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8, + 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c, + 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2, + 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1, + 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4, + 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7, + // Block 0x3b, offset 0xec0 + 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd, + 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9, + 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5, + 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1, + 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de, + 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7, + 0xee4: 0x4504, 0xee5: 0x4504, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed, + 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308, + 0xef0: 0x44fe, 0xef1: 0x44fe, + // Block 0x3c, offset 0xf00 + 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6, + 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f, + 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc, + 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d, + 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9, + 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c, + 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0, + 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302, + // Block 0x3d, offset 0xf40 + 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89, + 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb, + 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded, + 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29, + 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b, + 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9, + 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00, + 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32, + 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50, + 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e, + 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87, + // Block 0x3e, offset 0xf80 + 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf, + 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd, + 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff, + 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022, + 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x44b6, 0xf9c: 0x44bc, 0xf9d: 0x44f2, + 0xf9e: 0x4549, 0xf9f: 0x4550, 0xfa0: 0x4557, 0xfa1: 0x455e, 0xfa2: 0x4565, 0xfa3: 0x456c, + 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7, + 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6, + 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8, + 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10, + 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96, + 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1, + 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x44f2, 0xfd1: 0x2027, + 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1, + 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e, + 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5, + 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29, + 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60, + 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9, + 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05, + 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d, + // Block 0x40, offset 0x1000 + 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64, + 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91, + 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe, + 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff, + 0x1018: 0x2004, 0x1019: 0x44e6, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031, + 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4, + 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92, + 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0, + 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x459a, 0x1033: 0x45a2, 0x1034: 0x45aa, 0x1035: 0x1ef1, + 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74, + 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33, + // Block 0x41, offset 0x1040 + 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba, + 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88, + 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1, + 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74, + 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f, + 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd, + 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d, + 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88, + 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b, + 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb, + 0x107c: 0x449e, 0x107d: 0x449e, + // Block 0x42, offset 0x1080 + 0x1090: 0x2311, 0x1091: 0x2326, + 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357, + 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4, + 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5, + 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc, + 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430, + 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c, + 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f, + 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df, + 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e, + 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c, + 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548, + 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c, + 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365, + 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406, + 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e, + 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca, + 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7, + 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f, + // Block 0x44, offset 0x1100 + 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b, + 0x1106: 0x23c0, 0x1107: 0x2556, + 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da, + 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc, + 0x113c: 0x27d1, + // Block 0x45, offset 0x1140 + 0x1150: 0x0019, 0x1151: 0x0483, + 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf, + 0x1158: 0x04c3, 0x1159: 0x1b5c, + 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132, + 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d, + 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132, + 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011, + 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab, + 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b, + // Block 0x46, offset 0x1180 + 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7, + 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269, + 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483, + 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003, + 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7, + 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b, + 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009, + 0x11aa: 0x000b, 0x11ab: 0x0041, + 0x11b0: 0x42aa, 0x11b1: 0x44c2, 0x11b2: 0x42af, 0x11b4: 0x42b4, + 0x11b6: 0x42b9, 0x11b7: 0x44c8, 0x11b8: 0x42be, 0x11b9: 0x44ce, 0x11ba: 0x42c3, 0x11bb: 0x44d4, + 0x11bc: 0x42c8, 0x11bd: 0x44da, 0x11be: 0x42cd, 0x11bf: 0x44e0, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x0236, 0x11c1: 0x44a4, 0x11c2: 0x44a4, 0x11c3: 0x44aa, 0x11c4: 0x44aa, 0x11c5: 0x44ec, + 0x11c6: 0x44ec, 0x11c7: 0x44b0, 0x11c8: 0x44b0, 0x11c9: 0x44f8, 0x11ca: 0x44f8, 0x11cb: 0x44f8, + 0x11cc: 0x44f8, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c, + 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242, + 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248, + 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b, + 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251, + 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a, + 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260, + 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263, + 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266, + // Block 0x48, offset 0x1200 + 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c, + 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f, + 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275, + 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278, + 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e, + 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281, + 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287, + 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d, + 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00, + 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82, + 0x123c: 0x1f82, + // Block 0x49, offset 0x1240 + 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b, + 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097, + 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3, + 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af, + 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb, + 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f, + 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7, + 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f, + 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb, + 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503, + 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f, + 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547, + 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f, + 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583, + 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7, + 0x129e: 0x4a5a, 0x129f: 0x4a60, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4345, + 0x12a4: 0x031b, 0x12a5: 0x434a, 0x12a6: 0x434f, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327, + 0x12aa: 0x4354, 0x12ab: 0x4359, 0x12ac: 0x435e, 0x12ad: 0x4363, 0x12ae: 0x4368, 0x12af: 0x436d, + 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337, + 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f, + 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b, + // Block 0x4b, offset 0x12c0 + 0x12c2: 0x42dc, 0x12c3: 0x42e1, 0x12c4: 0x42e6, 0x12c5: 0x42eb, + 0x12c6: 0x42f0, 0x12c7: 0x42f5, 0x12ca: 0x42fa, 0x12cb: 0x42ff, + 0x12cc: 0x4304, 0x12cd: 0x4309, 0x12ce: 0x430e, 0x12cf: 0x4313, + 0x12d2: 0x4318, 0x12d3: 0x431d, 0x12d4: 0x4322, 0x12d5: 0x4327, 0x12d6: 0x432c, 0x12d7: 0x4331, + 0x12da: 0x4336, 0x12db: 0x433b, 0x12dc: 0x4340, + 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264, + 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b, + 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d, + 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085, + 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091, + 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d, + 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9, + 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5, + 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176, + 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188, + 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a, + 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9, + 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5, + // Block 0x4d, offset 0x1340 + 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0, + 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209, + 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027, + 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033, + 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b, + 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023, + 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f, + 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027, + 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033, + 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b, + 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a, + 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e, + 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263, + 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e, + 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4, + 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248, + 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290, + 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f, + 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242, + 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272, + // Block 0x4f, offset 0x13c0 + 0x13c2: 0x0248, + 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e, + 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263, + 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e, + 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4, + 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248, + 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290, + 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f, + 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242, + 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272, + 0x13fc: 0x0293, 0x13fe: 0x02cc, + // Block 0x50, offset 0x1400 + 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a, + 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e, + 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263, + 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e, + 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, + 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251, + 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290, + 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f, + 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242, + 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272, + // Block 0x51, offset 0x1440 + 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8, + 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927, + 0x1450: 0x1a8c, 0x1451: 0x1a90, + 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8, + 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0, + 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8, + 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0, + 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1, + 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d, + 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059, + 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061, + // Block 0x52, offset 0x1480 + 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503, + 0x1490: 0x0c0f, 0x1491: 0x0a47, + 0x1492: 0x08d3, 0x1493: 0x465a, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff, + 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b, + 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b, + 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf, + 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b, + 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43, + 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757, + 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773, + 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3, + 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf, + 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff, + 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f, + 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867, + 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af, + 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93, + 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3, + 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917, + // Block 0x54, offset 0x1500 + 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f, + 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983, + 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf, + 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3, + 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef, + 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23, + 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37, + 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63, + 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f, + 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692, + 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7, + // Block 0x55, offset 0x1540 + 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb, + 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f, + 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6, + 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9, + 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83, + 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3, + 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf, + 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7, + 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f, + 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b, + 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f, + // Block 0x56, offset 0x1580 + 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87, + 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb, + 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7, + 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663, + 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd, + 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7, + 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b, + 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f, + 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7, + 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700, + 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23, + 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53, + 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714, + 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b, + 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719, + 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728, + 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37, + 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57, + 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737, + 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741, + 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b, + // Block 0x58, offset 0x1600 + 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff, + 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637, + 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f, + 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093, + 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782, + 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3, + 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7, + 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133, + 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa, + 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4, + 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197, + // Block 0x59, offset 0x1640 + 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7, + 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7, + 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b, + 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd, + 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f, + 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f, + 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273, + 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677, + 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7, + 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb, + 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f, + // Block 0x5a, offset 0x1680 + 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5, + 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa, + 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b, + 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7, + 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665, + 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f, + 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477, + 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693, + 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb, + 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b, + 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567, + 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7, + 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7, + 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef, + 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868, +} + +// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60, + 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c, + 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73, + 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79, + 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81, + // Block 0x5, offset 0x140 + 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88, + 0x14d: 0x89, + 0x15c: 0x8a, 0x15f: 0x8b, + 0x162: 0x8c, 0x164: 0x8d, + 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93, + 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97, + 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18, + // Block 0x6, offset 0x180 + 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d, + 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0, + 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1, + 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4, + 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8, + 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26, + 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e, + // Block 0x8, offset 0x200 + 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2, + 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8, + 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc, + 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd, + 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe, + // Block 0x9, offset 0x240 + 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf, + 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0, + 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1, + 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2, + 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3, + 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd, + 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe, + 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf, + // Block 0xa, offset 0x280 + 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0, + 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1, + 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2, + 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3, + 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd, + 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe, + 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf, + 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1, + 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2, + 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3, + 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4, + // Block 0xc, offset 0x300 + 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32, + 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a, + 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42, + 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49, + // Block 0xd, offset 0x340 + 0x347: 0xc6, + 0x34b: 0xc7, 0x34d: 0xc8, + 0x368: 0xc9, 0x36b: 0xca, + // Block 0xe, offset 0x380 + 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce, + 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1, + 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6, + 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9, + 0x3b0: 0xd7, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xda, 0x3ec: 0xdb, + // Block 0x10, offset 0x400 + 0x432: 0xdc, + // Block 0x11, offset 0x440 + 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf, + 0x449: 0xe0, + 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8, + 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b, + // Block 0x12, offset 0x480 + 0x480: 0xef, + 0x4a3: 0xf0, 0x4a5: 0xf1, + 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3, + 0x4c8: 0x50, 0x4c9: 0xf4, + // Block 0x14, offset 0x500 + 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58, + 0x528: 0x59, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 155 entries, 310 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361} + +// nfkcSparseValues: 875 entries, 3500 bytes +var nfkcSparseValues = [875]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x4278, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x4264, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x425a, lo: 0xb4, hi: 0xb4}, + {value: 0x01dc, lo: 0xb5, hi: 0xb5}, + {value: 0x4291, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x221c, lo: 0xbc, hi: 0xbc}, + {value: 0x2210, lo: 0xbd, hi: 0xbd}, + {value: 0x22b2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x4778, lo: 0xa0, hi: 0xa1}, + {value: 0x47aa, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0003, lo: 0x08}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0119, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0143, lo: 0xb4, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb7}, + {value: 0x00b3, lo: 0xb8, hi: 0xb8}, + // Block 0x3, offset 0x1b + {value: 0x000a, lo: 0x09}, + {value: 0x426e, lo: 0x98, hi: 0x98}, + {value: 0x4273, lo: 0x99, hi: 0x9a}, + {value: 0x4296, lo: 0x9b, hi: 0x9b}, + {value: 0x425f, lo: 0x9c, hi: 0x9c}, + {value: 0x4282, lo: 0x9d, hi: 0x9d}, + {value: 0x0113, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x0167, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x25 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x37a5, lo: 0x90, hi: 0x90}, + {value: 0x37b1, lo: 0x91, hi: 0x91}, + {value: 0x379f, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3817, lo: 0x97, hi: 0x97}, + {value: 0x37e1, lo: 0x9c, hi: 0x9c}, + {value: 0x37c9, lo: 0x9d, hi: 0x9d}, + {value: 0x37f3, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x381d, lo: 0xb6, hi: 0xb6}, + {value: 0x3823, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x35 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x37 + {value: 0x0001, lo: 0x04}, + {value: 0x8113, lo: 0x81, hi: 0x82}, + {value: 0x8132, lo: 0x84, hi: 0x84}, + {value: 0x812d, lo: 0x85, hi: 0x85}, + {value: 0x810d, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3c + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x97}, + {value: 0x8119, lo: 0x98, hi: 0x98}, + {value: 0x811a, lo: 0x99, hi: 0x99}, + {value: 0x811b, lo: 0x9a, hi: 0x9a}, + {value: 0x3841, lo: 0xa2, hi: 0xa2}, + {value: 0x3847, lo: 0xa3, hi: 0xa3}, + {value: 0x3853, lo: 0xa4, hi: 0xa4}, + {value: 0x384d, lo: 0xa5, hi: 0xa5}, + {value: 0x3859, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x47 + {value: 0x0000, lo: 0x0e}, + {value: 0x386b, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x385f, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x3865, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8132, lo: 0x96, hi: 0x9c}, + {value: 0x8132, lo: 0x9f, hi: 0xa2}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa4}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x56 + {value: 0x0000, lo: 0x0c}, + {value: 0x811f, lo: 0x91, hi: 0x91}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x812d, lo: 0xb1, hi: 0xb1}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb5, hi: 0xb6}, + {value: 0x812d, lo: 0xb7, hi: 0xb9}, + {value: 0x8132, lo: 0xba, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbc}, + {value: 0x8132, lo: 0xbd, hi: 0xbd}, + {value: 0x812d, lo: 0xbe, hi: 0xbe}, + {value: 0x8132, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x63 + {value: 0x0005, lo: 0x07}, + {value: 0x8132, lo: 0x80, hi: 0x80}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x83}, + {value: 0x812d, lo: 0x84, hi: 0x85}, + {value: 0x812d, lo: 0x86, hi: 0x87}, + {value: 0x812d, lo: 0x88, hi: 0x89}, + {value: 0x8132, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6b + {value: 0x0000, lo: 0x03}, + {value: 0x8132, lo: 0xab, hi: 0xb1}, + {value: 0x812d, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb3}, + // Block 0xc, offset 0x6f + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0x96, hi: 0x99}, + {value: 0x8132, lo: 0x9b, hi: 0xa3}, + {value: 0x8132, lo: 0xa5, hi: 0xa7}, + {value: 0x8132, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x74 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x76 + {value: 0x0000, lo: 0x10}, + {value: 0x8132, lo: 0x94, hi: 0xa1}, + {value: 0x812d, lo: 0xa3, hi: 0xa3}, + {value: 0x8132, lo: 0xa4, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa8}, + {value: 0x812d, lo: 0xa9, hi: 0xa9}, + {value: 0x8132, lo: 0xaa, hi: 0xac}, + {value: 0x812d, lo: 0xad, hi: 0xaf}, + {value: 0x8116, lo: 0xb0, hi: 0xb0}, + {value: 0x8117, lo: 0xb1, hi: 0xb1}, + {value: 0x8118, lo: 0xb2, hi: 0xb2}, + {value: 0x8132, lo: 0xb3, hi: 0xb5}, + {value: 0x812d, lo: 0xb6, hi: 0xb6}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x812d, lo: 0xb9, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x3ed8, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x3ee0, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x3ee8, lo: 0xb4, hi: 0xb4}, + {value: 0x9902, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x8f + {value: 0x0008, lo: 0x06}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x91, hi: 0x91}, + {value: 0x812d, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x93, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x94}, + {value: 0x45b2, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x96 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x99 + {value: 0x0008, lo: 0x06}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2c9e, lo: 0x8b, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x45f2, lo: 0x9c, hi: 0x9d}, + {value: 0x4602, lo: 0x9f, hi: 0x9f}, + // Block 0x13, offset 0xa0 + {value: 0x0000, lo: 0x03}, + {value: 0x462a, lo: 0xb3, hi: 0xb3}, + {value: 0x4632, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0xa4 + {value: 0x0008, lo: 0x03}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x460a, lo: 0x99, hi: 0x9b}, + {value: 0x4622, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0xa8 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xaa + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xac + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2cb6, lo: 0x88, hi: 0x88}, + {value: 0x2cae, lo: 0x8b, hi: 0x8b}, + {value: 0x2cbe, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x463a, lo: 0x9c, hi: 0x9c}, + {value: 0x4642, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xb5 + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2cc6, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xb9 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cce, lo: 0x8a, hi: 0x8a}, + {value: 0x2cde, lo: 0x8b, hi: 0x8b}, + {value: 0x2cd6, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xc0 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x3ef0, lo: 0x88, hi: 0x88}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x8120, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xc5 + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xc8 + {value: 0x0000, lo: 0x09}, + {value: 0x2ce6, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2cee, lo: 0x87, hi: 0x87}, + {value: 0x2cf6, lo: 0x88, hi: 0x88}, + {value: 0x2f50, lo: 0x8a, hi: 0x8a}, + {value: 0x2dd8, lo: 0x8b, hi: 0x8b}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xd2 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xd4 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2cfe, lo: 0x8a, hi: 0x8a}, + {value: 0x2d0e, lo: 0x8b, hi: 0x8b}, + {value: 0x2d06, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xdb + {value: 0x6bea, lo: 0x07}, + {value: 0x9904, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x3ef8, lo: 0x9a, hi: 0x9a}, + {value: 0x2f58, lo: 0x9c, hi: 0x9c}, + {value: 0x2de3, lo: 0x9d, hi: 0x9d}, + {value: 0x2d16, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xe3 + {value: 0x0000, lo: 0x03}, + {value: 0x2621, lo: 0xb3, hi: 0xb3}, + {value: 0x8122, lo: 0xb8, hi: 0xb9}, + {value: 0x8104, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xe7 + {value: 0x0000, lo: 0x01}, + {value: 0x8123, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xe9 + {value: 0x0000, lo: 0x02}, + {value: 0x2636, lo: 0xb3, hi: 0xb3}, + {value: 0x8124, lo: 0xb8, hi: 0xb9}, + // Block 0x23, offset 0xec + {value: 0x0000, lo: 0x03}, + {value: 0x8125, lo: 0x88, hi: 0x8b}, + {value: 0x2628, lo: 0x9c, hi: 0x9c}, + {value: 0x262f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xf0 + {value: 0x0000, lo: 0x05}, + {value: 0x030b, lo: 0x8c, hi: 0x8c}, + {value: 0x812d, lo: 0x98, hi: 0x99}, + {value: 0x812d, lo: 0xb5, hi: 0xb5}, + {value: 0x812d, lo: 0xb7, hi: 0xb7}, + {value: 0x812b, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xf6 + {value: 0x0000, lo: 0x10}, + {value: 0x2644, lo: 0x83, hi: 0x83}, + {value: 0x264b, lo: 0x8d, hi: 0x8d}, + {value: 0x2652, lo: 0x92, hi: 0x92}, + {value: 0x2659, lo: 0x97, hi: 0x97}, + {value: 0x2660, lo: 0x9c, hi: 0x9c}, + {value: 0x263d, lo: 0xa9, hi: 0xa9}, + {value: 0x8126, lo: 0xb1, hi: 0xb1}, + {value: 0x8127, lo: 0xb2, hi: 0xb2}, + {value: 0x4a66, lo: 0xb3, hi: 0xb3}, + {value: 0x8128, lo: 0xb4, hi: 0xb4}, + {value: 0x4a6f, lo: 0xb5, hi: 0xb5}, + {value: 0x464a, lo: 0xb6, hi: 0xb6}, + {value: 0x468a, lo: 0xb7, hi: 0xb7}, + {value: 0x4652, lo: 0xb8, hi: 0xb8}, + {value: 0x4695, lo: 0xb9, hi: 0xb9}, + {value: 0x8127, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0x107 + {value: 0x0000, lo: 0x0b}, + {value: 0x8127, lo: 0x80, hi: 0x80}, + {value: 0x4a78, lo: 0x81, hi: 0x81}, + {value: 0x8132, lo: 0x82, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0x86, hi: 0x87}, + {value: 0x266e, lo: 0x93, hi: 0x93}, + {value: 0x2675, lo: 0x9d, hi: 0x9d}, + {value: 0x267c, lo: 0xa2, hi: 0xa2}, + {value: 0x2683, lo: 0xa7, hi: 0xa7}, + {value: 0x268a, lo: 0xac, hi: 0xac}, + {value: 0x2667, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x115 + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2d1e, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x11d + {value: 0x0000, lo: 0x01}, + {value: 0x030f, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x11f + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x121 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x123 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x125 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x129 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x94, hi: 0x94}, + {value: 0x8104, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x12c + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x92, hi: 0x92}, + {value: 0x8132, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x12f + {value: 0x0000, lo: 0x01}, + {value: 0x8131, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x131 + {value: 0x0004, lo: 0x02}, + {value: 0x812e, lo: 0xb9, hi: 0xba}, + {value: 0x812d, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x134 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x97, hi: 0x97}, + {value: 0x812d, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x137 + {value: 0x0000, lo: 0x03}, + {value: 0x8104, lo: 0xa0, hi: 0xa0}, + {value: 0x8132, lo: 0xb5, hi: 0xbc}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x13b + {value: 0x0000, lo: 0x04}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + {value: 0x812d, lo: 0xb5, hi: 0xba}, + {value: 0x8132, lo: 0xbb, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x37, offset 0x140 + {value: 0x0000, lo: 0x08}, + {value: 0x2d66, lo: 0x80, hi: 0x80}, + {value: 0x2d6e, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2d76, lo: 0x83, hi: 0x83}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xac}, + {value: 0x8132, lo: 0xad, hi: 0xb3}, + // Block 0x38, offset 0x149 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xaa, hi: 0xab}, + // Block 0x39, offset 0x14b + {value: 0x0000, lo: 0x02}, + {value: 0x8102, lo: 0xa6, hi: 0xa6}, + {value: 0x8104, lo: 0xb2, hi: 0xb3}, + // Block 0x3a, offset 0x14e + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x3b, offset 0x150 + {value: 0x0000, lo: 0x0a}, + {value: 0x8132, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812d, lo: 0x95, hi: 0x99}, + {value: 0x8132, lo: 0x9a, hi: 0x9b}, + {value: 0x812d, lo: 0x9c, hi: 0x9f}, + {value: 0x8132, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812d, lo: 0xad, hi: 0xad}, + {value: 0x8132, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb8, hi: 0xb9}, + // Block 0x3c, offset 0x15b + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00e6, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00ef, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3d, offset 0x166 + {value: 0x0000, lo: 0x0f}, + {value: 0x8132, lo: 0x80, hi: 0x81}, + {value: 0x812d, lo: 0x82, hi: 0x82}, + {value: 0x8132, lo: 0x83, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8a}, + {value: 0x8132, lo: 0x8b, hi: 0x8c}, + {value: 0x8135, lo: 0x8d, hi: 0x8d}, + {value: 0x812a, lo: 0x8e, hi: 0x8e}, + {value: 0x812d, lo: 0x8f, hi: 0x8f}, + {value: 0x8129, lo: 0x90, hi: 0x90}, + {value: 0x8132, lo: 0x91, hi: 0xb5}, + {value: 0x8132, lo: 0xbb, hi: 0xbb}, + {value: 0x8134, lo: 0xbc, hi: 0xbc}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + {value: 0x8132, lo: 0xbe, hi: 0xbe}, + {value: 0x812d, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x176 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x043b, lo: 0x91, hi: 0x91}, + {value: 0x429b, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x1873, lo: 0xa5, hi: 0xa5}, + {value: 0x1b5c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x2691, lo: 0xb3, hi: 0xb3}, + {value: 0x27fe, lo: 0xb4, hi: 0xb4}, + {value: 0x2698, lo: 0xb6, hi: 0xb6}, + {value: 0x2808, lo: 0xb7, hi: 0xb7}, + {value: 0x186d, lo: 0xbc, hi: 0xbc}, + {value: 0x4269, lo: 0xbe, hi: 0xbe}, + // Block 0x3f, offset 0x184 + {value: 0x0002, lo: 0x0d}, + {value: 0x1933, lo: 0x87, hi: 0x87}, + {value: 0x1930, lo: 0x88, hi: 0x88}, + {value: 0x1870, lo: 0x89, hi: 0x89}, + {value: 0x298e, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x0467, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x40, offset 0x192 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x0467, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x0104, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1999, lo: 0xa8, hi: 0xa8}, + // Block 0x41, offset 0x1a2 + {value: 0x0000, lo: 0x0d}, + {value: 0x8132, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8132, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8132, lo: 0x9b, hi: 0x9c}, + {value: 0x8132, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8132, lo: 0xa7, hi: 0xa7}, + {value: 0x812d, lo: 0xa8, hi: 0xa8}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812d, lo: 0xac, hi: 0xaf}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + // Block 0x42, offset 0x1b0 + {value: 0x0007, lo: 0x06}, + {value: 0x2180, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3bb9, lo: 0x9a, hi: 0x9b}, + {value: 0x3bc7, lo: 0xae, hi: 0xae}, + // Block 0x43, offset 0x1b7 + {value: 0x000e, lo: 0x05}, + {value: 0x3bce, lo: 0x8d, hi: 0x8e}, + {value: 0x3bd5, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x44, offset 0x1bd + {value: 0x0173, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3be3, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3bea, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3bf1, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3bf8, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3bff, lo: 0xa6, hi: 0xa6}, + {value: 0x269f, lo: 0xac, hi: 0xad}, + {value: 0x26a6, lo: 0xaf, hi: 0xaf}, + {value: 0x281c, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x45, offset 0x1cc + {value: 0x0007, lo: 0x03}, + {value: 0x3c68, lo: 0xa0, hi: 0xa1}, + {value: 0x3c92, lo: 0xa2, hi: 0xa3}, + {value: 0x3cbc, lo: 0xaa, hi: 0xad}, + // Block 0x46, offset 0x1d0 + {value: 0x0004, lo: 0x01}, + {value: 0x048b, lo: 0xa9, hi: 0xaa}, + // Block 0x47, offset 0x1d2 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x48, offset 0x1d6 + {value: 0x0000, lo: 0x01}, + {value: 0x299b, lo: 0x8c, hi: 0x8c}, + // Block 0x49, offset 0x1d8 + {value: 0x0263, lo: 0x02}, + {value: 0x1b8c, lo: 0xb4, hi: 0xb4}, + {value: 0x192d, lo: 0xb5, hi: 0xb6}, + // Block 0x4a, offset 0x1db + {value: 0x0000, lo: 0x01}, + {value: 0x4573, lo: 0x9c, hi: 0x9c}, + // Block 0x4b, offset 0x1dd + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4c, offset 0x1e0 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xaf, hi: 0xb1}, + // Block 0x4d, offset 0x1e2 + {value: 0x0000, lo: 0x02}, + {value: 0x047f, lo: 0xaf, hi: 0xaf}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x4e, offset 0x1e5 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa0, hi: 0xbf}, + // Block 0x4f, offset 0x1e7 + {value: 0x0000, lo: 0x01}, + {value: 0x0dc3, lo: 0x9f, hi: 0x9f}, + // Block 0x50, offset 0x1e9 + {value: 0x0000, lo: 0x01}, + {value: 0x162f, lo: 0xb3, hi: 0xb3}, + // Block 0x51, offset 0x1eb + {value: 0x0004, lo: 0x0b}, + {value: 0x1597, lo: 0x80, hi: 0x82}, + {value: 0x15af, lo: 0x83, hi: 0x83}, + {value: 0x15c7, lo: 0x84, hi: 0x85}, + {value: 0x15d7, lo: 0x86, hi: 0x89}, + {value: 0x15eb, lo: 0x8a, hi: 0x8c}, + {value: 0x15ff, lo: 0x8d, hi: 0x8d}, + {value: 0x1607, lo: 0x8e, hi: 0x8e}, + {value: 0x160f, lo: 0x8f, hi: 0x90}, + {value: 0x161b, lo: 0x91, hi: 0x93}, + {value: 0x162b, lo: 0x94, hi: 0x94}, + {value: 0x1633, lo: 0x95, hi: 0x95}, + // Block 0x52, offset 0x1f7 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812c, lo: 0xaa, hi: 0xaa}, + {value: 0x8131, lo: 0xab, hi: 0xab}, + {value: 0x8133, lo: 0xac, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x812f, lo: 0xae, hi: 0xae}, + {value: 0x812f, lo: 0xaf, hi: 0xaf}, + {value: 0x04b3, lo: 0xb6, hi: 0xb6}, + {value: 0x0887, lo: 0xb8, hi: 0xba}, + // Block 0x53, offset 0x201 + {value: 0x0005, lo: 0x09}, + {value: 0x0313, lo: 0xb1, hi: 0xb1}, + {value: 0x0317, lo: 0xb2, hi: 0xb2}, + {value: 0x4345, lo: 0xb3, hi: 0xb3}, + {value: 0x031b, lo: 0xb4, hi: 0xb4}, + {value: 0x434a, lo: 0xb5, hi: 0xb6}, + {value: 0x031f, lo: 0xb7, hi: 0xb7}, + {value: 0x0323, lo: 0xb8, hi: 0xb8}, + {value: 0x0327, lo: 0xb9, hi: 0xb9}, + {value: 0x4354, lo: 0xba, hi: 0xbf}, + // Block 0x54, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xaf, hi: 0xaf}, + {value: 0x8132, lo: 0xb4, hi: 0xbd}, + // Block 0x55, offset 0x20e + {value: 0x0000, lo: 0x03}, + {value: 0x020f, lo: 0x9c, hi: 0x9c}, + {value: 0x0212, lo: 0x9d, hi: 0x9d}, + {value: 0x8132, lo: 0x9e, hi: 0x9f}, + // Block 0x56, offset 0x212 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb1}, + // Block 0x57, offset 0x214 + {value: 0x0000, lo: 0x01}, + {value: 0x163b, lo: 0xb0, hi: 0xb0}, + // Block 0x58, offset 0x216 + {value: 0x000c, lo: 0x01}, + {value: 0x00d7, lo: 0xb8, hi: 0xb9}, + // Block 0x59, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + // Block 0x5a, offset 0x21a + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x84, hi: 0x84}, + {value: 0x8132, lo: 0xa0, hi: 0xb1}, + // Block 0x5b, offset 0x21d + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xab, hi: 0xad}, + // Block 0x5c, offset 0x21f + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x93, hi: 0x93}, + // Block 0x5d, offset 0x221 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb3, hi: 0xb3}, + // Block 0x5e, offset 0x223 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + // Block 0x5f, offset 0x225 + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0xb0, hi: 0xb0}, + {value: 0x8132, lo: 0xb2, hi: 0xb3}, + {value: 0x812d, lo: 0xb4, hi: 0xb4}, + {value: 0x8132, lo: 0xb7, hi: 0xb8}, + {value: 0x8132, lo: 0xbe, hi: 0xbf}, + // Block 0x60, offset 0x22b + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x81, hi: 0x81}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + // Block 0x61, offset 0x22e + {value: 0x0008, lo: 0x03}, + {value: 0x1637, lo: 0x9c, hi: 0x9d}, + {value: 0x0125, lo: 0x9e, hi: 0x9e}, + {value: 0x1643, lo: 0x9f, hi: 0x9f}, + // Block 0x62, offset 0x232 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xad, hi: 0xad}, + // Block 0x63, offset 0x234 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x64, offset 0x23b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x65, offset 0x241 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x66, offset 0x247 + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x67, offset 0x24f + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x68, offset 0x255 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x69, offset 0x25b + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x6a, offset 0x261 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6b, offset 0x265 + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6c, offset 0x267 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xbd, hi: 0xbd}, + // Block 0x6d, offset 0x269 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0xa0, hi: 0xa0}, + // Block 0x6e, offset 0x26b + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb6, hi: 0xba}, + // Block 0x6f, offset 0x26d + {value: 0x002c, lo: 0x05}, + {value: 0x812d, lo: 0x8d, hi: 0x8d}, + {value: 0x8132, lo: 0x8f, hi: 0x8f}, + {value: 0x8132, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x70, offset 0x273 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0xa5, hi: 0xa5}, + {value: 0x812d, lo: 0xa6, hi: 0xa6}, + // Block 0x71, offset 0x276 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x86, hi: 0x86}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x72, offset 0x279 + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4238, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4242, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x424c, lo: 0xab, hi: 0xab}, + {value: 0x8104, lo: 0xb9, hi: 0xba}, + // Block 0x73, offset 0x281 + {value: 0x0000, lo: 0x06}, + {value: 0x8132, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2d7e, lo: 0xae, hi: 0xae}, + {value: 0x2d88, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8104, lo: 0xb3, hi: 0xb4}, + // Block 0x74, offset 0x288 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x80, hi: 0x80}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x75, offset 0x28b + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb5, hi: 0xb5}, + {value: 0x8102, lo: 0xb6, hi: 0xb6}, + // Block 0x76, offset 0x28e + {value: 0x0002, lo: 0x01}, + {value: 0x8102, lo: 0xa9, hi: 0xaa}, + // Block 0x77, offset 0x290 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2d92, lo: 0x8b, hi: 0x8b}, + {value: 0x2d9c, lo: 0x8c, hi: 0x8c}, + {value: 0x8104, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8132, lo: 0xa6, hi: 0xac}, + {value: 0x8132, lo: 0xb0, hi: 0xb4}, + // Block 0x78, offset 0x298 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x86, hi: 0x86}, + // Block 0x79, offset 0x29b + {value: 0x6b5a, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2db0, lo: 0xbb, hi: 0xbb}, + {value: 0x2da6, lo: 0xbc, hi: 0xbd}, + {value: 0x2dba, lo: 0xbe, hi: 0xbe}, + // Block 0x7a, offset 0x2a2 + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0x82, hi: 0x82}, + {value: 0x8102, lo: 0x83, hi: 0x83}, + // Block 0x7b, offset 0x2a5 + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2dc4, lo: 0xba, hi: 0xba}, + {value: 0x2dce, lo: 0xbb, hi: 0xbb}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7c, offset 0x2ab + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0x80, hi: 0x80}, + // Block 0x7d, offset 0x2ad + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xbf, hi: 0xbf}, + // Block 0x7e, offset 0x2af + {value: 0x0000, lo: 0x02}, + {value: 0x8104, lo: 0xb6, hi: 0xb6}, + {value: 0x8102, lo: 0xb7, hi: 0xb7}, + // Block 0x7f, offset 0x2b2 + {value: 0x0000, lo: 0x01}, + {value: 0x8104, lo: 0xab, hi: 0xab}, + // Block 0x80, offset 0x2b4 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x81, offset 0x2b6 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xb0, hi: 0xb6}, + // Block 0x82, offset 0x2b8 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x83, offset 0x2ba + {value: 0x0000, lo: 0x0c}, + {value: 0x4662, lo: 0x9e, hi: 0x9e}, + {value: 0x466c, lo: 0x9f, hi: 0x9f}, + {value: 0x46a0, lo: 0xa0, hi: 0xa0}, + {value: 0x46ae, lo: 0xa1, hi: 0xa1}, + {value: 0x46bc, lo: 0xa2, hi: 0xa2}, + {value: 0x46ca, lo: 0xa3, hi: 0xa3}, + {value: 0x46d8, lo: 0xa4, hi: 0xa4}, + {value: 0x812b, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8130, lo: 0xad, hi: 0xad}, + {value: 0x812b, lo: 0xae, hi: 0xb2}, + {value: 0x812d, lo: 0xbb, hi: 0xbf}, + // Block 0x84, offset 0x2c7 + {value: 0x0000, lo: 0x09}, + {value: 0x812d, lo: 0x80, hi: 0x82}, + {value: 0x8132, lo: 0x85, hi: 0x89}, + {value: 0x812d, lo: 0x8a, hi: 0x8b}, + {value: 0x8132, lo: 0xaa, hi: 0xad}, + {value: 0x4676, lo: 0xbb, hi: 0xbb}, + {value: 0x4680, lo: 0xbc, hi: 0xbc}, + {value: 0x46e6, lo: 0xbd, hi: 0xbd}, + {value: 0x4702, lo: 0xbe, hi: 0xbe}, + {value: 0x46f4, lo: 0xbf, hi: 0xbf}, + // Block 0x85, offset 0x2d1 + {value: 0x0000, lo: 0x01}, + {value: 0x4710, lo: 0x80, hi: 0x80}, + // Block 0x86, offset 0x2d3 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0x82, hi: 0x84}, + // Block 0x87, offset 0x2d5 + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x88, offset 0x2d9 + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x89, offset 0x2de + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x8a, offset 0x2ea + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x8b, offset 0x2ef + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x8c, offset 0x2f8 + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x8d, offset 0x2fe + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x8e, offset 0x303 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0x8f, offset 0x307 + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0x90, offset 0x30c + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0x91, offset 0x310 + {value: 0x0003, lo: 0x0f}, + {value: 0x01b8, lo: 0x80, hi: 0x80}, + {value: 0x045f, lo: 0x81, hi: 0x81}, + {value: 0x01bb, lo: 0x82, hi: 0x9a}, + {value: 0x045b, lo: 0x9b, hi: 0x9b}, + {value: 0x01c7, lo: 0x9c, hi: 0x9c}, + {value: 0x01d0, lo: 0x9d, hi: 0x9d}, + {value: 0x01d6, lo: 0x9e, hi: 0x9e}, + {value: 0x01fa, lo: 0x9f, hi: 0x9f}, + {value: 0x01eb, lo: 0xa0, hi: 0xa0}, + {value: 0x01e8, lo: 0xa1, hi: 0xa1}, + {value: 0x0173, lo: 0xa2, hi: 0xb2}, + {value: 0x0188, lo: 0xb3, hi: 0xb3}, + {value: 0x01a6, lo: 0xb4, hi: 0xba}, + {value: 0x045f, lo: 0xbb, hi: 0xbb}, + {value: 0x01bb, lo: 0xbc, hi: 0xbf}, + // Block 0x92, offset 0x320 + {value: 0x0003, lo: 0x0d}, + {value: 0x01c7, lo: 0x80, hi: 0x94}, + {value: 0x045b, lo: 0x95, hi: 0x95}, + {value: 0x01c7, lo: 0x96, hi: 0x96}, + {value: 0x01d0, lo: 0x97, hi: 0x97}, + {value: 0x01d6, lo: 0x98, hi: 0x98}, + {value: 0x01fa, lo: 0x99, hi: 0x99}, + {value: 0x01eb, lo: 0x9a, hi: 0x9a}, + {value: 0x01e8, lo: 0x9b, hi: 0x9b}, + {value: 0x0173, lo: 0x9c, hi: 0xac}, + {value: 0x0188, lo: 0xad, hi: 0xad}, + {value: 0x01a6, lo: 0xae, hi: 0xb4}, + {value: 0x045f, lo: 0xb5, hi: 0xb5}, + {value: 0x01bb, lo: 0xb6, hi: 0xbf}, + // Block 0x93, offset 0x32e + {value: 0x0003, lo: 0x0d}, + {value: 0x01d9, lo: 0x80, hi: 0x8e}, + {value: 0x045b, lo: 0x8f, hi: 0x8f}, + {value: 0x01c7, lo: 0x90, hi: 0x90}, + {value: 0x01d0, lo: 0x91, hi: 0x91}, + {value: 0x01d6, lo: 0x92, hi: 0x92}, + {value: 0x01fa, lo: 0x93, hi: 0x93}, + {value: 0x01eb, lo: 0x94, hi: 0x94}, + {value: 0x01e8, lo: 0x95, hi: 0x95}, + {value: 0x0173, lo: 0x96, hi: 0xa6}, + {value: 0x0188, lo: 0xa7, hi: 0xa7}, + {value: 0x01a6, lo: 0xa8, hi: 0xae}, + {value: 0x045f, lo: 0xaf, hi: 0xaf}, + {value: 0x01bb, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x33c + {value: 0x0003, lo: 0x0d}, + {value: 0x01eb, lo: 0x80, hi: 0x88}, + {value: 0x045b, lo: 0x89, hi: 0x89}, + {value: 0x01c7, lo: 0x8a, hi: 0x8a}, + {value: 0x01d0, lo: 0x8b, hi: 0x8b}, + {value: 0x01d6, lo: 0x8c, hi: 0x8c}, + {value: 0x01fa, lo: 0x8d, hi: 0x8d}, + {value: 0x01eb, lo: 0x8e, hi: 0x8e}, + {value: 0x01e8, lo: 0x8f, hi: 0x8f}, + {value: 0x0173, lo: 0x90, hi: 0xa0}, + {value: 0x0188, lo: 0xa1, hi: 0xa1}, + {value: 0x01a6, lo: 0xa2, hi: 0xa8}, + {value: 0x045f, lo: 0xa9, hi: 0xa9}, + {value: 0x01bb, lo: 0xaa, hi: 0xbf}, + // Block 0x95, offset 0x34a + {value: 0x0000, lo: 0x05}, + {value: 0x8132, lo: 0x80, hi: 0x86}, + {value: 0x8132, lo: 0x88, hi: 0x98}, + {value: 0x8132, lo: 0x9b, hi: 0xa1}, + {value: 0x8132, lo: 0xa3, hi: 0xa4}, + {value: 0x8132, lo: 0xa6, hi: 0xaa}, + // Block 0x96, offset 0x350 + {value: 0x0000, lo: 0x01}, + {value: 0x812d, lo: 0x90, hi: 0x96}, + // Block 0x97, offset 0x352 + {value: 0x0000, lo: 0x02}, + {value: 0x8132, lo: 0x84, hi: 0x89}, + {value: 0x8102, lo: 0x8a, hi: 0x8a}, + // Block 0x98, offset 0x355 + {value: 0x0002, lo: 0x09}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1951, lo: 0x8a, hi: 0x8a}, + {value: 0x1981, lo: 0x8b, hi: 0x8b}, + {value: 0x199c, lo: 0x8c, hi: 0x8c}, + {value: 0x19a2, lo: 0x8d, hi: 0x8d}, + {value: 0x1bc0, lo: 0x8e, hi: 0x8e}, + {value: 0x19ae, lo: 0x8f, hi: 0x8f}, + {value: 0x197b, lo: 0xaa, hi: 0xaa}, + {value: 0x197e, lo: 0xab, hi: 0xab}, + // Block 0x99, offset 0x35f + {value: 0x0000, lo: 0x01}, + {value: 0x193f, lo: 0x90, hi: 0x90}, + // Block 0x9a, offset 0x361 + {value: 0x0028, lo: 0x09}, + {value: 0x2862, lo: 0x80, hi: 0x80}, + {value: 0x2826, lo: 0x81, hi: 0x81}, + {value: 0x2830, lo: 0x82, hi: 0x82}, + {value: 0x2844, lo: 0x83, hi: 0x84}, + {value: 0x284e, lo: 0x85, hi: 0x86}, + {value: 0x283a, lo: 0x87, hi: 0x87}, + {value: 0x2858, lo: 0x88, hi: 0x88}, + {value: 0x0b6f, lo: 0x90, hi: 0x90}, + {value: 0x08e7, lo: 0x91, hi: 0x91}, +} + +// recompMap: 7520 bytes (entries only) +var recompMap = map[uint32]rune{ + 0x00410300: 0x00C0, + 0x00410301: 0x00C1, + 0x00410302: 0x00C2, + 0x00410303: 0x00C3, + 0x00410308: 0x00C4, + 0x0041030A: 0x00C5, + 0x00430327: 0x00C7, + 0x00450300: 0x00C8, + 0x00450301: 0x00C9, + 0x00450302: 0x00CA, + 0x00450308: 0x00CB, + 0x00490300: 0x00CC, + 0x00490301: 0x00CD, + 0x00490302: 0x00CE, + 0x00490308: 0x00CF, + 0x004E0303: 0x00D1, + 0x004F0300: 0x00D2, + 0x004F0301: 0x00D3, + 0x004F0302: 0x00D4, + 0x004F0303: 0x00D5, + 0x004F0308: 0x00D6, + 0x00550300: 0x00D9, + 0x00550301: 0x00DA, + 0x00550302: 0x00DB, + 0x00550308: 0x00DC, + 0x00590301: 0x00DD, + 0x00610300: 0x00E0, + 0x00610301: 0x00E1, + 0x00610302: 0x00E2, + 0x00610303: 0x00E3, + 0x00610308: 0x00E4, + 0x0061030A: 0x00E5, + 0x00630327: 0x00E7, + 0x00650300: 0x00E8, + 0x00650301: 0x00E9, + 0x00650302: 0x00EA, + 0x00650308: 0x00EB, + 0x00690300: 0x00EC, + 0x00690301: 0x00ED, + 0x00690302: 0x00EE, + 0x00690308: 0x00EF, + 0x006E0303: 0x00F1, + 0x006F0300: 0x00F2, + 0x006F0301: 0x00F3, + 0x006F0302: 0x00F4, + 0x006F0303: 0x00F5, + 0x006F0308: 0x00F6, + 0x00750300: 0x00F9, + 0x00750301: 0x00FA, + 0x00750302: 0x00FB, + 0x00750308: 0x00FC, + 0x00790301: 0x00FD, + 0x00790308: 0x00FF, + 0x00410304: 0x0100, + 0x00610304: 0x0101, + 0x00410306: 0x0102, + 0x00610306: 0x0103, + 0x00410328: 0x0104, + 0x00610328: 0x0105, + 0x00430301: 0x0106, + 0x00630301: 0x0107, + 0x00430302: 0x0108, + 0x00630302: 0x0109, + 0x00430307: 0x010A, + 0x00630307: 0x010B, + 0x0043030C: 0x010C, + 0x0063030C: 0x010D, + 0x0044030C: 0x010E, + 0x0064030C: 0x010F, + 0x00450304: 0x0112, + 0x00650304: 0x0113, + 0x00450306: 0x0114, + 0x00650306: 0x0115, + 0x00450307: 0x0116, + 0x00650307: 0x0117, + 0x00450328: 0x0118, + 0x00650328: 0x0119, + 0x0045030C: 0x011A, + 0x0065030C: 0x011B, + 0x00470302: 0x011C, + 0x00670302: 0x011D, + 0x00470306: 0x011E, + 0x00670306: 0x011F, + 0x00470307: 0x0120, + 0x00670307: 0x0121, + 0x00470327: 0x0122, + 0x00670327: 0x0123, + 0x00480302: 0x0124, + 0x00680302: 0x0125, + 0x00490303: 0x0128, + 0x00690303: 0x0129, + 0x00490304: 0x012A, + 0x00690304: 0x012B, + 0x00490306: 0x012C, + 0x00690306: 0x012D, + 0x00490328: 0x012E, + 0x00690328: 0x012F, + 0x00490307: 0x0130, + 0x004A0302: 0x0134, + 0x006A0302: 0x0135, + 0x004B0327: 0x0136, + 0x006B0327: 0x0137, + 0x004C0301: 0x0139, + 0x006C0301: 0x013A, + 0x004C0327: 0x013B, + 0x006C0327: 0x013C, + 0x004C030C: 0x013D, + 0x006C030C: 0x013E, + 0x004E0301: 0x0143, + 0x006E0301: 0x0144, + 0x004E0327: 0x0145, + 0x006E0327: 0x0146, + 0x004E030C: 0x0147, + 0x006E030C: 0x0148, + 0x004F0304: 0x014C, + 0x006F0304: 0x014D, + 0x004F0306: 0x014E, + 0x006F0306: 0x014F, + 0x004F030B: 0x0150, + 0x006F030B: 0x0151, + 0x00520301: 0x0154, + 0x00720301: 0x0155, + 0x00520327: 0x0156, + 0x00720327: 0x0157, + 0x0052030C: 0x0158, + 0x0072030C: 0x0159, + 0x00530301: 0x015A, + 0x00730301: 0x015B, + 0x00530302: 0x015C, + 0x00730302: 0x015D, + 0x00530327: 0x015E, + 0x00730327: 0x015F, + 0x0053030C: 0x0160, + 0x0073030C: 0x0161, + 0x00540327: 0x0162, + 0x00740327: 0x0163, + 0x0054030C: 0x0164, + 0x0074030C: 0x0165, + 0x00550303: 0x0168, + 0x00750303: 0x0169, + 0x00550304: 0x016A, + 0x00750304: 0x016B, + 0x00550306: 0x016C, + 0x00750306: 0x016D, + 0x0055030A: 0x016E, + 0x0075030A: 0x016F, + 0x0055030B: 0x0170, + 0x0075030B: 0x0171, + 0x00550328: 0x0172, + 0x00750328: 0x0173, + 0x00570302: 0x0174, + 0x00770302: 0x0175, + 0x00590302: 0x0176, + 0x00790302: 0x0177, + 0x00590308: 0x0178, + 0x005A0301: 0x0179, + 0x007A0301: 0x017A, + 0x005A0307: 0x017B, + 0x007A0307: 0x017C, + 0x005A030C: 0x017D, + 0x007A030C: 0x017E, + 0x004F031B: 0x01A0, + 0x006F031B: 0x01A1, + 0x0055031B: 0x01AF, + 0x0075031B: 0x01B0, + 0x0041030C: 0x01CD, + 0x0061030C: 0x01CE, + 0x0049030C: 0x01CF, + 0x0069030C: 0x01D0, + 0x004F030C: 0x01D1, + 0x006F030C: 0x01D2, + 0x0055030C: 0x01D3, + 0x0075030C: 0x01D4, + 0x00DC0304: 0x01D5, + 0x00FC0304: 0x01D6, + 0x00DC0301: 0x01D7, + 0x00FC0301: 0x01D8, + 0x00DC030C: 0x01D9, + 0x00FC030C: 0x01DA, + 0x00DC0300: 0x01DB, + 0x00FC0300: 0x01DC, + 0x00C40304: 0x01DE, + 0x00E40304: 0x01DF, + 0x02260304: 0x01E0, + 0x02270304: 0x01E1, + 0x00C60304: 0x01E2, + 0x00E60304: 0x01E3, + 0x0047030C: 0x01E6, + 0x0067030C: 0x01E7, + 0x004B030C: 0x01E8, + 0x006B030C: 0x01E9, + 0x004F0328: 0x01EA, + 0x006F0328: 0x01EB, + 0x01EA0304: 0x01EC, + 0x01EB0304: 0x01ED, + 0x01B7030C: 0x01EE, + 0x0292030C: 0x01EF, + 0x006A030C: 0x01F0, + 0x00470301: 0x01F4, + 0x00670301: 0x01F5, + 0x004E0300: 0x01F8, + 0x006E0300: 0x01F9, + 0x00C50301: 0x01FA, + 0x00E50301: 0x01FB, + 0x00C60301: 0x01FC, + 0x00E60301: 0x01FD, + 0x00D80301: 0x01FE, + 0x00F80301: 0x01FF, + 0x0041030F: 0x0200, + 0x0061030F: 0x0201, + 0x00410311: 0x0202, + 0x00610311: 0x0203, + 0x0045030F: 0x0204, + 0x0065030F: 0x0205, + 0x00450311: 0x0206, + 0x00650311: 0x0207, + 0x0049030F: 0x0208, + 0x0069030F: 0x0209, + 0x00490311: 0x020A, + 0x00690311: 0x020B, + 0x004F030F: 0x020C, + 0x006F030F: 0x020D, + 0x004F0311: 0x020E, + 0x006F0311: 0x020F, + 0x0052030F: 0x0210, + 0x0072030F: 0x0211, + 0x00520311: 0x0212, + 0x00720311: 0x0213, + 0x0055030F: 0x0214, + 0x0075030F: 0x0215, + 0x00550311: 0x0216, + 0x00750311: 0x0217, + 0x00530326: 0x0218, + 0x00730326: 0x0219, + 0x00540326: 0x021A, + 0x00740326: 0x021B, + 0x0048030C: 0x021E, + 0x0068030C: 0x021F, + 0x00410307: 0x0226, + 0x00610307: 0x0227, + 0x00450327: 0x0228, + 0x00650327: 0x0229, + 0x00D60304: 0x022A, + 0x00F60304: 0x022B, + 0x00D50304: 0x022C, + 0x00F50304: 0x022D, + 0x004F0307: 0x022E, + 0x006F0307: 0x022F, + 0x022E0304: 0x0230, + 0x022F0304: 0x0231, + 0x00590304: 0x0232, + 0x00790304: 0x0233, + 0x00A80301: 0x0385, + 0x03910301: 0x0386, + 0x03950301: 0x0388, + 0x03970301: 0x0389, + 0x03990301: 0x038A, + 0x039F0301: 0x038C, + 0x03A50301: 0x038E, + 0x03A90301: 0x038F, + 0x03CA0301: 0x0390, + 0x03990308: 0x03AA, + 0x03A50308: 0x03AB, + 0x03B10301: 0x03AC, + 0x03B50301: 0x03AD, + 0x03B70301: 0x03AE, + 0x03B90301: 0x03AF, + 0x03CB0301: 0x03B0, + 0x03B90308: 0x03CA, + 0x03C50308: 0x03CB, + 0x03BF0301: 0x03CC, + 0x03C50301: 0x03CD, + 0x03C90301: 0x03CE, + 0x03D20301: 0x03D3, + 0x03D20308: 0x03D4, + 0x04150300: 0x0400, + 0x04150308: 0x0401, + 0x04130301: 0x0403, + 0x04060308: 0x0407, + 0x041A0301: 0x040C, + 0x04180300: 0x040D, + 0x04230306: 0x040E, + 0x04180306: 0x0419, + 0x04380306: 0x0439, + 0x04350300: 0x0450, + 0x04350308: 0x0451, + 0x04330301: 0x0453, + 0x04560308: 0x0457, + 0x043A0301: 0x045C, + 0x04380300: 0x045D, + 0x04430306: 0x045E, + 0x0474030F: 0x0476, + 0x0475030F: 0x0477, + 0x04160306: 0x04C1, + 0x04360306: 0x04C2, + 0x04100306: 0x04D0, + 0x04300306: 0x04D1, + 0x04100308: 0x04D2, + 0x04300308: 0x04D3, + 0x04150306: 0x04D6, + 0x04350306: 0x04D7, + 0x04D80308: 0x04DA, + 0x04D90308: 0x04DB, + 0x04160308: 0x04DC, + 0x04360308: 0x04DD, + 0x04170308: 0x04DE, + 0x04370308: 0x04DF, + 0x04180304: 0x04E2, + 0x04380304: 0x04E3, + 0x04180308: 0x04E4, + 0x04380308: 0x04E5, + 0x041E0308: 0x04E6, + 0x043E0308: 0x04E7, + 0x04E80308: 0x04EA, + 0x04E90308: 0x04EB, + 0x042D0308: 0x04EC, + 0x044D0308: 0x04ED, + 0x04230304: 0x04EE, + 0x04430304: 0x04EF, + 0x04230308: 0x04F0, + 0x04430308: 0x04F1, + 0x0423030B: 0x04F2, + 0x0443030B: 0x04F3, + 0x04270308: 0x04F4, + 0x04470308: 0x04F5, + 0x042B0308: 0x04F8, + 0x044B0308: 0x04F9, + 0x06270653: 0x0622, + 0x06270654: 0x0623, + 0x06480654: 0x0624, + 0x06270655: 0x0625, + 0x064A0654: 0x0626, + 0x06D50654: 0x06C0, + 0x06C10654: 0x06C2, + 0x06D20654: 0x06D3, + 0x0928093C: 0x0929, + 0x0930093C: 0x0931, + 0x0933093C: 0x0934, + 0x09C709BE: 0x09CB, + 0x09C709D7: 0x09CC, + 0x0B470B56: 0x0B48, + 0x0B470B3E: 0x0B4B, + 0x0B470B57: 0x0B4C, + 0x0B920BD7: 0x0B94, + 0x0BC60BBE: 0x0BCA, + 0x0BC70BBE: 0x0BCB, + 0x0BC60BD7: 0x0BCC, + 0x0C460C56: 0x0C48, + 0x0CBF0CD5: 0x0CC0, + 0x0CC60CD5: 0x0CC7, + 0x0CC60CD6: 0x0CC8, + 0x0CC60CC2: 0x0CCA, + 0x0CCA0CD5: 0x0CCB, + 0x0D460D3E: 0x0D4A, + 0x0D470D3E: 0x0D4B, + 0x0D460D57: 0x0D4C, + 0x0DD90DCA: 0x0DDA, + 0x0DD90DCF: 0x0DDC, + 0x0DDC0DCA: 0x0DDD, + 0x0DD90DDF: 0x0DDE, + 0x1025102E: 0x1026, + 0x1B051B35: 0x1B06, + 0x1B071B35: 0x1B08, + 0x1B091B35: 0x1B0A, + 0x1B0B1B35: 0x1B0C, + 0x1B0D1B35: 0x1B0E, + 0x1B111B35: 0x1B12, + 0x1B3A1B35: 0x1B3B, + 0x1B3C1B35: 0x1B3D, + 0x1B3E1B35: 0x1B40, + 0x1B3F1B35: 0x1B41, + 0x1B421B35: 0x1B43, + 0x00410325: 0x1E00, + 0x00610325: 0x1E01, + 0x00420307: 0x1E02, + 0x00620307: 0x1E03, + 0x00420323: 0x1E04, + 0x00620323: 0x1E05, + 0x00420331: 0x1E06, + 0x00620331: 0x1E07, + 0x00C70301: 0x1E08, + 0x00E70301: 0x1E09, + 0x00440307: 0x1E0A, + 0x00640307: 0x1E0B, + 0x00440323: 0x1E0C, + 0x00640323: 0x1E0D, + 0x00440331: 0x1E0E, + 0x00640331: 0x1E0F, + 0x00440327: 0x1E10, + 0x00640327: 0x1E11, + 0x0044032D: 0x1E12, + 0x0064032D: 0x1E13, + 0x01120300: 0x1E14, + 0x01130300: 0x1E15, + 0x01120301: 0x1E16, + 0x01130301: 0x1E17, + 0x0045032D: 0x1E18, + 0x0065032D: 0x1E19, + 0x00450330: 0x1E1A, + 0x00650330: 0x1E1B, + 0x02280306: 0x1E1C, + 0x02290306: 0x1E1D, + 0x00460307: 0x1E1E, + 0x00660307: 0x1E1F, + 0x00470304: 0x1E20, + 0x00670304: 0x1E21, + 0x00480307: 0x1E22, + 0x00680307: 0x1E23, + 0x00480323: 0x1E24, + 0x00680323: 0x1E25, + 0x00480308: 0x1E26, + 0x00680308: 0x1E27, + 0x00480327: 0x1E28, + 0x00680327: 0x1E29, + 0x0048032E: 0x1E2A, + 0x0068032E: 0x1E2B, + 0x00490330: 0x1E2C, + 0x00690330: 0x1E2D, + 0x00CF0301: 0x1E2E, + 0x00EF0301: 0x1E2F, + 0x004B0301: 0x1E30, + 0x006B0301: 0x1E31, + 0x004B0323: 0x1E32, + 0x006B0323: 0x1E33, + 0x004B0331: 0x1E34, + 0x006B0331: 0x1E35, + 0x004C0323: 0x1E36, + 0x006C0323: 0x1E37, + 0x1E360304: 0x1E38, + 0x1E370304: 0x1E39, + 0x004C0331: 0x1E3A, + 0x006C0331: 0x1E3B, + 0x004C032D: 0x1E3C, + 0x006C032D: 0x1E3D, + 0x004D0301: 0x1E3E, + 0x006D0301: 0x1E3F, + 0x004D0307: 0x1E40, + 0x006D0307: 0x1E41, + 0x004D0323: 0x1E42, + 0x006D0323: 0x1E43, + 0x004E0307: 0x1E44, + 0x006E0307: 0x1E45, + 0x004E0323: 0x1E46, + 0x006E0323: 0x1E47, + 0x004E0331: 0x1E48, + 0x006E0331: 0x1E49, + 0x004E032D: 0x1E4A, + 0x006E032D: 0x1E4B, + 0x00D50301: 0x1E4C, + 0x00F50301: 0x1E4D, + 0x00D50308: 0x1E4E, + 0x00F50308: 0x1E4F, + 0x014C0300: 0x1E50, + 0x014D0300: 0x1E51, + 0x014C0301: 0x1E52, + 0x014D0301: 0x1E53, + 0x00500301: 0x1E54, + 0x00700301: 0x1E55, + 0x00500307: 0x1E56, + 0x00700307: 0x1E57, + 0x00520307: 0x1E58, + 0x00720307: 0x1E59, + 0x00520323: 0x1E5A, + 0x00720323: 0x1E5B, + 0x1E5A0304: 0x1E5C, + 0x1E5B0304: 0x1E5D, + 0x00520331: 0x1E5E, + 0x00720331: 0x1E5F, + 0x00530307: 0x1E60, + 0x00730307: 0x1E61, + 0x00530323: 0x1E62, + 0x00730323: 0x1E63, + 0x015A0307: 0x1E64, + 0x015B0307: 0x1E65, + 0x01600307: 0x1E66, + 0x01610307: 0x1E67, + 0x1E620307: 0x1E68, + 0x1E630307: 0x1E69, + 0x00540307: 0x1E6A, + 0x00740307: 0x1E6B, + 0x00540323: 0x1E6C, + 0x00740323: 0x1E6D, + 0x00540331: 0x1E6E, + 0x00740331: 0x1E6F, + 0x0054032D: 0x1E70, + 0x0074032D: 0x1E71, + 0x00550324: 0x1E72, + 0x00750324: 0x1E73, + 0x00550330: 0x1E74, + 0x00750330: 0x1E75, + 0x0055032D: 0x1E76, + 0x0075032D: 0x1E77, + 0x01680301: 0x1E78, + 0x01690301: 0x1E79, + 0x016A0308: 0x1E7A, + 0x016B0308: 0x1E7B, + 0x00560303: 0x1E7C, + 0x00760303: 0x1E7D, + 0x00560323: 0x1E7E, + 0x00760323: 0x1E7F, + 0x00570300: 0x1E80, + 0x00770300: 0x1E81, + 0x00570301: 0x1E82, + 0x00770301: 0x1E83, + 0x00570308: 0x1E84, + 0x00770308: 0x1E85, + 0x00570307: 0x1E86, + 0x00770307: 0x1E87, + 0x00570323: 0x1E88, + 0x00770323: 0x1E89, + 0x00580307: 0x1E8A, + 0x00780307: 0x1E8B, + 0x00580308: 0x1E8C, + 0x00780308: 0x1E8D, + 0x00590307: 0x1E8E, + 0x00790307: 0x1E8F, + 0x005A0302: 0x1E90, + 0x007A0302: 0x1E91, + 0x005A0323: 0x1E92, + 0x007A0323: 0x1E93, + 0x005A0331: 0x1E94, + 0x007A0331: 0x1E95, + 0x00680331: 0x1E96, + 0x00740308: 0x1E97, + 0x0077030A: 0x1E98, + 0x0079030A: 0x1E99, + 0x017F0307: 0x1E9B, + 0x00410323: 0x1EA0, + 0x00610323: 0x1EA1, + 0x00410309: 0x1EA2, + 0x00610309: 0x1EA3, + 0x00C20301: 0x1EA4, + 0x00E20301: 0x1EA5, + 0x00C20300: 0x1EA6, + 0x00E20300: 0x1EA7, + 0x00C20309: 0x1EA8, + 0x00E20309: 0x1EA9, + 0x00C20303: 0x1EAA, + 0x00E20303: 0x1EAB, + 0x1EA00302: 0x1EAC, + 0x1EA10302: 0x1EAD, + 0x01020301: 0x1EAE, + 0x01030301: 0x1EAF, + 0x01020300: 0x1EB0, + 0x01030300: 0x1EB1, + 0x01020309: 0x1EB2, + 0x01030309: 0x1EB3, + 0x01020303: 0x1EB4, + 0x01030303: 0x1EB5, + 0x1EA00306: 0x1EB6, + 0x1EA10306: 0x1EB7, + 0x00450323: 0x1EB8, + 0x00650323: 0x1EB9, + 0x00450309: 0x1EBA, + 0x00650309: 0x1EBB, + 0x00450303: 0x1EBC, + 0x00650303: 0x1EBD, + 0x00CA0301: 0x1EBE, + 0x00EA0301: 0x1EBF, + 0x00CA0300: 0x1EC0, + 0x00EA0300: 0x1EC1, + 0x00CA0309: 0x1EC2, + 0x00EA0309: 0x1EC3, + 0x00CA0303: 0x1EC4, + 0x00EA0303: 0x1EC5, + 0x1EB80302: 0x1EC6, + 0x1EB90302: 0x1EC7, + 0x00490309: 0x1EC8, + 0x00690309: 0x1EC9, + 0x00490323: 0x1ECA, + 0x00690323: 0x1ECB, + 0x004F0323: 0x1ECC, + 0x006F0323: 0x1ECD, + 0x004F0309: 0x1ECE, + 0x006F0309: 0x1ECF, + 0x00D40301: 0x1ED0, + 0x00F40301: 0x1ED1, + 0x00D40300: 0x1ED2, + 0x00F40300: 0x1ED3, + 0x00D40309: 0x1ED4, + 0x00F40309: 0x1ED5, + 0x00D40303: 0x1ED6, + 0x00F40303: 0x1ED7, + 0x1ECC0302: 0x1ED8, + 0x1ECD0302: 0x1ED9, + 0x01A00301: 0x1EDA, + 0x01A10301: 0x1EDB, + 0x01A00300: 0x1EDC, + 0x01A10300: 0x1EDD, + 0x01A00309: 0x1EDE, + 0x01A10309: 0x1EDF, + 0x01A00303: 0x1EE0, + 0x01A10303: 0x1EE1, + 0x01A00323: 0x1EE2, + 0x01A10323: 0x1EE3, + 0x00550323: 0x1EE4, + 0x00750323: 0x1EE5, + 0x00550309: 0x1EE6, + 0x00750309: 0x1EE7, + 0x01AF0301: 0x1EE8, + 0x01B00301: 0x1EE9, + 0x01AF0300: 0x1EEA, + 0x01B00300: 0x1EEB, + 0x01AF0309: 0x1EEC, + 0x01B00309: 0x1EED, + 0x01AF0303: 0x1EEE, + 0x01B00303: 0x1EEF, + 0x01AF0323: 0x1EF0, + 0x01B00323: 0x1EF1, + 0x00590300: 0x1EF2, + 0x00790300: 0x1EF3, + 0x00590323: 0x1EF4, + 0x00790323: 0x1EF5, + 0x00590309: 0x1EF6, + 0x00790309: 0x1EF7, + 0x00590303: 0x1EF8, + 0x00790303: 0x1EF9, + 0x03B10313: 0x1F00, + 0x03B10314: 0x1F01, + 0x1F000300: 0x1F02, + 0x1F010300: 0x1F03, + 0x1F000301: 0x1F04, + 0x1F010301: 0x1F05, + 0x1F000342: 0x1F06, + 0x1F010342: 0x1F07, + 0x03910313: 0x1F08, + 0x03910314: 0x1F09, + 0x1F080300: 0x1F0A, + 0x1F090300: 0x1F0B, + 0x1F080301: 0x1F0C, + 0x1F090301: 0x1F0D, + 0x1F080342: 0x1F0E, + 0x1F090342: 0x1F0F, + 0x03B50313: 0x1F10, + 0x03B50314: 0x1F11, + 0x1F100300: 0x1F12, + 0x1F110300: 0x1F13, + 0x1F100301: 0x1F14, + 0x1F110301: 0x1F15, + 0x03950313: 0x1F18, + 0x03950314: 0x1F19, + 0x1F180300: 0x1F1A, + 0x1F190300: 0x1F1B, + 0x1F180301: 0x1F1C, + 0x1F190301: 0x1F1D, + 0x03B70313: 0x1F20, + 0x03B70314: 0x1F21, + 0x1F200300: 0x1F22, + 0x1F210300: 0x1F23, + 0x1F200301: 0x1F24, + 0x1F210301: 0x1F25, + 0x1F200342: 0x1F26, + 0x1F210342: 0x1F27, + 0x03970313: 0x1F28, + 0x03970314: 0x1F29, + 0x1F280300: 0x1F2A, + 0x1F290300: 0x1F2B, + 0x1F280301: 0x1F2C, + 0x1F290301: 0x1F2D, + 0x1F280342: 0x1F2E, + 0x1F290342: 0x1F2F, + 0x03B90313: 0x1F30, + 0x03B90314: 0x1F31, + 0x1F300300: 0x1F32, + 0x1F310300: 0x1F33, + 0x1F300301: 0x1F34, + 0x1F310301: 0x1F35, + 0x1F300342: 0x1F36, + 0x1F310342: 0x1F37, + 0x03990313: 0x1F38, + 0x03990314: 0x1F39, + 0x1F380300: 0x1F3A, + 0x1F390300: 0x1F3B, + 0x1F380301: 0x1F3C, + 0x1F390301: 0x1F3D, + 0x1F380342: 0x1F3E, + 0x1F390342: 0x1F3F, + 0x03BF0313: 0x1F40, + 0x03BF0314: 0x1F41, + 0x1F400300: 0x1F42, + 0x1F410300: 0x1F43, + 0x1F400301: 0x1F44, + 0x1F410301: 0x1F45, + 0x039F0313: 0x1F48, + 0x039F0314: 0x1F49, + 0x1F480300: 0x1F4A, + 0x1F490300: 0x1F4B, + 0x1F480301: 0x1F4C, + 0x1F490301: 0x1F4D, + 0x03C50313: 0x1F50, + 0x03C50314: 0x1F51, + 0x1F500300: 0x1F52, + 0x1F510300: 0x1F53, + 0x1F500301: 0x1F54, + 0x1F510301: 0x1F55, + 0x1F500342: 0x1F56, + 0x1F510342: 0x1F57, + 0x03A50314: 0x1F59, + 0x1F590300: 0x1F5B, + 0x1F590301: 0x1F5D, + 0x1F590342: 0x1F5F, + 0x03C90313: 0x1F60, + 0x03C90314: 0x1F61, + 0x1F600300: 0x1F62, + 0x1F610300: 0x1F63, + 0x1F600301: 0x1F64, + 0x1F610301: 0x1F65, + 0x1F600342: 0x1F66, + 0x1F610342: 0x1F67, + 0x03A90313: 0x1F68, + 0x03A90314: 0x1F69, + 0x1F680300: 0x1F6A, + 0x1F690300: 0x1F6B, + 0x1F680301: 0x1F6C, + 0x1F690301: 0x1F6D, + 0x1F680342: 0x1F6E, + 0x1F690342: 0x1F6F, + 0x03B10300: 0x1F70, + 0x03B50300: 0x1F72, + 0x03B70300: 0x1F74, + 0x03B90300: 0x1F76, + 0x03BF0300: 0x1F78, + 0x03C50300: 0x1F7A, + 0x03C90300: 0x1F7C, + 0x1F000345: 0x1F80, + 0x1F010345: 0x1F81, + 0x1F020345: 0x1F82, + 0x1F030345: 0x1F83, + 0x1F040345: 0x1F84, + 0x1F050345: 0x1F85, + 0x1F060345: 0x1F86, + 0x1F070345: 0x1F87, + 0x1F080345: 0x1F88, + 0x1F090345: 0x1F89, + 0x1F0A0345: 0x1F8A, + 0x1F0B0345: 0x1F8B, + 0x1F0C0345: 0x1F8C, + 0x1F0D0345: 0x1F8D, + 0x1F0E0345: 0x1F8E, + 0x1F0F0345: 0x1F8F, + 0x1F200345: 0x1F90, + 0x1F210345: 0x1F91, + 0x1F220345: 0x1F92, + 0x1F230345: 0x1F93, + 0x1F240345: 0x1F94, + 0x1F250345: 0x1F95, + 0x1F260345: 0x1F96, + 0x1F270345: 0x1F97, + 0x1F280345: 0x1F98, + 0x1F290345: 0x1F99, + 0x1F2A0345: 0x1F9A, + 0x1F2B0345: 0x1F9B, + 0x1F2C0345: 0x1F9C, + 0x1F2D0345: 0x1F9D, + 0x1F2E0345: 0x1F9E, + 0x1F2F0345: 0x1F9F, + 0x1F600345: 0x1FA0, + 0x1F610345: 0x1FA1, + 0x1F620345: 0x1FA2, + 0x1F630345: 0x1FA3, + 0x1F640345: 0x1FA4, + 0x1F650345: 0x1FA5, + 0x1F660345: 0x1FA6, + 0x1F670345: 0x1FA7, + 0x1F680345: 0x1FA8, + 0x1F690345: 0x1FA9, + 0x1F6A0345: 0x1FAA, + 0x1F6B0345: 0x1FAB, + 0x1F6C0345: 0x1FAC, + 0x1F6D0345: 0x1FAD, + 0x1F6E0345: 0x1FAE, + 0x1F6F0345: 0x1FAF, + 0x03B10306: 0x1FB0, + 0x03B10304: 0x1FB1, + 0x1F700345: 0x1FB2, + 0x03B10345: 0x1FB3, + 0x03AC0345: 0x1FB4, + 0x03B10342: 0x1FB6, + 0x1FB60345: 0x1FB7, + 0x03910306: 0x1FB8, + 0x03910304: 0x1FB9, + 0x03910300: 0x1FBA, + 0x03910345: 0x1FBC, + 0x00A80342: 0x1FC1, + 0x1F740345: 0x1FC2, + 0x03B70345: 0x1FC3, + 0x03AE0345: 0x1FC4, + 0x03B70342: 0x1FC6, + 0x1FC60345: 0x1FC7, + 0x03950300: 0x1FC8, + 0x03970300: 0x1FCA, + 0x03970345: 0x1FCC, + 0x1FBF0300: 0x1FCD, + 0x1FBF0301: 0x1FCE, + 0x1FBF0342: 0x1FCF, + 0x03B90306: 0x1FD0, + 0x03B90304: 0x1FD1, + 0x03CA0300: 0x1FD2, + 0x03B90342: 0x1FD6, + 0x03CA0342: 0x1FD7, + 0x03990306: 0x1FD8, + 0x03990304: 0x1FD9, + 0x03990300: 0x1FDA, + 0x1FFE0300: 0x1FDD, + 0x1FFE0301: 0x1FDE, + 0x1FFE0342: 0x1FDF, + 0x03C50306: 0x1FE0, + 0x03C50304: 0x1FE1, + 0x03CB0300: 0x1FE2, + 0x03C10313: 0x1FE4, + 0x03C10314: 0x1FE5, + 0x03C50342: 0x1FE6, + 0x03CB0342: 0x1FE7, + 0x03A50306: 0x1FE8, + 0x03A50304: 0x1FE9, + 0x03A50300: 0x1FEA, + 0x03A10314: 0x1FEC, + 0x00A80300: 0x1FED, + 0x1F7C0345: 0x1FF2, + 0x03C90345: 0x1FF3, + 0x03CE0345: 0x1FF4, + 0x03C90342: 0x1FF6, + 0x1FF60345: 0x1FF7, + 0x039F0300: 0x1FF8, + 0x03A90300: 0x1FFA, + 0x03A90345: 0x1FFC, + 0x21900338: 0x219A, + 0x21920338: 0x219B, + 0x21940338: 0x21AE, + 0x21D00338: 0x21CD, + 0x21D40338: 0x21CE, + 0x21D20338: 0x21CF, + 0x22030338: 0x2204, + 0x22080338: 0x2209, + 0x220B0338: 0x220C, + 0x22230338: 0x2224, + 0x22250338: 0x2226, + 0x223C0338: 0x2241, + 0x22430338: 0x2244, + 0x22450338: 0x2247, + 0x22480338: 0x2249, + 0x003D0338: 0x2260, + 0x22610338: 0x2262, + 0x224D0338: 0x226D, + 0x003C0338: 0x226E, + 0x003E0338: 0x226F, + 0x22640338: 0x2270, + 0x22650338: 0x2271, + 0x22720338: 0x2274, + 0x22730338: 0x2275, + 0x22760338: 0x2278, + 0x22770338: 0x2279, + 0x227A0338: 0x2280, + 0x227B0338: 0x2281, + 0x22820338: 0x2284, + 0x22830338: 0x2285, + 0x22860338: 0x2288, + 0x22870338: 0x2289, + 0x22A20338: 0x22AC, + 0x22A80338: 0x22AD, + 0x22A90338: 0x22AE, + 0x22AB0338: 0x22AF, + 0x227C0338: 0x22E0, + 0x227D0338: 0x22E1, + 0x22910338: 0x22E2, + 0x22920338: 0x22E3, + 0x22B20338: 0x22EA, + 0x22B30338: 0x22EB, + 0x22B40338: 0x22EC, + 0x22B50338: 0x22ED, + 0x304B3099: 0x304C, + 0x304D3099: 0x304E, + 0x304F3099: 0x3050, + 0x30513099: 0x3052, + 0x30533099: 0x3054, + 0x30553099: 0x3056, + 0x30573099: 0x3058, + 0x30593099: 0x305A, + 0x305B3099: 0x305C, + 0x305D3099: 0x305E, + 0x305F3099: 0x3060, + 0x30613099: 0x3062, + 0x30643099: 0x3065, + 0x30663099: 0x3067, + 0x30683099: 0x3069, + 0x306F3099: 0x3070, + 0x306F309A: 0x3071, + 0x30723099: 0x3073, + 0x3072309A: 0x3074, + 0x30753099: 0x3076, + 0x3075309A: 0x3077, + 0x30783099: 0x3079, + 0x3078309A: 0x307A, + 0x307B3099: 0x307C, + 0x307B309A: 0x307D, + 0x30463099: 0x3094, + 0x309D3099: 0x309E, + 0x30AB3099: 0x30AC, + 0x30AD3099: 0x30AE, + 0x30AF3099: 0x30B0, + 0x30B13099: 0x30B2, + 0x30B33099: 0x30B4, + 0x30B53099: 0x30B6, + 0x30B73099: 0x30B8, + 0x30B93099: 0x30BA, + 0x30BB3099: 0x30BC, + 0x30BD3099: 0x30BE, + 0x30BF3099: 0x30C0, + 0x30C13099: 0x30C2, + 0x30C43099: 0x30C5, + 0x30C63099: 0x30C7, + 0x30C83099: 0x30C9, + 0x30CF3099: 0x30D0, + 0x30CF309A: 0x30D1, + 0x30D23099: 0x30D3, + 0x30D2309A: 0x30D4, + 0x30D53099: 0x30D6, + 0x30D5309A: 0x30D7, + 0x30D83099: 0x30D9, + 0x30D8309A: 0x30DA, + 0x30DB3099: 0x30DC, + 0x30DB309A: 0x30DD, + 0x30A63099: 0x30F4, + 0x30EF3099: 0x30F7, + 0x30F03099: 0x30F8, + 0x30F13099: 0x30F9, + 0x30F23099: 0x30FA, + 0x30FD3099: 0x30FE, + 0x109910BA: 0x1109A, + 0x109B10BA: 0x1109C, + 0x10A510BA: 0x110AB, + 0x11311127: 0x1112E, + 0x11321127: 0x1112F, + 0x1347133E: 0x1134B, + 0x13471357: 0x1134C, + 0x14B914BA: 0x114BB, + 0x14B914B0: 0x114BC, + 0x14B914BD: 0x114BE, + 0x15B815AF: 0x115BA, + 0x15B915AF: 0x115BB, +} + +// Total size of tables: 53KB (53976 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go new file mode 100644 index 00000000..8589067c --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/transform.go @@ -0,0 +1,88 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// Reset implements the Reset method of the transform.Transformer interface. +func (Form) Reset() {} + +// Transform implements the Transform method of the transform.Transformer +// interface. It may need to write segments of up to MaxSegmentSize at once. +// Users should either catch ErrShortDst and allow dst to grow or have dst be at +// least of size MaxTransformChunkSize to be guaranteed of progress. +func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := 0 + // Cap the maximum number of src bytes to check. + b := src + eof := atEOF + if ns := len(dst); ns < len(b) { + err = transform.ErrShortDst + eof = false + b = b[:ns] + } + i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof) + n += copy(dst[n:], b[n:i]) + if !ok { + nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF) + return nDst + n, nSrc + n, err + } + if n < len(src) && !atEOF { + err = transform.ErrShortSrc + } + return n, n, err +} + +func flushTransform(rb *reorderBuffer) bool { + // Write out (must fully fit in dst, or else it is a ErrShortDst). + if len(rb.out) < rb.nrune*utf8.UTFMax { + return false + } + rb.out = rb.out[rb.flushCopy(rb.out):] + return true +} + +var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc} + +// transform implements the transform.Transformer interface. It is only called +// when quickSpan does not pass for a given string. +func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // TODO: get rid of reorderBuffer. See CL 23460044. + rb := reorderBuffer{} + rb.init(f, src) + for { + // Load segment into reorder buffer. + rb.setFlusher(dst[nDst:], flushTransform) + end := decomposeSegment(&rb, nSrc, atEOF) + if end < 0 { + return nDst, nSrc, errs[-end] + } + nDst = len(dst) - len(rb.out) + nSrc = end + + // Next quickSpan. + end = rb.nsrc + eof := atEOF + if n := nSrc + len(dst) - nDst; n < end { + err = transform.ErrShortDst + end = n + eof = false + } + end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof) + n := copy(dst[nDst:], rb.src.bytes[nSrc:end]) + nSrc += n + nDst += n + if ok { + if n < rb.nsrc && !atEOF { + err = transform.ErrShortSrc + } + return nDst, nSrc, err + } + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/transform_test.go b/vendor/golang.org/x/text/unicode/norm/transform_test.go new file mode 100644 index 00000000..987d680e --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/transform_test.go @@ -0,0 +1,101 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "fmt" + "testing" + + "golang.org/x/text/transform" +) + +func TestTransform(t *testing.T) { + tests := []struct { + f Form + in, out string + eof bool + dstSize int + err error + }{ + {NFC, "ab", "ab", true, 2, nil}, + {NFC, "qx", "qx", true, 2, nil}, + {NFD, "qx", "qx", true, 2, nil}, + {NFC, "", "", true, 1, nil}, + {NFD, "", "", true, 1, nil}, + {NFC, "", "", false, 1, nil}, + {NFD, "", "", false, 1, nil}, + + // Normalized segment does not fit in destination. + {NFD, "ö", "", true, 1, transform.ErrShortDst}, + {NFD, "ö", "", true, 2, transform.ErrShortDst}, + + // As an artifact of the algorithm, only full segments are written. + // This is not strictly required, and some bytes could be written. + // In practice, for Transform to not block, the destination buffer + // should be at least MaxSegmentSize to work anyway and these edge + // conditions will be relatively rare. + {NFC, "ab", "", true, 1, transform.ErrShortDst}, + // This is even true for inert runes. + {NFC, "qx", "", true, 1, transform.ErrShortDst}, + {NFC, "a\u0300abc", "\u00e0a", true, 4, transform.ErrShortDst}, + + // We cannot write a segment if succesive runes could still change the result. + {NFD, "ö", "", false, 3, transform.ErrShortSrc}, + {NFC, "a\u0300", "", false, 4, transform.ErrShortSrc}, + {NFD, "a\u0300", "", false, 4, transform.ErrShortSrc}, + {NFC, "ö", "", false, 3, transform.ErrShortSrc}, + + {NFC, "a\u0300", "", true, 1, transform.ErrShortDst}, + // Theoretically could fit, but won't due to simplified checks. + {NFC, "a\u0300", "", true, 2, transform.ErrShortDst}, + {NFC, "a\u0300", "", true, 3, transform.ErrShortDst}, + {NFC, "a\u0300", "\u00e0", true, 4, nil}, + + {NFD, "öa\u0300", "o\u0308", false, 8, transform.ErrShortSrc}, + {NFD, "öa\u0300ö", "o\u0308a\u0300", true, 8, transform.ErrShortDst}, + {NFD, "öa\u0300ö", "o\u0308a\u0300", false, 12, transform.ErrShortSrc}, + + // Illegal input is copied verbatim. + {NFD, "\xbd\xb2=\xbc ", "\xbd\xb2=\xbc ", true, 8, nil}, + } + b := make([]byte, 100) + for i, tt := range tests { + nDst, _, err := tt.f.Transform(b[:tt.dstSize], []byte(tt.in), tt.eof) + out := string(b[:nDst]) + if out != tt.out || err != tt.err { + t.Errorf("%d: was %+q (%v); want %+q (%v)", i, out, err, tt.out, tt.err) + } + if want := tt.f.String(tt.in)[:nDst]; want != out { + t.Errorf("%d: incorect normalization: was %+q; want %+q", i, out, want) + } + } +} + +var transBufSizes = []int{ + MaxTransformChunkSize, + 3 * MaxTransformChunkSize / 2, + 2 * MaxTransformChunkSize, + 3 * MaxTransformChunkSize, + 100 * MaxTransformChunkSize, +} + +func doTransNorm(f Form, buf []byte, b []byte) []byte { + acc := []byte{} + for p := 0; p < len(b); { + nd, ns, _ := f.Transform(buf[:], b[p:], true) + p += ns + acc = append(acc, buf[:nd]...) + } + return acc +} + +func TestTransformNorm(t *testing.T) { + for _, sz := range transBufSizes { + buf := make([]byte, sz) + runNormTests(t, fmt.Sprintf("Transform:%d", sz), func(f Form, out []byte, s string) []byte { + return doTransNorm(f, buf, append(out, s...)) + }) + } +} diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/vendor/golang.org/x/text/unicode/norm/trie.go new file mode 100644 index 00000000..423386bf --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/trie.go @@ -0,0 +1,54 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +type valueRange struct { + value uint16 // header: value:stride + lo, hi byte // header: lo:n +} + +type sparseBlocks struct { + values []valueRange + offset []uint16 +} + +var nfcSparse = sparseBlocks{ + values: nfcSparseValues[:], + offset: nfcSparseOffset[:], +} + +var nfkcSparse = sparseBlocks{ + values: nfkcSparseValues[:], + offset: nfkcSparseOffset[:], +} + +var ( + nfcData = newNfcTrie(0) + nfkcData = newNfkcTrie(0) +) + +// lookupValue determines the type of block n and looks up the value for b. +// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block +// is a list of ranges with an accompanying value. Given a matching range r, +// the value for b is by r.value + (b - r.lo) * stride. +func (t *sparseBlocks) lookup(n uint32, b byte) uint16 { + offset := t.offset[n] + header := t.values[offset] + lo := offset + 1 + hi := lo + uint16(header.lo) + for lo < hi { + m := lo + (hi-lo)/2 + r := t.values[m] + if r.lo <= b && b <= r.hi { + return r.value + uint16(b-r.lo)*header.value + } + if b < r.lo { + hi = m + } else { + lo = m + 1 + } + } + return 0 +} diff --git a/vendor/golang.org/x/text/unicode/norm/triegen.go b/vendor/golang.org/x/text/unicode/norm/triegen.go new file mode 100644 index 00000000..45d71190 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/triegen.go @@ -0,0 +1,117 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// Trie table generator. +// Used by make*tables tools to generate a go file with trie data structures +// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte +// sequence are used to lookup offsets in the index table to be used for the +// next byte. The last byte is used to index into a table with 16-bit values. + +package main + +import ( + "fmt" + "io" +) + +const maxSparseEntries = 16 + +type normCompacter struct { + sparseBlocks [][]uint64 + sparseOffset []uint16 + sparseCount int + name string +} + +func mostFrequentStride(a []uint64) int { + counts := make(map[int]int) + var v int + for _, x := range a { + if stride := int(x) - v; v != 0 && stride >= 0 { + counts[stride]++ + } + v = int(x) + } + var maxs, maxc int + for stride, cnt := range counts { + if cnt > maxc || (cnt == maxc && stride < maxs) { + maxs, maxc = stride, cnt + } + } + return maxs +} + +func countSparseEntries(a []uint64) int { + stride := mostFrequentStride(a) + var v, count int + for _, tv := range a { + if int(tv)-v != stride { + if tv != 0 { + count++ + } + } + v = int(tv) + } + return count +} + +func (c *normCompacter) Size(v []uint64) (sz int, ok bool) { + if n := countSparseEntries(v); n <= maxSparseEntries { + return (n+1)*4 + 2, true + } + return 0, false +} + +func (c *normCompacter) Store(v []uint64) uint32 { + h := uint32(len(c.sparseOffset)) + c.sparseBlocks = append(c.sparseBlocks, v) + c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount)) + c.sparseCount += countSparseEntries(v) + 1 + return h +} + +func (c *normCompacter) Handler() string { + return c.name + "Sparse.lookup" +} + +func (c *normCompacter) Print(w io.Writer) (retErr error) { + p := func(f string, x ...interface{}) { + if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil { + retErr = err + } + } + + ls := len(c.sparseBlocks) + p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2) + p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset) + + ns := c.sparseCount + p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4) + p("var %sSparseValues = [%d]valueRange {", c.name, ns) + for i, b := range c.sparseBlocks { + p("\n// Block %#x, offset %#x", i, c.sparseOffset[i]) + var v int + stride := mostFrequentStride(b) + n := countSparseEntries(b) + p("\n{value:%#04x,lo:%#02x},", stride, uint8(n)) + for i, nv := range b { + if int(nv)-v != stride { + if v != 0 { + p(",hi:%#02x},", 0x80+i-1) + } + if nv != 0 { + p("\n{value:%#04x,lo:%#02x", nv, 0x80+i) + } + } + v = int(nv) + } + if v != 0 { + p(",hi:%#02x},", 0x80+len(b)-1) + } + } + p("\n}\n\n") + return +} diff --git a/vendor/golang.org/x/text/unicode/norm/ucd_test.go b/vendor/golang.org/x/text/unicode/norm/ucd_test.go new file mode 100644 index 00000000..29205a6a --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/ucd_test.go @@ -0,0 +1,275 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package norm + +import ( + "bufio" + "bytes" + "fmt" + "regexp" + "runtime" + "strconv" + "strings" + "sync" + "testing" + "time" + "unicode/utf8" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/testtext" +) + +var once sync.Once + +func skipShort(t *testing.T) { + testtext.SkipIfNotLong(t) + + once.Do(func() { loadTestData(t) }) +} + +// This regression test runs the test set in NormalizationTest.txt +// (taken from http://www.unicode.org/Public//ucd/). +// +// NormalizationTest.txt has form: +// @Part0 # Specific cases +// # +// 1E0A;1E0A;0044 0307;1E0A;0044 0307; # (Ḋ; Ḋ; D◌̇; Ḋ; D◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE +// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # (Ḍ; Ḍ; D◌̣; Ḍ; D◌̣; ) LATIN CAPITAL LETTER D WITH DOT BELOW +// +// Each test has 5 columns (c1, c2, c3, c4, c5), where +// (c1, c2, c3, c4, c5) == (c1, NFC(c1), NFD(c1), NFKC(c1), NFKD(c1)) +// +// CONFORMANCE: +// 1. The following invariants must be true for all conformant implementations +// +// NFC +// c2 == NFC(c1) == NFC(c2) == NFC(c3) +// c4 == NFC(c4) == NFC(c5) +// +// NFD +// c3 == NFD(c1) == NFD(c2) == NFD(c3) +// c5 == NFD(c4) == NFD(c5) +// +// NFKC +// c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5) +// +// NFKD +// c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5) +// +// 2. For every code point X assigned in this version of Unicode that is not +// specifically listed in Part 1, the following invariants must be true +// for all conformant implementations: +// +// X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X) +// + +// Column types. +const ( + cRaw = iota + cNFC + cNFD + cNFKC + cNFKD + cMaxColumns +) + +// Holds data from NormalizationTest.txt +var part []Part + +type Part struct { + name string + number int + tests []Test +} + +type Test struct { + name string + partnr int + number int + r rune // used for character by character test + cols [cMaxColumns]string // Each has 5 entries, see below. +} + +func (t Test) Name() string { + if t.number < 0 { + return part[t.partnr].name + } + return fmt.Sprintf("%s:%d", part[t.partnr].name, t.number) +} + +var partRe = regexp.MustCompile(`@Part(\d) # (.*)$`) +var testRe = regexp.MustCompile(`^` + strings.Repeat(`([\dA-F ]+);`, 5) + ` # (.*)$`) + +var counter int + +// Load the data form NormalizationTest.txt +func loadTestData(t *testing.T) { + f := gen.OpenUCDFile("NormalizationTest.txt") + defer f.Close() + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := scanner.Text() + if len(line) == 0 || line[0] == '#' { + continue + } + m := partRe.FindStringSubmatch(line) + if m != nil { + if len(m) < 3 { + t.Fatal("Failed to parse Part: ", line) + } + i, err := strconv.Atoi(m[1]) + if err != nil { + t.Fatal(err) + } + name := m[2] + part = append(part, Part{name: name[:len(name)-1], number: i}) + continue + } + m = testRe.FindStringSubmatch(line) + if m == nil || len(m) < 7 { + t.Fatalf(`Failed to parse: "%s" result: %#v`, line, m) + } + test := Test{name: m[6], partnr: len(part) - 1, number: counter} + counter++ + for j := 1; j < len(m)-1; j++ { + for _, split := range strings.Split(m[j], " ") { + r, err := strconv.ParseUint(split, 16, 64) + if err != nil { + t.Fatal(err) + } + if test.r == 0 { + // save for CharacterByCharacterTests + test.r = rune(r) + } + var buf [utf8.UTFMax]byte + sz := utf8.EncodeRune(buf[:], rune(r)) + test.cols[j-1] += string(buf[:sz]) + } + } + part := &part[len(part)-1] + part.tests = append(part.tests, test) + } + if scanner.Err() != nil { + t.Fatal(scanner.Err()) + } +} + +func cmpResult(t *testing.T, tc *Test, name string, f Form, gold, test, result string) { + if gold != result { + t.Errorf("%s:%s: %s(%+q)=%+q; want %+q: %s", + tc.Name(), name, fstr[f], test, result, gold, tc.name) + } +} + +func cmpIsNormal(t *testing.T, tc *Test, name string, f Form, test string, result, want bool) { + if result != want { + t.Errorf("%s:%s: %s(%+q)=%v; want %v", tc.Name(), name, fstr[f], test, result, want) + } +} + +func doTest(t *testing.T, tc *Test, f Form, gold, test string) { + testb := []byte(test) + result := f.Bytes(testb) + cmpResult(t, tc, "Bytes", f, gold, test, string(result)) + + sresult := f.String(test) + cmpResult(t, tc, "String", f, gold, test, sresult) + + acc := []byte{} + i := Iter{} + i.InitString(f, test) + for !i.Done() { + acc = append(acc, i.Next()...) + } + cmpResult(t, tc, "Iter.Next", f, gold, test, string(acc)) + + buf := make([]byte, 128) + acc = nil + for p := 0; p < len(testb); { + nDst, nSrc, _ := f.Transform(buf, testb[p:], true) + acc = append(acc, buf[:nDst]...) + p += nSrc + } + cmpResult(t, tc, "Transform", f, gold, test, string(acc)) + + for i := range test { + out := f.Append(f.Bytes([]byte(test[:i])), []byte(test[i:])...) + cmpResult(t, tc, fmt.Sprintf(":Append:%d", i), f, gold, test, string(out)) + } + cmpIsNormal(t, tc, "IsNormal", f, test, f.IsNormal([]byte(test)), test == gold) + cmpIsNormal(t, tc, "IsNormalString", f, test, f.IsNormalString(test), test == gold) +} + +func doConformanceTests(t *testing.T, tc *Test, partn int) { + for i := 0; i <= 2; i++ { + doTest(t, tc, NFC, tc.cols[1], tc.cols[i]) + doTest(t, tc, NFD, tc.cols[2], tc.cols[i]) + doTest(t, tc, NFKC, tc.cols[3], tc.cols[i]) + doTest(t, tc, NFKD, tc.cols[4], tc.cols[i]) + } + for i := 3; i <= 4; i++ { + doTest(t, tc, NFC, tc.cols[3], tc.cols[i]) + doTest(t, tc, NFD, tc.cols[4], tc.cols[i]) + doTest(t, tc, NFKC, tc.cols[3], tc.cols[i]) + doTest(t, tc, NFKD, tc.cols[4], tc.cols[i]) + } +} + +func TestCharacterByCharacter(t *testing.T) { + skipShort(t) + tests := part[1].tests + var last rune = 0 + for i := 0; i <= len(tests); i++ { // last one is special case + var r rune + if i == len(tests) { + r = 0x2FA1E // Don't have to go to 0x10FFFF + } else { + r = tests[i].r + } + for last++; last < r; last++ { + // Check all characters that were not explicitly listed in the test. + tc := &Test{partnr: 1, number: -1} + char := string(last) + doTest(t, tc, NFC, char, char) + doTest(t, tc, NFD, char, char) + doTest(t, tc, NFKC, char, char) + doTest(t, tc, NFKD, char, char) + } + if i < len(tests) { + doConformanceTests(t, &tests[i], 1) + } + } +} + +func TestStandardTests(t *testing.T) { + skipShort(t) + for _, j := range []int{0, 2, 3} { + for _, test := range part[j].tests { + doConformanceTests(t, &test, j) + } + } +} + +// TestPerformance verifies that normalization is O(n). If any of the +// code does not properly check for maxCombiningChars, normalization +// may exhibit O(n**2) behavior. +func TestPerformance(t *testing.T) { + skipShort(t) + runtime.GOMAXPROCS(2) + success := make(chan bool, 1) + go func() { + buf := bytes.Repeat([]byte("\u035D"), 1024*1024) + buf = append(buf, "\u035B"...) + NFC.Append(nil, buf...) + success <- true + }() + timeout := time.After(1 * time.Second) + select { + case <-success: + // test completed before the timeout + case <-timeout: + t.Errorf(`unexpectedly long time to complete PerformanceTest`) + } +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/gen.go b/vendor/golang.org/x/text/unicode/rangetable/gen.go new file mode 100644 index 00000000..bea49dda --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/gen.go @@ -0,0 +1,113 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "bytes" + "flag" + "fmt" + "io" + "log" + "reflect" + "sort" + "strings" + "unicode" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/ucd" + "golang.org/x/text/unicode/rangetable" +) + +var versionList = flag.String("versions", "", + "list of versions for which to generate RangeTables") + +const bootstrapMessage = `No versions specified. +To bootstrap the code generation, run: + go run gen.go --versions=4.1.0,5.0.0,6.0.0,6.1.0,6.2.0,6.3.0,7.0.0 + +and ensure that the latest versions are included by checking: + http://www.unicode.org/Public/` + +func getVersions() []string { + if *versionList == "" { + log.Fatal(bootstrapMessage) + } + + versions := strings.Split(*versionList, ",") + sort.Strings(versions) + + // Ensure that at least the current version is included. + for _, v := range versions { + if v == gen.UnicodeVersion() { + return versions + } + } + + versions = append(versions, gen.UnicodeVersion()) + sort.Strings(versions) + return versions +} + +func main() { + gen.Init() + + versions := getVersions() + + w := &bytes.Buffer{} + + fmt.Fprintf(w, "//go:generate go run gen.go --versions=%s\n\n", strings.Join(versions, ",")) + fmt.Fprintf(w, "import \"unicode\"\n\n") + + vstr := func(s string) string { return strings.Replace(s, ".", "_", -1) } + + fmt.Fprintf(w, "var assigned = map[string]*unicode.RangeTable{\n") + for _, v := range versions { + fmt.Fprintf(w, "\t%q: assigned%s,\n", v, vstr(v)) + } + fmt.Fprintf(w, "}\n\n") + + var size int + for _, v := range versions { + assigned := []rune{} + + r := gen.Open("http://www.unicode.org/Public/", "", v+"/ucd/UnicodeData.txt") + ucd.Parse(r, func(p *ucd.Parser) { + assigned = append(assigned, p.Rune(0)) + }) + + rt := rangetable.New(assigned...) + sz := int(reflect.TypeOf(unicode.RangeTable{}).Size()) + sz += int(reflect.TypeOf(unicode.Range16{}).Size()) * len(rt.R16) + sz += int(reflect.TypeOf(unicode.Range32{}).Size()) * len(rt.R32) + + fmt.Fprintf(w, "// size %d bytes (%d KiB)\n", sz, sz/1024) + fmt.Fprintf(w, "var assigned%s = ", vstr(v)) + print(w, rt) + + size += sz + } + + fmt.Fprintf(w, "// Total size %d bytes (%d KiB)\n", size, size/1024) + + gen.WriteGoFile("tables.go", "rangetable", w.Bytes()) +} + +func print(w io.Writer, rt *unicode.RangeTable) { + fmt.Fprintln(w, "&unicode.RangeTable{") + fmt.Fprintln(w, "\tR16: []unicode.Range16{") + for _, r := range rt.R16 { + fmt.Fprintf(w, "\t\t{%#04x, %#04x, %d},\n", r.Lo, r.Hi, r.Stride) + } + fmt.Fprintln(w, "\t},") + fmt.Fprintln(w, "\tR32: []unicode.Range32{") + for _, r := range rt.R32 { + fmt.Fprintf(w, "\t\t{%#08x, %#08x, %d},\n", r.Lo, r.Hi, r.Stride) + } + fmt.Fprintln(w, "\t},") + fmt.Fprintf(w, "\tLatinOffset: %d,\n", rt.LatinOffset) + fmt.Fprintf(w, "}\n\n") +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/merge.go b/vendor/golang.org/x/text/unicode/rangetable/merge.go new file mode 100644 index 00000000..ea2a0803 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/merge.go @@ -0,0 +1,260 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rangetable + +import ( + "unicode" +) + +// atEnd is used to mark a completed iteration. +const atEnd = unicode.MaxRune + 1 + +// Merge returns a new RangeTable that is the union of the given tables. +// It can also be used to compact user-created RangeTables. The entries in +// R16 and R32 for any given RangeTable should be sorted and non-overlapping. +// +// A lookup in the resulting table can be several times faster than using In +// directly on the ranges. Merge is an expensive operation, however, and only +// makes sense if one intends to use the result for more than a couple of +// hundred lookups. +func Merge(ranges ...*unicode.RangeTable) *unicode.RangeTable { + rt := &unicode.RangeTable{} + if len(ranges) == 0 { + return rt + } + + iter := tablesIter(make([]tableIndex, len(ranges))) + + for i, t := range ranges { + iter[i] = tableIndex{t, 0, atEnd} + if len(t.R16) > 0 { + iter[i].next = rune(t.R16[0].Lo) + } + } + + if r0 := iter.next16(); r0.Stride != 0 { + for { + r1 := iter.next16() + if r1.Stride == 0 { + rt.R16 = append(rt.R16, r0) + break + } + stride := r1.Lo - r0.Hi + if (r1.Lo == r1.Hi || stride == r1.Stride) && (r0.Lo == r0.Hi || stride == r0.Stride) { + // Fully merge the next range into the previous one. + r0.Hi, r0.Stride = r1.Hi, stride + continue + } else if stride == r0.Stride { + // Move the first element of r1 to r0. This may eliminate an + // entry. + r0.Hi = r1.Lo + r0.Stride = stride + r1.Lo = r1.Lo + r1.Stride + if r1.Lo > r1.Hi { + continue + } + } + rt.R16 = append(rt.R16, r0) + r0 = r1 + } + } + + for i, t := range ranges { + iter[i] = tableIndex{t, 0, atEnd} + if len(t.R32) > 0 { + iter[i].next = rune(t.R32[0].Lo) + } + } + + if r0 := iter.next32(); r0.Stride != 0 { + for { + r1 := iter.next32() + if r1.Stride == 0 { + rt.R32 = append(rt.R32, r0) + break + } + stride := r1.Lo - r0.Hi + if (r1.Lo == r1.Hi || stride == r1.Stride) && (r0.Lo == r0.Hi || stride == r0.Stride) { + // Fully merge the next range into the previous one. + r0.Hi, r0.Stride = r1.Hi, stride + continue + } else if stride == r0.Stride { + // Move the first element of r1 to r0. This may eliminate an + // entry. + r0.Hi = r1.Lo + r1.Lo = r1.Lo + r1.Stride + if r1.Lo > r1.Hi { + continue + } + } + rt.R32 = append(rt.R32, r0) + r0 = r1 + } + } + + for i := 0; i < len(rt.R16) && rt.R16[i].Hi <= unicode.MaxLatin1; i++ { + rt.LatinOffset = i + 1 + } + + return rt +} + +type tableIndex struct { + t *unicode.RangeTable + p uint32 + next rune +} + +type tablesIter []tableIndex + +// sortIter does an insertion sort using the next field of tableIndex. Insertion +// sort is a good sorting algorithm for this case. +func sortIter(t []tableIndex) { + for i := range t { + for j := i; j > 0 && t[j-1].next > t[j].next; j-- { + t[j], t[j-1] = t[j-1], t[j] + } + } +} + +// next16 finds the ranged to be added to the table. If ranges overlap between +// multiple tables it clips the result to a non-overlapping range if the +// elements are not fully subsumed. It returns a zero range if there are no more +// ranges. +func (ti tablesIter) next16() unicode.Range16 { + sortIter(ti) + + t0 := ti[0] + if t0.next == atEnd { + return unicode.Range16{} + } + r0 := t0.t.R16[t0.p] + r0.Lo = uint16(t0.next) + + // We restrict the Hi of the current range if it overlaps with another range. + for i := range ti { + tn := ti[i] + // Since our tableIndices are sorted by next, we can break if the there + // is no overlap. The first value of a next range can always be merged + // into the current one, so we can break in case of equality as well. + if rune(r0.Hi) <= tn.next { + break + } + rn := tn.t.R16[tn.p] + rn.Lo = uint16(tn.next) + + // Limit r0.Hi based on next ranges in list, but allow it to overlap + // with ranges as long as it subsumes it. + m := (rn.Lo - r0.Lo) % r0.Stride + if m == 0 && (rn.Stride == r0.Stride || rn.Lo == rn.Hi) { + // Overlap, take the min of the two Hi values: for simplicity's sake + // we only process one range at a time. + if r0.Hi > rn.Hi { + r0.Hi = rn.Hi + } + } else { + // Not a compatible stride. Set to the last possible value before + // rn.Lo, but ensure there is at least one value. + if x := rn.Lo - m; r0.Lo <= x { + r0.Hi = x + } + break + } + } + + // Update the next values for each table. + for i := range ti { + tn := &ti[i] + if rune(r0.Hi) < tn.next { + break + } + rn := tn.t.R16[tn.p] + stride := rune(rn.Stride) + tn.next += stride * (1 + ((rune(r0.Hi) - tn.next) / stride)) + if rune(rn.Hi) < tn.next { + if tn.p++; int(tn.p) == len(tn.t.R16) { + tn.next = atEnd + } else { + tn.next = rune(tn.t.R16[tn.p].Lo) + } + } + } + + if r0.Lo == r0.Hi { + r0.Stride = 1 + } + + return r0 +} + +// next32 finds the ranged to be added to the table. If ranges overlap between +// multiple tables it clips the result to a non-overlapping range if the +// elements are not fully subsumed. It returns a zero range if there are no more +// ranges. +func (ti tablesIter) next32() unicode.Range32 { + sortIter(ti) + + t0 := ti[0] + if t0.next == atEnd { + return unicode.Range32{} + } + r0 := t0.t.R32[t0.p] + r0.Lo = uint32(t0.next) + + // We restrict the Hi of the current range if it overlaps with another range. + for i := range ti { + tn := ti[i] + // Since our tableIndices are sorted by next, we can break if the there + // is no overlap. The first value of a next range can always be merged + // into the current one, so we can break in case of equality as well. + if rune(r0.Hi) <= tn.next { + break + } + rn := tn.t.R32[tn.p] + rn.Lo = uint32(tn.next) + + // Limit r0.Hi based on next ranges in list, but allow it to overlap + // with ranges as long as it subsumes it. + m := (rn.Lo - r0.Lo) % r0.Stride + if m == 0 && (rn.Stride == r0.Stride || rn.Lo == rn.Hi) { + // Overlap, take the min of the two Hi values: for simplicity's sake + // we only process one range at a time. + if r0.Hi > rn.Hi { + r0.Hi = rn.Hi + } + } else { + // Not a compatible stride. Set to the last possible value before + // rn.Lo, but ensure there is at least one value. + if x := rn.Lo - m; r0.Lo <= x { + r0.Hi = x + } + break + } + } + + // Update the next values for each table. + for i := range ti { + tn := &ti[i] + if rune(r0.Hi) < tn.next { + break + } + rn := tn.t.R32[tn.p] + stride := rune(rn.Stride) + tn.next += stride * (1 + ((rune(r0.Hi) - tn.next) / stride)) + if rune(rn.Hi) < tn.next { + if tn.p++; int(tn.p) == len(tn.t.R32) { + tn.next = atEnd + } else { + tn.next = rune(tn.t.R32[tn.p].Lo) + } + } + } + + if r0.Lo == r0.Hi { + r0.Stride = 1 + } + + return r0 +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/merge_test.go b/vendor/golang.org/x/text/unicode/rangetable/merge_test.go new file mode 100644 index 00000000..93ed0fca --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/merge_test.go @@ -0,0 +1,184 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rangetable + +import ( + "testing" + "unicode" +) + +var ( + maxRuneTable = &unicode.RangeTable{ + R32: []unicode.Range32{ + {unicode.MaxRune, unicode.MaxRune, 1}, + }, + } + + overlap1 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x100, 0xfffc, 4}, + }, + R32: []unicode.Range32{ + {0x100000, 0x10fffc, 4}, + }, + } + + overlap2 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x101, 0xfffd, 4}, + }, + R32: []unicode.Range32{ + {0x100001, 0x10fffd, 3}, + }, + } + + // The following table should be compacted into two entries for R16 and R32. + optimize = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x1, 0x1, 1}, + {0x2, 0x2, 1}, + {0x3, 0x3, 1}, + {0x5, 0x5, 1}, + {0x7, 0x7, 1}, + {0x9, 0x9, 1}, + {0xb, 0xf, 2}, + }, + R32: []unicode.Range32{ + {0x10001, 0x10001, 1}, + {0x10002, 0x10002, 1}, + {0x10003, 0x10003, 1}, + {0x10005, 0x10005, 1}, + {0x10007, 0x10007, 1}, + {0x10009, 0x10009, 1}, + {0x1000b, 0x1000f, 2}, + }, + } +) + +func TestMerge(t *testing.T) { + for i, tt := range [][]*unicode.RangeTable{ + {unicode.Cc, unicode.Cf}, + {unicode.L, unicode.Ll}, + {unicode.L, unicode.Ll, unicode.Lu}, + {unicode.Ll, unicode.Lu}, + {unicode.M}, + unicode.GraphicRanges, + cased, + + // Merge R16 only and R32 only and vice versa. + {unicode.Khmer, unicode.Khudawadi}, + {unicode.Imperial_Aramaic, unicode.Radical}, + + // Merge with empty. + {&unicode.RangeTable{}}, + {&unicode.RangeTable{}, &unicode.RangeTable{}}, + {&unicode.RangeTable{}, &unicode.RangeTable{}, &unicode.RangeTable{}}, + {&unicode.RangeTable{}, unicode.Hiragana}, + {unicode.Inherited, &unicode.RangeTable{}}, + {&unicode.RangeTable{}, unicode.Hanunoo, &unicode.RangeTable{}}, + + // Hypothetical tables. + {maxRuneTable}, + {overlap1, overlap2}, + + // Optimization + {optimize}, + } { + rt := Merge(tt...) + for r := rune(0); r <= unicode.MaxRune; r++ { + if got, want := unicode.Is(rt, r), unicode.In(r, tt...); got != want { + t.Fatalf("%d:%U: got %v; want %v", i, r, got, want) + } + } + // Test optimization and correctness for R16. + for k := 0; k < len(rt.R16)-1; k++ { + if lo, hi := rt.R16[k].Lo, rt.R16[k].Hi; lo > hi { + t.Errorf("%d: Lo (%x) > Hi (%x)", i, lo, hi) + } + if hi, lo := rt.R16[k].Hi, rt.R16[k+1].Lo; hi >= lo { + t.Errorf("%d: Hi (%x) >= next Lo (%x)", i, hi, lo) + } + if rt.R16[k].Hi+rt.R16[k].Stride == rt.R16[k+1].Lo { + t.Errorf("%d: missed optimization for R16 at %d between %X and %x", + i, k, rt.R16[k], rt.R16[k+1]) + } + } + // Test optimization and correctness for R32. + for k := 0; k < len(rt.R32)-1; k++ { + if lo, hi := rt.R32[k].Lo, rt.R32[k].Hi; lo > hi { + t.Errorf("%d: Lo (%x) > Hi (%x)", i, lo, hi) + } + if hi, lo := rt.R32[k].Hi, rt.R32[k+1].Lo; hi >= lo { + t.Errorf("%d: Hi (%x) >= next Lo (%x)", i, hi, lo) + } + if rt.R32[k].Hi+rt.R32[k].Stride == rt.R32[k+1].Lo { + t.Errorf("%d: missed optimization for R32 at %d between %X and %X", + i, k, rt.R32[k], rt.R32[k+1]) + } + } + } +} + +const runes = "Hello World in 2015!,\U0010fffd" + +func BenchmarkNotMerged(t *testing.B) { + for i := 0; i < t.N; i++ { + for _, r := range runes { + unicode.In(r, unicode.GraphicRanges...) + } + } +} + +func BenchmarkMerged(t *testing.B) { + rt := Merge(unicode.GraphicRanges...) + + for i := 0; i < t.N; i++ { + for _, r := range runes { + unicode.Is(rt, r) + } + } +} + +var cased = []*unicode.RangeTable{ + unicode.Lower, + unicode.Upper, + unicode.Title, + unicode.Other_Lowercase, + unicode.Other_Uppercase, +} + +func BenchmarkNotMergedCased(t *testing.B) { + for i := 0; i < t.N; i++ { + for _, r := range runes { + unicode.In(r, cased...) + } + } +} + +func BenchmarkMergedCased(t *testing.B) { + // This reduces len(R16) from 243 to 82 and len(R32) from 65 to 35 for + // Unicode 7.0.0. + rt := Merge(cased...) + + for i := 0; i < t.N; i++ { + for _, r := range runes { + unicode.Is(rt, r) + } + } +} + +func BenchmarkInit(t *testing.B) { + for i := 0; i < t.N; i++ { + Merge(cased...) + Merge(unicode.GraphicRanges...) + } +} + +func BenchmarkInit2(t *testing.B) { + // Hypothetical near-worst-case performance. + for i := 0; i < t.N; i++ { + Merge(overlap1, overlap2) + } +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/rangetable.go b/vendor/golang.org/x/text/unicode/rangetable/rangetable.go new file mode 100644 index 00000000..187882cc --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/rangetable.go @@ -0,0 +1,70 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package rangetable provides utilities for creating and inspecting +// unicode.RangeTables. +package rangetable + +import ( + "sort" + "unicode" +) + +// New creates a RangeTable from the given runes, which may contain duplicates. +func New(r ...rune) *unicode.RangeTable { + if len(r) == 0 { + return &unicode.RangeTable{} + } + + sort.Sort(byRune(r)) + + // Remove duplicates. + k := 1 + for i := 1; i < len(r); i++ { + if r[k-1] != r[i] { + r[k] = r[i] + k++ + } + } + + var rt unicode.RangeTable + for _, r := range r[:k] { + if r <= 0xFFFF { + rt.R16 = append(rt.R16, unicode.Range16{Lo: uint16(r), Hi: uint16(r), Stride: 1}) + } else { + rt.R32 = append(rt.R32, unicode.Range32{Lo: uint32(r), Hi: uint32(r), Stride: 1}) + } + } + + // Optimize RangeTable. + return Merge(&rt) +} + +type byRune []rune + +func (r byRune) Len() int { return len(r) } +func (r byRune) Swap(i, j int) { r[i], r[j] = r[j], r[i] } +func (r byRune) Less(i, j int) bool { return r[i] < r[j] } + +// Visit visits all runes in the given RangeTable in order, calling fn for each. +func Visit(rt *unicode.RangeTable, fn func(rune)) { + for _, r16 := range rt.R16 { + for r := rune(r16.Lo); r <= rune(r16.Hi); r += rune(r16.Stride) { + fn(r) + } + } + for _, r32 := range rt.R32 { + for r := rune(r32.Lo); r <= rune(r32.Hi); r += rune(r32.Stride) { + fn(r) + } + } +} + +// Assigned returns a RangeTable with all assigned code points for a given +// Unicode version. This includes graphic, format, control, and private-use +// characters. It returns nil if the data for the given version is not +// available. +func Assigned(version string) *unicode.RangeTable { + return assigned[version] +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/rangetable_test.go b/vendor/golang.org/x/text/unicode/rangetable/rangetable_test.go new file mode 100644 index 00000000..5a355aa3 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/rangetable_test.go @@ -0,0 +1,55 @@ +package rangetable + +import ( + "reflect" + "testing" + "unicode" +) + +var ( + empty = &unicode.RangeTable{} + many = &unicode.RangeTable{ + R16: []unicode.Range16{{0, 0xffff, 5}}, + R32: []unicode.Range32{{0x10004, 0x10009, 5}}, + LatinOffset: 0, + } +) + +func TestVisit(t *testing.T) { + Visit(empty, func(got rune) { + t.Error("call from empty RangeTable") + }) + + var want rune + Visit(many, func(got rune) { + if got != want { + t.Errorf("got %U; want %U", got, want) + } + want += 5 + }) + if want -= 5; want != 0x10009 { + t.Errorf("last run was %U; want U+10009", want) + } +} + +func TestNew(t *testing.T) { + for i, rt := range []*unicode.RangeTable{ + empty, + unicode.Co, + unicode.Letter, + unicode.ASCII_Hex_Digit, + many, + maxRuneTable, + } { + var got, want []rune + Visit(rt, func(r rune) { + want = append(want, r) + }) + Visit(New(want...), func(r rune) { + got = append(got, r) + }) + if !reflect.DeepEqual(got, want) { + t.Errorf("%d:\ngot %v;\nwant %v", i, got, want) + } + } +} diff --git a/vendor/golang.org/x/text/unicode/rangetable/tables.go b/vendor/golang.org/x/text/unicode/rangetable/tables.go new file mode 100644 index 00000000..25c4dfb7 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/rangetable/tables.go @@ -0,0 +1,5735 @@ +// This file was generated by go generate; DO NOT EDIT + +package rangetable + +//go:generate go run gen.go --versions=4.1.0,5.0.0,5.1.0,5.2.0,6.0.0,6.1.0,6.2.0,6.3.0,7.0.0,8.0.0,9.0.0 + +import "unicode" + +var assigned = map[string]*unicode.RangeTable{ + "4.1.0": assigned4_1_0, + "5.0.0": assigned5_0_0, + "5.1.0": assigned5_1_0, + "5.2.0": assigned5_2_0, + "6.0.0": assigned6_0_0, + "6.1.0": assigned6_1_0, + "6.2.0": assigned6_2_0, + "6.3.0": assigned6_3_0, + "7.0.0": assigned7_0_0, + "8.0.0": assigned8_0_0, + "9.0.0": assigned9_0_0, +} + +// size 2924 bytes (2 KiB) +var assigned4_1_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0241, 1}, + {0x0250, 0x036f, 1}, + {0x0374, 0x0375, 1}, + {0x037a, 0x037e, 4}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x03ce, 1}, + {0x03d0, 0x0486, 1}, + {0x0488, 0x04ce, 1}, + {0x04d0, 0x04f9, 1}, + {0x0500, 0x050f, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x0591, 0x05b9, 1}, + {0x05bb, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0603, 1}, + {0x060b, 0x0615, 1}, + {0x061b, 0x061e, 3}, + {0x061f, 0x0621, 2}, + {0x0622, 0x063a, 1}, + {0x0640, 0x065e, 1}, + {0x0660, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x076d, 1}, + {0x0780, 0x07b1, 1}, + {0x0901, 0x0939, 1}, + {0x093c, 0x094d, 1}, + {0x0950, 0x0954, 1}, + {0x0958, 0x0970, 1}, + {0x097d, 0x0981, 4}, + {0x0982, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fa, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a59, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a74, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0aef, 1}, + {0x0af1, 0x0b01, 16}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b43, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b61, 1}, + {0x0b66, 0x0b71, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd7, 0x0be6, 15}, + {0x0be7, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3e, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c60, 0x0c61, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce6, 5}, + {0x0ce7, 0x0cef, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d28, 1}, + {0x0d2a, 0x0d39, 1}, + {0x0d3e, 0x0d43, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4d, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d66, 5}, + {0x0d67, 0x0d6f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edd, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6a, 1}, + {0x0f71, 0x0f8b, 1}, + {0x0f90, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fcf, 0x0fd1, 1}, + {0x1000, 0x1021, 1}, + {0x1023, 0x1027, 1}, + {0x1029, 0x102a, 1}, + {0x102c, 0x1032, 1}, + {0x1036, 0x1039, 1}, + {0x1040, 0x1059, 1}, + {0x10a0, 0x10c5, 1}, + {0x10d0, 0x10fc, 1}, + {0x1100, 0x1159, 1}, + {0x115f, 0x11a2, 1}, + {0x11a8, 0x11f9, 1}, + {0x1200, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135f, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1401, 0x1676, 1}, + {0x1680, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18a9, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19a9, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19d9, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a1f, 1}, + {0x1d00, 0x1dc3, 1}, + {0x1e00, 0x1e9b, 1}, + {0x1ea0, 0x1ef9, 1}, + {0x1f00, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2063, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x2094, 1}, + {0x20a0, 0x20b5, 1}, + {0x20d0, 0x20eb, 1}, + {0x2100, 0x214c, 1}, + {0x2153, 0x2183, 1}, + {0x2190, 0x23db, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x269c, 1}, + {0x26a0, 0x26b1, 1}, + {0x2701, 0x2704, 1}, + {0x2706, 0x2709, 1}, + {0x270c, 0x2727, 1}, + {0x2729, 0x274b, 1}, + {0x274d, 0x274f, 2}, + {0x2750, 0x2752, 1}, + {0x2756, 0x2758, 2}, + {0x2759, 0x275e, 1}, + {0x2761, 0x2794, 1}, + {0x2798, 0x27af, 1}, + {0x27b1, 0x27be, 1}, + {0x27c0, 0x27c6, 1}, + {0x27d0, 0x27eb, 1}, + {0x27f0, 0x2b13, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c80, 0x2cea, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d30, 0x2d65, 1}, + {0x2d6f, 0x2d80, 17}, + {0x2d81, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2e00, 0x2e17, 1}, + {0x2e1c, 0x2e1d, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312c, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31b7, 1}, + {0x31c0, 0x31cf, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x3243, 1}, + {0x3250, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fbb, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa700, 0xa716, 1}, + {0xa800, 0xa82b, 1}, + {0xac00, 0xd7a3, 1}, + {0xd800, 0xfa2d, 1}, + {0xfa30, 0xfa6a, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbb1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe23, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010a00, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d12a, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7c9, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 3026 bytes (2 KiB) +var assigned5_0_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x036f, 1}, + {0x0374, 0x0375, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x03ce, 1}, + {0x03d0, 0x0486, 1}, + {0x0488, 0x0513, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0603, 1}, + {0x060b, 0x0615, 1}, + {0x061b, 0x061e, 3}, + {0x061f, 0x0621, 2}, + {0x0622, 0x063a, 1}, + {0x0640, 0x065e, 1}, + {0x0660, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x076d, 1}, + {0x0780, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0901, 0x0939, 1}, + {0x093c, 0x094d, 1}, + {0x0950, 0x0954, 1}, + {0x0958, 0x0970, 1}, + {0x097b, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fa, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a59, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a74, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0aef, 1}, + {0x0af1, 0x0b01, 16}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b43, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b61, 1}, + {0x0b66, 0x0b71, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd7, 0x0be6, 15}, + {0x0be7, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3e, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c60, 0x0c61, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d28, 1}, + {0x0d2a, 0x0d39, 1}, + {0x0d3e, 0x0d43, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4d, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d66, 5}, + {0x0d67, 0x0d6f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edd, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6a, 1}, + {0x0f71, 0x0f8b, 1}, + {0x0f90, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fcf, 0x0fd1, 1}, + {0x1000, 0x1021, 1}, + {0x1023, 0x1027, 1}, + {0x1029, 0x102a, 1}, + {0x102c, 0x1032, 1}, + {0x1036, 0x1039, 1}, + {0x1040, 0x1059, 1}, + {0x10a0, 0x10c5, 1}, + {0x10d0, 0x10fc, 1}, + {0x1100, 0x1159, 1}, + {0x115f, 0x11a2, 1}, + {0x11a8, 0x11f9, 1}, + {0x1200, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135f, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1401, 0x1676, 1}, + {0x1680, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18a9, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19a9, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19d9, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a1f, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1d00, 0x1dca, 1}, + {0x1dfe, 0x1e9b, 1}, + {0x1ea0, 0x1ef9, 1}, + {0x1f00, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2063, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x2094, 1}, + {0x20a0, 0x20b5, 1}, + {0x20d0, 0x20ef, 1}, + {0x2100, 0x214e, 1}, + {0x2153, 0x2184, 1}, + {0x2190, 0x23e7, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x269c, 1}, + {0x26a0, 0x26b2, 1}, + {0x2701, 0x2704, 1}, + {0x2706, 0x2709, 1}, + {0x270c, 0x2727, 1}, + {0x2729, 0x274b, 1}, + {0x274d, 0x274f, 2}, + {0x2750, 0x2752, 1}, + {0x2756, 0x2758, 2}, + {0x2759, 0x275e, 1}, + {0x2761, 0x2794, 1}, + {0x2798, 0x27af, 1}, + {0x27b1, 0x27be, 1}, + {0x27c0, 0x27ca, 1}, + {0x27d0, 0x27eb, 1}, + {0x27f0, 0x2b1a, 1}, + {0x2b20, 0x2b23, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2c6c, 1}, + {0x2c74, 0x2c77, 1}, + {0x2c80, 0x2cea, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d30, 0x2d65, 1}, + {0x2d6f, 0x2d80, 17}, + {0x2d81, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2e00, 0x2e17, 1}, + {0x2e1c, 0x2e1d, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312c, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31b7, 1}, + {0x31c0, 0x31cf, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x3243, 1}, + {0x3250, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fbb, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa700, 0xa71a, 1}, + {0xa720, 0xa721, 1}, + {0xa800, 0xa82b, 1}, + {0xa840, 0xa877, 1}, + {0xac00, 0xd7a3, 1}, + {0xd800, 0xfa2d, 1}, + {0xfa30, 0xfa6a, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbb1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe23, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010900, 0x00010919, 1}, + {0x0001091f, 0x00010a00, 225}, + {0x00010a01, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d12a, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 3152 bytes (3 KiB) +var assigned5_1_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0523, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0603, 1}, + {0x0606, 0x061b, 1}, + {0x061e, 0x061f, 1}, + {0x0621, 0x065e, 1}, + {0x0660, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0901, 0x0939, 1}, + {0x093c, 0x094d, 1}, + {0x0950, 0x0954, 1}, + {0x0958, 0x0972, 1}, + {0x097b, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fa, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0aef, 1}, + {0x0af1, 0x0b01, 16}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b71, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d28, 1}, + {0x0d2a, 0x0d39, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4d, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edd, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f8b, 1}, + {0x0f90, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fd4, 1}, + {0x1000, 0x1099, 1}, + {0x109e, 0x10c5, 1}, + {0x10d0, 0x10fc, 1}, + {0x1100, 0x1159, 1}, + {0x115f, 0x11a2, 1}, + {0x11a8, 0x11f9, 1}, + {0x1200, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135f, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1401, 0x1676, 1}, + {0x1680, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19a9, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19d9, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a1f, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1baa, 1}, + {0x1bae, 0x1bb9, 1}, + {0x1c00, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfe, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x2094, 1}, + {0x20a0, 0x20b5, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x214f, 1}, + {0x2153, 0x2188, 1}, + {0x2190, 0x23e7, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x269d, 1}, + {0x26a0, 0x26bc, 1}, + {0x26c0, 0x26c3, 1}, + {0x2701, 0x2704, 1}, + {0x2706, 0x2709, 1}, + {0x270c, 0x2727, 1}, + {0x2729, 0x274b, 1}, + {0x274d, 0x274f, 2}, + {0x2750, 0x2752, 1}, + {0x2756, 0x2758, 2}, + {0x2759, 0x275e, 1}, + {0x2761, 0x2794, 1}, + {0x2798, 0x27af, 1}, + {0x27b1, 0x27be, 1}, + {0x27c0, 0x27ca, 1}, + {0x27cc, 0x27d0, 4}, + {0x27d1, 0x2b4c, 1}, + {0x2b50, 0x2b54, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2c6f, 1}, + {0x2c71, 0x2c7d, 1}, + {0x2c80, 0x2cea, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d30, 0x2d65, 1}, + {0x2d6f, 0x2d80, 17}, + {0x2d81, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e30, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31b7, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x3243, 1}, + {0x3250, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fc3, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa500, 0xa62b, 1}, + {0xa640, 0xa65f, 1}, + {0xa662, 0xa673, 1}, + {0xa67c, 0xa697, 1}, + {0xa700, 0xa78c, 1}, + {0xa7fb, 0xa82b, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xaa00, 161}, + {0xaa01, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa5f, 1}, + {0xac00, 0xd7a3, 1}, + {0xd800, 0xfa2d, 1}, + {0xfa30, 0xfa6a, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbb1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010900, 0x00010919, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010a00, 193}, + {0x00010a01, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 3518 bytes (3 KiB) +var assigned5_2_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0525, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0603, 1}, + {0x0606, 0x061b, 1}, + {0x061e, 0x061f, 1}, + {0x0621, 0x065e, 1}, + {0x0660, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0900, 0x0939, 1}, + {0x093c, 0x094e, 1}, + {0x0950, 0x0955, 1}, + {0x0958, 0x0972, 1}, + {0x0979, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0aef, 1}, + {0x0af1, 0x0b01, 16}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b71, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d28, 1}, + {0x0d2a, 0x0d39, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4d, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edd, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f8b, 1}, + {0x0f90, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fd8, 1}, + {0x1000, 0x10c5, 1}, + {0x10d0, 0x10fc, 1}, + {0x1100, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135f, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1baa, 1}, + {0x1bae, 0x1bb9, 1}, + {0x1c00, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cd0, 0x1cf2, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfd, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x2094, 1}, + {0x20a0, 0x20b8, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23e8, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x26cd, 1}, + {0x26cf, 0x26e1, 1}, + {0x26e3, 0x26e8, 5}, + {0x26e9, 0x26ff, 1}, + {0x2701, 0x2704, 1}, + {0x2706, 0x2709, 1}, + {0x270c, 0x2727, 1}, + {0x2729, 0x274b, 1}, + {0x274d, 0x274f, 2}, + {0x2750, 0x2752, 1}, + {0x2756, 0x275e, 1}, + {0x2761, 0x2794, 1}, + {0x2798, 0x27af, 1}, + {0x27b1, 0x27be, 1}, + {0x27c0, 0x27ca, 1}, + {0x27cc, 0x27d0, 4}, + {0x27d1, 0x2b4c, 1}, + {0x2b50, 0x2b59, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf1, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d30, 0x2d65, 1}, + {0x2d6f, 0x2d80, 17}, + {0x2d81, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e31, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31b7, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcb, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa65f, 1}, + {0xa662, 0xa673, 1}, + {0xa67c, 0xa697, 1}, + {0xa6a0, 0xa6f7, 1}, + {0xa700, 0xa78c, 1}, + {0xa7fb, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9df, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa7b, 1}, + {0xaa80, 0xaac2, 1}, + {0xaadb, 0xaadf, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa2d, 1}, + {0xfa30, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbb1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001085f, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010a00, 193}, + {0x00010a01, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a7f, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b7f, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011080, 0x000110c1, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x00013000, 0x0001342e, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f100, 0x0001f10a, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f131, 0x0001f13d, 12}, + {0x0001f13f, 0x0001f142, 3}, + {0x0001f146, 0x0001f14a, 4}, + {0x0001f14b, 0x0001f14e, 1}, + {0x0001f157, 0x0001f15f, 8}, + {0x0001f179, 0x0001f17b, 2}, + {0x0001f17c, 0x0001f17f, 3}, + {0x0001f18a, 0x0001f18d, 1}, + {0x0001f190, 0x0001f200, 112}, + {0x0001f210, 0x0001f231, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 3812 bytes (3 KiB) +var assigned6_0_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0527, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0603, 1}, + {0x0606, 0x061b, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x0900, 162}, + {0x0901, 0x0977, 1}, + {0x0979, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0aef, 1}, + {0x0af1, 0x0b01, 16}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edd, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10d0, 0x10fc, 1}, + {0x1100, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1baa, 1}, + {0x1bae, 0x1bb9, 1}, + {0x1bc0, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cd0, 0x1cf2, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20b9, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23f3, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x26ff, 1}, + {0x2701, 0x27ca, 1}, + {0x27cc, 0x27ce, 2}, + {0x27cf, 0x2b4c, 1}, + {0x2b50, 0x2b59, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf1, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d30, 0x2d65, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e31, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcb, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa673, 1}, + {0xa67c, 0xa697, 1}, + {0xa6a0, 0xa6f7, 1}, + {0xa700, 0xa78e, 1}, + {0xa790, 0xa791, 1}, + {0xa7a0, 0xa7a9, 1}, + {0xa7fa, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9df, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa7b, 1}, + {0xaa80, 0xaac2, 1}, + {0xaadb, 0xaadf, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa2d, 1}, + {0xfa30, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001085f, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010a00, 193}, + {0x00010a01, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a7f, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b7f, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x00011080, 0x000110c1, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00016800, 0x00016a38, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0be, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0df, 1}, + {0x0001f100, 0x0001f10a, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f169, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f320, 1}, + {0x0001f330, 0x0001f335, 1}, + {0x0001f337, 0x0001f37c, 1}, + {0x0001f380, 0x0001f393, 1}, + {0x0001f3a0, 0x0001f3c4, 1}, + {0x0001f3c6, 0x0001f3ca, 1}, + {0x0001f3e0, 0x0001f3f0, 1}, + {0x0001f400, 0x0001f43e, 1}, + {0x0001f440, 0x0001f442, 2}, + {0x0001f443, 0x0001f4f7, 1}, + {0x0001f4f9, 0x0001f4fc, 1}, + {0x0001f500, 0x0001f53d, 1}, + {0x0001f550, 0x0001f567, 1}, + {0x0001f5fb, 0x0001f5ff, 1}, + {0x0001f601, 0x0001f610, 1}, + {0x0001f612, 0x0001f614, 1}, + {0x0001f616, 0x0001f61c, 2}, + {0x0001f61d, 0x0001f61e, 1}, + {0x0001f620, 0x0001f625, 1}, + {0x0001f628, 0x0001f62b, 1}, + {0x0001f62d, 0x0001f630, 3}, + {0x0001f631, 0x0001f633, 1}, + {0x0001f635, 0x0001f640, 1}, + {0x0001f645, 0x0001f64f, 1}, + {0x0001f680, 0x0001f6c5, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 4160 bytes (4 KiB) +var assigned6_1_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0527, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058f, 0x0591, 2}, + {0x0592, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0604, 1}, + {0x0606, 0x061b, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a2, 0x08ac, 1}, + {0x08e4, 0x08fe, 1}, + {0x0900, 0x0977, 1}, + {0x0979, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0b01, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20b9, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23f3, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x26ff, 1}, + {0x2701, 0x2b4c, 1}, + {0x2b50, 0x2b59, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e3b, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcc, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa697, 1}, + {0xa69f, 0xa6f7, 1}, + {0xa700, 0xa78e, 1}, + {0xa790, 0xa793, 1}, + {0xa7a0, 0xa7aa, 1}, + {0xa7f8, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9df, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa7b, 1}, + {0xaa80, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001085f, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109be, 0x000109bf, 1}, + {0x00010a00, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a7f, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b7f, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x00011080, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011180, 0x000111c8, 1}, + {0x000111d0, 0x000111d9, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0be, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0df, 1}, + {0x0001f100, 0x0001f10a, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f320, 1}, + {0x0001f330, 0x0001f335, 1}, + {0x0001f337, 0x0001f37c, 1}, + {0x0001f380, 0x0001f393, 1}, + {0x0001f3a0, 0x0001f3c4, 1}, + {0x0001f3c6, 0x0001f3ca, 1}, + {0x0001f3e0, 0x0001f3f0, 1}, + {0x0001f400, 0x0001f43e, 1}, + {0x0001f440, 0x0001f442, 2}, + {0x0001f443, 0x0001f4f7, 1}, + {0x0001f4f9, 0x0001f4fc, 1}, + {0x0001f500, 0x0001f53d, 1}, + {0x0001f540, 0x0001f543, 1}, + {0x0001f550, 0x0001f567, 1}, + {0x0001f5fb, 0x0001f640, 1}, + {0x0001f645, 0x0001f64f, 1}, + {0x0001f680, 0x0001f6c5, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 4160 bytes (4 KiB) +var assigned6_2_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0527, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058f, 0x0591, 2}, + {0x0592, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0604, 1}, + {0x0606, 0x061b, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a2, 0x08ac, 1}, + {0x08e4, 0x08fe, 1}, + {0x0900, 0x0977, 1}, + {0x0979, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0b01, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x206a, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20ba, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23f3, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x26ff, 1}, + {0x2701, 0x2b4c, 1}, + {0x2b50, 0x2b59, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e3b, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcc, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa697, 1}, + {0xa69f, 0xa6f7, 1}, + {0xa700, 0xa78e, 1}, + {0xa790, 0xa793, 1}, + {0xa7a0, 0xa7aa, 1}, + {0xa7f8, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9df, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa7b, 1}, + {0xaa80, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001085f, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109be, 0x000109bf, 1}, + {0x00010a00, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a7f, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b7f, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x00011080, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011180, 0x000111c8, 1}, + {0x000111d0, 0x000111d9, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0be, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0df, 1}, + {0x0001f100, 0x0001f10a, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f320, 1}, + {0x0001f330, 0x0001f335, 1}, + {0x0001f337, 0x0001f37c, 1}, + {0x0001f380, 0x0001f393, 1}, + {0x0001f3a0, 0x0001f3c4, 1}, + {0x0001f3c6, 0x0001f3ca, 1}, + {0x0001f3e0, 0x0001f3f0, 1}, + {0x0001f400, 0x0001f43e, 1}, + {0x0001f440, 0x0001f442, 2}, + {0x0001f443, 0x0001f4f7, 1}, + {0x0001f4f9, 0x0001f4fc, 1}, + {0x0001f500, 0x0001f53d, 1}, + {0x0001f540, 0x0001f543, 1}, + {0x0001f550, 0x0001f567, 1}, + {0x0001f5fb, 0x0001f640, 1}, + {0x0001f645, 0x0001f64f, 1}, + {0x0001f680, 0x0001f6c5, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 4160 bytes (4 KiB) +var assigned6_3_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037e, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x0527, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058f, 0x0591, 2}, + {0x0592, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x0604, 1}, + {0x0606, 0x061c, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a2, 0x08ac, 1}, + {0x08e4, 0x08fe, 1}, + {0x0900, 0x0977, 1}, + {0x0979, 0x097f, 1}, + {0x0981, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0b01, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c01, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c33, 1}, + {0x0c35, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c82, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d02, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f0, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191c, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1d00, 0x1de6, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x2066, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20ba, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23f3, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x26ff, 1}, + {0x2701, 0x2b4c, 1}, + {0x2b50, 0x2b59, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e3b, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcc, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa697, 1}, + {0xa69f, 0xa6f7, 1}, + {0xa700, 0xa78e, 1}, + {0xa790, 0xa793, 1}, + {0xa7a0, 0xa7aa, 1}, + {0xa7f8, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9df, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaa7b, 1}, + {0xaa80, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe26, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018a, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101d0, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x00010300, 0x0001031e, 1}, + {0x00010320, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001085f, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109be, 0x000109bf, 1}, + {0x00010a00, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a7f, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b7f, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x00011080, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011180, 0x000111c8, 1}, + {0x000111d0, 0x000111d9, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x00012000, 0x0001236e, 1}, + {0x00012400, 0x00012462, 1}, + {0x00012470, 0x00012473, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0be, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0df, 1}, + {0x0001f100, 0x0001f10a, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f320, 1}, + {0x0001f330, 0x0001f335, 1}, + {0x0001f337, 0x0001f37c, 1}, + {0x0001f380, 0x0001f393, 1}, + {0x0001f3a0, 0x0001f3c4, 1}, + {0x0001f3c6, 0x0001f3ca, 1}, + {0x0001f3e0, 0x0001f3f0, 1}, + {0x0001f400, 0x0001f43e, 1}, + {0x0001f440, 0x0001f442, 2}, + {0x0001f443, 0x0001f4f7, 1}, + {0x0001f4f9, 0x0001f4fc, 1}, + {0x0001f500, 0x0001f53d, 1}, + {0x0001f540, 0x0001f543, 1}, + {0x0001f550, 0x0001f567, 1}, + {0x0001f5fb, 0x0001f640, 1}, + {0x0001f645, 0x0001f64f, 1}, + {0x0001f680, 0x0001f6c5, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 4898 bytes (4 KiB) +var assigned7_0_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037f, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x052f, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058d, 0x058f, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x061c, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a1, 0x08b2, 1}, + {0x08e4, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0b01, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c00, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c59, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c81, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d01, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d60, 9}, + {0x0d61, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0de6, 0x0def, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f4, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f8, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191e, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1ab0, 0x1abe, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1cf8, 0x1cf9, 1}, + {0x1d00, 0x1df5, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x2066, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20bd, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x2189, 1}, + {0x2190, 0x23fa, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x2b73, 1}, + {0x2b76, 0x2b95, 1}, + {0x2b98, 0x2bb9, 1}, + {0x2bbd, 0x2bc8, 1}, + {0x2bca, 0x2bd1, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e42, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fcc, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa69d, 1}, + {0xa69f, 0xa6f7, 1}, + {0xa700, 0xa78e, 1}, + {0xa790, 0xa7ad, 1}, + {0xa7b0, 0xa7b1, 1}, + {0xa7f7, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fb, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9fe, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xab30, 0xab5f, 1}, + {0xab64, 0xab65, 1}, + {0xabc0, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe2d, 1}, + {0xfe30, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018c, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101a0, 0x000101d0, 48}, + {0x000101d1, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x000102e0, 0x000102fb, 1}, + {0x00010300, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010350, 0x0001037a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010500, 0x00010527, 1}, + {0x00010530, 0x00010563, 1}, + {0x0001056f, 0x00010600, 145}, + {0x00010601, 0x00010736, 1}, + {0x00010740, 0x00010755, 1}, + {0x00010760, 0x00010767, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001089e, 1}, + {0x000108a7, 0x000108af, 1}, + {0x00010900, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109be, 0x000109bf, 1}, + {0x00010a00, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a9f, 1}, + {0x00010ac0, 0x00010ae6, 1}, + {0x00010aeb, 0x00010af6, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b91, 1}, + {0x00010b99, 0x00010b9c, 1}, + {0x00010ba9, 0x00010baf, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x0001107f, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011150, 0x00011176, 1}, + {0x00011180, 0x000111c8, 1}, + {0x000111cd, 0x000111d0, 3}, + {0x000111d1, 0x000111da, 1}, + {0x000111e1, 0x000111f4, 1}, + {0x00011200, 0x00011211, 1}, + {0x00011213, 0x0001123d, 1}, + {0x000112b0, 0x000112ea, 1}, + {0x000112f0, 0x000112f9, 1}, + {0x00011301, 0x00011303, 1}, + {0x00011305, 0x0001130c, 1}, + {0x0001130f, 0x00011310, 1}, + {0x00011313, 0x00011328, 1}, + {0x0001132a, 0x00011330, 1}, + {0x00011332, 0x00011333, 1}, + {0x00011335, 0x00011339, 1}, + {0x0001133c, 0x00011344, 1}, + {0x00011347, 0x00011348, 1}, + {0x0001134b, 0x0001134d, 1}, + {0x00011357, 0x0001135d, 6}, + {0x0001135e, 0x00011363, 1}, + {0x00011366, 0x0001136c, 1}, + {0x00011370, 0x00011374, 1}, + {0x00011480, 0x000114c7, 1}, + {0x000114d0, 0x000114d9, 1}, + {0x00011580, 0x000115b5, 1}, + {0x000115b8, 0x000115c9, 1}, + {0x00011600, 0x00011644, 1}, + {0x00011650, 0x00011659, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x000118a0, 0x000118f2, 1}, + {0x000118ff, 0x00011ac0, 449}, + {0x00011ac1, 0x00011af8, 1}, + {0x00012000, 0x00012398, 1}, + {0x00012400, 0x0001246e, 1}, + {0x00012470, 0x00012474, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016a40, 0x00016a5e, 1}, + {0x00016a60, 0x00016a69, 1}, + {0x00016a6e, 0x00016a6f, 1}, + {0x00016ad0, 0x00016aed, 1}, + {0x00016af0, 0x00016af5, 1}, + {0x00016b00, 0x00016b45, 1}, + {0x00016b50, 0x00016b59, 1}, + {0x00016b5b, 0x00016b61, 1}, + {0x00016b63, 0x00016b77, 1}, + {0x00016b7d, 0x00016b8f, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001bc00, 0x0001bc6a, 1}, + {0x0001bc70, 0x0001bc7c, 1}, + {0x0001bc80, 0x0001bc88, 1}, + {0x0001bc90, 0x0001bc99, 1}, + {0x0001bc9c, 0x0001bca3, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1dd, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001d7ff, 1}, + {0x0001e800, 0x0001e8c4, 1}, + {0x0001e8c7, 0x0001e8d6, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0bf, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0f5, 1}, + {0x0001f100, 0x0001f10c, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f32c, 1}, + {0x0001f330, 0x0001f37d, 1}, + {0x0001f380, 0x0001f3ce, 1}, + {0x0001f3d4, 0x0001f3f7, 1}, + {0x0001f400, 0x0001f4fe, 1}, + {0x0001f500, 0x0001f54a, 1}, + {0x0001f550, 0x0001f579, 1}, + {0x0001f57b, 0x0001f5a3, 1}, + {0x0001f5a5, 0x0001f642, 1}, + {0x0001f645, 0x0001f6cf, 1}, + {0x0001f6e0, 0x0001f6ec, 1}, + {0x0001f6f0, 0x0001f6f3, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x0001f780, 0x0001f7d4, 1}, + {0x0001f800, 0x0001f80b, 1}, + {0x0001f810, 0x0001f847, 1}, + {0x0001f850, 0x0001f859, 1}, + {0x0001f860, 0x0001f887, 1}, + {0x0001f890, 0x0001f8ad, 1}, + {0x00020000, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 5048 bytes (4 KiB) +var assigned8_0_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037f, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x052f, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058d, 0x058f, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x061c, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a1, 0x08b4, 1}, + {0x08e3, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0af9, 0x0b01, 8}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c00, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c5a, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c7f, 1}, + {0x0c81, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d01, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4e, 1}, + {0x0d57, 0x0d5f, 8}, + {0x0d60, 0x0d63, 1}, + {0x0d66, 0x0d75, 1}, + {0x0d79, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0de6, 0x0def, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f5, 1}, + {0x13f8, 0x13fd, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f8, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191e, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1ab0, 0x1abe, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c7f, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1cf8, 0x1cf9, 1}, + {0x1d00, 0x1df5, 1}, + {0x1dfc, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x2066, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20be, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x218b, 1}, + {0x2190, 0x23fa, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x2b73, 1}, + {0x2b76, 0x2b95, 1}, + {0x2b98, 0x2bb9, 1}, + {0x2bbd, 0x2bc8, 1}, + {0x2bca, 0x2bd1, 1}, + {0x2bec, 0x2bef, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e42, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fd5, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa6f7, 1}, + {0xa700, 0xa7ad, 1}, + {0xa7b0, 0xa7b7, 1}, + {0xa7f7, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c4, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fd, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9fe, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xab30, 0xab65, 1}, + {0xab70, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018c, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101a0, 0x000101d0, 48}, + {0x000101d1, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x000102e0, 0x000102fb, 1}, + {0x00010300, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010350, 0x0001037a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x00010500, 0x00010527, 1}, + {0x00010530, 0x00010563, 1}, + {0x0001056f, 0x00010600, 145}, + {0x00010601, 0x00010736, 1}, + {0x00010740, 0x00010755, 1}, + {0x00010760, 0x00010767, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001089e, 1}, + {0x000108a7, 0x000108af, 1}, + {0x000108e0, 0x000108f2, 1}, + {0x000108f4, 0x000108f5, 1}, + {0x000108fb, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109bc, 0x000109cf, 1}, + {0x000109d2, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a9f, 1}, + {0x00010ac0, 0x00010ae6, 1}, + {0x00010aeb, 0x00010af6, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b91, 1}, + {0x00010b99, 0x00010b9c, 1}, + {0x00010ba9, 0x00010baf, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010c80, 0x00010cb2, 1}, + {0x00010cc0, 0x00010cf2, 1}, + {0x00010cfa, 0x00010cff, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x0001107f, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011150, 0x00011176, 1}, + {0x00011180, 0x000111cd, 1}, + {0x000111d0, 0x000111df, 1}, + {0x000111e1, 0x000111f4, 1}, + {0x00011200, 0x00011211, 1}, + {0x00011213, 0x0001123d, 1}, + {0x00011280, 0x00011286, 1}, + {0x00011288, 0x0001128a, 2}, + {0x0001128b, 0x0001128d, 1}, + {0x0001128f, 0x0001129d, 1}, + {0x0001129f, 0x000112a9, 1}, + {0x000112b0, 0x000112ea, 1}, + {0x000112f0, 0x000112f9, 1}, + {0x00011300, 0x00011303, 1}, + {0x00011305, 0x0001130c, 1}, + {0x0001130f, 0x00011310, 1}, + {0x00011313, 0x00011328, 1}, + {0x0001132a, 0x00011330, 1}, + {0x00011332, 0x00011333, 1}, + {0x00011335, 0x00011339, 1}, + {0x0001133c, 0x00011344, 1}, + {0x00011347, 0x00011348, 1}, + {0x0001134b, 0x0001134d, 1}, + {0x00011350, 0x00011357, 7}, + {0x0001135d, 0x00011363, 1}, + {0x00011366, 0x0001136c, 1}, + {0x00011370, 0x00011374, 1}, + {0x00011480, 0x000114c7, 1}, + {0x000114d0, 0x000114d9, 1}, + {0x00011580, 0x000115b5, 1}, + {0x000115b8, 0x000115dd, 1}, + {0x00011600, 0x00011644, 1}, + {0x00011650, 0x00011659, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x00011700, 0x00011719, 1}, + {0x0001171d, 0x0001172b, 1}, + {0x00011730, 0x0001173f, 1}, + {0x000118a0, 0x000118f2, 1}, + {0x000118ff, 0x00011ac0, 449}, + {0x00011ac1, 0x00011af8, 1}, + {0x00012000, 0x00012399, 1}, + {0x00012400, 0x0001246e, 1}, + {0x00012470, 0x00012474, 1}, + {0x00012480, 0x00012543, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00014400, 0x00014646, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016a40, 0x00016a5e, 1}, + {0x00016a60, 0x00016a69, 1}, + {0x00016a6e, 0x00016a6f, 1}, + {0x00016ad0, 0x00016aed, 1}, + {0x00016af0, 0x00016af5, 1}, + {0x00016b00, 0x00016b45, 1}, + {0x00016b50, 0x00016b59, 1}, + {0x00016b5b, 0x00016b61, 1}, + {0x00016b63, 0x00016b77, 1}, + {0x00016b7d, 0x00016b8f, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001bc00, 0x0001bc6a, 1}, + {0x0001bc70, 0x0001bc7c, 1}, + {0x0001bc80, 0x0001bc88, 1}, + {0x0001bc90, 0x0001bc99, 1}, + {0x0001bc9c, 0x0001bca3, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1e8, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001da8b, 1}, + {0x0001da9b, 0x0001da9f, 1}, + {0x0001daa1, 0x0001daaf, 1}, + {0x0001e800, 0x0001e8c4, 1}, + {0x0001e8c7, 0x0001e8d6, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0bf, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0f5, 1}, + {0x0001f100, 0x0001f10c, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f19a, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23a, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f579, 1}, + {0x0001f57b, 0x0001f5a3, 1}, + {0x0001f5a5, 0x0001f6d0, 1}, + {0x0001f6e0, 0x0001f6ec, 1}, + {0x0001f6f0, 0x0001f6f3, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x0001f780, 0x0001f7d4, 1}, + {0x0001f800, 0x0001f80b, 1}, + {0x0001f810, 0x0001f847, 1}, + {0x0001f850, 0x0001f859, 1}, + {0x0001f860, 0x0001f887, 1}, + {0x0001f890, 0x0001f8ad, 1}, + {0x0001f910, 0x0001f918, 1}, + {0x0001f980, 0x0001f984, 1}, + {0x0001f9c0, 0x00020000, 1600}, + {0x00020001, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002b820, 0x0002cea1, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// size 5348 bytes (5 KiB) +var assigned9_0_0 = &unicode.RangeTable{ + R16: []unicode.Range16{ + {0x0000, 0x0377, 1}, + {0x037a, 0x037f, 1}, + {0x0384, 0x038a, 1}, + {0x038c, 0x038e, 2}, + {0x038f, 0x03a1, 1}, + {0x03a3, 0x052f, 1}, + {0x0531, 0x0556, 1}, + {0x0559, 0x055f, 1}, + {0x0561, 0x0587, 1}, + {0x0589, 0x058a, 1}, + {0x058d, 0x058f, 1}, + {0x0591, 0x05c7, 1}, + {0x05d0, 0x05ea, 1}, + {0x05f0, 0x05f4, 1}, + {0x0600, 0x061c, 1}, + {0x061e, 0x070d, 1}, + {0x070f, 0x074a, 1}, + {0x074d, 0x07b1, 1}, + {0x07c0, 0x07fa, 1}, + {0x0800, 0x082d, 1}, + {0x0830, 0x083e, 1}, + {0x0840, 0x085b, 1}, + {0x085e, 0x08a0, 66}, + {0x08a1, 0x08b4, 1}, + {0x08b6, 0x08bd, 1}, + {0x08d4, 0x0983, 1}, + {0x0985, 0x098c, 1}, + {0x098f, 0x0990, 1}, + {0x0993, 0x09a8, 1}, + {0x09aa, 0x09b0, 1}, + {0x09b2, 0x09b6, 4}, + {0x09b7, 0x09b9, 1}, + {0x09bc, 0x09c4, 1}, + {0x09c7, 0x09c8, 1}, + {0x09cb, 0x09ce, 1}, + {0x09d7, 0x09dc, 5}, + {0x09dd, 0x09df, 2}, + {0x09e0, 0x09e3, 1}, + {0x09e6, 0x09fb, 1}, + {0x0a01, 0x0a03, 1}, + {0x0a05, 0x0a0a, 1}, + {0x0a0f, 0x0a10, 1}, + {0x0a13, 0x0a28, 1}, + {0x0a2a, 0x0a30, 1}, + {0x0a32, 0x0a33, 1}, + {0x0a35, 0x0a36, 1}, + {0x0a38, 0x0a39, 1}, + {0x0a3c, 0x0a3e, 2}, + {0x0a3f, 0x0a42, 1}, + {0x0a47, 0x0a48, 1}, + {0x0a4b, 0x0a4d, 1}, + {0x0a51, 0x0a59, 8}, + {0x0a5a, 0x0a5c, 1}, + {0x0a5e, 0x0a66, 8}, + {0x0a67, 0x0a75, 1}, + {0x0a81, 0x0a83, 1}, + {0x0a85, 0x0a8d, 1}, + {0x0a8f, 0x0a91, 1}, + {0x0a93, 0x0aa8, 1}, + {0x0aaa, 0x0ab0, 1}, + {0x0ab2, 0x0ab3, 1}, + {0x0ab5, 0x0ab9, 1}, + {0x0abc, 0x0ac5, 1}, + {0x0ac7, 0x0ac9, 1}, + {0x0acb, 0x0acd, 1}, + {0x0ad0, 0x0ae0, 16}, + {0x0ae1, 0x0ae3, 1}, + {0x0ae6, 0x0af1, 1}, + {0x0af9, 0x0b01, 8}, + {0x0b02, 0x0b03, 1}, + {0x0b05, 0x0b0c, 1}, + {0x0b0f, 0x0b10, 1}, + {0x0b13, 0x0b28, 1}, + {0x0b2a, 0x0b30, 1}, + {0x0b32, 0x0b33, 1}, + {0x0b35, 0x0b39, 1}, + {0x0b3c, 0x0b44, 1}, + {0x0b47, 0x0b48, 1}, + {0x0b4b, 0x0b4d, 1}, + {0x0b56, 0x0b57, 1}, + {0x0b5c, 0x0b5d, 1}, + {0x0b5f, 0x0b63, 1}, + {0x0b66, 0x0b77, 1}, + {0x0b82, 0x0b83, 1}, + {0x0b85, 0x0b8a, 1}, + {0x0b8e, 0x0b90, 1}, + {0x0b92, 0x0b95, 1}, + {0x0b99, 0x0b9a, 1}, + {0x0b9c, 0x0b9e, 2}, + {0x0b9f, 0x0ba3, 4}, + {0x0ba4, 0x0ba8, 4}, + {0x0ba9, 0x0baa, 1}, + {0x0bae, 0x0bb9, 1}, + {0x0bbe, 0x0bc2, 1}, + {0x0bc6, 0x0bc8, 1}, + {0x0bca, 0x0bcd, 1}, + {0x0bd0, 0x0bd7, 7}, + {0x0be6, 0x0bfa, 1}, + {0x0c00, 0x0c03, 1}, + {0x0c05, 0x0c0c, 1}, + {0x0c0e, 0x0c10, 1}, + {0x0c12, 0x0c28, 1}, + {0x0c2a, 0x0c39, 1}, + {0x0c3d, 0x0c44, 1}, + {0x0c46, 0x0c48, 1}, + {0x0c4a, 0x0c4d, 1}, + {0x0c55, 0x0c56, 1}, + {0x0c58, 0x0c5a, 1}, + {0x0c60, 0x0c63, 1}, + {0x0c66, 0x0c6f, 1}, + {0x0c78, 0x0c83, 1}, + {0x0c85, 0x0c8c, 1}, + {0x0c8e, 0x0c90, 1}, + {0x0c92, 0x0ca8, 1}, + {0x0caa, 0x0cb3, 1}, + {0x0cb5, 0x0cb9, 1}, + {0x0cbc, 0x0cc4, 1}, + {0x0cc6, 0x0cc8, 1}, + {0x0cca, 0x0ccd, 1}, + {0x0cd5, 0x0cd6, 1}, + {0x0cde, 0x0ce0, 2}, + {0x0ce1, 0x0ce3, 1}, + {0x0ce6, 0x0cef, 1}, + {0x0cf1, 0x0cf2, 1}, + {0x0d01, 0x0d03, 1}, + {0x0d05, 0x0d0c, 1}, + {0x0d0e, 0x0d10, 1}, + {0x0d12, 0x0d3a, 1}, + {0x0d3d, 0x0d44, 1}, + {0x0d46, 0x0d48, 1}, + {0x0d4a, 0x0d4f, 1}, + {0x0d54, 0x0d63, 1}, + {0x0d66, 0x0d7f, 1}, + {0x0d82, 0x0d83, 1}, + {0x0d85, 0x0d96, 1}, + {0x0d9a, 0x0db1, 1}, + {0x0db3, 0x0dbb, 1}, + {0x0dbd, 0x0dc0, 3}, + {0x0dc1, 0x0dc6, 1}, + {0x0dca, 0x0dcf, 5}, + {0x0dd0, 0x0dd4, 1}, + {0x0dd6, 0x0dd8, 2}, + {0x0dd9, 0x0ddf, 1}, + {0x0de6, 0x0def, 1}, + {0x0df2, 0x0df4, 1}, + {0x0e01, 0x0e3a, 1}, + {0x0e3f, 0x0e5b, 1}, + {0x0e81, 0x0e82, 1}, + {0x0e84, 0x0e87, 3}, + {0x0e88, 0x0e8a, 2}, + {0x0e8d, 0x0e94, 7}, + {0x0e95, 0x0e97, 1}, + {0x0e99, 0x0e9f, 1}, + {0x0ea1, 0x0ea3, 1}, + {0x0ea5, 0x0ea7, 2}, + {0x0eaa, 0x0eab, 1}, + {0x0ead, 0x0eb9, 1}, + {0x0ebb, 0x0ebd, 1}, + {0x0ec0, 0x0ec4, 1}, + {0x0ec6, 0x0ec8, 2}, + {0x0ec9, 0x0ecd, 1}, + {0x0ed0, 0x0ed9, 1}, + {0x0edc, 0x0edf, 1}, + {0x0f00, 0x0f47, 1}, + {0x0f49, 0x0f6c, 1}, + {0x0f71, 0x0f97, 1}, + {0x0f99, 0x0fbc, 1}, + {0x0fbe, 0x0fcc, 1}, + {0x0fce, 0x0fda, 1}, + {0x1000, 0x10c5, 1}, + {0x10c7, 0x10cd, 6}, + {0x10d0, 0x1248, 1}, + {0x124a, 0x124d, 1}, + {0x1250, 0x1256, 1}, + {0x1258, 0x125a, 2}, + {0x125b, 0x125d, 1}, + {0x1260, 0x1288, 1}, + {0x128a, 0x128d, 1}, + {0x1290, 0x12b0, 1}, + {0x12b2, 0x12b5, 1}, + {0x12b8, 0x12be, 1}, + {0x12c0, 0x12c2, 2}, + {0x12c3, 0x12c5, 1}, + {0x12c8, 0x12d6, 1}, + {0x12d8, 0x1310, 1}, + {0x1312, 0x1315, 1}, + {0x1318, 0x135a, 1}, + {0x135d, 0x137c, 1}, + {0x1380, 0x1399, 1}, + {0x13a0, 0x13f5, 1}, + {0x13f8, 0x13fd, 1}, + {0x1400, 0x169c, 1}, + {0x16a0, 0x16f8, 1}, + {0x1700, 0x170c, 1}, + {0x170e, 0x1714, 1}, + {0x1720, 0x1736, 1}, + {0x1740, 0x1753, 1}, + {0x1760, 0x176c, 1}, + {0x176e, 0x1770, 1}, + {0x1772, 0x1773, 1}, + {0x1780, 0x17dd, 1}, + {0x17e0, 0x17e9, 1}, + {0x17f0, 0x17f9, 1}, + {0x1800, 0x180e, 1}, + {0x1810, 0x1819, 1}, + {0x1820, 0x1877, 1}, + {0x1880, 0x18aa, 1}, + {0x18b0, 0x18f5, 1}, + {0x1900, 0x191e, 1}, + {0x1920, 0x192b, 1}, + {0x1930, 0x193b, 1}, + {0x1940, 0x1944, 4}, + {0x1945, 0x196d, 1}, + {0x1970, 0x1974, 1}, + {0x1980, 0x19ab, 1}, + {0x19b0, 0x19c9, 1}, + {0x19d0, 0x19da, 1}, + {0x19de, 0x1a1b, 1}, + {0x1a1e, 0x1a5e, 1}, + {0x1a60, 0x1a7c, 1}, + {0x1a7f, 0x1a89, 1}, + {0x1a90, 0x1a99, 1}, + {0x1aa0, 0x1aad, 1}, + {0x1ab0, 0x1abe, 1}, + {0x1b00, 0x1b4b, 1}, + {0x1b50, 0x1b7c, 1}, + {0x1b80, 0x1bf3, 1}, + {0x1bfc, 0x1c37, 1}, + {0x1c3b, 0x1c49, 1}, + {0x1c4d, 0x1c88, 1}, + {0x1cc0, 0x1cc7, 1}, + {0x1cd0, 0x1cf6, 1}, + {0x1cf8, 0x1cf9, 1}, + {0x1d00, 0x1df5, 1}, + {0x1dfb, 0x1f15, 1}, + {0x1f18, 0x1f1d, 1}, + {0x1f20, 0x1f45, 1}, + {0x1f48, 0x1f4d, 1}, + {0x1f50, 0x1f57, 1}, + {0x1f59, 0x1f5f, 2}, + {0x1f60, 0x1f7d, 1}, + {0x1f80, 0x1fb4, 1}, + {0x1fb6, 0x1fc4, 1}, + {0x1fc6, 0x1fd3, 1}, + {0x1fd6, 0x1fdb, 1}, + {0x1fdd, 0x1fef, 1}, + {0x1ff2, 0x1ff4, 1}, + {0x1ff6, 0x1ffe, 1}, + {0x2000, 0x2064, 1}, + {0x2066, 0x2071, 1}, + {0x2074, 0x208e, 1}, + {0x2090, 0x209c, 1}, + {0x20a0, 0x20be, 1}, + {0x20d0, 0x20f0, 1}, + {0x2100, 0x218b, 1}, + {0x2190, 0x23fe, 1}, + {0x2400, 0x2426, 1}, + {0x2440, 0x244a, 1}, + {0x2460, 0x2b73, 1}, + {0x2b76, 0x2b95, 1}, + {0x2b98, 0x2bb9, 1}, + {0x2bbd, 0x2bc8, 1}, + {0x2bca, 0x2bd1, 1}, + {0x2bec, 0x2bef, 1}, + {0x2c00, 0x2c2e, 1}, + {0x2c30, 0x2c5e, 1}, + {0x2c60, 0x2cf3, 1}, + {0x2cf9, 0x2d25, 1}, + {0x2d27, 0x2d2d, 6}, + {0x2d30, 0x2d67, 1}, + {0x2d6f, 0x2d70, 1}, + {0x2d7f, 0x2d96, 1}, + {0x2da0, 0x2da6, 1}, + {0x2da8, 0x2dae, 1}, + {0x2db0, 0x2db6, 1}, + {0x2db8, 0x2dbe, 1}, + {0x2dc0, 0x2dc6, 1}, + {0x2dc8, 0x2dce, 1}, + {0x2dd0, 0x2dd6, 1}, + {0x2dd8, 0x2dde, 1}, + {0x2de0, 0x2e44, 1}, + {0x2e80, 0x2e99, 1}, + {0x2e9b, 0x2ef3, 1}, + {0x2f00, 0x2fd5, 1}, + {0x2ff0, 0x2ffb, 1}, + {0x3000, 0x303f, 1}, + {0x3041, 0x3096, 1}, + {0x3099, 0x30ff, 1}, + {0x3105, 0x312d, 1}, + {0x3131, 0x318e, 1}, + {0x3190, 0x31ba, 1}, + {0x31c0, 0x31e3, 1}, + {0x31f0, 0x321e, 1}, + {0x3220, 0x32fe, 1}, + {0x3300, 0x4db5, 1}, + {0x4dc0, 0x9fd5, 1}, + {0xa000, 0xa48c, 1}, + {0xa490, 0xa4c6, 1}, + {0xa4d0, 0xa62b, 1}, + {0xa640, 0xa6f7, 1}, + {0xa700, 0xa7ae, 1}, + {0xa7b0, 0xa7b7, 1}, + {0xa7f7, 0xa82b, 1}, + {0xa830, 0xa839, 1}, + {0xa840, 0xa877, 1}, + {0xa880, 0xa8c5, 1}, + {0xa8ce, 0xa8d9, 1}, + {0xa8e0, 0xa8fd, 1}, + {0xa900, 0xa953, 1}, + {0xa95f, 0xa97c, 1}, + {0xa980, 0xa9cd, 1}, + {0xa9cf, 0xa9d9, 1}, + {0xa9de, 0xa9fe, 1}, + {0xaa00, 0xaa36, 1}, + {0xaa40, 0xaa4d, 1}, + {0xaa50, 0xaa59, 1}, + {0xaa5c, 0xaac2, 1}, + {0xaadb, 0xaaf6, 1}, + {0xab01, 0xab06, 1}, + {0xab09, 0xab0e, 1}, + {0xab11, 0xab16, 1}, + {0xab20, 0xab26, 1}, + {0xab28, 0xab2e, 1}, + {0xab30, 0xab65, 1}, + {0xab70, 0xabed, 1}, + {0xabf0, 0xabf9, 1}, + {0xac00, 0xd7a3, 1}, + {0xd7b0, 0xd7c6, 1}, + {0xd7cb, 0xd7fb, 1}, + {0xd800, 0xfa6d, 1}, + {0xfa70, 0xfad9, 1}, + {0xfb00, 0xfb06, 1}, + {0xfb13, 0xfb17, 1}, + {0xfb1d, 0xfb36, 1}, + {0xfb38, 0xfb3c, 1}, + {0xfb3e, 0xfb40, 2}, + {0xfb41, 0xfb43, 2}, + {0xfb44, 0xfb46, 2}, + {0xfb47, 0xfbc1, 1}, + {0xfbd3, 0xfd3f, 1}, + {0xfd50, 0xfd8f, 1}, + {0xfd92, 0xfdc7, 1}, + {0xfdf0, 0xfdfd, 1}, + {0xfe00, 0xfe19, 1}, + {0xfe20, 0xfe52, 1}, + {0xfe54, 0xfe66, 1}, + {0xfe68, 0xfe6b, 1}, + {0xfe70, 0xfe74, 1}, + {0xfe76, 0xfefc, 1}, + {0xfeff, 0xff01, 2}, + {0xff02, 0xffbe, 1}, + {0xffc2, 0xffc7, 1}, + {0xffca, 0xffcf, 1}, + {0xffd2, 0xffd7, 1}, + {0xffda, 0xffdc, 1}, + {0xffe0, 0xffe6, 1}, + {0xffe8, 0xffee, 1}, + {0xfff9, 0xfffd, 1}, + }, + R32: []unicode.Range32{ + {0x00010000, 0x0001000b, 1}, + {0x0001000d, 0x00010026, 1}, + {0x00010028, 0x0001003a, 1}, + {0x0001003c, 0x0001003d, 1}, + {0x0001003f, 0x0001004d, 1}, + {0x00010050, 0x0001005d, 1}, + {0x00010080, 0x000100fa, 1}, + {0x00010100, 0x00010102, 1}, + {0x00010107, 0x00010133, 1}, + {0x00010137, 0x0001018e, 1}, + {0x00010190, 0x0001019b, 1}, + {0x000101a0, 0x000101d0, 48}, + {0x000101d1, 0x000101fd, 1}, + {0x00010280, 0x0001029c, 1}, + {0x000102a0, 0x000102d0, 1}, + {0x000102e0, 0x000102fb, 1}, + {0x00010300, 0x00010323, 1}, + {0x00010330, 0x0001034a, 1}, + {0x00010350, 0x0001037a, 1}, + {0x00010380, 0x0001039d, 1}, + {0x0001039f, 0x000103c3, 1}, + {0x000103c8, 0x000103d5, 1}, + {0x00010400, 0x0001049d, 1}, + {0x000104a0, 0x000104a9, 1}, + {0x000104b0, 0x000104d3, 1}, + {0x000104d8, 0x000104fb, 1}, + {0x00010500, 0x00010527, 1}, + {0x00010530, 0x00010563, 1}, + {0x0001056f, 0x00010600, 145}, + {0x00010601, 0x00010736, 1}, + {0x00010740, 0x00010755, 1}, + {0x00010760, 0x00010767, 1}, + {0x00010800, 0x00010805, 1}, + {0x00010808, 0x0001080a, 2}, + {0x0001080b, 0x00010835, 1}, + {0x00010837, 0x00010838, 1}, + {0x0001083c, 0x0001083f, 3}, + {0x00010840, 0x00010855, 1}, + {0x00010857, 0x0001089e, 1}, + {0x000108a7, 0x000108af, 1}, + {0x000108e0, 0x000108f2, 1}, + {0x000108f4, 0x000108f5, 1}, + {0x000108fb, 0x0001091b, 1}, + {0x0001091f, 0x00010939, 1}, + {0x0001093f, 0x00010980, 65}, + {0x00010981, 0x000109b7, 1}, + {0x000109bc, 0x000109cf, 1}, + {0x000109d2, 0x00010a03, 1}, + {0x00010a05, 0x00010a06, 1}, + {0x00010a0c, 0x00010a13, 1}, + {0x00010a15, 0x00010a17, 1}, + {0x00010a19, 0x00010a33, 1}, + {0x00010a38, 0x00010a3a, 1}, + {0x00010a3f, 0x00010a47, 1}, + {0x00010a50, 0x00010a58, 1}, + {0x00010a60, 0x00010a9f, 1}, + {0x00010ac0, 0x00010ae6, 1}, + {0x00010aeb, 0x00010af6, 1}, + {0x00010b00, 0x00010b35, 1}, + {0x00010b39, 0x00010b55, 1}, + {0x00010b58, 0x00010b72, 1}, + {0x00010b78, 0x00010b91, 1}, + {0x00010b99, 0x00010b9c, 1}, + {0x00010ba9, 0x00010baf, 1}, + {0x00010c00, 0x00010c48, 1}, + {0x00010c80, 0x00010cb2, 1}, + {0x00010cc0, 0x00010cf2, 1}, + {0x00010cfa, 0x00010cff, 1}, + {0x00010e60, 0x00010e7e, 1}, + {0x00011000, 0x0001104d, 1}, + {0x00011052, 0x0001106f, 1}, + {0x0001107f, 0x000110c1, 1}, + {0x000110d0, 0x000110e8, 1}, + {0x000110f0, 0x000110f9, 1}, + {0x00011100, 0x00011134, 1}, + {0x00011136, 0x00011143, 1}, + {0x00011150, 0x00011176, 1}, + {0x00011180, 0x000111cd, 1}, + {0x000111d0, 0x000111df, 1}, + {0x000111e1, 0x000111f4, 1}, + {0x00011200, 0x00011211, 1}, + {0x00011213, 0x0001123e, 1}, + {0x00011280, 0x00011286, 1}, + {0x00011288, 0x0001128a, 2}, + {0x0001128b, 0x0001128d, 1}, + {0x0001128f, 0x0001129d, 1}, + {0x0001129f, 0x000112a9, 1}, + {0x000112b0, 0x000112ea, 1}, + {0x000112f0, 0x000112f9, 1}, + {0x00011300, 0x00011303, 1}, + {0x00011305, 0x0001130c, 1}, + {0x0001130f, 0x00011310, 1}, + {0x00011313, 0x00011328, 1}, + {0x0001132a, 0x00011330, 1}, + {0x00011332, 0x00011333, 1}, + {0x00011335, 0x00011339, 1}, + {0x0001133c, 0x00011344, 1}, + {0x00011347, 0x00011348, 1}, + {0x0001134b, 0x0001134d, 1}, + {0x00011350, 0x00011357, 7}, + {0x0001135d, 0x00011363, 1}, + {0x00011366, 0x0001136c, 1}, + {0x00011370, 0x00011374, 1}, + {0x00011400, 0x00011459, 1}, + {0x0001145b, 0x0001145d, 2}, + {0x00011480, 0x000114c7, 1}, + {0x000114d0, 0x000114d9, 1}, + {0x00011580, 0x000115b5, 1}, + {0x000115b8, 0x000115dd, 1}, + {0x00011600, 0x00011644, 1}, + {0x00011650, 0x00011659, 1}, + {0x00011660, 0x0001166c, 1}, + {0x00011680, 0x000116b7, 1}, + {0x000116c0, 0x000116c9, 1}, + {0x00011700, 0x00011719, 1}, + {0x0001171d, 0x0001172b, 1}, + {0x00011730, 0x0001173f, 1}, + {0x000118a0, 0x000118f2, 1}, + {0x000118ff, 0x00011ac0, 449}, + {0x00011ac1, 0x00011af8, 1}, + {0x00011c00, 0x00011c08, 1}, + {0x00011c0a, 0x00011c36, 1}, + {0x00011c38, 0x00011c45, 1}, + {0x00011c50, 0x00011c6c, 1}, + {0x00011c70, 0x00011c8f, 1}, + {0x00011c92, 0x00011ca7, 1}, + {0x00011ca9, 0x00011cb6, 1}, + {0x00012000, 0x00012399, 1}, + {0x00012400, 0x0001246e, 1}, + {0x00012470, 0x00012474, 1}, + {0x00012480, 0x00012543, 1}, + {0x00013000, 0x0001342e, 1}, + {0x00014400, 0x00014646, 1}, + {0x00016800, 0x00016a38, 1}, + {0x00016a40, 0x00016a5e, 1}, + {0x00016a60, 0x00016a69, 1}, + {0x00016a6e, 0x00016a6f, 1}, + {0x00016ad0, 0x00016aed, 1}, + {0x00016af0, 0x00016af5, 1}, + {0x00016b00, 0x00016b45, 1}, + {0x00016b50, 0x00016b59, 1}, + {0x00016b5b, 0x00016b61, 1}, + {0x00016b63, 0x00016b77, 1}, + {0x00016b7d, 0x00016b8f, 1}, + {0x00016f00, 0x00016f44, 1}, + {0x00016f50, 0x00016f7e, 1}, + {0x00016f8f, 0x00016f9f, 1}, + {0x00016fe0, 0x00017000, 32}, + {0x00017001, 0x000187ec, 1}, + {0x00018800, 0x00018af2, 1}, + {0x0001b000, 0x0001b001, 1}, + {0x0001bc00, 0x0001bc6a, 1}, + {0x0001bc70, 0x0001bc7c, 1}, + {0x0001bc80, 0x0001bc88, 1}, + {0x0001bc90, 0x0001bc99, 1}, + {0x0001bc9c, 0x0001bca3, 1}, + {0x0001d000, 0x0001d0f5, 1}, + {0x0001d100, 0x0001d126, 1}, + {0x0001d129, 0x0001d1e8, 1}, + {0x0001d200, 0x0001d245, 1}, + {0x0001d300, 0x0001d356, 1}, + {0x0001d360, 0x0001d371, 1}, + {0x0001d400, 0x0001d454, 1}, + {0x0001d456, 0x0001d49c, 1}, + {0x0001d49e, 0x0001d49f, 1}, + {0x0001d4a2, 0x0001d4a5, 3}, + {0x0001d4a6, 0x0001d4a9, 3}, + {0x0001d4aa, 0x0001d4ac, 1}, + {0x0001d4ae, 0x0001d4b9, 1}, + {0x0001d4bb, 0x0001d4bd, 2}, + {0x0001d4be, 0x0001d4c3, 1}, + {0x0001d4c5, 0x0001d505, 1}, + {0x0001d507, 0x0001d50a, 1}, + {0x0001d50d, 0x0001d514, 1}, + {0x0001d516, 0x0001d51c, 1}, + {0x0001d51e, 0x0001d539, 1}, + {0x0001d53b, 0x0001d53e, 1}, + {0x0001d540, 0x0001d544, 1}, + {0x0001d546, 0x0001d54a, 4}, + {0x0001d54b, 0x0001d550, 1}, + {0x0001d552, 0x0001d6a5, 1}, + {0x0001d6a8, 0x0001d7cb, 1}, + {0x0001d7ce, 0x0001da8b, 1}, + {0x0001da9b, 0x0001da9f, 1}, + {0x0001daa1, 0x0001daaf, 1}, + {0x0001e000, 0x0001e006, 1}, + {0x0001e008, 0x0001e018, 1}, + {0x0001e01b, 0x0001e021, 1}, + {0x0001e023, 0x0001e024, 1}, + {0x0001e026, 0x0001e02a, 1}, + {0x0001e800, 0x0001e8c4, 1}, + {0x0001e8c7, 0x0001e8d6, 1}, + {0x0001e900, 0x0001e94a, 1}, + {0x0001e950, 0x0001e959, 1}, + {0x0001e95e, 0x0001e95f, 1}, + {0x0001ee00, 0x0001ee03, 1}, + {0x0001ee05, 0x0001ee1f, 1}, + {0x0001ee21, 0x0001ee22, 1}, + {0x0001ee24, 0x0001ee27, 3}, + {0x0001ee29, 0x0001ee32, 1}, + {0x0001ee34, 0x0001ee37, 1}, + {0x0001ee39, 0x0001ee3b, 2}, + {0x0001ee42, 0x0001ee47, 5}, + {0x0001ee49, 0x0001ee4d, 2}, + {0x0001ee4e, 0x0001ee4f, 1}, + {0x0001ee51, 0x0001ee52, 1}, + {0x0001ee54, 0x0001ee57, 3}, + {0x0001ee59, 0x0001ee61, 2}, + {0x0001ee62, 0x0001ee64, 2}, + {0x0001ee67, 0x0001ee6a, 1}, + {0x0001ee6c, 0x0001ee72, 1}, + {0x0001ee74, 0x0001ee77, 1}, + {0x0001ee79, 0x0001ee7c, 1}, + {0x0001ee7e, 0x0001ee80, 2}, + {0x0001ee81, 0x0001ee89, 1}, + {0x0001ee8b, 0x0001ee9b, 1}, + {0x0001eea1, 0x0001eea3, 1}, + {0x0001eea5, 0x0001eea9, 1}, + {0x0001eeab, 0x0001eebb, 1}, + {0x0001eef0, 0x0001eef1, 1}, + {0x0001f000, 0x0001f02b, 1}, + {0x0001f030, 0x0001f093, 1}, + {0x0001f0a0, 0x0001f0ae, 1}, + {0x0001f0b1, 0x0001f0bf, 1}, + {0x0001f0c1, 0x0001f0cf, 1}, + {0x0001f0d1, 0x0001f0f5, 1}, + {0x0001f100, 0x0001f10c, 1}, + {0x0001f110, 0x0001f12e, 1}, + {0x0001f130, 0x0001f16b, 1}, + {0x0001f170, 0x0001f1ac, 1}, + {0x0001f1e6, 0x0001f202, 1}, + {0x0001f210, 0x0001f23b, 1}, + {0x0001f240, 0x0001f248, 1}, + {0x0001f250, 0x0001f251, 1}, + {0x0001f300, 0x0001f6d2, 1}, + {0x0001f6e0, 0x0001f6ec, 1}, + {0x0001f6f0, 0x0001f6f6, 1}, + {0x0001f700, 0x0001f773, 1}, + {0x0001f780, 0x0001f7d4, 1}, + {0x0001f800, 0x0001f80b, 1}, + {0x0001f810, 0x0001f847, 1}, + {0x0001f850, 0x0001f859, 1}, + {0x0001f860, 0x0001f887, 1}, + {0x0001f890, 0x0001f8ad, 1}, + {0x0001f910, 0x0001f91e, 1}, + {0x0001f920, 0x0001f927, 1}, + {0x0001f930, 0x0001f933, 3}, + {0x0001f934, 0x0001f93e, 1}, + {0x0001f940, 0x0001f94b, 1}, + {0x0001f950, 0x0001f95e, 1}, + {0x0001f980, 0x0001f991, 1}, + {0x0001f9c0, 0x00020000, 1600}, + {0x00020001, 0x0002a6d6, 1}, + {0x0002a700, 0x0002b734, 1}, + {0x0002b740, 0x0002b81d, 1}, + {0x0002b820, 0x0002cea1, 1}, + {0x0002f800, 0x0002fa1d, 1}, + {0x000e0001, 0x000e0020, 31}, + {0x000e0021, 0x000e007f, 1}, + {0x000e0100, 0x000e01ef, 1}, + {0x000f0000, 0x000ffffd, 1}, + {0x00100000, 0x0010fffd, 1}, + }, + LatinOffset: 0, +} + +// Total size 44206 bytes (43 KiB) diff --git a/vendor/golang.org/x/text/width/common_test.go b/vendor/golang.org/x/text/width/common_test.go new file mode 100644 index 00000000..fb5545e7 --- /dev/null +++ b/vendor/golang.org/x/text/width/common_test.go @@ -0,0 +1,92 @@ +// This file was generated by go generate; DO NOT EDIT + +package width + +// This code is shared between the main code generator and the test code. + +import ( + "flag" + "log" + "strconv" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/ucd" +) + +var ( + outputFile = flag.String("out", "tables.go", "output file") +) + +var typeMap = map[string]elem{ + "A": tagAmbiguous, + "N": tagNeutral, + "Na": tagNarrow, + "W": tagWide, + "F": tagFullwidth, + "H": tagHalfwidth, +} + +// getWidthData calls f for every entry for which it is defined. +// +// f may be called multiple times for the same rune. The last call to f is the +// correct value. f is not called for all runes. The default tag type is +// Neutral. +func getWidthData(f func(r rune, tag elem, alt rune)) { + // Set the default values for Unified Ideographs. In line with Annex 11, + // we encode full ranges instead of the defined runes in Unified_Ideograph. + for _, b := range []struct{ lo, hi rune }{ + {0x4E00, 0x9FFF}, // the CJK Unified Ideographs block, + {0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block, + {0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block, + {0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane, + {0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane, + } { + for r := b.lo; r <= b.hi; r++ { + f(r, tagWide, 0) + } + } + + inverse := map[rune]rune{} + maps := map[string]bool{ + "": true, + "": true, + } + + // We cannot reuse package norm's decomposition, as we need an unexpanded + // decomposition. We make use of the opportunity to verify that the + // decomposition type is as expected. + ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) { + r := p.Rune(0) + s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2) + if !maps[s[0]] { + return + } + x, err := strconv.ParseUint(s[1], 16, 32) + if err != nil { + log.Fatalf("Error parsing rune %q", s[1]) + } + if inverse[r] != 0 || inverse[rune(x)] != 0 { + log.Fatalf("Circular dependency in mapping between %U and %U", r, x) + } + inverse[r] = rune(x) + inverse[rune(x)] = r + }) + + // ; + ucd.Parse(gen.OpenUCDFile("EastAsianWidth.txt"), func(p *ucd.Parser) { + tag, ok := typeMap[p.String(1)] + if !ok { + log.Fatalf("Unknown width type %q", p.String(1)) + } + r := p.Rune(0) + alt, ok := inverse[r] + if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign { + tag |= tagNeedsFold + if !ok { + log.Fatalf("Narrow or wide rune %U has no decomposition", r) + } + } + f(r, tag, alt) + }) +} diff --git a/vendor/golang.org/x/text/width/example_test.go b/vendor/golang.org/x/text/width/example_test.go new file mode 100644 index 00000000..62adba66 --- /dev/null +++ b/vendor/golang.org/x/text/width/example_test.go @@ -0,0 +1,52 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package width_test + +import ( + "fmt" + + "golang.org/x/text/width" +) + +func ExampleTransformer_fold() { + s := "abヲ₩○¥A" + f := width.Fold.String(s) + fmt.Printf("%U: %s\n", []rune(s), s) + fmt.Printf("%U: %s\n", []rune(f), f) + + // Output: + // [U+0061 U+0062 U+FF66 U+FFE6 U+FFEE U+FFE5 U+FF21]: abヲ₩○¥A + // [U+0061 U+0062 U+30F2 U+20A9 U+25CB U+00A5 U+0041]: abヲ₩○¥A +} + +func ExampleTransformer_widen() { + s := "ab¥ヲ₩○" + w := width.Widen.String(s) + fmt.Printf("%U: %s\n", []rune(s), s) + fmt.Printf("%U: %s\n", []rune(w), w) + + // Output: + // [U+0061 U+0062 U+00A5 U+FF66 U+20A9 U+FFEE]: ab¥ヲ₩○ + // [U+FF41 U+FF42 U+FFE5 U+30F2 U+FFE6 U+25CB]: ï½ï½‚¥ヲ₩○ +} + +func ExampleTransformer_narrow() { + s := "abヲ₩○¥A" + n := width.Narrow.String(s) + fmt.Printf("%U: %s\n", []rune(s), s) + fmt.Printf("%U: %s\n", []rune(n), n) + + // Ambiguous characters with a halfwidth equivalent get mapped as well. + s = "â†" + n = width.Narrow.String(s) + fmt.Printf("%U: %s\n", []rune(s), s) + fmt.Printf("%U: %s\n", []rune(n), n) + + // Output: + // [U+0061 U+0062 U+30F2 U+FFE6 U+25CB U+FFE5 U+FF21]: abヲ₩○¥A + // [U+0061 U+0062 U+FF66 U+20A9 U+FFEE U+00A5 U+0041]: abヲ₩○¥A + // [U+2190]: ↠+ // [U+FFE9]: ï¿© +} diff --git a/vendor/golang.org/x/text/width/gen.go b/vendor/golang.org/x/text/width/gen.go new file mode 100644 index 00000000..03d9f99a --- /dev/null +++ b/vendor/golang.org/x/text/width/gen.go @@ -0,0 +1,115 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// This program generates the trie for width operations. The generated table +// includes width category information as well as the normalization mappings. +package main + +import ( + "bytes" + "fmt" + "io" + "log" + "math" + "unicode/utf8" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/triegen" +) + +// See gen_common.go for flags. + +func main() { + gen.Init() + genTables() + genTests() + gen.Repackage("gen_trieval.go", "trieval.go", "width") + gen.Repackage("gen_common.go", "common_test.go", "width") +} + +func genTables() { + t := triegen.NewTrie("width") + // fold and inverse mappings. See mapComment for a description of the format + // of each entry. Add dummy value to make an index of 0 mean no mapping. + inverse := [][4]byte{{}} + mapping := map[[4]byte]int{[4]byte{}: 0} + + getWidthData(func(r rune, tag elem, alt rune) { + idx := 0 + if alt != 0 { + var buf [4]byte + buf[0] = byte(utf8.EncodeRune(buf[1:], alt)) + s := string(r) + buf[buf[0]] ^= s[len(s)-1] + var ok bool + if idx, ok = mapping[buf]; !ok { + idx = len(mapping) + if idx > math.MaxUint8 { + log.Fatalf("Index %d does not fit in a byte.", idx) + } + mapping[buf] = idx + inverse = append(inverse, buf) + } + } + t.Insert(r, uint64(tag|elem(idx))) + }) + + w := &bytes.Buffer{} + gen.WriteUnicodeVersion(w) + + sz, err := t.Gen(w) + if err != nil { + log.Fatal(err) + } + + sz += writeMappings(w, inverse) + + fmt.Fprintf(w, "// Total table size %d bytes (%dKiB)\n", sz, sz/1024) + + gen.WriteGoFile(*outputFile, "width", w.Bytes()) +} + +const inverseDataComment = ` +// inverseData contains 4-byte entries of the following format: +// <0 padding> +// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the +// UTF-8 encoding of the original rune. Mappings often have the following +// pattern: +// A -> A (U+FF21 -> U+0041) +// ï¼¢ -> B (U+FF22 -> U+0042) +// ... +// By xor-ing the last byte the same entry can be shared by many mappings. This +// reduces the total number of distinct entries by about two thirds. +// The resulting entry for the aforementioned mappings is +// { 0x01, 0xE0, 0x00, 0x00 } +// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get +// E0 ^ A1 = 41. +// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get +// E0 ^ A2 = 42. +// Note that because of the xor-ing, the byte sequence stored in the entry is +// not valid UTF-8.` + +func writeMappings(w io.Writer, data [][4]byte) int { + fmt.Fprintln(w, inverseDataComment) + fmt.Fprintf(w, "var inverseData = [%d][4]byte{\n", len(data)) + for _, x := range data { + fmt.Fprintf(w, "{ 0x%02x, 0x%02x, 0x%02x, 0x%02x },\n", x[0], x[1], x[2], x[3]) + } + fmt.Fprintln(w, "}") + return len(data) * 4 +} + +func genTests() { + w := &bytes.Buffer{} + fmt.Fprintf(w, "\nvar mapRunes = map[rune]struct{r rune; e elem}{\n") + getWidthData(func(r rune, tag elem, alt rune) { + if alt != 0 { + fmt.Fprintf(w, "\t0x%X: {0x%X, 0x%X},\n", r, alt, tag) + } + }) + fmt.Fprintln(w, "}") + gen.WriteGoFile("runes_test.go", "width", w.Bytes()) +} diff --git a/vendor/golang.org/x/text/width/gen_common.go b/vendor/golang.org/x/text/width/gen_common.go new file mode 100644 index 00000000..601e7526 --- /dev/null +++ b/vendor/golang.org/x/text/width/gen_common.go @@ -0,0 +1,96 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// This code is shared between the main code generator and the test code. + +import ( + "flag" + "log" + "strconv" + "strings" + + "golang.org/x/text/internal/gen" + "golang.org/x/text/internal/ucd" +) + +var ( + outputFile = flag.String("out", "tables.go", "output file") +) + +var typeMap = map[string]elem{ + "A": tagAmbiguous, + "N": tagNeutral, + "Na": tagNarrow, + "W": tagWide, + "F": tagFullwidth, + "H": tagHalfwidth, +} + +// getWidthData calls f for every entry for which it is defined. +// +// f may be called multiple times for the same rune. The last call to f is the +// correct value. f is not called for all runes. The default tag type is +// Neutral. +func getWidthData(f func(r rune, tag elem, alt rune)) { + // Set the default values for Unified Ideographs. In line with Annex 11, + // we encode full ranges instead of the defined runes in Unified_Ideograph. + for _, b := range []struct{ lo, hi rune }{ + {0x4E00, 0x9FFF}, // the CJK Unified Ideographs block, + {0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block, + {0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block, + {0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane, + {0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane, + } { + for r := b.lo; r <= b.hi; r++ { + f(r, tagWide, 0) + } + } + + inverse := map[rune]rune{} + maps := map[string]bool{ + "": true, + "": true, + } + + // We cannot reuse package norm's decomposition, as we need an unexpanded + // decomposition. We make use of the opportunity to verify that the + // decomposition type is as expected. + ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) { + r := p.Rune(0) + s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2) + if !maps[s[0]] { + return + } + x, err := strconv.ParseUint(s[1], 16, 32) + if err != nil { + log.Fatalf("Error parsing rune %q", s[1]) + } + if inverse[r] != 0 || inverse[rune(x)] != 0 { + log.Fatalf("Circular dependency in mapping between %U and %U", r, x) + } + inverse[r] = rune(x) + inverse[rune(x)] = r + }) + + // ; + ucd.Parse(gen.OpenUCDFile("EastAsianWidth.txt"), func(p *ucd.Parser) { + tag, ok := typeMap[p.String(1)] + if !ok { + log.Fatalf("Unknown width type %q", p.String(1)) + } + r := p.Rune(0) + alt, ok := inverse[r] + if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign { + tag |= tagNeedsFold + if !ok { + log.Fatalf("Narrow or wide rune %U has no decomposition", r) + } + } + f(r, tag, alt) + }) +} diff --git a/vendor/golang.org/x/text/width/gen_trieval.go b/vendor/golang.org/x/text/width/gen_trieval.go new file mode 100644 index 00000000..c17334aa --- /dev/null +++ b/vendor/golang.org/x/text/width/gen_trieval.go @@ -0,0 +1,34 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +// elem is an entry of the width trie. The high byte is used to encode the type +// of the rune. The low byte is used to store the index to a mapping entry in +// the inverseData array. +type elem uint16 + +const ( + tagNeutral elem = iota << typeShift + tagAmbiguous + tagWide + tagNarrow + tagFullwidth + tagHalfwidth +) + +const ( + numTypeBits = 3 + typeShift = 16 - numTypeBits + + // tagNeedsFold is true for all fullwidth and halfwidth runes except for + // the Won sign U+20A9. + tagNeedsFold = 0x1000 + + // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide + // variant. + wonSign rune = 0x20A9 +) diff --git a/vendor/golang.org/x/text/width/kind_string.go b/vendor/golang.org/x/text/width/kind_string.go new file mode 100644 index 00000000..ab4fee54 --- /dev/null +++ b/vendor/golang.org/x/text/width/kind_string.go @@ -0,0 +1,16 @@ +// Code generated by "stringer -type=Kind"; DO NOT EDIT + +package width + +import "fmt" + +const _Kind_name = "NeutralEastAsianAmbiguousEastAsianWideEastAsianNarrowEastAsianFullwidthEastAsianHalfwidth" + +var _Kind_index = [...]uint8{0, 7, 25, 38, 53, 71, 89} + +func (i Kind) String() string { + if i < 0 || i >= Kind(len(_Kind_index)-1) { + return fmt.Sprintf("Kind(%d)", i) + } + return _Kind_name[_Kind_index[i]:_Kind_index[i+1]] +} diff --git a/vendor/golang.org/x/text/width/runes_test.go b/vendor/golang.org/x/text/width/runes_test.go new file mode 100644 index 00000000..2a48c404 --- /dev/null +++ b/vendor/golang.org/x/text/width/runes_test.go @@ -0,0 +1,461 @@ +// This file was generated by go generate; DO NOT EDIT + +package width + +var mapRunes = map[rune]struct { + r rune + e elem +}{ + 0x20: {0x3000, 0x6000}, + 0x21: {0xFF01, 0x6000}, + 0x22: {0xFF02, 0x6000}, + 0x23: {0xFF03, 0x6000}, + 0x24: {0xFF04, 0x6000}, + 0x25: {0xFF05, 0x6000}, + 0x26: {0xFF06, 0x6000}, + 0x27: {0xFF07, 0x6000}, + 0x28: {0xFF08, 0x6000}, + 0x29: {0xFF09, 0x6000}, + 0x2A: {0xFF0A, 0x6000}, + 0x2B: {0xFF0B, 0x6000}, + 0x2C: {0xFF0C, 0x6000}, + 0x2D: {0xFF0D, 0x6000}, + 0x2E: {0xFF0E, 0x6000}, + 0x2F: {0xFF0F, 0x6000}, + 0x30: {0xFF10, 0x6000}, + 0x31: {0xFF11, 0x6000}, + 0x32: {0xFF12, 0x6000}, + 0x33: {0xFF13, 0x6000}, + 0x34: {0xFF14, 0x6000}, + 0x35: {0xFF15, 0x6000}, + 0x36: {0xFF16, 0x6000}, + 0x37: {0xFF17, 0x6000}, + 0x38: {0xFF18, 0x6000}, + 0x39: {0xFF19, 0x6000}, + 0x3A: {0xFF1A, 0x6000}, + 0x3B: {0xFF1B, 0x6000}, + 0x3C: {0xFF1C, 0x6000}, + 0x3D: {0xFF1D, 0x6000}, + 0x3E: {0xFF1E, 0x6000}, + 0x3F: {0xFF1F, 0x6000}, + 0x40: {0xFF20, 0x6000}, + 0x41: {0xFF21, 0x6000}, + 0x42: {0xFF22, 0x6000}, + 0x43: {0xFF23, 0x6000}, + 0x44: {0xFF24, 0x6000}, + 0x45: {0xFF25, 0x6000}, + 0x46: {0xFF26, 0x6000}, + 0x47: {0xFF27, 0x6000}, + 0x48: {0xFF28, 0x6000}, + 0x49: {0xFF29, 0x6000}, + 0x4A: {0xFF2A, 0x6000}, + 0x4B: {0xFF2B, 0x6000}, + 0x4C: {0xFF2C, 0x6000}, + 0x4D: {0xFF2D, 0x6000}, + 0x4E: {0xFF2E, 0x6000}, + 0x4F: {0xFF2F, 0x6000}, + 0x50: {0xFF30, 0x6000}, + 0x51: {0xFF31, 0x6000}, + 0x52: {0xFF32, 0x6000}, + 0x53: {0xFF33, 0x6000}, + 0x54: {0xFF34, 0x6000}, + 0x55: {0xFF35, 0x6000}, + 0x56: {0xFF36, 0x6000}, + 0x57: {0xFF37, 0x6000}, + 0x58: {0xFF38, 0x6000}, + 0x59: {0xFF39, 0x6000}, + 0x5A: {0xFF3A, 0x6000}, + 0x5B: {0xFF3B, 0x6000}, + 0x5C: {0xFF3C, 0x6000}, + 0x5D: {0xFF3D, 0x6000}, + 0x5E: {0xFF3E, 0x6000}, + 0x5F: {0xFF3F, 0x6000}, + 0x60: {0xFF40, 0x6000}, + 0x61: {0xFF41, 0x6000}, + 0x62: {0xFF42, 0x6000}, + 0x63: {0xFF43, 0x6000}, + 0x64: {0xFF44, 0x6000}, + 0x65: {0xFF45, 0x6000}, + 0x66: {0xFF46, 0x6000}, + 0x67: {0xFF47, 0x6000}, + 0x68: {0xFF48, 0x6000}, + 0x69: {0xFF49, 0x6000}, + 0x6A: {0xFF4A, 0x6000}, + 0x6B: {0xFF4B, 0x6000}, + 0x6C: {0xFF4C, 0x6000}, + 0x6D: {0xFF4D, 0x6000}, + 0x6E: {0xFF4E, 0x6000}, + 0x6F: {0xFF4F, 0x6000}, + 0x70: {0xFF50, 0x6000}, + 0x71: {0xFF51, 0x6000}, + 0x72: {0xFF52, 0x6000}, + 0x73: {0xFF53, 0x6000}, + 0x74: {0xFF54, 0x6000}, + 0x75: {0xFF55, 0x6000}, + 0x76: {0xFF56, 0x6000}, + 0x77: {0xFF57, 0x6000}, + 0x78: {0xFF58, 0x6000}, + 0x79: {0xFF59, 0x6000}, + 0x7A: {0xFF5A, 0x6000}, + 0x7B: {0xFF5B, 0x6000}, + 0x7C: {0xFF5C, 0x6000}, + 0x7D: {0xFF5D, 0x6000}, + 0x7E: {0xFF5E, 0x6000}, + 0xA2: {0xFFE0, 0x6000}, + 0xA3: {0xFFE1, 0x6000}, + 0xA5: {0xFFE5, 0x6000}, + 0xA6: {0xFFE4, 0x6000}, + 0xAC: {0xFFE2, 0x6000}, + 0xAF: {0xFFE3, 0x6000}, + 0x20A9: {0xFFE6, 0xA000}, + 0x2190: {0xFFE9, 0x2000}, + 0x2191: {0xFFEA, 0x2000}, + 0x2192: {0xFFEB, 0x2000}, + 0x2193: {0xFFEC, 0x2000}, + 0x2502: {0xFFE8, 0x2000}, + 0x25A0: {0xFFED, 0x2000}, + 0x25CB: {0xFFEE, 0x2000}, + 0x2985: {0xFF5F, 0x6000}, + 0x2986: {0xFF60, 0x6000}, + 0x3000: {0x20, 0x9000}, + 0x3001: {0xFF64, 0x4000}, + 0x3002: {0xFF61, 0x4000}, + 0x300C: {0xFF62, 0x4000}, + 0x300D: {0xFF63, 0x4000}, + 0x3099: {0xFF9E, 0x4000}, + 0x309A: {0xFF9F, 0x4000}, + 0x30A1: {0xFF67, 0x4000}, + 0x30A2: {0xFF71, 0x4000}, + 0x30A3: {0xFF68, 0x4000}, + 0x30A4: {0xFF72, 0x4000}, + 0x30A5: {0xFF69, 0x4000}, + 0x30A6: {0xFF73, 0x4000}, + 0x30A7: {0xFF6A, 0x4000}, + 0x30A8: {0xFF74, 0x4000}, + 0x30A9: {0xFF6B, 0x4000}, + 0x30AA: {0xFF75, 0x4000}, + 0x30AB: {0xFF76, 0x4000}, + 0x30AD: {0xFF77, 0x4000}, + 0x30AF: {0xFF78, 0x4000}, + 0x30B1: {0xFF79, 0x4000}, + 0x30B3: {0xFF7A, 0x4000}, + 0x30B5: {0xFF7B, 0x4000}, + 0x30B7: {0xFF7C, 0x4000}, + 0x30B9: {0xFF7D, 0x4000}, + 0x30BB: {0xFF7E, 0x4000}, + 0x30BD: {0xFF7F, 0x4000}, + 0x30BF: {0xFF80, 0x4000}, + 0x30C1: {0xFF81, 0x4000}, + 0x30C3: {0xFF6F, 0x4000}, + 0x30C4: {0xFF82, 0x4000}, + 0x30C6: {0xFF83, 0x4000}, + 0x30C8: {0xFF84, 0x4000}, + 0x30CA: {0xFF85, 0x4000}, + 0x30CB: {0xFF86, 0x4000}, + 0x30CC: {0xFF87, 0x4000}, + 0x30CD: {0xFF88, 0x4000}, + 0x30CE: {0xFF89, 0x4000}, + 0x30CF: {0xFF8A, 0x4000}, + 0x30D2: {0xFF8B, 0x4000}, + 0x30D5: {0xFF8C, 0x4000}, + 0x30D8: {0xFF8D, 0x4000}, + 0x30DB: {0xFF8E, 0x4000}, + 0x30DE: {0xFF8F, 0x4000}, + 0x30DF: {0xFF90, 0x4000}, + 0x30E0: {0xFF91, 0x4000}, + 0x30E1: {0xFF92, 0x4000}, + 0x30E2: {0xFF93, 0x4000}, + 0x30E3: {0xFF6C, 0x4000}, + 0x30E4: {0xFF94, 0x4000}, + 0x30E5: {0xFF6D, 0x4000}, + 0x30E6: {0xFF95, 0x4000}, + 0x30E7: {0xFF6E, 0x4000}, + 0x30E8: {0xFF96, 0x4000}, + 0x30E9: {0xFF97, 0x4000}, + 0x30EA: {0xFF98, 0x4000}, + 0x30EB: {0xFF99, 0x4000}, + 0x30EC: {0xFF9A, 0x4000}, + 0x30ED: {0xFF9B, 0x4000}, + 0x30EF: {0xFF9C, 0x4000}, + 0x30F2: {0xFF66, 0x4000}, + 0x30F3: {0xFF9D, 0x4000}, + 0x30FB: {0xFF65, 0x4000}, + 0x30FC: {0xFF70, 0x4000}, + 0x3131: {0xFFA1, 0x4000}, + 0x3132: {0xFFA2, 0x4000}, + 0x3133: {0xFFA3, 0x4000}, + 0x3134: {0xFFA4, 0x4000}, + 0x3135: {0xFFA5, 0x4000}, + 0x3136: {0xFFA6, 0x4000}, + 0x3137: {0xFFA7, 0x4000}, + 0x3138: {0xFFA8, 0x4000}, + 0x3139: {0xFFA9, 0x4000}, + 0x313A: {0xFFAA, 0x4000}, + 0x313B: {0xFFAB, 0x4000}, + 0x313C: {0xFFAC, 0x4000}, + 0x313D: {0xFFAD, 0x4000}, + 0x313E: {0xFFAE, 0x4000}, + 0x313F: {0xFFAF, 0x4000}, + 0x3140: {0xFFB0, 0x4000}, + 0x3141: {0xFFB1, 0x4000}, + 0x3142: {0xFFB2, 0x4000}, + 0x3143: {0xFFB3, 0x4000}, + 0x3144: {0xFFB4, 0x4000}, + 0x3145: {0xFFB5, 0x4000}, + 0x3146: {0xFFB6, 0x4000}, + 0x3147: {0xFFB7, 0x4000}, + 0x3148: {0xFFB8, 0x4000}, + 0x3149: {0xFFB9, 0x4000}, + 0x314A: {0xFFBA, 0x4000}, + 0x314B: {0xFFBB, 0x4000}, + 0x314C: {0xFFBC, 0x4000}, + 0x314D: {0xFFBD, 0x4000}, + 0x314E: {0xFFBE, 0x4000}, + 0x314F: {0xFFC2, 0x4000}, + 0x3150: {0xFFC3, 0x4000}, + 0x3151: {0xFFC4, 0x4000}, + 0x3152: {0xFFC5, 0x4000}, + 0x3153: {0xFFC6, 0x4000}, + 0x3154: {0xFFC7, 0x4000}, + 0x3155: {0xFFCA, 0x4000}, + 0x3156: {0xFFCB, 0x4000}, + 0x3157: {0xFFCC, 0x4000}, + 0x3158: {0xFFCD, 0x4000}, + 0x3159: {0xFFCE, 0x4000}, + 0x315A: {0xFFCF, 0x4000}, + 0x315B: {0xFFD2, 0x4000}, + 0x315C: {0xFFD3, 0x4000}, + 0x315D: {0xFFD4, 0x4000}, + 0x315E: {0xFFD5, 0x4000}, + 0x315F: {0xFFD6, 0x4000}, + 0x3160: {0xFFD7, 0x4000}, + 0x3161: {0xFFDA, 0x4000}, + 0x3162: {0xFFDB, 0x4000}, + 0x3163: {0xFFDC, 0x4000}, + 0x3164: {0xFFA0, 0x4000}, + 0xFF01: {0x21, 0x9000}, + 0xFF02: {0x22, 0x9000}, + 0xFF03: {0x23, 0x9000}, + 0xFF04: {0x24, 0x9000}, + 0xFF05: {0x25, 0x9000}, + 0xFF06: {0x26, 0x9000}, + 0xFF07: {0x27, 0x9000}, + 0xFF08: {0x28, 0x9000}, + 0xFF09: {0x29, 0x9000}, + 0xFF0A: {0x2A, 0x9000}, + 0xFF0B: {0x2B, 0x9000}, + 0xFF0C: {0x2C, 0x9000}, + 0xFF0D: {0x2D, 0x9000}, + 0xFF0E: {0x2E, 0x9000}, + 0xFF0F: {0x2F, 0x9000}, + 0xFF10: {0x30, 0x9000}, + 0xFF11: {0x31, 0x9000}, + 0xFF12: {0x32, 0x9000}, + 0xFF13: {0x33, 0x9000}, + 0xFF14: {0x34, 0x9000}, + 0xFF15: {0x35, 0x9000}, + 0xFF16: {0x36, 0x9000}, + 0xFF17: {0x37, 0x9000}, + 0xFF18: {0x38, 0x9000}, + 0xFF19: {0x39, 0x9000}, + 0xFF1A: {0x3A, 0x9000}, + 0xFF1B: {0x3B, 0x9000}, + 0xFF1C: {0x3C, 0x9000}, + 0xFF1D: {0x3D, 0x9000}, + 0xFF1E: {0x3E, 0x9000}, + 0xFF1F: {0x3F, 0x9000}, + 0xFF20: {0x40, 0x9000}, + 0xFF21: {0x41, 0x9000}, + 0xFF22: {0x42, 0x9000}, + 0xFF23: {0x43, 0x9000}, + 0xFF24: {0x44, 0x9000}, + 0xFF25: {0x45, 0x9000}, + 0xFF26: {0x46, 0x9000}, + 0xFF27: {0x47, 0x9000}, + 0xFF28: {0x48, 0x9000}, + 0xFF29: {0x49, 0x9000}, + 0xFF2A: {0x4A, 0x9000}, + 0xFF2B: {0x4B, 0x9000}, + 0xFF2C: {0x4C, 0x9000}, + 0xFF2D: {0x4D, 0x9000}, + 0xFF2E: {0x4E, 0x9000}, + 0xFF2F: {0x4F, 0x9000}, + 0xFF30: {0x50, 0x9000}, + 0xFF31: {0x51, 0x9000}, + 0xFF32: {0x52, 0x9000}, + 0xFF33: {0x53, 0x9000}, + 0xFF34: {0x54, 0x9000}, + 0xFF35: {0x55, 0x9000}, + 0xFF36: {0x56, 0x9000}, + 0xFF37: {0x57, 0x9000}, + 0xFF38: {0x58, 0x9000}, + 0xFF39: {0x59, 0x9000}, + 0xFF3A: {0x5A, 0x9000}, + 0xFF3B: {0x5B, 0x9000}, + 0xFF3C: {0x5C, 0x9000}, + 0xFF3D: {0x5D, 0x9000}, + 0xFF3E: {0x5E, 0x9000}, + 0xFF3F: {0x5F, 0x9000}, + 0xFF40: {0x60, 0x9000}, + 0xFF41: {0x61, 0x9000}, + 0xFF42: {0x62, 0x9000}, + 0xFF43: {0x63, 0x9000}, + 0xFF44: {0x64, 0x9000}, + 0xFF45: {0x65, 0x9000}, + 0xFF46: {0x66, 0x9000}, + 0xFF47: {0x67, 0x9000}, + 0xFF48: {0x68, 0x9000}, + 0xFF49: {0x69, 0x9000}, + 0xFF4A: {0x6A, 0x9000}, + 0xFF4B: {0x6B, 0x9000}, + 0xFF4C: {0x6C, 0x9000}, + 0xFF4D: {0x6D, 0x9000}, + 0xFF4E: {0x6E, 0x9000}, + 0xFF4F: {0x6F, 0x9000}, + 0xFF50: {0x70, 0x9000}, + 0xFF51: {0x71, 0x9000}, + 0xFF52: {0x72, 0x9000}, + 0xFF53: {0x73, 0x9000}, + 0xFF54: {0x74, 0x9000}, + 0xFF55: {0x75, 0x9000}, + 0xFF56: {0x76, 0x9000}, + 0xFF57: {0x77, 0x9000}, + 0xFF58: {0x78, 0x9000}, + 0xFF59: {0x79, 0x9000}, + 0xFF5A: {0x7A, 0x9000}, + 0xFF5B: {0x7B, 0x9000}, + 0xFF5C: {0x7C, 0x9000}, + 0xFF5D: {0x7D, 0x9000}, + 0xFF5E: {0x7E, 0x9000}, + 0xFF5F: {0x2985, 0x9000}, + 0xFF60: {0x2986, 0x9000}, + 0xFF61: {0x3002, 0xB000}, + 0xFF62: {0x300C, 0xB000}, + 0xFF63: {0x300D, 0xB000}, + 0xFF64: {0x3001, 0xB000}, + 0xFF65: {0x30FB, 0xB000}, + 0xFF66: {0x30F2, 0xB000}, + 0xFF67: {0x30A1, 0xB000}, + 0xFF68: {0x30A3, 0xB000}, + 0xFF69: {0x30A5, 0xB000}, + 0xFF6A: {0x30A7, 0xB000}, + 0xFF6B: {0x30A9, 0xB000}, + 0xFF6C: {0x30E3, 0xB000}, + 0xFF6D: {0x30E5, 0xB000}, + 0xFF6E: {0x30E7, 0xB000}, + 0xFF6F: {0x30C3, 0xB000}, + 0xFF70: {0x30FC, 0xB000}, + 0xFF71: {0x30A2, 0xB000}, + 0xFF72: {0x30A4, 0xB000}, + 0xFF73: {0x30A6, 0xB000}, + 0xFF74: {0x30A8, 0xB000}, + 0xFF75: {0x30AA, 0xB000}, + 0xFF76: {0x30AB, 0xB000}, + 0xFF77: {0x30AD, 0xB000}, + 0xFF78: {0x30AF, 0xB000}, + 0xFF79: {0x30B1, 0xB000}, + 0xFF7A: {0x30B3, 0xB000}, + 0xFF7B: {0x30B5, 0xB000}, + 0xFF7C: {0x30B7, 0xB000}, + 0xFF7D: {0x30B9, 0xB000}, + 0xFF7E: {0x30BB, 0xB000}, + 0xFF7F: {0x30BD, 0xB000}, + 0xFF80: {0x30BF, 0xB000}, + 0xFF81: {0x30C1, 0xB000}, + 0xFF82: {0x30C4, 0xB000}, + 0xFF83: {0x30C6, 0xB000}, + 0xFF84: {0x30C8, 0xB000}, + 0xFF85: {0x30CA, 0xB000}, + 0xFF86: {0x30CB, 0xB000}, + 0xFF87: {0x30CC, 0xB000}, + 0xFF88: {0x30CD, 0xB000}, + 0xFF89: {0x30CE, 0xB000}, + 0xFF8A: {0x30CF, 0xB000}, + 0xFF8B: {0x30D2, 0xB000}, + 0xFF8C: {0x30D5, 0xB000}, + 0xFF8D: {0x30D8, 0xB000}, + 0xFF8E: {0x30DB, 0xB000}, + 0xFF8F: {0x30DE, 0xB000}, + 0xFF90: {0x30DF, 0xB000}, + 0xFF91: {0x30E0, 0xB000}, + 0xFF92: {0x30E1, 0xB000}, + 0xFF93: {0x30E2, 0xB000}, + 0xFF94: {0x30E4, 0xB000}, + 0xFF95: {0x30E6, 0xB000}, + 0xFF96: {0x30E8, 0xB000}, + 0xFF97: {0x30E9, 0xB000}, + 0xFF98: {0x30EA, 0xB000}, + 0xFF99: {0x30EB, 0xB000}, + 0xFF9A: {0x30EC, 0xB000}, + 0xFF9B: {0x30ED, 0xB000}, + 0xFF9C: {0x30EF, 0xB000}, + 0xFF9D: {0x30F3, 0xB000}, + 0xFF9E: {0x3099, 0xB000}, + 0xFF9F: {0x309A, 0xB000}, + 0xFFA0: {0x3164, 0xB000}, + 0xFFA1: {0x3131, 0xB000}, + 0xFFA2: {0x3132, 0xB000}, + 0xFFA3: {0x3133, 0xB000}, + 0xFFA4: {0x3134, 0xB000}, + 0xFFA5: {0x3135, 0xB000}, + 0xFFA6: {0x3136, 0xB000}, + 0xFFA7: {0x3137, 0xB000}, + 0xFFA8: {0x3138, 0xB000}, + 0xFFA9: {0x3139, 0xB000}, + 0xFFAA: {0x313A, 0xB000}, + 0xFFAB: {0x313B, 0xB000}, + 0xFFAC: {0x313C, 0xB000}, + 0xFFAD: {0x313D, 0xB000}, + 0xFFAE: {0x313E, 0xB000}, + 0xFFAF: {0x313F, 0xB000}, + 0xFFB0: {0x3140, 0xB000}, + 0xFFB1: {0x3141, 0xB000}, + 0xFFB2: {0x3142, 0xB000}, + 0xFFB3: {0x3143, 0xB000}, + 0xFFB4: {0x3144, 0xB000}, + 0xFFB5: {0x3145, 0xB000}, + 0xFFB6: {0x3146, 0xB000}, + 0xFFB7: {0x3147, 0xB000}, + 0xFFB8: {0x3148, 0xB000}, + 0xFFB9: {0x3149, 0xB000}, + 0xFFBA: {0x314A, 0xB000}, + 0xFFBB: {0x314B, 0xB000}, + 0xFFBC: {0x314C, 0xB000}, + 0xFFBD: {0x314D, 0xB000}, + 0xFFBE: {0x314E, 0xB000}, + 0xFFC2: {0x314F, 0xB000}, + 0xFFC3: {0x3150, 0xB000}, + 0xFFC4: {0x3151, 0xB000}, + 0xFFC5: {0x3152, 0xB000}, + 0xFFC6: {0x3153, 0xB000}, + 0xFFC7: {0x3154, 0xB000}, + 0xFFCA: {0x3155, 0xB000}, + 0xFFCB: {0x3156, 0xB000}, + 0xFFCC: {0x3157, 0xB000}, + 0xFFCD: {0x3158, 0xB000}, + 0xFFCE: {0x3159, 0xB000}, + 0xFFCF: {0x315A, 0xB000}, + 0xFFD2: {0x315B, 0xB000}, + 0xFFD3: {0x315C, 0xB000}, + 0xFFD4: {0x315D, 0xB000}, + 0xFFD5: {0x315E, 0xB000}, + 0xFFD6: {0x315F, 0xB000}, + 0xFFD7: {0x3160, 0xB000}, + 0xFFDA: {0x3161, 0xB000}, + 0xFFDB: {0x3162, 0xB000}, + 0xFFDC: {0x3163, 0xB000}, + 0xFFE0: {0xA2, 0x9000}, + 0xFFE1: {0xA3, 0x9000}, + 0xFFE2: {0xAC, 0x9000}, + 0xFFE3: {0xAF, 0x9000}, + 0xFFE4: {0xA6, 0x9000}, + 0xFFE5: {0xA5, 0x9000}, + 0xFFE6: {0x20A9, 0x9000}, + 0xFFE8: {0x2502, 0xB000}, + 0xFFE9: {0x2190, 0xB000}, + 0xFFEA: {0x2191, 0xB000}, + 0xFFEB: {0x2192, 0xB000}, + 0xFFEC: {0x2193, 0xB000}, + 0xFFED: {0x25A0, 0xB000}, + 0xFFEE: {0x25CB, 0xB000}, +} diff --git a/vendor/golang.org/x/text/width/tables.go b/vendor/golang.org/x/text/width/tables.go new file mode 100644 index 00000000..242da0fd --- /dev/null +++ b/vendor/golang.org/x/text/width/tables.go @@ -0,0 +1,1284 @@ +// This file was generated by go generate; DO NOT EDIT + +package width + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +// 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 *widthTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return widthValues[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 := widthIndex[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 := widthIndex[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 = widthIndex[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 := widthIndex[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 = widthIndex[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 = widthIndex[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 *widthTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return widthValues[c0] + } + i := widthIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = widthIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = widthIndex[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 *widthTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return widthValues[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 := widthIndex[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 := widthIndex[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 = widthIndex[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 := widthIndex[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 = widthIndex[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 = widthIndex[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 *widthTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return widthValues[c0] + } + i := widthIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = widthIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = widthIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// widthTrie. Total size: 14080 bytes (13.75 KiB). Checksum: 3b8aeb3dc03667a3. +type widthTrie struct{} + +func newWidthTrie(i int) *widthTrie { + return &widthTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *widthTrie) lookupValue(n uint32, b byte) uint16 { + switch { + default: + return uint16(widthValues[n<<6+uint32(b)]) + } +} + +// widthValues: 99 blocks, 6336 entries, 12672 bytes +// The third block is the zero block. +var widthValues = [6336]uint16{ + // Block 0x0, offset 0x0 + 0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002, + 0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002, + 0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002, + 0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002, + 0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002, + 0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002, + // Block 0x1, offset 0x40 + 0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003, + 0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003, + 0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003, + 0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003, + 0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003, + 0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004, + 0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004, + 0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004, + 0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004, + 0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004, + 0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005, + 0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000, + 0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008, + 0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000, + 0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000, + 0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000, + // Block 0x4, offset 0x100 + 0x106: 0x2000, + 0x110: 0x2000, + 0x117: 0x2000, + 0x118: 0x2000, + 0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000, + 0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000, + 0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000, + 0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000, + 0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000, + 0x13c: 0x2000, 0x13e: 0x2000, + // Block 0x5, offset 0x140 + 0x141: 0x2000, + 0x151: 0x2000, + 0x153: 0x2000, + 0x15b: 0x2000, + 0x166: 0x2000, 0x167: 0x2000, + 0x16b: 0x2000, + 0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000, + 0x178: 0x2000, + 0x17f: 0x2000, + // Block 0x6, offset 0x180 + 0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000, + 0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000, + 0x18d: 0x2000, + 0x192: 0x2000, 0x193: 0x2000, + 0x1a6: 0x2000, 0x1a7: 0x2000, + 0x1ab: 0x2000, + // Block 0x7, offset 0x1c0 + 0x1ce: 0x2000, 0x1d0: 0x2000, + 0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000, + 0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000, + // Block 0x8, offset 0x200 + 0x211: 0x2000, + 0x221: 0x2000, + // Block 0x9, offset 0x240 + 0x244: 0x2000, + 0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000, + 0x24d: 0x2000, 0x250: 0x2000, + 0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000, + 0x25f: 0x2000, + // Block 0xa, offset 0x280 + 0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000, + 0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000, + 0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000, + 0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000, + 0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000, + 0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000, + 0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000, + 0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000, + 0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000, + 0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000, + 0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000, + 0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000, + 0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000, + 0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000, + 0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000, + 0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000, + 0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000, + 0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000, + // Block 0xc, offset 0x300 + 0x311: 0x2000, + 0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000, + 0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000, + 0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000, + 0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000, + 0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000, + 0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000, + 0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000, + // Block 0xd, offset 0x340 + 0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000, + 0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000, + // Block 0xe, offset 0x380 + 0x381: 0x2000, + 0x390: 0x2000, 0x391: 0x2000, + 0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000, + 0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000, + 0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000, + 0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000, + 0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000, + 0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000, + 0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000, + 0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000, + 0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000, + 0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000, + // Block 0x10, offset 0x400 + 0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000, + 0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000, + 0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000, + 0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000, + 0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000, + 0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000, + 0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000, + 0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000, + 0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000, + 0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000, + 0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000, + // Block 0x11, offset 0x440 + 0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000, + 0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000, + 0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000, + 0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000, + 0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000, + 0x45e: 0x4000, 0x45f: 0x4000, + // Block 0x12, offset 0x480 + 0x490: 0x2000, + 0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000, + 0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000, + 0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000, + 0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000, + 0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000, + 0x4bb: 0x2000, + 0x4be: 0x2000, + // Block 0x13, offset 0x4c0 + 0x4f4: 0x2000, + 0x4ff: 0x2000, + // Block 0x14, offset 0x500 + 0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000, + 0x529: 0xa009, + 0x52c: 0x2000, + // Block 0x15, offset 0x540 + 0x543: 0x2000, 0x545: 0x2000, + 0x549: 0x2000, + 0x553: 0x2000, 0x556: 0x2000, + 0x561: 0x2000, 0x562: 0x2000, + 0x566: 0x2000, + 0x56b: 0x2000, + // Block 0x16, offset 0x580 + 0x593: 0x2000, 0x594: 0x2000, + 0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000, + 0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000, + 0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000, + 0x5aa: 0x2000, 0x5ab: 0x2000, + 0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000, + 0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000, + // Block 0x17, offset 0x5c0 + 0x5c9: 0x2000, + 0x5d0: 0x200a, 0x5d1: 0x200b, + 0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000, + 0x5d8: 0x2000, 0x5d9: 0x2000, + 0x5f8: 0x2000, 0x5f9: 0x2000, + // Block 0x18, offset 0x600 + 0x612: 0x2000, 0x614: 0x2000, + 0x627: 0x2000, + // Block 0x19, offset 0x640 + 0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000, + 0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000, + 0x64f: 0x2000, 0x651: 0x2000, + 0x655: 0x2000, + 0x65a: 0x2000, 0x65d: 0x2000, + 0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000, + 0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000, + 0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000, + 0x674: 0x2000, 0x675: 0x2000, + 0x676: 0x2000, 0x677: 0x2000, + 0x67c: 0x2000, 0x67d: 0x2000, + // Block 0x1a, offset 0x680 + 0x688: 0x2000, + 0x68c: 0x2000, + 0x692: 0x2000, + 0x6a0: 0x2000, 0x6a1: 0x2000, + 0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000, + 0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000, + // Block 0x1b, offset 0x6c0 + 0x6c2: 0x2000, 0x6c3: 0x2000, + 0x6c6: 0x2000, 0x6c7: 0x2000, + 0x6d5: 0x2000, + 0x6d9: 0x2000, + 0x6e5: 0x2000, + 0x6ff: 0x2000, + // Block 0x1c, offset 0x700 + 0x712: 0x2000, + 0x71a: 0x4000, 0x71b: 0x4000, + 0x729: 0x4000, + 0x72a: 0x4000, + // Block 0x1d, offset 0x740 + 0x769: 0x4000, + 0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000, + 0x770: 0x4000, 0x773: 0x4000, + // Block 0x1e, offset 0x780 + 0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000, + 0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000, + 0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000, + 0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000, + 0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000, + 0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000, + 0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000, + 0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000, + 0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000, + 0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000, + 0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000, + 0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000, + 0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000, + 0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000, + 0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000, + 0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000, + // Block 0x20, offset 0x800 + 0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000, + 0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000, + 0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000, + 0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000, + 0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000, + 0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000, + 0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000, + 0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000, + 0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000, + 0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000, + 0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000, + // Block 0x21, offset 0x840 + 0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000, + 0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000, + 0x850: 0x2000, 0x851: 0x2000, + 0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000, + 0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000, + 0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000, + 0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000, + 0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000, + 0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000, + // Block 0x22, offset 0x880 + 0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000, + 0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000, + 0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000, + 0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000, + 0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000, + 0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000, + 0x8b2: 0x2000, 0x8b3: 0x2000, + 0x8b6: 0x2000, 0x8b7: 0x2000, + 0x8bc: 0x2000, 0x8bd: 0x2000, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x2000, 0x8c1: 0x2000, + 0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f, + 0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000, + 0x8e2: 0x2000, 0x8e3: 0x2000, + 0x8e4: 0x2000, 0x8e5: 0x2000, + 0x8ef: 0x2000, + 0x8fd: 0x4000, 0x8fe: 0x4000, + // Block 0x24, offset 0x900 + 0x905: 0x2000, + 0x906: 0x2000, 0x909: 0x2000, + 0x90e: 0x2000, 0x90f: 0x2000, + 0x914: 0x4000, 0x915: 0x4000, + 0x91c: 0x2000, + 0x91e: 0x2000, + // Block 0x25, offset 0x940 + 0x940: 0x2000, 0x942: 0x2000, + 0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000, + 0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000, + 0x952: 0x4000, 0x953: 0x4000, + 0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000, + 0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000, + 0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000, + 0x97f: 0x4000, + // Block 0x26, offset 0x980 + 0x993: 0x4000, + 0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000, + 0x9aa: 0x4000, 0x9ab: 0x4000, + 0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000, + // Block 0x27, offset 0x9c0 + 0x9c4: 0x4000, 0x9c5: 0x4000, + 0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000, + 0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000, + 0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000, + 0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000, + 0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000, + 0x9e8: 0x2000, 0x9e9: 0x2000, + 0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000, + 0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000, + 0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000, + 0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000, + // Block 0x28, offset 0xa00 + 0xa05: 0x4000, + 0xa0a: 0x4000, 0xa0b: 0x4000, + 0xa28: 0x4000, + 0xa3d: 0x2000, + // Block 0x29, offset 0xa40 + 0xa4c: 0x4000, 0xa4e: 0x4000, + 0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000, + 0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000, + 0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000, + // Block 0x2a, offset 0xa80 + 0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000, + 0xab0: 0x4000, + 0xabf: 0x4000, + // Block 0x2b, offset 0xac0 + 0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000, + 0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000, + // Block 0x2c, offset 0xb00 + 0xb05: 0x6010, + 0xb06: 0x6011, + // Block 0x2d, offset 0xb40 + 0xb5b: 0x4000, 0xb5c: 0x4000, + // Block 0x2e, offset 0xb80 + 0xb90: 0x4000, + 0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000, + 0xb98: 0x2000, 0xb99: 0x2000, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000, + 0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000, + 0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000, + 0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000, + 0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000, + 0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000, + 0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000, + 0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000, + 0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000, + 0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000, + 0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000, + // Block 0x30, offset 0xc00 + 0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000, + 0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000, + 0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000, + 0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000, + 0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000, + 0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000, + 0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000, + 0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000, + 0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000, + // Block 0x31, offset 0xc40 + 0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000, + 0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000, + 0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000, + 0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000, + 0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000, + 0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000, + // Block 0x32, offset 0xc80 + 0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000, + 0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000, + 0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000, + 0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000, + 0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000, + 0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000, + 0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000, + 0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000, + 0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000, + 0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000, + 0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000, + // Block 0x33, offset 0xcc0 + 0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000, + 0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000, + 0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000, + 0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000, + 0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000, + 0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000, + 0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000, + 0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000, + 0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000, + 0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000, + 0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000, + // Block 0x34, offset 0xd00 + 0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000, + 0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000, + 0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000, + 0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000, + 0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000, + 0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a, + 0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020, + 0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023, + 0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026, + 0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028, + 0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029, + // Block 0x35, offset 0xd40 + 0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000, + 0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f, + 0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000, + 0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000, + 0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000, + 0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036, + 0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038, + 0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035, + 0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000, + 0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d, + 0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000, + // Block 0x36, offset 0xd80 + 0xd85: 0x4000, + 0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000, + 0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000, + 0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000, + 0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000, + 0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000, + 0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000, + 0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000, + 0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e, + 0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e, + 0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037, + 0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037, + 0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040, + 0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044, + 0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045, + 0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c, + 0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000, + 0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000, + 0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000, + 0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000, + 0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000, + // Block 0x38, offset 0xe00 + 0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000, + 0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000, + 0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000, + 0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000, + 0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000, + 0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000, + 0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000, + 0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000, + 0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000, + 0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000, + // Block 0x39, offset 0xe40 + 0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000, + 0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000, + 0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000, + 0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000, + 0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000, + 0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000, + 0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000, + 0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000, + 0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000, + // Block 0x3a, offset 0xe80 + 0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000, + 0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000, + 0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000, + 0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000, + 0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000, + 0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000, + 0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000, + 0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000, + 0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000, + 0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000, + 0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000, + // Block 0x3b, offset 0xec0 + 0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000, + 0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000, + 0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000, + 0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000, + 0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000, + 0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000, + 0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000, + 0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000, + 0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000, + 0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000, + 0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000, + // Block 0x3c, offset 0xf00 + 0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000, + 0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000, + 0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000, + 0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000, + 0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000, + 0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000, + 0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000, + 0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000, + 0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000, + 0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000, + 0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000, + // Block 0x3d, offset 0xf40 + 0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000, + 0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000, + 0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000, + 0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000, + 0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000, + 0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000, + 0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000, + 0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000, + 0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000, + 0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000, + 0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000, + // Block 0x3e, offset 0xf80 + 0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000, + 0xf86: 0x4000, + // Block 0x3f, offset 0xfc0 + 0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000, + 0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000, + 0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000, + 0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000, + 0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000, + 0xffc: 0x4000, + // Block 0x40, offset 0x1000 + 0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000, + 0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000, + 0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000, + 0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000, + 0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000, + 0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000, + // Block 0x41, offset 0x1040 + 0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000, + 0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000, + 0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000, + 0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000, + 0x1058: 0x4000, 0x1059: 0x4000, + 0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000, + 0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000, + 0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000, + // Block 0x42, offset 0x1080 + 0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000, + 0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000, + 0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000, + 0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000, + 0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000, + 0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000, + 0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000, + 0x10aa: 0x4000, 0x10ab: 0x4000, + // Block 0x43, offset 0x10c0 + 0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012, + 0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012, + 0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012, + 0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012, + 0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012, + 0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049, + 0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049, + 0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049, + 0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049, + 0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049, + 0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049, + // Block 0x44, offset 0x1100 + 0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049, + 0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049, + 0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049, + 0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049, + 0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049, + 0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d, + 0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053, + 0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059, + 0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f, + 0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065, + 0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055, + // Block 0x45, offset 0x1140 + 0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056, + 0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f, + 0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072, + 0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075, + 0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078, + 0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b, + 0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b, + 0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b, + 0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c, + 0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c, + 0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c, + // Block 0x46, offset 0x1180 + 0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080, + 0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082, + 0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f, + 0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087, + 0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a, + 0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d, + 0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091, + 0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095, + 0x11bd: 0x2000, + // Block 0x47, offset 0x11c0 + 0x11e0: 0x4000, + // Block 0x48, offset 0x1200 + 0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000, + 0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000, + 0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000, + 0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000, + 0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000, + 0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000, + 0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000, + 0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000, + // Block 0x49, offset 0x1240 + 0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000, + 0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000, + 0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000, + 0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000, + 0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000, + 0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000, + 0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000, + 0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000, + 0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000, + // Block 0x4a, offset 0x1280 + 0x1280: 0x4000, 0x1281: 0x4000, + // Block 0x4b, offset 0x12c0 + 0x12c4: 0x4000, + // Block 0x4c, offset 0x1300 + 0x130f: 0x4000, + // Block 0x4d, offset 0x1340 + 0x1340: 0x2000, 0x1341: 0x2000, 0x1342: 0x2000, 0x1343: 0x2000, 0x1344: 0x2000, 0x1345: 0x2000, + 0x1346: 0x2000, 0x1347: 0x2000, 0x1348: 0x2000, 0x1349: 0x2000, 0x134a: 0x2000, + 0x1350: 0x2000, 0x1351: 0x2000, + 0x1352: 0x2000, 0x1353: 0x2000, 0x1354: 0x2000, 0x1355: 0x2000, 0x1356: 0x2000, 0x1357: 0x2000, + 0x1358: 0x2000, 0x1359: 0x2000, 0x135a: 0x2000, 0x135b: 0x2000, 0x135c: 0x2000, 0x135d: 0x2000, + 0x135e: 0x2000, 0x135f: 0x2000, 0x1360: 0x2000, 0x1361: 0x2000, 0x1362: 0x2000, 0x1363: 0x2000, + 0x1364: 0x2000, 0x1365: 0x2000, 0x1366: 0x2000, 0x1367: 0x2000, 0x1368: 0x2000, 0x1369: 0x2000, + 0x136a: 0x2000, 0x136b: 0x2000, 0x136c: 0x2000, 0x136d: 0x2000, + 0x1370: 0x2000, 0x1371: 0x2000, 0x1372: 0x2000, 0x1373: 0x2000, 0x1374: 0x2000, 0x1375: 0x2000, + 0x1376: 0x2000, 0x1377: 0x2000, 0x1378: 0x2000, 0x1379: 0x2000, 0x137a: 0x2000, 0x137b: 0x2000, + 0x137c: 0x2000, 0x137d: 0x2000, 0x137e: 0x2000, 0x137f: 0x2000, + // Block 0x4e, offset 0x1380 + 0x1380: 0x2000, 0x1381: 0x2000, 0x1382: 0x2000, 0x1383: 0x2000, 0x1384: 0x2000, 0x1385: 0x2000, + 0x1386: 0x2000, 0x1387: 0x2000, 0x1388: 0x2000, 0x1389: 0x2000, 0x138a: 0x2000, 0x138b: 0x2000, + 0x138c: 0x2000, 0x138d: 0x2000, 0x138e: 0x2000, 0x138f: 0x2000, 0x1390: 0x2000, 0x1391: 0x2000, + 0x1392: 0x2000, 0x1393: 0x2000, 0x1394: 0x2000, 0x1395: 0x2000, 0x1396: 0x2000, 0x1397: 0x2000, + 0x1398: 0x2000, 0x1399: 0x2000, 0x139a: 0x2000, 0x139b: 0x2000, 0x139c: 0x2000, 0x139d: 0x2000, + 0x139e: 0x2000, 0x139f: 0x2000, 0x13a0: 0x2000, 0x13a1: 0x2000, 0x13a2: 0x2000, 0x13a3: 0x2000, + 0x13a4: 0x2000, 0x13a5: 0x2000, 0x13a6: 0x2000, 0x13a7: 0x2000, 0x13a8: 0x2000, 0x13a9: 0x2000, + 0x13b0: 0x2000, 0x13b1: 0x2000, 0x13b2: 0x2000, 0x13b3: 0x2000, 0x13b4: 0x2000, 0x13b5: 0x2000, + 0x13b6: 0x2000, 0x13b7: 0x2000, 0x13b8: 0x2000, 0x13b9: 0x2000, 0x13ba: 0x2000, 0x13bb: 0x2000, + 0x13bc: 0x2000, 0x13bd: 0x2000, 0x13be: 0x2000, 0x13bf: 0x2000, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000, + 0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000, 0x13cb: 0x2000, + 0x13cc: 0x2000, 0x13cd: 0x2000, 0x13ce: 0x4000, 0x13cf: 0x2000, 0x13d0: 0x2000, 0x13d1: 0x4000, + 0x13d2: 0x4000, 0x13d3: 0x4000, 0x13d4: 0x4000, 0x13d5: 0x4000, 0x13d6: 0x4000, 0x13d7: 0x4000, + 0x13d8: 0x4000, 0x13d9: 0x4000, 0x13da: 0x4000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000, + 0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000, + 0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000, + 0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000, + // Block 0x50, offset 0x1400 + 0x1400: 0x4000, 0x1401: 0x4000, 0x1402: 0x4000, + 0x1410: 0x4000, 0x1411: 0x4000, + 0x1412: 0x4000, 0x1413: 0x4000, 0x1414: 0x4000, 0x1415: 0x4000, 0x1416: 0x4000, 0x1417: 0x4000, + 0x1418: 0x4000, 0x1419: 0x4000, 0x141a: 0x4000, 0x141b: 0x4000, 0x141c: 0x4000, 0x141d: 0x4000, + 0x141e: 0x4000, 0x141f: 0x4000, 0x1420: 0x4000, 0x1421: 0x4000, 0x1422: 0x4000, 0x1423: 0x4000, + 0x1424: 0x4000, 0x1425: 0x4000, 0x1426: 0x4000, 0x1427: 0x4000, 0x1428: 0x4000, 0x1429: 0x4000, + 0x142a: 0x4000, 0x142b: 0x4000, 0x142c: 0x4000, 0x142d: 0x4000, 0x142e: 0x4000, 0x142f: 0x4000, + 0x1430: 0x4000, 0x1431: 0x4000, 0x1432: 0x4000, 0x1433: 0x4000, 0x1434: 0x4000, 0x1435: 0x4000, + 0x1436: 0x4000, 0x1437: 0x4000, 0x1438: 0x4000, 0x1439: 0x4000, 0x143a: 0x4000, 0x143b: 0x4000, + // Block 0x51, offset 0x1440 + 0x1440: 0x4000, 0x1441: 0x4000, 0x1442: 0x4000, 0x1443: 0x4000, 0x1444: 0x4000, 0x1445: 0x4000, + 0x1446: 0x4000, 0x1447: 0x4000, 0x1448: 0x4000, + 0x1450: 0x4000, 0x1451: 0x4000, + // Block 0x52, offset 0x1480 + 0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000, 0x1483: 0x4000, 0x1484: 0x4000, 0x1485: 0x4000, + 0x1486: 0x4000, 0x1487: 0x4000, 0x1488: 0x4000, 0x1489: 0x4000, 0x148a: 0x4000, 0x148b: 0x4000, + 0x148c: 0x4000, 0x148d: 0x4000, 0x148e: 0x4000, 0x148f: 0x4000, 0x1490: 0x4000, 0x1491: 0x4000, + 0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000, + 0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000, + 0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000, + 0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000, + 0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000, + 0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000, + 0x14bc: 0x4000, 0x14bd: 0x4000, 0x14be: 0x4000, 0x14bf: 0x4000, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000, + 0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000, 0x14c9: 0x4000, 0x14ca: 0x4000, 0x14cb: 0x4000, + 0x14cc: 0x4000, 0x14cd: 0x4000, 0x14ce: 0x4000, 0x14cf: 0x4000, 0x14d0: 0x4000, 0x14d1: 0x4000, + 0x14d2: 0x4000, 0x14d3: 0x4000, 0x14d4: 0x4000, 0x14d5: 0x4000, 0x14d6: 0x4000, 0x14d7: 0x4000, + 0x14d8: 0x4000, 0x14d9: 0x4000, 0x14da: 0x4000, 0x14db: 0x4000, 0x14dc: 0x4000, 0x14dd: 0x4000, + 0x14de: 0x4000, 0x14df: 0x4000, 0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000, + 0x14e4: 0x4000, 0x14e5: 0x4000, 0x14e6: 0x4000, 0x14e7: 0x4000, 0x14e8: 0x4000, 0x14e9: 0x4000, + 0x14ea: 0x4000, 0x14eb: 0x4000, 0x14ec: 0x4000, 0x14ed: 0x4000, 0x14ee: 0x4000, 0x14ef: 0x4000, + 0x14f0: 0x4000, 0x14f1: 0x4000, 0x14f2: 0x4000, 0x14f3: 0x4000, 0x14f4: 0x4000, 0x14f5: 0x4000, + 0x14f6: 0x4000, 0x14f7: 0x4000, 0x14f8: 0x4000, 0x14f9: 0x4000, 0x14fa: 0x4000, 0x14fb: 0x4000, + 0x14fc: 0x4000, 0x14fe: 0x4000, 0x14ff: 0x4000, + // Block 0x54, offset 0x1500 + 0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000, + 0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000, + 0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000, + 0x1512: 0x4000, 0x1513: 0x4000, + 0x1520: 0x4000, 0x1521: 0x4000, 0x1522: 0x4000, 0x1523: 0x4000, + 0x1524: 0x4000, 0x1525: 0x4000, 0x1526: 0x4000, 0x1527: 0x4000, 0x1528: 0x4000, 0x1529: 0x4000, + 0x152a: 0x4000, 0x152b: 0x4000, 0x152c: 0x4000, 0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000, + 0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000, + 0x1536: 0x4000, 0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000, + 0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000, + // Block 0x55, offset 0x1540 + 0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000, + 0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000, + 0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000, + 0x1552: 0x4000, 0x1553: 0x4000, + 0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000, + 0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000, + 0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000, + 0x1570: 0x4000, 0x1574: 0x4000, + 0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000, + 0x157c: 0x4000, 0x157d: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000, + // Block 0x56, offset 0x1580 + 0x1580: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000, + 0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000, + 0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000, + 0x1592: 0x4000, 0x1593: 0x4000, 0x1594: 0x4000, 0x1595: 0x4000, 0x1596: 0x4000, 0x1597: 0x4000, + 0x1598: 0x4000, 0x1599: 0x4000, 0x159a: 0x4000, 0x159b: 0x4000, 0x159c: 0x4000, 0x159d: 0x4000, + 0x159e: 0x4000, 0x159f: 0x4000, 0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000, + 0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000, + 0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000, + 0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000, + 0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000, + 0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000, + 0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000, 0x15cb: 0x4000, + 0x15cc: 0x4000, 0x15cd: 0x4000, 0x15ce: 0x4000, 0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000, + 0x15d2: 0x4000, 0x15d3: 0x4000, 0x15d4: 0x4000, 0x15d5: 0x4000, 0x15d6: 0x4000, 0x15d7: 0x4000, + 0x15d8: 0x4000, 0x15d9: 0x4000, 0x15da: 0x4000, 0x15db: 0x4000, 0x15dc: 0x4000, 0x15dd: 0x4000, + 0x15de: 0x4000, 0x15df: 0x4000, 0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000, + 0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000, + 0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000, + 0x15f0: 0x4000, 0x15f1: 0x4000, 0x15f2: 0x4000, 0x15f3: 0x4000, 0x15f4: 0x4000, 0x15f5: 0x4000, + 0x15f6: 0x4000, 0x15f7: 0x4000, 0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000, + 0x15fc: 0x4000, 0x15ff: 0x4000, + // Block 0x58, offset 0x1600 + 0x1600: 0x4000, 0x1601: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000, + 0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000, + 0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000, + 0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000, + 0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000, + 0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000, + 0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000, + 0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000, + 0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000, + 0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000, + 0x163c: 0x4000, 0x163d: 0x4000, + // Block 0x59, offset 0x1640 + 0x164b: 0x4000, + 0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000, + 0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000, + 0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000, + 0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000, + 0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000, + 0x167a: 0x4000, + // Block 0x5a, offset 0x1680 + 0x1695: 0x4000, 0x1696: 0x4000, + 0x16a4: 0x4000, + // Block 0x5b, offset 0x16c0 + 0x16fb: 0x4000, + 0x16fc: 0x4000, 0x16fd: 0x4000, 0x16fe: 0x4000, 0x16ff: 0x4000, + // Block 0x5c, offset 0x1700 + 0x1700: 0x4000, 0x1701: 0x4000, 0x1702: 0x4000, 0x1703: 0x4000, 0x1704: 0x4000, 0x1705: 0x4000, + 0x1706: 0x4000, 0x1707: 0x4000, 0x1708: 0x4000, 0x1709: 0x4000, 0x170a: 0x4000, 0x170b: 0x4000, + 0x170c: 0x4000, 0x170d: 0x4000, 0x170e: 0x4000, 0x170f: 0x4000, + // Block 0x5d, offset 0x1740 + 0x1740: 0x4000, 0x1741: 0x4000, 0x1742: 0x4000, 0x1743: 0x4000, 0x1744: 0x4000, 0x1745: 0x4000, + 0x174c: 0x4000, 0x1750: 0x4000, 0x1751: 0x4000, + 0x1752: 0x4000, + 0x176b: 0x4000, 0x176c: 0x4000, + 0x1774: 0x4000, 0x1775: 0x4000, + 0x1776: 0x4000, + // Block 0x5e, offset 0x1780 + 0x1790: 0x4000, 0x1791: 0x4000, + 0x1792: 0x4000, 0x1793: 0x4000, 0x1794: 0x4000, 0x1795: 0x4000, 0x1796: 0x4000, 0x1797: 0x4000, + 0x1798: 0x4000, 0x1799: 0x4000, 0x179a: 0x4000, 0x179b: 0x4000, 0x179c: 0x4000, 0x179d: 0x4000, + 0x179e: 0x4000, 0x17a0: 0x4000, 0x17a1: 0x4000, 0x17a2: 0x4000, 0x17a3: 0x4000, + 0x17a4: 0x4000, 0x17a5: 0x4000, 0x17a6: 0x4000, 0x17a7: 0x4000, + 0x17b0: 0x4000, 0x17b3: 0x4000, 0x17b4: 0x4000, 0x17b5: 0x4000, + 0x17b6: 0x4000, 0x17b7: 0x4000, 0x17b8: 0x4000, 0x17b9: 0x4000, 0x17ba: 0x4000, 0x17bb: 0x4000, + 0x17bc: 0x4000, 0x17bd: 0x4000, 0x17be: 0x4000, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000, + 0x17c6: 0x4000, 0x17c7: 0x4000, 0x17c8: 0x4000, 0x17c9: 0x4000, 0x17ca: 0x4000, 0x17cb: 0x4000, + 0x17d0: 0x4000, 0x17d1: 0x4000, + 0x17d2: 0x4000, 0x17d3: 0x4000, 0x17d4: 0x4000, 0x17d5: 0x4000, 0x17d6: 0x4000, 0x17d7: 0x4000, + 0x17d8: 0x4000, 0x17d9: 0x4000, 0x17da: 0x4000, 0x17db: 0x4000, 0x17dc: 0x4000, 0x17dd: 0x4000, + 0x17de: 0x4000, + // Block 0x60, offset 0x1800 + 0x1800: 0x4000, 0x1801: 0x4000, 0x1802: 0x4000, 0x1803: 0x4000, 0x1804: 0x4000, 0x1805: 0x4000, + 0x1806: 0x4000, 0x1807: 0x4000, 0x1808: 0x4000, 0x1809: 0x4000, 0x180a: 0x4000, 0x180b: 0x4000, + 0x180c: 0x4000, 0x180d: 0x4000, 0x180e: 0x4000, 0x180f: 0x4000, 0x1810: 0x4000, 0x1811: 0x4000, + // Block 0x61, offset 0x1840 + 0x1840: 0x4000, + // Block 0x62, offset 0x1880 + 0x1880: 0x2000, 0x1881: 0x2000, 0x1882: 0x2000, 0x1883: 0x2000, 0x1884: 0x2000, 0x1885: 0x2000, + 0x1886: 0x2000, 0x1887: 0x2000, 0x1888: 0x2000, 0x1889: 0x2000, 0x188a: 0x2000, 0x188b: 0x2000, + 0x188c: 0x2000, 0x188d: 0x2000, 0x188e: 0x2000, 0x188f: 0x2000, 0x1890: 0x2000, 0x1891: 0x2000, + 0x1892: 0x2000, 0x1893: 0x2000, 0x1894: 0x2000, 0x1895: 0x2000, 0x1896: 0x2000, 0x1897: 0x2000, + 0x1898: 0x2000, 0x1899: 0x2000, 0x189a: 0x2000, 0x189b: 0x2000, 0x189c: 0x2000, 0x189d: 0x2000, + 0x189e: 0x2000, 0x189f: 0x2000, 0x18a0: 0x2000, 0x18a1: 0x2000, 0x18a2: 0x2000, 0x18a3: 0x2000, + 0x18a4: 0x2000, 0x18a5: 0x2000, 0x18a6: 0x2000, 0x18a7: 0x2000, 0x18a8: 0x2000, 0x18a9: 0x2000, + 0x18aa: 0x2000, 0x18ab: 0x2000, 0x18ac: 0x2000, 0x18ad: 0x2000, 0x18ae: 0x2000, 0x18af: 0x2000, + 0x18b0: 0x2000, 0x18b1: 0x2000, 0x18b2: 0x2000, 0x18b3: 0x2000, 0x18b4: 0x2000, 0x18b5: 0x2000, + 0x18b6: 0x2000, 0x18b7: 0x2000, 0x18b8: 0x2000, 0x18b9: 0x2000, 0x18ba: 0x2000, 0x18bb: 0x2000, + 0x18bc: 0x2000, 0x18bd: 0x2000, +} + +// widthIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var widthIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05, + 0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b, + 0xd0: 0x0c, 0xd1: 0x0d, + 0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06, + 0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a, + 0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13, + // Block 0x4, offset 0x100 + 0x104: 0x0e, 0x105: 0x0f, + // Block 0x5, offset 0x140 + 0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16, + 0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b, + 0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21, + 0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29, + 0x166: 0x2a, + 0x16c: 0x2b, 0x16d: 0x2c, + 0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f, + // Block 0x6, offset 0x180 + 0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37, + 0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e, + 0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e, + 0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e, + 0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e, + 0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e, + 0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e, + 0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e, + 0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e, + 0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e, + 0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e, + 0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e, + 0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e, + 0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e, + 0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e, + // Block 0x8, offset 0x200 + 0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e, + 0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e, + 0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e, + 0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e, + 0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e, + 0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e, + 0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e, + 0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e, + // Block 0x9, offset 0x240 + 0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e, + 0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e, + 0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c, + 0x265: 0x3d, + 0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e, + 0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e, + // Block 0xa, offset 0x280 + 0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e, + 0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e, + 0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e, + 0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08, + 0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08, + 0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08, + 0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08, + 0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08, + 0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08, + 0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08, + 0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08, + // Block 0xc, offset 0x300 + 0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08, + 0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08, + 0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08, + 0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08, + 0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e, + 0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e, + 0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44, + // Block 0xd, offset 0x340 + 0x37f: 0x45, + // Block 0xe, offset 0x380 + 0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e, + 0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e, + 0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e, + 0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46, + 0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e, + 0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x48, + // Block 0x10, offset 0x400 + 0x400: 0x49, 0x403: 0x4a, 0x404: 0x4b, 0x405: 0x4c, 0x406: 0x4d, + 0x408: 0x4e, 0x409: 0x4f, 0x40c: 0x50, 0x40d: 0x51, 0x40e: 0x52, 0x40f: 0x53, + 0x410: 0x3a, 0x411: 0x54, 0x412: 0x0e, 0x413: 0x55, 0x414: 0x56, 0x415: 0x57, 0x416: 0x58, 0x417: 0x59, + 0x418: 0x0e, 0x419: 0x5a, 0x41a: 0x0e, 0x41b: 0x5b, + 0x424: 0x5c, 0x425: 0x5d, 0x426: 0x5e, 0x427: 0x5f, + // Block 0x11, offset 0x440 + 0x456: 0x0b, 0x457: 0x06, + 0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e, + 0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06, + 0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06, + 0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06, + 0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06, + // Block 0x12, offset 0x480 + 0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08, + 0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08, + 0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08, + 0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08, + 0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08, + 0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08, + 0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08, + 0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x60, + // Block 0x14, offset 0x500 + 0x520: 0x10, + 0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09, + 0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11, + // Block 0x15, offset 0x540 + 0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09, + 0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11, +} + +// inverseData contains 4-byte entries of the following format: +// <0 padding> +// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the +// UTF-8 encoding of the original rune. Mappings often have the following +// pattern: +// A -> A (U+FF21 -> U+0041) +// ï¼¢ -> B (U+FF22 -> U+0042) +// ... +// By xor-ing the last byte the same entry can be shared by many mappings. This +// reduces the total number of distinct entries by about two thirds. +// The resulting entry for the aforementioned mappings is +// { 0x01, 0xE0, 0x00, 0x00 } +// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get +// E0 ^ A1 = 41. +// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get +// E0 ^ A2 = 42. +// Note that because of the xor-ing, the byte sequence stored in the entry is +// not valid UTF-8. +var inverseData = [150][4]byte{ + {0x00, 0x00, 0x00, 0x00}, + {0x03, 0xe3, 0x80, 0xa0}, + {0x03, 0xef, 0xbc, 0xa0}, + {0x03, 0xef, 0xbc, 0xe0}, + {0x03, 0xef, 0xbd, 0xe0}, + {0x03, 0xef, 0xbf, 0x02}, + {0x03, 0xef, 0xbf, 0x00}, + {0x03, 0xef, 0xbf, 0x0e}, + {0x03, 0xef, 0xbf, 0x0c}, + {0x03, 0xef, 0xbf, 0x0f}, + {0x03, 0xef, 0xbf, 0x39}, + {0x03, 0xef, 0xbf, 0x3b}, + {0x03, 0xef, 0xbf, 0x3f}, + {0x03, 0xef, 0xbf, 0x2a}, + {0x03, 0xef, 0xbf, 0x0d}, + {0x03, 0xef, 0xbf, 0x25}, + {0x03, 0xef, 0xbd, 0x1a}, + {0x03, 0xef, 0xbd, 0x26}, + {0x01, 0xa0, 0x00, 0x00}, + {0x03, 0xef, 0xbd, 0x25}, + {0x03, 0xef, 0xbd, 0x23}, + {0x03, 0xef, 0xbd, 0x2e}, + {0x03, 0xef, 0xbe, 0x07}, + {0x03, 0xef, 0xbe, 0x05}, + {0x03, 0xef, 0xbd, 0x06}, + {0x03, 0xef, 0xbd, 0x13}, + {0x03, 0xef, 0xbd, 0x0b}, + {0x03, 0xef, 0xbd, 0x16}, + {0x03, 0xef, 0xbd, 0x0c}, + {0x03, 0xef, 0xbd, 0x15}, + {0x03, 0xef, 0xbd, 0x0d}, + {0x03, 0xef, 0xbd, 0x1c}, + {0x03, 0xef, 0xbd, 0x02}, + {0x03, 0xef, 0xbd, 0x1f}, + {0x03, 0xef, 0xbd, 0x1d}, + {0x03, 0xef, 0xbd, 0x17}, + {0x03, 0xef, 0xbd, 0x08}, + {0x03, 0xef, 0xbd, 0x09}, + {0x03, 0xef, 0xbd, 0x0e}, + {0x03, 0xef, 0xbd, 0x04}, + {0x03, 0xef, 0xbd, 0x05}, + {0x03, 0xef, 0xbe, 0x3f}, + {0x03, 0xef, 0xbe, 0x00}, + {0x03, 0xef, 0xbd, 0x2c}, + {0x03, 0xef, 0xbe, 0x06}, + {0x03, 0xef, 0xbe, 0x0c}, + {0x03, 0xef, 0xbe, 0x0f}, + {0x03, 0xef, 0xbe, 0x0d}, + {0x03, 0xef, 0xbe, 0x0b}, + {0x03, 0xef, 0xbe, 0x19}, + {0x03, 0xef, 0xbe, 0x15}, + {0x03, 0xef, 0xbe, 0x11}, + {0x03, 0xef, 0xbe, 0x31}, + {0x03, 0xef, 0xbe, 0x33}, + {0x03, 0xef, 0xbd, 0x0f}, + {0x03, 0xef, 0xbe, 0x30}, + {0x03, 0xef, 0xbe, 0x3e}, + {0x03, 0xef, 0xbe, 0x32}, + {0x03, 0xef, 0xbe, 0x36}, + {0x03, 0xef, 0xbd, 0x14}, + {0x03, 0xef, 0xbe, 0x2e}, + {0x03, 0xef, 0xbd, 0x1e}, + {0x03, 0xef, 0xbe, 0x10}, + {0x03, 0xef, 0xbf, 0x13}, + {0x03, 0xef, 0xbf, 0x15}, + {0x03, 0xef, 0xbf, 0x17}, + {0x03, 0xef, 0xbf, 0x1f}, + {0x03, 0xef, 0xbf, 0x1d}, + {0x03, 0xef, 0xbf, 0x1b}, + {0x03, 0xef, 0xbf, 0x09}, + {0x03, 0xef, 0xbf, 0x0b}, + {0x03, 0xef, 0xbf, 0x37}, + {0x03, 0xef, 0xbe, 0x04}, + {0x01, 0xe0, 0x00, 0x00}, + {0x03, 0xe2, 0xa6, 0x1a}, + {0x03, 0xe2, 0xa6, 0x26}, + {0x03, 0xe3, 0x80, 0x23}, + {0x03, 0xe3, 0x80, 0x2e}, + {0x03, 0xe3, 0x80, 0x25}, + {0x03, 0xe3, 0x83, 0x1e}, + {0x03, 0xe3, 0x83, 0x14}, + {0x03, 0xe3, 0x82, 0x06}, + {0x03, 0xe3, 0x82, 0x0b}, + {0x03, 0xe3, 0x82, 0x0c}, + {0x03, 0xe3, 0x82, 0x0d}, + {0x03, 0xe3, 0x82, 0x02}, + {0x03, 0xe3, 0x83, 0x0f}, + {0x03, 0xe3, 0x83, 0x08}, + {0x03, 0xe3, 0x83, 0x09}, + {0x03, 0xe3, 0x83, 0x2c}, + {0x03, 0xe3, 0x83, 0x0c}, + {0x03, 0xe3, 0x82, 0x13}, + {0x03, 0xe3, 0x82, 0x16}, + {0x03, 0xe3, 0x82, 0x15}, + {0x03, 0xe3, 0x82, 0x1c}, + {0x03, 0xe3, 0x82, 0x1f}, + {0x03, 0xe3, 0x82, 0x1d}, + {0x03, 0xe3, 0x82, 0x1a}, + {0x03, 0xe3, 0x82, 0x17}, + {0x03, 0xe3, 0x82, 0x08}, + {0x03, 0xe3, 0x82, 0x09}, + {0x03, 0xe3, 0x82, 0x0e}, + {0x03, 0xe3, 0x82, 0x04}, + {0x03, 0xe3, 0x82, 0x05}, + {0x03, 0xe3, 0x82, 0x3f}, + {0x03, 0xe3, 0x83, 0x00}, + {0x03, 0xe3, 0x83, 0x06}, + {0x03, 0xe3, 0x83, 0x05}, + {0x03, 0xe3, 0x83, 0x0d}, + {0x03, 0xe3, 0x83, 0x0b}, + {0x03, 0xe3, 0x83, 0x07}, + {0x03, 0xe3, 0x83, 0x19}, + {0x03, 0xe3, 0x83, 0x15}, + {0x03, 0xe3, 0x83, 0x11}, + {0x03, 0xe3, 0x83, 0x31}, + {0x03, 0xe3, 0x83, 0x33}, + {0x03, 0xe3, 0x83, 0x30}, + {0x03, 0xe3, 0x83, 0x3e}, + {0x03, 0xe3, 0x83, 0x32}, + {0x03, 0xe3, 0x83, 0x36}, + {0x03, 0xe3, 0x83, 0x2e}, + {0x03, 0xe3, 0x82, 0x07}, + {0x03, 0xe3, 0x85, 0x04}, + {0x03, 0xe3, 0x84, 0x10}, + {0x03, 0xe3, 0x85, 0x30}, + {0x03, 0xe3, 0x85, 0x0d}, + {0x03, 0xe3, 0x85, 0x13}, + {0x03, 0xe3, 0x85, 0x15}, + {0x03, 0xe3, 0x85, 0x17}, + {0x03, 0xe3, 0x85, 0x1f}, + {0x03, 0xe3, 0x85, 0x1d}, + {0x03, 0xe3, 0x85, 0x1b}, + {0x03, 0xe3, 0x85, 0x09}, + {0x03, 0xe3, 0x85, 0x0f}, + {0x03, 0xe3, 0x85, 0x0b}, + {0x03, 0xe3, 0x85, 0x37}, + {0x03, 0xe3, 0x85, 0x3b}, + {0x03, 0xe3, 0x85, 0x39}, + {0x03, 0xe3, 0x85, 0x3f}, + {0x02, 0xc2, 0x02, 0x00}, + {0x02, 0xc2, 0x0e, 0x00}, + {0x02, 0xc2, 0x0c, 0x00}, + {0x02, 0xc2, 0x00, 0x00}, + {0x03, 0xe2, 0x82, 0x0f}, + {0x03, 0xe2, 0x94, 0x2a}, + {0x03, 0xe2, 0x86, 0x39}, + {0x03, 0xe2, 0x86, 0x3b}, + {0x03, 0xe2, 0x86, 0x3f}, + {0x03, 0xe2, 0x96, 0x0d}, + {0x03, 0xe2, 0x97, 0x25}, +} + +// Total table size 14680 bytes (14KiB) diff --git a/vendor/golang.org/x/text/width/tables_test.go b/vendor/golang.org/x/text/width/tables_test.go new file mode 100644 index 00000000..189febd3 --- /dev/null +++ b/vendor/golang.org/x/text/width/tables_test.go @@ -0,0 +1,59 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package width + +import ( + "testing" + + "golang.org/x/text/internal/testtext" +) + +const ( + loSurrogate = 0xD800 + hiSurrogate = 0xDFFF +) + +func TestTables(t *testing.T) { + testtext.SkipIfNotLong(t) + + runes := map[rune]Kind{} + getWidthData(func(r rune, tag elem, _ rune) { + runes[r] = tag.kind() + }) + for r := rune(0); r < 0x10FFFF; r++ { + if loSurrogate <= r && r <= hiSurrogate { + continue + } + p := LookupRune(r) + if got, want := p.Kind(), runes[r]; got != want { + t.Errorf("Kind of %U was %s; want %s.", r, got, want) + } + want, mapped := foldRune(r) + if got := p.Folded(); (got == 0) == mapped || got != 0 && got != want { + t.Errorf("Folded(%U) = %U; want %U", r, got, want) + } + want, mapped = widenRune(r) + if got := p.Wide(); (got == 0) == mapped || got != 0 && got != want { + t.Errorf("Wide(%U) = %U; want %U", r, got, want) + } + want, mapped = narrowRune(r) + if got := p.Narrow(); (got == 0) == mapped || got != 0 && got != want { + t.Errorf("Narrow(%U) = %U; want %U", r, got, want) + } + } +} + +// TestAmbiguous verifies that that ambiguous runes with a mapping always map to +// a halfwidth rune. +func TestAmbiguous(t *testing.T) { + for r, m := range mapRunes { + if m.e != tagAmbiguous { + continue + } + if k := mapRunes[m.r].e.kind(); k != EastAsianHalfwidth { + t.Errorf("Rune %U is ambiguous and maps to a rune of type %v", r, k) + } + } +} diff --git a/vendor/golang.org/x/text/width/transform.go b/vendor/golang.org/x/text/width/transform.go new file mode 100644 index 00000000..2ed25096 --- /dev/null +++ b/vendor/golang.org/x/text/width/transform.go @@ -0,0 +1,162 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package width + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +type foldTransform struct { + transform.NopResetter +} + +func (foldTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for nSrc < len(src) { + if src[nSrc] < utf8.RuneSelf { + // ASCII fast path. + start, end := nSrc, len(src) + if d := len(dst) - nDst; d < end-start { + end = nSrc + d + } + for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ { + } + n := copy(dst[nDst:], src[start:nSrc]) + if nDst += n; nDst == len(dst) { + nSrc = start + n + if nSrc == len(src) { + return nDst, nSrc, nil + } + if src[nSrc] < utf8.RuneSelf { + return nDst, nSrc, transform.ErrShortDst + } + } + continue + } + v, size := trie.lookup(src[nSrc:]) + if size == 0 { // incomplete UTF-8 encoding + if !atEOF { + return nDst, nSrc, transform.ErrShortSrc + } + size = 1 // gobble 1 byte + } + if elem(v)&tagNeedsFold == 0 { + if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { + return nDst, nSrc, transform.ErrShortDst + } + nDst += size + } else { + data := inverseData[byte(v)] + if len(dst)-nDst < int(data[0]) { + return nDst, nSrc, transform.ErrShortDst + } + i := 1 + for end := int(data[0]); i < end; i++ { + dst[nDst] = data[i] + nDst++ + } + dst[nDst] = data[i] ^ src[nSrc+size-1] + nDst++ + } + nSrc += size + } + return nDst, nSrc, nil +} + +type narrowTransform struct { + transform.NopResetter +} + +func (narrowTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for nSrc < len(src) { + if src[nSrc] < utf8.RuneSelf { + // ASCII fast path. + start, end := nSrc, len(src) + if d := len(dst) - nDst; d < end-start { + end = nSrc + d + } + for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ { + } + n := copy(dst[nDst:], src[start:nSrc]) + if nDst += n; nDst == len(dst) { + nSrc = start + n + if nSrc == len(src) { + return nDst, nSrc, nil + } + if src[nSrc] < utf8.RuneSelf { + return nDst, nSrc, transform.ErrShortDst + } + } + continue + } + v, size := trie.lookup(src[nSrc:]) + if size == 0 { // incomplete UTF-8 encoding + if !atEOF { + return nDst, nSrc, transform.ErrShortSrc + } + size = 1 // gobble 1 byte + } + if k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous { + if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { + return nDst, nSrc, transform.ErrShortDst + } + nDst += size + } else { + data := inverseData[byte(v)] + if len(dst)-nDst < int(data[0]) { + return nDst, nSrc, transform.ErrShortDst + } + i := 1 + for end := int(data[0]); i < end; i++ { + dst[nDst] = data[i] + nDst++ + } + dst[nDst] = data[i] ^ src[nSrc+size-1] + nDst++ + } + nSrc += size + } + return nDst, nSrc, nil +} + +type wideTransform struct { + transform.NopResetter +} + +func (wideTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for nSrc < len(src) { + // TODO: Consider ASCII fast path. Special-casing ASCII handling can + // reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably + // not enough to warrant the extra code and complexity. + v, size := trie.lookup(src[nSrc:]) + if size == 0 { // incomplete UTF-8 encoding + if !atEOF { + return nDst, nSrc, transform.ErrShortSrc + } + size = 1 // gobble 1 byte + } + if k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow { + if size != copy(dst[nDst:], src[nSrc:nSrc+size]) { + return nDst, nSrc, transform.ErrShortDst + } + nDst += size + } else { + data := inverseData[byte(v)] + if len(dst)-nDst < int(data[0]) { + return nDst, nSrc, transform.ErrShortDst + } + i := 1 + for end := int(data[0]); i < end; i++ { + dst[nDst] = data[i] + nDst++ + } + dst[nDst] = data[i] ^ src[nSrc+size-1] + nDst++ + } + nSrc += size + } + return nDst, nSrc, nil +} diff --git a/vendor/golang.org/x/text/width/transform_test.go b/vendor/golang.org/x/text/width/transform_test.go new file mode 100644 index 00000000..13d3c01c --- /dev/null +++ b/vendor/golang.org/x/text/width/transform_test.go @@ -0,0 +1,567 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package width + +import ( + "bytes" + "strings" + "testing" + + "golang.org/x/text/internal/testtext" + "golang.org/x/text/transform" +) + +func foldRune(r rune) (folded rune, ok bool) { + alt, ok := mapRunes[r] + if ok && alt.e&tagNeedsFold != 0 { + return alt.r, true + } + return r, false +} + +func widenRune(r rune) (wide rune, ok bool) { + alt, ok := mapRunes[r] + if k := alt.e.kind(); k == EastAsianHalfwidth || k == EastAsianNarrow { + return alt.r, true + } + return r, false +} + +func narrowRune(r rune) (narrow rune, ok bool) { + alt, ok := mapRunes[r] + if k := alt.e.kind(); k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous { + return alt.r, true + } + return r, false +} + +func TestFoldSingleRunes(t *testing.T) { + for r := rune(0); r < 0x1FFFF; r++ { + if loSurrogate <= r && r <= hiSurrogate { + continue + } + x, _ := foldRune(r) + want := string(x) + got := Fold.String(string(r)) + if got != want { + t.Errorf("Fold().String(%U) = %+q; want %+q", r, got, want) + } + } +} + +type transformTest struct { + desc string + src string + nBuf int + nDst int + atEOF bool + dst string + nSrc int + err error +} + +func (tc *transformTest) doTest(t *testing.T, tr Transformer) { + b := make([]byte, tc.nBuf) + nDst, nSrc, err := tr.Transform(b, []byte(tc.src), tc.atEOF) + if got := string(b[:nDst]); got != tc.dst[:nDst] { + t.Errorf("%s: dst was %+q; want %+q", tc.desc, got, tc.dst) + } + if nDst != tc.nDst { + t.Errorf("%s: nDst was %d; want %d", tc.desc, nDst, tc.nDst) + } + if nSrc != tc.nSrc { + t.Errorf("%s: nSrc was %d; want %d", tc.desc, nSrc, tc.nSrc) + } + if err != tc.err { + t.Errorf("%s: error was %v; want %v", tc.desc, err, tc.err) + } + if got := tr.String(tc.src); got != tc.dst { + t.Errorf("%s:String(%q) = %q; want %q", tc.desc, tc.src, got, tc.dst) + } +} + +func TestFold(t *testing.T) { + for _, tc := range []transformTest{{ + desc: "empty", + src: "", + nBuf: 10, + dst: "", + nDst: 0, + nSrc: 0, + atEOF: false, + err: nil, + }, { + desc: "short source 1", + src: "a\xc2", + nBuf: 10, + dst: "a\xc2", + nDst: 1, + nSrc: 1, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "short source 2", + src: "a\xe0\x80", + nBuf: 10, + dst: "a\xe0\x80", + nDst: 1, + nSrc: 1, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "incomplete but terminated source 1", + src: "a\xc2", + nBuf: 10, + dst: "a\xc2", + nDst: 2, + nSrc: 2, + atEOF: true, + err: nil, + }, { + desc: "incomplete but terminated source 2", + src: "a\xe0\x80", + nBuf: 10, + dst: "a\xe0\x80", + nDst: 3, + nSrc: 3, + atEOF: true, + err: nil, + }, { + desc: "exact fit dst", + src: "a\uff01", + nBuf: 2, + dst: "a!", + nDst: 2, + nSrc: 4, + atEOF: false, + err: nil, + }, { + desc: "exact fit dst and src ascii", + src: "ab", + nBuf: 2, + dst: "ab", + nDst: 2, + nSrc: 2, + atEOF: true, + err: nil, + }, { + desc: "empty dst", + src: "\u0300", + nBuf: 0, + dst: "\u0300", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "empty dst ascii", + src: "a", + nBuf: 0, + dst: "a", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst 1", + src: "a\uffe0", // ï¿  + nBuf: 2, + dst: "a\u00a2", // ¢ + nDst: 1, + nSrc: 1, + atEOF: false, + err: transform.ErrShortDst, + }, { + desc: "short dst 2", + src: "ä¸å¤ ", + nBuf: 3, + dst: "ä¸å¤ ", + nDst: 3, + nSrc: 3, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst fast path", + src: "fast", + nDst: 3, + dst: "fast", + nBuf: 3, + nSrc: 3, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst larger buffer", + src: "\uff21" + strings.Repeat("0", 127) + "B", + nBuf: 128, + dst: "A" + strings.Repeat("0", 127) + "B", + nDst: 128, + nSrc: 130, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "fast path alternation", + src: "fast路徑fast路徑", + nBuf: 20, + dst: "fast路徑fast路徑", + nDst: 20, + nSrc: 20, + atEOF: true, + err: nil, + }} { + tc.doTest(t, Fold) + } +} + +func TestWidenSingleRunes(t *testing.T) { + for r := rune(0); r < 0x1FFFF; r++ { + if loSurrogate <= r && r <= hiSurrogate { + continue + } + alt, _ := widenRune(r) + want := string(alt) + got := Widen.String(string(r)) + if got != want { + t.Errorf("Widen().String(%U) = %+q; want %+q", r, got, want) + } + } +} + +func TestWiden(t *testing.T) { + for _, tc := range []transformTest{{ + desc: "empty", + src: "", + nBuf: 10, + dst: "", + nDst: 0, + nSrc: 0, + atEOF: false, + err: nil, + }, { + desc: "short source 1", + src: "a\xc2", + nBuf: 10, + dst: "ï½\xc2", + nDst: 3, + nSrc: 1, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "short source 2", + src: "a\xe0\x80", + nBuf: 10, + dst: "ï½\xe0\x80", + nDst: 3, + nSrc: 1, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "incomplete but terminated source 1", + src: "a\xc2", + nBuf: 10, + dst: "ï½\xc2", + nDst: 4, + nSrc: 2, + atEOF: true, + err: nil, + }, { + desc: "incomplete but terminated source 2", + src: "a\xe0\x80", + nBuf: 10, + dst: "ï½\xe0\x80", + nDst: 5, + nSrc: 3, + atEOF: true, + err: nil, + }, { + desc: "exact fit dst", + src: "a!", + nBuf: 6, + dst: "ï½\uff01", + nDst: 6, + nSrc: 2, + atEOF: false, + err: nil, + }, { + desc: "empty dst", + src: "\u0300", + nBuf: 0, + dst: "\u0300", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "empty dst ascii", + src: "a", + nBuf: 0, + dst: "ï½", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst 1", + src: "a\uffe0", + nBuf: 4, + dst: "ï½\uffe0", + nDst: 3, + nSrc: 1, + atEOF: false, + err: transform.ErrShortDst, + }, { + desc: "short dst 2", + src: "ä¸å¤ ", + nBuf: 3, + dst: "ä¸å¤ ", + nDst: 3, + nSrc: 3, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst ascii", + src: "ascii", + nBuf: 3, + dst: "ï½ï½“cii", // U+ff41, ... + nDst: 3, + nSrc: 1, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "ambiguous", + src: "\uffe9", + nBuf: 4, + dst: "\u2190", + nDst: 3, + nSrc: 3, + atEOF: false, + err: nil, + }} { + tc.doTest(t, Widen) + } +} + +func TestNarrowSingleRunes(t *testing.T) { + for r := rune(0); r < 0x1FFFF; r++ { + if loSurrogate <= r && r <= hiSurrogate { + continue + } + alt, _ := narrowRune(r) + want := string(alt) + got := Narrow.String(string(r)) + if got != want { + t.Errorf("Narrow().String(%U) = %+q; want %+q", r, got, want) + } + } +} + +func TestNarrow(t *testing.T) { + for _, tc := range []transformTest{{ + desc: "empty", + src: "", + nBuf: 10, + dst: "", + nDst: 0, + nSrc: 0, + atEOF: false, + err: nil, + }, { + desc: "short source 1", + src: "a\xc2", + nBuf: 10, + dst: "a\xc2", + nDst: 1, + nSrc: 1, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "short source 2", + src: "ï½\xe0\x80", + nBuf: 10, + dst: "a\xe0\x80", + nDst: 1, + nSrc: 3, + atEOF: false, + err: transform.ErrShortSrc, + }, { + desc: "incomplete but terminated source 1", + src: "ï½\xc2", + nBuf: 10, + dst: "a\xc2", + nDst: 2, + nSrc: 4, + atEOF: true, + err: nil, + }, { + desc: "incomplete but terminated source 2", + src: "ï½\xe0\x80", + nBuf: 10, + dst: "a\xe0\x80", + nDst: 3, + nSrc: 5, + atEOF: true, + err: nil, + }, { + desc: "exact fit dst", + src: "ï½\uff01", + nBuf: 2, + dst: "a!", + nDst: 2, + nSrc: 6, + atEOF: false, + err: nil, + }, { + desc: "exact fit dst", + src: "a\uff01", + nBuf: 2, + dst: "a!", + nDst: 2, + nSrc: 4, + atEOF: false, + err: nil, + }, { + desc: "empty dst", + src: "\u0300", + nBuf: 0, + dst: "\u0300", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "empty dst ascii", + src: "a", + nBuf: 0, + dst: "a", + nDst: 0, + nSrc: 0, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst 1", + src: "ï½\uffe0", // ï¿  + nBuf: 2, + dst: "a\u00a2", // ¢ + nDst: 1, + nSrc: 3, + atEOF: false, + err: transform.ErrShortDst, + }, { + desc: "short dst 2", + src: "ä¸å¤ ", + nBuf: 3, + dst: "ä¸å¤ ", + nDst: 3, + nSrc: 3, + atEOF: true, + err: transform.ErrShortDst, + }, { + // Create a narrow variant of ambiguous runes, if they exist. + desc: "ambiguous", + src: "\u2190", + nBuf: 4, + dst: "\uffe9", + nDst: 3, + nSrc: 3, + atEOF: false, + err: nil, + }, { + desc: "short dst fast path", + src: "fast", + nBuf: 3, + dst: "fast", + nDst: 3, + nSrc: 3, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "short dst larger buffer", + src: "\uff21" + strings.Repeat("0", 127) + "B", + nBuf: 128, + dst: "A" + strings.Repeat("0", 127) + "B", + nDst: 128, + nSrc: 130, + atEOF: true, + err: transform.ErrShortDst, + }, { + desc: "fast path alternation", + src: "fast路徑fast路徑", + nBuf: 20, + dst: "fast路徑fast路徑", + nDst: 20, + nSrc: 20, + atEOF: true, + err: nil, + }} { + tc.doTest(t, Narrow) + } +} + +func bench(b *testing.B, t Transformer, s string) { + dst := make([]byte, 1024) + src := []byte(s) + b.SetBytes(int64(len(src))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + t.Transform(dst, src, true) + } +} + +func changingRunes(f func(r rune) (rune, bool)) string { + buf := &bytes.Buffer{} + for r := rune(0); r <= 0xFFFF; r++ { + if _, ok := foldRune(r); ok { + buf.WriteRune(r) + } + } + return buf.String() +} + +func BenchmarkFoldASCII(b *testing.B) { + bench(b, Fold, testtext.ASCII) +} + +func BenchmarkFoldCJK(b *testing.B) { + bench(b, Fold, testtext.CJK) +} + +func BenchmarkFoldNonCanonical(b *testing.B) { + bench(b, Fold, changingRunes(foldRune)) +} + +func BenchmarkFoldOther(b *testing.B) { + bench(b, Fold, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) +} + +func BenchmarkWideASCII(b *testing.B) { + bench(b, Widen, testtext.ASCII) +} + +func BenchmarkWideCJK(b *testing.B) { + bench(b, Widen, testtext.CJK) +} + +func BenchmarkWideNonCanonical(b *testing.B) { + bench(b, Widen, changingRunes(widenRune)) +} + +func BenchmarkWideOther(b *testing.B) { + bench(b, Widen, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) +} + +func BenchmarkNarrowASCII(b *testing.B) { + bench(b, Narrow, testtext.ASCII) +} + +func BenchmarkNarrowCJK(b *testing.B) { + bench(b, Narrow, testtext.CJK) +} + +func BenchmarkNarrowNonCanonical(b *testing.B) { + bench(b, Narrow, changingRunes(narrowRune)) +} + +func BenchmarkNarrowOther(b *testing.B) { + bench(b, Narrow, testtext.TwoByteUTF8+testtext.ThreeByteUTF8) +} diff --git a/vendor/golang.org/x/text/width/trieval.go b/vendor/golang.org/x/text/width/trieval.go new file mode 100644 index 00000000..0ecffb4c --- /dev/null +++ b/vendor/golang.org/x/text/width/trieval.go @@ -0,0 +1,30 @@ +// This file was generated by go generate; DO NOT EDIT + +package width + +// elem is an entry of the width trie. The high byte is used to encode the type +// of the rune. The low byte is used to store the index to a mapping entry in +// the inverseData array. +type elem uint16 + +const ( + tagNeutral elem = iota << typeShift + tagAmbiguous + tagWide + tagNarrow + tagFullwidth + tagHalfwidth +) + +const ( + numTypeBits = 3 + typeShift = 16 - numTypeBits + + // tagNeedsFold is true for all fullwidth and halfwidth runes except for + // the Won sign U+20A9. + tagNeedsFold = 0x1000 + + // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide + // variant. + wonSign rune = 0x20A9 +) diff --git a/vendor/golang.org/x/text/width/width.go b/vendor/golang.org/x/text/width/width.go new file mode 100644 index 00000000..dc026eef --- /dev/null +++ b/vendor/golang.org/x/text/width/width.go @@ -0,0 +1,201 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate stringer -type=Kind +//go:generate go run gen.go gen_common.go gen_trieval.go + +// Package width provides functionality for handling different widths in text. +// +// Wide characters behave like ideographs; they tend to allow line breaks after +// each character and remain upright in vertical text layout. Narrow characters +// are kept together in words or runs that are rotated sideways in vertical text +// layout. +// +// For more information, see http://unicode.org/reports/tr11/. +package width // import "golang.org/x/text/width" + +import ( + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// TODO +// 1) Reduce table size by compressing blocks. +// 2) API proposition for computing display length +// (approximation, fixed pitch only). +// 3) Implement display length. + +// Kind indicates the type of width property as defined in http://unicode.org/reports/tr11/. +type Kind int + +const ( + // Neutral characters do not occur in legacy East Asian character sets. + Neutral Kind = iota + + // EastAsianAmbiguous characters that can be sometimes wide and sometimes + // narrow and require additional information not contained in the character + // code to further resolve their width. + EastAsianAmbiguous + + // EastAsianWide characters are wide in its usual form. They occur only in + // the context of East Asian typography. These runes may have explicit + // halfwidth counterparts. + EastAsianWide + + // EastAsianNarrow characters are narrow in its usual form. They often have + // fullwidth counterparts. + EastAsianNarrow + + // Note: there exist Narrow runes that do not have fullwidth or wide + // counterparts, despite what the definition says (e.g. U+27E6). + + // EastAsianFullwidth characters have a compatibility decompositions of type + // wide that map to a narrow counterpart. + EastAsianFullwidth + + // EastAsianHalfwidth characters have a compatibility decomposition of type + // narrow that map to a wide or ambiguous counterpart, plus U+20A9 â‚© WON + // SIGN. + EastAsianHalfwidth + + // Note: there exist runes that have a halfwidth counterparts but that are + // classified as Ambiguous, rather than wide (e.g. U+2190). +) + +// TODO: the generated tries need to return size 1 for invalid runes for the +// width to be computed correctly (each byte should render width 1) + +var trie = newWidthTrie(0) + +// Lookup reports the Properties of the first rune in b and the number of bytes +// of its UTF-8 encoding. +func Lookup(b []byte) (p Properties, size int) { + v, sz := trie.lookup(b) + return Properties{elem(v), b[sz-1]}, sz +} + +// LookupString reports the Properties of the first rune in s and the number of +// bytes of its UTF-8 encoding. +func LookupString(s string) (p Properties, size int) { + v, sz := trie.lookupString(s) + return Properties{elem(v), s[sz-1]}, sz +} + +// LookupRune reports the Properties of rune r. +func LookupRune(r rune) Properties { + var buf [4]byte + n := utf8.EncodeRune(buf[:], r) + v, _ := trie.lookup(buf[:n]) + last := byte(r) + if r >= utf8.RuneSelf { + last = 0x80 + byte(r&0x3f) + } + return Properties{elem(v), last} +} + +// Properties provides access to width properties of a rune. +type Properties struct { + elem elem + last byte +} + +func (e elem) kind() Kind { + return Kind(e >> typeShift) +} + +// Kind returns the Kind of a rune as defined in Unicode TR #11. +// See http://unicode.org/reports/tr11/ for more details. +func (p Properties) Kind() Kind { + return p.elem.kind() +} + +// Folded returns the folded variant of a rune or 0 if the rune is canonical. +func (p Properties) Folded() rune { + if p.elem&tagNeedsFold != 0 { + buf := inverseData[byte(p.elem)] + buf[buf[0]] ^= p.last + r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) + return r + } + return 0 +} + +// Narrow returns the narrow variant of a rune or 0 if the rune is already +// narrow or doesn't have a narrow variant. +func (p Properties) Narrow() rune { + if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous) { + buf := inverseData[byte(p.elem)] + buf[buf[0]] ^= p.last + r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) + return r + } + return 0 +} + +// Wide returns the wide variant of a rune or 0 if the rune is already +// wide or doesn't have a wide variant. +func (p Properties) Wide() rune { + if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianHalfwidth || k == EastAsianNarrow) { + buf := inverseData[byte(p.elem)] + buf[buf[0]] ^= p.last + r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]]) + return r + } + return 0 +} + +// TODO for Properties: +// - Add Fullwidth/Halfwidth or Inverted methods for computing variants +// mapping. +// - Add width information (including information on non-spacing runes). + +// Transformer implements the transform.Transformer interface. +type Transformer struct { + t transform.Transformer +} + +// Reset implements the transform.Transformer interface. +func (t Transformer) Reset() { t.t.Reset() } + +// Transform implements the Transformer interface. +func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return t.t.Transform(dst, src, atEOF) +} + +// Bytes returns a new byte slice with the result of applying t to b. +func (t Transformer) Bytes(b []byte) []byte { + b, _, _ = transform.Bytes(t, b) + return b +} + +// String returns a string with the result of applying t to s. +func (t Transformer) String(s string) string { + s, _, _ = transform.String(t, s) + return s +} + +var ( + // Fold is a transform that maps all runes to their canonical width. + // + // Note that the NFKC and NFKD transforms in golang.org/x/text/unicode/norm + // provide a more generic folding mechanism. + Fold Transformer = Transformer{foldTransform{}} + + // Widen is a transform that maps runes to their wide variant, if + // available. + Widen Transformer = Transformer{wideTransform{}} + + // Narrow is a transform that maps runes to their narrow variant, if + // available. + Narrow Transformer = Transformer{narrowTransform{}} +) + +// TODO: Consider the following options: +// - Treat Ambiguous runes that have a halfwidth counterpart as wide, or some +// generalized variant of this. +// - Consider a wide Won character to be the default width (or some generalized +// variant of this). +// - Filter the set of characters that gets converted (the preferred approach is +// to allow applying filters to transforms). diff --git a/vendor/gopkg.in/inf.v0/LICENSE b/vendor/gopkg.in/inf.v0/LICENSE new file mode 100644 index 00000000..87a5cede --- /dev/null +++ b/vendor/gopkg.in/inf.v0/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 Péter Surányi. Portions 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/gopkg.in/inf.v0/benchmark_test.go b/vendor/gopkg.in/inf.v0/benchmark_test.go new file mode 100644 index 00000000..27071da0 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/benchmark_test.go @@ -0,0 +1,210 @@ +package inf + +import ( + "fmt" + "math/big" + "math/rand" + "sync" + "testing" +) + +const maxcap = 1024 * 1024 +const bits = 256 +const maxscale = 32 + +var once sync.Once + +var decInput [][2]Dec +var intInput [][2]big.Int + +var initBench = func() { + decInput = make([][2]Dec, maxcap) + intInput = make([][2]big.Int, maxcap) + max := new(big.Int).Lsh(big.NewInt(1), bits) + r := rand.New(rand.NewSource(0)) + for i := 0; i < cap(decInput); i++ { + decInput[i][0].SetUnscaledBig(new(big.Int).Rand(r, max)). + SetScale(Scale(r.Int31n(int32(2*maxscale-1)) - int32(maxscale))) + decInput[i][1].SetUnscaledBig(new(big.Int).Rand(r, max)). + SetScale(Scale(r.Int31n(int32(2*maxscale-1)) - int32(maxscale))) + } + for i := 0; i < cap(intInput); i++ { + intInput[i][0].Rand(r, max) + intInput[i][1].Rand(r, max) + } +} + +func doBenchmarkDec1(b *testing.B, f func(z *Dec)) { + once.Do(initBench) + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + f(&decInput[i%maxcap][0]) + } +} + +func doBenchmarkDec2(b *testing.B, f func(x, y *Dec)) { + once.Do(initBench) + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + f(&decInput[i%maxcap][0], &decInput[i%maxcap][1]) + } +} + +func doBenchmarkInt1(b *testing.B, f func(z *big.Int)) { + once.Do(initBench) + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + f(&intInput[i%maxcap][0]) + } +} + +func doBenchmarkInt2(b *testing.B, f func(x, y *big.Int)) { + once.Do(initBench) + b.ResetTimer() + b.StartTimer() + for i := 0; i < b.N; i++ { + f(&intInput[i%maxcap][0], &intInput[i%maxcap][1]) + } +} + +func Benchmark_Dec_String(b *testing.B) { + doBenchmarkDec1(b, func(x *Dec) { + x.String() + }) +} + +func Benchmark_Dec_StringScan(b *testing.B) { + doBenchmarkDec1(b, func(x *Dec) { + s := x.String() + d := new(Dec) + fmt.Sscan(s, d) + }) +} + +func Benchmark_Dec_GobEncode(b *testing.B) { + doBenchmarkDec1(b, func(x *Dec) { + x.GobEncode() + }) +} + +func Benchmark_Dec_GobEnDecode(b *testing.B) { + doBenchmarkDec1(b, func(x *Dec) { + g, _ := x.GobEncode() + new(Dec).GobDecode(g) + }) +} + +func Benchmark_Dec_Add(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + ys := y.Scale() + y.SetScale(x.Scale()) + _ = new(Dec).Add(x, y) + y.SetScale(ys) + }) +} + +func Benchmark_Dec_AddMixed(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + _ = new(Dec).Add(x, y) + }) +} + +func Benchmark_Dec_Sub(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + ys := y.Scale() + y.SetScale(x.Scale()) + _ = new(Dec).Sub(x, y) + y.SetScale(ys) + }) +} + +func Benchmark_Dec_SubMixed(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + _ = new(Dec).Sub(x, y) + }) +} + +func Benchmark_Dec_Mul(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + _ = new(Dec).Mul(x, y) + }) +} + +func Benchmark_Dec_Mul_QuoExact(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + v := new(Dec).Mul(x, y) + _ = new(Dec).QuoExact(v, y) + }) +} + +func Benchmark_Dec_QuoRound_Fixed_Down(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + _ = new(Dec).QuoRound(x, y, 0, RoundDown) + }) +} + +func Benchmark_Dec_QuoRound_Fixed_HalfUp(b *testing.B) { + doBenchmarkDec2(b, func(x, y *Dec) { + _ = new(Dec).QuoRound(x, y, 0, RoundHalfUp) + }) +} + +func Benchmark_Int_String(b *testing.B) { + doBenchmarkInt1(b, func(x *big.Int) { + x.String() + }) +} + +func Benchmark_Int_StringScan(b *testing.B) { + doBenchmarkInt1(b, func(x *big.Int) { + s := x.String() + d := new(big.Int) + fmt.Sscan(s, d) + }) +} + +func Benchmark_Int_GobEncode(b *testing.B) { + doBenchmarkInt1(b, func(x *big.Int) { + x.GobEncode() + }) +} + +func Benchmark_Int_GobEnDecode(b *testing.B) { + doBenchmarkInt1(b, func(x *big.Int) { + g, _ := x.GobEncode() + new(big.Int).GobDecode(g) + }) +} + +func Benchmark_Int_Add(b *testing.B) { + doBenchmarkInt2(b, func(x, y *big.Int) { + _ = new(big.Int).Add(x, y) + }) +} + +func Benchmark_Int_Sub(b *testing.B) { + doBenchmarkInt2(b, func(x, y *big.Int) { + _ = new(big.Int).Sub(x, y) + }) +} + +func Benchmark_Int_Mul(b *testing.B) { + doBenchmarkInt2(b, func(x, y *big.Int) { + _ = new(big.Int).Mul(x, y) + }) +} + +func Benchmark_Int_Quo(b *testing.B) { + doBenchmarkInt2(b, func(x, y *big.Int) { + _ = new(big.Int).Quo(x, y) + }) +} + +func Benchmark_Int_QuoRem(b *testing.B) { + doBenchmarkInt2(b, func(x, y *big.Int) { + _, _ = new(big.Int).QuoRem(x, y, new(big.Int)) + }) +} diff --git a/vendor/gopkg.in/inf.v0/dec.go b/vendor/gopkg.in/inf.v0/dec.go new file mode 100644 index 00000000..3b4afedf --- /dev/null +++ b/vendor/gopkg.in/inf.v0/dec.go @@ -0,0 +1,615 @@ +// Package inf (type inf.Dec) implements "infinite-precision" decimal +// arithmetic. +// "Infinite precision" describes two characteristics: practically unlimited +// precision for decimal number representation and no support for calculating +// with any specific fixed precision. +// (Although there is no practical limit on precision, inf.Dec can only +// represent finite decimals.) +// +// This package is currently in experimental stage and the API may change. +// +// This package does NOT support: +// - rounding to specific precisions (as opposed to specific decimal positions) +// - the notion of context (each rounding must be explicit) +// - NaN and Inf values, and distinguishing between positive and negative zero +// - conversions to and from float32/64 types +// +// Features considered for possible addition: +// + formatting options +// + Exp method +// + combined operations such as AddRound/MulAdd etc +// + exchanging data in decimal32/64/128 formats +// +package inf // import "gopkg.in/inf.v0" + +// TODO: +// - avoid excessive deep copying (quo and rounders) + +import ( + "fmt" + "io" + "math/big" + "strings" +) + +// A Dec represents a signed arbitrary-precision decimal. +// It is a combination of a sign, an arbitrary-precision integer coefficient +// value, and a signed fixed-precision exponent value. +// The sign and the coefficient value are handled together as a signed value +// and referred to as the unscaled value. +// (Positive and negative zero values are not distinguished.) +// Since the exponent is most commonly non-positive, it is handled in negated +// form and referred to as scale. +// +// The mathematical value of a Dec equals: +// +// unscaled * 10**(-scale) +// +// Note that different Dec representations may have equal mathematical values. +// +// unscaled scale String() +// ------------------------- +// 0 0 "0" +// 0 2 "0.00" +// 0 -2 "0" +// 1 0 "1" +// 100 2 "1.00" +// 10 0 "10" +// 1 -1 "10" +// +// The zero value for a Dec represents the value 0 with scale 0. +// +// Operations are typically performed through the *Dec type. +// The semantics of the assignment operation "=" for "bare" Dec values is +// undefined and should not be relied on. +// +// Methods are typically of the form: +// +// func (z *Dec) Op(x, y *Dec) *Dec +// +// and implement operations z = x Op y with the result as receiver; if it +// is one of the operands it may be overwritten (and its memory reused). +// To enable chaining of operations, the result is also returned. Methods +// returning a result other than *Dec take one of the operands as the receiver. +// +// A "bare" Quo method (quotient / division operation) is not provided, as the +// result is not always a finite decimal and thus in general cannot be +// represented as a Dec. +// Instead, in the common case when rounding is (potentially) necessary, +// QuoRound should be used with a Scale and a Rounder. +// QuoExact or QuoRound with RoundExact can be used in the special cases when it +// is known that the result is always a finite decimal. +// +type Dec struct { + unscaled big.Int + scale Scale +} + +// Scale represents the type used for the scale of a Dec. +type Scale int32 + +const scaleSize = 4 // bytes in a Scale value + +// Scaler represents a method for obtaining the scale to use for the result of +// an operation on x and y. +type scaler interface { + Scale(x *Dec, y *Dec) Scale +} + +var bigInt = [...]*big.Int{ + big.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4), + big.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8), big.NewInt(9), + big.NewInt(10), +} + +var exp10cache [64]big.Int = func() [64]big.Int { + e10, e10i := [64]big.Int{}, bigInt[1] + for i, _ := range e10 { + e10[i].Set(e10i) + e10i = new(big.Int).Mul(e10i, bigInt[10]) + } + return e10 +}() + +// NewDec allocates and returns a new Dec set to the given int64 unscaled value +// and scale. +func NewDec(unscaled int64, scale Scale) *Dec { + return new(Dec).SetUnscaled(unscaled).SetScale(scale) +} + +// NewDecBig allocates and returns a new Dec set to the given *big.Int unscaled +// value and scale. +func NewDecBig(unscaled *big.Int, scale Scale) *Dec { + return new(Dec).SetUnscaledBig(unscaled).SetScale(scale) +} + +// Scale returns the scale of x. +func (x *Dec) Scale() Scale { + return x.scale +} + +// Unscaled returns the unscaled value of x for u and true for ok when the +// unscaled value can be represented as int64; otherwise it returns an undefined +// int64 value for u and false for ok. Use x.UnscaledBig().Int64() to avoid +// checking the validity of the value when the check is known to be redundant. +func (x *Dec) Unscaled() (u int64, ok bool) { + u = x.unscaled.Int64() + var i big.Int + ok = i.SetInt64(u).Cmp(&x.unscaled) == 0 + return +} + +// UnscaledBig returns the unscaled value of x as *big.Int. +func (x *Dec) UnscaledBig() *big.Int { + return &x.unscaled +} + +// SetScale sets the scale of z, with the unscaled value unchanged, and returns +// z. +// The mathematical value of the Dec changes as if it was multiplied by +// 10**(oldscale-scale). +func (z *Dec) SetScale(scale Scale) *Dec { + z.scale = scale + return z +} + +// SetUnscaled sets the unscaled value of z, with the scale unchanged, and +// returns z. +func (z *Dec) SetUnscaled(unscaled int64) *Dec { + z.unscaled.SetInt64(unscaled) + return z +} + +// SetUnscaledBig sets the unscaled value of z, with the scale unchanged, and +// returns z. +func (z *Dec) SetUnscaledBig(unscaled *big.Int) *Dec { + z.unscaled.Set(unscaled) + return z +} + +// Set sets z to the value of x and returns z. +// It does nothing if z == x. +func (z *Dec) Set(x *Dec) *Dec { + if z != x { + z.SetUnscaledBig(x.UnscaledBig()) + z.SetScale(x.Scale()) + } + return z +} + +// Sign returns: +// +// -1 if x < 0 +// 0 if x == 0 +// +1 if x > 0 +// +func (x *Dec) Sign() int { + return x.UnscaledBig().Sign() +} + +// Neg sets z to -x and returns z. +func (z *Dec) Neg(x *Dec) *Dec { + z.SetScale(x.Scale()) + z.UnscaledBig().Neg(x.UnscaledBig()) + return z +} + +// Cmp compares x and y and returns: +// +// -1 if x < y +// 0 if x == y +// +1 if x > y +// +func (x *Dec) Cmp(y *Dec) int { + xx, yy := upscale(x, y) + return xx.UnscaledBig().Cmp(yy.UnscaledBig()) +} + +// Abs sets z to |x| (the absolute value of x) and returns z. +func (z *Dec) Abs(x *Dec) *Dec { + z.SetScale(x.Scale()) + z.UnscaledBig().Abs(x.UnscaledBig()) + return z +} + +// Add sets z to the sum x+y and returns z. +// The scale of z is the greater of the scales of x and y. +func (z *Dec) Add(x, y *Dec) *Dec { + xx, yy := upscale(x, y) + z.SetScale(xx.Scale()) + z.UnscaledBig().Add(xx.UnscaledBig(), yy.UnscaledBig()) + return z +} + +// Sub sets z to the difference x-y and returns z. +// The scale of z is the greater of the scales of x and y. +func (z *Dec) Sub(x, y *Dec) *Dec { + xx, yy := upscale(x, y) + z.SetScale(xx.Scale()) + z.UnscaledBig().Sub(xx.UnscaledBig(), yy.UnscaledBig()) + return z +} + +// Mul sets z to the product x*y and returns z. +// The scale of z is the sum of the scales of x and y. +func (z *Dec) Mul(x, y *Dec) *Dec { + z.SetScale(x.Scale() + y.Scale()) + z.UnscaledBig().Mul(x.UnscaledBig(), y.UnscaledBig()) + return z +} + +// Round sets z to the value of x rounded to Scale s using Rounder r, and +// returns z. +func (z *Dec) Round(x *Dec, s Scale, r Rounder) *Dec { + return z.QuoRound(x, NewDec(1, 0), s, r) +} + +// QuoRound sets z to the quotient x/y, rounded using the given Rounder to the +// specified scale. +// +// If the rounder is RoundExact but the result can not be expressed exactly at +// the specified scale, QuoRound returns nil, and the value of z is undefined. +// +// There is no corresponding Div method; the equivalent can be achieved through +// the choice of Rounder used. +// +func (z *Dec) QuoRound(x, y *Dec, s Scale, r Rounder) *Dec { + return z.quo(x, y, sclr{s}, r) +} + +func (z *Dec) quo(x, y *Dec, s scaler, r Rounder) *Dec { + scl := s.Scale(x, y) + var zzz *Dec + if r.UseRemainder() { + zz, rA, rB := new(Dec).quoRem(x, y, scl, true, new(big.Int), new(big.Int)) + zzz = r.Round(new(Dec), zz, rA, rB) + } else { + zz, _, _ := new(Dec).quoRem(x, y, scl, false, nil, nil) + zzz = r.Round(new(Dec), zz, nil, nil) + } + if zzz == nil { + return nil + } + return z.Set(zzz) +} + +// QuoExact sets z to the quotient x/y and returns z when x/y is a finite +// decimal. Otherwise it returns nil and the value of z is undefined. +// +// The scale of a non-nil result is "x.Scale() - y.Scale()" or greater; it is +// calculated so that the remainder will be zero whenever x/y is a finite +// decimal. +func (z *Dec) QuoExact(x, y *Dec) *Dec { + return z.quo(x, y, scaleQuoExact{}, RoundExact) +} + +// quoRem sets z to the quotient x/y with the scale s, and if useRem is true, +// it sets remNum and remDen to the numerator and denominator of the remainder. +// It returns z, remNum and remDen. +// +// The remainder is normalized to the range -1 < r < 1 to simplify rounding; +// that is, the results satisfy the following equation: +// +// x / y = z + (remNum/remDen) * 10**(-z.Scale()) +// +// See Rounder for more details about rounding. +// +func (z *Dec) quoRem(x, y *Dec, s Scale, useRem bool, + remNum, remDen *big.Int) (*Dec, *big.Int, *big.Int) { + // difference (required adjustment) compared to "canonical" result scale + shift := s - (x.Scale() - y.Scale()) + // pointers to adjusted unscaled dividend and divisor + var ix, iy *big.Int + switch { + case shift > 0: + // increased scale: decimal-shift dividend left + ix = new(big.Int).Mul(x.UnscaledBig(), exp10(shift)) + iy = y.UnscaledBig() + case shift < 0: + // decreased scale: decimal-shift divisor left + ix = x.UnscaledBig() + iy = new(big.Int).Mul(y.UnscaledBig(), exp10(-shift)) + default: + ix = x.UnscaledBig() + iy = y.UnscaledBig() + } + // save a copy of iy in case it to be overwritten with the result + iy2 := iy + if iy == z.UnscaledBig() { + iy2 = new(big.Int).Set(iy) + } + // set scale + z.SetScale(s) + // set unscaled + if useRem { + // Int division + _, intr := z.UnscaledBig().QuoRem(ix, iy, new(big.Int)) + // set remainder + remNum.Set(intr) + remDen.Set(iy2) + } else { + z.UnscaledBig().Quo(ix, iy) + } + return z, remNum, remDen +} + +type sclr struct{ s Scale } + +func (s sclr) Scale(x, y *Dec) Scale { + return s.s +} + +type scaleQuoExact struct{} + +func (sqe scaleQuoExact) Scale(x, y *Dec) Scale { + rem := new(big.Rat).SetFrac(x.UnscaledBig(), y.UnscaledBig()) + f2, f5 := factor2(rem.Denom()), factor(rem.Denom(), bigInt[5]) + var f10 Scale + if f2 > f5 { + f10 = Scale(f2) + } else { + f10 = Scale(f5) + } + return x.Scale() - y.Scale() + f10 +} + +func factor(n *big.Int, p *big.Int) int { + // could be improved for large factors + d, f := n, 0 + for { + dd, dm := new(big.Int).DivMod(d, p, new(big.Int)) + if dm.Sign() == 0 { + f++ + d = dd + } else { + break + } + } + return f +} + +func factor2(n *big.Int) int { + // could be improved for large factors + f := 0 + for ; n.Bit(f) == 0; f++ { + } + return f +} + +func upscale(a, b *Dec) (*Dec, *Dec) { + if a.Scale() == b.Scale() { + return a, b + } + if a.Scale() > b.Scale() { + bb := b.rescale(a.Scale()) + return a, bb + } + aa := a.rescale(b.Scale()) + return aa, b +} + +func exp10(x Scale) *big.Int { + if int(x) < len(exp10cache) { + return &exp10cache[int(x)] + } + return new(big.Int).Exp(bigInt[10], big.NewInt(int64(x)), nil) +} + +func (x *Dec) rescale(newScale Scale) *Dec { + shift := newScale - x.Scale() + switch { + case shift < 0: + e := exp10(-shift) + return NewDecBig(new(big.Int).Quo(x.UnscaledBig(), e), newScale) + case shift > 0: + e := exp10(shift) + return NewDecBig(new(big.Int).Mul(x.UnscaledBig(), e), newScale) + } + return x +} + +var zeros = []byte("00000000000000000000000000000000" + + "00000000000000000000000000000000") +var lzeros = Scale(len(zeros)) + +func appendZeros(s []byte, n Scale) []byte { + for i := Scale(0); i < n; i += lzeros { + if n > i+lzeros { + s = append(s, zeros...) + } else { + s = append(s, zeros[0:n-i]...) + } + } + return s +} + +func (x *Dec) String() string { + if x == nil { + return "" + } + scale := x.Scale() + s := []byte(x.UnscaledBig().String()) + if scale <= 0 { + if scale != 0 && x.unscaled.Sign() != 0 { + s = appendZeros(s, -scale) + } + return string(s) + } + negbit := Scale(-((x.Sign() - 1) / 2)) + // scale > 0 + lens := Scale(len(s)) + if lens-negbit <= scale { + ss := make([]byte, 0, scale+2) + if negbit == 1 { + ss = append(ss, '-') + } + ss = append(ss, '0', '.') + ss = appendZeros(ss, scale-lens+negbit) + ss = append(ss, s[negbit:]...) + return string(ss) + } + // lens > scale + ss := make([]byte, 0, lens+1) + ss = append(ss, s[:lens-scale]...) + ss = append(ss, '.') + ss = append(ss, s[lens-scale:]...) + return string(ss) +} + +// Format is a support routine for fmt.Formatter. It accepts the decimal +// formats 'd' and 'f', and handles both equivalently. +// Width, precision, flags and bases 2, 8, 16 are not supported. +func (x *Dec) Format(s fmt.State, ch rune) { + if ch != 'd' && ch != 'f' && ch != 'v' && ch != 's' { + fmt.Fprintf(s, "%%!%c(dec.Dec=%s)", ch, x.String()) + return + } + fmt.Fprintf(s, x.String()) +} + +func (z *Dec) scan(r io.RuneScanner) (*Dec, error) { + unscaled := make([]byte, 0, 256) // collects chars of unscaled as bytes + dp, dg := -1, -1 // indexes of decimal point, first digit +loop: + for { + ch, _, err := r.ReadRune() + if err == io.EOF { + break loop + } + if err != nil { + return nil, err + } + switch { + case ch == '+' || ch == '-': + if len(unscaled) > 0 || dp >= 0 { // must be first character + r.UnreadRune() + break loop + } + case ch == '.': + if dp >= 0 { + r.UnreadRune() + break loop + } + dp = len(unscaled) + continue // don't add to unscaled + case ch >= '0' && ch <= '9': + if dg == -1 { + dg = len(unscaled) + } + default: + r.UnreadRune() + break loop + } + unscaled = append(unscaled, byte(ch)) + } + if dg == -1 { + return nil, fmt.Errorf("no digits read") + } + if dp >= 0 { + z.SetScale(Scale(len(unscaled) - dp)) + } else { + z.SetScale(0) + } + _, ok := z.UnscaledBig().SetString(string(unscaled), 10) + if !ok { + return nil, fmt.Errorf("invalid decimal: %s", string(unscaled)) + } + return z, nil +} + +// SetString sets z to the value of s, interpreted as a decimal (base 10), +// and returns z and a boolean indicating success. The scale of z is the +// number of digits after the decimal point (including any trailing 0s), +// or 0 if there is no decimal point. If SetString fails, the value of z +// is undefined but the returned value is nil. +func (z *Dec) SetString(s string) (*Dec, bool) { + r := strings.NewReader(s) + _, err := z.scan(r) + if err != nil { + return nil, false + } + _, _, err = r.ReadRune() + if err != io.EOF { + return nil, false + } + // err == io.EOF => scan consumed all of s + return z, true +} + +// Scan is a support routine for fmt.Scanner; it sets z to the value of +// the scanned number. It accepts the decimal formats 'd' and 'f', and +// handles both equivalently. Bases 2, 8, 16 are not supported. +// The scale of z is the number of digits after the decimal point +// (including any trailing 0s), or 0 if there is no decimal point. +func (z *Dec) Scan(s fmt.ScanState, ch rune) error { + if ch != 'd' && ch != 'f' && ch != 's' && ch != 'v' { + return fmt.Errorf("Dec.Scan: invalid verb '%c'", ch) + } + s.SkipSpace() + _, err := z.scan(s) + return err +} + +// Gob encoding version +const decGobVersion byte = 1 + +func scaleBytes(s Scale) []byte { + buf := make([]byte, scaleSize) + i := scaleSize + for j := 0; j < scaleSize; j++ { + i-- + buf[i] = byte(s) + s >>= 8 + } + return buf +} + +func scale(b []byte) (s Scale) { + for j := 0; j < scaleSize; j++ { + s <<= 8 + s |= Scale(b[j]) + } + return +} + +// GobEncode implements the gob.GobEncoder interface. +func (x *Dec) GobEncode() ([]byte, error) { + buf, err := x.UnscaledBig().GobEncode() + if err != nil { + return nil, err + } + buf = append(append(buf, scaleBytes(x.Scale())...), decGobVersion) + return buf, nil +} + +// GobDecode implements the gob.GobDecoder interface. +func (z *Dec) GobDecode(buf []byte) error { + if len(buf) == 0 { + return fmt.Errorf("Dec.GobDecode: no data") + } + b := buf[len(buf)-1] + if b != decGobVersion { + return fmt.Errorf("Dec.GobDecode: encoding version %d not supported", b) + } + l := len(buf) - scaleSize - 1 + err := z.UnscaledBig().GobDecode(buf[:l]) + if err != nil { + return err + } + z.SetScale(scale(buf[l : l+scaleSize])) + return nil +} + +// MarshalText implements the encoding.TextMarshaler interface. +func (x *Dec) MarshalText() ([]byte, error) { + return []byte(x.String()), nil +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface. +func (z *Dec) UnmarshalText(data []byte) error { + _, ok := z.SetString(string(data)) + if !ok { + return fmt.Errorf("invalid inf.Dec") + } + return nil +} diff --git a/vendor/gopkg.in/inf.v0/dec_go1_2_test.go b/vendor/gopkg.in/inf.v0/dec_go1_2_test.go new file mode 100644 index 00000000..5df0f7b5 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/dec_go1_2_test.go @@ -0,0 +1,33 @@ +// +build go1.2 + +package inf + +import ( + "encoding" + "encoding/json" + "testing" +) + +var _ encoding.TextMarshaler = new(Dec) +var _ encoding.TextUnmarshaler = new(Dec) + +type Obj struct { + Val *Dec +} + +func TestDecJsonMarshalUnmarshal(t *testing.T) { + o := Obj{Val: NewDec(123, 2)} + js, err := json.Marshal(o) + if err != nil { + t.Fatalf("json.Marshal(%v): got %v, want ok", o, err) + } + o2 := &Obj{} + err = json.Unmarshal(js, o2) + if err != nil { + t.Fatalf("json.Unmarshal(%#q): got %v, want ok", js, err) + } + if o.Val.Scale() != o2.Val.Scale() || + o.Val.UnscaledBig().Cmp(o2.Val.UnscaledBig()) != 0 { + t.Fatalf("json.Unmarshal(json.Marshal(%v)): want %v, got %v", o, o, o2) + } +} diff --git a/vendor/gopkg.in/inf.v0/dec_internal_test.go b/vendor/gopkg.in/inf.v0/dec_internal_test.go new file mode 100644 index 00000000..d4fbe3e5 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/dec_internal_test.go @@ -0,0 +1,40 @@ +package inf + +import ( + "math/big" + "testing" +) + +var decQuoRemZZZ = []struct { + z, x, y *Dec + r *big.Rat + srA, srB int +}{ + // basic examples + {NewDec(1, 0), NewDec(2, 0), NewDec(2, 0), big.NewRat(0, 1), 0, 1}, + {NewDec(15, 1), NewDec(3, 0), NewDec(2, 0), big.NewRat(0, 1), 0, 1}, + {NewDec(1, 1), NewDec(1, 0), NewDec(10, 0), big.NewRat(0, 1), 0, 1}, + {NewDec(0, 0), NewDec(2, 0), NewDec(3, 0), big.NewRat(2, 3), 1, 1}, + {NewDec(0, 0), NewDec(2, 0), NewDec(6, 0), big.NewRat(1, 3), 1, 1}, + {NewDec(1, 1), NewDec(2, 0), NewDec(12, 0), big.NewRat(2, 3), 1, 1}, + + // examples from the Go Language Specification + {NewDec(1, 0), NewDec(5, 0), NewDec(3, 0), big.NewRat(2, 3), 1, 1}, + {NewDec(-1, 0), NewDec(-5, 0), NewDec(3, 0), big.NewRat(-2, 3), -1, 1}, + {NewDec(-1, 0), NewDec(5, 0), NewDec(-3, 0), big.NewRat(-2, 3), 1, -1}, + {NewDec(1, 0), NewDec(-5, 0), NewDec(-3, 0), big.NewRat(2, 3), -1, -1}, +} + +func TestDecQuoRem(t *testing.T) { + for i, a := range decQuoRemZZZ { + z, rA, rB := new(Dec), new(big.Int), new(big.Int) + s := scaleQuoExact{}.Scale(a.x, a.y) + z.quoRem(a.x, a.y, s, true, rA, rB) + if a.z.Cmp(z) != 0 || a.r.Cmp(new(big.Rat).SetFrac(rA, rB)) != 0 { + t.Errorf("#%d QuoRemZZZ got %v, %v, %v; expected %v, %v", i, z, rA, rB, a.z, a.r) + } + if a.srA != rA.Sign() || a.srB != rB.Sign() { + t.Errorf("#%d QuoRemZZZ wrong signs, got %v, %v; expected %v, %v", i, rA.Sign(), rB.Sign(), a.srA, a.srB) + } + } +} diff --git a/vendor/gopkg.in/inf.v0/dec_test.go b/vendor/gopkg.in/inf.v0/dec_test.go new file mode 100644 index 00000000..e4b09b3f --- /dev/null +++ b/vendor/gopkg.in/inf.v0/dec_test.go @@ -0,0 +1,379 @@ +package inf_test + +import ( + "bytes" + "encoding/gob" + "fmt" + "math/big" + "strings" + "testing" + + "gopkg.in/inf.v0" +) + +type decFunZZ func(z, x, y *inf.Dec) *inf.Dec +type decArgZZ struct { + z, x, y *inf.Dec +} + +var decSumZZ = []decArgZZ{ + {inf.NewDec(0, 0), inf.NewDec(0, 0), inf.NewDec(0, 0)}, + {inf.NewDec(1, 0), inf.NewDec(1, 0), inf.NewDec(0, 0)}, + {inf.NewDec(1111111110, 0), inf.NewDec(123456789, 0), inf.NewDec(987654321, 0)}, + {inf.NewDec(-1, 0), inf.NewDec(-1, 0), inf.NewDec(0, 0)}, + {inf.NewDec(864197532, 0), inf.NewDec(-123456789, 0), inf.NewDec(987654321, 0)}, + {inf.NewDec(-1111111110, 0), inf.NewDec(-123456789, 0), inf.NewDec(-987654321, 0)}, + {inf.NewDec(12, 2), inf.NewDec(1, 1), inf.NewDec(2, 2)}, +} + +var decProdZZ = []decArgZZ{ + {inf.NewDec(0, 0), inf.NewDec(0, 0), inf.NewDec(0, 0)}, + {inf.NewDec(0, 0), inf.NewDec(1, 0), inf.NewDec(0, 0)}, + {inf.NewDec(1, 0), inf.NewDec(1, 0), inf.NewDec(1, 0)}, + {inf.NewDec(-991*991, 0), inf.NewDec(991, 0), inf.NewDec(-991, 0)}, + {inf.NewDec(2, 3), inf.NewDec(1, 1), inf.NewDec(2, 2)}, + {inf.NewDec(2, -3), inf.NewDec(1, -1), inf.NewDec(2, -2)}, + {inf.NewDec(2, 3), inf.NewDec(1, 1), inf.NewDec(2, 2)}, +} + +func TestDecSignZ(t *testing.T) { + var zero inf.Dec + for _, a := range decSumZZ { + s := a.z.Sign() + e := a.z.Cmp(&zero) + if s != e { + t.Errorf("got %d; want %d for z = %v", s, e, a.z) + } + } +} + +func TestDecAbsZ(t *testing.T) { + var zero inf.Dec + for _, a := range decSumZZ { + var z inf.Dec + z.Abs(a.z) + var e inf.Dec + e.Set(a.z) + if e.Cmp(&zero) < 0 { + e.Sub(&zero, &e) + } + if z.Cmp(&e) != 0 { + t.Errorf("got z = %v; want %v", z, e) + } + } +} + +func testDecFunZZ(t *testing.T, msg string, f decFunZZ, a decArgZZ) { + var z inf.Dec + f(&z, a.x, a.y) + if (&z).Cmp(a.z) != 0 { + t.Errorf("%s%+v\n\tgot z = %v; want %v", msg, a, &z, a.z) + } +} + +func TestDecSumZZ(t *testing.T) { + AddZZ := func(z, x, y *inf.Dec) *inf.Dec { return z.Add(x, y) } + SubZZ := func(z, x, y *inf.Dec) *inf.Dec { return z.Sub(x, y) } + for _, a := range decSumZZ { + arg := a + testDecFunZZ(t, "AddZZ", AddZZ, arg) + + arg = decArgZZ{a.z, a.y, a.x} + testDecFunZZ(t, "AddZZ symmetric", AddZZ, arg) + + arg = decArgZZ{a.x, a.z, a.y} + testDecFunZZ(t, "SubZZ", SubZZ, arg) + + arg = decArgZZ{a.y, a.z, a.x} + testDecFunZZ(t, "SubZZ symmetric", SubZZ, arg) + } +} + +func TestDecProdZZ(t *testing.T) { + MulZZ := func(z, x, y *inf.Dec) *inf.Dec { return z.Mul(x, y) } + for _, a := range decProdZZ { + arg := a + testDecFunZZ(t, "MulZZ", MulZZ, arg) + + arg = decArgZZ{a.z, a.y, a.x} + testDecFunZZ(t, "MulZZ symmetric", MulZZ, arg) + } +} + +var decUnscaledTests = []struct { + d *inf.Dec + u int64 // ignored when ok == false + ok bool +}{ + {new(inf.Dec), 0, true}, + {inf.NewDec(-1<<63, 0), -1 << 63, true}, + {inf.NewDec(-(-1<<63 + 1), 0), -(-1<<63 + 1), true}, + {new(inf.Dec).Neg(inf.NewDec(-1<<63, 0)), 0, false}, + {new(inf.Dec).Sub(inf.NewDec(-1<<63, 0), inf.NewDec(1, 0)), 0, false}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), 0, false}, +} + +func TestDecUnscaled(t *testing.T) { + for i, tt := range decUnscaledTests { + u, ok := tt.d.Unscaled() + if ok != tt.ok { + t.Errorf("#%d Unscaled: got %v, expected %v", i, ok, tt.ok) + } else if ok && u != tt.u { + t.Errorf("#%d Unscaled: got %v, expected %v", i, u, tt.u) + } + } +} + +var decRoundTests = [...]struct { + in *inf.Dec + s inf.Scale + r inf.Rounder + exp *inf.Dec +}{ + {inf.NewDec(123424999999999993, 15), 2, inf.RoundHalfUp, inf.NewDec(12342, 2)}, + {inf.NewDec(123425000000000001, 15), 2, inf.RoundHalfUp, inf.NewDec(12343, 2)}, + {inf.NewDec(123424999999999993, 15), 15, inf.RoundHalfUp, inf.NewDec(123424999999999993, 15)}, + {inf.NewDec(123424999999999993, 15), 16, inf.RoundHalfUp, inf.NewDec(1234249999999999930, 16)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -1, inf.RoundHalfUp, inf.NewDec(1844674407370955162, -1)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -2, inf.RoundHalfUp, inf.NewDec(184467440737095516, -2)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -3, inf.RoundHalfUp, inf.NewDec(18446744073709552, -3)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -4, inf.RoundHalfUp, inf.NewDec(1844674407370955, -4)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -5, inf.RoundHalfUp, inf.NewDec(184467440737096, -5)}, + {inf.NewDecBig(new(big.Int).Lsh(big.NewInt(1), 64), 0), -6, inf.RoundHalfUp, inf.NewDec(18446744073710, -6)}, +} + +func TestDecRound(t *testing.T) { + for i, tt := range decRoundTests { + z := new(inf.Dec).Round(tt.in, tt.s, tt.r) + if tt.exp.Cmp(z) != 0 { + t.Errorf("#%d Round got %v; expected %v", i, z, tt.exp) + } + } +} + +var decStringTests = []struct { + in string + out string + val int64 + scale inf.Scale // skip SetString if negative + ok bool + scanOk bool +}{ + {in: "", ok: false, scanOk: false}, + {in: "a", ok: false, scanOk: false}, + {in: "z", ok: false, scanOk: false}, + {in: "+", ok: false, scanOk: false}, + {in: "-", ok: false, scanOk: false}, + {in: "g", ok: false, scanOk: false}, + {in: ".", ok: false, scanOk: false}, + {in: ".-0", ok: false, scanOk: false}, + {in: ".+0", ok: false, scanOk: false}, + // Scannable but not SetStringable + {"0b", "ignored", 0, 0, false, true}, + {"0x", "ignored", 0, 0, false, true}, + {"0xg", "ignored", 0, 0, false, true}, + {"0.0g", "ignored", 0, 1, false, true}, + // examples from godoc for Dec + {"0", "0", 0, 0, true, true}, + {"0.00", "0.00", 0, 2, true, true}, + {"ignored", "0", 0, -2, true, false}, + {"1", "1", 1, 0, true, true}, + {"1.00", "1.00", 100, 2, true, true}, + {"10", "10", 10, 0, true, true}, + {"ignored", "10", 1, -1, true, false}, + // other tests + {"+0", "0", 0, 0, true, true}, + {"-0", "0", 0, 0, true, true}, + {"0.0", "0.0", 0, 1, true, true}, + {"0.1", "0.1", 1, 1, true, true}, + {"0.", "0", 0, 0, true, true}, + {"-10", "-10", -1, -1, true, true}, + {"-1", "-1", -1, 0, true, true}, + {"-0.1", "-0.1", -1, 1, true, true}, + {"-0.01", "-0.01", -1, 2, true, true}, + {"+0.", "0", 0, 0, true, true}, + {"-0.", "0", 0, 0, true, true}, + {".0", "0.0", 0, 1, true, true}, + {"+.0", "0.0", 0, 1, true, true}, + {"-.0", "0.0", 0, 1, true, true}, + {"0.0000000000", "0.0000000000", 0, 10, true, true}, + {"0.0000000001", "0.0000000001", 1, 10, true, true}, + {"-0.0000000000", "0.0000000000", 0, 10, true, true}, + {"-0.0000000001", "-0.0000000001", -1, 10, true, true}, + {"-10", "-10", -10, 0, true, true}, + {"+10", "10", 10, 0, true, true}, + {"00", "0", 0, 0, true, true}, + {"023", "23", 23, 0, true, true}, // decimal, not octal + {"-02.3", "-2.3", -23, 1, true, true}, // decimal, not octal +} + +func TestDecGetString(t *testing.T) { + z := new(inf.Dec) + for i, test := range decStringTests { + if !test.ok { + continue + } + z.SetUnscaled(test.val) + z.SetScale(test.scale) + + s := z.String() + if s != test.out { + t.Errorf("#%da got %s; want %s", i, s, test.out) + } + + s = fmt.Sprintf("%d", z) + if s != test.out { + t.Errorf("#%db got %s; want %s", i, s, test.out) + } + } +} + +func TestDecSetString(t *testing.T) { + tmp := new(inf.Dec) + for i, test := range decStringTests { + if test.scale < 0 { + // SetString only supports scale >= 0 + continue + } + // initialize to a non-zero value so that issues with parsing + // 0 are detected + tmp.Set(inf.NewDec(1234567890, 123)) + n1, ok1 := new(inf.Dec).SetString(test.in) + n2, ok2 := tmp.SetString(test.in) + expected := inf.NewDec(test.val, test.scale) + if ok1 != test.ok || ok2 != test.ok { + t.Errorf("#%d (input '%s') ok incorrect (should be %t)", i, test.in, test.ok) + continue + } + if !ok1 { + if n1 != nil { + t.Errorf("#%d (input '%s') n1 != nil", i, test.in) + } + continue + } + if !ok2 { + if n2 != nil { + t.Errorf("#%d (input '%s') n2 != nil", i, test.in) + } + continue + } + + if n1.Cmp(expected) != 0 { + t.Errorf("#%d (input '%s') got: %s want: %d", i, test.in, n1, test.val) + } + if n2.Cmp(expected) != 0 { + t.Errorf("#%d (input '%s') got: %s want: %d", i, test.in, n2, test.val) + } + } +} + +func TestDecScan(t *testing.T) { + tmp := new(inf.Dec) + for i, test := range decStringTests { + if test.scale < 0 { + // SetString only supports scale >= 0 + continue + } + // initialize to a non-zero value so that issues with parsing + // 0 are detected + tmp.Set(inf.NewDec(1234567890, 123)) + n1, n2 := new(inf.Dec), tmp + nn1, err1 := fmt.Sscan(test.in, n1) + nn2, err2 := fmt.Sscan(test.in, n2) + if !test.scanOk { + if err1 == nil || err2 == nil { + t.Errorf("#%d (input '%s') ok incorrect, should be %t", i, test.in, test.scanOk) + } + continue + } + expected := inf.NewDec(test.val, test.scale) + if nn1 != 1 || err1 != nil || nn2 != 1 || err2 != nil { + t.Errorf("#%d (input '%s') error %d %v, %d %v", i, test.in, nn1, err1, nn2, err2) + continue + } + if n1.Cmp(expected) != 0 { + t.Errorf("#%d (input '%s') got: %s want: %d", i, test.in, n1, test.val) + } + if n2.Cmp(expected) != 0 { + t.Errorf("#%d (input '%s') got: %s want: %d", i, test.in, n2, test.val) + } + } +} + +var decScanNextTests = []struct { + in string + ok bool + next rune +}{ + {"", false, 0}, + {"a", false, 'a'}, + {"z", false, 'z'}, + {"+", false, 0}, + {"-", false, 0}, + {"g", false, 'g'}, + {".", false, 0}, + {".-0", false, '-'}, + {".+0", false, '+'}, + {"0b", true, 'b'}, + {"0x", true, 'x'}, + {"0xg", true, 'x'}, + {"0.0g", true, 'g'}, +} + +func TestDecScanNext(t *testing.T) { + for i, test := range decScanNextTests { + rdr := strings.NewReader(test.in) + n1 := new(inf.Dec) + nn1, _ := fmt.Fscan(rdr, n1) + if (test.ok && nn1 == 0) || (!test.ok && nn1 > 0) { + t.Errorf("#%d (input '%s') ok incorrect should be %t", i, test.in, test.ok) + continue + } + r := rune(0) + nn2, err := fmt.Fscanf(rdr, "%c", &r) + if test.next != r { + t.Errorf("#%d (input '%s') next incorrect, got %c should be %c, %d, %v", i, test.in, r, test.next, nn2, err) + } + } +} + +var decGobEncodingTests = []string{ + "0", + "1", + "2", + "10", + "42", + "1234567890", + "298472983472983471903246121093472394872319615612417471234712061", +} + +func TestDecGobEncoding(t *testing.T) { + var medium bytes.Buffer + enc := gob.NewEncoder(&medium) + dec := gob.NewDecoder(&medium) + for i, test := range decGobEncodingTests { + for j := 0; j < 2; j++ { + for k := inf.Scale(-5); k <= 5; k++ { + medium.Reset() // empty buffer for each test case (in case of failures) + stest := test + if j != 0 { + // negative numbers + stest = "-" + test + } + var tx inf.Dec + tx.SetString(stest) + tx.SetScale(k) // test with positive, negative, and zero scale + if err := enc.Encode(&tx); err != nil { + t.Errorf("#%d%c: encoding failed: %s", i, 'a'+j, err) + } + var rx inf.Dec + if err := dec.Decode(&rx); err != nil { + t.Errorf("#%d%c: decoding failed: %s", i, 'a'+j, err) + } + if rx.Cmp(&tx) != 0 { + t.Errorf("#%d%c: transmission failed: got %s want %s", i, 'a'+j, &rx, &tx) + } + } + } + } +} diff --git a/vendor/gopkg.in/inf.v0/example_test.go b/vendor/gopkg.in/inf.v0/example_test.go new file mode 100644 index 00000000..fa1e54d1 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/example_test.go @@ -0,0 +1,62 @@ +package inf_test + +import ( + "fmt" + "log" +) + +import "gopkg.in/inf.v0" + +func ExampleDec_SetString() { + d := new(inf.Dec) + d.SetString("012345.67890") // decimal; leading 0 ignored; trailing 0 kept + fmt.Println(d) + // Output: 12345.67890 +} + +func ExampleDec_Scan() { + // The Scan function is rarely used directly; + // the fmt package recognizes it as an implementation of fmt.Scanner. + d := new(inf.Dec) + _, err := fmt.Sscan("184467440.73709551617", d) + if err != nil { + log.Println("error scanning value:", err) + } else { + fmt.Println(d) + } + // Output: 184467440.73709551617 +} + +func ExampleDec_QuoRound_scale2RoundDown() { + // 10 / 3 is an infinite decimal; it has no exact Dec representation + x, y := inf.NewDec(10, 0), inf.NewDec(3, 0) + // use 2 digits beyond the decimal point, round towards 0 + z := new(inf.Dec).QuoRound(x, y, 2, inf.RoundDown) + fmt.Println(z) + // Output: 3.33 +} + +func ExampleDec_QuoRound_scale2RoundCeil() { + // -42 / 400 is an finite decimal with 3 digits beyond the decimal point + x, y := inf.NewDec(-42, 0), inf.NewDec(400, 0) + // use 2 digits beyond decimal point, round towards positive infinity + z := new(inf.Dec).QuoRound(x, y, 2, inf.RoundCeil) + fmt.Println(z) + // Output: -0.10 +} + +func ExampleDec_QuoExact_ok() { + // 1 / 25 is a finite decimal; it has exact Dec representation + x, y := inf.NewDec(1, 0), inf.NewDec(25, 0) + z := new(inf.Dec).QuoExact(x, y) + fmt.Println(z) + // Output: 0.04 +} + +func ExampleDec_QuoExact_fail() { + // 1 / 3 is an infinite decimal; it has no exact Dec representation + x, y := inf.NewDec(1, 0), inf.NewDec(3, 0) + z := new(inf.Dec).QuoExact(x, y) + fmt.Println(z) + // Output: +} diff --git a/vendor/gopkg.in/inf.v0/rounder.go b/vendor/gopkg.in/inf.v0/rounder.go new file mode 100644 index 00000000..3a97ef52 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/rounder.go @@ -0,0 +1,145 @@ +package inf + +import ( + "math/big" +) + +// Rounder represents a method for rounding the (possibly infinite decimal) +// result of a division to a finite Dec. It is used by Dec.Round() and +// Dec.Quo(). +// +// See the Example for results of using each Rounder with some sample values. +// +type Rounder rounder + +// See http://speleotrove.com/decimal/damodel.html#refround for more detailed +// definitions of these rounding modes. +var ( + RoundDown Rounder // towards 0 + RoundUp Rounder // away from 0 + RoundFloor Rounder // towards -infinity + RoundCeil Rounder // towards +infinity + RoundHalfDown Rounder // to nearest; towards 0 if same distance + RoundHalfUp Rounder // to nearest; away from 0 if same distance + RoundHalfEven Rounder // to nearest; even last digit if same distance +) + +// RoundExact is to be used in the case when rounding is not necessary. +// When used with Quo or Round, it returns the result verbatim when it can be +// expressed exactly with the given precision, and it returns nil otherwise. +// QuoExact is a shorthand for using Quo with RoundExact. +var RoundExact Rounder + +type rounder interface { + + // When UseRemainder() returns true, the Round() method is passed the + // remainder of the division, expressed as the numerator and denominator of + // a rational. + UseRemainder() bool + + // Round sets the rounded value of a quotient to z, and returns z. + // quo is rounded down (truncated towards zero) to the scale obtained from + // the Scaler in Quo(). + // + // When the remainder is not used, remNum and remDen are nil. + // When used, the remainder is normalized between -1 and 1; that is: + // + // -|remDen| < remNum < |remDen| + // + // remDen has the same sign as y, and remNum is zero or has the same sign + // as x. + Round(z, quo *Dec, remNum, remDen *big.Int) *Dec +} + +type rndr struct { + useRem bool + round func(z, quo *Dec, remNum, remDen *big.Int) *Dec +} + +func (r rndr) UseRemainder() bool { + return r.useRem +} + +func (r rndr) Round(z, quo *Dec, remNum, remDen *big.Int) *Dec { + return r.round(z, quo, remNum, remDen) +} + +var intSign = []*big.Int{big.NewInt(-1), big.NewInt(0), big.NewInt(1)} + +func roundHalf(f func(c int, odd uint) (roundUp bool)) func(z, q *Dec, rA, rB *big.Int) *Dec { + return func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + brA, brB := rA.BitLen(), rB.BitLen() + if brA < brB-1 { + // brA < brB-1 => |rA| < |rB/2| + return z + } + roundUp := false + srA, srB := rA.Sign(), rB.Sign() + s := srA * srB + if brA == brB-1 { + rA2 := new(big.Int).Lsh(rA, 1) + if s < 0 { + rA2.Neg(rA2) + } + roundUp = f(rA2.Cmp(rB)*srB, z.UnscaledBig().Bit(0)) + } else { + // brA > brB-1 => |rA| > |rB/2| + roundUp = true + } + if roundUp { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[s+1]) + } + return z + } +} + +func init() { + RoundExact = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + if rA.Sign() != 0 { + return nil + } + return z.Set(q) + }} + RoundDown = rndr{false, + func(z, q *Dec, rA, rB *big.Int) *Dec { + return z.Set(q) + }} + RoundUp = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign() != 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[rA.Sign()*rB.Sign()+1]) + } + return z + }} + RoundFloor = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign()*rB.Sign() < 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[0]) + } + return z + }} + RoundCeil = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign()*rB.Sign() > 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[2]) + } + return z + }} + RoundHalfDown = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c > 0 + })} + RoundHalfUp = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c >= 0 + })} + RoundHalfEven = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c > 0 || c == 0 && odd == 1 + })} +} diff --git a/vendor/gopkg.in/inf.v0/rounder_example_test.go b/vendor/gopkg.in/inf.v0/rounder_example_test.go new file mode 100644 index 00000000..803c1d7e --- /dev/null +++ b/vendor/gopkg.in/inf.v0/rounder_example_test.go @@ -0,0 +1,72 @@ +package inf_test + +import ( + "fmt" + "os" + "text/tabwriter" + + "gopkg.in/inf.v0" +) + +// This example displays the results of Dec.Round with each of the Rounders. +// +func ExampleRounder() { + var vals = []struct { + x string + s inf.Scale + }{ + {"-0.18", 1}, {"-0.15", 1}, {"-0.12", 1}, {"-0.10", 1}, + {"-0.08", 1}, {"-0.05", 1}, {"-0.02", 1}, {"0.00", 1}, + {"0.02", 1}, {"0.05", 1}, {"0.08", 1}, {"0.10", 1}, + {"0.12", 1}, {"0.15", 1}, {"0.18", 1}, + } + + var rounders = []struct { + name string + rounder inf.Rounder + }{ + {"RoundDown", inf.RoundDown}, {"RoundUp", inf.RoundUp}, + {"RoundCeil", inf.RoundCeil}, {"RoundFloor", inf.RoundFloor}, + {"RoundHalfDown", inf.RoundHalfDown}, {"RoundHalfUp", inf.RoundHalfUp}, + {"RoundHalfEven", inf.RoundHalfEven}, {"RoundExact", inf.RoundExact}, + } + + fmt.Println("The results of new(inf.Dec).Round(x, s, inf.RoundXXX):\n") + w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', tabwriter.AlignRight) + fmt.Fprint(w, "x\ts\t|\t") + for _, r := range rounders { + fmt.Fprintf(w, "%s\t", r.name[5:]) + } + fmt.Fprintln(w) + for _, v := range vals { + fmt.Fprintf(w, "%s\t%d\t|\t", v.x, v.s) + for _, r := range rounders { + x, _ := new(inf.Dec).SetString(v.x) + z := new(inf.Dec).Round(x, v.s, r.rounder) + fmt.Fprintf(w, "%d\t", z) + } + fmt.Fprintln(w) + } + w.Flush() + + // Output: + // The results of new(inf.Dec).Round(x, s, inf.RoundXXX): + // + // x s | Down Up Ceil Floor HalfDown HalfUp HalfEven Exact + // -0.18 1 | -0.1 -0.2 -0.1 -0.2 -0.2 -0.2 -0.2 + // -0.15 1 | -0.1 -0.2 -0.1 -0.2 -0.1 -0.2 -0.2 + // -0.12 1 | -0.1 -0.2 -0.1 -0.2 -0.1 -0.1 -0.1 + // -0.10 1 | -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 + // -0.08 1 | 0.0 -0.1 0.0 -0.1 -0.1 -0.1 -0.1 + // -0.05 1 | 0.0 -0.1 0.0 -0.1 0.0 -0.1 0.0 + // -0.02 1 | 0.0 -0.1 0.0 -0.1 0.0 0.0 0.0 + // 0.00 1 | 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + // 0.02 1 | 0.0 0.1 0.1 0.0 0.0 0.0 0.0 + // 0.05 1 | 0.0 0.1 0.1 0.0 0.0 0.1 0.0 + // 0.08 1 | 0.0 0.1 0.1 0.0 0.1 0.1 0.1 + // 0.10 1 | 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 + // 0.12 1 | 0.1 0.2 0.2 0.1 0.1 0.1 0.1 + // 0.15 1 | 0.1 0.2 0.2 0.1 0.1 0.2 0.2 + // 0.18 1 | 0.1 0.2 0.2 0.1 0.2 0.2 0.2 + +} diff --git a/vendor/gopkg.in/inf.v0/rounder_test.go b/vendor/gopkg.in/inf.v0/rounder_test.go new file mode 100644 index 00000000..d7e14c58 --- /dev/null +++ b/vendor/gopkg.in/inf.v0/rounder_test.go @@ -0,0 +1,109 @@ +package inf_test + +import ( + "math/big" + "testing" + + "gopkg.in/inf.v0" +) + +var decRounderInputs = [...]struct { + quo *inf.Dec + rA, rB *big.Int +}{ + // examples from go language spec + {inf.NewDec(1, 0), big.NewInt(2), big.NewInt(3)}, // 5 / 3 + {inf.NewDec(-1, 0), big.NewInt(-2), big.NewInt(3)}, // -5 / 3 + {inf.NewDec(-1, 0), big.NewInt(2), big.NewInt(-3)}, // 5 / -3 + {inf.NewDec(1, 0), big.NewInt(-2), big.NewInt(-3)}, // -5 / -3 + // examples from godoc + {inf.NewDec(-1, 1), big.NewInt(-8), big.NewInt(10)}, + {inf.NewDec(-1, 1), big.NewInt(-5), big.NewInt(10)}, + {inf.NewDec(-1, 1), big.NewInt(-2), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(-8), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(-5), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(-2), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(0), big.NewInt(1)}, + {inf.NewDec(0, 1), big.NewInt(2), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(5), big.NewInt(10)}, + {inf.NewDec(0, 1), big.NewInt(8), big.NewInt(10)}, + {inf.NewDec(1, 1), big.NewInt(2), big.NewInt(10)}, + {inf.NewDec(1, 1), big.NewInt(5), big.NewInt(10)}, + {inf.NewDec(1, 1), big.NewInt(8), big.NewInt(10)}, +} + +var decRounderResults = [...]struct { + rounder inf.Rounder + results [len(decRounderInputs)]*inf.Dec +}{ + {inf.RoundExact, [...]*inf.Dec{nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, + inf.NewDec(0, 1), nil, nil, nil, nil, nil, nil}}, + {inf.RoundDown, [...]*inf.Dec{ + inf.NewDec(1, 0), inf.NewDec(-1, 0), inf.NewDec(-1, 0), inf.NewDec(1, 0), + inf.NewDec(-1, 1), inf.NewDec(-1, 1), inf.NewDec(-1, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(0, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(1, 1), inf.NewDec(1, 1), inf.NewDec(1, 1)}}, + {inf.RoundUp, [...]*inf.Dec{ + inf.NewDec(2, 0), inf.NewDec(-2, 0), inf.NewDec(-2, 0), inf.NewDec(2, 0), + inf.NewDec(-2, 1), inf.NewDec(-2, 1), inf.NewDec(-2, 1), + inf.NewDec(-1, 1), inf.NewDec(-1, 1), inf.NewDec(-1, 1), + inf.NewDec(0, 1), + inf.NewDec(1, 1), inf.NewDec(1, 1), inf.NewDec(1, 1), + inf.NewDec(2, 1), inf.NewDec(2, 1), inf.NewDec(2, 1)}}, + {inf.RoundHalfDown, [...]*inf.Dec{ + inf.NewDec(2, 0), inf.NewDec(-2, 0), inf.NewDec(-2, 0), inf.NewDec(2, 0), + inf.NewDec(-2, 1), inf.NewDec(-1, 1), inf.NewDec(-1, 1), + inf.NewDec(-1, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(0, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(1, 1), + inf.NewDec(1, 1), inf.NewDec(1, 1), inf.NewDec(2, 1)}}, + {inf.RoundHalfUp, [...]*inf.Dec{ + inf.NewDec(2, 0), inf.NewDec(-2, 0), inf.NewDec(-2, 0), inf.NewDec(2, 0), + inf.NewDec(-2, 1), inf.NewDec(-2, 1), inf.NewDec(-1, 1), + inf.NewDec(-1, 1), inf.NewDec(-1, 1), inf.NewDec(0, 1), + inf.NewDec(0, 1), + inf.NewDec(0, 1), inf.NewDec(1, 1), inf.NewDec(1, 1), + inf.NewDec(1, 1), inf.NewDec(2, 1), inf.NewDec(2, 1)}}, + {inf.RoundHalfEven, [...]*inf.Dec{ + inf.NewDec(2, 0), inf.NewDec(-2, 0), inf.NewDec(-2, 0), inf.NewDec(2, 0), + inf.NewDec(-2, 1), inf.NewDec(-2, 1), inf.NewDec(-1, 1), + inf.NewDec(-1, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(0, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(1, 1), + inf.NewDec(1, 1), inf.NewDec(2, 1), inf.NewDec(2, 1)}}, + {inf.RoundFloor, [...]*inf.Dec{ + inf.NewDec(1, 0), inf.NewDec(-2, 0), inf.NewDec(-2, 0), inf.NewDec(1, 0), + inf.NewDec(-2, 1), inf.NewDec(-2, 1), inf.NewDec(-2, 1), + inf.NewDec(-1, 1), inf.NewDec(-1, 1), inf.NewDec(-1, 1), + inf.NewDec(0, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(1, 1), inf.NewDec(1, 1), inf.NewDec(1, 1)}}, + {inf.RoundCeil, [...]*inf.Dec{ + inf.NewDec(2, 0), inf.NewDec(-1, 0), inf.NewDec(-1, 0), inf.NewDec(2, 0), + inf.NewDec(-1, 1), inf.NewDec(-1, 1), inf.NewDec(-1, 1), + inf.NewDec(0, 1), inf.NewDec(0, 1), inf.NewDec(0, 1), + inf.NewDec(0, 1), + inf.NewDec(1, 1), inf.NewDec(1, 1), inf.NewDec(1, 1), + inf.NewDec(2, 1), inf.NewDec(2, 1), inf.NewDec(2, 1)}}, +} + +func TestDecRounders(t *testing.T) { + for i, a := range decRounderResults { + for j, input := range decRounderInputs { + q := new(inf.Dec).Set(input.quo) + rA, rB := new(big.Int).Set(input.rA), new(big.Int).Set(input.rB) + res := a.rounder.Round(new(inf.Dec), q, rA, rB) + if a.results[j] == nil && res == nil { + continue + } + if (a.results[j] == nil && res != nil) || + (a.results[j] != nil && res == nil) || + a.results[j].Cmp(res) != 0 { + t.Errorf("#%d,%d Rounder got %v; expected %v", i, j, res, a.results[j]) + } + } + } +} diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE new file mode 100644 index 00000000..a68e67f0 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE @@ -0,0 +1,188 @@ + +Copyright (c) 2011-2014 - Canonical Inc. + +This software is licensed under the LGPLv3, included below. + +As a special exception to the GNU Lesser General Public License version 3 +("LGPL3"), the copyright holders of this Library give you permission to +convey to a third party a Combined Work that links statically or dynamically +to this Library without providing any Minimal Corresponding Source or +Minimal Application Code as set out in 4d or providing the installation +information set out in section 4e, provided that you comply with the other +provisions of LGPL3 and provided that you meet, for the Application the +terms and conditions of the license(s) which apply to the Application. + +Except as stated in this special exception, the provisions of LGPL3 will +continue to comply in full to this Library. If you modify this Library, you +may apply this exception to your version of this Library, but you are not +obliged to do so. If you do not wish to do so, delete this exception +statement from your version. This exception does not (and cannot) modify any +license terms which apply to the Application, with which you must still +comply. + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/gopkg.in/yaml.v2/LICENSE.libyaml b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml new file mode 100644 index 00000000..8da58fbf --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml @@ -0,0 +1,31 @@ +The following files were ported to Go from C files of libyaml, and thus +are still covered by their original copyright and license: + + apic.go + emitterc.go + parserc.go + readerc.go + scannerc.go + writerc.go + yamlh.go + yamlprivateh.go + +Copyright (c) 2006 Kirill Simonov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/gopkg.in/yaml.v2/README.md b/vendor/gopkg.in/yaml.v2/README.md new file mode 100644 index 00000000..7b8bd867 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/README.md @@ -0,0 +1,131 @@ +# YAML support for the Go language + +Introduction +------------ + +The yaml package enables Go programs to comfortably encode and decode YAML +values. It was developed within [Canonical](https://www.canonical.com) as +part of the [juju](https://juju.ubuntu.com) project, and is based on a +pure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML) +C library to parse and generate YAML data quickly and reliably. + +Compatibility +------------- + +The yaml package supports most of YAML 1.1 and 1.2, including support for +anchors, tags, map merging, etc. Multi-document unmarshalling is not yet +implemented, and base-60 floats from YAML 1.1 are purposefully not +supported since they're a poor design and are gone in YAML 1.2. + +Installation and usage +---------------------- + +The import path for the package is *gopkg.in/yaml.v2*. + +To install it, run: + + go get gopkg.in/yaml.v2 + +API documentation +----------------- + +If opened in a browser, the import path itself leads to the API documentation: + + * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) + +API stability +------------- + +The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in). + + +License +------- + +The yaml package is licensed under the LGPL with an exception that allows it to be linked statically. Please see the LICENSE file for details. + + +Example +------- + +```Go +package main + +import ( + "fmt" + "log" + + "gopkg.in/yaml.v2" +) + +var data = ` +a: Easy! +b: + c: 2 + d: [3, 4] +` + +type T struct { + A string + B struct { + RenamedC int `yaml:"c"` + D []int `yaml:",flow"` + } +} + +func main() { + t := T{} + + err := yaml.Unmarshal([]byte(data), &t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t:\n%v\n\n", t) + + d, err := yaml.Marshal(&t) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- t dump:\n%s\n\n", string(d)) + + m := make(map[interface{}]interface{}) + + err = yaml.Unmarshal([]byte(data), &m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m:\n%v\n\n", m) + + d, err = yaml.Marshal(&m) + if err != nil { + log.Fatalf("error: %v", err) + } + fmt.Printf("--- m dump:\n%s\n\n", string(d)) +} +``` + +This example will generate the following output: + +``` +--- t: +{Easy! {2 [3 4]}} + +--- t dump: +a: Easy! +b: + c: 2 + d: [3, 4] + + +--- m: +map[a:Easy! b:map[c:2 d:[3 4]]] + +--- m dump: +a: Easy! +b: + c: 2 + d: + - 3 + - 4 +``` + diff --git a/vendor/gopkg.in/yaml.v2/apic.go b/vendor/gopkg.in/yaml.v2/apic.go new file mode 100644 index 00000000..95ec014e --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/apic.go @@ -0,0 +1,742 @@ +package yaml + +import ( + "io" + "os" +) + +func yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) { + //fmt.Println("yaml_insert_token", "pos:", pos, "typ:", token.typ, "head:", parser.tokens_head, "len:", len(parser.tokens)) + + // Check if we can move the queue at the beginning of the buffer. + if parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) { + if parser.tokens_head != len(parser.tokens) { + copy(parser.tokens, parser.tokens[parser.tokens_head:]) + } + parser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head] + parser.tokens_head = 0 + } + parser.tokens = append(parser.tokens, *token) + if pos < 0 { + return + } + copy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:]) + parser.tokens[parser.tokens_head+pos] = *token +} + +// Create a new parser object. +func yaml_parser_initialize(parser *yaml_parser_t) bool { + *parser = yaml_parser_t{ + raw_buffer: make([]byte, 0, input_raw_buffer_size), + buffer: make([]byte, 0, input_buffer_size), + } + return true +} + +// Destroy a parser object. +func yaml_parser_delete(parser *yaml_parser_t) { + *parser = yaml_parser_t{} +} + +// String read handler. +func yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + if parser.input_pos == len(parser.input) { + return 0, io.EOF + } + n = copy(buffer, parser.input[parser.input_pos:]) + parser.input_pos += n + return n, nil +} + +// File read handler. +func yaml_file_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { + return parser.input_file.Read(buffer) +} + +// Set a string input. +func yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_string_read_handler + parser.input = input + parser.input_pos = 0 +} + +// Set a file input. +func yaml_parser_set_input_file(parser *yaml_parser_t, file *os.File) { + if parser.read_handler != nil { + panic("must set the input source only once") + } + parser.read_handler = yaml_file_read_handler + parser.input_file = file +} + +// Set the source encoding. +func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) { + if parser.encoding != yaml_ANY_ENCODING { + panic("must set the encoding only once") + } + parser.encoding = encoding +} + +// Create a new emitter object. +func yaml_emitter_initialize(emitter *yaml_emitter_t) bool { + *emitter = yaml_emitter_t{ + buffer: make([]byte, output_buffer_size), + raw_buffer: make([]byte, 0, output_raw_buffer_size), + states: make([]yaml_emitter_state_t, 0, initial_stack_size), + events: make([]yaml_event_t, 0, initial_queue_size), + } + return true +} + +// Destroy an emitter object. +func yaml_emitter_delete(emitter *yaml_emitter_t) { + *emitter = yaml_emitter_t{} +} + +// String write handler. +func yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + *emitter.output_buffer = append(*emitter.output_buffer, buffer...) + return nil +} + +// File write handler. +func yaml_file_write_handler(emitter *yaml_emitter_t, buffer []byte) error { + _, err := emitter.output_file.Write(buffer) + return err +} + +// Set a string output. +func yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_string_write_handler + emitter.output_buffer = output_buffer +} + +// Set a file output. +func yaml_emitter_set_output_file(emitter *yaml_emitter_t, file io.Writer) { + if emitter.write_handler != nil { + panic("must set the output target only once") + } + emitter.write_handler = yaml_file_write_handler + emitter.output_file = file +} + +// Set the output encoding. +func yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) { + if emitter.encoding != yaml_ANY_ENCODING { + panic("must set the output encoding only once") + } + emitter.encoding = encoding +} + +// Set the canonical output style. +func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) { + emitter.canonical = canonical +} + +//// Set the indentation increment. +func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) { + if indent < 2 || indent > 9 { + indent = 2 + } + emitter.best_indent = indent +} + +// Set the preferred line width. +func yaml_emitter_set_width(emitter *yaml_emitter_t, width int) { + if width < 0 { + width = -1 + } + emitter.best_width = width +} + +// Set if unescaped non-ASCII characters are allowed. +func yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) { + emitter.unicode = unicode +} + +// Set the preferred line break character. +func yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) { + emitter.line_break = line_break +} + +///* +// * Destroy a token object. +// */ +// +//YAML_DECLARE(void) +//yaml_token_delete(yaml_token_t *token) +//{ +// assert(token); // Non-NULL token object expected. +// +// switch (token.type) +// { +// case YAML_TAG_DIRECTIVE_TOKEN: +// yaml_free(token.data.tag_directive.handle); +// yaml_free(token.data.tag_directive.prefix); +// break; +// +// case YAML_ALIAS_TOKEN: +// yaml_free(token.data.alias.value); +// break; +// +// case YAML_ANCHOR_TOKEN: +// yaml_free(token.data.anchor.value); +// break; +// +// case YAML_TAG_TOKEN: +// yaml_free(token.data.tag.handle); +// yaml_free(token.data.tag.suffix); +// break; +// +// case YAML_SCALAR_TOKEN: +// yaml_free(token.data.scalar.value); +// break; +// +// default: +// break; +// } +// +// memset(token, 0, sizeof(yaml_token_t)); +//} +// +///* +// * Check if a string is a valid UTF-8 sequence. +// * +// * Check 'reader.c' for more details on UTF-8 encoding. +// */ +// +//static int +//yaml_check_utf8(yaml_char_t *start, size_t length) +//{ +// yaml_char_t *end = start+length; +// yaml_char_t *pointer = start; +// +// while (pointer < end) { +// unsigned char octet; +// unsigned int width; +// unsigned int value; +// size_t k; +// +// octet = pointer[0]; +// width = (octet & 0x80) == 0x00 ? 1 : +// (octet & 0xE0) == 0xC0 ? 2 : +// (octet & 0xF0) == 0xE0 ? 3 : +// (octet & 0xF8) == 0xF0 ? 4 : 0; +// value = (octet & 0x80) == 0x00 ? octet & 0x7F : +// (octet & 0xE0) == 0xC0 ? octet & 0x1F : +// (octet & 0xF0) == 0xE0 ? octet & 0x0F : +// (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0; +// if (!width) return 0; +// if (pointer+width > end) return 0; +// for (k = 1; k < width; k ++) { +// octet = pointer[k]; +// if ((octet & 0xC0) != 0x80) return 0; +// value = (value << 6) + (octet & 0x3F); +// } +// if (!((width == 1) || +// (width == 2 && value >= 0x80) || +// (width == 3 && value >= 0x800) || +// (width == 4 && value >= 0x10000))) return 0; +// +// pointer += width; +// } +// +// return 1; +//} +// + +// Create STREAM-START. +func yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) bool { + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + encoding: encoding, + } + return true +} + +// Create STREAM-END. +func yaml_stream_end_event_initialize(event *yaml_event_t) bool { + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + } + return true +} + +// Create DOCUMENT-START. +func yaml_document_start_event_initialize(event *yaml_event_t, version_directive *yaml_version_directive_t, + tag_directives []yaml_tag_directive_t, implicit bool) bool { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: implicit, + } + return true +} + +// Create DOCUMENT-END. +func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) bool { + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + implicit: implicit, + } + return true +} + +///* +// * Create ALIAS. +// */ +// +//YAML_DECLARE(int) +//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t) +//{ +// mark yaml_mark_t = { 0, 0, 0 } +// anchor_copy *yaml_char_t = NULL +// +// assert(event) // Non-NULL event object is expected. +// assert(anchor) // Non-NULL anchor is expected. +// +// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0 +// +// anchor_copy = yaml_strdup(anchor) +// if (!anchor_copy) +// return 0 +// +// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark) +// +// return 1 +//} + +// Create SCALAR. +func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + anchor: anchor, + tag: tag, + value: value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-START. +func yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } + return true +} + +// Create SEQUENCE-END. +func yaml_sequence_end_event_initialize(event *yaml_event_t) bool { + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + } + return true +} + +// Create MAPPING-START. +func yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) bool { + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(style), + } + return true +} + +// Create MAPPING-END. +func yaml_mapping_end_event_initialize(event *yaml_event_t) bool { + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + } + return true +} + +// Destroy an event object. +func yaml_event_delete(event *yaml_event_t) { + *event = yaml_event_t{} +} + +///* +// * Create a document object. +// */ +// +//YAML_DECLARE(int) +//yaml_document_initialize(document *yaml_document_t, +// version_directive *yaml_version_directive_t, +// tag_directives_start *yaml_tag_directive_t, +// tag_directives_end *yaml_tag_directive_t, +// start_implicit int, end_implicit int) +//{ +// struct { +// error yaml_error_type_t +// } context +// struct { +// start *yaml_node_t +// end *yaml_node_t +// top *yaml_node_t +// } nodes = { NULL, NULL, NULL } +// version_directive_copy *yaml_version_directive_t = NULL +// struct { +// start *yaml_tag_directive_t +// end *yaml_tag_directive_t +// top *yaml_tag_directive_t +// } tag_directives_copy = { NULL, NULL, NULL } +// value yaml_tag_directive_t = { NULL, NULL } +// mark yaml_mark_t = { 0, 0, 0 } +// +// assert(document) // Non-NULL document object is expected. +// assert((tag_directives_start && tag_directives_end) || +// (tag_directives_start == tag_directives_end)) +// // Valid tag directives are expected. +// +// if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error +// +// if (version_directive) { +// version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t)) +// if (!version_directive_copy) goto error +// version_directive_copy.major = version_directive.major +// version_directive_copy.minor = version_directive.minor +// } +// +// if (tag_directives_start != tag_directives_end) { +// tag_directive *yaml_tag_directive_t +// if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE)) +// goto error +// for (tag_directive = tag_directives_start +// tag_directive != tag_directives_end; tag_directive ++) { +// assert(tag_directive.handle) +// assert(tag_directive.prefix) +// if (!yaml_check_utf8(tag_directive.handle, +// strlen((char *)tag_directive.handle))) +// goto error +// if (!yaml_check_utf8(tag_directive.prefix, +// strlen((char *)tag_directive.prefix))) +// goto error +// value.handle = yaml_strdup(tag_directive.handle) +// value.prefix = yaml_strdup(tag_directive.prefix) +// if (!value.handle || !value.prefix) goto error +// if (!PUSH(&context, tag_directives_copy, value)) +// goto error +// value.handle = NULL +// value.prefix = NULL +// } +// } +// +// DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy, +// tag_directives_copy.start, tag_directives_copy.top, +// start_implicit, end_implicit, mark, mark) +// +// return 1 +// +//error: +// STACK_DEL(&context, nodes) +// yaml_free(version_directive_copy) +// while (!STACK_EMPTY(&context, tag_directives_copy)) { +// value yaml_tag_directive_t = POP(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// } +// STACK_DEL(&context, tag_directives_copy) +// yaml_free(value.handle) +// yaml_free(value.prefix) +// +// return 0 +//} +// +///* +// * Destroy a document object. +// */ +// +//YAML_DECLARE(void) +//yaml_document_delete(document *yaml_document_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// tag_directive *yaml_tag_directive_t +// +// context.error = YAML_NO_ERROR // Eliminate a compliler warning. +// +// assert(document) // Non-NULL document object is expected. +// +// while (!STACK_EMPTY(&context, document.nodes)) { +// node yaml_node_t = POP(&context, document.nodes) +// yaml_free(node.tag) +// switch (node.type) { +// case YAML_SCALAR_NODE: +// yaml_free(node.data.scalar.value) +// break +// case YAML_SEQUENCE_NODE: +// STACK_DEL(&context, node.data.sequence.items) +// break +// case YAML_MAPPING_NODE: +// STACK_DEL(&context, node.data.mapping.pairs) +// break +// default: +// assert(0) // Should not happen. +// } +// } +// STACK_DEL(&context, document.nodes) +// +// yaml_free(document.version_directive) +// for (tag_directive = document.tag_directives.start +// tag_directive != document.tag_directives.end +// tag_directive++) { +// yaml_free(tag_directive.handle) +// yaml_free(tag_directive.prefix) +// } +// yaml_free(document.tag_directives.start) +// +// memset(document, 0, sizeof(yaml_document_t)) +//} +// +///** +// * Get a document node. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_node(document *yaml_document_t, index int) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (index > 0 && document.nodes.start + index <= document.nodes.top) { +// return document.nodes.start + index - 1 +// } +// return NULL +//} +// +///** +// * Get the root object. +// */ +// +//YAML_DECLARE(yaml_node_t *) +//yaml_document_get_root_node(document *yaml_document_t) +//{ +// assert(document) // Non-NULL document object is expected. +// +// if (document.nodes.top != document.nodes.start) { +// return document.nodes.start +// } +// return NULL +//} +// +///* +// * Add a scalar node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_scalar(document *yaml_document_t, +// tag *yaml_char_t, value *yaml_char_t, length int, +// style yaml_scalar_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// value_copy *yaml_char_t = NULL +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// assert(value) // Non-NULL value is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (length < 0) { +// length = strlen((char *)value) +// } +// +// if (!yaml_check_utf8(value, length)) goto error +// value_copy = yaml_malloc(length+1) +// if (!value_copy) goto error +// memcpy(value_copy, value, length) +// value_copy[length] = '\0' +// +// SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// yaml_free(tag_copy) +// yaml_free(value_copy) +// +// return 0 +//} +// +///* +// * Add a sequence node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_sequence(document *yaml_document_t, +// tag *yaml_char_t, style yaml_sequence_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_item_t +// end *yaml_node_item_t +// top *yaml_node_item_t +// } items = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error +// +// SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, items) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Add a mapping node to a document. +// */ +// +//YAML_DECLARE(int) +//yaml_document_add_mapping(document *yaml_document_t, +// tag *yaml_char_t, style yaml_mapping_style_t) +//{ +// struct { +// error yaml_error_type_t +// } context +// mark yaml_mark_t = { 0, 0, 0 } +// tag_copy *yaml_char_t = NULL +// struct { +// start *yaml_node_pair_t +// end *yaml_node_pair_t +// top *yaml_node_pair_t +// } pairs = { NULL, NULL, NULL } +// node yaml_node_t +// +// assert(document) // Non-NULL document object is expected. +// +// if (!tag) { +// tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG +// } +// +// if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error +// tag_copy = yaml_strdup(tag) +// if (!tag_copy) goto error +// +// if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error +// +// MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end, +// style, mark, mark) +// if (!PUSH(&context, document.nodes, node)) goto error +// +// return document.nodes.top - document.nodes.start +// +//error: +// STACK_DEL(&context, pairs) +// yaml_free(tag_copy) +// +// return 0 +//} +// +///* +// * Append an item to a sequence node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_sequence_item(document *yaml_document_t, +// sequence int, item int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// assert(document) // Non-NULL document is required. +// assert(sequence > 0 +// && document.nodes.start + sequence <= document.nodes.top) +// // Valid sequence id is required. +// assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE) +// // A sequence node is required. +// assert(item > 0 && document.nodes.start + item <= document.nodes.top) +// // Valid item id is required. +// +// if (!PUSH(&context, +// document.nodes.start[sequence-1].data.sequence.items, item)) +// return 0 +// +// return 1 +//} +// +///* +// * Append a pair of a key and a value to a mapping node. +// */ +// +//YAML_DECLARE(int) +//yaml_document_append_mapping_pair(document *yaml_document_t, +// mapping int, key int, value int) +//{ +// struct { +// error yaml_error_type_t +// } context +// +// pair yaml_node_pair_t +// +// assert(document) // Non-NULL document is required. +// assert(mapping > 0 +// && document.nodes.start + mapping <= document.nodes.top) +// // Valid mapping id is required. +// assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE) +// // A mapping node is required. +// assert(key > 0 && document.nodes.start + key <= document.nodes.top) +// // Valid key id is required. +// assert(value > 0 && document.nodes.start + value <= document.nodes.top) +// // Valid value id is required. +// +// pair.key = key +// pair.value = value +// +// if (!PUSH(&context, +// document.nodes.start[mapping-1].data.mapping.pairs, pair)) +// return 0 +// +// return 1 +//} +// +// diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go new file mode 100644 index 00000000..085cddc4 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/decode.go @@ -0,0 +1,683 @@ +package yaml + +import ( + "encoding" + "encoding/base64" + "fmt" + "math" + "reflect" + "strconv" + "time" +) + +const ( + documentNode = 1 << iota + mappingNode + sequenceNode + scalarNode + aliasNode +) + +type node struct { + kind int + line, column int + tag string + value string + implicit bool + children []*node + anchors map[string]*node +} + +// ---------------------------------------------------------------------------- +// Parser, produces a node tree out of a libyaml event stream. + +type parser struct { + parser yaml_parser_t + event yaml_event_t + doc *node +} + +func newParser(b []byte) *parser { + p := parser{} + if !yaml_parser_initialize(&p.parser) { + panic("failed to initialize YAML emitter") + } + + if len(b) == 0 { + b = []byte{'\n'} + } + + yaml_parser_set_input_string(&p.parser, b) + + p.skip() + if p.event.typ != yaml_STREAM_START_EVENT { + panic("expected stream start event, got " + strconv.Itoa(int(p.event.typ))) + } + p.skip() + return &p +} + +func (p *parser) destroy() { + if p.event.typ != yaml_NO_EVENT { + yaml_event_delete(&p.event) + } + yaml_parser_delete(&p.parser) +} + +func (p *parser) skip() { + if p.event.typ != yaml_NO_EVENT { + if p.event.typ == yaml_STREAM_END_EVENT { + failf("attempted to go past the end of stream; corrupted value?") + } + yaml_event_delete(&p.event) + } + if !yaml_parser_parse(&p.parser, &p.event) { + p.fail() + } +} + +func (p *parser) fail() { + var where string + var line int + if p.parser.problem_mark.line != 0 { + line = p.parser.problem_mark.line + } else if p.parser.context_mark.line != 0 { + line = p.parser.context_mark.line + } + if line != 0 { + where = "line " + strconv.Itoa(line) + ": " + } + var msg string + if len(p.parser.problem) > 0 { + msg = p.parser.problem + } else { + msg = "unknown problem parsing YAML content" + } + failf("%s%s", where, msg) +} + +func (p *parser) anchor(n *node, anchor []byte) { + if anchor != nil { + p.doc.anchors[string(anchor)] = n + } +} + +func (p *parser) parse() *node { + switch p.event.typ { + case yaml_SCALAR_EVENT: + return p.scalar() + case yaml_ALIAS_EVENT: + return p.alias() + case yaml_MAPPING_START_EVENT: + return p.mapping() + case yaml_SEQUENCE_START_EVENT: + return p.sequence() + case yaml_DOCUMENT_START_EVENT: + return p.document() + case yaml_STREAM_END_EVENT: + // Happens when attempting to decode an empty buffer. + return nil + default: + panic("attempted to parse unknown event: " + strconv.Itoa(int(p.event.typ))) + } + panic("unreachable") +} + +func (p *parser) node(kind int) *node { + return &node{ + kind: kind, + line: p.event.start_mark.line, + column: p.event.start_mark.column, + } +} + +func (p *parser) document() *node { + n := p.node(documentNode) + n.anchors = make(map[string]*node) + p.doc = n + p.skip() + n.children = append(n.children, p.parse()) + if p.event.typ != yaml_DOCUMENT_END_EVENT { + panic("expected end of document event but got " + strconv.Itoa(int(p.event.typ))) + } + p.skip() + return n +} + +func (p *parser) alias() *node { + n := p.node(aliasNode) + n.value = string(p.event.anchor) + p.skip() + return n +} + +func (p *parser) scalar() *node { + n := p.node(scalarNode) + n.value = string(p.event.value) + n.tag = string(p.event.tag) + n.implicit = p.event.implicit + p.anchor(n, p.event.anchor) + p.skip() + return n +} + +func (p *parser) sequence() *node { + n := p.node(sequenceNode) + p.anchor(n, p.event.anchor) + p.skip() + for p.event.typ != yaml_SEQUENCE_END_EVENT { + n.children = append(n.children, p.parse()) + } + p.skip() + return n +} + +func (p *parser) mapping() *node { + n := p.node(mappingNode) + p.anchor(n, p.event.anchor) + p.skip() + for p.event.typ != yaml_MAPPING_END_EVENT { + n.children = append(n.children, p.parse(), p.parse()) + } + p.skip() + return n +} + +// ---------------------------------------------------------------------------- +// Decoder, unmarshals a node into a provided value. + +type decoder struct { + doc *node + aliases map[string]bool + mapType reflect.Type + terrors []string +} + +var ( + mapItemType = reflect.TypeOf(MapItem{}) + durationType = reflect.TypeOf(time.Duration(0)) + defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) + ifaceType = defaultMapType.Elem() +) + +func newDecoder() *decoder { + d := &decoder{mapType: defaultMapType} + d.aliases = make(map[string]bool) + return d +} + +func (d *decoder) terror(n *node, tag string, out reflect.Value) { + if n.tag != "" { + tag = n.tag + } + value := n.value + if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG { + if len(value) > 10 { + value = " `" + value[:7] + "...`" + } else { + value = " `" + value + "`" + } + } + d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type())) +} + +func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) { + terrlen := len(d.terrors) + err := u.UnmarshalYAML(func(v interface{}) (err error) { + defer handleErr(&err) + d.unmarshal(n, reflect.ValueOf(v)) + if len(d.terrors) > terrlen { + issues := d.terrors[terrlen:] + d.terrors = d.terrors[:terrlen] + return &TypeError{issues} + } + return nil + }) + if e, ok := err.(*TypeError); ok { + d.terrors = append(d.terrors, e.Errors...) + return false + } + if err != nil { + fail(err) + } + return true +} + +// d.prepare initializes and dereferences pointers and calls UnmarshalYAML +// if a value is found to implement it. +// It returns the initialized and dereferenced out value, whether +// unmarshalling was already done by UnmarshalYAML, and if so whether +// its types unmarshalled appropriately. +// +// If n holds a null value, prepare returns before doing anything. +func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { + if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "") { + return out, false, false + } + again := true + for again { + again = false + if out.Kind() == reflect.Ptr { + if out.IsNil() { + out.Set(reflect.New(out.Type().Elem())) + } + out = out.Elem() + again = true + } + if out.CanAddr() { + if u, ok := out.Addr().Interface().(Unmarshaler); ok { + good = d.callUnmarshaler(n, u) + return out, true, good + } + } + } + return out, false, false +} + +func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { + switch n.kind { + case documentNode: + return d.document(n, out) + case aliasNode: + return d.alias(n, out) + } + out, unmarshaled, good := d.prepare(n, out) + if unmarshaled { + return good + } + switch n.kind { + case scalarNode: + good = d.scalar(n, out) + case mappingNode: + good = d.mapping(n, out) + case sequenceNode: + good = d.sequence(n, out) + default: + panic("internal error: unknown node kind: " + strconv.Itoa(n.kind)) + } + return good +} + +func (d *decoder) document(n *node, out reflect.Value) (good bool) { + if len(n.children) == 1 { + d.doc = n + d.unmarshal(n.children[0], out) + return true + } + return false +} + +func (d *decoder) alias(n *node, out reflect.Value) (good bool) { + an, ok := d.doc.anchors[n.value] + if !ok { + failf("unknown anchor '%s' referenced", n.value) + } + if d.aliases[n.value] { + failf("anchor '%s' value contains itself", n.value) + } + d.aliases[n.value] = true + good = d.unmarshal(an, out) + delete(d.aliases, n.value) + return good +} + +var zeroValue reflect.Value + +func resetMap(out reflect.Value) { + for _, k := range out.MapKeys() { + out.SetMapIndex(k, zeroValue) + } +} + +func (d *decoder) scalar(n *node, out reflect.Value) (good bool) { + var tag string + var resolved interface{} + if n.tag == "" && !n.implicit { + tag = yaml_STR_TAG + resolved = n.value + } else { + tag, resolved = resolve(n.tag, n.value) + if tag == yaml_BINARY_TAG { + data, err := base64.StdEncoding.DecodeString(resolved.(string)) + if err != nil { + failf("!!binary value contains invalid base64 data") + } + resolved = string(data) + } + } + if resolved == nil { + if out.Kind() == reflect.Map && !out.CanAddr() { + resetMap(out) + } else { + out.Set(reflect.Zero(out.Type())) + } + return true + } + if s, ok := resolved.(string); ok && out.CanAddr() { + if u, ok := out.Addr().Interface().(encoding.TextUnmarshaler); ok { + err := u.UnmarshalText([]byte(s)) + if err != nil { + fail(err) + } + return true + } + } + switch out.Kind() { + case reflect.String: + if tag == yaml_BINARY_TAG { + out.SetString(resolved.(string)) + good = true + } else if resolved != nil { + out.SetString(n.value) + good = true + } + case reflect.Interface: + if resolved == nil { + out.Set(reflect.Zero(out.Type())) + } else { + out.Set(reflect.ValueOf(resolved)) + } + good = true + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + switch resolved := resolved.(type) { + case int: + if !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + good = true + } + case int64: + if !out.OverflowInt(resolved) { + out.SetInt(resolved) + good = true + } + case uint64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + good = true + } + case float64: + if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { + out.SetInt(int64(resolved)) + good = true + } + case string: + if out.Type() == durationType { + d, err := time.ParseDuration(resolved) + if err == nil { + out.SetInt(int64(d)) + good = true + } + } + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch resolved := resolved.(type) { + case int: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + good = true + } + case int64: + if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + good = true + } + case uint64: + if !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + good = true + } + case float64: + if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { + out.SetUint(uint64(resolved)) + good = true + } + } + case reflect.Bool: + switch resolved := resolved.(type) { + case bool: + out.SetBool(resolved) + good = true + } + case reflect.Float32, reflect.Float64: + switch resolved := resolved.(type) { + case int: + out.SetFloat(float64(resolved)) + good = true + case int64: + out.SetFloat(float64(resolved)) + good = true + case uint64: + out.SetFloat(float64(resolved)) + good = true + case float64: + out.SetFloat(resolved) + good = true + } + case reflect.Ptr: + if out.Type().Elem() == reflect.TypeOf(resolved) { + // TODO DOes this make sense? When is out a Ptr except when decoding a nil value? + elem := reflect.New(out.Type().Elem()) + elem.Elem().Set(reflect.ValueOf(resolved)) + out.Set(elem) + good = true + } + } + if !good { + d.terror(n, tag, out) + } + return good +} + +func settableValueOf(i interface{}) reflect.Value { + v := reflect.ValueOf(i) + sv := reflect.New(v.Type()).Elem() + sv.Set(v) + return sv +} + +func (d *decoder) sequence(n *node, out reflect.Value) (good bool) { + l := len(n.children) + + var iface reflect.Value + switch out.Kind() { + case reflect.Slice: + out.Set(reflect.MakeSlice(out.Type(), l, l)) + case reflect.Interface: + // No type hints. Will have to use a generic sequence. + iface = out + out = settableValueOf(make([]interface{}, l)) + default: + d.terror(n, yaml_SEQ_TAG, out) + return false + } + et := out.Type().Elem() + + j := 0 + for i := 0; i < l; i++ { + e := reflect.New(et).Elem() + if ok := d.unmarshal(n.children[i], e); ok { + out.Index(j).Set(e) + j++ + } + } + out.Set(out.Slice(0, j)) + if iface.IsValid() { + iface.Set(out) + } + return true +} + +func (d *decoder) mapping(n *node, out reflect.Value) (good bool) { + switch out.Kind() { + case reflect.Struct: + return d.mappingStruct(n, out) + case reflect.Slice: + return d.mappingSlice(n, out) + case reflect.Map: + // okay + case reflect.Interface: + if d.mapType.Kind() == reflect.Map { + iface := out + out = reflect.MakeMap(d.mapType) + iface.Set(out) + } else { + slicev := reflect.New(d.mapType).Elem() + if !d.mappingSlice(n, slicev) { + return false + } + out.Set(slicev) + return true + } + default: + d.terror(n, yaml_MAP_TAG, out) + return false + } + outt := out.Type() + kt := outt.Key() + et := outt.Elem() + + mapType := d.mapType + if outt.Key() == ifaceType && outt.Elem() == ifaceType { + d.mapType = outt + } + + if out.IsNil() { + out.Set(reflect.MakeMap(outt)) + } + l := len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + k := reflect.New(kt).Elem() + if d.unmarshal(n.children[i], k) { + kkind := k.Kind() + if kkind == reflect.Interface { + kkind = k.Elem().Kind() + } + if kkind == reflect.Map || kkind == reflect.Slice { + failf("invalid map key: %#v", k.Interface()) + } + e := reflect.New(et).Elem() + if d.unmarshal(n.children[i+1], e) { + out.SetMapIndex(k, e) + } + } + } + d.mapType = mapType + return true +} + +func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) { + outt := out.Type() + if outt.Elem() != mapItemType { + d.terror(n, yaml_MAP_TAG, out) + return false + } + + mapType := d.mapType + d.mapType = outt + + var slice []MapItem + var l = len(n.children) + for i := 0; i < l; i += 2 { + if isMerge(n.children[i]) { + d.merge(n.children[i+1], out) + continue + } + item := MapItem{} + k := reflect.ValueOf(&item.Key).Elem() + if d.unmarshal(n.children[i], k) { + v := reflect.ValueOf(&item.Value).Elem() + if d.unmarshal(n.children[i+1], v) { + slice = append(slice, item) + } + } + } + out.Set(reflect.ValueOf(slice)) + d.mapType = mapType + return true +} + +func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) { + sinfo, err := getStructInfo(out.Type()) + if err != nil { + panic(err) + } + name := settableValueOf("") + l := len(n.children) + + var inlineMap reflect.Value + var elemType reflect.Type + if sinfo.InlineMap != -1 { + inlineMap = out.Field(sinfo.InlineMap) + inlineMap.Set(reflect.New(inlineMap.Type()).Elem()) + elemType = inlineMap.Type().Elem() + } + + for i := 0; i < l; i += 2 { + ni := n.children[i] + if isMerge(ni) { + d.merge(n.children[i+1], out) + continue + } + if !d.unmarshal(ni, name) { + continue + } + if info, ok := sinfo.FieldsMap[name.String()]; ok { + var field reflect.Value + if info.Inline == nil { + field = out.Field(info.Num) + } else { + field = out.FieldByIndex(info.Inline) + } + d.unmarshal(n.children[i+1], field) + } else if sinfo.InlineMap != -1 { + if inlineMap.IsNil() { + inlineMap.Set(reflect.MakeMap(inlineMap.Type())) + } + value := reflect.New(elemType).Elem() + d.unmarshal(n.children[i+1], value) + inlineMap.SetMapIndex(name, value) + } + } + return true +} + +func failWantMap() { + failf("map merge requires map or sequence of maps as the value") +} + +func (d *decoder) merge(n *node, out reflect.Value) { + switch n.kind { + case mappingNode: + d.unmarshal(n, out) + case aliasNode: + an, ok := d.doc.anchors[n.value] + if ok && an.kind != mappingNode { + failWantMap() + } + d.unmarshal(n, out) + case sequenceNode: + // Step backwards as earlier nodes take precedence. + for i := len(n.children) - 1; i >= 0; i-- { + ni := n.children[i] + if ni.kind == aliasNode { + an, ok := d.doc.anchors[ni.value] + if ok && an.kind != mappingNode { + failWantMap() + } + } else if ni.kind != mappingNode { + failWantMap() + } + d.unmarshal(ni, out) + } + default: + failWantMap() + } +} + +func isMerge(n *node) bool { + return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG) +} diff --git a/vendor/gopkg.in/yaml.v2/decode_test.go b/vendor/gopkg.in/yaml.v2/decode_test.go new file mode 100644 index 00000000..04fdd9e7 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/decode_test.go @@ -0,0 +1,966 @@ +package yaml_test + +import ( + "errors" + . "gopkg.in/check.v1" + "gopkg.in/yaml.v2" + "math" + "net" + "reflect" + "strings" + "time" +) + +var unmarshalIntTest = 123 + +var unmarshalTests = []struct { + data string + value interface{} +}{ + { + "", + &struct{}{}, + }, { + "{}", &struct{}{}, + }, { + "v: hi", + map[string]string{"v": "hi"}, + }, { + "v: hi", map[string]interface{}{"v": "hi"}, + }, { + "v: true", + map[string]string{"v": "true"}, + }, { + "v: true", + map[string]interface{}{"v": true}, + }, { + "v: 10", + map[string]interface{}{"v": 10}, + }, { + "v: 0b10", + map[string]interface{}{"v": 2}, + }, { + "v: 0xA", + map[string]interface{}{"v": 10}, + }, { + "v: 4294967296", + map[string]int64{"v": 4294967296}, + }, { + "v: 0.1", + map[string]interface{}{"v": 0.1}, + }, { + "v: .1", + map[string]interface{}{"v": 0.1}, + }, { + "v: .Inf", + map[string]interface{}{"v": math.Inf(+1)}, + }, { + "v: -.Inf", + map[string]interface{}{"v": math.Inf(-1)}, + }, { + "v: -10", + map[string]interface{}{"v": -10}, + }, { + "v: -.1", + map[string]interface{}{"v": -0.1}, + }, + + // Simple values. + { + "123", + &unmarshalIntTest, + }, + + // Floats from spec + { + "canonical: 6.8523e+5", + map[string]interface{}{"canonical": 6.8523e+5}, + }, { + "expo: 685.230_15e+03", + map[string]interface{}{"expo": 685.23015e+03}, + }, { + "fixed: 685_230.15", + map[string]interface{}{"fixed": 685230.15}, + }, { + "neginf: -.inf", + map[string]interface{}{"neginf": math.Inf(-1)}, + }, { + "fixed: 685_230.15", + map[string]float64{"fixed": 685230.15}, + }, + //{"sexa: 190:20:30.15", map[string]interface{}{"sexa": 0}}, // Unsupported + //{"notanum: .NaN", map[string]interface{}{"notanum": math.NaN()}}, // Equality of NaN fails. + + // Bools from spec + { + "canonical: y", + map[string]interface{}{"canonical": true}, + }, { + "answer: NO", + map[string]interface{}{"answer": false}, + }, { + "logical: True", + map[string]interface{}{"logical": true}, + }, { + "option: on", + map[string]interface{}{"option": true}, + }, { + "option: on", + map[string]bool{"option": true}, + }, + // Ints from spec + { + "canonical: 685230", + map[string]interface{}{"canonical": 685230}, + }, { + "decimal: +685_230", + map[string]interface{}{"decimal": 685230}, + }, { + "octal: 02472256", + map[string]interface{}{"octal": 685230}, + }, { + "hexa: 0x_0A_74_AE", + map[string]interface{}{"hexa": 685230}, + }, { + "bin: 0b1010_0111_0100_1010_1110", + map[string]interface{}{"bin": 685230}, + }, { + "bin: -0b101010", + map[string]interface{}{"bin": -42}, + }, { + "decimal: +685_230", + map[string]int{"decimal": 685230}, + }, + + //{"sexa: 190:20:30", map[string]interface{}{"sexa": 0}}, // Unsupported + + // Nulls from spec + { + "empty:", + map[string]interface{}{"empty": nil}, + }, { + "canonical: ~", + map[string]interface{}{"canonical": nil}, + }, { + "english: null", + map[string]interface{}{"english": nil}, + }, { + "~: null key", + map[interface{}]string{nil: "null key"}, + }, { + "empty:", + map[string]*bool{"empty": nil}, + }, + + // Flow sequence + { + "seq: [A,B]", + map[string]interface{}{"seq": []interface{}{"A", "B"}}, + }, { + "seq: [A,B,C,]", + map[string][]string{"seq": []string{"A", "B", "C"}}, + }, { + "seq: [A,1,C]", + map[string][]string{"seq": []string{"A", "1", "C"}}, + }, { + "seq: [A,1,C]", + map[string][]int{"seq": []int{1}}, + }, { + "seq: [A,1,C]", + map[string]interface{}{"seq": []interface{}{"A", 1, "C"}}, + }, + // Block sequence + { + "seq:\n - A\n - B", + map[string]interface{}{"seq": []interface{}{"A", "B"}}, + }, { + "seq:\n - A\n - B\n - C", + map[string][]string{"seq": []string{"A", "B", "C"}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string][]string{"seq": []string{"A", "1", "C"}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string][]int{"seq": []int{1}}, + }, { + "seq:\n - A\n - 1\n - C", + map[string]interface{}{"seq": []interface{}{"A", 1, "C"}}, + }, + + // Literal block scalar + { + "scalar: | # Comment\n\n literal\n\n \ttext\n\n", + map[string]string{"scalar": "\nliteral\n\n\ttext\n"}, + }, + + // Folded block scalar + { + "scalar: > # Comment\n\n folded\n line\n \n next\n line\n * one\n * two\n\n last\n line\n\n", + map[string]string{"scalar": "\nfolded line\nnext line\n * one\n * two\n\nlast line\n"}, + }, + + // Map inside interface with no type hints. + { + "a: {b: c}", + map[interface{}]interface{}{"a": map[interface{}]interface{}{"b": "c"}}, + }, + + // Structs and type conversions. + { + "hello: world", + &struct{ Hello string }{"world"}, + }, { + "a: {b: c}", + &struct{ A struct{ B string } }{struct{ B string }{"c"}}, + }, { + "a: {b: c}", + &struct{ A *struct{ B string } }{&struct{ B string }{"c"}}, + }, { + "a: {b: c}", + &struct{ A map[string]string }{map[string]string{"b": "c"}}, + }, { + "a: {b: c}", + &struct{ A *map[string]string }{&map[string]string{"b": "c"}}, + }, { + "a:", + &struct{ A map[string]string }{}, + }, { + "a: 1", + &struct{ A int }{1}, + }, { + "a: 1", + &struct{ A float64 }{1}, + }, { + "a: 1.0", + &struct{ A int }{1}, + }, { + "a: 1.0", + &struct{ A uint }{1}, + }, { + "a: [1, 2]", + &struct{ A []int }{[]int{1, 2}}, + }, { + "a: 1", + &struct{ B int }{0}, + }, { + "a: 1", + &struct { + B int "a" + }{1}, + }, { + "a: y", + &struct{ A bool }{true}, + }, + + // Some cross type conversions + { + "v: 42", + map[string]uint{"v": 42}, + }, { + "v: -42", + map[string]uint{}, + }, { + "v: 4294967296", + map[string]uint64{"v": 4294967296}, + }, { + "v: -4294967296", + map[string]uint64{}, + }, + + // int + { + "int_max: 2147483647", + map[string]int{"int_max": math.MaxInt32}, + }, + { + "int_min: -2147483648", + map[string]int{"int_min": math.MinInt32}, + }, + { + "int_overflow: 9223372036854775808", // math.MaxInt64 + 1 + map[string]int{}, + }, + + // int64 + { + "int64_max: 9223372036854775807", + map[string]int64{"int64_max": math.MaxInt64}, + }, + { + "int64_max_base2: 0b111111111111111111111111111111111111111111111111111111111111111", + map[string]int64{"int64_max_base2": math.MaxInt64}, + }, + { + "int64_min: -9223372036854775808", + map[string]int64{"int64_min": math.MinInt64}, + }, + { + "int64_neg_base2: -0b111111111111111111111111111111111111111111111111111111111111111", + map[string]int64{"int64_neg_base2": -math.MaxInt64}, + }, + { + "int64_overflow: 9223372036854775808", // math.MaxInt64 + 1 + map[string]int64{}, + }, + + // uint + { + "uint_min: 0", + map[string]uint{"uint_min": 0}, + }, + { + "uint_max: 4294967295", + map[string]uint{"uint_max": math.MaxUint32}, + }, + { + "uint_underflow: -1", + map[string]uint{}, + }, + + // uint64 + { + "uint64_min: 0", + map[string]uint{"uint64_min": 0}, + }, + { + "uint64_max: 18446744073709551615", + map[string]uint64{"uint64_max": math.MaxUint64}, + }, + { + "uint64_max_base2: 0b1111111111111111111111111111111111111111111111111111111111111111", + map[string]uint64{"uint64_max_base2": math.MaxUint64}, + }, + { + "uint64_maxint64: 9223372036854775807", + map[string]uint64{"uint64_maxint64": math.MaxInt64}, + }, + { + "uint64_underflow: -1", + map[string]uint64{}, + }, + + // float32 + { + "float32_max: 3.40282346638528859811704183484516925440e+38", + map[string]float32{"float32_max": math.MaxFloat32}, + }, + { + "float32_nonzero: 1.401298464324817070923729583289916131280e-45", + map[string]float32{"float32_nonzero": math.SmallestNonzeroFloat32}, + }, + { + "float32_maxuint64: 18446744073709551615", + map[string]float32{"float32_maxuint64": float32(math.MaxUint64)}, + }, + { + "float32_maxuint64+1: 18446744073709551616", + map[string]float32{"float32_maxuint64+1": float32(math.MaxUint64 + 1)}, + }, + + // float64 + { + "float64_max: 1.797693134862315708145274237317043567981e+308", + map[string]float64{"float64_max": math.MaxFloat64}, + }, + { + "float64_nonzero: 4.940656458412465441765687928682213723651e-324", + map[string]float64{"float64_nonzero": math.SmallestNonzeroFloat64}, + }, + { + "float64_maxuint64: 18446744073709551615", + map[string]float64{"float64_maxuint64": float64(math.MaxUint64)}, + }, + { + "float64_maxuint64+1: 18446744073709551616", + map[string]float64{"float64_maxuint64+1": float64(math.MaxUint64 + 1)}, + }, + + // Overflow cases. + { + "v: 4294967297", + map[string]int32{}, + }, { + "v: 128", + map[string]int8{}, + }, + + // Quoted values. + { + "'1': '\"2\"'", + map[interface{}]interface{}{"1": "\"2\""}, + }, { + "v:\n- A\n- 'B\n\n C'\n", + map[string][]string{"v": []string{"A", "B\nC"}}, + }, + + // Explicit tags. + { + "v: !!float '1.1'", + map[string]interface{}{"v": 1.1}, + }, { + "v: !!null ''", + map[string]interface{}{"v": nil}, + }, { + "%TAG !y! tag:yaml.org,2002:\n---\nv: !y!int '1'", + map[string]interface{}{"v": 1}, + }, + + // Anchors and aliases. + { + "a: &x 1\nb: &y 2\nc: *x\nd: *y\n", + &struct{ A, B, C, D int }{1, 2, 1, 2}, + }, { + "a: &a {c: 1}\nb: *a", + &struct { + A, B struct { + C int + } + }{struct{ C int }{1}, struct{ C int }{1}}, + }, { + "a: &a [1, 2]\nb: *a", + &struct{ B []int }{[]int{1, 2}}, + }, { + "b: *a\na: &a {c: 1}", + &struct { + A, B struct { + C int + } + }{struct{ C int }{1}, struct{ C int }{1}}, + }, + + // Bug #1133337 + { + "foo: ''", + map[string]*string{"foo": new(string)}, + }, { + "foo: null", + map[string]string{"foo": ""}, + }, { + "foo: null", + map[string]interface{}{"foo": nil}, + }, + + // Ignored field + { + "a: 1\nb: 2\n", + &struct { + A int + B int "-" + }{1, 0}, + }, + + // Bug #1191981 + { + "" + + "%YAML 1.1\n" + + "--- !!str\n" + + `"Generic line break (no glyph)\n\` + "\n" + + ` Generic line break (glyphed)\n\` + "\n" + + ` Line separator\u2028\` + "\n" + + ` Paragraph separator\u2029"` + "\n", + "" + + "Generic line break (no glyph)\n" + + "Generic line break (glyphed)\n" + + "Line separator\u2028Paragraph separator\u2029", + }, + + // Struct inlining + { + "a: 1\nb: 2\nc: 3\n", + &struct { + A int + C inlineB `yaml:",inline"` + }{1, inlineB{2, inlineC{3}}}, + }, + + // Map inlining + { + "a: 1\nb: 2\nc: 3\n", + &struct { + A int + C map[string]int `yaml:",inline"` + }{1, map[string]int{"b": 2, "c": 3}}, + }, + + // bug 1243827 + { + "a: -b_c", + map[string]interface{}{"a": "-b_c"}, + }, + { + "a: +b_c", + map[string]interface{}{"a": "+b_c"}, + }, + { + "a: 50cent_of_dollar", + map[string]interface{}{"a": "50cent_of_dollar"}, + }, + + // Duration + { + "a: 3s", + map[string]time.Duration{"a": 3 * time.Second}, + }, + + // Issue #24. + { + "a: ", + map[string]string{"a": ""}, + }, + + // Base 60 floats are obsolete and unsupported. + { + "a: 1:1\n", + map[string]string{"a": "1:1"}, + }, + + // Binary data. + { + "a: !!binary gIGC\n", + map[string]string{"a": "\x80\x81\x82"}, + }, { + "a: !!binary |\n " + strings.Repeat("kJCQ", 17) + "kJ\n CQ\n", + map[string]string{"a": strings.Repeat("\x90", 54)}, + }, { + "a: !!binary |\n " + strings.Repeat("A", 70) + "\n ==\n", + map[string]string{"a": strings.Repeat("\x00", 52)}, + }, + + // Ordered maps. + { + "{b: 2, a: 1, d: 4, c: 3, sub: {e: 5}}", + &yaml.MapSlice{{"b", 2}, {"a", 1}, {"d", 4}, {"c", 3}, {"sub", yaml.MapSlice{{"e", 5}}}}, + }, + + // Issue #39. + { + "a:\n b:\n c: d\n", + map[string]struct{ B interface{} }{"a": {map[interface{}]interface{}{"c": "d"}}}, + }, + + // Custom map type. + { + "a: {b: c}", + M{"a": M{"b": "c"}}, + }, + + // Support encoding.TextUnmarshaler. + { + "a: 1.2.3.4\n", + map[string]net.IP{"a": net.IPv4(1, 2, 3, 4)}, + }, + { + "a: 2015-02-24T18:19:39Z\n", + map[string]time.Time{"a": time.Unix(1424801979, 0)}, + }, + + // Encode empty lists as zero-length slices. + { + "a: []", + &struct{ A []int }{[]int{}}, + }, +} + +type M map[interface{}]interface{} + +type inlineB struct { + B int + inlineC `yaml:",inline"` +} + +type inlineC struct { + C int +} + +func (s *S) TestUnmarshal(c *C) { + for _, item := range unmarshalTests { + t := reflect.ValueOf(item.value).Type() + var value interface{} + switch t.Kind() { + case reflect.Map: + value = reflect.MakeMap(t).Interface() + case reflect.String: + value = reflect.New(t).Interface() + case reflect.Ptr: + value = reflect.New(t.Elem()).Interface() + default: + c.Fatalf("missing case for %s", t) + } + err := yaml.Unmarshal([]byte(item.data), value) + if _, ok := err.(*yaml.TypeError); !ok { + c.Assert(err, IsNil) + } + if t.Kind() == reflect.String { + c.Assert(*value.(*string), Equals, item.value) + } else { + c.Assert(value, DeepEquals, item.value) + } + } +} + +func (s *S) TestUnmarshalNaN(c *C) { + value := map[string]interface{}{} + err := yaml.Unmarshal([]byte("notanum: .NaN"), &value) + c.Assert(err, IsNil) + c.Assert(math.IsNaN(value["notanum"].(float64)), Equals, true) +} + +var unmarshalErrorTests = []struct { + data, error string +}{ + {"v: !!float 'error'", "yaml: cannot decode !!str `error` as a !!float"}, + {"v: [A,", "yaml: line 1: did not find expected node content"}, + {"v:\n- [A,", "yaml: line 2: did not find expected node content"}, + {"a: *b\n", "yaml: unknown anchor 'b' referenced"}, + {"a: &a\n b: *a\n", "yaml: anchor 'a' value contains itself"}, + {"value: -", "yaml: block sequence entries are not allowed in this context"}, + {"a: !!binary ==", "yaml: !!binary value contains invalid base64 data"}, + {"{[.]}", `yaml: invalid map key: \[\]interface \{\}\{"\."\}`}, + {"{{.}}", `yaml: invalid map key: map\[interface\ \{\}\]interface \{\}\{".":interface \{\}\(nil\)\}`}, +} + +func (s *S) TestUnmarshalErrors(c *C) { + for _, item := range unmarshalErrorTests { + var value interface{} + err := yaml.Unmarshal([]byte(item.data), &value) + c.Assert(err, ErrorMatches, item.error, Commentf("Partial unmarshal: %#v", value)) + } +} + +var unmarshalerTests = []struct { + data, tag string + value interface{} +}{ + {"_: {hi: there}", "!!map", map[interface{}]interface{}{"hi": "there"}}, + {"_: [1,A]", "!!seq", []interface{}{1, "A"}}, + {"_: 10", "!!int", 10}, + {"_: null", "!!null", nil}, + {`_: BAR!`, "!!str", "BAR!"}, + {`_: "BAR!"`, "!!str", "BAR!"}, + {"_: !!foo 'BAR!'", "!!foo", "BAR!"}, +} + +var unmarshalerResult = map[int]error{} + +type unmarshalerType struct { + value interface{} +} + +func (o *unmarshalerType) UnmarshalYAML(unmarshal func(v interface{}) error) error { + if err := unmarshal(&o.value); err != nil { + return err + } + if i, ok := o.value.(int); ok { + if result, ok := unmarshalerResult[i]; ok { + return result + } + } + return nil +} + +type unmarshalerPointer struct { + Field *unmarshalerType "_" +} + +type unmarshalerValue struct { + Field unmarshalerType "_" +} + +func (s *S) TestUnmarshalerPointerField(c *C) { + for _, item := range unmarshalerTests { + obj := &unmarshalerPointer{} + err := yaml.Unmarshal([]byte(item.data), obj) + c.Assert(err, IsNil) + if item.value == nil { + c.Assert(obj.Field, IsNil) + } else { + c.Assert(obj.Field, NotNil, Commentf("Pointer not initialized (%#v)", item.value)) + c.Assert(obj.Field.value, DeepEquals, item.value) + } + } +} + +func (s *S) TestUnmarshalerValueField(c *C) { + for _, item := range unmarshalerTests { + obj := &unmarshalerValue{} + err := yaml.Unmarshal([]byte(item.data), obj) + c.Assert(err, IsNil) + c.Assert(obj.Field, NotNil, Commentf("Pointer not initialized (%#v)", item.value)) + c.Assert(obj.Field.value, DeepEquals, item.value) + } +} + +func (s *S) TestUnmarshalerWholeDocument(c *C) { + obj := &unmarshalerType{} + err := yaml.Unmarshal([]byte(unmarshalerTests[0].data), obj) + c.Assert(err, IsNil) + value, ok := obj.value.(map[interface{}]interface{}) + c.Assert(ok, Equals, true, Commentf("value: %#v", obj.value)) + c.Assert(value["_"], DeepEquals, unmarshalerTests[0].value) +} + +func (s *S) TestUnmarshalerTypeError(c *C) { + unmarshalerResult[2] = &yaml.TypeError{[]string{"foo"}} + unmarshalerResult[4] = &yaml.TypeError{[]string{"bar"}} + defer func() { + delete(unmarshalerResult, 2) + delete(unmarshalerResult, 4) + }() + + type T struct { + Before int + After int + M map[string]*unmarshalerType + } + var v T + data := `{before: A, m: {abc: 1, def: 2, ghi: 3, jkl: 4}, after: B}` + err := yaml.Unmarshal([]byte(data), &v) + c.Assert(err, ErrorMatches, ""+ + "yaml: unmarshal errors:\n"+ + " line 1: cannot unmarshal !!str `A` into int\n"+ + " foo\n"+ + " bar\n"+ + " line 1: cannot unmarshal !!str `B` into int") + c.Assert(v.M["abc"], NotNil) + c.Assert(v.M["def"], IsNil) + c.Assert(v.M["ghi"], NotNil) + c.Assert(v.M["jkl"], IsNil) + + c.Assert(v.M["abc"].value, Equals, 1) + c.Assert(v.M["ghi"].value, Equals, 3) +} + +type proxyTypeError struct{} + +func (v *proxyTypeError) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + var a int32 + var b int64 + if err := unmarshal(&s); err != nil { + panic(err) + } + if s == "a" { + if err := unmarshal(&b); err == nil { + panic("should have failed") + } + return unmarshal(&a) + } + if err := unmarshal(&a); err == nil { + panic("should have failed") + } + return unmarshal(&b) +} + +func (s *S) TestUnmarshalerTypeErrorProxying(c *C) { + type T struct { + Before int + After int + M map[string]*proxyTypeError + } + var v T + data := `{before: A, m: {abc: a, def: b}, after: B}` + err := yaml.Unmarshal([]byte(data), &v) + c.Assert(err, ErrorMatches, ""+ + "yaml: unmarshal errors:\n"+ + " line 1: cannot unmarshal !!str `A` into int\n"+ + " line 1: cannot unmarshal !!str `a` into int32\n"+ + " line 1: cannot unmarshal !!str `b` into int64\n"+ + " line 1: cannot unmarshal !!str `B` into int") +} + +type failingUnmarshaler struct{} + +var failingErr = errors.New("failingErr") + +func (ft *failingUnmarshaler) UnmarshalYAML(unmarshal func(interface{}) error) error { + return failingErr +} + +func (s *S) TestUnmarshalerError(c *C) { + err := yaml.Unmarshal([]byte("a: b"), &failingUnmarshaler{}) + c.Assert(err, Equals, failingErr) +} + +type sliceUnmarshaler []int + +func (su *sliceUnmarshaler) UnmarshalYAML(unmarshal func(interface{}) error) error { + var slice []int + err := unmarshal(&slice) + if err == nil { + *su = slice + return nil + } + + var intVal int + err = unmarshal(&intVal) + if err == nil { + *su = []int{intVal} + return nil + } + + return err +} + +func (s *S) TestUnmarshalerRetry(c *C) { + var su sliceUnmarshaler + err := yaml.Unmarshal([]byte("[1, 2, 3]"), &su) + c.Assert(err, IsNil) + c.Assert(su, DeepEquals, sliceUnmarshaler([]int{1, 2, 3})) + + err = yaml.Unmarshal([]byte("1"), &su) + c.Assert(err, IsNil) + c.Assert(su, DeepEquals, sliceUnmarshaler([]int{1})) +} + +// From http://yaml.org/type/merge.html +var mergeTests = ` +anchors: + list: + - &CENTER { "x": 1, "y": 2 } + - &LEFT { "x": 0, "y": 2 } + - &BIG { "r": 10 } + - &SMALL { "r": 1 } + +# All the following maps are equal: + +plain: + # Explicit keys + "x": 1 + "y": 2 + "r": 10 + label: center/big + +mergeOne: + # Merge one map + << : *CENTER + "r": 10 + label: center/big + +mergeMultiple: + # Merge multiple maps + << : [ *CENTER, *BIG ] + label: center/big + +override: + # Override + << : [ *BIG, *LEFT, *SMALL ] + "x": 1 + label: center/big + +shortTag: + # Explicit short merge tag + !!merge "<<" : [ *CENTER, *BIG ] + label: center/big + +longTag: + # Explicit merge long tag + ! "<<" : [ *CENTER, *BIG ] + label: center/big + +inlineMap: + # Inlined map + << : {"x": 1, "y": 2, "r": 10} + label: center/big + +inlineSequenceMap: + # Inlined map in sequence + << : [ *CENTER, {"r": 10} ] + label: center/big +` + +func (s *S) TestMerge(c *C) { + var want = map[interface{}]interface{}{ + "x": 1, + "y": 2, + "r": 10, + "label": "center/big", + } + + var m map[interface{}]interface{} + err := yaml.Unmarshal([]byte(mergeTests), &m) + c.Assert(err, IsNil) + for name, test := range m { + if name == "anchors" { + continue + } + c.Assert(test, DeepEquals, want, Commentf("test %q failed", name)) + } +} + +func (s *S) TestMergeStruct(c *C) { + type Data struct { + X, Y, R int + Label string + } + want := Data{1, 2, 10, "center/big"} + + var m map[string]Data + err := yaml.Unmarshal([]byte(mergeTests), &m) + c.Assert(err, IsNil) + for name, test := range m { + if name == "anchors" { + continue + } + c.Assert(test, Equals, want, Commentf("test %q failed", name)) + } +} + +var unmarshalNullTests = []func() interface{}{ + func() interface{} { var v interface{}; v = "v"; return &v }, + func() interface{} { var s = "s"; return &s }, + func() interface{} { var s = "s"; sptr := &s; return &sptr }, + func() interface{} { var i = 1; return &i }, + func() interface{} { var i = 1; iptr := &i; return &iptr }, + func() interface{} { m := map[string]int{"s": 1}; return &m }, + func() interface{} { m := map[string]int{"s": 1}; return m }, +} + +func (s *S) TestUnmarshalNull(c *C) { + for _, test := range unmarshalNullTests { + item := test() + zero := reflect.Zero(reflect.TypeOf(item).Elem()).Interface() + err := yaml.Unmarshal([]byte("null"), item) + c.Assert(err, IsNil) + if reflect.TypeOf(item).Kind() == reflect.Map { + c.Assert(reflect.ValueOf(item).Interface(), DeepEquals, reflect.MakeMap(reflect.TypeOf(item)).Interface()) + } else { + c.Assert(reflect.ValueOf(item).Elem().Interface(), DeepEquals, zero) + } + } +} + +func (s *S) TestUnmarshalSliceOnPreset(c *C) { + // Issue #48. + v := struct{ A []int }{[]int{1}} + yaml.Unmarshal([]byte("a: [2]"), &v) + c.Assert(v.A, DeepEquals, []int{2}) +} + +//var data []byte +//func init() { +// var err error +// data, err = ioutil.ReadFile("/tmp/file.yaml") +// if err != nil { +// panic(err) +// } +//} +// +//func (s *S) BenchmarkUnmarshal(c *C) { +// var err error +// for i := 0; i < c.N; i++ { +// var v map[string]interface{} +// err = yaml.Unmarshal(data, &v) +// } +// if err != nil { +// panic(err) +// } +//} +// +//func (s *S) BenchmarkMarshal(c *C) { +// var v map[string]interface{} +// yaml.Unmarshal(data, &v) +// c.ResetTimer() +// for i := 0; i < c.N; i++ { +// yaml.Marshal(&v) +// } +//} diff --git a/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go new file mode 100644 index 00000000..2befd553 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/emitterc.go @@ -0,0 +1,1685 @@ +package yaml + +import ( + "bytes" +) + +// Flush the buffer if needed. +func flush(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) { + return yaml_emitter_flush(emitter) + } + return true +} + +// Put a character to the output buffer. +func put(emitter *yaml_emitter_t, value byte) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + emitter.buffer[emitter.buffer_pos] = value + emitter.buffer_pos++ + emitter.column++ + return true +} + +// Put a line break to the output buffer. +func put_break(emitter *yaml_emitter_t) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + switch emitter.line_break { + case yaml_CR_BREAK: + emitter.buffer[emitter.buffer_pos] = '\r' + emitter.buffer_pos += 1 + case yaml_LN_BREAK: + emitter.buffer[emitter.buffer_pos] = '\n' + emitter.buffer_pos += 1 + case yaml_CRLN_BREAK: + emitter.buffer[emitter.buffer_pos+0] = '\r' + emitter.buffer[emitter.buffer_pos+1] = '\n' + emitter.buffer_pos += 2 + default: + panic("unknown line break setting") + } + emitter.column = 0 + emitter.line++ + return true +} + +// Copy a character from a string into buffer. +func write(emitter *yaml_emitter_t, s []byte, i *int) bool { + if emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) { + return false + } + p := emitter.buffer_pos + w := width(s[*i]) + switch w { + case 4: + emitter.buffer[p+3] = s[*i+3] + fallthrough + case 3: + emitter.buffer[p+2] = s[*i+2] + fallthrough + case 2: + emitter.buffer[p+1] = s[*i+1] + fallthrough + case 1: + emitter.buffer[p+0] = s[*i+0] + default: + panic("unknown character width") + } + emitter.column++ + emitter.buffer_pos += w + *i += w + return true +} + +// Write a whole string into buffer. +func write_all(emitter *yaml_emitter_t, s []byte) bool { + for i := 0; i < len(s); { + if !write(emitter, s, &i) { + return false + } + } + return true +} + +// Copy a line break character from a string into buffer. +func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool { + if s[*i] == '\n' { + if !put_break(emitter) { + return false + } + *i++ + } else { + if !write(emitter, s, i) { + return false + } + emitter.column = 0 + emitter.line++ + } + return true +} + +// Set an emitter error and return false. +func yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_EMITTER_ERROR + emitter.problem = problem + return false +} + +// Emit an event. +func yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.events = append(emitter.events, *event) + for !yaml_emitter_need_more_events(emitter) { + event := &emitter.events[emitter.events_head] + if !yaml_emitter_analyze_event(emitter, event) { + return false + } + if !yaml_emitter_state_machine(emitter, event) { + return false + } + yaml_event_delete(event) + emitter.events_head++ + } + return true +} + +// Check if we need to accumulate more events before emitting. +// +// We accumulate extra +// - 1 event for DOCUMENT-START +// - 2 events for SEQUENCE-START +// - 3 events for MAPPING-START +// +func yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool { + if emitter.events_head == len(emitter.events) { + return true + } + var accumulate int + switch emitter.events[emitter.events_head].typ { + case yaml_DOCUMENT_START_EVENT: + accumulate = 1 + break + case yaml_SEQUENCE_START_EVENT: + accumulate = 2 + break + case yaml_MAPPING_START_EVENT: + accumulate = 3 + break + default: + return false + } + if len(emitter.events)-emitter.events_head > accumulate { + return false + } + var level int + for i := emitter.events_head; i < len(emitter.events); i++ { + switch emitter.events[i].typ { + case yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT: + level++ + case yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT: + level-- + } + if level == 0 { + return false + } + } + return true +} + +// Append a directive to the directives stack. +func yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool { + for i := 0; i < len(emitter.tag_directives); i++ { + if bytes.Equal(value.handle, emitter.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_emitter_set_emitter_error(emitter, "duplicate %TAG directive") + } + } + + // [Go] Do we actually need to copy this given garbage collection + // and the lack of deallocating destructors? + tag_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(tag_copy.handle, value.handle) + copy(tag_copy.prefix, value.prefix) + emitter.tag_directives = append(emitter.tag_directives, tag_copy) + return true +} + +// Increase the indentation level. +func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool { + emitter.indents = append(emitter.indents, emitter.indent) + if emitter.indent < 0 { + if flow { + emitter.indent = emitter.best_indent + } else { + emitter.indent = 0 + } + } else if !indentless { + emitter.indent += emitter.best_indent + } + return true +} + +// State dispatcher. +func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool { + switch emitter.state { + default: + case yaml_EMIT_STREAM_START_STATE: + return yaml_emitter_emit_stream_start(emitter, event) + + case yaml_EMIT_FIRST_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, true) + + case yaml_EMIT_DOCUMENT_START_STATE: + return yaml_emitter_emit_document_start(emitter, event, false) + + case yaml_EMIT_DOCUMENT_CONTENT_STATE: + return yaml_emitter_emit_document_content(emitter, event) + + case yaml_EMIT_DOCUMENT_END_STATE: + return yaml_emitter_emit_document_end(emitter, event) + + case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, true) + + case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_flow_sequence_item(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_KEY_STATE: + return yaml_emitter_emit_flow_mapping_key(emitter, event, false) + + case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, true) + + case yaml_EMIT_FLOW_MAPPING_VALUE_STATE: + return yaml_emitter_emit_flow_mapping_value(emitter, event, false) + + case yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, true) + + case yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE: + return yaml_emitter_emit_block_sequence_item(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_KEY_STATE: + return yaml_emitter_emit_block_mapping_key(emitter, event, false) + + case yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, true) + + case yaml_EMIT_BLOCK_MAPPING_VALUE_STATE: + return yaml_emitter_emit_block_mapping_value(emitter, event, false) + + case yaml_EMIT_END_STATE: + return yaml_emitter_set_emitter_error(emitter, "expected nothing after STREAM-END") + } + panic("invalid emitter state") +} + +// Expect STREAM-START. +func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_STREAM_START_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected STREAM-START") + } + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = event.encoding + if emitter.encoding == yaml_ANY_ENCODING { + emitter.encoding = yaml_UTF8_ENCODING + } + } + if emitter.best_indent < 2 || emitter.best_indent > 9 { + emitter.best_indent = 2 + } + if emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 { + emitter.best_width = 80 + } + if emitter.best_width < 0 { + emitter.best_width = 1<<31 - 1 + } + if emitter.line_break == yaml_ANY_BREAK { + emitter.line_break = yaml_LN_BREAK + } + + emitter.indent = -1 + emitter.line = 0 + emitter.column = 0 + emitter.whitespace = true + emitter.indention = true + + if emitter.encoding != yaml_UTF8_ENCODING { + if !yaml_emitter_write_bom(emitter) { + return false + } + } + emitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE + return true +} + +// Expect DOCUMENT-START or STREAM-END. +func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + + if event.typ == yaml_DOCUMENT_START_EVENT { + + if event.version_directive != nil { + if !yaml_emitter_analyze_version_directive(emitter, event.version_directive) { + return false + } + } + + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_analyze_tag_directive(emitter, tag_directive) { + return false + } + if !yaml_emitter_append_tag_directive(emitter, tag_directive, false) { + return false + } + } + + for i := 0; i < len(default_tag_directives); i++ { + tag_directive := &default_tag_directives[i] + if !yaml_emitter_append_tag_directive(emitter, tag_directive, true) { + return false + } + } + + implicit := event.implicit + if !first || emitter.canonical { + implicit = false + } + + if emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if event.version_directive != nil { + implicit = false + if !yaml_emitter_write_indicator(emitter, []byte("%YAML"), true, false, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("1.1"), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if len(event.tag_directives) > 0 { + implicit = false + for i := 0; i < len(event.tag_directives); i++ { + tag_directive := &event.tag_directives[i] + if !yaml_emitter_write_indicator(emitter, []byte("%TAG"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) { + return false + } + if !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + if yaml_emitter_check_empty_document(emitter) { + implicit = false + } + if !implicit { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) { + return false + } + if emitter.canonical { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + } + + emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE + return true + } + + if event.typ == yaml_STREAM_END_EVENT { + if emitter.open_ended { + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_END_STATE + return true + } + + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-START or STREAM-END") +} + +// Expect the root node. +func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool { + emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE) + return yaml_emitter_emit_node(emitter, event, true, false, false, false) +} + +// Expect DOCUMENT-END. +func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if event.typ != yaml_DOCUMENT_END_EVENT { + return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END") + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !event.implicit { + // [Go] Allocate the slice elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("..."), true, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_flush(emitter) { + return false + } + emitter.state = yaml_EMIT_DOCUMENT_START_STATE + emitter.tag_directives = emitter.tag_directives[:0] + return true +} + +// Expect a flow item node. +func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a flow key node. +func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + emitter.flow_level++ + } + + if event.typ == yaml_MAPPING_END_EVENT { + emitter.flow_level-- + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + if emitter.canonical && !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + + if !first { + if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) { + return false + } + } + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + + if !emitter.canonical && yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a flow value node. +func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if emitter.canonical || emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block item node. +func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) { + return false + } + } + if event.typ == yaml_SEQUENCE_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE) + return yaml_emitter_emit_node(emitter, event, false, true, false, false) +} + +// Expect a block key node. +func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool { + if first { + if !yaml_emitter_increase_indent(emitter, false, false) { + return false + } + } + if event.typ == yaml_MAPPING_END_EVENT { + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true + } + if !yaml_emitter_write_indent(emitter) { + return false + } + if yaml_emitter_check_simple_key(emitter) { + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, true) + } + if !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) { + return false + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a block value node. +func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool { + if simple { + if !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) { + return false + } + } else { + if !yaml_emitter_write_indent(emitter) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) { + return false + } + } + emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE) + return yaml_emitter_emit_node(emitter, event, false, false, true, false) +} + +// Expect a node. +func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t, + root bool, sequence bool, mapping bool, simple_key bool) bool { + + emitter.root_context = root + emitter.sequence_context = sequence + emitter.mapping_context = mapping + emitter.simple_key_context = simple_key + + switch event.typ { + case yaml_ALIAS_EVENT: + return yaml_emitter_emit_alias(emitter, event) + case yaml_SCALAR_EVENT: + return yaml_emitter_emit_scalar(emitter, event) + case yaml_SEQUENCE_START_EVENT: + return yaml_emitter_emit_sequence_start(emitter, event) + case yaml_MAPPING_START_EVENT: + return yaml_emitter_emit_mapping_start(emitter, event) + default: + return yaml_emitter_set_emitter_error(emitter, + "expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS") + } + return false +} + +// Expect ALIAS. +func yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SCALAR. +func yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_select_scalar_style(emitter, event) { + return false + } + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if !yaml_emitter_increase_indent(emitter, true, false) { + return false + } + if !yaml_emitter_process_scalar(emitter) { + return false + } + emitter.indent = emitter.indents[len(emitter.indents)-1] + emitter.indents = emitter.indents[:len(emitter.indents)-1] + emitter.state = emitter.states[len(emitter.states)-1] + emitter.states = emitter.states[:len(emitter.states)-1] + return true +} + +// Expect SEQUENCE-START. +func yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE || + yaml_emitter_check_empty_sequence(emitter) { + emitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE + } + return true +} + +// Expect MAPPING-START. +func yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool { + if !yaml_emitter_process_anchor(emitter) { + return false + } + if !yaml_emitter_process_tag(emitter) { + return false + } + if emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE || + yaml_emitter_check_empty_mapping(emitter) { + emitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE + } else { + emitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE + } + return true +} + +// Check if the document content is an empty scalar. +func yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool { + return false // [Go] Huh? +} + +// Check if the next events represent an empty sequence. +func yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT +} + +// Check if the next events represent an empty mapping. +func yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool { + if len(emitter.events)-emitter.events_head < 2 { + return false + } + return emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT && + emitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT +} + +// Check if the next node can be expressed as a simple key. +func yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool { + length := 0 + switch emitter.events[emitter.events_head].typ { + case yaml_ALIAS_EVENT: + length += len(emitter.anchor_data.anchor) + case yaml_SCALAR_EVENT: + if emitter.scalar_data.multiline { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + + len(emitter.scalar_data.value) + case yaml_SEQUENCE_START_EVENT: + if !yaml_emitter_check_empty_sequence(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + case yaml_MAPPING_START_EVENT: + if !yaml_emitter_check_empty_mapping(emitter) { + return false + } + length += len(emitter.anchor_data.anchor) + + len(emitter.tag_data.handle) + + len(emitter.tag_data.suffix) + default: + return false + } + return length <= 128 +} + +// Determine an acceptable scalar style. +func yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + no_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 + if no_tag && !event.implicit && !event.quoted_implicit { + return yaml_emitter_set_emitter_error(emitter, "neither tag nor implicit flags are specified") + } + + style := event.scalar_style() + if style == yaml_ANY_SCALAR_STYLE { + style = yaml_PLAIN_SCALAR_STYLE + } + if emitter.canonical { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + if emitter.simple_key_context && emitter.scalar_data.multiline { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + + if style == yaml_PLAIN_SCALAR_STYLE { + if emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed || + emitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + if no_tag && !event.implicit { + style = yaml_SINGLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_SINGLE_QUOTED_SCALAR_STYLE { + if !emitter.scalar_data.single_quoted_allowed { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + if style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE { + if !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + } + + if no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE { + emitter.tag_data.handle = []byte{'!'} + } + emitter.scalar_data.style = style + return true +} + +// Write an achor. +func yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool { + if emitter.anchor_data.anchor == nil { + return true + } + c := []byte{'&'} + if emitter.anchor_data.alias { + c[0] = '*' + } + if !yaml_emitter_write_indicator(emitter, c, true, false, false) { + return false + } + return yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor) +} + +// Write a tag. +func yaml_emitter_process_tag(emitter *yaml_emitter_t) bool { + if len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 { + return true + } + if len(emitter.tag_data.handle) > 0 { + if !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) { + return false + } + if len(emitter.tag_data.suffix) > 0 { + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + } + } else { + // [Go] Allocate these slices elsewhere. + if !yaml_emitter_write_indicator(emitter, []byte("!<"), true, false, false) { + return false + } + if !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) { + return false + } + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) { + return false + } + } + return true +} + +// Write a scalar. +func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool { + switch emitter.scalar_data.style { + case yaml_PLAIN_SCALAR_STYLE: + return yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_SINGLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_DOUBLE_QUOTED_SCALAR_STYLE: + return yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context) + + case yaml_LITERAL_SCALAR_STYLE: + return yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value) + + case yaml_FOLDED_SCALAR_STYLE: + return yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value) + } + panic("unknown scalar style") +} + +// Check if a %YAML directive is valid. +func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool { + if version_directive.major != 1 || version_directive.minor != 1 { + return yaml_emitter_set_emitter_error(emitter, "incompatible %YAML directive") + } + return true +} + +// Check if a %TAG directive is valid. +func yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool { + handle := tag_directive.handle + prefix := tag_directive.prefix + if len(handle) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag handle must not be empty") + } + if handle[0] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must start with '!'") + } + if handle[len(handle)-1] != '!' { + return yaml_emitter_set_emitter_error(emitter, "tag handle must end with '!'") + } + for i := 1; i < len(handle)-1; i += width(handle[i]) { + if !is_alpha(handle, i) { + return yaml_emitter_set_emitter_error(emitter, "tag handle must contain alphanumerical characters only") + } + } + if len(prefix) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag prefix must not be empty") + } + return true +} + +// Check if an anchor is valid. +func yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool { + if len(anchor) == 0 { + problem := "anchor value must not be empty" + if alias { + problem = "alias value must not be empty" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + for i := 0; i < len(anchor); i += width(anchor[i]) { + if !is_alpha(anchor, i) { + problem := "anchor value must contain alphanumerical characters only" + if alias { + problem = "alias value must contain alphanumerical characters only" + } + return yaml_emitter_set_emitter_error(emitter, problem) + } + } + emitter.anchor_data.anchor = anchor + emitter.anchor_data.alias = alias + return true +} + +// Check if a tag is valid. +func yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool { + if len(tag) == 0 { + return yaml_emitter_set_emitter_error(emitter, "tag value must not be empty") + } + for i := 0; i < len(emitter.tag_directives); i++ { + tag_directive := &emitter.tag_directives[i] + if bytes.HasPrefix(tag, tag_directive.prefix) { + emitter.tag_data.handle = tag_directive.handle + emitter.tag_data.suffix = tag[len(tag_directive.prefix):] + return true + } + } + emitter.tag_data.suffix = tag + return true +} + +// Check if a scalar is valid. +func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool { + var ( + block_indicators = false + flow_indicators = false + line_breaks = false + special_characters = false + + leading_space = false + leading_break = false + trailing_space = false + trailing_break = false + break_space = false + space_break = false + + preceeded_by_whitespace = false + followed_by_whitespace = false + previous_space = false + previous_break = false + ) + + emitter.scalar_data.value = value + + if len(value) == 0 { + emitter.scalar_data.multiline = false + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = false + return true + } + + if len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) { + block_indicators = true + flow_indicators = true + } + + preceeded_by_whitespace = true + for i, w := 0, 0; i < len(value); i += w { + w = width(value[i]) + followed_by_whitespace = i+w >= len(value) || is_blank(value, i+w) + + if i == 0 { + switch value[i] { + case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': + flow_indicators = true + block_indicators = true + case '?', ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '-': + if followed_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } else { + switch value[i] { + case ',', '?', '[', ']', '{', '}': + flow_indicators = true + case ':': + flow_indicators = true + if followed_by_whitespace { + block_indicators = true + } + case '#': + if preceeded_by_whitespace { + flow_indicators = true + block_indicators = true + } + } + } + + if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode { + special_characters = true + } + if is_space(value, i) { + if i == 0 { + leading_space = true + } + if i+width(value[i]) == len(value) { + trailing_space = true + } + if previous_break { + break_space = true + } + previous_space = true + previous_break = false + } else if is_break(value, i) { + line_breaks = true + if i == 0 { + leading_break = true + } + if i+width(value[i]) == len(value) { + trailing_break = true + } + if previous_space { + space_break = true + } + previous_space = false + previous_break = true + } else { + previous_space = false + previous_break = false + } + + // [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition. + preceeded_by_whitespace = is_blankz(value, i) + } + + emitter.scalar_data.multiline = line_breaks + emitter.scalar_data.flow_plain_allowed = true + emitter.scalar_data.block_plain_allowed = true + emitter.scalar_data.single_quoted_allowed = true + emitter.scalar_data.block_allowed = true + + if leading_space || leading_break || trailing_space || trailing_break { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if trailing_space { + emitter.scalar_data.block_allowed = false + } + if break_space { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + } + if space_break || special_characters { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + emitter.scalar_data.single_quoted_allowed = false + emitter.scalar_data.block_allowed = false + } + if line_breaks { + emitter.scalar_data.flow_plain_allowed = false + emitter.scalar_data.block_plain_allowed = false + } + if flow_indicators { + emitter.scalar_data.flow_plain_allowed = false + } + if block_indicators { + emitter.scalar_data.block_plain_allowed = false + } + return true +} + +// Check if the event data is valid. +func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool { + + emitter.anchor_data.anchor = nil + emitter.tag_data.handle = nil + emitter.tag_data.suffix = nil + emitter.scalar_data.value = nil + + switch event.typ { + case yaml_ALIAS_EVENT: + if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) { + return false + } + + case yaml_SCALAR_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + if !yaml_emitter_analyze_scalar(emitter, event.value) { + return false + } + + case yaml_SEQUENCE_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + + case yaml_MAPPING_START_EVENT: + if len(event.anchor) > 0 { + if !yaml_emitter_analyze_anchor(emitter, event.anchor, false) { + return false + } + } + if len(event.tag) > 0 && (emitter.canonical || !event.implicit) { + if !yaml_emitter_analyze_tag(emitter, event.tag) { + return false + } + } + } + return true +} + +// Write the BOM character. +func yaml_emitter_write_bom(emitter *yaml_emitter_t) bool { + if !flush(emitter) { + return false + } + pos := emitter.buffer_pos + emitter.buffer[pos+0] = '\xEF' + emitter.buffer[pos+1] = '\xBB' + emitter.buffer[pos+2] = '\xBF' + emitter.buffer_pos += 3 + return true +} + +func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool { + indent := emitter.indent + if indent < 0 { + indent = 0 + } + if !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) { + if !put_break(emitter) { + return false + } + } + for emitter.column < indent { + if !put(emitter, ' ') { + return false + } + } + emitter.whitespace = true + emitter.indention = true + return true +} + +func yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, indicator) { + return false + } + emitter.whitespace = is_whitespace + emitter.indention = (emitter.indention && is_indention) + emitter.open_ended = false + return true +} + +func yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool { + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + if !write_all(emitter, value) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool { + if need_whitespace && !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + for i := 0; i < len(value); { + var must_write bool + switch value[i] { + case ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\'', '(', ')', '[', ']': + must_write = true + default: + must_write = is_alpha(value, i) + } + if must_write { + if !write(emitter, value, &i) { + return false + } + } else { + w := width(value[i]) + for k := 0; k < w; k++ { + octet := value[i] + i++ + if !put(emitter, '%') { + return false + } + + c := octet >> 4 + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + + c = octet & 0x0f + if c < 10 { + c += '0' + } else { + c += 'A' - 10 + } + if !put(emitter, c) { + return false + } + } + } + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + if !emitter.whitespace { + if !put(emitter, ' ') { + return false + } + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + + emitter.whitespace = false + emitter.indention = false + if emitter.root_context { + emitter.open_ended = true + } + + return true +} + +func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, true, false, false) { + return false + } + + spaces := false + breaks := false + for i := 0; i < len(value); { + if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + spaces = true + } else if is_break(value, i) { + if !breaks && value[i] == '\n' { + if !put_break(emitter) { + return false + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if value[i] == '\'' { + if !put(emitter, '\'') { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + spaces = false + breaks = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'\''}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool { + spaces := false + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, true, false, false) { + return false + } + + for i := 0; i < len(value); { + if !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) || + is_bom(value, i) || is_break(value, i) || + value[i] == '"' || value[i] == '\\' { + + octet := value[i] + + var w int + var v rune + switch { + case octet&0x80 == 0x00: + w, v = 1, rune(octet&0x7F) + case octet&0xE0 == 0xC0: + w, v = 2, rune(octet&0x1F) + case octet&0xF0 == 0xE0: + w, v = 3, rune(octet&0x0F) + case octet&0xF8 == 0xF0: + w, v = 4, rune(octet&0x07) + } + for k := 1; k < w; k++ { + octet = value[i+k] + v = (v << 6) + (rune(octet) & 0x3F) + } + i += w + + if !put(emitter, '\\') { + return false + } + + var ok bool + switch v { + case 0x00: + ok = put(emitter, '0') + case 0x07: + ok = put(emitter, 'a') + case 0x08: + ok = put(emitter, 'b') + case 0x09: + ok = put(emitter, 't') + case 0x0A: + ok = put(emitter, 'n') + case 0x0b: + ok = put(emitter, 'v') + case 0x0c: + ok = put(emitter, 'f') + case 0x0d: + ok = put(emitter, 'r') + case 0x1b: + ok = put(emitter, 'e') + case 0x22: + ok = put(emitter, '"') + case 0x5c: + ok = put(emitter, '\\') + case 0x85: + ok = put(emitter, 'N') + case 0xA0: + ok = put(emitter, '_') + case 0x2028: + ok = put(emitter, 'L') + case 0x2029: + ok = put(emitter, 'P') + default: + if v <= 0xFF { + ok = put(emitter, 'x') + w = 2 + } else if v <= 0xFFFF { + ok = put(emitter, 'u') + w = 4 + } else { + ok = put(emitter, 'U') + w = 8 + } + for k := (w - 1) * 4; ok && k >= 0; k -= 4 { + digit := byte((v >> uint(k)) & 0x0F) + if digit < 10 { + ok = put(emitter, digit+'0') + } else { + ok = put(emitter, digit+'A'-10) + } + } + } + if !ok { + return false + } + spaces = false + } else if is_space(value, i) { + if allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 { + if !yaml_emitter_write_indent(emitter) { + return false + } + if is_space(value, i+1) { + if !put(emitter, '\\') { + return false + } + } + i += width(value[i]) + } else if !write(emitter, value, &i) { + return false + } + spaces = true + } else { + if !write(emitter, value, &i) { + return false + } + spaces = false + } + } + if !yaml_emitter_write_indicator(emitter, []byte{'"'}, false, false, false) { + return false + } + emitter.whitespace = false + emitter.indention = false + return true +} + +func yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool { + if is_space(value, 0) || is_break(value, 0) { + indent_hint := []byte{'0' + byte(emitter.best_indent)} + if !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) { + return false + } + } + + emitter.open_ended = false + + var chomp_hint [1]byte + if len(value) == 0 { + chomp_hint[0] = '-' + } else { + i := len(value) - 1 + for value[i]&0xC0 == 0x80 { + i-- + } + if !is_break(value, i) { + chomp_hint[0] = '-' + } else if i == 0 { + chomp_hint[0] = '+' + emitter.open_ended = true + } else { + i-- + for value[i]&0xC0 == 0x80 { + i-- + } + if is_break(value, i) { + chomp_hint[0] = '+' + emitter.open_ended = true + } + } + } + if chomp_hint[0] != 0 { + if !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) { + return false + } + } + return true +} + +func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + breaks := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + } + if !write(emitter, value, &i) { + return false + } + emitter.indention = false + breaks = false + } + } + + return true +} + +func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool { + if !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) { + return false + } + if !yaml_emitter_write_block_scalar_hints(emitter, value) { + return false + } + + if !put_break(emitter) { + return false + } + emitter.indention = true + emitter.whitespace = true + + breaks := true + leading_spaces := true + for i := 0; i < len(value); { + if is_break(value, i) { + if !breaks && !leading_spaces && value[i] == '\n' { + k := 0 + for is_break(value, k) { + k += width(value[k]) + } + if !is_blankz(value, k) { + if !put_break(emitter) { + return false + } + } + } + if !write_break(emitter, value, &i) { + return false + } + emitter.indention = true + breaks = true + } else { + if breaks { + if !yaml_emitter_write_indent(emitter) { + return false + } + leading_spaces = is_blank(value, i) + } + if !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width { + if !yaml_emitter_write_indent(emitter) { + return false + } + i += width(value[i]) + } else { + if !write(emitter, value, &i) { + return false + } + } + emitter.indention = false + breaks = false + } + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go new file mode 100644 index 00000000..84f84995 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/encode.go @@ -0,0 +1,306 @@ +package yaml + +import ( + "encoding" + "fmt" + "reflect" + "regexp" + "sort" + "strconv" + "strings" + "time" +) + +type encoder struct { + emitter yaml_emitter_t + event yaml_event_t + out []byte + flow bool +} + +func newEncoder() (e *encoder) { + e = &encoder{} + e.must(yaml_emitter_initialize(&e.emitter)) + yaml_emitter_set_output_string(&e.emitter, &e.out) + yaml_emitter_set_unicode(&e.emitter, true) + e.must(yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)) + e.emit() + e.must(yaml_document_start_event_initialize(&e.event, nil, nil, true)) + e.emit() + return e +} + +func (e *encoder) finish() { + e.must(yaml_document_end_event_initialize(&e.event, true)) + e.emit() + e.emitter.open_ended = false + e.must(yaml_stream_end_event_initialize(&e.event)) + e.emit() +} + +func (e *encoder) destroy() { + yaml_emitter_delete(&e.emitter) +} + +func (e *encoder) emit() { + // This will internally delete the e.event value. + if !yaml_emitter_emit(&e.emitter, &e.event) && e.event.typ != yaml_DOCUMENT_END_EVENT && e.event.typ != yaml_STREAM_END_EVENT { + e.must(false) + } +} + +func (e *encoder) must(ok bool) { + if !ok { + msg := e.emitter.problem + if msg == "" { + msg = "unknown problem generating YAML content" + } + failf("%s", msg) + } +} + +func (e *encoder) marshal(tag string, in reflect.Value) { + if !in.IsValid() { + e.nilv() + return + } + iface := in.Interface() + if m, ok := iface.(Marshaler); ok { + v, err := m.MarshalYAML() + if err != nil { + fail(err) + } + if v == nil { + e.nilv() + return + } + in = reflect.ValueOf(v) + } else if m, ok := iface.(encoding.TextMarshaler); ok { + text, err := m.MarshalText() + if err != nil { + fail(err) + } + in = reflect.ValueOf(string(text)) + } + switch in.Kind() { + case reflect.Interface: + if in.IsNil() { + e.nilv() + } else { + e.marshal(tag, in.Elem()) + } + case reflect.Map: + e.mapv(tag, in) + case reflect.Ptr: + if in.IsNil() { + e.nilv() + } else { + e.marshal(tag, in.Elem()) + } + case reflect.Struct: + e.structv(tag, in) + case reflect.Slice: + if in.Type().Elem() == mapItemType { + e.itemsv(tag, in) + } else { + e.slicev(tag, in) + } + case reflect.String: + e.stringv(tag, in) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if in.Type() == durationType { + e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String())) + } else { + e.intv(tag, in) + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + e.uintv(tag, in) + case reflect.Float32, reflect.Float64: + e.floatv(tag, in) + case reflect.Bool: + e.boolv(tag, in) + default: + panic("cannot marshal type: " + in.Type().String()) + } +} + +func (e *encoder) mapv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + keys := keyList(in.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + e.marshal("", k) + e.marshal("", in.MapIndex(k)) + } + }) +} + +func (e *encoder) itemsv(tag string, in reflect.Value) { + e.mappingv(tag, func() { + slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem) + for _, item := range slice { + e.marshal("", reflect.ValueOf(item.Key)) + e.marshal("", reflect.ValueOf(item.Value)) + } + }) +} + +func (e *encoder) structv(tag string, in reflect.Value) { + sinfo, err := getStructInfo(in.Type()) + if err != nil { + panic(err) + } + e.mappingv(tag, func() { + for _, info := range sinfo.FieldsList { + var value reflect.Value + if info.Inline == nil { + value = in.Field(info.Num) + } else { + value = in.FieldByIndex(info.Inline) + } + if info.OmitEmpty && isZero(value) { + continue + } + e.marshal("", reflect.ValueOf(info.Key)) + e.flow = info.Flow + e.marshal("", value) + } + if sinfo.InlineMap >= 0 { + m := in.Field(sinfo.InlineMap) + if m.Len() > 0 { + e.flow = false + keys := keyList(m.MapKeys()) + sort.Sort(keys) + for _, k := range keys { + if _, found := sinfo.FieldsMap[k.String()]; found { + panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String())) + } + e.marshal("", k) + e.flow = false + e.marshal("", m.MapIndex(k)) + } + } + } + }) +} + +func (e *encoder) mappingv(tag string, f func()) { + implicit := tag == "" + style := yaml_BLOCK_MAPPING_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_MAPPING_STYLE + } + e.must(yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) + e.emit() + f() + e.must(yaml_mapping_end_event_initialize(&e.event)) + e.emit() +} + +func (e *encoder) slicev(tag string, in reflect.Value) { + implicit := tag == "" + style := yaml_BLOCK_SEQUENCE_STYLE + if e.flow { + e.flow = false + style = yaml_FLOW_SEQUENCE_STYLE + } + e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) + e.emit() + n := in.Len() + for i := 0; i < n; i++ { + e.marshal("", in.Index(i)) + } + e.must(yaml_sequence_end_event_initialize(&e.event)) + e.emit() +} + +// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1. +// +// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported +// in YAML 1.2 and by this package, but these should be marshalled quoted for +// the time being for compatibility with other parsers. +func isBase60Float(s string) (result bool) { + // Fast path. + if s == "" { + return false + } + c := s[0] + if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 { + return false + } + // Do the full match. + return base60float.MatchString(s) +} + +// From http://yaml.org/type/float.html, except the regular expression there +// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix. +var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`) + +func (e *encoder) stringv(tag string, in reflect.Value) { + var style yaml_scalar_style_t + s := in.String() + rtag, rs := resolve("", s) + if rtag == yaml_BINARY_TAG { + if tag == "" || tag == yaml_STR_TAG { + tag = rtag + s = rs.(string) + } else if tag == yaml_BINARY_TAG { + failf("explicitly tagged !!binary data must be base64-encoded") + } else { + failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) + } + } + if tag == "" && (rtag != yaml_STR_TAG || isBase60Float(s)) { + style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } else if strings.Contains(s, "\n") { + style = yaml_LITERAL_SCALAR_STYLE + } else { + style = yaml_PLAIN_SCALAR_STYLE + } + e.emitScalar(s, "", tag, style) +} + +func (e *encoder) boolv(tag string, in reflect.Value) { + var s string + if in.Bool() { + s = "true" + } else { + s = "false" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) intv(tag string, in reflect.Value) { + s := strconv.FormatInt(in.Int(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) uintv(tag string, in reflect.Value) { + s := strconv.FormatUint(in.Uint(), 10) + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) floatv(tag string, in reflect.Value) { + // FIXME: Handle 64 bits here. + s := strconv.FormatFloat(float64(in.Float()), 'g', -1, 32) + switch s { + case "+Inf": + s = ".inf" + case "-Inf": + s = "-.inf" + case "NaN": + s = ".nan" + } + e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) nilv() { + e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE) +} + +func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) { + implicit := tag == "" + e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style)) + e.emit() +} diff --git a/vendor/gopkg.in/yaml.v2/encode_test.go b/vendor/gopkg.in/yaml.v2/encode_test.go new file mode 100644 index 00000000..84099bd3 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/encode_test.go @@ -0,0 +1,501 @@ +package yaml_test + +import ( + "fmt" + "math" + "strconv" + "strings" + "time" + + . "gopkg.in/check.v1" + "gopkg.in/yaml.v2" + "net" + "os" +) + +var marshalIntTest = 123 + +var marshalTests = []struct { + value interface{} + data string +}{ + { + nil, + "null\n", + }, { + &struct{}{}, + "{}\n", + }, { + map[string]string{"v": "hi"}, + "v: hi\n", + }, { + map[string]interface{}{"v": "hi"}, + "v: hi\n", + }, { + map[string]string{"v": "true"}, + "v: \"true\"\n", + }, { + map[string]string{"v": "false"}, + "v: \"false\"\n", + }, { + map[string]interface{}{"v": true}, + "v: true\n", + }, { + map[string]interface{}{"v": false}, + "v: false\n", + }, { + map[string]interface{}{"v": 10}, + "v: 10\n", + }, { + map[string]interface{}{"v": -10}, + "v: -10\n", + }, { + map[string]uint{"v": 42}, + "v: 42\n", + }, { + map[string]interface{}{"v": int64(4294967296)}, + "v: 4294967296\n", + }, { + map[string]int64{"v": int64(4294967296)}, + "v: 4294967296\n", + }, { + map[string]uint64{"v": 4294967296}, + "v: 4294967296\n", + }, { + map[string]interface{}{"v": "10"}, + "v: \"10\"\n", + }, { + map[string]interface{}{"v": 0.1}, + "v: 0.1\n", + }, { + map[string]interface{}{"v": float64(0.1)}, + "v: 0.1\n", + }, { + map[string]interface{}{"v": -0.1}, + "v: -0.1\n", + }, { + map[string]interface{}{"v": math.Inf(+1)}, + "v: .inf\n", + }, { + map[string]interface{}{"v": math.Inf(-1)}, + "v: -.inf\n", + }, { + map[string]interface{}{"v": math.NaN()}, + "v: .nan\n", + }, { + map[string]interface{}{"v": nil}, + "v: null\n", + }, { + map[string]interface{}{"v": ""}, + "v: \"\"\n", + }, { + map[string][]string{"v": []string{"A", "B"}}, + "v:\n- A\n- B\n", + }, { + map[string][]string{"v": []string{"A", "B\nC"}}, + "v:\n- A\n- |-\n B\n C\n", + }, { + map[string][]interface{}{"v": []interface{}{"A", 1, map[string][]int{"B": []int{2, 3}}}}, + "v:\n- A\n- 1\n- B:\n - 2\n - 3\n", + }, { + map[string]interface{}{"a": map[interface{}]interface{}{"b": "c"}}, + "a:\n b: c\n", + }, { + map[string]interface{}{"a": "-"}, + "a: '-'\n", + }, + + // Simple values. + { + &marshalIntTest, + "123\n", + }, + + // Structures + { + &struct{ Hello string }{"world"}, + "hello: world\n", + }, { + &struct { + A struct { + B string + } + }{struct{ B string }{"c"}}, + "a:\n b: c\n", + }, { + &struct { + A *struct { + B string + } + }{&struct{ B string }{"c"}}, + "a:\n b: c\n", + }, { + &struct { + A *struct { + B string + } + }{}, + "a: null\n", + }, { + &struct{ A int }{1}, + "a: 1\n", + }, { + &struct{ A []int }{[]int{1, 2}}, + "a:\n- 1\n- 2\n", + }, { + &struct { + B int "a" + }{1}, + "a: 1\n", + }, { + &struct{ A bool }{true}, + "a: true\n", + }, + + // Conditional flag + { + &struct { + A int "a,omitempty" + B int "b,omitempty" + }{1, 0}, + "a: 1\n", + }, { + &struct { + A int "a,omitempty" + B int "b,omitempty" + }{0, 0}, + "{}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{&struct{ X, y int }{1, 2}}, + "a: {x: 1}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{nil}, + "{}\n", + }, { + &struct { + A *struct{ X, y int } "a,omitempty,flow" + }{&struct{ X, y int }{}}, + "a: {x: 0}\n", + }, { + &struct { + A struct{ X, y int } "a,omitempty,flow" + }{struct{ X, y int }{1, 2}}, + "a: {x: 1}\n", + }, { + &struct { + A struct{ X, y int } "a,omitempty,flow" + }{struct{ X, y int }{0, 1}}, + "{}\n", + }, { + &struct { + A float64 "a,omitempty" + B float64 "b,omitempty" + }{1, 0}, + "a: 1\n", + }, + + // Flow flag + { + &struct { + A []int "a,flow" + }{[]int{1, 2}}, + "a: [1, 2]\n", + }, { + &struct { + A map[string]string "a,flow" + }{map[string]string{"b": "c", "d": "e"}}, + "a: {b: c, d: e}\n", + }, { + &struct { + A struct { + B, D string + } "a,flow" + }{struct{ B, D string }{"c", "e"}}, + "a: {b: c, d: e}\n", + }, + + // Unexported field + { + &struct { + u int + A int + }{0, 1}, + "a: 1\n", + }, + + // Ignored field + { + &struct { + A int + B int "-" + }{1, 2}, + "a: 1\n", + }, + + // Struct inlining + { + &struct { + A int + C inlineB `yaml:",inline"` + }{1, inlineB{2, inlineC{3}}}, + "a: 1\nb: 2\nc: 3\n", + }, + + // Map inlining + { + &struct { + A int + C map[string]int `yaml:",inline"` + }{1, map[string]int{"b": 2, "c": 3}}, + "a: 1\nb: 2\nc: 3\n", + }, + + // Duration + { + map[string]time.Duration{"a": 3 * time.Second}, + "a: 3s\n", + }, + + // Issue #24: bug in map merging logic. + { + map[string]string{"a": ""}, + "a: \n", + }, + + // Issue #34: marshal unsupported base 60 floats quoted for compatibility + // with old YAML 1.1 parsers. + { + map[string]string{"a": "1:1"}, + "a: \"1:1\"\n", + }, + + // Binary data. + { + map[string]string{"a": "\x00"}, + "a: \"\\0\"\n", + }, { + map[string]string{"a": "\x80\x81\x82"}, + "a: !!binary gIGC\n", + }, { + map[string]string{"a": strings.Repeat("\x90", 54)}, + "a: !!binary |\n " + strings.Repeat("kJCQ", 17) + "kJ\n CQ\n", + }, + + // Ordered maps. + { + &yaml.MapSlice{{"b", 2}, {"a", 1}, {"d", 4}, {"c", 3}, {"sub", yaml.MapSlice{{"e", 5}}}}, + "b: 2\na: 1\nd: 4\nc: 3\nsub:\n e: 5\n", + }, + + // Encode unicode as utf-8 rather than in escaped form. + { + map[string]string{"a": "你好"}, + "a: 你好\n", + }, + + // Support encoding.TextMarshaler. + { + map[string]net.IP{"a": net.IPv4(1, 2, 3, 4)}, + "a: 1.2.3.4\n", + }, + { + map[string]time.Time{"a": time.Unix(1424801979, 0)}, + "a: 2015-02-24T18:19:39Z\n", + }, + + // Ensure strings containing ": " are quoted (reported as PR #43, but not reproducible). + { + map[string]string{"a": "b: c"}, + "a: 'b: c'\n", + }, + + // Containing hash mark ('#') in string should be quoted + { + map[string]string{"a": "Hello #comment"}, + "a: 'Hello #comment'\n", + }, + { + map[string]string{"a": "你好 #comment"}, + "a: '你好 #comment'\n", + }, +} + +func (s *S) TestMarshal(c *C) { + defer os.Setenv("TZ", os.Getenv("TZ")) + os.Setenv("TZ", "UTC") + for _, item := range marshalTests { + data, err := yaml.Marshal(item.value) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, item.data) + } +} + +var marshalErrorTests = []struct { + value interface{} + error string + panic string +}{{ + value: &struct { + B int + inlineB ",inline" + }{1, inlineB{2, inlineC{3}}}, + panic: `Duplicated key 'b' in struct struct \{ B int; .*`, +}, { + value: &struct { + A int + B map[string]int ",inline" + }{1, map[string]int{"a": 2}}, + panic: `Can't have key "a" in inlined map; conflicts with struct field`, +}} + +func (s *S) TestMarshalErrors(c *C) { + for _, item := range marshalErrorTests { + if item.panic != "" { + c.Assert(func() { yaml.Marshal(item.value) }, PanicMatches, item.panic) + } else { + _, err := yaml.Marshal(item.value) + c.Assert(err, ErrorMatches, item.error) + } + } +} + +func (s *S) TestMarshalTypeCache(c *C) { + var data []byte + var err error + func() { + type T struct{ A int } + data, err = yaml.Marshal(&T{}) + c.Assert(err, IsNil) + }() + func() { + type T struct{ B int } + data, err = yaml.Marshal(&T{}) + c.Assert(err, IsNil) + }() + c.Assert(string(data), Equals, "b: 0\n") +} + +var marshalerTests = []struct { + data string + value interface{} +}{ + {"_:\n hi: there\n", map[interface{}]interface{}{"hi": "there"}}, + {"_:\n- 1\n- A\n", []interface{}{1, "A"}}, + {"_: 10\n", 10}, + {"_: null\n", nil}, + {"_: BAR!\n", "BAR!"}, +} + +type marshalerType struct { + value interface{} +} + +func (o marshalerType) MarshalText() ([]byte, error) { + panic("MarshalText called on type with MarshalYAML") +} + +func (o marshalerType) MarshalYAML() (interface{}, error) { + return o.value, nil +} + +type marshalerValue struct { + Field marshalerType "_" +} + +func (s *S) TestMarshaler(c *C) { + for _, item := range marshalerTests { + obj := &marshalerValue{} + obj.Field.value = item.value + data, err := yaml.Marshal(obj) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, string(item.data)) + } +} + +func (s *S) TestMarshalerWholeDocument(c *C) { + obj := &marshalerType{} + obj.value = map[string]string{"hello": "world!"} + data, err := yaml.Marshal(obj) + c.Assert(err, IsNil) + c.Assert(string(data), Equals, "hello: world!\n") +} + +type failingMarshaler struct{} + +func (ft *failingMarshaler) MarshalYAML() (interface{}, error) { + return nil, failingErr +} + +func (s *S) TestMarshalerError(c *C) { + _, err := yaml.Marshal(&failingMarshaler{}) + c.Assert(err, Equals, failingErr) +} + +func (s *S) TestSortedOutput(c *C) { + order := []interface{}{ + false, + true, + 1, + uint(1), + 1.0, + 1.1, + 1.2, + 2, + uint(2), + 2.0, + 2.1, + "", + ".1", + ".2", + ".a", + "1", + "2", + "a!10", + "a/2", + "a/10", + "a~10", + "ab/1", + "b/1", + "b/01", + "b/2", + "b/02", + "b/3", + "b/03", + "b1", + "b01", + "b3", + "c2.10", + "c10.2", + "d1", + "d12", + "d12a", + } + m := make(map[interface{}]int) + for _, k := range order { + m[k] = 1 + } + data, err := yaml.Marshal(m) + c.Assert(err, IsNil) + out := "\n" + string(data) + last := 0 + for i, k := range order { + repr := fmt.Sprint(k) + if s, ok := k.(string); ok { + if _, err = strconv.ParseFloat(repr, 32); s == "" || err == nil { + repr = `"` + repr + `"` + } + } + index := strings.Index(out, "\n"+repr+":") + if index == -1 { + c.Fatalf("%#v is not in the output: %#v", k, out) + } + if index < last { + c.Fatalf("%#v was generated before %#v: %q", k, order[i-1], out) + } + last = index + } +} diff --git a/vendor/gopkg.in/yaml.v2/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go new file mode 100644 index 00000000..0a7037ad --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/parserc.go @@ -0,0 +1,1096 @@ +package yaml + +import ( + "bytes" +) + +// The parser implements the following grammar: +// +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// implicit_document ::= block_node DOCUMENT-END* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// block_node_or_indentless_sequence ::= +// ALIAS +// | properties (block_content | indentless_block_sequence)? +// | block_content +// | indentless_block_sequence +// block_node ::= ALIAS +// | properties block_content? +// | block_content +// flow_node ::= ALIAS +// | properties flow_content? +// | flow_content +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// block_content ::= block_collection | flow_collection | SCALAR +// flow_content ::= flow_collection | SCALAR +// block_collection ::= block_sequence | block_mapping +// flow_collection ::= flow_sequence | flow_mapping +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// block_mapping ::= BLOCK-MAPPING_START +// ((KEY block_node_or_indentless_sequence?)? +// (VALUE block_node_or_indentless_sequence?)?)* +// BLOCK-END +// flow_sequence ::= FLOW-SEQUENCE-START +// (flow_sequence_entry FLOW-ENTRY)* +// flow_sequence_entry? +// FLOW-SEQUENCE-END +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// flow_mapping ::= FLOW-MAPPING-START +// (flow_mapping_entry FLOW-ENTRY)* +// flow_mapping_entry? +// FLOW-MAPPING-END +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + +// Peek the next token in the token queue. +func peek_token(parser *yaml_parser_t) *yaml_token_t { + if parser.token_available || yaml_parser_fetch_more_tokens(parser) { + return &parser.tokens[parser.tokens_head] + } + return nil +} + +// Remove the next token from the queue (must be called after peek_token). +func skip_token(parser *yaml_parser_t) { + parser.token_available = false + parser.tokens_parsed++ + parser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN + parser.tokens_head++ +} + +// Get the next event. +func yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool { + // Erase the event object. + *event = yaml_event_t{} + + // No events after the end of the stream or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE { + return true + } + + // Generate the next event. + return yaml_parser_state_machine(parser, event) +} + +// Set parser error. +func yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +func yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool { + parser.error = yaml_PARSER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = problem_mark + return false +} + +// State dispatcher. +func yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool { + //trace("yaml_parser_state_machine", "state:", parser.state.String()) + + switch parser.state { + case yaml_PARSE_STREAM_START_STATE: + return yaml_parser_parse_stream_start(parser, event) + + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, true) + + case yaml_PARSE_DOCUMENT_START_STATE: + return yaml_parser_parse_document_start(parser, event, false) + + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return yaml_parser_parse_document_content(parser, event) + + case yaml_PARSE_DOCUMENT_END_STATE: + return yaml_parser_parse_document_end(parser, event) + + case yaml_PARSE_BLOCK_NODE_STATE: + return yaml_parser_parse_node(parser, event, true, false) + + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return yaml_parser_parse_node(parser, event, true, true) + + case yaml_PARSE_FLOW_NODE_STATE: + return yaml_parser_parse_node(parser, event, false, false) + + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, true) + + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_block_sequence_entry(parser, event, false) + + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_indentless_sequence_entry(parser, event) + + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, true) + + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return yaml_parser_parse_block_mapping_key(parser, event, false) + + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return yaml_parser_parse_block_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, true) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return yaml_parser_parse_flow_sequence_entry(parser, event, false) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event) + + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event) + + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, true) + + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return yaml_parser_parse_flow_mapping_key(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, false) + + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return yaml_parser_parse_flow_mapping_value(parser, event, true) + + default: + panic("invalid parser state") + } + return false +} + +// Parse the production: +// stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +// ************ +func yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_STREAM_START_TOKEN { + return yaml_parser_set_parser_error(parser, "did not find expected ", token.start_mark) + } + parser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + encoding: token.encoding, + } + skip_token(parser) + return true +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// * +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// ************************* +func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool { + + token := peek_token(parser) + if token == nil { + return false + } + + // Parse extra document end indicators. + if !implicit { + for token.typ == yaml_DOCUMENT_END_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + if implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN && + token.typ != yaml_TAG_DIRECTIVE_TOKEN && + token.typ != yaml_DOCUMENT_START_TOKEN && + token.typ != yaml_STREAM_END_TOKEN { + // Parse an implicit document. + if !yaml_parser_process_directives(parser, nil, nil) { + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_BLOCK_NODE_STATE + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + } else if token.typ != yaml_STREAM_END_TOKEN { + // Parse an explicit document. + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + start_mark := token.start_mark + if !yaml_parser_process_directives(parser, &version_directive, &tag_directives) { + return false + } + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_DOCUMENT_START_TOKEN { + yaml_parser_set_parser_error(parser, + "did not find expected ", token.start_mark) + return false + } + parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE) + parser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE + end_mark := token.end_mark + + *event = yaml_event_t{ + typ: yaml_DOCUMENT_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + version_directive: version_directive, + tag_directives: tag_directives, + implicit: false, + } + skip_token(parser) + + } else { + // Parse the stream end. + parser.state = yaml_PARSE_END_STATE + *event = yaml_event_t{ + typ: yaml_STREAM_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + } + + return true +} + +// Parse the productions: +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// *********** +// +func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN || + token.typ == yaml_TAG_DIRECTIVE_TOKEN || + token.typ == yaml_DOCUMENT_START_TOKEN || + token.typ == yaml_DOCUMENT_END_TOKEN || + token.typ == yaml_STREAM_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + return yaml_parser_process_empty_scalar(parser, event, + token.start_mark) + } + return yaml_parser_parse_node(parser, event, true, false) +} + +// Parse the productions: +// implicit_document ::= block_node DOCUMENT-END* +// ************* +// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +// +func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + start_mark := token.start_mark + end_mark := token.start_mark + + implicit := true + if token.typ == yaml_DOCUMENT_END_TOKEN { + end_mark = token.end_mark + skip_token(parser) + implicit = false + } + + parser.tag_directives = parser.tag_directives[:0] + + parser.state = yaml_PARSE_DOCUMENT_START_STATE + *event = yaml_event_t{ + typ: yaml_DOCUMENT_END_EVENT, + start_mark: start_mark, + end_mark: end_mark, + implicit: implicit, + } + return true +} + +// Parse the productions: +// block_node_or_indentless_sequence ::= +// ALIAS +// ***** +// | properties (block_content | indentless_block_sequence)? +// ********** * +// | block_content | indentless_block_sequence +// * +// block_node ::= ALIAS +// ***** +// | properties block_content? +// ********** * +// | block_content +// * +// flow_node ::= ALIAS +// ***** +// | properties flow_content? +// ********** * +// | flow_content +// * +// properties ::= TAG ANCHOR? | ANCHOR TAG? +// ************************* +// block_content ::= block_collection | flow_collection | SCALAR +// ****** +// flow_content ::= flow_collection | SCALAR +// ****** +func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool { + //defer trace("yaml_parser_parse_node", "block:", block, "indentless_sequence:", indentless_sequence)() + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_ALIAS_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + *event = yaml_event_t{ + typ: yaml_ALIAS_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + anchor: token.value, + } + skip_token(parser) + return true + } + + start_mark := token.start_mark + end_mark := token.start_mark + + var tag_token bool + var tag_handle, tag_suffix, anchor []byte + var tag_mark yaml_mark_t + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + start_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } else if token.typ == yaml_TAG_TOKEN { + tag_token = true + tag_handle = token.value + tag_suffix = token.suffix + start_mark = token.start_mark + tag_mark = token.start_mark + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_ANCHOR_TOKEN { + anchor = token.value + end_mark = token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + } + + var tag []byte + if tag_token { + if len(tag_handle) == 0 { + tag = tag_suffix + tag_suffix = nil + } else { + for i := range parser.tag_directives { + if bytes.Equal(parser.tag_directives[i].handle, tag_handle) { + tag = append([]byte(nil), parser.tag_directives[i].prefix...) + tag = append(tag, tag_suffix...) + break + } + } + if len(tag) == 0 { + yaml_parser_set_parser_error_context(parser, + "while parsing a node", start_mark, + "found undefined tag handle", tag_mark) + return false + } + } + } + + implicit := len(tag) == 0 + if indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_SCALAR_TOKEN { + var plain_implicit, quoted_implicit bool + end_mark = token.end_mark + if (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') { + plain_implicit = true + } else if len(tag) == 0 { + quoted_implicit = true + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + value: token.value, + implicit: plain_implicit, + quoted_implicit: quoted_implicit, + style: yaml_style_t(token.style), + } + skip_token(parser) + return true + } + if token.typ == yaml_FLOW_SEQUENCE_START_TOKEN { + // [Go] Some of the events below can be merged as they differ only on style. + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE), + } + return true + } + if token.typ == yaml_FLOW_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_SEQUENCE_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE), + } + return true + } + if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN { + end_mark = token.end_mark + parser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE), + } + return true + } + if len(anchor) > 0 || len(tag) > 0 { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: start_mark, + end_mark: end_mark, + anchor: anchor, + tag: tag, + implicit: implicit, + quoted_implicit: false, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true + } + + context := "while parsing a flow node" + if block { + context = "while parsing a block node" + } + yaml_parser_set_parser_error_context(parser, context, start_mark, + "did not find expected node content", token.start_mark) + return false +} + +// Parse the productions: +// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +// ******************** *********** * ********* +// +func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } else { + parser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } + if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block collection", context_mark, + "did not find expected '-' indicator", token.start_mark) +} + +// Parse the productions: +// indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +// *********** * +func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_BLOCK_ENTRY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_BLOCK_ENTRY_TOKEN && + token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, true, false) + } + parser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be token.end_mark? + } + return true +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// ******************* +// ((KEY block_node_or_indentless_sequence?)? +// *** * +// (VALUE block_node_or_indentless_sequence?)?)* +// +// BLOCK-END +// ********* +// +func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ == yaml_KEY_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } else { + parser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + } else if token.typ == yaml_BLOCK_END_TOKEN { + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true + } + + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a block mapping", context_mark, + "did not find expected key", token.start_mark) +} + +// Parse the productions: +// block_mapping ::= BLOCK-MAPPING_START +// +// ((KEY block_node_or_indentless_sequence?)? +// +// (VALUE block_node_or_indentless_sequence?)?)* +// ***** * +// BLOCK-END +// +// +func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + mark := token.end_mark + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_KEY_TOKEN && + token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_BLOCK_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, true, true) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) + } + parser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence ::= FLOW-SEQUENCE-START +// ******************* +// (flow_sequence_entry FLOW-ENTRY)* +// * ********** +// flow_sequence_entry? +// * +// FLOW-SEQUENCE-END +// ***************** +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow sequence", context_mark, + "did not find expected ',' or ']'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_START_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + implicit: true, + style: yaml_style_t(yaml_FLOW_MAPPING_STYLE), + } + skip_token(parser) + return true + } else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + + *event = yaml_event_t{ + typ: yaml_SEQUENCE_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + + skip_token(parser) + return true +} + +// +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// *** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + mark := token.end_mark + skip_token(parser) + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// ***** * +// +func yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token := peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Parse the productions: +// flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * +// +func yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool { + token := peek_token(parser) + if token == nil { + return false + } + parser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.start_mark, // [Go] Shouldn't this be end_mark? + } + return true +} + +// Parse the productions: +// flow_mapping ::= FLOW-MAPPING-START +// ****************** +// (flow_mapping_entry FLOW-ENTRY)* +// * ********** +// flow_mapping_entry? +// ****************** +// FLOW-MAPPING-END +// **************** +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * *** * +// +func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool { + if first { + token := peek_token(parser) + parser.marks = append(parser.marks, token.start_mark) + skip_token(parser) + } + + token := peek_token(parser) + if token == nil { + return false + } + + if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + if !first { + if token.typ == yaml_FLOW_ENTRY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } else { + context_mark := parser.marks[len(parser.marks)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + return yaml_parser_set_parser_error_context(parser, + "while parsing a flow mapping", context_mark, + "did not find expected ',' or '}'", token.start_mark) + } + } + + if token.typ == yaml_KEY_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_VALUE_TOKEN && + token.typ != yaml_FLOW_ENTRY_TOKEN && + token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } else { + parser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + } else if token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + + parser.state = parser.states[len(parser.states)-1] + parser.states = parser.states[:len(parser.states)-1] + parser.marks = parser.marks[:len(parser.marks)-1] + *event = yaml_event_t{ + typ: yaml_MAPPING_END_EVENT, + start_mark: token.start_mark, + end_mark: token.end_mark, + } + skip_token(parser) + return true +} + +// Parse the productions: +// flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +// * ***** * +// +func yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool { + token := peek_token(parser) + if token == nil { + return false + } + if empty { + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) + } + if token.typ == yaml_VALUE_TOKEN { + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + if token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN { + parser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE) + return yaml_parser_parse_node(parser, event, false, false) + } + } + parser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE + return yaml_parser_process_empty_scalar(parser, event, token.start_mark) +} + +// Generate an empty scalar event. +func yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool { + *event = yaml_event_t{ + typ: yaml_SCALAR_EVENT, + start_mark: mark, + end_mark: mark, + value: nil, // Empty + implicit: true, + style: yaml_style_t(yaml_PLAIN_SCALAR_STYLE), + } + return true +} + +var default_tag_directives = []yaml_tag_directive_t{ + {[]byte("!"), []byte("!")}, + {[]byte("!!"), []byte("tag:yaml.org,2002:")}, +} + +// Parse directives. +func yaml_parser_process_directives(parser *yaml_parser_t, + version_directive_ref **yaml_version_directive_t, + tag_directives_ref *[]yaml_tag_directive_t) bool { + + var version_directive *yaml_version_directive_t + var tag_directives []yaml_tag_directive_t + + token := peek_token(parser) + if token == nil { + return false + } + + for token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN { + if token.typ == yaml_VERSION_DIRECTIVE_TOKEN { + if version_directive != nil { + yaml_parser_set_parser_error(parser, + "found duplicate %YAML directive", token.start_mark) + return false + } + if token.major != 1 || token.minor != 1 { + yaml_parser_set_parser_error(parser, + "found incompatible YAML document", token.start_mark) + return false + } + version_directive = &yaml_version_directive_t{ + major: token.major, + minor: token.minor, + } + } else if token.typ == yaml_TAG_DIRECTIVE_TOKEN { + value := yaml_tag_directive_t{ + handle: token.value, + prefix: token.prefix, + } + if !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) { + return false + } + tag_directives = append(tag_directives, value) + } + + skip_token(parser) + token = peek_token(parser) + if token == nil { + return false + } + } + + for i := range default_tag_directives { + if !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) { + return false + } + } + + if version_directive_ref != nil { + *version_directive_ref = version_directive + } + if tag_directives_ref != nil { + *tag_directives_ref = tag_directives + } + return true +} + +// Append a tag directive to the directives stack. +func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool { + for i := range parser.tag_directives { + if bytes.Equal(value.handle, parser.tag_directives[i].handle) { + if allow_duplicates { + return true + } + return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark) + } + } + + // [Go] I suspect the copy is unnecessary. This was likely done + // because there was no way to track ownership of the data. + value_copy := yaml_tag_directive_t{ + handle: make([]byte, len(value.handle)), + prefix: make([]byte, len(value.prefix)), + } + copy(value_copy.handle, value.handle) + copy(value_copy.prefix, value.prefix) + parser.tag_directives = append(parser.tag_directives, value_copy) + return true +} diff --git a/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go new file mode 100644 index 00000000..d5fb0972 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/readerc.go @@ -0,0 +1,391 @@ +package yaml + +import ( + "io" +) + +// Set the reader error and return 0. +func yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool { + parser.error = yaml_READER_ERROR + parser.problem = problem + parser.problem_offset = offset + parser.problem_value = value + return false +} + +// Byte order marks. +const ( + bom_UTF8 = "\xef\xbb\xbf" + bom_UTF16LE = "\xff\xfe" + bom_UTF16BE = "\xfe\xff" +) + +// Determine the input stream encoding by checking the BOM symbol. If no BOM is +// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure. +func yaml_parser_determine_encoding(parser *yaml_parser_t) bool { + // Ensure that we had enough bytes in the raw buffer. + for !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 { + if !yaml_parser_update_raw_buffer(parser) { + return false + } + } + + // Determine the encoding. + buf := parser.raw_buffer + pos := parser.raw_buffer_pos + avail := len(buf) - pos + if avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] { + parser.encoding = yaml_UTF16LE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] { + parser.encoding = yaml_UTF16BE_ENCODING + parser.raw_buffer_pos += 2 + parser.offset += 2 + } else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] { + parser.encoding = yaml_UTF8_ENCODING + parser.raw_buffer_pos += 3 + parser.offset += 3 + } else { + parser.encoding = yaml_UTF8_ENCODING + } + return true +} + +// Update the raw buffer. +func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { + size_read := 0 + + // Return if the raw buffer is full. + if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { + return true + } + + // Return on EOF. + if parser.eof { + return true + } + + // Move the remaining bytes in the raw buffer to the beginning. + if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { + copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) + } + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] + parser.raw_buffer_pos = 0 + + // Call the read handler to fill the buffer. + size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) + parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] + if err == io.EOF { + parser.eof = true + } else if err != nil { + return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) + } + return true +} + +// Ensure that the buffer contains at least `length` characters. +// Return true on success, false on failure. +// +// The length is supposed to be significantly less that the buffer size. +func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool { + if parser.read_handler == nil { + panic("read handler must be set") + } + + // If the EOF flag is set and the raw buffer is empty, do nothing. + if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) { + return true + } + + // Return if the buffer contains enough characters. + if parser.unread >= length { + return true + } + + // Determine the input encoding if it is not known yet. + if parser.encoding == yaml_ANY_ENCODING { + if !yaml_parser_determine_encoding(parser) { + return false + } + } + + // Move the unread characters to the beginning of the buffer. + buffer_len := len(parser.buffer) + if parser.buffer_pos > 0 && parser.buffer_pos < buffer_len { + copy(parser.buffer, parser.buffer[parser.buffer_pos:]) + buffer_len -= parser.buffer_pos + parser.buffer_pos = 0 + } else if parser.buffer_pos == buffer_len { + buffer_len = 0 + parser.buffer_pos = 0 + } + + // Open the whole buffer for writing, and cut it before returning. + parser.buffer = parser.buffer[:cap(parser.buffer)] + + // Fill the buffer until it has enough characters. + first := true + for parser.unread < length { + + // Fill the raw buffer if necessary. + if !first || parser.raw_buffer_pos == len(parser.raw_buffer) { + if !yaml_parser_update_raw_buffer(parser) { + parser.buffer = parser.buffer[:buffer_len] + return false + } + } + first = false + + // Decode the raw buffer. + inner: + for parser.raw_buffer_pos != len(parser.raw_buffer) { + var value rune + var width int + + raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos + + // Decode the next character. + switch parser.encoding { + case yaml_UTF8_ENCODING: + // Decode a UTF-8 character. Check RFC 3629 + // (http://www.ietf.org/rfc/rfc3629.txt) for more details. + // + // The following table (taken from the RFC) is used for + // decoding. + // + // Char. number range | UTF-8 octet sequence + // (hexadecimal) | (binary) + // --------------------+------------------------------------ + // 0000 0000-0000 007F | 0xxxxxxx + // 0000 0080-0000 07FF | 110xxxxx 10xxxxxx + // 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx + // 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + // + // Additionally, the characters in the range 0xD800-0xDFFF + // are prohibited as they are reserved for use with UTF-16 + // surrogate pairs. + + // Determine the length of the UTF-8 sequence. + octet := parser.raw_buffer[parser.raw_buffer_pos] + switch { + case octet&0x80 == 0x00: + width = 1 + case octet&0xE0 == 0xC0: + width = 2 + case octet&0xF0 == 0xE0: + width = 3 + case octet&0xF8 == 0xF0: + width = 4 + default: + // The leading octet is invalid. + return yaml_parser_set_reader_error(parser, + "invalid leading UTF-8 octet", + parser.offset, int(octet)) + } + + // Check if the raw buffer contains an incomplete character. + if width > raw_unread { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-8 octet sequence", + parser.offset, -1) + } + break inner + } + + // Decode the leading octet. + switch { + case octet&0x80 == 0x00: + value = rune(octet & 0x7F) + case octet&0xE0 == 0xC0: + value = rune(octet & 0x1F) + case octet&0xF0 == 0xE0: + value = rune(octet & 0x0F) + case octet&0xF8 == 0xF0: + value = rune(octet & 0x07) + default: + value = 0 + } + + // Check and decode the trailing octets. + for k := 1; k < width; k++ { + octet = parser.raw_buffer[parser.raw_buffer_pos+k] + + // Check if the octet is valid. + if (octet & 0xC0) != 0x80 { + return yaml_parser_set_reader_error(parser, + "invalid trailing UTF-8 octet", + parser.offset+k, int(octet)) + } + + // Decode the octet. + value = (value << 6) + rune(octet&0x3F) + } + + // Check the length of the sequence against the value. + switch { + case width == 1: + case width == 2 && value >= 0x80: + case width == 3 && value >= 0x800: + case width == 4 && value >= 0x10000: + default: + return yaml_parser_set_reader_error(parser, + "invalid length of a UTF-8 sequence", + parser.offset, -1) + } + + // Check the range of the value. + if value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF { + return yaml_parser_set_reader_error(parser, + "invalid Unicode character", + parser.offset, int(value)) + } + + case yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING: + var low, high int + if parser.encoding == yaml_UTF16LE_ENCODING { + low, high = 0, 1 + } else { + high, low = 1, 0 + } + + // The UTF-16 encoding is not as simple as one might + // naively think. Check RFC 2781 + // (http://www.ietf.org/rfc/rfc2781.txt). + // + // Normally, two subsequent bytes describe a Unicode + // character. However a special technique (called a + // surrogate pair) is used for specifying character + // values larger than 0xFFFF. + // + // A surrogate pair consists of two pseudo-characters: + // high surrogate area (0xD800-0xDBFF) + // low surrogate area (0xDC00-0xDFFF) + // + // The following formulas are used for decoding + // and encoding characters using surrogate pairs: + // + // U = U' + 0x10000 (0x01 00 00 <= U <= 0x10 FF FF) + // U' = yyyyyyyyyyxxxxxxxxxx (0 <= U' <= 0x0F FF FF) + // W1 = 110110yyyyyyyyyy + // W2 = 110111xxxxxxxxxx + // + // where U is the character value, W1 is the high surrogate + // area, W2 is the low surrogate area. + + // Check for incomplete UTF-16 character. + if raw_unread < 2 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 character", + parser.offset, -1) + } + break inner + } + + // Get the character. + value = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8) + + // Check for unexpected low surrogate area. + if value&0xFC00 == 0xDC00 { + return yaml_parser_set_reader_error(parser, + "unexpected low surrogate area", + parser.offset, int(value)) + } + + // Check for a high surrogate area. + if value&0xFC00 == 0xD800 { + width = 4 + + // Check for incomplete surrogate pair. + if raw_unread < 4 { + if parser.eof { + return yaml_parser_set_reader_error(parser, + "incomplete UTF-16 surrogate pair", + parser.offset, -1) + } + break inner + } + + // Get the next character. + value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) + + (rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8) + + // Check for a low surrogate area. + if value2&0xFC00 != 0xDC00 { + return yaml_parser_set_reader_error(parser, + "expected low surrogate area", + parser.offset+2, int(value2)) + } + + // Generate the value of the surrogate pair. + value = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF) + } else { + width = 2 + } + + default: + panic("impossible") + } + + // Check if the character is in the allowed range: + // #x9 | #xA | #xD | [#x20-#x7E] (8 bit) + // | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit) + // | [#x10000-#x10FFFF] (32 bit) + switch { + case value == 0x09: + case value == 0x0A: + case value == 0x0D: + case value >= 0x20 && value <= 0x7E: + case value == 0x85: + case value >= 0xA0 && value <= 0xD7FF: + case value >= 0xE000 && value <= 0xFFFD: + case value >= 0x10000 && value <= 0x10FFFF: + default: + return yaml_parser_set_reader_error(parser, + "control characters are not allowed", + parser.offset, int(value)) + } + + // Move the raw pointers. + parser.raw_buffer_pos += width + parser.offset += width + + // Finally put the character into the buffer. + if value <= 0x7F { + // 0000 0000-0000 007F . 0xxxxxxx + parser.buffer[buffer_len+0] = byte(value) + } else if value <= 0x7FF { + // 0000 0080-0000 07FF . 110xxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6)) + parser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F)) + } else if value <= 0xFFFF { + // 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F)) + } else { + // 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + parser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18)) + parser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F)) + parser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F)) + parser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F)) + } + buffer_len += width + + parser.unread++ + } + + // On EOF, put NUL into the buffer and return. + if parser.eof { + parser.buffer[buffer_len] = 0 + buffer_len++ + parser.unread++ + break + } + } + parser.buffer = parser.buffer[:buffer_len] + return true +} diff --git a/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go new file mode 100644 index 00000000..93a86327 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/resolve.go @@ -0,0 +1,203 @@ +package yaml + +import ( + "encoding/base64" + "math" + "strconv" + "strings" + "unicode/utf8" +) + +type resolveMapItem struct { + value interface{} + tag string +} + +var resolveTable = make([]byte, 256) +var resolveMap = make(map[string]resolveMapItem) + +func init() { + t := resolveTable + t[int('+')] = 'S' // Sign + t[int('-')] = 'S' + for _, c := range "0123456789" { + t[int(c)] = 'D' // Digit + } + for _, c := range "yYnNtTfFoO~" { + t[int(c)] = 'M' // In map + } + t[int('.')] = '.' // Float (potentially in map) + + var resolveMapList = []struct { + v interface{} + tag string + l []string + }{ + {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}}, + {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}}, + {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}}, + {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}}, + {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}}, + {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}}, + {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}}, + {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}}, + {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}}, + {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}}, + {"<<", yaml_MERGE_TAG, []string{"<<"}}, + } + + m := resolveMap + for _, item := range resolveMapList { + for _, s := range item.l { + m[s] = resolveMapItem{item.v, item.tag} + } + } +} + +const longTagPrefix = "tag:yaml.org,2002:" + +func shortTag(tag string) string { + // TODO This can easily be made faster and produce less garbage. + if strings.HasPrefix(tag, longTagPrefix) { + return "!!" + tag[len(longTagPrefix):] + } + return tag +} + +func longTag(tag string) string { + if strings.HasPrefix(tag, "!!") { + return longTagPrefix + tag[2:] + } + return tag +} + +func resolvableTag(tag string) bool { + switch tag { + case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG: + return true + } + return false +} + +func resolve(tag string, in string) (rtag string, out interface{}) { + if !resolvableTag(tag) { + return tag, in + } + + defer func() { + switch tag { + case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG: + return + } + failf("cannot decode %s `%s` as a %s", shortTag(rtag), in, shortTag(tag)) + }() + + // Any data is accepted as a !!str or !!binary. + // Otherwise, the prefix is enough of a hint about what it might be. + hint := byte('N') + if in != "" { + hint = resolveTable[in[0]] + } + if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG { + // Handle things we can lookup in a map. + if item, ok := resolveMap[in]; ok { + return item.tag, item.value + } + + // Base 60 floats are a bad idea, were dropped in YAML 1.2, and + // are purposefully unsupported here. They're still quoted on + // the way out for compatibility with other parser, though. + + switch hint { + case 'M': + // We've already checked the map above. + + case '.': + // Not in the map, so maybe a normal float. + floatv, err := strconv.ParseFloat(in, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + + case 'D', 'S': + // Int, float, or timestamp. + plain := strings.Replace(in, "_", "", -1) + intv, err := strconv.ParseInt(plain, 0, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain, 0, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + floatv, err := strconv.ParseFloat(plain, 64) + if err == nil { + return yaml_FLOAT_TAG, floatv + } + if strings.HasPrefix(plain, "0b") { + intv, err := strconv.ParseInt(plain[2:], 2, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, int(intv) + } else { + return yaml_INT_TAG, intv + } + } + uintv, err := strconv.ParseUint(plain[2:], 2, 64) + if err == nil { + return yaml_INT_TAG, uintv + } + } else if strings.HasPrefix(plain, "-0b") { + intv, err := strconv.ParseInt(plain[3:], 2, 64) + if err == nil { + if intv == int64(int(intv)) { + return yaml_INT_TAG, -int(intv) + } else { + return yaml_INT_TAG, -intv + } + } + } + // XXX Handle timestamps here. + + default: + panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") + } + } + if tag == yaml_BINARY_TAG { + return yaml_BINARY_TAG, in + } + if utf8.ValidString(in) { + return yaml_STR_TAG, in + } + return yaml_BINARY_TAG, encodeBase64(in) +} + +// encodeBase64 encodes s as base64 that is broken up into multiple lines +// as appropriate for the resulting length. +func encodeBase64(s string) string { + const lineLen = 70 + encLen := base64.StdEncoding.EncodedLen(len(s)) + lines := encLen/lineLen + 1 + buf := make([]byte, encLen*2+lines) + in := buf[0:encLen] + out := buf[encLen:] + base64.StdEncoding.Encode(in, []byte(s)) + k := 0 + for i := 0; i < len(in); i += lineLen { + j := i + lineLen + if j > len(in) { + j = len(in) + } + k += copy(out[k:], in[i:j]) + if lines > 1 { + out[k] = '\n' + k++ + } + } + return string(out[:k]) +} diff --git a/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go new file mode 100644 index 00000000..d97d76fa --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/scannerc.go @@ -0,0 +1,2710 @@ +package yaml + +import ( + "bytes" + "fmt" +) + +// Introduction +// ************ +// +// The following notes assume that you are familiar with the YAML specification +// (http://yaml.org/spec/cvs/current.html). We mostly follow it, although in +// some cases we are less restrictive that it requires. +// +// The process of transforming a YAML stream into a sequence of events is +// divided on two steps: Scanning and Parsing. +// +// The Scanner transforms the input stream into a sequence of tokens, while the +// parser transform the sequence of tokens produced by the Scanner into a +// sequence of parsing events. +// +// The Scanner is rather clever and complicated. The Parser, on the contrary, +// is a straightforward implementation of a recursive-descendant parser (or, +// LL(1) parser, as it is usually called). +// +// Actually there are two issues of Scanning that might be called "clever", the +// rest is quite straightforward. The issues are "block collection start" and +// "simple keys". Both issues are explained below in details. +// +// Here the Scanning step is explained and implemented. We start with the list +// of all the tokens produced by the Scanner together with short descriptions. +// +// Now, tokens: +// +// STREAM-START(encoding) # The stream start. +// STREAM-END # The stream end. +// VERSION-DIRECTIVE(major,minor) # The '%YAML' directive. +// TAG-DIRECTIVE(handle,prefix) # The '%TAG' directive. +// DOCUMENT-START # '---' +// DOCUMENT-END # '...' +// BLOCK-SEQUENCE-START # Indentation increase denoting a block +// BLOCK-MAPPING-START # sequence or a block mapping. +// BLOCK-END # Indentation decrease. +// FLOW-SEQUENCE-START # '[' +// FLOW-SEQUENCE-END # ']' +// BLOCK-SEQUENCE-START # '{' +// BLOCK-SEQUENCE-END # '}' +// BLOCK-ENTRY # '-' +// FLOW-ENTRY # ',' +// KEY # '?' or nothing (simple keys). +// VALUE # ':' +// ALIAS(anchor) # '*anchor' +// ANCHOR(anchor) # '&anchor' +// TAG(handle,suffix) # '!handle!suffix' +// SCALAR(value,style) # A scalar. +// +// The following two tokens are "virtual" tokens denoting the beginning and the +// end of the stream: +// +// STREAM-START(encoding) +// STREAM-END +// +// We pass the information about the input stream encoding with the +// STREAM-START token. +// +// The next two tokens are responsible for tags: +// +// VERSION-DIRECTIVE(major,minor) +// TAG-DIRECTIVE(handle,prefix) +// +// Example: +// +// %YAML 1.1 +// %TAG ! !foo +// %TAG !yaml! tag:yaml.org,2002: +// --- +// +// The correspoding sequence of tokens: +// +// STREAM-START(utf-8) +// VERSION-DIRECTIVE(1,1) +// TAG-DIRECTIVE("!","!foo") +// TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:") +// DOCUMENT-START +// STREAM-END +// +// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole +// line. +// +// The document start and end indicators are represented by: +// +// DOCUMENT-START +// DOCUMENT-END +// +// Note that if a YAML stream contains an implicit document (without '---' +// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be +// produced. +// +// In the following examples, we present whole documents together with the +// produced tokens. +// +// 1. An implicit document: +// +// 'a scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// STREAM-END +// +// 2. An explicit document: +// +// --- +// 'a scalar' +// ... +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// SCALAR("a scalar",single-quoted) +// DOCUMENT-END +// STREAM-END +// +// 3. Several documents in a stream: +// +// 'a scalar' +// --- +// 'another scalar' +// --- +// 'yet another scalar' +// +// Tokens: +// +// STREAM-START(utf-8) +// SCALAR("a scalar",single-quoted) +// DOCUMENT-START +// SCALAR("another scalar",single-quoted) +// DOCUMENT-START +// SCALAR("yet another scalar",single-quoted) +// STREAM-END +// +// We have already introduced the SCALAR token above. The following tokens are +// used to describe aliases, anchors, tag, and scalars: +// +// ALIAS(anchor) +// ANCHOR(anchor) +// TAG(handle,suffix) +// SCALAR(value,style) +// +// The following series of examples illustrate the usage of these tokens: +// +// 1. A recursive sequence: +// +// &A [ *A ] +// +// Tokens: +// +// STREAM-START(utf-8) +// ANCHOR("A") +// FLOW-SEQUENCE-START +// ALIAS("A") +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A tagged scalar: +// +// !!float "3.14" # A good approximation. +// +// Tokens: +// +// STREAM-START(utf-8) +// TAG("!!","float") +// SCALAR("3.14",double-quoted) +// STREAM-END +// +// 3. Various scalar styles: +// +// --- # Implicit empty plain scalars do not produce tokens. +// --- a plain scalar +// --- 'a single-quoted scalar' +// --- "a double-quoted scalar" +// --- |- +// a literal scalar +// --- >- +// a folded +// scalar +// +// Tokens: +// +// STREAM-START(utf-8) +// DOCUMENT-START +// DOCUMENT-START +// SCALAR("a plain scalar",plain) +// DOCUMENT-START +// SCALAR("a single-quoted scalar",single-quoted) +// DOCUMENT-START +// SCALAR("a double-quoted scalar",double-quoted) +// DOCUMENT-START +// SCALAR("a literal scalar",literal) +// DOCUMENT-START +// SCALAR("a folded scalar",folded) +// STREAM-END +// +// Now it's time to review collection-related tokens. We will start with +// flow collections: +// +// FLOW-SEQUENCE-START +// FLOW-SEQUENCE-END +// FLOW-MAPPING-START +// FLOW-MAPPING-END +// FLOW-ENTRY +// KEY +// VALUE +// +// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and +// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}' +// correspondingly. FLOW-ENTRY represent the ',' indicator. Finally the +// indicators '?' and ':', which are used for denoting mapping keys and values, +// are represented by the KEY and VALUE tokens. +// +// The following examples show flow collections: +// +// 1. A flow sequence: +// +// [item 1, item 2, item 3] +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-SEQUENCE-START +// SCALAR("item 1",plain) +// FLOW-ENTRY +// SCALAR("item 2",plain) +// FLOW-ENTRY +// SCALAR("item 3",plain) +// FLOW-SEQUENCE-END +// STREAM-END +// +// 2. A flow mapping: +// +// { +// a simple key: a value, # Note that the KEY token is produced. +// ? a complex key: another value, +// } +// +// Tokens: +// +// STREAM-START(utf-8) +// FLOW-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// FLOW-ENTRY +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// FLOW-ENTRY +// FLOW-MAPPING-END +// STREAM-END +// +// A simple key is a key which is not denoted by the '?' indicator. Note that +// the Scanner still produce the KEY token whenever it encounters a simple key. +// +// For scanning block collections, the following tokens are used (note that we +// repeat KEY and VALUE here): +// +// BLOCK-SEQUENCE-START +// BLOCK-MAPPING-START +// BLOCK-END +// BLOCK-ENTRY +// KEY +// VALUE +// +// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation +// increase that precedes a block collection (cf. the INDENT token in Python). +// The token BLOCK-END denote indentation decrease that ends a block collection +// (cf. the DEDENT token in Python). However YAML has some syntax pecularities +// that makes detections of these tokens more complex. +// +// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators +// '-', '?', and ':' correspondingly. +// +// The following examples show how the tokens BLOCK-SEQUENCE-START, +// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner: +// +// 1. Block sequences: +// +// - item 1 +// - item 2 +// - +// - item 3.1 +// - item 3.2 +// - +// key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 3.1",plain) +// BLOCK-ENTRY +// SCALAR("item 3.2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Block mappings: +// +// a simple key: a value # The KEY token is produced here. +// ? a complex key +// : another value +// a mapping: +// key 1: value 1 +// key 2: value 2 +// a sequence: +// - item 1 +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a simple key",plain) +// VALUE +// SCALAR("a value",plain) +// KEY +// SCALAR("a complex key",plain) +// VALUE +// SCALAR("another value",plain) +// KEY +// SCALAR("a mapping",plain) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML does not always require to start a new block collection from a new +// line. If the current line contains only '-', '?', and ':' indicators, a new +// block collection may start at the current line. The following examples +// illustrate this case: +// +// 1. Collections in a sequence: +// +// - - item 1 +// - item 2 +// - key 1: value 1 +// key 2: value 2 +// - ? complex key +// : complex value +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-ENTRY +// BLOCK-MAPPING-START +// KEY +// SCALAR("complex key") +// VALUE +// SCALAR("complex value") +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// 2. Collections in a mapping: +// +// ? a sequence +// : - item 1 +// - item 2 +// ? a mapping +// : key 1: value 1 +// key 2: value 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("a sequence",plain) +// VALUE +// BLOCK-SEQUENCE-START +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// KEY +// SCALAR("a mapping",plain) +// VALUE +// BLOCK-MAPPING-START +// KEY +// SCALAR("key 1",plain) +// VALUE +// SCALAR("value 1",plain) +// KEY +// SCALAR("key 2",plain) +// VALUE +// SCALAR("value 2",plain) +// BLOCK-END +// BLOCK-END +// STREAM-END +// +// YAML also permits non-indented sequences if they are included into a block +// mapping. In this case, the token BLOCK-SEQUENCE-START is not produced: +// +// key: +// - item 1 # BLOCK-SEQUENCE-START is NOT produced here. +// - item 2 +// +// Tokens: +// +// STREAM-START(utf-8) +// BLOCK-MAPPING-START +// KEY +// SCALAR("key",plain) +// VALUE +// BLOCK-ENTRY +// SCALAR("item 1",plain) +// BLOCK-ENTRY +// SCALAR("item 2",plain) +// BLOCK-END +// + +// Ensure that the buffer contains the required number of characters. +// Return true on success, false on failure (reader error or memory error). +func cache(parser *yaml_parser_t, length int) bool { + // [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B) + return parser.unread >= length || yaml_parser_update_buffer(parser, length) +} + +// Advance the buffer pointer. +func skip(parser *yaml_parser_t) { + parser.mark.index++ + parser.mark.column++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) +} + +func skip_line(parser *yaml_parser_t) { + if is_crlf(parser.buffer, parser.buffer_pos) { + parser.mark.index += 2 + parser.mark.column = 0 + parser.mark.line++ + parser.unread -= 2 + parser.buffer_pos += 2 + } else if is_break(parser.buffer, parser.buffer_pos) { + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + parser.buffer_pos += width(parser.buffer[parser.buffer_pos]) + } +} + +// Copy a character to a string buffer and advance pointers. +func read(parser *yaml_parser_t, s []byte) []byte { + w := width(parser.buffer[parser.buffer_pos]) + if w == 0 { + panic("invalid character sequence") + } + if len(s) == 0 { + s = make([]byte, 0, 32) + } + if w == 1 && len(s)+w <= cap(s) { + s = s[:len(s)+1] + s[len(s)-1] = parser.buffer[parser.buffer_pos] + parser.buffer_pos++ + } else { + s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...) + parser.buffer_pos += w + } + parser.mark.index++ + parser.mark.column++ + parser.unread-- + return s +} + +// Copy a line break character to a string buffer and advance pointers. +func read_line(parser *yaml_parser_t, s []byte) []byte { + buf := parser.buffer + pos := parser.buffer_pos + switch { + case buf[pos] == '\r' && buf[pos+1] == '\n': + // CR LF . LF + s = append(s, '\n') + parser.buffer_pos += 2 + parser.mark.index++ + parser.unread-- + case buf[pos] == '\r' || buf[pos] == '\n': + // CR|LF . LF + s = append(s, '\n') + parser.buffer_pos += 1 + case buf[pos] == '\xC2' && buf[pos+1] == '\x85': + // NEL . LF + s = append(s, '\n') + parser.buffer_pos += 2 + case buf[pos] == '\xE2' && buf[pos+1] == '\x80' && (buf[pos+2] == '\xA8' || buf[pos+2] == '\xA9'): + // LS|PS . LS|PS + s = append(s, buf[parser.buffer_pos:pos+3]...) + parser.buffer_pos += 3 + default: + return s + } + parser.mark.index++ + parser.mark.column = 0 + parser.mark.line++ + parser.unread-- + return s +} + +// Get the next token. +func yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool { + // Erase the token object. + *token = yaml_token_t{} // [Go] Is this necessary? + + // No tokens after STREAM-END or error. + if parser.stream_end_produced || parser.error != yaml_NO_ERROR { + return true + } + + // Ensure that the tokens queue contains enough tokens. + if !parser.token_available { + if !yaml_parser_fetch_more_tokens(parser) { + return false + } + } + + // Fetch the next token from the queue. + *token = parser.tokens[parser.tokens_head] + parser.tokens_head++ + parser.tokens_parsed++ + parser.token_available = false + + if token.typ == yaml_STREAM_END_TOKEN { + parser.stream_end_produced = true + } + return true +} + +// Set the scanner error and return false. +func yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool { + parser.error = yaml_SCANNER_ERROR + parser.context = context + parser.context_mark = context_mark + parser.problem = problem + parser.problem_mark = parser.mark + return false +} + +func yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool { + context := "while parsing a tag" + if directive { + context = "while parsing a %TAG directive" + } + return yaml_parser_set_scanner_error(parser, context, context_mark, "did not find URI escaped octet") +} + +func trace(args ...interface{}) func() { + pargs := append([]interface{}{"+++"}, args...) + fmt.Println(pargs...) + pargs = append([]interface{}{"---"}, args...) + return func() { fmt.Println(pargs...) } +} + +// Ensure that the tokens queue contains at least one token which can be +// returned to the Parser. +func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool { + // While we need more tokens to fetch, do it. + for { + // Check if we really need to fetch more tokens. + need_more_tokens := false + + if parser.tokens_head == len(parser.tokens) { + // Queue is empty. + need_more_tokens = true + } else { + // Check if any potential simple key may occupy the head position. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + if simple_key.possible && simple_key.token_number == parser.tokens_parsed { + need_more_tokens = true + break + } + } + } + + // We are finished. + if !need_more_tokens { + break + } + // Fetch the next token. + if !yaml_parser_fetch_next_token(parser) { + return false + } + } + + parser.token_available = true + return true +} + +// The dispatcher for token fetchers. +func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool { + // Ensure that the buffer is initialized. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check if we just started scanning. Fetch STREAM-START then. + if !parser.stream_start_produced { + return yaml_parser_fetch_stream_start(parser) + } + + // Eat whitespaces and comments until we reach the next token. + if !yaml_parser_scan_to_next_token(parser) { + return false + } + + // Remove obsolete potential simple keys. + if !yaml_parser_stale_simple_keys(parser) { + return false + } + + // Check the indentation level against the current column. + if !yaml_parser_unroll_indent(parser, parser.mark.column) { + return false + } + + // Ensure that the buffer contains at least 4 characters. 4 is the length + // of the longest indicators ('--- ' and '... '). + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + // Is it the end of the stream? + if is_z(parser.buffer, parser.buffer_pos) { + return yaml_parser_fetch_stream_end(parser) + } + + // Is it a directive? + if parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' { + return yaml_parser_fetch_directive(parser) + } + + buf := parser.buffer + pos := parser.buffer_pos + + // Is it the document start indicator? + if parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN) + } + + // Is it the document end indicator? + if parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) { + return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN) + } + + // Is it the flow sequence start indicator? + if buf[pos] == '[' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN) + } + + // Is it the flow mapping start indicator? + if parser.buffer[parser.buffer_pos] == '{' { + return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN) + } + + // Is it the flow sequence end indicator? + if parser.buffer[parser.buffer_pos] == ']' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_SEQUENCE_END_TOKEN) + } + + // Is it the flow mapping end indicator? + if parser.buffer[parser.buffer_pos] == '}' { + return yaml_parser_fetch_flow_collection_end(parser, + yaml_FLOW_MAPPING_END_TOKEN) + } + + // Is it the flow entry indicator? + if parser.buffer[parser.buffer_pos] == ',' { + return yaml_parser_fetch_flow_entry(parser) + } + + // Is it the block entry indicator? + if parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) { + return yaml_parser_fetch_block_entry(parser) + } + + // Is it the key indicator? + if parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_key(parser) + } + + // Is it the value indicator? + if parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_value(parser) + } + + // Is it an alias? + if parser.buffer[parser.buffer_pos] == '*' { + return yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN) + } + + // Is it an anchor? + if parser.buffer[parser.buffer_pos] == '&' { + return yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN) + } + + // Is it a tag? + if parser.buffer[parser.buffer_pos] == '!' { + return yaml_parser_fetch_tag(parser) + } + + // Is it a literal scalar? + if parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, true) + } + + // Is it a folded scalar? + if parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 { + return yaml_parser_fetch_block_scalar(parser, false) + } + + // Is it a single-quoted scalar? + if parser.buffer[parser.buffer_pos] == '\'' { + return yaml_parser_fetch_flow_scalar(parser, true) + } + + // Is it a double-quoted scalar? + if parser.buffer[parser.buffer_pos] == '"' { + return yaml_parser_fetch_flow_scalar(parser, false) + } + + // Is it a plain scalar? + // + // A plain scalar may start with any non-blank characters except + // + // '-', '?', ':', ',', '[', ']', '{', '}', + // '#', '&', '*', '!', '|', '>', '\'', '\"', + // '%', '@', '`'. + // + // In the block context (and, for the '-' indicator, in the flow context + // too), it may also start with the characters + // + // '-', '?', ':' + // + // if it is followed by a non-space character. + // + // The last rule is more restrictive than the specification requires. + // [Go] Make this logic more reasonable. + //switch parser.buffer[parser.buffer_pos] { + //case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`': + //} + if !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' || + parser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '"' || parser.buffer[parser.buffer_pos] == '%' || + parser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') || + (parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level == 0 && + (parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') && + !is_blankz(parser.buffer, parser.buffer_pos+1)) { + return yaml_parser_fetch_plain_scalar(parser) + } + + // If we don't determine the token type so far, it is an error. + return yaml_parser_set_scanner_error(parser, + "while scanning for the next token", parser.mark, + "found character that cannot start any token") +} + +// Check the list of potential simple keys and remove the positions that +// cannot contain simple keys anymore. +func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { + // Check for a potential simple key for each flow level. + for i := range parser.simple_keys { + simple_key := &parser.simple_keys[i] + + // The specification requires that a simple key + // + // - is limited to a single line, + // - is shorter than 1024 characters. + if simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) { + + // Check if the potential simple key to be removed is required. + if simple_key.required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", simple_key.mark, + "could not find expected ':'") + } + simple_key.possible = false + } + } + return true +} + +// Check if a simple key may start at the current position and add it if +// needed. +func yaml_parser_save_simple_key(parser *yaml_parser_t) bool { + // A simple key is required at the current position if the scanner is in + // the block context and the current column coincides with the indentation + // level. + + required := parser.flow_level == 0 && parser.indent == parser.mark.column + + // A simple key is required only when it is the first token in the current + // line. Therefore it is always allowed. But we add a check anyway. + if required && !parser.simple_key_allowed { + panic("should not happen") + } + + // + // If the current position may start a simple key, save it. + // + if parser.simple_key_allowed { + simple_key := yaml_simple_key_t{ + possible: true, + required: required, + token_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head), + } + simple_key.mark = parser.mark + + if !yaml_parser_remove_simple_key(parser) { + return false + } + parser.simple_keys[len(parser.simple_keys)-1] = simple_key + } + return true +} + +// Remove a potential simple key at the current flow level. +func yaml_parser_remove_simple_key(parser *yaml_parser_t) bool { + i := len(parser.simple_keys) - 1 + if parser.simple_keys[i].possible { + // If the key is required, it is an error. + if parser.simple_keys[i].required { + return yaml_parser_set_scanner_error(parser, + "while scanning a simple key", parser.simple_keys[i].mark, + "could not find expected ':'") + } + } + // Remove the key from the stack. + parser.simple_keys[i].possible = false + return true +} + +// Increase the flow level and resize the simple key list if needed. +func yaml_parser_increase_flow_level(parser *yaml_parser_t) bool { + // Reset the simple key on the next level. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // Increase the flow level. + parser.flow_level++ + return true +} + +// Decrease the flow level. +func yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool { + if parser.flow_level > 0 { + parser.flow_level-- + parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] + } + return true +} + +// Push the current indentation level to the stack and set the new level +// the current column is greater than the indentation level. In this case, +// append or insert the specified token into the token queue. +func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + if parser.indent < column { + // Push the current indentation level to the stack and set the new + // indentation level. + parser.indents = append(parser.indents, parser.indent) + parser.indent = column + + // Create a token and insert it into the queue. + token := yaml_token_t{ + typ: typ, + start_mark: mark, + end_mark: mark, + } + if number > -1 { + number -= parser.tokens_parsed + } + yaml_insert_token(parser, number, &token) + } + return true +} + +// Pop indentation levels from the indents stack until the current level +// becomes less or equal to the column. For each indentation level, append +// the BLOCK-END token. +func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool { + // In the flow context, do nothing. + if parser.flow_level > 0 { + return true + } + + // Loop through the indentation levels in the stack. + for parser.indent > column { + // Create a token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + + // Pop the indentation level. + parser.indent = parser.indents[len(parser.indents)-1] + parser.indents = parser.indents[:len(parser.indents)-1] + } + return true +} + +// Initialize the scanner and produce the STREAM-START token. +func yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool { + + // Set the initial indentation. + parser.indent = -1 + + // Initialize the simple key stack. + parser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{}) + + // A simple key is allowed at the beginning of the stream. + parser.simple_key_allowed = true + + // We have started. + parser.stream_start_produced = true + + // Create the STREAM-START token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_START_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + encoding: parser.encoding, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the STREAM-END token and shut down the scanner. +func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool { + + // Force new line. + if parser.mark.column != 0 { + parser.mark.column = 0 + parser.mark.line++ + } + + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the STREAM-END token and append it to the queue. + token := yaml_token_t{ + typ: yaml_STREAM_END_TOKEN, + start_mark: parser.mark, + end_mark: parser.mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token. +func yaml_parser_fetch_directive(parser *yaml_parser_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. + token := yaml_token_t{} + if !yaml_parser_scan_directive(parser, &token) { + return false + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the DOCUMENT-START or DOCUMENT-END token. +func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset the indentation level. + if !yaml_parser_unroll_indent(parser, -1) { + return false + } + + // Reset simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + parser.simple_key_allowed = false + + // Consume the token. + start_mark := parser.mark + + skip(parser) + skip(parser) + skip(parser) + + end_mark := parser.mark + + // Create the DOCUMENT-START or DOCUMENT-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token. +func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // The indicators '[' and '{' may start a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // Increase the flow level. + if !yaml_parser_increase_flow_level(parser) { + return false + } + + // A simple key may follow the indicators '[' and '{'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token. +func yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // Reset any potential simple key on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Decrease the flow level. + if !yaml_parser_decrease_flow_level(parser) { + return false + } + + // No simple keys after the indicators ']' and '}'. + parser.simple_key_allowed = false + + // Consume the token. + + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. + token := yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + } + // Append the token to the queue. + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the FLOW-ENTRY token. +func yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool { + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after ','. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the FLOW-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_FLOW_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the BLOCK-ENTRY token. +func yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool { + // Check if the scanner is in the block context. + if parser.flow_level == 0 { + // Check if we are allowed to start a new entry. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "block sequence entries are not allowed in this context") + } + // Add the BLOCK-SEQUENCE-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) { + return false + } + } else { + // It is an error for the '-' indicator to occur in the flow context, + // but we let the Parser detect and report about it because the Parser + // is able to point to the context. + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '-'. + parser.simple_key_allowed = true + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the BLOCK-ENTRY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_BLOCK_ENTRY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the KEY token. +func yaml_parser_fetch_key(parser *yaml_parser_t) bool { + + // In the block context, additional checks are required. + if parser.flow_level == 0 { + // Check if we are allowed to start a new key (not nessesary simple). + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping keys are not allowed in this context") + } + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Reset any potential simple keys on the current flow level. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // Simple keys are allowed after '?' in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the KEY token and append it to the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the VALUE token. +func yaml_parser_fetch_value(parser *yaml_parser_t) bool { + + simple_key := &parser.simple_keys[len(parser.simple_keys)-1] + + // Have we found a simple key? + if simple_key.possible { + // Create the KEY token and insert it into the queue. + token := yaml_token_t{ + typ: yaml_KEY_TOKEN, + start_mark: simple_key.mark, + end_mark: simple_key.mark, + } + yaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token) + + // In the block context, we may need to add the BLOCK-MAPPING-START token. + if !yaml_parser_roll_indent(parser, simple_key.mark.column, + simple_key.token_number, + yaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) { + return false + } + + // Remove the simple key. + simple_key.possible = false + + // A simple key cannot follow another simple key. + parser.simple_key_allowed = false + + } else { + // The ':' indicator follows a complex key. + + // In the block context, extra checks are required. + if parser.flow_level == 0 { + + // Check if we are allowed to start a complex value. + if !parser.simple_key_allowed { + return yaml_parser_set_scanner_error(parser, "", parser.mark, + "mapping values are not allowed in this context") + } + + // Add the BLOCK-MAPPING-START token if needed. + if !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) { + return false + } + } + + // Simple keys after ':' are allowed in the block context. + parser.simple_key_allowed = parser.flow_level == 0 + } + + // Consume the token. + start_mark := parser.mark + skip(parser) + end_mark := parser.mark + + // Create the VALUE token and append it to the queue. + token := yaml_token_t{ + typ: yaml_VALUE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the ALIAS or ANCHOR token. +func yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool { + // An anchor or an alias could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow an anchor or an alias. + parser.simple_key_allowed = false + + // Create the ALIAS or ANCHOR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_anchor(parser, &token, typ) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the TAG token. +func yaml_parser_fetch_tag(parser *yaml_parser_t) bool { + // A tag could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a tag. + parser.simple_key_allowed = false + + // Create the TAG token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_tag(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens. +func yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool { + // Remove any potential simple keys. + if !yaml_parser_remove_simple_key(parser) { + return false + } + + // A simple key may follow a block scalar. + parser.simple_key_allowed = true + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_block_scalar(parser, &token, literal) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens. +func yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_flow_scalar(parser, &token, single) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Produce the SCALAR(...,plain) token. +func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool { + // A plain scalar could be a simple key. + if !yaml_parser_save_simple_key(parser) { + return false + } + + // A simple key cannot follow a flow scalar. + parser.simple_key_allowed = false + + // Create the SCALAR token and append it to the queue. + var token yaml_token_t + if !yaml_parser_scan_plain_scalar(parser, &token) { + return false + } + yaml_insert_token(parser, -1, &token) + return true +} + +// Eat whitespaces and comments until the next token is found. +func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool { + + // Until the next token is not found. + for { + // Allow the BOM mark to start a line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) { + skip(parser) + } + + // Eat whitespaces. + // Tabs are allowed: + // - in the flow context + // - in the block context, but not at the beginning of the line or + // after '-', '?', or ':' (complex value). + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\t') { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Eat a comment until a line break. + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // If it is a line break, eat it. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + + // In the block context, a new line may start a simple key. + if parser.flow_level == 0 { + parser.simple_key_allowed = true + } + } else { + break // We have found a token. + } + } + + return true +} + +// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool { + // Eat '%'. + start_mark := parser.mark + skip(parser) + + // Scan the directive name. + var name []byte + if !yaml_parser_scan_directive_name(parser, start_mark, &name) { + return false + } + + // Is it a YAML directive? + if bytes.Equal(name, []byte("YAML")) { + // Scan the VERSION directive value. + var major, minor int8 + if !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) { + return false + } + end_mark := parser.mark + + // Create a VERSION-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_VERSION_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + major: major, + minor: minor, + } + + // Is it a TAG directive? + } else if bytes.Equal(name, []byte("TAG")) { + // Scan the TAG directive value. + var handle, prefix []byte + if !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) { + return false + } + end_mark := parser.mark + + // Create a TAG-DIRECTIVE token. + *token = yaml_token_t{ + typ: yaml_TAG_DIRECTIVE_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + prefix: prefix, + } + + // Unknown directive. + } else { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found uknown directive name") + return false + } + + // Eat the rest of the line including any comments. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + return true +} + +// Scan the directive name. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^ +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^ +// +func yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool { + // Consume the directive name. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + var s []byte + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the name is empty. + if len(s) == 0 { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "could not find expected directive name") + return false + } + + // Check for an blank character after the name. + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a directive", + start_mark, "found unexpected non-alphabetical character") + return false + } + *name = s + return true +} + +// Scan the value of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^^^^^^ +func yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool { + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the major version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, major) { + return false + } + + // Eat '.'. + if parser.buffer[parser.buffer_pos] != '.' { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected digit or '.' character") + } + + skip(parser) + + // Consume the minor version number. + if !yaml_parser_scan_version_directive_number(parser, start_mark, minor) { + return false + } + return true +} + +const max_number_length = 2 + +// Scan the version number of VERSION-DIRECTIVE. +// +// Scope: +// %YAML 1.1 # a comment \n +// ^ +// %YAML 1.1 # a comment \n +// ^ +func yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool { + + // Repeat while the next character is digit. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var value, length int8 + for is_digit(parser.buffer, parser.buffer_pos) { + // Check if the number is too long. + length++ + if length > max_number_length { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "found extremely long version number") + } + value = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos)) + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the number was present. + if length == 0 { + return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive", + start_mark, "did not find expected version number") + } + *number = value + return true +} + +// Scan the value of a TAG-DIRECTIVE token. +// +// Scope: +// %TAG !yaml! tag:yaml.org,2002: \n +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// +func yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool { + var handle_value, prefix_value []byte + + // Eat whitespaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a handle. + if !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) { + return false + } + + // Expect a whitespace. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blank(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace") + return false + } + + // Eat whitespaces. + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Scan a prefix. + if !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) { + return false + } + + // Expect a whitespace or line break. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive", + start_mark, "did not find expected whitespace or line break") + return false + } + + *handle = handle_value + *prefix = prefix_value + return true +} + +func yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool { + var s []byte + + // Eat the indicator character. + start_mark := parser.mark + skip(parser) + + // Consume the value. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + end_mark := parser.mark + + /* + * Check if length of the anchor is greater than 0 and it is followed by + * a whitespace character or one of the indicators: + * + * '?', ':', ',', ']', '}', '%', '@', '`'. + */ + + if len(s) == 0 || + !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' || + parser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '`') { + context := "while scanning an alias" + if typ == yaml_ANCHOR_TOKEN { + context = "while scanning an anchor" + } + yaml_parser_set_scanner_error(parser, context, start_mark, + "did not find expected alphabetic or numeric character") + return false + } + + // Create a token. + *token = yaml_token_t{ + typ: typ, + start_mark: start_mark, + end_mark: end_mark, + value: s, + } + + return true +} + +/* + * Scan a TAG token. + */ + +func yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool { + var handle, suffix []byte + + start_mark := parser.mark + + // Check if the tag is in the canonical form. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + if parser.buffer[parser.buffer_pos+1] == '<' { + // Keep the handle as '' + + // Eat '!<' + skip(parser) + skip(parser) + + // Consume the tag value. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + + // Check for '>' and eat it. + if parser.buffer[parser.buffer_pos] != '>' { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find the expected '>'") + return false + } + + skip(parser) + } else { + // The tag has either the '!suffix' or the '!handle!suffix' form. + + // First, try to scan a handle. + if !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) { + return false + } + + // Check if it is, indeed, handle. + if handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' { + // Scan the suffix now. + if !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) { + return false + } + } else { + // It wasn't a handle after all. Scan the rest of the tag. + if !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) { + return false + } + + // Set the handle to '!'. + handle = []byte{'!'} + + // A special case: the '!' tag. Set the handle to '' and the + // suffix to '!'. + if len(suffix) == 0 { + handle, suffix = suffix, handle + } + } + } + + // Check the character which ends the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if !is_blankz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a tag", + start_mark, "did not find expected whitespace or line break") + return false + } + + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_TAG_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: handle, + suffix: suffix, + } + return true +} + +// Scan a tag handle. +func yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool { + // Check the initial '!' character. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] != '!' { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + + var s []byte + + // Copy the '!' character. + s = read(parser, s) + + // Copy all subsequent alphabetical and numerical characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_alpha(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the trailing character is '!' and copy it. + if parser.buffer[parser.buffer_pos] == '!' { + s = read(parser, s) + } else { + // It's either the '!' tag or not really a tag handle. If it's a %TAG + // directive, it's an error. If it's a tag token, it must be a part of URI. + if directive && !(s[0] == '!' && s[1] == 0) { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected '!'") + return false + } + } + + *handle = s + return true +} + +// Scan a tag. +func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool { + //size_t length = head ? strlen((char *)head) : 0 + var s []byte + + // Copy the head if needed. + // + // Note that we don't copy the leading '!' character. + if len(head) > 1 { + s = append(s, head[1:]...) + } + + // Scan the tag. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // The set of characters that may appear in URI is as follows: + // + // '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&', + // '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']', + // '%'. + // [Go] Convert this into more reasonable logic. + for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' || + parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' || + parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' || + parser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' || + parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' || + parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' || + parser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' || + parser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\'' || + parser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' || + parser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' || + parser.buffer[parser.buffer_pos] == '%' { + // Check if it is a URI-escape sequence. + if parser.buffer[parser.buffer_pos] == '%' { + if !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) { + return false + } + } else { + s = read(parser, s) + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check if the tag is non-empty. + if len(s) == 0 { + yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find expected tag URI") + return false + } + *uri = s + return true +} + +// Decode an URI-escape sequence corresponding to a single UTF-8 character. +func yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool { + + // Decode the required number of characters. + w := 1024 + for w > 0 { + // Check for a URI-escaped octet. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + + if !(parser.buffer[parser.buffer_pos] == '%' && + is_hex(parser.buffer, parser.buffer_pos+1) && + is_hex(parser.buffer, parser.buffer_pos+2)) { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "did not find URI escaped octet") + } + + // Get the octet. + octet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2)) + + // If it is the leading octet, determine the length of the UTF-8 sequence. + if w == 1024 { + w = width(octet) + if w == 0 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect leading UTF-8 octet") + } + } else { + // Check if the trailing octet is correct. + if octet&0xC0 != 0x80 { + return yaml_parser_set_scanner_tag_error(parser, directive, + start_mark, "found an incorrect trailing UTF-8 octet") + } + } + + // Copy the octet and move the pointers. + *s = append(*s, octet) + skip(parser) + skip(parser) + skip(parser) + w-- + } + return true +} + +// Scan a block scalar. +func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool { + // Eat the indicator '|' or '>'. + start_mark := parser.mark + skip(parser) + + // Scan the additional block scalar indicators. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + // Check for a chomping indicator. + var chomping, increment int + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + // Set the chomping method and eat the indicator. + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + + // Check for an indentation indicator. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if is_digit(parser.buffer, parser.buffer_pos) { + // Check that the indentation is greater than 0. + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + + // Get the indentation level and eat the indicator. + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + } + + } else if is_digit(parser.buffer, parser.buffer_pos) { + // Do the same as above, but in the opposite order. + + if parser.buffer[parser.buffer_pos] == '0' { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found an indentation indicator equal to 0") + return false + } + increment = as_digit(parser.buffer, parser.buffer_pos) + skip(parser) + + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + if parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' { + if parser.buffer[parser.buffer_pos] == '+' { + chomping = +1 + } else { + chomping = -1 + } + skip(parser) + } + } + + // Eat whitespaces and comments to the end of the line. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for is_blank(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.buffer[parser.buffer_pos] == '#' { + for !is_breakz(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + } + + // Check if we are at the end of the line. + if !is_breakz(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "did not find expected comment or line break") + return false + } + + // Eat a line break. + if is_break(parser.buffer, parser.buffer_pos) { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + skip_line(parser) + } + + end_mark := parser.mark + + // Set the indentation level if it was specified. + var indent int + if increment > 0 { + if parser.indent >= 0 { + indent = parser.indent + increment + } else { + indent = increment + } + } + + // Scan the leading line breaks and determine the indentation level if needed. + var s, leading_break, trailing_breaks []byte + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + + // Scan the block scalar content. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + var leading_blank, trailing_blank bool + for parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) { + // We are at the beginning of a non-empty line. + + // Is it a trailing whitespace? + trailing_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Check if we need to fold the leading line break. + if !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\n' { + // Do we need to join the lines by space? + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } + } else { + s = append(s, leading_break...) + } + leading_break = leading_break[:0] + + // Append the remaining line breaks. + s = append(s, trailing_breaks...) + trailing_breaks = trailing_breaks[:0] + + // Is it a leading whitespace? + leading_blank = is_blank(parser.buffer, parser.buffer_pos) + + // Consume the current line. + for !is_breakz(parser.buffer, parser.buffer_pos) { + s = read(parser, s) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + leading_break = read_line(parser, leading_break) + + // Eat the following indentation spaces and line breaks. + if !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) { + return false + } + } + + // Chomp the tail. + if chomping != -1 { + s = append(s, leading_break...) + } + if chomping == 1 { + s = append(s, trailing_breaks...) + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_LITERAL_SCALAR_STYLE, + } + if !literal { + token.style = yaml_FOLDED_SCALAR_STYLE + } + return true +} + +// Scan indentation spaces and line breaks for a block scalar. Determine the +// indentation level if needed. +func yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool { + *end_mark = parser.mark + + // Eat the indentation spaces and line breaks. + max_indent := 0 + for { + // Eat the indentation spaces. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + for (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) { + skip(parser) + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + if parser.mark.column > max_indent { + max_indent = parser.mark.column + } + + // Check for a tab character messing the indentation. + if (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) { + return yaml_parser_set_scanner_error(parser, "while scanning a block scalar", + start_mark, "found a tab character where an indentation space is expected") + } + + // Have we found a non-empty line? + if !is_break(parser.buffer, parser.buffer_pos) { + break + } + + // Consume the line break. + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + // [Go] Should really be returning breaks instead. + *breaks = read_line(parser, *breaks) + *end_mark = parser.mark + } + + // Determine the indentation level if needed. + if *indent == 0 { + *indent = max_indent + if *indent < parser.indent+1 { + *indent = parser.indent + 1 + } + if *indent < 1 { + *indent = 1 + } + } + return true +} + +// Scan a quoted scalar. +func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool { + // Eat the left quote. + start_mark := parser.mark + skip(parser) + + // Consume the content of the quoted scalar. + var s, leading_break, trailing_breaks, whitespaces []byte + for { + // Check that there are no document indicators at the beginning of the line. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected document indicator") + return false + } + + // Check for EOF. + if is_z(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar", + start_mark, "found unexpected end of stream") + return false + } + + // Consume non-blank characters. + leading_blanks := false + for !is_blankz(parser.buffer, parser.buffer_pos) { + if single && parser.buffer[parser.buffer_pos] == '\'' && parser.buffer[parser.buffer_pos+1] == '\'' { + // Is is an escaped single quote. + s = append(s, '\'') + skip(parser) + skip(parser) + + } else if single && parser.buffer[parser.buffer_pos] == '\'' { + // It is a right single quote. + break + } else if !single && parser.buffer[parser.buffer_pos] == '"' { + // It is a right double quote. + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' && is_break(parser.buffer, parser.buffer_pos+1) { + // It is an escaped line break. + if parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) { + return false + } + skip(parser) + skip_line(parser) + leading_blanks = true + break + + } else if !single && parser.buffer[parser.buffer_pos] == '\\' { + // It is an escape sequence. + code_length := 0 + + // Check the escape character. + switch parser.buffer[parser.buffer_pos+1] { + case '0': + s = append(s, 0) + case 'a': + s = append(s, '\x07') + case 'b': + s = append(s, '\x08') + case 't', '\t': + s = append(s, '\x09') + case 'n': + s = append(s, '\x0A') + case 'v': + s = append(s, '\x0B') + case 'f': + s = append(s, '\x0C') + case 'r': + s = append(s, '\x0D') + case 'e': + s = append(s, '\x1B') + case ' ': + s = append(s, '\x20') + case '"': + s = append(s, '"') + case '\'': + s = append(s, '\'') + case '\\': + s = append(s, '\\') + case 'N': // NEL (#x85) + s = append(s, '\xC2') + s = append(s, '\x85') + case '_': // #xA0 + s = append(s, '\xC2') + s = append(s, '\xA0') + case 'L': // LS (#x2028) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA8') + case 'P': // PS (#x2029) + s = append(s, '\xE2') + s = append(s, '\x80') + s = append(s, '\xA9') + case 'x': + code_length = 2 + case 'u': + code_length = 4 + case 'U': + code_length = 8 + default: + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found unknown escape character") + return false + } + + skip(parser) + skip(parser) + + // Consume an arbitrary escape code. + if code_length > 0 { + var value int + + // Scan the character value. + if parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) { + return false + } + for k := 0; k < code_length; k++ { + if !is_hex(parser.buffer, parser.buffer_pos+k) { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "did not find expected hexdecimal number") + return false + } + value = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k) + } + + // Check the value and write the character. + if (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { + yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar", + start_mark, "found invalid Unicode character escape code") + return false + } + if value <= 0x7F { + s = append(s, byte(value)) + } else if value <= 0x7FF { + s = append(s, byte(0xC0+(value>>6))) + s = append(s, byte(0x80+(value&0x3F))) + } else if value <= 0xFFFF { + s = append(s, byte(0xE0+(value>>12))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } else { + s = append(s, byte(0xF0+(value>>18))) + s = append(s, byte(0x80+((value>>12)&0x3F))) + s = append(s, byte(0x80+((value>>6)&0x3F))) + s = append(s, byte(0x80+(value&0x3F))) + } + + // Advance the pointer. + for k := 0; k < code_length; k++ { + skip(parser) + } + } + } else { + // It is a non-escaped non-blank character. + s = read(parser, s) + } + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + // Check if we are at the end of the scalar. + if single { + if parser.buffer[parser.buffer_pos] == '\'' { + break + } + } else { + if parser.buffer[parser.buffer_pos] == '"' { + break + } + } + + // Consume blank characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Join the whitespaces or fold line breaks. + if leading_blanks { + // Do we need to fold line breaks? + if len(leading_break) > 0 && leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Eat the right quote. + skip(parser) + end_mark := parser.mark + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_SINGLE_QUOTED_SCALAR_STYLE, + } + if !single { + token.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE + } + return true +} + +// Scan a plain scalar. +func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool { + + var s, leading_break, trailing_breaks, whitespaces []byte + var leading_blanks bool + var indent = parser.indent + 1 + + start_mark := parser.mark + end_mark := parser.mark + + // Consume the content of the plain scalar. + for { + // Check for a document indicator. + if parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) { + return false + } + if parser.mark.column == 0 && + ((parser.buffer[parser.buffer_pos+0] == '-' && + parser.buffer[parser.buffer_pos+1] == '-' && + parser.buffer[parser.buffer_pos+2] == '-') || + (parser.buffer[parser.buffer_pos+0] == '.' && + parser.buffer[parser.buffer_pos+1] == '.' && + parser.buffer[parser.buffer_pos+2] == '.')) && + is_blankz(parser.buffer, parser.buffer_pos+3) { + break + } + + // Check for a comment. + if parser.buffer[parser.buffer_pos] == '#' { + break + } + + // Consume non-blank characters. + for !is_blankz(parser.buffer, parser.buffer_pos) { + + // Check for 'x:x' in the flow context. TODO: Fix the test "spec-08-13". + if parser.flow_level > 0 && + parser.buffer[parser.buffer_pos] == ':' && + !is_blankz(parser.buffer, parser.buffer_pos+1) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found unexpected ':'") + return false + } + + // Check for indicators that may end a plain scalar. + if (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) || + (parser.flow_level > 0 && + (parser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == ':' || + parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' || + parser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' || + parser.buffer[parser.buffer_pos] == '}')) { + break + } + + // Check if we need to join whitespaces and breaks. + if leading_blanks || len(whitespaces) > 0 { + if leading_blanks { + // Do we need to fold line breaks? + if leading_break[0] == '\n' { + if len(trailing_breaks) == 0 { + s = append(s, ' ') + } else { + s = append(s, trailing_breaks...) + } + } else { + s = append(s, leading_break...) + s = append(s, trailing_breaks...) + } + trailing_breaks = trailing_breaks[:0] + leading_break = leading_break[:0] + leading_blanks = false + } else { + s = append(s, whitespaces...) + whitespaces = whitespaces[:0] + } + } + + // Copy the character. + s = read(parser, s) + + end_mark = parser.mark + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + } + + // Is it the end? + if !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) { + break + } + + // Consume blank characters. + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + + for is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) { + if is_blank(parser.buffer, parser.buffer_pos) { + + // Check for tab character that abuse indentation. + if leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) { + yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", + start_mark, "found a tab character that violate indentation") + return false + } + + // Consume a space or a tab character. + if !leading_blanks { + whitespaces = read(parser, whitespaces) + } else { + skip(parser) + } + } else { + if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) { + return false + } + + // Check if it is a first line break. + if !leading_blanks { + whitespaces = whitespaces[:0] + leading_break = read_line(parser, leading_break) + leading_blanks = true + } else { + trailing_breaks = read_line(parser, trailing_breaks) + } + } + if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) { + return false + } + } + + // Check indentation level. + if parser.flow_level == 0 && parser.mark.column < indent { + break + } + } + + // Create a token. + *token = yaml_token_t{ + typ: yaml_SCALAR_TOKEN, + start_mark: start_mark, + end_mark: end_mark, + value: s, + style: yaml_PLAIN_SCALAR_STYLE, + } + + // Note that we change the 'simple_key_allowed' flag. + if leading_blanks { + parser.simple_key_allowed = true + } + return true +} diff --git a/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go new file mode 100644 index 00000000..5958822f --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/sorter.go @@ -0,0 +1,104 @@ +package yaml + +import ( + "reflect" + "unicode" +) + +type keyList []reflect.Value + +func (l keyList) Len() int { return len(l) } +func (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } +func (l keyList) Less(i, j int) bool { + a := l[i] + b := l[j] + ak := a.Kind() + bk := b.Kind() + for (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() { + a = a.Elem() + ak = a.Kind() + } + for (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() { + b = b.Elem() + bk = b.Kind() + } + af, aok := keyFloat(a) + bf, bok := keyFloat(b) + if aok && bok { + if af != bf { + return af < bf + } + if ak != bk { + return ak < bk + } + return numLess(a, b) + } + if ak != reflect.String || bk != reflect.String { + return ak < bk + } + ar, br := []rune(a.String()), []rune(b.String()) + for i := 0; i < len(ar) && i < len(br); i++ { + if ar[i] == br[i] { + continue + } + al := unicode.IsLetter(ar[i]) + bl := unicode.IsLetter(br[i]) + if al && bl { + return ar[i] < br[i] + } + if al || bl { + return bl + } + var ai, bi int + var an, bn int64 + for ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ { + an = an*10 + int64(ar[ai]-'0') + } + for bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ { + bn = bn*10 + int64(br[bi]-'0') + } + if an != bn { + return an < bn + } + if ai != bi { + return ai < bi + } + return ar[i] < br[i] + } + return len(ar) < len(br) +} + +// keyFloat returns a float value for v if it is a number/bool +// and whether it is a number/bool or not. +func keyFloat(v reflect.Value) (f float64, ok bool) { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return float64(v.Int()), true + case reflect.Float32, reflect.Float64: + return v.Float(), true + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return float64(v.Uint()), true + case reflect.Bool: + if v.Bool() { + return 1, true + } + return 0, true + } + return 0, false +} + +// numLess returns whether a < b. +// a and b must necessarily have the same kind. +func numLess(a, b reflect.Value) bool { + switch a.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return a.Int() < b.Int() + case reflect.Float32, reflect.Float64: + return a.Float() < b.Float() + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return a.Uint() < b.Uint() + case reflect.Bool: + return !a.Bool() && b.Bool() + } + panic("not a number") +} diff --git a/vendor/gopkg.in/yaml.v2/suite_test.go b/vendor/gopkg.in/yaml.v2/suite_test.go new file mode 100644 index 00000000..c5cf1ed4 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/suite_test.go @@ -0,0 +1,12 @@ +package yaml_test + +import ( + . "gopkg.in/check.v1" + "testing" +) + +func Test(t *testing.T) { TestingT(t) } + +type S struct{} + +var _ = Suite(&S{}) diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go new file mode 100644 index 00000000..190362f2 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/writerc.go @@ -0,0 +1,89 @@ +package yaml + +// Set the writer error and return false. +func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { + emitter.error = yaml_WRITER_ERROR + emitter.problem = problem + return false +} + +// Flush the output buffer. +func yaml_emitter_flush(emitter *yaml_emitter_t) bool { + if emitter.write_handler == nil { + panic("write handler not set") + } + + // Check if the buffer is empty. + if emitter.buffer_pos == 0 { + return true + } + + // If the output encoding is UTF-8, we don't need to recode the buffer. + if emitter.encoding == yaml_UTF8_ENCODING { + if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { + return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) + } + emitter.buffer_pos = 0 + return true + } + + // Recode the buffer into the raw buffer. + var low, high int + if emitter.encoding == yaml_UTF16LE_ENCODING { + low, high = 0, 1 + } else { + high, low = 1, 0 + } + + pos := 0 + for pos < emitter.buffer_pos { + // See the "reader.c" code for more details on UTF-8 encoding. Note + // that we assume that the buffer contains a valid UTF-8 sequence. + + // Read the next UTF-8 character. + octet := emitter.buffer[pos] + + var w int + var value rune + switch { + case octet&0x80 == 0x00: + w, value = 1, rune(octet&0x7F) + case octet&0xE0 == 0xC0: + w, value = 2, rune(octet&0x1F) + case octet&0xF0 == 0xE0: + w, value = 3, rune(octet&0x0F) + case octet&0xF8 == 0xF0: + w, value = 4, rune(octet&0x07) + } + for k := 1; k < w; k++ { + octet = emitter.buffer[pos+k] + value = (value << 6) + (rune(octet) & 0x3F) + } + pos += w + + // Write the character. + if value < 0x10000 { + var b [2]byte + b[high] = byte(value >> 8) + b[low] = byte(value & 0xFF) + emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1]) + } else { + // Write the character using a surrogate pair (check "reader.c"). + var b [4]byte + value -= 0x10000 + b[high] = byte(0xD8 + (value >> 18)) + b[low] = byte((value >> 10) & 0xFF) + b[high+2] = byte(0xDC + ((value >> 8) & 0xFF)) + b[low+2] = byte(value & 0xFF) + emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1], b[2], b[3]) + } + } + + // Write the raw buffer. + if err := emitter.write_handler(emitter, emitter.raw_buffer); err != nil { + return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) + } + emitter.buffer_pos = 0 + emitter.raw_buffer = emitter.raw_buffer[:0] + return true +} diff --git a/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go new file mode 100644 index 00000000..d133edf9 --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yaml.go @@ -0,0 +1,346 @@ +// Package yaml implements YAML support for the Go language. +// +// Source code and other details for the project are available at GitHub: +// +// https://github.com/go-yaml/yaml +// +package yaml + +import ( + "errors" + "fmt" + "reflect" + "strings" + "sync" +) + +// MapSlice encodes and decodes as a YAML map. +// The order of keys is preserved when encoding and decoding. +type MapSlice []MapItem + +// MapItem is an item in a MapSlice. +type MapItem struct { + Key, Value interface{} +} + +// The Unmarshaler interface may be implemented by types to customize their +// behavior when being unmarshaled from a YAML document. The UnmarshalYAML +// method receives a function that may be called to unmarshal the original +// YAML value into a field or variable. It is safe to call the unmarshal +// function parameter more than once if necessary. +type Unmarshaler interface { + UnmarshalYAML(unmarshal func(interface{}) error) error +} + +// The Marshaler interface may be implemented by types to customize their +// behavior when being marshaled into a YAML document. The returned value +// is marshaled in place of the original value implementing Marshaler. +// +// If an error is returned by MarshalYAML, the marshaling procedure stops +// and returns with the provided error. +type Marshaler interface { + MarshalYAML() (interface{}, error) +} + +// Unmarshal decodes the first document found within the in byte slice +// and assigns decoded values into the out value. +// +// Maps and pointers (to a struct, string, int, etc) are accepted as out +// values. If an internal pointer within a struct is not initialized, +// the yaml package will initialize it if necessary for unmarshalling +// the provided data. The out parameter must not be nil. +// +// The type of the decoded values should be compatible with the respective +// values in out. If one or more values cannot be decoded due to a type +// mismatches, decoding continues partially until the end of the YAML +// content, and a *yaml.TypeError is returned with details for all +// missed values. +// +// Struct fields are only unmarshalled if they are exported (have an +// upper case first letter), and are unmarshalled using the field name +// lowercased as the default key. Custom keys may be defined via the +// "yaml" name in the field tag: the content preceding the first comma +// is used as the key, and the following comma-separated options are +// used to tweak the marshalling process (see Marshal). +// Conflicting names result in a runtime error. +// +// For example: +// +// type T struct { +// F int `yaml:"a,omitempty"` +// B int +// } +// var t T +// yaml.Unmarshal([]byte("a: 1\nb: 2"), &t) +// +// See the documentation of Marshal for the format of tags and a list of +// supported tag options. +// +func Unmarshal(in []byte, out interface{}) (err error) { + defer handleErr(&err) + d := newDecoder() + p := newParser(in) + defer p.destroy() + node := p.parse() + if node != nil { + v := reflect.ValueOf(out) + if v.Kind() == reflect.Ptr && !v.IsNil() { + v = v.Elem() + } + d.unmarshal(node, v) + } + if len(d.terrors) > 0 { + return &TypeError{d.terrors} + } + return nil +} + +// Marshal serializes the value provided into a YAML document. The structure +// of the generated document will reflect the structure of the value itself. +// Maps and pointers (to struct, string, int, etc) are accepted as the in value. +// +// Struct fields are only unmarshalled if they are exported (have an upper case +// first letter), and are unmarshalled using the field name lowercased as the +// default key. Custom keys may be defined via the "yaml" name in the field +// tag: the content preceding the first comma is used as the key, and the +// following comma-separated options are used to tweak the marshalling process. +// Conflicting names result in a runtime error. +// +// The field tag format accepted is: +// +// `(...) yaml:"[][,[,]]" (...)` +// +// The following flags are currently supported: +// +// omitempty Only include the field if it's not set to the zero +// value for the type or to empty slices or maps. +// Does not apply to zero valued structs. +// +// flow Marshal using a flow style (useful for structs, +// sequences and maps). +// +// inline Inline the field, which must be a struct or a map, +// causing all of its fields or keys to be processed as if +// they were part of the outer struct. For maps, keys must +// not conflict with the yaml keys of other struct fields. +// +// In addition, if the key is "-", the field is ignored. +// +// For example: +// +// type T struct { +// F int "a,omitempty" +// B int +// } +// yaml.Marshal(&T{B: 2}) // Returns "b: 2\n" +// yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n" +// +func Marshal(in interface{}) (out []byte, err error) { + defer handleErr(&err) + e := newEncoder() + defer e.destroy() + e.marshal("", reflect.ValueOf(in)) + e.finish() + out = e.out + return +} + +func handleErr(err *error) { + if v := recover(); v != nil { + if e, ok := v.(yamlError); ok { + *err = e.err + } else { + panic(v) + } + } +} + +type yamlError struct { + err error +} + +func fail(err error) { + panic(yamlError{err}) +} + +func failf(format string, args ...interface{}) { + panic(yamlError{fmt.Errorf("yaml: "+format, args...)}) +} + +// A TypeError is returned by Unmarshal when one or more fields in +// the YAML document cannot be properly decoded into the requested +// types. When this error is returned, the value is still +// unmarshaled partially. +type TypeError struct { + Errors []string +} + +func (e *TypeError) Error() string { + return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n ")) +} + +// -------------------------------------------------------------------------- +// Maintain a mapping of keys to structure field indexes + +// The code in this section was copied from mgo/bson. + +// structInfo holds details for the serialization of fields of +// a given struct. +type structInfo struct { + FieldsMap map[string]fieldInfo + FieldsList []fieldInfo + + // InlineMap is the number of the field in the struct that + // contains an ,inline map, or -1 if there's none. + InlineMap int +} + +type fieldInfo struct { + Key string + Num int + OmitEmpty bool + Flow bool + + // Inline holds the field index if the field is part of an inlined struct. + Inline []int +} + +var structMap = make(map[reflect.Type]*structInfo) +var fieldMapMutex sync.RWMutex + +func getStructInfo(st reflect.Type) (*structInfo, error) { + fieldMapMutex.RLock() + sinfo, found := structMap[st] + fieldMapMutex.RUnlock() + if found { + return sinfo, nil + } + + n := st.NumField() + fieldsMap := make(map[string]fieldInfo) + fieldsList := make([]fieldInfo, 0, n) + inlineMap := -1 + for i := 0; i != n; i++ { + field := st.Field(i) + if field.PkgPath != "" { + continue // Private field + } + + info := fieldInfo{Num: i} + + tag := field.Tag.Get("yaml") + if tag == "" && strings.Index(string(field.Tag), ":") < 0 { + tag = string(field.Tag) + } + if tag == "-" { + continue + } + + inline := false + fields := strings.Split(tag, ",") + if len(fields) > 1 { + for _, flag := range fields[1:] { + switch flag { + case "omitempty": + info.OmitEmpty = true + case "flow": + info.Flow = true + case "inline": + inline = true + default: + return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st)) + } + } + tag = fields[0] + } + + if inline { + switch field.Type.Kind() { + case reflect.Map: + if inlineMap >= 0 { + return nil, errors.New("Multiple ,inline maps in struct " + st.String()) + } + if field.Type.Key() != reflect.TypeOf("") { + return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String()) + } + inlineMap = info.Num + case reflect.Struct: + sinfo, err := getStructInfo(field.Type) + if err != nil { + return nil, err + } + for _, finfo := range sinfo.FieldsList { + if _, found := fieldsMap[finfo.Key]; found { + msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + if finfo.Inline == nil { + finfo.Inline = []int{i, finfo.Num} + } else { + finfo.Inline = append([]int{i}, finfo.Inline...) + } + fieldsMap[finfo.Key] = finfo + fieldsList = append(fieldsList, finfo) + } + default: + //return nil, errors.New("Option ,inline needs a struct value or map field") + return nil, errors.New("Option ,inline needs a struct value field") + } + continue + } + + if tag != "" { + info.Key = tag + } else { + info.Key = strings.ToLower(field.Name) + } + + if _, found = fieldsMap[info.Key]; found { + msg := "Duplicated key '" + info.Key + "' in struct " + st.String() + return nil, errors.New(msg) + } + + fieldsList = append(fieldsList, info) + fieldsMap[info.Key] = info + } + + sinfo = &structInfo{fieldsMap, fieldsList, inlineMap} + + fieldMapMutex.Lock() + structMap[st] = sinfo + fieldMapMutex.Unlock() + return sinfo, nil +} + +func isZero(v reflect.Value) bool { + switch v.Kind() { + case reflect.String: + return len(v.String()) == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflect.Slice: + return v.Len() == 0 + case reflect.Map: + return v.Len() == 0 + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Struct: + vt := v.Type() + for i := v.NumField() - 1; i >= 0; i-- { + if vt.Field(i).PkgPath != "" { + continue // Private field + } + if !isZero(v.Field(i)) { + return false + } + } + return true + } + return false +} diff --git a/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go new file mode 100644 index 00000000..d60a6b6b --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlh.go @@ -0,0 +1,716 @@ +package yaml + +import ( + "io" +) + +// The version directive data. +type yaml_version_directive_t struct { + major int8 // The major version number. + minor int8 // The minor version number. +} + +// The tag directive data. +type yaml_tag_directive_t struct { + handle []byte // The tag handle. + prefix []byte // The tag prefix. +} + +type yaml_encoding_t int + +// The stream encoding. +const ( + // Let the parser choose the encoding. + yaml_ANY_ENCODING yaml_encoding_t = iota + + yaml_UTF8_ENCODING // The default UTF-8 encoding. + yaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM. + yaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM. +) + +type yaml_break_t int + +// Line break types. +const ( + // Let the parser choose the break type. + yaml_ANY_BREAK yaml_break_t = iota + + yaml_CR_BREAK // Use CR for line breaks (Mac style). + yaml_LN_BREAK // Use LN for line breaks (Unix style). + yaml_CRLN_BREAK // Use CR LN for line breaks (DOS style). +) + +type yaml_error_type_t int + +// Many bad things could happen with the parser and emitter. +const ( + // No error is produced. + yaml_NO_ERROR yaml_error_type_t = iota + + yaml_MEMORY_ERROR // Cannot allocate or reallocate a block of memory. + yaml_READER_ERROR // Cannot read or decode the input stream. + yaml_SCANNER_ERROR // Cannot scan the input stream. + yaml_PARSER_ERROR // Cannot parse the input stream. + yaml_COMPOSER_ERROR // Cannot compose a YAML document. + yaml_WRITER_ERROR // Cannot write to the output stream. + yaml_EMITTER_ERROR // Cannot emit a YAML stream. +) + +// The pointer position. +type yaml_mark_t struct { + index int // The position index. + line int // The position line. + column int // The position column. +} + +// Node Styles + +type yaml_style_t int8 + +type yaml_scalar_style_t yaml_style_t + +// Scalar styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota + + yaml_PLAIN_SCALAR_STYLE // The plain scalar style. + yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style. + yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style. + yaml_LITERAL_SCALAR_STYLE // The literal scalar style. + yaml_FOLDED_SCALAR_STYLE // The folded scalar style. +) + +type yaml_sequence_style_t yaml_style_t + +// Sequence styles. +const ( + // Let the emitter choose the style. + yaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota + + yaml_BLOCK_SEQUENCE_STYLE // The block sequence style. + yaml_FLOW_SEQUENCE_STYLE // The flow sequence style. +) + +type yaml_mapping_style_t yaml_style_t + +// Mapping styles. +const ( + // Let the emitter choose the style. + yaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota + + yaml_BLOCK_MAPPING_STYLE // The block mapping style. + yaml_FLOW_MAPPING_STYLE // The flow mapping style. +) + +// Tokens + +type yaml_token_type_t int + +// Token types. +const ( + // An empty token. + yaml_NO_TOKEN yaml_token_type_t = iota + + yaml_STREAM_START_TOKEN // A STREAM-START token. + yaml_STREAM_END_TOKEN // A STREAM-END token. + + yaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token. + yaml_TAG_DIRECTIVE_TOKEN // A TAG-DIRECTIVE token. + yaml_DOCUMENT_START_TOKEN // A DOCUMENT-START token. + yaml_DOCUMENT_END_TOKEN // A DOCUMENT-END token. + + yaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token. + yaml_BLOCK_MAPPING_START_TOKEN // A BLOCK-SEQUENCE-END token. + yaml_BLOCK_END_TOKEN // A BLOCK-END token. + + yaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token. + yaml_FLOW_SEQUENCE_END_TOKEN // A FLOW-SEQUENCE-END token. + yaml_FLOW_MAPPING_START_TOKEN // A FLOW-MAPPING-START token. + yaml_FLOW_MAPPING_END_TOKEN // A FLOW-MAPPING-END token. + + yaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token. + yaml_FLOW_ENTRY_TOKEN // A FLOW-ENTRY token. + yaml_KEY_TOKEN // A KEY token. + yaml_VALUE_TOKEN // A VALUE token. + + yaml_ALIAS_TOKEN // An ALIAS token. + yaml_ANCHOR_TOKEN // An ANCHOR token. + yaml_TAG_TOKEN // A TAG token. + yaml_SCALAR_TOKEN // A SCALAR token. +) + +func (tt yaml_token_type_t) String() string { + switch tt { + case yaml_NO_TOKEN: + return "yaml_NO_TOKEN" + case yaml_STREAM_START_TOKEN: + return "yaml_STREAM_START_TOKEN" + case yaml_STREAM_END_TOKEN: + return "yaml_STREAM_END_TOKEN" + case yaml_VERSION_DIRECTIVE_TOKEN: + return "yaml_VERSION_DIRECTIVE_TOKEN" + case yaml_TAG_DIRECTIVE_TOKEN: + return "yaml_TAG_DIRECTIVE_TOKEN" + case yaml_DOCUMENT_START_TOKEN: + return "yaml_DOCUMENT_START_TOKEN" + case yaml_DOCUMENT_END_TOKEN: + return "yaml_DOCUMENT_END_TOKEN" + case yaml_BLOCK_SEQUENCE_START_TOKEN: + return "yaml_BLOCK_SEQUENCE_START_TOKEN" + case yaml_BLOCK_MAPPING_START_TOKEN: + return "yaml_BLOCK_MAPPING_START_TOKEN" + case yaml_BLOCK_END_TOKEN: + return "yaml_BLOCK_END_TOKEN" + case yaml_FLOW_SEQUENCE_START_TOKEN: + return "yaml_FLOW_SEQUENCE_START_TOKEN" + case yaml_FLOW_SEQUENCE_END_TOKEN: + return "yaml_FLOW_SEQUENCE_END_TOKEN" + case yaml_FLOW_MAPPING_START_TOKEN: + return "yaml_FLOW_MAPPING_START_TOKEN" + case yaml_FLOW_MAPPING_END_TOKEN: + return "yaml_FLOW_MAPPING_END_TOKEN" + case yaml_BLOCK_ENTRY_TOKEN: + return "yaml_BLOCK_ENTRY_TOKEN" + case yaml_FLOW_ENTRY_TOKEN: + return "yaml_FLOW_ENTRY_TOKEN" + case yaml_KEY_TOKEN: + return "yaml_KEY_TOKEN" + case yaml_VALUE_TOKEN: + return "yaml_VALUE_TOKEN" + case yaml_ALIAS_TOKEN: + return "yaml_ALIAS_TOKEN" + case yaml_ANCHOR_TOKEN: + return "yaml_ANCHOR_TOKEN" + case yaml_TAG_TOKEN: + return "yaml_TAG_TOKEN" + case yaml_SCALAR_TOKEN: + return "yaml_SCALAR_TOKEN" + } + return "" +} + +// The token structure. +type yaml_token_t struct { + // The token type. + typ yaml_token_type_t + + // The start/end of the token. + start_mark, end_mark yaml_mark_t + + // The stream encoding (for yaml_STREAM_START_TOKEN). + encoding yaml_encoding_t + + // The alias/anchor/scalar value or tag/tag directive handle + // (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN). + value []byte + + // The tag suffix (for yaml_TAG_TOKEN). + suffix []byte + + // The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN). + prefix []byte + + // The scalar style (for yaml_SCALAR_TOKEN). + style yaml_scalar_style_t + + // The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN). + major, minor int8 +} + +// Events + +type yaml_event_type_t int8 + +// Event types. +const ( + // An empty event. + yaml_NO_EVENT yaml_event_type_t = iota + + yaml_STREAM_START_EVENT // A STREAM-START event. + yaml_STREAM_END_EVENT // A STREAM-END event. + yaml_DOCUMENT_START_EVENT // A DOCUMENT-START event. + yaml_DOCUMENT_END_EVENT // A DOCUMENT-END event. + yaml_ALIAS_EVENT // An ALIAS event. + yaml_SCALAR_EVENT // A SCALAR event. + yaml_SEQUENCE_START_EVENT // A SEQUENCE-START event. + yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event. + yaml_MAPPING_START_EVENT // A MAPPING-START event. + yaml_MAPPING_END_EVENT // A MAPPING-END event. +) + +// The event structure. +type yaml_event_t struct { + + // The event type. + typ yaml_event_type_t + + // The start and end of the event. + start_mark, end_mark yaml_mark_t + + // The document encoding (for yaml_STREAM_START_EVENT). + encoding yaml_encoding_t + + // The version directive (for yaml_DOCUMENT_START_EVENT). + version_directive *yaml_version_directive_t + + // The list of tag directives (for yaml_DOCUMENT_START_EVENT). + tag_directives []yaml_tag_directive_t + + // The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT). + anchor []byte + + // The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + tag []byte + + // The scalar value (for yaml_SCALAR_EVENT). + value []byte + + // Is the document start/end indicator implicit, or the tag optional? + // (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT). + implicit bool + + // Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT). + quoted_implicit bool + + // The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT). + style yaml_style_t +} + +func (e *yaml_event_t) scalar_style() yaml_scalar_style_t { return yaml_scalar_style_t(e.style) } +func (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) } +func (e *yaml_event_t) mapping_style() yaml_mapping_style_t { return yaml_mapping_style_t(e.style) } + +// Nodes + +const ( + yaml_NULL_TAG = "tag:yaml.org,2002:null" // The tag !!null with the only possible value: null. + yaml_BOOL_TAG = "tag:yaml.org,2002:bool" // The tag !!bool with the values: true and false. + yaml_STR_TAG = "tag:yaml.org,2002:str" // The tag !!str for string values. + yaml_INT_TAG = "tag:yaml.org,2002:int" // The tag !!int for integer values. + yaml_FLOAT_TAG = "tag:yaml.org,2002:float" // The tag !!float for float values. + yaml_TIMESTAMP_TAG = "tag:yaml.org,2002:timestamp" // The tag !!timestamp for date and time values. + + yaml_SEQ_TAG = "tag:yaml.org,2002:seq" // The tag !!seq is used to denote sequences. + yaml_MAP_TAG = "tag:yaml.org,2002:map" // The tag !!map is used to denote mapping. + + // Not in original libyaml. + yaml_BINARY_TAG = "tag:yaml.org,2002:binary" + yaml_MERGE_TAG = "tag:yaml.org,2002:merge" + + yaml_DEFAULT_SCALAR_TAG = yaml_STR_TAG // The default scalar tag is !!str. + yaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq. + yaml_DEFAULT_MAPPING_TAG = yaml_MAP_TAG // The default mapping tag is !!map. +) + +type yaml_node_type_t int + +// Node types. +const ( + // An empty node. + yaml_NO_NODE yaml_node_type_t = iota + + yaml_SCALAR_NODE // A scalar node. + yaml_SEQUENCE_NODE // A sequence node. + yaml_MAPPING_NODE // A mapping node. +) + +// An element of a sequence node. +type yaml_node_item_t int + +// An element of a mapping node. +type yaml_node_pair_t struct { + key int // The key of the element. + value int // The value of the element. +} + +// The node structure. +type yaml_node_t struct { + typ yaml_node_type_t // The node type. + tag []byte // The node tag. + + // The node data. + + // The scalar parameters (for yaml_SCALAR_NODE). + scalar struct { + value []byte // The scalar value. + length int // The length of the scalar value. + style yaml_scalar_style_t // The scalar style. + } + + // The sequence parameters (for YAML_SEQUENCE_NODE). + sequence struct { + items_data []yaml_node_item_t // The stack of sequence items. + style yaml_sequence_style_t // The sequence style. + } + + // The mapping parameters (for yaml_MAPPING_NODE). + mapping struct { + pairs_data []yaml_node_pair_t // The stack of mapping pairs (key, value). + pairs_start *yaml_node_pair_t // The beginning of the stack. + pairs_end *yaml_node_pair_t // The end of the stack. + pairs_top *yaml_node_pair_t // The top of the stack. + style yaml_mapping_style_t // The mapping style. + } + + start_mark yaml_mark_t // The beginning of the node. + end_mark yaml_mark_t // The end of the node. + +} + +// The document structure. +type yaml_document_t struct { + + // The document nodes. + nodes []yaml_node_t + + // The version directive. + version_directive *yaml_version_directive_t + + // The list of tag directives. + tag_directives_data []yaml_tag_directive_t + tag_directives_start int // The beginning of the tag directives list. + tag_directives_end int // The end of the tag directives list. + + start_implicit int // Is the document start indicator implicit? + end_implicit int // Is the document end indicator implicit? + + // The start/end of the document. + start_mark, end_mark yaml_mark_t +} + +// The prototype of a read handler. +// +// The read handler is called when the parser needs to read more bytes from the +// source. The handler should write not more than size bytes to the buffer. +// The number of written bytes should be set to the size_read variable. +// +// [in,out] data A pointer to an application data specified by +// yaml_parser_set_input(). +// [out] buffer The buffer to write the data from the source. +// [in] size The size of the buffer. +// [out] size_read The actual number of bytes read from the source. +// +// On success, the handler should return 1. If the handler failed, +// the returned value should be 0. On EOF, the handler should set the +// size_read to 0 and return 1. +type yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error) + +// This structure holds information about a potential simple key. +type yaml_simple_key_t struct { + possible bool // Is a simple key possible? + required bool // Is a simple key required? + token_number int // The number of the token. + mark yaml_mark_t // The position mark. +} + +// The states of the parser. +type yaml_parser_state_t int + +const ( + yaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota + + yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE // Expect the beginning of an implicit document. + yaml_PARSE_DOCUMENT_START_STATE // Expect DOCUMENT-START. + yaml_PARSE_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_PARSE_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_PARSE_BLOCK_NODE_STATE // Expect a block node. + yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence. + yaml_PARSE_FLOW_NODE_STATE // Expect a flow node. + yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a block sequence. + yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE // Expect an entry of a block sequence. + yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE // Expect an entry of an indentless sequence. + yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_PARSE_BLOCK_MAPPING_KEY_STATE // Expect a block mapping key. + yaml_PARSE_BLOCK_MAPPING_VALUE_STATE // Expect a block mapping value. + yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE // Expect the first entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE // Expect an entry of a flow sequence. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE // Expect a key of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping. + yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE // Expect the and of an ordered mapping entry. + yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_PARSE_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE // Expect an empty value of a flow mapping. + yaml_PARSE_END_STATE // Expect nothing. +) + +func (ps yaml_parser_state_t) String() string { + switch ps { + case yaml_PARSE_STREAM_START_STATE: + return "yaml_PARSE_STREAM_START_STATE" + case yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE: + return "yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_START_STATE: + return "yaml_PARSE_DOCUMENT_START_STATE" + case yaml_PARSE_DOCUMENT_CONTENT_STATE: + return "yaml_PARSE_DOCUMENT_CONTENT_STATE" + case yaml_PARSE_DOCUMENT_END_STATE: + return "yaml_PARSE_DOCUMENT_END_STATE" + case yaml_PARSE_BLOCK_NODE_STATE: + return "yaml_PARSE_BLOCK_NODE_STATE" + case yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE: + return "yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE" + case yaml_PARSE_FLOW_NODE_STATE: + return "yaml_PARSE_FLOW_NODE_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_KEY_STATE: + return "yaml_PARSE_BLOCK_MAPPING_KEY_STATE" + case yaml_PARSE_BLOCK_MAPPING_VALUE_STATE: + return "yaml_PARSE_BLOCK_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE: + return "yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE" + case yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_KEY_STATE: + return "yaml_PARSE_FLOW_MAPPING_KEY_STATE" + case yaml_PARSE_FLOW_MAPPING_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_VALUE_STATE" + case yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE: + return "yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE" + case yaml_PARSE_END_STATE: + return "yaml_PARSE_END_STATE" + } + return "" +} + +// This structure holds aliases data. +type yaml_alias_data_t struct { + anchor []byte // The anchor. + index int // The node id. + mark yaml_mark_t // The anchor mark. +} + +// The parser structure. +// +// All members are internal. Manage the structure using the +// yaml_parser_ family of functions. +type yaml_parser_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + + problem string // Error description. + + // The byte about which the problem occured. + problem_offset int + problem_value int + problem_mark yaml_mark_t + + // The error context. + context string + context_mark yaml_mark_t + + // Reader stuff + + read_handler yaml_read_handler_t // Read handler. + + input_file io.Reader // File input data. + input []byte // String input data. + input_pos int + + eof bool // EOF flag + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + unread int // The number of unread characters in the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The input encoding. + + offset int // The offset of the current position (in bytes). + mark yaml_mark_t // The mark of the current position. + + // Scanner stuff + + stream_start_produced bool // Have we started to scan the input stream? + stream_end_produced bool // Have we reached the end of the input stream? + + flow_level int // The number of unclosed '[' and '{' indicators. + + tokens []yaml_token_t // The tokens queue. + tokens_head int // The head of the tokens queue. + tokens_parsed int // The number of tokens fetched from the queue. + token_available bool // Does the tokens queue contain a token ready for dequeueing. + + indent int // The current indentation level. + indents []int // The indentation levels stack. + + simple_key_allowed bool // May a simple key occur at the current position? + simple_keys []yaml_simple_key_t // The stack of simple keys. + + // Parser stuff + + state yaml_parser_state_t // The current parser state. + states []yaml_parser_state_t // The parser states stack. + marks []yaml_mark_t // The stack of marks. + tag_directives []yaml_tag_directive_t // The list of TAG directives. + + // Dumper stuff + + aliases []yaml_alias_data_t // The alias data. + + document *yaml_document_t // The currently parsed document. +} + +// Emitter Definitions + +// The prototype of a write handler. +// +// The write handler is called when the emitter needs to flush the accumulated +// characters to the output. The handler should write @a size bytes of the +// @a buffer to the output. +// +// @param[in,out] data A pointer to an application data specified by +// yaml_emitter_set_output(). +// @param[in] buffer The buffer with bytes to be written. +// @param[in] size The size of the buffer. +// +// @returns On success, the handler should return @c 1. If the handler failed, +// the returned value should be @c 0. +// +type yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error + +type yaml_emitter_state_t int + +// The emitter states. +const ( + // Expect STREAM-START. + yaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota + + yaml_EMIT_FIRST_DOCUMENT_START_STATE // Expect the first DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_START_STATE // Expect DOCUMENT-START or STREAM-END. + yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document. + yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END. + yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence. + yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence. + yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping. + yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping. + yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a block sequence. + yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE // Expect an item of a block sequence. + yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE // Expect the first key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_KEY_STATE // Expect the key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping. + yaml_EMIT_BLOCK_MAPPING_VALUE_STATE // Expect a value of a block mapping. + yaml_EMIT_END_STATE // Expect nothing. +) + +// The emitter structure. +// +// All members are internal. Manage the structure using the @c yaml_emitter_ +// family of functions. +type yaml_emitter_t struct { + + // Error handling + + error yaml_error_type_t // Error type. + problem string // Error description. + + // Writer stuff + + write_handler yaml_write_handler_t // Write handler. + + output_buffer *[]byte // String output data. + output_file io.Writer // File output data. + + buffer []byte // The working buffer. + buffer_pos int // The current position of the buffer. + + raw_buffer []byte // The raw buffer. + raw_buffer_pos int // The current position of the buffer. + + encoding yaml_encoding_t // The stream encoding. + + // Emitter stuff + + canonical bool // If the output is in the canonical style? + best_indent int // The number of indentation spaces. + best_width int // The preferred width of the output lines. + unicode bool // Allow unescaped non-ASCII characters? + line_break yaml_break_t // The preferred line break. + + state yaml_emitter_state_t // The current emitter state. + states []yaml_emitter_state_t // The stack of states. + + events []yaml_event_t // The event queue. + events_head int // The head of the event queue. + + indents []int // The stack of indentation levels. + + tag_directives []yaml_tag_directive_t // The list of tag directives. + + indent int // The current indentation level. + + flow_level int // The current flow level. + + root_context bool // Is it the document root context? + sequence_context bool // Is it a sequence context? + mapping_context bool // Is it a mapping context? + simple_key_context bool // Is it a simple mapping key context? + + line int // The current line. + column int // The current column. + whitespace bool // If the last character was a whitespace? + indention bool // If the last character was an indentation character (' ', '-', '?', ':')? + open_ended bool // If an explicit document end is required? + + // Anchor analysis. + anchor_data struct { + anchor []byte // The anchor value. + alias bool // Is it an alias? + } + + // Tag analysis. + tag_data struct { + handle []byte // The tag handle. + suffix []byte // The tag suffix. + } + + // Scalar analysis. + scalar_data struct { + value []byte // The scalar value. + multiline bool // Does the scalar contain line breaks? + flow_plain_allowed bool // Can the scalar be expessed in the flow plain style? + block_plain_allowed bool // Can the scalar be expressed in the block plain style? + single_quoted_allowed bool // Can the scalar be expressed in the single quoted style? + block_allowed bool // Can the scalar be expressed in the literal or folded styles? + style yaml_scalar_style_t // The output style. + } + + // Dumper stuff + + opened bool // If the stream was already opened? + closed bool // If the stream was already closed? + + // The information associated with the document nodes. + anchors *struct { + references int // The number of references. + anchor int // The anchor id. + serialized bool // If the node has been emitted? + } + + last_anchor_id int // The last assigned anchor id. + + document *yaml_document_t // The currently emitted document. +} diff --git a/vendor/gopkg.in/yaml.v2/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go new file mode 100644 index 00000000..8110ce3c --- /dev/null +++ b/vendor/gopkg.in/yaml.v2/yamlprivateh.go @@ -0,0 +1,173 @@ +package yaml + +const ( + // The size of the input raw buffer. + input_raw_buffer_size = 512 + + // The size of the input buffer. + // It should be possible to decode the whole raw buffer. + input_buffer_size = input_raw_buffer_size * 3 + + // The size of the output buffer. + output_buffer_size = 128 + + // The size of the output raw buffer. + // It should be possible to encode the whole output buffer. + output_raw_buffer_size = (output_buffer_size*2 + 2) + + // The size of other stacks and queues. + initial_stack_size = 16 + initial_queue_size = 16 + initial_string_size = 16 +) + +// Check if the character at the specified position is an alphabetical +// character, a digit, '_', or '-'. +func is_alpha(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-' +} + +// Check if the character at the specified position is a digit. +func is_digit(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' +} + +// Get the value of a digit. +func as_digit(b []byte, i int) int { + return int(b[i]) - '0' +} + +// Check if the character at the specified position is a hex-digit. +func is_hex(b []byte, i int) bool { + return b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f' +} + +// Get the value of a hex-digit. +func as_hex(b []byte, i int) int { + bi := b[i] + if bi >= 'A' && bi <= 'F' { + return int(bi) - 'A' + 10 + } + if bi >= 'a' && bi <= 'f' { + return int(bi) - 'a' + 10 + } + return int(bi) - '0' +} + +// Check if the character is ASCII. +func is_ascii(b []byte, i int) bool { + return b[i] <= 0x7F +} + +// Check if the character at the start of the buffer can be printed unescaped. +func is_printable(b []byte, i int) bool { + return ((b[i] == 0x0A) || // . == #x0A + (b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E + (b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF + (b[i] > 0xC2 && b[i] < 0xED) || + (b[i] == 0xED && b[i+1] < 0xA0) || + (b[i] == 0xEE) || + (b[i] == 0xEF && // #xE000 <= . <= #xFFFD + !(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF + !(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF)))) +} + +// Check if the character at the specified position is NUL. +func is_z(b []byte, i int) bool { + return b[i] == 0x00 +} + +// Check if the beginning of the buffer is a BOM. +func is_bom(b []byte, i int) bool { + return b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF +} + +// Check if the character at the specified position is space. +func is_space(b []byte, i int) bool { + return b[i] == ' ' +} + +// Check if the character at the specified position is tab. +func is_tab(b []byte, i int) bool { + return b[i] == '\t' +} + +// Check if the character at the specified position is blank (space or tab). +func is_blank(b []byte, i int) bool { + //return is_space(b, i) || is_tab(b, i) + return b[i] == ' ' || b[i] == '\t' +} + +// Check if the character at the specified position is a line break. +func is_break(b []byte, i int) bool { + return (b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029) +} + +func is_crlf(b []byte, i int) bool { + return b[i] == '\r' && b[i+1] == '\n' +} + +// Check if the character is a line break or NUL. +func is_breakz(b []byte, i int) bool { + //return is_break(b, i) || is_z(b, i) + return ( // is_break: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + // is_z: + b[i] == 0) +} + +// Check if the character is a line break, space, or NUL. +func is_spacez(b []byte, i int) bool { + //return is_space(b, i) || is_breakz(b, i) + return ( // is_space: + b[i] == ' ' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Check if the character is a line break, space, tab, or NUL. +func is_blankz(b []byte, i int) bool { + //return is_blank(b, i) || is_breakz(b, i) + return ( // is_blank: + b[i] == ' ' || b[i] == '\t' || + // is_breakz: + b[i] == '\r' || // CR (#xD) + b[i] == '\n' || // LF (#xA) + b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028) + b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029) + b[i] == 0) +} + +// Determine the width of the character. +func width(b byte) int { + // Don't replace these by a switch without first + // confirming that it is being inlined. + if b&0x80 == 0x00 { + return 1 + } + if b&0xE0 == 0xC0 { + return 2 + } + if b&0xF0 == 0xE0 { + return 3 + } + if b&0xF8 == 0xF0 { + return 4 + } + return 0 + +} From 18e35c9c8c17ddb226a7e588949209f27a17fc99 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 22:26:33 +0100 Subject: [PATCH 04/27] some work on bot, added initial message handling --- bot/bot.go | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 2 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index a02123d5..7ee4de01 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -1,17 +1,198 @@ package bot import ( + "context" + "errors" + "fmt" + "strings" + "github.com/nlopes/slack" + + "github.com/rusenask/keel/provider/kubernetes" + + log "github.com/Sirupsen/logrus" +) + +var ( + botEventTextToResponse = map[string][]string{ + "help": { + `Here's a list of supported commands`, + `- "get deployments" -> get a list of keel watched deployments`, + `- "get deployments all" -> get a list of all deployments`, + }, + } ) type Bot struct { + id string // bot id + name string // bot name + + users map[string]string + + msgPrefix string + slackClient *slack.Client + slackRTM *slack.RTM + + k8sImplementer kubernetes.Implementer + + ctx context.Context } -func New(token string) *Bot { +func New(name, token string, k8sImplementer kubernetes.Implementer) *Bot { client := slack.New(token) return &Bot{ - slackClient: client, + slackClient: client, + k8sImplementer: k8sImplementer, + name: name, + } +} + +// Start - start bot +func (b *Bot) Start(ctx context.Context) error { + + // setting root context + b.ctx = ctx + + users, err := b.slackClient.GetUsers() + + if err != nil { + panic(err) + } + + if err != nil { + return err + } + + b.users = map[string]string{} + + for _, user := range users { + switch user.Name { + case b.name: + if user.IsBot { + b.id = user.ID + } + default: + continue + } + } + if b.id == "" { + return errors.New("could not find bot in the list of names, check if the bot is called \"" + b.name + "\" ") + } + + b.msgPrefix = strings.ToLower("<@" + b.id + ">") + + go b.startInternal() + + return nil +} + +func (b *Bot) startInternal() error { + b.slackRTM = b.slackClient.NewRTM() + go b.slackRTM.ManageConnection() + + for { + select { + case <-b.ctx.Done(): + return nil + + case msg := <-b.slackRTM.IncomingEvents: + switch ev := msg.Data.(type) { + case *slack.HelloEvent: + // Ignore hello + + case *slack.ConnectedEvent: + // fmt.Println("Infos:", ev.Info) + // fmt.Println("Connection counter:", ev.ConnectionCount) + // Replace #general with your Channel ID + // b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage("Hello world", "#general")) + + case *slack.MessageEvent: + b.handleMessage(ev) + case *slack.PresenceChangeEvent: + fmt.Printf("Presence Change: %v\n", ev) + + case *slack.LatencyReport: + fmt.Printf("Current latency: %v\n", ev.Value) + + case *slack.RTMError: + fmt.Printf("Error: %s\n", ev.Error()) + + case *slack.InvalidAuthEvent: + fmt.Printf("Invalid credentials") + return fmt.Errorf("invalid credentials") + + default: + + // Ignore other events.. + // fmt.Printf("Unexpected: %v\n", msg.Data) + } + } + } +} + +func (b *Bot) handleMessage(event *slack.MessageEvent) { + if event.BotID != "" || event.User == "" || event.SubType == "bot_message" { + log.WithFields(log.Fields{ + "event_bot_ID": event.BotID, + "event_user": event.User, + "event_subtype": event.SubType, + }).Info("handleMessage: ignoring message") + return + } + + eventText := strings.Trim(strings.ToLower(event.Text), " \n\r") + + // All messages past this point are directed to @gopher itself + if !b.isBotMessage(event, eventText) { + log.Info("not a bot message") + return + } + + eventText = b.trimBot(eventText) + + // Responses that are just a canned string response + if responseLines, ok := botEventTextToResponse[eventText]; ok { + response := strings.Join(responseLines, "\n") + b.respond(event, response) + return } + + log.WithFields(log.Fields{ + "name": b.name, + "bot_id": b.id, + "text": eventText, + "untrimmed": strings.Trim(strings.ToLower(event.Text), " \n\r"), + }).Info("text") + + b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage("Hello world", event.Channel)) +} + +func (b *Bot) respond(event *slack.MessageEvent, response string) { + b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage(response, event.Channel)) +} + +func (b *Bot) isBotMessage(event *slack.MessageEvent, eventText string) bool { + prefixes := []string{ + b.msgPrefix, + "keel", + } + + for _, p := range prefixes { + if strings.HasPrefix(eventText, p) { + return true + } + } + + // Direct message channels always starts with 'D' + return strings.HasPrefix(event.Channel, "D") +} + +func (b *Bot) trimBot(msg string) string { + msg = strings.Replace(msg, strings.ToLower(b.msgPrefix), "", 1) + msg = strings.TrimPrefix(msg, b.name) + msg = strings.Trim(msg, " :\n") + + return msg } From 7e7448d7d642021c6c50b6d3dca112f492436904 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 22:28:38 +0100 Subject: [PATCH 05/27] deps --- glide.lock | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++--- glide.yaml | 10 ++++---- 2 files changed, 72 insertions(+), 7 deletions(-) diff --git a/glide.lock b/glide.lock index 4ee9f733..a1676854 100644 --- a/glide.lock +++ b/glide.lock @@ -26,14 +26,38 @@ imports: - name: github.com/go-openapi/swag version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72 - name: github.com/gogo/protobuf - version: e18d7aa8f8c624c915db340349aad4c49b10d173 + version: c0656edd0d9eab7c66d1eb0c568f9039345796f7 subpackages: + - gogoproto + - plugin/testgen - proto + - protoc-gen-gogo/descriptor + - protoc-gen-gogo/generator - sortkeys - name: github.com/golang/glog version: 44145f04b68cf362d9c4df2182967c2275eaefed +- name: github.com/golang/protobuf + version: 8616e8ee5e20a1704615e6c8d7afcdac06087a67 + subpackages: + - proto + - protoc-gen-go/descriptor + - ptypes + - ptypes/any + - ptypes/duration + - ptypes/empty + - ptypes/timestamp - name: github.com/google/gofuzz version: 44d81051d367757e1c7c6a5a86423ece9afcf63c +- name: github.com/googleapis/gax-go + version: 84ed26760e7f6f80887a2fbfb50db3cc415d2cea +- name: github.com/gorilla/context + version: 08b5f424b9271eedf6f9f0ce86cb9396ed337a42 +- name: github.com/gorilla/mux + version: bcd8bc72b08df0f70df986b97f95590779502d31 +- name: github.com/howeyc/gopass + version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d +- name: github.com/imdario/mergo + version: 6633656539c1639d9d78127b7d47c622b5d7b6dc - name: github.com/juju/ratelimit version: 77ed1c8a01217656d2080ad51981f6e99adaa177 - name: github.com/mailru/easyjson @@ -42,20 +66,54 @@ imports: - buffer - jlexer - jwriter +- name: github.com/nlopes/slack + version: c86337c0ef2486a15edd804355d9c73d2f2caed1 - name: github.com/PuerkitoBio/purell version: 8a290539e2e8629dbc4e6bad948158f790ec31f4 - name: github.com/PuerkitoBio/urlesc version: 5bd2802263f21d8788851d5305584c82a5c75d7e - name: github.com/Sirupsen/logrus - version: 85b1699d505667d13f8ac4478c1debbf85d6c5de + version: 202f25545ea4cf9b191ff7f846df5d87c9382c2b + subpackages: + - formatters + - formatters/logstash - name: github.com/spf13/pflag version: 9ff6c6923cfffbcd502984b8e0c80539a94968b7 - name: github.com/ugorji/go version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74 subpackages: - codec +- name: github.com/urfave/negroni + version: 1d8981a52d6bda4467a9faacf3fdddd38222dfc4 +- name: golang.org/x/crypto + version: d172538b2cfce0c13cee31e647d0367aa8cd2486 + subpackages: + - ssh/terminal +- name: golang.org/x/net + version: e90d6d0afc4c315a0d87a568ae68577cc15149a0 + subpackages: + - context + - context/ctxhttp + - http2 + - http2/hpack + - idna + - internal/timeseries + - lex/httplex + - oauth2 + - trace +- name: golang.org/x/oauth2 + version: 3c3a985cb79f52a3190fbc056984415ca6763d01 + subpackages: + - google + - internal + - jws + - jwt +- name: golang.org/x/sync + version: f52d1811a62927559de87708c8913c1650ce4f26 + subpackages: + - semaphore - name: golang.org/x/sys - version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 + version: d75a52659825e75fff6158388dddc6a5b04f9ba5 subpackages: - unix - name: golang.org/x/text @@ -187,11 +245,16 @@ imports: - pkg/version - rest - rest/watch + - tools/auth + - tools/clientcmd - tools/clientcmd/api + - tools/clientcmd/api/latest + - tools/clientcmd/api/v1 - tools/metrics - transport - util/cert - util/clock - util/flowcontrol + - util/homedir - util/integer testImports: [] diff --git a/glide.yaml b/glide.yaml index bc3f8d7a..0e1818a4 100644 --- a/glide.yaml +++ b/glide.yaml @@ -11,13 +11,13 @@ import: subpackages: - iterator - option - - support + - support - transport - package: google.golang.org/grpc version: a94a7ac054dc76e5ab6cf170a9d82faba8aaf33f subpackages: - - status -- package: github.com/Sirupsen/logrus + - status +- package: github.com/Sirupsen/logrus subpackages: - formatters - formatters/logstash @@ -37,7 +37,7 @@ import: - protoc-gen-gogo/descriptor - gogoproto - plugin/testgen - - protoc-gen-gogo/generator + - protoc-gen-gogo/generator - package: k8s.io/apimachinery version: 75b8dd260ef0469d96d578705a87cffd0e09dab8 subpackages: @@ -50,3 +50,5 @@ import: - pkg/apis/extensions/v1beta1 - rest - tools/clientcmd +- package: github.com/nlopes/slack + version: ^0.1.0 From d973ca18f872f7db0fc7d048f6b383357d12a94d Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 22:28:46 +0100 Subject: [PATCH 06/27] bot init --- main.go | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index d01953b8..7d2bab28 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,9 @@ import ( "os/signal" "time" - "golang.org/x/net/context" + "context" + + netContext "golang.org/x/net/context" "github.com/rusenask/keel/bot" "github.com/rusenask/keel/provider" @@ -23,6 +25,7 @@ const ( EnvTriggerPubSub = "PUBSUB" // set to 1 or something to enable pub/sub trigger EnvProjectID = "PROJECT_ID" EnvSlackToken = "SLACK_TOKEN" + EnvSlackBotName = "SLACK_BOT_NAME" ) // kubernetes config, if empty - will default to InCluster @@ -68,10 +71,17 @@ func main() { providers, teardownProviders := setupProviders(implementer) // setting up triggers - ctx, cancel := context.WithCancel(context.Background()) + ctx, cancel := netContext.WithCancel(context.Background()) defer cancel() teardownTriggers := setupTriggers(ctx, implementer, providers) + teardownBot, err := setupBot(implementer) + if err != nil { + log.WithFields(log.Fields{ + "error": err, + }).Fatal("main: failed to setup slack bot") + } + signalChan := make(chan os.Signal, 1) cleanupDone := make(chan bool) signal.Notify(signalChan, os.Interrupt) @@ -92,6 +102,7 @@ func main() { teardownProviders() teardownTriggers() + teardownBot() cleanupDone <- true } @@ -122,8 +133,35 @@ func setupProviders(k8sImplementer kubernetes.Implementer) (providers map[string return providers, teardown } -func setupBot(k8sImplementer kubernetes.Implementer) (*bot.Bot, error) { +func setupBot(k8sImplementer kubernetes.Implementer) (teardown func(), err error) { + + if os.Getenv(EnvSlackToken) != "" { + botName := "keel" + + if os.Getenv(EnvSlackBotName) != "" { + botName = os.Getenv(EnvSlackBotName) + } + + token := os.Getenv(EnvSlackToken) + slackBot := bot.New(botName, token, k8sImplementer) + + ctx, cancel := context.WithCancel(context.Background()) + + err := slackBot.Start(ctx) + if err != nil { + cancel() + return nil, err + } + + teardown := func() { + // cancelling context + cancel() + } + + return teardown, nil + } + return func() {}, nil } // setupTriggers - setting up triggers. New triggers should be added to this function. Each trigger From 28bc7c7751254ec71990a66de7b78edf055d3771 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 23:40:34 +0100 Subject: [PATCH 07/27] formatting --- bot/formatter/formatter.go | 123 ++++++++++++++++++++++++++++++++++++ bot/formatter/reflect.go | 65 +++++++++++++++++++ util/templates/templates.go | 51 +++++++++++++++ 3 files changed, 239 insertions(+) create mode 100644 bot/formatter/formatter.go create mode 100644 bot/formatter/reflect.go create mode 100644 util/templates/templates.go diff --git a/bot/formatter/formatter.go b/bot/formatter/formatter.go new file mode 100644 index 00000000..e0dadcdd --- /dev/null +++ b/bot/formatter/formatter.go @@ -0,0 +1,123 @@ +package formatter + +import ( + "bytes" + "fmt" + "io" + "strings" + "text/tabwriter" + "text/template" + + "github.com/rusenask/keel/util/templates" +) + +// Format keys used to specify certain kinds of output formats +const ( + TableFormatKey = "table" + RawFormatKey = "raw" + PrettyFormatKey = "pretty" + + defaultQuietFormat = "{{.ID}}" +) + +// Format is the format string rendered using the Context +type Format string + +// IsTable returns true if the format is a table-type format +func (f Format) IsTable() bool { + return strings.HasPrefix(string(f), TableFormatKey) +} + +// Contains returns true if the format contains the substring +func (f Format) Contains(sub string) bool { + return strings.Contains(string(f), sub) +} + +// Context contains information required by the formatter to print the output as desired. +type Context struct { + // Output is the output stream to which the formatted string is written. + Output io.Writer + // Format is used to choose raw, table or custom format for the output. + Format Format + // Trunc when set to true will truncate the output of certain fields such as Container ID. + Trunc bool + + // internal element + finalFormat string + header string + buffer *bytes.Buffer +} + +func (c *Context) preFormat() { + c.finalFormat = string(c.Format) + + // TODO: handle this in the Format type + if c.Format.IsTable() { + c.finalFormat = c.finalFormat[len(TableFormatKey):] + } + + c.finalFormat = strings.Trim(c.finalFormat, " ") + r := strings.NewReplacer(`\t`, "\t", `\n`, "\n") + c.finalFormat = r.Replace(c.finalFormat) +} + +func (c *Context) parseFormat() (*template.Template, error) { + tmpl, err := templates.Parse(c.finalFormat) + if err != nil { + return tmpl, fmt.Errorf("Template parsing error: %v\n", err) + } + return tmpl, err +} + +func (c *Context) postFormat(tmpl *template.Template, subContext subContext) { + if c.Format.IsTable() { + if len(c.header) == 0 { + // if we still don't have a header, we didn't have any containers so we need to fake it to get the right headers from the template + tmpl.Execute(bytes.NewBufferString(""), subContext) + c.header = subContext.FullHeader() + } + + t := tabwriter.NewWriter(c.Output, 20, 1, 3, ' ', 0) + t.Write([]byte(c.header)) + t.Write([]byte("\n")) + c.buffer.WriteTo(t) + t.Flush() + } else { + c.buffer.WriteTo(c.Output) + } +} + +func (c *Context) contextFormat(tmpl *template.Template, subContext subContext) error { + if err := tmpl.Execute(c.buffer, subContext); err != nil { + return fmt.Errorf("Template parsing error: %v\n", err) + } + if c.Format.IsTable() && len(c.header) == 0 { + c.header = subContext.FullHeader() + } + c.buffer.WriteString("\n") + return nil +} + +// SubFormat is a function type accepted by Write() +type SubFormat func(func(subContext) error) error + +// Write the template to the buffer using this Context +func (c *Context) Write(sub subContext, f SubFormat) error { + c.buffer = bytes.NewBufferString("") + c.preFormat() + + tmpl, err := c.parseFormat() + if err != nil { + return err + } + + subFormat := func(subContext subContext) error { + return c.contextFormat(tmpl, subContext) + } + if err := f(subFormat); err != nil { + return err + } + + c.postFormat(tmpl, sub) + return nil +} diff --git a/bot/formatter/reflect.go b/bot/formatter/reflect.go new file mode 100644 index 00000000..9692bbce --- /dev/null +++ b/bot/formatter/reflect.go @@ -0,0 +1,65 @@ +package formatter + +import ( + "encoding/json" + "fmt" + "reflect" + "unicode" +) + +func marshalJSON(x interface{}) ([]byte, error) { + m, err := marshalMap(x) + if err != nil { + return nil, err + } + return json.Marshal(m) +} + +// marshalMap marshals x to map[string]interface{} +func marshalMap(x interface{}) (map[string]interface{}, error) { + val := reflect.ValueOf(x) + if val.Kind() != reflect.Ptr { + return nil, fmt.Errorf("expected a pointer to a struct, got %v", val.Kind()) + } + if val.IsNil() { + return nil, fmt.Errorf("expected a pointer to a struct, got nil pointer") + } + valElem := val.Elem() + if valElem.Kind() != reflect.Struct { + return nil, fmt.Errorf("expected a pointer to a struct, got a pointer to %v", valElem.Kind()) + } + typ := val.Type() + m := make(map[string]interface{}) + for i := 0; i < val.NumMethod(); i++ { + k, v, err := marshalForMethod(typ.Method(i), val.Method(i)) + if err != nil { + return nil, err + } + if k != "" { + m[k] = v + } + } + return m, nil +} + +var unmarshallableNames = map[string]struct{}{"FullHeader": {}} + +// marshalForMethod returns the map key and the map value for marshalling the method. +// It returns ("", nil, nil) for valid but non-marshallable parameter. (e.g. "unexportedFunc()") +func marshalForMethod(typ reflect.Method, val reflect.Value) (string, interface{}, error) { + if val.Kind() != reflect.Func { + return "", nil, fmt.Errorf("expected func, got %v", val.Kind()) + } + name, numIn, numOut := typ.Name, val.Type().NumIn(), val.Type().NumOut() + _, blackListed := unmarshallableNames[name] + // FIXME: In text/template, (numOut == 2) is marshallable, + // if the type of the second param is error. + marshallable := unicode.IsUpper(rune(name[0])) && !blackListed && + numIn == 0 && numOut == 1 + if !marshallable { + return "", nil, nil + } + result := val.Call(make([]reflect.Value, numIn)) + intf := result[0].Interface() + return name, intf, nil +} diff --git a/util/templates/templates.go b/util/templates/templates.go new file mode 100644 index 00000000..79887943 --- /dev/null +++ b/util/templates/templates.go @@ -0,0 +1,51 @@ +package templates + +import ( + "encoding/json" + "strings" + "text/template" +) + +// basicFunctions are the set of initial +// functions provided to every template. +var basicFunctions = template.FuncMap{ + "json": func(v interface{}) string { + a, _ := json.Marshal(v) + return string(a) + }, + "split": strings.Split, + "join": strings.Join, + "title": strings.Title, + "lower": strings.ToLower, + "upper": strings.ToUpper, + "pad": padWithSpace, + "truncate": truncateWithLength, +} + +// Parse creates a new anonymous template with the basic functions +// and parses the given format. +func Parse(format string) (*template.Template, error) { + return NewParse("", format) +} + +// NewParse creates a new tagged template with the basic functions +// and parses the given format. +func NewParse(tag, format string) (*template.Template, error) { + return template.New(tag).Funcs(basicFunctions).Parse(format) +} + +// padWithSpace adds whitespace to the input if the input is non-empty +func padWithSpace(source string, prefix, suffix int) string { + if source == "" { + return source + } + return strings.Repeat(" ", prefix) + source + strings.Repeat(" ", suffix) +} + +// truncateWithLength truncates the source string up to the length provided by the input +func truncateWithLength(source string, length int) string { + if len(source) < length { + return source + } + return source[:length] +} From e670db5013ce5593e12236994c76bb0a6d0015e0 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 23:40:47 +0100 Subject: [PATCH 08/27] showing deployments --- bot/formatter/custom.go | 51 +++++++++++++++++++++++++ bot/formatter/deployments.go | 73 ++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 bot/formatter/custom.go create mode 100644 bot/formatter/deployments.go diff --git a/bot/formatter/custom.go b/bot/formatter/custom.go new file mode 100644 index 00000000..df326844 --- /dev/null +++ b/bot/formatter/custom.go @@ -0,0 +1,51 @@ +package formatter + +import ( + "strings" +) + +const ( + imageHeader = "IMAGE" + createdSinceHeader = "CREATED" + createdAtHeader = "CREATED AT" + sizeHeader = "SIZE" + labelsHeader = "LABELS" + nameHeader = "NAME" + driverHeader = "DRIVER" + scopeHeader = "SCOPE" +) + +type subContext interface { + FullHeader() string + AddHeader(header string) +} + +// HeaderContext provides the subContext interface for managing headers +type HeaderContext struct { + header []string +} + +// FullHeader returns the header as a string +func (c *HeaderContext) FullHeader() string { + if c.header == nil { + return "" + } + return strings.Join(c.header, "\t") +} + +// AddHeader adds another column to the header +func (c *HeaderContext) AddHeader(header string) { + if c.header == nil { + c.header = []string{} + } + c.header = append(c.header, strings.ToUpper(header)) +} + +func stripNamePrefix(ss []string) []string { + sss := make([]string, len(ss)) + for i, s := range ss { + sss[i] = s[1:] + } + + return sss +} diff --git a/bot/formatter/deployments.go b/bot/formatter/deployments.go new file mode 100644 index 00000000..173eba24 --- /dev/null +++ b/bot/formatter/deployments.go @@ -0,0 +1,73 @@ +package formatter + +import ( + // "fmt" + // "strings" + log "github.com/Sirupsen/logrus" +) + +// Deployment - internal deployment, used to better represent keel related info +type Deployment struct { + Namespace string `json:"namespace,omitempty"` + Name string `json:"name,omitempty"` +} + +const ( + defaultDeploymentQuietFormat = "{{.Name}}" + defaultDeploymentTableFormat = "table {{.Namespace}}\t{{.Name}}" + + DeploymentNamespaceHeader = "NAMESPACE" + DeploymentNameHeader = "NAME" +) + +// NewDeploymentsFormat returns a format for use with a deployment Context +func NewDeploymentsFormat(source string, quiet bool) Format { + switch source { + case TableFormatKey: + if quiet { + return defaultDeploymentQuietFormat + } + return defaultDeploymentTableFormat + case RawFormatKey: + if quiet { + return `name: {{.Name}}` + } + return `name: {{.Name}}\n` + } + return Format(source) +} + +// DeploymentWrite writes formatted deployments using the Context +func DeploymentWrite(ctx Context, Deployments []Deployment) error { + render := func(format func(subContext subContext) error) error { + for _, deployment := range Deployments { + log.WithFields(log.Fields{ + "name": deployment.Name, + "namespace": deployment.Namespace, + }).Info("formatting deployment") + if err := format(&DeploymentContext{v: deployment}); err != nil { + return err + } + } + return nil + } + return ctx.Write(&DeploymentContext{}, render) +} + +type DeploymentContext struct { + HeaderContext + v Deployment +} + +func (c *DeploymentContext) MarshalJSON() ([]byte, error) { + return marshalJSON(c) +} + +func (c *DeploymentContext) Namespace() string { + c.AddHeader(DeploymentNamespaceHeader) + return c.v.Namespace +} +func (c *DeploymentContext) Name() string { + c.AddHeader(DeploymentNameHeader) + return c.v.Name +} From 1080fc756a5717bcc1fd65de1e8d1b93523f8091 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Tue, 27 Jun 2017 23:40:56 +0100 Subject: [PATCH 09/27] fetching deployments --- bot/deployments.go | 83 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 bot/deployments.go diff --git a/bot/deployments.go b/bot/deployments.go new file mode 100644 index 00000000..e0d0cb66 --- /dev/null +++ b/bot/deployments.go @@ -0,0 +1,83 @@ +package bot + +import ( + "bytes" + "fmt" + + "github.com/rusenask/keel/bot/formatter" + + "k8s.io/client-go/pkg/apis/extensions/v1beta1" + + log "github.com/Sirupsen/logrus" +) + +type Filter struct { + Namespace string + All bool // keel or not +} + +// deployments - gets all deployments +func (b *Bot) deployments() ([]v1beta1.Deployment, error) { + deploymentLists := []*v1beta1.DeploymentList{} + + n, err := b.k8sImplementer.Namespaces() + if err != nil { + return nil, err + } + + for _, n := range n.Items { + l, err := b.k8sImplementer.Deployments(n.GetName()) + if err != nil { + log.WithFields(log.Fields{ + "error": err, + "namespace": n.GetName(), + }).Error("provider.kubernetes: failed to list deployments") + continue + } + deploymentLists = append(deploymentLists, l) + } + + impacted := []v1beta1.Deployment{} + + for _, deploymentList := range deploymentLists { + for _, deployment := range deploymentList.Items { + impacted = append(impacted, deployment) + } + } + + return impacted, nil +} + +func (b *Bot) deploymentsResponse(filter Filter) string { + deps, err := b.deployments() + if err != nil { + return fmt.Sprintf("got error while fetching deployments: %s", err) + } + log.Infof("%d deployments fetched, formatting", len(deps)) + buf := &bytes.Buffer{} + + DeploymentCtx := formatter.Context{ + Output: buf, + Format: formatter.NewDeploymentsFormat(formatter.TableFormatKey, false), + } + err = formatter.DeploymentWrite(DeploymentCtx, convertToInternal(deps)) + + if err != nil { + return fmt.Sprintf(" got error while formatting deployments: %s", err) + } + + log.Infof("formated. returning buffer: %s", buf.String()) + + return buf.String() +} + +func convertToInternal(deployments []v1beta1.Deployment) []formatter.Deployment { + formatted := []formatter.Deployment{} + for _, d := range deployments { + formatted = append(formatted, formatter.Deployment{ + Namespace: d.Namespace, + Name: d.Name, + }) + } + return formatted +} From 1f741f6b299e4ca791b09e722838bdb968feee14 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Wed, 28 Jun 2017 11:01:11 +0100 Subject: [PATCH 10/27] showing deployments --- bot/bot.go | 51 +++++++++++++++++++++++++++++++++--- bot/deployments.go | 17 ++++++++++-- bot/formatter/deployments.go | 29 ++++++++++++++++---- 3 files changed, 87 insertions(+), 10 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index 7ee4de01..e39aa9f9 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -19,8 +19,18 @@ var ( `Here's a list of supported commands`, `- "get deployments" -> get a list of keel watched deployments`, `- "get deployments all" -> get a list of all deployments`, + `- "describe deployment " -> get details for specified deployment`, }, } + + // static bot commands can be used straight away + staticBotCommands = map[string]bool{ + "get deployments": true, + "get deployments all": true, + } + + // dynamic bot command prefixes have to be matched + dynamicBotCommandPrefixes = []string{"describe deployment"} ) type Bot struct { @@ -159,14 +169,49 @@ func (b *Bot) handleMessage(event *slack.MessageEvent) { return } + if b.isCommand(event, eventText) { + b.handleCommand(event, eventText) + return + } + log.WithFields(log.Fields{ "name": b.name, "bot_id": b.id, - "text": eventText, + "command": eventText, "untrimmed": strings.Trim(strings.ToLower(event.Text), " \n\r"), - }).Info("text") + }).Info("handleMessage: bot couldn't recognise command") + + // b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage("bot couldn't recognise command :(", event.Channel)) + // responseLines := botEventTextToResponse["help"] + // response := strings.Join(responseLines, "\n") + // b.respond(event, response) +} + +func (b *Bot) isCommand(event *slack.MessageEvent, eventText string) bool { + if staticBotCommands[eventText] { + return true + } + + for _, prefix := range dynamicBotCommandPrefixes { + if strings.HasPrefix(eventText, prefix) { + return true + } + } + + return false +} + +func (b *Bot) handleCommand(event *slack.MessageEvent, eventText string) { + log.Infof("handling command %s", eventText) + switch eventText { + case "get deployments": + log.Info("getting deployments") + response := b.deploymentsResponse(Filter{}) + b.respond(event, response) + return + } - b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage("Hello world", event.Channel)) + log.Info("command not found") } func (b *Bot) respond(event *slack.MessageEvent, response string) { diff --git a/bot/deployments.go b/bot/deployments.go index e0d0cb66..a59366e9 100644 --- a/bot/deployments.go +++ b/bot/deployments.go @@ -74,10 +74,23 @@ func (b *Bot) deploymentsResponse(filter Filter) string { func convertToInternal(deployments []v1beta1.Deployment) []formatter.Deployment { formatted := []formatter.Deployment{} for _, d := range deployments { + formatted = append(formatted, formatter.Deployment{ - Namespace: d.Namespace, - Name: d.Name, + Namespace: d.Namespace, + Name: d.Name, + Replicas: d.Status.Replicas, + AvailableReplicas: d.Status.AvailableReplicas, + Images: getImages(&d), }) } return formatted } + +func getImages(deployment *v1beta1.Deployment) []string { + var images []string + for _, c := range deployment.Spec.Template.Spec.Containers { + images = append(images, c.Image) + } + + return images +} diff --git a/bot/formatter/deployments.go b/bot/formatter/deployments.go index 173eba24..3f7c0013 100644 --- a/bot/formatter/deployments.go +++ b/bot/formatter/deployments.go @@ -1,23 +1,32 @@ package formatter import ( - // "fmt" - // "strings" + "fmt" + "strings" + "time" + log "github.com/Sirupsen/logrus" ) // Deployment - internal deployment, used to better represent keel related info type Deployment struct { - Namespace string `json:"namespace,omitempty"` - Name string `json:"name,omitempty"` + Namespace string `json:"namespace,omitempty"` + Name string `json:"name,omitempty"` + CreatedAt time.Time + Replicas int32 + AvailableReplicas int32 + Images []string `json:"images,omitempty"` // image:tag list } const ( defaultDeploymentQuietFormat = "{{.Name}}" - defaultDeploymentTableFormat = "table {{.Namespace}}\t{{.Name}}" + defaultDeploymentTableFormat = "table {{.Namespace}}\t{{.Name}}\t{{.Ready}}\t{{.Images}}" + // Fields DeploymentNamespaceHeader = "NAMESPACE" DeploymentNameHeader = "NAME" + DeploymentReadyHeader = "READY" + DeploymentImagesHeader = "IMAGES" ) // NewDeploymentsFormat returns a format for use with a deployment Context @@ -71,3 +80,13 @@ func (c *DeploymentContext) Name() string { c.AddHeader(DeploymentNameHeader) return c.v.Name } + +func (c *DeploymentContext) Ready() string { + c.AddHeader(DeploymentReadyHeader) + return fmt.Sprintf("%d/%d", c.v.AvailableReplicas, c.v.Replicas) +} + +func (c *DeploymentContext) Images() string { + c.AddHeader(DeploymentImagesHeader) + return strings.Join(c.v.Images, ", ") +} From bbf9821bd36ae4aade92ea736177a669c6a01cb4 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 21:22:51 +0100 Subject: [PATCH 11/27] utils --- util/timeutil/backoff.go | 16 +++++++++++ util/timeutil/backoff_test.go | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 util/timeutil/backoff.go create mode 100644 util/timeutil/backoff_test.go diff --git a/util/timeutil/backoff.go b/util/timeutil/backoff.go new file mode 100644 index 00000000..053f1d56 --- /dev/null +++ b/util/timeutil/backoff.go @@ -0,0 +1,16 @@ +package timeutil + +import ( + "time" +) + +// ExpBackoff - exponential backoff helper func +func ExpBackoff(prev, max time.Duration) time.Duration { + if prev == 0 { + return time.Second + } + if prev > max/2 { + return max + } + return 2 * prev +} diff --git a/util/timeutil/backoff_test.go b/util/timeutil/backoff_test.go new file mode 100644 index 00000000..d8392bc5 --- /dev/null +++ b/util/timeutil/backoff_test.go @@ -0,0 +1,52 @@ +package timeutil + +import ( + "testing" + "time" +) + +func TestExpBackoff(t *testing.T) { + tests := []struct { + prev time.Duration + max time.Duration + want time.Duration + }{ + { + prev: time.Duration(0), + max: time.Minute, + want: time.Second, + }, + { + prev: time.Second, + max: time.Minute, + want: 2 * time.Second, + }, + { + prev: 16 * time.Second, + max: time.Minute, + want: 32 * time.Second, + }, + { + prev: 32 * time.Second, + max: time.Minute, + want: time.Minute, + }, + { + prev: time.Minute, + max: time.Minute, + want: time.Minute, + }, + { + prev: 2 * time.Minute, + max: time.Minute, + want: time.Minute, + }, + } + + for i, tt := range tests { + got := ExpBackoff(tt.prev, tt.max) + if tt.want != got { + t.Errorf("case %d: want=%v got=%v", i, tt.want, got) + } + } +} From ce1c6548a7ed35c42a93d80a455648bcb54cf30a Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 21:23:01 +0100 Subject: [PATCH 12/27] more utils --- util/stopper/stopper.go | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 util/stopper/stopper.go diff --git a/util/stopper/stopper.go b/util/stopper/stopper.go new file mode 100644 index 00000000..0c37489e --- /dev/null +++ b/util/stopper/stopper.go @@ -0,0 +1,53 @@ +package stopper + +import ( + "context" + "sync" + "time" +) + +// Stopper eases the graceful termination of a group of goroutines +type Stopper struct { + ctx context.Context + wg sync.WaitGroup + stop chan struct{} +} + +// NewStopper initializes a new Stopper instance +func NewStopper(ctx context.Context) *Stopper { + return &Stopper{ctx: ctx} +} + +// Begin indicates that a new goroutine has started. +func (s *Stopper) Begin() { + s.wg.Add(1) +} + +// End indicates that a goroutine has stopped. +func (s *Stopper) End() { + s.wg.Done() +} + +// Chan returns the channel on which goroutines could listen to determine if +// they should stop. The channel is closed when Stop() is called. +func (s *Stopper) Chan() chan struct{} { + return s.stop +} + +// Sleep puts the current goroutine on sleep during a duration d +// Sleep could be interrupted in the case the goroutine should stop itself, +// in which case Sleep returns false. +func (s *Stopper) Sleep(d time.Duration) bool { + select { + case <-time.After(d): + return true + case <-s.ctx.Done(): + return false + } +} + +// Stop asks every goroutine to end. +func (s *Stopper) Stop() { + close(s.stop) + s.wg.Wait() +} From cf5ee68fe505bf6d61e7fd7cd08b5bab5a63d556 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 21:23:09 +0100 Subject: [PATCH 13/27] notifications --- types/types.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/types/types.go b/types/types.go index 38cfffbc..4ce75d41 100644 --- a/types/types.go +++ b/types/types.go @@ -143,3 +143,38 @@ const ( PolicyTypePatch PolicyTypeForce // update always when a new image is available ) + +// EventNotification notification used for sending +type EventNotification struct { + Name string `json:"name,omitempty"` + Message string `json:"message,omitempty"` + CreatedAt time.Time `json:"createdAt,omitempty"` + Type Notification `json:"type,omitempty"` +} + +// Notification - notification types used by notifier +type Notification int + +// available notification types for hooks +const ( + PreProviderSubmitNotification Notification = iota + PostProviderSubmitNotification + + NotificationUpdateSuccess + NotificationUpdateError +) + +func (n Notification) String() string { + switch n { + case PreProviderSubmitNotification: + return "pre provider submit" + case PostProviderSubmitNotification: + return "post provider submit" + case NotificationUpdateSuccess: + return "update successful" + case NotificationUpdateError: + return "update error" + default: + return "unknown" + } +} From b6b74ddfe0c9e05cc22fdfe01175c2c64a7a3eb1 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 22:31:18 +0100 Subject: [PATCH 14/27] initial notification manager --- extension/notification/notification.go | 173 +++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 extension/notification/notification.go diff --git a/extension/notification/notification.go b/extension/notification/notification.go new file mode 100644 index 00000000..bf10e6e4 --- /dev/null +++ b/extension/notification/notification.go @@ -0,0 +1,173 @@ +package notification + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/rusenask/keel/types" + "github.com/rusenask/keel/util/stopper" + "github.com/rusenask/keel/util/timeutil" + + log "github.com/Sirupsen/logrus" +) + +const ( + notifierCheckInterval = 5 * time.Minute + notifierMaxBackOff = 15 * time.Minute + notifierLockRefreshDuration = time.Minute * 2 + notifierLockDuration = time.Minute*8 + notifierLockRefreshDuration + + logSenderName = "sender name" + logNotiName = "notification name" +) + +var ( + sendersM sync.RWMutex + senders = make(map[string]Sender) +) + +// Config is the configuration for the Notifier service and its registered +// notifiers. +type Config struct { + Attempts int + Params map[string]interface{} `yaml:",inline"` +} + +// Sender represents anything that can transmit notifications. +type Sender interface { + // Configure attempts to initialize the notifier with the provided configuration. + // It returns whether the notifier is enabled or not. + Configure(*Config) (bool, error) + + // Send informs the existence of the specified notification. + Send(event types.EventNotification) error +} + +// RegisterSender makes a Sender available by the provided name. +// +// If called twice with the same name, the name is blank, or if the provided +// Sender is nil, this function panics. +func RegisterSender(name string, s Sender) { + if name == "" { + panic("notification: could not register a Sender with an empty name") + } + + if s == nil { + panic("notification: could not register a nil Sender") + } + + sendersM.Lock() + defer sendersM.Unlock() + + if _, dup := senders[name]; dup { + panic("notification: RegisterSender called twice for " + name) + } + + log.WithFields(log.Fields{ + "name": name, + }).Info("extension.notification: sender registered") + + senders[name] = s +} + +type DefaultNotificationSender struct { + config *Config + stopper *stopper.Stopper +} + +func New(ctx context.Context) *DefaultNotificationSender { + return &DefaultNotificationSender{ + stopper: stopper.NewStopper(ctx), + } +} + +func (m *DefaultNotificationSender) Configure(config *Config) (bool, error) { + m.config = config + // Configure registered notifiers. + for senderName, sender := range m.Senders() { + if configured, err := sender.Configure(config); configured { + log.WithField(logSenderName, senderName).Info("notificationSender: sender configured") + } else { + m.UnregisterSender(senderName) + if err != nil { + log.WithError(err).WithField(logSenderName, senderName).Error("could not configure notifier") + } + } + } + + return true, nil +} + +// Senders returns the list of the registered Senders. +func (m *DefaultNotificationSender) Senders() map[string]Sender { + sendersM.RLock() + defer sendersM.RUnlock() + + ret := make(map[string]Sender) + for k, v := range senders { + ret[k] = v + } + + return ret +} + +// Send - send notifications through all configured senders +func (m *DefaultNotificationSender) Send(event types.EventNotification) error { + sendersM.RLock() + defer sendersM.RUnlock() + + for senderName, sender := range m.Senders() { + // TODO: move this into goroutine if we have enough senders + var attempts int + var backOff time.Duration + for { + // Max attempts exceeded. + if attempts >= m.config.Attempts { + log.WithFields(log.Fields{ + logNotiName: event.Name, + logSenderName: senderName, + "max attempts": m.config.Attempts, + }).Info("giving up on sending notification : max attempts exceeded") + return fmt.Errorf("failed to send notification, max attempts (%d) reached", m.config.Attempts) + } + + // Backoff + if backOff > 0 { + log.WithFields(log.Fields{ + "duration": backOff, + logNotiName: event.Name, + logSenderName: senderName, + "attempts": attempts + 1, + "max attempts": m.config.Attempts, + }).Info("waiting before retrying to send notification") + if !m.stopper.Sleep(backOff) { + return nil + } + } + + // Send using the current notifier. + if err := sender.Send(event); err != nil { + // Send failed; increase attempts/backoff and retry. + log.WithError(err).WithFields(log.Fields{logSenderName: senderName, logNotiName: event.Name}).Error("could not send notification via notifier") + backOff = timeutil.ExpBackoff(backOff, notifierMaxBackOff) + attempts++ + continue + } + + // Send has been successful. Go to the next notifier. + break + } + } + + return nil +} + +// UnregisterSender removes a Sender with a particular name from the list. +func (m *DefaultNotificationSender) UnregisterSender(name string) { + sendersM.Lock() + defer sendersM.Unlock() + + delete(senders, name) +} From 82697c53566a6033173b90b52cd601cea99ba039 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 22:31:27 +0100 Subject: [PATCH 15/27] webhooks notifications --- extension/notification/webhook/webhook.go | 91 +++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 extension/notification/webhook/webhook.go diff --git a/extension/notification/webhook/webhook.go b/extension/notification/webhook/webhook.go new file mode 100644 index 00000000..715f846e --- /dev/null +++ b/extension/notification/webhook/webhook.go @@ -0,0 +1,91 @@ +package webhook + +import ( + "bytes" + "encoding/json" + "fmt" + "net/http" + "net/url" + "os" + "time" + + "github.com/rusenask/keel/constants" + "github.com/rusenask/keel/extension/notification" + "github.com/rusenask/keel/types" + + log "github.com/Sirupsen/logrus" +) + +const timeout = 5 * time.Second + +type sender struct { + endpoint string + client *http.Client +} + +// Config represents the configuration of a Webhook Sender. +type Config struct { + Endpoint string +} + +func init() { + notification.RegisterSender("webhook", &sender{}) +} + +func (s *sender) Configure(config *notification.Config) (bool, error) { + // Get configuration + var httpConfig Config + + if os.Getenv(constants.WebhookEndpointEnv) != "" { + httpConfig.Endpoint = os.Getenv(constants.WebhookEndpointEnv) + } else { + return false, nil + } + + // Validate endpoint URL. + if httpConfig.Endpoint == "" { + return false, nil + } + if _, err := url.ParseRequestURI(httpConfig.Endpoint); err != nil { + return false, fmt.Errorf("could not parse endpoint URL: %s\n", err) + } + s.endpoint = httpConfig.Endpoint + + // Setup HTTP client. + transport := &http.Transport{} + s.client = &http.Client{ + Transport: transport, + Timeout: timeout, + } + + log.WithFields(log.Fields{ + "name": "webhook", + "endpoint": s.endpoint, + }).Info("extension.notification.webhook: sender configured") + + return true, nil +} + +type notificationEnvelope struct { + types.EventNotification +} + +func (s *sender) Send(event types.EventNotification) error { + // Marshal notification. + jsonNotification, err := json.Marshal(notificationEnvelope{event}) + if err != nil { + return fmt.Errorf("could not marshal: %s", err) + } + + // Send notification via HTTP POST. + resp, err := s.client.Post(s.endpoint, "application/json", bytes.NewBuffer(jsonNotification)) + if err != nil || resp == nil || (resp.StatusCode != 200 && resp.StatusCode != 201) { + if resp != nil { + return fmt.Errorf("got status %d, expected 200/201", resp.StatusCode) + } + return err + } + defer resp.Body.Close() + + return nil +} From 4f76bddf8713c8d8a5ce8b32f9250aa3b19cd66f Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Thu, 6 Jul 2017 22:31:39 +0100 Subject: [PATCH 16/27] adding notifications --- provider/kubernetes/kubernetes.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/provider/kubernetes/kubernetes.go b/provider/kubernetes/kubernetes.go index 2c682e38..ae2b9e4f 100644 --- a/provider/kubernetes/kubernetes.go +++ b/provider/kubernetes/kubernetes.go @@ -9,6 +9,7 @@ import ( "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/extensions/v1beta1" + "github.com/rusenask/keel/extension/notification" "github.com/rusenask/keel/types" "github.com/rusenask/keel/util/image" "github.com/rusenask/keel/util/policies" @@ -32,16 +33,19 @@ const forceUpdateResetTag = "0.0.0" type Provider struct { implementer Implementer + sender notification.Sender + events chan *types.Event stop chan struct{} } // NewProvider - create new kubernetes based provider -func NewProvider(implementer Implementer) (*Provider, error) { +func NewProvider(implementer Implementer, sender notification.Sender) (*Provider, error) { return &Provider{ implementer: implementer, events: make(chan *types.Event, 100), stop: make(chan struct{}), + sender: sender, }, nil } @@ -168,8 +172,24 @@ func (p *Provider) updateDeployments(deployments []v1beta1.Deployment) (updated "namespace": deployment.Namespace, "deployment": deployment.Name, }).Error("provider.kubernetes: got error while update deployment") + + p.sender.Send(types.EventNotification{ + Name: "update deployment", + Message: fmt.Sprintf("deployment %s/%s update failed, error: %s", deployment.Namespace, deployment.Name, err), + CreatedAt: time.Now(), + Type: types.NotificationUpdateError, + }) + continue } + + p.sender.Send(types.EventNotification{ + Name: "update deployment", + Message: fmt.Sprintf("successfully updated deployment %s/%s", deployment.Namespace, deployment.Name), + CreatedAt: time.Now(), + Type: types.NotificationUpdateSuccess, + }) + log.WithFields(log.Fields{ "name": deployment.Name, "namespace": deployment.Namespace, From e111ee89679a8f44ce35f34f37fbbf872a60847a Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Fri, 7 Jul 2017 23:58:29 +0100 Subject: [PATCH 17/27] slack notification --- extension/notification/slack/slack.go | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 extension/notification/slack/slack.go diff --git a/extension/notification/slack/slack.go b/extension/notification/slack/slack.go new file mode 100644 index 00000000..341e9f94 --- /dev/null +++ b/extension/notification/slack/slack.go @@ -0,0 +1,72 @@ +package slack + +import ( + "os" + "strings" + "time" + + "github.com/nlopes/slack" + + "github.com/rusenask/keel/constants" + "github.com/rusenask/keel/extension/notification" + "github.com/rusenask/keel/types" + + log "github.com/Sirupsen/logrus" +) + +const timeout = 5 * time.Second + +type sender struct { + slackClient *slack.Client + channels []string + botName string +} + +func init() { + notification.RegisterSender("slack", &sender{}) +} + +func (s *sender) Configure(config *notification.Config) (bool, error) { + var token string + // Get configuration + if os.Getenv(constants.EnvSlackToken) != "" { + token = os.Getenv(constants.EnvSlackToken) + } else { + return false, nil + } + if os.Getenv(constants.EnvSlackBotName) != "" { + s.botName = os.Getenv(constants.EnvSlackBotName) + } else { + s.botName = "keel" + } + + if os.Getenv(constants.EnvSlackChannels) != "" { + channels := os.Getenv(constants.EnvSlackChannels) + s.channels = strings.Split(channels, ",") + } else { + s.channels = []string{"general"} + } + + s.slackClient = slack.New(token) + + log.WithFields(log.Fields{ + "name": "slack", + }).Info("extension.notification.slack: sender configured") + + return true, nil +} + +func (s *sender) Send(event types.EventNotification) error { + params := slack.NewPostMessageParameters() + params.Username = s.botName + for _, channel := range s.channels { + _, _, err := s.slackClient.PostMessage(channel, event.Message, params) + if err != nil { + log.WithFields(log.Fields{ + "error": err, + "channel": channel, + }).Error("extension.notification.slack: failed to send notification") + } + } + return nil +} From 307aca3a2970dc7d92d749bf791a7f82ced0f58b Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Fri, 7 Jul 2017 23:58:48 +0100 Subject: [PATCH 18/27] registering notifications --- main.go | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 91016b71..8c67a4ae 100644 --- a/main.go +++ b/main.go @@ -10,6 +10,8 @@ import ( netContext "golang.org/x/net/context" "github.com/rusenask/keel/bot" + "github.com/rusenask/keel/constants" + "github.com/rusenask/keel/extension/notification" "github.com/rusenask/keel/provider" "github.com/rusenask/keel/provider/kubernetes" "github.com/rusenask/keel/registry" @@ -19,6 +21,10 @@ import ( "github.com/rusenask/keel/types" "github.com/rusenask/keel/version" + // extensions + _ "github.com/rusenask/keel/extension/notification/slack" + _ "github.com/rusenask/keel/extension/notification/webhook" + log "github.com/Sirupsen/logrus" ) @@ -27,8 +33,6 @@ const ( EnvTriggerPubSub = "PUBSUB" // set to 1 or something to enable pub/sub trigger EnvTriggerPoll = "POLL" // set to 1 or something to enable poll trigger EnvProjectID = "PROJECT_ID" - EnvSlackToken = "SLACK_TOKEN" - EnvSlackBotName = "SLACK_BOT_NAME" ) // kubernetes config, if empty - will default to InCluster @@ -55,6 +59,22 @@ func main() { log.SetLevel(log.DebugLevel) } + // setting up triggers + ctx, cancel := netContext.WithCancel(context.Background()) + defer cancel() + + notifCfg := ¬ification.Config{ + Attempts: 10, + } + sender := notification.New(ctx) + + _, err := sender.Configure(notifCfg) + if err != nil { + log.WithFields(log.Fields{ + "error": err, + }).Fatal("main: failed to configure notification sender manager") + } + // getting k8s provider k8sCfg := &kubernetes.Opts{} if os.Getenv(EnvKubernetesConfig) != "" { @@ -71,11 +91,8 @@ func main() { } // setting up providers - providers, teardownProviders := setupProviders(implementer) + providers, teardownProviders := setupProviders(implementer, sender) - // setting up triggers - ctx, cancel := netContext.WithCancel(context.Background()) - defer cancel() teardownTriggers := setupTriggers(ctx, implementer, providers) teardownBot, err := setupBot(implementer) @@ -117,8 +134,8 @@ func main() { // setupProviders - setting up available providers. New providers should be initialised here and added to // provider map -func setupProviders(k8sImplementer kubernetes.Implementer) (providers provider.Providers, teardown func()) { - k8sProvider, err := kubernetes.NewProvider(k8sImplementer) +func setupProviders(k8sImplementer kubernetes.Implementer, sender notification.Sender) (providers provider.Providers, teardown func()) { + k8sProvider, err := kubernetes.NewProvider(k8sImplementer, sender) if err != nil { log.WithFields(log.Fields{ "error": err, @@ -137,14 +154,14 @@ func setupProviders(k8sImplementer kubernetes.Implementer) (providers provider.P func setupBot(k8sImplementer kubernetes.Implementer) (teardown func(), err error) { - if os.Getenv(EnvSlackToken) != "" { + if os.Getenv(constants.EnvSlackToken) != "" { botName := "keel" - if os.Getenv(EnvSlackBotName) != "" { - botName = os.Getenv(EnvSlackBotName) + if os.Getenv(constants.EnvSlackBotName) != "" { + botName = os.Getenv(constants.EnvSlackBotName) } - token := os.Getenv(EnvSlackToken) + token := os.Getenv(constants.EnvSlackToken) slackBot := bot.New(botName, token, k8sImplementer) ctx, cancel := context.WithCancel(context.Background()) From 9bd41153aaeabb76ed293c9b701f3952396224ed Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Fri, 7 Jul 2017 23:59:05 +0100 Subject: [PATCH 19/27] moved config --- bot/bot.go | 4 ++-- constants/constants.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index e39aa9f9..6f5d5cdc 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -123,8 +123,8 @@ func (b *Bot) startInternal() error { case *slack.PresenceChangeEvent: fmt.Printf("Presence Change: %v\n", ev) - case *slack.LatencyReport: - fmt.Printf("Current latency: %v\n", ev.Value) + // case *slack.LatencyReport: + // fmt.Printf("Current latency: %v\n", ev.Value) case *slack.RTMError: fmt.Printf("Error: %s\n", ev.Error()) diff --git a/constants/constants.go b/constants/constants.go index 5a7da08c..833c94a9 100644 --- a/constants/constants.go +++ b/constants/constants.go @@ -2,3 +2,13 @@ package constants // DefaultDockerRegistry - default docker registry const DefaultDockerRegistry = "https://index.docker.io" + +// WebhookEndpointEnv if set - enables webhook notifications +const WebhookEndpointEnv = "WEBHOOK_ENDPOINT" + +// slack bot/token +const ( + EnvSlackToken = "SLACK_TOKEN" + EnvSlackBotName = "SLACK_BOT_NAME" + EnvSlackChannels = "SLACK_CHANNELS" +) From b984af8eb61ead5536fc147998d240a2d833c579 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 15:55:39 +0100 Subject: [PATCH 20/27] notification format --- extension/notification/slack/slack.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/extension/notification/slack/slack.go b/extension/notification/slack/slack.go index 341e9f94..80deac76 100644 --- a/extension/notification/slack/slack.go +++ b/extension/notification/slack/slack.go @@ -1,7 +1,9 @@ package slack import ( + "encoding/json" "os" + "strconv" "strings" "time" @@ -59,8 +61,25 @@ func (s *sender) Configure(config *notification.Config) (bool, error) { func (s *sender) Send(event types.EventNotification) error { params := slack.NewPostMessageParameters() params.Username = s.botName + + params.Attachments = []slack.Attachment{ + slack.Attachment{ + Fallback: event.Message, + Color: event.Level.Color(), + Fields: []slack.AttachmentField{ + slack.AttachmentField{ + Title: event.Type.String(), + Value: event.Message, + Short: false, + }, + }, + Footer: "keel.sh", + Ts: json.Number(strconv.Itoa(int(event.CreatedAt.Unix()))), + }, + } + for _, channel := range s.channels { - _, _, err := s.slackClient.PostMessage(channel, event.Message, params) + _, _, err := s.slackClient.PostMessage(channel, "", params) if err != nil { log.WithFields(log.Fields{ "error": err, From e0c67cd001ddc14a778d32a4a9879eeb1d915d09 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 15:55:51 +0100 Subject: [PATCH 21/27] join channels --- bot/bot.go | 30 ++++++++++++++++++++++-------- main.go | 12 +++++++++++- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index 6f5d5cdc..feb4730e 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -39,6 +39,9 @@ type Bot struct { users map[string]string + // channels to join + channels []string + msgPrefix string slackClient *slack.Client @@ -49,13 +52,14 @@ type Bot struct { ctx context.Context } -func New(name, token string, k8sImplementer kubernetes.Implementer) *Bot { +func New(name, token string, channels []string, k8sImplementer kubernetes.Implementer) *Bot { client := slack.New(token) return &Bot{ slackClient: client, k8sImplementer: k8sImplementer, name: name, + channels: channels, } } @@ -100,6 +104,17 @@ func (b *Bot) Start(ctx context.Context) error { func (b *Bot) startInternal() error { b.slackRTM = b.slackClient.NewRTM() + + for _, channel := range b.channels { + _, err := b.slackRTM.JoinChannel(channel) + if err != nil { + log.WithFields(log.Fields{ + "error": err, + "channel": channel, + }).Error("bot.startInternal: failed to join channel") + } + } + go b.slackRTM.ManageConnection() for { @@ -165,7 +180,7 @@ func (b *Bot) handleMessage(event *slack.MessageEvent) { // Responses that are just a canned string response if responseLines, ok := botEventTextToResponse[eventText]; ok { response := strings.Join(responseLines, "\n") - b.respond(event, response) + b.respond(event, formatAsSnippet(response)) return } @@ -180,11 +195,6 @@ func (b *Bot) handleMessage(event *slack.MessageEvent) { "command": eventText, "untrimmed": strings.Trim(strings.ToLower(event.Text), " \n\r"), }).Info("handleMessage: bot couldn't recognise command") - - // b.slackRTM.SendMessage(b.slackRTM.NewOutgoingMessage("bot couldn't recognise command :(", event.Channel)) - // responseLines := botEventTextToResponse["help"] - // response := strings.Join(responseLines, "\n") - // b.respond(event, response) } func (b *Bot) isCommand(event *slack.MessageEvent, eventText string) bool { @@ -207,7 +217,7 @@ func (b *Bot) handleCommand(event *slack.MessageEvent, eventText string) { case "get deployments": log.Info("getting deployments") response := b.deploymentsResponse(Filter{}) - b.respond(event, response) + b.respond(event, formatAsSnippet(response)) return } @@ -241,3 +251,7 @@ func (b *Bot) trimBot(msg string) string { return msg } + +func formatAsSnippet(response string) string { + return "```" + response + "```" +} diff --git a/main.go b/main.go index 8c67a4ae..7bd8d1af 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "os" "os/signal" + "strings" "time" "context" @@ -161,8 +162,17 @@ func setupBot(k8sImplementer kubernetes.Implementer) (teardown func(), err error botName = os.Getenv(constants.EnvSlackBotName) } + joinChannels := []string{} + + if os.Getenv(constants.EnvSlackChannels) != "" { + channels := os.Getenv(constants.EnvSlackChannels) + joinChannels = strings.Split(channels, ",") + } else { + joinChannels = []string{"general"} + } + token := os.Getenv(constants.EnvSlackToken) - slackBot := bot.New(botName, token, k8sImplementer) + slackBot := bot.New(botName, token, joinChannels, k8sImplementer) ctx, cancel := context.WithCancel(context.Background()) From 2b839e1fbf6bed3326c4f9bf36ce4b78f40169bd Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 15:56:21 +0100 Subject: [PATCH 22/27] helper to get affected images --- provider/kubernetes/kubernetes.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/provider/kubernetes/kubernetes.go b/provider/kubernetes/kubernetes.go index ae2b9e4f..573c3a76 100644 --- a/provider/kubernetes/kubernetes.go +++ b/provider/kubernetes/kubernetes.go @@ -175,9 +175,10 @@ func (p *Provider) updateDeployments(deployments []v1beta1.Deployment) (updated p.sender.Send(types.EventNotification{ Name: "update deployment", - Message: fmt.Sprintf("deployment %s/%s update failed, error: %s", deployment.Namespace, deployment.Name, err), + Message: fmt.Sprintf("Deployment %s/%s update failed, error: %s", deployment.Namespace, deployment.Name, err), CreatedAt: time.Now(), - Type: types.NotificationUpdateError, + Type: types.NotificationDeploymentUpdate, + Level: types.LevelError, }) continue @@ -185,9 +186,10 @@ func (p *Provider) updateDeployments(deployments []v1beta1.Deployment) (updated p.sender.Send(types.EventNotification{ Name: "update deployment", - Message: fmt.Sprintf("successfully updated deployment %s/%s", deployment.Namespace, deployment.Name), + Message: fmt.Sprintf("Successfully updated deployment %s/%s (%s)", deployment.Namespace, deployment.Name, strings.Join(getImages(&deployment), ", ")), CreatedAt: time.Now(), - Type: types.NotificationUpdateSuccess, + Type: types.NotificationDeploymentUpdate, + Level: types.LevelSuccess, }) log.WithFields(log.Fields{ @@ -200,6 +202,15 @@ func (p *Provider) updateDeployments(deployments []v1beta1.Deployment) (updated return } +func getImages(deployment *v1beta1.Deployment) []string { + var images []string + for _, c := range deployment.Spec.Template.Spec.Containers { + images = append(images, c.Image) + } + + return images +} + // applies required changes for deployment, looks for images with tag 0.0.0 and // updates func applyChanges(current v1beta1.Deployment, delta map[string]string) (v1beta1.Deployment, error) { From a831e99f6c88d4e54f1d4ffb465262fe7126ee74 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 15:56:31 +0100 Subject: [PATCH 23/27] color --- types/types.go | 37 ++++++++++++++++++++++++++++------ util/policies/policies_test.go | 2 +- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/types/types.go b/types/types.go index 4ce75d41..79a5b816 100644 --- a/types/types.go +++ b/types/types.go @@ -150,6 +150,7 @@ type EventNotification struct { Message string `json:"message,omitempty"` CreatedAt time.Time `json:"createdAt,omitempty"` Type Notification `json:"type,omitempty"` + Level Level `json:"level,omitempty"` } // Notification - notification types used by notifier @@ -160,8 +161,7 @@ const ( PreProviderSubmitNotification Notification = iota PostProviderSubmitNotification - NotificationUpdateSuccess - NotificationUpdateError + NotificationDeploymentUpdate ) func (n Notification) String() string { @@ -170,11 +170,36 @@ func (n Notification) String() string { return "pre provider submit" case PostProviderSubmitNotification: return "post provider submit" - case NotificationUpdateSuccess: - return "update successful" - case NotificationUpdateError: - return "update error" + case NotificationDeploymentUpdate: + return "deployment update" default: return "unknown" } } + +type Level int + +const ( + LevelInfo Level = iota + LevelSuccess + LevelWarn + LevelError + LevelFatal +) + +func (l Level) Color() string { + switch l { + case LevelError: + return "#F44336" + case LevelInfo: + return "#2196F3" + case LevelSuccess: + return "#00C853" + case LevelFatal: + return "#B71C1C" + case LevelWarn: + return "#FF9800" + default: + return "#9E9E9E" + } +} diff --git a/util/policies/policies_test.go b/util/policies/policies_test.go index 2dfe843a..c54f80d4 100644 --- a/util/policies/policies_test.go +++ b/util/policies/policies_test.go @@ -39,4 +39,4 @@ func TestGetPolicy(t *testing.T) { } }) } -} +} \ No newline at end of file From 93542abb65fb4b7556331c20c064664492883c33 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 16:03:10 +0100 Subject: [PATCH 24/27] reduced logging --- bot/bot.go | 10 +++++----- bot/deployments.go | 4 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index feb4730e..12eb311a 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -17,9 +17,9 @@ var ( botEventTextToResponse = map[string][]string{ "help": { `Here's a list of supported commands`, - `- "get deployments" -> get a list of keel watched deployments`, - `- "get deployments all" -> get a list of all deployments`, - `- "describe deployment " -> get details for specified deployment`, + `- "get deployments" -> get a list of all deployments`, + // `- "get deployments all" -> get a list of all deployments`, + // `- "describe deployment " -> get details for specified deployment`, }, } @@ -136,7 +136,7 @@ func (b *Bot) startInternal() error { case *slack.MessageEvent: b.handleMessage(ev) case *slack.PresenceChangeEvent: - fmt.Printf("Presence Change: %v\n", ev) + // fmt.Printf("Presence Change: %v\n", ev) // case *slack.LatencyReport: // fmt.Printf("Current latency: %v\n", ev.Value) @@ -194,7 +194,7 @@ func (b *Bot) handleMessage(event *slack.MessageEvent) { "bot_id": b.id, "command": eventText, "untrimmed": strings.Trim(strings.ToLower(event.Text), " \n\r"), - }).Info("handleMessage: bot couldn't recognise command") + }).Debug("handleMessage: bot couldn't recognise command") } func (b *Bot) isCommand(event *slack.MessageEvent, eventText string) bool { diff --git a/bot/deployments.go b/bot/deployments.go index a59366e9..8d063aab 100644 --- a/bot/deployments.go +++ b/bot/deployments.go @@ -53,7 +53,7 @@ func (b *Bot) deploymentsResponse(filter Filter) string { if err != nil { return fmt.Sprintf("got error while fetching deployments: %s", err) } - log.Infof("%d deployments fetched, formatting", len(deps)) + log.Debugf("%d deployments fetched, formatting", len(deps)) buf := &bytes.Buffer{} DeploymentCtx := formatter.Context{ @@ -66,8 +66,6 @@ func (b *Bot) deploymentsResponse(filter Filter) string { return fmt.Sprintf(" got error while formatting deployments: %s", err) } - log.Infof("formated. returning buffer: %s", buf.String()) - return buf.String() } From 7c273010378f535ee87f19f04d6a3d0909514a5e Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 16:25:35 +0100 Subject: [PATCH 25/27] tests updated --- extension/notification/slack/slack.go | 3 ++- provider/kubernetes/kubernetes_test.go | 31 +++++++++++++++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/extension/notification/slack/slack.go b/extension/notification/slack/slack.go index 80deac76..975dd080 100644 --- a/extension/notification/slack/slack.go +++ b/extension/notification/slack/slack.go @@ -52,7 +52,8 @@ func (s *sender) Configure(config *notification.Config) (bool, error) { s.slackClient = slack.New(token) log.WithFields(log.Fields{ - "name": "slack", + "name": "slack", + "channels": s.channels, }).Info("extension.notification.slack: sender configured") return true, nil diff --git a/provider/kubernetes/kubernetes_test.go b/provider/kubernetes/kubernetes_test.go index 66f8444f..4d0b9108 100644 --- a/provider/kubernetes/kubernetes_test.go +++ b/provider/kubernetes/kubernetes_test.go @@ -3,7 +3,9 @@ package kubernetes import ( "testing" + "github.com/rusenask/keel/extension/notification" "github.com/rusenask/keel/types" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/extensions/v1beta1" @@ -35,6 +37,19 @@ func (i *fakeImplementer) Update(deployment *v1beta1.Deployment) error { return nil } +type fakeSender struct { + sentEvent types.EventNotification +} + +func (s *fakeSender) Configure(cfg *notification.Config) (bool, error) { + return true, nil +} + +func (s *fakeSender) Send(event types.EventNotification) error { + s.sentEvent = event + return nil +} + func TestGetNamespaces(t *testing.T) { fi := &fakeImplementer{ namespaces: &v1.NamespaceList{ @@ -49,7 +64,7 @@ func TestGetNamespaces(t *testing.T) { }, } - provider, err := NewProvider(fi) + provider, err := NewProvider(fi, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -108,7 +123,7 @@ func TestGetDeployments(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -183,7 +198,7 @@ func TestGetImpacted(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -276,7 +291,7 @@ func TestProcessEvent(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -358,7 +373,7 @@ func TestGetImpactedTwoContainersInSameDeployment(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -455,7 +470,7 @@ func TestGetImpactedTwoSameContainersInSameDeployment(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -550,7 +565,7 @@ func TestGetImpactedUntaggedImage(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } @@ -646,7 +661,7 @@ func TestGetImpactedUntaggedOneImage(t *testing.T) { }, } - provider, err := NewProvider(fp) + provider, err := NewProvider(fp, &fakeSender{}) if err != nil { t.Fatalf("failed to get provider: %s", err) } From 832728e7920dc32a03c245f0c15e7823abcc9c17 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 18:22:43 +0100 Subject: [PATCH 26/27] cleanup --- bot/bot.go | 22 +--------------------- bot/formatter/deployments.go | 6 ------ main.go | 12 +----------- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/bot/bot.go b/bot/bot.go index 12eb311a..214b08c6 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -39,9 +39,6 @@ type Bot struct { users map[string]string - // channels to join - channels []string - msgPrefix string slackClient *slack.Client @@ -52,14 +49,13 @@ type Bot struct { ctx context.Context } -func New(name, token string, channels []string, k8sImplementer kubernetes.Implementer) *Bot { +func New(name, token string, k8sImplementer kubernetes.Implementer) *Bot { client := slack.New(token) return &Bot{ slackClient: client, k8sImplementer: k8sImplementer, name: name, - channels: channels, } } @@ -70,11 +66,6 @@ func (b *Bot) Start(ctx context.Context) error { b.ctx = ctx users, err := b.slackClient.GetUsers() - - if err != nil { - panic(err) - } - if err != nil { return err } @@ -105,16 +96,6 @@ func (b *Bot) Start(ctx context.Context) error { func (b *Bot) startInternal() error { b.slackRTM = b.slackClient.NewRTM() - for _, channel := range b.channels { - _, err := b.slackRTM.JoinChannel(channel) - if err != nil { - log.WithFields(log.Fields{ - "error": err, - "channel": channel, - }).Error("bot.startInternal: failed to join channel") - } - } - go b.slackRTM.ManageConnection() for { @@ -212,7 +193,6 @@ func (b *Bot) isCommand(event *slack.MessageEvent, eventText string) bool { } func (b *Bot) handleCommand(event *slack.MessageEvent, eventText string) { - log.Infof("handling command %s", eventText) switch eventText { case "get deployments": log.Info("getting deployments") diff --git a/bot/formatter/deployments.go b/bot/formatter/deployments.go index 3f7c0013..3f148c54 100644 --- a/bot/formatter/deployments.go +++ b/bot/formatter/deployments.go @@ -4,8 +4,6 @@ import ( "fmt" "strings" "time" - - log "github.com/Sirupsen/logrus" ) // Deployment - internal deployment, used to better represent keel related info @@ -50,10 +48,6 @@ func NewDeploymentsFormat(source string, quiet bool) Format { func DeploymentWrite(ctx Context, Deployments []Deployment) error { render := func(format func(subContext subContext) error) error { for _, deployment := range Deployments { - log.WithFields(log.Fields{ - "name": deployment.Name, - "namespace": deployment.Namespace, - }).Info("formatting deployment") if err := format(&DeploymentContext{v: deployment}); err != nil { return err } diff --git a/main.go b/main.go index 7bd8d1af..8c67a4ae 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,6 @@ package main import ( "os" "os/signal" - "strings" "time" "context" @@ -162,17 +161,8 @@ func setupBot(k8sImplementer kubernetes.Implementer) (teardown func(), err error botName = os.Getenv(constants.EnvSlackBotName) } - joinChannels := []string{} - - if os.Getenv(constants.EnvSlackChannels) != "" { - channels := os.Getenv(constants.EnvSlackChannels) - joinChannels = strings.Split(channels, ",") - } else { - joinChannels = []string{"general"} - } - token := os.Getenv(constants.EnvSlackToken) - slackBot := bot.New(botName, token, joinChannels, k8sImplementer) + slackBot := bot.New(botName, token, k8sImplementer) ctx, cancel := context.WithCancel(context.Background()) From dbaf7545f92f253b3f8ec2645b25c3801bbd7efc Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sat, 8 Jul 2017 18:52:33 +0100 Subject: [PATCH 27/27] readme --- hack/deployment.sample.yml | 6 ++++++ readme.md | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/hack/deployment.sample.yml b/hack/deployment.sample.yml index 132928d3..afeb246a 100644 --- a/hack/deployment.sample.yml +++ b/hack/deployment.sample.yml @@ -26,6 +26,12 @@ spec: value: "1" - name: PROJECT_ID value: "my-project-id" + # - name: WEBHOOK_ENDPOINT + # value: https://my.webhookrelay.com/v1/webhooks/2fc52b16-75f7-41f2-8e2d-81afbbcae709 + # - name: SLACK_TOKEN + # value: your-token-here + # - name: SLACK_CHANNELS + # value: general name: keel command: ["/bin/keel"] ports: diff --git a/readme.md b/readme.md index b1de409a..e3ca3a50 100644 --- a/readme.md +++ b/readme.md @@ -187,3 +187,30 @@ Once Keel is deployed in your Kubernetes cluster - it occasionally scans your cu If you have any quetions or notice a problem - raise an issue. +## Notifications + +Keel uses a simple notification framework that can easily be extended. Out of the box Keel supports +two types of notifications: Slack and webhooks. + + +### Configuring Slack notifications + +First, get a Slack token, info about that can be found in the [docs](https://get.slack.help/hc/en-us/articles/215770388-Create-and-regenerate-API-tokens). + +Then, provide token via __SLACK_TOKEN__ environment variable. You should also provide __SLACK_CHANNELS__ environment variable with a comma separated list of channels where these notifications should go. + +Keel will be sending messages when deployment updates succeed or fail. + +### Configuring webhook notifications + +Provide an endpoint via __WEBHOOK_ENDPOINT__ environment variable. + +Webhook payload sample: + +``` +{ + "name": "update deployment", + "message": "Successfully updated deployment default/wd (karolisr/webhook-demo:0.0.10)", + "createdAt": "2017-07-08T10:08:45.226565869+01:00" +} +``` \ No newline at end of file